[boinc] 02/10: New upstream version 7.8.0+dfsg

Gianfranco Costamagna locutusofborg at moszumanska.debian.org
Fri Aug 11 17:29:36 UTC 2017


This is an automated email from the git hooks/post-receive script.

locutusofborg pushed a commit to branch master
in repository boinc.

commit acd40dc1d4234e7bd161db021b78434450470614
Author: Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
Date:   Tue Jun 20 09:55:36 2017 +0200

    New upstream version 7.8.0+dfsg
---
 .gitignore                                         |    41 +
 .scrutinizer.yml                                   |   143 +
 .travis.yml                                        |    31 +-
 .tx/config                                         |    47 +
 3rdParty/README.md                                 |    12 +
 3rdParty/buildLinuxDependencies.sh                 |   137 +
 3rdParty/buildWxLinux.sh                           |   101 +
 INSTALL                                            |     2 +-
 Makefile.incl                                      |     1 +
 README.md                                          |    41 +-
 _autosetup                                         |    94 +-
 android/.gitignore                                 |    11 -
 android/BOINC/AndroidManifest.xml                  |   144 -
 android/BOINC/app/build.gradle                     |    75 +
 android/BOINC/app/lint.xml                         |     4 +
 android/BOINC/app/src/main/AndroidManifest.xml     |   125 +
 .../aidl}/edu/berkeley/boinc/client/IMonitor.aidl  |     0
 .../aidl}/edu/berkeley/boinc/rpc/AccountIn.aidl    |     0
 .../aidl}/edu/berkeley/boinc/rpc/AccountOut.aidl   |     0
 .../aidl}/edu/berkeley/boinc/rpc/AcctMgrInfo.aidl  |     0
 .../edu/berkeley/boinc/rpc/GlobalPreferences.aidl  |     0
 .../aidl}/edu/berkeley/boinc/rpc/HostInfo.aidl     |     0
 .../aidl}/edu/berkeley/boinc/rpc/ImageWrapper.aidl |     0
 .../main/aidl}/edu/berkeley/boinc/rpc/Message.aidl |     0
 .../main/aidl}/edu/berkeley/boinc/rpc/Notice.aidl  |     0
 .../main/aidl}/edu/berkeley/boinc/rpc/Project.aidl |     0
 .../edu/berkeley/boinc/rpc/ProjectConfig.aidl      |     0
 .../aidl}/edu/berkeley/boinc/rpc/ProjectInfo.aidl  |     0
 .../main/aidl}/edu/berkeley/boinc/rpc/Result.aidl  |     0
 .../aidl}/edu/berkeley/boinc/rpc/Transfer.aidl     |     0
 .../src/main/assets/arm64-v8a}/placeholder.txt     |     0
 .../src/main/assets/armeabi-v7a}/placeholder.txt   |     0
 .../BOINC/{ => app/src/main}/assets/cc_config.xml  |     0
 .../src/main/assets/mips}/placeholder.txt          |     0
 .../src/main/assets/mips64}/placeholder.txt        |     0
 .../src/main/assets/x86}/placeholder.txt           |     0
 .../src/main/assets/x86_64}/placeholder.txt        |     0
 .../java/edu/berkeley/boinc/BOINCActivity.java     |   468 +
 .../berkeley/boinc/BoincNotExclusiveDialog.java    |     0
 .../edu/berkeley/boinc/ConfirmationDialog.java     |     0
 .../java}/edu/berkeley/boinc/EventLogActivity.java |     0
 .../boinc/EventLogActivityTabListener.java         |     0
 .../edu/berkeley/boinc/EventLogClientFragment.java |     0
 .../edu/berkeley/boinc/EventLogGuiFragment.java    |     0
 .../java}/edu/berkeley/boinc/NoticesFragment.java  |     0
 .../java/edu/berkeley/boinc/PrefsFragment.java     |   717 +
 .../edu/berkeley/boinc/ProjectDetailsFragment.java |     0
 .../java}/edu/berkeley/boinc/ProjectsFragment.java |     0
 .../java}/edu/berkeley/boinc/SplashActivity.java   |     0
 .../java}/edu/berkeley/boinc/StatusFragment.java   |     0
 .../java}/edu/berkeley/boinc/TasksFragment.java    |     0
 .../boinc/adapter/ClientLogListAdapter.java        |   126 +
 .../edu/berkeley/boinc/adapter/GalleryAdapter.java |     0
 .../boinc/adapter/NavDrawerListAdapter.java        |   273 +
 .../berkeley/boinc/adapter/NoticesListAdapter.java |   111 +
 .../berkeley/boinc/adapter/PrefsListAdapter.java   |   136 +
 .../boinc/adapter/PrefsListItemWrapper.java        |     0
 .../boinc/adapter/PrefsListItemWrapperBool.java    |     0
 .../boinc/adapter/PrefsListItemWrapperValue.java   |    94 +
 .../adapter/PrefsSelectionDialogListAdapter.java   |     0
 .../boinc/adapter/ProjectControlsListAdapter.java  |     0
 .../boinc/adapter/ProjectsListAdapter.java         |   264 +
 .../berkeley/boinc/adapter/TasksListAdapter.java   |   294 +
 .../edu/berkeley/boinc/attach/AcctMgrFragment.java |     0
 .../boinc/attach/BatchConflictListActivity.java    |     0
 .../boinc/attach/BatchConflictListAdapter.java     |     0
 .../boinc/attach/BatchProcessingActivity.java      |   280 +
 .../boinc/attach/CredentialInputActivity.java      |     0
 .../edu/berkeley/boinc/attach/HintFragment.java    |     0
 .../attach/IndividualCredentialInputFragment.java  |     0
 .../boinc/attach/ManualUrlInputFragment.java       |     0
 .../boinc/attach/ProjectAttachService.java         |     0
 .../berkeley/boinc/attach/ProjectInfoFragment.java |     0
 .../boinc/attach/SelectionListActivity.java        |   298 +
 .../boinc/attach/SelectionListAdapter.java         |     0
 .../edu/berkeley/boinc/client/AppPreferences.java  |     0
 .../client/ClientInterfaceImplementation.java      |   496 +
 .../berkeley/boinc/client/ClientNotification.java  |     0
 .../edu/berkeley/boinc/client/ClientStatus.java    |     0
 .../edu/berkeley/boinc/client/DeviceStatus.java    |   263 +
 .../java/edu/berkeley/boinc/client/Monitor.java    |  1306 ++
 .../berkeley/boinc/client/NoticeNotification.java  |   193 +
 .../berkeley/boinc/client/PersistentStorage.java   |     0
 .../java}/edu/berkeley/boinc/mutex/BoincMutex.java |     0
 .../edu/berkeley/boinc/receiver/BootReceiver.java  |     0
 .../boinc/receiver/PackageReplacedReceiver.java    |     0
 .../boinc/receiver/PowerConnectedReceiver.java     |     0
 .../java}/edu/berkeley/boinc/rpc/AccountIn.java    |     0
 .../java}/edu/berkeley/boinc/rpc/AccountOut.java   |     0
 .../edu/berkeley/boinc/rpc/AccountOutParser.java   |     0
 .../java}/edu/berkeley/boinc/rpc/AcctMgrInfo.java  |     0
 .../edu/berkeley/boinc/rpc/AcctMgrInfoParser.java  |     0
 .../edu/berkeley/boinc/rpc/AcctMgrRPCReply.java    |     0
 .../berkeley/boinc/rpc/AcctMgrRPCReplyParser.java  |     0
 .../src/main/java}/edu/berkeley/boinc/rpc/App.java |     0
 .../java}/edu/berkeley/boinc/rpc/AppVersion.java   |     0
 .../edu/berkeley/boinc/rpc/AppVersionsParser.java  |     0
 .../java}/edu/berkeley/boinc/rpc/AppsParser.java   |     0
 .../java}/edu/berkeley/boinc/rpc/BaseParser.java   |     0
 .../main/java}/edu/berkeley/boinc/rpc/Boinc.java   |     0
 .../main/java}/edu/berkeley/boinc/rpc/CcState.java |     0
 .../edu/berkeley/boinc/rpc/CcStateParser.java      |     0
 .../java}/edu/berkeley/boinc/rpc/CcStatus.java     |     0
 .../edu/berkeley/boinc/rpc/CcStatusParser.java     |     0
 .../edu/berkeley/boinc/rpc/DeviceStatusData.java   |    29 +
 .../edu/berkeley/boinc/rpc/GlobalPreferences.java  |     0
 .../boinc/rpc/GlobalPreferencesParser.java         |     0
 .../main/java}/edu/berkeley/boinc/rpc/GuiUrl.java  |     0
 .../java}/edu/berkeley/boinc/rpc/HostInfo.java     |     0
 .../edu/berkeley/boinc/rpc/HostInfoParser.java     |     0
 .../java}/edu/berkeley/boinc/rpc/ImageWrapper.java |     0
 .../src/main/java}/edu/berkeley/boinc/rpc/Md5.java |     0
 .../main/java}/edu/berkeley/boinc/rpc/Message.java |     0
 .../edu/berkeley/boinc/rpc/MessageCountParser.java |     0
 .../edu/berkeley/boinc/rpc/MessagesParser.java     |     0
 .../main/java}/edu/berkeley/boinc/rpc/Notice.java  |     0
 .../edu/berkeley/boinc/rpc/NoticesParser.java      |     0
 .../java}/edu/berkeley/boinc/rpc/PlatformInfo.java |     0
 .../main/java}/edu/berkeley/boinc/rpc/Project.java |     0
 .../edu/berkeley/boinc/rpc/ProjectAttachReply.java |     0
 .../boinc/rpc/ProjectAttachReplyParser.java        |     0
 .../edu/berkeley/boinc/rpc/ProjectConfig.java      |     0
 .../boinc/rpc/ProjectConfigReplyParser.java        |     0
 .../java}/edu/berkeley/boinc/rpc/ProjectInfo.java  |     0
 .../edu/berkeley/boinc/rpc/ProjectInfoParser.java  |     0
 .../edu/berkeley/boinc/rpc/ProjectsParser.java     |     0
 .../main/java}/edu/berkeley/boinc/rpc/Result.java  |     0
 .../edu/berkeley/boinc/rpc/ResultsParser.java      |     0
 .../java/edu/berkeley/boinc/rpc/RpcClient.java     |  1421 ++
 .../edu/berkeley/boinc/rpc/SimpleReplyParser.java  |     0
 .../edu/berkeley/boinc/rpc/TimePreferences.java    |     0
 .../java}/edu/berkeley/boinc/rpc/Transfer.java     |     0
 .../edu/berkeley/boinc/rpc/TransfersParser.java    |     0
 .../java}/edu/berkeley/boinc/rpc/VersionInfo.java  |     0
 .../edu/berkeley/boinc/rpc/VersionInfoParser.java  |     0
 .../java}/edu/berkeley/boinc/rpc/Workunit.java     |     0
 .../edu/berkeley/boinc/rpc/WorkunitsParser.java    |     0
 .../edu/berkeley/boinc/util/SystemUiHider.java     |     0
 .../edu/berkeley/boinc/util/SystemUiHiderBase.java |     0
 .../boinc/util/SystemUiHiderHoneycomb.java         |     0
 .../java}/edu/berkeley/boinc/utils/BOINCDefs.java  |     0
 .../edu/berkeley/boinc/utils/BOINCErrors.java      |     0
 .../java}/edu/berkeley/boinc/utils/BOINCUtils.java |     0
 .../java}/edu/berkeley/boinc/utils/Logging.java    |     0
 .../src/main}/res/drawable/icon_notices_tab.xml    |     0
 .../src/main}/res/drawable/icon_prefs_tab.xml      |     0
 .../src/main}/res/drawable/icon_projects_tab.xml   |     0
 .../src/main}/res/drawable/icon_status_tab.xml     |     0
 .../src/main}/res/drawable/icon_tasks_tab.xml      |     0
 .../res/drawable/navlist_counter_background.xml    |     0
 .../main}/res/drawable/navlist_item_background.xml |     0
 .../drawable/navlist_item_focussed_background.xml  |     0
 ...avlist_item_pressed_and_focussed_background.xml |     0
 .../drawable/navlist_item_pressed_background.xml   |     0
 .../src/main}/res/drawable/navlist_selector.xml    |     0
 .../res/drawable/navlist_selector_pressed.xml      |     0
 .../src/main}/res/drawable/progressbar.xml         |     0
 .../src/main}/res/drawable/shape_blue_border.xml   |     0
 .../src/main}/res/drawable/shape_button_blue.xml   |     0
 .../src/main}/res/drawable/shape_button_grey.xml   |     0
 .../src/main}/res/drawable/shape_button_red.xml    |     0
 .../shape_dark_blue_background_wo_stroke.xml       |     0
 .../main}/res/drawable/shape_dark_blue_border.xml  |     0
 .../res/drawable/shape_dark_blue_gradient_2.xml    |     0
 .../shape_dark_blue_gradient_background.xml        |     0
 .../res/drawable/shape_light_blue_background.xml   |     0
 .../shape_light_blue_background_wo_stroke.xml      |     0
 .../main}/res/drawable/shape_light_blue_border.xml |     0
 .../res/drawable/shape_light_green_background.xml  |     0
 .../res/drawable/shape_light_red_background.xml    |     0
 .../shape_light_red_background_wo_stroke.xml       |     0
 .../shape_preferences_status_background.xml        |     0
 .../main}/res/drawable/shape_yellow_background.xml |     0
 .../src/main}/res/drawable/tab_background.xml      |     0
 .../main}/res/drawable/tab_background_selected.xml |     0
 .../res/drawable/tab_background_unselected.xml     |     0
 .../{ => app/src/main}/res/drawable/tab_text.xml   |     0
 .../src/main}/res/layout/activity_splash.xml       |     0
 .../res/layout/attach_project_acctmgr_dialog.xml   |     0
 .../attach_project_batch_conflicts_layout.xml      |     0
 .../attach_project_batch_conflicts_listitem.xml    |     0
 .../attach_project_batch_processing_layout.xml     |     0
 .../attach_project_credential_input_dialog.xml     |     0
 .../attach_project_credential_input_layout.xml     |     0
 .../attach_project_hint_contribution_layout.xml    |     0
 .../attach_project_hint_platforms_layout.xml       |     0
 .../attach_project_hint_projectwebsite_layout.xml  |     0
 .../res/layout/attach_project_info_layout.xml      |     0
 .../res/layout/attach_project_list_layout.xml      |     0
 .../layout/attach_project_list_layout_listitem.xml |     0
 .../attach_project_manual_url_input_dialog.xml     |     0
 .../{ => app/src/main}/res/layout/dialog_about.xml |     0
 .../src/main}/res/layout/dialog_confirm.xml        |     0
 .../{ => app/src/main}/res/layout/dialog_list.xml  |     0
 .../main}/res/layout/eventlog_client_layout.xml    |     0
 .../res/layout/eventlog_client_listitem_layout.xml |     0
 .../src/main}/res/layout/eventlog_gui_layout.xml   |     0
 .../res/layout/eventlog_gui_listitem_layout.xml    |     0
 .../main}/res/layout/generic_layout_loading.xml    |     0
 .../BOINC/{ => app/src/main}/res/layout/main.xml   |     0
 .../{ => app/src/main}/res/layout/main_loading.xml |     0
 .../src/main}/res/layout/main_tab_layout.xml       |     0
 .../src/main}/res/layout/navlist_listitem.xml      |     0
 .../main}/res/layout/navlist_listitem_subitem.xml  |     0
 .../src/main}/res/layout/notices_layout.xml        |     0
 .../main}/res/layout/notices_layout_listitem.xml   |     0
 .../{ => app/src/main}/res/layout/prefs_layout.xml |     0
 .../src/main}/res/layout/prefs_layout_dialog.xml   |     0
 .../main}/res/layout/prefs_layout_dialog_pct.xml   |     0
 .../res/layout/prefs_layout_dialog_selection.xml   |     0
 .../src/main}/res/layout/prefs_layout_listitem.xml |     0
 .../res/layout/prefs_layout_listitem_bool.xml      |     0
 .../res/layout/prefs_layout_listitem_category.xml  |     0
 .../main}/res/layout/project_details_layout.xml    |     0
 .../project_details_slideshow_image_layout.xml     |     0
 .../layout/projects_controls_listitem_layout.xml   |     0
 .../src/main}/res/layout/projects_layout.xml       |     0
 .../main/res/layout/projects_layout_listitem.xml   |   115 +
 .../layout/projects_layout_listitem_acctmgr.xml    |     0
 .../src/main}/res/layout/status_layout.xml         |     0
 .../{ => app/src/main}/res/layout/tasks_layout.xml |     0
 .../src/main}/res/layout/tasks_layout_listitem.xml |     0
 .../{ => app/src/main}/res/menu/eventlog_menu.xml  |     0
 .../{ => app/src/main}/res/menu/main_menu.xml      |     0
 .../src/main}/res/menu/project_details_menu.xml    |     0
 .../{ => app/src/main}/res/menu/projects_menu.xml  |     0
 .../BOINC/app/src/main/res/values-bg/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-ca/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-cs/strings.xml   |   360 +
 .../BOINC/app/src/main/res/values-da/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-de/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-el/strings.xml   |     3 +
 .../BOINC/app/src/main/res/values-en/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-es/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-fi/strings.xml   |   247 +
 .../BOINC/app/src/main/res/values-fr/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-he/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-hr/strings.xml   |     4 +
 .../BOINC/app/src/main/res/values-hu/strings.xml   |   357 +
 .../app/src/main/res/values-it-rIT/strings.xml     |   357 +
 .../BOINC/app/src/main/res/values-ja/strings.xml   |   353 +
 .../BOINC/app/src/main/res/values-ka/strings.xml   |   356 +
 .../BOINC/app/src/main/res/values-ko/strings.xml   |   356 +
 .../BOINC/app/src/main/res/values-lt/strings.xml   |   262 +
 .../BOINC/app/src/main/res/values-lv/strings.xml   |     2 +
 .../BOINC/app/src/main/res/values-nb/strings.xml   |     2 +
 .../BOINC/app/src/main/res/values-nl/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-pl/strings.xml   |   359 +
 .../app/src/main/res/values-pt-rBR/strings.xml     |   358 +
 .../app/src/main/res/values-pt-rPT/strings.xml     |   357 +
 .../BOINC/app/src/main/res/values-ro/strings.xml   |   352 +
 .../BOINC/app/src/main/res/values-ru/strings.xml   |   359 +
 .../BOINC/app/src/main/res/values-sk/strings.xml   |   359 +
 .../BOINC/app/src/main/res/values-sl/strings.xml   |   148 +
 .../BOINC/app/src/main/res/values-sv/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-tr/strings.xml   |   357 +
 .../BOINC/app/src/main/res/values-uk/strings.xml   |   352 +
 .../{ => app/src/main}/res/values-v11/styles.xml   |     0
 .../{ => app/src/main}/res/values-v14/theme.xml    |     0
 .../app/src/main/res/values-zh-rCN/strings.xml     |   356 +
 .../app/src/main/res/values-zh-rTW/strings.xml     |   352 +
 .../BOINC/{ => app/src/main}/res/values/Color.xml  |     0
 .../BOINC/{ => app/src/main}/res/values/colors.xml |     0
 .../app/src/main/res/values/configuration.xml      |    88 +
 android/BOINC/app/src/main/res/values/strings.xml  |   392 +
 .../BOINC/{ => app/src/main}/res/values/theme.xml  |     0
 android/BOINC/assets/all_projects_list.xml         |  1050 --
 android/BOINC/assets/ca-bundle.crt                 |  4059 -----
 android/BOINC/build.gradle                         |    15 +
 android/BOINC/gradle/wrapper/gradle-wrapper.jar    |   Bin 0 -> 53636 bytes
 .../BOINC/gradle/wrapper/gradle-wrapper.properties |     6 +
 android/BOINC/gradlew                              |   160 +
 android/BOINC/gradlew.bat                          |    90 +
 android/BOINC/lint.xml                             |     4 -
 android/BOINC/proguard-project.txt                 |    20 -
 android/BOINC/project.properties                   |    15 -
 .../BOINC/res/layout/projects_layout_listitem.xml  |    99 -
 android/BOINC/res/values-bg/strings.xml            |   244 -
 android/BOINC/res/values-ca/strings.xml            |   360 -
 android/BOINC/res/values-cs/strings.xml            |   362 -
 android/BOINC/res/values-da/strings.xml            |   360 -
 android/BOINC/res/values-de/strings.xml            |   360 -
 android/BOINC/res/values-el/strings.xml            |     3 -
 android/BOINC/res/values-en/strings.xml            |   360 -
 android/BOINC/res/values-es/strings.xml            |   360 -
 android/BOINC/res/values-fi/strings.xml            |   251 -
 android/BOINC/res/values-fr/strings.xml            |   360 -
 android/BOINC/res/values-he/strings.xml            |   218 -
 android/BOINC/res/values-hr/strings.xml            |     4 -
 android/BOINC/res/values-hu/strings.xml            |   360 -
 android/BOINC/res/values-it-rIT/strings.xml        |   360 -
 android/BOINC/res/values-it_rIT/strings.xml        |   360 -
 android/BOINC/res/values-ja/strings.xml            |   360 -
 android/BOINC/res/values-ka/strings.xml            |   360 -
 android/BOINC/res/values-ko/strings.xml            |   360 -
 android/BOINC/res/values-lt/strings.xml            |   266 -
 android/BOINC/res/values-lv/strings.xml            |     2 -
 android/BOINC/res/values-nb/strings.xml            |     2 -
 android/BOINC/res/values-nl/strings.xml            |   360 -
 android/BOINC/res/values-pt-rBR/strings.xml        |     3 -
 android/BOINC/res/values-pt-rPT/strings.xml        |   360 -
 android/BOINC/res/values-ro/strings.xml            |   360 -
 android/BOINC/res/values-ru-rRU/strings.xml        |   360 -
 android/BOINC/res/values-ru/strings.xml            |   360 -
 android/BOINC/res/values-sk/strings.xml            |   361 -
 android/BOINC/res/values-sl/strings.xml            |   149 -
 android/BOINC/res/values-tr/strings.xml            |   360 -
 android/BOINC/res/values-uk/strings.xml            |   360 -
 android/BOINC/res/values-zh-rCN/strings.xml        |   360 -
 android/BOINC/res/values-zh-rTW/strings.xml        |   360 -
 android/BOINC/res/values/configuration.xml         |    88 -
 android/BOINC/res/values/strings.xml               |   395 -
 android/BOINC/settings.gradle                      |     1 +
 .../src/edu/berkeley/boinc/BOINCActivity.java      |   454 -
 .../src/edu/berkeley/boinc/PrefsFragment.java      |   695 -
 .../boinc/adapter/ClientLogListAdapter.java        |   118 -
 .../boinc/adapter/NavDrawerListAdapter.java        |   272 -
 .../berkeley/boinc/adapter/NoticesListAdapter.java |   110 -
 .../berkeley/boinc/adapter/PrefsListAdapter.java   |   116 -
 .../boinc/adapter/PrefsListItemWrapperValue.java   |    91 -
 .../boinc/adapter/ProjectsListAdapter.java         |   266 -
 .../berkeley/boinc/adapter/TasksListAdapter.java   |   275 -
 .../boinc/attach/BatchProcessingActivity.java      |   276 -
 .../boinc/attach/SelectionListActivity.java        |   231 -
 .../client/ClientInterfaceImplementation.java      |   496 -
 .../edu/berkeley/boinc/client/DeviceStatus.java    |   263 -
 .../src/edu/berkeley/boinc/client/Monitor.java     |  1260 --
 .../berkeley/boinc/client/NoticeNotification.java  |   149 -
 .../edu/berkeley/boinc/rpc/DeviceStatusData.java   |    29 -
 .../src/edu/berkeley/boinc/rpc/RpcClient.java      |  1421 --
 android/Vagrant.README.md                          |    40 +
 android/Vagrantfile                                |   135 +
 android/build_all.sh                               |    12 +
 android/build_androidtc_arm.sh                     |     8 +-
 android/build_androidtc_arm64.sh                   |    15 +
 android/build_androidtc_mips.sh                    |     8 +-
 android/build_androidtc_mips64.sh                  |    15 +
 android/build_androidtc_x86.sh                     |     8 +-
 android/build_androidtc_x86_64.sh                  |    15 +
 android/build_boinc_all.sh                         |     3 +
 android/build_boinc_arm.sh                         |    21 +-
 android/build_boinc_arm64.sh                       |    65 +
 android/build_boinc_mips.sh                        |    15 +-
 android/build_boinc_mips64.sh                      |    65 +
 android/build_boinc_x86.sh                         |    15 +-
 android/build_boinc_x86_64.sh                      |    65 +
 android/build_build_app_arm.sh                     |     3 +-
 android/build_build_app_mips.sh                    |     3 +-
 android/build_build_app_x86.sh                     |     3 +-
 android/build_curl_arm.sh                          |    13 +-
 android/build_curl_arm64.sh                        |    46 +
 android/build_curl_mips.sh                         |     5 +-
 android/build_curl_mips64.sh                       |    45 +
 android/build_curl_x86.sh                          |     5 +-
 android/build_curl_x86_64.sh                       |    46 +
 android/build_libraries_arm.sh                     |     3 +-
 android/build_libraries_mips.sh                    |     3 +-
 android/build_libraries_x86.sh                     |     3 +-
 android/build_openssl_arm.sh                       |    11 +-
 android/build_openssl_arm64.sh                     |    50 +
 android/build_openssl_mips.sh                      |     5 +-
 android/build_openssl_mips64.sh                    |    49 +
 android/build_openssl_x86.sh                       |     5 +-
 android/build_openssl_x86_64.sh                    |    50 +
 android/build_wrapper_arm.sh                       |     3 +-
 android/build_wrapper_mips.sh                      |     3 +-
 android/build_wrapper_x86.sh                       |     3 +-
 api/Makefile.am                                    |     6 +-
 api/boinc_api.cpp                                  |   352 +-
 api/boinc_api.h                                    |     4 +-
 api/boinc_gl.h                                     |     4 +-
 api/boinc_glut.h                                   |     4 +-
 api/graphics2.h                                    |     4 +-
 api/graphics_data.h                                |     4 +-
 api/gutil.h                                        |     4 +-
 api/mac_icon.cpp                                   |    13 +
 api/make_app_icon_h.cpp                            |    12 +
 api/reduce.h                                       |     4 +-
 api/reduce_lib.cpp                                 |    12 +-
 build_pos                                          |     5 +-
 client/acct_mgr.cpp                                |   192 +-
 client/acct_mgr.h                                  |    36 +-
 client/acct_setup.h                                |     5 +-
 client/app.cpp                                     |     3 +-
 client/app.h                                       |    11 +-
 client/app_config.cpp                              |   183 +-
 client/app_config.h                                |    51 +-
 client/app_control.cpp                             |     7 +-
 client/app_start.cpp                               |     2 +-
 client/async_file.cpp                              |    49 +-
 client/async_file.h                                |     9 +-
 client/auto_update.h                               |     4 +-
 client/boinc_cmd.cpp                               |    20 +
 client/build_po                                    |     3 -
 client/check_security.cpp                          |    61 +-
 client/client_msgs.h                               |     5 +-
 client/client_state.cpp                            |    99 +-
 client/client_state.h                              |     6 +-
 client/client_types.cpp                            |     2 +-
 client/client_types.h                              |     5 +-
 client/cpu_sched.cpp                               |    87 +-
 client/cs_account.cpp                              |     4 +-
 client/cs_apps.cpp                                 |     3 +-
 client/cs_benchmark.cpp                            |     4 +-
 client/cs_notice.h                                 |     4 +-
 client/cs_prefs.cpp                                |    26 +-
 client/cs_scheduler.cpp                            |    34 +-
 client/cs_statefile.cpp                            |     8 +-
 client/cs_trickle.cpp                              |     8 +-
 client/cs_trickle.h                                |     4 +-
 client/current_version.cpp                         |    10 +-
 client/current_version.h                           |     4 +-
 client/file_names.cpp                              |     8 +-
 client/file_names.h                                |     4 +-
 client/file_xfer.h                                 |     4 +-
 client/gpu_amd.cpp                                 |   108 +-
 client/gpu_detect.cpp                              |    46 +-
 client/gpu_detect.h                                |     4 +-
 client/gpu_nvidia.cpp                              |   217 +-
 client/gpu_opencl.cpp                              |   246 +-
 client/gui_http.h                                  |     4 +-
 client/gui_rpc_server.cpp                          |    15 +-
 client/gui_rpc_server.h                            |     4 +-
 client/gui_rpc_server_ops.cpp                      |   110 +-
 client/hostinfo_network.cpp                        |     5 -
 client/hostinfo_unix.cpp                           |   828 +-
 client/hostinfo_unix_test.cpp                      |   437 +-
 client/hostinfo_win.cpp                            |     6 +-
 client/http_curl.cpp                               |     4 +-
 client/http_curl.h                                 |     6 +-
 client/log_flags.cpp                               |     7 +-
 client/log_flags.h                                 |    12 +-
 client/mac_address.h                               |     6 +-
 client/main.cpp                                    |    32 +-
 client/net_stats.h                                 |     4 +-
 client/pers_file_xfer.h                            |     4 +-
 client/project.cpp                                 |    26 +-
 client/project.h                                   |    64 +-
 client/result.h                                    |     4 +-
 client/rr_sim.h                                    |     4 +-
 client/sandbox.cpp                                 |     2 +-
 client/scheduler_op.cpp                            |    12 +-
 client/scheduler_op.h                              |     4 +-
 client/scripts/Makefile.am                         |     2 +-
 client/sim.h                                       |     4 +-
 client/sysmon_win.cpp                              |    52 +-
 client/sysmon_win.h                                |     4 +-
 client/thread.h                                    |     4 +-
 client/time_stats.h                                |     4 +-
 client/work_fetch.cpp                              |     3 +
 client/work_fetch.h                                |     4 +-
 clientgui/AccountInfoPage.h                        |     6 +-
 clientgui/AccountManagerInfoPage.h                 |     6 +-
 clientgui/AccountManagerProcessingPage.h           |     6 +-
 clientgui/AccountManagerPropertiesPage.h           |     6 +-
 clientgui/AdvancedFrame.cpp                        |   150 +-
 clientgui/AdvancedFrame.h                          |     8 +-
 clientgui/AlreadyExistsPage.h                      |     6 +-
 clientgui/AsyncRPC.h                               |     6 +-
 clientgui/BOINCBaseFrame.h                         |     5 +-
 clientgui/BOINCBaseView.h                          |     5 +-
 clientgui/BOINCBaseWizard.cpp                      |     2 +
 clientgui/BOINCBaseWizard.h                        |     9 +-
 clientgui/BOINCClientManager.cpp                   |    65 +-
 clientgui/BOINCClientManager.h                     |    13 +-
 clientgui/BOINCDialupManager.cpp                   |     1 -
 clientgui/BOINCDialupManager.h                     |     9 +-
 clientgui/BOINCGUIApp.cpp                          |   166 +-
 clientgui/BOINCGUIApp.h                            |    30 +-
 clientgui/BOINCListCtrl.h                          |     5 +-
 clientgui/BOINCTaskBar.cpp                         |     6 +-
 clientgui/BOINCTaskBar.h                           |     6 +-
 clientgui/BOINCTaskCtrl.h                          |     4 +-
 clientgui/CompletionErrorPage.h                    |     6 +-
 clientgui/CompletionPage.h                         |     6 +-
 clientgui/DlgAbout.cpp                             |     4 +-
 clientgui/DlgAbout.h                               |     5 +-
 clientgui/DlgAdvPreferences.h                      |     6 +-
 clientgui/DlgAdvPreferencesBase.cpp                |   102 +-
 clientgui/DlgAdvPreferencesBase.h                  |     6 +-
 clientgui/DlgDiagnosticLogFlags.cpp                |    76 +-
 clientgui/DlgDiagnosticLogFlags.h                  |    11 +-
 clientgui/DlgEventLog.h                            |    21 +-
 clientgui/DlgEventLogListCtrl.h                    |     4 +-
 clientgui/DlgExclusiveApps.h                       |     7 +-
 clientgui/DlgExitMessage.h                         |     5 +-
 clientgui/DlgGenericMessage.h                      |     5 +-
 clientgui/DlgHiddenColumns.cpp                     |    13 +-
 clientgui/DlgHiddenColumns.h                       |     7 +-
 clientgui/DlgItemProperties.cpp                    |     2 +-
 clientgui/DlgItemProperties.h                      |     8 +-
 clientgui/DlgOptions.cpp                           |    15 +-
 clientgui/DlgOptions.h                             |     8 +-
 clientgui/DlgSelectComputer.cpp                    |     5 +-
 clientgui/DlgSelectComputer.h                      |     5 +-
 clientgui/Events.h                                 |     6 +-
 clientgui/Localization.h                           |     6 +-
 clientgui/LogBOINC.h                               |     9 +-
 clientgui/MainDocument.cpp                         |   486 +-
 clientgui/MainDocument.h                           |     7 +-
 clientgui/Makefile.am                              |     2 +-
 clientgui/NoInternetConnectionPage.h               |     6 +-
 clientgui/NotDetectedPage.h                        |     5 +-
 clientgui/NotFoundPage.h                           |     6 +-
 clientgui/NoticeListCtrl.cpp                       |     4 +-
 clientgui/NoticeListCtrl.h                         |     6 +-
 clientgui/ProjectInfoPage.h                        |     6 +-
 clientgui/ProjectProcessingPage.h                  |     6 +-
 clientgui/ProjectPropertiesPage.h                  |     6 +-
 clientgui/ProjectWelcomePage.h                     |     7 +-
 clientgui/ProxyInfoPage.h                          |     7 +-
 clientgui/ProxyPage.h                              |     7 +-
 clientgui/SkinManager.h                            |     5 +-
 clientgui/TermsOfUsePage.h                         |     4 +-
 clientgui/UnavailablePage.h                        |     5 +-
 clientgui/ValidateAccountKey.h                     |     8 +-
 clientgui/ValidateEmailAddress.h                   |     8 +-
 clientgui/ValidateURL.h                            |     8 +-
 clientgui/ViewMessages.h                           |     5 +-
 clientgui/ViewNotices.h                            |     6 +-
 clientgui/ViewProjects.h                           |     6 +-
 clientgui/ViewResources.h                          |     6 +-
 clientgui/ViewStatistics.h                         |     6 +-
 clientgui/ViewTransfers.h                          |     6 +-
 clientgui/ViewWork.h                               |     6 +-
 clientgui/WizardAttach.cpp                         |     4 +-
 clientgui/WizardAttach.h                           |     6 +-
 clientgui/browser.cpp                              |     1 -
 clientgui/browser.h                                |     5 +-
 clientgui/build_po                                 |     3 -
 clientgui/common/wxPieCtrl.cpp                     |     2 +-
 clientgui/sg_BoincSimpleFrame.cpp                  |    62 +-
 clientgui/sg_BoincSimpleFrame.h                    |     9 +-
 clientgui/sg_CustomControls.h                      |     6 +-
 clientgui/sg_DlgMessages.h                         |     7 +-
 clientgui/sg_DlgPreferences.h                      |     8 +-
 clientgui/sg_PanelBase.h                           |     6 +-
 clientgui/sg_ProjectCommandPopup.h                 |     6 +-
 clientgui/sg_ProjectPanel.h                        |     6 +-
 clientgui/sg_ProjectWebSitesPopup.cpp              |     1 -
 clientgui/sg_ProjectWebSitesPopup.h                |     6 +-
 clientgui/sg_TaskCommandPopup.h                    |     6 +-
 clientgui/sg_TaskPanel.cpp                         |     1 -
 clientgui/sg_TaskPanel.h                           |     6 +-
 clientgui/stdwx.h                                  |     7 +-
 clientgui/wizardex.cpp                             |     3 -
 clientgui/wizardex.h                               |     6 +-
 clientscr/BOINCSaver_MacOS10_6_7.zip               |   Bin 0 -> 49995 bytes
 clientscr/Mac_Saver_Module.h                       |     4 +-
 clientscr/Mac_Saver_ModuleView.h                   |     3 +-
 clientscr/Mac_Saver_ModuleView.m                   |   157 +-
 clientscr/gfx_switcher.cpp                         |     8 +-
 clientscr/mac_saver_module.cpp                     |    47 +-
 clientscr/res/BOINCSaver.nib/classes.nib           |     0
 clientscr/res/BOINCSaver.nib/info.nib              |     0
 clientscr/res/BOINCSaver.nib/keyedobjects.nib      |   Bin
 clientscr/screensaver.cpp                          |     3 +-
 clientscr/ss_app.cpp                               |     8 +-
 configure.ac                                       |    68 +-
 db/boinc_db.cpp                                    |   391 +-
 db/boinc_db.h                                      |    90 +-
 db/boinc_db_types.h                                |   109 +-
 db/constraints.sql                                 |    10 +-
 db/db_base.cpp                                     |    34 +-
 db/db_base.h                                       |    27 +-
 db/schema.sql                                      |     9 +-
 doc/account_managers.inc                           |    18 +
 doc/addon_data.php                                 |    23 +-
 doc/build_po.php                                   |     8 +-
 doc/docutil.php                                    |     4 +-
 doc/download.php                                   |    41 +-
 doc/get_platforms.inc                              |    52 +-
 doc/help.php                                       |    42 +-
 doc/help_db.php                                    |    30 +-
 doc/help_funcs.php                                 |    31 +-
 doc/help_lang.php                                  |    10 +-
 doc/help_vol.php                                   |    19 +-
 doc/index.php                                      |   402 +-
 doc/links.php                                      |    67 +-
 doc/logo.php                                       |    19 +-
 doc/manpages/boinccmd.xml                          |     2 +-
 doc/projects.inc                                   |   328 +-
 doc/rss_main.php                                   |     2 +-
 doc/sim/sim_web.php                                |    18 +-
 doc/sim_web.php                                    |     1 +
 doc/versions.inc                                   |   105 +-
 doc/white.css                                      |    14 +-
 drupal/.gitignore                                  |     1 +
 drupal/sites/all/README.txt                        |     9 +
 .../boinc_server_migration.features.inc            |    11 +
 .../boinc_server_migration.info                    |    17 +
 .../boinc_server_migration.module                  |     3 +
 .../boinc_server_migration.strongarm.inc           |    17 +
 .../boinc_solr_search.features.inc                 |    11 +
 .../boinc_solr_search/boinc_solr_search.info       |    10 +
 .../boinc_solr_search/boinc_solr_search.module     |     3 +
 .../boinc_solr_search.strongarm.inc                |    23 +
 .../boinc_standard.features.fe_block_settings.inc  |    77 +
 .../boinc_standard/boinc_standard.features.inc     |   380 +
 .../boinc_standard.features.menu_custom.inc        |    22 +
 .../boinc_standard.features.menu_links.inc         |    90 +
 .../boinc_standard.features.role_export.inc        |    34 +
 .../boinc_standard.features.user_permission.inc    |   578 +
 .../features/boinc_standard/boinc_standard.info    |   253 +
 .../boinc_standard.input_formats.inc               |   200 +
 .../features/boinc_standard/boinc_standard.module  |    21 +
 .../boinc_standard.pages_default.inc               |   717 +
 .../boinc_standard.panels_default.inc              |    97 +
 .../boinc_standard/boinc_standard.strongarm.inc    |  1312 ++
 .../boinc_standard.views_default.inc               |   409 +
 .../boinc_standard/boinc_standard.wysiwyg.inc      |    84 +
 .../discussion_forums.context.inc                  |    61 +
 ...iscussion_forums.features.fe_block_settings.inc |   137 +
 .../discussion_forums.features.inc                 |    14 +
 .../discussion_forums.features.role_export.inc     |    16 +
 .../discussion_forums.features.user_permission.inc |   109 +
 .../discussion_forums/discussion_forums.info       |    46 +
 .../discussion_forums/discussion_forums.module     |    62 +
 .../discussion_forums.strongarm.inc                |    88 +
 .../all/features/friends/friends.features.inc      |    52 +
 .../friends/friends.features.user_permission.inc   |    19 +
 drupal/sites/all/features/friends/friends.info     |    14 +
 drupal/sites/all/features/friends/friends.module   |     3 +
 .../all/features/friends/friends.views_default.inc |   918 +
 .../global_search/global_search.features.inc       |    11 +
 .../global_search.features.user_permission.inc     |    36 +
 .../all/features/global_search/global_search.info  |    18 +
 .../features/global_search/global_search.module    |     3 +
 .../global_search/global_search.strongarm.inc      |    58 +
 .../global_search_solr.apachesolr_environments.inc |    93 +
 ...obal_search_solr.apachesolr_search_defaults.inc |    31 +
 .../global_search_solr.facetapi_defaults.inc       |   143 +
 ...obal_search_solr.features.fe_block_settings.inc |   257 +
 .../global_search_solr.features.inc                |    17 +
 ...global_search_solr.features.user_permission.inc |    36 +
 .../global_search_solr/global_search_solr.info     |    28 +
 .../global_search_solr/global_search_solr.module   |    12 +
 ...earch_teams_solr.apachesolr_search_defaults.inc |    33 +
 .../global_search_teams_solr.features.inc          |    11 +
 .../global_search_teams_solr.info                  |    11 +
 .../global_search_teams_solr.module                |     3 +
 .../internationalization.features.inc              |    11 +
 ...ternationalization.features.user_permission.inc |    50 +
 .../internationalization/internationalization.info |    28 +
 .../internationalization.module                    |     3 +
 .../internationalization.strongarm.inc             |    37 +
 .../mobilemenu.features.fe_block_settings.inc      |    77 +
 .../features/mobilemenu/mobilemenu.features.inc    |    11 +
 .../sites/all/features/mobilemenu/mobilemenu.info  |    18 +
 .../all/features/mobilemenu/mobilemenu.module      |     3 +
 .../features/mobilemenu/mobilemenu.strongarm.inc   |    82 +
 drupal/sites/all/features/news/news.context.inc    |    41 +
 .../news/news.features.fe_block_settings.inc       |   125 +
 drupal/sites/all/features/news/news.features.inc   |    43 +
 .../all/features/news/news.features.menu_links.inc |    34 +
 .../news/news.features.user_permission.inc         |    28 +
 drupal/sites/all/features/news/news.info           |    36 +
 drupal/sites/all/features/news/news.module         |     3 +
 drupal/sites/all/features/news/news.strongarm.inc  |    90 +
 .../sites/all/features/news/news.views_default.inc |   948 +
 .../private_messages/private_messages.features.inc |    11 +
 .../private_messages.features.user_permission.inc  |    52 +
 .../private_messages/private_messages.info         |    20 +
 .../private_messages/private_messages.module       |     3 +
 .../private_messages.panels_default.inc            |    72 +
 .../spam_controls/spam_controls.context.inc        |    41 +
 .../spam_controls.features.captcha.inc             |    19 +
 .../spam_controls/spam_controls.features.inc       |    14 +
 .../spam_controls.features.user_permission.inc     |    40 +
 .../all/features/spam_controls/spam_controls.info  |    30 +
 .../features/spam_controls/spam_controls.module    |    19 +
 .../spam_controls/spam_controls.strongarm.inc      |    80 +
 .../stats_charts/stats_charts.features.inc         |    20 +
 .../all/features/stats_charts/stats_charts.info    |    13 +
 .../all/features/stats_charts/stats_charts.module  |     3 +
 .../stats_charts/stats_charts.panels_default.inc   |    63 +
 .../stats_charts/stats_charts.views_default.inc    |   961 +
 .../features/team_forums/team_forums.context.inc   |    61 +
 .../features/team_forums/team_forums.features.inc  |    46 +
 .../team_forums.features.user_permission.inc       |    58 +
 .../all/features/team_forums/team_forums.info      |    39 +
 .../all/features/team_forums/team_forums.module    |     3 +
 .../team_forums/team_forums.pages_default.inc      |   624 +
 .../features/team_forums/team_forums.strongarm.inc |    89 +
 .../team_forums/team_forums.views_default.inc      |  1050 ++
 drupal/sites/all/features/teams/teams.features.inc |    43 +
 .../teams/teams.features.user_permission.inc       |    26 +
 drupal/sites/all/features/teams/teams.info         |    37 +
 drupal/sites/all/features/teams/teams.module       |     3 +
 .../all/features/teams/teams.pages_default.inc     |  1880 ++
 .../sites/all/features/teams/teams.strongarm.inc   |    82 +
 .../all/features/teams/teams.views_default.inc     |  4323 +++++
 .../user_account_host_list.features.inc            |    10 +
 .../user_account_host_list.info                    |    11 +
 .../user_account_host_list.module                  |     3 +
 .../user_account_host_list.views_default.inc       |  1546 ++
 .../user_account_project_list.features.inc         |    11 +
 .../user_account_project_list.info                 |    10 +
 .../user_account_project_list.module               |     3 +
 .../user_account_project_list.panels_default.inc   |    63 +
 .../user_preferences/user_preferences.features.inc |    10 +
 .../user_preferences.features.menu_links.inc       |    36 +
 .../user_preferences/user_preferences.info         |    17 +
 .../user_preferences/user_preferences.module       |     3 +
 .../user_preferences.views_default.inc             |   915 +
 .../user_profiles/user_profiles.context.inc        |    33 +
 .../user_profiles.features.content.inc             |   717 +
 .../user_profiles/user_profiles.features.inc       |   679 +
 .../user_profiles.features.menu_links.inc          |    53 +
 .../user_profiles.features.user_permission.inc     |    88 +
 .../all/features/user_profiles/user_profiles.info  |    66 +
 .../features/user_profiles/user_profiles.module    |     3 +
 .../user_profiles/user_profiles.panels_default.inc |    91 +
 .../user_profiles/user_profiles.strongarm.inc      |   120 +
 .../user_profiles/user_profiles.views_default.inc  |   830 +
 .../work_and_host_stats.features.inc               |    20 +
 .../work_and_host_stats/work_and_host_stats.info   |    24 +
 .../work_and_host_stats/work_and_host_stats.module |     3 +
 .../work_and_host_stats.pages_default.inc          |   142 +
 .../work_and_host_stats.views_default.inc          | 13045 ++++++++++++++
 .../sites/all/libraries/fonts/DejaVuSans-Bold.ttf  |   Bin 0 -> 672300 bytes
 .../all/libraries/fonts/DejaVuSans-BoldOblique.ttf |   Bin 0 -> 611212 bytes
 .../all/libraries/fonts/DejaVuSans-ExtraLight.ttf  |   Bin 0 -> 345208 bytes
 .../all/libraries/fonts/DejaVuSans-Oblique.ttf     |   Bin 0 -> 611556 bytes
 drupal/sites/all/libraries/fonts/DejaVuSans.ttf    |   Bin 0 -> 720012 bytes
 .../libraries/fonts/DejaVuSansCondensed-Bold.ttf   |   Bin 0 -> 631992 bytes
 .../fonts/DejaVuSansCondensed-BoldOblique.ttf      |   Bin 0 -> 580168 bytes
 .../fonts/DejaVuSansCondensed-Oblique.ttf          |   Bin 0 -> 576004 bytes
 .../all/libraries/fonts/DejaVuSansCondensed.ttf    |   Bin 0 -> 643852 bytes
 .../all/libraries/fonts/DejaVuSansMono-Bold.ttf    |   Bin 0 -> 313856 bytes
 .../libraries/fonts/DejaVuSansMono-BoldOblique.ttf |   Bin 0 -> 235848 bytes
 .../all/libraries/fonts/DejaVuSansMono-Oblique.ttf |   Bin 0 -> 241972 bytes
 .../sites/all/libraries/fonts/DejaVuSansMono.ttf   |   Bin 0 -> 333636 bytes
 .../sites/all/libraries/fonts/DejaVuSerif-Bold.ttf |   Bin 0 -> 341072 bytes
 .../all/libraries/fonts/DejaVuSerif-BoldItalic.ttf |   Bin 0 -> 332036 bytes
 .../all/libraries/fonts/DejaVuSerif-Italic.ttf     |   Bin 0 -> 338776 bytes
 drupal/sites/all/libraries/fonts/DejaVuSerif.ttf   |   Bin 0 -> 363200 bytes
 .../libraries/fonts/DejaVuSerifCondensed-Bold.ttf  |   Bin 0 -> 316440 bytes
 .../fonts/DejaVuSerifCondensed-BoldItalic.ttf      |   Bin 0 -> 331128 bytes
 .../fonts/DejaVuSerifCondensed-Italic.ttf          |   Bin 0 -> 338140 bytes
 .../all/libraries/fonts/DejaVuSerifCondensed.ttf   |   Bin 0 -> 330012 bytes
 drupal/sites/all/libraries/phpmailer/LICENSE       |   504 +
 .../all/libraries/phpmailer/PHPMailerAutoload.php  |    49 +
 drupal/sites/all/libraries/phpmailer/VERSION       |     1 +
 .../all/libraries/phpmailer/class.phpmailer.php    |  4025 +++++
 .../libraries/phpmailer/class.phpmaileroauth.php   |   197 +
 .../phpmailer/class.phpmaileroauthgoogle.php       |    77 +
 .../sites/all/libraries/phpmailer/class.pop3.php   |   407 +
 .../sites/all/libraries/phpmailer/class.smtp.php   |  1249 ++
 drupal/sites/all/libraries/phpmailer/composer.json |    44 +
 drupal/sites/all/libraries/phpmailer/composer.lock |  3576 ++++
 .../all/libraries/phpmailer/examples/DKIM.phps     |    38 +
 .../phpmailer/examples/code_generator.phps         |   597 +
 .../all/libraries/phpmailer/examples/contents.html |    17 +
 .../libraries/phpmailer/examples/contentsutf8.html |    20 +
 .../libraries/phpmailer/examples/exceptions.phps   |    35 +
 .../all/libraries/phpmailer/examples/gmail.phps    |    75 +
 .../libraries/phpmailer/examples/gmail_xoauth.phps |    85 +
 .../phpmailer/examples/images/phpmailer.png        |   Bin 0 -> 5831 bytes
 .../phpmailer/examples/images/phpmailer_mini.png   |   Bin 0 -> 1842 bytes
 .../all/libraries/phpmailer/examples/index.html    |    48 +
 .../all/libraries/phpmailer/examples/mail.phps     |    31 +
 .../libraries/phpmailer/examples/mailing_list.phps |    59 +
 .../phpmailer/examples/pop_before_smtp.phps        |    54 +
 .../phpmailer/examples/scripts/XRegExp.js          |   664 +
 .../phpmailer/examples/scripts/shAutoloader.js     |   122 +
 .../phpmailer/examples/scripts/shBrushPhp.js       |    72 +
 .../libraries/phpmailer/examples/scripts/shCore.js |     1 +
 .../phpmailer/examples/scripts/shLegacy.js         |   140 +
 .../phpmailer/examples/send_file_upload.phps       |    49 +
 .../examples/send_multiple_file_upload.phps        |    51 +
 .../all/libraries/phpmailer/examples/sendmail.phps |    33 +
 .../libraries/phpmailer/examples/signed-mail.phps  |    89 +
 .../all/libraries/phpmailer/examples/smtp.phps     |    54 +
 .../libraries/phpmailer/examples/smtp_check.phps   |    55 +
 .../libraries/phpmailer/examples/smtp_no_auth.phps |    50 +
 .../libraries/phpmailer/examples/ssl_options.phps  |    74 +
 .../libraries/phpmailer/examples/styles/shCore.css |    46 +
 .../phpmailer/examples/styles/shCoreDefault.css    |    77 +
 .../phpmailer/examples/styles/shCoreDjango.css     |    78 +
 .../phpmailer/examples/styles/shCoreEclipse.css    |    80 +
 .../phpmailer/examples/styles/shCoreEmacs.css      |    76 +
 .../phpmailer/examples/styles/shCoreFadeToGrey.css |    77 +
 .../phpmailer/examples/styles/shCoreMDUltra.css    |    76 +
 .../phpmailer/examples/styles/shCoreMidnight.css   |    76 +
 .../phpmailer/examples/styles/shCoreRDark.css      |    76 +
 .../examples/styles/shThemeAppleScript.css         |    21 +
 .../phpmailer/examples/styles/shThemeDefault.css   |    31 +
 .../phpmailer/examples/styles/shThemeDjango.css    |    32 +
 .../phpmailer/examples/styles/shThemeEclipse.css   |    34 +
 .../phpmailer/examples/styles/shThemeEmacs.css     |    30 +
 .../examples/styles/shThemeFadeToGrey.css          |    31 +
 .../phpmailer/examples/styles/shThemeMDUltra.css   |    30 +
 .../phpmailer/examples/styles/shThemeMidnight.css  |    30 +
 .../phpmailer/examples/styles/shThemeRDark.css     |    30 +
 .../examples/styles/shThemeVisualStudio.css        |    31 +
 .../phpmailer/examples/styles/wrapping.png         |   Bin 0 -> 631 bytes
 .../libraries/phpmailer/extras/EasyPeasyICS.php    |   148 +
 .../sites/all/libraries/phpmailer/extras/README.md |    17 +
 .../all/libraries/phpmailer/extras/htmlfilter.php  |  1159 ++
 .../phpmailer/extras/ntlm_sasl_client.php          |   185 +
 .../all/libraries/phpmailer/get_oauth_token.php    |   162 +
 .../phpmailer/language/phpmailer.lang-am.php       |    26 +
 .../phpmailer/language/phpmailer.lang-ar.php       |    27 +
 .../phpmailer/language/phpmailer.lang-az.php       |    26 +
 .../phpmailer/language/phpmailer.lang-be.php       |    26 +
 .../phpmailer/language/phpmailer.lang-bg.php       |    26 +
 .../phpmailer/language/phpmailer.lang-ca.php       |    26 +
 .../phpmailer/language/phpmailer.lang-ch.php       |    26 +
 .../phpmailer/language/phpmailer.lang-cs.php       |    25 +
 .../phpmailer/language/phpmailer.lang-da.php       |    26 +
 .../phpmailer/language/phpmailer.lang-de.php       |    25 +
 .../phpmailer/language/phpmailer.lang-el.php       |    25 +
 .../phpmailer/language/phpmailer.lang-eo.php       |    25 +
 .../phpmailer/language/phpmailer.lang-es.php       |    26 +
 .../phpmailer/language/phpmailer.lang-et.php       |    27 +
 .../phpmailer/language/phpmailer.lang-fa.php       |    27 +
 .../phpmailer/language/phpmailer.lang-fi.php       |    27 +
 .../phpmailer/language/phpmailer.lang-fo.php       |    26 +
 .../phpmailer/language/phpmailer.lang-fr.php       |    29 +
 .../phpmailer/language/phpmailer.lang-gl.php       |    26 +
 .../phpmailer/language/phpmailer.lang-he.php       |    26 +
 .../phpmailer/language/phpmailer.lang-hr.php       |    26 +
 .../phpmailer/language/phpmailer.lang-hu.php       |    26 +
 .../phpmailer/language/phpmailer.lang-id.php       |    26 +
 .../phpmailer/language/phpmailer.lang-it.php       |    27 +
 .../phpmailer/language/phpmailer.lang-ja.php       |    27 +
 .../phpmailer/language/phpmailer.lang-ka.php       |    26 +
 .../phpmailer/language/phpmailer.lang-ko.php       |    26 +
 .../phpmailer/language/phpmailer.lang-lt.php       |    26 +
 .../phpmailer/language/phpmailer.lang-lv.php       |    26 +
 .../phpmailer/language/phpmailer.lang-ms.php       |    26 +
 .../phpmailer/language/phpmailer.lang-nb.php       |    25 +
 .../phpmailer/language/phpmailer.lang-nl.php       |    26 +
 .../phpmailer/language/phpmailer.lang-pl.php       |    26 +
 .../phpmailer/language/phpmailer.lang-pt.php       |    26 +
 .../phpmailer/language/phpmailer.lang-pt_br.php    |    28 +
 .../phpmailer/language/phpmailer.lang-ro.php       |    26 +
 .../phpmailer/language/phpmailer.lang-ru.php       |    27 +
 .../phpmailer/language/phpmailer.lang-sk.php       |    26 +
 .../phpmailer/language/phpmailer.lang-sl.php       |    26 +
 .../phpmailer/language/phpmailer.lang-sr.php       |    26 +
 .../phpmailer/language/phpmailer.lang-sv.php       |    26 +
 .../phpmailer/language/phpmailer.lang-tr.php       |    29 +
 .../phpmailer/language/phpmailer.lang-uk.php       |    27 +
 .../phpmailer/language/phpmailer.lang-vi.php       |    26 +
 .../phpmailer/language/phpmailer.lang-zh.php       |    28 +
 .../phpmailer/language/phpmailer.lang-zh_cn.php    |    27 +
 drupal/sites/all/libraries/tinymce/changelog.txt   |  1519 ++
 .../libraries/tinymce/examples/accessibility.html  |   101 +
 .../all/libraries/tinymce/examples/css/content.css |   105 +
 .../all/libraries/tinymce/examples/css/word.css    |    53 +
 .../libraries/tinymce/examples/custom_formats.html |   111 +
 .../sites/all/libraries/tinymce/examples/full.html |   101 +
 .../all/libraries/tinymce/examples/index.html      |    10 +
 .../libraries/tinymce/examples/lists/image_list.js |     9 +
 .../libraries/tinymce/examples/lists/link_list.js  |    10 +
 .../libraries/tinymce/examples/lists/media_list.js |    14 +
 .../tinymce/examples/lists/template_list.js        |     9 +
 .../all/libraries/tinymce/examples/media/logo.jpg  |   Bin 0 -> 2729 bytes
 .../libraries/tinymce/examples/media/logo_over.jpg |   Bin 0 -> 6473 bytes
 .../libraries/tinymce/examples/media/sample.avi    |   Bin 0 -> 82944 bytes
 .../libraries/tinymce/examples/media/sample.dcr    |   Bin 0 -> 6774 bytes
 .../libraries/tinymce/examples/media/sample.flv    |   Bin 0 -> 88722 bytes
 .../libraries/tinymce/examples/media/sample.mov    |   Bin 0 -> 55622 bytes
 .../libraries/tinymce/examples/media/sample.ram    |     1 +
 .../all/libraries/tinymce/examples/media/sample.rm |   Bin 0 -> 17846 bytes
 .../libraries/tinymce/examples/media/sample.swf    |   Bin 0 -> 6118 bytes
 .../sites/all/libraries/tinymce/examples/menu.html |    18 +
 .../all/libraries/tinymce/examples/simple.html     |    47 +
 .../all/libraries/tinymce/examples/skins.html      |   216 +
 .../tinymce/examples/templates/layout1.htm         |    15 +
 .../tinymce/examples/templates/snippet1.htm        |     1 +
 .../sites/all/libraries/tinymce/examples/word.html |    72 +
 .../tinymce/jscripts/tiny_mce/langs/en.js          |     1 +
 .../tinymce/jscripts/tiny_mce/license.txt          |   504 +
 .../jscripts/tiny_mce/plugins/advhr/css/advhr.css  |     5 +
 .../tiny_mce/plugins/advhr/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/advhr/editor_plugin_src.js    |    57 +
 .../jscripts/tiny_mce/plugins/advhr/js/rule.js     |    43 +
 .../tiny_mce/plugins/advhr/langs/en_dlg.js         |     1 +
 .../jscripts/tiny_mce/plugins/advhr/rule.htm       |    58 +
 .../tiny_mce/plugins/advimage/css/advimage.css     |    13 +
 .../tiny_mce/plugins/advimage/editor_plugin.js     |     1 +
 .../tiny_mce/plugins/advimage/editor_plugin_src.js |    50 +
 .../jscripts/tiny_mce/plugins/advimage/image.htm   |   235 +
 .../tiny_mce/plugins/advimage/img/sample.gif       |   Bin 0 -> 1624 bytes
 .../jscripts/tiny_mce/plugins/advimage/js/image.js |   462 +
 .../tiny_mce/plugins/advimage/langs/en_dlg.js      |     1 +
 .../tiny_mce/plugins/advlink/css/advlink.css       |     8 +
 .../tiny_mce/plugins/advlink/editor_plugin.js      |     1 +
 .../tiny_mce/plugins/advlink/editor_plugin_src.js  |    61 +
 .../tiny_mce/plugins/advlink/js/advlink.js         |   539 +
 .../tiny_mce/plugins/advlink/langs/en_dlg.js       |     1 +
 .../jscripts/tiny_mce/plugins/advlink/link.htm     |   338 +
 .../tiny_mce/plugins/advlist/editor_plugin.js      |     1 +
 .../tiny_mce/plugins/advlist/editor_plugin_src.js  |   176 +
 .../tiny_mce/plugins/autolink/editor_plugin.js     |     1 +
 .../tiny_mce/plugins/autolink/editor_plugin_src.js |   174 +
 .../tiny_mce/plugins/autoresize/editor_plugin.js   |     1 +
 .../plugins/autoresize/editor_plugin_src.js        |   119 +
 .../tiny_mce/plugins/autosave/editor_plugin.js     |     1 +
 .../tiny_mce/plugins/autosave/editor_plugin_src.js |   431 +
 .../jscripts/tiny_mce/plugins/autosave/langs/en.js |     4 +
 .../tiny_mce/plugins/bbcode/editor_plugin.js       |     1 +
 .../tiny_mce/plugins/bbcode/editor_plugin_src.js   |   120 +
 .../tiny_mce/plugins/contextmenu/editor_plugin.js  |     1 +
 .../plugins/contextmenu/editor_plugin_src.js       |   161 +
 .../plugins/directionality/editor_plugin.js        |     1 +
 .../plugins/directionality/editor_plugin_src.js    |    82 +
 .../tiny_mce/plugins/emotions/editor_plugin.js     |     1 +
 .../tiny_mce/plugins/emotions/editor_plugin_src.js |    43 +
 .../tiny_mce/plugins/emotions/emotions.htm         |    42 +
 .../tiny_mce/plugins/emotions/img/smiley-cool.gif  |   Bin 0 -> 354 bytes
 .../tiny_mce/plugins/emotions/img/smiley-cry.gif   |   Bin 0 -> 329 bytes
 .../plugins/emotions/img/smiley-embarassed.gif     |   Bin 0 -> 331 bytes
 .../plugins/emotions/img/smiley-foot-in-mouth.gif  |   Bin 0 -> 342 bytes
 .../tiny_mce/plugins/emotions/img/smiley-frown.gif |   Bin 0 -> 340 bytes
 .../plugins/emotions/img/smiley-innocent.gif       |   Bin 0 -> 336 bytes
 .../tiny_mce/plugins/emotions/img/smiley-kiss.gif  |   Bin 0 -> 338 bytes
 .../plugins/emotions/img/smiley-laughing.gif       |   Bin 0 -> 343 bytes
 .../plugins/emotions/img/smiley-money-mouth.gif    |   Bin 0 -> 321 bytes
 .../plugins/emotions/img/smiley-sealed.gif         |   Bin 0 -> 323 bytes
 .../tiny_mce/plugins/emotions/img/smiley-smile.gif |   Bin 0 -> 344 bytes
 .../plugins/emotions/img/smiley-surprised.gif      |   Bin 0 -> 338 bytes
 .../plugins/emotions/img/smiley-tongue-out.gif     |   Bin 0 -> 328 bytes
 .../plugins/emotions/img/smiley-undecided.gif      |   Bin 0 -> 337 bytes
 .../tiny_mce/plugins/emotions/img/smiley-wink.gif  |   Bin 0 -> 350 bytes
 .../tiny_mce/plugins/emotions/img/smiley-yell.gif  |   Bin 0 -> 336 bytes
 .../tiny_mce/plugins/emotions/js/emotions.js       |    43 +
 .../tiny_mce/plugins/emotions/langs/en_dlg.js      |     1 +
 .../jscripts/tiny_mce/plugins/example/dialog.htm   |    22 +
 .../tiny_mce/plugins/example/editor_plugin.js      |     1 +
 .../tiny_mce/plugins/example/editor_plugin_src.js  |    84 +
 .../tiny_mce/plugins/example/img/example.gif       |   Bin 0 -> 87 bytes
 .../jscripts/tiny_mce/plugins/example/js/dialog.js |    19 +
 .../jscripts/tiny_mce/plugins/example/langs/en.js  |     3 +
 .../tiny_mce/plugins/example/langs/en_dlg.js       |     3 +
 .../plugins/example_dependency/editor_plugin.js    |     1 +
 .../example_dependency/editor_plugin_src.js        |    50 +
 .../tiny_mce/plugins/fullpage/css/fullpage.css     |   143 +
 .../tiny_mce/plugins/fullpage/editor_plugin.js     |     1 +
 .../tiny_mce/plugins/fullpage/editor_plugin_src.js |   405 +
 .../tiny_mce/plugins/fullpage/fullpage.htm         |   259 +
 .../tiny_mce/plugins/fullpage/js/fullpage.js       |   232 +
 .../tiny_mce/plugins/fullpage/langs/en_dlg.js      |     1 +
 .../tiny_mce/plugins/fullscreen/editor_plugin.js   |     1 +
 .../plugins/fullscreen/editor_plugin_src.js        |   159 +
 .../tiny_mce/plugins/fullscreen/fullscreen.htm     |   110 +
 .../tiny_mce/plugins/iespell/editor_plugin.js      |     1 +
 .../tiny_mce/plugins/iespell/editor_plugin_src.js  |    54 +
 .../tiny_mce/plugins/inlinepopups/editor_plugin.js |     1 +
 .../plugins/inlinepopups/editor_plugin_src.js      |   699 +
 .../inlinepopups/skins/clearlooks2/img/alert.gif   |   Bin 0 -> 810 bytes
 .../inlinepopups/skins/clearlooks2/img/button.gif  |   Bin 0 -> 272 bytes
 .../inlinepopups/skins/clearlooks2/img/buttons.gif |   Bin 0 -> 1195 bytes
 .../inlinepopups/skins/clearlooks2/img/confirm.gif |   Bin 0 -> 907 bytes
 .../inlinepopups/skins/clearlooks2/img/corners.gif |   Bin 0 -> 909 bytes
 .../skins/clearlooks2/img/horizontal.gif           |   Bin 0 -> 769 bytes
 .../skins/clearlooks2/img/vertical.gif             |   Bin 0 -> 84 bytes
 .../inlinepopups/skins/clearlooks2/window.css      |    90 +
 .../tiny_mce/plugins/inlinepopups/template.htm     |   387 +
 .../plugins/insertdatetime/editor_plugin.js        |     1 +
 .../plugins/insertdatetime/editor_plugin_src.js    |    83 +
 .../tiny_mce/plugins/layer/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/layer/editor_plugin_src.js    |   262 +
 .../tiny_mce/plugins/legacyoutput/editor_plugin.js |     1 +
 .../plugins/legacyoutput/editor_plugin_src.js      |   139 +
 .../tiny_mce/plugins/lists/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/lists/editor_plugin_src.js    |   954 +
 .../jscripts/tiny_mce/plugins/media/css/media.css  |    17 +
 .../tiny_mce/plugins/media/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/media/editor_plugin_src.js    |   890 +
 .../jscripts/tiny_mce/plugins/media/js/embed.js    |    73 +
 .../jscripts/tiny_mce/plugins/media/js/media.js    |   470 +
 .../tiny_mce/plugins/media/langs/en_dlg.js         |     1 +
 .../jscripts/tiny_mce/plugins/media/media.htm      |   922 +
 .../tiny_mce/plugins/media/moxieplayer.swf         |   Bin 0 -> 19980 bytes
 .../tiny_mce/plugins/nonbreaking/editor_plugin.js  |     1 +
 .../plugins/nonbreaking/editor_plugin_src.js       |    54 +
 .../tiny_mce/plugins/noneditable/editor_plugin.js  |     1 +
 .../plugins/noneditable/editor_plugin_src.js       |   433 +
 .../tiny_mce/plugins/pagebreak/editor_plugin.js    |     1 +
 .../plugins/pagebreak/editor_plugin_src.js         |    74 +
 .../tiny_mce/plugins/paste/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/paste/editor_plugin_src.js    |   871 +
 .../tiny_mce/plugins/paste/js/pastetext.js         |    36 +
 .../tiny_mce/plugins/paste/js/pasteword.js         |    51 +
 .../tiny_mce/plugins/paste/langs/en_dlg.js         |     1 +
 .../jscripts/tiny_mce/plugins/paste/pastetext.htm  |    27 +
 .../jscripts/tiny_mce/plugins/paste/pasteword.htm  |    21 +
 .../tiny_mce/plugins/preview/editor_plugin.js      |     1 +
 .../tiny_mce/plugins/preview/editor_plugin_src.js  |    53 +
 .../jscripts/tiny_mce/plugins/preview/example.html |    28 +
 .../tiny_mce/plugins/preview/jscripts/embed.js     |    73 +
 .../jscripts/tiny_mce/plugins/preview/preview.html |    17 +
 .../tiny_mce/plugins/print/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/print/editor_plugin_src.js    |    34 +
 .../tiny_mce/plugins/save/editor_plugin.js         |     1 +
 .../tiny_mce/plugins/save/editor_plugin_src.js     |   101 +
 .../plugins/searchreplace/css/searchreplace.css    |     6 +
 .../plugins/searchreplace/editor_plugin.js         |     1 +
 .../plugins/searchreplace/editor_plugin_src.js     |    61 +
 .../plugins/searchreplace/js/searchreplace.js      |   142 +
 .../tiny_mce/plugins/searchreplace/langs/en_dlg.js |     1 +
 .../plugins/searchreplace/searchreplace.htm        |   100 +
 .../tiny_mce/plugins/spellchecker/css/content.css  |     1 +
 .../tiny_mce/plugins/spellchecker/editor_plugin.js |     1 +
 .../plugins/spellchecker/editor_plugin_src.js      |   436 +
 .../tiny_mce/plugins/spellchecker/img/wline.gif    |   Bin 0 -> 46 bytes
 .../jscripts/tiny_mce/plugins/style/css/props.css  |    14 +
 .../tiny_mce/plugins/style/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/style/editor_plugin_src.js    |    71 +
 .../jscripts/tiny_mce/plugins/style/js/props.js    |   709 +
 .../tiny_mce/plugins/style/langs/en_dlg.js         |     1 +
 .../jscripts/tiny_mce/plugins/style/props.htm      |   845 +
 .../jscripts/tiny_mce/plugins/style/readme.txt     |    19 +
 .../tiny_mce/plugins/tabfocus/editor_plugin.js     |     1 +
 .../tiny_mce/plugins/tabfocus/editor_plugin_src.js |   122 +
 .../jscripts/tiny_mce/plugins/table/cell.htm       |   180 +
 .../jscripts/tiny_mce/plugins/table/css/cell.css   |    17 +
 .../jscripts/tiny_mce/plugins/table/css/row.css    |    25 +
 .../jscripts/tiny_mce/plugins/table/css/table.css  |    13 +
 .../tiny_mce/plugins/table/editor_plugin.js        |     1 +
 .../tiny_mce/plugins/table/editor_plugin_src.js    |  1428 ++
 .../jscripts/tiny_mce/plugins/table/js/cell.js     |   319 +
 .../tiny_mce/plugins/table/js/merge_cells.js       |    27 +
 .../jscripts/tiny_mce/plugins/table/js/row.js      |   237 +
 .../jscripts/tiny_mce/plugins/table/js/table.js    |   489 +
 .../tiny_mce/plugins/table/langs/en_dlg.js         |     1 +
 .../tiny_mce/plugins/table/merge_cells.htm         |    32 +
 .../jscripts/tiny_mce/plugins/table/row.htm        |   158 +
 .../jscripts/tiny_mce/plugins/table/table.htm      |   188 +
 .../jscripts/tiny_mce/plugins/template/blank.htm   |    12 +
 .../tiny_mce/plugins/template/css/template.css     |    23 +
 .../tiny_mce/plugins/template/editor_plugin.js     |     1 +
 .../tiny_mce/plugins/template/editor_plugin_src.js |   159 +
 .../tiny_mce/plugins/template/js/template.js       |   106 +
 .../tiny_mce/plugins/template/langs/en_dlg.js      |     1 +
 .../tiny_mce/plugins/template/template.htm         |    31 +
 .../plugins/visualblocks/css/visualblocks.css      |    19 +
 .../tiny_mce/plugins/visualblocks/editor_plugin.js |     1 +
 .../plugins/visualblocks/editor_plugin_src.js      |    63 +
 .../tiny_mce/plugins/visualchars/editor_plugin.js  |     1 +
 .../plugins/visualchars/editor_plugin_src.js       |    83 +
 .../tiny_mce/plugins/wordcount/editor_plugin.js    |     1 +
 .../plugins/wordcount/editor_plugin_src.js         |   122 +
 .../jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm  |   142 +
 .../tiny_mce/plugins/xhtmlxtras/acronym.htm        |   142 +
 .../tiny_mce/plugins/xhtmlxtras/attributes.htm     |   149 +
 .../jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm  |   142 +
 .../tiny_mce/plugins/xhtmlxtras/css/attributes.css |    11 +
 .../tiny_mce/plugins/xhtmlxtras/css/popup.css      |     9 +
 .../jscripts/tiny_mce/plugins/xhtmlxtras/del.htm   |   162 +
 .../tiny_mce/plugins/xhtmlxtras/editor_plugin.js   |     1 +
 .../plugins/xhtmlxtras/editor_plugin_src.js        |   132 +
 .../jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm   |   162 +
 .../tiny_mce/plugins/xhtmlxtras/js/abbr.js         |    28 +
 .../tiny_mce/plugins/xhtmlxtras/js/acronym.js      |    28 +
 .../tiny_mce/plugins/xhtmlxtras/js/attributes.js   |   111 +
 .../tiny_mce/plugins/xhtmlxtras/js/cite.js         |    28 +
 .../jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js |    53 +
 .../plugins/xhtmlxtras/js/element_common.js        |   229 +
 .../jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js |    53 +
 .../tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js    |     1 +
 .../jscripts/tiny_mce/themes/advanced/about.htm    |    52 +
 .../jscripts/tiny_mce/themes/advanced/anchor.htm   |    26 +
 .../jscripts/tiny_mce/themes/advanced/charmap.htm  |    55 +
 .../tiny_mce/themes/advanced/color_picker.htm      |    74 +
 .../tiny_mce/themes/advanced/editor_template.js    |     1 +
 .../themes/advanced/editor_template_src.js         |  1467 ++
 .../jscripts/tiny_mce/themes/advanced/image.htm    |    80 +
 .../tiny_mce/themes/advanced/img/colorpicker.jpg   |   Bin 0 -> 2584 bytes
 .../tiny_mce/themes/advanced/img/flash.gif         |   Bin 0 -> 239 bytes
 .../tiny_mce/themes/advanced/img/icons.gif         |   Bin 0 -> 11982 bytes
 .../tiny_mce/themes/advanced/img/iframe.gif        |   Bin 0 -> 600 bytes
 .../tiny_mce/themes/advanced/img/pagebreak.gif     |   Bin 0 -> 325 bytes
 .../tiny_mce/themes/advanced/img/quicktime.gif     |   Bin 0 -> 301 bytes
 .../tiny_mce/themes/advanced/img/realmedia.gif     |   Bin 0 -> 439 bytes
 .../tiny_mce/themes/advanced/img/shockwave.gif     |   Bin 0 -> 384 bytes
 .../tiny_mce/themes/advanced/img/trans.gif         |   Bin 0 -> 43 bytes
 .../tiny_mce/themes/advanced/img/video.gif         |   Bin 0 -> 597 bytes
 .../tiny_mce/themes/advanced/img/windowsmedia.gif  |   Bin 0 -> 415 bytes
 .../jscripts/tiny_mce/themes/advanced/js/about.js  |    73 +
 .../jscripts/tiny_mce/themes/advanced/js/anchor.js |    44 +
 .../tiny_mce/themes/advanced/js/charmap.js         |   363 +
 .../tiny_mce/themes/advanced/js/color_picker.js    |   345 +
 .../jscripts/tiny_mce/themes/advanced/js/image.js  |   251 +
 .../jscripts/tiny_mce/themes/advanced/js/link.js   |   153 +
 .../tiny_mce/themes/advanced/js/source_editor.js   |    78 +
 .../jscripts/tiny_mce/themes/advanced/langs/en.js  |     1 +
 .../tiny_mce/themes/advanced/langs/en_dlg.js       |     1 +
 .../jscripts/tiny_mce/themes/advanced/link.htm     |    57 +
 .../tiny_mce/themes/advanced/shortcuts.htm         |    47 +
 .../themes/advanced/skins/default/content.css      |    50 +
 .../themes/advanced/skins/default/dialog.css       |   117 +
 .../themes/advanced/skins/default/img/buttons.png  |   Bin 0 -> 3133 bytes
 .../themes/advanced/skins/default/img/items.gif    |   Bin 0 -> 64 bytes
 .../advanced/skins/default/img/menu_arrow.gif      |   Bin 0 -> 68 bytes
 .../advanced/skins/default/img/menu_check.gif      |   Bin 0 -> 70 bytes
 .../themes/advanced/skins/default/img/progress.gif |   Bin 0 -> 1787 bytes
 .../themes/advanced/skins/default/img/tabs.gif     |   Bin 0 -> 1322 bytes
 .../tiny_mce/themes/advanced/skins/default/ui.css  |   215 +
 .../themes/advanced/skins/highcontrast/content.css |    24 +
 .../themes/advanced/skins/highcontrast/dialog.css  |   105 +
 .../themes/advanced/skins/highcontrast/ui.css      |   102 +
 .../themes/advanced/skins/o2k7/content.css         |    48 +
 .../tiny_mce/themes/advanced/skins/o2k7/dialog.css |   117 +
 .../themes/advanced/skins/o2k7/img/button_bg.png   |   Bin 0 -> 2766 bytes
 .../advanced/skins/o2k7/img/button_bg_black.png    |   Bin 0 -> 651 bytes
 .../advanced/skins/o2k7/img/button_bg_silver.png   |   Bin 0 -> 2084 bytes
 .../tiny_mce/themes/advanced/skins/o2k7/ui.css     |   218 +
 .../themes/advanced/skins/o2k7/ui_black.css        |     8 +
 .../themes/advanced/skins/o2k7/ui_silver.css       |     5 +
 .../tiny_mce/themes/advanced/source_editor.htm     |    25 +
 .../tiny_mce/themes/simple/editor_template.js      |     1 +
 .../tiny_mce/themes/simple/editor_template_src.js  |    84 +
 .../jscripts/tiny_mce/themes/simple/img/icons.gif  |   Bin 0 -> 806 bytes
 .../jscripts/tiny_mce/themes/simple/langs/en.js    |     1 +
 .../themes/simple/skins/default/content.css        |    25 +
 .../tiny_mce/themes/simple/skins/default/ui.css    |    32 +
 .../tiny_mce/themes/simple/skins/o2k7/content.css  |    17 +
 .../themes/simple/skins/o2k7/img/button_bg.png     |   Bin 0 -> 5102 bytes
 .../tiny_mce/themes/simple/skins/o2k7/ui.css       |    35 +
 .../tinymce/jscripts/tiny_mce/tiny_mce.js          |     1 +
 .../tinymce/jscripts/tiny_mce/tiny_mce_popup.js    |     5 +
 .../tinymce/jscripts/tiny_mce/tiny_mce_src.js      | 17480 +++++++++++++++++++
 .../jscripts/tiny_mce/utils/editable_selects.js    |    70 +
 .../tinymce/jscripts/tiny_mce/utils/form_utils.js  |   210 +
 .../tinymce/jscripts/tiny_mce/utils/mctabs.js      |   162 +
 .../tinymce/jscripts/tiny_mce/utils/validate.js    |   252 +
 drupal/sites/all/themes/zen/CHANGELOG.txt          |   390 +
 drupal/sites/all/themes/zen/LICENSE.txt            |   274 +
 drupal/sites/all/themes/zen/README-FIRST.txt       |    79 +
 drupal/sites/all/themes/zen/STARTERKIT/README.txt  |   127 +
 .../all/themes/zen/STARTERKIT/STARTERKIT.info.txt  |    96 +
 .../sites/all/themes/zen/STARTERKIT/css/README.txt |   134 +
 .../zen/STARTERKIT/css/block-editing-rtl.css       |    10 +
 .../themes/zen/STARTERKIT/css/block-editing.css    |    25 +
 .../sites/all/themes/zen/STARTERKIT/css/blocks.css |    96 +
 .../all/themes/zen/STARTERKIT/css/comments.css     |    79 +
 .../zen/STARTERKIT/css/drupal6-reference.css       |  1983 +++
 .../sites/all/themes/zen/STARTERKIT/css/fields.css |    44 +
 .../all/themes/zen/STARTERKIT/css/forms-rtl.css    |    46 +
 .../sites/all/themes/zen/STARTERKIT/css/forms.css  |   134 +
 .../themes/zen/STARTERKIT/css/html-reset-rtl.css   |    37 +
 .../all/themes/zen/STARTERKIT/css/html-reset.css   |   291 +
 drupal/sites/all/themes/zen/STARTERKIT/css/ie.css  |    47 +
 .../all/themes/zen/STARTERKIT/css/ie6-rtl.css      |    12 +
 drupal/sites/all/themes/zen/STARTERKIT/css/ie6.css |   105 +
 .../themes/zen/STARTERKIT/css/layout-fixed-rtl.css |    74 +
 .../all/themes/zen/STARTERKIT/css/layout-fixed.css |   212 +
 .../zen/STARTERKIT/css/layout-liquid-rtl.css       |    68 +
 .../themes/zen/STARTERKIT/css/layout-liquid.css    |   202 +
 .../all/themes/zen/STARTERKIT/css/messages-rtl.css |    13 +
 .../all/themes/zen/STARTERKIT/css/messages.css     |    53 +
 .../all/themes/zen/STARTERKIT/css/navigation.css   |    44 +
 .../sites/all/themes/zen/STARTERKIT/css/nodes.css  |    81 +
 .../themes/zen/STARTERKIT/css/page-backgrounds.css |    38 +
 .../all/themes/zen/STARTERKIT/css/pages-rtl.css    |    19 +
 .../sites/all/themes/zen/STARTERKIT/css/pages.css  |   314 +
 .../themes/zen/STARTERKIT/css/panels-styles.css    |     6 +
 .../sites/all/themes/zen/STARTERKIT/css/print.css  |    73 +
 .../all/themes/zen/STARTERKIT/css/tabs-rtl.css     |    22 +
 .../sites/all/themes/zen/STARTERKIT/css/tabs.css   |   128 +
 .../all/themes/zen/STARTERKIT/css/views-styles.css |     6 +
 .../all/themes/zen/STARTERKIT/css/wireframes.css   |    24 +
 drupal/sites/all/themes/zen/STARTERKIT/favicon.ico |   Bin 0 -> 15086 bytes
 .../zen/STARTERKIT/images-source/messages.psd      |   Bin 0 -> 199810 bytes
 .../STARTERKIT/images-source/panels-layouts.psd    |   Bin 0 -> 78724 bytes
 .../zen/STARTERKIT/images-source/screenshot.psd    |   Bin 0 -> 196125 bytes
 .../themes/zen/STARTERKIT/images-source/tabs.psd   |   Bin 0 -> 56436 bytes
 .../zen/STARTERKIT/images/messages-error-ie6.png   |   Bin 0 -> 719 bytes
 .../zen/STARTERKIT/images/messages-error.png       |   Bin 0 -> 727 bytes
 .../zen/STARTERKIT/images/messages-status-ie6.png  |   Bin 0 -> 610 bytes
 .../zen/STARTERKIT/images/messages-status.png      |   Bin 0 -> 560 bytes
 .../zen/STARTERKIT/images/messages-warning-ie6.png |   Bin 0 -> 693 bytes
 .../zen/STARTERKIT/images/messages-warning.png     |   Bin 0 -> 664 bytes
 .../all/themes/zen/STARTERKIT/images/tab-bar.png   |   Bin 0 -> 160 bytes
 .../themes/zen/STARTERKIT/images/tab-left-ie6.png  |   Bin 0 -> 331 bytes
 .../all/themes/zen/STARTERKIT/images/tab-left.png  |   Bin 0 -> 303 bytes
 .../themes/zen/STARTERKIT/images/tab-right-ie6.png |   Bin 0 -> 473 bytes
 .../all/themes/zen/STARTERKIT/images/tab-right.png |   Bin 0 -> 685 bytes
 .../zen/STARTERKIT/images/tab-secondary-bg.png     |   Bin 0 -> 166 bytes
 .../themes/zen/STARTERKIT/images/tab-secondary.png |   Bin 0 -> 195 bytes
 .../sites/all/themes/zen/STARTERKIT/js/README.txt  |    14 +
 drupal/sites/all/themes/zen/STARTERKIT/logo.png    |   Bin 0 -> 1027 bytes
 .../sites/all/themes/zen/STARTERKIT/screenshot.png |   Bin 0 -> 1119 bytes
 .../sites/all/themes/zen/STARTERKIT/template.php   |   155 +
 .../all/themes/zen/STARTERKIT/templates/README.txt |    82 +
 .../all/themes/zen/STARTERKIT/theme-settings.php   |    43 +
 drupal/sites/all/themes/zen/layouts/README.txt     |     5 +
 .../one_sidebar_first/one-sidebar-first-admin.css  |    41 +
 .../one_sidebar_first/one-sidebar-first.css        |    36 +
 .../one_sidebar_first/one-sidebar-first.png        |   Bin 0 -> 813 bytes
 .../one_sidebar_first/one_sidebar_first.inc        |    20 +
 .../zen-one-sidebar-first-admin.tpl.php            |    28 +
 .../zen-one-sidebar-first.tpl.php                  |    28 +
 .../one-sidebar-second-admin.css                   |    42 +
 .../one_sidebar_second/one-sidebar-second.css      |    50 +
 .../one_sidebar_second/one-sidebar-second.png      |   Bin 0 -> 812 bytes
 .../one_sidebar_second/one_sidebar_second.inc      |    20 +
 .../zen-one-sidebar-second-admin.tpl.php           |    28 +
 .../zen-one-sidebar-second.tpl.php                 |    28 +
 .../layouts/two_sidebars/two-sidebars-admin.css    |    53 +
 .../zen/layouts/two_sidebars/two-sidebars.css      |    51 +
 .../zen/layouts/two_sidebars/two-sidebars.png      |   Bin 0 -> 817 bytes
 .../zen/layouts/two_sidebars/two_sidebars.inc      |    21 +
 .../two_sidebars/zen-two-sidebars-admin.tpl.php    |    33 +
 .../layouts/two_sidebars/zen-two-sidebars.tpl.php  |    33 +
 .../two-sidebars-first-admin.css                   |    53 +
 .../two_sidebars_first/two-sidebars-first.css      |    51 +
 .../two_sidebars_first/two-sidebars-first.png      |   Bin 0 -> 812 bytes
 .../two_sidebars_first/two_sidebars_first.inc      |    21 +
 .../zen-two-sidebars-first-admin.tpl.php           |    33 +
 .../zen-two-sidebars-first.tpl.php                 |    33 +
 .../two-sidebars-second-admin.css                  |    55 +
 .../two_sidebars_second/two-sidebars-second.css    |    62 +
 .../two_sidebars_second/two-sidebars-second.png    |   Bin 0 -> 814 bytes
 .../two_sidebars_second/two_sidebars_second.inc    |    21 +
 .../zen-two-sidebars-second-admin.tpl.php          |    33 +
 .../zen-two-sidebars-second.tpl.php                |    33 +
 drupal/sites/all/themes/zen/logo.png               |   Bin 0 -> 1027 bytes
 drupal/sites/all/themes/zen/template.php           |   668 +
 .../sites/all/themes/zen/templates/block.tpl.php   |    66 +
 .../themes/zen/templates/comment-wrapper.tpl.php   |    45 +
 .../sites/all/themes/zen/templates/comment.tpl.php |    90 +
 .../themes/zen/templates/maintenance-page.tpl.php  |   107 +
 drupal/sites/all/themes/zen/templates/node.tpl.php |   104 +
 drupal/sites/all/themes/zen/templates/page.tpl.php |   252 +
 .../themes/zen/templates/region-sidebar.tpl.php    |    31 +
 .../sites/all/themes/zen/templates/region.tpl.php  |    31 +
 .../all/themes/zen/templates/views-view.tpl.php    |    92 +
 drupal/sites/all/themes/zen/theme-settings.php     |   127 +
 drupal/sites/all/themes/zen/translations/de.po     |   240 +
 drupal/sites/all/themes/zen/translations/hu.po     |   144 +
 drupal/sites/all/themes/zen/translations/zen.pot   |   237 +
 drupal/sites/all/themes/zen/zen-internals/TODO.txt |     7 +
 .../all/themes/zen/zen-internals/css/generate.sh   |    80 +
 .../sites/all/themes/zen/zen-internals/css/ie.css  |    47 +
 .../all/themes/zen/zen-internals/css/ie6-rtl.css   |    12 +
 .../sites/all/themes/zen/zen-internals/css/ie6.css |   105 +
 .../all/themes/zen/zen-internals/css/print.css     |    73 +
 .../zen/zen-internals/css/theme-settings-rtl.css   |    56 +
 .../zen/zen-internals/css/theme-settings.css       |    69 +
 .../themes/zen/zen-internals/css/zen-fixed-rtl.css |   243 +
 .../all/themes/zen/zen-internals/css/zen-fixed.css |  1615 ++
 .../zen/zen-internals/css/zen-liquid-rtl.css       |   237 +
 .../themes/zen/zen-internals/css/zen-liquid.css    |  1605 ++
 .../zen-internals/images/messages-error-ie6.png    |   Bin 0 -> 719 bytes
 .../zen/zen-internals/images/messages-error.png    |   Bin 0 -> 727 bytes
 .../zen-internals/images/messages-status-ie6.png   |   Bin 0 -> 610 bytes
 .../zen/zen-internals/images/messages-status.png   |   Bin 0 -> 560 bytes
 .../zen-internals/images/messages-warning-ie6.png  |   Bin 0 -> 693 bytes
 .../zen/zen-internals/images/messages-warning.png  |   Bin 0 -> 664 bytes
 .../themes/zen/zen-internals/images/tab-bar.png    |   Bin 0 -> 160 bytes
 .../zen/zen-internals/images/tab-left-ie6.png      |   Bin 0 -> 331 bytes
 .../themes/zen/zen-internals/images/tab-left.png   |   Bin 0 -> 303 bytes
 .../zen/zen-internals/images/tab-right-ie6.png     |   Bin 0 -> 473 bytes
 .../themes/zen/zen-internals/images/tab-right.png  |   Bin 0 -> 685 bytes
 .../zen/zen-internals/images/tab-secondary-bg.png  |   Bin 0 -> 166 bytes
 .../zen/zen-internals/images/tab-secondary.png     |   Bin 0 -> 195 bytes
 .../themes/zen/zen-internals/js/theme-settings.js  |    27 +
 .../all/themes/zen/zen-internals/screenshot.png    |   Bin 0 -> 3807 bytes
 .../zen/zen-internals/template.block-editing.inc   |    88 +
 .../themes/zen/zen-internals/template.comment.inc  |    58 +
 .../zen-internals/template.conditional-styles.inc  |   112 +
 .../zen/zen-internals/template.theme-registry.inc  |   137 +
 .../all/themes/zen/zen-internals/template.zen.inc  |    41 +
 drupal/sites/all/themes/zen/zen.info               |    49 +
 .../boinc_solr_comments/INSTALL.txt                |    15 +
 .../boinc_solr_comments/README.txt                 |    73 +
 .../boinc_solr_comments.admin.inc                  |    54 +
 .../boinc_solr_comments/boinc_solr_comments.info   |     9 +
 .../boinc_solr_comments/boinc_solr_comments.module |   434 +
 .../boinc/modules/boinccore/boinccore.admin.inc    |   229 +
 .../default/boinc/modules/boinccore/boinccore.info |     8 +
 .../boinc/modules/boinccore/boinccore.install      |    28 +
 .../boinc/modules/boinccore/boinccore.module       |  1933 ++
 .../boinc/modules/boincimport/boincimport.info     |    11 +
 .../boinc/modules/boincimport/boincimport.install  |    42 +
 .../boinc/modules/boincimport/boincimport.module   |  4209 +++++
 .../modules/boincimport/boincimport.pages.inc      |   455 +
 .../boincimport/includes/import_subscriptions.php  |    44 +
 .../modules/boincimport/includes/import_team.php   |    93 +
 .../modules/boincimport/includes/import_users.php  |    71 +
 .../views/views_handler_argument_boincteam_id.inc  |    21 +
 .../boinc/modules/boincstats/boincstats.admin.inc  |    72 +
 .../boinc/modules/boincstats/boincstats.info       |     6 +
 .../boinc/modules/boincstats/boincstats.module     |   476 +
 .../modules/boincstats/includes/pchart/GPLv3.txt   |   675 +
 .../includes/pchart/class/pBarcode128.class.php    |   184 +
 .../includes/pchart/class/pBarcode39.class.php     |   200 +
 .../includes/pchart/class/pBubble.class.php        |   326 +
 .../includes/pchart/class/pCache.class.php         |   280 +
 .../includes/pchart/class/pData.class.php          |   787 +
 .../includes/pchart/class/pDraw.class.php          |  6193 +++++++
 .../includes/pchart/class/pImage.class.php         |   472 +
 .../includes/pchart/class/pIndicator.class.php     |   241 +
 .../includes/pchart/class/pPie.class.php           |  1500 ++
 .../includes/pchart/class/pRadar.class.php         |   681 +
 .../includes/pchart/class/pScatter.class.php       |  1158 ++
 .../includes/pchart/class/pSplit.class.php         |   131 +
 .../includes/pchart/class/pSpring.class.php        |   868 +
 .../includes/pchart/class/pStock.class.php         |   216 +
 .../includes/pchart/class/pSurface.class.php       |   315 +
 .../default/boinc/modules/boincteam/boincteam.info |     9 +
 .../boinc/modules/boincteam/boincteam.install      |    23 +
 .../boinc/modules/boincteam/boincteam.module       |  1309 ++
 .../boinc/modules/boincteam/boincteam.views.inc    |   455 +
 .../boinc/modules/boincteam/boincteam_forum.info   |     6 +
 .../modules/boincteam/boincteam_forum.install      |   118 +
 .../boinc/modules/boincteam/boincteam_forum.module |   402 +
 .../modules/boincteam/boincteam_forum.views.inc    |    92 +
 .../modules/boincteam/includes/boincteam.forms.inc |   624 +
 .../boincteam/includes/boincteam.helpers.inc       |   113 +
 .../boincteam/includes/boincteam_forum.forms.inc   |   321 +
 .../views_handler_argument_boincteam_id.inc        |    21 +
 .../boinctranslate/boinctranslate.admin.inc        |   356 +
 .../modules/boinctranslate/boinctranslate.info     |     8 +
 .../modules/boinctranslate/boinctranslate.install  |    53 +
 .../modules/boinctranslate/boinctranslate.module   |  1583 ++
 .../includes/other-boinc-translation-strings.txt   |    42 +
 .../boinc/modules/boincuser/boincuser.admin.inc    |   349 +
 .../default/boinc/modules/boincuser/boincuser.info |     6 +
 .../boinc/modules/boincuser/boincuser.install      |   117 +
 .../boinc/modules/boincuser/boincuser.module       |  1858 ++
 .../boinc/modules/boincuser/boincuser.views.inc    |   288 +
 .../modules/boincuser/includes/boincuser.forms.inc |   618 +
 .../boincuser/includes/boincuser.helpers.inc       |   404 +
 .../views/views_handler_argument_boincteam_id.inc  |    21 +
 .../views/views_handler_argument_boincuser_id.inc  |    21 +
 .../boinc/modules/boincwork/boincwork.admin.inc    |   304 +
 .../default/boinc/modules/boincwork/boincwork.info |     8 +
 .../boinc/modules/boincwork/boincwork.module       |  1006 ++
 .../boinc/modules/boincwork/boincwork.views.inc    |  1700 ++
 .../modules/boincwork/includes/boincwork.forms.inc |  1794 ++
 .../boincwork/includes/boincwork.helpers.inc       |  1472 ++
 .../modules/boincwork/includes/projectprefs.xsd    |   184 +
 .../views/views_handler_argument_boincuser_id.inc  |    21 +
 ..._handler_field_boincwork_app_version_number.inc |    16 +
 ...ews_handler_field_boincwork_host_app_et_avg.inc |    20 +
 ...ler_field_boincwork_host_app_turnaround_avg.inc |    17 +
 .../comment_form_block/comment_form_block.info     |     5 +
 .../comment_form_block/comment_form_block.module   |    90 +
 .../boinc/modules/contrib/bbcode/LICENSE.txt       |   274 +
 .../boinc/modules/contrib/bbcode/README.txt        |   100 +
 .../boinc/modules/contrib/bbcode/bbcode-filter.inc |   368 +
 .../boinc/modules/contrib/bbcode/bbcode-help.inc   |   364 +
 .../boinc/modules/contrib/bbcode/bbcode-test.css   |    25 +
 .../boinc/modules/contrib/bbcode/bbcode-test.txt   |   298 +
 .../boinc/modules/contrib/bbcode/bbcode.info       |    11 +
 .../boinc/modules/contrib/bbcode/bbcode.module     |   148 +
 .../boinc/modules/contrib/bbcode/po/de/de.po       |   504 +
 .../modules/contrib/bbcode/po/es/es-general.po     |   643 +
 .../boinc/modules/contrib/bbcode/po/es/es.po       |    59 +
 .../modules/contrib/bbcode/po/hu/bbcode-module.po  |    66 +
 .../boinc/modules/contrib/bbcode/po/hu/general.po  |   688 +
 .../boinc/modules/contrib/bbcode/po/ja/ja.po       |   711 +
 .../boinc/modules/contrib/cck/CHANGELOG.txt        |   624 +
 .../boinc/modules/contrib/cck/DEVELOPER.txt        |     6 +
 .../default/boinc/modules/contrib/cck/LICENSE.txt  |   339 +
 .../default/boinc/modules/contrib/cck/README.txt   |    48 +
 .../default/boinc/modules/contrib/cck/UPGRADE.txt  |    87 +
 .../default/boinc/modules/contrib/cck/content.info |    11 +
 .../boinc/modules/contrib/cck/content.install      |   621 +
 .../default/boinc/modules/contrib/cck/content.js   |    80 +
 .../boinc/modules/contrib/cck/content.module       |  2709 +++
 .../contrib/cck/help/add-existing-field.html       |    47 +
 .../contrib/cck/help/add-existing-field.png        |   Bin 0 -> 2345 bytes
 .../modules/contrib/cck/help/add-new-field.html    |    58 +
 .../modules/contrib/cck/help/add-new-field.png     |   Bin 0 -> 2489 bytes
 .../modules/contrib/cck/help/add-new-group.html    |    40 +
 .../modules/contrib/cck/help/add-new-group.png     |   Bin 0 -> 1662 bytes
 .../boinc/modules/contrib/cck/help/add-new.png     |   Bin 0 -> 5474 bytes
 .../boinc/modules/contrib/cck/help/add.html        |    16 +
 .../modules/contrib/cck/help/content.help.ini      |    60 +
 .../boinc/modules/contrib/cck/help/drag-groups.png |   Bin 0 -> 1034 bytes
 .../boinc/modules/contrib/cck/help/drag-new.png    |   Bin 0 -> 3801 bytes
 .../boinc/modules/contrib/cck/help/draggable.png   |   Bin 0 -> 997 bytes
 .../boinc/modules/contrib/cck/help/fields.html     |     1 +
 .../contrib/cck/help/group-node-display.png        |   Bin 0 -> 1022 bytes
 .../contrib/cck/help/group-node-edit-form.png      |   Bin 0 -> 1507 bytes
 .../modules/contrib/cck/help/manage-fields.html    |     4 +
 .../boinc/modules/contrib/cck/help/rearrange.html  |    25 +
 .../boinc/modules/contrib/cck/help/remove.html     |    17 +
 .../contrib/cck/help/theme-field-templates.html    |    76 +
 .../modules/contrib/cck/help/theme-formatters.html |    14 +
 .../contrib/cck/help/theme-node-templates.html     |   131 +
 .../boinc/modules/contrib/cck/help/theme.html      |    10 +
 .../boinc/modules/contrib/cck/help/theme.png       |   Bin 0 -> 4206 bytes
 .../modules/contrib/cck/includes/content.admin.inc |  1916 ++
 .../modules/contrib/cck/includes/content.crud.inc  |   695 +
 .../modules/contrib/cck/includes/content.devel.inc |   218 +
 .../modules/contrib/cck/includes/content.diff.inc  |   128 +
 .../contrib/cck/includes/content.node_form.inc     |   380 +
 .../modules/contrib/cck/includes/content.rules.inc |   348 +
 .../modules/contrib/cck/includes/content.token.inc |   187 +
 .../panels/content_types/content_field.inc         |   215 +
 .../panels/content_types/icon_cck_field.png        |   Bin 0 -> 989 bytes
 .../contrib/cck/includes/views/content.views.inc   |   375 +
 .../cck/includes/views/content.views_convert.inc   |    72 +
 .../views/handlers/content_handler_argument.inc    |    18 +
 .../content_handler_argument_many_to_one.inc       |    48 +
 .../handlers/content_handler_argument_numeric.inc  |    18 +
 .../content_handler_argument_reference.inc         |    25 +
 .../handlers/content_handler_argument_string.inc   |    18 +
 .../views/handlers/content_handler_field.inc       |   229 +
 .../handlers/content_handler_field_multiple.inc    |   322 +
 .../handlers/content_handler_filter_float.inc      |    26 +
 .../content_handler_filter_many_to_one.inc         |    42 +
 .../handlers/content_handler_filter_numeric.inc    |    17 +
 .../handlers/content_handler_filter_string.inc     |    17 +
 .../handlers/content_handler_relationship.inc      |    73 +
 .../views/handlers/content_handler_sort.inc        |    74 +
 .../handlers/content_plugin_display_simple.inc     |    43 +
 .../handlers/content_plugin_style_php_array_ac.inc |    34 +
 .../cck/modules/content_copy/content_copy.info     |    12 +
 .../cck/modules/content_copy/content_copy.module   |   649 +
 .../content_copy/content_copy_export_form.tpl.php  |    42 +
 .../translations/modules-content_copy.de.po        |   137 +
 .../translations/modules-content_copy.fr.po        |   177 +
 .../translations/modules-content_copy.hu.po        |   193 +
 .../translations/modules-content_copy.nl.po        |   146 +
 .../translations/modules-content_copy.pot          |   126 +
 .../translations/modules-content_copy.sv.po        |   148 +
 .../cck/modules/content_multigroup/README.txt      |     4 +
 .../content_permissions/content_permissions.info   |    12 +
 .../content_permissions.install                    |    10 +
 .../content_permissions/content_permissions.module |    28 +
 .../translations/modules-content_permissions.de.po |    61 +
 .../translations/modules-content_permissions.fr.po |    49 +
 .../translations/modules-content_permissions.hu.po |    52 +
 .../translations/modules-content_permissions.nl.po |    56 +
 .../translations/modules-content_permissions.pot   |    50 +
 .../translations/modules-content_permissions.sv.po |    55 +
 .../cck/modules/fieldgroup/fieldgroup-rtl.css      |     6 +
 .../modules/fieldgroup/fieldgroup-simple.tpl.php   |    33 +
 .../contrib/cck/modules/fieldgroup/fieldgroup.css  |     8 +
 .../contrib/cck/modules/fieldgroup/fieldgroup.info |    12 +
 .../cck/modules/fieldgroup/fieldgroup.install      |   316 +
 .../cck/modules/fieldgroup/fieldgroup.module       |   913 +
 .../panels/content_types/content_fieldgroup.inc    |   164 +
 .../panels/content_types/icon_cck_field_group.png  |   Bin 0 -> 552 bytes
 .../modules-fieldgroup-panels-content_types.de.po  |    42 +
 .../modules-fieldgroup-panels-content_types.pot    |    31 +
 .../translations/modules-fieldgroup.de.po          |   151 +
 .../translations/modules-fieldgroup.fr.po          |   110 +
 .../translations/modules-fieldgroup.hu.po          |   163 +
 .../translations/modules-fieldgroup.nl.po          |   192 +
 .../fieldgroup/translations/modules-fieldgroup.pot |   142 +
 .../translations/modules-fieldgroup.sv.po          |   204 +
 .../nodereference/help/nodereference.help.ini      |     8 +
 .../modules/nodereference/help/nodereference.html  |     3 +
 .../cck/modules/nodereference/nodereference.info   |    14 +
 .../modules/nodereference/nodereference.install    |   165 +
 .../cck/modules/nodereference/nodereference.module |  1054 ++
 .../modules/nodereference/nodereference.rules.inc  |    60 +
 .../panels/relationships/node_from_noderef.inc     |    76 +
 ...odules-nodereference-panels-relationships.de.po |    42 +
 .../modules-nodereference-panels-relationships.pot |    31 +
 .../translations/modules-nodereference.de.po       |   124 +
 .../translations/modules-nodereference.fr.po       |    86 +
 .../translations/modules-nodereference.hu.po       |   123 +
 .../translations/modules-nodereference.nl.po       |   193 +
 .../translations/modules-nodereference.pot         |   114 +
 .../translations/modules-nodereference.sv.po       |   179 +
 .../cck/modules/number/help/number.help.ini        |     8 +
 .../contrib/cck/modules/number/help/number.html    |     2 +
 .../modules/contrib/cck/modules/number/number.info |    12 +
 .../contrib/cck/modules/number/number.install      |    60 +
 .../contrib/cck/modules/number/number.module       |   585 +
 .../number/translations/modules-number.de.po       |   152 +
 .../number/translations/modules-number.fr.po       |   163 +
 .../number/translations/modules-number.hu.po       |   228 +
 .../number/translations/modules-number.nl.po       |   214 +
 .../modules/number/translations/modules-number.pot |   137 +
 .../number/translations/modules-number.sv.po       |   190 +
 .../optionwidgets/help/optionwidgets.help.ini      |    11 +
 .../modules/optionwidgets/help/optionwidgets.html  |     2 +
 .../cck/modules/optionwidgets/optionwidgets.info   |    12 +
 .../modules/optionwidgets/optionwidgets.install    |    76 +
 .../cck/modules/optionwidgets/optionwidgets.module |   456 +
 .../translations/modules-optionwidgets.de.po       |    79 +
 .../translations/modules-optionwidgets.fr.po       |    75 +
 .../translations/modules-optionwidgets.hu.po       |    84 +
 .../translations/modules-optionwidgets.nl.po       |    89 +
 .../translations/modules-optionwidgets.pot         |    71 +
 .../translations/modules-optionwidgets.sv.po       |    78 +
 .../contrib/cck/modules/text/help/text.help.ini    |     8 +
 .../contrib/cck/modules/text/help/text.html        |     2 +
 .../modules/contrib/cck/modules/text/text.info     |    12 +
 .../modules/contrib/cck/modules/text/text.install  |   156 +
 .../modules/contrib/cck/modules/text/text.module   |   485 +
 .../modules/text/translations/modules-text.de.po   |    74 +
 .../modules/text/translations/modules-text.fr.po   |    33 +
 .../modules/text/translations/modules-text.hu.po   |   156 +
 .../modules/text/translations/modules-text.nl.po   |   147 +
 .../cck/modules/text/translations/modules-text.pot |    65 +
 .../modules/text/translations/modules-text.sv.po   |   135 +
 .../userreference/help/userreference.help.ini      |     8 +
 .../modules/userreference/help/userreference.html  |     3 +
 .../panels/relationships/user_from_userref.inc     |    65 +
 ...odules-userreference-panels-relationships.de.po |    42 +
 .../modules-userreference-panels-relationships.pot |    31 +
 .../translations/modules-userreference.de.po       |   136 +
 .../translations/modules-userreference.fr.po       |    89 +
 .../translations/modules-userreference.hu.po       |   137 +
 .../translations/modules-userreference.nl.po       |   209 +
 .../translations/modules-userreference.pot         |   126 +
 .../translations/modules-userreference.sv.po       |   191 +
 .../cck/modules/userreference/userreference.info   |    14 +
 .../modules/userreference/userreference.install    |   153 +
 .../cck/modules/userreference/userreference.module |   933 +
 .../modules/userreference/userreference.rules.inc  |    62 +
 .../modules/contrib/cck/tests/content.crud.test    |  1236 ++
 .../content-admin-display-overview-form.tpl.php    |    40 +
 .../content-admin-field-overview-form.tpl.php      |   102 +
 .../contrib/cck/theme/content-field.tpl.php        |    49 +
 .../contrib/cck/theme/content-module-rtl.css       |    22 +
 .../modules/contrib/cck/theme/content-module.css   |    97 +
 .../boinc/modules/contrib/cck/theme/theme.inc      |   145 +
 .../modules/contrib/cck/translations/content.de.po |   245 +
 .../modules/contrib/cck/translations/content.fr.po |   280 +
 .../modules/contrib/cck/translations/content.pot   |   236 +
 .../modules/contrib/cck/translations/content.sv.po |   243 +
 .../boinc/modules/contrib/cck/translations/es.po   |   403 +
 .../contrib/cck/translations/examples.fr.po        |    34 +
 .../boinc/modules/contrib/cck/translations/fr.po   |  2020 +++
 .../modules/contrib/cck/translations/general.de.po |   308 +
 .../modules/contrib/cck/translations/general.fr.po |   207 +
 .../modules/contrib/cck/translations/general.pot   |   246 +
 .../modules/contrib/cck/translations/general.sv.po |   292 +
 .../translations/help/de/add-existing-field.html   |    51 +
 .../translations/help/de/add-existing-field.png    |   Bin 0 -> 2307 bytes
 .../cck/translations/help/de/add-new-field.html    |    61 +
 .../cck/translations/help/de/add-new-field.png     |   Bin 0 -> 2380 bytes
 .../cck/translations/help/de/add-new-group.html    |    44 +
 .../cck/translations/help/de/add-new-group.png     |   Bin 0 -> 926 bytes
 .../contrib/cck/translations/help/de/add-new.png   |   Bin 0 -> 5242 bytes
 .../contrib/cck/translations/help/de/add.html      |    16 +
 .../cck/translations/help/de/content.help.ini      |    56 +
 .../cck/translations/help/de/drag-groups.png       |   Bin 0 -> 1164 bytes
 .../contrib/cck/translations/help/de/drag-new.png  |   Bin 0 -> 3841 bytes
 .../translations/help/de/group-node-display.png    |   Bin 0 -> 1134 bytes
 .../translations/help/de/group-node-edit-form.png  |   Bin 0 -> 923 bytes
 .../cck/translations/help/de/manage-fields.html    |     4 +
 .../cck/translations/help/de/rearrange.html        |    29 +
 .../contrib/cck/translations/help/de/remove.html   |    11 +
 .../cck/translations/help/de/theme-formatters.html |    17 +
 .../contrib/cck/translations/help/de/theme.html    |    11 +
 .../boinc/modules/contrib/cck/translations/hu.po   |  1541 ++
 .../includes-panels-content_types.de.po            |    66 +
 .../translations/includes-panels-content_types.pot |    55 +
 .../cck/translations/includes-views-handlers.de.po |    88 +
 .../cck/translations/includes-views-handlers.pot   |    79 +
 .../cck/translations/includes-views-handlers.sv.po |    82 +
 .../contrib/cck/translations/includes-views.de.po  |    40 +
 .../contrib/cck/translations/includes-views.pot    |    39 +
 .../contrib/cck/translations/includes-views.sv.po  |    40 +
 .../contrib/cck/translations/includes.de.po        |   583 +
 .../contrib/cck/translations/includes.fr.po        |   420 +
 .../modules/contrib/cck/translations/includes.pot  |   534 +
 .../contrib/cck/translations/includes.sv.po        |   590 +
 .../boinc/modules/contrib/cck/translations/it.po   |   846 +
 .../boinc/modules/contrib/cck/translations/ja.po   |  1278 ++
 .../boinc/modules/contrib/cck/translations/nl.po   |   406 +
 .../modules/contrib/cck/translations/pt-br.po      |  1523 ++
 .../boinc/modules/contrib/cck/translations/pt.po   |   822 +
 .../boinc/modules/contrib/cck/translations/ru.po   |   748 +
 .../modules/contrib/cck/translations/theme.de.po   |    97 +
 .../modules/contrib/cck/translations/theme.pot     |    65 +
 .../modules/contrib/cck/translations/theme.sv.po   |    66 +
 .../modules/contrib/cck/translations/uk-ua.po      |  1754 ++
 .../boinc/modules/contrib/cck/translations/uk.po   |  1754 ++
 .../boinc/modules/contrib/cck/translations/vi.po   |   417 +
 .../modules/contrib/content_profile/LICENSE.txt    |   274 +
 .../modules/contrib/content_profile/README.txt     |   244 +
 .../content_profile-display-view.tpl.php           |    28 +
 .../contrib/content_profile/content_profile.css    |    21 +
 .../contrib/content_profile/content_profile.info   |    11 +
 .../content_profile/content_profile.install        |   139 +
 .../contrib/content_profile/content_profile.module |   649 +
 .../content_profile/content_profile.pageroute.inc  |   130 +
 .../content_profile/content_profile.rules.inc      |    97 +
 .../content_profile.rules_defaults.inc             |   112 +
 .../content_profile/content_profile.theme.inc      |   113 +
 .../content_profile/content_profile.theme_vars.inc |   119 +
 .../modules/content_profile_registration.info      |    12 +
 .../modules/content_profile_registration.install   |    23 +
 .../modules/content_profile_registration.module    |   277 +
 .../modules/content_profile_tokens.info            |    15 +
 .../modules/content_profile_tokens.module          |    94 +
 .../panels/relationships/node_from_user.inc        |    67 +
 .../content_profile/tests/content_profile.test     |    55 +
 .../translations/content_profile.pot               |   265 +
 .../contrib/content_profile/translations/da.po     |   271 +
 .../contrib/content_profile/translations/de.po     |   270 +
 .../contrib/content_profile/translations/hu.po     |   169 +
 .../contrib/content_profile/translations/ja.po     |   298 +
 .../contrib/content_profile/translations/sv.po     |   273 +
 .../views/content_profile.views.inc                |    42 +
 .../content_profile_views_handler_relationship.inc |    57 +
 .../boinc/modules/contrib/elysia_cron/API.txt      |   243 +
 .../boinc/modules/contrib/elysia_cron/INSTALL.txt  |    83 +
 .../boinc/modules/contrib/elysia_cron/LICENSE.txt  |   339 +
 .../boinc/modules/contrib/elysia_cron/README.txt   |   247 +
 .../boinc/modules/contrib/elysia_cron/cron.php     |    27 +
 .../contrib/elysia_cron/elysia_cron.admin.inc      |   811 +
 .../contrib/elysia_cron/elysia_cron.ctools.inc     |   203 +
 .../contrib/elysia_cron/elysia_cron.drush.inc      |    29 +
 .../modules/contrib/elysia_cron/elysia_cron.info   |     9 +
 .../contrib/elysia_cron/elysia_cron.install        |   163 +
 .../modules/contrib/elysia_cron/elysia_cron.module |  1342 ++
 .../contrib/elysia_cron/elysia_cron_scheduler.inc  |   238 +
 .../elysia_cron/elysia_cron_scheduler_old.inc      |   230 +
 .../contrib/elysia_cron/elysia_cron_update.php     |   327 +
 .../contrib/elysia_cron/elysia_drupalconv.php      |   125 +
 .../default/boinc/modules/contrib/features/API.txt |   189 +
 .../boinc/modules/contrib/features/CHANGELOG.txt   |   392 +
 .../boinc/modules/contrib/features/LICENSE.txt     |   339 +
 .../boinc/modules/contrib/features/README.txt      |   163 +
 .../modules/contrib/features/features.admin.inc    |   807 +
 .../modules/contrib/features/features.api.php      |   345 +
 .../boinc/modules/contrib/features/features.css    |   295 +
 .../modules/contrib/features/features.drush.inc    |   448 +
 .../modules/contrib/features/features.export.inc   |   847 +
 .../boinc/modules/contrib/features/features.info   |    11 +
 .../modules/contrib/features/features.install      |   100 +
 .../boinc/modules/contrib/features/features.js     |   104 +
 .../boinc/modules/contrib/features/features.module |   786 +
 .../contrib/features/includes/features.block.inc   |    40 +
 .../contrib/features/includes/features.content.inc |   212 +
 .../contrib/features/includes/features.context.inc |   231 +
 .../contrib/features/includes/features.ctools.inc  |   320 +
 .../features/includes/features.features.inc        |    70 +
 .../features/includes/features.fieldgroup.inc      |   158 +
 .../contrib/features/includes/features.filter.inc  |   194 +
 .../features/includes/features.imagecache.inc      |    91 +
 .../contrib/features/includes/features.menu.inc    |   347 +
 .../contrib/features/includes/features.node.inc    |   161 +
 .../features/includes/features.taxonomy.inc        |   168 +
 .../contrib/features/includes/features.user.inc    |   272 +
 .../contrib/features/includes/features.views.inc   |   266 +
 .../modules/contrib/features/tests/features.test   |   214 +
 .../tests/features_test.features.content.inc       |   198 +
 .../tests/features_test.features.fieldgroup.inc    |    66 +
 .../tests/features_test.features.filter.inc        |    42 +
 .../features/tests/features_test.features.inc      |    54 +
 .../features_test.features.user_permission.inc     |    19 +
 .../contrib/features/tests/features_test.info      |    25 +
 .../contrib/features/tests/features_test.module    |     3 +
 .../features/tests/features_test.views_default.inc |    32 +
 .../theme/features-admin-components.tpl.php        |    23 +
 .../contrib/features/theme/features-form.tpl.php   |    18 +
 .../boinc/modules/contrib/features/theme/theme.inc |   347 +
 .../default/boinc/modules/contrib/flag/LICENSE.txt |   339 +
 .../default/boinc/modules/contrib/flag/README.txt  |   100 +
 .../boinc/modules/contrib/flag/flag.api.php        |   252 +
 .../default/boinc/modules/contrib/flag/flag.inc    |  1934 ++
 .../default/boinc/modules/contrib/flag/flag.info   |    12 +
 .../boinc/modules/contrib/flag/flag.install        |   703 +
 .../default/boinc/modules/contrib/flag/flag.module |  1698 ++
 .../boinc/modules/contrib/flag/flag_actions.info   |    10 +
 .../modules/contrib/flag/flag_actions.install      |   107 +
 .../boinc/modules/contrib/flag/flag_actions.module |   672 +
 .../modules/contrib/flag/includes/flag.actions.inc |   245 +
 .../modules/contrib/flag/includes/flag.admin.inc   |   646 +
 .../modules/contrib/flag/includes/flag.export.inc  |   247 +
 .../contrib/flag/includes/flag.features.inc        |    92 +
 .../modules/contrib/flag/includes/flag.rules.inc   |   346 +
 .../contrib/flag/includes/flag.rules_forms.inc     |   127 +
 .../modules/contrib/flag/includes/flag.token.inc   |   128 +
 .../modules/contrib/flag/includes/flag.views.inc   |   293 +
 .../contrib/flag/includes/flag.views_bookmark.inc  |   313 +
 .../contrib/flag/includes/flag.views_convert.inc   |   235 +
 .../contrib/flag/includes/flag.views_default.inc   |   289 +
 .../includes/flag_handler_argument_content_id.inc  |    43 +
 .../flag/includes/flag_handler_field_ops.inc       |   146 +
 .../flag/includes/flag_handler_filter_flagged.inc  |    33 +
 .../flag/includes/flag_handler_relationships.inc   |   266 +
 .../flag_plugin_argument_validate_flaggability.inc |   293 +
 .../flag/includes/flag_plugin_validate_user.inc    |    88 +
 .../boinc/modules/contrib/flag/tests/flag.test     |   125 +
 .../boinc/modules/contrib/flag/theme/README.txt    |    37 +
 .../modules/contrib/flag/theme/flag-admin.css      |    25 +
 .../boinc/modules/contrib/flag/theme/flag-admin.js |    87 +
 .../modules/contrib/flag/theme/flag-throbber.gif   |   Bin 0 -> 2196 bytes
 .../boinc/modules/contrib/flag/theme/flag.css      |    27 +
 .../boinc/modules/contrib/flag/theme/flag.js       |   230 +
 .../boinc/modules/contrib/flag/theme/flag.tpl.php  |    44 +
 .../modules/contrib/forum_access/CHANGELOG.txt     |   161 +
 .../boinc/modules/contrib/forum_access/INSTALL.txt |     8 +
 .../boinc/modules/contrib/forum_access/LICENSE.txt |   339 +
 .../boinc/modules/contrib/forum_access/README.txt  |     5 +
 .../contrib/forum_access/forum_access.admin.inc    |   941 +
 .../modules/contrib/forum_access/forum_access.css  |    29 +
 .../modules/contrib/forum_access/forum_access.info |    13 +
 .../contrib/forum_access/forum_access.install      |   379 +
 .../contrib/forum_access/forum_access.module       |   747 +
 .../contrib/forum_access/forum_access.node.inc     |   242 +
 .../modules/contrib/forum_access/forum_access.test |  1766 ++
 .../modules/contrib/forum_tweaks/forum_tweaks.info |     4 +
 .../contrib/forum_tweaks/forum_tweaks.module       |    30 +
 .../contrib/forum_tweaks/includes/mark-read.inc    |   106 +
 .../boinc/modules/contrib/htmlpurifier/.cvsignore  |     1 +
 .../modules/contrib/htmlpurifier/CHANGELOG.txt     |    40 +
 .../HTMLPurifier_DefinitionCache_Drupal.php        |    95 +
 .../boinc/modules/contrib/htmlpurifier/INSTALL.txt |    55 +
 .../boinc/modules/contrib/htmlpurifier/LICENSE.txt |   274 +
 .../boinc/modules/contrib/htmlpurifier/TODO.txt    |    20 +
 .../modules/contrib/htmlpurifier/config-form.css   |     9 +
 .../modules/contrib/htmlpurifier/config/sample.php |    50 +
 .../modules/contrib/htmlpurifier/htmlpurifier.info |    12 +
 .../contrib/htmlpurifier/htmlpurifier.install      |   239 +
 .../contrib/htmlpurifier/htmlpurifier.module       |   523 +
 .../htmlpurifier/library/HTMLPurifier.auto.php     |    11 +
 .../htmlpurifier/library/HTMLPurifier.autoload.php |    27 +
 .../htmlpurifier/library/HTMLPurifier.composer.php |     4 +
 .../htmlpurifier/library/HTMLPurifier.func.php     |    25 +
 .../htmlpurifier/library/HTMLPurifier.includes.php |   229 +
 .../htmlpurifier/library/HTMLPurifier.kses.php     |    30 +
 .../htmlpurifier/library/HTMLPurifier.path.php     |    11 +
 .../contrib/htmlpurifier/library/HTMLPurifier.php  |   292 +
 .../library/HTMLPurifier.safe-includes.php         |   223 +
 .../htmlpurifier/library/HTMLPurifier/Arborize.php |    71 +
 .../library/HTMLPurifier/AttrCollections.php       |   143 +
 .../htmlpurifier/library/HTMLPurifier/AttrDef.php  |   138 +
 .../library/HTMLPurifier/AttrDef/CSS.php           |   106 +
 .../HTMLPurifier/AttrDef/CSS/AlphaValue.php        |    34 +
 .../HTMLPurifier/AttrDef/CSS/Background.php        |   111 +
 .../AttrDef/CSS/BackgroundPosition.php             |   157 +
 .../library/HTMLPurifier/AttrDef/CSS/Border.php    |    56 +
 .../library/HTMLPurifier/AttrDef/CSS/Color.php     |   105 +
 .../library/HTMLPurifier/AttrDef/CSS/Composite.php |    48 +
 .../AttrDef/CSS/DenyElementDecorator.php           |    44 +
 .../library/HTMLPurifier/AttrDef/CSS/Filter.php    |    77 +
 .../library/HTMLPurifier/AttrDef/CSS/Font.php      |   176 +
 .../HTMLPurifier/AttrDef/CSS/FontFamily.php        |   219 +
 .../library/HTMLPurifier/AttrDef/CSS/Ident.php     |    32 +
 .../AttrDef/CSS/ImportantDecorator.php             |    56 +
 .../library/HTMLPurifier/AttrDef/CSS/Length.php    |    77 +
 .../library/HTMLPurifier/AttrDef/CSS/ListStyle.php |   112 +
 .../library/HTMLPurifier/AttrDef/CSS/Multiple.php  |    71 +
 .../library/HTMLPurifier/AttrDef/CSS/Number.php    |    84 +
 .../HTMLPurifier/AttrDef/CSS/Percentage.php        |    54 +
 .../HTMLPurifier/AttrDef/CSS/TextDecoration.php    |    46 +
 .../library/HTMLPurifier/AttrDef/CSS/URI.php       |    74 +
 .../library/HTMLPurifier/AttrDef/Clone.php         |    44 +
 .../library/HTMLPurifier/AttrDef/Enum.php          |    73 +
 .../library/HTMLPurifier/AttrDef/HTML/Bool.php     |    51 +
 .../library/HTMLPurifier/AttrDef/HTML/Class.php    |    48 +
 .../library/HTMLPurifier/AttrDef/HTML/Color.php    |    51 +
 .../HTMLPurifier/AttrDef/HTML/FrameTarget.php      |    38 +
 .../library/HTMLPurifier/AttrDef/HTML/ID.php       |   105 +
 .../library/HTMLPurifier/AttrDef/HTML/Length.php   |    56 +
 .../HTMLPurifier/AttrDef/HTML/LinkTypes.php        |    72 +
 .../HTMLPurifier/AttrDef/HTML/MultiLength.php      |    60 +
 .../library/HTMLPurifier/AttrDef/HTML/Nmtokens.php |    70 +
 .../library/HTMLPurifier/AttrDef/HTML/Pixels.php   |    76 +
 .../library/HTMLPurifier/AttrDef/Integer.php       |    91 +
 .../library/HTMLPurifier/AttrDef/Lang.php          |    86 +
 .../library/HTMLPurifier/AttrDef/Switch.php        |    53 +
 .../library/HTMLPurifier/AttrDef/Text.php          |    21 +
 .../library/HTMLPurifier/AttrDef/URI.php           |   111 +
 .../library/HTMLPurifier/AttrDef/URI/Email.php     |    20 +
 .../HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php |    29 +
 .../library/HTMLPurifier/AttrDef/URI/Host.php      |   128 +
 .../library/HTMLPurifier/AttrDef/URI/IPv4.php      |    45 +
 .../library/HTMLPurifier/AttrDef/URI/IPv6.php      |    89 +
 .../library/HTMLPurifier/AttrTransform.php         |    60 +
 .../HTMLPurifier/AttrTransform/Background.php      |    28 +
 .../library/HTMLPurifier/AttrTransform/BdoDir.php  |    27 +
 .../library/HTMLPurifier/AttrTransform/BgColor.php |    28 +
 .../HTMLPurifier/AttrTransform/BoolToCSS.php       |    47 +
 .../library/HTMLPurifier/AttrTransform/Border.php  |    26 +
 .../HTMLPurifier/AttrTransform/EnumToCSS.php       |    68 +
 .../HTMLPurifier/AttrTransform/ImgRequired.php     |    48 +
 .../HTMLPurifier/AttrTransform/ImgSpace.php        |    61 +
 .../library/HTMLPurifier/AttrTransform/Input.php   |    56 +
 .../library/HTMLPurifier/AttrTransform/Lang.php    |    31 +
 .../library/HTMLPurifier/AttrTransform/Length.php  |    45 +
 .../library/HTMLPurifier/AttrTransform/Name.php    |    33 +
 .../HTMLPurifier/AttrTransform/NameSync.php        |    41 +
 .../HTMLPurifier/AttrTransform/Nofollow.php        |    52 +
 .../HTMLPurifier/AttrTransform/SafeEmbed.php       |    25 +
 .../HTMLPurifier/AttrTransform/SafeObject.php      |    28 +
 .../HTMLPurifier/AttrTransform/SafeParam.php       |    79 +
 .../HTMLPurifier/AttrTransform/ScriptRequired.php  |    23 +
 .../HTMLPurifier/AttrTransform/TargetBlank.php     |    45 +
 .../HTMLPurifier/AttrTransform/Textarea.php        |    27 +
 .../library/HTMLPurifier/AttrTypes.php             |    96 +
 .../library/HTMLPurifier/AttrValidator.php         |   178 +
 .../library/HTMLPurifier/Bootstrap.php             |   124 +
 .../library/HTMLPurifier/CSSDefinition.php         |   474 +
 .../htmlpurifier/library/HTMLPurifier/ChildDef.php |    52 +
 .../library/HTMLPurifier/ChildDef/Chameleon.php    |    67 +
 .../library/HTMLPurifier/ChildDef/Custom.php       |   102 +
 .../library/HTMLPurifier/ChildDef/Empty.php        |    38 +
 .../library/HTMLPurifier/ChildDef/List.php         |    86 +
 .../library/HTMLPurifier/ChildDef/Optional.php     |    45 +
 .../library/HTMLPurifier/ChildDef/Required.php     |   118 +
 .../HTMLPurifier/ChildDef/StrictBlockquote.php     |   110 +
 .../library/HTMLPurifier/ChildDef/Table.php        |   224 +
 .../htmlpurifier/library/HTMLPurifier/Config.php   |   911 +
 .../library/HTMLPurifier/ConfigSchema.php          |   176 +
 .../ConfigSchema/Builder/ConfigSchema.php          |    48 +
 .../HTMLPurifier/ConfigSchema/Builder/Xml.php      |   144 +
 .../HTMLPurifier/ConfigSchema/Exception.php        |    11 +
 .../HTMLPurifier/ConfigSchema/Interchange.php      |    47 +
 .../ConfigSchema/Interchange/Directive.php         |    89 +
 .../HTMLPurifier/ConfigSchema/Interchange/Id.php   |    58 +
 .../ConfigSchema/InterchangeBuilder.php            |   226 +
 .../HTMLPurifier/ConfigSchema/Validator.php        |   248 +
 .../HTMLPurifier/ConfigSchema/ValidatorAtom.php    |   130 +
 .../library/HTMLPurifier/ConfigSchema/schema.ser   |   Bin 0 -> 15000 bytes
 .../ConfigSchema/schema/Attr.AllowedClasses.txt    |     8 +
 .../schema/Attr.AllowedFrameTargets.txt            |    12 +
 .../ConfigSchema/schema/Attr.AllowedRel.txt        |     9 +
 .../ConfigSchema/schema/Attr.AllowedRev.txt        |     9 +
 .../ConfigSchema/schema/Attr.ClassUseCDATA.txt     |    19 +
 .../ConfigSchema/schema/Attr.DefaultImageAlt.txt   |    11 +
 .../schema/Attr.DefaultInvalidImage.txt            |     9 +
 .../schema/Attr.DefaultInvalidImageAlt.txt         |     8 +
 .../ConfigSchema/schema/Attr.DefaultTextDir.txt    |    10 +
 .../ConfigSchema/schema/Attr.EnableID.txt          |    16 +
 .../ConfigSchema/schema/Attr.ForbiddenClasses.txt  |     8 +
 .../ConfigSchema/schema/Attr.IDBlacklist.txt       |     5 +
 .../ConfigSchema/schema/Attr.IDBlacklistRegexp.txt |     9 +
 .../ConfigSchema/schema/Attr.IDPrefix.txt          |    12 +
 .../ConfigSchema/schema/Attr.IDPrefixLocal.txt     |    14 +
 .../schema/AutoFormat.AutoParagraph.txt            |    31 +
 .../ConfigSchema/schema/AutoFormat.Custom.txt      |    12 +
 .../schema/AutoFormat.DisplayLinkURI.txt           |    11 +
 .../ConfigSchema/schema/AutoFormat.Linkify.txt     |    12 +
 .../schema/AutoFormat.PurifierLinkify.DocURL.txt   |    12 +
 .../schema/AutoFormat.PurifierLinkify.txt          |    12 +
 ...utoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt |    11 +
 .../schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt   |    15 +
 .../ConfigSchema/schema/AutoFormat.RemoveEmpty.txt |    46 +
 .../AutoFormat.RemoveSpansWithoutAttributes.txt    |    11 +
 .../ConfigSchema/schema/CSS.AllowImportant.txt     |     8 +
 .../ConfigSchema/schema/CSS.AllowTricky.txt        |    11 +
 .../ConfigSchema/schema/CSS.AllowedFonts.txt       |    12 +
 .../ConfigSchema/schema/CSS.AllowedProperties.txt  |    18 +
 .../ConfigSchema/schema/CSS.DefinitionRev.txt      |    11 +
 .../schema/CSS.ForbiddenProperties.txt             |    13 +
 .../ConfigSchema/schema/CSS.MaxImgLength.txt       |    16 +
 .../ConfigSchema/schema/CSS.Proprietary.txt        |    10 +
 .../ConfigSchema/schema/CSS.Trusted.txt            |     9 +
 .../ConfigSchema/schema/Cache.DefinitionImpl.txt   |    14 +
 .../ConfigSchema/schema/Cache.SerializerPath.txt   |    13 +
 .../schema/Cache.SerializerPermissions.txt         |    11 +
 .../ConfigSchema/schema/Core.AggressivelyFixLt.txt |    18 +
 .../schema/Core.AllowHostnameUnderscore.txt        |    16 +
 .../ConfigSchema/schema/Core.CollectErrors.txt     |    12 +
 .../ConfigSchema/schema/Core.ColorKeywords.txt     |    29 +
 .../schema/Core.ConvertDocumentToFragment.txt      |    14 +
 .../Core.DirectLexLineNumberSyncInterval.txt       |    17 +
 .../ConfigSchema/schema/Core.DisableExcludes.txt   |    14 +
 .../ConfigSchema/schema/Core.EnableIDNA.txt        |     9 +
 .../ConfigSchema/schema/Core.Encoding.txt          |    15 +
 .../schema/Core.EscapeInvalidChildren.txt          |    12 +
 .../ConfigSchema/schema/Core.EscapeInvalidTags.txt |     7 +
 .../schema/Core.EscapeNonASCIICharacters.txt       |    13 +
 .../ConfigSchema/schema/Core.HiddenElements.txt    |    19 +
 .../ConfigSchema/schema/Core.Language.txt          |    10 +
 .../ConfigSchema/schema/Core.LexerImpl.txt         |    34 +
 .../schema/Core.MaintainLineNumbers.txt            |    16 +
 .../ConfigSchema/schema/Core.NormalizeNewlines.txt |    11 +
 .../ConfigSchema/schema/Core.RemoveInvalidImg.txt  |    12 +
 .../schema/Core.RemoveProcessingInstructions.txt   |    11 +
 .../schema/Core.RemoveScriptContents.txt           |    12 +
 .../ConfigSchema/schema/Filter.Custom.txt          |    11 +
 .../schema/Filter.ExtractStyleBlocks.Escaping.txt  |    14 +
 .../schema/Filter.ExtractStyleBlocks.Scope.txt     |    29 +
 .../schema/Filter.ExtractStyleBlocks.TidyImpl.txt  |    16 +
 .../schema/Filter.ExtractStyleBlocks.txt           |    74 +
 .../ConfigSchema/schema/Filter.YouTube.txt         |    16 +
 .../ConfigSchema/schema/HTML.Allowed.txt           |    25 +
 .../ConfigSchema/schema/HTML.AllowedAttributes.txt |    19 +
 .../ConfigSchema/schema/HTML.AllowedComments.txt   |    10 +
 .../schema/HTML.AllowedCommentsRegexp.txt          |    15 +
 .../ConfigSchema/schema/HTML.AllowedElements.txt   |    23 +
 .../ConfigSchema/schema/HTML.AllowedModules.txt    |    20 +
 .../schema/HTML.Attr.Name.UseCDATA.txt             |    11 +
 .../ConfigSchema/schema/HTML.BlockWrapper.txt      |    18 +
 .../ConfigSchema/schema/HTML.CoreModules.txt       |    23 +
 .../ConfigSchema/schema/HTML.CustomDoctype.txt     |     9 +
 .../ConfigSchema/schema/HTML.DefinitionID.txt      |    33 +
 .../ConfigSchema/schema/HTML.DefinitionRev.txt     |    16 +
 .../ConfigSchema/schema/HTML.Doctype.txt           |    11 +
 .../schema/HTML.FlashAllowFullScreen.txt           |    11 +
 .../schema/HTML.ForbiddenAttributes.txt            |    21 +
 .../ConfigSchema/schema/HTML.ForbiddenElements.txt |    20 +
 .../ConfigSchema/schema/HTML.MaxImgLength.txt      |    14 +
 .../ConfigSchema/schema/HTML.Nofollow.txt          |     7 +
 .../ConfigSchema/schema/HTML.Parent.txt            |    12 +
 .../ConfigSchema/schema/HTML.Proprietary.txt       |    12 +
 .../ConfigSchema/schema/HTML.SafeEmbed.txt         |    13 +
 .../ConfigSchema/schema/HTML.SafeIframe.txt        |    13 +
 .../ConfigSchema/schema/HTML.SafeObject.txt        |    13 +
 .../ConfigSchema/schema/HTML.SafeScripting.txt     |    10 +
 .../ConfigSchema/schema/HTML.Strict.txt            |     9 +
 .../ConfigSchema/schema/HTML.TargetBlank.txt       |     8 +
 .../ConfigSchema/schema/HTML.TidyAdd.txt           |     8 +
 .../ConfigSchema/schema/HTML.TidyLevel.txt         |    24 +
 .../ConfigSchema/schema/HTML.TidyRemove.txt        |     8 +
 .../ConfigSchema/schema/HTML.Trusted.txt           |     9 +
 .../ConfigSchema/schema/HTML.XHTML.txt             |    11 +
 .../schema/Output.CommentScriptContents.txt        |    10 +
 .../ConfigSchema/schema/Output.FixInnerHTML.txt    |    15 +
 .../ConfigSchema/schema/Output.FlashCompat.txt     |    11 +
 .../ConfigSchema/schema/Output.Newline.txt         |    13 +
 .../ConfigSchema/schema/Output.SortAttr.txt        |    14 +
 .../ConfigSchema/schema/Output.TidyFormat.txt      |    25 +
 .../ConfigSchema/schema/Test.ForceNoIconv.txt      |     7 +
 .../ConfigSchema/schema/URI.AllowedSchemes.txt     |    17 +
 .../HTMLPurifier/ConfigSchema/schema/URI.Base.txt  |    17 +
 .../ConfigSchema/schema/URI.DefaultScheme.txt      |    10 +
 .../ConfigSchema/schema/URI.DefinitionID.txt       |    11 +
 .../ConfigSchema/schema/URI.DefinitionRev.txt      |    11 +
 .../ConfigSchema/schema/URI.Disable.txt            |    14 +
 .../ConfigSchema/schema/URI.DisableExternal.txt    |    11 +
 .../schema/URI.DisableExternalResources.txt        |    13 +
 .../ConfigSchema/schema/URI.DisableResources.txt   |    15 +
 .../HTMLPurifier/ConfigSchema/schema/URI.Host.txt  |    19 +
 .../ConfigSchema/schema/URI.HostBlacklist.txt      |     9 +
 .../ConfigSchema/schema/URI.MakeAbsolute.txt       |    13 +
 .../HTMLPurifier/ConfigSchema/schema/URI.Munge.txt |    83 +
 .../ConfigSchema/schema/URI.MungeResources.txt     |    17 +
 .../ConfigSchema/schema/URI.MungeSecretKey.txt     |    30 +
 .../schema/URI.OverrideAllowedSchemes.txt          |     9 +
 .../ConfigSchema/schema/URI.SafeIframeRegexp.txt   |    22 +
 .../HTMLPurifier/ConfigSchema/schema/info.ini      |     3 +
 .../library/HTMLPurifier/ContentSets.php           |   170 +
 .../htmlpurifier/library/HTMLPurifier/Context.php  |    95 +
 .../library/HTMLPurifier/Definition.php            |    55 +
 .../library/HTMLPurifier/DefinitionCache.php       |   129 +
 .../HTMLPurifier/DefinitionCache/Decorator.php     |   112 +
 .../DefinitionCache/Decorator/Cleanup.php          |    78 +
 .../DefinitionCache/Decorator/Memory.php           |    85 +
 .../library/HTMLPurifier/DefinitionCache/Null.php  |    76 +
 .../HTMLPurifier/DefinitionCache/Serializer.php    |   285 +
 .../HTMLPurifier/DefinitionCache/Serializer/README |     3 +
 .../HTMLPurifier/DefinitionCacheFactory.php        |   106 +
 .../htmlpurifier/library/HTMLPurifier/Doctype.php  |    73 +
 .../library/HTMLPurifier/DoctypeRegistry.php       |   142 +
 .../library/HTMLPurifier/ElementDef.php            |   216 +
 .../htmlpurifier/library/HTMLPurifier/Encoder.php  |   611 +
 .../library/HTMLPurifier/EntityLookup.php          |    48 +
 .../library/HTMLPurifier/EntityLookup/entities.ser |     1 +
 .../library/HTMLPurifier/EntityParser.php          |   153 +
 .../library/HTMLPurifier/ErrorCollector.php        |   244 +
 .../library/HTMLPurifier/ErrorStruct.php           |    74 +
 .../library/HTMLPurifier/Exception.php             |    12 +
 .../htmlpurifier/library/HTMLPurifier/Filter.php   |    56 +
 .../HTMLPurifier/Filter/ExtractStyleBlocks.php     |   338 +
 .../library/HTMLPurifier/Filter/YouTube.php        |    65 +
 .../library/HTMLPurifier/Generator.php             |   286 +
 .../library/HTMLPurifier/HTMLDefinition.php        |   493 +
 .../library/HTMLPurifier/HTMLModule.php            |   284 +
 .../library/HTMLPurifier/HTMLModule/Bdo.php        |    44 +
 .../HTMLPurifier/HTMLModule/CommonAttributes.php   |    31 +
 .../library/HTMLPurifier/HTMLModule/Edit.php       |    55 +
 .../library/HTMLPurifier/HTMLModule/Forms.php      |   190 +
 .../library/HTMLPurifier/HTMLModule/Hypertext.php  |    40 +
 .../library/HTMLPurifier/HTMLModule/Iframe.php     |    51 +
 .../library/HTMLPurifier/HTMLModule/Image.php      |    49 +
 .../library/HTMLPurifier/HTMLModule/Legacy.php     |   186 +
 .../library/HTMLPurifier/HTMLModule/List.php       |    51 +
 .../library/HTMLPurifier/HTMLModule/Name.php       |    26 +
 .../library/HTMLPurifier/HTMLModule/Nofollow.php   |    25 +
 .../HTMLModule/NonXMLCommonAttributes.php          |    20 +
 .../library/HTMLPurifier/HTMLModule/Object.php     |    62 +
 .../HTMLPurifier/HTMLModule/Presentation.php       |    42 +
 .../HTMLPurifier/HTMLModule/Proprietary.php        |    40 +
 .../library/HTMLPurifier/HTMLModule/Ruby.php       |    36 +
 .../library/HTMLPurifier/HTMLModule/SafeEmbed.php  |    40 +
 .../library/HTMLPurifier/HTMLModule/SafeObject.php |    62 +
 .../HTMLPurifier/HTMLModule/SafeScripting.php      |    40 +
 .../library/HTMLPurifier/HTMLModule/Scripting.php  |    73 +
 .../HTMLPurifier/HTMLModule/StyleAttribute.php     |    33 +
 .../library/HTMLPurifier/HTMLModule/Tables.php     |    75 +
 .../library/HTMLPurifier/HTMLModule/Target.php     |    28 +
 .../HTMLPurifier/HTMLModule/TargetBlank.php        |    24 +
 .../library/HTMLPurifier/HTMLModule/Text.php       |    87 +
 .../library/HTMLPurifier/HTMLModule/Tidy.php       |   230 +
 .../library/HTMLPurifier/HTMLModule/Tidy/Name.php  |    33 +
 .../HTMLPurifier/HTMLModule/Tidy/Proprietary.php   |    34 +
 .../HTMLPurifier/HTMLModule/Tidy/Strict.php        |    43 +
 .../HTMLPurifier/HTMLModule/Tidy/Transitional.php  |    16 +
 .../library/HTMLPurifier/HTMLModule/Tidy/XHTML.php |    26 +
 .../HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php |   179 +
 .../HTMLModule/XMLCommonAttributes.php             |    20 +
 .../library/HTMLPurifier/HTMLModuleManager.php     |   459 +
 .../library/HTMLPurifier/IDAccumulator.php         |    57 +
 .../htmlpurifier/library/HTMLPurifier/Injector.php |   281 +
 .../HTMLPurifier/Injector/AutoParagraph.php        |   356 +
 .../HTMLPurifier/Injector/DisplayLinkURI.php       |    40 +
 .../library/HTMLPurifier/Injector/Linkify.php      |    59 +
 .../HTMLPurifier/Injector/PurifierLinkify.php      |    71 +
 .../library/HTMLPurifier/Injector/RemoveEmpty.php  |   101 +
 .../Injector/RemoveSpansWithoutAttributes.php      |    84 +
 .../library/HTMLPurifier/Injector/SafeObject.php   |   121 +
 .../htmlpurifier/library/HTMLPurifier/Language.php |   204 +
 .../HTMLPurifier/Language/classes/en-x-test.php    |     9 +
 .../HTMLPurifier/Language/messages/en-x-test.php   |    11 +
 .../Language/messages/en-x-testmini.php            |    12 +
 .../library/HTMLPurifier/Language/messages/en.php  |    55 +
 .../library/HTMLPurifier/LanguageFactory.php       |   209 +
 .../htmlpurifier/library/HTMLPurifier/Length.php   |   160 +
 .../htmlpurifier/library/HTMLPurifier/Lexer.php    |   357 +
 .../library/HTMLPurifier/Lexer/DOMLex.php          |   280 +
 .../library/HTMLPurifier/Lexer/DirectLex.php       |   539 +
 .../library/HTMLPurifier/Lexer/PH5P.php            |  4788 +++++
 .../htmlpurifier/library/HTMLPurifier/Node.php     |    49 +
 .../library/HTMLPurifier/Node/Comment.php          |    36 +
 .../library/HTMLPurifier/Node/Element.php          |    59 +
 .../library/HTMLPurifier/Node/Text.php             |    54 +
 .../library/HTMLPurifier/PercentEncoder.php        |   111 +
 .../htmlpurifier/library/HTMLPurifier/Printer.php  |   218 +
 .../library/HTMLPurifier/Printer/CSSDefinition.php |    44 +
 .../library/HTMLPurifier/Printer/ConfigForm.css    |    10 +
 .../library/HTMLPurifier/Printer/ConfigForm.js     |     5 +
 .../library/HTMLPurifier/Printer/ConfigForm.php    |   447 +
 .../HTMLPurifier/Printer/HTMLDefinition.php        |   324 +
 .../library/HTMLPurifier/PropertyList.php          |   122 +
 .../library/HTMLPurifier/PropertyListIterator.php  |    42 +
 .../htmlpurifier/library/HTMLPurifier/Queue.php    |    56 +
 .../htmlpurifier/library/HTMLPurifier/Strategy.php |    26 +
 .../library/HTMLPurifier/Strategy/Composite.php    |    30 +
 .../library/HTMLPurifier/Strategy/Core.php         |    17 +
 .../library/HTMLPurifier/Strategy/FixNesting.php   |   181 +
 .../HTMLPurifier/Strategy/MakeWellFormed.php       |   600 +
 .../Strategy/RemoveForeignElements.php             |   207 +
 .../HTMLPurifier/Strategy/ValidateAttributes.php   |    45 +
 .../library/HTMLPurifier/StringHash.php            |    47 +
 .../library/HTMLPurifier/StringHashParser.php      |   136 +
 .../library/HTMLPurifier/TagTransform.php          |    37 +
 .../library/HTMLPurifier/TagTransform/Font.php     |   114 +
 .../library/HTMLPurifier/TagTransform/Simple.php   |    44 +
 .../htmlpurifier/library/HTMLPurifier/Token.php    |   100 +
 .../library/HTMLPurifier/Token/Comment.php         |    38 +
 .../library/HTMLPurifier/Token/Empty.php           |    15 +
 .../library/HTMLPurifier/Token/End.php             |    24 +
 .../library/HTMLPurifier/Token/Start.php           |    10 +
 .../library/HTMLPurifier/Token/Tag.php             |    68 +
 .../library/HTMLPurifier/Token/Text.php            |    53 +
 .../library/HTMLPurifier/TokenFactory.php          |   118 +
 .../htmlpurifier/library/HTMLPurifier/URI.php      |   314 +
 .../library/HTMLPurifier/URIDefinition.php         |   112 +
 .../library/HTMLPurifier/URIFilter.php             |    74 +
 .../HTMLPurifier/URIFilter/DisableExternal.php     |    54 +
 .../URIFilter/DisableExternalResources.php         |    25 +
 .../HTMLPurifier/URIFilter/DisableResources.php    |    22 +
 .../HTMLPurifier/URIFilter/HostBlacklist.php       |    46 +
 .../HTMLPurifier/URIFilter/MakeAbsolute.php        |   158 +
 .../library/HTMLPurifier/URIFilter/Munge.php       |   115 +
 .../library/HTMLPurifier/URIFilter/SafeIframe.php  |    68 +
 .../library/HTMLPurifier/URIParser.php             |    71 +
 .../library/HTMLPurifier/URIScheme.php             |   102 +
 .../library/HTMLPurifier/URIScheme/data.php        |   127 +
 .../library/HTMLPurifier/URIScheme/file.php        |    44 +
 .../library/HTMLPurifier/URIScheme/ftp.php         |    58 +
 .../library/HTMLPurifier/URIScheme/http.php        |    36 +
 .../library/HTMLPurifier/URIScheme/https.php       |    18 +
 .../library/HTMLPurifier/URIScheme/mailto.php      |    40 +
 .../library/HTMLPurifier/URIScheme/news.php        |    35 +
 .../library/HTMLPurifier/URIScheme/nntp.php        |    32 +
 .../library/HTMLPurifier/URISchemeRegistry.php     |    81 +
 .../library/HTMLPurifier/UnitConverter.php         |   307 +
 .../library/HTMLPurifier/VarParser.php             |   198 +
 .../library/HTMLPurifier/VarParser/Flexible.php    |   130 +
 .../library/HTMLPurifier/VarParser/Native.php      |    38 +
 .../library/HTMLPurifier/VarParserException.php    |    11 +
 .../htmlpurifier/library/HTMLPurifier/Zipper.php   |   157 +
 .../contrib/htmlpurifier/translations/uk.po        |    81 +
 .../boinc/modules/contrib/i18nviews/LICENSE.txt    |   274 +
 .../boinc/modules/contrib/i18nviews/i18nviews.info |    15 +
 .../modules/contrib/i18nviews/i18nviews.module     |   216 +
 .../content_negotiation_filter_handler.inc         |    18 +
 .../contrib/i18nviews/includes/i18nviews.views.inc |    47 +
 .../translations/i18nviews-includes.de.po          |    30 +
 .../i18nviews/translations/i18nviews-includes.pot  |    27 +
 .../contrib/i18nviews/translations/i18nviews.de.po |    43 +
 .../contrib/i18nviews/translations/i18nviews.pot   |    41 +
 .../default/boinc/modules/contrib/jump/LICENSE.txt |   339 +
 .../default/boinc/modules/contrib/jump/README.txt  |    63 +
 .../default/boinc/modules/contrib/jump/jump.info   |    11 +
 .../boinc/modules/contrib/jump/jump.install        |    53 +
 .../default/boinc/modules/contrib/jump/jump.js     |    18 +
 .../default/boinc/modules/contrib/jump/jump.module |   380 +
 .../default/boinc/modules/contrib/jump/jump.test   |   371 +
 .../boinc/modules/contrib/jump/jump.views.inc      |    26 +
 .../modules/contrib/jump/jump.views_default.inc    |   123 +
 .../contrib/jump/jump_views_plugin_style.inc       |   136 +
 .../modules/contrib/mobile_menu_toggle/README.txt  |    42 +
 .../mobile_menu_toggle.admin.inc                   |    36 +
 .../mobile_menu_toggle/mobile_menu_toggle.info     |     5 +
 .../mobile_menu_toggle/mobile_menu_toggle.js       |    15 +
 .../mobile_menu_toggle/mobile_menu_toggle.module   |    76 +
 .../mobile_menu_toggle/mobile_menu_toggle.tpl.php  |     1 +
 .../boinc/modules/contrib/panels/CHANGELOG.txt     |   244 +
 .../boinc/modules/contrib/panels/D6UPDATE.txt      |    66 +
 .../boinc/modules/contrib/panels/INSTALL.txt       |     8 +
 .../boinc/modules/contrib/panels/KNOWN_ISSUES.txt  |    91 +
 .../boinc/modules/contrib/panels/LICENSE.txt       |   339 +
 .../boinc/modules/contrib/panels/README.txt        |    51 +
 .../contrib/panels/css/panels-dashboard.css        |    62 +
 .../boinc/modules/contrib/panels/css/panels.css    |    50 +
 .../modules/contrib/panels/css/panels_admin.css    |   162 +
 .../modules/contrib/panels/css/panels_dnd.css      |   629 +
 .../modules/contrib/panels/css/panels_page.css     |    14 +
 .../boinc/modules/contrib/panels/help/api.html     |    44 +
 .../boinc/modules/contrib/panels/help/display.html |     0
 .../modules/contrib/panels/help/panels.help.ini    |    74 +
 .../contrib/panels/help/plugins-layout.html        |    78 +
 .../modules/contrib/panels/help/plugins-style.html |     0
 .../modules/contrib/panels/images/arrow-active.png |   Bin 0 -> 313 bytes
 .../contrib/panels/images/arrow-down-light.png     |   Bin 0 -> 271 bytes
 .../contrib/panels/images/bg-content-modal.png     |   Bin 0 -> 156 bytes
 .../contrib/panels/images/bg-shade-dark.png        |   Bin 0 -> 220 bytes
 .../contrib/panels/images/bg-shade-light.png       |   Bin 0 -> 216 bytes
 .../contrib/panels/images/bg-shade-medium.png      |   Bin 0 -> 221 bytes
 .../contrib/panels/images/bg-shade-white-lrg.png   |   Bin 0 -> 214 bytes
 .../boinc/modules/contrib/panels/images/blank.gif  |   Bin 0 -> 49 bytes
 .../boinc/modules/contrib/panels/images/close.gif  |   Bin 0 -> 949 bytes
 .../boinc/modules/contrib/panels/images/delete.png |   Bin 0 -> 795 bytes
 .../modules/contrib/panels/images/go-down.png      |   Bin 0 -> 583 bytes
 .../modules/contrib/panels/images/go-right.png     |   Bin 0 -> 392 bytes
 .../boinc/modules/contrib/panels/images/go-up.png  |   Bin 0 -> 566 bytes
 .../contrib/panels/images/icon-addcontent.png      |   Bin 0 -> 818 bytes
 .../modules/contrib/panels/images/icon-cache.png   |   Bin 0 -> 1001 bytes
 .../contrib/panels/images/icon-configure.png       |   Bin 0 -> 765 bytes
 .../modules/contrib/panels/images/icon-delete.png  |   Bin 0 -> 877 bytes
 .../contrib/panels/images/icon-draggable.png       |   Bin 0 -> 236 bytes
 .../contrib/panels/images/icon-hidepane.png        |   Bin 0 -> 735 bytes
 .../contrib/panels/images/icon-showpane.png        |   Bin 0 -> 701 bytes
 .../modules/contrib/panels/images/no-icon.png      |   Bin 0 -> 3398 bytes
 .../contrib/panels/images/portlet-collapsed.png    |   Bin 0 -> 108 bytes
 .../contrib/panels/images/portlet-expanded.png     |   Bin 0 -> 106 bytes
 .../modules/contrib/panels/images/screenshot-1.jpg |   Bin 0 -> 14072 bytes
 .../modules/contrib/panels/images/screenshot-2.jpg |   Bin 0 -> 43830 bytes
 .../modules/contrib/panels/images/screenshot-3.jpg |   Bin 0 -> 43224 bytes
 .../modules/contrib/panels/images/screenshot-4.jpg |   Bin 0 -> 73474 bytes
 .../boinc/modules/contrib/panels/images/sky.png    |   Bin 0 -> 2275 bytes
 .../boinc/modules/contrib/panels/images/sprite.png |   Bin 0 -> 14325 bytes
 .../modules/contrib/panels/images/throbber.gif     |   Bin 0 -> 3208 bytes
 .../modules/contrib/panels/images/user-trash.png   |   Bin 0 -> 507 bytes
 .../modules/contrib/panels/includes/callbacks.inc  |   188 +
 .../modules/contrib/panels/includes/common.inc     |   573 +
 .../contrib/panels/includes/display-edit.inc       |   303 +
 .../contrib/panels/includes/display-layout.inc     |   294 +
 .../contrib/panels/includes/display-render.inc     |   104 +
 .../modules/contrib/panels/includes/legacy.inc     |    70 +
 .../contrib/panels/includes/page-wizard.inc        |    67 +
 .../contrib/panels/includes/panels.pipelines.inc   |    33 +
 .../modules/contrib/panels/includes/plugins.inc    |   534 +
 .../modules/contrib/panels/js/display_editor.js    |   513 +
 .../boinc/modules/contrib/panels/js/layout.js      |    18 +
 .../boinc/modules/contrib/panels/js/panels-base.js |    28 +
 .../boinc/modules/contrib/panels/js/panels.js      |    28 +
 .../boinc/modules/contrib/panels/panels.info       |    12 +
 .../boinc/modules/contrib/panels/panels.install    |  1638 ++
 .../boinc/modules/contrib/panels/panels.module     |  1804 ++
 .../panels/panels_export/panels_export.module      |     0
 .../contrib/panels/panels_ipe/css/panels_ipe.css   |   209 +
 .../contrib/panels/panels_ipe/images/dragger.png   |   Bin 0 -> 946 bytes
 .../panels_ipe/includes/panels_ipe.pipelines.inc   |    44 +
 .../contrib/panels/panels_ipe/js/panels_ipe.js     |   255 +
 .../contrib/panels/panels_ipe/panels_ipe.api.php   |    31 +
 .../contrib/panels/panels_ipe/panels_ipe.info      |    14 +
 .../contrib/panels/panels_ipe/panels_ipe.module    |   147 +
 .../panels_ipe/plugins/display_renderers/ipe.inc   |     8 +
 .../panels_renderer_ipe.class.php                  |   307 +
 .../panels/panels_mini/panels_mini.admin.inc       |    41 +
 .../contrib/panels/panels_mini/panels_mini.info    |    11 +
 .../contrib/panels/panels_mini/panels_mini.install |   239 +
 .../contrib/panels/panels_mini/panels_mini.module  |   419 +
 .../plugins/content_types/icon_panels_mini.png     |   Bin 0 -> 450 bytes
 .../plugins/content_types/panels_mini.inc          |   133 +
 .../panels_mini/plugins/export_ui/panels_mini.inc  |    41 +
 .../plugins/export_ui/panels_mini_ui.class.php     |   291 +
 .../plugins/panels_storage/panels_mini.inc         |    22 +
 .../contrib/panels/panels_node/panels_node.info    |    13 +
 .../contrib/panels/panels_node/panels_node.install |   127 +
 .../contrib/panels/panels_node/panels_node.module  |   432 +
 .../plugins/panels_storage/panels_node.inc         |    25 +
 .../contrib/panels/plugins/cache/simple.inc        |   149 +
 .../panels/plugins/display_renderers/editor.inc    |     8 +
 .../panels/plugins/display_renderers/legacy.inc    |     7 +
 .../panels_renderer_editor.class.php               |  1936 ++
 .../panels_renderer_legacy.class.php               |   294 +
 .../panels_renderer_simple.class.php               |    32 +
 .../panels_renderer_single_pane.class.php          |    41 +
 .../panels_renderer_standard.class.php             |   643 +
 .../panels/plugins/display_renderers/simple.inc    |    11 +
 .../plugins/display_renderers/single_pane.inc      |     8 +
 .../panels/plugins/display_renderers/standard.inc  |     7 +
 .../panels/plugins/export_ui/panels_layouts.inc    |    24 +
 .../plugins/export_ui/panels_layouts_ui.class.php  |   229 +
 .../plugins/layouts/flexible/flexible-admin.css    |    87 +
 .../plugins/layouts/flexible/flexible-admin.js     |   408 +
 .../panels/plugins/layouts/flexible/flexible.css   |     4 +
 .../panels/plugins/layouts/flexible/flexible.inc   |  1766 ++
 .../panels/plugins/layouts/flexible/flexible.png   |   Bin 0 -> 208 bytes
 .../plugins/layouts/flexible/grippie-vertical.png  |   Bin 0 -> 265 bytes
 .../panels/plugins/layouts/onecol/onecol.css       |    21 +
 .../panels/plugins/layouts/onecol/onecol.inc       |    14 +
 .../panels/plugins/layouts/onecol/onecol.png       |   Bin 0 -> 122 bytes
 .../plugins/layouts/onecol/panels-onecol.tpl.php   |    19 +
 .../panels-threecol-25-50-25.tpl.php               |    29 +
 .../threecol_25_50_25/threecol_25_50_25.css        |    35 +
 .../threecol_25_50_25/threecol_25_50_25.inc        |    20 +
 .../threecol_25_50_25/threecol_25_50_25.png        |   Bin 0 -> 200 bytes
 .../panels-threecol-25-50-25-stacked.tpl.php       |    46 +
 .../threecol_25_50_25_stacked.css                  |    45 +
 .../threecol_25_50_25_stacked.inc                  |    17 +
 .../threecol_25_50_25_stacked.png                  |   Bin 0 -> 208 bytes
 .../panels-threecol-33-34-33.tpl.php               |    31 +
 .../threecol_33_34_33/threecol_33_34_33.css        |    35 +
 .../threecol_33_34_33/threecol_33_34_33.inc        |    15 +
 .../threecol_33_34_33/threecol_33_34_33.png        |   Bin 0 -> 196 bytes
 .../panels-threecol-33-34-33-stacked.tpl.php       |    46 +
 .../threecol_33_34_33_stacked.css                  |    45 +
 .../threecol_33_34_33_stacked.inc                  |    17 +
 .../threecol_33_34_33_stacked.png                  |   Bin 0 -> 208 bytes
 .../plugins/layouts/twocol/panels-twocol.tpl.php   |    25 +
 .../panels/plugins/layouts/twocol/twocol.css       |    37 +
 .../panels/plugins/layouts/twocol/twocol.inc       |    14 +
 .../panels/plugins/layouts/twocol/twocol.png       |   Bin 0 -> 193 bytes
 .../twocol_bricks/panels-twocol-bricks.tpl.php     |    67 +
 .../layouts/twocol_bricks/twocol_bricks.css        |    46 +
 .../layouts/twocol_bricks/twocol_bricks.inc        |    25 +
 .../layouts/twocol_bricks/twocol_bricks.png        |   Bin 0 -> 277 bytes
 .../twocol_stacked/panels-twocol-stacked.tpl.php   |    40 +
 .../layouts/twocol_stacked/twocol_stacked.css      |    41 +
 .../layouts/twocol_stacked/twocol_stacked.inc      |    16 +
 .../layouts/twocol_stacked/twocol_stacked.png      |   Bin 0 -> 202 bytes
 .../panels/plugins/page_wizards/landing_page.inc   |   271 +
 .../panels/plugins/page_wizards/node_override.inc  |   289 +
 .../panels/plugins/panels_storage/page_manager.inc |    19 +
 .../style_bases/pane/pane_plain_box/icon.png       |   Bin 0 -> 3022 bytes
 .../pane/pane_plain_box/pane-plain-box.css         |    11 +
 .../pane/pane_plain_box/pane-plain-box.tpl.php     |    16 +
 .../pane/pane_plain_box/pane_plain_box.inc         |    93 +
 .../pane/pane_rounded_shadow/box-color.png         |   Bin 0 -> 4772 bytes
 .../pane/pane_rounded_shadow/box-shadow.png        |   Bin 0 -> 2528 bytes
 .../style_bases/pane/pane_rounded_shadow/icon.png  |   Bin 0 -> 3566 bytes
 .../pane_rounded_shadow/pane-rounded-shadow.css    |   105 +
 .../pane-rounded-shadow.tpl.php                    |    31 +
 .../pane_rounded_shadow/pane_rounded_shadow.inc    |    99 +
 .../style_bases/region/region_plain_box/icon.png   |   Bin 0 -> 3022 bytes
 .../region/region_plain_box/region-plain-box.css   |     6 +
 .../region_plain_box/region-plain-box.tpl.php      |    28 +
 .../region/region_plain_box/region_plain_box.inc   |    65 +
 .../region/region_rounded_shadow/box-color.png     |   Bin 0 -> 4772 bytes
 .../region/region_rounded_shadow/box-shadow.png    |   Bin 0 -> 2528 bytes
 .../region/region_rounded_shadow/icon.png          |   Bin 0 -> 3566 bytes
 .../region-rounded-shadow.css                      |    97 +
 .../region-rounded-shadow.tpl.php                  |    28 +
 .../region_rounded_shadow.inc                      |    71 +
 .../contrib/panels/plugins/styles/block.inc        |    43 +
 .../panels/plugins/styles/corners/corner-bits.png  |   Bin 0 -> 514 bytes
 .../corners/panels-rounded-corners-box.tpl.php     |    20 +
 .../plugins/styles/corners/rounded_corners.inc     |   198 +
 .../panels/plugins/styles/corners/shadow-b.png     |   Bin 0 -> 140 bytes
 .../panels/plugins/styles/corners/shadow-l.png     |   Bin 0 -> 137 bytes
 .../panels/plugins/styles/corners/shadow-r.png     |   Bin 0 -> 137 bytes
 .../panels/plugins/styles/corners/shadow-t.png     |   Bin 0 -> 139 bytes
 .../contrib/panels/plugins/styles/default.inc      |    38 +
 .../modules/contrib/panels/plugins/styles/list.inc |    54 +
 .../contrib/panels/plugins/styles/naked.inc        |    24 +
 .../contrib/panels/plugins/styles/stylizer.inc     |   349 +
 .../panels/plugins/task_handlers/panel_context.inc |   846 +
 .../contrib/panels/plugins/views/panels.views.inc  |    26 +
 .../views/panels_views_plugin_row_fields.inc       |   163 +
 .../templates/panels-dashboard-block.tpl.php       |    13 +
 .../panels/templates/panels-dashboard-link.tpl.php |    12 +
 .../panels/templates/panels-dashboard.tpl.php      |    11 +
 .../contrib/panels/templates/panels-pane.tpl.php   |    52 +
 .../boinc/modules/contrib/privatemsg/LICENSE.txt   |   274 +
 .../privatemsg/pm_block_user/add-rule-button.png   |   Bin 0 -> 690 bytes
 .../privatemsg/pm_block_user/pm_block_user.css     |    48 +
 .../privatemsg/pm_block_user/pm_block_user.info    |    12 +
 .../privatemsg/pm_block_user/pm_block_user.install |    50 +
 .../privatemsg/pm_block_user/pm_block_user.module  |   584 +
 .../privatemsg/pm_block_user/pm_block_user.test    |   174 +
 .../pm_block_user/remove-rule-button.png           |   Bin 0 -> 1113 bytes
 .../pm_email_notify/pm_email_notify.info           |    13 +
 .../pm_email_notify/pm_email_notify.install        |    46 +
 .../pm_email_notify/pm_email_notify.module         |   192 +
 .../modules/contrib/privatemsg/privatemsg-admin.js |     9 +
 .../modules/contrib/privatemsg/privatemsg-list.js  |     7 +
 .../privatemsg/privatemsg-recipients.tpl.php       |     8 +
 .../contrib/privatemsg/privatemsg-view.tpl.php     |    33 +
 .../modules/contrib/privatemsg/privatemsg.api.php  |   487 +
 .../contrib/privatemsg/privatemsg.author-pane.inc  |    53 +
 .../modules/contrib/privatemsg/privatemsg.info     |    10 +
 .../modules/contrib/privatemsg/privatemsg.install  |   513 +
 .../modules/contrib/privatemsg/privatemsg.module   |  2564 +++
 .../modules/contrib/privatemsg/privatemsg.test     |   669 +
 .../contrib/privatemsg/privatemsg.theme.inc        |   308 +
 .../privatemsg_filter/privatemsg-filter-list.js    |    12 +
 .../privatemsg_filter/privatemsg_filter.admin.inc  |   172 +
 .../privatemsg_filter/privatemsg_filter.css        |     9 +
 .../privatemsg_filter/privatemsg_filter.info       |    13 +
 .../privatemsg_filter/privatemsg_filter.install    |   115 +
 .../privatemsg_filter/privatemsg_filter.module     |   907 +
 .../privatemsg_filter/privatemsg_filter.test       |   327 +
 .../contrib/privatemsg/styles/privatemsg-list.css  |    19 +
 .../privatemsg/styles/privatemsg-recipients.css    |     5 +
 .../contrib/privatemsg/styles/privatemsg-view.css  |    60 +
 .../contrib/privatemsg/tests/privatemsgapi.test    |   116 +
 .../contrib/privatemsg/views/privatemsg.views.inc  |    39 +
 .../views/views_handler_field_privatemsg_link.inc  |   153 +
 .../boinc/modules/contrib/views/CHANGELOG.txt      |   626 +
 .../boinc/modules/contrib/views/LICENSE.txt        |   339 +
 .../default/boinc/modules/contrib/views/README.txt |    27 +
 .../modules/contrib/views/css/views-admin.css      |   661 +
 .../modules/contrib/views/css/views-list-rtl.css   |    27 +
 .../boinc/modules/contrib/views/css/views-list.css |    79 +
 .../boinc/modules/contrib/views/css/views-rtl.css  |     6 +
 .../boinc/modules/contrib/views/css/views-tabs.css |     5 +
 .../boinc/modules/contrib/views/css/views.css      |    98 +
 .../boinc/modules/contrib/views/docs/docs.php      |   720 +
 .../contrib/views/documentation-standards.txt      |     6 +
 .../views/handlers/views_handler_argument.inc      |   773 +
 .../views/handlers/views_handler_argument_date.inc |    66 +
 .../handlers/views_handler_argument_formula.inc    |    54 +
 .../views_handler_argument_many_to_one.inc         |   170 +
 .../views/handlers/views_handler_argument_null.inc |    59 +
 .../handlers/views_handler_argument_numeric.inc    |    95 +
 .../handlers/views_handler_argument_string.inc     |   240 +
 .../contrib/views/handlers/views_handler_field.inc |   859 +
 .../views/handlers/views_handler_field_boolean.inc |    73 +
 .../views/handlers/views_handler_field_counter.inc |    41 +
 .../views/handlers/views_handler_field_custom.inc  |    35 +
 .../views/handlers/views_handler_field_date.inc    |    74 +
 .../views/handlers/views_handler_field_markup.inc  |    44 +
 .../views/handlers/views_handler_field_math.inc    |    73 +
 .../views/handlers/views_handler_field_numeric.inc |   125 +
 .../views_handler_field_prerender_list.inc         |   111 +
 .../views/handlers/views_handler_field_url.inc     |    38 +
 .../views/handlers/views_handler_filter.inc        |   636 +
 .../views_handler_filter_boolean_operator.inc      |   159 +
 ...iews_handler_filter_boolean_operator_string.inc |    27 +
 .../views/handlers/views_handler_filter_date.inc   |   157 +
 .../handlers/views_handler_filter_equality.inc     |    38 +
 .../views/handlers/views_handler_filter_float.inc  |    22 +
 .../handlers/views_handler_filter_in_operator.inc  |   364 +
 .../handlers/views_handler_filter_many_to_one.inc  |   103 +
 .../handlers/views_handler_filter_numeric.inc      |   302 +
 .../views/handlers/views_handler_filter_string.inc |   303 +
 .../views/handlers/views_handler_relationship.inc  |   152 +
 .../contrib/views/handlers/views_handler_sort.inc  |    86 +
 .../views/handlers/views_handler_sort_date.inc     |    69 +
 .../views/handlers/views_handler_sort_formula.inc  |    47 +
 .../handlers/views_handler_sort_menu_hierarchy.inc |    19 +
 .../views/handlers/views_handler_sort_random.inc   |    27 +
 .../boinc/modules/contrib/views/help/about.html    |    17 +
 .../modules/contrib/views/help/analyze-theme.html  |    23 +
 .../contrib/views/help/api-default-views.html      |   105 +
 .../modules/contrib/views/help/api-example.html    |   179 +
 .../modules/contrib/views/help/api-handlers.html   |    70 +
 .../modules/contrib/views/help/api-plugins.html    |    79 +
 .../modules/contrib/views/help/api-tables.html     |   236 +
 .../boinc/modules/contrib/views/help/api.html      |    22 +
 .../boinc/modules/contrib/views/help/argument.html |    57 +
 .../contrib/views/help/display-attachment.html     |     1 +
 .../modules/contrib/views/help/display-block.html  |    10 +
 .../contrib/views/help/display-default.html        |     4 +
 .../modules/contrib/views/help/display-feed.html   |     1 +
 .../modules/contrib/views/help/display-page.html   |     5 +
 .../boinc/modules/contrib/views/help/display.html  |     7 +
 .../boinc/modules/contrib/views/help/embed.html    |    24 +
 .../contrib/views/help/example-author-block.html   |    77 +
 .../contrib/views/help/example-recent-stories.html |    57 +
 .../contrib/views/help/example-user-feed.html      |    73 +
 .../contrib/views/help/example-users-by-role.html  |    47 +
 .../boinc/modules/contrib/views/help/field.html    |     5 +
 .../boinc/modules/contrib/views/help/filter.html   |    12 +
 .../contrib/views/help/getting-started.html        |    26 +
 .../help/images/node-term_node-term_data-large.png |   Bin 0 -> 4141 bytes
 .../views/help/images/node-term_node-term_data.png |   Bin 0 -> 3457 bytes
 .../views/help/images/overview-ui-large.png        |   Bin 0 -> 83826 bytes
 .../views/help/images/overview-ui-small.png        |   Bin 0 -> 44890 bytes
 .../views/help/images/style-breakdown-large.png    |   Bin 0 -> 47381 bytes
 .../contrib/views/help/images/style-breakdown.png  |   Bin 0 -> 15182 bytes
 .../views/help/images/views1-admin-large.png       |   Bin 0 -> 67878 bytes
 .../contrib/views/help/images/views1-admin.png     |   Bin 0 -> 24372 bytes
 .../help/images/views1-changeviewtype-large.png    |   Bin 0 -> 37394 bytes
 .../views/help/images/views1-changeviewtype.png    |   Bin 0 -> 17456 bytes
 .../views/help/images/views2-addaview-large.png    |   Bin 0 -> 46121 bytes
 .../contrib/views/help/images/views2-addaview.png  |   Bin 0 -> 19262 bytes
 .../views/help/images/views2-adddisplay-large.png  |   Bin 0 -> 43413 bytes
 .../views/help/images/views2-adddisplay.png        |   Bin 0 -> 19976 bytes
 .../views/help/images/views2-addfields-large.png   |   Bin 0 -> 29487 bytes
 .../contrib/views/help/images/views2-addfields.png |   Bin 0 -> 13043 bytes
 .../help/images/views2-addfieldsajax-large.png     |   Bin 0 -> 26423 bytes
 .../views/help/images/views2-addfieldsajax.png     |   Bin 0 -> 16005 bytes
 .../views/help/images/views2-admin-large.png       |   Bin 0 -> 53418 bytes
 .../contrib/views/help/images/views2-admin.png     |   Bin 0 -> 19994 bytes
 .../images/views2-changedisplaystyle-large.png     |   Bin 0 -> 43090 bytes
 .../help/images/views2-changedisplaystyle.png      |   Bin 0 -> 16163 bytes
 .../help/images/views2-fieldspreview-large.png     |   Bin 0 -> 40484 bytes
 .../views/help/images/views2-fieldspreview.png     |   Bin 0 -> 12480 bytes
 .../views/help/images/views2-newview-large.png     |   Bin 0 -> 36263 bytes
 .../contrib/views/help/images/views2-newview.png   |   Bin 0 -> 17308 bytes
 .../help/images/views2-rearrangefields-large.png   |   Bin 0 -> 34183 bytes
 .../views/help/images/views2-rearrangefields.png   |   Bin 0 -> 19129 bytes
 .../views/help/images/views2-tablestyle-large.png  |   Bin 0 -> 38890 bytes
 .../views/help/images/views2-tablestyle.png        |   Bin 0 -> 20917 bytes
 .../boinc/modules/contrib/views/help/menu.html     |    21 +
 .../boinc/modules/contrib/views/help/new.html      |   113 +
 .../modules/contrib/views/help/overrides.html      |     6 +
 .../boinc/modules/contrib/views/help/path.html     |     7 +
 .../modules/contrib/views/help/relationship.html   |    13 +
 .../boinc/modules/contrib/views/help/sort.html     |    24 +
 .../contrib/views/help/style-comment-rss.html      |     1 +
 .../modules/contrib/views/help/style-fields.html   |     5 +
 .../modules/contrib/views/help/style-grid.html     |    20 +
 .../modules/contrib/views/help/style-list.html     |    20 +
 .../modules/contrib/views/help/style-node-rss.html |     1 +
 .../modules/contrib/views/help/style-node.html     |     9 +
 .../modules/contrib/views/help/style-row.html      |     3 +
 .../modules/contrib/views/help/style-rss.html      |     3 +
 .../views/help/style-summary-unformatted.html      |     3 +
 .../modules/contrib/views/help/style-summary.html  |     3 +
 .../modules/contrib/views/help/style-table.html    |    13 +
 .../contrib/views/help/style-unformatted.html      |     1 +
 .../boinc/modules/contrib/views/help/style.html    |    14 +
 .../modules/contrib/views/help/theme-css.html      |    75 +
 .../boinc/modules/contrib/views/help/updating.html |     2 +
 .../modules/contrib/views/help/using-theme.html    |    50 +
 .../modules/contrib/views/help/view-type.html      |    21 +
 .../modules/contrib/views/help/views.help.ini      |   203 +
 .../modules/contrib/views/images/arrow-active.png  |   Bin 0 -> 313 bytes
 .../contrib/views/images/expanded-options.png      |   Bin 0 -> 228 bytes
 .../modules/contrib/views/images/overridden.gif    |   Bin 0 -> 175 bytes
 .../boinc/modules/contrib/views/images/sprites.png |   Bin 0 -> 1926 bytes
 .../modules/contrib/views/images/status-active.gif |   Bin 0 -> 2196 bytes
 .../boinc/modules/contrib/views/includes/admin.inc |  3237 ++++
 .../boinc/modules/contrib/views/includes/ajax.inc  |   178 +
 .../modules/contrib/views/includes/analyze.inc     |   108 +
 .../boinc/modules/contrib/views/includes/base.inc  |   127 +
 .../boinc/modules/contrib/views/includes/cache.inc |   293 +
 .../modules/contrib/views/includes/convert.inc     |   548 +
 .../boinc/modules/contrib/views/includes/form.inc  |   300 +
 .../modules/contrib/views/includes/handlers.inc    |  1483 ++
 .../modules/contrib/views/includes/plugins.inc     |   407 +
 .../boinc/modules/contrib/views/includes/query.inc |  1011 ++
 .../boinc/modules/contrib/views/includes/tabs.inc  |   192 +
 .../boinc/modules/contrib/views/includes/view.inc  |  2123 +++
 .../default/boinc/modules/contrib/views/js/ajax.js |   365 +
 .../boinc/modules/contrib/views/js/ajax_view.js    |   167 +
 .../default/boinc/modules/contrib/views/js/base.js |   122 +
 .../boinc/modules/contrib/views/js/dependent.js    |   195 +
 .../default/boinc/modules/contrib/views/js/tabs.js |   401 +
 .../boinc/modules/contrib/views/js/view-list.js    |    13 +
 .../contrib/views/modules/aggregator.views.inc     |   456 +
 ...ws_handler_argument_aggregator_category_cid.inc |    20 +
 .../views_handler_argument_aggregator_fid.inc      |    21 +
 .../views_handler_argument_aggregator_iid.inc      |    20 +
 .../views_handler_field_aggregator_category.inc    |    52 +
 .../views_handler_field_aggregator_title_link.inc  |    43 +
 .../views_handler_field_aggregator_xss.inc         |    13 +
 ...iews_handler_filter_aggregator_category_cid.inc |    19 +
 .../aggregator/views_plugin_row_aggregator_rss.inc |    64 +
 .../modules/contrib/views/modules/book.views.inc   |   123 +
 .../contrib/views/modules/book.views_convert.inc   |    80 +
 .../contrib/views/modules/comment.views.inc        |   564 +
 .../views/modules/comment.views_convert.inc        |   131 +
 .../views/modules/comment.views_default.inc        |   356 +
 .../views_handler_argument_comment_user_uid.inc    |    40 +
 .../comment/views_handler_field_comment.inc        |    49 +
 .../comment/views_handler_field_comment_depth.inc  |    13 +
 .../comment/views_handler_field_comment_link.inc   |    37 +
 .../views_handler_field_comment_link_delete.inc    |    14 +
 .../views_handler_field_comment_link_edit.inc      |    47 +
 .../views_handler_field_comment_link_reply.inc     |    15 +
 .../views_handler_field_comment_node_link.inc      |    59 +
 .../views_handler_field_comment_username.inc       |    47 +
 .../views_handler_field_last_comment_timestamp.inc |    17 +
 .../views_handler_field_ncs_last_comment_name.inc  |    45 +
 .../views_handler_field_ncs_last_updated.inc       |    11 +
 .../comment/views_handler_field_node_comment.inc   |    18 +
 .../views_handler_field_node_new_comments.inc      |   100 +
 .../views_handler_filter_comment_user_uid.inc      |    22 +
 .../views_handler_filter_ncs_last_updated.inc      |    17 +
 .../comment/views_handler_filter_node_comment.inc  |    14 +
 .../comment/views_handler_sort_comment_thread.inc  |    20 +
 .../views_handler_sort_ncs_last_comment_name.inc   |    22 +
 .../views_handler_sort_ncs_last_updated.inc        |    12 +
 .../comment/views_plugin_row_comment_rss.inc       |    41 +
 .../comment/views_plugin_row_comment_view.inc      |    49 +
 .../contrib/views/modules/contact.views.inc        |    32 +
 .../contact/views_handler_field_contact_link.inc   |    71 +
 .../modules/contrib/views/modules/filter.views.inc |    54 +
 .../views_handler_field_filter_format_name.inc     |    28 +
 .../modules/contrib/views/modules/locale.views.inc |   246 +
 .../locale/views_handler_argument_locale_group.inc |    34 +
 .../views_handler_argument_locale_language.inc     |    32 +
 .../locale/views_handler_field_locale_group.inc    |    13 +
 .../locale/views_handler_field_locale_language.inc |    28 +
 .../views_handler_field_locale_link_edit.inc       |    44 +
 .../locale/views_handler_filter_locale_group.inc   |    17 +
 .../views_handler_filter_locale_language.inc       |    16 +
 .../locale/views_handler_filter_locale_version.inc |    21 +
 .../modules/contrib/views/modules/node.views.inc   |   886 +
 .../contrib/views/modules/node.views_convert.inc   |   181 +
 .../contrib/views/modules/node.views_default.inc   |   377 +
 .../node/views_handler_argument_dates_various.inc  |   169 +
 .../node/views_handler_argument_node_language.inc  |    31 +
 .../node/views_handler_argument_node_nid.inc       |    25 +
 .../node/views_handler_argument_node_type.inc      |    35 +
 .../node/views_handler_argument_node_vid.inc       |    27 +
 .../views_handler_field_history_user_timestamp.inc |    71 +
 .../modules/node/views_handler_field_node.inc      |    73 +
 .../modules/node/views_handler_field_node_link.inc |    38 +
 .../node/views_handler_field_node_link_delete.inc  |    29 +
 .../node/views_handler_field_node_link_edit.inc    |    29 +
 .../modules/node/views_handler_field_node_path.inc |    39 +
 .../node/views_handler_field_node_revision.inc     |    59 +
 ...ews_handler_field_node_revision_link_delete.inc |    37 +
 ...ews_handler_field_node_revision_link_revert.inc |    38 +
 .../modules/node/views_handler_field_node_type.inc |    42 +
 ...views_handler_filter_history_user_timestamp.inc |    71 +
 .../node/views_handler_filter_node_access.inc      |    32 +
 .../node/views_handler_filter_node_status.inc      |    13 +
 .../node/views_handler_filter_node_type.inc        |    17 +
 .../node/views_plugin_argument_default_node.inc    |    27 +
 .../node/views_plugin_argument_validate_node.inc   |   122 +
 .../modules/node/views_plugin_row_node_rss.inc     |   141 +
 .../modules/node/views_plugin_row_node_view.inc    |    72 +
 .../modules/contrib/views/modules/poll.views.inc   |    55 +
 .../contrib/views/modules/profile.views.inc        |   245 +
 .../views/modules/profile.views_convert.inc        |    39 +
 .../profile/views_handler_field_profile_date.inc   |    81 +
 .../profile/views_handler_field_profile_list.inc   |    33 +
 .../views_handler_filter_profile_selection.inc     |    23 +
 .../modules/contrib/views/modules/search.views.inc |   223 +
 .../contrib/views/modules/search.views_convert.inc |    23 +
 .../contrib/views/modules/search.views_default.inc |   149 +
 .../search/views_handler_field_search_score.inc    |    81 +
 .../modules/search/views_handler_filter_search.inc |   112 +
 .../search/views_handler_sort_search_score.inc     |    24 +
 .../search/views_plugin_row_search_view.inc        |    33 +
 .../contrib/views/modules/statistics.views.inc     |   273 +
 .../views/modules/statistics.views_convert.inc     |    51 +
 .../views/modules/statistics.views_default.inc     |   302 +
 .../views_handler_field_accesslog_path.inc         |    45 +
 .../views_handler_field_node_counter_timestamp.inc |    21 +
 .../views_handler_field_statistics_numeric.inc     |    21 +
 .../modules/contrib/views/modules/system.views.inc |   229 +
 .../system/views_handler_argument_file_fid.inc     |    17 +
 .../modules/system/views_handler_field_file.inc    |    52 +
 .../system/views_handler_field_file_status.inc     |    10 +
 .../system/views_handler_filter_file_status.inc    |    12 +
 .../contrib/views/modules/taxonomy.views.inc       |   499 +
 .../views/modules/taxonomy.views_convert.inc       |   102 +
 .../views/modules/taxonomy.views_default.inc       |   182 +
 .../taxonomy/views_handler_argument_taxonomy.inc   |    19 +
 .../views_handler_argument_term_node_tid.inc       |    41 +
 .../views_handler_argument_term_node_tid_depth.inc |   136 +
 ...ndler_argument_term_node_tid_depth_modifier.inc |    58 +
 .../views_handler_argument_vocabulary_vid.inc      |    19 +
 .../taxonomy/views_handler_field_taxonomy.inc      |    58 +
 .../taxonomy/views_handler_field_term_node_tid.inc |   119 +
 .../views_handler_filter_term_node_tid.inc         |   302 +
 .../views_handler_filter_term_node_tid_depth.inc   |    89 +
 .../views_handler_filter_vocabulary_vid.inc        |    18 +
 .../views_handler_relationship_node_term_data.inc  |    74 +
 .../views_plugin_argument_default_taxonomy_tid.inc |   124 +
 ...iews_plugin_argument_validate_taxonomy_term.inc |   148 +
 .../contrib/views/modules/translation.views.inc    |   191 +
 .../views_handler_argument_node_language.inc       |    31 +
 .../views_handler_argument_node_tnid.inc           |    25 +
 .../views_handler_field_node_language.inc          |    29 +
 .../views_handler_field_node_link_translate.inc    |    31 +
 .../views_handler_field_node_translation_link.inc  |    32 +
 .../views_handler_filter_node_language.inc         |    15 +
 .../translation/views_handler_filter_node_tnid.inc |    38 +
 .../views_handler_filter_node_tnid_child.inc       |    15 +
 .../views_handler_relationship_translation.inc     |    96 +
 .../modules/contrib/views/modules/upload.views.inc |   163 +
 .../contrib/views/modules/upload.views_convert.inc |   107 +
 .../views_handler_field_upload_description.inc     |    72 +
 .../upload/views_handler_field_upload_fid.inc      |    85 +
 .../upload/views_handler_filter_upload_fid.inc     |    17 +
 .../modules/contrib/views/modules/user.views.inc   |   481 +
 .../contrib/views/modules/user.views_convert.inc   |    60 +
 .../user/views_handler_argument_user_uid.inc       |    29 +
 .../views_handler_argument_users_roles_rid.inc     |    17 +
 .../modules/user/views_handler_field_user.inc      |    47 +
 .../user/views_handler_field_user_language.inc     |    28 +
 .../modules/user/views_handler_field_user_link.inc |    42 +
 .../user/views_handler_field_user_link_delete.inc  |    17 +
 .../user/views_handler_field_user_link_edit.inc    |    17 +
 .../modules/user/views_handler_field_user_mail.inc |    32 +
 .../modules/user/views_handler_field_user_name.inc |    62 +
 .../user/views_handler_field_user_picture.inc      |    28 +
 .../user/views_handler_field_user_roles.inc        |    46 +
 .../user/views_handler_filter_user_current.inc     |    27 +
 .../user/views_handler_filter_user_name.inc        |   143 +
 .../user/views_handler_filter_user_roles.inc       |    20 +
 .../views_plugin_argument_default_current_user.inc |    16 +
 .../user/views_plugin_argument_default_user.inc    |    72 +
 .../user/views_plugin_argument_validate_user.inc   |   117 +
 .../modules/contrib/views/modules/views.views.inc  |    69 +
 .../contrib/views/plugins/views_plugin_access.inc  |    81 +
 .../views/plugins/views_plugin_access_none.inc     |    10 +
 .../views/plugins/views_plugin_access_perm.inc     |    39 +
 .../views/plugins/views_plugin_access_role.inc     |    54 +
 .../plugins/views_plugin_argument_default.inc      |    78 +
 .../plugins/views_plugin_argument_default_php.inc  |    51 +
 .../plugins/views_plugin_argument_validate.inc     |    70 +
 .../views_plugin_argument_validate_numeric.inc     |    27 +
 .../plugins/views_plugin_argument_validate_php.inc |    47 +
 .../contrib/views/plugins/views_plugin_cache.inc   |   299 +
 .../views/plugins/views_plugin_cache_none.inc      |    18 +
 .../views/plugins/views_plugin_cache_time.inc      |    55 +
 .../contrib/views/plugins/views_plugin_display.inc |  1995 +++
 .../plugins/views_plugin_display_attachment.inc    |   278 +
 .../views/plugins/views_plugin_display_block.inc   |   192 +
 .../views/plugins/views_plugin_display_default.inc |    55 +
 .../views/plugins/views_plugin_display_feed.inc    |   205 +
 .../views/plugins/views_plugin_display_page.inc    |   509 +
 .../contrib/views/plugins/views_plugin_row.inc     |   139 +
 .../views/plugins/views_plugin_row_fields.inc      |    67 +
 .../contrib/views/plugins/views_plugin_style.inc   |   274 +
 .../views/plugins/views_plugin_style_default.inc   |    24 +
 .../views/plugins/views_plugin_style_grid.inc      |    60 +
 .../views/plugins/views_plugin_style_jump_menu.inc |   155 +
 .../views/plugins/views_plugin_style_list.inc      |    37 +
 .../views/plugins/views_plugin_style_rss.inc       |   109 +
 .../views/plugins/views_plugin_style_summary.inc   |    69 +
 .../views_plugin_style_summary_jump_menu.inc       |   123 +
 .../views_plugin_style_summary_unformatted.inc     |    34 +
 .../views/plugins/views_plugin_style_table.inc     |   254 +
 .../boinc/modules/contrib/views/theme/theme.inc    |   756 +
 .../contrib/views/theme/views-exposed-form.tpl.php |    47 +
 .../modules/contrib/views/theme/views-more.tpl.php |    16 +
 .../contrib/views/theme/views-ui-edit-item.tpl.php |    45 +
 .../contrib/views/theme/views-ui-edit-tab.tpl.php  |    98 +
 .../contrib/views/theme/views-ui-edit-view.tpl.php |    45 +
 .../views/theme/views-ui-list-views.tpl.php        |    41 +
 .../contrib/views/theme/views-view-field.tpl.php   |    22 +
 .../contrib/views/theme/views-view-fields.tpl.php  |    38 +
 .../contrib/views/theme/views-view-grid.tpl.php    |    37 +
 .../contrib/views/theme/views-view-list.tpl.php    |    20 +
 .../views/theme/views-view-row-comment.tpl.php     |    17 +
 .../views/theme/views-view-row-node.tpl.php        |    20 +
 .../contrib/views/theme/views-view-row-rss.tpl.php |    14 +
 .../contrib/views/theme/views-view-rss.tpl.php     |    19 +
 .../theme/views-view-summary-unformatted.tpl.php   |    19 +
 .../contrib/views/theme/views-view-summary.tpl.php |    19 +
 .../contrib/views/theme/views-view-table.tpl.php   |    41 +
 .../views/theme/views-view-unformatted.tpl.php     |    16 +
 .../modules/contrib/views/theme/views-view.tpl.php |    91 +
 .../boinc/modules/contrib/views/views.drush.inc    |    13 +
 .../default/boinc/modules/contrib/views/views.info |    10 +
 .../boinc/modules/contrib/views/views.install      |   518 +
 .../boinc/modules/contrib/views/views.module       |  1374 ++
 .../boinc/modules/contrib/views/views2.doxy        |  1252 ++
 .../contrib/views/views_export/views_export.css    |    12 +
 .../contrib/views/views_export/views_export.info   |    12 +
 .../contrib/views/views_export/views_export.module |   256 +
 .../modules/contrib/views/views_revert.drush.inc   |   154 +
 .../boinc/modules/contrib/views/views_ui.info      |    11 +
 .../boinc/modules/contrib/views/views_ui.module    |   301 +
 .../boinc/modules/contrib/wysiwyg/CHANGELOG.txt    |   306 +
 .../boinc/modules/contrib/wysiwyg/LICENSE.txt      |   274 +
 .../boinc/modules/contrib/wysiwyg/README.txt       |    52 +
 .../modules/contrib/wysiwyg/editors/ckeditor.inc   |   333 +
 .../contrib/wysiwyg/editors/css/openwysiwyg.css    |    11 +
 .../contrib/wysiwyg/editors/css/tinymce-2.css      |    27 +
 .../contrib/wysiwyg/editors/css/tinymce-3.css      |    24 +
 .../modules/contrib/wysiwyg/editors/fckeditor.inc  |   292 +
 .../contrib/wysiwyg/editors/js/ckeditor-3.0.js     |   217 +
 .../contrib/wysiwyg/editors/js/fckeditor-2.6.js    |   181 +
 .../contrib/wysiwyg/editors/js/fckeditor.config.js |    73 +
 .../modules/contrib/wysiwyg/editors/js/jwysiwyg.js |    25 +
 .../modules/contrib/wysiwyg/editors/js/markitup.js |    29 +
 .../modules/contrib/wysiwyg/editors/js/nicedit.js  |    95 +
 .../modules/contrib/wysiwyg/editors/js/none.js     |    72 +
 .../contrib/wysiwyg/editors/js/openwysiwyg.js      |    68 +
 .../contrib/wysiwyg/editors/js/tinymce-2.js        |   213 +
 .../contrib/wysiwyg/editors/js/tinymce-3.js        |   239 +
 .../contrib/wysiwyg/editors/js/whizzywig-56.js     |   133 +
 .../contrib/wysiwyg/editors/js/whizzywig-60.js     |    85 +
 .../contrib/wysiwyg/editors/js/whizzywig.js        |   126 +
 .../contrib/wysiwyg/editors/js/wymeditor.js        |    56 +
 .../modules/contrib/wysiwyg/editors/js/yui.js      |    35 +
 .../modules/contrib/wysiwyg/editors/jwysiwyg.inc   |    62 +
 .../modules/contrib/wysiwyg/editors/markitup.inc   |   186 +
 .../modules/contrib/wysiwyg/editors/nicedit.inc    |   119 +
 .../contrib/wysiwyg/editors/openwysiwyg.inc        |   173 +
 .../modules/contrib/wysiwyg/editors/tinymce.inc    |   618 +
 .../modules/contrib/wysiwyg/editors/whizzywig.inc  |   147 +
 .../modules/contrib/wysiwyg/editors/wymeditor.inc  |   233 +
 .../boinc/modules/contrib/wysiwyg/editors/yui.inc  |   297 +
 .../modules/contrib/wysiwyg/plugins/break.inc      |    21 +
 .../contrib/wysiwyg/plugins/break/break.css        |    10 +
 .../modules/contrib/wysiwyg/plugins/break/break.js |    68 +
 .../contrib/wysiwyg/plugins/break/images/break.gif |   Bin 0 -> 108 bytes
 .../wysiwyg/plugins/break/images/breaktext.gif     |   Bin 0 -> 255 bytes
 .../wysiwyg/plugins/break/images/spacer.gif        |   Bin 0 -> 43 bytes
 .../contrib/wysiwyg/plugins/break/langs/ca.js      |     6 +
 .../contrib/wysiwyg/plugins/break/langs/de.js      |     6 +
 .../contrib/wysiwyg/plugins/break/langs/en.js      |     6 +
 .../contrib/wysiwyg/plugins/break/langs/es.js      |     6 +
 .../contrib/wysiwyg/wysiwyg-dialog-page.tpl.php    |    84 +
 ...s-and-features-support-for-6.x-1060846-31.patch |   406 +
 .../modules/contrib/wysiwyg/wysiwyg.admin.inc      |   583 +
 .../boinc/modules/contrib/wysiwyg/wysiwyg.api.js   |    97 +
 .../boinc/modules/contrib/wysiwyg/wysiwyg.api.php  |   206 +
 .../modules/contrib/wysiwyg/wysiwyg.dialog.inc     |    63 +
 .../boinc/modules/contrib/wysiwyg/wysiwyg.info     |    10 +
 .../boinc/modules/contrib/wysiwyg/wysiwyg.init.js  |    21 +
 .../boinc/modules/contrib/wysiwyg/wysiwyg.install  |   361 +
 .../boinc/modules/contrib/wysiwyg/wysiwyg.js       |   231 +
 .../boinc/modules/contrib/wysiwyg/wysiwyg.module   |  1105 ++
 .../modules/contrib/wysiwyg/wysiwyg.module.old     |  1016 ++
 .../contrib/wysiwyg_tweaks/wysiwyg_tweaks.info     |     4 +
 .../contrib/wysiwyg_tweaks/wysiwyg_tweaks.module   |    18 +
 .../flag_comment_notify/flag_comment_notify.info   |    10 +
 .../flag_comment_notify/flag_comment_notify.module |   100 +
 .../boinc/modules/node_comment_block/LICENSE.txt   |   339 +
 .../boinc/modules/node_comment_block/README.txt    |    28 +
 .../node_comment_block/node-comment-block.css      |     3 +
 .../node_comment_block/node_comment_block.info     |     5 +
 .../node_comment_block/node_comment_block.module   |   122 +
 drupal/sites/default/boinc/themes/boinc/README.txt |   118 +
 drupal/sites/default/boinc/themes/boinc/boinc.info |   109 +
 .../default/boinc/themes/boinc/css/README.txt      |    24 +
 .../boinc/themes/boinc/css/block-editing-rtl.css   |    11 +
 .../boinc/themes/boinc/css/block-editing.css       |    27 +
 .../default/boinc/themes/boinc/css/blocks.css      |    96 +
 .../default/boinc/themes/boinc/css/comments.css    |   414 +
 .../boinc/themes/boinc/css/drupal6-reference.css   |  1985 +++
 .../default/boinc/themes/boinc/css/fields.css      |    46 +
 .../boinc/themes/boinc/css/font-awesome.css        |  2199 +++
 .../boinc/themes/boinc/css/font-awesome.min.css    |     4 +
 .../default/boinc/themes/boinc/css/forms-rtl.css   |    48 +
 .../sites/default/boinc/themes/boinc/css/forms.css |   623 +
 .../boinc/themes/boinc/css/html-reset-rtl.css      |    39 +
 .../default/boinc/themes/boinc/css/html-reset.css  |   346 +
 drupal/sites/default/boinc/themes/boinc/css/ie.css |    51 +
 .../default/boinc/themes/boinc/css/ie6-rtl.css     |    14 +
 .../sites/default/boinc/themes/boinc/css/ie6.css   |   103 +
 .../boinc/themes/boinc/css/layout-fixed-rtl.css    |    76 +
 .../boinc/themes/boinc/css/layout-fixed.css        |   307 +
 .../boinc/themes/boinc/css/layout-liquid-rtl.css   |    70 +
 .../boinc/themes/boinc/css/layout-liquid.css       |   204 +
 .../boinc/themes/boinc/css/messages-rtl.css        |    15 +
 .../default/boinc/themes/boinc/css/messages.css    |    55 +
 .../default/boinc/themes/boinc/css/navigation.css  |   104 +
 .../sites/default/boinc/themes/boinc/css/nodes.css |    93 +
 .../boinc/themes/boinc/css/page-backgrounds.css    |    41 +
 .../default/boinc/themes/boinc/css/pages-rtl.css   |    21 +
 .../sites/default/boinc/themes/boinc/css/pages.css |   984 ++
 .../boinc/themes/boinc/css/panels-styles.css       |   180 +
 .../sites/default/boinc/themes/boinc/css/print.css |    75 +
 .../boinc/themes/boinc/css/responsive-jswidth.css  |   117 +
 .../boinc/themes/boinc/css/responsive-media.css    |   156 +
 .../default/boinc/themes/boinc/css/tabs-rtl.css    |    24 +
 .../sites/default/boinc/themes/boinc/css/tabs.css  |   177 +
 .../boinc/themes/boinc/css/views-styles.css        |   239 +
 .../default/boinc/themes/boinc/css/wireframes.css  |    26 +
 .../sites/default/boinc/themes/boinc/favicon.ico   |   Bin 0 -> 15086 bytes
 .../boinc/themes/boinc/fonts/FontAwesome.otf       |   Bin 0 -> 124988 bytes
 .../themes/boinc/fonts/fontawesome-webfont.eot     |   Bin 0 -> 76518 bytes
 .../themes/boinc/fonts/fontawesome-webfont.svg     |   685 +
 .../themes/boinc/fonts/fontawesome-webfont.ttf     |   Bin 0 -> 152796 bytes
 .../themes/boinc/fonts/fontawesome-webfont.woff    |   Bin 0 -> 90412 bytes
 .../themes/boinc/fonts/fontawesome-webfont.woff2   |   Bin 0 -> 71896 bytes
 .../boinc/themes/boinc/images-source/messages.psd  |   Bin 0 -> 199810 bytes
 .../themes/boinc/images-source/panels-layouts.psd  |   Bin 0 -> 78724 bytes
 .../themes/boinc/images-source/screenshot.psd      |   Bin 0 -> 196125 bytes
 .../boinc/themes/boinc/images-source/tabs.psd      |   Bin 0 -> 56436 bytes
 .../default/boinc/themes/boinc/images/flags/ar.png |   Bin 0 -> 938 bytes
 .../default/boinc/themes/boinc/images/flags/bg.png |   Bin 0 -> 118 bytes
 .../default/boinc/themes/boinc/images/flags/ca.png |   Bin 0 -> 134 bytes
 .../default/boinc/themes/boinc/images/flags/cs.png |   Bin 0 -> 191 bytes
 .../default/boinc/themes/boinc/images/flags/da.png |   Bin 0 -> 130 bytes
 .../default/boinc/themes/boinc/images/flags/de.png |   Bin 0 -> 111 bytes
 .../default/boinc/themes/boinc/images/flags/el.png |   Bin 0 -> 189 bytes
 .../default/boinc/themes/boinc/images/flags/en.png |     1 +
 .../default/boinc/themes/boinc/images/flags/eo.png |   Bin 0 -> 153 bytes
 .../default/boinc/themes/boinc/images/flags/es.png |   Bin 0 -> 241 bytes
 .../default/boinc/themes/boinc/images/flags/et.png |   Bin 0 -> 144 bytes
 .../default/boinc/themes/boinc/images/flags/eu.png |   Bin 0 -> 407 bytes
 .../default/boinc/themes/boinc/images/flags/fa.png |   Bin 0 -> 324 bytes
 .../default/boinc/themes/boinc/images/flags/fi.png |   Bin 0 -> 145 bytes
 .../default/boinc/themes/boinc/images/flags/fo.png |   Bin 0 -> 182 bytes
 .../default/boinc/themes/boinc/images/flags/fr.png |   Bin 0 -> 116 bytes
 .../default/boinc/themes/boinc/images/flags/ga.png |   Bin 0 -> 117 bytes
 .../default/boinc/themes/boinc/images/flags/gb.png |   Bin 0 -> 210 bytes
 .../default/boinc/themes/boinc/images/flags/gl.png |   Bin 0 -> 396 bytes
 .../default/boinc/themes/boinc/images/flags/he.png |   Bin 0 -> 165 bytes
 .../default/boinc/themes/boinc/images/flags/hi.png |   Bin 0 -> 171 bytes
 .../default/boinc/themes/boinc/images/flags/hr.png |   Bin 0 -> 304 bytes
 .../default/boinc/themes/boinc/images/flags/hu.png |   Bin 0 -> 119 bytes
 .../default/boinc/themes/boinc/images/flags/id.png |   Bin 0 -> 107 bytes
 .../default/boinc/themes/boinc/images/flags/is.png |   Bin 0 -> 157 bytes
 .../default/boinc/themes/boinc/images/flags/it.png |   Bin 0 -> 116 bytes
 .../default/boinc/themes/boinc/images/flags/ja.png |   Bin 0 -> 154 bytes
 .../default/boinc/themes/boinc/images/flags/km.png |   Bin 0 -> 273 bytes
 .../default/boinc/themes/boinc/images/flags/ko.png |   Bin 0 -> 567 bytes
 .../default/boinc/themes/boinc/images/flags/lb.png |   Bin 0 -> 119 bytes
 .../default/boinc/themes/boinc/images/flags/lt.png |   Bin 0 -> 147 bytes
 .../default/boinc/themes/boinc/images/flags/lv.png |   Bin 0 -> 144 bytes
 .../default/boinc/themes/boinc/images/flags/mn.png |   Bin 0 -> 238 bytes
 .../default/boinc/themes/boinc/images/flags/nb.png |   Bin 0 -> 128 bytes
 .../default/boinc/themes/boinc/images/flags/nl.png |   Bin 0 -> 121 bytes
 .../default/boinc/themes/boinc/images/flags/nn.png |   Bin 0 -> 128 bytes
 .../default/boinc/themes/boinc/images/flags/pl.png |   Bin 0 -> 113 bytes
 .../boinc/themes/boinc/images/flags/pt-br.png      |   Bin 0 -> 313 bytes
 .../boinc/themes/boinc/images/flags/pt-pt.png      |   Bin 0 -> 271 bytes
 .../default/boinc/themes/boinc/images/flags/ro.png |   Bin 0 -> 111 bytes
 .../default/boinc/themes/boinc/images/flags/ru.png |   Bin 0 -> 121 bytes
 .../boinc/themes/boinc/images/flags/sco.png        |   Bin 0 -> 188 bytes
 .../default/boinc/themes/boinc/images/flags/se.png |   Bin 0 -> 219 bytes
 .../default/boinc/themes/boinc/images/flags/sk.png |   Bin 0 -> 259 bytes
 .../default/boinc/themes/boinc/images/flags/sl.png |   Bin 0 -> 197 bytes
 .../default/boinc/themes/boinc/images/flags/sq.png |   Bin 0 -> 266 bytes
 .../default/boinc/themes/boinc/images/flags/sr.png |   Bin 0 -> 475 bytes
 .../default/boinc/themes/boinc/images/flags/sv.png |   Bin 0 -> 144 bytes
 .../default/boinc/themes/boinc/images/flags/tg.png |   Bin 0 -> 211 bytes
 .../default/boinc/themes/boinc/images/flags/th.png |   Bin 0 -> 132 bytes
 .../default/boinc/themes/boinc/images/flags/tl.png |   Bin 0 -> 347 bytes
 .../default/boinc/themes/boinc/images/flags/tr.png |   Bin 0 -> 198 bytes
 .../default/boinc/themes/boinc/images/flags/uk.png |   Bin 0 -> 108 bytes
 .../default/boinc/themes/boinc/images/flags/us.png |   Bin 0 -> 770 bytes
 .../default/boinc/themes/boinc/images/flags/vi.png |   Bin 0 -> 223 bytes
 .../boinc/themes/boinc/images/flags/zh-cn.png      |     1 +
 .../boinc/themes/boinc/images/flags/zh-hans.png    |   Bin 0 -> 262 bytes
 .../boinc/themes/boinc/images/flags/zh-hant.png    |   Bin 0 -> 174 bytes
 .../boinc/themes/boinc/images/flags/zh-tw.png      |     1 +
 .../boinc/themes/boinc/images/heading-bg.png       |   Bin 0 -> 176 bytes
 .../boinc/themes/boinc/images/icon-green-light.png |   Bin 0 -> 313 bytes
 .../boinc/themes/boinc/images/icon-linux.png       |   Bin 0 -> 1153 bytes
 .../default/boinc/themes/boinc/images/icon-mac.png |   Bin 0 -> 883 bytes
 .../boinc/themes/boinc/images/icon-red-light.png   |   Bin 0 -> 318 bytes
 .../boinc/themes/boinc/images/icon-screensaver.png |   Bin 0 -> 4673 bytes
 .../boinc/themes/boinc/images/icon-windows.png     |   Bin 0 -> 1045 bytes
 .../themes/boinc/images/icon-yellow-light.png      |   Bin 0 -> 318 bytes
 .../boinc/themes/boinc/images/menu-bg-active.png   |   Bin 0 -> 211 bytes
 .../default/boinc/themes/boinc/images/menu-bg.png  |   Bin 0 -> 197 bytes
 .../boinc/themes/boinc/images/menu-divider.png     |   Bin 0 -> 189 bytes
 .../boinc/themes/boinc/images/menu-separator.png   |   Bin 0 -> 178 bytes
 .../themes/boinc/images/messages-error-ie6.png     |   Bin 0 -> 719 bytes
 .../boinc/themes/boinc/images/messages-error.png   |   Bin 0 -> 727 bytes
 .../themes/boinc/images/messages-status-ie6.png    |   Bin 0 -> 610 bytes
 .../boinc/themes/boinc/images/messages-status.png  |   Bin 0 -> 560 bytes
 .../themes/boinc/images/messages-warning-ie6.png   |   Bin 0 -> 693 bytes
 .../boinc/themes/boinc/images/messages-warning.png |   Bin 0 -> 664 bytes
 .../boinc/themes/boinc/images/orange-bars-nav.png  |   Bin 0 -> 1372 bytes
 .../boinc/themes/boinc/images/orange-bars.png      |   Bin 0 -> 4149 bytes
 .../default/boinc/themes/boinc/images/search.png   |   Bin 0 -> 339 bytes
 .../themes/boinc/images/speech-bubble-tail.png     |   Bin 0 -> 243 bytes
 .../default/boinc/themes/boinc/images/tab-bar.png  |   Bin 0 -> 160 bytes
 .../boinc/themes/boinc/images/tab-left-ie6.png     |   Bin 0 -> 331 bytes
 .../default/boinc/themes/boinc/images/tab-left.png |   Bin 0 -> 303 bytes
 .../boinc/themes/boinc/images/tab-right-ie6.png    |   Bin 0 -> 473 bytes
 .../boinc/themes/boinc/images/tab-right.png        |   Bin 0 -> 685 bytes
 .../boinc/themes/boinc/images/tab-secondary-bg.png |   Bin 0 -> 166 bytes
 .../boinc/themes/boinc/images/tab-secondary.png    |   Bin 0 -> 195 bytes
 .../sites/default/boinc/themes/boinc/js/README.txt |    16 +
 .../default/boinc/themes/boinc/js/fancy-radios.js  |    30 +
 .../boinc/themes/boinc/js/jquery.detectwidths.js   |   132 +
 .../boinc/themes/boinc/js/jquery.equalheights.js   |    98 +
 .../boinc/themes/boinc/js/jquery.headerwidth.js    |    32 +
 .../sites/default/boinc/themes/boinc/js/prefs.js   |    10 +
 .../sites/default/boinc/themes/boinc/js/script.js  |     5 +
 drupal/sites/default/boinc/themes/boinc/logo.png   |   Bin 0 -> 141 bytes
 .../default/boinc/themes/boinc/screenshot.png      |   Bin 0 -> 2342 bytes
 .../boinc/themes/boinc/shared/blue_gradient.png    |   Bin 0 -> 840 bytes
 .../boinc/themes/boinc/shared/boinc_fade_600.png   |   Bin 0 -> 32331 bytes
 .../boinc/themes/boinc/shared/boinc_logo_trans.gif |   Bin 0 -> 4104 bytes
 .../boinc/themes/boinc/shared/boincstats_icon.png  |   Bin 0 -> 2115 bytes
 .../default/boinc/themes/boinc/shared/donor.png    |   Bin 0 -> 789 bytes
 .../boinc/themes/boinc/shared/emphasized_post.png  |   Bin 0 -> 214 bytes
 .../boinc/themes/boinc/shared/filtered_post.png    |   Bin 0 -> 274 bytes
 .../default/boinc/themes/boinc/shared/flags/da.png |   Bin 0 -> 161 bytes
 .../boinc/themes/boinc/shared/freedc_icon.png      |   Bin 0 -> 2537 bytes
 .../boinc/themes/boinc/shared/gray_gradient.png    |   Bin 0 -> 7908 bytes
 .../default/boinc/themes/boinc/shared/head.png     |   Bin 0 -> 1247 bytes
 .../default/boinc/themes/boinc/shared/head_20.png  |   Bin 0 -> 648 bytes
 .../boinc/themes/boinc/shared/locked_post.png      |   Bin 0 -> 211 bytes
 .../boinc/themes/boinc/shared/paypal_logo.png      |   Bin 0 -> 2869 bytes
 .../default/boinc/themes/boinc/shared/pb_boinc.gif |   Bin 0 -> 2722 bytes
 .../sites/default/boinc/themes/boinc/shared/pm.png |   Bin 0 -> 224 bytes
 .../boinc/themes/boinc/shared/rate_negative.png    |   Bin 0 -> 220 bytes
 .../boinc/themes/boinc/shared/rate_positive.png    |   Bin 0 -> 257 bytes
 .../boinc/themes/boinc/shared/report_post.png      |   Bin 0 -> 241 bytes
 .../default/boinc/themes/boinc/shared/rss_icon.gif |   Bin 0 -> 641 bytes
 .../themes/boinc/shared/sticky_locked_post.png     |   Bin 0 -> 373 bytes
 .../boinc/themes/boinc/shared/sticky_post.png      |   Bin 0 -> 403 bytes
 .../boinc/themes/boinc/shared/unread_locked.png    |   Bin 0 -> 213 bytes
 .../boinc/themes/boinc/shared/unread_post.png      |   Bin 0 -> 296 bytes
 .../boinc/themes/boinc/shared/unread_sticky.png    |   Bin 0 -> 417 bytes
 .../themes/boinc/shared/unread_sticky_locked.png   |   Bin 0 -> 399 bytes
 .../default/boinc/themes/boinc/shared/xml.gif      |   Bin 0 -> 243 bytes
 .../sites/default/boinc/themes/boinc/template.php  |   836 +
 .../boinc/themes/boinc/templates/README.txt        |    84 +
 .../boinc/themes/boinc/templates/block.tpl.php     |    66 +
 .../themes/boinc/templates/comment-wrapper.tpl.php |    47 +
 .../boinc/themes/boinc/templates/comment.tpl.php   |   195 +
 .../themes/boinc/templates/forum-icon.tpl.php      |    25 +
 .../themes/boinc/templates/forum-list.tpl.php      |   122 +
 .../themes/boinc/templates/forum-submitted.tpl.php |    29 +
 .../boinc/templates/forum-topic-list.tpl.php       |   130 +
 .../boinc/templates/forum-topic-navigation.tpl.php |    35 +
 .../boinc/themes/boinc/templates/forums.tpl.php    |    29 +
 .../boinc/templates/maintenance-page.tpl.php       |   113 +
 .../boinc/templates/mobile_menu_toggle.tpl.php     |     4 +
 .../themes/boinc/templates/node-forum.tpl.php      |   213 +
 .../themes/boinc/templates/node-team_forum.tpl.php |   230 +
 .../boinc/themes/boinc/templates/node.tpl.php      |   121 +
 .../boinc/themes/boinc/templates/page.tpl.php      |   410 +
 .../boinc/templates/privatemsg-recipients.tpl.php  |     9 +
 .../themes/boinc/templates/privatemsg-view.tpl.php |    26 +
 .../themes/boinc/templates/region-sidebar.tpl.php  |    33 +
 .../boinc/themes/boinc/templates/region.tpl.php    |    33 +
 .../themes/boinc/templates/search-result.tpl.php   |   139 +
 .../themes/boinc/templates/user-picture.tpl.php    |    20 +
 .../boinc/templates/user-profile-category.tpl.php  |    34 +
 .../boinc/templates/user-profile-item.tpl.php      |    27 +
 .../themes/boinc/templates/user-profile.tpl.php    |   187 +
 .../views-view--boinc-team-forum-topics.tpl.php    |   135 +
 .../views-view--boinc-workunit--page.tpl.php       |   106 +
 ...view-field--boinc-account-tasks-all--id.tpl.php |    25 +
 .../views-view-field--boinc-friends--ops.tpl.php   |    26 +
 ...ws-view-field--boinc-friends--page--uid.tpl.php |    26 +
 ...-view-field--boinc-friends--page-2--ops.tpl.php |    22 +
 ...-view-field--boinc-friends--page-2--uid.tpl.php |    22 +
 ...ws-view-field--boinc-host-tasks-all--id.tpl.php |    25 +
 ...view-field--boinc-task--peak-disk-usage.tpl.php |    22 +
 ...-view-field--boinc-task--peak-swap-size.tpl.php |    22 +
 ...ield--boinc-task--peak-working-set-size.tpl.php |    22 +
 ...iew-field--boinc-workunit-tasks-all--id.tpl.php |    25 +
 ...elds--boinc-account-stats--panel-pane-1.tpl.php |    21 +
 ...ews-view-fields--boinc-friends--block-1.tpl.php |     3 +
 .../boinc/templates/views-view-rss--news.tpl.php   |    28 +
 ...--boinc-account-computers--panel-pane-1.tpl.php |    40 +
 ...ews-view-table--boinc-team-forum-topics.tpl.php |   107 +
 .../boinc/templates/views-view-table.tpl.php       |    54 +
 .../default/boinc/themes/boinc/theme-settings.php  |    56 +
 drupal/sites/default/files                         |     1 +
 drupal/sites/default/modules/boinc                 |     1 +
 drupal/sites/default/modules/project               |     1 +
 drupal/sites/default/settings.php                  |   179 +
 drupal/sites/default/themes/boinc                  |     1 +
 drupal/sites/default/themes/project                |     1 +
 gl.py                                              |    16 +
 html/drupal/home                                   |    23 -
 html/drupal/hosts_user                             |    23 -
 html/drupal/view_profile                           |    30 -
 html/inc/ReCaptcha/ReCaptcha.php                   |    97 +
 html/inc/ReCaptcha/RequestMethod.php               |    42 +
 html/inc/ReCaptcha/RequestMethod/Curl.php          |    74 +
 html/inc/ReCaptcha/RequestMethod/CurlPost.php      |    88 +
 html/inc/ReCaptcha/RequestMethod/Post.php          |    70 +
 html/inc/ReCaptcha/RequestMethod/Socket.php        |   104 +
 html/inc/ReCaptcha/RequestMethod/SocketPost.php    |   121 +
 html/inc/ReCaptcha/RequestParameters.php           |   103 +
 html/inc/ReCaptcha/Response.php                    |   102 +
 html/inc/account.inc                               |    50 +-
 html/inc/akismet.inc                               |     8 +-
 html/inc/bbcode_html.inc                           |    67 +-
 html/inc/boinc_db.inc                              |   187 +-
 html/inc/bootstrap.inc                             |   391 +
 html/inc/common_defs.inc                           |     1 +
 html/inc/countries.inc                             |    34 +-
 html/inc/db.inc                                    |    24 +-
 html/inc/db_conn.inc                               |    49 +-
 html/inc/db_ops.inc                                |   184 +-
 html/inc/dir_hier.inc                              |    75 +-
 html/inc/email.inc                                 |     6 +-
 html/inc/forum.inc                                 |   226 +-
 html/inc/forum_db.inc                              |     4 +
 html/inc/forum_email.inc                           |    31 +-
 html/inc/forum_rss.inc                             |     8 +-
 html/inc/friend.inc                                |    12 +-
 html/inc/host.inc                                  |   127 +-
 html/inc/image.inc                                 |     4 +-
 html/inc/language_names.inc                        |    50 +-
 html/inc/news.inc                                  |    13 +-
 html/inc/notify.inc                                |     4 +-
 html/inc/pm.inc                                    |   116 +-
 html/inc/prefs.inc                                 |    39 +-
 html/inc/prefs_project.inc                         |    12 +-
 html/inc/prefs_util.inc                            |    76 +-
 html/inc/profile.inc                               |    17 +-
 html/inc/recaptcha_loader.php                      |    42 +
 html/inc/recaptchalib.php                          |   177 +-
 html/inc/result.inc                                |   297 +-
 html/inc/sandbox.inc                               |     2 +-
 html/inc/stats_sites.inc                           |    33 +-
 html/inc/submit.inc                                |   134 +-
 html/inc/submit_db.inc                             |    24 +-
 html/inc/submit_util.inc                           |    15 +-
 html/inc/team.inc                                  |   106 +-
 html/inc/team_types.inc                            |    27 +-
 html/inc/text_transform.inc                        |    57 +-
 html/inc/translation.inc                           |     2 +-
 html/inc/uotd.inc                                  |    71 +-
 html/inc/user.inc                                  |   269 +-
 html/inc/util.inc                                  |   331 +-
 html/inc/util_basic.inc                            |    63 +-
 html/inc/util_ops.inc                              |    39 +-
 html/inc/web_rpc_api.inc                           |    23 +-
 html/inc/xml.inc                                   |    42 +-
 html/languages/translations/ca.po                  |  4759 +++--
 html/languages/translations/cs.po                  |  5989 +++----
 html/languages/translations/da.po                  |  6845 --------
 html/languages/translations/de.po                  |  6385 +++----
 html/languages/translations/en.po                  |    11 -
 html/languages/translations/es.po                  |  7200 --------
 html/languages/translations/fi.po                  |  7149 --------
 html/languages/translations/fr.po                  |  6351 +++----
 html/languages/translations/hu.po                  |  7146 --------
 html/languages/translations/it.po                  |  7126 --------
 html/languages/translations/it_IT.po               |  6655 +++++++
 html/languages/translations/ja.po                  |  5246 +++---
 html/languages/translations/ko.po                  |  5319 +++---
 html/languages/translations/lt.po                  |  6929 --------
 html/languages/translations/nl.po                  |  4865 +++---
 html/languages/translations/pl.po                  |  7128 --------
 html/languages/translations/pt.po                  |  4122 -----
 html/languages/translations/pt_BR.po               |  6656 +++++++
 html/languages/translations/pt_PT.po               |  6654 +++++++
 html/languages/translations/ru.po                  |  6145 +++----
 html/languages/translations/sk.po                  |  6513 +++++++
 html/languages/translations/sl.po                  |  7145 --------
 html/languages/translations/sv.po                  |  6654 +++++++
 html/languages/translations/tr.po                  |  6162 +++----
 html/languages/translations/zh_CN.po               |  5510 +++---
 html/languages/translations/zh_TW.po               |  6516 +++++++
 html/ops/add_user.php                              |    30 +
 html/ops/badge_admin.php                           |     2 +-
 html/ops/badge_assign_custom.php                   |     3 +-
 html/ops/build_po.php                              |    10 +-
 html/ops/build_po_boinc.php                        |    56 -
 html/ops/cancel_workunits.php                      |    63 +-
 html/ops/cancel_workunits_action.php               |    53 +-
 html/ops/create_boinc_wide_team.php                |    57 +
 html/ops/credit.php                                |     4 +-
 html/ops/db_update.php                             |    64 +
 html/ops/delete_job_files                          |     3 +-
 html/ops/delete_spammers.php                       |   326 +-
 html/ops/error_summary.php                         |     2 +-
 html/ops/errorwus.php                              |   236 +-
 html/ops/failure_result_summary_by_host.php        |     7 +-
 html/ops/fix_prefs.php                             |     9 +-
 html/ops/index.php                                 |     4 +-
 html/ops/manage_app_versions.php                   |    18 +-
 html/ops/manage_apps.php                           |    43 +-
 html/ops/mass_email.php                            |     2 +-
 html/ops/notify.php                                |     4 +-
 html/ops/pass_percentage_by_appversion.php         |   231 +
 html/ops/pass_percentage_by_platform.php           |    11 +-
 html/ops/profile_screen_form.php                   |     2 +-
 html/ops/show_log.php                              |     6 +-
 html/ops/size_census.php                           |     3 +-
 html/ops/team_export.php                           |     2 +-
 html/ops/team_import.php                           |     1 +
 html/ops/test_job_file.php                         |   137 +
 html/ops/update_profile_pages.php                  |    46 +-
 html/ops/update_uotd.php                           |    15 +-
 html/ops/upgrade_db.php                            |     2 +
 html/project.sample/cache_parameters.inc           |     1 +
 html/project.sample/project.inc                    |   115 +-
 html/project.sample/project_specific_prefs.inc     |    79 +-
 html/user/account_finish.php                       |    20 +-
 html/user/account_finish_action.php                |     8 +-
 html/user/am_get_info.php                          |    10 +-
 html/user/am_set_info.php                          |     2 +-
 html/user/apps.php                                 |     5 +-
 html/user/bbcode.php                               |    11 +-
 html/user/bbcode_toolbar.js                        |     4 +-
 html/user/cpu_list.php                             |    28 +-
 html/user/create_account_action.php                |    21 +-
 html/user/create_account_form.php                  |    16 +-
 html/user/create_profile.php                       |    19 +-
 html/user/create_team.php                          |    15 +
 html/user/custom.css                               |    13 +
 html/user/custom_dark.css                          |    50 +
 html/user/donate.php                               |     2 +-
 html/user/donations.php                            |     7 +-
 html/user/download.php                             |     2 +-
 html/user/edit_forum_preferences_action.php        |    27 +-
 html/user/edit_forum_preferences_form.php          |     8 +-
 html/user/edit_user_info_action.php                |     7 +-
 html/user/edit_user_info_form.php                  |    42 +-
 html/user/ffmail_action.php                        |   101 +-
 html/user/ffmail_form.php                          |    67 +-
 html/user/forum_banishment_vote.php                |     5 +-
 html/user/forum_edit.php                           |    20 +-
 html/user/forum_forum.php                          |    39 +-
 html/user/forum_get_data.php                       |     1 +
 html/user/forum_help_desk.php                      |    16 +-
 html/user/forum_index.php                          |    33 +-
 html/user/forum_moderate_post.php                  |    31 +-
 html/user/forum_moderate_post_action.php           |     4 +-
 html/user/forum_moderate_thread.php                |     6 +-
 html/user/forum_post.php                           |    25 +-
 html/user/forum_reply.php                          |    25 +-
 html/user/forum_report_post.php                    |    33 +-
 html/user/forum_search.php                         |     6 +-
 html/user/forum_search_action.php                  |    10 +-
 html/user/forum_thread.php                         |   213 +-
 html/user/forum_user_posts.php                     |     2 +-
 html/user/get_output.php                           |    93 +-
 html/user/get_passwd.php                           |    15 +-
 html/user/get_project_config.php                   |     2 +-
 html/user/gpu_list.php                             |     5 +-
 html/user/host_app_versions.php                    |    41 +-
 html/user/img/water.jpg                            |   Bin 0 -> 49001 bytes
 html/user/info.php                                 |     2 +-
 html/user/job_file.php                             |   155 +-
 html/user/join.php                                 |    98 +
 html/user/language_select.php                      |    56 +-
 html/user/login_action.php                         |    14 +-
 html/user/login_form.php                           |     4 +-
 html/user/logout.php                               |     2 +-
 html/user/lookup_account.php                       |     3 +
 html/user/mail_passwd.php                          |     2 +-
 html/user/manage_project.php                       |    12 +-
 html/user/notices.php                              |     2 +-
 html/user/notify_rss.php                           |     8 +-
 html/user/openid_login.php                         |     8 +-
 html/user/opt_out.php                              |     2 +-
 html/user/per_app_list.php                         |   234 +-
 html/user/pm.php                                   |   190 +-
 html/user/profile_menu.php                         |     8 +-
 html/user/profile_rate.php                         |     2 +-
 html/user/result.php                               |     5 +-
 html/user/result_status.php                        |    89 +
 html/user/results.php                              |    17 +-
 html/user/sample_bootstrap.min.css                 |     6 +
 html/user/sample_bootstrap.min.js                  |     7 +
 html/user/sample_index.php                         |   263 +-
 html/user/sample_jquery.min.js                     |     4 +
 html/user/server_status.php                        |   185 +-
 html/user/set_language.php                         |    31 +
 html/user/show_coproc.php                          |    11 +-
 html/user/site_search.php                          |    38 +
 html/user/submit_example.php                       |     2 +-
 html/user/submit_rpc_handler.php                   |   351 +-
 html/user/submit_status.php                        |     3 +-
 html/user/submit_test.php                          |    64 +
 html/user/team.php                                 |     1 -
 html/user/team_admins.php                          |     5 +-
 html/user/team_change_founder_form.php             |    28 +-
 html/user/team_create_action.php                   |    19 +
 html/user/team_create_form.php                     |    15 +-
 html/user/team_delta.php                           |    15 +-
 html/user/team_display.php                         |     3 +
 html/user/team_email_list.php                      |    36 +-
 html/user/team_forum.php                           |    18 +-
 html/user/team_founder_transfer_action.php         |    22 +-
 html/user/team_lookup.php                          |     2 +
 html/user/team_manage.php                          |     4 +-
 html/user/team_remove_inactive_form.php            |    17 +-
 html/user/team_search.php                          |    42 +-
 html/user/top_hosts.php                            |    16 +-
 html/user/top_teams.php                            |    20 +-
 html/user/top_users.php                            |    38 +-
 html/user/uotd.php                                 |     1 +
 html/user/uotd_gadget.php                          |     2 +-
 html/user/user_permissions.php                     |     8 +-
 html/user/user_search.php                          |    40 +-
 html/user/validate_email_addr.php                  |     2 +-
 html/user/weak_auth.php                            |    10 +-
 html/user/workunit.php                             |     3 +-
 lib/Makefile.am                                    |     9 +-
 lib/Makefile.mingw                                 |    41 +-
 lib/app_ipc.cpp                                    |    30 +-
 lib/app_ipc.h                                      |     4 +-
 lib/base64.h                                       |    18 +-
 lib/boinc_fcgi.h                                   |     1 +
 lib/boinc_win.h                                    |    40 +-
 lib/cc_config.cpp                                  |   232 +-
 lib/cc_config.h                                    |    52 +-
 lib/cert_sig.h                                     |     6 +-
 lib/cl_boinc.h                                     |     6 +-
 lib/common_defs.h                                  |     7 +-
 lib/coproc.cpp                                     |    38 +-
 lib/coproc.h                                       |    12 +-
 lib/crypt.cpp                                      |   222 +-
 lib/crypt.h                                        |     9 +-
 lib/crypt_prog.cpp                                 |   102 +-
 lib/daemonmgt.h                                    |     4 +-
 lib/diagnostics.cpp                                |    91 +-
 lib/diagnostics.h                                  |    13 +-
 lib/diagnostics_win.cpp                            |    42 +-
 lib/diagnostics_win.h                              |    19 +-
 lib/error_numbers.h                                |     5 +-
 lib/filesys.cpp                                    |   133 +-
 lib/filesys.h                                      |    64 +-
 lib/gui_rpc_client.h                               |    14 +-
 lib/gui_rpc_client_ops.cpp                         |    89 +-
 lib/gui_rpc_client_print.cpp                       |    19 +-
 lib/hostinfo.cpp                                   |    10 +-
 lib/hostinfo.h                                     |     7 +-
 lib/idlemon.h                                      |     4 +-
 lib/md5_file.h                                     |     4 +-
 lib/mem_usage.h                                    |     4 +-
 lib/mfile.h                                        |     4 +-
 lib/miofile.h                                      |     4 +-
 lib/msg_log.cpp                                    |    16 +-
 lib/msg_log.h                                      |     9 +-
 lib/msg_queue.h                                    |     4 +-
 lib/network.h                                      |     4 +-
 lib/notice.h                                       |     4 +-
 lib/opencl_boinc.cpp                               |     2 +-
 lib/opencl_boinc.h                                 |     7 +-
 lib/parse.cpp                                      |    35 +-
 lib/parse.h                                        |    13 +-
 lib/prefs.h                                        |     6 +-
 lib/proc_control.h                                 |     4 +-
 lib/procinfo.h                                     |     4 +-
 lib/project_init.h                                 |     4 +-
 lib/proxy_info.cpp                                 |    13 +-
 lib/proxy_info.h                                   |    12 +-
 lib/remote_submit.cpp                              |   374 +-
 lib/remote_submit.h                                |   110 +-
 lib/run_app_windows.cpp                            |    48 +-
 lib/sched_msgs.cpp                                 |    68 +
 lib/sched_msgs.h                                   |    51 +
 lib/shmem.cpp                                      |     2 +-
 lib/stackwalker_imports.h                          |     4 +-
 lib/stackwalker_win.cpp                            |     5 +-
 lib/stackwalker_win.h                              |     6 +-
 lib/std_fixes.h                                    |     6 +-
 lib/str_replace.h                                  |    17 +-
 lib/str_util.cpp                                   |   153 +-
 lib/str_util.h                                     |    16 +-
 lib/submit_api.py                                  |   279 +
 lib/synch.h                                        |     4 +-
 lib/translate.h                                    |     6 +-
 lib/unix_util.h                                    |     6 +-
 lib/url.cpp                                        |     3 -
 lib/url.h                                          |     4 +-
 lib/util.cpp                                       |    29 +
 lib/util.h                                         |     6 +-
 lib/win_util.cpp                                   |     5 +-
 lib/win_util.h                                     |     6 +-
 locale/ar/BOINC-Project-Generic.po                 |  6428 -------
 locale/az/BOINC-Setup.mo                           |   Bin 3046 -> 3046 bytes
 locale/az/BOINC-Setup.po                           |     2 +-
 locale/be/BOINC-Project-Generic.po                 |  6428 -------
 locale/bg/BOINC-Client.mo                          |   Bin 6128 -> 6104 bytes
 locale/bg/BOINC-Client.po                          |   116 +-
 locale/bg/BOINC-Manager.mo                         |   Bin 96737 -> 100981 bytes
 locale/bg/BOINC-Manager.po                         |  4993 +++---
 locale/bg/BOINC-Project-Generic.po                 |  6512 -------
 locale/bg/BOINC-Setup.mo                           |   Bin 3602 -> 4021 bytes
 locale/bg/BOINC-Setup.po                           |   129 +-
 locale/bg/BOINC-Web.mo                             |   Bin 45590 -> 51194 bytes
 locale/bg/BOINC-Web.po                             |  2357 +--
 locale/ca/BOINC-Client.mo                          |   Bin 4938 -> 4914 bytes
 locale/ca/BOINC-Client.po                          |     8 +-
 locale/ca/BOINC-Manager.mo                         |   Bin 79705 -> 79705 bytes
 locale/ca/BOINC-Manager.po                         |     2 +-
 locale/ca/BOINC-Project-Generic.po                 |  6513 -------
 locale/ca/BOINC-Setup.mo                           |   Bin 3050 -> 3026 bytes
 locale/ca/BOINC-Setup.po                           |     8 +-
 locale/ca/BOINC-Web.mo                             |   Bin 36836 -> 36836 bytes
 locale/ca/BOINC-Web.po                             |     2 +-
 locale/copy_files.php                              |    20 -
 locale/cs/BOINC-Client.mo                          |   Bin 4871 -> 5302 bytes
 locale/cs/BOINC-Client.po                          |   116 +-
 locale/cs/BOINC-Drupal.po                          |  2229 ++-
 locale/cs/BOINC-Manager.mo                         |   Bin 78523 -> 76741 bytes
 locale/cs/BOINC-Manager.po                         |  1951 +--
 locale/cs/BOINC-Project-Generic.po                 |  6515 -------
 locale/cs/BOINC-Setup.mo                           |   Bin 3071 -> 3131 bytes
 locale/cs/BOINC-Setup.po                           |    62 +-
 locale/cs/BOINC-Web.mo                             |   Bin 36458 -> 37516 bytes
 locale/cs/BOINC-Web.po                             |   745 +-
 locale/da/BOINC-Client.mo                          |   Bin 4736 -> 5198 bytes
 locale/da/BOINC-Client.po                          |   116 +-
 locale/da/BOINC-Manager.mo                         |   Bin 75990 -> 74231 bytes
 locale/da/BOINC-Manager.po                         |  1944 +--
 locale/da/BOINC-Project-Generic.po                 |  6845 --------
 locale/da/BOINC-Setup.mo                           |   Bin 2934 -> 3014 bytes
 locale/da/BOINC-Setup.po                           |    65 +-
 locale/da/BOINC-Web.mo                             |   Bin 20495 -> 36981 bytes
 locale/da/BOINC-Web.po                             |  1706 +-
 locale/de/BOINC-Client.mo                          |   Bin 4868 -> 5343 bytes
 locale/de/BOINC-Client.po                          |   116 +-
 locale/de/BOINC-Drupal.po                          |  2432 ++-
 locale/de/BOINC-Manager.mo                         |   Bin 80553 -> 78657 bytes
 locale/de/BOINC-Manager.po                         |  1946 +--
 locale/de/BOINC-Project-Generic.po                 |  6513 -------
 locale/de/BOINC-Setup.mo                           |   Bin 3072 -> 3159 bytes
 locale/de/BOINC-Setup.po                           |    65 +-
 locale/de/BOINC-Web.mo                             |   Bin 37299 -> 38742 bytes
 locale/de/BOINC-Web.po                             |   744 +-
 locale/el/BOINC-Manager.po                         |     0
 locale/el/BOINC-Project-Generic.po                 |  6524 -------
 locale/el/BOINC-Setup.mo                           |   Bin 2164 -> 4015 bytes
 locale/el/BOINC-Setup.po                           |    65 +-
 locale/el/BOINC-Web.po                             |     0
 locale/en/BOINC-Drupal.po                          |  2236 ++-
 locale/en/BOINC-Project-Generic.po                 |  6511 -------
 locale/en/BOINC-Web.po                             |   323 +-
 locale/es/BOINC-Client.mo                          |   Bin 4822 -> 5302 bytes
 locale/es/BOINC-Client.po                          |   123 +-
 locale/es/BOINC-Drupal.po                          |  1762 ++
 locale/es/BOINC-Manager.mo                         |   Bin 75134 -> 77662 bytes
 locale/es/BOINC-Manager.po                         |  5332 +++---
 locale/es/BOINC-Project-Generic.po                 |  7200 --------
 locale/es/BOINC-Setup.mo                           |   Bin 3026 -> 3116 bytes
 locale/es/BOINC-Setup.po                           |    74 +-
 locale/es/BOINC-Web.mo                             |   Bin 37016 -> 38441 bytes
 locale/es/BOINC-Web.po                             |   748 +-
 locale/fa/BOINC-Project-Generic.po                 |  6428 -------
 locale/fa_IR/BOINC-Client.mo                       |   Bin 0 -> 6118 bytes
 locale/fa_IR/BOINC-Client.po                       |   163 +
 locale/fi/BOINC-Client.mo                          |   Bin 4667 -> 4628 bytes
 locale/fi/BOINC-Client.po                          |    16 +-
 locale/fi/BOINC-Project-Generic.po                 |  7149 --------
 locale/fi/BOINC-Setup.mo                           |   Bin 2899 -> 2922 bytes
 locale/fi/BOINC-Setup.po                           |     8 +-
 locale/fr/BOINC-Client.mo                          |   Bin 4992 -> 5514 bytes
 locale/fr/BOINC-Client.po                          |   113 +-
 locale/fr/BOINC-Drupal.po                          |  2240 ++-
 locale/fr/BOINC-Manager.mo                         |   Bin 82106 -> 80078 bytes
 locale/fr/BOINC-Manager.po                         |  1947 +--
 locale/fr/BOINC-Project-Generic.po                 |  6516 -------
 locale/fr/BOINC-Setup.mo                           |   Bin 3137 -> 3242 bytes
 locale/fr/BOINC-Setup.po                           |    63 +-
 locale/fr/BOINC-Web.mo                             |   Bin 38126 -> 39505 bytes
 locale/fr/BOINC-Web.po                             |   761 +-
 locale/gl/BOINC-Project-Generic.po                 |  6428 -------
 locale/he/BOINC-Client.mo                          |   Bin 4774 -> 5698 bytes
 locale/he/BOINC-Client.po                          |   225 +-
 locale/he/BOINC-Drupal.po                          |  1752 ++
 locale/he/BOINC-Manager.po                         |     0
 locale/he/BOINC-Project-Generic.po                 |  7047 --------
 locale/he/BOINC-Setup.mo                           |   Bin 554 -> 3358 bytes
 locale/he/BOINC-Setup.po                           |   119 +-
 locale/he/BOINC-Web.po                             |     0
 locale/hr/BOINC-Client.po                          |     0
 locale/hr/BOINC-Manager.po                         |     0
 locale/hr/BOINC-Project-Generic.po                 |  6467 -------
 locale/hr/BOINC-Setup.po                           |     0
 locale/hr/BOINC-Web.po                             |     0
 locale/hu/BOINC-Client.mo                          |   Bin 5059 -> 5546 bytes
 locale/hu/BOINC-Client.po                          |   116 +-
 locale/hu/BOINC-Manager.mo                         |   Bin 81400 -> 79505 bytes
 locale/hu/BOINC-Manager.po                         |  1941 +-
 locale/hu/BOINC-Project-Generic.po                 |  7146 --------
 locale/hu/BOINC-Setup.mo                           |   Bin 3124 -> 3212 bytes
 locale/hu/BOINC-Setup.po                           |    68 +-
 locale/hu/BOINC-Web.mo                             |   Bin 37886 -> 38241 bytes
 locale/hu/BOINC-Web.po                             |   766 +-
 locale/it_IT/BOINC-Client.mo                       |   Bin 5012 -> 5451 bytes
 locale/it_IT/BOINC-Client.po                       |   127 +-
 locale/it_IT/BOINC-Drupal.po                       |  2270 ++-
 locale/it_IT/BOINC-Manager.mo                      |   Bin 79745 -> 77581 bytes
 locale/it_IT/BOINC-Manager.po                      |  2068 ++-
 locale/it_IT/BOINC-Project-Generic.po              |  6515 -------
 locale/it_IT/BOINC-Setup.mo                        |   Bin 3038 -> 3173 bytes
 locale/it_IT/BOINC-Setup.po                        |    70 +-
 locale/it_IT/BOINC-Web.mo                          |   Bin 36853 -> 38771 bytes
 locale/it_IT/BOINC-Web.po                          |   807 +-
 locale/ja/BOINC-Client.mo                          |   Bin 6285 -> 6287 bytes
 locale/ja/BOINC-Client.po                          |    34 +-
 locale/ja/BOINC-Manager.mo                         |   Bin 91709 -> 91711 bytes
 locale/ja/BOINC-Manager.po                         |   344 +-
 locale/ja/BOINC-Project-Generic.po                 |  6513 -------
 locale/ja/BOINC-Setup.mo                           |   Bin 3469 -> 3464 bytes
 locale/ja/BOINC-Setup.po                           |     4 +-
 locale/ja/BOINC-Web.mo                             |   Bin 41952 -> 40730 bytes
 locale/ja/BOINC-Web.po                             |   725 +-
 locale/ka/BOINC-Client.mo                          |   Bin 7862 -> 8555 bytes
 locale/ka/BOINC-Client.po                          |   127 +-
 locale/ka/BOINC-Setup.mo                           |   Bin 4823 -> 4913 bytes
 locale/ka/BOINC-Setup.po                           |    64 +-
 locale/ko/BOINC-Client.mo                          |   Bin 5132 -> 5608 bytes
 locale/ko/BOINC-Client.po                          |   115 +-
 locale/ko/BOINC-Drupal.po                          |  1989 ++-
 locale/ko/BOINC-Manager.mo                         |   Bin 82255 -> 80210 bytes
 locale/ko/BOINC-Manager.po                         |  1937 +-
 locale/ko/BOINC-Project-Generic.po                 |  6513 -------
 locale/ko/BOINC-Setup.mo                           |   Bin 3244 -> 3323 bytes
 locale/ko/BOINC-Setup.po                           |    64 +-
 locale/ko/BOINC-Web.mo                             |   Bin 38256 -> 39544 bytes
 locale/ko/BOINC-Web.po                             |   748 +-
 locale/lt/BOINC-Client.mo                          |   Bin 4885 -> 4880 bytes
 locale/lt/BOINC-Client.po                          |     2 +-
 locale/lt/BOINC-Manager.po                         |     0
 locale/lt/BOINC-Project-Generic.po                 |  6929 --------
 locale/lt/BOINC-Setup.po                           |     0
 locale/lt/BOINC-Web.po                             |     0
 locale/lv/BOINC-Client.mo                          |   Bin 4802 -> 4778 bytes
 locale/lv/BOINC-Client.po                          |     8 +-
 locale/lv/BOINC-Project-Generic.po                 |  6467 -------
 locale/lv/BOINC-Setup.mo                           |   Bin 3049 -> 3044 bytes
 locale/lv/BOINC-Setup.po                           |     2 +-
 locale/lv/BOINC-Web.po                             |     0
 locale/ms/BOINC-Client.po                          |     0
 locale/ms/BOINC-Manager.po                         |     0
 locale/ms/BOINC-Project-Generic.po                 |  6467 -------
 locale/ms/BOINC-Setup.po                           |     0
 locale/ms/BOINC-Web.po                             |     0
 locale/nb/BOINC-Client.mo                          |   Bin 4838 -> 4857 bytes
 locale/nb/BOINC-Client.po                          |     6 +-
 locale/nb/BOINC-Project-Generic.po                 |  6872 --------
 locale/nb/BOINC-Setup.mo                           |   Bin 3413 -> 3408 bytes
 locale/nb/BOINC-Setup.po                           |     4 +-
 locale/nb/BOINC-Web.po                             |     0
 locale/nl/BOINC-Client.mo                          |   Bin 4875 -> 4851 bytes
 locale/nl/BOINC-Client.po                          |     8 +-
 locale/nl/BOINC-Drupal.po                          |  2236 ++-
 locale/nl/BOINC-Manager.mo                         |   Bin 77193 -> 77199 bytes
 locale/nl/BOINC-Manager.po                         |    18 +-
 locale/nl/BOINC-Project-Generic.po                 |  6514 -------
 locale/nl/BOINC-Setup.mo                           |   Bin 2936 -> 2912 bytes
 locale/nl/BOINC-Setup.po                           |     8 +-
 locale/nn/BOINC-Client.mo                          |   Bin 417 -> 0 bytes
 locale/nn/BOINC-Client.po                          |   159 -
 locale/nn/BOINC-Manager.mo                         |   Bin 677 -> 0 bytes
 locale/nn/BOINC-Manager.po                         |  4077 -----
 locale/nn/BOINC-Project-Generic.po                 |  6428 -------
 locale/nn/BOINC-Setup.mo                           |   Bin 447 -> 0 bytes
 locale/nn/BOINC-Setup.po                           |   114 -
 locale/nn/BOINC-Web.mo                             |   Bin 497 -> 0 bytes
 locale/nn/BOINC-Web.po                             |   891 -
 locale/pl/BOINC-Client.mo                          |   Bin 4810 -> 5285 bytes
 locale/pl/BOINC-Client.po                          |   116 +-
 locale/pl/BOINC-Manager.mo                         |   Bin 71886 -> 77886 bytes
 locale/pl/BOINC-Manager.po                         |  5135 +++---
 locale/pl/BOINC-Project-Generic.po                 |  7128 --------
 locale/pl/BOINC-Setup.mo                           |   Bin 3143 -> 3296 bytes
 locale/pl/BOINC-Setup.po                           |    65 +-
 locale/pl/BOINC-Web.po                             |     0
 locale/pt_BR/BOINC-Client.mo                       |   Bin 4901 -> 5337 bytes
 locale/pt_BR/BOINC-Client.po                       |   112 +-
 locale/pt_BR/BOINC-Drupal.po                       |  1754 ++
 locale/pt_BR/BOINC-Manager.mo                      |   Bin 32813 -> 77136 bytes
 locale/pt_BR/BOINC-Manager.po                      |  4691 +++--
 locale/pt_BR/BOINC-Project-Generic.po              |  6467 -------
 locale/pt_BR/BOINC-Setup.mo                        |   Bin 557 -> 3164 bytes
 locale/pt_BR/BOINC-Setup.po                        |   119 +-
 locale/pt_BR/BOINC-Web.mo                          |   Bin 615 -> 37721 bytes
 locale/pt_BR/BOINC-Web.po                          |  1697 +-
 locale/pt_PT/BOINC-Client.mo                       |   Bin 4924 -> 5427 bytes
 locale/pt_PT/BOINC-Client.po                       |   147 +-
 locale/pt_PT/BOINC-Drupal.po                       |  2347 ++-
 locale/pt_PT/BOINC-Manager.mo                      |   Bin 79581 -> 78185 bytes
 locale/pt_PT/BOINC-Manager.po                      |  2413 ++-
 locale/pt_PT/BOINC-Project-Generic.po              |  6513 -------
 locale/pt_PT/BOINC-Setup.mo                        |   Bin 3065 -> 3179 bytes
 locale/pt_PT/BOINC-Setup.po                        |    84 +-
 locale/pt_PT/BOINC-Web.mo                          |   Bin 36916 -> 38414 bytes
 locale/pt_PT/BOINC-Web.po                          |   852 +-
 locale/ro/BOINC-Client.mo                          |   Bin 4994 -> 5471 bytes
 locale/ro/BOINC-Client.po                          |   116 +-
 locale/ro/BOINC-Manager.mo                         |   Bin 78567 -> 76968 bytes
 locale/ro/BOINC-Manager.po                         |  3661 ++--
 locale/ro/BOINC-Project-Generic.po                 |  6633 -------
 locale/ro/BOINC-Setup.mo                           |   Bin 3145 -> 3246 bytes
 locale/ro/BOINC-Setup.po                           |    63 +-
 locale/ro/BOINC-Web.po                             |     0
 locale/ru/BOINC-Client.mo                          |   Bin 6520 -> 7157 bytes
 locale/ru/BOINC-Client.po                          |   116 +-
 locale/ru/BOINC-Drupal.po                          |  2162 +--
 locale/ru/BOINC-Manager.mo                         |   Bin 105973 -> 103323 bytes
 locale/ru/BOINC-Manager.po                         |  1942 +-
 locale/ru/BOINC-Project-Generic.po                 |  6514 -------
 locale/ru/BOINC-Setup.mo                           |   Bin 3890 -> 4042 bytes
 locale/ru/BOINC-Setup.po                           |    65 +-
 locale/ru/BOINC-Web.mo                             |   Bin 50324 -> 51605 bytes
 locale/ru/BOINC-Web.po                             |   750 +-
 locale/sk/BOINC-Client.mo                          |   Bin 4835 -> 5253 bytes
 locale/sk/BOINC-Client.po                          |   116 +-
 locale/sk/BOINC-Manager.mo                         |   Bin 78078 -> 76255 bytes
 locale/sk/BOINC-Manager.po                         |  1944 +--
 locale/sk/BOINC-Project-Generic.po                 |  6513 -------
 locale/sk/BOINC-Setup.mo                           |   Bin 3003 -> 3075 bytes
 locale/sk/BOINC-Setup.po                           |    75 +-
 locale/sl/BOINC-Client.po                          |     0
 locale/sl/BOINC-Manager.po                         |     0
 locale/sl/BOINC-Project-Generic.po                 |  7145 --------
 locale/sl/BOINC-Setup.po                           |     0
 locale/sl/BOINC-Web.po                             |     0
 locale/sr at latin/BOINC-Client.mo                    |   Bin 4755 -> 4747 bytes
 locale/sr at latin/BOINC-Client.po                    |    26 +-
 locale/sr at latin/BOINC-Setup.mo                     |   Bin 3091 -> 3091 bytes
 locale/sr at latin/BOINC-Setup.po                     |     2 +-
 locale/sv/BOINC-Client.mo                          |   Bin 4699 -> 5144 bytes
 locale/sv/BOINC-Client.po                          |   114 +-
 locale/sv/BOINC-Drupal.po                          |  1756 ++
 locale/sv/BOINC-Manager.mo                         |   Bin 76493 -> 74671 bytes
 locale/sv/BOINC-Manager.po                         |  1940 +-
 locale/sv/BOINC-Setup.mo                           |   Bin 2975 -> 3053 bytes
 locale/sv/BOINC-Setup.po                           |    63 +-
 locale/sv/BOINC-Web.mo                             |   Bin 0 -> 37088 bytes
 locale/sv/BOINC-Web.po                             |  1045 ++
 locale/templates/BOINC-Client.pot                  |   114 +-
 locale/templates/BOINC-Drupal.pot                  |  1397 +-
 locale/templates/BOINC-Manager.pot                 |  1549 +-
 locale/templates/BOINC-Project-Generic.pot         |  3891 +++--
 locale/templates/BOINC-Setup.pot                   |    65 +-
 locale/templates/BOINC-Web.pot                     |   683 +-
 locale/templates/header-generic-web.txt            |     8 +
 locale/templates/header.txt                        |    15 +
 locale/th/BOINC-Setup.mo                           |   Bin 0 -> 4558 bytes
 locale/th/BOINC-Setup.po                           |   124 +
 locale/tr/BOINC-Client.mo                          |   Bin 4961 -> 5418 bytes
 locale/tr/BOINC-Client.po                          |   116 +-
 locale/tr/BOINC-Drupal.po                          |  1993 ++-
 locale/tr/BOINC-Manager.mo                         |   Bin 77951 -> 78934 bytes
 locale/tr/BOINC-Manager.po                         |  3667 ++--
 locale/tr/BOINC-Project-Generic.po                 |  6513 -------
 locale/tr/BOINC-Setup.mo                           |   Bin 3119 -> 3194 bytes
 locale/tr/BOINC-Setup.po                           |    65 +-
 locale/tr/BOINC-Web.mo                             |   Bin 37491 -> 38743 bytes
 locale/tr/BOINC-Web.po                             |   743 +-
 locale/txconfig                                    |    45 -
 locale/uk/BOINC-Client.mo                          |   Bin 6345 -> 6345 bytes
 locale/uk/BOINC-Client.po                          |     2 +-
 locale/uk/BOINC-Project-Generic.po                 |  6464 -------
 locale/update_templates.sh                         |   100 +
 locale/update_translations.sh                      |    74 +
 locale/updatetrans.sh                              |   115 -
 locale/zh_CN/BOINC-Client.mo                       |   Bin 4714 -> 5203 bytes
 locale/zh_CN/BOINC-Client.po                       |   120 +-
 locale/zh_CN/BOINC-Drupal.po                       |  2239 ++-
 locale/zh_CN/BOINC-Manager.mo                      |   Bin 73705 -> 71945 bytes
 locale/zh_CN/BOINC-Manager.po                      |  1945 +--
 locale/zh_CN/BOINC-Project-Generic.po              |  6513 -------
 locale/zh_CN/BOINC-Setup.mo                        |   Bin 2804 -> 2872 bytes
 locale/zh_CN/BOINC-Setup.po                        |    68 +-
 locale/zh_CN/BOINC-Web.mo                          |   Bin 32831 -> 34108 bytes
 locale/zh_CN/BOINC-Web.po                          |   750 +-
 locale/zh_TW/BOINC-Client.mo                       |   Bin 4506 -> 4509 bytes
 locale/zh_TW/BOINC-Client.po                       |    53 +-
 locale/zh_TW/BOINC-Manager.mo                      |   Bin 71591 -> 71591 bytes
 locale/zh_TW/BOINC-Manager.po                      |     2 +-
 locale/zh_TW/BOINC-Project-Generic.po              |  6516 -------
 locale/zh_TW/BOINC-Setup.mo                        |   Bin 2794 -> 2789 bytes
 locale/zh_TW/BOINC-Setup.po                        |    13 +-
 locale/zh_TW/BOINC-Web.mo                          |   Bin 32442 -> 32442 bytes
 locale/zh_TW/BOINC-Web.po                          |     2 +-
 m4/libcurl.m4                                      |     5 +-
 py/Boinc/boincxml.py                               |     2 +-
 py/Boinc/setup_project.py                          |    51 +-
 samples/condor/boinc_gahp.cpp                      |   129 +-
 samples/cygwin_fstab/fstab.c                       |    98 +
 samples/example_app/uc2.cpp                        |    14 -
 samples/example_app/ucn.cpp                        |     1 +
 samples/gfx_html/webboincpng.cpp                   |     2 +-
 samples/multi_thread/multi_thread.cpp              |    12 -
 samples/nvcuda/cuda.cpp                            |    12 -
 samples/openclapp/openclapp.cpp                    |    11 -
 samples/sleeper/sleeper.cpp                        |    13 -
 samples/vboxwrapper/floppyio.cpp                   |    38 +-
 samples/vboxwrapper/floppyio.h                     |    22 +-
 samples/vboxwrapper/vbox50.tlb                     |   Bin 228404 -> 281160 bytes
 samples/vboxwrapper/vbox51.tlb                     |   Bin 0 -> 284620 bytes
 samples/vboxwrapper/vbox_common.cpp                |   211 +-
 samples/vboxwrapper/vbox_common.h                  |    16 +-
 samples/vboxwrapper/vbox_mscom42.cpp               |     6 -
 samples/vboxwrapper/vbox_mscom42.h                 |     4 +-
 samples/vboxwrapper/vbox_mscom43.cpp               |     5 -
 samples/vboxwrapper/vbox_mscom43.h                 |     4 +-
 samples/vboxwrapper/vbox_mscom50.cpp               |     5 -
 samples/vboxwrapper/vbox_mscom50.h                 |     4 +-
 samples/vboxwrapper/vbox_mscom51.cpp               |    64 +
 samples/vboxwrapper/vbox_mscom51.h                 |    31 +
 samples/vboxwrapper/vbox_mscom_impl.cpp            |   185 +-
 samples/vboxwrapper/vbox_mscom_impl.h              |     3 +-
 samples/vboxwrapper/vbox_vboxmanage.cpp            |   173 +-
 samples/vboxwrapper/vbox_vboxmanage.h              |     7 +-
 samples/vboxwrapper/vboxcheckpoint.h               |     4 +-
 samples/vboxwrapper/vboxjob.cpp                    |    22 +-
 samples/vboxwrapper/vboxjob.h                      |    95 +-
 samples/vboxwrapper/vboxlogging.cpp                |     2 -
 samples/vboxwrapper/vboxlogging.h                  |     4 +-
 samples/vboxwrapper/vboxwrapper.cpp                |   433 +-
 samples/vboxwrapper/vboxwrapper.h                  |     4 +-
 samples/vm_wrapper/VMwrapper.py                    |     2 +-
 samples/worker/worker.cpp                          |    65 +-
 samples/wrapper/wrapper.cpp                        |   210 +-
 samples/wrappture/license.terms                    |    35 +
 sched/Makefile.am                                  |    12 +-
 sched/adjust_user_priority.cpp                     |     7 +-
 sched/antique_file_deleter.cpp                     |     1 -
 sched/assimilate_handler.h                         |     8 +-
 sched/assimilator.cpp                              |   104 +-
 sched/census.cpp                                   |     5 +-
 sched/credit.cpp                                   |   110 +-
 sched/credit.h                                     |     2 +-
 sched/credit_test.cpp                              |    31 +-
 sched/db_dump.cpp                                  |    26 +-
 sched/db_purge.cpp                                 |    44 +-
 sched/edf_sim.cpp                                  |     7 +
 sched/edf_sim.h                                    |     4 +-
 sched/feeder.cpp                                   |    14 +-
 sched/file_deleter.cpp                             |    52 +-
 sched/file_upload_handler.cpp                      |    52 +-
 sched/handle_request.cpp                           |   118 +-
 sched/hr.cpp                                       |    28 +-
 sched/hr.h                                         |     4 +-
 sched/hr_info.cpp                                  |     4 +
 sched/hr_info.h                                    |     4 +-
 sched/make_work.cpp                                |    18 +-
 sched/makefile_validator_test                      |     7 +-
 sched/message_handler.cpp                          |     1 -
 sched/plan_class_spec.cpp                          |    58 +-
 sched/plan_class_spec.h                            |     2 +
 sched/sample_assimilator.cpp                       |    40 +-
 sched/sample_bitwise_validator.cpp                 |    37 +-
 sched/sample_dummy_assimilator.cpp                 |    14 +-
 sched/sample_substr_validator.cpp                  |    49 +-
 sched/sample_trivial_validator.cpp                 |    13 +
 sched/sample_work_generator.cpp                    |     2 +-
 sched/sched_array.cpp                              |    22 +-
 sched/sched_assign.cpp                             |    24 +-
 sched/sched_check.cpp                              |    47 +-
 sched/sched_check.h                                |     4 +-
 sched/sched_config.cpp                             |     2 +-
 sched/sched_config.h                               |     4 +-
 sched/sched_customize.cpp                          |    18 +-
 sched/sched_customize.h                            |     5 +-
 sched/sched_driver.cpp                             |     2 +
 sched/sched_files.cpp                              |     4 +
 sched/sched_hr.h                                   |     4 +-
 sched/sched_limit.cpp                              |     2 +
 sched/sched_limit.h                                |    10 +-
 sched/sched_locality.cpp                           |    61 +-
 sched/sched_main.cpp                               |    14 +-
 sched/sched_msgs.cpp                               |    76 -
 sched/sched_msgs.h                                 |    49 -
 sched/sched_nci.cpp                                |     8 +-
 sched/sched_resend.cpp                             |    30 +-
 sched/sched_result.cpp                             |    56 +-
 sched/sched_score.cpp                              |    21 +-
 sched/sched_score.h                                |     2 +-
 sched/sched_send.cpp                               |   148 +-
 sched/sched_send.h                                 |     6 +-
 sched/sched_shmem.cpp                              |    16 +-
 sched/sched_shmem.h                                |    14 +-
 sched/sched_types.cpp                              |   111 +-
 sched/sched_types.h                                |    56 +-
 sched/sched_util.cpp                               |    21 +-
 sched/sched_util.h                                 |    16 +-
 sched/sched_util_basic.h                           |     4 +-
 sched/sched_version.cpp                            |   122 +-
 sched/sched_version.h                              |     2 +-
 sched/script_assimilator.cpp                       |    34 +-
 sched/script_validator.cpp                         |    51 +-
 sched/single_job_assimilator.cpp                   |    27 +-
 sched/size_regulator.cpp                           |     6 +-
 sched/start                                        |     9 +-
 sched/time_stats_log.cpp                           |     4 +
 sched/transitioner.cpp                             |    56 +-
 sched/transitioner_catchup.php                     |     8 +-
 sched/trickle_credit.cpp                           |     2 +-
 sched/trickle_deadline.cpp                         |    14 +-
 sched/update_stats.cpp                             |    14 +-
 sched/validate_util.cpp                            |    32 +-
 sched/validate_util.h                              |    17 +-
 sched/validate_util2.cpp                           |    31 +-
 sched/validate_util2.h                             |    12 +-
 sched/validator.cpp                                |   147 +-
 sched/validator.h                                  |     3 -
 sched/validator_test.cpp                           |    42 +-
 sched/wu_check.cpp                                 |     6 +-
 tools/Makefile.am                                  |     2 +-
 tools/backend_lib.cpp                              |    22 +-
 tools/backend_lib.h                                |     9 +-
 tools/check_project                                |   203 +
 tools/create_work.cpp                              |    90 +-
 tools/make_project                                 |   147 +-
 tools/makefile_sign_executable                     |     9 +
 tools/manage_privileges                            |     3 +-
 tools/process_input_template.cpp                   |   311 +-
 tools/process_input_template.h                     |     4 +-
 tools/project.xml                                  |     4 -
 tools/remote_submit_test.cpp                       |    13 +-
 tools/sign_executable.cpp                          |     6 +-
 tools/stage_file                                   |    57 +-
 tools/submit_api_test.py                           |   195 +
 tools/update_versions                              |     2 +-
 tools/xadd                                         |    82 +-
 vda/sched_vda.cpp                                  |    15 +-
 vda/vda.cpp                                        |     7 +-
 vda/vda_lib2.cpp                                   |    13 +-
 vda/vdad.cpp                                       |    10 +-
 version.log                                        |     2 +-
 zip/Makefile.am                                    |     2 +-
 zip/test.cpp                                       |    13 +-
 zip/zip/__p___mb_cur_max.c                         |     6 +
 zip/zip/util.c                                     |     5 +-
 zip/zip/zip.h                                      |     2 +-
 3705 files changed, 521395 insertions(+), 427199 deletions(-)

diff --git a/.gitignore b/.gitignore
index 558a50e..a7745b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,6 +26,7 @@
 
 # Netbeans project files
 /html/nbproject/
+*.project
 
 #
 *.pfx
@@ -38,6 +39,21 @@
 /win_build/installerv2/redist/Windows/src/boinccas/*.filters
 /win_build/installerv2/redist/Windows/src/boinccas/boinccas.sdf
 
+# Android (Studio, build scripts, artefacts, redundancies)
+/android/**/*.iml
+/android/**/.gradle
+/android/**/local.properties
+/android/**/.idea
+/android/**/build
+/android/**/captures
+/android/**/.externalNativeBuild
+/stage
+/android/BOINC/app/src/main/assets/arm*
+/android/BOINC/app/src/main/assets/mips*
+/android/BOINC/app/src/main/assets/x86*
+/android/BOINC/app/src/main/assets/all_projects_list.xml
+/android/BOINC/app/src/main/assets/ca-bundle.crt
+
 ## files created by _autosetup (autoreconf):
 *.in
 *.in~
@@ -79,6 +95,21 @@ test/version.inc
 *.lo
 *.a
 *.la
+
+## Drupal
+# ignore files with private/sensitive content in a public repo
+drupal/sites/default/dbconfig.php
+# ignore symlink to project-specific content (tracked in separate/project repo)
+drupal/sites/default/project
+
+## translation system
+locale/*/*.flag
+
+## dependency builds and CI cache directories
+3rdParty/linux/
+3rdParty/mac/
+3rdParty/buildCache/
+
 .libs/
 svn_version.h
 
@@ -100,9 +131,13 @@ lib/crypt_prog
 lib/parse_test
 py/lib.*/
 py/build/
+samples/condor/boinc_gahp
 samples/example_app/uc2
 samples/example_app/ucn
+samples/multi_thread/multi_thread
 samples/sleeper/sleeper
+samples/vboxmonitor/vboxmonitor
+samples/vboxwrapper/vboxwrapper
 samples/worker/worker
 samples/wrapper/wrapper
 sched/adjust_user_priority
@@ -129,6 +164,8 @@ sched/sample_substr_validator
 sched/sample_trivial_validator
 sched/sample_work_generator
 sched/sched_driver
+sched/script_assimilator
+sched/script_validator
 sched/show_shmem
 sched/single_job_assimilator
 sched/size_regulator
@@ -139,6 +176,7 @@ sched/trickle_credit
 sched/trickle_deadline
 sched/trickle_echo
 sched/update_stats
+sched/validator_test
 sched/wu_check
 tools/cancel_jobs
 tools/create_work
@@ -150,3 +188,6 @@ vda/ssim
 vda/vda
 vda/vdad
 /win_build/*.sdf
+
+# OS-specific files
+.DS_Store
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
new file mode 100644
index 0000000..ca42966
--- /dev/null
+++ b/.scrutinizer.yml
@@ -0,0 +1,143 @@
+filter:
+    paths:
+        - 'html/*.php'
+        - 'html/*.inc'
+        - 'py/*'
+        - 'tools/*'
+        - 'drupal/*'
+    excluded_paths:
+        - '*.tpl.php'
+        - '*.min.js'
+        - 'html/inc/htmLawed.php'
+        - 'drupal/sites/default/boinc/modules/contrib/htmlpurifier/*'
+        - 'drupal/sites/all/libraries/*'
+        - 'drupal/sites/default/modules/boinc/*'
+    dependency_paths:
+        - 'drupal/sites/default/boinc/modules/contrib/htmlpurifier/*'
+        - 'drupal/sites/all/libraries/phpmailer/*'
+checks:
+    php:
+        fix_php_opening_tag: false
+        remove_php_closing_tag: false
+        one_class_per_file: false
+        side_effects_or_types: false
+        no_mixed_inline_html: false
+        require_braces_around_control_structures: false
+        php5_style_constructor: false
+        no_global_keyword: false
+        avoid_usage_of_logical_operators: false
+        psr2_class_declaration: false
+        no_underscore_prefix_in_properties: false
+        no_underscore_prefix_in_methods: false
+        blank_line_after_namespace_declaration: false
+        single_namespace_per_use: false
+        psr2_switch_declaration: false
+        psr2_control_structure_declaration: false
+        avoid_superglobals: false
+        security_vulnerabilities: false
+        no_exit: false
+    javascript: true
+coding_style:
+    php:
+        indentation:
+            general:
+                use_tabs: false
+                size: 4
+            switch:
+                indent_case: false
+        spaces:
+            general:
+                linefeed_character: newline
+            before_parentheses:
+                function_declaration: false
+                closure_definition: false
+                function_call: false
+                if: true
+                for: true
+                while: true
+                switch: true
+                catch: true
+                array_initializer: false
+            around_operators:
+                assignment: true
+                logical: true
+                equality: true
+                relational: true
+                bitwise: false
+                additive: true
+                multiplicative: false
+                shift: true
+                unary_additive: false
+                concatenation: false
+                negation: false
+            before_left_brace:
+                class: true
+                function: true
+                if: true
+                else: true
+                for: true
+                while: true
+                do: true
+                switch: true
+                try: true
+                catch: true
+                finally: true
+            before_keywords:
+                else: true
+                while: true
+                catch: true
+                finally: true
+            within:
+                brackets: false
+                array_initializer: false
+                grouping: false
+                function_call: false
+                function_declaration: false
+                if: false
+                for: false
+                while: false
+                switch: false
+                catch: false
+                type_cast: false
+            ternary_operator:
+                before_condition: true
+                after_condition: true
+                before_alternative: true
+                after_alternative: true
+                in_short_version: false
+            other:
+                before_comma: false
+                after_comma: true
+                before_semicolon: false
+                after_semicolon: true
+                after_type_cast: false
+        braces:
+            classes_functions:
+                class: end-of-line
+                function: end-of-line
+                closure: end-of-line
+            if:
+                opening: end-of-line
+                always: false
+                else_on_new_line: false
+            for:
+                opening: end-of-line
+                always: true
+            while:
+                opening: end-of-line
+                always: true
+            do_while:
+                opening: end-of-line
+                always: true
+                while_on_new_line: false
+            switch:
+                opening: end-of-line
+            try:
+                opening: end-of-line
+                catch_on_new_line: false
+                finally_on_new_line: false
+        upper_lower_casing:
+            keywords:
+                general: lower
+            constants:
+                true_false_null: lower
diff --git a/.travis.yml b/.travis.yml
index c63cab1..04e12c7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,12 +8,12 @@ branches:
     - master
     - coverity_scan
 
-notifications:
-  email:
-    recipients:
-      - boinc_cvs at ssl.berkeley.edu
-    on_success: always
-    on_failure: always
+#notifications:
+#  email:
+#    recipients:
+#      - boinc_cvs at ssl.berkeley.edu
+#    on_success: always
+#    on_failure: always
 
 # This switches to the container-based infrastructure and allows caching
 sudo: false
@@ -21,7 +21,7 @@ sudo: false
 cache:
   apt: true
   directories:
-  - build/wxWidgets-3.0.2
+  - 3rdParty/buildCache
 
 addons:
   coverity_scan:
@@ -39,12 +39,21 @@ addons:
     #- python-mysqldb
     - libfcgi-dev
     #- libcurl4-openssl-dev
-    #- libxss-dev
+    - libxss-dev
     - libnotify-dev
     - libxcb-util0-dev
     - libsqlite3-dev
     - libgtk2.0-dev
     - libwebkitgtk-dev
+    - mingw-w64
+    - binutils-mingw-w64-i686
+    - binutils-mingw-w64-x86-64
+    - gcc-mingw-w64
+    - gcc-mingw-w64-i686
+    - gcc-mingw-w64-x86-64
+    - g++-mingw-w64
+    - g++-mingw-w64-i686
+    - g++-mingw-w64-x86-64
 
 env:
   global:
@@ -57,6 +66,8 @@ env:
     - BOINC_TYPE=client
     - BOINC_TYPE=apps
     - BOINC_TYPE=manager
+    - BOINC_TYPE=libs-mingw
+    - BOINC_TYPE=apps-mingw
     #- BOINC_TYPE=coverity
 
 matrix:
@@ -70,4 +81,6 @@ script:
 - if [[ "${BOINC_TYPE}" == "server" ]]; then ( ./configure --disable-client --disable-manager && make ) fi
 - if [[ "${BOINC_TYPE}" == "client" ]]; then ( ./configure --disable-server --disable-manager && make ) fi
 - if [[ "${BOINC_TYPE}" == "apps" ]]; then ( ./configure --enable-apps --disable-server --disable-client --disable-manager && make ) fi
-- if [[ "${BOINC_TYPE}" == "manager" ]]; then ( ./build/getWxWidgets.sh && ./configure --disable-server --disable-client --with-wxdir=./build/wxWidgets-3.0.2/buildgtk && make ) fi
+- if [[ "${BOINC_TYPE}" == "manager" ]]; then ( ./3rdParty/buildLinuxDependencies.sh && ./configure --disable-server --disable-client --with-wx-prefix=${TRAVIS_BUILD_DIR}/3rdParty/buildCache/linux && make ) fi
+- if [[ "${BOINC_TYPE}" == "libs-mingw" ]]; then ( cd lib && MINGW=x86_64-w64-mingw32 make -f Makefile.mingw ) fi
+- if [[ "${BOINC_TYPE}" == "apps-mingw" ]]; then ( cd lib && MINGW=x86_64-w64-mingw32 make -f Makefile.mingw wrapper ) fi
diff --git a/.tx/config b/.tx/config
new file mode 100644
index 0000000..7c89993
--- /dev/null
+++ b/.tx/config
@@ -0,0 +1,47 @@
+[main]
+host = https://www.transifex.com
+minimum_perc = 100
+
+[boinc.manager]
+file_filter = locale/<lang>/BOINC-Manager.po
+source_file = locale/templates/BOINC-Manager.pot
+source_lang = en
+type = PO
+
+[boinc.client]
+file_filter = locale/<lang>/BOINC-Client.po
+source_file = locale/templates/BOINC-Client.pot
+source_lang = en
+type = PO
+
+[boinc.web]
+file_filter = locale/<lang>/BOINC-Web.po
+source_file = locale/templates/BOINC-Web.pot
+source_lang = en
+type = PO
+
+[boinc.setup]
+file_filter = locale/<lang>/BOINC-Setup.po
+source_file = locale/templates/BOINC-Setup.pot
+source_lang = en
+type = PO
+
+[boinc.project-generic]
+file_filter = html/languages/translations/<lang>.po
+source_file = locale/templates/BOINC-Project-Generic.pot
+source_lang = en
+type = PO
+
+[boinc.drupal]
+file_filter = locale/<lang>/BOINC-Drupal.po
+source_file = locale/templates/BOINC-Drupal.pot
+source_lang = en
+type = PO
+
+[boinc.android]
+file_filter = android/BOINC/app/src/main/res/values-<lang>/strings.xml
+lang_map = it_IT:it-rIT,pt_BR:pt-rBR,pt_PT:pt-rPT,zh_CN:zh-rCN,zh_TW:zh-rTW,fa_IR:fa_rIR
+source_file = android/BOINC/app/src/main/res/values/strings.xml
+source_lang = en
+type = ANDROID
+
diff --git a/3rdParty/README.md b/3rdParty/README.md
new file mode 100644
index 0000000..5182e86
--- /dev/null
+++ b/3rdParty/README.md
@@ -0,0 +1,12 @@
+# Purpose of 3rdParty
+
+This directory is used to download and build dependencies for BOINC components.
+Archives should be downloaded into a platform specific subdirectory (e.g linux, mac, ...)
+to allow cross compilation of several platforms on a single host.
+
+Build products of dependencies should be installed into a corresponding subdirectory of
+3rdParty/buildCache to allow CI systems to cache this data between BOINC builds.
+
+See the existing [buildLinuxDependencies.sh](buildLinuxDependencies.sh) and
+[buildMacDependencies.sh](buildMacDependencies.sh) scripts for how this is done
+on Linux and Mac currently.
diff --git a/3rdParty/buildLinuxDependencies.sh b/3rdParty/buildLinuxDependencies.sh
new file mode 100755
index 0000000..ae51b62
--- /dev/null
+++ b/3rdParty/buildLinuxDependencies.sh
@@ -0,0 +1,137 @@
+#!/bin/bash
+
+# This file is part of BOINC.
+# http://boinc.berkeley.edu
+# Copyright (C) 2017 University of California
+#
+# BOINC is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation,
+# either version 3 of the License, or (at your option) any later version.
+#
+# BOINC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+## support script to build a specific wxWidgets version for linux
+## This script checks if a cached version is available and builts one if not.
+## The build is done in 3rdParty/linux and usable files are installed to 3rdParty/buildCache/linux
+## in order to keep the cache as small as possible
+## The 3rdParty/buildCache directory can be cached by CI systems for all subsequent builds
+
+# checks if a given path is canonical (absolute and does not contain relative links)
+# from http://unix.stackexchange.com/a/256437
+isPathCanonical() {
+  case "x$1" in
+    (x*/..|x*/../*|x../*|x*/.|x*/./*|x./*)
+        rc=1
+        ;;
+    (x/*)
+        rc=0
+        ;;
+    (*)
+        rc=1
+        ;;
+  esac
+  return $rc
+}
+
+# check working directory because the script needs to be called like: ./3rdParty/buildLinuxDependencies.sh
+if [ ! -d "3rdParty" ]; then
+    echo "start this script in the source root directory"
+    exit 1
+fi
+
+ROOTDIR=$(pwd)
+cache_dir=""
+doclean=""
+wxoption=""
+build_config="Release"
+while [[ $# -gt 0 ]]; do
+    key="$1"
+    case $key in
+        --cache_dir)
+        cache_dir="$2"
+        shift
+        ;;
+        --clean)
+        doclean="yes"
+        ;;
+        --debug)
+        wxoption="--debug"
+        build_config="Debug"
+        ;;
+        *)
+        echo "unrecognized option $key"
+        ;;
+    esac
+    shift # past argument or value
+done
+
+if [ "x$cache_dir" != "x" ]; then
+    if isPathCanonical "$cache_dir" && [ "$cache_dir" != "/" ]; then
+        PREFIX="$cache_dir"
+    else
+        echo "cache_dir must be an absolute path without ./ or ../ in it"
+        exit 1
+    fi
+else
+    PREFIX="$(pwd)/3rdParty/buildCache/linux"
+fi
+
+if [ -f "${PREFIX}/build-config" ]; then
+    cur_config=$(<${PREFIX}/build-config)
+    if [ "${cur_config}" != "${build_config}" ]; then
+        doclean="yes"
+        wxoption="${wxoption} --clean"
+    fi
+else
+    doclean="yes"
+    wxoption="${wxoption} --clean"
+fi
+
+download_and_build() {
+    cd "${ROOTDIR}/3rdParty/linux" || exit 1
+    DIRNAME="${1}"
+    FILENAME="${2}"
+    DLURL="${3}"
+    BUILDSCRIPT="${4}"
+    FLAGFILE="${PREFIX}/${DIRNAME}_done"
+    if [ -e "${FLAGFILE}" ]; then
+        echo "${DIRNAME} seems already to be present in ${PREFIX}"
+        return 0
+    fi
+    if [ ! -d ${DIRNAME} ]; then
+        if [ ! -e ${FILENAME} ]; then
+            wget ${DLURL}
+        fi
+        tar -xf ${FILENAME}
+    fi
+    cd ${DIRNAME} || exit 1
+    source ${BUILDSCRIPT} --prefix ${PREFIX}
+    if [ $? -ne 0 ]; then exit 1; fi
+    cd ../.. || exit 1
+    touch ${FLAGFILE}
+}
+
+mkdir -p 3rdParty/linux
+mkdir -p ${PREFIX}
+cd "${ROOTDIR}/3rdParty/linux" || exit 1
+
+if [ "${doclean}" = "yes" ]; then
+    echo "cleaning cache"
+    rm -rf ${PREFIX}
+    mkdir -p ${PREFIX}
+    echo ${build_config} >${PREFIX}/build-config
+fi
+
+#download_and_build $DIRNAME $FILENAME $DOWNLOADURL $BUILDSCRIPT
+download_and_build "wxWidgets-3.0.2" "wxWidgets-3.0.2.tar.bz2" "https://sourceforge.net/projects/wxwindows/files/3.0.2/wxWidgets-3.0.2.tar.bz2" "${ROOTDIR}/3rdParty/buildWxLinux.sh ${wxoption}"
+
+# change back to root directory
+cd ${ROOTDIR} || exit 1
diff --git a/3rdParty/buildWxLinux.sh b/3rdParty/buildWxLinux.sh
new file mode 100644
index 0000000..bfe2cf6
--- /dev/null
+++ b/3rdParty/buildWxLinux.sh
@@ -0,0 +1,101 @@
+#!/bin/bash
+
+# This file is part of BOINC.
+# http://boinc.berkeley.edu
+# Copyright (C) 2017 University of California
+#
+# BOINC is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation,
+# either version 3 of the License, or (at your option) any later version.
+#
+# BOINC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+# Script to build a wxWidgets GTK version for BOINC
+
+# Usage:
+#  cd [path]/wxWidgets-3.0.2/
+#  source path_to_this_script [--clean] [--debug] [--prefix PATH]
+#
+# the --clean argument will force a full rebuild.
+# the --debug argument will build the debug version of the library
+# if --prefix is given as absolute path the library is installed into there
+
+# Patch wxwidgets to work with GCC6
+# from https://github.com/wxWidgets/wxWidgets/commit/73e9e18ea09ffffcaac50237def0d9728a213c02
+if [ ! -f  src/stc/scintilla/src/Editor.cxx.orig ]; then
+    cat >> /tmp/Editor.cxx.patch << ENDOFFILE
+--- Editor.cxx  2014-10-06 23:33:44.000000000 +0200
++++ Editor_patched.cxx  2017-03-20 10:24:14.776685161 +0100
+@@ -11,6 +11,7 @@
+ #include <ctype.h>
+ #include <assert.h>
+
++#include <cmath>
+ #include <string>
+ #include <vector>
+ #include <map>
+@@ -5841,9 +5842,9 @@
+ }
+
+ static bool Close(Point pt1, Point pt2) {
+-       if (abs(pt1.x - pt2.x) > 3)
++       if (std::abs(pt1.x - pt2.x) > 3)
+                return false;
+-       if (abs(pt1.y - pt2.y) > 3)
++       if (std::abs(pt1.y - pt2.y) > 3)
+                return false;
+        return true;
+ }
+ENDOFFILE
+    patch -blfu src/stc/scintilla/src/Editor.cxx /tmp/Editor.cxx.patch
+    rm -f /tmp/Editor.cxx.patch
+else
+    echo "src/stc/scintilla/src/Editor.cxx already patched"
+fi
+
+doclean=""
+debug_flag="--disable-debug_flag"
+lprefix=""
+cmdline_prefix=""
+while [[ $# -gt 0 ]]; do
+    key="$1"
+    case $key in
+        -clean|--clean)
+        doclean="yes"
+        ;;
+        -debug|--debug)
+        debug_flag="--enable-debug"
+        ;;
+        -prefix|--prefix)
+        lprefix="$2"
+        cmdline_prefix="--prefix=${lprefix}"
+        shift
+        ;;
+    esac
+    shift # past argument or value
+done
+
+if [ -d buildgtk ] && [ "${doclean}" = "yes" ]; then
+    rm -rf buildgtk
+fi
+mkdir -p buildgtk
+cd buildgtk || return 1
+
+../configure "${cmdline_prefix}" --with-gtk --disable-shared --enable-webview --disable-gtktest --disable-sdltest ${debug_flag}
+if [ $? -ne 0 ]; then cd ..; return 1; fi
+make 1>/dev/null # the wxWidgets build is very noisy so tune it down to warnings and errors only
+if [ $? -ne 0 ]; then cd ..; return 1; fi
+if [ "x${lprefix}" != "x" ]; then
+    make install
+    if [ $? -ne 0 ]; then cd ..; return 1; fi
+fi
+
+cd ..
+return 0
diff --git a/INSTALL b/INSTALL
index c3ef7d9..2a19411 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
 To build the BOINC client software:
     ./_autosetup
-    ./configure --disable_server
+    ./configure --disable-server
 
 For more information, visit:
 http://boinc.berkeley.edu/trac/wiki/CompileClient
diff --git a/Makefile.incl b/Makefile.incl
index b98b424..f7599ac 100644
--- a/Makefile.incl
+++ b/Makefile.incl
@@ -61,6 +61,7 @@ $(LIBAPI):
 	cd $(top_builddir)/api; ${MAKE} libboinc_api.la
 
 SERVERLIBS = $(LIBSCHED) $(LIBBOINC_CRYPT) $(LIBBOINC) $(MYSQL_LIBS) $(PTHREAD_LIBS) $(RSA_LIBS) $(SSL_LIBS)
+SERVERLIBS_MIN = $(LIBSCHED) $(LIBBOINC_CRYPT) $(LIBBOINC) $(PTHREAD_LIBS) $(RSA_LIBS) $(SSL_LIBS)
 SERVERLIBS_FCGI = $(LIBSCHED_FCGI) $(LIBBOINC_CRYPT) $(LIBBOINC_FCGI) -lfcgi $(MYSQL_LIBS) $(PTHREAD_LIBS) $(RSA_LIBS) $(SSL_LIBS)
 APPLIBS = $(LIBAPI) $(LIBBOINC)
 FUHLIBS = $(LIBBOINC_CRYPT) $(LIBBOINC) $(RSA_LIBS) $(SSL_LIBS)
diff --git a/README.md b/README.md
index c037975..626bf2c 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,38 @@
-# BOINC github mirror
-See official page on how to contribute: http://boinc.berkeley.edu/trac/wiki
+# Status
 
-## Current build status
-master: [![Build Status](https://travis-ci.org/BOINC/boinc.svg?branch=master)](https://travis-ci.org/BOINC/boinc)
+[![Build Status](https://travis-ci.org/BOINC/boinc.svg?branch=master)](https://travis-ci.org/BOINC/boinc) [![Coverity Scan Build Status](https://scan.coverity.com/projects/4226/badge.svg)](https://scan.coverity.com/projects/boinc-boinc) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/BOINC/boinc/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/BOINC/boinc/?branch=master)
+
+# BOINC
+
+Project Website: https://boinc.berkeley.edu
+
+## Want to create a project
+See: https://boinc.berkeley.edu/trac/wiki
+
+## Want to help translate
+See: https://boinc.berkeley.edu/trac/wiki/TranslateIntro
+
+## Want to contribute
+See: https://boinc.berkeley.edu/trac/wiki/SoftwareDevelopment
+
+### Note
+
+The University of California holds the copyright on all BOINC source code. By 
+submitting contributions to the BOINC code, you irrevocably assign all right, 
+title, and interest, including copyright and all copyright rights, in such 
+contributions to The Regents of the University of California, who may then 
+use the code for any purpose that it desires. 
+
+# License
+BOINC is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License
+as published by the Free Software Foundation,
+either version 3 of the License, or (at your option) any later version.
+
+BOINC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+See the GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/_autosetup b/_autosetup
index 6eafc13..636a4eb 100755
--- a/_autosetup
+++ b/_autosetup
@@ -1,5 +1,4 @@
-#!/usr/bin/env bash
-
+#!/bin/sh
 ## $Id$
 
 ## ---------- some portability checks/adjustments [stolen from configure] ----------
@@ -13,7 +12,8 @@ esac
 ##----------
 
 ## ----------------------------------------------------------------------
-## Check that given command $1 has version >= $2.$3
+## Check that given command $1 has version >= $2
+## Full path $3 may be specified in order to skip command search.
 ## return 0 if ok, 1 too old or not found  (-> shell conventions).
 ## ----------------------------------------------------------------------
 check_version()
@@ -25,30 +25,30 @@ check_version()
     desired=`echo $2 | awk -F. '{print $1*100+$2}'`
     echo $ECHO_N "Checking version of '$1' >= $desired... $ECHO_C"
     name=$1
-    fullpath=`type $name | awk '{ print $(NF) }'`;
+    fullpath=${3:-`command -v "$name"`};
     if [ -x "$fullpath" ]; then
-	foundit=yes;
+        foundit=yes;
     fi
 
     if [ "$foundit" != yes ]; then
-	echo "Didn't find application";
-	version=0
-	success=no
+        echo "Didn't find application";
+        version=0
+        success=no
     else
-	cmdline="$fullpath --version";
-	if version=`($cmdline 2>/dev/null)` 2>/dev/null; then
-	    echo >/dev/null
-	else
-	    version="0";
-	fi
-	if [ -n "${version}" ]; then
-	    version=`echo $version | awk '{ for (i=1;i<=NF;i++) { split($i,j,"."); m=j[1]*100+j[2] ; if ((m*1)>0) { print m ; break; } } }'`
-	    if [ -z "$version" ]; then version=0; fi
-	    success=`echo "$version" "$desired" | awk '{ if ($1 >= $2) { print "yes";} else {print "no";}} '`
-	else
-	    version=0
-	    success=no
-	fi
+        cmdline="$fullpath --version";
+        if version=`($cmdline 2>/dev/null)` 2>/dev/null; then
+            echo >/dev/null
+        else
+            version="0";
+        fi
+        if [ -n "${version}" ]; then
+            version=`echo $version | awk '{ for (i=1;i<=NF;i++) { split($i,j,"."); m=j[1]*100+j[2] ; if ((m*1)>0) { print m ; break; } } }'`
+            if [ -z "$version" ]; then version=0; fi
+            success=`echo "$version" "$desired" | awk '{ if ($1 >= $2) { print "yes";} else {print "no";}} '`
+        else
+            version=0
+            success=no
+        fi
     fi
     cd $dir
 
@@ -71,62 +71,37 @@ check_version()
   ## in case there's GNU drop-in tools available, set these
 
   ## some sorry systems don't have proper GNU-make...
-  if check_version make 3.79; then
-      echo >/dev/null
-  else
-      if check_version gmake 3.79; then
-	  have_gmake=yes;
-      else
-	echo "Couldn't find a new-enough version of GNU 'make', please install one!";
-    echo "If you have a newer version, set the environment variable 'MAKE' to its path";
-	exit 1;
-      fi
+  if ! check_version make 3.79 "$MAKE"; then
+      echo "Couldn't find a new-enough version of GNU 'make', please install one!";
+      echo "If you have a newer version, set the environment variable 'MAKE' to its path";
+      exit 1;
   fi
 
   ## FreeBSD's m4 seems to be broken? Download a fresh one
-  if check_version m4 1.4; then
-      echo >/dev/null
-  else
-      ## solaris m4 works fine
-      if test -f /usr/ccs/bin/m4
-      then
-         echo >/dev/null
-      elif check_version gm4 1.4; then
-         have_gm4=yes;
-      else
-         echo "Couldn't find a new-enough version of 'm4', please install one!";
-         echo "If you have a newer version, set the environment variable 'M4' to its path";
-         exit 1;
-      fi
-      # build_lsc_aux "m4-1.4.1"
+  if ! check_version m4 1.4 "$M4" && [ ! -f /usr/ccs/bin/m4 ] && ! check_version gm4 1.4; then
+     echo "Couldn't find a new-enough version of 'm4', please install one!";
+     echo "If you have a newer version, set the environment variable 'M4' to its path";
+     exit 1;
   fi
 
-  if check_version pkg-config 0.15; then
-      echo >/dev/null
-  else
+  if ! check_version pkg-config 0.15; then
       echo "Couldn't find a new-enough version of 'pkg-config', please install one!";
       exit 1;
       # build_lsc_aux "pkgconfig-0.15.0"
   fi
 
-  if check_version autoreconf 2.58; then
-      echo >/dev/null
-  else
+  if ! check_version autoreconf 2.58; then
       echo "Couldn't find a new-enough version of 'autoreconf', please install one!";
       exit 1;
       # build_lsc_aux "autoconf-2.59"
   fi
-  if check_version automake 1.8; then
-      echo >/dev/null
-  else
+  if ! check_version automake 1.8 "$AUTOMAKE"; then
       echo "Couldn't find a new-enough version of 'automake', please install one!";
       echo "If you have a newer version, set the environment variable 'AUTOMAKE' and 'ACLOCAL' to its path";
       exit 1;
       # build_lsc_aux "automake-1.8.5"
   fi
-  if check_version libtoolize 1.5; then
-      echo >/dev/null
-  else
+  if ! check_version libtoolize 1.5 "$LIBTOOLIZE"; then
       echo "Couldn't find a new-enough version of 'libtoolize', please install one!";
       echo "If you have a newer version, set the environment variable 'LIBTOOLIZE' to its path";
       exit 1;
@@ -138,6 +113,7 @@ check_version()
   if [ "$1" = "-f" ]; then
     cmdline="autoreconf -i -f";
   fi
+
 echo "$cmdline"
 if eval $cmdline; then
     echo "Done, now run ./configure"
diff --git a/android/.gitignore b/android/.gitignore
deleted file mode 100644
index dade7f7..0000000
--- a/android/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-BOINC/assets/arm*
-BOINC/assets/mips*
-BOINC/assets/x86*
-*/bin
-*/gen
-*/libs/
-*/obj/
-.DS_Store
-._.DS_Store
-*.apk
-.metadata
diff --git a/android/BOINC/AndroidManifest.xml b/android/BOINC/AndroidManifest.xml
deleted file mode 100644
index 07f93aa..0000000
--- a/android/BOINC/AndroidManifest.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  This file is part of BOINC.
-  http://boinc.berkeley.edu
-  Copyright (C) 2015 University of California
-  
-  BOINC is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License
-  as published by the Free Software Foundation,
-  either version 3 of the License, or (at your option) any later version.
-  
-  BOINC is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the GNU Lesser General Public License for more details.
-  
-  You should have received a copy of the GNU Lesser General Public License
-  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="edu.berkeley.boinc"
-    android:installLocation="internalOnly"
-    android:versionCode="146"
-    android:versionName="7.6.33" > <!-- installation on SD card would break boot receiver -->
-
-
-    <!-- Add Google Play store metadata informing the store we can run on tablets and other large screen devices -->
-    <supports-screens
-        android:anyDensity="true"
-        android:largeScreens="true"
-        android:normalScreens="true"
-        android:smallScreens="true"
-        android:xlargeScreens="true" />
-
-    <uses-sdk
-        android:minSdkVersion="16"
-        android:targetSdkVersion="19" />
-
-    <!-- Required Permissions -->
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.READ_LOGS" />
-    <uses-permission android:name="android.permission.RESTART_PACKAGES" />
-
-    <application
-        android:allowBackup="true"
-        android:debuggable="true"
-        android:icon="@drawable/boinc"
-        android:label="@string/app_name"
-        android:theme="@style/Theme.Styled"
-        android:largeHeap="true">
-
-        <activity
-            android:name="edu.berkeley.boinc.SplashActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:screenOrientation="portrait"
-            android:label="@string/app_name"
-            android:theme="@style/Theme.Styled.NoActionBar"
-            android:noHistory="true">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name="edu.berkeley.boinc.BOINCActivity"
-            android:label="@string/app_name"
-            android:launchMode="singleTop"
-            android:exported="true" >
-        </activity>
-        <activity android:name="edu.berkeley.boinc.attach.AcctMgrFragment" >
-            <meta-data
-                android:name="android.support.PARENT_ACTIVITY"
-                android:value="edu.berkeley.boinc.BOINCActivity" />
-        </activity>
-        <activity
-            android:name="edu.berkeley.boinc.attach.SelectionListActivity"
-            android:theme="@style/Theme.Styled.NoActionBar"
-            android:screenOrientation="portrait" >
-        </activity>
-        <activity
-            android:name="edu.berkeley.boinc.attach.CredentialInputActivity"
-            android:theme="@style/Theme.Styled.NoActionBar"
-            android:screenOrientation="portrait"
-            android:windowSoftInputMode="adjustPan" >
-        </activity>
-        <activity
-            android:name="edu.berkeley.boinc.attach.BatchProcessingActivity"
-            android:theme="@style/Theme.Styled.NoActionBar"
-            android:screenOrientation="portrait" >
-        </activity>
-        <activity
-            android:name="edu.berkeley.boinc.attach.BatchConflictListActivity"
-            android:theme="@style/Theme.Styled.NoActionBar"
-            android:screenOrientation="portrait" >
-        </activity>
-        <activity
-            android:name="edu.berkeley.boinc.attach.IndividualAttachActivity"
-            android:theme="@style/Theme.Styled.NoActionBar"
-            android:screenOrientation="portrait" >
-        </activity>
-        <activity android:name="edu.berkeley.boinc.attach.AttachProjectRegistrationActivity" >
-            <meta-data
-                android:name="android.support.PARENT_ACTIVITY"
-                android:value="edu.berkeley.boinc.AttachProjectListActivity" />
-        </activity>
-        <activity
-     		android:name="edu.berkeley.boinc.attach.AttachProjectWorkingActivity"
-            android:configChanges="orientation"
-            android:noHistory="true" />
-        <activity android:name="edu.berkeley.boinc.EventLogActivity" >
-            <meta-data
-                android:name="android.support.PARENT_ACTIVITY"
-                android:value="edu.berkeley.boinc.BOINCActivity" />
-        </activity>
-
-        <service android:name="edu.berkeley.boinc.client.Monitor" android:process=":remote">
-        </service>
-        <service android:name="edu.berkeley.boinc.attach.ProjectAttachService">
-        </service>
-
-        <receiver android:name="edu.berkeley.boinc.receiver.BootReceiver" >
-            <intent-filter>
-                <action android:name="android.intent.action.BOOT_COMPLETED" />
-            </intent-filter>
-        </receiver>
-        <receiver android:name="edu.berkeley.boinc.receiver.PowerConnectedReceiver" >
-	        <intent-filter>
-	            <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
-	        </intent-filter>
-        </receiver>
-        <receiver android:name="edu.berkeley.boinc.receiver.PackageReplacedReceiver" >
-            <intent-filter>
-                <action android:name="android.intent.action.PACKAGE_REPLACED" />
-                <data android:path="edu.berkeley.boinc" android:scheme="package" />
-            </intent-filter>
-        </receiver>
-        <activity android:name=".BoincNotExclusiveDialog" android:theme="@android:style/Theme.Dialog">
-        </activity>
-    </application>
-
-</manifest>
diff --git a/android/BOINC/app/build.gradle b/android/BOINC/app/build.gradle
new file mode 100644
index 0000000..ec0773d
--- /dev/null
+++ b/android/BOINC/app/build.gradle
@@ -0,0 +1,75 @@
+plugins {
+    id 'org.ajoberstar.grgit' version '1.7.1'
+    id 'com.palantir.git-version' version '0.7.1'
+}
+
+apply plugin: 'com.android.application'
+
+import org.ajoberstar.grgit.Grgit
+
+// Use commit date as version code (valid up to 07/18/2036)
+def buildVersionCode() {
+    def repo = Grgit.open()
+    def head = repo.head()
+
+    // Sanity check across git plugins
+    assert head.getAbbreviatedId(10) == versionDetails().gitHash : "Internal error: SHA1 mismatch!"
+
+    return head.time
+}
+
+// Derive version name from release tag and add commit SHA1
+def buildVersionName() {
+    def pattern = /client_release\/\d+\.\d+\/(?<major>\d+)\.(?<minor>\d+)\.(?<revision>\d+)(?<suffix>[-_\.].*)/
+    def version = ': DEVELOPMENT'
+
+    def head = versionDetails()
+    def tag = head.lastTag
+    def match = (tag =~ pattern)
+
+    // Sanity checks for tag format
+    if(match.hasGroup() && 1 == match.size() && 5 == match[0].size() && head.commitDistance == 0) {
+        def major = match.group('major')
+        def minor = match.group('minor')
+        def revision = match.group('revision')
+        def suffix = match.group('suffix')
+        version = "${major}.${minor}.${revision}${suffix}"
+        assert !suffix.endsWith('.dirty') : "Dirty working tree detected! Preventing release build!"
+    }
+    else {
+        println "Warning! Non-release tag or offset found: $tag (offset: $head.commitDistance)"
+        println "Flagging as DEVELOPMENT build..."
+    }
+
+    def commit = versionDetails().gitHash
+
+    return "${version} (${commit})"
+}
+
+android {
+    compileSdkVersion 23
+    buildToolsVersion "25.0.0"
+
+    defaultConfig {
+        applicationId "edu.berkeley.boinc"
+        minSdkVersion 16
+        targetSdkVersion 23
+        versionCode buildVersionCode()
+        versionName buildVersionName()
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+        debug {
+            minifyEnabled false
+            debuggable true
+        }
+    }
+}
+
+dependencies {
+    compile 'com.android.support:appcompat-v7:23.1.+'
+}
diff --git a/android/BOINC/app/lint.xml b/android/BOINC/app/lint.xml
new file mode 100644
index 0000000..faf2c64
--- /dev/null
+++ b/android/BOINC/app/lint.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<lint>
+    <issue id="MissingTranslation" severity="ignore" />
+</lint>
\ No newline at end of file
diff --git a/android/BOINC/app/src/main/AndroidManifest.xml b/android/BOINC/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..4878a57
--- /dev/null
+++ b/android/BOINC/app/src/main/AndroidManifest.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  This file is part of BOINC.
+  http://boinc.berkeley.edu
+  Copyright (C) 2016 University of California
+  
+  BOINC is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License
+  as published by the Free Software Foundation,
+  either version 3 of the License, or (at your option) any later version.
+  
+  BOINC is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  See the GNU Lesser General Public License for more details.
+  
+  You should have received a copy of the GNU Lesser General Public License
+  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="edu.berkeley.boinc"
+    android:installLocation="internalOnly"> <!-- installation on SD card would break boot receiver -->
+
+    <!-- Add Google Play store metadata informing the store we can run on tablets and other large screen devices -->
+    <supports-screens
+        android:anyDensity="true"
+        android:largeScreens="true"
+        android:normalScreens="true"
+        android:smallScreens="true"
+        android:xlargeScreens="true" />
+
+    <uses-sdk
+        android:minSdkVersion="16"
+        android:targetSdkVersion="23" />
+
+    <!-- Required Permissions -->
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.READ_LOGS" />
+    <uses-permission android:name="android.permission.RESTART_PACKAGES" />
+
+    <!-- Features required for Android TV, consoles, and set-top boxes like Nexus Player, OUYA,
+         Razer Forge TV, Nvidia SHIELD, etc -->
+    <!-- Effectively a hint for the Google Play store only and at the Leanback UI Library -->
+    <uses-feature android:name="android.software.leanback" android:required="false" />
+    <!-- Implies some sort of D-pad, game controller, joystick, remote control, etc -->
+    <uses-feature android:name="android.hardware.gamepad" android:required="false" />
+    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
+    <!-- Effectively a hint for the Google Play store only -->
+    <uses-feature android:name="android.hardware.type.television" android:required="false" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/boinc"
+        android:label="@string/app_name"
+        android:theme="@style/Theme.Styled"
+        android:largeHeap="true"
+        android:banner="@drawable/banner">
+
+        <activity
+            android:name="edu.berkeley.boinc.SplashActivity"
+            android:configChanges="orientation|keyboardHidden|screenSize"
+            android:label="@string/app_name"
+            android:theme="@style/Theme.Styled.NoActionBar"
+            android:noHistory="true">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
+                <category android:name="tv.ouya.intent.category.APP" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="edu.berkeley.boinc.BOINCActivity"
+            android:label="@string/app_name"
+            android:launchMode="singleTop"
+            android:exported="true" />
+        <activity android:name="edu.berkeley.boinc.attach.AcctMgrFragment" >
+            <meta-data
+                android:name="android.support.PARENT_ACTIVITY"
+                android:value="edu.berkeley.boinc.BOINCActivity" />
+        </activity>
+        <activity
+            android:name="edu.berkeley.boinc.attach.SelectionListActivity"
+            android:theme="@style/Theme.Styled.NoActionBar"/>
+        <activity
+            android:name="edu.berkeley.boinc.attach.CredentialInputActivity"
+            android:theme="@style/Theme.Styled.NoActionBar"
+            android:windowSoftInputMode="adjustPan" />
+        <activity
+            android:name="edu.berkeley.boinc.attach.BatchProcessingActivity"
+            android:theme="@style/Theme.Styled.NoActionBar" />
+        <activity
+            android:name="edu.berkeley.boinc.attach.BatchConflictListActivity"
+            android:theme="@style/Theme.Styled.NoActionBar" />
+        <activity android:name="edu.berkeley.boinc.EventLogActivity">
+            <meta-data
+                android:name="android.support.PARENT_ACTIVITY"
+                android:value="edu.berkeley.boinc.BOINCActivity" />
+        </activity>
+
+        <service android:name="edu.berkeley.boinc.client.Monitor" android:process=":remote" />
+        <service android:name="edu.berkeley.boinc.attach.ProjectAttachService" />
+
+        <receiver android:name="edu.berkeley.boinc.receiver.BootReceiver">
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+            </intent-filter>
+        </receiver>
+        <receiver android:name="edu.berkeley.boinc.receiver.PowerConnectedReceiver">
+	        <intent-filter>
+	            <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
+	        </intent-filter>
+        </receiver>
+        <receiver android:name="edu.berkeley.boinc.receiver.PackageReplacedReceiver">
+            <intent-filter>
+                <action android:name="android.intent.action.PACKAGE_REPLACED" />
+                <data android:path="edu.berkeley.boinc" android:scheme="package" />
+            </intent-filter>
+        </receiver>
+        <activity android:name=".BoincNotExclusiveDialog" android:theme="@android:style/Theme.Dialog" />
+    </application>
+</manifest>
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/IMonitor.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/client/IMonitor.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/client/IMonitor.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/client/IMonitor.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AccountIn.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/AccountIn.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AccountIn.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/AccountIn.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AccountOut.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/AccountOut.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AccountOut.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/AccountOut.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrInfo.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/AcctMgrInfo.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrInfo.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/AcctMgrInfo.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/GlobalPreferences.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/GlobalPreferences.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/GlobalPreferences.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/GlobalPreferences.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/HostInfo.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/HostInfo.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/HostInfo.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/HostInfo.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ImageWrapper.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/ImageWrapper.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ImageWrapper.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/ImageWrapper.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Message.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Message.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Message.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Message.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Notice.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Notice.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Notice.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Notice.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Project.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Project.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Project.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Project.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectConfig.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/ProjectConfig.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectConfig.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/ProjectConfig.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectInfo.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/ProjectInfo.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectInfo.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/ProjectInfo.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Result.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Result.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Result.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Result.aidl
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Transfer.aidl b/android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Transfer.aidl
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Transfer.aidl
rename to android/BOINC/app/src/main/aidl/edu/berkeley/boinc/rpc/Transfer.aidl
diff --git a/android/BOINC/assets/armeabi-v7a/placeholder.txt b/android/BOINC/app/src/main/assets/arm64-v8a/placeholder.txt
similarity index 100%
copy from android/BOINC/assets/armeabi-v7a/placeholder.txt
copy to android/BOINC/app/src/main/assets/arm64-v8a/placeholder.txt
diff --git a/android/BOINC/assets/mips/placeholder.txt b/android/BOINC/app/src/main/assets/armeabi-v7a/placeholder.txt
similarity index 100%
rename from android/BOINC/assets/mips/placeholder.txt
rename to android/BOINC/app/src/main/assets/armeabi-v7a/placeholder.txt
diff --git a/android/BOINC/assets/cc_config.xml b/android/BOINC/app/src/main/assets/cc_config.xml
similarity index 100%
rename from android/BOINC/assets/cc_config.xml
rename to android/BOINC/app/src/main/assets/cc_config.xml
diff --git a/android/BOINC/assets/x86/placeholder.txt b/android/BOINC/app/src/main/assets/mips/placeholder.txt
similarity index 100%
rename from android/BOINC/assets/x86/placeholder.txt
rename to android/BOINC/app/src/main/assets/mips/placeholder.txt
diff --git a/android/BOINC/assets/armeabi-v7a/placeholder.txt b/android/BOINC/app/src/main/assets/mips64/placeholder.txt
similarity index 100%
copy from android/BOINC/assets/armeabi-v7a/placeholder.txt
copy to android/BOINC/app/src/main/assets/mips64/placeholder.txt
diff --git a/android/BOINC/assets/armeabi-v7a/placeholder.txt b/android/BOINC/app/src/main/assets/x86/placeholder.txt
similarity index 100%
copy from android/BOINC/assets/armeabi-v7a/placeholder.txt
copy to android/BOINC/app/src/main/assets/x86/placeholder.txt
diff --git a/android/BOINC/assets/armeabi-v7a/placeholder.txt b/android/BOINC/app/src/main/assets/x86_64/placeholder.txt
similarity index 100%
rename from android/BOINC/assets/armeabi-v7a/placeholder.txt
rename to android/BOINC/app/src/main/assets/x86_64/placeholder.txt
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/BOINCActivity.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/BOINCActivity.java
new file mode 100644
index 0000000..bbcaf8d
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/BOINCActivity.java
@@ -0,0 +1,468 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2012 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc;
+
+import android.app.Dialog;
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Configuration;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Bundle; 
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Log;  
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.Button;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.support.v4.app.ActionBarDrawerToggle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarActivity;
+import edu.berkeley.boinc.adapter.NavDrawerListAdapter;
+import edu.berkeley.boinc.adapter.NavDrawerListAdapter.NavDrawerItem;
+import edu.berkeley.boinc.attach.SelectionListActivity;
+import edu.berkeley.boinc.client.ClientStatus;
+import edu.berkeley.boinc.client.Monitor;
+import edu.berkeley.boinc.client.IMonitor;
+import edu.berkeley.boinc.rpc.Project;
+import edu.berkeley.boinc.utils.BOINCDefs;
+import edu.berkeley.boinc.utils.Logging;
+import java.util.ArrayList;
+
+public class BOINCActivity extends ActionBarActivity {
+	
+	public static IMonitor monitor;
+	private Integer clientComputingStatus = -1;
+	private Integer numberProjectsInNavList = 0;
+	static Boolean mIsBound = false;
+	
+	// app title (changes with nav bar selection)
+	private CharSequence mTitle;
+	// nav drawer title
+	private CharSequence mDrawerTitle;
+	
+	private DrawerLayout mDrawerLayout;
+	private ListView mDrawerList;
+	private ActionBarDrawerToggle mDrawerToggle;
+	private NavDrawerListAdapter mDrawerListAdapter;
+
+	private ServiceConnection mConnection = new ServiceConnection() {
+	    public void onServiceConnected(ComponentName className, IBinder service) {
+	        // This is called when the connection with the service has been established, getService returns 
+	    	// the Monitor object that is needed to call functions.
+	        monitor = IMonitor.Stub.asInterface(service);
+		    mIsBound = true;
+		    determineStatus();
+	    }
+
+	    public void onServiceDisconnected(ComponentName className) {
+	    	// This should not happen
+	        monitor = null;
+		    mIsBound = false;
+
+		    Log.e(Logging.TAG, "BOINCActivity onServiceDisconnected");
+	    }
+	};
+	
+	private BroadcastReceiver mClientStatusChangeRec = new BroadcastReceiver() {
+		@Override
+		public void onReceive(Context context,Intent intent) {
+			if(Logging.VERBOSE) Log.d(Logging.TAG, "BOINCActivity ClientStatusChange - onReceive()"); 
+			determineStatus();
+		}
+	};
+	private IntentFilter ifcsc = new IntentFilter("edu.berkeley.boinc.clientstatuschange");
+	
+    @Override
+    public void onCreate(Bundle savedInstanceState) {  
+        if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onCreate()"); 
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main); 
+
+        // setup navigation bar
+        mTitle = mDrawerTitle = getTitle();
+        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
+		mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
+		mDrawerList.setOnItemClickListener(new ListView.OnItemClickListener(){
+			@Override
+			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+				// display view for selected nav drawer item
+				dispatchNavBarOnClick(mDrawerListAdapter.getItem(position),false);
+			}});
+		mDrawerListAdapter = new NavDrawerListAdapter(getApplicationContext());
+		mDrawerList.setAdapter(mDrawerListAdapter);
+		// enabling action bar app icon and behaving it as toggle button
+		getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+		getSupportActionBar().setHomeButtonEnabled(true);
+
+		mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
+				R.drawable.ic_drawer, //nav menu toggle icon
+				R.string.app_name, // nav drawer open - description for accessibility
+				R.string.app_name // nav drawer close - description for accessibility
+		) {
+			public void onDrawerClosed(View view) {
+				getSupportActionBar().setTitle(mTitle);
+				// calling onPrepareOptionsMenu() to show action bar icons
+				supportInvalidateOptionsMenu();
+			}
+
+			public void onDrawerOpened(View drawerView) {
+				getSupportActionBar().setTitle(mDrawerTitle);
+				mDrawerListAdapter.notifyDataSetChanged(); // force redraw of all items (adapter.getView()) in order to adapt changing icons or number of tasks/notices
+				// calling onPrepareOptionsMenu() to hide action bar icons
+				supportInvalidateOptionsMenu();
+			}
+		};
+		mDrawerLayout.setDrawerListener(mDrawerToggle);
+
+
+		// pre-select fragment
+		// 1. check if explicitly requested fragment present
+		// e.g. after initial project attach.
+		int targetFragId = getIntent().getIntExtra("targetFragment", -1);
+		
+		// 2. if no explicit request, try to restore previous selection
+		if(targetFragId < 0 && savedInstanceState != null)
+			targetFragId = savedInstanceState.getInt("navBarSelectionId");
+		
+		NavDrawerItem item = null;
+		if(targetFragId < 0) {
+			// if non of the above, go to default
+			item = mDrawerListAdapter.getItem(0);
+		} else item = mDrawerListAdapter.getItemForId(targetFragId);
+		
+		if(item != null) dispatchNavBarOnClick(item, true);
+		else if(Logging.WARNING) Log.w(Logging.TAG, "onCreate: fragment selection returned null");
+
+        //bind monitor service
+        doBindService();
+    }
+    
+	@Override
+	protected void onSaveInstanceState(Bundle outState) {
+		outState.putInt("navBarSelectionId", mDrawerListAdapter.selectedMenuId);
+		super.onSaveInstanceState(outState);
+	}
+
+	@Override
+	protected void onDestroy() {
+    	if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onDestroy()");
+	    doUnbindService();
+	    super.onDestroy();
+	}
+
+	@Override
+	protected void onNewIntent(Intent intent) {
+        if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onNewIntent()"); 
+		// onNewIntent gets called if activity is brought to front via intent, but was still alive, so onCreate is not called again
+		// getIntent always returns the intent activity was created of, so this method is the only hook to receive an updated intent
+		// e.g. after (not initial) project attach
+		super.onNewIntent(intent);
+		// navigate to explicitly requested fragment (e.g. after project attach)
+		int id = intent.getIntExtra("targetFragment", -1);
+    	if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onNewIntent() for target fragment: " + id);
+    	NavDrawerItem item = mDrawerListAdapter.getItemForId(id);
+    	if(item != null) dispatchNavBarOnClick(item,false);
+    	else if(Logging.WARNING) Log.w(Logging.TAG, "onNewIntent: requested target fragment is null, for id: " + id);
+	}
+
+	@Override
+	protected void onResume() { // gets called by system every time activity comes to front. after onCreate upon first creation
+	    super.onResume();
+	    registerReceiver(mClientStatusChangeRec, ifcsc);
+	    determineStatus();
+	}
+
+	@Override
+	protected void onPause() { // gets called by system every time activity loses focus.
+    	if(Logging.VERBOSE) Log.v(Logging.TAG, "BOINCActivity onPause()");
+	    super.onPause();
+	    unregisterReceiver(mClientStatusChangeRec);
+	}
+
+	private void doBindService() {
+		// start service to allow setForeground later on...
+		startService(new Intent(this, Monitor.class));
+	    // Establish a connection with the service, onServiceConnected gets called when
+		bindService(new Intent(this, Monitor.class), mConnection, Service.BIND_AUTO_CREATE);
+	}
+
+	private void doUnbindService() {
+	    if (mIsBound) {
+	        // Detach existing connection.
+	        unbindService(mConnection);
+	        mIsBound = false;
+	    }
+	}
+	/*
+	public IMonitor getMonitorService() {
+		if(!mIsBound) if(Logging.WARNING) Log.w(Logging.TAG, "Fragment trying to obtain serive reference, but Monitor not bound in BOINCActivity");
+		return monitor;
+	}*/
+	
+	public void startAttachProjectListActivity() {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity attempt to start ");
+		startActivity(new Intent(this,SelectionListActivity.class));
+	}
+	
+	/**
+	 * React to selection of nav bar item
+	 * @param item
+	 * @param position
+	 * @param init
+	 */
+	private void dispatchNavBarOnClick(NavDrawerItem item, boolean init) {
+		// update the main content by replacing fragments
+		if(item == null) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "dispatchNavBarOnClick returns, item null.");
+			return;
+		}
+		if(Logging.DEBUG) Log.d(Logging.TAG, "dispatchNavBarOnClick for item with id: " + item.getId() + " title: " + item.getTitle() + " is project? " + item.isProjectItem());
+		
+		FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
+		Boolean fragmentChanges = false;
+		if(init) {
+			// if init, setup status fragment
+			ft.replace(R.id.status_container, new StatusFragment());
+		}
+		if(!item.isProjectItem()) {
+			switch (item.getId()) {
+			case R.string.tab_tasks:
+				ft.replace(R.id.frame_container, new TasksFragment());
+				fragmentChanges = true;
+				break;
+			case R.string.tab_notices:
+				ft.replace(R.id.frame_container, new NoticesFragment());
+				fragmentChanges = true;
+				break;
+			case R.string.tab_projects:
+				ft.replace(R.id.frame_container, new ProjectsFragment());
+				fragmentChanges = true;
+				break;
+	    	case R.string.menu_help:
+	    		Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://boinc.berkeley.edu/wiki/BOINC_Help"));
+	    		startActivity(i);
+	    		break;
+	    	case R.string.menu_about:
+				final Dialog dialog = new Dialog(this);
+				dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+				dialog.setContentView(R.layout.dialog_about);
+				Button returnB = (Button) dialog.findViewById(R.id.returnB);
+				TextView tvVersion = (TextView)dialog.findViewById(R.id.version);
+				try {
+					tvVersion.setText(getString(R.string.about_version) + " "
+							+ getPackageManager().getPackageInfo(getPackageName(), 0).versionName);
+				} catch (NameNotFoundException e) {if(Logging.WARNING) Log.w(Logging.TAG, "version name not found.");}
+				
+				returnB.setOnClickListener(new OnClickListener() {
+					@Override
+					public void onClick(View v) {
+						dialog.dismiss();
+					}
+				});
+				dialog.show();
+	    		break;
+			case R.string.menu_eventlog:
+				startActivity(new Intent(this,EventLogActivity.class));
+				break;
+			case R.string.projects_add:
+				startActivity(new Intent(this, SelectionListActivity.class));
+				break;
+			case R.string.tab_preferences:
+				ft.replace(R.id.frame_container, new PrefsFragment());
+				fragmentChanges = true;
+				break;
+	
+			default:
+				if(Logging.ERROR) Log.d(Logging.TAG, "dispatchNavBarOnClick() could not find corresponding fragment for " + item.getTitle());
+				break;
+			}
+
+		} else {
+			// ProjectDetailsFragment. Data shown based on given master URL
+			Bundle args = new Bundle();
+			args.putString("url", item.getProjectMasterUrl());
+			Fragment frag = new ProjectDetailsFragment();
+			frag.setArguments(args);
+			ft.replace(R.id.frame_container, frag);
+			fragmentChanges = true;
+		}
+
+		mDrawerLayout.closeDrawer(mDrawerList);
+		
+		if(fragmentChanges) {
+			ft.commit();
+			setTitle(item.getTitle());
+			mDrawerListAdapter.selectedMenuId = item.getId(); //highlight item persistently
+			mDrawerListAdapter.notifyDataSetChanged(); // force redraw
+		} 
+
+		if(Logging.DEBUG) Log.d(Logging.TAG, "displayFragmentForNavDrawer() " + item.getTitle());
+	}
+    
+    // tests whether status is available and whether it changed since the last event.
+	private void determineStatus() {
+    	try {
+			if(mIsBound) { 
+				Integer newComputingStatus = monitor.getComputingStatus();
+				if(newComputingStatus != clientComputingStatus) {
+					// computing status has changed, update and invalidate to force adaption of action items
+					clientComputingStatus = newComputingStatus;
+					supportInvalidateOptionsMenu();
+				}
+				if(numberProjectsInNavList != monitor.getProjects().size())
+					numberProjectsInNavList = mDrawerListAdapter.compareAndAddProjects((ArrayList<Project>)monitor.getProjects());
+				//setAppTitle();
+			} 
+    	} catch (Exception e) {}
+    }
+
+    public final boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
+        if (keyCode == KeyEvent.KEYCODE_MENU) {
+            if (this.mDrawerLayout.isDrawerOpen(this.mDrawerList)) {
+                this.mDrawerLayout.closeDrawer(this.mDrawerList);
+            } else {
+                this.mDrawerLayout.openDrawer(this.mDrawerList);
+            }
+            return true;
+        }
+        return super.onKeyDown(keyCode, keyEvent);
+    }
+
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+	    if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onCreateOptionsMenu()");
+
+	    MenuInflater inflater = getMenuInflater();
+		inflater.inflate(R.menu.main_menu, menu);
+		return true;
+	}
+
+	@Override
+	public boolean onPrepareOptionsMenu(Menu menu) {
+	    if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onPrepareOptionsMenu()");
+		
+		// run mode, set title and icon based on status
+		MenuItem runMode = menu.findItem(R.id.run_mode);
+		if(clientComputingStatus == ClientStatus.COMPUTING_STATUS_NEVER) {
+			// display play button
+			runMode.setTitle(R.string.menu_run_mode_enable);
+			runMode.setIcon(R.drawable.playw);
+		} else {
+			// display stop button
+			runMode.setTitle(R.string.menu_run_mode_disable);
+			runMode.setIcon(R.drawable.pausew);
+		}
+		
+		return super.onPrepareOptionsMenu(menu);
+	}
+	
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+	    if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onOptionsItemSelected()");
+
+	    // toggle drawer
+	    if (mDrawerToggle.onOptionsItemSelected(item)) {
+			return true;
+		}
+	    
+	    switch (item.getItemId()) {
+			case R.id.run_mode:
+				if(item.getTitle().equals(getApplication().getString(R.string.menu_run_mode_disable))) {
+					if(Logging.DEBUG) Log.d(Logging.TAG,"run mode: disable");
+					new WriteClientModeAsync().execute(BOINCDefs.RUN_MODE_NEVER);
+				} else if (item.getTitle().equals(getApplication().getString(R.string.menu_run_mode_enable))) {
+					if(Logging.DEBUG) Log.d(Logging.TAG,"run mode: enable");
+					new WriteClientModeAsync().execute(BOINCDefs.RUN_MODE_AUTO);
+				} else if(Logging.DEBUG) Log.d(Logging.TAG,"run mode: unrecognized command");
+				return true;
+			case R.id.projects_add:
+				startActivity(new Intent(this, SelectionListActivity.class));
+				return true;
+			default:
+				return super.onOptionsItemSelected(item);
+		}
+	}
+
+	@Override
+	protected void onPostCreate(Bundle savedInstanceState) {
+		super.onPostCreate(savedInstanceState);
+		// Sync the toggle state after onRestoreInstanceState has occurred.
+		mDrawerToggle.syncState();
+	}
+
+	@Override
+	public void onConfigurationChanged(Configuration newConfig) {
+		super.onConfigurationChanged(newConfig);
+		// Pass any configuration change to the drawer toggls
+		mDrawerToggle.onConfigurationChanged(newConfig);
+	}
+
+	@Override
+	public void setTitle(CharSequence title) {
+		mTitle = title;
+		getSupportActionBar().setTitle(mTitle);
+	}
+	
+	private final class WriteClientModeAsync extends AsyncTask<Integer, Void, Boolean> {
+		
+		@Override
+		protected Boolean doInBackground(Integer... params) {
+			// setting provided mode for both, CPU computation and network.
+			Boolean runMode;
+			try {
+				runMode = monitor.setRunMode(params[0]);
+			} catch (RemoteException e) {
+				runMode = false;
+			}
+			Boolean networkMode;
+			try {
+				networkMode = monitor.setNetworkMode(params[0]);
+			} catch (RemoteException e) {
+				networkMode = false;
+			}
+			return runMode && networkMode;
+		}
+		
+		@Override
+		protected void onPostExecute(Boolean success) {
+			if(success)
+				try {
+					monitor.forceRefresh();
+				} catch (RemoteException e) {}
+			else if(Logging.WARNING) Log.w(Logging.TAG,"setting run and network mode failed");
+		}
+	}
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/BoincNotExclusiveDialog.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/BoincNotExclusiveDialog.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/BoincNotExclusiveDialog.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/BoincNotExclusiveDialog.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/ConfirmationDialog.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/ConfirmationDialog.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/ConfirmationDialog.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/ConfirmationDialog.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/EventLogActivity.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogActivity.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/EventLogActivity.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogActivity.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/EventLogActivityTabListener.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogActivityTabListener.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/EventLogActivityTabListener.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogActivityTabListener.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/EventLogClientFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogClientFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/EventLogClientFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogClientFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/EventLogGuiFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogGuiFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/EventLogGuiFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/EventLogGuiFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/NoticesFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/NoticesFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/NoticesFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/NoticesFragment.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/PrefsFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/PrefsFragment.java
new file mode 100644
index 0000000..e25c153
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/PrefsFragment.java
@@ -0,0 +1,717 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc;
+
+import android.app.Dialog;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.support.v4.app.Fragment;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.SeekBar;
+import android.widget.TextView;
+import android.widget.Toast;
+import edu.berkeley.boinc.adapter.PrefsListAdapter;
+import edu.berkeley.boinc.adapter.PrefsListItemWrapper;
+import edu.berkeley.boinc.adapter.PrefsListItemWrapperBool;
+import edu.berkeley.boinc.adapter.PrefsListItemWrapperValue;
+import edu.berkeley.boinc.adapter.PrefsSelectionDialogListAdapter;
+import edu.berkeley.boinc.rpc.GlobalPreferences;
+import edu.berkeley.boinc.rpc.HostInfo;
+import edu.berkeley.boinc.utils.Logging;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+
+public class PrefsFragment extends Fragment {
+	
+	private ListView lv;
+	private PrefsListAdapter listAdapter;
+	
+	private ArrayList<PrefsListItemWrapper> data = new ArrayList<PrefsListItemWrapper>(); //Adapter for list data
+	private GlobalPreferences clientPrefs = null; //preferences of the client, read on every onResume via RPC
+	//private AppPreferences appPrefs = null; //Android specific preferences, singleton of monitor
+	private HostInfo hostinfo = null;
+	
+	private boolean layoutSuccessful = false;
+	
+	private BroadcastReceiver mClientStatusChangeRec = new BroadcastReceiver() {
+		@Override
+		public void onReceive(Context context,Intent intent) {
+			if(Logging.VERBOSE) Log.d(Logging.TAG, "PrefsFragment ClientStatusChange - onReceive()"); 
+			try {
+				if(!layoutSuccessful) populateLayout();
+			} catch (RemoteException e) {}
+		}
+	};
+	private IntentFilter ifcsc = new IntentFilter("edu.berkeley.boinc.clientstatuschange");
+	
+	// fragment lifecycle: 2.
+	@Override
+	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+    	if(Logging.VERBOSE) Log.d(Logging.TAG,"ProjectsFragment onCreateView");
+        // Inflate the layout for this fragment
+    	View layout = inflater.inflate(R.layout.prefs_layout, container, false);
+		lv = (ListView) layout.findViewById(R.id.listview);
+        listAdapter = new PrefsListAdapter(getActivity(),this,R.id.listview,data);
+        lv.setAdapter(listAdapter);
+		return layout;
+	}
+
+	// fragment lifecycle: 1.
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+	}
+
+	// fragment lifecycle: 3.
+	@Override
+	public void onResume() {
+		try {
+			populateLayout();
+		} catch (RemoteException e) {}
+		getActivity().registerReceiver(mClientStatusChangeRec,ifcsc);
+		super.onResume();
+	}
+	
+	@Override
+	public void onPause() {
+		getActivity().unregisterReceiver(mClientStatusChangeRec);
+		super.onPause();
+	}
+
+	private Boolean getPrefs() {
+		// try to get current client status from monitor
+		//ClientStatus status;
+		try{
+			//status  = Monitor.getClientStatus();
+			clientPrefs = BOINCActivity.monitor.getPrefs();
+		} catch (Exception e){
+			if(Logging.WARNING) Log.w(Logging.TAG,"PrefsActivity: Could not load data, clientStatus not initialized.");
+			e.printStackTrace();
+			return false;
+		}
+		//clientPrefs = status.getPrefs(); //read prefs from client via rpc
+		if(clientPrefs == null) {
+			if(Logging.DEBUG) Log.d(Logging.TAG, "readPrefs: null, return false");
+			return false;
+		}
+		//if(Logging.DEBUG) Log.d(Logging.TAG, "readPrefs done");
+		return true;
+	}
+	
+	private Boolean getHostInfo() {
+		// try to get current client status from monitor
+		//ClientStatus status;
+		
+		try{
+			//status  = Monitor.getClientStatus();
+			hostinfo = BOINCActivity.monitor.getHostInfo();
+		} catch (Exception e){
+			if(Logging.WARNING) Log.w(Logging.TAG,"PrefsActivity: Could not load data, clientStatus not initialized.");
+			e.printStackTrace();
+			return false;
+		}
+		//hostinfo = status.getHostInfo(); //Get the hostinfo from client via rpc
+		if(hostinfo == null) {
+			if(Logging.DEBUG) Log.d(Logging.TAG, "getHostInfo: null, return false");
+			return false;
+		}
+		return true;
+	}
+	
+	private void populateLayout() throws RemoteException{
+		
+		if(!getPrefs() || BOINCActivity.monitor == null || !getHostInfo()) {
+			if(Logging.ERROR) Log.e(Logging.TAG, "PrefsFragment.populateLayout returns, data is not present");
+			return;
+		}
+		
+		data.clear();
+		
+		Boolean advanced = BOINCActivity.monitor.getShowAdvanced();
+		Boolean stationaryDeviceMode = BOINCActivity.monitor.getStationaryDeviceMode();
+		Boolean stationaryDeviceSuspected = BOINCActivity.monitor.isStationaryDeviceSuspected();
+
+		// general
+    	data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_general,true));
+		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_autostart_header,R.string.prefs_category_general,BOINCActivity.monitor.getAutostart()));
+		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_show_notification_notices_header,R.string.prefs_category_general,BOINCActivity.monitor.getShowNotificationForNotices()));
+		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_show_notification_suspended_header,R.string.prefs_category_general,BOINCActivity.monitor.getShowNotificationDuringSuspend()));
+		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_show_advanced_header,R.string.prefs_category_general,BOINCActivity.monitor.getShowAdvanced()));
+		if(!stationaryDeviceMode) data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_suspend_when_screen_on,R.string.prefs_category_general,BOINCActivity.monitor.getSuspendWhenScreenOn()));
+		// network
+    	data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_network,true));
+		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_network_wifi_only_header,R.string.prefs_category_network,clientPrefs.network_wifi_only));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_network_daily_xfer_limit_mb_header,R.string.prefs_category_network,clientPrefs.daily_xfer_limit_mb));
+    	// power
+		data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_power,true));
+		if(stationaryDeviceSuspected) { // API indicates that there is no battery, offer opt-in preference for stationary device mode
+			data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_stationary_device_mode_header,R.string.prefs_category_power,BOINCActivity.monitor.getStationaryDeviceMode()));
+		}
+		if(!stationaryDeviceMode) { // client would compute regardless of battery preferences, so only show if that is not the case
+			data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_power_source_header,R.string.prefs_category_power));
+			data.add(new PrefsListItemWrapperValue(getActivity(),R.string.battery_charge_min_pct_header,R.string.prefs_category_power,clientPrefs.battery_charge_min_pct));
+			if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.battery_temperature_max_header,R.string.prefs_category_power,clientPrefs.battery_max_temperature));
+		}
+		// cpu
+		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_cpu,true));
+		if(advanced && hostinfo.p_ncpus > 1) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_cpu_number_cpus_header,R.string.prefs_category_cpu,pctCpuCoresToNumber(clientPrefs.max_ncpus_pct)));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_cpu_time_max_header,R.string.prefs_category_cpu,clientPrefs.cpu_usage_limit));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_cpu_other_load_suspension_header,R.string.prefs_category_cpu,clientPrefs.suspend_cpu_usage));
+		// storage
+		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_storage,true));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_disk_max_pct_header,R.string.prefs_category_storage,clientPrefs.disk_max_used_pct));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_disk_min_free_gb_header,R.string.prefs_category_storage,clientPrefs.disk_min_free_gb));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_disk_access_interval_header,R.string.prefs_category_storage,clientPrefs.disk_interval));
+		// memory
+		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_memory,true));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_memory_max_idle_header,R.string.prefs_category_memory,clientPrefs.ram_max_used_idle_frac));
+		// debug
+		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_debug,true));
+		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_client_log_flags_header,R.string.prefs_category_debug));
+		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_gui_log_level_header,R.string.prefs_category_debug,(double)BOINCActivity.monitor.getLogLevel()));
+		
+		updateLayout();
+		layoutSuccessful = true;
+	}
+	
+	private void updateLayout(){
+		listAdapter.notifyDataSetChanged();
+	}
+
+	// updates list item of boolean preference
+	// requires updateLayout to be called afterwards
+	private void updateBoolPref(int ID, Boolean newValue) {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "updateBoolPref for ID: " + ID + " value: " + newValue);
+		for (PrefsListItemWrapper item: data) {
+			if(item.ID == ID){
+				((PrefsListItemWrapperBool) item).setStatus(newValue);
+				continue;
+			}
+		}
+	}
+	
+	// updates list item of value preference
+	// requires updateLayout to be called afterwards
+	private void updateValuePref(int ID, Double newValue) {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "updateValuePref for ID: " + ID + " value: " + newValue);
+		for (PrefsListItemWrapper item: data) {
+			if(item.ID == ID){
+				((PrefsListItemWrapperValue) item).status = newValue;
+				continue;
+			}
+		}
+	}
+	
+	private void setupSliderDialog(PrefsListItemWrapper item, final Dialog dialog) {
+		final PrefsListItemWrapperValue valueWrapper = (PrefsListItemWrapperValue) item;
+		dialog.setContentView(R.layout.prefs_layout_dialog_pct);
+		TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
+		SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
+		
+		if(valueWrapper.ID == R.string.battery_charge_min_pct_header || 
+				valueWrapper.ID == R.string.prefs_disk_max_pct_header || 
+				valueWrapper.ID == R.string.prefs_cpu_time_max_header ||
+				valueWrapper.ID == R.string.prefs_cpu_other_load_suspension_header || 
+				valueWrapper.ID == R.string.prefs_memory_max_idle_header ) {
+			Double seekBarDefault = valueWrapper.status / 10;
+			slider.setProgress(seekBarDefault.intValue());
+			final SeekBar.OnSeekBarChangeListener onSeekBarChangeListener;
+			slider.setOnSeekBarChangeListener(onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
+				public void onProgressChanged(final SeekBar seekBar, final int progress, final boolean fromUser) {
+					final String progressString = NumberFormat.getPercentInstance().format(progress / 10.0);
+					TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
+					sliderProgress.setText(progressString);
+		        }
+				@Override
+				public void onStartTrackingTouch(SeekBar seekBar) {}
+				@Override
+				public void onStopTrackingTouch(SeekBar seekBar) {}
+			});
+			onSeekBarChangeListener.onProgressChanged(slider, seekBarDefault.intValue(), false);
+		} else if(valueWrapper.ID == R.string.prefs_cpu_number_cpus_header) {
+			if(!getHostInfo()) {
+				if(Logging.WARNING) Log.w(Logging.TAG, "onItemClick missing hostInfo");
+				return;
+			}
+			slider.setMax(hostinfo.p_ncpus <= 1 ? 0 : hostinfo.p_ncpus - 1);
+			final int statusValue;
+			slider.setProgress((statusValue = valueWrapper.status.intValue()) <= 0 ?
+				0 :
+				statusValue - 1 > slider.getMax() ?
+					slider.getMax() :
+					statusValue - 1);
+			Log.d(Logging.TAG, String.format("statusValue == %,d", statusValue));
+			final SeekBar.OnSeekBarChangeListener onSeekBarChangeListener;
+			slider.setOnSeekBarChangeListener(onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
+				public void onProgressChanged(final SeekBar seekBar, final int progress, final boolean fromUser) {
+					final String progressString = NumberFormat.getIntegerInstance().format(progress <= 0 ? 1 : progress + 1); // do not allow 0 cpus
+					TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
+					sliderProgress.setText(progressString);
+				}
+				@Override
+				public void onStartTrackingTouch(SeekBar seekBar) {}
+				@Override
+				public void onStopTrackingTouch(SeekBar seekBar) {}
+			});
+			onSeekBarChangeListener.onProgressChanged(slider, statusValue - 1, false);
+		} else if(valueWrapper.ID == R.string.prefs_gui_log_level_header) {
+			slider.setMax(5);
+			slider.setProgress(valueWrapper.status.intValue());
+			final SeekBar.OnSeekBarChangeListener onSeekBarChangeListener;
+			slider.setOnSeekBarChangeListener(onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
+				public void onProgressChanged(final SeekBar seekBar, final int progress, final boolean fromUser) {
+					String progressString = NumberFormat.getIntegerInstance().format(progress);
+					TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
+					sliderProgress.setText(progressString);
+				}
+				@Override
+				public void onStartTrackingTouch(SeekBar seekBar) {}
+				@Override
+				public void onStopTrackingTouch(SeekBar seekBar) {}
+			});
+			onSeekBarChangeListener.onProgressChanged(slider, valueWrapper.status.intValue(), false);
+		}
+		
+		setupDialogButtons(item, dialog);
+	}
+	
+	private void setupSelectionListDialog(final PrefsListItemWrapper item, final Dialog dialog) throws RemoteException{
+		dialog.setContentView(R.layout.prefs_layout_dialog_selection);
+		
+		if(item.ID == R.string.prefs_client_log_flags_header) {
+			final ArrayList<SelectionDialogOption> options = new ArrayList<SelectionDialogOption>();
+			String[] array = getResources().getStringArray(R.array.prefs_client_log_flags);
+			for(String option: array) options.add(new SelectionDialogOption(option));
+			ListView lv = (ListView) dialog.findViewById(R.id.selection);
+			new PrefsSelectionDialogListAdapter(getActivity(), lv, R.id.selection, options);
+
+			// setup confirm button action
+			Button confirm = (Button) dialog.findViewById(R.id.confirm);
+			confirm.setOnClickListener(new OnClickListener() {
+				@Override
+				public void onClick(View v) {
+					ArrayList<String> selectedOptions = new ArrayList<String>();
+					for(SelectionDialogOption option: options) if(option.selected) selectedOptions.add(option.name);
+					if(Logging.DEBUG) Log.d(Logging.TAG, selectedOptions.size() + " log flags selected");
+					new SetCcConfigAsync().execute(formatOptionsToCcConfig(selectedOptions)); 
+					dialog.dismiss();
+				}
+			});
+		}else if(item.ID == R.string.prefs_power_source_header) {
+			final ArrayList<SelectionDialogOption> options = new ArrayList<SelectionDialogOption>();
+			options.add(new SelectionDialogOption(R.string.prefs_power_source_ac, BOINCActivity.monitor.getPowerSourceAc()));
+			options.add(new SelectionDialogOption(R.string.prefs_power_source_usb, BOINCActivity.monitor.getPowerSourceUsb()));
+			options.add(new SelectionDialogOption(R.string.prefs_power_source_wireless, BOINCActivity.monitor.getPowerSourceWireless()));
+			options.add(new SelectionDialogOption(R.string.prefs_power_source_battery, clientPrefs.run_on_batteries, true));
+			ListView lv = (ListView) dialog.findViewById(R.id.selection);
+			new PrefsSelectionDialogListAdapter(getActivity(), lv, R.id.selection, options);
+
+			// setup confirm button action
+			Button confirm = (Button) dialog.findViewById(R.id.confirm);
+			confirm.setOnClickListener(new OnClickListener() {
+				@Override
+				public void onClick(View v) {
+					try{
+						for(SelectionDialogOption option: options) {
+							switch (option.ID){
+							case R.string.prefs_power_source_ac:
+								BOINCActivity.monitor.setPowerSourceAc(option.selected);
+								break;
+							case R.string.prefs_power_source_usb:
+								BOINCActivity.monitor.setPowerSourceUsb(option.selected);
+								break;
+							case R.string.prefs_power_source_wireless:
+								BOINCActivity.monitor.setPowerSourceWireless(option.selected);
+								break;
+							case R.string.prefs_power_source_battery:
+								clientPrefs.run_on_batteries = option.selected;
+								new WriteClientPrefsAsync().execute(clientPrefs); //async task triggers layout update
+								break;
+							};
+						}
+						dialog.dismiss();
+					} catch(RemoteException e) {}
+				}
+			});
+		}
+		
+		// generic cancel button
+		Button cancel = (Button) dialog.findViewById(R.id.cancel);
+		cancel.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				dialog.dismiss();
+			}
+		});
+	}
+		
+	private void setupDialogButtons(final PrefsListItemWrapper item, final Dialog dialog) {
+		// confirm
+		Button confirm = (Button) dialog.findViewById(R.id.confirm);
+		confirm.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+         	   if(item.ID == R.string.battery_charge_min_pct_header || 
+         			item.ID == R.string.prefs_disk_max_pct_header || 
+         			item.ID == R.string.prefs_cpu_time_max_header ||
+         			item.ID == R.string.prefs_cpu_other_load_suspension_header || 
+         			item.ID == R.string.prefs_memory_max_idle_header ) {
+         		   SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
+         		   double value = slider.getProgress()*10;
+         		   writeClientValuePreference(item.ID, value);
+         	   } else if(item.ID == R.string.prefs_cpu_number_cpus_header) {
+         		   SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
+         		   int sbProgress = slider.getProgress();
+         		   double value = numberCpuCoresToPct(sbProgress <= 0 ? 1 : sbProgress + 1);
+         		   writeClientValuePreference(item.ID, value);
+         	   } else if(item.ID == R.string.prefs_gui_log_level_header) {
+         		   SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
+         		   int sbProgress = slider.getProgress();
+         		   try {
+         			   // monitor and UI in two different processes. set static variable in both
+          			  Logging.setLogLevel(sbProgress);
+         			  BOINCActivity.monitor.setLogLevel(sbProgress);
+         		   } catch (RemoteException e) {}
+         		   updateValuePref(item.ID, (double) sbProgress);
+         		   updateLayout();
+         	   } else if(item.ID == R.string.prefs_network_daily_xfer_limit_mb_header ||
+         			   item.ID == R.string.battery_temperature_max_header ||
+         			   item.ID == R.string.prefs_disk_min_free_gb_header ||
+         			   item.ID == R.string.prefs_disk_access_interval_header) {
+         		   EditText edit = (EditText) dialog.findViewById(R.id.Input);
+         		   String input = edit.getText().toString();
+         		   Double valueTmp = parseInputValueToDouble(input);
+         		   if(valueTmp == null) return;
+         		   double value = valueTmp;
+         		   writeClientValuePreference(item.ID, value);
+         	   }
+         	   dialog.dismiss();
+			}
+		});
+		// cancel
+		Button cancel = (Button) dialog.findViewById(R.id.cancel);
+		cancel.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				dialog.dismiss();
+			}
+		});
+	}
+	
+	private void writeClientValuePreference(int id, double value) {
+		// update preferences
+		switch (id) {
+		case R.string.prefs_disk_max_pct_header:
+			clientPrefs.disk_max_used_pct = value;
+			break;
+		case R.string.prefs_disk_min_free_gb_header:
+			clientPrefs.disk_min_free_gb = value;
+			break;
+		case R.string.prefs_disk_access_interval_header:
+			clientPrefs.disk_interval = value;
+			break;
+		case R.string.prefs_network_daily_xfer_limit_mb_header:
+			clientPrefs.daily_xfer_limit_mb = value;
+			// also need to set the period!
+			clientPrefs.daily_xfer_period_days = 1;
+			break;
+		case R.string.battery_charge_min_pct_header:
+			clientPrefs.battery_charge_min_pct = value;
+			break;
+		case R.string.battery_temperature_max_header:
+			clientPrefs.battery_max_temperature = value;
+			break;
+		case R.string.prefs_cpu_number_cpus_header:
+			clientPrefs.max_ncpus_pct = value;
+			//convert value back to number for layout update
+			value = pctCpuCoresToNumber(value);
+			break;
+		case R.string.prefs_cpu_time_max_header:
+			clientPrefs.cpu_usage_limit = value;
+			break;
+		case R.string.prefs_cpu_other_load_suspension_header:
+			clientPrefs.suspend_cpu_usage = value;
+			break;
+		case R.string.prefs_memory_max_idle_header:
+			clientPrefs.ram_max_used_idle_frac = value;
+			break;
+		default:
+			if(Logging.DEBUG) Log.d(Logging.TAG,"onClick (dialog submit button), couldnt match ID");
+			Toast toast = Toast.makeText(getActivity(), "ooops! something went wrong...", Toast.LENGTH_SHORT);
+			toast.show();
+			return;
+		}
+		// update list item
+		updateValuePref(id, value);
+		// preferences adapted, write preferences to client
+		new WriteClientPrefsAsync().execute(clientPrefs);
+	}
+	
+	private double numberCpuCoresToPct(double ncpus) {
+		double pct = (ncpus / (double)hostinfo.p_ncpus) * 100;
+		if(Logging.DEBUG) Log.d(Logging.TAG,"numberCpuCoresToPct: " + ncpus + hostinfo.p_ncpus + pct);
+		return pct;
+	}
+	
+	private double pctCpuCoresToNumber(double pct) {
+		double ncpus = (double)hostinfo.p_ncpus * (pct / 100.0);
+		if(ncpus < 1.0) ncpus = 1.0;
+		return ncpus;
+	}
+
+	public Double parseInputValueToDouble(String input) {
+		// parse value
+		Double value = 0.0;
+		try {
+			input=input.replaceAll(",","."); //replace e.g. European decimal seperator "," by "."
+			value = Double.parseDouble(input);
+			if(Logging.DEBUG) Log.d(Logging.TAG,"parseInputValueToDouble: " + value);
+			return value;
+		} catch (Exception e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, e);
+			Toast toast = Toast.makeText(getActivity(), "wrong format!", Toast.LENGTH_SHORT);
+			toast.show();
+			return null;
+		}
+	}
+	
+	private String formatOptionsToCcConfig(ArrayList<String> options) {
+		StringBuilder builder = new StringBuilder();
+		builder.append("<cc_config>\n <log_flags>\n");
+	    for(String option: options) builder.append("  <" + option + "/>\n");
+	    builder.append(" </log_flags>\n <options>\n </options>\n</cc_config>");
+		return builder.toString();
+	}
+	
+	public class BoolOnClick implements OnClickListener {
+		
+		private Integer ID;
+		private CheckBox cb;
+		
+		public BoolOnClick(Integer ID, CheckBox cb) {
+			this.ID = ID;
+			this.cb = cb;
+		}
+
+		@Override
+		public void onClick(View view) {
+			if(Logging.DEBUG) Log.d(Logging.TAG,"onCbClick");
+			Boolean previousState = cb.isChecked();
+			cb.setChecked(!previousState);
+			Boolean isSet = cb.isChecked();
+			try{
+				switch (ID) {
+				case R.string.prefs_autostart_header: //app pref
+					BOINCActivity.monitor.setAutostart(isSet);
+					updateBoolPref(ID, isSet);
+					updateLayout();
+					break;
+				case R.string.prefs_show_notification_notices_header: //app pref
+					BOINCActivity.monitor.setShowNotificationForNotices(isSet);
+					updateBoolPref(ID, isSet);
+					updateLayout();
+					break;
+				case R.string.prefs_show_notification_suspended_header: //app pref
+					BOINCActivity.monitor.setShowNotificationDuringSuspend(isSet);
+					updateBoolPref(ID, isSet);
+					updateLayout();
+					break;
+				case R.string.prefs_show_advanced_header: //app pref
+					BOINCActivity.monitor.setShowAdvanced(isSet);
+					// reload complete layout to remove/add advanced elements
+					populateLayout();
+					break;
+				case R.string.prefs_suspend_when_screen_on: //app pref
+					BOINCActivity.monitor.setSuspendWhenScreenOn(isSet);
+					updateBoolPref(ID, isSet);
+					updateLayout();
+					break;
+				case R.string.prefs_network_wifi_only_header: //client pref
+					clientPrefs.network_wifi_only = isSet;
+					updateBoolPref(ID, isSet);
+					new WriteClientPrefsAsync().execute(clientPrefs); //async task triggers layout update
+					break;
+				case R.string.prefs_stationary_device_mode_header: //app pref
+					BOINCActivity.monitor.setStationaryDeviceMode(isSet);
+					// reload complete layout to remove/add power preference elements
+					populateLayout();
+					break;
+				}
+			} catch(RemoteException e) {}
+		}
+		
+	}
+	
+	public class ValueOnClick implements OnClickListener {
+		
+		private PrefsListItemWrapper item;
+		
+		public ValueOnClick(PrefsListItemWrapper wrapper) {
+			this.item = wrapper;
+		}
+
+		@Override
+		public void onClick(View view) {
+			final Dialog dialog = new Dialog(getActivity());
+			dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+			
+			// setup dialog layout
+			switch(item.ID) {
+			case R.string.prefs_network_daily_xfer_limit_mb_header:
+				dialog.setContentView(R.layout.prefs_layout_dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				setupDialogButtons(item, dialog);
+				break;
+			case R.string.prefs_power_source_header:
+				try {
+					setupSelectionListDialog(item, dialog);
+				} catch (RemoteException e) {}
+				break;
+			case R.string.battery_charge_min_pct_header:
+				setupSliderDialog(item, dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				break;
+			case R.string.battery_temperature_max_header:
+				dialog.setContentView(R.layout.prefs_layout_dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				setupDialogButtons(item, dialog);
+				break;
+			case R.string.prefs_cpu_number_cpus_header:
+				setupSliderDialog(item, dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				break;
+			case R.string.prefs_cpu_time_max_header:
+				setupSliderDialog(item, dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				break;
+			case R.string.prefs_cpu_other_load_suspension_header:
+				setupSliderDialog(item, dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				break;
+			case R.string.prefs_disk_max_pct_header:
+				setupSliderDialog(item, dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				break;
+			case R.string.prefs_disk_min_free_gb_header:
+				dialog.setContentView(R.layout.prefs_layout_dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				setupDialogButtons(item, dialog);
+				break;
+			case R.string.prefs_disk_access_interval_header:
+				dialog.setContentView(R.layout.prefs_layout_dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				setupDialogButtons(item, dialog);
+				break;
+			case R.string.prefs_memory_max_idle_header:
+				setupSliderDialog(item, dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				break;
+			case R.string.prefs_client_log_flags_header:
+				try {
+					setupSelectionListDialog(item, dialog);
+				} catch (RemoteException e) {}
+				break;
+			case R.string.prefs_gui_log_level_header:
+				setupSliderDialog(item, dialog);
+				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
+				break;
+			default:
+				if(Logging.ERROR) Log.d(Logging.TAG,"PrefsActivity onItemClick: could not map ID: " + item.ID);
+				return;
+			}
+			
+			// show dialog
+			dialog.show();
+		}
+	}
+	
+	private final class WriteClientPrefsAsync extends AsyncTask<GlobalPreferences,Void,Boolean> {
+		@Override
+		protected Boolean doInBackground(GlobalPreferences... params) {
+			try {
+				return BOINCActivity.monitor.setGlobalPreferences(params[0]);
+			} catch (RemoteException e) {
+				return false;
+			}
+		}
+		
+		@Override
+		protected void onPostExecute(Boolean success) {
+			if(Logging.DEBUG) Log.d(Logging.TAG,"WriteClientPrefsAsync returned: " + success);
+			updateLayout();
+		}
+	}
+	
+	private final class SetCcConfigAsync extends AsyncTask<String,Void,Boolean> {
+		@Override
+		protected Boolean doInBackground(String... params) {
+			if(Logging.DEBUG) Log.d(Logging.TAG,"SetCcConfigAsync with: " + params[0]);
+			try {
+				return BOINCActivity.monitor.setCcConfig(params[0]);
+			} catch (RemoteException e) {
+				return false;
+			}
+		}
+	}
+	
+	public class SelectionDialogOption {
+		public String name;
+		public Integer ID = null;
+		public Boolean selected = false;
+		public Boolean highlighted = false;
+		
+		public SelectionDialogOption(String name) {
+			this.name = name;
+		}
+		
+		public SelectionDialogOption(String name, Boolean selected) {
+			this(name);
+			this.selected = selected;
+		}
+		
+		public SelectionDialogOption(String name, Boolean selected, Boolean highlighted) {
+			this(name, selected);
+			this.highlighted = highlighted;
+		}
+		
+		public SelectionDialogOption(int ID, Boolean selected) {
+			this(getResources().getString(ID), selected);
+			this.ID = Integer.valueOf(ID);
+		}
+		
+		public SelectionDialogOption(int ID, Boolean selected, Boolean highlighted) {
+			this(getResources().getString(ID), selected, highlighted);
+			this.ID = Integer.valueOf(ID);
+		}
+	}
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/ProjectDetailsFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/ProjectDetailsFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/ProjectDetailsFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/ProjectDetailsFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/ProjectsFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/ProjectsFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/ProjectsFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/ProjectsFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/SplashActivity.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/SplashActivity.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/SplashActivity.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/SplashActivity.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/StatusFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/StatusFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/StatusFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/StatusFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/TasksFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/TasksFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/TasksFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/TasksFragment.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ClientLogListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ClientLogListAdapter.java
new file mode 100644
index 0000000..ca9f9ce
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ClientLogListAdapter.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.rpc.Message;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+
+public class ClientLogListAdapter extends ArrayAdapter<Message> {
+	private ArrayList<Message> entries;
+    private Activity activity;
+	/**
+	 * This member eliminates reallocation of a {@link Date} object in {@link #getDate(int)}.
+	 *
+	 * @see #getView(int,View,ViewGroup)
+	 */
+	private final Date date;
+    
+    public static class ViewEventLog {
+    	int entryIndex;
+        TextView tvMessage;
+        TextView tvDate;
+        TextView tvProjectName;
+    }
+ 
+    public ClientLogListAdapter(Activity activity, ListView listView, int textViewResourceId, ArrayList<Message> entries) {
+        super(activity, textViewResourceId, entries);
+        this.entries = entries;
+        this.activity = activity;
+        this.date = new Date();
+        
+        listView.setAdapter(this);
+        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
+    }
+ 
+	@Override
+	public int getCount() {
+		return entries.size();
+	}
+
+	public String getDate(int position) {
+		this.date.setTime(this.entries.get(position).timestamp * 1000);
+		return DateFormat.getDateTimeInstance().format(this.date);
+	}
+
+	@Override
+	public Message getItem(int position) {
+		return entries.get(position);
+	}
+
+	@Override
+	public long getItemId(int position) {
+		return position;
+	}
+
+	public String getMessage(int position) {
+		return entries.get(position).body;
+	}
+
+	public String getProject(int position) {
+		return entries.get(position).project;
+	}
+
+	@Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+	    View vi = convertView;
+		ViewEventLog viewEventLog;
+    	
+		// Only inflate a new view if the ListView does not already have a view assigned.
+	    if (convertView == null) {
+	    	
+	    	vi = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.eventlog_client_listitem_layout, null);
+
+	        viewEventLog = new ViewEventLog();
+	        viewEventLog.tvMessage = (TextView)vi.findViewById(R.id.msgs_message);
+	        viewEventLog.tvDate = (TextView)vi.findViewById(R.id.msgs_date);
+	        viewEventLog.tvProjectName = (TextView)vi.findViewById(R.id.msgs_project);
+	    
+	        vi.setTag(viewEventLog);
+	        
+	    } else {
+	    	
+	    	viewEventLog = (ViewEventLog)vi.getTag();
+	    	
+	    }
+
+		// Populate UI Elements
+	    viewEventLog.entryIndex = position;
+	    viewEventLog.tvMessage.setText(getMessage(position));
+	    viewEventLog.tvDate.setText(getDate(position));
+	    if(getProject(position).isEmpty()){
+	    	viewEventLog.tvProjectName.setVisibility(View.GONE);
+	    } else {
+	    	viewEventLog.tvProjectName.setVisibility(View.VISIBLE);
+	    	viewEventLog.tvProjectName.setText(getProject(position));
+	    }
+
+        return vi;
+    }
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/GalleryAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/GalleryAdapter.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/adapter/GalleryAdapter.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/GalleryAdapter.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/NavDrawerListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/NavDrawerListAdapter.java
new file mode 100644
index 0000000..491ab16
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/NavDrawerListAdapter.java
@@ -0,0 +1,273 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.adapter;
+
+import edu.berkeley.boinc.BOINCActivity;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.rpc.Project;
+import edu.berkeley.boinc.utils.Logging;
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+public class NavDrawerListAdapter extends BaseAdapter{
+
+	//private final String TAG = "NavDrawerListAdapter";
+	private Context context;
+	private ArrayList<NavDrawerItem> navDrawerItems = new ArrayList<NavDrawerItem>();
+	
+	public int selectedMenuId = 0;
+	
+	public NavDrawerListAdapter(Context context){
+		this.context = context;
+		
+		// populate items
+		navDrawerItems.add(new NavDrawerItem(R.string.tab_tasks, R.drawable.tabtaskb, true));
+		navDrawerItems.add(new NavDrawerItem(R.string.tab_notices, R.drawable.mailb, true));
+		navDrawerItems.add(new NavDrawerItem(R.string.tab_projects, R.drawable.projectsb));
+		navDrawerItems.add(new NavDrawerItem(R.string.projects_add, R.drawable.sqplusb, false, true));
+		navDrawerItems.add(new NavDrawerItem(R.string.tab_preferences, R.drawable.cogsb));
+		navDrawerItems.add(new NavDrawerItem(R.string.menu_help, R.drawable.helpb));
+		navDrawerItems.add(new NavDrawerItem(R.string.menu_about, R.drawable.infob));
+		navDrawerItems.add(new NavDrawerItem(R.string.menu_eventlog, R.drawable.bugb));
+	}
+
+	@Override
+	public int getCount() {
+		return navDrawerItems.size();
+	}
+
+	@Override
+	public NavDrawerItem getItem(int position) {		
+		return navDrawerItems.get(position);
+	}
+
+	@Override
+	public long getItemId(int position) {
+		return navDrawerItems.get(position).id;
+	}
+	
+	public NavDrawerItem getItemForId(int id) {
+		for(NavDrawerItem item: navDrawerItems) {
+			if (item.id == id) return item;
+		}
+		return null;
+	}
+
+	@Override
+	public View getView(int position, View convertView, ViewGroup parent) {
+		if(Logging.VERBOSE) Log.d(Logging.TAG, "NavDrawerListAdapter.getView() for : " + navDrawerItems.get(position).title + navDrawerItems.get(position).isCounterVisible + navDrawerItems.get(position).isSubItem + navDrawerItems.get(position).isProjectItem);
+		if (convertView == null || !((String)convertView.getTag()).equals(navDrawerItems.get(position).title)) {
+			int layoutId = R.layout.navlist_listitem;
+			if(navDrawerItems.get(position).isSubItem()) layoutId = R.layout.navlist_listitem_subitem;
+            LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
+            convertView = mInflater.inflate(layoutId, null);
+        }
+        
+		RelativeLayout wrapper = (RelativeLayout) convertView.findViewById(R.id.listitem);
+        ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
+        TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
+        TextView txtCount = (TextView) convertView.findViewById(R.id.counter);
+         
+        if(navDrawerItems.get(position).isProjectItem) {
+        	Bitmap icon = navDrawerItems.get(position).getProjectIcon();
+        	if(icon == null) navDrawerItems.get(position).updateProjectIcon();
+        	if(icon != null) imgIcon.setImageBitmap(icon);
+        }
+        else imgIcon.setImageResource(navDrawerItems.get(position).getIcon());        
+        txtTitle.setText(navDrawerItems.get(position).getTitle());
+        
+        // displaying count
+        // check whether it set visible or not
+        if(navDrawerItems.get(position).getCounterVisibility()){
+    		Integer counter = 0;
+        	switch(navDrawerItems.get(position).id) {
+        	case R.string.tab_tasks:
+        		try {counter = BOINCActivity.monitor.getTasks().size();}catch(Exception e) {}
+        		break;
+        	case R.string.tab_notices: 
+        		try {counter = BOINCActivity.monitor.getRssNotices().size();}catch(Exception e) {}
+        		break;
+        	}
+        	txtCount.setText(NumberFormat.getIntegerInstance().format(counter));
+        }else{
+        	// hide the counter view
+        	txtCount.setVisibility(View.GONE);
+        }
+        
+        // highligt entry of currently activated item
+        if(navDrawerItems.get(position).id == selectedMenuId) {
+        	if(Logging.DEBUG) Log.d(Logging.TAG, "NavDrawerListAdapter.getView() highlighted! ID : " + selectedMenuId);
+    		wrapper.setBackgroundResource(R.drawable.navlist_selector_pressed);
+        } else wrapper.setBackgroundResource(R.drawable.navlist_selector);
+        
+        convertView.setTag(navDrawerItems.get(position).title);
+        return convertView;
+	}
+	
+	public Bitmap getProjectIconForMasterUrl(String masterUrl) {
+		Bitmap bm = null;
+		try {
+			bm = BOINCActivity.monitor.getProjectIcon(masterUrl);
+		} catch (Exception e) {}
+		return bm;
+	}
+	
+	/**
+	 * Compares list of projects to items represented in nav bar.
+	 * @param projects
+	 * @return Returns number of project items in nav bar after adding
+	 */
+	public Integer compareAndAddProjects(ArrayList<Project> projects){
+		// delete all old projects from nav items
+		Iterator<NavDrawerItem> it = navDrawerItems.iterator();
+		while(it.hasNext()) {
+			NavDrawerItem item = it.next();
+			if(item.isProjectItem) it.remove();
+		}
+		
+		Integer numberAdded = 0;
+		
+		for(Project project: projects) {
+			NavDrawerItem newProjectItem = new NavDrawerItem(project.project_name, getProjectIconForMasterUrl(project.master_url), project.master_url);
+			navDrawerItems.add(3, newProjectItem);
+			numberAdded++;
+		}
+		
+		if(Logging.DEBUG) Log.d(Logging.TAG, "NavDrawerListAdapter.compareAndAddProjects() added: " + numberAdded);
+		this.notifyDataSetChanged();
+		return numberAdded;
+	}
+	
+	public class NavDrawerItem {
+		
+		private int id = 0;
+		private String title;
+		private int icon;
+		private boolean isCounterVisible = false;
+		private boolean isSubItem = false;
+		private boolean isProjectItem = false;
+		private Bitmap projectIcon;
+		private String projectMasterUrl;
+		
+		public NavDrawerItem(){}
+
+		/**
+		 * Creates default item
+		 */
+		public NavDrawerItem(int id, int icon){
+			this.id = id;
+			this.title = context.getString(id);
+			this.icon = icon;
+		}
+		
+		/**
+		 * Creates sub item under previous element
+		 */
+		public NavDrawerItem(int id, int icon, boolean isCounterVisible, boolean isSubItem) {
+			this.id = id;
+			this.title = context.getString(id);
+			this.icon = icon;
+			this.isSubItem = isSubItem;
+			this.isCounterVisible = isCounterVisible;
+		}
+		
+		/**
+		 * Creates item for project, which is sub item of Projects by default
+		 */
+		public NavDrawerItem(String name, Bitmap icon, String masterUrl) {
+			this.id = masterUrl.hashCode();
+			this.title = name;
+			this.projectIcon = icon;
+			this.projectMasterUrl = masterUrl;
+			this.isProjectItem = true;
+			this.isSubItem = true;
+			if(Logging.DEBUG) Log.d(Logging.TAG, "NavDrawerItem: created hash code " + id + " for project " + name);
+		}
+		
+		/**
+		 * Creates item with number counter on right
+		 */
+		public NavDrawerItem(int id, int icon, boolean isCounterVisible){
+			this.id = id;
+			this.title = context.getString(id);
+			this.icon = icon;
+			this.isCounterVisible = isCounterVisible;
+		}
+		
+		public int getId() {
+			return id;
+		}
+		
+		public String getTitle(){
+			return this.title;
+		}
+		
+		public int getIcon(){
+			return this.icon;
+		}
+		
+		public String getProjectMasterUrl(){
+			return this.projectMasterUrl;
+		}
+		
+		public boolean getCounterVisibility(){
+			return this.isCounterVisible;
+		}
+		
+		public boolean isSubItem() {
+			return this.isSubItem;
+		}
+		
+		public boolean isProjectItem() {
+			return this.isProjectItem;
+		}
+		
+		public Bitmap getProjectIcon() {
+			return this.projectIcon;
+		}
+		
+		public void updateProjectIcon() {
+			this.projectIcon = getProjectIconForMasterUrl(projectMasterUrl);
+		}
+		
+		public void setTitle(String title){
+			this.title = title;
+		}
+		
+		public void setIcon(int icon){
+			this.icon = icon;
+		}
+		
+		public void setCounterVisibility(boolean isCounterVisible){
+			this.isCounterVisible = isCounterVisible;
+		}
+	}
+}
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/NoticesListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/NoticesListAdapter.java
new file mode 100644
index 0000000..344eed9
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/NoticesListAdapter.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.text.Html;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+import edu.berkeley.boinc.BOINCActivity;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.rpc.Notice;
+import edu.berkeley.boinc.utils.Logging;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+
+public class NoticesListAdapter extends ArrayAdapter<Notice>{
+	private ArrayList<Notice> entries;
+	private Activity activity;
+
+	public NoticesListAdapter(Activity a, int textViewResourceId, ArrayList<Notice> entries) {
+		super(a, textViewResourceId, entries);
+		this.entries = entries;
+		this.activity = a;
+	}
+
+	@Override
+	public View getView(int position, View convertView, ViewGroup parent) {
+
+		final Notice listItem = entries.get(position);
+		
+		LayoutInflater vi = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+		View v = vi.inflate(R.layout.notices_layout_listitem, null);
+		
+		ImageView ivIcon = (ImageView)v.findViewById(R.id.projectIcon);
+		Bitmap icon = getIcon(position);
+		// if available set icon, if not boinc logo
+		if(icon == null) { 
+			ivIcon.setImageDrawable(getContext().getResources().getDrawable(R.drawable.boinc));
+		} else {
+			ivIcon.setImageBitmap(icon);
+		}
+		
+		TextView tvProjectName = (TextView) v.findViewById(R.id.projectName);
+		tvProjectName.setText(listItem.project_name);
+		
+		TextView tvNoticeTitle = (TextView) v.findViewById(R.id.noticeTitle);
+		tvNoticeTitle.setText(listItem.title);
+		
+		TextView tvNoticeContent = (TextView) v.findViewById(R.id.noticeContent);
+		tvNoticeContent.setText(Html.fromHtml(listItem.description));
+		
+		TextView tvNoticeTime = (TextView) v.findViewById(R.id.noticeTime);
+		tvNoticeTime.setText(DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT).format(new Date((long)listItem.create_time * 1000)));
+		
+		v.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				if(Logging.DEBUG) Log.d(Logging.TAG,"noticeClick: " + listItem.link);
+				
+				if(listItem.link != null && !listItem.link.isEmpty()){ 
+		    		Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(listItem.link));
+		    		activity.startActivity(i);
+				}
+				
+			}
+		});
+
+		return v;
+	}
+	
+	private Bitmap getIcon(int position) {
+		// try to get current client status from monitor
+		//ClientStatus status;
+		try{
+			//status  = Monitor.getClientStatus();
+			return BOINCActivity.monitor.getProjectIconByName(entries.get(position).project_name);
+		} catch (Exception e){
+			if(Logging.WARNING) Log.w(Logging.TAG,"TasksListAdapter: Could not load data, clientStatus not initialized.");
+			return null;
+		}
+		//return status.getProjectIconByName(entries.get(position).project_name);
+	}
+
+}
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListAdapter.java
new file mode 100644
index 0000000..dd8c08b
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListAdapter.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.text.format.Formatter;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.CheckBox;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import edu.berkeley.boinc.PrefsFragment;
+import edu.berkeley.boinc.PrefsFragment.BoolOnClick;
+import edu.berkeley.boinc.R;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+
+public class PrefsListAdapter extends ArrayAdapter<PrefsListItemWrapper>{
+	
+	//private final String TAG = "PrefsListAdapter";
+	private ArrayList<PrefsListItemWrapper> entries;
+    private Activity activity;
+    private PrefsFragment frag;
+    
+    public PrefsListAdapter(Activity a, PrefsFragment frag, int textViewResourceId, ArrayList<PrefsListItemWrapper> entries) {
+        super(a, textViewResourceId, entries);
+        this.entries = entries;
+        this.activity = a;
+        this.frag = frag;
+    }
+ 
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+    	
+        View v = convertView;
+        LayoutInflater vi = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        
+    	PrefsListItemWrapper listItem = entries.get(position);
+    	
+    	if(listItem.isCategory) { // item is category
+    		v = vi.inflate(R.layout.prefs_layout_listitem_category, null);
+    		TextView header = (TextView) v.findViewById(R.id.category_header);
+    		header.setText(listItem.ID);
+    	} else { // item is element
+	    	if(listItem instanceof PrefsListItemWrapperBool) {
+	    		v = vi.inflate(R.layout.prefs_layout_listitem_bool, null);
+	    		CheckBox cb = (CheckBox) v.findViewById(R.id.checkbox);
+	        	cb.setChecked(((PrefsListItemWrapperBool) listItem).getStatus());
+	    		BoolOnClick listener = frag.new BoolOnClick(listItem.ID, cb);
+	        	RelativeLayout wrapper = (RelativeLayout) v.findViewById(R.id.checkbox_wrapper);
+	        	wrapper.setClickable(true);
+	        	wrapper.setOnClickListener(listener);
+	    		TextView header = (TextView) v.findViewById(R.id.checkbox_text);
+	    		header.setText(((PrefsListItemWrapperBool) listItem).header);
+	    	} else if(listItem instanceof PrefsListItemWrapperValue) {
+	    		PrefsListItemWrapperValue item = (PrefsListItemWrapperValue) listItem;
+	    		v = vi.inflate(R.layout.prefs_layout_listitem, null);
+	    		RelativeLayout wrapper = (RelativeLayout) v.findViewById(R.id.wrapper);
+	    		wrapper.setOnClickListener(frag.new ValueOnClick(listItem));
+	    		TextView header = (TextView) v.findViewById(R.id.header);
+	    		header.setText(item.header);
+	    		TextView description = (TextView) v.findViewById(R.id.description);
+	    		description.setText(item.description);
+	    		
+	    		// set status value or hide if 0
+    			LinearLayout statusWrapper = (LinearLayout) v.findViewById(R.id.status_wrapper);
+	    		if (item.status > 0) {
+	    			statusWrapper.setVisibility(View.VISIBLE);
+	    			final String value;
+	    			switch (item.unit) {
+	    				case NONE:
+	    					value = NumberFormat.getIntegerInstance().format(item.status);
+	    					break;
+	    				case PERCENT:
+	    					value = NumberFormat.getPercentInstance().format(item.status / 100.0);
+	    					break;
+	    				case SECONDS:
+	    					value = NumberFormat.getIntegerInstance().format(item.status) + this.activity.getString(R.string.prefs_unit_seconds);
+	    					break;
+	    				case CELSIUS:
+	    					value = NumberFormat.getInstance().format(item.status) + this.activity.getString(R.string.prefs_unit_celsius);
+	    					break;
+	    				case MEGABYTES:
+	    					value = Formatter.formatShortFileSize(this.activity, (long)(item.status.doubleValue() * 0x100000));
+	    					break;
+	    				case GIGABYTES:
+	    					value = Formatter.formatShortFileSize(this.activity, (long)(item.status.doubleValue() * 0x40000000));
+	    					break;
+	    				default:
+	    					value = NumberFormat.getInstance().format(item.status);
+	    			}
+		    		((TextView)v.findViewById(R.id.status)).setText(value);
+	    		} else statusWrapper.setVisibility(View.GONE);
+	    	} else {
+	    		v = vi.inflate(R.layout.prefs_layout_listitem, null);
+	    		RelativeLayout wrapper = (RelativeLayout) v.findViewById(R.id.wrapper);
+	    		wrapper.setOnClickListener(frag.new ValueOnClick(listItem));
+	    		TextView header = (TextView) v.findViewById(R.id.header);
+	    		header.setText(listItem.header);
+	    		if(listItem.ID == R.string.prefs_client_log_flags_header) {
+		    		TextView description = (TextView) v.findViewById(R.id.description);
+		    		description.setVisibility(View.GONE);
+	    			LinearLayout statusWrapper = (LinearLayout) v.findViewById(R.id.status_wrapper);
+	    			statusWrapper.setVisibility(View.GONE);
+	    		} else if(listItem.ID == R.string.prefs_power_source_header) {
+		    		TextView description = (TextView) v.findViewById(R.id.description);
+		    		description.setText(listItem.description);
+	    			LinearLayout statusWrapper = (LinearLayout) v.findViewById(R.id.status_wrapper);
+	    			statusWrapper.setVisibility(View.GONE);
+	    		}
+	    	}
+    	}
+    	
+        return v;
+    }
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListItemWrapper.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListItemWrapper.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListItemWrapper.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListItemWrapper.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListItemWrapperBool.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListItemWrapperBool.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListItemWrapperBool.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListItemWrapperBool.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListItemWrapperValue.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListItemWrapperValue.java
new file mode 100644
index 0000000..4e7595c
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsListItemWrapperValue.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.adapter;
+
+import android.content.Context;
+import android.util.Log;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.utils.Logging;
+
+public class PrefsListItemWrapperValue extends PrefsListItemWrapper {
+	enum Unit {
+		NONE,
+		PERCENT,
+		SECONDS,
+		CELSIUS,
+		MEGABYTES,
+		GIGABYTES
+	}
+	PrefsListItemWrapperValue.Unit unit;
+	public Double status;
+
+	public PrefsListItemWrapperValue(Context ctx, Integer ID, Integer categoryID, Double status) {
+		super(ctx, ID, categoryID);
+		this.status = status;
+		mapStrings(ID);
+	}
+	
+	private void mapStrings(Integer id) {
+		switch (id) {
+		case R.string.battery_charge_min_pct_header:
+			description = ctx.getString(R.string.battery_charge_min_pct_description);
+			this.unit = PrefsListItemWrapperValue.Unit.PERCENT;
+			break;
+		case R.string.battery_temperature_max_header:
+			description = ctx.getString(R.string.battery_temperature_max_description);
+			this.unit = PrefsListItemWrapperValue.Unit.CELSIUS;
+			break;
+		case R.string.prefs_disk_max_pct_header:
+			description = ctx.getString(R.string.prefs_disk_max_pct_description);
+			this.unit = PrefsListItemWrapperValue.Unit.PERCENT;
+			break;
+		case R.string.prefs_disk_min_free_gb_header:
+			description = ctx.getString(R.string.prefs_disk_min_free_gb_description);
+			this.unit = PrefsListItemWrapperValue.Unit.GIGABYTES;
+			break;
+		case R.string.prefs_disk_access_interval_header:
+			description = ctx.getString(R.string.prefs_disk_access_interval_description);
+			this.unit = PrefsListItemWrapperValue.Unit.SECONDS;
+			break;
+		case R.string.prefs_network_daily_xfer_limit_mb_header:
+			description = ctx.getString(R.string.prefs_network_daily_xfer_limit_mb_description);
+			this.unit = PrefsListItemWrapperValue.Unit.MEGABYTES;
+			break;
+		case R.string.prefs_cpu_number_cpus_header:
+			description = ctx.getString(R.string.prefs_cpu_number_cpus_description);
+			this.unit = PrefsListItemWrapperValue.Unit.NONE;
+			break;
+		case R.string.prefs_cpu_other_load_suspension_header:
+			description = ctx.getString(R.string.prefs_cpu_other_load_suspension_description);
+			this.unit = PrefsListItemWrapperValue.Unit.PERCENT;
+			break;
+		case R.string.prefs_cpu_time_max_header:
+			description = ctx.getString(R.string.prefs_cpu_time_max_description);
+			this.unit = PrefsListItemWrapperValue.Unit.PERCENT;
+			break;
+		case R.string.prefs_memory_max_idle_header:
+			description = ctx.getString(R.string.prefs_memory_max_idle_description);
+			this.unit = PrefsListItemWrapperValue.Unit.PERCENT;
+			break;
+		case R.string.prefs_gui_log_level_header:
+			description = ctx.getString(R.string.prefs_gui_log_level_description);
+			this.unit = PrefsListItemWrapperValue.Unit.NONE;
+			break;
+		default:
+			if(Logging.DEBUG) Log.d(Logging.TAG, "PrefsListItemWrapperValue map failed!");
+		}
+	}
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsSelectionDialogListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsSelectionDialogListAdapter.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/adapter/PrefsSelectionDialogListAdapter.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/PrefsSelectionDialogListAdapter.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectControlsListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ProjectControlsListAdapter.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/adapter/ProjectControlsListAdapter.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ProjectControlsListAdapter.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ProjectsListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ProjectsListAdapter.java
new file mode 100644
index 0000000..a571d7e
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/ProjectsListAdapter.java
@@ -0,0 +1,264 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.text.format.DateUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import edu.berkeley.boinc.ProjectsFragment.ProjectsListData;
+import edu.berkeley.boinc.BOINCActivity;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.rpc.Notice;
+import edu.berkeley.boinc.rpc.Transfer;
+import edu.berkeley.boinc.utils.Logging;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+
+public class ProjectsListAdapter extends ArrayAdapter<ProjectsListData> {
+    //private final String TAG = "ProjectsListAdapter";
+	
+	private ArrayList<ProjectsListData> entries;
+    private Activity activity;
+    
+    public ProjectsListAdapter(Activity activity, ListView listView, int textViewResourceId, ArrayList<ProjectsListData> entries) {
+        super(activity, textViewResourceId, entries);
+        this.entries = entries;
+        this.activity = activity;
+        
+        listView.setAdapter(this);
+    }
+ 
+	@Override
+	public int getCount() {
+		return entries.size();
+	}
+
+	@Override
+	public ProjectsListData getItem(int position) {
+		return entries.get(position);
+	}
+
+	@Override
+	public long getItemId(int position) {
+		return position;
+	}
+
+	public String getName(int position) {
+		return entries.get(position).project.project_name;
+	}
+
+	public String getUser(int position) {
+		String user = entries.get(position).project.user_name;
+		String team = entries.get(position).project.team_name;
+		String userString = user;
+		if(!team.isEmpty()) user = user + " (" + team + ")";
+		return userString;
+	}
+	
+	public Boolean getIsAcctMgr(int position) {
+		return entries.get(position).isMgr;
+	}
+
+	public String getURL(int position) {
+		return entries.get(position).id;
+	}
+	
+	public Bitmap getIcon(int position) {
+		// try to get current client status from monitor
+		//ClientStatus status;
+		try{
+			//status  = Monitor.getClientStatus();
+			return BOINCActivity.monitor.getProjectIcon(entries.get(position).id);
+		} catch (Exception e){
+			if(Logging.WARNING) Log.w(Logging.TAG,"ProjectsListAdapter: Could not load data, clientStatus not initialized.");
+			return null;
+		}
+		//return status.getProjectIcon(entries.get(position).id);
+	}
+	
+	@Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+
+		ProjectsListData data = entries.get(position);
+		Boolean isAcctMgr = data.isMgr;
+
+		View vi = convertView;
+		// setup new view, if:
+		// - view is null, has not been here before
+		// - view has different id
+		Boolean setup = false;
+		if(vi == null) setup = true;
+		else {
+			String viewId = (String)vi.getTag();
+			if(!data.id.equals(viewId)) setup = true;
+		}
+		
+		if(setup){
+	    	// first time getView is called for this element
+			if(isAcctMgr) vi = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.projects_layout_listitem_acctmgr, null);
+			else vi = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.projects_layout_listitem, null);
+	    	//set onclicklistener for expansion
+			vi.setOnClickListener(entries.get(position).projectsListClickListener);
+			vi.setTag(data.id);
+		}
+		
+		if(isAcctMgr) {
+			// element is account manager
+			
+			// populate name
+	        TextView tvName = (TextView)vi.findViewById(R.id.name);
+	        tvName.setText(data.acctMgrInfo.acct_mgr_name);
+	        
+	        // populate url
+	        TextView tvUrl = (TextView)vi.findViewById(R.id.url);
+	        tvUrl.setText(data.acctMgrInfo.acct_mgr_url);
+			
+		} else {
+			// element is project
+			
+			// set data of standard elements
+	        TextView tvName = (TextView)vi.findViewById(R.id.project_name);
+	        tvName.setText(getName(position));
+	        
+	        TextView tvUser = (TextView)vi.findViewById(R.id.project_user);
+	        String userText = getUser(position);
+	        if(userText.isEmpty()) tvUser.setVisibility(View.GONE);
+	        else {
+	        	tvUser.setVisibility(View.VISIBLE);
+	        	tvUser.setText(userText);
+	        }
+	        
+		    String statusText = "";
+		    try{statusText = BOINCActivity.monitor.getProjectStatus(data.project.master_url);}catch(Exception e){}
+	        TextView tvStatus = (TextView)vi.findViewById(R.id.project_status);
+		    if(statusText.isEmpty()) tvStatus.setVisibility(View.GONE);
+		    else {
+		    	tvStatus.setVisibility(View.VISIBLE);
+		    	tvStatus.setText(statusText);
+		    }
+		    
+		    ImageView ivIcon = (ImageView)vi.findViewById(R.id.project_icon);
+		    String finalIconId = (String)ivIcon.getTag();
+		    if(finalIconId == null || !finalIconId.equals(data.id)) {
+			    Bitmap icon = getIcon(position);
+			    // if available set icon, if not boinc logo
+			    if (icon == null) {
+			    	// boinc logo
+			    	ivIcon.setImageDrawable(getContext().getResources().getDrawable(R.drawable.boinc));
+			    } else {
+			    	// project icon
+			    	ivIcon.setImageBitmap(icon);
+			    	// mark as final
+			    	ivIcon.setTag(data.id);
+			    }
+		    }
+		    
+		    // transfers
+		    Integer numberTransfers = data.projectTransfers.size();
+		    TextView tvTransfers = (TextView)vi.findViewById(R.id.project_transfers);
+		    String transfersString = "";
+		    if (numberTransfers > 0) { // ongoing transfers
+		    	// summarize information for compact representation
+		    	Integer numberTransfersUpload = 0;
+		    	Boolean uploadsPresent = false;
+		    	Integer numberTransfersDownload = 0;
+		    	Boolean downloadsPresent = false;
+		    	Boolean transfersActive = false; // true if at least one transfer is active
+		    	long nextRetryS = 0;
+			    for (Transfer trans: data.projectTransfers) {
+			    	if (trans.is_upload) {numberTransfersUpload++; uploadsPresent = true;}
+			    	else {numberTransfersDownload++; downloadsPresent = true;}
+			    	if(trans.xfer_active) transfersActive = true;
+			    	else if(trans.next_request_time < nextRetryS || nextRetryS == 0) nextRetryS = trans.next_request_time;
+			    }
+			    
+		    	String numberTransfersString = "("; // will never be empty
+		    	if(downloadsPresent) numberTransfersString += numberTransfersDownload + " " + activity.getResources().getString(R.string.trans_download);
+		    	if(downloadsPresent && uploadsPresent) numberTransfersString += " / ";
+		    	if(uploadsPresent) numberTransfersString += numberTransfersUpload + " " + activity.getResources().getString(R.string.trans_upload);
+		    	numberTransfersString += ")";
+		    	
+		    	String activityStatus = ""; // will never be empty
+			    String activityExplanation = "";
+			    if(!transfersActive) { // no transfers active, give reason
+			    	activityStatus += activity.getResources().getString(R.string.trans_pending);
+			    	
+			    	if(nextRetryS > 0) { // next try at defined time
+			    		long retryAtMs = nextRetryS * 1000;
+			    		long retryInMs = retryAtMs - Calendar.getInstance().getTimeInMillis();
+			    		if(retryInMs < 0) {}// timestamp in the past, write nothing
+			    		else {
+			    			activityExplanation += activity.getResources().getString(R.string.trans_retryin) + " " +
+					    			DateUtils.formatElapsedTime(retryInMs / 1000);
+			    		}
+			    		
+			    	}
+			    } else { // transfers active
+			    	activityStatus +=  activity.getResources().getString(R.string.trans_active);
+			    }
+			    
+			    transfersString += activity.getResources().getString(R.string.tab_transfers) + " " + activityStatus  + " " + numberTransfersString + " " + activityExplanation;
+			    tvTransfers.setVisibility(View.VISIBLE);
+			    tvTransfers.setText(transfersString);
+		    	
+		    } else { // no ongoing transfers
+		    	tvTransfers.setVisibility(View.GONE);
+		    }
+		    
+	    	// credits
+			final long userCredit = Math.round(data.project.user_total_credit),
+			           hostCredit = Math.round(data.project.host_total_credit);
+			((TextView)vi.findViewById(R.id.project_credits)).setText(hostCredit == userCredit ?
+				NumberFormat.getIntegerInstance().format(hostCredit) :
+				this.activity.getString(R.string.projects_credits_host_and_user, hostCredit, userCredit));
+	    	
+	    	// server notice
+	    	Notice notice = data.getLastServerNotice();
+	        TextView tvNotice = (TextView)vi.findViewById(R.id.project_notice);
+	    	if(notice == null) {
+	    		tvNotice.setVisibility(View.GONE);
+	    	} else {
+	    		tvNotice.setVisibility(View.VISIBLE);
+	    		String noticeText = notice.description.trim();
+	    		tvNotice.setText(noticeText);
+	    	}
+	    	
+	    	// icon background
+    		RelativeLayout iconBackground = (RelativeLayout)vi.findViewById(R.id.icon_background);
+	    	if(data.project.attached_via_acct_mgr) {
+	    		iconBackground.setBackgroundDrawable(activity.getApplicationContext().getResources().getDrawable(R.drawable.shape_light_blue_background_wo_stroke));
+	    	} else {
+	    		iconBackground.setBackgroundColor(activity.getApplicationContext().getResources().getColor(android.R.color.transparent));
+	    	}
+		}
+		
+        return vi;
+    }
+}
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/TasksListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/TasksListAdapter.java
new file mode 100644
index 0000000..8f97a23
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/adapter/TasksListAdapter.java
@@ -0,0 +1,294 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.text.format.DateUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import edu.berkeley.boinc.BOINCActivity;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.TasksFragment.TaskData;
+import edu.berkeley.boinc.rpc.RpcClient;
+import edu.berkeley.boinc.utils.BOINCDefs;
+import edu.berkeley.boinc.utils.Logging;
+import java.text.DateFormat;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Date;
+
+public class TasksListAdapter extends ArrayAdapter<TaskData>{
+	private ArrayList<TaskData> entries;
+	private Activity activity;
+	/**
+	 * This member eliminates reallocation of a {@link Date} object in {@link #getView(int,View,ViewGroup)}.
+	 *
+	 * @see #getView(int,View,ViewGroup)
+	 */
+	private final Date deadlineDate;
+	/**
+	 * This member eliminates reallocation of a {@link StringBuilder} object in {@link #getView(int,View,ViewGroup)}.
+	 *
+	 * @see #getView(int,View,ViewGroup)
+	 */
+	private final StringBuilder elapsedTimeStringBuilder;
+	private final NumberFormat percentNumberFormat;
+
+	public TasksListAdapter(Activity a, int textViewResourceId, ArrayList<TaskData> entries) {
+		super(a, textViewResourceId, entries);
+		this.entries = entries;
+		this.activity = a;
+		this.deadlineDate = new Date();
+		this.elapsedTimeStringBuilder = new StringBuilder();
+		(this.percentNumberFormat = NumberFormat.getPercentInstance()).setMinimumFractionDigits(1);
+	}
+
+	@Override
+	public View getView(int position, View convertView, ViewGroup parent) {
+
+		TaskData listItem = entries.get(position);
+
+		View v = convertView;
+		// setup new view, if:
+		// - view is null, has not been here before
+		// - view has different id
+		Boolean setup = false;
+		if(v == null) setup = true;
+		else {
+			String viewId = (String)v.getTag();
+			if(!listItem.id.equals(viewId)) setup = true;
+		}
+		
+		if(setup){
+			LayoutInflater vi = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+			v = vi.inflate(R.layout.tasks_layout_listitem, null);
+			v.setTag(listItem.id);
+		}
+		
+		ProgressBar pb = (ProgressBar) v.findViewById(R.id.progressBar);
+		TextView header = (TextView) v.findViewById(R.id.taskHeader);
+		TextView status = (TextView) v.findViewById(R.id.taskStatus);
+		TextView time = (TextView) v.findViewById(R.id.taskTime);
+		TextView statusPercentage = (TextView) v.findViewById(R.id.taskStatusPercentage);
+		ImageView expandButton = (ImageView) v.findViewById(R.id.expandCollapse);
+		
+		// --- set up view elements that are independent of "active" and "expanded" state
+		ImageView ivIcon = (ImageView)v.findViewById(R.id.projectIcon);
+		String finalIconId = (String)ivIcon.getTag();
+	    if(finalIconId == null || !finalIconId.equals(listItem.id)) {
+			Bitmap icon = getIcon(position);
+			// if available set icon, if not boinc logo
+			if(icon == null) { 
+				ivIcon.setImageDrawable(getContext().getResources().getDrawable(R.drawable.boinc));
+			} else {
+				ivIcon.setImageBitmap(icon);
+				ivIcon.setTag(listItem.id);
+			}
+		}
+		
+		String headerT = listItem.result.app.getName();
+		header.setText(headerT);
+		
+		// set project name
+		String tempProjectName = listItem.result.project_url;
+		if(listItem.result.project != null) {
+			tempProjectName = listItem.result.project.getName();
+			if(listItem.result.project_suspended_via_gui) {
+				tempProjectName = tempProjectName + " " + getContext().getString(R.string.tasks_header_project_paused);
+			}
+		}
+		((TextView) v.findViewById(R.id.projectName)).setText(tempProjectName);
+		
+		// status text
+		String statusT = determineStatusText(listItem);
+		status.setText(statusT);
+		if(listItem.result.state == BOINCDefs.RESULT_ABORTED ||
+				listItem.result.state == BOINCDefs.RESULT_COMPUTE_ERROR ||
+				listItem.result.state == BOINCDefs.RESULT_FILES_DOWNLOADING ||
+				listItem.result.state == BOINCDefs.RESULT_FILES_UPLOADED ||
+				listItem.result.state == BOINCDefs.RESULT_FILES_UPLOADING ||
+				listItem.result.state == BOINCDefs.RESULT_READY_TO_REPORT ||
+				listItem.result.state == BOINCDefs.RESULT_UPLOAD_FAILED)
+			statusPercentage.setVisibility(View.GONE);
+		else {
+			statusPercentage.setVisibility(View.VISIBLE);
+			statusPercentage.setText(this.percentNumberFormat.format(listItem.result.fraction_done));
+		}
+		// --- end of independent view elements
+		
+		// progress bar: show when task active or expanded
+		// result and process state are overlapping, e.g. PROCESS_EXECUTING and RESULT_FILES_DOWNLOADING
+		// therefore check also whether task is active
+		final boolean active = (listItem.isTaskActive() && listItem.determineState() == BOINCDefs.PROCESS_EXECUTING);
+		if (active || listItem.expanded){
+			pb.setVisibility(View.VISIBLE);
+			pb.setIndeterminate(false);
+			pb.setProgressDrawable(this.activity.getResources().getDrawable(R.drawable.progressbar));
+			pb.setProgress(Math.round(listItem.result.fraction_done * pb.getMax()));
+		} else 
+			pb.setVisibility(View.GONE);
+		
+		// expansion
+		RelativeLayout rightColumnExpandWrapper = (RelativeLayout) v.findViewById(R.id.rightColumnExpandWrapper);
+		LinearLayout centerColumnExpandWrapper = (LinearLayout) v.findViewById(R.id.centerColumnExpandWrapper);
+		if(!listItem.expanded) {
+			// view is collapsed
+			expandButton.setImageResource(R.drawable.collapse);
+			rightColumnExpandWrapper.setVisibility(View.GONE);
+			centerColumnExpandWrapper.setVisibility(View.GONE);
+		} else {
+			// view is expanded
+			expandButton.setImageResource(R.drawable.expand);
+			rightColumnExpandWrapper.setVisibility(View.VISIBLE);
+			centerColumnExpandWrapper.setVisibility(View.VISIBLE);
+			
+			// elapsed time
+			final long elapsedTime;
+			// show time depending whether task is active or not
+			if (listItem.result.active_task) elapsedTime = (long)listItem.result.elapsed_time; //is 0 when task finished
+			else elapsedTime = (long)listItem.result.final_elapsed_time;
+			time.setText(DateUtils.formatElapsedTime(this.elapsedTimeStringBuilder, elapsedTime));
+			
+			// set deadline
+			this.deadlineDate.setTime(listItem.result.report_deadline * 1000);
+			final String deadline = DateFormat.getDateTimeInstance().format(this.deadlineDate);
+			((TextView) v.findViewById(R.id.deadline)).setText(deadline);
+			// set application friendly name
+			if(listItem.result.app != null) {
+				((TextView) v.findViewById(R.id.taskName)).setText(listItem.result.name);
+			}
+			
+			// buttons
+			ImageView suspendResume = (ImageView) v.findViewById(R.id.suspendResumeTask);
+			ImageView abortButton = (ImageView) v.findViewById(R.id.abortTask);
+			if(listItem.determineState() == BOINCDefs.PROCESS_ABORTED) { //dont show buttons for aborted task
+				rightColumnExpandWrapper.setVisibility(View.INVISIBLE);
+			} else {
+				if (listItem.nextState == -1) { // not waiting for new state
+					suspendResume.setOnClickListener(listItem.iconClickListener);
+
+					abortButton.setOnClickListener(listItem.iconClickListener);
+					abortButton.setTag(RpcClient.RESULT_ABORT); // tag on button specified operation triggered in iconClickListener
+					abortButton.setVisibility(View.VISIBLE);
+					
+					((ProgressBar)v.findViewById(R.id.request_progressBar)).setVisibility(View.GONE);
+
+					// checking what suspendResume button should be shown
+					if(listItem.result.suspended_via_gui) { // show play
+						suspendResume.setVisibility(View.VISIBLE);
+						suspendResume.setImageResource(R.drawable.resumetask);
+						suspendResume.setTag(RpcClient.RESULT_RESUME); // tag on button specified operation triggered in iconClickListener
+
+					} else if (listItem.determineState() == BOINCDefs.PROCESS_EXECUTING){ // show pause
+						suspendResume.setVisibility(View.VISIBLE);
+						suspendResume.setImageResource(R.drawable.pausetask);
+						suspendResume.setTag(RpcClient.RESULT_SUSPEND); // tag on button specified operation triggered in iconClickListener
+
+					} else { // show nothing
+						suspendResume.setVisibility(View.GONE);
+					}
+				} else {
+					// waiting for a new state
+					suspendResume.setVisibility(View.INVISIBLE);
+					abortButton.setVisibility(View.INVISIBLE);
+					((ProgressBar)v.findViewById(R.id.request_progressBar)).setVisibility(View.VISIBLE);
+				}
+			}
+		}
+
+		return v;
+	}
+	
+	private Bitmap getIcon(int position) {
+		// try to get current client status from monitor
+		//ClientStatus status;
+		try{
+			//status  = Monitor.getClientStatus();
+			return BOINCActivity.monitor.getProjectIcon(entries.get(position).result.project_url);
+		} catch (Exception e){
+			if(Logging.WARNING) Log.w(Logging.TAG,"TasksListAdapter: Could not load data, clientStatus not initialized.");
+			return null;
+		}
+		//return status.getProjectIcon(entries.get(position).result.project_url);
+	}
+
+	private String determineStatusText(TaskData tmp) {
+		
+		//read status
+		Integer status = tmp.determineState();
+		//if(Logging.DEBUG) Log.d(Logging.TAG,"determineStatusText for status: " + status);
+		
+		// custom state
+		if(status == BOINCDefs.RESULT_SUSPENDED_VIA_GUI) return activity.getString(R.string.tasks_custom_suspended_via_gui);
+		if(status == BOINCDefs.RESULT_PROJECT_SUSPENDED) return activity.getString(R.string.tasks_custom_project_suspended_via_gui);
+		if(status == BOINCDefs.RESULT_READY_TO_REPORT) return activity.getString(R.string.tasks_custom_ready_to_report);
+		
+		//active state
+		if(tmp.result.active_task) {
+			switch(status) {
+			case BOINCDefs.PROCESS_UNINITIALIZED:
+				return activity.getString(R.string.tasks_active_uninitialized);
+			case BOINCDefs.PROCESS_EXECUTING:
+				return activity.getString(R.string.tasks_active_executing);
+			case BOINCDefs.PROCESS_ABORT_PENDING:
+				return activity.getString(R.string.tasks_active_abort_pending);
+			case BOINCDefs.PROCESS_QUIT_PENDING:
+				return activity.getString(R.string.tasks_active_quit_pending);
+			case BOINCDefs.PROCESS_SUSPENDED:
+				return activity.getString(R.string.tasks_active_suspended);
+			default:
+				if(Logging.WARNING) Log.w(Logging.TAG,"determineStatusText could not map: " + tmp.determineState());
+				return "";
+			}
+		} else { 
+			// passive state
+			switch(status) {
+			case BOINCDefs.RESULT_NEW:
+				return activity.getString(R.string.tasks_result_new);
+			case BOINCDefs.RESULT_FILES_DOWNLOADING:
+				return activity.getString(R.string.tasks_result_files_downloading);
+			case BOINCDefs.RESULT_FILES_DOWNLOADED:
+				return activity.getString(R.string.tasks_result_files_downloaded);
+			case BOINCDefs.RESULT_COMPUTE_ERROR:
+				return activity.getString(R.string.tasks_result_compute_error);
+			case BOINCDefs.RESULT_FILES_UPLOADING:
+				return activity.getString(R.string.tasks_result_files_uploading);
+			case BOINCDefs.RESULT_FILES_UPLOADED:
+				return activity.getString(R.string.tasks_result_files_uploaded);
+			case BOINCDefs.RESULT_ABORTED:
+				return activity.getString(R.string.tasks_result_aborted);
+			case BOINCDefs.RESULT_UPLOAD_FAILED:
+				return activity.getString(R.string.tasks_result_upload_failed);
+			default:
+				if(Logging.WARNING) Log.w(Logging.TAG,"determineStatusText could not map: " + tmp.determineState());
+				return "";
+			}
+		}
+	}
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/AcctMgrFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/AcctMgrFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/AcctMgrFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/AcctMgrFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/BatchConflictListActivity.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/BatchConflictListActivity.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/BatchConflictListActivity.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/BatchConflictListActivity.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/BatchConflictListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/BatchConflictListAdapter.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/BatchConflictListAdapter.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/BatchConflictListAdapter.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/BatchProcessingActivity.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/BatchProcessingActivity.java
new file mode 100644
index 0000000..2e5f605
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/BatchProcessingActivity.java
@@ -0,0 +1,280 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2012 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+
+package edu.berkeley.boinc.attach;
+
+import java.util.ArrayList;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.utils.*;
+import edu.berkeley.boinc.BOINCActivity;
+import edu.berkeley.boinc.attach.ProjectAttachService.ProjectAttachWrapper;
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentStatePagerAdapter;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v4.view.ViewPager.OnPageChangeListener;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+public class BatchProcessingActivity extends FragmentActivity{
+	
+	private ProjectAttachService attachService = null;
+	private boolean asIsBound = false;
+	
+    private static final int NUM_HINTS = 3; // number of available hint screens
+    private ViewPager mPager; // pager widget, handles animation and horizontal swiping gestures
+    private PagerAdapter mPagerAdapter; // provides content to pager
+	private ArrayList<HintFragment> hints = new ArrayList<HintFragment>(); // hint fragments
+	
+	//header
+	private TextView hintTv;
+	private ImageView hintIvRight;
+	private ImageView hintIvLeft;
+	
+    @Override
+    public void onCreate(Bundle savedInstanceState) {  
+        super.onCreate(savedInstanceState);  
+        if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity onCreate"); 
+        
+		// setup layout
+        setContentView(R.layout.attach_project_batch_processing_layout); 
+        
+        hintTv = (TextView)findViewById(R.id.hint_header_text);
+        hintIvRight = (ImageView)findViewById(R.id.hint_header_image_right);
+        hintIvLeft = (ImageView)findViewById(R.id.hint_header_image_left);
+        
+        // create hint fragments
+        hints.add(HintFragment.newInstance(HintFragment.HINT_TYPE_CONTRIBUTION));
+        hints.add(HintFragment.newInstance(HintFragment.HINT_TYPE_PROJECTWEBSITE));
+        hints.add(HintFragment.newInstance(HintFragment.HINT_TYPE_PLATFORMS));
+        
+        // Instantiate a ViewPager and a PagerAdapter.
+        mPager = (ViewPager) findViewById(R.id.hint_container);
+        mPagerAdapter = new HintPagerAdapter(getSupportFragmentManager());
+        mPager.setAdapter(mPagerAdapter);
+        mPager.setOnPageChangeListener(new OnPageChangeListener() {
+			@Override
+			public void onPageScrollStateChanged(int arg0) {}
+			@Override
+			public void onPageScrolled(int arg0, float arg1, int arg2) {}
+			@Override
+			public void onPageSelected(int arg0) {
+				adaptHintHeader();
+			}
+        });
+        adaptHintHeader();
+        
+        doBindService();
+    }
+    
+	@Override
+	protected void onDestroy() {
+    	if(Logging.VERBOSE) Log.v(Logging.TAG, "BatchProcessingActivity onDestroy");
+	    super.onDestroy();
+    	doUnbindService();
+	}	
+
+    @Override
+    public void onBackPressed() {
+        if (mPager.getCurrentItem() == 0) {
+            // If the user is currently looking at the first step, allow the system to handle the
+            // Back button. This calls finish() on this activity and pops the back stack.
+            super.onBackPressed();
+        } else {
+            // Otherwise, select the previous step.
+            mPager.setCurrentItem(mPager.getCurrentItem() - 1);
+        }
+    }
+
+	// triggered by continue button
+	public void continueClicked(View v) {
+		boolean conflicts = attachService.unresolvedConflicts();
+		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.continueClicked: conflicts? " + conflicts);
+		
+		if(conflicts) {
+			// conflicts occured, bring up resolution screen
+			if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: conflicts exists, open resolution activity...");
+			Intent intent = new Intent(BatchProcessingActivity.this, BatchConflictListActivity.class);
+			intent.putExtra("conflicts", true);
+			startActivity(intent);
+		} else {
+			// everything successful, go back to projects screen and clear history
+			Intent intent = new Intent(this, BOINCActivity.class);
+			// add flags to return to main activity and clearing all others and clear the back stack
+			intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
+			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+			intent.putExtra("targetFragment", R.string.tab_projects); // make activity display projects fragment
+			startActivity(intent);
+		}
+	}
+
+	// triggered by share button
+	public void shareClicked(View v) {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.shareClicked.");
+		Intent intent=new Intent(android.content.Intent.ACTION_SEND);
+		intent.setType("text/plain");
+		intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+
+		// Add data to the intent, the receiving app will decide what to do with it.
+		intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.social_invite_content_title));
+		if (android.os.Build.MANUFACTURER.toUpperCase().equals("AMAZON")) {
+			intent.putExtra(Intent.EXTRA_TEXT, String.format(getString(R.string.social_invite_content_body), android.os.Build.MANUFACTURER, getString(R.string.social_invite_content_url_amazon)));
+		} else {
+			intent.putExtra(Intent.EXTRA_TEXT, String.format(getString(R.string.social_invite_content_body), android.os.Build.MANUFACTURER, getString(R.string.social_invite_content_url_google)));
+		}
+		startActivity(Intent.createChooser(intent, getString(R.string.social_invite_intent_title)));
+	}
+	
+	// adapts header text and icons when hint selection changes
+	private void adaptHintHeader() {
+		int position = mPager.getCurrentItem();
+		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.adaptHintHeader position: " + position);
+		String hintText = getString(R.string.attachproject_hints_header) + " " + (position + 1) + "/" + NUM_HINTS;
+		hintTv.setText(hintText);
+		int leftVisibility = View.VISIBLE;
+		int rightVisibility = View.VISIBLE;
+		if(position == 0) {
+			// first element reached
+			leftVisibility = View.GONE;
+		} else if (position == NUM_HINTS - 1) {
+			// last element reached
+			rightVisibility = View.GONE;
+		}
+		hintIvLeft.setVisibility(leftVisibility);
+		hintIvRight.setVisibility(rightVisibility);
+	}
+	
+	// previous image in hint header clicked
+	public void previousHintClicked(View view) {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.previousHintClicked.");
+		mPager.setCurrentItem(mPager.getCurrentItem() - 1);
+	}
+	
+	// previous image in hint header clicked
+	public void nextHintClicked(View view) {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.nextHintClicked.");
+		mPager.setCurrentItem(mPager.getCurrentItem() + 1);
+	}
+	
+	private ServiceConnection mASConnection = new ServiceConnection() {
+	    public void onServiceConnected(ComponentName className, IBinder service) {
+	        // This is called when the connection with the service has been established, getService returns 
+	    	// the Monitor object that is needed to call functions.
+	        attachService = ((ProjectAttachService.LocalBinder)service).getService();
+		    asIsBound = true;
+		    
+		    // start attaching projects
+		    new AttachProjectAsyncTask().execute();
+	    }
+
+	    public void onServiceDisconnected(ComponentName className) {
+	    	// This should not happen
+	    	attachService = null;
+	    	asIsBound = false;
+	    }
+	};
+	
+	private void doBindService() {
+		// bind to attach service
+		bindService(new Intent(this, ProjectAttachService.class), mASConnection, Service.BIND_AUTO_CREATE);
+	}
+
+	private void doUnbindService() {
+	    if (asIsBound) {
+	        // Detach existing connection.
+	        unbindService(mASConnection);
+	        asIsBound = false;
+	    }
+	}
+	
+	private class AttachProjectAsyncTask extends AsyncTask<Void, String, Void> {
+		
+		@Override
+		protected void onPreExecute() {
+			if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: " + attachService.getNumberSelectedProjects() + " projects to attach....");
+			((TextView) findViewById(R.id.attach_status_text)).setText(getString(R.string.attachproject_login_loading)); // shown while project configs are loaded
+			super.onPreExecute();
+		}
+
+		@Override
+		protected Void doInBackground(Void... arg0) {
+			// wait until service is ready
+			while(!attachService.projectConfigRetrievalFinished) {
+		    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: project config retrieval has not finished yet, wait...");
+		    	try{Thread.sleep(1000);} catch(Exception e){}
+			}
+	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: project config retrieval finished, continue with attach.");
+			// attach projects, one at a time
+			ArrayList<ProjectAttachWrapper> selectedProjects = attachService.getSelectedProjects();
+			for(ProjectAttachWrapper selectedProject: selectedProjects) {
+				if(selectedProject.result != ProjectAttachWrapper.RESULT_READY) continue; // skip already tried projects in batch processing
+	    		publishProgress(selectedProject.info.name);
+	    		int conflict = selectedProject.lookupAndAttach(false);
+	    		if(conflict != ProjectAttachWrapper.RESULT_SUCCESS) if(Logging.ERROR) Log.e(Logging.TAG,"AttachProjectAsyncTask attach returned conflict: " + conflict);
+	    	}
+	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: finsihed.");
+	    	return null;
+		}
+		
+		@Override
+		protected void onProgressUpdate(String... values) {
+	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: trying: " + values[0]);
+	    	((TextView) findViewById(R.id.attach_status_text)).setText(getString(R.string.attachproject_working_attaching) + " " + values[0]);
+			super.onProgressUpdate(values);
+		}
+
+		@Override
+		protected void onPostExecute(Void result) {
+			((LinearLayout) findViewById(R.id.attach_status_ongoing_wrapper)).setVisibility(View.GONE);
+			((Button) findViewById(R.id.continue_button)).setVisibility(View.VISIBLE);
+			((Button) findViewById(R.id.share_button)).setVisibility(View.VISIBLE);
+			super.onPostExecute(result);
+		}
+	}
+	
+	private class HintPagerAdapter extends FragmentStatePagerAdapter {
+		
+        public HintPagerAdapter(FragmentManager fm) {
+            super(fm);
+        }
+
+		@Override
+        public Fragment getItem(int position) {
+            return hints.get(position);
+        }
+
+        @Override
+        public int getCount() {
+            return NUM_HINTS;
+        }
+    }
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/CredentialInputActivity.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/CredentialInputActivity.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/CredentialInputActivity.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/CredentialInputActivity.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/HintFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/HintFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/HintFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/HintFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/IndividualCredentialInputFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/IndividualCredentialInputFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/IndividualCredentialInputFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/IndividualCredentialInputFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/ManualUrlInputFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/ManualUrlInputFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/ManualUrlInputFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/ManualUrlInputFragment.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/ProjectAttachService.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/ProjectAttachService.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/ProjectAttachService.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/ProjectAttachService.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/ProjectInfoFragment.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/ProjectInfoFragment.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/ProjectInfoFragment.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/ProjectInfoFragment.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/SelectionListActivity.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/SelectionListActivity.java
new file mode 100644
index 0000000..4ae4db1
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/SelectionListActivity.java
@@ -0,0 +1,298 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+
+package edu.berkeley.boinc.attach;
+
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.support.v4.app.FragmentActivity;
+import android.util.Log;
+import android.view.View;
+import android.widget.ListView;
+import android.widget.Toast;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.client.IMonitor;
+import edu.berkeley.boinc.client.Monitor;
+import edu.berkeley.boinc.rpc.ProjectInfo;
+import edu.berkeley.boinc.utils.Logging;
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+
+public class SelectionListActivity extends FragmentActivity{
+
+	private ListView lv;
+	ArrayList<ProjectListEntry> entries = new ArrayList<ProjectListEntry>();
+	ArrayList<ProjectInfo> selected = new ArrayList<ProjectInfo>();
+	
+	// services
+	private IMonitor monitor = null;
+	private boolean mIsBound = false;
+	private ProjectAttachService attachService = null;
+	private boolean asIsBound = false;
+	
+    @Override
+    public void onCreate(Bundle savedInstanceState) {  
+        super.onCreate(savedInstanceState);  
+         
+        if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectListActivity onCreate"); 
+        
+        doBindService();
+		
+		// setup layout
+        setContentView(R.layout.attach_project_list_layout);  
+		lv = (ListView) findViewById(R.id.listview);
+    }
+    
+	@Override
+	protected void onDestroy() {
+    	if(Logging.VERBOSE) Log.v(Logging.TAG, "AttachProjectListActivity onDestroy");
+    	doUnbindService();
+	    super.onDestroy();
+	}
+	
+	// check whether user has checked at least a single project
+	// shows toast otherwise
+	private Boolean checkProjectChecked() {
+		for(ProjectListEntry tmp: entries) {
+			if(tmp.checked) return true;
+		}
+    	Toast toast = Toast.makeText(getApplicationContext(), R.string.attachproject_list_header, Toast.LENGTH_SHORT);
+    	toast.show();
+    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectListActivity no project selected, stop!"); 
+		return false;
+	}
+	
+	// check whether device is online before starting connection attempt
+	// as needed for AttachProjectLoginActivity (retrieval of ProjectConfig)
+	// note: available internet does not guarantee connection to project server
+	// is possible!
+	private Boolean checkDeviceOnline() {
+	    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+	    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
+	    Boolean online = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
+	    if(!online) {
+	    	Toast toast = Toast.makeText(getApplicationContext(), R.string.attachproject_list_no_internet, Toast.LENGTH_SHORT);
+	    	toast.show();
+	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectListActivity not online, stop!"); 
+	    }
+	    return online;
+	}
+	
+	// triggered by continue button
+	public void continueClicked(View v) {
+		if(!checkProjectChecked()) return;
+		if(!checkDeviceOnline()) return;
+		
+		String selectedProjectsDebug = "";
+		// get selected projects
+		selected.clear();
+		for(ProjectListEntry tmp: entries) {
+			if(tmp.checked) {
+				selected.add(tmp.info);
+				selectedProjectsDebug += tmp.info.name + ",";
+			}
+		}
+		if(Logging.DEBUG) Log.d(Logging.TAG, "SelectionListActivity: selected projects: " + selectedProjectsDebug);
+		
+		attachService.setSelectedProjects(selected); // returns immediately
+		
+		// start credential input activity
+		startActivity(new Intent(this, CredentialInputActivity.class));
+	}
+	
+	private ServiceConnection mMonitorConnection = new ServiceConnection() {
+	    public void onServiceConnected(ComponentName className, IBinder service) {
+	        // This is called when the connection with the service has been established, getService returns 
+	    	// the Monitor object that is needed to call functions.
+	        monitor = IMonitor.Stub.asInterface(service);
+		    mIsBound = true;
+		    
+			UpdateProjectListAsyncTask task = new UpdateProjectListAsyncTask();
+			task.execute();
+	    }
+
+	    public void onServiceDisconnected(ComponentName className) {
+	    	// This should not happen
+	        monitor = null;
+		    mIsBound = false;
+	    }
+	};
+	
+	private ServiceConnection mASConnection = new ServiceConnection() {
+	    public void onServiceConnected(ComponentName className, IBinder service) {
+	        // This is called when the connection with the service has been established, getService returns 
+	    	// the Monitor object that is needed to call functions.
+	        attachService = ((ProjectAttachService.LocalBinder)service).getService();
+		    asIsBound = true;
+	    }
+
+	    public void onServiceDisconnected(ComponentName className) {
+	    	// This should not happen
+	    	attachService = null;
+	    	asIsBound = false;
+	    }
+	};
+	
+	private void doBindService() {
+		// start service to allow setForeground later on...
+		startService(new Intent(this, Monitor.class));
+	    // Establish a connection with the service, onServiceConnected gets called when
+		bindService(new Intent(this, Monitor.class), mMonitorConnection, Service.BIND_AUTO_CREATE);
+		// bind to attach service
+		bindService(new Intent(this, ProjectAttachService.class), mASConnection, Service.BIND_AUTO_CREATE);
+	}
+
+	private void doUnbindService() {
+	    if (mIsBound) {
+	        // Detach existing connection.
+	        unbindService(mMonitorConnection);
+	        mIsBound = false;
+	    }
+	    if (asIsBound) {
+	        // Detach existing connection.
+	        unbindService(mASConnection);
+	        asIsBound = false;
+	    }
+	}
+	
+    private class UpdateProjectListAsyncTask extends AsyncTask<Void, Void, ArrayList<ProjectInfo>> {
+        @Override
+        protected ArrayList<ProjectInfo> doInBackground(Void... arg0) {
+            ArrayList<ProjectInfo> data = null;
+            boolean retry = true;
+            // Try to get the project list for as long as the AsyncTask has not been canceled
+            while (retry) {
+                try {
+                    data = (ArrayList<ProjectInfo>)monitor.getAttachableProjects();
+                } catch (RemoteException e) {
+                    if (Log.isLoggable(Logging.TAG, Log.WARN)) Log.w(Logging.TAG, e);
+                }
+                if (super.isCancelled()) return data; // Does not matter if data == null or not
+                if (data == null) {
+                    if (Logging.WARNING) Log.w(Logging.TAG, "UpdateProjectListAsyncTask: failed to retrieve data, retry....");
+                    try {
+                        Thread.sleep(500);
+                    } catch (InterruptedException e) {
+                        if (Log.isLoggable(Logging.TAG, Log.DEBUG)) Log.d(Logging.TAG, e.getLocalizedMessage(), e);
+                    }
+                } else retry = false;
+            }
+            if (Logging.DEBUG) Log.d(Logging.TAG, "monitor.getAttachableProjects returned with " + data.size() + " elements");
+            // Clear current ProjectListEntries since we successfully have got new ProjectInfos
+            SelectionListActivity.this.entries.clear();
+            // Transform ProjectInfos into ProjectListEntries
+            for (int i = data.size() - 1; i >= 0; i--) {
+                if (super.isCancelled()) return data;
+                SelectionListActivity.this.entries.add(new ProjectListEntry(data.get(i)));
+            }
+            // Set preferred Collator for ProjectListEntries before sorting
+            if (SelectionListActivity.ProjectListEntry.collator == null) {
+                SelectionListActivity.ProjectListEntry.collator = SelectionListActivity.ProjectListEntry.getCollator();
+            }
+            // Sort ProjectListEntries off the UI thread
+            // Unfortunately, there is no way to stop this sort operation if this AsyncTask gets canceled
+            Collections.sort(SelectionListActivity.this.entries);
+            // Dispose Collator instance after sorting
+            SelectionListActivity.ProjectListEntry.collator = null;
+            return data;
+        }
+
+        protected final void onPostExecute(final ArrayList<ProjectInfo> result) {
+            if (result == null) return;
+
+            SelectionListActivity.this.entries.add(new ProjectListEntry()); // add account manager option to bottom of list
+            SelectionListAdapter listAdapter = new SelectionListAdapter(SelectionListActivity.this, R.id.listview,entries);
+            lv.setAdapter(listAdapter);
+        }
+    }
+	
+    static final class ProjectListEntry implements Comparable<SelectionListActivity.ProjectListEntry> {
+		public ProjectInfo info;
+		public boolean checked;
+		public boolean am; //indicates that element is account manager entry
+
+        /**
+         * The {@link Collator} used when comparing {@code ProjectListEntry}s.
+         * This member is usually only set when performing comparison operations
+         * in bulk. Otherwise, it should be set to {@code null} to avoid having
+         * a {@link Collator} instance lingering around when not attaching
+         * projects (most of the time). Furthermore, when comparing
+         * {@code ProjectListEntry}s in bulk the {@link Collator} instance
+         * stored by this member does not need to get reallocated and setup on
+         * every comparison.
+         *
+         * @see SelectionListActivity.ProjectListEntry#getCollator()
+         * @see Collator
+         */
+        static Collator collator;
+
+		public ProjectListEntry(ProjectInfo info) {
+			this.info = info;
+			this.checked = false;
+		}
+		
+		/**
+		 * Creates Account manager list object
+		 */
+		public ProjectListEntry() {
+			this.am = true;
+		}
+
+        /**
+         * Compares this {@code ProjectListEntry} instance to {@code p} based
+         * on {@link ProjectInfo#name}. The comparison is <i>case-insensitive</i>.
+         *
+         * @param p the {@code ProjectListEntry} to compare to
+         * @return {@code 0} if both {@link ProjectInfo#name}s are equal,<br>
+         * {@code -1} if {@code this} {@link ProjectInfo#name} comes before
+         * {@code p}'s {@link ProjectInfo#name} in the current locale's
+         * {@link Collator#getInstance() collation},<br>else {@code 1}
+         * @see SelectionListActivity.ProjectListEntry#info
+         * @see ProjectInfo#name
+         * @see Comparable#compareTo(T)
+         */
+        public final int compareTo(final SelectionListActivity.ProjectListEntry p) {
+            return (SelectionListActivity.ProjectListEntry.collator == null ?
+                SelectionListActivity.ProjectListEntry.getCollator() :
+                SelectionListActivity.ProjectListEntry.collator).compare(this.info.name, p.info.name);
+        }
+
+        /**
+         * Gets the preferred locale specific {@link Collator} for comparing {@code ProjectListEntry}s.
+         *
+         * @return the preferred {@link Collator}
+         */
+        static final Collator getCollator() {
+            final Collator collator;
+            (collator = Collator.getInstance()).setStrength(Collator.SECONDARY);
+            collator.setDecomposition(Collator.NO_DECOMPOSITION);
+            return collator;
+        }
+	}
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/SelectionListAdapter.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/SelectionListAdapter.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/attach/SelectionListAdapter.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/attach/SelectionListAdapter.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/AppPreferences.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/AppPreferences.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/client/AppPreferences.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/client/AppPreferences.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/ClientInterfaceImplementation.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/ClientInterfaceImplementation.java
new file mode 100644
index 0000000..0638148
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/ClientInterfaceImplementation.java
@@ -0,0 +1,496 @@
+package edu.berkeley.boinc.client;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import android.util.Log;
+import edu.berkeley.boinc.rpc.AccountIn;
+import edu.berkeley.boinc.rpc.AccountOut;
+import edu.berkeley.boinc.rpc.AcctMgrRPCReply;
+import edu.berkeley.boinc.rpc.GlobalPreferences;
+import edu.berkeley.boinc.rpc.Message;
+import edu.berkeley.boinc.rpc.Project;
+import edu.berkeley.boinc.rpc.ProjectAttachReply;
+import edu.berkeley.boinc.rpc.ProjectConfig;
+import edu.berkeley.boinc.rpc.ProjectInfo;
+import edu.berkeley.boinc.rpc.RpcClient;
+import edu.berkeley.boinc.rpc.Transfer;
+import edu.berkeley.boinc.utils.BOINCErrors;
+import edu.berkeley.boinc.utils.Logging;
+
+/**
+ * Class implements RPC commands with the client
+ * extends RpcClient with polling, re-try and other mechanisms
+ * Most functions can block executing thread, do not call them from UI thread!
+ */
+public class ClientInterfaceImplementation extends RpcClient{
+	
+	// interval between polling retries in ms
+	private final Integer minRetryInterval = 1000;
+    
+    /**
+     * Reads authentication key from specified file path and authenticates GUI for advanced RPCs with the client
+     * @param authFilePath absolute path to file containing gui authentication key
+     * @return success
+     */
+    public Boolean authorizeGuiFromFile(String authFilePath) {
+    	String authToken = readAuthToken(authFilePath);
+		return authorize(authToken); 
+    }
+
+    /**
+     * Sets run mode of BOINC client
+     * @param mode see class BOINCDefs
+     * @return success
+     */
+	public Boolean setRunMode(Integer mode) {
+		return setRunMode(mode, 0);
+	}
+	
+    /**
+     * Sets network mode of BOINC client
+     * @param mode see class BOINCDefs
+     * @return success
+     */
+	public Boolean setNetworkMode(Integer mode) {
+		return setNetworkMode(mode, 0);
+	}
+	
+	/**
+	 * Writes the given GlobalPreferences via RPC to the client. After writing, the active preferences are read back and written to ClientStatus.
+	 * @param prefs new target preferences for the client
+	 * @return success
+	 */
+	public Boolean setGlobalPreferences(GlobalPreferences prefs) {
+
+		// try to get current client status from monitor
+		ClientStatus status = null;
+		try{
+			status  = Monitor.getClientStatus();
+		} catch (Exception e){
+			if(Logging.WARNING) Log.w(Logging.TAG,"Monitor.setGlobalPreferences: Could not load data, clientStatus not initialized.");
+			return false;
+		}
+
+		Boolean retval1 = setGlobalPrefsOverrideStruct(prefs); //set new override settings
+		Boolean retval2 = readGlobalPrefsOverride(); //trigger reload of override settings
+		if(!retval1 || !retval2) {
+			return false;
+		}
+		GlobalPreferences workingPrefs = getGlobalPrefsWorkingStruct();
+		if(workingPrefs != null){
+			status.setPrefs(workingPrefs);
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * Reads authentication token for GUI RPC authentication from file
+	 * @param authFilePath absolute path to file containing GUI RPC authentication
+	 * @return GUI RPC authentication code
+	 */
+	public String readAuthToken(String authFilePath) {
+    	StringBuffer fileData = new StringBuffer(100);
+    	char[] buf = new char[1024];
+    	int read = 0;
+    	try{
+    		File authFile = new File(authFilePath);
+    		BufferedReader br = new BufferedReader(new FileReader(authFile));
+    		while((read=br.read(buf)) != -1){
+    	    	String readData = String.valueOf(buf, 0, read);
+    	    	fileData.append(readData);
+    	    	buf = new char[1024];
+    	    }
+    		br.close();
+    	}
+    	catch (FileNotFoundException fnfe) {
+    		if(Logging.ERROR) Log.e(Logging.TAG, "auth file not found",fnfe);
+    	}
+    	catch (IOException ioe) {
+    		if(Logging.ERROR) Log.e(Logging.TAG, "ioexception",ioe);
+    	}
+
+		String authKey = fileData.toString();
+		if(Logging.DEBUG) Log.d(Logging.TAG, "authentication key acquired. length: " + authKey.length());
+		return authKey;
+	}
+	
+	/**
+	 * Reads project configuration for specified master URL.
+	 * @param url master URL of the project
+	 * @return project configuration information
+	 */
+	public ProjectConfig getProjectConfigPolling(String url) {
+		ProjectConfig config = null;
+		
+    	Boolean success = getProjectConfig(url); //asynchronous call
+    	if(success) { //only continue if attach command did not fail
+    		// verify success of getProjectConfig with poll function
+    		Boolean loop = true;
+    		while(loop) {
+    			loop = false;
+    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
+    			config = getProjectConfigPoll();
+    			if(config==null) {
+    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.getProjectConfigPolling: returned null.");
+    				return null;
+    			}
+    			if (config.error_num == BOINCErrors.ERR_IN_PROGRESS) {
+    				loop = true; //no result yet, keep looping
+    			} else {
+    				//final result ready
+    				if(config.error_num == 0) { 
+        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.getProjectConfigPolling: ProjectConfig retrieved: " + config.name);
+    				} else {
+    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.getProjectConfigPolling: final result with error_num: " + config.error_num);
+    				}
+    			}
+    		}
+    	}
+		return config;
+	}
+	
+	/**
+	 * Attaches project, requires authenticator
+	 * @param url URL of project to be attached, either masterUrl(HTTP) or webRpcUrlBase(HTTPS)
+	 * @param projectName name of project as shown in the manager
+	 * @param authenticator user authentication key, has to be obtained first
+	 * @return success
+	 */
+	
+	public Boolean attachProject(String url, String projectName, String authenticator) {
+    	Boolean success = projectAttach(url, authenticator, projectName); //asynchronous call to attach project
+    	if(success) {
+    		// verify success of projectAttach with poll function
+    		ProjectAttachReply reply = projectAttachPoll();
+    		while(reply != null && reply.error_num == BOINCErrors.ERR_IN_PROGRESS) { // loop as long as reply.error_num == BOINCErrors.ERR_IN_PROGRESS
+    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
+    			reply = projectAttachPoll();
+    		}
+    		if(reply != null && reply.error_num == BOINCErrors.ERR_OK) return true;
+    	} else if(Logging.DEBUG) Log.d(Logging.TAG, "rpc.projectAttach failed.");
+    	return false;
+    }
+	
+	/**
+	 * Checks whether project of given master URL is currently attached to BOINC client
+	 * @param url master URL of the project
+	 * @return true if attached
+	 */
+	
+	public Boolean checkProjectAttached(String url) {
+		Boolean match = false;
+		try{
+			ArrayList<Project> attachedProjects = getProjectStatus();
+			for (Project project: attachedProjects) {
+				if(Logging.DEBUG) Log.d(Logging.TAG, project.master_url + " vs " + url);
+				if(project.master_url.equals(url)) {
+					match = true;
+					continue;
+				}
+			}
+		} catch(Exception e){}
+		return match;
+	}
+	
+	/**
+	 * Looks up account credentials for given user data.
+	 * Contains authentication key for project attachment.
+	 * @param url URL of project, either masterUrl(HTTP) or webRpcUrlBase(HTTPS)
+	 * @param id user ID, can be either name or eMail, see usesName
+	 * @param pwd password
+	 * @param usesName if true, id represents a user name, if not, the user's email address
+	 * @return account credentials
+	 */
+	
+	public AccountOut lookupCredentials(AccountIn credentials) {
+    	AccountOut auth = null;
+    	Boolean success = lookupAccount(credentials); //asynch
+    	if(success) {
+    		// get authentication token from lookupAccountPoll
+    		Boolean loop = true;
+    		while(loop) {
+    			loop = false;
+    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
+    			auth = lookupAccountPoll();
+    			if(auth==null) {
+    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.lookupCredentials: returned null.");
+    				return null;
+    			}
+    			if (auth.error_num == BOINCErrors.ERR_IN_PROGRESS) {
+    				loop = true; //no result yet, keep looping
+    			} else {
+    				//final result ready
+    				if(auth.error_num == 0) { 
+        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.lookupCredentials: authenticator retrieved.");
+    				} else {
+    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.lookupCredentials: final result with error_num: " + auth.error_num);
+    				}
+    			}
+    		}
+    	} else if(Logging.DEBUG) Log.d(Logging.TAG, "rpc.lookupAccount failed.");
+    	return auth;
+    }
+	
+	/**
+	 * Sets cc_config.xml entries and triggers activation in BOINC client.
+	 * Used to set debug log flags.
+	 * @param ccConfig string of all cc_config flags
+	 */
+	public void setCcConfigAndActivate(String ccConfig) {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "Monitor.setCcConfig: current cc_config: " + getCcConfig());
+		if(Logging.DEBUG) Log.d(Logging.TAG, "Monitor.setCcConfig: setting new cc_config: " + ccConfig);
+		setCcConfig(ccConfig);
+		readCcConfig();
+	}
+	
+	/**
+	 * Runs transferOp for a list of given transfers.
+	 * E.g. batch pausing of transfers
+	 * @param transfers list of transfered operation gets executed for
+	 * @param operation see BOINCDefs
+	 * @return success
+	 */
+	
+	public Boolean transferOperation(ArrayList<Transfer> transfers, int operation) {
+		Boolean success = true;
+		for (Transfer transfer: transfers) {
+			success = success && transferOp(operation, transfer.project_url, transfer.name);
+			if(Logging.DEBUG) Log.d(Logging.TAG, "transfer: " + transfer.name + " " + success);
+		}
+		return success;
+	}
+	
+	/**
+	 * Creates account for given user information and returns account credentials if successful.
+	 * @param url master URL of project
+	 * @param email email address of user
+	 * @param userName user name of user
+	 * @param pwd password
+	 * @param teamName name of team, account shall get associated to
+	 * @return account credentials (see status inside, to check success)
+	 */
+	
+	public AccountOut createAccountPolling(AccountIn information) {
+		AccountOut auth = null;
+		
+    	Boolean success = createAccount(information); //asynchronous call to attach project
+    	if(success) {
+    		Boolean loop = true;
+    		while(loop) {
+    			loop = false;
+    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
+    			auth = createAccountPoll();
+    			if(auth==null) {
+    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.createAccountPolling: returned null.");
+    				return null;
+    			}
+    			if (auth.error_num == BOINCErrors.ERR_IN_PROGRESS) {
+    				loop = true; //no result yet, keep looping
+    			} else {
+    				//final result ready
+    				if(auth.error_num == 0) { 
+        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.createAccountPolling: authenticator retrieved.");
+    				} else {
+    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.createAccountPolling: final result with error_num: " + auth.error_num);
+    				}
+    			}
+    		}
+    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.createAccount returned false.");}
+    	return auth;
+	}
+	
+	/**
+	 * Adds account manager to BOINC client.
+	 * There can only be a single acccount manager be active at a time.
+	 * @param url URL of account manager
+	 * @param userName
+	 * @param pwd
+	 * @return status of attachment
+	 */
+	
+	public AcctMgrRPCReply addAcctMgr(String url, String userName, String pwd) {
+		AcctMgrRPCReply reply = null;
+    	Boolean success = acctMgrRPC(url, userName, pwd); 
+    	if(success) {
+    		Boolean loop = true;
+    		while(loop) {
+    			reply = acctMgrRPCPoll();
+    			if(reply == null || reply.error_num != BOINCErrors.ERR_IN_PROGRESS) {
+    				loop = false;
+    				//final result ready
+    				if(reply == null) {if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.addAcctMgr: failed, reply null.");}
+    				else {if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.addAcctMgr: returned " + reply.error_num);}
+    			} else try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
+    		}
+    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.acctMgrRPC returned false.");}
+    	return reply;
+	}
+	
+	
+	/**
+	 * Synchronized BOINC client projects with information of account manager.
+	 * Sequence copied from BOINC's desktop manager.
+	 * @param url URL of account manager
+	 * @return success
+	 */
+	public Boolean synchronizeAcctMgr(String url) {
+
+	// 1st get_project_config for account manager url
+		Boolean success = false;
+		ProjectConfig reply = null;
+		success = getProjectConfig(url);
+    	if(success) {
+    		Boolean loop = true;
+    		while(loop) {
+    			loop = false;
+    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
+    			reply = getProjectConfigPoll();
+    			if(reply==null) {
+    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: getProjectConfigreturned null.");
+    				return null;
+    			}
+    			if (reply.error_num == BOINCErrors.ERR_IN_PROGRESS) {
+    				loop = true; //no result yet, keep looping
+    			} else {
+    				//final result ready
+    				if(reply.error_num == 0) { 
+        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: project config retrieved.");
+    				} else {
+    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: final result with error_num: " + reply.error_num);
+    				}
+    			}
+    		}
+    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.getProjectConfig returned false.");}
+		
+    // 2nd acct_mgr_rpc with <use_config_file/>
+		success = false;
+		AcctMgrRPCReply reply2 = null;
+    	success = acctMgrRPC(); //asynchronous call to synchronize account manager
+    	if(success) {
+    		Boolean loop = true;
+    		while(loop) {
+    			loop = false;
+    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
+    			reply2 = acctMgrRPCPoll();
+    			if(reply2==null) {
+    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: acctMgrRPCPoll returned null.");
+    				return null;
+    			}
+    			if (reply2.error_num == BOINCErrors.ERR_IN_PROGRESS) {
+    				loop = true; //no result yet, keep looping
+    			} else {
+    				//final result ready
+    				if(reply2.error_num == 0) { 
+        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: acct mngr reply retrieved.");
+    				} else {
+    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: final result with error_num: " + reply2.error_num);
+    				}
+    			}
+    		}
+    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.acctMgrRPC returned false.");}
+		
+		return true;
+	}
+	
+	@Override
+	public boolean setCcConfig(String ccConfig) {
+		// set CC config and trigger re-read.
+		super.setCcConfig(ccConfig);
+		return super.readCcConfig();
+	}
+
+	/**
+	 * Returns List of event log messages
+	 * @param seqNo lower bound of sequence number
+	 * @param number number of messages returned max, can be less
+	 * @return list of messages
+	 */
+	
+	// returns given number of client messages, older than provided seqNo
+	// if seqNo <= 0 initial data retrieval
+	public ArrayList<Message> getEventLogMessages(int seqNo, int number) {
+		// determine oldest message seqNo for data retrieval
+		int lowerBound = 0;
+		if(seqNo > 0) lowerBound = seqNo - number - 2;
+		else lowerBound = getMessageCount() - number - 1; // can result in >number results, if client writes message btwn. here and rpc.getMessages!
+		
+		// less than desired number of messsages available, adapt lower bound
+		if(lowerBound < 0) lowerBound = 0;
+		ArrayList<Message> msgs= getMessages(lowerBound); // returns ever messages with seqNo > lowerBound
+		if(msgs == null) msgs = new ArrayList<Message>(); // getMessages might return null in case of parsing or IO error
+		
+		if(seqNo > 0) {
+			// remove messages that are >= seqNo
+			Iterator<Message> it = msgs.iterator();
+			while(it.hasNext()) {
+				Message tmp = it.next();
+				if (tmp.seqno >= seqNo) it.remove();
+			}
+		}
+		
+		if(!msgs.isEmpty()) 
+			if(Logging.DEBUG) Log.d(Logging.TAG,"getEventLogMessages: returning array with " + msgs.size() + " entries. for lowerBound: " + lowerBound + " at 0: " + msgs.get(0).seqno + " at " + (msgs.size()-1) + ": " + msgs.get(msgs.size()-1).seqno);
+		else 
+			if(Logging.DEBUG) Log.d(Logging.TAG,"getEventLogMessages: returning empty array for lowerBound: " + lowerBound);
+		return msgs;
+	}
+	
+	/**
+	 * Returns list of projects from all_projects_list.xml that...
+	 * - support Android
+	 * - support CPU architecture
+	 * - are not yet attached
+	 * @return list of attachable projects
+	 */
+	public ArrayList<ProjectInfo> getAttachableProjects(String boincPlatformName, String boincAltPlatformName) {
+		if(Logging.DEBUG) Log.d(Logging.TAG, "getAttachableProjects for platform: " + boincPlatformName + " or " + boincAltPlatformName);
+		
+		ArrayList<ProjectInfo> allProjectsList = getAllProjectsList(); // all_proejcts_list.xml
+		ArrayList<Project> attachedProjects = getState().projects; // currently attached projects
+		
+		ArrayList<ProjectInfo> attachableProjects = new ArrayList<ProjectInfo>(); // array to be filled and returned
+		
+		if(allProjectsList == null || attachedProjects == null) return null;
+		
+		//filter projects that do not support Android
+		for (ProjectInfo candidate: allProjectsList) {
+			// check whether already attached
+			Boolean alreadyAttached = false;
+			for(Project attachedProject: attachedProjects) {
+				if(attachedProject.master_url.equals(candidate.url)) {
+					alreadyAttached = true;
+					break;
+				}
+			}
+			if(alreadyAttached) continue;
+			
+			// project is not yet attached, check whether it supports CPU architecture
+			for(String supportedPlatform: candidate.platforms) {
+				if(supportedPlatform.contains(boincPlatformName) || supportedPlatform.contains(boincAltPlatformName)) {
+					// project is not yet attached and does support platform
+					// add to list, if not already in it
+					if(!attachableProjects.contains(candidate) )attachableProjects.add(candidate);
+					break;
+				}
+			}
+		}
+		
+		if(Logging.DEBUG) Log.d(Logging.TAG, "getAttachableProjects: number of candidates found: " + attachableProjects.size());
+		return attachableProjects;
+	}
+	
+	public ProjectInfo getProjectInfo(String url) {
+		ArrayList<ProjectInfo> allProjectsList = getAllProjectsList(); // all_proejcts_list.xml
+		for(ProjectInfo tmp: allProjectsList) {
+			if(tmp.url.equals(url)) return tmp;
+		}
+		if(Logging.ERROR) Log.e(Logging.TAG, "getProjectInfo: could not find info for: " + url);
+		return null;
+	}
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/ClientNotification.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/ClientNotification.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/client/ClientNotification.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/client/ClientNotification.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/ClientStatus.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/client/ClientStatus.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/DeviceStatus.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/DeviceStatus.java
new file mode 100644
index 0000000..33c646a
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/DeviceStatus.java
@@ -0,0 +1,263 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.client;
+
+import edu.berkeley.boinc.rpc.DeviceStatusData;
+import edu.berkeley.boinc.utils.*;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.BatteryManager;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+public class DeviceStatus {
+	
+	// variables describing device status in RPC
+	private DeviceStatusData status = new DeviceStatusData();
+	
+	// additional device status
+	private boolean stationaryDeviceMode = false; // true, if operating in stationary device mode
+	private boolean stationaryDeviceSuspected = false; // true, if API returns no battery. offer preference to go into stationary device mode
+	private boolean screenOn = true;
+
+	// android specifics
+	private Context ctx;// context required for reading device status
+	private ConnectivityManager connManager; // connManager contains current wifi status
+	private TelephonyManager telManager; // telManager to retrieve call state
+	private Intent batteryStatus; // sticky intent, extras of Intent contain status, see BatteryManager.
+	private AppPreferences appPrefs; // manager based preferences
+	
+	/**
+	 * Constructor. Needs to be called before calling update.
+	 * @param ctx Application Context
+	 */
+	public DeviceStatus(Context ctx, AppPreferences appPrefs) {
+		this.ctx = ctx;
+		this.connManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
+		this.telManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
+		this.batteryStatus = ctx.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+		this.appPrefs = appPrefs;
+	}
+	
+	/**
+	 * Updates device status and returns the newly received values
+	 * @param screenOn indicator whether device screen is currently on (checked in Monitor)
+	 * @return DeviceStatusData, wrapper for device status
+	 * @throws Exception if error occurs
+	 */
+	public DeviceStatusData update(Boolean screenOn) throws Exception {
+		if(ctx == null) throw new Exception ("DeviceStatus: can not update, Context not set.");
+		this.screenOn = screenOn;
+		
+		Boolean change = determineBatteryStatus();
+		change = change | determineNetworkStatus();
+		change = change | determineUserActive();
+		
+		if(change) if(Logging.DEBUG) Log.i(Logging.TAG, "change: " + change +
+													" - stationary device: " + stationaryDeviceMode + 
+													" ; ac: " + status.on_ac_power + 
+													" ; level: " + status.battery_charge_pct + 
+													" ; temperature: " + status.battery_temperature_celsius + 
+													" ; wifi: " + status.wifi_online + 
+													" ; user active: " + status.user_active);
+		
+		return status;
+	}
+	
+	/**
+	 * Returns latest device status, without updating it.
+	 * If you need a up-to-date status, call udpate() instead.
+	 * @return DeviceStatusData, wrapper for device status, contains data retrieved upon last update. Might be in initial state, if no update has successfully finished.
+	 */
+	public DeviceStatusData getStatus() {
+		return status;
+	}
+	
+	/**
+	 * Returns whether API indicates that device does not have a battery
+	 * Not a reliable indicator, e.g. on Galaxy Nexus.
+	 * Offer stationary device mode preference based on its return value.
+	 * @return true, if Android indicates absence of battery
+	 */
+	public Boolean isStationaryDeviceSuspected() {
+		return stationaryDeviceSuspected;
+	}
+	
+	/**
+	 * Determines whether user is considered active.
+	 * Decision is also based on App preferences. User is considered active, when:
+	 * - telephone is active (call)
+	 * - screen is on AND preference "suspendWhenScreenOn" set AND NOT preference "stationaryDeviceMode" set
+	 * @return true, if change since last run
+	 * @throws Exception if error occurs
+	 */
+	private Boolean determineUserActive() throws Exception {
+		Boolean change = false;
+		Boolean newUserActive = status.user_active;
+		int telStatus = telManager.getCallState();
+		
+		if(telStatus != TelephonyManager.CALL_STATE_IDLE) {
+			newUserActive = true;
+		} else if(screenOn && appPrefs.getSuspendWhenScreenOn() && !appPrefs.getStationaryDeviceMode()) {
+			newUserActive = true;
+		} else {
+			newUserActive = false;
+		}
+		
+		if(status.user_active != newUserActive) {
+			change = true;
+			status.user_active = newUserActive;
+		}
+		
+		return change;
+	}
+	
+	/**
+	 * Determines type of currently active network. Treats Ethernet as Wifi.
+	 * @return true, if change since last run
+	 * @throws Exception if error occurs
+	 */
+	private Boolean determineNetworkStatus() throws Exception {
+		Boolean change = false;
+		NetworkInfo activeNetwork = connManager.getActiveNetworkInfo();
+		int networkType = -1;
+		if(activeNetwork != null) networkType = activeNetwork.getType();
+		if(networkType == ConnectivityManager.TYPE_WIFI || networkType == 9) { // 9 = ConnectivityManager.TYPE_ETHERNET
+			//wifi or ethernet is online
+			if(!status.wifi_online) {
+				change = true; // if different from before, set flag
+				if(Logging.ERROR) Log.d(Logging.TAG, "Unlmited internet connection - wifi or ethernet - found. type: " + networkType); 
+			}
+			status.wifi_online = true;
+		} else {
+			//wifi and ethernet are offline
+			if(status.wifi_online) change = true; // if different from before, set flag
+			status.wifi_online = false;
+		}
+		return change;
+	}
+	
+	/**
+	 * Determines battery status of device
+	 * @return true, if change since last run
+	 * @throws Exception if error occurs
+	 */
+	private Boolean determineBatteryStatus() throws Exception{
+		// check battery
+		Boolean change = false;
+		batteryStatus = ctx.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+		if(batteryStatus != null){
+			stationaryDeviceSuspected = !batteryStatus.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true); // if no battery present, suspect stationary device
+			if(appPrefs.getStationaryDeviceMode() && stationaryDeviceSuspected) {
+				// API says no battery present (not reliable, e.g. Galaxy Nexus)
+				// AND stationary device mode is enabled in preferences
+				
+				if(!stationaryDeviceMode) { // should not change during run-time. just triggered on initial read
+					change = true;
+					if(Logging.ERROR) Log.d(Logging.TAG, "No battery found and stationary device mode enabled in preferences -> skip battery status parsing"); 
+				}
+				stationaryDeviceMode = true;
+				setAttributesForStationaryDevice();
+			} else {
+				// battery present OR stationary device mode not enabled
+				// parse and report actual values to client
+				
+				if(stationaryDeviceMode) change = true;
+				stationaryDeviceMode = false;
+			
+				// calculate charging level
+				int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
+				int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
+				if(level == -1 || scale == -1) throw new Exception("battery level parsing error");
+				int batteryPct = (int) ((level / (float) scale) * 100); // always rounds down
+				if(batteryPct < 0 || batteryPct > 100) throw new Exception("battery level parsing error");
+				if(batteryPct != status.battery_charge_pct) {
+					status.battery_charge_pct = batteryPct;
+					change = true;
+				}
+				
+				// temperature
+				int temperature = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1) / 10; // always rounds down
+				if(temperature < 0) throw new Exception("temperature parsing error");
+				if(temperature != status.battery_temperature_celsius) {
+					status.battery_temperature_celsius = temperature;
+					change = true;
+				}
+				
+				// plugged in
+				// treat all charging modes uniformly on client side,
+				// adapt on_ac_power according to power source preferences defined in manager
+				int plugged = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
+				change = change | setAttributesForChargerType(plugged);
+			}
+		} else throw new Exception ("battery intent null");
+		return change;
+	}
+	
+	/**
+	 * Sets attributes of DeviceStatusData according to stationary device.
+	 * If stationary device, allow computation independently of battery status,
+	 * is not handled in the client, but positive values are simulated here.
+	 * The policy might be subject to change.
+	 */
+	private void setAttributesForStationaryDevice() {
+		status.on_ac_power = true;
+		status.battery_temperature_celsius = 0;
+		status.battery_charge_pct = 100;
+	}
+	
+	/**
+	 * Sets attributes of DeviceStatusData according to manager based power source preference.
+	 * Client is not aware of power source preference, adapt value of on_ac_power, according
+	 * to the conformance of the actual charger type with the manager based preference.
+	 * This policy might be subject to change.
+	 * @param chargerType
+	 * @return true, if change since last run
+	 */
+	private Boolean setAttributesForChargerType(int chargerType) {
+		Boolean change = false;
+		Boolean enabled = false;
+
+		switch (chargerType) {
+		case BatteryManager.BATTERY_PLUGGED_AC:
+			enabled = appPrefs.getPowerSourceAc();
+			break;
+		case 4: // constant BATTERY_PLUGGED_WIRELESS, only defined in API Level 17
+			enabled = appPrefs.getPowerSourceWireless();
+			break;
+		case BatteryManager.BATTERY_PLUGGED_USB:
+			enabled = appPrefs.getPowerSourceUsb();
+			break;
+		}
+		
+		if(enabled) {
+			if(!status.on_ac_power) change = true; // if different from before, set flag
+			status.on_ac_power = true;
+		} else {
+			if(status.on_ac_power) change = true;
+			status.on_ac_power = false;
+		}
+		
+		return change;
+	}
+}
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/Monitor.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/Monitor.java
new file mode 100644
index 0000000..582ab5c
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/Monitor.java
@@ -0,0 +1,1306 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2012 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.client;
+
+import edu.berkeley.boinc.utils.*;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Timer;
+import java.util.TimerTask;
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.Bitmap;
+import android.os.AsyncTask;
+import android.os.Build;
+import android.os.IBinder;
+import android.os.PowerManager;
+import android.os.RemoteException;
+import android.util.Log;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.mutex.BoincMutex;
+import edu.berkeley.boinc.rpc.AccountIn;
+import edu.berkeley.boinc.rpc.AccountOut;
+import edu.berkeley.boinc.rpc.AcctMgrRPCReply;
+import edu.berkeley.boinc.rpc.CcState;
+import edu.berkeley.boinc.rpc.CcStatus;
+import edu.berkeley.boinc.rpc.GlobalPreferences;
+import edu.berkeley.boinc.rpc.HostInfo;
+import edu.berkeley.boinc.rpc.ImageWrapper;
+import edu.berkeley.boinc.rpc.Message;
+import edu.berkeley.boinc.rpc.Notice;
+import edu.berkeley.boinc.rpc.Project;
+import edu.berkeley.boinc.rpc.ProjectConfig;
+import edu.berkeley.boinc.rpc.ProjectInfo;
+import edu.berkeley.boinc.rpc.Result;
+import edu.berkeley.boinc.rpc.Transfer;
+import edu.berkeley.boinc.rpc.AcctMgrInfo;
+
+/**
+ * Main Service of BOINC on Android
+ * - manages life-cycle of the BOINC Client.
+ * - frequently polls the latest status of the client (e.g. running tasks, attached projects etc)
+ * - reports device status (e.g. battery level, connected to charger etc) to the client
+ * - holds singleton of client status data model and applications persistent preferences
+ */
+public class Monitor extends Service {
+	
+	private static BoincMutex mutex = new BoincMutex(); // holds the BOINC mutex, only compute if acquired
+	private static ClientStatus clientStatus; //holds the status of the client as determined by the Monitor
+	private static AppPreferences appPrefs; //hold the status of the app, controlled by AppPreferences
+	private static DeviceStatus deviceStatus; // holds the status of the device, i.e. status information that can only be obtained trough Java APIs
+	
+	public ClientInterfaceImplementation clientInterface = new ClientInterfaceImplementation(); //provides functions for interaction with client via rpc
+	
+	// XML defined variables, populated in onCreate
+	private String fileNameClient; 
+	private String fileNameCLI; 
+	private String fileNameCABundle; 
+	private String fileNameClientConfig; 
+	private String fileNameGuiAuthentication; 
+	private String fileNameAllProjectsList; 
+	private String boincWorkingDir; 
+	private Integer clientStatusInterval;
+	private Integer deviceStatusIntervalScreenOff;
+	private String clientSocketAddress;
+	
+	private Timer updateTimer = new Timer(true); // schedules frequent client status update
+	private TimerTask statusUpdateTask = new StatusUpdateTimerTask();
+	private boolean updateBroadcastEnabled = false;
+	private Integer screenOffStatusOmitCounter = 0;
+	
+	// screen on/off updated by screenOnOffBroadcastReceiver
+	private boolean screenOn = false;
+	
+	private boolean forceReinstall = false; // for debugging purposes //TODO
+
+    @Override
+    public IBinder onBind(Intent intent) {
+    	if(Logging.DEBUG) Log.d(Logging.TAG,"Monitor onBind");
+        return mBinder;
+    }
+	
+	@Override
+    public void onCreate() {
+		
+		Log.d(Logging.TAG,"Monitor onCreate()");
+		
+		// populate attributes with XML resource values
+		boincWorkingDir = getString(R.string.client_path); 
+		fileNameClient = getString(R.string.client_name); 
+		fileNameCLI = getString(R.string.client_cli); 
+		fileNameCABundle = getString(R.string.client_cabundle); 
+		fileNameClientConfig = getString(R.string.client_config); 
+		fileNameGuiAuthentication = getString(R.string.auth_file_name); 
+		fileNameAllProjectsList = getString(R.string.all_projects_list); 
+		clientStatusInterval = getResources().getInteger(R.integer.status_update_interval_ms);
+		deviceStatusIntervalScreenOff = getResources().getInteger(R.integer.device_status_update_screen_off_every_X_loop);
+		clientSocketAddress = getString(R.string.client_socket_address); 
+		
+		// initialize singleton helper classes and provide application context
+		clientStatus = new ClientStatus(this);
+		getAppPrefs().readPrefs(this);
+		deviceStatus = new DeviceStatus(this, getAppPrefs());
+		if(Logging.ERROR) Log.d(Logging.TAG,"Monitor onCreate(): singletons initialized");
+		
+		// set current screen on/off status
+		PowerManager pm = (PowerManager)
+		getSystemService(Context.POWER_SERVICE);
+		screenOn = pm.isScreenOn();
+		
+		// initialize DeviceStatus wrapper
+		deviceStatus = new DeviceStatus(getApplicationContext(), getAppPrefs());
+		
+		// register screen on/off receiver
+        IntentFilter onFilter = new IntentFilter (Intent.ACTION_SCREEN_ON); 
+        IntentFilter offFilter = new IntentFilter (Intent.ACTION_SCREEN_OFF); 
+        registerReceiver(screenOnOffReceiver, onFilter);
+        registerReceiver(screenOnOffReceiver, offFilter);
+	}
+	
+    @Override
+    public void onDestroy() {
+    	if(Logging.ERROR) Log.d(Logging.TAG,"Monitor onDestroy()");
+    	
+    	updateBroadcastEnabled = false; // prevent broadcast from currently running update task
+		updateTimer.cancel(); // cancel task
+		
+    	// there might be still other AsyncTasks executing RPCs
+    	// close sockets in a synchronized way
+		clientInterface.close();
+		
+    	try {
+    		// remove screen on/off receiver
+    		unregisterReceiver(screenOnOffReceiver);
+    	} catch (Exception ex) {}
+        
+    	updateBroadcastEnabled = false; // prevent broadcast from currently running update task
+		updateTimer.cancel(); // cancel task
+		
+		mutex.release(); // release BOINC mutex
+		
+		 // release locks, if held.
+		try {
+			clientStatus.setWakeLock(false);
+			clientStatus.setWifiLock(false);
+		} catch (Exception ex) {}
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {	
+    	//this gets called after startService(intent) (either by BootReceiver or SplashActivity, depending on the user's autostart configuration)
+    	if(Logging.ERROR) Log.d(Logging.TAG, "Monitor onStartCommand()");
+		
+		// try to acquire BOINC mutex
+    	// run here in order to recover, if mutex holding app gets closed.
+		if(!updateBroadcastEnabled && mutex.acquire()) {
+			updateBroadcastEnabled = true;
+	        // register and start update task
+	        // using .scheduleAtFixedRate() can cause a series of bunched-up runs
+	        // when previous executions are delayed (e.g. during clientSetup() )
+	        updateTimer.schedule(statusUpdateTask, 0, clientStatusInterval);
+		}
+		if(!mutex.acquired) if(Logging.ERROR) Log.e(Logging.TAG, "Monitor.onStartCommand: mutex acquisition failed, do not start BOINC.");
+
+		// execute action if one is explicitly requested (e.g. from notification)
+    	if(intent != null) {
+			int actionCode = intent.getIntExtra("action", -1);
+	    	if(Logging.DEBUG) Log.d(Logging.TAG, "Monitor.onStartCommand() with action code: " + actionCode);
+			switch(actionCode) {
+			case 1: // suspend
+				new SetClientRunModeAsync().execute(BOINCDefs.RUN_MODE_NEVER);
+				break;
+			case 2: // resume
+				new SetClientRunModeAsync().execute(BOINCDefs.RUN_MODE_AUTO);
+				break;
+			}
+    	}
+		
+		/*
+		 * START_STICKY causes service to stay in memory until stopSelf() is called, even if all
+		 * Activities get destroyed by the system. Important for GUI keep-alive
+		 * For detailed service documentation see
+		 * http://android-developers.blogspot.com.au/2010/02/service-api-changes-starting-with.html
+		 */
+		return START_STICKY;
+    }
+// --end-- attributes and methods related to Android Service life-cycle
+	
+// singleton getter
+	/**
+	 * Retrieve singleton of ClientStatus.
+	 * @return ClientStatus, represents the data model of the BOINC client's status
+	 * @throws Exception if client status has not been initialized
+	 */
+	public static ClientStatus getClientStatus() throws Exception{ //singleton pattern
+		if (clientStatus == null) {
+			// client status needs application context, but context might not be available
+			// in static code. functions have to deal with Exception!
+			if(Logging.WARNING) Log.w(Logging.TAG,"getClientStatus: clientStatus not yet initialized");
+			throw new Exception("clientStatus not initialized");
+		}
+		return clientStatus;
+	}
+	
+	/**
+	 * Retrieve singleton of AppPreferences.
+	 * @return AppPreferences, interface to Android applications persistent key-value store
+	 */
+	public static AppPreferences getAppPrefs() { //singleton pattern
+		if (appPrefs == null) {
+			appPrefs = new AppPreferences();
+		}
+		return appPrefs;
+	}
+
+	/**
+	 * Retrieve singleton of DeviceStatus.
+	 * @return DeviceStatus, represents data model of device information reported to the client
+	 * @throws Exception if deviceStatus hast not been initialized
+	 */
+	public static DeviceStatus getDeviceStatus() throws Exception {//singleton pattern
+		if (deviceStatus == null) {
+			// device status needs application context, but context might not be available
+			// in static code. functions have to deal with Exception!
+			if(Logging.WARNING) Log.w(Logging.TAG,"getDeviceStatus: deviceStatus not yet initialized");
+			throw new Exception("deviceStatus not initialized");
+		}
+		return deviceStatus;
+	}
+// --end-- singleton getter
+	
+// public methods for Activities
+	/**
+	 * Indicates whether service was able to obtain BOINC mutex.
+	 * If not, BOINC has not started and all other calls will fail.
+	 * @return BOINC mutex acquisition successful
+	 */
+	public boolean boincMutexAcquired() {
+		return mutex.acquired;
+	}
+	
+    /**
+     * Force refresh of client status data model, will fire Broadcast upon success.
+     */
+    public void forceRefresh() {
+    	if(!mutex.acquired) return; // do not try to update if client is not running
+    	if(Logging.DEBUG) Log.d(Logging.TAG,"forceRefresh()");
+    	try{
+    		updateTimer.schedule(new StatusUpdateTimerTask(), 0);
+    	} catch (Exception e){} // throws IllegalStateException if called after timer got cancelled, i.e. after manual shutdown
+    }
+	
+	/**
+	 * Determines BOINC platform name corresponding to device's cpu architecture (ARM, x86 or MIPS).
+	 * Defaults to ARM
+	 * @return ID of BOINC platform name string in resources
+	 */
+	public int getBoincPlatform() {
+		int platformId = 0;
+		String arch = System.getProperty("os.arch");    
+		String normalizedArch = arch.toUpperCase(Locale.US);
+		if (normalizedArch.contains("AARCH64")) platformId = R.string.boinc_platform_name_arm64;
+		else if (normalizedArch.contains("ARM64")) platformId = R.string.boinc_platform_name_arm64;
+		else if (normalizedArch.contains("MIPS64")) platformId = R.string.boinc_platform_name_mips64;
+	    else if (normalizedArch.contains("X86_64")) platformId= R.string.boinc_platform_name_x86_64;
+		else if (normalizedArch.contains("ARM")) platformId = R.string.boinc_platform_name_arm;
+		else if (normalizedArch.contains("MIPS")) platformId = R.string.boinc_platform_name_mips;
+	    else if (normalizedArch.contains("86")) platformId= R.string.boinc_platform_name_x86;
+	    else {
+	    	if(Logging.ERROR) Log.w(Logging.TAG,"could not map os.arch (" + arch + ") to platform, default to arm.");
+	    	platformId = R.string.boinc_platform_name_arm;
+	    }
+	    
+	    if(Logging.ERROR) Log.d(Logging.TAG,"BOINC platform: " + getString(platformId) + " for os.arch: " + arch);
+		return platformId;
+	}
+	
+	/**
+	 * Determines BOINC alt platform name corresponding to device's cpu architecture (ARM, x86 or MIPS).
+	 * @return  BOINC platform name string in resources
+	 */
+	public String getBoincAltPlatform() {
+		String platformName = "";
+		String arch = System.getProperty("os.arch");    
+		String normalizedArch = arch.toUpperCase(Locale.US);
+		if (normalizedArch.contains("AARCH64")) platformName = getString(R.string.boinc_platform_name_arm);
+		else if (normalizedArch.contains("ARM64")) platformName = getString(R.string.boinc_platform_name_arm);
+		else if (normalizedArch.contains("MIPS64")) platformName = getString(R.string.boinc_platform_name_mips);
+	    else if (normalizedArch.contains("X86_64")) platformName = getString(R.string.boinc_platform_name_x86);
+	    
+	    if(Logging.ERROR) Log.d(Logging.TAG,"BOINC Alt platform: " + platformName + " for os.arch: " + arch);
+		return platformName;
+	}
+	
+	/**
+	 * Returns path to file in BOINC's working directory that contains GUI authentication key
+	 * @return absolute path to file holding GUI authentication key
+	 */
+	public String getAuthFilePath(){
+		return boincWorkingDir + fileNameGuiAuthentication;
+	}
+// --end-- public methods for Activities
+    
+// multi-threaded frequent information polling
+	/**
+	 * Task to frequently and asynchronously poll the client's status. Executed in different thread.
+	 */
+	private final class StatusUpdateTimerTask extends TimerTask {
+		@Override
+		public void run() {
+			updateStatus();
+		}
+	}
+	
+	/**
+	 * Reports current device status to client and reads current client status.
+	 * Updates ClientStatus and fires Broadcast.
+	 * Called frequently to poll current status.
+	 */
+    private void updateStatus(){
+		// check whether RPC client connection is alive
+		if(!clientInterface.connectionAlive()) {
+			if(clientSetup()) { // start setup routine
+				// interact with client only if connection established successfully
+				reportDeviceStatus();
+				readClientStatus(true); // read initial data
+			}
+		}
+		
+    	if(!screenOn && screenOffStatusOmitCounter < deviceStatusIntervalScreenOff) screenOffStatusOmitCounter++; // omit status reporting according to configuration
+    	else {
+    		// screen is on, or omit counter reached limit
+    		if(clientInterface.connectionAlive()) {
+    			reportDeviceStatus();
+    			readClientStatus(false); // readClientStatus is also required when screen is off, otherwise no wakeLock acquisition.
+    		}
+    	}
+    }
+    
+    /**
+     * Reads client status via RPCs
+     * Optimized to retrieve only subset of information (required to determine wakelock state) if screen is turned off
+     * @param forceCompleteUpdate forces update of entire status information, regardless of screen status
+     */
+    private void readClientStatus(Boolean forceCompleteUpdate) {
+    	try{
+    		CcStatus status; // read independently of screen status
+    		
+			// complete status read, depending on screen status
+    		// screen off: only read computing status to adjust wakelock, do not send broadcast
+    		// screen on: read complete status, set ClientStatus, send broadcast
+			// forceCompleteUpdate: read complete status, independently of screen setting
+	    	if(screenOn || forceCompleteUpdate) {
+	    		// complete status read, with broadcast
+				if(Logging.VERBOSE) Log.d(Logging.TAG, "readClientStatus(): screen on, get complete status");
+	    		status = clientInterface.getCcStatus();
+				CcState state = clientInterface.getState();
+				ArrayList<Transfer>  transfers = clientInterface.getFileTransfers();
+				AcctMgrInfo acctMgrInfo = clientInterface.getAcctMgrInfo();
+				ArrayList<Notice> newNotices = clientInterface.getNotices(Monitor.getClientStatus().getMostRecentNoticeSeqNo());
+				
+				if( (status != null) && (state != null) && (state.results != null) && (state.projects != null) && (transfers != null) && (state.host_info != null) && (acctMgrInfo != null)) {
+					Monitor.getClientStatus().setClientStatus(status, state.results, state.projects, transfers, state.host_info, acctMgrInfo, newNotices);
+				} else {
+					String nullValues = "";
+					try{
+						if(state == null) nullValues += "state,";
+						if(state.results == null) nullValues += "state.results,";
+						if(state.projects == null) nullValues += "state.projects,";
+						if(transfers == null) nullValues += "transfers,";
+						if(state.host_info == null) nullValues += "state.host_info,";
+						if(acctMgrInfo == null) nullValues += "acctMgrInfo,";
+					} catch (NullPointerException e) {};
+					if(Logging.ERROR) Log.e(Logging.TAG, "readClientStatus(): connection problem, null: " + nullValues);
+				}
+				
+				// update notices notification
+				NoticeNotification.getInstance(getApplicationContext()).update(Monitor.getClientStatus().getRssNotices(), Monitor.getAppPrefs().getShowNotificationForNotices());
+				
+				// check whether monitor is still intended to update, if not, skip broadcast and exit...
+				if(updateBroadcastEnabled) {
+			        Intent clientStatus = new Intent();
+			        clientStatus.setAction("edu.berkeley.boinc.clientstatus");
+			        getApplicationContext().sendBroadcast(clientStatus);
+				}
+	    	} else {
+	    		// read only ccStatus to adjust wakelocks and service state independently of screen status
+	    		status = clientInterface.getCcStatus();
+	    	}
+	    	
+	    	// independent of screen on off:
+    		// wake locks and foreground enabled when Client is not suspended, therefore also during
+    		// idle.
+    		// treat cpu throttling as if it was computing.
+    		Boolean computing = (status.task_suspend_reason == BOINCDefs.SUSPEND_NOT_SUSPENDED) || (status.task_suspend_reason == BOINCDefs.SUSPEND_REASON_CPU_THROTTLE);
+    		if(Logging.VERBOSE) Log.d(Logging.TAG,"readClientStatus(): computation enabled: " + computing);
+			Monitor.getClientStatus().setWifiLock(computing);
+			Monitor.getClientStatus().setWakeLock(computing);
+			ClientNotification.getInstance(getApplicationContext()).update(Monitor.getClientStatus(), this, computing);
+			
+		}catch(Exception e) {
+			if(Logging.ERROR) Log.e(Logging.TAG, "Monitor.readClientStatus excpetion: " + e.getMessage(),e);
+		}
+    }
+    
+    // reports current device status to the client via rpc
+    // client uses data to enforce preferences, e.g. suspend on battery
+    /**
+     * Reports current device status to the client via RPC
+     * BOINC client uses this data to enforce preferences, e.g. suspend battery but requires information only/best available through Java API calls.
+     */
+    private void reportDeviceStatus() {
+		if(Logging.VERBOSE) Log.d(Logging.TAG, "reportDeviceStatus()");
+    	try{
+	    	// set devices status
+			if(deviceStatus != null) { // make sure deviceStatus is initialized
+				Boolean reportStatusSuccess = clientInterface.reportDeviceStatus(deviceStatus.update(screenOn)); // transmit device status via rpc
+				if(reportStatusSuccess) screenOffStatusOmitCounter = 0;
+				else if(Logging.DEBUG) Log.d(Logging.TAG,"reporting device status returned false.");
+			} else if(Logging.WARNING) Log.w(Logging.TAG,"reporting device status failed, wrapper not initialized.");
+		}catch(Exception e) {
+			if(Logging.ERROR) Log.e(Logging.TAG, "Monitor.reportDeviceStatus excpetion: " + e.getMessage());
+		}
+    }
+// --end-- multi-threaded frequent information polling
+	
+// BOINC client installation and run-time management
+    /**
+     * installs client binaries(if changed) and other required files
+     * executes client process
+     * triggers initial reads (e.g. preferences, project list etc)
+     * @return Boolean whether connection established successfully
+     */
+	private Boolean clientSetup() {
+		if(Logging.ERROR) Log.d(Logging.TAG,"Monitor.clientSetup()");
+		
+		// try to get current client status from monitor
+		ClientStatus status;
+		try{
+			status  = Monitor.getClientStatus();
+		} catch (Exception e){
+			if(Logging.WARNING) Log.w(Logging.TAG,"Monitor.clientSetup: Could not load data, clientStatus not initialized.");
+			return false;
+		}
+		
+		status.setSetupStatus(ClientStatus.SETUP_STATUS_LAUNCHING,true);
+		String clientProcessName = boincWorkingDir + fileNameClient;
+
+		String md5AssetClient = computeMd5(fileNameClient, true);
+		//if(Logging.DEBUG) Log.d(Logging.TAG, "Hash of client (Asset): '" + md5AssetClient + "'");
+
+		String md5InstalledClient = computeMd5(clientProcessName, false);
+		//if(Logging.DEBUG) Log.d(Logging.TAG, "Hash of client (File): '" + md5InstalledClient + "'");
+
+		// If client hashes do not match, we need to install the one that is a part
+		// of the package. Shutdown the currently running client if needed.
+		//
+		if (forceReinstall || !md5InstalledClient.equals(md5AssetClient)) {
+			if(Logging.DEBUG) Log.d(Logging.TAG,"Hashes of installed client does not match binary in assets - re-install.");
+			
+			// try graceful shutdown using RPC (faster)
+			if (getPidForProcessName(clientProcessName) != null) {
+				if(connectClient()) {
+					clientInterface.quit();
+		    		Integer attempts = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_rpc_check_attempts);
+		    		Integer sleepPeriod = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_rpc_check_rate_ms);
+		    		for(int x = 0; x < attempts; x++) {
+		    			try {
+		    				Thread.sleep(sleepPeriod);
+		    			} catch (Exception e) {}
+		    			if(getPidForProcessName(clientProcessName) == null) { //client is now closed
+		        			if(Logging.DEBUG) Log.d(Logging.TAG,"quitClient: gracefull RPC shutdown successful after " + x + " seconds");
+		    				x = attempts;
+		    			}
+		    		}
+				}
+			}
+			
+			// quit with OS signals
+			if (getPidForProcessName(clientProcessName) != null) {
+				quitProcessOsLevel(clientProcessName);
+			}
+
+			// at this point client is definitely not running. install new binary...
+			if(!installClient()) {
+	        	if(Logging.ERROR) Log.w(Logging.TAG, "BOINC client installation failed!");
+	        	return false;
+	        }
+		}
+		
+		// Start the BOINC client if we need to.
+		//
+		Integer clientPid = getPidForProcessName(clientProcessName);
+		if(clientPid == null) {
+        	if(Logging.ERROR) Log.d(Logging.TAG, "Starting the BOINC client");
+			if (!runClient()) {
+	        	if(Logging.ERROR) Log.d(Logging.TAG, "BOINC client failed to start");
+				return false;
+			}
+		}
+
+		// Try to connect to executed Client in loop
+		//
+		Integer retryRate = getResources().getInteger(R.integer.monitor_setup_connection_retry_rate_ms);
+		Integer retryAttempts = getResources().getInteger(R.integer.monitor_setup_connection_retry_attempts);
+		Boolean connected = false;
+		Integer counter = 0;
+		while(!connected && (counter < retryAttempts)) {
+			if(Logging.DEBUG) Log.d(Logging.TAG, "Attempting BOINC client connection...");
+			connected = connectClient();
+			counter++;
+
+			try {
+				Thread.sleep(retryRate);
+			} catch (Exception e) {}
+		}
+		
+		Boolean init = false;
+		if(connected) { // connection established
+			try {
+				// read preferences for GUI to be able to display data
+				GlobalPreferences clientPrefs = clientInterface.getGlobalPrefsWorkingStruct();
+				if(clientPrefs == null) throw new Exception("client prefs null");
+				status.setPrefs(clientPrefs);
+				
+				// set Android model as hostinfo
+				// should output something like "Samsung Galaxy SII - SDK:15 ABI:armeabi-v7a"
+				String model = Build.MANUFACTURER + " " + Build.MODEL + " - SDK:" + Build.VERSION.SDK_INT + " ABI: " + Build.CPU_ABI;
+				String version = Build.VERSION.RELEASE;
+				if(Logging.ERROR) Log.d(Logging.TAG,"reporting hostinfo model name: " + model);
+				if(Logging.ERROR) Log.d(Logging.TAG,"reporting hostinfo os name: Android");
+				if(Logging.ERROR) Log.d(Logging.TAG,"reporting hostinfo os version: " + version);
+				clientInterface.setHostInfo(model, version);
+				
+				init = true;
+			} catch(Exception e) {if(Logging.ERROR) Log.e(Logging.TAG,"Monitor.clientSetup() init failed: " + e.getMessage());}
+		}
+		
+		if(init) {
+			if(Logging.ERROR) Log.d(Logging.TAG, "Monitor.clientSetup() - setup completed successfully"); 
+			status.setSetupStatus(ClientStatus.SETUP_STATUS_AVAILABLE,false);
+		} else {
+			if(Logging.ERROR) Log.e(Logging.TAG, "Monitor.clientSetup() - setup experienced an error"); 
+			status.setSetupStatus(ClientStatus.SETUP_STATUS_ERROR,true);
+		}
+		
+		return connected;
+	}
+	
+	/**
+	 * Executes BOINC client.
+	 * Using Java Runtime exec method
+	 * @return Boolean success
+	 */
+    private Boolean runClient() {
+    	Boolean success = false;
+    	try { 
+    		String[] cmd = new String[3];
+    		
+    		cmd[0] = boincWorkingDir + fileNameClient;
+    		cmd[1] = "--daemon";
+    		cmd[2] = "--gui_rpc_unix_domain";
+    		
+            if(Logging.ERROR) Log.w(Logging.TAG, "Launching '" + cmd[0] + "' from '" + boincWorkingDir + "'");
+        	Runtime.getRuntime().exec(cmd, null, new File(boincWorkingDir));
+        	success = true;
+    	} catch (IOException e) {
+    		if(Logging.ERROR) Log.d(Logging.TAG, "Starting BOINC client failed with exception: " + e.getMessage());
+    		if(Logging.ERROR) Log.e(Logging.TAG, "IOException", e);
+    	}
+    	return success;
+    }
+
+    /**
+     * Establishes connection to client and handles initial authentication
+     * @return Boolean success
+     */
+	private Boolean connectClient() {
+		Boolean success = false;
+		
+        success = clientInterface.open(clientSocketAddress);
+        if(!success) {
+        	if(Logging.ERROR) Log.e(Logging.TAG, "connection failed!");
+        	return success;
+        }
+        
+        //authorize
+        success = clientInterface.authorizeGuiFromFile(boincWorkingDir + fileNameGuiAuthentication);
+        if(!success) {
+        	if(Logging.ERROR) Log.e(Logging.TAG, "authorization failed!");
+        }
+        return success;
+	}
+	
+	/**
+	 * Installs required files from APK's asset directory to the applications' internal storage.
+	 * File attributes override and executable are defined here
+	 * @return Boolean success
+	 */
+    private Boolean installClient() {
+
+		if (!installFile(fileNameClient, true, true)) {
+			if(Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameClient);
+			return false;
+		}
+		if (!installFile(fileNameCLI, true, true)) {
+			if(Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameCLI);
+			return false;
+		}
+		if (!installFile(fileNameCABundle, true, false)) {
+			if(Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameCABundle);
+			return false;
+		}
+		if (!installFile(fileNameClientConfig, true, false)) {
+			if(Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameClientConfig);
+			return false;
+		}
+		if (!installFile(fileNameAllProjectsList, true, false)) {
+			if(Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameAllProjectsList);
+			return false;
+		}
+    	
+    	return true; 
+    }
+    
+    /**
+     * Copies given file from APK assets to internal storage.
+     * @param file name of file as it appears in assets directory
+     * @param override define override, if already present in internal storage
+     * @param executable set executable flag of file in internal storage
+     * @return Boolean success
+     */
+	private Boolean installFile(String file, Boolean override, Boolean executable) {
+    	Boolean success = false;
+    	byte[] b = new byte [1024];
+		int count; 
+		
+		// If file is executable, cpu architecture has to be evaluated
+		// and assets directory select accordingly
+		String source = "";
+		if(executable) source = getAssestsDirForCpuArchitecture() + file;
+		else source = file;
+		
+		try {
+			if(Logging.ERROR) Log.d(Logging.TAG, "installing: " + source);
+			
+    		File target = new File(boincWorkingDir + file);
+    		
+    		// Check path and create it
+    		File installDir = new File(boincWorkingDir);
+    		if(!installDir.exists()) {
+    			installDir.mkdir();
+    			installDir.setWritable(true); 
+    		}
+    		
+    		if(target.exists()) {
+    			if(override) target.delete();
+    			else {
+    				if(Logging.DEBUG) Log.d(Logging.TAG,"skipped file, exists and ovverride is false");
+    				return true;
+    			}
+    		}
+    		
+    		// Copy file from the asset manager to clientPath
+    		InputStream asset = getApplicationContext().getAssets().open(source); 
+    		OutputStream targetData = new FileOutputStream(target); 
+    		while((count = asset.read(b)) != -1){ 
+    			targetData.write(b, 0, count);
+    		}
+    		asset.close(); 
+    		targetData.flush(); 
+    		targetData.close();
+
+    		success = true; //copy succeeded without exception
+    		
+    		// Set executable, if requested
+    		Boolean isExecutable = false;
+    		if(executable) {
+    			target.setExecutable(executable);
+    			isExecutable = target.canExecute();
+    			success = isExecutable; // return false, if not executable
+    		}
+
+    		if(Logging.ERROR) Log.d(Logging.TAG, "install of " + source + " successfull. executable: " + executable + "/" + isExecutable);
+    		
+    	} catch (IOException e) {  
+    		if(Logging.ERROR) Log.e(Logging.TAG, "IOException: " + e.getMessage());
+    		if(Logging.ERROR) Log.d(Logging.TAG, "install of " + source + " failed.");
+    	}
+		
+		return success;
+	}
+	
+	/**
+	 * Determines assets directory (contains BOINC client binaries) corresponding to device's cpu architecture (ARM, x86 or MIPS)
+	 * @return name of assets directory for given platform, not an absolute path.
+	 */
+	private String getAssestsDirForCpuArchitecture() {
+		String archAssetsDirectory="";
+		switch(getBoincPlatform()) {
+		case R.string.boinc_platform_name_arm:
+			archAssetsDirectory = getString(R.string.assets_dir_arm);
+			break;
+		case R.string.boinc_platform_name_arm64:
+			archAssetsDirectory = getString(R.string.assets_dir_arm64);
+			break;
+		case R.string.boinc_platform_name_x86:
+			archAssetsDirectory = getString(R.string.assets_dir_x86);
+			break;
+		case R.string.boinc_platform_name_x86_64:
+			archAssetsDirectory = getString(R.string.assets_dir_x86_64);
+			break;
+		case R.string.boinc_platform_name_mips:
+			archAssetsDirectory = getString(R.string.assets_dir_mips);
+			break;
+		case R.string.boinc_platform_name_mips64:
+			archAssetsDirectory = getString(R.string.assets_dir_mips64);
+			break;
+		}
+	    return archAssetsDirectory;
+	}
+
+    /**
+     * Computes MD5 hash of requested file
+     * @param fileName absolute path or name of file in assets directory, see inAssets parameter
+     * @param inAssets if true, fileName is file name in assets directory, if not, absolute path
+     * @return md5 hash of file
+     */
+    private String computeMd5(String fileName, Boolean inAssets) {
+    	byte[] b = new byte [1024];
+		int count; 
+		
+		try {
+			MessageDigest md5 = MessageDigest.getInstance("MD5");
+
+			InputStream fs = null;
+			if(inAssets) fs = getApplicationContext().getAssets().open(getAssestsDirForCpuArchitecture() + fileName); 
+			else fs = new FileInputStream(new File(fileName)); 
+			
+    		while((count = fs.read(b)) != -1){ 
+    			md5.update(b, 0, count);
+    		}
+    		fs.close();
+
+			byte[] md5hash = md5.digest();
+			StringBuilder sb = new StringBuilder();
+			for (int i = 0; i < md5hash.length; ++i) {
+				sb.append(String.format("%02x", md5hash[i]));
+			}
+    		
+    		return sb.toString();
+    	} catch (IOException e) {  
+    		if(Logging.ERROR) Log.e(Logging.TAG, "IOException: " + e.getMessage());
+    	} catch (NoSuchAlgorithmException e) {
+    		if(Logging.ERROR) Log.e(Logging.TAG, "NoSuchAlgorithmException: " + e.getMessage());
+		}
+		
+		return "";
+    }
+    
+	/**
+	 * Determines ProcessID corresponding to given process name
+	 * @param processName name of process, according to output of "ps"
+	 * @return process id, according to output of "ps"
+	 */
+    private Integer getPidForProcessName(String processName) {
+    	int count;
+    	char[] buf = new char[1024];
+    	StringBuffer sb = new StringBuffer();
+    	
+    	//run ps and read output
+    	try {
+	    	Process p = Runtime.getRuntime().exec("ps");
+	    	p.waitFor();
+	    	InputStreamReader isr = new InputStreamReader(p.getInputStream());
+	    	while((count = isr.read(buf)) != -1)
+	    	{
+	    	    sb.append(buf, 0, count);
+	    	}
+    	} catch (Exception e) {
+    		if(Logging.ERROR) Log.e(Logging.TAG, "Exception: " + e.getMessage());
+    		return null;
+    	}
+
+    	String [] processLinesAr = sb.toString().split("\n");
+    	if (processLinesAr.length < 2) {
+    		if(Logging.ERROR) Log.e(Logging.TAG,"getPidForProcessName(): ps output has less than 2 lines, failure!");
+    		return null;
+    	}
+    	
+    	// figure out what index PID has
+    	String [] headers = processLinesAr[0].split("[\\s]+");
+    	Integer PidIndex = 1;
+    	for (int x = 0; x < headers.length; x++) {
+    		if(headers[x].equals("PID")) {
+    			PidIndex = x;
+    			continue;
+    		}
+    	}
+		if(Logging.DEBUG) Log.d(Logging.TAG,"getPidForProcessName(): PID at index: " + PidIndex + " for output: " + processLinesAr[0]);
+    	
+		Integer pid = null;
+    	for(int y = 1; y < processLinesAr.length; y++) {
+    		Boolean found = false;
+    	    String [] comps = processLinesAr[y].split("[\\s]+");
+    	    for(String arg: comps) {
+    	    	if(arg.equals(processName)) {
+    	    		if(Logging.DEBUG) Log.d(Logging.TAG,"getPidForProcessName(): " + processName + " found in line: " + y);
+    	    		found = true;
+    	    	}
+    	    }
+    	    if(found) {
+	    	    try{
+	    	    	pid = Integer.parseInt(comps[PidIndex]);
+	        	    if(Logging.ERROR) Log.d(Logging.TAG,"getPidForProcessName(): pid: " + pid); 
+	    	    }catch (NumberFormatException e) {if(Logging.ERROR) Log.e(Logging.TAG,"getPidForProcessName(): NumberFormatException for " + comps[PidIndex] + " at index: " + PidIndex);}
+	    	    continue;
+    	    }
+    	}
+    	// if not happen in ps output, not running?!
+		if(pid == null) if(Logging.ERROR) Log.d(Logging.TAG,"getPidForProcessName(): " + processName + " not found in ps output!");
+    	
+    	// Find required pid
+    	return pid;
+    }
+    
+    /**
+     * Exits a process by sending it Linux SIGQUIT and SIGKILL signals
+     * @param processName name of process to be killed, according to output of "ps"
+     */
+    private void quitProcessOsLevel(String processName) {
+    	Integer clientPid = getPidForProcessName(processName);
+    	
+    	// client PID could not be read, client already ended / not yet started?
+    	if (clientPid == null) {
+    		if(Logging.ERROR) Log.d(Logging.TAG, "quitProcessOsLevel could not find PID, already ended or not yet started?");
+    		return;
+    	}
+    	
+    	if(Logging.DEBUG) Log.d(Logging.TAG, "quitProcessOsLevel for " + processName + ", pid: " + clientPid);
+    	
+    	// Do not just kill the client on the first attempt.  That leaves dangling 
+		// science applications running which causes repeated spawning of applications.
+		// Neither the UI or client are happy and each are trying to recover from the
+		// situation.  Instead send SIGQUIT and give the client time to clean up.
+		//
+    	android.os.Process.sendSignal(clientPid, android.os.Process.SIGNAL_QUIT);
+    	
+    	// Wait for the client to shutdown gracefully
+    	Integer attempts = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_os_check_attempts);
+    	Integer sleepPeriod = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_os_check_rate_ms);
+    	for(int x = 0; x < attempts; x++) {
+			try {
+				Thread.sleep(sleepPeriod);
+			} catch (Exception e) {}
+    		if(getPidForProcessName(processName) == null) { //client is now closed
+        		if(Logging.DEBUG) Log.d(Logging.TAG,"quitClient: gracefull SIGQUIT shutdown successful after " + x + " seconds");
+    			x = attempts;
+    		}
+    	}
+    	
+    	clientPid = getPidForProcessName(processName);
+    	if(clientPid != null) {
+    		// Process is still alive, send SIGKILL
+    		if(Logging.ERROR) Log.w(Logging.TAG, "SIGQUIT failed. SIGKILL pid: " + clientPid);
+    		android.os.Process.killProcess(clientPid);
+    	}
+    	
+    	clientPid = getPidForProcessName(processName);
+    	if(clientPid != null) {
+    		if(Logging.ERROR) Log.w(Logging.TAG, "SIGKILL failed. still living pid: " + clientPid);
+    	}
+    }
+// --end-- BOINC client installation and run-time management
+	
+// broadcast receiver
+	/**
+	 * broadcast receiver to detect changes to screen on or off, used to adapt scheduling of StatusUpdateTimerTask
+	 * e.g. avoid polling GUI status RPCs while screen is off in order to save battery
+	 */
+	BroadcastReceiver screenOnOffReceiver = new BroadcastReceiver() { 
+		@Override 
+        public void onReceive(Context context, Intent intent) { 
+			String action = intent.getAction();
+			if(action.equals(Intent.ACTION_SCREEN_OFF)) {
+				screenOn = false;
+				// forces report of device status at next scheduled update
+				// allows timely reaction to screen off for resume of computation
+				screenOffStatusOmitCounter = deviceStatusIntervalScreenOff;
+				if(Logging.DEBUG) Log.d(Logging.TAG, "screenOnOffReceiver: screen turned off");
+			}
+			if(action.equals(Intent.ACTION_SCREEN_ON)) {
+				screenOn = true;
+				if(Logging.DEBUG) Log.d(Logging.TAG, "screenOnOffReceiver: screen turned on, force data refresh...");
+				forceRefresh();
+			}
+        } 
+	}; 
+// --end-- broadcast receiver
+	
+// async tasks
+	private final class SetClientRunModeAsync extends AsyncTask<Integer, Void, Void> {
+		@Override
+		protected Void doInBackground(Integer... params) {
+			try {
+				mBinder.setRunMode(params[0]);
+			} catch (RemoteException e) {}
+			return null;
+		}
+	}
+// --end -- async tasks
+	
+// remote service
+	private final IMonitor.Stub mBinder = new IMonitor.Stub() {
+			
+		@Override
+		public boolean transferOperation(List<Transfer> list, int op) throws RemoteException {
+			return clientInterface.transferOperation((ArrayList<Transfer>)list, op);
+		}
+		
+		@Override
+		public boolean synchronizeAcctMgr(String url) throws RemoteException {
+			return clientInterface.synchronizeAcctMgr(url);
+		}
+		
+		@Override
+		public boolean setRunMode(int mode) throws RemoteException {
+			return clientInterface.setRunMode(mode);
+		}
+		
+		@Override
+		public boolean setNetworkMode(int mode) throws RemoteException {
+			return clientInterface.setNetworkMode(mode);
+		}
+		
+		@Override
+		public boolean setGlobalPreferences(GlobalPreferences pref)
+				throws RemoteException {
+			return clientInterface.setGlobalPreferences(pref);
+		}
+		
+		@Override
+		public boolean setCcConfig(String config) throws RemoteException {
+			return clientInterface.setCcConfig(config);
+		}
+		
+		@Override
+		public boolean resultOp(int op, String url, String name)
+				throws RemoteException {
+			return clientInterface.resultOp(op, url, name);
+		}
+		
+		@Override
+		public String readAuthToken(String path) throws RemoteException {
+			return clientInterface.readAuthToken(path);
+		}
+		
+		@Override
+		public boolean projectOp(int status, String url) throws RemoteException {
+			return clientInterface.projectOp(status, url);
+		}
+		
+		@Override
+		public int getBoincPlatform() throws RemoteException {
+			return Monitor.this.getBoincPlatform();
+		}
+		
+		@Override
+		public AccountOut lookupCredentials(AccountIn credentials) throws RemoteException {
+			return clientInterface.lookupCredentials(credentials);
+		}
+		
+		@Override
+		public boolean isStationaryDeviceSuspected() throws RemoteException {
+			try {
+				return Monitor.getDeviceStatus().isStationaryDeviceSuspected();
+			} catch (Exception e) {}
+			return false;
+		}
+		
+		@Override
+		public List<Notice> getServerNotices() throws RemoteException {
+			return clientStatus.getServerNotices();
+		}
+		
+		@Override
+		public ProjectConfig getProjectConfigPolling(String url)
+				throws RemoteException {
+			return clientInterface.getProjectConfigPolling(url);
+		}
+		
+		@Override
+		public List<Notice> getNotices(int seq) throws RemoteException {
+			return clientInterface.getNotices(seq);
+		}
+		
+		@Override
+		public List<edu.berkeley.boinc.rpc.Message> getMessages(int seq) throws RemoteException {
+			return clientInterface.getMessages(seq);
+		}
+		
+		@Override
+		public List<edu.berkeley.boinc.rpc.Message> getEventLogMessages(int seq, int num)
+				throws RemoteException {
+			return clientInterface.getEventLogMessages(seq, num);
+		}
+		
+		@Override
+		public int getBatteryChargeStatus() throws RemoteException{
+			try {
+				return getDeviceStatus().getStatus().battery_charge_pct;
+			} catch (Exception e) {}
+			return 0;
+		}
+		
+		@Override
+		public AcctMgrInfo getAcctMgrInfo() throws RemoteException {
+			return clientInterface.getAcctMgrInfo();
+		}
+		
+		@Override
+		public void forceRefresh() throws RemoteException {
+			Monitor.this.forceRefresh();
+		}
+		
+		@Override
+		public AccountOut createAccountPolling(AccountIn information) throws RemoteException {
+			return clientInterface.createAccountPolling(information);
+		}
+		
+		@Override
+		public boolean checkProjectAttached(String url) throws RemoteException {
+			return clientInterface.checkProjectAttached(url);
+		}
+		
+		@Override
+		public boolean attachProject(String url, String projectName, String authenticator)
+				throws RemoteException {
+			return clientInterface.attachProject(url, projectName, authenticator);
+		}
+		
+		@Override
+		public int addAcctMgrErrorNum(String url, String userName, String pwd)
+				throws RemoteException {
+			AcctMgrRPCReply acctMgr =clientInterface.addAcctMgr(url, userName, pwd);
+			if (acctMgr!=null) {
+				return acctMgr.error_num;
+			}
+			return -1;
+		}
+		
+		@Override
+		public String getAuthFilePath() throws RemoteException {
+			return Monitor.this.getAuthFilePath();
+		}
+		
+		@Override
+		public List<ProjectInfo> getAttachableProjects() throws RemoteException {
+			return clientInterface.getAttachableProjects(getString(getBoincPlatform()), getBoincAltPlatform());
+		}
+		
+		@Override
+		public boolean getAcctMgrInfoPresent() throws RemoteException {
+			return clientStatus.getAcctMgrInfo().present;
+		}
+		
+		@Override
+		public int getSetupStatus() throws RemoteException {
+			return clientStatus.setupStatus;
+		}
+		
+		@Override
+		public int getComputingStatus() throws RemoteException {
+			return clientStatus.computingStatus;
+		}
+		
+		@Override
+		public int getComputingSuspendReason() throws RemoteException {
+			return clientStatus.computingSuspendReason;
+		}
+		
+		@Override
+		public int getNetworkSuspendReason() throws RemoteException {
+			return clientStatus.networkSuspendReason;
+		}
+		
+		@Override
+		public HostInfo getHostInfo() throws RemoteException {
+			return clientStatus.getHostInfo();
+		}
+		
+		@Override
+		public GlobalPreferences getPrefs() throws RemoteException {
+			return clientStatus.getPrefs();
+		}
+		
+		@Override
+		public List<Project> getProjects() throws RemoteException {
+			return clientStatus.getProjects();
+		}
+		
+		@Override
+		public AcctMgrInfo getClientAcctMgrInfo() throws RemoteException {
+			return clientStatus.getAcctMgrInfo();
+		}
+		
+		@Override
+		public List<Transfer> getTransfers() throws RemoteException {
+			return clientStatus.getTransfers();
+		}
+		
+		@Override
+		public void setAutostart(boolean isAutoStart) throws RemoteException {
+			Monitor.getAppPrefs().setAutostart(isAutoStart);
+		}
+		
+		@Override
+		public void setShowNotificationForNotices(boolean isShow) throws RemoteException {
+			Monitor.getAppPrefs().setShowNotificationForNotices(isShow);
+		}
+		
+		@Override
+		public boolean getShowAdvanced() throws RemoteException {
+			return Monitor.getAppPrefs().getShowAdvanced();
+		}
+		
+		@Override
+		public boolean getAutostart() throws RemoteException {
+			return Monitor.getAppPrefs().getAutostart();
+		}
+		
+		@Override
+		public boolean getShowNotificationForNotices() throws RemoteException {
+			return  Monitor.getAppPrefs().getShowNotificationForNotices();
+		}
+		
+		@Override
+		public int getLogLevel() throws RemoteException {
+			return Monitor.getAppPrefs().getLogLevel();
+		}
+		
+		@Override
+		public void setLogLevel(int level) throws RemoteException {
+			Monitor.getAppPrefs().setLogLevel(level);
+		}
+		
+		@Override
+		public void setPowerSourceAc(boolean src) throws RemoteException {
+			Monitor.getAppPrefs().setPowerSourceAc(src);
+		}
+		
+		@Override
+		public void setPowerSourceUsb(boolean src) throws RemoteException {
+			Monitor.getAppPrefs().setPowerSourceUsb(src);
+		}
+		
+		@Override
+		public void setPowerSourceWireless(boolean src) throws RemoteException {
+			Monitor.getAppPrefs().setPowerSourceWireless(src);
+		}
+		
+		@Override
+		public List<Result> getTasks() throws RemoteException {
+			return clientStatus.getTasks();
+		}
+		
+		@Override
+		public String getProjectStatus(String url) throws RemoteException {
+			return clientStatus.getProjectStatus(url);
+		}
+		
+		@Override
+		public List<Notice> getRssNotices() throws RemoteException {
+			return clientStatus.getRssNotices();
+		}
+		
+		@Override
+		public List<ImageWrapper> getSlideshowForProject(String url)
+				throws RemoteException {
+			return clientStatus.getSlideshowForProject(url);
+		}
+		
+		@Override
+		public boolean getStationaryDeviceMode() throws RemoteException {
+			return Monitor.getAppPrefs().getStationaryDeviceMode();
+		}
+		
+		@Override
+		public boolean getPowerSourceAc() throws RemoteException {
+			return Monitor.getAppPrefs().getPowerSourceAc();
+		}
+		
+		@Override
+		public boolean getPowerSourceUsb() throws RemoteException {
+			return Monitor.getAppPrefs().getPowerSourceUsb();
+		}
+		
+		@Override
+		public boolean getPowerSourceWireless() throws RemoteException {
+			return Monitor.getAppPrefs().getPowerSourceWireless();
+		}
+		
+		@Override
+		public void setShowAdvanced(boolean isShow) throws RemoteException {
+			Monitor.getAppPrefs().setShowAdvanced(isShow);
+		}
+		
+		@Override
+		public void setStationaryDeviceMode(boolean mode)
+				throws RemoteException {
+			Monitor.getAppPrefs().setStationaryDeviceMode(mode);
+			
+		}
+		
+		@Override
+		public Bitmap getProjectIconByName(String name) throws RemoteException {
+			return clientStatus.getProjectIconByName(name);
+		}
+		
+		@Override
+		public Bitmap getProjectIcon(String id) throws RemoteException {
+			return clientStatus.getProjectIcon(id);
+		}
+
+		@Override
+		public boolean getSuspendWhenScreenOn() throws RemoteException {
+			return Monitor.getAppPrefs().getSuspendWhenScreenOn();
+		}
+
+		@Override
+		public void setSuspendWhenScreenOn(boolean swso) throws RemoteException {
+			Monitor.getAppPrefs().setSuspendWhenScreenOn(swso);
+		}
+
+		@Override
+		public String getCurrentStatusTitle() throws RemoteException {
+			return clientStatus.getCurrentStatusTitle();
+		}
+
+		@Override
+		public String getCurrentStatusDescription() throws RemoteException {
+			return clientStatus.getCurrentStatusDescription();
+		}
+
+		@Override
+		public void cancelNoticeNotification() throws RemoteException {
+			NoticeNotification.getInstance(getApplicationContext()).cancelNotification();
+		}
+
+		@Override
+		public void setShowNotificationDuringSuspend(boolean isShow) throws RemoteException {
+			Monitor.getAppPrefs().setShowNotificationDuringSuspend(isShow);
+			
+		}
+
+		@Override
+		public boolean getShowNotificationDuringSuspend() throws RemoteException {
+			return Monitor.getAppPrefs().getShowNotificationDuringSuspend();
+		}
+
+		@Override
+		public boolean runBenchmarks() throws RemoteException {
+			return clientInterface.runBenchmarks();
+		}
+
+		@Override
+		public ProjectInfo getProjectInfo(String url) throws RemoteException {
+			return clientInterface.getProjectInfo(url);
+		}
+
+		@Override
+		public boolean boincMutexAcquired() throws RemoteException {
+			return mutex.acquired;
+		}
+	};
+// --end-- remote service	
+}
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/NoticeNotification.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/NoticeNotification.java
new file mode 100644
index 0000000..7250edf
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/NoticeNotification.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+  This file is part of BOINC.
+  http://boinc.berkeley.edu
+  Copyright (C) 2016 University of California
+  
+  BOINC is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License
+  as published by the Free Software Foundation,
+  either version 3 of the License, or (at your option) any later version.
+  
+  BOINC is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  See the GNU Lesser General Public License for more details.
+  
+  You should have received a copy of the GNU Lesser General Public License
+  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+*******************************************************************************/
+package edu.berkeley.boinc.client;
+
+import android.annotation.SuppressLint;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.support.v7.app.NotificationCompat;
+import android.util.Log;
+import edu.berkeley.boinc.BOINCActivity;
+import edu.berkeley.boinc.R;
+import edu.berkeley.boinc.rpc.Notice;
+import edu.berkeley.boinc.utils.Logging;
+import java.util.ArrayList;
+
+public class NoticeNotification {
+
+	private static NoticeNotification noticeNotification = null;
+	
+	private Context context;
+	private PersistentStorage store;
+	private NotificationManager nm;
+	private Integer notificationId;
+	private PendingIntent contentIntent;
+	
+	private ArrayList<Notice> currentlyNotifiedNotices = new ArrayList<Notice>();
+	private Boolean isNotificationShown = false;
+
+	//private Boolean debug = true;
+	/**
+	 * Returns a reference to a singleton noticeNotification object.
+	 * Constructs a new instance of the noticeNotification if not already constructed.
+	 * @return noticeNotification static instance
+	 */
+	public static NoticeNotification getInstance(Context ctx) {
+		if (noticeNotification == null) {
+			noticeNotification = new NoticeNotification(ctx);
+		}
+		return noticeNotification;
+	}
+	
+	public NoticeNotification (Context ctx) {
+		this.context = ctx;
+		this.store = new PersistentStorage(ctx);
+		this.nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
+		notificationId = context.getResources().getInteger(R.integer.notice_notification_id);
+		Intent intent = new Intent(context, BOINCActivity.class);
+		intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
+		intent.putExtra("targetFragment", R.string.tab_notices);
+		contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+	}
+	
+	/**
+	 * cancels currently shown notice and clears data
+	 * called when user clicks notice
+	 */
+	public void cancelNotification() {
+		if(isNotificationShown) {
+			nm.cancel(notificationId);
+			isNotificationShown = false;
+			currentlyNotifiedNotices.clear();
+		}
+	}
+
+	/**
+	 * Updates notification with current notices
+	 */
+	public void update(ArrayList<Notice> notices, Boolean isPreferenceEnabled) {
+		
+		if(!isPreferenceEnabled) {
+			if(isNotificationShown) {
+				nm.cancel(notificationId);
+				isNotificationShown = false;
+			}
+			return;
+		}
+		
+		// filter new notices
+		Boolean newNotice = false;
+		double mostRecentSeenArrivalTime = 0;
+		double lastNotifiedArrivalTime = store.getLastNotifiedNoticeArrivalTime();
+		/*
+		if(debug) {
+			lastNotifiedArrivalTime = 0;
+			debug = false;
+		}*/
+		for(Notice tmp : notices) {
+			if(tmp.arrival_time > lastNotifiedArrivalTime) {
+				// multiple new notices might have same arrival time -> write back after adding all
+				currentlyNotifiedNotices.add(tmp);
+				newNotice = true;
+				if(tmp.arrival_time > mostRecentSeenArrivalTime) mostRecentSeenArrivalTime = tmp.arrival_time;
+			}
+		}
+		
+		if(newNotice) {
+			// new notices came in
+			store.setLastNotifiedNoticeArrivalTime(mostRecentSeenArrivalTime);
+			nm.notify(notificationId, buildNotification());
+			isNotificationShown = true;
+		}
+	}
+
+    @SuppressLint("InlinedApi")
+    private Notification buildNotification() {
+        // build new notification from scratch every time a notice arrives
+        final NotificationCompat.Builder nb;
+        final int notices;
+        final String projectName;
+
+        nb = (android.support.v7.app.NotificationCompat.Builder)(new NotificationCompat.Builder(this.context).
+            setContentTitle(this.context.getResources().getQuantityString(
+                R.plurals.notice_notification,
+                notices = this.currentlyNotifiedNotices.size(),
+                projectName = this.currentlyNotifiedNotices.get(0).project_name,
+                notices)).
+            setSmallIcon(R.drawable.mailw).
+            setContentIntent(this.contentIntent));
+        if (notices == 1) {
+            // single notice view
+            nb.setContentText(this.currentlyNotifiedNotices.get(0).title).
+                setLargeIcon(NoticeNotification.getLargeProjectIcon(
+                    this.context,
+                    projectName)
+                );
+        } else {
+            // multi notice view
+            nb.setNumber(notices)
+                .setLargeIcon(BitmapFactory.decodeResource(
+                    this.context.getResources(),
+                    R.drawable.ic_stat_notify_boinc_normal))
+                .setSubText(this.context.getString(R.string.app_name));
+
+            // append notice titles to list
+            final NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
+            for (int i = 0; i < notices; i++) {
+                final Notice notice;
+                inboxStyle.addLine((notice = this.currentlyNotifiedNotices.get(i)).project_name +
+                                   ": " + notice.title);
+            }
+            nb.setStyle(inboxStyle);
+        }
+        return nb.build();
+    }
+
+    private static final Bitmap getLargeProjectIcon(final Context context, final String projectName) {
+        final Bitmap projectIconBitmap;
+        try {
+            return (projectIconBitmap = Monitor.getClientStatus().getProjectIconByName(projectName)) != null ?
+                Bitmap.createScaledBitmap(
+                    projectIconBitmap,
+                    projectIconBitmap.getWidth() << 1,
+                    projectIconBitmap.getHeight() << 1,
+                    false
+                ) :
+                BitmapFactory.decodeResource(
+                    context.getResources(),
+                    R.drawable.ic_stat_notify_boinc_normal
+                );
+        } catch (Exception e) {
+            if (Log.isLoggable(Logging.TAG, Log.DEBUG)) Log.d(
+                Logging.TAG,
+                e.getLocalizedMessage(),
+                e
+            );
+            return BitmapFactory.decodeResource(
+                context.getResources(),
+                R.drawable.ic_stat_notify_boinc_normal
+            );
+        }
+    }
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/PersistentStorage.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/client/PersistentStorage.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/client/PersistentStorage.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/client/PersistentStorage.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/mutex/BoincMutex.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/mutex/BoincMutex.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/mutex/BoincMutex.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/mutex/BoincMutex.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/receiver/BootReceiver.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/receiver/BootReceiver.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/receiver/BootReceiver.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/receiver/BootReceiver.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/receiver/PackageReplacedReceiver.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/receiver/PackageReplacedReceiver.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/receiver/PackageReplacedReceiver.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/receiver/PackageReplacedReceiver.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/receiver/PowerConnectedReceiver.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/receiver/PowerConnectedReceiver.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/receiver/PowerConnectedReceiver.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/receiver/PowerConnectedReceiver.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AccountIn.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AccountIn.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AccountIn.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AccountIn.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AccountOut.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AccountOut.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AccountOut.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AccountOut.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AccountOutParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AccountOutParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AccountOutParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AccountOutParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrInfo.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrInfo.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrInfo.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrInfo.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrInfoParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrInfoParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrInfoParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrInfoParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrRPCReply.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrRPCReply.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrRPCReply.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrRPCReply.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrRPCReplyParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrRPCReplyParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AcctMgrRPCReplyParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AcctMgrRPCReplyParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/App.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/App.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/App.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/App.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AppVersion.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AppVersion.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AppVersion.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AppVersion.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AppVersionsParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AppVersionsParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AppVersionsParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AppVersionsParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/AppsParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AppsParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/AppsParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/AppsParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/BaseParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/BaseParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/BaseParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/BaseParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Boinc.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Boinc.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Boinc.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Boinc.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/CcState.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcState.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/CcState.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcState.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/CcStateParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcStateParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/CcStateParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcStateParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/CcStatus.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcStatus.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/CcStatus.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcStatus.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/CcStatusParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcStatusParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/CcStatusParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/CcStatusParser.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/DeviceStatusData.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/DeviceStatusData.java
new file mode 100644
index 0000000..60595ce
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/DeviceStatusData.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+package edu.berkeley.boinc.rpc;
+
+public class DeviceStatusData {
+	public boolean on_ac_power = false;
+	public boolean on_usb_power = false; // not used
+	public int battery_charge_pct = 0;
+	public int battery_state = -1; //not used
+	public int battery_temperature_celsius = -1;
+	public boolean wifi_online = false;
+	public boolean user_active = true;
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/GlobalPreferences.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/GlobalPreferences.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/GlobalPreferences.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/GlobalPreferences.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/GlobalPreferencesParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/GlobalPreferencesParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/GlobalPreferencesParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/GlobalPreferencesParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/GuiUrl.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/GuiUrl.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/GuiUrl.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/GuiUrl.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/HostInfo.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/HostInfo.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/HostInfo.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/HostInfo.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/HostInfoParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/HostInfoParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/HostInfoParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/HostInfoParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ImageWrapper.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ImageWrapper.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ImageWrapper.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ImageWrapper.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Md5.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Md5.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Md5.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Md5.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Message.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Message.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Message.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Message.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/MessageCountParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/MessageCountParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/MessageCountParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/MessageCountParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/MessagesParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/MessagesParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/MessagesParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/MessagesParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Notice.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Notice.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Notice.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Notice.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/NoticesParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/NoticesParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/NoticesParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/NoticesParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/PlatformInfo.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/PlatformInfo.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/PlatformInfo.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/PlatformInfo.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Project.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Project.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Project.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Project.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectAttachReply.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectAttachReply.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectAttachReply.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectAttachReply.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectAttachReplyParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectAttachReplyParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectAttachReplyParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectAttachReplyParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectConfig.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectConfig.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectConfig.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectConfig.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectConfigReplyParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectConfigReplyParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectConfigReplyParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectConfigReplyParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectInfo.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectInfo.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectInfo.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectInfo.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectInfoParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectInfoParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectInfoParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectInfoParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ProjectsParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectsParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ProjectsParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ProjectsParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Result.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Result.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Result.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Result.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/ResultsParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ResultsParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/ResultsParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/ResultsParser.java
diff --git a/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/RpcClient.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/RpcClient.java
new file mode 100644
index 0000000..b990116
--- /dev/null
+++ b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/RpcClient.java
@@ -0,0 +1,1421 @@
+/*******************************************************************************
+ * This file is part of BOINC.
+ * http://boinc.berkeley.edu
+ * Copyright (C) 2016 University of California
+ * 
+ * BOINC is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ * 
+ * BOINC is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+
+package edu.berkeley.boinc.rpc;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Locale;
+
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import android.net.LocalSocket;
+import android.net.LocalSocketAddress;
+import android.util.Log;
+import android.util.Xml;
+import edu.berkeley.boinc.utils.BOINCDefs;
+import edu.berkeley.boinc.utils.BOINCUtils;
+import edu.berkeley.boinc.utils.Logging;
+
+
+/**
+ * GUI RPC - the way how GUI can manage BOINC core client and retrieve the information
+ * from the client.
+ * This tries to be the same as original BOINC C++ GUI, but the names are rewritten
+ * for the sake of naming convention. Therefore original RPC_CLIENT becomes RpcClient,
+ * get_cc_status() becomes getCcStatus() etc.
+ */
+public class RpcClient {
+	private static final int READ_TIMEOUT = 15000;         // 15s
+	private static final int READ_BUF_SIZE = 2048;
+	private static final int RESULT_BUILDER_INIT_SIZE = 131072; // Yes, 128K
+	private static final int REQUEST_BUILDER_INIT_SIZE = 80;
+	
+	public static final int SUCCESS = 0;
+	public static final int ERR_RETRY = -199;
+	public static final int ERR_IN_PROGRESS = -204;
+	
+	public static final int PROJECT_UPDATE  = 1;
+	public static final int PROJECT_SUSPEND = 2;
+	public static final int PROJECT_RESUME  = 3;
+	public static final int PROJECT_NNW     = 4;
+	public static final int PROJECT_ANW     = 5;
+	public static final int PROJECT_DETACH	= 6;
+	public static final int PROJECT_RESET	= 7;
+
+	public static final int RESULT_SUSPEND  = 10;
+	public static final int RESULT_RESUME   = 11;
+	public static final int RESULT_ABORT    = 12;
+
+	public static final int TRANSFER_RETRY  = 20;
+	public static final int TRANSFER_ABORT  = 21;
+	
+	public static final int MGR_DETACH = 30;
+	public static final int MGR_SYNC = 31;
+	
+	private LocalSocket mSocket;
+	private OutputStreamWriter mOutput;
+	private InputStream mInput;
+	private byte[] mReadBuffer = new byte[READ_BUF_SIZE];
+	protected StringBuilder mResult = new StringBuilder(RESULT_BUILDER_INIT_SIZE);
+	protected StringBuilder mRequest = new StringBuilder(REQUEST_BUILDER_INIT_SIZE);
+
+	protected String mLastErrorMessage = null;
+	
+	public RpcClient() {}
+
+
+	/*
+	 * Private classes - Helpers
+	 */
+
+	private class Auth1Parser extends DefaultHandler {
+		private StringBuilder mResult = null;
+		private String mCurrentElement = null;
+		private boolean mNonceParsed = false;
+
+		public Auth1Parser(StringBuilder result) {
+			mResult = result;
+		}
+
+		@Override
+		public void characters(char[] ch, int start, int length) throws SAXException {
+			super.characters(ch, start, length);
+			// put it into StringBuilder
+	        mCurrentElement = new String(ch, start, length);
+		}
+
+		@Override
+		public void endElement(String uri, String localName, String qName) throws SAXException {
+			super.endElement(uri, localName, qName);
+			if (localName.equalsIgnoreCase("nonce") && !mNonceParsed) {
+				mResult.append(mCurrentElement);
+				mNonceParsed = true;
+			}
+			mCurrentElement = null;
+		}
+	}
+
+	private class Auth2Parser extends DefaultHandler {
+		private StringBuilder mResult = null;
+		private boolean mParsed = false;
+
+		public Auth2Parser(StringBuilder result) {
+			mResult = result;
+		}
+
+		@Override
+		public void endElement(String uri, String localName, String qName) throws SAXException {
+			super.endElement(uri, localName, qName);
+			if (localName.equalsIgnoreCase("authorized") && !mParsed) {
+				mResult.append("authorized");
+				mParsed = true;
+			}
+			else if (localName.equalsIgnoreCase("unauthorized") && !mParsed) {
+				mResult.append("unauthorized");
+				mParsed = true;
+			}
+		}
+	}
+
+	/*
+	 * Helper methods
+	 */
+
+	private static final String modeName(int mode) {
+		switch (mode) {
+		case BOINCDefs.RUN_MODE_ALWAYS: return "<always/>";
+		case BOINCDefs.RUN_MODE_AUTO: return "<auto/>";
+		case BOINCDefs.RUN_MODE_NEVER: return "<never/>";
+		case BOINCDefs.RUN_MODE_RESTORE: return "<restore/>";
+		default: return "";
+		}
+	}
+
+	/*
+	 * Methods for connection - opening/closing/authorization/status
+	 */
+
+	/**
+	 * Connect to BOINC core client via Unix Domain Socket (abstract, "boinc_socket")
+	 * @return true for success, false for failure
+	 */
+	public boolean open(String socketAddress) {
+		if (isConnected()) {
+			// Already connected
+			if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "Attempt to connect when already connected");
+			// We better close current connection and reconnect (address/port could be different)
+			close();
+		}
+		try {
+			mSocket = new LocalSocket();
+			mSocket.connect(new LocalSocketAddress(socketAddress));
+			mSocket.setSoTimeout(READ_TIMEOUT);
+			mInput = mSocket.getInputStream();
+			mOutput = new OutputStreamWriter(mSocket.getOutputStream(), "ISO8859_1");
+		}
+		catch (IllegalArgumentException e) {
+			if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "connect failure: illegal argument", e);
+			mSocket = null;
+			return false;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "connect failure", e);
+			mSocket = null;
+			return false;
+		}
+		catch (Exception e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "connect failure", e);
+			mSocket = null;
+			return false;
+		}
+		if(Logging.DEBUG) Log.d(Logging.TAG, "Connected successfully");
+		return true;
+	}
+
+	/**
+	 * Closes the currently opened connection to BOINC core client
+	 */
+	public synchronized void close() {
+		if (!isConnected()) {
+			// Not connected - just return (can be cleanup "for sure")
+			return;
+		}
+		try {
+			mInput.close();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "input close failure", e);
+		}
+		try {
+			mOutput.close();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "output close failure", e);
+		}
+		try {
+			mSocket.close();
+			if(Logging.DEBUG) Log.d(Logging.TAG, "close() - Socket closed");
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "socket close failure", e);
+		}
+		mSocket = null;
+	}
+	
+	public String getLastErrorMessage() {
+		return mLastErrorMessage;
+	}
+
+	/**
+	 * Performs the BOINC authorization towards currently connected client. 
+	 * The authorization uses MD5 hash of client's password and random value. 
+	 * Clear-text password is never sent over network.
+	 * @param password Clear text password used for authorization
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean authorize(String password) {
+		if (!isConnected()) {
+			return false;
+		}
+		if(password.length() == 0) return false;
+		try {
+			// Phase 1: get nonce
+			sendRequest("<auth1/>\n");
+			String auth1Rsp = receiveReply();
+			mRequest.setLength(0);
+			Xml.parse(auth1Rsp, new Auth1Parser(mRequest)); // get nonce value
+			// Operation: combine nonce & password, make MD5 hash
+			mRequest.append(password);
+			String nonceHash = Md5.hash(mRequest.toString());
+			// Phase 2: send hash to client
+			mRequest.setLength(0);
+			mRequest.append("<auth2>\n<nonce_hash>");
+			mRequest.append(nonceHash);
+			mRequest.append("</nonce_hash>\n</auth2>\n");
+			sendRequest(mRequest.toString());
+			String auth2Rsp = receiveReply();
+			mRequest.setLength(0);
+			Xml.parse(auth2Rsp, new Auth2Parser(mRequest));
+			if (!mRequest.toString().equals("authorized")) {
+				if(Logging.DEBUG) Log.d(Logging.TAG, "authorize() - Failure");
+				return false;
+			}
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in authorize()", e);
+			return false;
+		}
+		catch (SAXException e) {
+			Log.i(Logging.TAG, "Malformed XML received in authorize()");
+			return false;
+		}
+		if(Logging.DEBUG) Log.d(Logging.TAG, "authorize() - Successful");
+		return true;
+	}
+
+	/**
+	 * Checks the current state of connection
+	 * @return true if connected to BOINC core client, false if not connected
+	 */
+	public final boolean isConnected() {
+		return (mSocket != null) ? mSocket.isConnected() : false;
+	}
+
+	/**
+	 * Checks whether current connection can be used (data can be sent and received)
+	 * This is achieved by sending the empty BOINC command - so in case there is
+	 * socket still opened, but other side already closed connection, it will be detected.
+	 * @return true if other side responds, false if data cannot be sent or received
+	 */
+	public synchronized boolean connectionAlive() {
+		if (!isConnected()) return false;
+		try {
+			// We just get the status via socket and do not parse reply
+			sendRequest("<get_cc_status/>\n");
+			String result = receiveReply();
+			if (result.length() == 0) {
+				// End of stream reached and no data were received in reply
+				// We assume that socket is closed on the other side,
+				// most probably client shut down
+				return false;
+			}
+			return true;
+		}
+		catch (IOException e) {
+			return false;
+		}
+	}
+
+	/*
+	 * Private methods for send/receive data
+	 */
+
+	/**
+	 * Send RPC request to BOINC core client (XML-formatted)
+	 * @param request The request itself
+	 * @throws IOException if error occurs when sending the request
+	 */
+	protected void sendRequest(String request) throws IOException {
+		if (Logging.RPC_PERFORMANCE) if(Logging.DEBUG) Log.d(Logging.TAG, "mRequest.capacity() = " + mRequest.capacity());
+		if (Logging.RPC_DATA) if(Logging.DEBUG) Log.d(Logging.TAG, "Sending request: \n" + request.toString());
+		if (mOutput == null)
+			return;
+		mOutput.write("<boinc_gui_rpc_request>\n");
+		mOutput.write(request);
+		mOutput.write("</boinc_gui_rpc_request>\n\003");
+		mOutput.flush();
+	}
+
+	/**
+	 * Read the reply from BOINC core client
+	 * @return the data read from socket
+	 * @throws IOException if error occurs when reading from socket
+	 */
+	protected String receiveReply() throws IOException {
+		mResult.setLength(0);
+		if (Logging.RPC_PERFORMANCE) if(Logging.DEBUG) Log.d(Logging.TAG, "mResult.capacity() = " + mResult.capacity());
+
+		long readStart = System.nanoTime();
+
+		// Speed is (with large data): ~ 45 KB/s for buffer size 1024
+		//                             ~ 90 KB/s for buffer size 2048
+		//                             ~ 95 KB/s for buffer size 4096
+		// The chosen buffer size is 2048
+		int bytesRead;
+		if (mInput == null)
+			return mResult.toString();	// empty string
+		do {
+			bytesRead = mInput.read(mReadBuffer);
+			if (bytesRead == -1) break;
+			mResult.append(new String(mReadBuffer, 0, bytesRead));
+			if (mReadBuffer[bytesRead-1] == '\003') {
+				// Last read byte marks the end of transfer
+				mResult.setLength(mResult.length() - 1);
+				break;
+			}
+		} while (true);
+
+		if (Logging.RPC_PERFORMANCE) {
+			float duration = (System.nanoTime() - readStart)/1000000000.0F;
+			long bytesCount = mResult.length();
+			if (duration == 0) duration = 0.001F;
+			if(Logging.DEBUG) Log.d(Logging.TAG, "Reading from socket took " + duration + " seconds, " + bytesCount + " bytes read (" + (bytesCount / duration) + " bytes/second)");
+		}
+
+		if (Logging.RPC_PERFORMANCE) if(Logging.DEBUG) Log.d(Logging.TAG, "mResult.capacity() = " + mResult.capacity());
+
+		if (Logging.RPC_DATA) {
+			BufferedReader dbr = new BufferedReader(new StringReader(mResult.toString()));
+			String dl;
+			int ln = 0;
+			try {
+				while ((dl = BOINCUtils.readLineLimit(dbr, 4096)) != null) {
+					++ln;
+					if(Logging.DEBUG) Log.d(Logging.TAG, String.format("%4d: %s", ln, dl));
+				}
+			}
+			catch (IOException ioe) {
+			}
+		}
+		return mResult.toString();
+	}
+
+	/*
+	 * GUI RPC calls
+	 */
+
+	public synchronized VersionInfo exchangeVersions() {
+		mLastErrorMessage = null;
+		mRequest.setLength(0);
+		mRequest.append("<exchange_versions>\n  <major>");
+		mRequest.append(Boinc.MAJOR_VERSION);
+		mRequest.append("</major>\n  <minor>");
+		mRequest.append(Boinc.MINOR_VERSION);
+		mRequest.append("</minor>\n  <release>");
+		mRequest.append(Boinc.RELEASE);
+		mRequest.append("</release>\n</exchange_versions>\n");
+		try {
+			sendRequest(mRequest.toString());
+			VersionInfo versionInfo = VersionInfoParser.parse(receiveReply());
+			return versionInfo;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in exchangeVersions()", e);
+			return null;
+		}
+	}
+	
+
+	/**
+	 * Performs get_cc_status RPC towards BOINC client
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized CcStatus getCcStatus() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<get_cc_status/>\n");
+			CcStatus ccStatus = CcStatusParser.parse(receiveReply());
+			return ccStatus;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getCcStatus()", e);
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	/**
+	 * Performs get_file_transfers RPC towards BOINC client
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized ArrayList<Transfer> getFileTransfers() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<get_file_transfers/>\n");
+			ArrayList<Transfer> transfers = TransfersParser.parse(receiveReply());
+			return transfers;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getFileTransfers()", e);
+			return null;
+		}
+	}
+
+	/**
+	 * Performs get_host_info RPC towards BOINC client
+	 * 
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized HostInfo getHostInfo() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<get_host_info/>\n");
+			HostInfo hostInfo = HostInfoParser.parse(receiveReply());
+			return hostInfo;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getHostInfo()", e);
+			return null;
+		}
+	}
+
+	/**
+	 * Performs get_message_count RPC towards BOINC client
+	 * Returns highest seqNo
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized int getMessageCount() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<get_message_count/>\n");
+			int seqNo = MessageCountParser.getSeqno(receiveReply());
+			if(Logging.DEBUG) Log.d(Logging.TAG,"RpcClient.getMessageCount returning: " + seqNo);
+			return seqNo;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getMessageCount()", e);
+			return -1;
+		}
+	}
+
+	/**
+	 * Performs get_messages RPC towards BOINC client
+	 * Returns client messages that are more recent than seqNo param
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized ArrayList<Message> getMessages(int seqNo) {
+		mLastErrorMessage = null;
+		try {
+			String request;
+			if (seqNo == 0) {
+				// get all messages
+				request = "<get_messages/>\n";
+			}
+			else {
+				request =
+					"<get_messages>\n" +
+					" <seqno>" + seqNo + "</seqno>\n" +
+					"</get_messages>\n";
+			}
+			sendRequest(request);
+			ArrayList<Message> messages = MessagesParser.parse(receiveReply());
+			return messages;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getMessages()", e);
+			return null;
+		}
+	}
+	
+	/**
+	 * Performs get_notices PRC towards BOINC client
+	 * Returns client messages that are more recent than seqNo param
+	 * @return List of Notices
+	 */
+	public synchronized ArrayList<Notice> getNotices(int seqNo) {
+		mLastErrorMessage = null;
+		try {
+			String request;
+			if (seqNo == 0) {
+				// get all notices
+				request = "<get_notices/>\n";
+			}
+			else {
+				request =
+					"<get_notices>\n" +
+					" <seqno>" + seqNo + "</seqno>\n" +
+					"</get_notices>\n";
+			}
+			sendRequest(request);
+			ArrayList<Notice> notices = NoticesParser.parse(receiveReply());
+			if(notices == null) notices = new ArrayList<Notice>(); // do not return null
+			return notices;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getMessages()", e);
+			return new ArrayList<Notice>();
+		}
+	}
+
+	/**
+	 * Performs get_project_status RPC towards BOINC client
+	 * 
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized ArrayList<Project> getProjectStatus() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<get_project_status/>\n");
+			ArrayList<Project> projects = ProjectsParser.parse(receiveReply());
+			return projects;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getProjectStatus()", e);
+			return null;
+		}
+	}
+	
+	/**
+	 * Performs get_results RPC towards BOINC client (only active results)
+	 * 
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized ArrayList<Result> getActiveResults() {
+		mLastErrorMessage = null;
+		final String request =
+			"<get_results>\n" +
+			"<active_only>1</active_only>\n" +
+			"</get_results>\n";
+		try {
+			sendRequest(request);
+			ArrayList<Result> results = ResultsParser.parse(receiveReply());
+			return results;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getActiveResults()", e);
+			return null;
+		}
+	}
+
+	/**
+	 * Performs get_results RPC towards BOINC client (all results)
+	 * 
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized ArrayList<Result> getResults() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<get_results/>\n");
+			ArrayList<Result> results = ResultsParser.parse(receiveReply());
+			return results;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getResults()", e);
+			return null;
+		}
+	}
+
+	/**
+	 * Performs get_state RPC towards BOINC client
+	 * 
+	 * @return result of RPC call in case of success, null otherwise
+	 */
+	public synchronized CcState getState() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<get_state/>\n");
+			CcState result = CcStateParser.parse(receiveReply());
+			return result;
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getState()", e);
+			return null;
+		}
+	}
+
+	/**
+	 * Reports the current device state to the BOINC core client,
+	 * if not called frequently, BOINC core client will suspend
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean reportDeviceStatus(DeviceStatusData deviceStatus) {
+		mLastErrorMessage = null;
+		mRequest.setLength(0);
+		mRequest.append("<report_device_status>\n <device_status>\n  <on_ac_power>");
+		mRequest.append(deviceStatus.on_ac_power ? 1 : 0);
+		mRequest.append("</on_ac_power>\n  <on_usb_power>");
+		mRequest.append(deviceStatus.on_usb_power ? 1 : 0);
+		mRequest.append("</on_usb_power>\n  <battery_charge_pct>");
+		mRequest.append(deviceStatus.battery_charge_pct);
+		mRequest.append("</battery_charge_pct>\n  <battery_state>");
+		mRequest.append(deviceStatus.battery_state);
+		mRequest.append("</battery_state>\n  <battery_temperature_celsius>");
+		mRequest.append(deviceStatus.battery_temperature_celsius);
+		mRequest.append("</battery_temperature_celsius>\n  <wifi_online>");
+		mRequest.append(deviceStatus.wifi_online ? 1 : 0);
+		mRequest.append("</wifi_online>\n  <user_active>");
+		mRequest.append(deviceStatus.user_active ? 1 : 0);
+		mRequest.append("</user_active>\n </device_status>\n</report_device_status>\n");
+		try {
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in networkAvailable()", e);
+			return false;
+		}
+	}
+	
+	/**
+	 * Reports the Android model as host info to the client
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean setHostInfo(String hostInfo, String version){
+		mLastErrorMessage = null;
+		mRequest.setLength(0);
+		mRequest.append("<set_host_info>\n");
+		mRequest.append("  <host_info>\n");
+		mRequest.append("    <product_name>");
+		mRequest.append(hostInfo);
+		mRequest.append("    </product_name>\n");
+		mRequest.append("    <os_name>Android</os_name>");
+		mRequest.append("    <os_version>");
+		mRequest.append(version);
+		mRequest.append("    </os_version>\n");
+		mRequest.append("  </host_info>\n");
+		mRequest.append("</set_host_info>\n");
+		try {
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in networkAvailable()", e);
+			return false;
+		}
+	}
+
+	/**
+	 * Tells the BOINC core client that a network connection is available,
+	 * and that it should do as much network activity as it can.
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean networkAvailable() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<network_available/>\n");
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in networkAvailable()", e);
+			return false;
+		}
+	}
+
+	/**
+	 * Triggers change of state of project in BOINC core client
+	 * @param operation operation to be triggered
+	 * @param projectUrl master URL of project
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean projectOp(int operation, String projectUrl) {
+		try {
+			String opTag;
+			switch (operation) {
+			case PROJECT_UPDATE:
+				opTag = "project_update";
+				break;
+			case PROJECT_SUSPEND:
+				opTag = "project_suspend";
+				break;
+			case PROJECT_RESUME:
+				opTag = "project_resume";
+				break;
+			case PROJECT_NNW:
+				opTag = "project_nomorework";
+				break;
+			case PROJECT_ANW:
+				opTag = "project_allowmorework";
+				break;
+			case PROJECT_DETACH:
+				opTag = "project_detach";
+				break;
+			case PROJECT_RESET:
+				opTag = "project_reset";
+				break;
+			default:
+				if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "projectOp() - unsupported operation: " + operation);
+				return false;
+			}
+			String request =
+				"<" + opTag + ">\n" +
+				"<project_url>" + projectUrl + "</project_url>\n" +
+				"</" + opTag + ">\n";
+
+			sendRequest(request);
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in projectOp()", e);
+			return false;
+		}
+	}
+	
+	private String getPasswdHash(String passwd, String email_addr) {
+		return Md5.hash(passwd+email_addr);
+	}
+	
+	/**
+	 * Creates account
+	 * @param accountIn - account info
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean createAccount(AccountIn accountIn) {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<create_account>\n   <url>");
+			mRequest.append(accountIn.url);
+			mRequest.append("</url>\n   <email_addr>");
+			mRequest.append(accountIn.email_addr);
+			mRequest.append("</email_addr>\n   <passwd_hash>");
+			mRequest.append(getPasswdHash(accountIn.passwd, accountIn.email_addr));
+			mRequest.append("</passwd_hash>\n   <user_name>");
+			if (accountIn.user_name!=null)
+				mRequest.append(accountIn.user_name);
+			mRequest.append("</user_name>\n   <team_name>");
+			if (accountIn.team_name!=null)
+				mRequest.append(accountIn.team_name);
+			mRequest.append("</team_name>\n<create_account>\n");
+			
+			sendRequest(mRequest.toString());
+			
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in createAccount()", e);
+			return false;
+		}
+	}
+	
+	/**
+	 * polling create account
+	 * @return account output
+	 */
+	public synchronized AccountOut createAccountPoll() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<create_account_poll/>");
+			
+			sendRequest(mRequest.toString());
+			return AccountOutParser.parse(receiveReply());
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getCreateAccountPoll()", e);
+			return null;
+		}
+	}
+	
+	/**
+	 * Looks up account
+	 * @param accountIn - account info
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean lookupAccount(AccountIn accountIn) {
+		try {
+			String id;
+			if(accountIn.uses_name) id = accountIn.user_name;
+			else id = accountIn.email_addr;
+			mRequest.setLength(0);
+			mRequest.append("<lookup_account>\n <url>");
+			mRequest.append(accountIn.url);
+			mRequest.append("</url>\n <email_addr>");
+			mRequest.append(id.toLowerCase(Locale.US));
+			mRequest.append("</email_addr>\n <passwd_hash>");
+			mRequest.append(getPasswdHash(accountIn.passwd, id.toLowerCase(Locale.US)));
+			mRequest.append("</passwd_hash>\n</lookup_account>\n");
+			sendRequest(mRequest.toString());
+			
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in lookupAccount()", e);
+			return false;
+		}
+	}
+	
+	/**
+	 * polling lookup account
+	 * @return account output
+	 */
+	public synchronized AccountOut lookupAccountPoll() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<lookup_account_poll/>");
+			
+			sendRequest(mRequest.toString());
+			return AccountOutParser.parse(receiveReply());
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getLookupAccountPoll()", e);
+			return null;
+		}
+	}
+	
+	/**
+	 * Attach to project 
+	 * @param url project url
+	 * @param authenticator account key
+	 * @param name project name
+	 * @return
+	 */
+	public synchronized boolean projectAttach(String url, String authenticator, String name) {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<project_attach>\n   <project_url>");
+			mRequest.append(url);
+			mRequest.append("</project_url>\n   <authenticator>");
+			mRequest.append(authenticator);
+			mRequest.append("</authenticator>\n   <project_name>");
+			mRequest.append(name);
+			mRequest.append("</project_name>\n</project_attach>\n");
+			
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in projectAttach()", e);
+			return false;
+		}
+	}
+	
+	/**
+	 * polling project attach
+	 * @return project attach reply
+	 */
+	public synchronized ProjectAttachReply projectAttachPoll() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<project_attach_poll/>");
+			
+			sendRequest(mRequest.toString());
+			return ProjectAttachReplyParser.parse(receiveReply());
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in projectAttachPoll()", e);
+			return null;
+		}
+	}
+	
+	/**
+	 * performs acct_mgr_rpc towards client
+	 * attaches account manager to client
+	 * requires polling of status
+	 * @param url
+	 * @param name
+	 * @param passwd
+	 * @return success
+	 */
+	public synchronized boolean acctMgrRPC(String url, String name, String passwd) {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<acct_mgr_rpc>\n   <url>");
+			mRequest.append(url);
+			mRequest.append("</url>\n   <name>");
+			mRequest.append(name);
+			mRequest.append("</name>\n   <password>");
+			mRequest.append(passwd);
+			mRequest.append("</password>\n</acct_mgr_rpc>\n");
+
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in acctMgrRPC()", e);
+			return false;
+		}
+	}
+	
+	/**
+	 * performs acct_mgr_rpc with <use_config_file/> instead of login information
+	 * @return success
+	 */
+	public synchronized boolean acctMgrRPC() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<acct_mgr_rpc>\n<use_config_file/>\n</acct_mgr_rpc>\n");
+
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in acctMgrRPC()", e);
+			return false;
+		}
+	}
+
+	/**
+	 * performs acct_mgr_rpc_poll towards client
+	 * polls status of acct_mgr_rpc
+	 * @return status class AcctMgrRPCReply
+	 */
+	public synchronized AcctMgrRPCReply acctMgrRPCPoll() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<acct_mgr_rpc_poll/>");
+
+			sendRequest(mRequest.toString());
+			return AcctMgrRPCReplyParser.parse(receiveReply());
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in acctMgrRPCPoll()", e);
+			return null;
+		}
+	}
+	
+	/**
+	 * performs acct_mgr_info towards client
+	 * @return status class AcctMgrInfo
+	 */
+	public synchronized AcctMgrInfo getAcctMgrInfo() {
+		mLastErrorMessage = null;
+		try {
+			sendRequest("<acct_mgr_info/>\n");
+			return AcctMgrInfoParser.parse(receiveReply());
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getAcctMgrInfo()", e);
+			return null;
+		}
+	}
+	
+	public synchronized boolean getProjectConfig(String url) {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<get_project_config>\n   <url>");
+			mRequest.append(url);
+			mRequest.append("</url>\n</get_project_config>\n");
+			
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getProjectConfig()", e);
+			return false;
+		}
+	}
+	
+	public synchronized ProjectConfig getProjectConfigPoll() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<get_project_config_poll/>");
+			
+			sendRequest(mRequest.toString());
+			return ProjectConfigReplyParser.parse(receiveReply());
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getProjectConfigPoll()", e);
+			return null;
+		}
+	}
+	
+	public synchronized ArrayList<ProjectInfo> getAllProjectsList() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<get_all_projects_list/>");
+			
+			sendRequest(mRequest.toString());
+			return ProjectInfoParser.parse(receiveReply());
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getAllProjectsList()", e);
+			return null;
+		}
+		
+	}
+	
+	public synchronized GlobalPreferences getGlobalPrefsWorkingStruct() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<get_global_prefs_working/>");
+			
+			sendRequest(mRequest.toString());
+			return GlobalPreferencesParser.parse(receiveReply());
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in globalPrefsWorking()", e);
+			return null;
+		}
+	}
+	
+	public synchronized boolean setGlobalPrefsOverride(String globalPrefs) {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<set_global_prefs_override>\n");
+			mRequest.append(globalPrefs);
+			mRequest.append("</set_global_prefs_override>\n");
+			
+			sendRequest(mRequest.toString());
+			receiveReply();
+			return true;
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in setGlobalPrefsOverride()", e);
+			return false;
+		}
+	}
+	
+	public synchronized boolean setGlobalPrefsOverrideStruct(GlobalPreferences globalPrefs) {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<set_global_prefs_override>\n<global_preferences>\n  <run_on_batteries>");
+			mRequest.append(globalPrefs.run_on_batteries ? 1 : 0);
+			mRequest.append("</run_on_batteries>\n  <battery_charge_min_pct>");
+			mRequest.append(globalPrefs.battery_charge_min_pct);
+			mRequest.append("</battery_charge_min_pct>\n  <battery_max_temperature>");
+			mRequest.append(globalPrefs.battery_max_temperature);
+			mRequest.append("</battery_max_temperature>\n  <run_gpu_if_user_active>");
+			mRequest.append(globalPrefs.run_gpu_if_user_active ? 1 : 0);
+			mRequest.append("</run_gpu_if_user_active>\n  <run_if_user_active>");
+			mRequest.append(globalPrefs.run_if_user_active ? 1 : 0);
+			mRequest.append("</run_if_user_active>\n  <idle_time_to_run>");
+			mRequest.append(globalPrefs.idle_time_to_run);
+			mRequest.append("</idle_time_to_run>\n  <suspend_cpu_usage>");
+			mRequest.append(globalPrefs.suspend_cpu_usage);
+			mRequest.append("</suspend_cpu_usage>\n  <start_hour>");
+			mRequest.append(globalPrefs.cpu_times.start_hour);
+			mRequest.append("</start_hour>\n  <end_hour>");
+			mRequest.append(globalPrefs.cpu_times.end_hour);
+			mRequest.append("</end_hour>\n  <net_start_hour>");
+			mRequest.append(globalPrefs.net_times.start_hour);
+			mRequest.append("</net_start_hour>\n  <net_end_hour>");
+			mRequest.append(globalPrefs.net_times.end_hour);
+			mRequest.append("</net_end_hour>\n  <max_ncpus_pct>");
+			mRequest.append(globalPrefs.max_ncpus_pct);
+			mRequest.append("</max_ncpus_pct>\n  <leave_apps_in_memory>");
+			mRequest.append(globalPrefs.leave_apps_in_memory ? 1 : 0);
+			mRequest.append("</leave_apps_in_memory>\n  <dont_verify_images>");
+			mRequest.append(globalPrefs.dont_verify_images ? 1 : 0);
+			mRequest.append("</dont_verify_images>\n  <work_buf_min_days>");
+			mRequest.append(globalPrefs.work_buf_min_days);
+			mRequest.append("</work_buf_min_days>\n  <work_buf_additional_days>");
+			mRequest.append(globalPrefs.work_buf_additional_days);
+			mRequest.append("</work_buf_additional_days>\n  <disk_interval>");
+			mRequest.append(globalPrefs.disk_interval);
+			mRequest.append("</disk_interval>\n  <cpu_scheduling_period_minutes>");
+			mRequest.append(globalPrefs.cpu_scheduling_period_minutes);
+			mRequest.append("</cpu_scheduling_period_minutes>\n  <disk_max_used_gb>");
+			mRequest.append(globalPrefs.disk_max_used_gb);
+			mRequest.append("</disk_max_used_gb>\n  <disk_max_used_pct>");
+			mRequest.append(globalPrefs.disk_max_used_pct);
+			mRequest.append("</disk_max_used_pct>\n  <disk_min_free_gb>");
+			mRequest.append(globalPrefs.disk_min_free_gb);
+			mRequest.append("</disk_min_free_gb>\n  <ram_max_used_busy_pct>");
+			mRequest.append(globalPrefs.ram_max_used_busy_frac);
+			mRequest.append("</ram_max_used_busy_pct>\n  <ram_max_used_idle_pct>");
+			mRequest.append(globalPrefs.ram_max_used_idle_frac);
+			mRequest.append("</ram_max_used_idle_pct>\n  <max_bytes_sec_up>");
+			mRequest.append(globalPrefs.max_bytes_sec_up);
+			mRequest.append("</max_bytes_sec_up>\n  <max_bytes_sec_down>");
+			mRequest.append(globalPrefs.max_bytes_sec_down);
+			mRequest.append("</max_bytes_sec_down>\n  <cpu_usage_limit>");
+			mRequest.append(globalPrefs.cpu_usage_limit);
+			mRequest.append("</cpu_usage_limit>\n  <daily_xfer_limit_mb>");
+			mRequest.append(globalPrefs.daily_xfer_limit_mb);
+			mRequest.append("</daily_xfer_limit_mb>\n  <daily_xfer_period_days>");
+			mRequest.append(globalPrefs.daily_xfer_period_days);
+			mRequest.append("</daily_xfer_period_days>\n  <network_wifi_only>");
+			mRequest.append(globalPrefs.network_wifi_only ? 1 : 0);
+			mRequest.append("</network_wifi_only>\n");
+			
+			// write days prefs
+			TimePreferences.TimeSpan[] weekPrefs = globalPrefs.cpu_times.week_prefs;
+			for (int i = 0; i < weekPrefs.length; i++) {
+				TimePreferences.TimeSpan timeSpan = weekPrefs[i];
+				if (timeSpan == null) continue;
+				mRequest.append("  <day_prefs>\n    <day_of_week>");
+				mRequest.append(i);
+				mRequest.append("</day_of_week>\n    <start_hour>");
+				mRequest.append(timeSpan.start_hour);
+				mRequest.append("</start_hour>\n    <end_hour>");
+				mRequest.append(timeSpan.end_hour);
+				mRequest.append("</end_hour>\n  </day_prefs>\n");
+			}
+			
+			weekPrefs = globalPrefs.net_times.week_prefs;
+			for (int i = 0; i < weekPrefs.length; i++) {
+				TimePreferences.TimeSpan timeSpan = weekPrefs[i];
+				if (timeSpan == null) continue;
+				mRequest.append("  <day_prefs>\n    <day_of_week>");
+				mRequest.append(i);
+				mRequest.append("</day_of_week>\n    <net_start_hour>");
+				mRequest.append(timeSpan.start_hour);
+				mRequest.append("</net_start_hour>\n    <net_end_hour>");
+				mRequest.append(timeSpan.end_hour);
+				mRequest.append("</net_end_hour>\n  </day_prefs>\n");
+			}
+			
+			mRequest.append("</global_preferences>\n</set_global_prefs_override>\n");
+			sendRequest(mRequest.toString());
+			receiveReply();
+			return true;
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in setGlobalPrefsOverrideStruct()", e);
+			return false;
+		}
+	}
+	
+	public synchronized boolean readGlobalPrefsOverride() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<read_global_prefs_override/>");
+			sendRequest(mRequest.toString());
+			
+			// TODO: handle errors
+			receiveReply();
+			return true;
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in setGlobalPrefsOverrideStruct()", e);
+			return false;
+		}
+	}
+
+	/**
+	 * Tells the BOINC core client to exit. 
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean quit() {
+		try {
+			sendRequest("<quit/>\n");
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in quit()", e);
+			return false;
+		}
+	}
+
+	/**
+	 * Set the network mode
+	 * @param mode 1 = always, 2 = auto, 3 = never, 4 = restore
+	 * @param duration If duration is zero, mode is permanent. Otherwise revert to
+	 *        last permanent mode after duration seconds elapse.
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean setNetworkMode(int mode, double duration) {
+		final String request =
+			"<set_network_mode>\n" +
+			modeName(mode) + "\n" +
+			"<duration>" + duration + "</duration>\n" +
+			"</set_network_mode>\n";
+		try {
+			sendRequest(request);
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in setNetworkMode()", e);
+			return false;
+		}
+	}
+
+	/**
+	 * Set the run mode
+	 * @param mode 1 = always, 2 = auto, 3 = never, 4 = restore
+	 * @param duration If duration is zero, mode is permanent. Otherwise revert to
+	 *        last permanent mode after duration seconds elapse.
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean setRunMode(int mode, double duration) {
+		final String request =
+			"<set_run_mode>\n" +
+			modeName(mode) + "\n" +
+			"<duration>" + duration + "</duration>\n" +
+			"</set_run_mode>\n";
+		try {
+			sendRequest(request);
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in setRunMode()", e);
+			return false;
+		}
+	}
+
+	/**
+	 * Triggers operation on transfer in BOINC core client
+	 * @param operation operation to be triggered
+	 * @param projectUrl master URL of project
+	 * @param fileName name of the file
+	 * @return true for success, false for failure
+	 */
+	public synchronized boolean transferOp(int operation, String projectUrl, String fileName) {
+		try {
+			String opTag;
+			switch (operation) {
+			case TRANSFER_RETRY:
+				opTag = "retry_file_transfer";
+				break;
+			case TRANSFER_ABORT:
+				opTag = "abort_file_transfer";
+				break;
+			default:
+				if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "transferOp() - unsupported operation: " + operation);
+				return false;
+			}
+			mRequest.setLength(0);
+			mRequest.append("<");
+			mRequest.append(opTag);
+			mRequest.append(">\n   <project_url>");
+			mRequest.append(projectUrl);
+			mRequest.append("</project_url>\n   <filename>");
+			mRequest.append(fileName);
+			mRequest.append("</filename>\n</");
+			mRequest.append(opTag);
+			mRequest.append(">\n");
+			sendRequest(mRequest.toString());
+			
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in transferOp()", e);
+			return false;
+		}
+	}
+	
+	/**
+	 * Triggers operation on task in BOINC core client
+	 * @param operation operation to be triggered
+	 * @param projectUrl master URL of project
+	 * @param fileName name of the file
+	 * @return true for success, false for failure
+	 */
+	public boolean resultOp(int operation, String projectUrl, String resultName) {
+		try {
+			String opTag;
+			switch (operation) {
+			case RESULT_SUSPEND:
+				opTag = "suspend_result";
+				break;
+			case RESULT_RESUME:
+				opTag = "resume_result";
+				break;
+			case RESULT_ABORT:
+				opTag = "abort_result";
+				break;
+			default:
+				if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "resultOp() - unsupported operation: " + operation);
+				return false;
+			}
+			mRequest.setLength(0);
+			mRequest.append("<");
+			mRequest.append(opTag);
+			mRequest.append(">\n   <project_url>");
+			mRequest.append(projectUrl);
+			mRequest.append("</project_url>\n   <name>");
+			mRequest.append(resultName);
+			mRequest.append("</name>\n</");
+			mRequest.append(opTag);
+			mRequest.append(">\n");
+			sendRequest(mRequest.toString());
+			
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		}
+		catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in transferOp()", e);
+			return false;
+		}
+	}
+	
+	public synchronized boolean setCcConfig(String ccConfig) {
+		final String request =
+				"<set_cc_config>\n" +
+						ccConfig + 
+				"\n</set_cc_config>\n";
+			try {
+				sendRequest(request);
+				SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+				if (parser == null)
+					return false;
+				mLastErrorMessage = parser.getErrorMessage();
+				return parser.result();
+			}
+			catch (IOException e) {
+				if(Logging.WARNING) Log.w(Logging.TAG, "error in setCcConfig()", e);
+				return false;
+			}
+		
+	}
+	
+	public synchronized String getCcConfig() {
+		//TODO: needs proper parsing
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<get_cc_config/>");
+			
+			sendRequest(mRequest.toString());
+			String reply = receiveReply();
+			Log.d(Logging.TAG, reply);
+			return reply;
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in getCcConfig()", e);
+			return "";
+		}
+	}
+	
+	public synchronized Boolean readCcConfig() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<read_cc_config/>");
+
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in readCcConfig()", e);
+			return false;
+		}
+	}
+	
+	public synchronized Boolean runBenchmarks() {
+		try {
+			mRequest.setLength(0);
+			mRequest.append("<run_benchmarks/>");
+
+			sendRequest(mRequest.toString());
+			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
+			if (parser == null)
+				return false;
+			mLastErrorMessage = parser.getErrorMessage();
+			return parser.result();
+		} catch (IOException e) {
+			if(Logging.WARNING) Log.w(Logging.TAG, "error in runBenchmark()", e);
+			return false;
+		}
+		
+	}
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/SimpleReplyParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/SimpleReplyParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/SimpleReplyParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/SimpleReplyParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/TimePreferences.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/TimePreferences.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/TimePreferences.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/TimePreferences.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Transfer.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Transfer.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Transfer.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Transfer.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/TransfersParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/TransfersParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/TransfersParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/TransfersParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/VersionInfo.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/VersionInfo.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/VersionInfo.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/VersionInfo.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/VersionInfoParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/VersionInfoParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/VersionInfoParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/VersionInfoParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/Workunit.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Workunit.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/Workunit.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/Workunit.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/WorkunitsParser.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/WorkunitsParser.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/rpc/WorkunitsParser.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/rpc/WorkunitsParser.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/util/SystemUiHider.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/util/SystemUiHider.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/util/SystemUiHider.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/util/SystemUiHider.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/util/SystemUiHiderBase.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/util/SystemUiHiderBase.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/util/SystemUiHiderBase.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/util/SystemUiHiderBase.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/util/SystemUiHiderHoneycomb.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/util/SystemUiHiderHoneycomb.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/util/SystemUiHiderHoneycomb.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/util/SystemUiHiderHoneycomb.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/utils/BOINCDefs.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/BOINCDefs.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/utils/BOINCDefs.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/BOINCDefs.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/utils/BOINCErrors.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/BOINCErrors.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/utils/BOINCErrors.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/BOINCErrors.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/utils/BOINCUtils.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/BOINCUtils.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/utils/BOINCUtils.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/BOINCUtils.java
diff --git a/android/BOINC/src/edu/berkeley/boinc/utils/Logging.java b/android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/Logging.java
similarity index 100%
rename from android/BOINC/src/edu/berkeley/boinc/utils/Logging.java
rename to android/BOINC/app/src/main/java/edu/berkeley/boinc/utils/Logging.java
diff --git a/android/BOINC/res/drawable/icon_notices_tab.xml b/android/BOINC/app/src/main/res/drawable/icon_notices_tab.xml
similarity index 100%
rename from android/BOINC/res/drawable/icon_notices_tab.xml
rename to android/BOINC/app/src/main/res/drawable/icon_notices_tab.xml
diff --git a/android/BOINC/res/drawable/icon_prefs_tab.xml b/android/BOINC/app/src/main/res/drawable/icon_prefs_tab.xml
similarity index 100%
rename from android/BOINC/res/drawable/icon_prefs_tab.xml
rename to android/BOINC/app/src/main/res/drawable/icon_prefs_tab.xml
diff --git a/android/BOINC/res/drawable/icon_projects_tab.xml b/android/BOINC/app/src/main/res/drawable/icon_projects_tab.xml
similarity index 100%
rename from android/BOINC/res/drawable/icon_projects_tab.xml
rename to android/BOINC/app/src/main/res/drawable/icon_projects_tab.xml
diff --git a/android/BOINC/res/drawable/icon_status_tab.xml b/android/BOINC/app/src/main/res/drawable/icon_status_tab.xml
similarity index 100%
rename from android/BOINC/res/drawable/icon_status_tab.xml
rename to android/BOINC/app/src/main/res/drawable/icon_status_tab.xml
diff --git a/android/BOINC/res/drawable/icon_tasks_tab.xml b/android/BOINC/app/src/main/res/drawable/icon_tasks_tab.xml
similarity index 100%
rename from android/BOINC/res/drawable/icon_tasks_tab.xml
rename to android/BOINC/app/src/main/res/drawable/icon_tasks_tab.xml
diff --git a/android/BOINC/res/drawable/navlist_counter_background.xml b/android/BOINC/app/src/main/res/drawable/navlist_counter_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/navlist_counter_background.xml
rename to android/BOINC/app/src/main/res/drawable/navlist_counter_background.xml
diff --git a/android/BOINC/res/drawable/navlist_item_background.xml b/android/BOINC/app/src/main/res/drawable/navlist_item_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/navlist_item_background.xml
rename to android/BOINC/app/src/main/res/drawable/navlist_item_background.xml
diff --git a/android/BOINC/res/drawable/navlist_item_focussed_background.xml b/android/BOINC/app/src/main/res/drawable/navlist_item_focussed_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/navlist_item_focussed_background.xml
rename to android/BOINC/app/src/main/res/drawable/navlist_item_focussed_background.xml
diff --git a/android/BOINC/res/drawable/navlist_item_pressed_and_focussed_background.xml b/android/BOINC/app/src/main/res/drawable/navlist_item_pressed_and_focussed_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/navlist_item_pressed_and_focussed_background.xml
rename to android/BOINC/app/src/main/res/drawable/navlist_item_pressed_and_focussed_background.xml
diff --git a/android/BOINC/res/drawable/navlist_item_pressed_background.xml b/android/BOINC/app/src/main/res/drawable/navlist_item_pressed_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/navlist_item_pressed_background.xml
rename to android/BOINC/app/src/main/res/drawable/navlist_item_pressed_background.xml
diff --git a/android/BOINC/res/drawable/navlist_selector.xml b/android/BOINC/app/src/main/res/drawable/navlist_selector.xml
similarity index 100%
rename from android/BOINC/res/drawable/navlist_selector.xml
rename to android/BOINC/app/src/main/res/drawable/navlist_selector.xml
diff --git a/android/BOINC/res/drawable/navlist_selector_pressed.xml b/android/BOINC/app/src/main/res/drawable/navlist_selector_pressed.xml
similarity index 100%
rename from android/BOINC/res/drawable/navlist_selector_pressed.xml
rename to android/BOINC/app/src/main/res/drawable/navlist_selector_pressed.xml
diff --git a/android/BOINC/res/drawable/progressbar.xml b/android/BOINC/app/src/main/res/drawable/progressbar.xml
similarity index 100%
rename from android/BOINC/res/drawable/progressbar.xml
rename to android/BOINC/app/src/main/res/drawable/progressbar.xml
diff --git a/android/BOINC/res/drawable/shape_blue_border.xml b/android/BOINC/app/src/main/res/drawable/shape_blue_border.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_blue_border.xml
rename to android/BOINC/app/src/main/res/drawable/shape_blue_border.xml
diff --git a/android/BOINC/res/drawable/shape_button_blue.xml b/android/BOINC/app/src/main/res/drawable/shape_button_blue.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_button_blue.xml
rename to android/BOINC/app/src/main/res/drawable/shape_button_blue.xml
diff --git a/android/BOINC/res/drawable/shape_button_grey.xml b/android/BOINC/app/src/main/res/drawable/shape_button_grey.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_button_grey.xml
rename to android/BOINC/app/src/main/res/drawable/shape_button_grey.xml
diff --git a/android/BOINC/res/drawable/shape_button_red.xml b/android/BOINC/app/src/main/res/drawable/shape_button_red.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_button_red.xml
rename to android/BOINC/app/src/main/res/drawable/shape_button_red.xml
diff --git a/android/BOINC/res/drawable/shape_dark_blue_background_wo_stroke.xml b/android/BOINC/app/src/main/res/drawable/shape_dark_blue_background_wo_stroke.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_dark_blue_background_wo_stroke.xml
rename to android/BOINC/app/src/main/res/drawable/shape_dark_blue_background_wo_stroke.xml
diff --git a/android/BOINC/res/drawable/shape_dark_blue_border.xml b/android/BOINC/app/src/main/res/drawable/shape_dark_blue_border.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_dark_blue_border.xml
rename to android/BOINC/app/src/main/res/drawable/shape_dark_blue_border.xml
diff --git a/android/BOINC/res/drawable/shape_dark_blue_gradient_2.xml b/android/BOINC/app/src/main/res/drawable/shape_dark_blue_gradient_2.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_dark_blue_gradient_2.xml
rename to android/BOINC/app/src/main/res/drawable/shape_dark_blue_gradient_2.xml
diff --git a/android/BOINC/res/drawable/shape_dark_blue_gradient_background.xml b/android/BOINC/app/src/main/res/drawable/shape_dark_blue_gradient_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_dark_blue_gradient_background.xml
rename to android/BOINC/app/src/main/res/drawable/shape_dark_blue_gradient_background.xml
diff --git a/android/BOINC/res/drawable/shape_light_blue_background.xml b/android/BOINC/app/src/main/res/drawable/shape_light_blue_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_light_blue_background.xml
rename to android/BOINC/app/src/main/res/drawable/shape_light_blue_background.xml
diff --git a/android/BOINC/res/drawable/shape_light_blue_background_wo_stroke.xml b/android/BOINC/app/src/main/res/drawable/shape_light_blue_background_wo_stroke.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_light_blue_background_wo_stroke.xml
rename to android/BOINC/app/src/main/res/drawable/shape_light_blue_background_wo_stroke.xml
diff --git a/android/BOINC/res/drawable/shape_light_blue_border.xml b/android/BOINC/app/src/main/res/drawable/shape_light_blue_border.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_light_blue_border.xml
rename to android/BOINC/app/src/main/res/drawable/shape_light_blue_border.xml
diff --git a/android/BOINC/res/drawable/shape_light_green_background.xml b/android/BOINC/app/src/main/res/drawable/shape_light_green_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_light_green_background.xml
rename to android/BOINC/app/src/main/res/drawable/shape_light_green_background.xml
diff --git a/android/BOINC/res/drawable/shape_light_red_background.xml b/android/BOINC/app/src/main/res/drawable/shape_light_red_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_light_red_background.xml
rename to android/BOINC/app/src/main/res/drawable/shape_light_red_background.xml
diff --git a/android/BOINC/res/drawable/shape_light_red_background_wo_stroke.xml b/android/BOINC/app/src/main/res/drawable/shape_light_red_background_wo_stroke.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_light_red_background_wo_stroke.xml
rename to android/BOINC/app/src/main/res/drawable/shape_light_red_background_wo_stroke.xml
diff --git a/android/BOINC/res/drawable/shape_preferences_status_background.xml b/android/BOINC/app/src/main/res/drawable/shape_preferences_status_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_preferences_status_background.xml
rename to android/BOINC/app/src/main/res/drawable/shape_preferences_status_background.xml
diff --git a/android/BOINC/res/drawable/shape_yellow_background.xml b/android/BOINC/app/src/main/res/drawable/shape_yellow_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/shape_yellow_background.xml
rename to android/BOINC/app/src/main/res/drawable/shape_yellow_background.xml
diff --git a/android/BOINC/res/drawable/tab_background.xml b/android/BOINC/app/src/main/res/drawable/tab_background.xml
similarity index 100%
rename from android/BOINC/res/drawable/tab_background.xml
rename to android/BOINC/app/src/main/res/drawable/tab_background.xml
diff --git a/android/BOINC/res/drawable/tab_background_selected.xml b/android/BOINC/app/src/main/res/drawable/tab_background_selected.xml
similarity index 100%
rename from android/BOINC/res/drawable/tab_background_selected.xml
rename to android/BOINC/app/src/main/res/drawable/tab_background_selected.xml
diff --git a/android/BOINC/res/drawable/tab_background_unselected.xml b/android/BOINC/app/src/main/res/drawable/tab_background_unselected.xml
similarity index 100%
rename from android/BOINC/res/drawable/tab_background_unselected.xml
rename to android/BOINC/app/src/main/res/drawable/tab_background_unselected.xml
diff --git a/android/BOINC/res/drawable/tab_text.xml b/android/BOINC/app/src/main/res/drawable/tab_text.xml
similarity index 100%
rename from android/BOINC/res/drawable/tab_text.xml
rename to android/BOINC/app/src/main/res/drawable/tab_text.xml
diff --git a/android/BOINC/res/layout/activity_splash.xml b/android/BOINC/app/src/main/res/layout/activity_splash.xml
similarity index 100%
rename from android/BOINC/res/layout/activity_splash.xml
rename to android/BOINC/app/src/main/res/layout/activity_splash.xml
diff --git a/android/BOINC/res/layout/attach_project_acctmgr_dialog.xml b/android/BOINC/app/src/main/res/layout/attach_project_acctmgr_dialog.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_acctmgr_dialog.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_acctmgr_dialog.xml
diff --git a/android/BOINC/res/layout/attach_project_batch_conflicts_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_batch_conflicts_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_batch_conflicts_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_batch_conflicts_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_batch_conflicts_listitem.xml b/android/BOINC/app/src/main/res/layout/attach_project_batch_conflicts_listitem.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_batch_conflicts_listitem.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_batch_conflicts_listitem.xml
diff --git a/android/BOINC/res/layout/attach_project_batch_processing_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_batch_processing_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_batch_processing_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_batch_processing_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_credential_input_dialog.xml b/android/BOINC/app/src/main/res/layout/attach_project_credential_input_dialog.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_credential_input_dialog.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_credential_input_dialog.xml
diff --git a/android/BOINC/res/layout/attach_project_credential_input_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_credential_input_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_credential_input_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_credential_input_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_hint_contribution_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_hint_contribution_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_hint_contribution_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_hint_contribution_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_hint_platforms_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_hint_platforms_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_hint_platforms_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_hint_platforms_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_hint_projectwebsite_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_hint_projectwebsite_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_hint_projectwebsite_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_hint_projectwebsite_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_info_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_info_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_info_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_info_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_list_layout.xml b/android/BOINC/app/src/main/res/layout/attach_project_list_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_list_layout.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_list_layout.xml
diff --git a/android/BOINC/res/layout/attach_project_list_layout_listitem.xml b/android/BOINC/app/src/main/res/layout/attach_project_list_layout_listitem.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_list_layout_listitem.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_list_layout_listitem.xml
diff --git a/android/BOINC/res/layout/attach_project_manual_url_input_dialog.xml b/android/BOINC/app/src/main/res/layout/attach_project_manual_url_input_dialog.xml
similarity index 100%
rename from android/BOINC/res/layout/attach_project_manual_url_input_dialog.xml
rename to android/BOINC/app/src/main/res/layout/attach_project_manual_url_input_dialog.xml
diff --git a/android/BOINC/res/layout/dialog_about.xml b/android/BOINC/app/src/main/res/layout/dialog_about.xml
similarity index 100%
rename from android/BOINC/res/layout/dialog_about.xml
rename to android/BOINC/app/src/main/res/layout/dialog_about.xml
diff --git a/android/BOINC/res/layout/dialog_confirm.xml b/android/BOINC/app/src/main/res/layout/dialog_confirm.xml
similarity index 100%
rename from android/BOINC/res/layout/dialog_confirm.xml
rename to android/BOINC/app/src/main/res/layout/dialog_confirm.xml
diff --git a/android/BOINC/res/layout/dialog_list.xml b/android/BOINC/app/src/main/res/layout/dialog_list.xml
similarity index 100%
rename from android/BOINC/res/layout/dialog_list.xml
rename to android/BOINC/app/src/main/res/layout/dialog_list.xml
diff --git a/android/BOINC/res/layout/eventlog_client_layout.xml b/android/BOINC/app/src/main/res/layout/eventlog_client_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/eventlog_client_layout.xml
rename to android/BOINC/app/src/main/res/layout/eventlog_client_layout.xml
diff --git a/android/BOINC/res/layout/eventlog_client_listitem_layout.xml b/android/BOINC/app/src/main/res/layout/eventlog_client_listitem_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/eventlog_client_listitem_layout.xml
rename to android/BOINC/app/src/main/res/layout/eventlog_client_listitem_layout.xml
diff --git a/android/BOINC/res/layout/eventlog_gui_layout.xml b/android/BOINC/app/src/main/res/layout/eventlog_gui_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/eventlog_gui_layout.xml
rename to android/BOINC/app/src/main/res/layout/eventlog_gui_layout.xml
diff --git a/android/BOINC/res/layout/eventlog_gui_listitem_layout.xml b/android/BOINC/app/src/main/res/layout/eventlog_gui_listitem_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/eventlog_gui_listitem_layout.xml
rename to android/BOINC/app/src/main/res/layout/eventlog_gui_listitem_layout.xml
diff --git a/android/BOINC/res/layout/generic_layout_loading.xml b/android/BOINC/app/src/main/res/layout/generic_layout_loading.xml
similarity index 100%
rename from android/BOINC/res/layout/generic_layout_loading.xml
rename to android/BOINC/app/src/main/res/layout/generic_layout_loading.xml
diff --git a/android/BOINC/res/layout/main.xml b/android/BOINC/app/src/main/res/layout/main.xml
similarity index 100%
rename from android/BOINC/res/layout/main.xml
rename to android/BOINC/app/src/main/res/layout/main.xml
diff --git a/android/BOINC/res/layout/main_loading.xml b/android/BOINC/app/src/main/res/layout/main_loading.xml
similarity index 100%
rename from android/BOINC/res/layout/main_loading.xml
rename to android/BOINC/app/src/main/res/layout/main_loading.xml
diff --git a/android/BOINC/res/layout/main_tab_layout.xml b/android/BOINC/app/src/main/res/layout/main_tab_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/main_tab_layout.xml
rename to android/BOINC/app/src/main/res/layout/main_tab_layout.xml
diff --git a/android/BOINC/res/layout/navlist_listitem.xml b/android/BOINC/app/src/main/res/layout/navlist_listitem.xml
similarity index 100%
rename from android/BOINC/res/layout/navlist_listitem.xml
rename to android/BOINC/app/src/main/res/layout/navlist_listitem.xml
diff --git a/android/BOINC/res/layout/navlist_listitem_subitem.xml b/android/BOINC/app/src/main/res/layout/navlist_listitem_subitem.xml
similarity index 100%
rename from android/BOINC/res/layout/navlist_listitem_subitem.xml
rename to android/BOINC/app/src/main/res/layout/navlist_listitem_subitem.xml
diff --git a/android/BOINC/res/layout/notices_layout.xml b/android/BOINC/app/src/main/res/layout/notices_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/notices_layout.xml
rename to android/BOINC/app/src/main/res/layout/notices_layout.xml
diff --git a/android/BOINC/res/layout/notices_layout_listitem.xml b/android/BOINC/app/src/main/res/layout/notices_layout_listitem.xml
similarity index 100%
rename from android/BOINC/res/layout/notices_layout_listitem.xml
rename to android/BOINC/app/src/main/res/layout/notices_layout_listitem.xml
diff --git a/android/BOINC/res/layout/prefs_layout.xml b/android/BOINC/app/src/main/res/layout/prefs_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/prefs_layout.xml
rename to android/BOINC/app/src/main/res/layout/prefs_layout.xml
diff --git a/android/BOINC/res/layout/prefs_layout_dialog.xml b/android/BOINC/app/src/main/res/layout/prefs_layout_dialog.xml
similarity index 100%
rename from android/BOINC/res/layout/prefs_layout_dialog.xml
rename to android/BOINC/app/src/main/res/layout/prefs_layout_dialog.xml
diff --git a/android/BOINC/res/layout/prefs_layout_dialog_pct.xml b/android/BOINC/app/src/main/res/layout/prefs_layout_dialog_pct.xml
similarity index 100%
rename from android/BOINC/res/layout/prefs_layout_dialog_pct.xml
rename to android/BOINC/app/src/main/res/layout/prefs_layout_dialog_pct.xml
diff --git a/android/BOINC/res/layout/prefs_layout_dialog_selection.xml b/android/BOINC/app/src/main/res/layout/prefs_layout_dialog_selection.xml
similarity index 100%
rename from android/BOINC/res/layout/prefs_layout_dialog_selection.xml
rename to android/BOINC/app/src/main/res/layout/prefs_layout_dialog_selection.xml
diff --git a/android/BOINC/res/layout/prefs_layout_listitem.xml b/android/BOINC/app/src/main/res/layout/prefs_layout_listitem.xml
similarity index 100%
rename from android/BOINC/res/layout/prefs_layout_listitem.xml
rename to android/BOINC/app/src/main/res/layout/prefs_layout_listitem.xml
diff --git a/android/BOINC/res/layout/prefs_layout_listitem_bool.xml b/android/BOINC/app/src/main/res/layout/prefs_layout_listitem_bool.xml
similarity index 100%
rename from android/BOINC/res/layout/prefs_layout_listitem_bool.xml
rename to android/BOINC/app/src/main/res/layout/prefs_layout_listitem_bool.xml
diff --git a/android/BOINC/res/layout/prefs_layout_listitem_category.xml b/android/BOINC/app/src/main/res/layout/prefs_layout_listitem_category.xml
similarity index 100%
rename from android/BOINC/res/layout/prefs_layout_listitem_category.xml
rename to android/BOINC/app/src/main/res/layout/prefs_layout_listitem_category.xml
diff --git a/android/BOINC/res/layout/project_details_layout.xml b/android/BOINC/app/src/main/res/layout/project_details_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/project_details_layout.xml
rename to android/BOINC/app/src/main/res/layout/project_details_layout.xml
diff --git a/android/BOINC/res/layout/project_details_slideshow_image_layout.xml b/android/BOINC/app/src/main/res/layout/project_details_slideshow_image_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/project_details_slideshow_image_layout.xml
rename to android/BOINC/app/src/main/res/layout/project_details_slideshow_image_layout.xml
diff --git a/android/BOINC/res/layout/projects_controls_listitem_layout.xml b/android/BOINC/app/src/main/res/layout/projects_controls_listitem_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/projects_controls_listitem_layout.xml
rename to android/BOINC/app/src/main/res/layout/projects_controls_listitem_layout.xml
diff --git a/android/BOINC/res/layout/projects_layout.xml b/android/BOINC/app/src/main/res/layout/projects_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/projects_layout.xml
rename to android/BOINC/app/src/main/res/layout/projects_layout.xml
diff --git a/android/BOINC/app/src/main/res/layout/projects_layout_listitem.xml b/android/BOINC/app/src/main/res/layout/projects_layout_listitem.xml
new file mode 100644
index 0000000..59db2f9
--- /dev/null
+++ b/android/BOINC/app/src/main/res/layout/projects_layout_listitem.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  This file is part of BOINC.
+  http://boinc.berkeley.edu
+  Copyright (C) 2016 University of California
+  
+  BOINC is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License
+  as published by the Free Software Foundation,
+  either version 3 of the License, or (at your option) any later version.
+  
+  BOINC is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  See the GNU Lesser General Public License for more details.
+  
+  You should have received a copy of the GNU Lesser General Public License
+  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/projectsRow"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:clickable="true">
+
+    <RelativeLayout 
+        android:id="@+id/icon_background"
+    	android:layout_width="60dp"
+    	android:layout_height="match_parent"
+    	android:minHeight="60dp"
+        android:background="@android:color/transparent">    
+	    <ImageView 
+	        android:id="@+id/project_icon"
+	        android:layout_width="48dp"
+	        android:layout_height="48dp"
+	        android:scaleType="fitCenter"
+		    android:contentDescription="@string/projects_icon"
+	    	android:layout_centerInParent="true" />
+    </RelativeLayout>
+
+    <LinearLayout 
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:layout_margin="3dp">
+
+	    <TextView
+	        android:id="@+id/project_name"
+	        android:layout_width="wrap_content"
+	        android:layout_height="wrap_content"
+	        android:textStyle="bold"
+	        android:singleLine="true"
+	        android:textAppearance="?android:attr/textAppearanceLarge" />
+
+	    <TextView
+	        android:id="@+id/project_user"
+	        android:layout_width="wrap_content"
+	        android:layout_height="wrap_content"
+	        android:textColor="@color/dark_grey"
+	        android:textAppearance="?android:attr/textAppearanceMedium"
+	        android:layout_marginBottom="5dp" />
+
+	    <TextView 
+	   		android:layout_width="wrap_content"
+		    android:id="@+id/project_notice"
+	   		android:layout_height="wrap_content"
+	   		android:textAppearance="?android:attr/textAppearanceSmall"
+	   		android:background="@drawable/shape_yellow_background"
+	   		android:textColor="@color/black"
+	   		android:textStyle="bold"
+	   		android:padding="3dip"
+	   		android:layout_marginBottom="5dip"
+	   		android:visibility="gone"/>
+
+	    <TextView
+	        android:id="@+id/project_status"
+	        android:layout_width="wrap_content"
+	        android:layout_height="wrap_content"
+	        android:textColor="@color/dark_grey"
+	        android:textAppearance="?android:attr/textAppearanceSmall" />
+
+	    <TextView
+	        android:id="@+id/project_transfers"
+	        android:layout_width="wrap_content"
+	        android:layout_height="wrap_content"
+	        android:textColor="@color/dark_grey"
+	        android:textAppearance="?android:attr/textAppearanceSmall"
+	        android:visibility="gone" />
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/project_credits_label"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/projects_credits"
+                android:textColor="@color/dark_grey"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/project_credits"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:text="@string/projects_credits_host_and_user"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="@color/dark_grey"/>
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>
diff --git a/android/BOINC/res/layout/projects_layout_listitem_acctmgr.xml b/android/BOINC/app/src/main/res/layout/projects_layout_listitem_acctmgr.xml
similarity index 100%
rename from android/BOINC/res/layout/projects_layout_listitem_acctmgr.xml
rename to android/BOINC/app/src/main/res/layout/projects_layout_listitem_acctmgr.xml
diff --git a/android/BOINC/res/layout/status_layout.xml b/android/BOINC/app/src/main/res/layout/status_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/status_layout.xml
rename to android/BOINC/app/src/main/res/layout/status_layout.xml
diff --git a/android/BOINC/res/layout/tasks_layout.xml b/android/BOINC/app/src/main/res/layout/tasks_layout.xml
similarity index 100%
rename from android/BOINC/res/layout/tasks_layout.xml
rename to android/BOINC/app/src/main/res/layout/tasks_layout.xml
diff --git a/android/BOINC/res/layout/tasks_layout_listitem.xml b/android/BOINC/app/src/main/res/layout/tasks_layout_listitem.xml
similarity index 100%
rename from android/BOINC/res/layout/tasks_layout_listitem.xml
rename to android/BOINC/app/src/main/res/layout/tasks_layout_listitem.xml
diff --git a/android/BOINC/res/menu/eventlog_menu.xml b/android/BOINC/app/src/main/res/menu/eventlog_menu.xml
similarity index 100%
rename from android/BOINC/res/menu/eventlog_menu.xml
rename to android/BOINC/app/src/main/res/menu/eventlog_menu.xml
diff --git a/android/BOINC/res/menu/main_menu.xml b/android/BOINC/app/src/main/res/menu/main_menu.xml
similarity index 100%
rename from android/BOINC/res/menu/main_menu.xml
rename to android/BOINC/app/src/main/res/menu/main_menu.xml
diff --git a/android/BOINC/res/menu/project_details_menu.xml b/android/BOINC/app/src/main/res/menu/project_details_menu.xml
similarity index 100%
rename from android/BOINC/res/menu/project_details_menu.xml
rename to android/BOINC/app/src/main/res/menu/project_details_menu.xml
diff --git a/android/BOINC/res/menu/projects_menu.xml b/android/BOINC/app/src/main/res/menu/projects_menu.xml
similarity index 100%
rename from android/BOINC/res/menu/projects_menu.xml
rename to android/BOINC/app/src/main/res/menu/projects_menu.xml
diff --git a/android/BOINC/app/src/main/res/values-bg/strings.xml b/android/BOINC/app/src/main/res/values-bg/strings.xml
new file mode 100644
index 0000000..fac665b
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-bg/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Зареждане! Моля, изчакайте…</string>
+  <string name="generic_button_continue">Продължи</string>
+  <string name="generic_button_finish">Приключи</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Избери научен проект/и, в който искаш да участваш:</string>
+  <string name="attachproject_list_header">Избери проект</string>
+  <string name="attachproject_list_manual_button">Добави проект чрез URL</string>
+  <string name="attachproject_list_manual_dialog_title">Въведи URL адрес на проекта:</string>
+  <string name="attachproject_list_manual_dialog_button">Добави проект</string>
+  <string name="attachproject_list_manual_no_url">Моля въведи URL адрес на проекта</string>
+  <string name="attachproject_list_acctmgr_button">Добави акаунт мениджър</string>
+  <string name="attachproject_list_no_internet">Няма връзка с интернет</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Въведи информация за акаунта</string>
+  <string name="attachproject_credential_input_desc">Въведи информация за акаунта за избраните проекти:</string>
+  <string name="attachproject_credential_input_show_pwd">Покажи парола</string>
+  <string name="attachproject_individual_credential_input">Индивидуално добавяне на проекти</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Имаше проблеми при добавянето на научни проекти:</string>
+  <string name="attachproject_conflict_undefined">Неуспешно свързване</string>
+  <string name="attachproject_conflict_not_unique">Акаунтът съществува с друга парола</string>
+  <string name="attachproject_conflict_bad_password">Неправилна парола</string>
+  <string name="attachproject_conflict_unknown_user">Акаунтът не съществува</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Акаунтът не съществува. Посетете уебсайта на проекта, за да се регистрирате.</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Закачане</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Подсказка</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Как да допринесете:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Свържете се с WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Включете зарядно устройство</string>
+  <string name="attachproject_hint_contribtion_screen">3. Изключете екрана</string>
+  <string name="attachproject_hint_projectwebsite_header">Посетете уебсайтовете на проектите, за да:</string>
+  <string name="attachproject_hint_projectwebsite_science">Научите повече за науката зад проекта</string>
+  <string name="attachproject_hint_projectwebsite_stats">Видите статистика за приноса</string>
+  <string name="attachproject_hint_projectwebsite_community">Се свържете с други доброволци</string>
+  <string name="attachproject_hint_platforms_header">BOINC е достъпна и за Вашия компютър или лаптоп. Посетете boinc.berkeley.edu, за да научите повече.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Свързване със сървъра на проекта…</string>
+  <string name="attachproject_login_image_description">Лого на проекта.</string>
+  <string name="attachproject_login_header_general_area">Основна област:</string>
+  <string name="attachproject_login_header_specific_area">Специфична област:</string>
+  <string name="attachproject_login_header_description">Описание:</string>
+  <string name="attachproject_login_header_home">Вкъщи:</string>
+  <string name="attachproject_login_header_url">Интернет страница:</string>
+  <string name="attachproject_login_header_platform">Андроид:</string>
+  <string name="attachproject_login_platform_supported">Този проект поддържа Андроид устройства</string>
+  <string name="attachproject_login_platform_not_supported">Този проект не поддържа Андроид устройства</string>
+  <string name="attachproject_login_category_terms_of_use">Условия за използване на</string>
+  <string name="attachproject_login_accept_terms_of_use">Със създаването на акаунт в този проект, Вие се съгласявате с условията за ползване както е посочено по-горе.</string>
+  <string name="attachproject_login_category_login">Впишете се със съществуващ акаунт</string>
+  <string name="attachproject_login_header_id_email">Имейл:</string>
+  <string name="attachproject_login_header_id_name">Име:</string>
+  <string name="attachproject_login_header_pwd">Парола:</string>
+  <string name="attachproject_login_category_creation">Нов за</string>
+  <string name="attachproject_login_header_creation_enabled">Регистрирайте акаунт, за да участвате:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Посетете интернет страницата на проекта, за да създадете акаунт:</string>
+  <string name="attachproject_login_header_creation_disabled">В момента този проект не приема нови акаунти.</string>
+  <string name="attachproject_login_button_registration">Регистрирайте се</string>
+  <string name="attachproject_login_button_login">Впишете се</string>
+  <string name="attachproject_login_button_forgotpw">Забравена парола</string>
+  <string name="attachproject_login_error_toast">Неуспешно свързване с проекта!</string>
+  <string name="attachproject_login_attached">Прикрепен</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Регистрация на акаунта за</string>
+  <string name="attachproject_registration_header_url">Проект:</string>
+  <string name="attachproject_registration_header_email">Имейл:</string>
+  <string name="attachproject_registration_header_username">Име:</string>
+  <string name="attachproject_registration_header_teamname">Отбор:</string>
+  <string name="attachproject_registration_header_pwd">Парола:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Напишете отново:</string>
+  <string name="attachproject_registration_button">Създай</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Използвайте BOINC акаунт мениджъра, за да добавяте или управлявате по няколко проекта</string>
+  <string name="attachproject_acctmgr_header">Добави акаунт мениджър</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Потребител:</string>
+  <string name="attachproject_acctmgr_header_pwd">Парола:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Напишете отново:</string>
+  <string name="attachproject_acctmgr_button">Добавяне</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Не е намерен потребител</string>
+  <string name="attachproject_error_short_pwd">Паролата е твърде къса</string>
+  <string name="attachproject_error_no_internet">Връзката не е успешна</string>
+  <string name="attachproject_error_pwd_no_match">Паролите не съвпадат</string>
+  <string name="attachproject_error_pwd_no_retype">Моля въведете паролата отново</string>
+  <string name="attachproject_error_no_url">Моля въведете URL</string>
+  <string name="attachproject_error_no_email">Моля въведете Имейл адрес</string>
+  <string name="attachproject_error_no_pwd">Моля въведете парола</string>
+  <string name="attachproject_error_no_name">Моля въведете потребителско име</string>
+  <string name="attachproject_error_unknown">се провали</string>
+  <string name="attachproject_error_bad_username">Името на потребителя е отказано</string>
+  <string name="attachproject_error_email_in_use">Имейлът вече е използван</string>
+  <string name="attachproject_error_project_down">Проектът е неактивен</string>
+  <string name="attachproject_error_email_bad_syntax">Имейлът е отказан</string>
+  <string name="attachproject_error_bad_pwd">Паролата е отказана</string>
+  <string name="attachproject_error_creation_disabled">Създаването на акаунт е деактивирано за този проект</string>
+  <string name="attachproject_error_invalid_url">Невалиден URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Назад</string>
+  <string name="attachproject_working_finish_button">Приключи</string>
+  <string name="attachproject_working_check_desc">Успешен</string>
+  <string name="attachproject_working_failed_desc">Неуспешен</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Свържи се</string>
+  <string name="attachproject_working_verify">Удостовери акаунт</string>
+  <string name="attachproject_working_register">Регистрирайте акаунт</string>
+  <string name="attachproject_working_login">Впишете се</string>
+  <string name="attachproject_working_acctmgr">Добави акаунт мениджър</string>
+  <string name="attachproject_working_acctmgr_sync">Синхронизирай</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Натиснете тук, за да изберете проект.</string>
+  <string name="main_error">Уууупсс</string>
+  <string name="main_error_long">…това не трябва да се случва!\nНатиснете на иконата, за да опитате отново.</string>
+  <string name="main_title_icon_desc">BOINC икона</string>
+  <!--tab names-->
+  <string name="tab_status">Статус</string>
+  <string name="tab_projects">Проекти</string>
+  <string name="tab_tasks">Задачи</string>
+  <string name="tab_transfers">Трансфери</string>
+  <string name="tab_preferences">Предпочитания</string>
+  <string name="tab_notices">Известия</string>
+  <string name="tab_desc">Навигация</string>
+  <!--status strings-->
+  <string name="status_running">Изчисляване</string>
+  <string name="status_running_long">Благодаря Ви за участието.</string>
+  <string name="status_paused">Временно прекратено</string>
+  <string name="status_idle">Няма нищо за вършене</string>
+  <string name="status_idle_long">Изчакване на задачи…</string>
+  <string name="status_computing_disabled">Временно прекратено</string>
+  <string name="status_computing_disabled_long">Натиснете play, за да подновите връзката по интернет и изчисленията.</string>
+  <string name="status_launching">Стартиране…</string>
+  <string name="status_noproject">Изберете проект, за да участвате в него.</string>
+  <string name="status_closing">Затваряне…</string>
+  <string name="status_benchmarking">Изчисляване на референтните показатели на централния процесор…</string>
+  <string name="status_image_description">изображение на проекта</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Четене на предпочитанията…</string>
+  <string name="prefs_submit_button">Запази</string>
+  <string name="prefs_dialog_title">Въведете нова стойност:</string>
+  <string name="prefs_dialog_title_selection">Изберете:</string>
+  <string name="prefs_category_general">Основен</string>
+  <string name="prefs_category_network">Мрежа</string>
+  <string name="prefs_category_power">Мощност</string>
+  <string name="prefs_category_cpu">Централен процесор</string>
+  <string name="prefs_category_storage">Съхранение</string>
+  <string name="prefs_category_memory">Памет</string>
+  <string name="prefs_category_debug">Отстраняване на грешки</string>
+  <string name="prefs_show_advanced_header">Покажи разширените предпочитания и контроли…</string>
+  <string name="prefs_suspend_when_screen_on">Спирай изчисленията докато екранът е включен</string>
+  <string name="prefs_stationary_device_mode_header">Режим на стационарно устройство</string>
+  <string name="prefs_stationary_device_mode_description">Позволява изчисленията независимо от настройките за мощността. Изберете само ако устройството няма батерия.</string>
+  <string name="prefs_power_source_header">Източници на енергия за изчисление</string>
+  <string name="prefs_power_source_description">Изберете източниците на енергия, които BOINC може да използва за изчисления.</string>
+  <string name="prefs_power_source_ac">Зарядно устройство към ел. контакт</string>
+  <string name="prefs_power_source_usb">USB връзка</string>
+  <string name="prefs_power_source_wireless">Безжично зарядно устройство</string>
+  <string name="prefs_power_source_battery">Батерия</string>
+  <string name="battery_charge_min_pct_header">Мин. ниво на батерия</string>
+  <string name="battery_charge_min_pct_description">BOINC временно прекратява изчисленията под определено ниво на зареждане на батерията.</string>
+  <string name="battery_temperature_max_header">Макс. температура на батерия</string>
+  <string name="battery_temperature_max_description">BOINC временно прекратява изчисленията над определена температура на батерията. Не е препоръчително да променяте тази стойност.</string>
+  <string name="prefs_disk_max_pct_header">Макс. използвано пространство за съхранение</string>
+  <string name="prefs_disk_max_pct_description">Колко процента от пространството за съхранение на вашето устройство е позволено на BOINC да използва?</string>
+  <string name="prefs_disk_min_free_gb_header">Мин. неизползвано пространство</string>
+  <string name="prefs_disk_min_free_gb_description">Колко от пространството за съхранение на вашето устройство да остане свободно?</string>
+  <string name="prefs_disk_access_interval_header">Интервал за достъп</string>
+  <string name="prefs_disk_access_interval_description">Предлага интервал между достъпванията до диска</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Дневен лимит на трансфер</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Ограничава дневния трафик на данни породен от BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Прехвърляй задачи само през WiFi</string>
+  <string name="prefs_autostart_header">Автоматично стартиране</string>
+  <string name="prefs_show_notification_notices_header">Показвай известия за новини</string>
+  <string name="prefs_show_notification_suspended_header">Показвай известия докато изчисленията са временно прекратени</string>
+  <string name="prefs_cpu_number_cpus_header">Използвани CPU ядра</string>
+  <string name="prefs_cpu_number_cpus_description">Ограничава броя CPU ядра които BOINC използва за изчисления.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Пауза при CPU употреба над</string>
+  <string name="prefs_cpu_other_load_suspension_description">Определя кога BOINC спира изчисленията поради заетост на процесора от други приложения</string>
+  <string name="prefs_cpu_time_max_header">CPU лимит</string>
+  <string name="prefs_cpu_time_max_description">Ограничава CPU време, което BOINC използва за изчисления.</string>
+  <string name="prefs_memory_max_idle_header">RAM лимит</string>
+  <string name="prefs_memory_max_idle_description">Ограничава количеството RAM, което е позволено на задачите да заемат.</string>
+  <string name="prefs_client_log_flags_header">Флагове за записите на BOINC Клиента</string>
+  <string name="prefs_gui_log_level_header">Степен на вербалност на записите на GUI</string>
+  <string name="prefs_gui_log_level_description">Дефинира нивото на подробност на съобщенията от GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">сек</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Прочитане на проекти…</string>
+  <string name="projects_add">Добавете проект</string>
+  <string name="projects_icon">Икона на проекта</string>
+  <string name="projects_credits">Кредит:</string>
+  <string name="projects_credits_host_and_user">%1$,d (на това устройство) %2$,d (общо)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Временно прекратено от потребител</string>
+  <string name="projects_status_dontrequestmorework">Няма да взима нови задачи</string>
+  <string name="projects_status_ended">Проекта приключи - OK да се премахне</string>
+  <string name="projects_status_detachwhendone">Ще бъде премахнато като приключи задачите</string>
+  <string name="projects_status_schedrpcpending">Заявка на Планировчика в процес на изчакване</string>
+  <string name="projects_status_schedrpcinprogress">Заявка на Планировчика в процес на извършване</string>
+  <string name="projects_status_trickleuppending">Изходящо съобщение в процес на изчакване</string>
+  <string name="projects_status_backoff">Връзка е планирана след:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Команди на проекта:</string>
+  <string name="projects_control_visit_website">Посетете уебсайт</string>
+  <string name="projects_control_update">Обнови</string>
+  <string name="projects_control_remove">Премахни</string>
+  <string name="projects_control_suspend">Временно прекратяване</string>
+  <string name="projects_control_resume">Поднови</string>
+  <string name="projects_control_nonewtasks">Без нови задачи</string>
+  <string name="projects_control_allownewtasks">Позволи нови задачи</string>
+  <string name="projects_control_reset">Нулиране</string>
+  <string name="projects_control_dialog_title_acctmgr">Команди за акаунт мениджъра:</string>
+  <string name="projects_control_sync_acctmgr">Синхронизирай</string>
+  <string name="projects_control_remove_acctmgr">Деактивирай</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Премахване на проект?</string>
+  <string name="projects_confirm_detach_message">Сигурни ли сте, че искате да премахнете</string>
+  <string name="projects_confirm_detach_message2">от BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Премахни</string>
+  <string name="projects_confirm_reset_title">Нулиране на проект</string>
+  <string name="projects_confirm_reset_message">Сигурни ли сте, че искате да нулирате</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Нулиране</string>
+  <string name="projects_confirm_remove_acctmgr_title">Деактивирайте акаунт мениджъра</string>
+  <string name="projects_confirm_remove_acctmgr_message">Сигурни ли сте, че искате да спрете да използвате</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Деактивирай</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Име на Задача:</string>
+  <string name="tasks_header_elapsed_time">Изминало време:</string>
+  <string name="tasks_header_project_paused">(временно прекратена)</string>
+  <string name="tasks_header_deadline">Краен срок:</string>
+  <string name="tasks_result_new">нов</string>
+  <string name="tasks_result_files_downloading">изчаква за изтегляне</string>
+  <string name="tasks_result_files_downloaded">изтеглянето е завършено</string>
+  <string name="tasks_result_compute_error">грешка в изчислението</string>
+  <string name="tasks_result_files_uploading">в процес на ъплоуд</string>
+  <string name="tasks_result_files_uploaded">ъплоуда завърши</string>
+  <string name="tasks_result_aborted">прекратена</string>
+  <string name="tasks_result_upload_failed">ъплоудът е неуспешен</string>
+  <string name="tasks_active_uninitialized">готов</string>
+  <string name="tasks_active_executing">работи</string>
+  <string name="tasks_active_suspended">временно прекратен</string>
+  <string name="tasks_active_abort_pending">в момента прекратявам временно</string>
+  <string name="tasks_active_quit_pending">в момента прекратявам временно</string>
+  <string name="tasks_custom_suspended_via_gui">временно прекратен</string>
+  <string name="tasks_custom_project_suspended_via_gui">проектът е временно прекратен</string>
+  <string name="tasks_custom_ready_to_report">готов за докладване</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Прекратяване на задача?</string>
+  <string name="confirm_abort_task_message">Прекратяване на задача:</string>
+  <string name="confirm_abort_task_confirm">Прекрати</string>
+  <string name="confirm_cancel">Откажи</string>
+  <string name="confirm_image_desc">Диалог за потвърждение</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Четене на трансфери…</string>
+  <string name="trans_upload">Качване</string>
+  <string name="trans_download">Изтегляне</string>
+  <string name="trans_retryin">нов опит след</string>
+  <string name="trans_failed">неуспешен</string>
+  <string name="trans_suspended">временно прекратен</string>
+  <string name="trans_active">активен</string>
+  <string name="trans_pending">в режим на изчакване</string>
+  <string name="trans_projectbackoff">отстъп от проекта</string>
+  <string name="trans_header_name">Файл:</string>
+  <string name="trans_control_retry">Опитай трансфери отново</string>
+  <string name="confirm_abort_trans_title">Прекратяване на трансфер?</string>
+  <string name="confirm_abort_trans_message">Прекрати Файл:</string>
+  <string name="confirm_abort_trans_confirm">Прекрати</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">В процес на четене на новини...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Зареждане на записите от регистъра…</string>
+  <string name="eventlog_client_header">Съобщения от Клиента</string>
+  <string name="eventlog_gui_header">Съобщения от GUI</string>
+  <string name="eventlog_copy_toast">Записът е копиран в клип-борда.</string>
+  <string name="eventlog_email_subject">Регистър на Събития на BOINC за Андроид:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Изчисленията са временно прекратени.</string>
+  <string name="suspend_batteries">Свържете вашето устройство към зарядно устройство, за да продължите изчисленията.</string>
+  <string name="suspend_screen_on">Изключете екрана, за да продължите изчисленията.</string>
+  <string name="suspend_useractive">Потребителят е активен.</string>
+  <string name="suspend_tod">Извън рамката за изчислително време.</string>
+  <string name="suspend_bm">BOINC изчислява референтните CPU показатели за вашето устройство…</string>
+  <string name="suspend_disksize">Недостатъчно дисково пространство.</string>
+  <string name="suspend_cputhrottle">Планирано потискане на CPU.</string>
+  <string name="suspend_noinput">Няма скорошна активност на потребител.</string>
+  <string name="suspend_delay">Закъснение при инициализация.</string>
+  <string name="suspend_exclusiveapp">Работи ексклузивно приложение.</string>
+  <string name="suspend_cpu">Вашето устройство е заето с други приложения.</string>
+  <string name="suspend_network_quota">BOINC достигна лимита за трансфер по мрежата.</string>
+  <string name="suspend_os">Спряно от Андроид.</string>
+  <string name="suspend_wifi">Не е свързан към WiFi.</string>
+  <string name="suspend_battery_charging">Изчакване на батерията да се зареди.</string>
+  <string name="suspend_battery_charging_long">Изчисленията ще се подновят когато заряда на батерията достигне</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">в момента</string>
+  <string name="suspend_battery_overheating">Изчакване на батерията да се охлади</string>
+  <string name="suspend_user_req">Подновяване на изчисленията…</string>
+  <string name="suspend_network_user_req">ръчно.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">По заявка на потребителя</string>
+  <string name="rpcreason_needwork">За да вземе работа</string>
+  <string name="rpcreason_resultsdue">За да докладва завършените задачи</string>
+  <string name="rpcreason_trickleup">За да изпрати изходящо съобщение</string>
+  <string name="rpcreason_acctmgrreq">По заявка на акаунт мениджъра</string>
+  <string name="rpcreason_init">Инициализация на проект</string>
+  <string name="rpcreason_projectreq">По заявка на проекта</string>
+  <string name="rpcreason_unknown">Неизвестна причина</string>
+  <!--menu-->
+  <string name="menu_refresh">Опресни</string>
+  <string name="menu_emailto">Изпрати като Имейл</string>
+  <string name="menu_copy">Копирай в Клип-борда</string>
+  <string name="menu_eventlog">Регистър на Събития</string>
+  <string name="menu_exit">Изход от BOINC</string>
+  <string name="menu_run_mode_disable">Временно прекрати</string>
+  <string name="menu_run_mode_enable">Поднови</string>
+  <string name="menu_about">Относно</string>
+  <string name="menu_help">Помощ</string>
+  <!--about dialog-->
+  <string name="about_button">Връщане</string>
+  <string name="about_title">Относно</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Версия</string>
+  <string name="about_name_long">Бъркли Отворена Инфраструктура за Споделени Изчисления</string>
+  <string name="about_copyright">\u00A9 2003-2016 Калифорнийски Университет, Berkeley.</string>
+  <string name="about_copyright_reserved">Всички Права Запазени.</string>
+  <string name="about_credits">Благодарности към Института Макс Планк за Гравитационна Физика, IBM Corporation и HTC Corporation за подкрепата.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Ново известие от %1$ s</item>
+    <item quantity="other">%2$,d нови известия</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Засечено е приложение за доброволно участие в изчисления</string>
+  <string name="nonexcl_dialog_text">Друго приложение за доброволно участие в изчисления работи в момента на това устройство. Само една версия може да работи в даден момент.</string>
+  <string name="nonexcl_dialog_exit">Изход</string>
+  <!--social integration-->
+  <string name="social_invite_button">Поканете приятели</string>
+  <string name="social_invite_intent_title">Как искате да споделите?</string>
+  <string name="social_invite_content_title">Аз правя наука на моя смартфон!</string>
+  <string name="social_invite_content_body">Аз използвам моя %1$s за да извършвам изчисления за науката. Ти можеш също! Изтегли приложението от: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-ca/strings.xml b/android/BOINC/app/src/main/res/values-ca/strings.xml
new file mode 100644
index 0000000..cabc8cc
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-ca/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Carregant! Si us plau, espera...</string>
+  <string name="generic_button_continue">Continuar</string>
+  <string name="generic_button_finish">Finalitzar</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Selecciona els projectes científics en els que vols participar:</string>
+  <string name="attachproject_list_header">Selecciona un projecte:</string>
+  <string name="attachproject_list_manual_button">Afegir projecte mitjançant URL</string>
+  <string name="attachproject_list_manual_dialog_title">Introdueix la URL del projecte:</string>
+  <string name="attachproject_list_manual_dialog_button">Afegeix el projecte</string>
+  <string name="attachproject_list_manual_no_url">Si us plau introdueix la URL del projecte</string>
+  <string name="attachproject_list_acctmgr_button">Afegir gestor de comptes</string>
+  <string name="attachproject_list_no_internet">No hi ha connexió a Internet</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Entra la informació del teu compte:</string>
+  <string name="attachproject_credential_input_desc">Entra la informació del teu compte per els projectes seleccionats:</string>
+  <string name="attachproject_credential_input_show_pwd">Mostra la contrasenya</string>
+  <string name="attachproject_individual_credential_input">Afegir els projectes individualment:</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">S\'han produït problemes afegint els projectes:</string>
+  <string name="attachproject_conflict_undefined">No s\'ha pogut connectar</string>
+  <string name="attachproject_conflict_not_unique">El compte ja existeix amb un altre contrasenya</string>
+  <string name="attachproject_conflict_bad_password">Contrasenya incorrecte</string>
+  <string name="attachproject_conflict_unknown_user">El compte no existeix</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">El compte no existeix, vista la pàgina web del projecte per registrar-te-hi</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Adjuntant</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Ajuda</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Com contribuir:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Connectar a una xarxa WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2, Connectar el carregador</string>
+  <string name="attachproject_hint_contribtion_screen">3. Desactivar la Pantalla</string>
+  <string name="attachproject_hint_projectwebsite_header">Visita els llocs web dels projectes a:</string>
+  <string name="attachproject_hint_projectwebsite_science">Apren més sobre la ciència</string>
+  <string name="attachproject_hint_projectwebsite_stats">Veure les estadístiques de les contibucions</string>
+  <string name="attachproject_hint_projectwebsite_community">Posat en contacte amb altres voluntaris</string>
+  <string name="attachproject_hint_platforms_header">BOINC també està disponible per al teu ordinador o portàtil, visita boinc.berkeley.edu per aprendre més.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Connectant amb el servidor del projecte...</string>
+  <string name="attachproject_login_image_description">Logo del projecte.</string>
+  <string name="attachproject_login_header_general_area">Zona general:</string>
+  <string name="attachproject_login_header_specific_area">Zona específica:</string>
+  <string name="attachproject_login_header_description">Descripció:</string>
+  <string name="attachproject_login_header_home">Inici:</string>
+  <string name="attachproject_login_header_url">Pàgina web:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Aquest projecte es compatible amb dispositius Android</string>
+  <string name="attachproject_login_platform_not_supported">Aquest projecte no es compatible amb dispositius Android</string>
+  <string name="attachproject_login_category_terms_of_use">Condicions d\'ús de</string>
+  <string name="attachproject_login_accept_terms_of_use">Creant un compte en aquest projecte, acceptes els termes d\'ús, que es mostren a dalt.</string>
+  <string name="attachproject_login_category_login">Registre\'t amb un compte existent</string>
+  <string name="attachproject_login_header_id_email">Correu electrònic:</string>
+  <string name="attachproject_login_header_id_name">Nom:</string>
+  <string name="attachproject_login_header_pwd">Contrasenya:</string>
+  <string name="attachproject_login_category_creation">Nou a</string>
+  <string name="attachproject_login_header_creation_enabled">Registra un compte per participar:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Visita la pàgina web del projecte per crear un compte:</string>
+  <string name="attachproject_login_header_creation_disabled">Aquest projecte no està acceptant nous comptes.</string>
+  <string name="attachproject_login_button_registration">Registre\'t</string>
+  <string name="attachproject_login_button_login">Registre\'t</string>
+  <string name="attachproject_login_button_forgotpw">He oblidat la contrasenya</string>
+  <string name="attachproject_login_error_toast">Ha fallat la connexió amb el projecte!</string>
+  <string name="attachproject_login_attached">Adjuntat</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Compte de registre per</string>
+  <string name="attachproject_registration_header_url">Projecte:</string>
+  <string name="attachproject_registration_header_email">Correu electrònic:</string>
+  <string name="attachproject_registration_header_username">Nom:</string>
+  <string name="attachproject_registration_header_teamname">Equip:</string>
+  <string name="attachproject_registration_header_pwd">Contrasenya:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... Torna a entrar-ho:</string>
+  <string name="attachproject_registration_button">Crear</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Utilitza l\'administrador de comptes de BOINC per afegir i gestionar múltiples projectes</string>
+  <string name="attachproject_acctmgr_header">Afegir gestor de comptes</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Usuari:</string>
+  <string name="attachproject_acctmgr_header_pwd">Contrasenya:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Torna a entrar-ho:</string>
+  <string name="attachproject_acctmgr_button">Afegeix</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">No s\'ha trobat aquest usuari</string>
+  <string name="attachproject_error_short_pwd">La contrasenya és massa curta</string>
+  <string name="attachproject_error_no_internet">Ha fallat la connexió</string>
+  <string name="attachproject_error_pwd_no_match">Les contrasenyes no coincideixen</string>
+  <string name="attachproject_error_pwd_no_retype">Si us plau introdueix de nou la contrasenya</string>
+  <string name="attachproject_error_no_url">Si us plau introdueix una URL</string>
+  <string name="attachproject_error_no_email">Si us plau introdueix l\'adreça de correu electrònic</string>
+  <string name="attachproject_error_no_pwd">Si us plau introdueix una contrasenya</string>
+  <string name="attachproject_error_no_name">Si us plau, introdueïx el nom d\'usuari</string>
+  <string name="attachproject_error_unknown">ha fallat</string>
+  <string name="attachproject_error_bad_username">Nom d\'usuari rebutjat</string>
+  <string name="attachproject_error_email_in_use">L\'adreça de correu electrònic ja està en ús</string>
+  <string name="attachproject_error_project_down">El projecte està desconnectat</string>
+  <string name="attachproject_error_email_bad_syntax">Adreça de correu electrònic rebutjada</string>
+  <string name="attachproject_error_bad_pwd">Contrasenya rebutjada</string>
+  <string name="attachproject_error_creation_disabled">La creació de comptes està desactivada en aquest projecte</string>
+  <string name="attachproject_error_invalid_url">URL incorrecte</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Enrere</string>
+  <string name="attachproject_working_finish_button">Finalitza</string>
+  <string name="attachproject_working_check_desc">Reeixit</string>
+  <string name="attachproject_working_failed_desc">Ha fallat</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Connecta</string>
+  <string name="attachproject_working_verify">Revisa el compte</string>
+  <string name="attachproject_working_register">Registra el compte</string>
+  <string name="attachproject_working_login">Registret</string>
+  <string name="attachproject_working_acctmgr">Afegir gestor de comptes</string>
+  <string name="attachproject_working_acctmgr_sync">Sincronitzar</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Prem aquí per seleccionar un projecte</string>
+  <string name="main_error">Uppps</string>
+  <string name="main_error_long">...això no ha de succeir!\n Feu clic a la icona per intentar-ho de nou.</string>
+  <string name="main_title_icon_desc">Icona de BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Estatus</string>
+  <string name="tab_projects">Projectes</string>
+  <string name="tab_tasks">Tasques</string>
+  <string name="tab_transfers">Transferències</string>
+  <string name="tab_preferences">Preferències</string>
+  <string name="tab_notices">Notícies</string>
+  <string name="tab_desc">Navegació</string>
+  <!--status strings-->
+  <string name="status_running">Treballant</string>
+  <string name="status_running_long">Gràcies per participar.</string>
+  <string name="status_paused">Suspès</string>
+  <string name="status_idle">Res a fer</string>
+  <string name="status_idle_long">Esperant feines...</string>
+  <string name="status_computing_disabled">Suspès</string>
+  <string name="status_computing_disabled_long">Premeu play per reprendre la connexió per xarxa i la computació.</string>
+  <string name="status_launching">S\'està iniciant...</string>
+  <string name="status_noproject">Tria un projecte per participar-hi.</string>
+  <string name="status_closing">Tancant...</string>
+  <string name="status_benchmarking">Executamt proves...</string>
+  <string name="status_image_description">imatge del projecte</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Llegint preferències...</string>
+  <string name="prefs_submit_button">Desa</string>
+  <string name="prefs_dialog_title">Introdueix el nou valor:</string>
+  <string name="prefs_dialog_title_selection">Selecciona:</string>
+  <string name="prefs_category_general">General</string>
+  <string name="prefs_category_network">Xarxa</string>
+  <string name="prefs_category_power">Potència</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Emmagatzematge</string>
+  <string name="prefs_category_memory">Memòria</string>
+  <string name="prefs_category_debug">Depura</string>
+  <string name="prefs_show_advanced_header">Mostra les preferències i controls avançats...</string>
+  <string name="prefs_suspend_when_screen_on">Atura el càlcul quan la pantalla estigui activa</string>
+  <string name="prefs_stationary_device_mode_header">Mode de dispositiu fix</string>
+  <string name="prefs_stationary_device_mode_description">Permet el càlcul independentment de les preferències d\'alimentació. Només activar-ho si el dispositiu no té una bateria.</string>
+  <string name="prefs_power_source_header">Fonts d\'alimentació per al càlcul</string>
+  <string name="prefs_power_source_description">Selecciona les fonts d\'energia que BOINC pot utilitzar per al càlcul.</string>
+  <string name="prefs_power_source_ac">Endoll</string>
+  <string name="prefs_power_source_usb">Connexió USB</string>
+  <string name="prefs_power_source_wireless">Carregador sense fils</string>
+  <string name="prefs_power_source_battery">Bateria</string>
+  <string name="battery_charge_min_pct_header">Nivell mínim de la bateria</string>
+  <string name="battery_charge_min_pct_description">BOINC atura la computació si el nivell de càrrega de la bateria per sota del definit.</string>
+  <string name="battery_temperature_max_header">Temperatura màxima de la bateria</string>
+  <string name="battery_temperature_max_description">BOINC atura la computació si la temperatura de la bateria està per sobre del valor definit. No es recomanable canviar aquest valor.</string>
+  <string name="prefs_disk_max_pct_header">Màxim espai d\'emmagatzematge utilitzat</string>
+  <string name="prefs_disk_max_pct_description">Quin percentatge d\'espai d\'emmagatzematge del seu dispositiu pot utilitzar BOINC?</string>
+  <string name="prefs_disk_min_free_gb_header">Espai mínim d\'emmagatzematge</string>
+  <string name="prefs_disk_min_free_gb_description">Quina quantitat d\'espai d\'emmagatzematge del dispositiu s\'ha de mantenir lliure?</string>
+  <string name="prefs_disk_access_interval_header">Període d\'accés</string>
+  <string name="prefs_disk_access_interval_description">Suggereix un interval entre accessos al disc</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Límit de transferència diària</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limita el tràfic diàri de dades degut a BOINC</string>
+  <string name="prefs_network_wifi_only_header">Transferir tasques només amb WiFi</string>
+  <string name="prefs_autostart_header">Inici automàtic</string>
+  <string name="prefs_show_notification_notices_header">Mostra una notificació per a nous avisos</string>
+  <string name="prefs_show_notification_suspended_header">Mostra una notificació quan es suspengui</string>
+  <string name="prefs_cpu_number_cpus_header">Nuclis de CPU usats</string>
+  <string name="prefs_cpu_number_cpus_description">Limita el nombre de nuclis de CPU que BOINC utilitza per la computació.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pausa en l\'ús de la CPU per sobre de</string>
+  <string name="prefs_cpu_other_load_suspension_description">Determina quan BOINC pausa el còmput degut a l\'ús de la CPU per altres aplicacions.</string>
+  <string name="prefs_cpu_time_max_header">Límit de CPU</string>
+  <string name="prefs_cpu_time_max_description">Limita el temps de CPU que BOINC utilitza per la computació.</string>
+  <string name="prefs_memory_max_idle_header">RAM límit</string>
+  <string name="prefs_memory_max_idle_description">Limita la quantitat de RAM que les tasques poden utilitzar.</string>
+  <string name="prefs_client_log_flags_header">Marques de registre del client de BOINC</string>
+  <string name="prefs_gui_log_level_header">Nivell de registre GUI</string>
+  <string name="prefs_gui_log_level_description">Especifica el nivell de detall dels missatges de registre GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">segon</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">S\'estan carregant els projectes...</string>
+  <string name="projects_add">Afegeix el projecte</string>
+  <string name="projects_icon">Icona delprojecte</string>
+  <string name="projects_credits">Crèdit:</string>
+  <string name="projects_credits_host_and_user">%1$,d (en aquest dispositiu) %2$,d (total)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspès per l\'usuari</string>
+  <string name="projects_status_dontrequestmorework">No descarregar tasques noves</string>
+  <string name="projects_status_ended">Projecte finalitzat - CORRECTE per eliminar-lo</string>
+  <string name="projects_status_detachwhendone">S\'eliminarà quan finalitzi la tasca</string>
+  <string name="projects_status_schedrpcpending">Petició al gestor pendent</string>
+  <string name="projects_status_schedrpcinprogress">Petició al gestor en curs</string>
+  <string name="projects_status_trickleuppending">Missatge de degoteig en espera</string>
+  <string name="projects_status_backoff">Comunicació del gestor a:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Ordres del projecte:</string>
+  <string name="projects_control_visit_website">Visita el lloc web</string>
+  <string name="projects_control_update">Actualitza</string>
+  <string name="projects_control_remove">Elimina</string>
+  <string name="projects_control_suspend">Suspèn</string>
+  <string name="projects_control_resume">Reprèn</string>
+  <string name="projects_control_nonewtasks">No hi han tasques noves</string>
+  <string name="projects_control_allownewtasks">Permetre noves tasques</string>
+  <string name="projects_control_reset">Reinicia</string>
+  <string name="projects_control_dialog_title_acctmgr">Ordres del gestor de comptes:</string>
+  <string name="projects_control_sync_acctmgr">Sincronitzar</string>
+  <string name="projects_control_remove_acctmgr">Desactivar</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Eliminar el projecte?</string>
+  <string name="projects_confirm_detach_message">Estàs segur que voleu eliminar</string>
+  <string name="projects_confirm_detach_message2">de BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Elimina</string>
+  <string name="projects_confirm_reset_title">Reinicia el projecte</string>
+  <string name="projects_confirm_reset_message">Estàs segur que vols reiniciar</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Reinicia</string>
+  <string name="projects_confirm_remove_acctmgr_title">Desactivar el gestor de comptes</string>
+  <string name="projects_confirm_remove_acctmgr_message">Està segur de voler finalitzar la utilització de </string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Desactivar</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nom de la tasca:</string>
+  <string name="tasks_header_elapsed_time">Temps transcorregut:</string>
+  <string name="tasks_header_project_paused">(suspès)</string>
+  <string name="tasks_header_deadline">Data límit:</string>
+  <string name="tasks_result_new">nou</string>
+  <string name="tasks_result_files_downloading">esperant per descarregar</string>
+  <string name="tasks_result_files_downloaded">Descàrrega completa</string>
+  <string name="tasks_result_compute_error">error de computació</string>
+  <string name="tasks_result_files_uploading">s\'està lliurant</string>
+  <string name="tasks_result_files_uploaded">lliurament finalitzat</string>
+  <string name="tasks_result_aborted">avortat</string>
+  <string name="tasks_result_upload_failed">ha fallat el lliurament</string>
+  <string name="tasks_active_uninitialized">preparat</string>
+  <string name="tasks_active_executing">executant</string>
+  <string name="tasks_active_suspended">suspès</string>
+  <string name="tasks_active_abort_pending">s\'està suspenent</string>
+  <string name="tasks_active_quit_pending">s\'està suspenent</string>
+  <string name="tasks_custom_suspended_via_gui">suspès</string>
+  <string name="tasks_custom_project_suspended_via_gui">projecte suspès</string>
+  <string name="tasks_custom_ready_to_report">a punt per informar</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Avortar la tasca?</string>
+  <string name="confirm_abort_task_message">Avortar la tasca:</string>
+  <string name="confirm_abort_task_confirm">Avorta</string>
+  <string name="confirm_cancel">Cancel·la</string>
+  <string name="confirm_image_desc">Diàleg de confirmació</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Llegint transferències...</string>
+  <string name="trans_upload">Puja</string>
+  <string name="trans_download">Descarrega</string>
+  <string name="trans_retryin">re intentar en</string>
+  <string name="trans_failed">ha fallat</string>
+  <string name="trans_suspended">suspès</string>
+  <string name="trans_active">activa</string>
+  <string name="trans_pending">pendent</string>
+  <string name="trans_projectbackoff">desentendre\'s del projecte</string>
+  <string name="trans_header_name">Fitxer:</string>
+  <string name="trans_control_retry">Re-intenta transferències</string>
+  <string name="confirm_abort_trans_title">Avortar la transferència?</string>
+  <string name="confirm_abort_trans_message">Avortar arxiu:</string>
+  <string name="confirm_abort_trans_confirm">Avorta</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Llegint notícies...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Carregant missatges de registre...</string>
+  <string name="eventlog_client_header">Missatges del client</string>
+  <string name="eventlog_gui_header">Missatges GUI</string>
+  <string name="eventlog_copy_toast">Registre copiat al porta-retalls</string>
+  <string name="eventlog_email_subject">Registre d\'esdeveniments de BOINC en Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Computació suspesa.</string>
+  <string name="suspend_batteries">Connecta el dispositiu a un carregador per continuar el còmput.</string>
+  <string name="suspend_screen_on">Apaga la pantalla per continuar la computació.</string>
+  <string name="suspend_useractive">L\'usuari està actiu.</string>
+  <string name="suspend_tod">Fora del termini especificat per el còmput.</string>
+  <string name="suspend_bm">BOINC està avaluant el teu dispositiu...</string>
+  <string name="suspend_disksize">S\'ha exhaurit l\'espai lliure del disc</string>
+  <string name="suspend_cputhrottle">Programada acceleració CPU.</string>
+  <string name="suspend_noinput">No hi ha hagut activitat recent de l\'usuari.</string>
+  <string name="suspend_delay">Temps d\'espera per reiniciar.</string>
+  <string name="suspend_exclusiveapp">S\'està executant una aplicació amb ús exclusiu.</string>
+  <string name="suspend_cpu">El teu dispositiu està ocupat per altres aplicacions.</string>
+  <string name="suspend_network_quota">BOINC ha assolit el límit de transferència per xarxa.</string>
+  <string name="suspend_os">Suspès per Android.</string>
+  <string name="suspend_wifi">No hi ha connexió Wifi.</string>
+  <string name="suspend_battery_charging">Esperant a la càrrega de la bateria.</string>
+  <string name="suspend_battery_charging_long">La computació continuarà quan la bateria tingui una carregada del</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">actual</string>
+  <string name="suspend_battery_overheating">Esperant que es refredi la bateria</string>
+  <string name="suspend_user_req">Continuant la computació...</string>
+  <string name="suspend_network_user_req">manualment.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Sol·licitat per l\'usuari</string>
+  <string name="rpcreason_needwork">Per obtenir feina</string>
+  <string name="rpcreason_resultsdue">Per informar tasques finalitzades</string>
+  <string name="rpcreason_trickleup">Per lliurar un missatge de degoteig</string>
+  <string name="rpcreason_acctmgrreq">Sol·licitat per l\'administrador de comptes</string>
+  <string name="rpcreason_init">Inicialització del projecte</string>
+  <string name="rpcreason_projectreq">Sol·licitat per el projecte</string>
+  <string name="rpcreason_unknown">Motiu desconegut</string>
+  <!--menu-->
+  <string name="menu_refresh">Actualitza</string>
+  <string name="menu_emailto">Envia per correu electrònic</string>
+  <string name="menu_copy">Copia al porta-retalls</string>
+  <string name="menu_eventlog">Registre d\'esdeveniments</string>
+  <string name="menu_exit">Surt de BOINC</string>
+  <string name="menu_run_mode_disable">Suspèn</string>
+  <string name="menu_run_mode_enable">Reprèn</string>
+  <string name="menu_about">Sobre</string>
+  <string name="menu_help">Ajuda</string>
+  <!--about dialog-->
+  <string name="about_button">Retorna</string>
+  <string name="about_title">Sobre</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versió</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 Universitat de Califòrnia, Berkeley.</string>
+  <string name="about_copyright_reserved">Reservats tots els drets.</string>
+  <string name="about_credits">Gràcies a l\'Institut Max Planck de Física Gravitacional, IBM Corporation i HTC Corporation pel seu suport.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nou avís de %1$s</item>
+    <item quantity="other">%2$,d nous avisos</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Aplicació de computació voluntària detectada</string>
+  <string name="nonexcl_dialog_text">Una altra aplicació de computació voluntària s\'està executant en aquest dispositiu. Només una pot executar-se alhora.</string>
+  <string name="nonexcl_dialog_exit">Sortir</string>
+  <!--social integration-->
+  <string name="social_invite_button">Convida als teus amics</string>
+  <string name="social_invite_intent_title">Com vols compartir?</string>
+  <string name="social_invite_content_title">Estic fent ciència en el meu telèfon!</string>
+  <string name="social_invite_content_body">Estic usant el meu %1$s per fer computació per a la ciència. Tu també pots fer-ho! Descarrega l\'aplicació des de: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-cs/strings.xml b/android/BOINC/app/src/main/res/values-cs/strings.xml
new file mode 100644
index 0000000..f19af1b
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-cs/strings.xml
@@ -0,0 +1,360 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Načítám! Počkejte prosím...</string>
+  <string name="generic_button_continue">Pokračovat</string>
+  <string name="generic_button_finish">Dokončit</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Vyberte vědecké projekty, kterých se chcete účastnit:</string>
+  <string name="attachproject_list_header">Vyber projekt</string>
+  <string name="attachproject_list_manual_button">Přidat projekt pomocí adresy URL</string>
+  <string name="attachproject_list_manual_dialog_title">Zadejte URL adresu projektu:</string>
+  <string name="attachproject_list_manual_dialog_button">Přidat projekt</string>
+  <string name="attachproject_list_manual_no_url">Prosím zadejte URL adresu projektu</string>
+  <string name="attachproject_list_acctmgr_button">Přidat správce účtu</string>
+  <string name="attachproject_list_no_internet">Není připojení k internetu</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Zadejte informace o účtu</string>
+  <string name="attachproject_credential_input_desc">Zadejte informace o účtu pro vybrané projekty:</string>
+  <string name="attachproject_credential_input_show_pwd">Zobrazit heslo</string>
+  <string name="attachproject_individual_credential_input">Připojit projekty individuálně</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Vyskytly se problémy během připojování vědeckých projektů:</string>
+  <string name="attachproject_conflict_undefined">Nelze se připojit</string>
+  <string name="attachproject_conflict_not_unique">Existuje účet s jiným heslem</string>
+  <string name="attachproject_conflict_bad_password">Nesprávné heslo</string>
+  <string name="attachproject_conflict_unknown_user">Účet neexistuje</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Účet neexistuje, navštivte webové stránky projektu k registraci</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Připojování</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Tip</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Jak přispět:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Připojte se k WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Připojte nabíječku</string>
+  <string name="attachproject_hint_contribtion_screen">3. Vypněte obrazovku</string>
+  <string name="attachproject_hint_projectwebsite_header">Navštivte webové stránky projektu:</string>
+  <string name="attachproject_hint_projectwebsite_science">Chvi se dozvědět více o vědě</string>
+  <string name="attachproject_hint_projectwebsite_stats">Zobrazit statistiky přispívání</string>
+  <string name="attachproject_hint_projectwebsite_community">Spojte se s ostatními dobrovolníky</string>
+  <string name="attachproject_hint_platforms_header">BOINC je také k dispozici pro váš počítač nebo notebook, návštivte boinc.berkeley.edu pro více informací.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Připojování k serveru projektu...</string>
+  <string name="attachproject_login_image_description">Logo projektu.</string>
+  <string name="attachproject_login_header_general_area">Obecná oblast:</string>
+  <string name="attachproject_login_header_specific_area">Specifická oblast:</string>
+  <string name="attachproject_login_header_description">Popis:</string>
+  <string name="attachproject_login_header_home">Domů:</string>
+  <string name="attachproject_login_header_url">Webové stránky:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Typ zařízení je podporován projektem</string>
+  <string name="attachproject_login_platform_not_supported">Zařízení není projektem podporováno</string>
+  <string name="attachproject_login_category_terms_of_use">Podmínky použití pro</string>
+  <string name="attachproject_login_accept_terms_of_use">Vytvořením účtu na tomto projektu souhlasíte s podmínkami používání, které jsou uvedeny výše.</string>
+  <string name="attachproject_login_category_login">Přihlášení pomocí stávajícího účtu</string>
+  <string name="attachproject_login_header_id_email">E-mail:</string>
+  <string name="attachproject_login_header_id_name">Jméno:</string>
+  <string name="attachproject_login_header_pwd">Heslo:</string>
+  <string name="attachproject_login_category_creation">Nový do</string>
+  <string name="attachproject_login_header_creation_enabled">Registrovat účet k účasti:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Navštivte stránky projektu pro vytvoření účtu:</string>
+  <string name="attachproject_login_header_creation_disabled">Tento projekt v současné době nepřijímá nové účty.</string>
+  <string name="attachproject_login_button_registration">Registrace</string>
+  <string name="attachproject_login_button_login">Přihlásit se</string>
+  <string name="attachproject_login_button_forgotpw">Zapomenuté heslo</string>
+  <string name="attachproject_login_error_toast">Kontaktování projektu selhalo!</string>
+  <string name="attachproject_login_attached">Připojeno</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Registrace účtu pro </string>
+  <string name="attachproject_registration_header_url">Projekt:</string>
+  <string name="attachproject_registration_header_email">E-mail:</string>
+  <string name="attachproject_registration_header_username">Jméno:</string>
+  <string name="attachproject_registration_header_teamname">Tým:</string>
+  <string name="attachproject_registration_header_pwd">Heslo:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Znovu:</string>
+  <string name="attachproject_registration_button">Vytvořit</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Použít správce účtu BOINC pro přidání a správu vícero projektů</string>
+  <string name="attachproject_acctmgr_header">Přidat správce účtu</string>
+  <string name="attachproject_acctmgr_header_url">URL adresa</string>
+  <string name="attachproject_acctmgr_header_name">Uživatel:</string>
+  <string name="attachproject_acctmgr_header_pwd">Heslo:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Znovu:</string>
+  <string name="attachproject_acctmgr_button">Přidat</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Uživatel nenalezen</string>
+  <string name="attachproject_error_short_pwd">Heslo je příliš krátké</string>
+  <string name="attachproject_error_no_internet">Připojení selhalo</string>
+  <string name="attachproject_error_pwd_no_match">Hesla neodpovídají</string>
+  <string name="attachproject_error_pwd_no_retype">Zadejte prosím heslo znovu</string>
+  <string name="attachproject_error_no_url">Prosím zadejte adresu URL</string>
+  <string name="attachproject_error_no_email">Zadejte e-mailovou adresu</string>
+  <string name="attachproject_error_no_pwd">Zadejte prosím heslo</string>
+  <string name="attachproject_error_no_name">Zadejte prosím uživatelské jméno</string>
+  <string name="attachproject_error_unknown">nezdařilo se</string>
+  <string name="attachproject_error_bad_username">Uživatelské jméno odmítnuto</string>
+  <string name="attachproject_error_email_in_use">E-mail je již používán</string>
+  <string name="attachproject_error_project_down">Projekt je v režimu offline</string>
+  <string name="attachproject_error_email_bad_syntax">E-mail odmítnut</string>
+  <string name="attachproject_error_bad_pwd">Heslo odmítnuto</string>
+  <string name="attachproject_error_creation_disabled">Vytvoření účtu je na tomto projektu zakázáno</string>
+  <string name="attachproject_error_invalid_url">Neplatná URL adresa</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Zpět</string>
+  <string name="attachproject_working_finish_button">Dokončit</string>
+  <string name="attachproject_working_check_desc">Úspěšný</string>
+  <string name="attachproject_working_failed_desc">Nezdařilo se</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Připojit</string>
+  <string name="attachproject_working_verify">Ověřit účet</string>
+  <string name="attachproject_working_register">Registrovat účet</string>
+  <string name="attachproject_working_login">Přihlásit se</string>
+  <string name="attachproject_working_acctmgr">Přidat správce účtu</string>
+  <string name="attachproject_working_acctmgr_sync">Synchronizovat</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Klepnutím sem vyberte projekt.</string>
+  <string name="main_error">Whooops</string>
+  <string name="main_error_long">.. tohle by se nemělo stát! \nClick na ikonu pro nový pokus.</string>
+  <string name="main_title_icon_desc">BOINC ikona</string>
+  <!--tab names-->
+  <string name="tab_status">Stav</string>
+  <string name="tab_projects">Projekty</string>
+  <string name="tab_tasks">Úkoly</string>
+  <string name="tab_transfers">Přenosy</string>
+  <string name="tab_preferences">Předvolby</string>
+  <string name="tab_notices">Zprávy</string>
+  <string name="tab_desc">Navigace</string>
+  <!--status strings-->
+  <string name="status_running">Počítání</string>
+  <string name="status_running_long">Děkujeme za vaši účast.</string>
+  <string name="status_paused">Pozastaveno</string>
+  <string name="status_idle">Nic k práci</string>
+  <string name="status_idle_long">Čekání na úkoly...</string>
+  <string name="status_computing_disabled">Pozastaveno</string>
+  <string name="status_computing_disabled_long">Stisknutím tlačítka play obnovíte síť a počítání.</string>
+  <string name="status_launching">Spouštění...</string>
+  <string name="status_noproject">Zvolte projekt, na kterém se chcete podílet.</string>
+  <string name="status_closing">Zavírání...</string>
+  <string name="status_benchmarking">Testuji výkon...</string>
+  <string name="status_image_description">obrázek projektu</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Čtení předvoleb...</string>
+  <string name="prefs_submit_button">Uložit</string>
+  <string name="prefs_dialog_title">Zadejte novou hodnotu:</string>
+  <string name="prefs_dialog_title_selection">Vyberte:</string>
+  <string name="prefs_category_general">Obecné</string>
+  <string name="prefs_category_network">Síť</string>
+  <string name="prefs_category_power">Výkon</string>
+  <string name="prefs_category_cpu">Procesor</string>
+  <string name="prefs_category_storage">Úložiště</string>
+  <string name="prefs_category_memory">Paměť</string>
+  <string name="prefs_category_debug">Ladění</string>
+  <string name="prefs_show_advanced_header">Zobrazit pokročilá nastavení a ovládání...</string>
+  <string name="prefs_suspend_when_screen_on">Pozastavit výpočet když obrazovka je zapnutá</string>
+  <string name="prefs_stationary_device_mode_header">Režim stacionárního zařízení</string>
+  <string name="prefs_stationary_device_mode_description">Povolit počítání bez ohledu na nastavení výkonu. Zapnuto pouze pokud zařízení nemá baterii.</string>
+  <string name="prefs_power_source_header">Zdroje energie pro počítání</string>
+  <string name="prefs_power_source_description">Vyberte zdroje energie, které bude BOINC moci využít pro počítání.</string>
+  <string name="prefs_power_source_ac">Nabíječka</string>
+  <string name="prefs_power_source_usb">USB připojení</string>
+  <string name="prefs_power_source_wireless">Bezdrátová nabíječka</string>
+  <string name="prefs_power_source_battery">Baterie</string>
+  <string name="battery_charge_min_pct_header">Min. úroveň baterie</string>
+  <string name="battery_charge_min_pct_description">BOINC pozastaví výpočet pokud je stav nabití baterie pod stanovenou úroveň.</string>
+  <string name="battery_temperature_max_header">Max. teplota baterie</string>
+  <string name="battery_temperature_max_description">BOINC pozastaví výpočet pokud je teplota baterie nad stanovenou hranicí. Tuto hodnotu nedoporučujeme měnit.</string>
+  <string name="prefs_disk_max_pct_header">Max. použitelné úložiště</string>
+  <string name="prefs_disk_max_pct_description">Kolik procent z vašeho úložného prostoru v zařízení může BOINC využít?</string>
+  <string name="prefs_disk_min_free_gb_header">Min. rezerva úložiště</string>
+  <string name="prefs_disk_min_free_gb_description">Kolik místa v úložišti zařízení musí zůstat volné?</string>
+  <string name="prefs_disk_access_interval_header">Interval přístupu</string>
+  <string name="prefs_disk_access_interval_description">Navrhnětě interval mezi přístupy na úložiště</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Denní limit přenosu</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limituje síťová data, která může BOINC využít.</string>
+  <string name="prefs_network_wifi_only_header">Přenášej úkoly pouze na WiFi</string>
+  <string name="prefs_autostart_header">Automatické spuštění</string>
+  <string name="prefs_show_notification_notices_header">Zobrazit upozornění pro nové oznámení</string>
+  <string name="prefs_show_notification_suspended_header">Zobrazit oznámení pokud je pozastaveno</string>
+  <string name="prefs_cpu_number_cpus_header">Použitá jádra procesoru</string>
+  <string name="prefs_cpu_number_cpus_description">Omezuje počet jader procesoru, které může BOINC použít pro výpočet.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pozastav při využití procesoru nad</string>
+  <string name="prefs_cpu_other_load_suspension_description">Určuje kdy se BOINC pozastaví kvůli využití procesoru ostatními aplikacemi.</string>
+  <string name="prefs_cpu_time_max_header">Omezení procesoru</string>
+  <string name="prefs_cpu_time_max_description">Omezuje procesorový čas, který BOINC využívá pro počítání.</string>
+  <string name="prefs_memory_max_idle_header">Limit paměti</string>
+  <string name="prefs_memory_max_idle_description">Limituje množství paměti použitelné pro výpočet.</string>
+  <string name="prefs_client_log_flags_header">Praporky zápisu BOINC klienta</string>
+  <string name="prefs_gui_log_level_header">Úroveň protokolu GUI</string>
+  <string name="prefs_gui_log_level_description">Určuje podrobnost ve výpisu zpráv GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sek.</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Čtení projektů...</string>
+  <string name="projects_add">Přidat projekt</string>
+  <string name="projects_icon">Ikona projektu</string>
+  <string name="projects_credits">Kredit:</string>
+  <string name="projects_credits_host_and_user">%1$,d (na tomto zařízení) %2$,d (celkem)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Pozastaveno uživatelem</string>
+  <string name="projects_status_dontrequestmorework">Neobdrží další práci</string>
+  <string name="projects_status_ended">Projekt ukončen - nyní je možné projekt opustit</string>
+  <string name="projects_status_detachwhendone">Bude odebrán po dokončení úkolů</string>
+  <string name="projects_status_schedrpcpending">Nevyřízený požadavek plánovače</string>
+  <string name="projects_status_schedrpcinprogress">Zpracovávám požadavek plánovače</string>
+  <string name="projects_status_trickleuppending">Nevyřízené odeslání zprávy o průběhu</string>
+  <string name="projects_status_backoff">Komunikace za:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Příkazy projektu:</string>
+  <string name="projects_control_visit_website">Navštívit webové stránky</string>
+  <string name="projects_control_update">Aktualizovat</string>
+  <string name="projects_control_remove">Odebrat</string>
+  <string name="projects_control_suspend">Pozastavit</string>
+  <string name="projects_control_resume">Obnovit</string>
+  <string name="projects_control_nonewtasks">Nepřijímat další práci</string>
+  <string name="projects_control_allownewtasks">Povolit další práci</string>
+  <string name="projects_control_reset">Resetovat</string>
+  <string name="projects_control_dialog_title_acctmgr">Příkazy správce účtu:</string>
+  <string name="projects_control_sync_acctmgr">Synchronizovat</string>
+  <string name="projects_control_remove_acctmgr">Zakázat</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Odebrat projekt?</string>
+  <string name="projects_confirm_detach_message">Jste si jisti, že chcete odstranit</string>
+  <string name="projects_confirm_detach_message2">z BOINCu?</string>
+  <string name="projects_confirm_detach_confirm">Odebrat</string>
+  <string name="projects_confirm_reset_title">Restartovat projekt</string>
+  <string name="projects_confirm_reset_message">Jste si jisti, že chcete restartovat</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Restartovat</string>
+  <string name="projects_confirm_remove_acctmgr_title">Vypnout správce účtu</string>
+  <string name="projects_confirm_remove_acctmgr_message">Jste si jisti, že chcete přestat používat</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Zakázat</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Název úkolu:</string>
+  <string name="tasks_header_elapsed_time">Uplynulý čas:</string>
+  <string name="tasks_header_project_paused">(pozastaveno)</string>
+  <string name="tasks_header_deadline">Odevzdat do:</string>
+  <string name="tasks_result_new">nové</string>
+  <string name="tasks_result_files_downloading">čeká na stažení</string>
+  <string name="tasks_result_files_downloaded">stahování dokončeno</string>
+  <string name="tasks_result_compute_error">chyba při výpočtu</string>
+  <string name="tasks_result_files_uploading">odesílání</string>
+  <string name="tasks_result_files_uploaded">odesílání dokončeno</string>
+  <string name="tasks_result_aborted">zrušeno</string>
+  <string name="tasks_result_upload_failed">odeslání se nezdařilo</string>
+  <string name="tasks_active_uninitialized">připraven</string>
+  <string name="tasks_active_executing">počítá</string>
+  <string name="tasks_active_suspended">pozastaveno</string>
+  <string name="tasks_active_abort_pending">ruší se</string>
+  <string name="tasks_active_quit_pending">ukončuje se</string>
+  <string name="tasks_custom_suspended_via_gui">pozastaveno</string>
+  <string name="tasks_custom_project_suspended_via_gui">projekt pozastaven</string>
+  <string name="tasks_custom_ready_to_report">připraven k nahlášení</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Zrušit úkol?</string>
+  <string name="confirm_abort_task_message">Zrušit úkol:</string>
+  <string name="confirm_abort_task_confirm">Zrušit</string>
+  <string name="confirm_cancel">Zpět</string>
+  <string name="confirm_image_desc">Potvrzovací dialog</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Načítám přenosy...</string>
+  <string name="trans_upload">Odesílání</string>
+  <string name="trans_download">Stáhování</string>
+  <string name="trans_retryin">opakovat za</string>
+  <string name="trans_failed">selhalo</string>
+  <string name="trans_suspended">pozastaveno</string>
+  <string name="trans_active">probíhá</string>
+  <string name="trans_pending">vyčkává</string>
+  <string name="trans_projectbackoff">odloženo projektem</string>
+  <string name="trans_header_name">Soubor:</string>
+  <string name="trans_control_retry">Opakování přenosů</string>
+  <string name="confirm_abort_trans_title">Přerušit přenos?</string>
+  <string name="confirm_abort_trans_message">Zrušit soubor:</string>
+  <string name="confirm_abort_trans_confirm">Zrušit</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Načítám oznámení...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Načítám zprávy...</string>
+  <string name="eventlog_client_header">Zprávy klienta</string>
+  <string name="eventlog_gui_header">Zprávy GUI</string>
+  <string name="eventlog_copy_toast">Zpráva zkopírována do schránky.</string>
+  <string name="eventlog_email_subject">Zprávy událostí z BOINC na Androidu:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Výpočet pozastaven.</string>
+  <string name="suspend_batteries">Připojte zařízení k nabíječce pro pokračování ve výpočtu.</string>
+  <string name="suspend_screen_on">Vypněte obrazovku pro pokračování ve výpočtu.</string>
+  <string name="suspend_useractive">Uživatel je aktivní.</string>
+  <string name="suspend_tod">Mimo výpočtový časový rámec.</string>
+  <string name="suspend_bm">BOINC testuje výkon vašeho zařízení...</string>
+  <string name="suspend_disksize">Nedostatek místa na disku.</string>
+  <string name="suspend_cputhrottle">Plánované omezení procesoru.</string>
+  <string name="suspend_noinput">Žádná nedávná aktivita uživatele.</string>
+  <string name="suspend_delay">Zpoždění inicializace.</string>
+  <string name="suspend_exclusiveapp">Je spuštěna exkluzivní aplikace.</string>
+  <string name="suspend_cpu">Zařízení je zaneprázdněno jinými aplikacemi.</string>
+  <string name="suspend_network_quota">BOINC dosáhl limitu síťových přenosů.</string>
+  <string name="suspend_os">Zastaveno Androidem.</string>
+  <string name="suspend_wifi">Není připojen k WiFi.</string>
+  <string name="suspend_battery_charging">Čekání na větší nabití baterie.</string>
+  <string name="suspend_battery_charging_long">Výpočet bude pokračovat, když nabití baterie dosáhne</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">nyní</string>
+  <string name="suspend_battery_overheating">Čekání na ochlazení baterie</string>
+  <string name="suspend_user_req">Obnovuji výpočet...</string>
+  <string name="suspend_network_user_req">ručně.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Vyžádáno uživatelem</string>
+  <string name="rpcreason_needwork">Získat novou práci</string>
+  <string name="rpcreason_resultsdue">Nahlásit dokončené úkoly</string>
+  <string name="rpcreason_trickleup">Odeslat zprávu o průběhu</string>
+  <string name="rpcreason_acctmgrreq">Vyžádáno správcem účtu</string>
+  <string name="rpcreason_init">Prvotní nastavení projektu</string>
+  <string name="rpcreason_projectreq">Vyžádáno projektem</string>
+  <string name="rpcreason_unknown">Neznámý důvod</string>
+  <!--menu-->
+  <string name="menu_refresh">Aktualizovat</string>
+  <string name="menu_emailto">Odeslat jako E-mail</string>
+  <string name="menu_copy">Kopírovat do schránky</string>
+  <string name="menu_eventlog">Protokol událostí</string>
+  <string name="menu_exit">Ukončit BOINC</string>
+  <string name="menu_run_mode_disable">Pozastavit</string>
+  <string name="menu_run_mode_enable">Obnovit</string>
+  <string name="menu_about">O BOINC</string>
+  <string name="menu_help">Nápověda</string>
+  <!--about dialog-->
+  <string name="about_button">Návrat</string>
+  <string name="about_title">O programu</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Verze</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing 
+(Berkeleyská Otevřená Infrastruktura pro Síťové Výpočty)</string>
+  <string name="about_copyright">\u00A9 2003–2016 Kalifornská Univerzita, Berkeley</string>
+  <string name="about_copyright_reserved">Všechna práva vyhrazena.
+Překlad do češtiny: petnek</string>
+  <string name="about_credits">Díky patří Max Planck institutu pro gravitační fyziku, IBM Corporation a HTC Corporation za jejich podporu.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nové upozornění od %1$s</item>
+    <item quantity="few">Nové upozornění od %1$s</item>
+    <item quantity="other">%2$,d nových upozornění</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Dobrovolníkova výpočetní aplikace zaregistrována</string>
+  <string name="nonexcl_dialog_text">V tomto zařízení je spuštěna další výpočetní aplikace dobrovolníka. Současně lze spustit pouze jednu verzi.</string>
+  <string name="nonexcl_dialog_exit">Konec</string>
+  <!--social integration-->
+  <string name="social_invite_button">Pozvat přátele</string>
+  <string name="social_invite_intent_title">Jak chcete sdílet?</string>
+  <string name="social_invite_content_title">Podílím se na vědě díky svému chytrému telefonu!</string>
+  <string name="social_invite_content_body">Používám svůj %1$s pro vědecké výpočty. Ty můžeš taky! Stáhni si aplikaci z: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-da/strings.xml b/android/BOINC/app/src/main/res/values-da/strings.xml
new file mode 100644
index 0000000..7aed4d0
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-da/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Indlæser! Vent venligst...</string>
+  <string name="generic_button_continue">Fortsæt</string>
+  <string name="generic_button_finish">Færdig</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Vælg videnskabelige projekter, du vil bidrage til:</string>
+  <string name="attachproject_list_header">Vælg et projekt</string>
+  <string name="attachproject_list_manual_button">Tilføj projekt vha. URL</string>
+  <string name="attachproject_list_manual_dialog_title">Indtast projekt-URL:</string>
+  <string name="attachproject_list_manual_dialog_button">Tilføj projekt</string>
+  <string name="attachproject_list_manual_no_url">Indtast venligst projekt-URL</string>
+  <string name="attachproject_list_acctmgr_button">Tilføj kontohåndtering</string>
+  <string name="attachproject_list_no_internet">Ingen Internet-forbindelse</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Indtast kontoinformation</string>
+  <string name="attachproject_credential_input_desc">Indtast kontoinformation for valgte projekter:</string>
+  <string name="attachproject_credential_input_show_pwd">Vis adgangskode</string>
+  <string name="attachproject_individual_credential_input">Forbind projekter individuelt</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Der opstod problemer med at forbinde videnskabelige projekter:</string>
+  <string name="attachproject_conflict_undefined">Kunne ikke forbinde</string>
+  <string name="attachproject_conflict_not_unique">Konto eksisterer med en anden adgangskode</string>
+  <string name="attachproject_conflict_bad_password">Adgangskode ukorrekt</string>
+  <string name="attachproject_conflict_unknown_user">Konto eksisterer ikke</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Konto eksisterer ikke; besøg projektets webside for at registrere</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Forbinder</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Tip</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Hvordan du kan bidrage:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Forbind til WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Tilslut oplader</string>
+  <string name="attachproject_hint_contribtion_screen">3. Sluk skærmen</string>
+  <string name="attachproject_hint_projectwebsite_header">Besøg projekt-websider for at:</string>
+  <string name="attachproject_hint_projectwebsite_science">Lære mere om videnskaben</string>
+  <string name="attachproject_hint_projectwebsite_stats">Se bidragsstatistik</string>
+  <string name="attachproject_hint_projectwebsite_community">Tale med andre frivillige</string>
+  <string name="attachproject_hint_platforms_header">BOINC findes også til din bærbare eller stationære computer; besøg boinc.berkeley.edu for at finde ud af mere.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Kontakter projekt-server …</string>
+  <string name="attachproject_login_image_description">Projektlogo.</string>
+  <string name="attachproject_login_header_general_area">Generelt område:</string>
+  <string name="attachproject_login_header_specific_area">Specifikt område:</string>
+  <string name="attachproject_login_header_description">Beskrivelse:</string>
+  <string name="attachproject_login_header_home">Hjem:</string>
+  <string name="attachproject_login_header_url">Webside:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Enhedstypen understøttes af dette projekt</string>
+  <string name="attachproject_login_platform_not_supported">Enheden understøttes ikke af dette projekt</string>
+  <string name="attachproject_login_category_terms_of_use">Brugsvilkår for</string>
+  <string name="attachproject_login_accept_terms_of_use">Ved at oprette en konto hos dette projekt, accepterer du brugsvilkårene, som vises herover.</string>
+  <string name="attachproject_login_category_login">Log ind med eksisterende konto</string>
+  <string name="attachproject_login_header_id_email">Email:</string>
+  <string name="attachproject_login_header_id_name">Navn:</string>
+  <string name="attachproject_login_header_pwd">Adgangskode:</string>
+  <string name="attachproject_login_category_creation">Kender du ikke</string>
+  <string name="attachproject_login_header_creation_enabled">Opret en konto for at deltage:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Besøg projektets webside for at oprette en konto:</string>
+  <string name="attachproject_login_header_creation_disabled">Dette projekt tager for tiden ikke imod nye konti.</string>
+  <string name="attachproject_login_button_registration">Registrér</string>
+  <string name="attachproject_login_button_login">Log ind</string>
+  <string name="attachproject_login_button_forgotpw">Glemt adgangskode</string>
+  <string name="attachproject_login_error_toast">Kontakt til projekt mislykkedes!</string>
+  <string name="attachproject_login_attached">Forbundet</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Kontoregistrering for</string>
+  <string name="attachproject_registration_header_url">Projekt:</string>
+  <string name="attachproject_registration_header_email">Email:</string>
+  <string name="attachproject_registration_header_username">Navn:</string>
+  <string name="attachproject_registration_header_teamname">Hold:</string>
+  <string name="attachproject_registration_header_pwd">Adgangskode:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Tast igen:</string>
+  <string name="attachproject_registration_button">Opret</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Brug BOINC kontohåndtering for at tilføje og vedligeholde adskillige projekter</string>
+  <string name="attachproject_acctmgr_header">Tilføj kontohåndtering</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Bruger:</string>
+  <string name="attachproject_acctmgr_header_pwd">Adgangskode:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Tast igen:</string>
+  <string name="attachproject_acctmgr_button">Tilføj</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Bruger ikke fundet</string>
+  <string name="attachproject_error_short_pwd">Adgangskode for kort</string>
+  <string name="attachproject_error_no_internet">Forbindelsesfejl</string>
+  <string name="attachproject_error_pwd_no_match">Adgangskoder passer ikke sammen</string>
+  <string name="attachproject_error_pwd_no_retype">Indtast venligst adgangskode igen</string>
+  <string name="attachproject_error_no_url">Indtast venligst URL</string>
+  <string name="attachproject_error_no_email">Indtast venligst emailadresse</string>
+  <string name="attachproject_error_no_pwd">Indtast venligst en adgangskode</string>
+  <string name="attachproject_error_no_name">Indtast venligst brugernavn</string>
+  <string name="attachproject_error_unknown">mislykkedes</string>
+  <string name="attachproject_error_bad_username">Brugernavn afvist</string>
+  <string name="attachproject_error_email_in_use">Email er allerede i brug</string>
+  <string name="attachproject_error_project_down">Projekt er offline</string>
+  <string name="attachproject_error_email_bad_syntax">Email afvist</string>
+  <string name="attachproject_error_bad_pwd">Adgangskode afvist</string>
+  <string name="attachproject_error_creation_disabled">Oprettelse af konti er slået fra for dette projekt</string>
+  <string name="attachproject_error_invalid_url">Ugyldig URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Tilbage</string>
+  <string name="attachproject_working_finish_button">Afslut</string>
+  <string name="attachproject_working_check_desc">Succesfuldt</string>
+  <string name="attachproject_working_failed_desc">Mislykkedes</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Forbind</string>
+  <string name="attachproject_working_verify">Verificér konto</string>
+  <string name="attachproject_working_register">Registrér konto</string>
+  <string name="attachproject_working_login">Log ind</string>
+  <string name="attachproject_working_acctmgr">Tilføj kontohåndtering</string>
+  <string name="attachproject_working_acctmgr_sync">Synkronisér</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Berør her for at vælge et projekt.</string>
+  <string name="main_error">Ups</string>
+  <string name="main_error_long">… dette burde ikke ske!\nKlik på ikonet for at prøve igen.</string>
+  <string name="main_title_icon_desc">BOINC-ikon</string>
+  <!--tab names-->
+  <string name="tab_status">Status</string>
+  <string name="tab_projects">Projekter</string>
+  <string name="tab_tasks">Opgaver</string>
+  <string name="tab_transfers">Overførsler</string>
+  <string name="tab_preferences">Indstillinger</string>
+  <string name="tab_notices">Meddelelser</string>
+  <string name="tab_desc">Navigering</string>
+  <!--status strings-->
+  <string name="status_running">Beregner</string>
+  <string name="status_running_long">Tak for din deltagelse.</string>
+  <string name="status_paused">Suspenderet</string>
+  <string name="status_idle">Intet at beregne</string>
+  <string name="status_idle_long">Venter på opgaver …</string>
+  <string name="status_computing_disabled">Suspenderet</string>
+  <string name="status_computing_disabled_long">Tryk play for at genoptage netværk og beregning.</string>
+  <string name="status_launching">Starter …</string>
+  <string name="status_noproject">Vælg et projekt at deltage i.</string>
+  <string name="status_closing">Lukker …</string>
+  <string name="status_benchmarking">Måler ydelsesevne …</string>
+  <string name="status_image_description">projektbillede</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Indlæser indstillinger …</string>
+  <string name="prefs_submit_button">Gem</string>
+  <string name="prefs_dialog_title">Indtast ny værdi:</string>
+  <string name="prefs_dialog_title_selection">Vælg:</string>
+  <string name="prefs_category_general">Generelt</string>
+  <string name="prefs_category_network">Netværk</string>
+  <string name="prefs_category_power">Strøm</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Lagring</string>
+  <string name="prefs_category_memory">Hukommelse</string>
+  <string name="prefs_category_debug">Fejlsøgning</string>
+  <string name="prefs_show_advanced_header">Vis avancerede indstillinger …</string>
+  <string name="prefs_suspend_when_screen_on">Sæt beregning på pause, når skærmen er tændt</string>
+  <string name="prefs_stationary_device_mode_header">Tilstand for stationære enheder</string>
+  <string name="prefs_stationary_device_mode_description">Tillader beregning uanset strømindstillinger. Kun tilgængelig, hvis enheden ikke har et batteri.</string>
+  <string name="prefs_power_source_header">Strømkilder for beregning</string>
+  <string name="prefs_power_source_description">Vælger strømkilder, som BOINC må beregne under.</string>
+  <string name="prefs_power_source_ac">Oplader til stikkontakt</string>
+  <string name="prefs_power_source_usb">USB-forbindelse</string>
+  <string name="prefs_power_source_wireless">Trådløs oplader</string>
+  <string name="prefs_power_source_battery">Batteri</string>
+  <string name="battery_charge_min_pct_header">Min. batteriniveau</string>
+  <string name="battery_charge_min_pct_description">BOINC stopper beregninger under defineret batteriniveau.</string>
+  <string name="battery_temperature_max_header">Maks. batteritemperatur</string>
+  <string name="battery_temperature_max_description">BOINC stopper beregninger over defineret batteritemperatur. Det anbefales ikke at ændre denne værdi.</string>
+  <string name="prefs_disk_max_pct_header">Maks. brugt lagringsplads</string>
+  <string name="prefs_disk_max_pct_description">Hvor mange procent af din enheds lagringsplads må BOINC bruge?</string>
+  <string name="prefs_disk_min_free_gb_header">Min. lagringsplads</string>
+  <string name="prefs_disk_min_free_gb_description">Hvor meget af din enheds lagringsplads skal forblive ubrugt?</string>
+  <string name="prefs_disk_access_interval_header">Interval for tilgang</string>
+  <string name="prefs_disk_access_interval_description">Foreslår et interval mellem disktilgang</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Daglig begrænsning på overførsler</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Begrænser den daglige datatraffik forårsaget af BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Overfør kun opgaver over WiFi</string>
+  <string name="prefs_autostart_header">Autostart</string>
+  <string name="prefs_show_notification_notices_header">Vis notifikation for nye meddelelser</string>
+  <string name="prefs_show_notification_suspended_header">Vis notifikation under suspendering</string>
+  <string name="prefs_cpu_number_cpus_header">Brugte CPU-kerner</string>
+  <string name="prefs_cpu_number_cpus_description">Begrænser antallet af CPU-kerner, som BOINC bruger til beregninger.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pause ved CPU-belastning over</string>
+  <string name="prefs_cpu_other_load_suspension_description">Bestemmer hvornår BOINC sætter beregninger på pause på grund af andre app\'ers CPU-forbrug.</string>
+  <string name="prefs_cpu_time_max_header">CPU-begrænsning</string>
+  <string name="prefs_cpu_time_max_description">Begrænser CPU-tiden, som BOINC bruger til beregninger.</string>
+  <string name="prefs_memory_max_idle_header">RAM-begrænsning</string>
+  <string name="prefs_memory_max_idle_description">Begrænser mængden af RAM, som opgaver tillades at optage.</string>
+  <string name="prefs_client_log_flags_header">Log-flag for BOINC-klient</string>
+  <string name="prefs_gui_log_level_header">GUI-logniveau</string>
+  <string name="prefs_gui_log_level_description">Specificerer uddybningsniveau for GUI-logbeskeder.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sek.</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Indlæser projekter …</string>
+  <string name="projects_add">Tilføj projekt</string>
+  <string name="projects_icon">Projekt-ikon</string>
+  <string name="projects_credits">Bidragsydere:</string>
+  <string name="projects_credits_host_and_user">%1$,d (på denne enhed) %2$,d (totalt)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspenderet af bruger</string>
+  <string name="projects_status_dontrequestmorework">Vil ikke modtage nye opgaver</string>
+  <string name="projects_status_ended">Projekt afsluttet – O.k. for at fjerne</string>
+  <string name="projects_status_detachwhendone">Vil blive fjernet, når opgaver er fuldført</string>
+  <string name="projects_status_schedrpcpending">Planlægningsforespørgsel afventer</string>
+  <string name="projects_status_schedrpcinprogress">Planlægningsforespørgsel under udførsel</string>
+  <string name="projects_status_trickleuppending">Trickle-up-besked afventer</string>
+  <string name="projects_status_backoff">Kommunikation planlagt om:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Projektkommandoer:</string>
+  <string name="projects_control_visit_website">Besøg hjemmeside</string>
+  <string name="projects_control_update">Opdatér</string>
+  <string name="projects_control_remove">Fjern</string>
+  <string name="projects_control_suspend">Suspendér</string>
+  <string name="projects_control_resume">Fortsæt</string>
+  <string name="projects_control_nonewtasks">Ingen nye opgaver</string>
+  <string name="projects_control_allownewtasks">Tillad nye opgaver</string>
+  <string name="projects_control_reset">Nulstil</string>
+  <string name="projects_control_dialog_title_acctmgr">Kommandoer for kontohåndtering:</string>
+  <string name="projects_control_sync_acctmgr">Synkronisér</string>
+  <string name="projects_control_remove_acctmgr">Deaktivér</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Fjern projekt?</string>
+  <string name="projects_confirm_detach_message">Er du sikker på, at du vil fjerne</string>
+  <string name="projects_confirm_detach_message2">fra BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Fjern</string>
+  <string name="projects_confirm_reset_title">Nulstil projekt</string>
+  <string name="projects_confirm_reset_message">Er du sikker på, at du vil nulstille</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Nulstil</string>
+  <string name="projects_confirm_remove_acctmgr_title">Deaktivér kontohåndtering</string>
+  <string name="projects_confirm_remove_acctmgr_message">Er du sikker på, du vil stoppe med at bruge</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Deaktivér</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Opgavenavn:</string>
+  <string name="tasks_header_elapsed_time">Forgangen tid:</string>
+  <string name="tasks_header_project_paused">(suspenderet)</string>
+  <string name="tasks_header_deadline">Deadline:</string>
+  <string name="tasks_result_new">ny</string>
+  <string name="tasks_result_files_downloading">venter på download</string>
+  <string name="tasks_result_files_downloaded">download komplet</string>
+  <string name="tasks_result_compute_error">beregningsfejl</string>
+  <string name="tasks_result_files_uploading">uploader</string>
+  <string name="tasks_result_files_uploaded">upload komplet</string>
+  <string name="tasks_result_aborted">afbrudt</string>
+  <string name="tasks_result_upload_failed">upload mislykkedes</string>
+  <string name="tasks_active_uninitialized">klar</string>
+  <string name="tasks_active_executing">kører</string>
+  <string name="tasks_active_suspended">suspenderet</string>
+  <string name="tasks_active_abort_pending">suspenderer</string>
+  <string name="tasks_active_quit_pending">suspenderer</string>
+  <string name="tasks_custom_suspended_via_gui">suspenderet</string>
+  <string name="tasks_custom_project_suspended_via_gui">projekt suspenderet</string>
+  <string name="tasks_custom_ready_to_report">klar til at rapportere</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Afbryd opgave?</string>
+  <string name="confirm_abort_task_message">Afbryd opgave:</string>
+  <string name="confirm_abort_task_confirm">Afbryd</string>
+  <string name="confirm_cancel">Annullér</string>
+  <string name="confirm_image_desc">Bekræftelsesdialog</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Indlæser overførsler …</string>
+  <string name="trans_upload">Upload</string>
+  <string name="trans_download">Download</string>
+  <string name="trans_retryin">prøv igen om</string>
+  <string name="trans_failed">mislykkedes</string>
+  <string name="trans_suspended">suspenderet</string>
+  <string name="trans_active">aktiv</string>
+  <string name="trans_pending">afventer</string>
+  <string name="trans_projectbackoff">projekt backoff</string>
+  <string name="trans_header_name">Fil:</string>
+  <string name="trans_control_retry">Prøv filoverførsler igen</string>
+  <string name="confirm_abort_trans_title">Afbryd overførsel?</string>
+  <string name="confirm_abort_trans_message">Afbryd fil:</string>
+  <string name="confirm_abort_trans_confirm">Afbryd</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Indlæser meddelelser …</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Indlæser logbeskeder …</string>
+  <string name="eventlog_client_header">Klientbeskeder</string>
+  <string name="eventlog_gui_header">GUI-beskeder</string>
+  <string name="eventlog_copy_toast">Log kopieret til udklipsholder.</string>
+  <string name="eventlog_email_subject">Hændelseslog for BOINC på Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Beregning suspenderet.</string>
+  <string name="suspend_batteries">Forbind din enhed til en oplader for at fortsætte beregning.</string>
+  <string name="suspend_screen_on">Sluk skærmen for at fortsætte beregning.</string>
+  <string name="suspend_useractive">Bruger er aktiv.</string>
+  <string name="suspend_tod">Tidsvindue for beregning brugt up.</string>
+  <string name="suspend_bm">BOINC måler din enheds ydelsesevne …</string>
+  <string name="suspend_disksize">Diskplads opbrugt.</string>
+  <string name="suspend_cputhrottle">CPU-neddrosling planlagt.</string>
+  <string name="suspend_noinput">Ingen nylig brugeraktivitet.</string>
+  <string name="suspend_delay">Initialiseringsforsinkelse.</string>
+  <string name="suspend_exclusiveapp">En eksklusiv app kører.</string>
+  <string name="suspend_cpu">Din enhed er optaget af andre apps.</string>
+  <string name="suspend_network_quota">BOINC har nået begrænsningen for netværksoverførsel.</string>
+  <string name="suspend_os">Stoppet af Android.</string>
+  <string name="suspend_wifi">Ikke forbundet til WiFi.</string>
+  <string name="suspend_battery_charging">Venter på at batteriet er mere opladet.</string>
+  <string name="suspend_battery_charging_long">Beregning vil blive genoptaget, når batteriniveau når</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">nuværende</string>
+  <string name="suspend_battery_overheating">Venter på at batteri køler ned</string>
+  <string name="suspend_user_req">Genoptager beregning …</string>
+  <string name="suspend_network_user_req">manuelt.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Forespurgt af bruger</string>
+  <string name="rpcreason_needwork">For at hente opgaver</string>
+  <string name="rpcreason_resultsdue">For at rapportere komplette opgaver</string>
+  <string name="rpcreason_trickleup">For at sende trickle-up-besked</string>
+  <string name="rpcreason_acctmgrreq">Forespurgt af kontohåndtering</string>
+  <string name="rpcreason_init">Projektinitialisering</string>
+  <string name="rpcreason_projectreq">Forespurgt af projekt</string>
+  <string name="rpcreason_unknown">Ukendt årsag</string>
+  <!--menu-->
+  <string name="menu_refresh">Opdatér</string>
+  <string name="menu_emailto">Send som email</string>
+  <string name="menu_copy">Kopiér til udklipsholder</string>
+  <string name="menu_eventlog">Hændelseslog</string>
+  <string name="menu_exit">Afslut BOINC</string>
+  <string name="menu_run_mode_disable">Suspendér</string>
+  <string name="menu_run_mode_enable">Genoptag</string>
+  <string name="menu_about">Om</string>
+  <string name="menu_help">Hjælp</string>
+  <!--about dialog-->
+  <string name="about_button">Tilbage</string>
+  <string name="about_title">Om</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Version</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 University of California, Berkeley.</string>
+  <string name="about_copyright_reserved">Alle rettigheder forbeholdes.</string>
+  <string name="about_credits">Tak til Max Planck Institute for Gravitational Physics, IBM Corporation og HTC Corporation for deres støtte.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Ny besked fra %1$s</item>
+    <item quantity="other">%2$,d nye beskeder</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">App til frivillig beregning detekteret</string>
+  <string name="nonexcl_dialog_text">En anden app til frivillig beregning kører på denne enhed. Kun én version kan køre ad gangen.</string>
+  <string name="nonexcl_dialog_exit">Afslut</string>
+  <!--social integration-->
+  <string name="social_invite_button">Invitér venner</string>
+  <string name="social_invite_intent_title">Hvordan vil du dele?</string>
+  <string name="social_invite_content_title">Jeg bruger min smartphone til videnskab!</string>
+  <string name="social_invite_content_body">Jeg bruger min %1$s til at lave beregninger for videnskaben! Det kan du også! Download app\'en fra: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-de/strings.xml b/android/BOINC/app/src/main/res/values-de/strings.xml
new file mode 100644
index 0000000..1ee8667
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-de/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Es wird geladen. Bitte warten…</string>
+  <string name="generic_button_continue">Fortsetzen</string>
+  <string name="generic_button_finish">Beenden</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Wählen Sie ein wissenschaftliches Projekt, zu dem Sie beitragen wollen:</string>
+  <string name="attachproject_list_header">Projekt auswählen</string>
+  <string name="attachproject_list_manual_button">Projekt mittels URL hinzufügen</string>
+  <string name="attachproject_list_manual_dialog_title">Projekt-URL eingeben:</string>
+  <string name="attachproject_list_manual_dialog_button">Projekt hinzufügen</string>
+  <string name="attachproject_list_manual_no_url">Bitte die Projekt-URL eingeben</string>
+  <string name="attachproject_list_acctmgr_button">Kontoverwaltung hinzufügen</string>
+  <string name="attachproject_list_no_internet">Keine Internetverbindung</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Kontoinformationen eingeben</string>
+  <string name="attachproject_credential_input_desc">Kontoinformationen für ausgewählte Projekte eingeben:</string>
+  <string name="attachproject_credential_input_show_pwd">Passwort anzeigen</string>
+  <string name="attachproject_individual_credential_input">Projekte individuell hinzufügen</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Es gab Probleme beim Hinzufügen der wissenschaftlichen Projekte:</string>
+  <string name="attachproject_conflict_undefined">Keine Verbindung möglich</string>
+  <string name="attachproject_conflict_not_unique">Konto existiert bereits mit anderem Passwort</string>
+  <string name="attachproject_conflict_bad_password">Falsches Passwort</string>
+  <string name="attachproject_conflict_unknown_user">Konto existiert nicht</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Konto existiert nicht, bitte die Projektwebseite besuchen um sich zu registrieren</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">hinzufügen</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Hinweis</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">So können Sie beitragen:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. WLAN Verbindung herstellen</string>
+  <string name="attachproject_hint_contribtion_charger">2. Ladegerät anschließen</string>
+  <string name="attachproject_hint_contribtion_screen">3. Bildschirm ausschalten</string>
+  <string name="attachproject_hint_projectwebsite_header">Die Projektwebseite besuchen um:</string>
+  <string name="attachproject_hint_projectwebsite_science">Mehr über die Wissenschaft zu erfahren</string>
+  <string name="attachproject_hint_projectwebsite_stats">Die Statistik zur Teilnahme zu sehen</string>
+  <string name="attachproject_hint_projectwebsite_community">Kontakt mit anderen Teilnehmern aufzunehmen</string>
+  <string name="attachproject_hint_platforms_header">BOINC ist auch für Ihren Computer oder Laptop verfügbar, auf boinc.berkeley.edu erfahren Sie mehr.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">kontaktiere Projektserver…</string>
+  <string name="attachproject_login_image_description">Projektlogo.</string>
+  <string name="attachproject_login_header_general_area">Bereich:</string>
+  <string name="attachproject_login_header_specific_area">Fachbereich:</string>
+  <string name="attachproject_login_header_description">Beschreibung:</string>
+  <string name="attachproject_login_header_home">Betreiber:</string>
+  <string name="attachproject_login_header_url">Webseite:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Dieses Projekt unterstützt Android-Geräte</string>
+  <string name="attachproject_login_platform_not_supported">Dieses Projekt unterstützt keine Android-Geräte</string>
+  <string name="attachproject_login_category_terms_of_use">Nutzungsbedingungen für</string>
+  <string name="attachproject_login_accept_terms_of_use">Wenn Sie bei diesem Projekt ein Konto anlegen, akzeptieren Sie die oben gezeigten Nutzungsbedingungen.</string>
+  <string name="attachproject_login_category_login">Mit bestehendem Konto anmelden</string>
+  <string name="attachproject_login_header_id_email">E-Mail:</string>
+  <string name="attachproject_login_header_id_name">Name:</string>
+  <string name="attachproject_login_header_pwd">Passwort:</string>
+  <string name="attachproject_login_category_creation">Neu bei</string>
+  <string name="attachproject_login_header_creation_enabled">Ein Konto erstellen um teilzunehmen:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Die Projektwebseite besuchen um ein Konto zu erstellen:</string>
+  <string name="attachproject_login_header_creation_disabled">Dieses Projekt erlaubt momentan keine neuen Konten.</string>
+  <string name="attachproject_login_button_registration">Registrieren</string>
+  <string name="attachproject_login_button_login">Anmelden</string>
+  <string name="attachproject_login_button_forgotpw">Passwort vergessen</string>
+  <string name="attachproject_login_error_toast">Verbindung zum Projekt fehlgeschlagen!</string>
+  <string name="attachproject_login_attached">Verbunden</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Konto-Registrierung für</string>
+  <string name="attachproject_registration_header_url">Projekt:</string>
+  <string name="attachproject_registration_header_email">E-Mail:</string>
+  <string name="attachproject_registration_header_username">Name:</string>
+  <string name="attachproject_registration_header_teamname">Team:</string>
+  <string name="attachproject_registration_header_pwd">Passwort:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Bestätigung:</string>
+  <string name="attachproject_registration_button">Erstellen</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Eine BOINC Kontoverwaltung benutzen um mehrere Projekte hinzuzufügen und zu verwalten.</string>
+  <string name="attachproject_acctmgr_header">Kontoverwaltung hinzufügen</string>
+  <string name="attachproject_acctmgr_header_url">Adresse</string>
+  <string name="attachproject_acctmgr_header_name">Benutzer:</string>
+  <string name="attachproject_acctmgr_header_pwd">Passwort:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Bestätigung:</string>
+  <string name="attachproject_acctmgr_button">Hinzufügen</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Benutzer nicht gefunden</string>
+  <string name="attachproject_error_short_pwd">Passwort ist zu kurz</string>
+  <string name="attachproject_error_no_internet">Verbindungsfehler</string>
+  <string name="attachproject_error_pwd_no_match">Passwörter stimmen nicht überein</string>
+  <string name="attachproject_error_pwd_no_retype">Bitte das Passwort erneut eingeben</string>
+  <string name="attachproject_error_no_url">Bitte geben Sie die Adresse ein</string>
+  <string name="attachproject_error_no_email">Bitte geben Sie Ihre E-Mail-Adresse ein</string>
+  <string name="attachproject_error_no_pwd">Bitte Passwort eingeben</string>
+  <string name="attachproject_error_no_name">Bitte einen Benutzernamen eingeben</string>
+  <string name="attachproject_error_unknown">fehlgeschlagen</string>
+  <string name="attachproject_error_bad_username">Benutzername nicht erlaubt</string>
+  <string name="attachproject_error_email_in_use">E-Mail-Adresse ist bereits registriert</string>
+  <string name="attachproject_error_project_down">Projekt nicht erreichbar</string>
+  <string name="attachproject_error_email_bad_syntax">E-Mail-Adresse nicht akzeptiert</string>
+  <string name="attachproject_error_bad_pwd">Passwort zu kurz</string>
+  <string name="attachproject_error_creation_disabled">Die Kontoerstellung ist bei diesem Projekt deaktiviert</string>
+  <string name="attachproject_error_invalid_url">Ungültige Adresse</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Zurück</string>
+  <string name="attachproject_working_finish_button">Beenden</string>
+  <string name="attachproject_working_check_desc">Erfolgreich</string>
+  <string name="attachproject_working_failed_desc">Fehlgeschlagen</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Verbinden</string>
+  <string name="attachproject_working_verify">Konto überprüfen</string>
+  <string name="attachproject_working_register">Konto anlegen</string>
+  <string name="attachproject_working_login">Anmelden</string>
+  <string name="attachproject_working_acctmgr">Kontoverwaltung hinzufügen</string>
+  <string name="attachproject_working_acctmgr_sync">Synchronisieren</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Hier tippen um ein Projekt auszuwählen.</string>
+  <string name="main_error">Whooops</string>
+  <string name="main_error_long">…das sollte eigentlich nicht passieren!\nAuf das Symbol klicken um es erneut zu probieren.</string>
+  <string name="main_title_icon_desc">BOINC Logo</string>
+  <!--tab names-->
+  <string name="tab_status">Status</string>
+  <string name="tab_projects">Projekte</string>
+  <string name="tab_tasks">Aufgaben</string>
+  <string name="tab_transfers">Übertragungen</string>
+  <string name="tab_preferences">Einstellungen</string>
+  <string name="tab_notices">Nachrichten</string>
+  <string name="tab_desc">Navigation</string>
+  <!--status strings-->
+  <string name="status_running">Berechnung läuft</string>
+  <string name="status_running_long">Vielen Dank für Ihre Beteiligung.</string>
+  <string name="status_paused">angehalten</string>
+  <string name="status_idle">Nichts zu tun</string>
+  <string name="status_idle_long">Warten auf Aufgaben…</string>
+  <string name="status_computing_disabled">angehalten</string>
+  <string name="status_computing_disabled_long">Play drücken um Netzwerkaktivität und Berechnung fortzusetzen.</string>
+  <string name="status_launching">Startet…</string>
+  <string name="status_noproject">Wählen Sie ein Projekt zur Teilnahme aus.</string>
+  <string name="status_closing">Beenden…</string>
+  <string name="status_benchmarking">Leistungsüberprüfung…</string>
+  <string name="status_image_description">Projektbild</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">lese Einstellungen…</string>
+  <string name="prefs_submit_button">Speichern</string>
+  <string name="prefs_dialog_title">Neuen Wert eingeben:</string>
+  <string name="prefs_dialog_title_selection">Auswählen:</string>
+  <string name="prefs_category_general">Allgemeines</string>
+  <string name="prefs_category_network">Netzwerk</string>
+  <string name="prefs_category_power">Energie</string>
+  <string name="prefs_category_cpu">Prozessor</string>
+  <string name="prefs_category_storage">Speicherplatz</string>
+  <string name="prefs_category_memory">Arbeitsspeicher</string>
+  <string name="prefs_category_debug">Fehlerdiagnose</string>
+  <string name="prefs_show_advanced_header">Zeige erweiterte Einstellungen und Steuerungen…</string>
+  <string name="prefs_suspend_when_screen_on">Die Berechnung anhalten wenn der Bildschirm eingeschaltet ist</string>
+  <string name="prefs_stationary_device_mode_header">Modus für feststehende Geräte</string>
+  <string name="prefs_stationary_device_mode_description">Erlaubt die Berechnung unabhängig von Energieeinstellungen. Nur für Geräte ohne Akku auswählen.</string>
+  <string name="prefs_power_source_header">Energiequellen für Berechnung</string>
+  <string name="prefs_power_source_description">Die Energiequellen auswählen mit denen eine Berechnung erlaubt ist.</string>
+  <string name="prefs_power_source_ac">Steckdose</string>
+  <string name="prefs_power_source_usb">USB Verbindung</string>
+  <string name="prefs_power_source_wireless">Kabelloses Ladegerät</string>
+  <string name="prefs_power_source_battery">Akku</string>
+  <string name="battery_charge_min_pct_header">Min. Akku-Ladestand</string>
+  <string name="battery_charge_min_pct_description">BOINC hält die Berechnung an, wenn der Akkuladestand unter den gewählten Wert sinkt.</string>
+  <string name="battery_temperature_max_header">Max. Akkutemperatur</string>
+  <string name="battery_temperature_max_description">BOINC hält die Berechnung an, sobald diese Temperatur überschritten wird. Es wird nicht empfohlen diesen Wert zu ändern.</string>
+  <string name="prefs_disk_max_pct_header">Max. zu nutzender Speicher</string>
+  <string name="prefs_disk_max_pct_description">Wie viel Prozent Ihres Speichers darf BOINC maximal verwenden?</string>
+  <string name="prefs_disk_min_free_gb_header">min. freizuhaltender Speicher</string>
+  <string name="prefs_disk_min_free_gb_description">Wie viel Speicher soll mindestens frei bleiben?</string>
+  <string name="prefs_disk_access_interval_header">Zugriffsintervall</string>
+  <string name="prefs_disk_access_interval_description">Vorschlag für den Zeitraum zwischen zwei Speicherzugriffen</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">tägliche Transferbegrenzung</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Begrenzt die Datenmenge welche täglich durch BOINC übertragen wird.</string>
+  <string name="prefs_network_wifi_only_header">Übertrage Aufgaben nur per WLAN</string>
+  <string name="prefs_autostart_header">Automatisch starten</string>
+  <string name="prefs_show_notification_notices_header">Zeige Meldung für neue Nachrichten</string>
+  <string name="prefs_show_notification_suspended_header">Zeige Nachrichten wenn angehalten</string>
+  <string name="prefs_cpu_number_cpus_header">Benutzte Prozessoren</string>
+  <string name="prefs_cpu_number_cpus_description">Limitiert die Anzahl der Prozessoren welche BOINC nutzen darf.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Anhalten wenn Prozessornutzung über</string>
+  <string name="prefs_cpu_other_load_suspension_description">Legt fest wann BOINC angehalten wird weil andere Apps die CPU benutzen.</string>
+  <string name="prefs_cpu_time_max_header">Prozessorbegrenzung</string>
+  <string name="prefs_cpu_time_max_description">Limitiert die Prozessorzeit, die BOINC nutzen darf.</string>
+  <string name="prefs_memory_max_idle_header">Arbeitsspeicherlimit</string>
+  <string name="prefs_memory_max_idle_description">Limitiert den Arbeitsspeicher welcher für Aufgaben zur Verfügung steht.</string>
+  <string name="prefs_client_log_flags_header">BOINC Client Protokolleinstellungen</string>
+  <string name="prefs_gui_log_level_header">GUI Protokollierstufe</string>
+  <string name="prefs_gui_log_level_description">Einstellung der Detailiertheit der GUI Protokollmeldungen.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sek.</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Lade Projekte…</string>
+  <string name="projects_add">Projekt hinzufügen</string>
+  <string name="projects_icon">Projektsymbol</string>
+  <string name="projects_credits">Punkte:</string>
+  <string name="projects_credits_host_and_user">%1$,d (auf diesem Gerät) %2$,d (insgesamt)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Angehalten durch Benutzer</string>
+  <string name="projects_status_dontrequestmorework">Keine neuen Arbeitspakete</string>
+  <string name="projects_status_ended">Projekt wurde beendet - kann jetzt entfernt werden</string>
+  <string name="projects_status_detachwhendone">wird entfernt wenn Aufgaben erledigt</string>
+  <string name="projects_status_schedrpcpending">Serveranfrage ausstehend</string>
+  <string name="projects_status_schedrpcinprogress">Serveranfrage läuft</string>
+  <string name="projects_status_trickleuppending">Trickle-Up Nachricht ausstehend</string>
+  <string name="projects_status_backoff">nächste Kommunikation in:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Projektbefehle:</string>
+  <string name="projects_control_visit_website">Webseite besuchen</string>
+  <string name="projects_control_update">Aktualisieren</string>
+  <string name="projects_control_remove">Entfernen</string>
+  <string name="projects_control_suspend">Anhalten</string>
+  <string name="projects_control_resume">Fortsetzen</string>
+  <string name="projects_control_nonewtasks">Keine neuen Aufgaben</string>
+  <string name="projects_control_allownewtasks">Neue Aufgaben zulassen</string>
+  <string name="projects_control_reset">Zurücksetzen</string>
+  <string name="projects_control_dialog_title_acctmgr">Kontoverwaltungsbefehle:</string>
+  <string name="projects_control_sync_acctmgr">Synchronisieren</string>
+  <string name="projects_control_remove_acctmgr">Deaktivieren</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Projekt entfernen?</string>
+  <string name="projects_confirm_detach_message">Wollen Sie wirklich</string>
+  <string name="projects_confirm_detach_message2">von BOINC entfernen?</string>
+  <string name="projects_confirm_detach_confirm">Entfernen</string>
+  <string name="projects_confirm_reset_title">Projekt zurücksetzen</string>
+  <string name="projects_confirm_reset_message">Sind Sie sicher, dass Projekt neu zu initialisieren</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Zurücksetzen</string>
+  <string name="projects_confirm_remove_acctmgr_title">Kontoverwaltung deaktivieren</string>
+  <string name="projects_confirm_remove_acctmgr_message">Sind Sie sicher die Kontoverwaltung zu entfernen</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Deaktivieren</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Aufgabenname:</string>
+  <string name="tasks_header_elapsed_time">Abgelaufene Zeit:</string>
+  <string name="tasks_header_project_paused">(angehalten)</string>
+  <string name="tasks_header_deadline">Ablaufdatum:</string>
+  <string name="tasks_result_new">neu</string>
+  <string name="tasks_result_files_downloading">lädt herunter</string>
+  <string name="tasks_result_files_downloaded">herunterladen abgeschlossen</string>
+  <string name="tasks_result_compute_error">Berechnungsfehler</string>
+  <string name="tasks_result_files_uploading">hochladen</string>
+  <string name="tasks_result_files_uploaded">hochladen abgeschlossen</string>
+  <string name="tasks_result_aborted">abgebrochen</string>
+  <string name="tasks_result_upload_failed">hochladen fehlgeschlagen</string>
+  <string name="tasks_active_uninitialized">bereit</string>
+  <string name="tasks_active_executing">wird ausgeführt</string>
+  <string name="tasks_active_suspended">angehalten</string>
+  <string name="tasks_active_abort_pending">wird angehalten</string>
+  <string name="tasks_active_quit_pending">wird angehalten</string>
+  <string name="tasks_custom_suspended_via_gui">angehalten</string>
+  <string name="tasks_custom_project_suspended_via_gui">Projekt angehalten</string>
+  <string name="tasks_custom_ready_to_report">meldebereit</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Aufgabe abbrechen?</string>
+  <string name="confirm_abort_task_message">Aufgabe abbrechen:</string>
+  <string name="confirm_abort_task_confirm">Aufgabe abbrechen</string>
+  <string name="confirm_cancel">Zurück</string>
+  <string name="confirm_image_desc">Bestätigungsdialog</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Lade Übertragungen…</string>
+  <string name="trans_upload">Hochladen</string>
+  <string name="trans_download">Herunterladen</string>
+  <string name="trans_retryin">erneut versuchen in</string>
+  <string name="trans_failed">fehlgeschlagen</string>
+  <string name="trans_suspended">angehalten</string>
+  <string name="trans_active">aktiv</string>
+  <string name="trans_pending">ausstehend</string>
+  <string name="trans_projectbackoff">Projektwartezeit</string>
+  <string name="trans_header_name">Datei:</string>
+  <string name="trans_control_retry">Übertragung wiederholen</string>
+  <string name="confirm_abort_trans_title">Übertragung abbrechen?</string>
+  <string name="confirm_abort_trans_message">Abbruch-Datei:</string>
+  <string name="confirm_abort_trans_confirm">Übertragung abbrechen</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Lade Nachrichten...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Lade Protokollmeldungen…</string>
+  <string name="eventlog_client_header">Client Meldungen</string>
+  <string name="eventlog_gui_header">GUI Meldungen</string>
+  <string name="eventlog_copy_toast">Protokoll in die Zwischenablage kopiert.</string>
+  <string name="eventlog_email_subject">Ereignisprotokoll für BOINC auf Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Berechnung angehalten.</string>
+  <string name="suspend_batteries">Schließen Sie Ihr Gerät an eine Stromquelle an um weiterzurechnen.</string>
+  <string name="suspend_screen_on">Bildschirm ausschalten um Berechnung fortzusetzen.</string>
+  <string name="suspend_useractive">Benutzer ist aktiv.</string>
+  <string name="suspend_tod">Außerhalb der Zeitbeschränkungen.</string>
+  <string name="suspend_bm">BOINC ermittelt die Leistungsfähigkeit ihres Gerätes…</string>
+  <string name="suspend_disksize">Kein Speicherplatz mehr verfügbar.</string>
+  <string name="suspend_cputhrottle">Geplante Prozessordrosselung.</string>
+  <string name="suspend_noinput">Keine Benutzeraktivität.</string>
+  <string name="suspend_delay">Startverzögerung.</string>
+  <string name="suspend_exclusiveapp">Eine exklusive Anwendung läuft.</string>
+  <string name="suspend_cpu">Ihr Gerät ist mit anderen Apps ausgelastet.</string>
+  <string name="suspend_network_quota">Netzwerkübertragungslimit erreicht.</string>
+  <string name="suspend_os">Gestoppt von Android.</string>
+  <string name="suspend_wifi">Nicht per WLAN verbunden.</string>
+  <string name="suspend_battery_charging">Warten bis der Akku geladen ist.</string>
+  <string name="suspend_battery_charging_long">Berechnung wird fortgesetzt wenn der Ladezustand größer</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">aktuell</string>
+  <string name="suspend_battery_overheating">Warten bis der Akku abgekühlt ist</string>
+  <string name="suspend_user_req">Berechnung wird fortgesetzt…</string>
+  <string name="suspend_network_user_req">manuell.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Vom Nutzer gefordert</string>
+  <string name="rpcreason_needwork">Um Arbeit zu holen</string>
+  <string name="rpcreason_resultsdue">Um Aufgaben abzuliefern</string>
+  <string name="rpcreason_trickleup">Um Trickle-Up Nachricht zu senden</string>
+  <string name="rpcreason_acctmgrreq">Angefordert vom Kontomanager</string>
+  <string name="rpcreason_init">Projektinitialisierung</string>
+  <string name="rpcreason_projectreq">Vom Projekt angefordert</string>
+  <string name="rpcreason_unknown">Unbekannter Grund</string>
+  <!--menu-->
+  <string name="menu_refresh">Neu laden</string>
+  <string name="menu_emailto">Als E-Mail versenden</string>
+  <string name="menu_copy">In Zwischenablage kopieren</string>
+  <string name="menu_eventlog">Statusmeldungen</string>
+  <string name="menu_exit">BOINC beenden</string>
+  <string name="menu_run_mode_disable">Anhalten</string>
+  <string name="menu_run_mode_enable">Fortsetzen</string>
+  <string name="menu_about">Über</string>
+  <string name="menu_help">Hilfe</string>
+  <!--about dialog-->
+  <string name="about_button">Zurück</string>
+  <string name="about_title">Über</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Version</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 Universität von Kalifornien in Berkeley.</string>
+  <string name="about_copyright_reserved">Alle Rechte vorbehalten.</string>
+  <string name="about_credits">Danke dem Max Planck Institut für Gravitationsphysik, IBM und HTC für die Unterstützung.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Neue Nachricht von %1$s</item>
+    <item quantity="other">%2$,d neue Nachrichten</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Volunteer Computing App gefunden</string>
+  <string name="nonexcl_dialog_text">Eine weitere Volunteer Computing App läuft auf diesem Gerät. Es kann immer nur eine App verwendet werden.</string>
+  <string name="nonexcl_dialog_exit">Beenden</string>
+  <!--social integration-->
+  <string name="social_invite_button">Freunde einladen</string>
+  <string name="social_invite_intent_title">Wie möchten Sie andere informieren?</string>
+  <string name="social_invite_content_title">Ich betreibe Forschung mit meinem Smartphone!</string>
+  <string name="social_invite_content_body">Ich benutze mein %1$s um für die Forschung zu rechnen. Du kannst das auch! Hier gibt es die App: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.de/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-el/strings.xml b/android/BOINC/app/src/main/res/values-el/strings.xml
new file mode 100644
index 0000000..55344e5
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-el/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+</resources>
\ No newline at end of file
diff --git a/android/BOINC/app/src/main/res/values-en/strings.xml b/android/BOINC/app/src/main/res/values-en/strings.xml
new file mode 100644
index 0000000..fd7e2e0
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-en/strings.xml
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Loading! Please wait…</string>
+  <string name="generic_button_continue">Continue</string>
+  <string name="generic_button_finish">Finish</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Select scientific projects you want to contribute to:</string>
+  <string name="attachproject_list_header">Choose a project</string>
+  <string name="attachproject_list_manual_button">Add project by URL</string>
+  <string name="attachproject_list_manual_dialog_title">Enter project URL:</string>
+  <string name="attachproject_list_manual_dialog_button">Add project</string>
+  <string name="attachproject_list_manual_no_url">Please enter project URL</string>
+  <string name="attachproject_list_acctmgr_button">Add account manager</string>
+  <string name="attachproject_list_no_internet">No Internet connection</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Enter account information</string>
+  <string name="attachproject_credential_input_desc">Enter account information for selected projects:</string>
+  <string name="attachproject_credential_input_show_pwd">Show password</string>
+  <string name="attachproject_individual_credential_input">Attach projects individually</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">There have been problems attaching scientific projects:</string>
+  <string name="attachproject_conflict_undefined">Could not connect</string>
+  <string name="attachproject_conflict_not_unique">Account exists with different password</string>
+  <string name="attachproject_conflict_bad_password">Password incorrect</string>
+  <string name="attachproject_conflict_unknown_user">Account does not exist</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Account does not exist, visit project website to register</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Attaching</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Hint</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">How to contribute:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Connect to WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Plug in Charger</string>
+  <string name="attachproject_hint_contribtion_screen">3. Turn off Screen</string>
+  <string name="attachproject_hint_projectwebsite_header">Visit project websites to:</string>
+  <string name="attachproject_hint_projectwebsite_science">Learn more about the science</string>
+  <string name="attachproject_hint_projectwebsite_stats">View contribution statistics</string>
+  <string name="attachproject_hint_projectwebsite_community">Get in touch with other volunteers</string>
+  <string name="attachproject_hint_platforms_header">BOINC is also available for your computer or laptop, visit boinc.berkeley.edu to learn more.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Contacting project server…</string>
+  <string name="attachproject_login_image_description">Project logo.</string>
+  <string name="attachproject_login_header_general_area">General area:</string>
+  <string name="attachproject_login_header_specific_area">Specific area:</string>
+  <string name="attachproject_login_header_description">Description:</string>
+  <string name="attachproject_login_header_home">Home:</string>
+  <string name="attachproject_login_header_url">Website:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Device type is supported by this project</string>
+  <string name="attachproject_login_platform_not_supported">Device is not supported by this project</string>
+  <string name="attachproject_login_category_terms_of_use">Terms of use for</string>
+  <string name="attachproject_login_accept_terms_of_use">By creating an account with this project, you accept the terms of use as shown above.</string>
+  <string name="attachproject_login_category_login">Sign in with existing account</string>
+  <string name="attachproject_login_header_id_email">eMail:</string>
+  <string name="attachproject_login_header_id_name">Name:</string>
+  <string name="attachproject_login_header_pwd">Password:</string>
+  <string name="attachproject_login_category_creation">New to </string>
+  <string name="attachproject_login_header_creation_enabled">Register an account to participate:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Visit project website to create an account:</string>
+  <string name="attachproject_login_header_creation_disabled">This project is not currently accepting new accounts.</string>
+  <string name="attachproject_login_button_registration">Register</string>
+  <string name="attachproject_login_button_login">Sign in</string>
+  <string name="attachproject_login_button_forgotpw">Forgot Password</string>
+  <string name="attachproject_login_error_toast">Contacting project failed!</string>
+  <string name="attachproject_login_attached">Attached</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Account registration for </string>
+  <string name="attachproject_registration_header_url">Project:</string>
+  <string name="attachproject_registration_header_email">eMail:</string>
+  <string name="attachproject_registration_header_username">Name:</string>
+  <string name="attachproject_registration_header_teamname">Team:</string>
+  <string name="attachproject_registration_header_pwd">Password:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Retype:</string>
+  <string name="attachproject_registration_button">Create</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Use BOINC account manager to add and manage multiple projects</string>
+  <string name="attachproject_acctmgr_header">Add account manager</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">User:</string>
+  <string name="attachproject_acctmgr_header_pwd">Password:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Retype:</string>
+  <string name="attachproject_acctmgr_button">Add</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">User not found</string>
+  <string name="attachproject_error_short_pwd">Password too short</string>
+  <string name="attachproject_error_no_internet">Connection failure</string>
+  <string name="attachproject_error_pwd_no_match">Passwords do not match</string>
+  <string name="attachproject_error_pwd_no_retype">Please type password again</string>
+  <string name="attachproject_error_no_url">Please enter URL</string>
+  <string name="attachproject_error_no_email">Please enter eMail address</string>
+  <string name="attachproject_error_no_pwd">Please enter a password</string>
+  <string name="attachproject_error_no_name">Please enter user name</string>
+  <string name="attachproject_error_unknown">failed</string>
+  <string name="attachproject_error_bad_username">User name refused</string>
+  <string name="attachproject_error_email_in_use">eMail is already in use</string>
+  <string name="attachproject_error_project_down">Project is offline</string>
+  <string name="attachproject_error_email_bad_syntax">eMail refused</string>
+  <string name="attachproject_error_bad_pwd">Password refused</string>
+  <string name="attachproject_error_creation_disabled">Account creation is disabled on this project</string>
+  <string name="attachproject_error_invalid_url">Invalid URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Back</string>
+  <string name="attachproject_working_finish_button">Finish</string>
+  <string name="attachproject_working_check_desc">Successful</string>
+  <string name="attachproject_working_failed_desc">Failed</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Connect</string>
+  <string name="attachproject_working_verify">Verify account</string>
+  <string name="attachproject_working_register">Register account</string>
+  <string name="attachproject_working_login">Log in</string>
+  <string name="attachproject_working_acctmgr">Add account manager</string>
+  <string name="attachproject_working_acctmgr_sync">Synchronize</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Tap here to choose a project.</string>
+  <string name="main_error">Whooops</string>
+  <string name="main_error_long">…this should not happen!\nClick on the icon to try again.</string>
+  <string name="main_title_icon_desc">BOINC icon</string>
+  <!--tab names-->
+  <string name="tab_status">Status</string>
+  <string name="tab_projects">Projects</string>
+  <string name="tab_tasks">Tasks</string>
+  <string name="tab_transfers">Transfers</string>
+  <string name="tab_preferences">Preferences</string>
+  <string name="tab_notices">Notices</string>
+  <string name="tab_desc">Navigation</string>
+  <!--status strings-->
+  <string name="status_running">Computing</string>
+  <string name="status_running_long">Thank you for participating.</string>
+  <string name="status_paused">Suspended</string>
+  <string name="status_idle">Nothing to do</string>
+  <string name="status_idle_long">Waiting for tasks…</string>
+  <string name="status_computing_disabled">Suspended</string>
+  <string name="status_computing_disabled_long">Press play to resume network and computation.</string>
+  <string name="status_launching">Starting…</string>
+  <string name="status_noproject">Choose a project to participate in.</string>
+  <string name="status_closing">Closing…</string>
+  <string name="status_benchmarking">Benchmarking…</string>
+  <string name="status_image_description">project image</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Reading preferences…</string>
+  <string name="prefs_submit_button">Save</string>
+  <string name="prefs_dialog_title">Enter new value:</string>
+  <string name="prefs_dialog_title_selection">Select:</string>
+  <string name="prefs_category_general">General</string>
+  <string name="prefs_category_network">Network</string>
+  <string name="prefs_category_power">Power</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Storage</string>
+  <string name="prefs_category_memory">Memory</string>
+  <string name="prefs_category_debug">Debug</string>
+  <string name="prefs_show_advanced_header">Show advanced preferences and controls…</string>
+  <string name="prefs_suspend_when_screen_on">Pause computation when screen is on</string>
+  <string name="prefs_stationary_device_mode_header">Stationary device mode</string>
+  <string name="prefs_stationary_device_mode_description">Allows computation regardless of Power preferences. Only enable if device does not have a battery.</string>
+  <string name="prefs_power_source_header">Power sources for computation</string>
+  <string name="prefs_power_source_description">Selects power sources BOINC is allowed to use for computation.</string>
+  <string name="prefs_power_source_ac">Wall socket</string>
+  <string name="prefs_power_source_usb">USB connection</string>
+  <string name="prefs_power_source_wireless">Wireless charger</string>
+  <string name="prefs_power_source_battery">Battery</string>
+  <string name="battery_charge_min_pct_header">Min. battery level</string>
+  <string name="battery_charge_min_pct_description">BOINC suspends computation below defined battery charge level.</string>
+  <string name="battery_temperature_max_header">Max. battery temperature</string>
+  <string name="battery_temperature_max_description">BOINC suspends computation above defined battery temperature. It is not recommended to change this value.</string>
+  <string name="prefs_disk_max_pct_header">Max. used storage space</string>
+  <string name="prefs_disk_max_pct_description">How many percent of your device\'s storage space is BOINC allowed to use?</string>
+  <string name="prefs_disk_min_free_gb_header">Min. spare storage</string>
+  <string name="prefs_disk_min_free_gb_description">How much of your device\'s storage space shall stay free?</string>
+  <string name="prefs_disk_access_interval_header">Access interval</string>
+  <string name="prefs_disk_access_interval_description">Suggests an interval between disk accesses</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Daily transfer limit</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limits the daily data traffic caused by BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Transfer tasks on WiFi only</string>
+  <string name="prefs_autostart_header">Autostart</string>
+  <string name="prefs_show_notification_notices_header">Show notification for new notices</string>
+  <string name="prefs_show_notification_suspended_header">Show notification when suspended</string>
+  <string name="prefs_cpu_number_cpus_header">Used CPU cores</string>
+  <string name="prefs_cpu_number_cpus_description">Limits the number of CPU cores BOINC uses for computation.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pause at CPU usage above</string>
+  <string name="prefs_cpu_other_load_suspension_description">Determines when BOINC pauses computation due to other apps\' CPU usage.</string>
+  <string name="prefs_cpu_time_max_header">CPU limit</string>
+  <string name="prefs_cpu_time_max_description">Limits the CPU time BOINC uses for computation.</string>
+  <string name="prefs_memory_max_idle_header">RAM limit</string>
+  <string name="prefs_memory_max_idle_description">Limits the amount of RAM tasks are allowed to occupy.</string>
+  <string name="prefs_client_log_flags_header">BOINC Client log flags</string>
+  <string name="prefs_gui_log_level_header">GUI log level</string>
+  <string name="prefs_gui_log_level_description">Specifies verbosity of GUI log messages.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sec</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Reading projects…</string>
+  <string name="projects_add">Add project</string>
+  <string name="projects_icon">Project icon</string>
+  <string name="projects_credits">Credit:</string>
+  <string name="projects_credits_host_and_user">%1$,d (on this device) %2$,d (total)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspended by user</string>
+  <string name="projects_status_dontrequestmorework">Won\'t get new tasks</string>
+  <string name="projects_status_ended">Project ended - OK to remove</string>
+  <string name="projects_status_detachwhendone">Will remove when tasks done</string>
+  <string name="projects_status_schedrpcpending">Scheduler request pending</string>
+  <string name="projects_status_schedrpcinprogress">Scheduler request in progress</string>
+  <string name="projects_status_trickleuppending">Trickle up message pending</string>
+  <string name="projects_status_backoff">Communication scheduled in:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Project commands:</string>
+  <string name="projects_control_visit_website">Visit website</string>
+  <string name="projects_control_update">Update</string>
+  <string name="projects_control_remove">Remove</string>
+  <string name="projects_control_suspend">Suspend</string>
+  <string name="projects_control_resume">Resume</string>
+  <string name="projects_control_nonewtasks">No new tasks</string>
+  <string name="projects_control_allownewtasks">Allow new tasks</string>
+  <string name="projects_control_reset">Reset</string>
+  <string name="projects_control_dialog_title_acctmgr">Account manager commands:</string>
+  <string name="projects_control_sync_acctmgr">Synchronize</string>
+  <string name="projects_control_remove_acctmgr">Disable</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Remove project?</string>
+  <string name="projects_confirm_detach_message">Are you sure you want to remove</string>
+  <string name="projects_confirm_detach_message2">from BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Remove</string>
+  <string name="projects_confirm_reset_title">Reset project</string>
+  <string name="projects_confirm_reset_message">Are you sure you want to reset</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Reset</string>
+  <string name="projects_confirm_remove_acctmgr_title">Disable account manager</string>
+  <string name="projects_confirm_remove_acctmgr_message">Are you sure you want to stop using</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Disable</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Task Name:</string>
+  <string name="tasks_header_elapsed_time">Elapsed time:</string>
+  <string name="tasks_header_project_paused">(suspended)</string>
+  <string name="tasks_header_deadline">Deadline:</string>
+  <string name="tasks_result_new">new</string>
+  <string name="tasks_result_files_downloading">waiting for download</string>
+  <string name="tasks_result_files_downloaded">download complete</string>
+  <string name="tasks_result_compute_error">computation error</string>
+  <string name="tasks_result_files_uploading">uploading</string>
+  <string name="tasks_result_files_uploaded">upload complete</string>
+  <string name="tasks_result_aborted">aborted</string>
+  <string name="tasks_result_upload_failed">upload failed</string>
+  <string name="tasks_active_uninitialized">ready</string>
+  <string name="tasks_active_executing">running</string>
+  <string name="tasks_active_suspended">suspended</string>
+  <string name="tasks_active_abort_pending">suspending</string>
+  <string name="tasks_active_quit_pending">suspending</string>
+  <string name="tasks_custom_suspended_via_gui">suspended</string>
+  <string name="tasks_custom_project_suspended_via_gui">project suspended</string>
+  <string name="tasks_custom_ready_to_report">ready to report</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Abort task?</string>
+  <string name="confirm_abort_task_message">Abort task:</string>
+  <string name="confirm_abort_task_confirm">Abort</string>
+  <string name="confirm_cancel">Cancel</string>
+  <string name="confirm_image_desc">Confirmation dialog</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Reading transfers…</string>
+  <string name="trans_upload">Upload</string>
+  <string name="trans_download">Download</string>
+  <string name="trans_retryin">retry in</string>
+  <string name="trans_failed">failed</string>
+  <string name="trans_suspended">suspended</string>
+  <string name="trans_active">active</string>
+  <string name="trans_pending">pending</string>
+  <string name="trans_projectbackoff">project backoff</string>
+  <string name="trans_header_name">File:</string>
+  <string name="trans_control_retry">Retry transfers</string>
+  <string name="confirm_abort_trans_title">Abort transfer?</string>
+  <string name="confirm_abort_trans_message">Abort File:</string>
+  <string name="confirm_abort_trans_confirm">Abort</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Reading notices…</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Loading log messages…</string>
+  <string name="eventlog_client_header">Client Messages</string>
+  <string name="eventlog_gui_header">GUI Messages</string>
+  <string name="eventlog_copy_toast">Log copied to clipboard.</string>
+  <string name="eventlog_email_subject">Event Log for BOINC on Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Computation suspended.</string>
+  <string name="suspend_batteries">Connect your device to a charger to continue computing.</string>
+  <string name="suspend_screen_on">Turn screen off to continue computing.</string>
+  <string name="suspend_useractive">User is active.</string>
+  <string name="suspend_tod">Out of computation time-frame.</string>
+  <string name="suspend_bm">BOINC is benchmarking your device…</string>
+  <string name="suspend_disksize">Out of disk space.</string>
+  <string name="suspend_cputhrottle">Scheduled CPU throttle.</string>
+  <string name="suspend_noinput">No recent user activity.</string>
+  <string name="suspend_delay">Initialization delay.</string>
+  <string name="suspend_exclusiveapp">An exclusive app is running.</string>
+  <string name="suspend_cpu">Your device is busy with other apps.</string>
+  <string name="suspend_network_quota">BOINC reached network transfer limit.</string>
+  <string name="suspend_os">Stopped by Android.</string>
+  <string name="suspend_wifi">Not connected to WiFi.</string>
+  <string name="suspend_battery_charging">Waiting for battery to charge.</string>
+  <string name="suspend_battery_charging_long">Computing will resume when battery charge reaches</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">currently</string>
+  <string name="suspend_battery_overheating">Waiting for battery to cool down</string>
+  <string name="suspend_user_req">Resuming computation…</string>
+  <string name="suspend_network_user_req">manually.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Requested by user</string>
+  <string name="rpcreason_needwork">To fetch work</string>
+  <string name="rpcreason_resultsdue">To report completed tasks</string>
+  <string name="rpcreason_trickleup">To send trickle-up message</string>
+  <string name="rpcreason_acctmgrreq">Requested by account manager</string>
+  <string name="rpcreason_init">Project initialization</string>
+  <string name="rpcreason_projectreq">Requested by project</string>
+  <string name="rpcreason_unknown">Unknown reason</string>
+  <!--menu-->
+  <string name="menu_refresh">Refresh</string>
+  <string name="menu_emailto">Send as Email</string>
+  <string name="menu_copy">Copy to Clipboard</string>
+  <string name="menu_eventlog">Event Log</string>
+  <string name="menu_exit">Exit BOINC</string>
+  <string name="menu_run_mode_disable">Suspend</string>
+  <string name="menu_run_mode_enable">Resume</string>
+  <string name="menu_about">About</string>
+  <string name="menu_help">Help</string>
+  <!--about dialog-->
+  <string name="about_button">Return</string>
+  <string name="about_title">About</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Version</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 University of California, Berkeley.</string>
+  <string name="about_copyright_reserved">All Rights Reserved.</string>
+  <string name="about_credits">Thanks to the Max Planck Institute for Gravitational Physics, IBM Corporation and HTC Corporation for their support.</string>
+  <!--notice notification-->
+  <plurals name="notice_notification">
+    <item quantity="one">New notice from %1$s</item>
+    <item quantity="other">%2$,d new notices</item>
+  </plurals>
+  <!--multi BOINC compitability-->
+  <string name="nonexcl_dialog_header">Volunteer computing app detected</string>
+  <string name="nonexcl_dialog_text">Another volunteer computing app is running on this device. Only one version can run at a time.</string>
+  <string name="nonexcl_dialog_exit">Exit</string>
+  <!--social integration-->
+  <string name="social_invite_button">Invite friends</string>
+  <string name="social_invite_intent_title">How do you want to share?</string>
+  <string name="social_invite_content_title">I\'m doing science on my smartphone!</string>
+  <string name="social_invite_content_body">I\'m using my %1$s to do computing for science. You can too! Download the app from: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-es/strings.xml b/android/BOINC/app/src/main/res/values-es/strings.xml
new file mode 100644
index 0000000..3e28ed9
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-es/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Cargando, por favor espere...</string>
+  <string name="generic_button_continue">Continuar</string>
+  <string name="generic_button_finish">Finalizar</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Selecciona los proyectos científicos a los que quieres contribuir:</string>
+  <string name="attachproject_list_header">Elegir un proyecto</string>
+  <string name="attachproject_list_manual_button">Añadir un proyecto por URL</string>
+  <string name="attachproject_list_manual_dialog_title">URL del proyecto:</string>
+  <string name="attachproject_list_manual_dialog_button">Añadir proyecto</string>
+  <string name="attachproject_list_manual_no_url">URL del proyecto:</string>
+  <string name="attachproject_list_acctmgr_button">Añadir administrador de cuentas</string>
+  <string name="attachproject_list_no_internet">Sin conexión a Internet</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Introduzca la información de la cuenta</string>
+  <string name="attachproject_credential_input_desc">Introduzca la información de la cuenta para los proyectos seleccionados</string>
+  <string name="attachproject_credential_input_show_pwd">Mostrar contraseña</string>
+  <string name="attachproject_individual_credential_input">Adjuntar proyectos individualmente</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Hubo problemas adjuntando los proyectos científicos:</string>
+  <string name="attachproject_conflict_undefined">No se pudo conectar</string>
+  <string name="attachproject_conflict_not_unique">La cuenta existe con otra contraseña</string>
+  <string name="attachproject_conflict_bad_password">Contraseña incorrecta</string>
+  <string name="attachproject_conflict_unknown_user">La cuenta no existe</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">La cuenta no existe, visita la web del proyecto para registrarte</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Adjuntando</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Sugerencia</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Como contribuir:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Conectate al WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Conecta el cargador</string>
+  <string name="attachproject_hint_contribtion_screen">3. Apaga la pantalla</string>
+  <string name="attachproject_hint_projectwebsite_header">Visita las webs de los proyectos para:</string>
+  <string name="attachproject_hint_projectwebsite_science">Aprende mas sobre ciencia</string>
+  <string name="attachproject_hint_projectwebsite_stats">Ver las estadísticas de contribución</string>
+  <string name="attachproject_hint_projectwebsite_community">Conecta con otros voluntarios</string>
+  <string name="attachproject_hint_platforms_header">BOINC también esta disponible para tu PC o portatil, visita boinc.berkeley.edu para saber más.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Contactando con el servidor del proyecto...</string>
+  <string name="attachproject_login_image_description">Logo de proyecto.</string>
+  <string name="attachproject_login_header_general_area">Área general:</string>
+  <string name="attachproject_login_header_specific_area">Área específica:</string>
+  <string name="attachproject_login_header_description">Descripción:</string>
+  <string name="attachproject_login_header_home">Inicio:</string>
+  <string name="attachproject_login_header_url">Web:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Tu dispositivo es soportado por este proyecto</string>
+  <string name="attachproject_login_platform_not_supported">Tu dispositivo no está soportado por este proyecto</string>
+  <string name="attachproject_login_category_terms_of_use">Terminos de uso de</string>
+  <string name="attachproject_login_accept_terms_of_use">Creando una cuenta en este proyecto, aceptas los términos mostrados arriba.</string>
+  <string name="attachproject_login_category_login">Inicia sesión con una cuenta existente</string>
+  <string name="attachproject_login_header_id_email">eMail:</string>
+  <string name="attachproject_login_header_id_name">Nombre:</string>
+  <string name="attachproject_login_header_pwd">Contraseña:</string>
+  <string name="attachproject_login_category_creation">Nuevo a</string>
+  <string name="attachproject_login_header_creation_enabled">Registra una cuenta para participar:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Visita la web del proyecto para crar una cuenta:</string>
+  <string name="attachproject_login_header_creation_disabled">Este proyecto no acepta actualmente nuevas cuentas.</string>
+  <string name="attachproject_login_button_registration">Registrarse:</string>
+  <string name="attachproject_login_button_login">Iniciar sesión</string>
+  <string name="attachproject_login_button_forgotpw">Olvidó su contraseña</string>
+  <string name="attachproject_login_error_toast">Fallo al contactar con el proyecto</string>
+  <string name="attachproject_login_attached">Adjuntado</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Registro de la cuenta para</string>
+  <string name="attachproject_registration_header_url">Proyecto:</string>
+  <string name="attachproject_registration_header_email">eMail:</string>
+  <string name="attachproject_registration_header_username">Nombre:</string>
+  <string name="attachproject_registration_header_teamname">Equipo:</string>
+  <string name="attachproject_registration_header_pwd">Clave:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... Reescribe:</string>
+  <string name="attachproject_registration_button">Crear</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Usa el administrador de cuentas de BOINC para añadir y manejar múltiples proyectos</string>
+  <string name="attachproject_acctmgr_header">Añadir administrador de cuentas</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Usuario:</string>
+  <string name="attachproject_acctmgr_header_pwd">Clave:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Reescribe:</string>
+  <string name="attachproject_acctmgr_button">Añadir</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Usuario no encontrado</string>
+  <string name="attachproject_error_short_pwd">Contraseña muy corta</string>
+  <string name="attachproject_error_no_internet">Fallo de conexión</string>
+  <string name="attachproject_error_pwd_no_match">Las contraseñas no coinciden</string>
+  <string name="attachproject_error_pwd_no_retype">Por favor escriba la contraseña de nuevo</string>
+  <string name="attachproject_error_no_url">Introduzca la URL</string>
+  <string name="attachproject_error_no_email">Introduzca su eMail</string>
+  <string name="attachproject_error_no_pwd">Introduzca una contraseña</string>
+  <string name="attachproject_error_no_name">Introduzca su usuario</string>
+  <string name="attachproject_error_unknown">falló</string>
+  <string name="attachproject_error_bad_username">Usuario rechazado</string>
+  <string name="attachproject_error_email_in_use">El eMail ya está en uso</string>
+  <string name="attachproject_error_project_down">El proyecto está offline</string>
+  <string name="attachproject_error_email_bad_syntax">eMail rechazado</string>
+  <string name="attachproject_error_bad_pwd">Contraseña rechazada</string>
+  <string name="attachproject_error_creation_disabled">La creación de cuentas está deshabilitada para este proyecto</string>
+  <string name="attachproject_error_invalid_url">URL inválida</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Atrás</string>
+  <string name="attachproject_working_finish_button">Finalizar</string>
+  <string name="attachproject_working_check_desc">Éxito</string>
+  <string name="attachproject_working_failed_desc">Fallo</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Conectar</string>
+  <string name="attachproject_working_verify">Verificar cuenta</string>
+  <string name="attachproject_working_register">Registrarse</string>
+  <string name="attachproject_working_login">Iniciar sesión</string>
+  <string name="attachproject_working_acctmgr">Añadir administrador de cuentas</string>
+  <string name="attachproject_working_acctmgr_sync">Sincronizar</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Pulsa aquí para escoger un proyecto.</string>
+  <string name="main_error">Whooops</string>
+  <string name="main_error_long">...esto no debería pasar. Pulsa en el icono para volverlo a intentar.</string>
+  <string name="main_title_icon_desc">Icono de BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Estado</string>
+  <string name="tab_projects">Proyectos</string>
+  <string name="tab_tasks">Tareas</string>
+  <string name="tab_transfers">Transferencias</string>
+  <string name="tab_preferences">Preferencias</string>
+  <string name="tab_notices">Avisos</string>
+  <string name="tab_desc">Navegación</string>
+  <!--status strings-->
+  <string name="status_running">Procesando</string>
+  <string name="status_running_long">Gracias por participar.</string>
+  <string name="status_paused">Suspendido</string>
+  <string name="status_idle">Nada que hacer</string>
+  <string name="status_idle_long">Esperando tareas...</string>
+  <string name="status_computing_disabled">Suspendido</string>
+  <string name="status_computing_disabled_long">Pulsa play para continuar con la computación y red</string>
+  <string name="status_launching">Iniciando...</string>
+  <string name="status_noproject">Escoge un proyecto en el que participar.</string>
+  <string name="status_closing">Cerrando...</string>
+  <string name="status_benchmarking">Calculando rendimiento...</string>
+  <string name="status_image_description">Imagen del proyecto</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Leyendo preferencias...</string>
+  <string name="prefs_submit_button">Guardar</string>
+  <string name="prefs_dialog_title">Introduzca un nuevo valor:</string>
+  <string name="prefs_dialog_title_selection">Seleccionar:</string>
+  <string name="prefs_category_general">General</string>
+  <string name="prefs_category_network">Red</string>
+  <string name="prefs_category_power">Fuente</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Almacenamiento</string>
+  <string name="prefs_category_memory">Memoria</string>
+  <string name="prefs_category_debug">Depurar</string>
+  <string name="prefs_show_advanced_header">Mostrar opciones avanzadas...</string>
+  <string name="prefs_suspend_when_screen_on">Pausar la computación cuando la pantalla esté encendida</string>
+  <string name="prefs_stationary_device_mode_header">Modo de dispositivo estacionario</string>
+  <string name="prefs_stationary_device_mode_description">Permite el cómputo independientemente de las preferencias de Energía. Solo habilitar si el dispositivo no utiliza una batería.</string>
+  <string name="prefs_power_source_header">Fuentes para la computación</string>
+  <string name="prefs_power_source_description">Selecciona las fuentes que BOINC usa para la computación.</string>
+  <string name="prefs_power_source_ac">Enchufe</string>
+  <string name="prefs_power_source_usb">Conexión USB</string>
+  <string name="prefs_power_source_wireless">Cargador inalámbrico</string>
+  <string name="prefs_power_source_battery">Batería</string>
+  <string name="battery_charge_min_pct_header">Batería mínima</string>
+  <string name="battery_charge_min_pct_description">BOINC suspende la computación por debajo del nivel de batería escogido.</string>
+  <string name="battery_temperature_max_header">Temperatura máx. de la batería</string>
+  <string name="battery_temperature_max_description">BOINC suspende la computación por encima de una temperatura de batería definida. No está recomendado cambiar este valor</string>
+  <string name="prefs_disk_max_pct_header">Espacio máximo usado</string>
+  <string name="prefs_disk_max_pct_description">¿Cuánto de su almacenamiento del teléfono puede usar BOINC?</string>
+  <string name="prefs_disk_min_free_gb_header">Almacenamiento libre min.</string>
+  <string name="prefs_disk_min_free_gb_description">¿Cuánto espacio debe quedar libre?</string>
+  <string name="prefs_disk_access_interval_header">Intervalo de acceso</string>
+  <string name="prefs_disk_access_interval_description">Intervalo entre accesos del disco</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Límite de transferencia diaria</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limita el tráfico diario usado por BOINC</string>
+  <string name="prefs_network_wifi_only_header">Transmitir datos solo por WiFi</string>
+  <string name="prefs_autostart_header">Auto inciar</string>
+  <string name="prefs_show_notification_notices_header">Mostrar notificación para nuevas noticias</string>
+  <string name="prefs_show_notification_suspended_header">Mostrar notificación cuando se suspenda</string>
+  <string name="prefs_cpu_number_cpus_header">Núcleos CPU usados</string>
+  <string name="prefs_cpu_number_cpus_description">Limita la cantidad de núcleos de CPU que BOINC usará.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pausar cuando el uso de CPU este por encima de</string>
+  <string name="prefs_cpu_other_load_suspension_description">Determina cuando BOINC es pausado por el uso de CPU por otras aplicaciones.</string>
+  <string name="prefs_cpu_time_max_header">Límite de CPU</string>
+  <string name="prefs_cpu_time_max_description">Limita la CPU que BOINC usa para la computación.</string>
+  <string name="prefs_memory_max_idle_header">Límite de RAM</string>
+  <string name="prefs_memory_max_idle_description">Limita la cantidad de RAM que puede usar.</string>
+  <string name="prefs_client_log_flags_header">Banderas de registro del cliente de BOINC</string>
+  <string name="prefs_gui_log_level_header">Nivel de log de la GUI</string>
+  <string name="prefs_gui_log_level_description">Especifica el detalle de los mensajes de log de la interfaz gráfica.</string>
+  <string name="prefs_unit_celsius">ºC</string>
+  <string name="prefs_unit_seconds">seg</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Leyendo proyectos...</string>
+  <string name="projects_add">Añadir proyecto</string>
+  <string name="projects_icon">Icono del proyecto</string>
+  <string name="projects_credits">Creditos:</string>
+  <string name="projects_credits_host_and_user">%1$,d (en este dispositivo) %2$,d (total)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspendido por el usuario</string>
+  <string name="projects_status_dontrequestmorework">No se descargarán nuevas tareas</string>
+  <string name="projects_status_ended">Proyecto finalizado - listo para eliminarlo</string>
+  <string name="projects_status_detachwhendone">Se eliminará cuando las tareas estén terminadas</string>
+  <string name="projects_status_schedrpcpending">Pendiente petición al Planificador</string>
+  <string name="projects_status_schedrpcinprogress">Petición al planificador en progreso</string>
+  <string name="projects_status_trickleuppending">Mensaje trickle up pendiente</string>
+  <string name="projects_status_backoff">Comunicación aplazada a:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Comandos del proyecto:</string>
+  <string name="projects_control_visit_website">Visitar web</string>
+  <string name="projects_control_update">Actualizar</string>
+  <string name="projects_control_remove">Eliminar</string>
+  <string name="projects_control_suspend">Suspender</string>
+  <string name="projects_control_resume">Reanudar</string>
+  <string name="projects_control_nonewtasks">No pedir nuevas tareas</string>
+  <string name="projects_control_allownewtasks">Permitir nuevas tareas</string>
+  <string name="projects_control_reset">Reset</string>
+  <string name="projects_control_dialog_title_acctmgr">Comandos del administrador de cuentas:</string>
+  <string name="projects_control_sync_acctmgr">Sincronizar</string>
+  <string name="projects_control_remove_acctmgr">Deshabilitar</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">¿Borrar proyecto?</string>
+  <string name="projects_confirm_detach_message">Seguro que quieres borrarlo</string>
+  <string name="projects_confirm_detach_message2">de BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Eliminar</string>
+  <string name="projects_confirm_reset_title">Reiniciar proyecto</string>
+  <string name="projects_confirm_reset_message">Seguro que quieres reinciar</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Reset</string>
+  <string name="projects_confirm_remove_acctmgr_title">Deshabilitar el administrador de cuentas</string>
+  <string name="projects_confirm_remove_acctmgr_message">Está seguro de que quiere dejar de usar</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Deshabilitar</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nombre de la tarea:</string>
+  <string name="tasks_header_elapsed_time">Tiempo transcurrido:</string>
+  <string name="tasks_header_project_paused">(suspendido)</string>
+  <string name="tasks_header_deadline">Límite para informar:</string>
+  <string name="tasks_result_new">Nuevo</string>
+  <string name="tasks_result_files_downloading">Esperando para descargar</string>
+  <string name="tasks_result_files_downloaded">Descarga completa</string>
+  <string name="tasks_result_compute_error">Error de ejecución</string>
+  <string name="tasks_result_files_uploading">Enviando</string>
+  <string name="tasks_result_files_uploaded">Enviado</string>
+  <string name="tasks_result_aborted">Cancelado</string>
+  <string name="tasks_result_upload_failed">Envío fallido</string>
+  <string name="tasks_active_uninitialized">Listo</string>
+  <string name="tasks_active_executing">Ejecutando</string>
+  <string name="tasks_active_suspended">suspendido</string>
+  <string name="tasks_active_abort_pending">suspendiendo</string>
+  <string name="tasks_active_quit_pending">suspendiendo</string>
+  <string name="tasks_custom_suspended_via_gui">suspendido</string>
+  <string name="tasks_custom_project_suspended_via_gui">proyecto suspendido</string>
+  <string name="tasks_custom_ready_to_report">listo para informar</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">¿Cancelar tarea?</string>
+  <string name="confirm_abort_task_message">Cancelar tarea:</string>
+  <string name="confirm_abort_task_confirm">Cancelar</string>
+  <string name="confirm_cancel">Cancelar</string>
+  <string name="confirm_image_desc">Mensaje de confirmación</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Leyendo transferencias...</string>
+  <string name="trans_upload">Enviar</string>
+  <string name="trans_download">Descargar</string>
+  <string name="trans_retryin">reintentar en </string>
+  <string name="trans_failed">falló</string>
+  <string name="trans_suspended">suspendido</string>
+  <string name="trans_active">activo</string>
+  <string name="trans_pending">pendiente</string>
+  <string name="trans_projectbackoff">proyecto lárgate</string>
+  <string name="trans_header_name">Archivo:</string>
+  <string name="trans_control_retry">reintentar transferencias</string>
+  <string name="confirm_abort_trans_title">¿Cancelar transferencias?</string>
+  <string name="confirm_abort_trans_message">Cancelar archivo:</string>
+  <string name="confirm_abort_trans_confirm">Cancelar</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Leyendo noticias...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Leyendo mensajes del log...</string>
+  <string name="eventlog_client_header">Mensajes del cliente</string>
+  <string name="eventlog_gui_header">Mensajes de la GUI</string>
+  <string name="eventlog_copy_toast">Log copiado al portapapeles.</string>
+  <string name="eventlog_email_subject">Registro de sucesos para BOINC en Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Computación suspendida.</string>
+  <string name="suspend_batteries">Conecta tu dispositivo a un cargador para seguir procesando.</string>
+  <string name="suspend_screen_on">Apaga la pantalla para seguir procesando.</string>
+  <string name="suspend_useractive">El usuario está activo</string>
+  <string name="suspend_tod">Fuera del marco de tiempo de cómputo.</string>
+  <string name="suspend_bm">BOINC está calculando el rendimiento de su dispositivo...</string>
+  <string name="suspend_disksize">Sin espacio en el disco</string>
+  <string name="suspend_cputhrottle">Acelerador de CPU programado.</string>
+  <string name="suspend_noinput">Sin actividad del usuario reciente.</string>
+  <string name="suspend_delay">Inicio pospuesto.</string>
+  <string name="suspend_exclusiveapp">Se está ejecutando una aplicación de manera exclusiva.</string>
+  <string name="suspend_cpu">Su dispositivo está ocupado con otras aplicaciones.</string>
+  <string name="suspend_network_quota">BOINC ha alcanzado el ĺímite de transferencia de datos.</string>
+  <string name="suspend_os">Parado por Android</string>
+  <string name="suspend_wifi">No conectado al WiFi.</string>
+  <string name="suspend_battery_charging">Esperando a la batería para cargar.</string>
+  <string name="suspend_battery_charging_long">La computación continuará cuando la batería llegue a</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">actualmente</string>
+  <string name="suspend_battery_overheating">Esperando a que la batería se enfríe</string>
+  <string name="suspend_user_req">Reanudando la computación... </string>
+  <string name="suspend_network_user_req">manualmente.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Pedido por el usuario</string>
+  <string name="rpcreason_needwork">Buscar trabajo</string>
+  <string name="rpcreason_resultsdue">Informar las tareas completadas</string>
+  <string name="rpcreason_trickleup">Enviar mensaje trickle-up</string>
+  <string name="rpcreason_acctmgrreq">Pedido por el administrador de cuentas</string>
+  <string name="rpcreason_init">Iniciación del proyecto</string>
+  <string name="rpcreason_projectreq">Pedido por el proyecto</string>
+  <string name="rpcreason_unknown">Razón desconocida</string>
+  <!--menu-->
+  <string name="menu_refresh">Actualizar</string>
+  <string name="menu_emailto">Enviar por Email</string>
+  <string name="menu_copy">Copiar al portapapeles</string>
+  <string name="menu_eventlog">Registro de sucesos</string>
+  <string name="menu_exit">Salir de BOiNC</string>
+  <string name="menu_run_mode_disable">Suspender</string>
+  <string name="menu_run_mode_enable">Reanudar</string>
+  <string name="menu_about">Acerca de</string>
+  <string name="menu_help">Ayuda</string>
+  <!--about dialog-->
+  <string name="about_button">Volver</string>
+  <string name="about_title">Acerca de</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versión</string>
+  <string name="about_name_long">Infraestructura Abierta de Berkeley para Computación en Red</string>
+  <string name="about_copyright">\u00A9 2003–2016 Universidad de California, Berkeley.</string>
+  <string name="about_copyright_reserved">Todos los derechos reservados.</string>
+  <string name="about_credits">Gracias al \"Max Planck Institute for Gravitational Physics\", IBM Corporation y HTC Corporation por su apoyo.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nuevo aviso de %1$s</item>
+    <item quantity="other">%2$,d nuevos avisos</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Aplicación de computación voluntaria detectada</string>
+  <string name="nonexcl_dialog_text">Otra aplicación de otro voluntario está ejecutándose en este dispositivo. Sólo se puede ejecutar una versión a la vez.</string>
+  <string name="nonexcl_dialog_exit">Salir</string>
+  <!--social integration-->
+  <string name="social_invite_button">Invitar amigos</string>
+  <string name="social_invite_intent_title">¿Cómo quieres compartirlo?</string>
+  <string name="social_invite_content_title">¡Estoy haciendo ciencia con mi smartphone!</string>
+  <string name="social_invite_content_body">Estoy usando mi %1$s para hacer computación por la ciencia. ¡Tú también puedes! Descarga la app desde: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">https://www.amazon.es/Space-Sciences-Laboratory-U-C-Berkeley/dp/B00DCCGLAG/ref=sr_1_1?ie=UTF8&qid=1466961138&sr=8-1</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-fi/strings.xml b/android/BOINC/app/src/main/res/values-fi/strings.xml
new file mode 100644
index 0000000..f7f96cf
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-fi/strings.xml
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <string name="app_name">BOINC</string>
+  <string name="generic_loading">Ladataan! Odota…</string>
+  <string name="attachproject_list_header">Valitse projekti:</string>
+  <string name="attachproject_list_manual_button">Lisää projekti URL-osoitteella</string>
+  <string name="attachproject_list_manual_dialog_title">Anna projektin URL:</string>
+  <string name="attachproject_list_manual_dialog_button">Lisää projekti</string>
+  <string name="attachproject_list_manual_no_url">Anna projektin URL</string>
+  <string name="attachproject_list_acctmgr_button">Lisää tilihallitsija</string>
+  <string name="attachproject_list_no_internet">Ei internet-yhteyttä</string>
+  <string name="attachproject_login_loading">Otetaan yhteyttä projektin palvelimeen…</string>
+  <string name="attachproject_login_image_description">Projektin logo.</string>
+  <string name="attachproject_login_header_general_area">Yleisalue:</string>
+  <string name="attachproject_login_header_specific_area">Erityisalue:</string>
+  <string name="attachproject_login_header_description">Kuvaus:</string>
+  <string name="attachproject_login_header_home">Kotisivu:</string>
+  <string name="attachproject_login_header_url">Nettisivu:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Tämä projekti tukee Android-laitteita</string>
+  <string name="attachproject_login_platform_not_supported">Tämä projekti ei tue Android-laitteita</string>
+  <string name="attachproject_login_accept_terms_of_use">Luomalla tilin tässä projektissa, hyväksyt ylläolevat käyttöoikeudet.</string>
+  <string name="attachproject_login_category_login">Kirjaudu sisään käytössä olevalla tilillä</string>
+  <string name="attachproject_login_header_id_email">Sähköposti:</string>
+  <string name="attachproject_login_header_id_name">Nimi:</string>
+  <string name="attachproject_login_header_pwd">Salasana:</string>
+  <string name="attachproject_login_header_creation_enabled">Rekisteröi tili osallistuaksesi:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Käy projektin nettisivulla luodaksesi tilin:</string>
+  <string name="attachproject_login_header_creation_disabled">Projekti sallii nyt uusien tilien luonnin!</string>
+  <string name="attachproject_login_button_registration">Rekisteröi</string>
+  <string name="attachproject_login_button_login">Kirjaudu sisään</string>
+  <string name="attachproject_login_button_forgotpw">Salasana unohtunut</string>
+  <string name="attachproject_login_error_toast">Yhteydenotto projektiin epäonnistui!</string>
+  <string name="attachproject_login_attached">Liitetty</string>
+  <string name="attachproject_registration_header_url">Projekti:</string>
+  <string name="attachproject_registration_header_email">Sähköposti:</string>
+  <string name="attachproject_registration_header_username">Nimi:</string>
+  <string name="attachproject_registration_header_teamname">Tiimi:</string>
+  <string name="attachproject_registration_header_pwd">Salasana:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Kirjoita uudelleen:</string>
+  <string name="attachproject_registration_button">Luo</string>
+  <string name="attachproject_acctmgr_header">Lisää tilihallitsija</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Käyttäjä:</string>
+  <string name="attachproject_acctmgr_header_pwd">Salasana:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Kirjoita uudelleen:</string>
+  <string name="attachproject_acctmgr_button">Lisää</string>
+  <string name="attachproject_error_wrong_name">Käyttäjää ei löydy</string>
+  <string name="attachproject_error_short_pwd">Salasana liian lyhyt</string>
+  <string name="attachproject_error_no_internet">Yhteysvirhe</string>
+  <string name="attachproject_error_pwd_no_match">Salasanat eivät täsmää</string>
+  <string name="attachproject_error_no_url">Anna URL</string>
+  <string name="attachproject_error_no_email">Anna sähköpostiosoite</string>
+  <string name="attachproject_error_no_pwd">Anna salasana</string>
+  <string name="attachproject_error_no_name">Anna käyttäjänimi</string>
+  <string name="attachproject_error_unknown">epäonnistui</string>
+  <string name="attachproject_error_bad_username">Käyttäjänimi hylätty</string>
+  <string name="attachproject_error_email_in_use">Sähköposti on jo käytössä</string>
+  <string name="attachproject_error_project_down">Projekti on sammutettu</string>
+  <string name="attachproject_error_email_bad_syntax">Sähköposti hylätty</string>
+  <string name="attachproject_error_bad_pwd">Salasana hylätty</string>
+  <string name="attachproject_error_creation_disabled">Tilin luonti on poistettu käytöstä tässä projektissa</string>
+  <string name="attachproject_error_invalid_url">Virheellinen URL</string>
+  <string name="attachproject_working_back_button">Takaisin</string>
+  <string name="attachproject_working_finish_button">Valmis</string>
+  <string name="attachproject_working_check_desc">Onnistui</string>
+  <string name="attachproject_working_failed_desc">Epäonnistui</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Yhdistä</string>
+  <string name="attachproject_working_verify">Varmenna tili</string>
+  <string name="attachproject_working_register">Rekisteröi tili</string>
+  <string name="attachproject_working_login">Kirjaudu</string>
+  <string name="attachproject_working_acctmgr">Lisää tilihallitsija</string>
+  <string name="attachproject_working_acctmgr_sync">Synkronoi</string>
+  <string name="main_error">Hups</string>
+  <string name="main_error_long">…tätä ei olisi pitänyt tapahtua!\nNapsauta kuvaketta yrittääksesi uudelleen.</string>
+  <string name="main_title_icon_desc">BOINC kuvake</string>
+  <string name="tab_status">Tila</string>
+  <string name="tab_projects">Projektit</string>
+  <string name="tab_tasks">Tehtävät</string>
+  <string name="tab_transfers">Siirrot</string>
+  <string name="tab_preferences">Asetukset</string>
+  <string name="tab_notices">Ilmoitukset</string>
+  <string name="tab_desc">Navigointi</string>
+  <string name="status_running">Laskenta</string>
+  <string name="status_running_long">Kiitos osallistumisesta.</string>
+  <string name="status_paused">Hyllytetty</string>
+  <string name="status_idle">Ei mitään tehtävää</string>
+  <string name="status_idle_long">Odottaa tehtäviä…</string>
+  <string name="status_computing_disabled">Hyllytetty</string>
+  <string name="status_launching">Käynnistetään…</string>
+  <string name="status_noproject">Valitse projekti, johon osallistut.</string>
+  <string name="status_closing">Suljetaan…</string>
+  <string name="status_benchmarking">Suorituskykytestaus…</string>
+  <string name="status_image_description">projektin kuva</string>
+  <string name="prefs_loading">Luetaan asetuksia…</string>
+  <string name="prefs_submit_button">Tallenna</string>
+  <string name="prefs_dialog_title">Anna uusi arvo:</string>
+  <string name="prefs_dialog_title_selection">Valitse:</string>
+  <string name="prefs_category_general">Yleiset</string>
+  <string name="prefs_category_network">Verkko</string>
+  <string name="prefs_category_power">Virta</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Tilankäyttö</string>
+  <string name="prefs_category_memory">Muisti</string>
+  <string name="prefs_category_debug">Virheenjäljitys</string>
+  <string name="prefs_show_advanced_header">Näytä lisäasetukset ja ohjaimet…</string>
+  <string name="battery_charge_min_pct_header">Pienin varaustaso</string>
+  <string name="battery_charge_min_pct_description">BOINC hyllyttää laskennan kun asetettu akun varaustason alaraja saavutetaan.</string>
+  <string name="battery_temperature_max_header">Suurin akun lämpötila</string>
+  <string name="battery_temperature_max_description">BOINC hyllyttää laskennan kun asetettu akun lämpötilaraja saavutetaan. Tätä arvoa ei suositella muutettavaksi.</string>
+  <string name="prefs_disk_max_pct_header">Suurin käytetty tallennustila</string>
+  <string name="prefs_disk_max_pct_description">Kuinka monta prosenttia laitteesi tallennustilasta BOINC saa käyttää?</string>
+  <string name="prefs_disk_min_free_gb_header">Pienin tallennustila</string>
+  <string name="prefs_disk_min_free_gb_description">Kuinka paljon laitteesi tallennustilasta jätetään vapaaksi?</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Päivittäinen siirtoraja</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Rajoitus BOINCin päivittäiselle tiedonsiirrolle.</string>
+  <string name="prefs_network_wifi_only_header">Siirrä tehtävät vain WiFin kautta</string>
+  <string name="prefs_autostart_header">Automaattikäynnistys</string>
+  <string name="prefs_cpu_number_cpus_header">Käytetyt CPU-ytimet</string>
+  <string name="prefs_cpu_number_cpus_description">Rajoittaa CPU-ytimien määrää, jota BOINC käyttää laskentaan.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Tauota prosessorikäytön ylittäessä</string>
+  <string name="prefs_cpu_other_load_suspension_description">Määrittää, milloin BOINC tauottaa laskennan toisten sovellusten vuoksi.</string>
+  <string name="prefs_cpu_time_max_header">CPU raja</string>
+  <string name="prefs_cpu_time_max_description">Rajoittaa prosessoriaikaa, jota BOINC käyttää laskentaan.</string>
+  <string name="prefs_memory_max_idle_header">RAM raja</string>
+  <string name="prefs_memory_max_idle_description">Rajoittaa RAM-muistin määrää, joka tehtäville annetaan.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="projects_loading">Luetaan projekteja…</string>
+  <string name="projects_add">Lisää projekti</string>
+  <string name="projects_icon">Projektin kuvake</string>
+  <string name="projects_credits">Pisteet:</string>
+  <string name="projects_credits_host_and_user">%1$,d (tällä laitteella) %2$,d (kaikki)</string>
+  <string name="projects_status_suspendedviagui">Käyttäjän hyllyttämä</string>
+  <string name="projects_status_dontrequestmorework">Ei uusia töitä</string>
+  <string name="projects_status_ended">Projekti päättynyt - voi poistaa</string>
+  <string name="projects_status_detachwhendone">Poistetaan kun paketit on suoritettu</string>
+  <string name="projects_status_schedrpcpending">Pyyntö aikatauluttajalle odottaa</string>
+  <string name="projects_status_schedrpcinprogress">Pyyntö aikatauluttajalle käynnissä</string>
+  <string name="projects_status_trickleuppending">Väliaikaviesti odottaa</string>
+  <string name="projects_control_dialog_title">Projektin komennot:</string>
+  <string name="projects_control_visit_website">Käy sivulla</string>
+  <string name="projects_control_update">Päivitä</string>
+  <string name="projects_control_remove">Poista</string>
+  <string name="projects_control_suspend">Hyllytä</string>
+  <string name="projects_control_resume">Jatka</string>
+  <string name="projects_control_nonewtasks">Ei uutta työtä</string>
+  <string name="projects_control_allownewtasks">Salli uusi työ</string>
+  <string name="projects_control_reset">Nollaa</string>
+  <string name="projects_control_dialog_title_acctmgr">Tilihallitsijan komennot:</string>
+  <string name="projects_control_sync_acctmgr">Synkronoi</string>
+  <string name="projects_control_remove_acctmgr">Poista</string>
+  <string name="projects_confirm_detach_title">Poista projekti?</string>
+  <string name="projects_confirm_detach_message">Haluatko varmasti poistaa</string>
+  <string name="projects_confirm_detach_message2">BOINCista?</string>
+  <string name="projects_confirm_detach_confirm">Poista</string>
+  <string name="projects_confirm_reset_title">Nollaa projekti</string>
+  <string name="projects_confirm_reset_message">Haluatko varmasti nollata</string>
+  <string name="projects_confirm_reset_confirm">Nollaa</string>
+  <string name="projects_confirm_remove_acctmgr_title">Poista tilihallitsija</string>
+  <string name="projects_confirm_remove_acctmgr_message">Haluatko lopettaa käyttämästä</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Poista käytöstä</string>
+  <string name="tasks_header_name">Tehtävän nimi:</string>
+  <string name="tasks_header_elapsed_time">Käytetty aika:</string>
+  <string name="tasks_header_project_paused">(hyllytetty)</string>
+  <string name="tasks_header_deadline">Takaraja:</string>
+  <string name="tasks_result_new">uusi</string>
+  <string name="tasks_result_files_downloading">odottaa latausta</string>
+  <string name="tasks_result_files_downloaded">lataus valmis</string>
+  <string name="tasks_result_compute_error">laskentavirhe</string>
+  <string name="tasks_result_files_uploading">lähetetään</string>
+  <string name="tasks_result_files_uploaded">lähetys valmis</string>
+  <string name="tasks_result_aborted">hylätty</string>
+  <string name="tasks_result_upload_failed">lähetys epäonnistui</string>
+  <string name="tasks_active_uninitialized">valmis</string>
+  <string name="tasks_active_executing">suoritetaan</string>
+  <string name="tasks_active_suspended">hyllytetty</string>
+  <string name="tasks_active_abort_pending">hyllytetään</string>
+  <string name="tasks_active_quit_pending">hyllytetään</string>
+  <string name="tasks_custom_suspended_via_gui">hyllytetty</string>
+  <string name="tasks_custom_project_suspended_via_gui">projekti hyllytetty</string>
+  <string name="tasks_custom_ready_to_report">valmis raportoitavaksi</string>
+  <string name="confirm_abort_task_title">Hylkää tehtävä?</string>
+  <string name="confirm_abort_task_message">Hylkää tehtävä:</string>
+  <string name="confirm_abort_task_confirm">Hylkää</string>
+  <string name="confirm_cancel">Peruuta</string>
+  <string name="confirm_image_desc">Vahvistusikkuna</string>
+  <string name="trans_loading">Luetaan siirtoja…</string>
+  <string name="trans_upload">Lähetä</string>
+  <string name="trans_download">Lataa</string>
+  <string name="trans_retryin">uudelleenyritys</string>
+  <string name="trans_failed">epäonnistui</string>
+  <string name="trans_suspended">hyllytetty</string>
+  <string name="trans_active">aktiivinen</string>
+  <string name="trans_pending">odottaa</string>
+  <string name="trans_projectbackoff">projektin viivyttämä</string>
+  <string name="trans_header_name">Tiedosto:</string>
+  <string name="trans_control_retry">Yritä siirtoja</string>
+  <string name="confirm_abort_trans_title">Keskeytä siirto?</string>
+  <string name="confirm_abort_trans_message">Hylkää tiedosto:</string>
+  <string name="confirm_abort_trans_confirm">Hylkää</string>
+  <string name="notices_loading">Luetaan ilmoituksia…</string>
+  <string name="eventlog_loading">Ladataan lokiviestit…</string>
+  <string name="eventlog_client_header">Ohjelman viestit</string>
+  <string name="eventlog_gui_header">GUI viestit</string>
+  <string name="eventlog_copy_toast">Loki kopioitu leikepöydälle.</string>
+  <string name="eventlog_email_subject">BOINCin tapahtumaloki Androidilla:</string>
+  <string name="suspend_unknown">Laskenta hyllytetty.</string>
+  <string name="suspend_batteries">Kytke laite laturiin laskennan jatkamiseksi.</string>
+  <string name="suspend_useractive">Käyttäjä aktiivinen.</string>
+  <string name="suspend_bm">BOINC suorityskykytestaa laitettasi…</string>
+  <string name="suspend_disksize">Levytila loppu.</string>
+  <string name="suspend_exclusiveapp">Erityissovellus on käynnissä.</string>
+  <string name="suspend_cpu">Muut sovellukset käyttävät laitetta.</string>
+  <string name="suspend_network_quota">BOINC saavutti tiedonsiirtorajan.</string>
+  <string name="suspend_os">Androidin pysäyttämä.</string>
+  <string name="suspend_wifi">Ei WiFi-yhteyttä.</string>
+  <string name="suspend_battery_charging">Akku tulee ladata ennen kuin laskentaa jatketaan.</string>
+  <string name="suspend_battery_charging_long">Laskenta jatkuu akun varaustilan saavuttaessa</string>
+  <string name="suspend_battery_overheating">Odotetaan akun jäähtymistä</string>
+  <string name="suspend_user_req">Jatketaan laskentaa…</string>
+  <string name="suspend_network_user_req">manuaalisesti.</string>
+  <string name="rpcreason_userreq">Käyttäjän pyytämä</string>
+  <string name="rpcreason_needwork">Pyydetään työtä</string>
+  <string name="rpcreason_resultsdue">Raportoidaan valmiit paketit</string>
+  <string name="rpcreason_trickleup">Lähetetään väliaikaviesti</string>
+  <string name="rpcreason_acctmgrreq">Tilihallitsijan pyytämä</string>
+  <string name="rpcreason_init">Projektin alustus</string>
+  <string name="rpcreason_projectreq">Projektin pyytämä</string>
+  <string name="rpcreason_unknown">Tuntematon syy</string>
+  <string name="menu_refresh">Päivitä</string>
+  <string name="menu_emailto">Lähetä sähköpostina</string>
+  <string name="menu_copy">Kopioi leikepöydälle</string>
+  <string name="menu_eventlog">Tapahtumaloki</string>
+  <string name="menu_exit">Lopeta BOINC</string>
+  <string name="menu_run_mode_disable">Hyllytä</string>
+  <string name="menu_run_mode_enable">Jatka</string>
+  <string name="menu_about">Tietoja</string>
+  <string name="menu_help">Ohje</string>
+  <string name="about_title">Tietoja</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versio</string>
+  <string name="about_name_long">Berkeleyn avoin infrastruktuuri verkkolaskentaan</string>
+  <string name="about_copyright">© 2003–2013 Kalifornian yliopisto, Berkeley.\nKaikki oikeudet pidätetään.</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-fr/strings.xml b/android/BOINC/app/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000..45ed784
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-fr/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Veuillez patienter...</string>
+  <string name="generic_button_continue">Continuer</string>
+  <string name="generic_button_finish">Terminer</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Choisir un projet scientifique auquel vous voulez collaborer :</string>
+  <string name="attachproject_list_header">Choisissez un projet</string>
+  <string name="attachproject_list_manual_button">Ajouter un projet via son URL</string>
+  <string name="attachproject_list_manual_dialog_title">URL du projet :</string>
+  <string name="attachproject_list_manual_dialog_button">Ajouter un projet</string>
+  <string name="attachproject_list_manual_no_url">Veuillez saisir l\'URL du projet</string>
+  <string name="attachproject_list_acctmgr_button">Choisir un gestionnaire de compte</string>
+  <string name="attachproject_list_no_internet">Pas de connexion Internet</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Éditer les informations de compte</string>
+  <string name="attachproject_credential_input_desc">Éditer les informations de compte pour les projets sélectionnés :</string>
+  <string name="attachproject_credential_input_show_pwd">Montrer le mot de passe</string>
+  <string name="attachproject_individual_credential_input">Ajouter des projets individuellement</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Il y a des problèmes pour ajouter les projets suivants :</string>
+  <string name="attachproject_conflict_undefined">Connexion impossible</string>
+  <string name="attachproject_conflict_not_unique">Un compte existe avec un mot de passe différent</string>
+  <string name="attachproject_conflict_bad_password">Mot de passe incorrect</string>
+  <string name="attachproject_conflict_unknown_user">Le compte n\'existe pas</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Le compte n\'existe pas, rendez-vous sur le site du projet pour vous enregistrer</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Ajout du projet</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Indice</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Comment participer :</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Se connecter au WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Branchez votre chargeur</string>
+  <string name="attachproject_hint_contribtion_screen">3. Éteindre l\'écran</string>
+  <string name="attachproject_hint_projectwebsite_header">Visitez les sites web des projets :</string>
+  <string name="attachproject_hint_projectwebsite_science">En savoir plus au sujet du projet</string>
+  <string name="attachproject_hint_projectwebsite_stats">Voir les statistiques de contribution</string>
+  <string name="attachproject_hint_projectwebsite_community">Entrer en contact avec les autres participants</string>
+  <string name="attachproject_hint_platforms_header">BOINC est également disponible pour votre ordinateur de bureau ou portable, visitez boinc.berkeley.edu pour en savoir plus.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Connexion avec le serveur du projet...</string>
+  <string name="attachproject_login_image_description">Logo du projet.</string>
+  <string name="attachproject_login_header_general_area">Domaine de recherche :</string>
+  <string name="attachproject_login_header_specific_area">Domaine spécifique :</string>
+  <string name="attachproject_login_header_description">Description :</string>
+  <string name="attachproject_login_header_home">Accueil :</string>
+  <string name="attachproject_login_header_url">Site web :</string>
+  <string name="attachproject_login_header_platform">Android :</string>
+  <string name="attachproject_login_platform_supported">Votre appareil est supporté par ce projet</string>
+  <string name="attachproject_login_platform_not_supported">Votre appareil n\'est pas supporté par ce projet</string>
+  <string name="attachproject_login_category_terms_of_use">Conditions d\'utilisation pour</string>
+  <string name="attachproject_login_accept_terms_of_use">En créant un compte sur ce projet, vous acceptez les conditions d\'utilisation ci-dessus.</string>
+  <string name="attachproject_login_category_login">Se connecter avec un compte existant</string>
+  <string name="attachproject_login_header_id_email">Email :</string>
+  <string name="attachproject_login_header_id_name">Nom :</string>
+  <string name="attachproject_login_header_pwd">Mot de passe :</string>
+  <string name="attachproject_login_category_creation">Nouveau pour</string>
+  <string name="attachproject_login_header_creation_enabled">Enregistrez un compte pour participer :</string>
+  <string name="attachproject_login_header_creation_client_disabled">Visitez le site web du projet pour créer un compte :</string>
+  <string name="attachproject_login_header_creation_disabled">Le projet ne permet pas la création de nouveaux comptes pour le moment.</string>
+  <string name="attachproject_login_button_registration">S\'inscrire</string>
+  <string name="attachproject_login_button_login">Se connecter</string>
+  <string name="attachproject_login_button_forgotpw">Mot de passe oublié</string>
+  <string name="attachproject_login_error_toast">Connexion avec le serveur du projet impossible</string>
+  <string name="attachproject_login_attached">Ajouté</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Enregistrement du compte pour</string>
+  <string name="attachproject_registration_header_url">Projet :</string>
+  <string name="attachproject_registration_header_email">Email :</string>
+  <string name="attachproject_registration_header_username">Nom :</string>
+  <string name="attachproject_registration_header_teamname">Équipe :</string>
+  <string name="attachproject_registration_header_pwd">Mot de passe :</string>
+  <string name="attachproject_registration_header_pwd_confirm">... saisir de nouveau :</string>
+  <string name="attachproject_registration_button">Créer</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Utilisez un gestionnaire de compte BOINC pour ajouter et gérer de nombreux projets</string>
+  <string name="attachproject_acctmgr_header">Ajouter un gestionnaire de compte</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Utilisateur :</string>
+  <string name="attachproject_acctmgr_header_pwd">Mot de passe :</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... saisir de nouveau :</string>
+  <string name="attachproject_acctmgr_button">Ajouter</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Utilisateur introuvable</string>
+  <string name="attachproject_error_short_pwd">Mot de passe trop court</string>
+  <string name="attachproject_error_no_internet">Erreur de connexion</string>
+  <string name="attachproject_error_pwd_no_match">Mot de passe incorrect</string>
+  <string name="attachproject_error_pwd_no_retype">Nouveau mot de passe (vérification)</string>
+  <string name="attachproject_error_no_url">Veuillez saisir l\'URL du projet</string>
+  <string name="attachproject_error_no_email">Veuillez entrer une adresse email</string>
+  <string name="attachproject_error_no_pwd">Veuillez saisir un mot de passe</string>
+  <string name="attachproject_error_no_name">Veuillez saisir un nom d\'utilisateur</string>
+  <string name="attachproject_error_unknown">échec</string>
+  <string name="attachproject_error_bad_username">Nom d\'utilisateur refusé</string>
+  <string name="attachproject_error_email_in_use">Adresse email déjà utilisée</string>
+  <string name="attachproject_error_project_down">Projet hors ligne</string>
+  <string name="attachproject_error_email_bad_syntax">Email refusé</string>
+  <string name="attachproject_error_bad_pwd">Mot de passe refusé</string>
+  <string name="attachproject_error_creation_disabled">La création de compte est désactivée pour ce projet</string>
+  <string name="attachproject_error_invalid_url">URL non valide</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Retour</string>
+  <string name="attachproject_working_finish_button">Terminer</string>
+  <string name="attachproject_working_check_desc">Succès</string>
+  <string name="attachproject_working_failed_desc">Échoué</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Se connecter</string>
+  <string name="attachproject_working_verify">Vérifier le compte</string>
+  <string name="attachproject_working_register">Création de compte</string>
+  <string name="attachproject_working_login">Connexion</string>
+  <string name="attachproject_working_acctmgr">Choisir un gestionnaire de compte</string>
+  <string name="attachproject_working_acctmgr_sync">Synchroniser</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Touchez ici pour choisir un projet.</string>
+  <string name="main_error">Oups !</string>
+  <string name="main_error_long">... ceci ne devrait pas se produire !\nCliquez sur l\'icône pour réessayer.</string>
+  <string name="main_title_icon_desc">Icône de BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">État</string>
+  <string name="tab_projects">Projets</string>
+  <string name="tab_tasks">Tâches</string>
+  <string name="tab_transfers">Transferts</string>
+  <string name="tab_preferences">Préférences</string>
+  <string name="tab_notices">Remarques</string>
+  <string name="tab_desc">Navigation</string>
+  <!--status strings-->
+  <string name="status_running">Calculs en cours</string>
+  <string name="status_running_long">Merci de votre participation.</string>
+  <string name="status_paused">Suspendu</string>
+  <string name="status_idle">Rien à faire</string>
+  <string name="status_idle_long">En attente de tâches...</string>
+  <string name="status_computing_disabled">Suspendu</string>
+  <string name="status_computing_disabled_long">Appuyez sur lire pour reprendre les communications réseau et le calcul.</string>
+  <string name="status_launching">Démarrage...</string>
+  <string name="status_noproject">Choisissez un projet auquel participer.</string>
+  <string name="status_closing">Fermeture...</string>
+  <string name="status_benchmarking">Étalonnage...</string>
+  <string name="status_image_description">image du projet</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Lecture des préférences...</string>
+  <string name="prefs_submit_button">Enregistrer</string>
+  <string name="prefs_dialog_title">Saisir une nouvelle valeur :</string>
+  <string name="prefs_dialog_title_selection">Sélectionner :</string>
+  <string name="prefs_category_general">Général</string>
+  <string name="prefs_category_network">Utilisation du réseau</string>
+  <string name="prefs_category_power">Allimentation</string>
+  <string name="prefs_category_cpu">Processeur</string>
+  <string name="prefs_category_storage">Stockage</string>
+  <string name="prefs_category_memory">Mémoire</string>
+  <string name="prefs_category_debug">Déboguer</string>
+  <string name="prefs_show_advanced_header">Montrer les préférences avancées...</string>
+  <string name="prefs_suspend_when_screen_on">Suspendre le calcul quand l\'écran est allumé</string>
+  <string name="prefs_stationary_device_mode_header">Mode appareil fixe</string>
+  <string name="prefs_stationary_device_mode_description">Permettre le calcul indépendamment des préférences d’alimentation. Valide seulement si l\'appareil n\'a pas de batterie.</string>
+  <string name="prefs_power_source_header">Sources d\'alimentation pour le calcul</string>
+  <string name="prefs_power_source_description">Choisir les sources d\'alimentation que BOINC peut utiliser pour le calcul.</string>
+  <string name="prefs_power_source_ac">Prise murale</string>
+  <string name="prefs_power_source_usb">Connexion USB</string>
+  <string name="prefs_power_source_wireless">Chargeur sans fil</string>
+  <string name="prefs_power_source_battery">Batterie</string>
+  <string name="battery_charge_min_pct_header">Niveau minimum de batterie</string>
+  <string name="battery_charge_min_pct_description">BOINC suspend le calcul en dessous du niveau de charge défini.</string>
+  <string name="battery_temperature_max_header">Température batterie maximale</string>
+  <string name="battery_temperature_max_description">BOINC suspend le calcul au dessus de la température de batterie définie. Il n\'est pas recommandé de modifier cette valeur.</string>
+  <string name="prefs_disk_max_pct_header">Espace de stockage maximum utilisé</string>
+  <string name="prefs_disk_max_pct_description">Quel pourcentage de l\'espace de stockage BOINC peut-il utiliser ? </string>
+  <string name="prefs_disk_min_free_gb_header">Capacité de stockage minimum</string>
+  <string name="prefs_disk_min_free_gb_description">Quelle capacité de stockage doit rester disponible dans votre appareil ? </string>
+  <string name="prefs_disk_access_interval_header">Intervalle d\'accès</string>
+  <string name="prefs_disk_access_interval_description">Suggère un intervalle entre les accès disque</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Limite de transfert journalier</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limite le trafic de données journalier causé par BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Transférer les tâches seulement en WiFi</string>
+  <string name="prefs_autostart_header">Démarrage automatique</string>
+  <string name="prefs_show_notification_notices_header">Afficher des notifications pour les nouveaux messages</string>
+  <string name="prefs_show_notification_suspended_header">Afficher une notification lorsque les calculs sont suspendus</string>
+  <string name="prefs_cpu_number_cpus_header">Cœurs du processeur utilisés</string>
+  <string name="prefs_cpu_number_cpus_description">Limiter le nombre de cœurs du processeur que BOINC peut utiliser pour les calculs.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Mettre en pause si l\'utilisation du processeur dépasse</string>
+  <string name="prefs_cpu_other_load_suspension_description">Détermine si BOINC doit suspendre les calculs du fait de l\'exécution d\'autres applications.</string>
+  <string name="prefs_cpu_time_max_header">Limite du processeur</string>
+  <string name="prefs_cpu_time_max_description">Limite le temps processeur que BOINC utilise pour les calculs.</string>
+  <string name="prefs_memory_max_idle_header">Limite de la mémoire vive</string>
+  <string name="prefs_memory_max_idle_description">Limite la quantité de mémoire vive que les tâches peuvent utiliser. </string>
+  <string name="prefs_client_log_flags_header">Drapeaux de journal du client BOINC</string>
+  <string name="prefs_gui_log_level_header">Niveau de l’interface graphique du journal</string>
+  <string name="prefs_gui_log_level_description">Définit le niveau de détail de l’interface graphique des messages du journal.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">s</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Lecture des projets...</string>
+  <string name="projects_add">Ajout de projet</string>
+  <string name="projects_icon">Icône de projet</string>
+  <string name="projects_credits">Crédits :</string>
+  <string name="projects_credits_host_and_user">%1$,d (sur cet appareil) %2$,d (total)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspendu par l\'utilisateur</string>
+  <string name="projects_status_dontrequestmorework">Aucune nouvelle tâche</string>
+  <string name="projects_status_ended">Projet terminé - OK pour le retirer</string>
+  <string name="projects_status_detachwhendone">Se détacher une fois les tâches terminées</string>
+  <string name="projects_status_schedrpcpending">Requête au planificateur en attente</string>
+  <string name="projects_status_schedrpcinprogress">Requête au planificateur en cours</string>
+  <string name="projects_status_trickleuppending">Envoi des notifications d\'avancement en attente</string>
+  <string name="projects_status_backoff">Communication prévue dans :</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Commandes du projet :</string>
+  <string name="projects_control_visit_website">Visitez le site web</string>
+  <string name="projects_control_update">Mise à jour</string>
+  <string name="projects_control_remove">Supprimer</string>
+  <string name="projects_control_suspend">Suspendre</string>
+  <string name="projects_control_resume">Reprendre</string>
+  <string name="projects_control_nonewtasks">Pas de nouvelle tâche</string>
+  <string name="projects_control_allownewtasks">Autoriser une nouvelle tâche</string>
+  <string name="projects_control_reset">Réinitialiser</string>
+  <string name="projects_control_dialog_title_acctmgr">Commandes du gestionnaire de compte :</string>
+  <string name="projects_control_sync_acctmgr">Synchroniser</string>
+  <string name="projects_control_remove_acctmgr">Désactiver</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Supprimer le projet ?</string>
+  <string name="projects_confirm_detach_message">Êtes-vous sûr de vouloir supprimer </string>
+  <string name="projects_confirm_detach_message2">de BOINC ?</string>
+  <string name="projects_confirm_detach_confirm">Supprimer</string>
+  <string name="projects_confirm_reset_title">Recommencer le projet</string>
+  <string name="projects_confirm_reset_message">Êtes-vous sûr de vouloir recommencer </string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Réinitialiser</string>
+  <string name="projects_confirm_remove_acctmgr_title">Désactiver le gestionnaire de compte</string>
+  <string name="projects_confirm_remove_acctmgr_message">Êtes-vous sûr de vouloir cesser d\'utiliser </string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Désactiver</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nom de la tâche :</string>
+  <string name="tasks_header_elapsed_time">Temps écoulé</string>
+  <string name="tasks_header_project_paused"> (suspendu)</string>
+  <string name="tasks_header_deadline">Date limite d’envoi :</string>
+  <string name="tasks_result_new">nouveau</string>
+  <string name="tasks_result_files_downloading">En attente de téléchargement</string>
+  <string name="tasks_result_files_downloaded">Téléchargement terminé</string>
+  <string name="tasks_result_compute_error">erreur de calcul</string>
+  <string name="tasks_result_files_uploading">envoi</string>
+  <string name="tasks_result_files_uploaded">Mise à jour effectuée</string>
+  <string name="tasks_result_aborted">annulé</string>
+  <string name="tasks_result_upload_failed">échec de l\'envoi </string>
+  <string name="tasks_active_uninitialized">prêt</string>
+  <string name="tasks_active_executing">en cours d\'exécution</string>
+  <string name="tasks_active_suspended">suspendu</string>
+  <string name="tasks_active_abort_pending">suspension en cours</string>
+  <string name="tasks_active_quit_pending">suspension en cours</string>
+  <string name="tasks_custom_suspended_via_gui">suspendu</string>
+  <string name="tasks_custom_project_suspended_via_gui">projet suspendu</string>
+  <string name="tasks_custom_ready_to_report">prêt à valider</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Abandonner la tâche ?</string>
+  <string name="confirm_abort_task_message">Abandonner la tâche :</string>
+  <string name="confirm_abort_task_confirm">Abandonner</string>
+  <string name="confirm_cancel">Annuler</string>
+  <string name="confirm_image_desc">Confirmation</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Lecture des transferts...</string>
+  <string name="trans_upload">Envoi</string>
+  <string name="trans_download">Téléchargement</string>
+  <string name="trans_retryin">réessayer dans </string>
+  <string name="trans_failed">échoué</string>
+  <string name="trans_suspended">suspendu</string>
+  <string name="trans_active">actif</string>
+  <string name="trans_pending">en attente</string>
+  <string name="trans_projectbackoff"> retrait de projet</string>
+  <string name="trans_header_name">Fichier :</string>
+  <string name="trans_control_retry">Réessayer le transfert</string>
+  <string name="confirm_abort_trans_title">Annuler le transfert ?</string>
+  <string name="confirm_abort_trans_message">Abandonner le fichier :</string>
+  <string name="confirm_abort_trans_confirm">Abandonner</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Lecture des remarques...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Chargement du journal de messages...</string>
+  <string name="eventlog_client_header">Messages du client</string>
+  <string name="eventlog_gui_header">Messages de l’interface graphique</string>
+  <string name="eventlog_copy_toast">Journal copié dans le presse-papier.</string>
+  <string name="eventlog_email_subject">Journal des événements pour le client BOINC Android :</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Calcul suspendu.</string>
+  <string name="suspend_batteries">Connecter votre appareil à un chargeur pour continuer les calculs.</string>
+  <string name="suspend_screen_on">Éteindre l\'écran pour continuer les calculs.</string>
+  <string name="suspend_useractive">L\'utilisateur est actif.</string>
+  <string name="suspend_tod">Plus de tranche de calcul disponible.</string>
+  <string name="suspend_bm">BOINC effectue l\'étalonnage de votre appareil...</string>
+  <string name="suspend_disksize">En manque de mémoire de stockage.</string>
+  <string name="suspend_cputhrottle">Régulateur de processeur programmé.</string>
+  <string name="suspend_noinput">Pas d\'activité utilisateur récente.</string>
+  <string name="suspend_delay">Délai d\'initialisation.</string>
+  <string name="suspend_exclusiveapp"> Une application prioritaire est en cours d\'exécution.</string>
+  <string name="suspend_cpu">Votre appareil est occupé par d\'autres applications.</string>
+  <string name="suspend_network_quota">BOINC a atteint la limite de transfert réseau.</string>
+  <string name="suspend_os">Stoppé par Android.</string>
+  <string name="suspend_wifi">Pas connecté au WiFi.</string>
+  <string name="suspend_battery_charging">En attente de la recharge de la batterie.</string>
+  <string name="suspend_battery_charging_long">Le calcul reprendra lorsque la charge de la batterie atteindra</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">actuellement</string>
+  <string name="suspend_battery_overheating">En attente du refroidissement de la batterie</string>
+  <string name="suspend_user_req">Reprise du calcul...</string>
+  <string name="suspend_network_user_req">manuellement.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Demandé par l\'utilisateur</string>
+  <string name="rpcreason_needwork">Pour demander du travail</string>
+  <string name="rpcreason_resultsdue">Pour rapporter une tâche terminée</string>
+  <string name="rpcreason_trickleup">Pour envoyer les messages de progression de tâche</string>
+  <string name="rpcreason_acctmgrreq">Demandé par le gestionnaire de compte</string>
+  <string name="rpcreason_init">Initialisation du projet</string>
+  <string name="rpcreason_projectreq">Demandé par le projet</string>
+  <string name="rpcreason_unknown">Raison inconnue</string>
+  <!--menu-->
+  <string name="menu_refresh">Rafraîchir</string>
+  <string name="menu_emailto">Envoyer par email </string>
+  <string name="menu_copy">Copier dans le presse-papier</string>
+  <string name="menu_eventlog">Journal des évènements</string>
+  <string name="menu_exit">Fermer BOINC</string>
+  <string name="menu_run_mode_disable">Suspendre</string>
+  <string name="menu_run_mode_enable">Reprendre</string>
+  <string name="menu_about">À propos</string>
+  <string name="menu_help">Aide</string>
+  <!--about dialog-->
+  <string name="about_button">Retour</string>
+  <string name="about_title">À propos</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Version</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 Berkeley, Université de Californie.</string>
+  <string name="about_copyright_reserved">Tous droits réservés.</string>
+  <string name="about_credits">Merci à l\'Institut de Physique Gravitationnelle Max Planck et aux entreprises IBM et HTC pour leur soutien.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nouvelle notification de %1$s</item>
+    <item quantity="other">%2$,d nouvelles notifications</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Application de calcul bénévole détectée</string>
+  <string name="nonexcl_dialog_text">Une autre application de calcul bénévole fonctionne sur cet appareil. Une seule application peut fonctionner à la fois.</string>
+  <string name="nonexcl_dialog_exit">Quitter</string>
+  <!--social integration-->
+  <string name="social_invite_button">Inviter des amis</string>
+  <string name="social_invite_intent_title">Comment voulez-vous partager ? </string>
+  <string name="social_invite_content_title">Je fais du calcul scientifique sur mon smatphone !</string>
+  <string name="social_invite_content_body">J\'utilise mon %1$s pour faire du calcul scientifique. Vous pouvez le faire aussi ! Téléchargez l\'application à partir de : %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-he/strings.xml b/android/BOINC/app/src/main/res/values-he/strings.xml
new file mode 100644
index 0000000..881120d
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-he/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">טוען! אנא המתן...</string>
+  <string name="generic_button_continue">המשך</string>
+  <string name="generic_button_finish">סיים</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">בחר מיזמים מדעיים שברצונך לתרום להם:</string>
+  <string name="attachproject_list_header">בחר מיזם</string>
+  <string name="attachproject_list_manual_button">הוסף מיזם על-ידי כתובת אינטרנט</string>
+  <string name="attachproject_list_manual_dialog_title">הזן את כתובת האינטרנט של המיזם:</string>
+  <string name="attachproject_list_manual_dialog_button">הוסף מיזם</string>
+  <string name="attachproject_list_manual_no_url">אנא הזן את כתובת האינטרנט של המיזם</string>
+  <string name="attachproject_list_acctmgr_button">הוסף מנהל חשבון</string>
+  <string name="attachproject_list_no_internet">אין חיבור לאינטרנט</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">הזן את מידע החשבון</string>
+  <string name="attachproject_credential_input_desc">הזן מידע חשבון עבור מיזמים נבחרים:</string>
+  <string name="attachproject_credential_input_show_pwd">הצג סיסמה</string>
+  <string name="attachproject_individual_credential_input">צרף מיזמים בנפרד</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">היו בעיות בצירוף מיזמים מדעיים:</string>
+  <string name="attachproject_conflict_undefined">לא היתה אפשרות להתחבר</string>
+  <string name="attachproject_conflict_not_unique">החשבון קיים עם סיסמה אחרת</string>
+  <string name="attachproject_conflict_bad_password">סיסמה שגויה</string>
+  <string name="attachproject_conflict_unknown_user">החשבון לא קיים</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">החשבון אינו קיים, בקר באתר המיזם כדי להירשם</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">מצרף</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">רמז</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">כיצד לתרום:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. התחבר ל-WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. חבר מטען</string>
+  <string name="attachproject_hint_contribtion_screen">3. כבה את המסך</string>
+  <string name="attachproject_hint_projectwebsite_header">בקר באתר המיזם כדי:</string>
+  <string name="attachproject_hint_projectwebsite_science">למד עוד אודות המדע</string>
+  <string name="attachproject_hint_projectwebsite_stats">צפה בסטיסטיקות התרומה</string>
+  <string name="attachproject_hint_projectwebsite_community">צור קשר עם מתנדבים אחרים</string>
+  <string name="attachproject_hint_platforms_header">BOINC זמין גם עבור המחשב או המחשב הנייד, בקר ב-boinc.berkeley.edu כדי ללמוד עוד.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">יוצר קשר עם שרת המיזם...</string>
+  <string name="attachproject_login_image_description">לוגו המיזם.</string>
+  <string name="attachproject_login_header_general_area">אזור כללי:</string>
+  <string name="attachproject_login_header_specific_area">אזור מסוים:</string>
+  <string name="attachproject_login_header_description">תיאור:</string>
+  <string name="attachproject_login_header_home">בית:</string>
+  <string name="attachproject_login_header_url">אתר אינטרנט:</string>
+  <string name="attachproject_login_header_platform">אנדרואיד:</string>
+  <string name="attachproject_login_platform_supported">סוג ההתקן נתמך על ידי מיזם זה</string>
+  <string name="attachproject_login_platform_not_supported">סוג ההתקן אינן נתמך על ידי מיזם זה</string>
+  <string name="attachproject_login_category_terms_of_use">תנאי שימוש עבור</string>
+  <string name="attachproject_login_accept_terms_of_use">על ידי יצירת חשבון עם מיזם זה, אתה מקבל את תנאי השימוש כמתואר לעיל.</string>
+  <string name="attachproject_login_category_login">היכנס באמצעות חשבון קיים</string>
+  <string name="attachproject_login_header_id_email">דוא\"ל:</string>
+  <string name="attachproject_login_header_id_name">שם:</string>
+  <string name="attachproject_login_header_pwd">סיסמה:</string>
+  <string name="attachproject_login_category_creation">חדש לגבי</string>
+  <string name="attachproject_login_header_creation_enabled">הירשם בחשבון כדי להשתתף:</string>
+  <string name="attachproject_login_header_creation_client_disabled">בקר באתר המיזם כדי ליצור חשבון:</string>
+  <string name="attachproject_login_header_creation_disabled">מיזם זה אינו מקבל כעת חשבונות חדשים.</string>
+  <string name="attachproject_login_button_registration">הירשם</string>
+  <string name="attachproject_login_button_login">היכנס</string>
+  <string name="attachproject_login_button_forgotpw">שכחתי סיסמה</string>
+  <string name="attachproject_login_error_toast">יצירת קשר עם המיזם נכשלה!</string>
+  <string name="attachproject_login_attached">מצורף</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">הרשמה לחשבון עבור</string>
+  <string name="attachproject_registration_header_url">מיזם:</string>
+  <string name="attachproject_registration_header_email">דואר אלקטרוני:</string>
+  <string name="attachproject_registration_header_username">שם:</string>
+  <string name="attachproject_registration_header_teamname">צוות:</string>
+  <string name="attachproject_registration_header_pwd">סיסמה:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… הקלד מחדש:</string>
+  <string name="attachproject_registration_button">צור</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">השתמש במנהל החשבון של BOINC כדי להוסיף ולנהל מיזמים מרובים</string>
+  <string name="attachproject_acctmgr_header">הוסף מנהל חשבונות</string>
+  <string name="attachproject_acctmgr_header_url">כתובת אינטרנט</string>
+  <string name="attachproject_acctmgr_header_name">משתמש:</string>
+  <string name="attachproject_acctmgr_header_pwd">סיסמה:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… הקלד מחדש:</string>
+  <string name="attachproject_acctmgr_button">הוסף</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">משתמש לא נמצא</string>
+  <string name="attachproject_error_short_pwd">סיסמה קצרה מדי</string>
+  <string name="attachproject_error_no_internet">כשל בחיבור</string>
+  <string name="attachproject_error_pwd_no_match">הסיסמאות לא תואמות</string>
+  <string name="attachproject_error_pwd_no_retype">אנא הקלד שוב את הסיסמה</string>
+  <string name="attachproject_error_no_url">אנא הזן את כתובת האינטרנט</string>
+  <string name="attachproject_error_no_email">אנא הזן כתובת דוא\"ל</string>
+  <string name="attachproject_error_no_pwd">אנא הזן סיסמה</string>
+  <string name="attachproject_error_no_name">אנא הזן שם משתמש</string>
+  <string name="attachproject_error_unknown">נכשל</string>
+  <string name="attachproject_error_bad_username">שם המשתמש סורב</string>
+  <string name="attachproject_error_email_in_use">דוא\"ל זה נמצא כבר בשימוש</string>
+  <string name="attachproject_error_project_down">המיזם פועל במצב לא מקוון</string>
+  <string name="attachproject_error_email_bad_syntax">דוא\"ל סורב</string>
+  <string name="attachproject_error_bad_pwd">סיסמה סורבה</string>
+  <string name="attachproject_error_creation_disabled">אפשרות ליצירת חשבון מושבתת במיזם זה</string>
+  <string name="attachproject_error_invalid_url">כתובת אינטרנט לא חוקית</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">אחורה</string>
+  <string name="attachproject_working_finish_button">סיום</string>
+  <string name="attachproject_working_check_desc">הצליחה</string>
+  <string name="attachproject_working_failed_desc">נכשלה</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">התחבר</string>
+  <string name="attachproject_working_verify">אמת את החשבון</string>
+  <string name="attachproject_working_register">הירשם לחשבון</string>
+  <string name="attachproject_working_login">היכנס</string>
+  <string name="attachproject_working_acctmgr">הוסף מנהל חשבונות</string>
+  <string name="attachproject_working_acctmgr_sync">סנכרן</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">הקש כאן כדי לבחור מיזם.</string>
+  <string name="main_error">אופס</string>
+  <string name="main_error_long">...זה לא אמור לקרות!\nלחץ על הסמל כדי לנסות שוב.</string>
+  <string name="main_title_icon_desc">סמל BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">מצב</string>
+  <string name="tab_projects">מיזמים</string>
+  <string name="tab_tasks">משימות</string>
+  <string name="tab_transfers">העברות</string>
+  <string name="tab_preferences">העדפות</string>
+  <string name="tab_notices">הודעות</string>
+  <string name="tab_desc">ניווט</string>
+  <!--status strings-->
+  <string name="status_running">מחשב</string>
+  <string name="status_running_long">תודה על השתתפותך.</string>
+  <string name="status_paused">מושעה</string>
+  <string name="status_idle">אין דבר לעשות</string>
+  <string name="status_idle_long">מחכה למשימות...</string>
+  <string name="status_computing_disabled">מושעה</string>
+  <string name="status_computing_disabled_long">לחץ על הפעל כדי לחדש רשת וחישוביות.</string>
+  <string name="status_launching">מתחיל...</string>
+  <string name="status_noproject">בחר מיזם כדי להשתתף בו.</string>
+  <string name="status_closing">סוגר...</string>
+  <string name="status_benchmarking">מודד ביצועים...</string>
+  <string name="status_image_description">תמונת מיזם</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">קורא העדפות...</string>
+  <string name="prefs_submit_button">שמור</string>
+  <string name="prefs_dialog_title">הזן ערך חדש:</string>
+  <string name="prefs_dialog_title_selection">בחר:</string>
+  <string name="prefs_category_general">כללי</string>
+  <string name="prefs_category_network">רשת</string>
+  <string name="prefs_category_power">כוח</string>
+  <string name="prefs_category_cpu">מעבד</string>
+  <string name="prefs_category_storage">אחסון</string>
+  <string name="prefs_category_memory">זיכרון</string>
+  <string name="prefs_category_debug">איתור באגים</string>
+  <string name="prefs_show_advanced_header">הצג העדפות ובקרות מתקדמים...</string>
+  <string name="prefs_suspend_when_screen_on">השהה חישוב כאשר המסך מופעל</string>
+  <string name="prefs_stationary_device_mode_header">מצב ההתקן נייח</string>
+  <string name="prefs_stationary_device_mode_description">אפשר חישוב ללא תלות בההעדפות של כוח. אפשר רק אם אין סוללה להתקן.</string>
+  <string name="prefs_power_source_header">מקורות כוח עבור חישוב</string>
+  <string name="prefs_power_source_description">בחר מקורות כוח של-BOINC מותר להשתמש עבור מחשוב.</string>
+  <string name="prefs_power_source_ac">שקע קיר</string>
+  <string name="prefs_power_source_usb">חיבור USB</string>
+  <string name="prefs_power_source_wireless">מטען אלחוטי</string>
+  <string name="prefs_power_source_battery">סוללה</string>
+  <string name="battery_charge_min_pct_header">רמת הסוללה מינימלית</string>
+  <string name="battery_charge_min_pct_description">BOINC משהה את החישוב ברמה של טעינת סוללה נמוכה מהמוגדר.</string>
+  <string name="battery_temperature_max_header">טמפרטורת מקסימום של הסוללה</string>
+  <string name="battery_temperature_max_description">BOINC משהה את החישוב מעל טמפרטורת סוללה שהוגדרה. לא מומלץ לשנות ערך זה.</string>
+  <string name="prefs_disk_max_pct_header">שטח אחסון מירבי בשימוש</string>
+  <string name="prefs_disk_max_pct_description">בכמה אחוזים משטח האחסון של מכשירך מותר ל-BOINC להשתמש?</string>
+  <string name="prefs_disk_min_free_gb_header">מינימום שטח אחסון פנוי</string>
+  <string name="prefs_disk_min_free_gb_description">כמה משטח אחסון של מכשירך צריך להישאר פנוי?</string>
+  <string name="prefs_disk_access_interval_header">מרווח זמן גישה</string>
+  <string name="prefs_disk_access_interval_description">הצע מרווח זמן בין גישות דיסק</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">הגבלת תעבורה יומית</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">הגבל את תעבורת נתונים היומית הנגרמת על ידי BOINC.</string>
+  <string name="prefs_network_wifi_only_header">שלח משימות ב-WiFi בלבד</string>
+  <string name="prefs_autostart_header">אתחול אוטומטי</string>
+  <string name="prefs_show_notification_notices_header">הצג הודעה עבור הודעות חדשות</string>
+  <string name="prefs_show_notification_suspended_header">הצג הודעה כאשר מושעה</string>
+  <string name="prefs_cpu_number_cpus_header">ליבות מעבד בשימוש</string>
+  <string name="prefs_cpu_number_cpus_description">הגבל את מספר ליבות המעבד ש-BOINC משתמש לחישוב.</string>
+  <string name="prefs_cpu_other_load_suspension_header">השהה בעת שימוש במעבד מעל</string>
+  <string name="prefs_cpu_other_load_suspension_description">קבע מתי BOINC משהה את החישוב עקב שמוש במעבד של יישומים אחרים.</string>
+  <string name="prefs_cpu_time_max_header">הגבלת מעבד</string>
+  <string name="prefs_cpu_time_max_description">הגבל את זמן המעבד ש-BOINC משתמש לחישוב.</string>
+  <string name="prefs_memory_max_idle_header">הגבלת זיכרון גישה אקראית</string>
+  <string name="prefs_memory_max_idle_description">מגביל את כמות הזיכרון לגישה אקראית שמותר למשימות לתפוס.</string>
+  <string name="prefs_client_log_flags_header">דגלים של יומן לקוח BOINC</string>
+  <string name="prefs_gui_log_level_header">רמת יומן ממשק משתמש גרפי</string>
+  <string name="prefs_gui_log_level_description">מציין את פירוט ההודעות של יומן ממשק משתמש גרפי.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">שניות</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">קורא מיזמים...</string>
+  <string name="projects_add">הוסף מיזם</string>
+  <string name="projects_icon">סמל מיזם</string>
+  <string name="projects_credits">זכות:</string>
+  <string name="projects_credits_host_and_user">%1$,d (בהתקן זה) %2$,d (סך הכל)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">הושעה על ידי המשתמש</string>
+  <string name="projects_status_dontrequestmorework">לא יקבל משימות חדשות</string>
+  <string name="projects_status_ended">המיזם הסתיים - ניתן להסיר</string>
+  <string name="projects_status_detachwhendone">יוסר כאשר המשימות יושלמו</string>
+  <string name="projects_status_schedrpcpending">בקשה מתוזמנת ממתינה</string>
+  <string name="projects_status_schedrpcinprogress">בקשה מתוזמנת בהתקדמות</string>
+  <string name="projects_status_trickleuppending">הודעת טפטוף עולה ממתינה</string>
+  <string name="projects_status_backoff">תקשורת מתוזמנת ב-:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">פקודות מיזם:</string>
+  <string name="projects_control_visit_website">בקר באתר</string>
+  <string name="projects_control_update">עדכן</string>
+  <string name="projects_control_remove">הסר</string>
+  <string name="projects_control_suspend">השעה</string>
+  <string name="projects_control_resume">חדש פעולה</string>
+  <string name="projects_control_nonewtasks">אין משימות חדשות</string>
+  <string name="projects_control_allownewtasks">הרשה משימות חדשות</string>
+  <string name="projects_control_reset">אפס</string>
+  <string name="projects_control_dialog_title_acctmgr">פקודות מנהל החשבון:</string>
+  <string name="projects_control_sync_acctmgr">סנכרן</string>
+  <string name="projects_control_remove_acctmgr">השבת</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">להסיר את המיזם?</string>
+  <string name="projects_confirm_detach_message">האם אתה בטוח שברצונך להסיר</string>
+  <string name="projects_confirm_detach_message2">מ-BOINC?</string>
+  <string name="projects_confirm_detach_confirm">הסר</string>
+  <string name="projects_confirm_reset_title">אפס את המיזם</string>
+  <string name="projects_confirm_reset_message">האם אתה בטוח שברצונך לאפס</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">אפס</string>
+  <string name="projects_confirm_remove_acctmgr_title">השבת את מנהל חשבונות</string>
+  <string name="projects_confirm_remove_acctmgr_message">האם אתה בטוח שברצונך להפסיק את השימוש ב-</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">השבת</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">שם המשימה:</string>
+  <string name="tasks_header_elapsed_time">זמן שחלף:</string>
+  <string name="tasks_header_project_paused">(מושעה)</string>
+  <string name="tasks_header_deadline">מועד אחרון:</string>
+  <string name="tasks_result_new">חדש</string>
+  <string name="tasks_result_files_downloading">ממתין להורדה</string>
+  <string name="tasks_result_files_downloaded">ההורדה הושלמה</string>
+  <string name="tasks_result_compute_error">שגיאת חישוב</string>
+  <string name="tasks_result_files_uploading">מעלה</string>
+  <string name="tasks_result_files_uploaded">העלאה הושלמה</string>
+  <string name="tasks_result_aborted">בוטל</string>
+  <string name="tasks_result_upload_failed">ההעלאה נכשלה</string>
+  <string name="tasks_active_uninitialized">מוכן</string>
+  <string name="tasks_active_executing">פועל</string>
+  <string name="tasks_active_suspended">מושעה</string>
+  <string name="tasks_active_abort_pending">משעה</string>
+  <string name="tasks_active_quit_pending">משעה</string>
+  <string name="tasks_custom_suspended_via_gui">הושעה</string>
+  <string name="tasks_custom_project_suspended_via_gui">מיזם מושעה</string>
+  <string name="tasks_custom_ready_to_report">מוכן לדווח</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">האם לבטל משימה?</string>
+  <string name="confirm_abort_task_message">בטל משימה:</string>
+  <string name="confirm_abort_task_confirm">בטל</string>
+  <string name="confirm_cancel">ביטול</string>
+  <string name="confirm_image_desc">תיבת דו-שיח לאישור</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">קורא העברות...</string>
+  <string name="trans_upload">העלאה</string>
+  <string name="trans_download">הורדה</string>
+  <string name="trans_retryin">נסה שנית ב-</string>
+  <string name="trans_failed">נכשל</string>
+  <string name="trans_suspended">הושעה</string>
+  <string name="trans_active">פעיל</string>
+  <string name="trans_pending">ממתין</string>
+  <string name="trans_projectbackoff">המיזם נסוג</string>
+  <string name="trans_header_name">קובץ:</string>
+  <string name="trans_control_retry"> נסה העברות שוב</string>
+  <string name="confirm_abort_trans_title">האם לבטל את ההעברה?</string>
+  <string name="confirm_abort_trans_message">בטל את הקובץ:</string>
+  <string name="confirm_abort_trans_confirm">בטל</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">קורא הודעות...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">טוען הודעות של יומן...</string>
+  <string name="eventlog_client_header">הודעות לקוח</string>
+  <string name="eventlog_gui_header">הודעות ממשק משתמש גרפי</string>
+  <string name="eventlog_copy_toast">היומן הועתק ללוח.</string>
+  <string name="eventlog_email_subject">יומן האירועים עבור BOINC על אנדרואיד:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">חישוב הושעה.</string>
+  <string name="suspend_batteries">חבר את המכשיר למטען כדי להמשיך בחישוב.</string>
+  <string name="suspend_screen_on">כבה את המסך כדי להמשיך בחישוב.</string>
+  <string name="suspend_useractive">המשתמש פעיל.</string>
+  <string name="suspend_tod">פרק הזמן לחישוב אזל.</string>
+  <string name="suspend_bm">BOINC מודד את ביצועי מכשירך...</string>
+  <string name="suspend_disksize">אין די שטח דיסק.</string>
+  <string name="suspend_cputhrottle">ויסות מעבד מתוזמן</string>
+  <string name="suspend_noinput">אין פעילות המשתמש לאחרונה.</string>
+  <string name="suspend_delay">השהיית אתחול.</string>
+  <string name="suspend_exclusiveapp">יישום בלעדי פועל.</string>
+  <string name="suspend_cpu">המכשיר שלך עסוק עם יישומים אחרים.</string>
+  <string name="suspend_network_quota">BOINC הגיע למגבלת תעבורת רשת.</string>
+  <string name="suspend_os">נעצר על ידי אנדרואיד</string>
+  <string name="suspend_wifi">לא מחובר לרשת אלחוטית.</string>
+  <string name="suspend_battery_charging">ממתין לטעינת הסוללה.</string>
+  <string name="suspend_battery_charging_long">החישוב יתחדש כאשר טעינת הסוללה תגיע אל</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">כעת</string>
+  <string name="suspend_battery_overheating">ממתין לקירור הסוללה</string>
+  <string name="suspend_user_req">מחדש את החישוב...</string>
+  <string name="suspend_network_user_req">באופן ידני.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">מבוקש על ידי המשתמש</string>
+  <string name="rpcreason_needwork">כדי להביא עבודה</string>
+  <string name="rpcreason_resultsdue">כדי לדווח משימות שהושלמו</string>
+  <string name="rpcreason_trickleup">כדי לשלוח טפטוף עולה</string>
+  <string name="rpcreason_acctmgrreq">מבוקש על ידי מנהל החשבונות</string>
+  <string name="rpcreason_init">אתחול מיזם</string>
+  <string name="rpcreason_projectreq">מבוקש על ידי המיזם</string>
+  <string name="rpcreason_unknown">סיבה לא ידועה</string>
+  <!--menu-->
+  <string name="menu_refresh">רענן</string>
+  <string name="menu_emailto">שלח כדוא\"ל</string>
+  <string name="menu_copy">העתק ללוח</string>
+  <string name="menu_eventlog">יומן אירועים</string>
+  <string name="menu_exit">צא מ-BOINC</string>
+  <string name="menu_run_mode_disable">השעה</string>
+  <string name="menu_run_mode_enable">חדש פעולה</string>
+  <string name="menu_about">על אודות</string>
+  <string name="menu_help">עזרה</string>
+  <!--about dialog-->
+  <string name="about_button">חזור</string>
+  <string name="about_title">על אודות</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">גירסה</string>
+  <string name="about_name_long">התשתית הפתוחה של ברקלי עבור מחשוב רשת</string>
+  <string name="about_copyright">\u00A9 2003–2016 אוניברסיטת קליפורניה, ברקלי.</string>
+  <string name="about_copyright_reserved">כל הזכויות שמורות.</string>
+  <string name="about_credits">תודות למכון מקס פלנק לפיסיקה כבידתית, תאגיד IBM וחברת HTC על תמיכתם.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">הודעות חדשות מ-%1$s</item>
+    <item quantity="other">%2$,d הודעות חדשות</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">זוהה יישוון מחשוב בהתנדבות</string>
+  <string name="nonexcl_dialog_text">יישומון מחשוב בהתנדבות נוסף פועל במכשיר זה. ניתן להפעיל גירסה אחת בלבד בכל פעם.</string>
+  <string name="nonexcl_dialog_exit">צא</string>
+  <!--social integration-->
+  <string name="social_invite_button">הזמן חברים</string>
+  <string name="social_invite_intent_title">כיצד ברצונך לשתף?</string>
+  <string name="social_invite_content_title">אני עושה מדע עם הטלפון החכם שלי!</string>
+  <string name="social_invite_content_body">אני משתמשב-%1$s שלי כדי לעשות מחשוב עבור המדע. גם אתה יכול! הורד את היישום מ- %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-hr/strings.xml b/android/BOINC/app/src/main/res/values-hr/strings.xml
new file mode 100644
index 0000000..c8acdba
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-hr/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <string name="app_name">BOINC</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-hu/strings.xml b/android/BOINC/app/src/main/res/values-hu/strings.xml
new file mode 100644
index 0000000..049fdb5
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-hu/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Betöltés! Kérjük, várj...</string>
+  <string name="generic_button_continue">Folytatás</string>
+  <string name="generic_button_finish">Befejezés</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Válaszd ki azokat a tudományos projekteket, amelyekhez szeretnél hozzájárulni:</string>
+  <string name="attachproject_list_header">Válassz projektet</string>
+  <string name="attachproject_list_manual_button">Projekt hozzáadása URL szerint</string>
+  <string name="attachproject_list_manual_dialog_title">Add meg a projekt URL-jét:</string>
+  <string name="attachproject_list_manual_dialog_button">Projekt hozzáadása</string>
+  <string name="attachproject_list_manual_no_url">Kérjük, add meg a projekt URL-jét</string>
+  <string name="attachproject_list_acctmgr_button">Fiókkezelő hozzáadása</string>
+  <string name="attachproject_list_no_internet">Nincs internetkapcsolat</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Fiókinformációk megadása</string>
+  <string name="attachproject_credential_input_desc">Fiókadatok megadása a kiválasztott projektekhez:</string>
+  <string name="attachproject_credential_input_show_pwd">Jelszó mutatása</string>
+  <string name="attachproject_individual_credential_input">Projektek hozzáadása egyenként</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Problémák voltak a tudományos projektek hozzáadásával:</string>
+  <string name="attachproject_conflict_undefined">Nem sikerült csatlakozni</string>
+  <string name="attachproject_conflict_not_unique">A fiók létezik, eltérő jelszóval </string>
+  <string name="attachproject_conflict_bad_password">Helytelen jelszó</string>
+  <string name="attachproject_conflict_unknown_user">A fiók nem létezik</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">A fiók nem létezik, nézd meg a projekt weboldalát a regisztráláshoz</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Csatolás</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Tipp</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Hogyan tovább:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Csatlakozás a WiFi-hez</string>
+  <string name="attachproject_hint_contribtion_charger">2. Töltő csatlakoztatása</string>
+  <string name="attachproject_hint_contribtion_screen">3. Képernyő kikapcsolása</string>
+  <string name="attachproject_hint_projectwebsite_header">Nézd a projekt weboldalakat is:</string>
+  <string name="attachproject_hint_projectwebsite_science">Tudj meg többet a tudományról</string>
+  <string name="attachproject_hint_projectwebsite_stats">Közreműködők statisztikája</string>
+  <string name="attachproject_hint_projectwebsite_community">Üzenet más önkénteseknek</string>
+  <string name="attachproject_hint_platforms_header">A BOINC asztali számítógépre és laptopra is elérhető, lásd itt: boinc.berkeley.edu</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Csatlakozás a projekt szerverhez...</string>
+  <string name="attachproject_login_image_description">Projekt logó.</string>
+  <string name="attachproject_login_header_general_area">Fő tudományterület:</string>
+  <string name="attachproject_login_header_specific_area">Speciális tudományterület:</string>
+  <string name="attachproject_login_header_description">Leírás:</string>
+  <string name="attachproject_login_header_home">Honlap:</string>
+  <string name="attachproject_login_header_url">Weboldal:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Ez a projekt támogatja ezt az eszközt</string>
+  <string name="attachproject_login_platform_not_supported">Ez a projekt nem támogatja ezt az eszközt</string>
+  <string name="attachproject_login_category_terms_of_use">Felhasználási feltételek ehhez</string>
+  <string name="attachproject_login_accept_terms_of_use">Fiók létrehozásával elfogadod a projekt felhasználási feltételeit, ahogy az fentebb írva van.</string>
+  <string name="attachproject_login_category_login">Bejelentkezés létező fiókkal</string>
+  <string name="attachproject_login_header_id_email">eMail:</string>
+  <string name="attachproject_login_header_id_name">Név:</string>
+  <string name="attachproject_login_header_pwd">Jelszó:</string>
+  <string name="attachproject_login_category_creation">Új:</string>
+  <string name="attachproject_login_header_creation_enabled">Hozz létre egy felhasználói fiókot a részvételhez:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Nézd meg a projekt weboldalát a regisztrációhoz:</string>
+  <string name="attachproject_login_header_creation_disabled">Ebben a projektben jelenleg nem készíthetők új fiókok.</string>
+  <string name="attachproject_login_button_registration">Regisztráció</string>
+  <string name="attachproject_login_button_login">Bejelentkezés</string>
+  <string name="attachproject_login_button_forgotpw">Elfelejtett jelszó</string>
+  <string name="attachproject_login_error_toast">Projekt csatlakoztatása sikertelen!</string>
+  <string name="attachproject_login_attached">Csatolva</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Fiók létrehozása</string>
+  <string name="attachproject_registration_header_url">Projekt:</string>
+  <string name="attachproject_registration_header_email">eMail:</string>
+  <string name="attachproject_registration_header_username">Név:</string>
+  <string name="attachproject_registration_header_teamname">Csapat:</string>
+  <string name="attachproject_registration_header_pwd">Jelszó:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... Írd be ismét:</string>
+  <string name="attachproject_registration_button">Létrehoz</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Használd a BOINC fiókkezelőt új projekt hozzáadásához vagy a meglévő projektek kezeléséhez</string>
+  <string name="attachproject_acctmgr_header">Fiókkezelő hozzáadása</string>
+  <string name="attachproject_acctmgr_header_url">Webcím</string>
+  <string name="attachproject_acctmgr_header_name">Felhasználó:</string>
+  <string name="attachproject_acctmgr_header_pwd">Jelszó:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Írd be ismét:</string>
+  <string name="attachproject_acctmgr_button">Hozzáad</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">A felhasználó nem található</string>
+  <string name="attachproject_error_short_pwd">A jelszó túl rövid</string>
+  <string name="attachproject_error_no_internet">Kapcsolódási hiba</string>
+  <string name="attachproject_error_pwd_no_match">A jelszavak nem egyeznek</string>
+  <string name="attachproject_error_pwd_no_retype">Kérjük, írd be újra a jelszavadat</string>
+  <string name="attachproject_error_no_url">Kérjük, add meg az URL-t</string>
+  <string name="attachproject_error_no_email">Kérjük, add meg az email címed</string>
+  <string name="attachproject_error_no_pwd">Kérjük, adj meg egy jelszót</string>
+  <string name="attachproject_error_no_name">Kérjük, add meg a felhasználóneved</string>
+  <string name="attachproject_error_unknown">nem sikerült</string>
+  <string name="attachproject_error_bad_username">Felhasználónév visszautasítva</string>
+  <string name="attachproject_error_email_in_use">Az email már használatban van</string>
+  <string name="attachproject_error_project_down">A projekt nem elérhető</string>
+  <string name="attachproject_error_email_bad_syntax">Email visszautasítva</string>
+  <string name="attachproject_error_bad_pwd">Jelszó visszautasítva</string>
+  <string name="attachproject_error_creation_disabled">A fiókok létrehozása le van tiltva ennél a projektnél</string>
+  <string name="attachproject_error_invalid_url">Érvénytelen URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Vissza</string>
+  <string name="attachproject_working_finish_button">Befejezés</string>
+  <string name="attachproject_working_check_desc">Sikeres</string>
+  <string name="attachproject_working_failed_desc">Nem sikerült</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Csatlakozás</string>
+  <string name="attachproject_working_verify">Fiók megerősítése</string>
+  <string name="attachproject_working_register">Fiók létrehozása</string>
+  <string name="attachproject_working_login">Bejelentkezés</string>
+  <string name="attachproject_working_acctmgr">Fiókkezelő hozzáadása</string>
+  <string name="attachproject_working_acctmgr_sync">Szinkronizáció</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Projekt kiválasztásához koppints ide.</string>
+  <string name="main_error">Hoppá</string>
+  <string name="main_error_long">...ennek nem szabadna megtörténnie!\nKattints az ikonra és próbáld újra.</string>
+  <string name="main_title_icon_desc">BOINC ikon</string>
+  <!--tab names-->
+  <string name="tab_status">Állapot</string>
+  <string name="tab_projects">Projektek</string>
+  <string name="tab_tasks">Feladatok</string>
+  <string name="tab_transfers">Adatforgalom</string>
+  <string name="tab_preferences">Beállítások</string>
+  <string name="tab_notices">Értesítések</string>
+  <string name="tab_desc">Navigáció</string>
+  <!--status strings-->
+  <string name="status_running">Számítás</string>
+  <string name="status_running_long">Köszönjük részvételed.</string>
+  <string name="status_paused">Felfüggesztve</string>
+  <string name="status_idle">Nincs tennivaló</string>
+  <string name="status_idle_long">Várakozás feladatokra...</string>
+  <string name="status_computing_disabled">Felfüggesztve</string>
+  <string name="status_computing_disabled_long">A kommunikáció és a számítások folytatásához nyomd meg a lejátszást.</string>
+  <string name="status_launching">Indulás...</string>
+  <string name="status_noproject">Válassz egy projektet, amiben részt akarsz venni.</string>
+  <string name="status_closing">Bezárás...</string>
+  <string name="status_benchmarking">Sebességmérés...</string>
+  <string name="status_image_description">projekt kép</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Beállítások beolvasása...</string>
+  <string name="prefs_submit_button">Mentés</string>
+  <string name="prefs_dialog_title">Új érték megadása:</string>
+  <string name="prefs_dialog_title_selection">Kiválaszt:</string>
+  <string name="prefs_category_general">Általános</string>
+  <string name="prefs_category_network">Hálózat</string>
+  <string name="prefs_category_power">Energia</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Tárhely</string>
+  <string name="prefs_category_memory">Memória</string>
+  <string name="prefs_category_debug">Hibakeresés</string>
+  <string name="prefs_show_advanced_header">Haladó beállítások és vezérlőelemek mutatása...</string>
+  <string name="prefs_suspend_when_screen_on">Számítás szüneteltetése, ha a képernyő be van kapcsolva</string>
+  <string name="prefs_stationary_device_mode_header">Állandó készülék mód</string>
+  <string name="prefs_stationary_device_mode_description">Az energiabeállítástól függetlenül lehetővé teszi a számítást. Csak akkor engedélyezd, ha a készülék nem akkuról működik.</string>
+  <string name="prefs_power_source_header">A számításhoz használt energiaforrások</string>
+  <string name="prefs_power_source_description">Válaszd ki azokat az energiaforrásokat, amiknél a BOINC-ot engedélyezed.</string>
+  <string name="prefs_power_source_ac">Fali csatlakozó</string>
+  <string name="prefs_power_source_usb">USB kapcsolat</string>
+  <string name="prefs_power_source_wireless">Vezeték nélküli töltő</string>
+  <string name="prefs_power_source_battery">Akku</string>
+  <string name="battery_charge_min_pct_header">Min. töltöttségi szint</string>
+  <string name="battery_charge_min_pct_description">A BOINC kikapcsol, ha az akku töltöttsége egy bizonyos szint alá esik.</string>
+  <string name="battery_temperature_max_header">Max. akkuhőmérséklet</string>
+  <string name="battery_temperature_max_description">A BOINC kikapcsol, ha az akku hőmérséklete egy bizonyos érték fölé emelkedik. Nem ajánlott megváltoztatni ezt az értéket.</string>
+  <string name="prefs_disk_max_pct_header">Max. használható lemezterület</string>
+  <string name="prefs_disk_max_pct_description">Az eszköz tárolóhelyének hány százalékát használhatja a BOINC?</string>
+  <string name="prefs_disk_min_free_gb_header">Min. szabad terület</string>
+  <string name="prefs_disk_min_free_gb_description">Az eszköz tárolóhelyének mennyi része maradjon szabadon?</string>
+  <string name="prefs_disk_access_interval_header">Hozzáférési időköz</string>
+  <string name="prefs_disk_access_interval_description">Javaslat a lemezhozzáférés gyakoriságához</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Napi átviteli limit</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">A BOINC által maximálisan használt napi adatforgalom.</string>
+  <string name="prefs_network_wifi_only_header">Feladatok továbbítása csak WiFin keresztül</string>
+  <string name="prefs_autostart_header">Autóindítás</string>
+  <string name="prefs_show_notification_notices_header">Új üzenetek megjelenítése</string>
+  <string name="prefs_show_notification_suspended_header">Üzenetek megjelenítése, ha fel van függesztve</string>
+  <string name="prefs_cpu_number_cpus_header">Használt CPU magok</string>
+  <string name="prefs_cpu_number_cpus_description">CPU magok használatának korlátozása a BOINC számára.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Felfüggesztés, ha  a CPU használat e fölötti</string>
+  <string name="prefs_cpu_other_load_suspension_description">Meghatározza, hogy a BOINC mikor hagyja félbe a számítást más alkalmazások CPU használata miatt.</string>
+  <string name="prefs_cpu_time_max_header">CPU korlátozás</string>
+  <string name="prefs_cpu_time_max_description">CPU idő használatának korlátozása a BOINC számára.</string>
+  <string name="prefs_memory_max_idle_header">Memória korlátozás</string>
+  <string name="prefs_memory_max_idle_description">A feladatok által használható memória korlátozása.</string>
+  <string name="prefs_client_log_flags_header">BOINC kliens naplózási címkék</string>
+  <string name="prefs_gui_log_level_header">GUI naplózási szint</string>
+  <string name="prefs_gui_log_level_description">Mennyire legyenek bőbeszédűek a GUI naplóüzenetek.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">s</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Projektek beolvasása...</string>
+  <string name="projects_add">Projekt hozzáadása</string>
+  <string name="projects_icon">Projekt ikon</string>
+  <string name="projects_credits">Kredit:</string>
+  <string name="projects_credits_host_and_user">%1$,d (ezen a készüléken) %2$,d (összesen)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Felhasználó által felfüggesztve</string>
+  <string name="projects_status_dontrequestmorework">Nem tölt le új feladatot</string>
+  <string name="projects_status_ended">A projekt befejeződött - nyomj OK-t az eltávolításához</string>
+  <string name="projects_status_detachwhendone">Eltávolítás a feladatok befejezésekor</string>
+  <string name="projects_status_schedrpcpending">Függő kérés az ütemezőhöz</string>
+  <string name="projects_status_schedrpcinprogress">Ütemező által indított kérés folyamatban</string>
+  <string name="projects_status_trickleuppending">Időközi jelentés függőben</string>
+  <string name="projects_status_backoff">Kommunikáció időzítve:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Projekt parancsok:</string>
+  <string name="projects_control_visit_website">Nézd meg a weboldalt</string>
+  <string name="projects_control_update">Frissítés</string>
+  <string name="projects_control_remove">Eltávolítás</string>
+  <string name="projects_control_suspend">Felfüggesztés</string>
+  <string name="projects_control_resume">Folytatás</string>
+  <string name="projects_control_nonewtasks">Nincs új feladat</string>
+  <string name="projects_control_allownewtasks">Új feladatok engedélyezése</string>
+  <string name="projects_control_reset">Visszaállítás</string>
+  <string name="projects_control_dialog_title_acctmgr">Fiókkezelő parancsok:</string>
+  <string name="projects_control_sync_acctmgr">Szinkronizáció</string>
+  <string name="projects_control_remove_acctmgr">Kikapcsolva</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Törlöd a projektet?</string>
+  <string name="projects_confirm_detach_message">Biztosan le akarod törölni</string>
+  <string name="projects_confirm_detach_message2">BOINC-ról?</string>
+  <string name="projects_confirm_detach_confirm">Eltávolítás</string>
+  <string name="projects_confirm_reset_title">Projekt nullázása</string>
+  <string name="projects_confirm_reset_message">Biztosan újrakezded</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Visszaállítás</string>
+  <string name="projects_confirm_remove_acctmgr_title">Fiókkezelő kikapcsolása</string>
+  <string name="projects_confirm_remove_acctmgr_message">Biztosan le akarod állítani a használatot</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Kikapcsolva</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Feladat neve:</string>
+  <string name="tasks_header_elapsed_time">Eltelt idő:</string>
+  <string name="tasks_header_project_paused">(felfüggesztve)</string>
+  <string name="tasks_header_deadline">Határidő:</string>
+  <string name="tasks_result_new">új</string>
+  <string name="tasks_result_files_downloading">várakozás a letöltésre</string>
+  <string name="tasks_result_files_downloaded">letöltés kész</string>
+  <string name="tasks_result_compute_error">számítási hiba</string>
+  <string name="tasks_result_files_uploading">feltöltés</string>
+  <string name="tasks_result_files_uploaded">feltöltés kész</string>
+  <string name="tasks_result_aborted">leállítva</string>
+  <string name="tasks_result_upload_failed">feltöltés sikertelen</string>
+  <string name="tasks_active_uninitialized">kész</string>
+  <string name="tasks_active_executing">fut</string>
+  <string name="tasks_active_suspended">felfüggesztve</string>
+  <string name="tasks_active_abort_pending">felfüggesztés</string>
+  <string name="tasks_active_quit_pending">felfüggesztés</string>
+  <string name="tasks_custom_suspended_via_gui">felfüggesztve</string>
+  <string name="tasks_custom_project_suspended_via_gui">projekt felfüggesztve</string>
+  <string name="tasks_custom_ready_to_report">jelentésre kész</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Feladat megszakítása?</string>
+  <string name="confirm_abort_task_message">Feladat megszakítása:</string>
+  <string name="confirm_abort_task_confirm">Eldobás</string>
+  <string name="confirm_cancel">Mégsem</string>
+  <string name="confirm_image_desc">Megerősítés</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Átvitelek beolvasása...</string>
+  <string name="trans_upload">Feltöltés</string>
+  <string name="trans_download">Letöltés</string>
+  <string name="trans_retryin">újrapróbálás ennyi idő múlva</string>
+  <string name="trans_failed">nem sikerült</string>
+  <string name="trans_suspended">felfüggesztve</string>
+  <string name="trans_active">aktív</string>
+  <string name="trans_pending">függőben</string>
+  <string name="trans_projectbackoff">projekt visszatartás</string>
+  <string name="trans_header_name">Fájl:</string>
+  <string name="trans_control_retry">Átvitelek újraindítása</string>
+  <string name="confirm_abort_trans_title">Átvitel megszakítása?</string>
+  <string name="confirm_abort_trans_message">Fájl eldobása:</string>
+  <string name="confirm_abort_trans_confirm">Eldobás</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Értesítések olvasása...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Napló üzenetek betöltése...</string>
+  <string name="eventlog_client_header">Kliens üzenetek</string>
+  <string name="eventlog_gui_header">GUI üzenetek</string>
+  <string name="eventlog_copy_toast">A napló a vágólapra másolva.</string>
+  <string name="eventlog_email_subject">BOINC Android eseménynapló: </string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Számítás felfüggesztve.</string>
+  <string name="suspend_batteries">Csatlakoztasd az eszközt a töltőre a számítás folytatásához.</string>
+  <string name="suspend_screen_on">Kapcsold ki a képernyőt a számítás folytatásához.</string>
+  <string name="suspend_useractive">Felhasználó aktív</string>
+  <string name="suspend_tod">Elfogyott a számítási időkeret.</string>
+  <string name="suspend_bm">A BOINC sebességmérést végez az eszközön...</string>
+  <string name="suspend_disksize">Nincs üres lemezterület.</string>
+  <string name="suspend_cputhrottle">Ütemezett CPU lassítás.</string>
+  <string name="suspend_noinput">Nem volt felhasználói aktivitás.</string>
+  <string name="suspend_delay">Előkészítés késleltetése.</string>
+  <string name="suspend_exclusiveapp">Egy alkalmazás kizárólagosan fut.</string>
+  <string name="suspend_cpu">Az eszköz más alkalmazásokat futtat.</string>
+  <string name="suspend_network_quota">A BOINC elérte a hálózati forgalom beállított határát.</string>
+  <string name="suspend_os">Android megállította.</string>
+  <string name="suspend_wifi">Nincs kapcsolódva a WiFihez.</string>
+  <string name="suspend_battery_charging">Várakozás az akku feltöltéséig.</string>
+  <string name="suspend_battery_charging_long">A számítás folytatódik, amikor az akku feltöltődött</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">jelenleg</string>
+  <string name="suspend_battery_overheating">Várakozás az akku lehűlésére</string>
+  <string name="suspend_user_req">Számítas újrakezdése...</string>
+  <string name="suspend_network_user_req">kézi.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">A felhasználó kezdeményezte</string>
+  <string name="rpcreason_needwork">Új munka kérése</string>
+  <string name="rpcreason_resultsdue">Elkészült feladatok jelentése</string>
+  <string name="rpcreason_trickleup">Időközi jelentés küldése</string>
+  <string name="rpcreason_acctmgrreq">A fiókkezelő kezdeményezte</string>
+  <string name="rpcreason_init">Projekt előkészítése</string>
+  <string name="rpcreason_projectreq">Projekt kezdeményezte</string>
+  <string name="rpcreason_unknown">Ismeretlen ok</string>
+  <!--menu-->
+  <string name="menu_refresh">Frissítés</string>
+  <string name="menu_emailto">Küldés emailben</string>
+  <string name="menu_copy">Másold a vágólapra</string>
+  <string name="menu_eventlog">Eseménynapló</string>
+  <string name="menu_exit">Kilépés a BOINC-ból</string>
+  <string name="menu_run_mode_disable">Felfüggesztés</string>
+  <string name="menu_run_mode_enable">Folytatás</string>
+  <string name="menu_about">Névjegy</string>
+  <string name="menu_help">Súgó</string>
+  <!--about dialog-->
+  <string name="about_button">Vissza</string>
+  <string name="about_title">Névjegy</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Verzió</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing\n(Berkeley Nyílt Infrastruktúra a Hálózati Számításért)</string>
+  <string name="about_copyright">\u00A9 2003-2016 Kaliforniai Egyetem, Berkeley.</string>
+  <string name="about_copyright_reserved">Minden jog fenntartva.</string>
+  <string name="about_credits">Köszönet a Max Planck Gravitációs Fizikai Intézetnek, az IBM Corporation-nek és a HTC Corporation-nek a támogatásért.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Új figyelmeztetés: a(z) %1$ s</item>
+    <item quantity="other">%2$,d új értesítés</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Önkéntes számítási alkalmazás észlelve</string>
+  <string name="nonexcl_dialog_text">Már fut egy másik önkéntes számítási alkalmazás. Egy időben csak egy futhat.</string>
+  <string name="nonexcl_dialog_exit">Bezárás</string>
+  <!--social integration-->
+  <string name="social_invite_button">Barátok meghívása</string>
+  <string name="social_invite_intent_title">Hogyan szeretnéd megosztani?</string>
+  <string name="social_invite_content_title">Tudományos munkát végzek az okostelefonomon!</string>
+  <string name="social_invite_content_body">%1$s eszközömet egy tudományos számításra használom. Ezt te is megteheted, töltsd le és futtasd az alkalmazást innen:  %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-it-rIT/strings.xml b/android/BOINC/app/src/main/res/values-it-rIT/strings.xml
new file mode 100644
index 0000000..de7f654
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-it-rIT/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Caricamento in corso! Attendere prego…</string>
+  <string name="generic_button_continue">Continua</string>
+  <string name="generic_button_finish">Fine</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Seleziona il progetto al quale vuoi contribuire:</string>
+  <string name="attachproject_list_header">Scegli un progetto:</string>
+  <string name="attachproject_list_manual_button">Aggiungi un progetto dall\'URL</string>
+  <string name="attachproject_list_manual_dialog_title">Inserisci l\'URL del progetto:</string>
+  <string name="attachproject_list_manual_dialog_button">Aggiungi progetto</string>
+  <string name="attachproject_list_manual_no_url">Aggiungi l\'URL del progetto</string>
+  <string name="attachproject_list_acctmgr_button">Aggiungi un account manager</string>
+  <string name="attachproject_list_no_internet">Connessione Internet assente</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Inserisci le informazioni account</string>
+  <string name="attachproject_credential_input_desc">Inserisci le account informazioni per i progetti selezionati:</string>
+  <string name="attachproject_credential_input_show_pwd">Visualizza password</string>
+  <string name="attachproject_individual_credential_input">Aggiungi progetti individualmente</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Si sono verificati errori durante l\'aggiunta dei seguenti progetti:</string>
+  <string name="attachproject_conflict_undefined">Impossibile connettersi</string>
+  <string name="attachproject_conflict_not_unique">L\'account esiste già con una password differente</string>
+  <string name="attachproject_conflict_bad_password">Password errata</string>
+  <string name="attachproject_conflict_unknown_user">Account inesistente</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Account inesistente, visita il sito web del progetto per registrarlo</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Connessione in corso</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Consiglio</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Come contribuire:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Connettiti ad una rete WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Collega il caricabatterie</string>
+  <string name="attachproject_hint_contribtion_screen">3. Spegni lo schermo</string>
+  <string name="attachproject_hint_projectwebsite_header">Visita il sito web del progetto a:</string>
+  <string name="attachproject_hint_projectwebsite_science">Scopri di più sul calcolo scientifico</string>
+  <string name="attachproject_hint_projectwebsite_stats">Vedi le statistiche dei contributi</string>
+  <string name="attachproject_hint_projectwebsite_community">Conosci gli altri volontari</string>
+  <string name="attachproject_hint_platforms_header">BOINC è anche disponibile per il tuo computer o laptop, visita boinc.berkeley.edu per saperne di più.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Comunicazione con il server del progetto in corso…</string>
+  <string name="attachproject_login_image_description">Logo progetto.</string>
+  <string name="attachproject_login_header_general_area">Area di ricerca:</string>
+  <string name="attachproject_login_header_specific_area">Area specifica:</string>
+  <string name="attachproject_login_header_description">Descrizione:</string>
+  <string name="attachproject_login_header_home">Home:</string>
+  <string name="attachproject_login_header_url">Sito web:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Questo progetto supporta i dispositivi Android</string>
+  <string name="attachproject_login_platform_not_supported">Questo progetto non supporta i dispositivi Android</string>
+  <string name="attachproject_login_category_terms_of_use">Licenza per</string>
+  <string name="attachproject_login_accept_terms_of_use">Creando un account per questo progetto, accetti i termini della licenza visualizzata sotto.</string>
+  <string name="attachproject_login_category_login">Fai il login con un account esistente</string>
+  <string name="attachproject_login_header_id_email">e-mail:</string>
+  <string name="attachproject_login_header_id_name">Nome:</string>
+  <string name="attachproject_login_header_pwd">Password:</string>
+  <string name="attachproject_login_category_creation">Nuovo</string>
+  <string name="attachproject_login_header_creation_enabled">Crea un account per partecipare:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Visita il sito web del progetto per creare un account:</string>
+  <string name="attachproject_login_header_creation_disabled">Al momento il progetto non accetta nuovi volontari.</string>
+  <string name="attachproject_login_button_registration">Registra</string>
+  <string name="attachproject_login_button_login">Login</string>
+  <string name="attachproject_login_button_forgotpw">Password dimenticata</string>
+  <string name="attachproject_login_error_toast">Comunicazione col progetto fallita!</string>
+  <string name="attachproject_login_attached">Connesso</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Registrazione account per</string>
+  <string name="attachproject_registration_header_url">Progetto:</string>
+  <string name="attachproject_registration_header_email">email:</string>
+  <string name="attachproject_registration_header_username">Nome:</string>
+  <string name="attachproject_registration_header_teamname">Team:</string>
+  <string name="attachproject_registration_header_pwd">Password:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Ripeti:</string>
+  <string name="attachproject_registration_button">Crea</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Usa un account manager BOINC per aggiungere e gestire progetti multipli</string>
+  <string name="attachproject_acctmgr_header">Aggiungi un account manager</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Utente:</string>
+  <string name="attachproject_acctmgr_header_pwd">Password:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Ripeti:</string>
+  <string name="attachproject_acctmgr_button">Aggiungi</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Utente non trovato</string>
+  <string name="attachproject_error_short_pwd">Password troppo corta</string>
+  <string name="attachproject_error_no_internet">Errore connessione</string>
+  <string name="attachproject_error_pwd_no_match">Password non corrispondenti</string>
+  <string name="attachproject_error_pwd_no_retype">Per favore inserisci nuovamente la password</string>
+  <string name="attachproject_error_no_url">Inserire un URL</string>
+  <string name="attachproject_error_no_email">Per favore inserisci un indirizzo email</string>
+  <string name="attachproject_error_no_pwd">Per favore inserisci una password</string>
+  <string name="attachproject_error_no_name">Per favore inserisci un nome utente</string>
+  <string name="attachproject_error_unknown">fallito</string>
+  <string name="attachproject_error_bad_username">Nome utente rifiutato</string>
+  <string name="attachproject_error_email_in_use">L\'email è già in uso da parte di un account</string>
+  <string name="attachproject_error_project_down">Progetto offline</string>
+  <string name="attachproject_error_email_bad_syntax">email rifiutata</string>
+  <string name="attachproject_error_bad_pwd">Password rifiutata</string>
+  <string name="attachproject_error_creation_disabled">La creazione di nuovi account è disabilitata su questo progetto</string>
+  <string name="attachproject_error_invalid_url">URL invalido</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Indietro</string>
+  <string name="attachproject_working_finish_button">Fine</string>
+  <string name="attachproject_working_check_desc">Completato</string>
+  <string name="attachproject_working_failed_desc">Fallito</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Connetti</string>
+  <string name="attachproject_working_verify">Verifica account</string>
+  <string name="attachproject_working_register">Registra account</string>
+  <string name="attachproject_working_login">Login</string>
+  <string name="attachproject_working_acctmgr">Aggiungi un account manager</string>
+  <string name="attachproject_working_acctmgr_sync">Sincronizza</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Premi qui per scegliere un progetto.</string>
+  <string name="main_error">Ops</string>
+  <string name="main_error_long">…questo non dovrebbe succedere!\nClicca sull\'icona per riprovare.</string>
+  <string name="main_title_icon_desc">icona BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Stato</string>
+  <string name="tab_projects">Progetti</string>
+  <string name="tab_tasks">Elaborazioni</string>
+  <string name="tab_transfers">Trasferimenti</string>
+  <string name="tab_preferences">Preferenze</string>
+  <string name="tab_notices">Avvisi</string>
+  <string name="tab_desc">Navigazione</string>
+  <!--status strings-->
+  <string name="status_running">Elaborazione in corso</string>
+  <string name="status_running_long">Grazie per la partecipazione.</string>
+  <string name="status_paused">Sospeso</string>
+  <string name="status_idle">Nulla da fare</string>
+  <string name="status_idle_long">In attesa di nuove WU…</string>
+  <string name="status_computing_disabled">Sospeso</string>
+  <string name="status_computing_disabled_long">Premi play per far ripartire la rete e l\'elaborazione</string>
+  <string name="status_launching">Avvio in corso…</string>
+  <string name="status_noproject">Scegli un progetto per partecipare.</string>
+  <string name="status_closing">Chiusura in corso…</string>
+  <string name="status_benchmarking">Benchmark in corso…</string>
+  <string name="status_image_description">immagine progetto</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Lettura preferenze in corso…</string>
+  <string name="prefs_submit_button">Salva</string>
+  <string name="prefs_dialog_title">Inserisci il nuovo valore:</string>
+  <string name="prefs_dialog_title_selection">Seleziona:</string>
+  <string name="prefs_category_general">Generale</string>
+  <string name="prefs_category_network">Rete</string>
+  <string name="prefs_category_power">Energia</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Memoria fisica</string>
+  <string name="prefs_category_memory">Memoria</string>
+  <string name="prefs_category_debug">Debug</string>
+  <string name="prefs_show_advanced_header">Visualizza preferenze avanzate e controlli…</string>
+  <string name="prefs_suspend_when_screen_on">Interrompi il calcolo quando lo schermo è acceso</string>
+  <string name="prefs_stationary_device_mode_header">Modalità dispositivo stazionario</string>
+  <string name="prefs_stationary_device_mode_description">Permetti il calcolo a prescindere dalle preferenze di alimentazione. Abilitalo solo se il dispositivo non ha una batteria.</string>
+  <string name="prefs_power_source_header">Sorgente di elettricità per il calcolo</string>
+  <string name="prefs_power_source_description">Seleziona le sorgenti di elettricità che BOINC può usare per il calcolo.</string>
+  <string name="prefs_power_source_ac">Caricabatterie a muro</string>
+  <string name="prefs_power_source_usb">Connessione USB</string>
+  <string name="prefs_power_source_wireless">Caricabatterie wireless</string>
+  <string name="prefs_power_source_battery">Batteria</string>
+  <string name="battery_charge_min_pct_header">Livello minimo batteria</string>
+  <string name="battery_charge_min_pct_description">BOINC sospenderà l\'elaborazione sotto il livello definito di carica della batteria.</string>
+  <string name="battery_temperature_max_header">Temperatura massima della batteria</string>
+  <string name="battery_temperature_max_description">BOINC sospenderà l\'elaborazione sopra al livello definito di temperatura della batteria. Non è raccomandato il cambiamento di questo valore.</string>
+  <string name="prefs_disk_max_pct_header">Massimo spazio di salvataggio</string>
+  <string name="prefs_disk_max_pct_description">Quanta percentuale del tuo disco può usare BOINC per lavorare?</string>
+  <string name="prefs_disk_min_free_gb_header">Minimo spazio su disco</string>
+  <string name="prefs_disk_min_free_gb_description">Quanto dello spazio di salvataggio del tuo dispositivo deve rimanere libero?</string>
+  <string name="prefs_disk_access_interval_header">Intervallo di accesso</string>
+  <string name="prefs_disk_access_interval_description">Suggerisci un intervallo tra le scritture su disco</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Limite trasferimento giornaliero</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limita il traffico giornaliero di BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Trasferisci le WU solo tramite WiFi</string>
+  <string name="prefs_autostart_header">Avvio automatico</string>
+  <string name="prefs_show_notification_notices_header">Visualizza notifiche per nuove notizie</string>
+  <string name="prefs_show_notification_suspended_header">Visualizza notifiche quando sospeso</string>
+  <string name="prefs_cpu_number_cpus_header">Usa questo numero di core CPU</string>
+  <string name="prefs_cpu_number_cpus_description">Limita il numero di core CPU che BOINC usa per l\'elaborazione.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pausa con utilizzo CPU superiore a</string>
+  <string name="prefs_cpu_other_load_suspension_description">Determina quando BOINC fermerà l\'elaborazione a causa dell\'utilizzo CPU di altre applicazioni.</string>
+  <string name="prefs_cpu_time_max_header">Limite CPU</string>
+  <string name="prefs_cpu_time_max_description">Limita il tempo CPU che BOINC usa per l\'elaborazione.</string>
+  <string name="prefs_memory_max_idle_header">Limite RAM</string>
+  <string name="prefs_memory_max_idle_description">Limita il quantitativo di RAM che BOINC può occupare.</string>
+  <string name="prefs_client_log_flags_header">Flag di log del client BOINC</string>
+  <string name="prefs_gui_log_level_header">Livello di log della GUI</string>
+  <string name="prefs_gui_log_level_description">Specifica la verbosità dei messaggi di log della GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">secondi</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Lettura progetti…</string>
+  <string name="projects_add">Aggiungi progetto</string>
+  <string name="projects_icon">Icona progetto</string>
+  <string name="projects_credits">Crediti:</string>
+  <string name="projects_credits_host_and_user">%1$,d (da questo dispositivo) %2$,d (in totale)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Sospeso dall\'utente</string>
+  <string name="projects_status_dontrequestmorework">Non chiedere nuove workunit</string>
+  <string name="projects_status_ended">Progetto terminato - Può essere rimosso</string>
+  <string name="projects_status_detachwhendone">Verrà rimosso quando le workunit saranno terminate</string>
+  <string name="projects_status_schedrpcpending">Richiesta allo scheduler in attesa</string>
+  <string name="projects_status_schedrpcinprogress">Richiesta allo scheduler in corso</string>
+  <string name="projects_status_trickleuppending">Messaggio trickle in attesa</string>
+  <string name="projects_status_backoff">Comunicazione tra:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Comandi progetto:</string>
+  <string name="projects_control_visit_website">Visita il sito web</string>
+  <string name="projects_control_update">Aggiorna</string>
+  <string name="projects_control_remove">Rimuovi</string>
+  <string name="projects_control_suspend">Sospendi</string>
+  <string name="projects_control_resume">Riprendi</string>
+  <string name="projects_control_nonewtasks">Nessuna nuova workunit</string>
+  <string name="projects_control_allownewtasks">Permetti nuove workunit</string>
+  <string name="projects_control_reset">Reset</string>
+  <string name="projects_control_dialog_title_acctmgr">Comandi dell\'account manager:</string>
+  <string name="projects_control_sync_acctmgr">Sincronizza</string>
+  <string name="projects_control_remove_acctmgr">Disabilita</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Rimuovere il progetto?</string>
+  <string name="projects_confirm_detach_message">Sei sicuro di voler rimuovere</string>
+  <string name="projects_confirm_detach_message2">da BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Rimuovi</string>
+  <string name="projects_confirm_reset_title">Resetta il progetto</string>
+  <string name="projects_confirm_reset_message">Sei sicuro di voler resettare</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Resetta</string>
+  <string name="projects_confirm_remove_acctmgr_title">Disabilita l\'account manager</string>
+  <string name="projects_confirm_remove_acctmgr_message">Sei sicuro di voler terminare l\'utilizzo</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Disabilita</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nome workunit:</string>
+  <string name="tasks_header_elapsed_time">Tempo trascorso:</string>
+  <string name="tasks_header_project_paused">(sospesa)</string>
+  <string name="tasks_header_deadline">Tempo limite:</string>
+  <string name="tasks_result_new">nuova</string>
+  <string name="tasks_result_files_downloading">in attesa del download</string>
+  <string name="tasks_result_files_downloaded">download completato</string>
+  <string name="tasks_result_compute_error">errore elaborazione</string>
+  <string name="tasks_result_files_uploading">upload in corso</string>
+  <string name="tasks_result_files_uploaded">upload completato</string>
+  <string name="tasks_result_aborted">annullato</string>
+  <string name="tasks_result_upload_failed">upload fallito</string>
+  <string name="tasks_active_uninitialized">pronto</string>
+  <string name="tasks_active_executing">elaborazione in corso</string>
+  <string name="tasks_active_suspended">sospesa</string>
+  <string name="tasks_active_abort_pending">in sospensione</string>
+  <string name="tasks_active_quit_pending">in sospensione</string>
+  <string name="tasks_custom_suspended_via_gui">sospesa</string>
+  <string name="tasks_custom_project_suspended_via_gui">progetto sospeso</string>
+  <string name="tasks_custom_ready_to_report">pronto per l\'invio</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Annullare l\'elaborazione?</string>
+  <string name="confirm_abort_task_message">Annulla elaborazione:</string>
+  <string name="confirm_abort_task_confirm">Annulla</string>
+  <string name="confirm_cancel">Cancella</string>
+  <string name="confirm_image_desc">Finestra di conferma</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Lettura trasferimenti…</string>
+  <string name="trans_upload">Upload</string>
+  <string name="trans_download">Download</string>
+  <string name="trans_retryin">riprova tra</string>
+  <string name="trans_failed">fallito</string>
+  <string name="trans_suspended">sospeso</string>
+  <string name="trans_active">attivo</string>
+  <string name="trans_pending">in attesa</string>
+  <string name="trans_projectbackoff">backoff del progetto</string>
+  <string name="trans_header_name">File:</string>
+  <string name="trans_control_retry">Ritenta i trasferimenti</string>
+  <string name="confirm_abort_trans_title">Annullare il trasferimento?</string>
+  <string name="confirm_abort_trans_message">Annulla file:</string>
+  <string name="confirm_abort_trans_confirm">Annulla</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Lettura degli avvisi...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Caricamento elenco eventi…</string>
+  <string name="eventlog_client_header">Messaggi del client</string>
+  <string name="eventlog_gui_header">Messaggi della GUI</string>
+  <string name="eventlog_copy_toast">Eventi copiati negli appunti.</string>
+  <string name="eventlog_email_subject">Registro eventi BOINC su Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Elaborazione sospesa.</string>
+  <string name="suspend_batteries">Connetti il tuo dispositivo ad un caricabatterie per continuare l\'eleborazione.</string>
+  <string name="suspend_screen_on">Spegni lo schermo per continuare il calcolo.</string>
+  <string name="suspend_useractive">L\'utente è attivo.</string>
+  <string name="suspend_tod">Fuori tempo massimo di computazione.</string>
+  <string name="suspend_bm">BOINC sta facendo il benchmark del dispositivo…</string>
+  <string name="suspend_disksize">Superato lo spazio disco.</string>
+  <string name="suspend_cputhrottle">CPU throttle schedulato</string>
+  <string name="suspend_noinput">Nessuna attività dell\'utente recente.</string>
+  <string name="suspend_delay">Ritardo di inizializzazione.</string>
+  <string name="suspend_exclusiveapp">Un\'applicazione esclusiva è in corso.</string>
+  <string name="suspend_cpu">Il tuo dispositivo è occupato con altre applicazioni.</string>
+  <string name="suspend_network_quota">BOINC ha raggiunto il limite di trasferimento dalla rete.</string>
+  <string name="suspend_os">Fermato da Android.</string>
+  <string name="suspend_wifi">Non connesso al WiFi</string>
+  <string name="suspend_battery_charging">In attesa che la batteria si ricarichi.</string>
+  <string name="suspend_battery_charging_long">L\'elaborazione riprenderà quando il livello di carica della batteria sarà almeno</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">attualmente</string>
+  <string name="suspend_battery_overheating">In attesa che la batteria si raffreddi</string>
+  <string name="suspend_user_req">Ripresa elaborazione…</string>
+  <string name="suspend_network_user_req">manualmente.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Richiesto dall\'utente</string>
+  <string name="rpcreason_needwork">Richiesta lavoro</string>
+  <string name="rpcreason_resultsdue">Invio delle elaborazioni completate</string>
+  <string name="rpcreason_trickleup">Invio messaggi trickle</string>
+  <string name="rpcreason_acctmgrreq">Richiesto dal gestore account</string>
+  <string name="rpcreason_init">Inizializzazione progetto</string>
+  <string name="rpcreason_projectreq">Richiesto dal progetto</string>
+  <string name="rpcreason_unknown">Motivo sconosciuto</string>
+  <!--menu-->
+  <string name="menu_refresh">Refresh</string>
+  <string name="menu_emailto">Invia un\'email</string>
+  <string name="menu_copy">Copia negli appunti</string>
+  <string name="menu_eventlog">Registro eventi</string>
+  <string name="menu_exit">Chiudi BOINC</string>
+  <string name="menu_run_mode_disable">Sospendi</string>
+  <string name="menu_run_mode_enable">Riprendi</string>
+  <string name="menu_about">Informazioni</string>
+  <string name="menu_help">Assistenza</string>
+  <!--about dialog-->
+  <string name="about_button">Return</string>
+  <string name="about_title">Informazioni</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versione</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 Università della California, Berkeley.</string>
+  <string name="about_copyright_reserved">Tutti i diritti riservati.</string>
+  <string name="about_credits">Si ringrazia l\'istituto Max Planck per la fisica gravitazionale, IBM Corporation ed HTC Corporation per i loro contributi.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nuovo avviso da %1$s</item>
+    <item quantity="other">%2$,d nuovi avvisi</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Applicazione di calcolo distribuito rilevata</string>
+  <string name="nonexcl_dialog_text">Un\'altra applicazione di calcolo distribuito volontario è in uso su questo dispositivo. Solo una versione per volta può essere utilizzata.</string>
+  <string name="nonexcl_dialog_exit">Esci</string>
+  <!--social integration-->
+  <string name="social_invite_button">Invita amici</string>
+  <string name="social_invite_intent_title">Come vuoi condividere?</string>
+  <string name="social_invite_content_title">Sto facendo calcoli scientifici dal mio smartphone!</string>
+  <string name="social_invite_content_body">Sto usando il mio %1$s per fare calcolo scientifico distribuito. Puoi farlo anche tu! Scarica l\'applicazione da: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">https://www.amazon.it/Space-Sciences-Laboratory-U-C-Berkeley/dp/B00DCCGLAG?ie=UTF8&isDebug=0&mas_redir=T5&redirect=true&ref=mas_dl&ref_=mas_dl</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-ja/strings.xml b/android/BOINC/app/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000..cc1ebed
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">読み込み中! お待ちください…</string>
+  <string name="generic_button_continue">続行</string>
+  <string name="generic_button_finish">完了</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">あなたが貢献したい科学プロジェクトを選択してください: </string>
+  <string name="attachproject_list_header">プロジェクトを選択してください</string>
+  <string name="attachproject_list_manual_button">URLによってプロジェクトを追加</string>
+  <string name="attachproject_list_manual_dialog_title">プロジェクトのURLを入力: </string>
+  <string name="attachproject_list_manual_dialog_button">プロジェクトを追加</string>
+  <string name="attachproject_list_manual_no_url">プロジェクトのURLを入力してください</string>
+  <string name="attachproject_list_acctmgr_button">アカウント・マネージャを追加</string>
+  <string name="attachproject_list_no_internet">インターネット接続なし</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">アカウント情報を入力</string>
+  <string name="attachproject_credential_input_desc">選択したプロジェクトのアカウント情報を入力: </string>
+  <string name="attachproject_credential_input_show_pwd">パスワードを表示</string>
+  <string name="attachproject_individual_credential_input">プロジェクトを個別に追加する</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">科学プロジェクトを追加中に問題が発生しました: </string>
+  <string name="attachproject_conflict_undefined">接続できませんでした</string>
+  <string name="attachproject_conflict_not_unique">異なるパスワードを持つアカウントが存在します</string>
+  <string name="attachproject_conflict_bad_password">パスワードが間違っています</string>
+  <string name="attachproject_conflict_unknown_user">アカウントが存在しません</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">アカウントが存在しません、プロジェクトのウェブサイトを訪問し登録してください</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">追加中</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">ヒント</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">貢献する方法: </string>
+  <string name="attachproject_hint_contribtion_wifi">1. WiFiに接続します</string>
+  <string name="attachproject_hint_contribtion_charger">2. 充電器につなぎます</string>
+  <string name="attachproject_hint_contribtion_screen">3. 画面の電源を切ります</string>
+  <string name="attachproject_hint_projectwebsite_header">プロジェクトのウェブサイトを訪問 : </string>
+  <string name="attachproject_hint_projectwebsite_science">この科学に関する詳細情報</string>
+  <string name="attachproject_hint_projectwebsite_stats">貢献の統計を見る</string>
+  <string name="attachproject_hint_projectwebsite_community">他の参加者と連絡を取る</string>
+  <string name="attachproject_hint_platforms_header">BOINCはあなたのコンピュータまたはノートパソコンでも利用可能です。詳しくは boinc.berkeley.edu を訪問してください。</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">プロジェクトのサーバに問い合わせ中…</string>
+  <string name="attachproject_login_image_description">プロジェクトのロゴ。</string>
+  <string name="attachproject_login_header_general_area">一般的領域: </string>
+  <string name="attachproject_login_header_specific_area">具体的領域: </string>
+  <string name="attachproject_login_header_description">説明: </string>
+  <string name="attachproject_login_header_home">ホーム: </string>
+  <string name="attachproject_login_header_url">ウェブサイト: </string>
+  <string name="attachproject_login_header_platform">Android: </string>
+  <string name="attachproject_login_platform_supported">デバイスのタイプはこのプロジェクトでサポートされています</string>
+  <string name="attachproject_login_platform_not_supported">デバイスはこのプロジェクトでサポートされていません</string>
+  <string name="attachproject_login_category_terms_of_use">下記のもののための利用規約</string>
+  <string name="attachproject_login_accept_terms_of_use">このプロジェクトのアカウントを作成することで、上記のような利用規約に同意します。</string>
+  <string name="attachproject_login_category_login">既存のアカウントでサインイン</string>
+  <string name="attachproject_login_header_id_email">Eメール: </string>
+  <string name="attachproject_login_header_id_name">名前: </string>
+  <string name="attachproject_login_header_pwd">パスワード: </string>
+  <string name="attachproject_login_category_creation">目新しい</string>
+  <string name="attachproject_login_header_creation_enabled">参加するためにアカウントを登録: </string>
+  <string name="attachproject_login_header_creation_client_disabled">アカウント作成のためプロジェクトのウェブサイトを訪問</string>
+  <string name="attachproject_login_header_creation_disabled">現在このプロジェクトは新規アカウントの登録を受け付けていません。</string>
+  <string name="attachproject_login_button_registration">登録</string>
+  <string name="attachproject_login_button_login">サインイン</string>
+  <string name="attachproject_login_button_forgotpw">パスワードを忘れた</string>
+  <string name="attachproject_login_error_toast">プロジェクトへの接触に失敗しました!</string>
+  <string name="attachproject_login_attached">追加済み</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">下記へのアカウント登録</string>
+  <string name="attachproject_registration_header_url">プロジェクト: </string>
+  <string name="attachproject_registration_header_email">Eメール: </string>
+  <string name="attachproject_registration_header_username">名前: </string>
+  <string name="attachproject_registration_header_teamname">チーム: </string>
+  <string name="attachproject_registration_header_pwd">パスワード: </string>
+  <string name="attachproject_registration_header_pwd_confirm">…もう一度入力: </string>
+  <string name="attachproject_registration_button">作成</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">複数のプロジェクトを追加・管理するために BOINC アカウント・マネージャを使用</string>
+  <string name="attachproject_acctmgr_header">アカウント・マネージャを追加</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">ユーザー名: </string>
+  <string name="attachproject_acctmgr_header_pwd">パスワード: </string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">…もう一度入力: </string>
+  <string name="attachproject_acctmgr_button">追加</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">参加者が見つかりません</string>
+  <string name="attachproject_error_short_pwd">パスワードが短すぎます</string>
+  <string name="attachproject_error_no_internet">接続失敗</string>
+  <string name="attachproject_error_pwd_no_match">パスワードが一致しません</string>
+  <string name="attachproject_error_pwd_no_retype">パスワードを再度入力してください</string>
+  <string name="attachproject_error_no_url">URLを入力してください</string>
+  <string name="attachproject_error_no_email">Eメールアドレスを入力してください</string>
+  <string name="attachproject_error_no_pwd">パスワードを入力してください</string>
+  <string name="attachproject_error_no_name">ユーザー名を入力してください</string>
+  <string name="attachproject_error_unknown">失敗</string>
+  <string name="attachproject_error_bad_username">ユーザー名が拒否されました</string>
+  <string name="attachproject_error_email_in_use">Eメールアドレスがすでに使用されています</string>
+  <string name="attachproject_error_project_down">プロジェクトはオフラインです</string>
+  <string name="attachproject_error_email_bad_syntax">Eメールアドレスが拒否されました</string>
+  <string name="attachproject_error_bad_pwd">パスワードが拒否されました</string>
+  <string name="attachproject_error_creation_disabled">このプロジェクトではアカウント作成が無効になっています</string>
+  <string name="attachproject_error_invalid_url">無効なURL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">戻る</string>
+  <string name="attachproject_working_finish_button">完了</string>
+  <string name="attachproject_working_check_desc">成功</string>
+  <string name="attachproject_working_failed_desc">失敗</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">接続</string>
+  <string name="attachproject_working_verify">アカウントを確認</string>
+  <string name="attachproject_working_register">アカウントを登録</string>
+  <string name="attachproject_working_login">ログイン</string>
+  <string name="attachproject_working_acctmgr">アカウント・マネージャを追加</string>
+  <string name="attachproject_working_acctmgr_sync">同期</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">プロジェクトを選択するにはここをタップしてください。</string>
+  <string name="main_error">おっと</string>
+  <string name="main_error_long">…これは起こるべきではありません! \n 再試行するにはアイコンをクリックしてください。</string>
+  <string name="main_title_icon_desc">BOINCのアイコン</string>
+  <!--tab names-->
+  <string name="tab_status">状態</string>
+  <string name="tab_projects">プロジェクト</string>
+  <string name="tab_tasks">タスク</string>
+  <string name="tab_transfers">ファイル転送</string>
+  <string name="tab_preferences">プレファレンス(好みの設定)</string>
+  <string name="tab_notices">お知らせ</string>
+  <string name="tab_desc">誘導</string>
+  <!--status strings-->
+  <string name="status_running">計算</string>
+  <string name="status_running_long">ご参加ありがとうございます。</string>
+  <string name="status_paused">一時停止中</string>
+  <string name="status_idle">タスクがありません</string>
+  <string name="status_idle_long">タスクを待機中…</string>
+  <string name="status_computing_disabled">一時停止中</string>
+  <string name="status_computing_disabled_long">ネットワーク接続と計算を再開するには[play]を押してください。</string>
+  <string name="status_launching">起動中…</string>
+  <string name="status_noproject">参加するプロジェクトを選んでください。</string>
+  <string name="status_closing">終了中…</string>
+  <string name="status_benchmarking">ベンチマーク中…</string>
+  <string name="status_image_description">プロジェクトの画像</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">プレファレンスを読み込み中…</string>
+  <string name="prefs_submit_button">保存</string>
+  <string name="prefs_dialog_title">新しい値を入力: </string>
+  <string name="prefs_dialog_title_selection">選択 : </string>
+  <string name="prefs_category_general">一般</string>
+  <string name="prefs_category_network">ネットワーク</string>
+  <string name="prefs_category_power">電源</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">ストレージ</string>
+  <string name="prefs_category_memory">メモリ</string>
+  <string name="prefs_category_debug">デバッグ</string>
+  <string name="prefs_show_advanced_header">詳細なプレファレンスとコントロールを表示…</string>
+  <string name="prefs_suspend_when_screen_on">画面の電源が入っている時は計算を一時停止</string>
+  <string name="prefs_stationary_device_mode_header">固定デバイスモード</string>
+  <string name="prefs_stationary_device_mode_description">電源に関するプレファレンスに関係なく計算を許可します。端末にバッテリーが搭載されていない場合のみ有効です。</string>
+  <string name="prefs_power_source_header">計算のための電源供給源</string>
+  <string name="prefs_power_source_description">BOINC が計算を許可される電源供給源を選択してください。</string>
+  <string name="prefs_power_source_ac">コンセント</string>
+  <string name="prefs_power_source_usb">USB接続</string>
+  <string name="prefs_power_source_wireless">ワイヤレス充電器</string>
+  <string name="prefs_power_source_battery">バッテリー</string>
+  <string name="battery_charge_min_pct_header">最少バッテリー残量</string>
+  <string name="battery_charge_min_pct_description">BOINCは定められたバッテリー充電レベルを下回ると計算を一時停止します。</string>
+  <string name="battery_temperature_max_header">最高バッテリー温度</string>
+  <string name="battery_temperature_max_description">BOINCは定められたバッテリー温度を上回ると計算を一時停止します。この値を変更することは推奨されません。</string>
+  <string name="prefs_disk_max_pct_header">ストレージの最大使用量</string>
+  <string name="prefs_disk_max_pct_description">BOINCがデバイスのストレージ領域の何パーセント使用することを許可されていますか?</string>
+  <string name="prefs_disk_min_free_gb_header">最小予備記憶領域</string>
+  <string name="prefs_disk_min_free_gb_description">端末の記憶領域をどれくらい空けておきますか?</string>
+  <string name="prefs_disk_access_interval_header">アクセス間隔</string>
+  <string name="prefs_disk_access_interval_description">記憶領域への読み書き間隔</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">一日あたりの転送容量制限</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">BOINCに起因する一日あたりのデータトラフィックを制限します。</string>
+  <string name="prefs_network_wifi_only_header">WiFiでのみタスクを転送する</string>
+  <string name="prefs_autostart_header">自動起動</string>
+  <string name="prefs_show_notification_notices_header">新しいお知らせがあった場合通知を表示</string>
+  <string name="prefs_show_notification_suspended_header">一時停止中に通知を表示</string>
+  <string name="prefs_cpu_number_cpus_header">使用されるCPUコア数</string>
+  <string name="prefs_cpu_number_cpus_description">BOINCが計算のために使用するCPUコア数を制限します。</string>
+  <string name="prefs_cpu_other_load_suspension_header">超過により休止するCPU使用率</string>
+  <string name="prefs_cpu_other_load_suspension_description">他のアプリのCPU利用率が原因でBOINCが計算を休止する時を判断します。</string>
+  <string name="prefs_cpu_time_max_header">CPUの制限</string>
+  <string name="prefs_cpu_time_max_description">BOINCが計算のために使用するCPU時間を制限します。</string>
+  <string name="prefs_memory_max_idle_header">RAMの制限</string>
+  <string name="prefs_memory_max_idle_description">タスクが専有できるRAMの総計のを制限します。</string>
+  <string name="prefs_client_log_flags_header">BOINCクライアントログのフラグ</string>
+  <string name="prefs_gui_log_level_header">GUIログのレベル</string>
+  <string name="prefs_gui_log_level_description">GUIログメッセージの詳細度を指定します。</string>
+  <string name="prefs_unit_celsius">℃</string>
+  <string name="prefs_unit_seconds">秒</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">プロジェクトを読み込み中…</string>
+  <string name="projects_add">プロジェクトを追加</string>
+  <string name="projects_icon">プロジェクトのアイコン</string>
+  <string name="projects_credits">功績値: </string>
+  <string name="projects_credits_host_and_user">%1$,d (このデバイスで) %2$,d (合計)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">参加者の指示により一時停止中</string>
+  <string name="projects_status_dontrequestmorework">新しいタスクを取得しない</string>
+  <string name="projects_status_ended">プロジェクトは終了しました - 削除するにはOKを押します</string>
+  <string name="projects_status_detachwhendone">タスクが完了した時に削除されます</string>
+  <string name="projects_status_schedrpcpending">スケジューラへの要求を保留</string>
+  <string name="projects_status_schedrpcinprogress">スケジューラへ要求中</string>
+  <string name="projects_status_trickleuppending">トリクルアップメッセージの送信保留あり</string>
+  <string name="projects_status_backoff">通信は次の時間内に予定: </string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">プロジェクトに関する操作: </string>
+  <string name="projects_control_visit_website">ウェブサイトを訪問</string>
+  <string name="projects_control_update">更新</string>
+  <string name="projects_control_remove">削除</string>
+  <string name="projects_control_suspend">一時停止</string>
+  <string name="projects_control_resume">再開</string>
+  <string name="projects_control_nonewtasks">新規タスクを取得しない</string>
+  <string name="projects_control_allownewtasks">新規タスクを許可</string>
+  <string name="projects_control_reset">リセット</string>
+  <string name="projects_control_dialog_title_acctmgr">アカウント・マネージャのコマンド : </string>
+  <string name="projects_control_sync_acctmgr">同期</string>
+  <string name="projects_control_remove_acctmgr">無効</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">プロジェクトを削除しますか?</string>
+  <string name="projects_confirm_detach_message">本当に削除しますか</string>
+  <string name="projects_confirm_detach_message2">BOINCから?</string>
+  <string name="projects_confirm_detach_confirm">削除</string>
+  <string name="projects_confirm_reset_title">プロジェクトをリセット</string>
+  <string name="projects_confirm_reset_message">本当にリセットしますか</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">リセット</string>
+  <string name="projects_confirm_remove_acctmgr_title">アカウント・マネージャを無効にする</string>
+  <string name="projects_confirm_remove_acctmgr_message">本当に使用を停止しますか</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">無効</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">タスク名: </string>
+  <string name="tasks_header_elapsed_time">経過時間: </string>
+  <string name="tasks_header_project_paused">(一時停止中)</string>
+  <string name="tasks_header_deadline">報告期限 : </string>
+  <string name="tasks_result_new">新規</string>
+  <string name="tasks_result_files_downloading">ダウンロード待機中</string>
+  <string name="tasks_result_files_downloaded">ダウンロード完了</string>
+  <string name="tasks_result_compute_error">計算エラー</string>
+  <string name="tasks_result_files_uploading">アップロード中</string>
+  <string name="tasks_result_files_uploaded">アップロード完了</string>
+  <string name="tasks_result_aborted">中止</string>
+  <string name="tasks_result_upload_failed">アップロード失敗</string>
+  <string name="tasks_active_uninitialized">準備完了</string>
+  <string name="tasks_active_executing">実行中</string>
+  <string name="tasks_active_suspended">一時停止中</string>
+  <string name="tasks_active_abort_pending">一時停止しています</string>
+  <string name="tasks_active_quit_pending">一時停止しています</string>
+  <string name="tasks_custom_suspended_via_gui">一時停止中</string>
+  <string name="tasks_custom_project_suspended_via_gui">プロジェクトは一時停止中</string>
+  <string name="tasks_custom_ready_to_report">報告準備完了</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">タスクを中止しますか?</string>
+  <string name="confirm_abort_task_message">タスクを中止: </string>
+  <string name="confirm_abort_task_confirm">中止</string>
+  <string name="confirm_cancel">キャンセル</string>
+  <string name="confirm_image_desc">確認ダイアログ</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">転送を読み込み中…</string>
+  <string name="trans_upload">アップロード</string>
+  <string name="trans_download">ダウンロード</string>
+  <string name="trans_retryin">次の時間内に再試行</string>
+  <string name="trans_failed">失敗</string>
+  <string name="trans_suspended">一時停止中</string>
+  <string name="trans_active">アクティブ</string>
+  <string name="trans_pending">保留中</string>
+  <string name="trans_projectbackoff"> プロジェクトとの通信待機 </string>
+  <string name="trans_header_name">ファイル名: </string>
+  <string name="trans_control_retry">転送を再試行</string>
+  <string name="confirm_abort_trans_title">転送を中止しますか?</string>
+  <string name="confirm_abort_trans_message">ファイルを中止: </string>
+  <string name="confirm_abort_trans_confirm">中止</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">お知らせを読み込み中…</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">ログ・メッセージを読み込み中…</string>
+  <string name="eventlog_client_header">クライアントのメッセージ</string>
+  <string name="eventlog_gui_header">GUIメッセージ</string>
+  <string name="eventlog_copy_toast">ログをクリップボードにコピーしました。</string>
+  <string name="eventlog_email_subject">Android上のBOINCに関するイベント・ログ : </string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">計算処理は一時停止中。</string>
+  <string name="suspend_batteries">計算を続行するにはデバイスを充電器に接続してください。</string>
+  <string name="suspend_screen_on">計算を続行するには画面の電源を切ってください。</string>
+  <string name="suspend_useractive">ユーザーはアクティブです。</string>
+  <string name="suspend_tod">計算時間枠の不足。</string>
+  <string name="suspend_bm">BOINCはデバイスをベンチマークしています…</string>
+  <string name="suspend_disksize">ディスク領域の不足。</string>
+  <string name="suspend_cputhrottle">計画されたCPUスロットル。</string>
+  <string name="suspend_noinput">最近のユーザのアクティビティはありません。</string>
+  <string name="suspend_delay">初期化延期。</string>
+  <string name="suspend_exclusiveapp">排他的なアプリを実行中です。</string>
+  <string name="suspend_cpu">デバイスが他のアプリによって使用中です。</string>
+  <string name="suspend_network_quota">BOINCはネットワークの転送制限に達しました。</string>
+  <string name="suspend_os">Androidによって停止されました。</string>
+  <string name="suspend_wifi">WiFiに接続されていません。</string>
+  <string name="suspend_battery_charging">バッテリーへの充電を待機中。</string>
+  <string name="suspend_battery_charging_long">バッテリーの充電量が設定に達した時計算が再開されます</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">現在</string>
+  <string name="suspend_battery_overheating">バッテリーが冷めるのを待機中</string>
+  <string name="suspend_user_req">計算を再開しています…</string>
+  <string name="suspend_network_user_req">手動で。</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">ユーザーの指示による</string>
+  <string name="rpcreason_needwork">仕事を取りに行く</string>
+  <string name="rpcreason_resultsdue">完了したタスクを報告する</string>
+  <string name="rpcreason_trickleup">トリクルアップメッセージを送信する</string>
+  <string name="rpcreason_acctmgrreq">アカウント・マネージャの指示による</string>
+  <string name="rpcreason_init">プロジェクトの初期化</string>
+  <string name="rpcreason_projectreq">プロジェクトの指示による</string>
+  <string name="rpcreason_unknown">不明な原因</string>
+  <!--menu-->
+  <string name="menu_refresh">更新</string>
+  <string name="menu_emailto">Eメールとして送信</string>
+  <string name="menu_copy">クリップボードにコピー</string>
+  <string name="menu_eventlog">イベント・ログ</string>
+  <string name="menu_exit">BOINCを終了</string>
+  <string name="menu_run_mode_disable">一時停止</string>
+  <string name="menu_run_mode_enable">再開</string>
+  <string name="menu_about">バージョン情報</string>
+  <string name="menu_help">ヘルプ</string>
+  <!--about dialog-->
+  <string name="about_button">戻る</string>
+  <string name="about_title">バージョン情報</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">バージョン</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+    <string name="about_copyright">© 2003–2016 University of California, Berkeley.</string>
+  <string name="about_copyright_reserved">All Rights Reserved.</string>
+  <string name="about_credits">The Max Planck Institute for Gravitational Physics, IBM Corporation, HTC Corporation と彼らの支援に感謝いたします。</string>
+    <!--notice notification-->
+  <!--multi BOINC compitability-->
+  <string name="nonexcl_dialog_header">ボランティア・コンピューティング・アプリを検出しました</string>
+  <string name="nonexcl_dialog_text">このデバイスで別のボランティア・コンピューティング・アプリが動作しています。一度にひとつのバージョンのみ動作可能です。</string>
+  <string name="nonexcl_dialog_exit">終了</string>
+  <!--social integration-->
+  <string name="social_invite_button">友達を招待する</string>
+  <string name="social_invite_intent_title">どのように共有したいですか?</string>
+  <string name="social_invite_content_title">私はスマートフォンで科学研究を行っています!</string>
+  <string name="social_invite_content_body">私は自分の %1$s を科学のための計算に使っています。あなたも出来ますよ!ここからアプリをダウンロードしてください: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.co.jp/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-ka/strings.xml b/android/BOINC/app/src/main/res/values-ka/strings.xml
new file mode 100644
index 0000000..5d0e108
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-ka/strings.xml
@@ -0,0 +1,356 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">მიმდინარეობს ჩატვირთვა! გთხოვთ, დაელოდოთ...</string>
+  <string name="generic_button_continue">გაგრძელება</string>
+  <string name="generic_button_finish">დასრულება</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">აირჩიეთ მეცნიერული პროექტები, რომელშიც გსურთ ღვაწლის შეტანა:</string>
+  <string name="attachproject_list_header">აირჩიეთ პროექტი</string>
+  <string name="attachproject_list_manual_button">პროექტის დამატება URL-ის მეშვეობით</string>
+  <string name="attachproject_list_manual_dialog_title">შეიყვანეთ პროექტის URL-ი:</string>
+  <string name="attachproject_list_manual_dialog_button">პროექტის დამატება</string>
+  <string name="attachproject_list_manual_no_url">გთხოვთ, შეიყვანოთ პროექტის URL-ი</string>
+  <string name="attachproject_list_acctmgr_button">ანგარიშის მმართველის დამატება</string>
+  <string name="attachproject_list_no_internet">არ არის ინტერნეტ კავშირი</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">შეიყვანეთ ანგარიშის ინფორმაცია</string>
+  <string name="attachproject_credential_input_desc">შეიყვანეთ ანგარიშის ინფორმაცია შემდეგი პროექტებისთვის:</string>
+  <string name="attachproject_credential_input_show_pwd">პაროლის ჩვენება</string>
+  <string name="attachproject_individual_credential_input">პროექტების მიბმა ინდივიდუალურად</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">მოხდა შეცდომა მეცნიერული პროექტების მიბმისას:</string>
+  <string name="attachproject_conflict_undefined">ვერ მოხერხდა შეერთება</string>
+  <string name="attachproject_conflict_not_unique">ანგარიში არსებობს განსხვავებული პაროლით</string>
+  <string name="attachproject_conflict_bad_password">პაროლი არასწორია</string>
+  <string name="attachproject_conflict_unknown_user">ანგარიში არ არსებობს</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">ანგარიში არ არსებობს, ეწვიეთ პროექტის ვებ-გვერდს დასარეგისტრირებლად</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">მიმდინარეობს მიბმა</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">მინიშნება</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">როგორ შეიტანოთ ღვაწლი:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. შეუერთდით WiFi-ს</string>
+  <string name="attachproject_hint_contribtion_charger">2. შეაერთეთ დამტენი</string>
+  <string name="attachproject_hint_contribtion_screen">3. გამორთეთ ეკრანი</string>
+  <string name="attachproject_hint_projectwebsite_header">შედით პროექტის ვებ-გვერდებზე შემდეგისთვის:</string>
+  <string name="attachproject_hint_projectwebsite_science">გაიგოთ მეტი მეცნიერებაზე</string>
+  <string name="attachproject_hint_projectwebsite_stats">ნახოთ ღვაწლის შეტანის სტატისტიკა</string>
+  <string name="attachproject_hint_projectwebsite_community">დაუკავშირდეთ სხვა მოხალისეებს</string>
+  <string name="attachproject_hint_platforms_header">BOINC ასევე არის მისაწვდომი თქვენი კომპიუტერისთვის ან ლეპტოპისთვის, ეწვიეთ boinc.berkeley.edu მეტის გასაგებად.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">მიმდინარეობს დაკავშირება პროექტის სერვერთან...</string>
+  <string name="attachproject_login_image_description">პროექტის ლოგოტიპი.</string>
+  <string name="attachproject_login_header_general_area">ზოგადი სფერო:</string>
+  <string name="attachproject_login_header_specific_area">კერძო სფერო:</string>
+  <string name="attachproject_login_header_description">აღწერა:</string>
+  <string name="attachproject_login_header_home">სახლი:</string>
+  <string name="attachproject_login_header_url">ვებ-გვერდი:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">ამ პროექტს აქვს მოწყობილობის ტიპის მხარდაჭერა</string>
+  <string name="attachproject_login_platform_not_supported">ამ პროექტს არ აქვს მოწობილობის მხარდაჭერა</string>
+  <string name="attachproject_login_category_terms_of_use">შემდეგის გამოყენების პირობები</string>
+  <string name="attachproject_login_accept_terms_of_use">ამ პროექტში ანგარიშის შექმნით, თქვენ ეთანხმებით გამოყენების პირობებს, როგორც ნაჩვენებია ზემოთ.</string>
+  <string name="attachproject_login_category_login">შესვლა არსებული ანგარიშით</string>
+  <string name="attachproject_login_header_id_email">ელ.ფოსტა:</string>
+  <string name="attachproject_login_header_id_name">სახელი:</string>
+  <string name="attachproject_login_header_pwd">პაროლი:</string>
+  <string name="attachproject_login_category_creation">ახალი</string>
+  <string name="attachproject_login_header_creation_enabled">დაარეგისტრირეთ ანგარიში მონაწილეობის მისაღებად:</string>
+  <string name="attachproject_login_header_creation_client_disabled">ეწვიეთ პროექტის ვებ-გვერდს ანგარიშის შესაქმენალდ:</string>
+  <string name="attachproject_login_header_creation_disabled">ეს პროექტი ამჟამად არ იღებს ახალ ანგარიშებს.</string>
+  <string name="attachproject_login_button_registration">დარეგისტრირება</string>
+  <string name="attachproject_login_button_login">შესვლა</string>
+  <string name="attachproject_login_button_forgotpw">დაგავიწყდათ პაროლი?</string>
+  <string name="attachproject_login_error_toast">პროექტთან დაკავშირება ვერ მოხერხდა!</string>
+  <string name="attachproject_login_attached">მიბმული</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">შემდეგისთვის ანგარიშის დარეგისტრირება:</string>
+  <string name="attachproject_registration_header_url">პროექტი:</string>
+  <string name="attachproject_registration_header_email">ელ.ფოსტა:</string>
+  <string name="attachproject_registration_header_username">სახელი:</string>
+  <string name="attachproject_registration_header_teamname">გუნდი:</string>
+  <string name="attachproject_registration_header_pwd">პაროლი:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... თავიდან:</string>
+  <string name="attachproject_registration_button">შექმნა</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">გამოიყენეთ BOINC ანგარიშის მმართველი მრავალი პროექტის დასამატებლად და სამართველად</string>
+  <string name="attachproject_acctmgr_header">ანგარიშის მმართველის დამატება</string>
+  <string name="attachproject_acctmgr_header_url">URL-ი</string>
+  <string name="attachproject_acctmgr_header_name">მომხმარებელი:</string>
+  <string name="attachproject_acctmgr_header_pwd">აროლი:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... თავიდან:</string>
+  <string name="attachproject_acctmgr_button">დამატება</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">მომხმარებელი ვერ მოიძებნა</string>
+  <string name="attachproject_error_short_pwd">პაროლი ნამეტანი მოკლეა</string>
+  <string name="attachproject_error_no_internet">შეერთების შეცდომა</string>
+  <string name="attachproject_error_pwd_no_match">პაროლები არ დაემთხვა</string>
+  <string name="attachproject_error_pwd_no_retype">გთხოვთ, თავიდან შეიყვანოთ პაროლი</string>
+  <string name="attachproject_error_no_url">გთხოვთ, შეიყვანოთ URL-ი</string>
+  <string name="attachproject_error_no_email">გთხოვ, შეიყვანოთ ელ.ფოსტის მისამართი</string>
+  <string name="attachproject_error_no_pwd">გთხოვთ, შეიყვანოთ პაროლი</string>
+  <string name="attachproject_error_no_name">გთხოვთ, შეიყვანოთ მომხმარებლის სახელი</string>
+  <string name="attachproject_error_unknown">ვერ მოხერხდა</string>
+  <string name="attachproject_error_bad_username">მომხმარებლის სახელი იქნა უარყოფილი</string>
+  <string name="attachproject_error_email_in_use">ელ.ფოსტა უკვე გამოიყენება</string>
+  <string name="attachproject_error_project_down">პროექტი არ არის ქსელში</string>
+  <string name="attachproject_error_email_bad_syntax">ელ.ფოსტა იქნა უარყოფილი</string>
+  <string name="attachproject_error_bad_pwd">პაროლი იქნა უარყოფილი</string>
+  <string name="attachproject_error_creation_disabled">ანგარიშის შექნა გათიშულია ამ პროექტზე</string>
+  <string name="attachproject_error_invalid_url">არასწორი URL-ი</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">უკან</string>
+  <string name="attachproject_working_finish_button">დასრულებასრულება</string>
+  <string name="attachproject_working_check_desc">წარმატებული</string>
+  <string name="attachproject_working_failed_desc">ვერ მოხერხდა</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">დაკავშირება</string>
+  <string name="attachproject_working_verify">ანგარიშის შემოწმება</string>
+  <string name="attachproject_working_register">ანგარიშის დარეგისტრირება</string>
+  <string name="attachproject_working_login">შესვლა</string>
+  <string name="attachproject_working_acctmgr">ანგარიშის მმართველის დამატება</string>
+  <string name="attachproject_working_acctmgr_sync">სინქრონიზირება</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">დააჭირეთ აქ პროექტის ასარჩევად.</string>
+  <string name="main_error">უფს</string>
+  <string name="main_error_long">...ეს არ უნდა მოხდეს!\nდააჭირეთ იარლიყს თავიდან საცდელად.</string>
+  <string name="main_title_icon_desc">BOINC-ის იარლიყი</string>
+  <!--tab names-->
+  <string name="tab_status">სტატუსი</string>
+  <string name="tab_projects">პროექტები</string>
+  <string name="tab_tasks">დავალებები</string>
+  <string name="tab_transfers">გზავნილები</string>
+  <string name="tab_preferences">პარამეტრები</string>
+  <string name="tab_notices">შეტყობინებები</string>
+  <string name="tab_desc">ნავიგაცია</string>
+  <!--status strings-->
+  <string name="status_running">მიმდინარეობს გამოთვლა</string>
+  <string name="status_running_long">გიხდის მადლობას მონაწილების მიღებისათვის.</string>
+  <string name="status_paused">შეჩერებულია</string>
+  <string name="status_idle">გასაკეთებელი არაფერია</string>
+  <string name="status_idle_long">დავალებების ლოდინში...</string>
+  <string name="status_computing_disabled">შეჩერებულია</string>
+  <string name="status_computing_disabled_long">გთხოვთ, დააჭიროთ \"დაკვრას\" ქსელის და გამოთვლის გასაგრძელებლად.</string>
+  <string name="status_launching">მიმდინარეობს დაწყება...</string>
+  <string name="status_noproject">აირჩიეთ პროექტი მონაწილეობის მისაღებად.</string>
+  <string name="status_closing">მიმდინარეობს დახურვა...</string>
+  <string name="status_benchmarking">მიმდინარეობს წარმადობის შემოწმება...</string>
+  <string name="status_image_description">პროექტის სურათი</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">მიმდინარეობს პარამეტრების წაკითხვა...</string>
+  <string name="prefs_submit_button">შენახვა</string>
+  <string name="prefs_dialog_title">შეიყვანეთ ახალი მნიშვნელობა:</string>
+  <string name="prefs_dialog_title_selection">აირჩიეთ:</string>
+  <string name="prefs_category_general">ზოგადი</string>
+  <string name="prefs_category_network">ქსელი</string>
+  <string name="prefs_category_power">ძაბვა</string>
+  <string name="prefs_category_cpu">ცპ</string>
+  <string name="prefs_category_storage">მეხსიერება</string>
+  <string name="prefs_category_memory">ოპერატიული მეხსიერება</string>
+  <string name="prefs_category_debug">დებაგი</string>
+  <string name="prefs_show_advanced_header">დამატებითი პარამეტრების და კონტროლების ჩვენება...</string>
+  <string name="prefs_suspend_when_screen_on">გამოთვლის შეჩერება, როდესაც ეკრანი ჩართული</string>
+  <string name="prefs_stationary_device_mode_header">მოწყობილობის სტაციონარული რეჟიმი</string>
+  <string name="prefs_stationary_device_mode_description">გამოთვლის ნებართვა ძაბვის პარამეტრების მიუხედავად. ჩართეთ მხოლოდ მაშინ, თუ მოწყობილობას არ აქვს ბატარეა.</string>
+  <string name="prefs_power_source_header">ძაბვის წყაროები გამოთვლისთვის</string>
+  <string name="prefs_power_source_description">აირჩიეთ ძაბვის წყაროები, რომლების გამოყენების უფლება აქვს BOINC-ს გამოთვლებისთვის.</string>
+  <string name="prefs_power_source_ac">შტეფსელი</string>
+  <string name="prefs_power_source_usb">USB კავშირი</string>
+  <string name="prefs_power_source_wireless">უსადენო დამტენი</string>
+  <string name="prefs_power_source_battery">ბატარეა</string>
+  <string name="battery_charge_min_pct_header">მინ. ბატარეის დონე</string>
+  <string name="battery_charge_min_pct_description">BOINC-ი აჩერებს გამოთვლა მითითებული ბატარეის მუხტის დონის ქვემოთ.</string>
+  <string name="battery_temperature_max_header">მაქს. ბატარეის ტემპერატურა</string>
+  <string name="battery_temperature_max_description">BOINC-ი აჩერებს გამოთვლა მითითებული ბატარეის ტემპერატურის ზემოთ. არ არის რეკომენდებული ამ მნიშვნელობის შეცვლა..</string>
+  <string name="prefs_disk_max_pct_header">მაქს. გამოყენებული მეხსიერების ადგილი</string>
+  <string name="prefs_disk_max_pct_description">თქვენი მოწყობილობის მეხსიერების ადგილის რამდენი პროცენტის გამოყენების უფლება აქვს BOINC-ს?</string>
+  <string name="prefs_disk_min_free_gb_header">მინ. თავისუფალი მეხსიერება</string>
+  <string name="prefs_disk_min_free_gb_description">თქვენი მოწყობილობის მეხსიერების რამდენი ადგილი უნდა დარჩეს ცარელად?</string>
+  <string name="prefs_disk_access_interval_header">წვდომის ინტერვალი</string>
+  <string name="prefs_disk_access_interval_description">აყენებს დისკზე წვდომის ინტერვალს</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">დღიური გზავნის შეზღუდვა</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">ზღუდავს დღიურ მონაცემთა გზავნილებს, რომელიც გამოწვეულია BOINC-ის მიერ</string>
+  <string name="prefs_network_wifi_only_header">დავალებების გაგზავნა მხოლოდ WiFi-თ</string>
+  <string name="prefs_autostart_header">ავტოგაშვება</string>
+  <string name="prefs_show_notification_notices_header">შეტყობინების ჩვენება ახალ შეტყობინებებზე</string>
+  <string name="prefs_show_notification_suspended_header">შეტყობინებების ჩვენება, როდესაც შეჩერებულია</string>
+  <string name="prefs_cpu_number_cpus_header">გამოყენებული ცპ-ს ბირთვები</string>
+  <string name="prefs_cpu_number_cpus_description">ზღუდავს გამოთვლებისთვის BOINC-ის მიერ გამოყენებული ცპ-ს ბირთვების რაოდენობას</string>
+  <string name="prefs_cpu_other_load_suspension_header">შეჩერება, როდესაც ცპ-ს გამოყენება აღემატება</string>
+  <string name="prefs_cpu_other_load_suspension_description">წყვეთს, თუ როდის შეაჩეროს გამოთვლები BOINC-მა სხვა აპლიკაციების ცპ-ს გამოყენების მიხედვით</string>
+  <string name="prefs_cpu_time_max_header">ცპ-ს შეზღუდვა</string>
+  <string name="prefs_cpu_time_max_description">ზღუდავს ცპ-ს დროს, რომელსაც იყენებს BOINC-ი გამოთვლებისთვის</string>
+  <string name="prefs_memory_max_idle_header">ოპერატიული მეხსიერების შეზღუდვა</string>
+  <string name="prefs_memory_max_idle_description">ზღუდავს ოპერატიული მეხსიერების რაოდენობას, რომლის გამოყენების უფლება აქვს BOINC-ს</string>
+  <string name="prefs_client_log_flags_header">BOINC-ის კლიენტის ჟურნალის დროშები</string>
+  <string name="prefs_gui_log_level_header">გმი-ს ჟურნალის დონე</string>
+  <string name="prefs_gui_log_level_description">აყენებს გმი-ს ჟურნალის შეტყობინებების ინფორმატიულობას</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">წმ</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">მიმდინარეობს პროექტების წაკითხვა...</string>
+  <string name="projects_add">პროექტის დამატება</string>
+  <string name="projects_icon">პროექტის იარლიყი</string>
+  <string name="projects_credits">კრედიტი:</string>
+  <string name="projects_credits_host_and_user">%1$,d (ამ მოწყობილობაზე) %2$,d (სულ)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">შეჩერებულია მომხმარებლის მიერ</string>
+  <string name="projects_status_dontrequestmorework">არ მიღიებს ახალ დავალებებს</string>
+  <string name="projects_status_ended">პროექტი დასრულდა - ოკ წასაშლელად</string>
+  <string name="projects_status_detachwhendone">წაიშლება დავალებების დამთავრებისას</string>
+  <string name="projects_status_schedrpcpending">განრიგის მოთხოვნა ლოდინშია</string>
+  <string name="projects_status_schedrpcinprogress">მიმდინარეობს განრიგის მოთხოვნა</string>
+  <string name="projects_status_trickleuppending">გაწობის შეტყობინება მოლოდინშია</string>
+  <string name="projects_status_backoff">კავშირი დაგეგმილია:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">პროექტის ბრძანებები:</string>
+  <string name="projects_control_visit_website">ვებ-გვერდზე გადასვლა</string>
+  <string name="projects_control_update">განახლება</string>
+  <string name="projects_control_remove">წაშლა</string>
+  <string name="projects_control_suspend">შეჩერება</string>
+  <string name="projects_control_resume">გაგრძელება</string>
+  <string name="projects_control_nonewtasks">უარი ახალ დავალებებზე</string>
+  <string name="projects_control_allownewtasks">ახალი დავალებების დაშვება</string>
+  <string name="projects_control_reset">ჩამოგდება</string>
+  <string name="projects_control_dialog_title_acctmgr">ანგარიშის მმართველის ბრძანებები:</string>
+  <string name="projects_control_sync_acctmgr">სინქრონიზირება</string>
+  <string name="projects_control_remove_acctmgr">გათიშვა</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">გსურთ პროექტის წაშლა?</string>
+  <string name="projects_confirm_detach_message">დარწმუნებული ხართ, რომ გსურთ წაშალოთ</string>
+  <string name="projects_confirm_detach_message2">BOINC-იდან?</string>
+  <string name="projects_confirm_detach_confirm">წაშლა</string>
+  <string name="projects_confirm_reset_title">პროექტის ჩამოგდება</string>
+  <string name="projects_confirm_reset_message">დარწმუნებული ხართ, რომ გსურთ ჩამოაგდოთ</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">ჩამოგდება</string>
+  <string name="projects_confirm_remove_acctmgr_title">ანგარიშის მმართველის გათიშვა</string>
+  <string name="projects_confirm_remove_acctmgr_message">დარწმუნებული ხართ, რომ გსურთ აღარ გამოიყენოთ</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">გათიშვა</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">დავალების სახელი:</string>
+  <string name="tasks_header_elapsed_time">გასული დრო:</string>
+  <string name="tasks_header_project_paused">(შეჩერებულია)</string>
+  <string name="tasks_header_deadline">ვადა:</string>
+  <string name="tasks_result_new">ახალი</string>
+  <string name="tasks_result_files_downloading">გადმოტვირთვის მოლოდინში</string>
+  <string name="tasks_result_files_downloaded">გატმოტვირთვა დასრულებულია</string>
+  <string name="tasks_result_compute_error">გამოთვლის შეცდომა</string>
+  <string name="tasks_result_files_uploading">მიმდინარეობს ატვირთვა</string>
+  <string name="tasks_result_files_uploaded">ატვირთვა დასრულებულია</string>
+  <string name="tasks_result_aborted">შეწყვეტილია</string>
+  <string name="tasks_result_upload_failed">ატვირთვა ვერ მოხერხდა</string>
+  <string name="tasks_active_uninitialized">არის მზად</string>
+  <string name="tasks_active_executing">გაშვებულია</string>
+  <string name="tasks_active_suspended">შეჩერებულია</string>
+  <string name="tasks_active_abort_pending">მიმდინარეობს შეჩერება</string>
+  <string name="tasks_active_quit_pending">მიმდინარეობს შეჩერება</string>
+  <string name="tasks_custom_suspended_via_gui">შეჩერებულია</string>
+  <string name="tasks_custom_project_suspended_via_gui">პროექტი შეჩერებულია</string>
+  <string name="tasks_custom_ready_to_report">მზად არის გასაგზავნად</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">გსურთ დავალების შეწყვეტა?</string>
+  <string name="confirm_abort_task_message">დავალების შეწყვეტა:</string>
+  <string name="confirm_abort_task_confirm">შეწყვეტა</string>
+  <string name="confirm_cancel">გაუქმება</string>
+  <string name="confirm_image_desc">დასტურის ფანჯარა</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">გზავნილების წაკითხვა</string>
+  <string name="trans_upload">ატვირთვა</string>
+  <string name="trans_download">გადმოწერა</string>
+  <string name="trans_retryin">თავიდან სწდა მოხდება</string>
+  <string name="trans_failed">ვერ მოხერხდა</string>
+  <string name="trans_suspended">შეჩერებულია</string>
+  <string name="trans_active">აქტიურია</string>
+  <string name="trans_pending">მოლოდინშია</string>
+  <string name="trans_projectbackoff">პროექტიდან გამოსვლა</string>
+  <string name="trans_header_name">ფაილი:</string>
+  <string name="trans_control_retry">გზავნილების თავიდან სცდა</string>
+  <string name="confirm_abort_trans_title">გსურთ გზავნილის შეწყვეტა?</string>
+  <string name="confirm_abort_trans_message">ფაილის შეწყვეტა:</string>
+  <string name="confirm_abort_trans_confirm">შეწყვეტა</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">მიმდინარეობს შეტყობინებების წაკითხვა...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">მიმდინარეობს ჟურნალის შეტყობინებების ჩატვირთვა...</string>
+  <string name="eventlog_client_header">კლიენტის შეტყობინებები</string>
+  <string name="eventlog_gui_header">გმი-ს შეტყობინებები</string>
+  <string name="eventlog_copy_toast">ჟურნალი დაკოპირებულია კოპირების ბუფერში.</string>
+  <string name="eventlog_email_subject">მოვლენების ჟურნალი BOINC-ისთვის Android-ზე:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">გამოთვლა შეჩერებულია.</string>
+  <string name="suspend_batteries">შეაერთეთ თქვენი მოწყობილობა დამტენზე გამოთვლის გასაგრძელებლად.</string>
+  <string name="suspend_screen_on">გამორთეთ ეკრანი გამოთვლის გასაგრძელებლად.</string>
+  <string name="suspend_useractive">მომხმარებელი აქტიურია.</string>
+  <string name="suspend_tod">გამოთვლების დროის ჩარჩოების გარეთ.</string>
+  <string name="suspend_bm">BOINC-ი ასრულებს თქვენი მოწყობილობის წარმადობის შემოწმებას...</string>
+  <string name="suspend_disksize">მეხსიერების ადგილი დამთავრდა.</string>
+  <string name="suspend_cputhrottle">დაგეგმილი ცპ-ს ასწრაფება.</string>
+  <string name="suspend_noinput">მომხმარებლის ბოლო აქტივობა არ არსებობს.</string>
+  <string name="suspend_delay">ინიციალიზაციის გადაწევა.</string>
+  <string name="suspend_exclusiveapp">გაშვებულია ექსკლუზიური აპლიკაცია.</string>
+  <string name="suspend_cpu">თქვენი მოწყობილობა დაკავებულია სხვა აპლიკაციებით.</string>
+  <string name="suspend_network_quota">BOINC-მა მიაღწია ქსელის გზავნილების შეზღუდვას.</string>
+  <string name="suspend_os">გაჩერებულია Android-ის მიერ.</string>
+  <string name="suspend_wifi">არ არის შეერთებული WiFi-სთან.</string>
+  <string name="suspend_battery_charging">ბატარეის დატენვის მოლოდინში.</string>
+  <string name="suspend_battery_charging_long">გამოთვლა გაგრძელდება, როდესაც იქნება მიღწეული ბატარეის მუხტი.</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">ამჟამად</string>
+  <string name="suspend_battery_overheating">ბატარეის გაგრილების მოლოდინში</string>
+  <string name="suspend_user_req">მიმდინარეობს გამოთვლის გაგრძელება...</string>
+  <string name="suspend_network_user_req">ხელით.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">მოთხოვნილის მომხმარებლის მიერ</string>
+  <string name="rpcreason_needwork">სამუშაოს მისაღებად</string>
+  <string name="rpcreason_resultsdue">შესრულებული დავალებების გასაგზავნად</string>
+  <string name="rpcreason_trickleup">გაწობის შეტყობინების გაზაგზავნად</string>
+  <string name="rpcreason_acctmgrreq">მოთხოვნილია ანგარიშის მმართველის მიერ</string>
+  <string name="rpcreason_init">პროექტის ინიციალიზირება</string>
+  <string name="rpcreason_projectreq">მოთხოვნილია პროექტის მიერ</string>
+  <string name="rpcreason_unknown">უცნობი მიზეზი</string>
+  <!--menu-->
+  <string name="menu_refresh">განახლება</string>
+  <string name="menu_emailto">ელ.ფოსტის გაზავნა</string>
+  <string name="menu_copy">კოპირების ბუფერში დაკოპირება</string>
+  <string name="menu_eventlog">მოვლენების ჟურნალი</string>
+  <string name="menu_exit">BOINC-იდან გასვლა</string>
+  <string name="menu_run_mode_disable">შეჩერება</string>
+  <string name="menu_run_mode_enable">გაგრძელება</string>
+  <string name="menu_about">პროგრამის შესახებ</string>
+  <string name="menu_help">დახმარება</string>
+  <!--about dialog-->
+  <string name="about_button">დაბრუნება</string>
+  <string name="about_title">პროგრამის შესახებ</string>
+  <string name="about_name">BOINC-ი</string>
+  <string name="about_version">ვერსია</string>
+  <string name="about_name_long">ქსელური გამოთვლების ბერკელეის ღია ინფრასტრუქტურა</string>
+  <string name="about_copyright">\u00A9 2003-2016 კალიფორნიის უნივერსიტეტი, ბერკლი</string>
+  <string name="about_copyright_reserved">ყველა უფლება დაცულია.</string>
+  <string name="about_credits">მადლობა გრავიტაცული ფიზიკის მაქს პლანკის ინსტიტუტს, აი-ბი-ემ კორპორაციას და ეიჩ-თი-სი კორპორაციას მითი მხარდაჭერისთვის.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="other">%2$,d ახალი შეტყობინება</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">მოხალისეთა გამოთვლების აპლიკაცია იქნა აღმოჩენილი</string>
+  <string name="nonexcl_dialog_text">სხვა მოხალისეთა გამოთვლების აპლიკაცია არის გაშვებული ამ მოწყობილებაზე. მხოლოდ ერთი ვერსია შეიძლება იყოს გაშვებული ერთდროულად.</string>
+  <string name="nonexcl_dialog_exit">გამოსვლა</string>
+  <!--social integration-->
+  <string name="social_invite_button">მეგობრების მოწვევა</string>
+  <string name="social_invite_intent_title">როგორ გსურთ გაზიარება?</string>
+  <string name="social_invite_content_title">მე ვმუშაობ მეცნიერებაზე ჩემს სმარტფონზე!</string>
+  <string name="social_invite_content_body">მე ვიყენებ ჩემს %1$s მეცნიერების გამოთვლებისთვის. თქვენც ასევე შეგიძლიათ! გადმოიწერეთ აპლიკაცია აქედან: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-ko/strings.xml b/android/BOINC/app/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000..33e73e5
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,356 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">로딩 중! 잠시 기다려 주세요…</string>
+  <string name="generic_button_continue">계속</string>
+  <string name="generic_button_finish">완료</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">여러분이 공헌할 과학 프로젝트 선택하세요:</string>
+  <string name="attachproject_list_header">프로젝트를 선택:</string>
+  <string name="attachproject_list_manual_button">URL로 프로젝트 추가</string>
+  <string name="attachproject_list_manual_dialog_title">프로젝트 URL 입력:</string>
+  <string name="attachproject_list_manual_dialog_button">프로젝트 추가</string>
+  <string name="attachproject_list_manual_no_url">프로젝트 URL를 입력하세요</string>
+  <string name="attachproject_list_acctmgr_button">계정 관리자 추가</string>
+  <string name="attachproject_list_no_internet">인터넷 연결이 되지 않았습니다</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">계정 정보를 입력하세요</string>
+  <string name="attachproject_credential_input_desc">선택한 프로젝트의 계정 정보를 입력:</string>
+  <string name="attachproject_credential_input_show_pwd">비밀번호 보이기</string>
+  <string name="attachproject_individual_credential_input">개별적으로 프로젝트 추가</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">과학 프로젝트 추가 중에 문제가 발생했습니다:</string>
+  <string name="attachproject_conflict_undefined">연결 실패</string>
+  <string name="attachproject_conflict_not_unique">다른 비밀번호를 가진 계정이 이미 있습니다</string>
+  <string name="attachproject_conflict_bad_password">틀린 비밀번호</string>
+  <string name="attachproject_conflict_unknown_user">계정이 존재하지 않습니다</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">계정이 존재하지 않습니다. 등록하려면 프로젝트 웹사이트에 방문하세요</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">추가하는중</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">힌트</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">공헌하는 법:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. WiFi에 연결하기</string>
+  <string name="attachproject_hint_contribtion_charger">2. 충전기를 꼽으세요</string>
+  <string name="attachproject_hint_contribtion_screen">3. 화면을 끄세요</string>
+  <string name="attachproject_hint_projectwebsite_header">프로젝트 웹사이트 방문하기:</string>
+  <string name="attachproject_hint_projectwebsite_science">과학에 대해 더 알아보기</string>
+  <string name="attachproject_hint_projectwebsite_stats">공헌 통계 보기</string>
+  <string name="attachproject_hint_projectwebsite_community">다른 기여자들과 만나보기</string>
+  <string name="attachproject_hint_platforms_header">또한 BOINC는 데스크톱이나 랩탑으로도 이용할 수 있습니다. 더 알아보려면 boinc.berkeley.edu에 방문하세요.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">프로젝트 서버 연결 중…</string>
+  <string name="attachproject_login_image_description">프로젝트 로고</string>
+  <string name="attachproject_login_header_general_area">대분류:</string>
+  <string name="attachproject_login_header_specific_area">소분류:</string>
+  <string name="attachproject_login_header_description">개요:</string>
+  <string name="attachproject_login_header_home">거점:</string>
+  <string name="attachproject_login_header_url">웹 사이트:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">이 프로젝트는 안드로이드 장치를 지원합니다</string>
+  <string name="attachproject_login_platform_not_supported">이 프로젝트는 안드로이드 장치를 지원하지 않습니다</string>
+  <string name="attachproject_login_category_terms_of_use">사용자 약관</string>
+  <string name="attachproject_login_accept_terms_of_use">이 프로젝트에 계정을 생성할 경우, 상기된 사용자 약관에 동의하는 것으로 처리됩니다.</string>
+  <string name="attachproject_login_category_login">기존 계정으로 로그인</string>
+  <string name="attachproject_login_header_id_email">이메일:</string>
+  <string name="attachproject_login_header_id_name">이름:</string>
+  <string name="attachproject_login_header_pwd">비밀번호:</string>
+  <string name="attachproject_login_category_creation">신규</string>
+  <string name="attachproject_login_header_creation_enabled">참여하기 위해 계정 등록:</string>
+  <string name="attachproject_login_header_creation_client_disabled">계정 생성을 위해 프로젝트 웹사이트 방문하기:</string>
+  <string name="attachproject_login_header_creation_disabled">이 프로젝트는 현재 새로운 계정을 생성할 수 없습니다.</string>
+  <string name="attachproject_login_button_registration">등록</string>
+  <string name="attachproject_login_button_login">로그인</string>
+  <string name="attachproject_login_button_forgotpw">비밀번호 분실</string>
+  <string name="attachproject_login_error_toast">프로젝트 접속에 실패했습니다!</string>
+  <string name="attachproject_login_attached">연결됨</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">계정 등록</string>
+  <string name="attachproject_registration_header_url">프로젝트:</string>
+  <string name="attachproject_registration_header_email">이메일:</string>
+  <string name="attachproject_registration_header_username">이름:</string>
+  <string name="attachproject_registration_header_teamname">팀:</string>
+  <string name="attachproject_registration_header_pwd">비밀번호:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… 재입력:</string>
+  <string name="attachproject_registration_button">생성</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">여러 프로젝트를 추가 및 관리하기 위해 BOINC 계정 관리자를 이용하세요</string>
+  <string name="attachproject_acctmgr_header">계정 관리자 추가</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">사용자:</string>
+  <string name="attachproject_acctmgr_header_pwd">비밀번호:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… 재입력:</string>
+  <string name="attachproject_acctmgr_button">추가</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">사용자를 찾지 못했습니다</string>
+  <string name="attachproject_error_short_pwd">비밀번호가 너무 짧습니다</string>
+  <string name="attachproject_error_no_internet">연결 실패</string>
+  <string name="attachproject_error_pwd_no_match">비밀번호가 일치하지 않습니다</string>
+  <string name="attachproject_error_pwd_no_retype">비밀번호를 다시 입력해 주세요</string>
+  <string name="attachproject_error_no_url">URL을 입력해 주세요</string>
+  <string name="attachproject_error_no_email">이메일 주소를 입력해 주세요</string>
+  <string name="attachproject_error_no_pwd">비밀번호를 입력해 주세요</string>
+  <string name="attachproject_error_no_name">사용자 이름을 입력해 주세요</string>
+  <string name="attachproject_error_unknown">실패</string>
+  <string name="attachproject_error_bad_username">사용자 이름이 거부됨</string>
+  <string name="attachproject_error_email_in_use">이메일 주소가 이미 사용중</string>
+  <string name="attachproject_error_project_down">프로젝트가 오프라인 상태</string>
+  <string name="attachproject_error_email_bad_syntax">이메일 주소가 없거나 틀립니다</string>
+  <string name="attachproject_error_bad_pwd">비밀번호가 틀립니다</string>
+  <string name="attachproject_error_creation_disabled">이 프로젝트는 계정 생성을 할 수 없습니다</string>
+  <string name="attachproject_error_invalid_url">잘못된 URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">뒤로</string>
+  <string name="attachproject_working_finish_button">완료</string>
+  <string name="attachproject_working_check_desc">성공</string>
+  <string name="attachproject_working_failed_desc">실패</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">연결</string>
+  <string name="attachproject_working_verify">계정 확인</string>
+  <string name="attachproject_working_register">계정 등록</string>
+  <string name="attachproject_working_login">로그인</string>
+  <string name="attachproject_working_acctmgr">계정 관리자 추가</string>
+  <string name="attachproject_working_acctmgr_sync">동기화</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">프로젝트를 선택하려면 여기를 누르세요.</string>
+  <string name="main_error">어이쿠</string>
+  <string name="main_error_long">…이 작업이 수행되지 못했어요!\n다시 시도하려면 아이콘을 클릭하세요.</string>
+  <string name="main_title_icon_desc">BOINC 아이콘</string>
+  <!--tab names-->
+  <string name="tab_status">상태</string>
+  <string name="tab_projects">프로젝트</string>
+  <string name="tab_tasks">태스크</string>
+  <string name="tab_transfers">전송</string>
+  <string name="tab_preferences">환경 설정</string>
+  <string name="tab_notices">알림</string>
+  <string name="tab_desc">안내</string>
+  <!--status strings-->
+  <string name="status_running">연산중</string>
+  <string name="status_running_long">참여해 주셔서 감사합니다.</string>
+  <string name="status_paused">일시 정지됨</string>
+  <string name="status_idle">아무 것도 안 함</string>
+  <string name="status_idle_long">태스크 대기 중…</string>
+  <string name="status_computing_disabled">일시 정지됨</string>
+  <string name="status_computing_disabled_long">네트워크 및 연산을 재개하려면 실행 버튼을 누르세요.</string>
+  <string name="status_launching">시작중…</string>
+  <string name="status_noproject">참여할 프로젝트를 선택하세요.</string>
+  <string name="status_closing">닫는 중…</string>
+  <string name="status_benchmarking">벤치마크 실행 중…</string>
+  <string name="status_image_description">프로젝트 이미지</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">환경 설정을 읽는 중…</string>
+  <string name="prefs_submit_button">저장</string>
+  <string name="prefs_dialog_title">새로운 값을 입력:</string>
+  <string name="prefs_dialog_title_selection">선택:</string>
+  <string name="prefs_category_general">일반</string>
+  <string name="prefs_category_network">네트워크</string>
+  <string name="prefs_category_power">전원</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">저장소</string>
+  <string name="prefs_category_memory">메모리</string>
+  <string name="prefs_category_debug">디버그</string>
+  <string name="prefs_show_advanced_header">고급 환경 설정과 제어판을 보여주기…</string>
+  <string name="prefs_suspend_when_screen_on">화면이 켜지면 연산 중지</string>
+  <string name="prefs_stationary_device_mode_header">고정 장치 모드</string>
+  <string name="prefs_stationary_device_mode_description">전원 환경설정을 무시한 연산 허용. 만약 장치에 배터리가 장착되지 않았을 때에만 활성화하세요.</string>
+  <string name="prefs_power_source_header">연산용 전원 공급 장치</string>
+  <string name="prefs_power_source_description">BOINC가 연산을 허용할 전원 공급 장치를 선택하세요.</string>
+  <string name="prefs_power_source_ac">전기 콘센트</string>
+  <string name="prefs_power_source_usb">USB 접속</string>
+  <string name="prefs_power_source_wireless">무선 충전기</string>
+  <string name="prefs_power_source_battery">배터리</string>
+  <string name="battery_charge_min_pct_header">최소 배터리 량</string>
+  <string name="battery_charge_min_pct_description">아래 지정된 배터리 충전량이 되면 BOINC는 연산을 일시 정지합니다.</string>
+  <string name="battery_temperature_max_header">최고 배터리 온도</string>
+  <string name="battery_temperature_max_description">위에 지정된 배터리 온도가 되면 BOINC는 연산을 일시 정지합니다. 이 값을 바꾸지 않길 권장합니다.</string>
+  <string name="prefs_disk_max_pct_header">최대 사용할 저장소 공간</string>
+  <string name="prefs_disk_max_pct_description">저장소 공간 중 몇 %를 BOINC가 사용하길 원하십니까?</string>
+  <string name="prefs_disk_min_free_gb_header">최소로 남겨 둘 용량</string>
+  <string name="prefs_disk_min_free_gb_description">저장소 공간 중 얼만큼 여유 공간으로 남겨두길 원하십니까?</string>
+  <string name="prefs_disk_access_interval_header">액세스 간격</string>
+  <string name="prefs_disk_access_interval_description">디스크 액세스 간격을 설정하세요</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">하루 전송 제한량</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">하루에 BOINC가 전송할 데이터 제한량</string>
+  <string name="prefs_network_wifi_only_header">WiFi에서만 태스크 전송</string>
+  <string name="prefs_autostart_header">자동 시작</string>
+  <string name="prefs_show_notification_notices_header">새 공지사항이 나오면 알림 바에 알려주기</string>
+  <string name="prefs_show_notification_suspended_header">일시중지되면 알림 바에 알려주기</string>
+  <string name="prefs_cpu_number_cpus_header">사용할 CPU 코어 수</string>
+  <string name="prefs_cpu_number_cpus_description">BOINC가 연산에 사용할 CPU 코어 수 제한</string>
+  <string name="prefs_cpu_other_load_suspension_header">CPU 사용량 제한 도달시 정지</string>
+  <string name="prefs_cpu_other_load_suspension_description">다른 앱이 사용하면, BOINC가 연산을 정지할 CPU 사용량치</string>
+  <string name="prefs_cpu_time_max_header">CPU 제한</string>
+  <string name="prefs_cpu_time_max_description">BOINC가 연산에 사용할 CPU 시간을 제한합니다.</string>
+  <string name="prefs_memory_max_idle_header">RAM 제한</string>
+  <string name="prefs_memory_max_idle_description">태스크의 RAM 점유량을 제한합니다.</string>
+  <string name="prefs_client_log_flags_header">BOINC 클라이언트 로그 flags</string>
+  <string name="prefs_gui_log_level_header">GUI 로그 레벨</string>
+  <string name="prefs_gui_log_level_description">GUI 로그 메세지의 상세 정도를 결정해 주세요.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">초</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">프로젝트를 불러오는 중…</string>
+  <string name="projects_add">프로젝트 추가</string>
+  <string name="projects_icon">프로젝트 아이콘</string>
+  <string name="projects_credits">크레딧:</string>
+  <string name="projects_credits_host_and_user">%1$,d (해당 장치) %2$,d (전체)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">사용자에 의해 일시 정지됨</string>
+  <string name="projects_status_dontrequestmorework">새 태스크를 원하지 않음</string>
+  <string name="projects_status_ended">프로젝트 종료 - 제거하려면 OK를 누르세요</string>
+  <string name="projects_status_detachwhendone">태스크 완료시 제거될 것입니다</string>
+  <string name="projects_status_schedrpcpending">스케줄러 요청 대기중</string>
+  <string name="projects_status_schedrpcinprogress">스케줄러 요청 처리중</string>
+  <string name="projects_status_trickleuppending">Trickle up 메세지 대기중</string>
+  <string name="projects_status_backoff">예약된 통신 시각:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">프로젝트 명령:</string>
+  <string name="projects_control_visit_website">웹사이트 방문</string>
+  <string name="projects_control_update">업데이트</string>
+  <string name="projects_control_remove">제거</string>
+  <string name="projects_control_suspend">일시 정지</string>
+  <string name="projects_control_resume">재개</string>
+  <string name="projects_control_nonewtasks">새 태스크 금지</string>
+  <string name="projects_control_allownewtasks">새 태스크 허용</string>
+  <string name="projects_control_reset">재설정</string>
+  <string name="projects_control_dialog_title_acctmgr">계정 관리자 명령어:</string>
+  <string name="projects_control_sync_acctmgr">동기화</string>
+  <string name="projects_control_remove_acctmgr">비활성</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">프로젝트를 제거할까요?</string>
+  <string name="projects_confirm_detach_message">BOINC상에서 정말로 프로젝트명: </string>
+  <string name="projects_confirm_detach_message2">를 제거하시겠습니까?</string>
+  <string name="projects_confirm_detach_confirm">제거</string>
+  <string name="projects_confirm_reset_title">프로젝트 재설정</string>
+  <string name="projects_confirm_reset_message">다음 프로젝트가 재설정됩니다 괘찮습니까: </string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">재설정</string>
+  <string name="projects_confirm_remove_acctmgr_title">계정 관리자 비활성화</string>
+  <string name="projects_confirm_remove_acctmgr_message">정말로 다음 항목 사용을 중지합니까</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">비활성화</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">태스크 이름:</string>
+  <string name="tasks_header_elapsed_time">진행 시간:</string>
+  <string name="tasks_header_project_paused">(일시 정지됨)</string>
+  <string name="tasks_header_deadline">마감 시각:</string>
+  <string name="tasks_result_new">신규</string>
+  <string name="tasks_result_files_downloading">다운로드 대기중</string>
+  <string name="tasks_result_files_downloaded">다운로드 완료</string>
+  <string name="tasks_result_compute_error">연산 오류</string>
+  <string name="tasks_result_files_uploading">업로드 중</string>
+  <string name="tasks_result_files_uploaded">업로드 완료</string>
+  <string name="tasks_result_aborted">중단됨</string>
+  <string name="tasks_result_upload_failed">업로드 실패</string>
+  <string name="tasks_active_uninitialized">준비됨</string>
+  <string name="tasks_active_executing">실행 중</string>
+  <string name="tasks_active_suspended">일시 정지됨</string>
+  <string name="tasks_active_abort_pending">일시 정지 중</string>
+  <string name="tasks_active_quit_pending">일시 정지 중</string>
+  <string name="tasks_custom_suspended_via_gui">일시 정지됨</string>
+  <string name="tasks_custom_project_suspended_via_gui">프로젝트가 일시 정지됨</string>
+  <string name="tasks_custom_ready_to_report">보고 준비 완료</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">태스크를 중단할까요?</string>
+  <string name="confirm_abort_task_message">중단할 태스크:</string>
+  <string name="confirm_abort_task_confirm">중단</string>
+  <string name="confirm_cancel">취소</string>
+  <string name="confirm_image_desc">확인 대화상자</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">전송 목록 읽는 중…</string>
+  <string name="trans_upload">업로드</string>
+  <string name="trans_download">다운로드</string>
+  <string name="trans_retryin">재시도</string>
+  <string name="trans_failed">실패</string>
+  <string name="trans_suspended">일시 정지됨</string>
+  <string name="trans_active">활성</string>
+  <string name="trans_pending">보류</string>
+  <string name="trans_projectbackoff">프로젝트 재연결</string>
+  <string name="trans_header_name">파일:</string>
+  <string name="trans_control_retry">전송 재시도</string>
+  <string name="confirm_abort_trans_title">전송을 중단할까요?</string>
+  <string name="confirm_abort_trans_message">중단할 파일:</string>
+  <string name="confirm_abort_trans_confirm">중단</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">공지사항 읽는 중...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">로그 메세지 읽는 중…</string>
+  <string name="eventlog_client_header">클라이언트 메세지</string>
+  <string name="eventlog_gui_header">GUI 메세지</string>
+  <string name="eventlog_copy_toast">로그가 클립보드에 복사되었습니다.</string>
+  <string name="eventlog_email_subject">안드로이드 상의 BOINC 이벤트 기록:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">연산이 일시 정지되었습니다.</string>
+  <string name="suspend_batteries">연산을 계속하려면 기기를 충전기에 연결하세요.</string>
+  <string name="suspend_screen_on">연산을 계속하려면 화면을 끄세요.</string>
+  <string name="suspend_useractive">사용자가 활동을 시작합니다.</string>
+  <string name="suspend_tod">연산 시간 제한을 넘었습니다.</string>
+  <string name="suspend_bm">BOINC에서 벤치마크 실행 중…</string>
+  <string name="suspend_disksize">저장소 공간을 초과했습니다.</string>
+  <string name="suspend_cputhrottle">예약된 CPU 사용량 제한에 도달했습니다.</string>
+  <string name="suspend_noinput">최근 사용자 활동이 없습니다.</string>
+  <string name="suspend_delay">초기화 지연됨.</string>
+  <string name="suspend_exclusiveapp">독점 앱이 실행 중입니다.</string>
+  <string name="suspend_cpu">다른 앱으로 인해 기기가 바쁩니다.</string>
+  <string name="suspend_network_quota">BOINC가 네트워크 전송 제한량에 도달했습니다.</string>
+  <string name="suspend_os">안드로이드에서 정지시킴.</string>
+  <string name="suspend_wifi">WiFi에 연결되지 않았습니다.</string>
+  <string name="suspend_battery_charging">배터리가 충전되길 기다리는 중.</string>
+  <string name="suspend_battery_charging_long">배터리가 설정량만큼 충전되면 연산이 재개됩니다</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">현재</string>
+  <string name="suspend_battery_overheating">배터리가 식길 기다리는 중</string>
+  <string name="suspend_user_req">연산 재개 중…</string>
+  <string name="suspend_network_user_req">수동</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">사용자가 요청함</string>
+  <string name="rpcreason_needwork">작업 반입</string>
+  <string name="rpcreason_resultsdue">완료된 태스크 보고</string>
+  <string name="rpcreason_trickleup">trickle-up 메세지 전송</string>
+  <string name="rpcreason_acctmgrreq">계정 관리자에서 요청함</string>
+  <string name="rpcreason_init">프로젝트 초기화</string>
+  <string name="rpcreason_projectreq">프로젝트에서 요청함</string>
+  <string name="rpcreason_unknown">알 수 없는 이유</string>
+  <!--menu-->
+  <string name="menu_refresh">새로 고침</string>
+  <string name="menu_emailto">이메일로 보내기</string>
+  <string name="menu_copy">클립보드에 복사</string>
+  <string name="menu_eventlog">이벤트 기록</string>
+  <string name="menu_exit">BOINC 종료</string>
+  <string name="menu_run_mode_disable">일시 정지됨</string>
+  <string name="menu_run_mode_enable">재개</string>
+  <string name="menu_about">정보</string>
+  <string name="menu_help">도움말</string>
+  <!--about dialog-->
+  <string name="about_button">뒤로</string>
+  <string name="about_title">정보</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">버전</string>
+  <string name="about_name_long">네트워크 컴퓨팅을 위한 Berkeley 개방형 하부구조체</string>
+  <string name="about_copyright">\u00A9 2003–2016 캘리포니아 댁학교 버클리 캠퍼스.</string>
+  <string name="about_copyright_reserved">모든 권리 보유</string>
+  <string name="about_credits">막스 플랑크 중력 물리학 연구소, IBM Corporation, HTC의 지원에 감사드립니다.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="other">%2$,d 새로운 알림</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">기여자 연산 앱 감지됨</string>
+  <string name="nonexcl_dialog_text">다른 기여자 연산 앱이 이 장치에서 실행되고 있습니다. 한 번에 하나씩만 실행할 수 있습니다.</string>
+  <string name="nonexcl_dialog_exit">종료</string>
+  <!--social integration-->
+  <string name="social_invite_button">친구 초대하기</string>
+  <string name="social_invite_intent_title">누구에게 공유하고 싶습니까?</string>
+  <string name="social_invite_content_title">내 스마트폰으로만 작업할래요!</string>
+  <string name="social_invite_content_body">%1$s도 연산에 참여합니다. 여러분도 할 수 있습니다! 앱 다운로드: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-lt/strings.xml b/android/BOINC/app/src/main/res/values-lt/strings.xml
new file mode 100644
index 0000000..cc600d9
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-lt/strings.xml
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <string name="app_name">BOINC</string>
+  <string name="generic_loading">로딩 중! 잠시 기다려 주세요…</string>
+  <string name="attachproject_list_header">프로젝트를 선택:</string>
+  <string name="attachproject_list_manual_button">URL로 프로젝트 추가</string>
+  <string name="attachproject_list_manual_dialog_title">프로젝트 URL 입력:</string>
+  <string name="attachproject_list_manual_dialog_button">프로젝트 추가</string>
+  <string name="attachproject_list_manual_no_url">프로젝트 URL를 입력하세요</string>
+  <string name="attachproject_list_acctmgr_button">계정 관리자 추가</string>
+  <string name="attachproject_list_no_internet">인터넷 연결이 되지 않았습니다</string>
+  <string name="attachproject_login_loading">프로젝트 서버 연결 중…</string>
+  <string name="attachproject_login_image_description">프로젝트 로고</string>
+  <string name="attachproject_login_header_general_area">대분류:</string>
+  <string name="attachproject_login_header_specific_area">소분류:</string>
+  <string name="attachproject_login_header_description">개요:</string>
+  <string name="attachproject_login_header_home">거점:</string>
+  <string name="attachproject_login_header_url">웹 사이트:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">이 프로젝트는 안드로이드 장치를 지원합니다</string>
+  <string name="attachproject_login_platform_not_supported">이 프로젝트는 안드로이드 장치를 지원하지 않습니다</string>
+  <string name="attachproject_login_category_terms_of_use">사용자 약관</string>
+  <string name="attachproject_login_accept_terms_of_use">이 프로젝트에 계정을 생성할 경우, 상기된 사용자 약관에 동의하는 것으로 처리됩니다.</string>
+  <string name="attachproject_login_category_login">기존 계정으로 로그인</string>
+  <string name="attachproject_login_header_id_email">이메일:</string>
+  <string name="attachproject_login_header_id_name">이름:</string>
+  <string name="attachproject_login_header_pwd">비밀번호:</string>
+  <string name="attachproject_login_category_creation">신규</string>
+  <string name="attachproject_login_header_creation_enabled">참여하기 위해 계정 등록:</string>
+  <string name="attachproject_login_header_creation_client_disabled">계정 생성을 위해 프로젝트 웹사이트 방문하기:</string>
+  <string name="attachproject_login_header_creation_disabled">현재 프로젝트에서 신규 계정 생성을 허용하지 않았습니다!</string>
+  <string name="attachproject_login_button_registration">등록</string>
+  <string name="attachproject_login_button_login">로그인</string>
+  <string name="attachproject_login_button_forgotpw">비밀번호 분실</string>
+  <string name="attachproject_login_error_toast">프로젝트 접속에 실패했습니다!</string>
+  <string name="attachproject_login_attached">연결됨</string>
+  <string name="attachproject_registration_header">계정 등록</string>
+  <string name="attachproject_registration_header_url">프로젝트:</string>
+  <string name="attachproject_registration_header_email">이메일:</string>
+  <string name="attachproject_registration_header_username">이름:</string>
+  <string name="attachproject_registration_header_teamname">팀:</string>
+  <string name="attachproject_registration_header_pwd">비밀번호:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… 재입력:</string>
+  <string name="attachproject_registration_button">생성</string>
+  <string name="attachproject_acctmgr_header">계정 관리자 추가</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">사용자:</string>
+  <string name="attachproject_acctmgr_header_pwd">비밀번호:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… 재입력:</string>
+  <string name="attachproject_acctmgr_button">추가</string>
+  <string name="attachproject_error_wrong_name">사용자를 찾지 못했습니다</string>
+  <string name="attachproject_error_short_pwd">비밀번호가 너무 짧습니다</string>
+  <string name="attachproject_error_no_internet">연결 실패</string>
+  <string name="attachproject_error_pwd_no_match">비밀번호가 일치하지 않습니다</string>
+  <string name="attachproject_error_no_url">URL을 입력해 주십시오</string>
+  <string name="attachproject_error_no_email">이메일 주소를 입력해 주세요</string>
+  <string name="attachproject_error_no_pwd">비밀번호를 입력해 주세요</string>
+  <string name="attachproject_error_no_name">사용자 이름을 입력해 주세요</string>
+  <string name="attachproject_error_unknown">실패</string>
+  <string name="attachproject_error_bad_username">사용자 이름이 거부됨</string>
+  <string name="attachproject_error_email_in_use">이메일 주소가 이미 사용중</string>
+  <string name="attachproject_error_project_down">프로젝트가 오프라인 상태</string>
+  <string name="attachproject_error_email_bad_syntax">이메일 주소가 없거나 틀립니다</string>
+  <string name="attachproject_error_bad_pwd">비밀번호가 틀립니다</string>
+  <string name="attachproject_error_creation_disabled">이 프로젝트는 계정 생성을 할 수 없습니다</string>
+  <string name="attachproject_error_invalid_url">잘못된 URL</string>
+  <string name="attachproject_working_back_button">뒤로</string>
+  <string name="attachproject_working_finish_button">완료</string>
+  <string name="attachproject_working_check_desc">성공</string>
+  <string name="attachproject_working_failed_desc">실패</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">연결</string>
+  <string name="attachproject_working_verify">계정 확인</string>
+  <string name="attachproject_working_register">계정 등록</string>
+  <string name="attachproject_working_login">로그인</string>
+  <string name="attachproject_working_acctmgr">계정 관리자 추가</string>
+  <string name="attachproject_working_acctmgr_sync">동기화</string>
+  <string name="main_noproject_warning">프로젝트를 선택하려면 여기를 누르세요.</string>
+  <string name="main_error">어이쿠</string>
+  <string name="main_error_long">…이 작업이 수행되지 못했어요!\n다시 시도하려면 아이콘을 클릭하세요.</string>
+  <string name="main_title_icon_desc">BOINC 아이콘</string>
+  <string name="tab_status">상태</string>
+  <string name="tab_projects">프로젝트</string>
+  <string name="tab_tasks">태스크</string>
+  <string name="tab_transfers">전송</string>
+  <string name="tab_preferences">환경 설정</string>
+  <string name="tab_notices">알림</string>
+  <string name="tab_desc">안내</string>
+  <string name="status_running">연산중</string>
+  <string name="status_running_long">참여해 주셔서 감사합니다.</string>
+  <string name="status_paused">일시 정지됨</string>
+  <string name="status_idle">아무 것도 안 함</string>
+  <string name="status_idle_long">태스크 대기 중…</string>
+  <string name="status_computing_disabled">일시 정지됨</string>
+  <string name="status_computing_disabled_long">네트워크 및 연산을 재개하려면 실행 버튼을 누르세요.</string>
+  <string name="status_launching">시작중…</string>
+  <string name="status_noproject">참여할 프로젝트를 선택하세요.</string>
+  <string name="status_closing">닫는 중…</string>
+  <string name="status_benchmarking">벤치마크 실행 중…</string>
+  <string name="status_image_description">프로젝트 이미지</string>
+  <string name="prefs_loading">환경 설정을 읽는 중…</string>
+  <string name="prefs_submit_button">저장</string>
+  <string name="prefs_dialog_title">새로운 값을 입력:</string>
+  <string name="prefs_dialog_title_selection">선택:</string>
+  <string name="prefs_category_general">일반</string>
+  <string name="prefs_category_network">네트워크</string>
+  <string name="prefs_category_power">전원</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">저장소</string>
+  <string name="prefs_category_memory">메모리</string>
+  <string name="prefs_category_debug">디버그</string>
+  <string name="prefs_show_advanced_header">고급 환경 설정과 제어판을 보여주기…</string>
+  <string name="battery_charge_min_pct_header">최소 배터리 량</string>
+  <string name="battery_charge_min_pct_description">아래 지정된 배터리 충전량이 되면 BOINC는 연산을 일시 정지합니다.</string>
+  <string name="battery_temperature_max_header">최고 배터리 온도</string>
+  <string name="battery_temperature_max_description">위에 지정된 배터리 온도가 되면 BOINC는 연산을 일시 정지합니다. 이 값을 바꾸지 않길 권장합니다.</string>
+  <string name="prefs_disk_max_pct_header">최대 사용할 저장소 공간</string>
+  <string name="prefs_disk_max_pct_description">저장소 공간 중 몇 %를 BOINC가 사용하길 원하십니까?</string>
+  <string name="prefs_disk_min_free_gb_header">최소로 남겨 둘 용량</string>
+  <string name="prefs_disk_min_free_gb_description">저장소 공간 중 얼만큼 여유 공간으로 남겨두길 원하십니까?</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">하루 전송 제한량</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">하루에 BOINC가 전송할 데이터 제한량</string>
+  <string name="prefs_network_wifi_only_header">WiFi에서만 태스크 전송</string>
+  <string name="prefs_autostart_header">자동 시작</string>
+  <string name="prefs_cpu_number_cpus_header">사용할 CPU 코어 수</string>
+  <string name="prefs_cpu_number_cpus_description">BOINC가 연산에 사용할 CPU 코어 수 제한</string>
+  <string name="prefs_cpu_other_load_suspension_header">CPU 사용량 제한 도달시 정지</string>
+  <string name="prefs_cpu_other_load_suspension_description">다른 앱의 CPU 사용량이 설정치에 도달시 BOINC 연산을 정지합니다.</string>
+  <string name="prefs_cpu_time_max_header">CPU 제한</string>
+  <string name="prefs_cpu_time_max_description">BOINC가 연산에 사용할 CPU 시간을 제한합니다.</string>
+  <string name="prefs_memory_max_idle_header">RAM 제한</string>
+  <string name="prefs_memory_max_idle_description">태스크의 RAM 점유량을 제한합니다.</string>
+  <string name="prefs_client_log_flags_header">BOINC 클라이언트 로그 flags</string>
+  <string name="prefs_gui_log_level_header">GUI 로그 레벨</string>
+  <string name="prefs_gui_log_level_description">GUI 로그 메세지의 상세 정도를 결정해 주세요.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="projects_loading">프로젝트를 불러오는 중…</string>
+  <string name="projects_add">프로젝트 추가</string>
+  <string name="projects_icon">프로젝트 아이콘</string>
+  <string name="projects_credits">크레딧:</string>
+  <string name="projects_credits_host_and_user">%1$,d (해당 장치) %2$,d (전체)</string>
+  <string name="projects_status_suspendedviagui">사용자에 의해 일시 정지됨</string>
+  <string name="projects_status_dontrequestmorework">새 태스크를 원하지 않음</string>
+  <string name="projects_status_ended">프로젝트 종료 - 제거하려면 OK를 누르세요</string>
+  <string name="projects_status_detachwhendone">태스크 완료시 제거될 것입니다</string>
+  <string name="projects_status_schedrpcpending">스케줄러 요청 대기중</string>
+  <string name="projects_status_schedrpcinprogress">스케줄러 요청 처리중</string>
+  <string name="projects_status_trickleuppending">Trickle up 메세지 대기중</string>
+  <string name="projects_status_backoff">예약된 통신 시각:</string>
+  <string name="projects_control_dialog_title">프로젝트 명령:</string>
+  <string name="projects_control_visit_website">웹사이트 방문</string>
+  <string name="projects_control_update">업데이트</string>
+  <string name="projects_control_remove">제거</string>
+  <string name="projects_control_suspend">일시 정지됨</string>
+  <string name="projects_control_resume">재개</string>
+  <string name="projects_control_nonewtasks">새 태스크 금지</string>
+  <string name="projects_control_allownewtasks">새 태스크 허용</string>
+  <string name="projects_control_reset">재설정</string>
+  <string name="projects_control_dialog_title_acctmgr">계정 관리자 명령어:</string>
+  <string name="projects_control_sync_acctmgr">동기화</string>
+  <string name="projects_control_remove_acctmgr">비활성</string>
+  <string name="projects_confirm_detach_title">프로젝트를 제거할까요?</string>
+  <string name="projects_confirm_detach_message">"BOINC상에서 정말로 프로젝트명: "</string>
+  <string name="projects_confirm_detach_message2">를 제거하시겠습니까?</string>
+  <string name="projects_confirm_detach_confirm">제거</string>
+  <string name="projects_confirm_reset_title">프로젝트 재설정</string>
+  <string name="projects_confirm_reset_message">"다음 프로젝트가 재설정됩니다 괘찮습니까: "</string>
+  <string name="projects_confirm_reset_confirm">재설정</string>
+  <string name="projects_confirm_remove_acctmgr_title">계정 관리자 비활성화</string>
+  <string name="projects_confirm_remove_acctmgr_message">정말로 다음 항목 사용을 중지합니까</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">비활성화</string>
+  <string name="tasks_header_name">태스크 이름:</string>
+  <string name="tasks_header_elapsed_time">진행 시간:</string>
+  <string name="tasks_header_project_paused">(일시 정지됨)</string>
+  <string name="tasks_header_deadline">마감 시각:</string>
+  <string name="tasks_result_new">신규</string>
+  <string name="tasks_result_files_downloading">다운로드 대기중</string>
+  <string name="tasks_result_files_downloaded">다운로드 완료</string>
+  <string name="tasks_result_compute_error">연산 오류</string>
+  <string name="tasks_result_files_uploading">업로드 중</string>
+  <string name="tasks_result_files_uploaded">업로드 완료</string>
+  <string name="tasks_result_aborted">중단됨</string>
+  <string name="tasks_result_upload_failed">업로드 실패</string>
+  <string name="tasks_active_uninitialized">준비됨</string>
+  <string name="tasks_active_executing">실행 중</string>
+  <string name="tasks_active_suspended">일시 정지됨</string>
+  <string name="tasks_active_abort_pending">일시 정지 중</string>
+  <string name="tasks_active_quit_pending">일시 정지 중</string>
+  <string name="tasks_custom_suspended_via_gui">일시 정지됨</string>
+  <string name="tasks_custom_project_suspended_via_gui">프로젝트가 일시 정지됨</string>
+  <string name="tasks_custom_ready_to_report">보고 준비 완료</string>
+  <string name="confirm_abort_task_title">태스크를 중단할까요?</string>
+  <string name="confirm_abort_task_message">중단할 태스크:</string>
+  <string name="confirm_abort_task_confirm">중단</string>
+  <string name="confirm_cancel">취소</string>
+  <string name="confirm_image_desc">확인 대화상자</string>
+  <string name="trans_loading">전송 목록 읽는 중…</string>
+  <string name="trans_upload">업로드</string>
+  <string name="trans_download">다운로드</string>
+  <string name="trans_retryin">재시도</string>
+  <string name="trans_failed">실패</string>
+  <string name="trans_suspended">일시 정지됨</string>
+  <string name="trans_active">활성</string>
+  <string name="trans_pending">보류</string>
+  <string name="trans_projectbackoff">프로젝트 재연결</string>
+  <string name="trans_header_name">파일:</string>
+  <string name="trans_control_retry">전송 재시도</string>
+  <string name="confirm_abort_trans_title">전송을 중단할까요?</string>
+  <string name="confirm_abort_trans_message">중단할 파일:</string>
+  <string name="confirm_abort_trans_confirm">중단</string>
+  <string name="notices_loading">공지사항 읽는 중...</string>
+  <string name="eventlog_loading">로그 메세지 읽는 중…</string>
+  <string name="eventlog_client_header">클라이언트 메세지</string>
+  <string name="eventlog_gui_header">GUI 메세지</string>
+  <string name="eventlog_copy_toast">로그가 클립보드에 복사되었습니다.</string>
+  <string name="eventlog_email_subject">안드로이드 상의 BOINC 이벤트 기록:</string>
+  <string name="suspend_unknown">연산이 일시 정지되었습니다.</string>
+  <string name="suspend_batteries">연산을 계속하려면 기기를 충전기에 연결하세요.</string>
+  <string name="suspend_useractive">사용자가 활동을 시작합니다.</string>
+  <string name="suspend_tod">연산 시간 제한을 넘었습니다.</string>
+  <string name="suspend_bm">BOINC에서 벤치마크 실행 중…</string>
+  <string name="suspend_disksize">저장소 공간을 초과했습니다.</string>
+  <string name="suspend_cputhrottle">예약된 CPU 사용량 제한에 도달했습니다.</string>
+  <string name="suspend_noinput">최근 사용자 활동이 없습니다.</string>
+  <string name="suspend_delay">초기화 지연됨.</string>
+  <string name="suspend_exclusiveapp">독점 앱이 실행 중입니다.</string>
+  <string name="suspend_cpu">다른 앱으로 인해 기기가 바쁩니다.</string>
+  <string name="suspend_network_quota">BOINC가 네트워크 전송 제한량에 도달했습니다.</string>
+  <string name="suspend_os">안드로이드에서 정지시킴.</string>
+  <string name="suspend_wifi">WiFi에 연결되지 않았습니다.</string>
+  <string name="suspend_battery_charging">연산을 재개시키기 전에 배터리를 충전해야 합니다.</string>
+  <string name="suspend_battery_charging_long">배터리가 설정량만큼 충전되면 연산이 재개됩니다</string>
+  <string name="suspend_battery_charging_current">현재</string>
+  <string name="suspend_battery_overheating">배터리가 식길 기다리는 중</string>
+  <string name="suspend_user_req">연산 재개 중…</string>
+  <string name="suspend_network_user_req">수동</string>
+  <string name="rpcreason_userreq">사용자가 요청함</string>
+  <string name="rpcreason_needwork">작업 반입</string>
+  <string name="rpcreason_resultsdue">완료된 태스크 보고</string>
+  <string name="rpcreason_trickleup">trickle-up 메세지 전송</string>
+  <string name="rpcreason_acctmgrreq">계정 관리자에서 요청함</string>
+  <string name="rpcreason_init">프로젝트 초기화</string>
+  <string name="rpcreason_projectreq">프로젝트에서 요청함</string>
+  <string name="rpcreason_unknown">알 수 없는 이유</string>
+  <string name="menu_refresh">새로 고침</string>
+  <string name="menu_emailto">이메일로 보내기</string>
+  <string name="menu_copy">클립보드에 복사</string>
+  <string name="menu_eventlog">이벤트 기록</string>
+  <string name="menu_exit">BOINC 종료</string>
+  <string name="menu_run_mode_disable">일시 정지됨</string>
+  <string name="menu_run_mode_enable">재개</string>
+  <string name="menu_about">정보</string>
+  <string name="menu_help">도움말</string>
+  <string name="about_button">뒤로</string>
+  <string name="about_title">정보</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">버전</string>
+  <string name="about_name_long">네트워크 컴퓨팅을 위한 Berkeley 개방형 하부구조체</string>
+  <string name="about_copyright">© 2003–2013 University of California, Berkeley.\nAll Rights Reserved.</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-lv/strings.xml b/android/BOINC/app/src/main/res/values-lv/strings.xml
new file mode 100644
index 0000000..42eba3c
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-lv/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources/>
diff --git a/android/BOINC/app/src/main/res/values-nb/strings.xml b/android/BOINC/app/src/main/res/values-nb/strings.xml
new file mode 100644
index 0000000..42eba3c
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-nb/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources/>
diff --git a/android/BOINC/app/src/main/res/values-nl/strings.xml b/android/BOINC/app/src/main/res/values-nl/strings.xml
new file mode 100644
index 0000000..d9b0cdf
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-nl/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Bezig met laden! Even geduld...</string>
+  <string name="generic_button_continue">Ga verder</string>
+  <string name="generic_button_finish">Voltooien</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Selecteer wetenschappelijke projecten om aan deel te nemen:</string>
+  <string name="attachproject_list_header">Kies een project:</string>
+  <string name="attachproject_list_manual_button">Project toevoegen via URL</string>
+  <string name="attachproject_list_manual_dialog_title">Projectspecifieke URL invoeren:</string>
+  <string name="attachproject_list_manual_dialog_button">Project toevoegen</string>
+  <string name="attachproject_list_manual_no_url">Projectspecifieke URL invoeren</string>
+  <string name="attachproject_list_acctmgr_button">Accountmanager toevoegen</string>
+  <string name="attachproject_list_no_internet">Geen internetverbinding</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Vul account informatie in</string>
+  <string name="attachproject_credential_input_desc">Vul account informatie in voor geselecteerde projecten:</string>
+  <string name="attachproject_credential_input_show_pwd">Laat wachtwoord zien</string>
+  <string name="attachproject_individual_credential_input">Voeg projecten apart toe</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Er zijn problemen met toevoegen van volgende projecten:</string>
+  <string name="attachproject_conflict_undefined">Verbinding mislukt</string>
+  <string name="attachproject_conflict_not_unique">Account bestaat met ander wachtwoord</string>
+  <string name="attachproject_conflict_bad_password">Foutief wachtwoord</string>
+  <string name="attachproject_conflict_unknown_user">Account bestaat niet</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Account bestaat niet, bezoek projectwebsite om te registreren</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Toevoegen</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Hint</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Hoe deel te nemen;</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Verbind met WIFI</string>
+  <string name="attachproject_hint_contribtion_charger">2. Oplader aansluiten</string>
+  <string name="attachproject_hint_contribtion_screen">3. Scherm uitzetten</string>
+  <string name="attachproject_hint_projectwebsite_header">Bezoek project website om:</string>
+  <string name="attachproject_hint_projectwebsite_science">Leer meer over de wetenschap</string>
+  <string name="attachproject_hint_projectwebsite_stats">Bekijk de gebruikers statistieken</string>
+  <string name="attachproject_hint_projectwebsite_community">In contact te komen met andere vrijwiligers</string>
+  <string name="attachproject_hint_platforms_header">BOINC is ook beschikbaar voor je computer of laptop, bezoek boinc.berkeley.edu voor meer informatie.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Verbinding maken met projectspecifieke server...</string>
+  <string name="attachproject_login_image_description">Project logo.</string>
+  <string name="attachproject_login_header_general_area">Vakgebied:</string>
+  <string name="attachproject_login_header_specific_area">Specifiek vakgebied:</string>
+  <string name="attachproject_login_header_description">Omschrijving:</string>
+  <string name="attachproject_login_header_home">Start:</string>
+  <string name="attachproject_login_header_url">Website:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Dit project ondersteunt Android-apparaten</string>
+  <string name="attachproject_login_platform_not_supported">Dit project ondersteunt geen Android-apparaten</string>
+  <string name="attachproject_login_category_terms_of_use">Gebruiksvoorwaarden voor</string>
+  <string name="attachproject_login_accept_terms_of_use">Het aanmaken van een account bij dit project impliceert acceptatie van de gebruiksvoorwaarden zoals hierboven beschreven.</string>
+  <string name="attachproject_login_category_login">Aanmeldgegevens van bestaand account gebruiken</string>
+  <string name="attachproject_login_header_id_email">E-mailadres:</string>
+  <string name="attachproject_login_header_id_name">Naam:</string>
+  <string name="attachproject_login_header_pwd">Wachtwoord:</string>
+  <string name="attachproject_login_category_creation">Nieuw bij</string>
+  <string name="attachproject_login_header_creation_enabled">Een account aanmaken voor deelname:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Bezoek projectspecifieke website om een account aan te maken:</string>
+  <string name="attachproject_login_header_creation_disabled">Het project accepteert op dit moment geen nieuwe accounts.</string>
+  <string name="attachproject_login_button_registration">Aanmaken</string>
+  <string name="attachproject_login_button_login">Aanmelden</string>
+  <string name="attachproject_login_button_forgotpw">Wachtwoord Vergeten</string>
+  <string name="attachproject_login_error_toast">Verbinding met het project mislukt!</string>
+  <string name="attachproject_login_attached">Bijgevoegd</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Account-registratie voor</string>
+  <string name="attachproject_registration_header_url">Project:</string>
+  <string name="attachproject_registration_header_email">E-mailadres:</string>
+  <string name="attachproject_registration_header_username">Naam:</string>
+  <string name="attachproject_registration_header_teamname">Team:</string>
+  <string name="attachproject_registration_header_pwd">Wachtwoord:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... Herhalen:</string>
+  <string name="attachproject_registration_button">Aanmaken</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Gebruik BOINC account manager om meerdere projecten te onderhouden</string>
+  <string name="attachproject_acctmgr_header">Account manager toevoegen</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Gebruiker:</string>
+  <string name="attachproject_acctmgr_header_pwd">Wachtwoord:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Herhalen:</string>
+  <string name="attachproject_acctmgr_button">Toevoegen</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Gebruiker niet gevonden</string>
+  <string name="attachproject_error_short_pwd">Het wachtwoord is te kort</string>
+  <string name="attachproject_error_no_internet">Verbinding mislukt</string>
+  <string name="attachproject_error_pwd_no_match">Wachtwoorden zijn niet identiek</string>
+  <string name="attachproject_error_pwd_no_retype">Vul wachtwoord opnieuw in</string>
+  <string name="attachproject_error_no_url">Vul a.u.b. URL in</string>
+  <string name="attachproject_error_no_email">Voer uw e-mailadres in</string>
+  <string name="attachproject_error_no_pwd">Voer een wachtwoord in</string>
+  <string name="attachproject_error_no_name">Voer gebruikersnaam in</string>
+  <string name="attachproject_error_unknown">mislukt</string>
+  <string name="attachproject_error_bad_username">Gebruikersnaam geweigerd</string>
+  <string name="attachproject_error_email_in_use">E-mailadres is al in gebruik</string>
+  <string name="attachproject_error_project_down">Project is offline</string>
+  <string name="attachproject_error_email_bad_syntax">E-mailadres geweigerd</string>
+  <string name="attachproject_error_bad_pwd">Wachtwoord geweigerd</string>
+  <string name="attachproject_error_creation_disabled">Aanmaken van een account is voor dit project niet mogelijk</string>
+  <string name="attachproject_error_invalid_url">Ongeldig URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Vorige</string>
+  <string name="attachproject_working_finish_button">Voltooien</string>
+  <string name="attachproject_working_check_desc">Geslaagd</string>
+  <string name="attachproject_working_failed_desc">Mislukt</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Verbinden</string>
+  <string name="attachproject_working_verify">Account verifiëren</string>
+  <string name="attachproject_working_register">Account registreren</string>
+  <string name="attachproject_working_login">Aanmelden</string>
+  <string name="attachproject_working_acctmgr">Account manager toevoegen</string>
+  <string name="attachproject_working_acctmgr_sync">Bijwerken</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Tik hier om een project te kiezen.</string>
+  <string name="main_error">Oeps</string>
+  <string name="main_error_long">...dit hoort niet te gebeuren!\nKlik op het icoontje om het opneuw te proberen.</string>
+  <string name="main_title_icon_desc">BOINC-icoon</string>
+  <!--tab names-->
+  <string name="tab_status">Status</string>
+  <string name="tab_projects">Projecten</string>
+  <string name="tab_tasks">Taken</string>
+  <string name="tab_transfers">Overdrachten</string>
+  <string name="tab_preferences">Voorkeursinstellingen</string>
+  <string name="tab_notices">Berichten</string>
+  <string name="tab_desc">Navigatie</string>
+  <!--status strings-->
+  <string name="status_running">Berekenen</string>
+  <string name="status_running_long">Dank u voor uw deelname.</string>
+  <string name="status_paused">Onderbroken</string>
+  <string name="status_idle">Niets te doen</string>
+  <string name="status_idle_long">Wachten op taaktoewijzing...</string>
+  <string name="status_computing_disabled">Onderbroken</string>
+  <string name="status_computing_disabled_long">Klik op afspelen om de netwerkactiviteit en de berekeningen te hervatten.</string>
+  <string name="status_launching">Opstarten...</string>
+  <string name="status_noproject">Kies een project om aan deel te nemen.</string>
+  <string name="status_closing">Bezig met afsluiten…</string>
+  <string name="status_benchmarking">Bezig met benchmark...</string>
+  <string name="status_image_description">project afbeelding</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Voorkeuren inlezen...</string>
+  <string name="prefs_submit_button">Opslaan</string>
+  <string name="prefs_dialog_title">Voer nieuwe waarde in:</string>
+  <string name="prefs_dialog_title_selection">Selecteer:</string>
+  <string name="prefs_category_general">Algemeen</string>
+  <string name="prefs_category_network">Netwerk</string>
+  <string name="prefs_category_power">Energie</string>
+  <string name="prefs_category_cpu">Processor</string>
+  <string name="prefs_category_storage">Opslag</string>
+  <string name="prefs_category_memory">Geheugen</string>
+  <string name="prefs_category_debug">Foutoplossing</string>
+  <string name="prefs_show_advanced_header">Toon geavanceerde voorkeuren en instellingen...</string>
+  <string name="prefs_suspend_when_screen_on">Pauzeer berekening wanneer scherm ingeschakeld is</string>
+  <string name="prefs_stationary_device_mode_header">Stationaire apparaatmodus</string>
+  <string name="prefs_stationary_device_mode_description">Staat berekening toe ongeacht stroom voorkeuren. Alleen inschakelen als het apparaat niet over een batterij beschikt.</string>
+  <string name="prefs_power_source_header">Stroombronnen voor berekeningen</string>
+  <string name="prefs_power_source_description">Hiermee selecteert u stroombronnen die BOINC mag gebruiken voor berekeningen.</string>
+  <string name="prefs_power_source_ac">Wandcontactdoos</string>
+  <string name="prefs_power_source_usb">USB verbinding</string>
+  <string name="prefs_power_source_wireless">Draadloze oplader</string>
+  <string name="prefs_power_source_battery">Accu</string>
+  <string name="battery_charge_min_pct_header">Min. batterijniveau</string>
+  <string name="battery_charge_min_pct_description">BOINC pauzeert de berekening wanneer de batterijlading onder een gegeven niveau zakt.</string>
+  <string name="battery_temperature_max_header">Max. batterij temperatuur</string>
+  <string name="battery_temperature_max_description">BOINC stopt met bereken boven de aangegeven batterij temperatuur. Het is niet aanbevolen om deze waarde te wijzigen.</string>
+  <string name="prefs_disk_max_pct_header">Max. gebruikte opslagruimte</string>
+  <string name="prefs_disk_max_pct_description">Welk percentage opslagruimte mag BOINC gebruiken op dit apparaat?</string>
+  <string name="prefs_disk_min_free_gb_header">Min. reserve opslagruimte</string>
+  <string name="prefs_disk_min_free_gb_description">Hoeveel van de opslagruimte moet er minimaal vrij blijven?</string>
+  <string name="prefs_disk_access_interval_header">Toegangs interval</string>
+  <string name="prefs_disk_access_interval_description">Suggereert een interval bij schijf gebruik</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Dagelijkse overdracht limiet</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Beperkt het dagelijkse dataverkeer van BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Taken alleen bijwerken via WiFi</string>
+  <string name="prefs_autostart_header">Autostart</string>
+  <string name="prefs_show_notification_notices_header">Melding weergeven voor nieuwe berichten</string>
+  <string name="prefs_show_notification_suspended_header">Melding weergeven wanneer gepauzeerd</string>
+  <string name="prefs_cpu_number_cpus_header">Gebruikte CPU cores</string>
+  <string name="prefs_cpu_number_cpus_description">Beperkt het aantal gebruikte CPU cores voor BOINC berekeningen.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pauzeer bij CPU gebruik van meer dan</string>
+  <string name="prefs_cpu_other_load_suspension_description">Bepaald wanneer BOINC pauzeert vanwege CPU gebruik door andere apps.</string>
+  <string name="prefs_cpu_time_max_header">CPU limiet</string>
+  <string name="prefs_cpu_time_max_description">Beperkt de CPU tijd gebruikt door BOINC voor berekeningen.</string>
+  <string name="prefs_memory_max_idle_header">Geheugen limiet</string>
+  <string name="prefs_memory_max_idle_description">Beperkt de gebruikte hoeveelheid geheugen gebruikt door taken.</string>
+  <string name="prefs_client_log_flags_header">BOINC Client log tekens</string>
+  <string name="prefs_gui_log_level_header">GUI log level</string>
+  <string name="prefs_gui_log_level_description">Specificeert uitgebreidheid van GUI log berichten.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">seconden</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Projecten inlezen...</string>
+  <string name="projects_add">Project toevoegen</string>
+  <string name="projects_icon">Project icoon</string>
+  <string name="projects_credits">Punten:</string>
+  <string name="projects_credits_host_and_user">%1$,d (op dit apparaat) %2$,d (totaal)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Onderbroken door gebruiker</string>
+  <string name="projects_status_dontrequestmorework">Krijgt geen nieuwe taken</string>
+  <string name="projects_status_ended">Project beëindigd - OK om te verwijderen </string>
+  <string name="projects_status_detachwhendone">Wordt verwijderd als taken klaar zijn</string>
+  <string name="projects_status_schedrpcpending">Bijwerkverzoek in behandeling</string>
+  <string name="projects_status_schedrpcinprogress">Bijwerkverzoek is bezig</string>
+  <string name="projects_status_trickleuppending">Trickle up bericht in behandeling</string>
+  <string name="projects_status_backoff">Communicatie gepland over:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Project opdrachten:</string>
+  <string name="projects_control_visit_website">Bezoek website</string>
+  <string name="projects_control_update">Bijwerken</string>
+  <string name="projects_control_remove">Verwijderen</string>
+  <string name="projects_control_suspend">Pauzeren</string>
+  <string name="projects_control_resume">Hervatten</string>
+  <string name="projects_control_nonewtasks">Geen nieuwe taken</string>
+  <string name="projects_control_allownewtasks">Nieuwe taken toestaan</string>
+  <string name="projects_control_reset">Resetten</string>
+  <string name="projects_control_dialog_title_acctmgr">Accountmanager opdrachten:</string>
+  <string name="projects_control_sync_acctmgr">Bijwerken</string>
+  <string name="projects_control_remove_acctmgr">Uitzetten</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Project verwijderen?</string>
+  <string name="projects_confirm_detach_message">Weet je zeker dat je</string>
+  <string name="projects_confirm_detach_message2">uit BOINC wilt verwijderen?</string>
+  <string name="projects_confirm_detach_confirm">Verwijderen</string>
+  <string name="projects_confirm_reset_title">Project resetten</string>
+  <string name="projects_confirm_reset_message">Weet je zeker dat je</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Resetten</string>
+  <string name="projects_confirm_remove_acctmgr_title">Accountmanager uitzetten</string>
+  <string name="projects_confirm_remove_acctmgr_message">Weet je zeker dat je wilt stoppen met het gebruik van</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Uitzetten</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Taaknaam:</string>
+  <string name="tasks_header_elapsed_time">Verstreken tijd: </string>
+  <string name="tasks_header_project_paused">(onderbroken)</string>
+  <string name="tasks_header_deadline">Deadline:</string>
+  <string name="tasks_result_new">nieuw</string>
+  <string name="tasks_result_files_downloading">wacht op downloaden</string>
+  <string name="tasks_result_files_downloaded">downloaden voltooid</string>
+  <string name="tasks_result_compute_error">verwerkingsfout</string>
+  <string name="tasks_result_files_uploading">uploaden</string>
+  <string name="tasks_result_files_uploaded">uploaden voltooid</string>
+  <string name="tasks_result_aborted">afgebroken</string>
+  <string name="tasks_result_upload_failed">uploaden mislukt</string>
+  <string name="tasks_active_uninitialized">voltooid</string>
+  <string name="tasks_active_executing">loopt</string>
+  <string name="tasks_active_suspended">onderbroken</string>
+  <string name="tasks_active_abort_pending">onderbreken</string>
+  <string name="tasks_active_quit_pending">onderbreken</string>
+  <string name="tasks_custom_suspended_via_gui">onderbroken</string>
+  <string name="tasks_custom_project_suspended_via_gui">project onderbroken</string>
+  <string name="tasks_custom_ready_to_report">klaar om te rapporteren</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Taak afbreken?</string>
+  <string name="confirm_abort_task_message">Taak afbreken:</string>
+  <string name="confirm_abort_task_confirm">Afbreken</string>
+  <string name="confirm_cancel">Annuleren</string>
+  <string name="confirm_image_desc">Bevestigingsdialoog</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Overdracht inlezen...</string>
+  <string name="trans_upload">Upload</string>
+  <string name="trans_download">Download</string>
+  <string name="trans_retryin">opnieuw over</string>
+  <string name="trans_failed">mislukt</string>
+  <string name="trans_suspended">onderbroken</string>
+  <string name="trans_active">actief</string>
+  <string name="trans_pending">in behandeling</string>
+  <string name="trans_projectbackoff">project wachttijd</string>
+  <string name="trans_header_name">Bestand:</string>
+  <string name="trans_control_retry">Opnieuw verzenden</string>
+  <string name="confirm_abort_trans_title">Overdracht afbreken?</string>
+  <string name="confirm_abort_trans_message">Bestand afbreken:</string>
+  <string name="confirm_abort_trans_confirm">Afbreken</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Berichten inlezen...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Log berichten laden...</string>
+  <string name="eventlog_client_header">Berichten van Cliënt</string>
+  <string name="eventlog_gui_header">GUI berichten</string>
+  <string name="eventlog_copy_toast">Log naar klembord gekopieerd.</string>
+  <string name="eventlog_email_subject">Logberichten voor BOINC op Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Bewerking onderbroken.</string>
+  <string name="suspend_batteries">Verbind het apparaat met een oplader om verder te gaan.</string>
+  <string name="suspend_screen_on">Scherm uitschakelen om met berekeningen door te gaan.</string>
+  <string name="suspend_useractive">Gebruiker is actief.</string>
+  <string name="suspend_tod">Niet binnen berekenings-tijdsbestek.</string>
+  <string name="suspend_bm">BOINC benchmarkt je apparaat…</string>
+  <string name="suspend_disksize">Geen vrije schijfruimte over.</string>
+  <string name="suspend_cputhrottle">Geplande CPU beperking.</string>
+  <string name="suspend_noinput">Geen recente gebruikers activiteit.</string>
+  <string name="suspend_delay">Initialiseren vertraagd.</string>
+  <string name="suspend_exclusiveapp">Er wordt een exclusieve app uitgevoerd.</string>
+  <string name="suspend_cpu">Apparaat is bezig met andere apps.</string>
+  <string name="suspend_network_quota">BOINC transfer limiet is bereikt.</string>
+  <string name="suspend_os">Gestopt door Android.</string>
+  <string name="suspend_wifi">Niet verbonden met WiFi.</string>
+  <string name="suspend_battery_charging">Wachten op laden van batterij.</string>
+  <string name="suspend_battery_charging_long">Berekeningen worden hervat op batterij niveau van</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">huidig</string>
+  <string name="suspend_battery_overheating">Wacht op afkoelen batterij</string>
+  <string name="suspend_user_req">Berekeningen hervatten...</string>
+  <string name="suspend_network_user_req">handmatig.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Op verzoek van gebruiker</string>
+  <string name="rpcreason_needwork">Om werk te verkrijgen</string>
+  <string name="rpcreason_resultsdue">Om taken te rapporteren</string>
+  <string name="rpcreason_trickleup">Om trickle-up berichten te verzenden</string>
+  <string name="rpcreason_acctmgrreq">Op verzoek van accountmanager</string>
+  <string name="rpcreason_init">Project instellen</string>
+  <string name="rpcreason_projectreq">Op verzoek van project</string>
+  <string name="rpcreason_unknown">Onbekende reden</string>
+  <!--menu-->
+  <string name="menu_refresh">Ververs</string>
+  <string name="menu_emailto">Verzend als email</string>
+  <string name="menu_copy">Naar klembord kopiëren</string>
+  <string name="menu_eventlog">Gebeurtenis Log</string>
+  <string name="menu_exit">BOINC afsluiten</string>
+  <string name="menu_run_mode_disable">Onderbreek</string>
+  <string name="menu_run_mode_enable">Hervatten</string>
+  <string name="menu_about">Over</string>
+  <string name="menu_help">Help</string>
+  <!--about dialog-->
+  <string name="about_button">Terug</string>
+  <string name="about_title">Over</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versie</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 Universiteit van Californië, Berkeley</string>
+  <string name="about_copyright_reserved">Alle rechten voorbehouden.</string>
+  <string name="about_credits">Met dank aan het Max Planck Instituut voor gravitationele natuurkunde, IBM Corporation en HTC Corporation voor hun steun.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nieuwe berichten van %1$s</item>
+    <item quantity="other">%2$,d nieuwe berichten</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Andere berekenings app gedetecteerd</string>
+  <string name="nonexcl_dialog_text">Een andere berekenings app draait op dit apparaat. Slechts één versie kan per keer worden uitgevoerd.</string>
+  <string name="nonexcl_dialog_exit">Afsluiten</string>
+  <!--social integration-->
+  <string name="social_invite_button">Vrienden uitnodigen</string>
+  <string name="social_invite_intent_title">Hoe wilt u dit delen?</string>
+  <string name="social_invite_content_title">Ik doe wetenschap op mijn smartphone!</string>
+  <string name="social_invite_content_body">Ik doe met behulp van mijn %1$s berekeningen voor de wetenschap. Doe dit ook! Download app van: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-pl/strings.xml b/android/BOINC/app/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000..7279a40
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-pl/strings.xml
@@ -0,0 +1,359 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Ładowanie! Proszę czekać…</string>
+  <string name="generic_button_continue">Kontynuuj</string>
+  <string name="generic_button_finish">Zakończ</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Wybierz projekty naukowe, do których chcesz się przyczynić:</string>
+  <string name="attachproject_list_header">Wybór projektu</string>
+  <string name="attachproject_list_manual_button">Dodaj URL projektu</string>
+  <string name="attachproject_list_manual_dialog_title">Wprowadź URL projektu:</string>
+  <string name="attachproject_list_manual_dialog_button">Dodaj projekt</string>
+  <string name="attachproject_list_manual_no_url">Proszę wprowadź URL projektu</string>
+  <string name="attachproject_list_acctmgr_button">Dodaj zarządce kont</string>
+  <string name="attachproject_list_no_internet">Brak połączenia z internetem</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Wprowadź informacje konta</string>
+  <string name="attachproject_credential_input_desc">Wprowadź informacje konta dla wybranych projektów:</string>
+  <string name="attachproject_credential_input_show_pwd">Pokaż hasło</string>
+  <string name="attachproject_individual_credential_input">Załącz projekty osobno</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">W trakcie załączania projektów naukowych pojawiły się problemy:</string>
+  <string name="attachproject_conflict_undefined">Nie można się połączyć</string>
+  <string name="attachproject_conflict_not_unique">Konto już istnieje</string>
+  <string name="attachproject_conflict_bad_password">Nieprawidłowe hasło</string>
+  <string name="attachproject_conflict_unknown_user">Konto nie istnieje</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Konto nie istnieje.\nWejdź na witrynę internetową projektu aby się zarejestrować.</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Załączanie</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Wskazówka</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Jak się przyczyniać:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Podłącz się do sieci Wi-Fi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Przypnij ładowarkę</string>
+  <string name="attachproject_hint_contribtion_screen">3. Wyłącz ekran</string>
+  <string name="attachproject_hint_projectwebsite_header">Wejdź na witrynę internetową projektu aby:</string>
+  <string name="attachproject_hint_projectwebsite_science">Dowiedzieć się więcej o zagadnieniu naukowym</string>
+  <string name="attachproject_hint_projectwebsite_stats">Przeglądać statystyki przyczynienia</string>
+  <string name="attachproject_hint_projectwebsite_community">Skontaktować się z innymi wolontariuszami</string>
+  <string name="attachproject_hint_platforms_header">BOINC jest zarówno dostępny na Twój komputer lub laptop.\nWejdź na boinc.berkeley.edu aby dowiedzieć się więcej.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Kontaktowanie serwera projektu…</string>
+  <string name="attachproject_login_image_description">Logo projektu</string>
+  <string name="attachproject_login_header_general_area">Dziedzina ogólna:</string>
+  <string name="attachproject_login_header_specific_area">Dziedzina szczególna:</string>
+  <string name="attachproject_login_header_description">Opis:</string>
+  <string name="attachproject_login_header_home">Realizator projektu:</string>
+  <string name="attachproject_login_header_url">Witryna internetowa:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Projekt obsługuje urządzenia tego typu.</string>
+  <string name="attachproject_login_platform_not_supported">Projekt nie obsługuje urządzenia tego typu.</string>
+  <string name="attachproject_login_category_terms_of_use">Warunki korzystania</string>
+  <string name="attachproject_login_accept_terms_of_use">Tworząc nowe konto w tym projekcie, akceptujesz powyższe warunki korzystania.</string>
+  <string name="attachproject_login_category_login">Logowanie kontem istniejącym</string>
+  <string name="attachproject_login_header_id_email">E-mail:</string>
+  <string name="attachproject_login_header_id_name">Nazwa:</string>
+  <string name="attachproject_login_header_pwd">Hasło:</string>
+  <string name="attachproject_login_category_creation">Nowe w</string>
+  <string name="attachproject_login_header_creation_enabled">Zarejestruj się aby brać udział:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Wejdź na witrynę internetową projektu aby utworzyć konto:</string>
+  <string name="attachproject_login_header_creation_disabled">Aktualnie, projekt nie tworzy nowych kont.</string>
+  <string name="attachproject_login_button_registration">Zarejestruj</string>
+  <string name="attachproject_login_button_login">Zaloguj</string>
+  <string name="attachproject_login_button_forgotpw">Przypomnij hasło</string>
+  <string name="attachproject_login_error_toast">Kontaktowanie projektu się nie powiodło!</string>
+  <string name="attachproject_login_attached">Załączono</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Rejestracja konta w</string>
+  <string name="attachproject_registration_header_url">Projekt:</string>
+  <string name="attachproject_registration_header_email">E-mail:</string>
+  <string name="attachproject_registration_header_username">Nazwa:</string>
+  <string name="attachproject_registration_header_teamname">Zespół:</string>
+  <string name="attachproject_registration_header_pwd">Hasło:</string>
+  <string name="attachproject_registration_header_pwd_confirm">Potwierdzenie hasła:</string>
+  <string name="attachproject_registration_button">Utwórz</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Posługuj się zarządcą kont BOINC, aby dodawać projekty i nimi zarządzać</string>
+  <string name="attachproject_acctmgr_header">Dodawanie zarządcy kont</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Użytkownik:</string>
+  <string name="attachproject_acctmgr_header_pwd">Hasło:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">Potwierdzenie hasła:</string>
+  <string name="attachproject_acctmgr_button">Dodaj</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Nie znaleziono użytkownika</string>
+  <string name="attachproject_error_short_pwd">Hasło za krótkie</string>
+  <string name="attachproject_error_no_internet">Nie udało się połączyć</string>
+  <string name="attachproject_error_pwd_no_match">Hasła się różnią</string>
+  <string name="attachproject_error_pwd_no_retype">Wprowadź hasło ponownie</string>
+  <string name="attachproject_error_no_url">Wprowadź URL</string>
+  <string name="attachproject_error_no_email">Wprowadź adres e-mail</string>
+  <string name="attachproject_error_no_pwd">Wprowadź hasło</string>
+  <string name="attachproject_error_no_name">Wprowadź nazwę użytkownika</string>
+  <string name="attachproject_error_unknown">Brak powodzenia</string>
+  <string name="attachproject_error_bad_username">Odrzucono nazwę użytkownika</string>
+  <string name="attachproject_error_email_in_use">Adres e-mail już w użytku</string>
+  <string name="attachproject_error_project_down">Projekt nieczynny</string>
+  <string name="attachproject_error_email_bad_syntax">Odrzucono adres e-mail</string>
+  <string name="attachproject_error_bad_pwd">Odrzucono hasło</string>
+  <string name="attachproject_error_creation_disabled">Tworzenie kont w tym projekcie zostało wyłączone.</string>
+  <string name="attachproject_error_invalid_url">Niepoprawny URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Wróć</string>
+  <string name="attachproject_working_finish_button">Zakończ</string>
+  <string name="attachproject_working_check_desc">Pomyślne</string>
+  <string name="attachproject_working_failed_desc">Zawiodło</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Łączenie</string>
+  <string name="attachproject_working_verify">Sprawdzanie konta</string>
+  <string name="attachproject_working_register">Zakładanie konta</string>
+  <string name="attachproject_working_login">Logowanie</string>
+  <string name="attachproject_working_acctmgr">Dodawanie zarządcy konta</string>
+  <string name="attachproject_working_acctmgr_sync">Synchronizowanie</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Klepnij tu, aby wybrać projekt.</string>
+  <string name="main_error">Ojojoj</string>
+  <string name="main_error_long">... to nie powinno się zdarzyć!\nKliknij na symbol aby spróbować ponownie.</string>
+  <string name="main_title_icon_desc">Symbol BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Status</string>
+  <string name="tab_projects">Projekty</string>
+  <string name="tab_tasks">Zadania</string>
+  <string name="tab_transfers">Przekazy</string>
+  <string name="tab_preferences">Preferencje</string>
+  <string name="tab_notices">Wiadomości</string>
+  <string name="tab_desc">Nawigacja</string>
+  <!--status strings-->
+  <string name="status_running">Obliczanie</string>
+  <string name="status_running_long">Dziękujemy że się przyczyniasz.</string>
+  <string name="status_paused">Zawieszone</string>
+  <string name="status_idle">Nic do roboty</string>
+  <string name="status_idle_long">Czekanie na zadania…</string>
+  <string name="status_computing_disabled">Zawieszone</string>
+  <string name="status_computing_disabled_long">Naciśnij „wznów” aby wznowić aktywność sieci i obliczenia.</string>
+  <string name="status_launching">Rozpoczynanie…</string>
+  <string name="status_noproject">Wybierz projekt w którym chcesz brać udział.</string>
+  <string name="status_closing">Zamykanie…</string>
+  <string name="status_benchmarking">Mierzenie mocy obliczeniowej…</string>
+  <string name="status_image_description">Wizerunek projektu</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Wczytywanie preferencji…</string>
+  <string name="prefs_submit_button">Zapisz</string>
+  <string name="prefs_dialog_title">Wprowadź wartość</string>
+  <string name="prefs_dialog_title_selection">Wybierz</string>
+  <string name="prefs_category_general">Ogólne</string>
+  <string name="prefs_category_network">Sieć</string>
+  <string name="prefs_category_power">Zasilanie</string>
+  <string name="prefs_category_cpu">Procesor główny</string>
+  <string name="prefs_category_storage">Pamięć stała</string>
+  <string name="prefs_category_memory">Pamięć robocza</string>
+  <string name="prefs_category_debug">Usuwanie błędów</string>
+  <string name="prefs_show_advanced_header">Pokaż zaawansowane preferencje i kontrolki…</string>
+  <string name="prefs_suspend_when_screen_on">Wstrzymuj obliczenia gdy ekran jest włączony</string>
+  <string name="prefs_stationary_device_mode_header">Tryb urządzenia stacjonarnego</string>
+  <string name="prefs_stationary_device_mode_description">Zezwala na wykonywanie obliczeń niezależnie od preferencji zasilania.\nWłączać wyłącznie jeśli urządzenie nie posiada akumulatora.</string>
+  <string name="prefs_power_source_header">Źródła zasilania podczas obliczeń</string>
+  <string name="prefs_power_source_description">Ustala źródło zasilania, które BOINC może używać do obliczeń.</string>
+  <string name="prefs_power_source_ac">Gniazdo elektryczne</string>
+  <string name="prefs_power_source_usb">Przypięcie USB</string>
+  <string name="prefs_power_source_wireless">Ładowarka bezprzewodowa</string>
+  <string name="prefs_power_source_battery">Akumulator</string>
+  <string name="battery_charge_min_pct_header">Minimalny poziom załadowania akumulatora</string>
+  <string name="battery_charge_min_pct_description">BOINC zawiesza wykonywanie obliczeń poniżej tego poziomu załadowania akumulatora.</string>
+  <string name="battery_temperature_max_header">Maksymalna temperatura akumulatora</string>
+  <string name="battery_temperature_max_description">BOINC zawiesza wykonywanie obliczeń, jeśli temperatura akumulatora przekroczy tą temperaturę. Nie zaleca się zmian tej wartości.</string>
+  <string name="prefs_disk_max_pct_header">Maksymalny rozmiar pamięci stałej</string>
+  <string name="prefs_disk_max_pct_description">Określa procentowy rozmiar pamięci stałej urządzenia który BOINC może używać.</string>
+  <string name="prefs_disk_min_free_gb_header">Minimalny wolny rozmiar pamięci stałej</string>
+  <string name="prefs_disk_min_free_gb_description">Określa rozmiar pamięci stałej, który ma pozostać wolny.</string>
+  <string name="prefs_disk_access_interval_header">Częstotliwość sięgania</string>
+  <string name="prefs_disk_access_interval_description">Określa jak często BOINC sięga do pamięci stałej.</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Ograniczenie dziennego przekazu</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Ogranicza rozmiar danych przekazywanych dziennie przez BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Przekazuj zadania wyłącznie siecią Wi-Fi</string>
+  <string name="prefs_autostart_header">Autostart</string>
+  <string name="prefs_show_notification_notices_header">Pokazuj powiadomienia o nowych wiadomościach</string>
+  <string name="prefs_show_notification_suspended_header">Pokazuj powiadomienia gdy urządzenie jest uśpione</string>
+  <string name="prefs_cpu_number_cpus_header">Wykorzystanie rdzeni procesora głównego</string>
+  <string name="prefs_cpu_number_cpus_description">Ogranicza ilość rdzeni procesora głównego, które BOINC może używać do obliczeń.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Wstrzymanie obliczeń gdy użytkowanie procesora głównego przewyższa</string>
+  <string name="prefs_cpu_other_load_suspension_description">Określa poziom użytkowania procesora głównego przez inne aplikacje powyżej którego BOINC wstrzymuje wykonywanie obliczeń.</string>
+  <string name="prefs_cpu_time_max_header">Maksymalny czas procesora głównego</string>
+  <string name="prefs_cpu_time_max_description">Ogranicza czas procesora głównego, który BOINC może używać do obliczeń.</string>
+  <string name="prefs_memory_max_idle_header">Maksymalny rozmiar pamięci roboczej</string>
+  <string name="prefs_memory_max_idle_description">Ogranicza rozmiar pamięci roboczej, który zadania mogą zajmować.</string>
+  <string name="prefs_client_log_flags_header">Ustawiania dziennika klienta BOINC</string>
+  <string name="prefs_gui_log_level_header">Poziom dziennikowania w powłoce graficznej</string>
+  <string name="prefs_gui_log_level_description">Określa szczegółowość komunikatów diennikowania w powłoce graficznej.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">s</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Wczytywanie projektu…</string>
+  <string name="projects_add">Dodaj projekt</string>
+  <string name="projects_icon">Symbol projektu</string>
+  <string name="projects_credits">Punkty:</string>
+  <string name="projects_credits_host_and_user">%1$,d (zebrane tym urządzeniem), %2$,d (razem)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Zawieszony przez użytkownika</string>
+  <string name="projects_status_dontrequestmorework">Nie pobiera zadań</string>
+  <string name="projects_status_ended">Projekt zakończony. Można go usunąć.</string>
+  <string name="projects_status_detachwhendone">Zostanie usunięty po wykonaniu zadań</string>
+  <string name="projects_status_schedrpcpending">Oczekuje odpowiedzi na żądanie planisty</string>
+  <string name="projects_status_schedrpcinprogress">Oczekuje przetworzenia żądania planisty</string>
+  <string name="projects_status_trickleuppending">Oczekuje wiadomość bąbelkową</string>
+  <string name="projects_status_backoff">Oczekuje komunikacji za:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Polecenia projektowe</string>
+  <string name="projects_control_visit_website">Przejdź do witryny internetowej</string>
+  <string name="projects_control_update">Aktualizuj</string>
+  <string name="projects_control_remove">Usuń</string>
+  <string name="projects_control_suspend">Zawieś</string>
+  <string name="projects_control_resume">Wznów</string>
+  <string name="projects_control_nonewtasks">Nie pobieraj zadań</string>
+  <string name="projects_control_allownewtasks">Pobieraj nowe zadania</string>
+  <string name="projects_control_reset">Wyzeruj</string>
+  <string name="projects_control_dialog_title_acctmgr">Polecenia zarządcy kontami</string>
+  <string name="projects_control_sync_acctmgr">Synchronizuj</string>
+  <string name="projects_control_remove_acctmgr">Wyłącz</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Usuwanie projektu</string>
+  <string name="projects_confirm_detach_message">Czy na pewno chcesz usunąć</string>
+  <string name="projects_confirm_detach_message2">z BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Usuń</string>
+  <string name="projects_confirm_reset_title">Wyzerowanie projektu</string>
+  <string name="projects_confirm_reset_message">Czy na pewno chcesz wyzerować</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Wyzeruj</string>
+  <string name="projects_confirm_remove_acctmgr_title">Wyłączenie zarządcy kont</string>
+  <string name="projects_confirm_remove_acctmgr_message">Czy na pewno chcesz przestać używać</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Wyłącz</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nazwa zadania:</string>
+  <string name="tasks_header_elapsed_time">Czas obliczeń:</string>
+  <string name="tasks_header_project_paused">(zawieszony)</string>
+  <string name="tasks_header_deadline">Termin ostateczny:</string>
+  <string name="tasks_result_new">nowe</string>
+  <string name="tasks_result_files_downloading">pobieranie</string>
+  <string name="tasks_result_files_downloaded">pobrano</string>
+  <string name="tasks_result_compute_error">błąd obliczeniowy</string>
+  <string name="tasks_result_files_uploading">wysyłanie</string>
+  <string name="tasks_result_files_uploaded">wysłano</string>
+  <string name="tasks_result_aborted">przerwano</string>
+  <string name="tasks_result_upload_failed">wysyłanie się nie powiodło</string>
+  <string name="tasks_active_uninitialized">gotowe</string>
+  <string name="tasks_active_executing">obliczane</string>
+  <string name="tasks_active_suspended">zawieszone</string>
+  <string name="tasks_active_abort_pending">zawieszanie</string>
+  <string name="tasks_active_quit_pending">zawieszanie</string>
+  <string name="tasks_custom_suspended_via_gui">zawieszone</string>
+  <string name="tasks_custom_project_suspended_via_gui">zawieszono projekt</string>
+  <string name="tasks_custom_ready_to_report">gotowe do relacjonowania</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Przerwanie zadania</string>
+  <string name="confirm_abort_task_message">Czy przerwać zadanie:</string>
+  <string name="confirm_abort_task_confirm">Przerwij</string>
+  <string name="confirm_cancel">Anuluj</string>
+  <string name="confirm_image_desc">Dialog potwierdzalny</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Wczytywanie przekazów…</string>
+  <string name="trans_upload">wysyłanie</string>
+  <string name="trans_download">pobieranie</string>
+  <string name="trans_retryin">ponowna próba za</string>
+  <string name="trans_failed">błąd</string>
+  <string name="trans_suspended">zawieszony</string>
+  <string name="trans_active">aktywny</string>
+  <string name="trans_pending">czeka</string>
+  <string name="trans_projectbackoff">czas oczekiwania projektu</string>
+  <string name="trans_header_name">Plik:</string>
+  <string name="trans_control_retry">Wznów przekazy</string>
+  <string name="confirm_abort_trans_title">Przerwanie przekazu</string>
+  <string name="confirm_abort_trans_message">Czy przerwać plik:</string>
+  <string name="confirm_abort_trans_confirm">Przerwij</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Wczytywanie wiadomości…</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Wczytywanie komunikatów dziennika…</string>
+  <string name="eventlog_client_header">Komunikaty klienta</string>
+  <string name="eventlog_gui_header">Komunikaty powłoki graficznej</string>
+  <string name="eventlog_copy_toast">Dziennik skopiowano do schowka.</string>
+  <string name="eventlog_email_subject">Dziennik zdarzeń BOINCa na Androidzie:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Zawieszono obliczenia</string>
+  <string name="suspend_batteries">Przypnij ładowarkę do urządzenia aby kontynuować obliczenia.</string>
+  <string name="suspend_screen_on">Wyłącz ekran aby kontynuować obliczenia.</string>
+  <string name="suspend_useractive">Użytkownik jest aktywny.</string>
+  <string name="suspend_tod">Wyczerpano ograniczenie czasu obliczeniowego.</string>
+  <string name="suspend_bm">BOINC testuje twoje urządzenie...</string>
+  <string name="suspend_disksize">Brak wolnego miejsca pamięci stałej</string>
+  <string name="suspend_cputhrottle">Przewidziane pohamowanie procesora głównego</string>
+  <string name="suspend_noinput">Brak aktywności użytkownika</string>
+  <string name="suspend_delay">Przewleczenie inicjalizacji</string>
+  <string name="suspend_exclusiveapp">Uruchomiono aplikację wykluczającą.</string>
+  <string name="suspend_cpu">Procesor główny obsługuje inne aplikacje.</string>
+  <string name="suspend_network_quota">BOINC wyczerpał ograniczenie przekazu sieciowego.</string>
+  <string name="suspend_os">Zatrzymany przez Androida.</string>
+  <string name="suspend_wifi">Brak połączenia z siecią Wi-Fi.</string>
+  <string name="suspend_battery_charging">Czekanie na załadowanie akumulatora…</string>
+  <string name="suspend_battery_charging_long">Obliczenia zostaną wznowione kiedy załadowanie akumulatora osiągnie</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">obecnie</string>
+  <string name="suspend_battery_overheating">Czekanie na ochłodzenie akumulatora…</string>
+  <string name="suspend_user_req">Wznawianie obliczeń…</string>
+  <string name="suspend_network_user_req">ręcznie.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Na żądanie użytkownika</string>
+  <string name="rpcreason_needwork">Aby odebrać pracę</string>
+  <string name="rpcreason_resultsdue">Aby relacjonować o zakończonych zadaniach</string>
+  <string name="rpcreason_trickleup">Aby wysłać wiadomość strużkową</string>
+  <string name="rpcreason_acctmgrreq">Na żądanie zarządcy kont</string>
+  <string name="rpcreason_init">Inicjalizacja projektu</string>
+  <string name="rpcreason_projectreq">Na żądanie projektu</string>
+  <string name="rpcreason_unknown">Powód nieznany</string>
+  <!--menu-->
+  <string name="menu_refresh">Odśwież</string>
+  <string name="menu_emailto">Wyślij e-mail</string>
+  <string name="menu_copy">Kopiuj do schowka</string>
+  <string name="menu_eventlog">Dziennik zdarzeń</string>
+  <string name="menu_exit">Wyjdź z BOINC</string>
+  <string name="menu_run_mode_disable">Zawieś</string>
+  <string name="menu_run_mode_enable">Wznów</string>
+  <string name="menu_about">O BOINC…</string>
+  <string name="menu_help">Pomoc</string>
+  <!--about dialog-->
+  <string name="about_button">Wróć</string>
+  <string name="about_title">O BOINC</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Wersja</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">© 2003–2016 Uniwersytet Kalifornii, Berkeley.</string>
+  <string name="about_copyright_reserved">Wszelkie prawa zastrzeżone.</string>
+  <string name="about_credits">Dziękujemy Instytutowi Fizyki Grawitacyjnej Max Plancka, korporacjom IBM i HTC za wsparcie.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nowa wiadomość od „%1$s”</item>
+    <item quantity="few">%2$,d nowe wiadomości</item>
+    <item quantity="many">%2$,d nowych wiadomości</item>
+    <item quantity="other">%2$,d nowych wiadomości</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Wykryto aplikację obliczeń ochotniczych</string>
+  <string name="nonexcl_dialog_text">Inna aplikacja obliczeń ochotniczych już jest uruchomiona na tym urządzeniu. Wyłącznie jedna wersja może być uruchomiona.</string>
+  <string name="nonexcl_dialog_exit">Wyjdź</string>
+  <!--social integration-->
+  <string name="social_invite_button">Zaproś przyjaciół</string>
+  <string name="social_invite_intent_title">Sposób dzielenia</string>
+  <string name="social_invite_content_title">Jestem naukowcem na moim smartfonie!</string>
+  <string name="social_invite_content_body">Wykorzystuję mój „%1$s“ do obliczeń naukowych. Ty też możesz to robić! Pobierz aplikację z: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-pt-rBR/strings.xml b/android/BOINC/app/src/main/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..1933af4
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-pt-rBR/strings.xml
@@ -0,0 +1,358 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Carregando! Por favor espere...</string>
+  <string name="generic_button_continue">Continue</string>
+  <string name="generic_button_finish">Finalizar</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Selecione projetos científicos que você deseja contribuir para:</string>
+  <string name="attachproject_list_header">Escolha um projeto</string>
+  <string name="attachproject_list_manual_button">Adicionar projeto por URL</string>
+  <string name="attachproject_list_manual_dialog_title">Digite o URL do projeto:</string>
+  <string name="attachproject_list_manual_dialog_button">Adicionar projeto</string>
+  <string name="attachproject_list_manual_no_url">Digite URL projeto</string>
+  <string name="attachproject_list_acctmgr_button">Adicionar gerenciador de conta</string>
+  <string name="attachproject_list_no_internet">Sem conexão com a internet</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Digite as informações da conta</string>
+  <string name="attachproject_credential_input_desc">Digite as informações da conta para projetos selecionados:</string>
+  <string name="attachproject_credential_input_show_pwd">Mostrar senha</string>
+  <string name="attachproject_individual_credential_input">Anexar projetos individualmente</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Houve problemas com o anexo dos projetos científicos:</string>
+  <string name="attachproject_conflict_undefined">Não foi possível conectar</string>
+  <string name="attachproject_conflict_not_unique">Conta existe com senha diferente</string>
+  <string name="attachproject_conflict_bad_password">Senha incorreta</string>
+  <string name="attachproject_conflict_unknown_user">Conta não existe</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Conta não existe, visite o site do projeto para se registrar</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Anexar</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Sugestão</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Como contribuir:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Conecte-se ao WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Conecte-se ao carregador</string>
+  <string name="attachproject_hint_contribtion_screen">3. Desligar a tela</string>
+  <string name="attachproject_hint_projectwebsite_header">Visite o site do projeto para:</string>
+  <string name="attachproject_hint_projectwebsite_science">Saiba mais sobre a ciência</string>
+  <string name="attachproject_hint_projectwebsite_stats">Ver estatísticas de contribuição</string>
+  <string name="attachproject_hint_projectwebsite_community">Entre em contato com outros voluntários</string>
+  <string name="attachproject_hint_platforms_header">BOINC também está disponível para seu computador ou notebook, visite boinc.berkley.edu para mais informações.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Contactando servidor do projeto...</string>
+  <string name="attachproject_login_image_description">Logotipo do projeto.</string>
+  <string name="attachproject_login_header_general_area">Área geral:</string>
+  <string name="attachproject_login_header_specific_area">Área específica:</string>
+  <string name="attachproject_login_header_description">Descrição:</string>
+  <string name="attachproject_login_header_home">Home:</string>
+  <string name="attachproject_login_header_url">Website:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Tipo de dispositivo é suportado por este projeto</string>
+  <string name="attachproject_login_platform_not_supported">Dispositivo não é suportado por este projeto</string>
+  <string name="attachproject_login_category_terms_of_use">Termos de uso para</string>
+  <string name="attachproject_login_accept_terms_of_use">Criando uma conta com este projeto, você aceita os termos de uso, como mostrado acima.</string>
+  <string name="attachproject_login_category_login">Inscreva-se com uma conta existente</string>
+  <string name="attachproject_login_header_id_email">E-mail:</string>
+  <string name="attachproject_login_header_id_name">Nome:</string>
+  <string name="attachproject_login_header_pwd">Senha:</string>
+  <string name="attachproject_login_category_creation">Novo para </string>
+  <string name="attachproject_login_header_creation_enabled">Registre uma conta para participar:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Visite o site do projeto para criar uma conta
+</string>
+  <string name="attachproject_login_header_creation_disabled">Este projeto atualmente não está aceitando novas contas.</string>
+  <string name="attachproject_login_button_registration">Registre-se</string>
+  <string name="attachproject_login_button_login">Entrar</string>
+  <string name="attachproject_login_button_forgotpw">Esqueci a senha</string>
+  <string name="attachproject_login_error_toast">Contato projeto falhou!</string>
+  <string name="attachproject_login_attached">Anexado</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Registro de conta para </string>
+  <string name="attachproject_registration_header_url">Projeto:</string>
+  <string name="attachproject_registration_header_email">E-mail:</string>
+  <string name="attachproject_registration_header_username">Nome:</string>
+  <string name="attachproject_registration_header_teamname">Equipe:</string>
+  <string name="attachproject_registration_header_pwd">Senha:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Digite novamente:</string>
+  <string name="attachproject_registration_button">Criar</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Use o gerente de contas BOINC para adicionar e gerenciar múltiplos projetos</string>
+  <string name="attachproject_acctmgr_header">Adicionar gerente de contas</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Usuário:</string>
+  <string name="attachproject_acctmgr_header_pwd">Senha:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Digite novamente:</string>
+  <string name="attachproject_acctmgr_button">Adicionar</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Usuário não encontrado</string>
+  <string name="attachproject_error_short_pwd">Senha muito curta</string>
+  <string name="attachproject_error_no_internet">Falha na conexão</string>
+  <string name="attachproject_error_pwd_no_match">Senhas não combinam</string>
+  <string name="attachproject_error_pwd_no_retype">Por favor digite a senha novamente</string>
+  <string name="attachproject_error_no_url">Por favor, digite a URL</string>
+  <string name="attachproject_error_no_email">Por favor, digite o endereço de E-mail</string>
+  <string name="attachproject_error_no_pwd">Por favor, digite uma senha</string>
+  <string name="attachproject_error_no_name">Por favor, digite o nome de usuário</string>
+  <string name="attachproject_error_unknown">falhou</string>
+  <string name="attachproject_error_bad_username">Nome de usuário se recusado</string>
+  <string name="attachproject_error_email_in_use">E-mail já está em uso</string>
+  <string name="attachproject_error_project_down">Projeto está offline</string>
+  <string name="attachproject_error_email_bad_syntax">E-mail recusado</string>
+  <string name="attachproject_error_bad_pwd">Senha recusada</string>
+  <string name="attachproject_error_creation_disabled">Criação de conta está desativada neste projeto</string>
+  <string name="attachproject_error_invalid_url">URL invalida</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Voltar</string>
+  <string name="attachproject_working_finish_button">Finalizar</string>
+  <string name="attachproject_working_check_desc">Bem sucedido</string>
+  <string name="attachproject_working_failed_desc">Falhou</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Conectar-se</string>
+  <string name="attachproject_working_verify">Verifique a conta</string>
+  <string name="attachproject_working_register">Registrar conta</string>
+  <string name="attachproject_working_login">Iniciar sessão</string>
+  <string name="attachproject_working_acctmgr">Adicionar o gestor de conta</string>
+  <string name="attachproject_working_acctmgr_sync">Sincronizar</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Toque aqui para escolher um projeto.</string>
+  <string name="main_error">Whooops</string>
+  <string name="main_error_long">... isso não deveria acontecer!\nClick no ícone para tentar de novo.</string>
+  <string name="main_title_icon_desc">Ícone do BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Status</string>
+  <string name="tab_projects">Projetos</string>
+  <string name="tab_tasks">Tarefas</string>
+  <string name="tab_transfers">Transferências</string>
+  <string name="tab_preferences">Preferências</string>
+  <string name="tab_notices">Avisos</string>
+  <string name="tab_desc">Navegação</string>
+  <!--status strings-->
+  <string name="status_running">Computação</string>
+  <string name="status_running_long">Obrigado por participar.</string>
+  <string name="status_paused">Suspenso</string>
+  <string name="status_idle">Nada a fazer</string>
+  <string name="status_idle_long">À espera de tarefas...</string>
+  <string name="status_computing_disabled">Suspenso</string>
+  <string name="status_computing_disabled_long">Pressione play para retomar a rede e computação.</string>
+  <string name="status_launching">Começando...</string>
+  <string name="status_noproject">Escolha um projeto para participar.</string>
+  <string name="status_closing">Fechando...</string>
+  <string name="status_benchmarking">Benchmarking...</string>
+  <string name="status_image_description">imagem do projeto</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Preferências de leitura...</string>
+  <string name="prefs_submit_button">Salvar</string>
+  <string name="prefs_dialog_title">Digite o novo valor:</string>
+  <string name="prefs_dialog_title_selection">Selecione:</string>
+  <string name="prefs_category_general">Geral</string>
+  <string name="prefs_category_network">Rede</string>
+  <string name="prefs_category_power">Power</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Armazenamento</string>
+  <string name="prefs_category_memory">Memória</string>
+  <string name="prefs_category_debug">Debug</string>
+  <string name="prefs_show_advanced_header">Mostre preferências avançadas e controles...</string>
+  <string name="prefs_suspend_when_screen_on">Cálculo de pausa quando a tela está na</string>
+  <string name="prefs_stationary_device_mode_header">Modo de dispositivo estacionário</string>
+  <string name="prefs_stationary_device_mode_description">Permite o cálculo independentemente de preferências de poder. Ative somente se o dispositivo não tem uma bateria.</string>
+  <string name="prefs_power_source_header">Fontes de energia para computação</string>
+  <string name="prefs_power_source_description">Seleciona o BOINC está autorizada a utilizar para cálculo de fontes de energia.</string>
+  <string name="prefs_power_source_ac">Tomada de parede</string>
+  <string name="prefs_power_source_usb">Conexão USB</string>
+  <string name="prefs_power_source_wireless">Carregador sem fio</string>
+  <string name="prefs_power_source_battery">Bateria</string>
+  <string name="battery_charge_min_pct_header">Nível de bateria min.</string>
+  <string name="battery_charge_min_pct_description">BOINC suspende computação abaixo do nível de carga da bateria definidos.</string>
+  <string name="battery_temperature_max_header">Max. temperatura da bateria</string>
+  <string name="battery_temperature_max_description">BOINC suspende a computação quando a temperatura da bateria excede o limite. Não é recomendado alterar o valor padrão.</string>
+  <string name="prefs_disk_max_pct_header">Espaço máximo de utilização</string>
+  <string name="prefs_disk_max_pct_description">Qual a porcentagem máxima de espaço do seu dispositivo o BOINC pode utilizar?</string>
+  <string name="prefs_disk_min_free_gb_header">Espaço mínimo de sobra</string>
+  <string name="prefs_disk_min_free_gb_description">Quanto de espaço do seu dispositivo deve permanecer livre?</string>
+  <string name="prefs_disk_access_interval_header">Intervalo de acesso</string>
+  <string name="prefs_disk_access_interval_description">Sugere um intervalo entre os acessos ao disco</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Limite diário de transferência</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limita o uso diário de dados utilizados pelo BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Transferir tarefas apenas por WiFi.</string>
+  <string name="prefs_autostart_header">Autoiniciar</string>
+  <string name="prefs_show_notification_notices_header">Mostrar notificações para avisos novos</string>
+  <string name="prefs_show_notification_suspended_header">Mostrar notificações enquanto suspenso</string>
+  <string name="prefs_cpu_number_cpus_header">Núcleos do processador utilizados</string>
+  <string name="prefs_cpu_number_cpus_description">Limita o número de núcleos do processador que o BOINC utiliza para computação.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pausa quando o uso do CPU ultrapassa</string>
+  <string name="prefs_cpu_other_load_suspension_description">Determina quando o BOINC pausa a computação devido a utilização do CPU por outro aplicativo.</string>
+  <string name="prefs_cpu_time_max_header">Limite do CPU</string>
+  <string name="prefs_cpu_time_max_description">Limita o tempo do CPU que o BOINC usa em computação</string>
+  <string name="prefs_memory_max_idle_header">Limite de RAM</string>
+  <string name="prefs_memory_max_idle_description">Limita a quantidade de RAM que as tarefas podem ocupar.</string>
+  <string name="prefs_client_log_flags_header">Comandos de log do Cliente BOINC</string>
+  <string name="prefs_gui_log_level_header">Nível de log do GUI</string>
+  <string name="prefs_gui_log_level_description">Especifica a verbosidade das mensagens no log do GUI</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">segundos</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Lendo projetos</string>
+  <string name="projects_add">Adicionar projeto</string>
+  <string name="projects_icon">Ícone do projeto</string>
+  <string name="projects_credits">Crédito:</string>
+  <string name="projects_credits_host_and_user">%1$,d (neste dispositivo) %2$,d (total)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspenso pelo usuário</string>
+  <string name="projects_status_dontrequestmorework">Não receberá novas tarefas</string>
+  <string name="projects_status_ended">Projeto finalizado - OK para remover</string>
+  <string name="projects_status_detachwhendone">Será removido ao término das tarefas</string>
+  <string name="projects_status_schedrpcpending">Pendendo pedido do agendador</string>
+  <string name="projects_status_schedrpcinprogress">Pedido do agendador em progresso</string>
+  <string name="projects_status_trickleuppending">Mensagem ao servidor pendente</string>
+  <string name="projects_status_backoff">Comunicação agendada em:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Comandos do projeto:</string>
+  <string name="projects_control_visit_website">Visite o site</string>
+  <string name="projects_control_update">Update</string>
+  <string name="projects_control_remove">Remover</string>
+  <string name="projects_control_suspend">Suspenso</string>
+  <string name="projects_control_resume">Recomeçar</string>
+  <string name="projects_control_nonewtasks">Nenhuma tarefa nova</string>
+  <string name="projects_control_allownewtasks">Permitir novas tarefas</string>
+  <string name="projects_control_reset">Reiniciar</string>
+  <string name="projects_control_dialog_title_acctmgr">Comandos do gerenciador de conta:</string>
+  <string name="projects_control_sync_acctmgr">Sincronizar</string>
+  <string name="projects_control_remove_acctmgr">Desativar</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Remover projeto?</string>
+  <string name="projects_confirm_detach_message">Tem certeza que querer remover</string>
+  <string name="projects_confirm_detach_message2">de BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Remover</string>
+  <string name="projects_confirm_reset_title">Reiniciar projeto</string>
+  <string name="projects_confirm_reset_message">Tem certeza que quer reiniciar</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Reiniciar</string>
+  <string name="projects_confirm_remove_acctmgr_title">Desabilitar gerenciador de conta</string>
+  <string name="projects_confirm_remove_acctmgr_message">Tem certeza que quer parar de usar</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Desativar</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nome da tarefa:</string>
+  <string name="tasks_header_elapsed_time">Tempo decorrido:</string>
+  <string name="tasks_header_project_paused">(suspenso)</string>
+  <string name="tasks_header_deadline">Prazo:</string>
+  <string name="tasks_result_new">novo</string>
+  <string name="tasks_result_files_downloading">esperando pelo download</string>
+  <string name="tasks_result_files_downloaded">download completo</string>
+  <string name="tasks_result_compute_error">erro de cálculo</string>
+  <string name="tasks_result_files_uploading">enviando</string>
+  <string name="tasks_result_files_uploaded">envio completo</string>
+  <string name="tasks_result_aborted">Cancelado</string>
+  <string name="tasks_result_upload_failed">Falha de envio</string>
+  <string name="tasks_active_uninitialized">pronto</string>
+  <string name="tasks_active_executing">carregando</string>
+  <string name="tasks_active_suspended">suspenso</string>
+  <string name="tasks_active_abort_pending">suspendendo</string>
+  <string name="tasks_active_quit_pending">suspendendo</string>
+  <string name="tasks_custom_suspended_via_gui">suspenso</string>
+  <string name="tasks_custom_project_suspended_via_gui">Projeto suspenso</string>
+  <string name="tasks_custom_ready_to_report">pronto para enviar relatório</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Interromper tarefa?</string>
+  <string name="confirm_abort_task_message">Interromper tarefa:</string>
+  <string name="confirm_abort_task_confirm">Interromper</string>
+  <string name="confirm_cancel">Cancelar</string>
+  <string name="confirm_image_desc">Diálogo de confirmação</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Lendo transferências...</string>
+  <string name="trans_upload">Upload</string>
+  <string name="trans_download">Download</string>
+  <string name="trans_retryin">repetir em</string>
+  <string name="trans_failed">falhou</string>
+  <string name="trans_suspended">suspenso</string>
+  <string name="trans_active">ativo</string>
+  <string name="trans_pending">pendente</string>
+  <string name="trans_projectbackoff">projeto em backoff</string>
+  <string name="trans_header_name">Arquivo:</string>
+  <string name="trans_control_retry">Recomeçar transferência</string>
+  <string name="confirm_abort_trans_title">Abortar transferência?</string>
+  <string name="confirm_abort_trans_message">Abortar arquivo:</string>
+  <string name="confirm_abort_trans_confirm">Cancelar</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Lendo avisos...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Carregando mensagens de log...</string>
+  <string name="eventlog_client_header">Mensagens de Cliente</string>
+  <string name="eventlog_gui_header">Mensagens do GUI</string>
+  <string name="eventlog_copy_toast">Log copiado para a área de transferência.</string>
+  <string name="eventlog_email_subject">Log de eventos do BOINC para Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Computação suspensa.</string>
+  <string name="suspend_batteries">Conecte seu dispositivo ao carregador para continuar a computação.</string>
+  <string name="suspend_screen_on">Desligue a tela para continuar a computação.</string>
+  <string name="suspend_useractive">Usuário ativo.</string>
+  <string name="suspend_tod">Sem cronograma de computação.</string>
+  <string name="suspend_bm">BOINC está testando seu dispositivo...</string>
+  <string name="suspend_disksize">Sem espaço em disco.</string>
+  <string name="suspend_cputhrottle">Controle do CPU agendado.</string>
+  <string name="suspend_noinput">Sem atividades recentes do usuário.</string>
+  <string name="suspend_delay">Adiamento da inicialização.</string>
+  <string name="suspend_exclusiveapp">Um aplicativo exclusivo está em operação.</string>
+  <string name="suspend_cpu">Seu dispositivo está ocupado com outros apps.</string>
+  <string name="suspend_network_quota">BOINC alcançou o limite de transferência por rede.</string>
+  <string name="suspend_os">Interrompido pelo Android.</string>
+  <string name="suspend_wifi">Não conectado ao WiFi.</string>
+  <string name="suspend_battery_charging">Esperando a bateria carregar.</string>
+  <string name="suspend_battery_charging_long">A computação continuará quando a bateria chegar em</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">no momento</string>
+  <string name="suspend_battery_overheating">Aguardando esfriamento da bateria</string>
+  <string name="suspend_user_req">Retomando computação...</string>
+  <string name="suspend_network_user_req">manualmente.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Solicitado pelo usuário</string>
+  <string name="rpcreason_needwork">Para buscar trabalho</string>
+  <string name="rpcreason_resultsdue">Para comunicar tarefas finalizadas</string>
+  <string name="rpcreason_trickleup">Para enviar mensagem ao servidor</string>
+  <string name="rpcreason_acctmgrreq">Solicitado pelo gerenciador da conta</string>
+  <string name="rpcreason_init">Inicialização do projeto</string>
+  <string name="rpcreason_projectreq">Solicitado pelo projeto</string>
+  <string name="rpcreason_unknown">Motivo desconhecido</string>
+  <!--menu-->
+  <string name="menu_refresh">Recarregar</string>
+  <string name="menu_emailto">Enviar como E-mail</string>
+  <string name="menu_copy">Copiar para área de transferência</string>
+  <string name="menu_eventlog">Log de evento</string>
+  <string name="menu_exit">Sair de BOINC</string>
+  <string name="menu_run_mode_disable">Suspender</string>
+  <string name="menu_run_mode_enable">Retomar</string>
+  <string name="menu_about">Sobre</string>
+  <string name="menu_help">Ajuda</string>
+  <!--about dialog-->
+  <string name="about_button">Voltar</string>
+  <string name="about_title">Sobre</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versão</string>
+  <string name="about_name_long">Infraestrutura Aberta de Berkeley para Computação em Rede</string>
+  <string name="about_copyright">\u00A9 2003–2016 Universidade da California, Berkeley.</string>
+  <string name="about_copyright_reserved">Todos os Direitos Reservados.</string>
+  <string name="about_credits">Nossa gratidão ao Instituto Max Planck de Física Gravitacional, à IBM Corporation e à HTC Corporation pelo apoio.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nova notícia de %1$s</item>
+    <item quantity="other">%2$,d novos avisos</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">App de computação voluntária detectado</string>
+  <string name="nonexcl_dialog_text">Outro aplicativo de computação voluntária está em operação neste dispositivo. Somente uma versão pode operar por vez.</string>
+  <string name="nonexcl_dialog_exit">Sair</string>
+  <!--social integration-->
+  <string name="social_invite_button">Convide amigos</string>
+  <string name="social_invite_intent_title">Como você quer compartilhar?</string>
+  <string name="social_invite_content_title">Estou fazendo ciência no meu celular!</string>
+  <string name="social_invite_content_body">Estou usando meu %1$s para fazer computação para a ciência. Você também pode! Faça o download do app em: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-pt-rPT/strings.xml b/android/BOINC/app/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..30437e8
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">A carregar! Por favor, aguarde...</string>
+  <string name="generic_button_continue">Continuar</string>
+  <string name="generic_button_finish">Terminar</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Selecione os projetos científicos em que deseja contribuir:</string>
+  <string name="attachproject_list_header">Escolha um projeto</string>
+  <string name="attachproject_list_manual_button">Adicionar projeto por URL</string>
+  <string name="attachproject_list_manual_dialog_title">Inserir URL do projeto:</string>
+  <string name="attachproject_list_manual_dialog_button">Adicionar projeto</string>
+  <string name="attachproject_list_manual_no_url">Por favor, insira o URL do projeto</string>
+  <string name="attachproject_list_acctmgr_button">Adicionar gestor de conta</string>
+  <string name="attachproject_list_no_internet">Sem ligação à Internet</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Insira a informação da conta</string>
+  <string name="attachproject_credential_input_desc">Insira a informação da conta para os projetos selecionados:</string>
+  <string name="attachproject_credential_input_show_pwd">Mostrar palavra-passe</string>
+  <string name="attachproject_individual_credential_input">Adicionar projetos individualmente</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Ocorreram problemas ao anexar os projetos científicos:</string>
+  <string name="attachproject_conflict_undefined">Não foi possível ligar</string>
+  <string name="attachproject_conflict_not_unique">A conta existe com uma palavra-passe diferente</string>
+  <string name="attachproject_conflict_bad_password">Palavra-passe incorreta</string>
+  <string name="attachproject_conflict_unknown_user">A conta não existe</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">A conta não existe, visite o site da Web do projeto para se registar</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Anexando</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Dica</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Como contribuir:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Ligar à Rede Sem Fios</string>
+  <string name="attachproject_hint_contribtion_charger">2. Ligar Carregador</string>
+  <string name="attachproject_hint_contribtion_screen">3. Desligar Ecrã</string>
+  <string name="attachproject_hint_projectwebsite_header">Visitar os sites da Web do projeto para:</string>
+  <string name="attachproject_hint_projectwebsite_science">Saiba mais sobre a ciência</string>
+  <string name="attachproject_hint_projectwebsite_stats">Ver estatísticas de contribuição</string>
+  <string name="attachproject_hint_projectwebsite_community">Entre em contacto com outros voluntários</string>
+  <string name="attachproject_hint_platforms_header">O BOINC também está disponível para o seu computador ou portátil, visite boinc.berkeley.edu para saber mais.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">A contactar o servidor do projeto...</string>
+  <string name="attachproject_login_image_description">Logótipo do projeto.</string>
+  <string name="attachproject_login_header_general_area">Área geral:</string>
+  <string name="attachproject_login_header_specific_area">Área específica:</string>
+  <string name="attachproject_login_header_description">Descrição:</string>
+  <string name="attachproject_login_header_home">Início:</string>
+  <string name="attachproject_login_header_url">Site da Web:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">O tipo de dispositivo é suportado por este projeto</string>
+  <string name="attachproject_login_platform_not_supported">O dispositivo não é suportado por este projeto</string>
+  <string name="attachproject_login_category_terms_of_use">Termos de utilização para</string>
+  <string name="attachproject_login_accept_terms_of_use">Ao criar uma conta neste projeto, aceita os termos de utilização acima descritos.</string>
+  <string name="attachproject_login_category_login">Iniciar a sessão com uma conta existente</string>
+  <string name="attachproject_login_header_id_email">E-mail:</string>
+  <string name="attachproject_login_header_id_name">Nome:</string>
+  <string name="attachproject_login_header_pwd">Palavra-passe:</string>
+  <string name="attachproject_login_category_creation">Novo a</string>
+  <string name="attachproject_login_header_creation_enabled">Registar uma conta para participar:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Visite o site da Web do projeto para criar uma conta:</string>
+  <string name="attachproject_login_header_creation_disabled">De momento, este projeto não está a aceitar novas contas.</string>
+  <string name="attachproject_login_button_registration">Registar</string>
+  <string name="attachproject_login_button_login">Iniciar sessão</string>
+  <string name="attachproject_login_button_forgotpw">Esqueceu a Palavra-passe</string>
+  <string name="attachproject_login_error_toast">Tentativa de contacto com o projecto falhou!</string>
+  <string name="attachproject_login_attached">Anexado</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Registo de conta para</string>
+  <string name="attachproject_registration_header_url">Projeto:</string>
+  <string name="attachproject_registration_header_email">E-mail:</string>
+  <string name="attachproject_registration_header_username">Nome:</string>
+  <string name="attachproject_registration_header_teamname">Equipa:</string>
+  <string name="attachproject_registration_header_pwd">Palavra-passe:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... Escreva novamente:</string>
+  <string name="attachproject_registration_button">Criar</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Use o gestor de conta do BOINC para adicionar ou gerir múltiplos projetos</string>
+  <string name="attachproject_acctmgr_header">Adicionar gestor de conta</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Utilizador:</string>
+  <string name="attachproject_acctmgr_header_pwd">Palavra-passe:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Escreva novamente:</string>
+  <string name="attachproject_acctmgr_button">Adicionar</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Utilizador não encontrado</string>
+  <string name="attachproject_error_short_pwd">Palavra-passe demasiado curta</string>
+  <string name="attachproject_error_no_internet">Falha de ligação</string>
+  <string name="attachproject_error_pwd_no_match">As palavras-passe não coincidem</string>
+  <string name="attachproject_error_pwd_no_retype">Por favor, insira a palavra-passe novamente</string>
+  <string name="attachproject_error_no_url">Por favor, insira o URL</string>
+  <string name="attachproject_error_no_email">Por favor, insira o endereço de e-mail</string>
+  <string name="attachproject_error_no_pwd">Por favor, insira uma palavra-passe</string>
+  <string name="attachproject_error_no_name">Por favor, insira o nome de utilizador</string>
+  <string name="attachproject_error_unknown">falhou</string>
+  <string name="attachproject_error_bad_username">Nome de utilizador recusado</string>
+  <string name="attachproject_error_email_in_use">Endereço de e-mail em uso</string>
+  <string name="attachproject_error_project_down">O projeto está off-line</string>
+  <string name="attachproject_error_email_bad_syntax">E-mail recusado</string>
+  <string name="attachproject_error_bad_pwd">Palavra-passe recusada</string>
+  <string name="attachproject_error_creation_disabled">A criação de conta está desativada neste projeto</string>
+  <string name="attachproject_error_invalid_url">URL inválido</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Anterior</string>
+  <string name="attachproject_working_finish_button">Terminar</string>
+  <string name="attachproject_working_check_desc">Bem sucedido</string>
+  <string name="attachproject_working_failed_desc">Falhou</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Ligar</string>
+  <string name="attachproject_working_verify">Verificar conta</string>
+  <string name="attachproject_working_register">Registar conta</string>
+  <string name="attachproject_working_login">Iniciar Sessão</string>
+  <string name="attachproject_working_acctmgr">Adicionar gestor de conta</string>
+  <string name="attachproject_working_acctmgr_sync">Sincronizar</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Toque aqui para escolher um projeto.</string>
+  <string name="main_error">Ups!</string>
+  <string name="main_error_long">...isto não deveria acontecer!\nToque no ícone para tentar novamente.</string>
+  <string name="main_title_icon_desc">Ícone do BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Estado</string>
+  <string name="tab_projects">Projetos</string>
+  <string name="tab_tasks">Tarefas</string>
+  <string name="tab_transfers">Transferências</string>
+  <string name="tab_preferences">Preferências</string>
+  <string name="tab_notices">Avisos</string>
+  <string name="tab_desc">Navegação</string>
+  <!--status strings-->
+  <string name="status_running">A realizar computação</string>
+  <string name="status_running_long">Obrigado por participar.</string>
+  <string name="status_paused">Suspenso</string>
+  <string name="status_idle">Nada para fazer</string>
+  <string name="status_idle_long">A aguardar por tarefas...</string>
+  <string name="status_computing_disabled">Suspenso</string>
+  <string name="status_computing_disabled_long">Clique em reproduzir para retomar a atividade de rede e computação.</string>
+  <string name="status_launching">A iniciar...</string>
+  <string name="status_noproject">Escolha um projeto para participar.</string>
+  <string name="status_closing">A fechar...</string>
+  <string name="status_benchmarking">A executar teste de desempenho...</string>
+  <string name="status_image_description">imagem do projeto</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">A ler preferências...</string>
+  <string name="prefs_submit_button">Guardar</string>
+  <string name="prefs_dialog_title">Insira novo valor:</string>
+  <string name="prefs_dialog_title_selection">Seleccione:</string>
+  <string name="prefs_category_general">Geral</string>
+  <string name="prefs_category_network">Rede</string>
+  <string name="prefs_category_power">Alimentação</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Armazenamento</string>
+  <string name="prefs_category_memory">Memória</string>
+  <string name="prefs_category_debug">Depurar</string>
+  <string name="prefs_show_advanced_header">Mostrar preferências avançadas e controlos...</string>
+  <string name="prefs_suspend_when_screen_on">Pausar a computação quando o ecrã está ligado</string>
+  <string name="prefs_stationary_device_mode_header">Dispositivo em modo estacionário</string>
+  <string name="prefs_stationary_device_mode_description">Permite computação independentemente das preferências de Energia. Habilite esta opção apenas se o dispositivo não tiver uma bateria.</string>
+  <string name="prefs_power_source_header">Fontes de energia para computação</string>
+  <string name="prefs_power_source_description">Selecciona a fonte de energia permitida para o BOINC realizar computação.</string>
+  <string name="prefs_power_source_ac">Wall socket</string>
+  <string name="prefs_power_source_usb">Ligação USB</string>
+  <string name="prefs_power_source_wireless">Carregador sem fios</string>
+  <string name="prefs_power_source_battery">Bateria</string>
+  <string name="battery_charge_min_pct_header">Nível de bateria mínimo</string>
+  <string name="battery_charge_min_pct_description">O BOINC suspende a computação quando abaixo do nível de bateria definido.</string>
+  <string name="battery_temperature_max_header">Temperatura máxima da bateria</string>
+  <string name="battery_temperature_max_description">O BOINC suspende a computação se temperatura da bateria estiver acima do definido. Não é recomendada a alteração deste valor.</string>
+  <string name="prefs_disk_max_pct_header">Espaço de armazenamento máximo</string>
+  <string name="prefs_disk_max_pct_description">Qual a percentagem de espaço de armazenamento no seu dispositivo que é permitido que o BOINC utilize?</string>
+  <string name="prefs_disk_min_free_gb_header">Espaço de armazenamento mínimo</string>
+  <string name="prefs_disk_min_free_gb_description">Qual a capacidade de espaço de armazenamento no seu dispositivo que deve ficar livre?</string>
+  <string name="prefs_disk_access_interval_header">Intervalo de acesso</string>
+  <string name="prefs_disk_access_interval_description">Sugere um intervalo entre acessos ao disco</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Transferência diária limite</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limita o tráfico diário realizado pelo BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Transferir tarefas apenas em WiFi</string>
+  <string name="prefs_autostart_header">Começo Automático</string>
+  <string name="prefs_show_notification_notices_header">Mostrar notificações para novas notícias</string>
+  <string name="prefs_show_notification_suspended_header">Mostrar notificação quando suspenso</string>
+  <string name="prefs_cpu_number_cpus_header">Núcleos da CPU utilizados</string>
+  <string name="prefs_cpu_number_cpus_description">Limita o número de cores de CPU que o BOINC utiliza para computação.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pausar com o uso da CPU acima de</string>
+  <string name="prefs_cpu_other_load_suspension_description">Determina quando o BOINC pausa a computação, devido à utilização do CPU por outras aplicações.</string>
+  <string name="prefs_cpu_time_max_header">Limite da CPU</string>
+  <string name="prefs_cpu_time_max_description">Limita o tempo de CPU que o BOINC utiliza para computação.</string>
+  <string name="prefs_memory_max_idle_header">Limite da RAM</string>
+  <string name="prefs_memory_max_idle_description">Limita a quantidade de RAM utilizada permitida às tarefas.</string>
+  <string name="prefs_client_log_flags_header">Log das bandeiras do BOINC</string>
+  <string name="prefs_gui_log_level_header">Nível de log da GUI</string>
+  <string name="prefs_gui_log_level_description">Especifica a verbosidade das mensagens de log da GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">seg</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">A ler os projetos...</string>
+  <string name="projects_add">Adicionar projecto</string>
+  <string name="projects_icon">Ícone do projecto</string>
+  <string name="projects_credits">Créditos:</string>
+  <string name="projects_credits_host_and_user">%1$,d (neste dispositivo) %2$,d (total)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspenso pelo utilizador</string>
+  <string name="projects_status_dontrequestmorework">Não obter novas tarefas</string>
+  <string name="projects_status_ended">Projecto terminado - OK para remover</string>
+  <string name="projects_status_detachwhendone">Irá ser removido quando as tarefas terminarem</string>
+  <string name="projects_status_schedrpcpending">Solicitação agendada pendente</string>
+  <string name="projects_status_schedrpcinprogress">Solicitação agendada em progresso</string>
+  <string name="projects_status_trickleuppending">Mensagem de aviso pendente</string>
+  <string name="projects_status_backoff">Comunicação agendada em:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Comandos do projecto:</string>
+  <string name="projects_control_visit_website">Visitar site da Web</string>
+  <string name="projects_control_update">Atualizar</string>
+  <string name="projects_control_remove">Remover</string>
+  <string name="projects_control_suspend">Suspender</string>
+  <string name="projects_control_resume">Retomar</string>
+  <string name="projects_control_nonewtasks">Sem novas tarefas</string>
+  <string name="projects_control_allownewtasks">Permitir novas tarefas</string>
+  <string name="projects_control_reset">Reiniciar</string>
+  <string name="projects_control_dialog_title_acctmgr">Comandos do gestor de conta:</string>
+  <string name="projects_control_sync_acctmgr">Sincronizar</string>
+  <string name="projects_control_remove_acctmgr">Desativar</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Remover projeto?</string>
+  <string name="projects_confirm_detach_message">Tem a certeza que deseja remover</string>
+  <string name="projects_confirm_detach_message2">do BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Remover</string>
+  <string name="projects_confirm_reset_title">Reiniciar o projeto</string>
+  <string name="projects_confirm_reset_message">Tem a certeza que deseja reiniciar</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Reiniciar</string>
+  <string name="projects_confirm_remove_acctmgr_title">Desativar gestor de conta</string>
+  <string name="projects_confirm_remove_acctmgr_message">Tem a certeza que deseja parar de utilizar o</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Desativar</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nome da tarefa:</string>
+  <string name="tasks_header_elapsed_time">Tempo decorrido:</string>
+  <string name="tasks_header_project_paused">(suspenso)</string>
+  <string name="tasks_header_deadline">Data limite:</string>
+  <string name="tasks_result_new">novo</string>
+  <string name="tasks_result_files_downloading">a aguardar para transferir</string>
+  <string name="tasks_result_files_downloaded">Transferência concluída</string>
+  <string name="tasks_result_compute_error">erro de computação</string>
+  <string name="tasks_result_files_uploading">a enviar</string>
+  <string name="tasks_result_files_uploaded">envio concluído</string>
+  <string name="tasks_result_aborted">abortado</string>
+  <string name="tasks_result_upload_failed">envio falhado</string>
+  <string name="tasks_active_uninitialized">pronto</string>
+  <string name="tasks_active_executing">Em execução</string>
+  <string name="tasks_active_suspended">suspenso</string>
+  <string name="tasks_active_abort_pending">a suspender</string>
+  <string name="tasks_active_quit_pending">a suspender</string>
+  <string name="tasks_custom_suspended_via_gui">suspenso</string>
+  <string name="tasks_custom_project_suspended_via_gui">projeto suspenso</string>
+  <string name="tasks_custom_ready_to_report">pronto para reportar</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Abortar tarefa?</string>
+  <string name="confirm_abort_task_message">Abortar tarefa:</string>
+  <string name="confirm_abort_task_confirm">Abortar</string>
+  <string name="confirm_cancel">Cancelar</string>
+  <string name="confirm_image_desc">Janela de confirmação</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">A ler as transferências...</string>
+  <string name="trans_upload">Enviar</string>
+  <string name="trans_download">Transferir</string>
+  <string name="trans_retryin">tentar novamente em</string>
+  <string name="trans_failed">falhou</string>
+  <string name="trans_suspended">suspenso</string>
+  <string name="trans_active">ativo</string>
+  <string name="trans_pending">pendente</string>
+  <string name="trans_projectbackoff">projeto em backoff</string>
+  <string name="trans_header_name">Ficheiro:</string>
+  <string name="trans_control_retry">Repetir transferências</string>
+  <string name="confirm_abort_trans_title">Abortar transferência?</string>
+  <string name="confirm_abort_trans_message">Abortar Ficheiro:</string>
+  <string name="confirm_abort_trans_confirm">Abortar</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">A ler os avisos...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">A carregar as mensagens do registo...</string>
+  <string name="eventlog_client_header">Mensagens do Cliente</string>
+  <string name="eventlog_gui_header">Mensagens da GUI</string>
+  <string name="eventlog_copy_toast">Registo copiado para a área de transferência.</string>
+  <string name="eventlog_email_subject">Registo de Eventos para o BOINC no Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Computação suspensa.</string>
+  <string name="suspend_batteries">Ligue o seu dispositivo a um carregador para continuar a computação.</string>
+  <string name="suspend_screen_on">Desligue o ecrã para continuar a computação.</string>
+  <string name="suspend_useractive">O utilizador está ativo.</string>
+  <string name="suspend_tod">Fora da janela de tempo limite para a computação.</string>
+  <string name="suspend_bm">O BOINC está a executar o teste de desempenho no seu dispositivo...</string>
+  <string name="suspend_disksize">Sem espaço em disco.</string>
+  <string name="suspend_cputhrottle">Estrangulamento de CPU agendado.</string>
+  <string name="suspend_noinput">Sem actividade recente do utilizador.</string>
+  <string name="suspend_delay">Atraso de inicialização.</string>
+  <string name="suspend_exclusiveapp">Uma aplicação exclusiva está em execução.</string>
+  <string name="suspend_cpu">O seu dispositivo está ocupado com outras aplicações.</string>
+  <string name="suspend_network_quota">BOINC atingiu o limite de transferência diário da rede.</string>
+  <string name="suspend_os">Parado pelo Android.</string>
+  <string name="suspend_wifi">Não ligado à Wi-Fi.</string>
+  <string name="suspend_battery_charging">A aguardar que a bateria seja carregada.</string>
+  <string name="suspend_battery_charging_long">A computação será resumida quando a carga da bateria chegar a</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">atualmente</string>
+  <string name="suspend_battery_overheating">A aguardar que a bateria arrefeça</string>
+  <string name="suspend_user_req">A retomar a computação...</string>
+  <string name="suspend_network_user_req">manualmente.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Solicitado pelo utilizador</string>
+  <string name="rpcreason_needwork">Para obter trabalho</string>
+  <string name="rpcreason_resultsdue">Reportar tarefas concluídas</string>
+  <string name="rpcreason_trickleup">Enviar mensagem de aviso</string>
+  <string name="rpcreason_acctmgrreq">Solicitado pelo gestor de conta</string>
+  <string name="rpcreason_init">Inicialização do projecto</string>
+  <string name="rpcreason_projectreq">Solicitado pelo projecto</string>
+  <string name="rpcreason_unknown">Razão desconhecida</string>
+  <!--menu-->
+  <string name="menu_refresh">Atualizar</string>
+  <string name="menu_emailto">Enviar como E-mail</string>
+  <string name="menu_copy">Copiar para a Área de Transferência</string>
+  <string name="menu_eventlog">Registo de Eventos</string>
+  <string name="menu_exit">Sair do BOINC</string>
+  <string name="menu_run_mode_disable">Suspender</string>
+  <string name="menu_run_mode_enable">Retomar</string>
+  <string name="menu_about">Sobre</string>
+  <string name="menu_help">Ajuda</string>
+  <!--about dialog-->
+  <string name="about_button">Regressar</string>
+  <string name="about_title">Sobre</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versão</string>
+  <string name="about_name_long">Infraestrutura Aberta Berkeley para a Rede de Computação</string>
+  <string name="about_copyright">\u00A9 2003-2016 Universidade da Califórnia, Berkeley.</string>
+  <string name="about_copyright_reserved">Todos os Direitos Reservados.</string>
+  <string name="about_credits">Agradecimentos ao Instituto Max Planck de Física Gravitacional, IBM e à HTC pelo seu suporte.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nova notícia de %1$s</item>
+    <item quantity="other">%2$,d notícias novas</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Aplicação de computação voluntária detectada</string>
+  <string name="nonexcl_dialog_text">Outra aplicação de computação voluntária está a ser executada neste dispositivo. Só pode ser executada uma de cada vez.</string>
+  <string name="nonexcl_dialog_exit">Sair</string>
+  <!--social integration-->
+  <string name="social_invite_button">Convidar amigos</string>
+  <string name="social_invite_intent_title">Como quer partilhar?</string>
+  <string name="social_invite_content_title">Estou a fazer ciência no meu telemóvel!</string>
+  <string name="social_invite_content_body">Eu estou a utilizar o meu %1$s para realizar computação para a ciência. Tu também podes! Transfere a aplicação em: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-ro/strings.xml b/android/BOINC/app/src/main/res/values-ro/strings.xml
new file mode 100644
index 0000000..637e006
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-ro/strings.xml
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Se încarcă! Vă rugăm aşteptaţi…</string>
+  <string name="generic_button_continue">Continuă</string>
+  <string name="generic_button_finish">Finalizează</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Selectați proiecte științifice la care doriți să contribuiți:</string>
+  <string name="attachproject_list_header">Alegeţi un proiect:</string>
+  <string name="attachproject_list_manual_button">Adăugaţi proiect prin URL</string>
+  <string name="attachproject_list_manual_dialog_title">Introduceţi URL proiect:</string>
+  <string name="attachproject_list_manual_dialog_button">Adaugă proiect</string>
+  <string name="attachproject_list_manual_no_url">Vă rugăm introduceţi URL proiect</string>
+  <string name="attachproject_list_acctmgr_button">Adaugă manager de cont</string>
+  <string name="attachproject_list_no_internet">Nu există conexiune la Internet</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Introduceți informațiile contului</string>
+  <string name="attachproject_credential_input_desc">Introduceți informațiile contului pentru proiectele selectate:</string>
+  <string name="attachproject_credential_input_show_pwd">Arată parola</string>
+  <string name="attachproject_individual_credential_input">Atașează proiecte individual</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Au fost probleme la atașarea proiectelor științifice:</string>
+  <string name="attachproject_conflict_undefined">Nu s-a putut conecta</string>
+  <string name="attachproject_conflict_not_unique">Contul există cu o altă parolă</string>
+  <string name="attachproject_conflict_bad_password">Parolă incorectă</string>
+  <string name="attachproject_conflict_unknown_user">Contul nu există</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Contul nu există, vizitați site-ul proiectului pentru înregistrare</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Se atașează</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Sugestie</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Cum să contribuiți:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Conectați-vă la WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Conectați Încărcătorul</string>
+  <string name="attachproject_hint_contribtion_screen">3. Închideți Ecranul</string>
+  <string name="attachproject_hint_projectwebsite_header">Vizitați site-urile proiectelor pentru:</string>
+  <string name="attachproject_hint_projectwebsite_science">Învățați mai multe despre știință</string>
+  <string name="attachproject_hint_projectwebsite_stats">Vizualizați statisticile contribuției</string>
+  <string name="attachproject_hint_projectwebsite_community">Intrați în contact cu alți voluntari</string>
+  <string name="attachproject_hint_platforms_header">BOINC este disponibil și pentru calculatorul sau laptop-ul dumneavoastră, vizitați boinc.berkeley.edu pentru a afla mai multe.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Se contactează serverul proiectului…</string>
+  <string name="attachproject_login_image_description">Logo proiect.</string>
+  <string name="attachproject_login_header_general_area">Zona generală:</string>
+  <string name="attachproject_login_header_specific_area">Zona specifică:</string>
+  <string name="attachproject_login_header_description">Descriere:</string>
+  <string name="attachproject_login_header_home">Acasă:</string>
+  <string name="attachproject_login_header_url">Site web:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Acest proiect suportă dispozitive Android</string>
+  <string name="attachproject_login_platform_not_supported">Acest proiect nu suportă dispozitive Android</string>
+  <string name="attachproject_login_category_terms_of_use">Condiţii de utilizare pentru</string>
+  <string name="attachproject_login_accept_terms_of_use">Prin crearea unui cont la acest proiect, acceptaţi condiţiile de utilizare aşa cum sunt prezentate mai sus.</string>
+  <string name="attachproject_login_category_login">Conectaţi-vă cu un cont existent</string>
+  <string name="attachproject_login_header_id_email">eMail:</string>
+  <string name="attachproject_login_header_id_name">Nume:</string>
+  <string name="attachproject_login_header_pwd">Parolă:</string>
+  <string name="attachproject_login_category_creation">Nou pentru</string>
+  <string name="attachproject_login_header_creation_enabled">Înregistraţi un cont pentru a participa:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Vizitaţi website-ul proiectului pentru a crea un cont:</string>
+  <string name="attachproject_login_header_creation_disabled">Proiectul nu permite momentan crearea de noi conturi!</string>
+  <string name="attachproject_login_button_registration">Înregistrează</string>
+  <string name="attachproject_login_button_login">Autentificare</string>
+  <string name="attachproject_login_button_forgotpw">Aţi Uitat Parola</string>
+  <string name="attachproject_login_error_toast">Nu s-a putut contacta proiectul!</string>
+  <string name="attachproject_login_attached">Atașat</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Înregistrare cont pentru</string>
+  <string name="attachproject_registration_header_url">Proiect:</string>
+  <string name="attachproject_registration_header_email">eMail:</string>
+  <string name="attachproject_registration_header_username">Nume:</string>
+  <string name="attachproject_registration_header_teamname">Echipă:</string>
+  <string name="attachproject_registration_header_pwd">Parolă:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... Reintroduceţi:</string>
+  <string name="attachproject_registration_button">Creează</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Folosiți un manager de cont BOINC pentru a adăuga și gestiona proiecte multiple</string>
+  <string name="attachproject_acctmgr_header">Adaugă manager de cont</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Utilizator:</string>
+  <string name="attachproject_acctmgr_header_pwd">Parolă:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Reintroduceţi:</string>
+  <string name="attachproject_acctmgr_button">Adaugă</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Utilizatorul nu a fost găsit</string>
+  <string name="attachproject_error_short_pwd">Parola este prea scurtă</string>
+  <string name="attachproject_error_no_internet">Conexiunea a eșuat</string>
+  <string name="attachproject_error_pwd_no_match">Parolele nu sunt identice</string>
+  <string name="attachproject_error_pwd_no_retype">Introduceți parola din nou</string>
+  <string name="attachproject_error_no_url">Introduceți URL</string>
+  <string name="attachproject_error_no_email">Vă rugăm introduceţi adresa dumneavoastră de email</string>
+  <string name="attachproject_error_no_pwd">Vă rugăm introduceţi o parolă</string>
+  <string name="attachproject_error_no_name">Vă rugăm introduceţi numele de utilizator</string>
+  <string name="attachproject_error_unknown">eșuat</string>
+  <string name="attachproject_error_bad_username">Nume utilizator refuzat</string>
+  <string name="attachproject_error_email_in_use">Adresa de email este deja utilizată</string>
+  <string name="attachproject_error_project_down">Proiectul este offline</string>
+  <string name="attachproject_error_email_bad_syntax">Adresa de email refuzată</string>
+  <string name="attachproject_error_bad_pwd">Parola refuzată</string>
+  <string name="attachproject_error_creation_disabled">Crearea de conturi este dezactivată la acest proiect</string>
+  <string name="attachproject_error_invalid_url">URL invalid</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Înapoi</string>
+  <string name="attachproject_working_finish_button">Finalizare</string>
+  <string name="attachproject_working_check_desc">Sucess</string>
+  <string name="attachproject_working_failed_desc">Eșuat</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Conectează</string>
+  <string name="attachproject_working_verify">Verificare cont</string>
+  <string name="attachproject_working_register">Înregistrează cont</string>
+  <string name="attachproject_working_login">Autentificare</string>
+  <string name="attachproject_working_acctmgr">Adaugă manager de cont</string>
+  <string name="attachproject_working_acctmgr_sync">Sincronizează</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Apăsați aici pentru a alege un proiect.</string>
+  <string name="main_error">Whooops</string>
+  <string name="main_error_long">...asta nu ar trebui să se întâmple!\nApăsaţi pe icoană pentru a încerca din nou.</string>
+  <string name="main_title_icon_desc">Icoană BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Stare</string>
+  <string name="tab_projects">Proiecte</string>
+  <string name="tab_tasks">Task-uri</string>
+  <string name="tab_transfers">Transferuri</string>
+  <string name="tab_preferences">Preferințe</string>
+  <string name="tab_notices">Atenționări</string>
+  <string name="tab_desc">Navigare</string>
+  <!--status strings-->
+  <string name="status_running">Se calculează</string>
+  <string name="status_running_long">Mulţumim pentru participare.</string>
+  <string name="status_paused">Suspendat</string>
+  <string name="status_idle">Nimic de făcut</string>
+  <string name="status_idle_long">Se aşteaptă task-uri…</string>
+  <string name="status_computing_disabled">Suspendat</string>
+  <string name="status_computing_disabled_long">Apăsaţi play pentru a relua calculele şi comunicarea în reţea.</string>
+  <string name="status_launching">Se pornește…</string>
+  <string name="status_noproject">Alegeţi un proiect în care să participaţi.</string>
+  <string name="status_closing">Se închide…</string>
+  <string name="status_benchmarking">Se măsoară performanţa…</string>
+  <string name="status_image_description">imagine proiect</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Se citest preferinţele…</string>
+  <string name="prefs_submit_button">Salvează</string>
+  <string name="prefs_dialog_title">Introduceți noua valoare:</string>
+  <string name="prefs_dialog_title_selection">Selectați:</string>
+  <string name="prefs_category_general">Generale</string>
+  <string name="prefs_category_network">Reţea</string>
+  <string name="prefs_category_power">Energie</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Stocare</string>
+  <string name="prefs_category_memory">Memorie</string>
+  <string name="prefs_category_debug">Depanare</string>
+  <string name="prefs_show_advanced_header">Arată preferinţe şi control avansat…</string>
+  <string name="prefs_suspend_when_screen_on">Opriți calculele când ecranul este aprins</string>
+  <string name="prefs_stationary_device_mode_header">Mod echipament staționar</string>
+  <string name="prefs_stationary_device_mode_description">Permite calculele indiferent de preferințele de sursă de alimentare. Activați doar dacă echipamentul nu are baterie.</string>
+  <string name="prefs_power_source_header">Surse de alimentare pentru calcule</string>
+  <string name="prefs_power_source_description">Selectează sursele de alimentare pe care BOINC le poate utiliza pentru calcule.</string>
+  <string name="prefs_power_source_ac">Priză</string>
+  <string name="prefs_power_source_usb">Conexiune USB</string>
+  <string name="prefs_power_source_wireless">Încărcător fără fir</string>
+  <string name="prefs_power_source_battery">Baterie</string>
+  <string name="battery_charge_min_pct_header">Nivel minim baterie</string>
+  <string name="battery_charge_min_pct_description">BOINC suspendă calculele când nivelul bateriei este sub cel definit.</string>
+  <string name="battery_temperature_max_header">Temperatură maximă baterie</string>
+  <string name="battery_temperature_max_description">BOINC suspendă calculele când temperatura bateriei depăşeşte nivelul definit. Nu este recomandat să modificaţi această valoare.</string>
+  <string name="prefs_disk_max_pct_header">Spaţiu de stocare maxim utilizat</string>
+  <string name="prefs_disk_max_pct_description">Ce procent din spaţiul de stocare al dispozitivului dumneavoastră are voie să fie utilizat de BOINC?</string>
+  <string name="prefs_disk_min_free_gb_header">Spaţiu stocare minim liber</string>
+  <string name="prefs_disk_min_free_gb_description">Cât din spaţiul de stocare al dispozitivului trebuie să rămână liber?</string>
+  <string name="prefs_disk_access_interval_header">Interval acces</string>
+  <string name="prefs_disk_access_interval_description">Sugerează un interval între accesurile la disc</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Limită zilnică transfer</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Limitează traficul zilnic realizat de BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Transferă task-uri doar pe WiFi</string>
+  <string name="prefs_autostart_header">Pornire automată</string>
+  <string name="prefs_show_notification_notices_header">Arată notificare pentru noi atenționări</string>
+  <string name="prefs_show_notification_suspended_header">Arată notificare când e suspendat</string>
+  <string name="prefs_cpu_number_cpus_header">Nuclee CPU folosite</string>
+  <string name="prefs_cpu_number_cpus_description">Limitează numărul de nuclee CPU folosite de BOINC pentru calcule.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pauză la utilizare CPU peste</string>
+  <string name="prefs_cpu_other_load_suspension_description">Determină când BOINC întrerupe calculele din cauza utilizării CPU a altor aplicaţii.</string>
+  <string name="prefs_cpu_time_max_header">limită CPU</string>
+  <string name="prefs_cpu_time_max_description">Limitează timpul CPU pe care îl foloseşte BOINC pentru calcule.</string>
+  <string name="prefs_memory_max_idle_header">Limită RAM</string>
+  <string name="prefs_memory_max_idle_description">Limitează cantitatea de RAM pe care task-urile au voie să o ocupe.</string>
+  <string name="prefs_client_log_flags_header">Flag-uri jurnal client BOINC</string>
+  <string name="prefs_gui_log_level_header">Nivel jurnal GUI</string>
+  <string name="prefs_gui_log_level_description">Specificaţi nivelul mesajelor jurnal GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sec</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Se citesc proiectele…</string>
+  <string name="projects_add">Adaugă proiect</string>
+  <string name="projects_icon">Icoană proiect</string>
+  <string name="projects_credits">Credit:</string>
+  <string name="projects_credits_host_and_user">%1$,d (pe acest dispozitiv) %2$,d (total)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Suspendat de utilizator</string>
+  <string name="projects_status_dontrequestmorework">Nu se preiau noi task-uri</string>
+  <string name="projects_status_ended">Proiect finalizat - OK pentru ştergere</string>
+  <string name="projects_status_detachwhendone">Se va şterge când se finalizează task-urile</string>
+  <string name="projects_status_schedrpcpending">Cerere planificator în aşteptare</string>
+  <string name="projects_status_schedrpcinprogress">Cerere planificator în curs</string>
+  <string name="projects_status_trickleuppending">Mesaj trickle up în aşteptare</string>
+  <string name="projects_status_backoff">Comunicaţie planificată în:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Comenzi proiect:</string>
+  <string name="projects_control_visit_website">Vizitați pagina web</string>
+  <string name="projects_control_update">Actualizează</string>
+  <string name="projects_control_remove">Șterge</string>
+  <string name="projects_control_suspend">Suspendă</string>
+  <string name="projects_control_resume">Reia</string>
+  <string name="projects_control_nonewtasks">Nu sunt task-uri noi</string>
+  <string name="projects_control_allownewtasks">Permite noi task-uri</string>
+  <string name="projects_control_reset">Resetează</string>
+  <string name="projects_control_dialog_title_acctmgr">Comenzi manager de cont:</string>
+  <string name="projects_control_sync_acctmgr">Sincronizează</string>
+  <string name="projects_control_remove_acctmgr">Dezactivează</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Şterge proiect?</string>
+  <string name="projects_confirm_detach_message">Sunteţi sigur că doriţi să ştergeţi</string>
+  <string name="projects_confirm_detach_message2">din BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Șterge</string>
+  <string name="projects_confirm_reset_title">Resetează proiect</string>
+  <string name="projects_confirm_reset_message">Sunteţi sigur că doriţi să resetaţi</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Resetează</string>
+  <string name="projects_confirm_remove_acctmgr_title">Dezactivează manager de cont</string>
+  <string name="projects_confirm_remove_acctmgr_message">Sunteţi sigur că doriţi să nu mai folosiţi</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Dezactivează</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Nume Task:</string>
+  <string name="tasks_header_elapsed_time">Timp scurs:</string>
+  <string name="tasks_header_project_paused">(suspendat)</string>
+  <string name="tasks_header_deadline">Termen limită:</string>
+  <string name="tasks_result_new">nou</string>
+  <string name="tasks_result_files_downloading">se aşteaptă descărcarea</string>
+  <string name="tasks_result_files_downloaded">descărcare completă</string>
+  <string name="tasks_result_compute_error">eroare calcul</string>
+  <string name="tasks_result_files_uploading">se încarcă</string>
+  <string name="tasks_result_files_uploaded">încărcare completă</string>
+  <string name="tasks_result_aborted">abandonat</string>
+  <string name="tasks_result_upload_failed">încărcarea a eșuat</string>
+  <string name="tasks_active_uninitialized">gata</string>
+  <string name="tasks_active_executing">rulează</string>
+  <string name="tasks_active_suspended">suspendat</string>
+  <string name="tasks_active_abort_pending">se suspendă</string>
+  <string name="tasks_active_quit_pending">se suspendă</string>
+  <string name="tasks_custom_suspended_via_gui">suspendat</string>
+  <string name="tasks_custom_project_suspended_via_gui">proiect suspendat</string>
+  <string name="tasks_custom_ready_to_report">gata de raportare</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Abandonează task?</string>
+  <string name="confirm_abort_task_message">Abandonează task:</string>
+  <string name="confirm_abort_task_confirm">Abandonează</string>
+  <string name="confirm_cancel">Anulează</string>
+  <string name="confirm_image_desc">Dialog de confirmare</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Se citesc transferurile…</string>
+  <string name="trans_upload">Încarcă</string>
+  <string name="trans_download">Descarcă</string>
+  <string name="trans_retryin">reîncearcă în</string>
+  <string name="trans_failed">eşuat</string>
+  <string name="trans_suspended">suspendat</string>
+  <string name="trans_active">activ</string>
+  <string name="trans_pending">în așteptare</string>
+  <string name="trans_projectbackoff">revenire proiect</string>
+  <string name="trans_header_name">Fişier:</string>
+  <string name="trans_control_retry">Reîncearcă transferuri</string>
+  <string name="confirm_abort_trans_title">Abandonează transfer?</string>
+  <string name="confirm_abort_trans_message">Abandonează Fişier:</string>
+  <string name="confirm_abort_trans_confirm">Abandonează</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Se citesc atenţionările…</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Se încarcă mesajele din jurnal…</string>
+  <string name="eventlog_client_header">Mesaje Client</string>
+  <string name="eventlog_gui_header">Mesaje GUI</string>
+  <string name="eventlog_copy_toast">Jurnal copiat în clipboard.</string>
+  <string name="eventlog_email_subject">Jurnal Evenimente pentru BOINC pe Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Calcule suspendate.</string>
+  <string name="suspend_batteries">Conectaţi dispozitivul dumneavoastră la un încărcător pentru a continua calculele.</string>
+  <string name="suspend_screen_on">Închideți ecranul pentru a continua calculele.</string>
+  <string name="suspend_useractive">Utilizatorul este activ.</string>
+  <string name="suspend_tod">În afara intervalului de timp pentru calcule.</string>
+  <string name="suspend_bm">BOINC evaluează performanţa dispozitivului dumneavoastră…</string>
+  <string name="suspend_disksize">Nu mai există spaţiu pe disc.</string>
+  <string name="suspend_cputhrottle">CPU throttle planificat.</string>
+  <string name="suspend_noinput">Fără activitate recentă a utilizatorului.</string>
+  <string name="suspend_delay">Întârziere iniţializare.</string>
+  <string name="suspend_exclusiveapp">Rulează o aplicaţie exclusivă.</string>
+  <string name="suspend_cpu">Dispozitivul dumneavoastră este ocupat cu alte aplicaţii.</string>
+  <string name="suspend_network_quota">BOINC a atins limita de transfer prin reţea.</string>
+  <string name="suspend_os">Oprit de Android.</string>
+  <string name="suspend_wifi">Nu este conectat la WiFi.</string>
+  <string name="suspend_battery_charging">Se așteaptă încărcarea bateriei.</string>
+  <string name="suspend_battery_charging_long">Calculele vor fi reluate când bateria va fi încărcata</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">curent</string>
+  <string name="suspend_battery_overheating">Se aşteaptă să se răcească bateria</string>
+  <string name="suspend_user_req">Se reiau calculele…</string>
+  <string name="suspend_network_user_req">manual.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Cerut de utilizator</string>
+  <string name="rpcreason_needwork">Pentru a primi de lucru</string>
+  <string name="rpcreason_resultsdue">Pentru a raporta task-urile finalizate</string>
+  <string name="rpcreason_trickleup">Pentru a trimite mesaj trickle up</string>
+  <string name="rpcreason_acctmgrreq">Cerut de managerul de cont</string>
+  <string name="rpcreason_init">Iniţializare proiect</string>
+  <string name="rpcreason_projectreq">Cerut de proiect</string>
+  <string name="rpcreason_unknown">Motiv necunoscut</string>
+  <!--menu-->
+  <string name="menu_refresh">Reîncarcă</string>
+  <string name="menu_emailto">Trimite ca Email</string>
+  <string name="menu_copy">Copiază în Clipboard</string>
+  <string name="menu_eventlog">Jurnal Evenimente</string>
+  <string name="menu_exit">Închide BOINC</string>
+  <string name="menu_run_mode_disable">Suspendă</string>
+  <string name="menu_run_mode_enable">Reia</string>
+  <string name="menu_about">Despre</string>
+  <string name="menu_help">Ajutor</string>
+  <!--about dialog-->
+  <string name="about_button">Înapoi</string>
+  <string name="about_title">Despre</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Versiune</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+    <string name="about_copyright">© 2003–2016 Universitatea din California, Berkeley.\nToate Drepturile Rezervate.</string>
+  <string name="about_copyright_reserved">Toate Drepturile Rezervate.</string>
+  <string name="about_credits">Mulțumiri Institutului Max Planck pentru Fizică Gravitațională, IBM Corporation și HTC Corporation pentru suportul lor.</string>
+    <!--notice notification-->
+  <!--multi BOINC compitability-->
+  <string name="nonexcl_dialog_header">Aplicație calcule voluntare detectată</string>
+  <string name="nonexcl_dialog_text">O altă aplicație de calcule voluntare rulează pe acest echipament. Doar o singură versiune poate rula la un moment dat.</string>
+  <string name="nonexcl_dialog_exit">Ieșire</string>
+  <!--social integration-->
+  <string name="social_invite_button">Invitați prieteni</string>
+  <string name="social_invite_intent_title">Cum doriți să partajați?</string>
+  <string name="social_invite_content_title">Fac cercetări pe smartphone-ul meu!</string>
+  <string name="social_invite_content_body">Folosesc %1$s pentru a calcula pentru știință. Poți și tu! Descarcă aplicația de la: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-ru/strings.xml b/android/BOINC/app/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000..10e74d8
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-ru/strings.xml
@@ -0,0 +1,359 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Загрузка! Пожалуйста подождите…</string>
+  <string name="generic_button_continue">Продолжить</string>
+  <string name="generic_button_finish">Готово</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Выберите научные проекты, в которых Вы хотите принять участие:</string>
+  <string name="attachproject_list_header">Выберите проект:</string>
+  <string name="attachproject_list_manual_button">Добавить URL-адрес проекта</string>
+  <string name="attachproject_list_manual_dialog_title">Введите URL проекта:</string>
+  <string name="attachproject_list_manual_dialog_button">Добавить проект</string>
+  <string name="attachproject_list_manual_no_url">Пожалуйста, введите URL проекта</string>
+  <string name="attachproject_list_acctmgr_button">Добавить менеджер проектов</string>
+  <string name="attachproject_list_no_internet">Нет подключения к Интернету</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Ввести учётную информацию</string>
+  <string name="attachproject_credential_input_desc">Введите учётную информацию для выбранных проектов:</string>
+  <string name="attachproject_credential_input_show_pwd">Показать пароль</string>
+  <string name="attachproject_individual_credential_input">Подключиться к проектам по отдельности</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Возникли проблемы с подключением к научным проектам:</string>
+  <string name="attachproject_conflict_undefined">Не удалось подключиться</string>
+  <string name="attachproject_conflict_not_unique">Учётная запись существует с другим паролем</string>
+  <string name="attachproject_conflict_bad_password">Пароль неверен</string>
+  <string name="attachproject_conflict_unknown_user">Учётная запись не существует</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Учётная запись не существует, для регистрации посетите веб-сайт проекта</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Подключение</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Подсказка</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Как помочь:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Подключиться к Wi-Fi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Подключить зарядное устройство</string>
+  <string name="attachproject_hint_contribtion_screen">3. Отключить экран</string>
+  <string name="attachproject_hint_projectwebsite_header">Посетить веб-сайты проектов для:</string>
+  <string name="attachproject_hint_projectwebsite_science">Узнать больше о науке</string>
+  <string name="attachproject_hint_projectwebsite_stats">Посмотреть статистику участия</string>
+  <string name="attachproject_hint_projectwebsite_community">Общаться с другими участниками</string>
+  <string name="attachproject_hint_platforms_header">BOINC также доступен для вашего компьютера или ноутбука, посетите boinc.berkeley.edu чтобы узнать больше.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Соединение с сервером проекта…</string>
+  <string name="attachproject_login_image_description">Логотип проекта.</string>
+  <string name="attachproject_login_header_general_area">Основная область:</string>
+  <string name="attachproject_login_header_specific_area">Специализация:</string>
+  <string name="attachproject_login_header_description">Описание:</string>
+  <string name="attachproject_login_header_home">Владелец:</string>
+  <string name="attachproject_login_header_url">Веб-сайт:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Этот проект поддерживает Android-устройства</string>
+  <string name="attachproject_login_platform_not_supported">Этот проект не поддерживает устройства на базе Android</string>
+  <string name="attachproject_login_category_terms_of_use">Условия использования для</string>
+  <string name="attachproject_login_accept_terms_of_use">Создавая учётную запись в этом проекте, вы принимаете условия использования, которые показаны выше.</string>
+  <string name="attachproject_login_category_login">Войти с существующей учётной записью</string>
+  <string name="attachproject_login_header_id_email">Электронная почта:</string>
+  <string name="attachproject_login_header_id_name">Имя:</string>
+  <string name="attachproject_login_header_pwd">Пароль:</string>
+  <string name="attachproject_login_category_creation">Впервые в</string>
+  <string name="attachproject_login_header_creation_enabled">Зарегистрировать учётную запись для участия:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Посетить веб-сайт проекта для создания учётной записи:</string>
+  <string name="attachproject_login_header_creation_disabled">Этот проект в данный момент не позволяет создавать новые учётные записи.</string>
+  <string name="attachproject_login_button_registration">Зарегистрироваться</string>
+  <string name="attachproject_login_button_login">Войти</string>
+  <string name="attachproject_login_button_forgotpw">Восстановить пароль</string>
+  <string name="attachproject_login_error_toast">Сбой при установке связи с проектом!</string>
+  <string name="attachproject_login_attached">Подключен</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Регистрация учётной записи для</string>
+  <string name="attachproject_registration_header_url">Проект:</string>
+  <string name="attachproject_registration_header_email">Электронная почта:</string>
+  <string name="attachproject_registration_header_username">Имя:</string>
+  <string name="attachproject_registration_header_teamname">Команда:</string>
+  <string name="attachproject_registration_header_pwd">Пароль:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Повторите:</string>
+  <string name="attachproject_registration_button">Создать</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Используйте менеджер проектов BOINC, чтобы добавить и управлять несколькими проектами</string>
+  <string name="attachproject_acctmgr_header">Добавить менеджер проектов</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Пользователь:</string>
+  <string name="attachproject_acctmgr_header_pwd">Пароль:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Повторите:</string>
+  <string name="attachproject_acctmgr_button">Добавить</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Пользователь не найден</string>
+  <string name="attachproject_error_short_pwd">Пароль слишком короткий</string>
+  <string name="attachproject_error_no_internet">Сбой подключения</string>
+  <string name="attachproject_error_pwd_no_match">Пароли не совпадают</string>
+  <string name="attachproject_error_pwd_no_retype">Пожалуйста, введите пароль ещё раз</string>
+  <string name="attachproject_error_no_url">Введите URL</string>
+  <string name="attachproject_error_no_email">Введите адрес электронной почты</string>
+  <string name="attachproject_error_no_pwd">Введите пароль</string>
+  <string name="attachproject_error_no_name">Введите имя пользователя</string>
+  <string name="attachproject_error_unknown">неудача</string>
+  <string name="attachproject_error_bad_username">Имя пользователя не принято</string>
+  <string name="attachproject_error_email_in_use">Адрес электронной почты уже используется</string>
+  <string name="attachproject_error_project_down">Проект выключен</string>
+  <string name="attachproject_error_email_bad_syntax">Адрес электронной почты не принят</string>
+  <string name="attachproject_error_bad_pwd">Пароль не принят</string>
+  <string name="attachproject_error_creation_disabled">Создание учётной записи в данном проекте отключено</string>
+  <string name="attachproject_error_invalid_url">Неправильный адрес (URL)</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Назад</string>
+  <string name="attachproject_working_finish_button">Готово</string>
+  <string name="attachproject_working_check_desc">Успешно</string>
+  <string name="attachproject_working_failed_desc">Неудачно</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Подключиться</string>
+  <string name="attachproject_working_verify">Проверить учётную запись</string>
+  <string name="attachproject_working_register">Зарегистрировать учётную запись</string>
+  <string name="attachproject_working_login">Войти</string>
+  <string name="attachproject_working_acctmgr">Добавить менеджер проектов</string>
+  <string name="attachproject_working_acctmgr_sync">Синхронизировать</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Нажмите здесь, чтобы выбрать проект.</string>
+  <string name="main_error">Упс</string>
+  <string name="main_error_long">…этого не должно было произойти!\nНажмите на значок BOINC, чтобы попробовать ещё раз.</string>
+  <string name="main_title_icon_desc">Значок BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Статус</string>
+  <string name="tab_projects">Проекты</string>
+  <string name="tab_tasks">Задания</string>
+  <string name="tab_transfers">Передачи</string>
+  <string name="tab_preferences">Настройки</string>
+  <string name="tab_notices">Уведомления</string>
+  <string name="tab_desc">Навигация</string>
+  <!--status strings-->
+  <string name="status_running">Выполнение расчётов</string>
+  <string name="status_running_long">Спасибо за участие.</string>
+  <string name="status_paused">Приостановлено</string>
+  <string name="status_idle">Нечего делать</string>
+  <string name="status_idle_long">Ожидание заданий…</string>
+  <string name="status_computing_disabled">Приостановлено</string>
+  <string name="status_computing_disabled_long">Нажмите кнопку Play для возобновления расчётов и передачи данных.</string>
+  <string name="status_launching">Запуск…</string>
+  <string name="status_noproject">Выбрать проект для участия.</string>
+  <string name="status_closing">Закрытие…</string>
+  <string name="status_benchmarking">Тестирование производительности…</string>
+  <string name="status_image_description">изображение проекта</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Чтение настроек…</string>
+  <string name="prefs_submit_button">Сохранить</string>
+  <string name="prefs_dialog_title">Введите новое значение:</string>
+  <string name="prefs_dialog_title_selection">Выбрать:</string>
+  <string name="prefs_category_general">Основные</string>
+  <string name="prefs_category_network">Сеть</string>
+  <string name="prefs_category_power">Питание</string>
+  <string name="prefs_category_cpu">Процессор</string>
+  <string name="prefs_category_storage">Диск</string>
+  <string name="prefs_category_memory">Память</string>
+  <string name="prefs_category_debug">Отладка</string>
+  <string name="prefs_show_advanced_header">Показать дополнительные настройки и элементы управления…</string>
+  <string name="prefs_suspend_when_screen_on">Приостановить вычисления, когда экран включён</string>
+  <string name="prefs_stationary_device_mode_header">Стационарный режим работы устройства</string>
+  <string name="prefs_stationary_device_mode_description">Разрешает вычисления независимо от настроек Питания. Включать только в том случае, если устройство не оснащено аккумулятором.</string>
+  <string name="prefs_power_source_header">Источники питания для вычислений</string>
+  <string name="prefs_power_source_description">Выбор источников питания, которые BOINC может использовать для вычислений.</string>
+  <string name="prefs_power_source_ac">Розетки</string>
+  <string name="prefs_power_source_usb">USB-подключение</string>
+  <string name="prefs_power_source_wireless">Беспроводное зарядное устройство</string>
+  <string name="prefs_power_source_battery">Аккумулятор</string>
+  <string name="battery_charge_min_pct_header">Мин. уровень заряда батареи</string>
+  <string name="battery_charge_min_pct_description">BOINC приостановит расчёты, когда заряд батареи будет ниже указанного уровня.</string>
+  <string name="battery_temperature_max_header">Макс. температура батареи</string>
+  <string name="battery_temperature_max_description">BOINC приостановит расчёты, когда температура батареи превысит указанный уровень. Не рекомендуется менять это значение.</string>
+  <string name="prefs_disk_max_pct_header">Макс. используемое пространство памяти</string>
+  <string name="prefs_disk_max_pct_description">Сколько процентов от общего объёма памяти вашего устройства BOINC может использовать?</string>
+  <string name="prefs_disk_min_free_gb_header">Мин. свободное пространство</string>
+  <string name="prefs_disk_min_free_gb_description">Какой объём памяти вашего устройства должен оставаться свободным?</string>
+  <string name="prefs_disk_access_interval_header">Период доступа</string>
+  <string name="prefs_disk_access_interval_description">Предлагает интервал между обращениями к диску</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Ежедневный предел передачи</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Ограничивает ежедневный трафик данных, вызванный BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Передавать задания только по WiFi</string>
+  <string name="prefs_autostart_header">Автозапуск</string>
+  <string name="prefs_show_notification_notices_header">Показывать уведомления о поступлении новых сообщений</string>
+  <string name="prefs_show_notification_suspended_header">Показывать уведомление когда приостановлено</string>
+  <string name="prefs_cpu_number_cpus_header">Используемые ядра процессора</string>
+  <string name="prefs_cpu_number_cpus_description">Ограничивает количество ядер процессора, которые использует BOINC для расчётов.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Пауза при использовании процессора выше</string>
+  <string name="prefs_cpu_other_load_suspension_description">Определяет, когда BOINC приостанавливает расчёты из-за использования процессора другими приложениями.</string>
+  <string name="prefs_cpu_time_max_header">Предельное время процессора</string>
+  <string name="prefs_cpu_time_max_description">Ограничивает время процессора, которое использует BOINC для расчётов.</string>
+  <string name="prefs_memory_max_idle_header">Ограничение ОЗУ</string>
+  <string name="prefs_memory_max_idle_description">Ограничивает объём ОЗУ, который задания могут занимать.</string>
+  <string name="prefs_client_log_flags_header">Флаги журнала клиента BOINC</string>
+  <string name="prefs_gui_log_level_header">Уровень журнала GUI</string>
+  <string name="prefs_gui_log_level_description">Задает уровень детализации сообщений журнала GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">сек</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Чтение проектов…</string>
+  <string name="projects_add">Добавить проект</string>
+  <string name="projects_icon">Значок проекта</string>
+  <string name="projects_credits">Очки:</string>
+  <string name="projects_credits_host_and_user">%1$,d (на этом устройстве) %2$,d (всего)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Приостановлен пользователем</string>
+  <string name="projects_status_dontrequestmorework">Не запрашивать новые задания</string>
+  <string name="projects_status_ended">Проект завершён - ОК для удаления</string>
+  <string name="projects_status_detachwhendone">Будет удалён после завершения заданий</string>
+  <string name="projects_status_schedrpcpending">Запрос информации у планировщика</string>
+  <string name="projects_status_schedrpcinprogress">Производится запрос информации у планировщика</string>
+  <string name="projects_status_trickleuppending">Ожидание промежуточной отправки</string>
+  <string name="projects_status_backoff">Связь по расписанию:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Команды проекта:</string>
+  <string name="projects_control_visit_website">Посетить веб-сайт</string>
+  <string name="projects_control_update">Обновить</string>
+  <string name="projects_control_remove">Удалить</string>
+  <string name="projects_control_suspend">Приостановить</string>
+  <string name="projects_control_resume">Возобновить</string>
+  <string name="projects_control_nonewtasks">Не запрашивать задания</string>
+  <string name="projects_control_allownewtasks">Получать новые задания</string>
+  <string name="projects_control_reset">Сбросить</string>
+  <string name="projects_control_dialog_title_acctmgr">Команды менеджера проектов:</string>
+  <string name="projects_control_sync_acctmgr">Синхронизировать</string>
+  <string name="projects_control_remove_acctmgr">Отключить</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Удалить проект?</string>
+  <string name="projects_confirm_detach_message">Вы действительно хотите удалить</string>
+  <string name="projects_confirm_detach_message2">из BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Удалить</string>
+  <string name="projects_confirm_reset_title">Перезапустить проект</string>
+  <string name="projects_confirm_reset_message">Вы действительно хотите перезапустить</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Сбросить</string>
+  <string name="projects_confirm_remove_acctmgr_title">Отключить менеджер проектов</string>
+  <string name="projects_confirm_remove_acctmgr_message">Вы уверены, что хотите прекратить использование</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Отключить</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Название задания:</string>
+  <string name="tasks_header_elapsed_time">Затрачено времени:</string>
+  <string name="tasks_header_project_paused">(приостановлено)</string>
+  <string name="tasks_header_deadline">Крайний срок:</string>
+  <string name="tasks_result_new">новый</string>
+  <string name="tasks_result_files_downloading">ожидание загрузки</string>
+  <string name="tasks_result_files_downloaded">загрузка завершена</string>
+  <string name="tasks_result_compute_error">ошибка расчётов</string>
+  <string name="tasks_result_files_uploading">отправка</string>
+  <string name="tasks_result_files_uploaded">отправка завершена</string>
+  <string name="tasks_result_aborted">прервано</string>
+  <string name="tasks_result_upload_failed">сбой при отправке</string>
+  <string name="tasks_active_uninitialized">готово</string>
+  <string name="tasks_active_executing">выполняется</string>
+  <string name="tasks_active_suspended">приостановлено</string>
+  <string name="tasks_active_abort_pending">приостанавливается</string>
+  <string name="tasks_active_quit_pending">приостанавливается</string>
+  <string name="tasks_custom_suspended_via_gui">приостановлено</string>
+  <string name="tasks_custom_project_suspended_via_gui">проект приостановлен</string>
+  <string name="tasks_custom_ready_to_report">готово для подтверждения</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Прервать задание?</string>
+  <string name="confirm_abort_task_message">Прервать задание:</string>
+  <string name="confirm_abort_task_confirm">Прервать</string>
+  <string name="confirm_cancel">Отмена</string>
+  <string name="confirm_image_desc">Диалог подтверждения</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Чтение списка передач…</string>
+  <string name="trans_upload">Отправка</string>
+  <string name="trans_download">Загрузка</string>
+  <string name="trans_retryin">повтор через</string>
+  <string name="trans_failed">неудача</string>
+  <string name="trans_suspended">приостановлено</string>
+  <string name="trans_active">активна</string>
+  <string name="trans_pending">ожидает</string>
+  <string name="trans_projectbackoff">запрос к проекту отложен на</string>
+  <string name="trans_header_name">Файл:</string>
+  <string name="trans_control_retry">Повторить передачи</string>
+  <string name="confirm_abort_trans_title">Прервать передачу?</string>
+  <string name="confirm_abort_trans_message">Прервать файл:</string>
+  <string name="confirm_abort_trans_confirm">Прервать</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Чтение уведомлений…</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Загрузка сообщений журнала…</string>
+  <string name="eventlog_client_header">Сообщения клиента</string>
+  <string name="eventlog_gui_header">Сообщения GUI</string>
+  <string name="eventlog_copy_toast">Журнал скопирован в буфер обмена.</string>
+  <string name="eventlog_email_subject">Журнал событий для BOINC на Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Расчёты приостановлены.</string>
+  <string name="suspend_batteries">Подключите ваше устройство к зарядному устройству для продолжения расчётов.</string>
+  <string name="suspend_screen_on">Выключить экран для продолжения вычислений.</string>
+  <string name="suspend_useractive">Пользователь работает.</string>
+  <string name="suspend_tod">Закончилось выделенное время для расчётов.</string>
+  <string name="suspend_bm">BOINC измеряет производительность вашего устройства…</string>
+  <string name="suspend_disksize">Закончилось свободное место на диске.</string>
+  <string name="suspend_cputhrottle">Запланированное ограничение нагрузки процессора.</string>
+  <string name="suspend_noinput">Нет активности пользователя за последнее время.</string>
+  <string name="suspend_delay">Инициализация отложена.</string>
+  <string name="suspend_exclusiveapp">Выполняется привилегированное приложение.</string>
+  <string name="suspend_cpu">Ваше устройство занято другими приложениями.</string>
+  <string name="suspend_network_quota">BOINC достиг ограничения передачи данных по сети.</string>
+  <string name="suspend_os">Android остановил.</string>
+  <string name="suspend_wifi">Нет подключения к WiFi.</string>
+  <string name="suspend_battery_charging">Ожидание увеличения уровня заряда батареи.</string>
+  <string name="suspend_battery_charging_long">Расчёты возобновятся, когда заряд батареи достигнет</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">в данный момент</string>
+  <string name="suspend_battery_overheating">Ожидание охлаждения батареи</string>
+  <string name="suspend_user_req">Возобновление расчётов…</string>
+  <string name="suspend_network_user_req">вручную.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Запрошено пользователем</string>
+  <string name="rpcreason_needwork">Запросить задания</string>
+  <string name="rpcreason_resultsdue">Сообщить о завершённых заданиях</string>
+  <string name="rpcreason_trickleup">Отправить промежуточное сообщение</string>
+  <string name="rpcreason_acctmgrreq">Запрошено менеджером проектов</string>
+  <string name="rpcreason_init">Инициализация проекта</string>
+  <string name="rpcreason_projectreq">Запрошено проектом</string>
+  <string name="rpcreason_unknown">Неизвестная причина</string>
+  <!--menu-->
+  <string name="menu_refresh">Обновить</string>
+  <string name="menu_emailto">Отправить письмом</string>
+  <string name="menu_copy">Копировать в буфер обмена</string>
+  <string name="menu_eventlog">Журнал событий</string>
+  <string name="menu_exit">Выйти из BOINC</string>
+  <string name="menu_run_mode_disable">Приостановить</string>
+  <string name="menu_run_mode_enable">Возобновить</string>
+  <string name="menu_about">О</string>
+  <string name="menu_help">Справка</string>
+  <!--about dialog-->
+  <string name="about_button">Вернуться</string>
+  <string name="about_title">О</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Версия</string>
+  <string name="about_name_long">BOINC - Berkeley Open Infrastructure for Network Computing\nОткрытая Инфраструктура для Распределенных Вычислений университета Беркли</string>
+  <string name="about_copyright">\u00A9 2003–2016 Калифорнийский университет, Беркли.</string>
+  <string name="about_copyright_reserved">Все права защищены.</string>
+  <string name="about_credits">Спасибо за поддержку Институту гравитационной физики Макса Планка, Корпорации IBM и Корпорации HTC.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Новое уведомление от %1$s</item>
+    <item quantity="few">Новое уведомление от %1$s</item>
+    <item quantity="many">Новое уведомление от %1$s</item>
+    <item quantity="other">%2$,d новых уведомлений</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Обнаружено приложение добровольных вычислений</string>
+  <string name="nonexcl_dialog_text">Ещё одно приложение добровольных вычислений работает на этом устройстве. Одновременно может работать только одна версия.</string>
+  <string name="nonexcl_dialog_exit">Выход</string>
+  <!--social integration-->
+  <string name="social_invite_button">Пригласить друзей</string>
+  <string name="social_invite_intent_title">Как Вы хотите поделиться?</string>
+  <string name="social_invite_content_title">Я участвую в научных исследованиях на моём смартфоне!</string>
+  <string name="social_invite_content_body">Я использую мой %1$s для выполнения научных расчётов. Ты тоже можешь принять участие! Скачай приложение здесь: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-sk/strings.xml b/android/BOINC/app/src/main/res/values-sk/strings.xml
new file mode 100644
index 0000000..b6fa894
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-sk/strings.xml
@@ -0,0 +1,359 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Načítava sa! Prosím čakajte...</string>
+  <string name="generic_button_continue">Pokračovať</string>
+  <string name="generic_button_finish">Dokončiť</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Zvoľte vedecké projekty, ktorým chcete pomôcť:</string>
+  <string name="attachproject_list_header">Zvoľte projekt</string>
+  <string name="attachproject_list_manual_button">Pridať projekt pomocou URL</string>
+  <string name="attachproject_list_manual_dialog_title">Zadajte URL projektu:</string>
+  <string name="attachproject_list_manual_dialog_button">Pripojiť sa k projektu</string>
+  <string name="attachproject_list_manual_no_url">Prosím zadajte URL projektu</string>
+  <string name="attachproject_list_acctmgr_button">Pridať Správcu konta.</string>
+  <string name="attachproject_list_no_internet">Žiadne pripojenie k Internetu</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Uveďte údaje o účte</string>
+  <string name="attachproject_credential_input_desc">Uveďte údaje o účte pre vybrané projekty:</string>
+  <string name="attachproject_credential_input_show_pwd">Ukázať heslo</string>
+  <string name="attachproject_individual_credential_input">Pripojiť projekty individuálne</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Nastali problémi pri pripojení výskumných projektov:</string>
+  <string name="attachproject_conflict_undefined">Pripojenie sa nepodarilo</string>
+  <string name="attachproject_conflict_not_unique">Účet existuje s iným heslom</string>
+  <string name="attachproject_conflict_bad_password">Nesprávne heslo</string>
+  <string name="attachproject_conflict_unknown_user">Účet neexistuje</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Účet neexistuje, navštívte stránku projektu na registráciu</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Pripája sa</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Pomôcka</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Ako pomôcť:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Pripojiť k WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Pripojte nabíjačku</string>
+  <string name="attachproject_hint_contribtion_screen">3. Vypnite obrazovku</string>
+  <string name="attachproject_hint_projectwebsite_header">Navštívte stránky projektov na:</string>
+  <string name="attachproject_hint_projectwebsite_science">Zistiť viac o vede</string>
+  <string name="attachproject_hint_projectwebsite_stats">Skontrolovať štatistiky</string>
+  <string name="attachproject_hint_projectwebsite_community">Buďte v kontakte s ďalšími dobrovoľníkmi</string>
+  <string name="attachproject_hint_platforms_header">BOINC je k dispozícii aj pre váš počítač alebo laptop. Navštívte boinc.berkley.edu pre viac informácií.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Pripájanie na server projektu…</string>
+  <string name="attachproject_login_image_description">Logo projektu.</string>
+  <string name="attachproject_login_header_general_area">Všeobecná oblasť:</string>
+  <string name="attachproject_login_header_specific_area">Špecifická oblasť:</string>
+  <string name="attachproject_login_header_description">Popis:</string>
+  <string name="attachproject_login_header_home">Domovská stránka:</string>
+  <string name="attachproject_login_header_url">Stránka:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Projekt podporuje tento typ zariadenia</string>
+  <string name="attachproject_login_platform_not_supported">Projekt nepodporuje tento typ zariadenia</string>
+  <string name="attachproject_login_category_terms_of_use">Podmienky používania </string>
+  <string name="attachproject_login_accept_terms_of_use">Vytvorením účtu súhlasíte s hore uvedenými podmienkami používania.</string>
+  <string name="attachproject_login_category_login">Prihlásiť sa s existujúcim účtom</string>
+  <string name="attachproject_login_header_id_email">e-mail</string>
+  <string name="attachproject_login_header_id_name">Meno:</string>
+  <string name="attachproject_login_header_pwd">Heslo:</string>
+  <string name="attachproject_login_category_creation">Nový v</string>
+  <string name="attachproject_login_header_creation_enabled">Zaregistrujte sa, aby ste sa mohli pridať:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Navštívte stránku projektu na vytvorenie účtu:</string>
+  <string name="attachproject_login_header_creation_disabled">Tento projekt momentálne neakceptuje nové účty.</string>
+  <string name="attachproject_login_button_registration">Registrácia</string>
+  <string name="attachproject_login_button_login">Prihlásiť sa</string>
+  <string name="attachproject_login_button_forgotpw">Zabudnuté heslo</string>
+  <string name="attachproject_login_error_toast">Kontaktovanie projektu zlyhalo!</string>
+  <string name="attachproject_login_attached">Pripojené</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Registrácia účtu na</string>
+  <string name="attachproject_registration_header_url">Projekt:</string>
+  <string name="attachproject_registration_header_email">E-mail:</string>
+  <string name="attachproject_registration_header_username">Meno:</string>
+  <string name="attachproject_registration_header_teamname">Tím:</string>
+  <string name="attachproject_registration_header_pwd">Heslo:</string>
+  <string name="attachproject_registration_header_pwd_confirm">...Zopakujte:</string>
+  <string name="attachproject_registration_button">Vytvoriť</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Použiť správcu účtu BOINC na spravovanie viacerých projektov</string>
+  <string name="attachproject_acctmgr_header">Pridať správcu účtu</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Používateľ:</string>
+  <string name="attachproject_acctmgr_header_pwd">Heslo:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">...Zopakujte:</string>
+  <string name="attachproject_acctmgr_button">Pridať</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Používateľ nenájdený.</string>
+  <string name="attachproject_error_short_pwd">Heslo je príliš krátke</string>
+  <string name="attachproject_error_no_internet">Pripojenie zlyhalo</string>
+  <string name="attachproject_error_pwd_no_match">Heslá sa nezhodujú</string>
+  <string name="attachproject_error_pwd_no_retype">Prosím, napíšte heslo znovu</string>
+  <string name="attachproject_error_no_url">Prosím zadajte URL</string>
+  <string name="attachproject_error_no_email">Prosím zadajte e-mailovú adresu</string>
+  <string name="attachproject_error_no_pwd">Prosím zadajte heslo</string>
+  <string name="attachproject_error_no_name">Prosím zadajte používateľské meno</string>
+  <string name="attachproject_error_unknown">zlyhalo</string>
+  <string name="attachproject_error_bad_username">Používateľské meno bolo odmietnuté</string>
+  <string name="attachproject_error_email_in_use">Emailová adresa sa už používa</string>
+  <string name="attachproject_error_project_down">Projekt je offline</string>
+  <string name="attachproject_error_email_bad_syntax">Emailová adresa bola odmietnutá</string>
+  <string name="attachproject_error_bad_pwd">Heslo bolo odmietnuté</string>
+  <string name="attachproject_error_creation_disabled">Vytváranie účtov na tomto projekte je pozastavené</string>
+  <string name="attachproject_error_invalid_url">Neplatná URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Späť</string>
+  <string name="attachproject_working_finish_button">Dokončiť</string>
+  <string name="attachproject_working_check_desc">Úspešné</string>
+  <string name="attachproject_working_failed_desc">Zlyhalo</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Pripojiť</string>
+  <string name="attachproject_working_verify">Overiť účet</string>
+  <string name="attachproject_working_register">Zaregistrovať účet</string>
+  <string name="attachproject_working_login">Prihlásiť sa</string>
+  <string name="attachproject_working_acctmgr">Pridať správcu účtu</string>
+  <string name="attachproject_working_acctmgr_sync">Sychronizovať</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Ťuknite sem na výber projektu</string>
+  <string name="main_error">Ojoj!</string>
+  <string name="main_error_long">...toto by sa nemalo stávať!\nKliknite na ikonu a skúste to znovu.</string>
+  <string name="main_title_icon_desc">Ikona BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Stav</string>
+  <string name="tab_projects">Projekty</string>
+  <string name="tab_tasks">Úlohy</string>
+  <string name="tab_transfers">Prenosy</string>
+  <string name="tab_preferences">Nastavenia</string>
+  <string name="tab_notices">Oznamy</string>
+  <string name="tab_desc">Navigácia</string>
+  <!--status strings-->
+  <string name="status_running">Výpočty</string>
+  <string name="status_running_long">Ďakujeme vám za účasť</string>
+  <string name="status_paused">Pozastaviť</string>
+  <string name="status_idle">Žiadne úlohy</string>
+  <string name="status_idle_long">Čakám na úlohy...</string>
+  <string name="status_computing_disabled">Pozastavené</string>
+  <string name="status_computing_disabled_long">Stlačte Play na obnovenie siete a výpočtov.</string>
+  <string name="status_launching">Spúšťa sa...</string>
+  <string name="status_noproject">Vyberte si projekt ktorého za chcete zúčastniť.</string>
+  <string name="status_closing">Zatvára sa...</string>
+  <string name="status_benchmarking">Meria sa výkon...</string>
+  <string name="status_image_description">súbor projektu</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Načítanie preferencií...</string>
+  <string name="prefs_submit_button">Uložiť</string>
+  <string name="prefs_dialog_title">Zadajte novú hodnotu:</string>
+  <string name="prefs_dialog_title_selection">Vybrať:</string>
+  <string name="prefs_category_general">Všeobecné</string>
+  <string name="prefs_category_network">Sieť</string>
+  <string name="prefs_category_power">Energia</string>
+  <string name="prefs_category_cpu">Procesor</string>
+  <string name="prefs_category_storage">Úložisko</string>
+  <string name="prefs_category_memory">Pamäť</string>
+  <string name="prefs_category_debug">Ladenie</string>
+  <string name="prefs_show_advanced_header">Zobraziť pokročilé nastavenia...</string>
+  <string name="prefs_suspend_when_screen_on">Pozastaviť výpočty keď je obrazovka zapnutá</string>
+  <string name="prefs_stationary_device_mode_header">Mód neprenosného zariadenia</string>
+  <string name="prefs_stationary_device_mode_description">Povolí výpočty bez ohľadu na nastavenia napájania. Zapínajte len pokiaľ ide o bezbatériové zariadenie.</string>
+  <string name="prefs_power_source_header">Zdroje energie na výpočty</string>
+  <string name="prefs_power_source_description">Zvolí zdroje napájania, ktoré BOINC môže využívať na výpočty.</string>
+  <string name="prefs_power_source_ac">Zásuvka</string>
+  <string name="prefs_power_source_usb">Pripojenie USB</string>
+  <string name="prefs_power_source_wireless">Bezdrôtová nabíjačka</string>
+  <string name="prefs_power_source_battery">Batéria</string>
+  <string name="battery_charge_min_pct_header">Minimálna úroveň stavu batérie</string>
+  <string name="battery_charge_min_pct_description">BOINC pozastaví výpočty, pokiaľ stav batérie klesne pod danú úroveň.</string>
+  <string name="battery_temperature_max_header">Maximálna teplota batérie</string>
+  <string name="battery_temperature_max_description">BOINC pozastaví výpočty, pokiaľ stav batérie klesne pod zadanú úroveň. Zmena tejto hodnoty sa neodporúča.</string>
+  <string name="prefs_disk_max_pct_header">Maximum použitého úložného priestoru</string>
+  <string name="prefs_disk_max_pct_description">Koľko percent úložného priestoru na vašom zariadení môže BOINC využívať?</string>
+  <string name="prefs_disk_min_free_gb_header">Minimum voľného miesta</string>
+  <string name="prefs_disk_min_free_gb_description">Koľko z úložného priestoru vášho zariadenia by malo ostať voľného?</string>
+  <string name="prefs_disk_access_interval_header">Interval prístupov</string>
+  <string name="prefs_disk_access_interval_description">Odporučiť interval medzi prístupmi na disk</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Denný limit prenosov</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Nastaví obmedzenia prenosu súborov pre BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Prenos úloh len pri pripojení k WiFi</string>
+  <string name="prefs_autostart_header">Automatický štart</string>
+  <string name="prefs_show_notification_notices_header">Zobraziť upozornenia pri nových správach</string>
+  <string name="prefs_show_notification_suspended_header">Zobraziť upozornenie pri pozastavení</string>
+  <string name="prefs_cpu_number_cpus_header">Používané jadrá procesoru</string>
+  <string name="prefs_cpu_number_cpus_description">Obmedzí počet jadier procesoru ktoré BOINC používa pri výpočtoch</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pozastaví pri využití procesoru nad</string>
+  <string name="prefs_cpu_other_load_suspension_description">Určí, kedy BOINC pozastaví výpočty kvôli využitiu procesora inými aplikáciami.</string>
+  <string name="prefs_cpu_time_max_header">Limit procesoru</string>
+  <string name="prefs_cpu_time_max_description">Obmedzí procesorový čas, ktorý BOINC využíva na výpočty.</string>
+  <string name="prefs_memory_max_idle_header">Limit RAM</string>
+  <string name="prefs_memory_max_idle_description">Nastaví koľko RAM môžu úlohy využiť</string>
+  <string name="prefs_client_log_flags_header">Značky záznamov BOINC klienta</string>
+  <string name="prefs_gui_log_level_header">Úroveň záznamu GUI</string>
+  <string name="prefs_gui_log_level_description">Špecifikuje stručnosť GUI záznamov</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sekúnd</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Načítanie projektov...</string>
+  <string name="projects_add">Pripojiť sa k projektu</string>
+  <string name="projects_icon">Ikona projektu</string>
+  <string name="projects_credits">Kredit:</string>
+  <string name="projects_credits_host_and_user">%1$,d (na tomto zariadení) %2$,d (celkom)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Pozastavené používateľom</string>
+  <string name="projects_status_dontrequestmorework">Nebudú získané nové úlohy</string>
+  <string name="projects_status_ended">Projekt je ukončený - je možné sa od neho odpojiť</string>
+  <string name="projects_status_detachwhendone">Bude odpojený po skončení úloh</string>
+  <string name="projects_status_schedrpcpending">Žiadosť plánovača nevyriešená</string>
+  <string name="projects_status_schedrpcinprogress">Spracováva sa požiadavka plánovača</string>
+  <string name="projects_status_trickleuppending">Rýchla správa o stave čaká na odoslanie</string>
+  <string name="projects_status_backoff">Komunikácia je naplánovaná o:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Príkazy projektu:</string>
+  <string name="projects_control_visit_website">Navštíviť stránku</string>
+  <string name="projects_control_update">Aktualizovať</string>
+  <string name="projects_control_remove">Odobrať</string>
+  <string name="projects_control_suspend">Pozastaviť</string>
+  <string name="projects_control_resume">Pokračovať</string>
+  <string name="projects_control_nonewtasks">Žiadne nové úlohy</string>
+  <string name="projects_control_allownewtasks">Povoliť nové úlohy</string>
+  <string name="projects_control_reset">Resetovať</string>
+  <string name="projects_control_dialog_title_acctmgr">Príkazy Správcu konta:</string>
+  <string name="projects_control_sync_acctmgr">Sychronizovať</string>
+  <string name="projects_control_remove_acctmgr">Deaktivovať</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Odstrániť projekt?</string>
+  <string name="projects_confirm_detach_message">Skutočne chcete odstrániť</string>
+  <string name="projects_confirm_detach_message2">z BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Odobrať</string>
+  <string name="projects_confirm_reset_title">Resetovať projekt</string>
+  <string name="projects_confirm_reset_message">Skutočne chcete resetovať</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Resetovať</string>
+  <string name="projects_confirm_remove_acctmgr_title">Deaktivovať Správcu konta</string>
+  <string name="projects_confirm_remove_acctmgr_message">Skutočne chcete prestať používať</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Deaktivovať</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Názov úlohy:</string>
+  <string name="tasks_header_elapsed_time">Uplynutý čas:</string>
+  <string name="tasks_header_project_paused">(pozastavené)</string>
+  <string name="tasks_header_deadline">Odoslať do:</string>
+  <string name="tasks_result_new">nový</string>
+  <string name="tasks_result_files_downloading">čakanie na stiahnutie</string>
+  <string name="tasks_result_files_downloaded">sťahovanie dokončené</string>
+  <string name="tasks_result_compute_error">chyba výpočtu</string>
+  <string name="tasks_result_files_uploading">odosielanie</string>
+  <string name="tasks_result_files_uploaded">odosielanie dokončené</string>
+  <string name="tasks_result_aborted">zrušené</string>
+  <string name="tasks_result_upload_failed">odosielanie zlyhalo</string>
+  <string name="tasks_active_uninitialized">pripravené</string>
+  <string name="tasks_active_executing">beží</string>
+  <string name="tasks_active_suspended">pozastavené</string>
+  <string name="tasks_active_abort_pending">pozastavuje sa</string>
+  <string name="tasks_active_quit_pending">pozastavuje sa</string>
+  <string name="tasks_custom_suspended_via_gui">pozastavené</string>
+  <string name="tasks_custom_project_suspended_via_gui">projekt pozastavený</string>
+  <string name="tasks_custom_ready_to_report">pripravená na odoslanie</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Zrušiť úlohu?</string>
+  <string name="confirm_abort_task_message">Zrušiť úlohu:</string>
+  <string name="confirm_abort_task_confirm">Zrušiť</string>
+  <string name="confirm_cancel">Späť</string>
+  <string name="confirm_image_desc">Potvrdenie</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Príprava prenosov...</string>
+  <string name="trans_upload">Odosielanie</string>
+  <string name="trans_download">Sťahovanie</string>
+  <string name="trans_retryin">zopakuje sa o </string>
+  <string name="trans_failed">zlyhalo</string>
+  <string name="trans_suspended">pozastavené</string>
+  <string name="trans_active">prebieha</string>
+  <string name="trans_pending">čaká</string>
+  <string name="trans_projectbackoff">odsunutie projektu</string>
+  <string name="trans_header_name">Súbor:</string>
+  <string name="trans_control_retry">Zopakovať prenosy</string>
+  <string name="confirm_abort_trans_title">Zrušiť prenos?</string>
+  <string name="confirm_abort_trans_message">Zrušiť súbor:</string>
+  <string name="confirm_abort_trans_confirm">Zrušiť</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Načítanie správ...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Načítanie správ záznamu...</string>
+  <string name="eventlog_client_header">Správy klienta</string>
+  <string name="eventlog_gui_header">Správy GUI</string>
+  <string name="eventlog_copy_toast">Záznamy skopírované do schránky.</string>
+  <string name="eventlog_email_subject">Záznamy pre BOINC na Androide:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Počítanie je pozastavené.</string>
+  <string name="suspend_batteries">Napojte vaše zariadenie na nabíjačku, aby výpočty mohli pokračovať.</string>
+  <string name="suspend_screen_on">Vypnite obrazovku pre pokračovanie vo výpočtoch.</string>
+  <string name="suspend_useractive">Užívateľ je aktívny.</string>
+  <string name="suspend_tod">Mimo časového rámca výpočtov.</string>
+  <string name="suspend_bm">BOINC meria výkon zariadenia...</string>
+  <string name="suspend_disksize">Nedostatok miesta na disku.</string>
+  <string name="suspend_cputhrottle">Plánované obmedzenie procesoru.</string>
+  <string name="suspend_noinput">Žiadna nedávna činnosť užívateľa.</string>
+  <string name="suspend_delay">Odloženie inicializácie.</string>
+  <string name="suspend_exclusiveapp">Beží výhradná aplikácia.</string>
+  <string name="suspend_cpu">Vaše zariadenie je zaneprázdnené inými aplikáciami.</string>
+  <string name="suspend_network_quota">BOINC dosiahol limit v prenose po sieti.</string>
+  <string name="suspend_os">Zastavené Androidom.</string>
+  <string name="suspend_wifi">Nepripojené k WiFi.</string>
+  <string name="suspend_battery_charging">Čakanie na nabitie batérie.</string>
+  <string name="suspend_battery_charging_long">Výpočty sa obnovia, keď nabitie batérie dosiahne</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">momentálne</string>
+  <string name="suspend_battery_overheating">Čakanie na ochladenie batérie</string>
+  <string name="suspend_user_req">Obnovovanie výpočtov...</string>
+  <string name="suspend_network_user_req">manuálne.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Vyžiadané používateľom</string>
+  <string name="rpcreason_needwork">Získať ďalšiu prácu</string>
+  <string name="rpcreason_resultsdue">Nahlásiť dokončené úlohy</string>
+  <string name="rpcreason_trickleup">Odoslať rýchlu správu o stave</string>
+  <string name="rpcreason_acctmgrreq">Vyžiadané Správcom konta</string>
+  <string name="rpcreason_init">Prvotné nastavenie projektu</string>
+  <string name="rpcreason_projectreq">Vyžiadané projektom</string>
+  <string name="rpcreason_unknown">Neznámy dôvod</string>
+  <!--menu-->
+  <string name="menu_refresh">Obnoviť</string>
+  <string name="menu_emailto">Poslať ako email</string>
+  <string name="menu_copy">Kopírovať do schránky</string>
+  <string name="menu_eventlog">Záznam udalostí</string>
+  <string name="menu_exit">Vypnúť BOINC</string>
+  <string name="menu_run_mode_disable">Pozastaviť</string>
+  <string name="menu_run_mode_enable">Pokračovať</string>
+  <string name="menu_about">O</string>
+  <string name="menu_help">Pomoc</string>
+  <!--about dialog-->
+  <string name="about_button">Návrat</string>
+  <string name="about_title">O</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Verzia</string>
+  <string name="about_name_long">(Otvorená infraštruktúra pre sieťové výpočty z Berkeley)
+(Berkeley Open Infrastructure for Network Computing)</string>
+  <string name="about_copyright">\u00A9 2003–2016 Kalifornská Univerzita, Berkley.</string>
+  <string name="about_copyright_reserved">Všetky práva vyhradené.</string>
+  <string name="about_credits">Vďaka Inštitútu gravitačnej fyziky Maxa Plancka, IBM Corporation a HTC Corporation za ich podporu.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">%2$,d nový oznam</item>
+    <item quantity="few">%2$,d nový oznamy</item>
+    <item quantity="other">%2$,d nových oznamov</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Bola nájdená aplikácia na dobrovoľnícke výpočty</string>
+  <string name="nonexcl_dialog_text">Na tomto zariadení už beží iná výpočtová aplikácia; naraz môže bežať len jedna verzia.</string>
+  <string name="nonexcl_dialog_exit">Ukončiť</string>
+  <!--social integration-->
+  <string name="social_invite_button">Pozvať priateľov</string>
+  <string name="social_invite_intent_title">Akým spôsobom chcete zdieľať?</string>
+  <string name="social_invite_content_title">Riešim vedu na mojom smartfóne!</string>
+  <string name="social_invite_content_body">Používam %1$s na výpočty pre vedu. Môžeš aj ty, len si stiahni aplikáciu z %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-sl/strings.xml b/android/BOINC/app/src/main/res/values-sl/strings.xml
new file mode 100644
index 0000000..872e14f
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-sl/strings.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <string name="app_name">BOINC</string>
+  <string name="attachproject_list_acctmgr_button">Adaugă manager de cont</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Этот проект поддерживает устройства на базе Android</string>
+  <string name="attachproject_login_platform_not_supported">Этот проект не поддерживает устройства на базе Android</string>
+  <string name="attachproject_acctmgr_header">Adaugă manager de cont</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Utilizator:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Reintroduceţi:</string>
+  <string name="attachproject_acctmgr_button">Adaugă</string>
+  <string name="attachproject_error_no_url">Introduceți URL</string>
+  <string name="attachproject_error_bad_username">Имя пользователя не принято</string>
+  <string name="attachproject_error_email_in_use">Адрес электронной почты уже используется</string>
+  <string name="attachproject_error_project_down">Проект выключен</string>
+  <string name="attachproject_error_email_bad_syntax">Адрес электронной почты не принят</string>
+  <string name="attachproject_error_bad_pwd">Пароль не принят</string>
+  <string name="attachproject_error_creation_disabled">Создание учётной записи в данном проекте отключено</string>
+  <string name="attachproject_error_invalid_url">URL invalid</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_acctmgr">Adaugă manager de cont</string>
+  <string name="attachproject_working_acctmgr_sync">Sincronizează</string>
+  <string name="main_error">Упс</string>
+  <string name="main_error_long">…этого не должно было произойти!\nНажмите на значок BOINC, чтобы попробовать ещё раз.</string>
+  <string name="status_running_long">Спасибо за участие.</string>
+  <string name="status_idle">Нечего делать</string>
+  <string name="status_idle_long">Ожидание заданий…</string>
+  <string name="status_computing_disabled_long">Нажмите кнопку Play для возобновления расчётов и передачи данных.</string>
+  <string name="status_noproject">Выбрать проект для участия.</string>
+  <string name="status_closing">Закрытие…</string>
+  <string name="status_image_description">изображение проекта</string>
+  <string name="prefs_loading">Чтение настроек…</string>
+  <string name="prefs_dialog_title_selection">Выбрать:</string>
+  <string name="prefs_show_advanced_header">Показать дополнительные настройки и элементы управления…</string>
+  <string name="battery_charge_min_pct_header">Мин. уровень заряда батареи</string>
+  <string name="battery_charge_min_pct_description">BOINC приостановит расчёты, когда заряд батареи будет ниже указанного уровня.</string>
+  <string name="battery_temperature_max_header">Макс. температура батареи</string>
+  <string name="battery_temperature_max_description">BOINC приостановит расчёты, когда температура батареи превысит указанный уровень. Не рекомендуется менять это значение.</string>
+  <string name="prefs_disk_max_pct_header">Макс. используемое пространство памяти</string>
+  <string name="prefs_disk_max_pct_description">Сколько процентов от общего объёма памяти вашего устройства BOINC может использовать?</string>
+  <string name="prefs_disk_min_free_gb_header">Мин. свободное пространство</string>
+  <string name="prefs_disk_min_free_gb_description">Какой объём памяти вашего устройства должен оставаться свободным?</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Ежедневный предел передачи</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Ограничивает ежедневный трафик данных, вызванный BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Передавать задания только по WiFi</string>
+  <string name="prefs_autostart_header">Автозапуск</string>
+  <string name="prefs_cpu_number_cpus_header">Используемые ядра процессора</string>
+  <string name="prefs_cpu_number_cpus_description">Ограничивает количество ядер процессора, которые использует BOINC для расчётов.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Пауза при использовании процессора выше</string>
+  <string name="prefs_cpu_other_load_suspension_description">Определяет, когда BOINC останавливает расчёты из-за использования процессора другими приложениями.</string>
+  <string name="prefs_cpu_time_max_header">Предельное время процессора</string>
+  <string name="prefs_cpu_time_max_description">Ограничивает время процессора, которое использует BOINC для расчётов.</string>
+  <string name="prefs_memory_max_idle_header">Ограничение ОЗУ</string>
+  <string name="prefs_memory_max_idle_description">Ограничивает объём ОЗУ, который задания могут занимать.</string>
+  <string name="prefs_client_log_flags_header">Флаги журнала клиента BOINC</string>
+  <string name="prefs_gui_log_level_header">Уровень журнала GUI</string>
+  <string name="prefs_gui_log_level_description">Задает уровень детализации сообщений журнала GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="projects_loading">Чтение проектов…</string>
+  <string name="projects_icon">Значок проекта</string>
+  <string name="projects_credits">Točke:</string>
+  <string name="projects_credits_host_and_user">%1$,d (на этом устройстве) %2$,d (всего)</string>
+  <string name="projects_status_suspendedviagui">Приостановлен пользователем</string>
+  <string name="projects_status_dontrequestmorework">Не запрашивать новые задания</string>
+  <string name="projects_status_ended">Проект завершён - ОК для удаления</string>
+  <string name="projects_status_detachwhendone">Будет удалён после завершения заданий</string>
+  <string name="projects_status_schedrpcpending">Запрос информации у планировщика</string>
+  <string name="projects_status_schedrpcinprogress">Производится запрос информации у планировщика</string>
+  <string name="projects_status_trickleuppending">Ожидание промежуточной отправки</string>
+  <string name="projects_status_backoff">Связь по расписанию:</string>
+  <string name="projects_control_dialog_title">Команды проекта:</string>
+  <string name="projects_control_visit_website">Vizitați pagina web</string>
+  <string name="projects_control_nonewtasks">Не запрашивать задания</string>
+  <string name="projects_control_allownewtasks">Получать новые задания</string>
+  <string name="projects_control_reset">Сбросить</string>
+  <string name="projects_control_dialog_title_acctmgr">Comenzi manager de cont:</string>
+  <string name="projects_control_sync_acctmgr">Sincronizează</string>
+  <string name="projects_control_remove_acctmgr">Dezactivează</string>
+  <string name="projects_confirm_reset_title">Перезапустить проект</string>
+  <string name="projects_confirm_reset_message">Вы действительно хотите перезапустить</string>
+  <string name="projects_confirm_reset_confirm">Сбросить</string>
+  <string name="projects_confirm_remove_acctmgr_title">Dezactivează manager de cont</string>
+  <string name="projects_confirm_remove_acctmgr_message">Sunteţi sigur că doriţi să nu mai folosiţi</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Dezactivează</string>
+  <string name="tasks_header_deadline">Крайний срок:</string>
+  <string name="tasks_result_files_downloading">ожидание загрузки</string>
+  <string name="tasks_result_compute_error">ошибка расчётов</string>
+  <string name="tasks_active_abort_pending">приостанавливается</string>
+  <string name="tasks_active_quit_pending">приостанавливается</string>
+  <string name="tasks_custom_project_suspended_via_gui">проект приостановлен</string>
+  <string name="tasks_custom_ready_to_report">готово для подтверждения</string>
+  <string name="confirm_abort_task_title">Прервать задание?</string>
+  <string name="confirm_abort_task_message">Прервать задание:</string>
+  <string name="confirm_image_desc">Диалог подтверждения</string>
+  <string name="trans_loading">Чтение списка передач…</string>
+  <string name="trans_retryin">повтор через</string>
+  <string name="trans_active">активна</string>
+  <string name="trans_pending">ожидает</string>
+  <string name="trans_projectbackoff">запрос к проекту отложен на</string>
+  <string name="trans_header_name">Файл:</string>
+  <string name="trans_control_retry">Reîncearcă transferuri</string>
+  <string name="confirm_abort_trans_title">Прервать передачу?</string>
+  <string name="confirm_abort_trans_message">Прервать файл:</string>
+  <string name="notices_loading">Se citesc atenţionările...</string>
+  <string name="eventlog_loading">Загрузка сообщений журнала…</string>
+  <string name="eventlog_client_header">Сообщения клиента</string>
+  <string name="eventlog_gui_header">Сообщения GUI</string>
+  <string name="eventlog_copy_toast">Журнал скопирован в буфер обмена.</string>
+  <string name="eventlog_email_subject">Журнал событий для BOINC на Android:</string>
+  <string name="suspend_unknown">Расчёты приостановлены.</string>
+  <string name="suspend_batteries">Подключите ваше устройство к зарядному устройству для продолжения расчётов.</string>
+  <string name="suspend_useractive">Пользователь работает.</string>
+  <string name="suspend_tod">Закончилось выделенное время для расчётов.</string>
+  <string name="suspend_bm">BOINC измеряет производительность вашего устройства…</string>
+  <string name="suspend_disksize">Закончилось свободное место на диске.</string>
+  <string name="suspend_cputhrottle">Запланированное ограничение нагрузки процессора.</string>
+  <string name="suspend_noinput">Нет активности пользователя за последнее время.</string>
+  <string name="suspend_delay">Инициализация отложена.</string>
+  <string name="suspend_exclusiveapp">Выполняется привилегированное приложение.</string>
+  <string name="suspend_cpu">Ваше устройство занято другими приложениями.</string>
+  <string name="suspend_network_quota">BOINC достиг ограничения передачи данных по сети.</string>
+  <string name="suspend_os">Android остановил.</string>
+  <string name="suspend_wifi">Нет подключения к WiFi.</string>
+  <string name="suspend_battery_charging">Необходимо подзарядить батарею для продолжения расчётов.</string>
+  <string name="suspend_battery_charging_long">Расчёты возобновятся, когда заряд батареи достигнет</string>
+  <string name="suspend_battery_charging_current">в данный момент</string>
+  <string name="suspend_battery_overheating">Ожидание охлаждения батареи</string>
+  <string name="suspend_user_req">Возобновление расчётов…</string>
+  <string name="suspend_network_user_req">вручную.</string>
+  <string name="rpcreason_userreq">Запрошено пользователем</string>
+  <string name="rpcreason_needwork">Запросить задания</string>
+  <string name="rpcreason_resultsdue">Сообщить о завершённых заданиях</string>
+  <string name="rpcreason_trickleup">Отправить промежуточное сообщение</string>
+  <string name="rpcreason_acctmgrreq">Запрошено менеджером проектов</string>
+  <string name="rpcreason_init">Инициализация проекта</string>
+  <string name="rpcreason_projectreq">Запрошено проектом</string>
+  <string name="menu_emailto">Отправить письмом</string>
+  <string name="menu_copy">Копировать в буфер обмена</string>
+  <string name="menu_eventlog">Журнал событий</string>
+  <string name="menu_exit">Выйти из BOINC</string>
+  <string name="menu_about">О</string>
+  <string name="about_title">О</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_copyright">© 2003-2013 Калифорнийский университет, Беркли.\nВсе права защищены.</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-sv/strings.xml b/android/BOINC/app/src/main/res/values-sv/strings.xml
new file mode 100644
index 0000000..1fa026b
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-sv/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Laddar! Vänligen vänta...</string>
+  <string name="generic_button_continue">Fortsätt</string>
+  <string name="generic_button_finish">Avsluta</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Välj ett vetenskapligt projekt du vill bidra till:</string>
+  <string name="attachproject_list_header">Välj ett projekt</string>
+  <string name="attachproject_list_manual_button">Lägg till projekt via URL</string>
+  <string name="attachproject_list_manual_dialog_title">Ange projektets URL:</string>
+  <string name="attachproject_list_manual_dialog_button">Lägg till projekt</string>
+  <string name="attachproject_list_manual_no_url">Vänligen ange projektets URL</string>
+  <string name="attachproject_list_acctmgr_button">Lägg till kontohanterare</string>
+  <string name="attachproject_list_no_internet">Ingen Internetanslutning</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Ange kontouppgifter</string>
+  <string name="attachproject_credential_input_desc">Ange kontouppgifter för valda projekt:</string>
+  <string name="attachproject_credential_input_show_pwd">Visa lösenord</string>
+  <string name="attachproject_individual_credential_input">Bifoga projekt individuellt</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Det uppstod problem med bifogningen av vetenskapligt projekt:</string>
+  <string name="attachproject_conflict_undefined">Kunde inte ansluta</string>
+  <string name="attachproject_conflict_not_unique">Konto existerar med annat lösenord</string>
+  <string name="attachproject_conflict_bad_password">Felaktigt lösenord</string>
+  <string name="attachproject_conflict_unknown_user">Kontot existerar ej</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Kontot existerar ej, besök projektets webbsida för att registrera ett konto</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Bifogar</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Tips</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Hur du kan hjälpa till:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Anslut till WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Koppla in batteriladdare</string>
+  <string name="attachproject_hint_contribtion_screen">3. Stäng av skärmen</string>
+  <string name="attachproject_hint_projectwebsite_header">Besök projektets hemsida för att:</string>
+  <string name="attachproject_hint_projectwebsite_science">Lära dig mer om vetenskapen</string>
+  <string name="attachproject_hint_projectwebsite_stats">Visa statistik över bidragande</string>
+  <string name="attachproject_hint_projectwebsite_community">Komma i kontakt med andra voluntärer</string>
+  <string name="attachproject_hint_platforms_header">BOINC finns också tillgängligt till din dator eller bärbara dator, besök boinc.berkeley.edu för att veta mer.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Kontaktar projektets server...</string>
+  <string name="attachproject_login_image_description">Projektlogotyp.</string>
+  <string name="attachproject_login_header_general_area">Allmän area:</string>
+  <string name="attachproject_login_header_specific_area">Specifik area:</string>
+  <string name="attachproject_login_header_description">Beskrivning:</string>
+  <string name="attachproject_login_header_home">Hem:</string>
+  <string name="attachproject_login_header_url">Webbplats:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Enhetstypen stöds ej av det här projektet</string>
+  <string name="attachproject_login_platform_not_supported">Enheten stöds ej av det här projektet</string>
+  <string name="attachproject_login_category_terms_of_use">Användningsvillkor för</string>
+  <string name="attachproject_login_accept_terms_of_use">Genom att skapa ett kono med detta projekt, accepterar du licensavtalen som visas ovan.</string>
+  <string name="attachproject_login_category_login">Logga in med befintligt konto</string>
+  <string name="attachproject_login_header_id_email">E-postadress:</string>
+  <string name="attachproject_login_header_id_name">Namn:</string>
+  <string name="attachproject_login_header_pwd">Lösenord:</string>
+  <string name="attachproject_login_category_creation">Ny för</string>
+  <string name="attachproject_login_header_creation_enabled">Registrera ett konto för att delta:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Besök projektwebbplatsen för att skapa ett konto:</string>
+  <string name="attachproject_login_header_creation_disabled">Det här projektet accepterar för tillfället inte nyregistrering av konton.</string>
+  <string name="attachproject_login_button_registration">Registrera</string>
+  <string name="attachproject_login_button_login">Logga in</string>
+  <string name="attachproject_login_button_forgotpw">Glömt lösenord</string>
+  <string name="attachproject_login_error_toast">Misslyckades med att kontakta projekt!</string>
+  <string name="attachproject_login_attached">Bifogad</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Kontoregistrering för</string>
+  <string name="attachproject_registration_header_url">Projekt:</string>
+  <string name="attachproject_registration_header_email">E-postadress:</string>
+  <string name="attachproject_registration_header_username">Namn:</string>
+  <string name="attachproject_registration_header_teamname">Team:</string>
+  <string name="attachproject_registration_header_pwd">Lösenord:</string>
+  <string name="attachproject_registration_header_pwd_confirm">... Skriv igen:</string>
+  <string name="attachproject_registration_button">Skapa</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Använd BOINC kontohanterare för att lägga till och hantera flera projekt</string>
+  <string name="attachproject_acctmgr_header">Lägg till kontohanterare</string>
+  <string name="attachproject_acctmgr_header_url">URL</string>
+  <string name="attachproject_acctmgr_header_name">Användare:</string>
+  <string name="attachproject_acctmgr_header_pwd">Lösenord:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">... Skriv om:</string>
+  <string name="attachproject_acctmgr_button">Lägg till</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Användare hittades inte</string>
+  <string name="attachproject_error_short_pwd">Lösenordet är för kort</string>
+  <string name="attachproject_error_no_internet">Anslutningsfel</string>
+  <string name="attachproject_error_pwd_no_match">Lösenorden stämmer ej överens</string>
+  <string name="attachproject_error_pwd_no_retype">Skriv in lösenord igen</string>
+  <string name="attachproject_error_no_url">Ange URL</string>
+  <string name="attachproject_error_no_email">Vänligen ange eMail-adress</string>
+  <string name="attachproject_error_no_pwd">Ange ett lösenord</string>
+  <string name="attachproject_error_no_name">Ange användarnamn</string>
+  <string name="attachproject_error_unknown">misslyckades</string>
+  <string name="attachproject_error_bad_username">Användarnamn felaktigt</string>
+  <string name="attachproject_error_email_in_use">ePost-adressen används redan</string>
+  <string name="attachproject_error_project_down">Projektet nedkopplat</string>
+  <string name="attachproject_error_email_bad_syntax">eMail-adress felaktig</string>
+  <string name="attachproject_error_bad_pwd">Lösenord felaktigt</string>
+  <string name="attachproject_error_creation_disabled">Registrering av konton är inaktiverat för det här projektet</string>
+  <string name="attachproject_error_invalid_url">Ogiltig URL</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Tillbaka</string>
+  <string name="attachproject_working_finish_button">Avsluta</string>
+  <string name="attachproject_working_check_desc">Framgångsrik</string>
+  <string name="attachproject_working_failed_desc">Misslyckades</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Anslut</string>
+  <string name="attachproject_working_verify">Verifiera konto</string>
+  <string name="attachproject_working_register">Registrera konto</string>
+  <string name="attachproject_working_login">Logga in</string>
+  <string name="attachproject_working_acctmgr">Lägg till kontohanterare</string>
+  <string name="attachproject_working_acctmgr_sync">Synkronisera</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Klicka här för att välja projekt.</string>
+  <string name="main_error">Ooojsan</string>
+  <string name="main_error_long">...det här borde inte hända!\nKlicka på ikonen för att försöka igen.</string>
+  <string name="main_title_icon_desc">BOINC-ikon</string>
+  <!--tab names-->
+  <string name="tab_status">Status</string>
+  <string name="tab_projects">Projekt</string>
+  <string name="tab_tasks">Uppgifter</string>
+  <string name="tab_transfers">Överföringar</string>
+  <string name="tab_preferences">Inställningar</string>
+  <string name="tab_notices">Meddelanden</string>
+  <string name="tab_desc">Navigering</string>
+  <!--status strings-->
+  <string name="status_running">Beräkning</string>
+  <string name="status_running_long">Tack för att du deltar.</string>
+  <string name="status_paused">Pausad</string>
+  <string name="status_idle">Inget att göra</string>
+  <string name="status_idle_long">Väntar på uppgifter...</string>
+  <string name="status_computing_disabled">Pausad </string>
+  <string name="status_computing_disabled_long">Klicka \"play\" för att återuppta nätverkstrafik och beräkning.</string>
+  <string name="status_launching">Startar...</string>
+  <string name="status_noproject">Välj ett projekt att delta i.</string>
+  <string name="status_closing">Stänger...</string>
+  <string name="status_benchmarking">Kalkylerar...</string>
+  <string name="status_image_description">Projektbild</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Läser in inställningar...</string>
+  <string name="prefs_submit_button">Spara</string>
+  <string name="prefs_dialog_title">Ange nytt värde:</string>
+  <string name="prefs_dialog_title_selection">Välj:</string>
+  <string name="prefs_category_general">Allmänt</string>
+  <string name="prefs_category_network">Nätverk</string>
+  <string name="prefs_category_power">Energi</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Lagring</string>
+  <string name="prefs_category_memory">Minne</string>
+  <string name="prefs_category_debug">Felsök</string>
+  <string name="prefs_show_advanced_header">Visa avancerade inställningar och kontroller...</string>
+  <string name="prefs_suspend_when_screen_on">Pausa beräkning när skärmen är på</string>
+  <string name="prefs_stationary_device_mode_header">Stationär enhets-läge</string>
+  <string name="prefs_stationary_device_mode_description">Tillåt beräkning oavsett Energiinställningar. Bara aktiv om enheten inte har ett batteri.</string>
+  <string name="prefs_power_source_header">Energikällor för beräkning</string>
+  <string name="prefs_power_source_description">Välj energikälla som BOINC tillåts använda för beräkning.</string>
+  <string name="prefs_power_source_ac">Eluttag</string>
+  <string name="prefs_power_source_usb">USB-anslutning</string>
+  <string name="prefs_power_source_wireless">Trådlös laddare</string>
+  <string name="prefs_power_source_battery">Batteri</string>
+  <string name="battery_charge_min_pct_header">Minsta batterinivå</string>
+  <string name="battery_charge_min_pct_description">BOINC pausar beräkning under definerad batterinivå.</string>
+  <string name="battery_temperature_max_header">Max. batteritemperatur</string>
+  <string name="battery_temperature_max_description">BOINC pausar beräkningen när den definerade batteritemperaturen överstigs. Det är ej rekommenderat att ändra det här värdet.</string>
+  <string name="prefs_disk_max_pct_header">Max. använt lagringsutrymme</string>
+  <string name="prefs_disk_max_pct_description">Hur många procent av din enhets lagringsutrymme är BOINC tillåtet att använda?</string>
+  <string name="prefs_disk_min_free_gb_header">Minsta lediga lagringsutrymme</string>
+  <string name="prefs_disk_min_free_gb_description">Hur många procent av din enhets lagringsutrymme skall förbli ledigt?</string>
+  <string name="prefs_disk_access_interval_header">Tillgångsintervall</string>
+  <string name="prefs_disk_access_interval_description">Föreslår en intervall mellan varje tillgång till disken</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Daglig överföringsgräns</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Begränsar den dagliga använda datatraffiken för BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Överför uppgifter över WiFi endast</string>
+  <string name="prefs_autostart_header">Autostart</string>
+  <string name="prefs_show_notification_notices_header">Visa notifikation för nya BOINC-notiser</string>
+  <string name="prefs_show_notification_suspended_header">Visa notifikation även i pausat läge</string>
+  <string name="prefs_cpu_number_cpus_header">Använda CPU-kärnor</string>
+  <string name="prefs_cpu_number_cpus_description">Begränsar antalet CPU-kärnor BOINC använder för beräkning.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Pausa vid CPU-användning över</string>
+  <string name="prefs_cpu_other_load_suspension_description">Bestämmer när B.OINC pausar beräkningen för andra appars CPU-användning.</string>
+  <string name="prefs_cpu_time_max_header">CPU-gräns</string>
+  <string name="prefs_cpu_time_max_description">Begränsar tiden på CPU:n som BOINC använder för beräkning.</string>
+  <string name="prefs_memory_max_idle_header">RAM-gräns</string>
+  <string name="prefs_memory_max_idle_description">Begränsar det belopp av RAM som uppgifter är tillåtna att ockupera.</string>
+  <string name="prefs_client_log_flags_header">BOINC-klientens loggningsflaggor</string>
+  <string name="prefs_gui_log_level_header">Användar-gränssnittets (GUI) loggningsnivå</string>
+  <string name="prefs_gui_log_level_description">Specificerar informationsnivån för användargränssnittets (GUI) loggningsmeddelanden.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sekunder</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Läser in projekt...</string>
+  <string name="projects_add">Lägg till projekt</string>
+  <string name="projects_icon">Projekt-ikon</string>
+  <string name="projects_credits">Arbete:</string>
+  <string name="projects_credits_host_and_user">%1$,d (på denna enhet) %2$,d (totalt)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Försatt i vänteläge av användare</string>
+  <string name="projects_status_dontrequestmorework">Hämtar inte nya uppgifter</string>
+  <string name="projects_status_ended">Projektet är avslutat - det kan tas bort</string>
+  <string name="projects_status_detachwhendone">Kommer att ta bort när uppgifter är avklarade</string>
+  <string name="projects_status_schedrpcpending">Schemaläggarbegäran väntar</string>
+  <string name="projects_status_schedrpcinprogress">Schemaläggarbegäran pågår</string>
+  <string name="projects_status_trickleuppending">Flödesmeddelande väntar</string>
+  <string name="projects_status_backoff">Kommunikation schemalagd om:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Projekt-kommandon:</string>
+  <string name="projects_control_visit_website">Besök webbplats</string>
+  <string name="projects_control_update">Uppdatera</string>
+  <string name="projects_control_remove">Ta bort</string>
+  <string name="projects_control_suspend">Vänteläge</string>
+  <string name="projects_control_resume">Återuppta</string>
+  <string name="projects_control_nonewtasks">Inga nya uppgifter</string>
+  <string name="projects_control_allownewtasks">Tillåt nya uppgifter</string>
+  <string name="projects_control_reset">Nollställ</string>
+  <string name="projects_control_dialog_title_acctmgr">Kontohanterar-kommandon:</string>
+  <string name="projects_control_sync_acctmgr">Synkronisera</string>
+  <string name="projects_control_remove_acctmgr">Koppla bort</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Ta bort projekt?</string>
+  <string name="projects_confirm_detach_message">Är du säker på att du vill ta bort</string>
+  <string name="projects_confirm_detach_message2">från BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Ta bort</string>
+  <string name="projects_confirm_reset_title">Återställ projekt</string>
+  <string name="projects_confirm_reset_message">Är du säker på att du vill återställa</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Nollställ</string>
+  <string name="projects_confirm_remove_acctmgr_title">Avaktivera kontohanterare</string>
+  <string name="projects_confirm_remove_acctmgr_message">Är du säker på att du vill sluta använda</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Avaktivera</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Uppgiftsnamn:</string>
+  <string name="tasks_header_elapsed_time">Tid åtgången:</string>
+  <string name="tasks_header_project_paused">(pausad)</string>
+  <string name="tasks_header_deadline">Senaste rapporteringssdatum:</string>
+  <string name="tasks_result_new">ny</string>
+  <string name="tasks_result_files_downloading">väntar på nedladdning</string>
+  <string name="tasks_result_files_downloaded">nedladdning färdig</string>
+  <string name="tasks_result_compute_error">beräkningsfel</string>
+  <string name="tasks_result_files_uploading">laddar upp</string>
+  <string name="tasks_result_files_uploaded">uppladdning färdig</string>
+  <string name="tasks_result_aborted">avbruten</string>
+  <string name="tasks_result_upload_failed">uppladdning misslyckades</string>
+  <string name="tasks_active_uninitialized">redo</string>
+  <string name="tasks_active_executing">kör</string>
+  <string name="tasks_active_suspended">i vänteläge</string>
+  <string name="tasks_active_abort_pending">pausar</string>
+  <string name="tasks_active_quit_pending">pausar</string>
+  <string name="tasks_custom_suspended_via_gui">i vänteläge</string>
+  <string name="tasks_custom_project_suspended_via_gui">projekt pausat</string>
+  <string name="tasks_custom_ready_to_report">redo att rapportera</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Avbryta uppgift?</string>
+  <string name="confirm_abort_task_message">Avbryt uppgift:</string>
+  <string name="confirm_abort_task_confirm">Avbryt</string>
+  <string name="confirm_cancel">Avbryt</string>
+  <string name="confirm_image_desc">Bekräftelse-dialogruta</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Läser överföringar...</string>
+  <string name="trans_upload">Skicka</string>
+  <string name="trans_download">Hämta</string>
+  <string name="trans_retryin">försök igen om</string>
+  <string name="trans_failed">misslyckades</string>
+  <string name="trans_suspended">i vänteläge</string>
+  <string name="trans_active">aktiv</string>
+  <string name="trans_pending">väntar</string>
+  <string name="trans_projectbackoff">Projektinitierad väntan</string>
+  <string name="trans_header_name">Fil:</string>
+  <string name="trans_control_retry">Skicka överföringar igen</string>
+  <string name="confirm_abort_trans_title">Avbryta överföring?</string>
+  <string name="confirm_abort_trans_message">Avbryt fil:</string>
+  <string name="confirm_abort_trans_confirm">Avbryt</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Läser noticer...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Laddar loggningsmeddelanden</string>
+  <string name="eventlog_client_header">Klient-meddelanden</string>
+  <string name="eventlog_gui_header">Användar-gränssnitt (GUI) -meddelanden</string>
+  <string name="eventlog_copy_toast">Logga kopierad clipboard.</string>
+  <string name="eventlog_email_subject">Händelselogg för BOINC på Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Beräkning pausad.</string>
+  <string name="suspend_batteries">Anslut din enhet till en laddare för att fortsätta beräkningar.</string>
+  <string name="suspend_screen_on">Stäng av din skärm för att fortsätta beräkningar.</string>
+  <string name="suspend_useractive">Användare är aktiv.</string>
+  <string name="suspend_tod">Tidsgräns för beräkningsprocess överskriden.</string>
+  <string name="suspend_bm">BOINC kalkylerar din enhets prestanda...</string>
+  <string name="suspend_disksize">Slut på diskutrymme.</string>
+  <string name="suspend_cputhrottle">Schemalagt CPU-stopp.</string>
+  <string name="suspend_noinput">Ingen senaste användar-aktivitet.</string>
+  <string name="suspend_delay">Initieringsfördröjning.</string>
+  <string name="suspend_exclusiveapp">En exklusiv app körs.</string>
+  <string name="suspend_cpu">Din enhet är upptagen med andra appar.</string>
+  <string name="suspend_network_quota">BOINC nådde nätverksdata-gräns.</string>
+  <string name="suspend_os">Stoppades av Android.</string>
+  <string name="suspend_wifi">Inte ansluten till trådlöst nätverk.</string>
+  <string name="suspend_battery_charging">Väntar på att batteriet ska laddas upp.</string>
+  <string name="suspend_battery_charging_long">Beräkning kommer återupptas när batterinivån når</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">i dagsläget</string>
+  <string name="suspend_battery_overheating">Väntar på att batteriet kyls ned</string>
+  <string name="suspend_user_req">Återupptar beräkning...</string>
+  <string name="suspend_network_user_req">manuellt.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Begärd av användare</string>
+  <string name="rpcreason_needwork">För att hämta jobb</string>
+  <string name="rpcreason_resultsdue">För att rapportera avslutade jobb</string>
+  <string name="rpcreason_trickleup">För att sända flödesmeddelande</string>
+  <string name="rpcreason_acctmgrreq">Begärd av kontohanteraren</string>
+  <string name="rpcreason_init">Projektinitiering</string>
+  <string name="rpcreason_projectreq">Begärd av projekt</string>
+  <string name="rpcreason_unknown">Okänd anledning</string>
+  <!--menu-->
+  <string name="menu_refresh">Uppdatera</string>
+  <string name="menu_emailto">Skicka som e-postmeddelande</string>
+  <string name="menu_copy">Kopiera till urklipp</string>
+  <string name="menu_eventlog">Händelselogg</string>
+  <string name="menu_exit">Avsluta BOINC</string>
+  <string name="menu_run_mode_disable">Vänteläge</string>
+  <string name="menu_run_mode_enable">Återuppta</string>
+  <string name="menu_about">Om</string>
+  <string name="menu_help">Hjälp</string>
+  <!--about dialog-->
+  <string name="about_button">Återvänd</string>
+  <string name="about_title">Om</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Version</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 Universitetet i Kalifornien, Berkeley.</string>
+  <string name="about_copyright_reserved">Alla rättigheter reserverade.</string>
+  <string name="about_credits">Tack till Max Plack Institut för Gravitationell Fysik, IBM Corporation och till HTC Corporation för deras stöd till oss.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Nytt meddelande från %1$s</item>
+    <item quantity="other">%2$,d nytt meddelande</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Volontär beräknings-app detekterad</string>
+  <string name="nonexcl_dialog_text">En annan volontär beräknings-app körs på denna enhet. Endast en version kan köras samtidigt.</string>
+  <string name="nonexcl_dialog_exit">Avsluta</string>
+  <!--social integration-->
+  <string name="social_invite_button">Bjud in vänner</string>
+  <string name="social_invite_intent_title">Hur vill du dela?</string>
+  <string name="social_invite_content_title">Jag hjälper till och forskar med min smartphone!</string>
+  <string name="social_invite_content_body">Jag använder my %1$s till att bidra med beräkningskraft för vetenskapen. Det kan du med! Ladda ned appen från: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-tr/strings.xml b/android/BOINC/app/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000..98f8a09
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-tr/strings.xml
@@ -0,0 +1,357 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Yükleniyor! Lütfen bekleyin...</string>
+  <string name="generic_button_continue">Devam</string>
+  <string name="generic_button_finish">Bitir</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Katkıda bulunmak istediğiniz bilimsel projeleri seçin</string>
+  <string name="attachproject_list_header">Bir proje seçin:</string>
+  <string name="attachproject_list_manual_button">Adres ile proje ekle</string>
+  <string name="attachproject_list_manual_dialog_title">Proje adresini girin:</string>
+  <string name="attachproject_list_manual_dialog_button">Proje ekle</string>
+  <string name="attachproject_list_manual_no_url">Lütfen proje adresini girin</string>
+  <string name="attachproject_list_acctmgr_button">Hesap Yöneticisi ekle</string>
+  <string name="attachproject_list_no_internet">İnternet bağlantısı yok</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Hesap bilgilerini girin</string>
+  <string name="attachproject_credential_input_desc">Seçilen proje için hesap bilgilerini girin</string>
+  <string name="attachproject_credential_input_show_pwd">Şifreyi göster</string>
+  <string name="attachproject_individual_credential_input">Bireysel proje ekle</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Bilimsel projelere eklenirken sorunlar oluştu:</string>
+  <string name="attachproject_conflict_undefined">Bağlantı kurulamadı</string>
+  <string name="attachproject_conflict_not_unique">Hesap farklı bir şifreyle mevcut</string>
+  <string name="attachproject_conflict_bad_password">Şifre hatalı</string>
+  <string name="attachproject_conflict_unknown_user">Hesap yok</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Hesap yok, kayıt için proje web sitesini ziyaret edin</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Ekleniyor</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">İpucu</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Nasıl katkı sağlanır:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Kablosuz Ağa Bağlan</string>
+  <string name="attachproject_hint_contribtion_charger">2. Şarja Cihazını Takın</string>
+  <string name="attachproject_hint_contribtion_screen">3. Ekranı Kapat</string>
+  <string name="attachproject_hint_projectwebsite_header">Proje web sitelerine git:</string>
+  <string name="attachproject_hint_projectwebsite_science">Bilim hakkında daha fazlasını öğren</string>
+  <string name="attachproject_hint_projectwebsite_stats">Katkı istatistiklerini gör</string>
+  <string name="attachproject_hint_projectwebsite_community">Diğer gönüllülerle bağlantıya geç</string>
+  <string name="attachproject_hint_platforms_header">BOINC bilgisayarınız  için kullanılabilir, daha fazla bilgi için boinc.berkeley.edu adresini ziyaret edin.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Proje sunucusuna bağlanılıyor...</string>
+  <string name="attachproject_login_image_description">Proje logosu.</string>
+  <string name="attachproject_login_header_general_area">Genel alan:</string>
+  <string name="attachproject_login_header_specific_area">Özel alan:</string>
+  <string name="attachproject_login_header_description">Tanım:</string>
+  <string name="attachproject_login_header_home">Anasayfa:</string>
+  <string name="attachproject_login_header_url">Site:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Bu proje Android cihazlarını destekliyor</string>
+  <string name="attachproject_login_platform_not_supported">Bu proje Android cihazlarını desteklemiyor</string>
+  <string name="attachproject_login_category_terms_of_use">Kural ve politikalar: </string>
+  <string name="attachproject_login_accept_terms_of_use">Bu projede bir hesap oluşturmakla, aşağıdaki kural ve politikaları kabul etmiş oluyorsunuz.</string>
+  <string name="attachproject_login_category_login">Mevcut hesap ile oturum aç</string>
+  <string name="attachproject_login_header_id_email">ePosta:</string>
+  <string name="attachproject_login_header_id_name">İsim:</string>
+  <string name="attachproject_login_header_pwd">Parola:</string>
+  <string name="attachproject_login_category_creation">Bu projede yeni misiniz:</string>
+  <string name="attachproject_login_header_creation_enabled">Katılmak için bir hesap oluşturun:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Hesap oluşturmak için proje sitesini ziyaret edin:</string>
+  <string name="attachproject_login_header_creation_disabled">Bu proje şu anda yeni hesapları kabul etmiyor.</string>
+  <string name="attachproject_login_button_registration">Kayıt ol</string>
+  <string name="attachproject_login_button_login">Giriş yap</string>
+  <string name="attachproject_login_button_forgotpw">Parolamı unuttum</string>
+  <string name="attachproject_login_error_toast">Projeyle bağlantı kurulamadı!</string>
+  <string name="attachproject_login_attached">Eklendi</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Hesaba kaydolma: </string>
+  <string name="attachproject_registration_header_url">Proje:</string>
+  <string name="attachproject_registration_header_email">ePosta:</string>
+  <string name="attachproject_registration_header_username">İsim:</string>
+  <string name="attachproject_registration_header_teamname">Takım:</string>
+  <string name="attachproject_registration_header_pwd">Parola:</string>
+  <string name="attachproject_registration_header_pwd_confirm">Yeniden yazın:</string>
+  <string name="attachproject_registration_button">Oluştur</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Proje eklemek ya da yönetmek için BOINC hesap yöneticisini kullan</string>
+  <string name="attachproject_acctmgr_header">Hesap Yöneticisi ekle</string>
+  <string name="attachproject_acctmgr_header_url">Adres</string>
+  <string name="attachproject_acctmgr_header_name">Kullanıcı:</string>
+  <string name="attachproject_acctmgr_header_pwd">Parola:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">Yeniden yazın:</string>
+  <string name="attachproject_acctmgr_button">Ekle</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Kullanıcı bulunamadı</string>
+  <string name="attachproject_error_short_pwd">Parola çok kısa</string>
+  <string name="attachproject_error_no_internet">Bağlantı başarısız</string>
+  <string name="attachproject_error_pwd_no_match">Yazdığınız parolalar aynı değil</string>
+  <string name="attachproject_error_pwd_no_retype">Lütfen şifreyi tekrar yazın</string>
+  <string name="attachproject_error_no_url">Lütfen adresi yazın</string>
+  <string name="attachproject_error_no_email">Lütfen ePosta adresinizi yazın</string>
+  <string name="attachproject_error_no_pwd">Lütfen bir parola yazın</string>
+  <string name="attachproject_error_no_name">Lütfen kullanıcı adınızı yazın</string>
+  <string name="attachproject_error_unknown">başarısız</string>
+  <string name="attachproject_error_bad_username">Kullanıcı adı kabul edilmedi</string>
+  <string name="attachproject_error_email_in_use">ePosta zaten kullanımda</string>
+  <string name="attachproject_error_project_down">Proje çevrimdışı</string>
+  <string name="attachproject_error_email_bad_syntax">ePosta kabul edilmedi</string>
+  <string name="attachproject_error_bad_pwd">Parola kabul edilmedi</string>
+  <string name="attachproject_error_creation_disabled">Hesap oluşturma bu projede devre dışı</string>
+  <string name="attachproject_error_invalid_url">Geçersiz adres</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Geri</string>
+  <string name="attachproject_working_finish_button">Tamamla</string>
+  <string name="attachproject_working_check_desc">Başarılı</string>
+  <string name="attachproject_working_failed_desc">Başarısız</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Bağlan</string>
+  <string name="attachproject_working_verify">Hesabı doğrula</string>
+  <string name="attachproject_working_register">Hesap oluştur</string>
+  <string name="attachproject_working_login">Giriş yap</string>
+  <string name="attachproject_working_acctmgr">Hesap yöneticisi ekle</string>
+  <string name="attachproject_working_acctmgr_sync">Eşitle</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Proje seçmek için buraya dokunun.</string>
+  <string name="main_error">Haydaaa</string>
+  <string name="main_error_long">... bu olmamalıydı!\nYeniden denemek için simgeye dokunun.</string>
+  <string name="main_title_icon_desc">BOINC simgesi</string>
+  <!--tab names-->
+  <string name="tab_status">Durum</string>
+  <string name="tab_projects">Projeler</string>
+  <string name="tab_tasks">İşler</string>
+  <string name="tab_transfers">Aktarımlar</string>
+  <string name="tab_preferences">Tercihler</string>
+  <string name="tab_notices">Bildirimler</string>
+  <string name="tab_desc">Gezinti</string>
+  <!--status strings-->
+  <string name="status_running">Hesaplıyor</string>
+  <string name="status_running_long">Katıldığınız için teşekkürler.</string>
+  <string name="status_paused">Beklemede</string>
+  <string name="status_idle">Yapacak bir görev yok</string>
+  <string name="status_idle_long">İşler için bekleniyor...</string>
+  <string name="status_computing_disabled">Beklemede</string>
+  <string name="status_computing_disabled_long">Hesaplama ve ağı sürdürmek için oynata dokunun.</string>
+  <string name="status_launching">Başlıyor...</string>
+  <string name="status_noproject">Katılmak için bir proje seçin.</string>
+  <string name="status_closing">Kapanıyor...</string>
+  <string name="status_benchmarking">Test ediliyor...</string>
+  <string name="status_image_description">proje resmi</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Tercihler okunuyor...</string>
+  <string name="prefs_submit_button">Kaydet</string>
+  <string name="prefs_dialog_title">Yeni değeri girin:</string>
+  <string name="prefs_dialog_title_selection">Seçin:</string>
+  <string name="prefs_category_general">Genel</string>
+  <string name="prefs_category_network">Ağ</string>
+  <string name="prefs_category_power">Güç</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">Depolama</string>
+  <string name="prefs_category_memory">Bellek</string>
+  <string name="prefs_category_debug">Hata kaydı</string>
+  <string name="prefs_show_advanced_header">Gelişmiş tercihler ve kontrolleri görüntüle...</string>
+  <string name="prefs_suspend_when_screen_on">Ekran açıkken hesaplamayı duraklat</string>
+  <string name="prefs_stationary_device_mode_header">Sabit cihaz modu</string>
+  <string name="prefs_stationary_device_mode_description">Güç tercihlerinin hesaplanmasına izin verir. Cihazın pili yoksa etkinleştirin.</string>
+  <string name="prefs_power_source_header">Hesaplama için güç kaynakları</string>
+  <string name="prefs_power_source_description">BOINC hesaplama için kullanmasına izin verilen güç kaynakları seçer.</string>
+  <string name="prefs_power_source_ac">Duvar soketi</string>
+  <string name="prefs_power_source_usb">USB bağlantı</string>
+  <string name="prefs_power_source_wireless">Kablosuz Şarj Edici</string>
+  <string name="prefs_power_source_battery">Pil</string>
+  <string name="battery_charge_min_pct_header">En az pil seviyesi</string>
+  <string name="battery_charge_min_pct_description">BOINC, pil seviyesi bu değerin altına düşerse hesaplamayı duraklatır.</string>
+  <string name="battery_temperature_max_header">En çok pil sıcaklığı</string>
+  <string name="battery_temperature_max_description">BOINC, pil sıcaklığı bu değerin üzerine çıkarsa hesaplamayı duraklatır. Bu değeri değiştirmeniz önerilmez.</string>
+  <string name="prefs_disk_max_pct_header">En çok depolama alanı kullanımı</string>
+  <string name="prefs_disk_max_pct_description">BOINC, cihazınızın yüzde olarak en fazla ne kadar depolama alanını kullanabilecek?</string>
+  <string name="prefs_disk_min_free_gb_header">En az boş depolama alanı</string>
+  <string name="prefs_disk_min_free_gb_description">Cihazınızda en az ne kadar depolama alanı boş bırakılacak?</string>
+  <string name="prefs_disk_access_interval_header">Erişim zaman aralığı</string>
+  <string name="prefs_disk_access_interval_description">Disk erişimleri arasında bir aralık önerir</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Günlük aktarım kotası</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">BOINC\'in günlük internet kullanım kotası.</string>
+  <string name="prefs_network_wifi_only_header">İşleri yalnızca WiFi\'dayken aktar</string>
+  <string name="prefs_autostart_header">Cihaz açılınca otomatik başla</string>
+  <string name="prefs_show_notification_notices_header">Yeni bildirimler için uyarı göster</string>
+  <string name="prefs_show_notification_suspended_header">Askıya alındığında bildirim göster</string>
+  <string name="prefs_cpu_number_cpus_header">Kullanılacak CPU çekirdekleri</string>
+  <string name="prefs_cpu_number_cpus_description">BOINC\'in hesaplama için kullanabileceği işlemci (CPU) çekirdeği sayısı.</string>
+  <string name="prefs_cpu_other_load_suspension_header">CPU kullanımı fazlaysa duraklat</string>
+  <string name="prefs_cpu_other_load_suspension_description">BOINC nedeniyle diğer uygulamaların CPU kullanımı için hesaplama duraklama zamanını belirler.</string>
+  <string name="prefs_cpu_time_max_header">CPU sınırı</string>
+  <string name="prefs_cpu_time_max_description">BOINC\'in hesaplama için kullanabileceği CPU gücü.</string>
+  <string name="prefs_memory_max_idle_header">Bellek limiti</string>
+  <string name="prefs_memory_max_idle_description">İşlerin kullanabileceği en fazla bellek (RAM) miktarı.</string>
+  <string name="prefs_client_log_flags_header">BOINC istemci günlüğü bayrakları</string>
+  <string name="prefs_gui_log_level_header">GUI günlük seviyesi</string>
+  <string name="prefs_gui_log_level_description">Grafik arabirimi (GUI) günlüğü mesaj ayrıntı düzeyi.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">sn</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Projeler okunuyor...</string>
+  <string name="projects_add">Proje ekle</string>
+  <string name="projects_icon">Proje simgesi</string>
+  <string name="projects_credits">Kredi:</string>
+  <string name="projects_credits_host_and_user">%1$,d (bu cihazda) %2$,d (toplam)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Kullanıcı tarafından duraklatıldı</string>
+  <string name="projects_status_dontrequestmorework">Yeni işler indirilmeyecek</string>
+  <string name="projects_status_ended">Proje sona erdi - Kaldırmak için Tamam\'a dokunun</string>
+  <string name="projects_status_detachwhendone">İşler tamamlandığında kaldırılacak</string>
+  <string name="projects_status_schedrpcpending">Zamanlanmış istek kuyrukta</string>
+  <string name="projects_status_schedrpcinprogress">Zamanlanmış istek gerçekleştiriliyor</string>
+  <string name="projects_status_trickleuppending">İş ilerleme mesajı kuyrukta</string>
+  <string name="projects_status_backoff">İletişim ertelendi:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Proje komutları:</string>
+  <string name="projects_control_visit_website">Sitesine git</string>
+  <string name="projects_control_update">Güncelle</string>
+  <string name="projects_control_remove">Kaldır</string>
+  <string name="projects_control_suspend">Duraklat</string>
+  <string name="projects_control_resume">Sürdür</string>
+  <string name="projects_control_nonewtasks">Yeni işler indirme</string>
+  <string name="projects_control_allownewtasks">Yeni işler indir</string>
+  <string name="projects_control_reset">Sıfırla</string>
+  <string name="projects_control_dialog_title_acctmgr">Hesap Yöneticisi komutları:</string>
+  <string name="projects_control_sync_acctmgr">Eşitle</string>
+  <string name="projects_control_remove_acctmgr">Devredışı bırak</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Proje kaldırılsın mı?</string>
+  <string name="projects_confirm_detach_message">Kaldırmak istediğinizden emin misiniz?</string>
+  <string name="projects_confirm_detach_message2">BOINC\'ten? </string>
+  <string name="projects_confirm_detach_confirm">Kaldır</string>
+  <string name="projects_confirm_reset_title">Projeyi sıfırla</string>
+  <string name="projects_confirm_reset_message">Bu proje sıfırlansın mı:</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Sıfırla</string>
+  <string name="projects_confirm_remove_acctmgr_title">Hesap Yöneticisini devredışı bırak</string>
+  <string name="projects_confirm_remove_acctmgr_message">Bu hesap yöneticisini kullanmayı bırakmak istiyor musunuz:</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Devredışı bırak</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">İş adı:</string>
+  <string name="tasks_header_elapsed_time">Geçen süre:</string>
+  <string name="tasks_header_project_paused">(beklemede)</string>
+  <string name="tasks_header_deadline">Son teslim zamanı:</string>
+  <string name="tasks_result_new">yeni</string>
+  <string name="tasks_result_files_downloading">indirilmeyi bekliyor</string>
+  <string name="tasks_result_files_downloaded">indirme tamamlandı</string>
+  <string name="tasks_result_compute_error">hesaplama hatası</string>
+  <string name="tasks_result_files_uploading">gönderiliyor</string>
+  <string name="tasks_result_files_uploaded">gönderme tamamlandı</string>
+  <string name="tasks_result_aborted">iptal edildi</string>
+  <string name="tasks_result_upload_failed">gönderme başarısız</string>
+  <string name="tasks_active_uninitialized">başlamaya hazır</string>
+  <string name="tasks_active_executing">çalışıyor</string>
+  <string name="tasks_active_suspended">durakladı</string>
+  <string name="tasks_active_abort_pending">durduruluyor</string>
+  <string name="tasks_active_quit_pending">durduruluyor</string>
+  <string name="tasks_custom_suspended_via_gui">durakladı</string>
+  <string name="tasks_custom_project_suspended_via_gui">proje duraklatıldı</string>
+  <string name="tasks_custom_ready_to_report">raporlanmaya hazır</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">İş iptal edilsin mi?</string>
+  <string name="confirm_abort_task_message">Bu iş iptal edilsin :</string>
+  <string name="confirm_abort_task_confirm">İptal</string>
+  <string name="confirm_cancel">Vazgeç</string>
+  <string name="confirm_image_desc">Onaylama sorusu</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Aktarımlar okunuyor...</string>
+  <string name="trans_upload">Yükleme</string>
+  <string name="trans_download">İndirme</string>
+  <string name="trans_retryin">yeniden denenecek </string>
+  <string name="trans_failed">başarısız</string>
+  <string name="trans_suspended">durakladı</string>
+  <string name="trans_active">sürüyor</string>
+  <string name="trans_pending">kuyrukta</string>
+  <string name="trans_projectbackoff">proje ertelendi</string>
+  <string name="trans_header_name">Dosya:</string>
+  <string name="trans_control_retry">Aktarımları yeniden dene</string>
+  <string name="confirm_abort_trans_title">Aktarım iptal edilsin mi?</string>
+  <string name="confirm_abort_trans_message">Bu dosyanın aktarımı iptal edilsin mi:</string>
+  <string name="confirm_abort_trans_confirm">Evet</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Bildirimler alınıyor...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Günlük mesajları yükleniyor...</string>
+  <string name="eventlog_client_header">İstemci Mesajları</string>
+  <string name="eventlog_gui_header">GUI Mesajları</string>
+  <string name="eventlog_copy_toast">Günlük mesajları panoya kopyalandı.</string>
+  <string name="eventlog_email_subject">BONIC Android olay günlüğü:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Hesaplama durakladı.</string>
+  <string name="suspend_batteries">Hesaplamayı sürdürmek için cihazınızı şarja takın.</string>
+  <string name="suspend_screen_on">Hesaplamaya devam etmek için ekranı kapat.</string>
+  <string name="suspend_useractive">Kullanıcı faal.</string>
+  <string name="suspend_tod">Hesaplama zaman sınırlaması dışında.</string>
+  <string name="suspend_bm">BOINC cihazınızı test ediyor...</string>
+  <string name="suspend_disksize">Depolama alanı yetersiz.</string>
+  <string name="suspend_cputhrottle">Zamanlanmış CPU sınırlaması.</string>
+  <string name="suspend_noinput">Yakın zamanda kullanıcı faaaliyeti yok.</string>
+  <string name="suspend_delay">Başlatma geciktirmesi.</string>
+  <string name="suspend_exclusiveapp">Ayrıcalıklı bir uygulama çalışıyor.</string>
+  <string name="suspend_cpu">Cihazınız diğer uygulamalarla meşgul.</string>
+  <string name="suspend_network_quota">BOINC, internet kullanım kotasına ulaştı.</string>
+  <string name="suspend_os">Android tarafından durduruldu.</string>
+  <string name="suspend_wifi">WiFi\'a bağlı değil.</string>
+  <string name="suspend_battery_charging">Pilin şarj olması bekleniyor.</string>
+  <string name="suspend_battery_charging_long">Hesaplama, pil seviyesi şuna ulaştğında başlayacak:</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">şu anda</string>
+  <string name="suspend_battery_overheating">Pilin soğuması bekleniyor</string>
+  <string name="suspend_user_req">Hesaplama sürdürülüyor...</string>
+  <string name="suspend_network_user_req">elle.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">Kullanıcı tarafından istendi</string>
+  <string name="rpcreason_needwork">İş indirmek için</string>
+  <string name="rpcreason_resultsdue">Tamamlanan işleri raporlamak için</string>
+  <string name="rpcreason_trickleup">İş ilerleme mesajı gönderimi için</string>
+  <string name="rpcreason_acctmgrreq">Hesap yöneticisi tarafından istendi</string>
+  <string name="rpcreason_init">Proje başlatılıyor</string>
+  <string name="rpcreason_projectreq">Proje tarafından istendi</string>
+  <string name="rpcreason_unknown">Bilinmeyen sebep</string>
+  <!--menu-->
+  <string name="menu_refresh">Yenile</string>
+  <string name="menu_emailto">ePostayla gönder</string>
+  <string name="menu_copy">Panoya kopyala</string>
+  <string name="menu_eventlog">Olay Günlüğü</string>
+  <string name="menu_exit">BOINC\'ten Çık</string>
+  <string name="menu_run_mode_disable">Duraklat</string>
+  <string name="menu_run_mode_enable">Sürdür</string>
+  <string name="menu_about">Hakkında</string>
+  <string name="menu_help">Yardım</string>
+  <!--about dialog-->
+  <string name="about_button">Geri dön</string>
+  <string name="about_title">Hakkında</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Sürüm</string>
+  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+  <string name="about_copyright">\u00A9 2003–2016 Kaliforniya Üniversitesi, Berkeley.</string>
+  <string name="about_copyright_reserved">Tüm Hakları Saklıdır.</string>
+  <string name="about_credits">Verdikleri destek için Max Planck Enstitüsü Yerçekimi Fizik Bölümü\'ne, IBM  ve HTC şirketlerine teşekkürler.</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="one">Yeni bildirim - %1$s</item>
+    <item quantity="other">%2$,d yeni bildirim</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">Gönüllü hesaplama uygulaması tespit edildi.</string>
+  <string name="nonexcl_dialog_text">Bu cihazda başka bir gönüllü hesaplama uygulaması çalışıyor. Aynı anda sadece bir versiyon çalışabilir.</string>
+  <string name="nonexcl_dialog_exit">Çıkış</string>
+  <!--social integration-->
+  <string name="social_invite_button">Arkadaşlarını davet et</string>
+  <string name="social_invite_intent_title">Nasıl paylaşmak istiyorsunuz?</string>
+  <string name="social_invite_content_title">Akıllı telefonumdan bilim yapıyorum!</string>
+  <string name="social_invite_content_body">Bilim adına hesaplama yapmak için %1$s mı kullanıyorum. Sende katılabilirsin! Uygulamayı %2$s dan indirebilirsin.</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-uk/strings.xml b/android/BOINC/app/src/main/res/values-uk/strings.xml
new file mode 100644
index 0000000..3f1707a
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-uk/strings.xml
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">Завантаження! Зачекайте, будь ласка...</string>
+  <string name="generic_button_continue">Продовжити</string>
+  <string name="generic_button_finish">Готово</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">Оберіть наукові проекти, в яких ви бажаєте прийняти участь:</string>
+  <string name="attachproject_list_header">Оберіть проект:</string>
+  <string name="attachproject_list_manual_button">Додати проект за адресою (URL)</string>
+  <string name="attachproject_list_manual_dialog_title">Введіть адресу (URL) проекту:</string>
+  <string name="attachproject_list_manual_dialog_button">Додати проект</string>
+  <string name="attachproject_list_manual_no_url">Будь ласка, введіть адресу (URL) проекту:</string>
+  <string name="attachproject_list_acctmgr_button">Додати менеджер проектів</string>
+  <string name="attachproject_list_no_internet">Відсутнє з’єднання з Інтернетом</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">Введіть інформацію облікового запису</string>
+  <string name="attachproject_credential_input_desc">Введіть інформацію облікового запису для обраних проектів:</string>
+  <string name="attachproject_credential_input_show_pwd">Показати пароль</string>
+  <string name="attachproject_individual_credential_input">Додати проекти окремо</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">Під час додавання проекту виникли проблеми</string>
+  <string name="attachproject_conflict_undefined">Неможливо встановити зв’язок</string>
+  <string name="attachproject_conflict_not_unique">Невірний пароль існуючого облікового запису</string>
+  <string name="attachproject_conflict_bad_password">Невірний пароль</string>
+  <string name="attachproject_conflict_unknown_user">Такий обліковий запис не існує</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">Такий обліковий запис не існує, перейдіть на сторінку проекта для реєстрації</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">Додавання</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">Порада</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">Як прийняти участь:</string>
+  <string name="attachproject_hint_contribtion_wifi">1. Підключити пристрій до WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2. Підключити пристрій до джерела живлення</string>
+  <string name="attachproject_hint_contribtion_screen">3. Вимкнути екран</string>
+  <string name="attachproject_hint_projectwebsite_header">Відвідати інтернет сторінку проекту:</string>
+  <string name="attachproject_hint_projectwebsite_science">Дізнатися більше про науковий аспект</string>
+  <string name="attachproject_hint_projectwebsite_stats">Переглянути статистику участі</string>
+  <string name="attachproject_hint_projectwebsite_community">Контактувати з іншими волонтерами</string>
+  <string name="attachproject_hint_platforms_header">BOINC також доступний для вашого комп’ютера або ноутбука, відвідайте boinc.berkeley.edu, щоб дізнатися більше.</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">Встановлення з’єднання із сервером проекту</string>
+  <string name="attachproject_login_image_description">Логотип проекту.</string>
+  <string name="attachproject_login_header_general_area">Загальна область:</string>
+  <string name="attachproject_login_header_specific_area">Спеціальна область:</string>
+  <string name="attachproject_login_header_description">Опис:</string>
+  <string name="attachproject_login_header_home">Домівка:</string>
+  <string name="attachproject_login_header_url">Веб-сторінка:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">Цей проект підтримує пристрої на базі Android</string>
+  <string name="attachproject_login_platform_not_supported">Цей проект не підтримує пристрої на базі Android</string>
+  <string name="attachproject_login_category_terms_of_use">Умови використання для</string>
+  <string name="attachproject_login_accept_terms_of_use">Створюючи обліковий запис у цьому проекті, Ви приймаєте умови використання, що викладені вище.</string>
+  <string name="attachproject_login_category_login">Увійти з існуючим обліковим записом</string>
+  <string name="attachproject_login_header_id_email">Електронна пошта:</string>
+  <string name="attachproject_login_header_id_name">Ім\'я:</string>
+  <string name="attachproject_login_header_pwd">Пароль:</string>
+  <string name="attachproject_login_category_creation">Новий</string>
+  <string name="attachproject_login_header_creation_enabled">Зареєструвати обліковий запис для участі:</string>
+  <string name="attachproject_login_header_creation_client_disabled">Відвідати інтернет сторінку проекту для створення облікового запису:</string>
+  <string name="attachproject_login_header_creation_disabled">Цей проект тимчасово не реєструє нові облікові записи</string>
+  <string name="attachproject_login_button_registration">Зареєструватися</string>
+  <string name="attachproject_login_button_login">Увійти</string>
+  <string name="attachproject_login_button_forgotpw">Забули пароль?</string>
+  <string name="attachproject_login_error_toast">Не вдалося з’єднатися з проектом!</string>
+  <string name="attachproject_login_attached">Додано</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">Реєстрація облікового запису для</string>
+  <string name="attachproject_registration_header_url">Проект:</string>
+  <string name="attachproject_registration_header_email">Електронна пошта:</string>
+  <string name="attachproject_registration_header_username">Ім\'я:</string>
+  <string name="attachproject_registration_header_teamname">Команда:</string>
+  <string name="attachproject_registration_header_pwd">Пароль:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… Повторити:</string>
+  <string name="attachproject_registration_button">Створити</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">Використовуйте менеджер проектів BOINC, щоб додати та керувати декількома проектами</string>
+  <string name="attachproject_acctmgr_header">Додати менеджер проектів</string>
+  <string name="attachproject_acctmgr_header_url">Адреса (URL)</string>
+  <string name="attachproject_acctmgr_header_name">Користувач:</string>
+  <string name="attachproject_acctmgr_header_pwd">Пароль:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… Повторити:</string>
+  <string name="attachproject_acctmgr_button">Додати</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">Користувача не знайдено</string>
+  <string name="attachproject_error_short_pwd">Пароль надто короткий</string>
+  <string name="attachproject_error_no_internet">Невдала спроба зв’язку</string>
+  <string name="attachproject_error_pwd_no_match">Паролі не збігаються</string>
+  <string name="attachproject_error_pwd_no_retype">Будь ласка, введіть пароль ще раз</string>
+  <string name="attachproject_error_no_url">Будь ласка, введіть адресу (URL)</string>
+  <string name="attachproject_error_no_email">Будь ласка, вкажіть адресу електронної пошти</string>
+  <string name="attachproject_error_no_pwd">Будь ласка, введіть пароль</string>
+  <string name="attachproject_error_no_name">Будь ласка, введіть ім\'я користувача</string>
+  <string name="attachproject_error_unknown">невдало</string>
+  <string name="attachproject_error_bad_username">Ім\'я користувача відхилене</string>
+  <string name="attachproject_error_email_in_use">Адреса електронної пошти вже використовується</string>
+  <string name="attachproject_error_project_down">Проект поза мережею</string>
+  <string name="attachproject_error_email_bad_syntax">Адресу електронної пошти відхилено</string>
+  <string name="attachproject_error_bad_pwd">Пароль відхилено</string>
+  <string name="attachproject_error_creation_disabled">Можливість створення облікових записів в даному проекті відключена</string>
+  <string name="attachproject_error_invalid_url">Неправильна адреса (URL)</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">Назад</string>
+  <string name="attachproject_working_finish_button">Готово</string>
+  <string name="attachproject_working_check_desc">Успішно</string>
+  <string name="attachproject_working_failed_desc">Невдало</string>
+  <string name="attachproject_working_ongoing">...</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">Підключитися</string>
+  <string name="attachproject_working_verify">Перевірити обліковий запис</string>
+  <string name="attachproject_working_register">Зареєструвати обліковий запис</string>
+  <string name="attachproject_working_login">Увійти</string>
+  <string name="attachproject_working_acctmgr">Додати менеджер проектів</string>
+  <string name="attachproject_working_acctmgr_sync">Синхронізувати</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">Щоб обрати проект натисніть тут.</string>
+  <string name="main_error">Ой!</string>
+  <string name="main_error_long">…цього не повинно траплятися!\nНатисніть на іконці для повторної спроби.</string>
+  <string name="main_title_icon_desc">Іконка BOINC</string>
+  <!--tab names-->
+  <string name="tab_status">Статус</string>
+  <string name="tab_projects">Проекти</string>
+  <string name="tab_tasks">Завдання</string>
+  <string name="tab_transfers">Передачі</string>
+  <string name="tab_preferences">Налаштування</string>
+  <string name="tab_notices">Примітки</string>
+  <string name="tab_desc">Навігація</string>
+  <!--status strings-->
+  <string name="status_running">Обчислення</string>
+  <string name="status_running_long">Дякуємо за участь.</string>
+  <string name="status_paused">Призупинено</string>
+  <string name="status_idle">Нема роботи</string>
+  <string name="status_idle_long">Очікування завдань…</string>
+  <string name="status_computing_disabled">Призупинено</string>
+  <string name="status_computing_disabled_long">Натисніть кнопку Грати для відновлення обчислень та зв’язку з мережею.</string>
+  <string name="status_launching">Запуск…</string>
+  <string name="status_noproject">Оберіть проект для прийняття участі в ньому.</string>
+  <string name="status_closing">Закриття...</string>
+  <string name="status_benchmarking">Тестування...</string>
+  <string name="status_image_description">зображення проекту</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">Читання налаштувань...</string>
+  <string name="prefs_submit_button">Зберегти</string>
+  <string name="prefs_dialog_title">Ввести нове значення:</string>
+  <string name="prefs_dialog_title_selection">Вибрати:</string>
+  <string name="prefs_category_general">Основні</string>
+  <string name="prefs_category_network">Мережа</string>
+  <string name="prefs_category_power">Живлення</string>
+  <string name="prefs_category_cpu">ЦП</string>
+  <string name="prefs_category_storage">Диск</string>
+  <string name="prefs_category_memory">Пам`ять</string>
+  <string name="prefs_category_debug">Діагностика</string>
+  <string name="prefs_show_advanced_header">Показати додаткові налаштування та елементи керування...</string>
+  <string name="prefs_suspend_when_screen_on">Призупиняти обчислення, коли екран увімкнуто</string>
+  <string name="prefs_stationary_device_mode_header">Стаціонарний режим роботи пристрою</string>
+  <string name="prefs_stationary_device_mode_description">Дозволяє робити обчислення не дивлячись на налаштування Живлення. Вмикати, тільки якщо пристрой не має акумулятора.</string>
+  <string name="prefs_power_source_header">Джерела живлення для обчислювання</string>
+  <string name="prefs_power_source_description">Оберіть джерела живлення, які BOINC може використовувати для обчислення.</string>
+  <string name="prefs_power_source_ac">Розетка</string>
+  <string name="prefs_power_source_usb">Підключення по USB</string>
+  <string name="prefs_power_source_wireless">Бездротовий зарядний пристрій</string>
+  <string name="prefs_power_source_battery">Акумулятор</string>
+  <string name="battery_charge_min_pct_header">Мін. заряд батареї</string>
+  <string name="battery_charge_min_pct_description">BOINC призупиняє обчислення нижче визначеного рівня заряду акумулятора.</string>
+  <string name="battery_temperature_max_header">Макс. температура батареї</string>
+  <string name="battery_temperature_max_description">BOINC призупинить розрахунки, коли температура батареї перевищить вказаний рівень. Не рекомендовано змінювати це значення.</string>
+  <string name="prefs_disk_max_pct_header">Макс. об’єм диска для використання</string>
+  <string name="prefs_disk_max_pct_description">Скільки відсотків дискового простору може використовувати BOINC?</string>
+  <string name="prefs_disk_min_free_gb_header">Мін. запас дискового простору</string>
+  <string name="prefs_disk_min_free_gb_description">Скільки вашого дискового простору повинно залишитися вільним?</string>
+  <string name="prefs_disk_access_interval_header">Період доступу</string>
+  <string name="prefs_disk_access_interval_description">Пропонує проміжок між доступами до диску</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">Денний ліміт передачі</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">Обмеження щоденної передачі даних, що здійснює BOINC.</string>
+  <string name="prefs_network_wifi_only_header">Передавати завдання тільки через WiFi</string>
+  <string name="prefs_autostart_header">Автозапуск</string>
+  <string name="prefs_show_notification_notices_header">Сповіщати про нові повідомлення</string>
+  <string name="prefs_show_notification_suspended_header">Сповіщати навіть коли призупинено</string>
+  <string name="prefs_cpu_number_cpus_header">Використано ядер ЦП</string>
+  <string name="prefs_cpu_number_cpus_description">Обмежує кількість ядер ЦП, які BOINC використовує для обчислень.</string>
+  <string name="prefs_cpu_other_load_suspension_header">Призупиняти, коли використання ЦП вище, ніж</string>
+  <string name="prefs_cpu_other_load_suspension_description">Визначає, коли BOINC призупиняє обчислення через використання процессора іншими додатками.</string>
+  <string name="prefs_cpu_time_max_header">Обмеження ЦП</string>
+  <string name="prefs_cpu_time_max_description">Обмежує процесорний час роботи, який BOINC використовує для обчислень.</string>
+  <string name="prefs_memory_max_idle_header">Обмеження RAM</string>
+  <string name="prefs_memory_max_idle_description">Обмеження кількості RAM, доступної для використання.</string>
+  <string name="prefs_client_log_flags_header">Прапорці журналу клієнта BOINC</string>
+  <string name="prefs_gui_log_level_header">Рівень журналу GUI</string>
+  <string name="prefs_gui_log_level_description">Задає рівень деталізації повідомлень журналу GUI.</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">сек.</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">Читання проектів...</string>
+  <string name="projects_add">Додати проект</string>
+  <string name="projects_icon">Іконка проекту</string>
+  <string name="projects_credits">Бали:</string>
+  <string name="projects_credits_host_and_user">%1$,d (на цьому пристрої) %2$,d (загалом)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">Призупинено користувачем</string>
+  <string name="projects_status_dontrequestmorework">Не приймати нові завдання</string>
+  <string name="projects_status_ended">Проект завершено - можна видаляти</string>
+  <string name="projects_status_detachwhendone">Буде видалено після завершення завдань</string>
+  <string name="projects_status_schedrpcpending">Запит інформації у планувальника</string>
+  <string name="projects_status_schedrpcinprogress">Відбувається запит інформації у планувальника</string>
+  <string name="projects_status_trickleuppending">Очікування проміжного відправлення</string>
+  <string name="projects_status_backoff">Зв’язок за розкладом:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">Команди проекту:</string>
+  <string name="projects_control_visit_website">Відвідати веб-сторінку</string>
+  <string name="projects_control_update">Оновити</string>
+  <string name="projects_control_remove">Видалити</string>
+  <string name="projects_control_suspend">Призупинити</string>
+  <string name="projects_control_resume">Відновити</string>
+  <string name="projects_control_nonewtasks">Не завантажувати нові завдання</string>
+  <string name="projects_control_allownewtasks">Отримувати нові завдання</string>
+  <string name="projects_control_reset">Скинути</string>
+  <string name="projects_control_dialog_title_acctmgr">Команди менеджера проектів:</string>
+  <string name="projects_control_sync_acctmgr">Синхронізувати</string>
+  <string name="projects_control_remove_acctmgr">Відключити</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">Видалити проект?</string>
+  <string name="projects_confirm_detach_message">Ви справді хочете видалити</string>
+  <string name="projects_confirm_detach_message2">із BOINC?</string>
+  <string name="projects_confirm_detach_confirm">Видалити</string>
+  <string name="projects_confirm_reset_title">Перезапустити проект</string>
+  <string name="projects_confirm_reset_message">Ви справді хочете перезапустити</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">Перезапустити</string>
+  <string name="projects_confirm_remove_acctmgr_title">Відключити менеджер проектів</string>
+  <string name="projects_confirm_remove_acctmgr_message">Ви впевнені, що бажаєте припинити використання</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">Відключити</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">Назва завдання:</string>
+  <string name="tasks_header_elapsed_time">Витрачено часу:</string>
+  <string name="tasks_header_project_paused">(призупинено)</string>
+  <string name="tasks_header_deadline">Кінцевий термін:</string>
+  <string name="tasks_result_new">нове</string>
+  <string name="tasks_result_files_downloading">очікування завантаження</string>
+  <string name="tasks_result_files_downloaded">звантаження завершене</string>
+  <string name="tasks_result_compute_error">помилка обчислень</string>
+  <string name="tasks_result_files_uploading">відправлення</string>
+  <string name="tasks_result_files_uploaded">відправлення завершене</string>
+  <string name="tasks_result_aborted">перервано</string>
+  <string name="tasks_result_upload_failed">невдала спроба відправлення</string>
+  <string name="tasks_active_uninitialized">готово</string>
+  <string name="tasks_active_executing">працює</string>
+  <string name="tasks_active_suspended">призупинено</string>
+  <string name="tasks_active_abort_pending">призупинення</string>
+  <string name="tasks_active_quit_pending">призупинення</string>
+  <string name="tasks_custom_suspended_via_gui">призупинено</string>
+  <string name="tasks_custom_project_suspended_via_gui">проект призупинено</string>
+  <string name="tasks_custom_ready_to_report">готовий до звітування</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">Перервати завдання?</string>
+  <string name="confirm_abort_task_message">Перервати завдання:</string>
+  <string name="confirm_abort_task_confirm">Перервати</string>
+  <string name="confirm_cancel">Скасувати</string>
+  <string name="confirm_image_desc">Діалог підтвердження</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">Читання передач...</string>
+  <string name="trans_upload">Відправлення</string>
+  <string name="trans_download">Завантаження</string>
+  <string name="trans_retryin">повторна спроба через</string>
+  <string name="trans_failed">невдало</string>
+  <string name="trans_suspended">призупинено</string>
+  <string name="trans_active">активна</string>
+  <string name="trans_pending">в очікуванні</string>
+  <string name="trans_projectbackoff">запит до проекту відкладено на</string>
+  <string name="trans_header_name">Файл:</string>
+  <string name="trans_control_retry">Повторити передачі</string>
+  <string name="confirm_abort_trans_title">Перервати передачу?</string>
+  <string name="confirm_abort_trans_message">Перервати файл:</string>
+  <string name="confirm_abort_trans_confirm">Перервати</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">Читання приміток...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">Завантаження повідомлень журналу...</string>
+  <string name="eventlog_client_header">Повідомлення клієнта</string>
+  <string name="eventlog_gui_header">Повідомлення GUI</string>
+  <string name="eventlog_copy_toast">Журнал скопійований в буфер обміну.</string>
+  <string name="eventlog_email_subject">Журнал подій для BOINC на Android:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">Обчислення призупинене.</string>
+  <string name="suspend_batteries">Підключіть свій пристрій до зарядного пристрою для продовження обчислення.</string>
+  <string name="suspend_screen_on">Вимкніть екран для продовження обчислення.</string>
+  <string name="suspend_useractive">Працює користувач.</string>
+  <string name="suspend_tod">Закінчився час, виділений для обчислень.</string>
+  <string name="suspend_bm">BOINC визначає продуктивність вашого пристрою...</string>
+  <string name="suspend_disksize">Недостатньо місця на диску.</string>
+  <string name="suspend_cputhrottle">Заплановане обмеження навантаження процесора.</string>
+  <string name="suspend_noinput">Останнім часом користувач неактивний.</string>
+  <string name="suspend_delay">Ініціалізація відкладена.</string>
+  <string name="suspend_exclusiveapp">Виконується привілейований додаток.</string>
+  <string name="suspend_cpu">Ваш пристрій зайнятий іншими додатками.</string>
+  <string name="suspend_network_quota">BOINC досяг межі передачі даних мережею.</string>
+  <string name="suspend_os">Зупинено Android-ом.</string>
+  <string name="suspend_wifi">Відсутнє підключення до WiFi.</string>
+  <string name="suspend_battery_charging">Очікування більшого рівня заряду акумулятора.</string>
+  <string name="suspend_battery_charging_long">Обчислення продовжаться, коли заряд батареї досягне</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">зараз</string>
+  <string name="suspend_battery_overheating">Очікування охолодження акумулятора</string>
+  <string name="suspend_user_req">Поновлення обчислень...</string>
+  <string name="suspend_network_user_req">вручну.</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">На вимогу користувача</string>
+  <string name="rpcreason_needwork">Надіслати запит на завдання</string>
+  <string name="rpcreason_resultsdue">Повідомити про виконані завдання</string>
+  <string name="rpcreason_trickleup">Надіслати проміжне повідомлення</string>
+  <string name="rpcreason_acctmgrreq">На запит менеджера проектів</string>
+  <string name="rpcreason_init">Ініціалізація проекту</string>
+  <string name="rpcreason_projectreq">На запит проекту</string>
+  <string name="rpcreason_unknown">Невідома причина</string>
+  <!--menu-->
+  <string name="menu_refresh">Оновити</string>
+  <string name="menu_emailto">Надіслати електронною поштою</string>
+  <string name="menu_copy">Копіювати в буфер обміну</string>
+  <string name="menu_eventlog">Журнал подій</string>
+  <string name="menu_exit">Вийти з BOINC</string>
+  <string name="menu_run_mode_disable">Призупинити</string>
+  <string name="menu_run_mode_enable">Відновити</string>
+  <string name="menu_about">Про додаток</string>
+  <string name="menu_help">Довідка</string>
+  <!--about dialog-->
+  <string name="about_button">Повернутися</string>
+  <string name="about_title">Про додаток</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">Версія</string>
+  <string name="about_name_long">Відкрита інфраструктура для розподілених обчислень університету Берклі</string>
+    <string name="about_copyright">© 2003-2016 Університет Каліфорнії, Берклі.\nВсі права захищено.</string>
+  <string name="about_copyright_reserved">Всі права захищені.</string>
+  <string name="about_credits">Дякуємо Max Planck Institute for Gravitational Physics, IBM Corporation та HTC Corporation за їх підтримку.</string>
+    <!--notice notification-->
+  <!--multi BOINC compitability-->
+  <string name="nonexcl_dialog_header">Знайдено додаток добровільних обчислень</string>
+  <string name="nonexcl_dialog_text">Інший додаток добровільних обчислень вже працює на цьому пристрої. Тільки один додаток може працювати одночасно.</string>
+  <string name="nonexcl_dialog_exit">Вийти</string>
+  <!--social integration-->
+  <string name="social_invite_button">Запросити друзів</string>
+  <string name="social_invite_intent_title">Як ви бажаєто поділитися?</string>
+  <string name="social_invite_content_title">Я приймаю участь у наукових обчисленнях на моєму смартфоні!</string>
+  <string name="social_invite_content_body">Я вікористовую %1$s для наукових обчислень. Ти також можешь прийняти участь! Завантажуй додаток звідси: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/res/values-v11/styles.xml b/android/BOINC/app/src/main/res/values-v11/styles.xml
similarity index 100%
rename from android/BOINC/res/values-v11/styles.xml
rename to android/BOINC/app/src/main/res/values-v11/styles.xml
diff --git a/android/BOINC/res/values-v14/theme.xml b/android/BOINC/app/src/main/res/values-v14/theme.xml
similarity index 100%
rename from android/BOINC/res/values-v14/theme.xml
rename to android/BOINC/app/src/main/res/values-v14/theme.xml
diff --git a/android/BOINC/app/src/main/res/values-zh-rCN/strings.xml b/android/BOINC/app/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..085ec63
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,356 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">载入中!请稍候...</string>
+  <string name="generic_button_continue">继续</string>
+  <string name="generic_button_finish">完成</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">请选择您希望参加的科学项目:</string>
+  <string name="attachproject_list_header">选择一个项目</string>
+  <string name="attachproject_list_manual_button">通过URL添加项目</string>
+  <string name="attachproject_list_manual_dialog_title">输入项目网址:</string>
+  <string name="attachproject_list_manual_dialog_button">添加项目</string>
+  <string name="attachproject_list_manual_no_url">请输入项目网址</string>
+  <string name="attachproject_list_acctmgr_button">添加项目管理器</string>
+  <string name="attachproject_list_no_internet">无法连接到互联网</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">输入帐户信息</string>
+  <string name="attachproject_credential_input_desc">请输入所选项目的账户信息</string>
+  <string name="attachproject_credential_input_show_pwd">显示密码</string>
+  <string name="attachproject_individual_credential_input">分别添加项目</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">在添加项目时遇到以下问题:</string>
+  <string name="attachproject_conflict_undefined">无法连接</string>
+  <string name="attachproject_conflict_not_unique">账户已存在,但密码错误</string>
+  <string name="attachproject_conflict_bad_password">密码错误</string>
+  <string name="attachproject_conflict_unknown_user">账户不存在</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">账户不存在,请到项目网站上注册</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">正在添加</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">提示</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">如何参与:</string>
+  <string name="attachproject_hint_contribtion_wifi">1、连接到WiFi网络</string>
+  <string name="attachproject_hint_contribtion_charger">2、插上充电器</string>
+  <string name="attachproject_hint_contribtion_screen">3、关闭屏幕(锁屏)</string>
+  <string name="attachproject_hint_projectwebsite_header">访问项目网站以:</string>
+  <string name="attachproject_hint_projectwebsite_science">了解更多科学方面的内容</string>
+  <string name="attachproject_hint_projectwebsite_stats">查看所做贡献的统计数据</string>
+  <string name="attachproject_hint_projectwebsite_community">与其他志愿者交流</string>
+  <string name="attachproject_hint_platforms_header">BOINC也有电脑版本,请访问 boinc.berkeley.edu 了解更多信息。</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">与项目服务器通信中...</string>
+  <string name="attachproject_login_image_description">项目标识</string>
+  <string name="attachproject_login_header_general_area">大致地区:</string>
+  <string name="attachproject_login_header_specific_area">具体地区:</string>
+  <string name="attachproject_login_header_description">描述:</string>
+  <string name="attachproject_login_header_home">主页:</string>
+  <string name="attachproject_login_header_url">网站:</string>
+  <string name="attachproject_login_header_platform">安卓:</string>
+  <string name="attachproject_login_platform_supported">项目支持此设备</string>
+  <string name="attachproject_login_platform_not_supported">项目不支持此设备</string>
+  <string name="attachproject_login_category_terms_of_use">使用协议</string>
+  <string name="attachproject_login_accept_terms_of_use">在项目中创建账户即代表您同意上述使用协议</string>
+  <string name="attachproject_login_category_login">用已有的账户登录</string>
+  <string name="attachproject_login_header_id_email">电子邮箱地址:</string>
+  <string name="attachproject_login_header_id_name">姓名:</string>
+  <string name="attachproject_login_header_pwd">密码:</string>
+  <string name="attachproject_login_category_creation">第一次加入</string>
+  <string name="attachproject_login_header_creation_enabled">注册帐号来参与志愿计算。</string>
+  <string name="attachproject_login_header_creation_client_disabled">访问项目网站以创建新账户:</string>
+  <string name="attachproject_login_header_creation_disabled">该项目目前不支持新建帐户。 </string>
+  <string name="attachproject_login_button_registration">注册</string>
+  <string name="attachproject_login_button_login">登陆</string>
+  <string name="attachproject_login_button_forgotpw">忘记密码</string>
+  <string name="attachproject_login_error_toast">与项目方通信失败!</string>
+  <string name="attachproject_login_attached">已添加</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">注册帐号</string>
+  <string name="attachproject_registration_header_url">项目:</string>
+  <string name="attachproject_registration_header_email">电子邮件地址:</string>
+  <string name="attachproject_registration_header_username">用户名:</string>
+  <string name="attachproject_registration_header_teamname">团队:</string>
+  <string name="attachproject_registration_header_pwd">密码:</string>
+  <string name="attachproject_registration_header_pwd_confirm">重新输入:</string>
+  <string name="attachproject_registration_button">创建</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">使用BOINC项目管理器来添加或管理多个项目</string>
+  <string name="attachproject_acctmgr_header">添加项目管理器</string>
+  <string name="attachproject_acctmgr_header_url">网址</string>
+  <string name="attachproject_acctmgr_header_name">用户:</string>
+  <string name="attachproject_acctmgr_header_pwd">密码:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">重新输入:</string>
+  <string name="attachproject_acctmgr_button">添加</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">未找到用户</string>
+  <string name="attachproject_error_short_pwd">密码过短</string>
+  <string name="attachproject_error_no_internet">连接失败</string>
+  <string name="attachproject_error_pwd_no_match">密码不匹配</string>
+  <string name="attachproject_error_pwd_no_retype">请重新输入密码</string>
+  <string name="attachproject_error_no_url">请输入项目网址</string>
+  <string name="attachproject_error_no_email">请输入电子邮箱地址</string>
+  <string name="attachproject_error_no_pwd">请输入密码</string>
+  <string name="attachproject_error_no_name">请输入用户名</string>
+  <string name="attachproject_error_unknown">失败</string>
+  <string name="attachproject_error_bad_username">用户名错误</string>
+  <string name="attachproject_error_email_in_use">该电子邮件地址已被使用</string>
+  <string name="attachproject_error_project_down">项目离线</string>
+  <string name="attachproject_error_email_bad_syntax">电子邮件地址错误</string>
+  <string name="attachproject_error_bad_pwd">密码错误</string>
+  <string name="attachproject_error_creation_disabled">项目不接受新的账户注册</string>
+  <string name="attachproject_error_invalid_url">错误的网址</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">上一步</string>
+  <string name="attachproject_working_finish_button">完成</string>
+  <string name="attachproject_working_check_desc">成功!</string>
+  <string name="attachproject_working_failed_desc">失败</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">。</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">连接</string>
+  <string name="attachproject_working_verify">验证账户</string>
+  <string name="attachproject_working_register">注册账户</string>
+  <string name="attachproject_working_login">登录</string>
+  <string name="attachproject_working_acctmgr">添加项目管理器</string>
+  <string name="attachproject_working_acctmgr_sync">同步</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">点击这里来选择项目。</string>
+  <string name="main_error">哦不!</string>
+  <string name="main_error_long">...这不科学!\n点击图标再试试。</string>
+  <string name="main_title_icon_desc">BOINC 图标</string>
+  <!--tab names-->
+  <string name="tab_status">状态</string>
+  <string name="tab_projects">项目</string>
+  <string name="tab_tasks">任务</string>
+  <string name="tab_transfers">网络传输</string>
+  <string name="tab_preferences">参数设置</string>
+  <string name="tab_notices">通知</string>
+  <string name="tab_desc">导航栏</string>
+  <!--status strings-->
+  <string name="status_running">正在计算</string>
+  <string name="status_running_long">感谢您对志愿计算的贡献!</string>
+  <string name="status_paused">已暂停</string>
+  <string name="status_idle">无事可做</string>
+  <string name="status_idle_long">等待新任务中...</string>
+  <string name="status_computing_disabled">已暂停</string>
+  <string name="status_computing_disabled_long">按下开始恢复网络链接和计算。</string>
+  <string name="status_launching">启动中...</string>
+  <string name="status_noproject">选择一个项目来参与志愿计算。</string>
+  <string name="status_closing">正在关闭...</string>
+  <string name="status_benchmarking">正在进行性能基准测试...</string>
+  <string name="status_image_description">项目图像</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">正在读取参数设置中,,,</string>
+  <string name="prefs_submit_button">保存</string>
+  <string name="prefs_dialog_title">输入新参数:</string>
+  <string name="prefs_dialog_title_selection">选择:</string>
+  <string name="prefs_category_general">一般</string>
+  <string name="prefs_category_network">网络</string>
+  <string name="prefs_category_power">电源</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">储存</string>
+  <string name="prefs_category_memory">内存(RAM)</string>
+  <string name="prefs_category_debug">调试</string>
+  <string name="prefs_show_advanced_header">显示高级配置</string>
+  <string name="prefs_suspend_when_screen_on">当屏幕亮时暂停计算</string>
+  <string name="prefs_stationary_device_mode_header">交流电模式</string>
+  <string name="prefs_stationary_device_mode_description">忽略电源设置。仅当设备没有电池时选择该选项。</string>
+  <string name="prefs_power_source_header">计算时的电力来源</string>
+  <string name="prefs_power_source_description">选择允许BOINC使用的电力来源。</string>
+  <string name="prefs_power_source_ac">插座电源</string>
+  <string name="prefs_power_source_usb">USB 连接</string>
+  <string name="prefs_power_source_wireless">无线充电</string>
+  <string name="prefs_power_source_battery">电池</string>
+  <string name="battery_charge_min_pct_header">最少电量</string>
+  <string name="battery_charge_min_pct_description">当电量低于设定值时BOINC将暂停计算。</string>
+  <string name="battery_temperature_max_header">最大电池温度</string>
+  <string name="battery_temperature_max_description">BOINC 当电池温度高于设定值时会暂停运算。强烈建议不要更改此选项!!</string>
+  <string name="prefs_disk_max_pct_header">最多使用的储存空间</string>
+  <string name="prefs_disk_max_pct_description">BOINC 能使用多少比例的储存空间?</string>
+  <string name="prefs_disk_min_free_gb_header">最少使用的储存空间</string>
+  <string name="prefs_disk_min_free_gb_description">您的设备有多少剩余储存空间可以使用?</string>
+  <string name="prefs_disk_access_interval_header">访问间隔</string>
+  <string name="prefs_disk_access_interval_description">建议磁盘访问间隔</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">每日传输限制</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">限制BOINC每日数据流量。</string>
+  <string name="prefs_network_wifi_only_header">只使用WiFi传输任务</string>
+  <string name="prefs_autostart_header">自启动</string>
+  <string name="prefs_show_notification_notices_header">当有新消息时显示通知</string>
+  <string name="prefs_show_notification_suspended_header">暂停时显示通知</string>
+  <string name="prefs_cpu_number_cpus_header">使用的CPU核心</string>
+  <string name="prefs_cpu_number_cpus_description">限制BOINC为计算所使用的CPU核心数目。</string>
+  <string name="prefs_cpu_other_load_suspension_header">暂停当CPU使用量高于</string>
+  <string name="prefs_cpu_other_load_suspension_description">选择当其他APP的CPU使用量大于何值时让BOINC暂停运算。</string>
+  <string name="prefs_cpu_time_max_header">CPU 用量限制</string>
+  <string name="prefs_cpu_time_max_description">限制BOINC为计算所使用的CPU时间。</string>
+  <string name="prefs_memory_max_idle_header">RAM 用量限制</string>
+  <string name="prefs_memory_max_idle_description">限制任务占用的内存(RAM)用量。</string>
+  <string name="prefs_client_log_flags_header">BOINC客户端日志记录</string>
+  <string name="prefs_gui_log_level_header">GUI (用户界面)日志详细程度</string>
+  <string name="prefs_gui_log_level_description">指定GUI日志信息的详细程度。</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">秒</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">正在读取项目...</string>
+  <string name="projects_add">增加项目</string>
+  <string name="projects_icon">项目图标</string>
+  <string name="projects_credits">积分:</string>
+  <string name="projects_credits_host_and_user">%1$,d (在该设备上) %2$,d (总计)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">已被用户暂停</string>
+  <string name="projects_status_dontrequestmorework">禁止下载新任务</string>
+  <string name="projects_status_ended">项目已结束 - 可以删除</string>
+  <string name="projects_status_detachwhendone">将在任务完成后删除</string>
+  <string name="projects_status_schedrpcpending">等待调度请求</string>
+  <string name="projects_status_schedrpcinprogress">正在进行调度请求</string>
+  <string name="projects_status_trickleuppending">上传消息等待中</string>
+  <string name="projects_status_backoff">通讯被延迟在:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">项目命令:</string>
+  <string name="projects_control_visit_website">访问网站</string>
+  <string name="projects_control_update">更新</string>
+  <string name="projects_control_remove">删除</string>
+  <string name="projects_control_suspend">暂停</string>
+  <string name="projects_control_resume">继续</string>
+  <string name="projects_control_nonewtasks">没有新任务</string>
+  <string name="projects_control_allownewtasks">允许下载新任务</string>
+  <string name="projects_control_reset">重置</string>
+  <string name="projects_control_dialog_title_acctmgr">帐户管理器命令:</string>
+  <string name="projects_control_sync_acctmgr">同步</string>
+  <string name="projects_control_remove_acctmgr">已禁用</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">移除项目?</string>
+  <string name="projects_confirm_detach_message">您确定要删除项目吗?</string>
+  <string name="projects_confirm_detach_message2">移除?</string>
+  <string name="projects_confirm_detach_confirm">删除</string>
+  <string name="projects_confirm_reset_title">重置项目</string>
+  <string name="projects_confirm_reset_message">您确定要重置项目吗?</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">重置</string>
+  <string name="projects_confirm_remove_acctmgr_title">禁用帐户管理器</string>
+  <string name="projects_confirm_remove_acctmgr_message">您确定要重置</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">已禁用</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">任务名称:</string>
+  <string name="tasks_header_elapsed_time">已用时间:</string>
+  <string name="tasks_header_project_paused">(已暂停)</string>
+  <string name="tasks_header_deadline">上报期限:</string>
+  <string name="tasks_result_new">新建任务</string>
+  <string name="tasks_result_files_downloading">等待下载</string>
+  <string name="tasks_result_files_downloaded">下载完成</string>
+  <string name="tasks_result_compute_error">计算错误</string>
+  <string name="tasks_result_files_uploading">正在上传</string>
+  <string name="tasks_result_files_uploaded">更新已完成</string>
+  <string name="tasks_result_aborted">已中止</string>
+  <string name="tasks_result_upload_failed">上传失败</string>
+  <string name="tasks_active_uninitialized">已准备</string>
+  <string name="tasks_active_executing">正在运行</string>
+  <string name="tasks_active_suspended">已暂停</string>
+  <string name="tasks_active_abort_pending">正在暂停</string>
+  <string name="tasks_active_quit_pending">正在暂停</string>
+  <string name="tasks_custom_suspended_via_gui">已暂停</string>
+  <string name="tasks_custom_project_suspended_via_gui">项目已暂停</string>
+  <string name="tasks_custom_ready_to_report">等待上报</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">中止任务?</string>
+  <string name="confirm_abort_task_message">中止任务:</string>
+  <string name="confirm_abort_task_confirm">中止</string>
+  <string name="confirm_cancel">取消</string>
+  <string name="confirm_image_desc">验证对话框</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">正在读取传输信息...</string>
+  <string name="trans_upload">上传</string>
+  <string name="trans_download">下载</string>
+  <string name="trans_retryin">稍后重试 </string>
+  <string name="trans_failed">失败</string>
+  <string name="trans_suspended">已暂停</string>
+  <string name="trans_active">活动</string>
+  <string name="trans_pending">等待中</string>
+  <string name="trans_projectbackoff">项目延后</string>
+  <string name="trans_header_name">文件:</string>
+  <string name="trans_control_retry">重试传输</string>
+  <string name="confirm_abort_trans_title">中断传输?</string>
+  <string name="confirm_abort_trans_message">中止文件:</string>
+  <string name="confirm_abort_trans_confirm">中止</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">正在读取通知信息...</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">正在加载日志信息...</string>
+  <string name="eventlog_client_header">客户端日志</string>
+  <string name="eventlog_gui_header">GUI 日志</string>
+  <string name="eventlog_copy_toast">日志已复制到剪贴板中。</string>
+  <string name="eventlog_email_subject">Android版BOINC的事件日志:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">计算已暂停。</string>
+  <string name="suspend_batteries">请将您的设备连接至充电器以便继续计算。</string>
+  <string name="suspend_screen_on">关闭屏幕并继续计算。</string>
+  <string name="suspend_useractive">活跃用户</string>
+  <string name="suspend_tod">超出运算期限。</string>
+  <string name="suspend_bm">BOINC 正在对设备进行性能基准测试...</string>
+  <string name="suspend_disksize">储存空间不足。</string>
+  <string name="suspend_cputhrottle">安排CPU使用。</string>
+  <string name="suspend_noinput">最近没有使用者活动。</string>
+  <string name="suspend_delay">初始化延迟。</string>
+  <string name="suspend_exclusiveapp">有互斥的应用程序在运行</string>
+  <string name="suspend_cpu">您的设备正忙与运行其他APP。</string>
+  <string name="suspend_network_quota">BOINC已达到网络传输配额限制。</string>
+  <string name="suspend_os">已被Android系统暂停。</string>
+  <string name="suspend_wifi">未连接至WiFi网络。</string>
+  <string name="suspend_battery_charging">在恢复运算之前您的电池需要充电。</string>
+  <string name="suspend_battery_charging_long">当电池电量超过以下水平时计算会继续</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">当前</string>
+  <string name="suspend_battery_overheating">等待电池冷却中</string>
+  <string name="suspend_user_req">正在恢复计算...</string>
+  <string name="suspend_network_user_req">手动操作。</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">用户发起的请求</string>
+  <string name="rpcreason_needwork">为获取新任务</string>
+  <string name="rpcreason_resultsdue">为上报已完成任务</string>
+  <string name="rpcreason_trickleup">为发送上传消息</string>
+  <string name="rpcreason_acctmgrreq">帐户管理器发起的请求</string>
+  <string name="rpcreason_init">项目初始化</string>
+  <string name="rpcreason_projectreq">项目发起的请求</string>
+  <string name="rpcreason_unknown">未知原因</string>
+  <!--menu-->
+  <string name="menu_refresh">刷新</string>
+  <string name="menu_emailto">作为电子邮件发送</string>
+  <string name="menu_copy">复制到剪贴板</string>
+  <string name="menu_eventlog">事件日志</string>
+  <string name="menu_exit">退出 BOINC</string>
+  <string name="menu_run_mode_disable">暂停</string>
+  <string name="menu_run_mode_enable">继续</string>
+  <string name="menu_about">关于</string>
+  <string name="menu_help">帮助</string>
+  <!--about dialog-->
+  <string name="about_button">返回</string>
+  <string name="about_title">关于</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">版本</string>
+  <string name="about_name_long">伯克利开放式网络计算平台 ( BOINC )</string>
+  <string name="about_copyright">\u00A9 2003–2016 加州大学伯克利分校。</string>
+  <string name="about_copyright_reserved">所有权利保留。</string>
+  <string name="about_credits">感谢马克斯普朗克引力物理学研究所、IBM 公司以及 HTC 公司的大力协助。</string>
+  <!--notice notification e.g. New notice from SETI at HOME OR 3 new notices-->
+  <plurals name="notice_notification">
+    <item quantity="other">%2$,d 新通知</item>
+  </plurals>
+  <!--multi BOINC compatibility-->
+  <string name="nonexcl_dialog_header">检测到有志愿计算APP正在运行</string>
+  <string name="nonexcl_dialog_text">有其他志愿计算APP正在运行。一次只能执行一个版本。</string>
+  <string name="nonexcl_dialog_exit">退出</string>
+  <!--social integration-->
+  <string name="social_invite_button">邀请好友</string>
+  <string name="social_invite_intent_title">您准备如何分享?</string>
+  <string name="social_invite_content_title">我在智能手机上探索科学的奥秘!</string>
+  <string name="social_invite_content_body">我的%1$s正在为科学而计算。你也可以!APP下載:%2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+  <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values-zh-rTW/strings.xml b/android/BOINC/app/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..de6de01
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <!--app global-->
+  <string name="app_name">BOINC</string>
+  <!--generic. used by multiple Activities/tabs-->
+  <string name="generic_loading">載入中! 請稍後...</string>
+  <string name="generic_button_continue">繼續</string>
+  <string name="generic_button_finish">完成</string>
+  <!--attach project-->
+  <!--selection list-->
+  <string name="attachproject_list_desc">選擇您想參與的研究專案:</string>
+  <string name="attachproject_list_header">選擇專案</string>
+  <string name="attachproject_list_manual_button">用網址新增專案</string>
+  <string name="attachproject_list_manual_dialog_title">輸入專案網址:</string>
+  <string name="attachproject_list_manual_dialog_button">新增專案</string>
+  <string name="attachproject_list_manual_no_url">請輸入專案網址</string>
+  <string name="attachproject_list_acctmgr_button">新增帳號管理服務</string>
+  <string name="attachproject_list_no_internet">沒有網路連線</string>
+  <!--credential input-->
+  <string name="attachproject_credential_input_sing_desc">輸入帳號資訊</string>
+  <string name="attachproject_credential_input_desc">輸入專案的帳號資訊:</string>
+  <string name="attachproject_credential_input_show_pwd">顯示密碼</string>
+  <string name="attachproject_individual_credential_input">個別加入專案</string>
+  <!--conflicts-->
+  <string name="attachproject_conflicts_desc">加入研究專案時發生問題:</string>
+  <string name="attachproject_conflict_undefined">無法連線</string>
+  <string name="attachproject_conflict_not_unique">帳號存在但密碼不正確</string>
+  <string name="attachproject_conflict_bad_password">密碼不正確</string>
+  <string name="attachproject_conflict_unknown_user">帳號不存在</string>
+  <string name="attachproject_conflict_unknown_user_creation_disabled">帳號不存在,請到專案網站註冊</string>
+  <!--working-->
+  <string name="attachproject_working_attaching">加入中</string>
+  <!--e.g. Attaching Einstein at Home-->
+  <!--hints-->
+  <string name="attachproject_hints_header">提示</string>
+  <!--e.g. Hint 1/2-->
+  <string name="attachproject_hint_contribtion_header">如何貢獻:</string>
+  <string name="attachproject_hint_contribtion_wifi">1.連線到WiFi</string>
+  <string name="attachproject_hint_contribtion_charger">2.接上充電器</string>
+  <string name="attachproject_hint_contribtion_screen">3.關閉螢幕</string>
+  <string name="attachproject_hint_projectwebsite_header">造訪專案網站:</string>
+  <string name="attachproject_hint_projectwebsite_science">更深入了解科學</string>
+  <string name="attachproject_hint_projectwebsite_stats">查看貢獻統計</string>
+  <string name="attachproject_hint_projectwebsite_community">與其他參與者互動</string>
+  <string name="attachproject_hint_platforms_header">BOINC 也支援電腦及筆電,造訪 boinc.berkeley.edu 了解更多資訊。</string>
+  <!--project login-->
+  <string name="attachproject_login_loading">正連線到專案伺服器...</string>
+  <string name="attachproject_login_image_description">專案標誌。</string>
+  <string name="attachproject_login_header_general_area">研究領域:</string>
+  <string name="attachproject_login_header_specific_area">專業領域:</string>
+  <string name="attachproject_login_header_description">描述:</string>
+  <string name="attachproject_login_header_home">首頁:</string>
+  <string name="attachproject_login_header_url">網站:</string>
+  <string name="attachproject_login_header_platform">Android:</string>
+  <string name="attachproject_login_platform_supported">此專案支援Android裝置</string>
+  <string name="attachproject_login_platform_not_supported">此專案不支援Android裝置</string>
+  <string name="attachproject_login_category_terms_of_use">使用條款:</string>
+  <string name="attachproject_login_accept_terms_of_use">當您在這個專案建立帳號,表示您同意上述使用條款。</string>
+  <string name="attachproject_login_category_login">用現有的帳號登入</string>
+  <string name="attachproject_login_header_id_email">電子郵件:</string>
+  <string name="attachproject_login_header_id_name">名稱:</string>
+  <string name="attachproject_login_header_pwd">密碼:</string>
+  <string name="attachproject_login_category_creation">第一次加入</string>
+  <string name="attachproject_login_header_creation_enabled">註冊帳號加入:</string>
+  <string name="attachproject_login_header_creation_client_disabled">進入專案官網建立帳號:</string>
+  <string name="attachproject_login_header_creation_disabled">專案目前不允許建立新帳號。</string>
+  <string name="attachproject_login_button_registration">註冊</string>
+  <string name="attachproject_login_button_login">登入</string>
+  <string name="attachproject_login_button_forgotpw">忘記密碼</string>
+  <string name="attachproject_login_error_toast">與專案連線失敗!</string>
+  <string name="attachproject_login_attached">已加入</string>
+  <!--project registration-->
+  <string name="attachproject_registration_header">註冊帳號</string>
+  <string name="attachproject_registration_header_url">專案:</string>
+  <string name="attachproject_registration_header_email">電子郵件:</string>
+  <string name="attachproject_registration_header_username">名稱:</string>
+  <string name="attachproject_registration_header_teamname">團隊:</string>
+  <string name="attachproject_registration_header_pwd">密碼:</string>
+  <string name="attachproject_registration_header_pwd_confirm">… 再次輸入:</string>
+  <string name="attachproject_registration_button">建立</string>
+  <!--account manager-->
+  <string name="attachproject_acctmgr_list_desc">使用BOINC帳號管理服務新增及管理多個專案</string>
+  <string name="attachproject_acctmgr_header">新增帳號管理服務</string>
+  <string name="attachproject_acctmgr_header_url">網址</string>
+  <string name="attachproject_acctmgr_header_name">用戶:</string>
+  <string name="attachproject_acctmgr_header_pwd">密碼:</string>
+  <string name="attachproject_acctmgr_header_pwd_confirm">… 再次輸入:</string>
+  <string name="attachproject_acctmgr_button">新增</string>
+  <!--error strings-->
+  <string name="attachproject_error_wrong_name">找不到用戶</string>
+  <string name="attachproject_error_short_pwd">密碼太短</string>
+  <string name="attachproject_error_no_internet">連線失敗</string>
+  <string name="attachproject_error_pwd_no_match">與密碼不符</string>
+  <string name="attachproject_error_pwd_no_retype">請再次輸入密碼</string>
+  <string name="attachproject_error_no_url">請輸入用戶名稱</string>
+  <string name="attachproject_error_no_email">請輸入電子郵件</string>
+  <string name="attachproject_error_no_pwd">請輸入密碼</string>
+  <string name="attachproject_error_no_name">請輸入用戶名稱</string>
+  <string name="attachproject_error_unknown">失敗</string>
+  <string name="attachproject_error_bad_username">使用者名稱無效</string>
+  <string name="attachproject_error_email_in_use">此電子郵件已被使用</string>
+  <string name="attachproject_error_project_down">專案已離線</string>
+  <string name="attachproject_error_email_bad_syntax">電子郵件無效</string>
+  <string name="attachproject_error_bad_pwd">密碼無效</string>
+  <string name="attachproject_error_creation_disabled">此專案已停用註冊功能</string>
+  <string name="attachproject_error_invalid_url">網址不正確</string>
+  <!--working activity-->
+  <string name="attachproject_working_back_button">返回</string>
+  <string name="attachproject_working_finish_button">完成</string>
+  <string name="attachproject_working_check_desc">成功</string>
+  <string name="attachproject_working_failed_desc">失敗</string>
+  <string name="attachproject_working_ongoing">…</string>
+  <string name="attachproject_working_finished">.</string>
+  <string name="attachproject_working_description">:</string>
+  <string name="attachproject_working_connect">聯繫</string>
+  <string name="attachproject_working_verify">驗證帳號</string>
+  <string name="attachproject_working_register">註冊帳號</string>
+  <string name="attachproject_working_login">登入</string>
+  <string name="attachproject_working_acctmgr">新增帳號管理服務</string>
+  <string name="attachproject_working_acctmgr_sync">同步</string>
+  <!--main activity-->
+  <string name="main_noproject_warning">點此選擇專案。</string>
+  <string name="main_error">哎呀</string>
+  <string name="main_error_long">…這應該不會發生!\n點擊圖示再試一次。</string>
+  <string name="main_title_icon_desc">BOINC圖示</string>
+  <!--tab names-->
+  <string name="tab_status">狀態</string>
+  <string name="tab_projects">專案</string>
+  <string name="tab_tasks">任務</string>
+  <string name="tab_transfers">傳輸</string>
+  <string name="tab_preferences">偏好設定</string>
+  <string name="tab_notices">通知</string>
+  <string name="tab_desc">導航</string>
+  <!--status strings-->
+  <string name="status_running">運算中</string>
+  <string name="status_running_long">感謝您的參與。</string>
+  <string name="status_paused">已暫停</string>
+  <string name="status_idle">閒置中</string>
+  <string name="status_idle_long">等待任務中…</string>
+  <string name="status_computing_disabled">已暫停</string>
+  <string name="status_computing_disabled_long">按下開始恢復網路和運算。</string>
+  <string name="status_launching">啟動中…</string>
+  <string name="status_noproject">選一個想參加的專案。</string>
+  <string name="status_closing">關閉中…</string>
+  <string name="status_benchmarking">效能測試中...</string>
+  <string name="status_image_description">專案圖片</string>
+  <!--preferences tab strings-->
+  <string name="prefs_loading">正在讀取偏好設定...</string>
+  <string name="prefs_submit_button">儲存</string>
+  <string name="prefs_dialog_title">輸入新參數:</string>
+  <string name="prefs_dialog_title_selection">選擇:</string>
+  <string name="prefs_category_general">一般</string>
+  <string name="prefs_category_network">網路</string>
+  <string name="prefs_category_power">電源</string>
+  <string name="prefs_category_cpu">CPU</string>
+  <string name="prefs_category_storage">儲存</string>
+  <string name="prefs_category_memory">記憶體</string>
+  <string name="prefs_category_debug">偵錯</string>
+  <string name="prefs_show_advanced_header">顯示進階偏好設定...</string>
+  <string name="prefs_suspend_when_screen_on">當螢幕亮時暫停運算</string>
+  <string name="prefs_stationary_device_mode_header">固定裝置模式</string>
+  <string name="prefs_stationary_device_mode_description">忽略電源設定執行運算。僅能於裝置沒有電池時使用。</string>
+  <string name="prefs_power_source_header">運算電源選項</string>
+  <string name="prefs_power_source_description">選擇允許 BOINC 執行的電力來源</string>
+  <string name="prefs_power_source_ac">充電器</string>
+  <string name="prefs_power_source_usb">USB連線</string>
+  <string name="prefs_power_source_wireless">無線充電</string>
+  <string name="prefs_power_source_battery">電池</string>
+  <string name="battery_charge_min_pct_header">最低電量</string>
+  <string name="battery_charge_min_pct_description">BOINC在低於設定電量時即暫停運算。</string>
+  <string name="battery_temperature_max_header">最高電池溫度</string>
+  <string name="battery_temperature_max_description">BOINC當電池溫度高於預設值時暫停運算。不建議變更此設定值。</string>
+  <string name="prefs_disk_max_pct_header">最多使用儲存空間</string>
+  <string name="prefs_disk_max_pct_description">BOINC能使用多少比例的儲存空間?</string>
+  <string name="prefs_disk_min_free_gb_header">最小備用容量</string>
+  <string name="prefs_disk_min_free_gb_description">您的裝置有多少閒置空間可以使用?</string>
+  <string name="prefs_disk_access_interval_header">存取間隔</string>
+  <string name="prefs_disk_access_interval_description">建議存取資料間隔˙時間</string>
+  <string name="prefs_network_daily_xfer_limit_mb_header">每日傳輸限制</string>
+  <string name="prefs_network_daily_xfer_limit_mb_description">限制BOINC每日數據流量。</string>
+  <string name="prefs_network_wifi_only_header">只用WiFi傳輸</string>
+  <string name="prefs_autostart_header">自動執行</string>
+  <string name="prefs_show_notification_notices_header">當有新訊息時顯示通知</string>
+  <string name="prefs_show_notification_suspended_header">暫停時顯示通知</string>
+  <string name="prefs_cpu_number_cpus_header">使用CPU核心</string>
+  <string name="prefs_cpu_number_cpus_description">限制BOINC運算時使用的核心數。</string>
+  <string name="prefs_cpu_other_load_suspension_header">暫停在CPU使用率高於</string>
+  <string name="prefs_cpu_other_load_suspension_description">由其他程式使用的CPU使用率決定是否暫停BOINC。</string>
+  <string name="prefs_cpu_time_max_header">限制CPU</string>
+  <string name="prefs_cpu_time_max_description">限制BOINC運算時的CPU時間。</string>
+  <string name="prefs_memory_max_idle_header">限制RAM</string>
+  <string name="prefs_memory_max_idle_description">限制任務佔用 RAM 容量。</string>
+  <string name="prefs_client_log_flags_header">BOINC客戶端紀錄檔標籤</string>
+  <string name="prefs_gui_log_level_header">GUI日誌等級</string>
+  <string name="prefs_gui_log_level_description">指定GUI紀錄的詳細程度。</string>
+  <string name="prefs_unit_celsius">°C</string>
+  <string name="prefs_unit_seconds">秒</string>
+  <!--projects tab strings-->
+  <string name="projects_loading">正在讀取專案…</string>
+  <string name="projects_add">新增專案</string>
+  <string name="projects_icon">專案圖示</string>
+  <string name="projects_credits">積分:</string>
+  <string name="projects_credits_host_and_user">%1$,d (在此裝置上) %2$,d (總共)</string>
+  <!--project status strings-->
+  <string name="projects_status_suspendedviagui">用戶已暫停</string>
+  <string name="projects_status_dontrequestmorework">拒絕新任務</string>
+  <string name="projects_status_ended">專案已停止 - 按OK移除</string>
+  <string name="projects_status_detachwhendone">當任務完成將會移除</string>
+  <string name="projects_status_schedrpcpending">排程器請求等待中</string>
+  <string name="projects_status_schedrpcinprogress">排程器請求處理中</string>
+  <string name="projects_status_trickleuppending">Trickle up訊息處理中</string>
+  <string name="projects_status_backoff">排定通訊:</string>
+  <!--project controls-->
+  <string name="projects_control_dialog_title">專案指令:</string>
+  <string name="projects_control_visit_website">造訪網站</string>
+  <string name="projects_control_update">更新</string>
+  <string name="projects_control_remove">移除</string>
+  <string name="projects_control_suspend">暫停</string>
+  <string name="projects_control_resume">繼續</string>
+  <string name="projects_control_nonewtasks">拒絕新任務</string>
+  <string name="projects_control_allownewtasks">允許新任務</string>
+  <string name="projects_control_reset">重置</string>
+  <string name="projects_control_dialog_title_acctmgr">帳號管理服務指令:</string>
+  <string name="projects_control_sync_acctmgr">同步</string>
+  <string name="projects_control_remove_acctmgr">停用</string>
+  <!--project confirm dialog-->
+  <string name="projects_confirm_detach_title">移除專案?</string>
+  <string name="projects_confirm_detach_message">您確定從BOINC將</string>
+  <string name="projects_confirm_detach_message2">移除?</string>
+  <string name="projects_confirm_detach_confirm">移除</string>
+  <string name="projects_confirm_reset_title">重置專案</string>
+  <string name="projects_confirm_reset_message">您確定要重置</string>
+  <string name="projects_confirm_reset_message2">\?</string>
+  <string name="projects_confirm_reset_confirm">重置</string>
+  <string name="projects_confirm_remove_acctmgr_title">來自帳號管理員的請求</string>
+  <string name="projects_confirm_remove_acctmgr_message">您確定要重置</string>
+  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+  <string name="projects_confirm_remove_acctmgr_confirm">停用</string>
+  <!--tasks tab strings-->
+  <string name="tasks_header_name">任務名稱:</string>
+  <string name="tasks_header_elapsed_time">執行時間:</string>
+  <string name="tasks_header_project_paused">(暫停)</string>
+  <string name="tasks_header_deadline">上傳期限:</string>
+  <string name="tasks_result_new">新任務</string>
+  <string name="tasks_result_files_downloading">等待下載中</string>
+  <string name="tasks_result_files_downloaded">下載完成</string>
+  <string name="tasks_result_compute_error">運算錯誤</string>
+  <string name="tasks_result_files_uploading">上傳中</string>
+  <string name="tasks_result_files_uploaded">上傳完成</string>
+  <string name="tasks_result_aborted">已停止</string>
+  <string name="tasks_result_upload_failed">上傳失敗</string>
+  <string name="tasks_active_uninitialized">準備</string>
+  <string name="tasks_active_executing">運算中</string>
+  <string name="tasks_active_suspended">已暫停</string>
+  <string name="tasks_active_abort_pending">暫停中</string>
+  <string name="tasks_active_quit_pending">暫停中</string>
+  <string name="tasks_custom_suspended_via_gui">已暫停</string>
+  <string name="tasks_custom_project_suspended_via_gui">專案已暫停</string>
+  <string name="tasks_custom_ready_to_report">準備回報</string>
+  <!--confirmation dialog-->
+  <string name="confirm_abort_task_title">停止任務?</string>
+  <string name="confirm_abort_task_message">停止任務:</string>
+  <string name="confirm_abort_task_confirm">停止</string>
+  <string name="confirm_cancel">取消</string>
+  <string name="confirm_image_desc">確認對話框</string>
+  <!--transfers tab strings-->
+  <string name="trans_loading">讀取傳輸中...</string>
+  <string name="trans_upload">上傳</string>
+  <string name="trans_download">下載</string>
+  <string name="trans_retryin">重試</string>
+  <string name="trans_failed">失敗</string>
+  <string name="trans_suspended">暫停</string>
+  <string name="trans_active">進行中</string>
+  <string name="trans_pending">等待中</string>
+  <string name="trans_projectbackoff">重新連接至專案</string>
+  <string name="trans_header_name">檔案:</string>
+  <string name="trans_control_retry">重試傳輸</string>
+  <string name="confirm_abort_trans_title">停止傳輸?</string>
+  <string name="confirm_abort_trans_message">停止檔案:</string>
+  <string name="confirm_abort_trans_confirm">停止</string>
+  <!--notices tab strings-->
+  <string name="notices_loading">正在讀取通知…</string>
+  <!--eventlog tab strings-->
+  <string name="eventlog_loading">載入紀錄訊息中...</string>
+  <string name="eventlog_client_header">用戶端訊息</string>
+  <string name="eventlog_gui_header">GUI 訊息</string>
+  <string name="eventlog_copy_toast">紀錄已複製到剪貼簿。</string>
+  <string name="eventlog_email_subject">Android 的 BOINC 事件紀錄:</string>
+  <!--suspend reasons-->
+  <string name="suspend_unknown">已暫停運算。</string>
+  <string name="suspend_batteries">裝置連接到充電器時繼續運算。</string>
+  <string name="suspend_screen_on">關閉螢幕繼續運算。</string>
+  <string name="suspend_useractive">使用者處於活躍狀態。</string>
+  <string name="suspend_tod">超出運算期限。</string>
+  <string name="suspend_bm">BOINC 正在測試您的裝置效能...</string>
+  <string name="suspend_disksize">儲存空間不足。</string>
+  <string name="suspend_cputhrottle">安排 CPU 的使用。</string>
+  <string name="suspend_noinput">最近沒有使用者活動。</string>
+  <string name="suspend_delay">初始化延遲。</string>
+  <string name="suspend_exclusiveapp">有互斥的程式正在執行。</string>
+  <string name="suspend_cpu">您的裝置忙於其他程式。</string>
+  <string name="suspend_network_quota">BOINC 已達到網路傳輸上限。</string>
+  <string name="suspend_os">被 Android 系統停止。</string>
+  <string name="suspend_wifi">沒有連線到 WiFi。</string>
+  <string name="suspend_battery_charging">等待電池充電。</string>
+  <string name="suspend_battery_charging_long">充電時將會繼續運算</string>
+  <string name="suspend_battery_charging_long2"></string>
+  <string name="suspend_battery_charging_current">目前</string>
+  <string name="suspend_battery_overheating">等待電池冷卻中</string>
+  <string name="suspend_user_req">繼續運算...</string>
+  <string name="suspend_network_user_req">手動操作。</string>
+  <!--rpc reasons-->
+  <string name="rpcreason_userreq">來自用戶的請求</string>
+  <string name="rpcreason_needwork">取得任務</string>
+  <string name="rpcreason_resultsdue">回報完成的任務</string>
+  <string name="rpcreason_trickleup">傳送trickle-up訊息</string>
+  <string name="rpcreason_acctmgrreq">來自帳號管理員的請求</string>
+  <string name="rpcreason_init">專案初始化</string>
+  <string name="rpcreason_projectreq">來自專案的請求</string>
+  <string name="rpcreason_unknown">未知的原因</string>
+  <!--menu-->
+  <string name="menu_refresh">重新整理</string>
+  <string name="menu_emailto">用電子郵件傳送</string>
+  <string name="menu_copy">複製到剪貼簿</string>
+  <string name="menu_eventlog">事件記錄檔</string>
+  <string name="menu_exit">退出 BOINC</string>
+  <string name="menu_run_mode_disable">暫停</string>
+  <string name="menu_run_mode_enable">繼續</string>
+  <string name="menu_about">關於</string>
+  <string name="menu_help">幫助</string>
+  <!--about dialog-->
+  <string name="about_button">返回</string>
+  <string name="about_title">關於</string>
+  <string name="about_name">BOINC</string>
+  <string name="about_version">版本</string>
+  <string name="about_name_long">柏克萊開放式網路運算平台</string>
+    <string name="about_copyright">\u00A9 2003–2016 University of California, Berkeley.</string>
+  <string name="about_copyright_reserved">All Rights Reserved.</string>
+  <string name="about_credits">特別感謝 Max Planck Institute for Gravitational Physics, IBM Corporation 和 HTC Corporation 的技術支援。</string>
+    <!--notice notification-->
+  <!--multi BOINC compitability-->
+  <string name="nonexcl_dialog_header">偵測到志願運算 APP</string>
+  <string name="nonexcl_dialog_text">有其它志願運算 APP 正在此裝置執行。只容許一個版本執行。</string>
+  <string name="nonexcl_dialog_exit">退出</string>
+  <!--social integration-->
+  <string name="social_invite_button">邀請好友</string>
+  <string name="social_invite_intent_title">您想如何分享?</string>
+  <string name="social_invite_content_title">我正在用智慧型手機研究科學!</string>
+  <string name="social_invite_content_body">我的 %1$s 正在為科學運算。希望您加入! APP 下載: %2$s</string>
+  <!--first parameter: device manufacturer, second: URL-->
+  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/res/values/Color.xml b/android/BOINC/app/src/main/res/values/Color.xml
similarity index 100%
rename from android/BOINC/res/values/Color.xml
rename to android/BOINC/app/src/main/res/values/Color.xml
diff --git a/android/BOINC/res/values/colors.xml b/android/BOINC/app/src/main/res/values/colors.xml
similarity index 100%
rename from android/BOINC/res/values/colors.xml
rename to android/BOINC/app/src/main/res/values/colors.xml
diff --git a/android/BOINC/app/src/main/res/values/configuration.xml b/android/BOINC/app/src/main/res/values/configuration.xml
new file mode 100644
index 0000000..c95f5ef
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values/configuration.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  This file is part of BOINC.
+  http://boinc.berkeley.edu
+  Copyright (C) 2012 University of California
+  
+  BOINC is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License
+  as published by the Free Software Foundation,
+  either version 3 of the License, or (at your option) any later version.
+  
+  BOINC is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  See the GNU Lesser General Public License for more details.
+  
+  You should have received a copy of the GNU Lesser General Public License
+  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<resources>
+    <!-- path and file configuration -->
+        <string name="client_path" translatable="false">/data/data/edu.berkeley.boinc/client/</string>
+        <string name="client_name" translatable="false">boinc</string>
+        <string name="client_cli" translatable="false">boinccmd</string>
+        <string name="client_cabundle" translatable="false">ca-bundle.crt</string>
+        <string name="client_config" translatable="false">cc_config.xml</string>
+        <string name="auth_file_name" translatable="false">gui_rpc_auth.cfg</string>
+        <string name="all_projects_list" translatable="false">all_projects_list.xml</string>
+        <string name="global_prefs_override" translatable="false">global_prefs_override.xml</string>
+        <string name="assets_dir_arm64" translatable="false">arm64-v8a/</string><string name="assets_dir_arm" translatable="false">armeabi-v7a/</string>
+        <string name="assets_dir_x86_64" translatable="false">x86_64/</string><string name="assets_dir_x86" translatable="false">x86/</string>
+        <string name="assets_dir_mips64" translatable="false">mips64/</string><string name="assets_dir_mips" translatable="false">mips/</string>
+    <!-- client socket address, CAUTION: change this if you are building branded BOINC app to avoid interference btwn apps! -->
+        <string name="client_socket_address" translatable="false">edu_berkeley_boinc_client_socket</string>
+    <!-- BOINC platform -->
+    	<string name="boinc_platform_name_arm64" translatable="false">aarch64-android-linux-gnu</string><string name="boinc_platform_name_arm" translatable="false">arm-android-linux-gnu</string>
+    	<string name="boinc_platform_name_x86_64" translatable="false">x86_64-android-linux-gnu</string><string name="boinc_platform_name_x86" translatable="false">x86-android-linux-gnu</string>
+    	<string name="boinc_platform_name_mips64" translatable="false">mips64el-android-linux-gnu</string><string name="boinc_platform_name_mips" translatable="false">mipsel-android-linux-gnu</string>
+    <!-- Default preferences of Android app-->
+    	<bool name="prefs_default_autostart">true</bool>
+        <bool name="prefs_default_notification_notices">true</bool>
+        <bool name="prefs_default_notification_suspended">false</bool>
+        <bool name="prefs_default_advanced">false</bool>
+        <integer name="prefs_default_loglevel">2</integer>
+        <bool name="prefs_power_source_ac">true</bool>
+        <bool name="prefs_power_source_usb">true</bool>
+        <bool name="prefs_power_source_wireless">true</bool>
+        <bool name="prefs_stationary_device_mode">false</bool>
+        <bool name="prefs_suspend_when_screen_on">true</bool>
+    <!-- Monitor behavior -->
+    	<integer name="status_update_interval_ms">1000</integer>
+    	<integer name="device_status_update_screen_off_every_X_loop">10</integer> <!-- every X status_update_interval_ms -->
+    	<integer name="monitor_setup_connection_retry_rate_ms">1000</integer>
+    	<integer name="monitor_setup_connection_retry_attempts">10</integer>
+    	<integer name="autostart_notification_id">1</integer>
+    	<integer name="notice_notification_id">2</integer>
+    <!-- configuration project attach -->
+    	<integer name="attach_step_interval_ms">1000</integer> 
+    	<integer name="attach_get_project_config_retries">2</integer>
+    	<integer name="attach_login_retries">5</integer>
+    	<integer name="attach_creation_retries">5</integer>
+    	<integer name="attach_attach_retries">5</integer>
+    	<integer name="attach_acctmgr_retries">5</integer>
+    <!-- configuration on tasks layout -->
+    	<integer name="tasks_transistion_timeout_number_monitor_loops">15</integer>
+    <!-- shutdown -->
+    	<integer name="shutdown_graceful_rpc_check_rate_ms">1000</integer>
+    	<integer name="shutdown_graceful_rpc_check_attempts">5</integer>
+    	<integer name="shutdown_graceful_os_check_rate_ms">1000</integer>
+    	<integer name="shutdown_graceful_os_check_attempts">5</integer>
+    <!-- eventlog -->
+    	<integer name="eventlog_gui_messages">100</integer>
+    <!-- preferences -->	
+    	<string-array name="prefs_client_log_flags" translatable="false">
+    	    <item>android_debug</item>
+    	    <item>http_debug</item>
+    	    <item>task_debug</item>
+    	    <item>gui_rpc_debug</item>
+    	    <item>cpu_sched_debug</item>
+    	    <item>work_fetch_debug</item>
+    	</string-array>
+    <!-- account manager -->	
+    	<string-array name="acct_mgr_url_list" translatable="false">
+        	<item>http://bam.boincstats.com/</item>
+        	<item>http://gridrepublic.org/</item>
+        	<item>http://www.extremadurathome.org/extremadurathome/</item>
+    	</string-array>
+</resources>
diff --git a/android/BOINC/app/src/main/res/values/strings.xml b/android/BOINC/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..df0f132
--- /dev/null
+++ b/android/BOINC/app/src/main/res/values/strings.xml
@@ -0,0 +1,392 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  This file is part of BOINC.
+  http://boinc.berkeley.edu
+  Copyright (C) 2016 University of California
+  
+  BOINC is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License
+  as published by the Free Software Foundation,
+  either version 3 of the License, or (at your option) any later version.
+  
+  BOINC is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  See the GNU Lesser General Public License for more details.
+  
+  You should have received a copy of the GNU Lesser General Public License
+  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<resources>
+
+    <!-- app global -->
+    <string name="app_name">BOINC</string>
+
+    <!-- generic. used by multiple Activities/tabs -->
+    <string name="generic_loading">Loading! Please wait…</string>
+    <string name="generic_button_continue">Continue</string>
+    <string name="generic_button_finish">Finish</string>
+
+    <!-- attach project -->
+    <!-- selection list -->
+    <string name="attachproject_list_desc">Select scientific projects you want to contribute to:</string>
+    <string name="attachproject_list_header">Choose a project</string>
+    <string name="attachproject_list_manual_button">Add project by URL</string>
+    <string name="attachproject_list_manual_dialog_title">Enter project URL:</string>
+    <string name="attachproject_list_manual_dialog_button">Add project</string>
+    <string name="attachproject_list_manual_no_url">Please enter project URL</string>
+    <string name="attachproject_list_acctmgr_button">Add account manager</string>
+    <string name="attachproject_list_no_internet">No Internet connection</string>
+    <!-- credential input -->
+    <string name="attachproject_credential_input_sing_desc">Enter account information</string>
+    <string name="attachproject_credential_input_desc">Enter account information for selected projects:</string>
+    <string name="attachproject_credential_input_show_pwd">Show password</string>
+    <string name="attachproject_individual_credential_input">Attach projects individually</string>
+    <!-- conflicts -->
+    <string name="attachproject_conflicts_desc">There have been problems attaching scientific projects:</string>
+    <string name="attachproject_conflict_undefined">Could not connect</string>
+    <string name="attachproject_conflict_not_unique">Account exists with different password</string>
+    <string name="attachproject_conflict_bad_password">Password incorrect</string>
+    <string name="attachproject_conflict_unknown_user">Account does not exist</string>
+    <string name="attachproject_conflict_unknown_user_creation_disabled">Account does not exist, visit project website to register</string>
+    <!-- working -->
+    <string name="attachproject_working_attaching">Attaching</string> <!-- e.g. Attaching Einstein at Home -->
+    <!-- hints -->
+    <string name="attachproject_hints_header">Hint</string> <!-- e.g. Hint 1/2 -->
+    <string name="attachproject_hint_contribtion_header">How to contribute:</string>
+    <string name="attachproject_hint_contribtion_wifi">1. Connect to WiFi</string>
+    <string name="attachproject_hint_contribtion_charger">2. Plug in Charger</string>
+    <string name="attachproject_hint_contribtion_screen">3. Turn off Screen</string>
+    <string name="attachproject_hint_projectwebsite_header">Visit project websites to:</string>
+    <string name="attachproject_hint_projectwebsite_science">Learn more about the science</string>
+    <string name="attachproject_hint_projectwebsite_stats">View contribution statistics</string>
+    <string name="attachproject_hint_projectwebsite_community">Get in touch with other volunteers</string>
+    <string name="attachproject_hint_platforms_header">BOINC is also available for your computer or laptop, visit boinc.berkeley.edu to learn more.</string>
+    <!-- project login -->
+    <string name="attachproject_login_loading">Contacting project server…</string>
+    <string name="attachproject_login_image_description">Project logo.</string>
+    <string name="attachproject_login_header_general_area">General area:</string>
+    <string name="attachproject_login_header_specific_area">Specific area:</string>
+    <string name="attachproject_login_header_description">Description:</string>
+    <string name="attachproject_login_header_home">Home:</string>
+    <string name="attachproject_login_header_url">Website:</string>
+    <string name="attachproject_login_header_platform">Android:</string>
+    <string name="attachproject_login_platform_supported">Device type is supported by this project</string>
+    <string name="attachproject_login_platform_not_supported">Device is not supported by this project</string>
+    <string name="attachproject_login_category_terms_of_use">Terms of use for</string>
+    <string name="attachproject_login_accept_terms_of_use">By creating an account with this project, you accept the terms of use as shown above.</string>
+    <string name="attachproject_login_category_login">Sign in with existing account</string>
+    <string name="attachproject_login_header_id_email">eMail:</string>
+    <string name="attachproject_login_header_id_name">Name:</string>
+    <string name="attachproject_login_header_pwd">Password:</string>
+    <string name="attachproject_login_category_creation">New to </string>
+    <string name="attachproject_login_header_creation_enabled">Register an account to participate:</string>
+    <string name="attachproject_login_header_creation_client_disabled">Visit project website to create an account:</string>
+    <string name="attachproject_login_header_creation_disabled">This project is not currently accepting new accounts.</string>
+    <string name="attachproject_login_button_registration">Register</string>
+    <string name="attachproject_login_button_login">Sign in</string>
+    <string name="attachproject_login_button_forgotpw">Forgot Password</string>
+    <string name="attachproject_login_error_toast">Contacting project failed!</string>
+    <string name="attachproject_login_attached">Attached</string>
+    <!-- project registration -->
+    <string name="attachproject_registration_header">Account registration for </string>
+    <string name="attachproject_registration_header_url">Project:</string>
+    <string name="attachproject_registration_header_email">eMail:</string>
+    <string name="attachproject_registration_header_username">Name:</string>
+    <string name="attachproject_registration_header_teamname">Team:</string>
+    <string name="attachproject_registration_header_pwd">Password:</string>
+    <string name="attachproject_registration_header_pwd_confirm">… Retype:</string>
+    <string name="attachproject_registration_button">Create</string>
+    <!-- account manager -->
+    <string name="attachproject_acctmgr_list_desc">Use BOINC account manager to add and manage multiple projects</string>
+    <string name="attachproject_acctmgr_header">Add account manager</string>
+    <string name="attachproject_acctmgr_header_url">URL</string>
+    <string name="attachproject_acctmgr_header_name">User:</string>
+    <string name="attachproject_acctmgr_header_pwd">Password:</string>
+    <string name="attachproject_acctmgr_header_pwd_confirm">… Retype:</string>
+    <string name="attachproject_acctmgr_button">Add</string>
+    <!-- error strings -->
+    <string name="attachproject_error_wrong_name">User not found</string>
+    <string name="attachproject_error_short_pwd">Password too short</string>
+    <string name="attachproject_error_no_internet">Connection failure</string>
+    <string name="attachproject_error_pwd_no_match">Passwords do not match</string>
+    <string name="attachproject_error_pwd_no_retype">Please type password again</string>
+    <string name="attachproject_error_no_url">Please enter URL</string>
+    <string name="attachproject_error_no_email">Please enter eMail address</string>
+    <string name="attachproject_error_no_pwd">Please enter a password</string>
+    <string name="attachproject_error_no_name">Please enter user name</string>
+    <string name="attachproject_error_unknown">failed</string>
+    <string name="attachproject_error_bad_username">User name refused</string>
+    <string name="attachproject_error_email_in_use">eMail is already in use</string>
+    <string name="attachproject_error_project_down">Project is offline</string>
+    <string name="attachproject_error_email_bad_syntax">eMail refused</string>
+    <string name="attachproject_error_bad_pwd">Password refused</string>
+    <string name="attachproject_error_creation_disabled">Account creation is disabled on this project</string>
+    <string name="attachproject_error_invalid_url">Invalid URL</string>
+    <!-- working activity -->
+    <string name="attachproject_working_back_button">Back</string>
+    <string name="attachproject_working_finish_button">Finish</string>
+    <string name="attachproject_working_check_desc">Successful</string>
+    <string name="attachproject_working_failed_desc">Failed</string>
+    <string name="attachproject_working_ongoing">…</string>
+    <string name="attachproject_working_finished">.</string>
+    <string name="attachproject_working_description">:</string>
+    <string name="attachproject_working_connect">Connect</string>
+    <string name="attachproject_working_verify">Verify account</string>
+    <string name="attachproject_working_register">Register account</string>
+    <string name="attachproject_working_login">Log in</string>
+    <string name="attachproject_working_acctmgr">Add account manager</string>
+    <string name="attachproject_working_acctmgr_sync">Synchronize</string>
+
+    <!-- main activity -->
+    <string name="main_noproject_warning">Tap here to choose a project.</string>
+    <string name="main_error">Whooops</string>
+    <string name="main_error_long">…this should not happen!\nClick on the icon to try again.</string>
+    <string name="main_title_icon_desc">BOINC icon</string>
+
+    <!-- tab names -->
+    <string name="tab_status">Status</string>
+    <string name="tab_projects">Projects</string>
+    <string name="tab_tasks">Tasks</string>
+    <string name="tab_transfers">Transfers</string>
+    <string name="tab_preferences">Preferences</string>
+    <string name="tab_notices">Notices</string>
+    <string name="tab_desc">Navigation</string>
+
+    <!-- status strings -->
+    <string name="status_running">Computing</string>
+    <string name="status_running_long">Thank you for participating.</string>
+    <string name="status_paused">Suspended</string>
+    <string name="status_idle">Nothing to do</string>
+    <string name="status_idle_long">Waiting for tasks…</string>
+    <string name="status_computing_disabled">Suspended</string>
+    <string name="status_computing_disabled_long">Press play to resume network and computation.</string>
+    <string name="status_launching">Starting…</string>
+    <string name="status_noproject">Choose a project to participate in.</string>
+    <string name="status_closing">Closing…</string>
+    <string name="status_benchmarking">Benchmarking…</string>
+    <string name="status_image_description">project image</string>
+
+    <!-- preferences tab strings -->
+    <string name="prefs_loading">Reading preferences…</string>
+    <string name="prefs_submit_button">Save</string>
+    <string name="prefs_dialog_title">Enter new value:</string>
+    <string name="prefs_dialog_title_selection">Select:</string>
+    <string name="prefs_category_general">General</string>
+    <string name="prefs_category_network">Network</string>
+    <string name="prefs_category_power">Power</string>
+    <string name="prefs_category_cpu">CPU</string>
+    <string name="prefs_category_storage">Storage</string>
+    <string name="prefs_category_memory">Memory</string>
+    <string name="prefs_category_debug">Debug</string>
+    <string name="prefs_show_advanced_header">Show advanced preferences and controls…</string>
+    <string name="prefs_suspend_when_screen_on">Pause computation when screen is on</string>
+	<string name="prefs_stationary_device_mode_header">Stationary device mode</string>
+	<string name="prefs_stationary_device_mode_description">Allows computation regardless of Power preferences. Only enable if device does not have a battery.</string>
+    <string name="prefs_power_source_header">Power sources for computation</string>
+    <string name="prefs_power_source_description">Selects power sources BOINC is allowed to use for computation.</string>
+    <string name="prefs_power_source_ac">Wall socket</string>
+    <string name="prefs_power_source_usb">USB connection</string>
+    <string name="prefs_power_source_wireless">Wireless charger</string>
+    <string name="prefs_power_source_battery">Battery</string>
+    <string name="battery_charge_min_pct_header">Min. battery level</string>
+    <string name="battery_charge_min_pct_description">BOINC suspends computation below defined battery charge level.</string>
+    <string name="battery_temperature_max_header">Max. battery temperature</string>
+    <string name="battery_temperature_max_description">BOINC suspends computation above defined battery temperature. It is not recommended to change this value.</string>
+    <string name="prefs_disk_max_pct_header">Max. used storage space</string>
+    <string name="prefs_disk_max_pct_description">How many percent of your device\'s storage space is BOINC allowed to use?</string>
+    <string name="prefs_disk_min_free_gb_header">Min. spare storage</string>
+    <string name="prefs_disk_min_free_gb_description">How much of your device\'s storage space shall stay free?</string>
+    <string name="prefs_disk_access_interval_header">Access interval</string>
+    <string name="prefs_disk_access_interval_description">Suggests an interval between disk accesses</string>
+    <string name="prefs_network_daily_xfer_limit_mb_header">Daily transfer limit</string>
+    <string name="prefs_network_daily_xfer_limit_mb_description">Limits the daily data traffic caused by BOINC.</string>
+    <string name="prefs_network_wifi_only_header">Transfer tasks on WiFi only</string>
+    <string name="prefs_autostart_header">Autostart</string>
+    <string name="prefs_show_notification_notices_header">Show notification for new notices</string>
+    <string name="prefs_show_notification_suspended_header">Show notification when suspended</string>
+    <string name="prefs_cpu_number_cpus_header">Used CPU cores</string>
+    <string name="prefs_cpu_number_cpus_description">Limits the number of CPU cores BOINC uses for computation.</string>
+    <string name="prefs_cpu_other_load_suspension_header">Pause at CPU usage above</string>
+    <string name="prefs_cpu_other_load_suspension_description">Determines when BOINC pauses computation due to other apps\' CPU usage.</string>
+    <string name="prefs_cpu_time_max_header">CPU limit</string>
+    <string name="prefs_cpu_time_max_description">Limits the CPU time BOINC uses for computation.</string>
+    <string name="prefs_memory_max_idle_header">RAM limit</string>
+    <string name="prefs_memory_max_idle_description">Limits the amount of RAM tasks are allowed to occupy.</string>
+    <string name="prefs_client_log_flags_header">BOINC Client log flags</string>
+    <string name="prefs_gui_log_level_header">GUI log level</string>
+    <string name="prefs_gui_log_level_description">Specifies verbosity of GUI log messages.</string>
+    <string name="prefs_unit_celsius">°C</string>
+    <string name="prefs_unit_seconds">sec</string>
+
+    <!-- projects tab strings -->
+    <string name="projects_loading">Reading projects…</string>
+    <string name="projects_add">Add project</string>
+    <string name="projects_icon">Project icon</string>
+    <string name="projects_credits">Credit:</string>
+    <string name="projects_credits_host_and_user">%1$,d (on this device) %2$,d (total)</string>
+    <!-- project status strings -->
+    <string name="projects_status_suspendedviagui">Suspended by user</string>
+    <string name="projects_status_dontrequestmorework">Won\'t get new tasks</string>
+    <string name="projects_status_ended">Project ended - OK to remove</string>
+    <string name="projects_status_detachwhendone">Will remove when tasks done</string>
+    <string name="projects_status_schedrpcpending">Scheduler request pending</string>
+    <string name="projects_status_schedrpcinprogress">Scheduler request in progress</string>
+    <string name="projects_status_trickleuppending">Trickle up message pending</string>
+    <string name="projects_status_backoff">Communication scheduled in:</string>
+    <!-- project controls -->
+    <string name="projects_control_dialog_title">Project commands:</string>
+    <string name="projects_control_visit_website">Visit website</string>
+    <string name="projects_control_update">Update</string>
+    <string name="projects_control_remove">Remove</string>
+    <string name="projects_control_suspend">Suspend</string>
+    <string name="projects_control_resume">Resume</string>
+    <string name="projects_control_nonewtasks">No new tasks</string>
+    <string name="projects_control_allownewtasks">Allow new tasks</string>
+    <string name="projects_control_reset">Reset</string>
+    <string name="projects_control_dialog_title_acctmgr">Account manager commands:</string>
+    <string name="projects_control_sync_acctmgr">Synchronize</string>
+    <string name="projects_control_remove_acctmgr">Disable</string>
+    <!-- project confirm dialog -->
+    <string name="projects_confirm_detach_title">Remove project?</string>
+    <string name="projects_confirm_detach_message">Are you sure you want to remove</string>
+    <string name="projects_confirm_detach_message2">from BOINC?</string>
+    <string name="projects_confirm_detach_confirm">Remove</string>
+    <string name="projects_confirm_reset_title">Reset project</string>
+    <string name="projects_confirm_reset_message">Are you sure you want to reset</string>
+    <string name="projects_confirm_reset_message2">\?</string>
+    <string name="projects_confirm_reset_confirm">Reset</string>
+    <string name="projects_confirm_remove_acctmgr_title">Disable account manager</string>
+    <string name="projects_confirm_remove_acctmgr_message">Are you sure you want to stop using</string>
+    <string name="projects_confirm_remove_acctmgr_message2">\?</string>
+    <string name="projects_confirm_remove_acctmgr_confirm">Disable</string>
+
+    <!-- tasks tab strings -->
+    <string name="tasks_header_name">Task Name:</string>
+    <string name="tasks_header_elapsed_time">Elapsed time:</string>
+    <string name="tasks_header_project_paused">(suspended)</string>
+    <string name="tasks_header_deadline">Deadline:</string>
+    <string name="tasks_result_new">new</string>
+    <string name="tasks_result_files_downloading">waiting for download</string>
+    <string name="tasks_result_files_downloaded">download complete</string>
+    <string name="tasks_result_compute_error">computation error</string>
+    <string name="tasks_result_files_uploading">uploading</string>
+    <string name="tasks_result_files_uploaded">upload complete</string>
+    <string name="tasks_result_aborted">aborted</string>
+    <string name="tasks_result_upload_failed">upload failed</string>
+    <string name="tasks_active_uninitialized">ready</string>
+    <string name="tasks_active_executing">running</string>
+    <string name="tasks_active_suspended">suspended</string>
+    <string name="tasks_active_abort_pending">suspending</string>
+    <string name="tasks_active_quit_pending">suspending</string>
+    <string name="tasks_custom_suspended_via_gui">suspended</string>
+    <string name="tasks_custom_project_suspended_via_gui">project suspended</string>
+    <string name="tasks_custom_ready_to_report">ready to report</string>
+
+    <!-- confirmation dialog -->
+    <string name="confirm_abort_task_title">Abort task?</string>
+    <string name="confirm_abort_task_message">Abort task:</string>
+    <string name="confirm_abort_task_confirm">Abort</string>
+    <string name="confirm_cancel">Cancel</string>
+    <string name="confirm_image_desc">Confirmation dialog</string>
+
+    <!-- transfers tab strings -->
+    <string name="trans_loading">Reading transfers…</string>
+    <string name="trans_upload">Upload</string>
+    <string name="trans_download">Download</string>
+    <string name="trans_retryin">retry in</string>
+    <string name="trans_failed">failed</string>
+    <string name="trans_suspended">suspended</string>
+    <string name="trans_active">active</string>
+    <string name="trans_pending">pending</string>
+    <string name="trans_projectbackoff">project backoff</string>
+    <string name="trans_header_name">File:</string>
+    <string name="trans_control_retry">Retry transfers</string>
+    <string name="confirm_abort_trans_title">Abort transfer?</string>
+    <string name="confirm_abort_trans_message">Abort File:</string>
+    <string name="confirm_abort_trans_confirm">Abort</string>
+
+    <!-- notices tab strings -->
+    <string name="notices_loading">Reading notices…</string>
+
+    <!-- eventlog tab strings -->
+    <string name="eventlog_loading">Loading log messages…</string>
+    <string name="eventlog_client_header">Client Messages</string>
+    <string name="eventlog_gui_header">GUI Messages</string>
+    <string name="eventlog_copy_toast">Log copied to clipboard.</string>
+    <string name="eventlog_email_subject">Event Log for BOINC on Android:</string>
+
+    <!-- suspend reasons -->
+    <string name="suspend_unknown">Computation suspended.</string>
+    <string name="suspend_batteries">Connect your device to a charger to continue computing.</string>
+    <string name="suspend_screen_on">Turn screen off to continue computing.</string>
+    <string name="suspend_useractive">User is active.</string>
+    <string name="suspend_tod">Out of computation time-frame.</string>
+    <string name="suspend_bm">BOINC is benchmarking your device…</string>
+    <string name="suspend_disksize">Out of disk space.</string>
+    <string name="suspend_cputhrottle">Scheduled CPU throttle.</string>
+    <string name="suspend_noinput">No recent user activity.</string>
+    <string name="suspend_delay">Initialization delay.</string>
+    <string name="suspend_exclusiveapp">An exclusive app is running.</string>
+    <string name="suspend_cpu">Your device is busy with other apps.</string>
+    <string name="suspend_network_quota">BOINC reached network transfer limit.</string>
+    <string name="suspend_os">Stopped by Android.</string>
+    <string name="suspend_wifi">Not connected to WiFi.</string>
+    <string name="suspend_battery_charging">Waiting for battery to charge.</string>
+    <string name="suspend_battery_charging_long">Computing will resume when battery charge reaches</string>
+    <string name="suspend_battery_charging_long2"></string>
+    <string name="suspend_battery_charging_current">currently</string>
+    <string name="suspend_battery_overheating">Waiting for battery to cool down</string>
+    <string name="suspend_user_req">Resuming computation…</string>
+    <string name="suspend_network_user_req">manually.</string>
+
+    <!-- rpc reasons -->
+    <string name="rpcreason_userreq">Requested by user</string>
+    <string name="rpcreason_needwork">To fetch work</string>
+    <string name="rpcreason_resultsdue">To report completed tasks</string>
+    <string name="rpcreason_trickleup">To send trickle-up message</string>
+    <string name="rpcreason_acctmgrreq">Requested by account manager</string>
+    <string name="rpcreason_init">Project initialization</string>
+    <string name="rpcreason_projectreq">Requested by project</string>
+    <string name="rpcreason_unknown">Unknown reason</string>
+
+    <!-- menu -->
+    <string name="menu_refresh">Refresh</string>
+    <string name="menu_emailto">Send as Email</string>
+    <string name="menu_copy">Copy to Clipboard</string>
+    <string name="menu_eventlog">Event Log</string>
+    <string name="menu_exit">Exit BOINC</string>
+    <string name="menu_run_mode_disable">Suspend</string>
+    <string name="menu_run_mode_enable">Resume</string>
+    <string name="menu_about">About</string>
+    <string name="menu_help">Help</string>
+
+    <!-- about dialog -->
+    <string name="about_button">Return</string>
+    <string name="about_title">About</string>
+    <string name="about_name">BOINC</string>
+    <string name="about_version">Version</string>
+    <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
+    <string name="about_copyright">\u00A9 2003–2017 University of California, Berkeley.</string>
+    <string name="about_copyright_reserved">All Rights Reserved.</string>
+    <string name="about_credits">Thanks to the Max Planck Institute for Gravitational Physics, IBM Corporation and HTC Corporation for their support.</string>
+
+    <!-- notice notification e.g. New notice from SETI at HOME OR 3 new notices -->
+    <plurals name="notice_notification">
+        <item quantity="one">New notice from %1$s</item>
+        <item quantity="other">%2$,d new notices</item>
+    </plurals>
+
+    <!-- multi BOINC compatibility -->
+    <string name="nonexcl_dialog_header">Volunteer computing app detected</string>
+    <string name="nonexcl_dialog_text">Another volunteer computing app is running on this device. Only one version can run at a time.</string>
+    <string name="nonexcl_dialog_exit">Exit</string>
+    
+    <!-- social integration -->
+    <string name="social_invite_button">Invite friends</string>
+    <string name="social_invite_intent_title">How do you want to share?</string>
+    <string name="social_invite_content_title">I\'m doing science on my smartphone!</string>
+    <string name="social_invite_content_body">I\'m using my %1$s to do computing for science. You can too! Download the app from: %2$s</string> <!-- first parameter: device manufacturer, second: URL -->
+    <string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
+    <string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc</string>
+</resources>
diff --git a/android/BOINC/res/values/theme.xml b/android/BOINC/app/src/main/res/values/theme.xml
similarity index 100%
rename from android/BOINC/res/values/theme.xml
rename to android/BOINC/app/src/main/res/values/theme.xml
diff --git a/android/BOINC/assets/all_projects_list.xml b/android/BOINC/assets/all_projects_list.xml
deleted file mode 100644
index 546e3e4..0000000
--- a/android/BOINC/assets/all_projects_list.xml
+++ /dev/null
@@ -1,1050 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<projects>
-    <project>
-        <name>MindModeling at Home</name>
-        <url>http://mindmodeling.org/</url>
-        <general_area>Cognitive science and artifical intelligence</general_area>
-        <specific_area>Cognitive Science</specific_area>
-        <description><![CDATA[MindModeling at Home uses computational cognitive process modeling to better understand the human mind, and specifically to study the mechanisms and processes that enable and moderate human performance and learning.]]></description>
-        <home>University of Dayton and Wright State University</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[sse2]</name>
-        <name>x86_64-apple-darwin[sse2]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[sse2]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/mmlogo.gif</image>
-    </project>
-    <project>
-        <name>SubsetSum at Home</name>
-        <url>http://volunteer.cs.und.edu/subset_sum/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Computer Science</specific_area>
-        <description><![CDATA[Research in computational complexity]]></description>
-        <home>University of North Dakota, Computer Science Department</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/</image>
-    </project>
-    <project>
-        <name>Collatz Conjecture</name>
-        <url>http://boinc.thesonntags.com/collatz/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics</specific_area>
-        <description><![CDATA[Study the Collatz Conjecture, an unsolved conjecture in mathematics]]></description>
-        <home>Private</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[cuda40]</name>
-        <name>i686-pc-linux-gnu[opencl_amd_cpu]</name>
-        <name>i686-pc-linux-gnu[opencl_amd_gpu]</name>
-        <name>i686-pc-linux-gnu[opencl_intel_cpu]</name>
-        <name>i686-pc-linux-gnu[opencl_intel_gpu]</name>
-        <name>i686-pc-linux-gnu[opencl_nvidia_gpu]</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[ati14]</name>
-        <name>windows_intelx86[cuda55]</name>
-        <name>windows_intelx86[opencl_amd_cpu]</name>
-        <name>windows_intelx86[opencl_amd_gpu]</name>
-        <name>windows_intelx86[opencl_intel_gpu]</name>
-        <name>windows_intelx86[opencl_nvidia_gpu]</name>
-        <name>windows_x86_64</name>
-        <name>windows_x86_64[ati14]</name>
-        <name>windows_x86_64[cuda55]</name>
-        <name>windows_x86_64[opencl_amd_cpu]</name>
-        <name>windows_x86_64[opencl_amd_gpu]</name>
-        <name>windows_x86_64[opencl_intel_cpu]</name>
-        <name>windows_x86_64[opencl_intel_gpu]</name>
-        <name>windows_x86_64[opencl_nvidia_gpu]</name>
-        <name>x86_64-apple-darwin[opencl_amd_cpu]</name>
-        <name>x86_64-apple-darwin[opencl_amd_gpu]</name>
-        <name>x86_64-apple-darwin[opencl_intel_cpu]</name>
-        <name>x86_64-apple-darwin[opencl_intel_gpu]</name>
-        <name>x86_64-apple-darwin[opencl_nvidia_gpu]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[cuda40]</name>
-        <name>x86_64-pc-linux-gnu[opencl_amd_cpu]</name>
-        <name>x86_64-pc-linux-gnu[opencl_amd_gpu]</name>
-        <name>x86_64-pc-linux-gnu[opencl_intel_cpu]</name>
-        <name>x86_64-pc-linux-gnu[opencl_intel_gpu]</name>
-        <name>x86_64-pc-linux-gnu[opencl_nvidia_gpu]</name>
-    </platforms>
-    </project>
-    <project>
-        <name>primaboinca</name>
-        <url>http://www.primaboinca.com/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics</specific_area>
-        <description><![CDATA[Search for counterexamples to two conjectures related to the identification of prime numbers]]></description>
-        <home>Hochschule RheinMain University of Applied Sciences</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/logo_primaboinca.gif</image>
-    </project>
-    <project>
-        <name>ABC at home</name>
-        <url>http://abcathome.com/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics</specific_area>
-        <description><![CDATA[Search for 'abc-triples': positive integers a,b,c such that a+b=c, a < b < c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the product of the distinct prime factors of n. The ABC conjecture says that there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for any real h > 1. The ABC conjecture is currently one of the greatest open problems in mathematics. If it is proven to be true, a lot of other open problems can be a [...]
-        <home>Mathematical Institute of Leiden University / Kennislink</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>powerpc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/abclogo.jpg</image>
-    </project>
-    <project>
-        <name>NumberFields at home</name>
-        <url>http://numberfields.asu.edu/NumberFields/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics</specific_area>
-        <description><![CDATA[NumberFields at home searches for fields with special properties. The primary application of this research is in the realm of algebraic number theory. Number theorists can mine the data for interesting patterns to help them formulate conjectures about number fields. Ultimately, this research will lead to a deeper understanding of the profound properties of numbers, the basic building blocks of all mathematics.]]></description>
-        <home>Arizona State University, school of Mathematics</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/nf_banner_10.jpg</image>
-    </project>
-    <project>
-        <name>SAT at home</name>
-        <url>http://sat.isa.ru/pdsat/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Computer Science</specific_area>
-        <description><![CDATA[Solve hard and practically important problems (discrete functions inversion problems, discrete optimization, bioinformatics, etc.) that can be effectively reduced to Boolean satisfiability problem.]]></description>
-        <home>Institute for System Dynamics and Control Theory and Institute for Information Transmission Problems, Russian Academy of Science</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/sat_logo.png</image>
-    </project>
-    <project>
-        <name>Enigma at Home</name>
-        <url>http://www.enigmaathome.net/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Cryptography</specific_area>
-        <description><![CDATA[Attempt to decode 3 original Enigma messages. The signals were intercepted in the North Atlantic in 1942 and are believed to be unbroken.]]></description>
-        <home>Private</home>
-    <platforms>
-        <name>arm-android-linux-gnu</name>
-        <name>arm-unknown-linux-gnueabi</name>
-        <name>arm-unknown-linux-gnueabihf</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-    </platforms>
-    </project>
-    <project>
-        <name>sudoku at vtaiwan</name>
-        <url>http://sudoku.nctu.edu.tw/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics</specific_area>
-        <description><![CDATA[Sudoku at vtaiwan seeks to solve the minimum Sudoku problem, a well-known problem in mathematics and computer science.]]></description>
-        <home>National Chiao Tung University, Taiwan</home>
-    <platforms>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/sudoku.png</image>
-    </project>
-    <project>
-        <name>NFS at home</name>
-        <url>http://escatter11.fullerton.edu/nfs/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Factorization of large integers</specific_area>
-        <description><![CDATA[NFS at Home is a research project that uses Internet-connected computers to do the lattice sieving step in the Number Field Sieve factorization of large integers. As a young school student, you gained your first experience at breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. NFS at Home is a continuation of that experience, only with integers that are hundreds of digits long.]]></description>
-        <home>California State University Fullerton</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64[notphenomiix6]</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-freebsd</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/NFS_Logo.jpg</image>
-    </project>
-    <project>
-        <name>OProject at Home</name>
-        <url>http://oproject.info/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics, Physics, Artificial Intelligence</specific_area>
-        <description><![CDATA[Simulation of quantum computing; Goldbach's conjecture.]]></description>
-        <home>Private</home>
-    <platforms>
-        <name>arm-android</name>
-        <name>arm-android-linux-gnu</name>
-        <name>arm-unknown-linux-gnu</name>
-        <name>arm-unknown-linux-gnueabi</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-solaris</name>
-        <name>powerpc64-ps3-linux-gnu</name>
-        <name>ppc64-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-freebsd</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/oproject_logo.png</image>
-    </project>
-    <project>
-        <name>DistrRTgen</name>
-        <url>http://boinc.freerainbowtables.com/distrrtgen/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Cryptography</specific_area>
-        <description><![CDATA[To give the world's security experts the best tools available for detecting weak hashes. This can help them to force developers to use more secure methods of password protection.]]></description>
-        <home>Private</home>
-    <platforms>
-        <name>i386-pc-freebsd</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[cuda23]</name>
-        <name>windows_intelx86[cuda40]</name>
-        <name>windows_intelx86[opencl_ati_101]</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-pc-freebsd</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[cuda23]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/freerainbowtables_logo.png</image>
-    </project>
-    <project>
-        <name>SZTAKI Desktop Grid</name>
-        <url>http://szdg.lpds.sztaki.hu/szdg/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics</specific_area>
-        <description><![CDATA[Find all the generalized binary number systems (in which bases are matrices and digits are vectors) up to dimension 11.]]></description>
-        <home>MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/szdg1_small.jpg</image>
-    </project>
-    <project>
-        <name>VTU at home</name>
-        <url>http://boinc.vgtu.lt/vtuathome/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Software testing</specific_area>
-        <description><![CDATA[The aim of this project is to provide a powerful distributed computing platform for scientists of Vilnius Gediminas Technical University (VGTU) as well as others Lithuanian academic institutions.  Current applications involve the study of Monte-Carlo based software testing.]]></description>
-        <home>Vilnius Gediminas Technical University and Kaunas University of Technology (Lithuania)</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/vtuathome-white.gif</image>
-    </project>
-    <project>
-        <name>PrimeGrid</name>
-        <url>http://www.primegrid.com/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Mathematics</specific_area>
-        <description><![CDATA[Primegrid has multiple projects searching for different forms of very large prime numbers, including searching for the largest known prime number.]]></description>
-        <home>Private</home>
-    <platforms>
-        <name>arm-android-linux-gnu</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-apple-darwin[cpuPPSsieve]</name>
-        <name>i686-apple-darwin[cudaGFN]</name>
-        <name>i686-apple-darwin[cudaGFNWR]</name>
-        <name>i686-apple-darwin[cudaPPSsieve]</name>
-        <name>i686-apple-darwin[OCLcudaGFN]</name>
-        <name>i686-apple-darwin[OCLcudaGFNWR]</name>
-        <name>i686-apple-darwin[openclGFNMAC]</name>
-        <name>i686-apple-darwin[openclGFNWRMAC]</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[atiGFN]</name>
-        <name>i686-pc-linux-gnu[atiGFNWR]</name>
-        <name>i686-pc-linux-gnu[atiPPSsieve]</name>
-        <name>i686-pc-linux-gnu[cpuPPSsieve]</name>
-        <name>i686-pc-linux-gnu[cudaGFN]</name>
-        <name>i686-pc-linux-gnu[cudaGFNWR]</name>
-        <name>i686-pc-linux-gnu[cudaPPSsieve]</name>
-        <name>i686-pc-linux-gnu[OCLcudaGFN]</name>
-        <name>i686-pc-linux-gnu[OCLcudaGFNWR]</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[atiGFN]</name>
-        <name>windows_intelx86[atiGFNWR]</name>
-        <name>windows_intelx86[atiPPSsieve]</name>
-        <name>windows_intelx86[cpuPPSsieve]</name>
-        <name>windows_intelx86[cudaGFN]</name>
-        <name>windows_intelx86[cudaGFNWR]</name>
-        <name>windows_intelx86[cudaPPSsieve]</name>
-        <name>windows_intelx86[OCLcudaGFN]</name>
-        <name>windows_intelx86[OCLcudaGFNWR]</name>
-        <name>windows_intelx86[openclGFN]</name>
-        <name>windows_x86_64</name>
-        <name>windows_x86_64[cpuGFN]</name>
-        <name>windows_x86_64[cpuPPSsieve]</name>
-        <name>windows_x86_64[forceAVXGFN]</name>
-        <name>windows_x86_64[SSE3cpuGFN]</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-apple-darwin[AVX10GFN]</name>
-        <name>x86_64-apple-darwin[cpuPPSsieve]</name>
-        <name>x86_64-apple-darwin[cudaPPSsieve]</name>
-        <name>x86_64-apple-darwin[openclPPSsieveMAC]</name>
-        <name>x86_64-apple-darwin[SSE3cpuGFNMAC]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[atiPPSsieve]</name>
-        <name>x86_64-pc-linux-gnu[AVXGFN]</name>
-        <name>x86_64-pc-linux-gnu[cpuGFN]</name>
-        <name>x86_64-pc-linux-gnu[cpuPPSsieve]</name>
-        <name>x86_64-pc-linux-gnu[cudaPPSsieve]</name>
-        <name>x86_64-pc-linux-gnu[SSE3cpuGFN]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/primegrid_logo.png</image>
-    </project>
-    <project>
-        <name>VolPEx</name>
-        <url>http://volpex.cs.uh.edu/VCP/</url>
-        <general_area>Mathematics, computing, and games</general_area>
-        <specific_area>Computer science</specific_area>
-        <description><![CDATA[Creating effective parallel computing on multiple volatile nodes. Apply research on REMD Protein Folding.]]></description>
-        <home>University of Houston</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/</image>
-    </project>
-    <project>
-        <name>GPUGrid.net</name>
-        <url>http://www.gpugrid.net/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Molecular simulations of proteins</specific_area>
-        <description><![CDATA[GPUGrid.net opens novel computational scenarios by the first full-atom molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. New biomedical applications suddenly become possible giving a new role to computational biology for biomedical research.]]></description>
-        <home>Barcelona Biomedical Research Park (PRBB)</home>
-    <platforms>
-        <name>arm-android-linux-gnu</name>
-        <name>windows_intelx86[cuda42]</name>
-        <name>windows_intelx86[cuda55]</name>
-        <name>x86_64-pc-linux-gnu[cuda42]</name>
-        <name>x86_64-pc-linux-gnu[cuda55]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/gpugrid.png</image>
-    </project>
-    <project>
-        <name>POEM at HOME</name>
-        <url>http://boinc.fzk.de/poem/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Protein structure prediction</specific_area>
-        <description><![CDATA[POEM at HOME uses a computational approach to predict the biologically active structure of proteins, to understand the signal-processing mechanisms when the proteins interact with one another, to understand diseases related to protein malfunction or aggregation, and to develop new drugs on the basis of the three-dimensions structure of biologically important proteins.]]></description>
-        <home>University of Karlsruhe (Germany)</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[opencl_ati_100]</name>
-        <name>windows_intelx86[opencl_nvidia_100]</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[opencl_ati_100]</name>
-        <name>x86_64-pc-linux-gnu[opencl_nvidia_100]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/poem.jpg</image>
-    </project>
-    <project>
-        <name>Malariacontrol.net</name>
-        <url>http://www.malariacontrol.net/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Epidemiology</specific_area>
-        <description><![CDATA[Simulation models of the transmission dynamics and health effects of malaria are an important tool for malaria control. They can be used to determine optimal strategies for delivering mosquito nets, chemotherapy, or new vaccines which are currently under development and testing.  Such modeling is extremely computer intensive, requiring simulations of large human populations with a diverse set of parameters related to biological and social factors that influe [...]
-        <home>The Swiss Tropical Institute</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-unknown-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/africaathome.gif</image>
-    </project>
-    <project>
-        <name>Simulation One</name>
-        <url>http://mmgboinc.unimi.it/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Molecular biology</specific_area>
-        <description><![CDATA[The project studies osmoprotectants - small molecules that protect proteins, for example by thermal stress. Thanks to these molecules in nature we can find plants able to survive without water, or bacteria able to survive in extreme environmental conditions. And how is this possible? Answering this question could have a major impact in agriculture, e.g. developing plants that require less water intake.]]></description>
-        <home>Universita degli Studi, Milan, Italy</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[mt]</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[mt]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[mt]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/SimOne_logo.png</image>
-    </project>
-    <project>
-        <name>SIMAP</name>
-        <url>http://boincsimap.org/boincsimap/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Biology</specific_area>
-        <description><![CDATA[Calculate similarities between proteins. SIMAP provides a public database of the resulting data, which plays a key role in many bioinformatics research projects.]]></description>
-        <home>University of Vienna</home>
-    <platforms>
-        <name>arm-android-linux-gnu</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-unknown-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/simaplogo.jpg</image>
-    </project>
-    <project>
-        <name>Docking at Home</name>
-        <url>http://docking.cis.udel.edu/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Study of protein - ligand interactions</specific_area>
-        <description><![CDATA[Docking at Home has both bioscience and computer science goals. The project aims to further knowledge of the atomic details of protein-ligand interactions and, by doing so, will search for insights into the discovery of novel pharmaceuticals.]]></description>
-        <home>University of Delaware</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_amd64</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/docking.png</image>
-    </project>
-    <project>
-        <name>RNA World</name>
-        <url>http://www.rnaworld.de/rnaworld/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Molecular biology</specific_area>
-        <description><![CDATA[RNA World seeks to identify, analyze, structurally predict and design RNA molecules on the basis of established bioinformatics software.]]></description>
-        <home>Rechenkraft.net e.V.</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>windows_x86_64[vbox64]</name>
-        <name>x86_64-apple-darwin[vbox64]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[vbox64]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/rna4.png</image>
-    </project>
-    <project>
-        <name>The Lattice Project</name>
-        <url>http://boinc.umiacs.umd.edu/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Life science research</specific_area>
-        <description><![CDATA[The Lattice Project supplies computing power to scientists at the University of Maryland studying evolutionary relationships based on DNA sequence data; bacterial, plasmid, and virus protein sequences; and biological diversity in nature reserves. ]]></description>
-        <home>University of Maryland Center for Bioinformatics and Computational Biology</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/lattice.gif</image>
-    </project>
-    <project>
-        <name>FightMalaria at Home</name>
-        <url>http://boinc.ucd.ie/fmah/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Antimalarial drug discovery</specific_area>
-        <description><![CDATA[The parasite that causes malaria continues to evolve resistance to available medication. We therefore urgently need to discover new drugs to replace existing drugs. Importantly, these new drugs need to target NEW proteins in the parasite. The FightMalaria at Home project is aimed at finding these new targets.]]></description>
-        <home>University College Dublin</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/FMAH_banner3_wt.png</image>
-    </project>
-    <project>
-        <name>Rosetta at home</name>
-        <url>http://boinc.bakerlab.org/rosetta/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Biology</specific_area>
-        <description><![CDATA[Determine the 3-dimensional shapes of proteins in research that may ultimately lead to finding cures for some major human diseases. By running Rosetta at home you will help us speed up and extend our research in ways we couldn't possibly attempt without your help. You will also be helping our efforts at designing new proteins to fight diseases such as HIV, Malaria, Cancer, and Alzheimer's]]></description>
-        <home>University of Washington</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/rosetta_at_home_logo.jpg</image>
-    </project>
-    <project>
-        <name>Superlink at Technion</name>
-        <url>http://cbl-boinc-server2.cs.technion.ac.il/superlinkattechnion/</url>
-        <general_area>Biology and Medicine</general_area>
-        <specific_area>Genetic linkage analysis</specific_area>
-        <description><![CDATA[Superlink at Technion helps geneticists all over the world find disease-provoking genes causing some types of diabetes, hypertension (high blood pressure), cancer, schizophrenia and many others.]]></description>
-        <home>Technion, Israel</home>
-    <platforms>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/superlink_logo.gif</image>
-    </project>
-    <project>
-        <name>Quake Catcher Network</name>
-        <url>http://qcn.stanford.edu/sensor/</url>
-        <general_area>Distributed sensing</general_area>
-        <specific_area>Seismology</specific_area>
-        <description><![CDATA[The Quake-Catcher Network is developing the world's largest seismic network using sensors attached to Internet-connected computers.  You must buy a sensor to participate.]]></description>
-        <home>Stanford University</home>
-    <platforms>
-        <name>arm-android-linux-gnu[nci]</name>
-        <name>armv5tel-unknown-linux-gnueabi[nci]</name>
-        <name>armv6l-unknown-linux-gnueabihf[nci]</name>
-        <name>i686-apple-darwin[nci]</name>
-        <name>i686-pc-linux-gnu[nci]</name>
-        <name>powerpc-apple-darwin[nci]</name>
-        <name>windows_intelx86[nci]</name>
-        <name>windows_x86_64[nci]</name>
-        <name>x86_64-apple-darwin[nci]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/</image>
-    </project>
-    <project>
-        <name>Radioactive at Home</name>
-        <url>http://radioactiveathome.org/boinc/</url>
-        <general_area>Distributed sensing</general_area>
-        <specific_area>Environmental research</specific_area>
-        <description><![CDATA[This project is creating a free and continuously updated map of radiation levels by using sensors connected to volunteers' computers.  You must buy a sensor to participate.]]></description>
-        <home>BOINC Poland Foundation</home>
-    <platforms>
-        <name>windows_intelx86</name>
-        <name>i686-pc-linux-gnu[nci]</name>
-        <name>arm-unknown-linux-gnueabi</name>
-        <name>armv6l-unknown-linux-gnueabihf</name>
-        <name>arm-unknown-linux-gnueabihf</name>
-        <name>mipsel-unknown-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/radioactive.jpg</image>
-    </project>
-    <project>
-        <name>Climateprediction.net</name>
-        <url>http://climateprediction.net/</url>
-        <general_area>Earth Sciences</general_area>
-        <specific_area>Climate study</specific_area>
-        <description><![CDATA[Investigate the approximations that have to be made in state-of-the-art climate models. By running the model thousands of times we hope to find out how the model responds to slight tweaks to these approximations - slight enough to not make the approximations any less realistic. This will allow us to improve our understanding of how sensitive our models are to small changes and also to things like changes in carbon dioxide and the sulphur cycle. This will all [...]
-        <home>Oxford University</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/cpn_logo_world_1.jpg</image>
-    </project>
-    <project>
-        <name>Spinhenge at home</name>
-        <url>http://spin.fh-bielefeld.de/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Chemical engineering and nanotechnology</specific_area>
-        <description><![CDATA[The study of molecular magnets and controlled nanoscale magnetism.  These magnetic molecules may be used to develop tiny magnetic switches, with applications in medicine (such as local tumor chemotherapy) and biotechnology.]]></description>
-        <home>Bielefeld University of Applied Sciences</home>
-    <platforms>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/rotating-fe30-h90px.gif</image>
-    </project>
-    <project>
-        <name>LHC at home</name>
-        <url>http://lhcathomeclassic.cern.ch/sixtrack/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Physics</specific_area>
-        <description><![CDATA[The Large Hadron Collider (LHC) is a particle accelerator at CERN, the European Organization for Nuclear Research, the world's largest particle physics laboratory.  It is the most powerful instrument ever built to investigate on particles proprieties. LHC at home runs simulations to improve the design of LHC and its detectors.]]></description>
-        <home>CERN (European Organization for Nuclear Research)</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[pni]</name>
-        <name>i686-pc-linux-gnu[sse2]</name>
-        <name>i686-pc-linux-gnu[sse3]</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[pni]</name>
-        <name>windows_intelx86[sse2]</name>
-        <name>windows_intelx86[sse3]</name>
-        <name>windows_x86_64</name>
-        <name>windows_x86_64[pni]</name>
-        <name>windows_x86_64[sse2]</name>
-        <name>windows_x86_64[sse3]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[pni]</name>
-        <name>x86_64-pc-linux-gnu[sse2]</name>
-        <name>x86_64-pc-linux-gnu[sse3]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/lhc.jpg</image>
-    </project>
-    <project>
-        <name>Einstein at home</name>
-        <url>http://einstein.phys.uwm.edu/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Astrophysics</specific_area>
-        <description><![CDATA[Search for spinning neutron stars (also called pulsars) using data from the LIGO and GEO gravitational wave detectors, and from the Arecibo radio observatory.  Einstein at Home is a World Year of Physics 2005 project supported by the American Physical Society (APS) and by a number of international organizations.]]></description>
-        <home>Univ. of Wisconsin - Milwaukee, Max Planck Institute</home>
-    <platforms>
-        <name>arm-android-linux-gnu[NEON]</name>
-        <name>arm-android-linux-gnu[VFP]</name>
-        <name>arm-unknown-linux-gnueabihf</name>
-        <name>arm-unknown-linux-gnueabihf[NEON]</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-apple-darwin[ABP2cuda23]</name>
-        <name>i686-apple-darwin[BRP3cuda32OSX5]</name>
-        <name>i686-apple-darwin[BRP3SSE]</name>
-        <name>i686-apple-darwin[BRP4G-cuda32-OSX]</name>
-        <name>i686-apple-darwin[BRP4G-opencl-ati-lion]</name>
-        <name>i686-apple-darwin[BRP5-cuda32-OSX]</name>
-        <name>i686-apple-darwin[BRP5-opencl-ati-lion]</name>
-        <name>i686-apple-darwin[FGRPopencl-ati-lion]</name>
-        <name>i686-apple-darwin[FGRPopencl-nvidia-lion]</name>
-        <name>i686-apple-darwin[SSE2]</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[ABP1cuda23]</name>
-        <name>i686-pc-linux-gnu[ABP2cuda23]</name>
-        <name>i686-pc-linux-gnu[BRP3cuda32fullCPU]</name>
-        <name>i686-pc-linux-gnu[BRP3cuda32nv270]</name>
-        <name>i686-pc-linux-gnu[BRP3SSE]</name>
-        <name>i686-pc-linux-gnu[BRP4G-cuda32-nv270]</name>
-        <name>i686-pc-linux-gnu[BRP4G-opencl-ati]</name>
-        <name>i686-pc-linux-gnu[BRP5-cuda32-nv270]</name>
-        <name>i686-pc-linux-gnu[BRP5-opencl-ati]</name>
-        <name>i686-pc-linux-gnu[FGRPopencl-ati]</name>
-        <name>i686-pc-linux-gnu[FGRPopencl-nvidia]</name>
-        <name>i686-pc-linux-gnu[S5GCESSE]</name>
-        <name>i686-pc-linux-gnu[S5GCESSE2]</name>
-        <name>i686-pc-linux-gnu[SSE]</name>
-        <name>i686-pc-linux-gnu[SSE2]</name>
-        <name>powerpc-apple-darwin</name>
-        <name>powerpc-apple-darwin[ALTIVEC]</name>
-        <name>sparc-sun-solaris2.7</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[ABP1cuda23]</name>
-        <name>windows_intelx86[ABP2cuda23]</name>
-        <name>windows_intelx86[BRP3cuda32]</name>
-        <name>windows_intelx86[BRP3SSE]</name>
-        <name>windows_intelx86[BRP4G-cuda32]</name>
-        <name>windows_intelx86[BRP4G-cuda32-nv301]</name>
-        <name>windows_intelx86[BRP4G-opencl-ati]</name>
-        <name>windows_intelx86[BRP5-cuda32]</name>
-        <name>windows_intelx86[BRP5-cuda32-nv301]</name>
-        <name>windows_intelx86[BRP5-opencl-ati]</name>
-        <name>windows_intelx86[FGRPopencl-ati]</name>
-        <name>windows_intelx86[FGRPopencl-nvidia]</name>
-        <name>windows_intelx86[opencl-intel_gpu]</name>
-        <name>windows_intelx86[S5GCESSE]</name>
-        <name>windows_intelx86[S5GCESSE2]</name>
-        <name>windows_intelx86[S5R6sse]</name>
-        <name>windows_intelx86[S5R6sse2]</name>
-        <name>windows_intelx86[SSE]</name>
-        <name>windows_intelx86[SSE2]</name>
-        <name>windows_x86_64[BRP4G-opencl-ati]</name>
-        <name>windows_x86_64[BRP5-opencl-ati]</name>
-        <name>windows_x86_64[FGRPopencl-ati]</name>
-        <name>windows_x86_64[FGRPopencl-nvidia]</name>
-        <name>windows_x86_64[opencl-intel_gpu]</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[BRP4G-cuda32-nv270]</name>
-        <name>x86_64-pc-linux-gnu[BRP4G-opencl-ati]</name>
-        <name>x86_64-pc-linux-gnu[BRP5-cuda32-nv270]</name>
-        <name>x86_64-pc-linux-gnu[BRP5-opencl-ati]</name>
-        <name>x86_64-pc-linux-gnu[FGRPopencl-ati]</name>
-        <name>x86_64-pc-linux-gnu[FGRPopencl-nvidia]</name>
-        <name>x86_64-pc-linux-gnu[X64]</name>
-        <name>x86_64-pc-linux-gnu[X8664]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/einstein.jpg</image>
-    </project>
-    <project>
-        <name>Constellation</name>
-        <url>http://aerospaceresearch.net/constellation/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Aerospace-related science and engineering</specific_area>
-        <description><![CDATA[Constellation is a platform for aerospace-related simulations, including trajectory optimization of launchers, satellites and probes, simulation of Moon's near-surface exosphere, and analysis of dynamic systems of exploration-rovers]]></description>
-        <home><a href='http://rechenkraft.net'>Rechenkraft.net</a>, <a href='http://stuttgart.dglr.de'>DGLR</a>, <a href='http://selfnet.de'>Selfnet</a>, and <a href='http://shackspace.de'>shack</a></home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/constellation2.png</image>
-    </project>
-    <project>
-        <name>SETI at home</name>
-        <url>http://setiathome.berkeley.edu/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Astrophysics, astrobiology</specific_area>
-        <description><![CDATA[SETI (Search for Extraterrestrial Intelligence) is a scientific area whose goal is to detect intelligent life outside Earth. One approach, known as radio SETI, uses radio telescopes to listen for narrow-bandwidth radio signals from space. Such signals are not known to occur naturally, so a detection would provide evidence of extraterrestrial technology.]]></description>
-        <home>University of California, Berkeley</home>
-    <platforms>
-        <name>arm-android-linux-gnu[armv6-neon]</name>
-        <name>arm-android-linux-gnu[armv6-vfp]</name>
-        <name>arm-android-linux-gnu[armv7-neon]</name>
-        <name>arm-android-linux-gnu[armv7-vfpv3d16]</name>
-        <name>arm-android-linux-gnu[armv7-vfpv4]</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[ati_opencl_100]</name>
-        <name>windows_intelx86[cal_ati]</name>
-        <name>windows_intelx86[cuda]</name>
-        <name>windows_intelx86[cuda22]</name>
-        <name>windows_intelx86[cuda23]</name>
-        <name>windows_intelx86[cuda32]</name>
-        <name>windows_intelx86[cuda42]</name>
-        <name>windows_intelx86[cuda50]</name>
-        <name>windows_intelx86[cuda_opencl_100]</name>
-        <name>windows_intelx86[opencl_ati5_cat132]</name>
-        <name>windows_intelx86[opencl_ati5_sah]</name>
-        <name>windows_intelx86[opencl_ati_100]</name>
-        <name>windows_intelx86[opencl_ati_cat132]</name>
-        <name>windows_intelx86[opencl_ati_sah]</name>
-        <name>windows_intelx86[opencl_intel_gpu_sah]</name>
-        <name>windows_intelx86[opencl_nvidia_100]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[cuda_opencl_100]</name>
-        <name>x86_64-pc-linux-gnu[opencl_ati5_linux]</name>
-        <name>x86_64-pc-linux-gnu[opencl_ati5_linux_cat132]</name>
-        <name>x86_64-pc-linux-gnu[opencl_ati_100]</name>
-        <name>x86_64-pc-linux-gnu[opencl_ati_linux]</name>
-        <name>x86_64-pc-linux-gnu[opencl_ati_linux_cat132]</name>
-        <name>x86_64-pc-linux-gnu[opencl_nvidia_100]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/seti_logo.png</image>
-    </project>
-    <project>
-        <name>theSkyNet POGS</name>
-        <url>http://pogs.theskynet.org/pogs/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Astronomy</specific_area>
-        <description><![CDATA[We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby Universe. We will measure physical parameters (such as stellar mass surface density, star formation rate surface density, attenuation, and first-order star formation history) on a resolved pixel-by-pixel basis using spectral energy distribution (SED) fitting techniques in a distributed computing mode.]]></description>
-        <home>The International Centre for Radio Astronomy Research (Perth, Australia)</home>
-    <platforms>
-        <name>arm-android-linux-gnu</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/</image>
-    </project>
-    <project>
-        <name>Milkyway at home</name>
-        <url>http://milkyway.cs.rpi.edu/milkyway/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Astronomy</specific_area>
-        <description><![CDATA[The goal of Milkyway at Home is to create a highly accurate three dimensional model of the Milky Way galaxy using data gathered by the Sloan Digital Sky Survey.]]></description>
-        <home>Rensselaer Polytechnic Institute</home>
-    <platforms>
-        <name>amd64-pc-freebsd</name>
-        <name>amd64-unknown-freebsd</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[ati14]</name>
-        <name>i686-pc-linux-gnu[mt]</name>
-        <name>i686-pc-linux-gnu[opencl_amd_ati]</name>
-        <name>i686-pc-linux-gnu[opencl_nvidia]</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[ati14]</name>
-        <name>windows_intelx86[opencl_amd_ati]</name>
-        <name>windows_intelx86[opencl_nvidia]</name>
-        <name>windows_x86_64</name>
-        <name>windows_x86_64[ati14]</name>
-        <name>windows_x86_64[mt]</name>
-        <name>windows_x86_64[opencl_amd_ati]</name>
-        <name>windows_x86_64[opencl_nvidia]</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-apple-darwin[mt]</name>
-        <name>x86_64-apple-darwin[opencl_amd_ati]</name>
-        <name>x86_64-apple-darwin[opencl_nvidia]</name>
-        <name>x86_64-pc-freebsd</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[ati14]</name>
-        <name>x86_64-pc-linux-gnu[mt]</name>
-        <name>x86_64-pc-linux-gnu[opencl_amd_ati]</name>
-        <name>x86_64-pc-linux-gnu[opencl_nvidia]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/mw.png</image>
-    </project>
-    <project>
-        <name>Cosmology at Home</name>
-        <url>http://www.cosmologyathome.org/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Astronomy</specific_area>
-        <description><![CDATA[The goal of Cosmology at Home is to search for the model that best describes our Universe and to find the range of models that agree with the available astronomical particle physics data.]]></description>
-        <home>University of Illinois at Urbana-Champaign</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/cosmo.jpg</image>
-    </project>
-    <project>
-        <name>LHC at home Test4Theory</name>
-        <url>http://lhcathome2.cern.ch/test4theory/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Physics</specific_area>
-        <description><![CDATA[This project uses CERN-developed virtual machine technology for full-fledged LHC event physics simulation on volunteer computers.  Requires that you install VirtualBox on your computer]]></description>
-        <home>CERN (European Organization for Nuclear Research)</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-apple-darwin[mt]</name>
-        <name>i686-apple-darwin[vbox32]</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[mt]</name>
-        <name>i686-pc-linux-gnu[vbox32]</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[mt]</name>
-        <name>windows_intelx86[vbox32]</name>
-        <name>windows_x86_64</name>
-        <name>windows_x86_64[mt]</name>
-        <name>windows_x86_64[vbox64]</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-apple-darwin[mt]</name>
-        <name>x86_64-apple-darwin[vbox64]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[mt]</name>
-        <name>x86_64-pc-linux-gnu[vbox64]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/t4t.png</image>
-    </project>
-    <project>
-        <name>Leiden Classical</name>
-        <url>http://boinc.gorlaeus.net/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Chemistry</specific_area>
-        <description><![CDATA[Surface science calculations using Classical Dynamics.  Leiden Classical allows volunteers, students and other scientist to submit their personal calculations to the grid. Each user has his own personal queue for Classical Dynamics jobs. In this way students have used the grid to simulate liquid argon, or to test the validity of the ideal gas law by actually doing the simulations through the grid.]]></description>
-        <home>Leiden University, The Netherlands</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-unknown-linux-gnu</name>
-        <name>i686-apple-darwin</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/leiden_classical.png</image>
-    </project>
-    <project>
-        <name>eOn</name>
-        <url>http://eon.ices.utexas.edu/eon2/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Chemistry</specific_area>
-        <description><![CDATA[A common problem in theoretical chemistry, condensed matter physics and materials science is the calculation of the time evolution of an atomic scale system where, for example, chemical reactions and/or diffusion occur. Generally the events of interest are quite rare (many orders of magnitude slower than the vibrational movements of the atoms), and therefore direct simulations, tracking every movement of the atoms, would take thousands of years of computer c [...]
-        <home>University of Texas at Austin</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-    </project>
-    <project>
-        <name>Asteroids at home</name>
-        <url>http://asteroidsathome.net/boinc/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Astrophysics</specific_area>
-        <description><![CDATA[The aim of the project is to derive shapes and spin for a significant part of the asteroid population. As input data, we use any asteroid photometry that is available. The results are asteroid convex shape models with the direction of the spin axis and the rotation period.]]></description>
-        <home>Charles University in Prague</home>
-    <platforms>
-        <name>arm-android-linux-gnu</name>
-        <name>arm-unknown-linux-gnueabihf</name>
-        <name>armv6l-unknown-linux-gnueabihf</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-apple-darwin[sse3_osx]</name>
-        <name>i686-pc-freebsd</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>i686-pc-linux-gnu[avx]</name>
-        <name>i686-pc-linux-gnu[sse2]</name>
-        <name>i686-pc-linux-gnu[sse3]</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[avx]</name>
-        <name>windows_intelx86[cuda55]</name>
-        <name>windows_intelx86[sse2]</name>
-        <name>windows_intelx86[sse3]</name>
-        <name>windows_x86_64</name>
-        <name>windows_x86_64[avx]</name>
-        <name>windows_x86_64[cuda55]</name>
-        <name>windows_x86_64[sse2]</name>
-        <name>windows_x86_64[sse3]</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-apple-darwin[avx_osx]</name>
-        <name>x86_64-apple-darwin[sse3_osx]</name>
-        <name>x86_64-pc-freebsd</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[avx]</name>
-        <name>x86_64-pc-linux-gnu[cuda55]</name>
-        <name>x86_64-pc-linux-gnu[sse2]</name>
-        <name>x86_64-pc-linux-gnu[sse3]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/asteroids_logo.jpg</image>
-    </project>
-    <project>
-        <name>CONVECTOR</name>
-        <url>http://convector.fsv.cvut.cz/</url>
-        <general_area>Physical Science</general_area>
-        <specific_area>Mechanical engineering</specific_area>
-        <description><![CDATA[Currently we are calculating the optimum design of a structure call the 52 bar truss]]></description>
-        <home>Czech Technical University in Prague</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/convector.jpg</image>
-    </project>
-    <project>
-        <name>CAS at home</name>
-        <url>http://casathome.ihep.ac.cn/</url>
-        <general_area>Multiple applications</general_area>
-        <specific_area>Physics, biochemistry, and others</specific_area>
-        <description><![CDATA[The objective of CAS at home is to encourage and assist scientists in China to adopt the technologies of volunteer computing and volunteer thinking for their research.]]></description>
-        <home>Chinese Academy of Sciences</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/cas_at_home.jpg</image>
-    </project>
-    <project>
-        <name>EDGeS at Home</name>
-        <url>http://home.edges-grid.eu/home/</url>
-        <general_area>Multiple applications</general_area>
-        <specific_area>European research projects</specific_area>
-        <description><![CDATA[The EDGeS at Home Beta project integrates volunteer computing into the service grid network of Europe by allowing service grids to send workunits to be processed by the volunteers of this project. The scientific projects covered by the project include math, physics, biology, etc.]]></description>
-        <home>MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)</home>
-    <platforms>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[vbox32]</name>
-        <name>windows_intelx86[vbox64]</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>x86_64-pc-linux-gnu[vbox64]</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/logo_edges.png</image>
-    </project>
-    <project>
-        <name>Ibercivis</name>
-        <url>http://registro.ibercivis.es/</url>
-        <general_area>Multiple applications</general_area>
-        <specific_area>Various Spanish research projects</specific_area>
-        <description><![CDATA[Research in physics, material science, and biomedicine]]></description>
-        <home>Spanish universities and research centers</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[cuda42i]</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/cabecera2.jpg</image>
-    </project>
-    <project>
-        <name>Yoyo at home</name>
-        <url>http://www.rechenkraft.net/yoyo/</url>
-        <general_area>Multiple applications</general_area>
-        <specific_area>Mathematics, physics, evolution</specific_area>
-        <description><![CDATA[Yoyo at home is an adapter between BOINC and several existing volunteer computing projects: ECM, Muon, Evolution at home, and distributed.net]]></description>
-        <home>Private</home>
-    <platforms>
-        <name>arm-android-linux-gnu</name>
-        <name>arm-linux-gnu</name>
-        <name>arm-unknown-linux-gnueabi</name>
-        <name>arm-unknown-linux-gnueabihf</name>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>powerpc64-ps3-linux-gnu</name>
-        <name>sparc-sun-solaris</name>
-        <name>windows_intelx86</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-    </platforms>
-    </project>
-    <project>
-        <name>World Community Grid</name>
-        <url>http://www.worldcommunitygrid.org/</url>
-        <general_area>Multiple applications</general_area>
-        <specific_area>Medical, environmental and other humanitarian research</specific_area>
-        <description><![CDATA[To further critical non-profit research on some of humanity's most pressing problems by creating the world's largest volunteer computing grid.  Research includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, clean water and many more.]]></description>
-        <home>IBM Corporate Citizenship</home>
-    <platforms>
-        <name>i686-apple-darwin</name>
-        <name>i686-pc-linux-gnu</name>
-        <name>powerpc-apple-darwin</name>
-        <name>windows_intelx86</name>
-        <name>windows_intelx86[ati14_opencl]</name>
-        <name>windows_intelx86[cuda_opencl]</name>
-        <name>windows_x86_64</name>
-        <name>x86_64-apple-darwin</name>
-        <name>x86_64-pc-linux-gnu</name>
-        <name>arm-android-linux-gnu</name>
-    </platforms>
-      <image>http://boinc.berkeley.edu/images/wcg.jpg</image>
-    </project>
-   <account_manager>
-        <name>BAM!</name>
-        <url>http://bam.boincstats.com/</url>
-        <description>BAM assists you in creating and managing your BOINC project accounts and helps you with setting preferences, joining or creating teams, connecting your computers to projects, and much more.  Whether you're a new or an existing BOINC user, BAM will help you get the most out of BOINC.</description>
-        <image>http://boinc.berkeley.edu/images/BAM.png</image>
-    </account_manager>
-   <account_manager>
-        <name>GridRepublic</name>
-        <url>http://www.gridrepublic.org/</url>
-        <description>GridRepublic members run a screensaver that allows their computers to work on public-interest research projects when the machines are not otherwise in use. This screensaver does not affect performance of the host computer any more than an ordinary screensaver does.</description>
-        <image>http://boinc.berkeley.edu/images/logo_gridrepublic_vc.gif</image>
-    </account_manager>
-   <account_manager>
-        <name>Extremadura at home</name>
-        <url>http://boinc.unex.es/extremadurathome</url>
-        <description>When you join Extremadura at home, you will contribute computing power to projects selected by the Extremadura at home community and to research projects from the Spanish province of Extremadura.</description>
-        <image>http://boinc.berkeley.edu/images/extremadurathome.jpg</image>
-    </account_manager>
-</projects>
diff --git a/android/BOINC/assets/ca-bundle.crt b/android/BOINC/assets/ca-bundle.crt
deleted file mode 100644
index f123a06..0000000
--- a/android/BOINC/assets/ca-bundle.crt
+++ /dev/null
@@ -1,4059 +0,0 @@
-##
-## ca-bundle.crt -- Bundle of CA Root Certificates
-##
-## Converted at: 1/29/2014 12:18:19 PM
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt).  This file can be found in the mozilla source tree:
-## '/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt'
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-
-# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.87 $ $Date: 2012/12/29 16:32:45 $
-
-GTE CyberTrust Global Root
-==========================
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
-VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
-bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
-b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
-UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
-cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
-b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
-iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
-r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
-04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
-GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
-3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
-lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-
-Thawte Server CA
-================
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
-VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
-MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
-MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
-dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
-cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
-DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
-gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
-yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
-L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
-EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
-7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
-QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
-qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
-Thawte Premium Server CA
-========================
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
-VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
-dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
-MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
-MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
-A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
-b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
-cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
-bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
-VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
-ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
-uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
-9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
-hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
-pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
-MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
-dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
-BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
-cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
-MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
-aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
-ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
-IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
-1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 1
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJV
-UzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQL
-EwhEU1RDQSBFMTAeFw05ODEyMTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJ
-BgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4x
-ETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCg
-bIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJENySZ
-j9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlV
-Sn5JTe2io74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCG
-SAGG+EIBAQQEAwIABzBoBgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMx
-JDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMI
-RFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMTAxODEw
-MjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFGp5
-fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i
-+DAMBgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqG
-SIb3DQEBBQUAA4GBACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lN
-QseSJqBcNJo4cvj9axY+IO6CizEqkzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+
-gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4RbyhkwS7hp86W0N6w4pl
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 3
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJV
-UzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQL
-EwhEU1RDQSBFMjAeFw05ODEyMDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJ
-BgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4x
-ETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQC/
-k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGODVvso
-LeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3o
-TQPMx7JSxhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCG
-SAGG+EIBAQQEAwIABzBoBgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMx
-JDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMI
-RFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMDkxOTE3
-MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFB6C
-TShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5
-WzAMBgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqG
-SIb3DQEBBQUAA4GBAEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHR
-xdf0CiUPPXiBng+xZ8SQTGPdXqfiup/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVL
-B3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1mPnHfxsb1gYgAlihw6ID
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
-lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
-AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
-c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
-MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
-emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
-DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
-FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
-UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
-YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
-MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
-pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
-13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
-AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
-U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
-F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
-oJ2daZH9
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
-A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
-b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
-MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
-YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
-aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
-jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
-xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
-1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
-snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
-U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
-9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
-AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
-yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
-38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
-AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
-DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
-HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-ValiCert Class 1 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy
-NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y
-LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+
-TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y
-TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0
-LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW
-I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw
-nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI
------END CERTIFICATE-----
-
-ValiCert Class 2 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
-NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
-dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
-WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
-v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
-UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
-IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
-W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
------END CERTIFICATE-----
-
-RSA Root Certificate 1
-======================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy
-NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD
-cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs
-2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY
-JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE
-Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ
-n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
-PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
-N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
-KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
-kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
-CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
-Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
-imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
-2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
-DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
-F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
-TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
-GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
-+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
-U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
-NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
-ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
-ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
-CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
-g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
-2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
-bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Secure Server CA
-============================
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
-VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
-ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
-KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
-ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
-MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
-ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
-b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
-U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
-I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
-wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
-AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
-oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
-BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
-dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
-MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
-MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
-E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
-MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
-hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
-95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
-2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
-RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
-IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy
-MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
-LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
-YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
-A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
-sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
-MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
-XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
-HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
-4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA
-vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G
-CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA
-WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
-oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ
-h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18
-f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN
-B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy
-vUxFnmG6v4SBkgPR0ml8xQ==
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
-RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
-VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
-DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
-ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
-VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
-mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
-IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
-mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
-XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
-dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
-jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
-BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
-DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
-9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
-jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
-Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
-ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
-R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
-ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
-MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
-dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
-c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
-UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
-58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
-o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
-MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
-aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
-A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
-Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
-8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 1
-=============================
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
-ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
-MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
-LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
-RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
-WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
-Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
-AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
-eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
-zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
-WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
-/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 2
-=============================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
-dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
-NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
-VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
-vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
-BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
-IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
-NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
-y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
-0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
-E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
-MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
-VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
-CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
-tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
-dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
-PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
-+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
-BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
-MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
-ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
-7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
-43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
-pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
-WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
-MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
-ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
-BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
-6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
-GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
-dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
-1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
-62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
-BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
-MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
-cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
-b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
-IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
-iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
-4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
-XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
-MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
-EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
-BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
-xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
-87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
-2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
-WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
-0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
-A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
-pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
-ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
-aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
-hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
-hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
-P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
-iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
-xqE=
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
-Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
-KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
-NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
-NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
-ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
-BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
-Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
-4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
-KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
-rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
-94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
-sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
-gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
-kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
-vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
-O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
-AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
-9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
-eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
-0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6
-MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp
-dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX
-BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy
-MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp
-eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg
-/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl
-wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh
-AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2
-PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu
-AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR
-MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc
-HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/
-Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
-f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO
-rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch
-6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3
-7CAFYd4=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
-IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
-R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
-PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
-Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
-TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
-5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
-S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
-2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
-EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
-EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
-/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
-A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
-abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
-I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
-4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
-IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
-VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
-cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
-QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
-F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
-c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
-mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
-VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
-teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
-f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
-Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
-nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
-/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
-MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
-9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
-IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
-ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
-uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
-Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
-QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
-koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
-ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
-DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
-bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
-VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
-c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
-WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
-FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
-XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
-se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
-KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
-IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
-y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
-hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
-QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
-Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
-HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
-KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
-L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
-Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
-ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
-T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
-GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
-1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
-OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
-6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
-QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-America Online Root Certification Authority 1
-=============================================
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
-bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
-MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
-ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk
-hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym
-1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW
-OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb
-2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko
-O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU
-AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
-BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
-Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb
-LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir
-oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C
-MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
-sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
-
-America Online Root Certification Authority 2
-=============================================
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
-bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2
-MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
-ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC
-206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci
-KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2
-JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9
-BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e
-Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B
-PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67
-Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq
-Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
-o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3
-+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj
-YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj
-FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn
-xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2
-LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc
-obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8
-CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe
-IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA
-DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F
-AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX
-Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb
-AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl
-Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
-RY8mkaKO/qk=
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr
-MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl
-cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw
-CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h
-dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l
-cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h
-2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E
-lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV
-ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq
-299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t
-vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL
-dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
-AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF
-AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
-zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3
-LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd
-7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw
-++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
-jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
-ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
-ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
-Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
-AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
-HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
-uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
-TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
-xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
-CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
-O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
-6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
-YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
-GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
-BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
-3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
-YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
-rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
-ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
-oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
-QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
-b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
-AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
-GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
-G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
-l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
-smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp
-ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow
-fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV
-BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM
-cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S
-HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996
-CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk
-3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz
-6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV
-HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
-Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw
-Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
-DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0
-5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI
-gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ
-aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl
-izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0
-aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla
-MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
-BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD
-VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW
-fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt
-TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL
-fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW
-1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7
-kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G
-A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
-ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo
-dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu
-Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/
-HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS
-jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+
-xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn
-dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
-MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
-IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
-dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
-li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
-rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
-WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
-F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
-xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
-Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
-dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
-IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
-c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
-ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
-KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
-KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
-y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
-dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
-VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
-fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
-7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
-cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
-mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
-SnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
-GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
-Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
-WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
-rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
-+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
-ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
-Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
-PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
-/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
-oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
-yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
-EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
-A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
-MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
-BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
-g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
-fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
-WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
-B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
-hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
-TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
-mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
-ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
-4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
-8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
-V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
-4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
-H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
-8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
-vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
-mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
-btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
-T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
-WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
-c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
-4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
-VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
-CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
-aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
-dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
-czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
-A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
-Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
-7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
-d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
-+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
-4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
-t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
-DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
-k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
-zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
-Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
-mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
-4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
-MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
-dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
-WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
-VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
-9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
-DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
-Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
-QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
-xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
-A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
-kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
-Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
-Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
-JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
-RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
-MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx
-MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV
-BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o
-Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt
-5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s
-3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej
-vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu
-8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw
-DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG
-MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil
-zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/
-3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD
-FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
-Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2
-ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
-TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
-MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
-ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
-ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
-9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
-hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
-tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
-BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
-SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
-OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
-cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
-7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
-/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
-eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
-u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
-7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-TDC Internet Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJE
-SzEVMBMGA1UEChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQg
-Um9vdCBDQTAeFw0wMTA0MDUxNjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNV
-BAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJuZXQxHTAbBgNVBAsTFFREQyBJbnRl
-cm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxLhA
-vJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20jxsNu
-Zp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a
-0vnRrEvLznWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc1
-4izbSysseLlJ28TQx5yc5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGN
-eGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcD
-R0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZIAYb4QgEBBAQDAgAHMGUG
-A1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMMVERDIElu
-dGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxME
-Q1JMMTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3
-WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAw
-HQYDVR0OBBYEFGxkAcf9hW2syNqeUAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJ
-KoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQBO
-Q8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540mgwV5dOy0uaOX
-wTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
-2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm89
-9qNLPg7kbWzbO0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0
-jUNAE4z9mQNUecYu6oah9jrUCbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38
-aQNiuJkFBT1reBK9sG9l
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB
-kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
-IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG
-EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
-VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu
-dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6
-E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ
-D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK
-4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq
-lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW
-bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB
-o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
-MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js
-LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr
-BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB
-AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj
-j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH
-KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
-2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
-mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
-lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
-SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
-A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
-MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
-d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
-cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
-0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
-M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
-MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
-oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
-DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
-oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
-dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
-bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
-BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
-CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
-CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
-3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
-KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg
-b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa
-MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB
-ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw
-IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B
-AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb
-unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d
-BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq
-7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3
-0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX
-roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG
-A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j
-aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p
-26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA
-BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud
-EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN
-BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB
-AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd
-p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi
-1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc
-XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0
-eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu
-tGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo
-YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9
-MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy
-NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G
-A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA
-A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0
-Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s
-QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV
-eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795
-B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh
-z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T
-AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i
-ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w
-TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH
-MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD
-VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE
-VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B
-AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM
-bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi
-ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG
-VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c
-ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/
-AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhV
-MRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMe
-TmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0
-dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBB
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oXDTE5MDIxOTIzMTQ0
-N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhC
-dWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQu
-MRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBL
-b3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiD
-zl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi
-3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8
-WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LY
-Oph7tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2Esi
-NCubMvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC
-ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4
-QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEgRXplbiB0
-YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRhdGFz
-aSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtm
-ZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMg
-ZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVs
-amFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRv
-IGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3
-Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6
-ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1
-YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3Qg
-dG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRs
-b2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G
-CSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO
-xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoUMaFP
-0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQ
-QeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxk
-f1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK
-8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-NetLock Business (Class B) Root
-===============================
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUx
-ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
-b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQD
-EylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikgVGFudXNpdHZhbnlraWFkbzAeFw05
-OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYDVQQGEwJIVTERMA8G
-A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh
-Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5l
-dExvY2sgVXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqG
-SIb3DQEBAQUAA4GNADCBiQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xK
-gZjupNTKihe5In+DCnVMm8Bp2GQ5o+2So/1bXHQawEfKOml2mrriRBf8TKPV/riX
-iK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr1nGTLbO/CVRY7QbrqHvc
-Q7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8E
-BAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1G
-SUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFu
-b3MgU3pvbGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBh
-bGFwamFuIGtlc3p1bHQuIEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExv
-Y2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGln
-aXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0
-IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGph
-biBhIGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJo
-ZXRvIGF6IGVsbGVub3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBP
-UlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmlj
-YXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNA
-bmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06
-sPgzTEdM43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXa
-n3BukxowOR0w2y7jfLKRstE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKS
-NitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
-
-NetLock Express (Class C) Root
-==============================
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUx
-ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
-b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQD
-EytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBDKSBUYW51c2l0dmFueWtpYWRvMB4X
-DTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJBgNVBAYTAkhVMREw
-DwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9u
-c2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMr
-TmV0TG9jayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzAN
-BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNA
-OoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3ZW3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC
-2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63euyucYT2BDMIJTLrdKwW
-RMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQwDgYDVR0P
-AQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEW
-ggJNRklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0
-YWxhbm9zIFN6b2xnYWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFz
-b2sgYWxhcGphbiBrZXN6dWx0LiBBIGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBO
-ZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1iaXp0b3NpdGFzYSB2ZWRpLiBB
-IGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0ZWxlIGF6IGVs
-b2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25s
-YXBqYW4gYSBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kg
-a2VyaGV0byBheiBlbGxlbm9yemVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4g
-SU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5kIHRoZSB1c2Ugb2YgdGhpcyBjZXJ0
-aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQUyBhdmFpbGFibGUg
-YXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwgYXQg
-Y3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmY
-ta3UzbM2xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2g
-pO0u9f38vf5NNwgMvOOWgyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4
-Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
-gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
-MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
-UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
-NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
-dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
-dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
-38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
-KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
-DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
-qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
-JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
-PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
-BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
-jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
-eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
-vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
-IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
-i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
-O+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
-MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
-YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
-MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
-ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
-MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
-ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
-PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
-wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
-EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
-avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
-YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
-sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
-/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
-IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
-OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
-TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
-dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
-ReYNnyicsbkqWletNw+vHX/bvZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
-MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
-U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
-NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
-ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
-ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
-DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
-8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
-+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
-X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
-K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
-1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
-A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
-zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
-YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
-bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
-DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
-L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
-eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
-VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
-WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
-ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
-LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
-BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
-dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
-cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
-YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
-dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
-bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
-YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
-TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
-9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
-jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
-FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
-ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
-ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
-EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
-L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
-O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
-um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
-NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
-MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
-PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
-AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
-IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
-gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
-yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
-F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
-jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
-ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
-VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
-YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
-EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
-Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
-DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
-MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
-UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
-qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
-ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
-JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
-hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
-EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
-nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
-udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
-ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
-LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
-pYYsfPQS
------END CERTIFICATE-----
-
-Firmaprofesional Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMx
-IjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1
-dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20w
-HhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTELMAkGA1UEBhMCRVMx
-IjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1
-dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20w
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5u
-Cp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5Vj1H5WuretXDE7aTt/6MNbg9kUDGvASdY
-rv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJHlShbz++AbOCQl4oBPB3z
-hxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf3H5idPay
-BQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcL
-iam8NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcb
-AgMBAAGjgZ8wgZwwKgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lv
-bmFsLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0
-MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
-FgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQADggEBAEdz/o0n
-VPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq
-u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36m
-hoEyIwOdyPdfwUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzfl
-ZKG+TQyTmAyX9odtsz/ny4Cm7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBp
-QWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YGVM+h4k0460tQtcsm9MracEpqoeJ5
-quGnM/b9Sh/22WA=
------END CERTIFICATE-----
-
-Wells Fargo Root CA
-===================
------BEGIN CERTIFICATE-----
-MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMC
-VVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9v
-dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDAxMDExMTY0MTI4WhcNMjEwMTE0
-MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSww
-KgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0G
-A1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n13
-5zHCLielTWi5MbqNQ1mXx3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHE
-SxP9cMIlrCL1dQu3U+SlK93OvRw6esP3E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4O
-JgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5OEL8pahbSCOz6+MlsoCu
-ltQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4jsNtlAHCE
-AQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMB
-AAGjYTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcB
-CzAyMDAGCCsGAQUFBwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRw
-b2xpY3kwDQYJKoZIhvcNAQEFBQADggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo
-7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrvm+0fazbuSCUlFLZWohDo7qd/
-0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0ROhPs7fpvcmR7
-nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
-x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ
-33ZwmVxwQ023tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk
-MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
-YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
-Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT
-AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
-Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9
-m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih
-FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/
-TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F
-EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco
-kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu
-HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF
-vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo
-19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC
-L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW
-bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX
-JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
-FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc
-K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf
-ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik
-Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB
-sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e
-3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR
-ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip
-mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH
-b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf
-rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms
-hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y
-zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6
-MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
-JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
-mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
-wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
-VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
-AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
-AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
-BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
-pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
-dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
-fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
-NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
-H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
-QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
-MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
-b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
-CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
-nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
-43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
-T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
-gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
-BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
-TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
-DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
-hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
-06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
-PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
-YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
-ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
-LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
-RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
-+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
-PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
-xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
-Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
-hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
-EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
-FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
-nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
-eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
-hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
-Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
-+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw
-PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz
-cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9
-MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz
-IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ
-ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR
-VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL
-kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd
-EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas
-H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0
-HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud
-DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4
-QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu
-Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/
-AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8
-yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR
-FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA
-ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB
-kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
-MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
-DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
-PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
-Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
-rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
-OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
-xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
-7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
-aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
-SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
-ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
-AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
-R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
-JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
-Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBb
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qx
-ETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0w
-MzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNVBAYTAlVTMSAwHgYD
-VQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UECxMIRFNUIEFDRVMx
-FzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPu
-ktKe1jzIDZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7
-gLFViYsx+tC3dr5BPTCapCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZH
-fAjIgrrep4c9oW24MFbCswKBXy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4a
-ahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEIT
-ajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rk
-c3QuY29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjto
-dHRwOi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt
-aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZI
-hvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99Pe7lv7Uk
-QIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6tFr8hlxCBPeP/
-h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpR
-rscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf2
-9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGDAJUUjEPMA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykg
-MjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8
-dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMxMDI3MTdaFw0xNTAz
-MjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2Vy
-dGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYD
-VQQHDAZBTktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kg
-xLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEu
-xZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7
-XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GXyGl8hMW0kWxsE2qkVa2k
-heiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8iSi9BB35J
-YbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5C
-urKZ8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1
-JuTm5Rh8i27fbMx4W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51
-b0dewQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV
-9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46sWrv7/hg0Uw2ZkUd82YCdAR7
-kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxEq8Sn5RTOPEFh
-fEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdA
-aLX/7KfS0zgYnNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKS
-RGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcNMDUxMTA3MTAwNzU3
-WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVrdHJv
-bmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJU
-UjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSw
-bGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWe
-LiAoYykgS2FzxLFtIDIwMDUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqeLCDe2JAOCtFp0if7qnef
-J1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKIx+XlZEdh
-R3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJ
-Qv2gQrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGX
-JHpsmxcPbe9TmJEr5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1p
-zpwACPI2/z7woQ8arBT9pmAPAgMBAAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58S
-Fq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
-KoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/nttRbj2hWyfIvwq
-ECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFz
-gw2lGh1uEpJ+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotH
-uFEJjOp9zYhys2AzsfAKRO8P9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LS
-y3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
-BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
-biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
-MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
-d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
-CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
-76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
-bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
-6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
-emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
-MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
-MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
-MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
-FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
-aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
-gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
-qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
-lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
-8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
-45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
-UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
-O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
-bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
-GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
-77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
-hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
-92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
-Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
-ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
-Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
-BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
-IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
-RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
-U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
-Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
-YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
-nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
-6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
-eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
-c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
-MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
-HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
-jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
-5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
-rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
-F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
-wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
-AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
-WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
-xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
-2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
-IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
-aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
-em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
-dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
-OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
-hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
-tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
-MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
-R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
-MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
-AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
-ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
-7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
-kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
-mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
-KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
-6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
-4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
-oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
-UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
-AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
-qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
-BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
-NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
-LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
-A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
-W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
-3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
-6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
-Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
-NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
-r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
-DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
-YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
-/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
-LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
-jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
-ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
-nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
-t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
-SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
-BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
-rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
-NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
-BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
-BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
-MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
-p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
-5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
-WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
-4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
-hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
-MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
-cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
-Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
-0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
-wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
-7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
-8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
-BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
-/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
-JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
-NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
-6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
-3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
-D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
-CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
-MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
-Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
-iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
-/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
-jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
-HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
-sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
-gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
-KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
-AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
-URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
-H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
-I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
-iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
-gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
-BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
-MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
-YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
-RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
-UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
-2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
-Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
-+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
-DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
-nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
-/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
-PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
-QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
-SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
-IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
-zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
-BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
-ZQ==
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi
-MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
-UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
-ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
-c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
-OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
-mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
-BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
-qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw
-gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu
-bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp
-dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8
-6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
-h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
-/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
-pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMx
-IDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxs
-cyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9v
-dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcxMjEzMTcwNzU0WhcNMjIxMjE0
-MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdl
-bGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQD
-DC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+r
-WxxTkqxtnt3CxC5FlAM1iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjU
-Dk/41itMpBb570OYj7OeUt9tkTmPOL13i0Nj67eT/DBMHAGTthP796EfvyXhdDcs
-HqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8bJVhHlfXBIEyg1J55oNj
-z7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiBK0HmOFaf
-SZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/Slwxl
-AgMBAAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqG
-KGh0dHA6Ly9jcmwucGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0P
-AQH/BAQDAgHGMB0GA1UdDgQWBBQmlRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0j
-BIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGBi6SBiDCBhTELMAkGA1UEBhMC
-VVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNX
-ZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEB
-ALkVsUSRzCPIK0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd
-/ZDJPHV3V3p9+N701NX3leZ0bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pB
-A4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSljqHyita04pO2t/caaH/+Xc/77szWn
-k4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+esE2fDbbFwRnzVlhE9
-iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJtylv
-2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-COMODO ECC Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
-IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
-MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
-ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
-T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
-FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
-cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
-BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
-fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
-GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-IGC/A
-=====
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT
-AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ
-TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG
-9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw
-MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM
-BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO
-MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2
-LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI
-s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2
-xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4
-u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b
-F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx
-Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd
-PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV
-HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx
-NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF
-AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ
-L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY
-YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a
-NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R
-0982gaEbeC9xs/FZTEYYKKuF0mBWWg==
------END CERTIFICATE-----
-
-Security Communication EV RootCA1
-=================================
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz
-MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N
-IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11
-bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE
-RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO
-zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5
-bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF
-MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1
-VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC
-OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW
-tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ
-q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb
-EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+
-Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O
-VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-OISTE WISeKey Global Root GA CA
-===============================
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
-ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
-aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
-ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
-NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
-A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
-VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
-SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
-VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
-w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
-mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
-4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
-4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
-EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
-SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
-ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
-vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
-Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
-/L7fCg0=
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA
-=========================
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw
-cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy
-b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z
-ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4
-NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN
-TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p
-Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u
-uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+
-LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA
-vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770
-Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx
-62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB
-AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw
-LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP
-BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB
-AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov
-MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5
-ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT
-AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh
-ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo
-AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa
-AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln
-bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p
-Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP
-PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv
-Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB
-EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu
-w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj
-cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV
-HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI
-VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS
-BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS
-b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS
-8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds
-ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl
-7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR
-hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/
-MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-Certigna
-========
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
-BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
-DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
-BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
-QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
-gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
-zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
-130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
-JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
-ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
-AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
-AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
-9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
-bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
-fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
-HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
-t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
-======================================
------BEGIN CERTIFICATE-----
-MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsx
-CzAJBgNVBAYTAkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRp
-ZmljYWNpw7NuIERpZ2l0YWwgLSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwa
-QUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4wHhcNMDYxMTI3MjA0NjI5WhcNMzAw
-NDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2Ft
-ZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMu
-QS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkq
-hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeG
-qentLhM0R7LQcNzJPNCNyu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzL
-fDe3fezTf3MZsGqy2IiKLUV0qPezuMDU2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQ
-Y5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU34ojC2I+GdV75LaeHM/J4
-Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP2yYe68yQ
-54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+b
-MMCm8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48j
-ilSH5L887uvDdUhfHjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++Ej
-YfDIJss2yKHzMI+ko6Kh3VOz3vCaMh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/zt
-A/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK5lw1omdMEWux+IBkAC1vImHF
-rEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1bczwmPS9KvqfJ
-pxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCB
-lTCBkgYEVR0gADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFy
-YS5jb20vZHBjLzBaBggrBgEFBQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW50
-7WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2UgcHVlZGVuIGVuY29udHJhciBlbiBs
-YSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEfAygPU3zmpFmps4p6
-xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuXEpBc
-unvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/
-Jre7Ir5v/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dp
-ezy4ydV/NgIlqmjCMRW3MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42
-gzmRkBDI8ck1fj+404HGIGQatlDCIaR43NAvO2STdPCWkPHv+wlaNECW8DYSwaN0
-jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wkeZBWN7PGKX6jD/EpOe9+
-XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f/RWmnkJD
-W2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/
-RL5hRqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35r
-MDOhYil/SrnhLecUIw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxk
-BYn8eNZcLCZDqQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 2 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL
-MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
-BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
-Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1
-OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
-SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc
-VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf
-tMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg
-uNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J
-XjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK
-8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99
-5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3
-kUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
-dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6
-Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
-JTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
-Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS
-GNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt
-ZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8
-au0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV
-hgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI
-dUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 3 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL
-MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
-BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
-Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1
-OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
-SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc
-VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW
-Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q
-Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2
-1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq
-ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1
-Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX
-XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
-dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6
-Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
-JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
-Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN
-irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8
-TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6
-g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB
-95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj
-S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A==
------END CERTIFICATE-----
-
-TC TrustCenter Universal CA I
-=============================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL
-MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV
-BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1
-c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx
-MjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg
-R21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD
-VQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR
-JJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T
-fCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu
-jRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z
-wZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ
-fezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD
-VR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G
-CSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1
-7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn
-8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs
-ydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
-ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/
-2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
------END CERTIFICATE-----
-
-Deutsche Telekom Root CA 2
-==========================
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc
-MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj
-IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB
-IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE
-RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl
-U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290
-IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU
-ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC
-QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr
-rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S
-NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc
-QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH
-txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP
-BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp
-tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
-IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
-6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
-xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-ComSign Secured CA
-==================
------BEGIN CERTIFICATE-----
-MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAw
-PDEbMBkGA1UEAxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWdu
-MQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwx
-GzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBDQTEQMA4GA1UEChMHQ29tU2lnbjEL
-MAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGtWhf
-HZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs49oh
-gHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sW
-v+bznkqH7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ue
-Mv5WJDmyVIRD9YTC2LxBkMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr
-9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d19guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt
-6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUwAwEB/zBEBgNVHR8EPTA7
-MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29tU2lnblNl
-Y3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58
-ADsAj8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkq
-hkiG9w0BAQUFAAOCAQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7p
-iL1DRYHjZiM/EoZNGeQFsOY3wo3aBijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtC
-dsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtpFhpFfTMDZflScZAmlaxMDPWL
-kz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP51qJThRv4zdL
-hfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
-OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
------END CERTIFICATE-----
-
-Cybertrust Global Root
-======================
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
-A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
-bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
-ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
-b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
-7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
-J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
-HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
-t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
-FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
-XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
-MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
-hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
-MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
-A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
-Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
-XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
-omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
-A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-ePKI Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
-MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
-ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
-IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
-SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
-SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
-ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
-DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
-TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
-fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
-sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
-WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
-nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
-dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
-NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
-AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
-MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
-uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
-PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
-JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
-gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
-j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
-5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
-o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
-/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
-Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
-W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
-hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
-=============================================================================================================================
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS
-MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp
-bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw
-VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy
-YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy
-dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe
-Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx
-GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls
-aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU
-QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh
-xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0
-aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr
-IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h
-gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK
-O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO
-fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw
-lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID
-AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP
-NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t
-wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM
-7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh
-gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n
-oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs
-yZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-Buypass Class 2 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg
-Q2xhc3MgMiBDQSAxMB4XDTA2MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzEL
-MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD
-VQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7McXA0
-ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLX
-l18xoS830r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVB
-HfCuuCkslFJgNJQ72uA40Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B
-5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/RuFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3
-WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0PAQH/BAQD
-AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLP
-gcIV1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+
-DKhQ7SLHrQVMdvvt7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKu
-BctN518fV4bVIJwo+28TOPX2EZL2fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHs
-h7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5wwDX3OaJdZtB7WZ+oRxKaJyOk
-LY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-Buypass Class 3 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg
-Q2xhc3MgMyBDQSAxMB4XDTA1MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzEL
-MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD
-VQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKxifZg
-isRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//z
-NIqeKNc0n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI
-+MkcVyzwPX6UvCWThOiaAJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2R
-hzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+
-mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0PAQH/BAQD
-AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFP
-Bdy7pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27s
-EzNxZy5p+qksP2bAEllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2
-mSlf56oBzKwzqBwKu5HEA6BvtjT5htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yC
-e/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQjel/wroQk5PMr+4okoyeYZdow
-dXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
------END CERTIFICATE-----
-
-EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
-==========================================================================
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNV
-BAMML0VCRyBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMTcwNQYDVQQKDC5FQkcgQmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXpt
-ZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAeFw0wNjA4MTcwMDIxMDlaFw0xNjA4
-MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25payBTZXJ0aWZpa2Eg
-SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2ltIFRl
-a25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h
-4fuXd7hxlugTlkaDT7byX3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAk
-tiHq6yOU/im/+4mRDGSaBUorzAzu8T2bgmmkTPiab+ci2hC6X5L8GCcKqKpE+i4s
-tPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfreYteIAbTdgtsApWjluTL
-dlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZTqNGFav4
-c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8Um
-TDGyY5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z
-+kI2sSXFCjEmN1ZnuqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0O
-Lna9XvNRiYuoP1Vzv9s6xiQFlpJIqkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMW
-OeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vmExH8nYQKE3vwO9D8owrXieqW
-fo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0Nokb+Clsi7n2
-l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgw
-FoAU587GT/wWZ5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+
-8ygjdsZs93/mQJ7ANtyVDR2tFcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI
-6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgmzJNSroIBk5DKd8pNSe/iWtkqvTDO
-TLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64kXPBfrAowzIpAoHME
-wfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqTbCmY
-Iai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJn
-xk1Gj7sURT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4Q
-DgZxGhBM/nV+/x5XOULK1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9q
-Kd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11t
-hie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQY9iJSrSq3RZj9W6+YKH4
-7ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9AahH3eU7
-QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-certSIGN ROOT CA
-================
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
-AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
-QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
-MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
-0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
-UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
-RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
-OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
-JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
-AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
-BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
-LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
-MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
-44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
-Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
-i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
-9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-CNNIC ROOT
-==========
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD
-TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2
-MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF
-Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh
-IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6
-dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO
-V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC
-GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN
-v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB
-AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB
-Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO
-76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK
-OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH
-ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi
-yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL
-buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj
-2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE=
------END CERTIFICATE-----
-
-ApplicationCA - Japanese Government
-===================================
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc
-MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp
-b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT
-AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs
-aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H
-j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K
-f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55
-IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw
-FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht
-QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm
-/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ
-k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ
-MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC
-seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ
-hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+
-eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U
-DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj
-B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G3
-=============================================
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
-mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
-MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
-BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
-BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
-+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
-hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
-5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
-JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
-DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
-huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
-HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
-AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
-zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
-kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
-SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
-spki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-thawte Primary Root CA - G2
-===========================
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
-IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
-BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
-MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
-YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
-dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
-BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
-papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
-DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
-KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
-XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-thawte Primary Root CA - G3
-===========================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
-rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
-BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
-Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
-LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
-MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
-gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
-YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
-b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
-9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
-zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
-OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
-HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
-2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
-oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
-KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
-m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
-MdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G2
-=============================================
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
-MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
-KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
-MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
-NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
-BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
-MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
-So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
-tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
-CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
-qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
-rD6ogRLQy7rQkgu2npaqBA+K
------END CERTIFICATE-----
-
-VeriSign Universal Root Certification Authority
-===============================================
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
-vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
-ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
-IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
-IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
-bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
-9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
-H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
-LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
-/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
-rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
-WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
-exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
-sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
-seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
-4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
-BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
-lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
-7M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G4
-============================================================
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
-U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
-SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
-biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
-GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
-fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
-aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
-aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
-kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
-4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
-FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-NetLock Arany (Class Gold) FEtanC:sC-tvC!ny
-============================================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
-EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
-MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
-cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
-dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
-pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
-b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
-IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
-lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
-AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
-VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
-ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
-BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
-AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
-U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
-bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
-+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
-uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
-XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G2
-==================================
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX
-DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291
-qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp
-uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU
-Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE
-pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp
-5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M
-UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN
-GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy
-5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv
-6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK
-eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6
-B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/
-BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov
-L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG
-SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS
-CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen
-5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897
-IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK
-gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL
-+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL
-vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm
-bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk
-N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC
-Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z
-ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==
------END CERTIFICATE-----
-
-CA Disig
-========
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET
-MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE
-AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw
-CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg
-YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE
-Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX
-mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD
-XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW
-S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp
-FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD
-AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu
-ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z
-ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv
-Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw
-DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6
-yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq
-EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB
-EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN
-PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-Juur-SK
-=======
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcN
-AQkBFglwa2lAc2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZp
-dHNlZXJpbWlza2Vza3VzMRAwDgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMw
-MVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMQsw
-CQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEQ
-MA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOB
-SvZiF3tfTQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkz
-ABpTpyHhOEvWgxutr2TC+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvH
-LCu3GFH+4Hv2qEivbDtPL+/40UceJlfwUR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMP
-PbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDaTpxt4brNj3pssAki14sL
-2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQFMAMBAf8w
-ggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwIC
-MIHDHoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDk
-AGwAagBhAHMAdABhAHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0
-AHMAZQBlAHIAaQBtAGkAcwBrAGUAcwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABz
-AGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABrAGkAbgBuAGkAdABhAG0AaQBz
-AGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nwcy8wKwYDVR0f
-BCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcY
-P2/v6X2+MA4GA1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOi
-CfP+JmeaUOTDBS8rNXiRTHyoERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+g
-kcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyLabVAyJRld/JXIWY7zoVAtjNjGr95
-HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678IIbsSt4beDI3poHS
-na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q
-qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z
-TbvGRNs2yyqcjg==
------END CERTIFICATE-----
-
-Hongkong Post Root CA 1
-=======================
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
-FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
-Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
-A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
-b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
-jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
-PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
-ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
-nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
-q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
-MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
-mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
-7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
-oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
-EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
-fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
-AmvZWg==
------END CERTIFICATE-----
-
-SecureSign RootCA11
-===================
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
-MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
-A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
-MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
-Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
-QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
-i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
-h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
-MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
-UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
-8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
-h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
-VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
-AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
-KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
-X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
-QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
-pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
-QSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-ACEDICOM Root
-=============
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE
-AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x
-CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW
-MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF
-RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
-AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7
-09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7
-XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P
-Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK
-t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb
-X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28
-MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU
-fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI
-2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH
-K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae
-ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP
-BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ
-MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw
-RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm
-fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3
-gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe
-I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i
-5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi
-ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn
-MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ
-o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6
-zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN
-GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt
-r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK
-Z05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i
-2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ
-2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
-ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
-OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
-FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
-Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
-kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
-cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
-fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
-N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
-xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
-+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
-Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
-SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
-mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
-ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
-2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
-HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
-===================================================
------BEGIN CERTIFICATE-----
-MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1
-MQswCQYDVQQGEwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxp
-Z2kgQS5TLjE8MDoGA1UEAxMzZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZp
-a2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3MDEwNDExMzI0OFoXDTE3MDEwNDEx
-MzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0cm9uaWsgQmlsZ2kg
-R3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9uaWsg
-U2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdU
-MZTe1RK6UxYC6lhj71vY8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlT
-L/jDj/6z/P2douNffb7tC+Bg62nsM+3YjfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H
-5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAIJjjcJRFHLfO6IxClv7wC
-90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk9Ok0oSy1
-c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoE
-VtstxNulMA0GCSqGSIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLP
-qk/CaOv/gKlR6D1id4k9CnU58W5dF4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S
-/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwqD2fK/A+JYZ1lpTzlvBNbCNvj
-/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4Vwpm+Vganf2X
-KWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
-fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
------END CERTIFICATE-----
-
-GlobalSign Root CA - R3
-=======================
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
------END CERTIFICATE-----
-
-TC TrustCenter Universal CA III
-===============================
------BEGIN CERTIFICATE-----
-MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezEL
-MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV
-BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1
-c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAeFw0wOTA5MDkwODE1MjdaFw0yOTEy
-MzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNUQyBUcnVzdENlbnRl
-ciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0ExKDAm
-BgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF
-5+cvAqBNLaT6hdqbJYUtQCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYv
-DIRlzg9uwliT6CwLOunBjvvya8o84pxOjuT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8v
-zArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+EutCHnNaYlAJ/Uqwa1D7KRT
-yGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1M4BDj5yj
-dipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBh
-MB8GA1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMB
-Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI
-4jANBgkqhkiG9w0BAQUFAAOCAQEAg8ev6n9NCjw5sWi+e22JLumzCecYV42Fmhfz
-dkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+KGwWaODIl0YgoGhnYIg5IFHY
-aAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhKBgePxLcHsU0G
-DeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV
-CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPH
-LQNjO9Po5KIqwoIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==
------END CERTIFICATE-----
-
-Autoridad de Certificacion Firmaprofesional CIF A62634068
-=========================================================
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
-BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
-cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
-MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
-Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
-thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
-cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
-L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
-NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
-X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
-m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
-Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
-EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
-KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
-6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
-OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
-VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
-ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
-AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
-661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
-am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
-ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
-PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
-3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
-SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
-3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
-ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
-StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
-Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
-jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-Izenpe.com
-==========
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4
-MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6
-ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD
-VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j
-b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq
-scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO
-xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H
-LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX
-uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD
-yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+
-JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q
-rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN
-BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L
-hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB
-QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+
-HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu
-Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg
-QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB
-BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA
-A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb
-laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56
-awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo
-JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw
-LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT
-VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk
-LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb
-UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/
-QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+
-naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls
-QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-Chambers of Commerce Root - 2008
-================================
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
-IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
-MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
-dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
-EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
-MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
-28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
-VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
-DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
-5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
-ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
-Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
-UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
-+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
-Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
-hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
-HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
-+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
-YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
-L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
-ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
-IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
-HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
-DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
-PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
-5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
-glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
-FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
-pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
-xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
-tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
-jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
-fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
-d0jQ
------END CERTIFICATE-----
-
-Global Chambersign Root - 2008
-==============================
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
-MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
-cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
-A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
-BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
-KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
-G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
-zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
-ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
-HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
-Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
-yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
-beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
-6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
-zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
-BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
-ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
-ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
-cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
-YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
-CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
-KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
-hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
-UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
-X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
-fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
-a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
-Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
-SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
-AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
-M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
-v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-Go Daddy Root Certificate Authority - G2
-========================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
-EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
-ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
-NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
-EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
-AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
-E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
-/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
-DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
-GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
-tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
-AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
-FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
-WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
-9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
-gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
-2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
-4uJEvlz36hz1
------END CERTIFICATE-----
-
-Starfield Root Certificate Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
-ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
-MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
-aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
-Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
-nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
-HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
-Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
-dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
-HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
-CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
-sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
-4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
-8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
-mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-Starfield Services Root Certificate Authority - G2
-==================================================
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
-ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
-ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
-dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
-OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
-8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
-Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
-hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
-6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
-DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
-AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
-bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
-ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
-qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
-0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
-sSi6
------END CERTIFICATE-----
-
-AffirmTrust Commercial
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
-Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
-ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
-MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
-yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
-VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
-nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
-XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
-vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
-Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
-N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
-nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-AffirmTrust Networking
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
-YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
-kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
-QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
-6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
-yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
-QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
-tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
-QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
-Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
-olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
-x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-AffirmTrust Premium
-===================
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
-dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
-A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
-cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
-qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
-JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
-+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
-s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
-HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
-70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
-V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
-qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
-5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
-C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
-OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
-FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
-KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
-8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
-MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
-0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
-u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
-u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
-YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
-GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
-RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
-KeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-AffirmTrust Premium ECC
-=======================
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
-VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
-cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
-BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
-VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
-0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
-ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
-A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
-aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
-flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
------END CERTIFICATE-----
-
-Certum Trusted Network CA
-=========================
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
-MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
-ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
-cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
-WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
-Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
-IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
-UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
-TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
-BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
-kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
-AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
-HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
-sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
-I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
-J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
-VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-Certinomis - AutoritC) Racine
-=============================
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjET
-MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAk
-BgNVBAMMHUNlcnRpbm9taXMgLSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4
-Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNl
-cnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYwJAYDVQQDDB1DZXJ0
-aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jY
-F1AMnmHawE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N
-8y4oH3DfVS9O7cdxbwlyLu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWe
-rP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K
-/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92NjMD2AR5vpTESOH2VwnHu
-7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9qc1pkIuVC
-28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6
-lSTClrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1E
-nn1So2+WLhl+HPNbxxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB
-0iSVL1N6aaLwD4ZFjliCK0wi1F6g530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql09
-5gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna4NH4+ej9Uji29YnfAgMBAAGj
-WzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQN
-jLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9s
-ov3/4gbIOZ/xWqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZM
-OH8oMDX/nyNTt7buFHAAQCvaR6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q
-619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40nJ+U8/aGH88bc62UeYdocMMzpXDn
-2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1BCxMjidPJC+iKunqj
-o3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjvJL1v
-nxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG
-5ERQL1TEqkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWq
-pdEdnV1j6CTmNhTih60bWfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZb
-dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0
-BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-Root CA Generalitat Valenciana
-==============================
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF
-UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ
-R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN
-MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw
-JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+
-WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj
-SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl
-u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy
-A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk
-Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7
-MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr
-aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC
-IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A
-cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA
-YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA
-bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA
-bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA
-aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA
-ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA
-YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA
-ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA
-LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6
-Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y
-eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw
-CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G
-A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu
-Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn
-lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt
-b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg
-9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF
-ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC
-IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-A-Trust-nQual-03
-================
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJB
-VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
-bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5R
-dWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5RdWFsLTAzMB4XDTA1MDgxNzIyMDAw
-MFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgwRgYDVQQKDD9BLVRy
-dXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0ZW52
-ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMM
-EEEtVHJ1c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCtPWFuA/OQO8BBC4SAzewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUj
-lUC5B3ilJfYKvUWG6Nm9wASOhURh73+nyfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZ
-znF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPESU7l0+m0iKsMrmKS1GWH
-2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4iHQF63n1
-k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs
-2e3Vcuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYD
-VR0OBAoECERqlWdVeRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAVdRU0VlIXLOThaq/Yy/kgM40ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fG
-KOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmrsQd7TZjTXLDR8KdCoLXEjq/+
-8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZdJXDRZslo+S4R
-FGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmE
-DNuxUCAKGkq6ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-TWCA Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
-MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
-V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
-WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
-LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
-AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
-K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
-RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
-rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
-3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
-hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
-MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
-XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
-lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
-aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
-YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-Security Communication RootCA2
-==============================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
-DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
-dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
-YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
-OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
-zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
-VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
-hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
-ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
-awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
-OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
-DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
-coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
-okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
-t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
-1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
-SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-EC-ACC
-======
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB
-8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy
-dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1
-YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3
-dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh
-IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD
-LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG
-EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g
-KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD
-ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu
-bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg
-ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R
-85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm
-4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV
-HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd
-QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t
-lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB
-o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4
-opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo
-dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW
-ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN
-AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y
-/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k
-SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy
-Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS
-Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl
-nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI=
------END CERTIFICATE-----
-
-Hellenic Academic and Research Institutions RootCA 2011
-=======================================================
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
-RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
-dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
-YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
-NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
-EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
-cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
-c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
-dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
-fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
-bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
-75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
-FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
-HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
-5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
-b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
-A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
-6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
-dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
-Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
-l7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-Actalis Authentication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
-BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
-MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
-SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
-ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
-UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
-4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
-KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
-gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
-rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
-51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
-be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
-KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
-v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
-fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
-jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
-ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
-e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
-jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
-WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
-SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
-pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
-X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
-fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
-K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
-ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
-LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
-LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-Trustis FPS Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF
-MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL
-ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx
-MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc
-MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+
-AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH
-iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj
-vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA
-0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB
-OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/
-BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E
-FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01
-GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW
-zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4
-1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE
-f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F
-jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN
-ZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
-F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
-ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
-ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
-aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
-YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
-c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
-d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
-CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
-wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
-Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
-0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
-pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
-CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
-P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
-1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
-KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
-8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
-fyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-StartCom Certification Authority G2
-===================================
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
-OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
-A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
-JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
-vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
-D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
-Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
-RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
-HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
-nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
-0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
-UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
-Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
-TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
-BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
-UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
-6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
-9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
-HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
-wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
-XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
-IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
-hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
-so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-Buypass Class 2 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
-6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
-L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
-1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
-MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
-QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
-arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
-Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
-FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
-P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
-9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
-uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
-9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
-OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
-+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
-KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
-DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
-H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
-I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
-5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
-3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
-Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
------END CERTIFICATE-----
-
-Buypass Class 3 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
-ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
-N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
-tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
-0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
-/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
-KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
-zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
-O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
-34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
-K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
-Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
-QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
-IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
-HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
-O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
-033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
-dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
-kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
-3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
-u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
-4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 3
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
-KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
-BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
-YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1
-OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
-aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
-ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN
-8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/
-RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4
-hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5
-ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM
-EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj
-QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1
-A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy
-WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
-1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
-6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
-91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
-TpPDpFQUWw==
------END CERTIFICATE-----
-
-EE Certification Centre Root CA
-===============================
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
-MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
-czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
-CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
-MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
-ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
-b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
-euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
-bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
-WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
-MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
-1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
-zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
-BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
-BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
-v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
-E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
-iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
-GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
------END CERTIFICATE-----
-
diff --git a/android/BOINC/build.gradle b/android/BOINC/build.gradle
new file mode 100644
index 0000000..e7e3c60
--- /dev/null
+++ b/android/BOINC/build.gradle
@@ -0,0 +1,15 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+    repositories {
+        jcenter()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:2.2.2'
+    }
+}
+
+allprojects {
+    repositories {
+        jcenter()
+    }
+}
diff --git a/android/BOINC/gradle/wrapper/gradle-wrapper.jar b/android/BOINC/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/android/BOINC/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/android/BOINC/gradle/wrapper/gradle-wrapper.properties b/android/BOINC/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..04e285f
--- /dev/null
+++ b/android/BOINC/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Dec 28 10:00:20 PST 2015
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
diff --git a/android/BOINC/gradlew b/android/BOINC/gradlew
new file mode 100755
index 0000000..9d82f78
--- /dev/null
+++ b/android/BOINC/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/android/BOINC/gradlew.bat b/android/BOINC/gradlew.bat
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ b/android/BOINC/gradlew.bat
@@ -0,0 +1,90 @@
+ at if "%DEBUG%" == "" @echo off
+ at rem ##########################################################################
+ at rem
+ at rem  Gradle startup script for Windows
+ at rem
+ at rem ##########################################################################
+
+ at rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+ at rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+ at rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+ at rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+ at rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+ at rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+ at rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+ at rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+ at rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/android/BOINC/lint.xml b/android/BOINC/lint.xml
deleted file mode 100644
index a846461..0000000
--- a/android/BOINC/lint.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<lint>
-    <issue id="MissingTranslation" severity="ignore" />
-</lint>
\ No newline at end of file
diff --git a/android/BOINC/proguard-project.txt b/android/BOINC/proguard-project.txt
deleted file mode 100644
index f2fe155..0000000
--- a/android/BOINC/proguard-project.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# To enable ProGuard in your project, edit project.properties
-# to define the proguard.config property as described in that file.
-#
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in ${sdk.dir}/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the ProGuard
-# include property in project.properties.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
diff --git a/android/BOINC/project.properties b/android/BOINC/project.properties
deleted file mode 100644
index a61c9a3..0000000
--- a/android/BOINC/project.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system edit
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-#
-# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
-#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
-
-# Project target.
-target=android-19
-android.library.reference.1=../../../../tools/android-sdk/extras/android/support/v7/appcompat
diff --git a/android/BOINC/res/layout/projects_layout_listitem.xml b/android/BOINC/res/layout/projects_layout_listitem.xml
deleted file mode 100644
index ee12cb2..0000000
--- a/android/BOINC/res/layout/projects_layout_listitem.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  This file is part of BOINC.
-  http://boinc.berkeley.edu
-  Copyright (C) 2012 University of California
-  
-  BOINC is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License
-  as published by the Free Software Foundation,
-  either version 3 of the License, or (at your option) any later version.
-  
-  BOINC is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the GNU Lesser General Public License for more details.
-  
-  You should have received a copy of the GNU Lesser General Public License
-  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/projectsRow"
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content"
-    android:orientation="horizontal"
-    android:clickable="true">
-
-    <RelativeLayout 
-        android:id="@+id/icon_background"
-    	android:layout_width="60dp"
-    	android:layout_height="match_parent"
-    	android:minHeight="60dp"
-        android:background="@android:color/transparent">    
-	    <ImageView 
-	        android:id="@+id/project_icon"
-	        android:layout_width="48dp"
-	        android:layout_height="48dp"
-	        android:scaleType="fitCenter"
-		    android:contentDescription="@string/projects_icon"
-	    	android:layout_centerInParent="true" />
-    </RelativeLayout>
-        
-    <LinearLayout 
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:layout_margin="3dp">
-        
-	    <TextView
-	        android:id="@+id/project_name"
-	        android:layout_width="wrap_content"
-	        android:layout_height="wrap_content"
-	        android:textStyle="bold"
-	        android:singleLine="true"
-	        android:textAppearance="?android:attr/textAppearanceLarge" />
-        
-	    <TextView
-	        android:id="@+id/project_user"
-	        android:layout_width="wrap_content"
-	        android:layout_height="wrap_content"
-	        android:textColor="@color/dark_grey"
-	        android:textAppearance="?android:attr/textAppearanceMedium"
-	        android:layout_marginBottom="5dp" />
-	    
-	    <TextView 
-	   		android:layout_width="wrap_content"
-		    android:id="@+id/project_notice"
-	   		android:layout_height="wrap_content"
-	   		android:textAppearance="?android:attr/textAppearanceSmall"
-	   		android:background="@drawable/shape_yellow_background"
-	   		android:textColor="@color/black"
-	   		android:textStyle="bold"
-	   		android:padding="3dip"
-	   		android:layout_marginBottom="5dip"
-	   		android:visibility="gone"/>
-        
-	    <TextView
-	        android:id="@+id/project_status"
-	        android:layout_width="wrap_content"
-	        android:layout_height="wrap_content"
-	        android:textColor="@color/dark_grey"
-	        android:textAppearance="?android:attr/textAppearanceSmall" />
-        
-	    <TextView
-	        android:id="@+id/project_transfers"
-	        android:layout_width="wrap_content"
-	        android:layout_height="wrap_content"
-	        android:textColor="@color/dark_grey"
-	        android:textAppearance="?android:attr/textAppearanceSmall"
-	        android:visibility="gone" />
-	    
-	    <TextView 
-	   		android:layout_width="wrap_content"
-		    android:id="@+id/project_credits"
-	   		android:layout_height="wrap_content"
-	   		android:text="@string/projects_credits_header"
-	   		android:textAppearance="?android:attr/textAppearanceSmall"
-	   		android:textColor="@color/dark_grey"/>
-    </LinearLayout>
-</LinearLayout>
diff --git a/android/BOINC/res/values-bg/strings.xml b/android/BOINC/res/values-bg/strings.xml
deleted file mode 100644
index 666a22a..0000000
--- a/android/BOINC/res/values-bg/strings.xml
+++ /dev/null
@@ -1,244 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-  <string name="app_name">BOINC</string>
-  <string name="generic_loading">Зареждане! Моля изчакайте…</string>
-  <string name="attachproject_list_header">Изброете проект:</string>
-  <string name="attachproject_list_manual_button">Добавете проект с URL</string>
-  <string name="attachproject_list_manual_dialog_title">Добавете URL на проекта:</string>
-  <string name="attachproject_list_manual_dialog_button">Добавете проект</string>
-  <string name="attachproject_list_manual_no_url">Моля въведете URL на проекта</string>
-  <string name="attachproject_list_no_internet">Няма връзка с Интернет</string>
-  <string name="attachproject_login_loading">Свързване със сървъра на проекта…</string>
-  <string name="attachproject_login_image_description">Лого на проекта.</string>
-  <string name="attachproject_login_header_general_area">Основна област:</string>
-  <string name="attachproject_login_header_specific_area">Специфична област:</string>
-  <string name="attachproject_login_header_description">Описание:</string>
-  <string name="attachproject_login_header_home">Вкъщи:</string>
-  <string name="attachproject_login_header_url">Интернет страница:</string>
-  <string name="attachproject_login_header_platform">Андроид:</string>
-  <string name="attachproject_login_platform_supported">Този проект поддържа Андроид устройства</string>
-  <string name="attachproject_login_platform_not_supported">Този проект не поддържа Андроид устройства</string>
-  <string name="attachproject_login_category_terms_of_use">Условия за използване на</string>
-  <string name="attachproject_login_accept_terms_of_use">Със създаването на акаунт в този проект, Вие се съгласявате с условията за използване както е посочено по-горе.</string>
-  <string name="attachproject_login_category_login">Впишете се със съществуващ акаунт</string>
-  <string name="attachproject_login_header_id_email">Имейл:</string>
-  <string name="attachproject_login_header_id_name">Име:</string>
-  <string name="attachproject_login_header_pwd">Парола:</string>
-  <string name="attachproject_login_category_creation">Нов за</string>
-  <string name="attachproject_login_header_creation_enabled">Регистрирайте акаунт за да участвате:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Посетете интернет страницата на проекта за да създадете акаунт:</string>
-  <string name="attachproject_login_header_creation_disabled">Проекта в момента не позволява създаването на нови акаунти!</string>
-  <string name="attachproject_login_button_registration">Регистрирайте се</string>
-  <string name="attachproject_login_button_login">Впишете се</string>
-  <string name="attachproject_login_button_forgotpw">Забравили сте Парола</string>
-  <string name="attachproject_login_error_toast">Свързването с проекта се провали!</string>
-  <string name="attachproject_login_attached">Прикрепен</string>
-  <string name="attachproject_registration_header">Регистрация на акаунта за</string>
-  <string name="attachproject_registration_header_url">Проект:</string>
-  <string name="attachproject_registration_header_email">Имейл:</string>
-  <string name="attachproject_registration_header_username">Име:</string>
-  <string name="attachproject_registration_header_teamname">Отбор:</string>
-  <string name="attachproject_registration_header_pwd">Парола:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Напишете отново:</string>
-  <string name="attachproject_registration_button">Създай</string>
-  <string name="attachproject_error_wrong_name">Не е намерен потребител</string>
-  <string name="attachproject_error_short_pwd">Паролата е твърде къса</string>
-  <string name="attachproject_error_no_internet">Връзката не е успешна</string>
-  <string name="attachproject_error_pwd_no_match">Паролите не съвпадат</string>
-  <string name="attachproject_error_no_email">Моля въведете Имейл адрес</string>
-  <string name="attachproject_error_no_pwd">Моля въведете парола</string>
-  <string name="attachproject_error_no_name">Моля въведете потребителско име</string>
-  <string name="attachproject_error_unknown">се провали</string>
-  <string name="attachproject_error_bad_username">Името на потребителя е отказано</string>
-  <string name="attachproject_error_email_in_use">Имейла вече е използван</string>
-  <string name="attachproject_error_project_down">Проекта е неактивен</string>
-  <string name="attachproject_error_email_bad_syntax">Имейла е отказан</string>
-  <string name="attachproject_error_bad_pwd">Паролата е отказана</string>
-  <string name="attachproject_error_creation_disabled">Създаването на акаунт е деактивирано за този проект</string>
-  <string name="attachproject_working_back_button">Назад</string>
-  <string name="attachproject_working_finish_button">Приключи</string>
-  <string name="attachproject_working_check_desc">Успешен</string>
-  <string name="attachproject_working_failed_desc">Неуспешен</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Свържи се</string>
-  <string name="attachproject_working_verify">Удостовери акаунт</string>
-  <string name="attachproject_working_register">Регистрирайте акаунт</string>
-  <string name="attachproject_working_login">Впишете се</string>
-  <string name="main_error">Уууупсс</string>
-  <string name="main_error_long">…това не трябва да се случва!\nНатиснете на иконата за да опитате отново.</string>
-  <string name="main_title_icon_desc">BOINC икона</string>
-  <string name="tab_status">Статус</string>
-  <string name="tab_projects">Проекти</string>
-  <string name="tab_tasks">Задачи</string>
-  <string name="tab_transfers">Трансфери</string>
-  <string name="tab_preferences">Предпочитания</string>
-  <string name="tab_desc">Навигация</string>
-  <string name="status_running">Изчисляване</string>
-  <string name="status_running_long">Благодаря Ви за участието.</string>
-  <string name="status_paused">Временно прекратено</string>
-  <string name="status_idle">Няма нищо за вършене</string>
-  <string name="status_idle_long">Изчакване на задачи…</string>
-  <string name="status_computing_disabled">Временно прекратено</string>
-  <string name="status_computing_disabled_long">Натиснете play за да подновите връзката по интернет и изчисленията.</string>
-  <string name="status_launching">Стартиране…</string>
-  <string name="status_noproject">Изберете проект за да участвате в него.</string>
-  <string name="status_closing">Затваряне…</string>
-  <string name="status_benchmarking">Изчисляване на референтните CPU показатели…</string>
-  <string name="status_image_description">изображение на проекта</string>
-  <string name="prefs_loading">Четене на предпочитанията…</string>
-  <string name="prefs_submit_button">Запази</string>
-  <string name="prefs_dialog_title">Въведете нова стойност:</string>
-  <string name="prefs_dialog_title_selection">Изберете:</string>
-  <string name="prefs_category_general">Основен</string>
-  <string name="prefs_category_network">Мрежа</string>
-  <string name="prefs_category_power">Мощност</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Съхранение</string>
-  <string name="prefs_category_memory">Памет</string>
-  <string name="prefs_category_debug">Отстраняване на грешки</string>
-  <string name="prefs_show_advanced_header">Покажи разширените предпочитания и контролери…</string>
-  <string name="battery_charge_min_pct_header">Мин. ниво на батерия</string>
-  <string name="battery_charge_min_pct_description">BOINC временно прекратява изчисленията под определено ниво на зареждане на батерията.</string>
-  <string name="battery_temperature_max_header">Макс. температура на батерия</string>
-  <string name="battery_temperature_max_description">BOINC временно прекратява изчисленията над определена температура на батерията. Не е препоръчително да променяте тази стойност.</string>
-  <string name="prefs_disk_max_pct_header">Макс. използвано пространство за съхранение</string>
-  <string name="prefs_disk_max_pct_description">Колко процента от пространството за съхранение на вашето устройство е позволено на BOINC да използва?</string>
-  <string name="prefs_disk_min_free_gb_header">Мин. неизползвано пространство</string>
-  <string name="prefs_disk_min_free_gb_description">Колко от пространството за съхранение на вашето устройство да остане свободно?</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Дневен лимит на трансфер</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Ограничава дневния трафик на данни породен от BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Прехвърляй задачи само през WiFi</string>
-  <string name="prefs_autostart_header">Автоматично стартиране</string>
-  <string name="prefs_cpu_number_cpus_header">Използвани CPU ядра</string>
-  <string name="prefs_cpu_number_cpus_description">Ограничава броя CPU ядра които BOINC използва за изчисления.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Пауза при CPU употреба над</string>
-  <string name="prefs_cpu_other_load_suspension_description">Определя кога BOINC прекъсва изчисленията за пауза поради употреба на CPU от други приложения.</string>
-  <string name="prefs_cpu_time_max_header">CPU лимит</string>
-  <string name="prefs_cpu_time_max_description">Ограничава CPU време, което BOINC използва за изчисления.</string>
-  <string name="prefs_memory_max_idle_header">RAM лимит</string>
-  <string name="prefs_memory_max_idle_description">Ограничава количеството RAM, което е позволено на задачите да заемат.</string>
-  <string name="prefs_client_log_flags_header">Регистър от флагове на BOINC Клиента</string>
-  <string name="prefs_gui_log_level_header">Ниво на регистъра на GUI</string>
-  <string name="prefs_gui_log_level_description">Дефинира многословието на регистъра за съобщения от GUI.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="projects_loading">Прочитане на проекти…</string>
-  <string name="projects_add">Добавете проект</string>
-  <string name="projects_icon">Икона на проекта</string>
-  <string name="projects_credits_header">Кредит:</string>
-  <string name="projects_credits_host_header">(на това устройство)</string>
-  <string name="projects_credits_user_header">(общо)</string>
-  <string name="projects_status_suspendedviagui">Временно прекратено от потребител</string>
-  <string name="projects_status_dontrequestmorework">Няма да взима нови задачи</string>
-  <string name="projects_status_ended">Проекта приключи - OK да се премахне</string>
-  <string name="projects_status_detachwhendone">Ще бъде премахнато като приключи задачите</string>
-  <string name="projects_status_schedrpcpending">Заявка на Планировчика в процес на изчакване</string>
-  <string name="projects_status_schedrpcinprogress">Заявка на Планировчика в процес на извършване</string>
-  <string name="projects_status_trickleuppending">Изходящо съобщение в процес на изчакване</string>
-  <string name="projects_status_backoff">Връзка е планирана след:</string>
-  <string name="projects_control_dialog_title">Команди на проекта:</string>
-  <string name="projects_control_update">Обнови</string>
-  <string name="projects_control_remove">Премахни</string>
-  <string name="projects_control_suspend">Временно прекратяване</string>
-  <string name="projects_control_resume">Поднови</string>
-  <string name="projects_control_nonewtasks">Без нови задачи</string>
-  <string name="projects_control_allownewtasks">Позволи нови задачи</string>
-  <string name="projects_control_reset">Нулиране</string>
-  <string name="projects_confirm_detach_title">Премахване на проект?</string>
-  <string name="projects_confirm_detach_message">Сигурни ли сте, че искате да премахнете</string>
-  <string name="projects_confirm_detach_message2">от BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Премахни</string>
-  <string name="projects_confirm_reset_title">Нулиране на проект</string>
-  <string name="projects_confirm_reset_message">Сигурни ли сте, че искате да нулирате</string>
-  <string name="projects_confirm_reset_confirm">Нулиране</string>
-  <string name="tasks_header_name">Име на Задача:</string>
-  <string name="tasks_header_elapsed_time">Изминало време:</string>
-  <string name="tasks_header_project_paused">(временно прекратена)</string>
-  <string name="tasks_header_deadline">Краен срок:</string>
-  <string name="tasks_result_new">нов</string>
-  <string name="tasks_result_files_downloading">изчаква за изтегляне</string>
-  <string name="tasks_result_files_downloaded">изтеглянето е завършено</string>
-  <string name="tasks_result_compute_error">изчислителна грешка</string>
-  <string name="tasks_result_files_uploading">в процес на ъплоуд</string>
-  <string name="tasks_result_files_uploaded">ъплоуда завърши</string>
-  <string name="tasks_result_aborted">прекратена</string>
-  <string name="tasks_result_upload_failed">ъплоуда е неуспешен</string>
-  <string name="tasks_active_uninitialized">готов</string>
-  <string name="tasks_active_executing">работи</string>
-  <string name="tasks_active_suspended">временно прекратен</string>
-  <string name="tasks_active_abort_pending">в момента прекратявам временно</string>
-  <string name="tasks_active_quit_pending">в момента прекратявам временно</string>
-  <string name="tasks_custom_suspended_via_gui">временно прекратен</string>
-  <string name="tasks_custom_project_suspended_via_gui">проекта е временно прекратен</string>
-  <string name="tasks_custom_ready_to_report">готов за докладване</string>
-  <string name="confirm_abort_task_title">Прекратяване на задача?</string>
-  <string name="confirm_abort_task_message">Прекратяване на задача:</string>
-  <string name="confirm_abort_task_confirm">Прекрати</string>
-  <string name="confirm_cancel">Откажи</string>
-  <string name="confirm_image_desc">Диалог за потвърждение</string>
-  <string name="trans_loading">Четене на трансфери…</string>
-  <string name="trans_upload">Качване</string>
-  <string name="trans_download">Изтегляне</string>
-  <string name="trans_retryin">нов опит след</string>
-  <string name="trans_failed">неуспешен</string>
-  <string name="trans_suspended">временно прекратен</string>
-  <string name="trans_active">активен</string>
-  <string name="trans_pending">в режим на изчакване</string>
-  <string name="trans_projectbackoff">отстъп от проекта</string>
-  <string name="trans_header_name">Файл:</string>
-  <string name="confirm_abort_trans_title">Прекратяване на трансфер?</string>
-  <string name="confirm_abort_trans_message">Прекрати Файл:</string>
-  <string name="confirm_abort_trans_confirm">Прекрати</string>
-  <string name="eventlog_loading">Зареждане на съобщения от регистъра…</string>
-  <string name="eventlog_client_header">Съобщения от Клиента</string>
-  <string name="eventlog_gui_header">Съобщения от GUI</string>
-  <string name="eventlog_copy_toast">Регистъра е копиран в клип-борда.</string>
-  <string name="eventlog_email_subject">Регистър на Събития на BOINC за Андроид:</string>
-  <string name="suspend_unknown">Изчисленията са временно прекратени.</string>
-  <string name="suspend_batteries">Свържете вашето устройство към зарядно за да продължите изчисленията.</string>
-  <string name="suspend_useractive">Потребителя е активен.</string>
-  <string name="suspend_tod">Извън рамката за изчислително време.</string>
-  <string name="suspend_bm">BOINC изчислява референтните CPU показатели за вашето устройство…</string>
-  <string name="suspend_disksize">Недостатъчно дисково пространство.</string>
-  <string name="suspend_cputhrottle">Планирано подтискане на CPU.</string>
-  <string name="suspend_noinput">Няма скорошна активност на потребител.</string>
-  <string name="suspend_delay">Закъснение при инициализация.</string>
-  <string name="suspend_exclusiveapp">Работи ексклузивно приложение.</string>
-  <string name="suspend_cpu">Вашето устройство е заето с други приложения.</string>
-  <string name="suspend_network_quota">BOINC достигна лимита за трансфер по мрежата.</string>
-  <string name="suspend_os">Спряно от Андроид.</string>
-  <string name="suspend_wifi">Не е свързан към WiFi.</string>
-  <string name="suspend_battery_charging">Батерията трябва да се зареди преди да се подновят изчисленията.</string>
-  <string name="suspend_battery_charging_long">Изчисленията ще се подновят когато заряда на батерията достигне</string>
-  <string name="suspend_battery_charging_current">в момента</string>
-  <string name="suspend_battery_overheating">Изчакване на батерията да се охлади</string>
-  <string name="suspend_user_req">Подновяване на изчисленията…</string>
-  <string name="suspend_network_user_req">ръчно.</string>
-  <string name="rpcreason_userreq">По заявка на потребителя</string>
-  <string name="rpcreason_needwork">За да вземе работа</string>
-  <string name="rpcreason_resultsdue">За да докладва завършените задачи</string>
-  <string name="rpcreason_trickleup">За да изпрати изходящо съобщение</string>
-  <string name="rpcreason_acctmgrreq">По заявка на акаунт мениджъра</string>
-  <string name="rpcreason_init">Инициализация на проект</string>
-  <string name="rpcreason_projectreq">По заявка на проекта</string>
-  <string name="rpcreason_unknown">Неизвестна причина</string>
-  <string name="menu_refresh">Опресни</string>
-  <string name="menu_emailto">Изпрати като Имейл</string>
-  <string name="menu_copy">Копирай в Клип-борда</string>
-  <string name="menu_eventlog">Регистър на Събития</string>
-  <string name="menu_exit">Изход от BOINC</string>
-  <string name="menu_run_mode_disable">Временно прекрати</string>
-  <string name="menu_run_mode_enable">Поднови</string>
-  <string name="menu_about">Относно</string>
-  <string name="menu_help">Помощ</string>
-  <string name="about_button">Връщане</string>
-  <string name="about_title">Относно</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Версия</string>
-  <string name="about_name_long">Бъркли Отворена Инфраструктура за Споделени Изчисления</string>
-  <string name="about_copyright">© 2003–2013 Калифорнийски Университет, Бъркли.\nВсички Права Запазени.</string>
-</resources>
diff --git a/android/BOINC/res/values-ca/strings.xml b/android/BOINC/res/values-ca/strings.xml
deleted file mode 100644
index 426cbc3..0000000
--- a/android/BOINC/res/values-ca/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Carregant! Si us plau, espera...</string>
-  <string name="generic_button_continue">Continuar</string>
-  <string name="generic_button_finish">Finalitzar</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Selecciona els projectes científics en els que vols participar:</string>
-  <string name="attachproject_list_header">Selecciona un projecte:</string>
-  <string name="attachproject_list_manual_button">Afegir projecte mitjançant URL</string>
-  <string name="attachproject_list_manual_dialog_title">Introdueix la URL del projecte:</string>
-  <string name="attachproject_list_manual_dialog_button">Afegeix el projecte</string>
-  <string name="attachproject_list_manual_no_url">Si us plau introdueix la URL del projecte</string>
-  <string name="attachproject_list_acctmgr_button">Afegir gestor de comptes</string>
-  <string name="attachproject_list_no_internet">No hi ha connexió a Internet</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Entra la informació del teu compte:</string>
-  <string name="attachproject_credential_input_desc">Entra la informació del teu compte per els projectes seleccionats:</string>
-  <string name="attachproject_credential_input_show_pwd">Mostra la contrasenya</string>
-  <string name="attachproject_individual_credential_input">Afegir els projectes individualment:</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">S\'han produït problemes afegint els projectes:</string>
-  <string name="attachproject_conflict_undefined">No s\'ha pogut connectar</string>
-  <string name="attachproject_conflict_not_unique">El compte ja existeix amb un altre contrasenya</string>
-  <string name="attachproject_conflict_bad_password">Contrasenya incorrecte</string>
-  <string name="attachproject_conflict_unknown_user">El compte no existeix</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">El compte no existeix, vista la pàgina web del projecte per registrar-te-hi</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Adjuntant</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Ajuda</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Com contribuir:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Connectar a una xarxa WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2, Connectar el carregador</string>
-  <string name="attachproject_hint_contribtion_screen">3. Desactivar la Pantalla</string>
-  <string name="attachproject_hint_projectwebsite_header">Visita els llocs web dels projectes a:</string>
-  <string name="attachproject_hint_projectwebsite_science">Apren més sobre la ciència</string>
-  <string name="attachproject_hint_projectwebsite_stats">Veure les estadístiques de les contibucions</string>
-  <string name="attachproject_hint_projectwebsite_community">Posat en contacte amb altres voluntaris</string>
-  <string name="attachproject_hint_platforms_header">BOINC també està disponible per al teu ordinador o portàtil, visita boinc.berkeley.edu per aprendre més.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Connectant amb el servidor del projecte...</string>
-  <string name="attachproject_login_image_description">Logo del projecte.</string>
-  <string name="attachproject_login_header_general_area">Zona general:</string>
-  <string name="attachproject_login_header_specific_area">Zona específica:</string>
-  <string name="attachproject_login_header_description">Descripció:</string>
-  <string name="attachproject_login_header_home">Inici:</string>
-  <string name="attachproject_login_header_url">Pàgina web:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Aquest projecte es compatible amb dispositius Android</string>
-  <string name="attachproject_login_platform_not_supported">Aquest projecte no es compatible amb dispositius Android</string>
-  <string name="attachproject_login_category_terms_of_use">Condicions d\'ús de</string>
-  <string name="attachproject_login_accept_terms_of_use">Creant un compte en aquest projecte, acceptes els termes d\'ús, que es mostren a dalt.</string>
-  <string name="attachproject_login_category_login">Registre\'t amb un compte existent</string>
-  <string name="attachproject_login_header_id_email">Correu electrònic:</string>
-  <string name="attachproject_login_header_id_name">Nom:</string>
-  <string name="attachproject_login_header_pwd">Contrasenya:</string>
-  <string name="attachproject_login_category_creation">Nou a</string>
-  <string name="attachproject_login_header_creation_enabled">Registra un compte per participar:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Visita la pàgina web del projecte per crear un compte:</string>
-  <string name="attachproject_login_header_creation_disabled">Aquest projecte no està acceptant nous comptes.</string>
-  <string name="attachproject_login_button_registration">Registre\'t</string>
-  <string name="attachproject_login_button_login">Registre\'t</string>
-  <string name="attachproject_login_button_forgotpw">He oblidat la contrasenya</string>
-  <string name="attachproject_login_error_toast">Ha fallat la connexió amb el projecte!</string>
-  <string name="attachproject_login_attached">Adjuntat</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Compte de registre per</string>
-  <string name="attachproject_registration_header_url">Projecte:</string>
-  <string name="attachproject_registration_header_email">Correu electrònic:</string>
-  <string name="attachproject_registration_header_username">Nom:</string>
-  <string name="attachproject_registration_header_teamname">Equip:</string>
-  <string name="attachproject_registration_header_pwd">Contrasenya:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... Torna a entrar-ho:</string>
-  <string name="attachproject_registration_button">Crear</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Utilitza l\'administrador de comptes de BOINC per afegir i gestionar múltiples projectes</string>
-  <string name="attachproject_acctmgr_header">Afegir gestor de comptes</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Usuari:</string>
-  <string name="attachproject_acctmgr_header_pwd">Contrasenya:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... Torna a entrar-ho:</string>
-  <string name="attachproject_acctmgr_button">Afegeix</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">No s\'ha trobat aquest usuari</string>
-  <string name="attachproject_error_short_pwd">La contrasenya és massa curta</string>
-  <string name="attachproject_error_no_internet">Ha fallat la connexió</string>
-  <string name="attachproject_error_pwd_no_match">Les contrasenyes no coincideixen</string>
-  <string name="attachproject_error_pwd_no_retype">Si us plau introdueix de nou la contrasenya</string>
-  <string name="attachproject_error_no_url">Si us plau introdueix una URL</string>
-  <string name="attachproject_error_no_email">Si us plau introdueix l\'adreça de correu electrònic</string>
-  <string name="attachproject_error_no_pwd">Si us plau introdueix una contrasenya</string>
-  <string name="attachproject_error_no_name">Si us plau, introdueïx el nom d\'usuari</string>
-  <string name="attachproject_error_unknown">ha fallat</string>
-  <string name="attachproject_error_bad_username">Nom d\'usuari rebutjat</string>
-  <string name="attachproject_error_email_in_use">L\'adreça de correu electrònic ja està en ús</string>
-  <string name="attachproject_error_project_down">El projecte està desconnectat</string>
-  <string name="attachproject_error_email_bad_syntax">Adreça de correu electrònic rebutjada</string>
-  <string name="attachproject_error_bad_pwd">Contrasenya rebutjada</string>
-  <string name="attachproject_error_creation_disabled">La creació de comptes està desactivada en aquest projecte</string>
-  <string name="attachproject_error_invalid_url">URL incorrecte</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Enrere</string>
-  <string name="attachproject_working_finish_button">Finalitza</string>
-  <string name="attachproject_working_check_desc">Reeixit</string>
-  <string name="attachproject_working_failed_desc">Ha fallat</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Connecta</string>
-  <string name="attachproject_working_verify">Revisa el compte</string>
-  <string name="attachproject_working_register">Registra el compte</string>
-  <string name="attachproject_working_login">Registret</string>
-  <string name="attachproject_working_acctmgr">Afegir gestor de comptes</string>
-  <string name="attachproject_working_acctmgr_sync">Sincronitzar</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Prem aquí per seleccionar un projecte</string>
-  <string name="main_error">Uppps</string>
-  <string name="main_error_long">...això no ha de succeir!\n Feu clic a la icona per intentar-ho de nou.</string>
-  <string name="main_title_icon_desc">Icona de BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Estatus</string>
-  <string name="tab_projects">Projectes</string>
-  <string name="tab_tasks">Tasques</string>
-  <string name="tab_transfers">Transferències</string>
-  <string name="tab_preferences">Preferències</string>
-  <string name="tab_notices">Notícies</string>
-  <string name="tab_desc">Navegació</string>
-  <!--status strings-->
-  <string name="status_running">Treballant</string>
-  <string name="status_running_long">Gràcies per participar.</string>
-  <string name="status_paused">Suspès</string>
-  <string name="status_idle">Res a fer</string>
-  <string name="status_idle_long">Esperant feines...</string>
-  <string name="status_computing_disabled">Suspès</string>
-  <string name="status_computing_disabled_long">Premeu play per reprendre la connexió per xarxa i la computació.</string>
-  <string name="status_launching">S\'està iniciant...</string>
-  <string name="status_noproject">Tria un projecte per participar-hi.</string>
-  <string name="status_closing">Tancant...</string>
-  <string name="status_benchmarking">Executamt proves...</string>
-  <string name="status_image_description">imatge del projecte</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Llegint preferències...</string>
-  <string name="prefs_submit_button">Desa</string>
-  <string name="prefs_dialog_title">Introdueix el nou valor:</string>
-  <string name="prefs_dialog_title_selection">Selecciona:</string>
-  <string name="prefs_category_general">General</string>
-  <string name="prefs_category_network">Xarxa</string>
-  <string name="prefs_category_power">Potència</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Emmagatzematge</string>
-  <string name="prefs_category_memory">Memòria</string>
-  <string name="prefs_category_debug">Depura</string>
-  <string name="prefs_show_advanced_header">Mostra les preferències i controls avançats...</string>
-  <string name="prefs_suspend_when_screen_on">Atura el càlcul quan la pantalla estigui activa</string>
-  <string name="prefs_stationary_device_mode_header">Mode de dispositiu fix</string>
-  <string name="prefs_stationary_device_mode_description">Permet el càlcul independentment de les preferències d\'alimentació. Només activar-ho si el dispositiu no té una bateria.</string>
-  <string name="prefs_power_source_header">Fonts d\'alimentació per al càlcul</string>
-  <string name="prefs_power_source_description">Selecciona les fonts d\'energia que BOINC pot utilitzar per al càlcul.</string>
-  <string name="prefs_power_source_ac">Endoll</string>
-  <string name="prefs_power_source_usb">Connexió USB</string>
-  <string name="prefs_power_source_wireless">Carregador sense fils</string>
-  <string name="prefs_power_source_battery">Bateria</string>
-  <string name="battery_charge_min_pct_header">Nivell mínim de la bateria</string>
-  <string name="battery_charge_min_pct_description">BOINC atura la computació si el nivell de càrrega de la bateria per sota del definit.</string>
-  <string name="battery_temperature_max_header">Temperatura màxima de la bateria</string>
-  <string name="battery_temperature_max_description">BOINC atura la computació si la temperatura de la bateria està per sobre del valor definit. No es recomanable canviar aquest valor.</string>
-  <string name="prefs_disk_max_pct_header">Màxim espai d\'emmagatzematge utilitzat</string>
-  <string name="prefs_disk_max_pct_description">Quin percentatge d\'espai d\'emmagatzematge del seu dispositiu pot utilitzar BOINC?</string>
-  <string name="prefs_disk_min_free_gb_header">Espai mínim d\'emmagatzematge</string>
-  <string name="prefs_disk_min_free_gb_description">Quina quantitat d\'espai d\'emmagatzematge del dispositiu s\'ha de mantenir lliure?</string>
-  <string name="prefs_disk_access_interval_header">Període d\'accés</string>
-  <string name="prefs_disk_access_interval_description">Suggereix un interval entre accessos al disc</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Límit de transferència diària</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limita el tràfic diàri de dades degut a BOINC</string>
-  <string name="prefs_network_wifi_only_header">Transferir tasques només amb WiFi</string>
-  <string name="prefs_autostart_header">Inici automàtic</string>
-  <string name="prefs_show_notification_notices_header">Mostra una notificació per a nous avisos</string>
-  <string name="prefs_show_notification_suspended_header">Mostra una notificació quan es suspengui</string>
-  <string name="prefs_cpu_number_cpus_header">Nuclis de CPU usats</string>
-  <string name="prefs_cpu_number_cpus_description">Limita el nombre de nuclis de CPU que BOINC utilitza per la computació.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pausa en l\'ús de la CPU per sobre de</string>
-  <string name="prefs_cpu_other_load_suspension_description">Determina quan BOINC pausa el còmput degut a l\'ús de la CPU per altres aplicacions.</string>
-  <string name="prefs_cpu_time_max_header">Límit de CPU</string>
-  <string name="prefs_cpu_time_max_description">Limita el temps de CPU que BOINC utilitza per la computació.</string>
-  <string name="prefs_memory_max_idle_header">RAM límit</string>
-  <string name="prefs_memory_max_idle_description">Limita la quantitat de RAM que les tasques poden utilitzar.</string>
-  <string name="prefs_client_log_flags_header">Marques de registre del client de BOINC</string>
-  <string name="prefs_gui_log_level_header">Nivell de registre GUI</string>
-  <string name="prefs_gui_log_level_description">Especifica el nivell de detall dels missatges de registre GUI.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">segon</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">S\'estan carregant els projectes...</string>
-  <string name="projects_add">Afegeix el projecte</string>
-  <string name="projects_icon">Icona delprojecte</string>
-  <string name="projects_credits_header">Crèdit:</string>
-  <string name="projects_credits_host_header">(en aquest dispositiu)</string>
-  <string name="projects_credits_user_header">(total)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Suspès per l\'usuari</string>
-  <string name="projects_status_dontrequestmorework">No descarregar tasques noves</string>
-  <string name="projects_status_ended">Projecte finalitzat - CORRECTE per eliminar-lo</string>
-  <string name="projects_status_detachwhendone">S\'eliminarà quan finalitzi la tasca</string>
-  <string name="projects_status_schedrpcpending">Petició al gestor pendent</string>
-  <string name="projects_status_schedrpcinprogress">Petició al gestor en curs</string>
-  <string name="projects_status_trickleuppending">Missatge de degoteig en espera</string>
-  <string name="projects_status_backoff">Comunicació del gestor a:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Ordres del projecte:</string>
-  <string name="projects_control_visit_website">Visita el lloc web</string>
-  <string name="projects_control_update">Actualitza</string>
-  <string name="projects_control_remove">Elimina</string>
-  <string name="projects_control_suspend">Suspèn</string>
-  <string name="projects_control_resume">Reprèn</string>
-  <string name="projects_control_nonewtasks">No hi han tasques noves</string>
-  <string name="projects_control_allownewtasks">Permetre noves tasques</string>
-  <string name="projects_control_reset">Reinicia</string>
-  <string name="projects_control_dialog_title_acctmgr">Ordres del gestor de comptes:</string>
-  <string name="projects_control_sync_acctmgr">Sincronitzar</string>
-  <string name="projects_control_remove_acctmgr">Desactivar</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Eliminar el projecte?</string>
-  <string name="projects_confirm_detach_message">Estàs segur que voleu eliminar</string>
-  <string name="projects_confirm_detach_message2">de BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Elimina</string>
-  <string name="projects_confirm_reset_title">Reinicia el projecte</string>
-  <string name="projects_confirm_reset_message">Estàs segur que vols reiniciar</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Reinicia</string>
-  <string name="projects_confirm_remove_acctmgr_title">Desactivar el gestor de comptes</string>
-  <string name="projects_confirm_remove_acctmgr_message">Està segur de voler finalitzar la utilització de </string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Desactivar</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Nom de la tasca:</string>
-  <string name="tasks_header_elapsed_time">Temps transcorregut:</string>
-  <string name="tasks_header_project_paused">(suspès)</string>
-  <string name="tasks_header_deadline">Data límit:</string>
-  <string name="tasks_result_new">nou</string>
-  <string name="tasks_result_files_downloading">esperant per descarregar</string>
-  <string name="tasks_result_files_downloaded">Descàrrega completa</string>
-  <string name="tasks_result_compute_error">error de computació</string>
-  <string name="tasks_result_files_uploading">s\'està lliurant</string>
-  <string name="tasks_result_files_uploaded">lliurament finalitzat</string>
-  <string name="tasks_result_aborted">avortat</string>
-  <string name="tasks_result_upload_failed">ha fallat el lliurament</string>
-  <string name="tasks_active_uninitialized">preparat</string>
-  <string name="tasks_active_executing">executant</string>
-  <string name="tasks_active_suspended">suspès</string>
-  <string name="tasks_active_abort_pending">s\'està suspenent</string>
-  <string name="tasks_active_quit_pending">s\'està suspenent</string>
-  <string name="tasks_custom_suspended_via_gui">suspès</string>
-  <string name="tasks_custom_project_suspended_via_gui">projecte suspès</string>
-  <string name="tasks_custom_ready_to_report">a punt per informar</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Avortar la tasca?</string>
-  <string name="confirm_abort_task_message">Avortar la tasca:</string>
-  <string name="confirm_abort_task_confirm">Avorta</string>
-  <string name="confirm_cancel">Cancel·la</string>
-  <string name="confirm_image_desc">Diàleg de confirmació</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Llegint transferències...</string>
-  <string name="trans_upload">Puja</string>
-  <string name="trans_download">Descarrega</string>
-  <string name="trans_retryin">re intentar en</string>
-  <string name="trans_failed">ha fallat</string>
-  <string name="trans_suspended">suspès</string>
-  <string name="trans_active">activa</string>
-  <string name="trans_pending">pendent</string>
-  <string name="trans_projectbackoff">desentendre\'s del projecte</string>
-  <string name="trans_header_name">Fitxer:</string>
-  <string name="trans_control_retry">Re-intenta transferències</string>
-  <string name="confirm_abort_trans_title">Avortar la transferència?</string>
-  <string name="confirm_abort_trans_message">Avortar arxiu:</string>
-  <string name="confirm_abort_trans_confirm">Avorta</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Llegint notícies...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Carregant missatges de registre...</string>
-  <string name="eventlog_client_header">Missatges del client</string>
-  <string name="eventlog_gui_header">Missatges GUI</string>
-  <string name="eventlog_copy_toast">Registre copiat al porta-retalls</string>
-  <string name="eventlog_email_subject">Registre d\'esdeveniments de BOINC en Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Computació suspesa.</string>
-  <string name="suspend_batteries">Connecta el dispositiu a un carregador per continuar el còmput.</string>
-  <string name="suspend_screen_on">Apaga la pantalla per continuar la computació.</string>
-  <string name="suspend_useractive">L\'usuari està actiu.</string>
-  <string name="suspend_tod">Fora del termini especificat per el còmput.</string>
-  <string name="suspend_bm">BOINC està avaluant el teu dispositiu...</string>
-  <string name="suspend_disksize">S\'ha exhaurit l\'espai lliure del disc</string>
-  <string name="suspend_cputhrottle">Programada acceleració CPU.</string>
-  <string name="suspend_noinput">No hi ha hagut activitat recent de l\'usuari.</string>
-  <string name="suspend_delay">Temps d\'espera per reiniciar.</string>
-  <string name="suspend_exclusiveapp">S\'està executant una aplicació amb ús exclusiu.</string>
-  <string name="suspend_cpu">El teu dispositiu està ocupat per altres aplicacions.</string>
-  <string name="suspend_network_quota">BOINC ha assolit el límit de transferència per xarxa.</string>
-  <string name="suspend_os">Suspès per Android.</string>
-  <string name="suspend_wifi">No hi ha connexió Wifi.</string>
-  <string name="suspend_battery_charging">Esperant a la càrrega de la bateria.</string>
-  <string name="suspend_battery_charging_long">La computació continuarà quan la bateria tingui una carregada del</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">actual</string>
-  <string name="suspend_battery_overheating">Esperant que es refredi la bateria</string>
-  <string name="suspend_user_req">Continuant la computació...</string>
-  <string name="suspend_network_user_req">manualment.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Sol·licitat per l\'usuari</string>
-  <string name="rpcreason_needwork">Per obtenir feina</string>
-  <string name="rpcreason_resultsdue">Per informar tasques finalitzades</string>
-  <string name="rpcreason_trickleup">Per lliurar un missatge de degoteig</string>
-  <string name="rpcreason_acctmgrreq">Sol·licitat per l\'administrador de comptes</string>
-  <string name="rpcreason_init">Inicialització del projecte</string>
-  <string name="rpcreason_projectreq">Sol·licitat per el projecte</string>
-  <string name="rpcreason_unknown">Motiu desconegut</string>
-  <!--menu-->
-  <string name="menu_refresh">Actualitza</string>
-  <string name="menu_emailto">Envia per correu electrònic</string>
-  <string name="menu_copy">Copia al porta-retalls</string>
-  <string name="menu_eventlog">Registre d\'esdeveniments</string>
-  <string name="menu_exit">Surt de BOINC</string>
-  <string name="menu_run_mode_disable">Suspèn</string>
-  <string name="menu_run_mode_enable">Reprèn</string>
-  <string name="menu_about">Sobre</string>
-  <string name="menu_help">Ajuda</string>
-  <!--about dialog-->
-  <string name="about_button">Retorna</string>
-  <string name="about_title">Sobre</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versió</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">© 2003–2013 Universitat de Califòrnia, Berkeley.\nTots els Drets Reservats.</string>
-  <string name="about_copyright_reserved">Reservats tots els drets.</string>
-  <string name="about_credits">Gràcies a l\'Institut Max Planck de Física Gravitacional, IBM Corporation i HTC Corporation pel seu suport.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nou avís de</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nous avisos</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Aplicació de computació voluntària detectada</string>
-  <string name="nonexcl_dialog_text">Una altra aplicació de computació voluntària s\'està executant en aquest dispositiu. Només una pot executar-se alhora.</string>
-  <string name="nonexcl_dialog_exit">Sortir</string>
-  <!--social integration-->
-  <string name="social_invite_button">Convida als teus amics</string>
-  <string name="social_invite_intent_title">Com vols compartir?</string>
-  <string name="social_invite_content_title">Estic fent ciència en el meu telèfon!</string>
-  <string name="social_invite_content_body">Estic usant el meu %1$s per fer computació per a la ciència. Tu també pots fer-ho! Descarrega l\'aplicació des de: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-cs/strings.xml b/android/BOINC/res/values-cs/strings.xml
deleted file mode 100644
index bc3a9f3..0000000
--- a/android/BOINC/res/values-cs/strings.xml
+++ /dev/null
@@ -1,362 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Načítám! Počkejte prosím...</string>
-  <string name="generic_button_continue">Pokračovat</string>
-  <string name="generic_button_finish">Dokončit</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Vyberte vědecké projekty, kterých se chcete účastnit:</string>
-  <string name="attachproject_list_header">Vyber projekt</string>
-  <string name="attachproject_list_manual_button">Přidat projekt pomocí adresy URL</string>
-  <string name="attachproject_list_manual_dialog_title">Zadejte URL adresu projektu:</string>
-  <string name="attachproject_list_manual_dialog_button">Přidat projekt</string>
-  <string name="attachproject_list_manual_no_url">Prosím zadejte URL adresu projektu</string>
-  <string name="attachproject_list_acctmgr_button">Přidat správce účtu</string>
-  <string name="attachproject_list_no_internet">Není připojení k internetu</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Zadejte informace o účtu</string>
-  <string name="attachproject_credential_input_desc">Zadejte informace o účtu pro vybrané projekty:</string>
-  <string name="attachproject_credential_input_show_pwd">Zobrazit heslo</string>
-  <string name="attachproject_individual_credential_input">Připojit projekty individuálně</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Vyskytly se problémy během připojování vědeckých projektů:</string>
-  <string name="attachproject_conflict_undefined">Nelze se připojit</string>
-  <string name="attachproject_conflict_not_unique">Existuje účet s jiným heslem</string>
-  <string name="attachproject_conflict_bad_password">Nesprávné heslo</string>
-  <string name="attachproject_conflict_unknown_user">Účet neexistuje</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Účet neexistuje, navštivte webové stránky projektu k registraci</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Připojování</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Tip</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Jak přispět:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Připojte se k WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Připojte nabíječku</string>
-  <string name="attachproject_hint_contribtion_screen">3. Vypněte obrazovku</string>
-  <string name="attachproject_hint_projectwebsite_header">Navštivte webové stránky projektu:</string>
-  <string name="attachproject_hint_projectwebsite_science">Chvi se dozvědět více o vědě</string>
-  <string name="attachproject_hint_projectwebsite_stats">Zobrazit statistiky přispívání</string>
-  <string name="attachproject_hint_projectwebsite_community">Spojte se s ostatními dobrovolníky</string>
-  <string name="attachproject_hint_platforms_header">BOINC je také k dispozici pro váš počítač nebo notebook, návštivte boinc.berkeley.edu pro více informací.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Připojování k serveru projektu...</string>
-  <string name="attachproject_login_image_description">Logo projektu.</string>
-  <string name="attachproject_login_header_general_area">Obecná oblast:</string>
-  <string name="attachproject_login_header_specific_area">Specifická oblast:</string>
-  <string name="attachproject_login_header_description">Popis:</string>
-  <string name="attachproject_login_header_home">Domů:</string>
-  <string name="attachproject_login_header_url">Webové stránky:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Typ zařízení je podporován projektem</string>
-  <string name="attachproject_login_platform_not_supported">Zařízení není projektem podporováno</string>
-  <string name="attachproject_login_category_terms_of_use">Podmínky použití pro</string>
-  <string name="attachproject_login_accept_terms_of_use">Vytvořením účtu na tomto projektu souhlasíte s podmínkami používání, které jsou uvedeny výše.</string>
-  <string name="attachproject_login_category_login">Přihlášení pomocí stávajícího účtu</string>
-  <string name="attachproject_login_header_id_email">E-mail:</string>
-  <string name="attachproject_login_header_id_name">Jméno:</string>
-  <string name="attachproject_login_header_pwd">Heslo:</string>
-  <string name="attachproject_login_category_creation">Nový do</string>
-  <string name="attachproject_login_header_creation_enabled">Registrovat účet k účasti:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Navštivte stránky projektu pro vytvoření účtu:</string>
-  <string name="attachproject_login_header_creation_disabled">Tento projekt v současné době nepřijímá nové účty.</string>
-  <string name="attachproject_login_button_registration">Registrace</string>
-  <string name="attachproject_login_button_login">Přihlásit se</string>
-  <string name="attachproject_login_button_forgotpw">Zapomenuté heslo</string>
-  <string name="attachproject_login_error_toast">Kontaktování projektu selhalo!</string>
-  <string name="attachproject_login_attached">Připojeno</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Registrace účtu pro </string>
-  <string name="attachproject_registration_header_url">Projekt:</string>
-  <string name="attachproject_registration_header_email">E-mail:</string>
-  <string name="attachproject_registration_header_username">Jméno:</string>
-  <string name="attachproject_registration_header_teamname">Tým:</string>
-  <string name="attachproject_registration_header_pwd">Heslo:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Znovu:</string>
-  <string name="attachproject_registration_button">Vytvořit</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Použít správce účtu BOINC pro přidání a správu vícero projektů</string>
-  <string name="attachproject_acctmgr_header">Přidat správce účtu</string>
-  <string name="attachproject_acctmgr_header_url">URL adresa</string>
-  <string name="attachproject_acctmgr_header_name">Uživatel:</string>
-  <string name="attachproject_acctmgr_header_pwd">Heslo:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Znovu:</string>
-  <string name="attachproject_acctmgr_button">Přidat</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Uživatel nenalezen</string>
-  <string name="attachproject_error_short_pwd">Heslo je příliš krátké</string>
-  <string name="attachproject_error_no_internet">Připojení selhalo</string>
-  <string name="attachproject_error_pwd_no_match">Hesla neodpovídají</string>
-  <string name="attachproject_error_pwd_no_retype">Zadejte prosím heslo znovu</string>
-  <string name="attachproject_error_no_url">Prosím zadejte adresu URL</string>
-  <string name="attachproject_error_no_email">Zadejte e-mailovou adresu</string>
-  <string name="attachproject_error_no_pwd">Zadejte prosím heslo</string>
-  <string name="attachproject_error_no_name">Zadejte prosím uživatelské jméno</string>
-  <string name="attachproject_error_unknown">nezdařilo se</string>
-  <string name="attachproject_error_bad_username">Uživatelské jméno odmítnuto</string>
-  <string name="attachproject_error_email_in_use">E-mail je již používán</string>
-  <string name="attachproject_error_project_down">Projekt je v režimu offline</string>
-  <string name="attachproject_error_email_bad_syntax">E-mail odmítnut</string>
-  <string name="attachproject_error_bad_pwd">Heslo odmítnuto</string>
-  <string name="attachproject_error_creation_disabled">Vytvoření účtu je na tomto projektu zakázáno</string>
-  <string name="attachproject_error_invalid_url">Neplatná URL adresa</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Zpět</string>
-  <string name="attachproject_working_finish_button">Dokončit</string>
-  <string name="attachproject_working_check_desc">Úspěšný</string>
-  <string name="attachproject_working_failed_desc">Nezdařilo se</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Připojit</string>
-  <string name="attachproject_working_verify">Ověřit účet</string>
-  <string name="attachproject_working_register">Registrovat účet</string>
-  <string name="attachproject_working_login">Přihlásit se</string>
-  <string name="attachproject_working_acctmgr">Přidat správce účtu</string>
-  <string name="attachproject_working_acctmgr_sync">Synchronizovat</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Klepnutím sem vyberte projekt.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">.. tohle by se nemělo stát! \nClick na ikonu pro nový pokus.</string>
-  <string name="main_title_icon_desc">BOINC ikona</string>
-  <!--tab names-->
-  <string name="tab_status">Stav</string>
-  <string name="tab_projects">Projekty</string>
-  <string name="tab_tasks">Úkoly</string>
-  <string name="tab_transfers">Přenosy</string>
-  <string name="tab_preferences">Předvolby</string>
-  <string name="tab_notices">Zprávy</string>
-  <string name="tab_desc">Navigace</string>
-  <!--status strings-->
-  <string name="status_running">Počítání</string>
-  <string name="status_running_long">Děkujeme za vaši účast.</string>
-  <string name="status_paused">Pozastaveno</string>
-  <string name="status_idle">Nic k práci</string>
-  <string name="status_idle_long">Čekání na úkoly...</string>
-  <string name="status_computing_disabled">Pozastaveno</string>
-  <string name="status_computing_disabled_long">Stisknutím tlačítka play obnovíte síť a počítání.</string>
-  <string name="status_launching">Spouštění...</string>
-  <string name="status_noproject">Zvolte projekt, na kterém se chcete podílet.</string>
-  <string name="status_closing">Zavírání...</string>
-  <string name="status_benchmarking">Testuji výkon...</string>
-  <string name="status_image_description">obrázek projektu</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Čtení předvoleb...</string>
-  <string name="prefs_submit_button">Uložit</string>
-  <string name="prefs_dialog_title">Zadejte novou hodnotu:</string>
-  <string name="prefs_dialog_title_selection">Vyberte:</string>
-  <string name="prefs_category_general">Obecné</string>
-  <string name="prefs_category_network">Síť</string>
-  <string name="prefs_category_power">Výkon</string>
-  <string name="prefs_category_cpu">Procesor</string>
-  <string name="prefs_category_storage">Úložiště</string>
-  <string name="prefs_category_memory">Paměť</string>
-  <string name="prefs_category_debug">Ladění</string>
-  <string name="prefs_show_advanced_header">Zobrazit pokročilá nastavení a ovládání...</string>
-  <string name="prefs_suspend_when_screen_on">Pozastavit výpočet když obrazovka je zapnutá</string>
-  <string name="prefs_stationary_device_mode_header">Režim stacionárního zařízení</string>
-  <string name="prefs_stationary_device_mode_description">Povolit počítání bez ohledu na nastavení výkonu. Zapnuto pouze pokud zařízení nemá baterii.</string>
-  <string name="prefs_power_source_header">Zdroje energie pro počítání</string>
-  <string name="prefs_power_source_description">Vyberte zdroje energie, které bude BOINC moci využít pro počítání.</string>
-  <string name="prefs_power_source_ac">Nabíječka</string>
-  <string name="prefs_power_source_usb">USB připojení</string>
-  <string name="prefs_power_source_wireless">Bezdrátová nabíječka</string>
-  <string name="prefs_power_source_battery">Baterie</string>
-  <string name="battery_charge_min_pct_header">Min. úroveň baterie</string>
-  <string name="battery_charge_min_pct_description">BOINC pozastaví výpočet pokud je stav nabití baterie pod stanovenou úroveň.</string>
-  <string name="battery_temperature_max_header">Max. teplota baterie</string>
-  <string name="battery_temperature_max_description">BOINC pozastaví výpočet pokud je teplota baterie nad stanovenou hranicí. Tuto hodnotu nedoporučujeme měnit.</string>
-  <string name="prefs_disk_max_pct_header">Max. použitelné úložiště</string>
-  <string name="prefs_disk_max_pct_description">Kolik procent z vašeho úložného prostoru v zařízení může BOINC využít?</string>
-  <string name="prefs_disk_min_free_gb_header">Min. rezerva úložiště</string>
-  <string name="prefs_disk_min_free_gb_description">Kolik místa v úložišti zařízení musí zůstat volné?</string>
-  <string name="prefs_disk_access_interval_header">Interval přístupu</string>
-  <string name="prefs_disk_access_interval_description">Navrhnětě interval mezi přístupy na úložiště</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Denní limit přenosu</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limituje síťová data, která může BOINC využít.</string>
-  <string name="prefs_network_wifi_only_header">Přenášej úkoly pouze na WiFi</string>
-  <string name="prefs_autostart_header">Automatické spuštění</string>
-  <string name="prefs_show_notification_notices_header">Zobrazit upozornění pro nové oznámení</string>
-  <string name="prefs_show_notification_suspended_header">Zobrazit oznámení pokud je pozastaveno</string>
-  <string name="prefs_cpu_number_cpus_header">Použitá jádra procesoru</string>
-  <string name="prefs_cpu_number_cpus_description">Omezuje počet jader procesoru, které může BOINC použít pro výpočet.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pozastav při využití procesoru nad</string>
-  <string name="prefs_cpu_other_load_suspension_description">Určuje kdy se BOINC pozastaví kvůli využití procesoru ostatními aplikacemi.</string>
-  <string name="prefs_cpu_time_max_header">Omezení procesoru</string>
-  <string name="prefs_cpu_time_max_description">Omezuje procesorový čas, který BOINC využívá pro počítání.</string>
-  <string name="prefs_memory_max_idle_header">Limit paměti</string>
-  <string name="prefs_memory_max_idle_description">Limituje množství paměti použitelné pro výpočet.</string>
-  <string name="prefs_client_log_flags_header">Praporky zápisu BOINC klienta</string>
-  <string name="prefs_gui_log_level_header">Úroveň protokolu GUI</string>
-  <string name="prefs_gui_log_level_description">Určuje podrobnost ve výpisu zpráv GUI.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">sek.</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Čtení projektů...</string>
-  <string name="projects_add">Přidat projekt</string>
-  <string name="projects_icon">Ikona projektu</string>
-  <string name="projects_credits_header">Kredit:</string>
-  <string name="projects_credits_host_header">(na tomto zařízení)</string>
-  <string name="projects_credits_user_header">(celkem)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Pozastaveno uživatelem</string>
-  <string name="projects_status_dontrequestmorework">Neobdrží další práci</string>
-  <string name="projects_status_ended">Projekt ukončen - nyní je možné projekt opustit</string>
-  <string name="projects_status_detachwhendone">Bude odebrán po dokončení úkolů</string>
-  <string name="projects_status_schedrpcpending">Nevyřízený požadavek plánovače</string>
-  <string name="projects_status_schedrpcinprogress">Zpracovávám požadavek plánovače</string>
-  <string name="projects_status_trickleuppending">Nevyřízené odeslání zprávy o průběhu</string>
-  <string name="projects_status_backoff">Komunikace za:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Příkazy projektu:</string>
-  <string name="projects_control_visit_website">Navštívit webové stránky</string>
-  <string name="projects_control_update">Aktualizovat</string>
-  <string name="projects_control_remove">Odebrat</string>
-  <string name="projects_control_suspend">Pozastavit</string>
-  <string name="projects_control_resume">Obnovit</string>
-  <string name="projects_control_nonewtasks">Nepřijímat další práci</string>
-  <string name="projects_control_allownewtasks">Povolit další práci</string>
-  <string name="projects_control_reset">Resetovat</string>
-  <string name="projects_control_dialog_title_acctmgr">Příkazy správce účtu:</string>
-  <string name="projects_control_sync_acctmgr">Synchronizovat</string>
-  <string name="projects_control_remove_acctmgr">Zakázat</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Odebrat projekt?</string>
-  <string name="projects_confirm_detach_message">Jste si jisti, že chcete odstranit</string>
-  <string name="projects_confirm_detach_message2">z BOINCu?</string>
-  <string name="projects_confirm_detach_confirm">Odebrat</string>
-  <string name="projects_confirm_reset_title">Restartovat projekt</string>
-  <string name="projects_confirm_reset_message">Jste si jisti, že chcete restartovat</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Restartovat</string>
-  <string name="projects_confirm_remove_acctmgr_title">Vypnout správce účtu</string>
-  <string name="projects_confirm_remove_acctmgr_message">Jste si jisti, že chcete přestat používat</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Zakázat</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Název úkolu:</string>
-  <string name="tasks_header_elapsed_time">Uplynulý čas:</string>
-  <string name="tasks_header_project_paused">(pozastaveno)</string>
-  <string name="tasks_header_deadline">Odevzdat do:</string>
-  <string name="tasks_result_new">nové</string>
-  <string name="tasks_result_files_downloading">čeká na stažení</string>
-  <string name="tasks_result_files_downloaded">stahování dokončeno</string>
-  <string name="tasks_result_compute_error">chyba při výpočtu</string>
-  <string name="tasks_result_files_uploading">odesílání</string>
-  <string name="tasks_result_files_uploaded">odesílání dokončeno</string>
-  <string name="tasks_result_aborted">zrušeno</string>
-  <string name="tasks_result_upload_failed">odeslání se nezdařilo</string>
-  <string name="tasks_active_uninitialized">připraven</string>
-  <string name="tasks_active_executing">počítá</string>
-  <string name="tasks_active_suspended">pozastaveno</string>
-  <string name="tasks_active_abort_pending">ruší se</string>
-  <string name="tasks_active_quit_pending">ukončuje se</string>
-  <string name="tasks_custom_suspended_via_gui">pozastaveno</string>
-  <string name="tasks_custom_project_suspended_via_gui">projekt pozastaven</string>
-  <string name="tasks_custom_ready_to_report">připraven k nahlášení</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Zrušit úkol?</string>
-  <string name="confirm_abort_task_message">Zrušit úkol:</string>
-  <string name="confirm_abort_task_confirm">Zrušit</string>
-  <string name="confirm_cancel">Zpět</string>
-  <string name="confirm_image_desc">Potvrzovací dialog</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Načítám přenosy...</string>
-  <string name="trans_upload">Odesílání</string>
-  <string name="trans_download">Stáhování</string>
-  <string name="trans_retryin">opakovat za</string>
-  <string name="trans_failed">selhalo</string>
-  <string name="trans_suspended">pozastaveno</string>
-  <string name="trans_active">probíhá</string>
-  <string name="trans_pending">vyčkává</string>
-  <string name="trans_projectbackoff">odloženo projektem</string>
-  <string name="trans_header_name">Soubor:</string>
-  <string name="trans_control_retry">Opakování přenosů</string>
-  <string name="confirm_abort_trans_title">Přerušit přenos?</string>
-  <string name="confirm_abort_trans_message">Zrušit soubor:</string>
-  <string name="confirm_abort_trans_confirm">Zrušit</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Načítám oznámení...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Načítám zprávy...</string>
-  <string name="eventlog_client_header">Zprávy klienta</string>
-  <string name="eventlog_gui_header">Zprávy GUI</string>
-  <string name="eventlog_copy_toast">Zpráva zkopírována do schránky.</string>
-  <string name="eventlog_email_subject">Zprávy událostí z BOINC na Androidu:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Výpočet pozastaven.</string>
-  <string name="suspend_batteries">Připojte zařízení k nabíječce pro pokračování ve výpočtu.</string>
-  <string name="suspend_screen_on">Vypněte obrazovku pro pokračování ve výpočtu.</string>
-  <string name="suspend_useractive">Uživatel je aktivní.</string>
-  <string name="suspend_tod">Mimo výpočtový časový rámec.</string>
-  <string name="suspend_bm">BOINC testuje výkon vašeho zařízení...</string>
-  <string name="suspend_disksize">Nedostatek místa na disku.</string>
-  <string name="suspend_cputhrottle">Plánované omezení procesoru.</string>
-  <string name="suspend_noinput">Žádná nedávná aktivita uživatele.</string>
-  <string name="suspend_delay">Zpoždění inicializace.</string>
-  <string name="suspend_exclusiveapp">Je spuštěna exkluzivní aplikace.</string>
-  <string name="suspend_cpu">Zařízení je zaneprázdněno jinými aplikacemi.</string>
-  <string name="suspend_network_quota">BOINC dosáhl limitu síťových přenosů.</string>
-  <string name="suspend_os">Zastaveno Androidem.</string>
-  <string name="suspend_wifi">Není připojen k WiFi.</string>
-  <string name="suspend_battery_charging">Čekání na větší nabití baterie.</string>
-  <string name="suspend_battery_charging_long">Výpočet bude pokračovat, když nabití baterie dosáhne</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">nyní</string>
-  <string name="suspend_battery_overheating">Čekání na ochlazení baterie</string>
-  <string name="suspend_user_req">Obnovuji výpočet...</string>
-  <string name="suspend_network_user_req">ručně.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Vyžádáno uživatelem</string>
-  <string name="rpcreason_needwork">Získat novou práci</string>
-  <string name="rpcreason_resultsdue">Nahlásit dokončené úkoly</string>
-  <string name="rpcreason_trickleup">Odeslat zprávu o průběhu</string>
-  <string name="rpcreason_acctmgrreq">Vyžádáno správcem účtu</string>
-  <string name="rpcreason_init">Prvotní nastavení projektu</string>
-  <string name="rpcreason_projectreq">Vyžádáno projektem</string>
-  <string name="rpcreason_unknown">Neznámý důvod</string>
-  <!--menu-->
-  <string name="menu_refresh">Aktualizovat</string>
-  <string name="menu_emailto">Odeslat jako E-mail</string>
-  <string name="menu_copy">Kopírovat do schránky</string>
-  <string name="menu_eventlog">Protokol událostí</string>
-  <string name="menu_exit">Ukončit BOINC</string>
-  <string name="menu_run_mode_disable">Pozastavit</string>
-  <string name="menu_run_mode_enable">Obnovit</string>
-  <string name="menu_about">O BOINC</string>
-  <string name="menu_help">Nápověda</string>
-  <!--about dialog-->
-  <string name="about_button">Návrat</string>
-  <string name="about_title">O programu</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Verze</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing 
-(Berkeleyská Otevřená Infrastruktura pro Síťové Výpočty)</string>
-  <string name="about_copyright">\u00A9 2003 – 2014 Univerzita v Kalifornii, Berkeley.</string>
-  <string name="about_copyright_reserved">Všechna práva vyhrazena.
-Překlad do češtiny: petnek</string>
-  <string name="about_credits">Díky patří Max Planck institutu pro gravitační fyziku, IBM Corporation a HTC Corporation za jejich podporu.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nové oznámení od</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">Nová oznámení</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Dobrovolníkova výpočetní aplikace zaregistrována</string>
-  <string name="nonexcl_dialog_text">V tomto zařízení je spuštěna další výpočetní aplikace dobrovolníka. Současně lze spustit pouze jednu verzi.</string>
-  <string name="nonexcl_dialog_exit">Konec</string>
-  <!--social integration-->
-  <string name="social_invite_button">Pozvat přátele</string>
-  <string name="social_invite_intent_title">Jak chcete sdílet?</string>
-  <string name="social_invite_content_title">Podílím se na vědě díky svému chytrému telefonu!</string>
-  <string name="social_invite_content_body">Používám svůj %1$s pro vědecké výpočty. Ty můžeš taky! Stáhni si aplikaci z: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-da/strings.xml b/android/BOINC/res/values-da/strings.xml
deleted file mode 100644
index 7301760..0000000
--- a/android/BOINC/res/values-da/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Indlæser! Vent venligst...</string>
-  <string name="generic_button_continue">Fortsæt</string>
-  <string name="generic_button_finish">Færdig</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Vælg videnskabelige projekter, du vil bidrage til:</string>
-  <string name="attachproject_list_header">Vælg et projekt</string>
-  <string name="attachproject_list_manual_button">Tilføj projekt vha. URL</string>
-  <string name="attachproject_list_manual_dialog_title">Indtast projekt-URL:</string>
-  <string name="attachproject_list_manual_dialog_button">Tilføj projekt</string>
-  <string name="attachproject_list_manual_no_url">Indtast venligst projekt-URL</string>
-  <string name="attachproject_list_acctmgr_button">Tilføj kontohåndtering</string>
-  <string name="attachproject_list_no_internet">Ingen Internet-forbindelse</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Indtast kontoinformation</string>
-  <string name="attachproject_credential_input_desc">Indtast kontoinformation for valgte projekter:</string>
-  <string name="attachproject_credential_input_show_pwd">Vis adgangskode</string>
-  <string name="attachproject_individual_credential_input">Forbind projekter individuelt</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Der opstod problemer med at forbinde videnskabelige projekter:</string>
-  <string name="attachproject_conflict_undefined">Kunne ikke forbinde</string>
-  <string name="attachproject_conflict_not_unique">Konto eksisterer med en anden adgangskode</string>
-  <string name="attachproject_conflict_bad_password">Adgangskode ukorrekt</string>
-  <string name="attachproject_conflict_unknown_user">Konto eksisterer ikke</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Konto eksisterer ikke; besøg projektets webside for at registrere</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Forbinder</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Tip</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Hvordan du kan bidrage:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Forbind til WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Tilslut oplader</string>
-  <string name="attachproject_hint_contribtion_screen">3. Sluk skærmen</string>
-  <string name="attachproject_hint_projectwebsite_header">Besøg projekt-websider for at:</string>
-  <string name="attachproject_hint_projectwebsite_science">Lære mere om videnskaben</string>
-  <string name="attachproject_hint_projectwebsite_stats">Se bidragsstatistik</string>
-  <string name="attachproject_hint_projectwebsite_community">Tale med andre frivillige</string>
-  <string name="attachproject_hint_platforms_header">BOINC findes også til din bærbare eller stationære computer; besøg boinc.berkeley.edu for at finde ud af mere.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Kontakter projekt-server …</string>
-  <string name="attachproject_login_image_description">Projektlogo.</string>
-  <string name="attachproject_login_header_general_area">Generelt område:</string>
-  <string name="attachproject_login_header_specific_area">Specifikt område:</string>
-  <string name="attachproject_login_header_description">Beskrivelse:</string>
-  <string name="attachproject_login_header_home">Hjem:</string>
-  <string name="attachproject_login_header_url">Webside:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Enhedstypen understøttes af dette projekt</string>
-  <string name="attachproject_login_platform_not_supported">Enheden understøttes ikke af dette projekt</string>
-  <string name="attachproject_login_category_terms_of_use">Brugsvilkår for</string>
-  <string name="attachproject_login_accept_terms_of_use">Ved at oprette en konto hos dette projekt, accepterer du brugsvilkårene, som vises herover.</string>
-  <string name="attachproject_login_category_login">Log ind med eksisterende konto</string>
-  <string name="attachproject_login_header_id_email">Email:</string>
-  <string name="attachproject_login_header_id_name">Navn:</string>
-  <string name="attachproject_login_header_pwd">Adgangskode:</string>
-  <string name="attachproject_login_category_creation">Kender du ikke</string>
-  <string name="attachproject_login_header_creation_enabled">Opret en konto for at deltage:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Besøg projektets webside for at oprette en konto:</string>
-  <string name="attachproject_login_header_creation_disabled">Dette projekt tager for tiden ikke imod nye konti.</string>
-  <string name="attachproject_login_button_registration">Registrér</string>
-  <string name="attachproject_login_button_login">Log ind</string>
-  <string name="attachproject_login_button_forgotpw">Glemt adgangskode</string>
-  <string name="attachproject_login_error_toast">Kontakt til projekt mislykkedes!</string>
-  <string name="attachproject_login_attached">Forbundet</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Kontoregistrering for</string>
-  <string name="attachproject_registration_header_url">Projekt:</string>
-  <string name="attachproject_registration_header_email">Email:</string>
-  <string name="attachproject_registration_header_username">Navn:</string>
-  <string name="attachproject_registration_header_teamname">Hold:</string>
-  <string name="attachproject_registration_header_pwd">Adgangskode:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Tast igen:</string>
-  <string name="attachproject_registration_button">Opret</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Brug BOINC kontohåndtering for at tilføje og vedligeholde adskillige projekter</string>
-  <string name="attachproject_acctmgr_header">Tilføj kontohåndtering</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Bruger:</string>
-  <string name="attachproject_acctmgr_header_pwd">Adgangskode:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Tast igen:</string>
-  <string name="attachproject_acctmgr_button">Tilføj</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Bruger ikke fundet</string>
-  <string name="attachproject_error_short_pwd">Adgangskode for kort</string>
-  <string name="attachproject_error_no_internet">Forbindelsesfejl</string>
-  <string name="attachproject_error_pwd_no_match">Adgangskoder passer ikke sammen</string>
-  <string name="attachproject_error_pwd_no_retype">Indtast venligst adgangskode igen</string>
-  <string name="attachproject_error_no_url">Indtast venligst URL</string>
-  <string name="attachproject_error_no_email">Indtast venligst emailadresse</string>
-  <string name="attachproject_error_no_pwd">Indtast venligst en adgangskode</string>
-  <string name="attachproject_error_no_name">Indtast venligst brugernavn</string>
-  <string name="attachproject_error_unknown">mislykkedes</string>
-  <string name="attachproject_error_bad_username">Brugernavn afvist</string>
-  <string name="attachproject_error_email_in_use">Email er allerede i brug</string>
-  <string name="attachproject_error_project_down">Projekt er offline</string>
-  <string name="attachproject_error_email_bad_syntax">Email afvist</string>
-  <string name="attachproject_error_bad_pwd">Adgangskode afvist</string>
-  <string name="attachproject_error_creation_disabled">Oprettelse af konti er slået fra for dette projekt</string>
-  <string name="attachproject_error_invalid_url">Ugyldig URL</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Tilbage</string>
-  <string name="attachproject_working_finish_button">Afslut</string>
-  <string name="attachproject_working_check_desc">Succesfuldt</string>
-  <string name="attachproject_working_failed_desc">Mislykkedes</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Forbind</string>
-  <string name="attachproject_working_verify">Verificér konto</string>
-  <string name="attachproject_working_register">Registrér konto</string>
-  <string name="attachproject_working_login">Log ind</string>
-  <string name="attachproject_working_acctmgr">Tilføj kontohåndtering</string>
-  <string name="attachproject_working_acctmgr_sync">Synkronisér</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Berør her for at vælge et projekt.</string>
-  <string name="main_error">Ups</string>
-  <string name="main_error_long">… dette burde ikke ske!\nKlik på ikonet for at prøve igen.</string>
-  <string name="main_title_icon_desc">BOINC-ikon</string>
-  <!--tab names-->
-  <string name="tab_status">Status</string>
-  <string name="tab_projects">Projekter</string>
-  <string name="tab_tasks">Opgaver</string>
-  <string name="tab_transfers">Overførsler</string>
-  <string name="tab_preferences">Indstillinger</string>
-  <string name="tab_notices">Meddelelser</string>
-  <string name="tab_desc">Navigering</string>
-  <!--status strings-->
-  <string name="status_running">Beregner</string>
-  <string name="status_running_long">Tak for din deltagelse.</string>
-  <string name="status_paused">Suspenderet</string>
-  <string name="status_idle">Intet at beregne</string>
-  <string name="status_idle_long">Venter på opgaver …</string>
-  <string name="status_computing_disabled">Suspenderet</string>
-  <string name="status_computing_disabled_long">Tryk play for at genoptage netværk og beregning.</string>
-  <string name="status_launching">Starter …</string>
-  <string name="status_noproject">Vælg et projekt at deltage i.</string>
-  <string name="status_closing">Lukker …</string>
-  <string name="status_benchmarking">Måler ydelsesevne …</string>
-  <string name="status_image_description">projektbillede</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Indlæser indstillinger …</string>
-  <string name="prefs_submit_button">Gem</string>
-  <string name="prefs_dialog_title">Indtast ny værdi:</string>
-  <string name="prefs_dialog_title_selection">Vælg:</string>
-  <string name="prefs_category_general">Generelt</string>
-  <string name="prefs_category_network">Netværk</string>
-  <string name="prefs_category_power">Strøm</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Lagring</string>
-  <string name="prefs_category_memory">Hukommelse</string>
-  <string name="prefs_category_debug">Fejlsøgning</string>
-  <string name="prefs_show_advanced_header">Vis avancerede indstillinger …</string>
-  <string name="prefs_suspend_when_screen_on">Sæt beregning på pause, når skærmen er tændt</string>
-  <string name="prefs_stationary_device_mode_header">Tilstand for stationære enheder</string>
-  <string name="prefs_stationary_device_mode_description">Tillader beregning uanset strømindstillinger. Kun tilgængelig, hvis enheden ikke har et batteri.</string>
-  <string name="prefs_power_source_header">Strømkilder for beregning</string>
-  <string name="prefs_power_source_description">Vælger strømkilder, som BOINC må beregne under.</string>
-  <string name="prefs_power_source_ac">Oplader til stikkontakt</string>
-  <string name="prefs_power_source_usb">USB-forbindelse</string>
-  <string name="prefs_power_source_wireless">Trådløs oplader</string>
-  <string name="prefs_power_source_battery">Batteri</string>
-  <string name="battery_charge_min_pct_header">Min. batteriniveau</string>
-  <string name="battery_charge_min_pct_description">BOINC stopper beregninger under defineret batteriniveau.</string>
-  <string name="battery_temperature_max_header">Maks. batteritemperatur</string>
-  <string name="battery_temperature_max_description">BOINC stopper beregninger over defineret batteritemperatur. Det anbefales ikke at ændre denne værdi.</string>
-  <string name="prefs_disk_max_pct_header">Maks. brugt lagringsplads</string>
-  <string name="prefs_disk_max_pct_description">Hvor mange procent af din enheds lagringsplads må BOINC bruge?</string>
-  <string name="prefs_disk_min_free_gb_header">Min. lagringsplads</string>
-  <string name="prefs_disk_min_free_gb_description">Hvor meget af din enheds lagringsplads skal forblive ubrugt?</string>
-  <string name="prefs_disk_access_interval_header">Interval for tilgang</string>
-  <string name="prefs_disk_access_interval_description">Foreslår et interval mellem disktilgang</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Daglig begrænsning på overførsler</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Begrænser den daglige datatraffik forårsaget af BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Overfør kun opgaver over WiFi</string>
-  <string name="prefs_autostart_header">Autostart</string>
-  <string name="prefs_show_notification_notices_header">Vis notifikation for nye meddelelser</string>
-  <string name="prefs_show_notification_suspended_header">Vis notifikation under suspendering</string>
-  <string name="prefs_cpu_number_cpus_header">Brugte CPU-kerner</string>
-  <string name="prefs_cpu_number_cpus_description">Begrænser antallet af CPU-kerner, som BOINC bruger til beregninger.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pause ved CPU-belastning over</string>
-  <string name="prefs_cpu_other_load_suspension_description">Bestemmer hvornår BOINC sætter beregninger på pause på grund af andre app\'ers CPU-forbrug.</string>
-  <string name="prefs_cpu_time_max_header">CPU-begrænsning</string>
-  <string name="prefs_cpu_time_max_description">Begrænser CPU-tiden, som BOINC bruger til beregninger.</string>
-  <string name="prefs_memory_max_idle_header">RAM-begrænsning</string>
-  <string name="prefs_memory_max_idle_description">Begrænser mængden af RAM, som opgaver tillades at optage.</string>
-  <string name="prefs_client_log_flags_header">Log-flag for BOINC-klient</string>
-  <string name="prefs_gui_log_level_header">GUI-logniveau</string>
-  <string name="prefs_gui_log_level_description">Specificerer uddybningsniveau for GUI-logbeskeder.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">sek.</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Indlæser projekter …</string>
-  <string name="projects_add">Tilføj projekt</string>
-  <string name="projects_icon">Projekt-ikon</string>
-  <string name="projects_credits_header">Bidragsydere:</string>
-  <string name="projects_credits_host_header">(på denne enhed)</string>
-  <string name="projects_credits_user_header">(total)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Suspenderet af bruger</string>
-  <string name="projects_status_dontrequestmorework">Vil ikke modtage nye opgaver</string>
-  <string name="projects_status_ended">Projekt afsluttet – O.k. for at fjerne</string>
-  <string name="projects_status_detachwhendone">Vil blive fjernet, når opgaver er fuldført</string>
-  <string name="projects_status_schedrpcpending">Planlægningsforespørgsel afventer</string>
-  <string name="projects_status_schedrpcinprogress">Planlægningsforespørgsel under udførsel</string>
-  <string name="projects_status_trickleuppending">Trickle-up-besked afventer</string>
-  <string name="projects_status_backoff">Kommunikation planlagt om:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Projektkommandoer:</string>
-  <string name="projects_control_visit_website">Besøg hjemmeside</string>
-  <string name="projects_control_update">Opdatér</string>
-  <string name="projects_control_remove">Fjern</string>
-  <string name="projects_control_suspend">Suspendér</string>
-  <string name="projects_control_resume">Fortsæt</string>
-  <string name="projects_control_nonewtasks">Ingen nye opgaver</string>
-  <string name="projects_control_allownewtasks">Tillad nye opgaver</string>
-  <string name="projects_control_reset">Nulstil</string>
-  <string name="projects_control_dialog_title_acctmgr">Kommandoer for kontohåndtering:</string>
-  <string name="projects_control_sync_acctmgr">Synkronisér</string>
-  <string name="projects_control_remove_acctmgr">Deaktivér</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Fjern projekt?</string>
-  <string name="projects_confirm_detach_message">Er du sikker på, at du vil fjerne</string>
-  <string name="projects_confirm_detach_message2">fra BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Fjern</string>
-  <string name="projects_confirm_reset_title">Nulstil projekt</string>
-  <string name="projects_confirm_reset_message">Er du sikker på, at du vil nulstille</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Nulstil</string>
-  <string name="projects_confirm_remove_acctmgr_title">Deaktivér kontohåndtering</string>
-  <string name="projects_confirm_remove_acctmgr_message">Er du sikker på, du vil stoppe med at bruge</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Deaktivér</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Opgavenavn:</string>
-  <string name="tasks_header_elapsed_time">Forgangen tid:</string>
-  <string name="tasks_header_project_paused">(suspenderet)</string>
-  <string name="tasks_header_deadline">Deadline:</string>
-  <string name="tasks_result_new">ny</string>
-  <string name="tasks_result_files_downloading">venter på download</string>
-  <string name="tasks_result_files_downloaded">download komplet</string>
-  <string name="tasks_result_compute_error">beregningsfejl</string>
-  <string name="tasks_result_files_uploading">uploader</string>
-  <string name="tasks_result_files_uploaded">upload komplet</string>
-  <string name="tasks_result_aborted">afbrudt</string>
-  <string name="tasks_result_upload_failed">upload mislykkedes</string>
-  <string name="tasks_active_uninitialized">klar</string>
-  <string name="tasks_active_executing">kører</string>
-  <string name="tasks_active_suspended">suspenderet</string>
-  <string name="tasks_active_abort_pending">suspenderer</string>
-  <string name="tasks_active_quit_pending">suspenderer</string>
-  <string name="tasks_custom_suspended_via_gui">suspenderet</string>
-  <string name="tasks_custom_project_suspended_via_gui">projekt suspenderet</string>
-  <string name="tasks_custom_ready_to_report">klar til at rapportere</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Afbryd opgave?</string>
-  <string name="confirm_abort_task_message">Afbryd opgave:</string>
-  <string name="confirm_abort_task_confirm">Afbryd</string>
-  <string name="confirm_cancel">Annullér</string>
-  <string name="confirm_image_desc">Bekræftelsesdialog</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Indlæser overførsler …</string>
-  <string name="trans_upload">Upload</string>
-  <string name="trans_download">Download</string>
-  <string name="trans_retryin">prøv igen om</string>
-  <string name="trans_failed">mislykkedes</string>
-  <string name="trans_suspended">suspenderet</string>
-  <string name="trans_active">aktiv</string>
-  <string name="trans_pending">afventer</string>
-  <string name="trans_projectbackoff">projekt backoff</string>
-  <string name="trans_header_name">Fil:</string>
-  <string name="trans_control_retry">Prøv filoverførsler igen</string>
-  <string name="confirm_abort_trans_title">Afbryd overførsel?</string>
-  <string name="confirm_abort_trans_message">Afbryd fil:</string>
-  <string name="confirm_abort_trans_confirm">Afbryd</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Indlæser meddelelser …</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Indlæser logbeskeder …</string>
-  <string name="eventlog_client_header">Klientbeskeder</string>
-  <string name="eventlog_gui_header">GUI-beskeder</string>
-  <string name="eventlog_copy_toast">Log kopieret til udklipsholder.</string>
-  <string name="eventlog_email_subject">Hændelseslog for BOINC på Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Beregning suspenderet.</string>
-  <string name="suspend_batteries">Forbind din enhed til en oplader for at fortsætte beregning.</string>
-  <string name="suspend_screen_on">Sluk skærmen for at fortsætte beregning.</string>
-  <string name="suspend_useractive">Bruger er aktiv.</string>
-  <string name="suspend_tod">Tidsvindue for beregning brugt up.</string>
-  <string name="suspend_bm">BOINC måler din enheds ydelsesevne …</string>
-  <string name="suspend_disksize">Diskplads opbrugt.</string>
-  <string name="suspend_cputhrottle">CPU-neddrosling planlagt.</string>
-  <string name="suspend_noinput">Ingen nylig brugeraktivitet.</string>
-  <string name="suspend_delay">Initialiseringsforsinkelse.</string>
-  <string name="suspend_exclusiveapp">En eksklusiv app kører.</string>
-  <string name="suspend_cpu">Din enhed er optaget af andre apps.</string>
-  <string name="suspend_network_quota">BOINC har nået begrænsningen for netværksoverførsel.</string>
-  <string name="suspend_os">Stoppet af Android.</string>
-  <string name="suspend_wifi">Ikke forbundet til WiFi.</string>
-  <string name="suspend_battery_charging">Venter på at batteriet er mere opladet.</string>
-  <string name="suspend_battery_charging_long">Beregning vil blive genoptaget, når batteriniveau når</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">nuværende</string>
-  <string name="suspend_battery_overheating">Venter på at batteri køler ned</string>
-  <string name="suspend_user_req">Genoptager beregning …</string>
-  <string name="suspend_network_user_req">manuelt.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Forespurgt af bruger</string>
-  <string name="rpcreason_needwork">For at hente opgaver</string>
-  <string name="rpcreason_resultsdue">For at rapportere komplette opgaver</string>
-  <string name="rpcreason_trickleup">For at sende trickle-up-besked</string>
-  <string name="rpcreason_acctmgrreq">Forespurgt af kontohåndtering</string>
-  <string name="rpcreason_init">Projektinitialisering</string>
-  <string name="rpcreason_projectreq">Forespurgt af projekt</string>
-  <string name="rpcreason_unknown">Ukendt årsag</string>
-  <!--menu-->
-  <string name="menu_refresh">Opdatér</string>
-  <string name="menu_emailto">Send som email</string>
-  <string name="menu_copy">Kopiér til udklipsholder</string>
-  <string name="menu_eventlog">Hændelseslog</string>
-  <string name="menu_exit">Afslut BOINC</string>
-  <string name="menu_run_mode_disable">Suspendér</string>
-  <string name="menu_run_mode_enable">Genoptag</string>
-  <string name="menu_about">Om</string>
-  <string name="menu_help">Hjælp</string>
-  <!--about dialog-->
-  <string name="about_button">Tilbage</string>
-  <string name="about_title">Om</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Version</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">\u00A9 2003–2014 University of California, Berkeley.</string>
-  <string name="about_copyright_reserved">Alle rettigheder forbeholdes.</string>
-  <string name="about_credits">Tak til Max Planck Institute for Gravitational Physics, IBM Corporation og HTC Corporation for deres støtte.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Ny meddelelse fra</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nye meddelelser</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">App til frivillig beregning detekteret</string>
-  <string name="nonexcl_dialog_text">En anden app til frivillig beregning kører på denne enhed. Kun én version kan køre ad gangen.</string>
-  <string name="nonexcl_dialog_exit">Afslut</string>
-  <!--social integration-->
-  <string name="social_invite_button">Invitér venner</string>
-  <string name="social_invite_intent_title">Hvordan vil du dele?</string>
-  <string name="social_invite_content_title">Jeg bruger min smartphone til videnskab!</string>
-  <string name="social_invite_content_body">Jeg bruger min %1$s til at lave beregninger for videnskaben! Det kan du også! Download app\'en fra: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-de/strings.xml b/android/BOINC/res/values-de/strings.xml
deleted file mode 100644
index ff25c77..0000000
--- a/android/BOINC/res/values-de/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Es wird geladen. Bitte warten…</string>
-  <string name="generic_button_continue">Fortsetzen</string>
-  <string name="generic_button_finish">Beenden</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Wählen Sie ein wissenschaftliches Projekt, zu dem Sie beitragen wollen:</string>
-  <string name="attachproject_list_header">Projekt auswählen</string>
-  <string name="attachproject_list_manual_button">Projekt mittels URL hinzufügen</string>
-  <string name="attachproject_list_manual_dialog_title">Projekt-URL eingeben:</string>
-  <string name="attachproject_list_manual_dialog_button">Projekt hinzufügen</string>
-  <string name="attachproject_list_manual_no_url">Bitte die Projekt-URL eingeben</string>
-  <string name="attachproject_list_acctmgr_button">Kontoverwaltung hinzufügen</string>
-  <string name="attachproject_list_no_internet">Keine Internetverbindung</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Kontoinformationen eingeben</string>
-  <string name="attachproject_credential_input_desc">Kontoinformationen für ausgewählte Projekte eingeben:</string>
-  <string name="attachproject_credential_input_show_pwd">Passwort anzeigen</string>
-  <string name="attachproject_individual_credential_input">Projekte individuell hinzufügen</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Es gab Probleme beim Hinzufügen der wissenschaftlichen Projekte:</string>
-  <string name="attachproject_conflict_undefined">Keine Verbindung möglich</string>
-  <string name="attachproject_conflict_not_unique">Konto existiert bereits mit anderem Passwort</string>
-  <string name="attachproject_conflict_bad_password">Falsches Passwort</string>
-  <string name="attachproject_conflict_unknown_user">Konto existiert nicht</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Konto existiert nicht, bitte die Projektwebseite besuchen um sich zu registrieren</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">hinzufügen</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Hinweis</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">So können Sie beitragen:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. WLAN Verbindung herstellen</string>
-  <string name="attachproject_hint_contribtion_charger">2. Ladegerät anschließen</string>
-  <string name="attachproject_hint_contribtion_screen">3. Bildschirm ausschalten</string>
-  <string name="attachproject_hint_projectwebsite_header">Die Projektwebseite besuchen um:</string>
-  <string name="attachproject_hint_projectwebsite_science">Mehr über die Wissenschaft zu erfahren</string>
-  <string name="attachproject_hint_projectwebsite_stats">Die Statistik zur Teilnahme zu sehen</string>
-  <string name="attachproject_hint_projectwebsite_community">Kontakt mit anderen Teilnehmern aufzunehmen</string>
-  <string name="attachproject_hint_platforms_header">BOINC ist auch für Ihren Computer oder Laptop verfügbar, auf boinc.berkeley.edu erfahren Sie mehr.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">kontaktiere Projektserver…</string>
-  <string name="attachproject_login_image_description">Projektlogo.</string>
-  <string name="attachproject_login_header_general_area">Bereich:</string>
-  <string name="attachproject_login_header_specific_area">Fachbereich:</string>
-  <string name="attachproject_login_header_description">Beschreibung:</string>
-  <string name="attachproject_login_header_home">Betreiber:</string>
-  <string name="attachproject_login_header_url">Webseite:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Dieses Projekt unterstützt Android-Geräte</string>
-  <string name="attachproject_login_platform_not_supported">Dieses Projekt unterstützt keine Android-Geräte</string>
-  <string name="attachproject_login_category_terms_of_use">Nutzungsbedingungen für</string>
-  <string name="attachproject_login_accept_terms_of_use">Wenn Sie bei diesem Projekt ein Konto anlegen, akzeptieren Sie die oben gezeigten Nutzungsbedingungen.</string>
-  <string name="attachproject_login_category_login">Mit bestehendem Konto anmelden</string>
-  <string name="attachproject_login_header_id_email">E-Mail:</string>
-  <string name="attachproject_login_header_id_name">Name:</string>
-  <string name="attachproject_login_header_pwd">Passwort:</string>
-  <string name="attachproject_login_category_creation">Neu bei</string>
-  <string name="attachproject_login_header_creation_enabled">Ein Konto erstellen um teilzunehmen:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Die Projektwebseite besuchen um ein Konto zu erstellen:</string>
-  <string name="attachproject_login_header_creation_disabled">Dieses Projekt erlaubt momentan keine neuen Konten.</string>
-  <string name="attachproject_login_button_registration">Registrieren</string>
-  <string name="attachproject_login_button_login">Anmelden</string>
-  <string name="attachproject_login_button_forgotpw">Passwort vergessen</string>
-  <string name="attachproject_login_error_toast">Verbindung zum Projekt fehlgeschlagen!</string>
-  <string name="attachproject_login_attached">Verbunden</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Konto-Registrierung für</string>
-  <string name="attachproject_registration_header_url">Projekt:</string>
-  <string name="attachproject_registration_header_email">E-Mail:</string>
-  <string name="attachproject_registration_header_username">Name:</string>
-  <string name="attachproject_registration_header_teamname">Team:</string>
-  <string name="attachproject_registration_header_pwd">Passwort:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Bestätigung:</string>
-  <string name="attachproject_registration_button">Erstellen</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Eine BOINC Kontoverwaltung benutzen um mehrere Projekte hinzuzufügen und zu verwalten.</string>
-  <string name="attachproject_acctmgr_header">Kontoverwaltung hinzufügen</string>
-  <string name="attachproject_acctmgr_header_url">Adresse</string>
-  <string name="attachproject_acctmgr_header_name">Benutzer:</string>
-  <string name="attachproject_acctmgr_header_pwd">Passwort:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Bestätigung:</string>
-  <string name="attachproject_acctmgr_button">Hinzufügen</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Benutzer nicht gefunden</string>
-  <string name="attachproject_error_short_pwd">Passwort ist zu kurz</string>
-  <string name="attachproject_error_no_internet">Verbindungsfehler</string>
-  <string name="attachproject_error_pwd_no_match">Passwörter stimmen nicht überein</string>
-  <string name="attachproject_error_pwd_no_retype">Bitte das Passwort erneut eingeben</string>
-  <string name="attachproject_error_no_url">Bitte geben Sie die Adresse ein</string>
-  <string name="attachproject_error_no_email">Bitte geben Sie Ihre E-Mail-Adresse ein</string>
-  <string name="attachproject_error_no_pwd">Bitte Passwort eingeben</string>
-  <string name="attachproject_error_no_name">Bitte einen Benutzernamen eingeben</string>
-  <string name="attachproject_error_unknown">fehlgeschlagen</string>
-  <string name="attachproject_error_bad_username">Benutzername nicht erlaubt</string>
-  <string name="attachproject_error_email_in_use">E-Mail-Adresse ist bereits registriert</string>
-  <string name="attachproject_error_project_down">Projekt nicht erreichbar</string>
-  <string name="attachproject_error_email_bad_syntax">E-Mail-Adresse nicht akzeptiert</string>
-  <string name="attachproject_error_bad_pwd">Passwort zu kurz</string>
-  <string name="attachproject_error_creation_disabled">Die Kontoerstellung ist bei diesem Projekt deaktiviert</string>
-  <string name="attachproject_error_invalid_url">Ungültige Adresse</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Zurück</string>
-  <string name="attachproject_working_finish_button">Beenden</string>
-  <string name="attachproject_working_check_desc">Erfolgreich</string>
-  <string name="attachproject_working_failed_desc">Fehlgeschlagen</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Verbinden</string>
-  <string name="attachproject_working_verify">Konto überprüfen</string>
-  <string name="attachproject_working_register">Konto anlegen</string>
-  <string name="attachproject_working_login">Anmelden</string>
-  <string name="attachproject_working_acctmgr">Kontoverwaltung hinzufügen</string>
-  <string name="attachproject_working_acctmgr_sync">Synchronisieren</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Hier tippen um ein Projekt auszuwählen.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">…das sollte eigentlich nicht passieren!\nAuf das Symbol klicken um es erneut zu probieren.</string>
-  <string name="main_title_icon_desc">BOINC Logo</string>
-  <!--tab names-->
-  <string name="tab_status">Status</string>
-  <string name="tab_projects">Projekte</string>
-  <string name="tab_tasks">Aufgaben</string>
-  <string name="tab_transfers">Übertragungen</string>
-  <string name="tab_preferences">Einstellungen</string>
-  <string name="tab_notices">Nachrichten</string>
-  <string name="tab_desc">Navigation</string>
-  <!--status strings-->
-  <string name="status_running">Berechnung läuft</string>
-  <string name="status_running_long">Vielen Dank für Ihre Beteiligung.</string>
-  <string name="status_paused">angehalten</string>
-  <string name="status_idle">Nichts zu tun</string>
-  <string name="status_idle_long">Warten auf Aufgaben…</string>
-  <string name="status_computing_disabled">angehalten</string>
-  <string name="status_computing_disabled_long">Play drücken um Netzwerkaktivität und Berechnung fortzusetzen.</string>
-  <string name="status_launching">Startet…</string>
-  <string name="status_noproject">Wählen Sie ein Projekt zur Teilnahme aus.</string>
-  <string name="status_closing">Beenden…</string>
-  <string name="status_benchmarking">Leistungsüberprüfung…</string>
-  <string name="status_image_description">Projektbild</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">lese Einstellungen…</string>
-  <string name="prefs_submit_button">Speichern</string>
-  <string name="prefs_dialog_title">Neuen Wert eingeben:</string>
-  <string name="prefs_dialog_title_selection">Auswählen:</string>
-  <string name="prefs_category_general">Allgemeines</string>
-  <string name="prefs_category_network">Netzwerk</string>
-  <string name="prefs_category_power">Energie</string>
-  <string name="prefs_category_cpu">Prozessor</string>
-  <string name="prefs_category_storage">Speicherplatz</string>
-  <string name="prefs_category_memory">Arbeitsspeicher</string>
-  <string name="prefs_category_debug">Fehlerdiagnose</string>
-  <string name="prefs_show_advanced_header">Zeige erweiterte Einstellungen und Steuerungen…</string>
-  <string name="prefs_suspend_when_screen_on">Die Berechnung anhalten wenn der Bildschirm eingeschaltet ist</string>
-  <string name="prefs_stationary_device_mode_header">Modus für feststehende Geräte</string>
-  <string name="prefs_stationary_device_mode_description">Erlaubt die Berechnung unabhängig von Energieeinstellungen. Nur für Geräte ohne Akku auswählen.</string>
-  <string name="prefs_power_source_header">Energiequellen für Berechnung</string>
-  <string name="prefs_power_source_description">Die Energiequellen auswählen mit denen eine Berechnung erlaubt ist.</string>
-  <string name="prefs_power_source_ac">Steckdose</string>
-  <string name="prefs_power_source_usb">USB Verbindung</string>
-  <string name="prefs_power_source_wireless">Kabelloses Ladegerät</string>
-  <string name="prefs_power_source_battery">Akku</string>
-  <string name="battery_charge_min_pct_header">Min. Akku-Ladestand</string>
-  <string name="battery_charge_min_pct_description">BOINC hält die Berechnung an, wenn der Akkuladestand unter den gewählten Wert sinkt.</string>
-  <string name="battery_temperature_max_header">Max. Akkutemperatur</string>
-  <string name="battery_temperature_max_description">BOINC hält die Berechnung an, sobald diese Temperatur überschritten wird. Es wird nicht empfohlen diesen Wert zu ändern.</string>
-  <string name="prefs_disk_max_pct_header">Max. zu nutzender Speicher</string>
-  <string name="prefs_disk_max_pct_description">Wie viel Prozent Ihres Speichers darf BOINC maximal verwenden?</string>
-  <string name="prefs_disk_min_free_gb_header">min. freizuhaltender Speicher</string>
-  <string name="prefs_disk_min_free_gb_description">Wie viel Speicher soll mindestens frei bleiben?</string>
-  <string name="prefs_disk_access_interval_header">Zugriffsintervall</string>
-  <string name="prefs_disk_access_interval_description">Vorschlag für den Zeitraum zwischen zwei Speicherzugriffen</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">tägliche Transferbegrenzung</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Begrenzt die Datenmenge welche täglich durch BOINC übertragen wird.</string>
-  <string name="prefs_network_wifi_only_header">Übertrage Aufgaben nur per WLAN</string>
-  <string name="prefs_autostart_header">Automatisch starten</string>
-  <string name="prefs_show_notification_notices_header">Zeige Meldung für neue Nachrichten</string>
-  <string name="prefs_show_notification_suspended_header">Zeige Nachrichten wenn angehalten</string>
-  <string name="prefs_cpu_number_cpus_header">Benutzte Prozessoren</string>
-  <string name="prefs_cpu_number_cpus_description">Limitiert die Anzahl der Prozessoren welche BOINC nutzen darf.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Anhalten wenn Prozessornutzung über</string>
-  <string name="prefs_cpu_other_load_suspension_description">Legt fest wann BOINC angehalten wird weil andere Apps die CPU benutzen.</string>
-  <string name="prefs_cpu_time_max_header">Prozessorbegrenzung</string>
-  <string name="prefs_cpu_time_max_description">Limitiert die Prozessorzeit, die BOINC nutzen darf.</string>
-  <string name="prefs_memory_max_idle_header">Arbeitsspeicherlimit</string>
-  <string name="prefs_memory_max_idle_description">Limitiert den Arbeitsspeicher welcher für Aufgaben zur Verfügung steht.</string>
-  <string name="prefs_client_log_flags_header">BOINC Client Protokolleinstellungen</string>
-  <string name="prefs_gui_log_level_header">GUI Protokollierstufe</string>
-  <string name="prefs_gui_log_level_description">Einstellung der Detailiertheit der GUI Protokollmeldungen.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">sek.</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Lade Projekte…</string>
-  <string name="projects_add">Projekt hinzufügen</string>
-  <string name="projects_icon">Projektsymbol</string>
-  <string name="projects_credits_header">Punkte:</string>
-  <string name="projects_credits_host_header">(auf diesem Gerät)</string>
-  <string name="projects_credits_user_header">(gesamt)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Angehalten durch Benutzer</string>
-  <string name="projects_status_dontrequestmorework">Keine neuen Arbeitspakete</string>
-  <string name="projects_status_ended">Projekt wurde beendet - kann jetzt entfernt werden</string>
-  <string name="projects_status_detachwhendone">wird entfernt wenn Aufgaben erledigt</string>
-  <string name="projects_status_schedrpcpending">Serveranfrage ausstehend</string>
-  <string name="projects_status_schedrpcinprogress">Serveranfrage läuft</string>
-  <string name="projects_status_trickleuppending">Trickle-Up Nachricht ausstehend</string>
-  <string name="projects_status_backoff">nächste Kommunikation in:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Projektbefehle:</string>
-  <string name="projects_control_visit_website">Webseite besuchen</string>
-  <string name="projects_control_update">Aktualisieren</string>
-  <string name="projects_control_remove">Entfernen</string>
-  <string name="projects_control_suspend">Anhalten</string>
-  <string name="projects_control_resume">Fortsetzen</string>
-  <string name="projects_control_nonewtasks">Keine neuen Aufgaben</string>
-  <string name="projects_control_allownewtasks">Neue Aufgaben zulassen</string>
-  <string name="projects_control_reset">Zurücksetzen</string>
-  <string name="projects_control_dialog_title_acctmgr">Kontoverwaltungsbefehle:</string>
-  <string name="projects_control_sync_acctmgr">Synchronisieren</string>
-  <string name="projects_control_remove_acctmgr">Deaktivieren</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Projekt entfernen?</string>
-  <string name="projects_confirm_detach_message">Wollen Sie wirklich</string>
-  <string name="projects_confirm_detach_message2">von BOINC entfernen?</string>
-  <string name="projects_confirm_detach_confirm">Entfernen</string>
-  <string name="projects_confirm_reset_title">Projekt zurücksetzen</string>
-  <string name="projects_confirm_reset_message">Sind Sie sicher, dass Projekt neu zu initialisieren</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Zurücksetzen</string>
-  <string name="projects_confirm_remove_acctmgr_title">Kontoverwaltung deaktivieren</string>
-  <string name="projects_confirm_remove_acctmgr_message">Sind Sie sicher die Kontoverwaltung zu entfernen</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Deaktivieren</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Aufgabenname:</string>
-  <string name="tasks_header_elapsed_time">Abgelaufene Zeit:</string>
-  <string name="tasks_header_project_paused">(angehalten)</string>
-  <string name="tasks_header_deadline">Ablaufdatum:</string>
-  <string name="tasks_result_new">neu</string>
-  <string name="tasks_result_files_downloading">herunterladen läuft</string>
-  <string name="tasks_result_files_downloaded">herunterladen abgeschlossen</string>
-  <string name="tasks_result_compute_error">Berechnungsfehler</string>
-  <string name="tasks_result_files_uploading">hochladen</string>
-  <string name="tasks_result_files_uploaded">hochladen abgeschlossen</string>
-  <string name="tasks_result_aborted">abgebrochen</string>
-  <string name="tasks_result_upload_failed">hochladen fehlgeschlagen</string>
-  <string name="tasks_active_uninitialized">bereit</string>
-  <string name="tasks_active_executing">wird ausgeführt</string>
-  <string name="tasks_active_suspended">angehalten</string>
-  <string name="tasks_active_abort_pending">wird angehalten</string>
-  <string name="tasks_active_quit_pending">wird angehalten</string>
-  <string name="tasks_custom_suspended_via_gui">angehalten</string>
-  <string name="tasks_custom_project_suspended_via_gui">Projekt angehalten</string>
-  <string name="tasks_custom_ready_to_report">meldebereit</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Aufgabe abbrechen?</string>
-  <string name="confirm_abort_task_message">Aufgabe abbrechen:</string>
-  <string name="confirm_abort_task_confirm">Aufgabe abbrechen</string>
-  <string name="confirm_cancel">Zurück</string>
-  <string name="confirm_image_desc">Bestätigungsdialog</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Lade Übertragungen…</string>
-  <string name="trans_upload">Hochladen</string>
-  <string name="trans_download">Herunterladen</string>
-  <string name="trans_retryin">erneut versuchen in</string>
-  <string name="trans_failed">fehlgeschlagen</string>
-  <string name="trans_suspended">angehalten</string>
-  <string name="trans_active">aktiv</string>
-  <string name="trans_pending">ausstehend</string>
-  <string name="trans_projectbackoff">Projektwartezeit</string>
-  <string name="trans_header_name">Datei:</string>
-  <string name="trans_control_retry">Übertragung wiederholen</string>
-  <string name="confirm_abort_trans_title">Übertragung abbrechen?</string>
-  <string name="confirm_abort_trans_message">Abbruch-Datei:</string>
-  <string name="confirm_abort_trans_confirm">Übertragung abbrechen</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Lade Nachrichten...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Lade Protokollmeldungen…</string>
-  <string name="eventlog_client_header">Client Meldungen</string>
-  <string name="eventlog_gui_header">GUI Meldungen</string>
-  <string name="eventlog_copy_toast">Protokoll in die Zwischenablage kopiert.</string>
-  <string name="eventlog_email_subject">Ereignisprotokoll für BOINC auf Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Berechnung angehalten.</string>
-  <string name="suspend_batteries">Schließen Sie Ihr Gerät an eine Stromquelle an um weiterzurechnen.</string>
-  <string name="suspend_screen_on">Bildschirm ausschalten um Berechnung fortzusetzen.</string>
-  <string name="suspend_useractive">Benutzer ist aktiv.</string>
-  <string name="suspend_tod">Außerhalb der Zeitbeschränkungen.</string>
-  <string name="suspend_bm">BOINC ermittelt die Leistungsfähigkeit ihres Gerätes…</string>
-  <string name="suspend_disksize">Kein Speicherplatz mehr verfügbar.</string>
-  <string name="suspend_cputhrottle">Geplante Prozessordrosselung.</string>
-  <string name="suspend_noinput">Keine Benutzeraktivität.</string>
-  <string name="suspend_delay">Startverzögerung.</string>
-  <string name="suspend_exclusiveapp">Eine exklusive Anwendung läuft.</string>
-  <string name="suspend_cpu">Ihr Gerät ist mit anderen Apps ausgelastet.</string>
-  <string name="suspend_network_quota">Netzwerkübertragungslimit erreicht.</string>
-  <string name="suspend_os">Gestoppt von Android.</string>
-  <string name="suspend_wifi">Nicht per WLAN verbunden.</string>
-  <string name="suspend_battery_charging">Warten bis der Akku geladen ist.</string>
-  <string name="suspend_battery_charging_long">Berechnung wird fortgesetzt wenn der Ladezustand größer</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">aktuell</string>
-  <string name="suspend_battery_overheating">Warten bis der Akku abgekühlt ist</string>
-  <string name="suspend_user_req">Berechnung wird fortgesetzt…</string>
-  <string name="suspend_network_user_req">manuell.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Vom Nutzer gefordert</string>
-  <string name="rpcreason_needwork">Um Arbeit zu holen</string>
-  <string name="rpcreason_resultsdue">Um Aufgaben abzuliefern</string>
-  <string name="rpcreason_trickleup">Um Trickle-Up Nachricht zu senden</string>
-  <string name="rpcreason_acctmgrreq">Angefordert vom Kontomanager</string>
-  <string name="rpcreason_init">Projektinitialisierung</string>
-  <string name="rpcreason_projectreq">Vom Projekt angefordert</string>
-  <string name="rpcreason_unknown">Unbekannter Grund</string>
-  <!--menu-->
-  <string name="menu_refresh">Neu laden</string>
-  <string name="menu_emailto">Als E-Mail versenden</string>
-  <string name="menu_copy">In Zwischenablage kopieren</string>
-  <string name="menu_eventlog">Statusmeldungen</string>
-  <string name="menu_exit">BOINC beenden</string>
-  <string name="menu_run_mode_disable">Anhalten</string>
-  <string name="menu_run_mode_enable">Fortsetzen</string>
-  <string name="menu_about">Über</string>
-  <string name="menu_help">Hilfe</string>
-  <!--about dialog-->
-  <string name="about_button">Zurück</string>
-  <string name="about_title">Über</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Version</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">© 2003–2014 Universität von Kalifornien, Berkeley.</string>
-  <string name="about_copyright_reserved">Alle Rechte vorbehalten.</string>
-  <string name="about_credits">Danke dem Max Planck Institut für Gravitationsphysik, IBM und HTC für die Unterstützung.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Neue Nachricht von</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">Neue Nachrichten</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Volunteer Computing App gefunden</string>
-  <string name="nonexcl_dialog_text">Eine weitere Volunteer Computing App läuft auf diesem Gerät. Es kann immer nur eine App verwendet werden.</string>
-  <string name="nonexcl_dialog_exit">Beenden</string>
-  <!--social integration-->
-  <string name="social_invite_button">Freunde einladen</string>
-  <string name="social_invite_intent_title">Wie möchten Sie andere informieren?</string>
-  <string name="social_invite_content_title">Ich betreibe Forschung mit meinem Smartphone!</string>
-  <string name="social_invite_content_body">Ich benutze mein %1$s um für die Forschung zu rechnen. Du kannst das auch! Hier gibt es die App: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-el/strings.xml b/android/BOINC/res/values-el/strings.xml
deleted file mode 100644
index 490c4fd..0000000
--- a/android/BOINC/res/values-el/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-</resources>
\ No newline at end of file
diff --git a/android/BOINC/res/values-en/strings.xml b/android/BOINC/res/values-en/strings.xml
deleted file mode 100644
index e20e2df..0000000
--- a/android/BOINC/res/values-en/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Loading! Please wait…</string>
-  <string name="generic_button_continue">Continue</string>
-  <string name="generic_button_finish">Finish</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Select scientific projects you want to contribute to:</string>
-  <string name="attachproject_list_header">Choose a project</string>
-  <string name="attachproject_list_manual_button">Add project by URL</string>
-  <string name="attachproject_list_manual_dialog_title">Enter project URL:</string>
-  <string name="attachproject_list_manual_dialog_button">Add project</string>
-  <string name="attachproject_list_manual_no_url">Please enter project URL</string>
-  <string name="attachproject_list_acctmgr_button">Add account manager</string>
-  <string name="attachproject_list_no_internet">No Internet connection</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Enter account information</string>
-  <string name="attachproject_credential_input_desc">Enter account information for selected projects:</string>
-  <string name="attachproject_credential_input_show_pwd">Show password</string>
-  <string name="attachproject_individual_credential_input">Attach projects individually</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">There have been problems attaching scientific projects:</string>
-  <string name="attachproject_conflict_undefined">Could not connect</string>
-  <string name="attachproject_conflict_not_unique">Account exists with different password</string>
-  <string name="attachproject_conflict_bad_password">Password incorrect</string>
-  <string name="attachproject_conflict_unknown_user">Account does not exist</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Account does not exist, visit project website to register</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Attaching</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Hint</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">How to contribute:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Connect to WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Plug in Charger</string>
-  <string name="attachproject_hint_contribtion_screen">3. Turn off Screen</string>
-  <string name="attachproject_hint_projectwebsite_header">Visit project websites to:</string>
-  <string name="attachproject_hint_projectwebsite_science">Learn more about the science</string>
-  <string name="attachproject_hint_projectwebsite_stats">View contribution statistics</string>
-  <string name="attachproject_hint_projectwebsite_community">Get in touch with other volunteers</string>
-  <string name="attachproject_hint_platforms_header">BOINC is also available for your computer or laptop, visit boinc.berkeley.edu to learn more.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Contacting project server…</string>
-  <string name="attachproject_login_image_description">Project logo.</string>
-  <string name="attachproject_login_header_general_area">General area:</string>
-  <string name="attachproject_login_header_specific_area">Specific area:</string>
-  <string name="attachproject_login_header_description">Description:</string>
-  <string name="attachproject_login_header_home">Home:</string>
-  <string name="attachproject_login_header_url">Website:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Device type is supported by this project</string>
-  <string name="attachproject_login_platform_not_supported">Device is not supported by this project</string>
-  <string name="attachproject_login_category_terms_of_use">Terms of use for</string>
-  <string name="attachproject_login_accept_terms_of_use">By creating an account with this project, you accept the terms of use as shown above.</string>
-  <string name="attachproject_login_category_login">Sign in with existing account</string>
-  <string name="attachproject_login_header_id_email">eMail:</string>
-  <string name="attachproject_login_header_id_name">Name:</string>
-  <string name="attachproject_login_header_pwd">Password:</string>
-  <string name="attachproject_login_category_creation">New to </string>
-  <string name="attachproject_login_header_creation_enabled">Register an account to participate:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Visit project website to create an account:</string>
-  <string name="attachproject_login_header_creation_disabled">This project is not currently accepting new accounts.</string>
-  <string name="attachproject_login_button_registration">Register</string>
-  <string name="attachproject_login_button_login">Sign in</string>
-  <string name="attachproject_login_button_forgotpw">Forgot Password</string>
-  <string name="attachproject_login_error_toast">Contacting project failed!</string>
-  <string name="attachproject_login_attached">Attached</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Account registration for </string>
-  <string name="attachproject_registration_header_url">Project:</string>
-  <string name="attachproject_registration_header_email">eMail:</string>
-  <string name="attachproject_registration_header_username">Name:</string>
-  <string name="attachproject_registration_header_teamname">Team:</string>
-  <string name="attachproject_registration_header_pwd">Password:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Retype:</string>
-  <string name="attachproject_registration_button">Create</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Use BOINC account manager to add and manage multiple projects</string>
-  <string name="attachproject_acctmgr_header">Add account manager</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">User:</string>
-  <string name="attachproject_acctmgr_header_pwd">Password:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Retype:</string>
-  <string name="attachproject_acctmgr_button">Add</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">User not found</string>
-  <string name="attachproject_error_short_pwd">Password too short</string>
-  <string name="attachproject_error_no_internet">Connection failure</string>
-  <string name="attachproject_error_pwd_no_match">Passwords do not match</string>
-  <string name="attachproject_error_pwd_no_retype">Please type password again</string>
-  <string name="attachproject_error_no_url">Please enter URL</string>
-  <string name="attachproject_error_no_email">Please enter eMail address</string>
-  <string name="attachproject_error_no_pwd">Please enter a password</string>
-  <string name="attachproject_error_no_name">Please enter user name</string>
-  <string name="attachproject_error_unknown">failed</string>
-  <string name="attachproject_error_bad_username">User name refused</string>
-  <string name="attachproject_error_email_in_use">eMail is already in use</string>
-  <string name="attachproject_error_project_down">Project is offline</string>
-  <string name="attachproject_error_email_bad_syntax">eMail refused</string>
-  <string name="attachproject_error_bad_pwd">Password refused</string>
-  <string name="attachproject_error_creation_disabled">Account creation is disabled on this project</string>
-  <string name="attachproject_error_invalid_url">Invalid URL</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Back</string>
-  <string name="attachproject_working_finish_button">Finish</string>
-  <string name="attachproject_working_check_desc">Successful</string>
-  <string name="attachproject_working_failed_desc">Failed</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Connect</string>
-  <string name="attachproject_working_verify">Verify account</string>
-  <string name="attachproject_working_register">Register account</string>
-  <string name="attachproject_working_login">Log in</string>
-  <string name="attachproject_working_acctmgr">Add account manager</string>
-  <string name="attachproject_working_acctmgr_sync">Synchronize</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Tap here to choose a project.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">…this should not happen!\nClick on the icon to try again.</string>
-  <string name="main_title_icon_desc">BOINC icon</string>
-  <!--tab names-->
-  <string name="tab_status">Status</string>
-  <string name="tab_projects">Projects</string>
-  <string name="tab_tasks">Tasks</string>
-  <string name="tab_transfers">Transfers</string>
-  <string name="tab_preferences">Preferences</string>
-  <string name="tab_notices">Notices</string>
-  <string name="tab_desc">Navigation</string>
-  <!--status strings-->
-  <string name="status_running">Computing</string>
-  <string name="status_running_long">Thank you for participating.</string>
-  <string name="status_paused">Suspended</string>
-  <string name="status_idle">Nothing to do</string>
-  <string name="status_idle_long">Waiting for tasks…</string>
-  <string name="status_computing_disabled">Suspended</string>
-  <string name="status_computing_disabled_long">Press play to resume network and computation.</string>
-  <string name="status_launching">Starting…</string>
-  <string name="status_noproject">Choose a project to participate in.</string>
-  <string name="status_closing">Closing…</string>
-  <string name="status_benchmarking">Benchmarking…</string>
-  <string name="status_image_description">project image</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Reading preferences…</string>
-  <string name="prefs_submit_button">Save</string>
-  <string name="prefs_dialog_title">Enter new value:</string>
-  <string name="prefs_dialog_title_selection">Select:</string>
-  <string name="prefs_category_general">General</string>
-  <string name="prefs_category_network">Network</string>
-  <string name="prefs_category_power">Power</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Storage</string>
-  <string name="prefs_category_memory">Memory</string>
-  <string name="prefs_category_debug">Debug</string>
-  <string name="prefs_show_advanced_header">Show advanced preferences and controls…</string>
-  <string name="prefs_suspend_when_screen_on">Pause computation when screen is on</string>
-  <string name="prefs_stationary_device_mode_header">Stationary device mode</string>
-  <string name="prefs_stationary_device_mode_description">Allows computation regardless of Power preferences. Only enable if device does not have a battery.</string>
-  <string name="prefs_power_source_header">Power sources for computation</string>
-  <string name="prefs_power_source_description">Selects power sources BOINC is allowed to use for computation.</string>
-  <string name="prefs_power_source_ac">Wall socket</string>
-  <string name="prefs_power_source_usb">USB connection</string>
-  <string name="prefs_power_source_wireless">Wireless charger</string>
-  <string name="prefs_power_source_battery">Battery</string>
-  <string name="battery_charge_min_pct_header">Min. battery level</string>
-  <string name="battery_charge_min_pct_description">BOINC suspends computation below defined battery charge level.</string>
-  <string name="battery_temperature_max_header">Max. battery temperature</string>
-  <string name="battery_temperature_max_description">BOINC suspends computation above defined battery temperature. It is not recommended to change this value.</string>
-  <string name="prefs_disk_max_pct_header">Max. used storage space</string>
-  <string name="prefs_disk_max_pct_description">How many percent of your device\'s storage space is BOINC allowed to use?</string>
-  <string name="prefs_disk_min_free_gb_header">Min. spare storage</string>
-  <string name="prefs_disk_min_free_gb_description">How much of your device\'s storage space shall stay free?</string>
-  <string name="prefs_disk_access_interval_header">Access interval</string>
-  <string name="prefs_disk_access_interval_description">Suggests an interval between disk accesses</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Daily transfer limit</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limits the daily data traffic caused by BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Transfer tasks on WiFi only</string>
-  <string name="prefs_autostart_header">Autostart</string>
-  <string name="prefs_show_notification_notices_header">Show notification for new notices</string>
-  <string name="prefs_show_notification_suspended_header">Show notification when suspended</string>
-  <string name="prefs_cpu_number_cpus_header">Used CPU cores</string>
-  <string name="prefs_cpu_number_cpus_description">Limits the number of CPU cores BOINC uses for computation.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pause at CPU usage above</string>
-  <string name="prefs_cpu_other_load_suspension_description">Determines when BOINC pauses computation due to other apps\' CPU usage.</string>
-  <string name="prefs_cpu_time_max_header">CPU limit</string>
-  <string name="prefs_cpu_time_max_description">Limits the CPU time BOINC uses for computation.</string>
-  <string name="prefs_memory_max_idle_header">RAM limit</string>
-  <string name="prefs_memory_max_idle_description">Limits the amount of RAM tasks are allowed to occupy.</string>
-  <string name="prefs_client_log_flags_header">BOINC Client log flags</string>
-  <string name="prefs_gui_log_level_header">GUI log level</string>
-  <string name="prefs_gui_log_level_description">Specifies verbosity of GUI log messages.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">sec</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Reading projects…</string>
-  <string name="projects_add">Add project</string>
-  <string name="projects_icon">Project icon</string>
-  <string name="projects_credits_header">Credit:</string>
-  <string name="projects_credits_host_header">(on this device)</string>
-  <string name="projects_credits_user_header">(total)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Suspended by user</string>
-  <string name="projects_status_dontrequestmorework">Won\'t get new tasks</string>
-  <string name="projects_status_ended">Project ended - OK to remove</string>
-  <string name="projects_status_detachwhendone">Will remove when tasks done</string>
-  <string name="projects_status_schedrpcpending">Scheduler request pending</string>
-  <string name="projects_status_schedrpcinprogress">Scheduler request in progress</string>
-  <string name="projects_status_trickleuppending">Trickle up message pending</string>
-  <string name="projects_status_backoff">Communication scheduled in:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Project commands:</string>
-  <string name="projects_control_visit_website">Visit website</string>
-  <string name="projects_control_update">Update</string>
-  <string name="projects_control_remove">Remove</string>
-  <string name="projects_control_suspend">Suspend</string>
-  <string name="projects_control_resume">Resume</string>
-  <string name="projects_control_nonewtasks">No new tasks</string>
-  <string name="projects_control_allownewtasks">Allow new tasks</string>
-  <string name="projects_control_reset">Reset</string>
-  <string name="projects_control_dialog_title_acctmgr">Account manager commands:</string>
-  <string name="projects_control_sync_acctmgr">Synchronize</string>
-  <string name="projects_control_remove_acctmgr">Disable</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Remove project?</string>
-  <string name="projects_confirm_detach_message">Are you sure you want to remove</string>
-  <string name="projects_confirm_detach_message2">from BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Remove</string>
-  <string name="projects_confirm_reset_title">Reset project</string>
-  <string name="projects_confirm_reset_message">Are you sure you want to reset</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Reset</string>
-  <string name="projects_confirm_remove_acctmgr_title">Disable account manager</string>
-  <string name="projects_confirm_remove_acctmgr_message">Are you sure you want to stop using</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Disable</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Task Name:</string>
-  <string name="tasks_header_elapsed_time">Elapsed time:</string>
-  <string name="tasks_header_project_paused">(suspended)</string>
-  <string name="tasks_header_deadline">Deadline:</string>
-  <string name="tasks_result_new">new</string>
-  <string name="tasks_result_files_downloading">waiting for download</string>
-  <string name="tasks_result_files_downloaded">download complete</string>
-  <string name="tasks_result_compute_error">computation error</string>
-  <string name="tasks_result_files_uploading">uploading</string>
-  <string name="tasks_result_files_uploaded">upload complete</string>
-  <string name="tasks_result_aborted">aborted</string>
-  <string name="tasks_result_upload_failed">upload failed</string>
-  <string name="tasks_active_uninitialized">ready</string>
-  <string name="tasks_active_executing">running</string>
-  <string name="tasks_active_suspended">suspended</string>
-  <string name="tasks_active_abort_pending">suspending</string>
-  <string name="tasks_active_quit_pending">suspending</string>
-  <string name="tasks_custom_suspended_via_gui">suspended</string>
-  <string name="tasks_custom_project_suspended_via_gui">project suspended</string>
-  <string name="tasks_custom_ready_to_report">ready to report</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Abort task?</string>
-  <string name="confirm_abort_task_message">Abort task:</string>
-  <string name="confirm_abort_task_confirm">Abort</string>
-  <string name="confirm_cancel">Cancel</string>
-  <string name="confirm_image_desc">Confirmation dialog</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Reading transfers…</string>
-  <string name="trans_upload">Upload</string>
-  <string name="trans_download">Download</string>
-  <string name="trans_retryin">retry in</string>
-  <string name="trans_failed">failed</string>
-  <string name="trans_suspended">suspended</string>
-  <string name="trans_active">active</string>
-  <string name="trans_pending">pending</string>
-  <string name="trans_projectbackoff">project backoff</string>
-  <string name="trans_header_name">File:</string>
-  <string name="trans_control_retry">Retry transfers</string>
-  <string name="confirm_abort_trans_title">Abort transfer?</string>
-  <string name="confirm_abort_trans_message">Abort File:</string>
-  <string name="confirm_abort_trans_confirm">Abort</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Reading notices…</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Loading log messages…</string>
-  <string name="eventlog_client_header">Client Messages</string>
-  <string name="eventlog_gui_header">GUI Messages</string>
-  <string name="eventlog_copy_toast">Log copied to clipboard.</string>
-  <string name="eventlog_email_subject">Event Log for BOINC on Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Computation suspended.</string>
-  <string name="suspend_batteries">Connect your device to a charger to continue computing.</string>
-  <string name="suspend_screen_on">Turn screen off to continue computing.</string>
-  <string name="suspend_useractive">User is active.</string>
-  <string name="suspend_tod">Out of computation time-frame.</string>
-  <string name="suspend_bm">BOINC is benchmarking your device…</string>
-  <string name="suspend_disksize">Out of disk space.</string>
-  <string name="suspend_cputhrottle">Scheduled CPU throttle.</string>
-  <string name="suspend_noinput">No recent user activity.</string>
-  <string name="suspend_delay">Initialization delay.</string>
-  <string name="suspend_exclusiveapp">An exclusive app is running.</string>
-  <string name="suspend_cpu">Your device is busy with other apps.</string>
-  <string name="suspend_network_quota">BOINC reached network transfer limit.</string>
-  <string name="suspend_os">Stopped by Android.</string>
-  <string name="suspend_wifi">Not connected to WiFi.</string>
-  <string name="suspend_battery_charging">Waiting for battery to charge.</string>
-  <string name="suspend_battery_charging_long">Computing will resume when battery charge reaches</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">currently</string>
-  <string name="suspend_battery_overheating">Waiting for battery to cool down</string>
-  <string name="suspend_user_req">Resuming computation…</string>
-  <string name="suspend_network_user_req">manually.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Requested by user</string>
-  <string name="rpcreason_needwork">To fetch work</string>
-  <string name="rpcreason_resultsdue">To report completed tasks</string>
-  <string name="rpcreason_trickleup">To send trickle-up message</string>
-  <string name="rpcreason_acctmgrreq">Requested by account manager</string>
-  <string name="rpcreason_init">Project initialization</string>
-  <string name="rpcreason_projectreq">Requested by project</string>
-  <string name="rpcreason_unknown">Unknown reason</string>
-  <!--menu-->
-  <string name="menu_refresh">Refresh</string>
-  <string name="menu_emailto">Send as Email</string>
-  <string name="menu_copy">Copy to Clipboard</string>
-  <string name="menu_eventlog">Event Log</string>
-  <string name="menu_exit">Exit BOINC</string>
-  <string name="menu_run_mode_disable">Suspend</string>
-  <string name="menu_run_mode_enable">Resume</string>
-  <string name="menu_about">About</string>
-  <string name="menu_help">Help</string>
-  <!--about dialog-->
-  <string name="about_button">Return</string>
-  <string name="about_title">About</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Version</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">\u00A9 2003–2014 University of California, Berkeley.</string>
-  <string name="about_copyright_reserved">All Rights Reserved.</string>
-  <string name="about_credits">Thanks to the Max Planck Institute for Gravitational Physics, IBM Corporation and HTC Corporation for their support.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">New notice from</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">new notices</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Volunteer computing app detected</string>
-  <string name="nonexcl_dialog_text">Another volunteer computing app is running on this device. Only one version can run at a time.</string>
-  <string name="nonexcl_dialog_exit">Exit</string>
-  <!--social integration-->
-  <string name="social_invite_button">Invite friends</string>
-  <string name="social_invite_intent_title">How do you want to share?</string>
-  <string name="social_invite_content_title">I\'m doing science on my smartphone!</string>
-  <string name="social_invite_content_body">I\'m using my %1$s to do computing for science. You can too! Download the app from: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-es/strings.xml b/android/BOINC/res/values-es/strings.xml
deleted file mode 100644
index af9ec72..0000000
--- a/android/BOINC/res/values-es/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Cargando, por favor espere...</string>
-  <string name="generic_button_continue">Continuar</string>
-  <string name="generic_button_finish">Finalizar</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Selecciona los proyectos científicos a los que quieres contribuir:</string>
-  <string name="attachproject_list_header">Elegir un proyecto</string>
-  <string name="attachproject_list_manual_button">Añadir un proyecto por URL</string>
-  <string name="attachproject_list_manual_dialog_title">URL del proyecto:</string>
-  <string name="attachproject_list_manual_dialog_button">Añadir proyecto</string>
-  <string name="attachproject_list_manual_no_url">URL del proyecto:</string>
-  <string name="attachproject_list_acctmgr_button">Añadir administrador de cuentas</string>
-  <string name="attachproject_list_no_internet">Sin conexión a Internet</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Introduzca la información de la cuenta</string>
-  <string name="attachproject_credential_input_desc">Introduzca la información de la cuenta para los proyectos seleccionados</string>
-  <string name="attachproject_credential_input_show_pwd">Mostrar contraseña</string>
-  <string name="attachproject_individual_credential_input">Adjuntar proyectos individualmente</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Hubo problemas adjuntando los proyectos científicos:</string>
-  <string name="attachproject_conflict_undefined">No se pudo conectar</string>
-  <string name="attachproject_conflict_not_unique">La cuenta existe con otra contraseña</string>
-  <string name="attachproject_conflict_bad_password">Contraseña incorrecta</string>
-  <string name="attachproject_conflict_unknown_user">La cuenta no existe</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">La cuenta no existe, visita la web del proyecto para registrarte</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Adjuntando</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Sugerencia</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Como contribuir:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Conectate al WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Conecta el cargador</string>
-  <string name="attachproject_hint_contribtion_screen">3. Apaga la pantalla</string>
-  <string name="attachproject_hint_projectwebsite_header">Visita las webs de los proyectos para:</string>
-  <string name="attachproject_hint_projectwebsite_science">Aprende mas sobre ciencia</string>
-  <string name="attachproject_hint_projectwebsite_stats">Ver las estadísticas de contribución</string>
-  <string name="attachproject_hint_projectwebsite_community">Conecta con otros voluntarios</string>
-  <string name="attachproject_hint_platforms_header">BOINC también esta disponible para tu PC o portatil, visita boinc.berkeley.edu para saber más.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Contactando con el servidor del proyecto...</string>
-  <string name="attachproject_login_image_description">Logo de proyecto.</string>
-  <string name="attachproject_login_header_general_area">Área general:</string>
-  <string name="attachproject_login_header_specific_area">Área específica:</string>
-  <string name="attachproject_login_header_description">Descripción:</string>
-  <string name="attachproject_login_header_home">Inicio:</string>
-  <string name="attachproject_login_header_url">Web:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Tu dispositivo es soportado por este proyecto</string>
-  <string name="attachproject_login_platform_not_supported">Tu dispositivo no está soportado por este proyecto</string>
-  <string name="attachproject_login_category_terms_of_use">Terminos de uso de</string>
-  <string name="attachproject_login_accept_terms_of_use">Creando una cuenta en este proyecto, aceptas los términos mostrados arriba.</string>
-  <string name="attachproject_login_category_login">Inicia sesión con una cuenta existente</string>
-  <string name="attachproject_login_header_id_email">eMail:</string>
-  <string name="attachproject_login_header_id_name">Nombre:</string>
-  <string name="attachproject_login_header_pwd">Contraseña:</string>
-  <string name="attachproject_login_category_creation">Nuevo a</string>
-  <string name="attachproject_login_header_creation_enabled">Registra una cuenta para participar:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Visita la web del proyecto para crar una cuenta:</string>
-  <string name="attachproject_login_header_creation_disabled">Este proyecto no acepta actualmente nuevas cuentas.</string>
-  <string name="attachproject_login_button_registration">Registrarse:</string>
-  <string name="attachproject_login_button_login">Iniciar sesión</string>
-  <string name="attachproject_login_button_forgotpw">Olvidó su contraseña</string>
-  <string name="attachproject_login_error_toast">Fallo al contactar con el proyecto</string>
-  <string name="attachproject_login_attached">Adjuntado</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Registro de la cuenta para</string>
-  <string name="attachproject_registration_header_url">Proyecto:</string>
-  <string name="attachproject_registration_header_email">eMail:</string>
-  <string name="attachproject_registration_header_username">Nombre:</string>
-  <string name="attachproject_registration_header_teamname">Equipo:</string>
-  <string name="attachproject_registration_header_pwd">Clave:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... Reescribe:</string>
-  <string name="attachproject_registration_button">Crear</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Usa el administrador de cuentas de BOINC para añadir y manejar múltiples proyectos</string>
-  <string name="attachproject_acctmgr_header">Añadir administrador de cuentas</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Usuario:</string>
-  <string name="attachproject_acctmgr_header_pwd">Clave:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... Reescribe:</string>
-  <string name="attachproject_acctmgr_button">Añadir</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Usuario no encontrado</string>
-  <string name="attachproject_error_short_pwd">Contraseña muy corta</string>
-  <string name="attachproject_error_no_internet">Fallo de conexión</string>
-  <string name="attachproject_error_pwd_no_match">Las contraseñas no coinciden</string>
-  <string name="attachproject_error_pwd_no_retype">Por favor escriba la contraseña de nuevo</string>
-  <string name="attachproject_error_no_url">Introduzca la URL</string>
-  <string name="attachproject_error_no_email">Introduzca su eMail</string>
-  <string name="attachproject_error_no_pwd">Introduzca una contraseña</string>
-  <string name="attachproject_error_no_name">Introduzca su usuario</string>
-  <string name="attachproject_error_unknown">falló</string>
-  <string name="attachproject_error_bad_username">Usuario rechazado</string>
-  <string name="attachproject_error_email_in_use">El eMail ya está en uso</string>
-  <string name="attachproject_error_project_down">El proyecto está offline</string>
-  <string name="attachproject_error_email_bad_syntax">eMail rechazado</string>
-  <string name="attachproject_error_bad_pwd">Contraseña rechazada</string>
-  <string name="attachproject_error_creation_disabled">La creación de cuentas está deshabilitada para este proyecto</string>
-  <string name="attachproject_error_invalid_url">URL inválida</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Atrás</string>
-  <string name="attachproject_working_finish_button">Finalizar</string>
-  <string name="attachproject_working_check_desc">Éxito</string>
-  <string name="attachproject_working_failed_desc">Fallo</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Conectar</string>
-  <string name="attachproject_working_verify">Verificar cuenta</string>
-  <string name="attachproject_working_register">Registrarse</string>
-  <string name="attachproject_working_login">Iniciar sesión</string>
-  <string name="attachproject_working_acctmgr">Añadir administrador de cuentas</string>
-  <string name="attachproject_working_acctmgr_sync">Sincronizar</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Pulsa aquí para escoger un proyecto.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">...esto no debería pasar. Pulsa en el icono para volverlo a intentar.</string>
-  <string name="main_title_icon_desc">Icono de BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Estado</string>
-  <string name="tab_projects">Proyectos</string>
-  <string name="tab_tasks">Tareas</string>
-  <string name="tab_transfers">Transferencias</string>
-  <string name="tab_preferences">Preferencias</string>
-  <string name="tab_notices">Avisos</string>
-  <string name="tab_desc">Navegación</string>
-  <!--status strings-->
-  <string name="status_running">Procesando</string>
-  <string name="status_running_long">Gracias por participar.</string>
-  <string name="status_paused">Suspendido</string>
-  <string name="status_idle">Nada que hacer</string>
-  <string name="status_idle_long">Esperando tareas...</string>
-  <string name="status_computing_disabled">Suspendido</string>
-  <string name="status_computing_disabled_long">Pulsa play para continuar con la computación y red</string>
-  <string name="status_launching">Iniciando...</string>
-  <string name="status_noproject">Escoge un proyecto en el que participar.</string>
-  <string name="status_closing">Cerrando...</string>
-  <string name="status_benchmarking">Calculando rendimiento...</string>
-  <string name="status_image_description">Imagen del proyecto</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Leyendo preferencias...</string>
-  <string name="prefs_submit_button">Guardar</string>
-  <string name="prefs_dialog_title">Introduzca un nuevo valor:</string>
-  <string name="prefs_dialog_title_selection">Seleccionar:</string>
-  <string name="prefs_category_general">General</string>
-  <string name="prefs_category_network">Red</string>
-  <string name="prefs_category_power">Fuente</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Almacenamiento</string>
-  <string name="prefs_category_memory">Memoria</string>
-  <string name="prefs_category_debug">Depurar</string>
-  <string name="prefs_show_advanced_header">Mostrar opciones avanzadas...</string>
-  <string name="prefs_suspend_when_screen_on">Pausar la computación cuando la pantalla esté encendida</string>
-  <string name="prefs_stationary_device_mode_header">Modo de dispositivo estacionario</string>
-  <string name="prefs_stationary_device_mode_description">Permite el cómputo independientemente de las preferencias de Energía. Solo habilitar si el dispositivo no utiliza una batería.</string>
-  <string name="prefs_power_source_header">Fuentes para la computación</string>
-  <string name="prefs_power_source_description">Selecciona las fuentes que BOINC usa para la computación.</string>
-  <string name="prefs_power_source_ac">Enchufe</string>
-  <string name="prefs_power_source_usb">Conexión USB</string>
-  <string name="prefs_power_source_wireless">Cargador inalámbrico</string>
-  <string name="prefs_power_source_battery">Batería</string>
-  <string name="battery_charge_min_pct_header">Batería mínima</string>
-  <string name="battery_charge_min_pct_description">BOINC suspende la computación por debajo del nivel de batería escogido.</string>
-  <string name="battery_temperature_max_header">Temperatura máx. de la batería</string>
-  <string name="battery_temperature_max_description">BOINC suspende la computación por encima de una temperatura de batería definida. No está recomendado cambiar este valor</string>
-  <string name="prefs_disk_max_pct_header">Espacio máximo usado</string>
-  <string name="prefs_disk_max_pct_description">¿Cuánto de su almacenamiento del teléfono puede usar BOINC?</string>
-  <string name="prefs_disk_min_free_gb_header">Almacenamiento libre min.</string>
-  <string name="prefs_disk_min_free_gb_description">¿Cuánto espacio debe quedar libre?</string>
-  <string name="prefs_disk_access_interval_header">Intervalo de acceso</string>
-  <string name="prefs_disk_access_interval_description">Intervalo entre accesos del disco</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Límite de transferencia diaria</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limita el tráfico diario usado por BOINC</string>
-  <string name="prefs_network_wifi_only_header">Transmitir datos solo por WiFi</string>
-  <string name="prefs_autostart_header">Auto inciar</string>
-  <string name="prefs_show_notification_notices_header">Mostrar notificación para nuevas noticias</string>
-  <string name="prefs_show_notification_suspended_header">Mostrar notificación cuando se suspenda</string>
-  <string name="prefs_cpu_number_cpus_header">Núcleos CPU usados</string>
-  <string name="prefs_cpu_number_cpus_description">Limita la cantidad de núcleos de CPU que BOINC usará.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pausar cuando el uso de CPU este por encima de</string>
-  <string name="prefs_cpu_other_load_suspension_description">Determina cuando BOINC es pausado por el uso de CPU por otras aplicaciones.</string>
-  <string name="prefs_cpu_time_max_header">Límite de CPU</string>
-  <string name="prefs_cpu_time_max_description">Limita la CPU que BOINC usa para la computación.</string>
-  <string name="prefs_memory_max_idle_header">Límite de RAM</string>
-  <string name="prefs_memory_max_idle_description">Limita la cantidad de RAM que puede usar.</string>
-  <string name="prefs_client_log_flags_header">Banderas de registro del cliente de BOINC</string>
-  <string name="prefs_gui_log_level_header">Nivel de log de la GUI</string>
-  <string name="prefs_gui_log_level_description">Especifica el detalle de los mensajes de log de la interfaz gráfica.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">ºC</string>
-  <string name="prefs_unit_seconds">seg</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Leyendo proyectos...</string>
-  <string name="projects_add">Añadir proyecto</string>
-  <string name="projects_icon">Icono del proyecto</string>
-  <string name="projects_credits_header">Creditos:</string>
-  <string name="projects_credits_host_header">(En este dispositivo)</string>
-  <string name="projects_credits_user_header">(En total)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Suspendido por el usuario</string>
-  <string name="projects_status_dontrequestmorework">No se descargarán nuevas tareas</string>
-  <string name="projects_status_ended">Proyecto finalizado - listo para eliminarlo</string>
-  <string name="projects_status_detachwhendone">Se eliminará cuando las tareas estén terminadas</string>
-  <string name="projects_status_schedrpcpending">Pendiente petición al Planificador</string>
-  <string name="projects_status_schedrpcinprogress">Petición al planificador en progreso</string>
-  <string name="projects_status_trickleuppending">Mensaje trickle up pendiente</string>
-  <string name="projects_status_backoff">Comunicación aplazada a:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Comandos del proyecto:</string>
-  <string name="projects_control_visit_website">Visitar web</string>
-  <string name="projects_control_update">Actualizar</string>
-  <string name="projects_control_remove">Eliminar</string>
-  <string name="projects_control_suspend">Suspender</string>
-  <string name="projects_control_resume">Reanudar</string>
-  <string name="projects_control_nonewtasks">No pedir nuevas tareas</string>
-  <string name="projects_control_allownewtasks">Permitir nuevas tareas</string>
-  <string name="projects_control_reset">Reset</string>
-  <string name="projects_control_dialog_title_acctmgr">Comandos del administrador de cuentas:</string>
-  <string name="projects_control_sync_acctmgr">Sincronizar</string>
-  <string name="projects_control_remove_acctmgr">Deshabilitar</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">¿Borrar proyecto?</string>
-  <string name="projects_confirm_detach_message">Seguro que quieres borrarlo</string>
-  <string name="projects_confirm_detach_message2">de BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Eliminar</string>
-  <string name="projects_confirm_reset_title">Reiniciar proyecto</string>
-  <string name="projects_confirm_reset_message">Seguro que quieres reinciar</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Reset</string>
-  <string name="projects_confirm_remove_acctmgr_title">Deshabilitar el administrador de cuentas</string>
-  <string name="projects_confirm_remove_acctmgr_message">Está seguro de que quiere dejar de usar</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Deshabilitar</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Nombre de la tarea:</string>
-  <string name="tasks_header_elapsed_time">Tiempo transcurrido:</string>
-  <string name="tasks_header_project_paused">(suspendido)</string>
-  <string name="tasks_header_deadline">Límite para informar:</string>
-  <string name="tasks_result_new">Nuevo</string>
-  <string name="tasks_result_files_downloading">Esperando para descargar</string>
-  <string name="tasks_result_files_downloaded">Descarga completa</string>
-  <string name="tasks_result_compute_error">Error de ejecución</string>
-  <string name="tasks_result_files_uploading">Enviando</string>
-  <string name="tasks_result_files_uploaded">Enviado</string>
-  <string name="tasks_result_aborted">Cancelado</string>
-  <string name="tasks_result_upload_failed">Envío fallido</string>
-  <string name="tasks_active_uninitialized">Listo</string>
-  <string name="tasks_active_executing">Ejecutando</string>
-  <string name="tasks_active_suspended">suspendido</string>
-  <string name="tasks_active_abort_pending">suspendiendo</string>
-  <string name="tasks_active_quit_pending">suspendiendo</string>
-  <string name="tasks_custom_suspended_via_gui">suspendido</string>
-  <string name="tasks_custom_project_suspended_via_gui">proyecto suspendido</string>
-  <string name="tasks_custom_ready_to_report">listo para informar</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">¿Cancelar tarea?</string>
-  <string name="confirm_abort_task_message">Cancelar tarea:</string>
-  <string name="confirm_abort_task_confirm">Cancelar</string>
-  <string name="confirm_cancel">Cancelar</string>
-  <string name="confirm_image_desc">Mensaje de confirmación</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Leyendo transferencias...</string>
-  <string name="trans_upload">Enviar</string>
-  <string name="trans_download">Descargar</string>
-  <string name="trans_retryin">reintentar en </string>
-  <string name="trans_failed">falló</string>
-  <string name="trans_suspended">suspendido</string>
-  <string name="trans_active">activo</string>
-  <string name="trans_pending">pendiente</string>
-  <string name="trans_projectbackoff">proyecto lárgate</string>
-  <string name="trans_header_name">Archivo:</string>
-  <string name="trans_control_retry">reintentar transferencias</string>
-  <string name="confirm_abort_trans_title">¿Cancelar transferencias?</string>
-  <string name="confirm_abort_trans_message">Cancelar archivo:</string>
-  <string name="confirm_abort_trans_confirm">Cancelar</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Leyendo noticias...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Leyendo mensajes del log...</string>
-  <string name="eventlog_client_header">Mensajes del cliente</string>
-  <string name="eventlog_gui_header">Mensajes de la GUI</string>
-  <string name="eventlog_copy_toast">Log copiado al portapapeles.</string>
-  <string name="eventlog_email_subject">Registro de sucesos para BOINC en Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Computación suspendida.</string>
-  <string name="suspend_batteries">Conecta tu dispositivo a un cargador para seguir procesando.</string>
-  <string name="suspend_screen_on">Apaga la pantalla para seguir procesando.</string>
-  <string name="suspend_useractive">El usuario está activo</string>
-  <string name="suspend_tod">Fuera del marco de tiempo de cómputo.</string>
-  <string name="suspend_bm">BOINC está calculando el rendimiento de su dispositivo...</string>
-  <string name="suspend_disksize">Sin espacio en el disco</string>
-  <string name="suspend_cputhrottle">Acelerador de CPU programado.</string>
-  <string name="suspend_noinput">Sin actividad del usuario reciente.</string>
-  <string name="suspend_delay">Inicio pospuesto.</string>
-  <string name="suspend_exclusiveapp">Se está ejecutando una aplicación de manera exclusiva.</string>
-  <string name="suspend_cpu">Su dispositivo está ocupado con otras aplicaciones.</string>
-  <string name="suspend_network_quota">BOINC ha alcanzado el ĺímite de transferencia de datos.</string>
-  <string name="suspend_os">Parado por Android</string>
-  <string name="suspend_wifi">No conectado al WiFi.</string>
-  <string name="suspend_battery_charging">Esperando a la batería para cargar.</string>
-  <string name="suspend_battery_charging_long">La computación continuará cuando la batería llegue a</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">actualmente</string>
-  <string name="suspend_battery_overheating">Esperando a que la batería se enfríe</string>
-  <string name="suspend_user_req">Reanudando la computación... </string>
-  <string name="suspend_network_user_req">manualmente.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Pedido por el usuario</string>
-  <string name="rpcreason_needwork">Buscar trabajo</string>
-  <string name="rpcreason_resultsdue">Informar las tareas completadas</string>
-  <string name="rpcreason_trickleup">Enviar mensaje trickle-up</string>
-  <string name="rpcreason_acctmgrreq">Pedido por el administrador de cuentas</string>
-  <string name="rpcreason_init">Iniciación del proyecto</string>
-  <string name="rpcreason_projectreq">Pedido por el proyecto</string>
-  <string name="rpcreason_unknown">Razón desconocida</string>
-  <!--menu-->
-  <string name="menu_refresh">Actualizar</string>
-  <string name="menu_emailto">Enviar por Email</string>
-  <string name="menu_copy">Copiar al portapapeles</string>
-  <string name="menu_eventlog">Registro de sucesos</string>
-  <string name="menu_exit">Salir de BOiNC</string>
-  <string name="menu_run_mode_disable">Suspender</string>
-  <string name="menu_run_mode_enable">Reanudar</string>
-  <string name="menu_about">Acerca de</string>
-  <string name="menu_help">Ayuda</string>
-  <!--about dialog-->
-  <string name="about_button">Volver</string>
-  <string name="about_title">Acerca de</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versión</string>
-  <string name="about_name_long">Infraestructura Abierta de Berkeley para Computación en Red</string>
-  <string name="about_copyright">2003–2014 University of California, Berkeley.</string>
-  <string name="about_copyright_reserved">Todos los derechos reservados.</string>
-  <string name="about_credits">Gracias al \"Max Planck Institute for Gravitational Physics\", IBM Corporation y HTC Corporation por su apoyo.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nueva noticia de</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nuevas noticias</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Aplicación de computación voluntaria detectada</string>
-  <string name="nonexcl_dialog_text">Otra aplicación de otro voluntario está ejecutándose en este dispositivo. Sólo se puede ejecutar una versión a la vez.</string>
-  <string name="nonexcl_dialog_exit">Salir</string>
-  <!--social integration-->
-  <string name="social_invite_button">Invitar amigos</string>
-  <string name="social_invite_intent_title">¿Cómo quieres compartirlo?</string>
-  <string name="social_invite_content_title">¡Estoy haciendo ciencia con mi smartphone!</string>
-  <string name="social_invite_content_body">Estoy usando mi %1$s para hacer computación por la ciencia. ¡Tú también puedes! Descarga la app desde: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-fi/strings.xml b/android/BOINC/res/values-fi/strings.xml
deleted file mode 100644
index 6ce6d10..0000000
--- a/android/BOINC/res/values-fi/strings.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-  <string name="app_name">BOINC</string>
-  <string name="generic_loading">Ladataan! Odota…</string>
-  <string name="attachproject_list_header">Valitse projekti:</string>
-  <string name="attachproject_list_manual_button">Lisää projekti URL-osoitteella</string>
-  <string name="attachproject_list_manual_dialog_title">Anna projektin URL:</string>
-  <string name="attachproject_list_manual_dialog_button">Lisää projekti</string>
-  <string name="attachproject_list_manual_no_url">Anna projektin URL</string>
-  <string name="attachproject_list_acctmgr_button">Lisää tilihallitsija</string>
-  <string name="attachproject_list_no_internet">Ei internet-yhteyttä</string>
-  <string name="attachproject_login_loading">Otetaan yhteyttä projektin palvelimeen…</string>
-  <string name="attachproject_login_image_description">Projektin logo.</string>
-  <string name="attachproject_login_header_general_area">Yleisalue:</string>
-  <string name="attachproject_login_header_specific_area">Erityisalue:</string>
-  <string name="attachproject_login_header_description">Kuvaus:</string>
-  <string name="attachproject_login_header_home">Kotisivu:</string>
-  <string name="attachproject_login_header_url">Nettisivu:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Tämä projekti tukee Android-laitteita</string>
-  <string name="attachproject_login_platform_not_supported">Tämä projekti ei tue Android-laitteita</string>
-  <string name="attachproject_login_accept_terms_of_use">Luomalla tilin tässä projektissa, hyväksyt ylläolevat käyttöoikeudet.</string>
-  <string name="attachproject_login_category_login">Kirjaudu sisään käytössä olevalla tilillä</string>
-  <string name="attachproject_login_header_id_email">Sähköposti:</string>
-  <string name="attachproject_login_header_id_name">Nimi:</string>
-  <string name="attachproject_login_header_pwd">Salasana:</string>
-  <string name="attachproject_login_header_creation_enabled">Rekisteröi tili osallistuaksesi:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Käy projektin nettisivulla luodaksesi tilin:</string>
-  <string name="attachproject_login_header_creation_disabled">Projekti sallii nyt uusien tilien luonnin!</string>
-  <string name="attachproject_login_button_registration">Rekisteröi</string>
-  <string name="attachproject_login_button_login">Kirjaudu sisään</string>
-  <string name="attachproject_login_button_forgotpw">Salasana unohtunut</string>
-  <string name="attachproject_login_error_toast">Yhteydenotto projektiin epäonnistui!</string>
-  <string name="attachproject_login_attached">Liitetty</string>
-  <string name="attachproject_registration_header_url">Projekti:</string>
-  <string name="attachproject_registration_header_email">Sähköposti:</string>
-  <string name="attachproject_registration_header_username">Nimi:</string>
-  <string name="attachproject_registration_header_teamname">Tiimi:</string>
-  <string name="attachproject_registration_header_pwd">Salasana:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Kirjoita uudelleen:</string>
-  <string name="attachproject_registration_button">Luo</string>
-  <string name="attachproject_acctmgr_header">Lisää tilihallitsija</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Käyttäjä:</string>
-  <string name="attachproject_acctmgr_header_pwd">Salasana:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Kirjoita uudelleen:</string>
-  <string name="attachproject_acctmgr_button">Lisää</string>
-  <string name="attachproject_error_wrong_name">Käyttäjää ei löydy</string>
-  <string name="attachproject_error_short_pwd">Salasana liian lyhyt</string>
-  <string name="attachproject_error_no_internet">Yhteysvirhe</string>
-  <string name="attachproject_error_pwd_no_match">Salasanat eivät täsmää</string>
-  <string name="attachproject_error_no_url">Anna URL</string>
-  <string name="attachproject_error_no_email">Anna sähköpostiosoite</string>
-  <string name="attachproject_error_no_pwd">Anna salasana</string>
-  <string name="attachproject_error_no_name">Anna käyttäjänimi</string>
-  <string name="attachproject_error_unknown">epäonnistui</string>
-  <string name="attachproject_error_bad_username">Käyttäjänimi hylätty</string>
-  <string name="attachproject_error_email_in_use">Sähköposti on jo käytössä</string>
-  <string name="attachproject_error_project_down">Projekti on sammutettu</string>
-  <string name="attachproject_error_email_bad_syntax">Sähköposti hylätty</string>
-  <string name="attachproject_error_bad_pwd">Salasana hylätty</string>
-  <string name="attachproject_error_creation_disabled">Tilin luonti on poistettu käytöstä tässä projektissa</string>
-  <string name="attachproject_error_invalid_url">Virheellinen URL</string>
-  <string name="attachproject_working_back_button">Takaisin</string>
-  <string name="attachproject_working_finish_button">Valmis</string>
-  <string name="attachproject_working_check_desc">Onnistui</string>
-  <string name="attachproject_working_failed_desc">Epäonnistui</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Yhdistä</string>
-  <string name="attachproject_working_verify">Varmenna tili</string>
-  <string name="attachproject_working_register">Rekisteröi tili</string>
-  <string name="attachproject_working_login">Kirjaudu</string>
-  <string name="attachproject_working_acctmgr">Lisää tilihallitsija</string>
-  <string name="attachproject_working_acctmgr_sync">Synkronoi</string>
-  <string name="main_error">Hups</string>
-  <string name="main_error_long">…tätä ei olisi pitänyt tapahtua!\nNapsauta kuvaketta yrittääksesi uudelleen.</string>
-  <string name="main_title_icon_desc">BOINC kuvake</string>
-  <string name="tab_status">Tila</string>
-  <string name="tab_projects">Projektit</string>
-  <string name="tab_tasks">Tehtävät</string>
-  <string name="tab_transfers">Siirrot</string>
-  <string name="tab_preferences">Asetukset</string>
-  <string name="tab_notices">Ilmoitukset</string>
-  <string name="tab_desc">Navigointi</string>
-  <string name="status_running">Laskenta</string>
-  <string name="status_running_long">Kiitos osallistumisesta.</string>
-  <string name="status_paused">Hyllytetty</string>
-  <string name="status_idle">Ei mitään tehtävää</string>
-  <string name="status_idle_long">Odottaa tehtäviä…</string>
-  <string name="status_computing_disabled">Hyllytetty</string>
-  <string name="status_launching">Käynnistetään…</string>
-  <string name="status_noproject">Valitse projekti, johon osallistut.</string>
-  <string name="status_closing">Suljetaan…</string>
-  <string name="status_benchmarking">Suorituskykytestaus…</string>
-  <string name="status_image_description">projektin kuva</string>
-  <string name="prefs_loading">Luetaan asetuksia…</string>
-  <string name="prefs_submit_button">Tallenna</string>
-  <string name="prefs_dialog_title">Anna uusi arvo:</string>
-  <string name="prefs_dialog_title_selection">Valitse:</string>
-  <string name="prefs_category_general">Yleiset</string>
-  <string name="prefs_category_network">Verkko</string>
-  <string name="prefs_category_power">Virta</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Tilankäyttö</string>
-  <string name="prefs_category_memory">Muisti</string>
-  <string name="prefs_category_debug">Virheenjäljitys</string>
-  <string name="prefs_show_advanced_header">Näytä lisäasetukset ja ohjaimet…</string>
-  <string name="battery_charge_min_pct_header">Pienin varaustaso</string>
-  <string name="battery_charge_min_pct_description">BOINC hyllyttää laskennan kun asetettu akun varaustason alaraja saavutetaan.</string>
-  <string name="battery_temperature_max_header">Suurin akun lämpötila</string>
-  <string name="battery_temperature_max_description">BOINC hyllyttää laskennan kun asetettu akun lämpötilaraja saavutetaan. Tätä arvoa ei suositella muutettavaksi.</string>
-  <string name="prefs_disk_max_pct_header">Suurin käytetty tallennustila</string>
-  <string name="prefs_disk_max_pct_description">Kuinka monta prosenttia laitteesi tallennustilasta BOINC saa käyttää?</string>
-  <string name="prefs_disk_min_free_gb_header">Pienin tallennustila</string>
-  <string name="prefs_disk_min_free_gb_description">Kuinka paljon laitteesi tallennustilasta jätetään vapaaksi?</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Päivittäinen siirtoraja</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Rajoitus BOINCin päivittäiselle tiedonsiirrolle.</string>
-  <string name="prefs_network_wifi_only_header">Siirrä tehtävät vain WiFin kautta</string>
-  <string name="prefs_autostart_header">Automaattikäynnistys</string>
-  <string name="prefs_cpu_number_cpus_header">Käytetyt CPU-ytimet</string>
-  <string name="prefs_cpu_number_cpus_description">Rajoittaa CPU-ytimien määrää, jota BOINC käyttää laskentaan.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Tauota prosessorikäytön ylittäessä</string>
-  <string name="prefs_cpu_other_load_suspension_description">Määrittää, milloin BOINC tauottaa laskennan toisten sovellusten vuoksi.</string>
-  <string name="prefs_cpu_time_max_header">CPU raja</string>
-  <string name="prefs_cpu_time_max_description">Rajoittaa prosessoriaikaa, jota BOINC käyttää laskentaan.</string>
-  <string name="prefs_memory_max_idle_header">RAM raja</string>
-  <string name="prefs_memory_max_idle_description">Rajoittaa RAM-muistin määrää, joka tehtäville annetaan.</string>
-  <string name="prefs_unit_mb">Mt</string>
-  <string name="prefs_unit_gb">Gt</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="projects_loading">Luetaan projekteja…</string>
-  <string name="projects_add">Lisää projekti</string>
-  <string name="projects_icon">Projektin kuvake</string>
-  <string name="projects_credits_header">Pisteet:</string>
-  <string name="projects_credits_host_header">(tällä laitteella)</string>
-  <string name="projects_credits_user_header">(kaikki)</string>
-  <string name="projects_status_suspendedviagui">Käyttäjän hyllyttämä</string>
-  <string name="projects_status_dontrequestmorework">Ei uusia töitä</string>
-  <string name="projects_status_ended">Projekti päättynyt - voi poistaa</string>
-  <string name="projects_status_detachwhendone">Poistetaan kun paketit on suoritettu</string>
-  <string name="projects_status_schedrpcpending">Pyyntö aikatauluttajalle odottaa</string>
-  <string name="projects_status_schedrpcinprogress">Pyyntö aikatauluttajalle käynnissä</string>
-  <string name="projects_status_trickleuppending">Väliaikaviesti odottaa</string>
-  <string name="projects_control_dialog_title">Projektin komennot:</string>
-  <string name="projects_control_visit_website">Käy sivulla</string>
-  <string name="projects_control_update">Päivitä</string>
-  <string name="projects_control_remove">Poista</string>
-  <string name="projects_control_suspend">Hyllytä</string>
-  <string name="projects_control_resume">Jatka</string>
-  <string name="projects_control_nonewtasks">Ei uutta työtä</string>
-  <string name="projects_control_allownewtasks">Salli uusi työ</string>
-  <string name="projects_control_reset">Nollaa</string>
-  <string name="projects_control_dialog_title_acctmgr">Tilihallitsijan komennot:</string>
-  <string name="projects_control_sync_acctmgr">Synkronoi</string>
-  <string name="projects_control_remove_acctmgr">Poista</string>
-  <string name="projects_confirm_detach_title">Poista projekti?</string>
-  <string name="projects_confirm_detach_message">Haluatko varmasti poistaa</string>
-  <string name="projects_confirm_detach_message2">BOINCista?</string>
-  <string name="projects_confirm_detach_confirm">Poista</string>
-  <string name="projects_confirm_reset_title">Nollaa projekti</string>
-  <string name="projects_confirm_reset_message">Haluatko varmasti nollata</string>
-  <string name="projects_confirm_reset_confirm">Nollaa</string>
-  <string name="projects_confirm_remove_acctmgr_title">Poista tilihallitsija</string>
-  <string name="projects_confirm_remove_acctmgr_message">Haluatko lopettaa käyttämästä</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Poista käytöstä</string>
-  <string name="tasks_header_name">Tehtävän nimi:</string>
-  <string name="tasks_header_elapsed_time">Käytetty aika:</string>
-  <string name="tasks_header_project_paused">(hyllytetty)</string>
-  <string name="tasks_header_deadline">Takaraja:</string>
-  <string name="tasks_result_new">uusi</string>
-  <string name="tasks_result_files_downloading">odottaa latausta</string>
-  <string name="tasks_result_files_downloaded">lataus valmis</string>
-  <string name="tasks_result_compute_error">laskentavirhe</string>
-  <string name="tasks_result_files_uploading">lähetetään</string>
-  <string name="tasks_result_files_uploaded">lähetys valmis</string>
-  <string name="tasks_result_aborted">hylätty</string>
-  <string name="tasks_result_upload_failed">lähetys epäonnistui</string>
-  <string name="tasks_active_uninitialized">valmis</string>
-  <string name="tasks_active_executing">suoritetaan</string>
-  <string name="tasks_active_suspended">hyllytetty</string>
-  <string name="tasks_active_abort_pending">hyllytetään</string>
-  <string name="tasks_active_quit_pending">hyllytetään</string>
-  <string name="tasks_custom_suspended_via_gui">hyllytetty</string>
-  <string name="tasks_custom_project_suspended_via_gui">projekti hyllytetty</string>
-  <string name="tasks_custom_ready_to_report">valmis raportoitavaksi</string>
-  <string name="confirm_abort_task_title">Hylkää tehtävä?</string>
-  <string name="confirm_abort_task_message">Hylkää tehtävä:</string>
-  <string name="confirm_abort_task_confirm">Hylkää</string>
-  <string name="confirm_cancel">Peruuta</string>
-  <string name="confirm_image_desc">Vahvistusikkuna</string>
-  <string name="trans_loading">Luetaan siirtoja…</string>
-  <string name="trans_upload">Lähetä</string>
-  <string name="trans_download">Lataa</string>
-  <string name="trans_retryin">uudelleenyritys</string>
-  <string name="trans_failed">epäonnistui</string>
-  <string name="trans_suspended">hyllytetty</string>
-  <string name="trans_active">aktiivinen</string>
-  <string name="trans_pending">odottaa</string>
-  <string name="trans_projectbackoff">projektin viivyttämä</string>
-  <string name="trans_header_name">Tiedosto:</string>
-  <string name="trans_control_retry">Yritä siirtoja</string>
-  <string name="confirm_abort_trans_title">Keskeytä siirto?</string>
-  <string name="confirm_abort_trans_message">Hylkää tiedosto:</string>
-  <string name="confirm_abort_trans_confirm">Hylkää</string>
-  <string name="notices_loading">Luetaan ilmoituksia…</string>
-  <string name="eventlog_loading">Ladataan lokiviestit…</string>
-  <string name="eventlog_client_header">Ohjelman viestit</string>
-  <string name="eventlog_gui_header">GUI viestit</string>
-  <string name="eventlog_copy_toast">Loki kopioitu leikepöydälle.</string>
-  <string name="eventlog_email_subject">BOINCin tapahtumaloki Androidilla:</string>
-  <string name="suspend_unknown">Laskenta hyllytetty.</string>
-  <string name="suspend_batteries">Kytke laite laturiin laskennan jatkamiseksi.</string>
-  <string name="suspend_useractive">Käyttäjä aktiivinen.</string>
-  <string name="suspend_bm">BOINC suorityskykytestaa laitettasi…</string>
-  <string name="suspend_disksize">Levytila loppu.</string>
-  <string name="suspend_exclusiveapp">Erityissovellus on käynnissä.</string>
-  <string name="suspend_cpu">Muut sovellukset käyttävät laitetta.</string>
-  <string name="suspend_network_quota">BOINC saavutti tiedonsiirtorajan.</string>
-  <string name="suspend_os">Androidin pysäyttämä.</string>
-  <string name="suspend_wifi">Ei WiFi-yhteyttä.</string>
-  <string name="suspend_battery_charging">Akku tulee ladata ennen kuin laskentaa jatketaan.</string>
-  <string name="suspend_battery_charging_long">Laskenta jatkuu akun varaustilan saavuttaessa</string>
-  <string name="suspend_battery_overheating">Odotetaan akun jäähtymistä</string>
-  <string name="suspend_user_req">Jatketaan laskentaa…</string>
-  <string name="suspend_network_user_req">manuaalisesti.</string>
-  <string name="rpcreason_userreq">Käyttäjän pyytämä</string>
-  <string name="rpcreason_needwork">Pyydetään työtä</string>
-  <string name="rpcreason_resultsdue">Raportoidaan valmiit paketit</string>
-  <string name="rpcreason_trickleup">Lähetetään väliaikaviesti</string>
-  <string name="rpcreason_acctmgrreq">Tilihallitsijan pyytämä</string>
-  <string name="rpcreason_init">Projektin alustus</string>
-  <string name="rpcreason_projectreq">Projektin pyytämä</string>
-  <string name="rpcreason_unknown">Tuntematon syy</string>
-  <string name="menu_refresh">Päivitä</string>
-  <string name="menu_emailto">Lähetä sähköpostina</string>
-  <string name="menu_copy">Kopioi leikepöydälle</string>
-  <string name="menu_eventlog">Tapahtumaloki</string>
-  <string name="menu_exit">Lopeta BOINC</string>
-  <string name="menu_run_mode_disable">Hyllytä</string>
-  <string name="menu_run_mode_enable">Jatka</string>
-  <string name="menu_about">Tietoja</string>
-  <string name="menu_help">Ohje</string>
-  <string name="about_title">Tietoja</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versio</string>
-  <string name="about_name_long">Berkeleyn avoin infrastruktuuri verkkolaskentaan</string>
-  <string name="about_copyright">© 2003–2013 Kalifornian yliopisto, Berkeley.\nKaikki oikeudet pidätetään.</string>
-</resources>
diff --git a/android/BOINC/res/values-fr/strings.xml b/android/BOINC/res/values-fr/strings.xml
deleted file mode 100644
index 44e6f35..0000000
--- a/android/BOINC/res/values-fr/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Veuillez patienter...</string>
-  <string name="generic_button_continue">Continuer</string>
-  <string name="generic_button_finish">Terminer</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Choisir un projet scientifique auquel vous voulez collaborer :</string>
-  <string name="attachproject_list_header">Choisissez un projet</string>
-  <string name="attachproject_list_manual_button">Ajouter un projet via son URL</string>
-  <string name="attachproject_list_manual_dialog_title">URL du projet :</string>
-  <string name="attachproject_list_manual_dialog_button">Ajouter un projet</string>
-  <string name="attachproject_list_manual_no_url">Veuillez saisir l\'URL du projet</string>
-  <string name="attachproject_list_acctmgr_button">Choisir un gestionnaire de compte</string>
-  <string name="attachproject_list_no_internet">Pas de connexion Internet</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Éditer les informations de compte</string>
-  <string name="attachproject_credential_input_desc">Éditer les informations de compte pour les projets sélectionnés :</string>
-  <string name="attachproject_credential_input_show_pwd">Montrer le mot de passe</string>
-  <string name="attachproject_individual_credential_input">Ajouter des projets individuellement</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Il y a des problèmes pour ajouter les projets suivants :</string>
-  <string name="attachproject_conflict_undefined">Connexion impossible</string>
-  <string name="attachproject_conflict_not_unique">Un compte existe avec un mot de passe différent</string>
-  <string name="attachproject_conflict_bad_password">Mot de passe incorrect</string>
-  <string name="attachproject_conflict_unknown_user">Le compte n\'existe pas</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Le compte n\'existe pas, rendez vous sur le site du projet pour vous enregistrer</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Ajout du projet</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Indice</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Comment participer:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Se connecter au WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Branchez votre chargeur</string>
-  <string name="attachproject_hint_contribtion_screen">3. Eteindre l\'écran</string>
-  <string name="attachproject_hint_projectwebsite_header">Visitez les site web des projets:</string>
-  <string name="attachproject_hint_projectwebsite_science">En savoir plus au sujet du projet</string>
-  <string name="attachproject_hint_projectwebsite_stats">Voir les statistiques de contribution</string>
-  <string name="attachproject_hint_projectwebsite_community">Entrer en contact avec les autres participants</string>
-  <string name="attachproject_hint_platforms_header">BOINC est également disponible pour votre ordinateur de bureau ou portable, visitez boinc.berkeley.edu pour en savoir plus.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Connexion avec le serveur du projet...</string>
-  <string name="attachproject_login_image_description">Logo du projet.</string>
-  <string name="attachproject_login_header_general_area">Domaine de recherche:</string>
-  <string name="attachproject_login_header_specific_area">Domaine spécifique:</string>
-  <string name="attachproject_login_header_description">Description:</string>
-  <string name="attachproject_login_header_home">Accueil:</string>
-  <string name="attachproject_login_header_url">Site web:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Votre appareil est supporté par ce projet</string>
-  <string name="attachproject_login_platform_not_supported">Votre appareil n\'est pas supporté par ce projet</string>
-  <string name="attachproject_login_category_terms_of_use">Conditions d\'utilisation pour</string>
-  <string name="attachproject_login_accept_terms_of_use">En créant un compte sur ce projet vous acceptez les conditions d\'utilisation montrées ci-dessus.</string>
-  <string name="attachproject_login_category_login">Se connecter avec un compte existant</string>
-  <string name="attachproject_login_header_id_email">eMail:</string>
-  <string name="attachproject_login_header_id_name">Nom:</string>
-  <string name="attachproject_login_header_pwd">Mot de passe:</string>
-  <string name="attachproject_login_category_creation">Nouveau pour</string>
-  <string name="attachproject_login_header_creation_enabled">Enregistrez un compte pour participer:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Visitez le site web du projet pour créer un compte:</string>
-  <string name="attachproject_login_header_creation_disabled">Le projet ne permet pas la création de nouveaux comptes pour le moment.</string>
-  <string name="attachproject_login_button_registration">S\'inscrire</string>
-  <string name="attachproject_login_button_login">Se connecter</string>
-  <string name="attachproject_login_button_forgotpw">Mot de passe oublié</string>
-  <string name="attachproject_login_error_toast">Connexion avec le serveur du projet impossible</string>
-  <string name="attachproject_login_attached">Ajouté</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Enregistrement du compte pour</string>
-  <string name="attachproject_registration_header_url">Projet:</string>
-  <string name="attachproject_registration_header_email">eMail:</string>
-  <string name="attachproject_registration_header_username">Nom:</string>
-  <string name="attachproject_registration_header_teamname">Equipe:</string>
-  <string name="attachproject_registration_header_pwd">Mot de passe:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... saisir de nouveau:</string>
-  <string name="attachproject_registration_button">Créer</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Utilisez un gestionnaire de compte BOINC pour ajouter et gérer de nombreux projets</string>
-  <string name="attachproject_acctmgr_header">Ajouter un gestionnaire de compte</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Utilisateur:</string>
-  <string name="attachproject_acctmgr_header_pwd">Mot de passe:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... saisir de nouveau:</string>
-  <string name="attachproject_acctmgr_button">Ajouter</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Utilisateur non trouvé</string>
-  <string name="attachproject_error_short_pwd">Mot de passe trop court</string>
-  <string name="attachproject_error_no_internet">Erreur de connexion</string>
-  <string name="attachproject_error_pwd_no_match">Mot de passe incorrect</string>
-  <string name="attachproject_error_pwd_no_retype">Nouveau mot de passe (vérification)</string>
-  <string name="attachproject_error_no_url">Veuillez saisir l\'URL du projet</string>
-  <string name="attachproject_error_no_email">Veuillez entrer une adresse email</string>
-  <string name="attachproject_error_no_pwd">Veuillez saisir un mot de passe</string>
-  <string name="attachproject_error_no_name">Veuillez saisir un nom d\'utilisateur.</string>
-  <string name="attachproject_error_unknown">échec</string>
-  <string name="attachproject_error_bad_username">Nom d\'utilisateur refusé</string>
-  <string name="attachproject_error_email_in_use">Adresse email déjà utilisée</string>
-  <string name="attachproject_error_project_down">Projet hors ligne</string>
-  <string name="attachproject_error_email_bad_syntax">email refusé</string>
-  <string name="attachproject_error_bad_pwd">Mot de passe refusé</string>
-  <string name="attachproject_error_creation_disabled">La création de compte est désactivée pour ce projet</string>
-  <string name="attachproject_error_invalid_url">URL non valide</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Retour</string>
-  <string name="attachproject_working_finish_button">Terminer</string>
-  <string name="attachproject_working_check_desc">Succès</string>
-  <string name="attachproject_working_failed_desc">Echoué</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Se connecter</string>
-  <string name="attachproject_working_verify">Vérifier le compte</string>
-  <string name="attachproject_working_register">Création de compte</string>
-  <string name="attachproject_working_login">Connexion</string>
-  <string name="attachproject_working_acctmgr">Choisir un gestionnaire de compte</string>
-  <string name="attachproject_working_acctmgr_sync">Synchroniser</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Touchez ici pour choisir un projet.</string>
-  <string name="main_error">Oups !</string>
-  <string name="main_error_long">...ceci ne devrait pas se produire!\nCliquer sur l\'icône pour essayer de nouveau.</string>
-  <string name="main_title_icon_desc">Icône de BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">État</string>
-  <string name="tab_projects">Projets</string>
-  <string name="tab_tasks">Tâches</string>
-  <string name="tab_transfers">Transferts</string>
-  <string name="tab_preferences">Préférences</string>
-  <string name="tab_notices">Remarques</string>
-  <string name="tab_desc">Navigation</string>
-  <!--status strings-->
-  <string name="status_running">Calculs en cours</string>
-  <string name="status_running_long">Merci pour votre participation.</string>
-  <string name="status_paused">Suspendu</string>
-  <string name="status_idle">Rien à faire</string>
-  <string name="status_idle_long">En attente de tâches...</string>
-  <string name="status_computing_disabled">Suspendu</string>
-  <string name="status_computing_disabled_long">Appuyez sur lire pour reprendre les communications réseau et le calcul.</string>
-  <string name="status_launching">Démarrage...</string>
-  <string name="status_noproject">Choisissez un projet auquel participer.</string>
-  <string name="status_closing">Fermeture...</string>
-  <string name="status_benchmarking">Etalonnage...</string>
-  <string name="status_image_description">image du projet</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Lecture des préférences...</string>
-  <string name="prefs_submit_button">Enregistrer</string>
-  <string name="prefs_dialog_title">Saisir une nouvelle valeur:</string>
-  <string name="prefs_dialog_title_selection">Sélectionner:</string>
-  <string name="prefs_category_general">Général</string>
-  <string name="prefs_category_network">Utilisation du réseau</string>
-  <string name="prefs_category_power">Allimentation</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Stockage</string>
-  <string name="prefs_category_memory">Mémoire</string>
-  <string name="prefs_category_debug">Déboguer</string>
-  <string name="prefs_show_advanced_header">Montrer les préférences avancées...</string>
-  <string name="prefs_suspend_when_screen_on">Suspendre le calcul quand l\'écran est allumé</string>
-  <string name="prefs_stationary_device_mode_header">Mode appareil fixe</string>
-  <string name="prefs_stationary_device_mode_description">Permettre le calcul indépendamment des préférence d’alimentation. Seulement autorisé si l\'appareil n\'a pas de batterie.</string>
-  <string name="prefs_power_source_header">Sources d\'alimentation pour le calcul</string>
-  <string name="prefs_power_source_description">Choisir les sources d\'alimentation que BOINC peut utiliser pour le calcul.</string>
-  <string name="prefs_power_source_ac">Prise murale</string>
-  <string name="prefs_power_source_usb">Connexion USB</string>
-  <string name="prefs_power_source_wireless">Chargeur sans fil</string>
-  <string name="prefs_power_source_battery">Batterie</string>
-  <string name="battery_charge_min_pct_header">Niveau minimum de batterie</string>
-  <string name="battery_charge_min_pct_description">BOINC suspend le calcul en dessous du niveau de charge défini.</string>
-  <string name="battery_temperature_max_header">Température batterie maximale.</string>
-  <string name="battery_temperature_max_description">BOINC suspend le calcul au dessus de la température de batterie définie. Il n\'est pas recommandé de modifier cette valeur.</string>
-  <string name="prefs_disk_max_pct_header">Espace de stockage utilisé maximum</string>
-  <string name="prefs_disk_max_pct_description">Quel pourcentage de l\'espace de stockage BOINC peut-il utiliser ? </string>
-  <string name="prefs_disk_min_free_gb_header">Capacité de stockage minimum</string>
-  <string name="prefs_disk_min_free_gb_description">Quelle capacité de stockage de votre appareil doit rester disponible ? </string>
-  <string name="prefs_disk_access_interval_header">Intervalle d\'accès</string>
-  <string name="prefs_disk_access_interval_description">Suggère un intervalle entre les accès disque</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Limite de transfert journalier</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limite le trafic de données journalier causé par BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Transférer les tâches seulement en WiFi</string>
-  <string name="prefs_autostart_header">Démarage automatique</string>
-  <string name="prefs_show_notification_notices_header">Afficher les notifications pour les nouvelles remarques</string>
-  <string name="prefs_show_notification_suspended_header">Afficher les notifications lorsque suspendu</string>
-  <string name="prefs_cpu_number_cpus_header">Cœurs du CPU utilisés</string>
-  <string name="prefs_cpu_number_cpus_description">Limiter le nombre de cores CPU que BOINC peut utiliser pour le calcul.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Mettre en pause si l\'utilisation du CPU dépasse</string>
-  <string name="prefs_cpu_other_load_suspension_description">Détermine si BOINC doit suspendre les calculs du fait de l\'exécution d\'autres applications.</string>
-  <string name="prefs_cpu_time_max_header">Limite CPU</string>
-  <string name="prefs_cpu_time_max_description">Limite le temps CPU que BOINC utilise pour les calculs.</string>
-  <string name="prefs_memory_max_idle_header">Limite RAM</string>
-  <string name="prefs_memory_max_idle_description">Limite la quantité de RAM que les tâches peuvent utiliser. </string>
-  <string name="prefs_client_log_flags_header">Drapeaux de journal du client BOINC</string>
-  <string name="prefs_gui_log_level_header">Journal niveau GUI</string>
-  <string name="prefs_gui_log_level_description">Définit le niveau de détail de la GUI des messages du journal</string>
-  <string name="prefs_unit_mb">Mo</string>
-  <string name="prefs_unit_gb">Go</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">s</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Lecture des projets...</string>
-  <string name="projects_add">Ajout de projet</string>
-  <string name="projects_icon">Icône de projet</string>
-  <string name="projects_credits_header">Crédits:</string>
-  <string name="projects_credits_host_header">(sur cet appareil)</string>
-  <string name="projects_credits_user_header">(total)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Suspendu par l\'utilisateur</string>
-  <string name="projects_status_dontrequestmorework">Pas de nouvelle tâche</string>
-  <string name="projects_status_ended">Projet terminé - OK pour le retirer.</string>
-  <string name="projects_status_detachwhendone">Se détacher une fois les tâches terminées</string>
-  <string name="projects_status_schedrpcpending">Requête au planificateur en attente</string>
-  <string name="projects_status_schedrpcinprogress">Requête au planificateur en cours</string>
-  <string name="projects_status_trickleuppending">Envoi des notifications d\'avancement en attente</string>
-  <string name="projects_status_backoff">Communication prévue dans:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Commandes du projet:</string>
-  <string name="projects_control_visit_website">Visitez le site Web</string>
-  <string name="projects_control_update">Mise à jour</string>
-  <string name="projects_control_remove">Supprimer</string>
-  <string name="projects_control_suspend">Suspendre</string>
-  <string name="projects_control_resume">Reprendre</string>
-  <string name="projects_control_nonewtasks">Pas de nouvelle tâche</string>
-  <string name="projects_control_allownewtasks">Autoriser une nouvelle tâche</string>
-  <string name="projects_control_reset">Réinitialiser</string>
-  <string name="projects_control_dialog_title_acctmgr">Commandes du gestionnaire de compte:</string>
-  <string name="projects_control_sync_acctmgr">Synchroniser</string>
-  <string name="projects_control_remove_acctmgr">Désactiver</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Supprimer le projet ?</string>
-  <string name="projects_confirm_detach_message">Êtes-vous sûr de vouloir supprimer </string>
-  <string name="projects_confirm_detach_message2">de BOINC ?</string>
-  <string name="projects_confirm_detach_confirm">Supprimer</string>
-  <string name="projects_confirm_reset_title">Recommencer le projet</string>
-  <string name="projects_confirm_reset_message">Êtes-vous sûr de vouloir recommencer </string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Réinitialiser</string>
-  <string name="projects_confirm_remove_acctmgr_title">Désactiver le gestionnaire de compte</string>
-  <string name="projects_confirm_remove_acctmgr_message">Êtes-vous sûr de vouloir cesser d\'utiliser </string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Désactiver</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Nom de la tâche:</string>
-  <string name="tasks_header_elapsed_time">Temps écoulé</string>
-  <string name="tasks_header_project_paused"> (suspendu)</string>
-  <string name="tasks_header_deadline">Date limite d\'envoi:</string>
-  <string name="tasks_result_new">nouveau</string>
-  <string name="tasks_result_files_downloading">En attente de téléchargement</string>
-  <string name="tasks_result_files_downloaded">Téléchargement terminé</string>
-  <string name="tasks_result_compute_error">erreur de calcul</string>
-  <string name="tasks_result_files_uploading">Transférer</string>
-  <string name="tasks_result_files_uploaded">Mise à jour effectuée</string>
-  <string name="tasks_result_aborted">annulé</string>
-  <string name="tasks_result_upload_failed">échec du chargement </string>
-  <string name="tasks_active_uninitialized">prêt</string>
-  <string name="tasks_active_executing">en cours d\'exécution</string>
-  <string name="tasks_active_suspended">suspendu</string>
-  <string name="tasks_active_abort_pending">suspension en cours</string>
-  <string name="tasks_active_quit_pending">suspension en cours</string>
-  <string name="tasks_custom_suspended_via_gui">suspendu</string>
-  <string name="tasks_custom_project_suspended_via_gui">projet suspendu</string>
-  <string name="tasks_custom_ready_to_report">prêt à valider</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Abandonner la tâche ?</string>
-  <string name="confirm_abort_task_message">Abandonner la tâche :</string>
-  <string name="confirm_abort_task_confirm">Abandonner</string>
-  <string name="confirm_cancel">Annuler</string>
-  <string name="confirm_image_desc">Confirmation</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Lecture des transferts...</string>
-  <string name="trans_upload">Envoi</string>
-  <string name="trans_download">Téléchargement</string>
-  <string name="trans_retryin">réessayer dans </string>
-  <string name="trans_failed">échoué</string>
-  <string name="trans_suspended">suspendu</string>
-  <string name="trans_active">actif</string>
-  <string name="trans_pending">en attente</string>
-  <string name="trans_projectbackoff"> retrait de projet</string>
-  <string name="trans_header_name">Fichier :</string>
-  <string name="trans_control_retry">Réessayer le transfert</string>
-  <string name="confirm_abort_trans_title">Annuler le transfert ?</string>
-  <string name="confirm_abort_trans_message">Abandonner le fichier :</string>
-  <string name="confirm_abort_trans_confirm">Abandonner</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Lecture des remarques...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Chargement du journal de messages...</string>
-  <string name="eventlog_client_header">Messages du client</string>
-  <string name="eventlog_gui_header">GUI des Messages</string>
-  <string name="eventlog_copy_toast">Journal copié dans le presse-papier.</string>
-  <string name="eventlog_email_subject">Journal de message pour le client BOINC Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Calcul suspendu.</string>
-  <string name="suspend_batteries">Connecter votre appareil à son un chargeur pour continuer les calculs.</string>
-  <string name="suspend_screen_on">Eteindre l\'écran pour continuer les calculs.</string>
-  <string name="suspend_useractive">L\'utilisateur est actif.</string>
-  <string name="suspend_tod">Plus de tranche de calcul disponible.</string>
-  <string name="suspend_bm">BOINC effectue l\'étalonnage de votre appareil...</string>
-  <string name="suspend_disksize">Plus d\'espace disque.</string>
-  <string name="suspend_cputhrottle">Régulateur de CPU programmé</string>
-  <string name="suspend_noinput">Pas d\'activité utilisateur récente.</string>
-  <string name="suspend_delay">Délai d\'initialisation.</string>
-  <string name="suspend_exclusiveapp"> Une application exclusive est en cours d\'exécution.</string>
-  <string name="suspend_cpu">Votre appareil est occupé avec d\'autres applications.</string>
-  <string name="suspend_network_quota">BOINC a atteint la limite de transfert réseau.</string>
-  <string name="suspend_os">Stoppé par Android.</string>
-  <string name="suspend_wifi">Non connecté au WiFi.</string>
-  <string name="suspend_battery_charging">En attente de la recharge de la batterie.</string>
-  <string name="suspend_battery_charging_long">Le calcul reprendra lorsque la charge de la batterie atteindra</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">actuellement</string>
-  <string name="suspend_battery_overheating">En attente du refroidissement de la batterie</string>
-  <string name="suspend_user_req">Reprise du calcul...</string>
-  <string name="suspend_network_user_req">manuellement.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Demandé par l\'utilisateur</string>
-  <string name="rpcreason_needwork">Pour demander du travail</string>
-  <string name="rpcreason_resultsdue">Pour rapporter une tâche terminée</string>
-  <string name="rpcreason_trickleup">Pour envoyer les messages de progression de tâche</string>
-  <string name="rpcreason_acctmgrreq">Demandé par le gestionnaire de compte</string>
-  <string name="rpcreason_init">Initialisation du projet</string>
-  <string name="rpcreason_projectreq">Demandé par le projet</string>
-  <string name="rpcreason_unknown">Raison inconnue</string>
-  <!--menu-->
-  <string name="menu_refresh">Rafraîchir</string>
-  <string name="menu_emailto">Envoyer en e-mail </string>
-  <string name="menu_copy">Copier dans le presse-papier</string>
-  <string name="menu_eventlog">Journal des évènements</string>
-  <string name="menu_exit">Fermer BOINC</string>
-  <string name="menu_run_mode_disable">Suspendre</string>
-  <string name="menu_run_mode_enable">Reprendre</string>
-  <string name="menu_about">A propos</string>
-  <string name="menu_help">Aide</string>
-  <!--about dialog-->
-  <string name="about_button">Retour</string>
-  <string name="about_title">A propos</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Version</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">\u00A9 2003–2014 Université de Californie, Berkeley</string>
-  <string name="about_copyright_reserved">Tous droits réservés.</string>
-  <string name="about_credits">Merci à l\'Institut Max Planck de physique gravitationnelle, IBM Corporation et HTC Corporation pour leur soutien.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nouvelle notification de</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nouvelle notification</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Application de calcul bénévole détectée</string>
-  <string name="nonexcl_dialog_text">Une autre application de calcul informatique bénévole fonctionne sur cet appareil. Une seule application peut fonctionner à la fois.</string>
-  <string name="nonexcl_dialog_exit">Quitter</string>
-  <!--social integration-->
-  <string name="social_invite_button">Inviter des amis</string>
-  <string name="social_invite_intent_title">Comment voulez-vous partager ? </string>
-  <string name="social_invite_content_title">Je fais du calcul scientifique sur mon smatphone !</string>
-  <string name="social_invite_content_body">J\'utilise mon %1$s pour faire du calcul scientifique. Vous pouvez le faire aussi ! Téléchargez l\'application à partir de : %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-he/strings.xml b/android/BOINC/res/values-he/strings.xml
deleted file mode 100644
index 0605499..0000000
--- a/android/BOINC/res/values-he/strings.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-  <string name="attachproject_list_acctmgr_button">Lisää tilihallitsija</string>
-  <string name="attachproject_login_platform_supported">Tämä projekti tukee Android-laitteita</string>
-  <string name="attachproject_login_platform_not_supported">Tämä projekti ei tue Android-laitteita</string>
-  <string name="attachproject_login_category_terms_of_use">"Conditions d\'utilisation pour "</string>
-  <string name="attachproject_login_button_registration">Rekisteröi</string>
-  <string name="attachproject_login_attached">Liitetty</string>
-  <string name="attachproject_registration_header_teamname">Tiimi:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Kirjoita uudelleen:</string>
-  <string name="attachproject_registration_button">Luo</string>
-  <string name="attachproject_acctmgr_header">Lisää tilihallitsija</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Käyttäjä:</string>
-  <string name="attachproject_acctmgr_header_pwd">Salasana:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Kirjoita uudelleen:</string>
-  <string name="attachproject_acctmgr_button">Lisää</string>
-  <string name="attachproject_error_wrong_name">Käyttäjää ei löydy</string>
-  <string name="attachproject_error_short_pwd">Salasana liian lyhyt</string>
-  <string name="attachproject_error_no_internet">Yhteysvirhe</string>
-  <string name="attachproject_error_pwd_no_match">Salasanat eivät täsmää</string>
-  <string name="attachproject_error_no_url">Anna URL</string>
-  <string name="attachproject_error_no_email">Anna sähköpostiosoite</string>
-  <string name="attachproject_error_no_pwd">Anna salasana</string>
-  <string name="attachproject_error_no_name">Anna käyttäjänimi</string>
-  <string name="attachproject_error_unknown">epäonnistui</string>
-  <string name="attachproject_error_bad_username">Käyttäjänimi hylätty</string>
-  <string name="attachproject_error_email_in_use">Sähköposti on jo käytössä</string>
-  <string name="attachproject_error_project_down">Projekti on sammutettu</string>
-  <string name="attachproject_error_email_bad_syntax">Sähköposti hylätty</string>
-  <string name="attachproject_error_bad_pwd">Salasana hylätty</string>
-  <string name="attachproject_error_creation_disabled">Tilin luonti on poistettu käytöstä tässä projektissa</string>
-  <string name="attachproject_error_invalid_url">Virheellinen URL</string>
-  <string name="attachproject_working_back_button">Takaisin</string>
-  <string name="attachproject_working_finish_button">Valmis</string>
-  <string name="attachproject_working_check_desc">Onnistui</string>
-  <string name="attachproject_working_failed_desc">Epäonnistui</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Yhdistä</string>
-  <string name="attachproject_working_verify">Varmenna tili</string>
-  <string name="attachproject_working_register">Rekisteröi tili</string>
-  <string name="attachproject_working_login">Kirjaudu</string>
-  <string name="attachproject_working_acctmgr">Lisää tilihallitsija</string>
-  <string name="attachproject_working_acctmgr_sync">Synkronoi</string>
-  <string name="main_error">Hups</string>
-  <string name="main_error_long">…tätä ei olisi pitänyt tapahtua!\nNapsauta kuvaketta yrittääksesi uudelleen.</string>
-  <string name="main_title_icon_desc">BOINC kuvake</string>
-  <string name="tab_status">Tila</string>
-  <string name="tab_tasks">Tehtävät</string>
-  <string name="tab_transfers">Siirrot</string>
-  <string name="tab_preferences">Asetukset</string>
-  <string name="tab_notices">Ilmoitukset</string>
-  <string name="tab_desc">Navigointi</string>
-  <string name="status_running">Laskenta</string>
-  <string name="status_running_long">Kiitos osallistumisesta.</string>
-  <string name="status_paused">Hyllytetty</string>
-  <string name="status_idle">Ei mitään tehtävää</string>
-  <string name="status_idle_long">Odottaa tehtäviä…</string>
-  <string name="status_computing_disabled">Hyllytetty</string>
-  <string name="status_launching">Käynnistetään…</string>
-  <string name="status_noproject">Valitse projekti, johon osallistut.</string>
-  <string name="status_closing">Suljetaan…</string>
-  <string name="status_benchmarking">Suorituskykytestaus…</string>
-  <string name="status_image_description">projektin kuva</string>
-  <string name="prefs_loading">Luetaan asetuksia…</string>
-  <string name="prefs_submit_button">Tallenna</string>
-  <string name="prefs_dialog_title">Anna uusi arvo:</string>
-  <string name="prefs_dialog_title_selection">Valitse:</string>
-  <string name="prefs_category_general">Yleiset</string>
-  <string name="prefs_category_network">Verkko</string>
-  <string name="prefs_category_power">Virta</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Tilankäyttö</string>
-  <string name="prefs_category_memory">Muisti</string>
-  <string name="prefs_category_debug">Virheenjäljitys</string>
-  <string name="prefs_show_advanced_header">Näytä lisäasetukset ja ohjaimet…</string>
-  <string name="battery_charge_min_pct_header">Pienin varaustaso</string>
-  <string name="battery_charge_min_pct_description">BOINC hyllyttää laskennan kun asetettu akun varaustason alaraja saavutetaan.</string>
-  <string name="battery_temperature_max_header">Suurin akun lämpötila</string>
-  <string name="battery_temperature_max_description">BOINC hyllyttää laskennan kun asetettu akun lämpötilaraja saavutetaan. Tätä arvoa ei suositella muutettavaksi.</string>
-  <string name="prefs_disk_max_pct_header">Suurin käytetty tallennustila</string>
-  <string name="prefs_disk_max_pct_description">Kuinka monta prosenttia laitteesi tallennustilasta BOINC saa käyttää?</string>
-  <string name="prefs_disk_min_free_gb_header">Pienin tallennustila</string>
-  <string name="prefs_disk_min_free_gb_description">Kuinka paljon laitteesi tallennustilasta jätetään vapaaksi?</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Päivittäinen siirtoraja</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Rajoitus BOINCin päivittäiselle tiedonsiirrolle.</string>
-  <string name="prefs_network_wifi_only_header">Siirrä tehtävät vain WiFin kautta</string>
-  <string name="prefs_autostart_header">Automaattikäynnistys</string>
-  <string name="prefs_cpu_number_cpus_header">Käytetyt CPU-ytimet</string>
-  <string name="prefs_cpu_number_cpus_description">Rajoittaa CPU-ytimien määrää, jota BOINC käyttää laskentaan.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Tauota prosessorikäytön ylittäessä</string>
-  <string name="prefs_cpu_other_load_suspension_description">Määrittää, milloin BOINC tauottaa laskennan toisten sovellusten vuoksi.</string>
-  <string name="prefs_cpu_time_max_header">CPU raja</string>
-  <string name="prefs_cpu_time_max_description">Rajoittaa prosessoriaikaa, jota BOINC käyttää laskentaan.</string>
-  <string name="prefs_memory_max_idle_header">RAM raja</string>
-  <string name="prefs_memory_max_idle_description">Rajoittaa RAM-muistin määrää, joka tehtäville annetaan.</string>
-  <string name="prefs_unit_mb">Mt</string>
-  <string name="prefs_unit_gb">Gt</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="projects_loading">Luetaan projekteja…</string>
-  <string name="projects_icon">Projektin kuvake</string>
-  <string name="projects_credits_header">Pisteet:</string>
-  <string name="projects_credits_host_header">(tällä laitteella)</string>
-  <string name="projects_credits_user_header">(kaikki)</string>
-  <string name="projects_status_suspendedviagui">Käyttäjän hyllyttämä</string>
-  <string name="projects_status_dontrequestmorework">Ei uusia töitä</string>
-  <string name="projects_status_ended">Projekti päättynyt - voi poistaa</string>
-  <string name="projects_status_detachwhendone">Poistetaan kun paketit on suoritettu</string>
-  <string name="projects_status_schedrpcpending">Pyyntö aikatauluttajalle odottaa</string>
-  <string name="projects_status_schedrpcinprogress">Pyyntö aikatauluttajalle käynnissä</string>
-  <string name="projects_status_trickleuppending">Väliaikaviesti odottaa</string>
-  <string name="projects_control_dialog_title">Projektin komennot:</string>
-  <string name="projects_control_visit_website">Käy sivulla</string>
-  <string name="projects_control_update">Päivitä</string>
-  <string name="projects_control_remove">Poista</string>
-  <string name="projects_control_suspend">Hyllytä</string>
-  <string name="projects_control_resume">Jatka</string>
-  <string name="projects_control_nonewtasks">Ei uutta työtä</string>
-  <string name="projects_control_allownewtasks">Salli uusi työ</string>
-  <string name="projects_control_reset">Nollaa</string>
-  <string name="projects_control_dialog_title_acctmgr">Tilihallitsijan komennot:</string>
-  <string name="projects_control_sync_acctmgr">Synkronoi</string>
-  <string name="projects_control_remove_acctmgr">Poista</string>
-  <string name="projects_confirm_detach_title">Poista projekti?</string>
-  <string name="projects_confirm_detach_message">Haluatko varmasti poistaa</string>
-  <string name="projects_confirm_detach_message2">BOINCista?</string>
-  <string name="projects_confirm_detach_confirm">Poista</string>
-  <string name="projects_confirm_reset_title">Nollaa projekti</string>
-  <string name="projects_confirm_reset_message">Haluatko varmasti nollata</string>
-  <string name="projects_confirm_reset_confirm">Nollaa</string>
-  <string name="projects_confirm_remove_acctmgr_title">Poista tilihallitsija</string>
-  <string name="projects_confirm_remove_acctmgr_message">Haluatko lopettaa käyttämästä</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Poista käytöstä</string>
-  <string name="tasks_header_name">Tehtävän nimi:</string>
-  <string name="tasks_header_elapsed_time">Käytetty aika:</string>
-  <string name="tasks_header_project_paused">(hyllytetty)</string>
-  <string name="tasks_header_deadline">Takaraja:</string>
-  <string name="tasks_result_new">uusi</string>
-  <string name="tasks_result_files_downloading">odottaa latausta</string>
-  <string name="tasks_result_files_downloaded">lataus valmis</string>
-  <string name="tasks_result_compute_error">laskentavirhe</string>
-  <string name="tasks_result_files_uploading">lähetetään</string>
-  <string name="tasks_result_files_uploaded">lähetys valmis</string>
-  <string name="tasks_result_aborted">hylätty</string>
-  <string name="tasks_result_upload_failed">lähetys epäonnistui</string>
-  <string name="tasks_active_uninitialized">valmis</string>
-  <string name="tasks_active_executing">suoritetaan</string>
-  <string name="tasks_active_suspended">hyllytetty</string>
-  <string name="tasks_active_abort_pending">hyllytetään</string>
-  <string name="tasks_active_quit_pending">hyllytetään</string>
-  <string name="tasks_custom_suspended_via_gui">hyllytetty</string>
-  <string name="tasks_custom_project_suspended_via_gui">projekti hyllytetty</string>
-  <string name="tasks_custom_ready_to_report">valmis raportoitavaksi</string>
-  <string name="confirm_abort_task_title">Hylkää tehtävä?</string>
-  <string name="confirm_abort_task_message">Hylkää tehtävä:</string>
-  <string name="confirm_abort_task_confirm">Hylkää</string>
-  <string name="confirm_cancel">Peruuta</string>
-  <string name="confirm_image_desc">Vahvistusikkuna</string>
-  <string name="trans_loading">Luetaan siirtoja…</string>
-  <string name="trans_upload">Lähetä</string>
-  <string name="trans_download">Lataa</string>
-  <string name="trans_retryin">uudelleenyritys</string>
-  <string name="trans_failed">epäonnistui</string>
-  <string name="trans_suspended">hyllytetty</string>
-  <string name="trans_active">aktiivinen</string>
-  <string name="trans_pending">odottaa</string>
-  <string name="trans_projectbackoff">projektin viivyttämä</string>
-  <string name="trans_header_name">Tiedosto:</string>
-  <string name="trans_control_retry">Yritä siirtoja</string>
-  <string name="confirm_abort_trans_title">Keskeytä siirto?</string>
-  <string name="confirm_abort_trans_message">Hylkää tiedosto:</string>
-  <string name="confirm_abort_trans_confirm">Hylkää</string>
-  <string name="notices_loading">Luetaan ilmoituksia…</string>
-  <string name="eventlog_loading">Ladataan lokiviestit…</string>
-  <string name="eventlog_client_header">Ohjelman viestit</string>
-  <string name="eventlog_gui_header">GUI viestit</string>
-  <string name="eventlog_copy_toast">Loki kopioitu leikepöydälle.</string>
-  <string name="eventlog_email_subject">BOINCin tapahtumaloki Androidilla:</string>
-  <string name="suspend_unknown">Laskenta hyllytetty.</string>
-  <string name="suspend_batteries">Kytke laite laturiin laskennan jatkamiseksi.</string>
-  <string name="suspend_useractive">Käyttäjä aktiivinen.</string>
-  <string name="suspend_bm">BOINC suorityskykytestaa laitettasi…</string>
-  <string name="suspend_disksize">Levytila loppu.</string>
-  <string name="suspend_exclusiveapp">Erityissovellus on käynnissä.</string>
-  <string name="suspend_cpu">Muut sovellukset käyttävät laitetta.</string>
-  <string name="suspend_network_quota">BOINC saavutti tiedonsiirtorajan.</string>
-  <string name="suspend_os">Androidin pysäyttämä.</string>
-  <string name="suspend_wifi">Ei WiFi-yhteyttä.</string>
-  <string name="suspend_battery_charging">Akku tulee ladata ennen kuin laskentaa jatketaan.</string>
-  <string name="suspend_battery_charging_long">Laskenta jatkuu akun varaustilan saavuttaessa</string>
-  <string name="suspend_battery_overheating">Odotetaan akun jäähtymistä</string>
-  <string name="suspend_user_req">Jatketaan laskentaa…</string>
-  <string name="suspend_network_user_req">manuaalisesti.</string>
-  <string name="rpcreason_userreq">Käyttäjän pyytämä</string>
-  <string name="rpcreason_needwork">Pyydetään työtä</string>
-  <string name="rpcreason_resultsdue">Raportoidaan valmiit paketit</string>
-  <string name="rpcreason_trickleup">Lähetetään väliaikaviesti</string>
-  <string name="rpcreason_acctmgrreq">Tilihallitsijan pyytämä</string>
-  <string name="rpcreason_init">Projektin alustus</string>
-  <string name="rpcreason_projectreq">Projektin pyytämä</string>
-  <string name="rpcreason_unknown">Tuntematon syy</string>
-  <string name="menu_refresh">Päivitä</string>
-  <string name="menu_emailto">Lähetä sähköpostina</string>
-  <string name="menu_copy">Kopioi leikepöydälle</string>
-  <string name="menu_eventlog">Tapahtumaloki</string>
-  <string name="menu_exit">Lopeta BOINC</string>
-  <string name="menu_run_mode_disable">Hyllytä</string>
-  <string name="menu_run_mode_enable">Jatka</string>
-  <string name="menu_about">Tietoja</string>
-  <string name="menu_help">Ohje</string>
-  <string name="about_title">Tietoja</string>
-  <string name="about_version">Versio</string>
-  <string name="about_name_long">Berkeleyn avoin infrastruktuuri verkkolaskentaan</string>
-  <string name="about_copyright">© 2003–2013 Kalifornian yliopisto, Berkeley.\nKaikki oikeudet pidätetään.</string>
-</resources>
diff --git a/android/BOINC/res/values-hr/strings.xml b/android/BOINC/res/values-hr/strings.xml
deleted file mode 100644
index bf5b8d2..0000000
--- a/android/BOINC/res/values-hr/strings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-  <string name="app_name">BOINC</string>
-</resources>
diff --git a/android/BOINC/res/values-hu/strings.xml b/android/BOINC/res/values-hu/strings.xml
deleted file mode 100644
index 60aa363..0000000
--- a/android/BOINC/res/values-hu/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Betöltés! Kérjük, várj...</string>
-  <string name="generic_button_continue">Folytatás</string>
-  <string name="generic_button_finish">Befejezés</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Válaszd ki azokat a tudományos projekteket, amelyekhez szeretnél hozzájárulni:</string>
-  <string name="attachproject_list_header">Válassz projektet</string>
-  <string name="attachproject_list_manual_button">Projekt hozzáadása URL szerint</string>
-  <string name="attachproject_list_manual_dialog_title">Add meg a projekt URL-jét:</string>
-  <string name="attachproject_list_manual_dialog_button">Projekt hozzáadása</string>
-  <string name="attachproject_list_manual_no_url">Kérjük, add meg a projekt URL-jét</string>
-  <string name="attachproject_list_acctmgr_button">Fiókkezelő hozzáadása</string>
-  <string name="attachproject_list_no_internet">Nincs internetkapcsolat</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Fiókinformációk megadása</string>
-  <string name="attachproject_credential_input_desc">Fiókadatok megadása a kiválasztott projektekhez:</string>
-  <string name="attachproject_credential_input_show_pwd">Jelszó mutatása</string>
-  <string name="attachproject_individual_credential_input">Projektek hozzáadása egyenként</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Problémák voltak a tudományos projektek hozzáadásával:</string>
-  <string name="attachproject_conflict_undefined">Nem sikerült csatlakozni</string>
-  <string name="attachproject_conflict_not_unique">A fiók létezik, eltérő jelszóval </string>
-  <string name="attachproject_conflict_bad_password">Helytelen jelszó</string>
-  <string name="attachproject_conflict_unknown_user">A fiók nem létezik</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">A fiók nem létezik, nézd meg a projekt weboldalát a regisztráláshoz</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Csatolás</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Tipp</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Hogyan tovább:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Csatlakozás a WiFi-hez</string>
-  <string name="attachproject_hint_contribtion_charger">2. Töltő csatlakoztatása</string>
-  <string name="attachproject_hint_contribtion_screen">3. Képernyő kikapcsolása</string>
-  <string name="attachproject_hint_projectwebsite_header">Nézd a projekt weboldalakat is:</string>
-  <string name="attachproject_hint_projectwebsite_science">Tudj meg többet a tudományról</string>
-  <string name="attachproject_hint_projectwebsite_stats">Közreműködők statisztikája</string>
-  <string name="attachproject_hint_projectwebsite_community">Üzenet más önkénteseknek</string>
-  <string name="attachproject_hint_platforms_header">A BOINC asztali számítógépre és laptopra is elérhető, lásd itt: boinc.berkeley.edu</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Csatlakozás a projekt szerverhez...</string>
-  <string name="attachproject_login_image_description">Projekt logó.</string>
-  <string name="attachproject_login_header_general_area">Fő tudományterület:</string>
-  <string name="attachproject_login_header_specific_area">Speciális tudományterület:</string>
-  <string name="attachproject_login_header_description">Leírás:</string>
-  <string name="attachproject_login_header_home">Honlap:</string>
-  <string name="attachproject_login_header_url">Weboldal:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Ez a projekt támogatja ezt az eszközt</string>
-  <string name="attachproject_login_platform_not_supported">Ez a projekt nem támogatja ezt az eszközt</string>
-  <string name="attachproject_login_category_terms_of_use">Felhasználási feltételek ehhez</string>
-  <string name="attachproject_login_accept_terms_of_use">Fiók létrehozásával elfogadod a projekt felhasználási feltételeit, ahogy az fentebb írva van.</string>
-  <string name="attachproject_login_category_login">Bejelentkezés létező fiókkal</string>
-  <string name="attachproject_login_header_id_email">eMail:</string>
-  <string name="attachproject_login_header_id_name">Név:</string>
-  <string name="attachproject_login_header_pwd">Jelszó:</string>
-  <string name="attachproject_login_category_creation">Új:</string>
-  <string name="attachproject_login_header_creation_enabled">Hozz létre egy felhasználói fiókot a részvételhez:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Nézd meg a projekt weboldalát a regisztrációhoz:</string>
-  <string name="attachproject_login_header_creation_disabled">Ebben a projektben jelenleg nem készíthetők új fiókok.</string>
-  <string name="attachproject_login_button_registration">Regisztráció</string>
-  <string name="attachproject_login_button_login">Bejelentkezés</string>
-  <string name="attachproject_login_button_forgotpw">Elfelejtett jelszó</string>
-  <string name="attachproject_login_error_toast">Projekt csatlakoztatása sikertelen!</string>
-  <string name="attachproject_login_attached">Csatolva</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Fiók létrehozása</string>
-  <string name="attachproject_registration_header_url">Projekt:</string>
-  <string name="attachproject_registration_header_email">eMail:</string>
-  <string name="attachproject_registration_header_username">Név:</string>
-  <string name="attachproject_registration_header_teamname">Csapat:</string>
-  <string name="attachproject_registration_header_pwd">Jelszó:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... Írd be ismét:</string>
-  <string name="attachproject_registration_button">Létrehoz</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Használd a BOINC fiókkezelőt új projekt hozzáadásához vagy a meglévő projektek kezeléséhez</string>
-  <string name="attachproject_acctmgr_header">Fiókkezelő hozzáadása</string>
-  <string name="attachproject_acctmgr_header_url">Webcím</string>
-  <string name="attachproject_acctmgr_header_name">Felhasználó:</string>
-  <string name="attachproject_acctmgr_header_pwd">Jelszó:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... Írd be ismét:</string>
-  <string name="attachproject_acctmgr_button">Hozzáad</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">A felhasználó nem található</string>
-  <string name="attachproject_error_short_pwd">A jelszó túl rövid</string>
-  <string name="attachproject_error_no_internet">Kapcsolódási hiba</string>
-  <string name="attachproject_error_pwd_no_match">A jelszavak nem egyeznek</string>
-  <string name="attachproject_error_pwd_no_retype">Kérjük, írd be újra a jelszavadat</string>
-  <string name="attachproject_error_no_url">Kérjük, add meg az URL-t</string>
-  <string name="attachproject_error_no_email">Kérjük, add meg az email címed</string>
-  <string name="attachproject_error_no_pwd">Kérjük, adj meg egy jelszót</string>
-  <string name="attachproject_error_no_name">Kérjük, add meg a felhasználóneved</string>
-  <string name="attachproject_error_unknown">nem sikerült</string>
-  <string name="attachproject_error_bad_username">Felhasználónév visszautasítva</string>
-  <string name="attachproject_error_email_in_use">Az email már használatban van</string>
-  <string name="attachproject_error_project_down">A projekt nem elérhető</string>
-  <string name="attachproject_error_email_bad_syntax">Email visszautasítva</string>
-  <string name="attachproject_error_bad_pwd">Jelszó visszautasítva</string>
-  <string name="attachproject_error_creation_disabled">A fiókok létrehozása le van tiltva ennél a projektnél</string>
-  <string name="attachproject_error_invalid_url">Érvénytelen URL</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Vissza</string>
-  <string name="attachproject_working_finish_button">Befejezés</string>
-  <string name="attachproject_working_check_desc">Sikeres</string>
-  <string name="attachproject_working_failed_desc">Nem sikerült</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Csatlakozás</string>
-  <string name="attachproject_working_verify">Fiók megerősítése</string>
-  <string name="attachproject_working_register">Fiók létrehozása</string>
-  <string name="attachproject_working_login">Bejelentkezés</string>
-  <string name="attachproject_working_acctmgr">Fiókkezelő hozzáadása</string>
-  <string name="attachproject_working_acctmgr_sync">Szinkronizáció</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Projekt kiválasztásához koppints ide.</string>
-  <string name="main_error">Hoppá</string>
-  <string name="main_error_long">...ennek nem szabadna megtörténnie!\nKattints az ikonra és próbáld újra.</string>
-  <string name="main_title_icon_desc">BOINC ikon</string>
-  <!--tab names-->
-  <string name="tab_status">Állapot</string>
-  <string name="tab_projects">Projektek</string>
-  <string name="tab_tasks">Feladatok</string>
-  <string name="tab_transfers">Adatforgalom</string>
-  <string name="tab_preferences">Beállítások</string>
-  <string name="tab_notices">Értesítések</string>
-  <string name="tab_desc">Navigáció</string>
-  <!--status strings-->
-  <string name="status_running">Számítás</string>
-  <string name="status_running_long">Köszönjük részvételed.</string>
-  <string name="status_paused">Felfüggesztve</string>
-  <string name="status_idle">Nincs tennivaló</string>
-  <string name="status_idle_long">Várakozás feladatokra...</string>
-  <string name="status_computing_disabled">Felfüggesztve</string>
-  <string name="status_computing_disabled_long">A kommunikáció és a számítások folytatásához nyomd meg a lejátszást.</string>
-  <string name="status_launching">Indulás...</string>
-  <string name="status_noproject">Válassz egy projektet, amiben részt akarsz venni.</string>
-  <string name="status_closing">Bezárás...</string>
-  <string name="status_benchmarking">Sebességmérés...</string>
-  <string name="status_image_description">projekt kép</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Beállítások beolvasása...</string>
-  <string name="prefs_submit_button">Mentés</string>
-  <string name="prefs_dialog_title">Új érték megadása:</string>
-  <string name="prefs_dialog_title_selection">Kiválaszt:</string>
-  <string name="prefs_category_general">Általános</string>
-  <string name="prefs_category_network">Hálózat</string>
-  <string name="prefs_category_power">Energia</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Tárhely</string>
-  <string name="prefs_category_memory">Memória</string>
-  <string name="prefs_category_debug">Hibakeresés</string>
-  <string name="prefs_show_advanced_header">Haladó beállítások és vezérlőelemek mutatása...</string>
-  <string name="prefs_suspend_when_screen_on">Számítás szüneteltetése, ha a képernyő be van kapcsolva</string>
-  <string name="prefs_stationary_device_mode_header">Állandó készülék mód</string>
-  <string name="prefs_stationary_device_mode_description">Az energiabeállítástól függetlenül lehetővé teszi a számítást. Csak akkor engedélyezd, ha a készülék nem akkuról működik.</string>
-  <string name="prefs_power_source_header">A számításhoz használt energiaforrások</string>
-  <string name="prefs_power_source_description">Válaszd ki azokat az energiaforrásokat, amiknél a BOINC-ot engedélyezed.</string>
-  <string name="prefs_power_source_ac">Fali csatlakozó</string>
-  <string name="prefs_power_source_usb">USB kapcsolat</string>
-  <string name="prefs_power_source_wireless">Vezeték nélküli töltő</string>
-  <string name="prefs_power_source_battery">Akku</string>
-  <string name="battery_charge_min_pct_header">Min. töltöttségi szint</string>
-  <string name="battery_charge_min_pct_description">A BOINC kikapcsol, ha az akku töltöttsége egy bizonyos szint alá esik.</string>
-  <string name="battery_temperature_max_header">Max. akkuhőmérséklet</string>
-  <string name="battery_temperature_max_description">A BOINC kikapcsol, ha az akku hőmérséklete egy bizonyos érték fölé emelkedik. Nem ajánlott megváltoztatni ezt az értéket.</string>
-  <string name="prefs_disk_max_pct_header">Max. használható lemezterület</string>
-  <string name="prefs_disk_max_pct_description">Az eszköz tárolóhelyének hány százalékát használhatja a BOINC?</string>
-  <string name="prefs_disk_min_free_gb_header">Min. szabad terület</string>
-  <string name="prefs_disk_min_free_gb_description">Az eszköz tárolóhelyének mennyi része maradjon szabadon?</string>
-  <string name="prefs_disk_access_interval_header">Hozzáférési időköz</string>
-  <string name="prefs_disk_access_interval_description">Javaslat a lemezhozzáférés gyakoriságához</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Napi átviteli limit</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">A BOINC által maximálisan használt napi adatforgalom.</string>
-  <string name="prefs_network_wifi_only_header">Feladatok továbbítása csak WiFin keresztül</string>
-  <string name="prefs_autostart_header">Autóindítás</string>
-  <string name="prefs_show_notification_notices_header">Új üzenetek megjelenítése</string>
-  <string name="prefs_show_notification_suspended_header">Üzenetek megjelenítése, ha fel van függesztve</string>
-  <string name="prefs_cpu_number_cpus_header">Használt CPU magok</string>
-  <string name="prefs_cpu_number_cpus_description">CPU magok használatának korlátozása a BOINC számára.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Felfüggesztés, ha  a CPU használat e fölötti</string>
-  <string name="prefs_cpu_other_load_suspension_description">Meghatározza, hogy a BOINC mikor hagyja félbe a számítást más alkalmazások CPU használata miatt.</string>
-  <string name="prefs_cpu_time_max_header">CPU korlátozás</string>
-  <string name="prefs_cpu_time_max_description">CPU idő használatának korlátozása a BOINC számára.</string>
-  <string name="prefs_memory_max_idle_header">Memória korlátozás</string>
-  <string name="prefs_memory_max_idle_description">A feladatok által használható memória korlátozása.</string>
-  <string name="prefs_client_log_flags_header">BOINC kliens naplózási címkék</string>
-  <string name="prefs_gui_log_level_header">GUI naplózási szint</string>
-  <string name="prefs_gui_log_level_description">Mennyire legyenek bőbeszédűek a GUI naplóüzenetek.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">s</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Projektek beolvasása...</string>
-  <string name="projects_add">Projekt hozzáadása</string>
-  <string name="projects_icon">Projekt ikon</string>
-  <string name="projects_credits_header">Kredit:</string>
-  <string name="projects_credits_host_header">(ezen a készüléken)</string>
-  <string name="projects_credits_user_header">(összesen)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Felhasználó által felfüggesztve</string>
-  <string name="projects_status_dontrequestmorework">Nem tölt le új feladatot</string>
-  <string name="projects_status_ended">A projekt befejeződött - nyomj OK-t az eltávolításához</string>
-  <string name="projects_status_detachwhendone">Eltávolítás a feladatok befejezésekor</string>
-  <string name="projects_status_schedrpcpending">Függő kérés az ütemezőhöz</string>
-  <string name="projects_status_schedrpcinprogress">Ütemező által indított kérés folyamatban</string>
-  <string name="projects_status_trickleuppending">Időközi jelentés függőben</string>
-  <string name="projects_status_backoff">Kommunikáció időzítve:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Projekt parancsok:</string>
-  <string name="projects_control_visit_website">Nézd meg a weboldalt</string>
-  <string name="projects_control_update">Frissítés</string>
-  <string name="projects_control_remove">Eltávolítás</string>
-  <string name="projects_control_suspend">Felfüggesztés</string>
-  <string name="projects_control_resume">Folytatás</string>
-  <string name="projects_control_nonewtasks">Nincs új feladat</string>
-  <string name="projects_control_allownewtasks">Új feladatok engedélyezése</string>
-  <string name="projects_control_reset">Visszaállítás</string>
-  <string name="projects_control_dialog_title_acctmgr">Fiókkezelő parancsok:</string>
-  <string name="projects_control_sync_acctmgr">Szinkronizáció</string>
-  <string name="projects_control_remove_acctmgr">Kikapcsolva</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Törlöd a projektet?</string>
-  <string name="projects_confirm_detach_message">Biztosan le akarod törölni</string>
-  <string name="projects_confirm_detach_message2">BOINC-ról?</string>
-  <string name="projects_confirm_detach_confirm">Eltávolítás</string>
-  <string name="projects_confirm_reset_title">Projekt nullázása</string>
-  <string name="projects_confirm_reset_message">Biztosan újrakezded</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Visszaállítás</string>
-  <string name="projects_confirm_remove_acctmgr_title">Fiókkezelő kikapcsolása</string>
-  <string name="projects_confirm_remove_acctmgr_message">Biztosan le akarod állítani a használatot</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Kikapcsolva</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Feladat neve:</string>
-  <string name="tasks_header_elapsed_time">Eltelt idő:</string>
-  <string name="tasks_header_project_paused">(felfüggesztve)</string>
-  <string name="tasks_header_deadline">Határidő:</string>
-  <string name="tasks_result_new">új</string>
-  <string name="tasks_result_files_downloading">várakozás a letöltésre</string>
-  <string name="tasks_result_files_downloaded">letöltés kész</string>
-  <string name="tasks_result_compute_error">számítási hiba</string>
-  <string name="tasks_result_files_uploading">feltöltés</string>
-  <string name="tasks_result_files_uploaded">feltöltés kész</string>
-  <string name="tasks_result_aborted">leállítva</string>
-  <string name="tasks_result_upload_failed">feltöltés sikertelen</string>
-  <string name="tasks_active_uninitialized">kész</string>
-  <string name="tasks_active_executing">fut</string>
-  <string name="tasks_active_suspended">felfüggesztve</string>
-  <string name="tasks_active_abort_pending">felfüggesztés</string>
-  <string name="tasks_active_quit_pending">felfüggesztés</string>
-  <string name="tasks_custom_suspended_via_gui">felfüggesztve</string>
-  <string name="tasks_custom_project_suspended_via_gui">projekt felfüggesztve</string>
-  <string name="tasks_custom_ready_to_report">jelentésre kész</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Feladat megszakítása?</string>
-  <string name="confirm_abort_task_message">Feladat megszakítása:</string>
-  <string name="confirm_abort_task_confirm">Eldobás</string>
-  <string name="confirm_cancel">Mégsem</string>
-  <string name="confirm_image_desc">Megerősítés</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Átvitelek beolvasása...</string>
-  <string name="trans_upload">Feltöltés</string>
-  <string name="trans_download">Letöltés</string>
-  <string name="trans_retryin">újrapróbálás ennyi idő múlva</string>
-  <string name="trans_failed">nem sikerült</string>
-  <string name="trans_suspended">felfüggesztve</string>
-  <string name="trans_active">aktív</string>
-  <string name="trans_pending">függőben</string>
-  <string name="trans_projectbackoff">projekt visszatartás</string>
-  <string name="trans_header_name">Fájl:</string>
-  <string name="trans_control_retry">Átvitelek újraindítása</string>
-  <string name="confirm_abort_trans_title">Átvitel megszakítása?</string>
-  <string name="confirm_abort_trans_message">Fájl eldobása:</string>
-  <string name="confirm_abort_trans_confirm">Eldobás</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Értesítések olvasása...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Napló üzenetek betöltése...</string>
-  <string name="eventlog_client_header">Kliens üzenetek</string>
-  <string name="eventlog_gui_header">GUI üzenetek</string>
-  <string name="eventlog_copy_toast">A napló a vágólapra másolva.</string>
-  <string name="eventlog_email_subject">BOINC Android eseménynapló: </string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Számítás felfüggesztve.</string>
-  <string name="suspend_batteries">Csatlakoztasd az eszközt a töltőre a számítás folytatásához.</string>
-  <string name="suspend_screen_on">Kapcsold ki a képernyőt a számítás folytatásához.</string>
-  <string name="suspend_useractive">Felhasználó aktív</string>
-  <string name="suspend_tod">Elfogyott a számítási időkeret.</string>
-  <string name="suspend_bm">A BOINC sebességmérést végez az eszközön...</string>
-  <string name="suspend_disksize">Nincs üres lemezterület.</string>
-  <string name="suspend_cputhrottle">Ütemezett CPU lassítás.</string>
-  <string name="suspend_noinput">Nem volt felhasználói aktivitás.</string>
-  <string name="suspend_delay">Előkészítés késleltetése.</string>
-  <string name="suspend_exclusiveapp">Egy alkalmazás kizárólagosan fut.</string>
-  <string name="suspend_cpu">Az eszköz más alkalmazásokat futtat.</string>
-  <string name="suspend_network_quota">A BOINC elérte a hálózati forgalom beállított határát.</string>
-  <string name="suspend_os">Android megállította.</string>
-  <string name="suspend_wifi">Nincs kapcsolódva a WiFihez.</string>
-  <string name="suspend_battery_charging">Várakozás az akku feltöltéséig.</string>
-  <string name="suspend_battery_charging_long">A számítás folytatódik, amikor az akku feltöltődött</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">jelenleg</string>
-  <string name="suspend_battery_overheating">Várakozás az akku lehűlésére</string>
-  <string name="suspend_user_req">Számítas újrakezdése...</string>
-  <string name="suspend_network_user_req">kézi.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">A felhasználó kezdeményezte</string>
-  <string name="rpcreason_needwork">Új munka kérése</string>
-  <string name="rpcreason_resultsdue">Elkészült feladatok jelentése</string>
-  <string name="rpcreason_trickleup">Időközi jelentés küldése</string>
-  <string name="rpcreason_acctmgrreq">A fiókkezelő kezdeményezte</string>
-  <string name="rpcreason_init">Projekt előkészítése</string>
-  <string name="rpcreason_projectreq">Projekt kezdeményezte</string>
-  <string name="rpcreason_unknown">Ismeretlen ok</string>
-  <!--menu-->
-  <string name="menu_refresh">Frissítés</string>
-  <string name="menu_emailto">Küldés emailben</string>
-  <string name="menu_copy">Másold a vágólapra</string>
-  <string name="menu_eventlog">Eseménynapló</string>
-  <string name="menu_exit">Kilépés a BOINC-ból</string>
-  <string name="menu_run_mode_disable">Felfüggesztés</string>
-  <string name="menu_run_mode_enable">Folytatás</string>
-  <string name="menu_about">Névjegy</string>
-  <string name="menu_help">Súgó</string>
-  <!--about dialog-->
-  <string name="about_button">Vissza</string>
-  <string name="about_title">Névjegy</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Verzió</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing\n(Berkeley Nyílt Infrastruktúra a Hálózati Számításért)</string>
-  <string name="about_copyright">\u00A9 2003–2014 Kaliforniai Egyetem, Berkeley.</string>
-  <string name="about_copyright_reserved">Minden jog fenntartva.</string>
-  <string name="about_credits">Köszönet a Max Planck Gravitációs Fizikai Intézetnek, az IBM Corporation-nek és a HTC Corporation-nek a támogatásért.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Új értesítés</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">új értesítések</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Önkéntes számítási alkalmazás észlelve</string>
-  <string name="nonexcl_dialog_text">Már fut egy másik önkéntes számítási alkalmazás. Egy időben csak egy futhat.</string>
-  <string name="nonexcl_dialog_exit">Bezárás</string>
-  <!--social integration-->
-  <string name="social_invite_button">Barátok meghívása</string>
-  <string name="social_invite_intent_title">Hogyan szeretnéd megosztani?</string>
-  <string name="social_invite_content_title">Tudományos munkát végzek az okostelefonomon!</string>
-  <string name="social_invite_content_body">%1$s eszközömet egy tudományos számításra használom. Ezt te is megteheted, töltsd le és futtasd az alkalmazást innen:  %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-it-rIT/strings.xml b/android/BOINC/res/values-it-rIT/strings.xml
deleted file mode 100644
index 4ea0efe..0000000
--- a/android/BOINC/res/values-it-rIT/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Caricamento in corso! Attendere prego…</string>
-  <string name="generic_button_continue">Continua</string>
-  <string name="generic_button_finish">Fine</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Seleziona il progetto al quale vuoi contribuire:</string>
-  <string name="attachproject_list_header">Scegli un progetto:</string>
-  <string name="attachproject_list_manual_button">Aggiungi un progetto dall\'URL</string>
-  <string name="attachproject_list_manual_dialog_title">Inserisci l\'URL del progetto:</string>
-  <string name="attachproject_list_manual_dialog_button">Aggiungi progetto</string>
-  <string name="attachproject_list_manual_no_url">Aggiungi l\'URL del progetto</string>
-  <string name="attachproject_list_acctmgr_button">Aggiungi un account manager</string>
-  <string name="attachproject_list_no_internet">Connessione Internet assente</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Inserisci le informazioni account</string>
-  <string name="attachproject_credential_input_desc">Inserisci le account informazioni per i progetti selezionati:</string>
-  <string name="attachproject_credential_input_show_pwd">Visualizza password</string>
-  <string name="attachproject_individual_credential_input">Aggiungi progetti individualmente</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Si sono verificati errori nell\'aggiunta dei seguenti progetti:</string>
-  <string name="attachproject_conflict_undefined">Impossibile connettersi</string>
-  <string name="attachproject_conflict_not_unique">L\'account esiste già con una password differente</string>
-  <string name="attachproject_conflict_bad_password">Password errata</string>
-  <string name="attachproject_conflict_unknown_user">Account inesistente</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Account inesistente, visita il sito web del progetto per registrarlo</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Connessione in corso</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Aiuto</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Come contribuire:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Connetti ad una rete WIFI</string>
-  <string name="attachproject_hint_contribtion_charger">2. Inserisci il Caricabatterie</string>
-  <string name="attachproject_hint_contribtion_screen">3. Spegni lo schermo</string>
-  <string name="attachproject_hint_projectwebsite_header">Visita il sito web del progetto a:</string>
-  <string name="attachproject_hint_projectwebsite_science">Scopri di più sul calcolo scientifico</string>
-  <string name="attachproject_hint_projectwebsite_stats">Vedi le statistiche dei contributi</string>
-  <string name="attachproject_hint_projectwebsite_community">Parla con altri volontari</string>
-  <string name="attachproject_hint_platforms_header">BOINC è anche disponibile per il tuo computer o laptop, visita boinc.berkeley.edu per saperne di più.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Comunicazione con il server progetto in corso…</string>
-  <string name="attachproject_login_image_description">Logo progetto.</string>
-  <string name="attachproject_login_header_general_area">Idea generale:</string>
-  <string name="attachproject_login_header_specific_area">Area specifica:</string>
-  <string name="attachproject_login_header_description">Descrizione:</string>
-  <string name="attachproject_login_header_home">Home:</string>
-  <string name="attachproject_login_header_url">Sito web:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Questo progetto supporta i dispositivi Android</string>
-  <string name="attachproject_login_platform_not_supported">Questo progetto non supporta i dispositivi Android</string>
-  <string name="attachproject_login_category_terms_of_use">Licenza per</string>
-  <string name="attachproject_login_accept_terms_of_use">Creando un account per questo progetto, accetti i termini della licenza visualizzata sotto.</string>
-  <string name="attachproject_login_category_login">Fai il login con un account esistente</string>
-  <string name="attachproject_login_header_id_email">eMail:</string>
-  <string name="attachproject_login_header_id_name">Nome:</string>
-  <string name="attachproject_login_header_pwd">Password:</string>
-  <string name="attachproject_login_category_creation">Nuovo</string>
-  <string name="attachproject_login_header_creation_enabled">Registra un account per partecipare:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Visita il sito web del progetto per creare un account:</string>
-  <string name="attachproject_login_header_creation_disabled">Al momento il progetto non accetta nuovi accounts.</string>
-  <string name="attachproject_login_button_registration">Registra</string>
-  <string name="attachproject_login_button_login">Login</string>
-  <string name="attachproject_login_button_forgotpw">Password dimenticata</string>
-  <string name="attachproject_login_error_toast">Comunicazione col progetto fallita!</string>
-  <string name="attachproject_login_attached">Connesso</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Registrazione account per</string>
-  <string name="attachproject_registration_header_url">Progetto:</string>
-  <string name="attachproject_registration_header_email">eMail:</string>
-  <string name="attachproject_registration_header_username">Nome:</string>
-  <string name="attachproject_registration_header_teamname">Team:</string>
-  <string name="attachproject_registration_header_pwd">Password:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Ripeti:</string>
-  <string name="attachproject_registration_button">Crea</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Usa un account manager BOINC per aggiungere e gestire progetti multipli</string>
-  <string name="attachproject_acctmgr_header">Aggiungi un account manager</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Utente:</string>
-  <string name="attachproject_acctmgr_header_pwd">Password:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Ripeti:</string>
-  <string name="attachproject_acctmgr_button">Aggiungi</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Utente non trovato</string>
-  <string name="attachproject_error_short_pwd">Password troppo corta</string>
-  <string name="attachproject_error_no_internet">Errore connessione</string>
-  <string name="attachproject_error_pwd_no_match">Password non corrispondenti</string>
-  <string name="attachproject_error_pwd_no_retype">Per favore inserisci nuovamente la password</string>
-  <string name="attachproject_error_no_url">Inserire un URL</string>
-  <string name="attachproject_error_no_email">Per favore inserisci un indirizzo email</string>
-  <string name="attachproject_error_no_pwd">Per favore inserisci una password</string>
-  <string name="attachproject_error_no_name">Per favore inserisci un nome utente</string>
-  <string name="attachproject_error_unknown">fallito</string>
-  <string name="attachproject_error_bad_username">Nome utente rifiutato</string>
-  <string name="attachproject_error_email_in_use">email già utilizzata</string>
-  <string name="attachproject_error_project_down">Progetto offline</string>
-  <string name="attachproject_error_email_bad_syntax">email rifiutata</string>
-  <string name="attachproject_error_bad_pwd">Password rifiutata</string>
-  <string name="attachproject_error_creation_disabled">La creazione account è disabilitata su questo progetto</string>
-  <string name="attachproject_error_invalid_url">URL invalido</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Indietro</string>
-  <string name="attachproject_working_finish_button">Fine</string>
-  <string name="attachproject_working_check_desc">Completato</string>
-  <string name="attachproject_working_failed_desc">Fallito</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Connetti</string>
-  <string name="attachproject_working_verify">Verifica account</string>
-  <string name="attachproject_working_register">Registra account</string>
-  <string name="attachproject_working_login">Log in</string>
-  <string name="attachproject_working_acctmgr">Aggiungi un account manager</string>
-  <string name="attachproject_working_acctmgr_sync">Sincronizza</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Premi qui per scegliere un progetto.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">…questo non deve succedere!\nClicca sull\'icona per riprovare.</string>
-  <string name="main_title_icon_desc">icona BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Stato</string>
-  <string name="tab_projects">Progetti</string>
-  <string name="tab_tasks">Elaborazioni</string>
-  <string name="tab_transfers">Trasferimenti</string>
-  <string name="tab_preferences">Preferenze</string>
-  <string name="tab_notices">Avvisi</string>
-  <string name="tab_desc">Navigazione</string>
-  <!--status strings-->
-  <string name="status_running">Elaborazione in corso</string>
-  <string name="status_running_long">Grazie per la partecipazione.</string>
-  <string name="status_paused">Sospeso</string>
-  <string name="status_idle">Nulla da fare</string>
-  <string name="status_idle_long">In attesa di nuovi lavori…</string>
-  <string name="status_computing_disabled">Sospeso</string>
-  <string name="status_computing_disabled_long">Premi play per far ripartire la rete e l\'elaborazione</string>
-  <string name="status_launching">Avvio in corso…</string>
-  <string name="status_noproject">Scegli un progetto per partecipare.</string>
-  <string name="status_closing">Chiusura in corso…</string>
-  <string name="status_benchmarking">Benchmark in corso…</string>
-  <string name="status_image_description">immagine progetto</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Lettura preferenze in corso…</string>
-  <string name="prefs_submit_button">Salva</string>
-  <string name="prefs_dialog_title">Inserisci il nuovo valore:</string>
-  <string name="prefs_dialog_title_selection">Seleziona:</string>
-  <string name="prefs_category_general">Generale</string>
-  <string name="prefs_category_network">Rete</string>
-  <string name="prefs_category_power">Energia</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Memoria fisica</string>
-  <string name="prefs_category_memory">Memoria</string>
-  <string name="prefs_category_debug">Debug</string>
-  <string name="prefs_show_advanced_header">Visualizza preferenze avanzate e controlli…</string>
-  <string name="prefs_suspend_when_screen_on">Interrompi il calcolo quando lo schermo è acceso</string>
-  <string name="prefs_stationary_device_mode_header">Modalità dispositivo stazionario</string>
-  <string name="prefs_stationary_device_mode_description">Permetti il calcolo a prescindere dalle preferenze di elettricità. Abilitalo solo se il dispositivo non ha una batteria.</string>
-  <string name="prefs_power_source_header">Sorgente di elettricità per il calcolo</string>
-  <string name="prefs_power_source_description">Seleziona le sorgenti di elettricità che BOINC può usare per il calcolo.</string>
-  <string name="prefs_power_source_ac">Caricabatterie a muro</string>
-  <string name="prefs_power_source_usb">Connessione USB</string>
-  <string name="prefs_power_source_wireless">Caricabatterie wireless</string>
-  <string name="prefs_power_source_battery">Batteria</string>
-  <string name="battery_charge_min_pct_header">Minimo livello batteria</string>
-  <string name="battery_charge_min_pct_description">BOINC sospende l\'elaborazione sotto il livello definito di carica della batteria.</string>
-  <string name="battery_temperature_max_header">Temperatura massima della batteria</string>
-  <string name="battery_temperature_max_description">BOINC sospende l\'elaborazione sopra al livello definito di temperatura della batteria. Non è raccomandato il cambiamento di questo valore.</string>
-  <string name="prefs_disk_max_pct_header">Massimo spazio di salvataggio</string>
-  <string name="prefs_disk_max_pct_description">Quanta percentuale dello spazio di salvataggio può usare BOINC?</string>
-  <string name="prefs_disk_min_free_gb_header">Minimo spazio su disco</string>
-  <string name="prefs_disk_min_free_gb_description">Quanto dello spazio di salvataggio del tuo dispositivo deve rimanere libero?</string>
-  <string name="prefs_disk_access_interval_header">Intervallo di accesso</string>
-  <string name="prefs_disk_access_interval_description">Suggerisci un intervallo tra le scritture su disco</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Limite trasferimento giornaliero</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limita il traffico giornaliero causato da BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Trasferisce i lavori solo su WiFi</string>
-  <string name="prefs_autostart_header">Avvio automatico</string>
-  <string name="prefs_show_notification_notices_header">Visualizza notifiche per nuove notizie</string>
-  <string name="prefs_show_notification_suspended_header">Visualizza notifiche quando sospeso</string>
-  <string name="prefs_cpu_number_cpus_header">Usa questo numero di core CPU</string>
-  <string name="prefs_cpu_number_cpus_description">Limita il numero di core CPU che BOINC usa per l\'elaborazione.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pausa con utilizzo CPU superiore a</string>
-  <string name="prefs_cpu_other_load_suspension_description">Determina quando BOINC ferma l\'elaborazione a causa dell\'utilizzo CPU di altre applicazioni.</string>
-  <string name="prefs_cpu_time_max_header">limite CPU</string>
-  <string name="prefs_cpu_time_max_description">Limita il tempo CPU che BOINC usa per l\'elaborazione.</string>
-  <string name="prefs_memory_max_idle_header">limite RAM</string>
-  <string name="prefs_memory_max_idle_description">Limita il quantitativo di RAM che BOINC può occupare.</string>
-  <string name="prefs_client_log_flags_header">Flag di log del Client BOINC</string>
-  <string name="prefs_gui_log_level_header">Livello di log della GUI</string>
-  <string name="prefs_gui_log_level_description">Specifica la verbosità dei messaggi di log della GUI.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">secondi</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Lettura progetti…</string>
-  <string name="projects_add">Aggiungi progetto</string>
-  <string name="projects_icon">icona Progetto</string>
-  <string name="projects_credits_header">Crediti:</string>
-  <string name="projects_credits_host_header">(su questo dispositivo)</string>
-  <string name="projects_credits_user_header">(totale)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Sospeso dall\'utente</string>
-  <string name="projects_status_dontrequestmorework">Non chiedere nuovi lavori</string>
-  <string name="projects_status_ended">Progetto terminato - Può essere rimosso</string>
-  <string name="projects_status_detachwhendone">Verrà rimosso quando le workunit saranno terminate</string>
-  <string name="projects_status_schedrpcpending">Richiesta allo scheduler in attesa</string>
-  <string name="projects_status_schedrpcinprogress">Richiesta allo scheduler in corso</string>
-  <string name="projects_status_trickleuppending">Messaggi trickle up in attesa</string>
-  <string name="projects_status_backoff">Comunicazione tra:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Comandi progetto:</string>
-  <string name="projects_control_visit_website">Visita il sito web</string>
-  <string name="projects_control_update">Aggiorna</string>
-  <string name="projects_control_remove">Rimuovi</string>
-  <string name="projects_control_suspend">Sospendi</string>
-  <string name="projects_control_resume">Riprendi</string>
-  <string name="projects_control_nonewtasks">Nessuna nuova workunit</string>
-  <string name="projects_control_allownewtasks">Permetti nuovie workunit</string>
-  <string name="projects_control_reset">Reset</string>
-  <string name="projects_control_dialog_title_acctmgr">Comandi dell\'account manager:</string>
-  <string name="projects_control_sync_acctmgr">Sincronizza</string>
-  <string name="projects_control_remove_acctmgr">Disabilita</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Rimuovere il progetto?</string>
-  <string name="projects_confirm_detach_message">Sei sicuro di voler rimuovere</string>
-  <string name="projects_confirm_detach_message2">da BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Rimuovi</string>
-  <string name="projects_confirm_reset_title">Reset progetto</string>
-  <string name="projects_confirm_reset_message">Sei sicuro di voler resettare</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Reset</string>
-  <string name="projects_confirm_remove_acctmgr_title">Disabilita l\'account manager</string>
-  <string name="projects_confirm_remove_acctmgr_message">Sei sicuro di voler terminare l\'utilizzo</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Disabilita</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Nome workunit:</string>
-  <string name="tasks_header_elapsed_time">Tempo trascorso:</string>
-  <string name="tasks_header_project_paused">(sospeso)</string>
-  <string name="tasks_header_deadline">Deadline:</string>
-  <string name="tasks_result_new">nuovo</string>
-  <string name="tasks_result_files_downloading">in attesa del download</string>
-  <string name="tasks_result_files_downloaded">download completato</string>
-  <string name="tasks_result_compute_error">errore elaborazione</string>
-  <string name="tasks_result_files_uploading">upload in corso</string>
-  <string name="tasks_result_files_uploaded">upload completo</string>
-  <string name="tasks_result_aborted">annullato</string>
-  <string name="tasks_result_upload_failed">upload fallito</string>
-  <string name="tasks_active_uninitialized">pronto</string>
-  <string name="tasks_active_executing">elaborazione in corso</string>
-  <string name="tasks_active_suspended">sospeso</string>
-  <string name="tasks_active_abort_pending">in sospensione</string>
-  <string name="tasks_active_quit_pending">in sospensione</string>
-  <string name="tasks_custom_suspended_via_gui">sospeso</string>
-  <string name="tasks_custom_project_suspended_via_gui">progetto sospeso</string>
-  <string name="tasks_custom_ready_to_report">pronto per il report</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Annullare elaborazione?</string>
-  <string name="confirm_abort_task_message">Annulla elaborazione:</string>
-  <string name="confirm_abort_task_confirm">Annulla</string>
-  <string name="confirm_cancel">Cancella</string>
-  <string name="confirm_image_desc">Finestra di conferma</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Lettura trasferimenti…</string>
-  <string name="trans_upload">Upload</string>
-  <string name="trans_download">Download</string>
-  <string name="trans_retryin">riprova tra</string>
-  <string name="trans_failed">fallito</string>
-  <string name="trans_suspended">sospeso</string>
-  <string name="trans_active">attivo</string>
-  <string name="trans_pending">in attesa</string>
-  <string name="trans_projectbackoff">backoff del progetto</string>
-  <string name="trans_header_name">File:</string>
-  <string name="trans_control_retry">Ritenta i trasferimenti</string>
-  <string name="confirm_abort_trans_title">Annullare trasferimento?</string>
-  <string name="confirm_abort_trans_message">Annulla file:</string>
-  <string name="confirm_abort_trans_confirm">Annulla</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Lettura notizie...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Caricamento messaggi di log…</string>
-  <string name="eventlog_client_header">Messaggi del client</string>
-  <string name="eventlog_gui_header">Messaggi della GUI</string>
-  <string name="eventlog_copy_toast">Log copiato nella clipboard.</string>
-  <string name="eventlog_email_subject">Log eventi per BOINC su Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Elaborazione sospesa.</string>
-  <string name="suspend_batteries">Connetti il tuo dispositivo ad un caricabatterie per continuare l\'eleborazione.</string>
-  <string name="suspend_screen_on">Spegni lo schermo per continuare il calcolo.</string>
-  <string name="suspend_useractive">Utente attivo.</string>
-  <string name="suspend_tod">Fuori tempo massimo di computazione.</string>
-  <string name="suspend_bm">BOINC sta facendo il benchmark del tuo dispositivo…</string>
-  <string name="suspend_disksize">Superato lo spazio disco.</string>
-  <string name="suspend_cputhrottle">CPU throttle schedulato</string>
-  <string name="suspend_noinput">Nessuna attività dell\'utente recente.</string>
-  <string name="suspend_delay">Ritardo di inizializzazione.</string>
-  <string name="suspend_exclusiveapp">Un\'applicazione esclusiva è in corso.</string>
-  <string name="suspend_cpu">Il tuo dispositivo è occupato con altre applicazioni.</string>
-  <string name="suspend_network_quota">BOINC ha raggiunto il limite di trasferimento dalla rete.</string>
-  <string name="suspend_os">Fermato da Android.</string>
-  <string name="suspend_wifi">Non connesso al WiFi</string>
-  <string name="suspend_battery_charging">In attesa che la batteria si ricarichi.</string>
-  <string name="suspend_battery_charging_long">L\'elaborazione riprenderà quando il livello di carica della batteria sarà almeno</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">attualmente</string>
-  <string name="suspend_battery_overheating">In attesa che la batteria si raffreddi</string>
-  <string name="suspend_user_req">Ripresa elaborazione…</string>
-  <string name="suspend_network_user_req">manualmente.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Richiesta dall\'utente</string>
-  <string name="rpcreason_needwork">Richiesta lavoro</string>
-  <string name="rpcreason_resultsdue">Invio elaborazioni terminate</string>
-  <string name="rpcreason_trickleup">Invio messaggi di trickle-up</string>
-  <string name="rpcreason_acctmgrreq">Richiesto dal gestore account</string>
-  <string name="rpcreason_init">Inizializzazione progetto</string>
-  <string name="rpcreason_projectreq">Richiesto dal progetto</string>
-  <string name="rpcreason_unknown">Motivo sconosciuto</string>
-  <!--menu-->
-  <string name="menu_refresh">Refresh</string>
-  <string name="menu_emailto">Invia una email</string>
-  <string name="menu_copy">Copia nella clipboard</string>
-  <string name="menu_eventlog">Log eventi</string>
-  <string name="menu_exit">Chiudi BOINC</string>
-  <string name="menu_run_mode_disable">Sospendi</string>
-  <string name="menu_run_mode_enable">Riprendi</string>
-  <string name="menu_about">Informazioni</string>
-  <string name="menu_help">Assistenza</string>
-  <!--about dialog-->
-  <string name="about_button">Return</string>
-  <string name="about_title">Informazioni</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versione</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">© 2003–2015 Università della California a Berkeley.\nTutti i diritti riservati.</string>
-  <string name="about_copyright_reserved">Tutti i diritti riservati.</string>
-  <string name="about_credits">Grazie all\'istituto Max Planck per la Fisica Gravitazionale, la IBM Corporation e la HTC Corporation per il loro supporto.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nuova notifica da</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nuovi avvisi</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Applicazione di calcolo distribuito rilevata</string>
-  <string name="nonexcl_dialog_text">Un\'altra applicazione di calcolo distribuito volontario è in uso su questo dispositivo. Solo una versione per volta può essere utilizzata.</string>
-  <string name="nonexcl_dialog_exit">Esci</string>
-  <!--social integration-->
-  <string name="social_invite_button">Invita amici</string>
-  <string name="social_invite_intent_title">Come vuoi condividere?</string>
-  <string name="social_invite_content_title">Sto facendo calcoli scientifici dal mio smartphone!</string>
-  <string name="social_invite_content_body">Sto usando il mio %1$s per fare calcolo scientifico distribuito. Anche tu puoi! Scarica l\'applicazione da: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-it_rIT/strings.xml b/android/BOINC/res/values-it_rIT/strings.xml
deleted file mode 100644
index 433f438..0000000
--- a/android/BOINC/res/values-it_rIT/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Caricamento in corso! Attendere prego…</string>
-  <string name="generic_button_continue">Continua</string>
-  <string name="generic_button_finish">Fine</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Seleziona il progetto al quale vuoi contribuire:</string>
-  <string name="attachproject_list_header">Scegli un progetto:</string>
-  <string name="attachproject_list_manual_button">Aggiungi un progetto dall\'URL</string>
-  <string name="attachproject_list_manual_dialog_title">Inserisci l\'URL del progetto:</string>
-  <string name="attachproject_list_manual_dialog_button">Aggiungi progetto</string>
-  <string name="attachproject_list_manual_no_url">Aggiungi l\'URL del progetto</string>
-  <string name="attachproject_list_acctmgr_button">Aggiungi un account manager</string>
-  <string name="attachproject_list_no_internet">Connessione Internet assente</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Inserisci le informazioni account</string>
-  <string name="attachproject_credential_input_desc">Inserisci le account informazioni per i progetti selezionati:</string>
-  <string name="attachproject_credential_input_show_pwd">Visualizza password</string>
-  <string name="attachproject_individual_credential_input">Aggiungi progetti individualmente</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Si sono verificati errori nell\'aggiunta dei seguenti progetti:</string>
-  <string name="attachproject_conflict_undefined">Impossibile connettersi</string>
-  <string name="attachproject_conflict_not_unique">L\'account esiste già con una password differente</string>
-  <string name="attachproject_conflict_bad_password">Password errata</string>
-  <string name="attachproject_conflict_unknown_user">Account inesistente</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Account inesistente, visita il sito web del progetto per registrarlo</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Connessione in corso</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Aiuto</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Come contribuire:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Connetti ad una rete WIFI</string>
-  <string name="attachproject_hint_contribtion_charger">2. Inserisci il Caricabatterie</string>
-  <string name="attachproject_hint_contribtion_screen">3. Spegni lo schermo</string>
-  <string name="attachproject_hint_projectwebsite_header">Visita il sito web del progetto a:</string>
-  <string name="attachproject_hint_projectwebsite_science">Scopri di più sul calcolo scientifico</string>
-  <string name="attachproject_hint_projectwebsite_stats">Vedi le statistiche dei contributi</string>
-  <string name="attachproject_hint_projectwebsite_community">Parla con altri volontari</string>
-  <string name="attachproject_hint_platforms_header">BOINC è anche disponibile per il tuo computer o laptop, visita boinc.berkeley.edu per saperne di più.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Comunicazione con il server progetto in corso…</string>
-  <string name="attachproject_login_image_description">Logo progetto.</string>
-  <string name="attachproject_login_header_general_area">Idea generale:</string>
-  <string name="attachproject_login_header_specific_area">Area specifica:</string>
-  <string name="attachproject_login_header_description">Descrizione:</string>
-  <string name="attachproject_login_header_home">Home:</string>
-  <string name="attachproject_login_header_url">Sito Web:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Questo progetto supporta i dispositivi Android</string>
-  <string name="attachproject_login_platform_not_supported">Questo progetto non supporta i dispositivi Android</string>
-  <string name="attachproject_login_category_terms_of_use">Licenza per</string>
-  <string name="attachproject_login_accept_terms_of_use">Creando un account per questo progetto, accetti i termini della licenza visualizzata sotto.</string>
-  <string name="attachproject_login_category_login">Fai il login con un account esistente</string>
-  <string name="attachproject_login_header_id_email">eMail:</string>
-  <string name="attachproject_login_header_id_name">Nome:</string>
-  <string name="attachproject_login_header_pwd">Password:</string>
-  <string name="attachproject_login_category_creation">Nuovo</string>
-  <string name="attachproject_login_header_creation_enabled">Registra un account per partecipare:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Visita il sito web del progetto per creare un account:</string>
-  <string name="attachproject_login_header_creation_disabled">Il progetto non permette al momento la creazione di nuovi account!</string>
-  <string name="attachproject_login_button_registration">Registra</string>
-  <string name="attachproject_login_button_login">Login</string>
-  <string name="attachproject_login_button_forgotpw">Password dimenticata</string>
-  <string name="attachproject_login_error_toast">Comunicazione col progetto fallita!</string>
-  <string name="attachproject_login_attached">Connesso</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Registrazione account per</string>
-  <string name="attachproject_registration_header_url">Progetto:</string>
-  <string name="attachproject_registration_header_email">eMail:</string>
-  <string name="attachproject_registration_header_username">Nome:</string>
-  <string name="attachproject_registration_header_teamname">Team:</string>
-  <string name="attachproject_registration_header_pwd">Password:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Ripeti:</string>
-  <string name="attachproject_registration_button">Crea</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Usa un account manager BOINC per aggiungere e gestire progetti multipli</string>
-  <string name="attachproject_acctmgr_header">Aggiungi un account manager</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Utente:</string>
-  <string name="attachproject_acctmgr_header_pwd">Password:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Ripeti:</string>
-  <string name="attachproject_acctmgr_button">Aggiungi</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Utente non trovato</string>
-  <string name="attachproject_error_short_pwd">Password troppo corta</string>
-  <string name="attachproject_error_no_internet">Errore connessione</string>
-  <string name="attachproject_error_pwd_no_match">Password non corrispondenti</string>
-  <string name="attachproject_error_pwd_no_retype">Per favore inserisci nuovamente la password</string>
-  <string name="attachproject_error_no_url">Inserire un URL</string>
-  <string name="attachproject_error_no_email">Per favore inserisci un indirizzo eMail</string>
-  <string name="attachproject_error_no_pwd">Per favore inserisci una password</string>
-  <string name="attachproject_error_no_name">Per favore inserisci un nome utente</string>
-  <string name="attachproject_error_unknown">fallito</string>
-  <string name="attachproject_error_bad_username">Nome utente rifiutato</string>
-  <string name="attachproject_error_email_in_use">eMail già utilizzata</string>
-  <string name="attachproject_error_project_down">Progetto offline</string>
-  <string name="attachproject_error_email_bad_syntax">eMail rifiutata</string>
-  <string name="attachproject_error_bad_pwd">Password rifiutata</string>
-  <string name="attachproject_error_creation_disabled">La creazione account è disabilitata su questo progetto</string>
-  <string name="attachproject_error_invalid_url">URL invalido</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Indietro</string>
-  <string name="attachproject_working_finish_button">Fine</string>
-  <string name="attachproject_working_check_desc">Completato</string>
-  <string name="attachproject_working_failed_desc">Fallito</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Connetti</string>
-  <string name="attachproject_working_verify">Verifica account</string>
-  <string name="attachproject_working_register">Registra account</string>
-  <string name="attachproject_working_login">Log in</string>
-  <string name="attachproject_working_acctmgr">Aggiungi un account manager</string>
-  <string name="attachproject_working_acctmgr_sync">Sincronizza</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Premi qui per scegliere un progetto.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">…questo non deve succedere!\nClicca sull\'icona per riprovare.</string>
-  <string name="main_title_icon_desc">icona BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Stato</string>
-  <string name="tab_projects">Progetti</string>
-  <string name="tab_tasks">Elaborazioni</string>
-  <string name="tab_transfers">Trasferimenti</string>
-  <string name="tab_preferences">Preferenze</string>
-  <string name="tab_notices">Avvisi</string>
-  <string name="tab_desc">Navigazione</string>
-  <!--status strings-->
-  <string name="status_running">Elaborazione in corso</string>
-  <string name="status_running_long">Grazie per la partecipazione.</string>
-  <string name="status_paused">Sospeso</string>
-  <string name="status_idle">Nulla da fare</string>
-  <string name="status_idle_long">In attesa di nuovi lavori…</string>
-  <string name="status_computing_disabled">Sospeso</string>
-  <string name="status_computing_disabled_long">Premi play per far ripartire la rete e l\'elaborazione</string>
-  <string name="status_launching">Avvio in corso…</string>
-  <string name="status_noproject">Scegli un progetto per partecipare.</string>
-  <string name="status_closing">Chiusura in corso…</string>
-  <string name="status_benchmarking">Benchmark in corso…</string>
-  <string name="status_image_description">immagine progetto</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Lettura preferenze in corso…</string>
-  <string name="prefs_submit_button">Salva</string>
-  <string name="prefs_dialog_title">Inserisci il nuovo valore:</string>
-  <string name="prefs_dialog_title_selection">Seleziona:</string>
-  <string name="prefs_category_general">Generale</string>
-  <string name="prefs_category_network">Rete</string>
-  <string name="prefs_category_power">Energia</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Memoria fisica</string>
-  <string name="prefs_category_memory">Memoria</string>
-  <string name="prefs_category_debug">Debug</string>
-  <string name="prefs_show_advanced_header">Visualizza preferenze avanzate e controlli…</string>
-  <string name="prefs_suspend_when_screen_on">Interrompi il calcolo quando lo schermo è acceso</string>
-  <string name="prefs_stationary_device_mode_header">Modalità dispositivo stazionario</string>
-  <string name="prefs_stationary_device_mode_description">Permetti il calcolo a prescindere dalle preferenze di elettricità. Abilitalo solo se il dispositivo non ha una batteria.</string>
-  <string name="prefs_power_source_header">Sorgente di elettricità per il calcolo</string>
-  <string name="prefs_power_source_description">Seleziona le sorgenti di elettricità che BOINC può usare per il calcolo.</string>
-  <string name="prefs_power_source_ac">Caricabatterie a muro</string>
-  <string name="prefs_power_source_usb">Connessione USB</string>
-  <string name="prefs_power_source_wireless">Caricabatterie wireless</string>
-  <string name="prefs_power_source_battery">Batteria</string>
-  <string name="battery_charge_min_pct_header">Minimo livello batteria</string>
-  <string name="battery_charge_min_pct_description">BOINC sospende l\'elaborazione sotto il livello definito di carica della batteria.</string>
-  <string name="battery_temperature_max_header">Temperatura massima della batteria</string>
-  <string name="battery_temperature_max_description">BOINC sospende l\'elaborazione sopra al livello definito di temperatura della batteria. Non è raccomandato il cambiamento di questo valore.</string>
-  <string name="prefs_disk_max_pct_header">Massimo spazio di salvataggio</string>
-  <string name="prefs_disk_max_pct_description">Quanta percentuale dello spazio di salvataggio può usare BOINC?</string>
-  <string name="prefs_disk_min_free_gb_header">Minimo spazio su disco</string>
-  <string name="prefs_disk_min_free_gb_description">Quanto dello spazio di salvataggio del tuo dispositivo deve rimanere libero?</string>
-  <string name="prefs_disk_access_interval_header">Intervallo di accesso</string>
-  <string name="prefs_disk_access_interval_description">Suggerisci un intervallo tra le scritture su disco</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Limite trasferimento giornaliero</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limita il traffico giornaliero causato da BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Trasferisce i lavori solo su WiFi</string>
-  <string name="prefs_autostart_header">Avvio automatico</string>
-  <string name="prefs_show_notification_notices_header">Visualizza notifiche per nuove notizie</string>
-  <string name="prefs_show_notification_suspended_header">Visualizza notifiche quando sospeso</string>
-  <string name="prefs_cpu_number_cpus_header">Usa questo numero di core CPU</string>
-  <string name="prefs_cpu_number_cpus_description">Limita il numero di core CPU che BOINC usa per l\'elaborazione.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pausa con utilizzo CPU superiore a</string>
-  <string name="prefs_cpu_other_load_suspension_description">Determina quando BOINC ferma l\'elaborazione a causa dell\'utilizzo CPU di altre applicazioni.</string>
-  <string name="prefs_cpu_time_max_header">limite CPU</string>
-  <string name="prefs_cpu_time_max_description">Limita il tempo CPU che BOINC usa per l\'elaborazione.</string>
-  <string name="prefs_memory_max_idle_header">limite RAM</string>
-  <string name="prefs_memory_max_idle_description">Limita il quantitativo di RAM che BOINC può occupare.</string>
-  <string name="prefs_client_log_flags_header">Flag di log del Client BOINC</string>
-  <string name="prefs_gui_log_level_header">Livello di log della GUI</string>
-  <string name="prefs_gui_log_level_description">Specifica la verbosità dei messaggi di log della GUI.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">secondi</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Lettura progetti…</string>
-  <string name="projects_add">Aggiungi progetto</string>
-  <string name="projects_icon">icona Progetto</string>
-  <string name="projects_credits_header">Crediti:</string>
-  <string name="projects_credits_host_header">(su questo dispositivo)</string>
-  <string name="projects_credits_user_header">(totale)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Sospeso dall\'utente</string>
-  <string name="projects_status_dontrequestmorework">Non chiedere nuovi lavori</string>
-  <string name="projects_status_ended">Progetto terminato - Può essere rimosso</string>
-  <string name="projects_status_detachwhendone">Verrà rimosso quando i lavori sono terminati</string>
-  <string name="projects_status_schedrpcpending">Richiesta allo scheduler in attesa</string>
-  <string name="projects_status_schedrpcinprogress">Richiesta allo scheduler in corso</string>
-  <string name="projects_status_trickleuppending">Messaggi trickle up in attesa</string>
-  <string name="projects_status_backoff">Comunicazione tra:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Comandi progetto:</string>
-  <string name="projects_control_visit_website">Visita il sito web</string>
-  <string name="projects_control_update">Aggiorna</string>
-  <string name="projects_control_remove">Rimuovi</string>
-  <string name="projects_control_suspend">Sospendi</string>
-  <string name="projects_control_resume">Riprendi</string>
-  <string name="projects_control_nonewtasks">Nessun nuovo lavoro</string>
-  <string name="projects_control_allownewtasks">Permetti nuovi lavori</string>
-  <string name="projects_control_reset">Reset</string>
-  <string name="projects_control_dialog_title_acctmgr">Comandi dell\'account manager:</string>
-  <string name="projects_control_sync_acctmgr">Sincronizza</string>
-  <string name="projects_control_remove_acctmgr">Disabilita</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Rimuovere il progetto?</string>
-  <string name="projects_confirm_detach_message">Sei sicuro di voler rimuovere</string>
-  <string name="projects_confirm_detach_message2">da BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Rimuovi</string>
-  <string name="projects_confirm_reset_title">Reset progetto</string>
-  <string name="projects_confirm_reset_message">Sei sicuro di voler resettare</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Reset</string>
-  <string name="projects_confirm_remove_acctmgr_title">Disabilita l\'account manager</string>
-  <string name="projects_confirm_remove_acctmgr_message">Sei sicuro di voler terminare l\'utilizzo</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Disabilita</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Nome Lavoro:</string>
-  <string name="tasks_header_elapsed_time">Tempo trascorso:</string>
-  <string name="tasks_header_project_paused">(sospeso)</string>
-  <string name="tasks_header_deadline">Deadline:</string>
-  <string name="tasks_result_new">nuovo</string>
-  <string name="tasks_result_files_downloading">in attesa del download</string>
-  <string name="tasks_result_files_downloaded">download completato</string>
-  <string name="tasks_result_compute_error">errore elaborazione</string>
-  <string name="tasks_result_files_uploading">upload in corso</string>
-  <string name="tasks_result_files_uploaded">upload completo</string>
-  <string name="tasks_result_aborted">annullato</string>
-  <string name="tasks_result_upload_failed">upload fallito</string>
-  <string name="tasks_active_uninitialized">pronto</string>
-  <string name="tasks_active_executing">elaborazione in corso</string>
-  <string name="tasks_active_suspended">sospeso</string>
-  <string name="tasks_active_abort_pending">in sospensione</string>
-  <string name="tasks_active_quit_pending">in sospensione</string>
-  <string name="tasks_custom_suspended_via_gui">sospeso</string>
-  <string name="tasks_custom_project_suspended_via_gui">progetto sospeso</string>
-  <string name="tasks_custom_ready_to_report">pronto per il report</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Annullare elaborazione?</string>
-  <string name="confirm_abort_task_message">Annulla elaborazione:</string>
-  <string name="confirm_abort_task_confirm">Annulla</string>
-  <string name="confirm_cancel">Cancella</string>
-  <string name="confirm_image_desc">Finestra di conferma</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Lettura trasferimenti…</string>
-  <string name="trans_upload">Upload</string>
-  <string name="trans_download">Download</string>
-  <string name="trans_retryin">riprova tra</string>
-  <string name="trans_failed">fallito</string>
-  <string name="trans_suspended">sospeso</string>
-  <string name="trans_active">attivo</string>
-  <string name="trans_pending">in attesa</string>
-  <string name="trans_projectbackoff">backoff del progetto</string>
-  <string name="trans_header_name">File:</string>
-  <string name="trans_control_retry">Ritenta i trasferimenti</string>
-  <string name="confirm_abort_trans_title">Annullare trasferimento?</string>
-  <string name="confirm_abort_trans_message">Annulla File:</string>
-  <string name="confirm_abort_trans_confirm">Annulla</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Lettura notizie...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Caricamento messaggi di log…</string>
-  <string name="eventlog_client_header">Messaggi del Client</string>
-  <string name="eventlog_gui_header">Messaggi della GUI</string>
-  <string name="eventlog_copy_toast">Log copiato nella clipboard.</string>
-  <string name="eventlog_email_subject">Log eventi per BOINC su Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Elaborazione sospesa.</string>
-  <string name="suspend_batteries">Connetti il tuo dispositivo ad un caricabatterie per continuare l\'eleborazione.</string>
-  <string name="suspend_screen_on">Spegni lo schermo per continuare il calcolo.</string>
-  <string name="suspend_useractive">Utente attivo.</string>
-  <string name="suspend_tod">Fuori tempo massimo di computazione.</string>
-  <string name="suspend_bm">BOINC sta facendo il benchmark del tuo dispositivo…</string>
-  <string name="suspend_disksize">Superato lo spazio disco.</string>
-  <string name="suspend_cputhrottle">CPU throttle schedulato</string>
-  <string name="suspend_noinput">Nessuna attività dell\'utente recente.</string>
-  <string name="suspend_delay">Ritardo di inizializzazione.</string>
-  <string name="suspend_exclusiveapp">Un\'applicazione esclusiva è in corso.</string>
-  <string name="suspend_cpu">Il tuo dispositivo è occupato con altre applicazioni.</string>
-  <string name="suspend_network_quota">BOINC ha raggiunto il limite di trasferimento dalla rete.</string>
-  <string name="suspend_os">Fermato da Android.</string>
-  <string name="suspend_wifi">Non connesso al WiFi</string>
-  <string name="suspend_battery_charging">La batteria necessita di essere ricaricata prima di riprendere l\'elaborazione.</string>
-  <string name="suspend_battery_charging_long">L\'elaborazione riprenderà quando il livello di carica della batteria raggiunge</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">attualmente</string>
-  <string name="suspend_battery_overheating">In attesa che la batteria si raffreddi</string>
-  <string name="suspend_user_req">Ripresa elaborazione…</string>
-  <string name="suspend_network_user_req">manualmente.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Richiesta dall\'utente</string>
-  <string name="rpcreason_needwork">Richiesta lavoro</string>
-  <string name="rpcreason_resultsdue">Invio elaborazioni terminate</string>
-  <string name="rpcreason_trickleup">Invio messaggi di trickle-up</string>
-  <string name="rpcreason_acctmgrreq">Richiesto dal gestore account</string>
-  <string name="rpcreason_init">Inizializzazione progetto</string>
-  <string name="rpcreason_projectreq">Richiesto dal progetto</string>
-  <string name="rpcreason_unknown">Motivo sconosciuto</string>
-  <!--menu-->
-  <string name="menu_refresh">Refresh</string>
-  <string name="menu_emailto">Invia una Email</string>
-  <string name="menu_copy">Copia nella Clipboard</string>
-  <string name="menu_eventlog">Log Eventi</string>
-  <string name="menu_exit">Chiudi BOINC</string>
-  <string name="menu_run_mode_disable">Sospendi</string>
-  <string name="menu_run_mode_enable">Riprendi</string>
-  <string name="menu_about">About</string>
-  <string name="menu_help">Help</string>
-  <!--about dialog-->
-  <string name="about_button">Return</string>
-  <string name="about_title">About</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versione</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">© 2003–2013 University of California, Berkeley.\nTutti i diritti riservati.</string>
-  <string name="about_copyright_reserved">Tutti i Diritti Riservati.</string>
-  <string name="about_credits">Grazie all\'istituto Max Planck per la Fisica Gravitazionale, la IBM Corporation e la HTC Corporation per il loro supporto.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nuova notizia da</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nuovi avvisi</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Applicazione di calcolo distribuito rilevata</string>
-  <string name="nonexcl_dialog_text">Un\'altra applicazione di calcolo distribuito volontario è in uso su questo dispositivo. Solo una versione per volta può essere utilizzata.</string>
-  <string name="nonexcl_dialog_exit">Esci</string>
-  <!--social integration-->
-  <string name="social_invite_button">Invita amici</string>
-  <string name="social_invite_intent_title">Come vuoi condividere?</string>
-  <string name="social_invite_content_title">Sto facendo calcoli scientifici dal mio smartphone!</string>
-  <string name="social_invite_content_body">Sto usando il mio %1$s per fare calcolo scientifico distribuito. Anche tu puoi! Scarica l\'applicazione da: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-ja/strings.xml b/android/BOINC/res/values-ja/strings.xml
deleted file mode 100644
index 878801b..0000000
--- a/android/BOINC/res/values-ja/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">読み込み中! お待ちください…</string>
-  <string name="generic_button_continue">続行</string>
-  <string name="generic_button_finish">完了</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">あなたが貢献したい科学プロジェクトを選択してください: </string>
-  <string name="attachproject_list_header">プロジェクトを選択してください</string>
-  <string name="attachproject_list_manual_button">URLによってプロジェクトを追加</string>
-  <string name="attachproject_list_manual_dialog_title">プロジェクトのURLを入力: </string>
-  <string name="attachproject_list_manual_dialog_button">プロジェクトを追加</string>
-  <string name="attachproject_list_manual_no_url">プロジェクトのURLを入力してください</string>
-  <string name="attachproject_list_acctmgr_button">アカウント・マネージャを追加</string>
-  <string name="attachproject_list_no_internet">インターネット接続なし</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">アカウント情報を入力</string>
-  <string name="attachproject_credential_input_desc">選択したプロジェクトのアカウント情報を入力: </string>
-  <string name="attachproject_credential_input_show_pwd">パスワードを表示</string>
-  <string name="attachproject_individual_credential_input">プロジェクトを個別に追加する</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">科学プロジェクトを追加中に問題が発生しました: </string>
-  <string name="attachproject_conflict_undefined">接続できませんでした</string>
-  <string name="attachproject_conflict_not_unique">異なるパスワードを持つアカウントが存在します</string>
-  <string name="attachproject_conflict_bad_password">パスワードが間違っています</string>
-  <string name="attachproject_conflict_unknown_user">アカウントが存在しません</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">アカウントが存在しません、プロジェクトのウェブサイトを訪問し登録してください</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">追加中</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">ヒント</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">貢献する方法: </string>
-  <string name="attachproject_hint_contribtion_wifi">1. WiFiに接続します</string>
-  <string name="attachproject_hint_contribtion_charger">2. 充電器につなぎます</string>
-  <string name="attachproject_hint_contribtion_screen">3. 画面の電源を切ります</string>
-  <string name="attachproject_hint_projectwebsite_header">プロジェクトのウェブサイトを訪問 : </string>
-  <string name="attachproject_hint_projectwebsite_science">この科学に関する詳細情報</string>
-  <string name="attachproject_hint_projectwebsite_stats">貢献の統計を見る</string>
-  <string name="attachproject_hint_projectwebsite_community">他の参加者と連絡を取る</string>
-  <string name="attachproject_hint_platforms_header">BOINCはあなたのコンピュータまたはノートパソコンでも利用可能です。詳しくは boinc.berkeley.edu を訪問してください。</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">プロジェクトのサーバに問い合わせ中…</string>
-  <string name="attachproject_login_image_description">プロジェクトのロゴ。</string>
-  <string name="attachproject_login_header_general_area">一般的領域: </string>
-  <string name="attachproject_login_header_specific_area">具体的領域: </string>
-  <string name="attachproject_login_header_description">説明: </string>
-  <string name="attachproject_login_header_home">ホーム: </string>
-  <string name="attachproject_login_header_url">ウェブサイト: </string>
-  <string name="attachproject_login_header_platform">Android: </string>
-  <string name="attachproject_login_platform_supported">デバイスのタイプはこのプロジェクトでサポートされています</string>
-  <string name="attachproject_login_platform_not_supported">デバイスはこのプロジェクトでサポートされていません</string>
-  <string name="attachproject_login_category_terms_of_use">下記のもののための利用規約</string>
-  <string name="attachproject_login_accept_terms_of_use">このプロジェクトのアカウントを作成することで、上記のような利用規約に同意します。</string>
-  <string name="attachproject_login_category_login">既存のアカウントでサインイン</string>
-  <string name="attachproject_login_header_id_email">Eメール: </string>
-  <string name="attachproject_login_header_id_name">名前: </string>
-  <string name="attachproject_login_header_pwd">パスワード: </string>
-  <string name="attachproject_login_category_creation">目新しい</string>
-  <string name="attachproject_login_header_creation_enabled">参加するためにアカウントを登録: </string>
-  <string name="attachproject_login_header_creation_client_disabled">アカウント作成のためプロジェクトのウェブサイトを訪問</string>
-  <string name="attachproject_login_header_creation_disabled">現在このプロジェクトは新規アカウントの登録を受け付けていません。</string>
-  <string name="attachproject_login_button_registration">登録</string>
-  <string name="attachproject_login_button_login">サインイン</string>
-  <string name="attachproject_login_button_forgotpw">パスワードを忘れた</string>
-  <string name="attachproject_login_error_toast">プロジェクトへの接触に失敗しました!</string>
-  <string name="attachproject_login_attached">追加済み</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">下記へのアカウント登録</string>
-  <string name="attachproject_registration_header_url">プロジェクト: </string>
-  <string name="attachproject_registration_header_email">Eメール: </string>
-  <string name="attachproject_registration_header_username">名前: </string>
-  <string name="attachproject_registration_header_teamname">チーム: </string>
-  <string name="attachproject_registration_header_pwd">パスワード: </string>
-  <string name="attachproject_registration_header_pwd_confirm">…もう一度入力: </string>
-  <string name="attachproject_registration_button">作成</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">複数のプロジェクトを追加・管理するために BOINC アカウント・マネージャを使用</string>
-  <string name="attachproject_acctmgr_header">アカウント・マネージャを追加</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">ユーザー名: </string>
-  <string name="attachproject_acctmgr_header_pwd">パスワード: </string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">…もう一度入力: </string>
-  <string name="attachproject_acctmgr_button">追加</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">参加者が見つかりません</string>
-  <string name="attachproject_error_short_pwd">パスワードが短すぎます</string>
-  <string name="attachproject_error_no_internet">接続失敗</string>
-  <string name="attachproject_error_pwd_no_match">パスワードが一致しません</string>
-  <string name="attachproject_error_pwd_no_retype">パスワードを再度入力してください</string>
-  <string name="attachproject_error_no_url">URLを入力してください</string>
-  <string name="attachproject_error_no_email">Eメールアドレスを入力してください</string>
-  <string name="attachproject_error_no_pwd">パスワードを入力してください</string>
-  <string name="attachproject_error_no_name">ユーザー名を入力してください</string>
-  <string name="attachproject_error_unknown">失敗</string>
-  <string name="attachproject_error_bad_username">ユーザー名が拒否されました</string>
-  <string name="attachproject_error_email_in_use">Eメールアドレスがすでに使用されています</string>
-  <string name="attachproject_error_project_down">プロジェクトはオフラインです</string>
-  <string name="attachproject_error_email_bad_syntax">Eメールアドレスが拒否されました</string>
-  <string name="attachproject_error_bad_pwd">パスワードが拒否されました</string>
-  <string name="attachproject_error_creation_disabled">このプロジェクトではアカウント作成が無効になっています</string>
-  <string name="attachproject_error_invalid_url">無効なURL</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">戻る</string>
-  <string name="attachproject_working_finish_button">完了</string>
-  <string name="attachproject_working_check_desc">成功</string>
-  <string name="attachproject_working_failed_desc">失敗</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">接続</string>
-  <string name="attachproject_working_verify">アカウントを確認</string>
-  <string name="attachproject_working_register">アカウントを登録</string>
-  <string name="attachproject_working_login">ログイン</string>
-  <string name="attachproject_working_acctmgr">アカウント・マネージャを追加</string>
-  <string name="attachproject_working_acctmgr_sync">同期</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">プロジェクトを選択するにはここをタップしてください。</string>
-  <string name="main_error">おっと</string>
-  <string name="main_error_long">…これは起こるべきではありません! \n 再試行するにはアイコンをクリックしてください。</string>
-  <string name="main_title_icon_desc">BOINCのアイコン</string>
-  <!--tab names-->
-  <string name="tab_status">状態</string>
-  <string name="tab_projects">プロジェクト</string>
-  <string name="tab_tasks">タスク</string>
-  <string name="tab_transfers">ファイル転送</string>
-  <string name="tab_preferences">プレファレンス(好みの設定)</string>
-  <string name="tab_notices">お知らせ</string>
-  <string name="tab_desc">誘導</string>
-  <!--status strings-->
-  <string name="status_running">計算</string>
-  <string name="status_running_long">ご参加ありがとうございます。</string>
-  <string name="status_paused">一時停止中</string>
-  <string name="status_idle">することがありません</string>
-  <string name="status_idle_long">タスクを待機中…</string>
-  <string name="status_computing_disabled">一時停止中</string>
-  <string name="status_computing_disabled_long">ネットワーク接続と計算を再開するには[play]を押してください。</string>
-  <string name="status_launching">起動中…</string>
-  <string name="status_noproject">参加するプロジェクトを選んでください。</string>
-  <string name="status_closing">終了中…</string>
-  <string name="status_benchmarking">ベンチマーク中…</string>
-  <string name="status_image_description">プロジェクトの画像</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">プレファレンスを読み込み中…</string>
-  <string name="prefs_submit_button">保存</string>
-  <string name="prefs_dialog_title">新しい値を入力: </string>
-  <string name="prefs_dialog_title_selection">選択 : </string>
-  <string name="prefs_category_general">一般</string>
-  <string name="prefs_category_network">ネットワーク</string>
-  <string name="prefs_category_power">電源</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">ストレージ</string>
-  <string name="prefs_category_memory">メモリ</string>
-  <string name="prefs_category_debug">デバッグ</string>
-  <string name="prefs_show_advanced_header">詳細なプレファレンスとコントロールを表示…</string>
-  <string name="prefs_suspend_when_screen_on">画面の電源が入っている時は計算を一時停止</string>
-  <string name="prefs_stationary_device_mode_header">固定デバイスモード</string>
-  <string name="prefs_stationary_device_mode_description">電源に関するプレファレンスに関係なく計算を許可します。端末にバッテリーが搭載されていない場合のみ有効です。</string>
-  <string name="prefs_power_source_header">計算のための電源供給源</string>
-  <string name="prefs_power_source_description">BOINC が計算を許可される電源供給源を選択してください。</string>
-  <string name="prefs_power_source_ac">コンセント</string>
-  <string name="prefs_power_source_usb">USB接続</string>
-  <string name="prefs_power_source_wireless">ワイヤレス充電器</string>
-  <string name="prefs_power_source_battery">バッテリー</string>
-  <string name="battery_charge_min_pct_header">最少バッテリー残量</string>
-  <string name="battery_charge_min_pct_description">BOINCは定められたバッテリー充電レベルを下回ると計算を一時停止します。</string>
-  <string name="battery_temperature_max_header">最高バッテリー温度</string>
-  <string name="battery_temperature_max_description">BOINCは定められたバッテリー温度を上回ると計算を一時停止します。この値を変更することは推奨されません。</string>
-  <string name="prefs_disk_max_pct_header">ストレージの最大使用量</string>
-  <string name="prefs_disk_max_pct_description">BOINCがデバイスのストレージ領域の何パーセント使用することを許可されていますか?</string>
-  <string name="prefs_disk_min_free_gb_header">最小予備記憶領域</string>
-  <string name="prefs_disk_min_free_gb_description">端末の記憶領域をどれくらい空けておきますか?</string>
-  <string name="prefs_disk_access_interval_header">アクセス間隔</string>
-  <string name="prefs_disk_access_interval_description">記憶領域への読み書き間隔</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">一日あたりの転送容量制限</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">BOINCに起因する一日あたりのデータトラフィックを制限します。</string>
-  <string name="prefs_network_wifi_only_header">WiFiでのみタスクを転送する</string>
-  <string name="prefs_autostart_header">自動起動</string>
-  <string name="prefs_show_notification_notices_header">新しいお知らせがあった場合通知を表示</string>
-  <string name="prefs_show_notification_suspended_header">一時停止中に通知を表示</string>
-  <string name="prefs_cpu_number_cpus_header">使用されるCPUコア数</string>
-  <string name="prefs_cpu_number_cpus_description">BOINCが計算のために使用するCPUコア数を制限します。</string>
-  <string name="prefs_cpu_other_load_suspension_header">超過により休止するCPU使用率</string>
-  <string name="prefs_cpu_other_load_suspension_description">他のアプリのCPU利用率が原因でBOINCが計算を休止する時を判断します。</string>
-  <string name="prefs_cpu_time_max_header">CPUの制限</string>
-  <string name="prefs_cpu_time_max_description">BOINCが計算のために使用するCPU時間を制限します。</string>
-  <string name="prefs_memory_max_idle_header">RAMの制限</string>
-  <string name="prefs_memory_max_idle_description">タスクが専有できるRAMの総計のを制限します。</string>
-  <string name="prefs_client_log_flags_header">BOINCクライアントログのフラグ</string>
-  <string name="prefs_gui_log_level_header">GUIログのレベル</string>
-  <string name="prefs_gui_log_level_description">GUIログメッセージの詳細度を指定します。</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">℃</string>
-  <string name="prefs_unit_seconds">秒</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">プロジェクトを読み込み中…</string>
-  <string name="projects_add">プロジェクトを追加</string>
-  <string name="projects_icon">プロジェクトのアイコン</string>
-  <string name="projects_credits_header">功績値: </string>
-  <string name="projects_credits_host_header">(このデバイスで)</string>
-  <string name="projects_credits_user_header">(合計)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">参加者の指示により一時停止中</string>
-  <string name="projects_status_dontrequestmorework">新しいタスクを取得しない</string>
-  <string name="projects_status_ended">プロジェクトは終了しました - 削除するにはOKを押します</string>
-  <string name="projects_status_detachwhendone">タスクが完了した時に削除されます</string>
-  <string name="projects_status_schedrpcpending">スケジューラへの要求を保留</string>
-  <string name="projects_status_schedrpcinprogress">スケジューラへ要求中</string>
-  <string name="projects_status_trickleuppending">トリクルアップメッセージの送信保留あり</string>
-  <string name="projects_status_backoff">通信は次の時間内に予定: </string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">プロジェクトに関する操作: </string>
-  <string name="projects_control_visit_website">ウェブサイトを訪問</string>
-  <string name="projects_control_update">更新</string>
-  <string name="projects_control_remove">削除</string>
-  <string name="projects_control_suspend">一時停止</string>
-  <string name="projects_control_resume">再開</string>
-  <string name="projects_control_nonewtasks">新規タスクを取得しない</string>
-  <string name="projects_control_allownewtasks">新規タスクを許可</string>
-  <string name="projects_control_reset">リセット</string>
-  <string name="projects_control_dialog_title_acctmgr">アカウント・マネージャのコマンド : </string>
-  <string name="projects_control_sync_acctmgr">同期</string>
-  <string name="projects_control_remove_acctmgr">無効</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">プロジェクトを削除しますか?</string>
-  <string name="projects_confirm_detach_message">本当に削除しますか</string>
-  <string name="projects_confirm_detach_message2">BOINCから?</string>
-  <string name="projects_confirm_detach_confirm">削除</string>
-  <string name="projects_confirm_reset_title">プロジェクトをリセット</string>
-  <string name="projects_confirm_reset_message">本当にリセットしますか</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">リセット</string>
-  <string name="projects_confirm_remove_acctmgr_title">アカウント・マネージャを無効にする</string>
-  <string name="projects_confirm_remove_acctmgr_message">本当に使用を停止しますか</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">無効</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">タスク名: </string>
-  <string name="tasks_header_elapsed_time">経過時間: </string>
-  <string name="tasks_header_project_paused">(一時停止中)</string>
-  <string name="tasks_header_deadline">報告期限 : </string>
-  <string name="tasks_result_new">新規</string>
-  <string name="tasks_result_files_downloading">ダウンロード待機中</string>
-  <string name="tasks_result_files_downloaded">ダウンロード完了</string>
-  <string name="tasks_result_compute_error">計算エラー</string>
-  <string name="tasks_result_files_uploading">アップロード中</string>
-  <string name="tasks_result_files_uploaded">アップロード完了</string>
-  <string name="tasks_result_aborted">中止</string>
-  <string name="tasks_result_upload_failed">アップロード失敗</string>
-  <string name="tasks_active_uninitialized">準備完了</string>
-  <string name="tasks_active_executing">実行中</string>
-  <string name="tasks_active_suspended">一時停止中</string>
-  <string name="tasks_active_abort_pending">一時停止しています</string>
-  <string name="tasks_active_quit_pending">一時停止しています</string>
-  <string name="tasks_custom_suspended_via_gui">一時停止中</string>
-  <string name="tasks_custom_project_suspended_via_gui">プロジェクトは一時停止中</string>
-  <string name="tasks_custom_ready_to_report">報告準備完了</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">タスクを中止しますか?</string>
-  <string name="confirm_abort_task_message">タスクを中止: </string>
-  <string name="confirm_abort_task_confirm">中止</string>
-  <string name="confirm_cancel">キャンセル</string>
-  <string name="confirm_image_desc">確認ダイアログ</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">転送を読み込み中…</string>
-  <string name="trans_upload">アップロード</string>
-  <string name="trans_download">ダウンロード</string>
-  <string name="trans_retryin">次の時間内に再試行</string>
-  <string name="trans_failed">失敗</string>
-  <string name="trans_suspended">一時停止中</string>
-  <string name="trans_active">アクティブ</string>
-  <string name="trans_pending">保留中</string>
-  <string name="trans_projectbackoff"> プロジェクトとの通信待機 </string>
-  <string name="trans_header_name">ファイル名: </string>
-  <string name="trans_control_retry">転送を再試行</string>
-  <string name="confirm_abort_trans_title">転送を中止しますか?</string>
-  <string name="confirm_abort_trans_message">ファイルを中止: </string>
-  <string name="confirm_abort_trans_confirm">中止</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">お知らせを読み込み中…</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">ログ・メッセージを読み込み中…</string>
-  <string name="eventlog_client_header">クライアントのメッセージ</string>
-  <string name="eventlog_gui_header">GUIメッセージ</string>
-  <string name="eventlog_copy_toast">ログをクリップボードにコピーしました。</string>
-  <string name="eventlog_email_subject">Android上のBOINCに関するイベント・ログ : </string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">計算処理は一時停止中。</string>
-  <string name="suspend_batteries">計算を続行するにはデバイスを充電器に接続してください。</string>
-  <string name="suspend_screen_on">計算を続行するには画面の電源を切ってください。</string>
-  <string name="suspend_useractive">ユーザーはアクティブです。</string>
-  <string name="suspend_tod">計算時間枠の不足。</string>
-  <string name="suspend_bm">BOINCはデバイスをベンチマークしています…</string>
-  <string name="suspend_disksize">ディスク領域の不足。</string>
-  <string name="suspend_cputhrottle">計画されたCPUスロットル。</string>
-  <string name="suspend_noinput">最近のユーザのアクティビティはありません。</string>
-  <string name="suspend_delay">初期化延期。</string>
-  <string name="suspend_exclusiveapp">排他的なアプリを実行中です。</string>
-  <string name="suspend_cpu">デバイスが他のアプリによって使用中です。</string>
-  <string name="suspend_network_quota">BOINCはネットワークの転送制限に達しました。</string>
-  <string name="suspend_os">Androidによって停止されました。</string>
-  <string name="suspend_wifi">WiFiに接続されていません。</string>
-  <string name="suspend_battery_charging">バッテリーへの充電を待機中。</string>
-  <string name="suspend_battery_charging_long">バッテリーの充電量が設定に達した時計算が再開されます</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">現在</string>
-  <string name="suspend_battery_overheating">バッテリーが冷めるのを待機中</string>
-  <string name="suspend_user_req">計算を再開しています…</string>
-  <string name="suspend_network_user_req">手動で。</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">ユーザーの指示による</string>
-  <string name="rpcreason_needwork">仕事を取りに行く</string>
-  <string name="rpcreason_resultsdue">完了したタスクを報告する</string>
-  <string name="rpcreason_trickleup">トリクルアップメッセージを送信する</string>
-  <string name="rpcreason_acctmgrreq">アカウント・マネージャの指示による</string>
-  <string name="rpcreason_init">プロジェクトの初期化</string>
-  <string name="rpcreason_projectreq">プロジェクトの指示による</string>
-  <string name="rpcreason_unknown">不明な原因</string>
-  <!--menu-->
-  <string name="menu_refresh">更新</string>
-  <string name="menu_emailto">Eメールとして送信</string>
-  <string name="menu_copy">クリップボードにコピー</string>
-  <string name="menu_eventlog">イベント・ログ</string>
-  <string name="menu_exit">BOINCを終了</string>
-  <string name="menu_run_mode_disable">一時停止</string>
-  <string name="menu_run_mode_enable">再開</string>
-  <string name="menu_about">バージョン情報</string>
-  <string name="menu_help">ヘルプ</string>
-  <!--about dialog-->
-  <string name="about_button">戻る</string>
-  <string name="about_title">バージョン情報</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">バージョン</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">(C) 2003–2014 University of California, Berkeley.</string>
-  <string name="about_copyright_reserved">All Rights Reserved.</string>
-  <string name="about_credits">The Max Planck Institute for Gravitational Physics, IBM Corporation, HTC Corporation と彼らの支援に感謝いたします。</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">以下からの新しいお知らせ</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">新しいお知らせ</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">ボランティア・コンピューティング・アプリを検出しました</string>
-  <string name="nonexcl_dialog_text">このデバイスで別のボランティア・コンピューティング・アプリが動作しています。一度にひとつのバージョンのみ動作可能です。</string>
-  <string name="nonexcl_dialog_exit">終了</string>
-  <!--social integration-->
-  <string name="social_invite_button">友達を招待する</string>
-  <string name="social_invite_intent_title">どのように共有したいですか?</string>
-  <string name="social_invite_content_title">私はスマートフォンで科学研究を行っています!</string>
-  <string name="social_invite_content_body">私は自分の %1$s を科学のための計算に使っています。あなたも出来ますよ!ここからアプリをダウンロードしてください: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-ka/strings.xml b/android/BOINC/res/values-ka/strings.xml
deleted file mode 100644
index 05d14c8..0000000
--- a/android/BOINC/res/values-ka/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">მიმდინარეობს ჩატვირთვა! გთხოვთ, დაელოდოთ...</string>
-  <string name="generic_button_continue">გაგრძელება</string>
-  <string name="generic_button_finish">დასრულება</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">აირჩიეთ მეცნიერული პროექტები, რომელშიც გსურთ ღვაწლის შეტანა:</string>
-  <string name="attachproject_list_header">აირჩიეთ პროექტი</string>
-  <string name="attachproject_list_manual_button">პროექტის დამატება URL-ის მეშვეობით</string>
-  <string name="attachproject_list_manual_dialog_title">შეიყვანეთ პროექტის URL-ი:</string>
-  <string name="attachproject_list_manual_dialog_button">პროექტის დამატება</string>
-  <string name="attachproject_list_manual_no_url">გთხოვთ, შეიყვანოთ პროექტის URL-ი</string>
-  <string name="attachproject_list_acctmgr_button">ანგარიშის მმართველის დამატება</string>
-  <string name="attachproject_list_no_internet">არ არის ინტერნეტ კავშირი</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">შეიყვანეთ ანგარიშის ინფორმაცია</string>
-  <string name="attachproject_credential_input_desc">შეიყვანეთ ანგარიშის ინფორმაცია შემდეგი პროექტებისთვის:</string>
-  <string name="attachproject_credential_input_show_pwd">პაროლის ჩვენება</string>
-  <string name="attachproject_individual_credential_input">პროექტების მიბმა ინდივიდუალურად</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">მოხდა შეცდომა მეცნიერული პროექტების მიბმისას:</string>
-  <string name="attachproject_conflict_undefined">ვერ მოხერხდა შეერთება</string>
-  <string name="attachproject_conflict_not_unique">ანგარიში არსებობს განსხვავებული პაროლით</string>
-  <string name="attachproject_conflict_bad_password">პაროლი არასწორია</string>
-  <string name="attachproject_conflict_unknown_user">ანგარიში არ არსებობს</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">ანგარიში არ არსებობს, ეწვიეთ პროექტის ვებ-გვერდს დასარეგისტრირებლად</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">მიმდინარეობს მიბმა</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">მინიშნება</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">როგორ შეიტანოთ ღვაწლი:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. შეუერთდით WiFi-ს</string>
-  <string name="attachproject_hint_contribtion_charger">2. შეაერთეთ დამტენი</string>
-  <string name="attachproject_hint_contribtion_screen">3. გამორთეთ ეკრანი</string>
-  <string name="attachproject_hint_projectwebsite_header">შედით პროექტის ვებ-გვერდებზე შემდეგისთვის:</string>
-  <string name="attachproject_hint_projectwebsite_science">გაიგოთ მეტი მეცნიერებაზე</string>
-  <string name="attachproject_hint_projectwebsite_stats">ნახოთ ღვაწლის შეტანის სტატისტიკა</string>
-  <string name="attachproject_hint_projectwebsite_community">დაუკავშირდეთ სხვა მოხალისეებს</string>
-  <string name="attachproject_hint_platforms_header">BOINC ასევე არის მისაწვდომი თქვენი კომპიუტერისთვის ან ლეპტოპისთვის, ეწვიეთ boinc.berkeley.edu მეტის გასაგებად.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">მიმდინარეობს დაკავშირება პროექტის სერვერთან...</string>
-  <string name="attachproject_login_image_description">პროექტის ლოგოტიპი.</string>
-  <string name="attachproject_login_header_general_area">ზოგადი სფერო:</string>
-  <string name="attachproject_login_header_specific_area">კერძო სფერო:</string>
-  <string name="attachproject_login_header_description">აღწერა:</string>
-  <string name="attachproject_login_header_home">სახლი:</string>
-  <string name="attachproject_login_header_url">ვებ-გვერდი:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">ამ პროექტს აქვს მოწყობილობის ტიპის მხარდაჭერა</string>
-  <string name="attachproject_login_platform_not_supported">ამ პროექტს არ აქვს მოწობილობის მხარდაჭერა</string>
-  <string name="attachproject_login_category_terms_of_use">შემდეგის გამოყენების პირობები</string>
-  <string name="attachproject_login_accept_terms_of_use">ამ პროექტში ანგარიშის შექმნით, თქვენ ეთანხმებით გამოყენების პირობებს, როგორც ნაჩვენებია ზემოთ.</string>
-  <string name="attachproject_login_category_login">შესვლა არსებული ანგარიშით</string>
-  <string name="attachproject_login_header_id_email">ელ.ფოსტა:</string>
-  <string name="attachproject_login_header_id_name">სახელი:</string>
-  <string name="attachproject_login_header_pwd">პაროლი:</string>
-  <string name="attachproject_login_category_creation">ახალი</string>
-  <string name="attachproject_login_header_creation_enabled">დაარეგისტრირეთ ანგარიში მონაწილეობის მისაღებად:</string>
-  <string name="attachproject_login_header_creation_client_disabled">ეწვიეთ პროექტის ვებ-გვერდს ანგარიშის შესაქმენალდ:</string>
-  <string name="attachproject_login_header_creation_disabled">ეს პროექტი ამჟამად არ იღებს ახალ ანგარიშებს.</string>
-  <string name="attachproject_login_button_registration">დარეგისტრირება</string>
-  <string name="attachproject_login_button_login">შესვლა</string>
-  <string name="attachproject_login_button_forgotpw">დაგავიწყდათ პაროლი?</string>
-  <string name="attachproject_login_error_toast">პროექტთან დაკავშირება ვერ მოხერხდა!</string>
-  <string name="attachproject_login_attached">მიბმული</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">შემდეგისთვის ანგარიშის დარეგისტრირება:</string>
-  <string name="attachproject_registration_header_url">პროექტი:</string>
-  <string name="attachproject_registration_header_email">ელ.ფოსტა:</string>
-  <string name="attachproject_registration_header_username">სახელი:</string>
-  <string name="attachproject_registration_header_teamname">გუნდი:</string>
-  <string name="attachproject_registration_header_pwd">პაროლი:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... თავიდან:</string>
-  <string name="attachproject_registration_button">შექმნა</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">გამოიყენეთ BOINC ანგარიშის მმართველი მრავალი პროექტის დასამატებლად და სამართველად</string>
-  <string name="attachproject_acctmgr_header">ანგარიშის მმართველის დამატება</string>
-  <string name="attachproject_acctmgr_header_url">URL-ი</string>
-  <string name="attachproject_acctmgr_header_name">მომხმარებელი:</string>
-  <string name="attachproject_acctmgr_header_pwd">აროლი:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... თავიდან:</string>
-  <string name="attachproject_acctmgr_button">დამატება</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">მომხმარებელი ვერ მოიძებნა</string>
-  <string name="attachproject_error_short_pwd">პაროლი ნამეტანი მოკლეა</string>
-  <string name="attachproject_error_no_internet">შეერთების შეცდომა</string>
-  <string name="attachproject_error_pwd_no_match">პაროლები არ დაემთხვა</string>
-  <string name="attachproject_error_pwd_no_retype">გთხოვთ, თავიდან შეიყვანოთ პაროლი</string>
-  <string name="attachproject_error_no_url">გთხოვთ, შეიყვანოთ URL-ი</string>
-  <string name="attachproject_error_no_email">გთხოვ, შეიყვანოთ ელ.ფოსტის მისამართი</string>
-  <string name="attachproject_error_no_pwd">გთხოვთ, შეიყვანოთ პაროლი</string>
-  <string name="attachproject_error_no_name">გთხოვთ, შეიყვანოთ მომხმარებლის სახელი</string>
-  <string name="attachproject_error_unknown">ვერ მოხერხდა</string>
-  <string name="attachproject_error_bad_username">მომხმარებლის სახელი იქნა უარყოფილი</string>
-  <string name="attachproject_error_email_in_use">ელ.ფოსტა უკვე გამოიყენება</string>
-  <string name="attachproject_error_project_down">პროექტი არ არის ქსელში</string>
-  <string name="attachproject_error_email_bad_syntax">ელ.ფოსტა იქნა უარყოფილი</string>
-  <string name="attachproject_error_bad_pwd">პაროლი იქნა უარყოფილი</string>
-  <string name="attachproject_error_creation_disabled">ანგარიშის შექნა გათიშულია ამ პროექტზე</string>
-  <string name="attachproject_error_invalid_url">არასწორი URL-ი</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">უკან</string>
-  <string name="attachproject_working_finish_button">დასრულებასრულება</string>
-  <string name="attachproject_working_check_desc">წარმატებული</string>
-  <string name="attachproject_working_failed_desc">ვერ მოხერხდა</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">დაკავშირება</string>
-  <string name="attachproject_working_verify">ანგარიშის შემოწმება</string>
-  <string name="attachproject_working_register">ანგარიშის დარეგისტრირება</string>
-  <string name="attachproject_working_login">შესვლა</string>
-  <string name="attachproject_working_acctmgr">ანგარიშის მმართველის დამატება</string>
-  <string name="attachproject_working_acctmgr_sync">სინქრონიზირება</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">დააჭირეთ აქ პროექტის ასარჩევად.</string>
-  <string name="main_error">უფს</string>
-  <string name="main_error_long">...ეს არ უნდა მოხდეს!\nდააჭირეთ იარლიყს თავიდან საცდელად.</string>
-  <string name="main_title_icon_desc">BOINC-ის იარლიყი</string>
-  <!--tab names-->
-  <string name="tab_status">სტატუსი</string>
-  <string name="tab_projects">პროექტები</string>
-  <string name="tab_tasks">დავალებები</string>
-  <string name="tab_transfers">გზავნილები</string>
-  <string name="tab_preferences">პარამეტრები</string>
-  <string name="tab_notices">შეტყობინებები</string>
-  <string name="tab_desc">ნავიგაცია</string>
-  <!--status strings-->
-  <string name="status_running">მიმდინარეობს გამოთვლა</string>
-  <string name="status_running_long">გიხდის მადლობას მონაწილების მიღებისათვის.</string>
-  <string name="status_paused">შეჩერებულია</string>
-  <string name="status_idle">გასაკეთებელი არაფერია</string>
-  <string name="status_idle_long">დავალებების ლოდინში...</string>
-  <string name="status_computing_disabled">შეჩერებულია</string>
-  <string name="status_computing_disabled_long">გთხოვთ, დააჭიროთ \"დაკვრას\" ქსელის და გამოთვლის გასაგრძელებლად.</string>
-  <string name="status_launching">მიმდინარეობს დაწყება...</string>
-  <string name="status_noproject">აირჩიეთ პროექტი მონაწილეობის მისაღებად.</string>
-  <string name="status_closing">მიმდინარეობს დახურვა...</string>
-  <string name="status_benchmarking">მიმდინარეობს წარმადობის შემოწმება...</string>
-  <string name="status_image_description">პროექტის სურათი</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">მიმდინარეობს პარამეტრების წაკითხვა...</string>
-  <string name="prefs_submit_button">შენახვა</string>
-  <string name="prefs_dialog_title">შეიყვანეთ ახალი მნიშვნელობა:</string>
-  <string name="prefs_dialog_title_selection">აირჩიეთ:</string>
-  <string name="prefs_category_general">ზოგადი</string>
-  <string name="prefs_category_network">ქსელი</string>
-  <string name="prefs_category_power">ძაბვა</string>
-  <string name="prefs_category_cpu">ცპ</string>
-  <string name="prefs_category_storage">მეხსიერება</string>
-  <string name="prefs_category_memory">ოპერატიული მეხსიერება</string>
-  <string name="prefs_category_debug">დებაგი</string>
-  <string name="prefs_show_advanced_header">დამატებითი პარამეტრების და კონტროლების ჩვენება...</string>
-  <string name="prefs_suspend_when_screen_on">გამოთვლის შეჩერება, როდესაც ეკრანი ჩართული</string>
-  <string name="prefs_stationary_device_mode_header">მოწყობილობის სტაციონარული რეჟიმი</string>
-  <string name="prefs_stationary_device_mode_description">გამოთვლის ნებართვა ძაბვის პარამეტრების მიუხედავად. ჩართეთ მხოლოდ მაშინ, თუ მოწყობილობას არ აქვს ბატარეა.</string>
-  <string name="prefs_power_source_header">ძაბვის წყაროები გამოთვლისთვის</string>
-  <string name="prefs_power_source_description">აირჩიეთ ძაბვის წყაროები, რომლების გამოყენების უფლება აქვს BOINC-ს გამოთვლებისთვის.</string>
-  <string name="prefs_power_source_ac">შტეფსელი</string>
-  <string name="prefs_power_source_usb">USB კავშირი</string>
-  <string name="prefs_power_source_wireless">უსადენო დამტენი</string>
-  <string name="prefs_power_source_battery">ბატარეა</string>
-  <string name="battery_charge_min_pct_header">მინ. ბატარეის დონე</string>
-  <string name="battery_charge_min_pct_description">BOINC-ი აჩერებს გამოთვლა მითითებული ბატარეის მუხტის დონის ქვემოთ.</string>
-  <string name="battery_temperature_max_header">მაქს. ბატარეის ტემპერატურა</string>
-  <string name="battery_temperature_max_description">BOINC-ი აჩერებს გამოთვლა მითითებული ბატარეის ტემპერატურის ზემოთ. არ არის რეკომენდებული ამ მნიშვნელობის შეცვლა..</string>
-  <string name="prefs_disk_max_pct_header">მაქს. გამოყენებული მეხსიერების ადგილი</string>
-  <string name="prefs_disk_max_pct_description">თქვენი მოწყობილობის მეხსიერების ადგილის რამდენი პროცენტის გამოყენების უფლება აქვს BOINC-ს?</string>
-  <string name="prefs_disk_min_free_gb_header">მინ. თავისუფალი მეხსიერება</string>
-  <string name="prefs_disk_min_free_gb_description">თქვენი მოწყობილობის მეხსიერების რამდენი ადგილი უნდა დარჩეს ცარელად?</string>
-  <string name="prefs_disk_access_interval_header">წვდომის ინტერვალი</string>
-  <string name="prefs_disk_access_interval_description">აყენებს დისკზე წვდომის ინტერვალს</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">დღიური გზავნის შეზღუდვა</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">ზღუდავს დღიურ მონაცემთა გზავნილებს, რომელიც გამოწვეულია BOINC-ის მიერ</string>
-  <string name="prefs_network_wifi_only_header">დავალებების გაგზავნა მხოლოდ WiFi-თ</string>
-  <string name="prefs_autostart_header">ავტოგაშვება</string>
-  <string name="prefs_show_notification_notices_header">შეტყობინების ჩვენება ახალ შეტყობინებებზე</string>
-  <string name="prefs_show_notification_suspended_header">შეტყობინებების ჩვენება, როდესაც შეჩერებულია</string>
-  <string name="prefs_cpu_number_cpus_header">გამოყენებული ცპ-ს ბირთვები</string>
-  <string name="prefs_cpu_number_cpus_description">ზღუდავს გამოთვლებისთვის BOINC-ის მიერ გამოყენებული ცპ-ს ბირთვების რაოდენობას</string>
-  <string name="prefs_cpu_other_load_suspension_header">შეჩერება, როდესაც ცპ-ს გამოყენება აღემატება</string>
-  <string name="prefs_cpu_other_load_suspension_description">წყვეთს, თუ როდის შეაჩეროს გამოთვლები BOINC-მა სხვა აპლიკაციების ცპ-ს გამოყენების მიხედვით</string>
-  <string name="prefs_cpu_time_max_header">ცპ-ს შეზღუდვა</string>
-  <string name="prefs_cpu_time_max_description">ზღუდავს ცპ-ს დროს, რომელსაც იყენებს BOINC-ი გამოთვლებისთვის</string>
-  <string name="prefs_memory_max_idle_header">ოპერატიული მეხსიერების შეზღუდვა</string>
-  <string name="prefs_memory_max_idle_description">ზღუდავს ოპერატიული მეხსიერების რაოდენობას, რომლის გამოყენების უფლება აქვს BOINC-ს</string>
-  <string name="prefs_client_log_flags_header">BOINC-ის კლიენტის ლოგის დროშები</string>
-  <string name="prefs_gui_log_level_header">გმი-ს ლოგის დონე</string>
-  <string name="prefs_gui_log_level_description">აყენებს გმი-ს ლოგის შეტყობინებების ინფორმატიულობას</string>
-  <string name="prefs_unit_mb">მბ</string>
-  <string name="prefs_unit_gb">გბ</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">წმ</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">მიმდინარეობს პროექტების წაკითხვა...</string>
-  <string name="projects_add">პროექტის დამატება</string>
-  <string name="projects_icon">პროექტის იარლიყი</string>
-  <string name="projects_credits_header">კრედიტი:</string>
-  <string name="projects_credits_host_header">(ამ მოწყობილობაზე)</string>
-  <string name="projects_credits_user_header">(სულ)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">შეჩერებულია მომხმარებლის მიერ</string>
-  <string name="projects_status_dontrequestmorework">არ მიღიებს ახალ დავალებებს</string>
-  <string name="projects_status_ended">პროექტი დასრულდა - ოკ წასაშლელად</string>
-  <string name="projects_status_detachwhendone">წაიშლება დავალებების დამთავრებისას</string>
-  <string name="projects_status_schedrpcpending">განრიგის მოთხოვა ლოდინშია</string>
-  <string name="projects_status_schedrpcinprogress">მიმდინარეობს განრიგის მოთხოვნა</string>
-  <string name="projects_status_trickleuppending">გაწობის შეტყობინება მოლოდინშია</string>
-  <string name="projects_status_backoff">კავშირია დაგეგმილია:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">პროექტის ბრძანებები:</string>
-  <string name="projects_control_visit_website">ვებ-გვერდზე გადასვლა</string>
-  <string name="projects_control_update">განახლება</string>
-  <string name="projects_control_remove">წაშლა</string>
-  <string name="projects_control_suspend">შეჩერება</string>
-  <string name="projects_control_resume">გაგრძელება</string>
-  <string name="projects_control_nonewtasks">უარი ახალ დავალებებზე</string>
-  <string name="projects_control_allownewtasks">ახალი დავალებების დაშვება</string>
-  <string name="projects_control_reset">ჩამოგდება</string>
-  <string name="projects_control_dialog_title_acctmgr">ანგარიშის მმართველის ბრძანებები:</string>
-  <string name="projects_control_sync_acctmgr">სინქრონიზირება</string>
-  <string name="projects_control_remove_acctmgr">გათიშვა</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">გსურთ პროექტის წაშლა?</string>
-  <string name="projects_confirm_detach_message">დარწმუნებული ხართ, რომ გსურთ წაშალოთ</string>
-  <string name="projects_confirm_detach_message2">BOINC-იდან?</string>
-  <string name="projects_confirm_detach_confirm">წაშლა</string>
-  <string name="projects_confirm_reset_title">პროექტის ჩამოგდება</string>
-  <string name="projects_confirm_reset_message">დარწმუნებული ხართ, რომ გსურთ ჩამოაგდოთ</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">ჩამოგდება</string>
-  <string name="projects_confirm_remove_acctmgr_title">ანგარიშის მმართველის გათიშვა</string>
-  <string name="projects_confirm_remove_acctmgr_message">დარწმუნებული ხართ, რომ გსურთ აღარ გამოიყენოთ</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">გათიშვა</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">დავალების სახელი:</string>
-  <string name="tasks_header_elapsed_time">გასული დრო:</string>
-  <string name="tasks_header_project_paused">(შეჩერებულია)</string>
-  <string name="tasks_header_deadline">ვადა:</string>
-  <string name="tasks_result_new">ახალი</string>
-  <string name="tasks_result_files_downloading">გადმოტვირთვის მოლოდინში</string>
-  <string name="tasks_result_files_downloaded">გატმოტვირთვა დასრულებულია</string>
-  <string name="tasks_result_compute_error">გამოთვლის შეცდომა</string>
-  <string name="tasks_result_files_uploading">მიმდინარეობს ატვირთვა</string>
-  <string name="tasks_result_files_uploaded">ატვირთვა დასრულებულია</string>
-  <string name="tasks_result_aborted">შეწყვეტილია</string>
-  <string name="tasks_result_upload_failed">ატვირთვა ვერ მოხერხდა</string>
-  <string name="tasks_active_uninitialized">არის მზად</string>
-  <string name="tasks_active_executing">გაშვებულია</string>
-  <string name="tasks_active_suspended">შეჩერებულია</string>
-  <string name="tasks_active_abort_pending">მიმდინარეობს შეჩერება</string>
-  <string name="tasks_active_quit_pending">მიმდინარეობს შეჩერება</string>
-  <string name="tasks_custom_suspended_via_gui">შეჩერებულია</string>
-  <string name="tasks_custom_project_suspended_via_gui">პროექტი შეჩერებულია</string>
-  <string name="tasks_custom_ready_to_report">მზად არის გასაგზავნად</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">გსურთ დავალების შეწყვეტა?</string>
-  <string name="confirm_abort_task_message">დავალების შეწყვეტა:</string>
-  <string name="confirm_abort_task_confirm">შეწყვეტა</string>
-  <string name="confirm_cancel">გაუქმება</string>
-  <string name="confirm_image_desc">დასტურის ფანჯარა</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">გზავნილების წაკითხვა</string>
-  <string name="trans_upload">ატვირთვა</string>
-  <string name="trans_download">გადმოწერა</string>
-  <string name="trans_retryin">თავიდან სწდა მოხდება</string>
-  <string name="trans_failed">ვერ მოხერხდა</string>
-  <string name="trans_suspended">შეჩერებულია</string>
-  <string name="trans_active">აქტიურია</string>
-  <string name="trans_pending">მოლოდინშია</string>
-  <string name="trans_projectbackoff">პროექტიდან გამოსვლა</string>
-  <string name="trans_header_name">ფაილი:</string>
-  <string name="trans_control_retry">გზავნილების თავიდან სცდა</string>
-  <string name="confirm_abort_trans_title">გსურთ გზავნილის შეწყვეტა?</string>
-  <string name="confirm_abort_trans_message">ფაილის შეწყვეტა:</string>
-  <string name="confirm_abort_trans_confirm">შეწყვეტა</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">მიმდინარეობს შეტყობინებების წაკითხვა...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">მიმდინარეობს ლოგის შეტყობინებების ჩატვირთვა...</string>
-  <string name="eventlog_client_header">კლიენტის შეტყობინებები</string>
-  <string name="eventlog_gui_header">გმი-ს შეტყობინებები</string>
-  <string name="eventlog_copy_toast">ლოგი დაკოპირებულია კოპირების ბუფერში.</string>
-  <string name="eventlog_email_subject">ივენთების ლოგი BOINC-ისთვის Android-ზე:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">გამოთვლა შეჩერებულია.</string>
-  <string name="suspend_batteries">შეაერთეთ თქვენი მოწყობილობა დამტენზე გამოთვლის გასაგრძელებლად.</string>
-  <string name="suspend_screen_on">გამორთეთ ეკრანი გამოთვლის გასაგრძელებლად.</string>
-  <string name="suspend_useractive">მომხმარებელი აქტიურია.</string>
-  <string name="suspend_tod">გამოთვლების დროის ჩარჩოების გარეთ.</string>
-  <string name="suspend_bm">BOINC-ი ასრულებს თქვენი მოწყობილობის წარმადობის შემოწმებას...</string>
-  <string name="suspend_disksize">მეხსიერების ადგილი დამთავრდა.</string>
-  <string name="suspend_cputhrottle">დაგეგმილი ცპ-ს ასწრაფება.</string>
-  <string name="suspend_noinput">მომხმარებლის ბოლო აქტივობა არ არსებობს.</string>
-  <string name="suspend_delay">ინიციალიზაციის გადაწევა.</string>
-  <string name="suspend_exclusiveapp">გაშვებულია ექსკლუზიური აპლიკაცია.</string>
-  <string name="suspend_cpu">თქვენი მოწყობილობა დაკავებულია სხვა აპლიკაციებით.</string>
-  <string name="suspend_network_quota">BOINC-მა მიაღწია ქსელის გზავნილების შეზღუდვას.</string>
-  <string name="suspend_os">გაჩერებულია Android-ის მიერ.</string>
-  <string name="suspend_wifi">არ არის შეერთებული WiFi-სთან.</string>
-  <string name="suspend_battery_charging">ბატარეის დატენვის მოლოდინში.</string>
-  <string name="suspend_battery_charging_long">გამოთვლა გაგრძელდება, როდესაც იქნება მიღწეული ბატარეის მუხტი.</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">ამჟამად</string>
-  <string name="suspend_battery_overheating">ბატარეის გაგრილების მოლოდინში</string>
-  <string name="suspend_user_req">მიმდინარეობს გამოთვლის გაგრძელება...</string>
-  <string name="suspend_network_user_req">ხელით.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">მოთხოვნილის მომხმარებლის მიერ</string>
-  <string name="rpcreason_needwork">სამუშაოს მისაღებად</string>
-  <string name="rpcreason_resultsdue">შესრულებული დავალებების გასაგზავნად</string>
-  <string name="rpcreason_trickleup">გაწობის შეტყობინების გაზაგზავნად</string>
-  <string name="rpcreason_acctmgrreq">მოთხოვნილია ანგარიშის მმართველის მიერ</string>
-  <string name="rpcreason_init">პროექტის ინიციალიზირება</string>
-  <string name="rpcreason_projectreq">მოთხოვნილია პროექტის მიერ</string>
-  <string name="rpcreason_unknown">უცნობი მიზეზი</string>
-  <!--menu-->
-  <string name="menu_refresh">განახლება</string>
-  <string name="menu_emailto">ელ.ფოსტის გაზავნა</string>
-  <string name="menu_copy">კოპირების ბუფერში დაკოპირება</string>
-  <string name="menu_eventlog">ივენთების ლოგი</string>
-  <string name="menu_exit">BOINC-იდან გასვლა</string>
-  <string name="menu_run_mode_disable">შეჩერება</string>
-  <string name="menu_run_mode_enable">გაგრძელება</string>
-  <string name="menu_about">პროგრამის შესახებ</string>
-  <string name="menu_help">დახმარება</string>
-  <!--about dialog-->
-  <string name="about_button">დაბრუნება</string>
-  <string name="about_title">პროგრამის შესახებ</string>
-  <string name="about_name">BOINC-ი</string>
-  <string name="about_version">ვერსია</string>
-  <string name="about_name_long">ქსელური გამოთვლების ბერკელეის ღია ინფრასტრუქტურა</string>
-  <string name="about_copyright">\u00A9 2003-2014 კალიფორნიის უნივერსიტეტი, ბერკელეი.</string>
-  <string name="about_copyright_reserved">ყველა უფლება დაცულია.</string>
-  <string name="about_credits">მადლობა გრავიტაცული ფიზიკის მაქს პლანკის ინსტიტუტს, აი-ბი-ემ კორპორაციას და ეიჩ-თი-სი კორპორაციას მითი მხარდაჭერისთვის.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">ახალი შეტყობინება გამოაგზავნა</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">ახალი შეტყობინება</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">მოხალისეთა გამოთვლების აპლიკაცია იქნა აღმოჩენილი</string>
-  <string name="nonexcl_dialog_text">სხვა მოხალისეთა გამოთვლების აპლიკაცია არის გაშვებული ამ მოწყობილებაზე. მხოლოდ ერთი ვერსია შეიძლება იყოს გაშვებული ერთდროულად.</string>
-  <string name="nonexcl_dialog_exit">გამოსვლა</string>
-  <!--social integration-->
-  <string name="social_invite_button">მეგობრების მოწვევა</string>
-  <string name="social_invite_intent_title">როგორ გსურთ გაზიარება?</string>
-  <string name="social_invite_content_title">მე ვმუშაობ მეცნიერებაზე ჩემს სმარტფონზე!</string>
-  <string name="social_invite_content_body">მე ვიყენებ ჩემს %1$s მეცნიერების გამოთვლებისთვის. თქვენც ასევე შეგიძლიათ! გადმოიწერეთ აპლიკაცია აქედან: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-ko/strings.xml b/android/BOINC/res/values-ko/strings.xml
deleted file mode 100644
index 405bf25..0000000
--- a/android/BOINC/res/values-ko/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">로딩 중! 잠시 기다려 주세요…</string>
-  <string name="generic_button_continue">계속</string>
-  <string name="generic_button_finish">완료</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">여러분이 공헌할 과학 프로젝트 선택하세요:</string>
-  <string name="attachproject_list_header">프로젝트를 선택:</string>
-  <string name="attachproject_list_manual_button">URL로 프로젝트 추가</string>
-  <string name="attachproject_list_manual_dialog_title">프로젝트 URL 입력:</string>
-  <string name="attachproject_list_manual_dialog_button">프로젝트 추가</string>
-  <string name="attachproject_list_manual_no_url">프로젝트 URL를 입력하세요</string>
-  <string name="attachproject_list_acctmgr_button">계정 관리자 추가</string>
-  <string name="attachproject_list_no_internet">인터넷 연결이 되지 않았습니다</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">계정 정보를 입력하세요</string>
-  <string name="attachproject_credential_input_desc">선택한 프로젝트의 계정 정보를 입력:</string>
-  <string name="attachproject_credential_input_show_pwd">비밀번호 보이기</string>
-  <string name="attachproject_individual_credential_input">개별적으로 프로젝트 추가</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">과학 프로젝트 추가 중에 문제가 발생했습니다:</string>
-  <string name="attachproject_conflict_undefined">연결 실패</string>
-  <string name="attachproject_conflict_not_unique">다른 비밀번호를 가진 계정이 이미 있습니다</string>
-  <string name="attachproject_conflict_bad_password">틀린 비밀번호</string>
-  <string name="attachproject_conflict_unknown_user">계정이 존재하지 않습니다</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">계정이 존재하지 않습니다. 등록하려면 프로젝트 웹사이트에 방문하세요</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">추가하는중</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">힌트</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">공헌하는 법:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. WiFi에 연결하기</string>
-  <string name="attachproject_hint_contribtion_charger">2. 충전기를 꼽으세요</string>
-  <string name="attachproject_hint_contribtion_screen">3. 화면을 끄세요</string>
-  <string name="attachproject_hint_projectwebsite_header">프로젝트 웹사이트 방문하기:</string>
-  <string name="attachproject_hint_projectwebsite_science">과학에 대해 더 알아보기</string>
-  <string name="attachproject_hint_projectwebsite_stats">공헌 통계 보기</string>
-  <string name="attachproject_hint_projectwebsite_community">다른 기여자들과 만나보기</string>
-  <string name="attachproject_hint_platforms_header">또한 BOINC는 데스크톱이나 랩탑으로도 이용할 수 있습니다. 더 알아보려면 boinc.berkeley.edu에 방문하세요.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">프로젝트 서버 연결 중…</string>
-  <string name="attachproject_login_image_description">프로젝트 로고</string>
-  <string name="attachproject_login_header_general_area">대분류:</string>
-  <string name="attachproject_login_header_specific_area">소분류:</string>
-  <string name="attachproject_login_header_description">개요:</string>
-  <string name="attachproject_login_header_home">거점:</string>
-  <string name="attachproject_login_header_url">웹 사이트:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">이 프로젝트는 안드로이드 장치를 지원합니다</string>
-  <string name="attachproject_login_platform_not_supported">이 프로젝트는 안드로이드 장치를 지원하지 않습니다</string>
-  <string name="attachproject_login_category_terms_of_use">사용자 약관</string>
-  <string name="attachproject_login_accept_terms_of_use">이 프로젝트에 계정을 생성할 경우, 상기된 사용자 약관에 동의하는 것으로 처리됩니다.</string>
-  <string name="attachproject_login_category_login">기존 계정으로 로그인</string>
-  <string name="attachproject_login_header_id_email">이메일:</string>
-  <string name="attachproject_login_header_id_name">이름:</string>
-  <string name="attachproject_login_header_pwd">비밀번호:</string>
-  <string name="attachproject_login_category_creation">신규</string>
-  <string name="attachproject_login_header_creation_enabled">참여하기 위해 계정 등록:</string>
-  <string name="attachproject_login_header_creation_client_disabled">계정 생성을 위해 프로젝트 웹사이트 방문하기:</string>
-  <string name="attachproject_login_header_creation_disabled">이 프로젝트는 현재 새로운 계정을 생성할 수 없습니다.</string>
-  <string name="attachproject_login_button_registration">등록</string>
-  <string name="attachproject_login_button_login">로그인</string>
-  <string name="attachproject_login_button_forgotpw">비밀번호 분실</string>
-  <string name="attachproject_login_error_toast">프로젝트 접속에 실패했습니다!</string>
-  <string name="attachproject_login_attached">연결됨</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">계정 등록</string>
-  <string name="attachproject_registration_header_url">프로젝트:</string>
-  <string name="attachproject_registration_header_email">이메일:</string>
-  <string name="attachproject_registration_header_username">이름:</string>
-  <string name="attachproject_registration_header_teamname">팀:</string>
-  <string name="attachproject_registration_header_pwd">비밀번호:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… 재입력:</string>
-  <string name="attachproject_registration_button">생성</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">여러 프로젝트를 추가 및 관리하기 위해 BOINC 계정 관리자를 이용하세요</string>
-  <string name="attachproject_acctmgr_header">계정 관리자 추가</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">사용자:</string>
-  <string name="attachproject_acctmgr_header_pwd">비밀번호:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… 재입력:</string>
-  <string name="attachproject_acctmgr_button">추가</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">사용자를 찾지 못했습니다</string>
-  <string name="attachproject_error_short_pwd">비밀번호가 너무 짧습니다</string>
-  <string name="attachproject_error_no_internet">연결 실패</string>
-  <string name="attachproject_error_pwd_no_match">비밀번호가 일치하지 않습니다</string>
-  <string name="attachproject_error_pwd_no_retype">비밀번호를 다시 입력해 주세요</string>
-  <string name="attachproject_error_no_url">URL을 입력해 주십시오</string>
-  <string name="attachproject_error_no_email">이메일 주소를 입력해 주세요</string>
-  <string name="attachproject_error_no_pwd">비밀번호를 입력해 주세요</string>
-  <string name="attachproject_error_no_name">사용자 이름을 입력해 주세요</string>
-  <string name="attachproject_error_unknown">실패</string>
-  <string name="attachproject_error_bad_username">사용자 이름이 거부됨</string>
-  <string name="attachproject_error_email_in_use">이메일 주소가 이미 사용중</string>
-  <string name="attachproject_error_project_down">프로젝트가 오프라인 상태</string>
-  <string name="attachproject_error_email_bad_syntax">이메일 주소가 없거나 틀립니다</string>
-  <string name="attachproject_error_bad_pwd">비밀번호가 틀립니다</string>
-  <string name="attachproject_error_creation_disabled">이 프로젝트는 계정 생성을 할 수 없습니다</string>
-  <string name="attachproject_error_invalid_url">잘못된 URL</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">뒤로</string>
-  <string name="attachproject_working_finish_button">완료</string>
-  <string name="attachproject_working_check_desc">성공</string>
-  <string name="attachproject_working_failed_desc">실패</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">연결</string>
-  <string name="attachproject_working_verify">계정 확인</string>
-  <string name="attachproject_working_register">계정 등록</string>
-  <string name="attachproject_working_login">로그인</string>
-  <string name="attachproject_working_acctmgr">계정 관리자 추가</string>
-  <string name="attachproject_working_acctmgr_sync">동기화</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">프로젝트를 선택하려면 여기를 누르세요.</string>
-  <string name="main_error">어이쿠</string>
-  <string name="main_error_long">…이 작업이 수행되지 못했어요!\n다시 시도하려면 아이콘을 클릭하세요.</string>
-  <string name="main_title_icon_desc">BOINC 아이콘</string>
-  <!--tab names-->
-  <string name="tab_status">상태</string>
-  <string name="tab_projects">프로젝트</string>
-  <string name="tab_tasks">태스크</string>
-  <string name="tab_transfers">전송</string>
-  <string name="tab_preferences">환경 설정</string>
-  <string name="tab_notices">알림</string>
-  <string name="tab_desc">안내</string>
-  <!--status strings-->
-  <string name="status_running">연산중</string>
-  <string name="status_running_long">참여해 주셔서 감사합니다.</string>
-  <string name="status_paused">일시 정지됨</string>
-  <string name="status_idle">아무 것도 안 함</string>
-  <string name="status_idle_long">태스크 대기 중…</string>
-  <string name="status_computing_disabled">일시 정지됨</string>
-  <string name="status_computing_disabled_long">네트워크 및 연산을 재개하려면 실행 버튼을 누르세요.</string>
-  <string name="status_launching">시작중…</string>
-  <string name="status_noproject">참여할 프로젝트를 선택하세요.</string>
-  <string name="status_closing">닫는 중…</string>
-  <string name="status_benchmarking">벤치마크 실행 중…</string>
-  <string name="status_image_description">프로젝트 이미지</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">환경 설정을 읽는 중…</string>
-  <string name="prefs_submit_button">저장</string>
-  <string name="prefs_dialog_title">새로운 값을 입력:</string>
-  <string name="prefs_dialog_title_selection">선택:</string>
-  <string name="prefs_category_general">일반</string>
-  <string name="prefs_category_network">네트워크</string>
-  <string name="prefs_category_power">전원</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">저장소</string>
-  <string name="prefs_category_memory">메모리</string>
-  <string name="prefs_category_debug">디버그</string>
-  <string name="prefs_show_advanced_header">고급 환경 설정과 제어판을 보여주기…</string>
-  <string name="prefs_suspend_when_screen_on">화면이 켜지면 연산 중지</string>
-  <string name="prefs_stationary_device_mode_header">고정 장치 모드</string>
-  <string name="prefs_stationary_device_mode_description">전원 환경설정을 무시한 연산 허용. 만약 장치에 배터리가 장착되지 않았을 때에만 활성화하세요.</string>
-  <string name="prefs_power_source_header">연산용 전원 공급 장치</string>
-  <string name="prefs_power_source_description">BOINC가 연산을 허용할 전원 공급 장치를 선택하세요.</string>
-  <string name="prefs_power_source_ac">전기 콘센트</string>
-  <string name="prefs_power_source_usb">USB 접속</string>
-  <string name="prefs_power_source_wireless">무선 충전기</string>
-  <string name="prefs_power_source_battery">배터리</string>
-  <string name="battery_charge_min_pct_header">최소 배터리 량</string>
-  <string name="battery_charge_min_pct_description">아래 지정된 배터리 충전량이 되면 BOINC는 연산을 일시 정지합니다.</string>
-  <string name="battery_temperature_max_header">최고 배터리 온도</string>
-  <string name="battery_temperature_max_description">위에 지정된 배터리 온도가 되면 BOINC는 연산을 일시 정지합니다. 이 값을 바꾸지 않길 권장합니다.</string>
-  <string name="prefs_disk_max_pct_header">최대 사용할 저장소 공간</string>
-  <string name="prefs_disk_max_pct_description">저장소 공간 중 몇 %를 BOINC가 사용하길 원하십니까?</string>
-  <string name="prefs_disk_min_free_gb_header">최소로 남겨 둘 용량</string>
-  <string name="prefs_disk_min_free_gb_description">저장소 공간 중 얼만큼 여유 공간으로 남겨두길 원하십니까?</string>
-  <string name="prefs_disk_access_interval_header">액세스 간격</string>
-  <string name="prefs_disk_access_interval_description">디스크 액세스 간격을 설정하세요</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">하루 전송 제한량</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">하루에 BOINC가 전송할 데이터 제한량</string>
-  <string name="prefs_network_wifi_only_header">WiFi에서만 태스크 전송</string>
-  <string name="prefs_autostart_header">자동 시작</string>
-  <string name="prefs_show_notification_notices_header">새 공지사항이 나오면 알림 바에 알려주기</string>
-  <string name="prefs_show_notification_suspended_header">일시중지되면 알림 바에 알려주기</string>
-  <string name="prefs_cpu_number_cpus_header">사용할 CPU 코어 수</string>
-  <string name="prefs_cpu_number_cpus_description">BOINC가 연산에 사용할 CPU 코어 수 제한</string>
-  <string name="prefs_cpu_other_load_suspension_header">CPU 사용량 제한 도달시 정지</string>
-  <string name="prefs_cpu_other_load_suspension_description">다른 앱이 사용하면, BOINC가 연산을 정지할 CPU 사용량치</string>
-  <string name="prefs_cpu_time_max_header">CPU 제한</string>
-  <string name="prefs_cpu_time_max_description">BOINC가 연산에 사용할 CPU 시간을 제한합니다.</string>
-  <string name="prefs_memory_max_idle_header">RAM 제한</string>
-  <string name="prefs_memory_max_idle_description">태스크의 RAM 점유량을 제한합니다.</string>
-  <string name="prefs_client_log_flags_header">BOINC 클라이언트 로그 flags</string>
-  <string name="prefs_gui_log_level_header">GUI 로그 레벨</string>
-  <string name="prefs_gui_log_level_description">GUI 로그 메세지의 상세 정도를 결정해 주세요.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">초</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">프로젝트를 불러오는 중…</string>
-  <string name="projects_add">프로젝트 추가</string>
-  <string name="projects_icon">프로젝트 아이콘</string>
-  <string name="projects_credits_header">크레딧:</string>
-  <string name="projects_credits_host_header">(해당 장치)</string>
-  <string name="projects_credits_user_header">(전체)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">사용자에 의해 일시 정지됨</string>
-  <string name="projects_status_dontrequestmorework">새 태스크를 원하지 않음</string>
-  <string name="projects_status_ended">프로젝트 종료 - 제거하려면 OK를 누르세요</string>
-  <string name="projects_status_detachwhendone">태스크 완료시 제거될 것입니다</string>
-  <string name="projects_status_schedrpcpending">스케줄러 요청 대기중</string>
-  <string name="projects_status_schedrpcinprogress">스케줄러 요청 처리중</string>
-  <string name="projects_status_trickleuppending">Trickle up 메세지 대기중</string>
-  <string name="projects_status_backoff">예약된 통신 시각:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">프로젝트 명령:</string>
-  <string name="projects_control_visit_website">웹사이트 방문</string>
-  <string name="projects_control_update">업데이트</string>
-  <string name="projects_control_remove">제거</string>
-  <string name="projects_control_suspend">일시 정지됨</string>
-  <string name="projects_control_resume">재개</string>
-  <string name="projects_control_nonewtasks">새 태스크 금지</string>
-  <string name="projects_control_allownewtasks">새 태스크 허용</string>
-  <string name="projects_control_reset">재설정</string>
-  <string name="projects_control_dialog_title_acctmgr">계정 관리자 명령어:</string>
-  <string name="projects_control_sync_acctmgr">동기화</string>
-  <string name="projects_control_remove_acctmgr">비활성</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">프로젝트를 제거할까요?</string>
-  <string name="projects_confirm_detach_message">BOINC상에서 정말로 프로젝트명: </string>
-  <string name="projects_confirm_detach_message2">를 제거하시겠습니까?</string>
-  <string name="projects_confirm_detach_confirm">제거</string>
-  <string name="projects_confirm_reset_title">프로젝트 재설정</string>
-  <string name="projects_confirm_reset_message">다음 프로젝트가 재설정됩니다 괘찮습니까: </string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">재설정</string>
-  <string name="projects_confirm_remove_acctmgr_title">계정 관리자 비활성화</string>
-  <string name="projects_confirm_remove_acctmgr_message">정말로 다음 항목 사용을 중지합니까</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">비활성화</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">태스크 이름:</string>
-  <string name="tasks_header_elapsed_time">진행 시간:</string>
-  <string name="tasks_header_project_paused">(일시 정지됨)</string>
-  <string name="tasks_header_deadline">마감 시각:</string>
-  <string name="tasks_result_new">신규</string>
-  <string name="tasks_result_files_downloading">다운로드 대기중</string>
-  <string name="tasks_result_files_downloaded">다운로드 완료</string>
-  <string name="tasks_result_compute_error">연산 오류</string>
-  <string name="tasks_result_files_uploading">업로드 중</string>
-  <string name="tasks_result_files_uploaded">업로드 완료</string>
-  <string name="tasks_result_aborted">중단됨</string>
-  <string name="tasks_result_upload_failed">업로드 실패</string>
-  <string name="tasks_active_uninitialized">준비됨</string>
-  <string name="tasks_active_executing">실행 중</string>
-  <string name="tasks_active_suspended">일시 정지됨</string>
-  <string name="tasks_active_abort_pending">일시 정지 중</string>
-  <string name="tasks_active_quit_pending">일시 정지 중</string>
-  <string name="tasks_custom_suspended_via_gui">일시 정지됨</string>
-  <string name="tasks_custom_project_suspended_via_gui">프로젝트가 일시 정지됨</string>
-  <string name="tasks_custom_ready_to_report">보고 준비 완료</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">태스크를 중단할까요?</string>
-  <string name="confirm_abort_task_message">중단할 태스크:</string>
-  <string name="confirm_abort_task_confirm">중단</string>
-  <string name="confirm_cancel">취소</string>
-  <string name="confirm_image_desc">확인 대화상자</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">전송 목록 읽는 중…</string>
-  <string name="trans_upload">업로드</string>
-  <string name="trans_download">다운로드</string>
-  <string name="trans_retryin">재시도</string>
-  <string name="trans_failed">실패</string>
-  <string name="trans_suspended">일시 정지됨</string>
-  <string name="trans_active">활성</string>
-  <string name="trans_pending">보류</string>
-  <string name="trans_projectbackoff">프로젝트 재연결</string>
-  <string name="trans_header_name">파일:</string>
-  <string name="trans_control_retry">전송 재시도</string>
-  <string name="confirm_abort_trans_title">전송을 중단할까요?</string>
-  <string name="confirm_abort_trans_message">중단할 파일:</string>
-  <string name="confirm_abort_trans_confirm">중단</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">공지사항 읽는 중...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">로그 메세지 읽는 중…</string>
-  <string name="eventlog_client_header">클라이언트 메세지</string>
-  <string name="eventlog_gui_header">GUI 메세지</string>
-  <string name="eventlog_copy_toast">로그가 클립보드에 복사되었습니다.</string>
-  <string name="eventlog_email_subject">안드로이드 상의 BOINC 이벤트 기록:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">연산이 일시 정지되었습니다.</string>
-  <string name="suspend_batteries">연산을 계속하려면 기기를 충전기에 연결하세요.</string>
-  <string name="suspend_screen_on">연산을 계속하려면 화면을 끄세요.</string>
-  <string name="suspend_useractive">사용자가 활동을 시작합니다.</string>
-  <string name="suspend_tod">연산 시간 제한을 넘었습니다.</string>
-  <string name="suspend_bm">BOINC에서 벤치마크 실행 중…</string>
-  <string name="suspend_disksize">저장소 공간을 초과했습니다.</string>
-  <string name="suspend_cputhrottle">예약된 CPU 사용량 제한에 도달했습니다.</string>
-  <string name="suspend_noinput">최근 사용자 활동이 없습니다.</string>
-  <string name="suspend_delay">초기화 지연됨.</string>
-  <string name="suspend_exclusiveapp">독점 앱이 실행 중입니다.</string>
-  <string name="suspend_cpu">다른 앱으로 인해 기기가 바쁩니다.</string>
-  <string name="suspend_network_quota">BOINC가 네트워크 전송 제한량에 도달했습니다.</string>
-  <string name="suspend_os">안드로이드에서 정지시킴.</string>
-  <string name="suspend_wifi">WiFi에 연결되지 않았습니다.</string>
-  <string name="suspend_battery_charging">배터리가 충전되길 기다리는 중.</string>
-  <string name="suspend_battery_charging_long">배터리가 설정량만큼 충전되면 연산이 재개됩니다</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">현재</string>
-  <string name="suspend_battery_overheating">배터리가 식길 기다리는 중</string>
-  <string name="suspend_user_req">연산 재개 중…</string>
-  <string name="suspend_network_user_req">수동</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">사용자가 요청함</string>
-  <string name="rpcreason_needwork">작업 반입</string>
-  <string name="rpcreason_resultsdue">완료된 태스크 보고</string>
-  <string name="rpcreason_trickleup">trickle-up 메세지 전송</string>
-  <string name="rpcreason_acctmgrreq">계정 관리자에서 요청함</string>
-  <string name="rpcreason_init">프로젝트 초기화</string>
-  <string name="rpcreason_projectreq">프로젝트에서 요청함</string>
-  <string name="rpcreason_unknown">알 수 없는 이유</string>
-  <!--menu-->
-  <string name="menu_refresh">새로 고침</string>
-  <string name="menu_emailto">이메일로 보내기</string>
-  <string name="menu_copy">클립보드에 복사</string>
-  <string name="menu_eventlog">이벤트 기록</string>
-  <string name="menu_exit">BOINC 종료</string>
-  <string name="menu_run_mode_disable">일시 정지됨</string>
-  <string name="menu_run_mode_enable">재개</string>
-  <string name="menu_about">정보</string>
-  <string name="menu_help">도움말</string>
-  <!--about dialog-->
-  <string name="about_button">뒤로</string>
-  <string name="about_title">정보</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">버전</string>
-  <string name="about_name_long">네트워크 컴퓨팅을 위한 Berkeley 개방형 하부구조체</string>
-  <string name="about_copyright">© 2003–2013 University of California, Berkeley.\nAll Rights Reserved.</string>
-  <string name="about_copyright_reserved">모든 권리 보유</string>
-  <string name="about_credits">막스 플랑크 중력 물리학 연구소, IBM Corporation, HTC의 지원에 감사드립니다.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">새 공지사항</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">새 공지사항</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">기여자 연산 앱 감지됨</string>
-  <string name="nonexcl_dialog_text">다른 기여자 연산 앱이 이 장치에서 실행되고 있습니다. 한 번에 하나씩만 실행할 수 있습니다.</string>
-  <string name="nonexcl_dialog_exit">종료</string>
-  <!--social integration-->
-  <string name="social_invite_button">친구 초대하기</string>
-  <string name="social_invite_intent_title">누구에게 공유하고 싶습니까?</string>
-  <string name="social_invite_content_title">내 스마트폰으로만 작업할래요!</string>
-  <string name="social_invite_content_body">%1$s도 연산에 참여합니다. 여러분도 할 수 있습니다! 앱 다운로드: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-lt/strings.xml b/android/BOINC/res/values-lt/strings.xml
deleted file mode 100644
index 1da5b13..0000000
--- a/android/BOINC/res/values-lt/strings.xml
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-  <string name="app_name">BOINC</string>
-  <string name="generic_loading">로딩 중! 잠시 기다려 주세요…</string>
-  <string name="attachproject_list_header">프로젝트를 선택:</string>
-  <string name="attachproject_list_manual_button">URL로 프로젝트 추가</string>
-  <string name="attachproject_list_manual_dialog_title">프로젝트 URL 입력:</string>
-  <string name="attachproject_list_manual_dialog_button">프로젝트 추가</string>
-  <string name="attachproject_list_manual_no_url">프로젝트 URL를 입력하세요</string>
-  <string name="attachproject_list_acctmgr_button">계정 관리자 추가</string>
-  <string name="attachproject_list_no_internet">인터넷 연결이 되지 않았습니다</string>
-  <string name="attachproject_login_loading">프로젝트 서버 연결 중…</string>
-  <string name="attachproject_login_image_description">프로젝트 로고</string>
-  <string name="attachproject_login_header_general_area">대분류:</string>
-  <string name="attachproject_login_header_specific_area">소분류:</string>
-  <string name="attachproject_login_header_description">개요:</string>
-  <string name="attachproject_login_header_home">거점:</string>
-  <string name="attachproject_login_header_url">웹 사이트:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">이 프로젝트는 안드로이드 장치를 지원합니다</string>
-  <string name="attachproject_login_platform_not_supported">이 프로젝트는 안드로이드 장치를 지원하지 않습니다</string>
-  <string name="attachproject_login_category_terms_of_use">사용자 약관</string>
-  <string name="attachproject_login_accept_terms_of_use">이 프로젝트에 계정을 생성할 경우, 상기된 사용자 약관에 동의하는 것으로 처리됩니다.</string>
-  <string name="attachproject_login_category_login">기존 계정으로 로그인</string>
-  <string name="attachproject_login_header_id_email">이메일:</string>
-  <string name="attachproject_login_header_id_name">이름:</string>
-  <string name="attachproject_login_header_pwd">비밀번호:</string>
-  <string name="attachproject_login_category_creation">신규</string>
-  <string name="attachproject_login_header_creation_enabled">참여하기 위해 계정 등록:</string>
-  <string name="attachproject_login_header_creation_client_disabled">계정 생성을 위해 프로젝트 웹사이트 방문하기:</string>
-  <string name="attachproject_login_header_creation_disabled">현재 프로젝트에서 신규 계정 생성을 허용하지 않았습니다!</string>
-  <string name="attachproject_login_button_registration">등록</string>
-  <string name="attachproject_login_button_login">로그인</string>
-  <string name="attachproject_login_button_forgotpw">비밀번호 분실</string>
-  <string name="attachproject_login_error_toast">프로젝트 접속에 실패했습니다!</string>
-  <string name="attachproject_login_attached">연결됨</string>
-  <string name="attachproject_registration_header">계정 등록</string>
-  <string name="attachproject_registration_header_url">프로젝트:</string>
-  <string name="attachproject_registration_header_email">이메일:</string>
-  <string name="attachproject_registration_header_username">이름:</string>
-  <string name="attachproject_registration_header_teamname">팀:</string>
-  <string name="attachproject_registration_header_pwd">비밀번호:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… 재입력:</string>
-  <string name="attachproject_registration_button">생성</string>
-  <string name="attachproject_acctmgr_header">계정 관리자 추가</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">사용자:</string>
-  <string name="attachproject_acctmgr_header_pwd">비밀번호:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… 재입력:</string>
-  <string name="attachproject_acctmgr_button">추가</string>
-  <string name="attachproject_error_wrong_name">사용자를 찾지 못했습니다</string>
-  <string name="attachproject_error_short_pwd">비밀번호가 너무 짧습니다</string>
-  <string name="attachproject_error_no_internet">연결 실패</string>
-  <string name="attachproject_error_pwd_no_match">비밀번호가 일치하지 않습니다</string>
-  <string name="attachproject_error_no_url">URL을 입력해 주십시오</string>
-  <string name="attachproject_error_no_email">이메일 주소를 입력해 주세요</string>
-  <string name="attachproject_error_no_pwd">비밀번호를 입력해 주세요</string>
-  <string name="attachproject_error_no_name">사용자 이름을 입력해 주세요</string>
-  <string name="attachproject_error_unknown">실패</string>
-  <string name="attachproject_error_bad_username">사용자 이름이 거부됨</string>
-  <string name="attachproject_error_email_in_use">이메일 주소가 이미 사용중</string>
-  <string name="attachproject_error_project_down">프로젝트가 오프라인 상태</string>
-  <string name="attachproject_error_email_bad_syntax">이메일 주소가 없거나 틀립니다</string>
-  <string name="attachproject_error_bad_pwd">비밀번호가 틀립니다</string>
-  <string name="attachproject_error_creation_disabled">이 프로젝트는 계정 생성을 할 수 없습니다</string>
-  <string name="attachproject_error_invalid_url">잘못된 URL</string>
-  <string name="attachproject_working_back_button">뒤로</string>
-  <string name="attachproject_working_finish_button">완료</string>
-  <string name="attachproject_working_check_desc">성공</string>
-  <string name="attachproject_working_failed_desc">실패</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">연결</string>
-  <string name="attachproject_working_verify">계정 확인</string>
-  <string name="attachproject_working_register">계정 등록</string>
-  <string name="attachproject_working_login">로그인</string>
-  <string name="attachproject_working_acctmgr">계정 관리자 추가</string>
-  <string name="attachproject_working_acctmgr_sync">동기화</string>
-  <string name="main_noproject_warning">프로젝트를 선택하려면 여기를 누르세요.</string>
-  <string name="main_error">어이쿠</string>
-  <string name="main_error_long">…이 작업이 수행되지 못했어요!\n다시 시도하려면 아이콘을 클릭하세요.</string>
-  <string name="main_title_icon_desc">BOINC 아이콘</string>
-  <string name="tab_status">상태</string>
-  <string name="tab_projects">프로젝트</string>
-  <string name="tab_tasks">태스크</string>
-  <string name="tab_transfers">전송</string>
-  <string name="tab_preferences">환경 설정</string>
-  <string name="tab_notices">알림</string>
-  <string name="tab_desc">안내</string>
-  <string name="status_running">연산중</string>
-  <string name="status_running_long">참여해 주셔서 감사합니다.</string>
-  <string name="status_paused">일시 정지됨</string>
-  <string name="status_idle">아무 것도 안 함</string>
-  <string name="status_idle_long">태스크 대기 중…</string>
-  <string name="status_computing_disabled">일시 정지됨</string>
-  <string name="status_computing_disabled_long">네트워크 및 연산을 재개하려면 실행 버튼을 누르세요.</string>
-  <string name="status_launching">시작중…</string>
-  <string name="status_noproject">참여할 프로젝트를 선택하세요.</string>
-  <string name="status_closing">닫는 중…</string>
-  <string name="status_benchmarking">벤치마크 실행 중…</string>
-  <string name="status_image_description">프로젝트 이미지</string>
-  <string name="prefs_loading">환경 설정을 읽는 중…</string>
-  <string name="prefs_submit_button">저장</string>
-  <string name="prefs_dialog_title">새로운 값을 입력:</string>
-  <string name="prefs_dialog_title_selection">선택:</string>
-  <string name="prefs_category_general">일반</string>
-  <string name="prefs_category_network">네트워크</string>
-  <string name="prefs_category_power">전원</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">저장소</string>
-  <string name="prefs_category_memory">메모리</string>
-  <string name="prefs_category_debug">디버그</string>
-  <string name="prefs_show_advanced_header">고급 환경 설정과 제어판을 보여주기…</string>
-  <string name="battery_charge_min_pct_header">최소 배터리 량</string>
-  <string name="battery_charge_min_pct_description">아래 지정된 배터리 충전량이 되면 BOINC는 연산을 일시 정지합니다.</string>
-  <string name="battery_temperature_max_header">최고 배터리 온도</string>
-  <string name="battery_temperature_max_description">위에 지정된 배터리 온도가 되면 BOINC는 연산을 일시 정지합니다. 이 값을 바꾸지 않길 권장합니다.</string>
-  <string name="prefs_disk_max_pct_header">최대 사용할 저장소 공간</string>
-  <string name="prefs_disk_max_pct_description">저장소 공간 중 몇 %를 BOINC가 사용하길 원하십니까?</string>
-  <string name="prefs_disk_min_free_gb_header">최소로 남겨 둘 용량</string>
-  <string name="prefs_disk_min_free_gb_description">저장소 공간 중 얼만큼 여유 공간으로 남겨두길 원하십니까?</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">하루 전송 제한량</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">하루에 BOINC가 전송할 데이터 제한량</string>
-  <string name="prefs_network_wifi_only_header">WiFi에서만 태스크 전송</string>
-  <string name="prefs_autostart_header">자동 시작</string>
-  <string name="prefs_cpu_number_cpus_header">사용할 CPU 코어 수</string>
-  <string name="prefs_cpu_number_cpus_description">BOINC가 연산에 사용할 CPU 코어 수 제한</string>
-  <string name="prefs_cpu_other_load_suspension_header">CPU 사용량 제한 도달시 정지</string>
-  <string name="prefs_cpu_other_load_suspension_description">다른 앱의 CPU 사용량이 설정치에 도달시 BOINC 연산을 정지합니다.</string>
-  <string name="prefs_cpu_time_max_header">CPU 제한</string>
-  <string name="prefs_cpu_time_max_description">BOINC가 연산에 사용할 CPU 시간을 제한합니다.</string>
-  <string name="prefs_memory_max_idle_header">RAM 제한</string>
-  <string name="prefs_memory_max_idle_description">태스크의 RAM 점유량을 제한합니다.</string>
-  <string name="prefs_client_log_flags_header">BOINC 클라이언트 로그 flags</string>
-  <string name="prefs_gui_log_level_header">GUI 로그 레벨</string>
-  <string name="prefs_gui_log_level_description">GUI 로그 메세지의 상세 정도를 결정해 주세요.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="projects_loading">프로젝트를 불러오는 중…</string>
-  <string name="projects_add">프로젝트 추가</string>
-  <string name="projects_icon">프로젝트 아이콘</string>
-  <string name="projects_credits_header">크레딧:</string>
-  <string name="projects_credits_host_header">(해당 장치)</string>
-  <string name="projects_credits_user_header">(전체)</string>
-  <string name="projects_status_suspendedviagui">사용자에 의해 일시 정지됨</string>
-  <string name="projects_status_dontrequestmorework">새 태스크를 원하지 않음</string>
-  <string name="projects_status_ended">프로젝트 종료 - 제거하려면 OK를 누르세요</string>
-  <string name="projects_status_detachwhendone">태스크 완료시 제거될 것입니다</string>
-  <string name="projects_status_schedrpcpending">스케줄러 요청 대기중</string>
-  <string name="projects_status_schedrpcinprogress">스케줄러 요청 처리중</string>
-  <string name="projects_status_trickleuppending">Trickle up 메세지 대기중</string>
-  <string name="projects_status_backoff">예약된 통신 시각:</string>
-  <string name="projects_control_dialog_title">프로젝트 명령:</string>
-  <string name="projects_control_visit_website">웹사이트 방문</string>
-  <string name="projects_control_update">업데이트</string>
-  <string name="projects_control_remove">제거</string>
-  <string name="projects_control_suspend">일시 정지됨</string>
-  <string name="projects_control_resume">재개</string>
-  <string name="projects_control_nonewtasks">새 태스크 금지</string>
-  <string name="projects_control_allownewtasks">새 태스크 허용</string>
-  <string name="projects_control_reset">재설정</string>
-  <string name="projects_control_dialog_title_acctmgr">계정 관리자 명령어:</string>
-  <string name="projects_control_sync_acctmgr">동기화</string>
-  <string name="projects_control_remove_acctmgr">비활성</string>
-  <string name="projects_confirm_detach_title">프로젝트를 제거할까요?</string>
-  <string name="projects_confirm_detach_message">"BOINC상에서 정말로 프로젝트명: "</string>
-  <string name="projects_confirm_detach_message2">를 제거하시겠습니까?</string>
-  <string name="projects_confirm_detach_confirm">제거</string>
-  <string name="projects_confirm_reset_title">프로젝트 재설정</string>
-  <string name="projects_confirm_reset_message">"다음 프로젝트가 재설정됩니다 괘찮습니까: "</string>
-  <string name="projects_confirm_reset_confirm">재설정</string>
-  <string name="projects_confirm_remove_acctmgr_title">계정 관리자 비활성화</string>
-  <string name="projects_confirm_remove_acctmgr_message">정말로 다음 항목 사용을 중지합니까</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">비활성화</string>
-  <string name="tasks_header_name">태스크 이름:</string>
-  <string name="tasks_header_elapsed_time">진행 시간:</string>
-  <string name="tasks_header_project_paused">(일시 정지됨)</string>
-  <string name="tasks_header_deadline">마감 시각:</string>
-  <string name="tasks_result_new">신규</string>
-  <string name="tasks_result_files_downloading">다운로드 대기중</string>
-  <string name="tasks_result_files_downloaded">다운로드 완료</string>
-  <string name="tasks_result_compute_error">연산 오류</string>
-  <string name="tasks_result_files_uploading">업로드 중</string>
-  <string name="tasks_result_files_uploaded">업로드 완료</string>
-  <string name="tasks_result_aborted">중단됨</string>
-  <string name="tasks_result_upload_failed">업로드 실패</string>
-  <string name="tasks_active_uninitialized">준비됨</string>
-  <string name="tasks_active_executing">실행 중</string>
-  <string name="tasks_active_suspended">일시 정지됨</string>
-  <string name="tasks_active_abort_pending">일시 정지 중</string>
-  <string name="tasks_active_quit_pending">일시 정지 중</string>
-  <string name="tasks_custom_suspended_via_gui">일시 정지됨</string>
-  <string name="tasks_custom_project_suspended_via_gui">프로젝트가 일시 정지됨</string>
-  <string name="tasks_custom_ready_to_report">보고 준비 완료</string>
-  <string name="confirm_abort_task_title">태스크를 중단할까요?</string>
-  <string name="confirm_abort_task_message">중단할 태스크:</string>
-  <string name="confirm_abort_task_confirm">중단</string>
-  <string name="confirm_cancel">취소</string>
-  <string name="confirm_image_desc">확인 대화상자</string>
-  <string name="trans_loading">전송 목록 읽는 중…</string>
-  <string name="trans_upload">업로드</string>
-  <string name="trans_download">다운로드</string>
-  <string name="trans_retryin">재시도</string>
-  <string name="trans_failed">실패</string>
-  <string name="trans_suspended">일시 정지됨</string>
-  <string name="trans_active">활성</string>
-  <string name="trans_pending">보류</string>
-  <string name="trans_projectbackoff">프로젝트 재연결</string>
-  <string name="trans_header_name">파일:</string>
-  <string name="trans_control_retry">전송 재시도</string>
-  <string name="confirm_abort_trans_title">전송을 중단할까요?</string>
-  <string name="confirm_abort_trans_message">중단할 파일:</string>
-  <string name="confirm_abort_trans_confirm">중단</string>
-  <string name="notices_loading">공지사항 읽는 중...</string>
-  <string name="eventlog_loading">로그 메세지 읽는 중…</string>
-  <string name="eventlog_client_header">클라이언트 메세지</string>
-  <string name="eventlog_gui_header">GUI 메세지</string>
-  <string name="eventlog_copy_toast">로그가 클립보드에 복사되었습니다.</string>
-  <string name="eventlog_email_subject">안드로이드 상의 BOINC 이벤트 기록:</string>
-  <string name="suspend_unknown">연산이 일시 정지되었습니다.</string>
-  <string name="suspend_batteries">연산을 계속하려면 기기를 충전기에 연결하세요.</string>
-  <string name="suspend_useractive">사용자가 활동을 시작합니다.</string>
-  <string name="suspend_tod">연산 시간 제한을 넘었습니다.</string>
-  <string name="suspend_bm">BOINC에서 벤치마크 실행 중…</string>
-  <string name="suspend_disksize">저장소 공간을 초과했습니다.</string>
-  <string name="suspend_cputhrottle">예약된 CPU 사용량 제한에 도달했습니다.</string>
-  <string name="suspend_noinput">최근 사용자 활동이 없습니다.</string>
-  <string name="suspend_delay">초기화 지연됨.</string>
-  <string name="suspend_exclusiveapp">독점 앱이 실행 중입니다.</string>
-  <string name="suspend_cpu">다른 앱으로 인해 기기가 바쁩니다.</string>
-  <string name="suspend_network_quota">BOINC가 네트워크 전송 제한량에 도달했습니다.</string>
-  <string name="suspend_os">안드로이드에서 정지시킴.</string>
-  <string name="suspend_wifi">WiFi에 연결되지 않았습니다.</string>
-  <string name="suspend_battery_charging">연산을 재개시키기 전에 배터리를 충전해야 합니다.</string>
-  <string name="suspend_battery_charging_long">배터리가 설정량만큼 충전되면 연산이 재개됩니다</string>
-  <string name="suspend_battery_charging_current">현재</string>
-  <string name="suspend_battery_overheating">배터리가 식길 기다리는 중</string>
-  <string name="suspend_user_req">연산 재개 중…</string>
-  <string name="suspend_network_user_req">수동</string>
-  <string name="rpcreason_userreq">사용자가 요청함</string>
-  <string name="rpcreason_needwork">작업 반입</string>
-  <string name="rpcreason_resultsdue">완료된 태스크 보고</string>
-  <string name="rpcreason_trickleup">trickle-up 메세지 전송</string>
-  <string name="rpcreason_acctmgrreq">계정 관리자에서 요청함</string>
-  <string name="rpcreason_init">프로젝트 초기화</string>
-  <string name="rpcreason_projectreq">프로젝트에서 요청함</string>
-  <string name="rpcreason_unknown">알 수 없는 이유</string>
-  <string name="menu_refresh">새로 고침</string>
-  <string name="menu_emailto">이메일로 보내기</string>
-  <string name="menu_copy">클립보드에 복사</string>
-  <string name="menu_eventlog">이벤트 기록</string>
-  <string name="menu_exit">BOINC 종료</string>
-  <string name="menu_run_mode_disable">일시 정지됨</string>
-  <string name="menu_run_mode_enable">재개</string>
-  <string name="menu_about">정보</string>
-  <string name="menu_help">도움말</string>
-  <string name="about_button">뒤로</string>
-  <string name="about_title">정보</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">버전</string>
-  <string name="about_name_long">네트워크 컴퓨팅을 위한 Berkeley 개방형 하부구조체</string>
-  <string name="about_copyright">© 2003–2013 University of California, Berkeley.\nAll Rights Reserved.</string>
-</resources>
diff --git a/android/BOINC/res/values-lv/strings.xml b/android/BOINC/res/values-lv/strings.xml
deleted file mode 100644
index 94edc23..0000000
--- a/android/BOINC/res/values-lv/strings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources/>
diff --git a/android/BOINC/res/values-nb/strings.xml b/android/BOINC/res/values-nb/strings.xml
deleted file mode 100644
index 94edc23..0000000
--- a/android/BOINC/res/values-nb/strings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources/>
diff --git a/android/BOINC/res/values-nl/strings.xml b/android/BOINC/res/values-nl/strings.xml
deleted file mode 100644
index 5172855..0000000
--- a/android/BOINC/res/values-nl/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Bezig met laden! Even geduld...</string>
-  <string name="generic_button_continue">Ga verder</string>
-  <string name="generic_button_finish">Voltooien</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Selecteer wetenschappelijke projecten om aan deel te nemen:</string>
-  <string name="attachproject_list_header">Kies een project:</string>
-  <string name="attachproject_list_manual_button">Project toevoegen via URL</string>
-  <string name="attachproject_list_manual_dialog_title">Projectspecifieke URL invoeren:</string>
-  <string name="attachproject_list_manual_dialog_button">Project toevoegen</string>
-  <string name="attachproject_list_manual_no_url">Projectspecifieke URL invoeren</string>
-  <string name="attachproject_list_acctmgr_button">Accountmanager toevoegen</string>
-  <string name="attachproject_list_no_internet">Geen internetverbinding</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Vul account informatie in</string>
-  <string name="attachproject_credential_input_desc">Vul account informatie in voor geselecteerde projecten:</string>
-  <string name="attachproject_credential_input_show_pwd">Laat wachtwoord zien</string>
-  <string name="attachproject_individual_credential_input">Voeg projecten apart toe</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Er zijn problemen met toevoegen van volgende projecten:</string>
-  <string name="attachproject_conflict_undefined">Verbinding mislukt</string>
-  <string name="attachproject_conflict_not_unique">Account bestaat met ander wachtwoord</string>
-  <string name="attachproject_conflict_bad_password">Foutief wachtwoord</string>
-  <string name="attachproject_conflict_unknown_user">Account bestaat niet</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Account bestaat niet, bezoek projectwebsite om te registreren</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Toevoegen</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Hint</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Hoe deel te nemen;</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Verbind met WIFI</string>
-  <string name="attachproject_hint_contribtion_charger">2. Oplader aansluiten</string>
-  <string name="attachproject_hint_contribtion_screen">3. Scherm uitzetten</string>
-  <string name="attachproject_hint_projectwebsite_header">Bezoek project website om:</string>
-  <string name="attachproject_hint_projectwebsite_science">Leer meer over de wetenschap</string>
-  <string name="attachproject_hint_projectwebsite_stats">Bekijk de gebruikers statistieken</string>
-  <string name="attachproject_hint_projectwebsite_community">In contact te komen met andere vrijwiligers</string>
-  <string name="attachproject_hint_platforms_header">BOINC is ook beschikbaar voor je computer of laptop, bezoek boinc.berkeley.edu voor meer informatie.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Verbinding maken met projectspecifieke server...</string>
-  <string name="attachproject_login_image_description">Project logo.</string>
-  <string name="attachproject_login_header_general_area">Vakgebied:</string>
-  <string name="attachproject_login_header_specific_area">Specifiek vakgebied:</string>
-  <string name="attachproject_login_header_description">Omschrijving:</string>
-  <string name="attachproject_login_header_home">Start:</string>
-  <string name="attachproject_login_header_url">Website:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Dit project ondersteunt Android-apparaten</string>
-  <string name="attachproject_login_platform_not_supported">Dit project ondersteunt geen Android-apparaten</string>
-  <string name="attachproject_login_category_terms_of_use">Gebruiksvoorwaarden voor</string>
-  <string name="attachproject_login_accept_terms_of_use">Het aanmaken van een account bij dit project impliceert acceptatie van de gebruiksvoorwaarden zoals hierboven beschreven.</string>
-  <string name="attachproject_login_category_login">Aanmeldgegevens van bestaand account gebruiken</string>
-  <string name="attachproject_login_header_id_email">E-mailadres:</string>
-  <string name="attachproject_login_header_id_name">Naam:</string>
-  <string name="attachproject_login_header_pwd">Wachtwoord:</string>
-  <string name="attachproject_login_category_creation">Nieuw bij</string>
-  <string name="attachproject_login_header_creation_enabled">Een account aanmaken voor deelname:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Bezoek projectspecifieke website om een account aan te maken:</string>
-  <string name="attachproject_login_header_creation_disabled">Het project accepteert op dit moment geen nieuwe accounts.</string>
-  <string name="attachproject_login_button_registration">Aanmaken</string>
-  <string name="attachproject_login_button_login">Aanmelden</string>
-  <string name="attachproject_login_button_forgotpw">Wachtwoord Vergeten</string>
-  <string name="attachproject_login_error_toast">Verbinding met het project mislukt!</string>
-  <string name="attachproject_login_attached">Bijgevoegd</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Account-registratie voor</string>
-  <string name="attachproject_registration_header_url">Project:</string>
-  <string name="attachproject_registration_header_email">E-mailadres:</string>
-  <string name="attachproject_registration_header_username">Naam:</string>
-  <string name="attachproject_registration_header_teamname">Team:</string>
-  <string name="attachproject_registration_header_pwd">Wachtwoord:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... Herhalen:</string>
-  <string name="attachproject_registration_button">Aanmaken</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Gebruik BOINC account manager om meerdere projecten te onderhouden</string>
-  <string name="attachproject_acctmgr_header">Account manager toevoegen</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Gebruiker:</string>
-  <string name="attachproject_acctmgr_header_pwd">Wachtwoord:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... Herhalen:</string>
-  <string name="attachproject_acctmgr_button">Toevoegen</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Gebruiker niet gevonden</string>
-  <string name="attachproject_error_short_pwd">Het wachtwoord is te kort</string>
-  <string name="attachproject_error_no_internet">Verbinding mislukt</string>
-  <string name="attachproject_error_pwd_no_match">Wachtwoorden zijn niet identiek</string>
-  <string name="attachproject_error_pwd_no_retype">Vul wachtwoord opnieuw in</string>
-  <string name="attachproject_error_no_url">Vul a.u.b. URL in</string>
-  <string name="attachproject_error_no_email">Voer uw e-mailadres in</string>
-  <string name="attachproject_error_no_pwd">Voer een wachtwoord in</string>
-  <string name="attachproject_error_no_name">Voer gebruikersnaam in</string>
-  <string name="attachproject_error_unknown">mislukt</string>
-  <string name="attachproject_error_bad_username">Gebruikersnaam geweigerd</string>
-  <string name="attachproject_error_email_in_use">E-mailadres is al in gebruik</string>
-  <string name="attachproject_error_project_down">Project is offline</string>
-  <string name="attachproject_error_email_bad_syntax">E-mailadres geweigerd</string>
-  <string name="attachproject_error_bad_pwd">Wachtwoord geweigerd</string>
-  <string name="attachproject_error_creation_disabled">Aanmaken van een account is voor dit project niet mogelijk</string>
-  <string name="attachproject_error_invalid_url">Ongeldig URL</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Vorige</string>
-  <string name="attachproject_working_finish_button">Voltooien</string>
-  <string name="attachproject_working_check_desc">Geslaagd</string>
-  <string name="attachproject_working_failed_desc">Mislukt</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Verbinden</string>
-  <string name="attachproject_working_verify">Account verifiëren</string>
-  <string name="attachproject_working_register">Account registreren</string>
-  <string name="attachproject_working_login">Aanmelden</string>
-  <string name="attachproject_working_acctmgr">Account manager toevoegen</string>
-  <string name="attachproject_working_acctmgr_sync">Bijwerken</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Tik hier om een project te kiezen.</string>
-  <string name="main_error">Oeps</string>
-  <string name="main_error_long">...dit hoort niet te gebeuren!\nKlik op het icoontje om het opneuw te proberen.</string>
-  <string name="main_title_icon_desc">BOINC-icoon</string>
-  <!--tab names-->
-  <string name="tab_status">Status</string>
-  <string name="tab_projects">Projecten</string>
-  <string name="tab_tasks">Taken</string>
-  <string name="tab_transfers">Overdrachten</string>
-  <string name="tab_preferences">Voorkeursinstellingen</string>
-  <string name="tab_notices">Berichten</string>
-  <string name="tab_desc">Navigatie</string>
-  <!--status strings-->
-  <string name="status_running">Berekenen</string>
-  <string name="status_running_long">Dank u voor uw deelname.</string>
-  <string name="status_paused">Onderbroken</string>
-  <string name="status_idle">Niets te doen</string>
-  <string name="status_idle_long">Wachten op taaktoewijzing...</string>
-  <string name="status_computing_disabled">Onderbroken</string>
-  <string name="status_computing_disabled_long">Klik op afspelen om de netwerkactiviteit en de berekeningen te hervatten.</string>
-  <string name="status_launching">Opstarten...</string>
-  <string name="status_noproject">Kies een project om aan deel te nemen.</string>
-  <string name="status_closing">Bezig met afsluiten…</string>
-  <string name="status_benchmarking">Bezig met benchmark...</string>
-  <string name="status_image_description">project afbeelding</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Voorkeuren inlezen...</string>
-  <string name="prefs_submit_button">Opslaan</string>
-  <string name="prefs_dialog_title">Voer nieuwe waarde in:</string>
-  <string name="prefs_dialog_title_selection">Selecteer:</string>
-  <string name="prefs_category_general">Algemeen</string>
-  <string name="prefs_category_network">Netwerk</string>
-  <string name="prefs_category_power">Energie</string>
-  <string name="prefs_category_cpu">Processor</string>
-  <string name="prefs_category_storage">Opslag</string>
-  <string name="prefs_category_memory">Geheugen</string>
-  <string name="prefs_category_debug">Foutoplossing</string>
-  <string name="prefs_show_advanced_header">Toon geavanceerde voorkeuren en instellingen...</string>
-  <string name="prefs_suspend_when_screen_on">Pauzeer berekening wanneer scherm ingeschakeld is</string>
-  <string name="prefs_stationary_device_mode_header">Stationaire apparaatmodus</string>
-  <string name="prefs_stationary_device_mode_description">Staat berekening toe ongeacht stroom voorkeuren. Alleen inschakelen als het apparaat niet over een batterij beschikt.</string>
-  <string name="prefs_power_source_header">Stroombronnen voor berekeningen</string>
-  <string name="prefs_power_source_description">Hiermee selecteert u stroombronnen die BOINC mag gebruiken voor berekeningen.</string>
-  <string name="prefs_power_source_ac">Wandcontactdoos</string>
-  <string name="prefs_power_source_usb">USB verbinding</string>
-  <string name="prefs_power_source_wireless">Draadloze oplader</string>
-  <string name="prefs_power_source_battery">Accu</string>
-  <string name="battery_charge_min_pct_header">Min. batterijniveau</string>
-  <string name="battery_charge_min_pct_description">BOINC pauzeert de berekening wanneer de batterijlading onder een gegeven niveau zakt.</string>
-  <string name="battery_temperature_max_header">Max. batterij temperatuur</string>
-  <string name="battery_temperature_max_description">BOINC stopt met bereken boven de aangegeven batterij temperatuur. Het is niet aanbevolen om deze waarde te wijzigen.</string>
-  <string name="prefs_disk_max_pct_header">Max. gebruikte opslagruimte</string>
-  <string name="prefs_disk_max_pct_description">Welk percentage opslagruimte mag BOINC gebruiken op dit apparaat?</string>
-  <string name="prefs_disk_min_free_gb_header">Min. reserve opslagruimte</string>
-  <string name="prefs_disk_min_free_gb_description">Hoeveel van de opslagruimte moet er minimaal vrij blijven?</string>
-  <string name="prefs_disk_access_interval_header">Toegangs interval</string>
-  <string name="prefs_disk_access_interval_description">Suggereert een interval bij schijf gebruik</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Dagelijkse overdracht limiet</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Beperkt het dagelijkse dataverkeer van BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Taken alleen bijwerken via WiFi</string>
-  <string name="prefs_autostart_header">Autostart</string>
-  <string name="prefs_show_notification_notices_header">Melding weergeven voor nieuwe berichten</string>
-  <string name="prefs_show_notification_suspended_header">Melding weergeven wanneer gepauzeerd</string>
-  <string name="prefs_cpu_number_cpus_header">Gebruikte CPU cores</string>
-  <string name="prefs_cpu_number_cpus_description">Beperkt het aantal gebruikte CPU cores voor BOINC berekeningen.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pauzeer bij CPU gebruik van meer dan</string>
-  <string name="prefs_cpu_other_load_suspension_description">Bepaald wanneer BOINC pauzeert vanwege CPU gebruik door andere apps.</string>
-  <string name="prefs_cpu_time_max_header">CPU limiet</string>
-  <string name="prefs_cpu_time_max_description">Beperkt de CPU tijd gebruikt door BOINC voor berekeningen.</string>
-  <string name="prefs_memory_max_idle_header">Geheugen limiet</string>
-  <string name="prefs_memory_max_idle_description">Beperkt de gebruikte hoeveelheid geheugen gebruikt door taken.</string>
-  <string name="prefs_client_log_flags_header">BOINC Client log tekens</string>
-  <string name="prefs_gui_log_level_header">GUI log level</string>
-  <string name="prefs_gui_log_level_description">Specificeert uitgebreidheid van GUI log berichten.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">seconden</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Projecten inlezen...</string>
-  <string name="projects_add">Project toevoegen</string>
-  <string name="projects_icon">Project icoon</string>
-  <string name="projects_credits_header">Punten:</string>
-  <string name="projects_credits_host_header">(op dit apparaat)</string>
-  <string name="projects_credits_user_header">(totaal)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Onderbroken door gebruiker</string>
-  <string name="projects_status_dontrequestmorework">Krijgt geen nieuwe taken</string>
-  <string name="projects_status_ended">Project beëindigd - OK om te verwijderen </string>
-  <string name="projects_status_detachwhendone">Wordt verwijderd als taken klaar zijn</string>
-  <string name="projects_status_schedrpcpending">Bijwerkverzoek in behandeling</string>
-  <string name="projects_status_schedrpcinprogress">Bijwerkverzoek is bezig</string>
-  <string name="projects_status_trickleuppending">Trickle up bericht in behandeling</string>
-  <string name="projects_status_backoff">Communicatie gepland over:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Project opdrachten:</string>
-  <string name="projects_control_visit_website">Bezoek website</string>
-  <string name="projects_control_update">Bijwerken</string>
-  <string name="projects_control_remove">Verwijderen</string>
-  <string name="projects_control_suspend">Pauzeren</string>
-  <string name="projects_control_resume">Hervatten</string>
-  <string name="projects_control_nonewtasks">Geen nieuwe taken</string>
-  <string name="projects_control_allownewtasks">Nieuwe taken toestaan</string>
-  <string name="projects_control_reset">Resetten</string>
-  <string name="projects_control_dialog_title_acctmgr">Accountmanager opdrachten:</string>
-  <string name="projects_control_sync_acctmgr">Bijwerken</string>
-  <string name="projects_control_remove_acctmgr">Uitzetten</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Project verwijderen?</string>
-  <string name="projects_confirm_detach_message">Weet je zeker dat je</string>
-  <string name="projects_confirm_detach_message2">uit BOINC wilt verwijderen?</string>
-  <string name="projects_confirm_detach_confirm">Verwijderen</string>
-  <string name="projects_confirm_reset_title">Project resetten</string>
-  <string name="projects_confirm_reset_message">Weet je zeker dat je</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Resetten</string>
-  <string name="projects_confirm_remove_acctmgr_title">Accountmanager uitzetten</string>
-  <string name="projects_confirm_remove_acctmgr_message">Weet je zeker dat je wilt stoppen met het gebruik van</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Uitzetten</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Taaknaam:</string>
-  <string name="tasks_header_elapsed_time">Verstreken tijd: </string>
-  <string name="tasks_header_project_paused">(onderbroken)</string>
-  <string name="tasks_header_deadline">Deadline:</string>
-  <string name="tasks_result_new">nieuw</string>
-  <string name="tasks_result_files_downloading">wacht op downloaden</string>
-  <string name="tasks_result_files_downloaded">downloaden voltooid</string>
-  <string name="tasks_result_compute_error">verwerkingsfout</string>
-  <string name="tasks_result_files_uploading">uploaden</string>
-  <string name="tasks_result_files_uploaded">uploaden voltooid</string>
-  <string name="tasks_result_aborted">afgebroken</string>
-  <string name="tasks_result_upload_failed">uploaden mislukt</string>
-  <string name="tasks_active_uninitialized">voltooid</string>
-  <string name="tasks_active_executing">loopt</string>
-  <string name="tasks_active_suspended">onderbroken</string>
-  <string name="tasks_active_abort_pending">onderbreken</string>
-  <string name="tasks_active_quit_pending">onderbreken</string>
-  <string name="tasks_custom_suspended_via_gui">onderbroken</string>
-  <string name="tasks_custom_project_suspended_via_gui">project onderbroken</string>
-  <string name="tasks_custom_ready_to_report">klaar om te rapporteren</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Taak afbreken?</string>
-  <string name="confirm_abort_task_message">Taak afbreken:</string>
-  <string name="confirm_abort_task_confirm">Afbreken</string>
-  <string name="confirm_cancel">Annuleren</string>
-  <string name="confirm_image_desc">Bevestigingsdialoog</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Overdracht inlezen...</string>
-  <string name="trans_upload">Upload</string>
-  <string name="trans_download">Download</string>
-  <string name="trans_retryin">opnieuw over</string>
-  <string name="trans_failed">mislukt</string>
-  <string name="trans_suspended">onderbroken</string>
-  <string name="trans_active">actief</string>
-  <string name="trans_pending">in behandeling</string>
-  <string name="trans_projectbackoff">project wachttijd</string>
-  <string name="trans_header_name">Bestand:</string>
-  <string name="trans_control_retry">Opnieuw verzenden</string>
-  <string name="confirm_abort_trans_title">Overdracht afbreken?</string>
-  <string name="confirm_abort_trans_message">Bestand afbreken:</string>
-  <string name="confirm_abort_trans_confirm">Afbreken</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Berichten inlezen...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Log berichten laden...</string>
-  <string name="eventlog_client_header">Berichten van Cliënt</string>
-  <string name="eventlog_gui_header">GUI berichten</string>
-  <string name="eventlog_copy_toast">Log naar klembord gekopieerd.</string>
-  <string name="eventlog_email_subject">Logberichten voor BOINC op Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Bewerking onderbroken.</string>
-  <string name="suspend_batteries">Verbind het apparaat met een oplader om verder te gaan.</string>
-  <string name="suspend_screen_on">Scherm uitschakelen om met berekeningen door te gaan.</string>
-  <string name="suspend_useractive">Gebruiker is actief.</string>
-  <string name="suspend_tod">Niet binnen berekenings-tijdsbestek.</string>
-  <string name="suspend_bm">BOINC benchmarkt je apparaat…</string>
-  <string name="suspend_disksize">Geen vrije schijfruimte over.</string>
-  <string name="suspend_cputhrottle">Geplande CPU beperking.</string>
-  <string name="suspend_noinput">Geen recente gebruikers activiteit.</string>
-  <string name="suspend_delay">Initialiseren vertraagd.</string>
-  <string name="suspend_exclusiveapp">Er wordt een exclusieve app uitgevoerd.</string>
-  <string name="suspend_cpu">Apparaat is bezig met andere apps.</string>
-  <string name="suspend_network_quota">BOINC transfer limiet is bereikt.</string>
-  <string name="suspend_os">Gestopt door Android.</string>
-  <string name="suspend_wifi">Niet verbonden met WiFi.</string>
-  <string name="suspend_battery_charging">Wachten op laden van batterij.</string>
-  <string name="suspend_battery_charging_long">Berekeningen worden hervat op batterij niveau van</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">huidig</string>
-  <string name="suspend_battery_overheating">Wacht op afkoelen batterij</string>
-  <string name="suspend_user_req">Berekeningen hervatten...</string>
-  <string name="suspend_network_user_req">handmatig.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Op verzoek van gebruiker</string>
-  <string name="rpcreason_needwork">Om werk te verkrijgen</string>
-  <string name="rpcreason_resultsdue">Om taken te rapporteren</string>
-  <string name="rpcreason_trickleup">Om trickle-up berichten te verzenden</string>
-  <string name="rpcreason_acctmgrreq">Op verzoek van accountmanager</string>
-  <string name="rpcreason_init">Project instellen</string>
-  <string name="rpcreason_projectreq">Op verzoek van project</string>
-  <string name="rpcreason_unknown">Onbekende reden</string>
-  <!--menu-->
-  <string name="menu_refresh">Ververs</string>
-  <string name="menu_emailto">Verzend als email</string>
-  <string name="menu_copy">Naar klembord kopiëren</string>
-  <string name="menu_eventlog">Gebeurtenis Log</string>
-  <string name="menu_exit">BOINC afsluiten</string>
-  <string name="menu_run_mode_disable">Onderbreek</string>
-  <string name="menu_run_mode_enable">Hervatten</string>
-  <string name="menu_about">Over</string>
-  <string name="menu_help">Help</string>
-  <!--about dialog-->
-  <string name="about_button">Terug</string>
-  <string name="about_title">Over</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versie</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">© 2003–2013 University of California, Berkeley.\nAll Rights Reserved.</string>
-  <string name="about_copyright_reserved">Alle rechten voorbehouden.</string>
-  <string name="about_credits">Met dank aan het Max Planck Instituut voor gravitationele natuurkunde, IBM Corporation en HTC Corporation voor hun steun.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nieuw bericht van</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nieuwe berichten</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Andere berekenings app gedetecteerd</string>
-  <string name="nonexcl_dialog_text">Een andere berekenings app draait op dit apparaat. Slechts één versie kan per keer worden uitgevoerd.</string>
-  <string name="nonexcl_dialog_exit">Afsluiten</string>
-  <!--social integration-->
-  <string name="social_invite_button">Vrienden uitnodigen</string>
-  <string name="social_invite_intent_title">Hoe wilt u dit delen?</string>
-  <string name="social_invite_content_title">Ik doe wetenschap op mijn smartphone!</string>
-  <string name="social_invite_content_body">Ik doe met behulp van mijn %1$s berekeningen voor de wetenschap. Doe dit ook! Download app van: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-pt-rBR/strings.xml b/android/BOINC/res/values-pt-rBR/strings.xml
deleted file mode 100644
index 490c4fd..0000000
--- a/android/BOINC/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-</resources>
\ No newline at end of file
diff --git a/android/BOINC/res/values-pt-rPT/strings.xml b/android/BOINC/res/values-pt-rPT/strings.xml
deleted file mode 100644
index 5869bfd..0000000
--- a/android/BOINC/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">A carregar! Por favor, aguarde...</string>
-  <string name="generic_button_continue">Continuar</string>
-  <string name="generic_button_finish">Terminar</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Selecione os projetos científicos em que deseja contribuir:</string>
-  <string name="attachproject_list_header">Escolha um projeto</string>
-  <string name="attachproject_list_manual_button">Adicionar projecto por URL</string>
-  <string name="attachproject_list_manual_dialog_title">Insira o URL do projeto:</string>
-  <string name="attachproject_list_manual_dialog_button">Adicionar projeto</string>
-  <string name="attachproject_list_manual_no_url">Por favor, insira o URL do projecto</string>
-  <string name="attachproject_list_acctmgr_button">Adicionar gestor de conta</string>
-  <string name="attachproject_list_no_internet">Sem conexão de Internet</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Insira informações da conta</string>
-  <string name="attachproject_credential_input_desc">Insira informação da conta para os projectos seleccionados:</string>
-  <string name="attachproject_credential_input_show_pwd">Mostrar palavra-passe</string>
-  <string name="attachproject_individual_credential_input">Adicionar projectos individualmente</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Existiram problemas ao anexar os projectos científicos:</string>
-  <string name="attachproject_conflict_undefined">Não conseguiu conexão</string>
-  <string name="attachproject_conflict_not_unique">A conta existe com uma palavra-passe diferente</string>
-  <string name="attachproject_conflict_bad_password">Palavra-passe incorrecta</string>
-  <string name="attachproject_conflict_unknown_user">A conta não existe</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">A conta não existe, visite o website do projecto para se registar</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Anexando</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Dica</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Como contribuir:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Conectar ao WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Ligar o Carregador</string>
-  <string name="attachproject_hint_contribtion_screen">3. Desligar o Ecrã</string>
-  <string name="attachproject_hint_projectwebsite_header">Visite os websites do projecto para:</string>
-  <string name="attachproject_hint_projectwebsite_science">Aprenda mais sobre a ciência</string>
-  <string name="attachproject_hint_projectwebsite_stats">Ver estatísticas de contribuição</string>
-  <string name="attachproject_hint_projectwebsite_community">Entre em contacto com outros voluntários</string>
-  <string name="attachproject_hint_platforms_header">O BOINC também está disponível para o seu computador ou portátil, visite boinc.berkeley.edu para saber mais.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">A contactar o servidor do projecto...</string>
-  <string name="attachproject_login_image_description">Logotipo do projecto.</string>
-  <string name="attachproject_login_header_general_area">Área geral:</string>
-  <string name="attachproject_login_header_specific_area">Área específica:</string>
-  <string name="attachproject_login_header_description">Descrição:</string>
-  <string name="attachproject_login_header_home">Página principal:</string>
-  <string name="attachproject_login_header_url">Website:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">O tipo de dispositivo é suportado por este projecto</string>
-  <string name="attachproject_login_platform_not_supported">O dispositivo não é suportado por este projecto</string>
-  <string name="attachproject_login_category_terms_of_use">Termos de uso para</string>
-  <string name="attachproject_login_accept_terms_of_use">Ao criar uma conta neste projecto, aceita os termos de uso acima descritos.</string>
-  <string name="attachproject_login_category_login">Entrar com uma conta já existente</string>
-  <string name="attachproject_login_header_id_email">e-Mail:</string>
-  <string name="attachproject_login_header_id_name">Nome:</string>
-  <string name="attachproject_login_header_pwd">Palavra-passe:</string>
-  <string name="attachproject_login_category_creation">Novo a</string>
-  <string name="attachproject_login_header_creation_enabled">Registar uma conta para participar:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Visite o website do projecto para criar uma conta:</string>
-  <string name="attachproject_login_header_creation_disabled">Este projecto não está a aceitar de momento novas contas.</string>
-  <string name="attachproject_login_button_registration">Registar</string>
-  <string name="attachproject_login_button_login">Entrar</string>
-  <string name="attachproject_login_button_forgotpw">Esqueceu a Palavra-passe</string>
-  <string name="attachproject_login_error_toast">Conexão ao projecto falhou!</string>
-  <string name="attachproject_login_attached">Anexado</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Registo de conta para</string>
-  <string name="attachproject_registration_header_url">Projecto:</string>
-  <string name="attachproject_registration_header_email">e-Mail:</string>
-  <string name="attachproject_registration_header_username">Nome:</string>
-  <string name="attachproject_registration_header_teamname">Equipa:</string>
-  <string name="attachproject_registration_header_pwd">Palavra-passe:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... Escreva novamente:</string>
-  <string name="attachproject_registration_button">Criar</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Use o gestor de conta do BOINC, para adicionar ou gerir projectos múltiplos</string>
-  <string name="attachproject_acctmgr_header">Adicionar gestor de conta</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Utilizador:</string>
-  <string name="attachproject_acctmgr_header_pwd">Palavra-passe:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... Escreva novamente:</string>
-  <string name="attachproject_acctmgr_button">Adicionar</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Utilizador não encontrado</string>
-  <string name="attachproject_error_short_pwd">Palavra-passe demasiado curta</string>
-  <string name="attachproject_error_no_internet">Falha de conexão</string>
-  <string name="attachproject_error_pwd_no_match">As palavras-passe não coincidem</string>
-  <string name="attachproject_error_pwd_no_retype">Por favor, insira a palavra-passe novamente</string>
-  <string name="attachproject_error_no_url">Por favor, insira o URL</string>
-  <string name="attachproject_error_no_email">Por favor, insira o endereço de e-Mail</string>
-  <string name="attachproject_error_no_pwd">Por favor, insira a palavra-passe</string>
-  <string name="attachproject_error_no_name">Por favor, insira o nome de utilizador</string>
-  <string name="attachproject_error_unknown">falhou</string>
-  <string name="attachproject_error_bad_username">Nome de utilizador não aceite</string>
-  <string name="attachproject_error_email_in_use">Endereço de e-Mail já em utilização</string>
-  <string name="attachproject_error_project_down">O projecto está offline</string>
-  <string name="attachproject_error_email_bad_syntax">Endereço de e-Mail não aceite</string>
-  <string name="attachproject_error_bad_pwd">Palavra-passe não aceite</string>
-  <string name="attachproject_error_creation_disabled">A criação de contas está desabilitada para este projecto</string>
-  <string name="attachproject_error_invalid_url">URL inválido</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Voltar Atrás</string>
-  <string name="attachproject_working_finish_button">Terminar</string>
-  <string name="attachproject_working_check_desc">Bem sucedido</string>
-  <string name="attachproject_working_failed_desc">Falhou</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Conectar</string>
-  <string name="attachproject_working_verify">Verificar conta</string>
-  <string name="attachproject_working_register">Registar conta</string>
-  <string name="attachproject_working_login">Entrar</string>
-  <string name="attachproject_working_acctmgr">Adicionar gestor de conta</string>
-  <string name="attachproject_working_acctmgr_sync">Sincronizar</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Carregue aqui para escolher um projecto.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">...isto não deveria acontecer!\nClique no ícone para tentar novamente.</string>
-  <string name="main_title_icon_desc">Ícone do BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Estado</string>
-  <string name="tab_projects">Projectos</string>
-  <string name="tab_tasks">Tarefas</string>
-  <string name="tab_transfers">Transferências</string>
-  <string name="tab_preferences">Preferências</string>
-  <string name="tab_notices">Notícias</string>
-  <string name="tab_desc">Navegação</string>
-  <!--status strings-->
-  <string name="status_running">A realizar computação</string>
-  <string name="status_running_long">Obrigado por participar.</string>
-  <string name="status_paused">Suspenso</string>
-  <string name="status_idle">Nada para fazer</string>
-  <string name="status_idle_long">A aguardar tarefas...</string>
-  <string name="status_computing_disabled">Suspenso</string>
-  <string name="status_computing_disabled_long">Carregue no play para resumir a actividade de rede e computação.</string>
-  <string name="status_launching">Começando...</string>
-  <string name="status_noproject">Escolha um projecto para participar.</string>
-  <string name="status_closing">A fechar...</string>
-  <string name="status_benchmarking">A executar testes de performance...</string>
-  <string name="status_image_description">imagem do projecto</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">A ler preferências...</string>
-  <string name="prefs_submit_button">Guardar</string>
-  <string name="prefs_dialog_title">Insira novo valor:</string>
-  <string name="prefs_dialog_title_selection">Seleccione:</string>
-  <string name="prefs_category_general">Geral</string>
-  <string name="prefs_category_network">Rede</string>
-  <string name="prefs_category_power">Alimentação</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Armazenamento</string>
-  <string name="prefs_category_memory">Memória</string>
-  <string name="prefs_category_debug">Debug</string>
-  <string name="prefs_show_advanced_header">Mostrar preferências avançadas e controlos...</string>
-  <string name="prefs_suspend_when_screen_on">Pausar a computação quando o ecrã está ligado</string>
-  <string name="prefs_stationary_device_mode_header">Dispositivo em modo estacionário</string>
-  <string name="prefs_stationary_device_mode_description">Permite computação independentemente das preferências de Energia. Habilite apenas se o dispositivo não tiver uma bateria.</string>
-  <string name="prefs_power_source_header">Fontes de energia para computação</string>
-  <string name="prefs_power_source_description">Selecciona a fonte de energia permitida para o BOINC realizar computação.</string>
-  <string name="prefs_power_source_ac">Wall socket</string>
-  <string name="prefs_power_source_usb">Conexão USB</string>
-  <string name="prefs_power_source_wireless">Carregador sem fios</string>
-  <string name="prefs_power_source_battery">Bateria</string>
-  <string name="battery_charge_min_pct_header">Nível de bateria mínimo</string>
-  <string name="battery_charge_min_pct_description">O BOINC suspende a computação quando abaixo do nível de bateria definido.</string>
-  <string name="battery_temperature_max_header">Temperatura máxima da bateria</string>
-  <string name="battery_temperature_max_description">O BOINC suspende a computação abaixo da temperatura da bateria definida. Não é recomendada a alteração deste valor.</string>
-  <string name="prefs_disk_max_pct_header">Espaço de armazenamento máximo</string>
-  <string name="prefs_disk_max_pct_description">Qual a percentagem de espaço de armazenamento no seu dispositivo que é permitido que o BOINC utilize?</string>
-  <string name="prefs_disk_min_free_gb_header">Espaço de armazenamento mínimo</string>
-  <string name="prefs_disk_min_free_gb_description">Qual a capacidade de espaço de armazenamento no seu dispositivo que deve ficar livre?</string>
-  <string name="prefs_disk_access_interval_header">Intervalo de acesso</string>
-  <string name="prefs_disk_access_interval_description">Sugere um intervalo entre acessos ao disco</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Transferência diária limite</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limita o tráfico diário causado pelo BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Transferir tarefas em WiFi apenas</string>
-  <string name="prefs_autostart_header">Começo Automático</string>
-  <string name="prefs_show_notification_notices_header">Mostrar notificações para novas notícias</string>
-  <string name="prefs_show_notification_suspended_header">Mostrar notificação quando suspenso</string>
-  <string name="prefs_cpu_number_cpus_header">Número de cores do CPU utilizados</string>
-  <string name="prefs_cpu_number_cpus_description">Limita o número de cores de CPU que o BOINC usa para computação.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pausa no CPU quando a utilização for acima de</string>
-  <string name="prefs_cpu_other_load_suspension_description">Determina quando o BOINC pausa a computação, devido ao uso do CPU por outras aplicações</string>
-  <string name="prefs_cpu_time_max_header">Limite do CPU</string>
-  <string name="prefs_cpu_time_max_description">Limita o tempo de CPU que o BOINC usa para computação.</string>
-  <string name="prefs_memory_max_idle_header">Limite de RAM</string>
-  <string name="prefs_memory_max_idle_description">Limita a quantidade de RAM que é permitida que as tarefas ocupem.</string>
-  <string name="prefs_client_log_flags_header">Log das Bandeiras do cliente BOINC</string>
-  <string name="prefs_gui_log_level_header">Nível de log da GUI</string>
-  <string name="prefs_gui_log_level_description">Especifica a verbosidade das mensagens de log da GUI.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">seg</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">A ler projectos...</string>
-  <string name="projects_add">Adicionar projecto</string>
-  <string name="projects_icon">Ícone do projecto</string>
-  <string name="projects_credits_header">Créditos:</string>
-  <string name="projects_credits_host_header">(neste dispositivo)</string>
-  <string name="projects_credits_user_header">(total)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Suspenso pelo utilizador</string>
-  <string name="projects_status_dontrequestmorework">Não obter novas tarefas</string>
-  <string name="projects_status_ended">Projecto terminado - OK para remover</string>
-  <string name="projects_status_detachwhendone">Irá remover quando as tarefas terminarem</string>
-  <string name="projects_status_schedrpcpending">Solicitação agendada pendente</string>
-  <string name="projects_status_schedrpcinprogress">Solicitação agendada em progresso</string>
-  <string name="projects_status_trickleuppending">Mensagem de aviso pendente</string>
-  <string name="projects_status_backoff">Comunicação agendada em:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Comandos do projecto:</string>
-  <string name="projects_control_visit_website">Visitar website</string>
-  <string name="projects_control_update">Actualizar</string>
-  <string name="projects_control_remove">Remover</string>
-  <string name="projects_control_suspend">Suspender</string>
-  <string name="projects_control_resume">Resumir</string>
-  <string name="projects_control_nonewtasks">Cancelar novas tarefas</string>
-  <string name="projects_control_allownewtasks">Permitir novas tarefas</string>
-  <string name="projects_control_reset">Reset</string>
-  <string name="projects_control_dialog_title_acctmgr">Comandos do gestor de conta:</string>
-  <string name="projects_control_sync_acctmgr">Sincronizar</string>
-  <string name="projects_control_remove_acctmgr">Desabilitar</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Remover projecto?</string>
-  <string name="projects_confirm_detach_message">Tem a certeza que quer remover</string>
-  <string name="projects_confirm_detach_message2">do BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Remover</string>
-  <string name="projects_confirm_reset_title">Fazer reset ao projecto</string>
-  <string name="projects_confirm_reset_message">Tem a certeza que quer fazer reset</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Reset</string>
-  <string name="projects_confirm_remove_acctmgr_title">Desabilitar gestor de conta</string>
-  <string name="projects_confirm_remove_acctmgr_message">Tem a certeza que quer parar de utilizar o</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Desabilitar</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Nome da Tarefa:</string>
-  <string name="tasks_header_elapsed_time">Tempo decorrido:</string>
-  <string name="tasks_header_project_paused">(suspenso)</string>
-  <string name="tasks_header_deadline">Data Limite:</string>
-  <string name="tasks_result_new">novo</string>
-  <string name="tasks_result_files_downloading">à espera para transferir</string>
-  <string name="tasks_result_files_downloaded">transferência concluída</string>
-  <string name="tasks_result_compute_error">erro de computação</string>
-  <string name="tasks_result_files_uploading">a fazer upload</string>
-  <string name="tasks_result_files_uploaded">upload concluído</string>
-  <string name="tasks_result_aborted">abortado</string>
-  <string name="tasks_result_upload_failed">upload falhado</string>
-  <string name="tasks_active_uninitialized">pronto</string>
-  <string name="tasks_active_executing">em execução</string>
-  <string name="tasks_active_suspended">suspenso</string>
-  <string name="tasks_active_abort_pending">a suspender</string>
-  <string name="tasks_active_quit_pending">a suspender</string>
-  <string name="tasks_custom_suspended_via_gui">suspenso</string>
-  <string name="tasks_custom_project_suspended_via_gui">projecto suspenso</string>
-  <string name="tasks_custom_ready_to_report">pronto para reportar</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Abortar tarefa?</string>
-  <string name="confirm_abort_task_message">Abortar tarefa:</string>
-  <string name="confirm_abort_task_confirm">Abortar</string>
-  <string name="confirm_cancel">Cancelar</string>
-  <string name="confirm_image_desc">Diálogo de confirmação</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">A ler transferências...</string>
-  <string name="trans_upload">Upload</string>
-  <string name="trans_download">Transferir</string>
-  <string name="trans_retryin">tentar novamente em</string>
-  <string name="trans_failed">falhou</string>
-  <string name="trans_suspended">suspenso</string>
-  <string name="trans_active">activo</string>
-  <string name="trans_pending">pendente</string>
-  <string name="trans_projectbackoff">projecto em backoff</string>
-  <string name="trans_header_name">Ficheiro:</string>
-  <string name="trans_control_retry">Tentar transferências novamente</string>
-  <string name="confirm_abort_trans_title">Abortar transferência?</string>
-  <string name="confirm_abort_trans_message">Abortar Ficheiro:</string>
-  <string name="confirm_abort_trans_confirm">Abortar</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">A ler notícias...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">A carregar mensagens do log...</string>
-  <string name="eventlog_client_header">Mensagens do Cliente</string>
-  <string name="eventlog_gui_header">Mensagens da GUI</string>
-  <string name="eventlog_copy_toast">Log copiado para a área de transferência.</string>
-  <string name="eventlog_email_subject">Log de Eventos para o BOINC no Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Computação suspensa.</string>
-  <string name="suspend_batteries">Conecte o seu dispositivo a um carregador para continuar a computação.</string>
-  <string name="suspend_screen_on">Desligar ecrã para continuar a computação.</string>
-  <string name="suspend_useractive">O utilizador está activo</string>
-  <string name="suspend_tod">Fora da janela de tempo para a computação.</string>
-  <string name="suspend_bm">O BOINC está a executar testes de performance no seu dispositivo...</string>
-  <string name="suspend_disksize">Sem espaço em disco.</string>
-  <string name="suspend_cputhrottle">Estrangulamento de CPU agendado.</string>
-  <string name="suspend_noinput">Sem actividade recente do utilizador.</string>
-  <string name="suspend_delay">Atraso de inicialização.</string>
-  <string name="suspend_exclusiveapp">Uma aplicação exclusiva está em execução.</string>
-  <string name="suspend_cpu">O seu dispositivo está ocupado com outras aplicações</string>
-  <string name="suspend_network_quota">O BOINC atingiu a transferência limite diária de rede.</string>
-  <string name="suspend_os">Parado pelo Android.</string>
-  <string name="suspend_wifi">Não conectado a um WiFi.</string>
-  <string name="suspend_battery_charging">A aguardar que a bateria seja carregada</string>
-  <string name="suspend_battery_charging_long">A computação será resumida quando a carga da bateria chegar a</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">actualmente</string>
-  <string name="suspend_battery_overheating">À espera que a bateria arrefeça</string>
-  <string name="suspend_user_req">A resumir computação...</string>
-  <string name="suspend_network_user_req">manualmente.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Solicitado pelo utilizador</string>
-  <string name="rpcreason_needwork">Obter trabalho</string>
-  <string name="rpcreason_resultsdue">Reportar tarefas concluídas</string>
-  <string name="rpcreason_trickleup">Enviar mensagem de aviso</string>
-  <string name="rpcreason_acctmgrreq">Solicitado pelo gestor de conta</string>
-  <string name="rpcreason_init">Inicialização do projecto</string>
-  <string name="rpcreason_projectreq">Solicitado pelo projecto</string>
-  <string name="rpcreason_unknown">Razão desconhecida</string>
-  <!--menu-->
-  <string name="menu_refresh">Recarregar</string>
-  <string name="menu_emailto">Enviar como e-mail</string>
-  <string name="menu_copy">Copiar para a Área de Transferência</string>
-  <string name="menu_eventlog">Log de Eventos</string>
-  <string name="menu_exit">Sair do BOINC</string>
-  <string name="menu_run_mode_disable">Suspender</string>
-  <string name="menu_run_mode_enable">Resumir</string>
-  <string name="menu_about">Acerca de</string>
-  <string name="menu_help">Ajuda</string>
-  <!--about dialog-->
-  <string name="about_button">Regressar</string>
-  <string name="about_title">Acerca de</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versão</string>
-  <string name="about_name_long">Infraestrutura Aberta Berkeley para a Rede de Computação</string>
-  <string name="about_copyright">\u00A9 2003-2014 Universidade da Califórnia, Berkeley</string>
-  <string name="about_copyright_reserved">Todos os Direitos Reservados.</string>
-  <string name="about_credits">Agradecimentos ao Instituto Max Planck de Física Gravitacional, IBM e HTC pelo seu suporte.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Notícia nova de</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">notícias novas</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Aplicação de computação voluntária detectada</string>
-  <string name="nonexcl_dialog_text">Outra aplicação de computação voluntária está a ser executada neste aparelho. Apenas uma pode correr de cada vez.</string>
-  <string name="nonexcl_dialog_exit">Sair</string>
-  <!--social integration-->
-  <string name="social_invite_button">Convidar amigos</string>
-  <string name="social_invite_intent_title">Como quer partilhar?</string>
-  <string name="social_invite_content_title">Estou a fazer ciência no meu smartphone!</string>
-  <string name="social_invite_content_body">Estou a utilizar o meu %1$s para realizar computação para a ciência. Também podes! Faz a transferência da aplicação de: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-ro/strings.xml b/android/BOINC/res/values-ro/strings.xml
deleted file mode 100644
index 1fe6718..0000000
--- a/android/BOINC/res/values-ro/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Se încarcă! Vă rugăm aşteptaţi…</string>
-  <string name="generic_button_continue">Continuă</string>
-  <string name="generic_button_finish">Finalizează</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Selectați proiecte științifice la care doriți să contribuiți:</string>
-  <string name="attachproject_list_header">Alegeţi un proiect:</string>
-  <string name="attachproject_list_manual_button">Adăugaţi proiect prin URL</string>
-  <string name="attachproject_list_manual_dialog_title">Introduceţi URL proiect:</string>
-  <string name="attachproject_list_manual_dialog_button">Adaugă proiect</string>
-  <string name="attachproject_list_manual_no_url">Vă rugăm introduceţi URL proiect</string>
-  <string name="attachproject_list_acctmgr_button">Adaugă manager de cont</string>
-  <string name="attachproject_list_no_internet">Nu există conexiune la Internet</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Introduceți informațiile contului</string>
-  <string name="attachproject_credential_input_desc">Introduceți informațiile contului pentru proiectele selectate:</string>
-  <string name="attachproject_credential_input_show_pwd">Arată parola</string>
-  <string name="attachproject_individual_credential_input">Atașează proiecte individual</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Au fost probleme la atașarea proiectelor științifice:</string>
-  <string name="attachproject_conflict_undefined">Nu s-a putut conecta</string>
-  <string name="attachproject_conflict_not_unique">Contul există cu o altă parolă</string>
-  <string name="attachproject_conflict_bad_password">Parolă incorectă</string>
-  <string name="attachproject_conflict_unknown_user">Contul nu există</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Contul nu există, vizitați site-ul proiectului pentru înregistrare</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Se atașează</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Sugestie</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Cum să contribuiți:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Conectați-vă la WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Conectați Încărcătorul</string>
-  <string name="attachproject_hint_contribtion_screen">3. Închideți Ecranul</string>
-  <string name="attachproject_hint_projectwebsite_header">Vizitați site-urile proiectelor pentru:</string>
-  <string name="attachproject_hint_projectwebsite_science">Învățați mai multe despre știință</string>
-  <string name="attachproject_hint_projectwebsite_stats">Vizualizați statisticile contribuției</string>
-  <string name="attachproject_hint_projectwebsite_community">Intrați în contact cu alți voluntari</string>
-  <string name="attachproject_hint_platforms_header">BOINC este disponibil și pentru calculatorul sau laptop-ul dumneavoastră, vizitați boinc.berkeley.edu pentru a afla mai multe.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Se contactează serverul proiectului…</string>
-  <string name="attachproject_login_image_description">Logo proiect.</string>
-  <string name="attachproject_login_header_general_area">Zona generală:</string>
-  <string name="attachproject_login_header_specific_area">Zona specifică:</string>
-  <string name="attachproject_login_header_description">Descriere:</string>
-  <string name="attachproject_login_header_home">Acasă:</string>
-  <string name="attachproject_login_header_url">Site web:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Acest proiect suportă dispozitive Android</string>
-  <string name="attachproject_login_platform_not_supported">Acest proiect nu suportă dispozitive Android</string>
-  <string name="attachproject_login_category_terms_of_use">Condiţii de utilizare pentru</string>
-  <string name="attachproject_login_accept_terms_of_use">Prin crearea unui cont la acest proiect, acceptaţi condiţiile de utilizare aşa cum sunt prezentate mai sus.</string>
-  <string name="attachproject_login_category_login">Conectaţi-vă cu un cont existent</string>
-  <string name="attachproject_login_header_id_email">eMail:</string>
-  <string name="attachproject_login_header_id_name">Nume:</string>
-  <string name="attachproject_login_header_pwd">Parolă:</string>
-  <string name="attachproject_login_category_creation">Nou pentru</string>
-  <string name="attachproject_login_header_creation_enabled">Înregistraţi un cont pentru a participa:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Vizitaţi website-ul proiectului pentru a crea un cont:</string>
-  <string name="attachproject_login_header_creation_disabled">Proiectul nu permite momentan crearea de noi conturi!</string>
-  <string name="attachproject_login_button_registration">Înregistrează</string>
-  <string name="attachproject_login_button_login">Autentificare</string>
-  <string name="attachproject_login_button_forgotpw">Aţi Uitat Parola</string>
-  <string name="attachproject_login_error_toast">Nu s-a putut contacta proiectul!</string>
-  <string name="attachproject_login_attached">Atașat</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Înregistrare cont pentru</string>
-  <string name="attachproject_registration_header_url">Proiect:</string>
-  <string name="attachproject_registration_header_email">eMail:</string>
-  <string name="attachproject_registration_header_username">Nume:</string>
-  <string name="attachproject_registration_header_teamname">Echipă:</string>
-  <string name="attachproject_registration_header_pwd">Parolă:</string>
-  <string name="attachproject_registration_header_pwd_confirm">... Reintroduceţi:</string>
-  <string name="attachproject_registration_button">Creează</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Folosiți un manager de cont BOINC pentru a adăuga și gestiona proiecte multiple</string>
-  <string name="attachproject_acctmgr_header">Adaugă manager de cont</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Utilizator:</string>
-  <string name="attachproject_acctmgr_header_pwd">Parolă:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... Reintroduceţi:</string>
-  <string name="attachproject_acctmgr_button">Adaugă</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Utilizatorul nu a fost găsit</string>
-  <string name="attachproject_error_short_pwd">Parola este prea scurtă</string>
-  <string name="attachproject_error_no_internet">Conexiunea a eșuat</string>
-  <string name="attachproject_error_pwd_no_match">Parolele nu sunt identice</string>
-  <string name="attachproject_error_pwd_no_retype">Introduceți parola din nou</string>
-  <string name="attachproject_error_no_url">Introduceți URL</string>
-  <string name="attachproject_error_no_email">Vă rugăm introduceţi adresa dumneavoastră de email</string>
-  <string name="attachproject_error_no_pwd">Vă rugăm introduceţi o parolă</string>
-  <string name="attachproject_error_no_name">Vă rugăm introduceţi numele de utilizator</string>
-  <string name="attachproject_error_unknown">eșuat</string>
-  <string name="attachproject_error_bad_username">Nume utilizator refuzat</string>
-  <string name="attachproject_error_email_in_use">Adresa de email este deja utilizată</string>
-  <string name="attachproject_error_project_down">Proiectul este offline</string>
-  <string name="attachproject_error_email_bad_syntax">Adresa de email refuzată</string>
-  <string name="attachproject_error_bad_pwd">Parola refuzată</string>
-  <string name="attachproject_error_creation_disabled">Crearea de conturi este dezactivată la acest proiect</string>
-  <string name="attachproject_error_invalid_url">URL invalid</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Înapoi</string>
-  <string name="attachproject_working_finish_button">Finalizare</string>
-  <string name="attachproject_working_check_desc">Sucess</string>
-  <string name="attachproject_working_failed_desc">Eșuat</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Conectează</string>
-  <string name="attachproject_working_verify">Verificare cont</string>
-  <string name="attachproject_working_register">Înregistrează cont</string>
-  <string name="attachproject_working_login">Autentificare</string>
-  <string name="attachproject_working_acctmgr">Adaugă manager de cont</string>
-  <string name="attachproject_working_acctmgr_sync">Sincronizează</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Apăsați aici pentru a alege un proiect.</string>
-  <string name="main_error">Whooops</string>
-  <string name="main_error_long">...asta nu ar trebui să se întâmple!\nApăsaţi pe icoană pentru a încerca din nou.</string>
-  <string name="main_title_icon_desc">Icoană BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Stare</string>
-  <string name="tab_projects">Proiecte</string>
-  <string name="tab_tasks">Task-uri</string>
-  <string name="tab_transfers">Transferuri</string>
-  <string name="tab_preferences">Preferințe</string>
-  <string name="tab_notices">Atenționări</string>
-  <string name="tab_desc">Navigare</string>
-  <!--status strings-->
-  <string name="status_running">Se calculează</string>
-  <string name="status_running_long">Mulţumim pentru participare.</string>
-  <string name="status_paused">Suspendat</string>
-  <string name="status_idle">Nimic de făcut</string>
-  <string name="status_idle_long">Se aşteaptă task-uri…</string>
-  <string name="status_computing_disabled">Suspendat</string>
-  <string name="status_computing_disabled_long">Apăsaţi play pentru a relua calculele şi comunicarea în reţea.</string>
-  <string name="status_launching">Se pornește…</string>
-  <string name="status_noproject">Alegeţi un proiect în care să participaţi.</string>
-  <string name="status_closing">Se închide…</string>
-  <string name="status_benchmarking">Se măsoară performanţa…</string>
-  <string name="status_image_description">imagine proiect</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Se citest preferinţele…</string>
-  <string name="prefs_submit_button">Salvează</string>
-  <string name="prefs_dialog_title">Introduceți noua valoare:</string>
-  <string name="prefs_dialog_title_selection">Selectați:</string>
-  <string name="prefs_category_general">Generale</string>
-  <string name="prefs_category_network">Reţea</string>
-  <string name="prefs_category_power">Energie</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Stocare</string>
-  <string name="prefs_category_memory">Memorie</string>
-  <string name="prefs_category_debug">Depanare</string>
-  <string name="prefs_show_advanced_header">Arată preferinţe şi control avansat…</string>
-  <string name="prefs_suspend_when_screen_on">Opriți calculele când ecranul este aprins</string>
-  <string name="prefs_stationary_device_mode_header">Mod echipament staționar</string>
-  <string name="prefs_stationary_device_mode_description">Permite calculele indiferent de preferințele de sursă de alimentare. Activați doar dacă echipamentul nu are baterie.</string>
-  <string name="prefs_power_source_header">Surse de alimentare pentru calcule</string>
-  <string name="prefs_power_source_description">Selectează sursele de alimentare pe care BOINC le poate utiliza pentru calcule.</string>
-  <string name="prefs_power_source_ac">Priză</string>
-  <string name="prefs_power_source_usb">Conexiune USB</string>
-  <string name="prefs_power_source_wireless">Încărcător fără fir</string>
-  <string name="prefs_power_source_battery">Baterie</string>
-  <string name="battery_charge_min_pct_header">Nivel minim baterie</string>
-  <string name="battery_charge_min_pct_description">BOINC suspendă calculele când nivelul bateriei este sub cel definit.</string>
-  <string name="battery_temperature_max_header">Temperatură maximă baterie</string>
-  <string name="battery_temperature_max_description">BOINC suspendă calculele când temperatura bateriei depăşeşte nivelul definit. Nu este recomandat să modificaţi această valoare.</string>
-  <string name="prefs_disk_max_pct_header">Spaţiu de stocare maxim utilizat</string>
-  <string name="prefs_disk_max_pct_description">Ce procent din spaţiul de stocare al dispozitivului dumneavoastră are voie să fie utilizat de BOINC?</string>
-  <string name="prefs_disk_min_free_gb_header">Spaţiu stocare minim liber</string>
-  <string name="prefs_disk_min_free_gb_description">Cât din spaţiul de stocare al dispozitivului trebuie să rămână liber?</string>
-  <string name="prefs_disk_access_interval_header">Interval acces</string>
-  <string name="prefs_disk_access_interval_description">Sugerează un interval între accesurile la disc</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Limită zilnică transfer</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Limitează traficul zilnic realizat de BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Transferă task-uri doar pe WiFi</string>
-  <string name="prefs_autostart_header">Pornire automată</string>
-  <string name="prefs_show_notification_notices_header">Arată notificare pentru noi atenționări</string>
-  <string name="prefs_show_notification_suspended_header">Arată notificare când e suspendat</string>
-  <string name="prefs_cpu_number_cpus_header">Nuclee CPU folosite</string>
-  <string name="prefs_cpu_number_cpus_description">Limitează numărul de nuclee CPU folosite de BOINC pentru calcule.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pauză la utilizare CPU peste</string>
-  <string name="prefs_cpu_other_load_suspension_description">Determină când BOINC întrerupe calculele din cauza utilizării CPU a altor aplicaţii.</string>
-  <string name="prefs_cpu_time_max_header">limită CPU</string>
-  <string name="prefs_cpu_time_max_description">Limitează timpul CPU pe care îl foloseşte BOINC pentru calcule.</string>
-  <string name="prefs_memory_max_idle_header">Limită RAM</string>
-  <string name="prefs_memory_max_idle_description">Limitează cantitatea de RAM pe care task-urile au voie să o ocupe.</string>
-  <string name="prefs_client_log_flags_header">Flag-uri jurnal client BOINC</string>
-  <string name="prefs_gui_log_level_header">Nivel jurnal GUI</string>
-  <string name="prefs_gui_log_level_description">Specificaţi nivelul mesajelor jurnal GUI.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">sec</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Se citesc proiectele…</string>
-  <string name="projects_add">Adaugă proiect</string>
-  <string name="projects_icon">Icoană proiect</string>
-  <string name="projects_credits_header">Credit:</string>
-  <string name="projects_credits_host_header">(pe acest dispozitiv)</string>
-  <string name="projects_credits_user_header">(total)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Suspendat de utilizator</string>
-  <string name="projects_status_dontrequestmorework">Nu se preiau noi task-uri</string>
-  <string name="projects_status_ended">Proiect finalizat - OK pentru ştergere</string>
-  <string name="projects_status_detachwhendone">Se va şterge când se finalizează task-urile</string>
-  <string name="projects_status_schedrpcpending">Cerere planificator în aşteptare</string>
-  <string name="projects_status_schedrpcinprogress">Cerere planificator în curs</string>
-  <string name="projects_status_trickleuppending">Mesaj trickle up în aşteptare</string>
-  <string name="projects_status_backoff">Comunicaţie planificată în:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Comenzi proiect:</string>
-  <string name="projects_control_visit_website">Vizitați pagina web</string>
-  <string name="projects_control_update">Actualizează</string>
-  <string name="projects_control_remove">Șterge</string>
-  <string name="projects_control_suspend">Suspendă</string>
-  <string name="projects_control_resume">Reia</string>
-  <string name="projects_control_nonewtasks">Nu sunt task-uri noi</string>
-  <string name="projects_control_allownewtasks">Permite noi task-uri</string>
-  <string name="projects_control_reset">Resetează</string>
-  <string name="projects_control_dialog_title_acctmgr">Comenzi manager de cont:</string>
-  <string name="projects_control_sync_acctmgr">Sincronizează</string>
-  <string name="projects_control_remove_acctmgr">Dezactivează</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Şterge proiect?</string>
-  <string name="projects_confirm_detach_message">Sunteţi sigur că doriţi să ştergeţi</string>
-  <string name="projects_confirm_detach_message2">din BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Șterge</string>
-  <string name="projects_confirm_reset_title">Resetează proiect</string>
-  <string name="projects_confirm_reset_message">Sunteţi sigur că doriţi să resetaţi</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Resetează</string>
-  <string name="projects_confirm_remove_acctmgr_title">Dezactivează manager de cont</string>
-  <string name="projects_confirm_remove_acctmgr_message">Sunteţi sigur că doriţi să nu mai folosiţi</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Dezactivează</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Nume Task:</string>
-  <string name="tasks_header_elapsed_time">Timp scurs:</string>
-  <string name="tasks_header_project_paused">(suspendat)</string>
-  <string name="tasks_header_deadline">Termen limită:</string>
-  <string name="tasks_result_new">nou</string>
-  <string name="tasks_result_files_downloading">se aşteaptă descărcarea</string>
-  <string name="tasks_result_files_downloaded">descărcare completă</string>
-  <string name="tasks_result_compute_error">eroare calcul</string>
-  <string name="tasks_result_files_uploading">se încarcă</string>
-  <string name="tasks_result_files_uploaded">încărcare completă</string>
-  <string name="tasks_result_aborted">abandonat</string>
-  <string name="tasks_result_upload_failed">încărcarea a eșuat</string>
-  <string name="tasks_active_uninitialized">gata</string>
-  <string name="tasks_active_executing">rulează</string>
-  <string name="tasks_active_suspended">suspendat</string>
-  <string name="tasks_active_abort_pending">se suspendă</string>
-  <string name="tasks_active_quit_pending">se suspendă</string>
-  <string name="tasks_custom_suspended_via_gui">suspendat</string>
-  <string name="tasks_custom_project_suspended_via_gui">proiect suspendat</string>
-  <string name="tasks_custom_ready_to_report">gata de raportare</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Abandonează task?</string>
-  <string name="confirm_abort_task_message">Abandonează task:</string>
-  <string name="confirm_abort_task_confirm">Abandonează</string>
-  <string name="confirm_cancel">Anulează</string>
-  <string name="confirm_image_desc">Dialog de confirmare</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Se citesc transferurile…</string>
-  <string name="trans_upload">Încarcă</string>
-  <string name="trans_download">Descarcă</string>
-  <string name="trans_retryin">reîncearcă în</string>
-  <string name="trans_failed">eşuat</string>
-  <string name="trans_suspended">suspendat</string>
-  <string name="trans_active">activ</string>
-  <string name="trans_pending">în așteptare</string>
-  <string name="trans_projectbackoff">revenire proiect</string>
-  <string name="trans_header_name">Fişier:</string>
-  <string name="trans_control_retry">Reîncearcă transferuri</string>
-  <string name="confirm_abort_trans_title">Abandonează transfer?</string>
-  <string name="confirm_abort_trans_message">Abandonează Fişier:</string>
-  <string name="confirm_abort_trans_confirm">Abandonează</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Se citesc atenţionările…</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Se încarcă mesajele din jurnal…</string>
-  <string name="eventlog_client_header">Mesaje Client</string>
-  <string name="eventlog_gui_header">Mesaje GUI</string>
-  <string name="eventlog_copy_toast">Jurnal copiat în clipboard.</string>
-  <string name="eventlog_email_subject">Jurnal Evenimente pentru BOINC pe Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Calcule suspendate.</string>
-  <string name="suspend_batteries">Conectaţi dispozitivul dumneavoastră la un încărcător pentru a continua calculele.</string>
-  <string name="suspend_screen_on">Închideți ecranul pentru a continua calculele.</string>
-  <string name="suspend_useractive">Utilizatorul este activ.</string>
-  <string name="suspend_tod">În afara intervalului de timp pentru calcule.</string>
-  <string name="suspend_bm">BOINC evaluează performanţa dispozitivului dumneavoastră…</string>
-  <string name="suspend_disksize">Nu mai există spaţiu pe disc.</string>
-  <string name="suspend_cputhrottle">CPU throttle planificat.</string>
-  <string name="suspend_noinput">Fără activitate recentă a utilizatorului.</string>
-  <string name="suspend_delay">Întârziere iniţializare.</string>
-  <string name="suspend_exclusiveapp">Rulează o aplicaţie exclusivă.</string>
-  <string name="suspend_cpu">Dispozitivul dumneavoastră este ocupat cu alte aplicaţii.</string>
-  <string name="suspend_network_quota">BOINC a atins limita de transfer prin reţea.</string>
-  <string name="suspend_os">Oprit de Android.</string>
-  <string name="suspend_wifi">Nu este conectat la WiFi.</string>
-  <string name="suspend_battery_charging">Se așteaptă încărcarea bateriei.</string>
-  <string name="suspend_battery_charging_long">Calculele vor fi reluate când bateria va fi încărcata</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">curent</string>
-  <string name="suspend_battery_overheating">Se aşteaptă să se răcească bateria</string>
-  <string name="suspend_user_req">Se reiau calculele…</string>
-  <string name="suspend_network_user_req">manual.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Cerut de utilizator</string>
-  <string name="rpcreason_needwork">Pentru a primi de lucru</string>
-  <string name="rpcreason_resultsdue">Pentru a raporta task-urile finalizate</string>
-  <string name="rpcreason_trickleup">Pentru a trimite mesaj trickle up</string>
-  <string name="rpcreason_acctmgrreq">Cerut de managerul de cont</string>
-  <string name="rpcreason_init">Iniţializare proiect</string>
-  <string name="rpcreason_projectreq">Cerut de proiect</string>
-  <string name="rpcreason_unknown">Motiv necunoscut</string>
-  <!--menu-->
-  <string name="menu_refresh">Reîncarcă</string>
-  <string name="menu_emailto">Trimite ca Email</string>
-  <string name="menu_copy">Copiază în Clipboard</string>
-  <string name="menu_eventlog">Jurnal Evenimente</string>
-  <string name="menu_exit">Închide BOINC</string>
-  <string name="menu_run_mode_disable">Suspendă</string>
-  <string name="menu_run_mode_enable">Reia</string>
-  <string name="menu_about">Despre</string>
-  <string name="menu_help">Ajutor</string>
-  <!--about dialog-->
-  <string name="about_button">Înapoi</string>
-  <string name="about_title">Despre</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Versiune</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">© 2003–2013 Universitatea din California, Berkeley.\nToate Drepturile Rezervate.</string>
-  <string name="about_copyright_reserved">Toate Drepturile Rezervate.</string>
-  <string name="about_credits">Mulțumiri Institutului Max Planck pentru Fizică Gravitațională, IBM Corporation și HTC Corporation pentru suportul lor.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Atenționare nouă de la</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">atenționări noi</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Aplicație calcule voluntare detectată</string>
-  <string name="nonexcl_dialog_text">O altă aplicație de calcule voluntare rulează pe acest echipament. Doar o singură versiune poate rula la un moment dat.</string>
-  <string name="nonexcl_dialog_exit">Ieșire</string>
-  <!--social integration-->
-  <string name="social_invite_button">Invitați prieteni</string>
-  <string name="social_invite_intent_title">Cum doriți să partajați?</string>
-  <string name="social_invite_content_title">Fac cercetări pe smartphone-ul meu!</string>
-  <string name="social_invite_content_body">Folosesc %1$s pentru a calcula pentru știință. Poți și tu! Descarcă aplicația de la: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-ru-rRU/strings.xml b/android/BOINC/res/values-ru-rRU/strings.xml
deleted file mode 100644
index 1c2aedf..0000000
--- a/android/BOINC/res/values-ru-rRU/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Загружается! Пожалуйста подождите…</string>
-  <string name="generic_button_continue">Продолжить</string>
-  <string name="generic_button_finish">Готово</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Выберите научные проекты, в которых Вы хотите принять участие:</string>
-  <string name="attachproject_list_header">Выберите проект:</string>
-  <string name="attachproject_list_manual_button">Добавить URL-адрес проекта</string>
-  <string name="attachproject_list_manual_dialog_title">Введите URL проекта:</string>
-  <string name="attachproject_list_manual_dialog_button">Добавить проект</string>
-  <string name="attachproject_list_manual_no_url">Пожалуйста, введите URL проекта</string>
-  <string name="attachproject_list_acctmgr_button">Добавить менеджер проектов</string>
-  <string name="attachproject_list_no_internet">Нет подключения к Интернету</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Ввести учётную информацию</string>
-  <string name="attachproject_credential_input_desc">Введите учётную информацию для выбранных проектов:</string>
-  <string name="attachproject_credential_input_show_pwd">Показать пароль</string>
-  <string name="attachproject_individual_credential_input">Подключиться к проектам по отдельности</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Возникли проблемы с подключением к научным проектам:</string>
-  <string name="attachproject_conflict_undefined">Не удалось подключиться</string>
-  <string name="attachproject_conflict_not_unique">Учётная запись существует с другим паролем</string>
-  <string name="attachproject_conflict_bad_password">Пароль неверен</string>
-  <string name="attachproject_conflict_unknown_user">Учётная запись не существует</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Учётная запись не существует, для регистрации посетите веб-сайт проекта</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Подключение</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Подсказка</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Как помочь:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Подключиться к Wi-Fi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Подключить зарядное устройство</string>
-  <string name="attachproject_hint_contribtion_screen">3. Отключить экран</string>
-  <string name="attachproject_hint_projectwebsite_header">Посетить веб-сайты проектов для:</string>
-  <string name="attachproject_hint_projectwebsite_science">Узнать больше о науке</string>
-  <string name="attachproject_hint_projectwebsite_stats">Посмотреть статистику участия</string>
-  <string name="attachproject_hint_projectwebsite_community">Общаться с другими участниками</string>
-  <string name="attachproject_hint_platforms_header">BOINC также доступен для вашего компьютера или ноутбука, посетите boinc.berkeley.edu чтобы узнать больше.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Соединение с сервером проекта…</string>
-  <string name="attachproject_login_image_description">Логотип проекта.</string>
-  <string name="attachproject_login_header_general_area">Основная область:</string>
-  <string name="attachproject_login_header_specific_area">Специализация:</string>
-  <string name="attachproject_login_header_description">Описание:</string>
-  <string name="attachproject_login_header_home">Владелец:</string>
-  <string name="attachproject_login_header_url">Веб-сайт:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Этот проект поддерживает Android-устройства</string>
-  <string name="attachproject_login_platform_not_supported">Этот проект не поддерживает устройства на базе Android</string>
-  <string name="attachproject_login_category_terms_of_use">Условия использования для</string>
-  <string name="attachproject_login_accept_terms_of_use">Создавая учётную запись в этом проекте, вы принимаете условия использования, которые показаны выше.</string>
-  <string name="attachproject_login_category_login">Войти с существующей учётной записью</string>
-  <string name="attachproject_login_header_id_email">Электронная почта:</string>
-  <string name="attachproject_login_header_id_name">Имя:</string>
-  <string name="attachproject_login_header_pwd">Пароль:</string>
-  <string name="attachproject_login_category_creation">Впервые в</string>
-  <string name="attachproject_login_header_creation_enabled">Зарегистрировать учётную запись для участия:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Посетить веб-сайт проекта для создания учётной записи:</string>
-  <string name="attachproject_login_header_creation_disabled">Этот проект в данный момент не позволяет создавать новые учётные записи.</string>
-  <string name="attachproject_login_button_registration">Зарегистрироваться</string>
-  <string name="attachproject_login_button_login">Войти</string>
-  <string name="attachproject_login_button_forgotpw">Восстановить пароль</string>
-  <string name="attachproject_login_error_toast">Сбой при установке связи с проектом!</string>
-  <string name="attachproject_login_attached">Подключен</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Регистрация учётной записи для</string>
-  <string name="attachproject_registration_header_url">Проект:</string>
-  <string name="attachproject_registration_header_email">Электронная почта:</string>
-  <string name="attachproject_registration_header_username">Имя:</string>
-  <string name="attachproject_registration_header_teamname">Команда:</string>
-  <string name="attachproject_registration_header_pwd">Пароль:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Повторите:</string>
-  <string name="attachproject_registration_button">Создать</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Используйте менеджер проектов BOINC, чтобы добавить и управлять несколькими проектами</string>
-  <string name="attachproject_acctmgr_header">Добавить менеджер проектов</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Пользователь:</string>
-  <string name="attachproject_acctmgr_header_pwd">Пароль:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Повторите:</string>
-  <string name="attachproject_acctmgr_button">Добавить</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Пользователь не найден</string>
-  <string name="attachproject_error_short_pwd">Пароль слишком короткий</string>
-  <string name="attachproject_error_no_internet">Сбой подключения</string>
-  <string name="attachproject_error_pwd_no_match">Пароли не совпадают</string>
-  <string name="attachproject_error_pwd_no_retype">Пожалуйста, введите пароль ещё раз</string>
-  <string name="attachproject_error_no_url">Введите URL</string>
-  <string name="attachproject_error_no_email">Введите адрес электронной почты</string>
-  <string name="attachproject_error_no_pwd">Введите пароль</string>
-  <string name="attachproject_error_no_name">Введите имя пользователя</string>
-  <string name="attachproject_error_unknown">неудача</string>
-  <string name="attachproject_error_bad_username">Имя пользователя не принято</string>
-  <string name="attachproject_error_email_in_use">Адрес электронной почты уже используется</string>
-  <string name="attachproject_error_project_down">Проект выключен</string>
-  <string name="attachproject_error_email_bad_syntax">Адрес электронной почты не принят</string>
-  <string name="attachproject_error_bad_pwd">Пароль не принят</string>
-  <string name="attachproject_error_creation_disabled">Создание учётной записи в данном проекте отключено</string>
-  <string name="attachproject_error_invalid_url">Неправильный адрес (URL)</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Назад</string>
-  <string name="attachproject_working_finish_button">Готово</string>
-  <string name="attachproject_working_check_desc">Успешно</string>
-  <string name="attachproject_working_failed_desc">Неудачно</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Подключиться</string>
-  <string name="attachproject_working_verify">Проверить учётную запись</string>
-  <string name="attachproject_working_register">Зарегистрировать учётную запись</string>
-  <string name="attachproject_working_login">Войти</string>
-  <string name="attachproject_working_acctmgr">Добавить менеджер проектов</string>
-  <string name="attachproject_working_acctmgr_sync">Синхронизировать</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Нажмите здесь, чтобы выбрать проект.</string>
-  <string name="main_error">Упс</string>
-  <string name="main_error_long">…этого не должно было произойти!\nНажмите на значок BOINC, чтобы попробовать ещё раз.</string>
-  <string name="main_title_icon_desc">Значок BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Статус</string>
-  <string name="tab_projects">Проекты</string>
-  <string name="tab_tasks">Задания</string>
-  <string name="tab_transfers">Передачи</string>
-  <string name="tab_preferences">Настройки</string>
-  <string name="tab_notices">Уведомления</string>
-  <string name="tab_desc">Навигация</string>
-  <!--status strings-->
-  <string name="status_running">Выполнение расчётов</string>
-  <string name="status_running_long">Спасибо за участие.</string>
-  <string name="status_paused">Приостановлено</string>
-  <string name="status_idle">Нечего делать</string>
-  <string name="status_idle_long">Ожидание заданий…</string>
-  <string name="status_computing_disabled">Приостановлено</string>
-  <string name="status_computing_disabled_long">Нажмите кнопку Play для возобновления расчётов и передачи данных.</string>
-  <string name="status_launching">Запуск…</string>
-  <string name="status_noproject">Выбрать проект для участия.</string>
-  <string name="status_closing">Закрытие…</string>
-  <string name="status_benchmarking">Тестирование производительности…</string>
-  <string name="status_image_description">изображение проекта</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Чтение настроек…</string>
-  <string name="prefs_submit_button">Сохранить</string>
-  <string name="prefs_dialog_title">Введите новое значение:</string>
-  <string name="prefs_dialog_title_selection">Выбрать:</string>
-  <string name="prefs_category_general">Основные</string>
-  <string name="prefs_category_network">Сеть</string>
-  <string name="prefs_category_power">Питание</string>
-  <string name="prefs_category_cpu">Процессор</string>
-  <string name="prefs_category_storage">Диск</string>
-  <string name="prefs_category_memory">Память</string>
-  <string name="prefs_category_debug">Отладка</string>
-  <string name="prefs_show_advanced_header">Показать дополнительные настройки и элементы управления…</string>
-  <string name="prefs_suspend_when_screen_on">Приостановить вычисления, когда экран включён</string>
-  <string name="prefs_stationary_device_mode_header">Стационарный режим работы устройства</string>
-  <string name="prefs_stationary_device_mode_description">Разрешает вычисления независимо от настроек Питания. Включать только в том случае, если устройство не оснащено аккумулятором.</string>
-  <string name="prefs_power_source_header">Источники питания для вычислений</string>
-  <string name="prefs_power_source_description">Выбор источников питания, которые BOINC может использовать для вычислений.</string>
-  <string name="prefs_power_source_ac">Розетки</string>
-  <string name="prefs_power_source_usb">USB-подключение</string>
-  <string name="prefs_power_source_wireless">Беспроводное зарядное устройство</string>
-  <string name="prefs_power_source_battery">Аккумулятор</string>
-  <string name="battery_charge_min_pct_header">Мин. уровень заряда батареи</string>
-  <string name="battery_charge_min_pct_description">BOINC приостановит расчёты, когда заряд батареи будет ниже указанного уровня.</string>
-  <string name="battery_temperature_max_header">Макс. температура батареи</string>
-  <string name="battery_temperature_max_description">BOINC приостановит расчёты, когда температура батареи превысит указанный уровень. Не рекомендуется менять это значение.</string>
-  <string name="prefs_disk_max_pct_header">Макс. используемое пространство памяти</string>
-  <string name="prefs_disk_max_pct_description">Сколько процентов от общего объёма памяти вашего устройства BOINC может использовать?</string>
-  <string name="prefs_disk_min_free_gb_header">Мин. свободное пространство</string>
-  <string name="prefs_disk_min_free_gb_description">Какой объём памяти вашего устройства должен оставаться свободным?</string>
-  <string name="prefs_disk_access_interval_header">Период доступа</string>
-  <string name="prefs_disk_access_interval_description">Предлагает интервал между обращениями к диску</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Ежедневный предел передачи</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Ограничивает ежедневный трафик данных, вызванный BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Передавать задания только по WiFi</string>
-  <string name="prefs_autostart_header">Автозапуск</string>
-  <string name="prefs_show_notification_notices_header">Показывать уведомления о поступлении новых сообщений</string>
-  <string name="prefs_show_notification_suspended_header">Показывать уведомление когда приостановлено</string>
-  <string name="prefs_cpu_number_cpus_header">Используемые ядра процессора</string>
-  <string name="prefs_cpu_number_cpus_description">Ограничивает количество ядер процессора, которые использует BOINC для расчётов.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Пауза при использовании процессора выше</string>
-  <string name="prefs_cpu_other_load_suspension_description">Определяет, когда BOINC приостанавливает расчёты из-за использования процессора другими приложениями.</string>
-  <string name="prefs_cpu_time_max_header">Предельное время процессора</string>
-  <string name="prefs_cpu_time_max_description">Ограничивает время процессора, которое использует BOINC для расчётов.</string>
-  <string name="prefs_memory_max_idle_header">Ограничение ОЗУ</string>
-  <string name="prefs_memory_max_idle_description">Ограничивает объём ОЗУ, который задания могут занимать.</string>
-  <string name="prefs_client_log_flags_header">Флаги журнала клиента BOINC</string>
-  <string name="prefs_gui_log_level_header">Уровень журнала GUI</string>
-  <string name="prefs_gui_log_level_description">Задает уровень детализации сообщений журнала GUI.</string>
-  <string name="prefs_unit_mb">МБ</string>
-  <string name="prefs_unit_gb">ГБ</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">сек</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Чтение проектов…</string>
-  <string name="projects_add">Добавить проект</string>
-  <string name="projects_icon">Значок проекта</string>
-  <string name="projects_credits_header">Очки:</string>
-  <string name="projects_credits_host_header">(на этом устройстве)</string>
-  <string name="projects_credits_user_header">(всего)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Приостановлен пользователем</string>
-  <string name="projects_status_dontrequestmorework">Не запрашивать новые задания</string>
-  <string name="projects_status_ended">Проект завершён - ОК для удаления</string>
-  <string name="projects_status_detachwhendone">Будет удалён после завершения заданий</string>
-  <string name="projects_status_schedrpcpending">Запрос информации у планировщика</string>
-  <string name="projects_status_schedrpcinprogress">Производится запрос информации у планировщика</string>
-  <string name="projects_status_trickleuppending">Ожидание промежуточной отправки</string>
-  <string name="projects_status_backoff">Связь по расписанию:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Команды проекта:</string>
-  <string name="projects_control_visit_website">Посетить веб-сайт</string>
-  <string name="projects_control_update">Обновить</string>
-  <string name="projects_control_remove">Удалить</string>
-  <string name="projects_control_suspend">Приостановить</string>
-  <string name="projects_control_resume">Возобновить</string>
-  <string name="projects_control_nonewtasks">Не запрашивать задания</string>
-  <string name="projects_control_allownewtasks">Получать новые задания</string>
-  <string name="projects_control_reset">Сбросить</string>
-  <string name="projects_control_dialog_title_acctmgr">Команды менеджера проектов:</string>
-  <string name="projects_control_sync_acctmgr">Синхронизировать</string>
-  <string name="projects_control_remove_acctmgr">Отключить</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Удалить проект?</string>
-  <string name="projects_confirm_detach_message">Вы действительно хотите удалить</string>
-  <string name="projects_confirm_detach_message2">из BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Удалить</string>
-  <string name="projects_confirm_reset_title">Перезапустить проект</string>
-  <string name="projects_confirm_reset_message">Вы действительно хотите перезапустить</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Сбросить</string>
-  <string name="projects_confirm_remove_acctmgr_title">Отключить менеджер проектов</string>
-  <string name="projects_confirm_remove_acctmgr_message">Вы уверены, что хотите прекратить использование</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Отключить</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Название задания:</string>
-  <string name="tasks_header_elapsed_time">Затрачено времени:</string>
-  <string name="tasks_header_project_paused">(приостановлено)</string>
-  <string name="tasks_header_deadline">Крайний срок:</string>
-  <string name="tasks_result_new">новый</string>
-  <string name="tasks_result_files_downloading">ожидание загрузки</string>
-  <string name="tasks_result_files_downloaded">загрузка завершена</string>
-  <string name="tasks_result_compute_error">ошибка расчётов</string>
-  <string name="tasks_result_files_uploading">отправка</string>
-  <string name="tasks_result_files_uploaded">отправка завершена</string>
-  <string name="tasks_result_aborted">прервано</string>
-  <string name="tasks_result_upload_failed">сбой при отправке</string>
-  <string name="tasks_active_uninitialized">готово</string>
-  <string name="tasks_active_executing">выполняется</string>
-  <string name="tasks_active_suspended">приостановлено</string>
-  <string name="tasks_active_abort_pending">приостанавливается</string>
-  <string name="tasks_active_quit_pending">приостанавливается</string>
-  <string name="tasks_custom_suspended_via_gui">приостановлено</string>
-  <string name="tasks_custom_project_suspended_via_gui">проект приостановлен</string>
-  <string name="tasks_custom_ready_to_report">готово для подтверждения</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Прервать задание?</string>
-  <string name="confirm_abort_task_message">Прервать задание:</string>
-  <string name="confirm_abort_task_confirm">Прервать</string>
-  <string name="confirm_cancel">Отмена</string>
-  <string name="confirm_image_desc">Диалог подтверждения</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Чтение списка передач…</string>
-  <string name="trans_upload">Отправка</string>
-  <string name="trans_download">Загрузка</string>
-  <string name="trans_retryin">повтор через</string>
-  <string name="trans_failed">неудача</string>
-  <string name="trans_suspended">приостановлено</string>
-  <string name="trans_active">активна</string>
-  <string name="trans_pending">ожидает</string>
-  <string name="trans_projectbackoff">запрос к проекту отложен на</string>
-  <string name="trans_header_name">Файл:</string>
-  <string name="trans_control_retry">Повторить передачи</string>
-  <string name="confirm_abort_trans_title">Прервать передачу?</string>
-  <string name="confirm_abort_trans_message">Прервать файл:</string>
-  <string name="confirm_abort_trans_confirm">Прервать</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Чтение уведомлений…</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Загрузка сообщений журнала…</string>
-  <string name="eventlog_client_header">Сообщения клиента</string>
-  <string name="eventlog_gui_header">Сообщения GUI</string>
-  <string name="eventlog_copy_toast">Журнал скопирован в буфер обмена.</string>
-  <string name="eventlog_email_subject">Журнал событий для BOINC на Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Расчёты приостановлены.</string>
-  <string name="suspend_batteries">Подключите ваше устройство к зарядному устройству для продолжения расчётов.</string>
-  <string name="suspend_screen_on">Выключить экран для продолжения вычислений.</string>
-  <string name="suspend_useractive">Пользователь работает.</string>
-  <string name="suspend_tod">Закончилось выделенное время для расчётов.</string>
-  <string name="suspend_bm">BOINC измеряет производительность вашего устройства…</string>
-  <string name="suspend_disksize">Закончилось свободное место на диске.</string>
-  <string name="suspend_cputhrottle">Запланированное ограничение нагрузки процессора.</string>
-  <string name="suspend_noinput">Нет активности пользователя за последнее время.</string>
-  <string name="suspend_delay">Инициализация отложена.</string>
-  <string name="suspend_exclusiveapp">Выполняется привилегированное приложение.</string>
-  <string name="suspend_cpu">Ваше устройство занято другими приложениями.</string>
-  <string name="suspend_network_quota">BOINC достиг ограничения передачи данных по сети.</string>
-  <string name="suspend_os">Android остановил.</string>
-  <string name="suspend_wifi">Нет подключения к WiFi.</string>
-  <string name="suspend_battery_charging">Ожидание увеличения уровня заряда батареи.</string>
-  <string name="suspend_battery_charging_long">Расчёты возобновятся, когда заряд батареи достигнет</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">в данный момент</string>
-  <string name="suspend_battery_overheating">Ожидание охлаждения батареи</string>
-  <string name="suspend_user_req">Возобновление расчётов…</string>
-  <string name="suspend_network_user_req">вручную.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Запрошено пользователем</string>
-  <string name="rpcreason_needwork">Запросить задания</string>
-  <string name="rpcreason_resultsdue">Сообщить о завершённых заданиях</string>
-  <string name="rpcreason_trickleup">Отправить промежуточное сообщение</string>
-  <string name="rpcreason_acctmgrreq">Запрошено менеджером проектов</string>
-  <string name="rpcreason_init">Инициализация проекта</string>
-  <string name="rpcreason_projectreq">Запрошено проектом</string>
-  <string name="rpcreason_unknown">Неизвестная причина</string>
-  <!--menu-->
-  <string name="menu_refresh">Обновить</string>
-  <string name="menu_emailto">Отправить письмом</string>
-  <string name="menu_copy">Копировать в буфер обмена</string>
-  <string name="menu_eventlog">Журнал событий</string>
-  <string name="menu_exit">Выйти из BOINC</string>
-  <string name="menu_run_mode_disable">Приостановить</string>
-  <string name="menu_run_mode_enable">Возобновить</string>
-  <string name="menu_about">О</string>
-  <string name="menu_help">Справка</string>
-  <!--about dialog-->
-  <string name="about_button">Вернуться</string>
-  <string name="about_title">О</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Версия</string>
-  <string name="about_name_long">BOINC - Berkeley Open Infrastructure for Network Computing\nОткрытая Инфраструктура для Распределенных Вычислений университета Беркли</string>
-  <string name="about_copyright">© 2003-2013 Калифорнийский университет, Беркли.\nВсе права защищены.</string>
-  <string name="about_copyright_reserved">Все права защищены.</string>
-  <string name="about_credits">Спасибо за поддержку Институту гравитационной физики Макса Планка, Корпорации IBM и Корпорации HTC.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Новое уведомление от</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">новые уведомления</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Обнаружено приложение добровольных вычислений</string>
-  <string name="nonexcl_dialog_text">Ещё одно приложение добровольных вычислений работает на этом устройстве. Одновременно может работать только одна версия.</string>
-  <string name="nonexcl_dialog_exit">Выйти</string>
-  <!--social integration-->
-  <string name="social_invite_button">Пригласить друзей</string>
-  <string name="social_invite_intent_title">Как Вы хотите поделиться?</string>
-  <string name="social_invite_content_title">Я участвую в научных исследованиях на моём смартфоне!</string>
-  <string name="social_invite_content_body">Я использую мой %1$s для выполнения научных расчётов. Ты тоже можешь принять участие! Скачай приложение здесь: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-ru/strings.xml b/android/BOINC/res/values-ru/strings.xml
deleted file mode 100644
index 7c6d45a..0000000
--- a/android/BOINC/res/values-ru/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Загрузка! Пожалуйста подождите…</string>
-  <string name="generic_button_continue">Продолжить</string>
-  <string name="generic_button_finish">Готово</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Выберите научные проекты, в которых Вы хотите принять участие:</string>
-  <string name="attachproject_list_header">Выберите проект:</string>
-  <string name="attachproject_list_manual_button">Добавить URL-адрес проекта</string>
-  <string name="attachproject_list_manual_dialog_title">Введите URL проекта:</string>
-  <string name="attachproject_list_manual_dialog_button">Добавить проект</string>
-  <string name="attachproject_list_manual_no_url">Пожалуйста, введите URL проекта</string>
-  <string name="attachproject_list_acctmgr_button">Добавить менеджер проектов</string>
-  <string name="attachproject_list_no_internet">Нет подключения к Интернету</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Ввести учётную информацию</string>
-  <string name="attachproject_credential_input_desc">Введите учётную информацию для выбранных проектов:</string>
-  <string name="attachproject_credential_input_show_pwd">Показать пароль</string>
-  <string name="attachproject_individual_credential_input">Подключиться к проектам по отдельности</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Возникли проблемы с подключением к научным проектам:</string>
-  <string name="attachproject_conflict_undefined">Не удалось подключиться</string>
-  <string name="attachproject_conflict_not_unique">Учётная запись существует с другим паролем</string>
-  <string name="attachproject_conflict_bad_password">Пароль неверен</string>
-  <string name="attachproject_conflict_unknown_user">Учётная запись не существует</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Учётная запись не существует, для регистрации посетите веб-сайт проекта</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Подключение</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Подсказка</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Как помочь:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Подключиться к Wi-Fi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Подключить зарядное устройство</string>
-  <string name="attachproject_hint_contribtion_screen">3. Отключить экран</string>
-  <string name="attachproject_hint_projectwebsite_header">Посетить веб-сайты проектов для:</string>
-  <string name="attachproject_hint_projectwebsite_science">Узнать больше о науке</string>
-  <string name="attachproject_hint_projectwebsite_stats">Посмотреть статистику участия</string>
-  <string name="attachproject_hint_projectwebsite_community">Общаться с другими участниками</string>
-  <string name="attachproject_hint_platforms_header">BOINC также доступен для вашего компьютера или ноутбука, посетите boinc.berkeley.edu чтобы узнать больше.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Соединение с сервером проекта…</string>
-  <string name="attachproject_login_image_description">Логотип проекта.</string>
-  <string name="attachproject_login_header_general_area">Основная область:</string>
-  <string name="attachproject_login_header_specific_area">Специализация:</string>
-  <string name="attachproject_login_header_description">Описание:</string>
-  <string name="attachproject_login_header_home">Владелец:</string>
-  <string name="attachproject_login_header_url">Веб-сайт:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Этот проект поддерживает Android-устройства</string>
-  <string name="attachproject_login_platform_not_supported">Этот проект не поддерживает устройства на базе Android</string>
-  <string name="attachproject_login_category_terms_of_use">Условия использования для</string>
-  <string name="attachproject_login_accept_terms_of_use">Создавая учётную запись в этом проекте, вы принимаете условия использования, которые показаны выше.</string>
-  <string name="attachproject_login_category_login">Войти с существующей учётной записью</string>
-  <string name="attachproject_login_header_id_email">Электронная почта:</string>
-  <string name="attachproject_login_header_id_name">Имя:</string>
-  <string name="attachproject_login_header_pwd">Пароль:</string>
-  <string name="attachproject_login_category_creation">Впервые в</string>
-  <string name="attachproject_login_header_creation_enabled">Зарегистрировать учётную запись для участия:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Посетить веб-сайт проекта для создания учётной записи:</string>
-  <string name="attachproject_login_header_creation_disabled">Этот проект в данный момент не позволяет создавать новые учётные записи.</string>
-  <string name="attachproject_login_button_registration">Зарегистрироваться</string>
-  <string name="attachproject_login_button_login">Войти</string>
-  <string name="attachproject_login_button_forgotpw">Восстановить пароль</string>
-  <string name="attachproject_login_error_toast">Сбой при установке связи с проектом!</string>
-  <string name="attachproject_login_attached">Подключен</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Регистрация учётной записи для</string>
-  <string name="attachproject_registration_header_url">Проект:</string>
-  <string name="attachproject_registration_header_email">Электронная почта:</string>
-  <string name="attachproject_registration_header_username">Имя:</string>
-  <string name="attachproject_registration_header_teamname">Команда:</string>
-  <string name="attachproject_registration_header_pwd">Пароль:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Повторите:</string>
-  <string name="attachproject_registration_button">Создать</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Используйте менеджер проектов BOINC, чтобы добавить и управлять несколькими проектами</string>
-  <string name="attachproject_acctmgr_header">Добавить менеджер проектов</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Пользователь:</string>
-  <string name="attachproject_acctmgr_header_pwd">Пароль:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Повторите:</string>
-  <string name="attachproject_acctmgr_button">Добавить</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Пользователь не найден</string>
-  <string name="attachproject_error_short_pwd">Пароль слишком короткий</string>
-  <string name="attachproject_error_no_internet">Сбой подключения</string>
-  <string name="attachproject_error_pwd_no_match">Пароли не совпадают</string>
-  <string name="attachproject_error_pwd_no_retype">Пожалуйста, введите пароль ещё раз</string>
-  <string name="attachproject_error_no_url">Введите URL</string>
-  <string name="attachproject_error_no_email">Введите адрес электронной почты</string>
-  <string name="attachproject_error_no_pwd">Введите пароль</string>
-  <string name="attachproject_error_no_name">Введите имя пользователя</string>
-  <string name="attachproject_error_unknown">неудача</string>
-  <string name="attachproject_error_bad_username">Имя пользователя не принято</string>
-  <string name="attachproject_error_email_in_use">Адрес электронной почты уже используется</string>
-  <string name="attachproject_error_project_down">Проект выключен</string>
-  <string name="attachproject_error_email_bad_syntax">Адрес электронной почты не принят</string>
-  <string name="attachproject_error_bad_pwd">Пароль не принят</string>
-  <string name="attachproject_error_creation_disabled">Создание учётной записи в данном проекте отключено</string>
-  <string name="attachproject_error_invalid_url">Неправильный адрес (URL)</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Назад</string>
-  <string name="attachproject_working_finish_button">Готово</string>
-  <string name="attachproject_working_check_desc">Успешно</string>
-  <string name="attachproject_working_failed_desc">Неудачно</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Подключиться</string>
-  <string name="attachproject_working_verify">Проверить учётную запись</string>
-  <string name="attachproject_working_register">Зарегистрировать учётную запись</string>
-  <string name="attachproject_working_login">Войти</string>
-  <string name="attachproject_working_acctmgr">Добавить менеджер проектов</string>
-  <string name="attachproject_working_acctmgr_sync">Синхронизировать</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Нажмите здесь, чтобы выбрать проект.</string>
-  <string name="main_error">Упс</string>
-  <string name="main_error_long">…этого не должно было произойти!\nНажмите на значок BOINC, чтобы попробовать ещё раз.</string>
-  <string name="main_title_icon_desc">Значок BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Статус</string>
-  <string name="tab_projects">Проекты</string>
-  <string name="tab_tasks">Задания</string>
-  <string name="tab_transfers">Передачи</string>
-  <string name="tab_preferences">Настройки</string>
-  <string name="tab_notices">Уведомления</string>
-  <string name="tab_desc">Навигация</string>
-  <!--status strings-->
-  <string name="status_running">Выполнение расчётов</string>
-  <string name="status_running_long">Спасибо за участие.</string>
-  <string name="status_paused">Приостановлено</string>
-  <string name="status_idle">Нечего делать</string>
-  <string name="status_idle_long">Ожидание заданий…</string>
-  <string name="status_computing_disabled">Приостановлено</string>
-  <string name="status_computing_disabled_long">Нажмите кнопку Play для возобновления расчётов и передачи данных.</string>
-  <string name="status_launching">Запуск…</string>
-  <string name="status_noproject">Выбрать проект для участия.</string>
-  <string name="status_closing">Закрытие…</string>
-  <string name="status_benchmarking">Тестирование производительности…</string>
-  <string name="status_image_description">изображение проекта</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Чтение настроек…</string>
-  <string name="prefs_submit_button">Сохранить</string>
-  <string name="prefs_dialog_title">Введите новое значение:</string>
-  <string name="prefs_dialog_title_selection">Выбрать:</string>
-  <string name="prefs_category_general">Основные</string>
-  <string name="prefs_category_network">Сеть</string>
-  <string name="prefs_category_power">Питание</string>
-  <string name="prefs_category_cpu">Процессор</string>
-  <string name="prefs_category_storage">Диск</string>
-  <string name="prefs_category_memory">Память</string>
-  <string name="prefs_category_debug">Отладка</string>
-  <string name="prefs_show_advanced_header">Показать дополнительные настройки и элементы управления…</string>
-  <string name="prefs_suspend_when_screen_on">Приостановить вычисления, когда экран включён</string>
-  <string name="prefs_stationary_device_mode_header">Стационарный режим работы устройства</string>
-  <string name="prefs_stationary_device_mode_description">Разрешает вычисления независимо от настроек Питания. Включать только в том случае, если устройство не оснащено аккумулятором.</string>
-  <string name="prefs_power_source_header">Источники питания для вычислений</string>
-  <string name="prefs_power_source_description">Выбор источников питания, которые BOINC может использовать для вычислений.</string>
-  <string name="prefs_power_source_ac">Розетки</string>
-  <string name="prefs_power_source_usb">USB-подключение</string>
-  <string name="prefs_power_source_wireless">Беспроводное зарядное устройство</string>
-  <string name="prefs_power_source_battery">Аккумулятор</string>
-  <string name="battery_charge_min_pct_header">Мин. уровень заряда батареи</string>
-  <string name="battery_charge_min_pct_description">BOINC приостановит расчёты, когда заряд батареи будет ниже указанного уровня.</string>
-  <string name="battery_temperature_max_header">Макс. температура батареи</string>
-  <string name="battery_temperature_max_description">BOINC приостановит расчёты, когда температура батареи превысит указанный уровень. Не рекомендуется менять это значение.</string>
-  <string name="prefs_disk_max_pct_header">Макс. используемое пространство памяти</string>
-  <string name="prefs_disk_max_pct_description">Сколько процентов от общего объёма памяти вашего устройства BOINC может использовать?</string>
-  <string name="prefs_disk_min_free_gb_header">Мин. свободное пространство</string>
-  <string name="prefs_disk_min_free_gb_description">Какой объём памяти вашего устройства должен оставаться свободным?</string>
-  <string name="prefs_disk_access_interval_header">Период доступа</string>
-  <string name="prefs_disk_access_interval_description">Предлагает интервал между обращениями к диску</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Ежедневный предел передачи</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Ограничивает ежедневный трафик данных, вызванный BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Передавать задания только по WiFi</string>
-  <string name="prefs_autostart_header">Автозапуск</string>
-  <string name="prefs_show_notification_notices_header">Показывать уведомления о поступлении новых сообщений</string>
-  <string name="prefs_show_notification_suspended_header">Показывать уведомление когда приостановлено</string>
-  <string name="prefs_cpu_number_cpus_header">Используемые ядра процессора</string>
-  <string name="prefs_cpu_number_cpus_description">Ограничивает количество ядер процессора, которые использует BOINC для расчётов.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Пауза при использовании процессора выше</string>
-  <string name="prefs_cpu_other_load_suspension_description">Определяет, когда BOINC приостанавливает расчёты из-за использования процессора другими приложениями.</string>
-  <string name="prefs_cpu_time_max_header">Предельное время процессора</string>
-  <string name="prefs_cpu_time_max_description">Ограничивает время процессора, которое использует BOINC для расчётов.</string>
-  <string name="prefs_memory_max_idle_header">Ограничение ОЗУ</string>
-  <string name="prefs_memory_max_idle_description">Ограничивает объём ОЗУ, который задания могут занимать.</string>
-  <string name="prefs_client_log_flags_header">Флаги журнала клиента BOINC</string>
-  <string name="prefs_gui_log_level_header">Уровень журнала GUI</string>
-  <string name="prefs_gui_log_level_description">Задает уровень детализации сообщений журнала GUI.</string>
-  <string name="prefs_unit_mb">МБ</string>
-  <string name="prefs_unit_gb">ГБ</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">сек</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Чтение проектов…</string>
-  <string name="projects_add">Добавить проект</string>
-  <string name="projects_icon">Значок проекта</string>
-  <string name="projects_credits_header">Очки:</string>
-  <string name="projects_credits_host_header">(на этом устройстве)</string>
-  <string name="projects_credits_user_header">(всего)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Приостановлен пользователем</string>
-  <string name="projects_status_dontrequestmorework">Не запрашивать новые задания</string>
-  <string name="projects_status_ended">Проект завершён - ОК для удаления</string>
-  <string name="projects_status_detachwhendone">Будет удалён после завершения заданий</string>
-  <string name="projects_status_schedrpcpending">Запрос информации у планировщика</string>
-  <string name="projects_status_schedrpcinprogress">Производится запрос информации у планировщика</string>
-  <string name="projects_status_trickleuppending">Ожидание промежуточной отправки</string>
-  <string name="projects_status_backoff">Связь по расписанию:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Команды проекта:</string>
-  <string name="projects_control_visit_website">Посетить веб-сайт</string>
-  <string name="projects_control_update">Обновить</string>
-  <string name="projects_control_remove">Удалить</string>
-  <string name="projects_control_suspend">Приостановить</string>
-  <string name="projects_control_resume">Возобновить</string>
-  <string name="projects_control_nonewtasks">Не запрашивать задания</string>
-  <string name="projects_control_allownewtasks">Получать новые задания</string>
-  <string name="projects_control_reset">Сбросить</string>
-  <string name="projects_control_dialog_title_acctmgr">Команды менеджера проектов:</string>
-  <string name="projects_control_sync_acctmgr">Синхронизировать</string>
-  <string name="projects_control_remove_acctmgr">Отключить</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Удалить проект?</string>
-  <string name="projects_confirm_detach_message">Вы действительно хотите удалить</string>
-  <string name="projects_confirm_detach_message2">из BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Удалить</string>
-  <string name="projects_confirm_reset_title">Перезапустить проект</string>
-  <string name="projects_confirm_reset_message">Вы действительно хотите перезапустить</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Сбросить</string>
-  <string name="projects_confirm_remove_acctmgr_title">Отключить менеджер проектов</string>
-  <string name="projects_confirm_remove_acctmgr_message">Вы уверены, что хотите прекратить использование</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Отключить</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Название задания:</string>
-  <string name="tasks_header_elapsed_time">Затрачено времени:</string>
-  <string name="tasks_header_project_paused">(приостановлено)</string>
-  <string name="tasks_header_deadline">Крайний срок:</string>
-  <string name="tasks_result_new">новый</string>
-  <string name="tasks_result_files_downloading">ожидание загрузки</string>
-  <string name="tasks_result_files_downloaded">загрузка завершена</string>
-  <string name="tasks_result_compute_error">ошибка расчётов</string>
-  <string name="tasks_result_files_uploading">отправка</string>
-  <string name="tasks_result_files_uploaded">отправка завершена</string>
-  <string name="tasks_result_aborted">прервано</string>
-  <string name="tasks_result_upload_failed">сбой при отправке</string>
-  <string name="tasks_active_uninitialized">готово</string>
-  <string name="tasks_active_executing">выполняется</string>
-  <string name="tasks_active_suspended">приостановлено</string>
-  <string name="tasks_active_abort_pending">приостанавливается</string>
-  <string name="tasks_active_quit_pending">приостанавливается</string>
-  <string name="tasks_custom_suspended_via_gui">приостановлено</string>
-  <string name="tasks_custom_project_suspended_via_gui">проект приостановлен</string>
-  <string name="tasks_custom_ready_to_report">готово для подтверждения</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Прервать задание?</string>
-  <string name="confirm_abort_task_message">Прервать задание:</string>
-  <string name="confirm_abort_task_confirm">Прервать</string>
-  <string name="confirm_cancel">Отмена</string>
-  <string name="confirm_image_desc">Диалог подтверждения</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Чтение списка передач…</string>
-  <string name="trans_upload">Отправка</string>
-  <string name="trans_download">Загрузка</string>
-  <string name="trans_retryin">повтор через</string>
-  <string name="trans_failed">неудача</string>
-  <string name="trans_suspended">приостановлено</string>
-  <string name="trans_active">активна</string>
-  <string name="trans_pending">ожидает</string>
-  <string name="trans_projectbackoff">запрос к проекту отложен на</string>
-  <string name="trans_header_name">Файл:</string>
-  <string name="trans_control_retry">Повторить передачи</string>
-  <string name="confirm_abort_trans_title">Прервать передачу?</string>
-  <string name="confirm_abort_trans_message">Прервать файл:</string>
-  <string name="confirm_abort_trans_confirm">Прервать</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Чтение уведомлений…</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Загрузка сообщений журнала…</string>
-  <string name="eventlog_client_header">Сообщения клиента</string>
-  <string name="eventlog_gui_header">Сообщения GUI</string>
-  <string name="eventlog_copy_toast">Журнал скопирован в буфер обмена.</string>
-  <string name="eventlog_email_subject">Журнал событий для BOINC на Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Расчёты приостановлены.</string>
-  <string name="suspend_batteries">Подключите ваше устройство к зарядному устройству для продолжения расчётов.</string>
-  <string name="suspend_screen_on">Выключить экран для продолжения вычислений.</string>
-  <string name="suspend_useractive">Пользователь работает.</string>
-  <string name="suspend_tod">Закончилось выделенное время для расчётов.</string>
-  <string name="suspend_bm">BOINC измеряет производительность вашего устройства…</string>
-  <string name="suspend_disksize">Закончилось свободное место на диске.</string>
-  <string name="suspend_cputhrottle">Запланированное ограничение нагрузки процессора.</string>
-  <string name="suspend_noinput">Нет активности пользователя за последнее время.</string>
-  <string name="suspend_delay">Инициализация отложена.</string>
-  <string name="suspend_exclusiveapp">Выполняется привилегированное приложение.</string>
-  <string name="suspend_cpu">Ваше устройство занято другими приложениями.</string>
-  <string name="suspend_network_quota">BOINC достиг ограничения передачи данных по сети.</string>
-  <string name="suspend_os">Android остановил.</string>
-  <string name="suspend_wifi">Нет подключения к WiFi.</string>
-  <string name="suspend_battery_charging">Ожидание увеличения уровня заряда батареи.</string>
-  <string name="suspend_battery_charging_long">Расчёты возобновятся, когда заряд батареи достигнет</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">в данный момент</string>
-  <string name="suspend_battery_overheating">Ожидание охлаждения батареи</string>
-  <string name="suspend_user_req">Возобновление расчётов…</string>
-  <string name="suspend_network_user_req">вручную.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Запрошено пользователем</string>
-  <string name="rpcreason_needwork">Запросить задания</string>
-  <string name="rpcreason_resultsdue">Сообщить о завершённых заданиях</string>
-  <string name="rpcreason_trickleup">Отправить промежуточное сообщение</string>
-  <string name="rpcreason_acctmgrreq">Запрошено менеджером проектов</string>
-  <string name="rpcreason_init">Инициализация проекта</string>
-  <string name="rpcreason_projectreq">Запрошено проектом</string>
-  <string name="rpcreason_unknown">Неизвестная причина</string>
-  <!--menu-->
-  <string name="menu_refresh">Обновить</string>
-  <string name="menu_emailto">Отправить письмом</string>
-  <string name="menu_copy">Копировать в буфер обмена</string>
-  <string name="menu_eventlog">Журнал событий</string>
-  <string name="menu_exit">Выйти из BOINC</string>
-  <string name="menu_run_mode_disable">Приостановить</string>
-  <string name="menu_run_mode_enable">Возобновить</string>
-  <string name="menu_about">О</string>
-  <string name="menu_help">Справка</string>
-  <!--about dialog-->
-  <string name="about_button">Вернуться</string>
-  <string name="about_title">О</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Версия</string>
-  <string name="about_name_long">BOINC - Berkeley Open Infrastructure for Network Computing\nОткрытая Инфраструктура для Распределенных Вычислений университета Беркли</string>
-  <string name="about_copyright">© 2003-2013 Калифорнийский университет, Беркли.\nВсе права защищены.</string>
-  <string name="about_copyright_reserved">Все права защищены.</string>
-  <string name="about_credits">Спасибо за поддержку Институту гравитационной физики Макса Планка, Корпорации IBM и Корпорации HTC.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Новое уведомление от</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">новые уведомления</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Обнаружено приложение добровольных вычислений</string>
-  <string name="nonexcl_dialog_text">Ещё одно приложение добровольных вычислений работает на этом устройстве. Одновременно может работать только одна версия.</string>
-  <string name="nonexcl_dialog_exit">Выход</string>
-  <!--social integration-->
-  <string name="social_invite_button">Пригласить друзей</string>
-  <string name="social_invite_intent_title">Как Вы хотите поделиться?</string>
-  <string name="social_invite_content_title">Я участвую в научных исследованиях на моём смартфоне!</string>
-  <string name="social_invite_content_body">Я использую мой %1$s для выполнения научных расчётов. Ты тоже можешь принять участие! Скачай приложение здесь: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-sk/strings.xml b/android/BOINC/res/values-sk/strings.xml
deleted file mode 100644
index 6cd65a8..0000000
--- a/android/BOINC/res/values-sk/strings.xml
+++ /dev/null
@@ -1,361 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Načítava sa! Prosím čakajte...</string>
-  <string name="generic_button_continue">Pokračovať</string>
-  <string name="generic_button_finish">Dokončiť</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Zvoľte vedecké projekty, ktorým chcete pomôcť:</string>
-  <string name="attachproject_list_header">Zvoľte projekt</string>
-  <string name="attachproject_list_manual_button">Pridať projekt pomocou URL</string>
-  <string name="attachproject_list_manual_dialog_title">Zadajte URL projektu:</string>
-  <string name="attachproject_list_manual_dialog_button">Pripojiť sa k projektu</string>
-  <string name="attachproject_list_manual_no_url">Prosím zadajte URL projektu</string>
-  <string name="attachproject_list_acctmgr_button">Pridať Správcu konta.</string>
-  <string name="attachproject_list_no_internet">Žiadne pripojenie k Internetu</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Uveďte údaje o účte</string>
-  <string name="attachproject_credential_input_desc">Uveďte údaje o účte pre vybrané projekty:</string>
-  <string name="attachproject_credential_input_show_pwd">Ukázať heslo</string>
-  <string name="attachproject_individual_credential_input">Pripojiť projekty individuálne</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Nastali problémi pri pripojení výskumných projektov:</string>
-  <string name="attachproject_conflict_undefined">Pripojenie sa nepodarilo</string>
-  <string name="attachproject_conflict_not_unique">Účet existuje s iným heslom</string>
-  <string name="attachproject_conflict_bad_password">Nesprávne heslo</string>
-  <string name="attachproject_conflict_unknown_user">Účet neexistuje</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Účet neexistuje, navštívte stránku projektu na registráciu</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Pripája sa</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Pomôcka</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Ako pomôcť:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Pripojiť k WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Pripojte nabíjačku</string>
-  <string name="attachproject_hint_contribtion_screen">3. Vypnite obrazovku</string>
-  <string name="attachproject_hint_projectwebsite_header">Navštívte stránky projektov na:</string>
-  <string name="attachproject_hint_projectwebsite_science">Zistiť viac o vede</string>
-  <string name="attachproject_hint_projectwebsite_stats">Skontrolovať štatistiky</string>
-  <string name="attachproject_hint_projectwebsite_community">Buďte v kontakte s ďalšími dobrovoľníkmi</string>
-  <string name="attachproject_hint_platforms_header">BOINC je k dispozícii aj pre váš počítač alebo laptop. Navštívte boinc.berkley.edu pre viac informácií.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Pripájanie na server projektu…</string>
-  <string name="attachproject_login_image_description">Logo projektu.</string>
-  <string name="attachproject_login_header_general_area">Všeobecná oblasť:</string>
-  <string name="attachproject_login_header_specific_area">Špecifická oblasť:</string>
-  <string name="attachproject_login_header_description">Popis:</string>
-  <string name="attachproject_login_header_home">Domovská stránka:</string>
-  <string name="attachproject_login_header_url">Stránka:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Projekt podporuje tento typ zariadenia</string>
-  <string name="attachproject_login_platform_not_supported">Projekt nepodporuje tento typ zariadenia</string>
-  <string name="attachproject_login_category_terms_of_use">Podmienky používania </string>
-  <string name="attachproject_login_accept_terms_of_use">Vytvorením účtu súhlasíte s hore uvedenými podmienkami používania.</string>
-  <string name="attachproject_login_category_login">Prihlásiť sa s existujúcim účtom</string>
-  <string name="attachproject_login_header_id_email">e-mail</string>
-  <string name="attachproject_login_header_id_name">Meno:</string>
-  <string name="attachproject_login_header_pwd">Heslo:</string>
-  <string name="attachproject_login_category_creation">Nový v</string>
-  <string name="attachproject_login_header_creation_enabled">Zaregistrujte sa, aby ste sa mohli pridať:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Navštívte stránku projektu na vytvorenie účtu:</string>
-  <string name="attachproject_login_header_creation_disabled">Tento projekt momentálne neakceptuje nové účty.</string>
-  <string name="attachproject_login_button_registration">Registrácia</string>
-  <string name="attachproject_login_button_login">Prihlásiť sa</string>
-  <string name="attachproject_login_button_forgotpw">Zabudnuté heslo</string>
-  <string name="attachproject_login_error_toast">Kontaktovanie projektu zlyhalo!</string>
-  <string name="attachproject_login_attached">Pripojené</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Registrácia účtu na</string>
-  <string name="attachproject_registration_header_url">Projekt:</string>
-  <string name="attachproject_registration_header_email">E-mail:</string>
-  <string name="attachproject_registration_header_username">Meno:</string>
-  <string name="attachproject_registration_header_teamname">Tím:</string>
-  <string name="attachproject_registration_header_pwd">Heslo:</string>
-  <string name="attachproject_registration_header_pwd_confirm">...Zopakujte:</string>
-  <string name="attachproject_registration_button">Vytvoriť</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Použiť správcu účtu BOINC na spravovanie viacerých projektov</string>
-  <string name="attachproject_acctmgr_header">Pridať správcu účtu</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Používateľ:</string>
-  <string name="attachproject_acctmgr_header_pwd">Heslo:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">...Zopakujte:</string>
-  <string name="attachproject_acctmgr_button">Pridať</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Používateľ nenájdený.</string>
-  <string name="attachproject_error_short_pwd">Heslo je príliš krátke</string>
-  <string name="attachproject_error_no_internet">Pripojenie zlyhalo</string>
-  <string name="attachproject_error_pwd_no_match">Heslá sa nezhodujú</string>
-  <string name="attachproject_error_pwd_no_retype">Prosím, napíšte heslo znovu</string>
-  <string name="attachproject_error_no_url">Prosím zadajte URL</string>
-  <string name="attachproject_error_no_email">Prosím zadajte e-mailovú adresu</string>
-  <string name="attachproject_error_no_pwd">Prosím zadajte heslo</string>
-  <string name="attachproject_error_no_name">Prosím zadajte používateľské meno</string>
-  <string name="attachproject_error_unknown">zlyhalo</string>
-  <string name="attachproject_error_bad_username">Používateľské meno bolo odmietnuté</string>
-  <string name="attachproject_error_email_in_use">Emailová adresa sa už používa</string>
-  <string name="attachproject_error_project_down">Projekt je offline</string>
-  <string name="attachproject_error_email_bad_syntax">Emailová adresa bola odmietnutá</string>
-  <string name="attachproject_error_bad_pwd">Heslo bolo odmietnuté</string>
-  <string name="attachproject_error_creation_disabled">Vytváranie účtov na tomto projekte je pozastavené</string>
-  <string name="attachproject_error_invalid_url">Neplatná URL</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Späť</string>
-  <string name="attachproject_working_finish_button">Dokončiť</string>
-  <string name="attachproject_working_check_desc">Úspešné</string>
-  <string name="attachproject_working_failed_desc">Zlyhalo</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Pripojiť</string>
-  <string name="attachproject_working_verify">Overiť účet</string>
-  <string name="attachproject_working_register">Zaregistrovať účet</string>
-  <string name="attachproject_working_login">Prihlásiť sa</string>
-  <string name="attachproject_working_acctmgr">Pridať správcu účtu</string>
-  <string name="attachproject_working_acctmgr_sync">Sychronizovať</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Ťuknite sem na výber projektu</string>
-  <string name="main_error">Ojoj!</string>
-  <string name="main_error_long">...toto by sa nemalo stávať!\nKliknite na ikonu a skúste to znovu.</string>
-  <string name="main_title_icon_desc">Ikona BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Stav</string>
-  <string name="tab_projects">Projekty</string>
-  <string name="tab_tasks">Úlohy</string>
-  <string name="tab_transfers">Prenosy</string>
-  <string name="tab_preferences">Nastavenia</string>
-  <string name="tab_notices">Oznamy</string>
-  <string name="tab_desc">Navigácia</string>
-  <!--status strings-->
-  <string name="status_running">Výpočty</string>
-  <string name="status_running_long">Ďakujeme vám za účasť</string>
-  <string name="status_paused">Pozastaviť</string>
-  <string name="status_idle">Žiadne úlohy</string>
-  <string name="status_idle_long">Čakám na úlohy...</string>
-  <string name="status_computing_disabled">Pozastavené</string>
-  <string name="status_computing_disabled_long">Stlačte Play na obnovenie siete a výpočtov.</string>
-  <string name="status_launching">Spúšťa sa...</string>
-  <string name="status_noproject">Vyberte si projekt ktorého za chcete zúčastniť.</string>
-  <string name="status_closing">Zatvára sa...</string>
-  <string name="status_benchmarking">Meria sa výkon...</string>
-  <string name="status_image_description">súbor projektu</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Načítanie preferencií...</string>
-  <string name="prefs_submit_button">Uložiť</string>
-  <string name="prefs_dialog_title">Zadajte novú hodnotu:</string>
-  <string name="prefs_dialog_title_selection">Vybrať:</string>
-  <string name="prefs_category_general">Všeobecné</string>
-  <string name="prefs_category_network">Sieť</string>
-  <string name="prefs_category_power">Energia</string>
-  <string name="prefs_category_cpu">Procesor</string>
-  <string name="prefs_category_storage">Úložisko</string>
-  <string name="prefs_category_memory">Pamäť</string>
-  <string name="prefs_category_debug">Ladenie</string>
-  <string name="prefs_show_advanced_header">Zobraziť pokročilé nastavenia...</string>
-  <string name="prefs_suspend_when_screen_on">Pozastaviť výpočty keď je obrazovka zapnutá</string>
-  <string name="prefs_stationary_device_mode_header">Mód neprenosného zariadenia</string>
-  <string name="prefs_stationary_device_mode_description">Povolí výpočty bez ohľadu na nastavenia napájania. Zapínajte len pokiaľ ide o bezbatériové zariadenie.</string>
-  <string name="prefs_power_source_header">Zdroje energie na výpočty</string>
-  <string name="prefs_power_source_description">Zvolí zdroje napájania, ktoré BOINC môže využívať na výpočty.</string>
-  <string name="prefs_power_source_ac">Zásuvka</string>
-  <string name="prefs_power_source_usb">Pripojenie USB</string>
-  <string name="prefs_power_source_wireless">Bezdrôtová nabíjačka</string>
-  <string name="prefs_power_source_battery">Batéria</string>
-  <string name="battery_charge_min_pct_header">Minimálna úroveň stavu batérie</string>
-  <string name="battery_charge_min_pct_description">BOINC pozastaví výpočty, pokiaľ stav batérie klesne pod danú úroveň.</string>
-  <string name="battery_temperature_max_header">Maximálna teplota batérie</string>
-  <string name="battery_temperature_max_description">BOINC pozastaví výpočty, pokiaľ stav batérie klesne pod zadanú úroveň. Zmena tejto hodnoty sa neodporúča.</string>
-  <string name="prefs_disk_max_pct_header">Maximum použitého úložného priestoru</string>
-  <string name="prefs_disk_max_pct_description">Koľko percent úložného priestoru na vašom zariadení môže BOINC využívať?</string>
-  <string name="prefs_disk_min_free_gb_header">Minimum voľného miesta</string>
-  <string name="prefs_disk_min_free_gb_description">Koľko z úložného priestoru vášho zariadenia by malo ostať voľného?</string>
-  <string name="prefs_disk_access_interval_header">Interval prístupov</string>
-  <string name="prefs_disk_access_interval_description">Odporučiť interval medzi prístupmi na disk</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Denný limit prenosov</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Nastaví obmedzenia prenosu súborov pre BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Prenos úloh len pri pripojení k WiFi</string>
-  <string name="prefs_autostart_header">Automatický štart</string>
-  <string name="prefs_show_notification_notices_header">Zobraziť upozornenia pri nových správach</string>
-  <string name="prefs_show_notification_suspended_header">Zobraziť upozornenie pri pozastavení</string>
-  <string name="prefs_cpu_number_cpus_header">Používané jadrá procesoru</string>
-  <string name="prefs_cpu_number_cpus_description">Obmedzí počet jadier procesoru ktoré BOINC používa pri výpočtoch</string>
-  <string name="prefs_cpu_other_load_suspension_header">Pozastaví pri využití procesoru nad</string>
-  <string name="prefs_cpu_other_load_suspension_description">Určí, kedy BOINC pozastaví výpočty kvôli využitiu procesora inými aplikáciami.</string>
-  <string name="prefs_cpu_time_max_header">Limit procesoru</string>
-  <string name="prefs_cpu_time_max_description">Obmedzí procesorový čas, ktorý BOINC využíva na výpočty.</string>
-  <string name="prefs_memory_max_idle_header">Limit RAM</string>
-  <string name="prefs_memory_max_idle_description">Nastaví koľko RAM môžu úlohy využiť</string>
-  <string name="prefs_client_log_flags_header">Značky záznamov BOINC klienta</string>
-  <string name="prefs_gui_log_level_header">Úroveň záznamu GUI</string>
-  <string name="prefs_gui_log_level_description">Špecifikuje stručnosť GUI záznamov</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">sekúnd</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Načítanie projektov...</string>
-  <string name="projects_add">Pripojiť sa k projektu</string>
-  <string name="projects_icon">Ikona projektu</string>
-  <string name="projects_credits_header">Kredit:</string>
-  <string name="projects_credits_host_header">(na tomto zariadení)</string>
-  <string name="projects_credits_user_header">(spolu)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Pozastavené používateľom</string>
-  <string name="projects_status_dontrequestmorework">Nebudú získané nové úlohy</string>
-  <string name="projects_status_ended">Projekt je ukončený - je možné sa od neho odpojiť</string>
-  <string name="projects_status_detachwhendone">Bude odpojený po skončení úloh</string>
-  <string name="projects_status_schedrpcpending">Žiadosť plánovača nevyriešená</string>
-  <string name="projects_status_schedrpcinprogress">Spracováva sa požiadavka plánovača</string>
-  <string name="projects_status_trickleuppending">Rýchla správa o stave čaká na odoslanie</string>
-  <string name="projects_status_backoff">Komunikácia je naplánovaná o:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Príkazy projektu:</string>
-  <string name="projects_control_visit_website">Navštíviť stránku</string>
-  <string name="projects_control_update">Aktualizovať</string>
-  <string name="projects_control_remove">Odobrať</string>
-  <string name="projects_control_suspend">Pozastaviť</string>
-  <string name="projects_control_resume">Pokračovať</string>
-  <string name="projects_control_nonewtasks">Žiadne nové úlohy</string>
-  <string name="projects_control_allownewtasks">Povoliť nové úlohy</string>
-  <string name="projects_control_reset">Resetovať</string>
-  <string name="projects_control_dialog_title_acctmgr">Príkazy Správcu konta:</string>
-  <string name="projects_control_sync_acctmgr">Sychronizovať</string>
-  <string name="projects_control_remove_acctmgr">Deaktivovať</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Odstrániť projekt?</string>
-  <string name="projects_confirm_detach_message">Skutočne chcete odstrániť</string>
-  <string name="projects_confirm_detach_message2">z BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Odobrať</string>
-  <string name="projects_confirm_reset_title">Resetovať projekt</string>
-  <string name="projects_confirm_reset_message">Skutočne chcete resetovať</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Resetovať</string>
-  <string name="projects_confirm_remove_acctmgr_title">Deaktivovať Správcu konta</string>
-  <string name="projects_confirm_remove_acctmgr_message">Skutočne chcete prestať používať</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Deaktivovať</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Názov úlohy:</string>
-  <string name="tasks_header_elapsed_time">Uplynutý čas:</string>
-  <string name="tasks_header_project_paused">(pozastavené)</string>
-  <string name="tasks_header_deadline">Odoslať do:</string>
-  <string name="tasks_result_new">nový</string>
-  <string name="tasks_result_files_downloading">čakanie na stiahnutie</string>
-  <string name="tasks_result_files_downloaded">sťahovanie dokončené</string>
-  <string name="tasks_result_compute_error">chyba výpočtu</string>
-  <string name="tasks_result_files_uploading">odosielanie</string>
-  <string name="tasks_result_files_uploaded">odosielanie dokončené</string>
-  <string name="tasks_result_aborted">zrušené</string>
-  <string name="tasks_result_upload_failed">odosielanie zlyhalo</string>
-  <string name="tasks_active_uninitialized">pripravené</string>
-  <string name="tasks_active_executing">beží</string>
-  <string name="tasks_active_suspended">pozastavené</string>
-  <string name="tasks_active_abort_pending">pozastavuje sa</string>
-  <string name="tasks_active_quit_pending">pozastavuje sa</string>
-  <string name="tasks_custom_suspended_via_gui">pozastavené</string>
-  <string name="tasks_custom_project_suspended_via_gui">projekt pozastavený</string>
-  <string name="tasks_custom_ready_to_report">pripravená na odoslanie</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Zrušiť úlohu?</string>
-  <string name="confirm_abort_task_message">Zrušiť úlohu:</string>
-  <string name="confirm_abort_task_confirm">Zrušiť</string>
-  <string name="confirm_cancel">Späť</string>
-  <string name="confirm_image_desc">Potvrdenie</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Príprava prenosov...</string>
-  <string name="trans_upload">Odosielanie</string>
-  <string name="trans_download">Sťahovanie</string>
-  <string name="trans_retryin">zopakuje sa o </string>
-  <string name="trans_failed">zlyhalo</string>
-  <string name="trans_suspended">pozastavené</string>
-  <string name="trans_active">prebieha</string>
-  <string name="trans_pending">čaká</string>
-  <string name="trans_projectbackoff">odsunutie projektu</string>
-  <string name="trans_header_name">Súbor:</string>
-  <string name="trans_control_retry">Zopakovať prenosy</string>
-  <string name="confirm_abort_trans_title">Zrušiť prenos?</string>
-  <string name="confirm_abort_trans_message">Zrušiť súbor:</string>
-  <string name="confirm_abort_trans_confirm">Zrušiť</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Načítanie správ...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Načítanie správ záznamu...</string>
-  <string name="eventlog_client_header">Správy klienta</string>
-  <string name="eventlog_gui_header">Správy GUI</string>
-  <string name="eventlog_copy_toast">Záznamy skopírované do schránky.</string>
-  <string name="eventlog_email_subject">Záznamy pre BOINC na Androide:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Počítanie je pozastavené.</string>
-  <string name="suspend_batteries">Napojte vaše zariadenie na nabíjačku, aby výpočty mohli pokračovať.</string>
-  <string name="suspend_screen_on">Vypnite obrazovku pre pokračovanie vo výpočtoch.</string>
-  <string name="suspend_useractive">Užívateľ je aktívny.</string>
-  <string name="suspend_tod">Mimo časového rámca výpočtov.</string>
-  <string name="suspend_bm">BOINC meria výkon zariadenia...</string>
-  <string name="suspend_disksize">Nedostatok miesta na disku.</string>
-  <string name="suspend_cputhrottle">Plánované obmedzenie procesoru.</string>
-  <string name="suspend_noinput">Žiadna nedávna činnosť užívateľa.</string>
-  <string name="suspend_delay">Odloženie inicializácie.</string>
-  <string name="suspend_exclusiveapp">Beží výhradná aplikácia.</string>
-  <string name="suspend_cpu">Vaše zariadenie je zaneprázdnené inými aplikáciami.</string>
-  <string name="suspend_network_quota">BOINC dosiahol limit v prenose po sieti.</string>
-  <string name="suspend_os">Zastavené Androidom.</string>
-  <string name="suspend_wifi">Nepripojené k WiFi.</string>
-  <string name="suspend_battery_charging">Čakanie na nabitie batérie.</string>
-  <string name="suspend_battery_charging_long">Výpočty sa obnovia, keď nabitie batérie dosiahne</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">momentálne</string>
-  <string name="suspend_battery_overheating">Čakanie na ochladenie batérie</string>
-  <string name="suspend_user_req">Obnovovanie výpočtov...</string>
-  <string name="suspend_network_user_req">manuálne.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Vyžiadané používateľom</string>
-  <string name="rpcreason_needwork">Získať ďalšiu prácu</string>
-  <string name="rpcreason_resultsdue">Nahlásiť dokončené úlohy</string>
-  <string name="rpcreason_trickleup">Odoslať rýchlu správu o stave</string>
-  <string name="rpcreason_acctmgrreq">Vyžiadané Správcom konta</string>
-  <string name="rpcreason_init">Prvotné nastavenie projektu</string>
-  <string name="rpcreason_projectreq">Vyžiadané projektom</string>
-  <string name="rpcreason_unknown">Neznámy dôvod</string>
-  <!--menu-->
-  <string name="menu_refresh">Obnoviť</string>
-  <string name="menu_emailto">Poslať ako email</string>
-  <string name="menu_copy">Kopírovať do schránky</string>
-  <string name="menu_eventlog">Záznam udalostí</string>
-  <string name="menu_exit">Vypnúť BOINC</string>
-  <string name="menu_run_mode_disable">Pozastaviť</string>
-  <string name="menu_run_mode_enable">Pokračovať</string>
-  <string name="menu_about">O</string>
-  <string name="menu_help">Pomoc</string>
-  <!--about dialog-->
-  <string name="about_button">Návrat</string>
-  <string name="about_title">O</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Verzia</string>
-  <string name="about_name_long">(Otvorená infraštruktúra pre sieťové výpočty z Berkeley)
-(Berkeley Open Infrastructure for Network Computing)</string>
-  <string name="about_copyright">\u00A9 2003–2014 Kalifornská Univerzita, Berkeley.</string>
-  <string name="about_copyright_reserved">Všetky práva vyhradené.</string>
-  <string name="about_credits">Vďaka Inštitútu gravitačnej fyziky Maxa Plancka, IBM Corporation a HTC Corporation za ich podporu.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Nová správa od</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">nové správy</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Bola nájdená aplikácia na dobrovoľnícke výpočty</string>
-  <string name="nonexcl_dialog_text">Na tomto zariadení už beží iná výpočtová aplikácia; naraz môže bežať len jedna verzia.</string>
-  <string name="nonexcl_dialog_exit">Ukončiť</string>
-  <!--social integration-->
-  <string name="social_invite_button">Pozvať priateľov</string>
-  <string name="social_invite_intent_title">Akým spôsobom chcete zdieľať?</string>
-  <string name="social_invite_content_title">Riešim vedu na mojom smartfóne!</string>
-  <string name="social_invite_content_body">Používam %1$s na výpočty pre vedu. Môžeš aj ty, len si stiahni aplikáciu z %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-sl/strings.xml b/android/BOINC/res/values-sl/strings.xml
deleted file mode 100644
index 467187c..0000000
--- a/android/BOINC/res/values-sl/strings.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<resources>
-  <string name="app_name">BOINC</string>
-  <string name="attachproject_list_acctmgr_button">Adaugă manager de cont</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Этот проект поддерживает устройства на базе Android</string>
-  <string name="attachproject_login_platform_not_supported">Этот проект не поддерживает устройства на базе Android</string>
-  <string name="attachproject_acctmgr_header">Adaugă manager de cont</string>
-  <string name="attachproject_acctmgr_header_url">URL</string>
-  <string name="attachproject_acctmgr_header_name">Utilizator:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">... Reintroduceţi:</string>
-  <string name="attachproject_acctmgr_button">Adaugă</string>
-  <string name="attachproject_error_no_url">Introduceți URL</string>
-  <string name="attachproject_error_bad_username">Имя пользователя не принято</string>
-  <string name="attachproject_error_email_in_use">Адрес электронной почты уже используется</string>
-  <string name="attachproject_error_project_down">Проект выключен</string>
-  <string name="attachproject_error_email_bad_syntax">Адрес электронной почты не принят</string>
-  <string name="attachproject_error_bad_pwd">Пароль не принят</string>
-  <string name="attachproject_error_creation_disabled">Создание учётной записи в данном проекте отключено</string>
-  <string name="attachproject_error_invalid_url">URL invalid</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_acctmgr">Adaugă manager de cont</string>
-  <string name="attachproject_working_acctmgr_sync">Sincronizează</string>
-  <string name="main_error">Упс</string>
-  <string name="main_error_long">…этого не должно было произойти!\nНажмите на значок BOINC, чтобы попробовать ещё раз.</string>
-  <string name="status_running_long">Спасибо за участие.</string>
-  <string name="status_idle">Нечего делать</string>
-  <string name="status_idle_long">Ожидание заданий…</string>
-  <string name="status_computing_disabled_long">Нажмите кнопку Play для возобновления расчётов и передачи данных.</string>
-  <string name="status_noproject">Выбрать проект для участия.</string>
-  <string name="status_closing">Закрытие…</string>
-  <string name="status_image_description">изображение проекта</string>
-  <string name="prefs_loading">Чтение настроек…</string>
-  <string name="prefs_dialog_title_selection">Выбрать:</string>
-  <string name="prefs_show_advanced_header">Показать дополнительные настройки и элементы управления…</string>
-  <string name="battery_charge_min_pct_header">Мин. уровень заряда батареи</string>
-  <string name="battery_charge_min_pct_description">BOINC приостановит расчёты, когда заряд батареи будет ниже указанного уровня.</string>
-  <string name="battery_temperature_max_header">Макс. температура батареи</string>
-  <string name="battery_temperature_max_description">BOINC приостановит расчёты, когда температура батареи превысит указанный уровень. Не рекомендуется менять это значение.</string>
-  <string name="prefs_disk_max_pct_header">Макс. используемое пространство памяти</string>
-  <string name="prefs_disk_max_pct_description">Сколько процентов от общего объёма памяти вашего устройства BOINC может использовать?</string>
-  <string name="prefs_disk_min_free_gb_header">Мин. свободное пространство</string>
-  <string name="prefs_disk_min_free_gb_description">Какой объём памяти вашего устройства должен оставаться свободным?</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Ежедневный предел передачи</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Ограничивает ежедневный трафик данных, вызванный BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Передавать задания только по WiFi</string>
-  <string name="prefs_autostart_header">Автозапуск</string>
-  <string name="prefs_cpu_number_cpus_header">Используемые ядра процессора</string>
-  <string name="prefs_cpu_number_cpus_description">Ограничивает количество ядер процессора, которые использует BOINC для расчётов.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Пауза при использовании процессора выше</string>
-  <string name="prefs_cpu_other_load_suspension_description">Определяет, когда BOINC останавливает расчёты из-за использования процессора другими приложениями.</string>
-  <string name="prefs_cpu_time_max_header">Предельное время процессора</string>
-  <string name="prefs_cpu_time_max_description">Ограничивает время процессора, которое использует BOINC для расчётов.</string>
-  <string name="prefs_memory_max_idle_header">Ограничение ОЗУ</string>
-  <string name="prefs_memory_max_idle_description">Ограничивает объём ОЗУ, который задания могут занимать.</string>
-  <string name="prefs_client_log_flags_header">Флаги журнала клиента BOINC</string>
-  <string name="prefs_gui_log_level_header">Уровень журнала GUI</string>
-  <string name="prefs_gui_log_level_description">Задает уровень детализации сообщений журнала GUI.</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="projects_loading">Чтение проектов…</string>
-  <string name="projects_icon">Значок проекта</string>
-  <string name="projects_credits_host_header">(на этом устройстве)</string>
-  <string name="projects_credits_user_header">(всего)</string>
-  <string name="projects_status_suspendedviagui">Приостановлен пользователем</string>
-  <string name="projects_status_dontrequestmorework">Не запрашивать новые задания</string>
-  <string name="projects_status_ended">Проект завершён - ОК для удаления</string>
-  <string name="projects_status_detachwhendone">Будет удалён после завершения заданий</string>
-  <string name="projects_status_schedrpcpending">Запрос информации у планировщика</string>
-  <string name="projects_status_schedrpcinprogress">Производится запрос информации у планировщика</string>
-  <string name="projects_status_trickleuppending">Ожидание промежуточной отправки</string>
-  <string name="projects_status_backoff">Связь по расписанию:</string>
-  <string name="projects_control_dialog_title">Команды проекта:</string>
-  <string name="projects_control_visit_website">Vizitați pagina web</string>
-  <string name="projects_control_nonewtasks">Не запрашивать задания</string>
-  <string name="projects_control_allownewtasks">Получать новые задания</string>
-  <string name="projects_control_reset">Сбросить</string>
-  <string name="projects_control_dialog_title_acctmgr">Comenzi manager de cont:</string>
-  <string name="projects_control_sync_acctmgr">Sincronizează</string>
-  <string name="projects_control_remove_acctmgr">Dezactivează</string>
-  <string name="projects_confirm_reset_title">Перезапустить проект</string>
-  <string name="projects_confirm_reset_message">Вы действительно хотите перезапустить</string>
-  <string name="projects_confirm_reset_confirm">Сбросить</string>
-  <string name="projects_confirm_remove_acctmgr_title">Dezactivează manager de cont</string>
-  <string name="projects_confirm_remove_acctmgr_message">Sunteţi sigur că doriţi să nu mai folosiţi</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Dezactivează</string>
-  <string name="tasks_header_deadline">Крайний срок:</string>
-  <string name="tasks_result_files_downloading">ожидание загрузки</string>
-  <string name="tasks_result_compute_error">ошибка расчётов</string>
-  <string name="tasks_active_abort_pending">приостанавливается</string>
-  <string name="tasks_active_quit_pending">приостанавливается</string>
-  <string name="tasks_custom_project_suspended_via_gui">проект приостановлен</string>
-  <string name="tasks_custom_ready_to_report">готово для подтверждения</string>
-  <string name="confirm_abort_task_title">Прервать задание?</string>
-  <string name="confirm_abort_task_message">Прервать задание:</string>
-  <string name="confirm_image_desc">Диалог подтверждения</string>
-  <string name="trans_loading">Чтение списка передач…</string>
-  <string name="trans_retryin">повтор через</string>
-  <string name="trans_active">активна</string>
-  <string name="trans_pending">ожидает</string>
-  <string name="trans_projectbackoff">запрос к проекту отложен на</string>
-  <string name="trans_header_name">Файл:</string>
-  <string name="trans_control_retry">Reîncearcă transferuri</string>
-  <string name="confirm_abort_trans_title">Прервать передачу?</string>
-  <string name="confirm_abort_trans_message">Прервать файл:</string>
-  <string name="notices_loading">Se citesc atenţionările...</string>
-  <string name="eventlog_loading">Загрузка сообщений журнала…</string>
-  <string name="eventlog_client_header">Сообщения клиента</string>
-  <string name="eventlog_gui_header">Сообщения GUI</string>
-  <string name="eventlog_copy_toast">Журнал скопирован в буфер обмена.</string>
-  <string name="eventlog_email_subject">Журнал событий для BOINC на Android:</string>
-  <string name="suspend_unknown">Расчёты приостановлены.</string>
-  <string name="suspend_batteries">Подключите ваше устройство к зарядному устройству для продолжения расчётов.</string>
-  <string name="suspend_useractive">Пользователь работает.</string>
-  <string name="suspend_tod">Закончилось выделенное время для расчётов.</string>
-  <string name="suspend_bm">BOINC измеряет производительность вашего устройства…</string>
-  <string name="suspend_disksize">Закончилось свободное место на диске.</string>
-  <string name="suspend_cputhrottle">Запланированное ограничение нагрузки процессора.</string>
-  <string name="suspend_noinput">Нет активности пользователя за последнее время.</string>
-  <string name="suspend_delay">Инициализация отложена.</string>
-  <string name="suspend_exclusiveapp">Выполняется привилегированное приложение.</string>
-  <string name="suspend_cpu">Ваше устройство занято другими приложениями.</string>
-  <string name="suspend_network_quota">BOINC достиг ограничения передачи данных по сети.</string>
-  <string name="suspend_os">Android остановил.</string>
-  <string name="suspend_wifi">Нет подключения к WiFi.</string>
-  <string name="suspend_battery_charging">Необходимо подзарядить батарею для продолжения расчётов.</string>
-  <string name="suspend_battery_charging_long">Расчёты возобновятся, когда заряд батареи достигнет</string>
-  <string name="suspend_battery_charging_current">в данный момент</string>
-  <string name="suspend_battery_overheating">Ожидание охлаждения батареи</string>
-  <string name="suspend_user_req">Возобновление расчётов…</string>
-  <string name="suspend_network_user_req">вручную.</string>
-  <string name="rpcreason_userreq">Запрошено пользователем</string>
-  <string name="rpcreason_needwork">Запросить задания</string>
-  <string name="rpcreason_resultsdue">Сообщить о завершённых заданиях</string>
-  <string name="rpcreason_trickleup">Отправить промежуточное сообщение</string>
-  <string name="rpcreason_acctmgrreq">Запрошено менеджером проектов</string>
-  <string name="rpcreason_init">Инициализация проекта</string>
-  <string name="rpcreason_projectreq">Запрошено проектом</string>
-  <string name="menu_emailto">Отправить письмом</string>
-  <string name="menu_copy">Копировать в буфер обмена</string>
-  <string name="menu_eventlog">Журнал событий</string>
-  <string name="menu_exit">Выйти из BOINC</string>
-  <string name="menu_about">О</string>
-  <string name="about_title">О</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_copyright">© 2003-2013 Калифорнийский университет, Беркли.\nВсе права защищены.</string>
-</resources>
diff --git a/android/BOINC/res/values-tr/strings.xml b/android/BOINC/res/values-tr/strings.xml
deleted file mode 100644
index 217924a..0000000
--- a/android/BOINC/res/values-tr/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Yükleniyor! Lütfen bekleyin...</string>
-  <string name="generic_button_continue">Devam</string>
-  <string name="generic_button_finish">Bitir</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Katkıda bulunmak istediğiniz bilimsel projeleri seçin</string>
-  <string name="attachproject_list_header">Bir proje seçin:</string>
-  <string name="attachproject_list_manual_button">Adres ile proje ekle</string>
-  <string name="attachproject_list_manual_dialog_title">Proje adresini girin:</string>
-  <string name="attachproject_list_manual_dialog_button">Proje ekle</string>
-  <string name="attachproject_list_manual_no_url">Lütfen proje adresini girin</string>
-  <string name="attachproject_list_acctmgr_button">Hesap Yöneticisi ekle</string>
-  <string name="attachproject_list_no_internet">İnternet bağlantısı yok</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Hesap bilgilerini girin</string>
-  <string name="attachproject_credential_input_desc">Seçilen proje için hesap bilgilerini girin</string>
-  <string name="attachproject_credential_input_show_pwd">Şifreyi göster</string>
-  <string name="attachproject_individual_credential_input">Bireysel proje ekle</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Bilimsel projelere eklenirken sorunlar oluştu:</string>
-  <string name="attachproject_conflict_undefined">Bağlantı kurulamadı</string>
-  <string name="attachproject_conflict_not_unique">Hesap farklı bir şifreyle mevcut</string>
-  <string name="attachproject_conflict_bad_password">Şifre hatalı</string>
-  <string name="attachproject_conflict_unknown_user">Hesap yok</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Hesap yok, kayıt için proje web sitesini ziyaret edin</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Ekleniyor</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">İpucu</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Nasıl katkı sağlanır:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Kablosuz Ağa Bağlan</string>
-  <string name="attachproject_hint_contribtion_charger">2. Şarja Cihazını Takın</string>
-  <string name="attachproject_hint_contribtion_screen">3. Ekranı Kapat</string>
-  <string name="attachproject_hint_projectwebsite_header">Proje web sitelerine git:</string>
-  <string name="attachproject_hint_projectwebsite_science">Bilim hakkında daha fazlasını öğren</string>
-  <string name="attachproject_hint_projectwebsite_stats">Katkı istatistiklerini gör</string>
-  <string name="attachproject_hint_projectwebsite_community">Diğer gönüllülerle bağlantıya geç</string>
-  <string name="attachproject_hint_platforms_header">BOINC bilgisayarınız  için kullanılabilir, daha fazla bilgi için boinc.berkeley.edu adresini ziyaret edin.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Proje sunucusuna bağlanılıyor...</string>
-  <string name="attachproject_login_image_description">Proje logosu.</string>
-  <string name="attachproject_login_header_general_area">Genel alan:</string>
-  <string name="attachproject_login_header_specific_area">Özel alan:</string>
-  <string name="attachproject_login_header_description">Tanım:</string>
-  <string name="attachproject_login_header_home">Anasayfa:</string>
-  <string name="attachproject_login_header_url">Site:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Bu proje Android cihazlarını destekliyor</string>
-  <string name="attachproject_login_platform_not_supported">Bu proje Android cihazlarını desteklemiyor</string>
-  <string name="attachproject_login_category_terms_of_use">Kural ve politikalar: </string>
-  <string name="attachproject_login_accept_terms_of_use">Bu projede bir hesap oluşturmakla, aşağıdaki kural ve politikaları kabul etmiş oluyorsunuz.</string>
-  <string name="attachproject_login_category_login">Mevcut hesap ile oturum aç</string>
-  <string name="attachproject_login_header_id_email">ePosta:</string>
-  <string name="attachproject_login_header_id_name">İsim:</string>
-  <string name="attachproject_login_header_pwd">Parola:</string>
-  <string name="attachproject_login_category_creation">Bu projede yeni misiniz:</string>
-  <string name="attachproject_login_header_creation_enabled">Katılmak için bir hesap oluşturun:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Hesap oluşturmak için proje sitesini ziyaret edin:</string>
-  <string name="attachproject_login_header_creation_disabled">Bu proje şu anda yeni hesapları kabul etmiyor.</string>
-  <string name="attachproject_login_button_registration">Kayıt ol</string>
-  <string name="attachproject_login_button_login">Giriş yap</string>
-  <string name="attachproject_login_button_forgotpw">Parolamı unuttum</string>
-  <string name="attachproject_login_error_toast">Projeyle bağlantı kurulamadı!</string>
-  <string name="attachproject_login_attached">Eklendi</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Hesaba kaydolma: </string>
-  <string name="attachproject_registration_header_url">Proje:</string>
-  <string name="attachproject_registration_header_email">ePosta:</string>
-  <string name="attachproject_registration_header_username">İsim:</string>
-  <string name="attachproject_registration_header_teamname">Takım:</string>
-  <string name="attachproject_registration_header_pwd">Parola:</string>
-  <string name="attachproject_registration_header_pwd_confirm">Yeniden yazın:</string>
-  <string name="attachproject_registration_button">Oluştur</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Proje eklemek ya da yönetmek için BOINC hesap yöneticisini kullan</string>
-  <string name="attachproject_acctmgr_header">Hesap Yöneticisi ekle</string>
-  <string name="attachproject_acctmgr_header_url">Adres</string>
-  <string name="attachproject_acctmgr_header_name">Kullanıcı:</string>
-  <string name="attachproject_acctmgr_header_pwd">Parola:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">Yeniden yazın:</string>
-  <string name="attachproject_acctmgr_button">Ekle</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Kullanıcı bulunamadı</string>
-  <string name="attachproject_error_short_pwd">Parola çok kısa</string>
-  <string name="attachproject_error_no_internet">Bağlantı başarısız</string>
-  <string name="attachproject_error_pwd_no_match">Yazdığınız parolalar aynı değil</string>
-  <string name="attachproject_error_pwd_no_retype">Lütfen şifreyi tekrar yazın</string>
-  <string name="attachproject_error_no_url">Lütfen adresi yazın</string>
-  <string name="attachproject_error_no_email">Lütfen ePosta adresinizi yazın</string>
-  <string name="attachproject_error_no_pwd">Lütfen bir parola yazın</string>
-  <string name="attachproject_error_no_name">Lütfen kullanıcı adınızı yazın</string>
-  <string name="attachproject_error_unknown">başarısız</string>
-  <string name="attachproject_error_bad_username">Kullanıcı adı kabul edilmedi</string>
-  <string name="attachproject_error_email_in_use">ePosta zaten kullanımda</string>
-  <string name="attachproject_error_project_down">Proje çevrimdışı</string>
-  <string name="attachproject_error_email_bad_syntax">ePosta kabul edilmedi</string>
-  <string name="attachproject_error_bad_pwd">Parola kabul edilmedi</string>
-  <string name="attachproject_error_creation_disabled">Hesap oluşturma bu projede devre dışı</string>
-  <string name="attachproject_error_invalid_url">Geçersiz adres</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Geri</string>
-  <string name="attachproject_working_finish_button">Tamamla</string>
-  <string name="attachproject_working_check_desc">Başarılı</string>
-  <string name="attachproject_working_failed_desc">Başarısız</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Bağlan</string>
-  <string name="attachproject_working_verify">Hesabı doğrula</string>
-  <string name="attachproject_working_register">Hesap oluştur</string>
-  <string name="attachproject_working_login">Giriş yap</string>
-  <string name="attachproject_working_acctmgr">Hesap yöneticisi ekle</string>
-  <string name="attachproject_working_acctmgr_sync">Eşitle</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Proje seçmek için buraya dokunun.</string>
-  <string name="main_error">Haydaaa</string>
-  <string name="main_error_long">... bu olmamalıydı!\nYeniden denemek için simgeye dokunun.</string>
-  <string name="main_title_icon_desc">BOINC simgesi</string>
-  <!--tab names-->
-  <string name="tab_status">Durum</string>
-  <string name="tab_projects">Projeler</string>
-  <string name="tab_tasks">İşler</string>
-  <string name="tab_transfers">Aktarımlar</string>
-  <string name="tab_preferences">Tercihler</string>
-  <string name="tab_notices">Bildirimler</string>
-  <string name="tab_desc">Gezinti</string>
-  <!--status strings-->
-  <string name="status_running">Hesaplıyor</string>
-  <string name="status_running_long">Katıldığınız için teşekkürler.</string>
-  <string name="status_paused">Beklemede</string>
-  <string name="status_idle">Yapacak bir görev yok</string>
-  <string name="status_idle_long">İşler için bekleniyor...</string>
-  <string name="status_computing_disabled">Beklemede</string>
-  <string name="status_computing_disabled_long">Hesaplama ve ağı sürdürmek için oynata dokunun.</string>
-  <string name="status_launching">Başlıyor...</string>
-  <string name="status_noproject">Katılmak için bir proje seçin.</string>
-  <string name="status_closing">Kapanıyor...</string>
-  <string name="status_benchmarking">Test ediliyor...</string>
-  <string name="status_image_description">proje resmi</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Tercihler okunuyor...</string>
-  <string name="prefs_submit_button">Kaydet</string>
-  <string name="prefs_dialog_title">Yeni değeri girin:</string>
-  <string name="prefs_dialog_title_selection">Seçin:</string>
-  <string name="prefs_category_general">Genel</string>
-  <string name="prefs_category_network">Ağ</string>
-  <string name="prefs_category_power">Güç</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">Depolama</string>
-  <string name="prefs_category_memory">Bellek</string>
-  <string name="prefs_category_debug">Hata kaydı</string>
-  <string name="prefs_show_advanced_header">Gelişmiş tercihler ve kontrolleri görüntüle...</string>
-  <string name="prefs_suspend_when_screen_on">Ekran açıkken hesaplamayı duraklat</string>
-  <string name="prefs_stationary_device_mode_header">Sabit cihaz modu</string>
-  <string name="prefs_stationary_device_mode_description">Güç tercihlerinin hesaplanmasına izin verir. Cihazın pili yoksa etkinleştirin.</string>
-  <string name="prefs_power_source_header">Hesaplama için güç kaynakları</string>
-  <string name="prefs_power_source_description">BOINC hesaplama için kullanmasına izin verilen güç kaynakları seçer.</string>
-  <string name="prefs_power_source_ac">Duvar soketi</string>
-  <string name="prefs_power_source_usb">USB bağlantı</string>
-  <string name="prefs_power_source_wireless">Kablosuz Şarj Edici</string>
-  <string name="prefs_power_source_battery">Pil</string>
-  <string name="battery_charge_min_pct_header">En az pil seviyesi</string>
-  <string name="battery_charge_min_pct_description">BOINC, pil seviyesi bu değerin altına düşerse hesaplamayı duraklatır.</string>
-  <string name="battery_temperature_max_header">En çok pil sıcaklığı</string>
-  <string name="battery_temperature_max_description">BOINC, pil sıcaklığı bu değerin üzerine çıkarsa hesaplamayı duraklatır. Bu değeri değiştirmeniz önerilmez.</string>
-  <string name="prefs_disk_max_pct_header">En çok depolama alanı kullanımı</string>
-  <string name="prefs_disk_max_pct_description">BOINC, cihazınızın yüzde olarak en fazla ne kadar depolama alanını kullanabilecek?</string>
-  <string name="prefs_disk_min_free_gb_header">En az boş depolama alanı</string>
-  <string name="prefs_disk_min_free_gb_description">Cihazınızda en az ne kadar depolama alanı boş bırakılacak?</string>
-  <string name="prefs_disk_access_interval_header">Erişim zaman aralığı</string>
-  <string name="prefs_disk_access_interval_description">Disk erişimleri arasında bir aralık önerir</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Günlük aktarım kotası</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">BOINC\'in günlük internet kullanım kotası.</string>
-  <string name="prefs_network_wifi_only_header">İşleri yalnızca WiFi\'dayken aktar</string>
-  <string name="prefs_autostart_header">Cihaz açılınca otomatik başla</string>
-  <string name="prefs_show_notification_notices_header">Yeni bildirimler için uyarı göster</string>
-  <string name="prefs_show_notification_suspended_header">Askıya alındığında bildirim göster</string>
-  <string name="prefs_cpu_number_cpus_header">Kullanılacak CPU çekirdekleri</string>
-  <string name="prefs_cpu_number_cpus_description">BOINC\'in hesaplama için kullanabileceği işlemci (CPU) çekirdeği sayısı.</string>
-  <string name="prefs_cpu_other_load_suspension_header">CPU kullanımı fazlaysa duraklat</string>
-  <string name="prefs_cpu_other_load_suspension_description">BOINC nedeniyle diğer uygulamaların CPU kullanımı için hesaplama duraklama zamanını belirler.</string>
-  <string name="prefs_cpu_time_max_header">CPU sınırı</string>
-  <string name="prefs_cpu_time_max_description">BOINC\'in hesaplama için kullanabileceği CPU gücü.</string>
-  <string name="prefs_memory_max_idle_header">Bellek limiti</string>
-  <string name="prefs_memory_max_idle_description">İşlerin kullanabileceği en fazla bellek (RAM) miktarı.</string>
-  <string name="prefs_client_log_flags_header">BOINC istemci günlüğü bayrakları</string>
-  <string name="prefs_gui_log_level_header">GUI günlük seviyesi</string>
-  <string name="prefs_gui_log_level_description">Grafik arabirimi (GUI) günlüğü mesaj ayrıntı düzeyi.</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">sn</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Projeler okunuyor...</string>
-  <string name="projects_add">Proje ekle</string>
-  <string name="projects_icon">Proje simgesi</string>
-  <string name="projects_credits_header">Kredi:</string>
-  <string name="projects_credits_host_header">(bu cihazda)</string>
-  <string name="projects_credits_user_header">(toplam)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Kullanıcı tarafından duraklatıldı</string>
-  <string name="projects_status_dontrequestmorework">Yeni işler indirilmeyecek</string>
-  <string name="projects_status_ended">Proje sona erdi - Kaldırmak için Tamam\'a dokunun</string>
-  <string name="projects_status_detachwhendone">İşler tamamlandığında kaldırılacak</string>
-  <string name="projects_status_schedrpcpending">Zamanlanmış istek kuyrukta</string>
-  <string name="projects_status_schedrpcinprogress">Zamanlanmış istek gerçekleştiriliyor</string>
-  <string name="projects_status_trickleuppending">İş ilerleme mesajı kuyrukta</string>
-  <string name="projects_status_backoff">İletişim ertelendi:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Proje komutları:</string>
-  <string name="projects_control_visit_website">Sitesine git</string>
-  <string name="projects_control_update">Güncelle</string>
-  <string name="projects_control_remove">Kaldır</string>
-  <string name="projects_control_suspend">Duraklat</string>
-  <string name="projects_control_resume">Sürdür</string>
-  <string name="projects_control_nonewtasks">Yeni işler indirme</string>
-  <string name="projects_control_allownewtasks">Yeni işler indir</string>
-  <string name="projects_control_reset">Sıfırla</string>
-  <string name="projects_control_dialog_title_acctmgr">Hesap Yöneticisi komutları:</string>
-  <string name="projects_control_sync_acctmgr">Eşitle</string>
-  <string name="projects_control_remove_acctmgr">Devredışı bırak</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Proje kaldırılsın mı?</string>
-  <string name="projects_confirm_detach_message">Kaldırmak istediğinizden emin misiniz?</string>
-  <string name="projects_confirm_detach_message2">BOINC\'ten? </string>
-  <string name="projects_confirm_detach_confirm">Kaldır</string>
-  <string name="projects_confirm_reset_title">Projeyi sıfırla</string>
-  <string name="projects_confirm_reset_message">Bu proje sıfırlansın mı:</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Sıfırla</string>
-  <string name="projects_confirm_remove_acctmgr_title">Hesap Yöneticisini devredışı bırak</string>
-  <string name="projects_confirm_remove_acctmgr_message">Bu hesap yöneticisini kullanmayı bırakmak istiyor musunuz:</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Devredışı bırak</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">İş adı:</string>
-  <string name="tasks_header_elapsed_time">Geçen süre:</string>
-  <string name="tasks_header_project_paused">(beklemede)</string>
-  <string name="tasks_header_deadline">Son teslim zamanı:</string>
-  <string name="tasks_result_new">yeni</string>
-  <string name="tasks_result_files_downloading">indirilmeyi bekliyor</string>
-  <string name="tasks_result_files_downloaded">indirme tamamlandı</string>
-  <string name="tasks_result_compute_error">hesaplama hatası</string>
-  <string name="tasks_result_files_uploading">gönderiliyor</string>
-  <string name="tasks_result_files_uploaded">gönderme tamamlandı</string>
-  <string name="tasks_result_aborted">iptal edildi</string>
-  <string name="tasks_result_upload_failed">gönderme başarısız</string>
-  <string name="tasks_active_uninitialized">başlamaya hazır</string>
-  <string name="tasks_active_executing">çalışıyor</string>
-  <string name="tasks_active_suspended">durakladı</string>
-  <string name="tasks_active_abort_pending">durduruluyor</string>
-  <string name="tasks_active_quit_pending">durduruluyor</string>
-  <string name="tasks_custom_suspended_via_gui">durakladı</string>
-  <string name="tasks_custom_project_suspended_via_gui">proje duraklatıldı</string>
-  <string name="tasks_custom_ready_to_report">raporlanmaya hazır</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">İş iptal edilsin mi?</string>
-  <string name="confirm_abort_task_message">Bu iş iptal edilsin :</string>
-  <string name="confirm_abort_task_confirm">İptal</string>
-  <string name="confirm_cancel">Vazgeç</string>
-  <string name="confirm_image_desc">Onaylama sorusu</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Aktarımlar okunuyor...</string>
-  <string name="trans_upload">Yükleme</string>
-  <string name="trans_download">İndirme</string>
-  <string name="trans_retryin">yeniden denenecek </string>
-  <string name="trans_failed">başarısız</string>
-  <string name="trans_suspended">durakladı</string>
-  <string name="trans_active">sürüyor</string>
-  <string name="trans_pending">kuyrukta</string>
-  <string name="trans_projectbackoff">proje ertelendi</string>
-  <string name="trans_header_name">Dosya:</string>
-  <string name="trans_control_retry">Aktarımları yeniden dene</string>
-  <string name="confirm_abort_trans_title">Aktarım iptal edilsin mi?</string>
-  <string name="confirm_abort_trans_message">Bu dosyanın aktarımı iptal edilsin mi:</string>
-  <string name="confirm_abort_trans_confirm">Evet</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Bildirimler alınıyor...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Günlük mesajları yükleniyor...</string>
-  <string name="eventlog_client_header">İstemci Mesajları</string>
-  <string name="eventlog_gui_header">GUI Mesajları</string>
-  <string name="eventlog_copy_toast">Günlük mesajları panoya kopyalandı.</string>
-  <string name="eventlog_email_subject">BONIC Android olay günlüğü:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Hesaplama durakladı.</string>
-  <string name="suspend_batteries">Hesaplamayı sürdürmek için cihazınızı şarja takın.</string>
-  <string name="suspend_screen_on">Hesaplamaya devam etmek için ekranı kapat.</string>
-  <string name="suspend_useractive">Kullanıcı faal.</string>
-  <string name="suspend_tod">Hesaplama zaman sınırlaması dışında.</string>
-  <string name="suspend_bm">BOINC cihazınızı test ediyor...</string>
-  <string name="suspend_disksize">Depolama alanı yetersiz.</string>
-  <string name="suspend_cputhrottle">Zamanlanmış CPU sınırlaması.</string>
-  <string name="suspend_noinput">Yakın zamanda kullanıcı faaaliyeti yok.</string>
-  <string name="suspend_delay">Başlatma geciktirmesi.</string>
-  <string name="suspend_exclusiveapp">Ayrıcalıklı bir uygulama çalışıyor.</string>
-  <string name="suspend_cpu">Cihazınız diğer uygulamalarla meşgul.</string>
-  <string name="suspend_network_quota">BOINC, internet kullanım kotasına ulaştı.</string>
-  <string name="suspend_os">Android tarafından durduruldu.</string>
-  <string name="suspend_wifi">WiFi\'a bağlı değil.</string>
-  <string name="suspend_battery_charging">Pilin şarj olması bekleniyor.</string>
-  <string name="suspend_battery_charging_long">Hesaplama, pil seviyesi şuna ulaştğında başlayacak:</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">şu anda</string>
-  <string name="suspend_battery_overheating">Pilin soğuması bekleniyor</string>
-  <string name="suspend_user_req">Hesaplama sürdürülüyor...</string>
-  <string name="suspend_network_user_req">elle.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">Kullanıcı tarafından istendi</string>
-  <string name="rpcreason_needwork">İş indirmek için</string>
-  <string name="rpcreason_resultsdue">Tamamlanan işleri raporlamak için</string>
-  <string name="rpcreason_trickleup">İş ilerleme mesajı gönderimi için</string>
-  <string name="rpcreason_acctmgrreq">Hesap yöneticisi tarafından istendi</string>
-  <string name="rpcreason_init">Proje başlatılıyor</string>
-  <string name="rpcreason_projectreq">Proje tarafından istendi</string>
-  <string name="rpcreason_unknown">Bilinmeyen sebep</string>
-  <!--menu-->
-  <string name="menu_refresh">Yenile</string>
-  <string name="menu_emailto">ePostayla gönder</string>
-  <string name="menu_copy">Panoya kopyala</string>
-  <string name="menu_eventlog">Olay Günlüğü</string>
-  <string name="menu_exit">BOINC\'ten Çık</string>
-  <string name="menu_run_mode_disable">Duraklat</string>
-  <string name="menu_run_mode_enable">Sürdür</string>
-  <string name="menu_about">Hakkında</string>
-  <string name="menu_help">Yardım</string>
-  <!--about dialog-->
-  <string name="about_button">Geri dön</string>
-  <string name="about_title">Hakkında</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Sürüm</string>
-  <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-  <string name="about_copyright">© 2003 - 2014 California Üniversitesi, Berkeley.</string>
-  <string name="about_copyright_reserved">Tüm Hakları Saklıdır.</string>
-  <string name="about_credits">Verdikleri destek için Max Planck Enstitüsü Yerçekimi Fizik Bölümü\'ne, IBM  ve HTC şirketlerine teşekkürler.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Yeni bildirim gönderen</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">yeni bildirimler</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Gönüllü hesaplama uygulaması tespit edildi.</string>
-  <string name="nonexcl_dialog_text">Bu cihazda başka bir gönüllü hesaplama uygulaması çalışıyor. Aynı anda sadece bir versiyon çalışabilir.</string>
-  <string name="nonexcl_dialog_exit">Çıkış</string>
-  <!--social integration-->
-  <string name="social_invite_button">Arkadaşlarını davet et</string>
-  <string name="social_invite_intent_title">Nasıl paylaşmak istiyorsunuz?</string>
-  <string name="social_invite_content_title">Akıllı telefonumdan bilim yapıyorum!</string>
-  <string name="social_invite_content_body">Bilim adına hesaplama yapmak için %1$s mı kullanıyorum. Sende katılabilirsin! Uygulamayı %2$s dan indirebilirsin.</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-uk/strings.xml b/android/BOINC/res/values-uk/strings.xml
deleted file mode 100644
index 287bb83..0000000
--- a/android/BOINC/res/values-uk/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">Завантаження! Зачекайте, будь ласка...</string>
-  <string name="generic_button_continue">Продовжити</string>
-  <string name="generic_button_finish">Готово</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">Оберіть наукові проекти, в яких ви бажаєте прийняти участь:</string>
-  <string name="attachproject_list_header">Оберіть проект:</string>
-  <string name="attachproject_list_manual_button">Додати проект за адресою (URL)</string>
-  <string name="attachproject_list_manual_dialog_title">Введіть адресу (URL) проекту:</string>
-  <string name="attachproject_list_manual_dialog_button">Додати проект</string>
-  <string name="attachproject_list_manual_no_url">Будь ласка, введіть адресу (URL) проекту:</string>
-  <string name="attachproject_list_acctmgr_button">Додати менеджер проектів</string>
-  <string name="attachproject_list_no_internet">Відсутнє з’єднання з Інтернетом</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">Введіть інформацію облікового запису</string>
-  <string name="attachproject_credential_input_desc">Введіть інформацію облікового запису для обраних проектів:</string>
-  <string name="attachproject_credential_input_show_pwd">Показати пароль</string>
-  <string name="attachproject_individual_credential_input">Додати проекти окремо</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">Під час додавання проекту виникли проблеми</string>
-  <string name="attachproject_conflict_undefined">Неможливо встановити зв’язок</string>
-  <string name="attachproject_conflict_not_unique">Невірний пароль існуючого облікового запису</string>
-  <string name="attachproject_conflict_bad_password">Невірний пароль</string>
-  <string name="attachproject_conflict_unknown_user">Такий обліковий запис не існує</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">Такий обліковий запис не існує, перейдіть на сторінку проекта для реєстрації</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">Додавання</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">Порада</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">Як прийняти участь:</string>
-  <string name="attachproject_hint_contribtion_wifi">1. Підключити пристрій до WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2. Підключити пристрій до джерела живлення</string>
-  <string name="attachproject_hint_contribtion_screen">3. Вимкнути екран</string>
-  <string name="attachproject_hint_projectwebsite_header">Відвідати інтернет сторінку проекту:</string>
-  <string name="attachproject_hint_projectwebsite_science">Дізнатися більше про науковий аспект</string>
-  <string name="attachproject_hint_projectwebsite_stats">Переглянути статистику участі</string>
-  <string name="attachproject_hint_projectwebsite_community">Контактувати з іншими волонтерами</string>
-  <string name="attachproject_hint_platforms_header">BOINC також доступний для вашого комп’ютера або ноутбука, відвідайте boinc.berkeley.edu, щоб дізнатися більше.</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">Встановлення з’єднання із сервером проекту</string>
-  <string name="attachproject_login_image_description">Логотип проекту.</string>
-  <string name="attachproject_login_header_general_area">Загальна область:</string>
-  <string name="attachproject_login_header_specific_area">Спеціальна область:</string>
-  <string name="attachproject_login_header_description">Опис:</string>
-  <string name="attachproject_login_header_home">Домівка:</string>
-  <string name="attachproject_login_header_url">Веб-сторінка:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">Цей проект підтримує пристрої на базі Android</string>
-  <string name="attachproject_login_platform_not_supported">Цей проект не підтримує пристрої на базі Android</string>
-  <string name="attachproject_login_category_terms_of_use">Умови використання для</string>
-  <string name="attachproject_login_accept_terms_of_use">Створюючи обліковий запис у цьому проекті, Ви приймаєте умови використання, що викладені вище.</string>
-  <string name="attachproject_login_category_login">Увійти з існуючим обліковим записом</string>
-  <string name="attachproject_login_header_id_email">Електронна пошта:</string>
-  <string name="attachproject_login_header_id_name">Ім\'я:</string>
-  <string name="attachproject_login_header_pwd">Пароль:</string>
-  <string name="attachproject_login_category_creation">Новий</string>
-  <string name="attachproject_login_header_creation_enabled">Зареєструвати обліковий запис для участі:</string>
-  <string name="attachproject_login_header_creation_client_disabled">Відвідати інтернет сторінку проекту для створення облікового запису:</string>
-  <string name="attachproject_login_header_creation_disabled">Цей проект тимчасово не реєструє нові облікові записи</string>
-  <string name="attachproject_login_button_registration">Зареєструватися</string>
-  <string name="attachproject_login_button_login">Увійти</string>
-  <string name="attachproject_login_button_forgotpw">Забули пароль?</string>
-  <string name="attachproject_login_error_toast">Не вдалося з’єднатися з проектом!</string>
-  <string name="attachproject_login_attached">Додано</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">Реєстрація облікового запису для</string>
-  <string name="attachproject_registration_header_url">Проект:</string>
-  <string name="attachproject_registration_header_email">Електронна пошта:</string>
-  <string name="attachproject_registration_header_username">Ім\'я:</string>
-  <string name="attachproject_registration_header_teamname">Команда:</string>
-  <string name="attachproject_registration_header_pwd">Пароль:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… Повторити:</string>
-  <string name="attachproject_registration_button">Створити</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">Використовуйте менеджер проектів BOINC, щоб додати та керувати декількома проектами</string>
-  <string name="attachproject_acctmgr_header">Додати менеджер проектів</string>
-  <string name="attachproject_acctmgr_header_url">Адреса (URL)</string>
-  <string name="attachproject_acctmgr_header_name">Користувач:</string>
-  <string name="attachproject_acctmgr_header_pwd">Пароль:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… Повторити:</string>
-  <string name="attachproject_acctmgr_button">Додати</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">Користувача не знайдено</string>
-  <string name="attachproject_error_short_pwd">Пароль надто короткий</string>
-  <string name="attachproject_error_no_internet">Невдала спроба зв’язку</string>
-  <string name="attachproject_error_pwd_no_match">Паролі не збігаються</string>
-  <string name="attachproject_error_pwd_no_retype">Будь ласка, введіть пароль ще раз</string>
-  <string name="attachproject_error_no_url">Будь ласка, введіть адресу (URL)</string>
-  <string name="attachproject_error_no_email">Будь ласка, вкажіть адресу електронної пошти</string>
-  <string name="attachproject_error_no_pwd">Будь ласка, введіть пароль</string>
-  <string name="attachproject_error_no_name">Будь ласка, введіть ім\'я користувача</string>
-  <string name="attachproject_error_unknown">невдало</string>
-  <string name="attachproject_error_bad_username">Ім\'я користувача відхилене</string>
-  <string name="attachproject_error_email_in_use">Адреса електронної пошти вже використовується</string>
-  <string name="attachproject_error_project_down">Проект поза мережею</string>
-  <string name="attachproject_error_email_bad_syntax">Адресу електронної пошти відхилено</string>
-  <string name="attachproject_error_bad_pwd">Пароль відхилено</string>
-  <string name="attachproject_error_creation_disabled">Можливість створення облікових записів в даному проекті відключена</string>
-  <string name="attachproject_error_invalid_url">Неправильна адреса (URL)</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">Назад</string>
-  <string name="attachproject_working_finish_button">Готово</string>
-  <string name="attachproject_working_check_desc">Успішно</string>
-  <string name="attachproject_working_failed_desc">Невдало</string>
-  <string name="attachproject_working_ongoing">...</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">Підключитися</string>
-  <string name="attachproject_working_verify">Перевірити обліковий запис</string>
-  <string name="attachproject_working_register">Зареєструвати обліковий запис</string>
-  <string name="attachproject_working_login">Увійти</string>
-  <string name="attachproject_working_acctmgr">Додати менеджер проектів</string>
-  <string name="attachproject_working_acctmgr_sync">Синхронізувати</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">Щоб обрати проект натисніть тут.</string>
-  <string name="main_error">Ой!</string>
-  <string name="main_error_long">…цього не повинно траплятися!\nНатисніть на іконці для повторної спроби.</string>
-  <string name="main_title_icon_desc">Іконка BOINC</string>
-  <!--tab names-->
-  <string name="tab_status">Статус</string>
-  <string name="tab_projects">Проекти</string>
-  <string name="tab_tasks">Завдання</string>
-  <string name="tab_transfers">Передачі</string>
-  <string name="tab_preferences">Налаштування</string>
-  <string name="tab_notices">Примітки</string>
-  <string name="tab_desc">Навігація</string>
-  <!--status strings-->
-  <string name="status_running">Обчислення</string>
-  <string name="status_running_long">Дякуємо за участь.</string>
-  <string name="status_paused">Призупинено</string>
-  <string name="status_idle">Нема роботи</string>
-  <string name="status_idle_long">Очікування завдань…</string>
-  <string name="status_computing_disabled">Призупинено</string>
-  <string name="status_computing_disabled_long">Натисніть кнопку Грати для відновлення обчислень та зв’язку з мережею.</string>
-  <string name="status_launching">Запуск…</string>
-  <string name="status_noproject">Оберіть проект для прийняття участі в ньому.</string>
-  <string name="status_closing">Закриття...</string>
-  <string name="status_benchmarking">Тестування...</string>
-  <string name="status_image_description">зображення проекту</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">Читання налаштувань...</string>
-  <string name="prefs_submit_button">Зберегти</string>
-  <string name="prefs_dialog_title">Ввести нове значення:</string>
-  <string name="prefs_dialog_title_selection">Вибрати:</string>
-  <string name="prefs_category_general">Основні</string>
-  <string name="prefs_category_network">Мережа</string>
-  <string name="prefs_category_power">Живлення</string>
-  <string name="prefs_category_cpu">ЦП</string>
-  <string name="prefs_category_storage">Диск</string>
-  <string name="prefs_category_memory">Пам`ять</string>
-  <string name="prefs_category_debug">Діагностика</string>
-  <string name="prefs_show_advanced_header">Показати додаткові налаштування та елементи керування...</string>
-  <string name="prefs_suspend_when_screen_on">Призупиняти обчислення, коли екран увімкнуто</string>
-  <string name="prefs_stationary_device_mode_header">Стаціонарний режим роботи пристрою</string>
-  <string name="prefs_stationary_device_mode_description">Дозволяє робити обчислення не дивлячись на налаштування Живлення. Вмикати, тільки якщо пристрой не має акумулятора.</string>
-  <string name="prefs_power_source_header">Джерела живлення для обчислювання</string>
-  <string name="prefs_power_source_description">Оберіть джерела живлення, які BOINC може використовувати для обчислення.</string>
-  <string name="prefs_power_source_ac">Розетка</string>
-  <string name="prefs_power_source_usb">Підключення по USB</string>
-  <string name="prefs_power_source_wireless">Бездротовий зарядний пристрій</string>
-  <string name="prefs_power_source_battery">Акумулятор</string>
-  <string name="battery_charge_min_pct_header">Мін. заряд батареї</string>
-  <string name="battery_charge_min_pct_description">BOINC призупиняє обчислення нижче визначеного рівня заряду акумулятора.</string>
-  <string name="battery_temperature_max_header">Макс. температура батареї</string>
-  <string name="battery_temperature_max_description">BOINC призупинить розрахунки, коли температура батареї перевищить вказаний рівень. Не рекомендовано змінювати це значення.</string>
-  <string name="prefs_disk_max_pct_header">Макс. об’єм диска для використання</string>
-  <string name="prefs_disk_max_pct_description">Скільки відсотків дискового простору може використовувати BOINC?</string>
-  <string name="prefs_disk_min_free_gb_header">Мін. запас дискового простору</string>
-  <string name="prefs_disk_min_free_gb_description">Скільки вашого дискового простору повинно залишитися вільним?</string>
-  <string name="prefs_disk_access_interval_header">Період доступу</string>
-  <string name="prefs_disk_access_interval_description">Пропонує проміжок між доступами до диску</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">Денний ліміт передачі</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">Обмеження щоденної передачі даних, що здійснює BOINC.</string>
-  <string name="prefs_network_wifi_only_header">Передавати завдання тільки через WiFi</string>
-  <string name="prefs_autostart_header">Автозапуск</string>
-  <string name="prefs_show_notification_notices_header">Сповіщати про нові повідомлення</string>
-  <string name="prefs_show_notification_suspended_header">Сповіщати навіть коли призупинено</string>
-  <string name="prefs_cpu_number_cpus_header">Використано ядер ЦП</string>
-  <string name="prefs_cpu_number_cpus_description">Обмежує кількість ядер ЦП, які BOINC використовує для обчислень.</string>
-  <string name="prefs_cpu_other_load_suspension_header">Призупиняти, коли використання ЦП вище, ніж</string>
-  <string name="prefs_cpu_other_load_suspension_description">Визначає, коли BOINC призупиняє обчислення через використання процессора іншими додатками.</string>
-  <string name="prefs_cpu_time_max_header">Обмеження ЦП</string>
-  <string name="prefs_cpu_time_max_description">Обмежує процесорний час роботи, який BOINC використовує для обчислень.</string>
-  <string name="prefs_memory_max_idle_header">Обмеження RAM</string>
-  <string name="prefs_memory_max_idle_description">Обмеження кількості RAM, доступної для використання.</string>
-  <string name="prefs_client_log_flags_header">Прапорці журналу клієнта BOINC</string>
-  <string name="prefs_gui_log_level_header">Рівень журналу GUI</string>
-  <string name="prefs_gui_log_level_description">Задає рівень деталізації повідомлень журналу GUI.</string>
-  <string name="prefs_unit_mb">Мб</string>
-  <string name="prefs_unit_gb">Гб</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">сек.</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">Читання проектів...</string>
-  <string name="projects_add">Додати проект</string>
-  <string name="projects_icon">Іконка проекту</string>
-  <string name="projects_credits_header">Бали:</string>
-  <string name="projects_credits_host_header">(на цьому пристрої)</string>
-  <string name="projects_credits_user_header">(загалом)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">Призупинено користувачем</string>
-  <string name="projects_status_dontrequestmorework">Не приймати нові завдання</string>
-  <string name="projects_status_ended">Проект завершено - можна видаляти</string>
-  <string name="projects_status_detachwhendone">Буде видалено після завершення завдань</string>
-  <string name="projects_status_schedrpcpending">Запит інформації у планувальника</string>
-  <string name="projects_status_schedrpcinprogress">Відбувається запит інформації у планувальника</string>
-  <string name="projects_status_trickleuppending">Очікування проміжного відправлення</string>
-  <string name="projects_status_backoff">Зв’язок за розкладом:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">Команди проекту:</string>
-  <string name="projects_control_visit_website">Відвідати веб-сторінку</string>
-  <string name="projects_control_update">Оновити</string>
-  <string name="projects_control_remove">Видалити</string>
-  <string name="projects_control_suspend">Призупинити</string>
-  <string name="projects_control_resume">Відновити</string>
-  <string name="projects_control_nonewtasks">Не завантажувати нові завдання</string>
-  <string name="projects_control_allownewtasks">Отримувати нові завдання</string>
-  <string name="projects_control_reset">Скинути</string>
-  <string name="projects_control_dialog_title_acctmgr">Команди менеджера проектів:</string>
-  <string name="projects_control_sync_acctmgr">Синхронізувати</string>
-  <string name="projects_control_remove_acctmgr">Відключити</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">Видалити проект?</string>
-  <string name="projects_confirm_detach_message">Ви справді хочете видалити</string>
-  <string name="projects_confirm_detach_message2">із BOINC?</string>
-  <string name="projects_confirm_detach_confirm">Видалити</string>
-  <string name="projects_confirm_reset_title">Перезапустити проект</string>
-  <string name="projects_confirm_reset_message">Ви справді хочете перезапустити</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">Перезапустити</string>
-  <string name="projects_confirm_remove_acctmgr_title">Відключити менеджер проектів</string>
-  <string name="projects_confirm_remove_acctmgr_message">Ви впевнені, що бажаєте припинити використання</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">Відключити</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">Назва завдання:</string>
-  <string name="tasks_header_elapsed_time">Витрачено часу:</string>
-  <string name="tasks_header_project_paused">(призупинено)</string>
-  <string name="tasks_header_deadline">Кінцевий термін:</string>
-  <string name="tasks_result_new">нове</string>
-  <string name="tasks_result_files_downloading">очікування завантаження</string>
-  <string name="tasks_result_files_downloaded">звантаження завершене</string>
-  <string name="tasks_result_compute_error">помилка обчислень</string>
-  <string name="tasks_result_files_uploading">відправлення</string>
-  <string name="tasks_result_files_uploaded">відправлення завершене</string>
-  <string name="tasks_result_aborted">перервано</string>
-  <string name="tasks_result_upload_failed">невдала спроба відправлення</string>
-  <string name="tasks_active_uninitialized">готово</string>
-  <string name="tasks_active_executing">працює</string>
-  <string name="tasks_active_suspended">призупинено</string>
-  <string name="tasks_active_abort_pending">призупинення</string>
-  <string name="tasks_active_quit_pending">призупинення</string>
-  <string name="tasks_custom_suspended_via_gui">призупинено</string>
-  <string name="tasks_custom_project_suspended_via_gui">проект призупинено</string>
-  <string name="tasks_custom_ready_to_report">готовий до звітування</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">Перервати завдання?</string>
-  <string name="confirm_abort_task_message">Перервати завдання:</string>
-  <string name="confirm_abort_task_confirm">Перервати</string>
-  <string name="confirm_cancel">Скасувати</string>
-  <string name="confirm_image_desc">Діалог підтвердження</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">Читання передач...</string>
-  <string name="trans_upload">Відправлення</string>
-  <string name="trans_download">Завантаження</string>
-  <string name="trans_retryin">повторна спроба через</string>
-  <string name="trans_failed">невдало</string>
-  <string name="trans_suspended">призупинено</string>
-  <string name="trans_active">активна</string>
-  <string name="trans_pending">в очікуванні</string>
-  <string name="trans_projectbackoff">запит до проекту відкладено на</string>
-  <string name="trans_header_name">Файл:</string>
-  <string name="trans_control_retry">Повторити передачі</string>
-  <string name="confirm_abort_trans_title">Перервати передачу?</string>
-  <string name="confirm_abort_trans_message">Перервати файл:</string>
-  <string name="confirm_abort_trans_confirm">Перервати</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">Читання приміток...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">Завантаження повідомлень журналу...</string>
-  <string name="eventlog_client_header">Повідомлення клієнта</string>
-  <string name="eventlog_gui_header">Повідомлення GUI</string>
-  <string name="eventlog_copy_toast">Журнал скопійований в буфер обміну.</string>
-  <string name="eventlog_email_subject">Журнал подій для BOINC на Android:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">Обчислення призупинене.</string>
-  <string name="suspend_batteries">Підключіть свій пристрій до зарядного пристрою для продовження обчислення.</string>
-  <string name="suspend_screen_on">Вимкніть екран для продовження обчислення.</string>
-  <string name="suspend_useractive">Працює користувач.</string>
-  <string name="suspend_tod">Закінчився час, виділений для обчислень.</string>
-  <string name="suspend_bm">BOINC визначає продуктивність вашого пристрою...</string>
-  <string name="suspend_disksize">Недостатньо місця на диску.</string>
-  <string name="suspend_cputhrottle">Заплановане обмеження навантаження процесора.</string>
-  <string name="suspend_noinput">Останнім часом користувач неактивний.</string>
-  <string name="suspend_delay">Ініціалізація відкладена.</string>
-  <string name="suspend_exclusiveapp">Виконується привілейований додаток.</string>
-  <string name="suspend_cpu">Ваш пристрій зайнятий іншими додатками.</string>
-  <string name="suspend_network_quota">BOINC досяг межі передачі даних мережею.</string>
-  <string name="suspend_os">Зупинено Android-ом.</string>
-  <string name="suspend_wifi">Відсутнє підключення до WiFi.</string>
-  <string name="suspend_battery_charging">Очікування більшого рівня заряду акумулятора.</string>
-  <string name="suspend_battery_charging_long">Обчислення продовжаться, коли заряд батареї досягне</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">зараз</string>
-  <string name="suspend_battery_overheating">Очікування охолодження акумулятора</string>
-  <string name="suspend_user_req">Поновлення обчислень...</string>
-  <string name="suspend_network_user_req">вручну.</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">На вимогу користувача</string>
-  <string name="rpcreason_needwork">Надіслати запит на завдання</string>
-  <string name="rpcreason_resultsdue">Повідомити про виконані завдання</string>
-  <string name="rpcreason_trickleup">Надіслати проміжне повідомлення</string>
-  <string name="rpcreason_acctmgrreq">На запит менеджера проектів</string>
-  <string name="rpcreason_init">Ініціалізація проекту</string>
-  <string name="rpcreason_projectreq">На запит проекту</string>
-  <string name="rpcreason_unknown">Невідома причина</string>
-  <!--menu-->
-  <string name="menu_refresh">Оновити</string>
-  <string name="menu_emailto">Надіслати електронною поштою</string>
-  <string name="menu_copy">Копіювати в буфер обміну</string>
-  <string name="menu_eventlog">Журнал подій</string>
-  <string name="menu_exit">Вийти з BOINC</string>
-  <string name="menu_run_mode_disable">Призупинити</string>
-  <string name="menu_run_mode_enable">Відновити</string>
-  <string name="menu_about">Про додаток</string>
-  <string name="menu_help">Довідка</string>
-  <!--about dialog-->
-  <string name="about_button">Повернутися</string>
-  <string name="about_title">Про додаток</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">Версія</string>
-  <string name="about_name_long">Відкрита інфраструктура для розподілених обчислень університету Берклі</string>
-  <string name="about_copyright">© 2003-2014 Університет Каліфорнії, Берклі.\nВсі права захищено.</string>
-  <string name="about_copyright_reserved">Всі права захищені.</string>
-  <string name="about_credits">Дякуємо Max Planck Institute for Gravitational Physics, IBM Corporation та HTC Corporation за їх підтримку.</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">Нові повідомлення від</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">нові повідомлення</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">Знайдено додаток добровільних обчислень</string>
-  <string name="nonexcl_dialog_text">Інший додаток добровільних обчислень вже працює на цьому пристрої. Тільки один додаток може працювати одночасно.</string>
-  <string name="nonexcl_dialog_exit">Вийти</string>
-  <!--social integration-->
-  <string name="social_invite_button">Запросити друзів</string>
-  <string name="social_invite_intent_title">Як ви бажаєто поділитися?</string>
-  <string name="social_invite_content_title">Я приймаю участь у наукових обчисленнях на моєму смартфоні!</string>
-  <string name="social_invite_content_body">Я вікористовую %1$s для наукових обчислень. Ти також можешь прийняти участь! Завантажуй додаток звідси: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-zh-rCN/strings.xml b/android/BOINC/res/values-zh-rCN/strings.xml
deleted file mode 100644
index b487346..0000000
--- a/android/BOINC/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">载入中!请稍候...</string>
-  <string name="generic_button_continue">继续</string>
-  <string name="generic_button_finish">完成</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">请选择您希望参加的科学项目:</string>
-  <string name="attachproject_list_header">选择一个项目</string>
-  <string name="attachproject_list_manual_button">通过URL添加项目</string>
-  <string name="attachproject_list_manual_dialog_title">输入项目网址:</string>
-  <string name="attachproject_list_manual_dialog_button">添加项目</string>
-  <string name="attachproject_list_manual_no_url">请输入项目网址</string>
-  <string name="attachproject_list_acctmgr_button">添加项目管理器</string>
-  <string name="attachproject_list_no_internet">无法连接到互联网</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">输入帐户信息</string>
-  <string name="attachproject_credential_input_desc">请输入所选项目的账户信息</string>
-  <string name="attachproject_credential_input_show_pwd">显示密码</string>
-  <string name="attachproject_individual_credential_input">分别添加项目</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">在添加项目时遇到以下问题:</string>
-  <string name="attachproject_conflict_undefined">无法连接</string>
-  <string name="attachproject_conflict_not_unique">账户已存在,但密码错误</string>
-  <string name="attachproject_conflict_bad_password">密码错误</string>
-  <string name="attachproject_conflict_unknown_user">账户不存在</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">账户不存在,请到项目网站上注册</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">正在添加</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">提示</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">如何参与:</string>
-  <string name="attachproject_hint_contribtion_wifi">1、连接到WiFi网络</string>
-  <string name="attachproject_hint_contribtion_charger">2、插上充电器</string>
-  <string name="attachproject_hint_contribtion_screen">3、关闭屏幕(锁屏)</string>
-  <string name="attachproject_hint_projectwebsite_header">访问项目网站以:</string>
-  <string name="attachproject_hint_projectwebsite_science">了解更多科学方面的内容</string>
-  <string name="attachproject_hint_projectwebsite_stats">查看所做贡献的统计数据</string>
-  <string name="attachproject_hint_projectwebsite_community">与其他志愿者交流</string>
-  <string name="attachproject_hint_platforms_header">BOINC也有电脑版本,请访问 boinc.berkeley.edu 了解更多信息。</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">与项目服务器通信中...</string>
-  <string name="attachproject_login_image_description">项目标识</string>
-  <string name="attachproject_login_header_general_area">大致地区:</string>
-  <string name="attachproject_login_header_specific_area">具体地区:</string>
-  <string name="attachproject_login_header_description">描述:</string>
-  <string name="attachproject_login_header_home">主页:</string>
-  <string name="attachproject_login_header_url">网站:</string>
-  <string name="attachproject_login_header_platform">安卓:</string>
-  <string name="attachproject_login_platform_supported">项目支持此设备</string>
-  <string name="attachproject_login_platform_not_supported">项目不支持此设备</string>
-  <string name="attachproject_login_category_terms_of_use">使用协议</string>
-  <string name="attachproject_login_accept_terms_of_use">在项目中创建账户即代表您同意上述使用协议</string>
-  <string name="attachproject_login_category_login">用已有的账户登录</string>
-  <string name="attachproject_login_header_id_email">电子邮箱地址:</string>
-  <string name="attachproject_login_header_id_name">姓名:</string>
-  <string name="attachproject_login_header_pwd">密码:</string>
-  <string name="attachproject_login_category_creation">第一次加入</string>
-  <string name="attachproject_login_header_creation_enabled">注册帐号来参与志愿计算。</string>
-  <string name="attachproject_login_header_creation_client_disabled">访问项目网站以创建新账户:</string>
-  <string name="attachproject_login_header_creation_disabled">该项目目前不支持新建帐户。 </string>
-  <string name="attachproject_login_button_registration">注册</string>
-  <string name="attachproject_login_button_login">登陆</string>
-  <string name="attachproject_login_button_forgotpw">忘记密码</string>
-  <string name="attachproject_login_error_toast">与项目方通信失败!</string>
-  <string name="attachproject_login_attached">已添加</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">注册帐号</string>
-  <string name="attachproject_registration_header_url">项目:</string>
-  <string name="attachproject_registration_header_email">电子邮件地址:</string>
-  <string name="attachproject_registration_header_username">用户名:</string>
-  <string name="attachproject_registration_header_teamname">团队:</string>
-  <string name="attachproject_registration_header_pwd">密码:</string>
-  <string name="attachproject_registration_header_pwd_confirm">重新输入:</string>
-  <string name="attachproject_registration_button">创建</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">使用BOINC项目管理器来添加或管理多个项目</string>
-  <string name="attachproject_acctmgr_header">添加项目管理器</string>
-  <string name="attachproject_acctmgr_header_url">网址</string>
-  <string name="attachproject_acctmgr_header_name">用户:</string>
-  <string name="attachproject_acctmgr_header_pwd">密码:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">重新输入:</string>
-  <string name="attachproject_acctmgr_button">添加</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">未找到用户</string>
-  <string name="attachproject_error_short_pwd">密码过短</string>
-  <string name="attachproject_error_no_internet">连接失败</string>
-  <string name="attachproject_error_pwd_no_match">密码不匹配</string>
-  <string name="attachproject_error_pwd_no_retype">请重新输入密码</string>
-  <string name="attachproject_error_no_url">请输入项目网址</string>
-  <string name="attachproject_error_no_email">请输入电子邮箱地址</string>
-  <string name="attachproject_error_no_pwd">请输入密码</string>
-  <string name="attachproject_error_no_name">请输入用户名</string>
-  <string name="attachproject_error_unknown">失败</string>
-  <string name="attachproject_error_bad_username">用户名错误</string>
-  <string name="attachproject_error_email_in_use">该电子邮件地址已被使用</string>
-  <string name="attachproject_error_project_down">项目离线</string>
-  <string name="attachproject_error_email_bad_syntax">电子邮件地址错误</string>
-  <string name="attachproject_error_bad_pwd">密码错误</string>
-  <string name="attachproject_error_creation_disabled">项目不接受新的账户注册</string>
-  <string name="attachproject_error_invalid_url">错误的网址</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">上一步</string>
-  <string name="attachproject_working_finish_button">完成</string>
-  <string name="attachproject_working_check_desc">成功!</string>
-  <string name="attachproject_working_failed_desc">失败</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">。</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">连接</string>
-  <string name="attachproject_working_verify">验证账户</string>
-  <string name="attachproject_working_register">注册账户</string>
-  <string name="attachproject_working_login">登录</string>
-  <string name="attachproject_working_acctmgr">添加项目管理器</string>
-  <string name="attachproject_working_acctmgr_sync">同步</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">点击这里来选择项目。</string>
-  <string name="main_error">哦不!</string>
-  <string name="main_error_long">...这不科学!\n点击图标再试试。</string>
-  <string name="main_title_icon_desc">BOINC 图标</string>
-  <!--tab names-->
-  <string name="tab_status">状态</string>
-  <string name="tab_projects">项目</string>
-  <string name="tab_tasks">任务</string>
-  <string name="tab_transfers">网络传输</string>
-  <string name="tab_preferences">参数设置</string>
-  <string name="tab_notices">通知</string>
-  <string name="tab_desc">导航栏</string>
-  <!--status strings-->
-  <string name="status_running">正在计算</string>
-  <string name="status_running_long">感谢您对志愿计算的贡献!</string>
-  <string name="status_paused">已暂停</string>
-  <string name="status_idle">无事可做</string>
-  <string name="status_idle_long">等待新任务中...</string>
-  <string name="status_computing_disabled">已暂停</string>
-  <string name="status_computing_disabled_long">按下开始恢复网络链接和计算。</string>
-  <string name="status_launching">启动中...</string>
-  <string name="status_noproject">选择一个项目来参与志愿计算。</string>
-  <string name="status_closing">正在关闭...</string>
-  <string name="status_benchmarking">正在进行性能基准测试...</string>
-  <string name="status_image_description">项目图像</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">正在读取参数设置中,,,</string>
-  <string name="prefs_submit_button">保存</string>
-  <string name="prefs_dialog_title">输入新参数:</string>
-  <string name="prefs_dialog_title_selection">选择:</string>
-  <string name="prefs_category_general">一般</string>
-  <string name="prefs_category_network">网络</string>
-  <string name="prefs_category_power">电源</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">储存</string>
-  <string name="prefs_category_memory">内存(RAM)</string>
-  <string name="prefs_category_debug">调试</string>
-  <string name="prefs_show_advanced_header">显示高级配置</string>
-  <string name="prefs_suspend_when_screen_on">当屏幕亮时暂停计算</string>
-  <string name="prefs_stationary_device_mode_header">交流电模式</string>
-  <string name="prefs_stationary_device_mode_description">忽略电源设置。仅当设备没有电池时选择该选项。</string>
-  <string name="prefs_power_source_header">计算时的电力来源</string>
-  <string name="prefs_power_source_description">选择允许BOINC使用的电力来源。</string>
-  <string name="prefs_power_source_ac">插座电源</string>
-  <string name="prefs_power_source_usb">USB 连接</string>
-  <string name="prefs_power_source_wireless">无线充电</string>
-  <string name="prefs_power_source_battery">电池</string>
-  <string name="battery_charge_min_pct_header">最少电量</string>
-  <string name="battery_charge_min_pct_description">当电量低于设定值时BOINC将暂停计算。</string>
-  <string name="battery_temperature_max_header">最大电池温度</string>
-  <string name="battery_temperature_max_description">BOINC 当电池温度高于设定值时会暂停运算。强烈建议不要更改此选项!!</string>
-  <string name="prefs_disk_max_pct_header">最多使用的储存空间</string>
-  <string name="prefs_disk_max_pct_description">BOINC 能使用多少比例的储存空间?</string>
-  <string name="prefs_disk_min_free_gb_header">最少使用的储存空间</string>
-  <string name="prefs_disk_min_free_gb_description">您的设备有多少剩余储存空间可以使用?</string>
-  <string name="prefs_disk_access_interval_header">访问间隔</string>
-  <string name="prefs_disk_access_interval_description">建议磁盘访问间隔</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">每日传输限制</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">限制BOINC每日数据流量。</string>
-  <string name="prefs_network_wifi_only_header">只使用WiFi传输任务</string>
-  <string name="prefs_autostart_header">自启动</string>
-  <string name="prefs_show_notification_notices_header">当有新消息时显示通知</string>
-  <string name="prefs_show_notification_suspended_header">暂停时显示通知</string>
-  <string name="prefs_cpu_number_cpus_header">使用的CPU核心</string>
-  <string name="prefs_cpu_number_cpus_description">限制BOINC为计算所使用的CPU核心数目。</string>
-  <string name="prefs_cpu_other_load_suspension_header">暂停当CPU使用量高于</string>
-  <string name="prefs_cpu_other_load_suspension_description">选择当其他APP的CPU使用量大于何值时让BOINC暂停运算。</string>
-  <string name="prefs_cpu_time_max_header">CPU 用量限制</string>
-  <string name="prefs_cpu_time_max_description">限制BOINC为计算所使用的CPU时间。</string>
-  <string name="prefs_memory_max_idle_header">RAM 用量限制</string>
-  <string name="prefs_memory_max_idle_description">限制任务占用的内存(RAM)用量。</string>
-  <string name="prefs_client_log_flags_header">BOINC客户端日志记录</string>
-  <string name="prefs_gui_log_level_header">GUI (用户界面)日志详细程度</string>
-  <string name="prefs_gui_log_level_description">指定GUI日志信息的详细程度。</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">秒</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">正在读取项目...</string>
-  <string name="projects_add">增加项目</string>
-  <string name="projects_icon">项目图标</string>
-  <string name="projects_credits_header">积分:</string>
-  <string name="projects_credits_host_header">(在该设备上)</string>
-  <string name="projects_credits_user_header">(总计)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">已被用户暂停</string>
-  <string name="projects_status_dontrequestmorework">禁止下载新任务</string>
-  <string name="projects_status_ended">项目已结束 - 可以删除</string>
-  <string name="projects_status_detachwhendone">将在任务完成后删除</string>
-  <string name="projects_status_schedrpcpending">等待调度请求</string>
-  <string name="projects_status_schedrpcinprogress">正在进行调度请求</string>
-  <string name="projects_status_trickleuppending">上传消息等待中</string>
-  <string name="projects_status_backoff">通讯被延迟在:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">项目命令:</string>
-  <string name="projects_control_visit_website">访问网站</string>
-  <string name="projects_control_update">更新</string>
-  <string name="projects_control_remove">删除</string>
-  <string name="projects_control_suspend">暂停</string>
-  <string name="projects_control_resume">继续</string>
-  <string name="projects_control_nonewtasks">没有新任务</string>
-  <string name="projects_control_allownewtasks">允许下载新任务</string>
-  <string name="projects_control_reset">重置</string>
-  <string name="projects_control_dialog_title_acctmgr">帐户管理器命令:</string>
-  <string name="projects_control_sync_acctmgr">同步</string>
-  <string name="projects_control_remove_acctmgr">已禁用</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">移除项目?</string>
-  <string name="projects_confirm_detach_message">您确定要删除项目吗?</string>
-  <string name="projects_confirm_detach_message2">移除?</string>
-  <string name="projects_confirm_detach_confirm">删除</string>
-  <string name="projects_confirm_reset_title">重置项目</string>
-  <string name="projects_confirm_reset_message">您确定要重置项目吗?</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">重置</string>
-  <string name="projects_confirm_remove_acctmgr_title">禁用帐户管理器</string>
-  <string name="projects_confirm_remove_acctmgr_message">您确定要重置</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">已禁用</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">任务名称:</string>
-  <string name="tasks_header_elapsed_time">已用时间:</string>
-  <string name="tasks_header_project_paused">(已暂停)</string>
-  <string name="tasks_header_deadline">上报期限:</string>
-  <string name="tasks_result_new">新建任务</string>
-  <string name="tasks_result_files_downloading">等待下载</string>
-  <string name="tasks_result_files_downloaded">下载完成</string>
-  <string name="tasks_result_compute_error">计算错误</string>
-  <string name="tasks_result_files_uploading">正在上传</string>
-  <string name="tasks_result_files_uploaded">更新已完成</string>
-  <string name="tasks_result_aborted">已中止</string>
-  <string name="tasks_result_upload_failed">上传失败</string>
-  <string name="tasks_active_uninitialized">已准备</string>
-  <string name="tasks_active_executing">正在运行</string>
-  <string name="tasks_active_suspended">已暂停</string>
-  <string name="tasks_active_abort_pending">正在暂停</string>
-  <string name="tasks_active_quit_pending">正在暂停</string>
-  <string name="tasks_custom_suspended_via_gui">已暂停</string>
-  <string name="tasks_custom_project_suspended_via_gui">项目已暂停</string>
-  <string name="tasks_custom_ready_to_report">等待上报</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">中止任务?</string>
-  <string name="confirm_abort_task_message">中止任务:</string>
-  <string name="confirm_abort_task_confirm">中止</string>
-  <string name="confirm_cancel">取消</string>
-  <string name="confirm_image_desc">验证对话框</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">正在读取传输信息...</string>
-  <string name="trans_upload">上传</string>
-  <string name="trans_download">下载</string>
-  <string name="trans_retryin">稍后重试 </string>
-  <string name="trans_failed">失败</string>
-  <string name="trans_suspended">已暂停</string>
-  <string name="trans_active">活动</string>
-  <string name="trans_pending">等待中</string>
-  <string name="trans_projectbackoff">项目延后</string>
-  <string name="trans_header_name">文件:</string>
-  <string name="trans_control_retry">重试传输</string>
-  <string name="confirm_abort_trans_title">中断传输?</string>
-  <string name="confirm_abort_trans_message">中止文件:</string>
-  <string name="confirm_abort_trans_confirm">中止</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">正在读取通知信息...</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">正在加载日志信息...</string>
-  <string name="eventlog_client_header">客户端日志</string>
-  <string name="eventlog_gui_header">GUI 日志</string>
-  <string name="eventlog_copy_toast">日志已复制到剪贴板中。</string>
-  <string name="eventlog_email_subject">Android版BOINC的事件日志:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">计算已暂停。</string>
-  <string name="suspend_batteries">请将您的设备连接至充电器以便继续计算。</string>
-  <string name="suspend_screen_on">关闭屏幕并继续计算。</string>
-  <string name="suspend_useractive">活跃用户</string>
-  <string name="suspend_tod">超出运算期限。</string>
-  <string name="suspend_bm">BOINC 正在对设备进行性能基准测试...</string>
-  <string name="suspend_disksize">储存空间不足。</string>
-  <string name="suspend_cputhrottle">安排CPU使用。</string>
-  <string name="suspend_noinput">最近没有使用者活动。</string>
-  <string name="suspend_delay">初始化延迟。</string>
-  <string name="suspend_exclusiveapp">有互斥的应用程序在运行</string>
-  <string name="suspend_cpu">您的设备正忙与运行其他APP。</string>
-  <string name="suspend_network_quota">BOINC已达到网络传输配额限制。</string>
-  <string name="suspend_os">已被Android系统暂停。</string>
-  <string name="suspend_wifi">未连接至WiFi网络。</string>
-  <string name="suspend_battery_charging">在恢复运算之前您的电池需要充电。</string>
-  <string name="suspend_battery_charging_long">充电时将会继续计算</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">当前</string>
-  <string name="suspend_battery_overheating">等待电池冷却中</string>
-  <string name="suspend_user_req">正在恢复计算...</string>
-  <string name="suspend_network_user_req">手动操作。</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">用户发起的请求</string>
-  <string name="rpcreason_needwork">为获取新任务</string>
-  <string name="rpcreason_resultsdue">为上报已完成任务</string>
-  <string name="rpcreason_trickleup">为发送上传消息</string>
-  <string name="rpcreason_acctmgrreq">帐户管理器发起的请求</string>
-  <string name="rpcreason_init">项目初始化</string>
-  <string name="rpcreason_projectreq">项目发起的请求</string>
-  <string name="rpcreason_unknown">未知原因</string>
-  <!--menu-->
-  <string name="menu_refresh">刷新</string>
-  <string name="menu_emailto">作为电子邮件发送</string>
-  <string name="menu_copy">复制到剪贴板</string>
-  <string name="menu_eventlog">事件日志</string>
-  <string name="menu_exit">退出 BOINC</string>
-  <string name="menu_run_mode_disable">暂停</string>
-  <string name="menu_run_mode_enable">继续</string>
-  <string name="menu_about">关于</string>
-  <string name="menu_help">帮助</string>
-  <!--about dialog-->
-  <string name="about_button">返回</string>
-  <string name="about_title">关于</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">版本</string>
-  <string name="about_name_long">伯克利开放式网络计算平台 ( BOINC )</string>
-  <string name="about_copyright">\u00A9 2003–2014 加州大学伯克利分校。</string>
-  <string name="about_copyright_reserved">所有权利保留。</string>
-  <string name="about_credits">感谢马克斯普朗克引力物理学研究所、IBM 公司以及 HTC 公司的大力协助。</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">新消息来自</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">新通知</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">检测到有志愿计算APP正在运行</string>
-  <string name="nonexcl_dialog_text">有其他志愿计算APP正在运行。一次只能执行一个版本。</string>
-  <string name="nonexcl_dialog_exit">退出</string>
-  <!--social integration-->
-  <string name="social_invite_button">邀请好友</string>
-  <string name="social_invite_intent_title">您准备如何分享?</string>
-  <string name="social_invite_content_title">我在智能手机上探索科学的奥秘!</string>
-  <string name="social_invite_content_body">我的%1$s正在为科学而计算。你也可以!APP下載:%2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values-zh-rTW/strings.xml b/android/BOINC/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 50e5708..0000000
--- a/android/BOINC/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--app global-->
-  <string name="app_name">BOINC</string>
-  <!--generic. used by multiple Activities/tabs-->
-  <string name="generic_loading">載入中! 請稍後...</string>
-  <string name="generic_button_continue">繼續</string>
-  <string name="generic_button_finish">完成</string>
-  <!--attach project-->
-  <!--selection list-->
-  <string name="attachproject_list_desc">選擇您想參與的研究專案:</string>
-  <string name="attachproject_list_header">選擇專案</string>
-  <string name="attachproject_list_manual_button">用網址新增專案</string>
-  <string name="attachproject_list_manual_dialog_title">輸入專案網址:</string>
-  <string name="attachproject_list_manual_dialog_button">新增專案</string>
-  <string name="attachproject_list_manual_no_url">請輸入專案網址</string>
-  <string name="attachproject_list_acctmgr_button">新增帳號管理服務</string>
-  <string name="attachproject_list_no_internet">沒有網路連線</string>
-  <!--credential input-->
-  <string name="attachproject_credential_input_sing_desc">輸入帳號資訊</string>
-  <string name="attachproject_credential_input_desc">輸入專案的帳號資訊:</string>
-  <string name="attachproject_credential_input_show_pwd">顯示密碼</string>
-  <string name="attachproject_individual_credential_input">個別加入專案</string>
-  <!--conflicts-->
-  <string name="attachproject_conflicts_desc">加入研究專案時發生問題:</string>
-  <string name="attachproject_conflict_undefined">無法連線</string>
-  <string name="attachproject_conflict_not_unique">帳號存在但密碼不正確</string>
-  <string name="attachproject_conflict_bad_password">密碼不正確</string>
-  <string name="attachproject_conflict_unknown_user">帳號不存在</string>
-  <string name="attachproject_conflict_unknown_user_creation_disabled">帳號不存在,請到專案網站註冊</string>
-  <!--working-->
-  <string name="attachproject_working_attaching">加入中</string>
-  <!--e.g. Attaching Einstein at Home-->
-  <!--hints-->
-  <string name="attachproject_hints_header">提示</string>
-  <!--e.g. Hint 1/2-->
-  <string name="attachproject_hint_contribtion_header">如何貢獻:</string>
-  <string name="attachproject_hint_contribtion_wifi">1.連線到WiFi</string>
-  <string name="attachproject_hint_contribtion_charger">2.接上充電器</string>
-  <string name="attachproject_hint_contribtion_screen">3.關閉螢幕</string>
-  <string name="attachproject_hint_projectwebsite_header">造訪專案網站:</string>
-  <string name="attachproject_hint_projectwebsite_science">更深入了解科學</string>
-  <string name="attachproject_hint_projectwebsite_stats">查看貢獻統計</string>
-  <string name="attachproject_hint_projectwebsite_community">與其他參與者互動</string>
-  <string name="attachproject_hint_platforms_header">BOINC 也支援電腦及筆電,造訪 boinc.berkeley.edu 了解更多資訊。</string>
-  <!--project login-->
-  <string name="attachproject_login_loading">正連線到專案伺服器...</string>
-  <string name="attachproject_login_image_description">專案標誌。</string>
-  <string name="attachproject_login_header_general_area">研究領域:</string>
-  <string name="attachproject_login_header_specific_area">專業領域:</string>
-  <string name="attachproject_login_header_description">描述:</string>
-  <string name="attachproject_login_header_home">首頁:</string>
-  <string name="attachproject_login_header_url">網站:</string>
-  <string name="attachproject_login_header_platform">Android:</string>
-  <string name="attachproject_login_platform_supported">此專案支援Android裝置</string>
-  <string name="attachproject_login_platform_not_supported">此專案不支援Android裝置</string>
-  <string name="attachproject_login_category_terms_of_use">使用條款:</string>
-  <string name="attachproject_login_accept_terms_of_use">當您在這個專案建立帳號,表示您同意上述使用條款。</string>
-  <string name="attachproject_login_category_login">用現有的帳號登入</string>
-  <string name="attachproject_login_header_id_email">電子郵件:</string>
-  <string name="attachproject_login_header_id_name">名稱:</string>
-  <string name="attachproject_login_header_pwd">密碼:</string>
-  <string name="attachproject_login_category_creation">第一次加入</string>
-  <string name="attachproject_login_header_creation_enabled">註冊帳號加入:</string>
-  <string name="attachproject_login_header_creation_client_disabled">進入專案官網建立帳號:</string>
-  <string name="attachproject_login_header_creation_disabled">專案目前不允許建立新帳號。</string>
-  <string name="attachproject_login_button_registration">註冊</string>
-  <string name="attachproject_login_button_login">登入</string>
-  <string name="attachproject_login_button_forgotpw">忘記密碼</string>
-  <string name="attachproject_login_error_toast">與專案連線失敗!</string>
-  <string name="attachproject_login_attached">已加入</string>
-  <!--project registration-->
-  <string name="attachproject_registration_header">註冊帳號</string>
-  <string name="attachproject_registration_header_url">專案:</string>
-  <string name="attachproject_registration_header_email">電子郵件:</string>
-  <string name="attachproject_registration_header_username">名稱:</string>
-  <string name="attachproject_registration_header_teamname">團隊:</string>
-  <string name="attachproject_registration_header_pwd">密碼:</string>
-  <string name="attachproject_registration_header_pwd_confirm">… 再次輸入:</string>
-  <string name="attachproject_registration_button">建立</string>
-  <!--account manager-->
-  <string name="attachproject_acctmgr_list_desc">使用BOINC帳號管理服務新增及管理多個專案</string>
-  <string name="attachproject_acctmgr_header">新增帳號管理服務</string>
-  <string name="attachproject_acctmgr_header_url">網址</string>
-  <string name="attachproject_acctmgr_header_name">用戶:</string>
-  <string name="attachproject_acctmgr_header_pwd">密碼:</string>
-  <string name="attachproject_acctmgr_header_pwd_confirm">… 再次輸入:</string>
-  <string name="attachproject_acctmgr_button">新增</string>
-  <!--error strings-->
-  <string name="attachproject_error_wrong_name">找不到用戶</string>
-  <string name="attachproject_error_short_pwd">密碼太短</string>
-  <string name="attachproject_error_no_internet">連線失敗</string>
-  <string name="attachproject_error_pwd_no_match">與密碼不符</string>
-  <string name="attachproject_error_pwd_no_retype">請再次輸入密碼</string>
-  <string name="attachproject_error_no_url">請輸入用戶名稱</string>
-  <string name="attachproject_error_no_email">請輸入電子郵件</string>
-  <string name="attachproject_error_no_pwd">請輸入密碼</string>
-  <string name="attachproject_error_no_name">請輸入用戶名稱</string>
-  <string name="attachproject_error_unknown">失敗</string>
-  <string name="attachproject_error_bad_username">使用者名稱無效</string>
-  <string name="attachproject_error_email_in_use">此電子郵件已被使用</string>
-  <string name="attachproject_error_project_down">專案已離線</string>
-  <string name="attachproject_error_email_bad_syntax">電子郵件無效</string>
-  <string name="attachproject_error_bad_pwd">密碼無效</string>
-  <string name="attachproject_error_creation_disabled">此專案已停用註冊功能</string>
-  <string name="attachproject_error_invalid_url">網址不正確</string>
-  <!--working activity-->
-  <string name="attachproject_working_back_button">返回</string>
-  <string name="attachproject_working_finish_button">完成</string>
-  <string name="attachproject_working_check_desc">成功</string>
-  <string name="attachproject_working_failed_desc">失敗</string>
-  <string name="attachproject_working_ongoing">…</string>
-  <string name="attachproject_working_finished">.</string>
-  <string name="attachproject_working_description">:</string>
-  <string name="attachproject_working_connect">聯繫</string>
-  <string name="attachproject_working_verify">驗證帳號</string>
-  <string name="attachproject_working_register">註冊帳號</string>
-  <string name="attachproject_working_login">登入</string>
-  <string name="attachproject_working_acctmgr">新增帳號管理服務</string>
-  <string name="attachproject_working_acctmgr_sync">同步</string>
-  <!--main activity-->
-  <string name="main_noproject_warning">點此選擇專案。</string>
-  <string name="main_error">哎呀</string>
-  <string name="main_error_long">…這應該不會發生!\n點擊圖示再試一次。</string>
-  <string name="main_title_icon_desc">BOINC圖示</string>
-  <!--tab names-->
-  <string name="tab_status">狀態</string>
-  <string name="tab_projects">專案</string>
-  <string name="tab_tasks">任務</string>
-  <string name="tab_transfers">傳輸</string>
-  <string name="tab_preferences">偏好設定</string>
-  <string name="tab_notices">通知</string>
-  <string name="tab_desc">導航</string>
-  <!--status strings-->
-  <string name="status_running">運算中</string>
-  <string name="status_running_long">感謝您的參與。</string>
-  <string name="status_paused">已暫停</string>
-  <string name="status_idle">閒置中</string>
-  <string name="status_idle_long">等待任務中…</string>
-  <string name="status_computing_disabled">已暫停</string>
-  <string name="status_computing_disabled_long">按下開始恢復網路和運算。</string>
-  <string name="status_launching">啟動中…</string>
-  <string name="status_noproject">選一個想參加的專案。</string>
-  <string name="status_closing">關閉中…</string>
-  <string name="status_benchmarking">效能測試中...</string>
-  <string name="status_image_description">專案圖片</string>
-  <!--preferences tab strings-->
-  <string name="prefs_loading">正在讀取偏好設定...</string>
-  <string name="prefs_submit_button">儲存</string>
-  <string name="prefs_dialog_title">輸入新參數:</string>
-  <string name="prefs_dialog_title_selection">選擇:</string>
-  <string name="prefs_category_general">一般</string>
-  <string name="prefs_category_network">網路</string>
-  <string name="prefs_category_power">電源</string>
-  <string name="prefs_category_cpu">CPU</string>
-  <string name="prefs_category_storage">儲存</string>
-  <string name="prefs_category_memory">記憶體</string>
-  <string name="prefs_category_debug">偵錯</string>
-  <string name="prefs_show_advanced_header">顯示進階偏好設定...</string>
-  <string name="prefs_suspend_when_screen_on">當螢幕亮時暫停運算</string>
-  <string name="prefs_stationary_device_mode_header">固定裝置模式</string>
-  <string name="prefs_stationary_device_mode_description">忽略電源設定執行運算。僅能於裝置沒有電池時使用。</string>
-  <string name="prefs_power_source_header">運算電源選項</string>
-  <string name="prefs_power_source_description">選擇允許 BOINC 執行的電力來源</string>
-  <string name="prefs_power_source_ac">充電器</string>
-  <string name="prefs_power_source_usb">USB連線</string>
-  <string name="prefs_power_source_wireless">無線充電</string>
-  <string name="prefs_power_source_battery">電池</string>
-  <string name="battery_charge_min_pct_header">最低電量</string>
-  <string name="battery_charge_min_pct_description">BOINC在低於設定電量時即暫停運算。</string>
-  <string name="battery_temperature_max_header">最高電池溫度</string>
-  <string name="battery_temperature_max_description">BOINC當電池溫度高於預設值時暫停運算。不建議變更此設定值。</string>
-  <string name="prefs_disk_max_pct_header">最多使用儲存空間</string>
-  <string name="prefs_disk_max_pct_description">BOINC能使用多少比例的儲存空間?</string>
-  <string name="prefs_disk_min_free_gb_header">最小備用容量</string>
-  <string name="prefs_disk_min_free_gb_description">您的裝置有多少閒置空間可以使用?</string>
-  <string name="prefs_disk_access_interval_header">存取間隔</string>
-  <string name="prefs_disk_access_interval_description">建議存取資料間隔˙時間</string>
-  <string name="prefs_network_daily_xfer_limit_mb_header">每日傳輸限制</string>
-  <string name="prefs_network_daily_xfer_limit_mb_description">限制BOINC每日數據流量。</string>
-  <string name="prefs_network_wifi_only_header">只用WiFi傳輸</string>
-  <string name="prefs_autostart_header">自動執行</string>
-  <string name="prefs_show_notification_notices_header">當有新訊息時顯示通知</string>
-  <string name="prefs_show_notification_suspended_header">暫停時顯示通知</string>
-  <string name="prefs_cpu_number_cpus_header">使用CPU核心</string>
-  <string name="prefs_cpu_number_cpus_description">限制BOINC運算時使用的核心數。</string>
-  <string name="prefs_cpu_other_load_suspension_header">暫停在CPU使用率高於</string>
-  <string name="prefs_cpu_other_load_suspension_description">由其他程式使用的CPU使用率決定是否暫停BOINC。</string>
-  <string name="prefs_cpu_time_max_header">限制CPU</string>
-  <string name="prefs_cpu_time_max_description">限制BOINC運算時的CPU時間。</string>
-  <string name="prefs_memory_max_idle_header">限制RAM</string>
-  <string name="prefs_memory_max_idle_description">限制任務佔用 RAM 容量。</string>
-  <string name="prefs_client_log_flags_header">BOINC客戶端紀錄檔標籤</string>
-  <string name="prefs_gui_log_level_header">GUI日誌等級</string>
-  <string name="prefs_gui_log_level_description">指定GUI紀錄的詳細程度。</string>
-  <string name="prefs_unit_mb">MB</string>
-  <string name="prefs_unit_gb">GB</string>
-  <string name="prefs_unit_pct">%</string>
-  <string name="prefs_unit_celcius">°C</string>
-  <string name="prefs_unit_seconds">秒</string>
-  <!--projects tab strings-->
-  <string name="projects_loading">正在讀取專案…</string>
-  <string name="projects_add">新增專案</string>
-  <string name="projects_icon">專案圖示</string>
-  <string name="projects_credits_header">積分:</string>
-  <string name="projects_credits_host_header">(在此裝置上)</string>
-  <string name="projects_credits_user_header">(總共)</string>
-  <!--project status strings-->
-  <string name="projects_status_suspendedviagui">用戶已暫停</string>
-  <string name="projects_status_dontrequestmorework">拒絕新任務</string>
-  <string name="projects_status_ended">專案已停止 - 按OK移除</string>
-  <string name="projects_status_detachwhendone">當任務完成將會移除</string>
-  <string name="projects_status_schedrpcpending">排程器請求等待中</string>
-  <string name="projects_status_schedrpcinprogress">排程器請求處理中</string>
-  <string name="projects_status_trickleuppending">Trickle up訊息處理中</string>
-  <string name="projects_status_backoff">排定通訊:</string>
-  <!--project controls-->
-  <string name="projects_control_dialog_title">專案指令:</string>
-  <string name="projects_control_visit_website">造訪網站</string>
-  <string name="projects_control_update">更新</string>
-  <string name="projects_control_remove">移除</string>
-  <string name="projects_control_suspend">暫停</string>
-  <string name="projects_control_resume">繼續</string>
-  <string name="projects_control_nonewtasks">拒絕新任務</string>
-  <string name="projects_control_allownewtasks">允許新任務</string>
-  <string name="projects_control_reset">重置</string>
-  <string name="projects_control_dialog_title_acctmgr">帳號管理服務指令:</string>
-  <string name="projects_control_sync_acctmgr">同步</string>
-  <string name="projects_control_remove_acctmgr">停用</string>
-  <!--project confirm dialog-->
-  <string name="projects_confirm_detach_title">移除專案?</string>
-  <string name="projects_confirm_detach_message">您確定從BOINC將</string>
-  <string name="projects_confirm_detach_message2">移除?</string>
-  <string name="projects_confirm_detach_confirm">移除</string>
-  <string name="projects_confirm_reset_title">重置專案</string>
-  <string name="projects_confirm_reset_message">您確定要重置</string>
-  <string name="projects_confirm_reset_message2">\?</string>
-  <string name="projects_confirm_reset_confirm">重置</string>
-  <string name="projects_confirm_remove_acctmgr_title">來自帳號管理員的請求</string>
-  <string name="projects_confirm_remove_acctmgr_message">您確定要重置</string>
-  <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-  <string name="projects_confirm_remove_acctmgr_confirm">停用</string>
-  <!--tasks tab strings-->
-  <string name="tasks_header_name">任務名稱:</string>
-  <string name="tasks_header_elapsed_time">執行時間:</string>
-  <string name="tasks_header_project_paused">(暫停)</string>
-  <string name="tasks_header_deadline">上傳期限:</string>
-  <string name="tasks_result_new">新任務</string>
-  <string name="tasks_result_files_downloading">等待下載中</string>
-  <string name="tasks_result_files_downloaded">下載完成</string>
-  <string name="tasks_result_compute_error">運算錯誤</string>
-  <string name="tasks_result_files_uploading">上傳中</string>
-  <string name="tasks_result_files_uploaded">上傳完成</string>
-  <string name="tasks_result_aborted">已停止</string>
-  <string name="tasks_result_upload_failed">上傳失敗</string>
-  <string name="tasks_active_uninitialized">準備</string>
-  <string name="tasks_active_executing">運算中</string>
-  <string name="tasks_active_suspended">已暫停</string>
-  <string name="tasks_active_abort_pending">暫停中</string>
-  <string name="tasks_active_quit_pending">暫停中</string>
-  <string name="tasks_custom_suspended_via_gui">已暫停</string>
-  <string name="tasks_custom_project_suspended_via_gui">專案已暫停</string>
-  <string name="tasks_custom_ready_to_report">準備回報</string>
-  <!--confirmation dialog-->
-  <string name="confirm_abort_task_title">停止任務?</string>
-  <string name="confirm_abort_task_message">停止任務:</string>
-  <string name="confirm_abort_task_confirm">停止</string>
-  <string name="confirm_cancel">取消</string>
-  <string name="confirm_image_desc">確認對話框</string>
-  <!--transfers tab strings-->
-  <string name="trans_loading">讀取傳輸中...</string>
-  <string name="trans_upload">上傳</string>
-  <string name="trans_download">下載</string>
-  <string name="trans_retryin">重試</string>
-  <string name="trans_failed">失敗</string>
-  <string name="trans_suspended">暫停</string>
-  <string name="trans_active">進行中</string>
-  <string name="trans_pending">等待中</string>
-  <string name="trans_projectbackoff">重新連接至專案</string>
-  <string name="trans_header_name">檔案:</string>
-  <string name="trans_control_retry">重試傳輸</string>
-  <string name="confirm_abort_trans_title">停止傳輸?</string>
-  <string name="confirm_abort_trans_message">停止檔案:</string>
-  <string name="confirm_abort_trans_confirm">停止</string>
-  <!--notices tab strings-->
-  <string name="notices_loading">正在讀取通知…</string>
-  <!--eventlog tab strings-->
-  <string name="eventlog_loading">載入紀錄訊息中...</string>
-  <string name="eventlog_client_header">用戶端訊息</string>
-  <string name="eventlog_gui_header">GUI 訊息</string>
-  <string name="eventlog_copy_toast">紀錄已複製到剪貼簿。</string>
-  <string name="eventlog_email_subject">Android 的 BOINC 事件紀錄:</string>
-  <!--suspend reasons-->
-  <string name="suspend_unknown">已暫停運算。</string>
-  <string name="suspend_batteries">裝置連接到充電器時繼續運算。</string>
-  <string name="suspend_screen_on">關閉螢幕繼續運算。</string>
-  <string name="suspend_useractive">使用者處於活躍狀態。</string>
-  <string name="suspend_tod">超出運算期限。</string>
-  <string name="suspend_bm">BOINC 正在測試您的裝置效能...</string>
-  <string name="suspend_disksize">儲存空間不足。</string>
-  <string name="suspend_cputhrottle">安排 CPU 的使用。</string>
-  <string name="suspend_noinput">最近沒有使用者活動。</string>
-  <string name="suspend_delay">初始化延遲。</string>
-  <string name="suspend_exclusiveapp">有互斥的程式正在執行。</string>
-  <string name="suspend_cpu">您的裝置忙於其他程式。</string>
-  <string name="suspend_network_quota">BOINC 已達到網路傳輸上限。</string>
-  <string name="suspend_os">被 Android 系統停止。</string>
-  <string name="suspend_wifi">沒有連線到 WiFi。</string>
-  <string name="suspend_battery_charging">等待電池充電。</string>
-  <string name="suspend_battery_charging_long">充電時將會繼續運算</string>
-  <string name="suspend_battery_charging_long2"></string>
-  <string name="suspend_battery_charging_current">目前</string>
-  <string name="suspend_battery_overheating">等待電池冷卻中</string>
-  <string name="suspend_user_req">繼續運算...</string>
-  <string name="suspend_network_user_req">手動操作。</string>
-  <!--rpc reasons-->
-  <string name="rpcreason_userreq">來自用戶的請求</string>
-  <string name="rpcreason_needwork">取得任務</string>
-  <string name="rpcreason_resultsdue">回報完成的任務</string>
-  <string name="rpcreason_trickleup">傳送trickle-up訊息</string>
-  <string name="rpcreason_acctmgrreq">來自帳號管理員的請求</string>
-  <string name="rpcreason_init">專案初始化</string>
-  <string name="rpcreason_projectreq">來自專案的請求</string>
-  <string name="rpcreason_unknown">未知的原因</string>
-  <!--menu-->
-  <string name="menu_refresh">重新整理</string>
-  <string name="menu_emailto">用電子郵件傳送</string>
-  <string name="menu_copy">複製到剪貼簿</string>
-  <string name="menu_eventlog">事件記錄檔</string>
-  <string name="menu_exit">退出 BOINC</string>
-  <string name="menu_run_mode_disable">暫停</string>
-  <string name="menu_run_mode_enable">繼續</string>
-  <string name="menu_about">關於</string>
-  <string name="menu_help">幫助</string>
-  <!--about dialog-->
-  <string name="about_button">返回</string>
-  <string name="about_title">關於</string>
-  <string name="about_name">BOINC</string>
-  <string name="about_version">版本</string>
-  <string name="about_name_long">柏克萊開放式網路運算平台</string>
-  <string name="about_copyright">\u00A9 2003–2014 University of California, Berkeley.</string>
-  <string name="about_copyright_reserved">All Rights Reserved.</string>
-  <string name="about_credits">特別感謝 Max Planck Institute for Gravitational Physics, IBM Corporation 和 HTC Corporation 的技術支援。</string>
-  <!--notice notification-->
-  <string name="notice_notification_single_header">新訊息來自</string>
-  <!--e.g. New notice from SETI at HOME-->
-  <string name="notice_notification_multiple_header">新訊息</string>
-  <!--e.g. 3 new notices-->
-  <!--multi BOINC compitability-->
-  <string name="nonexcl_dialog_header">偵測到志願運算 APP</string>
-  <string name="nonexcl_dialog_text">有其它志願運算 APP 正在此裝置執行。只容許一個版本執行。</string>
-  <string name="nonexcl_dialog_exit">退出</string>
-  <!--social integration-->
-  <string name="social_invite_button">邀請好友</string>
-  <string name="social_invite_intent_title">您想如何分享?</string>
-  <string name="social_invite_content_title">我正在用智慧型手機研究科學!</string>
-  <string name="social_invite_content_body">我的 %1$s 正在為科學運算。希望您加入! APP 下載: %2$s</string>
-  <!--first parameter: device manufacturer, second: URL-->
-  <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-</resources>
diff --git a/android/BOINC/res/values/configuration.xml b/android/BOINC/res/values/configuration.xml
deleted file mode 100644
index 000414e..0000000
--- a/android/BOINC/res/values/configuration.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  This file is part of BOINC.
-  http://boinc.berkeley.edu
-  Copyright (C) 2012 University of California
-  
-  BOINC is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License
-  as published by the Free Software Foundation,
-  either version 3 of the License, or (at your option) any later version.
-  
-  BOINC is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the GNU Lesser General Public License for more details.
-  
-  You should have received a copy of the GNU Lesser General Public License
-  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
--->
-<resources>
-    <!-- path and file configuration -->
-        <string name="client_path" translatable="false">/data/data/edu.berkeley.boinc/client/</string>
-        <string name="client_name" translatable="false">boinc</string>
-        <string name="client_cli" translatable="false">boinccmd</string>
-        <string name="client_cabundle" translatable="false">ca-bundle.crt</string>
-        <string name="client_config" translatable="false">cc_config.xml</string>
-        <string name="auth_file_name" translatable="false">gui_rpc_auth.cfg</string>
-        <string name="all_projects_list" translatable="false">all_projects_list.xml</string>
-        <string name="global_prefs_override" translatable="false">global_prefs_override.xml</string>
-        <string name="assets_dir_arm" translatable="false">armeabi-v7a/</string>
-        <string name="assets_dir_x86" translatable="false">x86/</string>
-        <string name="assets_dir_mips" translatable="false">mips/</string>
-    <!-- client socket address, CAUTION: change this if you are building branded BOINC app to avoid interference btwn apps! -->
-        <string name="client_socket_address" translatable="false">edu_berkeley_boinc_client_socket</string>
-    <!-- BOINC platform -->
-    	<string name="boinc_platform_name_arm" translatable="false">arm-android-linux-gnu</string>
-    	<string name="boinc_platform_name_x86" translatable="false">x86-android-linux-gnu</string>
-    	<string name="boinc_platform_name_mips" translatable="false">mipsel-android-linux-gnu</string>
-    <!-- Default preferences of Android app-->
-    	<bool name="prefs_default_autostart">true</bool>
-        <bool name="prefs_default_notification_notices">true</bool>
-        <bool name="prefs_default_notification_suspended">false</bool>
-        <bool name="prefs_default_advanced">false</bool>
-        <integer name="prefs_default_loglevel">2</integer>
-        <bool name="prefs_power_source_ac">true</bool>
-        <bool name="prefs_power_source_usb">true</bool>
-        <bool name="prefs_power_source_wireless">true</bool>
-        <bool name="prefs_stationary_device_mode">false</bool>
-        <bool name="prefs_suspend_when_screen_on">true</bool>
-    <!-- Monitor behavior -->
-    	<integer name="status_update_interval_ms">1000</integer>
-    	<integer name="device_status_update_screen_off_every_X_loop">10</integer> <!-- every X status_update_interval_ms -->
-    	<integer name="monitor_setup_connection_retry_rate_ms">1000</integer>
-    	<integer name="monitor_setup_connection_retry_attempts">10</integer>
-    	<integer name="autostart_notification_id">1</integer>
-    	<integer name="notice_notification_id">2</integer>
-    <!-- configuration project attach -->
-    	<integer name="attach_step_interval_ms">1000</integer> 
-    	<integer name="attach_get_project_config_retries">2</integer>
-    	<integer name="attach_login_retries">5</integer>
-    	<integer name="attach_creation_retries">5</integer>
-    	<integer name="attach_attach_retries">5</integer>
-    	<integer name="attach_acctmgr_retries">5</integer>
-    <!-- configuration on tasks layout -->
-    	<integer name="tasks_transistion_timeout_number_monitor_loops">15</integer>
-    <!-- shutdown -->
-    	<integer name="shutdown_graceful_rpc_check_rate_ms">1000</integer>
-    	<integer name="shutdown_graceful_rpc_check_attempts">5</integer>
-    	<integer name="shutdown_graceful_os_check_rate_ms">1000</integer>
-    	<integer name="shutdown_graceful_os_check_attempts">5</integer>
-    <!-- eventlog -->
-    	<integer name="eventlog_gui_messages">100</integer>
-    <!-- preferences -->	
-    	<string-array name="prefs_client_log_flags" translatable="false">
-    	    <item>android_debug</item>
-    	    <item>http_debug</item>
-    	    <item>task_debug</item>
-    	    <item>gui_rpc_debug</item>
-    	    <item>cpu_sched_debug</item>
-    	    <item>work_fetch_debug</item>
-    	</string-array>
-    <!-- account manager -->	
-    	<string-array name="acct_mgr_url_list" translatable="false">
-        	<item>http://bam.boincstats.com/</item>
-        	<item>http://gridrepublic.org/</item>
-        	<item>http://www.extremadurathome.org/extremadurathome/</item>
-    	</string-array>
-</resources>
diff --git a/android/BOINC/res/values/strings.xml b/android/BOINC/res/values/strings.xml
deleted file mode 100644
index 3e3f4ec..0000000
--- a/android/BOINC/res/values/strings.xml
+++ /dev/null
@@ -1,395 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  This file is part of BOINC.
-  http://boinc.berkeley.edu
-  Copyright (C) 2012 University of California
-  
-  BOINC is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License
-  as published by the Free Software Foundation,
-  either version 3 of the License, or (at your option) any later version.
-  
-  BOINC is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the GNU Lesser General Public License for more details.
-  
-  You should have received a copy of the GNU Lesser General Public License
-  along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
--->
-<resources>
-
-    <!-- app global -->
-    <string name="app_name">BOINC</string>
-
-    <!-- generic. used by multiple Activities/tabs -->
-    <string name="generic_loading">Loading! Please wait…</string>
-    <string name="generic_button_continue">Continue</string>
-    <string name="generic_button_finish">Finish</string>
-
-    <!-- attach project -->
-    <!-- selection list -->
-    <string name="attachproject_list_desc">Select scientific projects you want to contribute to:</string>
-    <string name="attachproject_list_header">Choose a project</string>
-    <string name="attachproject_list_manual_button">Add project by URL</string>
-    <string name="attachproject_list_manual_dialog_title">Enter project URL:</string>
-    <string name="attachproject_list_manual_dialog_button">Add project</string>
-    <string name="attachproject_list_manual_no_url">Please enter project URL</string>
-    <string name="attachproject_list_acctmgr_button">Add account manager</string>
-    <string name="attachproject_list_no_internet">No Internet connection</string>
-    <!-- credential input -->
-    <string name="attachproject_credential_input_sing_desc">Enter account information</string>
-    <string name="attachproject_credential_input_desc">Enter account information for selected projects:</string>
-    <string name="attachproject_credential_input_show_pwd">Show password</string>
-    <string name="attachproject_individual_credential_input">Attach projects individually</string>
-    <!-- conflicts -->
-    <string name="attachproject_conflicts_desc">There have been problems attaching scientific projects:</string>
-    <string name="attachproject_conflict_undefined">Could not connect</string>
-    <string name="attachproject_conflict_not_unique">Account exists with different password</string>
-    <string name="attachproject_conflict_bad_password">Password incorrect</string>
-    <string name="attachproject_conflict_unknown_user">Account does not exist</string>
-    <string name="attachproject_conflict_unknown_user_creation_disabled">Account does not exist, visit project website to register</string>
-    <!-- working -->
-    <string name="attachproject_working_attaching">Attaching</string> <!-- e.g. Attaching Einstein at Home -->
-    <!-- hints -->
-    <string name="attachproject_hints_header">Hint</string> <!-- e.g. Hint 1/2 -->
-    <string name="attachproject_hint_contribtion_header">How to contribute:</string>
-    <string name="attachproject_hint_contribtion_wifi">1. Connect to WiFi</string>
-    <string name="attachproject_hint_contribtion_charger">2. Plug in Charger</string>
-    <string name="attachproject_hint_contribtion_screen">3. Turn off Screen</string>
-    <string name="attachproject_hint_projectwebsite_header">Visit project websites to:</string>
-    <string name="attachproject_hint_projectwebsite_science">Learn more about the science</string>
-    <string name="attachproject_hint_projectwebsite_stats">View contribution statistics</string>
-    <string name="attachproject_hint_projectwebsite_community">Get in touch with other volunteers</string>
-    <string name="attachproject_hint_platforms_header">BOINC is also available for your computer or laptop, visit boinc.berkeley.edu to learn more.</string>
-    <!-- project login -->
-    <string name="attachproject_login_loading">Contacting project server…</string>
-    <string name="attachproject_login_image_description">Project logo.</string>
-    <string name="attachproject_login_header_general_area">General area:</string>
-    <string name="attachproject_login_header_specific_area">Specific area:</string>
-    <string name="attachproject_login_header_description">Description:</string>
-    <string name="attachproject_login_header_home">Home:</string>
-    <string name="attachproject_login_header_url">Website:</string>
-    <string name="attachproject_login_header_platform">Android:</string>
-    <string name="attachproject_login_platform_supported">Device type is supported by this project</string>
-    <string name="attachproject_login_platform_not_supported">Device is not supported by this project</string>
-    <string name="attachproject_login_category_terms_of_use">Terms of use for</string>
-    <string name="attachproject_login_accept_terms_of_use">By creating an account with this project, you accept the terms of use as shown above.</string>
-    <string name="attachproject_login_category_login">Sign in with existing account</string>
-    <string name="attachproject_login_header_id_email">eMail:</string>
-    <string name="attachproject_login_header_id_name">Name:</string>
-    <string name="attachproject_login_header_pwd">Password:</string>
-    <string name="attachproject_login_category_creation">New to </string>
-    <string name="attachproject_login_header_creation_enabled">Register an account to participate:</string>
-    <string name="attachproject_login_header_creation_client_disabled">Visit project website to create an account:</string>
-    <string name="attachproject_login_header_creation_disabled">This project is not currently accepting new accounts.</string>
-    <string name="attachproject_login_button_registration">Register</string>
-    <string name="attachproject_login_button_login">Sign in</string>
-    <string name="attachproject_login_button_forgotpw">Forgot Password</string>
-    <string name="attachproject_login_error_toast">Contacting project failed!</string>
-    <string name="attachproject_login_attached">Attached</string>
-    <!-- project registration -->
-    <string name="attachproject_registration_header">Account registration for </string>
-    <string name="attachproject_registration_header_url">Project:</string>
-    <string name="attachproject_registration_header_email">eMail:</string>
-    <string name="attachproject_registration_header_username">Name:</string>
-    <string name="attachproject_registration_header_teamname">Team:</string>
-    <string name="attachproject_registration_header_pwd">Password:</string>
-    <string name="attachproject_registration_header_pwd_confirm">… Retype:</string>
-    <string name="attachproject_registration_button">Create</string>
-    <!-- account manager -->
-    <string name="attachproject_acctmgr_list_desc">Use BOINC account manager to add and manage multiple projects</string>
-    <string name="attachproject_acctmgr_header">Add account manager</string>
-    <string name="attachproject_acctmgr_header_url">URL</string>
-    <string name="attachproject_acctmgr_header_name">User:</string>
-    <string name="attachproject_acctmgr_header_pwd">Password:</string>
-    <string name="attachproject_acctmgr_header_pwd_confirm">… Retype:</string>
-    <string name="attachproject_acctmgr_button">Add</string>
-    <!-- error strings -->
-    <string name="attachproject_error_wrong_name">User not found</string>
-    <string name="attachproject_error_short_pwd">Password too short</string>
-    <string name="attachproject_error_no_internet">Connection failure</string>
-    <string name="attachproject_error_pwd_no_match">Passwords do not match</string>
-    <string name="attachproject_error_pwd_no_retype">Please type password again</string>
-    <string name="attachproject_error_no_url">Please enter URL</string>
-    <string name="attachproject_error_no_email">Please enter eMail address</string>
-    <string name="attachproject_error_no_pwd">Please enter a password</string>
-    <string name="attachproject_error_no_name">Please enter user name</string>
-    <string name="attachproject_error_unknown">failed</string>
-    <string name="attachproject_error_bad_username">User name refused</string>
-    <string name="attachproject_error_email_in_use">eMail is already in use</string>
-    <string name="attachproject_error_project_down">Project is offline</string>
-    <string name="attachproject_error_email_bad_syntax">eMail refused</string>
-    <string name="attachproject_error_bad_pwd">Password refused</string>
-    <string name="attachproject_error_creation_disabled">Account creation is disabled on this project</string>
-    <string name="attachproject_error_invalid_url">Invalid URL</string>
-    <!-- working activity -->
-    <string name="attachproject_working_back_button">Back</string>
-    <string name="attachproject_working_finish_button">Finish</string>
-    <string name="attachproject_working_check_desc">Successful</string>
-    <string name="attachproject_working_failed_desc">Failed</string>
-    <string name="attachproject_working_ongoing">…</string>
-    <string name="attachproject_working_finished">.</string>
-    <string name="attachproject_working_description">:</string>
-    <string name="attachproject_working_connect">Connect</string>
-    <string name="attachproject_working_verify">Verify account</string>
-    <string name="attachproject_working_register">Register account</string>
-    <string name="attachproject_working_login">Log in</string>
-    <string name="attachproject_working_acctmgr">Add account manager</string>
-    <string name="attachproject_working_acctmgr_sync">Synchronize</string>
-
-    <!-- main activity -->
-    <string name="main_noproject_warning">Tap here to choose a project.</string>
-    <string name="main_error">Whooops</string>
-    <string name="main_error_long">…this should not happen!\nClick on the icon to try again.</string>
-    <string name="main_title_icon_desc">BOINC icon</string>
-
-    <!-- tab names -->
-    <string name="tab_status">Status</string>
-    <string name="tab_projects">Projects</string>
-    <string name="tab_tasks">Tasks</string>
-    <string name="tab_transfers">Transfers</string>
-    <string name="tab_preferences">Preferences</string>
-    <string name="tab_notices">Notices</string>
-    <string name="tab_desc">Navigation</string>
-
-    <!-- status strings -->
-    <string name="status_running">Computing</string>
-    <string name="status_running_long">Thank you for participating.</string>
-    <string name="status_paused">Suspended</string>
-    <string name="status_idle">Nothing to do</string>
-    <string name="status_idle_long">Waiting for tasks…</string>
-    <string name="status_computing_disabled">Suspended</string>
-    <string name="status_computing_disabled_long">Press play to resume network and computation.</string>
-    <string name="status_launching">Starting…</string>
-    <string name="status_noproject">Choose a project to participate in.</string>
-    <string name="status_closing">Closing…</string>
-    <string name="status_benchmarking">Benchmarking…</string>
-    <string name="status_image_description">project image</string>
-
-    <!-- preferences tab strings -->
-    <string name="prefs_loading">Reading preferences…</string>
-    <string name="prefs_submit_button">Save</string>
-    <string name="prefs_dialog_title">Enter new value:</string>
-    <string name="prefs_dialog_title_selection">Select:</string>
-    <string name="prefs_category_general">General</string>
-    <string name="prefs_category_network">Network</string>
-    <string name="prefs_category_power">Power</string>
-    <string name="prefs_category_cpu">CPU</string>
-    <string name="prefs_category_storage">Storage</string>
-    <string name="prefs_category_memory">Memory</string>
-    <string name="prefs_category_debug">Debug</string>
-    <string name="prefs_show_advanced_header">Show advanced preferences and controls…</string>
-    <string name="prefs_suspend_when_screen_on">Pause computation when screen is on</string>
-	<string name="prefs_stationary_device_mode_header">Stationary device mode</string>
-	<string name="prefs_stationary_device_mode_description">Allows computation regardless of Power preferences. Only enable if device does not have a battery.</string>
-    <string name="prefs_power_source_header">Power sources for computation</string>
-    <string name="prefs_power_source_description">Selects power sources BOINC is allowed to use for computation.</string>
-    <string name="prefs_power_source_ac">Wall socket</string>
-    <string name="prefs_power_source_usb">USB connection</string>
-    <string name="prefs_power_source_wireless">Wireless charger</string>
-    <string name="prefs_power_source_battery">Battery</string>
-    <string name="battery_charge_min_pct_header">Min. battery level</string>
-    <string name="battery_charge_min_pct_description">BOINC suspends computation below defined battery charge level.</string>
-    <string name="battery_temperature_max_header">Max. battery temperature</string>
-    <string name="battery_temperature_max_description">BOINC suspends computation above defined battery temperature. It is not recommended to change this value.</string>
-    <string name="prefs_disk_max_pct_header">Max. used storage space</string>
-    <string name="prefs_disk_max_pct_description">How many percent of your device\'s storage space is BOINC allowed to use?</string>
-    <string name="prefs_disk_min_free_gb_header">Min. spare storage</string>
-    <string name="prefs_disk_min_free_gb_description">How much of your device\'s storage space shall stay free?</string>
-    <string name="prefs_disk_access_interval_header">Access interval</string>
-    <string name="prefs_disk_access_interval_description">Suggests an interval between disk accesses</string>
-    <string name="prefs_network_daily_xfer_limit_mb_header">Daily transfer limit</string>
-    <string name="prefs_network_daily_xfer_limit_mb_description">Limits the daily data traffic caused by BOINC.</string>
-    <string name="prefs_network_wifi_only_header">Transfer tasks on WiFi only</string>
-    <string name="prefs_autostart_header">Autostart</string>
-    <string name="prefs_show_notification_notices_header">Show notification for new notices</string>
-    <string name="prefs_show_notification_suspended_header">Show notification when suspended</string>
-    <string name="prefs_cpu_number_cpus_header">Used CPU cores</string>
-    <string name="prefs_cpu_number_cpus_description">Limits the number of CPU cores BOINC uses for computation.</string>
-    <string name="prefs_cpu_other_load_suspension_header">Pause at CPU usage above</string>
-    <string name="prefs_cpu_other_load_suspension_description">Determines when BOINC pauses computation due to other apps\' CPU usage.</string>
-    <string name="prefs_cpu_time_max_header">CPU limit</string>
-    <string name="prefs_cpu_time_max_description">Limits the CPU time BOINC uses for computation.</string>
-    <string name="prefs_memory_max_idle_header">RAM limit</string>
-    <string name="prefs_memory_max_idle_description">Limits the amount of RAM tasks are allowed to occupy.</string>
-    <string name="prefs_client_log_flags_header">BOINC Client log flags</string>
-    <string name="prefs_gui_log_level_header">GUI log level</string>
-    <string name="prefs_gui_log_level_description">Specifies verbosity of GUI log messages.</string>
-    <string name="prefs_unit_mb">MB</string>
-    <string name="prefs_unit_gb">GB</string>
-    <string name="prefs_unit_pct">%</string>
-    <string name="prefs_unit_celcius">°C</string>
-    <string name="prefs_unit_seconds">sec</string>
-
-    <!-- projects tab strings -->
-    <string name="projects_loading">Reading projects…</string>
-    <string name="projects_add">Add project</string>
-    <string name="projects_icon">Project icon</string>
-    <string name="projects_credits_header">Credit:</string>
-    <string name="projects_credits_host_header">(on this device)</string>
-    <string name="projects_credits_user_header">(total)</string>
-    <!-- project status strings -->
-    <string name="projects_status_suspendedviagui">Suspended by user</string>
-    <string name="projects_status_dontrequestmorework">Won\'t get new tasks</string>
-    <string name="projects_status_ended">Project ended - OK to remove</string>
-    <string name="projects_status_detachwhendone">Will remove when tasks done</string>
-    <string name="projects_status_schedrpcpending">Scheduler request pending</string>
-    <string name="projects_status_schedrpcinprogress">Scheduler request in progress</string>
-    <string name="projects_status_trickleuppending">Trickle up message pending</string>
-    <string name="projects_status_backoff">Communication scheduled in:</string>
-    <!-- project controls -->
-    <string name="projects_control_dialog_title">Project commands:</string>
-    <string name="projects_control_visit_website">Visit website</string>
-    <string name="projects_control_update">Update</string>
-    <string name="projects_control_remove">Remove</string>
-    <string name="projects_control_suspend">Suspend</string>
-    <string name="projects_control_resume">Resume</string>
-    <string name="projects_control_nonewtasks">No new tasks</string>
-    <string name="projects_control_allownewtasks">Allow new tasks</string>
-    <string name="projects_control_reset">Reset</string>
-    <string name="projects_control_dialog_title_acctmgr">Account manager commands:</string>
-    <string name="projects_control_sync_acctmgr">Synchronize</string>
-    <string name="projects_control_remove_acctmgr">Disable</string>
-    <!-- project confirm dialog -->
-    <string name="projects_confirm_detach_title">Remove project?</string>
-    <string name="projects_confirm_detach_message">Are you sure you want to remove</string>
-    <string name="projects_confirm_detach_message2">from BOINC?</string>
-    <string name="projects_confirm_detach_confirm">Remove</string>
-    <string name="projects_confirm_reset_title">Reset project</string>
-    <string name="projects_confirm_reset_message">Are you sure you want to reset</string>
-    <string name="projects_confirm_reset_message2">\?</string>
-    <string name="projects_confirm_reset_confirm">Reset</string>
-    <string name="projects_confirm_remove_acctmgr_title">Disable account manager</string>
-    <string name="projects_confirm_remove_acctmgr_message">Are you sure you want to stop using</string>
-    <string name="projects_confirm_remove_acctmgr_message2">\?</string>
-    <string name="projects_confirm_remove_acctmgr_confirm">Disable</string>
-
-    <!-- tasks tab strings -->
-    <string name="tasks_header_name">Task Name:</string>
-    <string name="tasks_header_elapsed_time">Elapsed time:</string>
-    <string name="tasks_header_project_paused">(suspended)</string>
-    <string name="tasks_header_deadline">Deadline:</string>
-    <string name="tasks_result_new">new</string>
-    <string name="tasks_result_files_downloading">waiting for download</string>
-    <string name="tasks_result_files_downloaded">download complete</string>
-    <string name="tasks_result_compute_error">computation error</string>
-    <string name="tasks_result_files_uploading">uploading</string>
-    <string name="tasks_result_files_uploaded">upload complete</string>
-    <string name="tasks_result_aborted">aborted</string>
-    <string name="tasks_result_upload_failed">upload failed</string>
-    <string name="tasks_active_uninitialized">ready</string>
-    <string name="tasks_active_executing">running</string>
-    <string name="tasks_active_suspended">suspended</string>
-    <string name="tasks_active_abort_pending">suspending</string>
-    <string name="tasks_active_quit_pending">suspending</string>
-    <string name="tasks_custom_suspended_via_gui">suspended</string>
-    <string name="tasks_custom_project_suspended_via_gui">project suspended</string>
-    <string name="tasks_custom_ready_to_report">ready to report</string>
-
-    <!-- confirmation dialog -->
-    <string name="confirm_abort_task_title">Abort task?</string>
-    <string name="confirm_abort_task_message">Abort task:</string>
-    <string name="confirm_abort_task_confirm">Abort</string>
-    <string name="confirm_cancel">Cancel</string>
-    <string name="confirm_image_desc">Confirmation dialog</string>
-
-    <!-- transfers tab strings -->
-    <string name="trans_loading">Reading transfers…</string>
-    <string name="trans_upload">Upload</string>
-    <string name="trans_download">Download</string>
-    <string name="trans_retryin">retry in</string>
-    <string name="trans_failed">failed</string>
-    <string name="trans_suspended">suspended</string>
-    <string name="trans_active">active</string>
-    <string name="trans_pending">pending</string>
-    <string name="trans_projectbackoff">project backoff</string>
-    <string name="trans_header_name">File:</string>
-    <string name="trans_control_retry">Retry transfers</string>
-    <string name="confirm_abort_trans_title">Abort transfer?</string>
-    <string name="confirm_abort_trans_message">Abort File:</string>
-    <string name="confirm_abort_trans_confirm">Abort</string>
-
-    <!-- notices tab strings -->
-    <string name="notices_loading">Reading notices…</string>
-
-    <!-- eventlog tab strings -->
-    <string name="eventlog_loading">Loading log messages…</string>
-    <string name="eventlog_client_header">Client Messages</string>
-    <string name="eventlog_gui_header">GUI Messages</string>
-    <string name="eventlog_copy_toast">Log copied to clipboard.</string>
-    <string name="eventlog_email_subject">Event Log for BOINC on Android:</string>
-
-    <!-- suspend reasons -->
-    <string name="suspend_unknown">Computation suspended.</string>
-    <string name="suspend_batteries">Connect your device to a charger to continue computing.</string>
-    <string name="suspend_screen_on">Turn screen off to continue computing.</string>
-    <string name="suspend_useractive">User is active.</string>
-    <string name="suspend_tod">Out of computation time-frame.</string>
-    <string name="suspend_bm">BOINC is benchmarking your device…</string>
-    <string name="suspend_disksize">Out of disk space.</string>
-    <string name="suspend_cputhrottle">Scheduled CPU throttle.</string>
-    <string name="suspend_noinput">No recent user activity.</string>
-    <string name="suspend_delay">Initialization delay.</string>
-    <string name="suspend_exclusiveapp">An exclusive app is running.</string>
-    <string name="suspend_cpu">Your device is busy with other apps.</string>
-    <string name="suspend_network_quota">BOINC reached network transfer limit.</string>
-    <string name="suspend_os">Stopped by Android.</string>
-    <string name="suspend_wifi">Not connected to WiFi.</string>
-    <string name="suspend_battery_charging">Waiting for battery to charge.</string>
-    <string name="suspend_battery_charging_long">Computing will resume when battery charge reaches</string>
-    <string name="suspend_battery_charging_long2"></string>
-    <string name="suspend_battery_charging_current">currently</string>
-    <string name="suspend_battery_overheating">Waiting for battery to cool down</string>
-    <string name="suspend_user_req">Resuming computation…</string>
-    <string name="suspend_network_user_req">manually.</string>
-
-    <!-- rpc reasons -->
-    <string name="rpcreason_userreq">Requested by user</string>
-    <string name="rpcreason_needwork">To fetch work</string>
-    <string name="rpcreason_resultsdue">To report completed tasks</string>
-    <string name="rpcreason_trickleup">To send trickle-up message</string>
-    <string name="rpcreason_acctmgrreq">Requested by account manager</string>
-    <string name="rpcreason_init">Project initialization</string>
-    <string name="rpcreason_projectreq">Requested by project</string>
-    <string name="rpcreason_unknown">Unknown reason</string>
-
-    <!-- menu -->
-    <string name="menu_refresh">Refresh</string>
-    <string name="menu_emailto">Send as Email</string>
-    <string name="menu_copy">Copy to Clipboard</string>
-    <string name="menu_eventlog">Event Log</string>
-    <string name="menu_exit">Exit BOINC</string>
-    <string name="menu_run_mode_disable">Suspend</string>
-    <string name="menu_run_mode_enable">Resume</string>
-    <string name="menu_about">About</string>
-    <string name="menu_help">Help</string>
-
-    <!-- about dialog -->
-    <string name="about_button">Return</string>
-    <string name="about_title">About</string>
-    <string name="about_name">BOINC</string>
-    <string name="about_version">Version</string>
-    <string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
-    <string name="about_copyright">\u00A9 2003–2014 University of California, Berkeley.</string>
-    <string name="about_copyright_reserved">All Rights Reserved.</string>
-    <string name="about_credits">Thanks to the Max Planck Institute for Gravitational Physics, IBM Corporation and HTC Corporation for their support.</string>
-
-    <!-- notice notification -->
-    <string name="notice_notification_single_header">New notice from</string> <!-- e.g. New notice from SETI at HOME -->
-    <string name="notice_notification_multiple_header">new notices</string> <!-- e.g. 3 new notices -->
-
-    <!-- multi BOINC compitability -->
-    <string name="nonexcl_dialog_header">Volunteer computing app detected</string>
-    <string name="nonexcl_dialog_text">Another volunteer computing app is running on this device. Only one version can run at a time.</string>
-    <string name="nonexcl_dialog_exit">Exit</string>
-    
-    <!-- social integration -->
-    <string name="social_invite_button">Invite friends</string>
-    <string name="social_invite_intent_title">How do you want to share?</string>
-    <string name="social_invite_content_title">I\'m doing science on my smartphone!</string>
-    <string name="social_invite_content_body">I\'m using my %1$s to do computing for science. You can too! Download the app from: %2$s</string> <!-- first parameter: device manufacturer, second: URL -->
-    <string name="social_invite_content_url">https://play.google.com/store/apps/details?id=edu.berkeley.boinc</string>
-
-</resources>
-
diff --git a/android/BOINC/settings.gradle b/android/BOINC/settings.gradle
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ b/android/BOINC/settings.gradle
@@ -0,0 +1 @@
+include ':app'
diff --git a/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java b/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java
deleted file mode 100644
index 1faa28b..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc;
-
-import java.util.ArrayList;
-
-import edu.berkeley.boinc.rpc.Project;
-import edu.berkeley.boinc.utils.*;
-import edu.berkeley.boinc.client.*;
-import edu.berkeley.boinc.utils.BOINCDefs;
-import android.app.Dialog;
-import android.app.Service;
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.ServiceConnection;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Configuration;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle; 
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.util.Log;  
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.Window;
-import android.view.View.OnClickListener;
-import android.widget.AdapterView;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.support.v4.app.ActionBarDrawerToggle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.app.*;
-import edu.berkeley.boinc.adapter.*;
-import edu.berkeley.boinc.adapter.NavDrawerListAdapter.NavDrawerItem;
-import edu.berkeley.boinc.attach.SelectionListActivity;
-
-public class BOINCActivity extends ActionBarActivity {
-	
-	public static IMonitor monitor;
-	private Integer clientComputingStatus = -1;
-	private Integer numberProjectsInNavList = 0;
-	static Boolean mIsBound = false;
-	
-	// app title (changes with nav bar selection)
-	private CharSequence mTitle;
-	// nav drawer title
-	private CharSequence mDrawerTitle;
-	
-	private DrawerLayout mDrawerLayout;
-	private ListView mDrawerList;
-	private ActionBarDrawerToggle mDrawerToggle;
-	private NavDrawerListAdapter mDrawerListAdapter;
-
-	private ServiceConnection mConnection = new ServiceConnection() {
-	    public void onServiceConnected(ComponentName className, IBinder service) {
-	        // This is called when the connection with the service has been established, getService returns 
-	    	// the Monitor object that is needed to call functions.
-	        monitor = IMonitor.Stub.asInterface(service);
-		    mIsBound = true;
-		    determineStatus();
-	    }
-
-	    public void onServiceDisconnected(ComponentName className) {
-	    	// This should not happen
-	        monitor = null;
-		    mIsBound = false;
-
-		    Log.e(Logging.TAG, "BOINCActivity onServiceDisconnected");
-	    }
-	};
-	
-	private BroadcastReceiver mClientStatusChangeRec = new BroadcastReceiver() {
-		@Override
-		public void onReceive(Context context,Intent intent) {
-			if(Logging.VERBOSE) Log.d(Logging.TAG, "BOINCActivity ClientStatusChange - onReceive()"); 
-			determineStatus();
-		}
-	};
-	private IntentFilter ifcsc = new IntentFilter("edu.berkeley.boinc.clientstatuschange");
-	
-    @Override
-    public void onCreate(Bundle savedInstanceState) {  
-        if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onCreate()"); 
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.main); 
-
-        // setup navigation bar
-        mTitle = mDrawerTitle = getTitle();
-        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
-		mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
-		mDrawerList.setOnItemClickListener(new ListView.OnItemClickListener(){
-			@Override
-			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-				// display view for selected nav drawer item
-				dispatchNavBarOnClick(mDrawerListAdapter.getItem(position),false);
-			}});
-		mDrawerListAdapter = new NavDrawerListAdapter(getApplicationContext());
-		mDrawerList.setAdapter(mDrawerListAdapter);
-		// enabling action bar app icon and behaving it as toggle button
-		getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-		getSupportActionBar().setHomeButtonEnabled(true);
-
-		mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
-				R.drawable.ic_drawer, //nav menu toggle icon
-				R.string.app_name, // nav drawer open - description for accessibility
-				R.string.app_name // nav drawer close - description for accessibility
-		) {
-			public void onDrawerClosed(View view) {
-				getSupportActionBar().setTitle(mTitle);
-				// calling onPrepareOptionsMenu() to show action bar icons
-				supportInvalidateOptionsMenu();
-			}
-
-			public void onDrawerOpened(View drawerView) {
-				getSupportActionBar().setTitle(mDrawerTitle);
-				mDrawerListAdapter.notifyDataSetChanged(); // force redraw of all items (adapter.getView()) in order to adapt changing icons or number of tasks/notices
-				// calling onPrepareOptionsMenu() to hide action bar icons
-				supportInvalidateOptionsMenu();
-			}
-		};
-		mDrawerLayout.setDrawerListener(mDrawerToggle);
-
-
-		// pre-select fragment
-		// 1. check if explicitly requested fragment present
-		// e.g. after initial project attach.
-		int targetFragId = getIntent().getIntExtra("targetFragment", -1);
-		
-		// 2. if no explicit request, try to restore previous selection
-		if(targetFragId < 0 && savedInstanceState != null)
-			targetFragId = savedInstanceState.getInt("navBarSelectionId");
-		
-		NavDrawerItem item = null;
-		if(targetFragId < 0) {
-			// if non of the above, go to default
-			item = mDrawerListAdapter.getItem(0);
-		} else item = mDrawerListAdapter.getItemForId(targetFragId);
-		
-		if(item != null) dispatchNavBarOnClick(item, true);
-		else if(Logging.WARNING) Log.w(Logging.TAG, "onCreate: fragment selection returned null");
-
-        //bind monitor service
-        doBindService();
-    }
-    
-	@Override
-	protected void onSaveInstanceState(Bundle outState) {
-		outState.putInt("navBarSelectionId", mDrawerListAdapter.selectedMenuId);
-		super.onSaveInstanceState(outState);
-	}
-
-	@Override
-	protected void onDestroy() {
-    	if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onDestroy()");
-	    doUnbindService();
-	    super.onDestroy();
-	}
-
-	@Override
-	protected void onNewIntent(Intent intent) {
-        if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onNewIntent()"); 
-		// onNewIntent gets called if activity is brought to front via intent, but was still alive, so onCreate is not called again
-		// getIntent always returns the intent activity was created of, so this method is the only hook to receive an updated intent
-		// e.g. after (not initial) project attach
-		super.onNewIntent(intent);
-		// navigate to explicitly requested fragment (e.g. after project attach)
-		int id = intent.getIntExtra("targetFragment", -1);
-    	if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onNewIntent() for target fragment: " + id);
-    	NavDrawerItem item = mDrawerListAdapter.getItemForId(id);
-    	if(item != null) dispatchNavBarOnClick(item,false);
-    	else if(Logging.WARNING) Log.w(Logging.TAG, "onNewIntent: requested target fragment is null, for id: " + id);
-	}
-
-	@Override
-	protected void onResume() { // gets called by system every time activity comes to front. after onCreate upon first creation
-	    super.onResume();
-	    registerReceiver(mClientStatusChangeRec, ifcsc);
-	    determineStatus();
-	}
-
-	@Override
-	protected void onPause() { // gets called by system every time activity loses focus.
-    	if(Logging.VERBOSE) Log.v(Logging.TAG, "BOINCActivity onPause()");
-	    super.onPause();
-	    unregisterReceiver(mClientStatusChangeRec);
-	}
-
-	private void doBindService() {
-		// start service to allow setForeground later on...
-		startService(new Intent(this, Monitor.class));
-	    // Establish a connection with the service, onServiceConnected gets called when
-		bindService(new Intent(this, Monitor.class), mConnection, Service.BIND_AUTO_CREATE);
-	}
-
-	private void doUnbindService() {
-	    if (mIsBound) {
-	        // Detach existing connection.
-	        unbindService(mConnection);
-	        mIsBound = false;
-	    }
-	}
-	/*
-	public IMonitor getMonitorService() {
-		if(!mIsBound) if(Logging.WARNING) Log.w(Logging.TAG, "Fragment trying to obtain serive reference, but Monitor not bound in BOINCActivity");
-		return monitor;
-	}*/
-	
-	public void startAttachProjectListActivity() {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity attempt to start ");
-		startActivity(new Intent(this,SelectionListActivity.class));
-	}
-	
-	/**
-	 * React to selection of nav bar item
-	 * @param item
-	 * @param position
-	 * @param init
-	 */
-	private void dispatchNavBarOnClick(NavDrawerItem item, boolean init) {
-		// update the main content by replacing fragments
-		if(item == null) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "dispatchNavBarOnClick returns, item null.");
-			return;
-		}
-		if(Logging.DEBUG) Log.d(Logging.TAG, "dispatchNavBarOnClick for item with id: " + item.getId() + " title: " + item.getTitle() + " is project? " + item.isProjectItem());
-		
-		FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-		Boolean fragmentChanges = false;
-		if(init) {
-			// if init, setup status fragment
-			ft.replace(R.id.status_container, new StatusFragment());
-		}
-		if(!item.isProjectItem()) {
-			switch (item.getId()) {
-			case R.string.tab_tasks:
-				ft.replace(R.id.frame_container, new TasksFragment());
-				fragmentChanges = true;
-				break;
-			case R.string.tab_notices:
-				ft.replace(R.id.frame_container, new NoticesFragment());
-				fragmentChanges = true;
-				break;
-			case R.string.tab_projects:
-				ft.replace(R.id.frame_container, new ProjectsFragment());
-				fragmentChanges = true;
-				break;
-	    	case R.string.menu_help:
-	    		Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://boinc.berkeley.edu/wiki/BOINC_Help"));
-	    		startActivity(i);
-	    		break;
-	    	case R.string.menu_about:
-				final Dialog dialog = new Dialog(this);
-				dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
-				dialog.setContentView(R.layout.dialog_about);
-				Button returnB = (Button) dialog.findViewById(R.id.returnB);
-				TextView tvVersion = (TextView)dialog.findViewById(R.id.version);
-				try {
-					tvVersion.setText(getString(R.string.about_version) + " "
-							+ getPackageManager().getPackageInfo(getPackageName(), 0).versionName);
-				} catch (NameNotFoundException e) {if(Logging.WARNING) Log.w(Logging.TAG, "version name not found.");}
-				
-				returnB.setOnClickListener(new OnClickListener() {
-					@Override
-					public void onClick(View v) {
-						dialog.dismiss();
-					}
-				});
-				dialog.show();
-	    		break;
-			case R.string.menu_eventlog:
-				startActivity(new Intent(this,EventLogActivity.class));
-				break;
-			case R.string.projects_add:
-				startActivity(new Intent(this, SelectionListActivity.class));
-				break;
-			case R.string.tab_preferences:
-				ft.replace(R.id.frame_container, new PrefsFragment());
-				fragmentChanges = true;
-				break;
-	
-			default:
-				if(Logging.ERROR) Log.d(Logging.TAG, "dispatchNavBarOnClick() could not find corresponding fragment for " + item.getTitle());
-				break;
-			}
-
-		} else {
-			// ProjectDetailsFragment. Data shown based on given master URL
-			Bundle args = new Bundle();
-			args.putString("url", item.getProjectMasterUrl());
-			Fragment frag = new ProjectDetailsFragment();
-			frag.setArguments(args);
-			ft.replace(R.id.frame_container, frag);
-			fragmentChanges = true;
-		}
-
-		mDrawerLayout.closeDrawer(mDrawerList);
-		
-		if(fragmentChanges) {
-			ft.commit();
-			setTitle(item.getTitle());
-			mDrawerListAdapter.selectedMenuId = item.getId(); //highlight item persistently
-			mDrawerListAdapter.notifyDataSetChanged(); // force redraw
-		} 
-
-		if(Logging.DEBUG) Log.d(Logging.TAG, "displayFragmentForNavDrawer() " + item.getTitle());
-	}
-    
-    // tests whether status is available and whether it changed since the last event.
-	private void determineStatus() {
-    	try {
-			if(mIsBound) { 
-				Integer newComputingStatus = monitor.getComputingStatus();
-				if(newComputingStatus != clientComputingStatus) {
-					// computing status has changed, update and invalidate to force adaption of action items
-					clientComputingStatus = newComputingStatus;
-					supportInvalidateOptionsMenu();
-				}
-				if(numberProjectsInNavList != monitor.getProjects().size())
-					numberProjectsInNavList = mDrawerListAdapter.compareAndAddProjects((ArrayList<Project>)monitor.getProjects());
-				//setAppTitle();
-			} 
-    	} catch (Exception e) {}
-    }
-	
-	@Override
-	public boolean onCreateOptionsMenu(Menu menu) {
-	    if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onCreateOptionsMenu()");
-
-	    MenuInflater inflater = getMenuInflater();
-		inflater.inflate(R.menu.main_menu, menu);
-		return true;
-	}
-
-	@Override
-	public boolean onPrepareOptionsMenu(Menu menu) {
-	    if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onPrepareOptionsMenu()");
-		
-		// run mode, set title and icon based on status
-		MenuItem runMode = menu.findItem(R.id.run_mode);
-		if(clientComputingStatus == ClientStatus.COMPUTING_STATUS_NEVER) {
-			// display play button
-			runMode.setTitle(R.string.menu_run_mode_enable);
-			runMode.setIcon(R.drawable.playw);
-		} else {
-			// display stop button
-			runMode.setTitle(R.string.menu_run_mode_disable);
-			runMode.setIcon(R.drawable.pausew);
-		}
-		
-		return super.onPrepareOptionsMenu(menu);
-	}
-	
-	@Override
-	public boolean onOptionsItemSelected(MenuItem item) {
-	    if(Logging.DEBUG) Log.d(Logging.TAG, "BOINCActivity onOptionsItemSelected()");
-
-	    // toggle drawer
-	    if (mDrawerToggle.onOptionsItemSelected(item)) {
-			return true;
-		}
-	    
-	    switch (item.getItemId()) {
-			case R.id.run_mode:
-				if(item.getTitle().equals(getApplication().getString(R.string.menu_run_mode_disable))) {
-					if(Logging.DEBUG) Log.d(Logging.TAG,"run mode: disable");
-					new WriteClientModeAsync().execute(BOINCDefs.RUN_MODE_NEVER);
-				} else if (item.getTitle().equals(getApplication().getString(R.string.menu_run_mode_enable))) {
-					if(Logging.DEBUG) Log.d(Logging.TAG,"run mode: enable");
-					new WriteClientModeAsync().execute(BOINCDefs.RUN_MODE_AUTO);
-				} else if(Logging.DEBUG) Log.d(Logging.TAG,"run mode: unrecognized command");
-				return true;
-			case R.id.projects_add:
-				startActivity(new Intent(this, SelectionListActivity.class));
-				return true;
-			default:
-				return super.onOptionsItemSelected(item);
-		}
-	}
-
-	@Override
-	protected void onPostCreate(Bundle savedInstanceState) {
-		super.onPostCreate(savedInstanceState);
-		// Sync the toggle state after onRestoreInstanceState has occurred.
-		mDrawerToggle.syncState();
-	}
-
-	@Override
-	public void onConfigurationChanged(Configuration newConfig) {
-		super.onConfigurationChanged(newConfig);
-		// Pass any configuration change to the drawer toggls
-		mDrawerToggle.onConfigurationChanged(newConfig);
-	}
-
-	@Override
-	public void setTitle(CharSequence title) {
-		mTitle = title;
-		getSupportActionBar().setTitle(mTitle);
-	}
-	
-	private final class WriteClientModeAsync extends AsyncTask<Integer, Void, Boolean> {
-		
-		@Override
-		protected Boolean doInBackground(Integer... params) {
-			// setting provided mode for both, CPU computation and network.
-			Boolean runMode;
-			try {
-				runMode = monitor.setRunMode(params[0]);
-			} catch (RemoteException e) {
-				runMode = false;
-			}
-			Boolean networkMode;
-			try {
-				networkMode = monitor.setNetworkMode(params[0]);
-			} catch (RemoteException e) {
-				networkMode = false;
-			}
-			return runMode && networkMode;
-		}
-		
-		@Override
-		protected void onPostExecute(Boolean success) {
-			if(success)
-				try {
-					monitor.forceRefresh();
-				} catch (RemoteException e) {}
-			else if(Logging.WARNING) Log.w(Logging.TAG,"setting run and network mode failed");
-		}
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/PrefsFragment.java b/android/BOINC/src/edu/berkeley/boinc/PrefsFragment.java
deleted file mode 100644
index a5225d4..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/PrefsFragment.java
+++ /dev/null
@@ -1,695 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc;
-
-import edu.berkeley.boinc.utils.*;
-
-import java.util.ArrayList;
-import edu.berkeley.boinc.adapter.PrefsListAdapter;
-import edu.berkeley.boinc.adapter.PrefsListItemWrapper;
-import edu.berkeley.boinc.adapter.PrefsListItemWrapperBool;
-import edu.berkeley.boinc.adapter.PrefsListItemWrapperValue;
-import edu.berkeley.boinc.adapter.PrefsSelectionDialogListAdapter;
-import edu.berkeley.boinc.rpc.GlobalPreferences;
-import edu.berkeley.boinc.rpc.HostInfo;
-import android.app.Dialog;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.support.v4.app.Fragment;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.EditText;
-import android.widget.ListView;
-import android.widget.SeekBar;
-import android.widget.TextView;
-import android.widget.Toast;
-
-public class PrefsFragment extends Fragment {
-	
-	private ListView lv;
-	private PrefsListAdapter listAdapter;
-	
-	private ArrayList<PrefsListItemWrapper> data = new ArrayList<PrefsListItemWrapper>(); //Adapter for list data
-	private GlobalPreferences clientPrefs = null; //preferences of the client, read on every onResume via RPC
-	//private AppPreferences appPrefs = null; //Android specific preferences, singleton of monitor
-	private HostInfo hostinfo = null;
-	
-	private boolean layoutSuccessful = false;
-	
-	private BroadcastReceiver mClientStatusChangeRec = new BroadcastReceiver() {
-		@Override
-		public void onReceive(Context context,Intent intent) {
-			if(Logging.VERBOSE) Log.d(Logging.TAG, "PrefsFragment ClientStatusChange - onReceive()"); 
-			try {
-				if(!layoutSuccessful) populateLayout();
-			} catch (RemoteException e) {}
-		}
-	};
-	private IntentFilter ifcsc = new IntentFilter("edu.berkeley.boinc.clientstatuschange");
-	
-	// fragment lifecycle: 2.
-	@Override
-	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-    	if(Logging.VERBOSE) Log.d(Logging.TAG,"ProjectsFragment onCreateView");
-        // Inflate the layout for this fragment
-    	View layout = inflater.inflate(R.layout.prefs_layout, container, false);
-		lv = (ListView) layout.findViewById(R.id.listview);
-        listAdapter = new PrefsListAdapter(getActivity(),this,R.id.listview,data);
-        lv.setAdapter(listAdapter);
-		return layout;
-	}
-
-	// fragment lifecycle: 1.
-	@Override
-	public void onCreate(Bundle savedInstanceState) {
-		super.onCreate(savedInstanceState);
-	}
-
-	// fragment lifecycle: 3.
-	@Override
-	public void onResume() {
-		try {
-			populateLayout();
-		} catch (RemoteException e) {}
-		getActivity().registerReceiver(mClientStatusChangeRec,ifcsc);
-		super.onResume();
-	}
-	
-	@Override
-	public void onPause() {
-		getActivity().unregisterReceiver(mClientStatusChangeRec);
-		super.onPause();
-	}
-
-	private Boolean getPrefs() {
-		// try to get current client status from monitor
-		//ClientStatus status;
-		try{
-			//status  = Monitor.getClientStatus();
-			clientPrefs = BOINCActivity.monitor.getPrefs();
-		} catch (Exception e){
-			if(Logging.WARNING) Log.w(Logging.TAG,"PrefsActivity: Could not load data, clientStatus not initialized.");
-			e.printStackTrace();
-			return false;
-		}
-		//clientPrefs = status.getPrefs(); //read prefs from client via rpc
-		if(clientPrefs == null) {
-			if(Logging.DEBUG) Log.d(Logging.TAG, "readPrefs: null, return false");
-			return false;
-		}
-		//if(Logging.DEBUG) Log.d(Logging.TAG, "readPrefs done");
-		return true;
-	}
-	
-	private Boolean getHostInfo() {
-		// try to get current client status from monitor
-		//ClientStatus status;
-		
-		try{
-			//status  = Monitor.getClientStatus();
-			hostinfo = BOINCActivity.monitor.getHostInfo();
-		} catch (Exception e){
-			if(Logging.WARNING) Log.w(Logging.TAG,"PrefsActivity: Could not load data, clientStatus not initialized.");
-			e.printStackTrace();
-			return false;
-		}
-		//hostinfo = status.getHostInfo(); //Get the hostinfo from client via rpc
-		if(hostinfo == null) {
-			if(Logging.DEBUG) Log.d(Logging.TAG, "getHostInfo: null, return false");
-			return false;
-		}
-		return true;
-	}
-	
-	private void populateLayout() throws RemoteException{
-		
-		if(!getPrefs() || BOINCActivity.monitor == null || !getHostInfo()) {
-			if(Logging.ERROR) Log.e(Logging.TAG, "PrefsFragment.populateLayout returns, data is not present");
-			return;
-		}
-		
-		data.clear();
-		
-		Boolean advanced = BOINCActivity.monitor.getShowAdvanced();
-		Boolean stationaryDeviceMode = BOINCActivity.monitor.getStationaryDeviceMode();
-		Boolean stationaryDeviceSuspected = BOINCActivity.monitor.isStationaryDeviceSuspected();
-
-		// general
-    	data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_general,true));
-		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_autostart_header,R.string.prefs_category_general,BOINCActivity.monitor.getAutostart()));
-		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_show_notification_notices_header,R.string.prefs_category_general,BOINCActivity.monitor.getShowNotificationForNotices()));
-		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_show_notification_suspended_header,R.string.prefs_category_general,BOINCActivity.monitor.getShowNotificationDuringSuspend()));
-		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_show_advanced_header,R.string.prefs_category_general,BOINCActivity.monitor.getShowAdvanced()));
-		if(!stationaryDeviceMode) data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_suspend_when_screen_on,R.string.prefs_category_general,BOINCActivity.monitor.getSuspendWhenScreenOn()));
-		// network
-    	data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_network,true));
-		data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_network_wifi_only_header,R.string.prefs_category_network,clientPrefs.network_wifi_only));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_network_daily_xfer_limit_mb_header,R.string.prefs_category_network,clientPrefs.daily_xfer_limit_mb));
-    	// power
-		data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_power,true));
-		if(stationaryDeviceSuspected) { // API indicates that there is no battery, offer opt-in preference for stationary device mode
-			data.add(new PrefsListItemWrapperBool(getActivity(),R.string.prefs_stationary_device_mode_header,R.string.prefs_category_power,BOINCActivity.monitor.getStationaryDeviceMode()));
-		}
-		if(!stationaryDeviceMode) { // client would compute regardless of battery preferences, so only show if that is not the case
-			data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_power_source_header,R.string.prefs_category_power));
-			data.add(new PrefsListItemWrapperValue(getActivity(),R.string.battery_charge_min_pct_header,R.string.prefs_category_power,clientPrefs.battery_charge_min_pct));
-			if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.battery_temperature_max_header,R.string.prefs_category_power,clientPrefs.battery_max_temperature));
-		}
-		// cpu
-		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_cpu,true));
-		if(advanced && hostinfo.p_ncpus > 1) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_cpu_number_cpus_header,R.string.prefs_category_cpu,pctCpuCoresToNumber(clientPrefs.max_ncpus_pct)));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_cpu_time_max_header,R.string.prefs_category_cpu,clientPrefs.cpu_usage_limit));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_cpu_other_load_suspension_header,R.string.prefs_category_cpu,clientPrefs.suspend_cpu_usage));
-		// storage
-		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_storage,true));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_disk_max_pct_header,R.string.prefs_category_storage,clientPrefs.disk_max_used_pct));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_disk_min_free_gb_header,R.string.prefs_category_storage,clientPrefs.disk_min_free_gb));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_disk_access_interval_header,R.string.prefs_category_storage,clientPrefs.disk_interval));
-		// memory
-		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_memory,true));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_memory_max_idle_header,R.string.prefs_category_memory,clientPrefs.ram_max_used_idle_frac));
-		// debug
-		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_category_debug,true));
-		if(advanced) data.add(new PrefsListItemWrapper(getActivity(),R.string.prefs_client_log_flags_header,R.string.prefs_category_debug));
-		if(advanced) data.add(new PrefsListItemWrapperValue(getActivity(),R.string.prefs_gui_log_level_header,R.string.prefs_category_debug,(double)BOINCActivity.monitor.getLogLevel()));
-		
-		updateLayout();
-		layoutSuccessful = true;
-	}
-	
-	private void updateLayout(){
-		listAdapter.notifyDataSetChanged();
-	}
-
-	// updates list item of boolean preference
-	// requires updateLayout to be called afterwards
-	private void updateBoolPref(int ID, Boolean newValue) {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "updateBoolPref for ID: " + ID + " value: " + newValue);
-		for (PrefsListItemWrapper item: data) {
-			if(item.ID == ID){
-				((PrefsListItemWrapperBool) item).setStatus(newValue);
-				continue;
-			}
-		}
-	}
-	
-	// updates list item of value preference
-	// requires updateLayout to be called afterwards
-	private void updateValuePref(int ID, Double newValue) {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "updateValuePref for ID: " + ID + " value: " + newValue);
-		for (PrefsListItemWrapper item: data) {
-			if(item.ID == ID){
-				((PrefsListItemWrapperValue) item).status = newValue;
-				continue;
-			}
-		}
-	}
-	
-	private void setupSliderDialog(PrefsListItemWrapper item, final Dialog dialog) {
-		final PrefsListItemWrapperValue valueWrapper = (PrefsListItemWrapperValue) item;
-		dialog.setContentView(R.layout.prefs_layout_dialog_pct);
-		TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
-		SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
-		
-		if(valueWrapper.ID == R.string.battery_charge_min_pct_header || 
-				valueWrapper.ID == R.string.prefs_disk_max_pct_header || 
-				valueWrapper.ID == R.string.prefs_cpu_time_max_header ||
-				valueWrapper.ID == R.string.prefs_cpu_other_load_suspension_header || 
-				valueWrapper.ID == R.string.prefs_memory_max_idle_header ) {
-			sliderProgress.setText(valueWrapper.status.intValue() + " " + getString(R.string.prefs_unit_pct));
-			Double seekBarDefault = valueWrapper.status / 10;
-			slider.setProgress(seekBarDefault.intValue());
-			slider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
-		        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
-		        	String progressString = (progress * 10) + " " + getString(R.string.prefs_unit_pct);
-		        	TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
-		            sliderProgress.setText(progressString);
-		        }
-				@Override
-				public void onStartTrackingTouch(SeekBar seekBar) {}
-				@Override
-				public void onStopTrackingTouch(SeekBar seekBar) {}
-		    });
-		} else if(valueWrapper.ID == R.string.prefs_cpu_number_cpus_header) {
-			if(!getHostInfo()) {
-				if(Logging.WARNING) Log.w(Logging.TAG, "onItemClick missing hostInfo");
-				return;
-			}
-			sliderProgress.setText(""+valueWrapper.status.intValue());
-			slider.setMax(hostinfo.p_ncpus);
-			slider.setProgress(valueWrapper.status.intValue());
-			slider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
-				public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
-					if(progress == 0) progress = 1; // do not allow 0 cpus
-					String progressString = String.valueOf(progress);
-					TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
-					sliderProgress.setText(progressString);
-				}
-				@Override
-				public void onStartTrackingTouch(SeekBar seekBar) {}
-				@Override
-				public void onStopTrackingTouch(SeekBar seekBar) {}
-			});
-		} else if(valueWrapper.ID == R.string.prefs_gui_log_level_header) {
-			sliderProgress.setText(""+valueWrapper.status.intValue());
-			slider.setMax(5);
-			slider.setProgress(valueWrapper.status.intValue());
-			slider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
-				public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
-					String progressString = String.valueOf(progress);
-					TextView sliderProgress = (TextView) dialog.findViewById(R.id.seekbar_status);
-					sliderProgress.setText(progressString);
-				}
-				@Override
-				public void onStartTrackingTouch(SeekBar seekBar) {}
-				@Override
-				public void onStopTrackingTouch(SeekBar seekBar) {}
-			});
-		}
-		
-		setupDialogButtons(item, dialog);
-	}
-	
-	private void setupSelectionListDialog(final PrefsListItemWrapper item, final Dialog dialog) throws RemoteException{
-		dialog.setContentView(R.layout.prefs_layout_dialog_selection);
-		
-		if(item.ID == R.string.prefs_client_log_flags_header) {
-			final ArrayList<SelectionDialogOption> options = new ArrayList<SelectionDialogOption>();
-			String[] array = getResources().getStringArray(R.array.prefs_client_log_flags);
-			for(String option: array) options.add(new SelectionDialogOption(option));
-			ListView lv = (ListView) dialog.findViewById(R.id.selection);
-			new PrefsSelectionDialogListAdapter(getActivity(), lv, R.id.selection, options);
-
-			// setup confirm button action
-			Button confirm = (Button) dialog.findViewById(R.id.confirm);
-			confirm.setOnClickListener(new OnClickListener() {
-				@Override
-				public void onClick(View v) {
-					ArrayList<String> selectedOptions = new ArrayList<String>();
-					for(SelectionDialogOption option: options) if(option.selected) selectedOptions.add(option.name);
-					if(Logging.DEBUG) Log.d(Logging.TAG, selectedOptions.size() + " log flags selected");
-					new SetCcConfigAsync().execute(formatOptionsToCcConfig(selectedOptions)); 
-					dialog.dismiss();
-				}
-			});
-		}else if(item.ID == R.string.prefs_power_source_header) {
-			final ArrayList<SelectionDialogOption> options = new ArrayList<SelectionDialogOption>();
-			options.add(new SelectionDialogOption(getResources().getString(R.string.prefs_power_source_ac), BOINCActivity.monitor.getPowerSourceAc()));
-			options.add(new SelectionDialogOption(getResources().getString(R.string.prefs_power_source_usb), BOINCActivity.monitor.getPowerSourceUsb()));
-			options.add(new SelectionDialogOption(getResources().getString(R.string.prefs_power_source_wireless), BOINCActivity.monitor.getPowerSourceWireless()));
-			options.add(new SelectionDialogOption(getResources().getString(R.string.prefs_power_source_battery), clientPrefs.run_on_batteries, true));
-			ListView lv = (ListView) dialog.findViewById(R.id.selection);
-			new PrefsSelectionDialogListAdapter(getActivity(), lv, R.id.selection, options);
-
-			// setup confirm button action
-			Button confirm = (Button) dialog.findViewById(R.id.confirm);
-			confirm.setOnClickListener(new OnClickListener() {
-				@Override
-				public void onClick(View v) {
-					try{
-						for(SelectionDialogOption option: options) {
-							if(option.name == getResources().getString(R.string.prefs_power_source_ac))
-								BOINCActivity.monitor.setPowerSourceAc(option.selected);
-							if(option.name == getResources().getString(R.string.prefs_power_source_usb))
-								BOINCActivity.monitor.setPowerSourceUsb(option.selected);
-							if(option.name == getResources().getString(R.string.prefs_power_source_wireless))
-								BOINCActivity.monitor.setPowerSourceWireless(option.selected);
-							if(option.name == getResources().getString(R.string.prefs_power_source_battery)) {
-								clientPrefs.run_on_batteries = option.selected;
-								new WriteClientPrefsAsync().execute(clientPrefs); //async task triggers layout update
-							}
-						}
-						dialog.dismiss();
-					} catch(RemoteException e) {}
-				}
-			});
-		}
-		
-		// generic cancel button
-		Button cancel = (Button) dialog.findViewById(R.id.cancel);
-		cancel.setOnClickListener(new OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				dialog.dismiss();
-			}
-		});
-	}
-		
-	private void setupDialogButtons(final PrefsListItemWrapper item, final Dialog dialog) {
-		// confirm
-		Button confirm = (Button) dialog.findViewById(R.id.confirm);
-		confirm.setOnClickListener(new OnClickListener() {
-			@Override
-			public void onClick(View v) {
-         	   if(item.ID == R.string.battery_charge_min_pct_header || 
-         			item.ID == R.string.prefs_disk_max_pct_header || 
-         			item.ID == R.string.prefs_cpu_time_max_header ||
-         			item.ID == R.string.prefs_cpu_other_load_suspension_header || 
-         			item.ID == R.string.prefs_memory_max_idle_header ) {
-         		   SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
-         		   double value = slider.getProgress()*10;
-         		   writeClientValuePreference(item.ID, value);
-         	   } else if(item.ID == R.string.prefs_cpu_number_cpus_header) {
-         		   SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
-         		   int sbProgress = slider.getProgress();
-         		   if(sbProgress == 0) sbProgress = 1;
-         		   double value = numberCpuCoresToPct(sbProgress);
-         		   writeClientValuePreference(item.ID, value);
-         	   } else if(item.ID == R.string.prefs_gui_log_level_header) {
-         		   SeekBar slider = (SeekBar) dialog.findViewById(R.id.seekbar);
-         		   int sbProgress = slider.getProgress();
-         		   try {
-         			   // monitor and UI in two different processes. set static variable in both
-          			  Logging.setLogLevel(sbProgress);
-         			  BOINCActivity.monitor.setLogLevel(sbProgress);
-         		   } catch (RemoteException e) {}
-         		   updateValuePref(item.ID, (double) sbProgress);
-         		   updateLayout();
-         	   } else if(item.ID == R.string.prefs_network_daily_xfer_limit_mb_header ||
-         			   item.ID == R.string.battery_temperature_max_header ||
-         			   item.ID == R.string.prefs_disk_min_free_gb_header ||
-         			   item.ID == R.string.prefs_disk_access_interval_header) {
-         		   EditText edit = (EditText) dialog.findViewById(R.id.Input);
-         		   String input = edit.getText().toString();
-         		   Double valueTmp = parseInputValueToDouble(input);
-         		   if(valueTmp == null) return;
-         		   double value = valueTmp;
-         		   writeClientValuePreference(item.ID, value);
-         	   }
-         	   dialog.dismiss();
-			}
-		});
-		// cancel
-		Button cancel = (Button) dialog.findViewById(R.id.cancel);
-		cancel.setOnClickListener(new OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				dialog.dismiss();
-			}
-		});
-	}
-	
-	private void writeClientValuePreference(int id, double value) {
-		// update preferences
-		switch (id) {
-		case R.string.prefs_disk_max_pct_header:
-			clientPrefs.disk_max_used_pct = value;
-			break;
-		case R.string.prefs_disk_min_free_gb_header:
-			clientPrefs.disk_min_free_gb = value;
-			break;
-		case R.string.prefs_disk_access_interval_header:
-			clientPrefs.disk_interval = value;
-			break;
-		case R.string.prefs_network_daily_xfer_limit_mb_header:
-			clientPrefs.daily_xfer_limit_mb = value;
-			// also need to set the period!
-			clientPrefs.daily_xfer_period_days = 1;
-			break;
-		case R.string.battery_charge_min_pct_header:
-			clientPrefs.battery_charge_min_pct = value;
-			break;
-		case R.string.battery_temperature_max_header:
-			clientPrefs.battery_max_temperature = value;
-			break;
-		case R.string.prefs_cpu_number_cpus_header:
-			clientPrefs.max_ncpus_pct = value;
-			//convert value back to number for layout update
-			value = pctCpuCoresToNumber(value);
-			break;
-		case R.string.prefs_cpu_time_max_header:
-			clientPrefs.cpu_usage_limit = value;
-			break;
-		case R.string.prefs_cpu_other_load_suspension_header:
-			clientPrefs.suspend_cpu_usage = value;
-			break;
-		case R.string.prefs_memory_max_idle_header:
-			clientPrefs.ram_max_used_idle_frac = value;
-			break;
-		default:
-			if(Logging.DEBUG) Log.d(Logging.TAG,"onClick (dialog submit button), couldnt match ID");
-			Toast toast = Toast.makeText(getActivity(), "ooops! something went wrong...", Toast.LENGTH_SHORT);
-			toast.show();
-			return;
-		}
-		// update list item
-		updateValuePref(id, value);
-		// preferences adapted, write preferences to client
-		new WriteClientPrefsAsync().execute(clientPrefs);
-	}
-	
-	private double numberCpuCoresToPct(double ncpus) {
-		double pct = (ncpus / (double)hostinfo.p_ncpus) * 100;
-		if(Logging.DEBUG) Log.d(Logging.TAG,"numberCpuCoresToPct: " + ncpus + hostinfo.p_ncpus + pct);
-		return pct;
-	}
-	
-	private double pctCpuCoresToNumber(double pct) {
-		double ncpus = (double)hostinfo.p_ncpus * (pct / 100.0);
-		if(ncpus < 1.0) ncpus = 1.0;
-		return ncpus;
-	}
-
-	public Double parseInputValueToDouble(String input) {
-		// parse value
-		Double value = 0.0;
-		try {
-			input=input.replaceAll(",","."); //replace e.g. European decimal seperator "," by "."
-			value = Double.parseDouble(input);
-			if(Logging.DEBUG) Log.d(Logging.TAG,"parseInputValueToDouble: " + value);
-			return value;
-		} catch (Exception e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, e);
-			Toast toast = Toast.makeText(getActivity(), "wrong format!", Toast.LENGTH_SHORT);
-			toast.show();
-			return null;
-		}
-	}
-	
-	private String formatOptionsToCcConfig(ArrayList<String> options) {
-		StringBuilder builder = new StringBuilder();
-		builder.append("<cc_config>\n <log_flags>\n");
-	    for(String option: options) builder.append("  <" + option + "/>\n");
-	    builder.append(" </log_flags>\n <options>\n </options>\n</cc_config>");
-		return builder.toString();
-	}
-	
-	public class BoolOnClick implements OnClickListener {
-		
-		private Integer ID;
-		private CheckBox cb;
-		
-		public BoolOnClick(Integer ID, CheckBox cb) {
-			this.ID = ID;
-			this.cb = cb;
-		}
-
-		@Override
-		public void onClick(View view) {
-			if(Logging.DEBUG) Log.d(Logging.TAG,"onCbClick");
-			Boolean previousState = cb.isChecked();
-			cb.setChecked(!previousState);
-			Boolean isSet = cb.isChecked();
-			try{
-				switch (ID) {
-				case R.string.prefs_autostart_header: //app pref
-					BOINCActivity.monitor.setAutostart(isSet);
-					updateBoolPref(ID, isSet);
-					updateLayout();
-					break;
-				case R.string.prefs_show_notification_notices_header: //app pref
-					BOINCActivity.monitor.setShowNotificationForNotices(isSet);
-					updateBoolPref(ID, isSet);
-					updateLayout();
-					break;
-				case R.string.prefs_show_notification_suspended_header: //app pref
-					BOINCActivity.monitor.setShowNotificationDuringSuspend(isSet);
-					updateBoolPref(ID, isSet);
-					updateLayout();
-					break;
-				case R.string.prefs_show_advanced_header: //app pref
-					BOINCActivity.monitor.setShowAdvanced(isSet);
-					// reload complete layout to remove/add advanced elements
-					populateLayout();
-					break;
-				case R.string.prefs_suspend_when_screen_on: //app pref
-					BOINCActivity.monitor.setSuspendWhenScreenOn(isSet);
-					updateBoolPref(ID, isSet);
-					updateLayout();
-					break;
-				case R.string.prefs_network_wifi_only_header: //client pref
-					clientPrefs.network_wifi_only = isSet;
-					updateBoolPref(ID, isSet);
-					new WriteClientPrefsAsync().execute(clientPrefs); //async task triggers layout update
-					break;
-				case R.string.prefs_stationary_device_mode_header: //app pref
-					BOINCActivity.monitor.setStationaryDeviceMode(isSet);
-					// reload complete layout to remove/add power preference elements
-					populateLayout();
-					break;
-				}
-			} catch(RemoteException e) {}
-		}
-		
-	}
-	
-	public class ValueOnClick implements OnClickListener {
-		
-		private PrefsListItemWrapper item;
-		
-		public ValueOnClick(PrefsListItemWrapper wrapper) {
-			this.item = wrapper;
-		}
-
-		@Override
-		public void onClick(View view) {
-			final Dialog dialog = new Dialog(getActivity());
-			dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
-			
-			// setup dialog layout
-			switch(item.ID) {
-			case R.string.prefs_network_daily_xfer_limit_mb_header:
-				dialog.setContentView(R.layout.prefs_layout_dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				setupDialogButtons(item, dialog);
-				break;
-			case R.string.prefs_power_source_header:
-				try {
-					setupSelectionListDialog(item, dialog);
-				} catch (RemoteException e) {}
-				break;
-			case R.string.battery_charge_min_pct_header:
-				setupSliderDialog(item, dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				break;
-			case R.string.battery_temperature_max_header:
-				dialog.setContentView(R.layout.prefs_layout_dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				setupDialogButtons(item, dialog);
-				break;
-			case R.string.prefs_cpu_number_cpus_header:
-				setupSliderDialog(item, dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				break;
-			case R.string.prefs_cpu_time_max_header:
-				setupSliderDialog(item, dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				break;
-			case R.string.prefs_cpu_other_load_suspension_header:
-				setupSliderDialog(item, dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				break;
-			case R.string.prefs_disk_max_pct_header:
-				setupSliderDialog(item, dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				break;
-			case R.string.prefs_disk_min_free_gb_header:
-				dialog.setContentView(R.layout.prefs_layout_dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				setupDialogButtons(item, dialog);
-				break;
-			case R.string.prefs_disk_access_interval_header:
-				dialog.setContentView(R.layout.prefs_layout_dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				setupDialogButtons(item, dialog);
-				break;
-			case R.string.prefs_memory_max_idle_header:
-				setupSliderDialog(item, dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				break;
-			case R.string.prefs_client_log_flags_header:
-				try {
-					setupSelectionListDialog(item, dialog);
-				} catch (RemoteException e) {}
-				break;
-			case R.string.prefs_gui_log_level_header:
-				setupSliderDialog(item, dialog);
-				((TextView)dialog.findViewById(R.id.pref)).setText(item.ID);
-				break;
-			default:
-				if(Logging.ERROR) Log.d(Logging.TAG,"PrefsActivity onItemClick: could not map ID: " + item.ID);
-				return;
-			}
-			
-			// show dialog
-			dialog.show();
-		}
-	}
-	
-	private final class WriteClientPrefsAsync extends AsyncTask<GlobalPreferences,Void,Boolean> {
-		@Override
-		protected Boolean doInBackground(GlobalPreferences... params) {
-			try {
-				return BOINCActivity.monitor.setGlobalPreferences(params[0]);
-			} catch (RemoteException e) {
-				return false;
-			}
-		}
-		
-		@Override
-		protected void onPostExecute(Boolean success) {
-			if(Logging.DEBUG) Log.d(Logging.TAG,"WriteClientPrefsAsync returned: " + success);
-			updateLayout();
-		}
-	}
-	
-	private final class SetCcConfigAsync extends AsyncTask<String,Void,Boolean> {
-		@Override
-		protected Boolean doInBackground(String... params) {
-			if(Logging.DEBUG) Log.d(Logging.TAG,"SetCcConfigAsync with: " + params[0]);
-			try {
-				return BOINCActivity.monitor.setCcConfig(params[0]);
-			} catch (RemoteException e) {
-				return false;
-			}
-		}
-	}
-	
-	public class SelectionDialogOption {
-		public String name;
-		public Boolean selected = false;
-		public Boolean highlighted = false;
-		
-		public SelectionDialogOption(String name) {
-			this.name = name;
-		}
-		
-		public SelectionDialogOption(String name, Boolean selected) {
-			this.name = name;
-			this.selected = selected;
-		}
-		
-		public SelectionDialogOption(String name, Boolean selected, Boolean highlighted) {
-			this.name = name;
-			this.selected = selected;
-			this.highlighted = highlighted;
-		}
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/ClientLogListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/ClientLogListAdapter.java
deleted file mode 100644
index 32fa294..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/ClientLogListAdapter.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.adapter;
-
-import java.util.ArrayList;
-import java.util.Date;
-import android.app.Activity;
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.TextView;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.rpc.Message;
-
-public class ClientLogListAdapter extends ArrayAdapter<Message> {
-	
-	private ArrayList<Message> entries;
-    private Activity activity;
-    
-    public static class ViewEventLog {
-    	int entryIndex;
-        TextView tvMessage;
-        TextView tvDate;
-        TextView tvProjectName;
-    }
- 
-    public ClientLogListAdapter(Activity activity, ListView listView, int textViewResourceId, ArrayList<Message> entries) {
-        super(activity, textViewResourceId, entries);
-        this.entries = entries;
-        this.activity = activity;
-        
-        listView.setAdapter(this);
-        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
-    }
- 
-	@Override
-	public int getCount() {
-		return entries.size();
-	}
-
-	public String getDate(int position) {
-		return new Date(entries.get(position).timestamp*1000).toString();
-	}
-
-	@Override
-	public Message getItem(int position) {
-		return entries.get(position);
-	}
-
-	@Override
-	public long getItemId(int position) {
-		return position;
-	}
-
-	public String getMessage(int position) {
-		return entries.get(position).body;
-	}
-
-	public String getProject(int position) {
-		return entries.get(position).project;
-	}
-
-	@Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-	    View vi = convertView;
-		ViewEventLog viewEventLog;
-    	
-		// Only inflate a new view if the ListView does not already have a view assigned.
-	    if (convertView == null) {
-	    	
-	    	vi = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.eventlog_client_listitem_layout, null);
-
-	        viewEventLog = new ViewEventLog();
-	        viewEventLog.tvMessage = (TextView)vi.findViewById(R.id.msgs_message);
-	        viewEventLog.tvDate = (TextView)vi.findViewById(R.id.msgs_date);
-	        viewEventLog.tvProjectName = (TextView)vi.findViewById(R.id.msgs_project);
-	    
-	        vi.setTag(viewEventLog);
-	        
-	    } else {
-	    	
-	    	viewEventLog = (ViewEventLog)vi.getTag();
-	    	
-	    }
-
-		// Populate UI Elements
-	    viewEventLog.entryIndex = position;
-	    viewEventLog.tvMessage.setText(getMessage(position));
-	    viewEventLog.tvDate.setText(getDate(position));
-	    if(getProject(position).isEmpty()){
-	    	viewEventLog.tvProjectName.setVisibility(View.GONE);
-	    } else {
-	    	viewEventLog.tvProjectName.setVisibility(View.VISIBLE);
-	    	viewEventLog.tvProjectName.setText(getProject(position));
-	    }
-
-        return vi;
-    }
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/NavDrawerListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/NavDrawerListAdapter.java
deleted file mode 100644
index 82c9ae5..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/NavDrawerListAdapter.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.adapter;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import edu.berkeley.boinc.BOINCActivity;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.rpc.Project;
-import edu.berkeley.boinc.utils.Logging;
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-public class NavDrawerListAdapter extends BaseAdapter{
-
-	//private final String TAG = "NavDrawerListAdapter";
-	private Context context;
-	private ArrayList<NavDrawerItem> navDrawerItems = new ArrayList<NavDrawerItem>();
-	
-	public int selectedMenuId = 0;
-	
-	public NavDrawerListAdapter(Context context){
-		this.context = context;
-		
-		// populate items
-		navDrawerItems.add(new NavDrawerItem(R.string.tab_tasks, R.drawable.tabtaskb, true));
-		navDrawerItems.add(new NavDrawerItem(R.string.tab_notices, R.drawable.mailb, true));
-		navDrawerItems.add(new NavDrawerItem(R.string.tab_projects, R.drawable.projectsb));
-		navDrawerItems.add(new NavDrawerItem(R.string.projects_add, R.drawable.sqplusb, false, true));
-		navDrawerItems.add(new NavDrawerItem(R.string.tab_preferences, R.drawable.cogsb));
-		navDrawerItems.add(new NavDrawerItem(R.string.menu_help, R.drawable.helpb));
-		navDrawerItems.add(new NavDrawerItem(R.string.menu_about, R.drawable.infob));
-		navDrawerItems.add(new NavDrawerItem(R.string.menu_eventlog, R.drawable.bugb));
-	}
-
-	@Override
-	public int getCount() {
-		return navDrawerItems.size();
-	}
-
-	@Override
-	public NavDrawerItem getItem(int position) {		
-		return navDrawerItems.get(position);
-	}
-
-	@Override
-	public long getItemId(int position) {
-		return navDrawerItems.get(position).id;
-	}
-	
-	public NavDrawerItem getItemForId(int id) {
-		for(NavDrawerItem item: navDrawerItems) {
-			if (item.id == id) return item;
-		}
-		return null;
-	}
-
-	@Override
-	public View getView(int position, View convertView, ViewGroup parent) {
-		if(Logging.VERBOSE) Log.d(Logging.TAG, "NavDrawerListAdapter.getView() for : " + navDrawerItems.get(position).title + navDrawerItems.get(position).isCounterVisible + navDrawerItems.get(position).isSubItem + navDrawerItems.get(position).isProjectItem);
-		if (convertView == null || !((String)convertView.getTag()).equals(navDrawerItems.get(position).title)) {
-			int layoutId = R.layout.navlist_listitem;
-			if(navDrawerItems.get(position).isSubItem()) layoutId = R.layout.navlist_listitem_subitem;
-            LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
-            convertView = mInflater.inflate(layoutId, null);
-        }
-        
-		RelativeLayout wrapper = (RelativeLayout) convertView.findViewById(R.id.listitem);
-        ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
-        TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
-        TextView txtCount = (TextView) convertView.findViewById(R.id.counter);
-         
-        if(navDrawerItems.get(position).isProjectItem) {
-        	Bitmap icon = navDrawerItems.get(position).getProjectIcon();
-        	if(icon == null) navDrawerItems.get(position).updateProjectIcon();
-        	if(icon != null) imgIcon.setImageBitmap(icon);
-        }
-        else imgIcon.setImageResource(navDrawerItems.get(position).getIcon());        
-        txtTitle.setText(navDrawerItems.get(position).getTitle());
-        
-        // displaying count
-        // check whether it set visible or not
-        if(navDrawerItems.get(position).getCounterVisibility()){
-    		Integer counter = 0;
-        	switch(navDrawerItems.get(position).id) {
-        	case R.string.tab_tasks:
-        		try {counter = BOINCActivity.monitor.getTasks().size();}catch(Exception e) {}
-        		break;
-        	case R.string.tab_notices: 
-        		try {counter = BOINCActivity.monitor.getRssNotices().size();}catch(Exception e) {}
-        		break;
-        	}
-        	txtCount.setText(counter.toString());
-        }else{
-        	// hide the counter view
-        	txtCount.setVisibility(View.GONE);
-        }
-        
-        // highligt entry of currently activated item
-        if(navDrawerItems.get(position).id == selectedMenuId) {
-        	if(Logging.DEBUG) Log.d(Logging.TAG, "NavDrawerListAdapter.getView() highlighted! ID : " + selectedMenuId);
-    		wrapper.setBackgroundResource(R.drawable.navlist_selector_pressed);
-        } else wrapper.setBackgroundResource(R.drawable.navlist_selector);
-        
-        convertView.setTag(navDrawerItems.get(position).title);
-        return convertView;
-	}
-	
-	public Bitmap getProjectIconForMasterUrl(String masterUrl) {
-		Bitmap bm = null;
-		try {
-			bm = BOINCActivity.monitor.getProjectIcon(masterUrl);
-		} catch (Exception e) {}
-		return bm;
-	}
-	
-	/**
-	 * Compares list of projects to items represented in nav bar.
-	 * @param projects
-	 * @return Returns number of project items in nav bar after adding
-	 */
-	public Integer compareAndAddProjects(ArrayList<Project> projects){
-		// delete all old projects from nav items
-		Iterator<NavDrawerItem> it = navDrawerItems.iterator();
-		while(it.hasNext()) {
-			NavDrawerItem item = it.next();
-			if(item.isProjectItem) it.remove();
-		}
-		
-		Integer numberAdded = 0;
-		
-		for(Project project: projects) {
-			NavDrawerItem newProjectItem = new NavDrawerItem(project.project_name, getProjectIconForMasterUrl(project.master_url), project.master_url);
-			navDrawerItems.add(3, newProjectItem);
-			numberAdded++;
-		}
-		
-		if(Logging.DEBUG) Log.d(Logging.TAG, "NavDrawerListAdapter.compareAndAddProjects() added: " + numberAdded);
-		this.notifyDataSetChanged();
-		return numberAdded;
-	}
-	
-	public class NavDrawerItem {
-		
-		private int id = 0;
-		private String title;
-		private int icon;
-		private boolean isCounterVisible = false;
-		private boolean isSubItem = false;
-		private boolean isProjectItem = false;
-		private Bitmap projectIcon;
-		private String projectMasterUrl;
-		
-		public NavDrawerItem(){}
-
-		/**
-		 * Creates default item
-		 */
-		public NavDrawerItem(int id, int icon){
-			this.id = id;
-			this.title = context.getString(id);
-			this.icon = icon;
-		}
-		
-		/**
-		 * Creates sub item under previous element
-		 */
-		public NavDrawerItem(int id, int icon, boolean isCounterVisible, boolean isSubItem) {
-			this.id = id;
-			this.title = context.getString(id);
-			this.icon = icon;
-			this.isSubItem = isSubItem;
-			this.isCounterVisible = isCounterVisible;
-		}
-		
-		/**
-		 * Creates item for project, which is sub item of Projects by default
-		 */
-		public NavDrawerItem(String name, Bitmap icon, String masterUrl) {
-			this.id = masterUrl.hashCode();
-			this.title = name;
-			this.projectIcon = icon;
-			this.projectMasterUrl = masterUrl;
-			this.isProjectItem = true;
-			this.isSubItem = true;
-			if(Logging.DEBUG) Log.d(Logging.TAG, "NavDrawerItem: created hash code " + id + " for project " + name);
-		}
-		
-		/**
-		 * Creates item with number counter on right
-		 */
-		public NavDrawerItem(int id, int icon, boolean isCounterVisible){
-			this.id = id;
-			this.title = context.getString(id);
-			this.icon = icon;
-			this.isCounterVisible = isCounterVisible;
-		}
-		
-		public int getId() {
-			return id;
-		}
-		
-		public String getTitle(){
-			return this.title;
-		}
-		
-		public int getIcon(){
-			return this.icon;
-		}
-		
-		public String getProjectMasterUrl(){
-			return this.projectMasterUrl;
-		}
-		
-		public boolean getCounterVisibility(){
-			return this.isCounterVisible;
-		}
-		
-		public boolean isSubItem() {
-			return this.isSubItem;
-		}
-		
-		public boolean isProjectItem() {
-			return this.isProjectItem;
-		}
-		
-		public Bitmap getProjectIcon() {
-			return this.projectIcon;
-		}
-		
-		public void updateProjectIcon() {
-			this.projectIcon = getProjectIconForMasterUrl(projectMasterUrl);
-		}
-		
-		public void setTitle(String title){
-			this.title = title;
-		}
-		
-		public void setIcon(int icon){
-			this.icon = icon;
-		}
-		
-		public void setCounterVisibility(boolean isCounterVisible){
-			this.isCounterVisible = isCounterVisible;
-		}
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/NoticesListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/NoticesListAdapter.java
deleted file mode 100644
index 8b4284d..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/NoticesListAdapter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.adapter;
-
-import edu.berkeley.boinc.utils.*;
-import java.util.ArrayList;
-import org.apache.http.impl.cookie.DateUtils;
-import edu.berkeley.boinc.BOINCActivity;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.rpc.Notice;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.text.Html;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-public class NoticesListAdapter extends ArrayAdapter<Notice>{
-	private ArrayList<Notice> entries;
-	private Activity activity;
-
-	public NoticesListAdapter(Activity a, int textViewResourceId, ArrayList<Notice> entries) {
-		super(a, textViewResourceId, entries);
-		this.entries = entries;
-		this.activity = a;
-	}
-
-	@Override
-	public View getView(int position, View convertView, ViewGroup parent) {
-
-		final Notice listItem = entries.get(position);
-		
-		LayoutInflater vi = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-		View v = vi.inflate(R.layout.notices_layout_listitem, null);
-		
-		ImageView ivIcon = (ImageView)v.findViewById(R.id.projectIcon);
-		Bitmap icon = getIcon(position);
-		// if available set icon, if not boinc logo
-		if(icon == null) { 
-			ivIcon.setImageDrawable(getContext().getResources().getDrawable(R.drawable.boinc));
-		} else {
-			ivIcon.setImageBitmap(icon);
-		}
-		
-		TextView tvProjectName = (TextView) v.findViewById(R.id.projectName);
-		tvProjectName.setText(listItem.project_name);
-		
-		TextView tvNoticeTitle = (TextView) v.findViewById(R.id.noticeTitle);
-		tvNoticeTitle.setText(listItem.title);
-		
-		TextView tvNoticeContent = (TextView) v.findViewById(R.id.noticeContent);
-		tvNoticeContent.setText(Html.fromHtml(listItem.description));
-		
-		TextView tvNoticeTime = (TextView) v.findViewById(R.id.noticeTime);
-		tvNoticeTime.setText(DateUtils.formatDate(new java.util.Date((long)listItem.create_time*1000)));
-		
-		v.setOnClickListener(new OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				if(Logging.DEBUG) Log.d(Logging.TAG,"noticeClick: " + listItem.link);
-				
-				if(listItem.link != null && !listItem.link.isEmpty()){ 
-		    		Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(listItem.link));
-		    		activity.startActivity(i);
-				}
-				
-			}
-		});
-
-		return v;
-	}
-	
-	private Bitmap getIcon(int position) {
-		// try to get current client status from monitor
-		//ClientStatus status;
-		try{
-			//status  = Monitor.getClientStatus();
-			return BOINCActivity.monitor.getProjectIconByName(entries.get(position).project_name);
-		} catch (Exception e){
-			if(Logging.WARNING) Log.w(Logging.TAG,"TasksListAdapter: Could not load data, clientStatus not initialized.");
-			return null;
-		}
-		//return status.getProjectIconByName(entries.get(position).project_name);
-	}
-
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListAdapter.java
deleted file mode 100644
index ede6c39..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListAdapter.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.adapter;
-
-import java.util.ArrayList;
-import edu.berkeley.boinc.PrefsFragment;
-import edu.berkeley.boinc.PrefsFragment.BoolOnClick;
-import edu.berkeley.boinc.R;
-import android.app.Activity;
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.CheckBox;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-public class PrefsListAdapter extends ArrayAdapter<PrefsListItemWrapper>{
-	
-	//private final String TAG = "PrefsListAdapter";
-	private ArrayList<PrefsListItemWrapper> entries;
-    private Activity activity;
-    private PrefsFragment frag;
-    
-    public PrefsListAdapter(Activity a, PrefsFragment frag, int textViewResourceId, ArrayList<PrefsListItemWrapper> entries) {
-        super(a, textViewResourceId, entries);
-        this.entries = entries;
-        this.activity = a;
-        this.frag = frag;
-    }
- 
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-    	
-        View v = convertView;
-        LayoutInflater vi = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        
-    	PrefsListItemWrapper listItem = entries.get(position);
-    	
-    	if(listItem.isCategory) { // item is category
-    		v = vi.inflate(R.layout.prefs_layout_listitem_category, null);
-    		TextView header = (TextView) v.findViewById(R.id.category_header);
-    		header.setText(listItem.ID);
-    	} else { // item is element
-	    	if(listItem instanceof PrefsListItemWrapperBool) {
-	    		v = vi.inflate(R.layout.prefs_layout_listitem_bool, null);
-	    		CheckBox cb = (CheckBox) v.findViewById(R.id.checkbox);
-	        	cb.setChecked(((PrefsListItemWrapperBool) listItem).getStatus());
-	    		BoolOnClick listener = frag.new BoolOnClick(listItem.ID, cb);
-	        	RelativeLayout wrapper = (RelativeLayout) v.findViewById(R.id.checkbox_wrapper);
-	        	wrapper.setClickable(true);
-	        	wrapper.setOnClickListener(listener);
-	    		TextView header = (TextView) v.findViewById(R.id.checkbox_text);
-	    		header.setText(((PrefsListItemWrapperBool) listItem).header);
-	    	} else if(listItem instanceof PrefsListItemWrapperValue) {
-	    		PrefsListItemWrapperValue item = (PrefsListItemWrapperValue) listItem;
-	    		v = vi.inflate(R.layout.prefs_layout_listitem, null);
-	    		RelativeLayout wrapper = (RelativeLayout) v.findViewById(R.id.wrapper);
-	    		wrapper.setOnClickListener(frag.new ValueOnClick(listItem));
-	    		TextView header = (TextView) v.findViewById(R.id.header);
-	    		header.setText(item.header);
-	    		TextView description = (TextView) v.findViewById(R.id.description);
-	    		description.setText(item.description);
-	    		
-	    		// set status value or hide if 0
-    			LinearLayout statusWrapper = (LinearLayout) v.findViewById(R.id.status_wrapper);
-	    		if(item.status > 0) {
-	    			statusWrapper.setVisibility(View.VISIBLE);
-		    		String value = item.status.toString();
-		    		if(item.isPct || item.isNumber) {
-		    			value = "" + item.status.intValue();
-		    		} 
-		    		TextView status = (TextView) v.findViewById(R.id.status);
-		    		status.setText(value + " " + item.unit);
-	    		} else statusWrapper.setVisibility(View.GONE);
-	    	} else {
-	    		v = vi.inflate(R.layout.prefs_layout_listitem, null);
-	    		RelativeLayout wrapper = (RelativeLayout) v.findViewById(R.id.wrapper);
-	    		wrapper.setOnClickListener(frag.new ValueOnClick(listItem));
-	    		TextView header = (TextView) v.findViewById(R.id.header);
-	    		header.setText(listItem.header);
-	    		if(listItem.ID == R.string.prefs_client_log_flags_header) {
-		    		TextView description = (TextView) v.findViewById(R.id.description);
-		    		description.setVisibility(View.GONE);
-	    			LinearLayout statusWrapper = (LinearLayout) v.findViewById(R.id.status_wrapper);
-	    			statusWrapper.setVisibility(View.GONE);
-	    		} else if(listItem.ID == R.string.prefs_power_source_header) {
-		    		TextView description = (TextView) v.findViewById(R.id.description);
-		    		description.setText(listItem.description);
-	    			LinearLayout statusWrapper = (LinearLayout) v.findViewById(R.id.status_wrapper);
-	    			statusWrapper.setVisibility(View.GONE);
-	    		}
-	    	}
-    	}
-    	
-        return v;
-    }
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListItemWrapperValue.java b/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListItemWrapperValue.java
deleted file mode 100644
index 67c1910..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/PrefsListItemWrapperValue.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.adapter;
-
-import edu.berkeley.boinc.utils.*;
-
-import edu.berkeley.boinc.R;
-import android.content.Context;
-import android.util.Log;
-
-public class PrefsListItemWrapperValue extends PrefsListItemWrapper {
-
-	public String unit = "";
-	public Double status;
-	public Boolean isPct = false; // shows whether value is percentage, therefore using a SeekBar
-	public Boolean isNumber = false; // shows whether value is a number (e.g. cpu cores) to adjust seekbar
-	
-	public PrefsListItemWrapperValue(Context ctx, Integer ID, Integer categoryID, Double status) {
-		super(ctx, ID, categoryID);
-		this.status = status;
-		mapStrings(ID);
-	}
-	
-	private void mapStrings(Integer id) {
-		switch (id) {
-		case R.string.battery_charge_min_pct_header:
-			description = ctx.getString(R.string.battery_charge_min_pct_description);
-			unit = ctx.getString(R.string.prefs_unit_pct);
-			break;
-		case R.string.battery_temperature_max_header:
-			description = ctx.getString(R.string.battery_temperature_max_description);
-			unit = ctx.getString(R.string.prefs_unit_celcius);
-			break;
-		case R.string.prefs_disk_max_pct_header:
-			description = ctx.getString(R.string.prefs_disk_max_pct_description);
-			unit = ctx.getString(R.string.prefs_unit_pct);
-			break;
-		case R.string.prefs_disk_min_free_gb_header:
-			description = ctx.getString(R.string.prefs_disk_min_free_gb_description);
-			unit = ctx.getString(R.string.prefs_unit_gb);
-			break;
-		case R.string.prefs_disk_access_interval_header:
-			description = ctx.getString(R.string.prefs_disk_access_interval_description);
-			unit = ctx.getString(R.string.prefs_unit_seconds);
-			break;
-		case R.string.prefs_network_daily_xfer_limit_mb_header:
-			description = ctx.getString(R.string.prefs_network_daily_xfer_limit_mb_description);
-			unit = ctx.getString(R.string.prefs_unit_mb);
-			break;
-		case R.string.prefs_cpu_number_cpus_header:
-			description = ctx.getString(R.string.prefs_cpu_number_cpus_description);
-			isNumber = true;
-			break;
-		case R.string.prefs_cpu_other_load_suspension_header:
-			description = ctx.getString(R.string.prefs_cpu_other_load_suspension_description);
-			unit = ctx.getString(R.string.prefs_unit_pct);
-			break;
-		case R.string.prefs_cpu_time_max_header:
-			description = ctx.getString(R.string.prefs_cpu_time_max_description);
-			unit = ctx.getString(R.string.prefs_unit_pct);
-			break;
-		case R.string.prefs_memory_max_idle_header:
-			description = ctx.getString(R.string.prefs_memory_max_idle_description);
-			unit = ctx.getString(R.string.prefs_unit_pct);
-			break;
-		case R.string.prefs_gui_log_level_header:
-			description = ctx.getString(R.string.prefs_gui_log_level_description);
-			isNumber = true;
-			break;
-		default:
-			if(Logging.DEBUG) Log.d(Logging.TAG, "PrefsListItemWrapperValue map failed!");
-		}
-		if(unit.equals(ctx.getString(R.string.prefs_unit_pct))) isPct = true;
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java
deleted file mode 100644
index b5c99fb..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.adapter;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.text.format.DateUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-import edu.berkeley.boinc.ProjectsFragment.ProjectsListData;
-import edu.berkeley.boinc.BOINCActivity;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.rpc.Notice;
-import edu.berkeley.boinc.rpc.Transfer;
-import edu.berkeley.boinc.utils.Logging;
-
-public class ProjectsListAdapter extends ArrayAdapter<ProjectsListData> {
-    //private final String TAG = "ProjectsListAdapter";
-	
-	private ArrayList<ProjectsListData> entries;
-    private Activity activity;
-    
-    public ProjectsListAdapter(Activity activity, ListView listView, int textViewResourceId, ArrayList<ProjectsListData> entries) {
-        super(activity, textViewResourceId, entries);
-        this.entries = entries;
-        this.activity = activity;
-        
-        listView.setAdapter(this);
-    }
- 
-	@Override
-	public int getCount() {
-		return entries.size();
-	}
-
-	@Override
-	public ProjectsListData getItem(int position) {
-		return entries.get(position);
-	}
-
-	@Override
-	public long getItemId(int position) {
-		return position;
-	}
-
-	public String getName(int position) {
-		return entries.get(position).project.project_name;
-	}
-
-	public String getUser(int position) {
-		String user = entries.get(position).project.user_name;
-		String team = entries.get(position).project.team_name;
-		String userString = user;
-		if(!team.isEmpty()) user = user + " (" + team + ")";
-		return userString;
-	}
-	
-	public Boolean getIsAcctMgr(int position) {
-		return entries.get(position).isMgr;
-	}
-
-	public String getURL(int position) {
-		return entries.get(position).id;
-	}
-	
-	public Bitmap getIcon(int position) {
-		// try to get current client status from monitor
-		//ClientStatus status;
-		try{
-			//status  = Monitor.getClientStatus();
-			return BOINCActivity.monitor.getProjectIcon(entries.get(position).id);
-		} catch (Exception e){
-			if(Logging.WARNING) Log.w(Logging.TAG,"ProjectsListAdapter: Could not load data, clientStatus not initialized.");
-			return null;
-		}
-		//return status.getProjectIcon(entries.get(position).id);
-	}
-	
-	@Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-
-		ProjectsListData data = entries.get(position);
-		Boolean isAcctMgr = data.isMgr;
-
-		View vi = convertView;
-		// setup new view, if:
-		// - view is null, has not been here before
-		// - view has different id
-		Boolean setup = false;
-		if(vi == null) setup = true;
-		else {
-			String viewId = (String)vi.getTag();
-			if(!data.id.equals(viewId)) setup = true;
-		}
-		
-		if(setup){
-	    	// first time getView is called for this element
-			if(isAcctMgr) vi = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.projects_layout_listitem_acctmgr, null);
-			else vi = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.projects_layout_listitem, null);
-	    	//set onclicklistener for expansion
-			vi.setOnClickListener(entries.get(position).projectsListClickListener);
-			vi.setTag(data.id);
-		}
-		
-		if(isAcctMgr) {
-			// element is account manager
-			
-			// populate name
-	        TextView tvName = (TextView)vi.findViewById(R.id.name);
-	        tvName.setText(data.acctMgrInfo.acct_mgr_name);
-	        
-	        // populate url
-	        TextView tvUrl = (TextView)vi.findViewById(R.id.url);
-	        tvUrl.setText(data.acctMgrInfo.acct_mgr_url);
-			
-		} else {
-			// element is project
-			
-			// set data of standard elements
-	        TextView tvName = (TextView)vi.findViewById(R.id.project_name);
-	        tvName.setText(getName(position));
-	        
-	        TextView tvUser = (TextView)vi.findViewById(R.id.project_user);
-	        String userText = getUser(position);
-	        if(userText.isEmpty()) tvUser.setVisibility(View.GONE);
-	        else {
-	        	tvUser.setVisibility(View.VISIBLE);
-	        	tvUser.setText(userText);
-	        }
-	        
-		    String statusText = "";
-		    try{statusText = BOINCActivity.monitor.getProjectStatus(data.project.master_url);}catch(Exception e){}
-	        TextView tvStatus = (TextView)vi.findViewById(R.id.project_status);
-		    if(statusText.isEmpty()) tvStatus.setVisibility(View.GONE);
-		    else {
-		    	tvStatus.setVisibility(View.VISIBLE);
-		    	tvStatus.setText(statusText);
-		    }
-		    
-		    ImageView ivIcon = (ImageView)vi.findViewById(R.id.project_icon);
-		    String finalIconId = (String)ivIcon.getTag();
-		    if(finalIconId == null || !finalIconId.equals(data.id)) {
-			    Bitmap icon = getIcon(position);
-			    // if available set icon, if not boinc logo
-			    if (icon == null) {
-			    	// boinc logo
-			    	ivIcon.setImageDrawable(getContext().getResources().getDrawable(R.drawable.boinc));
-			    } else {
-			    	// project icon
-			    	ivIcon.setImageBitmap(icon);
-			    	// mark as final
-			    	ivIcon.setTag(data.id);
-			    }
-		    }
-		    
-		    // transfers
-		    Integer numberTransfers = data.projectTransfers.size();
-		    TextView tvTransfers = (TextView)vi.findViewById(R.id.project_transfers);
-		    String transfersString = "";
-		    if (numberTransfers > 0) { // ongoing transfers
-		    	// summarize information for compact representation
-		    	Integer numberTransfersUpload = 0;
-		    	Boolean uploadsPresent = false;
-		    	Integer numberTransfersDownload = 0;
-		    	Boolean downloadsPresent = false;
-		    	Boolean transfersActive = false; // true if at least one transfer is active
-		    	long nextRetryS = 0;
-			    for (Transfer trans: data.projectTransfers) {
-			    	if (trans.is_upload) {numberTransfersUpload++; uploadsPresent = true;}
-			    	else {numberTransfersDownload++; downloadsPresent = true;}
-			    	if(trans.xfer_active) transfersActive = true;
-			    	else if(trans.next_request_time < nextRetryS || nextRetryS == 0) nextRetryS = trans.next_request_time;
-			    }
-			    
-		    	String numberTransfersString = "("; // will never be empty
-		    	if(downloadsPresent) numberTransfersString += numberTransfersDownload + " " + activity.getResources().getString(R.string.trans_download);
-		    	if(downloadsPresent && uploadsPresent) numberTransfersString += " / ";
-		    	if(uploadsPresent) numberTransfersString += numberTransfersUpload + " " + activity.getResources().getString(R.string.trans_upload);
-		    	numberTransfersString += ")";
-		    	
-		    	String activityStatus = ""; // will never be empty
-			    String activityExplanation = "";
-			    if(!transfersActive) { // no transfers active, give reason
-			    	activityStatus += activity.getResources().getString(R.string.trans_pending);
-			    	
-			    	if(nextRetryS > 0) { // next try at defined time
-			    		long retryAtMs = nextRetryS * 1000;
-			    		long retryInMs = retryAtMs - Calendar.getInstance().getTimeInMillis();
-			    		if(retryInMs < 0) {}// timestamp in the past, write nothing
-			    		else {
-			    			activityExplanation += activity.getResources().getString(R.string.trans_retryin) + " " +
-					    			DateUtils.formatElapsedTime(retryInMs / 1000);
-			    		}
-			    		
-			    	}
-			    } else { // transfers active
-			    	activityStatus +=  activity.getResources().getString(R.string.trans_active);
-			    }
-			    
-			    transfersString += activity.getResources().getString(R.string.tab_transfers) + " " + activityStatus  + " " + numberTransfersString + " " + activityExplanation;
-			    tvTransfers.setVisibility(View.VISIBLE);
-			    tvTransfers.setText(transfersString);
-		    	
-		    } else { // no ongoing transfers
-		    	tvTransfers.setVisibility(View.GONE);
-		    }
-		    
-	    	// credits
-	    	Integer totalCredit = Double.valueOf(data.project.user_total_credit).intValue();
-	    	Integer hostCredit = Double.valueOf(data.project.host_total_credit).intValue();
-	    	String creditsText = vi.getContext().getString(R.string.projects_credits_header) + " " + hostCredit;
-			TextView tvCredits = (TextView)vi.findViewById(R.id.project_credits);
-	    	if(!hostCredit.equals(totalCredit)) // show host credit only if not like user credit
-	    		creditsText += " " + vi.getContext().getString(R.string.projects_credits_host_header) + " "
-	    					+ totalCredit + " " + vi.getContext().getString(R.string.projects_credits_user_header);
-	    	tvCredits.setText(creditsText);
-	    	
-	    	// server notice
-	    	Notice notice = data.getLastServerNotice();
-	        TextView tvNotice = (TextView)vi.findViewById(R.id.project_notice);
-	    	if(notice == null) {
-	    		tvNotice.setVisibility(View.GONE);
-	    	} else {
-	    		tvNotice.setVisibility(View.VISIBLE);
-	    		String noticeText = notice.description.trim();
-	    		tvNotice.setText(noticeText);
-	    	}
-	    	
-	    	// icon background
-    		RelativeLayout iconBackground = (RelativeLayout)vi.findViewById(R.id.icon_background);
-	    	if(data.project.attached_via_acct_mgr) {
-	    		iconBackground.setBackgroundDrawable(activity.getApplicationContext().getResources().getDrawable(R.drawable.shape_light_blue_background_wo_stroke));
-	    	} else {
-	    		iconBackground.setBackgroundColor(activity.getApplicationContext().getResources().getColor(android.R.color.transparent));
-	    	}
-		}
-		
-        return vi;
-    }
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/TasksListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/TasksListAdapter.java
deleted file mode 100644
index 854a1eb..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/TasksListAdapter.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.adapter;
-
-import edu.berkeley.boinc.utils.*;
-import java.sql.Date;
-import java.util.ArrayList;
-import edu.berkeley.boinc.BOINCActivity;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.TasksFragment.TaskData;
-import edu.berkeley.boinc.rpc.RpcClient;
-import edu.berkeley.boinc.utils.BOINCDefs;
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.text.format.DateFormat;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-public class TasksListAdapter extends ArrayAdapter<TaskData>{
-	private ArrayList<TaskData> entries;
-	private Activity activity;
-
-	public TasksListAdapter(Activity a, int textViewResourceId, ArrayList<TaskData> entries) {
-		super(a, textViewResourceId, entries);
-		this.entries = entries;
-		this.activity = a;
-	}
-
-	@Override
-	public View getView(int position, View convertView, ViewGroup parent) {
-
-		TaskData listItem = entries.get(position);
-
-		View v = convertView;
-		// setup new view, if:
-		// - view is null, has not been here before
-		// - view has different id
-		Boolean setup = false;
-		if(v == null) setup = true;
-		else {
-			String viewId = (String)v.getTag();
-			if(!listItem.id.equals(viewId)) setup = true;
-		}
-		
-		if(setup){
-			LayoutInflater vi = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-			v = vi.inflate(R.layout.tasks_layout_listitem, null);
-			v.setTag(listItem.id);
-		}
-		
-		ProgressBar pb = (ProgressBar) v.findViewById(R.id.progressBar);
-		TextView header = (TextView) v.findViewById(R.id.taskHeader);
-		TextView status = (TextView) v.findViewById(R.id.taskStatus);
-		TextView time = (TextView) v.findViewById(R.id.taskTime);
-		TextView statusPercentage = (TextView) v.findViewById(R.id.taskStatusPercentage);
-		ImageView expandButton = (ImageView) v.findViewById(R.id.expandCollapse);
-		
-		// --- set up view elements that are independent of "active" and "expanded" state
-		ImageView ivIcon = (ImageView)v.findViewById(R.id.projectIcon);
-		String finalIconId = (String)ivIcon.getTag();
-	    if(finalIconId == null || !finalIconId.equals(listItem.id)) {
-			Bitmap icon = getIcon(position);
-			// if available set icon, if not boinc logo
-			if(icon == null) { 
-				ivIcon.setImageDrawable(getContext().getResources().getDrawable(R.drawable.boinc));
-			} else {
-				ivIcon.setImageBitmap(icon);
-				ivIcon.setTag(listItem.id);
-			}
-		}
-		
-		String headerT = listItem.result.app.getName();
-		header.setText(headerT);
-		
-		// set project name
-		String tempProjectName = listItem.result.project_url;
-		if(listItem.result.project != null) {
-			tempProjectName = listItem.result.project.getName();
-			if(listItem.result.project_suspended_via_gui) {
-				tempProjectName = tempProjectName + " " + getContext().getString(R.string.tasks_header_project_paused);
-			}
-		}
-		((TextView) v.findViewById(R.id.projectName)).setText(tempProjectName);
-		
-		// status text
-		String statusT = determineStatusText(listItem);
-		status.setText(statusT);
-		if(listItem.result.state == BOINCDefs.RESULT_ABORTED ||
-				listItem.result.state == BOINCDefs.RESULT_COMPUTE_ERROR ||
-				listItem.result.state == BOINCDefs.RESULT_FILES_DOWNLOADING ||
-				listItem.result.state == BOINCDefs.RESULT_FILES_UPLOADED ||
-				listItem.result.state == BOINCDefs.RESULT_FILES_UPLOADING ||
-				listItem.result.state == BOINCDefs.RESULT_READY_TO_REPORT ||
-				listItem.result.state == BOINCDefs.RESULT_UPLOAD_FAILED)
-			statusPercentage.setVisibility(View.GONE);
-		else {
-			statusPercentage.setVisibility(View.VISIBLE);
-			statusPercentage.setText(String.format("%.1f", listItem.result.fraction_done * 100) + "%");
-		}
-		// --- end of independent view elements
-		
-		// progress bar: show when task active or expanded
-		// result and process state are overlapping, e.g. PROCESS_EXECUTING and RESULT_FILES_DOWNLOADING
-		// therefore check also whether task is active
-		Boolean active = (listItem.isTaskActive() && listItem.determineState() == BOINCDefs.PROCESS_EXECUTING);
-		if (active || listItem.expanded){
-			pb.setVisibility(View.VISIBLE);
-			pb.setIndeterminate(false);
-			pb.setProgressDrawable(this.activity.getResources().getDrawable(R.drawable.progressbar));
-			pb.setProgress(Math.round(listItem.result.fraction_done * pb.getMax()));
-		} else 
-			pb.setVisibility(View.GONE);
-		
-		// expansion
-		RelativeLayout rightColumnExpandWrapper = (RelativeLayout) v.findViewById(R.id.rightColumnExpandWrapper);
-		LinearLayout centerColumnExpandWrapper = (LinearLayout) v.findViewById(R.id.centerColumnExpandWrapper);
-		if(!listItem.expanded) {
-			// view is collapsed
-			expandButton.setImageResource(R.drawable.collapse);
-			rightColumnExpandWrapper.setVisibility(View.GONE);
-			centerColumnExpandWrapper.setVisibility(View.GONE);
-		} else {
-			// view is expanded
-			expandButton.setImageResource(R.drawable.expand);
-			rightColumnExpandWrapper.setVisibility(View.VISIBLE);
-			centerColumnExpandWrapper.setVisibility(View.VISIBLE);
-			
-			// elapsed time
-			int elapsedTime;
-			// show time depending whether task is active or not
-			if(listItem.result.active_task) elapsedTime = (int)listItem.result.elapsed_time; //is 0 when task finished
-			else elapsedTime = (int) listItem.result.final_elapsed_time;
-			time.setText(String.format("%02d:%02d:%02d", elapsedTime/3600, (elapsedTime/60)%60, elapsedTime%60));
-			
-			// set deadline
-			String deadline = (String) DateFormat.format("E d MMM yyyy hh:mm:ss aa", new Date(listItem.result.report_deadline*1000));
-			((TextView) v.findViewById(R.id.deadline)).setText(deadline);
-			// set application friendly name
-			if(listItem.result.app != null) {
-				((TextView) v.findViewById(R.id.taskName)).setText(listItem.result.name);
-			}
-			
-			// buttons
-			ImageView suspendResume = (ImageView) v.findViewById(R.id.suspendResumeTask);
-			ImageView abortButton = (ImageView) v.findViewById(R.id.abortTask);
-			if(listItem.determineState() == BOINCDefs.PROCESS_ABORTED) { //dont show buttons for aborted task
-				rightColumnExpandWrapper.setVisibility(View.INVISIBLE);
-			} else {
-				if (listItem.nextState == -1) { // not waiting for new state
-					suspendResume.setOnClickListener(listItem.iconClickListener);
-
-					abortButton.setOnClickListener(listItem.iconClickListener);
-					abortButton.setTag(RpcClient.RESULT_ABORT); // tag on button specified operation triggered in iconClickListener
-					abortButton.setVisibility(View.VISIBLE);
-					
-					((ProgressBar)v.findViewById(R.id.request_progressBar)).setVisibility(View.GONE);
-
-					// checking what suspendResume button should be shown
-					if(listItem.result.suspended_via_gui) { // show play
-						suspendResume.setVisibility(View.VISIBLE);
-						suspendResume.setImageResource(R.drawable.resumetask);
-						suspendResume.setTag(RpcClient.RESULT_RESUME); // tag on button specified operation triggered in iconClickListener
-
-					} else if (listItem.determineState() == BOINCDefs.PROCESS_EXECUTING){ // show pause
-						suspendResume.setVisibility(View.VISIBLE);
-						suspendResume.setImageResource(R.drawable.pausetask);
-						suspendResume.setTag(RpcClient.RESULT_SUSPEND); // tag on button specified operation triggered in iconClickListener
-
-					} else { // show nothing
-						suspendResume.setVisibility(View.GONE);
-					}
-				} else {
-					// waiting for a new state
-					suspendResume.setVisibility(View.INVISIBLE);
-					abortButton.setVisibility(View.INVISIBLE);
-					((ProgressBar)v.findViewById(R.id.request_progressBar)).setVisibility(View.VISIBLE);
-				}
-			}
-		}
-
-		return v;
-	}
-	
-	private Bitmap getIcon(int position) {
-		// try to get current client status from monitor
-		//ClientStatus status;
-		try{
-			//status  = Monitor.getClientStatus();
-			return BOINCActivity.monitor.getProjectIcon(entries.get(position).result.project_url);
-		} catch (Exception e){
-			if(Logging.WARNING) Log.w(Logging.TAG,"TasksListAdapter: Could not load data, clientStatus not initialized.");
-			return null;
-		}
-		//return status.getProjectIcon(entries.get(position).result.project_url);
-	}
-
-	private String determineStatusText(TaskData tmp) {
-		
-		//read status
-		Integer status = tmp.determineState();
-		//if(Logging.DEBUG) Log.d(Logging.TAG,"determineStatusText for status: " + status);
-		
-		// custom state
-		if(status == BOINCDefs.RESULT_SUSPENDED_VIA_GUI) return activity.getString(R.string.tasks_custom_suspended_via_gui);
-		if(status == BOINCDefs.RESULT_PROJECT_SUSPENDED) return activity.getString(R.string.tasks_custom_project_suspended_via_gui);
-		if(status == BOINCDefs.RESULT_READY_TO_REPORT) return activity.getString(R.string.tasks_custom_ready_to_report);
-		
-		//active state
-		if(tmp.result.active_task) {
-			switch(status) {
-			case BOINCDefs.PROCESS_UNINITIALIZED:
-				return activity.getString(R.string.tasks_active_uninitialized);
-			case BOINCDefs.PROCESS_EXECUTING:
-				return activity.getString(R.string.tasks_active_executing);
-			case BOINCDefs.PROCESS_ABORT_PENDING:
-				return activity.getString(R.string.tasks_active_abort_pending);
-			case BOINCDefs.PROCESS_QUIT_PENDING:
-				return activity.getString(R.string.tasks_active_quit_pending);
-			case BOINCDefs.PROCESS_SUSPENDED:
-				return activity.getString(R.string.tasks_active_suspended);
-			default:
-				if(Logging.WARNING) Log.w(Logging.TAG,"determineStatusText could not map: " + tmp.determineState());
-				return "";
-			}
-		} else { 
-			// passive state
-			switch(status) {
-			case BOINCDefs.RESULT_NEW:
-				return activity.getString(R.string.tasks_result_new);
-			case BOINCDefs.RESULT_FILES_DOWNLOADING:
-				return activity.getString(R.string.tasks_result_files_downloading);
-			case BOINCDefs.RESULT_FILES_DOWNLOADED:
-				return activity.getString(R.string.tasks_result_files_downloaded);
-			case BOINCDefs.RESULT_COMPUTE_ERROR:
-				return activity.getString(R.string.tasks_result_compute_error);
-			case BOINCDefs.RESULT_FILES_UPLOADING:
-				return activity.getString(R.string.tasks_result_files_uploading);
-			case BOINCDefs.RESULT_FILES_UPLOADED:
-				return activity.getString(R.string.tasks_result_files_uploaded);
-			case BOINCDefs.RESULT_ABORTED:
-				return activity.getString(R.string.tasks_result_aborted);
-			case BOINCDefs.RESULT_UPLOAD_FAILED:
-				return activity.getString(R.string.tasks_result_upload_failed);
-			default:
-				if(Logging.WARNING) Log.w(Logging.TAG,"determineStatusText could not map: " + tmp.determineState());
-				return "";
-			}
-		}
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/BatchProcessingActivity.java b/android/BOINC/src/edu/berkeley/boinc/attach/BatchProcessingActivity.java
deleted file mode 100644
index 11231e2..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/attach/BatchProcessingActivity.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-
-package edu.berkeley.boinc.attach;
-
-import java.util.ArrayList;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.utils.*;
-import edu.berkeley.boinc.BOINCActivity;
-import edu.berkeley.boinc.attach.ProjectAttachService.ProjectAttachWrapper;
-import android.app.Service;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentStatePagerAdapter;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v4.view.ViewPager.OnPageChangeListener;
-import android.util.Log;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-public class BatchProcessingActivity extends FragmentActivity{
-	
-	private ProjectAttachService attachService = null;
-	private boolean asIsBound = false;
-	
-    private static final int NUM_HINTS = 3; // number of available hint screens
-    private ViewPager mPager; // pager widget, handles animation and horizontal swiping gestures
-    private PagerAdapter mPagerAdapter; // provides content to pager
-	private ArrayList<HintFragment> hints = new ArrayList<HintFragment>(); // hint fragments
-	
-	//header
-	private TextView hintTv;
-	private ImageView hintIvRight;
-	private ImageView hintIvLeft;
-	
-    @Override
-    public void onCreate(Bundle savedInstanceState) {  
-        super.onCreate(savedInstanceState);  
-        if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity onCreate"); 
-        
-		// setup layout
-        setContentView(R.layout.attach_project_batch_processing_layout); 
-        
-        hintTv = (TextView)findViewById(R.id.hint_header_text);
-        hintIvRight = (ImageView)findViewById(R.id.hint_header_image_right);
-        hintIvLeft = (ImageView)findViewById(R.id.hint_header_image_left);
-        
-        // create hint fragments
-        hints.add(HintFragment.newInstance(HintFragment.HINT_TYPE_CONTRIBUTION));
-        hints.add(HintFragment.newInstance(HintFragment.HINT_TYPE_PROJECTWEBSITE));
-        hints.add(HintFragment.newInstance(HintFragment.HINT_TYPE_PLATFORMS));
-        
-        // Instantiate a ViewPager and a PagerAdapter.
-        mPager = (ViewPager) findViewById(R.id.hint_container);
-        mPagerAdapter = new HintPagerAdapter(getSupportFragmentManager());
-        mPager.setAdapter(mPagerAdapter);
-        mPager.setOnPageChangeListener(new OnPageChangeListener() {
-			@Override
-			public void onPageScrollStateChanged(int arg0) {}
-			@Override
-			public void onPageScrolled(int arg0, float arg1, int arg2) {}
-			@Override
-			public void onPageSelected(int arg0) {
-				adaptHintHeader();
-			}
-        });
-        adaptHintHeader();
-        
-        doBindService();
-    }
-    
-	@Override
-	protected void onDestroy() {
-    	if(Logging.VERBOSE) Log.v(Logging.TAG, "BatchProcessingActivity onDestroy");
-	    super.onDestroy();
-    	doUnbindService();
-	}	
-
-    @Override
-    public void onBackPressed() {
-        if (mPager.getCurrentItem() == 0) {
-            // If the user is currently looking at the first step, allow the system to handle the
-            // Back button. This calls finish() on this activity and pops the back stack.
-            super.onBackPressed();
-        } else {
-            // Otherwise, select the previous step.
-            mPager.setCurrentItem(mPager.getCurrentItem() - 1);
-        }
-    }
-
-	// triggered by continue button
-	public void continueClicked(View v) {
-		boolean conflicts = attachService.unresolvedConflicts();
-		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.continueClicked: conflicts? " + conflicts);
-		
-		if(conflicts) {
-			// conflicts occured, bring up resolution screen
-			if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: conflicts exists, open resolution activity...");
-			Intent intent = new Intent(BatchProcessingActivity.this, BatchConflictListActivity.class);
-			intent.putExtra("conflicts", true);
-			startActivity(intent);
-		} else {
-			// everything successful, go back to projects screen and clear history
-			Intent intent = new Intent(this, BOINCActivity.class);
-			// add flags to return to main activity and clearing all others and clear the back stack
-			intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
-			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-			intent.putExtra("targetFragment", R.string.tab_projects); // make activity display projects fragment
-			startActivity(intent);
-		}
-	}
-
-	// triggered by share button
-	public void shareClicked(View v) {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.shareClicked.");
-		Intent intent=new Intent(android.content.Intent.ACTION_SEND);
-		intent.setType("text/plain");
-		intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
-
-		// Add data to the intent, the receiving app will decide what to do with it.
-		intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.social_invite_content_title));
-		intent.putExtra(Intent.EXTRA_TEXT, String.format(getString(R.string.social_invite_content_body), android.os.Build.MANUFACTURER, getString(R.string.social_invite_content_url)));
-		startActivity(Intent.createChooser(intent, getString(R.string.social_invite_intent_title)));
-	}
-	
-	// adapts header text and icons when hint selection changes
-	private void adaptHintHeader() {
-		int position = mPager.getCurrentItem();
-		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.adaptHintHeader position: " + position);
-		String hintText = getString(R.string.attachproject_hints_header) + " " + (position + 1) + "/" + NUM_HINTS;
-		hintTv.setText(hintText);
-		int leftVisibility = View.VISIBLE;
-		int rightVisibility = View.VISIBLE;
-		if(position == 0) {
-			// first element reached
-			leftVisibility = View.GONE;
-		} else if (position == NUM_HINTS - 1) {
-			// last element reached
-			rightVisibility = View.GONE;
-		}
-		hintIvLeft.setVisibility(leftVisibility);
-		hintIvRight.setVisibility(rightVisibility);
-	}
-	
-	// previous image in hint header clicked
-	public void previousHintClicked(View view) {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.previousHintClicked.");
-		mPager.setCurrentItem(mPager.getCurrentItem() - 1);
-	}
-	
-	// previous image in hint header clicked
-	public void nextHintClicked(View view) {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "BatchProcessingActivity.nextHintClicked.");
-		mPager.setCurrentItem(mPager.getCurrentItem() + 1);
-	}
-	
-	private ServiceConnection mASConnection = new ServiceConnection() {
-	    public void onServiceConnected(ComponentName className, IBinder service) {
-	        // This is called when the connection with the service has been established, getService returns 
-	    	// the Monitor object that is needed to call functions.
-	        attachService = ((ProjectAttachService.LocalBinder)service).getService();
-		    asIsBound = true;
-		    
-		    // start attaching projects
-		    new AttachProjectAsyncTask().execute();
-	    }
-
-	    public void onServiceDisconnected(ComponentName className) {
-	    	// This should not happen
-	    	attachService = null;
-	    	asIsBound = false;
-	    }
-	};
-	
-	private void doBindService() {
-		// bind to attach service
-		bindService(new Intent(this, ProjectAttachService.class), mASConnection, Service.BIND_AUTO_CREATE);
-	}
-
-	private void doUnbindService() {
-	    if (asIsBound) {
-	        // Detach existing connection.
-	        unbindService(mASConnection);
-	        asIsBound = false;
-	    }
-	}
-	
-	private class AttachProjectAsyncTask extends AsyncTask<Void, String, Void> {
-		
-		@Override
-		protected void onPreExecute() {
-			if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: " + attachService.getNumberSelectedProjects() + " projects to attach....");
-			((TextView) findViewById(R.id.attach_status_text)).setText(getString(R.string.attachproject_login_loading)); // shown while project configs are loaded
-			super.onPreExecute();
-		}
-
-		@Override
-		protected Void doInBackground(Void... arg0) {
-			// wait until service is ready
-			while(!attachService.projectConfigRetrievalFinished) {
-		    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: project config retrieval has not finished yet, wait...");
-		    	try{Thread.sleep(1000);} catch(Exception e){}
-			}
-	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: project config retrieval finished, continue with attach.");
-			// attach projects, one at a time
-			ArrayList<ProjectAttachWrapper> selectedProjects = attachService.getSelectedProjects();
-			for(ProjectAttachWrapper selectedProject: selectedProjects) {
-				if(selectedProject.result != ProjectAttachWrapper.RESULT_READY) continue; // skip already tried projects in batch processing
-	    		publishProgress(selectedProject.info.name);
-	    		int conflict = selectedProject.lookupAndAttach(false);
-	    		if(conflict != ProjectAttachWrapper.RESULT_SUCCESS) if(Logging.ERROR) Log.e(Logging.TAG,"AttachProjectAsyncTask attach returned conflict: " + conflict);
-	    	}
-	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: finsihed.");
-	    	return null;
-		}
-		
-		@Override
-		protected void onProgressUpdate(String... values) {
-	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectAsyncTask: trying: " + values[0]);
-	    	((TextView) findViewById(R.id.attach_status_text)).setText(getString(R.string.attachproject_working_attaching) + " " + values[0]);
-			super.onProgressUpdate(values);
-		}
-
-		@Override
-		protected void onPostExecute(Void result) {
-			((LinearLayout) findViewById(R.id.attach_status_ongoing_wrapper)).setVisibility(View.GONE);
-			((Button) findViewById(R.id.continue_button)).setVisibility(View.VISIBLE);
-			((Button) findViewById(R.id.share_button)).setVisibility(View.VISIBLE);
-			super.onPostExecute(result);
-		}
-	}
-	
-	private class HintPagerAdapter extends FragmentStatePagerAdapter {
-		
-        public HintPagerAdapter(FragmentManager fm) {
-            super(fm);
-        }
-
-		@Override
-        public Fragment getItem(int position) {
-            return hints.get(position);
-        }
-
-        @Override
-        public int getCount() {
-            return NUM_HINTS;
-        }
-    }
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/attach/SelectionListActivity.java b/android/BOINC/src/edu/berkeley/boinc/attach/SelectionListActivity.java
deleted file mode 100644
index b47fb59..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/attach/SelectionListActivity.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-
-package edu.berkeley.boinc.attach;
-
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.utils.*;
-import java.util.ArrayList;
-import edu.berkeley.boinc.client.IMonitor;
-import edu.berkeley.boinc.client.Monitor;
-import edu.berkeley.boinc.rpc.ProjectInfo;
-import android.app.Service;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.support.v4.app.FragmentActivity;
-import android.util.Log;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.Toast;
-
-public class SelectionListActivity extends FragmentActivity{
-
-	private ListView lv;
-	ArrayList<ProjectListEntry> entries = new ArrayList<ProjectListEntry>();
-	ArrayList<ProjectInfo> selected = new ArrayList<ProjectInfo>();
-	
-	// services
-	private IMonitor monitor = null;
-	private boolean mIsBound = false;
-	private ProjectAttachService attachService = null;
-	private boolean asIsBound = false;
-	
-    @Override
-    public void onCreate(Bundle savedInstanceState) {  
-        super.onCreate(savedInstanceState);  
-         
-        if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectListActivity onCreate"); 
-        
-        doBindService();
-		
-		// setup layout
-        setContentView(R.layout.attach_project_list_layout);  
-		lv = (ListView) findViewById(R.id.listview);
-    }
-    
-	@Override
-	protected void onDestroy() {
-    	if(Logging.VERBOSE) Log.v(Logging.TAG, "AttachProjectListActivity onDestroy");
-    	doUnbindService();
-	    super.onDestroy();
-	}
-	
-	// check whether user has checked at least a single project
-	// shows toast otherwise
-	private Boolean checkProjectChecked() {
-		for(ProjectListEntry tmp: entries) {
-			if(tmp.checked) return true;
-		}
-    	Toast toast = Toast.makeText(getApplicationContext(), R.string.attachproject_list_header, Toast.LENGTH_SHORT);
-    	toast.show();
-    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectListActivity no project selected, stop!"); 
-		return false;
-	}
-	
-	// check whether device is online before starting connection attempt
-	// as needed for AttachProjectLoginActivity (retrieval of ProjectConfig)
-	// note: available internet does not guarantee connection to project server
-	// is possible!
-	private Boolean checkDeviceOnline() {
-	    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
-	    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
-	    Boolean online = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
-	    if(!online) {
-	    	Toast toast = Toast.makeText(getApplicationContext(), R.string.attachproject_list_no_internet, Toast.LENGTH_SHORT);
-	    	toast.show();
-	    	if(Logging.DEBUG) Log.d(Logging.TAG, "AttachProjectListActivity not online, stop!"); 
-	    }
-	    return online;
-	}
-	
-	// triggered by continue button
-	public void continueClicked(View v) {
-		if(!checkProjectChecked()) return;
-		if(!checkDeviceOnline()) return;
-		
-		String selectedProjectsDebug = "";
-		// get selected projects
-		selected.clear();
-		for(ProjectListEntry tmp: entries) {
-			if(tmp.checked) {
-				selected.add(tmp.info);
-				selectedProjectsDebug += tmp.info.name + ",";
-			}
-		}
-		if(Logging.DEBUG) Log.d(Logging.TAG, "SelectionListActivity: selected projects: " + selectedProjectsDebug);
-		
-		attachService.setSelectedProjects(selected); // returns immediately
-		
-		// start credential input activity
-		startActivity(new Intent(this, CredentialInputActivity.class));
-	}
-	
-	private ServiceConnection mMonitorConnection = new ServiceConnection() {
-	    public void onServiceConnected(ComponentName className, IBinder service) {
-	        // This is called when the connection with the service has been established, getService returns 
-	    	// the Monitor object that is needed to call functions.
-	        monitor = IMonitor.Stub.asInterface(service);
-		    mIsBound = true;
-		    
-			UpdateProjectListAsyncTask task = new UpdateProjectListAsyncTask();
-			task.execute();
-	    }
-
-	    public void onServiceDisconnected(ComponentName className) {
-	    	// This should not happen
-	        monitor = null;
-		    mIsBound = false;
-	    }
-	};
-	
-	private ServiceConnection mASConnection = new ServiceConnection() {
-	    public void onServiceConnected(ComponentName className, IBinder service) {
-	        // This is called when the connection with the service has been established, getService returns 
-	    	// the Monitor object that is needed to call functions.
-	        attachService = ((ProjectAttachService.LocalBinder)service).getService();
-		    asIsBound = true;
-	    }
-
-	    public void onServiceDisconnected(ComponentName className) {
-	    	// This should not happen
-	    	attachService = null;
-	    	asIsBound = false;
-	    }
-	};
-	
-	private void doBindService() {
-		// start service to allow setForeground later on...
-		startService(new Intent(this, Monitor.class));
-	    // Establish a connection with the service, onServiceConnected gets called when
-		bindService(new Intent(this, Monitor.class), mMonitorConnection, Service.BIND_AUTO_CREATE);
-		// bind to attach service
-		bindService(new Intent(this, ProjectAttachService.class), mASConnection, Service.BIND_AUTO_CREATE);
-	}
-
-	private void doUnbindService() {
-	    if (mIsBound) {
-	        // Detach existing connection.
-	        unbindService(mMonitorConnection);
-	        mIsBound = false;
-	    }
-	    if (asIsBound) {
-	        // Detach existing connection.
-	        unbindService(mASConnection);
-	        asIsBound = false;
-	    }
-	}
-	
-	private class UpdateProjectListAsyncTask extends AsyncTask<Void, Void, ArrayList<ProjectInfo>> {
-
-		@Override
-		protected ArrayList<ProjectInfo> doInBackground(Void... arg0) {
-			
-			ArrayList<ProjectInfo> data = null;
-			Boolean retry = true;
-			while(retry) {
-				try{data = (ArrayList<ProjectInfo>) monitor.getAttachableProjects();} catch (RemoteException e){}
-				if(data == null) {
-					if(Logging.WARNING) Log.w(Logging.TAG,"UpdateProjectListAsyncTask: failed to retrieve data, retry....");
-					try{Thread.sleep(500);} catch(Exception e) {}
-				} else retry = false;
-			}
-			if(Logging.DEBUG) Log.d( Logging.TAG,"monitor.getAttachableProjects returned with " + data.size() + " elements");
-			return data;
-		}
-		
-		protected void onPostExecute(ArrayList<ProjectInfo> result) {
-	        if (result != null) {
-	        	entries.clear();
-	        	for(ProjectInfo tmp: result) {
-	        		entries.add(new ProjectListEntry(tmp));
-	        	}
-
-	        	entries.add(new ProjectListEntry()); // add account manager option to bottom of list
-		        SelectionListAdapter listAdapter = new SelectionListAdapter(SelectionListActivity.this,R.id.listview,entries);
-		        lv.setAdapter(listAdapter);
-	         } 
-	    }
-	}
-	
-	class ProjectListEntry {
-		public ProjectInfo info;
-		public boolean checked;
-		public boolean am; //indicates that element is account manager entry
-		
-		public ProjectListEntry(ProjectInfo info) {
-			this.info = info;
-			this.checked = false;
-		}
-		
-		/**
-		 * Creates Account manager list object
-		 */
-		public ProjectListEntry() {
-			this.am = true;
-		}
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/ClientInterfaceImplementation.java b/android/BOINC/src/edu/berkeley/boinc/client/ClientInterfaceImplementation.java
deleted file mode 100644
index 3397f9d..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/client/ClientInterfaceImplementation.java
+++ /dev/null
@@ -1,496 +0,0 @@
-package edu.berkeley.boinc.client;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import android.util.Log;
-import edu.berkeley.boinc.rpc.AccountIn;
-import edu.berkeley.boinc.rpc.AccountOut;
-import edu.berkeley.boinc.rpc.AcctMgrRPCReply;
-import edu.berkeley.boinc.rpc.GlobalPreferences;
-import edu.berkeley.boinc.rpc.Message;
-import edu.berkeley.boinc.rpc.Project;
-import edu.berkeley.boinc.rpc.ProjectAttachReply;
-import edu.berkeley.boinc.rpc.ProjectConfig;
-import edu.berkeley.boinc.rpc.ProjectInfo;
-import edu.berkeley.boinc.rpc.RpcClient;
-import edu.berkeley.boinc.rpc.Transfer;
-import edu.berkeley.boinc.utils.BOINCErrors;
-import edu.berkeley.boinc.utils.Logging;
-
-/**
- * Class implements RPC commands with the client
- * extends RpcClient with polling, re-try and other mechanisms
- * Most functions can block executing thread, do not call them from UI thread!
- */
-public class ClientInterfaceImplementation extends RpcClient{
-	
-	// interval between polling retries in ms
-	private final Integer minRetryInterval = 1000;
-    
-    /**
-     * Reads authentication key from specified file path and authenticates GUI for advanced RPCs with the client
-     * @param authFilePath absolute path to file containing gui authentication key
-     * @return success
-     */
-    public Boolean authorizeGuiFromFile(String authFilePath) {
-    	String authToken = readAuthToken(authFilePath);
-		return authorize(authToken); 
-    }
-
-    /**
-     * Sets run mode of BOINC client
-     * @param mode see class BOINCDefs
-     * @return success
-     */
-	public Boolean setRunMode(Integer mode) {
-		return setRunMode(mode, 0);
-	}
-	
-    /**
-     * Sets network mode of BOINC client
-     * @param mode see class BOINCDefs
-     * @return success
-     */
-	public Boolean setNetworkMode(Integer mode) {
-		return setNetworkMode(mode, 0);
-	}
-	
-	/**
-	 * Writes the given GlobalPreferences via RPC to the client. After writing, the active preferences are read back and written to ClientStatus.
-	 * @param prefs new target preferences for the client
-	 * @return success
-	 */
-	public Boolean setGlobalPreferences(GlobalPreferences prefs) {
-
-		// try to get current client status from monitor
-		ClientStatus status = null;
-		try{
-			status  = Monitor.getClientStatus();
-		} catch (Exception e){
-			if(Logging.WARNING) Log.w(Logging.TAG,"Monitor.setGlobalPreferences: Could not load data, clientStatus not initialized.");
-			return false;
-		}
-
-		Boolean retval1 = setGlobalPrefsOverrideStruct(prefs); //set new override settings
-		Boolean retval2 = readGlobalPrefsOverride(); //trigger reload of override settings
-		if(!retval1 || !retval2) {
-			return false;
-		}
-		GlobalPreferences workingPrefs = getGlobalPrefsWorkingStruct();
-		if(workingPrefs != null){
-			status.setPrefs(workingPrefs);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Reads authentication token for GUI RPC authentication from file
-	 * @param authFilePath absolute path to file containing GUI RPC authentication
-	 * @return GUI RPC authentication code
-	 */
-	public String readAuthToken(String authFilePath) {
-    	StringBuffer fileData = new StringBuffer(100);
-    	char[] buf = new char[1024];
-    	int read = 0;
-    	try{
-    		File authFile = new File(authFilePath);
-    		BufferedReader br = new BufferedReader(new FileReader(authFile));
-    		while((read=br.read(buf)) != -1){
-    	    	String readData = String.valueOf(buf, 0, read);
-    	    	fileData.append(readData);
-    	    	buf = new char[1024];
-    	    }
-    		br.close();
-    	}
-    	catch (FileNotFoundException fnfe) {
-    		if(Logging.ERROR) Log.e(Logging.TAG, "auth file not found",fnfe);
-    	}
-    	catch (IOException ioe) {
-    		if(Logging.ERROR) Log.e(Logging.TAG, "ioexception",ioe);
-    	}
-
-		String authKey = fileData.toString();
-		if(Logging.DEBUG) Log.d(Logging.TAG, "authentication key acquired. length: " + authKey.length());
-		return authKey;
-	}
-	
-	/**
-	 * Reads project configuration for specified master URL.
-	 * @param url master URL of the project
-	 * @return project configuration information
-	 */
-	public ProjectConfig getProjectConfigPolling(String url) {
-		ProjectConfig config = null;
-		
-    	Boolean success = getProjectConfig(url); //asynchronous call
-    	if(success) { //only continue if attach command did not fail
-    		// verify success of getProjectConfig with poll function
-    		Boolean loop = true;
-    		while(loop) {
-    			loop = false;
-    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
-    			config = getProjectConfigPoll();
-    			if(config==null) {
-    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.getProjectConfigPolling: returned null.");
-    				return null;
-    			}
-    			if (config.error_num == BOINCErrors.ERR_IN_PROGRESS) {
-    				loop = true; //no result yet, keep looping
-    			} else {
-    				//final result ready
-    				if(config.error_num == 0) { 
-        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.getProjectConfigPolling: ProjectConfig retrieved: " + config.name);
-    				} else {
-    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.getProjectConfigPolling: final result with error_num: " + config.error_num);
-    				}
-    			}
-    		}
-    	}
-		return config;
-	}
-	
-	/**
-	 * Attaches project, requires authenticator
-	 * @param url URL of project to be attached, either masterUrl(HTTP) or webRpcUrlBase(HTTPS)
-	 * @param projectName name of project as shown in the manager
-	 * @param authenticator user authentication key, has to be obtained first
-	 * @return success
-	 */
-	
-	public Boolean attachProject(String url, String projectName, String authenticator) {
-    	Boolean success = projectAttach(url, authenticator, projectName); //asynchronous call to attach project
-    	if(success) {
-    		// verify success of projectAttach with poll function
-    		ProjectAttachReply reply = projectAttachPoll();
-    		while(reply != null && reply.error_num == BOINCErrors.ERR_IN_PROGRESS) { // loop as long as reply.error_num == BOINCErrors.ERR_IN_PROGRESS
-    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
-    			reply = projectAttachPoll();
-    		}
-    		if(reply != null && reply.error_num == BOINCErrors.ERR_OK) return true;
-    	} else if(Logging.DEBUG) Log.d(Logging.TAG, "rpc.projectAttach failed.");
-    	return false;
-    }
-	
-	/**
-	 * Checks whether project of given master URL is currently attached to BOINC client
-	 * @param url master URL of the project
-	 * @return true if attached
-	 */
-	
-	public Boolean checkProjectAttached(String url) {
-		Boolean match = false;
-		try{
-			ArrayList<Project> attachedProjects = getProjectStatus();
-			for (Project project: attachedProjects) {
-				if(Logging.DEBUG) Log.d(Logging.TAG, project.master_url + " vs " + url);
-				if(project.master_url.equals(url)) {
-					match = true;
-					continue;
-				}
-			}
-		} catch(Exception e){}
-		return match;
-	}
-	
-	/**
-	 * Looks up account credentials for given user data.
-	 * Contains authentication key for project attachment.
-	 * @param url URL of project, either masterUrl(HTTP) or webRpcUrlBase(HTTPS)
-	 * @param id user ID, can be either name or eMail, see usesName
-	 * @param pwd password
-	 * @param usesName if true, id represents a user name, if not, the user's email address
-	 * @return account credentials
-	 */
-	
-	public AccountOut lookupCredentials(AccountIn credentials) {
-    	AccountOut auth = null;
-    	Boolean success = lookupAccount(credentials); //asynch
-    	if(success) {
-    		// get authentication token from lookupAccountPoll
-    		Boolean loop = true;
-    		while(loop) {
-    			loop = false;
-    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
-    			auth = lookupAccountPoll();
-    			if(auth==null) {
-    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.lookupCredentials: returned null.");
-    				return null;
-    			}
-    			if (auth.error_num == BOINCErrors.ERR_IN_PROGRESS) {
-    				loop = true; //no result yet, keep looping
-    			} else {
-    				//final result ready
-    				if(auth.error_num == 0) { 
-        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.lookupCredentials: authenticator retrieved.");
-    				} else {
-    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.lookupCredentials: final result with error_num: " + auth.error_num);
-    				}
-    			}
-    		}
-    	} else if(Logging.DEBUG) Log.d(Logging.TAG, "rpc.lookupAccount failed.");
-    	return auth;
-    }
-	
-	/**
-	 * Sets cc_config.xml entries and triggers activation in BOINC client.
-	 * Used to set debug log flags.
-	 * @param ccConfig string of all cc_config flags
-	 */
-	public void setCcConfigAndActivate(String ccConfig) {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "Monitor.setCcConfig: current cc_config: " + getCcConfig());
-		if(Logging.DEBUG) Log.d(Logging.TAG, "Monitor.setCcConfig: setting new cc_config: " + ccConfig);
-		setCcConfig(ccConfig);
-		readCcConfig();
-	}
-	
-	/**
-	 * Runs transferOp for a list of given transfers.
-	 * E.g. batch pausing of transfers
-	 * @param transfers list of transfered operation gets executed for
-	 * @param operation see BOINCDefs
-	 * @return success
-	 */
-	
-	public Boolean transferOperation(ArrayList<Transfer> transfers, int operation) {
-		Boolean success = true;
-		for (Transfer transfer: transfers) {
-			success = success && transferOp(operation, transfer.project_url, transfer.name);
-			if(Logging.DEBUG) Log.d(Logging.TAG, "transfer: " + transfer.name + " " + success);
-		}
-		return success;
-	}
-	
-	/**
-	 * Creates account for given user information and returns account credentials if successful.
-	 * @param url master URL of project
-	 * @param email email address of user
-	 * @param userName user name of user
-	 * @param pwd password
-	 * @param teamName name of team, account shall get associated to
-	 * @return account credentials (see status inside, to check success)
-	 */
-	
-	public AccountOut createAccountPolling(AccountIn information) {
-		AccountOut auth = null;
-		
-    	Boolean success = createAccount(information); //asynchronous call to attach project
-    	if(success) {
-    		Boolean loop = true;
-    		while(loop) {
-    			loop = false;
-    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
-    			auth = createAccountPoll();
-    			if(auth==null) {
-    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.createAccountPolling: returned null.");
-    				return null;
-    			}
-    			if (auth.error_num == BOINCErrors.ERR_IN_PROGRESS) {
-    				loop = true; //no result yet, keep looping
-    			} else {
-    				//final result ready
-    				if(auth.error_num == 0) { 
-        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.createAccountPolling: authenticator retrieved.");
-    				} else {
-    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.createAccountPolling: final result with error_num: " + auth.error_num);
-    				}
-    			}
-    		}
-    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.createAccount returned false.");}
-    	return auth;
-	}
-	
-	/**
-	 * Adds account manager to BOINC client.
-	 * There can only be a single acccount manager be active at a time.
-	 * @param url URL of account manager
-	 * @param userName
-	 * @param pwd
-	 * @return status of attachment
-	 */
-	
-	public AcctMgrRPCReply addAcctMgr(String url, String userName, String pwd) {
-		AcctMgrRPCReply reply = null;
-    	Boolean success = acctMgrRPC(url, userName, pwd); 
-    	if(success) {
-    		Boolean loop = true;
-    		while(loop) {
-    			reply = acctMgrRPCPoll();
-    			if(reply == null || reply.error_num != BOINCErrors.ERR_IN_PROGRESS) {
-    				loop = false;
-    				//final result ready
-    				if(reply == null) {if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.addAcctMgr: failed, reply null.");}
-    				else {if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.addAcctMgr: returned " + reply.error_num);}
-    			} else try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
-    		}
-    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.acctMgrRPC returned false.");}
-    	return reply;
-	}
-	
-	
-	/**
-	 * Synchronized BOINC client projects with information of account manager.
-	 * Sequence copied from BOINC's desktop manager.
-	 * @param url URL of account manager
-	 * @return success
-	 */
-	public Boolean synchronizeAcctMgr(String url) {
-
-	// 1st get_project_config for account manager url
-		Boolean success = false;
-		ProjectConfig reply = null;
-		success = getProjectConfig(url);
-    	if(success) {
-    		Boolean loop = true;
-    		while(loop) {
-    			loop = false;
-    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
-    			reply = getProjectConfigPoll();
-    			if(reply==null) {
-    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: getProjectConfigreturned null.");
-    				return null;
-    			}
-    			if (reply.error_num == BOINCErrors.ERR_IN_PROGRESS) {
-    				loop = true; //no result yet, keep looping
-    			} else {
-    				//final result ready
-    				if(reply.error_num == 0) { 
-        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: project config retrieved.");
-    				} else {
-    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: final result with error_num: " + reply.error_num);
-    				}
-    			}
-    		}
-    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.getProjectConfig returned false.");}
-		
-    // 2nd acct_mgr_rpc with <use_config_file/>
-		success = false;
-		AcctMgrRPCReply reply2 = null;
-    	success = acctMgrRPC(); //asynchronous call to synchronize account manager
-    	if(success) {
-    		Boolean loop = true;
-    		while(loop) {
-    			loop = false;
-    			try {Thread.sleep(minRetryInterval);} catch (Exception e) {}
-    			reply2 = acctMgrRPCPoll();
-    			if(reply2==null) {
-    				if(Logging.ERROR) Log.e(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: acctMgrRPCPoll returned null.");
-    				return null;
-    			}
-    			if (reply2.error_num == BOINCErrors.ERR_IN_PROGRESS) {
-    				loop = true; //no result yet, keep looping
-    			} else {
-    				//final result ready
-    				if(reply2.error_num == 0) { 
-        				if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: acct mngr reply retrieved.");
-    				} else {
-    					if(Logging.DEBUG) Log.d(Logging.TAG, "ClientInterfaceImplementation.synchronizeAcctMgr: final result with error_num: " + reply2.error_num);
-    				}
-    			}
-    		}
-    	} else {if(Logging.DEBUG) Log.d(Logging.TAG,"rpc.acctMgrRPC returned false.");}
-		
-		return true;
-	}
-	
-	@Override
-	public boolean setCcConfig(String ccConfig) {
-		// set CC config and trigger re-read.
-		super.setCcConfig(ccConfig);
-		return super.readCcConfig();
-	}
-
-	/**
-	 * Returns List of event log messages
-	 * @param seqNo lower bound of sequence number
-	 * @param number number of messages returned max, can be less
-	 * @return list of messages
-	 */
-	
-	// returns given number of client messages, older than provided seqNo
-	// if seqNo <= 0 initial data retrieval
-	public ArrayList<Message> getEventLogMessages(int seqNo, int number) {
-		// determine oldest message seqNo for data retrieval
-		int lowerBound = 0;
-		if(seqNo > 0) lowerBound = seqNo - number - 2;
-		else lowerBound = getMessageCount() - number - 1; // can result in >number results, if client writes message btwn. here and rpc.getMessages!
-		
-		// less than desired number of messsages available, adapt lower bound
-		if(lowerBound < 0) lowerBound = 0;
-		ArrayList<Message> msgs= getMessages(lowerBound); // returns ever messages with seqNo > lowerBound
-		if(msgs == null) msgs = new ArrayList<Message>(); // getMessages might return null in case of parsing or IO error
-		
-		if(seqNo > 0) {
-			// remove messages that are >= seqNo
-			Iterator<Message> it = msgs.iterator();
-			while(it.hasNext()) {
-				Message tmp = it.next();
-				if (tmp.seqno >= seqNo) it.remove();
-			}
-		}
-		
-		if(!msgs.isEmpty()) 
-			if(Logging.DEBUG) Log.d(Logging.TAG,"getEventLogMessages: returning array with " + msgs.size() + " entries. for lowerBound: " + lowerBound + " at 0: " + msgs.get(0).seqno + " at " + (msgs.size()-1) + ": " + msgs.get(msgs.size()-1).seqno);
-		else 
-			if(Logging.DEBUG) Log.d(Logging.TAG,"getEventLogMessages: returning empty array for lowerBound: " + lowerBound);
-		return msgs;
-	}
-	
-	/**
-	 * Returns list of projects from all_projects_list.xml that...
-	 * - support Android
-	 * - support CPU architecture
-	 * - are not yet attached
-	 * @return list of attachable projects
-	 */
-	public ArrayList<ProjectInfo> getAttachableProjects(String boincPlatformName) {
-		if(Logging.DEBUG) Log.d(Logging.TAG, "getAttachableProjects for platform: " + boincPlatformName);
-		
-		ArrayList<ProjectInfo> allProjectsList = getAllProjectsList(); // all_proejcts_list.xml
-		ArrayList<Project> attachedProjects = getState().projects; // currently attached projects
-		
-		ArrayList<ProjectInfo> attachableProjects = new ArrayList<ProjectInfo>(); // array to be filled and returned
-		
-		if(allProjectsList == null || attachedProjects == null) return null;
-		
-		//filter projects that do not support Android
-		for (ProjectInfo candidate: allProjectsList) {
-			// check whether already attached
-			Boolean alreadyAttached = false;
-			for(Project attachedProject: attachedProjects) {
-				if(attachedProject.master_url.equals(candidate.url)) {
-					alreadyAttached = true;
-					break;
-				}
-			}
-			if(alreadyAttached) continue;
-			
-			// project is not yet attached, check whether it supports CPU architecture
-			for(String supportedPlatform: candidate.platforms) {
-				if(supportedPlatform.contains(boincPlatformName)) {
-					// project is not yet attached and does support platform
-					// add to list, if not already in it
-					if(!attachableProjects.contains(candidate) )attachableProjects.add(candidate);
-					break;
-				}
-			}
-		}
-		
-		if(Logging.DEBUG) Log.d(Logging.TAG, "getAttachableProjects: number of candidates found: " + attachableProjects.size());
-		return attachableProjects;
-	}
-	
-	public ProjectInfo getProjectInfo(String url) {
-		ArrayList<ProjectInfo> allProjectsList = getAllProjectsList(); // all_proejcts_list.xml
-		for(ProjectInfo tmp: allProjectsList) {
-			if(tmp.url.equals(url)) return tmp;
-		}
-		if(Logging.ERROR) Log.e(Logging.TAG, "getProjectInfo: could not find info for: " + url);
-		return null;
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/DeviceStatus.java b/android/BOINC/src/edu/berkeley/boinc/client/DeviceStatus.java
deleted file mode 100644
index 1153f42..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/client/DeviceStatus.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.client;
-
-import edu.berkeley.boinc.rpc.DeviceStatusData;
-import edu.berkeley.boinc.utils.*;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.os.BatteryManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-
-public class DeviceStatus {
-	
-	// variables describing device status in RPC
-	private DeviceStatusData status = new DeviceStatusData();
-	
-	// additional device status
-	private boolean stationaryDeviceMode = false; // true, if operating in stationary device mode
-	private boolean stationaryDeviceSuspected = false; // true, if API returns no battery. offer preference to go into stationary device mode
-	private boolean screenOn = true;
-
-	// android specifics
-	private Context ctx;// context required for reading device status
-	private ConnectivityManager connManager; // connManager contains current wifi status
-	private TelephonyManager telManager; // telManager to retrieve call state
-	private Intent batteryStatus; // sticky intent, extras of Intent contain status, see BatteryManager.
-	private AppPreferences appPrefs; // manager based preferences
-	
-	/**
-	 * Constructor. Needs to be called before calling update.
-	 * @param ctx Application Context
-	 */
-	public DeviceStatus(Context ctx, AppPreferences appPrefs) {
-		this.ctx = ctx;
-		this.connManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
-		this.telManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
-		this.batteryStatus = ctx.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-		this.appPrefs = appPrefs;
-	}
-	
-	/**
-	 * Updates device status and returns the newly received values
-	 * @param screenOn indicator whether device screen is currently on (checked in Monitor)
-	 * @return DeviceStatusData, wrapper for device status
-	 * @throws Exception if error occurs
-	 */
-	public DeviceStatusData update(Boolean screenOn) throws Exception {
-		if(ctx == null) throw new Exception ("DeviceStatus: can not update, Context not set.");
-		this.screenOn = screenOn;
-		
-		Boolean change = determineBatteryStatus();
-		change = change | determineNetworkStatus();
-		change = change | determineUserActive();
-		
-		if(change) if(Logging.DEBUG) Log.i(Logging.TAG, "change: " + change +
-													" - stationary device: " + stationaryDeviceMode + 
-													" ; ac: " + status.on_ac_power + 
-													" ; level: " + status.battery_charge_pct + 
-													" ; temperature: " + status.battery_temperature_celcius + 
-													" ; wifi: " + status.wifi_online + 
-													" ; user active: " + status.user_active);
-		
-		return status;
-	}
-	
-	/**
-	 * Returns latest device status, without updating it.
-	 * If you need a up-to-date status, call udpate() instead.
-	 * @return DeviceStatusData, wrapper for device status, contains data retrieved upon last update. Might be in initial state, if no update has successfully finished.
-	 */
-	public DeviceStatusData getStatus() {
-		return status;
-	}
-	
-	/**
-	 * Returns whether API indicates that device does not have a battery
-	 * Not a reliable indicator, e.g. on Galaxy Nexus.
-	 * Offer stationary device mode preference based on its return value.
-	 * @return true, if Android indicates absence of battery
-	 */
-	public Boolean isStationaryDeviceSuspected() {
-		return stationaryDeviceSuspected;
-	}
-	
-	/**
-	 * Determines whether user is considered active.
-	 * Decision is also based on App preferences. User is considered active, when:
-	 * - telephone is active (call)
-	 * - screen is on AND preference "suspendWhenScreenOn" set AND NOT preference "stationaryDeviceMode" set
-	 * @return true, if change since last run
-	 * @throws Exception if error occurs
-	 */
-	private Boolean determineUserActive() throws Exception {
-		Boolean change = false;
-		Boolean newUserActive = status.user_active;
-		int telStatus = telManager.getCallState();
-		
-		if(telStatus != TelephonyManager.CALL_STATE_IDLE) {
-			newUserActive = true;
-		} else if(screenOn && appPrefs.getSuspendWhenScreenOn() && !appPrefs.getStationaryDeviceMode()) {
-			newUserActive = true;
-		} else {
-			newUserActive = false;
-		}
-		
-		if(status.user_active != newUserActive) {
-			change = true;
-			status.user_active = newUserActive;
-		}
-		
-		return change;
-	}
-	
-	/**
-	 * Determines type of currently active network. Treats Ethernet as Wifi.
-	 * @return true, if change since last run
-	 * @throws Exception if error occurs
-	 */
-	private Boolean determineNetworkStatus() throws Exception {
-		Boolean change = false;
-		NetworkInfo activeNetwork = connManager.getActiveNetworkInfo();
-		int networkType = -1;
-		if(activeNetwork != null) networkType = activeNetwork.getType();
-		if(networkType == ConnectivityManager.TYPE_WIFI || networkType == 9) { // 9 = ConnectivityManager.TYPE_ETHERNET
-			//wifi or ethernet is online
-			if(!status.wifi_online) {
-				change = true; // if different from before, set flag
-				if(Logging.ERROR) Log.d(Logging.TAG, "Unlmited internet connection - wifi or ethernet - found. type: " + networkType); 
-			}
-			status.wifi_online = true;
-		} else {
-			//wifi and ethernet are offline
-			if(status.wifi_online) change = true; // if different from before, set flag
-			status.wifi_online = false;
-		}
-		return change;
-	}
-	
-	/**
-	 * Determines battery status of device
-	 * @return true, if change since last run
-	 * @throws Exception if error occurs
-	 */
-	private Boolean determineBatteryStatus() throws Exception{
-		// check battery
-		Boolean change = false;
-		batteryStatus = ctx.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-		if(batteryStatus != null){
-			stationaryDeviceSuspected = !batteryStatus.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true); // if no battery present, suspect stationary device
-			if(appPrefs.getStationaryDeviceMode() && stationaryDeviceSuspected) {
-				// API says no battery present (not reliable, e.g. Galaxy Nexus)
-				// AND stationary device mode is enabled in preferences
-				
-				if(!stationaryDeviceMode) { // should not change during run-time. just triggered on initial read
-					change = true;
-					if(Logging.ERROR) Log.d(Logging.TAG, "No battery found and stationary device mode enabled in preferences -> skip battery status parsing"); 
-				}
-				stationaryDeviceMode = true;
-				setAttributesForStationaryDevice();
-			} else {
-				// battery present OR stationary device mode not enabled
-				// parse and report actual values to client
-				
-				if(stationaryDeviceMode) change = true;
-				stationaryDeviceMode = false;
-			
-				// calculate charging level
-				int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
-				int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
-				if(level == -1 || scale == -1) throw new Exception("battery level parsing error");
-				int batteryPct = (int) ((level / (float) scale) * 100); // always rounds down
-				if(batteryPct < 0 || batteryPct > 100) throw new Exception("battery level parsing error");
-				if(batteryPct != status.battery_charge_pct) {
-					status.battery_charge_pct = batteryPct;
-					change = true;
-				}
-				
-				// temperature
-				int temperature = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1) / 10; // always rounds down
-				if(temperature < 0) throw new Exception("temperature parsing error");
-				if(temperature != status.battery_temperature_celcius) {
-					status.battery_temperature_celcius = temperature;
-					change = true;
-				}
-				
-				// plugged in
-				// treat all charging modes uniformly on client side,
-				// adapt on_ac_power according to power source preferences defined in manager
-				int plugged = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
-				change = change | setAttributesForChargerType(plugged);
-			}
-		} else throw new Exception ("battery intent null");
-		return change;
-	}
-	
-	/**
-	 * Sets attributes of DeviceStatusData according to stationary device.
-	 * If stationary device, allow computation independently of battery status,
-	 * is not handled in the client, but positive values are simulated here.
-	 * The policy might be subject to change.
-	 */
-	private void setAttributesForStationaryDevice() {
-		status.on_ac_power = true;
-		status.battery_temperature_celcius = 0;
-		status.battery_charge_pct = 100;
-	}
-	
-	/**
-	 * Sets attributes of DeviceStatusData according to manager based power source preference.
-	 * Client is not aware of power source preference, adapt value of on_ac_power, according
-	 * to the conformance of the actual charger type with the manager based preference.
-	 * This policy might be subject to change.
-	 * @param chargerType
-	 * @return true, if change since last run
-	 */
-	private Boolean setAttributesForChargerType(int chargerType) {
-		Boolean change = false;
-		Boolean enabled = false;
-
-		switch (chargerType) {
-		case BatteryManager.BATTERY_PLUGGED_AC:
-			enabled = appPrefs.getPowerSourceAc();
-			break;
-		case 4: // constant BATTERY_PLUGGED_WIRELESS, only defined in API Level 17
-			enabled = appPrefs.getPowerSourceWireless();
-			break;
-		case BatteryManager.BATTERY_PLUGGED_USB:
-			enabled = appPrefs.getPowerSourceUsb();
-			break;
-		}
-		
-		if(enabled) {
-			if(!status.on_ac_power) change = true; // if different from before, set flag
-			status.on_ac_power = true;
-		} else {
-			if(status.on_ac_power) change = true;
-			status.on_ac_power = false;
-		}
-		
-		return change;
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java b/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java
deleted file mode 100644
index 5330b8c..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java
+++ /dev/null
@@ -1,1260 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.client;
-
-import edu.berkeley.boinc.utils.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Timer;
-import java.util.TimerTask;
-import android.app.Service;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.graphics.Bitmap;
-import android.os.AsyncTask;
-import android.os.Build;
-import android.os.IBinder;
-import android.os.PowerManager;
-import android.os.RemoteException;
-import android.util.Log;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.mutex.BoincMutex;
-import edu.berkeley.boinc.rpc.AccountIn;
-import edu.berkeley.boinc.rpc.AccountOut;
-import edu.berkeley.boinc.rpc.AcctMgrRPCReply;
-import edu.berkeley.boinc.rpc.CcState;
-import edu.berkeley.boinc.rpc.CcStatus;
-import edu.berkeley.boinc.rpc.GlobalPreferences;
-import edu.berkeley.boinc.rpc.HostInfo;
-import edu.berkeley.boinc.rpc.ImageWrapper;
-import edu.berkeley.boinc.rpc.Message;
-import edu.berkeley.boinc.rpc.Notice;
-import edu.berkeley.boinc.rpc.Project;
-import edu.berkeley.boinc.rpc.ProjectConfig;
-import edu.berkeley.boinc.rpc.ProjectInfo;
-import edu.berkeley.boinc.rpc.Result;
-import edu.berkeley.boinc.rpc.Transfer;
-import edu.berkeley.boinc.rpc.AcctMgrInfo;
-
-/**
- * Main Service of BOINC on Android
- * - manages life-cycle of the BOINC Client.
- * - frequently polls the latest status of the client (e.g. running tasks, attached projects etc)
- * - reports device status (e.g. battery level, connected to charger etc) to the client
- * - holds singleton of client status data model and applications persistent preferences
- */
-public class Monitor extends Service {
-	
-	private static BoincMutex mutex = new BoincMutex(); // holds the BOINC mutex, only compute if acquired
-	private static ClientStatus clientStatus; //holds the status of the client as determined by the Monitor
-	private static AppPreferences appPrefs; //hold the status of the app, controlled by AppPreferences
-	private static DeviceStatus deviceStatus; // holds the status of the device, i.e. status information that can only be obtained trough Java APIs
-	
-	public ClientInterfaceImplementation clientInterface = new ClientInterfaceImplementation(); //provides functions for interaction with client via rpc
-	
-	// XML defined variables, populated in onCreate
-	private String fileNameClient; 
-	private String fileNameCLI; 
-	private String fileNameCABundle; 
-	private String fileNameClientConfig; 
-	private String fileNameGuiAuthentication; 
-	private String fileNameAllProjectsList; 
-	private String boincWorkingDir; 
-	private Integer clientStatusInterval;
-	private Integer deviceStatusIntervalScreenOff;
-	private String clientSocketAddress;
-	
-	private Timer updateTimer = new Timer(true); // schedules frequent client status update
-	private TimerTask statusUpdateTask = new StatusUpdateTimerTask();
-	private boolean updateBroadcastEnabled = false;
-	private Integer screenOffStatusOmitCounter = 0;
-	
-	// screen on/off updated by screenOnOffBroadcastReceiver
-	private boolean screenOn = false;
-	
-	private boolean forceReinstall = false; // for debugging purposes //TODO
-
-    @Override
-    public IBinder onBind(Intent intent) {
-    	if(Logging.DEBUG) Log.d(Logging.TAG,"Monitor onBind");
-        return mBinder;
-    }
-	
-	@Override
-    public void onCreate() {
-		
-		Log.d(Logging.TAG,"Monitor onCreate()");
-		
-		// populate attributes with XML resource values
-		boincWorkingDir = getString(R.string.client_path); 
-		fileNameClient = getString(R.string.client_name); 
-		fileNameCLI = getString(R.string.client_cli); 
-		fileNameCABundle = getString(R.string.client_cabundle); 
-		fileNameClientConfig = getString(R.string.client_config); 
-		fileNameGuiAuthentication = getString(R.string.auth_file_name); 
-		fileNameAllProjectsList = getString(R.string.all_projects_list); 
-		clientStatusInterval = getResources().getInteger(R.integer.status_update_interval_ms);
-		deviceStatusIntervalScreenOff = getResources().getInteger(R.integer.device_status_update_screen_off_every_X_loop);
-		clientSocketAddress = getString(R.string.client_socket_address); 
-		
-		// initialize singleton helper classes and provide application context
-		clientStatus = new ClientStatus(this);
-		getAppPrefs().readPrefs(this);
-		deviceStatus = new DeviceStatus(this, getAppPrefs());
-		if(Logging.ERROR) Log.d(Logging.TAG,"Monitor onCreate(): singletons initialized");
-		
-		// set current screen on/off status
-		PowerManager pm = (PowerManager)
-		getSystemService(Context.POWER_SERVICE);
-		screenOn = pm.isScreenOn();
-		
-		// initialize DeviceStatus wrapper
-		deviceStatus = new DeviceStatus(getApplicationContext(), getAppPrefs());
-		
-		// register screen on/off receiver
-        IntentFilter onFilter = new IntentFilter (Intent.ACTION_SCREEN_ON); 
-        IntentFilter offFilter = new IntentFilter (Intent.ACTION_SCREEN_OFF); 
-        registerReceiver(screenOnOffReceiver, onFilter);
-        registerReceiver(screenOnOffReceiver, offFilter);
-	}
-	
-    @Override
-    public void onDestroy() {
-    	if(Logging.ERROR) Log.d(Logging.TAG,"Monitor onDestroy()");
-    	
-    	updateBroadcastEnabled = false; // prevent broadcast from currently running update task
-		updateTimer.cancel(); // cancel task
-		
-    	// there might be still other AsyncTasks executing RPCs
-    	// close sockets in a synchronized way
-		clientInterface.close();
-		
-    	try {
-    		// remove screen on/off receiver
-    		unregisterReceiver(screenOnOffReceiver);
-    	} catch (Exception ex) {}
-        
-    	updateBroadcastEnabled = false; // prevent broadcast from currently running update task
-		updateTimer.cancel(); // cancel task
-		
-		mutex.release(); // release BOINC mutex
-		
-		 // release locks, if held.
-		try {
-			clientStatus.setWakeLock(false);
-			clientStatus.setWifiLock(false);
-		} catch (Exception ex) {}
-    }
-
-    @Override
-    public int onStartCommand(Intent intent, int flags, int startId) {	
-    	//this gets called after startService(intent) (either by BootReceiver or SplashActivity, depending on the user's autostart configuration)
-    	if(Logging.ERROR) Log.d(Logging.TAG, "Monitor onStartCommand()");
-		
-		// try to acquire BOINC mutex
-    	// run here in order to recover, if mutex holding app gets closed.
-		if(!updateBroadcastEnabled && mutex.acquire()) {
-			updateBroadcastEnabled = true;
-	        // register and start update task
-	        // using .scheduleAtFixedRate() can cause a series of bunched-up runs
-	        // when previous executions are delayed (e.g. during clientSetup() )
-	        updateTimer.schedule(statusUpdateTask, 0, clientStatusInterval);
-		}
-		if(!mutex.acquired) if(Logging.ERROR) Log.e(Logging.TAG, "Monitor.onStartCommand: mutex acquisition failed, do not start BOINC.");
-
-		// execute action if one is explicitly requested (e.g. from notification)
-    	if(intent != null) {
-			int actionCode = intent.getIntExtra("action", -1);
-	    	if(Logging.DEBUG) Log.d(Logging.TAG, "Monitor.onStartCommand() with action code: " + actionCode);
-			switch(actionCode) {
-			case 1: // suspend
-				new SetClientRunModeAsync().execute(BOINCDefs.RUN_MODE_NEVER);
-				break;
-			case 2: // resume
-				new SetClientRunModeAsync().execute(BOINCDefs.RUN_MODE_AUTO);
-				break;
-			}
-    	}
-		
-		/*
-		 * START_STICKY causes service to stay in memory until stopSelf() is called, even if all
-		 * Activities get destroyed by the system. Important for GUI keep-alive
-		 * For detailed service documentation see
-		 * http://android-developers.blogspot.com.au/2010/02/service-api-changes-starting-with.html
-		 */
-		return START_STICKY;
-    }
-// --end-- attributes and methods related to Android Service life-cycle
-	
-// singleton getter
-	/**
-	 * Retrieve singleton of ClientStatus.
-	 * @return ClientStatus, represents the data model of the BOINC client's status
-	 * @throws Exception if client status has not been initialized
-	 */
-	public static ClientStatus getClientStatus() throws Exception{ //singleton pattern
-		if (clientStatus == null) {
-			// client status needs application context, but context might not be available
-			// in static code. functions have to deal with Exception!
-			if(Logging.WARNING) Log.w(Logging.TAG,"getClientStatus: clientStatus not yet initialized");
-			throw new Exception("clientStatus not initialized");
-		}
-		return clientStatus;
-	}
-	
-	/**
-	 * Retrieve singleton of AppPreferences.
-	 * @return AppPreferences, interface to Android applications persistent key-value store
-	 */
-	public static AppPreferences getAppPrefs() { //singleton pattern
-		if (appPrefs == null) {
-			appPrefs = new AppPreferences();
-		}
-		return appPrefs;
-	}
-
-	/**
-	 * Retrieve singleton of DeviceStatus.
-	 * @return DeviceStatus, represents data model of device information reported to the client
-	 * @throws Exception if deviceStatus hast not been initialized
-	 */
-	public static DeviceStatus getDeviceStatus() throws Exception {//singleton pattern
-		if (deviceStatus == null) {
-			// device status needs application context, but context might not be available
-			// in static code. functions have to deal with Exception!
-			if(Logging.WARNING) Log.w(Logging.TAG,"getDeviceStatus: deviceStatus not yet initialized");
-			throw new Exception("deviceStatus not initialized");
-		}
-		return deviceStatus;
-	}
-// --end-- singleton getter
-	
-// public methods for Activities
-	/**
-	 * Indicates whether service was able to obtain BOINC mutex.
-	 * If not, BOINC has not started and all other calls will fail.
-	 * @return BOINC mutex acquisition successful
-	 */
-	public boolean boincMutexAcquired() {
-		return mutex.acquired;
-	}
-	
-    /**
-     * Force refresh of client status data model, will fire Broadcast upon success.
-     */
-    public void forceRefresh() {
-    	if(!mutex.acquired) return; // do not try to update if client is not running
-    	if(Logging.DEBUG) Log.d(Logging.TAG,"forceRefresh()");
-    	try{
-    		updateTimer.schedule(new StatusUpdateTimerTask(), 0);
-    	} catch (Exception e){} // throws IllegalStateException if called after timer got cancelled, i.e. after manual shutdown
-    }
-	
-	/**
-	 * Determines BOINC platform name corresponding to device's cpu architecture (ARM, x86 or MIPS).
-	 * Defaults to ARM
-	 * @return ID of BOINC platform name string in resources
-	 */
-	public int getBoincPlatform() {
-		int platformId = 0;
-		String arch = System.getProperty("os.arch");    
-		String normalizedArch = arch.substring(0, 4).toUpperCase(Locale.US);
-		if(normalizedArch.contains("ARM")) platformId = R.string.boinc_platform_name_arm;
-		else if (normalizedArch.contains("MIPS")) platformId = R.string.boinc_platform_name_mips;
-	    else if (normalizedArch.contains("86")) platformId= R.string.boinc_platform_name_x86;
-	    else {
-	    	if(Logging.WARNING) Log.w(Logging.TAG,"could not map os.arch (" + arch + ") to platform, default to arm.");
-	    	platformId = R.string.boinc_platform_name_arm;
-	    }
-	    
-	    if(Logging.DEBUG) Log.d(Logging.TAG,"BOINC platform: " + getString(platformId) + " for os.arch: " + arch);
-		return platformId;
-	}
-	
-	/**
-	 * Returns path to file in BOINC's working directory that contains GUI authentication key
-	 * @return absolute path to file holding GUI authentication key
-	 */
-	public String getAuthFilePath(){
-		return boincWorkingDir + fileNameGuiAuthentication;
-	}
-// --end-- public methods for Activities
-    
-// multi-threaded frequent information polling
-	/**
-	 * Task to frequently and asynchronously poll the client's status. Executed in different thread.
-	 */
-	private final class StatusUpdateTimerTask extends TimerTask {
-		@Override
-		public void run() {
-			updateStatus();
-		}
-	}
-	
-	/**
-	 * Reports current device status to client and reads current client status.
-	 * Updates ClientStatus and fires Broadcast.
-	 * Called frequently to poll current status.
-	 */
-    private void updateStatus(){
-		// check whether RPC client connection is alive
-		if(!clientInterface.connectionAlive()) {
-			if(clientSetup()) { // start setup routine
-				// interact with client only if connection established successfully
-				reportDeviceStatus();
-				readClientStatus(true); // read initial data
-			}
-		}
-		
-    	if(!screenOn && screenOffStatusOmitCounter < deviceStatusIntervalScreenOff) screenOffStatusOmitCounter++; // omit status reporting according to configuration
-    	else {
-    		// screen is on, or omit counter reached limit
-    		if(clientInterface.connectionAlive()) {
-    			reportDeviceStatus();
-    			readClientStatus(false); // readClientStatus is also required when screen is off, otherwise no wakeLock acquisition.
-    		}
-    	}
-    }
-    
-    /**
-     * Reads client status via RPCs
-     * Optimized to retrieve only subset of information (required to determine wakelock state) if screen is turned off
-     * @param forceCompleteUpdate forces update of entire status information, regardless of screen status
-     */
-    private void readClientStatus(Boolean forceCompleteUpdate) {
-    	try{
-    		CcStatus status; // read independently of screen status
-    		
-			// complete status read, depending on screen status
-    		// screen off: only read computing status to adjust wakelock, do not send broadcast
-    		// screen on: read complete status, set ClientStatus, send broadcast
-			// forceCompleteUpdate: read complete status, independently of screen setting
-	    	if(screenOn || forceCompleteUpdate) {
-	    		// complete status read, with broadcast
-				if(Logging.VERBOSE) Log.d(Logging.TAG, "readClientStatus(): screen on, get complete status");
-	    		status = clientInterface.getCcStatus();
-				CcState state = clientInterface.getState();
-				ArrayList<Transfer>  transfers = clientInterface.getFileTransfers();
-				AcctMgrInfo acctMgrInfo = clientInterface.getAcctMgrInfo();
-				ArrayList<Notice> newNotices = clientInterface.getNotices(Monitor.getClientStatus().getMostRecentNoticeSeqNo());
-				
-				if( (status != null) && (state != null) && (state.results != null) && (state.projects != null) && (transfers != null) && (state.host_info != null) && (acctMgrInfo != null)) {
-					Monitor.getClientStatus().setClientStatus(status, state.results, state.projects, transfers, state.host_info, acctMgrInfo, newNotices);
-				} else {
-					String nullValues = "";
-					try{
-						if(state == null) nullValues += "state,";
-						if(state.results == null) nullValues += "state.results,";
-						if(state.projects == null) nullValues += "state.projects,";
-						if(transfers == null) nullValues += "transfers,";
-						if(state.host_info == null) nullValues += "state.host_info,";
-						if(acctMgrInfo == null) nullValues += "acctMgrInfo,";
-					} catch (NullPointerException e) {};
-					if(Logging.ERROR) Log.e(Logging.TAG, "readClientStatus(): connection problem, null: " + nullValues);
-				}
-				
-				// update notices notification
-				NoticeNotification.getInstance(getApplicationContext()).update(Monitor.getClientStatus().getRssNotices(), Monitor.getAppPrefs().getShowNotificationForNotices());
-				
-				// check whether monitor is still intended to update, if not, skip broadcast and exit...
-				if(updateBroadcastEnabled) {
-			        Intent clientStatus = new Intent();
-			        clientStatus.setAction("edu.berkeley.boinc.clientstatus");
-			        getApplicationContext().sendBroadcast(clientStatus);
-				}
-	    	} else {
-	    		// read only ccStatus to adjust wakelocks and service state independently of screen status
-	    		status = clientInterface.getCcStatus();
-	    	}
-	    	
-	    	// independent of screen on off:
-    		// wake locks and foreground enabled when Client is not suspended, therefore also during
-    		// idle.
-    		// treat cpu throttling as if it was computing.
-    		Boolean computing = (status.task_suspend_reason == BOINCDefs.SUSPEND_NOT_SUSPENDED) || (status.task_suspend_reason == BOINCDefs.SUSPEND_REASON_CPU_THROTTLE);
-    		if(Logging.VERBOSE) Log.d(Logging.TAG,"readClientStatus(): computation enabled: " + computing);
-			Monitor.getClientStatus().setWifiLock(computing);
-			Monitor.getClientStatus().setWakeLock(computing);
-			ClientNotification.getInstance(getApplicationContext()).update(Monitor.getClientStatus(), this, computing);
-			
-		}catch(Exception e) {
-			if(Logging.ERROR) Log.e(Logging.TAG, "Monitor.readClientStatus excpetion: " + e.getMessage(),e);
-		}
-    }
-    
-    // reports current device status to the client via rpc
-    // client uses data to enforce preferences, e.g. suspend on battery
-    /**
-     * Reports current device status to the client via RPC
-     * BOINC client uses this data to enforce preferences, e.g. suspend battery but requires information only/best available through Java API calls.
-     */
-    private void reportDeviceStatus() {
-		if(Logging.VERBOSE) Log.d(Logging.TAG, "reportDeviceStatus()");
-    	try{
-	    	// set devices status
-			if(deviceStatus != null) { // make sure deviceStatus is initialized
-				Boolean reportStatusSuccess = clientInterface.reportDeviceStatus(deviceStatus.update(screenOn)); // transmit device status via rpc
-				if(reportStatusSuccess) screenOffStatusOmitCounter = 0;
-				else if(Logging.DEBUG) Log.d(Logging.TAG,"reporting device status returned false.");
-			} else if(Logging.WARNING) Log.w(Logging.TAG,"reporting device status failed, wrapper not initialized.");
-		}catch(Exception e) {
-			if(Logging.ERROR) Log.e(Logging.TAG, "Monitor.reportDeviceStatus excpetion: " + e.getMessage());
-		}
-    }
-// --end-- multi-threaded frequent information polling
-	
-// BOINC client installation and run-time management
-    /**
-     * installs client binaries(if changed) and other required files
-     * executes client process
-     * triggers initial reads (e.g. preferences, project list etc)
-     * @return Boolean whether connection established successfully
-     */
-	private Boolean clientSetup() {
-		if(Logging.DEBUG) Log.d(Logging.TAG,"Monitor.clientSetup()");
-		
-		// try to get current client status from monitor
-		ClientStatus status;
-		try{
-			status  = Monitor.getClientStatus();
-		} catch (Exception e){
-			if(Logging.WARNING) Log.w(Logging.TAG,"Monitor.clientSetup: Could not load data, clientStatus not initialized.");
-			return false;
-		}
-		
-		status.setSetupStatus(ClientStatus.SETUP_STATUS_LAUNCHING,true);
-		String clientProcessName = boincWorkingDir + fileNameClient;
-
-		String md5AssetClient = computeMd5(fileNameClient, true);
-		//if(Logging.DEBUG) Log.d(Logging.TAG, "Hash of client (Asset): '" + md5AssetClient + "'");
-
-		String md5InstalledClient = computeMd5(clientProcessName, false);
-		//if(Logging.DEBUG) Log.d(Logging.TAG, "Hash of client (File): '" + md5InstalledClient + "'");
-
-		// If client hashes do not match, we need to install the one that is a part
-		// of the package. Shutdown the currently running client if needed.
-		//
-		if (forceReinstall || !md5InstalledClient.equals(md5AssetClient)) {
-			if(Logging.DEBUG) Log.d(Logging.TAG,"Hashes of installed client does not match binary in assets - re-install.");
-			
-			// try graceful shutdown using RPC (faster)
-			if (getPidForProcessName(clientProcessName) != null) {
-				if(connectClient()) {
-					clientInterface.quit();
-		    		Integer attempts = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_rpc_check_attempts);
-		    		Integer sleepPeriod = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_rpc_check_rate_ms);
-		    		for(int x = 0; x < attempts; x++) {
-		    			try {
-		    				Thread.sleep(sleepPeriod);
-		    			} catch (Exception e) {}
-		    			if(getPidForProcessName(clientProcessName) == null) { //client is now closed
-		        			if(Logging.DEBUG) Log.d(Logging.TAG,"quitClient: gracefull RPC shutdown successful after " + x + " seconds");
-		    				x = attempts;
-		    			}
-		    		}
-				}
-			}
-			
-			// quit with OS signals
-			if (getPidForProcessName(clientProcessName) != null) {
-				quitProcessOsLevel(clientProcessName);
-			}
-
-			// at this point client is definitely not running. install new binary...
-			if(!installClient()) {
-	        	if(Logging.WARNING) Log.w(Logging.TAG, "BOINC client installation failed!");
-	        	return false;
-	        }
-		}
-		
-		// Start the BOINC client if we need to.
-		//
-		Integer clientPid = getPidForProcessName(clientProcessName);
-		if(clientPid == null) {
-        	if(Logging.DEBUG) Log.d(Logging.TAG, "Starting the BOINC client");
-			if (!runClient()) {
-	        	if(Logging.DEBUG) Log.d(Logging.TAG, "BOINC client failed to start");
-				return false;
-			}
-		}
-
-		// Try to connect to executed Client in loop
-		//
-		Integer retryRate = getResources().getInteger(R.integer.monitor_setup_connection_retry_rate_ms);
-		Integer retryAttempts = getResources().getInteger(R.integer.monitor_setup_connection_retry_attempts);
-		Boolean connected = false;
-		Integer counter = 0;
-		while(!connected && (counter < retryAttempts)) {
-			if(Logging.DEBUG) Log.d(Logging.TAG, "Attempting BOINC client connection...");
-			connected = connectClient();
-			counter++;
-
-			try {
-				Thread.sleep(retryRate);
-			} catch (Exception e) {}
-		}
-		
-		Boolean init = false;
-		if(connected) { // connection established
-			try {
-				// read preferences for GUI to be able to display data
-				GlobalPreferences clientPrefs = clientInterface.getGlobalPrefsWorkingStruct();
-				if(clientPrefs == null) throw new Exception("client prefs null");
-				status.setPrefs(clientPrefs);
-				
-				// set Android model as hostinfo
-				// should output something like "Samsung Galaxy SII - SDK:15 ABI:armeabi-v7a"
-				String model = Build.MANUFACTURER + " " + Build.MODEL + " - SDK:" + Build.VERSION.SDK_INT + " ABI: " + Build.CPU_ABI;
-				String version = Build.VERSION.RELEASE;
-				if(Logging.DEBUG) Log.d(Logging.TAG,"reporting hostinfo model name: " + model);
-				if(Logging.DEBUG) Log.d(Logging.TAG,"reporting hostinfo os name: Android");
-				if(Logging.DEBUG) Log.d(Logging.TAG,"reporting hostinfo os version: " + version);
-				clientInterface.setHostInfo(model, version);
-				
-				init = true;
-			} catch(Exception e) {if(Logging.ERROR) Log.e(Logging.TAG,"Monitor.clientSetup() init failed: " + e.getMessage());}
-		}
-		
-		if(init) {
-			if(Logging.DEBUG) Log.d(Logging.TAG, "setup completed successfully"); 
-			status.setSetupStatus(ClientStatus.SETUP_STATUS_AVAILABLE,false);
-		} else {
-			if(Logging.ERROR) Log.e(Logging.TAG, "onPostExecute - setup experienced an error"); 
-			status.setSetupStatus(ClientStatus.SETUP_STATUS_ERROR,true);
-		}
-		
-		return connected;
-	}
-	
-	/**
-	 * Executes BOINC client.
-	 * Using Java Runtime exec method
-	 * @return Boolean success
-	 */
-    private Boolean runClient() {
-    	Boolean success = false;
-    	try { 
-    		String[] cmd = new String[3];
-    		
-    		cmd[0] = boincWorkingDir + fileNameClient;
-    		cmd[1] = "--daemon";
-    		cmd[2] = "--gui_rpc_unix_domain";
-    		
-        	Runtime.getRuntime().exec(cmd, null, new File(boincWorkingDir));
-        	success = true;
-    	} catch (IOException e) {
-    		if(Logging.DEBUG) Log.d(Logging.TAG, "Starting BOINC client failed with exception: " + e.getMessage());
-    		if(Logging.ERROR) Log.e(Logging.TAG, "IOException", e);
-    	}
-    	return success;
-    }
-
-    /**
-     * Establishes connection to client and handles initial authentication
-     * @return Boolean success
-     */
-	private Boolean connectClient() {
-		Boolean success = false;
-		
-        success = clientInterface.open(clientSocketAddress);
-        if(!success) {
-        	if(Logging.ERROR) Log.e(Logging.TAG, "connection failed!");
-        	return success;
-        }
-        
-        //authorize
-        success = clientInterface.authorizeGuiFromFile(boincWorkingDir + fileNameGuiAuthentication);
-        if(!success) {
-        	if(Logging.ERROR) Log.e(Logging.TAG, "authorization failed!");
-        }
-        return success;
-	}
-	
-	/**
-	 * Installs required files from APK's asset directory to the applications' internal storage.
-	 * File attributes override and executable are defined here
-	 * @return Boolean success
-	 */
-    private Boolean installClient(){
-
-		installFile(fileNameClient, true, true);
-		installFile(fileNameCLI, true, true);
-		installFile(fileNameCABundle, true, false);
-		installFile(fileNameClientConfig, true, false);
-		installFile(fileNameAllProjectsList, true, false);
-    	
-    	return true; 
-    }
-    
-    /**
-     * Copies given file from APK assets to internal storage.
-     * @param file name of file as it appears in assets directory
-     * @param override define override, if already present in internal storage
-     * @param executable set executable flag of file in internal storage
-     * @return Boolean success
-     */
-	private Boolean installFile(String file, Boolean override, Boolean executable) {
-    	Boolean success = false;
-    	byte[] b = new byte [1024];
-		int count; 
-		
-		// If file is executable, cpu architecture has to be evaluated
-		// and assets directory select accordingly
-		String source = "";
-		if(executable) source = getAssestsDirForCpuArchitecture() + file;
-		else source = file;
-		
-		try {
-			if(Logging.DEBUG) Log.d(Logging.TAG, "installing: " + source);
-			
-    		File target = new File(boincWorkingDir + file);
-    		
-    		// Check path and create it
-    		File installDir = new File(boincWorkingDir);
-    		if(!installDir.exists()) {
-    			installDir.mkdir();
-    			installDir.setWritable(true); 
-    		}
-    		
-    		if(target.exists()) {
-    			if(override) target.delete();
-    			else {
-    				if(Logging.DEBUG) Log.d(Logging.TAG,"skipped file, exists and ovverride is false");
-    				return true;
-    			}
-    		}
-    		
-    		// Copy file from the asset manager to clientPath
-    		InputStream asset = getApplicationContext().getAssets().open(source); 
-    		OutputStream targetData = new FileOutputStream(target); 
-    		while((count = asset.read(b)) != -1){ 
-    			targetData.write(b, 0, count);
-    		}
-    		asset.close(); 
-    		targetData.flush(); 
-    		targetData.close();
-
-    		success = true; //copy succeeded without exception
-    		
-    		// Set executable, if requested
-    		Boolean isExecutable = false;
-    		if(executable) {
-    			target.setExecutable(executable);
-    			isExecutable = target.canExecute();
-    			success = isExecutable; // return false, if not executable
-    		}
-
-    		if(Logging.DEBUG) Log.d(Logging.TAG, "install of " + source + " successfull. executable: " + executable + "/" + isExecutable);
-    		
-    	} catch (IOException e) {  
-    		if(Logging.ERROR) Log.e(Logging.TAG, "IOException: " + e.getMessage());
-    		if(Logging.DEBUG) Log.d(Logging.TAG, "install of " + source + " failed.");
-    	}
-		
-		return success;
-	}
-	
-	/**
-	 * Determines assets directory (contains BOINC client binaries) corresponding to device's cpu architecture (ARM, x86 or MIPS)
-	 * @return name of assets directory for given platform, not an absolute path.
-	 */
-	private String getAssestsDirForCpuArchitecture() {
-		String archAssetsDirectory="";
-		switch(getBoincPlatform()) {
-		case R.string.boinc_platform_name_arm:
-			archAssetsDirectory = getString(R.string.assets_dir_arm);
-			break;
-		case R.string.boinc_platform_name_x86:
-			archAssetsDirectory = getString(R.string.assets_dir_x86);
-			break;
-		case R.string.boinc_platform_name_mips:
-			archAssetsDirectory = getString(R.string.assets_dir_mips);
-			break;
-		}
-	    return archAssetsDirectory;
-	}
-
-    /**
-     * Computes MD5 hash of requested file
-     * @param fileName absolute path or name of file in assets directory, see inAssets parameter
-     * @param inAssets if true, fileName is file name in assets directory, if not, absolute path
-     * @return md5 hash of file
-     */
-    private String computeMd5(String fileName, Boolean inAssets) {
-    	byte[] b = new byte [1024];
-		int count; 
-		
-		try {
-			MessageDigest md5 = MessageDigest.getInstance("MD5");
-
-			InputStream fs = null;
-			if(inAssets) fs = getApplicationContext().getAssets().open(getAssestsDirForCpuArchitecture() + fileName); 
-			else fs = new FileInputStream(new File(fileName)); 
-			
-    		while((count = fs.read(b)) != -1){ 
-    			md5.update(b, 0, count);
-    		}
-    		fs.close();
-
-			byte[] md5hash = md5.digest();
-			StringBuilder sb = new StringBuilder();
-			for (int i = 0; i < md5hash.length; ++i) {
-				sb.append(String.format("%02x", md5hash[i]));
-			}
-    		
-    		return sb.toString();
-    	} catch (IOException e) {  
-    		if(Logging.ERROR) Log.e(Logging.TAG, "IOException: " + e.getMessage());
-    	} catch (NoSuchAlgorithmException e) {
-    		if(Logging.ERROR) Log.e(Logging.TAG, "NoSuchAlgorithmException: " + e.getMessage());
-		}
-		
-		return "";
-    }
-    
-	/**
-	 * Determines ProcessID corresponding to given process name
-	 * @param processName name of process, according to output of "ps"
-	 * @return process id, according to output of "ps"
-	 */
-    private Integer getPidForProcessName(String processName) {
-    	int count;
-    	char[] buf = new char[1024];
-    	StringBuffer sb = new StringBuffer();
-    	
-    	//run ps and read output
-    	try {
-	    	Process p = Runtime.getRuntime().exec("ps");
-	    	p.waitFor();
-	    	InputStreamReader isr = new InputStreamReader(p.getInputStream());
-	    	while((count = isr.read(buf)) != -1)
-	    	{
-	    	    sb.append(buf, 0, count);
-	    	}
-    	} catch (Exception e) {
-    		if(Logging.ERROR) Log.e(Logging.TAG, "Exception: " + e.getMessage());
-    		return null;
-    	}
-
-    	String [] processLinesAr = sb.toString().split("\n");
-    	if (processLinesAr.length < 2) {
-    		if(Logging.ERROR) Log.e(Logging.TAG,"getPidForProcessName(): ps output has less than 2 lines, failure!");
-    		return null;
-    	}
-    	
-    	// figure out what index PID has
-    	String [] headers = processLinesAr[0].split("[\\s]+");
-    	Integer PidIndex = 1;
-    	for (int x = 0; x < headers.length; x++) {
-    		if(headers[x].equals("PID")) {
-    			PidIndex = x;
-    			continue;
-    		}
-    	}
-		if(Logging.DEBUG) Log.d(Logging.TAG,"getPidForProcessName(): PID at index: " + PidIndex + " for output: " + processLinesAr[0]);
-    	
-		Integer pid = null;
-    	for(int y = 1; y < processLinesAr.length; y++) {
-    		Boolean found = false;
-    	    String [] comps = processLinesAr[y].split("[\\s]+");
-    	    for(String arg: comps) {
-    	    	if(arg.equals(processName)) {
-    	    		if(Logging.DEBUG) Log.d(Logging.TAG,"getPidForProcessName(): " + processName + " found in line: " + y);
-    	    		found = true;
-    	    	}
-    	    }
-    	    if(found) {
-	    	    try{
-	    	    	pid = Integer.parseInt(comps[PidIndex]);
-	        	    if(Logging.DEBUG) Log.d(Logging.TAG,"getPidForProcessName(): pid: " + pid); 
-	    	    }catch (NumberFormatException e) {if(Logging.ERROR) Log.e(Logging.TAG,"getPidForProcessName(): NumberFormatException for " + comps[PidIndex] + " at index: " + PidIndex);}
-	    	    continue;
-    	    }
-    	}
-    	// if not happen in ps output, not running?!
-		if(pid == null) if(Logging.DEBUG) Log.d(Logging.TAG,"getPidForProcessName(): " + processName + " not found in ps output!");
-    	
-    	// Find required pid
-    	return pid;
-    }
-    
-    /**
-     * Exits a process by sending it Linux SIGQUIT and SIGKILL signals
-     * @param processName name of process to be killed, according to output of "ps"
-     */
-    private void quitProcessOsLevel(String processName) {
-    	Integer clientPid = getPidForProcessName(processName);
-    	
-    	// client PID could not be read, client already ended / not yet started?
-    	if (clientPid == null) {
-    		if(Logging.DEBUG) Log.d(Logging.TAG, "quitProcessOsLevel could not find PID, already ended or not yet started?");
-    		return;
-    	}
-    	
-    	if(Logging.DEBUG) Log.d(Logging.TAG, "quitProcessOsLevel for " + processName + ", pid: " + clientPid);
-    	
-    	// Do not just kill the client on the first attempt.  That leaves dangling 
-		// science applications running which causes repeated spawning of applications.
-		// Neither the UI or client are happy and each are trying to recover from the
-		// situation.  Instead send SIGQUIT and give the client time to clean up.
-		//
-    	android.os.Process.sendSignal(clientPid, android.os.Process.SIGNAL_QUIT);
-    	
-    	// Wait for the client to shutdown gracefully
-    	Integer attempts = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_os_check_attempts);
-    	Integer sleepPeriod = getApplicationContext().getResources().getInteger(R.integer.shutdown_graceful_os_check_rate_ms);
-    	for(int x = 0; x < attempts; x++) {
-			try {
-				Thread.sleep(sleepPeriod);
-			} catch (Exception e) {}
-    		if(getPidForProcessName(processName) == null) { //client is now closed
-        		if(Logging.DEBUG) Log.d(Logging.TAG,"quitClient: gracefull SIGQUIT shutdown successful after " + x + " seconds");
-    			x = attempts;
-    		}
-    	}
-    	
-    	clientPid = getPidForProcessName(processName);
-    	if(clientPid != null) {
-    		// Process is still alive, send SIGKILL
-    		if(Logging.WARNING) Log.w(Logging.TAG, "SIGQUIT failed. SIGKILL pid: " + clientPid);
-    		android.os.Process.killProcess(clientPid);
-    	}
-    	
-    	clientPid = getPidForProcessName(processName);
-    	if(clientPid != null) {
-    		if(Logging.WARNING) Log.w(Logging.TAG, "SIGKILL failed. still living pid: " + clientPid);
-    	}
-    }
-// --end-- BOINC client installation and run-time management
-	
-// broadcast receiver
-	/**
-	 * broadcast receiver to detect changes to screen on or off, used to adapt scheduling of StatusUpdateTimerTask
-	 * e.g. avoid polling GUI status RPCs while screen is off in order to save battery
-	 */
-	BroadcastReceiver screenOnOffReceiver = new BroadcastReceiver() { 
-		@Override 
-        public void onReceive(Context context, Intent intent) { 
-			String action = intent.getAction();
-			if(action.equals(Intent.ACTION_SCREEN_OFF)) {
-				screenOn = false;
-				// forces report of device status at next scheduled update
-				// allows timely reaction to screen off for resume of computation
-				screenOffStatusOmitCounter = deviceStatusIntervalScreenOff;
-				if(Logging.DEBUG) Log.d(Logging.TAG, "screenOnOffReceiver: screen turned off");
-			}
-			if(action.equals(Intent.ACTION_SCREEN_ON)) {
-				screenOn = true;
-				if(Logging.DEBUG) Log.d(Logging.TAG, "screenOnOffReceiver: screen turned on, force data refresh...");
-				forceRefresh();
-			}
-        } 
-	}; 
-// --end-- broadcast receiver
-	
-// async tasks
-	private final class SetClientRunModeAsync extends AsyncTask<Integer, Void, Void> {
-		@Override
-		protected Void doInBackground(Integer... params) {
-			try {
-				mBinder.setRunMode(params[0]);
-			} catch (RemoteException e) {}
-			return null;
-		}
-	}
-// --end -- async tasks
-	
-// remote service
-	private final IMonitor.Stub mBinder = new IMonitor.Stub() {
-			
-		@Override
-		public boolean transferOperation(List<Transfer> list, int op) throws RemoteException {
-			return clientInterface.transferOperation((ArrayList<Transfer>)list, op);
-		}
-		
-		@Override
-		public boolean synchronizeAcctMgr(String url) throws RemoteException {
-			return clientInterface.synchronizeAcctMgr(url);
-		}
-		
-		@Override
-		public boolean setRunMode(int mode) throws RemoteException {
-			return clientInterface.setRunMode(mode);
-		}
-		
-		@Override
-		public boolean setNetworkMode(int mode) throws RemoteException {
-			return clientInterface.setNetworkMode(mode);
-		}
-		
-		@Override
-		public boolean setGlobalPreferences(GlobalPreferences pref)
-				throws RemoteException {
-			return clientInterface.setGlobalPreferences(pref);
-		}
-		
-		@Override
-		public boolean setCcConfig(String config) throws RemoteException {
-			return clientInterface.setCcConfig(config);
-		}
-		
-		@Override
-		public boolean resultOp(int op, String url, String name)
-				throws RemoteException {
-			return clientInterface.resultOp(op, url, name);
-		}
-		
-		@Override
-		public String readAuthToken(String path) throws RemoteException {
-			return clientInterface.readAuthToken(path);
-		}
-		
-		@Override
-		public boolean projectOp(int status, String url) throws RemoteException {
-			return clientInterface.projectOp(status, url);
-		}
-		
-		@Override
-		public int getBoincPlatform() throws RemoteException {
-			return Monitor.this.getBoincPlatform();
-		}
-		
-		@Override
-		public AccountOut lookupCredentials(AccountIn credentials) throws RemoteException {
-			return clientInterface.lookupCredentials(credentials);
-		}
-		
-		@Override
-		public boolean isStationaryDeviceSuspected() throws RemoteException {
-			try {
-				return Monitor.getDeviceStatus().isStationaryDeviceSuspected();
-			} catch (Exception e) {}
-			return false;
-		}
-		
-		@Override
-		public List<Notice> getServerNotices() throws RemoteException {
-			return clientStatus.getServerNotices();
-		}
-		
-		@Override
-		public ProjectConfig getProjectConfigPolling(String url)
-				throws RemoteException {
-			return clientInterface.getProjectConfigPolling(url);
-		}
-		
-		@Override
-		public List<Notice> getNotices(int seq) throws RemoteException {
-			return clientInterface.getNotices(seq);
-		}
-		
-		@Override
-		public List<edu.berkeley.boinc.rpc.Message> getMessages(int seq) throws RemoteException {
-			return clientInterface.getMessages(seq);
-		}
-		
-		@Override
-		public List<edu.berkeley.boinc.rpc.Message> getEventLogMessages(int seq, int num)
-				throws RemoteException {
-			return clientInterface.getEventLogMessages(seq, num);
-		}
-		
-		@Override
-		public int getBatteryChargeStatus() throws RemoteException{
-			try {
-				return getDeviceStatus().getStatus().battery_charge_pct;
-			} catch (Exception e) {}
-			return 0;
-		}
-		
-		@Override
-		public AcctMgrInfo getAcctMgrInfo() throws RemoteException {
-			return clientInterface.getAcctMgrInfo();
-		}
-		
-		@Override
-		public void forceRefresh() throws RemoteException {
-			Monitor.this.forceRefresh();
-		}
-		
-		@Override
-		public AccountOut createAccountPolling(AccountIn information) throws RemoteException {
-			return clientInterface.createAccountPolling(information);
-		}
-		
-		@Override
-		public boolean checkProjectAttached(String url) throws RemoteException {
-			return clientInterface.checkProjectAttached(url);
-		}
-		
-		@Override
-		public boolean attachProject(String url, String projectName, String authenticator)
-				throws RemoteException {
-			return clientInterface.attachProject(url, projectName, authenticator);
-		}
-		
-		@Override
-		public int addAcctMgrErrorNum(String url, String userName, String pwd)
-				throws RemoteException {
-			AcctMgrRPCReply acctMgr =clientInterface.addAcctMgr(url, userName, pwd);
-			if (acctMgr!=null) {
-				return acctMgr.error_num;
-			}
-			return -1;
-		}
-		
-		@Override
-		public String getAuthFilePath() throws RemoteException {
-			return Monitor.this.getAuthFilePath();
-		}
-		
-		@Override
-		public List<ProjectInfo> getAttachableProjects() throws RemoteException {
-			return clientInterface.getAttachableProjects(getString(getBoincPlatform()));
-		}
-		
-		@Override
-		public boolean getAcctMgrInfoPresent() throws RemoteException {
-			return clientStatus.getAcctMgrInfo().present;
-		}
-		
-		@Override
-		public int getSetupStatus() throws RemoteException {
-			return clientStatus.setupStatus;
-		}
-		
-		@Override
-		public int getComputingStatus() throws RemoteException {
-			return clientStatus.computingStatus;
-		}
-		
-		@Override
-		public int getComputingSuspendReason() throws RemoteException {
-			return clientStatus.computingSuspendReason;
-		}
-		
-		@Override
-		public int getNetworkSuspendReason() throws RemoteException {
-			return clientStatus.networkSuspendReason;
-		}
-		
-		@Override
-		public HostInfo getHostInfo() throws RemoteException {
-			return clientStatus.getHostInfo();
-		}
-		
-		@Override
-		public GlobalPreferences getPrefs() throws RemoteException {
-			return clientStatus.getPrefs();
-		}
-		
-		@Override
-		public List<Project> getProjects() throws RemoteException {
-			return clientStatus.getProjects();
-		}
-		
-		@Override
-		public AcctMgrInfo getClientAcctMgrInfo() throws RemoteException {
-			return clientStatus.getAcctMgrInfo();
-		}
-		
-		@Override
-		public List<Transfer> getTransfers() throws RemoteException {
-			return clientStatus.getTransfers();
-		}
-		
-		@Override
-		public void setAutostart(boolean isAutoStart) throws RemoteException {
-			Monitor.getAppPrefs().setAutostart(isAutoStart);
-		}
-		
-		@Override
-		public void setShowNotificationForNotices(boolean isShow) throws RemoteException {
-			Monitor.getAppPrefs().setShowNotificationForNotices(isShow);
-		}
-		
-		@Override
-		public boolean getShowAdvanced() throws RemoteException {
-			return Monitor.getAppPrefs().getShowAdvanced();
-		}
-		
-		@Override
-		public boolean getAutostart() throws RemoteException {
-			return Monitor.getAppPrefs().getAutostart();
-		}
-		
-		@Override
-		public boolean getShowNotificationForNotices() throws RemoteException {
-			return  Monitor.getAppPrefs().getShowNotificationForNotices();
-		}
-		
-		@Override
-		public int getLogLevel() throws RemoteException {
-			return Monitor.getAppPrefs().getLogLevel();
-		}
-		
-		@Override
-		public void setLogLevel(int level) throws RemoteException {
-			Monitor.getAppPrefs().setLogLevel(level);
-		}
-		
-		@Override
-		public void setPowerSourceAc(boolean src) throws RemoteException {
-			Monitor.getAppPrefs().setPowerSourceAc(src);
-		}
-		
-		@Override
-		public void setPowerSourceUsb(boolean src) throws RemoteException {
-			Monitor.getAppPrefs().setPowerSourceUsb(src);
-		}
-		
-		@Override
-		public void setPowerSourceWireless(boolean src) throws RemoteException {
-			Monitor.getAppPrefs().setPowerSourceWireless(src);
-		}
-		
-		@Override
-		public List<Result> getTasks() throws RemoteException {
-			return clientStatus.getTasks();
-		}
-		
-		@Override
-		public String getProjectStatus(String url) throws RemoteException {
-			return clientStatus.getProjectStatus(url);
-		}
-		
-		@Override
-		public List<Notice> getRssNotices() throws RemoteException {
-			return clientStatus.getRssNotices();
-		}
-		
-		@Override
-		public List<ImageWrapper> getSlideshowForProject(String url)
-				throws RemoteException {
-			return clientStatus.getSlideshowForProject(url);
-		}
-		
-		@Override
-		public boolean getStationaryDeviceMode() throws RemoteException {
-			return Monitor.getAppPrefs().getStationaryDeviceMode();
-		}
-		
-		@Override
-		public boolean getPowerSourceAc() throws RemoteException {
-			return Monitor.getAppPrefs().getPowerSourceAc();
-		}
-		
-		@Override
-		public boolean getPowerSourceUsb() throws RemoteException {
-			return Monitor.getAppPrefs().getPowerSourceUsb();
-		}
-		
-		@Override
-		public boolean getPowerSourceWireless() throws RemoteException {
-			return Monitor.getAppPrefs().getPowerSourceWireless();
-		}
-		
-		@Override
-		public void setShowAdvanced(boolean isShow) throws RemoteException {
-			Monitor.getAppPrefs().setShowAdvanced(isShow);
-		}
-		
-		@Override
-		public void setStationaryDeviceMode(boolean mode)
-				throws RemoteException {
-			Monitor.getAppPrefs().setStationaryDeviceMode(mode);
-			
-		}
-		
-		@Override
-		public Bitmap getProjectIconByName(String name) throws RemoteException {
-			return clientStatus.getProjectIconByName(name);
-		}
-		
-		@Override
-		public Bitmap getProjectIcon(String id) throws RemoteException {
-			return clientStatus.getProjectIcon(id);
-		}
-
-		@Override
-		public boolean getSuspendWhenScreenOn() throws RemoteException {
-			return Monitor.getAppPrefs().getSuspendWhenScreenOn();
-		}
-
-		@Override
-		public void setSuspendWhenScreenOn(boolean swso) throws RemoteException {
-			Monitor.getAppPrefs().setSuspendWhenScreenOn(swso);
-		}
-
-		@Override
-		public String getCurrentStatusTitle() throws RemoteException {
-			return clientStatus.getCurrentStatusTitle();
-		}
-
-		@Override
-		public String getCurrentStatusDescription() throws RemoteException {
-			return clientStatus.getCurrentStatusDescription();
-		}
-
-		@Override
-		public void cancelNoticeNotification() throws RemoteException {
-			NoticeNotification.getInstance(getApplicationContext()).cancelNotification();
-		}
-
-		@Override
-		public void setShowNotificationDuringSuspend(boolean isShow) throws RemoteException {
-			Monitor.getAppPrefs().setShowNotificationDuringSuspend(isShow);
-			
-		}
-
-		@Override
-		public boolean getShowNotificationDuringSuspend() throws RemoteException {
-			return Monitor.getAppPrefs().getShowNotificationDuringSuspend();
-		}
-
-		@Override
-		public boolean runBenchmarks() throws RemoteException {
-			return clientInterface.runBenchmarks();
-		}
-
-		@Override
-		public ProjectInfo getProjectInfo(String url) throws RemoteException {
-			return clientInterface.getProjectInfo(url);
-		}
-
-		@Override
-		public boolean boincMutexAcquired() throws RemoteException {
-			return mutex.acquired;
-		}
-	};
-// --end-- remote service	
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/NoticeNotification.java b/android/BOINC/src/edu/berkeley/boinc/client/NoticeNotification.java
deleted file mode 100644
index eb74f18..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/client/NoticeNotification.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package edu.berkeley.boinc.client;
-
-import java.util.ArrayList;
-import edu.berkeley.boinc.BOINCActivity;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.rpc.Notice;
-import android.annotation.SuppressLint;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.support.v4.app.NotificationCompat;
-
-public class NoticeNotification {
-
-	private static NoticeNotification noticeNotification = null;
-	
-	private Context context;
-	private PersistentStorage store;
-	private NotificationManager nm;
-	private Integer notificationId;
-	private PendingIntent contentIntent;
-	private Notification n;
-	
-	private ArrayList<Notice> currentlyNotifiedNotices = new ArrayList<Notice>();
-	private Boolean isNotificationShown = false;
-
-	//private Boolean debug = true;
-	/**
-	 * Returns a reference to a singleton noticeNotification object.
-	 * Constructs a new instance of the noticeNotification if not already constructed.
-	 * @return noticeNotification static instance
-	 */
-	public static NoticeNotification getInstance(Context ctx) {
-		if (noticeNotification == null) {
-			noticeNotification = new NoticeNotification(ctx);
-		}
-		return noticeNotification;
-	}
-	
-	public NoticeNotification (Context ctx) {
-		this.context = ctx;
-		this.store = new PersistentStorage(ctx);
-		this.nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
-		notificationId = context.getResources().getInteger(R.integer.notice_notification_id);
-		Intent intent = new Intent(context, BOINCActivity.class);
-		intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
-		intent.putExtra("targetFragment", R.string.tab_notices);
-		contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
-	}
-	
-	/**
-	 * cancels currently shown notice and clears data
-	 * called when user clicks notice
-	 */
-	public void cancelNotification() {
-		if(isNotificationShown) {
-			nm.cancel(notificationId);
-			isNotificationShown = false;
-			currentlyNotifiedNotices.clear();
-		}
-	}
-
-	/**
-	 * Updates notification with current notices
-	 */
-	public void update(ArrayList<Notice> notices, Boolean isPreferenceEnabled) {
-		
-		if(!isPreferenceEnabled) {
-			if(isNotificationShown) {
-				nm.cancel(notificationId);
-				isNotificationShown = false;
-			}
-			return;
-		}
-		
-		// filter new notices
-		Boolean newNotice = false;
-		double mostRecentSeenArrivalTime = 0;
-		double lastNotifiedArrivalTime = store.getLastNotifiedNoticeArrivalTime();
-		/*
-		if(debug) {
-			lastNotifiedArrivalTime = 0;
-			debug = false;
-		}*/
-		for(Notice tmp : notices) {
-			if(tmp.arrival_time > lastNotifiedArrivalTime) {
-				// multiple new notices might have same arrival time -> write back after adding all
-				currentlyNotifiedNotices.add(tmp);
-				newNotice = true;
-				if(tmp.arrival_time > mostRecentSeenArrivalTime) mostRecentSeenArrivalTime = tmp.arrival_time;
-			}
-		}
-		
-		if(newNotice) {
-			// new notices came in
-			store.setLastNotifiedNoticeArrivalTime(mostRecentSeenArrivalTime);
-			nm.notify(notificationId, buildNotification());
-			isNotificationShown = true;
-		}
-	}
-
-	@SuppressLint("InlinedApi")
-	private Notification buildNotification() {
-		// build new notification from scratch every time a notice arrives
-		NotificationCompat.Builder nb = new NotificationCompat.Builder(context);
-		
-		if(currentlyNotifiedNotices.size() == 1) {
-			// single notice view
-			nb.setContentTitle(context.getString(R.string.notice_notification_single_header) + " " + currentlyNotifiedNotices.get(0).project_name)
-				.setContentText(currentlyNotifiedNotices.get(0).title)
-	        	.setSmallIcon(R.drawable.mailw)
-	        	.setContentIntent(contentIntent);
-			
-			// scale project image
-			try {
-				Bitmap unscaled = Monitor.getClientStatus().getProjectIconByName(currentlyNotifiedNotices.get(0).project_name);
-				if(unscaled != null) {
-					Bitmap scaled = Bitmap.createScaledBitmap(unscaled, unscaled.getWidth() * 2, unscaled.getHeight() * 2, false);
-					nb.setLargeIcon(scaled);
-				} else {
-					nb.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_stat_notify_boinc_normal));
-				}
-			} catch (Exception e) {}
-		} else {
-			// multi notice view
-			nb.setContentTitle(currentlyNotifiedNotices.size() + " " + context.getString(R.string.notice_notification_multiple_header))
-				.setNumber(currentlyNotifiedNotices.size())
-				.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_stat_notify_boinc_normal))
-				.setSmallIcon(R.drawable.mailw)
-				.setContentIntent(contentIntent)
-				.setSubText(context.getString(R.string.app_name));
-			
-			// append notice titles to list
-			NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
-			for(Notice tmp: currentlyNotifiedNotices) {
-				inboxStyle.addLine(tmp.project_name + ": " + tmp.title);
-			}
-			nb.setStyle(inboxStyle);
-		}
-		
-		n = nb.build();
-		
-		return n;
-	}
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/DeviceStatusData.java b/android/BOINC/src/edu/berkeley/boinc/rpc/DeviceStatusData.java
deleted file mode 100644
index d3133c4..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/rpc/DeviceStatusData.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-package edu.berkeley.boinc.rpc;
-
-public class DeviceStatusData {
-	public boolean on_ac_power = false;
-	public boolean on_usb_power = false; // not used
-	public int battery_charge_pct = 0;
-	public int battery_state = -1; //not used
-	public int battery_temperature_celcius = -1;
-	public boolean wifi_online = false;
-	public boolean user_active = true;
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/RpcClient.java b/android/BOINC/src/edu/berkeley/boinc/rpc/RpcClient.java
deleted file mode 100644
index 662ba53..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/rpc/RpcClient.java
+++ /dev/null
@@ -1,1421 +0,0 @@
-/*******************************************************************************
- * This file is part of BOINC.
- * http://boinc.berkeley.edu
- * Copyright (C) 2012 University of California
- * 
- * BOINC is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- * 
- * BOINC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
-
-package edu.berkeley.boinc.rpc;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Locale;
-
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import android.net.LocalSocket;
-import android.net.LocalSocketAddress;
-import android.util.Log;
-import android.util.Xml;
-import edu.berkeley.boinc.utils.BOINCDefs;
-import edu.berkeley.boinc.utils.BOINCUtils;
-import edu.berkeley.boinc.utils.Logging;
-
-
-/**
- * GUI RPC - the way how GUI can manage BOINC core client and retrieve the information
- * from the client.
- * This tries to be the same as original BOINC C++ GUI, but the names are rewritten
- * for the sake of naming convention. Therefore original RPC_CLIENT becomes RpcClient,
- * get_cc_status() becomes getCcStatus() etc.
- */
-public class RpcClient {
-	private static final int READ_TIMEOUT = 15000;         // 15s
-	private static final int READ_BUF_SIZE = 2048;
-	private static final int RESULT_BUILDER_INIT_SIZE = 131072; // Yes, 128K
-	private static final int REQUEST_BUILDER_INIT_SIZE = 80;
-	
-	public static final int SUCCESS = 0;
-	public static final int ERR_RETRY = -199;
-	public static final int ERR_IN_PROGRESS = -204;
-	
-	public static final int PROJECT_UPDATE  = 1;
-	public static final int PROJECT_SUSPEND = 2;
-	public static final int PROJECT_RESUME  = 3;
-	public static final int PROJECT_NNW     = 4;
-	public static final int PROJECT_ANW     = 5;
-	public static final int PROJECT_DETACH	= 6;
-	public static final int PROJECT_RESET	= 7;
-
-	public static final int RESULT_SUSPEND  = 10;
-	public static final int RESULT_RESUME   = 11;
-	public static final int RESULT_ABORT    = 12;
-
-	public static final int TRANSFER_RETRY  = 20;
-	public static final int TRANSFER_ABORT  = 21;
-	
-	public static final int MGR_DETACH = 30;
-	public static final int MGR_SYNC = 31;
-	
-	private LocalSocket mSocket;
-	private OutputStreamWriter mOutput;
-	private InputStream mInput;
-	private byte[] mReadBuffer = new byte[READ_BUF_SIZE];
-	protected StringBuilder mResult = new StringBuilder(RESULT_BUILDER_INIT_SIZE);
-	protected StringBuilder mRequest = new StringBuilder(REQUEST_BUILDER_INIT_SIZE);
-
-	protected String mLastErrorMessage = null;
-	
-	public RpcClient() {}
-
-
-	/*
-	 * Private classes - Helpers
-	 */
-
-	private class Auth1Parser extends DefaultHandler {
-		private StringBuilder mResult = null;
-		private String mCurrentElement = null;
-		private boolean mNonceParsed = false;
-
-		public Auth1Parser(StringBuilder result) {
-			mResult = result;
-		}
-
-		@Override
-		public void characters(char[] ch, int start, int length) throws SAXException {
-			super.characters(ch, start, length);
-			// put it into StringBuilder
-	        mCurrentElement = new String(ch, start, length);
-		}
-
-		@Override
-		public void endElement(String uri, String localName, String qName) throws SAXException {
-			super.endElement(uri, localName, qName);
-			if (localName.equalsIgnoreCase("nonce") && !mNonceParsed) {
-				mResult.append(mCurrentElement);
-				mNonceParsed = true;
-			}
-			mCurrentElement = null;
-		}
-	}
-
-	private class Auth2Parser extends DefaultHandler {
-		private StringBuilder mResult = null;
-		private boolean mParsed = false;
-
-		public Auth2Parser(StringBuilder result) {
-			mResult = result;
-		}
-
-		@Override
-		public void endElement(String uri, String localName, String qName) throws SAXException {
-			super.endElement(uri, localName, qName);
-			if (localName.equalsIgnoreCase("authorized") && !mParsed) {
-				mResult.append("authorized");
-				mParsed = true;
-			}
-			else if (localName.equalsIgnoreCase("unauthorized") && !mParsed) {
-				mResult.append("unauthorized");
-				mParsed = true;
-			}
-		}
-	}
-
-	/*
-	 * Helper methods
-	 */
-
-	private static final String modeName(int mode) {
-		switch (mode) {
-		case BOINCDefs.RUN_MODE_ALWAYS: return "<always/>";
-		case BOINCDefs.RUN_MODE_AUTO: return "<auto/>";
-		case BOINCDefs.RUN_MODE_NEVER: return "<never/>";
-		case BOINCDefs.RUN_MODE_RESTORE: return "<restore/>";
-		default: return "";
-		}
-	}
-
-	/*
-	 * Methods for connection - opening/closing/authorization/status
-	 */
-
-	/**
-	 * Connect to BOINC core client via Unix Domain Socket (abstract, "boinc_socket")
-	 * @return true for success, false for failure
-	 */
-	public boolean open(String socketAddress) {
-		if (isConnected()) {
-			// Already connected
-			if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "Attempt to connect when already connected");
-			// We better close current connection and reconnect (address/port could be different)
-			close();
-		}
-		try {
-			mSocket = new LocalSocket();
-			mSocket.connect(new LocalSocketAddress(socketAddress));
-			mSocket.setSoTimeout(READ_TIMEOUT);
-			mInput = mSocket.getInputStream();
-			mOutput = new OutputStreamWriter(mSocket.getOutputStream(), "ISO8859_1");
-		}
-		catch (IllegalArgumentException e) {
-			if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "connect failure: illegal argument", e);
-			mSocket = null;
-			return false;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "connect failure", e);
-			mSocket = null;
-			return false;
-		}
-		catch (Exception e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "connect failure", e);
-			mSocket = null;
-			return false;
-		}
-		if(Logging.DEBUG) Log.d(Logging.TAG, "Connected successfully");
-		return true;
-	}
-
-	/**
-	 * Closes the currently opened connection to BOINC core client
-	 */
-	public synchronized void close() {
-		if (!isConnected()) {
-			// Not connected - just return (can be cleanup "for sure")
-			return;
-		}
-		try {
-			mInput.close();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "input close failure", e);
-		}
-		try {
-			mOutput.close();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "output close failure", e);
-		}
-		try {
-			mSocket.close();
-			if(Logging.DEBUG) Log.d(Logging.TAG, "close() - Socket closed");
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "socket close failure", e);
-		}
-		mSocket = null;
-	}
-	
-	public String getLastErrorMessage() {
-		return mLastErrorMessage;
-	}
-
-	/**
-	 * Performs the BOINC authorization towards currently connected client. 
-	 * The authorization uses MD5 hash of client's password and random value. 
-	 * Clear-text password is never sent over network.
-	 * @param password Clear text password used for authorization
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean authorize(String password) {
-		if (!isConnected()) {
-			return false;
-		}
-		if(password.length() == 0) return false;
-		try {
-			// Phase 1: get nonce
-			sendRequest("<auth1/>\n");
-			String auth1Rsp = receiveReply();
-			mRequest.setLength(0);
-			Xml.parse(auth1Rsp, new Auth1Parser(mRequest)); // get nonce value
-			// Operation: combine nonce & password, make MD5 hash
-			mRequest.append(password);
-			String nonceHash = Md5.hash(mRequest.toString());
-			// Phase 2: send hash to client
-			mRequest.setLength(0);
-			mRequest.append("<auth2>\n<nonce_hash>");
-			mRequest.append(nonceHash);
-			mRequest.append("</nonce_hash>\n</auth2>\n");
-			sendRequest(mRequest.toString());
-			String auth2Rsp = receiveReply();
-			mRequest.setLength(0);
-			Xml.parse(auth2Rsp, new Auth2Parser(mRequest));
-			if (!mRequest.toString().equals("authorized")) {
-				if(Logging.DEBUG) Log.d(Logging.TAG, "authorize() - Failure");
-				return false;
-			}
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in authorize()", e);
-			return false;
-		}
-		catch (SAXException e) {
-			Log.i(Logging.TAG, "Malformed XML received in authorize()");
-			return false;
-		}
-		if(Logging.DEBUG) Log.d(Logging.TAG, "authorize() - Successful");
-		return true;
-	}
-
-	/**
-	 * Checks the current state of connection
-	 * @return true if connected to BOINC core client, false if not connected
-	 */
-	public final boolean isConnected() {
-		return (mSocket != null) ? mSocket.isConnected() : false;
-	}
-
-	/**
-	 * Checks whether current connection can be used (data can be sent and received)
-	 * This is achieved by sending the empty BOINC command - so in case there is
-	 * socket still opened, but other side already closed connection, it will be detected.
-	 * @return true if other side responds, false if data cannot be sent or received
-	 */
-	public synchronized boolean connectionAlive() {
-		if (!isConnected()) return false;
-		try {
-			// We just get the status via socket and do not parse reply
-			sendRequest("<get_cc_status/>\n");
-			String result = receiveReply();
-			if (result.length() == 0) {
-				// End of stream reached and no data were received in reply
-				// We assume that socket is closed on the other side,
-				// most probably client shut down
-				return false;
-			}
-			return true;
-		}
-		catch (IOException e) {
-			return false;
-		}
-	}
-
-	/*
-	 * Private methods for send/receive data
-	 */
-
-	/**
-	 * Send RPC request to BOINC core client (XML-formatted)
-	 * @param request The request itself
-	 * @throws IOException if error occurs when sending the request
-	 */
-	protected void sendRequest(String request) throws IOException {
-		if (Logging.RPC_PERFORMANCE) if(Logging.DEBUG) Log.d(Logging.TAG, "mRequest.capacity() = " + mRequest.capacity());
-		if (Logging.RPC_DATA) if(Logging.DEBUG) Log.d(Logging.TAG, "Sending request: \n" + request.toString());
-		if (mOutput == null)
-			return;
-		mOutput.write("<boinc_gui_rpc_request>\n");
-		mOutput.write(request);
-		mOutput.write("</boinc_gui_rpc_request>\n\003");
-		mOutput.flush();
-	}
-
-	/**
-	 * Read the reply from BOINC core client
-	 * @return the data read from socket
-	 * @throws IOException if error occurs when reading from socket
-	 */
-	protected String receiveReply() throws IOException {
-		mResult.setLength(0);
-		if (Logging.RPC_PERFORMANCE) if(Logging.DEBUG) Log.d(Logging.TAG, "mResult.capacity() = " + mResult.capacity());
-
-		long readStart = System.nanoTime();
-
-		// Speed is (with large data): ~ 45 KB/s for buffer size 1024
-		//                             ~ 90 KB/s for buffer size 2048
-		//                             ~ 95 KB/s for buffer size 4096
-		// The chosen buffer size is 2048
-		int bytesRead;
-		if (mInput == null)
-			return mResult.toString();	// empty string
-		do {
-			bytesRead = mInput.read(mReadBuffer);
-			if (bytesRead == -1) break;
-			mResult.append(new String(mReadBuffer, 0, bytesRead));
-			if (mReadBuffer[bytesRead-1] == '\003') {
-				// Last read byte marks the end of transfer
-				mResult.setLength(mResult.length() - 1);
-				break;
-			}
-		} while (true);
-
-		if (Logging.RPC_PERFORMANCE) {
-			float duration = (System.nanoTime() - readStart)/1000000000.0F;
-			long bytesCount = mResult.length();
-			if (duration == 0) duration = 0.001F;
-			if(Logging.DEBUG) Log.d(Logging.TAG, "Reading from socket took " + duration + " seconds, " + bytesCount + " bytes read (" + (bytesCount / duration) + " bytes/second)");
-		}
-
-		if (Logging.RPC_PERFORMANCE) if(Logging.DEBUG) Log.d(Logging.TAG, "mResult.capacity() = " + mResult.capacity());
-
-		if (Logging.RPC_DATA) {
-			BufferedReader dbr = new BufferedReader(new StringReader(mResult.toString()));
-			String dl;
-			int ln = 0;
-			try {
-				while ((dl = BOINCUtils.readLineLimit(dbr, 4096)) != null) {
-					++ln;
-					if(Logging.DEBUG) Log.d(Logging.TAG, String.format("%4d: %s", ln, dl));
-				}
-			}
-			catch (IOException ioe) {
-			}
-		}
-		return mResult.toString();
-	}
-
-	/*
-	 * GUI RPC calls
-	 */
-
-	public synchronized VersionInfo exchangeVersions() {
-		mLastErrorMessage = null;
-		mRequest.setLength(0);
-		mRequest.append("<exchange_versions>\n  <major>");
-		mRequest.append(Boinc.MAJOR_VERSION);
-		mRequest.append("</major>\n  <minor>");
-		mRequest.append(Boinc.MINOR_VERSION);
-		mRequest.append("</minor>\n  <release>");
-		mRequest.append(Boinc.RELEASE);
-		mRequest.append("</release>\n</exchange_versions>\n");
-		try {
-			sendRequest(mRequest.toString());
-			VersionInfo versionInfo = VersionInfoParser.parse(receiveReply());
-			return versionInfo;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in exchangeVersions()", e);
-			return null;
-		}
-	}
-	
-
-	/**
-	 * Performs get_cc_status RPC towards BOINC client
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized CcStatus getCcStatus() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<get_cc_status/>\n");
-			CcStatus ccStatus = CcStatusParser.parse(receiveReply());
-			return ccStatus;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getCcStatus()", e);
-			e.printStackTrace();
-			return null;
-		}
-	}
-
-	/**
-	 * Performs get_file_transfers RPC towards BOINC client
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized ArrayList<Transfer> getFileTransfers() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<get_file_transfers/>\n");
-			ArrayList<Transfer> transfers = TransfersParser.parse(receiveReply());
-			return transfers;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getFileTransfers()", e);
-			return null;
-		}
-	}
-
-	/**
-	 * Performs get_host_info RPC towards BOINC client
-	 * 
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized HostInfo getHostInfo() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<get_host_info/>\n");
-			HostInfo hostInfo = HostInfoParser.parse(receiveReply());
-			return hostInfo;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getHostInfo()", e);
-			return null;
-		}
-	}
-
-	/**
-	 * Performs get_message_count RPC towards BOINC client
-	 * Returns highest seqNo
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized int getMessageCount() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<get_message_count/>\n");
-			int seqNo = MessageCountParser.getSeqno(receiveReply());
-			if(Logging.DEBUG) Log.d(Logging.TAG,"RpcClient.getMessageCount returning: " + seqNo);
-			return seqNo;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getMessageCount()", e);
-			return -1;
-		}
-	}
-
-	/**
-	 * Performs get_messages RPC towards BOINC client
-	 * Returns client messages that are more recent than seqNo param
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized ArrayList<Message> getMessages(int seqNo) {
-		mLastErrorMessage = null;
-		try {
-			String request;
-			if (seqNo == 0) {
-				// get all messages
-				request = "<get_messages/>\n";
-			}
-			else {
-				request =
-					"<get_messages>\n" +
-					" <seqno>" + seqNo + "</seqno>\n" +
-					"</get_messages>\n";
-			}
-			sendRequest(request);
-			ArrayList<Message> messages = MessagesParser.parse(receiveReply());
-			return messages;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getMessages()", e);
-			return null;
-		}
-	}
-	
-	/**
-	 * Performs get_notices PRC towards BOINC client
-	 * Returns client messages that are more recent than seqNo param
-	 * @return List of Notices
-	 */
-	public synchronized ArrayList<Notice> getNotices(int seqNo) {
-		mLastErrorMessage = null;
-		try {
-			String request;
-			if (seqNo == 0) {
-				// get all notices
-				request = "<get_notices/>\n";
-			}
-			else {
-				request =
-					"<get_notices>\n" +
-					" <seqno>" + seqNo + "</seqno>\n" +
-					"</get_notices>\n";
-			}
-			sendRequest(request);
-			ArrayList<Notice> notices = NoticesParser.parse(receiveReply());
-			if(notices == null) notices = new ArrayList<Notice>(); // do not return null
-			return notices;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getMessages()", e);
-			return new ArrayList<Notice>();
-		}
-	}
-
-	/**
-	 * Performs get_project_status RPC towards BOINC client
-	 * 
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized ArrayList<Project> getProjectStatus() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<get_project_status/>\n");
-			ArrayList<Project> projects = ProjectsParser.parse(receiveReply());
-			return projects;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getProjectStatus()", e);
-			return null;
-		}
-	}
-	
-	/**
-	 * Performs get_results RPC towards BOINC client (only active results)
-	 * 
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized ArrayList<Result> getActiveResults() {
-		mLastErrorMessage = null;
-		final String request =
-			"<get_results>\n" +
-			"<active_only>1</active_only>\n" +
-			"</get_results>\n";
-		try {
-			sendRequest(request);
-			ArrayList<Result> results = ResultsParser.parse(receiveReply());
-			return results;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getActiveResults()", e);
-			return null;
-		}
-	}
-
-	/**
-	 * Performs get_results RPC towards BOINC client (all results)
-	 * 
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized ArrayList<Result> getResults() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<get_results/>\n");
-			ArrayList<Result> results = ResultsParser.parse(receiveReply());
-			return results;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getResults()", e);
-			return null;
-		}
-	}
-
-	/**
-	 * Performs get_state RPC towards BOINC client
-	 * 
-	 * @return result of RPC call in case of success, null otherwise
-	 */
-	public synchronized CcState getState() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<get_state/>\n");
-			CcState result = CcStateParser.parse(receiveReply());
-			return result;
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getState()", e);
-			return null;
-		}
-	}
-
-	/**
-	 * Reports the current device state to the BOINC core client,
-	 * if not called frequently, BOINC core client will suspend
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean reportDeviceStatus(DeviceStatusData deviceStatus) {
-		mLastErrorMessage = null;
-		mRequest.setLength(0);
-		mRequest.append("<report_device_status>\n <device_status>\n  <on_ac_power>");
-		mRequest.append(deviceStatus.on_ac_power ? 1 : 0);
-		mRequest.append("</on_ac_power>\n  <on_usb_power>");
-		mRequest.append(deviceStatus.on_usb_power ? 1 : 0);
-		mRequest.append("</on_usb_power>\n  <battery_charge_pct>");
-		mRequest.append(deviceStatus.battery_charge_pct);
-		mRequest.append("</battery_charge_pct>\n  <battery_state>");
-		mRequest.append(deviceStatus.battery_state);
-		mRequest.append("</battery_state>\n  <battery_temperature_celsius>");
-		mRequest.append(deviceStatus.battery_temperature_celcius);
-		mRequest.append("</battery_temperature_celsius>\n  <wifi_online>");
-		mRequest.append(deviceStatus.wifi_online ? 1 : 0);
-		mRequest.append("</wifi_online>\n  <user_active>");
-		mRequest.append(deviceStatus.user_active ? 1 : 0);
-		mRequest.append("</user_active>\n </device_status>\n</report_device_status>\n");
-		try {
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in networkAvailable()", e);
-			return false;
-		}
-	}
-	
-	/**
-	 * Reports the Android model as host info to the client
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean setHostInfo(String hostInfo, String version){
-		mLastErrorMessage = null;
-		mRequest.setLength(0);
-		mRequest.append("<set_host_info>\n");
-		mRequest.append("  <host_info>\n");
-		mRequest.append("    <product_name>");
-		mRequest.append(hostInfo);
-		mRequest.append("    </product_name>\n");
-		mRequest.append("    <os_name>Android</os_name>");
-		mRequest.append("    <os_version>");
-		mRequest.append(version);
-		mRequest.append("    </os_version>\n");
-		mRequest.append("  </host_info>\n");
-		mRequest.append("</set_host_info>\n");
-		try {
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in networkAvailable()", e);
-			return false;
-		}
-	}
-
-	/**
-	 * Tells the BOINC core client that a network connection is available,
-	 * and that it should do as much network activity as it can.
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean networkAvailable() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<network_available/>\n");
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in networkAvailable()", e);
-			return false;
-		}
-	}
-
-	/**
-	 * Triggers change of state of project in BOINC core client
-	 * @param operation operation to be triggered
-	 * @param projectUrl master URL of project
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean projectOp(int operation, String projectUrl) {
-		try {
-			String opTag;
-			switch (operation) {
-			case PROJECT_UPDATE:
-				opTag = "project_update";
-				break;
-			case PROJECT_SUSPEND:
-				opTag = "project_suspend";
-				break;
-			case PROJECT_RESUME:
-				opTag = "project_resume";
-				break;
-			case PROJECT_NNW:
-				opTag = "project_nomorework";
-				break;
-			case PROJECT_ANW:
-				opTag = "project_allowmorework";
-				break;
-			case PROJECT_DETACH:
-				opTag = "project_detach";
-				break;
-			case PROJECT_RESET:
-				opTag = "project_reset";
-				break;
-			default:
-				if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "projectOp() - unsupported operation: " + operation);
-				return false;
-			}
-			String request =
-				"<" + opTag + ">\n" +
-				"<project_url>" + projectUrl + "</project_url>\n" +
-				"</" + opTag + ">\n";
-
-			sendRequest(request);
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in projectOp()", e);
-			return false;
-		}
-	}
-	
-	private String getPasswdHash(String passwd, String email_addr) {
-		return Md5.hash(passwd+email_addr);
-	}
-	
-	/**
-	 * Creates account
-	 * @param accountIn - account info
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean createAccount(AccountIn accountIn) {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<create_account>\n   <url>");
-			mRequest.append(accountIn.url);
-			mRequest.append("</url>\n   <email_addr>");
-			mRequest.append(accountIn.email_addr);
-			mRequest.append("</email_addr>\n   <passwd_hash>");
-			mRequest.append(getPasswdHash(accountIn.passwd, accountIn.email_addr));
-			mRequest.append("</passwd_hash>\n   <user_name>");
-			if (accountIn.user_name!=null)
-				mRequest.append(accountIn.user_name);
-			mRequest.append("</user_name>\n   <team_name>");
-			if (accountIn.team_name!=null)
-				mRequest.append(accountIn.team_name);
-			mRequest.append("</team_name>\n<create_account>\n");
-			
-			sendRequest(mRequest.toString());
-			
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in createAccount()", e);
-			return false;
-		}
-	}
-	
-	/**
-	 * polling create account
-	 * @return account output
-	 */
-	public synchronized AccountOut createAccountPoll() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<create_account_poll/>");
-			
-			sendRequest(mRequest.toString());
-			return AccountOutParser.parse(receiveReply());
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getCreateAccountPoll()", e);
-			return null;
-		}
-	}
-	
-	/**
-	 * Looks up account
-	 * @param accountIn - account info
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean lookupAccount(AccountIn accountIn) {
-		try {
-			String id;
-			if(accountIn.uses_name) id = accountIn.user_name;
-			else id = accountIn.email_addr;
-			mRequest.setLength(0);
-			mRequest.append("<lookup_account>\n <url>");
-			mRequest.append(accountIn.url);
-			mRequest.append("</url>\n <email_addr>");
-			mRequest.append(id.toLowerCase(Locale.US));
-			mRequest.append("</email_addr>\n <passwd_hash>");
-			mRequest.append(getPasswdHash(accountIn.passwd, id.toLowerCase(Locale.US)));
-			mRequest.append("</passwd_hash>\n</lookup_account>\n");
-			sendRequest(mRequest.toString());
-			
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in lookupAccount()", e);
-			return false;
-		}
-	}
-	
-	/**
-	 * polling lookup account
-	 * @return account output
-	 */
-	public synchronized AccountOut lookupAccountPoll() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<lookup_account_poll/>");
-			
-			sendRequest(mRequest.toString());
-			return AccountOutParser.parse(receiveReply());
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getLookupAccountPoll()", e);
-			return null;
-		}
-	}
-	
-	/**
-	 * Attach to project 
-	 * @param url project url
-	 * @param authenticator account key
-	 * @param name project name
-	 * @return
-	 */
-	public synchronized boolean projectAttach(String url, String authenticator, String name) {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<project_attach>\n   <project_url>");
-			mRequest.append(url);
-			mRequest.append("</project_url>\n   <authenticator>");
-			mRequest.append(authenticator);
-			mRequest.append("</authenticator>\n   <project_name>");
-			mRequest.append(name);
-			mRequest.append("</project_name>\n</project_attach>\n");
-			
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in projectAttach()", e);
-			return false;
-		}
-	}
-	
-	/**
-	 * polling project attach
-	 * @return project attach reply
-	 */
-	public synchronized ProjectAttachReply projectAttachPoll() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<project_attach_poll/>");
-			
-			sendRequest(mRequest.toString());
-			return ProjectAttachReplyParser.parse(receiveReply());
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in projectAttachPoll()", e);
-			return null;
-		}
-	}
-	
-	/**
-	 * performs acct_mgr_rpc towards client
-	 * attaches account manager to client
-	 * requires polling of status
-	 * @param url
-	 * @param name
-	 * @param passwd
-	 * @return success
-	 */
-	public synchronized boolean acctMgrRPC(String url, String name, String passwd) {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<acct_mgr_rpc>\n   <url>");
-			mRequest.append(url);
-			mRequest.append("</url>\n   <name>");
-			mRequest.append(name);
-			mRequest.append("</name>\n   <password>");
-			mRequest.append(passwd);
-			mRequest.append("</password>\n</acct_mgr_rpc>\n");
-
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in acctMgrRPC()", e);
-			return false;
-		}
-	}
-	
-	/**
-	 * performs acct_mgr_rpc with <use_config_file/> instead of login information
-	 * @return success
-	 */
-	public synchronized boolean acctMgrRPC() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<acct_mgr_rpc>\n<use_config_file/>\n</acct_mgr_rpc>\n");
-
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in acctMgrRPC()", e);
-			return false;
-		}
-	}
-
-	/**
-	 * performs acct_mgr_rpc_poll towards client
-	 * polls status of acct_mgr_rpc
-	 * @return status class AcctMgrRPCReply
-	 */
-	public synchronized AcctMgrRPCReply acctMgrRPCPoll() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<acct_mgr_rpc_poll/>");
-
-			sendRequest(mRequest.toString());
-			return AcctMgrRPCReplyParser.parse(receiveReply());
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in acctMgrRPCPoll()", e);
-			return null;
-		}
-	}
-	
-	/**
-	 * performs acct_mgr_info towards client
-	 * @return status class AcctMgrInfo
-	 */
-	public synchronized AcctMgrInfo getAcctMgrInfo() {
-		mLastErrorMessage = null;
-		try {
-			sendRequest("<acct_mgr_info/>\n");
-			return AcctMgrInfoParser.parse(receiveReply());
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getAcctMgrInfo()", e);
-			return null;
-		}
-	}
-	
-	public synchronized boolean getProjectConfig(String url) {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<get_project_config>\n   <url>");
-			mRequest.append(url);
-			mRequest.append("</url>\n</get_project_config>\n");
-			
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getProjectConfig()", e);
-			return false;
-		}
-	}
-	
-	public synchronized ProjectConfig getProjectConfigPoll() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<get_project_config_poll/>");
-			
-			sendRequest(mRequest.toString());
-			return ProjectConfigReplyParser.parse(receiveReply());
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getProjectConfigPoll()", e);
-			return null;
-		}
-	}
-	
-	public synchronized ArrayList<ProjectInfo> getAllProjectsList() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<get_all_projects_list/>");
-			
-			sendRequest(mRequest.toString());
-			return ProjectInfoParser.parse(receiveReply());
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getAllProjectsList()", e);
-			return null;
-		}
-		
-	}
-	
-	public synchronized GlobalPreferences getGlobalPrefsWorkingStruct() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<get_global_prefs_working/>");
-			
-			sendRequest(mRequest.toString());
-			return GlobalPreferencesParser.parse(receiveReply());
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in globalPrefsWorking()", e);
-			return null;
-		}
-	}
-	
-	public synchronized boolean setGlobalPrefsOverride(String globalPrefs) {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<set_global_prefs_override>\n");
-			mRequest.append(globalPrefs);
-			mRequest.append("</set_global_prefs_override>\n");
-			
-			sendRequest(mRequest.toString());
-			receiveReply();
-			return true;
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in setGlobalPrefsOverride()", e);
-			return false;
-		}
-	}
-	
-	public synchronized boolean setGlobalPrefsOverrideStruct(GlobalPreferences globalPrefs) {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<set_global_prefs_override>\n<global_preferences>\n  <run_on_batteries>");
-			mRequest.append(globalPrefs.run_on_batteries ? 1 : 0);
-			mRequest.append("</run_on_batteries>\n  <battery_charge_min_pct>");
-			mRequest.append(globalPrefs.battery_charge_min_pct);
-			mRequest.append("</battery_charge_min_pct>\n  <battery_max_temperature>");
-			mRequest.append(globalPrefs.battery_max_temperature);
-			mRequest.append("</battery_max_temperature>\n  <run_gpu_if_user_active>");
-			mRequest.append(globalPrefs.run_gpu_if_user_active ? 1 : 0);
-			mRequest.append("</run_gpu_if_user_active>\n  <run_if_user_active>");
-			mRequest.append(globalPrefs.run_if_user_active ? 1 : 0);
-			mRequest.append("</run_if_user_active>\n  <idle_time_to_run>");
-			mRequest.append(globalPrefs.idle_time_to_run);
-			mRequest.append("</idle_time_to_run>\n  <suspend_cpu_usage>");
-			mRequest.append(globalPrefs.suspend_cpu_usage);
-			mRequest.append("</suspend_cpu_usage>\n  <start_hour>");
-			mRequest.append(globalPrefs.cpu_times.start_hour);
-			mRequest.append("</start_hour>\n  <end_hour>");
-			mRequest.append(globalPrefs.cpu_times.end_hour);
-			mRequest.append("</end_hour>\n  <net_start_hour>");
-			mRequest.append(globalPrefs.net_times.start_hour);
-			mRequest.append("</net_start_hour>\n  <net_end_hour>");
-			mRequest.append(globalPrefs.net_times.end_hour);
-			mRequest.append("</net_end_hour>\n  <max_ncpus_pct>");
-			mRequest.append(globalPrefs.max_ncpus_pct);
-			mRequest.append("</max_ncpus_pct>\n  <leave_apps_in_memory>");
-			mRequest.append(globalPrefs.leave_apps_in_memory ? 1 : 0);
-			mRequest.append("</leave_apps_in_memory>\n  <dont_verify_images>");
-			mRequest.append(globalPrefs.dont_verify_images ? 1 : 0);
-			mRequest.append("</dont_verify_images>\n  <work_buf_min_days>");
-			mRequest.append(globalPrefs.work_buf_min_days);
-			mRequest.append("</work_buf_min_days>\n  <work_buf_additional_days>");
-			mRequest.append(globalPrefs.work_buf_additional_days);
-			mRequest.append("</work_buf_additional_days>\n  <disk_interval>");
-			mRequest.append(globalPrefs.disk_interval);
-			mRequest.append("</disk_interval>\n  <cpu_scheduling_period_minutes>");
-			mRequest.append(globalPrefs.cpu_scheduling_period_minutes);
-			mRequest.append("</cpu_scheduling_period_minutes>\n  <disk_max_used_gb>");
-			mRequest.append(globalPrefs.disk_max_used_gb);
-			mRequest.append("</disk_max_used_gb>\n  <disk_max_used_pct>");
-			mRequest.append(globalPrefs.disk_max_used_pct);
-			mRequest.append("</disk_max_used_pct>\n  <disk_min_free_gb>");
-			mRequest.append(globalPrefs.disk_min_free_gb);
-			mRequest.append("</disk_min_free_gb>\n  <ram_max_used_busy_pct>");
-			mRequest.append(globalPrefs.ram_max_used_busy_frac);
-			mRequest.append("</ram_max_used_busy_pct>\n  <ram_max_used_idle_pct>");
-			mRequest.append(globalPrefs.ram_max_used_idle_frac);
-			mRequest.append("</ram_max_used_idle_pct>\n  <max_bytes_sec_up>");
-			mRequest.append(globalPrefs.max_bytes_sec_up);
-			mRequest.append("</max_bytes_sec_up>\n  <max_bytes_sec_down>");
-			mRequest.append(globalPrefs.max_bytes_sec_down);
-			mRequest.append("</max_bytes_sec_down>\n  <cpu_usage_limit>");
-			mRequest.append(globalPrefs.cpu_usage_limit);
-			mRequest.append("</cpu_usage_limit>\n  <daily_xfer_limit_mb>");
-			mRequest.append(globalPrefs.daily_xfer_limit_mb);
-			mRequest.append("</daily_xfer_limit_mb>\n  <daily_xfer_period_days>");
-			mRequest.append(globalPrefs.daily_xfer_period_days);
-			mRequest.append("</daily_xfer_period_days>\n  <network_wifi_only>");
-			mRequest.append(globalPrefs.network_wifi_only ? 1 : 0);
-			mRequest.append("</network_wifi_only>\n");
-			
-			// write days prefs
-			TimePreferences.TimeSpan[] weekPrefs = globalPrefs.cpu_times.week_prefs;
-			for (int i = 0; i < weekPrefs.length; i++) {
-				TimePreferences.TimeSpan timeSpan = weekPrefs[i];
-				if (timeSpan == null) continue;
-				mRequest.append("  <day_prefs>\n    <day_of_week>");
-				mRequest.append(i);
-				mRequest.append("</day_of_week>\n    <start_hour>");
-				mRequest.append(timeSpan.start_hour);
-				mRequest.append("</start_hour>\n    <end_hour>");
-				mRequest.append(timeSpan.end_hour);
-				mRequest.append("</end_hour>\n  </day_prefs>\n");
-			}
-			
-			weekPrefs = globalPrefs.net_times.week_prefs;
-			for (int i = 0; i < weekPrefs.length; i++) {
-				TimePreferences.TimeSpan timeSpan = weekPrefs[i];
-				if (timeSpan == null) continue;
-				mRequest.append("  <day_prefs>\n    <day_of_week>");
-				mRequest.append(i);
-				mRequest.append("</day_of_week>\n    <net_start_hour>");
-				mRequest.append(timeSpan.start_hour);
-				mRequest.append("</net_start_hour>\n    <net_end_hour>");
-				mRequest.append(timeSpan.end_hour);
-				mRequest.append("</net_end_hour>\n  </day_prefs>\n");
-			}
-			
-			mRequest.append("</global_preferences>\n</set_global_prefs_override>\n");
-			sendRequest(mRequest.toString());
-			receiveReply();
-			return true;
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in setGlobalPrefsOverrideStruct()", e);
-			return false;
-		}
-	}
-	
-	public synchronized boolean readGlobalPrefsOverride() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<read_global_prefs_override/>");
-			sendRequest(mRequest.toString());
-			
-			// TODO: handle errors
-			receiveReply();
-			return true;
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in setGlobalPrefsOverrideStruct()", e);
-			return false;
-		}
-	}
-
-	/**
-	 * Tells the BOINC core client to exit. 
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean quit() {
-		try {
-			sendRequest("<quit/>\n");
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in quit()", e);
-			return false;
-		}
-	}
-
-	/**
-	 * Set the network mode
-	 * @param mode 1 = always, 2 = auto, 3 = never, 4 = restore
-	 * @param duration If duration is zero, mode is permanent. Otherwise revert to
-	 *        last permanent mode after duration seconds elapse.
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean setNetworkMode(int mode, double duration) {
-		final String request =
-			"<set_network_mode>\n" +
-			modeName(mode) + "\n" +
-			"<duration>" + duration + "</duration>\n" +
-			"</set_network_mode>\n";
-		try {
-			sendRequest(request);
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in setNetworkMode()", e);
-			return false;
-		}
-	}
-
-	/**
-	 * Set the run mode
-	 * @param mode 1 = always, 2 = auto, 3 = never, 4 = restore
-	 * @param duration If duration is zero, mode is permanent. Otherwise revert to
-	 *        last permanent mode after duration seconds elapse.
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean setRunMode(int mode, double duration) {
-		final String request =
-			"<set_run_mode>\n" +
-			modeName(mode) + "\n" +
-			"<duration>" + duration + "</duration>\n" +
-			"</set_run_mode>\n";
-		try {
-			sendRequest(request);
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in setRunMode()", e);
-			return false;
-		}
-	}
-
-	/**
-	 * Triggers operation on transfer in BOINC core client
-	 * @param operation operation to be triggered
-	 * @param projectUrl master URL of project
-	 * @param fileName name of the file
-	 * @return true for success, false for failure
-	 */
-	public synchronized boolean transferOp(int operation, String projectUrl, String fileName) {
-		try {
-			String opTag;
-			switch (operation) {
-			case TRANSFER_RETRY:
-				opTag = "retry_file_transfer";
-				break;
-			case TRANSFER_ABORT:
-				opTag = "abort_file_transfer";
-				break;
-			default:
-				if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "transferOp() - unsupported operation: " + operation);
-				return false;
-			}
-			mRequest.setLength(0);
-			mRequest.append("<");
-			mRequest.append(opTag);
-			mRequest.append(">\n   <project_url>");
-			mRequest.append(projectUrl);
-			mRequest.append("</project_url>\n   <filename>");
-			mRequest.append(fileName);
-			mRequest.append("</filename>\n</");
-			mRequest.append(opTag);
-			mRequest.append(">\n");
-			sendRequest(mRequest.toString());
-			
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in transferOp()", e);
-			return false;
-		}
-	}
-	
-	/**
-	 * Triggers operation on task in BOINC core client
-	 * @param operation operation to be triggered
-	 * @param projectUrl master URL of project
-	 * @param fileName name of the file
-	 * @return true for success, false for failure
-	 */
-	public boolean resultOp(int operation, String projectUrl, String resultName) {
-		try {
-			String opTag;
-			switch (operation) {
-			case RESULT_SUSPEND:
-				opTag = "suspend_result";
-				break;
-			case RESULT_RESUME:
-				opTag = "resume_result";
-				break;
-			case RESULT_ABORT:
-				opTag = "abort_result";
-				break;
-			default:
-				if(edu.berkeley.boinc.utils.Logging.LOGLEVEL <= 4) Log.e(Logging.TAG, "resultOp() - unsupported operation: " + operation);
-				return false;
-			}
-			mRequest.setLength(0);
-			mRequest.append("<");
-			mRequest.append(opTag);
-			mRequest.append(">\n   <project_url>");
-			mRequest.append(projectUrl);
-			mRequest.append("</project_url>\n   <name>");
-			mRequest.append(resultName);
-			mRequest.append("</name>\n</");
-			mRequest.append(opTag);
-			mRequest.append(">\n");
-			sendRequest(mRequest.toString());
-			
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		}
-		catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in transferOp()", e);
-			return false;
-		}
-	}
-	
-	public synchronized boolean setCcConfig(String ccConfig) {
-		final String request =
-				"<set_cc_config>\n" +
-						ccConfig + 
-				"\n</set_cc_config>\n";
-			try {
-				sendRequest(request);
-				SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-				if (parser == null)
-					return false;
-				mLastErrorMessage = parser.getErrorMessage();
-				return parser.result();
-			}
-			catch (IOException e) {
-				if(Logging.WARNING) Log.w(Logging.TAG, "error in setCcConfig()", e);
-				return false;
-			}
-		
-	}
-	
-	public synchronized String getCcConfig() {
-		//TODO: needs proper parsing
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<get_cc_config/>");
-			
-			sendRequest(mRequest.toString());
-			String reply = receiveReply();
-			Log.d(Logging.TAG, reply);
-			return reply;
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in getCcConfig()", e);
-			return "";
-		}
-	}
-	
-	public synchronized Boolean readCcConfig() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<read_cc_config/>");
-
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in readCcConfig()", e);
-			return false;
-		}
-	}
-	
-	public synchronized Boolean runBenchmarks() {
-		try {
-			mRequest.setLength(0);
-			mRequest.append("<run_benchmarks/>");
-
-			sendRequest(mRequest.toString());
-			SimpleReplyParser parser = SimpleReplyParser.parse(receiveReply());
-			if (parser == null)
-				return false;
-			mLastErrorMessage = parser.getErrorMessage();
-			return parser.result();
-		} catch (IOException e) {
-			if(Logging.WARNING) Log.w(Logging.TAG, "error in runBenchmark()", e);
-			return false;
-		}
-		
-	}
-}
diff --git a/android/Vagrant.README.md b/android/Vagrant.README.md
new file mode 100644
index 0000000..b597df5
--- /dev/null
+++ b/android/Vagrant.README.md
@@ -0,0 +1,40 @@
+## Goals
+
+Provide a turn-key VM for Android development
+
+## Requirements
+
+* [Vagrant](https://www.vagrantup.com/downloads.html)
+* [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
+* Host:
+  * 4 CPU cores (2 used by VM)
+  * ~18 GB disk space
+  * 4 GB RAM (2 used by VM)
+* Download volume (once): ~3.5 GB
+
+## HOWTO
+
+1. On your host: open a terminal
+   1. `cd <BOINC_REPO>/android`
+   1. `vagrant up`
+   1. Wait until the final reboot finished
+   1. **From this point on you don't need Vagrant anymore**
+      1. Don't run `vagrant up` again!
+      1. Just use VirtualBox to stop/start your new shiny VM
+1. In the VM:
+   1. Log in with `vagrant/vagrant`
+   1. Open a terminal
+      1. `cd BOINC/android`
+      1. `./build_all.sh`
+   1. Start Android Studio
+   1. No need to change anything in the setup assitant (just complete it)
+      * OK / Next / Next / Finish / Finish
+   1. Import the BOINC App as *Gradle* project from: `~/BOINC/android/BOINC`
+   1. Ignore potential Gradle Plugin warning: *Don't remind me again*
+1. Hook up your Android device via USB (and remember to attach it to VirtualBox)
+1. Happy hacking :-)
+
+## Known limitations
+
+* The Android Virtual Device Manager might not work properly as it needs virtualization
+  which isn't possible within a virtual machine (at least not using VirtualBox).
diff --git a/android/Vagrantfile b/android/Vagrantfile
new file mode 100644
index 0000000..bca034d
--- /dev/null
+++ b/android/Vagrantfile
@@ -0,0 +1,135 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# All Vagrant configuration is done below. The "2" in Vagrant.configure
+# configures the configuration version (we support older styles for
+# backwards compatibility). Please don't change it unless you know what
+# you're doing.
+Vagrant.configure("2") do |config|
+  # The most common configuration options are documented and commented below.
+  # For a complete reference, please see the online documentation at
+  # https://docs.vagrantup.com.
+
+  # Every Vagrant development environment requires a box. You can search for
+  # boxes at https://atlas.hashicorp.com/search.
+  config.vm.box = "bento/ubuntu-16.04"
+
+  # Disable automatic box update checking. If you disable this, then
+  # boxes will only be checked for updates when the user runs
+  # `vagrant box outdated`. This is not recommended.
+  # config.vm.box_check_update = false
+
+  # Create a forwarded port mapping which allows access to a specific port
+  # within the machine from a port on the host machine. In the example below,
+  # accessing "localhost:8080" will access port 80 on the guest machine.
+  # config.vm.network "forwarded_port", guest: 80, host: 8080
+
+  # Create a private network, which allows host-only access to the machine
+  # using a specific IP.
+  # config.vm.network "private_network", ip: "192.168.33.10"
+
+  # Create a public network, which generally matched to bridged network.
+  # Bridged networks make the machine appear as another physical device on
+  # your network.
+  # config.vm.network "public_network"
+
+  # Share an additional folder to the guest VM. The first argument is
+  # the path on the host to the actual folder. The second argument is
+  # the path on the guest to mount the folder. And the optional third
+  # argument is a set of non-required options.
+  # config.vm.synced_folder "../data", "/vagrant_data"
+
+  # Provider-specific configuration so you can fine-tune various
+  # backing providers for Vagrant. These expose provider-specific options.
+  # Example for VirtualBox:
+  #
+  config.vm.provider "virtualbox" do |vb|
+      # Set VM name
+      vb.name = "BOINC-Android-Development"
+
+      # Display the VirtualBox GUI when booting the machine
+      vb.gui = true
+
+      # Customize the number of CPU cores on the VM:
+      vb.cpus = 2
+
+      # Customize the amount of memory on the VM:
+      vb.memory = "2048"
+
+      # Increase video memory to 128 MB
+      vb.customize ["modifyvm", :id, "--vram", "128"]
+
+      # Enable 3D acceleration
+      vb.customize ["modifyvm", :id, "--accelerate3d", "on"]
+
+      # Enable USB
+      vb.customize ["modifyvm", :id, "--usb", "on"]
+      vb.customize ["modifyvm", :id, "--usbxhci", "on"]
+  end
+  #
+  # View the documentation for the provider you are using for more
+  # information on available options.
+
+  # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
+  # such as FTP and Heroku are also available. See the documentation at
+  # https://docs.vagrantup.com/v2/push/atlas.html for more information.
+  # config.push.define "atlas" do |push|
+  #   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
+  # end
+
+  # Enable provisioning with a shell script. Additional provisioners such as
+  # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
+  # documentation for more information about their specific syntax and use.
+  config.vm.provision "shell", name: "Preparing desktop environment...", inline: <<-SHELL
+      add-apt-repository ppa:ubuntu-desktop/ubuntu-make
+      apt-get update
+      apt-get upgrade
+      apt-get --assume-yes install ubuntu-mate-core virtualbox-guest-x11
+      apt-get --assume-yes install ubuntu-make git automake libtool
+      update-locale LC_ALL=en_US.UTF-8
+  SHELL
+
+  config.vm.provision "shell" do |s|
+      s.name = "Installing Android Studio..."
+      s.privileged  = false
+      s.inline = <<-SHELL
+          umake --verbose android android-studio --accept-license $HOME/Android/Android-Studio
+          printf "\n# umake fix-up\nexport ANDROID_HOME=\$HOME/Android/Sdk\n" >> $HOME/.profile
+          umake --verbose android android-sdk --accept-license $HOME/Android/Sdk
+          printf "\n# umake fix-up\nexport NDK_ROOT=\$HOME/Android/Ndk\n" >> $HOME/.profile
+          umake --verbose android android-ndk --accept-license $HOME/Android/Ndk
+          yes | $HOME/Android/Sdk/tools/bin/sdkmanager --update
+          yes | $HOME/Android/Sdk/tools/bin/sdkmanager "extras;android;m2repository" "extras;google;m2repository"
+          mkdir $HOME/Desktop
+          cp $HOME/.local/share/applications/android-studio.desktop $HOME/Desktop/
+          chmod +x $HOME/Desktop/android-studio.desktop
+      SHELL
+  end
+
+  config.vm.provision "shell" do |s|
+      s.name = "Clone BOINC repository and configuring toolchain..."
+      s.privileged  = false
+      s.inline  = <<-SHELL
+          export OPENSSL_VERSION=1.0.2k
+          export CURL_VERSION=7.53.1
+          git clone https://github.com/BOINC/boinc.git $HOME/BOINC
+          export BUILD_TOOLS=`sed -n "s/.*buildToolsVersion\\s*\\"\\(.*\\)\\"/\\1/p" $HOME/BOINC/android/BOINC/app/build.gradle`
+          export COMPILE_SDK=`sed -n "s/.*compileSdkVersion\\s*\\(\\d*\\)/\\1/p" $HOME/BOINC/android/BOINC/app/build.gradle`
+          yes | $HOME/Android/Sdk/tools/bin/sdkmanager "build-tools;${BUILD_TOOLS}"
+          yes | $HOME/Android/Sdk/tools/bin/sdkmanager "platforms;android-${COMPILE_SDK}"
+          printf "\n# Build toolchains\nexport ANDROID_TC=\$HOME/Android/Toolchains\n" >> $HOME/.profile
+          mkdir $HOME/3rdParty
+          wget -O /tmp/openssl.tgz https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
+          tar xzf /tmp/openssl.tgz --directory=$HOME/3rdParty
+          printf "\n# OpenSSL sources\nexport OPENSSL_SRC=\$HOME/3rdParty/openssl-${OPENSSL_VERSION}\n" >> $HOME/.profile
+          wget -O /tmp/curl.tgz https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz
+          tar xzf /tmp/curl.tgz --directory=$HOME/3rdParty
+          printf "\n# cURL sources\nexport CURL_SRC=\$HOME/3rdParty/curl-${CURL_VERSION}\n" >> $HOME/.profile
+      SHELL
+  end
+
+  config.vm.provision "shell", name: "Final cleanup and reboot...", inline: <<-SHELL
+      apt-get clean
+      reboot
+  SHELL
+end
diff --git a/android/build_all.sh b/android/build_all.sh
index c24cd30..9f7be58 100755
--- a/android/build_all.sh
+++ b/android/build_all.sh
@@ -7,14 +7,26 @@
 # Script to compile everything BOINC needs for Android
 
 ./build_androidtc_arm.sh
+./build_androidtc_arm64.sh
 ./build_androidtc_x86.sh
+./build_androidtc_x86_64.sh
 ./build_androidtc_mips.sh
+./build_androidtc_mips64.sh
 ./build_openssl_arm.sh
+./build_openssl_arm64.sh
 ./build_openssl_x86.sh
+./build_openssl_x86_64.sh
 ./build_openssl_mips.sh
+./build_openssl_mips64.sh
 ./build_curl_arm.sh
+./build_curl_arm64.sh
 ./build_curl_x86.sh
+./build_curl_x86_64.sh
 ./build_curl_mips.sh
+./build_curl_mips64.sh
 ./build_boinc_arm.sh
+./build_boinc_arm64.sh
 ./build_boinc_x86.sh
+./build_boinc_x86_64.sh
 ./build_boinc_mips.sh
+./build_boinc_mips64.sh
diff --git a/android/build_androidtc_arm.sh b/android/build_androidtc_arm.sh
index 192c43a..c02ec1b 100755
--- a/android/build_androidtc_arm.sh
+++ b/android/build_androidtc_arm.sh
@@ -6,8 +6,10 @@
 
 # Script to setup Android toolchain
 
-export ANDROIDTC="$HOME/androidarm-tc"
+export NDK_ROOT="${NDK_ROOT:-$HOME/NVPACK/android-ndk-r10e}"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROID_TC_ARM="${ANDROID_TC_ARM:-$ANDROID_TC/arm}"
 
-if [ ! -d $ANDROIDTC/arm-linux-androideabi ]; then
-    $NDKROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --arch=arm --install-dir=$ANDROIDTC
+if [ ! -d $ANDROID_TC_ARM/arm-linux-androideabi ]; then
+    $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --arch=arm --install-dir=$ANDROID_TC_ARM
 fi
diff --git a/android/build_androidtc_arm64.sh b/android/build_androidtc_arm64.sh
new file mode 100755
index 0000000..082b200
--- /dev/null
+++ b/android/build_androidtc_arm64.sh
@@ -0,0 +1,15 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to setup Android toolchain
+
+export NDK_ROOT="${NDK_ROOT:-$HOME/NVPACK/android-ndk-r10e}"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROID_TC_ARM64="${ANDROID_TC_ARM64:-$ANDROID_TC/arm64}"
+
+if [ ! -d $ANDROID_TC_ARM64/aarch64-linux-android ]; then
+    $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-21 --arch=arm64 --install-dir=$ANDROID_TC_ARM64
+fi
diff --git a/android/build_androidtc_mips.sh b/android/build_androidtc_mips.sh
index acf1456..3d3e262 100755
--- a/android/build_androidtc_mips.sh
+++ b/android/build_androidtc_mips.sh
@@ -6,8 +6,10 @@
 
 # Script to setup Android toolchain
 
-export ANDROIDTC="$HOME/androidmips-tc"
+export NDK_ROOT="${NDK_ROOT:-$HOME/NVPACK/android-ndk-r10e}"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROID_TC_MIPS="${ANDROID_TC_MIPS:-$ANDROID_TC/mips}"
 
-if [ ! -d $ANDROIDTC/mipsel-linux-android ]; then
-    $NDKROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --arch=mips --install-dir=$ANDROIDTC
+if [ ! -d $ANDROID_TC_MIPS/mipsel-linux-android ]; then
+    $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --arch=mips --install-dir=$ANDROID_TC_MIPS
 fi
diff --git a/android/build_androidtc_mips64.sh b/android/build_androidtc_mips64.sh
new file mode 100755
index 0000000..cae8e4c
--- /dev/null
+++ b/android/build_androidtc_mips64.sh
@@ -0,0 +1,15 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to setup Android toolchain
+
+export NDK_ROOT="${NDK_ROOT:-$HOME/NVPACK/android-ndk-r10e}"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROID_TC_MIPS64="${ANDROID_TC_MIPS64:-$ANDROID_TC/mips64}"
+
+if [ ! -d $ANDROID_TC_MIPS64/mips64el-linux-android ]; then
+    $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-21 --arch=mips64 --install-dir=$ANDROID_TC_MIPS64
+fi
diff --git a/android/build_androidtc_x86.sh b/android/build_androidtc_x86.sh
index 44e3ec9..9bf8c54 100755
--- a/android/build_androidtc_x86.sh
+++ b/android/build_androidtc_x86.sh
@@ -6,8 +6,10 @@
 
 # Script to setup Android toolchain
 
-export ANDROIDTC="$HOME/androidx86-tc"
+export NDK_ROOT="${NDK_ROOT:-$HOME/NVPACK/android-ndk-r10e}"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROID_TC_X86="${ANDROID_TC_X86:-$ANDROID_TC/x86}"
 
-if [ ! -d $ANDROIDTC/i686-linux-android ]; then
-    $NDKROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --arch=x86 --install-dir=$ANDROIDTC
+if [ ! -d $ANDROID_TC_X86/i686-linux-android ]; then
+    $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --arch=x86 --install-dir=$ANDROID_TC_X86
 fi
diff --git a/android/build_androidtc_x86_64.sh b/android/build_androidtc_x86_64.sh
new file mode 100755
index 0000000..289080d
--- /dev/null
+++ b/android/build_androidtc_x86_64.sh
@@ -0,0 +1,15 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to setup Android toolchain
+
+export NDK_ROOT="${NDK_ROOT:-$HOME/NVPACK/android-ndk-r10e}"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROID_TC_X86_64="${ANDROID_TC_X86_64:-$ANDROID_TC/x86_64}"
+
+if [ ! -d $ANDROID_TC_X86_64/x86_64-linux-android ]; then
+    $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-21 --arch=x86_64 --install-dir=$ANDROID_TC_X86_64
+fi
diff --git a/android/build_boinc_all.sh b/android/build_boinc_all.sh
index 9a080da..a4c3ef6 100755
--- a/android/build_boinc_all.sh
+++ b/android/build_boinc_all.sh
@@ -7,5 +7,8 @@
 # Script to compile everything BOINC needs for Android
 
 ./build_boinc_arm.sh
+./build_boinc_arm64.sh
 ./build_boinc_x86.sh
+./build_boinc_x86_64.sh
 ./build_boinc_mips.sh
+./build_boinc_mips64.sh
diff --git a/android/build_boinc_arm.sh b/android/build_boinc_arm.sh
index fe26b12..9ebfc09 100755
--- a/android/build_boinc_arm.sh
+++ b/android/build_boinc_arm.sh
@@ -12,7 +12,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidarm-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM:-$ANDROID_TC/arm}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi"
 export TCSYSROOT="$ANDROIDTC/sysroot"
@@ -22,9 +23,9 @@ export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
 export CC=arm-linux-androideabi-gcc
 export CXX=arm-linux-androideabi-g++
 export LD=arm-linux-androideabi-ld
-export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
-export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
-export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv7-a"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -march=armv7-a"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -march=armv7-a -Wl,--fix-cortex-a8"
 export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
 export PKG_CONFIG_SYSROOT_DIR=$TCSYSROOT
 
@@ -35,7 +36,7 @@ if [ -n "$COMPILEBOINC" ]; then
 echo "==================building BOINC from $BOINC=========================="
 cd $BOINC
 if [ -n "$MAKECLEAN" ]; then
-make clean
+make distclean
 fi
 if [ -n "$CONFIGURE" ]; then
 ./_autosetup
@@ -53,11 +54,11 @@ cd ../../../../
 
 echo "Copy Assets"
 cd android
-mkdir "BOINC/assets"
-cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/assets/armeabi-v7a/boinc"
-cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/assets/armeabi-v7a/boinccmd"
-cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/assets/all_projects_list.xml"
-cp "$BOINC/curl/ca-bundle.crt" "BOINC/assets/ca-bundle.crt"
+mkdir -p "BOINC/app/src/main/assets"
+cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/app/src/main/assets/armeabi-v7a/boinc"
+cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/app/src/main/assets/armeabi-v7a/boinccmd"
+cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/app/src/main/assets/all_projects_list.xml"
+cp "$BOINC/curl/ca-bundle.crt" "BOINC/app/src/main/assets/ca-bundle.crt"
 
 echo "=============================BOINC done============================="
 
diff --git a/android/build_boinc_arm64.sh b/android/build_boinc_arm64.sh
new file mode 100755
index 0000000..f63385e
--- /dev/null
+++ b/android/build_boinc_arm64.sh
@@ -0,0 +1,65 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile BOINC for Android
+
+COMPILEBOINC="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+export BOINC=".." #BOINC source code
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM64-$ANDROID_TC/arm64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/aarch64-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+export STDCPPTC="$TCINCLUDES/lib/libstdc++.a"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=aarch64-linux-android-gcc
+export CXX=aarch64-linux-android-g++
+export LD=aarch64-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+export PKG_CONFIG_SYSROOT_DIR=$TCSYSROOT
+
+# Prepare android toolchain and environment
+./build_androidtc_arm64.sh
+
+if [ -n "$COMPILEBOINC" ]; then
+echo "==================building BOINC from $BOINC=========================="
+cd $BOINC
+if [ -n "$MAKECLEAN" ]; then
+make distclean
+fi
+if [ -n "$CONFIGURE" ]; then
+./_autosetup
+./configure --host=aarch64-linux --with-boinc-platform="aarch64-android-linux-gnu" --with-boinc-alt-platform="arm-android-linux-gnu" --with-ssl=$TCINCLUDES --disable-server --disable-manager --disable-shared --enable-static
+sed -e "s%^CLIENTLIBS *= *.*$%CLIENTLIBS = -lm $STDCPPTC%g" client/Makefile > client/Makefile.out
+mv client/Makefile.out client/Makefile
+fi
+make
+make stage
+
+echo "Stripping Binaries"
+cd stage/usr/local/bin
+aarch64-linux-android-strip *
+cd ../../../../
+
+echo "Copy Assets"
+cd android
+mkdir -p "BOINC/app/src/main/assets"
+cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/app/src/main/assets/arm64-v8a/boinc"
+cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/app/src/main/assets/arm64-v8a/boinccmd"
+cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/app/src/main/assets/all_projects_list.xml"
+cp "$BOINC/curl/ca-bundle.crt" "BOINC/app/src/main/assets/ca-bundle.crt"
+
+echo "=============================BOINC done============================="
+
+fi
diff --git a/android/build_boinc_mips.sh b/android/build_boinc_mips.sh
index 9b30558..2283c4f 100755
--- a/android/build_boinc_mips.sh
+++ b/android/build_boinc_mips.sh
@@ -12,7 +12,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidmips-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS-$ANDROID_TC/mips}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/mipsel-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
@@ -35,7 +36,7 @@ if [ -n "$COMPILEBOINC" ]; then
 echo "==================building BOINC from $BOINC=========================="
 cd $BOINC
 if [ -n "$MAKECLEAN" ]; then
-make clean
+make distclean
 fi
 if [ -n "$CONFIGURE" ]; then
 ./_autosetup
@@ -53,11 +54,11 @@ cd ../../../../
 
 echo "Copy Assets"
 cd android
-mkdir "BOINC/assets"
-cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/assets/mips/boinc"
-cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/assets/mips/boinccmd"
-cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/assets/all_projects_list.xml"
-cp "$BOINC/curl/ca-bundle.crt" "BOINC/assets/ca-bundle.crt"
+mkdir -p "BOINC/app/src/main/assets"
+cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/app/src/main/assets/mips/boinc"
+cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/app/src/main/assets/mips/boinccmd"
+cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/app/src/main/assets/all_projects_list.xml"
+cp "$BOINC/curl/ca-bundle.crt" "BOINC/app/src/main/assets/ca-bundle.crt"
 
 echo "=============================BOINC done============================="
 
diff --git a/android/build_boinc_mips64.sh b/android/build_boinc_mips64.sh
new file mode 100755
index 0000000..2a97cf6
--- /dev/null
+++ b/android/build_boinc_mips64.sh
@@ -0,0 +1,65 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile BOINC for Android
+
+COMPILEBOINC="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+export BOINC=".." #BOINC source code
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS64-$ANDROID_TC/mips64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/mips64el-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+export STDCPPTC="$TCINCLUDES/lib64/libstdc++.a"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=mips64el-linux-android-gcc
+export CXX=mips64el-linux-android-g++
+export LD=mips64el-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib64 -L$TCINCLUDES/lib64 -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+export PKG_CONFIG_SYSROOT_DIR=$TCSYSROOT
+
+# Prepare android toolchain and environment
+./build_androidtc_mips64.sh
+
+if [ -n "$COMPILEBOINC" ]; then
+echo "==================building BOINC from $BOINC=========================="
+cd $BOINC
+if [ -n "$MAKECLEAN" ]; then
+make distclean
+fi
+if [ -n "$CONFIGURE" ]; then
+./_autosetup
+./configure --host=mips64el-linux --with-boinc-platform="mips64el-android-linux-gnu" --with-boinc-alt-platform="mipsel-android-linux-gnu" --with-ssl=$TCINCLUDES --disable-server --disable-manager --disable-shared --enable-static
+sed -e "s%^CLIENTLIBS *= *.*$%CLIENTLIBS = -lm $STDCPPTC%g" client/Makefile > client/Makefile.out
+mv client/Makefile.out client/Makefile
+fi
+make
+make stage
+
+echo "Stripping Binaries"
+cd stage/usr/local/bin
+mips64el-linux-android-strip *
+cd ../../../../
+
+echo "Copy Assets"
+cd android
+mkdir -p "BOINC/app/src/main/assets"
+cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/app/src/main/assets/mips64/boinc"
+cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/app/src/main/assets/mips64/boinccmd"
+cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/app/src/main/assets/all_projects_list.xml"
+cp "$BOINC/curl/ca-bundle.crt" "BOINC/app/src/main/assets/ca-bundle.crt"
+
+echo "=============================BOINC done============================="
+
+fi
diff --git a/android/build_boinc_x86.sh b/android/build_boinc_x86.sh
index 079e78a..a96e525 100755
--- a/android/build_boinc_x86.sh
+++ b/android/build_boinc_x86.sh
@@ -12,7 +12,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidx86-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86-$ANDROID_TC/x86}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/i686-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
@@ -35,7 +36,7 @@ if [ -n "$COMPILEBOINC" ]; then
 echo "==================building BOINC from $BOINC=========================="
 cd $BOINC
 if [ -n "$MAKECLEAN" ]; then
-make clean
+make distclean
 fi
 if [ -n "$CONFIGURE" ]; then
 ./_autosetup
@@ -53,11 +54,11 @@ cd ../../../../
 
 echo "Copy Assets"
 cd android
-mkdir "BOINC/assets"
-cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/assets/x86/boinc"
-cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/assets/x86/boinccmd"
-cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/assets/all_projects_list.xml"
-cp "$BOINC/curl/ca-bundle.crt" "BOINC/assets/ca-bundle.crt"
+mkdir -p "BOINC/app/src/main/assets"
+cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/app/src/main/assets/x86/boinc"
+cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/app/src/main/assets/x86/boinccmd"
+cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/app/src/main/assets/all_projects_list.xml"
+cp "$BOINC/curl/ca-bundle.crt" "BOINC/app/src/main/assets/ca-bundle.crt"
 
 echo "=============================BOINC done============================="
 
diff --git a/android/build_boinc_x86_64.sh b/android/build_boinc_x86_64.sh
new file mode 100755
index 0000000..d41e50a
--- /dev/null
+++ b/android/build_boinc_x86_64.sh
@@ -0,0 +1,65 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile BOINC for Android
+
+COMPILEBOINC="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+export BOINC=".." #BOINC source code
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86_64-$ANDROID_TC/x86_64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/x86_64-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+export STDCPPTC="$TCINCLUDES/lib64/libstdc++.a"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=x86_64-linux-android-gcc
+export CXX=x86_64-linux-android-g++
+export LD=x86_64-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -DANDROID_64 -Wall -I$TCINCLUDES/include -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib64 -L$TCINCLUDES/lib64 -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+export PKG_CONFIG_SYSROOT_DIR=$TCSYSROOT
+
+# Prepare android toolchain and environment
+./build_androidtc_x86_64.sh
+
+if [ -n "$COMPILEBOINC" ]; then
+echo "==================building BOINC from $BOINC=========================="
+cd $BOINC
+if [ -n "$MAKECLEAN" ]; then
+make distclean
+fi
+if [ -n "$CONFIGURE" ]; then
+./_autosetup
+./configure --host=x86_64-linux --with-boinc-platform="x86_64-android-linux-gnu" --with-boinc-alt-platform="x86-android-linux-gnu" --with-ssl=$TCINCLUDES --disable-server --disable-manager --disable-shared --enable-static
+sed -e "s%^CLIENTLIBS *= *.*$%CLIENTLIBS = -lm $STDCPPTC%g" client/Makefile > client/Makefile.out
+mv client/Makefile.out client/Makefile
+fi
+make
+make stage
+
+echo "Stripping Binaries"
+cd stage/usr/local/bin
+x86_64-linux-android-strip *
+cd ../../../../
+
+echo "Copy Assets"
+cd android
+mkdir -p "BOINC/app/src/main/assets"
+cp "$BOINC/stage/usr/local/bin/boinc" "BOINC/app/src/main/assets/x86_64/boinc"
+cp "$BOINC/stage/usr/local/bin/boinccmd" "BOINC/app/src/main/assets/x86_64/boinccmd"
+cp "$BOINC/win_build/installerv2/redist/all_projects_list.xml" "BOINC/app/src/main/assets/all_projects_list.xml"
+cp "$BOINC/curl/ca-bundle.crt" "BOINC/app/src/main/assets/ca-bundle.crt"
+
+echo "=============================BOINC done============================="
+
+fi
diff --git a/android/build_build_app_arm.sh b/android/build_build_app_arm.sh
index 128c7fa..5e7716f 100755
--- a/android/build_build_app_arm.sh
+++ b/android/build_build_app_arm.sh
@@ -6,7 +6,8 @@
 
 # Script to compile a generic application on Android
 
-export ANDROIDTC="$HOME/androidarm-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM:-$ANDROID_TC/arm}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_build_app_mips.sh b/android/build_build_app_mips.sh
index a5f0d2c..df9ff1d 100755
--- a/android/build_build_app_mips.sh
+++ b/android/build_build_app_mips.sh
@@ -6,7 +6,8 @@
 
 # Script to compile a generic application on Android
 
-export ANDROIDTC="$HOME/androidmips-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS:-$ANDROID_TC/mips}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/mipsel-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_build_app_x86.sh b/android/build_build_app_x86.sh
index 94c604f..017e740 100755
--- a/android/build_build_app_x86.sh
+++ b/android/build_build_app_x86.sh
@@ -6,7 +6,8 @@
 
 # Script to compile a generic application on Android
 
-export ANDROIDTC="$HOME/androidx86-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86:-$ANDROID_TC/x86}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/i686-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_curl_arm.sh b/android/build_curl_arm.sh
index 2a89c6a..a6b04f5 100755
--- a/android/build_curl_arm.sh
+++ b/android/build_curl_arm.sh
@@ -10,9 +10,10 @@ COMPILECURL="yes"
 CONFIGURE="yes"
 MAKECLEAN="yes"
 
-CURL="/home/boincadm/src/curl-7.48.0" #CURL sources, required by BOINC
+CURL="${CURL_SRC:-$HOME/src/curl-7.48.0}" #CURL sources, required by BOINC
 
-export ANDROIDTC="$HOME/androidarm-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM:-$ANDROID_TC/arm}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi"
 export TCSYSROOT="$ANDROIDTC/sysroot"
@@ -22,9 +23,9 @@ export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
 export CC=arm-linux-androideabi-gcc
 export CXX=arm-linux-androideabi-g++
 export LD=arm-linux-androideabi-ld
-export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
-export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
-export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -march=armv7-a -Wl,--fix-cortex-a8"
 export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
 
 # Prepare android toolchain and environment
@@ -37,7 +38,7 @@ if [ -n "$MAKECLEAN" ]; then
 make clean
 fi
 if [ -n "$CONFIGURE" ]; then
-./configure --host=arm-linux --prefix=$TCINCLUDES --libdir="$TCINCLUDES/lib" --disable-shared --enable-static --with-random=/dev/urandom
+./configure --host=arm-linux --prefix=$TCINCLUDES --libdir="$TCINCLUDES/lib" --disable-shared --enable-static --with-random=/dev/urandom --without-zlib
 fi
 make
 make install
diff --git a/android/build_curl_arm64.sh b/android/build_curl_arm64.sh
new file mode 100755
index 0000000..02edb67
--- /dev/null
+++ b/android/build_curl_arm64.sh
@@ -0,0 +1,46 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile Libcurl for Android
+
+COMPILECURL="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+CURL="${CURL_SRC:-$HOME/src/curl-7.48.0}" #CURL sources, required by BOINC
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM64:-$ANDROID_TC/arm64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/aarch64-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+export STDCPPTC="$TCINCLUDES/lib/libstdc++.a"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=aarch64-linux-android-gcc
+export CXX=aarch64-linux-android-g++
+export LD=aarch64-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+
+# Prepare android toolchain and environment
+./build_androidtc_arm64.sh
+
+if [ -n "$COMPILECURL" ]; then
+echo "==================building curl from $CURL================================="
+cd $CURL
+if [ -n "$MAKECLEAN" ]; then
+make distclean
+fi
+if [ -n "$CONFIGURE" ]; then
+./configure --host=aarch64-linux --prefix=$TCINCLUDES --libdir="$TCINCLUDES/lib" --disable-shared --enable-static --with-random=/dev/urandom
+fi
+make
+make install
+echo "========================curl done================================="
+fi
diff --git a/android/build_curl_mips.sh b/android/build_curl_mips.sh
index 785768c..0990df2 100755
--- a/android/build_curl_mips.sh
+++ b/android/build_curl_mips.sh
@@ -10,9 +10,10 @@ COMPILECURL="yes"
 CONFIGURE="yes"
 MAKECLEAN="yes"
 
-CURL="/home/boincadm/src/curl-7.48.0" #CURL sources, required by BOINC
+CURL="${CURL_SRC:-$HOME/src/curl-7.48.0}" #CURL sources, required by BOINC
 
-export ANDROIDTC="$HOME/androidmips-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS:-$ANDROID_TC/mips}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/mipsel-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_curl_mips64.sh b/android/build_curl_mips64.sh
new file mode 100755
index 0000000..ae3cd60
--- /dev/null
+++ b/android/build_curl_mips64.sh
@@ -0,0 +1,45 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile Libcurl for Android
+
+COMPILECURL="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+CURL="${CURL_SRC:-$HOME/src/curl-7.48.0}" #CURL sources, required by BOINC
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS64:-$ANDROID_TC/mips64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/mips64el-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=mips64el-linux-android-gcc
+export CXX=mips64el-linux-android-g++
+export LD=mips64el-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib64 -L$TCINCLUDES/lib64 -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+
+# Prepare android toolchain and environment
+./build_androidtc_mips64.sh
+
+if [ -n "$COMPILECURL" ]; then
+echo "==================building curl from $CURL================================="
+cd $CURL
+if [ -n "$MAKECLEAN" ]; then
+make distclean
+fi
+if [ -n "$CONFIGURE" ]; then
+./configure --host=mips64el-linux --prefix=$TCINCLUDES --libdir="$TCINCLUDES/lib" --disable-shared --enable-static --with-random=/dev/urandom
+fi
+make
+make install
+echo "========================curl done================================="
+fi
diff --git a/android/build_curl_x86.sh b/android/build_curl_x86.sh
index a59dcce..9671f5f 100755
--- a/android/build_curl_x86.sh
+++ b/android/build_curl_x86.sh
@@ -10,9 +10,10 @@ COMPILECURL="yes"
 CONFIGURE="yes"
 MAKECLEAN="yes"
 
-CURL="/home/boincadm/src/curl-7.48.0" #CURL sources, required by BOINC
+CURL="${CURL_SRC:-$HOME/src/curl-7.48.0}" #CURL sources, required by BOINC
 
-export ANDROIDTC="$HOME/androidx86-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86:-$ANDROID_TC/x86}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/i686-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_curl_x86_64.sh b/android/build_curl_x86_64.sh
new file mode 100755
index 0000000..f9c7dfc
--- /dev/null
+++ b/android/build_curl_x86_64.sh
@@ -0,0 +1,46 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile Libcurl for Android
+
+COMPILECURL="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+CURL="${CURL_SRC:-$HOME/src/curl-7.48.0}" #CURL sources, required by BOINC
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86_64:-$ANDROID_TC/x86_64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/x86_64-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+export STDCPPTC="$TCINCLUDES/lib/libstdc++.a"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=x86_64-linux-android-gcc
+export CXX=x86_64-linux-android-g++
+export LD=x86_64-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+
+# Prepare android toolchain and environment
+./build_androidtc_x86_64.sh
+
+if [ -n "$COMPILECURL" ]; then
+echo "==================building curl from $CURL================================="
+cd $CURL
+if [ -n "$MAKECLEAN" ]; then
+make distclean
+fi
+if [ -n "$CONFIGURE" ]; then
+./configure --host=x86_64-linux --prefix=$TCINCLUDES --libdir="$TCINCLUDES/lib" --disable-shared --enable-static --with-random=/dev/urandom
+fi
+make
+make install
+echo "========================curl done================================="
+fi
diff --git a/android/build_libraries_arm.sh b/android/build_libraries_arm.sh
index 1e3c9d0..9e69ac4 100755
--- a/android/build_libraries_arm.sh
+++ b/android/build_libraries_arm.sh
@@ -13,7 +13,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidarm-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM:-$ANDROID_TC/arm}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_libraries_mips.sh b/android/build_libraries_mips.sh
index 34b9a15..6a76558 100755
--- a/android/build_libraries_mips.sh
+++ b/android/build_libraries_mips.sh
@@ -13,7 +13,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidmips-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS:-$ANDROID_TC/mips}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/mipsel-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_libraries_x86.sh b/android/build_libraries_x86.sh
index 23a4b1f..2a2a295 100755
--- a/android/build_libraries_x86.sh
+++ b/android/build_libraries_x86.sh
@@ -13,7 +13,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidx86-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86:-$ANDROID_TC/x86"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/i686-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_openssl_arm.sh b/android/build_openssl_arm.sh
index 9ad0e7d..9161dd3 100755
--- a/android/build_openssl_arm.sh
+++ b/android/build_openssl_arm.sh
@@ -10,9 +10,10 @@ COMPILEOPENSSL="yes"
 CONFIGURE="yes"
 MAKECLEAN="yes"
 
-OPENSSL="/home/boincadm/src/openssl-1.0.2g" #openSSL sources, requiered by BOINC
+OPENSSL="${OPENSSL_SRC:-$HOME/src/openssl-1.0.2g}" #openSSL sources, requiered by BOINC
 
-export ANDROIDTC="$HOME/androidarm-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM:-$ANDROID_TC/arm}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi"
 export TCSYSROOT="$ANDROIDTC/sysroot"
@@ -22,9 +23,9 @@ export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
 export CC=arm-linux-androideabi-gcc
 export CXX=arm-linux-androideabi-g++
 export LD=arm-linux-androideabi-ld
-export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
-export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
-export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie -march=armv7-a -Wl,--fix-cortex-a8"
 export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
 
 # Prepare android toolchain and environment
diff --git a/android/build_openssl_arm64.sh b/android/build_openssl_arm64.sh
new file mode 100755
index 0000000..7a2c526
--- /dev/null
+++ b/android/build_openssl_arm64.sh
@@ -0,0 +1,50 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile OpenSSL for Android
+
+COMPILEOPENSSL="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+OPENSSL="${OPENSSL_SRC:-$HOME/src/openssl-1.0.2g}" #openSSL sources, requiered by BOINC
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM64:-$ANDROID_TC/arm64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/aarch64-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+export STDCPPTC="$TCINCLUDES/lib/libstdc++.a"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=aarch64-linux-android-gcc
+export CXX=aarch64-linux-android-g++
+export LD=aarch64-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+
+# Prepare android toolchain and environment
+./build_androidtc_arm64.sh
+
+if [ -n "$COMPILEOPENSSL" ]; then
+echo "================building openssl from $OPENSSL============================="
+cd $OPENSSL
+if [ -n "$MAKECLEAN" ]; then
+make clean
+fi
+if [ -n "$CONFIGURE" ]; then
+./Configure linux-generic32 no-shared no-dso -DL_ENDIAN --openssldir="$TCINCLUDES/ssl"
+#override flags in Makefile
+sed -e "s/^CFLAG=.*$/`grep -e \^CFLAG= Makefile` \$(CFLAGS)/g
+s%^INSTALLTOP=.*%INSTALLTOP=$TCINCLUDES%g" Makefile > Makefile.out
+mv Makefile.out Makefile
+fi
+make
+make install_sw
+echo "========================openssl DONE=================================="
+fi
diff --git a/android/build_openssl_mips.sh b/android/build_openssl_mips.sh
index 9eabfda..849f489 100755
--- a/android/build_openssl_mips.sh
+++ b/android/build_openssl_mips.sh
@@ -10,9 +10,10 @@ COMPILEOPENSSL="yes"
 CONFIGURE="yes"
 MAKECLEAN="yes"
 
-OPENSSL="/home/boincadm/src/openssl-1.0.2g" #openSSL sources, requiered by BOINC
+OPENSSL="${OPENSSL_SRC:-$HOME/src/openssl-1.0.2g}" #openSSL sources, requiered by BOINC
 
-export ANDROIDTC="$HOME/androidmips-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS:-$ANDROID_TC/mips}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/mipsel-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_openssl_mips64.sh b/android/build_openssl_mips64.sh
new file mode 100755
index 0000000..0d2ff56
--- /dev/null
+++ b/android/build_openssl_mips64.sh
@@ -0,0 +1,49 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile OpenSSL for Android
+
+COMPILEOPENSSL="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+OPENSSL="${OPENSSL_SRC:-$HOME/src/openssl-1.0.2g}" #openSSL sources, requiered by BOINC
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS64:-$ANDROID_TC/mips64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/mips64el-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=mips64el-linux-android-gcc
+export CXX=mips64el-linux-android-g++
+export LD=mips64el-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib64 -L$TCINCLUDES/lib64 -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+
+# Prepare android toolchain and environment
+./build_androidtc_mips64.sh
+
+if [ -n "$COMPILEOPENSSL" ]; then
+echo "================building openssl from $OPENSSL============================="
+cd $OPENSSL
+if [ -n "$MAKECLEAN" ]; then
+make clean
+fi
+if [ -n "$CONFIGURE" ]; then
+./Configure linux-generic64 no-shared no-dso -DL_ENDIAN --openssldir="$TCINCLUDES/ssl"
+#override flags in Makefile
+sed -e "s/^CFLAG=.*$/`grep -e \^CFLAG= Makefile` \$(CFLAGS)/g
+s%^INSTALLTOP=.*%INSTALLTOP=$TCINCLUDES%g" Makefile > Makefile.out
+mv Makefile.out Makefile
+fi
+make
+make install_sw
+echo "========================openssl DONE=================================="
+fi
diff --git a/android/build_openssl_x86.sh b/android/build_openssl_x86.sh
index eec08ab..fc109db 100755
--- a/android/build_openssl_x86.sh
+++ b/android/build_openssl_x86.sh
@@ -10,9 +10,10 @@ COMPILEOPENSSL="yes"
 CONFIGURE="yes"
 MAKECLEAN="yes"
 
-OPENSSL="/home/boincadm/src/openssl-1.0.2g" #openSSL sources, requiered by BOINC
+OPENSSL="${OPENSSL_SRC:-$HOME/src/openssl-1.0.2g}" #openSSL sources, requiered by BOINC
 
-export ANDROIDTC="$HOME/androidx86-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86:-$ANDROID_TC/x86}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/i686-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_openssl_x86_64.sh b/android/build_openssl_x86_64.sh
new file mode 100755
index 0000000..50c2c4d
--- /dev/null
+++ b/android/build_openssl_x86_64.sh
@@ -0,0 +1,50 @@
+#/bin/sh
+
+#
+# See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient#
+#
+
+# Script to compile OpenSSL for Android
+
+COMPILEOPENSSL="yes"
+CONFIGURE="yes"
+MAKECLEAN="yes"
+
+OPENSSL="${OPENSSL_SRC:-$HOME/src/openssl-1.0.2g}" #openSSL sources, requiered by BOINC
+
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86_64:-$ANDROID_TC/x86_64}"
+export TCBINARIES="$ANDROIDTC/bin"
+export TCINCLUDES="$ANDROIDTC/x86_64-linux-android"
+export TCSYSROOT="$ANDROIDTC/sysroot"
+export STDCPPTC="$TCINCLUDES/lib/libstdc++.a"
+
+export PATH="$PATH:$TCBINARIES:$TCINCLUDES/bin"
+export CC=x86_64-linux-android-gcc
+export CXX=x86_64-linux-android-g++
+export LD=x86_64-linux-android-ld
+export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE"
+export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE"
+export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie"
+export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include"
+
+# Prepare android toolchain and environment
+./build_androidtc_x86_64.sh
+
+if [ -n "$COMPILEOPENSSL" ]; then
+echo "================building openssl from $OPENSSL============================="
+cd $OPENSSL
+if [ -n "$MAKECLEAN" ]; then
+make clean
+fi
+if [ -n "$CONFIGURE" ]; then
+./Configure linux-x86_64 no-shared no-dso -DL_ENDIAN --openssldir="$TCINCLUDES/ssl"
+#override flags in Makefile
+sed -e "s/^CFLAG=.*$/`grep -e \^CFLAG= Makefile` \$(CFLAGS)/g
+s%^INSTALLTOP=.*%INSTALLTOP=$TCINCLUDES%g" Makefile > Makefile.out
+mv Makefile.out Makefile
+fi
+make
+make install_sw
+echo "========================openssl DONE=================================="
+fi
diff --git a/android/build_wrapper_arm.sh b/android/build_wrapper_arm.sh
index bbe267d..9f3d4e6 100755
--- a/android/build_wrapper_arm.sh
+++ b/android/build_wrapper_arm.sh
@@ -13,7 +13,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidarm-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_ARM:-$ANDROID_TC/arm}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/arm-linux-androideabi"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_wrapper_mips.sh b/android/build_wrapper_mips.sh
index 5203e45..43a6c22 100755
--- a/android/build_wrapper_mips.sh
+++ b/android/build_wrapper_mips.sh
@@ -13,7 +13,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidmips-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_MIPS:-$ANDROID_TC/mips}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/mipsel-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/android/build_wrapper_x86.sh b/android/build_wrapper_x86.sh
index dc7f6be..84df833 100755
--- a/android/build_wrapper_x86.sh
+++ b/android/build_wrapper_x86.sh
@@ -13,7 +13,8 @@ MAKECLEAN="yes"
 
 export BOINC=".." #BOINC source code
 
-export ANDROIDTC="$HOME/androidx86-tc"
+export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}"
+export ANDROIDTC="${ANDROID_TC_X86:-$ANDROID_TC/x86}"
 export TCBINARIES="$ANDROIDTC/bin"
 export TCINCLUDES="$ANDROIDTC/i686-linux-android"
 export TCSYSROOT="$ANDROIDTC/sysroot"
diff --git a/api/Makefile.am b/api/Makefile.am
index 2663f9a..383c2af 100644
--- a/api/Makefile.am
+++ b/api/Makefile.am
@@ -43,18 +43,18 @@ endif
 
 lib_LTLIBRARIES = libboinc_api.la
 libboinc_api_la_SOURCES = $(api_files)
-libboinc_api_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
+libboinc_api_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
 
 if BUILD_GRAPHICS_API
 lib_LTLIBRARIES += libboinc_graphics2.la
 libboinc_graphics2_la_SOURCES = $(graphics2_files)
 libboinc_graphics2_la_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/samples/image_libs
-libboinc_graphics2_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION) -ljpeg
+libboinc_graphics2_la_LDFLAGS = -version-number $(LIBBOINC_VERSION) -ljpeg
 endif #BUILD_GRAPHICS_API
 
 lib_LTLIBRARIES += libboinc_opencl.la
 libboinc_opencl_la_SOURCES = $(opencl_files)
-libboinc_opencl_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
+libboinc_opencl_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
 
 if INSTALL_HEADERS
 ## install only headers that are meant for exporting the API !!
diff --git a/api/boinc_api.cpp b/api/boinc_api.cpp
index d7cde44..98c0dbd 100644
--- a/api/boinc_api.cpp
+++ b/api/boinc_api.cpp
@@ -21,14 +21,31 @@
 // 1) Thread structure:
 //  Sequential apps
 //    Unix
-//      getting CPU time and suspend/resume have to be done
-//      in the worker thread, so we use a SIGALRM signal handler.
-//      However, many library functions and system calls
+//      Suspend/resume have to be done in the worker thread,
+//      so we use a 10 Hz SIGALRM signal handler.
+//      Also get CPU time (getrusage()) in the signal handler.
+//      Note: many library functions and system calls
 //      are not "asynch signal safe": see, e.g.
 //      http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html#tag_02_04_03
-//      (e.g. sprintf() in a signal handler hangs Mac OS X)
-//      so we do as little as possible in the signal handler,
+//      (e.g. sprintf() in a signal handler hangs Mac OS X).
+//      Can't do floating-point math because FP regs not saved.
+//      So we do as little as possible in the signal handler,
 //      and do the rest in a separate "timer thread".
+//          - send status and graphics messages to client
+//          - handle messages from client
+//          - set ready-to-checkpoint flag
+//          - check heartbeat
+//          - call app-defined timer callback function
+//    Mac: similar to Linux,
+//          but getrusage() in the worker signal handler causes crashes,
+//          so do it in the timer thread (GETRUSAGE_IN_TIMER_THREAD)
+//          TODO: why not do this on Linux too?
+//    Android: similar to Linux,
+//          but setitimer() causes crashes on some Android versions,
+//          so instead of using a periodic signal,
+//          have the timer thread send SIGALRM signals to the worker thread
+//          every .1 sec.
+//          TODO: for uniformity should we do this on Linux as well?
 //    Win
 //      the timer thread does everything
 //  Multi-thread apps:
@@ -108,10 +125,20 @@
 
 using std::vector;
 
-//#define DEBUG_BOINC_API
+//#define VERBOSE
+    // enable a bunch of fprintfs to stderr
+
+//#define MSGS_FROM_FILE
+    // get messages from a file "msgs.txt" instead of shared mem
+    // write messages to a file "out_msgs.txt" instead of shared mem
+
+//#define ANDROID
+    // use the Android thread/signal logic, which works on Linux too
 
 #ifdef __APPLE__
 #include "mac_backtrace.h"
+#endif
+#if defined(__APPLE__) || defined(ANDROID)
 #define GETRUSAGE_IN_TIMER_THREAD
     // call getrusage() in the timer thread,
     // rather than in the worker thread's signal handler
@@ -205,6 +232,10 @@ static struct rusage worker_thread_ru;
 static BOINC_OPTIONS options;
 volatile BOINC_STATUS boinc_status;
 
+#ifdef MSGS_FROM_FILE
+static FILE* fout;
+#endif
+
 // vars related to intermediate file upload
 struct UPLOAD_FILE_STATUS {
     std::string name;
@@ -219,6 +250,11 @@ static void block_sigalrm();
 static int start_worker_signals();
 
 char* boinc_msg_prefix(char* sbuf, int len) {
+#ifdef ANDROID
+    // the time stuff crashes on Android if in a signal handler
+    //
+    sbuf[0] = 0;
+#else
     char buf[256];
     struct tm tm;
     struct tm *tmp = &tm;
@@ -255,9 +291,12 @@ char* boinc_msg_prefix(char* sbuf, int len) {
         return sbuf;
     }
     sbuf[len-1] = 0;    // just in case
+#endif  // ANDROID
     return sbuf;
 }
 
+#ifndef MSGS_FROM_FILE
+
 static int setup_shared_mem() {
     char buf[256];
     if (standalone) {
@@ -284,7 +323,7 @@ static int setup_shared_mem() {
     }
 #else
     if (aid.shmem_seg_name == -1) {
-        // Version 6 Unix/Linux/Mac client 
+        // Version 6 Unix/Linux/Mac client
         if (attach_shmem_mmap(MMAPPED_FILE_NAME, (void**)&app_client_shm->shm)) {
             delete app_client_shm;
             app_client_shm = NULL;
@@ -301,6 +340,7 @@ static int setup_shared_mem() {
     if (app_client_shm == NULL) return -1;
     return 0;
 }
+#endif      // MSGS_FROM_FILE
 
 // a mutex for data structures shared between time and worker threads
 //
@@ -319,7 +359,7 @@ static inline void release_mutex() {
 pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 static void init_mutex() {}
 static inline void acquire_mutex() {
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     char buf[256];
     fprintf(stderr, "%s acquiring mutex\n",
         boinc_msg_prefix(buf, sizeof(buf))
@@ -328,7 +368,7 @@ static inline void acquire_mutex() {
     pthread_mutex_lock(&mutex);
 }
 static inline void release_mutex() {
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     char buf[256];
     fprintf(stderr, "%s releasing mutex\n",
         boinc_msg_prefix(buf, sizeof(buf))
@@ -397,31 +437,43 @@ static bool update_app_progress(double cpu_t, double cp_cpu_t) {
         sprintf(buf, "<bytes_received>%f</bytes_received>\n", bytes_received);
         strlcat(msg_buf, buf, sizeof(msg_buf));
     }
+#ifdef MSGS_FROM_FILE
+    if (fout) {
+        fputs(msg_buf, fout);
+    }
+    return 0;
+#else
     return app_client_shm->shm->app_status.send_msg(msg_buf);
+#endif
 }
 
+// called in timer thread
+//
 static void handle_heartbeat_msg() {
     char buf[MSG_CHANNEL_SIZE];
     double dtemp;
     bool btemp;
 
-    if (app_client_shm->shm->heartbeat.get_msg(buf)) {
-        boinc_status.network_suspended = false;
-        if (match_tag(buf, "<heartbeat/>")) {
-            heartbeat_giveup_count = interrupt_count + HEARTBEAT_GIVEUP_COUNT;
-        }
-        if (parse_double(buf, "<wss>", dtemp)) {
-            boinc_status.working_set_size = dtemp;
-        }
-        if (parse_double(buf, "<max_wss>", dtemp)) {
-            boinc_status.max_working_set_size = dtemp;
-        }
-        if (parse_bool(buf, "suspend_network", btemp)) {
-            boinc_status.network_suspended = btemp;
-        }
+    if (!app_client_shm->shm->heartbeat.get_msg(buf)) {
+        return;
+    }
+    boinc_status.network_suspended = false;
+    if (match_tag(buf, "<heartbeat/>")) {
+        heartbeat_giveup_count = interrupt_count + HEARTBEAT_GIVEUP_COUNT;
+    }
+    if (parse_double(buf, "<wss>", dtemp)) {
+        boinc_status.working_set_size = dtemp;
+    }
+    if (parse_double(buf, "<max_wss>", dtemp)) {
+        boinc_status.max_working_set_size = dtemp;
+    }
+    if (parse_bool(buf, "suspend_network", btemp)) {
+        boinc_status.network_suspended = btemp;
     }
 }
 
+// called in timer thread
+//
 static bool client_dead() {
     char buf[256];
     bool dead;
@@ -498,11 +550,13 @@ static void parallel_master(int child_pid) {
 #endif
 
 int boinc_init() {
+#ifndef MSGS_FROM_FILE
     int retval;
     if (!diagnostics_is_initialized()) {
         retval = boinc_init_diagnostics(BOINC_DIAG_DEFAULTS);
         if (retval) return retval;
     }
+#endif
     boinc_options_defaults(options);
     return boinc_init_options(&options);
 }
@@ -569,20 +623,29 @@ int boinc_set_min_checkpoint_period(int x) {
 }
 
 int boinc_init_options_general(BOINC_OPTIONS& opt) {
-    int retval;
-    char buf[256];
     options = opt;
 
+#ifndef MSGS_FROM_FILE
+    int retval;
     if (!diagnostics_is_initialized()) {
         retval = boinc_init_diagnostics(BOINC_DIAG_DEFAULTS);
         if (retval) return retval;
     }
+#endif
 
     boinc_status.no_heartbeat = false;
     boinc_status.suspended = false;
     boinc_status.quit_request = false;
     boinc_status.abort_request = false;
 
+#ifdef MSGS_FROM_FILE
+    fout = fopen("out_msgs.txt", "w");
+    if (!fout) {
+        fprintf(stderr, "Can't open out_msgs.txt\n");
+    }
+    options.check_heartbeat = false;
+#else
+    char buf[256];
     if (options.main_program) {
         // make sure we're the only app running in this slot
         //
@@ -612,7 +675,9 @@ int boinc_init_options_general(BOINC_OPTIONS& opt) {
             // If we exit(0), the client will keep restarting us.
             // Instead, tell the client not to restart us for 10 min.
             //
-            boinc_temporary_exit(600, "Waiting to acquire lock");
+            boinc_temporary_exit(600,
+                "Waiting to acquire slot directory lock.  Another instance may be running."
+            );
         }
     }
 
@@ -629,6 +694,7 @@ int boinc_init_options_general(BOINC_OPTIONS& opt) {
             standalone = true;
         }
     }
+#endif      // MSGS_FROM_FILE
 
     // copy the WU CPU time to a separate var,
     // since we may reread the structure again later.
@@ -684,8 +750,8 @@ static void send_trickle_up_msg() {
     }
 }
 
-// NOTE: a non-zero status tells the client that we're exiting with 
-// an "unrecoverable error", which will be reported back to server. 
+// NOTE: a non-zero status tells the client that we're exiting with
+// an "unrecoverable error", which will be reported back to server.
 // A zero exit-status tells the client we've successfully finished the result.
 //
 int boinc_finish_message(int status, const char* msg, bool is_notice) {
@@ -808,8 +874,14 @@ int boinc_is_standalone() {
     return 0;
 }
 
+// called from the timer thread if we need to exit,
+// e.g. quit message from client, or client has gone away
+//
+// On Linux we can't exit directly from the timer thread.
+// Set a flag telling the worker thread to exit.
+//
 static void exit_from_timer_thread(int status) {
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     char buf[256];
     fprintf(stderr, "%s exit_from_timer_thread(%d) called\n",
         boinc_msg_prefix(buf, sizeof(buf)), status
@@ -824,13 +896,25 @@ static void exit_from_timer_thread(int status) {
     //
     boinc_exit(status);
 #else
-    // but on Unix there are synchronization problems;
+    // but on Unix there are synchronization problems if we exit here;
     // set a flag telling the worker thread to exit
     //
     worker_thread_exit_status = status;
     worker_thread_exit_flag = true;
+#ifdef ANDROID
+    // trigger the worker signal handler, which will call boinc_exit()
+    //
+    pthread_kill(worker_thread_handle, SIGALRM);
+
+    // the exit should happen more or less instantly.
+    // But if we're still here after 5 sec, exit directly
+    //
+    sleep(5.0);
+    boinc_exit(status);
+#else
     pthread_exit(NULL);
 #endif
+#endif
 }
 
 // parse the init data file.
@@ -901,10 +985,17 @@ int boinc_report_app_status_aux(
         sprintf(buf, "<bytes_received>%f</bytes_received>\n", _bytes_received);
         safe_strcat(msg_buf, buf);
     }
+#ifdef MSGS_FROM_FILE
+    if (fout) {
+        fputs(msg_buf, fout);
+    }
+    return 0;
+#else
     if (app_client_shm->shm->app_status.send_msg(msg_buf)) {
         return 0;
     }
     return ERR_WRITE;
+#endif
 }
 
 int boinc_report_app_status(
@@ -936,7 +1027,7 @@ int boinc_wu_cpu_time(double& cpu_t) {
 // Can be called from either timer or worker thread.
 //
 static int suspend_activities(bool called_from_worker) {
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     char log_buf[256];
     fprintf(stderr, "%s suspend_activities() called from %s\n",
         boinc_msg_prefix(log_buf, sizeof(log_buf)),
@@ -971,7 +1062,7 @@ static int suspend_activities(bool called_from_worker) {
 }
 
 int resume_activities() {
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     char log_buf[256];
     fprintf(stderr, "%s resume_activities()\n",
         boinc_msg_prefix(log_buf, sizeof(log_buf))
@@ -993,6 +1084,7 @@ int resume_activities() {
     return 0;
 }
 
+#ifndef MSGS_FROM_FILE
 static void handle_upload_file_status() {
     char path[MAXPATHLEN], buf[256], log_name[256], *p, log_buf[256];
     std::string filename;
@@ -1041,6 +1133,7 @@ static void handle_trickle_down_msg() {
         }
     }
 }
+#endif
 
 // This flag is set of we get a suspend request while in a critical section,
 // and options.direct_process_action is set.
@@ -1052,79 +1145,110 @@ static bool suspend_request = false;
 //
 static void handle_process_control_msg() {
     char buf[MSG_CHANNEL_SIZE];
-    if (app_client_shm->shm->process_control_request.get_msg(buf)) {
-        acquire_mutex();
-#ifdef DEBUG_BOINC_API
-        char log_buf[256];
-        fprintf(stderr, "%s got process control msg %s\n",
-            boinc_msg_prefix(log_buf, sizeof(log_buf)), buf
-        );
+#ifdef MSGS_FROM_FILE
+    strcpy(buf, "");
+    if (boinc_file_exists("msgs.txt")) {
+        FILE* f = fopen("msgs.txt", "r");
+        if (!f) {
+            fprintf(stderr, "msgs.txt exists but can't open it\n");
+            return;
+        }
+        fgets(buf, sizeof(buf), f);
+        fclose(f);
+        unlink("msgs.txt");
+    }
+    if (!strlen(buf)) {
+        return;
+    }
+#else
+    if (!app_client_shm->shm->process_control_request.get_msg(buf)) {
+        return;
+    }
 #endif
-        if (match_tag(buf, "<suspend/>")) {
-            BOINCINFO("Received suspend message");
-            if (options.direct_process_action) {
-                if (in_critical_section) {
-                    suspend_request = true;
-                } else {
-                    boinc_status.suspended = true;
-                    suspend_request = false;
-                    suspend_activities(false);
-                }
+
+    // here if we have a message to process
+
+    acquire_mutex();
+#ifdef VERBOSE
+    char log_buf[256];
+    fprintf(stderr, "%s got process control msg %s\n",
+        boinc_msg_prefix(log_buf, sizeof(log_buf)), buf
+    );
+#endif
+    if (match_tag(buf, "<suspend/>")) {
+        BOINCINFO("Received suspend message");
+        if (options.direct_process_action) {
+            if (in_critical_section) {
+                suspend_request = true;
             } else {
                 boinc_status.suspended = true;
+                suspend_request = false;
+                suspend_activities(false);
             }
+        } else {
+            boinc_status.suspended = true;
         }
+    }
 
-        if (match_tag(buf, "<resume/>")) {
-            BOINCINFO("Received resume message");
-            if (options.direct_process_action) {
-                if (boinc_status.suspended) {
-                    resume_activities();
-                } else if (suspend_request) {
-                    suspend_request = false;
-                }
+    if (match_tag(buf, "<resume/>")) {
+        BOINCINFO("Received resume message");
+        if (options.direct_process_action) {
+            if (boinc_status.suspended) {
+                resume_activities();
+            } else if (suspend_request) {
+                suspend_request = false;
             }
-            boinc_status.suspended = false;
         }
+        boinc_status.suspended = false;
+    }
 
-        if (boinc_status.quit_request || match_tag(buf, "<quit/>")) {
-            BOINCINFO("Received quit message");
-            boinc_status.quit_request = true;
-            if (!in_critical_section && options.direct_process_action) {
-                exit_from_timer_thread(0);
-            }
+    if (boinc_status.quit_request || match_tag(buf, "<quit/>")) {
+        BOINCINFO("Received quit message");
+        boinc_status.quit_request = true;
+        if (!in_critical_section && options.direct_process_action) {
+            release_mutex();
+                // we hold mutex, and it's possible that worker
+                // is waiting on it, so release it
+            exit_from_timer_thread(0);
         }
-        if (boinc_status.abort_request || match_tag(buf, "<abort/>")) {
-            BOINCINFO("Received abort message");
-            boinc_status.abort_request = true;
-            if (!in_critical_section && options.direct_process_action) {
-                diagnostics_set_aborted_via_gui();
+    }
+    if (boinc_status.abort_request || match_tag(buf, "<abort/>")) {
+        BOINCINFO("Received abort message");
+        boinc_status.abort_request = true;
+        if (!in_critical_section && options.direct_process_action) {
+            diagnostics_set_aborted_via_gui();
 #if   defined(_WIN32)
-                // Cause a controlled assert and dump the callstacks.
-                DebugBreak();
+            // Cause a controlled assert and dump the callstacks.
+            DebugBreak();
 #elif defined(__APPLE__)
-                PrintBacktrace();
+            PrintBacktrace();
 #endif
-                release_mutex();
-                exit_from_timer_thread(EXIT_ABORTED_BY_CLIENT);
-            }
-        }
-        if (match_tag(buf, "<reread_app_info/>")) {
-            boinc_status.reread_init_data_file = true;
-        }
-        if (match_tag(buf, "<network_available/>")) {
-            have_network = 1;
+            release_mutex();
+            exit_from_timer_thread(EXIT_ABORTED_BY_CLIENT);
         }
-        release_mutex();
     }
+    if (match_tag(buf, "<reread_app_info/>")) {
+        boinc_status.reread_init_data_file = true;
+    }
+    if (match_tag(buf, "<network_available/>")) {
+        have_network = 1;
+    }
+#ifdef ANDROID
+    // Trigger call to worker_signal_handler() in the worker thread
+    //
+    pthread_kill(worker_thread_handle, SIGALRM);
+#endif
+    release_mutex();
 }
 
-// timer handler; runs in the timer thread
+// timer handler; called every 0.1 sec in the timer thread
 //
 static void timer_handler() {
     char buf[512];
-#ifdef DEBUG_BOINC_API
-    fprintf(stderr, "%s timer handler: disabled %s; in critical section %s; finishing %s\n",
+//#ifdef VERBOSE
+#if 0
+    fprintf(stderr,
+        "%s timer handler: disabled %s; in critical section %s; finishing %s\n",
         boinc_msg_prefix(buf, sizeof(buf)),
         boinc_disable_timer_thread?"yes":"no",
         in_critical_section?"yes":"no",
@@ -1149,6 +1273,9 @@ static void timer_handler() {
     }
     // handle messages from the client
     //
+#ifdef MSGS_FROM_FILE
+    handle_process_control_msg();
+#else
     if (app_client_shm) {
         if (options.check_heartbeat) {
             handle_heartbeat_msg();
@@ -1160,9 +1287,10 @@ static void timer_handler() {
             handle_process_control_msg();
         }
     }
+#endif
     if (interrupt_count % TIMERS_PER_SEC) return;
 
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     fprintf(stderr, "%s 1 sec elapsed - doing slow actions\n", boinc_msg_prefix(buf, sizeof(buf)));
 #endif
 
@@ -1199,7 +1327,7 @@ static void timer_handler() {
         last_wu_cpu_time = cur_cpu + initial_wu_cpu_time;
         update_app_progress(last_wu_cpu_time, last_checkpoint_cpu_time);
     }
-    
+
     if (have_new_trickle_up || have_new_upload_file) {
         send_trickle_up_msg();
     }
@@ -1230,7 +1358,6 @@ static void timer_handler() {
 #ifdef _WIN32
 
 DWORD WINAPI timer_thread(void *) {
-     
     while (1) {
         Sleep((int)(TIMER_PERIOD*1000));
         timer_handler();
@@ -1260,24 +1387,32 @@ static void* timer_thread(void*) {
 // It must call only signal-safe functions, and must not do FP math
 //
 static void worker_signal_handler(int) {
+#ifdef ANDROID
+    // per-thread signal masking doesn't work on pre-4.1 Android.
+    // If we're handling this signal in the timer thread,
+    // send signal explicitly to worker thread.
+    //
+    if (pthread_self() != worker_thread_handle) {
+#ifdef VERBOSE
+        fprintf(stderr, "worker signal handler: called in timer thread; forwarding to worker\n");
+#endif
+        pthread_kill(worker_thread_handle, SIGALRM);
+        return;
+    }
+#endif
 #ifndef GETRUSAGE_IN_TIMER_THREAD
     getrusage(RUSAGE_SELF, &worker_thread_ru);
 #endif
     if (worker_thread_exit_flag) {
+#ifdef VERBOSE
+        fprintf(stderr, "worker signal handler: exiting\n");
+#endif
         boinc_exit(worker_thread_exit_status);
     }
     if (options.direct_process_action) {
         while (boinc_status.suspended && in_critical_section==0) {
-#ifdef ANDROID
-            // per-thread signal masking doesn't work
-            // on old (pre-4.1) versions of Android.
-            // If we're handling this signal in the timer thread,
-            // send signal explicitly to worker thread.
-            //
-            if (pthread_self() == timer_thread_handle) {
-                pthread_kill(worker_thread_handle, SIGALRM);
-                return;
-            }
+#ifdef VERBOSE
+            fprintf(stderr, "worker signal handler: sleeping\n");
 #endif
             sleep(1);   // don't use boinc_sleep() because it does FP math
         }
@@ -1315,7 +1450,7 @@ int start_timer_thread() {
         );
         return errno;
     }
-    
+
     if (!options.normal_thread_priority) {
         // lower our (worker thread) priority
         //
@@ -1339,28 +1474,35 @@ int start_timer_thread() {
 }
 
 #ifndef _WIN32
-// set up a periodic SIGALRM, to be handled by the worker thread
+
+// called in the worker thread.
+// set up a handler for SIGALRM.
+// If Android, we'll get signals from the time thread.
+// otherwise, set an interval timer to deliver signals
 //
 static int start_worker_signals() {
     int retval;
     struct sigaction sa;
-    itimerval value;
+    memset(&sa, 0, sizeof(sa));
     sa.sa_handler = worker_signal_handler;
     sa.sa_flags = SA_RESTART;
     sigemptyset(&sa.sa_mask);
     retval = sigaction(SIGALRM, &sa, NULL);
     if (retval) {
-        perror("boinc start_timer_thread() sigaction");
+        perror("boinc start_worker_signals(): sigaction failed");
         return retval;
     }
+#ifndef ANDROID
+    itimerval value;
     value.it_value.tv_sec = 0;
     value.it_value.tv_usec = (int)(TIMER_PERIOD*1e6);
     value.it_interval = value.it_value;
     retval = setitimer(ITIMER_REAL, &value, NULL);
     if (retval) {
-        perror("boinc start_timer_thread() setitimer");
+        perror("boinc start_worker_thread(): setitimer failed");
         return retval;
     }
+#endif
     return 0;
 }
 #endif
@@ -1400,7 +1542,7 @@ int boinc_checkpoint_completed() {
 }
 
 void boinc_begin_critical_section() {
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     char buf[256];
     fprintf(stderr,
         "%s begin_critical_section\n",
@@ -1411,7 +1553,7 @@ void boinc_begin_critical_section() {
 }
 
 void boinc_end_critical_section() {
-#ifdef DEBUG_BOINC_API
+#ifdef VERBOSE
     char buf[256];
     fprintf(stderr,
         "%s end_critical_section\n",
diff --git a/api/boinc_api.h b/api/boinc_api.h
index 003ee5b..9926b14 100644
--- a/api/boinc_api.h
+++ b/api/boinc_api.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINC_API_
-#define _BOINC_API_
+#ifndef BOINC_BOINC_API_H
+#define BOINC_BOINC_API_H
 
 #include <stddef.h>     // for NULL
 
diff --git a/api/boinc_gl.h b/api/boinc_gl.h
index 20997e3..639d5b6 100644
--- a/api/boinc_gl.h
+++ b/api/boinc_gl.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef H_BOINC_GL
-#define H_BOINC_GL
+#ifndef BOINC_BOINC_GL_H
+#define BOINC_BOINC_GL_H
 
 #if defined(_WIN32)
 #  include <GL/gl.h>
diff --git a/api/boinc_glut.h b/api/boinc_glut.h
index 31f7bb4..fa8d57a 100644
--- a/api/boinc_glut.h
+++ b/api/boinc_glut.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef H_BOINC_GLUT
-#define H_BOINC_GLUT
+#ifndef BOINC_BOINC_GLUT_H
+#define BOINC_BOINC_GLUT_H
 
 
 #ifdef _WIN32
diff --git a/api/graphics2.h b/api/graphics2.h
index 1f396ce..6debe24 100644
--- a/api/graphics2.h
+++ b/api/graphics2.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _GRAPHICS2_H_
-#define _GRAPHICS2_H_
+#ifndef BOINC_GRAPHICS2_H
+#define BOINC_GRAPHICS2_H
 
 struct BOINC_STATUS;
 
diff --git a/api/graphics_data.h b/api/graphics_data.h
index 6379637..a781b0d 100644
--- a/api/graphics_data.h
+++ b/api/graphics_data.h
@@ -45,8 +45,8 @@
 // There are two buffers, each with a "state" (see below).
 // In a given state, only one thread can access the data or change the state.
 //
-#ifndef GRAPHICS_DATA_H
-#define GRAPHICS_DATA_H
+#ifndef BOINC_GRAPHICS_DATA_H
+#define BOINC_GRAPHICS_DATA_H
 
 #define GB_STATE_IDLE       0
 #define GB_STATE_GENERATING 1
diff --git a/api/gutil.h b/api/gutil.h
index f21ef65..5ebdd96 100644
--- a/api/gutil.h
+++ b/api/gutil.h
@@ -19,8 +19,8 @@
 // used in Astropulse and SETI at home
 // See also graphics_data.C,h
 
-#ifndef GUTIL_H
-#define GUTIL_H
+#ifndef BOINC_GUTIL_H
+#define BOINC_GUTIL_H
 
 #include <cstdio>
 #include <cstdlib>
diff --git a/api/mac_icon.cpp b/api/mac_icon.cpp
index fe8aaa8..f8c26c6 100644
--- a/api/mac_icon.cpp
+++ b/api/mac_icon.cpp
@@ -15,6 +15,19 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// THIS CODE IS OBSOLETE! A better way to add an icon to science applications
+// (or any Mac executable, including command-line tools) is:
+// [1] Select the application in the Finder
+// [2] Get Info (command-I) for the selected application
+// [3] Click on the file's current icon in the top left corner of the Get Info window
+// [4] Paste (command-v) the desired icon.
+//
+// To copy an icon from a different file:
+// [a] Get Info for the source file
+// [b] Click on the file's  icon in the top left corner of the Get Info window
+// [c] Copy (command-c) the icon.
+
+
 /* Mac-specific code to display custom icon for science application (optional)
    adapted from code written by Bernd Machenschalk.  Used with permission of the
    Einstein at home project.
diff --git a/api/make_app_icon_h.cpp b/api/make_app_icon_h.cpp
index 8c064a7..cb91968 100644
--- a/api/make_app_icon_h.cpp
+++ b/api/make_app_icon_h.cpp
@@ -19,6 +19,18 @@
 // Utility to convert *.icns file into app_icon.h file for use 
 // with api/setMacIcon() in science applications.
 
+// THIS CODE IS OBSOLETE! A better way to add an icon to science applications
+// (or any Mac executable, including command-line tools) is:
+// [1] Select the application in the Finder
+// [2] Get Info (command-I) for the selected application
+// [3] Click on the file's current icon in the top left corner of the Get Info window
+// [4] Paste (command-v) the desired icon.
+//
+// To copy an icon from a different file:
+// [a] Get Info for the source file
+// [b] Click on the file's  icon in the top left corner of the Get Info window
+// [c] Copy (command-c) the icon.
+
 #include "config.h"
 #include <cstdio>
 
diff --git a/api/reduce.h b/api/reduce.h
index 0e04ea6..f75403a 100644
--- a/api/reduce.h
+++ b/api/reduce.h
@@ -36,8 +36,8 @@
 //     If reduced in one dimension, draw vertical rectangles.
 //     Otherwise draw quadrilaterals.
 
-#ifndef REDUCE_H
-#define REDUCE_H
+#ifndef BOINC_REDUCE_H
+#define BOINC_REDUCE_H
 
 #define MAX_DATA    65536
 #define MAX_DIMX    1024
diff --git a/api/reduce_lib.cpp b/api/reduce_lib.cpp
index 3f2da86..efb84bf 100644
--- a/api/reduce_lib.cpp
+++ b/api/reduce_lib.cpp
@@ -146,12 +146,11 @@ void REDUCED_ARRAY_RENDER::draw_row_rect_x(int row)  {
 			glColor4f(color.r, color.g, color.b, alpha);
 
 			//front
-
 			glVertex3f(x0, y0, z0);
 			glVertex3f(x1, y0, z0);
 			glVertex3f(x1, y1, z0);
 			glVertex3f(x0, y1, z0);
-	/*
+	
 			//back
 			glVertex3f(x0, y0, z1);
 			glVertex3f(x1, y0, z1);
@@ -175,12 +174,12 @@ void REDUCED_ARRAY_RENDER::draw_row_rect_x(int row)  {
 			glVertex3f(x0, y1, z1);
 			glVertex3f(x1, y1, z1);
 			glVertex3f(x1, y1, z0);
-	*/
+
 		}
 		glEnd();
 
 
-#if 0
+
 		//draw lines
 		mode_unshaded();
 		glLineWidth(.5f);
@@ -192,7 +191,7 @@ void REDUCED_ARRAY_RENDER::draw_row_rect_x(int row)  {
 			float h = (row0[i]-rdata_min)/(rdata_max-rdata_min);
 
 			y1 = draw_pos[1] + draw_size[1]*h;
-
+#ifdef DRAW_ROW_WITH_LINES
 	//front
 
 			glVertex3f(x0, y0, z0);
@@ -242,8 +241,9 @@ void REDUCED_ARRAY_RENDER::draw_row_rect_x(int row)  {
 
 			glVertex3f(x1, y0, z1);
 			glVertex3f(x1, y0, z0);
-		}
 #endif
+		}
+
 		glEnd();
 	    break;
 	case GRAPH_STYLE_SURFACE:
diff --git a/build_pos b/build_pos
index f8c6247..3b46197 100755
--- a/build_pos
+++ b/build_pos
@@ -6,7 +6,7 @@
 // if they differ, send email telling us to validate and commit
 // the new versions.
 
-$emails = "davea at ssl.berkeley.edu rwalton at ssl.berkeley.edu";
+$emails = "davea at ssl.berkeley.edu";
 $tdir = "locale/templates";
 
 system("cd doc; ./build_po.php");
@@ -31,7 +31,4 @@ system("tools/compare_pot mac_installer/BOINC-Setup.pot $tdir/BOINC-Setup.pot $e
 //
 system("cd doc; ./update_translations.php");
 
-// copy generic web files to html/translations
-//
-system("cd locale; ./copy_files.php");
 ?>
diff --git a/client/acct_mgr.cpp b/client/acct_mgr.cpp
index c7db2d8..1064b75 100644
--- a/client/acct_mgr.cpp
+++ b/client/acct_mgr.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2011 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -15,6 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// code for communicating with account managers (AMs)
+
 #include "cpp.h"
 
 #ifdef _WIN32
@@ -41,6 +43,7 @@
 #include "file_names.h"
 #include "filesys.h"
 #include "gui_http.h"
+#include "log_flags.h"
 #include "project.h"
 
 #include "acct_mgr.h"
@@ -51,7 +54,7 @@ static const char *run_mode_name[] = {"", "always", "auto", "never"};
 // if URL is null, detach from current account manager
 //
 int ACCT_MGR_OP::do_rpc(
-    std::string _url, std::string name, std::string password_hash,
+    string _url, string name, string password_hash,
     bool _via_gui
 ) {
     int retval;
@@ -62,6 +65,7 @@ int ACCT_MGR_OP::do_rpc(
     strlcpy(url, _url.c_str(), sizeof(url));
 
     error_num = ERR_IN_PROGRESS;
+    error_str = "";
     via_gui = _via_gui;
     if (global_prefs_xml) {
         free(global_prefs_xml);
@@ -153,7 +157,6 @@ int ACCT_MGR_OP::do_rpc(
             "      <url>%s</url>\n"
             "      <project_name>%s</project_name>\n"
             "      <suspended_via_gui>%d</suspended_via_gui>\n"
-            "      <account_key>%s</account_key>\n"
             "      <hostid>%d</hostid>\n"
             "      <not_started_dur>%f</not_started_dur>\n"
             "      <in_progress_dur>%f</in_progress_dur>\n"
@@ -162,11 +165,15 @@ int ACCT_MGR_OP::do_rpc(
             "      <detach_when_done>%d</detach_when_done>\n"
             "      <ended>%d</ended>\n"
             "      <resource_share>%f</resource_share>\n"
-            "   </project>\n",
+            "      <cpu_ec>%f</cpu_ec>\n"
+            "      <cpu_time>%f</cpu_time>\n"
+            "      <gpu_ec>%f</gpu_ec>\n"
+            "      <gpu_time>%f</gpu_time>\n"
+            "      <njobs_success>%d</njobs_success>\n"
+            "      <njobs_error>%d</njobs_error>\n",
             p->master_url,
             p->project_name,
             p->suspended_via_gui?1:0,
-            p->authenticator,
             p->hostid,
             not_started_dur,
             in_progress_dur,
@@ -174,7 +181,22 @@ int ACCT_MGR_OP::do_rpc(
             p->dont_request_more_work?1:0,
             p->detach_when_done?1:0,
             p->ended?1:0,
-            p->resource_share
+            p->resource_share,
+            p->cpu_ec,
+            p->cpu_time,
+            p->gpu_ec,
+            p->gpu_time,
+            p->njobs_success,
+            p->njobs_error
+        );
+        if (p->attached_via_acct_mgr) {
+            fprintf(f,
+                "      <account_key>%s</account_key>\n",
+                p->authenticator
+            );
+        }
+        fprintf(f,
+            "   </project>\n"
         );
     }
     MIOFILE mf;
@@ -311,6 +333,12 @@ int AM_ACCOUNT::parse(XML_PARSER& xp) {
             abort_not_started.set(btemp);
             continue;
         }
+        if (xp.parse_string("sci_keywords", sci_keywords)) {
+            continue;
+        }
+        if (xp.parse_string("loc_keywords", loc_keywords)) {
+            continue;
+        }
         if (log_flags.unparsed_xml) {
             msg_printf(NULL, MSG_INFO,
                 "[unparsed_xml] AM_ACCOUNT: unrecognized %s", xp.parsed_tag
@@ -353,6 +381,7 @@ int ACCT_MGR_OP::parse(FILE* f) {
         if (xp.parse_str("name", ami.project_name, 256)) continue;
         if (xp.parse_int("error_num", error_num)) continue;
         if (xp.parse_string("error", error_str)) continue;
+        if (xp.parse_string("error_msg", error_str)) continue;
         if (xp.parse_double("repeat_sec", repeat_sec)) continue;
         if (xp.parse_string("message", message)) {
             msg_printf(NULL, MSG_INFO, "Account manager: %s", message.c_str());
@@ -513,12 +542,20 @@ void ACCT_MGR_OP::handle_reply(int http_op_retval) {
     }
 
     if (sig_ok) {
+        // if the AM RPC had an error, some items may be missing; don't copy
+        //
+        if (strlen(ami.project_name)) {
+            safe_strcpy(gstate.acct_mgr_info.project_name, ami.project_name);
+        }
+        if (strlen(ami.signing_key)) {
+            safe_strcpy(gstate.acct_mgr_info.signing_key, ami.signing_key);
+        }
+        if (strlen(ami.opaque)) {
+            safe_strcpy(gstate.acct_mgr_info.opaque, ami.opaque);
+        }
         safe_strcpy(gstate.acct_mgr_info.master_url, ami.master_url);
-        safe_strcpy(gstate.acct_mgr_info.project_name, ami.project_name);
-        safe_strcpy(gstate.acct_mgr_info.signing_key, ami.signing_key);
         safe_strcpy(gstate.acct_mgr_info.login_name, ami.login_name);
         safe_strcpy(gstate.acct_mgr_info.password_hash, ami.password_hash);
-        safe_strcpy(gstate.acct_mgr_info.opaque, ami.opaque);
         gstate.acct_mgr_info.no_project_notices = ami.no_project_notices;
 
         // process projects
@@ -618,8 +655,12 @@ void ACCT_MGR_OP::handle_reply(int http_op_retval) {
                     for (int j=0; j<MAX_RSC; j++) {
                         pp->no_rsc_ams[j] = acct.no_rsc[j];
                     }
+                    pp->sci_keywords = acct.sci_keywords;
+                    pp->loc_keywords = acct.loc_keywords;
                 }
             } else {
+                // here we don't already have the project.
+                //
                 if (acct.authenticator.empty()) {
                     msg_printf(NULL, MSG_INFO,
                         "Account manager reply missing authenticator for %s",
@@ -628,7 +669,6 @@ void ACCT_MGR_OP::handle_reply(int http_op_retval) {
                     continue;
                 }
 
-                // here we don't already have the project.
                 // Attach to it, unless the acct mgr is telling us to detach
                 //
                 if (!acct.detach && !(acct.detach_when_done.present && acct.detach_when_done.value)) {
@@ -705,55 +745,79 @@ void ACCT_MGR_OP::handle_reply(int http_op_retval) {
 #endif
 }
 
+// write AM info to files.
+// This is done after each AM RPC,
+// perhaps overkill since the info doesn't generally change.
+// But doesn't matter since infrequent.
+//
 int ACCT_MGR_INFO::write_info() {
-    FILE* p;
+    FILE* f;
     if (strlen(master_url)) {
-        p = fopen(ACCT_MGR_URL_FILENAME, "w");
-        if (p) {
-            fprintf(p,
-                "<acct_mgr>\n"
-                "    <name>%s</name>\n"
-                "    <url>%s</url>\n",
-                project_name,
-                master_url
+        f = fopen(ACCT_MGR_URL_FILENAME, "w");
+        if (!f) {
+            msg_printf(NULL, MSG_USER_ALERT,
+                "Can't write to %s; check file and directory permissions",
+                ACCT_MGR_URL_FILENAME
             );
-            if (send_gui_rpc_info) fprintf(p,"    <send_gui_rpc_info/>\n");
-            if (strlen(signing_key)) {
-                fprintf(p,
-                    "    <signing_key>\n%s\n</signing_key>\n",
-                    signing_key
-                );
-            }
-            fprintf(p,
-                "</acct_mgr>\n"
+            return ERR_FOPEN;
+        }
+        fprintf(f,
+            "<acct_mgr>\n"
+            "    <name>%s</name>\n"
+            "    <url>%s</url>\n",
+            project_name,
+            master_url
+        );
+        if (send_gui_rpc_info) {
+            fprintf(f, "    <send_gui_rpc_info/>\n");
+        }
+        if (strlen(signing_key)) {
+            fprintf(f,
+                "    <signing_key>\n%s\n</signing_key>\n",
+                signing_key
             );
-            fclose(p);
         }
+        fprintf(f,
+            "</acct_mgr>\n"
+        );
+        fclose(f);
     }
 
     if (strlen(login_name)) {
-        p = fopen(ACCT_MGR_LOGIN_FILENAME, "w");
-        if (p) {
-            fprintf(
-                p,
-                "<acct_mgr_login>\n"
-                "    <login>%s</login>\n"
-                "    <password_hash>%s</password_hash>\n"
-                "    <previous_host_cpid>%s</previous_host_cpid>\n"
-                "    <next_rpc_time>%f</next_rpc_time>\n"
-                "    <opaque>\n%s\n"
-                "    </opaque>\n"
-                "    <no_project_notices>%d</no_project_notices>\n"
-                "</acct_mgr_login>\n",
-                login_name,
-                password_hash,
-                previous_host_cpid,
-                next_rpc_time,
-                opaque,
-                no_project_notices?1:0
+        f = fopen(ACCT_MGR_LOGIN_FILENAME, "w");
+        if (!f) {
+            msg_printf(NULL, MSG_USER_ALERT,
+                "Can't write to %s; check file and directory permissions",
+                ACCT_MGR_LOGIN_FILENAME
+            );
+            return ERR_FOPEN;
+        }
+        fprintf(f,
+            "<acct_mgr_login>\n"
+            "    <login>%s</login>\n"
+            "    <password_hash>%s</password_hash>\n"
+            "    <previous_host_cpid>%s</previous_host_cpid>\n"
+            "    <next_rpc_time>%f</next_rpc_time>\n"
+            "    <opaque>\n%s\n"
+            "    </opaque>\n"
+            "    <no_project_notices>%d</no_project_notices>\n",
+            login_name,
+            password_hash,
+            previous_host_cpid,
+            next_rpc_time,
+            opaque,
+            no_project_notices?1:0
+        );
+        if (!sched_req_opaque.empty()) {
+            fprintf(f,
+                "<sched_req_opaque>\n<![CDATA[\n%s\n]]>\n</sched_req_opaque>\n",
+                sched_req_opaque.c_str()
             );
-            fclose(p);
         }
+        fprintf(f,
+            "</acct_mgr_login>\n"
+        );
+        fclose(f);
     }
     return 0;
 }
@@ -762,10 +826,12 @@ void ACCT_MGR_INFO::clear() {
     safe_strcpy(project_name, "");
     safe_strcpy(master_url, "");
     safe_strcpy(login_name, "");
+    safe_strcpy(user_name, "");
     safe_strcpy(password_hash, "");
     safe_strcpy(signing_key, "");
     safe_strcpy(previous_host_cpid, "");
     safe_strcpy(opaque, "");
+    sched_req_opaque.clear();
     safe_strcpy(cookie_failure_url, "");
     next_rpc_time = 0;
     nfailures = 0;
@@ -786,7 +852,9 @@ int ACCT_MGR_INFO::parse_login_file(FILE* p) {
     mf.init_file(p);
     XML_PARSER xp(&mf);
     if (!xp.parse_start("acct_mgr_login")) {
-        //
+        msg_printf(NULL, MSG_INTERNAL_ERROR,
+            "missing start tag in account manager login file"
+        );
     }
     while (!xp.get_tag()) {
         if (!xp.is_tag) {
@@ -807,6 +875,19 @@ int ACCT_MGR_INFO::parse_login_file(FILE* p) {
             }
             continue;
         }
+        else if (xp.match_tag("sched_req_opaque")) {
+            char buf[65536];
+            retval = xp.element_contents(
+                "</sched_req_opaque>", buf, sizeof(buf)
+            );
+            if (retval) {
+                msg_printf(NULL, MSG_INFO,
+                    "error parsing <sched_req_opaque> in acct_mgr_login.xml"
+                );
+            }
+            sched_req_opaque = string(buf);
+            continue;
+        }
         else if (xp.parse_bool("no_project_notices", no_project_notices)) continue;
         if (log_flags.unparsed_xml) {
             msg_printf(NULL, MSG_INFO,
@@ -821,6 +902,9 @@ int ACCT_MGR_INFO::parse_login_file(FILE* p) {
     return 0;
 }
 
+// called at client startup.
+// If currently using an AM, read its URL and login files
+//
 int ACCT_MGR_INFO::init() {
     MIOFILE mf;
     FILE*   p;
@@ -839,7 +923,7 @@ int ACCT_MGR_INFO::init() {
     }
     mf.init_file(p);
     XML_PARSER xp(&mf);
-    if (!xp.parse_start("acct_mgr_login")) {
+    if (!xp.parse_start("acct_mgr")) {
         //
     }
     while (!xp.get_tag()) {
@@ -877,6 +961,12 @@ int ACCT_MGR_INFO::init() {
         parse_login_file(p);
         fclose(p);
     }
+    if (using_am()) {
+        msg_printf(NULL, MSG_INFO, "Using account manager %s", project_name);
+        if (strlen(user_name)) {
+            msg_printf(NULL, MSG_INFO, "Account manager login: %s", user_name);
+        }
+    }
     return 0;
 }
 
diff --git a/client/acct_mgr.h b/client/acct_mgr.h
index f1a0fef..a66d910 100644
--- a/client/acct_mgr.h
+++ b/client/acct_mgr.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _ACCT_MGR_
-#define _ACCT_MGR_
+#ifndef BOINC_ACCT_MGR_H
+#define BOINC_ACCT_MGR_H
 
 #include <string>
 #include <vector>
@@ -33,11 +33,14 @@ struct ACCT_MGR_INFO : PROJ_AM {
     // the following used to be std::string but there
     // were mysterious bugs where setting it to "" didn't work
     //
-    char login_name[256];
+    char login_name[256];   // unique name (could be email addr)
+    char user_name[256];    // non-unique name
     char password_hash[256];
         // md5 of password.lowercase(login_name)
     char opaque[256];
-        // whatever the AMS sends us
+        // opaque data, from the AM, to be included in future AM requests
+    std::string sched_req_opaque;
+        // opaque data to be sent in scheduler requests, in CDATA
     char signing_key[MAX_KEY_LEN];
     char previous_host_cpid[64];
         // the host CPID sent in last RPC
@@ -57,6 +60,7 @@ struct ACCT_MGR_INFO : PROJ_AM {
         // link to a website to go to so the user can find
         // what login name and password they have been assigned
     bool password_error;
+    bool send_rec;
 
     inline bool using_am() {
         if (!strlen(master_url)) return false;
@@ -64,6 +68,12 @@ struct ACCT_MGR_INFO : PROJ_AM {
         if (!strlen(password_hash)) return false;
         return true;
     }
+    inline bool same_am(const char* mu, const char* ln, const char* ph) {
+        if (strcmp(mu, master_url)) return false;
+        if (strcmp(ln, login_name)) return false;
+        if (strcmp(ph, password_hash)) return false;
+        return true;
+    }
     inline bool get_no_project_notices() {
         if (!using_am()) return false;
         return no_project_notices;
@@ -98,6 +108,8 @@ struct OPTIONAL_DOUBLE {
 struct AM_ACCOUNT {
     std::string url;
     std::string authenticator;
+    std::string sci_keywords;
+    std::string loc_keywords;
     char url_signature[MAX_SIGNATURE_LEN];
     bool detach;
     bool update;
@@ -112,14 +124,14 @@ struct AM_ACCOUNT {
     void handle_no_rsc(const char*, bool);
     int parse(XML_PARSER&);
     AM_ACCOUNT() {
-      safe_strcpy(url_signature, "");
-      detach = false;
-      update = false;
-      dont_request_more_work.init();
-      detach_when_done.init();
-      resource_share.init();
-      suspend.init();
-      abort_not_started.init();
+        safe_strcpy(url_signature, "");
+        detach = false;
+        update = false;
+        dont_request_more_work.init();
+        detach_when_done.init();
+        resource_share.init();
+        suspend.init();
+        abort_not_started.init();
     }
     ~AM_ACCOUNT() {}
 };
diff --git a/client/acct_setup.h b/client/acct_setup.h
index 3c37a9f..f85f54d 100644
--- a/client/acct_setup.h
+++ b/client/acct_setup.h
@@ -15,13 +15,12 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _ACCT_SETUP_H_
-#define _ACCT_SETUP_H_
+#ifndef BOINC_ACCT_SETUP_H
+#define BOINC_ACCT_SETUP_H
 
 #include "gui_http.h"
 #include "error_numbers.h"
 
-
 struct ACCOUNT_IN {
     std::string url;
     std::string email_addr;
diff --git a/client/app.cpp b/client/app.cpp
index 47b36b1..93d3742 100644
--- a/client/app.cpp
+++ b/client/app.cpp
@@ -985,7 +985,7 @@ void MSG_QUEUE::msg_queue_poll(MSG_CHANNEL& channel) {
     for (unsigned int i=0; i<msgs.size(); i++) {
         if (log_flags.app_msg_send) {
             msg_printf(NULL, MSG_INFO,
-                "[app_msg_send] poll: deferred: %s", msgs[0].c_str()
+                "[app_msg_send] poll: deferred: %s", msgs[i].c_str()
             );
         }
     }
@@ -1177,6 +1177,7 @@ void* throttler(void*) {
         double on, off, on_frac = gstate.global_prefs.cpu_usage_limit / 100;
 #if 0
 // sub-second CPU throttling
+// DOESN'T WORK BECAUSE OF 1-SEC API POLL
 #define THROTTLE_PERIOD 1.
         on = THROTTLE_PERIOD * on_frac;
         off = THROTTLE_PERIOD - on;
diff --git a/client/app.h b/client/app.h
index 2b5012c..be231cf 100644
--- a/client/app.h
+++ b/client/app.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _APP_H_
-#define _APP_H_
+#ifndef BOINC_APP_H
+#define BOINC_APP_H
 
 #ifndef _WIN32
 #include <cstdio>
@@ -137,7 +137,12 @@ struct ACTIVE_TASK {
     bool have_trickle_down;
     bool send_upload_file_status;
     bool too_large;
-        // working set too large to run now
+        // Working set too large to run now; waiting for RAM
+        // This is a slight misnomer.
+        // It doesn't mean that this job itself is too large;
+        // rather, it means that the last time we did CPU scheduling,
+        // the set of jobs we tried to run was too big,
+        // and this one came after we ran out of mem.
     bool needs_shmem;               // waiting for a free shared memory segment
     int want_network;
         // This task wants to do network comm (for F at h)
diff --git a/client/app_config.cpp b/client/app_config.cpp
index 92823aa..e84028b 100644
--- a/client/app_config.cpp
+++ b/client/app_config.cpp
@@ -23,174 +23,9 @@
 #include "project.h"
 #include "result.h"
 
+#include "cc_config.h"
 #include "app_config.h"
 
-bool have_max_concurrent = false;
-
-int APP_CONFIG::parse_gpu_versions(XML_PARSER& xp, PROJECT* p) {
-    double x;
-    while (!xp.get_tag()) {
-        if (xp.match_tag("/gpu_versions")) return 0;
-        else if (xp.parse_double("gpu_usage", x)) {
-            if (x <= 0) {
-                msg_printf(p, MSG_USER_ALERT,
-                    "gpu_usage must be positive in app_config.xml"
-                );
-            } else {
-                gpu_gpu_usage = x;
-            }
-            continue;
-        }
-        else if (xp.parse_double("cpu_usage", x)) {
-            if (x < 0) {
-                msg_printf(p, MSG_USER_ALERT,
-                    "cpu_usage must be non-negative in app_config.xml"
-                );
-            } else {
-                gpu_cpu_usage = x;
-            }
-            continue;
-        }
-        if (log_flags.unparsed_xml) {
-            msg_printf(p, MSG_INFO,
-                "Unparsed line in app_config.xml: %s",
-                xp.parsed_tag
-            );
-        }
-    }
-    msg_printf_notice(p, false, NULL,
-        "Missing </gpu_versions> in app_config.xml"
-    );
-    return ERR_XML_PARSE;
-}
-
-// In these parsing functions, if there's an error you must
-// - generate a notice containing the string "app_config.xml"
-// - return an error code
-//
-int APP_CONFIG::parse(XML_PARSER& xp, PROJECT* p) {
-    memset(this, 0, sizeof(APP_CONFIG));
-
-    while (!xp.get_tag()) {
-        if (xp.match_tag("/app")) return 0;
-        if (xp.parse_str("name", name, 256)) continue;
-        if (xp.parse_int("max_concurrent", max_concurrent)) {
-            if (max_concurrent) have_max_concurrent = true;
-            continue;
-        }
-        if (xp.match_tag("gpu_versions")) {
-            int retval = parse_gpu_versions(xp, p);
-            if (retval) return retval;
-            continue;
-        }
-        if (xp.parse_bool("fraction_done_exact", fraction_done_exact)) {
-            continue;
-        }
-
-        // unparsed XML not considered an error; maybe it should be?
-        //
-        if (log_flags.unparsed_xml) {
-            msg_printf(p, MSG_INFO,
-                "Unparsed line in app_config.xml: %s",
-                xp.parsed_tag
-            );
-        }
-        xp.skip_unexpected(log_flags.unparsed_xml, "APP_CONFIG::parse");
-    }
-    msg_printf_notice(p, false, NULL,
-        "Missing </app> in app_config.xml"
-    );
-    return ERR_XML_PARSE;
-}
-
-int APP_VERSION_CONFIG::parse(XML_PARSER& xp, PROJECT* p) {
-    memset(this, 0, sizeof(APP_VERSION_CONFIG));
-
-    while (!xp.get_tag()) {
-        if (!xp.is_tag) {
-            msg_printf_notice(p, false, NULL,
-                "unexpected text '%s' in app_config.xml", xp.parsed_tag
-            );
-            return ERR_XML_PARSE;
-        }
-        if (xp.match_tag("/app_version")) return 0;
-        if (xp.parse_str("app_name", app_name, 256)) continue;
-        if (xp.parse_str("plan_class", plan_class, 256)) continue;
-        if (xp.parse_str("cmdline", cmdline, 256)) continue;
-        if (xp.parse_double("avg_ncpus", avg_ncpus)) continue;
-        if (xp.parse_double("ngpus", ngpus)) continue;
-        if (log_flags.unparsed_xml) {
-            msg_printf(p, MSG_INFO,
-                "Unparsed line in app_config.xml: %s",
-                xp.parsed_tag
-            );
-        }
-        xp.skip_unexpected(log_flags.unparsed_xml, "APP_VERSION_CONFIG::parse");
-    }
-    msg_printf_notice(p, false, NULL,
-        "Missing </app_version> in app_config.xml"
-    );
-    return ERR_XML_PARSE;
-}
-
-int APP_CONFIGS::parse(XML_PARSER& xp, PROJECT* p) {
-    int n;
-    clear();
-    if (!xp.parse_start("app_config")) {
-        msg_printf_notice(p, false, NULL,
-            "Missing <app_config> in app_config.xml"
-        );
-        return ERR_XML_PARSE;
-    }
-    while (!xp.get_tag()) {
-        if (!xp.is_tag) {
-            msg_printf_notice(p, false, NULL,
-                "unexpected text '%s' in app_config.xml", xp.parsed_tag
-            );
-            return ERR_XML_PARSE;
-        }
-        if (xp.match_tag("/app_config")) return 0;
-        if (xp.match_tag("app")) {
-            APP_CONFIG ac;
-            int retval = ac.parse(xp, p);
-            if (retval) return retval;
-            app_configs.push_back(ac);
-            continue;
-        }
-        if (xp.match_tag("app_version")) {
-            APP_VERSION_CONFIG avc;
-            int retval = avc.parse(xp, p);
-            if (retval) return retval;
-            app_version_configs.push_back(avc);
-            continue;
-        }
-        if (xp.parse_int("project_max_concurrent", n)) {
-            if (n >= 0) {
-                have_max_concurrent = true;
-                project_max_concurrent = n;
-            }
-            continue;
-        }
-        msg_printf_notice(p, false, NULL,
-            "Unknown tag in app_config.xml: %s",
-            xp.parsed_tag
-        );
-
-        xp.skip_unexpected(log_flags.unparsed_xml, "APP_CONFIGS::parse");
-    }
-    msg_printf_notice(p, false, NULL,
-        "Missing </app_config> in app_config.xml"
-    );
-    return ERR_XML_PARSE;
-}
-
-int APP_CONFIGS::parse_file(FILE* f, PROJECT* p) {
-    MIOFILE mf;
-    XML_PARSER xp(&mf);
-    mf.init_file(f);
-    return parse(xp, p);
-}
-
 static void show_warning(PROJECT* p, char* name) {
     msg_printf(p, MSG_USER_ALERT,
         "Your app_config.xml file refers to an unknown application '%s'.  Known applications: %s",
@@ -198,6 +33,8 @@ static void show_warning(PROJECT* p, char* name) {
     );
 }
 
+// having parsed a project's app_config.xml, put the config into effect
+//
 int APP_CONFIGS::config_app_versions(PROJECT* p, bool show_warnings) {
     unsigned int i;
     bool showed_notice = false;
@@ -213,6 +50,7 @@ int APP_CONFIGS::config_app_versions(PROJECT* p, bool show_warnings) {
         }
         app->max_concurrent = ac.max_concurrent;
         app->fraction_done_exact = ac.fraction_done_exact;
+        app->report_results_immediately = ac.report_results_immediately;
 
         if (!ac.gpu_gpu_usage || !ac.gpu_cpu_usage) continue;
         for (unsigned int j=0; j<gstate.app_versions.size(); j++) {
@@ -276,10 +114,18 @@ void max_concurrent_init() {
 //
 static void clear_app_config(PROJECT* p) {
     p->app_configs.clear();
+    p->report_results_immediately = false;
     for (unsigned int i=0; i<gstate.apps.size(); i++) {
         APP* app = gstate.apps[i];
         if (app->project != p) continue;
         app->max_concurrent = 0;
+        app->report_results_immediately = false;
+    }
+}
+
+static void print_msgs(vector<string> msgs, PROJECT* p) {
+    for (unsigned int i=0; i<msgs.size(); i++) {
+        msg_printf_notice(p, false, NULL, "%s", msgs[i].c_str());
     }
 }
 
@@ -299,8 +145,11 @@ void check_app_config() {
             continue;
         }
         msg_printf(p, MSG_INFO, "Found %s", APP_CONFIG_FILE_NAME);
-        int retval = p->app_configs.parse_file(f, p);
+        vector<string> msgs;
+        int retval = p->app_configs.parse_file(f, msgs, log_flags);
+        print_msgs(msgs, p);
         if (!retval) {
+            p->report_results_immediately = p->app_configs.report_results_immediately;
             retval = p->app_configs.config_app_versions(p, true);
             if (!retval) {
                 notices.remove_notices(p, REMOVE_APP_CONFIG_MSG);
diff --git a/client/app_config.h b/client/app_config.h
index 0bb198f..5352d98 100644
--- a/client/app_config.h
+++ b/client/app_config.h
@@ -15,57 +15,14 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _APP_CONFIG_
-#define _APP_CONFIG_
-
-#include <vector>
-
-#include "parse.h"
-
-#include "client_types.h"
-
-struct PROJECT;
-struct RESULT;
-
-struct APP_CONFIG {
-    char name[256];
-    int max_concurrent;
-    double gpu_gpu_usage;
-    double gpu_cpu_usage;
-    bool fraction_done_exact;
-
-    int parse(XML_PARSER&, PROJECT*);
-    int parse_gpu_versions(XML_PARSER&, PROJECT*);
-};
-
-struct APP_VERSION_CONFIG {
-    char app_name[256];
-    char plan_class[256];
-    char cmdline[256];
-    double avg_ncpus;
-    double ngpus;
-
-    int parse(XML_PARSER&, PROJECT*);
-};
-
-struct APP_CONFIGS {
-    std::vector<APP_CONFIG> app_configs;
-    std::vector<APP_VERSION_CONFIG> app_version_configs;
-    int project_max_concurrent;
-
-    int parse(XML_PARSER&, PROJECT*);
-    int parse_file(FILE*, PROJECT*);
-    int config_app_versions(PROJECT*, bool show_warnings);
-    void clear() {
-        app_configs.clear();
-        app_version_configs.clear();
-        project_max_concurrent = 0;
-    }
-};
+#ifndef BOINC_APP_CONFIG_H
+#define BOINC_APP_CONFIG_H
 
 extern bool have_max_concurrent;
+    // true if there is any max_concurrent limit (app or project)
 
 extern void max_concurrent_init();
+    // clear app and project counters
 
 extern void check_app_config();
 
diff --git a/client/app_control.cpp b/client/app_control.cpp
index 973fc70..24009b4 100644
--- a/client/app_control.cpp
+++ b/client/app_control.cpp
@@ -963,9 +963,10 @@ int ACTIVE_TASK::read_stderr_file() {
     int max_len = 63*1024;
     sprintf(path, "%s/%s", slot_dir, STDERR_FILE);
     if (!boinc_file_exists(path)) return 0;
-    if (read_file_malloc(path, buf1, max_len, !cc_config.stderr_head)) {
-        return ERR_MALLOC;
-    }
+    int retval  = read_file_malloc(
+        path, buf1, max_len, !cc_config.stderr_head
+    );
+    if (retval) return retval;
 
     // if it's a vbox app, check for string in stderr saying
     // the job failed because CPU VM extensions disabled
diff --git a/client/app_start.cpp b/client/app_start.cpp
index cc3bae5..b0529d9 100644
--- a/client/app_start.cpp
+++ b/client/app_start.cpp
@@ -1363,7 +1363,7 @@ void run_test_app() {
         exit(1);
     }
     while (1) {
-        do_async_file_ops();
+        do_async_file_op();
         if (at.async_copy == NULL) {
             break;
         }
diff --git a/client/async_file.cpp b/client/async_file.cpp
index b19660e..e433466 100644
--- a/client/async_file.cpp
+++ b/client/async_file.cpp
@@ -15,6 +15,12 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// logic for "asynchronous" file copy and unzip/verify operations.
+// "asynchronous" means that the the operations are done in 64KB chunks
+// in the client's polling loop,
+// so that the client continues to respond to GUI RPCs
+// and the manager won't freeze.
+
 #ifdef _WIN32
 #include "boinc_win.h"
 #else
@@ -46,6 +52,8 @@ vector<ASYNC_COPY*> async_copies;
 
 #define BUFSIZE 64*1024
 
+// set up an async copy operation.
+//
 int ASYNC_COPY::init(
     ACTIVE_TASK* _atp, FILE_INFO* _fip,
     const char* from_path, const char* _to_path
@@ -61,14 +69,19 @@ int ASYNC_COPY::init(
     }
     in = boinc_fopen(from_path, "rb");
     if (!in) return ERR_FOPEN;
-    safe_strcpy(temp_path, to_path);
-    char* p = strrchr(temp_path, '/');
-    *(p+1) = 0;
-    strlcat(temp_path, "copy_temp", sizeof(temp_path));
+
+    // Arrange to copy the file to a temp file in the target directory.
+    // It will be renamed later.
+    // Use mkstemp() rather than tempnam() because the latter gives priority
+    // to env var for temp directory; don't want this.
+    //
+    char dir[MAXPATHLEN];
+    boinc_path_to_dir(to_path, dir);
 #ifdef _WIN32
-    boinc_allocate_file(temp_path, fip->nbytes);
+    out = boinc_temp_file(dir, "cpy", temp_path, fip->nbytes);
+#else
+    out = boinc_temp_file(dir, "copy", temp_path);
 #endif
-    out = boinc_fopen(temp_path, "wb");
     if (!out) {
         fclose(in);
         return ERR_FOPEN;
@@ -177,19 +190,23 @@ int ASYNC_VERIFY::init(FILE_INFO* _fip) {
     }
     if (fip->download_gzipped) {
         safe_strcpy(outpath, inpath);
-        safe_strcpy(temp_path, outpath);
-        char* p = strrchr(temp_path, '/');
-        *(p+1) = 0;
-        strlcat(temp_path, "verify_temp", sizeof(temp_path));
+        char dir[MAXPATHLEN];
+        boinc_path_to_dir(outpath, dir);
 #ifdef _WIN32
-        boinc_allocate_file(temp_path, fip->nbytes);
+        out = boinc_temp_file(dir, "vfy", temp_path, fip->nbytes);
+#else
+        out = boinc_temp_file(dir, "verify", temp_path);
 #endif
-        out = boinc_fopen(temp_path, "wb");
-        if (!out) return ERR_FOPEN;
+        if (!out) {
+            fclose(in);
+            return ERR_FOPEN;
+        }
+
         safe_strcat(inpath, ".gz");
         gzin = gzopen(inpath, "rb");
         if (gzin == Z_NULL) {
             fclose(out);
+            boinc_delete_file(temp_path);
             return ERR_FOPEN;
         }
     } else {
@@ -308,21 +325,19 @@ void remove_async_verify(ASYNC_VERIFY* avp) {
 // Note: if there are lots of pending operations,
 // it's better to finish the oldest one before starting the rest
 //
-bool do_async_file_ops() {
+void do_async_file_op() {
     if (async_copies.size()) {
         ASYNC_COPY* acp = async_copies[0];
         if (acp->copy_chunk()) {
             async_copies.erase(async_copies.begin());
             delete acp;
         }
-        return true;
+        return;
     }
     if (async_verifies.size()) {
         if (async_verifies[0]->verify_chunk()) {
             async_verifies.erase(async_verifies.begin());
         }
-        return true;
     }
-    return false;
 }
 
diff --git a/client/async_file.h b/client/async_file.h
index a86be55..3d14c5b 100644
--- a/client/async_file.h
+++ b/client/async_file.h
@@ -18,8 +18,8 @@
 // asynchronous file operations
 //
 
-#ifndef _ASYNC_FILE_
-#define _ASYNC_FILE_
+#ifndef BOINC_ASYNC_FILE_H
+#define BOINC_ASYNC_FILE_H
 
 #include <vector>
 
@@ -91,6 +91,9 @@ extern std::vector<ASYNC_COPY*> async_copies;
 
 extern void remove_async_copy(ASYNC_COPY*);
 extern void remove_async_verify(ASYNC_VERIFY*);
-extern bool do_async_file_ops();
+inline bool have_async_file_op() {
+    return (async_verifies.size() || async_copies.size());
+}
+extern void do_async_file_op();
 
 #endif
diff --git a/client/auto_update.h b/client/auto_update.h
index 643aa8f..360a832 100644
--- a/client/auto_update.h
+++ b/client/auto_update.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _AUTO_UPDATE_
-#define _AUTO_UPDATE_
+#ifndef BOINC_AUTO_UPDATE_H
+#define BOINC_AUTO_UPDATE_H
 
 #include <string>
 #include <vector>
diff --git a/client/boinc_cmd.cpp b/client/boinc_cmd.cpp
index 648fd60..634f8d9 100644
--- a/client/boinc_cmd.cpp
+++ b/client/boinc_cmd.cpp
@@ -62,6 +62,7 @@ Commands:\n\
  --create_account URL email passwd name\n\
  --file_transfer URL filename op    file transfer operation\n\
    op = retry | abort\n\
+ --get_app_config URL               show app config for given project\n\
  --get_cc_status\n\
  --get_daily_xfer_history           show network traffic history\n\
  --get_disk_usage                   show disk usage\n\
@@ -480,6 +481,7 @@ int main(int argc, char** argv) {
         retval = rpc.acct_mgr_rpc(am_url, am_name, am_passwd);
         if (!retval) {
             while (1) {
+                printf("polling for reply\n");
                 ACCT_MGR_RPC_REPLY amrr;
                 retval = rpc.acct_mgr_rpc_poll(amrr);
                 if (retval) {
@@ -585,6 +587,24 @@ int main(int argc, char** argv) {
         printf("retval %d\n", retval);
     } else if (!strcmp(cmd, "--network_available")) {
         retval = rpc.network_available();
+    } else if (!strcmp(cmd, "--set_app_config")) {
+        // for testing purposes only
+        //
+        APP_CONFIGS ac;
+        APP_CONFIG a;
+        ac.clear();
+        strcpy(a.name, "uppercase");
+        a.max_concurrent = 2;
+        ac.app_configs.push_back(a);
+        retval = rpc.set_app_config(argv[2], ac);
+    } else if (!strcmp(cmd, "--get_app_config")) {
+        APP_CONFIGS ac;
+        retval = rpc.get_app_config(argv[2], ac);
+        if (!retval) {
+            MIOFILE mf;
+            mf.init_file(stdout);
+            ac.write(mf);
+        }
     } else if (!strcmp(cmd, "--get_cc_status")) {
         CC_STATUS cs;
         retval = rpc.get_cc_status(cs);
diff --git a/client/build_po b/client/build_po
deleted file mode 100755
index 26f921e..0000000
--- a/client/build_po
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/sh
-
-xgettext --keyword=_ -C -o BOINC-Client.pot *.cpp ../sched/*.cpp
diff --git a/client/check_security.cpp b/client/check_security.cpp
index 4868bfa..27de748 100644
--- a/client/check_security.cpp
+++ b/client/check_security.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -29,9 +29,12 @@
 #include "error_numbers.h"
 #include "file_names.h"
 #include "filesys.h"
-
 #ifdef __WXMAC__                            // If Mac BOINC Manager
-bool IsUserInGroupBM();
+#include "mac_util.h"
+#endif
+
+#ifdef __APPLE__                            // If Mac BOINC Manager
+bool IsUserInGroup(char* groupName);
 #endif
 
 static int CheckNestedDirectories(
@@ -59,12 +62,11 @@ static gid_t        boinc_master_gid, boinc_project_gid;
 static uid_t        boinc_master_uid, boinc_project_uid;
 
 // Called from BOINC Manager, BOINC Client and Installer.
-// The arguments are use only when called from the Installer
 
 // Returns FALSE (0) if owners and permissions are OK, else TRUE (1)
 int check_security(
 #ifdef _MAC_INSTALLER
-char *bundlePath, char *dataPath,
+char *bundlePath, char *dataPath,   // These arguments are used only when called from the Installer
 #endif
 int use_sandbox, int isManager, char* path_to_error, int len
 ) {
@@ -76,11 +78,6 @@ int use_sandbox, int isManager, char* path_to_error, int len
     struct stat         sbuf;
     int                 retval;
     int                 useFakeProjectUserAndGroup = 0;
-#ifdef __WXMAC__                            // If Mac BOINC Manager
-    ProcessSerialNumber ourPSN;
-    ProcessInfoRec      pInfo;
-    FSRef               ourFSRef;
-#endif
 
 #define NUMBRANDS 3
 
@@ -93,7 +90,23 @@ saverName[2] = "Progress Thru Processors";
     useFakeProjectUserAndGroup = ! use_sandbox;
 #ifdef _DEBUG
 #ifdef DEBUG_WITH_FAKE_PROJECT_USER_AND_GROUP
-        useFakeProjectUserAndGroup = 1;
+    useFakeProjectUserAndGroup = 1;
+#endif
+#if (defined(__APPLE__) &&  ! defined(_MAC_INSTALLER))
+    // Debugging Mac client or Mac BOINC Manager
+    // Normally, the Mac Development (Debug) builds do not define SANDBOX, so
+    // check_security() is never called. However, it is possible to use GDB
+    // or LLDB on sandbox-specific code, as long as the code is run as the
+    // current user (i.e., not as boinc_master or boinc_project), and the
+    // current user is a member of both groups boinc_master and boinc_project.
+    // Note that this newer approach supersedes the old one described and 
+    // implemented below. But since it has not been thoroughly tested, I have
+    // not removed the old code.
+    if (IsUserInGroup(REAL_BOINC_MASTER_NAME) && IsUserInGroup(REAL_BOINC_PROJECT_NAME)) {
+        return 0;
+    } else {
+        return -1099;
+    }
 #endif
 #endif      // _DEBUG
 
@@ -106,23 +119,7 @@ saverName[2] = "Progress Thru Processors";
 
 #ifdef __WXMAC__                            // If Mac BOINC Manager
     // Get the full path to BOINC Manager application's bundle
-    retval = GetCurrentProcess (&ourPSN);
-    if (retval)
-        return -1000;          // Should never happen
-
-    memset(&pInfo, 0, sizeof(pInfo));
-    pInfo.processInfoLength = sizeof( ProcessInfoRec );
-    retval = GetProcessInformation(&ourPSN, &pInfo);
-    if (retval)
-        return -1001;          // Should never happen
-
-    retval = GetProcessBundleLocation(&ourPSN, &ourFSRef);
-    if (retval)
-        return -1002;          // Should never happen
-
-    retval = FSRefMakePath (&ourFSRef, (UInt8*)dir_path, sizeof(dir_path));
-    if (retval)
-        return -1003;          // Should never happen
+    getPathToThisApp(dir_path, sizeof(dir_path));
 #elif defined (_MAC_INSTALLER)
     strlcpy(dir_path, bundlePath, sizeof(dir_path));
 #endif
@@ -154,7 +151,7 @@ saverName[2] = "Progress Thru Processors";
         boinc_master_gid = sbuf.st_gid;
 
 #ifdef __WXMAC__
-    if (!IsUserInGroupBM())
+    if (!IsUserInGroup(REAL_BOINC_MASTER_NAME))
         return -1099;
 #endif
     } else {
@@ -672,14 +669,14 @@ static void GetPathToThisProcess(char* outbuf, size_t maxLen) {
 #endif
 
 
-#ifdef __WXMAC__                            // If Mac BOINC Manager
-bool IsUserInGroupBM() {
+#ifdef __APPLE__                            // If Mac BOINC Manager
+bool IsUserInGroup(char* groupName) {
     group               *grp;
     gid_t               rgid;
     char                *userName, *groupMember;
     int                 i;
 
-    grp = getgrnam(REAL_BOINC_MASTER_NAME);
+    grp = getgrnam(groupName);
     if (grp) {
         rgid = getgid();
         if (rgid == grp->gr_gid) {
diff --git a/client/client_msgs.h b/client/client_msgs.h
index 6449c2b..d5b9002 100644
--- a/client/client_msgs.h
+++ b/client/client_msgs.h
@@ -15,14 +15,15 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef CLIENT_MSG_LOG_H
-#define CLIENT_MSG_LOG_H
+#ifndef BOINC_CLIENT_MSGS_H
+#define BOINC_CLIENT_MSGS_H
 
 #include <algorithm>
 #include <deque>
 #include <string>
 #include <string.h>
 
+#include "client_types.h"
 #include "common_defs.h"
 #include "log_flags.h"
 
diff --git a/client/client_state.cpp b/client/client_state.cpp
index 7b3a65f..a087716 100644
--- a/client/client_state.cpp
+++ b/client/client_state.cpp
@@ -219,25 +219,13 @@ void CLIENT_STATE::show_host_info() {
         "Processor features: %s", host_info.p_features
     );
 #ifdef __APPLE__
-    SInt32 temp;
-    int major, minor, rev;
-    OSStatus err = noErr;
-    
-    err = Gestalt(gestaltSystemVersionMajor, &temp);
-    major = temp;
-    if (!err) {
-    err = Gestalt(gestaltSystemVersionMinor, &temp);
-    minor = temp;
-    }
-    if (!err) {
-    err = Gestalt(gestaltSystemVersionBugFix, &temp);
-    rev = temp;
-    }
-    if (err) {
-        sscanf(host_info.os_version, "%d.%d.%d", &major, &minor, &rev);
-    }
+    buf[0] = '\0';
+    FILE *f = popen("sw_vers -productVersion", "r");
+    fgets(buf, sizeof(buf), f);
+    strip_whitespace(buf);
+    pclose(f);
     msg_printf(NULL, MSG_INFO,
-        "OS: Mac OS X %d.%d.%d (%s %s)", major, minor, rev, 
+        "OS: Mac OS X %s (%s %s)", buf,
         host_info.os_name, host_info.os_version
     );
 #else
@@ -304,6 +292,7 @@ const char* rsc_name_long(int i) {
 
 #ifndef SIM
 // alert user if any jobs need more RAM than available
+// (based on RAM estimate, not measured size)
 //
 static void check_too_large_jobs() {
     unsigned int i, j;
@@ -531,6 +520,9 @@ int CLIENT_STATE::init() {
         msg_printf(NULL, MSG_INFO, "Faking an Intel GPU");
         coprocs.intel_gpu.fake(512*MEGA, 256*MEGA, 2);
 #endif
+#if 0
+        fake_opencl_gpu("Mali-T628");
+#endif
     }
 
     if (coprocs.have_nvidia()) {
@@ -808,22 +800,27 @@ FDSET_GROUP all_fds;
 
 // Spend x seconds either doing I/O (if possible) or sleeping.
 //
-void CLIENT_STATE::do_io_or_sleep(double x) {
+void CLIENT_STATE::do_io_or_sleep(double max_time) {
     int n;
     struct timeval tv;
     set_now();
-    double end_time = now + x;
-    //int loops = 0;
+    double end_time = now + max_time;
+    double time_remaining = max_time;
 
     while (1) {
-        bool action = do_async_file_ops();
-
         curl_fds.zero();
         gui_rpc_fds.zero();
         http_ops->get_fdset(curl_fds);
         all_fds = curl_fds;
         gui_rpcs.get_fdset(gui_rpc_fds, all_fds);
-        double_to_timeval(action?0:x, tv);
+
+        bool have_async = have_async_file_op();
+
+        // prioritize network (including GUI RPC) over async file ops.
+        // if there's a pending asynch file op, do the select with zero timeout;
+        // otherwise do it for the remaining amount of time.
+
+        double_to_timeval(have_async?0:time_remaining, tv);
 #ifdef NEW_CPU_THROTTLE
         client_mutex.unlock();
 #endif
@@ -842,28 +839,24 @@ void CLIENT_STATE::do_io_or_sleep(double x) {
         // called pretty often, even if no descriptors are enabled.
         // So do the "if (n==0) break" AFTER the got_selects().
 
-        http_ops->got_select(all_fds, x);
+        http_ops->got_select(all_fds, time_remaining);
         gui_rpcs.got_select(all_fds);
 
-        if (!action && n==0) break;
-
-#if 0
-        // Limit number of times thru this loop.
-        // Can get stuck in while loop, if network isn't available,
-        // DNS lookups tend to eat CPU cycles.
-        //
-        if (loops++ > 99) {
-            boinc_sleep(.01);
-#ifdef __EMX__
-            DosSleep(0);
-#endif
-            break;
+        if (have_async) {
+            // do the async file op only if no network activity
+            //
+            if (n == 0) {
+                do_async_file_op();
+            }
+        } else {
+            if (n == 0) {
+                break;
+            }
         }
-#endif
 
         set_now();
         if (now > end_time) break;
-        x = end_time - now;
+        time_remaining = end_time - now;
     }
 }
 
@@ -1423,11 +1416,27 @@ bool CLIENT_STATE::garbage_collect() {
     // because detach_project() calls garbage_collect_always(),
     // and we need to avoid infinite recursion
     //
-    for (unsigned i=0; i<projects.size(); i++) {
-        PROJECT* p = projects[i];
-        if (p->detach_when_done && !nresults_for_project(p)) {
-            detach_project(p);
-            action = true;
+    if (acct_mgr_info.using_am()) {
+        // If we're using an AM,
+        // start an AM RPC rather than detaching the projects;
+        // the RPC completion handler will detach them.
+        // This way the AM will be informed of their work done.
+        //
+        for (unsigned i=0; i<projects.size(); i++) {
+            PROJECT* p = projects[i];
+            if (p->detach_when_done && !nresults_for_project(p)) {
+                acct_mgr_info.next_rpc_time = 0;
+                acct_mgr_info.poll();
+                break;
+            }
+        }
+    } else {
+        for (unsigned i=0; i<projects.size(); i++) {
+            PROJECT* p = projects[i];
+            if (p->detach_when_done && !nresults_for_project(p)) {
+                detach_project(p);
+                action = true;
+            }
         }
     }
 #endif
diff --git a/client/client_state.h b/client/client_state.h
index 5fa1ac1..489a5be 100644
--- a/client/client_state.h
+++ b/client/client_state.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _CLIENT_STATE_
-#define _CLIENT_STATE_
+#ifndef BOINC_CLIENT_STATE_H
+#define BOINC_CLIENT_STATE_H
 
 #define NEW_CPU_THROTTLE
 // do CPU throttling using a separate thread.
@@ -238,7 +238,7 @@ struct CLIENT_STATE {
 // --------------- acct_setup.cpp:
     PROJECT_INIT project_init;
     PROJECT_ATTACH project_attach;
-    void new_version_check();
+    void new_version_check(bool force = false);
     void all_projects_list_check();
     double new_version_check_time;
     double all_projects_list_check_time;
diff --git a/client/client_types.cpp b/client/client_types.cpp
index 063d224..2830347 100644
--- a/client/client_types.cpp
+++ b/client/client_types.cpp
@@ -290,7 +290,7 @@ int FILE_INFO::set_permissions(const char* path) {
 //
 int FILE_INFO::parse(XML_PARSER& xp) {
     char buf2[1024];
-    std::string url;
+    string url;
     PERS_FILE_XFER *pfxp;
     int retval;
     bool btemp;
diff --git a/client/client_types.h b/client/client_types.h
index 5367f3d..41aff3e 100644
--- a/client/client_types.h
+++ b/client/client_types.h
@@ -20,8 +20,8 @@
 // client_state.C  (to cross-link objects)
 //
 
-#ifndef _CLIENT_TYPES_
-#define _CLIENT_TYPES_
+#ifndef BOINC_CLIENT_TYPES_H
+#define BOINC_CLIENT_TYPES_H
 
 #include "cpp.h"
 
@@ -255,6 +255,7 @@ struct APP {
     bool non_cpu_intensive;
     bool fraction_done_exact;
     PROJECT* project;
+    bool report_results_immediately;
     int max_concurrent;
         // Limit on # of concurrent jobs of this app; 0 if none
         // Specified in app_config.xml
diff --git a/client/cpu_sched.cpp b/client/cpu_sched.cpp
index 5991241..2665bf4 100644
--- a/client/cpu_sched.cpp
+++ b/client/cpu_sched.cpp
@@ -31,7 +31,7 @@
 //              in case we can't run the multi-thread jobs)
 //      NOTE: RAM usage is not taken into consideration
 //          in the process of building this list.
-//          It's possible that include a bunch of jobs that can't run
+//          It's possible that we include a bunch of jobs that can't run
 //          because of memory limits,
 //          even though there are other jobs that could run.
 //      - add running jobs to the list
@@ -170,29 +170,37 @@ struct PROC_RESOURCES {
 
     // we've decided to add this to the runnable list; update bookkeeping
     //
-    void schedule(RESULT* rp, bool is_edf) {
+    void schedule(RESULT* rp, ACTIVE_TASK* atp, bool is_edf) {
         int rt = rp->avp->gpu_usage.rsc_type;
-        if (rt) {
-            // if the resource type has exclusions, don't reserve instances.
-            // It means that the run list will include all jobs
-            // for that resource type.
-            // Inefficient, but necessary to avoid starvation cases.
-            //
-            if (! rsc_work_fetch[rt].has_exclusions) {
+
+        // see if it's possible this job will be ruled out
+        // when we try to actually run it
+        // (e.g. it won't fit in RAM, or it uses GPU type w/ exclusions)
+        // If so, don't reserve CPU/GPU for it, to avoid starvation scenario
+        //
+        bool may_not_run = false;
+        if (atp && atp->too_large) {
+            may_not_run = true;
+        }
+        if (rt && rsc_work_fetch[rt].has_exclusions) {
+            may_not_run = true;
+        }
+
+        if (!may_not_run) {
+            if (rt) {
                 reserve_coprocs(*rp);
+                // don't increment CPU usage.
+                // This may seem odd; the reason is the following scenario:
+                // - this job uses lots of CPU (say, a whole one)
+                // - there's an uncheckpointed GPU job that uses little CPU
+                // - we end up running the uncheckpointed job
+                // - this causes all or part of a CPU to be idle
+                //
+            } else if (rp->avp->avg_ncpus > 1) {
+                ncpus_used_mt += rp->avp->avg_ncpus;
+            } else {
+                ncpus_used_st += rp->avp->avg_ncpus;
             }
-            //ncpus_used_st += rp->avp->avg_ncpus;
-            // don't increment CPU usage.
-            // This may seem odd; the reason is the following scenario:
-            // - this job uses lots of CPU (say, a whole one)
-            // - there's an uncheckpointed GPU job that uses little CPU
-            // - we end up running the uncheckpointed job
-            // - this causes all or part of a CPU to be idle
-
-        } else if (rp->avp->avg_ncpus > 1) {
-            ncpus_used_mt += rp->avp->avg_ncpus;
-        } else {
-            ncpus_used_st += rp->avp->avg_ncpus;
         }
         if (log_flags.cpu_sched_debug) {
             msg_printf(rp->project, MSG_INFO,
@@ -554,17 +562,30 @@ void CLIENT_STATE::reset_rec_accounting() {
     rec_interval_start = now;
 }
 
-// update REC (recent estimated credit)
+// update per-project accounting:
+//  - recent estimated credit (EC)
+//  - total CPU and GPU EC
+//  - total CPU and GPU time
 //
 static void update_rec() {
     double f = gstate.host_info.p_fpops;
+    double on_frac = gstate.global_prefs.cpu_usage_limit / 100;
 
     for (unsigned int i=0; i<gstate.projects.size(); i++) {
         PROJECT* p = gstate.projects[i];
 
         double x = 0;
         for (int j=0; j<coprocs.n_rsc; j++) {
-            x += p->rsc_pwf[j].secs_this_rec_interval * f * rsc_work_fetch[j].relative_speed;
+            double dt = p->rsc_pwf[j].secs_this_rec_interval * on_frac;
+            double flops = dt * f * rsc_work_fetch[j].relative_speed;
+            x += flops;
+            if (j) {
+                p->gpu_ec += flops*COBBLESTONE_SCALE;
+                p->gpu_time += dt;
+            } else {
+                p->cpu_ec += flops*COBBLESTONE_SCALE;
+                p->cpu_time += dt;
+            }
         }
         x *= COBBLESTONE_SCALE;
         double old = p->pwf.rec;
@@ -821,7 +842,7 @@ void add_coproc_jobs(
         rp->already_selected = true;
         atp = gstate.lookup_active_task_by_result(rp);
         if (!proc_rsc.can_schedule(rp, atp)) continue;
-        proc_rsc.schedule(rp, true);
+        proc_rsc.schedule(rp, atp, true);
         rp->project->rsc_pwf[rsc_type].deadlines_missed_copy--;
         rp->edf_scheduled = true;
         run_list.push_back(rp);
@@ -838,7 +859,7 @@ void add_coproc_jobs(
         rp->already_selected = true;
         atp = gstate.lookup_active_task_by_result(rp);
         if (!proc_rsc.can_schedule(rp, atp)) continue;
-        proc_rsc.schedule(rp, false);
+        proc_rsc.schedule(rp, atp, false);
         run_list.push_back(rp);
     }
 }
@@ -885,6 +906,10 @@ void CLIENT_STATE::make_run_list(vector<RESULT*>& run_list) {
             p->rsc_pwf[j].deadlines_missed_copy = p->rsc_pwf[j].deadlines_missed;
         }
     }
+
+    // compute max working set size for app versions
+    // (max of working sets of currently running jobs)
+    //
     for (i=0; i<app_versions.size(); i++) {
         app_versions[i]->max_working_set_size = 0;
     }
@@ -922,7 +947,7 @@ void CLIENT_STATE::make_run_list(vector<RESULT*>& run_list) {
         rp->already_selected = true;
         atp = lookup_active_task_by_result(rp);
         if (!proc_rsc.can_schedule(rp, atp)) continue;
-        proc_rsc.schedule(rp, true);
+        proc_rsc.schedule(rp, atp, true);
         rp->project->rsc_pwf[0].deadlines_missed_copy--;
         rp->edf_scheduled = true;
         run_list.push_back(rp);
@@ -939,7 +964,7 @@ void CLIENT_STATE::make_run_list(vector<RESULT*>& run_list) {
         if (!rp) break;
         atp = lookup_active_task_by_result(rp);
         if (!proc_rsc.can_schedule(rp, atp)) continue;
-        proc_rsc.schedule(rp, false);
+        proc_rsc.schedule(rp, atp, false);
         run_list.push_back(rp);
     }
 
@@ -1084,7 +1109,6 @@ void CLIENT_STATE::append_unfinished_time_slice(vector<RESULT*> &run_list) {
 //
 bool CLIENT_STATE::enforce_run_list(vector<RESULT*>& run_list) {
     unsigned int i;
-    vector<ACTIVE_TASK*> preemptable_tasks;
     int retval;
     double ncpus_used=0;
     ACTIVE_TASK* atp;
@@ -1244,6 +1268,8 @@ bool CLIENT_STATE::enforce_run_list(vector<RESULT*>& run_list) {
         }
 #endif
 
+        // skip jobs whose working set is too large to fit in available RAM
+        //
         double wss = 0;
         if (atp) {
             atp->too_large = false;
@@ -1251,13 +1277,16 @@ bool CLIENT_STATE::enforce_run_list(vector<RESULT*>& run_list) {
         } else {
             wss = rp->avp->max_working_set_size;
         }
+        if (wss == 0) {
+            wss = rp->wup->rsc_memory_bound;
+        }
         if (wss > ram_left) {
             if (atp) {
                 atp->too_large = true;
             }
             if (log_flags.cpu_sched_debug || log_flags.mem_usage_debug) {
                 msg_printf(rp->project, MSG_INFO,
-                    "[cpu_sched_debug] enforce: result %s can't run, too big %.2fMB > %.2fMB",
+                    "[cpu_sched_debug] enforce: task %s can't run, too big %.2fMB > %.2fMB",
                     rp->name,  wss/MEGA, ram_left/MEGA
                 );
             }
diff --git a/client/cs_account.cpp b/client/cs_account.cpp
index 85fe08b..04ea7c4 100644
--- a/client/cs_account.cpp
+++ b/client/cs_account.cpp
@@ -124,7 +124,7 @@ int PROJECT::parse_account(FILE* in) {
         if (xp.match_tag("/account")) {
             return 0;
         } else if (xp.match_tag("venue")) {
-            std::string devnull;
+            string devnull;
             retval = copy_element_contents(xp.f->f, "</venue>", devnull);
             if (retval) return retval;
             continue;
@@ -227,7 +227,7 @@ int PROJECT::parse_account_file_venue() {
                     no_rsc_pref[i] = false;
                 }
             } else {
-                std::string devnull;
+                string devnull;
                 retval = copy_element_contents(in, "</venue>", devnull);
                 if (retval) return retval;
             }
diff --git a/client/cs_apps.cpp b/client/cs_apps.cpp
index 1b27b6c..f0f8a02 100644
--- a/client/cs_apps.cpp
+++ b/client/cs_apps.cpp
@@ -44,7 +44,8 @@
 
 using std::vector;
 
-// clean up after finished apps
+// Clean up after finished apps.
+// Called every second from the main polling loop.
 //
 bool CLIENT_STATE::handle_finished_apps() {
     ACTIVE_TASK* atp;
diff --git a/client/cs_benchmark.cpp b/client/cs_benchmark.cpp
index f185df4..594ac8b 100644
--- a/client/cs_benchmark.cpp
+++ b/client/cs_benchmark.cpp
@@ -276,7 +276,9 @@ void CLIENT_STATE::start_cpu_benchmarks() {
             NULL, 0, win_cpu_benchmarks, benchmark_descs+i, 0,
             &benchmark_descs[i].pid
         );
-        SetThreadAffinityMask(benchmark_descs[i].handle, 1<<i);
+        int n = host_info.p_ncpus;
+        int j = (i >= n/2)? 2*i+1-n : 2*i;
+        SetThreadAffinityMask(benchmark_descs[i].handle, 1<<j);
         SetThreadPriority(benchmark_descs[i].handle, THREAD_PRIORITY_IDLE);
 #else
         sprintf(benchmark_descs[i].filename, "%s_%d.xml", CPU_BENCHMARKS_FILE_NAME, i);
diff --git a/client/cs_notice.h b/client/cs_notice.h
index d6efe05..79523da 100644
--- a/client/cs_notice.h
+++ b/client/cs_notice.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _CS_NOTICE_
-#define _CS_NOTICE_
+#ifndef BOINC_CS_NOTICE_H
+#define BOINC_CS_NOTICE_H
 
 // Code related to "notices", which come from
 // 1) RSS feeds specified by projects and account managers
diff --git a/client/cs_prefs.cpp b/client/cs_prefs.cpp
index b25a2e1..2843c96 100644
--- a/client/cs_prefs.cpp
+++ b/client/cs_prefs.cpp
@@ -47,28 +47,28 @@
 #include "project.h"
 
 using std::min;
+using std::max;
 using std::string;
 
 #define MAX_PROJ_PREFS_LEN  65536
     // max length of project-specific prefs
 
-// Return the maximum allowed disk usage as determined by user preferences.
+// Return the maximum allowed disk usage by projects as determined by user preferences.
 // There are three different settings in the prefs;
 // return the least of the three.
 //
 double CLIENT_STATE::allowed_disk_usage(double boinc_total) {
-    double limit_pct, limit_min_free, limit_abs;
-
-    limit_pct = host_info.d_total*global_prefs.disk_max_used_pct/100.0;
-    limit_min_free = boinc_total + host_info.d_free - global_prefs.disk_min_free_gb*GIGA;
+    double limit = boinc_total + host_info.d_free - global_prefs.disk_min_free_gb*GIGA;
+    if (global_prefs.disk_max_used_pct) {
+        double limit_pct = host_info.d_total*global_prefs.disk_max_used_pct/100.0;
+        limit = min(limit, limit_pct);
+    }
 
-    double size = min(limit_pct, limit_min_free);
     if (global_prefs.disk_max_used_gb) {
-        limit_abs = global_prefs.disk_max_used_gb*(GIGA);
-        size = min(size, limit_abs);
+        double limit_abs = global_prefs.disk_max_used_gb*(GIGA);
+        limit = min(limit, limit_abs);
     }
-    if (size < 0) size = 0;
-    return size;
+    return max(limit, 0.);
 }
 
 #ifndef SIM
@@ -656,17 +656,17 @@ void CLIENT_STATE::read_global_prefs(
 
     msg_printf(NULL, MSG_INFO, "Preferences:");
     msg_printf(NULL, MSG_INFO,
-        "   max memory usage when active: %.2fMB",
+        "   max memory usage when active: %.2f MB",
         (host_info.m_nbytes*global_prefs.ram_max_used_busy_frac)/MEGA
     );
     msg_printf(NULL, MSG_INFO,
-        "   max memory usage when idle: %.2fMB",
+        "   max memory usage when idle: %.2f MB",
         (host_info.m_nbytes*global_prefs.ram_max_used_idle_frac)/MEGA
     );
 #ifndef SIM
     get_disk_usages();
     msg_printf(NULL, MSG_INFO,
-        "   max disk usage: %.2fGB",
+        "   max disk usage: %.2f GB",
         allowed_disk_usage(total_disk_usage)/GIGA
     );
 #endif
diff --git a/client/cs_scheduler.cpp b/client/cs_scheduler.cpp
index 3bf6959..c155ed5 100644
--- a/client/cs_scheduler.cpp
+++ b/client/cs_scheduler.cpp
@@ -383,6 +383,12 @@ int CLIENT_STATE::make_scheduler_request(PROJECT* p) {
         fprintf(f, "    <client_brand>%s</client_brand>\n", client_brand);
     }
 
+    if (acct_mgr_info.using_am() && !acct_mgr_info.sched_req_opaque.empty()) {
+        fprintf(f, "<am_opaque>\n<![CDATA[\n");
+        fprintf(f, "%s", acct_mgr_info.sched_req_opaque.c_str());
+        fprintf(f, "\n]]>\n</am_opaque>\n");
+    }
+
     fprintf(f, "</scheduler_request>\n");
 
     fclose(f);
@@ -557,7 +563,7 @@ int CLIENT_STATE::handle_scheduler_reply(
     unsigned int i;
     bool signature_valid, update_global_prefs=false, update_project_prefs=false;
     char buf[1024], filename[256];
-    std::string old_gui_urls = project->gui_urls;
+    string old_gui_urls = project->gui_urls;
     PROJECT* p2;
     vector<RESULT*>new_results;
 
@@ -679,10 +685,20 @@ int CLIENT_STATE::handle_scheduler_reply(
     // insert extra elements, write to disk, and parse
     //
     if (sr.global_prefs_xml) {
-        // skip this if we have host-specific prefs
-        // and we're talking to an old scheduler
-        //
-        if (!global_prefs.host_specific || sr.scheduler_version >= 507) {
+        // ignore prefs if we're using prefs from account mgr
+        // BAM! currently has mixed http, https; trim off
+        char* p = strchr(global_prefs.source_project, '/');
+        char* q = strchr(gstate.acct_mgr_info.master_url, '/');
+        if (gstate.acct_mgr_info.using_am() && p && q && !strcmp(p, q)) {
+            if (log_flags.sched_op_debug) {
+                msg_printf(project, MSG_INFO,
+                    "ignoring prefs from project; using prefs from AM"
+                );
+            }
+        } else if (!global_prefs.host_specific || sr.scheduler_version >= 507) {
+            // ignore prefs if we have host-specific prefs
+            // and we're talking to an old scheduler
+            //
             retval = save_global_prefs(
                 sr.global_prefs_xml, project->master_url, scheduler_url
             );
@@ -1298,6 +1314,14 @@ PROJECT* CLIENT_STATE::find_project_with_overdue_results(
             return p;
         }
 
+        if (p->report_results_immediately) {
+            return p;
+        }
+
+        if (r->app->report_results_immediately) {
+            return p;
+        }
+
         if (net_status.have_sporadic_connection) {
             return p;
         }
diff --git a/client/cs_statefile.cpp b/client/cs_statefile.cpp
index cf3c4fa..5aba5dd 100644
--- a/client/cs_statefile.cpp
+++ b/client/cs_statefile.cpp
@@ -24,6 +24,10 @@
 #include <errno.h>
 #endif
 
+#ifdef __APPLE__
+#include "mac_spawn.h"
+#endif
+
 #ifdef _MSC_VER
 #define snprintf _snprintf
 #endif
@@ -694,7 +698,9 @@ int CLIENT_STATE::write_state_file() {
             );
 #elif defined (__APPLE__)
             if (log_flags.statefile_debug) {
-                system("ls -al /Library/Application\\ Support/BOINC\\ Data/client*.*");
+                // system() is deprecated in Mac OS 10.10.
+                // Apple says to call posix_spawn instead.
+                callPosixSpawn("ls -al /Library/Application\\ Support/BOINC\\ Data/client*.*");
             }
 #endif
         }
diff --git a/client/cs_trickle.cpp b/client/cs_trickle.cpp
index e78d4a2..12a5a23 100644
--- a/client/cs_trickle.cpp
+++ b/client/cs_trickle.cpp
@@ -44,8 +44,6 @@
 #include "project.h"
 #include "sandbox.h"
 
-using std::string;
-
 // Scan project dir for file names of the form trickle_up_X_Y
 // where X is a result name and Y is a timestamp.
 // Convert them to XML (for sched request message)
@@ -181,7 +179,7 @@ bool trickle_up_poll() {
 }
 
 static void trickle_up_request_message(
-    PROJECT* p, const char* msg, char* result_name, int t, char* buf, int len
+    PROJECT* p, const char* msg, char* result_name, int t, char* buf, size_t len
 ) {
     snprintf(buf, len,
         "<scheduler_request>\n"
@@ -216,7 +214,7 @@ void send_replicated_trickles(
     PROJECT* p, const char* msg, char* result_name, int now
 ) {
     if (!p->trickle_up_ops.size()) return;
-    int trickle_len = strlen(msg) + 4096;
+    size_t trickle_len = strlen(msg) + 4096;
     char *buf = (char*)malloc(trickle_len);
     if (!buf) return;
     trickle_up_request_message(p, msg, result_name, now, buf, trickle_len);
@@ -303,7 +301,7 @@ int TRICKLE_UP_OP::do_rpc(const char* msg) {
     return retval;
 }
 
-int parse_trickle_up_urls(XML_PARSER& xp, std::vector<std::string>& urls) {
+int parse_trickle_up_urls(XML_PARSER& xp, vector<string>& urls) {
     string s;
     while (!xp.get_tag()) {
         if (xp.match_tag("/trickle_up_urls")) {
diff --git a/client/cs_trickle.h b/client/cs_trickle.h
index 9e6589e..f926cfc 100644
--- a/client/cs_trickle.h
+++ b/client/cs_trickle.h
@@ -17,8 +17,8 @@
 
 // support for replicated trickles
 
-#ifndef _TRICKLE_H_
-#define _TRICKLE_H_
+#ifndef BOINC_CS_TRICKLE_H
+#define BOINC_CS_TRICKLE_H
 
 #include "gui_http.h"
 
diff --git a/client/current_version.cpp b/client/current_version.cpp
index 2a7519a..7231666 100644
--- a/client/current_version.cpp
+++ b/client/current_version.cpp
@@ -87,15 +87,15 @@ static void show_newer_version_msg(const char* new_vers) {
     if (cc_config.client_new_version_text.empty()) {
         msg_printf_notice(0, true,
             "http://boinc.berkeley.edu/manager_links.php?target=notice&controlid=download",
-            "%s (%s) <a href=%s>%s</a>",
-            _("A new version of BOINC is available."),
+            "%s (%s). <a href=%s>%s</a>",
+            _("A new version of BOINC is available"),
             new_vers,
             cc_config.client_download_url.c_str(),
             _("Download")
         );
     } else {
         msg_printf_notice(0, true, NULL,
-            "%s (%s) <a href=%s>%s</a>",
+            "%s (%s). <a href=%s>%s</a>",
             cc_config.client_new_version_text.c_str(),
             new_vers,
             cc_config.client_download_url.c_str(),
@@ -140,8 +140,8 @@ void newer_version_startup_check() {
 
 #define NEW_VERSION_CHECK_PERIOD (14*86400)
 
-void CLIENT_STATE::new_version_check() {
-    if ((new_version_check_time == 0) ||
+void CLIENT_STATE::new_version_check(bool force) {
+    if (force || (new_version_check_time == 0) ||
         (now - new_version_check_time > NEW_VERSION_CHECK_PERIOD)) {
             // get_current_version_op.handle_reply()
             // updates new_version_check_time
diff --git a/client/current_version.h b/client/current_version.h
index 98c6fcd..a24a165 100644
--- a/client/current_version.h
+++ b/client/current_version.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _CURRENT_VERSION_
-#define _CURRENT_VERSION_
+#ifndef BOINC_CURRENT_VERSION_H
+#define BOINC_CURRENT_VERSION_H
 
 #include "gui_http.h"
 
diff --git a/client/file_names.cpp b/client/file_names.cpp
index 4e3b16f..2813aed 100644
--- a/client/file_names.cpp
+++ b/client/file_names.cpp
@@ -322,11 +322,11 @@ void get_statistics_filename(char* master_url, char* path, int len) {
 }
 
 bool is_image_file(const char* filename) {
-    std::string fn = filename;
+    string fn = filename;
     downcase_string(fn);
-    if (ends_with(fn, std::string(".jpg"))) return true;
-    if (ends_with(fn, std::string(".jpeg"))) return true;
-    if (ends_with(fn, std::string(".png"))) return true;
+    if (ends_with(fn, string(".jpg"))) return true;
+    if (ends_with(fn, string(".jpeg"))) return true;
+    if (ends_with(fn, string(".png"))) return true;
     return false;
 }
 
diff --git a/client/file_names.h b/client/file_names.h
index ec27a6d..a2c0be7 100644
--- a/client/file_names.h
+++ b/client/file_names.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _FILE_NAMES_
-#define _FILE_NAMES_
+#ifndef BOINC_FILE_NAMES_H
+#define BOINC_FILE_NAMES_H
 
 #include "client_types.h"
 #include "common_defs.h"
diff --git a/client/file_xfer.h b/client/file_xfer.h
index 396743f..7a5dbb8 100644
--- a/client/file_xfer.h
+++ b/client/file_xfer.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _FILE_XFER_
-#define _FILE_XFER_
+#ifndef BOINC_FILE_XFER_H
+#define BOINC_FILE_XFER_H
 
 // A FILE_XFER object represents a file transfer "episode"
 // (see pers_file_xfer.h), i.e. an HTTP transaction with a
diff --git a/client/gpu_amd.cpp b/client/gpu_amd.cpp
index 966ddb0..ec594a0 100644
--- a/client/gpu_amd.cpp
+++ b/client/gpu_amd.cpp
@@ -85,27 +85,27 @@ typedef int (__stdcall *ATI_STATUS) (CALdevicestatus*, CALdevice);
 typedef int (__stdcall *ATI_DEVICEOPEN) (CALdevice*, CALuint);
 typedef int (__stdcall *ATI_DEVICECLOSE) (CALdevice);
 
-ATI_ATTRIBS __calDeviceGetAttribs = NULL;
-ATI_CLOSE   __calShutdown = NULL;
-ATI_GDC     __calDeviceGetCount = NULL;
-ATI_GDI     __calInit = NULL;
-ATI_INFO    __calDeviceGetInfo = NULL;
-ATI_VER     __calGetVersion = NULL;
-ATI_STATUS  __calDeviceGetStatus = NULL;
-ATI_DEVICEOPEN  __calDeviceOpen = NULL;
-ATI_DEVICECLOSE  __calDeviceClose = NULL;
+ATI_ATTRIBS p_calDeviceGetAttribs = NULL;
+ATI_CLOSE   p_calShutdown = NULL;
+ATI_GDC     p_calDeviceGetCount = NULL;
+ATI_GDI     p_calInit = NULL;
+ATI_INFO    p_calDeviceGetInfo = NULL;
+ATI_VER     p_calGetVersion = NULL;
+ATI_STATUS  p_calDeviceGetStatus = NULL;
+ATI_DEVICEOPEN  p_calDeviceOpen = NULL;
+ATI_DEVICECLOSE  p_calDeviceClose = NULL;
 
 #else
 
-int (*__calInit)();
-int (*__calGetVersion)(CALuint*, CALuint*, CALuint*);
-int (*__calDeviceGetCount)(CALuint*);
-int (*__calDeviceGetAttribs)(CALdeviceattribs*, CALuint);
-int (*__calShutdown)();
-int (*__calDeviceGetInfo)(CALdeviceinfo*, CALuint);
-int (*__calDeviceGetStatus)(CALdevicestatus*, CALdevice);
-int (*__calDeviceOpen)(CALdevice*, CALuint);
-int (*__calDeviceClose)(CALdevice);
+int (*p_calInit)();
+int (*p_calGetVersion)(CALuint*, CALuint*, CALuint*);
+int (*p_calDeviceGetCount)(CALuint*);
+int (*p_calDeviceGetAttribs)(CALdeviceattribs*, CALuint);
+int (*p_calShutdown)();
+int (*p_calDeviceGetInfo)(CALdeviceinfo*, CALuint);
+int (*p_calDeviceGetStatus)(CALdevicestatus*, CALdevice);
+int (*p_calDeviceOpen)(CALdevice*, CALuint);
+int (*p_calDeviceClose)(CALdevice);
 
 #endif
 
@@ -146,15 +146,15 @@ void COPROC_ATI::get(
         return;
     }
 
-    __calInit = (ATI_GDI)GetProcAddress(callib, "calInit" );
-    __calGetVersion = (ATI_VER)GetProcAddress(callib, "calGetVersion" );
-    __calDeviceGetCount = (ATI_GDC)GetProcAddress(callib, "calDeviceGetCount" );
-    __calDeviceGetAttribs =(ATI_ATTRIBS)GetProcAddress(callib, "calDeviceGetAttribs" );
-    __calShutdown = (ATI_CLOSE)GetProcAddress(callib, "calShutdown" );
-    __calDeviceGetInfo = (ATI_INFO)GetProcAddress(callib, "calDeviceGetInfo" );
-    __calDeviceGetStatus = (ATI_STATUS)GetProcAddress(callib, "calDeviceGetStatus" );
-    __calDeviceOpen = (ATI_DEVICEOPEN)GetProcAddress(callib, "calDeviceOpen" );
-    __calDeviceClose = (ATI_DEVICECLOSE)GetProcAddress(callib, "calDeviceClose" );
+    p_calInit = (ATI_GDI)GetProcAddress(callib, "calInit" );
+    p_calGetVersion = (ATI_VER)GetProcAddress(callib, "calGetVersion" );
+    p_calDeviceGetCount = (ATI_GDC)GetProcAddress(callib, "calDeviceGetCount" );
+    p_calDeviceGetAttribs =(ATI_ATTRIBS)GetProcAddress(callib, "calDeviceGetAttribs" );
+    p_calShutdown = (ATI_CLOSE)GetProcAddress(callib, "calShutdown" );
+    p_calDeviceGetInfo = (ATI_INFO)GetProcAddress(callib, "calDeviceGetInfo" );
+    p_calDeviceGetStatus = (ATI_STATUS)GetProcAddress(callib, "calDeviceGetStatus" );
+    p_calDeviceOpen = (ATI_DEVICEOPEN)GetProcAddress(callib, "calDeviceOpen" );
+    p_calDeviceClose = (ATI_DEVICECLOSE)GetProcAddress(callib, "calDeviceClose" );
 
 #else
 
@@ -167,52 +167,52 @@ void COPROC_ATI::get(
 
     atirt_detected = true;
 
-    __calInit = (int(*)()) dlsym(callib, "calInit");
-    __calGetVersion = (int(*)(CALuint*, CALuint*, CALuint*)) dlsym(callib, "calGetVersion");
-    __calDeviceGetCount = (int(*)(CALuint*)) dlsym(callib, "calDeviceGetCount");
-    __calDeviceGetAttribs = (int(*)(CALdeviceattribs*, CALuint)) dlsym(callib, "calDeviceGetAttribs");
-    __calShutdown = (int(*)()) dlsym(callib, "calShutdown");
-    __calDeviceGetInfo = (int(*)(CALdeviceinfo*, CALuint)) dlsym(callib, "calDeviceGetInfo");
-    __calDeviceGetStatus = (int(*)(CALdevicestatus*, CALdevice)) dlsym(callib, "calDeviceGetStatus");
-    __calDeviceOpen = (int(*)(CALdevice*, CALuint)) dlsym(callib, "calDeviceOpen");
-    __calDeviceClose = (int(*)(CALdevice)) dlsym(callib, "calDeviceClose");
+    p_calInit = (int(*)()) dlsym(callib, "calInit");
+    p_calGetVersion = (int(*)(CALuint*, CALuint*, CALuint*)) dlsym(callib, "calGetVersion");
+    p_calDeviceGetCount = (int(*)(CALuint*)) dlsym(callib, "calDeviceGetCount");
+    p_calDeviceGetAttribs = (int(*)(CALdeviceattribs*, CALuint)) dlsym(callib, "calDeviceGetAttribs");
+    p_calShutdown = (int(*)()) dlsym(callib, "calShutdown");
+    p_calDeviceGetInfo = (int(*)(CALdeviceinfo*, CALuint)) dlsym(callib, "calDeviceGetInfo");
+    p_calDeviceGetStatus = (int(*)(CALdevicestatus*, CALdevice)) dlsym(callib, "calDeviceGetStatus");
+    p_calDeviceOpen = (int(*)(CALdevice*, CALuint)) dlsym(callib, "calDeviceOpen");
+    p_calDeviceClose = (int(*)(CALdevice)) dlsym(callib, "calDeviceClose");
 
 #endif
 
-    if (!__calInit) {
+    if (!p_calInit) {
         warnings.push_back("calInit() missing from CAL library");
         goto leave;
     }
-    if (!__calGetVersion) {
+    if (!p_calGetVersion) {
         warnings.push_back("calGetVersion() missing from CAL library");
         goto leave;
     }
-    if (!__calDeviceGetCount) {
+    if (!p_calDeviceGetCount) {
         warnings.push_back("calDeviceGetCount() missing from CAL library");
         goto leave;
     }
-    if (!__calDeviceGetAttribs) {
+    if (!p_calDeviceGetAttribs) {
         warnings.push_back("calDeviceGetAttribs() missing from CAL library");
         goto leave;
     }
-    if (!__calDeviceGetInfo) {
+    if (!p_calDeviceGetInfo) {
         warnings.push_back("calDeviceGetInfo() missing from CAL library");
         goto leave;
     }
 
-    retval = (*__calInit)();
+    retval = (*p_calInit)();
     if (retval != CAL_RESULT_OK) {
         snprintf(buf, sizeof(buf), "calInit() returned %d", retval);
         warnings.push_back(buf);
         goto leave;
     }
-    retval = (*__calDeviceGetCount)(&numDevices);
+    retval = (*p_calDeviceGetCount)(&numDevices);
     if (retval != CAL_RESULT_OK) {
         snprintf(buf, sizeof(buf), "calDeviceGetCount() returned %d", retval);
         warnings.push_back(buf);
         goto leave;
     }
-    retval = (*__calGetVersion)(&cal_major, &cal_minor, &cal_imp);
+    retval = (*p_calGetVersion)(&cal_major, &cal_minor, &cal_imp);
     if (retval != CAL_RESULT_OK) {
         snprintf(buf, sizeof(buf), "calGetVersion() returned %d", retval);
         warnings.push_back(buf);
@@ -225,13 +225,13 @@ void COPROC_ATI::get(
     }
 
     for (CALuint i=0; i<numDevices; i++) {
-        retval = (*__calDeviceGetInfo)(&info, i);
+        retval = (*p_calDeviceGetInfo)(&info, i);
         if (retval != CAL_RESULT_OK) {
             snprintf(buf, sizeof(buf), "calDeviceGetInfo() returned %d", retval);
             warnings.push_back(buf);
             goto leave;
         }
-        retval = (*__calDeviceGetAttribs)(&attribs, i);
+        retval = (*p_calDeviceGetAttribs)(&attribs, i);
         if (retval != CAL_RESULT_OK) {
             snprintf(buf, sizeof(buf), "calDeviceGetAttribs() returned %d", retval);
             warnings.push_back(buf);
@@ -383,7 +383,7 @@ void COPROC_ATI::get(
 
     // shut down CAL, otherwise Lenovo won't be able to switch to low-power GPU
     //
-    retval = (*__calShutdown)();
+    retval = (*p_calShutdown)();
 
     if (!ati_gpus.size()) {
         warnings.push_back("No ATI GPUs found");
@@ -467,20 +467,20 @@ static void get_available_ati_ram(COPROC_ATI &cc, vector<string>& warnings) {
 
     st.struct_size = sizeof(CALdevicestatus);
 
-    if (!__calDeviceOpen) {
+    if (!p_calDeviceOpen) {
         warnings.push_back("calDeviceOpen() missing from CAL library");
         return;
     }
-    if (!__calDeviceGetStatus) {
+    if (!p_calDeviceGetStatus) {
         warnings.push_back("calDeviceGetStatus() missing from CAL library");
         return;
     }
-    if (!__calDeviceClose) {
+    if (!p_calDeviceClose) {
         warnings.push_back("calDeviceClose() missing from CAL library");
         return;
     }
 
-    retval = (*__calDeviceOpen)(&dev, cc.device_num);
+    retval = (*p_calDeviceOpen)(&dev, cc.device_num);
     if (retval) {
         snprintf(buf, sizeof(buf),
             "[coproc] calDeviceOpen(%d) returned %d", cc.device_num, retval
@@ -488,16 +488,16 @@ static void get_available_ati_ram(COPROC_ATI &cc, vector<string>& warnings) {
         warnings.push_back(buf);
         return;
     }
-    retval = (*__calDeviceGetStatus)(&st, dev);
+    retval = (*p_calDeviceGetStatus)(&st, dev);
     if (retval) {
         snprintf(buf, sizeof(buf),
             "[coproc] calDeviceGetStatus(%d) returned %d",
             cc.device_num, retval
         );
         warnings.push_back(buf);
-        (*__calDeviceClose)(dev);
+        (*p_calDeviceClose)(dev);
         return;
     }
     cc.available_ram = st.availLocalRAM*MEGA;
-    (*__calDeviceClose)(dev);
+    (*p_calDeviceClose)(dev);
 }
diff --git a/client/gpu_detect.cpp b/client/gpu_detect.cpp
index c31d246..e777f48 100644
--- a/client/gpu_detect.cpp
+++ b/client/gpu_detect.cpp
@@ -17,6 +17,38 @@
 
 
 // client-specific GPU code.  Mostly GPU detection
+//
+//  theory of operation:
+//  there are two ways of detecting GPUs:
+//  - vendor-specific libraries like CUDA and CAL,
+//      which detect only that vendor's GPUs
+//  - OpenCL, which can detect multiple types of GPUs,
+//      including nvidia/amd/intel as well was new types
+//      such as ARM integrated GPUs
+//
+//  These libraries sometimes crash,
+//  and we've been unable to trap these via signal and exception handlers.
+//  So we do GPU detection in a separate process (boinc --detect_gpus)
+//  This process writes an XML file "coproc_info.xml" containing
+//  - lists of GPU detected via CUDA and CAL
+//  - lists of nvidia/amd/intel GPUs detected via OpenCL
+//  - a list of other GPUs detected via OpenCL
+//
+//  When the process finishes, the client parses the info file.
+//  Then for each vendor it "correlates" the GPUs, which includes:
+//  - matching up the OpenCL and vendor-specific descriptions, if both exist
+//  - finding the most capable GPU, and seeing which other GPUs
+//      are similar to it in hardware and RAM.
+//      Other GPUs are not used.
+//  - copy these to the COPROCS structure
+//
+//  Also, some dual-GPU laptops (e.g., Macbook Pro) don't power
+//  down the more powerful GPU until all applications which used
+//  them exit. Doing GPU detection in a second, short-lived process
+//  saves battery life on these laptops.
+//
+//  GPUs can also be explicitly described in cc_config.xml
+
 
 #ifndef _DEBUG
 #define USE_CHILD_PROCESS_TO_DETECT_GPUS 1
@@ -101,7 +133,7 @@ void COPROCS::get(
 }
 
 
-void COPROCS::detect_gpus(std::vector<std::string> &warnings) {
+void COPROCS::detect_gpus(vector<string> &warnings) {
 #ifdef _WIN32
     try {
         nvidia.get(warnings);
@@ -162,7 +194,7 @@ void COPROCS::detect_gpus(std::vector<std::string> &warnings) {
 
 void COPROCS::correlate_gpus(
     bool use_all,
-    std::vector<std::string> &descs,
+    vector<string> &descs,
     IGNORE_GPU_INSTANCE &ignore_gpu_instance
 ) {
     unsigned int i;
@@ -174,6 +206,7 @@ void COPROCS::correlate_gpus(
     correlate_opencl(use_all, ignore_gpu_instance);
 
     // NOTE: OpenCL can report a max of only 4GB.  
+    //
     for (i=0; i<cpu_opencls.size(); i++) {
         gstate.host_info.opencl_cpu_prop[gstate.host_info.num_opencl_cpu_platforms++] = cpu_opencls[i];
     }
@@ -346,15 +379,6 @@ int COPROCS::add_other_coproc_types() {
     return retval;
 }
 
-// Some dual-GPU laptops (e.g., Macbook Pro) don't 
-// power down the more powerful GPU until all
-// applications which used them exit.  To save
-// battery life, the client launches a second
-// instance of the client as a child process to 
-// detect and get information about the GPUs.
-// The child process writes the info to a temp
-// file which our main client then reads.
-//
 void COPROCS::set_path_to_client(char *path) {
     client_path = path;
     // The path may be relative to the current directory
diff --git a/client/gpu_detect.h b/client/gpu_detect.h
index 75b32a6..3894c6a 100644
--- a/client/gpu_detect.h
+++ b/client/gpu_detect.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _GPU_DETECT_H_
-#define _GPU_DETECT_H_
+#ifndef BOINC_GPU_DETECT_H
+#define BOINC_GPU_DETECT_H
 
 #include "coproc.h"
 
diff --git a/client/gpu_nvidia.cpp b/client/gpu_nvidia.cpp
index b7a8f52..21e7df6 100644
--- a/client/gpu_nvidia.cpp
+++ b/client/gpu_nvidia.cpp
@@ -76,6 +76,7 @@
 #define DLOPEN_NO_WARN
 #include <mach-o/dyld.h>
 #include <Carbon/Carbon.h>
+#include "hostinfo.h"
 #endif
 #include "config.h"
 #include <dlfcn.h>
@@ -200,33 +201,33 @@ typedef int (__stdcall *CUDA_MA)(unsigned int*, size_t);
 typedef int (__stdcall *CUDA_MF)(unsigned int);
 typedef int (__stdcall *CUDA_MGI)(size_t*, size_t*);
 
-CUDA_GDC __cuDeviceGetCount = NULL;
-CUDA_GDV __cuDriverGetVersion = NULL;
-CUDA_GDI __cuInit = NULL;
-CUDA_GDG __cuDeviceGet = NULL;
-CUDA_GDA __cuDeviceGetAttribute = NULL;
-CUDA_GDN __cuDeviceGetName = NULL;
-CUDA_GDM __cuDeviceTotalMem = NULL;
-CUDA_GDCC __cuDeviceComputeCapability = NULL;
-CUDA_CC __cuCtxCreate = NULL;
-CUDA_CD __cuCtxDestroy = NULL;
-CUDA_MA __cuMemAlloc = NULL;
-CUDA_MF __cuMemFree = NULL;
-CUDA_MGI __cuMemGetInfo = NULL;
+CUDA_GDC p_cuDeviceGetCount = NULL;
+CUDA_GDV p_cuDriverGetVersion = NULL;
+CUDA_GDI p_cuInit = NULL;
+CUDA_GDG p_cuDeviceGet = NULL;
+CUDA_GDA p_cuDeviceGetAttribute = NULL;
+CUDA_GDN p_cuDeviceGetName = NULL;
+CUDA_GDM p_cuDeviceTotalMem = NULL;
+CUDA_GDCC p_cuDeviceComputeCapability = NULL;
+CUDA_CC p_cuCtxCreate = NULL;
+CUDA_CD p_cuCtxDestroy = NULL;
+CUDA_MA p_cuMemAlloc = NULL;
+CUDA_MF p_cuMemFree = NULL;
+CUDA_MGI p_cuMemGetInfo = NULL;
 #else
-int (*__cuInit)(unsigned int);
-int (*__cuDeviceGetCount)(int*);
-int (*__cuDriverGetVersion)(int*);
-int (*__cuDeviceGet)(int*, int);
-int (*__cuDeviceGetAttribute)(int*, int, int);
-int (*__cuDeviceGetName)(char*, int, int);
-int (*__cuDeviceTotalMem)(size_t*, int);
-int (*__cuDeviceComputeCapability)(int*, int*, int);
-int (*__cuCtxCreate)(void**, unsigned int, unsigned int);
-int (*__cuCtxDestroy)(void*);
-int (*__cuMemAlloc)(unsigned int*, size_t);
-int (*__cuMemFree)(unsigned int);
-int (*__cuMemGetInfo)(size_t*, size_t*);
+int (*p_cuInit)(unsigned int);
+int (*p_cuDeviceGetCount)(int*);
+int (*p_cuDriverGetVersion)(int*);
+int (*p_cuDeviceGet)(int*, int);
+int (*p_cuDeviceGetAttribute)(int*, int, int);
+int (*p_cuDeviceGetName)(char*, int, int);
+int (*p_cuDeviceTotalMem)(size_t*, int);
+int (*p_cuDeviceComputeCapability)(int*, int*, int);
+int (*p_cuCtxCreate)(void**, unsigned int, unsigned int);
+int (*p_cuCtxDestroy)(void*);
+int (*p_cuMemAlloc)(unsigned int*, size_t);
+int (*p_cuMemFree)(unsigned int);
+int (*p_cuMemGetInfo)(size_t*, size_t*);
 #endif
 
 // NVIDIA interfaces are documented here:
@@ -247,19 +248,19 @@ void COPROC_NVIDIA::get(
         warnings.push_back("No NVIDIA library found");
         return;
     }
-    __cuDeviceGetCount = (CUDA_GDC)GetProcAddress( cudalib, "cuDeviceGetCount" );
-    __cuDriverGetVersion = (CUDA_GDV)GetProcAddress( cudalib, "cuDriverGetVersion" );
-    __cuInit = (CUDA_GDI)GetProcAddress( cudalib, "cuInit" );
-    __cuDeviceGet = (CUDA_GDG)GetProcAddress( cudalib, "cuDeviceGet" );
-    __cuDeviceGetAttribute = (CUDA_GDA)GetProcAddress( cudalib, "cuDeviceGetAttribute" );
-    __cuDeviceGetName = (CUDA_GDN)GetProcAddress( cudalib, "cuDeviceGetName" );
-    __cuDeviceTotalMem = (CUDA_GDM)GetProcAddress( cudalib, "cuDeviceTotalMem" );
-    __cuDeviceComputeCapability = (CUDA_GDCC)GetProcAddress( cudalib, "cuDeviceComputeCapability" );
-    __cuCtxCreate = (CUDA_CC)GetProcAddress( cudalib, "cuCtxCreate" );
-    __cuCtxDestroy = (CUDA_CD)GetProcAddress( cudalib, "cuCtxDestroy" );
-    __cuMemAlloc = (CUDA_MA)GetProcAddress( cudalib, "cuMemAlloc" );
-    __cuMemFree = (CUDA_MF)GetProcAddress( cudalib, "cuMemFree" );
-    __cuMemGetInfo = (CUDA_MGI)GetProcAddress( cudalib, "cuMemGetInfo" );
+    p_cuDeviceGetCount = (CUDA_GDC)GetProcAddress( cudalib, "cuDeviceGetCount" );
+    p_cuDriverGetVersion = (CUDA_GDV)GetProcAddress( cudalib, "cuDriverGetVersion" );
+    p_cuInit = (CUDA_GDI)GetProcAddress( cudalib, "cuInit" );
+    p_cuDeviceGet = (CUDA_GDG)GetProcAddress( cudalib, "cuDeviceGet" );
+    p_cuDeviceGetAttribute = (CUDA_GDA)GetProcAddress( cudalib, "cuDeviceGetAttribute" );
+    p_cuDeviceGetName = (CUDA_GDN)GetProcAddress( cudalib, "cuDeviceGetName" );
+    p_cuDeviceTotalMem = (CUDA_GDM)GetProcAddress( cudalib, "cuDeviceTotalMem" );
+    p_cuDeviceComputeCapability = (CUDA_GDCC)GetProcAddress( cudalib, "cuDeviceComputeCapability" );
+    p_cuCtxCreate = (CUDA_CC)GetProcAddress( cudalib, "cuCtxCreate" );
+    p_cuCtxDestroy = (CUDA_CD)GetProcAddress( cudalib, "cuCtxDestroy" );
+    p_cuMemAlloc = (CUDA_MA)GetProcAddress( cudalib, "cuMemAlloc" );
+    p_cuMemFree = (CUDA_MF)GetProcAddress( cudalib, "cuMemFree" );
+    p_cuMemGetInfo = (CUDA_MGI)GetProcAddress( cudalib, "cuMemGetInfo" );
 
 #ifndef SIM
     NvAPI_Initialize();
@@ -296,68 +297,70 @@ void* cudalib = NULL;
         warnings.push_back(buf);
         return;
     }
-    __cuDeviceGetCount = (int(*)(int*)) dlsym(cudalib, "cuDeviceGetCount");
-    __cuDriverGetVersion = (int(*)(int*)) dlsym( cudalib, "cuDriverGetVersion" );
-    __cuInit = (int(*)(unsigned int)) dlsym( cudalib, "cuInit" );
-    __cuDeviceGet = (int(*)(int*, int)) dlsym( cudalib, "cuDeviceGet" );
-    __cuDeviceGetAttribute = (int(*)(int*, int, int)) dlsym( cudalib, "cuDeviceGetAttribute" );
-    __cuDeviceGetName = (int(*)(char*, int, int)) dlsym( cudalib, "cuDeviceGetName" );
-    __cuDeviceTotalMem = (int(*)(size_t*, int)) dlsym( cudalib, "cuDeviceTotalMem" );
-    __cuDeviceComputeCapability = (int(*)(int*, int*, int)) dlsym( cudalib, "cuDeviceComputeCapability" );
-    __cuCtxCreate = (int(*)(void**, unsigned int, unsigned int)) dlsym( cudalib, "cuCtxCreate" );
-    __cuCtxDestroy = (int(*)(void*)) dlsym( cudalib, "cuCtxDestroy" );
-    __cuMemAlloc = (int(*)(unsigned int*, size_t)) dlsym( cudalib, "cuMemAlloc" );
-    __cuMemFree = (int(*)(unsigned int)) dlsym( cudalib, "cuMemFree" );
-    __cuMemGetInfo = (int(*)(size_t*, size_t*)) dlsym( cudalib, "cuMemGetInfo" );
+    p_cuDeviceGetCount = (int(*)(int*)) dlsym(cudalib, "cuDeviceGetCount");
+    p_cuDriverGetVersion = (int(*)(int*)) dlsym( cudalib, "cuDriverGetVersion" );
+    p_cuInit = (int(*)(unsigned int)) dlsym( cudalib, "cuInit" );
+    p_cuDeviceGet = (int(*)(int*, int)) dlsym( cudalib, "cuDeviceGet" );
+    p_cuDeviceGetAttribute = (int(*)(int*, int, int)) dlsym( cudalib, "cuDeviceGetAttribute" );
+    p_cuDeviceGetName = (int(*)(char*, int, int)) dlsym( cudalib, "cuDeviceGetName" );
+    p_cuDeviceTotalMem = (int(*)(size_t*, int)) dlsym( cudalib, "cuDeviceTotalMem" );
+    p_cuDeviceComputeCapability = (int(*)(int*, int*, int)) dlsym( cudalib, "cuDeviceComputeCapability" );
+    p_cuCtxCreate = (int(*)(void**, unsigned int, unsigned int)) dlsym( cudalib, "cuCtxCreate" );
+    p_cuCtxDestroy = (int(*)(void*)) dlsym( cudalib, "cuCtxDestroy" );
+    p_cuMemAlloc = (int(*)(unsigned int*, size_t)) dlsym( cudalib, "cuMemAlloc" );
+    p_cuMemFree = (int(*)(unsigned int)) dlsym( cudalib, "cuMemFree" );
+    p_cuMemGetInfo = (int(*)(size_t*, size_t*)) dlsym( cudalib, "cuMemGetInfo" );
 #endif
 
-    if (!__cuDriverGetVersion) {
+    if (!p_cuDriverGetVersion) {
         warnings.push_back("cuDriverGetVersion() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuInit) {
+    if (!p_cuInit) {
         warnings.push_back("cuInit() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuDeviceGetCount) {
+    if (!p_cuDeviceGetCount) {
         warnings.push_back("cuDeviceGetCount() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuDeviceGet) {
+    if (!p_cuDeviceGet) {
         warnings.push_back("cuDeviceGet() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuDeviceGetAttribute) {
+    if (!p_cuDeviceGetAttribute) {
         warnings.push_back("cuDeviceGetAttribute() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuDeviceTotalMem) {
+    if (!p_cuDeviceTotalMem) {
         warnings.push_back("cuDeviceTotalMem() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuDeviceComputeCapability) {
+    if (!p_cuDeviceComputeCapability) {
         warnings.push_back("cuDeviceComputeCapability() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuMemAlloc) {
+    if (!p_cuMemAlloc) {
         warnings.push_back("cuMemAlloc() missing from NVIDIA library");
         goto leave;
     }
-    if (!__cuMemFree) {
+    if (!p_cuMemFree) {
         warnings.push_back("cuMemFree() missing from NVIDIA library");
         goto leave;
     }
 
+    retval = (*p_cuInit)(0);
 #ifdef __APPLE__
     // If system is just booting, CUDA driver may not be ready yet
-    for (int retryCount=0; retryCount<120; retryCount++) {
-#endif
-        retval = (*__cuInit)(0);
-#ifdef __APPLE__
-        if (!retval) break;
-        if (TickCount() > (300*60)) break;   // Don't retry if system has been up for over 5 minutes
-        boinc_sleep(1.);
-        continue;
+    if (retval) {
+        if (get_system_uptime() < 300) {   // Retry only if system has been up for under 5 minutes
+            for (int retryCount=0; retryCount<120; retryCount++) {
+                retval = (*p_cuInit)(0);
+                if (!retval) break;
+                boinc_sleep(1.);
+                continue;
+            }
+        }
     }
 #endif
     
@@ -367,7 +370,7 @@ void* cudalib = NULL;
         goto leave;
     }
 
-    retval = (*__cuDriverGetVersion)(&cuda_version);
+    retval = (*p_cuDriverGetVersion)(&cuda_version);
     if (retval) {
         sprintf(buf, "cuDriverGetVersion() returned %d", retval);
         warnings.push_back(buf);
@@ -376,7 +379,7 @@ void* cudalib = NULL;
 
     have_cuda = true;
 
-    retval = (*__cuDeviceGetCount)(&cuda_ndevs);
+    retval = (*p_cuDeviceGetCount)(&cuda_ndevs);
     if (retval) {
         sprintf(buf, "cuDeviceGetCount() returned %d", retval);
         warnings.push_back(buf);
@@ -388,44 +391,44 @@ void* cudalib = NULL;
     for (j=0; j<cuda_ndevs; j++) {
         memset(&cc.prop, 0, sizeof(cc.prop));
         CUdevice device;
-        retval = (*__cuDeviceGet)(&device, j);
+        retval = (*p_cuDeviceGet)(&device, j);
         if (retval) {
             sprintf(buf, "cuDeviceGet(%d) returned %d", j, retval);
             warnings.push_back(buf);
             goto leave;
         }
-        (*__cuDeviceGetName)(cc.prop.name, 256, device);
+        (*p_cuDeviceGetName)(cc.prop.name, 256, device);
         if (retval) {
             sprintf(buf, "cuDeviceGetName(%d) returned %d", j, retval);
             warnings.push_back(buf);
             goto leave;
         }
-        (*__cuDeviceComputeCapability)(&cc.prop.major, &cc.prop.minor, device);
-        (*__cuDeviceTotalMem)(&global_mem, device);
+        (*p_cuDeviceComputeCapability)(&cc.prop.major, &cc.prop.minor, device);
+        (*p_cuDeviceTotalMem)(&global_mem, device);
         cc.prop.totalGlobalMem = (double) global_mem;
-        (*__cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK, device);
+        (*p_cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK, device);
         cc.prop.sharedMemPerBlock = (double) itemp;
-        (*__cuDeviceGetAttribute)(&cc.prop.regsPerBlock, CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.warpSize, CU_DEVICE_ATTRIBUTE_WARP_SIZE, device);
-        (*__cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_MAX_PITCH, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.regsPerBlock, CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.warpSize, CU_DEVICE_ATTRIBUTE_WARP_SIZE, device);
+        (*p_cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_MAX_PITCH, device);
         cc.prop.memPitch = (double) itemp;
-        retval = (*__cuDeviceGetAttribute)(&cc.prop.maxThreadsPerBlock, CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK, device);
-        retval = (*__cuDeviceGetAttribute)(&cc.prop.maxThreadsDim[0], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.maxThreadsDim[1], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.maxThreadsDim[2], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.maxGridSize[0], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.maxGridSize[1], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.maxGridSize[2], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.clockRate, CU_DEVICE_ATTRIBUTE_CLOCK_RATE, device);
-        (*__cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY, device);
+        retval = (*p_cuDeviceGetAttribute)(&cc.prop.maxThreadsPerBlock, CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK, device);
+        retval = (*p_cuDeviceGetAttribute)(&cc.prop.maxThreadsDim[0], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.maxThreadsDim[1], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.maxThreadsDim[2], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.maxGridSize[0], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.maxGridSize[1], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.maxGridSize[2], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.clockRate, CU_DEVICE_ATTRIBUTE_CLOCK_RATE, device);
+        (*p_cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY, device);
         cc.prop.totalConstMem = (double) itemp;
-        (*__cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT, device);
+        (*p_cuDeviceGetAttribute)(&itemp, CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT, device);
         cc.prop.textureAlignment = (double) itemp;
-        (*__cuDeviceGetAttribute)(&cc.prop.deviceOverlap, CU_DEVICE_ATTRIBUTE_GPU_OVERLAP, device);
-        (*__cuDeviceGetAttribute)(&cc.prop.multiProcessorCount, CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT, device);
-        (*__cuDeviceGetAttribute)(&cc.pci_info.bus_id, CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, device);
-        (*__cuDeviceGetAttribute)(&cc.pci_info.device_id, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID, device);
-        (*__cuDeviceGetAttribute)(&cc.pci_info.domain_id, CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.deviceOverlap, CU_DEVICE_ATTRIBUTE_GPU_OVERLAP, device);
+        (*p_cuDeviceGetAttribute)(&cc.prop.multiProcessorCount, CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT, device);
+        (*p_cuDeviceGetAttribute)(&cc.pci_info.bus_id, CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, device);
+        (*p_cuDeviceGetAttribute)(&cc.pci_info.device_id, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID, device);
+        (*p_cuDeviceGetAttribute)(&cc.pci_info.domain_id, CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID, device);
         if (cc.prop.major <= 0) continue;  // major == 0 means emulation
         if (cc.prop.major > 100) continue;  // e.g. 9999 is an error
 #if defined(_WIN32) && !defined(SIM)
@@ -536,24 +539,24 @@ static void get_available_nvidia_ram(COPROC_NVIDIA &cc, vector<string>& warnings
     char buf[256];
     
     cc.available_ram = cc.prop.totalGlobalMem;
-    if (!__cuDeviceGet) {
+    if (!p_cuDeviceGet) {
         warnings.push_back("cuDeviceGet() missing from NVIDIA library");
         return;
     }
-    if (!__cuCtxCreate) {
+    if (!p_cuCtxCreate) {
         warnings.push_back("cuCtxCreate() missing from NVIDIA library");
         return;
     }
-    if (!__cuCtxDestroy) {
+    if (!p_cuCtxDestroy) {
         warnings.push_back("cuCtxDestroy() missing from NVIDIA library");
         return;
     }
-    if (!__cuMemGetInfo) {
+    if (!p_cuMemGetInfo) {
         warnings.push_back("cuMemGetInfo() missing from NVIDIA library");
         return;
     }
 
-    retval = (*__cuDeviceGet)(&device, cc.device_num);
+    retval = (*p_cuDeviceGet)(&device, cc.device_num);
     if (retval) {
         snprintf(buf, sizeof(buf),
             "[coproc] cuDeviceGet(%d) returned %d", cc.device_num, retval
@@ -561,7 +564,7 @@ static void get_available_nvidia_ram(COPROC_NVIDIA &cc, vector<string>& warnings
         warnings.push_back(buf);
         return;
     }
-    retval = (*__cuCtxCreate)(&ctx, 0, device);
+    retval = (*p_cuCtxCreate)(&ctx, 0, device);
     if (retval) {
         snprintf(buf, sizeof(buf),
             "[coproc] cuCtxCreate(%d) returned %d", cc.device_num, retval
@@ -569,16 +572,16 @@ static void get_available_nvidia_ram(COPROC_NVIDIA &cc, vector<string>& warnings
         warnings.push_back(buf);
         return;
     }
-    retval = (*__cuMemGetInfo)(&memfree, &memtotal);
+    retval = (*p_cuMemGetInfo)(&memfree, &memtotal);
     if (retval) {
         snprintf(buf, sizeof(buf),
             "[coproc] cuMemGetInfo(%d) returned %d", cc.device_num, retval
         );
         warnings.push_back(buf);
-        (*__cuCtxDestroy)(ctx);
+        (*p_cuCtxDestroy)(ctx);
         return;
     }
-    (*__cuCtxDestroy)(ctx);
+    (*p_cuCtxDestroy)(ctx);
     cc.available_ram = (double) memfree;
 }
 
@@ -599,11 +602,11 @@ static void get_available_nvidia_ram(COPROC_NVIDIA &cc, vector<string>& warnings
 bool COPROC_NVIDIA::check_running_graphics_app() {
     int retval, j;
     bool change = false;
-    if (!__cuDeviceGet) {
+    if (!p_cuDeviceGet) {
         warnings.push_back("cuDeviceGet() missing from NVIDIA library");
         return;
     }
-    if (!__cuDeviceGetAttribute) {
+    if (!p_cuDeviceGetAttribute) {
         warnings.push_back("cuDeviceGetAttribute() missing from NVIDIA library");
         return;
     }
@@ -611,9 +614,9 @@ bool COPROC_NVIDIA::check_running_graphics_app() {
     for (j=0; j<count; j++) {
         bool new_val = true;
         int device, kernel_timeout;
-        retval = (*__cuDeviceGet)(&device, j);
+        retval = (*p_cuDeviceGet)(&device, j);
         if (!retval) {
-            retval = (*__cuDeviceGetAttribute)(&kernel_timeout, CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT, device);
+            retval = (*p_cuDeviceGetAttribute)(&kernel_timeout, CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT, device);
             if (!retval && !kernel_timeout) {
                 new_val = false;
             }
diff --git a/client/gpu_opencl.cpp b/client/gpu_opencl.cpp
index 5e994a5..76d36e8 100644
--- a/client/gpu_opencl.cpp
+++ b/client/gpu_opencl.cpp
@@ -57,35 +57,35 @@ typedef cl_int (__stdcall *CL_PLATFORMINFO) (cl_platform_id, cl_platform_info, s
 typedef cl_int (__stdcall *CL_DEVICEIDS)(cl_platform_id, cl_device_type, cl_uint, cl_device_id*, cl_uint*);
 typedef cl_int (__stdcall *CL_INFO) (cl_device_id, cl_device_info, size_t, void*, size_t*);
 
-CL_PLATFORMIDS  __clGetPlatformIDs = NULL;
-CL_PLATFORMINFO __clGetPlatformInfo = NULL;
-CL_DEVICEIDS    __clGetDeviceIDs = NULL;
-CL_INFO         __clGetDeviceInfo = NULL;
+CL_PLATFORMIDS  p_clGetPlatformIDs = NULL;
+CL_PLATFORMINFO p_clGetPlatformInfo = NULL;
+CL_DEVICEIDS    p_clGetDeviceIDs = NULL;
+CL_INFO         p_clGetDeviceInfo = NULL;
 
 #else
 
 void* opencl_lib = NULL;
 
-cl_int (*__clGetPlatformIDs)(
+cl_int (*p_clGetPlatformIDs)(
     cl_uint,         // num_entries,
     cl_platform_id*, // platforms
     cl_uint *        // num_platforms
 );
-cl_int (*__clGetPlatformInfo)(
+cl_int (*p_clGetPlatformInfo)(
     cl_platform_id,  // platform
     cl_platform_info, // param_name
     size_t,          // param_value_size
     void*,           // param_value
     size_t*          // param_value_size_ret
 );
-cl_int (*__clGetDeviceIDs)(
+cl_int (*p_clGetDeviceIDs)(
     cl_platform_id,  // platform
     cl_device_type,  // device_type
     cl_uint,         // num_entries
     cl_device_id*,   // devices
     cl_uint*         // num_devices
 );
-cl_int (*__clGetDeviceInfo)(
+cl_int (*p_clGetDeviceInfo)(
     cl_device_id,    // device
     cl_device_info,  // param_name
     size_t,          // param_value_size
@@ -175,10 +175,10 @@ void COPROCS::get_opencl(
         return;
     }
 
-    __clGetPlatformIDs = (CL_PLATFORMIDS)GetProcAddress( opencl_lib, "clGetPlatformIDs" );
-    __clGetPlatformInfo = (CL_PLATFORMINFO)GetProcAddress( opencl_lib, "clGetPlatformInfo" );
-    __clGetDeviceIDs = (CL_DEVICEIDS)GetProcAddress( opencl_lib, "clGetDeviceIDs" );
-    __clGetDeviceInfo = (CL_INFO)GetProcAddress( opencl_lib, "clGetDeviceInfo" );
+    p_clGetPlatformIDs = (CL_PLATFORMIDS)GetProcAddress( opencl_lib, "clGetPlatformIDs" );
+    p_clGetPlatformInfo = (CL_PLATFORMINFO)GetProcAddress( opencl_lib, "clGetPlatformInfo" );
+    p_clGetDeviceIDs = (CL_DEVICEIDS)GetProcAddress( opencl_lib, "clGetDeviceIDs" );
+    p_clGetDeviceInfo = (CL_INFO)GetProcAddress( opencl_lib, "clGetDeviceInfo" );
 #else
 #ifdef __APPLE__
     opencl_lib = dlopen("/System/Library/Frameworks/OpenCL.framework/Versions/Current/OpenCL", RTLD_NOW);
@@ -193,30 +193,30 @@ void COPROCS::get_opencl(
         warnings.push_back(buf);
         return;
     }
-    __clGetPlatformIDs = (cl_int(*)(cl_uint, cl_platform_id*, cl_uint*)) dlsym( opencl_lib, "clGetPlatformIDs" );
-    __clGetPlatformInfo = (cl_int(*)(cl_platform_id, cl_platform_info, size_t, void*, size_t*)) dlsym( opencl_lib, "clGetPlatformInfo" );
-    __clGetDeviceIDs = (cl_int(*)(cl_platform_id, cl_device_type, cl_uint, cl_device_id*, cl_uint*)) dlsym( opencl_lib, "clGetDeviceIDs" );
-    __clGetDeviceInfo = (cl_int(*)(cl_device_id, cl_device_info, size_t, void*, size_t*)) dlsym( opencl_lib, "clGetDeviceInfo" );
+    p_clGetPlatformIDs = (cl_int(*)(cl_uint, cl_platform_id*, cl_uint*)) dlsym( opencl_lib, "clGetPlatformIDs" );
+    p_clGetPlatformInfo = (cl_int(*)(cl_platform_id, cl_platform_info, size_t, void*, size_t*)) dlsym( opencl_lib, "clGetPlatformInfo" );
+    p_clGetDeviceIDs = (cl_int(*)(cl_platform_id, cl_device_type, cl_uint, cl_device_id*, cl_uint*)) dlsym( opencl_lib, "clGetDeviceIDs" );
+    p_clGetDeviceInfo = (cl_int(*)(cl_device_id, cl_device_info, size_t, void*, size_t*)) dlsym( opencl_lib, "clGetDeviceInfo" );
 #endif
 
-    if (!__clGetPlatformIDs) {
+    if (!p_clGetPlatformIDs) {
         warnings.push_back("clGetPlatformIDs() missing from OpenCL library");
         goto leave;
     }
-    if (!__clGetPlatformInfo) {
+    if (!p_clGetPlatformInfo) {
         warnings.push_back("clGetPlatformInfo() missing from OpenCL library");
         goto leave;
     }
-    if (!__clGetDeviceIDs) {
+    if (!p_clGetDeviceIDs) {
         warnings.push_back("clGetDeviceIDs() missing from OpenCL library");
         goto leave;
     }
-    if (!__clGetDeviceInfo) {
+    if (!p_clGetDeviceInfo) {
         warnings.push_back("clGetDeviceInfo() missing from OpenCL library");
         goto leave;
     }
 
-    ciErrNum = (*__clGetPlatformIDs)(MAX_OPENCL_PLATFORMS, platforms, &num_platforms);
+    ciErrNum = (*p_clGetPlatformIDs)(MAX_OPENCL_PLATFORMS, platforms, &num_platforms);
     if ((ciErrNum != CL_SUCCESS) || (num_platforms == 0)) {
         warnings.push_back("clGetPlatformIDs() failed to return any OpenCL platforms");
         goto leave;
@@ -236,7 +236,7 @@ void COPROCS::get_opencl(
     }
 
     for (platform_index=0; platform_index<num_platforms; ++platform_index) {
-        ciErrNum = (*__clGetPlatformInfo)(
+        ciErrNum = (*p_clGetPlatformInfo)(
             platforms[platform_index], CL_PLATFORM_VERSION,
             sizeof(platform_version), &platform_version, NULL
         );
@@ -249,7 +249,7 @@ void COPROCS::get_opencl(
             continue;
         }
 
-        ciErrNum = (*__clGetPlatformInfo)(
+        ciErrNum = (*p_clGetPlatformInfo)(
             platforms[platform_index], CL_PLATFORM_VENDOR,
             sizeof(platform_vendor), &platform_vendor, NULL
         );
@@ -263,7 +263,7 @@ void COPROCS::get_opencl(
 
         //////////// CPU //////////////
 
-        ciErrNum = (*__clGetDeviceIDs)(
+        ciErrNum = (*p_clGetDeviceIDs)(
             platforms[platform_index], (CL_DEVICE_TYPE_CPU),
             MAX_COPROC_INSTANCES, devices, &num_devices
         );
@@ -301,7 +301,7 @@ void COPROCS::get_opencl(
 
         //////////// GPUs and Accelerators //////////////
         
-        ciErrNum = (*__clGetDeviceIDs)(
+        ciErrNum = (*p_clGetDeviceIDs)(
             platforms[platform_index],
             (CL_DEVICE_TYPE_GPU | CL_DEVICE_TYPE_ACCELERATOR),
             MAX_COPROC_INSTANCES, devices, &num_devices
@@ -666,7 +666,7 @@ cl_int COPROCS::get_opencl_info(
     cl_int ciErrNum;
     char buf[256];
 
-    ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_NAME, sizeof(prop.name), prop.name, NULL);
+    ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_NAME, sizeof(prop.name), prop.name, NULL);
     if ((ciErrNum != CL_SUCCESS) || (prop.name[0] == 0)) {
         snprintf(buf, sizeof(buf),
             "clGetDeviceInfo failed to get name for device %d",
@@ -676,7 +676,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_VENDOR, sizeof(prop.vendor), prop.vendor, NULL);
+    ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_VENDOR, sizeof(prop.vendor), prop.vendor, NULL);
     if ((ciErrNum != CL_SUCCESS) || (prop.vendor[0] == 0)) {
         snprintf(buf, sizeof(buf),
             "clGetDeviceInfo failed to get vendor for device %d",
@@ -686,7 +686,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_VENDOR_ID, sizeof(prop.vendor_id), &prop.vendor_id, NULL);
+    ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_VENDOR_ID, sizeof(prop.vendor_id), &prop.vendor_id, NULL);
     if (ciErrNum != CL_SUCCESS) {
         snprintf(buf, sizeof(buf),
             "clGetDeviceInfo failed to get vendor ID for device %d",
@@ -696,7 +696,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_AVAILABLE, sizeof(prop.available), &prop.available, NULL);
+    ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_AVAILABLE, sizeof(prop.available), &prop.available, NULL);
     if (ciErrNum != CL_SUCCESS) {
         snprintf(buf, sizeof(buf),
             "clGetDeviceInfo failed to get availability for device %d",
@@ -706,7 +706,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_HALF_FP_CONFIG,
         sizeof(prop.half_fp_config), &prop.half_fp_config, NULL
     );
@@ -723,7 +723,7 @@ cl_int COPROCS::get_opencl_info(
         }
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_SINGLE_FP_CONFIG,
         sizeof(prop.single_fp_config), &prop.single_fp_config, NULL
     );
@@ -736,7 +736,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_DOUBLE_FP_CONFIG,
         sizeof(prop.double_fp_config), &prop.double_fp_config, NULL
     );
@@ -753,7 +753,7 @@ cl_int COPROCS::get_opencl_info(
         }
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_ENDIAN_LITTLE, sizeof(prop.endian_little),
         &prop.endian_little, NULL
     );
@@ -766,7 +766,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_EXECUTION_CAPABILITIES,
         sizeof(prop.execution_capabilities), &prop.execution_capabilities, NULL
     );
@@ -779,7 +779,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_EXTENSIONS, sizeof(prop.extensions),
         prop.extensions, NULL
     );
@@ -792,7 +792,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_GLOBAL_MEM_SIZE,
         sizeof(prop.global_mem_size), &prop.global_mem_size, NULL
     );
@@ -805,7 +805,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_LOCAL_MEM_SIZE,
         sizeof(prop.local_mem_size), &prop.local_mem_size, NULL
     );
@@ -818,7 +818,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_MAX_CLOCK_FREQUENCY,
         sizeof(prop.max_clock_frequency), &prop.max_clock_frequency, NULL
     );
@@ -831,7 +831,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(
+    ciErrNum = (*p_clGetDeviceInfo)(
         prop.device_id, CL_DEVICE_MAX_COMPUTE_UNITS,
         sizeof(prop.max_compute_units), &prop.max_compute_units, NULL
     );
@@ -844,7 +844,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_VERSION, sizeof(prop.opencl_device_version), prop.opencl_device_version, NULL);
+    ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_VERSION, sizeof(prop.opencl_device_version), prop.opencl_device_version, NULL);
     if (ciErrNum != CL_SUCCESS) {
         snprintf(buf, sizeof(buf),
             "clGetDeviceInfo failed to get OpenCL version supported by device %d",
@@ -854,7 +854,7 @@ cl_int COPROCS::get_opencl_info(
         return ciErrNum;
     }
 
-    ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DRIVER_VERSION, sizeof(prop.opencl_driver_version), prop.opencl_driver_version, NULL);
+    ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DRIVER_VERSION, sizeof(prop.opencl_driver_version), prop.opencl_driver_version, NULL);
     if (ciErrNum != CL_SUCCESS) {
         snprintf(buf, sizeof(buf),
             "clGetDeviceInfo failed to get OpenCL driver version for device %d",
@@ -867,7 +867,7 @@ cl_int COPROCS::get_opencl_info(
     // Nvidia Specific Extensions
     if (strstr(prop.extensions, "cl_nv_device_attribute_query") != NULL) {
 
-        ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, sizeof(prop.nv_compute_capability_major), &prop.nv_compute_capability_major, NULL);
+        ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, sizeof(prop.nv_compute_capability_major), &prop.nv_compute_capability_major, NULL);
         if (ciErrNum != CL_SUCCESS) {
             snprintf(buf, sizeof(buf),
                 "clGetDeviceInfo failed to get CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV for device %d",
@@ -877,7 +877,7 @@ cl_int COPROCS::get_opencl_info(
             return ciErrNum;
         }
 
-        ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, sizeof(prop.nv_compute_capability_minor), &prop.nv_compute_capability_minor, NULL);
+        ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, sizeof(prop.nv_compute_capability_minor), &prop.nv_compute_capability_minor, NULL);
         if (ciErrNum != CL_SUCCESS) {
             snprintf(buf, sizeof(buf),
                 "clGetDeviceInfo failed to get CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV for device %d",
@@ -892,9 +892,9 @@ cl_int COPROCS::get_opencl_info(
     // AMD Specific Extensions
     if (strstr(prop.extensions, "cl_amd_device_attribute_query") != NULL) {
 
-        ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_BOARD_NAME_AMD, sizeof(buf), buf, NULL);
+        ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_BOARD_NAME_AMD, sizeof(buf), buf, NULL);
         if (strlen(buf) && ciErrNum == CL_SUCCESS) {
-            strlcpy(prop.name, buf, sizeof(prop.name));
+            safe_strcpy(prop.name, buf);
         } else if (ciErrNum != CL_SUCCESS) {
             snprintf(buf, sizeof(buf),
                 "clGetDeviceInfo failed to get AMD Board Name for device %d",
@@ -904,7 +904,7 @@ cl_int COPROCS::get_opencl_info(
             return ciErrNum;
         }
     
-        ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD, sizeof(prop.amd_simd_per_compute_unit), &prop.amd_simd_per_compute_unit, NULL);
+        ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD, sizeof(prop.amd_simd_per_compute_unit), &prop.amd_simd_per_compute_unit, NULL);
         if (ciErrNum != CL_SUCCESS) {
             snprintf(buf, sizeof(buf),
                 "clGetDeviceInfo failed to get CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD for device %d",
@@ -914,7 +914,7 @@ cl_int COPROCS::get_opencl_info(
             return ciErrNum;
         }
 
-        ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_SIMD_WIDTH_AMD, sizeof(prop.amd_simd_width), &prop.amd_simd_width, NULL);
+        ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_SIMD_WIDTH_AMD, sizeof(prop.amd_simd_width), &prop.amd_simd_width, NULL);
         if (ciErrNum != CL_SUCCESS) {
             snprintf(buf, sizeof(buf),
                 "clGetDeviceInfo failed to get CL_DEVICE_SIMD_WIDTH_AMD for device %d",
@@ -924,7 +924,7 @@ cl_int COPROCS::get_opencl_info(
             return ciErrNum;
         }
 
-        ciErrNum = (*__clGetDeviceInfo)(prop.device_id, CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD, sizeof(prop.amd_simd_instruction_width), &prop.amd_simd_instruction_width, NULL);
+        ciErrNum = (*p_clGetDeviceInfo)(prop.device_id, CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD, sizeof(prop.amd_simd_instruction_width), &prop.amd_simd_instruction_width, NULL);
         if (ciErrNum != CL_SUCCESS) {
             snprintf(buf, sizeof(buf),
                 "clGetDeviceInfo failed to get CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD for device %d",
@@ -1034,6 +1034,29 @@ void COPROC::find_best_opencls(
     }
 }
 
+void fake_opencl_gpu(char* type) {
+    OPENCL_DEVICE_PROP op;
+    op.clear();
+    strcpy(op.name, type);
+    strcpy(op.vendor, "ARM");
+    op.vendor_id = 102760464;
+    op.available = 1;
+    op.half_fp_config = 63;
+    op.single_fp_config = 63;
+    op.double_fp_config = 63;
+    op.endian_little = 1;
+    op.execution_capabilities = 1;
+    strcpy(op.extensions, "cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_fp64 cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_gl_sharing cl_khr_icd cl_khr_egl_event cl_khr_egl_image cl_khr_image2d_from_buffer cl_arm_core_id cl_arm_printf cl_arm_thread_limit_hint cl_arm_non_uniform_work_group_size cl_arm_import_m [...]
+    op.global_mem_size = 2086998016;
+    op.local_mem_size = 32768;
+    op.max_clock_frequency = 600;
+    op.max_compute_units = 2;
+    strcpy(op.opencl_platform_version, "OpenCL 1.2 v1.r14p0-01rel0.0fe2d25ca074016740f8ab3fb451b151");
+    strcpy(op.opencl_device_version,   "OpenCL 1.2 v1.r14p0-01rel0.0fe2d25ca074016740f8ab3fb451b151");
+    strcpy(op.opencl_driver_version, "1.2");
+    op.is_used = COPROC_USED;
+    other_opencls.push_back(op);
+}
 
 #ifdef __APPLE__
 // OpenCL returns incorrect total RAM size for some
@@ -1043,6 +1066,9 @@ void COPROC::find_best_opencls(
 #include <OpenGL/gl.h>
 #include <OpenGL/glu.h>
 #include <Carbon/Carbon.h>
+#include <IOKit/graphics/IOGraphicsLib.h>
+
+static io_service_t IOServicePortFromCGDisplayID(CGDirectDisplayID displayID);
 
 void COPROCS::opencl_get_ati_mem_size_from_opengl(vector<string>& warnings) {
     CGLRendererInfoObj info;
@@ -1067,7 +1093,9 @@ void COPROCS::opencl_get_ati_mem_size_from_opengl(vector<string>& warnings) {
             theErr2 = CGLQueryRendererInfo(myMask, &info, &numRenderers);
             if ((displayID != kCGNullDirectDisplay) && (theErr2 == kCGLNoError)) {
                 // Get the I/O Kit service port for the display
-                io_registry_entry_t dspPort = CGDisplayIOServicePort(displayID);
+//                io_registry_entry_t dspPort = CGDisplayIOServicePort(displayID);  // Deprecated in OS 10.9
+                io_registry_entry_t dspPort = IOServicePortFromCGDisplayID(displayID);
+
                 for (j = 0; j < numRenderers; j++) {
                     // find accelerated renderer (assume only one)
                     CGLDescribeRenderer (info, j, kCGLRPAcceleratedCompute, &rv);
@@ -1098,8 +1126,19 @@ void COPROCS::opencl_get_ati_mem_size_from_opengl(vector<string>& warnings) {
             if (true == rv) { // if openCL-capable
                 // what is the renderer ID
                 CGLDescribeRenderer (info, i, kCGLRPRendererID, &rendererID);
-               // what is the VRAM?
-                CGLDescribeRenderer (info, i, kCGLRPVideoMemory, &deviceVRAM);
+                // what is the VRAM?
+                CGLError notAvail = CGLDescribeRenderer (info, i, kCGLRPVideoMemoryMegabytes, &deviceVRAM);
+                if (notAvail == kCGLNoError) {
+                    deviceVRAM = deviceVRAM * (1024*1024);
+                } else {	// kCGLRPVideoMemoryMegabytes is not available before OS 10.7
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+                    // kCGLRPVideoMemory=120 is deprecated in OS 10.7 and may not be
+                    // defined in later SDKs, so use a literal value here instead
+                    // CGLDescribeRenderer (info, i, kCGLRPVideoMemory, &deviceVRAM);
+                    CGLDescribeRenderer (info, i, (CGLRendererProperty)120, &deviceVRAM);
+#pragma clang diagnostic pop
+                }
 
                 // build context and context specific info
                 CGLPixelFormatAttribute attribs[] = {
@@ -1118,7 +1157,7 @@ void COPROCS::opencl_get_ati_mem_size_from_opengl(vector<string>& warnings) {
                     CGLDestroyPixelFormat (pixelFormat);
                     CGLSetCurrentContext (cglContext);
                     if (cglContext) {
-                        // get vendor string from renderer
+                       // get vendor string from renderer
                         const GLubyte * strVend = glGetString (GL_VENDOR);
                         if (is_AMD((char *)strVend)) {
                             ati_opencls[ati_gpu_index].global_mem_size = deviceVRAM;
@@ -1201,4 +1240,105 @@ void COPROCS::opencl_get_ati_mem_size_from_opengl(vector<string>& warnings) {
     }
     CGLSetCurrentContext (curr_ctx); // restore current CGL context
 }
-#endif
+
+
+
+// The following replaces CGDisplayIOServicePort which is deprecated in OS 10.9
+//
+//========================================================================
+// GLFW 3.1 OS X - www.glfw.org
+//------------------------------------------------------------------------
+// Copyright (c) 2002-2006 Marcus Geelnard
+// Copyright (c) 2006-2010 Camilla Berglund <elmindreda at elmindreda.org>
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//    claim that you wrote the original software. If you use this software
+//    in a product, an acknowledgment in the product documentation would
+//    be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such, and must not
+//    be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source
+//    distribution.
+//
+//========================================================================
+
+// Returns the io_service_t corresponding to a CG display ID, or 0 on failure.
+// The io_service_t should be released with IOObjectRelease when not needed.
+//
+
+static io_service_t IOServicePortFromCGDisplayID(CGDirectDisplayID displayID)
+{
+    io_iterator_t iter;
+    io_service_t serv, servicePort = 0;
+    
+    CFMutableDictionaryRef matching = IOServiceMatching("IODisplayConnect");
+    
+    // releases matching for us
+    kern_return_t err = IOServiceGetMatchingServices(kIOMasterPortDefault,
+                                                     matching,
+                                                     &iter);
+    if (err)
+        return 0;
+    
+    while ((serv = IOIteratorNext(iter)) != 0)
+    {
+        CFDictionaryRef info;
+        CFIndex vendorID, productID, serialNumber;
+        CFNumberRef vendorIDRef, productIDRef, serialNumberRef;
+        Boolean success;
+        
+        info = IODisplayCreateInfoDictionary(serv,
+                                             kIODisplayOnlyPreferredName);
+        
+        vendorIDRef = (CFNumberRef)CFDictionaryGetValue(info,
+                                           CFSTR(kDisplayVendorID));
+        productIDRef = (CFNumberRef)CFDictionaryGetValue(info,
+                                            CFSTR(kDisplayProductID));
+        serialNumberRef = (CFNumberRef)CFDictionaryGetValue(info,
+                                               CFSTR(kDisplaySerialNumber));
+        
+        success = CFNumberGetValue(vendorIDRef, kCFNumberCFIndexType,
+                                   &vendorID);
+        success &= CFNumberGetValue(productIDRef, kCFNumberCFIndexType,
+                                    &productID);
+        success &= CFNumberGetValue(serialNumberRef, kCFNumberCFIndexType,
+                                    &serialNumber);
+        
+        if (!success)
+        {
+            CFRelease(info);
+            continue;
+        }
+        // If the vendor and product id along with the serial don't match
+        // then we are not looking at the correct monitor.
+        // NOTE: The serial number is important in cases where two monitors
+        //       are the exact same.
+        if (CGDisplayVendorNumber(displayID) != vendorID  ||
+            CGDisplayModelNumber(displayID) != productID  ||
+            CGDisplaySerialNumber(displayID) != serialNumber)
+        {
+            CFRelease(info);
+            continue;
+        }
+        
+        // The VendorID, Product ID, and the Serial Number all Match Up!
+        // Therefore we have found the appropriate display io_service
+        servicePort = serv;
+        CFRelease(info);
+        break;
+    }
+    
+    IOObjectRelease(iter);
+    return servicePort;
+}
+#endif// __APPLE__
diff --git a/client/gui_http.h b/client/gui_http.h
index 6b82692..1d74b9d 100644
--- a/client/gui_http.h
+++ b/client/gui_http.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _GUI_HTTP_
-#define _GUI_HTTP_
+#ifndef BOINC_GUI_HTTP_H
+#define BOINC_GUI_HTTP_H
 
 // A high-level interface for client-initiated HTTP requests.
 
diff --git a/client/gui_rpc_server.cpp b/client/gui_rpc_server.cpp
index 96e21a9..a232712 100644
--- a/client/gui_rpc_server.cpp
+++ b/client/gui_rpc_server.cpp
@@ -162,13 +162,14 @@ void GUI_RPC_CONN_SET::get_password() {
         msg_printf(NULL, MSG_USER_ALERT,
             "Can't open gui_rpc_auth.cfg - fix permissions"
         );
-    }
-    retval = fputs(password, f);
-    fclose(f);
-    if (retval == EOF) {
-        msg_printf(NULL, MSG_USER_ALERT,
-            "Can't write gui_rpc_auth.cfg - fix permissions"
-        );
+    } else {
+        retval = fputs(password, f);
+        fclose(f);
+        if (retval == EOF) {
+            msg_printf(NULL, MSG_USER_ALERT,
+                "Can't write gui_rpc_auth.cfg - fix permissions"
+            );
+        }
     }
 #ifndef _WIN32
     // if someone can read the password,
diff --git a/client/gui_rpc_server.h b/client/gui_rpc_server.h
index 420a291..c821195 100644
--- a/client/gui_rpc_server.h
+++ b/client/gui_rpc_server.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _GUI_RPC_SERVER_
-#define _GUI_RPC_SERVER_
+#ifndef BOINC_GUI_RPC_SERVER_H
+#define BOINC_GUI_RPC_SERVER_H
 
 #include "network.h"
 #include "acct_setup.h"
diff --git a/client/gui_rpc_server_ops.cpp b/client/gui_rpc_server_ops.cpp
index 74866a9..8d6d12e 100644
--- a/client/gui_rpc_server_ops.cpp
+++ b/client/gui_rpc_server_ops.cpp
@@ -21,6 +21,7 @@
 
 #ifdef __APPLE__
 #include <Carbon/Carbon.h>
+#include <libproc.h>
 #endif
 
 #ifdef _WIN32
@@ -157,14 +158,12 @@ static void handle_get_disk_usage(GUI_RPC_CONN& grc) {
 #ifdef __APPLE__
     if (gstate.launched_by_manager) {
         // If launched by Manager, get Manager's size on disk
-        ProcessSerialNumber managerPSN;
-        FSRef ourFSRef;
         char path[MAXPATHLEN];
         double manager_size = 0.0;
-        OSStatus err;
-        err = GetProcessForPID(getppid(), &managerPSN);
-        if (! err) err = GetProcessBundleLocation(&managerPSN, &ourFSRef);
-        if (! err) err = FSRefMakePath (&ourFSRef, (UInt8*)path, sizeof(path));
+        OSStatus err = noErr;
+        
+        retval = proc_pidpath(getppid(), path, sizeof(path));
+        if (retval <= 0) err = fnfErr;
         if (! err) dir_size(path, manager_size, true);
         if (! err) boinc_non_project += manager_size;
     }
@@ -310,7 +309,7 @@ static void handle_project_dont_detach_when_done(GUI_RPC_CONN& grc) {
     if (!p) return;
     gstate.set_client_state_dirty("Project modified by user");
     msg_printf(p, MSG_INFO, "detach when done cleared by user");
-    p->detach_when_done = true;
+    p->detach_when_done = false;
     p->dont_request_more_work = false;
     grc.mfout.printf("<success/>\n");
 }
@@ -804,7 +803,11 @@ void handle_lookup_account_poll(GUI_RPC_CONN& grc) {
             grc.lookup_account_op.error_num
         );
     } else {
-        grc.mfout.printf("%s", grc.lookup_account_op.reply.c_str());
+        const char *p = grc.lookup_account_op.reply.c_str();
+        const char *q = strstr(p, "<account_out"); 
+        if (!q) q = strstr(p, "<error");
+        if (!q) q = "<account_out/>\n"; 
+        grc.mfout.printf("%s", q); 
     }
 }
 
@@ -922,6 +925,12 @@ static void handle_project_attach_poll(GUI_RPC_CONN& grc) {
     );
 }
 
+// This RPC, regrettably, serves 3 purposes
+// - to join an account manager
+// - to trigger an RPC to the current account manager
+//   (perhaps with "use_config_file")
+// - to quit an account manager (with null args)
+//
 static void handle_acct_mgr_rpc(GUI_RPC_CONN& grc) {
     string url, name, password;
     string password_hash, name_lc;
@@ -970,6 +979,11 @@ static void handle_acct_mgr_rpc(GUI_RPC_CONN& grc) {
     }
     if (bad_arg) {
         grc.mfout.printf("<error>bad arg</error>\n");
+    } else if (gstate.acct_mgr_info.using_am()
+        && !url.empty()
+        && !gstate.acct_mgr_info.same_am(url.c_str(), name.c_str(), password_hash.c_str())
+    ){
+        grc.mfout.printf("<error>attached to a different AM - detach first</error>\n");
     } else {
         gstate.acct_mgr_op.do_rpc(url, name, password_hash, true);
         grc.mfout.printf("<success/>\n");
@@ -996,6 +1010,8 @@ static void handle_acct_mgr_rpc_poll(GUI_RPC_CONN& grc) {
 }
 
 static void handle_get_newer_version(GUI_RPC_CONN& grc) {
+    gstate.new_version_check(true);
+
     grc.mfout.printf(
         "<newer_version>%s</newer_version>\n"
         "<download_url>%s</download_url>\n",
@@ -1058,6 +1074,21 @@ static void handle_set_global_prefs_override(GUI_RPC_CONN& grc) {
     }
 }
 
+static void read_all_projects_list_file(GUI_RPC_CONN& grc) {
+    string s;
+    int retval = read_file_string(ALL_PROJECTS_LIST_FILENAME, s);
+    if (!retval) {
+        strip_whitespace(s);
+        const char *q = strstr(s.c_str(), "<projects");
+        if (!q) q = "<projects/>";        
+        grc.mfout.printf("%s\n", q);
+    }
+}
+
+static void handle_get_state(GUI_RPC_CONN& grc) {
+    gstate.write_state_gui(grc.mfout);
+}
+
 static void handle_get_cc_config(GUI_RPC_CONN& grc) {
     string s;
     int retval = read_file_string(CONFIG_FILE, s);
@@ -1067,19 +1098,27 @@ static void handle_get_cc_config(GUI_RPC_CONN& grc) {
     }
 }
 
-static void read_all_projects_list_file(GUI_RPC_CONN& grc) {
+static void handle_get_app_config(GUI_RPC_CONN& grc) {
+    string url;
     string s;
-    int retval = read_file_string(ALL_PROJECTS_LIST_FILENAME, s);
+    char path[MAXPATHLEN];
+    while (!grc.xp.get_tag()) {
+        if (grc.xp.parse_string("url", url)) continue;
+    }
+    PROJECT* p = gstate.lookup_project(url.c_str());
+    if (!p) {
+        grc.mfout.printf("<error>no such project</error>");
+        return;
+    }
+    sprintf(path, "%s/%s", p->project_dir(), APP_CONFIG_FILE_NAME);
+    printf("path: %s\n", path);
+    int retval = read_file_string(path, s);
     if (!retval) {
         strip_whitespace(s);
         grc.mfout.printf("%s\n", s.c_str());
     }
 }
 
-static void handle_get_state(GUI_RPC_CONN& grc) {
-    gstate.write_state_gui(grc.mfout);
-}
-
 static void handle_set_cc_config(GUI_RPC_CONN& grc) {
     int retval;
     char buf[65536];
@@ -1107,6 +1146,47 @@ static void handle_set_cc_config(GUI_RPC_CONN& grc) {
     }
 }
 
+static void handle_set_app_config(GUI_RPC_CONN& grc) {
+    APP_CONFIGS ac;
+    string url;
+    MSG_VEC mv;
+    LOG_FLAGS lf;
+    int parse_retval = -1;
+    while (!grc.xp.get_tag()) {
+        if (grc.xp.match_tag("app_config")) {
+            lf.init();
+            parse_retval = ac.parse(grc.xp, mv, lf);
+        } else if (grc.xp.parse_string("url", url)) {
+            continue;
+        }
+    }
+    if (parse_retval) {
+        grc.mfout.printf("<error>XML parse failed<error/>\n");
+        return;
+    }
+    PROJECT* p = gstate.lookup_project(url.c_str());
+    if (!p) {
+        grc.mfout.printf("<error>no such project<error/>\n");
+        return;
+    }
+    char path[MAXPATHLEN];
+    sprintf(path, "%s/app_config.xml", p->project_dir());
+    FILE* f = fopen(path, "w");
+    if (!f) {
+        msg_printf(p, MSG_INTERNAL_ERROR,
+            "Can't open app config file %s", path
+        );
+        grc.mfout.printf("<error>can't open app_config.xml file<error/>\n");
+        return;
+
+    }
+    MIOFILE mf;
+    mf.init_file(f);
+    ac.write(mf);
+    grc.mfout.printf("<success/>\n");
+}
+
+
 static void handle_get_notices(GUI_RPC_CONN& grc) {
     int seqno = 0;
     while (!grc.xp.get_tag()) {
@@ -1324,6 +1404,7 @@ GUI_RPC gui_rpcs[] = {
     GUI_RPC("abort_file_transfer", handle_abort_file_transfer,      true,   false,  false),
     GUI_RPC("abort_result", handle_abort_result,                    true,   false,  false),
     GUI_RPC("acct_mgr_info", handle_acct_mgr_info,                  true,   false,  true),
+    GUI_RPC("get_app_config", handle_get_app_config,                true,   false,  false),
     GUI_RPC("get_cc_config", handle_get_cc_config,                  true,   false,  false),
     GUI_RPC("get_global_prefs_file", handle_get_global_prefs_file,  true,   false,  false),
     GUI_RPC("get_global_prefs_override", handle_get_global_prefs_override,
@@ -1351,6 +1432,7 @@ GUI_RPC gui_rpcs[] = {
     GUI_RPC("report_device_status", handle_report_device_status,    true,   false,  false),
     GUI_RPC("resume_result", handle_resume_result,                  true,   false,  false),
     GUI_RPC("run_benchmarks", handle_run_benchmarks,                true,   false,  false),
+    GUI_RPC("set_app_config", handle_set_app_config,                true,   false,  false),
     GUI_RPC("set_cc_config", handle_set_cc_config,                  true,   false,  false),
     GUI_RPC("set_global_prefs_override", handle_set_global_prefs_override,
                                                                     true,   false,  false),
diff --git a/client/hostinfo_network.cpp b/client/hostinfo_network.cpp
index c8877da..f2209b4 100644
--- a/client/hostinfo_network.cpp
+++ b/client/hostinfo_network.cpp
@@ -19,7 +19,6 @@
 
 #ifdef _WIN32
 #include "boinc_win.h"
-#define getpid _getpid
 #else 
 #include "config.h"
 #include <cstdio>
@@ -41,10 +40,6 @@
 #endif
 #endif
 
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
-
 #ifdef __APPLE__
 #include <Carbon/Carbon.h>
 #endif
diff --git a/client/hostinfo_unix.cpp b/client/hostinfo_unix.cpp
index 38a0cf5..1c91863 100644
--- a/client/hostinfo_unix.cpp
+++ b/client/hostinfo_unix.cpp
@@ -74,7 +74,7 @@
 #include <sys/stat.h>
 
 #if HAVE_SYS_SWAP_H
-#ifdef ANDROID
+#if defined(ANDROID) && !defined(ANDROID_64)
 #include <linux/swap.h>
 #else
 #include <sys/swap.h>
@@ -138,8 +138,6 @@ extern "C" {
 
 #include <dlfcn.h>
 #endif
-
-mach_port_t gEventHandle = NULL;
 #endif  // __APPLE__
 
 #ifdef _HPUX_SOURCE
@@ -456,7 +454,12 @@ static void parse_cpuinfo_linux(HOST_INFO& host) {
     bool cache_found=false, features_found=false;
     bool model_hack=false, vendor_hack=false;
     int n;
+#if !defined(__aarch64__) && !defined(__arm__)
     int family=-1, model=-1, stepping=-1;
+#else
+    char implementer[32] = {0}, architecture[32] = {0}, variant[32] = {0}, cpu_part[32] = {0}, revision[32] = {0};
+    bool model_info_found=false;
+#endif
     char buf2[256];
 
     FILE* f = fopen("/proc/cpuinfo", "r");
@@ -481,7 +484,7 @@ static void parse_cpuinfo_linux(HOST_INFO& host) {
 #elif __ia64__
     strcpy(host.p_model, "IA-64 ");
     model_hack = true;
-#elif __arm__
+#elif defined(__arm__) || defined(__aarch64__)
     strcpy(host.p_vendor, "ARM");
     vendor_hack = vendor_found = true;
 #endif
@@ -517,13 +520,31 @@ static void parse_cpuinfo_linux(HOST_INFO& host) {
                 strlcat(host.p_vendor, buf2, sizeof(host.p_vendor));
             }
         }
+
+#if defined(__aarch64__) || defined(__arm__)
+        if (
+            // Hardware is specifying the board this CPU is on, store it in product_name while we parse /proc/cpuinfo
+            strstr(buf, "Hardware\t: ")
+        ) {
+            // this makes sure we only ever copy as much bytes as we can still store in host.product_name
+            int t = sizeof(host.product_name) - strlen(host.product_name) - 2;
+            strlcpy(buf2, strchr(buf, ':') + 2, ((t<sizeof(buf2))?t:sizeof(buf2)));
+            strip_whitespace(buf2);
+            if (strlen(host.product_name)) {
+                strcat(host.product_name, " ");
+            }
+            safe_strcat(host.product_name, buf2);
+        }
+#endif
+
         if (
 #ifdef __ia64__
             strstr(buf, "family     : ") || strstr(buf, "model name : ")
 #elif __powerpc__ || __sparc__
             strstr(buf, "cpu\t\t: ")
-#elif __arm__
-            strstr(buf, "Processor\t: ") || strstr(buf, "model name")
+#elif defined(__aarch64__) || defined(__arm__)
+            // Hardware is a fallback specifying the board this CPU is on (not ideal but better than nothing)
+            strstr(buf, "model name") || strstr(buf, "Processor") || strstr(buf, "Hardware")
 #else
             strstr(buf, "model name\t: ") || strstr(buf, "cpu model\t\t: ")
 #endif
@@ -554,10 +575,10 @@ static void parse_cpuinfo_linux(HOST_INFO& host) {
                 model_found = true;
                 strlcpy(buf2, strchr(buf, ':') + 1, sizeof(host.p_model) - strlen(host.p_model) - 1);
                 strip_whitespace(buf2);
-                strcat(host.p_model, buf2);
+                safe_strcat(host.p_model, buf2);
             }
         }
-#ifndef __hppa__
+#if  !defined(__hppa__) && !defined(__aarch64__) && !defined(__arm__)
     /* XXX hppa: "cpu family\t: PA-RISC 2.0" */
         if (strstr(buf, "cpu family\t: ") && family<0) {
             family = atoi(buf+strlen("cpu family\t: "));
@@ -572,9 +593,32 @@ static void parse_cpuinfo_linux(HOST_INFO& host) {
             model = atoi(buf+strlen("model     : "));
         }
 #endif
+#if !defined(__aarch64__) && !defined(__arm__)
         if (strstr(buf, "stepping\t: ") && stepping<0) {
             stepping = atoi(buf+strlen("stepping\t: "));
         }
+#else
+        if (strstr(buf, "CPU implementer") && strlen(implementer) == 0) {
+            strlcpy(implementer, strchr(buf, ':') + 2, sizeof(implementer));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU architecture") && strlen(architecture) == 0) {
+            strlcpy(architecture, strchr(buf, ':') + 2, sizeof(architecture));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU variant") && strlen(variant) == 0) {
+            strlcpy(variant, strchr(buf, ':') + 2, sizeof(variant));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU part") && strlen(cpu_part) == 0) {
+            strlcpy(cpu_part, strchr(buf, ':') + 2, sizeof(cpu_part));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU revision") && strlen(revision) == 0) {
+            strlcpy(revision, strchr(buf, ':') + 2, sizeof(revision));
+            model_info_found = true;
+        }
+#endif
 #ifdef __hppa__
         bool icache_found=false,dcache_found=false;
         if (!icache_found && strstr(buf, "I-cache\t\t: ")) {
@@ -619,22 +663,49 @@ static void parse_cpuinfo_linux(HOST_INFO& host) {
         }
     }
     safe_strcpy(model_buf, host.p_model);
+#if !defined(__aarch64__) && !defined(__arm__)
     if (family>=0 || model>=0 || stepping>0) {
         strcat(model_buf, " [");
         if (family>=0) {
             sprintf(buf, "Family %d ", family);
-            strcat(model_buf, buf);
+            safe_strcat(model_buf, buf);
         }
         if (model>=0) {
             sprintf(buf, "Model %d ", model);
-            strcat(model_buf, buf);
+            safe_strcat(model_buf, buf);
         }
         if (stepping>=0) {
             sprintf(buf, "Stepping %d", stepping);
-            strcat(model_buf, buf);
+            safe_strcat(model_buf, buf);
         }
         strcat(model_buf, "]");
     }
+#else
+    if (model_info_found) {
+        strcat(model_buf, " [");
+        if (strlen(implementer)>0) {
+            sprintf(buf, "Impl %s ", implementer);
+            safe_strcat(model_buf, buf);
+        }
+        if (strlen(architecture)>0) {
+            sprintf(buf, "Arch %s ", architecture);
+            safe_strcat(model_buf, buf);
+        }
+        if (strlen(variant)>0) {
+            sprintf(buf, "Variant %s ", variant);
+            safe_strcat(model_buf, buf);
+        }
+        if (strlen(cpu_part)>0) {
+            sprintf(buf, "Part %s ", cpu_part);
+            safe_strcat(model_buf, buf);
+        }
+        if (strlen(revision)>0) {
+            sprintf(buf, "Rev %s", revision);
+            safe_strcat(model_buf, buf);
+        }
+        strcat(model_buf, "]");
+    }
+#endif
     if (strlen(features)) {
         safe_strcpy(host.p_features, features);
     }
@@ -676,12 +747,12 @@ void use_cpuid(HOST_INFO& host) {
     }
 
     capabilities[0] = '\0';
-    if (hasSSE) strcat(capabilities, "sse ");
-    if (hasSSE2) strcat(capabilities, "sse2 ");
-    if (hasSSE3) strcat(capabilities, "pni ");
-    if (has3DNow) strcat(capabilities, "3dnow ");
-    if (has3DNowExt) strcat(capabilities, "3dnowext ");
-    if (hasMMX) strcat(capabilities, "mmx ");
+    if (hasSSE) safe_strcat(capabilities, "sse ");
+    if (hasSSE2) safe_strcat(capabilities, "sse2 ");
+    if (hasSSE3) safe_strcat(capabilities, "pni ");
+    if (has3DNow) safe_strcat(capabilities, "3dnow ");
+    if (has3DNowExt) safe_strcat(capabilities, "3dnowext ");
+    if (hasMMX) safe_strcat(capabilities, "mmx ");
     strip_whitespace(capabilities);
     char buf[1024];
     snprintf(buf, sizeof(buf), "%s [] [%s]",
@@ -766,14 +837,6 @@ static void get_cpu_info_mac(HOST_INFO& host) {
 #endif
 
     host.p_model[p_model_size-1] = 0;
-    char *in = host.p_model + 1;
-    char *out = in;
-    // Strip out runs of multiple spaces
-    do {
-        if ((!isspace(*(in-1))) || (!isspace(*in))) {
-            *out++ = *in;
-        }
-    } while (*in++);
 
     // This returns an Apple hardware model designation such as "MacPro3,1".
     // One source for converting this to a common model name is:
@@ -996,7 +1059,6 @@ int get_network_usage_totals(
         total_sent += ifmsg->ifm_data.ifi_obytes;
 #endif
     }
-        
     return 0;
 }
 
@@ -1327,14 +1389,6 @@ int HOST_INFO::get_cpu_info() {
 #elif HAVE_SYS_SYSTEMINFO_H
     sysinfo(SI_PLATFORM, p_vendor, sizeof(p_vendor));
     sysinfo(SI_ISALIST, p_model, sizeof(p_model));
-    for (unsigned int i=0; i<sizeof(p_model); i++) {
-        if (p_model[i]==' ') {
-            p_model[i]=0;
-        }
-        if (p_model[i]==0) {
-            i=sizeof(p_model);
-        }
-    }
 #else
 #error Need to specify a method to get p_vendor, p_model
 #endif
@@ -1429,15 +1483,12 @@ int HOST_INFO::get_memory_info() {
 #elif defined(__APPLE__)
     // On Mac OS X, sysctl with selectors CTL_HW, HW_PHYSMEM returns only a 
     // 4-byte value, even if passed an 8-byte buffer, and limits the returned 
-    // value to 2GB when the actual RAM size is > 2GB.  The Gestalt selector 
-    // gestaltPhysicalRAMSizeInMegabytes is available starting with OS 10.3.0.
-    SInt32 mem_size;
-    if (Gestalt(gestaltPhysicalRAMSizeInMegabytes, &mem_size)) {
-        msg_printf(NULL, MSG_INTERNAL_ERROR,
-            "Couldn't determine physical RAM size"
-        );
-    }
-    m_nbytes = (1024. * 1024.) * (double)mem_size;
+    // value to 2GB when the actual RAM size is > 2GB.
+    // But HW_MEMSIZE returns a uint64_t value.
+    uint64_t mem_size;
+    size_t len = sizeof(mem_size);
+    sysctlbyname("hw.memsize", &mem_size, &len, NULL, 0);
+    m_nbytes = mem_size;
 #elif defined(_HPUX_SOURCE)
     struct pst_static pst; 
     pstat_getstatic(&pst, sizeof(pst), (size_t)1, 0);
@@ -1572,6 +1623,131 @@ int HOST_INFO::get_os_info() {
 #else
 #error Need to specify a method to obtain OS name/version
 #endif
+
+#if LINUX_LIKE_SYSTEM
+    bool found_something = false;
+    char buf[256],buf2[256];
+    char dist_pretty[256], dist_name[256], dist_version[256], dist_codename[256];
+    strcpy(dist_pretty, "");
+    strcpy(dist_name, "");
+    strcpy(dist_version, "");
+    strcpy(dist_codename, "");
+
+    // see: http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/lsbrelease.html
+    // although the output is not clearly specified it seems to be constant
+    FILE* f = popen("/usr/bin/lsb_release -a 2>&1", "r");
+    if (f) {
+        while (fgets(buf, 256, f)) {
+            strip_whitespace(buf);
+            if ( strstr(buf, "Description:") ) {
+                found_something = true;
+                safe_strcpy(dist_pretty, strchr(buf, ':') + 1);
+                strip_whitespace(dist_pretty);
+            }
+            if ( strstr(buf, "Distributor ID:") ) {
+                found_something = true;
+                safe_strcpy(dist_name, strchr(buf, ':') + 1);
+                strip_whitespace(dist_name);
+            }
+            if ( strstr(buf, "Release:") ) {
+                found_something = true;
+                safe_strcpy(dist_version, strchr(buf, ':') + 1);
+                strip_whitespace(dist_version);
+            }
+            if ( strstr(buf, "Codename:") ) {
+                found_something = true;
+                safe_strcpy(dist_codename, strchr(buf, ':') + 1);
+                strip_whitespace(dist_codename);
+            }
+        }
+        pclose(f);
+    }
+    if (!found_something) {
+        // see: https://www.freedesktop.org/software/systemd/man/os-release.html
+        f = fopen("/etc/os-release", "r");
+        if (f) {
+            while (fgets(buf, 256, f)) {
+                strip_whitespace(buf);
+                // check if substr is at the beginning of the line
+                if ( strstr(buf, "PRETTY_NAME=") == buf ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_pretty, buf2);
+                    continue;
+                }
+                if ( strstr(buf, "NAME=") == buf ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_name, buf2);
+                    continue;
+                }
+                if ( strstr(buf, "VERSION=") == buf ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_version, buf2);
+                    continue;
+                }
+                // could also be "UBUNTU_CODENAME="
+                if ( strstr(buf, "CODENAME=") ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_codename, buf2);
+                    continue;
+                }
+            }
+            fclose(f);
+        }
+    }
+
+    if (!found_something) {
+        // last ditch effort for older redhat releases
+        f = fopen("/etc/redhat-release", "r");
+        if (f) {
+            fgets(buf, 256, f);
+            found_something = true;
+            strip_whitespace(buf);
+            safe_strcpy(dist_pretty, buf);
+            fclose(f);
+        }
+    }
+
+    if (found_something) {
+        strcpy(buf2, "");
+        if (strlen(dist_pretty)) {
+            safe_strcat(buf2, dist_pretty);
+        } else {
+            if (strlen(dist_name)) {
+                safe_strcat(buf2, dist_name);
+                strcat(buf2, " ");
+            }
+            if (strlen(dist_version)) {
+                safe_strcat(buf2, dist_version);
+                strcat(buf2, " ");
+            }
+            if (strlen(dist_codename)) {
+                safe_strcat(buf2, dist_codename);
+                strcat(buf2, " ");
+            }
+            strip_whitespace(buf2);
+        }
+        strcat(buf2, " [");
+        safe_strcat(buf2, os_version);
+        strcat(buf2, "]");
+        safe_strcpy(os_version, buf2);
+        if (strlen(dist_name)) {
+            strcat(os_name, " ");
+            safe_strcat(os_name, dist_name);
+        }
+    }
+#endif //LINUX_LIKE_SYSTEM
     return 0;
 }
 
@@ -1604,7 +1780,8 @@ int HOST_INFO::get_host_info(bool init) {
     get_memory_info();
     timezone = get_timezone();
     get_os_info();
-
+    collapse_whitespace(p_model);
+    collapse_whitespace(p_vendor);
     if (!strlen(host_cpid)) {
         generate_host_cpid();
     }
@@ -1661,6 +1838,8 @@ vector<string> get_tty_list() {
     return tty_list;
 }
 
+// return true if all ttys inactive since time t
+//
 inline bool all_tty_idle(time_t t) {
     static vector<string> tty_list;
     struct stat sbuf;
@@ -1670,7 +1849,7 @@ inline bool all_tty_idle(time_t t) {
     for (i=0; i<tty_list.size(); i++) {
         // ignore errors
         if (!stat(tty_list[i].c_str(), &sbuf)) {
-            // printf("tty: %s %d %d\n",tty_list[i].c_str(),sbuf.st_atime,t);
+            // printf("tty: %s %d %d\n",tty_list[i].c_str(), sbuf.st_atime, t);
             if (sbuf.st_atime >= t) {
                 return false;
             }
@@ -1738,6 +1917,107 @@ inline bool all_input_idle(time_t t) {
     }
     return true;
 }
+#ifdef __APPLE__
+
+// We can't link the client with the AppKit framework because the client
+// must be setuid boinc_master. So the client uses this to get the system
+// up time instead of our getTimeSinceBoot() function in lib/mac_util.mm.
+int get_system_uptime() {
+    struct timeval tv;
+    size_t len = sizeof(tv);
+    gettimeofday(&tv, 0);
+    time_t now = tv.tv_sec;
+    sysctlbyname("kern.boottime", &tv, &len, NULL, 0);
+    return ((int)now - (int)tv.tv_sec);
+}
+
+// NXIdleTime() is an undocumented Apple API to return user idle time, which 
+// was implemented from before OS 10.0 through OS 10.5.  In OS 10.4, Apple 
+// added the CGEventSourceSecondsSinceLastEventType() API as a replacement for 
+// NXIdleTime().  However, BOINC could not use this newer API when configured 
+// as a pre-login launchd daemon unless that daemon was running as root, 
+// because it could not connect to the Window Server.  So BOINC continued to 
+// use NXIdleTime().  
+//
+// In OS 10.6, Apple removed the NXIdleTime() API.  BOINC can instead use the 
+// IOHIDGetParameter() API in OS 10.6.  When BOINC is a pre-login launchd 
+// daemon running as user boinc_master, this API works properly under OS 10.6 
+// but fails under OS 10.5 and earlier.
+//
+// In OS 10.7, IOHIDGetParameter() fails to recognize activity from remote 
+// logins via Apple Remote Desktop or Screen Sharing (VNC), but the 
+// CGEventSourceSecondsSinceLastEventType() API does work with ARD and VNC, 
+// except when BOINC is a pre-login launchd daemon running as user boinc_master.
+//
+// IOHIDGetParameter() is deprecated in OS 10.12, but IORegistryEntryFromPath()
+// and IORegistryEntryCreateCFProperty() do the same thing and have been
+// available since OS 10.0.
+//
+// Also, CGEventSourceSecondsSinceLastEventType() does not detect user activity 
+// when the user who launched the client is switched out by fast user switching.
+//
+// So we use weak-linking of NxIdleTime() to prevent a run-time crash from the 
+// dynamic linker and use it if it exists. 
+// If NXIdleTime does not exist, we call both IOHIDGetParameter() and 
+// CGEventSourceSecondsSinceLastEventType().  If both return without error, 
+// we use the lower of the two returned values.
+//
+//TODO: I believe that the IOHIDSystemEntry returned by IORegistryEntryFromPath()
+// will remain valid as long as the client application runs if we don't call
+// IOObjectRelease() on it, so we could probably make this more efficient by
+// calling IORegistryEntryFromPath() only once. But I have not been able to
+// confirm that, so I call it each time through this function out of caution.
+// Even with calling IORegistryEntryFromPath() each time, this code is much
+// faster than the previous method, which called IOHIDGetParameter().
+//
+bool HOST_INFO::users_idle(
+    bool check_all_logins, double idle_time_to_run, double *actual_idle_time
+) {
+    static bool     error_posted = false;
+    int64_t         idleNanoSeconds;
+    double          idleTime = 0;
+    double          idleTimeFromCG = 0;
+
+    CFTypeRef idleTimeProperty;
+    io_registry_entry_t IOHIDSystemEntry;
+    
+    if (error_posted) goto bail;
+    
+    IOHIDSystemEntry = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IOHIDSystem");
+    if (IOHIDSystemEntry != MACH_PORT_NULL) {
+        idleTimeProperty = IORegistryEntryCreateCFProperty(IOHIDSystemEntry, CFSTR(EVSIOIDLE), kCFAllocatorDefault, kNilOptions);
+        CFNumberGetValue((CFNumberRef)idleTimeProperty, kCFNumberSInt64Type, &idleNanoSeconds);
+        idleTime = ((double)idleNanoSeconds) / 1000.0 / 1000.0 / 1000.0;
+        IOObjectRelease(IOHIDSystemEntry);  // Prevent a memory leak (see comment above)
+        CFRelease(idleTimeProperty);
+    } else {
+        // When the system first starts up, allow time for HIDSystem to be available if needed
+        if (get_system_uptime() > (120)) {   // If system has been up for more than 2 minutes
+             msg_printf(NULL, MSG_INFO,
+                "Could not connect to HIDSystem: user idle detection is disabled."
+            );
+            error_posted = true;
+            goto bail;
+        }
+    }
+    
+    if (!gstate.executing_as_daemon) {
+        idleTimeFromCG =  CGEventSourceSecondsSinceLastEventType  
+                (kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);
+
+        if (idleTimeFromCG < idleTime) {
+            idleTime = idleTimeFromCG;
+        }
+    }
+
+bail:
+    if (actual_idle_time) {
+        *actual_idle_time = idleTime;
+    }
+    return (idleTime > (60 * idle_time_to_run));
+}
+
+#else  // ! __APPLE__
 
 #if HAVE_UTMP_H
 inline bool user_idle(time_t t, struct utmp* u) {
@@ -1765,14 +2045,16 @@ inline bool user_idle(time_t t, struct utmp* u) {
   struct utmp *getutent() {
       if (ufp == NULL) {
 #if defined(UTMP_LOCATION)
-          if ((ufp = fopen(UTMP_LOCATION, "r")) == NULL) {
+          if ((ufp = fopen(UTMP_LOCATION, "r")) == NULL)
 #elif defined(UTMP_FILE)
-          if ((ufp = fopen(UTMP_FILE, "r")) == NULL) {
+          if ((ufp = fopen(UTMP_FILE, "r")) == NULL)
 #elif defined(_PATH_UTMP)
-          if ((ufp = fopen(_PATH_UTMP, "r")) == NULL) {
+          if ((ufp = fopen(_PATH_UTMP, "r")) == NULL)
 #else
-          if ((ufp = fopen("/etc/utmp", "r")) == NULL) {
+          if ((ufp = fopen("/etc/utmp", "r")) == NULL)
 #endif
+          { // Please keep all braces balanced in source files; repeated
+            // open braces in conditional compiles confuse Xcode's editor.
               return((struct utmp *)NULL);
           }
       }
@@ -1804,126 +2086,6 @@ inline bool user_idle(time_t t, struct utmp* u) {
   }
 #endif  // HAVE_UTMP_H
 
-#ifdef __APPLE__
-
-// NXIdleTime() is an undocumented Apple API to return user idle time, which 
-// was implemented from before OS 10.0 through OS 10.5.  In OS 10.4, Apple 
-// added the CGEventSourceSecondsSinceLastEventType() API as a replacement for 
-// NXIdleTime().  However, BOINC could not use this newer API when configured 
-// as a pre-login launchd daemon unless that daemon was running as root, 
-// because it could not connect to the Window Server.  So BOINC continued to 
-// use NXIdleTime().  
-//
-// In OS 10.6, Apple removed the NXIdleTime() API.  BOINC can instead use the 
-// IOHIDGetParameter() API in OS 10.6.  When BOINC is a pre-login launchd 
-// daemon running as user boinc_master, this API works properly under OS 10.6 
-// but fails under OS 10.5 and earlier.
-//
-// In OS 10.7, IOHIDGetParameter() fails to recognize activity from remote 
-// logins via Apple Remote Desktop or Screen Sharing (VNC), but the 
-// CGEventSourceSecondsSinceLastEventType() API does work with ARD and VNC, 
-// except when BOINC is a pre-login launchd daemon running as user boinc_master.
-//
-// Also, CGEventSourceSecondsSinceLastEventType() does not detect user activity 
-// when the user who launched the client is switched out by fast user switching.
-//
-// So we use weak-linking of NxIdleTime() to prevent a run-time crash from the 
-// dynamic linker and use it if it exists. 
-// If NXIdleTime does not exist, we call both IOHIDGetParameter() and 
-// CGEventSourceSecondsSinceLastEventType().  If both return without error, 
-// we use the lower of the two returned values.
-//
-bool HOST_INFO::users_idle(
-    bool check_all_logins, double idle_time_to_run, double *actual_idle_time
-) {
-    static bool     error_posted = false;
-    double          idleTime = 0;
-    double          idleTimeFromCG = 0;
-    io_service_t    service;
-    kern_return_t   kernResult = kIOReturnError; 
-    UInt64          params;
-    IOByteCount     rcnt = sizeof(UInt64);
-    void            *IOKitlib = NULL;
-    static bool     triedToLoadNXIdleTime = false;
-    static nxIdleTimeProc  myNxIdleTimeProc = NULL;
-    
-    if (error_posted) goto bail;
-    
-    if (!triedToLoadNXIdleTime) {
-        triedToLoadNXIdleTime = true;
-
-        IOKitlib = dlopen ("/System/Library/Frameworks/IOKit.framework/IOKit", RTLD_NOW );
-        if (IOKitlib) {
-            myNxIdleTimeProc = (nxIdleTimeProc)dlsym(IOKitlib, "NXIdleTime");
-        }
-    }
-
-    if (myNxIdleTimeProc) {   // Use NXIdleTime API in OS 10.5 and earlier
-        if (gEventHandle) {
-            idleTime = myNxIdleTimeProc(gEventHandle);    
-        } else {
-            // Initialize Mac OS X idle time measurement / idle detection
-            // Do this here because NXOpenEventStatus() may not be available 
-            // immediately on system startup when running as a deaemon.
-
-            gEventHandle = NXOpenEventStatus();
-            if (!gEventHandle) {
-                if (TickCount() > (120*60)) {   // If system has been up for more than 2 minutes 
-                     msg_printf(NULL, MSG_INFO,
-                        "User idle detection is disabled: initialization failed."
-                    );
-                    error_posted = true;
-                    goto bail;
-                }
-            }
-        }
-    } else {        // NXIdleTime API does not exist in OS 10.6 and later
-        if (gEventHandle) {
-            kernResult = IOHIDGetParameter( gEventHandle, CFSTR(EVSIOIDLE), sizeof(UInt64), &params, &rcnt );
-            if ( kernResult != kIOReturnSuccess ) {
-                msg_printf(NULL, MSG_INFO,
-                    "User idle time measurement failed because IOHIDGetParameter failed."
-                );
-                error_posted = true;
-                goto bail;
-            }
-            idleTime = ((double)params) / 1000.0 / 1000.0 / 1000.0;
-            
-             if (!gstate.executing_as_daemon) {
-                idleTimeFromCG =  CGEventSourceSecondsSinceLastEventType  
-                        (kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);
-        
-                if (idleTimeFromCG < idleTime) {
-                    idleTime = idleTimeFromCG;
-                }
-            }
-        } else {
-            service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching(kIOHIDSystemClass));
-            if (service) {
-                 kernResult = IOServiceOpen(service, mach_task_self(), kIOHIDParamConnectType, &gEventHandle);
-            }
-            if ( (!service) || (kernResult != KERN_SUCCESS) ) {
-                // When the system first starts up, allow time for HIDSystem to be available if needed
-                if (TickCount() > (120*60)) {        // If system has been up for more than 2 minutes 
-                     msg_printf(NULL, MSG_INFO,
-                        "Could not connect to HIDSystem: user idle detection is disabled."
-                    );
-                    error_posted = true;
-                    goto bail;
-                }
-            }
-        }   // End (gEventHandle == NULL)
-    }           // End NXIdleTime API does not exist
-    
-bail:
-    if (actual_idle_time) {
-        *actual_idle_time = idleTime;
-    }
-    return (idleTime > (60 * idle_time_to_run));
-}
-
-#else  // ! __APPLE__
-
 #if LINUX_LIKE_SYSTEM
 bool interrupts_idle(time_t t) {
     // This method doesn't really work reliably on USB keyboards and mice.
@@ -1963,183 +2125,199 @@ bool interrupts_idle(time_t t) {
 // Initializer for const vector<string> in xss_idle
 //
 const vector<string> X_display_values_initialize() {
-
-  /* According to "man Xserver", each local Xserver will have a socket file
-   * at /tmp/.X11-unix/Xn, where "n" is the display number (0, 1, 2, etc).
-   * We will parse this directory for currently open Xservers and attempt
-   * to ultimately query them for their idle time. If we can't open this
-   * directory, or the display_values vector is otherwise empty, then a
-   * static list of guesses for open display servers is utilized instead
-   * (DISPLAY values ":{0..6}") that will attempt connections to the first
-   * seven open Xservers.
-   *
-   * If we were unable to open _any_ Xserver, then we will log this and
-   * xss_idle returns true, effectively leaving idle detection up to other
-   * methods.
-   */
-  static const string dir = "/tmp/.X11-unix/";
-  vector<string> display_values;
-  vector<string>::iterator it;
-
-  DIR *dp;
-  struct dirent *dirp;
-  if((dp = opendir(dir.c_str())) == NULL) {
-    if ( log_flags.idle_detection_debug ) {
-      msg_printf(NULL, MSG_INFO, 
-        "[idle_detection] Error (%d) opening %s.", errno, dir.c_str());
+    // According to "man Xserver", each local Xserver will have a socket file
+    // at /tmp/.X11-unix/Xn, where "n" is the display number (0, 1, 2, etc).
+    // We will parse this directory for currently open Xservers and attempt
+    // to ultimately query them for their idle time. If we can't open this
+    // directory, or the display_values vector is otherwise empty, then a
+    // static list of guesses for open display servers is utilized instead
+    // (DISPLAY values ":{0..6}") that will attempt connections to the first
+    // seven open Xservers.
+    //
+    // If we were unable to open _any_ Xserver, then we will log this and
+    // xss_idle returns true, effectively leaving idle detection up to other
+    // methods.
+    //
+    static const string dir = "/tmp/.X11-unix/";
+    vector<string> display_values;
+    vector<string>::iterator it;
+  
+    DIR *dp;
+    struct dirent *dirp;
+    if ((dp = opendir(dir.c_str())) == NULL) {
+        if (log_flags.idle_detection_debug ) {
+            msg_printf(NULL, MSG_INFO, 
+                "[idle_detection] Error (%d) opening %s.", errno, dir.c_str()
+            );
+        }
+    } else {
+        while ((dirp = readdir(dp)) != NULL) {
+            display_values.push_back(string(dirp->d_name));
+        }
+        closedir(dp);
     }
-  }
-
-  while ((dirp = readdir(dp)) != NULL) {
-    display_values.push_back(string(dirp->d_name));
-  }
-  closedir(dp);
 
-  // Get rid of non-matching elements and format the matching ones.
-  for ( it = display_values.begin() ; it != display_values.end() ; ) {
-    if ( it->c_str()[0] != 'X' ) {
-      it = display_values.erase(it);
-    }
-    else {
-      replace(it->begin(), it->end(), 'X', ':');
-      it++;
+    // Get rid of non-matching elements and format the matching ones.
+    //
+    for (it = display_values.begin(); it != display_values.end(); ) {
+        if (it->c_str()[0] != 'X') {
+            it = display_values.erase(it);
+        } else {
+            replace(it->begin(), it->end(), 'X', ':');
+            it++;
+        }
     }
 
-  }
-
-  // if the display_values vector is empty, assume something went wrong
-  // (couldn't open directory, no apparent Xn files). Test a static list of
-  // DISPLAY values instead that is likely to catch most common use cases.
-  // (I don't know of many environments where there will simultaneously be
-  // more than seven active, local Xservers. I'm sure they exist... somewhere.
-  // But seven was the magic number for me).
-  if ( display_values.size() == 0 ) {
-    if ( log_flags.idle_detection_debug ) {
-      msg_printf(NULL, MSG_INFO,
-        "[idle_detection] No DISPLAY values found in /tmp/.X11-unix/.");
-      msg_printf(NULL, MSG_INFO,
-        "[idle_detection] Using static DISPLAY list, :{0..6}.");
-    }
-    display_values.push_back(":0");
-    display_values.push_back(":1");
-    display_values.push_back(":2");
-    display_values.push_back(":3");
-    display_values.push_back(":4");
-    display_values.push_back(":5");
-    display_values.push_back(":6");
-    return display_values;
-  }
-  else {
-    return display_values;
-  }
+    // if the display_values vector is empty, assume something went wrong
+    // (couldn't open directory, no apparent Xn files). Test a static list of
+    // DISPLAY values instead that is likely to catch most common use cases.
+    // (I don't know of many environments where there will simultaneously be
+    // more than seven active, local Xservers. I'm sure they exist... somewhere.
+    // But seven was the magic number for me).
+    //
+    if ( display_values.size() == 0 ) {
+        if ( log_flags.idle_detection_debug ) {
+            msg_printf(NULL, MSG_INFO,
+                "[idle_detection] No DISPLAY values found in /tmp/.X11-unix/."
+            );
+            msg_printf(NULL, MSG_INFO,
+                "[idle_detection] Using static DISPLAY list, :{0..6}."
+            );
+        }
+        display_values.push_back(":0");
+        display_values.push_back(":1");
+        display_values.push_back(":2");
+        display_values.push_back(":3");
+        display_values.push_back(":4");
+        display_values.push_back(":5");
+        display_values.push_back(":6");
+        return display_values;
+    } else {
+        return display_values;
+    }
 }
 
-/* Ask the X server for user idle time (using XScreenSaver API)
- * Return true if the idle time exceeds idle_threshold for all accessible
- * Xservers. However, if even one Xserver reports busy/non-idle, then
- * return false. This function assumes that the boinc user has been
- * granted access to the Xservers a la "xhost +SI:localuser:boinc". If
- * access isn't available for an Xserver, then that Xserver is skipped.
- * One may drop a file in /etc/X11/Xsession.d/ that runs the xhost command
- * for all Xservers on a machine when the Xservers start up.
- */
+// Ask the X server for user idle time (using XScreenSaver API)
+// Return true if the idle time exceeds idle_threshold for all accessible
+// Xservers. However, if even one Xserver reports busy/non-idle, then
+// return false. This function assumes that the boinc user has been
+// granted access to the Xservers a la "xhost +SI:localuser:boinc". If
+// access isn't available for an Xserver, then that Xserver is skipped.
+// One may drop a file in /etc/X11/Xsession.d/ that runs the xhost command
+// for all Xservers on a machine when the Xservers start up.
+//
 bool xss_idle(long idle_threshold) {
+    const vector<string> display_values = X_display_values_initialize();
+    vector<string>::const_iterator it;
 
-  const vector<string> display_values = X_display_values_initialize();
-  vector<string>::const_iterator it;
-  // If we can connect to at least one DISPLAY, this is set to false.
-  bool no_available_x_display = true;
+    // If we can connect to at least one DISPLAY, this is set to false.
+    //
+    bool no_available_x_display = true;
 
-  static XScreenSaverInfo* xssInfo = XScreenSaverAllocInfo();
-  // This shouldn't fail. XScreenSaverAllocInfo just returns a small
-  // struct (see "man 3 xss"). If we can't allocate this, then we've
-  // got bigger problems to worry about.
-  if ( xssInfo == NULL ) {
-    if ( log_flags.idle_detection_debug ) {
-      msg_printf(NULL, MSG_INFO,
-        "[idle_detection] XScreenSaverAllocInfo failed. Out of memory? Skipping XScreenSaver idle detection.");
+    static XScreenSaverInfo* xssInfo = XScreenSaverAllocInfo();
+    // This shouldn't fail. XScreenSaverAllocInfo just returns a small
+    // struct (see "man 3 xss"). If we can't allocate this, then we've
+    // got bigger problems to worry about.
+    //
+    if (xssInfo == NULL) {
+        if (log_flags.idle_detection_debug) {
+            msg_printf(NULL, MSG_INFO,
+                "[idle_detection] XScreenSaverAllocInfo failed. Out of memory? Skipping XScreenSaver idle detection."
+            );
+        }
+        return true;
     }
-    return true;
-  }
 
-  for (it = display_values.begin() ; it != display_values.end() ; it++) {
+    for (it = display_values.begin(); it != display_values.end() ; it++) {
 
-    Display* disp = NULL;
-    long idle_time = 0;
+        Display* disp = NULL;
+        long idle_time = 0;
     
-    disp = XOpenDisplay(it->c_str());
-    // XOpenDisplay may return NULL if there is no running X
-    // or DISPLAY points to wrong/invalid display
-    if (disp == NULL) {
-      if ( log_flags.idle_detection_debug ) {
-	msg_printf(NULL, MSG_INFO, 
-	"[idle_detection] DISPLAY '%s' not found or insufficient access.",
-	it->c_str());
-      }
-      continue;
-    }
-
-    // Determine if the DISPLAY we have accessed has the XScreenSaver
-    // extension or not.
-    int event_base_return, error_base_return;
-    if (!XScreenSaverQueryExtension(
-      disp, &event_base_return, &error_base_return
-    )){
-      if ( log_flags.idle_detection_debug ) {
-	msg_printf(NULL, MSG_INFO,
-	  "[idle_detection] XScreenSaver extension not available for DISPLAY '%s'.",
-	  it->c_str());
-      }
-      XCloseDisplay(disp);
-      continue;
-    }
+        disp = XOpenDisplay(it->c_str());
+        // XOpenDisplay may return NULL if there is no running X
+        // or DISPLAY points to wrong/invalid display
+        //
+        if (disp == NULL) {
+            if (log_flags.idle_detection_debug) {
+	            msg_printf(NULL, MSG_INFO, 
+	                "[idle_detection] DISPLAY '%s' not found or insufficient access.",
+	                it->c_str()
+                );
+            }
+            continue;
+        }
 
-    // All checks passed. Get the idle information.
-    no_available_x_display = false;
-    XScreenSaverQueryInfo(disp, DefaultRootWindow(disp), xssInfo);
-    idle_time = xssInfo->idle;
+        // Determine if the DISPLAY we have accessed has the XScreenSaver
+        // extension or not.
+        //
+        int event_base_return, error_base_return;
+        if (!XScreenSaverQueryExtension(
+            disp, &event_base_return, &error_base_return
+        )){
+            if (log_flags.idle_detection_debug) {
+	            msg_printf(NULL, MSG_INFO,
+	                "[idle_detection] XScreenSaver extension not available for DISPLAY '%s'.",
+	                it->c_str()
+                );
+            }
+            XCloseDisplay(disp);
+            continue;
+        }
 
-    // Close the connection to the XServer
-    XCloseDisplay(disp);
+        // All checks passed. Get the idle information.
+        //
+        no_available_x_display = false;
+        XScreenSaverQueryInfo(disp, DefaultRootWindow(disp), xssInfo);
+        idle_time = xssInfo->idle;
 
-    // convert from milliseconds to seconds
-    idle_time = idle_time / 1000;
+        // Close the connection to the XServer
+        //
+        XCloseDisplay(disp);
 
-    if ( log_flags.idle_detection_debug ) {
-      msg_printf(NULL, MSG_INFO, 
-        "[idle_detection] XSS idle detection succeeded on DISPLAY '%s'.", it->c_str());
-      msg_printf(NULL, MSG_INFO, 
-        "[idle_detection] idle threshold: %ld", idle_threshold);
-      msg_printf(NULL, MSG_INFO,
-        "[idle_detection] idle_time: %ld", idle_time);
+        // convert from milliseconds to seconds
+        //
+        idle_time = idle_time / 1000;
+
+        if (log_flags.idle_detection_debug) {
+            msg_printf(NULL, MSG_INFO, 
+                "[idle_detection] XSS idle detection succeeded on DISPLAY '%s'.", it->c_str()
+            );
+            msg_printf(NULL, MSG_INFO, 
+                "[idle_detection] idle threshold: %ld", idle_threshold
+            );
+            msg_printf(NULL, MSG_INFO,
+                "[idle_detection] idle_time: %ld", idle_time
+            );
+        }
+
+        if ( idle_threshold < idle_time ) {
+            if (log_flags.idle_detection_debug) {
+                msg_printf(NULL, MSG_INFO,
+                    "[idle_detection] DISPLAY '%s' is idle.", it->c_str()
+                );
+            }
+        } else {
+            if (log_flags.idle_detection_debug) {
+                msg_printf(NULL, MSG_INFO,
+                    "[idle_detection] DISPLAY '%s' is active.", it->c_str()
+                );
+            }
+            return false;
+        }
     }
 
-    if ( idle_threshold < idle_time ) {
-      if ( log_flags.idle_detection_debug ) {
-        msg_printf(NULL, MSG_INFO,
-          "[idle_detection] DISPLAY '%s' is idle.", it->c_str());
-      }
-    } else {
-      if ( log_flags.idle_detection_debug ) {
+    // We should only ever get here if all queryable Xservers were idle.
+    // If none of the Xservers were queryable, we should still end up here,
+    // and simply report true. In that case, the xss_idle function effectively
+    // provides no information on the idle state of the system,
+    // as no Xservers were accessible to interrogate.
+    //
+    if (log_flags.idle_detection_debug && no_available_x_display) {
         msg_printf(NULL, MSG_INFO,
-          "[idle_detection] DISPLAY '%s' is active.", it->c_str());
-      }
-      return false;
+            "[idle_detection] Could not connect to any DISPLAYs. XSS idle determination impossible."
+        );
     }
-
-  }
-
-  /* We should only ever get here if all Xservers (that were queryable) were
-   * idle. If none of the Xservers were queryable, we should still end up here,
-   * and simply report true. In that case, the xss_idle function effectively
-   * provides no information on the idle state of the system, as no Xservers
-   * were accessible to interrogate.
-   */
-  if ( log_flags.idle_detection_debug && no_available_x_display ) {
-    msg_printf(NULL, MSG_INFO,
-      "[idle_detection] Could not connect to any DISPLAYs. XSS idle determination impossible.");
-  }
-  return true;
+    return true;
 
 }
 #endif // HAVE_XSS
diff --git a/client/hostinfo_unix_test.cpp b/client/hostinfo_unix_test.cpp
index 44a7251..6e1da92 100644
--- a/client/hostinfo_unix_test.cpp
+++ b/client/hostinfo_unix_test.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -19,11 +19,121 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <ctype.h>
+#include <string>
+
+using std::string;
+
+// normally configure would find this out
+// only activate one of the three to test with
+#define HAVE_SYS_UTSNAME_H 1
+#define HAVE_SYS_SYSCTL_H 0
+#define HAVE_SYS_SYSTEMINFO_H 0
+
+#if HAVE_SYS_SYSCTL_H
+#include <sys/sysctl.h>
+#endif
+#if HAVE_SYS_SYSTEMINFO_H
+#include <sys/systeminfo.h>
+#endif
+#if HAVE_SYS_UTSNAME_H
+#include <sys/utsname.h>
+#endif
 
 #define false 0
 #define true 1
 #define bool int
 #define strlcpy strncpy
+#define safe_strcpy(x, y) strlcpy(x, y, sizeof(x))
+#define LINUX_LIKE_SYSTEM (defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(__HAIKU__)
+
+// remove whitespace from start and end of a string
+//
+void strip_whitespace(string& str) {
+    while (1) {
+        if (str.length() == 0) break;
+        if (!isascii(str[0])) break;
+        if (!isspace(str[0])) break;
+        str.erase(0, 1);
+    }
+
+    int n = (int) str.length();
+    while (n>0) {
+        if (!isascii(str[n-1])) break;
+        if (!isspace(str[n-1])) break;
+        n--;
+    }
+    str.erase(n, str.length()-n);
+}
+
+void strip_whitespace(char *str) {
+    string s = str;
+    strip_whitespace(s);
+    strcpy(str, s.c_str());
+}
+
+// remove whitespace and quotes from start and end of a string
+//
+void strip_quotes(string& str) {
+    while (1) {
+        if (str.length() == 0) break;
+        if (str[0] == '"' || str[0] == '\'') {
+            str.erase(0, 1);
+            continue;
+        }
+        if (!isascii(str[0])) break;
+        if (!isspace(str[0])) break;
+        str.erase(0, 1);
+    }
+
+    int n = (int) str.length();
+    while (n>0) {
+        if (str[n-1] == '"' || str[n-1] == '\'') {
+            if (str[n-2] != '\\') {
+                n--;
+                continue;
+            }
+        }
+        if (!isascii(str[n-1])) break;
+        if (!isspace(str[n-1])) break;
+        n--;
+    }
+    str.erase(n, str.length()-n);
+}
+
+void strip_quotes(char *str) {
+    string s = str;
+    strip_quotes(s);
+    strcpy(str, s.c_str());
+}
+
+void unescape_os_release(char* buf) {
+    char* out = buf;
+    char* in = buf;
+    while (*in) {
+        if (*in != '\\') {
+            *out++ = *in++;
+        } else if (*(in+1) == '$') {
+            *out++ = '$';
+            in += 2;
+        } else if (*(in+1) == '\'') {
+            *out++ = '\'';
+            in += 2;
+        } else if (*(in+1) == '"') {
+            *out++ = '"';
+            in += 2;
+        } else if (*(in+1) == '\\') {
+            *out++ = '\\';
+            in += 2;
+        } else if (*(in+1) == '`') {
+            *out++ = '`';
+            in += 2;
+        } else {
+            *out++ = *in++;
+        }
+    }
+    *out = 0;
+}
 
 int main(void) {
     char buf[256], features[1024], model_buf[1024];
@@ -32,15 +142,23 @@ int main(void) {
     bool icache_found=false,dcache_found=false;
     bool model_hack=false, vendor_hack=false;
     int n;
+#if !defined(__aarch64__) && !defined(__arm__)
     int family=-1, model=-1, stepping=-1;
-    char  p_vendor[256], p_model[256];
+#else
+    char implementer[32] = {0}, architecture[32] = {0}, variant[32] = {0}, cpu_part[32] = {0}, revision[32] = {0};
+    bool model_info_found=false;
+#endif
+    char  p_vendor[256], p_model[256], product_name[256];
+    char  os_name[256], os_version[256];
     char buf2[256];
     int m_cache=-1;
 
-
+    // parse /proc/cpuinfo as in parse_cpuinfo_linux() from hostinfo_unix.cpp
     FILE* f = fopen("/proc/cpuinfo", "r");
     if (!f) return (EXIT_FAILURE);
 
+    strcpy(p_model, "");
+
 #ifdef __mips__
     strcpy(p_model, "MIPS ");
     model_hack = true;
@@ -53,30 +171,29 @@ int main(void) {
 #elif __ia64__
     strcpy(p_model, "IA-64 ");
     model_hack = true;
-#elif __arm__
+#elif defined(__arm__) || defined(__aarch64__)
     strcpy(p_vendor, "ARM ");
     vendor_hack = vendor_found = true;
 #endif
 
     strcpy(features, "");
+    strcpy(product_name, "");
     while (fgets(buf, 256, f)) {
-        //strip_whitespace(buf);
+        strip_whitespace(buf);
         if (
                 /* there might be conflicts if we dont #ifdef */
 #ifdef __ia64__
-                strstr(buf, "vendor     : ")
+            strstr(buf, "vendor     : ")
 #elif __hppa__        
-        strstr(buf, "cpu\t\t: ")
+            strstr(buf, "cpu\t\t: ")
 #elif __powerpc__
-                strstr(buf, "machine\t\t: ")
+            strstr(buf, "machine\t\t: ")
 #elif __sparc__
-        strstr(buf, "type\t\t: ")
+            strstr(buf, "type\t\t: ")
 #elif __alpha__
-        strstr(buf, "cpu\t\t\t: ")
-#elif __arm__
-        strstr(buf, "CPU architecture: ")
+            strstr(buf, "cpu\t\t\t: ")
 #else
-        strstr(buf, "vendor_id\t: ") || strstr(buf, "system type\t\t: ")
+            strstr(buf, "vendor_id\t: ") || strstr(buf, "system type\t\t: ")
 #endif
         ) {
             if (!vendor_hack && !vendor_found) {
@@ -89,13 +206,31 @@ int main(void) {
             }
         }
 
+#if defined(__aarch64__) || defined(__arm__)
+        if (
+            // Hardware is specifying the board this CPU is on, store it in product_name while we parse /proc/cpuinfo
+            strstr(buf, "Hardware\t: ")
+        ) {
+            // this makes sure we only ever copy as much bytes as we can still store in host.product_name
+            int t = sizeof(product_name) - strlen(product_name) - 2;
+            strlcpy(buf2, strchr(buf, ':') + 2, ((t<sizeof(buf2))?t:sizeof(buf2)));
+            strip_whitespace(buf2);
+            if (strlen(product_name)) {
+                strcat(product_name, " ");
+            }
+            strcat(product_name, buf2);
+        }
+#endif
         if (
 #ifdef __ia64__
             strstr(buf, "family     : ") || strstr(buf, "model name : ")
 #elif __powerpc__ || __sparc__
             strstr(buf, "cpu\t\t: ")
-#elif __arm__
-            strstr(buf, "Processor\t: ")
+//#elif __arm__
+//            strstr(buf, "Processor\t: ") || strstr(buf, "model name")
+#elif defined(__aarch64__) || defined(__arm__)
+            // Hardware is a fallback specifying the board this CPU is on (not ideal but better than nothing)
+            strstr(buf, "model name") || strstr(buf, "Processor") || strstr(buf, "Hardware")
 #else
             strstr(buf, "model name\t: ") || strstr(buf, "cpu model\t\t: ")
 #endif
@@ -103,39 +238,41 @@ int main(void) {
             if (!model_hack && !model_found) {
                 model_found = true;
 #ifdef __powerpc__
-        char *coma = NULL;
-            if ((coma = strrchr(buf, ','))) {   /* we have ", altivec supported" */
-            *coma = '\0';    /* strip the unwanted line */
-                strcpy(features, "altivec");
-                features_found = true;
-            }
+                char *coma = NULL;
+                if ((coma = strrchr(buf, ','))) {   /* we have ", altivec supported" */
+                    *coma = '\0';    /* strip the unwanted line */
+                    strcpy(features, "altivec");
+                    features_found = true;
+                }
 #endif
                 strlcpy(p_model, strchr(buf, ':') + 2, sizeof(p_model));
             } else if (!model_found) {
 #ifdef __ia64__
-        /* depending on kernel version, family can be either
-        a number or a string. If number, we have a model name,
-        else we don't */
-        char *testc = NULL;
-        testc = strrchr(buf, ':')+2;
-        if (isdigit(*testc)) {
-            family = atoi(testc);
-            continue;    /* skip this line */
-        }
+                /* depending on kernel version, family can be either
+                a number or a string. If number, we have a model name,
+                else we don't */
+                char *testc = NULL;
+                testc = strrchr(buf, ':')+2;
+                if (isdigit(*testc)) {
+                    family = atoi(testc);
+                    continue;    /* skip this line */
+                }
 #endif
-        model_found = true;
-        strlcpy(buf2, strchr(buf, ':') + 2, sizeof(p_model) - strlen(p_model) - 1);
-        strcat(p_model, buf2);
-        }        
+                model_found = true;
+                strlcpy(buf2, strchr(buf, ':') + 2, sizeof(p_model) - strlen(p_model) - 1);
+                strip_whitespace(buf2);
+                strcat(p_model, buf2);
+            }
         }
 
-#ifndef __hppa__
-    /* XXX: hppa: "cpu family    : PA-RISC 2.0" */
+#if  !defined(__hppa__) && !defined(__aarch64__) && !defined(__arm__)
+    /* XXX hppa: "cpu family\t: PA-RISC 2.0" */
         if (strstr(buf, "cpu family\t: ") && family<0) {
-        family = atoi(buf+strlen("cpu family\t: "));
+            family = atoi(buf+strlen("cpu family\t: "));
         }
-        /* XXX: hppa: "model            : 9000/785/J6000" */
-        if (strstr(buf, "model\t\t: ") && model<0) {
+        /* XXX hppa: "model\t\t: 9000/785/J6000" */
+    /* XXX alpha: "cpu model\t\t: EV6" -> ==buf necessary */
+        if ((strstr(buf, "model\t\t: ") == buf) && model<0) {
             model = atoi(buf+strlen("model\t\t: "));
         }
         /* ia64 */
@@ -143,10 +280,35 @@ int main(void) {
             model = atoi(buf+strlen("model     : "));
         }
 #endif
+#if !defined(__aarch64__) && !defined(__arm__)
         if (strstr(buf, "stepping\t: ") && stepping<0) {
             stepping = atoi(buf+strlen("stepping\t: "));
         }
+#else
+        if (strstr(buf, "CPU implementer") && strlen(implementer) == 0) {
+            strlcpy(implementer, strchr(buf, ':') + 2, sizeof(implementer));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU architecture") && strlen(architecture) == 0) {
+            strlcpy(architecture, strchr(buf, ':') + 2, sizeof(architecture));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU variant") && strlen(variant) == 0) {
+            strlcpy(variant, strchr(buf, ':') + 2, sizeof(variant));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU part") && strlen(cpu_part) == 0) {
+            strlcpy(cpu_part, strchr(buf, ':') + 2, sizeof(cpu_part));
+            model_info_found = true;
+        }
+        if (strstr(buf, "CPU revision") && strlen(revision) == 0) {
+            strlcpy(revision, strchr(buf, ':') + 2, sizeof(revision));
+            model_info_found = true;
+        }
+#endif
+
 #ifdef __hppa__
+        bool icache_found=false,dcache_found=false;
         if (!icache_found && strstr(buf, "I-cache\t\t: ")) {
             icache_found = true;
             sscanf(buf, "I-cache\t\t: %d", &n);
@@ -173,6 +335,7 @@ int main(void) {
         if (!features_found) {
             // Some versions of the linux kernel call them flags,
             // others call them features, so look for both.
+            //
             if ((strstr(buf, "flags\t\t: ") == buf)) {
                 strlcpy(features, strchr(buf, ':') + 2, sizeof(features));
             } else if ((strstr(buf, "features\t\t: ") == buf)) {
@@ -187,7 +350,8 @@ int main(void) {
             }
         }
     }
-    safe_strcpy(model_buf, p_model);
+    strlcpy(model_buf, p_model, sizeof(model_buf));
+#if !defined(__aarch64__) && !defined(__arm__)
     if (family>=0 || model>=0 || stepping>0) {
         strcat(model_buf, " [");
         if (family>=0) {
@@ -204,6 +368,32 @@ int main(void) {
         }
         strcat(model_buf, "]");
     }
+#else
+    if (model_info_found) {
+        strcat(model_buf, " [");
+        if (strlen(implementer)>0) {
+            sprintf(buf, "Impl %s ", implementer);
+            strcat(model_buf, buf);
+        }
+        if (strlen(architecture)>0) {
+            sprintf(buf, "Arch %s ", architecture);
+            strcat(model_buf, buf);
+        }
+        if (strlen(variant)>0) {
+            sprintf(buf, "Variant %s ", variant);
+            strcat(model_buf, buf);
+        }
+        if (strlen(cpu_part)>0) {
+            sprintf(buf, "Part %s ", cpu_part);
+            strcat(model_buf, buf);
+        }
+        if (strlen(revision)>0) {
+            sprintf(buf, "Rev %s", revision);
+            strcat(model_buf, buf);
+        }
+        strcat(model_buf, "]");
+    }
+#endif
     if (strlen(features)) {
         strcat(model_buf, "[");
         strcat(model_buf, features);
@@ -215,4 +405,171 @@ int main(void) {
         p_vendor, m_cache, model_buf
     );
     fclose(f);
+
+    // detect OS name as in HOST_INFO::get_os_info()
+    strcpy(os_name, "");
+    strcpy(os_version, "");
+
+#if HAVE_SYS_UTSNAME_H
+    struct utsname u;
+    uname(&u);
+#ifdef ANDROID
+    safe_strcpy(os_name, "Android");
+#else
+    safe_strcpy(os_name, u.sysname);
+#endif //ANDROID
+#if defined(__EMX__) // OS2: version is in u.version
+    safe_strcpy(os_version, u.version);
+#elif defined(__HAIKU__)
+    snprintf(os_version, sizeof(os_version), "%s, %s", u.release, u.version);
+#else
+    safe_strcpy(os_version, u.release);
+#endif
+#ifdef _HPUX_SOURCE
+    safe_strcpy(p_model, u.machine);
+    safe_strcpy(p_vendor, "Hewlett-Packard");
+#endif
+#elif HAVE_SYS_SYSCTL_H && defined(CTL_KERN) && defined(KERN_OSTYPE) && defined(KERN_OSRELEASE)
+    mib[0] = CTL_KERN;
+    mib[1] = KERN_OSTYPE;
+    len = sizeof(os_name);
+    sysctl(mib, 2, &os_name, &len, NULL, 0);
+
+    mib[0] = CTL_KERN;
+    mib[1] = KERN_OSRELEASE;
+    len = sizeof(os_version);
+    sysctl(mib, 2, &os_version, &len, NULL, 0);
+#elif HAVE_SYS_SYSTEMINFO_H
+    sysinfo(SI_SYSNAME, os_name, sizeof(os_name));
+    sysinfo(SI_RELEASE, os_version, sizeof(os_version));
+#else
+#error Need to specify a method to obtain OS name/version
+#endif
+
+#if LINUX_LIKE_SYSTEM
+    bool found_something = false;
+    char dist_pretty[256], dist_name[256], dist_version[256], dist_codename[256];
+    strcpy(dist_pretty, "");
+    strcpy(dist_name, "");
+    strcpy(dist_version, "");
+    strcpy(dist_codename, "");
+
+    // see: http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/lsbrelease.html
+    // although the output is not clearly specified it seems to be constant
+    f = popen("/usr/bin/lsb_release -a 2>&1", "r");
+    if (f) {
+        while (fgets(buf, 256, f)) {
+            strip_whitespace(buf);
+            if ( strstr(buf, "Description:") ) {
+                found_something = true;
+                safe_strcpy(dist_pretty, strchr(buf, ':') + 1);
+                strip_whitespace(dist_pretty);
+            }
+            if ( strstr(buf, "Distributor ID:") ) {
+                found_something = true;
+                safe_strcpy(dist_name, strchr(buf, ':') + 1);
+                strip_whitespace(dist_name);
+            }
+            if ( strstr(buf, "Release:") ) {
+                found_something = true;
+                safe_strcpy(dist_version, strchr(buf, ':') + 1);
+                strip_whitespace(dist_version);
+            }
+            if ( strstr(buf, "Codename:") ) {
+                found_something = true;
+                safe_strcpy(dist_codename, strchr(buf, ':') + 1);
+                strip_whitespace(dist_codename);
+            }
+        }
+        pclose(f);
+    }
+    if (!found_something) {
+        // see: https://www.freedesktop.org/software/systemd/man/os-release.html
+        f = fopen("/etc/os-release", "r");
+        if (f) {
+            while (fgets(buf, 256, f)) {
+                strip_whitespace(buf);
+                // check if substr is at the beginning of the line
+                if ( strstr(buf, "PRETTY_NAME=") == buf ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_pretty, buf2);
+                    continue;
+                }
+                if ( strstr(buf, "NAME=") == buf ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_name, buf2);
+                    continue;
+                }
+                if ( strstr(buf, "VERSION=") == buf ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_version, buf2);
+                    continue;
+                }
+                // could also be "UBUNTU_CODENAME="
+                if ( strstr(buf, "CODENAME=") ) {
+                    found_something = true;
+                    safe_strcpy(buf2, strchr(buf, '=') + 1);
+                    strip_quotes(buf2);
+                    unescape_os_release(buf2);
+                    safe_strcpy(dist_codename, buf2);
+                    continue;
+                }
+            }
+            fclose(f);
+        }
+    }
+
+    if (!found_something) {
+        // last ditch effort for older redhat releases
+        f = fopen("/etc/redhat-release", "r");
+        if (f) {
+            fgets(buf, 256, f);
+            found_something = true;
+            strip_whitespace(buf);
+            safe_strcpy(dist_pretty, buf);
+            fclose(f);
+        }
+    }
+
+    if (found_something) {
+        strcpy(buf2, "");
+        if (strlen(dist_pretty)) {
+            strcat(buf2, dist_pretty);
+        } else {
+            if (strlen(dist_name)) {
+                strcat(buf2, dist_name);
+                strcat(buf2, " ");
+            }
+            if (strlen(dist_version)) {
+                strcat(buf2, dist_version);
+                strcat(buf2, " ");
+            }
+            if (strlen(dist_codename)) {
+                strcat(buf2, dist_codename);
+                strcat(buf2, " ");
+            }
+            strip_whitespace(buf2);
+        }
+        strcat(buf2, " [");
+        strcat(buf2, os_version);
+        strcat(buf2, "]");
+        safe_strcpy(os_version, buf2);
+        if (strlen(dist_name)) {
+            strcat(os_name, " ");
+            strcat(os_name, dist_name);
+        }
+    }
+#endif //LINUX_LIKE_SYSTEM
+    printf("os_name: %s\nos_version: %s\nproduct_name: %s\n",
+        os_name, os_version, product_name
+    );
 }
diff --git a/client/hostinfo_win.cpp b/client/hostinfo_win.cpp
index 0a07f37..48ed20c 100644
--- a/client/hostinfo_win.cpp
+++ b/client/hostinfo_win.cpp
@@ -885,9 +885,9 @@ int get_os_information(
 
                 if ( lstrcmpi( "WINNT", szProductType) == 0 ) {
                     safe_strcpy( szSKU, "Workstation Edition" );
-                } if ( lstrcmpi( "LANMANNT", szProductType) == 0 ) {
+                } else if ( lstrcmpi( "LANMANNT", szProductType) == 0 ) {
                     safe_strcpy( szSKU, "Server Edition" );
-                } if ( lstrcmpi( "SERVERNT", szProductType) == 0 ) {
+                } else if ( lstrcmpi( "SERVERNT", szProductType) == 0 ) {
                     safe_strcpy( szSKU, "Advanced Server Edition" );
                 }
 
@@ -1442,6 +1442,8 @@ int HOST_INFO::get_host_info(bool init) {
         m_cache,
         p_ncpus
     );
+    collapse_whitespace(p_model);
+    collapse_whitespace(p_vendor);
     if (!strlen(host_cpid)) {
         generate_host_cpid();
     }
diff --git a/client/http_curl.cpp b/client/http_curl.cpp
index 0bda30a..7fbd3a6 100644
--- a/client/http_curl.cpp
+++ b/client/http_curl.cpp
@@ -865,7 +865,9 @@ void HTTP_OP::setup_proxy_session(bool no_proxy) {
 
     } else if (pi.use_socks_proxy) {
         // CURL only supports SOCKS version 5
-        curl_easy_setopt(curlEasy, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
+        curl_easy_setopt(curlEasy, CURLOPT_PROXYTYPE,
+            pi.socks5_remote_dns?CURLPROXY_SOCKS5_HOSTNAME:CURLPROXY_SOCKS5
+        );
         curl_easy_setopt(curlEasy, CURLOPT_PROXYPORT, (long) pi.socks_server_port);
         curl_easy_setopt(curlEasy, CURLOPT_PROXY, (char*) pi.socks_server_name);
         // libcurl uses blocking sockets with socks proxy, so limit timeout.
diff --git a/client/http_curl.h b/client/http_curl.h
index b89fe01..d3f6dfd 100644
--- a/client/http_curl.h
+++ b/client/http_curl.h
@@ -21,8 +21,8 @@
 
 // We use libcurl: http://curl.haxx.se/libcurl
 
-#ifndef _HTTP_CURL_
-#define _HTTP_CURL_
+#ifndef BOINC_HTTP_CURL_H
+#define BOINC_HTTP_CURL_H
 
 #include <curl/curl.h>
 
@@ -206,4 +206,4 @@ public:
 
 };
 
-#endif //__HTTP_CURL_
+#endif // BOINC_HTTP_CURL_H
diff --git a/client/log_flags.cpp b/client/log_flags.cpp
index 65a1e96..04554ca 100644
--- a/client/log_flags.cpp
+++ b/client/log_flags.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -196,6 +196,11 @@ void CC_CONFIG::show() {
     if (dont_use_vbox) {
         msg_printf(NULL, MSG_INFO, "Config: don't use VirtualBox");
     }
+    for (i=0; i<alt_platforms.size(); i++) {
+        msg_printf(NULL, MSG_INFO,
+            "Config: alternate platform: %s", alt_platforms[i].c_str()
+        );
+    }
     for (i=0; i<exclude_gpus.size(); i++) {
         show_exclude_gpu(exclude_gpus[i]);
     }
diff --git a/client/log_flags.h b/client/log_flags.h
index 8b001a0..3838048 100644
--- a/client/log_flags.h
+++ b/client/log_flags.h
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2014 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -15,14 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// flags determining what is written to standard out.
-// (errors go to stderr)
-//
-// NOTE: all writes to stdout should have an if (log_flags.*) {} around them.
-//
-
-#ifndef _LOGFLAGS_H_
-#define _LOGFLAGS_H_
+#ifndef BOINC_LOG_FLAGS_H
+#define BOINC_LOG_FLAGS_H
 
 #include <vector>
 #include <string>
diff --git a/client/mac_address.h b/client/mac_address.h
index d4a1727..e764a44 100644
--- a/client/mac_address.h
+++ b/client/mac_address.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef MAC_ADDRESS_H
-#define MAC_ADDRESS_H
+#ifndef BOINC_MAC_ADDRESS_H
+#define BOINC_MAC_ADDRESS_H
 
 // Get the MAC address of a network interface.
 // If there's more than one, prefer eth0
@@ -25,4 +25,4 @@
 //
 int get_mac_address(char* address);
 
-#endif // MAC_ADDRESS_H
+#endif
diff --git a/client/main.cpp b/client/main.cpp
index 155760c..e4fd1e8 100644
--- a/client/main.cpp
+++ b/client/main.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2015 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -49,9 +49,7 @@
 
 #ifdef __APPLE__
 #include <Carbon/Carbon.h>
-#if (defined(SANDBOX) && defined(_DEBUG))
-#include "SetupSecurity.h"
-#endif
+#include "hostinfo.h"
 #endif
 
 #include "diagnostics.h"
@@ -357,7 +355,7 @@ int boinc_main_loop() {
 #ifdef __APPLE__
     // If we run too soon during system boot we can cause a kernel panic
     if (gstate.executing_as_daemon) {
-        if (TickCount() < (120*60)) {   // If system has been up for less than 2 minutes
+        if (get_system_uptime() < 120) {    // If system has been up for less than 2 minutes
             boinc_sleep(30.);
         }
     }
@@ -513,16 +511,23 @@ int main(int argc, char** argv) {
     // Make sure owners, groups and permissions are correct
     // for the current setting of g_use_sandbox
     //
-#if defined(_DEBUG) && defined(__APPLE__)
-    // GDB can't attach to applications which are running as a different user
-    // or group, so fix up data with current user and group during debugging
-    //
-    if (check_security(g_use_sandbox, false, NULL, 0)) {
-        SetBOINCDataOwnersGroupsAndPermissions();
-    }
-#endif  // _DEBUG && __APPLE__
+    // NOTE: GDB and LLDB can't attach to applications which are running as
+    // a different user or group.
+    // Normally, the Mac Development (Debug) builds do not define SANDBOX, so
+    // check_security() is never called. However, it is possible to use GDB
+    // or LLDB on sandbox-specific code, as long as the code is run as the
+    // current user (i.e., not as boinc_master or boinc_project), and the
+    // current user is a member of both groups boinc_master and boinc_project.
+    // However, this has not been thoroughly tested. Please see the comments
+    // in SetupSecurity.cpp and check_security.cpp for more details.
     int securityErr = check_security(g_use_sandbox, false, NULL, 0);
     if (securityErr) {
+#if (defined(__APPLE__) && defined (_DEBUG))
+        printf(
+            "To debug with sandbox security enabled, the current user\n"
+            "must be a member of both groups boinc_master and boinc_project."
+        );
+#else  // ! (defined(__APPLE__) && defined (_DEBUG))
         printf(
             "File ownership or permissions are set in a way that\n"
             "does not allow sandboxed execution of BOINC applications.\n"
@@ -535,6 +540,7 @@ int main(int argc, char** argv) {
 #endif
             ". (Error code %d)\n", securityErr
         );
+#endif  // ! (defined(__APPLE__) && defined (_DEBUG))
         return ERR_USER_PERMISSION;
     }
 #endif  // SANDBOX
diff --git a/client/net_stats.h b/client/net_stats.h
index 2388860..8bd9cbe 100644
--- a/client/net_stats.h
+++ b/client/net_stats.h
@@ -19,8 +19,8 @@
 // namely exponentially weighted averages of upload and download speeds
 //
 
-#ifndef _NET_STATS_
-#define _NET_STATS_
+#ifndef BOINC_NET_STATS_H
+#define BOINC_NET_STATS_H
 
 #include <deque>
 using std::deque;
diff --git a/client/pers_file_xfer.h b/client/pers_file_xfer.h
index 154f23b..64902d1 100644
--- a/client/pers_file_xfer.h
+++ b/client/pers_file_xfer.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PERS_FILE_XFER_H
-#define _PERS_FILE_XFER_H
+#ifndef BOINC_PERS_FILE_XFER_H
+#define BOINC_PERS_FILE_XFER_H
 
 #include "client_types.h"
 #include "file_xfer.h"
diff --git a/client/project.cpp b/client/project.cpp
index 495972e..e19e952 100644
--- a/client/project.cpp
+++ b/client/project.cpp
@@ -88,6 +88,7 @@ void PROJECT::init() {
     anonymous_platform = false;
     non_cpu_intensive = false;
     verify_files_on_app_start = false;
+    report_results_immediately = false;
     pwf.reset(this);
     send_time_stats_log = 0;
     send_job_log = 0;
@@ -111,6 +112,10 @@ void PROJECT::init() {
     njobs_success = 0;
     njobs_error = 0;
     elapsed_time = 0;
+    cpu_ec = 0;
+    cpu_time = 0;
+    gpu_ec = 0;
+    gpu_time = 0;
     app_configs.clear();
 
 #ifdef SIM
@@ -167,7 +172,7 @@ static bool parse_rsc_param(XML_PARSER& xp, const char* end_tag, int& rsc_type,
 //
 int PROJECT::parse_state(XML_PARSER& xp) {
     char buf[256];
-    std::string sched_url, stemp;
+    string sched_url, stemp;
     string str1, str2;
     int retval, rt;
     double x;
@@ -323,6 +328,10 @@ int PROJECT::parse_state(XML_PARSER& xp) {
         if (xp.parse_int("njobs_error", njobs_error)) continue;
         if (xp.parse_double("elapsed_time", elapsed_time)) continue;
         if (xp.parse_double("last_rpc_time", last_rpc_time)) continue;
+        if (xp.parse_double("cpu_ec", cpu_ec)) continue;
+        if (xp.parse_double("cpu_time", cpu_time)) continue;
+        if (xp.parse_double("gpu_ec", gpu_ec)) continue;
+        if (xp.parse_double("gpu_time", gpu_time)) continue;
 #ifdef SIM
         if (xp.match_tag("available")) {
             available.parse(xp, "/available");
@@ -498,7 +507,7 @@ int PROJECT::write_state(MIOFILE& out, bool gui_rpc) {
         }
         out.printf("    <project_dir>%s</project_dir>\n", project_dir_absolute());
     } else {
-       for (i=0; i<scheduler_urls.size(); i++) {
+        for (i=0; i<scheduler_urls.size(); i++) {
             out.printf(
                 "    <scheduler_url>%s</scheduler_url>\n",
                 scheduler_urls[i].c_str()
@@ -516,6 +525,13 @@ int PROJECT::write_state(MIOFILE& out, bool gui_rpc) {
                 t->url.c_str()
             );
         }
+        out.printf(
+            "    <cpu_ec>%f</cpu_ec>\n"
+            "    <cpu_time>%f</cpu_time>\n"
+            "    <gpu_ec>%f</gpu_ec>\n"
+            "    <gpu_time>%f</gpu_time>\n",
+            cpu_ec, cpu_time, gpu_ec, gpu_time
+        );
     }
     out.printf(
         "</project>\n"
@@ -583,6 +599,10 @@ void PROJECT::copy_state_fields(PROJECT& p) {
     njobs_error = p.njobs_error;
     elapsed_time = p.elapsed_time;
     last_rpc_time = p.last_rpc_time;
+    cpu_ec = p.cpu_ec;
+    cpu_time = p.cpu_time;
+    gpu_ec = p.gpu_ec;
+    gpu_time = p.gpu_time;
 }
 
 // Write project statistic to GUI RPC reply
@@ -595,7 +615,7 @@ int PROJECT::write_statistics(MIOFILE& out) {
         master_url
     );
 
-    for (std::vector<DAILY_STATS>::iterator i=statistics.begin();
+    for (vector<DAILY_STATS>::iterator i=statistics.begin();
         i!=statistics.end(); ++i
     ) {
         out.printf(
diff --git a/client/project.h b/client/project.h
index e254cd1..3029efe 100644
--- a/client/project.h
+++ b/client/project.h
@@ -15,18 +15,23 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PROJECT_
-#define _PROJECT_
+#ifndef BOINC_PROJECT_H
+#define BOINC_PROJECT_H
 
 #include "app_config.h"
 #include "client_types.h"
 
+// describes a project to which this client is attached
+//
 struct PROJECT : PROJ_AM {
     char _project_dir[MAXPATHLEN];
     char _project_dir_absolute[MAXPATHLEN];
 
+    std::string sci_keywords;
+    std::string loc_keywords;
+
     // the following items come from the account file
-    // They are a function only of the user and the project
+    // They are a function of the user and the project (not host)
     //
     char authenticator[256];
         // user's authenticator on this project
@@ -77,7 +82,8 @@ struct PROJECT : PROJ_AM {
         // But we need it in the latter in order to parse prefs.
     bool using_venue_specific_prefs;
 
-    // the following items come from client_state.xml
+    ///////  START OF ITEMS STORED IN client_state.xml
+    //
     // They may depend on the host as well as user and project
     // NOTE: if you add anything, add it to copy_state_fields() also!!!
     //
@@ -107,6 +113,23 @@ struct PROJECT : PROJ_AM {
         // -1 means not specified by AMS, or not using an AMS
     double last_rpc_time;
         // when last RPC finished; used by Manager
+    double duration_correction_factor;
+        // Multiply by this when estimating the CPU time of a result
+        // (based on FLOPs estimated and benchmarks).
+        // This is dynamically updated in a way that maintains an upper bound.
+        // it goes down slowly but if a new estimate X is larger,
+        // the factor is set to X.
+        //
+        // Deprecated - current server logic handles this,
+        // and this should go to 1.
+        // But we need to keep it around for older projects
+
+    // accounting info; estimated credit and time for CPU and GPU
+    //
+    double cpu_ec;
+    double cpu_time;
+    double gpu_ec;
+    double gpu_time;
 
     // stuff related to scheduler RPCs and master fetch
     //
@@ -116,7 +139,6 @@ struct PROJECT : PROJ_AM {
     int master_fetch_failures;
     double min_rpc_time;
         // earliest time to contact any server of this project (or zero)
-    void set_min_rpc_time(double future_time, const char* reason);
     double next_rpc_time;
         // if nonzero, specifies a time when another scheduler RPC
         // should be done (as requested by server).
@@ -129,16 +151,18 @@ struct PROJECT : PROJ_AM {
         // we need to do a scheduler RPC, for various possible reasons:
         // user request, propagate host CPID, time-based, etc.
         // Reasons are enumerated in lib/common_defs.h
+    bool trickle_up_pending;
+        // have trickle up to send
+
+    ///////  END OF ITEMS STORED IN client_state.xml
+
+    // Other stuff
+    //
     bool possibly_backed_off;
         // we need to call request_work_fetch() when a project
         // transitions from being backed off to not.
         // This (slightly misnamed) keeps track of whether this
         // may still need to be done for given project
-    bool trickle_up_pending;
-        // have trickle up to send
-
-    // Other stuff
-
     bool anonymous_platform;
         // app_versions.xml file found in project dir;
         // use those apps rather then getting from server
@@ -154,15 +178,17 @@ struct PROJECT : PROJ_AM {
         // computed by get_disk_usages()
     double disk_share;
         // computed by get_disk_shares();
+    bool report_results_immediately;
 
-    // items send in scheduler replies, requesting that
-    // various things be sent in the next request
+    // items sent in scheduler replies,
+    // requesting that various things be sent subsequent requests
     //
     int send_time_stats_log;
         // if nonzero, send time stats log from that point on
     int send_job_log;
         // if nonzero, send this project's job log from that point on
     bool send_full_workload;
+
     bool dont_use_dcf;
 
     bool suspended_via_gui;
@@ -173,6 +199,7 @@ struct PROJECT : PROJ_AM {
     bool attached_via_acct_mgr;
     bool detach_when_done;
         // when no results for this project, detach it.
+        // if using AM, do AM RPC before detaching
     bool ended;
         // project has ended; advise user to detach
     char code_sign_key[MAX_KEY_LEN];
@@ -180,6 +207,9 @@ struct PROJECT : PROJ_AM {
     std::vector<FILE_REF> project_files;
         // files not specific to apps or work - e.g. icons
 
+    ///////////////// member functions /////////////////
+
+    void set_min_rpc_time(double future_time, const char* reason);
     int parse_preferences_for_user_files();
     void write_project_files(MIOFILE&);
     void link_project_files();
@@ -192,16 +222,6 @@ struct PROJECT : PROJ_AM {
         // called when a project file download finishes.
         // If it's the last one, set project_files_downloaded_time to now
 
-    double duration_correction_factor;
-        // Multiply by this when estimating the CPU time of a result
-        // (based on FLOPs estimated and benchmarks).
-        // This is dynamically updated in a way that maintains an upper bound.
-        // it goes down slowly but if a new estimate X is larger,
-        // the factor is set to X.
-        //
-        // Deprecated - current server logic handles this,
-        // and this should go to 1.
-        // But we need to keep it around for older projects
     void update_duration_correction_factor(ACTIVE_TASK*);
     
     // fields used by CPU scheduler and work fetch
diff --git a/client/result.h b/client/result.h
index 9689e74..a614410 100644
--- a/client/result.h
+++ b/client/result.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _RESULT_
-#define _RESULT_
+#ifndef BOINC_RESULT_H
+#define BOINC_RESULT_H
 
 #include "project.h"
 
diff --git a/client/rr_sim.h b/client/rr_sim.h
index 5330b61..18d7c27 100644
--- a/client/rr_sim.h
+++ b/client/rr_sim.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __RR_SIM__
-#define __RR_SIM__
+#ifndef BOINC_RR_SIM_H
+#define BOINC_RR_SIM_H
 
 
 extern void rr_simulation();
diff --git a/client/sandbox.cpp b/client/sandbox.cpp
index 33bc0df..7916d69 100644
--- a/client/sandbox.cpp
+++ b/client/sandbox.cpp
@@ -63,7 +63,7 @@ int switcher_exec(const char *util_filename, const char* cmdline) {
     int fds_out[2], fds_err[2];
     int stat;
     int retval;
-    std::string output_out, output_err;
+    string output_out, output_err;
 
     snprintf(util_path, sizeof(util_path), "%s/%s", SWITCHER_DIR, util_filename);
     argv[0] = const_cast<char*>(util_filename);
diff --git a/client/scheduler_op.cpp b/client/scheduler_op.cpp
index 22d6882..f4126bc 100644
--- a/client/scheduler_op.cpp
+++ b/client/scheduler_op.cpp
@@ -325,10 +325,10 @@ int SCHEDULER_OP::init_master_fetch(PROJECT* p) {
 
 // parse a master file.
 //
-int SCHEDULER_OP::parse_master_file(PROJECT* p, vector<std::string> &urls) {
+int SCHEDULER_OP::parse_master_file(PROJECT* p, vector<string> &urls) {
     char buf[256], buf2[256];
     char master_filename[256];
-    std::string str;
+    string str;
     FILE* f;
     int n;
 
@@ -392,7 +392,7 @@ int SCHEDULER_OP::parse_master_file(PROJECT* p, vector<std::string> &urls) {
 // transfer scheduler URLs to project.
 // Return true if any of them is new
 //
-bool SCHEDULER_OP::update_urls(PROJECT* p, vector<std::string> &urls) {
+bool SCHEDULER_OP::update_urls(PROJECT* p, vector<string> &urls) {
     unsigned int i, j;
     bool found, any_new;
 
@@ -422,7 +422,7 @@ bool SCHEDULER_OP::update_urls(PROJECT* p, vector<std::string> &urls) {
 //
 bool SCHEDULER_OP::poll() {
     int retval;
-    vector<std::string> urls;
+    vector<string> urls;
     bool changed;
 
     switch(state) {
@@ -587,7 +587,7 @@ int SCHEDULER_REPLY::parse(FILE* in, PROJECT* project) {
     int retval;
     MIOFILE mf;
     XML_PARSER xp(&mf);
-    std::string delete_file_name;
+    string delete_file_name;
     bool verify_files_on_app_start = false;
     bool non_cpu_intensive = false;
     bool ended = false;
@@ -703,7 +703,7 @@ int SCHEDULER_REPLY::parse(FILE* in, PROJECT* project) {
                 return retval;
             }
         } else if (xp.match_tag("gui_urls")) {
-            std::string foo;
+            string foo;
             retval = copy_element_contents(xp.f->f, "</gui_urls>", foo);
             if (retval) {
                 msg_printf(project, MSG_INTERNAL_ERROR,
diff --git a/client/scheduler_op.h b/client/scheduler_op.h
index 4fa6c8f..7125ba3 100644
--- a/client/scheduler_op.h
+++ b/client/scheduler_op.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SCHEDULER_OP_
-#define _SCHEDULER_OP_
+#ifndef BOINC_SCHEDULER_OP_H
+#define BOINC_SCHEDULER_OP_H
 
 #include <vector>
 
diff --git a/client/scripts/Makefile.am b/client/scripts/Makefile.am
index ae6d01c..67d3820 100644
--- a/client/scripts/Makefile.am
+++ b/client/scripts/Makefile.am
@@ -3,7 +3,7 @@
 install-exec-hook:
 	chmod +x boinc-client
 	$(INSTALL) -d $(DESTDIR)$(sysconfdir)/init.d
-	$(INSTALL) -b $(srcdir)/boinc-client $(DESTDIR)$(sysconfdir)/init.d/boinc-client
+	$(INSTALL) -b boinc-client $(DESTDIR)$(sysconfdir)/init.d/boinc-client
 	if [ -d /etc/sysconfig ] ; then \
 	  $(INSTALL) -d $(DESTDIR)$(sysconfdir)/sysconfig ; \
 	  $(INSTALL) $(srcdir)/boinc-client.conf $(DESTDIR)$(sysconfdir)/sysconfig/boinc-client ; \
diff --git a/client/sim.h b/client/sim.h
index eccf977..4095adb 100644
--- a/client/sim.h
+++ b/client/sim.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
 
-#ifndef _SIM_H_
-#define _SIM_H_
+#ifndef BOINC_SIM_H
+#define BOINC_SIM_H
 
 #include <vector>
 
diff --git a/client/sysmon_win.cpp b/client/sysmon_win.cpp
index cec8e69..191cc76 100644
--- a/client/sysmon_win.cpp
+++ b/client/sysmon_win.cpp
@@ -179,7 +179,7 @@ static LRESULT CALLBACK WindowsMonitorSystemPowerWndProc(
         //     PBT_APMBATTERYLOW
         //     PBT_APMPOWERSTATUSCHANGE
         //     PBT_APMOEMEVENT
-        //     PBT_APMRESUMEAUTOMATIC 
+        //     PBT_APMRESUMEAUTOMATIC
         case WM_POWERBROADCAST:
             switch(wParam) {
                 // System is preparing to suspend.  This is valid on
@@ -277,6 +277,7 @@ static DWORD WINAPI WindowsMonitorSystemPowerThread( LPVOID  ) {
 }
 
 // Detect any proxy configuration settings automatically.
+//
 static void windows_detect_autoproxy_settings() {
     if (log_flags.proxy_debug) {
         post_sysmon_msg("[proxy] automatic proxy check in progress");
@@ -332,7 +333,7 @@ static void windows_detect_autoproxy_settings() {
                 // Trim string if more than one proxy is defined
                 // proxy list is defined as:
                 //   ([<scheme>=][<scheme>"://"]<server>[":"<port>])
-                
+
                 // Find and erase first delimeter type.
                 pos = proxy.find(';');
                 if (pos != -1 ) {
@@ -424,14 +425,16 @@ int initialize_system_monitor(int /*argc*/, char** /*argv*/) {
         }
     }
 
-    // Create a window to receive system power events.
+    // Create a thread to receive system power events.
+    //
     g_hWindowsMonitorSystemPowerThread = CreateThread(
         NULL,
         0,
         WindowsMonitorSystemPowerThread,
         NULL,
         0,
-        NULL);
+        NULL
+    );
 
     if (!g_hWindowsMonitorSystemPowerThread) {
         g_hWindowsMonitorSystemPowerThread = NULL;
@@ -439,16 +442,20 @@ int initialize_system_monitor(int /*argc*/, char** /*argv*/) {
     }
 
     // Create a thread to handle proxy auto-detection.
-    g_hWindowsMonitorSystemProxyThread = CreateThread(
-        NULL,
-        0,
-        WindowsMonitorSystemProxyThread,
-        NULL,
-        0,
-        NULL);
+    //
+    if (!cc_config.proxy_info.no_autodetect) {
+        g_hWindowsMonitorSystemProxyThread = CreateThread(
+            NULL,
+            0,
+            WindowsMonitorSystemProxyThread,
+            NULL,
+            0,
+            NULL
+        );
 
-    if (!g_hWindowsMonitorSystemProxyThread) {
-        g_hWindowsMonitorSystemProxyThread = NULL;
+        if (!g_hWindowsMonitorSystemProxyThread) {
+            g_hWindowsMonitorSystemProxyThread = NULL;
+        }
     }
 
     return 0;
@@ -525,14 +532,17 @@ void WINAPI BOINCServiceMain(DWORD /*dwArgc*/, LPTSTR * /*lpszArgv*/) {
     // register our service control handler:
     //
     sshStatusHandle = RegisterServiceCtrlHandler( TEXT(SZSERVICENAME), BOINCServiceCtrl);
-    if (!sshStatusHandle)
+    if (!sshStatusHandle) {
         goto cleanup;
+    }
 
     if (!ReportStatus(
         SERVICE_RUNNING,       // service state
         ERROR_SUCCESS,         // exit code
-        0))                    // wait hint
+        0)                    // wait hint
+    ){
         goto cleanup;
+    }
 
     dwErr = boinc_main_loop();
 
@@ -638,10 +648,11 @@ BOOL ReportStatus(
     static DWORD dwCheckPoint = 1;
     BOOL fResult = TRUE;
 
-    if (dwCurrentState == SERVICE_START_PENDING)
+    if (dwCurrentState == SERVICE_START_PENDING) {
         ssStatus.dwControlsAccepted = 0;
-    else
+    } else {
         ssStatus.dwControlsAccepted = SERVICE_ACCEPTED_ACTIONS;
+    }
 
     ssStatus.dwCurrentState = dwCurrentState;
     ssStatus.dwWin32ExitCode = dwWin32ExitCode;
@@ -745,7 +756,8 @@ VOID LogEventWarningMessage(LPTSTR lpszMsg) {
             2,                    // strings in lpszStrings
             0,                    // no bytes of raw data
             (LPCSTR*)lpszStrings, // array of error strings
-            NULL);                // no raw data
+            NULL                  // no raw data
+        );
 
         (VOID) DeregisterEventSource(hEventSource);
     }
@@ -785,9 +797,9 @@ VOID LogEventInfoMessage(LPTSTR lpszMsg) {
             2,                    // strings in lpszStrings
             0,                    // no bytes of raw data
             (LPCSTR*)lpszStrings, // array of error strings
-            NULL);                // no raw data
+            NULL                  // no raw data
+        );
 
         (VOID) DeregisterEventSource(hEventSource);
     }
 }
-
diff --git a/client/sysmon_win.h b/client/sysmon_win.h
index 0a29454..a961d3e 100644
--- a/client/sysmon_win.h
+++ b/client/sysmon_win.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SYSMON_WIN_H
-#define _SYSMON_WIN_H
+#ifndef BOINC_SYSMON_WIN_H
+#define BOINC_SYSMON_WIN_H
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/client/thread.h b/client/thread.h
index 0ee9a77..d746ba7 100644
--- a/client/thread.h
+++ b/client/thread.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _THREAD_H_
-#define _THREAD_H_
+#ifndef BOINC_THREAD_H
+#define BOINC_THREAD_H
 
 #ifdef _WIN32
 #else
diff --git a/client/time_stats.h b/client/time_stats.h
index dfc3fba..03b347d 100644
--- a/client/time_stats.h
+++ b/client/time_stats.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _TIME_STATS_
-#define _TIME_STATS_
+#ifndef BOINC_TIME_STATS_H
+#define BOINC_TIME_STATS_H
 
 #include <vector>
 
diff --git a/client/work_fetch.cpp b/client/work_fetch.cpp
index 53982ae..5bb047d 100644
--- a/client/work_fetch.cpp
+++ b/client/work_fetch.cpp
@@ -784,6 +784,9 @@ PROJECT* WORK_FETCH::choose_project() {
     return p;
 }
 
+// estimate the amount of CPU and GPU time this task has got
+// in last dt sec, and add to project totals
+//
 void WORK_FETCH::accumulate_inst_sec(ACTIVE_TASK* atp, double dt) {
     APP_VERSION* avp = atp->result->avp;
     PROJECT* p = atp->result->project;
diff --git a/client/work_fetch.h b/client/work_fetch.h
index 139e0de..0eb7983 100644
--- a/client/work_fetch.h
+++ b/client/work_fetch.h
@@ -18,8 +18,8 @@
 // Work fetch logic for CPU, GPU, and other processing resources.
 // See http://boinc.berkeley.edu/trac/wiki/GpuWorkFetch
 
-#ifndef _WORK_FETCH_
-#define _WORK_FETCH_
+#ifndef BOINC_WORK_FETCH_H
+#define BOINC_WORK_FETCH_H
 
 #include <vector>
 #include <deque>
diff --git a/clientgui/AccountInfoPage.h b/clientgui/AccountInfoPage.h
index 4efb37f..5143e05 100644
--- a/clientgui/AccountInfoPage.h
+++ b/clientgui/AccountInfoPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_ACCOUNTINFOPAGE_H_
-#define _WIZ_ACCOUNTINFOPAGE_H_
+#ifndef BOINC_ACCOUNTINFOPAGE_H
+#define BOINC_ACCOUNTINFOPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "AccountInfoPage.cpp"
@@ -105,4 +105,4 @@ public:
     wxString m_strAccountUsername;
 };
 
-#endif // _WIZ_ACCOUNTINFOPAGE_H_
+#endif
diff --git a/clientgui/AccountManagerInfoPage.h b/clientgui/AccountManagerInfoPage.h
index 1b9fb15..7d94714 100644
--- a/clientgui/AccountManagerInfoPage.h
+++ b/clientgui/AccountManagerInfoPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_ACCOUNTMANAGERINFOPAGE_H_
-#define _WIZ_ACCOUNTMANAGERINFOPAGE_H_
+#ifndef BOINC_ACCOUNTMANAGERINFOPAGE_H
+#define BOINC_ACCOUNTMANAGERINFOPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "AccountManagerInfoPage.cpp"
@@ -125,4 +125,4 @@ public:
     bool m_bAccountManagerListPopulated;
 };
 
-#endif // _WIZ_ACCOUNTMANAGERINFOPAGE_H_
+#endif
diff --git a/clientgui/AccountManagerProcessingPage.h b/clientgui/AccountManagerProcessingPage.h
index bae1dbd..7299f98 100644
--- a/clientgui/AccountManagerProcessingPage.h
+++ b/clientgui/AccountManagerProcessingPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_ACCOUNTMANAGERPROCESSINGPAGE_H_
-#define _WIZ_ACCOUNTMANAGERPROCESSINGPAGE_H_
+#ifndef BOINC_ACCOUNTMANAGERPROCESSINGPAGE_H
+#define BOINC_ACCOUNTMANAGERPROCESSINGPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "AccountManagerProcessingPage.cpp"
@@ -144,4 +144,4 @@ public:
     int m_iCurrentState;
 };
 
-#endif // _WIZ_ACCOUNTMANAGERPROCESSINGPAGE_H_
+#endif
diff --git a/clientgui/AccountManagerPropertiesPage.h b/clientgui/AccountManagerPropertiesPage.h
index 6acb753..b4f69c1 100644
--- a/clientgui/AccountManagerPropertiesPage.h
+++ b/clientgui/AccountManagerPropertiesPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_ACCOUNTMANAGERPROPERTIESPAGE_H_
-#define _WIZ_ACCOUNTMANAGERPROPERTIESPAGE_H_
+#ifndef BOINC_ACCOUNTMANAGERPROPERTIESPAGE_H
+#define BOINC_ACCOUNTMANAGERPROPERTIESPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "AccountManagerPropertiesPage.cpp"
@@ -164,4 +164,4 @@ public:
     int m_iCurrentState;
 };
 
-#endif // _WIZ_ACCOUNTMANAGERPROPERTIESPAGE_H_
+#endif
diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp
index 1944d5e..fc61ac1 100644
--- a/clientgui/AdvancedFrame.cpp
+++ b/clientgui/AdvancedFrame.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2016 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -21,6 +21,7 @@
 
 #ifdef __APPLE__
 #include "mac/MacGUI.pch"
+#include "mac_util.h"
 #endif
 
 #include "stdwx.h"
@@ -195,6 +196,7 @@ BEGIN_EVENT_TABLE (CAdvancedFrame, CBOINCBaseFrame)
     EVT_MENU(ID_HELPBOINCMANAGER, CAdvancedFrame::OnHelpBOINC)
     EVT_MENU(ID_HELPBOINCWEBSITE, CAdvancedFrame::OnHelpBOINC)
     EVT_MENU(wxID_ABOUT, CAdvancedFrame::OnHelpAbout)
+    EVT_MENU(ID_CHECK_VERSION, CAdvancedFrame::OnCheckVersion)
     EVT_HELP(wxID_ANY, CAdvancedFrame::OnHelp)
     // Custom Events & Timers
     EVT_FRAME_CONNECT(CAdvancedFrame::OnConnect)
@@ -340,7 +342,7 @@ bool CAdvancedFrame::CreateMenu() {
 
     menuFile->Append(
         ID_SELECTCOMPUTER, 
-        _("Select computer..."),
+        _("Select computer...\tCtrl+Shift+I"),
         _("Connect to a BOINC client on another computer")
     );
     menuFile->Append(
@@ -686,6 +688,21 @@ bool CAdvancedFrame::CreateMenu() {
     menuHelp->AppendSeparator();
 
     strMenuName.Printf(
+        _("Check for new %s version"),
+        pSkinAdvanced->GetApplicationShortName().c_str()
+    );
+    strMenuDescription.Printf(
+        _("Check for new %s version"),
+        pSkinAdvanced->GetApplicationShortName().c_str()
+    );
+    menuHelp->Append(
+        ID_CHECK_VERSION,
+        strMenuName,
+        strMenuDescription
+    );
+    menuHelp->AppendSeparator();
+
+    strMenuName.Printf(
         _("&About %s..."), 
         pSkinAdvanced->GetApplicationName().c_str()
     );
@@ -737,7 +754,7 @@ bool CAdvancedFrame::CreateMenu() {
     m_Shortcuts[0].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER);
     m_pAccelTable = new wxAcceleratorTable(1, m_Shortcuts);
     SetAcceleratorTable(*m_pAccelTable);
- #endif
+#endif
 
     wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::CreateMenu - Function End"));
     return true;
@@ -896,7 +913,6 @@ bool CAdvancedFrame::SaveState() {
     CBOINCBaseView* pView = NULL;
     wxString        strConfigLocation;
     wxString        strPreviousLocation;
-    wxString        strBuffer;
     int             iIndex = 0;
     int             iItemCount = 0;
 
@@ -958,8 +974,6 @@ bool CAdvancedFrame::RestoreState() {
     CBOINCBaseView* pView = NULL;
     wxString        strConfigLocation;
     wxString        strPreviousLocation;
-    wxString        strBuffer;
-    wxString        strValue;
     long            iIndex;
     long            iPageCount;
     long            iCurrentPage;
@@ -1260,13 +1274,7 @@ void CAdvancedFrame::OnWizardDetach(wxCommandEvent& WXUNUSED(event)) {
         );
 
         if (wxYES == iAnswer) {
-            std::string url, name, passwd;
-            pDoc->rpc.acct_mgr_rpc(
-                url.c_str(),
-                name.c_str(),
-                passwd.c_str(),
-                false
-            );
+            pDoc->rpc.acct_mgr_rpc("", "", "", false);
         }
 
         DeleteMenu();
@@ -1417,36 +1425,26 @@ void CAdvancedFrame::OnSelectComputer(wxCommandEvent& WXUNUSED(event)) {
     wxString            password = wxEmptyString;
     CMainDocument*      pDoc = wxGetApp().GetDocument();
     long                lRetVal = -1;
+    bool                bRetrievePasswordFromFile = FALSE;
 
     wxASSERT(pDoc);
     wxASSERT(wxDynamicCast(pDoc, CMainDocument));
 
-    if (SelectComputer(hostName, portNum, password, false)) { 
-        if (pDoc->IsComputerNameLocal(hostName)) {
-            lRetVal = pDoc->Connect(
-                wxT("localhost"),
-                GUI_RPC_PORT,
-                wxEmptyString,
-                TRUE,
-                TRUE
-            );
-        } else {
-            // Connect to the remote machine
-            long lPort = GUI_RPC_PORT; 
-            int iPos = hostName.Find(wxT(":")); 
-            if (iPos != wxNOT_FOUND) { 
-                wxString sPort = hostName.substr(iPos + 1); 
-                if (!sPort.ToLong(&lPort)) lPort = GUI_RPC_PORT; 
-                hostName.erase(iPos); 
-            } 
-            lRetVal = pDoc->Connect(
-                hostName.c_str(),
-                portNum,
-                password.c_str(),
-                TRUE,
-                FALSE
-            );
+    if (SelectComputer(hostName, portNum, password, false)) {
+        // possibly read password from file if local computername AND no password was entered
+        if (pDoc->IsComputerNameLocal(hostName) && password == wxEmptyString) {
+            hostName = wxT("localhost");
+            bRetrievePasswordFromFile = TRUE;
         }
+        // Connect to the specified host
+        lRetVal = pDoc->Connect(
+            hostName.c_str(),
+            portNum,
+            password.c_str(),
+            TRUE,
+            bRetrievePasswordFromFile
+        );
+
         if (lRetVal) {
             ShowConnectionFailedAlert();
         }
@@ -1458,6 +1456,7 @@ void CAdvancedFrame::OnClientShutdown(wxCommandEvent& WXUNUSED(event)) {
     wxCommandEvent     evtSelectNewComputer(wxEVT_COMMAND_MENU_SELECTED, ID_SELECTCOMPUTER);
     CMainDocument*     pDoc = wxGetApp().GetDocument();
     CSkinAdvanced*     pSkinAdvanced = wxGetApp().GetSkinManager()->GetAdvanced();
+    int                showDialog = wxGetApp().GetBOINCMGRDisplayShutdownConnectedClientMessage();
     CDlgGenericMessage dlg(this);
     wxString           strDialogTitle = wxEmptyString;
     wxString           strDialogMessage = wxEmptyString;
@@ -1472,29 +1471,31 @@ void CAdvancedFrame::OnClientShutdown(wxCommandEvent& WXUNUSED(event)) {
     // Stop all timers
     StopTimers();
 
+    if (showDialog) {
+        // %s is the application name
+        //    i.e. 'BOINC Manager', 'GridRepublic Manager'
+        strDialogTitle.Printf(
+            _("%s - Shut down the current client..."),
+            pSkinAdvanced->GetApplicationName().c_str()
+        );
 
-    // %s is the application name
-    //    i.e. 'BOINC Manager', 'GridRepublic Manager'
-    strDialogTitle.Printf(
-        _("%s - Shut down the current client..."),
-        pSkinAdvanced->GetApplicationName().c_str()
-    );
-
-    // 1st %s is the application name
-    //    i.e. 'BOINC Manager', 'GridRepublic Manager'
-    // 2nd %s is the project name
-    //    i.e. 'BOINC', 'GridRepublic'
-    strDialogMessage.Printf(
-        _("%s will shut down the current client\nand prompt you for another host to connect to."),
-        pSkinAdvanced->GetApplicationName().c_str()
-    );
+        // 1st %s is the application name
+        //    i.e. 'BOINC Manager', 'GridRepublic Manager'
+        // 2nd %s is the project name
+        //    i.e. 'BOINC', 'GridRepublic'
+        strDialogMessage.Printf(
+            _("%s will shut down the current client\nand prompt you for another host to connect to."),
+            pSkinAdvanced->GetApplicationName().c_str()
+        );
 
-    dlg.SetTitle(strDialogTitle);
-    dlg.m_DialogMessage->SetLabel(strDialogMessage);
-    dlg.Fit();
-    dlg.Centre();
+        dlg.SetTitle(strDialogTitle);
+        dlg.m_DialogMessage->SetLabel(strDialogMessage);
+        dlg.Fit();
+        dlg.Centre();
+    }
 
-    if (wxID_OK == dlg.ShowModal()) {
+    if (!showDialog || wxID_OK == dlg.ShowModal()) {
+        wxGetApp().SetBOINCMGRDisplayShutdownConnectedClientMessage(!dlg.m_DialogDisableMessage->GetValue());
         pDoc->CoreClientQuit();
         pDoc->ForceDisconnect();
         
@@ -1602,22 +1603,12 @@ void CAdvancedFrame::OnLaunchNewInstance(wxCommandEvent& WXUNUSED(event)) {
         prog
     );
 #else
-    char s[512];
-    unsigned char procName[256];
-    ProcessSerialNumber myPSN;
-    GetCurrentProcess(&myPSN);
-    ProcessInfoRec pInfo;
-    OSStatus err;
-    
-    memset(&pInfo, 0, sizeof(pInfo));
-    pInfo.processInfoLength = sizeof( ProcessInfoRec );
-    pInfo.processName = procName;
-    err = GetProcessInformation(&myPSN, &pInfo);
-    if (!err) {
-        procName[procName[0]+1] = '\0'; // Convert pascal string to C string
-        snprintf(s, sizeof(s), "open -n \"/Applications/%s.app\" --args --multiple", procName+1);
-        system(s);
-    }
+    char s[MAXPATHLEN];
+    char path[MAXPATHLEN];
+
+    getPathToThisApp(path, sizeof(path));
+    snprintf(s, sizeof(s), "open -n \"%s\" --args --multiple", path);
+    system(s);
 #endif
 
     wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnLaunchNewInstance - Function End"));
@@ -1675,6 +1666,13 @@ void CAdvancedFrame::OnHelpAbout(wxCommandEvent& WXUNUSED(event)) {
     wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnHelpAbout - Function End"));
 }
 
+void CAdvancedFrame::OnCheckVersion(wxCommandEvent& WXUNUSED(event)) {
+    wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnCheckVersion - Function Begin"));
+
+    wxGetApp().GetDocument()->CheckForVersionUpdate(true);
+
+    wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnCheckVersion - Function End"));
+}
 
 void CAdvancedFrame::OnRefreshView(CFrameEvent& WXUNUSED(event)) {
     wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnRefreshView - Function Begin"));
@@ -1742,9 +1740,6 @@ void CAdvancedFrame::OnConnect(CFrameEvent& WXUNUSED(event)) {
     CSkinAdvanced* pSkinAdvanced = wxGetApp().GetSkinManager()->GetAdvanced();
     CWizardAttach* pWizard = NULL;
     wxString strComputer = wxEmptyString;
-    wxString strName = wxEmptyString;
-    wxString strURL = wxEmptyString;
-    wxString strTeamName = wxEmptyString;
     wxString strDialogTitle = wxEmptyString;
     wxString strDialogDescription = wxEmptyString;
     std::string strProjectName;
@@ -2008,7 +2003,6 @@ void CAdvancedFrame::OnFrameRender(wxTimerEvent& WXUNUSED(event)) {
                     m_pStatusbar->m_pbmpDisconnect->Hide();
                     m_pStatusbar->m_ptxtDisconnect->Hide();
 
-                    wxString strBuffer = wxEmptyString;
                     wxString strComputerName = wxEmptyString;
                     wxString strComputerVersion = wxEmptyString;
                     wxString strStatusText = wxEmptyString;
diff --git a/clientgui/AdvancedFrame.h b/clientgui/AdvancedFrame.h
index 4ddfc60..7b39d94 100644
--- a/clientgui/AdvancedFrame.h
+++ b/clientgui/AdvancedFrame.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _ADVANCEDFRAME_H_
-#define _ADVANCEDFRAME_H_
+#ifndef BOINC_ADVANCEDFRAME_H
+#define BOINC_ADVANCEDFRAME_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "AdvancedFrame.cpp"
@@ -88,6 +88,7 @@ public:
     void OnHelp( wxHelpEvent& event );
     void OnHelpBOINC( wxCommandEvent& event );
     void OnHelpAbout( wxCommandEvent& event );
+    void OnCheckVersion( wxCommandEvent& event );
 
     void OnRefreshState( wxTimerEvent& event );
     void OnFrameRender( wxTimerEvent& event );
@@ -151,7 +152,4 @@ private:
     DECLARE_EVENT_TABLE()
 };
 
-
 #endif
-
-
diff --git a/clientgui/AlreadyExistsPage.h b/clientgui/AlreadyExistsPage.h
index 29cb3dc..0253953 100644
--- a/clientgui/AlreadyExistsPage.h
+++ b/clientgui/AlreadyExistsPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_ALREADYEXISTSPAGE_H_
-#define _WIZ_ALREADYEXISTSPAGE_H_
+#ifndef BOINC_ALREADYEXISTSPAGE_H
+#define BOINC_ALREADYEXISTSPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "AlreadyExistsPage.cpp"
@@ -77,4 +77,4 @@ public:
 ////@end CErrAlreadyExistsPage member variables
 };
 
-#endif // _WIZ_ALREADYEXISTSPAGE_H_
+#endif
diff --git a/clientgui/AsyncRPC.h b/clientgui/AsyncRPC.h
index 0788bd6..bf22dc7 100644
--- a/clientgui/AsyncRPC.h
+++ b/clientgui/AsyncRPC.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _ASYNCRPC_H_
-#define _ASYNCRPC_H_
+#ifndef BOINC_ASYNCRPC_H
+#define BOINC_ASYNCRPC_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "AsyncRPC.cpp"
@@ -402,4 +402,4 @@ END_DECLARE_EVENT_TYPES()
 
 
 
-#endif // _ASYNCRPC_H_
+#endif
diff --git a/clientgui/BOINCBaseFrame.h b/clientgui/BOINCBaseFrame.h
index 0d4ef92..fa7cfaf 100644
--- a/clientgui/BOINCBaseFrame.h
+++ b/clientgui/BOINCBaseFrame.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINCBASEFRAME_H_
-#define _BOINCBASEFRAME_H_
+#ifndef BOINC_BOINCBASEFRAME_H
+#define BOINC_BOINCBASEFRAME_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCBaseFrame.cpp"
@@ -203,4 +203,3 @@ END_DECLARE_EVENT_TYPES()
 #define EVT_FRAME_NOTIFICATION(fn)       DECLARE_EVENT_TABLE_ENTRY(wxEVT_FRAME_NOTIFICATION, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
 
 #endif
-
diff --git a/clientgui/BOINCBaseView.h b/clientgui/BOINCBaseView.h
index c7b4fb9..21a72ea 100644
--- a/clientgui/BOINCBaseView.h
+++ b/clientgui/BOINCBaseView.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINCBASEVIEW_H_
-#define _BOINCBASEVIEW_H_
+#ifndef BOINC_BOINCBASEVIEW_H
+#define BOINC_BOINCBASEVIEW_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCBaseView.cpp"
@@ -217,4 +217,3 @@ protected:
 };
 
 #endif
-
diff --git a/clientgui/BOINCBaseWizard.cpp b/clientgui/BOINCBaseWizard.cpp
index 3532aeb..60bf6e1 100644
--- a/clientgui/BOINCBaseWizard.cpp
+++ b/clientgui/BOINCBaseWizard.cpp
@@ -47,11 +47,13 @@ IMPLEMENT_DYNAMIC_CLASS( CBOINCBaseWizard, wxWizardEx )
 CBOINCBaseWizard::CBOINCBaseWizard() :
     wxWizardEx()
 {
+  m_bCancelInProgress = false;
 }
 
 CBOINCBaseWizard::CBOINCBaseWizard(wxWindow *parent, int id, const wxString& title, const wxPoint& pos, long style) :
     wxWizardEx(parent, id, title, pos, style)
 {
+  m_bCancelInProgress = false;
 }
 
 /*!
diff --git a/clientgui/BOINCBaseWizard.h b/clientgui/BOINCBaseWizard.h
index 9ba0085..3327b28 100644
--- a/clientgui/BOINCBaseWizard.h
+++ b/clientgui/BOINCBaseWizard.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _WIZ_BOINCBASEWIZARD_H_
-#define _WIZ_BOINCBASEWIZARD_H_
+#ifndef BOINC_BOINCBASEWIZARD_H
+#define BOINC_BOINCBASEWIZARD_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCBaseWizard.cpp"
@@ -26,8 +26,7 @@
  * CBOINCBaseWizard class declaration
  */
 
-class CBOINCBaseWizard: public wxWizardEx
-{    
+class CBOINCBaseWizard: public wxWizardEx {    
     DECLARE_DYNAMIC_CLASS( CBOINCBaseWizard )
 
 public:
@@ -63,4 +62,4 @@ public:
     void DisableCancelButton();
 };
 
-#endif // _WIZ_BOINCBASEWIZARD_H_
+#endif
diff --git a/clientgui/BOINCClientManager.cpp b/clientgui/BOINCClientManager.cpp
index 2adf79f..1604646 100644
--- a/clientgui/BOINCClientManager.cpp
+++ b/clientgui/BOINCClientManager.cpp
@@ -44,6 +44,7 @@
 #define CLIENT_3_CRASH_MAX_TIME 30
 
 #ifdef __WXMAC__
+#include "mac_util.h"
 enum {
     NewStyleDaemon = 1,
     OldStyleDaemon
@@ -123,7 +124,7 @@ bool CBOINCClientManager::IsSystemBooting() {
 #if   defined(__WXMSW__)
     if (GetTickCount() < (1000*60*5)) bReturnValue = true;  // If system has been up for less than 5 minutes 
 #elif defined(__WXMAC__)
-    if (TickCount() < (120*60)) bReturnValue = true;        // If system has been up for less than 2 minutes 
+    if (getTimeSinceBoot() < (120)) bReturnValue = true;    // If system has been up for less than 2 minutes
 #endif
     return bReturnValue;
 }
@@ -259,16 +260,8 @@ bool CBOINCClientManager::StartupBOINCCore() {
 
 #elif defined(__WXMAC__)
 
-#if 0   // The Mac version of wxExecute(wxString& ...) crashes if there is a space in the path
-    wxChar buf[1024];
-    wxChar *argv[5];
-#else
     char buf[1024];
     char *argv[5];
-#endif
-    ProcessSerialNumber ourPSN;
-    FSRef ourFSRef;
-    OSErr err;
 
     if (IsBOINCConfiguredAsDaemon() == NewStyleDaemon) {
         system ("launchctl load /Library/LaunchDaemons/edu.berkeley.boinc.plist");
@@ -283,44 +276,34 @@ bool CBOINCClientManager::StartupBOINCCore() {
     } else {
         
         // Get the full path to core client inside this application's bundle
-        err = GetCurrentProcess (&ourPSN);
-        if (err == noErr) {
-            err = GetProcessBundleLocation(&ourPSN, &ourFSRef);
-        }
-        if (err == noErr) {
-            err = FSRefMakePath (&ourFSRef, (UInt8*)buf, sizeof(buf));
-        }
-        if (err == noErr) {
+        getPathToThisApp(buf, sizeof(buf));
 #if 0   // The Mac version of wxExecute(wxString& ...) crashes if there is a space in the path
-            strExecute = wxT("\"");            
-            strExecute += wxT(buf);
-            strExecute += wxT("/Contents/Resources/boinc\" --redirectio --launched_by_manager");
-            m_lBOINCCoreProcessId = ::wxExecute(strExecute);
+        strExecute = wxT("\"");            
+        strExecute += wxT(buf);
+        strExecute += wxT("/Contents/Resources/boinc\" --redirectio --launched_by_manager");
+        m_lBOINCCoreProcessId = ::wxExecute(strExecute);
 #else   // Use wxExecute(wxChar **argv ...) instead of wxExecute(wxString& ...)
-            strcat(buf, "/Contents/Resources/boinc");
-            argv[0] = buf;
-            argv[1] = "--redirectio";
-            argv[2] = "--launched_by_manager";
-            argv[3] = NULL;
+        strcat(buf, "/Contents/Resources/boinc");
+        argv[0] = buf;
+        argv[1] = "--redirectio";
+        argv[2] = "--launched_by_manager";
+        argv[3] = NULL;
 #ifdef SANDBOX
-            if (!g_use_sandbox) {
-                argv[3] = "--insecure";
-                argv[4] = NULL;
-            }
+        if (!g_use_sandbox) {
+            argv[3] = "--insecure";
+            argv[4] = NULL;
+        }
 #endif
-            // Under wxMac-2.8.0, wxExecute starts a separate thread
-            // to wait for child's termination.
-            // That wxProcessTerminationThread uses a huge amount of processor
-            // time (about 11% of one CPU on 2GHz Intel Dual-Core Mac).
+        // Under wxMac-2.8.0, wxExecute starts a separate thread
+        // to wait for child's termination.
+        // That wxProcessTerminationThread uses a huge amount of processor
+        // time (about 11% of one CPU on 2GHz Intel Dual-Core Mac).
 //                m_lBOINCCoreProcessId = ::wxExecute(argv);
-            run_program(
-                "/Library/Application Support/BOINC Data",
-                buf, argv[3] ? 4 : 3, argv, 0.0, m_lBOINCCoreProcessId
-            );
+        run_program(
+            "/Library/Application Support/BOINC Data",
+            buf, argv[3] ? 4 : 3, argv, 0.0, m_lBOINCCoreProcessId
+        );
 #endif
-        } else {
-            buf[0] = '\0';
-        }
     }
 
 #else   // Unix based systems
diff --git a/clientgui/BOINCClientManager.h b/clientgui/BOINCClientManager.h
index f97289e..e9f4b6d 100644
--- a/clientgui/BOINCClientManager.h
+++ b/clientgui/BOINCClientManager.h
@@ -15,15 +15,14 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINCCLIENTMANAGER_H_
-#define _BOINCCLIENTMANAGER_H_
+#ifndef BOINC_BOINCCLIENTMANAGER_H
+#define BOINC_BOINCCLIENTMANAGER_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCClientManager.cpp"
 #endif
 
-class CBOINCClientManager : public wxObject
-{
+class CBOINCClientManager : public wxObject {
 public:
 
     CBOINCClientManager();
@@ -53,8 +52,7 @@ protected:
 
 };
 
-class ClientCrashDlg : public wxDialog
-{
+class ClientCrashDlg : public wxDialog {
     DECLARE_DYNAMIC_CLASS( ClientCrashDlg )
     DECLARE_EVENT_TABLE()
 
@@ -63,7 +61,4 @@ public:
     void                        OnHelp(wxCommandEvent& event);
 };
 
-
-
 #endif
-
diff --git a/clientgui/BOINCDialupManager.cpp b/clientgui/BOINCDialupManager.cpp
index 13ccbc4..0fbc1e4 100644
--- a/clientgui/BOINCDialupManager.cpp
+++ b/clientgui/BOINCDialupManager.cpp
@@ -97,7 +97,6 @@ void CBOINCDialUpManager::OnPoll() {
     bool                bIsOnline = false;
     bool                bWantConnection = false;
     bool                bWantDisconnect = false;
-    wxString            strDialogMessage = wxEmptyString;
     CC_STATUS           cc_status;
 
 
diff --git a/clientgui/BOINCDialupManager.h b/clientgui/BOINCDialupManager.h
index ec46f63..77eb637 100644
--- a/clientgui/BOINCDialupManager.h
+++ b/clientgui/BOINCDialupManager.h
@@ -15,16 +15,15 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINCDIALUPMANAGER_H_
-#define _BOINCDIALUPMANAGER_H_
+#ifndef BOINC_BOINCDIALUPMANAGER_H
+#define BOINC_BOINCDIALUPMANAGER_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCDialupManager.cpp"
 #endif
 
 
-class CBOINCDialUpManager : public wxObject
-{
+class CBOINCDialUpManager : public wxObject {
 public:
 
     CBOINCDialUpManager();
@@ -60,6 +59,4 @@ protected:
     wxString         m_strDialogTitle;
 };
 
-
 #endif
-
diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp
index 98df97c..0717a20 100644
--- a/clientgui/BOINCGUIApp.cpp
+++ b/clientgui/BOINCGUIApp.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -23,9 +23,7 @@
 #include <Carbon/Carbon.h>
 #include "filesys.h"
 #include "util.h"
-#if (defined(SANDBOX) && defined(_DEBUG))
-#include "SetupSecurity.h"
-#endif
+#include "mac_util.h"
 #include "sandbox.h"
 #endif
 
@@ -55,50 +53,6 @@
 bool s_bSkipExitConfirmation = false;
 
 
-#ifdef __WXMAC__
-
-// Set s_bSkipExitConfirmation to true if cancelled because of logging out or shutting down
-OSErr QuitAppleEventHandler( const AppleEvent *appleEvt, AppleEvent* reply, UInt32 refcon ) {
-    DescType            senderType;
-    Size                actualSize;
-    ProcessSerialNumber SenderPSN;
-    ProcessInfoRec      pInfo;
-    FSSpec              fileSpec;
-    OSStatus            anErr;
-
-    // Refuse to quit if a modal dialog is open.  
-    // Unfortunately, I know of no way to disable the Quit item in our Dock menu
-    if (wxGetApp().IsModalDialogDisplayed()) {
-        SysBeep(4);
-        return userCanceledErr;
-    }
-    
-    anErr = AEGetAttributePtr(appleEvt, keyAddressAttr, typeProcessSerialNumber,
-                                &senderType, &SenderPSN, sizeof(SenderPSN), &actualSize);
-
-    if (anErr == noErr) {
-        pInfo.processInfoLength = sizeof( ProcessInfoRec );
-        pInfo.processName = NULL;
-        pInfo.processAppSpec = &fileSpec;
-
-        anErr = GetProcessInformation(&SenderPSN, &pInfo);
-
-        // Consider a Quit command from our Dock menu as coming from this application
-        if ( (pInfo.processSignature != 'dock') && (pInfo.processSignature != 'BNC!') ) {
-            s_bSkipExitConfirmation = true; // Not from our app, our dock icon or our taskbar icon
-            // The following may no longer be needed under wxCocoa-3.0.0
-            wxGetApp().ExitMainLoop();  // Prevents wxMac from issuing events to closed frames
-        }
-    }
-    
-    wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, wxID_EXIT);
-    wxGetApp().GetFrame()->GetEventHandler()->AddPendingEvent(evt);
-    return noErr;
-}
-
-#endif
-
-
 DEFINE_EVENT_TYPE(wxEVT_RPC_FINISHED)
 
 IMPLEMENT_APP(CBOINCGUIApp)
@@ -152,16 +106,20 @@ bool CBOINCGUIApp::OnInit() {
     m_iBOINCMGRDisableAutoStart = 0;
     m_iShutdownCoreClient = 0;
     m_iDisplayExitDialog = 1;
+    m_iDisplayShutdownConnectedClientDialog = 1;
     m_iGUISelected = BOINC_SIMPLEGUI;
     m_bSafeMessageBoxDisplayed = 0;
+    m_bRunDaemon = true;
+    m_bNeedRunDaemon = true;
 
     // Initialize local variables
     int      iErrorCode = 0;
     int      iDesiredLanguageCode = 0;
     bool     bOpenEventLog = false;
     wxString strDesiredSkinName = wxEmptyString;
+#ifdef SANDBOX
     wxString strDialogMessage = wxEmptyString;
-    wxString strOldLanguageCode = wxEmptyString;
+#endif
     bool     success = false;
 
 
@@ -170,8 +128,6 @@ bool CBOINCGUIApp::OnInit() {
     wxSystemOptions::SetOption(wxT("msw.staticbox.optimized-paint"), 0);
 #endif
 #ifdef __WXMAC__
-    bool launchedFromLogin = false;
-    
     // In wxMac-2.8.7, default wxListCtrl::RefreshItem() does not work
     // so use traditional generic implementation.
     // This has been fixed in wxMac-2.8.8, but the Mac native implementation:
@@ -181,9 +137,6 @@ bool CBOINCGUIApp::OnInit() {
     wxSystemOptions::SetOption(wxT("mac.listctrl.always_use_generic"), 1);
 
     AEInstallEventHandler( kCoreEventClass, kAEQuitApplication, NewAEEventHandlerUPP((AEEventHandlerProcPtr)QuitAppleEventHandler), 0, false );
-
-    // Cache the current process serial number
-    GetCurrentProcess(&m_psnCurrentProcess);
 #endif
 
 
@@ -212,12 +165,16 @@ bool CBOINCGUIApp::OnInit() {
     m_pConfig->SetPath(wxT("/"));
     m_pConfig->Read(wxT("AutomaticallyShutdownClient"), &m_iShutdownCoreClient, 0L);
     m_pConfig->Read(wxT("DisplayShutdownClientDialog"), &m_iDisplayExitDialog, 1L);
+    m_pConfig->Read(wxT("DisplayShutdownConnectedClientDialog"), &m_iDisplayShutdownConnectedClientDialog, 1L);
     m_pConfig->Read(wxT("DisableAutoStart"), &m_iBOINCMGRDisableAutoStart, 0L);
     m_pConfig->Read(wxT("LanguageISO"), &m_strISOLanguageCode, wxT(""));
     m_pConfig->Read(wxT("GUISelection"), &m_iGUISelected, BOINC_SIMPLEGUI);
     m_pConfig->Read(wxT("EventLogOpen"), &bOpenEventLog);
+    m_pConfig->Read(wxT("RunDaemon"), &m_bRunDaemon, 1L);
 
-
+    // Detect if the daemon should be launched
+    m_bNeedRunDaemon = m_bNeedRunDaemon && m_bRunDaemon;
+    
     // Should we abort the BOINC Manager startup process?
     if (m_bBOINCMGRAutoStarted && m_iBOINCMGRDisableAutoStart) {
         return false;
@@ -319,19 +276,21 @@ bool CBOINCGUIApp::OnInit() {
 
 #ifdef SANDBOX
     // Make sure owners, groups and permissions are correct for the current setting of g_use_sandbox
+    //
+    // NOTE: GDB and LLDB can't attach to applications which are running as
+    // a different user or group.
+    // Normally, the Mac Development (Debug) builds do not define SANDBOX, so
+    // check_security() is never called. However, it is possible to use GDB
+    // or LLDB on sandbox-specific code, as long as the code is run as the
+    // current user (i.e., not as boinc_master or boinc_project), and the
+    // current user is a member of both groups boinc_master and boinc_project.
+    // However, this has not been thoroughly tested. Please see the comments
+    // in SetupSecurity.cpp and check_security.cpp for more details.
+    //
     char path_to_error[MAXPATHLEN];
     path_to_error[0] = '\0';
     
     if (!iErrorCode) {
-#if (defined(__WXMAC__) && defined(_DEBUG))     // TODO: implement this for other platforms
-        // GDB can't attach to applications which are running as a different user   
-        //  or group, so fix up data with current user and group during debugging
-        if (check_security(g_use_sandbox, true, NULL, 0)) {
-            CreateBOINCUsersAndGroups();
-            SetBOINCDataOwnersGroupsAndPermissions();
-            SetBOINCAppOwnersGroupsAndPermissions(NULL);
-        }
-#endif
         iErrorCode = check_security(
             g_use_sandbox, true, path_to_error, sizeof(path_to_error)
         );
@@ -342,11 +301,18 @@ bool CBOINCGUIApp::OnInit() {
         ShowApplication(true);
 
         if (iErrorCode == -1099) {
+#if (defined(__WXMAC__) && defined (_DEBUG))
+            strDialogMessage.Printf(
+                "To debug with sandbox security enabled, the current user\n"
+                "must be a member of both groups boinc_master and boinc_project."
+            );
+#else   // ! (defined(__WXMAC__) && defined (_DEBUG))
             strDialogMessage.Printf(
                 _("You currently are not authorized to manage the client.\n\nTo run %s as this user, please:\n  - reinstall %s answering \"Yes\" to the question about\n     non-administrative users\n or\n  - contact your administrator to add you to the 'boinc_master'\n     user group."),
                 m_pSkinManager->GetAdvanced()->GetApplicationShortName().c_str(),
                 m_pSkinManager->GetAdvanced()->GetApplicationShortName().c_str()
             );
+#endif  // ! (defined(__WXMAC__) && defined (_DEBUG))
         } else {
             strDialogMessage.Printf(
                 _("%s ownership or permissions are not set properly; please reinstall %s.\n(Error code %d"),
@@ -399,31 +365,15 @@ bool CBOINCGUIApp::OnInit() {
 #endif
 
 #ifdef __WXMAC__
-    ProcessSerialNumber psn;
-    ProcessInfoRec pInfo;
-    OSStatus err;
-    
-    memset(&pInfo, 0, sizeof(pInfo));
-    pInfo.processInfoLength = sizeof( ProcessInfoRec );
-    err = GetProcessInformation(&m_psnCurrentProcess, &pInfo);
-    if (!err) {
-        psn = pInfo.processLauncher;
-        memset(&pInfo, 0, sizeof(pInfo));
-        pInfo.processInfoLength = sizeof( ProcessInfoRec );
-        err = GetProcessInformation(&psn, &pInfo);
-    }
-    // Don't open main window if we were started automatically at login
-    if (pInfo.processSignature == 'lgnw') {  // Login Window app
-        launchedFromLogin = true;
-        
-        // Prevent a situation where wxSingleInstanceChecker lock file
-        // from last login auto start (with same pid) was not deleted.
-        // This path must match that in DetectDuplicateInstance()
-        wxString lockFilePath = wxString(wxFileName::GetHomeDir() +
-                                            "/Library/Application Support/BOINC/" +
-                                            wxTheApp->GetAppName() +
-                                            '-' + wxGetUserId()
+    // Prevent a situation where wxSingleInstanceChecker lock file
+    // from last login auto start (with same pid) was not deleted.
+    // This path must match that in DetectDuplicateInstance()
+    wxString lockFilePath = wxString(wxFileName::GetHomeDir() +
+                                        "/Library/Application Support/BOINC/" +
+                                        wxTheApp->GetAppName() +
+                                        '-' + wxGetUserId()
                                         );
+    if (WasFileModifiedBeforeSystemBoot((char *)(const char*)lockFilePath.utf8_str())) {
         boinc_delete_file(lockFilePath.utf8_str());
     }
 #endif
@@ -476,9 +426,12 @@ bool CBOINCGUIApp::OnInit() {
     IdleTrackerAttach();
     
 #ifdef __WXMAC__
-    if (launchedFromLogin) {
-        m_bGUIVisible = false;
+    // Don't open main window if we were started automatically at login
+    // We are launched hidden if started from our login item (except if
+    // we had windows open at logout, the system "restores" them.)
+    m_bGUIVisible = IsApplicationVisible();
 
+    if (getTimeSinceBoot() < 30.) {
         // If the system was just started, we usually get a "Connection
         // failed" error if we try to connect too soon, so delay a bit.
         sleep(10);
@@ -617,7 +570,9 @@ void CBOINCGUIApp::SaveState() {
     m_pConfig->Write(wxT("LanguageISO"), m_strISOLanguageCode);
     m_pConfig->Write(wxT("AutomaticallyShutdownClient"), m_iShutdownCoreClient);
     m_pConfig->Write(wxT("DisplayShutdownClientDialog"), m_iDisplayExitDialog);
+    m_pConfig->Write(wxT("DisplayShutdownConnectedClientDialog"), m_iDisplayShutdownConnectedClientDialog);
     m_pConfig->Write(wxT("DisableAutoStart"), m_iBOINCMGRDisableAutoStart);
+    m_pConfig->Write(wxT("RunDaemon"), m_bRunDaemon);
 }
 
 
@@ -643,6 +598,7 @@ void CBOINCGUIApp::OnInitCmdLine(wxCmdLineParser &parser) {
 #if (defined(__WXMAC__) && defined(_DEBUG))
     parser.AddLongOption("NSDocumentRevisionsDebugMode", _("Not used: workaround for bug in XCode 4.2"));
 #endif
+    parser.AddSwitch("nd", "no-daemon", _("Not run the daemon"));
 }
 
 
@@ -717,6 +673,10 @@ bool CBOINCGUIApp::OnCmdLineParsed(wxCmdLineParser &parser) {
     if (hostNameSpecified && passwordSpecified) {
         m_bMultipleInstancesOK = true;
     }
+
+    if (parser.Found(wxT("no-daemon"))) {
+        m_bNeedRunDaemon = false;
+    }
     return true;
 }
 
@@ -765,6 +725,16 @@ void CBOINCGUIApp::DetectExecutableName() {
 
     // Store the root directory for later use.
     m_strBOINCMGRExecutableName = pszProg;
+#elif defined(__WXGTK__)
+    char path[PATH_MAX];
+    if (!get_real_executable_path(path, PATH_MAX)) {
+        // find filename component
+        char* name = strrchr(path, '/');
+        if (name) {
+            name++;
+            m_strBOINCMGRExecutableName = name;
+        }
+    }
 #endif
 }
 
@@ -786,6 +756,17 @@ void CBOINCGUIApp::DetectRootDirectory() {
 
     // Store the root directory for later use.
     m_strBOINCMGRRootDirectory = szPath;
+#elif defined(__WXGTK__)
+    char path[PATH_MAX];
+    if (!get_real_executable_path(path, PATH_MAX)) {
+        // find path component
+        char* name = strrchr(path, '/');
+        if (name) {
+            name++;
+            *name = '\0';
+            m_strBOINCMGRRootDirectory = path;
+        }
+    }
 #endif
 }
 
@@ -1057,6 +1038,7 @@ bool CBOINCGUIApp::SetActiveGUI(int iGUISelection, bool bShowWindow) {
     wxInt32          iLeft = 0;
     wxInt32          iHeight = 0;
     wxInt32          iWidth = 0;
+    bool             bWindowMaximized = false;
 
 
     // Create the new window
@@ -1070,6 +1052,7 @@ bool CBOINCGUIApp::SetActiveGUI(int iGUISelection, bool bShowWindow) {
             m_pConfig->Read(wxT("XPos"), &iLeft, 30);
             m_pConfig->Read(wxT("Width"), &iWidth, 800);
             m_pConfig->Read(wxT("Height"), &iHeight, 600);
+            m_pConfig->Read(wxT("WindowMaximized"), &bWindowMaximized, false);
             // Guard against a rare situation where registry values are zero
             if (iWidth < 50) iWidth = 800;
             if (iHeight < 50) iHeight = 600;
@@ -1177,6 +1160,9 @@ bool CBOINCGUIApp::SetActiveGUI(int iGUISelection, bool bShowWindow) {
             if (m_pFrame->IsIconized()) {
                 m_pFrame->Maximize(false);
             }
+            else if (BOINC_ADVANCEDGUI == iGUISelection && bWindowMaximized) {
+                m_pFrame->Maximize();
+            }
             m_pFrame->Raise();
 
 #ifdef __WXMSW__
diff --git a/clientgui/BOINCGUIApp.h b/clientgui/BOINCGUIApp.h
index cf5ddd4..5857e1a 100644
--- a/clientgui/BOINCGUIApp.h
+++ b/clientgui/BOINCGUIApp.h
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2016 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -21,8 +21,8 @@
 /// The BOINC Manager
 /// @{
 
-#ifndef _BOINCGUIAPP_H_
-#define _BOINCGUIAPP_H_
+#ifndef BOINC_BOINCGUIAPP_H
+#define BOINC_BOINCGUIAPP_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCGUIApp.cpp"
@@ -43,6 +43,9 @@ class CSkinManager;
 class CDlgEventLog;
 class CRPCFinishedEvent;
 
+#ifdef __WXMAC__
+    OSErr               QuitAppleEventHandler(const AppleEvent *appleEvt, AppleEvent* reply, UInt32 refcon);
+#endif
 
 class CBOINCGUIApp : public wxApp {
 
@@ -94,6 +97,7 @@ protected:
     int                 m_iBOINCMGRDisableAutoStart;
     int                 m_iShutdownCoreClient;
     int                 m_iDisplayExitDialog;
+    int                 m_iDisplayShutdownConnectedClientDialog;
 
     bool                m_bGUIVisible;
     
@@ -102,11 +106,8 @@ protected:
     bool                m_bMultipleInstancesOK;
     bool                m_bFilterEvents;
     bool                m_bAboutDialogIsOpen;
-
-#ifdef __WXMAC__
-    ProcessSerialNumber m_psnCurrentProcess;
-#endif
-
+    bool                m_bRunDaemon;  
+    bool                m_bNeedRunDaemon;  
 
     // The last value defined in the wxLanguage enum is wxLANGUAGE_USER_DEFINED.
     // defined in: wx/intl.h
@@ -155,6 +156,18 @@ public:
     void                SetBOINCMGRDisplayExitMessage(int iDisplayExitMessage)
                                                     { m_iDisplayExitDialog = iDisplayExitMessage; }
 
+    int                 GetBOINCMGRDisplayShutdownConnectedClientMessage()
+                                                    { return m_iDisplayShutdownConnectedClientDialog; }
+    void                SetBOINCMGRDisplayShutdownConnectedClientMessage(int iDisplayShutdownConnectedClientDialog)
+                                                    { m_iDisplayShutdownConnectedClientDialog = iDisplayShutdownConnectedClientDialog; }
+
+    bool                GetRunDaemon()
+                                                    { return m_bRunDaemon; }  
+    void                SetRunDaemon(bool bRunDaemon)  
+                                                    { m_bRunDaemon = bRunDaemon; }  
+  
+    bool                GetNeedRunDaemon()  
+                                                    { return m_bNeedRunDaemon; }  
 
     wxArrayString&      GetSupportedLanguages()     { return m_astrLanguages; }
     wxString            GetISOLanguageCode()        { return m_strISOLanguageCode; }
@@ -208,6 +221,7 @@ public:
 #ifdef __WXMAC__
     // The following Cocoa routines are in CBOINCGUIApp.mm
     //
+    bool                WasFileModifiedBeforeSystemBoot(char * filePath);
     void                HideThisApp(void);
 
 #if !wxCHECK_VERSION(3,0,1)
diff --git a/clientgui/BOINCListCtrl.h b/clientgui/BOINCListCtrl.h
index 8052652..d0589d5 100644
--- a/clientgui/BOINCListCtrl.h
+++ b/clientgui/BOINCListCtrl.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINCLISTCTRL_H_
-#define _BOINCLISTCTRL_H_
+#ifndef BOINC_BOINCLISTCTRL_H
+#define BOINC_BOINCLISTCTRL_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCListCtrl.cpp"
@@ -187,4 +187,3 @@ private:
 };
 
 #endif
-
diff --git a/clientgui/BOINCTaskBar.cpp b/clientgui/BOINCTaskBar.cpp
index 6aa483a..b7f8d63 100644
--- a/clientgui/BOINCTaskBar.cpp
+++ b/clientgui/BOINCTaskBar.cpp
@@ -463,7 +463,8 @@ bool CTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& ) {
 // after a timeout, so we must call Notification Manager directly on Mac
 void CTaskBarIcon::MacRequestUserAttention()
 {
-    m_pNotificationRequest = (NMRecPtr) NewPtrClear( sizeof( NMRec) ) ;
+    m_pNotificationRequest = (NMRecPtr)malloc(sizeof(NMRec));
+    bzero(m_pNotificationRequest, sizeof(NMRec));
     m_pNotificationRequest->qType = nmType ;
     m_pNotificationRequest->nmMark = 1;
 
@@ -474,7 +475,7 @@ void CTaskBarIcon::MacCancelUserAttentionRequest()
 {
     if (m_pNotificationRequest) {
         NMRemove(m_pNotificationRequest);
-        DisposePtr((Ptr)m_pNotificationRequest);
+        free(m_pNotificationRequest);
         m_pNotificationRequest = NULL;
     }
 }
@@ -697,7 +698,6 @@ void CTaskBarIcon::UpdateTaskbarStatus() {
 #else
     wxString       strMachineName       = wxEmptyString;
     wxString       strMessage           = wxEmptyString;
-    wxString       strBuffer            = wxEmptyString;
     wxIcon         icnIcon;
 
     pDoc->GetConnectedComputerName(strMachineName);
diff --git a/clientgui/BOINCTaskBar.h b/clientgui/BOINCTaskBar.h
index 08a590f..b324278 100644
--- a/clientgui/BOINCTaskBar.h
+++ b/clientgui/BOINCTaskBar.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINCTASKBAR_H_
-#define _BOINCTASKBAR_H_
+#ifndef BOINC_BOINCTASKBAR_H
+#define BOINC_BOINCTASKBAR_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCTaskBar.cpp"
@@ -148,6 +148,4 @@ END_DECLARE_EVENT_TYPES()
 #define EVT_TASKBAR_RELOADSKIN(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RELOADSKIN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
 #define EVT_TASKBAR_REFRESH(fn)  DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_REFRESH, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
 
-
 #endif
-
diff --git a/clientgui/BOINCTaskCtrl.h b/clientgui/BOINCTaskCtrl.h
index bc37a0a..ceb4937 100644
--- a/clientgui/BOINCTaskCtrl.h
+++ b/clientgui/BOINCTaskCtrl.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINCTASKCTRL_H_
-#define _BOINCTASKCTRL_H_
+#ifndef BOINC_BOINCTASKCTRL_H
+#define BOINC_BOINCTASKCTRL_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "BOINCTaskCtrl.cpp"
diff --git a/clientgui/CompletionErrorPage.h b/clientgui/CompletionErrorPage.h
index e10619b..cfad043 100644
--- a/clientgui/CompletionErrorPage.h
+++ b/clientgui/CompletionErrorPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_COMPLETIONERRORPAGE_H_
-#define _WIZ_COMPLETIONERRORPAGE_H_
+#ifndef BOINC_COMPLETIONERRORPAGE_H
+#define BOINC_COMPLETIONERRORPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "CompletionErrorPage.cpp"
@@ -80,4 +80,4 @@ public:
 ////@end CCompletionErrorPage member variables
 };
 
-#endif // _WIZ_COMPLETIONERRORPAGE_H_
+#endif
diff --git a/clientgui/CompletionPage.h b/clientgui/CompletionPage.h
index c2b2837..a4c0dee 100644
--- a/clientgui/CompletionPage.h
+++ b/clientgui/CompletionPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_COMPLETIONPAGE_H_
-#define _WIZ_COMPLETIONPAGE_H_
+#ifndef BOINC_COMPLETIONPAGE_H
+#define BOINC_COMPLETIONPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "CompletionPage.cpp"
@@ -82,4 +82,4 @@ public:
 ////@end CCompletionPage member variables
 };
 
-#endif // _WIZ_COMPLETIONPAGE_H_
+#endif
diff --git a/clientgui/DlgAbout.cpp b/clientgui/DlgAbout.cpp
index 40aa39f..5fe11a4 100644
--- a/clientgui/DlgAbout.cpp
+++ b/clientgui/DlgAbout.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2015 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -189,7 +189,7 @@ void CDlgAbout::CreateControls() {
     itemFlexGridSizer7->Add(itemStaticText12, 0, wxALIGN_RIGHT|wxALIGN_TOP|wxLEFT|wxRIGHT, 5);
 
     wxStaticText* itemStaticText13 = new wxStaticText;
-    itemStaticText13->Create( itemDialog1, wxID_STATIC, _("(C) 2003-2015 University of California, Berkeley.\nAll Rights Reserved."), wxDefaultPosition, wxDefaultSize, 0 );
+    itemStaticText13->Create( itemDialog1, wxID_STATIC, _("(C) 2003-2017 University of California, Berkeley.\nAll Rights Reserved."), wxDefaultPosition, wxDefaultSize, 0 );
     itemFlexGridSizer7->Add(itemStaticText13, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5);
 
     wxStaticText* itemStaticText14 = new wxStaticText;
diff --git a/clientgui/DlgAbout.h b/clientgui/DlgAbout.h
index b472ae6..e42b9b7 100644
--- a/clientgui/DlgAbout.h
+++ b/clientgui/DlgAbout.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGABOUT_H_
-#define _DLGABOUT_H_
+#ifndef BOINC_DLGABOUT_H
+#define BOINC_DLGABOUT_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgAbout.cpp"
@@ -112,4 +112,3 @@ public:
 };
 
 #endif
-    // _DLGABOUT_H_
diff --git a/clientgui/DlgAdvPreferences.h b/clientgui/DlgAdvPreferences.h
index 1bdc8f2..1ba7892 100644
--- a/clientgui/DlgAdvPreferences.h
+++ b/clientgui/DlgAdvPreferences.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGADVPREFERENCES_H_
-#define _DLGADVPREFERENCES_H_
+#ifndef BOINC_DLGADVPREFERENCES_H
+#define BOINC_DLGADVPREFERENCES_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgAdvPreferences.cpp"
@@ -78,5 +78,5 @@ private:
     wxTextCtrl* lastErrorCtrl;
 };
 
-#endif // _DLGADVPREFERENCES_H_
+#endif
 
diff --git a/clientgui/DlgAdvPreferencesBase.cpp b/clientgui/DlgAdvPreferencesBase.cpp
index d25e5e6..c663c10 100644
--- a/clientgui/DlgAdvPreferencesBase.cpp
+++ b/clientgui/DlgAdvPreferencesBase.cpp
@@ -670,35 +670,63 @@ wxPanel* CDlgAdvPreferencesBase::createDailySchedulesTab(wxNotebook* notebook)
     wxString andString(_("and"));
     wxString toString(wxT(" ")+_("to")+wxT(" "));
     
-    wxPanel* dailySchedulesTab = new wxPanel( notebook, ID_TABPAGE_SCHED, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+    wxPanel* dailySchedulesTab = new wxPanel(
+        notebook, ID_TABPAGE_SCHED, wxDefaultPosition,
+        wxDefaultSize, wxTAB_TRAVERSAL
+    );
     dailySchedulesTab->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
 
     wxBoxSizer* dailySchedulesTabSizer = new wxBoxSizer( wxVERTICAL );
 
     // Computing schedule
     //
-    wxStaticBox* computingTimesStaticBox = new wxStaticBox(dailySchedulesTab, -1, _("Computing") );
-    wxStaticBoxSizer* computingTimesStaticBoxSizer = new wxStaticBoxSizer(computingTimesStaticBox, wxVERTICAL);
+    wxStaticBox* computingTimesStaticBox = new wxStaticBox(
+        dailySchedulesTab, -1, _("Computing")
+    );
+    wxStaticBoxSizer* computingTimesStaticBoxSizer = new wxStaticBoxSizer(
+        computingTimesStaticBox, wxVERTICAL
+    );
     makeStaticBoxLabelItalic(computingTimesStaticBox);
 
     wxString ProcEveryDayTT(_("Compute only during a particular period each day."));
     m_chkProcEveryDay = new wxCheckBox(
         computingTimesStaticBox, ID_CHKPROCEVERYDAY,
-        _("Compute only between"), wxDefaultPosition, wxDefaultSize, 0 );
+        _("Compute only between"), wxDefaultPosition, wxDefaultSize, 0
+    );
 
-    m_txtProcEveryDayStart = new wxTextCtrl( computingTimesStaticBox, ID_TXTPROCEVERYDAYSTART, wxEmptyString, wxDefaultPosition, textCtrlSize, wxTE_RIGHT );
+    m_txtProcEveryDayStart = new wxTextCtrl(
+        computingTimesStaticBox, ID_TXTPROCEVERYDAYSTART, wxEmptyString,
+        wxDefaultPosition, textCtrlSize, wxTE_RIGHT
+    );
 
-    wxStaticText* staticText25 = new wxStaticText( computingTimesStaticBox, ID_DEFAULT, andString, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
+    wxStaticText* staticText25 = new wxStaticText(
+        computingTimesStaticBox, ID_DEFAULT, andString, wxDefaultPosition,
+        wxDefaultSize, wxALIGN_CENTRE
+    );
 
-    m_txtProcEveryDayStop = new wxTextCtrl( computingTimesStaticBox, ID_TXTPROCEVERYDAYSTOP, wxEmptyString, wxDefaultPosition, textCtrlSize, wxTE_RIGHT );
+    m_txtProcEveryDayStop = new wxTextCtrl(
+        computingTimesStaticBox, ID_TXTPROCEVERYDAYSTOP, wxEmptyString,
+        wxDefaultPosition, textCtrlSize, wxTE_RIGHT
+    );
 
-    addNewRowToSizer(computingTimesStaticBoxSizer, ProcEveryDayTT, m_chkProcEveryDay, m_txtProcEveryDayStart, staticText25, m_txtProcEveryDayStop);
+    addNewRowToSizer(
+        computingTimesStaticBoxSizer, ProcEveryDayTT, m_chkProcEveryDay,
+        m_txtProcEveryDayStart, staticText25, m_txtProcEveryDayStop
+    );
 
-    wxStaticBox* procSpecialTimesStaticBox = new wxStaticBox(computingTimesStaticBox, -1, _("Day-of-week override") );
-    wxStaticBoxSizer* procSpecialTimesStaticBoxSizer = new wxStaticBoxSizer(procSpecialTimesStaticBox, wxVERTICAL);
+    wxStaticBox* procSpecialTimesStaticBox = new wxStaticBox(
+        computingTimesStaticBox, -1, _("Day-of-week override")
+    );
+    wxStaticBoxSizer* procSpecialTimesStaticBoxSizer = new wxStaticBoxSizer(
+        procSpecialTimesStaticBox, wxVERTICAL
+    );
     makeStaticBoxLabelItalic(procSpecialTimesStaticBox);
 
-    wxStaticText* staticText36 = new wxStaticText( procSpecialTimesStaticBox, ID_DEFAULT, _("Override the times above on the selected days:"), wxDefaultPosition, wxDefaultSize, 0 );
+    wxStaticText* staticText36 = new wxStaticText(
+        procSpecialTimesStaticBox, ID_DEFAULT,
+        _("Override the times above on the selected days:"),
+        wxDefaultPosition, wxDefaultSize, 0
+    );
 #ifdef __WXMAC__
     procSpecialTimesStaticBoxSizer->Add( staticText36, 0, wxLEFT, 5 );
 #else
@@ -713,25 +741,42 @@ wxPanel* CDlgAdvPreferencesBase::createDailySchedulesTab(wxNotebook* notebook)
     procDaysSizer->SetFlexibleDirection( wxHORIZONTAL );
     procDaysSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
-    // Tooltips for Day-of-Week override wxCheckBoxes and wxTextCtrls are set in CDlgAdvPreferences::SetSpecialTooltips()
+    // Tooltips for Day-of-Week override wxCheckBoxes and wxTextCtrls
+    // are set in CDlgAdvPreferences::SetSpecialTooltips()
+    //
     wxString procDaysTimeTT(PROC_DAY_OF_WEEK_TOOLTIP_TEXT);
 
-    m_chkProcMonday = new wxCheckBox( procSpecialTimesStaticBox, ID_CHKPROCMONDAY, _("Monday"), wxDefaultPosition, wxDefaultSize, 0 );
+    m_chkProcMonday = new wxCheckBox(
+        procSpecialTimesStaticBox, ID_CHKPROCMONDAY, _("Monday"),
+        wxDefaultPosition, wxDefaultSize, 0
+    );
     procDaysSizer->Add( m_chkProcMonday, 0, wxTOP, 5 );
 
-    m_txtProcMondayStart = new wxTextCtrl( procSpecialTimesStaticBox, ID_TXTPROCMONDAYSTART, wxEmptyString, wxDefaultPosition, textCtrlSize, 0 );
+    m_txtProcMondayStart = new wxTextCtrl(
+        procSpecialTimesStaticBox, ID_TXTPROCMONDAYSTART, wxEmptyString,
+        wxDefaultPosition, textCtrlSize, 0
+    );
     procDaysSizer->Add( m_txtProcMondayStart, 0, wxALL, 1 );
 
-    wxStaticText* toStringProcMonday = new wxStaticText( procSpecialTimesStaticBox, ID_DEFAULT, toString, wxDefaultPosition, wxDefaultSize, 0 );
+    wxStaticText* toStringProcMonday = new wxStaticText(
+        procSpecialTimesStaticBox, ID_DEFAULT, toString, wxDefaultPosition,
+        wxDefaultSize, 0
+    );
     toStringProcMonday->SetToolTip(procDaysTimeTT);
     procDaysSizer->Add(toStringProcMonday , 0, wxTOP, 5 );
 
-    m_txtProcMondayStop = new wxTextCtrl( procSpecialTimesStaticBox, ID_TXTPROCMONDAYSTOP, wxEmptyString, wxDefaultPosition, textCtrlSize, 0 );
+    m_txtProcMondayStop = new wxTextCtrl(
+        procSpecialTimesStaticBox, ID_TXTPROCMONDAYSTOP, wxEmptyString,
+        wxDefaultPosition, textCtrlSize, 0
+    );
     procDaysSizer->Add( m_txtProcMondayStop, 0, wxALL, 1 );
 
     procDaysSizer->AddSpacer(15);
 
-    m_chkProcFriday = new wxCheckBox( procSpecialTimesStaticBox, ID_CHKPROCFRIDAY, _("Friday"), wxDefaultPosition, wxDefaultSize, 0 );
+    m_chkProcFriday = new wxCheckBox(
+        procSpecialTimesStaticBox, ID_CHKPROCFRIDAY, _("Friday"),
+        wxDefaultPosition, wxDefaultSize, 0
+    );
     procDaysSizer->Add( m_chkProcFriday, 0, wxTOP, 5 );
 
     m_txtProcFridayStart = new wxTextCtrl( procSpecialTimesStaticBox, ID_TXTPROCFRIDAYSTART, wxEmptyString, wxDefaultPosition, textCtrlSize, 0 );
@@ -814,14 +859,27 @@ wxPanel* CDlgAdvPreferencesBase::createDailySchedulesTab(wxNotebook* notebook)
     procDaysSizer->Add( m_txtProcThursdayStop, 0, wxALL, 1 );
     
 #ifdef __WXMAC__
-    procSpecialTimesStaticBoxSizer->Add( procDaysSizer, 0, wxRIGHT | wxBOTTOM, DAYOFWEEKBORDERSIZE );
-    computingTimesStaticBoxSizer->Add( procSpecialTimesStaticBoxSizer, 0, wxRIGHT | wxBOTTOM, STATICBOXBORDERSIZE + 3 );
+    procSpecialTimesStaticBoxSizer->Add(
+        procDaysSizer, 0, wxRIGHT | wxBOTTOM, DAYOFWEEKBORDERSIZE
+    );
+    computingTimesStaticBoxSizer->Add(
+        procSpecialTimesStaticBoxSizer, 0, wxRIGHT | wxBOTTOM,
+        STATICBOXBORDERSIZE + 3
+    );
 #else
-    procSpecialTimesStaticBoxSizer->Add( procDaysSizer, 1, wxRIGHT | wxLEFT | wxBOTTOM, DAYOFWEEKBORDERSIZE );
-    computingTimesStaticBoxSizer->Add(procSpecialTimesStaticBoxSizer, 1, wxRIGHT | wxLEFT | wxBOTTOM, STATICBOXBORDERSIZE );
+    procSpecialTimesStaticBoxSizer->Add(
+        procDaysSizer, 1, wxRIGHT | wxLEFT | wxBOTTOM, DAYOFWEEKBORDERSIZE
+    );
+    computingTimesStaticBoxSizer->Add(
+        procSpecialTimesStaticBoxSizer, 1, wxRIGHT | wxLEFT | wxBOTTOM,
+        STATICBOXBORDERSIZE
+    );
 #endif
     dailySchedulesTabSizer->AddSpacer( STATICBOXVERTICALSPACER );
-    dailySchedulesTabSizer->Add( computingTimesStaticBoxSizer, 1, wxRIGHT | wxLEFT | wxEXPAND, STATICBOXBORDERSIZE );
+    dailySchedulesTabSizer->Add(
+        computingTimesStaticBoxSizer, 1, wxRIGHT | wxLEFT | wxEXPAND,
+        STATICBOXBORDERSIZE
+    );
     
     // Network schedule
     //
diff --git a/clientgui/DlgAdvPreferencesBase.h b/clientgui/DlgAdvPreferencesBase.h
index bb2ec8a..4f36a8d 100644
--- a/clientgui/DlgAdvPreferencesBase.h
+++ b/clientgui/DlgAdvPreferencesBase.h
@@ -20,8 +20,8 @@
 // http://www.wxformbuilder.org/
 //
 
-#ifndef __DlgAdvPreferencesBase__
-#define __DlgAdvPreferencesBase__
+#ifndef BOINC_DLGADVPREFERENCESBASE_H
+#define BOINC_DLGADVPREFERENCESBASE_H
 
 // Define WX_GCH in order to support precompiled headers with GCC compiler.
 // You have to create the header "wx_pch.h" and include all files needed
@@ -260,4 +260,4 @@ private:
     void makeStaticBoxLabelItalic(wxStaticBox* staticBox);
 };
 
-#endif //__DlgAdvPreferencesBase__
+#endif
diff --git a/clientgui/DlgDiagnosticLogFlags.cpp b/clientgui/DlgDiagnosticLogFlags.cpp
old mode 100755
new mode 100644
index e9e6a97..54e3594
--- a/clientgui/DlgDiagnosticLogFlags.cpp
+++ b/clientgui/DlgDiagnosticLogFlags.cpp
@@ -41,6 +41,8 @@ BEGIN_EVENT_TABLE(CDlgDiagnosticLogFlags, wxDialog)
     EVT_SIZE(CDlgDiagnosticLogFlags::OnSize)
     EVT_BUTTON(wxID_OK,CDlgDiagnosticLogFlags::OnOK)
     EVT_BUTTON(ID_DEFAULTSBTN,CDlgDiagnosticLogFlags::OnSetDefaults)
+    EVT_BUTTON(wxID_APPLY,CDlgDiagnosticLogFlags::OnApply)
+    EVT_CHECKBOX(wxID_ANY,CDlgDiagnosticLogFlags::OnCheckBox)
 
 END_EVENT_TABLE()
 
@@ -128,6 +130,11 @@ CDlgDiagnosticLogFlags::CDlgDiagnosticLogFlags(wxWindow* parent) :
     btnCancel->SetToolTip( _("Close the dialog without saving") );
     buttonSizer->Add( btnCancel, 0, wxALL, 5 );
 
+    m_btnApply = new wxButton( this, wxID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize, 0 );
+    m_btnApply->SetToolTip( _("Save all values") );
+    m_btnApply->Enable(false);
+    buttonSizer->Add( m_btnApply, 0, wxALL, 5 );
+
     btnCancel->SetDefault();
     bSizer1->Add( buttonSizer, 0, wxALIGN_RIGHT | wxALL, 15 );
     
@@ -188,6 +195,35 @@ void CDlgDiagnosticLogFlags::CreateCheckboxes() {
     m_checkboxSizer->Fit( m_scrolledWindow );
 }
 
+void CDlgDiagnosticLogFlags::SaveFlags() {
+    SET_LOCALE sl;
+    char buf[64000];
+    MIOFILE mf;
+    bool val;
+    unsigned int i;
+    CMainDocument* pDoc = wxGetApp().GetDocument();
+
+    wxASSERT(pDoc);
+    wxASSERT(wxDynamicCast(pDoc, CMainDocument));
+
+    mf.init_buf_write(buf, sizeof(buf));
+    for (i = 0; i<m_checkbox_list.size(); ++i) {
+      wxCheckBox* ckbox = m_checkbox_list[i];
+      val = ckbox->GetValue();
+      mf.printf("        <%s>%d</%s>\n", (const char*)ckbox->GetLabel().ToAscii(), (int)val, (const char*)ckbox->GetLabel().ToAscii());
+    }
+    mf.printf("    </log_flags>\n");
+
+    XML_PARSER xp(&mf);
+    mf.init_buf_read(buf);
+    log_flags.parse(xp);
+
+    int retval = pDoc->rpc.set_cc_config(m_cc_config, log_flags);
+    if (!retval) {
+      pDoc->rpc.read_cc_config();
+    }
+}
+
 
 /* saves dialog size and (on Mac) position */
 bool CDlgDiagnosticLogFlags::SaveState() {
@@ -242,32 +278,8 @@ void CDlgDiagnosticLogFlags::OnSize(wxSizeEvent& event) {
 
 
 void CDlgDiagnosticLogFlags::OnOK(wxCommandEvent& event) {
-    SET_LOCALE sl;
-    char buf[64000];
-    MIOFILE mf;
-    bool val;
-    unsigned int i;
-    CMainDocument* pDoc = wxGetApp().GetDocument();
-
-    wxASSERT(pDoc);
-    wxASSERT(wxDynamicCast(pDoc, CMainDocument));
+    SaveFlags();
 
-    mf.init_buf_write(buf, sizeof(buf));
-    for (i=0; i<m_checkbox_list.size(); ++i) {
-        wxCheckBox* ckbox = m_checkbox_list[i];
-        val = ckbox->GetValue();
-        mf.printf("        <%s>%d</%s>\n", (const char*)ckbox->GetLabel().ToAscii(), (int)val, (const char*)ckbox->GetLabel().ToAscii());
-    }
-    mf.printf("    </log_flags>\n");
-
-    XML_PARSER xp(&mf);
-    mf.init_buf_read(buf);
-    log_flags.parse(xp);
-    
-    int retval = pDoc->rpc.set_cc_config(m_cc_config, log_flags);
-    if (!retval) {
-        pDoc->rpc.read_cc_config();
-    }
     event.Skip();
 }
 
@@ -277,5 +289,19 @@ void CDlgDiagnosticLogFlags::OnSetDefaults(wxCommandEvent& ) {
     
     m_checkboxSizer->Clear(true);
     CreateCheckboxes();
+    m_btnApply->Enable();
     Layout();
 }
+
+void CDlgDiagnosticLogFlags::OnApply(wxCommandEvent & event) {
+    SaveFlags();
+    m_btnApply->Enable(false);
+
+    event.Skip();
+}
+
+void CDlgDiagnosticLogFlags::OnCheckBox(wxCommandEvent & event) {
+    m_btnApply->Enable();
+
+    event.Skip();
+}
diff --git a/clientgui/DlgDiagnosticLogFlags.h b/clientgui/DlgDiagnosticLogFlags.h
old mode 100755
new mode 100644
index e664c90..bbf1b23
--- a/clientgui/DlgDiagnosticLogFlags.h
+++ b/clientgui/DlgDiagnosticLogFlags.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGDIAGNOSTICLOGFLAGS_H_
-#define _DLGDIAGNOSTICLOGFLAGS_H_
+#ifndef BOINC_DLGDIAGNOSTICLOGFLAGS_H
+#define BOINC_DLGDIAGNOSTICLOGFLAGS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgDiagnosticLogFlags.cpp"
@@ -49,18 +49,22 @@ public:
     void OnSize(wxSizeEvent& event);
 	void OnOK(wxCommandEvent& event);
 	void OnSetDefaults(wxCommandEvent& event);
+    void OnApply(wxCommandEvent& event);
+    void OnCheckBox(wxCommandEvent& event);
 private:
 	//generic layout methods
     bool SaveState();
     bool RestoreState();
     
     void CreateCheckboxes();
+    void SaveFlags();
     
     LOG_FLAGS           log_flags;
     CC_CONFIG           m_cc_config;
     
     wxGridSizer*        m_headingSizer;
     std::vector <wxCheckBox*> m_checkbox_list;
+    wxButton*           m_btnApply;
 
 protected:
     wxString            m_headingText;
@@ -69,5 +73,4 @@ protected:
     wxGridSizer*        m_checkboxSizer;
 };
 
-#endif // _DLGDIAGNOSTICLOGFLAGS_H_
-
+#endif
diff --git a/clientgui/DlgEventLog.h b/clientgui/DlgEventLog.h
index e53e9f6..2865028 100644
--- a/clientgui/DlgEventLog.h
+++ b/clientgui/DlgEventLog.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _DLGEVENTLOG_H_ 
-#define _DLGEVENTLOG_H_ 
+#ifndef BOINC_DLGEVENTLOG_H
+#define BOINC_DLGEVENTLOG_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgEventLog.cpp"
@@ -92,7 +92,7 @@ public:
     /// Constructors
     CDlgEventLog( wxWindow* parent = NULL, wxWindowID id = SYMBOL_CDLGEVENTLOG_IDNAME, const wxString& caption = SYMBOL_CDLGEVENTLOG_TITLE, const wxPoint& pos = SYMBOL_CDLGEVENTLOG_POSITION, const wxSize& size = SYMBOL_CDLGEVENTLOG_SIZE, long style = SYMBOL_CDLGEVENTLOG_STYLE );
     ~CDlgEventLog();
-    
+
     /// Creation
     bool Create( wxWindow* parent = NULL, wxWindowID id = SYMBOL_CDLGEVENTLOG_IDNAME, const wxString& caption = SYMBOL_CDLGEVENTLOG_TITLE, const wxPoint& pos = SYMBOL_CDLGEVENTLOG_POSITION, const wxSize& size = SYMBOL_CDLGEVENTLOG_SIZE, long style = SYMBOL_CDLGEVENTLOG_STYLE );
 
@@ -101,10 +101,10 @@ public:
 
     /// Sets text for m_pFilterButton
     void SetFilterButtonText();
-    
+
     /// Text color selection
     void SetTextColor();
-    
+
 ////@begin CDlgEventLog event handler declarations
     /// wxEVT_HELP event handler for ID_DLGEVENTLOG
     void OnHelp( wxHelpEvent& event );
@@ -114,7 +114,7 @@ public:
 
     /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
     void OnOK( wxCommandEvent& event );
-    
+
     /// wxEVT_CLOSE event handler for CDlgEventLog (window close control clicked)
     void OnClose(wxCloseEvent& event);
 
@@ -135,7 +135,7 @@ public:
 
     /// EVT_LIST_COL_END_DRAG event handler for ID_SIMPLE_MESSAGESVIEW
     void OnColResize( wxListEvent& event );
-    
+
     /// called from CMainDocument::HandleCompletedRPC() after wxEVT_RPC_FINISHED event
     void OnRefresh();
 ////@end CDlgEventLog event handler declarations
@@ -196,8 +196,8 @@ private:
 
     void                    OnMouseUp(wxMouseEvent& event);
 
-    void                    ResetMessageFiltering();    
-    
+    void                    ResetMessageFiltering();
+
     bool                    EnsureLastItemVisible();
     wxInt32                 FormatProjectName( wxInt32 item, wxString& strBuffer ) const;
     wxInt32                 FormatTime( wxInt32 item, wxString& strBuffer ) const;
@@ -212,5 +212,4 @@ private:
 #endif
 };
 
-
-#endif  // end CDlgMessages
+#endif
diff --git a/clientgui/DlgEventLogListCtrl.h b/clientgui/DlgEventLogListCtrl.h
index c734df3..4cb55c4 100644
--- a/clientgui/DlgEventLogListCtrl.h
+++ b/clientgui/DlgEventLogListCtrl.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _DLGEVENTLOGLISTCTRL_H_
-#define _DLGEVENTLOGLISTCTRL_H_
+#ifndef BOINC_DLGEVENTLOGLISTCTRL_H
+#define BOINC_DLGEVENTLOGLISTCTRL_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgEventLogListCtrl.cpp"
diff --git a/clientgui/DlgExclusiveApps.h b/clientgui/DlgExclusiveApps.h
index ac74a57..c7f4ec4 100644
--- a/clientgui/DlgExclusiveApps.h
+++ b/clientgui/DlgExclusiveApps.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGEXCLUSIVEAPPS_H_
-#define _DLGEXCLUSIVEAPPS_H_
+#ifndef BOINC_DLGEXCLUSIVEAPPS_H
+#define BOINC_DLGEXCLUSIVEAPPS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgExclusiveApps.cpp"
@@ -69,5 +69,4 @@ private:
 
 };
 
-#endif // _DLGEXCLUSIVEAPPS_H_
-
+#endif
diff --git a/clientgui/DlgExitMessage.h b/clientgui/DlgExitMessage.h
index b8e0542..e334b2d 100644
--- a/clientgui/DlgExitMessage.h
+++ b/clientgui/DlgExitMessage.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
 
-#ifndef _DLGEXITMESSAGE_H_
-#define _DLGEXITMESSAGE_H_
+#ifndef BOINC_DLGEXITMESSAGE_H
+#define BOINC_DLGEXITMESSAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgExitMessage.cpp"
@@ -111,4 +111,3 @@ public:
 };
 
 #endif
-    // _DLGEXITMESSAGE_H_
diff --git a/clientgui/DlgGenericMessage.h b/clientgui/DlgGenericMessage.h
index 88b7032..a3786df 100644
--- a/clientgui/DlgGenericMessage.h
+++ b/clientgui/DlgGenericMessage.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
 
-#ifndef _DLGGENERICMESSAGE_H_
-#define _DLGGENERICMESSAGE_H_
+#ifndef BOINC_DLGGENERICMESSAGE_H
+#define BOINC_DLGGENERICMESSAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgGenericMessage.cpp"
@@ -109,4 +109,3 @@ public:
 };
 
 #endif
-    // _DLGGENERICMESSAGE_H_
diff --git a/clientgui/DlgHiddenColumns.cpp b/clientgui/DlgHiddenColumns.cpp
index 8f68764..a12408c 100644
--- a/clientgui/DlgHiddenColumns.cpp
+++ b/clientgui/DlgHiddenColumns.cpp
@@ -184,7 +184,6 @@ void CDlgHiddenColumns::CreateCheckboxes() {
 
         CBOINCListCtrl* listCtrl = pView->GetListCtrl();
         wxInt32 iShownColumnCount = listCtrl->GetColumnCount();
-        wxString strHiddenColumns;
         wxArrayInt aOrder(iShownColumnCount);
 
 #ifdef wxHAS_LISTCTRL_COLUMN_ORDER
@@ -303,11 +302,11 @@ void CDlgHiddenColumns::OnSize(wxSizeEvent& event) {
 void CDlgHiddenColumns::OnCheckboxClick(wxCommandEvent& event){
     bool bAllOffInGroup, bEnableOK = true;
     
-    int actualCount = m_checkbox_list.size();
-    for (int i=0; i<actualCount; ++i) {
+    size_t actualCount = m_checkbox_list.size();
+    for (size_t i=0; i<actualCount; ++i) {
         std::vector <wxCheckBox*> *checkbox_list = m_checkbox_list[i];
         bAllOffInGroup = true;
-        for (int j=0; j<checkbox_list->size(); ++j) {
+        for (size_t j=0; j<checkbox_list->size(); ++j) {
             wxCheckBox* ckbox = (*checkbox_list)[j];
             if (ckbox->GetValue()) {
                 bAllOffInGroup = false;
@@ -326,14 +325,14 @@ void CDlgHiddenColumns::OnCheckboxClick(wxCommandEvent& event){
 
 
 void CDlgHiddenColumns::OnOK(wxCommandEvent& event) {
-    int actualCount = m_checkbox_list.size();
+    size_t actualCount = m_checkbox_list.size();
     wxASSERT (m_pBOINCBaseView.size() == actualCount);
     
-    for (int i=0; i<actualCount; ++i) {
+    for (size_t i=0; i<actualCount; ++i) {
         CBOINCBaseView* pView = m_pBOINCBaseView[i];
         std::vector <wxCheckBox*> *checkbox_list = m_checkbox_list[i];
         wxArrayString orderArray;
-        for (int j=0; j<checkbox_list->size(); ++j) {
+        for (size_t j=0; j<checkbox_list->size(); ++j) {
             wxCheckBox* ckbox = (*checkbox_list)[j];
             if (ckbox->GetValue()) {
                 wxString name = ckbox->GetLabel();
diff --git a/clientgui/DlgHiddenColumns.h b/clientgui/DlgHiddenColumns.h
index 116bb86..bdf706a 100644
--- a/clientgui/DlgHiddenColumns.h
+++ b/clientgui/DlgHiddenColumns.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGHIDDENCOLUMNS_H_
-#define _DLGHIDDENCOLUMNS_H_
+#ifndef BOINC_DLGHIDDENCOLUMNS_H
+#define BOINC_DLGHIDDENCOLUMNS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgHiddenColumns.cpp"
@@ -57,5 +57,4 @@ protected:
     wxBoxSizer*         m_scrolledSizer;
 };
 
-#endif // _DLGHIDDENCOLUMNS_H_
-
+#endif
diff --git a/clientgui/DlgItemProperties.cpp b/clientgui/DlgItemProperties.cpp
index 538a1ef..d4cd898 100644
--- a/clientgui/DlgItemProperties.cpp
+++ b/clientgui/DlgItemProperties.cpp
@@ -387,8 +387,8 @@ void CDlgItemProperties::renderInfos(RESULT* result) {
         );
     }
     if (result->active_task) {
-        addProperty(_("CPU time at last checkpoint"), FormatTime(result->checkpoint_cpu_time));
         addProperty(_("CPU time"), FormatTime(result->current_cpu_time));
+        addProperty(_("CPU time since checkpoint"), FormatTime(result->current_cpu_time - result->checkpoint_cpu_time));
         if (result->elapsed_time >= 0) {
             addProperty(_("Elapsed time"), FormatTime(result->elapsed_time));
         }
diff --git a/clientgui/DlgItemProperties.h b/clientgui/DlgItemProperties.h
index 262545b..2b68b81 100644
--- a/clientgui/DlgItemProperties.h
+++ b/clientgui/DlgItemProperties.h
@@ -15,8 +15,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGITEMPROPERTIES_H_
-#define _DLGITEMPROPERTIES_H_
+
+#ifndef BOINC_DLGITEMPROPERTIES_H
+#define BOINC_DLGITEMPROPERTIES_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgItemProperties.cpp"
@@ -65,5 +66,4 @@ protected:
         wxString m_strBaseConfigLocation;
 };
 
-#endif // _DLGITEMPROPERTIES_H_
-
+#endif
diff --git a/clientgui/DlgOptions.cpp b/clientgui/DlgOptions.cpp
old mode 100755
new mode 100644
index 8f881de..87b034d
--- a/clientgui/DlgOptions.cpp
+++ b/clientgui/DlgOptions.cpp
@@ -99,6 +99,7 @@ bool CDlgOptions::Create(wxWindow* parent, wxWindowID id, const wxString& captio
     m_LanguageSelectionCtrl = NULL;
     m_ReminderFrequencyCtrl = NULL;
     m_EnableBOINCManagerAutoStartCtrl = NULL;
+    m_EnableRunDaemonCtrl = NULL;
     m_EnableBOINCManagerExitMessageCtrl = NULL;
     m_DialupStaticBoxCtrl = NULL;
 #if defined(__WXMSW__)
@@ -209,9 +210,19 @@ void CDlgOptions::CreateControls() {
 #endif
 
     wxStaticText* itemStaticText11 = new wxStaticText;
-    itemStaticText11->Create( itemPanel4, wxID_STATIC, _("Enable Manager exit dialog?"), wxDefaultPosition, wxDefaultSize, 0 );
+    itemStaticText11->Create( itemPanel4, wxID_STATIC, _("Run daemon?"), wxDefaultPosition, wxDefaultSize, 0 );
     itemFlexGridSizer6->Add(itemStaticText11, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
+    m_EnableRunDaemonCtrl = new wxCheckBox;
+    m_EnableRunDaemonCtrl->Create( itemPanel4, ID_ENABLERUNDAEMON, wxT(""), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
+    if (ShowToolTips())
+        m_EnableRunDaemonCtrl->SetToolTip(_("Run daemon when launching the Manager."));
+    itemFlexGridSizer6->Add(m_EnableRunDaemonCtrl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+    wxStaticText* itemStaticText12 = new wxStaticText;
+    itemStaticText12->Create( itemPanel4, wxID_STATIC, _("Enable Manager exit dialog?"), wxDefaultPosition, wxDefaultSize, 0 );
+    itemFlexGridSizer6->Add(itemStaticText12, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
     m_EnableBOINCManagerExitMessageCtrl = new wxCheckBox;
     m_EnableBOINCManagerExitMessageCtrl->Create( itemPanel4, ID_ENABLEEXITMESSAGE, wxT(""), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
     if (ShowToolTips())
@@ -631,6 +642,7 @@ bool CDlgOptions::ReadSettings() {
         m_DialupClearDefaultCtrl->Disable();
     }
 #endif
+    m_EnableRunDaemonCtrl->SetValue(wxGetApp().GetRunDaemon());
 
     // Proxy Tabs
     m_bRetrievedProxyConfiguration = (0 == pDoc->GetProxyConfiguration());
@@ -737,6 +749,7 @@ bool CDlgOptions::SaveSettings() {
     // Connection Tab
     pFrame->SetDialupConnectionName(GetDefaultDialupConnection());
 #endif
+    wxGetApp().SetRunDaemon(m_EnableRunDaemonCtrl->GetValue());
 
     // Proxy Tabs
     if (m_bRetrievedProxyConfiguration) {
diff --git a/clientgui/DlgOptions.h b/clientgui/DlgOptions.h
index 5a514d7..a51e63b 100644
--- a/clientgui/DlgOptions.h
+++ b/clientgui/DlgOptions.h
@@ -15,8 +15,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGOPTIONS_H_
-#define _DLGOPTIONS_H_
+
+#ifndef BOINC_DLGOPTIONS_H
+#define BOINC_DLGOPTIONS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgOptions.cpp"
@@ -54,6 +55,7 @@
 #define ID_REMINDERFREQUENCY 10018
 #define ID_ENABLEAUTOSTART 10031
 #define ID_ENABLEEXITMESSAGE 10032
+#define ID_ENABLERUNDAEMON 10033
 #define ID_CONNECTONS 10019
 #define ID_NETWORKAUTODETECT 10020
 #define ID_NETWORKLAN 10021
@@ -165,6 +167,7 @@ private:
     wxComboBox* m_ReminderFrequencyCtrl;
     wxCheckBox* m_EnableBOINCManagerAutoStartCtrl;
     wxCheckBox* m_EnableBOINCManagerExitMessageCtrl;
+    wxCheckBox* m_EnableRunDaemonCtrl;
     wxStaticBoxSizer* m_DialupStaticBoxCtrl;
     wxListBox* m_DialupConnectionsCtrl;
     wxButton* m_DialupSetDefaultCtrl;
@@ -188,4 +191,3 @@ private:
 };
 
 #endif
-    // _DLGOPTIONS_H_
diff --git a/clientgui/DlgSelectComputer.cpp b/clientgui/DlgSelectComputer.cpp
index 40cbe7a..42a4049 100644
--- a/clientgui/DlgSelectComputer.cpp
+++ b/clientgui/DlgSelectComputer.cpp
@@ -236,8 +236,9 @@ void CDlgSelectComputer::OnComputerNameUpdated( wxCommandEvent& WXUNUSED(event)
 
     wxString name = m_ComputerNameCtrl->GetValue();
     if (pDoc->IsComputerNameLocal(name)) {
-        pDoc->m_pNetworkConnection->GetLocalPassword(strPassword);
-        m_ComputerPasswordCtrl->SetValue(strPassword);
+        if (pDoc->m_pNetworkConnection->GetLocalPassword(strPassword) == 0) {
+            m_ComputerPasswordCtrl->SetValue(strPassword);
+        }
     }
 }
 
diff --git a/clientgui/DlgSelectComputer.h b/clientgui/DlgSelectComputer.h
index b6589d5..b7a4a50 100644
--- a/clientgui/DlgSelectComputer.h
+++ b/clientgui/DlgSelectComputer.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _DLGSELECTCOMPUTER_H_
-#define _DLGSELECTCOMPUTER_H_
+#ifndef BOINC_DLGSELECTCOMPUTER_H
+#define BOINC_DLGSELECTCOMPUTER_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "DlgSelectComputer.cpp"
@@ -123,4 +123,3 @@ protected:
 };
 
 #endif
-    // _DLGSELECTCOMPUTER_H_
diff --git a/clientgui/Events.h b/clientgui/Events.h
index 760b3e7..c1a4eed 100644
--- a/clientgui/Events.h
+++ b/clientgui/Events.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _EVENTS_H_
-#define _EVENTS_H_
+#ifndef BOINC_EVENTS_H
+#define BOINC_EVENTS_H
 
 // Common Events across GUIs
 #define ID_CLOSEWINDOW                          6100
@@ -95,6 +95,7 @@
 #define ID_HELPBOINC                            6035  // Locked: Used by manager_links.php
 #define ID_HELPBOINCWEBSITE                     6024  // Locked: Used by manager_links.php
 #define ID_HELPBOINCMANAGER                     6025  // Locked: Used by manager_links.php
+#define ID_CHECK_VERSION                        6026
 //#define wxID_ABOUT
 
 // Views
@@ -195,4 +196,3 @@
 #define ID_ANYDIALOG                            10000
 
 #endif
-
diff --git a/clientgui/Localization.h b/clientgui/Localization.h
index 412e515..e5574b1 100644
--- a/clientgui/Localization.h
+++ b/clientgui/Localization.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _LOCALIZATION_H_
-#define _LOCALIZATION_H_
+#ifndef BOINC_LOCALIZATION_H
+#define BOINC_LOCALIZATION_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "Localization.cpp"
@@ -101,6 +101,4 @@ public:
     wxString m_strWCGResearchDesc;
 };
 
-
 #endif
-
diff --git a/clientgui/LogBOINC.h b/clientgui/LogBOINC.h
index 74f0d89..5d7c30b 100644
--- a/clientgui/LogBOINC.h
+++ b/clientgui/LogBOINC.h
@@ -15,16 +15,14 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _LOGBOINC_H_
-#define _LOGBOINC_H_
+#ifndef BOINC_LOGBOINC_H
+#define BOINC_LOGBOINC_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "LogBOINC.cpp"
 #endif
 
-
-class wxLogBOINC : public wxLogStderr
-{
+class wxLogBOINC : public wxLogStderr {
     DECLARE_NO_COPY_CLASS(wxLogBOINC)
 
 public:
@@ -34,6 +32,5 @@ protected:
     virtual void DoLogText(const wxString& msg);
 };
 
-
 #endif
 
diff --git a/clientgui/MainDocument.cpp b/clientgui/MainDocument.cpp
index 7763cdd..53c0fb2 100644
--- a/clientgui/MainDocument.cpp
+++ b/clientgui/MainDocument.cpp
@@ -25,6 +25,9 @@
 #include "error_numbers.h"
 #include "str_replace.h"
 #include "util.h"
+#ifdef __WXMAC__
+#include "mac_util.h"
+#endif
 #ifdef _WIN32
 #include "proc_control.h"
 #endif
@@ -37,6 +40,7 @@
 #include "BOINCTaskBar.h"
 #include "DlgEventLog.h"
 #include "Events.h"
+#include "SkinManager.h"
 
 #ifndef _WIN32
 #include <sys/wait.h>
@@ -48,7 +52,7 @@
 
 #define USE_CACHE_TIMEOUTS 0
 
-// If get_results RPC takes x seconds, do it no more often than 
+// If get_results RPC takes x seconds, do it no more often than
 // once every (x * GET_RESULTS_FREQUENCY_FACTOR) seconds
 #define GET_RESULTS_FREQUENCY_FACTOR 10
 
@@ -108,10 +112,11 @@ CNetworkConnection::CNetworkConnection(CMainDocument* pDocument) :
     m_bForceReconnect = false;
     m_bReconnectOnError = false;
     m_bNewConnection = false;
+    m_bUseDefaultPassword = false;
     m_bUsedDefaultPassword = false;
     m_iPort = GUI_RPC_PORT,
     m_iReadGUIRPCAuthFailure = 0;
- }
+}
 
 
 CNetworkConnection::~CNetworkConnection() {
@@ -164,6 +169,7 @@ void CNetworkConnection::Poll() {
             if (!retval) {
                 wxLogTrace(wxT("Function Status"), wxT("CNetworkConnection::Poll - Connection Success"));
                 SetStateSuccess(m_strNewComputerName, m_strNewComputerPassword);
+                m_pDocument->CheckForVersionUpdate();
             } else if (ERR_AUTHENTICATOR == retval) {
                 wxLogTrace(wxT("Function Status"), wxT("CNetworkConnection::Poll - RPC Authorization - ERR_AUTHENTICATOR"));
                 SetStateErrorAuthentication();
@@ -341,7 +347,7 @@ void CNetworkConnection::SetStateSuccess(wxString& strComputer, wxString& strCom
     CBOINCBaseFrame* pFrame = wxGetApp().GetFrame();
     if (pFrame && !m_bFrameShutdownDetected) {
         wxASSERT(wxDynamicCast(pFrame, CBOINCBaseFrame));
-        
+
         m_bConnected = true;
         m_bReconnecting = false;
         m_bReconnectOnError = true;
@@ -351,7 +357,7 @@ void CNetworkConnection::SetStateSuccess(wxString& strComputer, wxString& strCom
         m_strNewComputerPassword = wxEmptyString;
         m_bNewConnection = false;
 
-        // Prevent a race condition where OnFrameRender() causes SetStateDisconnected() 
+        // Prevent a race condition where OnFrameRender() causes SetStateDisconnected()
         // to be called due to a previous RPC error before we reconnected.
         m_pDocument->RefreshRPCs(true);
 
@@ -415,42 +421,42 @@ CMainDocument::CMainDocument() : rpc(this) {
 
     m_dtCachedStateTimestamp = wxDateTime((time_t)0);
     m_iGet_state_rpc_result = 0;
-    
+
     m_dtCachedCCStatusTimestamp = wxDateTime((time_t)0);
     m_iGet_status_rpc_result = 0;
-    
+
     m_dtNoticesTimeStamp = wxDateTime((time_t)0);;
     m_iGet_notices_rpc_result = -1;
-    
+
     m_dtProjectsStatusTimestamp = wxDateTime((time_t)0);
     m_iGet_project_status1_rpc_result = -1;
-    
+
     m_dtResultsTimestamp = wxDateTime((time_t)0);
     m_iGet_results_rpc_result = -1;
-    
+
     m_fResultsRPCExecutionTime = 0;
-    
+
     m_dtKillInactiveGfxTimestamp = wxDateTime((time_t)0);
     m_dtFileTransfersTimestamp = wxDateTime((time_t)0);
     m_iGet_file_transfers_rpc_result = 0;
-    
+
     m_iGet_messages_rpc_result = -1;
-    
+
     m_dtDiskUsageTimestamp = wxDateTime((time_t)0);
     m_iGet_dsk_usage_rpc_result = -1;
 
     m_dtStatisticsStatusTimestamp = wxDateTime((time_t)0);
     m_iGet_statistics_rpc_result = -1;
-    
+
     m_dtCachedSimpleGUITimestamp = wxDateTime((time_t)0);
     m_iGet_simple_gui2_rpc_result = -1;
-    
+
     m_dtCachedAcctMgrInfoTimestamp = wxDateTime((time_t)0);
     m_iAcct_mgr_info_rpc_result = -1;
-    
+
     m_dtLasAsyncRPCDlgTime = wxDateTime((time_t)0);
     m_dtLastFrameViewRefreshRPCTime = wxDateTime((time_t)0);
-    
+
     status.max_event_log_lines = 0;
 }
 
@@ -484,25 +490,25 @@ int CMainDocument::OnInit() {
     wxASSERT(m_pRPC_Thread_Mutex);
 
     m_pRPC_Thread_Condition = new BOINC_Condition(*m_pRPC_Thread_Mutex);
-     wxASSERT(m_pRPC_Thread_Condition);
-  
+    wxASSERT(m_pRPC_Thread_Condition);
+
     m_pRPC_Request_Mutex = new BOINC_Mutex();
     wxASSERT(m_pRPC_Request_Mutex);
 
     m_pRPC_Request_Condition = new BOINC_Condition(*m_pRPC_Request_Mutex);
-     wxASSERT(m_pRPC_Request_Condition);
-  
-    m_RPCThread = new RPCThread(this, 
-        m_pRPC_Thread_Mutex, 
-        m_pRPC_Thread_Condition, 
-        m_pRPC_Request_Mutex, 
+    wxASSERT(m_pRPC_Request_Condition);
+
+    m_RPCThread = new RPCThread(this,
+        m_pRPC_Thread_Mutex,
+        m_pRPC_Thread_Condition,
+        m_pRPC_Request_Mutex,
         m_pRPC_Request_Condition
     );
     wxASSERT(m_RPCThread);
 
     iRetVal = m_RPCThread->Create();
     wxASSERT(!iRetVal);
-    
+
     m_RPCThread->Run();
     for (int i=0; i<100; i++) {
         if (!m_bRPCThreadIsReady) {
@@ -515,7 +521,6 @@ int CMainDocument::OnInit() {
 
 
 int CMainDocument::OnExit() {
-    wxString         strConnectedCompter = wxEmptyString;
     int              iRetVal = 0;
 
     if (m_pClientManager) {
@@ -525,7 +530,7 @@ int CMainDocument::OnExit() {
                 m_pClientManager->ShutdownBOINCCore(true);
             }
         }
-        
+
         delete m_pClientManager;
         m_pClientManager = NULL;
     }
@@ -534,19 +539,19 @@ int CMainDocument::OnExit() {
         KillRPCThread();
         m_RPCThread = NULL;
     }
-    
+
     delete m_pRPC_Thread_Mutex;
     m_pRPC_Thread_Mutex = NULL;
-    
+
     delete m_pRPC_Thread_Condition;
     m_pRPC_Thread_Condition = NULL;
-    
+
     delete m_pRPC_Request_Mutex;
     m_pRPC_Request_Mutex = NULL;
-    
+
     delete m_pRPC_Request_Condition;
     m_pRPC_Request_Condition = NULL;
-    
+
     rpcClient.close();
 
     if (m_pNetworkConnection) {
@@ -564,7 +569,7 @@ int CMainDocument::OnPoll() {
     wxString hostName = wxGetApp().GetClientHostNameArg();
     wxString password = wxGetApp().GetClientPasswordArg();
     int portNum = wxGetApp().GetClientRPCPortArg();
-    
+
     wxASSERT(wxDynamicCast(m_pClientManager, CBOINCClientManager));
     wxASSERT(wxDynamicCast(m_pNetworkConnection, CNetworkConnection));
 
@@ -580,23 +585,25 @@ int CMainDocument::OnPoll() {
                 }
             }
         }
-        
-        if (IsComputerNameLocal(hostName)) {
-            if (m_pClientManager->StartupBOINCCore()) {
-                Connect(wxT("localhost"), portNum, password, TRUE, TRUE);
+
+        if (wxGetApp().GetNeedRunDaemon()) {
+            if (IsComputerNameLocal(hostName)) {
+                if (m_pClientManager->StartupBOINCCore()) {
+                    Connect(wxT("localhost"), portNum, password, TRUE, TRUE);
+                } else {
+                    m_pNetworkConnection->ForceDisconnect();
+                    pFrame->ShowDaemonStartFailedAlert();
+                }
             } else {
-                m_pNetworkConnection->ForceDisconnect();
-                pFrame->ShowDaemonStartFailedAlert();
+                Connect(hostName, portNum, password, TRUE, password.IsEmpty());
             }
-        } else {
-            Connect(hostName, portNum, password, TRUE, password.IsEmpty());
         }
     }
 
     // Check connection state, connect if needed.
     m_pNetworkConnection->Poll();
 
-    // Every 10 seconds, kill any running graphics apps 
+    // Every 10 seconds, kill any running graphics apps
     // whose associated worker tasks are no longer running
     wxTimeSpan ts(wxDateTime::Now() - m_dtKillInactiveGfxTimestamp);
     if (ts.GetSeconds() > 10) {
@@ -621,7 +628,7 @@ int CMainDocument::CachedStateUpdate() {
     int     retval = 0;
 
     if (m_iGet_state_rpc_result) retval = m_iGet_state_rpc_result;
-            
+
     if (retval) m_pNetworkConnection->SetStateDisconnected();
 
     return retval;
@@ -647,8 +654,8 @@ int CMainDocument::Connect(const wxString& szComputer, int iPort, const wxString
         // Restart client if not already running
         m_pClientManager->AutoRestart();
     }
-   
-   if (bDisconnect) {
+
+    if (bDisconnect) {
         m_pNetworkConnection->ForceReconnect();
     }
 
@@ -713,12 +720,12 @@ int CMainDocument::FrameShutdownDetected() {
 }
 
 
-// It is _not_ enough to just reset m_dtCachedCCStatusTimestamp 
+// It is _not_ enough to just reset m_dtCachedCCStatusTimestamp
 // and let RunPeriodicRPCs() update the state for these routines
 // (which need immediate results):
 //      CMainDocument::SetActivityRunMode()
 //      CMainDocument::SetNetworkRunMode()
-// Otherwise the Snooze task bar menu item and SimpleGUI Pause 
+// Otherwise the Snooze task bar menu item and SimpleGUI Pause
 // button do not work properly.
 //
 int CMainDocument::GetCoreClientStatus(CC_STATUS& ccs, bool bForce) {
@@ -726,7 +733,7 @@ int CMainDocument::GetCoreClientStatus(CC_STATUS& ccs, bool bForce) {
     int              iRetVal = 0;
 
     if (IsConnected()) {
-        if (!m_bWaitingForRPC) {    // Prevent recursive entry of RequestRPC() 
+        if (!m_bWaitingForRPC) {    // Prevent recursive entry of RequestRPC()
 #if USE_CACHE_TIMEOUTS
             wxTimeSpan ts(wxDateTime::Now() - m_dtCachedCCStatusTimestamp);
             if (ts.GetSeconds() >= (10 * CCSTATUS_RPC_INTERVAL)) bForce = true;
@@ -746,7 +753,7 @@ int CMainDocument::GetCoreClientStatus(CC_STATUS& ccs, bool bForce) {
             ccs = status;
             iRetVal = m_iGet_status_rpc_result;
         }
-        
+
         if (m_iGet_status_rpc_result) {
             m_pNetworkConnection->SetStateDisconnected();
         } else {
@@ -820,8 +827,8 @@ int CMainDocument::SetNetworkRunMode(int iMode, int iTimeout) {
 }
 
 
-// We use 0 to indicate that the RPC has never been called yet, so 
-// set last update time to (time_t)1 here rather than to (time_t)0, 
+// We use 0 to indicate that the RPC has never been called yet, so
+// set last update time to (time_t)1 here rather than to (time_t)0,
 // and only if it is currently not zero.
 void CMainDocument::RefreshRPCs(bool fullReset) {
     wxDateTime t = fullReset ? wxDateTime((time_t)0) : wxDateTime((time_t)1);
@@ -830,25 +837,25 @@ void CMainDocument::RefreshRPCs(bool fullReset) {
         m_dtCachedCCStatusTimestamp = t;
 //      m_iGet_status_rpc_result = -1;
     }
-    
+
     if (!m_dtProjectsStatusTimestamp.IsEqualTo(wxDateTime((time_t)0))) {
         m_dtProjectsStatusTimestamp = t;
 //      m_iGet_project_status1_rpc_result = -1;
     }
-    
+
     if (!m_dtResultsTimestamp.IsEqualTo(wxDateTime((time_t)0))) {
         m_dtResultsTimestamp = t;
 //      m_iGet_results_rpc_result = -1;
     }
     m_fResultsRPCExecutionTime = 0;
-        
+
     if (!m_dtFileTransfersTimestamp.IsEqualTo(wxDateTime((time_t)0))) {
         m_dtFileTransfersTimestamp = t;
 //      m_iGet_file_transfers_rpc_result = 0;
     }
-        
+
 //  m_iGet_messages_rpc_result = -1;
-        
+
     if (!m_dtDiskUsageTimestamp.IsEqualTo(wxDateTime((time_t)0))) {
         m_dtDiskUsageTimestamp = t;
 //      m_iGet_dsk_usage_rpc_result = -1;
@@ -858,7 +865,7 @@ void CMainDocument::RefreshRPCs(bool fullReset) {
         m_dtStatisticsStatusTimestamp = t;
 //      m_iGet_statistics_rpc_result = -1;
     }
-        
+
     if (!m_dtCachedSimpleGUITimestamp.IsEqualTo(wxDateTime((time_t)0))) {
         m_dtCachedSimpleGUITimestamp = t;
 //      m_iGet_simple_gui2_rpc_result = -1;
@@ -876,9 +883,9 @@ void CMainDocument::RefreshRPCs(bool fullReset) {
 void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
     ASYNC_RPC_REQUEST request;
     wxTimeSpan ts;
-    
-    // Timer events are handled while the RPC Wait dialog is shown 
-    // which may cause unintended recursion and repeatedly posting 
+
+    // Timer events are handled while the RPC Wait dialog is shown
+    // which may cause unintended recursion and repeatedly posting
     // the same RPC requests from timer routines.
     if (WaitingForRPC()) return;
 
@@ -886,9 +893,9 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
     if (!pFrame) return;
 
     int currentTabView = pFrame->GetCurrentViewPage();
-        
-    // If the client is heavily loaded (e.g, very many tasks), the 
-    // RPC Wait dialog could appear continuously.  To prevent this, 
+
+    // If the client is heavily loaded (e.g, very many tasks), the
+    // RPC Wait dialog could appear continuously.  To prevent this,
     // delay periodic RPCs for 1 second after the dialog closes.
     wxDateTime dtNow(wxDateTime::Now());
     if ((currentTabView & (VW_STAT | VW_DISK)) == 0) {
@@ -897,7 +904,7 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
             return;
         }
     }
-    
+
     wxASSERT(wxDynamicCast(pFrame, CBOINCBaseFrame));
 
     if (!IsConnected()) {
@@ -914,36 +921,36 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
         }
         return;
     }
-    
-    // Several functions (such as Abort, Reset, Detach) display an 
-    // "Are you sure?" dialog before passing a pointer to a result 
-    // or project in a demand RPC call.  If Periodic RPCs continue 
-    // to run during these dialogs, that pointer may no longer be 
-    // valid by the time the demand RPC is executed.  So we suspend 
+
+    // Several functions (such as Abort, Reset, Detach) display an
+    // "Are you sure?" dialog before passing a pointer to a result
+    // or project in a demand RPC call.  If Periodic RPCs continue
+    // to run during these dialogs, that pointer may no longer be
+    // valid by the time the demand RPC is executed.  So we suspend
     // periodic RPCs during certain modal dialogs.
     //
     // Note that this depends on using wxGetApp().SafeMessageBox()
-    // instead of wxMessageBox in all tab views and anywhere else 
+    // instead of wxMessageBox in all tab views and anywhere else
     // where a periodic RPC could cause a similar problem.
     if (wxGetApp().IsSafeMesageBoxDisplayed()) {
         return;
     }
 
-	// SET_LANGUAGE 
+    // SET_LANGUAGE
 
-	static bool first = true;
-	if (first) {
-		first = false;
+    static bool first = true;
+    if (first) {
+        first = false;
         safe_strcpy(m_szLanguage, wxGetApp().GetISOLanguageCode().mb_str());
-		request.clear();
-		request.which_rpc = RPC_SET_LANGUAGE;
-		request.arg1 = (void*)(const char*)&m_szLanguage;
-		request.rpcType = RPC_TYPE_ASYNC_NO_REFRESH;
-		RequestRPC(request);
-	}
+        request.clear();
+        request.which_rpc = RPC_SET_LANGUAGE;
+        request.arg1 = (void*)(const char*)&m_szLanguage;
+        request.rpcType = RPC_TYPE_ASYNC_NO_REFRESH;
+        RequestRPC(request);
+    }
 
     // *********** RPC_GET_CC_STATUS **************
-    
+
     ts = dtNow - m_dtCachedCCStatusTimestamp;
     if (ts.GetSeconds() >= CCSTATUS_RPC_INTERVAL) {
         request.clear();
@@ -953,14 +960,14 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
         request.rpcType = RPC_TYPE_ASYNC_WITH_UPDATE_TASKBAR_ICON_AFTER;
         request.completionTime = &m_dtCachedCCStatusTimestamp;
         request.resultPtr = &m_iGet_status_rpc_result;
-       
+
         RequestRPC(request);
     }
 
     // *********** RPC_GET_MESSAGES **************
 
-    // We must keep getting messages even if the Event Log is not open 
-    // due to the limited size of the client's buffer, or some may be 
+    // We must keep getting messages even if the Event Log is not open
+    // due to the limited size of the client's buffer, or some may be
     // lost, causing gaps when the Event Log is later opened.
     //
     request.clear();
@@ -974,18 +981,18 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
     request.rpcType = RPC_TYPE_ASYNC_WITH_REFRESH_EVENT_LOG_AFTER;
     request.completionTime = NULL;
     request.resultPtr = &m_iGet_messages_rpc_result;
-   
+
     RequestRPC(request);
 
     // *********** RPC_GET_NOTICES **************
 
-    // We must keep getting notices even if the Notices Tab is not open 
+    // We must keep getting notices even if the Notices Tab is not open
     // so we can notify the user when new notices become available.
     ts = dtNow - m_dtNoticesTimeStamp;
-    if ((currentTabView & VW_NOTIF) || 
+    if ((currentTabView & VW_NOTIF) ||
         (ts.GetSeconds() >= NOTICESBACKGROUNDRPC_INTERVAL)) {
-        // Don't request another get_notices RPC until we have 
-        // updated m_iNoticeSequenceNumber from the previous 
+        // Don't request another get_notices RPC until we have
+        // updated m_iNoticeSequenceNumber from the previous
         // one; otherwise we will get duplicate notices
         if (!m_bWaitingForGetNoticesRPC) {
             m_bWaitingForGetNoticesRPC =  true;
@@ -1006,15 +1013,15 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
 
             request.completionTime = &m_dtNoticesTimeStamp;
             request.resultPtr = &m_iGet_notices_rpc_result;
-           
+
             RequestRPC(request);
         }
     }
-    
+
     ts = dtNow - m_dtCachedStateTimestamp;
     if (ts.GetSeconds() >= STATERPC_INTERVAL) {
 
-    // *********** RPC_GET_STATE **************
+        // *********** RPC_GET_STATE **************
 
         request.clear();
         request.which_rpc = RPC_GET_STATE;
@@ -1023,22 +1030,22 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
         request.rpcType = RPC_TYPE_ASYNC_NO_REFRESH;
         request.completionTime = &m_dtCachedStateTimestamp;
         request.resultPtr = &m_iGet_state_rpc_result;
-       
+
         RequestRPC(request);
     }
-    
-    // **** All periodic RPCs after this point are used only 
+
+    // **** All periodic RPCs after this point are used only
     // **** when refreshing Advanced Frame or Simple Frame views.
-    // **** If the Event Log is shown, the Periodic RPC Timer is 
-    // **** set for 1 second even though the Frame View may need 
+    // **** If the Event Log is shown, the Periodic RPC Timer is
+    // **** set for 1 second even though the Frame View may need
     // **** less frequent update.
-    // **** The argument frameRefreshRate is 0 if an immediate 
+    // **** The argument frameRefreshRate is 0 if an immediate
     // **** update is needed due to some user action, etc.
-    // **** Otherwise frameRefreshRate is the rate at which the 
+    // **** Otherwise frameRefreshRate is the rate at which the
     // **** the current Frame View should be updated.
     ts = dtNow - m_dtLastFrameViewRefreshRPCTime;
     if (ts.GetMilliseconds() < (frameRefreshRate - 500)) return;
-    
+
     // Don't do periodic RPC calls when hidden / minimized
     if (!pFrame->IsShown()) return;
 #ifdef __WXMAC__
@@ -1046,7 +1053,7 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
 #endif
 
     m_dtLastFrameViewRefreshRPCTime = dtNow;
-   
+
     // *********** RPC_GET_PROJECT_STATUS1 **************
 
     if (currentTabView & VW_PROJ) {
@@ -1059,7 +1066,7 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
             request.rpcType = RPC_TYPE_ASYNC_WITH_REFRESH_AFTER;
             request.completionTime = &m_dtProjectsStatusTimestamp;
             request.resultPtr = &m_iGet_project_status1_rpc_result;
-           
+
             RequestRPC(request);
         }
     }
@@ -1080,12 +1087,12 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
                 request.completionTime = &m_dtResultsTimestamp;
                 request.RPCExecutionTime = &m_fResultsRPCExecutionTime;
                 request.resultPtr = &m_iGet_results_rpc_result;
-               
+
                 RequestRPC(request);
             }
         }
     }
-    
+
     // *********** RPC_GET_FILE_TRANSFERS **************
 
     if (currentTabView & VW_XFER) {
@@ -1098,11 +1105,11 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
             request.rpcType = RPC_TYPE_ASYNC_WITH_REFRESH_AFTER;
             request.completionTime = &m_dtFileTransfersTimestamp;
             request.resultPtr = &m_iGet_file_transfers_rpc_result;
-           
+
             RequestRPC(request);
         }
     }
-    
+
     // *********** RPC_GET_STATISTICS **************
 
     if (currentTabView & VW_STAT) {
@@ -1115,11 +1122,11 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
             request.rpcType = RPC_TYPE_ASYNC_WITH_REFRESH_AFTER;
             request.completionTime = &m_dtStatisticsStatusTimestamp;
             request.resultPtr = &m_iGet_statistics_rpc_result;
-           
+
             RequestRPC(request);
         }
     }
-    
+
     // *********** RPC_GET_DISK_USAGE **************
 
     if (currentTabView & VW_DISK) {
@@ -1132,11 +1139,11 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
             request.rpcType = RPC_TYPE_ASYNC_WITH_REFRESH_AFTER;
             request.completionTime = &m_dtDiskUsageTimestamp;
             request.resultPtr = &m_iGet_dsk_usage_rpc_result;
-           
+
             RequestRPC(request);
         }
     }
-    
+
     // *********** GET_SIMPLE_GUI_INFO2 **************
     if (currentTabView & VW_SGUI) {
         ts = dtNow - m_dtCachedSimpleGUITimestamp;
@@ -1151,7 +1158,7 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
             request.rpcType = RPC_TYPE_ASYNC_WITH_REFRESH_AFTER;
             request.completionTime = &m_dtCachedSimpleGUITimestamp;
             request.resultPtr = &m_iGet_simple_gui2_rpc_result;
-           
+
             RequestRPC(request);
         }
     }
@@ -1167,17 +1174,17 @@ void CMainDocument::RunPeriodicRPCs(int frameRefreshRate) {
             request.rpcType = RPC_TYPE_ASYNC_NO_REFRESH;
             request.completionTime = &m_dtCachedAcctMgrInfoTimestamp;
             request.resultPtr = &m_iAcct_mgr_info_rpc_result;
-           
+
             RequestRPC(request);
         }
     }
 }
 
 
-// TODO: Is it enough to just reset m_dtCachedStateTimestamp 
-// and let RunPeriodicRPCs() update the state?  This would avoid 
-// displaying the "Please wait" dialog on multi-processor computers.  
-// Possible exceptions might be when ForceCacheUpdate() is called 
+// TODO: Is it enough to just reset m_dtCachedStateTimestamp
+// and let RunPeriodicRPCs() update the state?  This would avoid
+// displaying the "Please wait" dialog on multi-processor computers.
+// Possible exceptions might be when ForceCacheUpdate() is called
 // from these routines (which may need immediate results):
 //      CAdvancedFrame::OnConnect()
 //      CDlgItemProperties::FormatApplicationName()
@@ -1194,7 +1201,7 @@ int CMainDocument::ForceCacheUpdate(bool immediate) {
         m_dtCachedStateTimestamp = wxDateTime((time_t)0);
         return m_iGet_state_rpc_result;
     }
-    
+
     int     retval = 0;
 
     if (IsConnected()) {
@@ -1278,6 +1285,31 @@ bool CMainDocument::IsUserAuthorized() {
     return true;
 }
 
+void CMainDocument::CheckForVersionUpdate(bool showMessage) {
+    std::string version, url;
+    wxString message, title;
+    title.Printf(_("Version Update"));
+    wxString applicationName = wxGetApp().GetSkinManager()->GetAdvanced()->GetApplicationName();
+    if (IsConnected()) {
+        rpc.get_newer_version(version, url);
+
+        if (!showMessage)
+            return;
+
+        if (!version.empty() && !url.empty()) {
+            message.Printf(_("A new version of %s is available. You can download it here: %s"), applicationName, url);
+        }
+        else {
+            message.Printf(_("There is no new version of %s available for download."), applicationName);
+        }
+    }
+    else {
+        message.Printf(_("%s is not connected to the client"), applicationName);
+    }
+    if (showMessage) {
+        wxGetApp().SafeMessageBox(message, title);
+    }
+}
 
 int CMainDocument::CachedProjectStatusUpdate(bool bForce) {
     int     i = 0;
@@ -1289,7 +1321,7 @@ int CMainDocument::CachedProjectStatusUpdate(bool bForce) {
     if (ts.GetSeconds() >= (2 * PROJECTSTATUSRPC_INTERVAL)) bForce = true;
 #endif
     if (m_dtProjectsStatusTimestamp.IsEqualTo(wxDateTime((time_t)0))) bForce = true;
-    
+
     if (bForce) {
         m_dtProjectsStatusTimestamp = wxDateTime::Now();
         m_iGet_project_status1_rpc_result = rpc.get_project_status(async_projects_update_buf, state);
@@ -1327,10 +1359,10 @@ PROJECT* CMainDocument::project(unsigned int i) {
 
 
 PROJECT* CMainDocument::project(char* url) {
-	for (unsigned int i=0; i< state.projects.size(); i++) {
-		PROJECT* tp = state.projects[i];
-		if (!strcmp(url, tp->master_url)) return tp;
-	}
+    for (unsigned int i=0; i< state.projects.size(); i++) {
+        PROJECT* tp = state.projects[i];
+        if (!strcmp(url, tp->master_url)) return tp;
+    }
     return NULL;
 }
 
@@ -1451,12 +1483,12 @@ int CMainDocument::CachedResultsStatusUpdate() {
     if (ts.GetSeconds() >= (2 * RESULTSRPC_INTERVAL)) immediate = true;
 #endif
     if (m_dtResultsTimestamp.IsEqualTo(wxDateTime((time_t)0))) immediate = true;
-    
+
     if (immediate) {
         m_dtResultsTimestamp = wxDateTime::Now();
         m_iGet_results_rpc_result = rpc.get_results(results, active_tasks_only);
     }
-    
+
     if (m_iGet_results_rpc_result) {
         wxLogTrace(wxT("Function Status"), wxT("CMainDocument::CachedResultsStatusUpdate - Get Result Status Failed '%d'"), m_iGet_results_rpc_result);
         ForceCacheUpdate();
@@ -1510,7 +1542,7 @@ RESULT* CMainDocument::result(const wxString& name, const wxString& project_url)
 
 int CMainDocument::GetWorkCount() {
     int iCount = -1;
-    
+
     CachedResultsStatusUpdate();
     CachedStateUpdate();
 
@@ -1549,7 +1581,7 @@ int CMainDocument::WorkResume(char* url, char* name) {
 }
 
 
-// If the graphics application for the current task is already 
+// If the graphics application for the current task is already
 // running, return a pointer to its RUNNING_GFX_APP struct.
 //
 RUNNING_GFX_APP* CMainDocument::GetRunningGraphicsApp(
@@ -1557,12 +1589,12 @@ RUNNING_GFX_APP* CMainDocument::GetRunningGraphicsApp(
 ) {
     bool exited = false;
     std::vector<RUNNING_GFX_APP>::iterator gfx_app_iter;
-    
-    for( gfx_app_iter = m_running_gfx_apps.begin(); 
-        gfx_app_iter != m_running_gfx_apps.end(); 
+
+    for( gfx_app_iter = m_running_gfx_apps.begin();
+        gfx_app_iter != m_running_gfx_apps.end();
         ++gfx_app_iter
     ) {
-         if ((slot >= 0) && ((*gfx_app_iter).slot != slot)) continue;
+        if ((slot >= 0) && ((*gfx_app_iter).slot != slot)) continue;
 
 #ifdef _WIN32
         unsigned long exit_code;
@@ -1582,7 +1614,7 @@ RUNNING_GFX_APP* CMainDocument::GetRunningGraphicsApp(
             ) {
                 return &(*gfx_app_iter);
             }
-    
+
             // Graphics app is still running but the slot now has a different task
             KillGraphicsApp((*gfx_app_iter).pid);
         }
@@ -1605,26 +1637,26 @@ void CMainDocument::KillInactiveGraphicsApps() {
     bool bStillRunning;
 
     if (m_running_gfx_apps.size() <= 0) return;
-    
-    // If none of the Tasks displays are visible, we need to update 
+
+    // If none of the Tasks displays are visible, we need to update
     // the results vector.  This call does nothing if recently updated
     // by a call from CViewWork or CViewTabPage.
     CachedResultsStatusUpdate();
-    
+
     gfx_app_iter = m_running_gfx_apps.begin();
     while (gfx_app_iter != m_running_gfx_apps.end()) {
         bStillRunning = false;
-        
+
         for (i=0; i<results.results.size(); i++) {
             if ((results.results.at(i))->state != RESULT_FILES_DOWNLOADED) continue;
             if (!(results.results.at(i))->active_task) continue;
             if ((results.results.at(i))->scheduler_state != CPU_SCHED_SCHEDULED) continue;
             if ((results.results.at(i))->name != (*gfx_app_iter).name) continue;
-            if ((results.results.at(i))->project_url != (*gfx_app_iter).project_url) continue;    
+            if ((results.results.at(i))->project_url != (*gfx_app_iter).project_url) continue;
             bStillRunning =  true;
             break;
         }
-        
+
         if (!bStillRunning) {
             KillGraphicsApp((*gfx_app_iter).pid);
             gfx_app_iter = m_running_gfx_apps.erase(gfx_app_iter);
@@ -1643,7 +1675,7 @@ void CMainDocument::KillAllRunningGraphicsApps()
 
     n = m_running_gfx_apps.size();
     for (i=0; i<n; i++) {
-        gfx_app_iter = m_running_gfx_apps.begin(); 
+        gfx_app_iter = m_running_gfx_apps.begin();
         KillGraphicsApp((*gfx_app_iter).pid);
         (*gfx_app_iter).name.clear();
         (*gfx_app_iter).project_url.clear();
@@ -1662,7 +1694,7 @@ void CMainDocument::KillGraphicsApp(int pid) {
     char currentDir[1024];
     char thePIDbuf[20];
     int id, iRetVal;
-    
+
 
     if (g_use_sandbox) {
         snprintf(thePIDbuf, sizeof(thePIDbuf), "%d", pid);
@@ -1672,7 +1704,7 @@ void CMainDocument::KillGraphicsApp(int pid) {
         argv[3] = "-KILL";
         argv[4] = thePIDbuf;
         argv[5] = 0;
-    
+
         iRetVal = run_program(
             getcwd(currentDir, sizeof(currentDir)),
             "./switcher/switcher",
@@ -1689,7 +1721,7 @@ void CMainDocument::KillGraphicsApp(int pid) {
 
 int CMainDocument::WorkShowGraphics(RESULT* rp) {
     int iRetVal = 0;
-    
+
     if (strlen(rp->web_graphics_url)) {
         wxString url(rp->web_graphics_url, wxConvUTF8);
         wxLaunchDefaultBrowser(url);
@@ -1710,7 +1742,7 @@ int CMainDocument::WorkShowGraphics(RESULT* rp) {
         p = strrchr((char*)rp->slot_path, '/');
         if (!p) return ERR_INVALID_PARAM;
         slot = atoi(p+1);
-        
+
         // See if we are already running the graphics application for this task
         previous_gfx_app = GetRunningGraphicsApp(rp, slot);
 
@@ -1719,37 +1751,34 @@ int CMainDocument::WorkShowGraphics(RESULT* rp) {
 
         if (previous_gfx_app) {
 #ifdef __WXMAC__
-        ProcessSerialNumber gfx_app_psn;
             // If this graphics app is already running,
             // just bring it to the front
             //
-            if (!GetProcessForPID(previous_gfx_app->pid, &gfx_app_psn)) {
-                SetFrontProcess(&gfx_app_psn);
-            }
+            BringAppWithPidToFront(previous_gfx_app->pid);
 #endif
             // If graphics app is already running, don't launch a second instance
             //
             return 0;
         }
         argv[0] = "switcher";
-        // For unknown reasons on Macs, the graphics application 
-        // exits with "RegisterProcess failed (error = -50)" unless 
+        // For unknown reasons on Macs, the graphics application
+        // exits with "RegisterProcess failed (error = -50)" unless
         // we pass its full path twice in the argument list to execv.
         //
         argv[1] = (char *)rp->graphics_exec_path;
         argv[2] = (char *)rp->graphics_exec_path;
         argv[3] = 0;
-    
-         if (g_use_sandbox) {
+
+        if (g_use_sandbox) {
             iRetVal = run_program(
                 rp->slot_path,
-               "../../switcher/switcher",
+                "../../switcher/switcher",
                 3,
                 argv,
                 0,
                 id
             );
-        } else {        
+        } else {
             iRetVal = run_program(
                 rp->slot_path,
                 rp->graphics_exec_path,
@@ -1766,7 +1795,7 @@ int CMainDocument::WorkShowGraphics(RESULT* rp) {
         //
         if (previous_gfx_app) return 0;
         argv[0] = 0;
-        
+
         iRetVal = run_program(
             rp->slot_path,
             rp->graphics_exec_path,
@@ -1790,7 +1819,7 @@ int CMainDocument::WorkShowGraphics(RESULT* rp) {
 
 int CMainDocument::WorkShowVMConsole(RESULT* res) {
     int iRetVal = 0;
-    
+
     if (strlen(res->remote_desktop_addr)) {
         wxString strConnection(res->remote_desktop_addr, wxConvUTF8);
         wxString strCommand;
@@ -1802,32 +1831,31 @@ int CMainDocument::WorkShowVMConsole(RESULT* res) {
         strCommand = wxT("rdesktop-vrdp ") + strConnection;
         wxExecute(strCommand);
 #elif defined(__WXMAC__)
-        FSRef theFSRef;
         OSStatus status = noErr;
+        char pathToCoRD[MAXPATHLEN];
 
-        // I have found no reliable way to pass the IP address and port to Microsoft's 
-        // Remote Desktop Connection application for the Mac, so I'm using CoRD.  
+        // I have found no reliable way to pass the IP address and port to Microsoft's
+        // Remote Desktop Connection application for the Mac, so I'm using CoRD.
         // Unfortunately, CoRD does not seem as reliable as I would like either.
         //
         // First try to find the CoRD application by Bundle ID and Creator Code
-        status = LSFindApplicationForInfo('RDC#', CFSTR("net.sf.cord"),   
-                                            NULL, &theFSRef, NULL);
+        status = GetPathToAppFromID('RDC#', CFSTR("net.sf.cord"), pathToCoRD, MAXPATHLEN);
         if (status != noErr) {
             CBOINCBaseFrame* pFrame = wxGetApp().GetFrame();
             if (pFrame) {
                 pFrame->ShowAlert(
-                    _("Missing application"), 
+                    _("Missing application"),
                     _("Please download and install the CoRD application from http://cord.sourceforge.net"),
                     wxOK | wxICON_INFORMATION,
                     false
                 );
-        } 
-        return ERR_FILE_MISSING;
-    }
+            }
+            return ERR_FILE_MISSING;
+        }
 
-    strCommand = wxT("osascript -e 'tell application \"CoRD\"' -e 'activate' -e 'open location \"rdp://") + strConnection + wxT("\"' -e 'end tell'");
-    strCommand.Replace(wxT("localhost"), wxT("127.0.0.1"));
-    system(strCommand.char_str());
+        strCommand = wxT("osascript -e 'tell application \"CoRD\"' -e 'activate' -e 'open location \"rdp://") + strConnection + wxT("\"' -e 'end tell'");
+        strCommand.Replace(wxT("localhost"), wxT("127.0.0.1"));
+        system(strCommand.char_str());
 #endif
     }
 
@@ -1851,30 +1879,30 @@ int CMainDocument::WorkAbort(char* url, char* name) {
 
 // Call this only when notice buffer is stable
 // Note: This must not call any rpcs.
-// This is now called after each get_notices RPC from 
+// This is now called after each get_notices RPC from
 //   CMainDocument::HandleCompletedRPC() .
 int CMainDocument::CachedNoticeUpdate() {
     static bool in_this_func = false;
 
     if (in_this_func) return 0;
     in_this_func = true;
-    
+
     if (IsConnected()) {
         // Can't look up previous last read message until we know machine name
         if (!strlen(state.host_info.domain_name)) {
             goto done;
         }
-        
+
         // rpc.get_notices is now called from RunPeriodicRPCs()
         if (m_iGet_notices_rpc_result) {
             wxLogTrace(wxT("Function Status"), wxT("CMainDocument::CachedNoticeUpdate - Get Notices Failed '%d'"), m_iGet_notices_rpc_result);
             m_pNetworkConnection->SetStateDisconnected();
             goto done;
         }
-        
+
         if (notices.notices.size() > 0) {
             m_iNoticeSequenceNumber = notices.notices[0]->seqno;
-            
+
             if (m_iLastReadNoticeSequenceNumber < 0) {
                 m_iLastReadNoticeSequenceNumber = 0;    // Do this only once
                 RestoreUnreadNoticeInfo();
@@ -1889,7 +1917,7 @@ done:
 
 
 void CMainDocument::SaveUnreadNoticeInfo() {
-    static double   dLastSavedArrivalTime = 0.0;       
+    static double   dLastSavedArrivalTime = 0.0;
 
     if (dLastSavedArrivalTime != m_dLastReadNoticeArrivalTime) {
         wxString        strBaseConfigLocation = wxString(wxT("/Notices/"));
@@ -1898,7 +1926,7 @@ void CMainDocument::SaveUnreadNoticeInfo() {
         wxString        strArrivalTime = wxEmptyString;
 
         pConfig->SetPath(strBaseConfigLocation + strDomainName);
-        // wxConfigBase::Write(const wxString& key, double value) has 
+        // wxConfigBase::Write(const wxString& key, double value) has
         // insufficient precision so write a wxString.
         strArrivalTime.Printf(wxT("%f"), m_dLastReadNoticeArrivalTime);
         pConfig->Write(wxT("lastReadNoticeTime"), strArrivalTime);
@@ -1919,8 +1947,8 @@ void CMainDocument::RestoreUnreadNoticeInfo() {
 
     if (pConfig->Read(wxT("LastReadNoticeTime"), &strArrivalTime)) {
         strArrivalTime.ToDouble(&dLastReadNoticeTime);
-        // To avoid problems caused by rounding in save & restore operation, test in 
-        // reverse order (oldest first) and for arrival time <= dLastReadNoticeTime 
+        // To avoid problems caused by rounding in save & restore operation, test in
+        // reverse order (oldest first) and for arrival time <= dLastReadNoticeTime
         for (i=n-1; i>=0; --i) {
             if (notices.notices[i]->arrival_time <= dLastReadNoticeTime) {
                 m_iLastReadNoticeSequenceNumber = notices.notices[i]->seqno;
@@ -1949,14 +1977,14 @@ NOTICE* CMainDocument::notice(unsigned int i) {
 int CMainDocument::GetNoticeCount() {
     int iCount = -1;
 
-    // CachedNoticeUpdate() is now called from CMainDocument::OnRPCComplete() 
+    // CachedNoticeUpdate() is now called from CMainDocument::OnRPCComplete()
     // only after a get_notices RPC completes so notices buffer is stable.
     CachedStateUpdate();
 
     if (notices.received) {
         iCount = (int)notices.notices.size();
     }
-    
+
     return iCount;
 }
 
@@ -1964,11 +1992,11 @@ int CMainDocument::GetNoticeCount() {
 int CMainDocument::GetUnreadNoticeCount() {
     int iCount = 0;
     if (!notices.notices.empty()) {
-        for (unsigned int i = 0; i < notices.notices.size(); i++) { 
-            if (notices.notices[i]->arrival_time > m_dLastReadNoticeArrivalTime) { 
-                iCount++; 
-            } 
-        } 
+        for (unsigned int i = 0; i < notices.notices.size(); i++) {
+            if (notices.notices[i]->arrival_time > m_dLastReadNoticeArrivalTime) {
+                iCount++;
+            }
+        }
     }
     return iCount;
 }
@@ -2034,7 +2062,7 @@ void localize(wxString& strMessage) {
 
 // Call this only when message buffer is stable
 // Note: This must not call any rpcs.
-// This is now called after each get_messages RPC from 
+// This is now called after each get_messages RPC from
 //   CMainDocument::HandleCompletedRPC() .
 //
 int CMainDocument::CachedMessageUpdate() {
@@ -2096,14 +2124,14 @@ MESSAGE* CMainDocument::message(unsigned int i) {
 int CMainDocument::GetMessageCount() {
     int iCount = -1;
 
-    // CachedMessageUpdate() is now called from CMainDocument::OnRPCComplete() 
+    // CachedMessageUpdate() is now called from CMainDocument::OnRPCComplete()
     // only after a get_messages RPC completes so messages buffer is stable.
     CachedStateUpdate();
 
     if (!messages.messages.empty()) {
         iCount = (int)messages.messages.size();
     }
-    
+
     return iCount;
 }
 
@@ -2126,13 +2154,13 @@ int CMainDocument::CachedFileTransfersUpdate() {
     if (ts.GetSeconds() >= (2* FILETRANSFERSRPC_INTERVAL)) immediate = true;
 #endif
     if (m_dtFileTransfersTimestamp.IsEqualTo(wxDateTime((time_t)0))) immediate = true;
-    
+
     if (immediate) {
         m_dtFileTransfersTimestamp = wxDateTime::Now();
         m_iGet_file_transfers_rpc_result = rpc.get_file_transfers(ft);
     }
- 
-     if (m_iGet_file_transfers_rpc_result) {
+
+    if (m_iGet_file_transfers_rpc_result) {
         wxLogTrace(wxT("Function Status"), wxT("CMainDocument::CachedFileTransfersUpdate - Get File Transfers Failed '%d'"), m_iGet_file_transfers_rpc_result);
         ForceCacheUpdate();
     }
@@ -2249,20 +2277,20 @@ int CMainDocument::CachedDiskUsageUpdate() {
     if (!IsConnected()) return -1;
 
     // don't get disk usage more than once per minute
-            // unless we just connected to a client
+    // unless we just connected to a client
     //
 #if USE_CACHE_TIMEOUTS
     wxTimeSpan ts(wxDateTime::Now() - m_dtDiskUsageTimestamp);
     if (ts.GetSeconds() >= (2 * DISKUSAGERPC_INTERVAL)) immediate = true;
-#endif    
+#endif
     if (disk_usage.projects.empty()) immediate = true;
     if (m_dtDiskUsageTimestamp.IsEqualTo(wxDateTime((time_t)0))) immediate = true;
-    
+
     if (immediate) {
         m_dtDiskUsageTimestamp = wxDateTime::Now();
         m_iGet_dsk_usage_rpc_result = rpc.get_disk_usage(disk_usage);
     }
-    
+
     if (m_iGet_dsk_usage_rpc_result) {
         wxLogTrace(wxT("Function Status"), wxT("Get Disk Usage Failed '%d'"), m_iGet_dsk_usage_rpc_result);
         ForceCacheUpdate();
@@ -2298,7 +2326,7 @@ int CMainDocument::CachedStatisticsStatusUpdate() {
 #endif
     if (statistics_status.projects.empty()) immediate = true;
     if (m_dtStatisticsStatusTimestamp.IsEqualTo(wxDateTime((time_t)0))) immediate = true;
-    
+
     if (immediate) {
         m_dtStatisticsStatusTimestamp = wxDateTime::Now();
         m_dtStatisticsStatusTimestamp = rpc.get_statistics(statistics_status);
@@ -2345,7 +2373,6 @@ int CMainDocument::GetStatisticsCount() {
 
 int CMainDocument::GetProxyConfiguration() {
     int     iRetVal = 0;
-    wxString    strEmpty = wxEmptyString;
 
     iRetVal = rpc.get_proxy_settings(proxy_info);
     if (iRetVal) {
@@ -2421,11 +2448,11 @@ int CMainDocument::GetSimpleGUIWorkCount() {
     CachedSimpleGUIUpdate();
     CachedStateUpdate();
 
-	for(i=0; i<results.results.size(); i++) {
-		if (results.results[i]->active_task) {
-			iCount++;
-		}
-	}
+    for(i=0; i<results.results.size(); i++) {
+        if (results.results[i]->active_task) {
+            iCount++;
+        }
+    }
     return iCount;
 }
 
@@ -2448,7 +2475,7 @@ wxString suspend_reason_wxstring(int reason) {
 }
 
 bool uses_gpu(RESULT* r) {
-	// kludge.  But r->avp isn't populated.
+    // kludge.  But r->avp isn't populated.
     return (strstr(r->resources, "GPU") != NULL);
 }
 
@@ -2457,7 +2484,7 @@ wxString result_description(RESULT* result, bool show_resources) {
     PROJECT* project;
     CC_STATUS       status;
     int             retval;
-	wxString strBuffer= wxEmptyString;
+    wxString strBuffer= wxEmptyString;
 
     strBuffer.Clear();
     retval = doc->GetCoreClientStatus(status);
@@ -2470,10 +2497,10 @@ wxString result_description(RESULT* result, bool show_resources) {
     }
 
     project = doc->state.lookup_project(result->project_url);
-	int throttled = status.task_suspend_reason & SUSPEND_REASON_CPU_THROTTLE;
+    int throttled = status.task_suspend_reason & SUSPEND_REASON_CPU_THROTTLE;
     switch(result->state) {
     case RESULT_NEW:
-        strBuffer += _("New"); 
+        strBuffer += _("New");
         break;
     case RESULT_FILES_DOWNLOADING:
         if (result->ready_to_report) {
@@ -2626,35 +2653,35 @@ static double XDPIScaleFactor = 0.0;
 static double YDPIScaleFactor = 0.0;
 
 void GetDPIScaling() {
-	XDPIScaleFactor = 1.0;
-	YDPIScaleFactor = 1.0;
-	// SetProcessDPIAware() requires Windows Vista or later
-	HMODULE hUser32 = LoadLibrary(_T("user32.dll"));
-	typedef BOOL (*SetProcessDPIAwareFunc)();
-	SetProcessDPIAwareFunc setDPIAware = (SetProcessDPIAwareFunc)GetProcAddress(hUser32, "SetProcessDPIAware");
-	if (setDPIAware) {
-		setDPIAware();
-		HWND hWnd = GetForegroundWindow();
-		HDC hdc = GetDC(hWnd);
-		XDPIScaleFactor = GetDeviceCaps(hdc, LOGPIXELSX) / 96.0f;
-		YDPIScaleFactor = GetDeviceCaps(hdc, LOGPIXELSY) / 96.0f;
-		ReleaseDC(hWnd, hdc);
-	}
-	FreeLibrary(hUser32);
+    XDPIScaleFactor = 1.0;
+    YDPIScaleFactor = 1.0;
+    // SetProcessDPIAware() requires Windows Vista or later
+    HMODULE hUser32 = LoadLibrary(_T("user32.dll"));
+    typedef BOOL (*SetProcessDPIAwareFunc)();
+    SetProcessDPIAwareFunc setDPIAware = (SetProcessDPIAwareFunc)GetProcAddress(hUser32, "SetProcessDPIAware");
+    if (setDPIAware) {
+        setDPIAware();
+        HWND hWnd = GetForegroundWindow();
+        HDC hdc = GetDC(hWnd);
+        XDPIScaleFactor = GetDeviceCaps(hdc, LOGPIXELSX) / 96.0f;
+        YDPIScaleFactor = GetDeviceCaps(hdc, LOGPIXELSY) / 96.0f;
+        ReleaseDC(hWnd, hdc);
+    }
+    FreeLibrary(hUser32);
 }
 
 double GetXDPIScaling() {
-	if (XDPIScaleFactor == 0.0) {
-		GetDPIScaling();
-	}
-	return XDPIScaleFactor;
+    if (XDPIScaleFactor == 0.0) {
+        GetDPIScaling();
+    }
+    return XDPIScaleFactor;
 }
 
 double GetYDPIScaling() {
-	if (YDPIScaleFactor == 0.0) {
-		GetDPIScaling();
-	}
-	return YDPIScaleFactor;
+    if (YDPIScaleFactor == 0.0) {
+        GetDPIScaling();
+    }
+    return YDPIScaleFactor;
 }
 #endif
 
@@ -2663,8 +2690,8 @@ wxBitmap GetScaledBitmapFromXPMData(const char** XPMData) {
 #ifdef __WXMSW__
     if ((GetXDPIScaling() > 1.05) || (GetYDPIScaling() > 1.05)) {
         wxImage img = wxImage(XPMData);
-        img.Rescale((int) (img.GetWidth()*GetXDPIScaling()), 
-                    (int) (img.GetHeight()*GetYDPIScaling()), 
+        img.Rescale((int) (img.GetWidth()*GetXDPIScaling()),
+                    (int) (img.GetHeight()*GetYDPIScaling()),
                     wxIMAGE_QUALITY_BILINEAR
                 );
         wxBitmap *bm = new wxBitmap(img);
@@ -2687,4 +2714,5 @@ wxString FormatTime(double secs) {
 
 wxString format_number(double x, int nprec) {
     return wxNumberFormatter::ToString(x, nprec);
+
 }
diff --git a/clientgui/MainDocument.h b/clientgui/MainDocument.h
index 90c10b5..1a3efc8 100644
--- a/clientgui/MainDocument.h
+++ b/clientgui/MainDocument.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _MAINDOCUMENT_H_
-#define _MAINDOCUMENT_H_
+#ifndef BOINC_MAINDOCUMENT_H
+#define BOINC_MAINDOCUMENT_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "MainDocument.cpp"
@@ -167,6 +167,8 @@ public:
 
     bool                        IsUserAuthorized();
 
+    void                        CheckForVersionUpdate(bool showMessage = false);
+
     CNetworkConnection*         m_pNetworkConnection;
     CBOINCClientManager*        m_pClientManager;
     AsyncRPC                    rpc;
@@ -435,4 +437,3 @@ wxString format_number(double x, int nprec);
 #endif
 
 #endif
-
diff --git a/clientgui/Makefile.am b/clientgui/Makefile.am
index 10802c4..bc1a45c 100644
--- a/clientgui/Makefile.am
+++ b/clientgui/Makefile.am
@@ -102,7 +102,7 @@ EXTRA_DIST = *.h \
     ../lib/error_numbers.h \
     locale
 
-boincmgr_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) $(SQLITE3_CPPFLAGS) $(LIBNOTIFY_CFLAGS) $(CLIENTGUIFLAGS) $(GTK_CLFAGS)
+boincmgr_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) $(SQLITE3_CPPFLAGS) $(LIBNOTIFY_CFLAGS) $(CLIENTGUIFLAGS) $(GTK_CFLAGS)
 boincmgr_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CXXFLAGS) $(SQLITE3_CPPFLAGS) $(LIBNOTIFY_CFLAGS) $(CLIENTGUIFLAGS) $(GTK_CFLAGS)
 boincmgr_LDADD = $(LIBBOINC) $(SQLITE3_LIBS) $(LIBNOTIFY_LIBS) $(CLIENTGUILIBS) $(BOINC_EXTRA_LIBS) $(CLIENTLIBS) $(GTK_LIBS)
 
diff --git a/clientgui/NoInternetConnectionPage.h b/clientgui/NoInternetConnectionPage.h
index cb77c5a..967fd23 100644
--- a/clientgui/NoInternetConnectionPage.h
+++ b/clientgui/NoInternetConnectionPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_NOINTERNETCONNECTIONPAGE_H_
-#define _WIZ_NOINTERNETCONNECTIONPAGE_H_
+#ifndef BOINC_NOINTERNETCONNECTIONPAGE_H
+#define BOINC_NOINTERNETCONNECTIONPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "NoInternetConnectionPage.cpp"
@@ -77,4 +77,4 @@ public:
 ////@end CErrNoInternetConnectionPage member variables
 };
 
-#endif // _WIZ_NOINTERNETCONNECTIONPAGE_H_
+#endif
diff --git a/clientgui/NotDetectedPage.h b/clientgui/NotDetectedPage.h
index 35329d5..8fd1df8 100644
--- a/clientgui/NotDetectedPage.h
+++ b/clientgui/NotDetectedPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_NOTDETECTEDPAGE_H_
-#define _WIZ_NOTDETECTEDPAGE_H_
+#ifndef BOINC_NOTDETECTEDPAGE_H
+#define BOINC_NOTDETECTEDPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "NotDetectedPage.cpp"
@@ -78,4 +78,3 @@ public:
 };
 
 #endif
-    // _WIZ_NOTDETECTEDPAGE_H_
diff --git a/clientgui/NotFoundPage.h b/clientgui/NotFoundPage.h
index 6765c6c..7c3fe2f 100644
--- a/clientgui/NotFoundPage.h
+++ b/clientgui/NotFoundPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_NOTFOUNDPAGE_H_
-#define _WIZ_NOTFOUNDPAGE_H_
+#ifndef BOINC_NOTFOUNDPAGE_H
+#define BOINC_NOTFOUNDPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "NotFoundPage.cpp"
@@ -78,4 +78,4 @@ public:
 };
 
 
-#endif // _WIZ_NOTFOUNDPAGE_H_
+#endif
diff --git a/clientgui/NoticeListCtrl.cpp b/clientgui/NoticeListCtrl.cpp
index 40903c8..12d7218 100644
--- a/clientgui/NoticeListCtrl.cpp
+++ b/clientgui/NoticeListCtrl.cpp
@@ -236,7 +236,9 @@ void CNoticeListCtrl::SetItemCount(int newCount) {
         m_noticesBody += strBuffer;
     }
     m_noticesBody += wxT("</font></body></html>");
-    m_browser->SetPage(m_noticesBody, wxT("http://"));
+    // baseURL is not needed here (see comments above) and it
+    // must be an empty string for this to work under OS 10.12.4
+    m_browser->SetPage(m_noticesBody, wxEmptyString);
 }
 
 
diff --git a/clientgui/NoticeListCtrl.h b/clientgui/NoticeListCtrl.h
index 04db8aa..4bee9a4 100644
--- a/clientgui/NoticeListCtrl.h
+++ b/clientgui/NoticeListCtrl.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _NOTICELISTCTRL_H_
-#define _NOTICELISTCTRL_H_
+#ifndef BOINC_NOTICELISTCTRL_H
+#define BOINC_NOTICELISTCTRL_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "NoticeListCtrl.cpp"
@@ -62,4 +62,4 @@ private:
     wxString    m_noticesBody;
 };
 
-#endif // _NOTICELISTCTRL_H_
+#endif
diff --git a/clientgui/ProjectInfoPage.h b/clientgui/ProjectInfoPage.h
index 7e08f2d..dcaa71b 100644
--- a/clientgui/ProjectInfoPage.h
+++ b/clientgui/ProjectInfoPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_PROJECTINFOPAGE_H_
-#define _WIZ_PROJECTINFOPAGE_H_
+#ifndef BOINC_PROJECTINFOPAGE_H
+#define BOINC_PROJECTINFOPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ProjectInfoPage.cpp"
@@ -125,4 +125,4 @@ private:
     bool m_bProjectListPopulated;
 };
 
-#endif // _WIZ_PROJECTINFOPAGE_H_
+#endif
diff --git a/clientgui/ProjectProcessingPage.h b/clientgui/ProjectProcessingPage.h
index 3542771..265e028 100644
--- a/clientgui/ProjectProcessingPage.h
+++ b/clientgui/ProjectProcessingPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_PROJECTPROCESSINGPAGE_H_
-#define _WIZ_PROJECTPROCESSINGPAGE_H_
+#ifndef BOINC_PROJECTPROCESSINGPAGE_H
+#define BOINC_PROJECTPROCESSINGPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ProjectProcessingPage.cpp"
@@ -145,4 +145,4 @@ public:
     int m_iCurrentState;
 };
 
-#endif // _WIZ_PROJECTPROCESSINGPAGE_H_
+#endif
diff --git a/clientgui/ProjectPropertiesPage.h b/clientgui/ProjectPropertiesPage.h
index 30db957..d7b5e79 100644
--- a/clientgui/ProjectPropertiesPage.h
+++ b/clientgui/ProjectPropertiesPage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_PROJECTPROPERTIESPAGE_H_
-#define _WIZ_PROJECTPROPERTIESPAGE_H_
+#ifndef BOINC_PROJECTPROPERTIESPAGE_H
+#define BOINC_PROJECTPROPERTIESPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ProjectPropertiesPage.cpp"
@@ -163,4 +163,4 @@ public:
     int m_iCurrentState;
 };
 
-#endif // _WIZ_PROJECTPROPERTIESPAGE_H_
+#endif
diff --git a/clientgui/ProjectWelcomePage.h b/clientgui/ProjectWelcomePage.h
index 2aa24e1..df3f707 100644
--- a/clientgui/ProjectWelcomePage.h
+++ b/clientgui/ProjectWelcomePage.h
@@ -15,8 +15,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_PROJECTWELCOMEPAGE_H_
-#define _WIZ_PROJECTWELCOMEPAGE_H_
+
+#ifndef BOINC_PROJECTWELCOMEPAGE_H
+#define BOINC_PROJECTWELCOMEPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ProjectWelcomePage.cpp"
@@ -92,4 +93,4 @@ public:
 ////@end CProjectWelcomePage member variables
 };
 
-#endif // _WIZ_WELCOMEPAGE_H_
+#endif
diff --git a/clientgui/ProxyInfoPage.h b/clientgui/ProxyInfoPage.h
index 9e483e9..1ad38a4 100644
--- a/clientgui/ProxyInfoPage.h
+++ b/clientgui/ProxyInfoPage.h
@@ -15,8 +15,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_PROXYINFOPAGE_H_
-#define _WIZ_PROXYINFOPAGE_H_
+
+#ifndef BOINC_PROXYINFOPAGE_H
+#define BOINC_PROXYINFOPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ProxyInfoPage.cpp"
@@ -79,4 +80,4 @@ public:
 };
 
 
-#endif // _WIZ_PROXYINFOPAGE_H_
+#endif
diff --git a/clientgui/ProxyPage.h b/clientgui/ProxyPage.h
index c857c0c..6a2396e 100644
--- a/clientgui/ProxyPage.h
+++ b/clientgui/ProxyPage.h
@@ -15,8 +15,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_PROXYPAGE_H_
-#define _WIZ_PROXYPAGE_H_
+
+#ifndef BOINC_PROXYPAGE_H
+#define BOINC_PROXYPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ProxyPage.cpp"
@@ -132,4 +133,4 @@ public:
 ////@end CErrProxyPage member variables
 };
 
-#endif // _WIZ_PROXYPAGE_H_
+#endif
diff --git a/clientgui/SkinManager.h b/clientgui/SkinManager.h
index b2ac54e..905d0e0 100644
--- a/clientgui/SkinManager.h
+++ b/clientgui/SkinManager.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SKINMANAGER_H_
-#define _SKINMANAGER_H_
+#ifndef BOINC_SKINMANAGER_H
+#define BOINC_SKINMANAGER_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "SkinManager.cpp"
@@ -319,5 +319,4 @@ private:
     bool InitializeDelayedValidation();
 };
 
-
 #endif
diff --git a/clientgui/TermsOfUsePage.h b/clientgui/TermsOfUsePage.h
index 1fea9f1..36ae0ab 100644
--- a/clientgui/TermsOfUsePage.h
+++ b/clientgui/TermsOfUsePage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_TERMSOFUSEPAGE_H_
-#define _WIZ_TERMSOFUSEPAGE_H_
+#ifndef BOINC_TERMSOFUSEPAGE_H
+#define BOINC_TERMSOFUSEPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "TermsOfUsePage.cpp"
diff --git a/clientgui/UnavailablePage.h b/clientgui/UnavailablePage.h
index bd7f621..768f215 100644
--- a/clientgui/UnavailablePage.h
+++ b/clientgui/UnavailablePage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_UNAVAILABLEPAGE_H_
-#define _WIZ_UNAVAILABLEPAGE_H_
+#ifndef BOINC_UNAVAILABLEPAGE_H
+#define BOINC_UNAVAILABLEPAGE_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "UnavailablePage.cpp"
@@ -78,4 +78,3 @@ public:
 };
 
 #endif
-    // _DLGABOUT_H_
diff --git a/clientgui/ValidateAccountKey.h b/clientgui/ValidateAccountKey.h
index 0508515..b0c7562 100644
--- a/clientgui/ValidateAccountKey.h
+++ b/clientgui/ValidateAccountKey.h
@@ -15,16 +15,15 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VALIDATEACCOUNTKEY_H_
-#define _VALIDATEACCOUNTKEY_H_
+#ifndef BOINC_VALIDATEACCOUNTKEY_H
+#define BOINC_VALIDATEACCOUNTKEY_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ValidateAccountKey.cpp"
 #endif
 
 
-class CValidateAccountKey : public wxValidator
-{
+class CValidateAccountKey : public wxValidator {
     DECLARE_DYNAMIC_CLASS( CValidateAccountKey )
 
 public:
@@ -50,6 +49,5 @@ protected:
 
 };
 
-
 #endif
 
diff --git a/clientgui/ValidateEmailAddress.h b/clientgui/ValidateEmailAddress.h
index a359d72..aea991b 100644
--- a/clientgui/ValidateEmailAddress.h
+++ b/clientgui/ValidateEmailAddress.h
@@ -15,16 +15,15 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VALIDATEEMAILADDRESS_H_
-#define _VALIDATEEMAILADDRESS_H_
+#ifndef BOINC_VALIDATEEMAILADDRESS_H
+#define BOINC_VALIDATEEMAILADDRESS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ValidateEmailAddress.cpp"
 #endif
 
 
-class CValidateEmailAddress : public wxValidator
-{
+class CValidateEmailAddress : public wxValidator {
     DECLARE_DYNAMIC_CLASS( CValidateEmailAddress )
 
 public:
@@ -50,6 +49,5 @@ protected:
 
 };
 
-
 #endif
 
diff --git a/clientgui/ValidateURL.h b/clientgui/ValidateURL.h
index 3e626f1..fd2e2ca 100644
--- a/clientgui/ValidateURL.h
+++ b/clientgui/ValidateURL.h
@@ -15,16 +15,15 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VALIDATEURL_H_
-#define _VALIDATEURL_H_
+#ifndef BOINC_VALIDATEURL_H
+#define BOINC_VALIDATEURL_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ValidateURL.cpp"
 #endif
 
 
-class CValidateURL : public wxValidator
-{
+class CValidateURL : public wxValidator {
     DECLARE_DYNAMIC_CLASS( CValidateURL )
 
 public:
@@ -50,6 +49,5 @@ protected:
 
 };
 
-
 #endif
 
diff --git a/clientgui/ViewMessages.h b/clientgui/ViewMessages.h
index 1299b41..f42b0af 100644
--- a/clientgui/ViewMessages.h
+++ b/clientgui/ViewMessages.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VIEWMESSAGES_H_
-#define _VIEWMESSAGES_H_
+#ifndef BOINC_VIEWMESSAGES_H
+#define BOINC_VIEWMESSAGES_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ViewMessages.cpp"
@@ -87,4 +87,3 @@ protected:
 };
 
 #endif
-
diff --git a/clientgui/ViewNotices.h b/clientgui/ViewNotices.h
index 69a87dc..fe19031 100644
--- a/clientgui/ViewNotices.h
+++ b/clientgui/ViewNotices.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VIEWNOTIFICATIONS_H_
-#define _VIEWNOTIFICATIONS_H_
+#ifndef BOINC_VIEWNOTICES_H
+#define BOINC_VIEWNOTICES_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ViewNotices.cpp"
@@ -58,6 +58,4 @@ protected:
     void                    OnRetryButton( wxCommandEvent& event );
 };
 
-
 #endif
-
diff --git a/clientgui/ViewProjects.h b/clientgui/ViewProjects.h
index 2391b58..18b1042 100644
--- a/clientgui/ViewProjects.h
+++ b/clientgui/ViewProjects.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VIEWPROJECTS_H_
-#define _VIEWPROJECTS_H_
+#ifndef BOINC_VIEWPROJECTS_H
+#define BOINC_VIEWPROJECTS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ViewProjects.cpp"
@@ -119,6 +119,4 @@ protected:
     DECLARE_EVENT_TABLE()
 };
 
-
 #endif
-
diff --git a/clientgui/ViewResources.h b/clientgui/ViewResources.h
index 247ce1b..cb36af7 100644
--- a/clientgui/ViewResources.h
+++ b/clientgui/ViewResources.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VIEWRESOURCES_H_
-#define _VIEWRESOURCES_H_
+#ifndef BOINC_VIEWRESOURCES_H
+#define BOINC_VIEWRESOURCES_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ViewResources.cpp"
@@ -63,6 +63,4 @@ protected:
 	virtual void            OnListRender( wxTimerEvent& event );
 };
 
-
 #endif
-
diff --git a/clientgui/ViewStatistics.h b/clientgui/ViewStatistics.h
index 274f8e8..a82f024 100644
--- a/clientgui/ViewStatistics.h
+++ b/clientgui/ViewStatistics.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VIEWSTATISTICS_H_
-#define _VIEWSTATISTICS_H_
+#ifndef BOINC_VIEWSTATISTICS_H
+#define BOINC_VIEWSTATISTICS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ViewStatistics.cpp"
@@ -248,6 +248,4 @@ protected:
     virtual void            UpdateSelection();
 };
 
-
 #endif
-
diff --git a/clientgui/ViewTransfers.h b/clientgui/ViewTransfers.h
index eff4699..f0fa098 100644
--- a/clientgui/ViewTransfers.h
+++ b/clientgui/ViewTransfers.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VIEWTRANSFERS_H_
-#define _VIEWTRANSFERS_H_
+#ifndef BOINC_VIEWTRANSFERS_H
+#define BOINC_VIEWTRANSFERS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ViewTransfers.cpp"
@@ -108,6 +108,4 @@ protected:
     DECLARE_EVENT_TABLE()
 };
 
-
 #endif
-
diff --git a/clientgui/ViewWork.h b/clientgui/ViewWork.h
index fd26f37..caf3381 100644
--- a/clientgui/ViewWork.h
+++ b/clientgui/ViewWork.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VIEWWORK_H_
-#define _VIEWWORK_H_
+#ifndef BOINC_VIEWWORK_H
+#define BOINC_VIEWWORK_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "ViewWork.cpp"
@@ -118,6 +118,4 @@ protected:
     DECLARE_EVENT_TABLE()
 };
 
-
 #endif
-
diff --git a/clientgui/WizardAttach.cpp b/clientgui/WizardAttach.cpp
index 927ae7b..4fb999f 100644
--- a/clientgui/WizardAttach.cpp
+++ b/clientgui/WizardAttach.cpp
@@ -595,8 +595,8 @@ void CWizardAttach::_ProcessCancelEvent( wxWizardExEvent& event ) {
     );
 
     // Reenable the next and back buttons if they have been disabled
-    GetNextButton()->Enable();
-    GetBackButton()->Enable();
+    GetNextButton()->Enable(HasNextPage(page));
+    GetBackButton()->Enable(HasPrevPage(page));
 
     // Generic rules
     bCancelWithoutNextPage |= (page == m_ErrNotDetectedPage);
diff --git a/clientgui/WizardAttach.h b/clientgui/WizardAttach.h
index 6fbabc3..a07b8d0 100644
--- a/clientgui/WizardAttach.h
+++ b/clientgui/WizardAttach.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 //
-#ifndef _WIZ_ATTACH_H_
-#define _WIZ_ATTACH_H_
+#ifndef BOINC_WIZARDATTACH_H
+#define BOINC_WIZARDATTACH_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "WizardAttach.cpp"
@@ -378,4 +378,4 @@ public:
     wxString            m_strCookieFailureURL;
 };
 
-#endif // _WIZ_ATTACH_H_
+#endif
diff --git a/clientgui/browser.cpp b/clientgui/browser.cpp
index 831bc70..a0bfe84 100644
--- a/clientgui/browser.cpp
+++ b/clientgui/browser.cpp
@@ -800,7 +800,6 @@ bool detect_cookie_ie_supported_uac(std::string& project_url, std::string& name,
     std::string  domainname;
     std::wstring domainname_w;
     std::wstring name_w;
-    std::wstring value_w;
     size_t       uiDelimeterLocation;
 
     if (!ieframelib) {
diff --git a/clientgui/browser.h b/clientgui/browser.h
index 587a589..67caeed 100644
--- a/clientgui/browser.h
+++ b/clientgui/browser.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BROWSER_
-#define _BROWSER_
+#ifndef BOINC_BROWSER_H
+#define BOINC_BROWSER_H
 
 //
 // The BOINC client now supports the ability to lookup a users
@@ -49,7 +49,6 @@ bool detect_cookie_safari(std::string& project_url, std::string& name, std::stri
 
 // Cross-platform browsers
 //
-bool detect_cookie_firefox_2(std::string& project_url, std::string& name, std::string& value);
 bool detect_cookie_firefox_3(std::string& project_url, std::string& name, std::string& value);
 bool detect_cookie_chrome(std::string& project_url, std::string& name, std::string& value);
 
diff --git a/clientgui/build_po b/clientgui/build_po
deleted file mode 100755
index 5fecff5..0000000
--- a/clientgui/build_po
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/sh
-
-xgettext --from-code=UTF-8 --keyword=_ -C -o BOINC-Manager.pot *.cpp msw/*.cpp mac/*.cpp gtk/*.cpp
diff --git a/clientgui/common/wxPieCtrl.cpp b/clientgui/common/wxPieCtrl.cpp
index 7915142..f604fa8 100644
--- a/clientgui/common/wxPieCtrl.cpp
+++ b/clientgui/common/wxPieCtrl.cpp
@@ -61,7 +61,7 @@ wxPieCtrl::wxPieCtrl(wxWindow * parent, wxWindowID id, wxPoint pos,
 	m_LabelFont = *wxSWISS_FONT;
 	m_legendHorBorder = 10;
  	m_LegendVerBorder = 10;
-	m_szTitle = _("Pie Ctrl");
+	m_szTitle = wxT("Pie Ctrl");
 
     m_firstlabelToDraw = 0;
     m_scrollBar = new wxScrollBar(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSB_VERTICAL);
diff --git a/clientgui/sg_BoincSimpleFrame.cpp b/clientgui/sg_BoincSimpleFrame.cpp
old mode 100755
new mode 100644
index 8aafea9..cccf337
--- a/clientgui/sg_BoincSimpleFrame.cpp
+++ b/clientgui/sg_BoincSimpleFrame.cpp
@@ -52,8 +52,7 @@
 
 #ifdef __WXMAC__
 #include "util.h"
-
-static int compareOSVersionTo(int toMajor, int toMinor);
+#include "mac_util.h"
 #endif
 
 // Workaround for Linux refresh problem
@@ -84,6 +83,7 @@ BEGIN_EVENT_TABLE(CSimpleFrame, CBOINCBaseFrame)
     EVT_MENU(ID_HELPBOINCMANAGER, CSimpleFrame::OnHelpBOINC)
     EVT_MENU(ID_HELPBOINCWEBSITE, CSimpleFrame::OnHelpBOINC)
     EVT_MENU(wxID_ABOUT, CSimpleFrame::OnHelpAbout)
+    EVT_MENU(ID_CHECK_VERSION, CSimpleFrame::OnCheckVersion)
 	EVT_MENU(ID_EVENTLOG, CSimpleFrame::OnEventLog)
     EVT_MOVE(CSimpleFrame::OnMove)
 #ifdef __WXMAC__
@@ -259,6 +259,21 @@ CSimpleFrame::CSimpleFrame(wxString title, wxIconBundle* icons, wxPoint position
     menuHelp->AppendSeparator();
 
     strMenuName.Printf(
+        _("Check for new %s version"),
+        pSkinAdvanced->GetApplicationShortName().c_str()
+    );
+    strMenuDescription.Printf(
+        _("Check for new %s version"),
+        pSkinAdvanced->GetApplicationShortName().c_str()
+    );
+    menuHelp->Append(
+        ID_CHECK_VERSION,
+        strMenuName,
+        strMenuDescription
+    );
+    menuHelp->AppendSeparator();
+
+    strMenuName.Printf(
         _("&About %s..."), 
         pSkinAdvanced->GetApplicationName().c_str()
     );
@@ -390,6 +405,7 @@ void CSimpleFrame::OnMenuOpening( wxMenuEvent &event) {
     CMainDocument*     pDoc = wxGetApp().GetDocument();
     wxMenu* menuFile = NULL;
     wxMenu* menuHelp = NULL;
+    wxMenu* menuChangeGUI = NULL;
     
     wxASSERT(pDoc);
     
@@ -398,13 +414,14 @@ void CSimpleFrame::OnMenuOpening( wxMenuEvent &event) {
     
     menu->FindItem(ID_CLOSEWINDOW, &menuFile);
     menu->FindItem(ID_HELPBOINC, &menuHelp);
+    menu->FindItem(ID_CHANGEGUI, &menuChangeGUI);
     size_t numItems = menu->GetMenuItemCount();
     for (size_t pos = 0; pos < numItems; ++pos) {
         wxMenuItem * item = menu->FindItemByPosition(pos);
-        if ((menu == menuFile) || (menu == menuHelp)) {
+        if ((menu == menuFile) || (menu == menuHelp) || (menu == menuChangeGUI)) {
             // Always enable all items in File menu or Help menu:
             // ID_CLOSEWINDOW, wxID_EXIT, ID_HELPBOINC, ID_HELPBOINCMANAGER,
-            // ID_HELPBOINCWEBSITE, wxID_ABOUT
+            // ID_HELPBOINCWEBSITE, wxID_ABOUT, ID_CHANGEGUI
             item->Enable(true);
         } else {
             // Disable other menu items if not connected to client
@@ -609,6 +626,14 @@ void CSimpleFrame::OnHelpAbout(wxCommandEvent& /*event*/) {
     wxLogTrace(wxT("Function Start/End"), wxT("CSimpleFrame::OnHelpAbout - Function End"));
 }
 
+void CSimpleFrame::OnCheckVersion(wxCommandEvent& WXUNUSED(event)) {
+    wxLogTrace(wxT("Function Start/End"), wxT("CSimpleFrame::OnCheckVersion - Function Begin"));
+
+    wxGetApp().GetDocument()->CheckForVersionUpdate(true);
+
+    wxLogTrace(wxT("Function Start/End"), wxT("CSimpleFrame::OnCheckVersion - Function End"));
+}
+
 
 void CSimpleFrame::OnHelp(wxHelpEvent& event) {
     wxLogTrace(wxT("Function Start/End"), wxT("CSimpleFrame::OnHelp - Function Begin"));
@@ -729,9 +754,6 @@ void CSimpleFrame::OnConnect(CFrameEvent& WXUNUSED(event)) {
     CMainDocument*     pDoc = wxGetApp().GetDocument();
     CWizardAttach*     pWizard = NULL;
     wxString strComputer = wxEmptyString;
-    wxString strName = wxEmptyString;
-    wxString strURL = wxEmptyString;
-    wxString strTeamName = wxEmptyString;
     std::string strProjectName;
     std::string strProjectURL;
     std::string strProjectAuthenticator;
@@ -1325,29 +1347,3 @@ void CSimpleGUIPanel::OnEraseBackground(wxEraseEvent& event) {
 #endif
     dc->DrawBitmap(m_bmpBg, 0, 0);
 }
-
-
-#ifdef __WXMAC__
-static int compareOSVersionTo(int toMajor, int toMinor) {
-    SInt32 major, minor;
-    OSStatus err = noErr;
-    
-    err = Gestalt(gestaltSystemVersionMajor, &major);
-    if (err != noErr) {
-        fprintf(stderr, "Gestalt(gestaltSystemVersionMajor) returned error %ld\n", err);
-        fflush(stderr);
-        return -1;  // gestaltSystemVersionMajor selector was not available before OS 10.4
-    }
-    if (major < toMajor) return -1;
-    if (major > toMajor) return 1;
-    err = Gestalt(gestaltSystemVersionMinor, &minor);
-    if (err != noErr) {
-        fprintf(stderr, "Gestalt(gestaltSystemVersionMinor) returned error %ld\n", err);
-        fflush(stderr);
-        return -1;  // gestaltSystemVersionMajor selector was not available before OS 10.4
-    }
-    if (minor < toMinor) return -1;
-    if (minor > toMinor) return 1;
-    return 0;
-}
-#endif
diff --git a/clientgui/sg_BoincSimpleFrame.h b/clientgui/sg_BoincSimpleFrame.h
index cf08e4d..cac8a28 100644
--- a/clientgui/sg_BoincSimpleFrame.h
+++ b/clientgui/sg_BoincSimpleFrame.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _BOINCSIMPLEFRAME_H_
-#define _BOINCSIMPLEFRAME_H_
+#ifndef BOINC_SG_BOINCSIMPLEFRAME_H
+#define BOINC_SG_BOINCSIMPLEFRAME_H
 
 #include "BOINCBaseFrame.h"
 
@@ -114,6 +114,7 @@ public:
     void OnHelp( wxHelpEvent& event );
     void OnHelpBOINC( wxCommandEvent& event );
     void OnHelpAbout( wxCommandEvent& event );
+    void OnCheckVersion( wxCommandEvent& event );
 
     void OnProjectsAttachToProject(wxCommandEvent& event);
 
@@ -148,6 +149,4 @@ private:
     DECLARE_EVENT_TABLE()
 };
 
-#endif  // _BOINCSIMPLEFRAME_H_
-
-
+#endif
diff --git a/clientgui/sg_CustomControls.h b/clientgui/sg_CustomControls.h
index 6db1a98..e2c7a3c 100644
--- a/clientgui/sg_CustomControls.h
+++ b/clientgui/sg_CustomControls.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _CUSTOMCONTROLS_H_
-#define _CUSTOMCONTROLS_H_ 
+#ifndef BOINC_SG_CUSTOMCONTROLS_H
+#define BOINC_SG_CUSTOMCONTROLS_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "sg_CustomControls.cpp"
@@ -324,6 +324,4 @@ private:
     wxCursor m_HandCursor;
 }; 
 
-
 #endif 
-
diff --git a/clientgui/sg_DlgMessages.h b/clientgui/sg_DlgMessages.h
index 9bad892..6c914c4 100644
--- a/clientgui/sg_DlgMessages.h
+++ b/clientgui/sg_DlgMessages.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _DLG_MESSAGES_H_ 
-#define _DLG_MESSAGES_H_ 
+#ifndef BOINC_SG_DLG_MESSAGES_H
+#define BOINC_SG_DLG_MESSAGES_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "sg_DlgMessages.cpp"
@@ -165,5 +165,4 @@ private:
 ////@end CDlgMessages member variables
 };
 
-
-#endif  // end CDlgMessages
+#endif
diff --git a/clientgui/sg_DlgPreferences.h b/clientgui/sg_DlgPreferences.h
index 5027d62..335cbc8 100644
--- a/clientgui/sg_DlgPreferences.h
+++ b/clientgui/sg_DlgPreferences.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _DLG_PREFERENCES_H_ 
-#define _DLG_PREFERENCES_H_ 
+#ifndef BOINC_SG_DLG_PREFERENCES_H
+#define BOINC_SG_DLG_PREFERENCES_H
 
 #if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "sg_DlgPreferences.cpp"
@@ -223,6 +223,4 @@ private:
     CPanelPreferences* m_pBackgroundPanel;
 };
 
-
-
-#endif  // end CDlgPreferences
+#endif
diff --git a/clientgui/sg_PanelBase.h b/clientgui/sg_PanelBase.h
index db1ae6b..e06dbd9 100644
--- a/clientgui/sg_PanelBase.h
+++ b/clientgui/sg_PanelBase.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __sg_PanelBase__
-#define __sg_PanelBase__
+#ifndef BOINC_SG_PANELBASE_H
+#define BOINC_SG_PANELBASE_H
 
 #include "sg_CustomControls.h" 
 #include "sg_BoincSimpleFrame.h"
@@ -75,4 +75,4 @@ class CSimplePanelBase : public wxPanel
         bool                        m_GotBGBitMap;
 };
 
-#endif //__sg_PanelBase__
+#endif
diff --git a/clientgui/sg_ProjectCommandPopup.h b/clientgui/sg_ProjectCommandPopup.h
index aa25de2..79147a7 100644
--- a/clientgui/sg_ProjectCommandPopup.h
+++ b/clientgui/sg_ProjectCommandPopup.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __sg_ProjectCommandPopup__
-#define __sg_ProjectCommandPopup__
+#ifndef BOINC_SG_PROJECTCOMMANDPOPUP_H
+#define BOINC_SG_PROJECTCOMMANDPOPUP_H
 
 #include "sg_CustomControls.h"
 
@@ -61,4 +61,4 @@ class CSimpleProjectCommandPopupButton : public CTransparentButton
         wxMenuItem*                 m_ShowPropertiesMenuItem;
 };
 
-#endif // __sg_ProjectCommandPopup__
+#endif
diff --git a/clientgui/sg_ProjectPanel.h b/clientgui/sg_ProjectPanel.h
index 251dae8..8a40144 100644
--- a/clientgui/sg_ProjectPanel.h
+++ b/clientgui/sg_ProjectPanel.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __sg_ProjectPanel__
-#define __sg_ProjectPanel__
+#ifndef BOINC_SG_PROJECTPANEL_H
+#define BOINC_SG_PROJECTPANEL_H
 
 #include "sg_CustomControls.h"
 #include "sg_PanelBase.h"
@@ -77,4 +77,4 @@ class CSimpleProjectPanel : public CSimplePanelBase
         double                              m_fDisplayedCredit;
 };
 
-#endif //__sg_ProjectPanel__
+#endif
diff --git a/clientgui/sg_ProjectWebSitesPopup.cpp b/clientgui/sg_ProjectWebSitesPopup.cpp
index 5b22e11..a6943af 100644
--- a/clientgui/sg_ProjectWebSitesPopup.cpp
+++ b/clientgui/sg_ProjectWebSitesPopup.cpp
@@ -127,7 +127,6 @@ void CSimpleProjectWebSitesPopupButton::OnMenuLinkClicked(wxCommandEvent& event)
      } else{
          int menuId = menuIDevt - WEBSITE_URL_MENU_ID;
          PROJECT* project = pDoc->state.lookup_project(ctrl_url);
-         project->gui_urls[menuId].name.c_str();
      
          wxLaunchDefaultBrowser(wxString(project->gui_urls[menuId].url.c_str(),wxConvUTF8));
 	 }
diff --git a/clientgui/sg_ProjectWebSitesPopup.h b/clientgui/sg_ProjectWebSitesPopup.h
index 367f6bd..992295c 100644
--- a/clientgui/sg_ProjectWebSitesPopup.h
+++ b/clientgui/sg_ProjectWebSitesPopup.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __sg_ProjectWebsitesPopup__
-#define __sg_ProjectWebsitesPopup__
+#ifndef BOINC_SG_PROJECTWEBSITESPOPUP_H
+#define BOINC_SG_PROJECTWEBSITESPOPUP_H
 
 #include "sg_CustomControls.h"
 
@@ -51,4 +51,4 @@ class CSimpleProjectWebSitesPopupButton : public CTransparentButton
         wxMenu*                     m_ProjectWebSitesPopUpMenu;
 };
 
-#endif // __sg_ProjectWebsitesPopup__
+#endif
diff --git a/clientgui/sg_TaskCommandPopup.h b/clientgui/sg_TaskCommandPopup.h
index 650d055..0d8396f 100644
--- a/clientgui/sg_TaskCommandPopup.h
+++ b/clientgui/sg_TaskCommandPopup.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef __sg_TaskCommandPopup__
-#define __sg_TaskCommandPopup__
+#ifndef BOINC_SG_TASKCOMMANDPOPUP_H
+#define BOINC_SG_TASKCOMMANDPOPUP_H
 
 #include "sg_CustomControls.h"
 
@@ -59,4 +59,4 @@ class CSimpleTaskPopupButton : public CTransparentButton
         bool                        m_TaskSuspendedViaGUI;
 };
 
-#endif // __sg_TaskCommandPopup__
+#endif
diff --git a/clientgui/sg_TaskPanel.cpp b/clientgui/sg_TaskPanel.cpp
index 2bb7c19..bb31f8e 100644
--- a/clientgui/sg_TaskPanel.cpp
+++ b/clientgui/sg_TaskPanel.cpp
@@ -791,7 +791,6 @@ void CSimpleTaskPanel::GetApplicationAndProjectNames(RESULT* result, wxString* a
     RESULT*        state_result = NULL;
     wxString       strAppBuffer = wxEmptyString;
     wxString       strGPUBuffer = wxEmptyString;
-    wxString pct_done_str = wxEmptyString;
 
     wxASSERT(pDoc);
     wxASSERT(wxDynamicCast(pDoc, CMainDocument));
diff --git a/clientgui/sg_TaskPanel.h b/clientgui/sg_TaskPanel.h
index a9db869..cb6e122 100644
--- a/clientgui/sg_TaskPanel.h
+++ b/clientgui/sg_TaskPanel.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __sg_TaskPanel__
-#define __sg_TaskPanel__
+#ifndef BOINC_SG_TASKPANEL_H
+#define BOINC_SG_TASKPANEL_H
 
 // Comment???
 //
@@ -165,4 +165,4 @@ class CSimpleTaskPanel : public CSimplePanelBase
         wxString                    m_sNoProjectsString;
 };
 
-#endif //__sg_TaskPanel__
+#endif
diff --git a/clientgui/stdwx.h b/clientgui/stdwx.h
index 2c0bb5a..eadd65e 100644
--- a/clientgui/stdwx.h
+++ b/clientgui/stdwx.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __STDWX_H__
-#define __STDWX_H__
+#ifndef BOINC_STDWX_H
+#define BOINC_STDWX_H
 
 
 #ifdef _WIN32
@@ -267,5 +267,4 @@
 
 #endif //__WIN32__ && __VISUALC && !__AFX_H__
 
-#endif //__STDWX_H__
-
+#endif
diff --git a/clientgui/wizardex.cpp b/clientgui/wizardex.cpp
index c1bdc4a..0b3d8a9 100644
--- a/clientgui/wizardex.cpp
+++ b/clientgui/wizardex.cpp
@@ -482,9 +482,6 @@ bool wxWizardEx::ShowPage(wxWizardPageEx *page, bool goingForward)
     // button or not (initially the label is "Next")
     bool btnLabelWasNext = true;
 
-    // remember the old bitmap (if any) to compare with the new one later
-    wxBitmap bmpPrev;
-
     // check for previous page
     if ( m_page )
     {
diff --git a/clientgui/wizardex.h b/clientgui/wizardex.h
index 713bede..cdf1dd1 100644
--- a/clientgui/wizardex.h
+++ b/clientgui/wizardex.h
@@ -14,8 +14,8 @@
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_WIZARDEX_H_
-#define _WX_WIZARDEX_H_
+#ifndef BOINC_WIZARDEX_H
+#define BOINC_WIZARDEX_H
 
 // ----------------------------------------------------------------------------
 // headers and other simple declarations
@@ -334,4 +334,4 @@ typedef void (wxEvtHandler::*wxWizardExEventFunction)(wxWizardExEvent&);
 #define EVT_WIZARDEX_HELP(id, fn) wx__DECLARE_WIZARDEXEVT(HELP, id, fn)
 
 
-#endif // _WX_WIZARDEX_H_
+#endif
diff --git a/clientscr/BOINCSaver_MacOS10_6_7.zip b/clientscr/BOINCSaver_MacOS10_6_7.zip
new file mode 100644
index 0000000..9d510a3
Binary files /dev/null and b/clientscr/BOINCSaver_MacOS10_6_7.zip differ
diff --git a/clientscr/Mac_Saver_Module.h b/clientscr/Mac_Saver_Module.h
index 86e1206..6334c62 100644
--- a/clientscr/Mac_Saver_Module.h
+++ b/clientscr/Mac_Saver_Module.h
@@ -48,6 +48,7 @@ void            setGFXDefaultPeriod(double value);
 void            setGFXSciencePeriod(double value);
 void            setGGFXChangePeriod(double value);
 double          getDTime();
+void            doBoinc_Sleep(double seconds);
 void            print_to_log_file(const char *format, ...);
 void            strip_cr(char *buf);
 void            PrintBacktrace(void);
@@ -85,7 +86,6 @@ protected:
     int             GetBrandID(void);
     char*           PersistentFGets(char *buf, size_t buflen, FILE *f);
     pid_t           FindProcessPID(char* name, pid_t thePID);
-    OSErr           GetpathToBOINCManagerApp(char* path, int maxLen);
     bool            SetError( bool bErrorMode, unsigned int hrError );
     void            setSSMessageText(const char *msg);
     void            updateSSMessageText(char *msg);
@@ -123,7 +123,7 @@ protected:
     int             launch_screensaver(RESULT* rp, int& graphics_application);
     int             launch_default_screensaver(char *dir_path, int& graphics_application);
     void            HandleRPCError(void);
-    OSErr           KillScreenSaver(void);
+    int             KillScreenSaver(void);
     void            GetDefaultDisplayPeriods(struct ss_periods &periods);
     bool            HasProcessExited(pid_t pid, int &exitCode);
     pthread_t       m_hDataManagementThread;
diff --git a/clientscr/Mac_Saver_ModuleView.h b/clientscr/Mac_Saver_ModuleView.h
index e3cf558..e2a634c 100644
--- a/clientscr/Mac_Saver_ModuleView.h
+++ b/clientscr/Mac_Saver_ModuleView.h
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -57,4 +57,5 @@ void            setGFXSciencePeriod(double value);
 void            setGGFXChangePeriod(double value);
 bool            validateNumericString(CFStringRef s);
 double          getDTime();
+void            doBoinc_Sleep(double seconds);
 extern void     print_to_log_file(const char *format, ...);
diff --git a/clientscr/Mac_Saver_ModuleView.m b/clientscr/Mac_Saver_ModuleView.m
index 7546baa..50e36e7 100644
--- a/clientscr/Mac_Saver_ModuleView.m
+++ b/clientscr/Mac_Saver_ModuleView.m
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -27,6 +27,7 @@
 #include <IOKit/hidsystem/IOHIDLib.h>
 #include <IOKit/hidsystem/IOHIDParameter.h>
 #include <IOKit/hidsystem/event_status_driver.h>
+#include "mac_util.h"
 
 #ifndef NSInteger
 #if __LP64__ || NS_BUILD_32_LIKE_64
@@ -40,7 +41,23 @@ typedef int NSInteger;
 typedef float CGFloat;
 #endif
 
-static int compareOSVersionTo(int toMajor, int toMinor);
+// NSCompositeSourceOver is deprecated in OS 10.12 and is replaced by
+// NSCompositingOperationSourceOver, which is not defined before OS 10.12
+#ifndef NSCompositingOperationSourceOver
+#define NSCompositingOperationSourceOver NSCompositeSourceOver
+#endif
+
+// NSCompositeCopy is deprecated in OS 10.12 and is replaced by
+// NSCompositingOperationCopy, which is not defined before OS 10.12
+#ifndef NSCompositingOperationCopy
+#define NSCompositingOperationCopy NSCompositeCopy
+#endif
+
+// NSCriticalAlertStyle is deprecated in OS 10.12 and is replaced by
+// NSAlertStyleCritical, which is not defined before OS 10.12
+#ifndef NSAlertStyleCritical
+#define NSAlertStyleCritical NSCriticalAlertStyle
+#endif
 
 void print_to_log_file(const char *format, ...);
 void strip_cr(char *buf);
@@ -56,6 +73,7 @@ NSImage *gBOINC_Logo = NULL;
 NSImage *gPreview_Image = NULL;
 
 int gTopWindowListIndex = -1;
+NSInteger myWindowNumber;
 
 NSRect gMovingRect;
 float gImageXIndent;
@@ -238,17 +256,12 @@ int signof(float x) {
     int newFrequency = 0;
     int coveredFreq = 0;
     NSRect theFrame = [ self frame ];
-    NSInteger myWindowNumber;
-    NSInteger windowList[20];
-    NSInteger i, n;
+    NSUInteger n;
     NSRect currentDrawingRect, eraseRect;
     NSPoint imagePosition;
     char *msg;
     CFStringRef cf_msg;
-    AbsoluteTime timeToUnblock, frameStartTime = UpTime();
-    kern_return_t   kernResult = kIOReturnError; 
-    UInt64          params;
-    IOByteCount     rcnt = sizeof(UInt64);
+    double timeToBlock, frameStartTime = getDTime();
     double          idleTime = 0;
     HIThemeTextInfo textInfo;
 
@@ -261,7 +274,6 @@ int signof(float x) {
             }
         }
         if (gPreview_Image) {
-            [ gPreview_Image setScalesWhenResized:YES ];
             [ gPreview_Image setSize:theFrame.size ];
             [ gPreview_Image drawAtPoint:NSZeroPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0 ];
         }
@@ -274,18 +286,16 @@ int signof(float x) {
         return;
     }
 
-    // For unkown reasons, OS 10.7 Lion screensaver delays several seconds after 
-    // user activity before calling stopAnimation, so we check user activity here
+    // For unkown reasons, OS 10.7 Lion screensaver and later delay several seconds
+    // after user activity before calling stopAnimation, so we check user activity here
     if ((compareOSVersionTo(10, 7) >= 0) && ((getDTime() - gSS_StartTime) > 2.0)) {
-        kernResult = IOHIDGetParameter( gEventHandle, CFSTR(EVSIOIDLE), sizeof(UInt64), &params, &rcnt );
-        if ( kernResult == kIOReturnSuccess ) {
-            idleTime = ((double)params) / 1000.0 / 1000.0 / 1000.0;
-            if (idleTime < 1.5) {
-                [ NSApp terminate:nil ];
-            }
+           idleTime =  CGEventSourceSecondsSinceLastEventType
+                    (kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);
+        if (idleTime < 1.5) {
+            [ NSApp terminate:nil ];
         }
     }
-    
+
    myContext = [[NSGraphicsContext currentContext] graphicsPort];
 //    [myContext retain];
     
@@ -305,14 +315,15 @@ int signof(float x) {
 
     newFrequency = getSSMessage(&msg, &coveredFreq);
 
-    // NOTE: My tests seem to confirm that the top window is always the first 
-    // window returned by NSWindowList under OS 10.5 and the second window 
-    // returned by NSWindowList under OS 10.3.9 and OS 10.4.  However, Apple's 
+    // NOTE: My tests seem to confirm that the top window is always the first
+    // window returned by [NSWindow windowNumbersWithOptions:] However, Apple's
     // documentation is unclear whether we can depend on this.  So I have 
     // added some safety by doing two things:
-    // [1] Only use the NSWindowList test when we have started project graphics.
+    // [1] Only use the windowNumbersWithOptions test when we have started
+    //     project graphics.
     // [2] Assume that our window is covered 45 seconds after starting project 
-    //     graphics even if the NSWindowList test did not indicate that is so.
+    //     graphics even if the windowNumbersWithOptions test did not indicate
+    //     that is so.
     //
     // getSSMessage() returns a non-zero value for coveredFreq only if we have started 
     // project graphics.
@@ -320,31 +331,20 @@ int signof(float x) {
     // If we should use a different frequency when our window is covered by another 
     // window, then check whether there is a window at a higher z-level than ours.
 
-    // Assuming our window(s) are initially the top window(s), 
-    // determine our position in the window list when no graphics 
-    // applications have covered us.
+    // Assuming our window(s) are initially the top window(s), determine our position
+    // in the window list when no graphics applications have covered us.
     if (gTopWindowListIndex < 0) {
+        NSArray *theWindowList = [NSWindow windowNumbersWithOptions:NSWindowNumberListAllApplications];
         myWindowNumber = [ myWindow windowNumber ];
-        NSWindowList(20, windowList);
-        NSCountWindows(&n);
-        if (n > 20) n = 20; 
-        for (i=0; i<n; i++) {
-            if (windowList[i] == myWindowNumber) {
-                gTopWindowListIndex = i;
-                break;
-            }
-        }
+        gTopWindowListIndex = [theWindowList indexOfObjectIdenticalTo:[NSNumber numberWithInt:myWindowNumber]];
     }
 
     if (coveredFreq) {
         if ( (msg != NULL) && (msg[0] != '\0') ) {
-            myWindowNumber = [ myWindow windowNumber ];
-
-            windowList[0] = 0;
-            NSWindowList(20, windowList);
-            NSCountWindows(&n);
-            if (gTopWindowListIndex < n) { 
-                if (windowList[gTopWindowListIndex] != myWindowNumber) {
+            NSArray *theWindowList = [NSWindow windowNumbersWithOptions:NSWindowNumberListAllApplications];
+            n = [theWindowList count];
+            if (gTopWindowListIndex < n) {
+                if ([(NSNumber*)[theWindowList objectAtIndex:gTopWindowListIndex] integerValue] != myWindowNumber) {
                     // Project graphics application has a window open above ours
                     // Don't waste CPU cycles since our window is obscured by application graphics
                     newFrequency = coveredFreq;
@@ -356,7 +356,7 @@ int signof(float x) {
             newFrequency = coveredFreq;
         }
     }
-    
+
     // Clear the previous drawing area
     currentDrawingRect = gMovingRect;
     currentDrawingRect.origin.x = (float) ((int)gCurrentPosition.x);
@@ -502,8 +502,10 @@ int signof(float x) {
         [ self setAnimationTimeInterval:(1.0/newFrequency) ];
         // setAnimationTimeInterval does not seem to be working, so we 
         // throttle the screensaver directly here.
-        timeToUnblock = AddDurationToAbsolute(durationSecond/newFrequency, frameStartTime);
-        MPDelayUntil(&timeToUnblock);
+        timeToBlock = (1.0/newFrequency) - (getDTime() - frameStartTime);
+        if (timeToBlock > 0.0) {
+            doBoinc_Sleep(timeToBlock);
+        }
     }
 }
 
@@ -517,8 +519,25 @@ int signof(float x) {
     int period;
 
 	// if we haven't loaded our configure sheet, load the nib named MyScreenSaver.nib
-	if (!mConfigureSheet)
-        [ NSBundle loadNibNamed:@"BOINCSaver" owner:self ];
+	if (!mConfigureSheet) {
+        if ([[ NSBundle bundleForClass:[ self class ]] respondsToSelector: @selector(loadNibNamed: owner: topLevelObjects:)]) {
+        
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wobjc-method-access"
+            // [NSBundle loadNibNamed: owner: topLevelObjects:] is not available before OS 10.8
+            [ [ NSBundle bundleForClass:[ self class ]] loadNibNamed:@"BOINCSaver" owner:self topLevelObjects:NULL ];
+#pragma clang diagnostic pop
+        }
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1080
+         else {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+            // [NSBundle loadNibNamed: owner:] is deprecated in OS 10.8
+            [ NSBundle loadNibNamed:@"BOINCSaver" owner:self ];
+#pragma clang diagnostic pop
+        }
+#endif
+    }
 	// set the UI state
 	[ mGoToBlankCheckbox setState:gGoToBlank ];
 
@@ -603,7 +622,23 @@ Bad:
     [alert addButtonWithTitle:@"OK"];
     [alert setMessageText:@"Please enter a number between 0 and 999."];
     [alert setAlertStyle:NSCriticalAlertStyle];
-    [alert beginSheetModalForWindow:mConfigureSheet modalDelegate:self didEndSelector:nil contextInfo:nil];
+    
+    if ([alert respondsToSelector: @selector(beginSheetModalForWindow: completionHandler:)]){
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wobjc-method-access"
+        // [NSAlert beginSheetModalForWindow: completionHandler:] is not available before OS 10.9
+        [alert beginSheetModalForWindow:mConfigureSheet completionHandler:^(NSModalResponse returnCode){}];
+#pragma clang diagnostic pop
+    }
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1090
+        else {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+            // [NSAlert beginSheetModalForWindow: modalDelegate: didEndSelector: contextInfo:] is deprecated in OS 10.9
+            [alert beginSheetModalForWindow:mConfigureSheet modalDelegate:self didEndSelector:nil contextInfo:nil];
+#pragma clang diagnostic pop
+        }
+#endif
 }
 
 // Called when the user clicked the CANCEL button
@@ -614,27 +649,3 @@ Bad:
 }
 
 @end
-
-
-static int compareOSVersionTo(int toMajor, int toMinor) {
-    SInt32 major, minor;
-    OSStatus err = noErr;
-    
-    err = Gestalt(gestaltSystemVersionMajor, &major);
-    if (err != noErr) {
-        fprintf(stderr, "Gestalt(gestaltSystemVersionMajor) returned error %ld\n", (long)err);
-        fflush(stderr);
-        return -1;  // gestaltSystemVersionMajor selector was not available before OS 10.4
-    }
-    if (major < toMajor) return -1;
-    if (major > toMajor) return 1;
-    err = Gestalt(gestaltSystemVersionMinor, &minor);
-    if (err != noErr) {
-        fprintf(stderr, "Gestalt(gestaltSystemVersionMinor) returned error %ld\n", (long)err);
-        fflush(stderr);
-        return -1;  // gestaltSystemVersionMajor selector was not available before OS 10.4
-    }
-    if (minor < toMinor) return -1;
-    if (minor > toMinor) return 1;
-    return 0;
-}
diff --git a/clientscr/gfx_switcher.cpp b/clientscr/gfx_switcher.cpp
index 4fcc43c..d3dc561 100644
--- a/clientscr/gfx_switcher.cpp
+++ b/clientscr/gfx_switcher.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2017 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -18,9 +18,9 @@
 // gfx_switcher.C
 //
 // Used by screensaver to:
-//  - launch graphics application at given slot number as user & owner boinc_project
-//  - launch default graphics application as user & owner boinc_project
-//  - kill graphics application with given process ID as user & owner boinc_project
+//  - launch graphics application at given slot number as user & group boinc_project
+//  - launch default graphics application as user & group boinc_project
+//  - kill graphics application with given process ID as user & group boinc_project
 //
 #include <unistd.h>
 #include <cstdio>
diff --git a/clientscr/mac_saver_module.cpp b/clientscr/mac_saver_module.cpp
index 3efef19..ff6dba9 100644
--- a/clientscr/mac_saver_module.cpp
+++ b/clientscr/mac_saver_module.cpp
@@ -51,6 +51,7 @@ extern "C" {
 #include "screensaver.h"
 #include "diagnostics.h"
 #include "str_replace.h"
+#include "mac_util.h"
 
 //#include <drivers/event_status_driver.h>
 
@@ -222,6 +223,11 @@ double getDTime() {
 }
 
 
+void doBoinc_Sleep(double seconds) {
+    boinc_sleep(seconds);
+}
+
+
 CScreensaver::CScreensaver() {
     struct ss_periods periods;
     
@@ -258,8 +264,6 @@ CScreensaver::CScreensaver() {
 
 
 int CScreensaver::Create() {
-    ProcessSerialNumber psn;
-    ProcessInfoRec pInfo;
     OSStatus err;
     
     // Ugly workaround for a problem with the System Preferences app
@@ -274,12 +278,8 @@ int CScreensaver::Create() {
     // fails to run and stderr shows the message: 
     // "The process has forked and you cannot use this CoreFoundation 
     // functionality safely. You MUST exec()" 
-    GetCurrentProcess(&psn);
-    memset(&pInfo, 0, sizeof(pInfo));
-    pInfo.processInfoLength = sizeof( ProcessInfoRec );
-    pInfo.processName = NULL;
-    err = GetProcessInformation(&psn, &pInfo);
-    if ( (err == noErr) && (pInfo.processSignature == 'sprf') ) {
+    pid_t SystemPrefsPID = getPidIfRunning("com.apple.systempreferences");
+    if (SystemPrefsPID == getpid()) {
         saverState = SaverState_ControlPanelTestMode;
     }
 
@@ -383,7 +383,7 @@ OSStatus CScreensaver::initBOINCApp() {
 
     // If not at default path, search for it by creator code and bundle identifier
     if (!boinc_file_exists(boincPath)) {
-        err = GetpathToBOINCManagerApp(boincPath, sizeof(boincPath));
+        err = GetPathToAppFromID('BNC!', CFSTR("edu.berkeley.boinc"),  boincPath, sizeof(boincPath));
         if (err) {
             saverState = SaverState_CantLaunchCoreClient;
             return err;
@@ -805,7 +805,7 @@ int CScreensaver::GetBrandID()
     if (f == NULL) {
        // If we couldn't find our Branding file in the BOINC Data Directory,  
        // look in our application bundle
-        err = GetpathToBOINCManagerApp(buf, sizeof(buf));
+        err = GetPathToAppFromID('BNC!', CFSTR("edu.berkeley.boinc"),  buf, sizeof(buf));
         if (err == noErr) {
             strcat(buf, "/Contents/Resources/Branding");
             f = fopen(buf, "r");
@@ -875,32 +875,15 @@ pid_t CScreensaver::FindProcessPID(char* name, pid_t thePID)
 }
 
 
-OSErr CScreensaver::GetpathToBOINCManagerApp(char* path, int maxLen)
-{
-    CFStringRef bundleID = CFSTR("edu.berkeley.boinc");
-    OSType creator = 'BNC!';
-    FSRef theFSRef;
-    OSStatus status = noErr;
-
-    status = LSFindApplicationForInfo(creator, bundleID, NULL, &theFSRef, NULL);
-    if (status == noErr)
-        status = FSRefMakePath(&theFSRef, (unsigned char *)path, maxLen);
-    return status;
-}
-
-
 // Send a Quit AppleEvent to the process which called this module
 // (i.e., tell the ScreenSaver engine to quit)
-OSErr CScreensaver::KillScreenSaver() {
-    ProcessSerialNumber         thisPSN;
+int CScreensaver::KillScreenSaver() {
     pid_t                       thisPID;
-    OSErr                       err = noErr;
+    int                         retval;
 
-    GetCurrentProcess(&thisPSN);
-    err = GetProcessPID(&thisPSN , &thisPID);
-    if (err == noErr)
-        err = kill(thisPID, SIGABRT);   // SIGINT
-    return err;
+    thisPID = getpid();
+    retval = kill(thisPID, SIGABRT);   // SIGINT
+    return retval;
 }
 
 
diff --git a/clientscr/res/BOINCSaver.nib/classes.nib b/clientscr/res/BOINCSaver.nib/classes.nib
old mode 100755
new mode 100644
diff --git a/clientscr/res/BOINCSaver.nib/info.nib b/clientscr/res/BOINCSaver.nib/info.nib
old mode 100755
new mode 100644
diff --git a/clientscr/res/BOINCSaver.nib/keyedobjects.nib b/clientscr/res/BOINCSaver.nib/keyedobjects.nib
old mode 100755
new mode 100644
diff --git a/clientscr/screensaver.cpp b/clientscr/screensaver.cpp
index 130d00b..657e570 100644
--- a/clientscr/screensaver.cpp
+++ b/clientscr/screensaver.cpp
@@ -273,8 +273,9 @@ int CScreensaver::terminate_v6_screensaver(GFXAPP_ID& graphics_application) {
 
 
 // Terminate the project (science) graphics application
+// TODO: get rid of 2nd arg
 //
-int CScreensaver::terminate_screensaver(GFXAPP_ID& graphics_application, RESULT *worker_app) {
+int CScreensaver::terminate_screensaver(GFXAPP_ID& graphics_application, RESULT *) {
     int retval = 0;
 
     if (graphics_application) {
diff --git a/clientscr/ss_app.cpp b/clientscr/ss_app.cpp
index 12d4411..397310a 100644
--- a/clientscr/ss_app.cpp
+++ b/clientscr/ss_app.cpp
@@ -232,7 +232,7 @@ void show_coords() {
 }
 #endif
 
-void show_project(unsigned int index, float alpha) {
+void show_project(unsigned int index, float /*alpha*/) {
     float x=.2, y=.6;
     char buf[1024];
     ttf_render_string(x, y, 0, PROJ_INTRO_SIZE, white, "This computer is participating in");
@@ -387,7 +387,7 @@ struct FADER {
 FADER logo_fader(5,5,5,2);
 FADER info_fader(4,4,4,1);
 
-void app_graphics_render(int xs, int ys, double t) {
+void app_graphics_render(int , int , double t) {
     double alpha;
     static bool showing_project = false;
     static unsigned int project_index = 0, job_index=0;
@@ -471,8 +471,8 @@ void app_graphics_resize(int w, int h){
     glViewport(0, 0, w, h);
 }
 
-void boinc_app_mouse_move(int x, int y, int left, int middle, int right) {}
-void boinc_app_mouse_button(int x, int y, int which, int is_down) {}
+void boinc_app_mouse_move(int , int , int , int , int ) {}
+void boinc_app_mouse_button(int , int , int , int ) {}
 void boinc_app_key_press(int, int){}
 void boinc_app_key_release(int, int){}
 
diff --git a/configure.ac b/configure.ac
index 8dadc80..16b702d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,7 +6,7 @@ dnl not sure exactly what the minimum version is (but 2.13 wont work)
 AC_PREREQ(2.58)
 
 dnl Set the BOINC version here.  You can also use the set-version script.
-AC_INIT(BOINC, 7.6.33)
+AC_INIT(BOINC, 7.8.0)
 AC_CONFIG_MACRO_DIR([m4])
 LIBBOINC_VERSION=`echo ${PACKAGE_VERSION} | sed 's/\./:/g'`
 AC_SUBST([LIBBOINC_VERSION])
@@ -14,7 +14,7 @@ AC_SUBST([LIBBOINC_VERSION])
 WRAPPER_RELEASE=26016
 AC_SUBST([WRAPPER_RELEASE])
 
-VBOXWRAPPER_RELEASE=26179
+VBOXWRAPPER_RELEASE=26197
 AC_SUBST([VBOXWRAPPER_RELEASE])
 
 AC_CANONICAL_TARGET
@@ -438,20 +438,24 @@ if test "x${enable_fcgi}" = xyes ; then
 dnl m4/boinc_check_fcgi.m4
 BOINC_CHECK_FCGI
 fi
+dnl ---------- SSL (m4/check_ssl.m4)
+if [[ "x${enable_client}" = "xyes" -o "x${enable_server}" = "xyes" ]]
+then
+    CHECK_SSL
+fi
 
 dnl ---------- libcurl (m4/libcurl.m4) ------------------------------
+dnl curl is needed for client
 
-if test "${enable_client}" = yes; then
-   LIBCURL_CHECK_CONFIG([yes], [7.17.1], [haveCurl=yes], [haveCurl=no])
+if [[ "x${enable_client}" = "xyes" ]]
+then
+LIBCURL_CHECK_CONFIG([yes], [7.17.1], [haveCurl=yes], [haveCurl=no])
 
-   if test "${haveCurl}" != yes; then
-      AC_MSG_ERROR([
+if test "${haveCurl}" != yes; then
+   AC_MSG_ERROR([
 ================================================================================
 ERROR: could not find (recent enough) development-libs for libcurl.
 
-  This library is required to build the boinc-client.
-  (If you don't want to build the client, use --disable-client with configure.
-
   If libcurl-dev is installed on your system, make sure that the script
   'curl-config' is found in your PATH, and that
   'curl-config --version' gives something recent enough (see above).
@@ -459,32 +463,25 @@ ERROR: could not find (recent enough) development-libs for libcurl.
   You can download libcurl from: http://curl.haxx.se/
 
 ================================================================================
-	])
-   else
-      ## add libcurl et al. to the list of statically linked libs
-      STATIC_LIB_LIST="${STATIC_LIB_LIST} curl idn ssh2 crypto ssl krb5 k5crypto gssapi_krb5 com_err resolv lber ldap socket nsl z rt gcrypt gpg-error"
-      CPPFLAGS="${CPPFLAGS} ${LIBCURL_CPPFLAGS}"
-      CURL_LIB_PATHS=`echo $LIBCURL | sed 's/[^[a-zA-Z]]*-l[^ ]*//g'`
-
-      if test "${enable_debug}" = yes; then
-         echo "LIBCURL = ${LIBCURL}"
-	 echo "LIBCURL_CPPFLAGS = ${LIBCURL_CPPFLAGS}"
-	 echo "CURL_LIB_PATHS = ${CURL_LIB_PATHS}"
-	 echo "LDFLAGS = ${LDFLAGS}"
-      fi
-      BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${LIBCURL}"
-
+   ])
+else
+   ## add libcurl et al. to the list of statically linked libs
+   STATIC_LIB_LIST="${STATIC_LIB_LIST} curl idn ssh2 crypto ssl krb5 k5crypto gssapi_krb5 com_err resolv lber ldap socket nsl z rt gcrypt gpg-error"
+   CPPFLAGS="${CPPFLAGS} ${LIBCURL_CPPFLAGS}"
+   CURL_LIB_PATHS=`echo $LIBCURL | sed 's/[^[a-zA-Z]]*-l[^ ]*//g'`
+
+   if test "${enable_debug}" = yes; then
+      echo "LIBCURL = ${LIBCURL}"
+      echo "LIBCURL_CPPFLAGS = ${LIBCURL_CPPFLAGS}"
+      echo "CURL_LIB_PATHS = ${CURL_LIB_PATHS}"
+      echo "LDFLAGS = ${LDFLAGS}"
    fi
-
+   BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${LIBCURL}"
+fi
 fi
 
-dnl ---------- SSL (m4/check_ssl.m4)
-if [[ "x${enable_client}" = "xyes" -o "x${enable_server}" = "xyes" ]]
-then
-    CHECK_SSL
-    if test "x${found_ssl}" = "xyes"; then
-       BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${SSL_LIBS}"
-    fi
+if test "x${found_ssl}" = "xyes"; then
+   BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${SSL_LIBS}"
 fi
 
 dnl save the libs, since SAH_CHECK_LIB() will change them
@@ -679,7 +676,7 @@ AC_TYPE_SIGNAL
 if test "${isWIN32}" = "yes" ; then
   AC_CHECK_HEADERS(winsock2.h winsock.h windows.h ws2tcpip.h winternl.h crtdbg.h)
 fi
-AC_CHECK_HEADERS(sys/types.h sys/un.h arpa/inet.h dirent.h grp.h fcntl.h inttypes.h stdint.h memory.h netdb.h netinet/in.h netinet/tcp.h netinet/ether.h net/if.h net/if_arp.h signal.h strings.h sys/auxv.h sys/file.h sys/fcntl.h sys/ipc.h sys/ioctl.h sys/msg.h sys/param.h sys/resource.h sys/select.h sys/sem.h sys/shm.h sys/sockio.h sys/socket.h sys/stat.h sys/statvfs.h sys/statfs.h sys/systeminfo.h sys/time.h sys/types.h sys/utsname.h sys/vmmeter.h sys/wait.h unistd.h utmp.h errno.h procf [...]
+AC_CHECK_HEADERS(sys/types.h sys/un.h arpa/inet.h dirent.h grp.h fcntl.h inttypes.h stdint.h memory.h netdb.h netinet/in.h netinet/tcp.h netinet/ether.h net/if.h net/if_arp.h signal.h strings.h sys/auxv.h sys/file.h sys/fcntl.h sys/ipc.h sys/ioctl.h sys/msg.h sys/param.h sys/resource.h sys/select.h sys/sem.h sys/shm.h sys/sockio.h sys/socket.h sys/stat.h sys/statvfs.h sys/statfs.h sys/systeminfo.h sys/time.h sys/types.h sys/utsname.h sys/vmmeter.h sys/wait.h unistd.h utmp.h errno.h procf [...]
 
 save_cxxflags="${CXXFLAGS}"
 save_cppflags="${CPPFLAGS}"
@@ -1020,6 +1017,11 @@ if test -e "/proc/self/stat"; then
     AC_DEFINE(HAVE__PROC_SELF_STAT, 1, [Define to 1 if /proc/self/stat exists])
 fi
 
+dnl Check for /proc/self/exe (Linux)
+if test -e "/proc/self/exe"; then
+    AC_DEFINE(HAVE__PROC_SELF_EXE, 1, [Define to 1 if /proc/self/exe exists])
+fi
+
 dnl Check for /proc/meminfo (Linux)
 if test -e "/proc/meminfo"; then
     AC_DEFINE(HAVE__PROC_MEMINFO, 1, [Define to 1 if /proc/meminfo exists])
diff --git a/db/boinc_db.cpp b/db/boinc_db.cpp
index 5542f27..77f9c99 100644
--- a/db/boinc_db.cpp
+++ b/db/boinc_db.cpp
@@ -56,6 +56,17 @@ static struct random_init {
 #define ESCAPE(x) escape_string(x, sizeof(x))
 #define UNESCAPE(x) unescape_string(x, sizeof(x))
 
+#define strcpy2(x, y) \
+    { \
+        const char* z = y; \
+        if (!z) { \
+            x[0]=0; \
+        } else { \
+            strlcpy(x, z, sizeof(x)); \
+        } \
+    }
+
+
 void PLATFORM::clear() {memset(this, 0, sizeof(*this));}
 void APP::clear() {memset(this, 0, sizeof(*this));}
 void APP_VERSION::clear() {memset(this, 0, sizeof(*this));}
@@ -177,22 +188,22 @@ DB_CREDIT_USER::DB_CREDIT_USER(DB_CONN* dc) :
 DB_CREDIT_TEAM::DB_CREDIT_TEAM(DB_CONN* dc) :
     DB_BASE("credit_team", dc?dc:&boinc_db){}
 
-int DB_PLATFORM::get_id() {return id;}
-int DB_APP::get_id() {return id;}
-int DB_APP_VERSION::get_id() {return id;}
-int DB_USER::get_id() {return id;}
-int DB_TEAM::get_id() {return id;}
-int DB_HOST::get_id() {return id;}
-int DB_WORKUNIT::get_id() {return id;}
-int DB_RESULT::get_id() {return id;}
-int DB_MSG_FROM_HOST::get_id() {return id;}
-int DB_MSG_TO_HOST::get_id() {return id;}
-int DB_ASSIGNMENT::get_id() {return id;}
-int DB_STATE_COUNTS::get_id() {return appid;}
-int DB_FILE::get_id() {return id;}
-int DB_FILESET::get_id() {return id;}
-int DB_SCHED_TRIGGER::get_id() {return id;}
-int DB_VDA_FILE::get_id() {return id;}
+DB_ID_TYPE DB_PLATFORM::get_id() {return id;}
+DB_ID_TYPE DB_APP::get_id() {return id;}
+DB_ID_TYPE DB_APP_VERSION::get_id() {return id;}
+DB_ID_TYPE DB_USER::get_id() {return id;}
+DB_ID_TYPE DB_TEAM::get_id() {return id;}
+DB_ID_TYPE DB_HOST::get_id() {return id;}
+DB_ID_TYPE DB_WORKUNIT::get_id() {return id;}
+DB_ID_TYPE DB_RESULT::get_id() {return id;}
+DB_ID_TYPE DB_MSG_FROM_HOST::get_id() {return id;}
+DB_ID_TYPE DB_MSG_TO_HOST::get_id() {return id;}
+DB_ID_TYPE DB_ASSIGNMENT::get_id() {return id;}
+DB_ID_TYPE DB_STATE_COUNTS::get_id() {return appid;}
+DB_ID_TYPE DB_FILE::get_id() {return id;}
+DB_ID_TYPE DB_FILESET::get_id() {return id;}
+DB_ID_TYPE DB_SCHED_TRIGGER::get_id() {return id;}
+DB_ID_TYPE DB_VDA_FILE::get_id() {return id;}
 
 void DB_PLATFORM::db_print(char* buf){
     sprintf(buf,
@@ -206,7 +217,7 @@ void DB_PLATFORM::db_print(char* buf){
 void DB_PLATFORM::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
     strcpy2(name, r[i++]);
     strcpy2(user_friendly_name, r[i++]);
@@ -253,7 +264,7 @@ void DB_APP::db_print(char* buf){
 void DB_APP::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
     strcpy2(name, r[i++]);
     min_version = atoi(r[i++]);
@@ -275,9 +286,9 @@ void DB_APP::db_parse(MYSQL_ROW &r) {
 void DB_APP_VERSION::db_print(char* buf){
     sprintf(buf,
         "create_time=%d, "
-        "appid=%d, "
+        "appid=%lu, "
         "version_num=%d, "
-        "platformid=%d, "
+        "platformid=%lu, "
         "xml_doc='%s', "
         "min_core_version=%d, "
         "max_core_version=%d, "
@@ -310,11 +321,11 @@ void DB_APP_VERSION::db_print(char* buf){
 void DB_APP_VERSION::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    appid = atoi(r[i++]);
+    appid = atol(r[i++]);
     version_num = atoi(r[i++]);
-    platformid = atoi(r[i++]);
+    platformid = atol(r[i++]);
     strcpy2(xml_doc, r[i++]);
     min_core_version = atoi(r[i++]);
     max_core_version = atoi(r[i++]);
@@ -343,7 +354,7 @@ void DB_USER::db_print(char* buf){
         "country='%s', postal_code='%s', "
         "total_credit=%.15e, expavg_credit=%.15e, expavg_time=%.15e, "
         "global_prefs='%s', project_prefs='%s', "
-        "teamid=%d, venue='%s', url='%s', send_email=%d, show_hosts=%d, "
+        "teamid=%lu, venue='%s', url='%s', send_email=%d, show_hosts=%d, "
         "posts=%d, "
         "seti_id=%d, seti_nresults=%d, seti_last_result_time=%d, "
         "seti_total_cpu=%.15e, signature='%s', has_profile=%d, "
@@ -374,7 +385,7 @@ void DB_USER::db_print(char* buf){
 void DB_USER::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
     strcpy2(email_addr, r[i++]);
     strcpy2(name, r[i++]);
@@ -386,7 +397,7 @@ void DB_USER::db_parse(MYSQL_ROW &r) {
     expavg_time = atof(r[i++]);
     strcpy2(global_prefs, r[i++]);
     strcpy2(project_prefs, r[i++]);
-    teamid = atoi(r[i++]);
+    teamid = atol(r[i++]);
     strcpy2(venue, r[i++]);
     strcpy2(url, r[i++]);
     send_email = atoi(r[i++]);
@@ -411,7 +422,7 @@ void DB_TEAM::db_print(char* buf){
     ESCAPE(name_html);
     ESCAPE(description);
     sprintf(buf,
-        "create_time=%d, userid=%d, name='%s', "
+        "create_time=%d, userid=%lu, name='%s', "
         "name_lc='%s', url='%s', "
         "type=%d, name_html='%s', description='%s', nusers=%d, "
         "country='%s', "
@@ -444,9 +455,9 @@ void DB_TEAM::db_print(char* buf){
 void DB_TEAM::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    userid = atoi(r[i++]);
+    userid = atol(r[i++]);
     strcpy2(name, r[i++]);
     strcpy2(name_lc, r[i++]);
     strcpy2(url, r[i++]);
@@ -492,7 +503,7 @@ void DB_HOST::db_print(char* buf){
     ESCAPE(os_version);
     ESCAPE(product_name);
     sprintf(buf,
-        "create_time=%d, userid=%d, "
+        "create_time=%d, userid=%lu, "
         "rpc_seqno=%d, rpc_time=%d, "
         "total_credit=%.12e, expavg_credit=%.12e, expavg_time=%.15e, "
         "timezone=%d, domain_name='%s', serialnum='%s', "
@@ -551,9 +562,9 @@ void DB_HOST::db_print(char* buf){
 void DB_HOST::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    userid = atoi(r[i++]);
+    userid = atol(r[i++]);
     rpc_seqno = atoi(r[i++]);
     rpc_time = atoi(r[i++]);
     total_credit = atof(r[i++]);
@@ -635,7 +646,7 @@ int DB_HOST::update_diff_validator(HOST& h) {
     int n = strlen(updates);
     if (n == 0) return 0;
     updates[n-1] = 0;        // trim the final comma
-    sprintf(query, "update host set %s where id=%d", updates, id);
+    sprintf(query, "update host set %s where id=%lu", updates, id);
     return db->do_query(query);
 }
 
@@ -822,17 +833,26 @@ int DB_HOST::update_diff_sched(HOST& h) {
         sprintf(buf, " gpu_active_frac=%.15e,", gpu_active_frac);
         strcat(updates, buf);
     }
+    if (p_ngpus != h.p_ngpus) {
+        sprintf(buf, " p_ngpus=%d,", p_ngpus);
+        strcat(updates, buf);
+    }
+    if (p_gpu_fpops != h.p_gpu_fpops) {
+        sprintf(buf, " p_gpu_fpops=%.15e,", p_gpu_fpops);
+        strcat(updates, buf);
+    }
 
     int n = strlen(updates);
     if (n == 0) return 0;
     updates[n-1] = 0;        // trim the final comma
-    sprintf(query, "update host set %s where id=%d", updates, id);
+    sprintf(query, "update host set %s where id=%lu", updates, id);
     return db->do_query(query);
 }
 
 int DB_HOST::fpops_percentile(double percentile, double& fpops) {
     char query[256];
-    int n, retval;
+    int retval;
+    long n;
 
     sprintf(query, "where expavg_credit>10");
     retval = count(n, query);
@@ -864,12 +884,12 @@ int DB_HOST::fpops_stddev(double& stddev) {
 
 void DB_WORKUNIT::db_print(char* buf){
     sprintf(buf,
-        "create_time=%d, appid=%d, "
+        "create_time=%d, appid=%lu, "
         "name='%s', xml_doc='%s', batch=%d, "
         "rsc_fpops_est=%.15e, rsc_fpops_bound=%.15e, "
         "rsc_memory_bound=%.15e, rsc_disk_bound=%.15e, "
         "need_validate=%d, "
-        "canonical_resultid=%u, canonical_credit=%.15e, "
+        "canonical_resultid=%lu, canonical_credit=%.15e, "
         "transition_time=%d, delay_bound=%d, "
         "error_mask=%d, file_delete_state=%d, assimilate_state=%d, "
         "hr_class=%d, opaque=%.15e, "
@@ -878,8 +898,8 @@ void DB_WORKUNIT::db_print(char* buf){
         "result_template_file='%s', "
         "priority=%d, "
         "rsc_bandwidth_bound=%.15e, "
-        "fileset_id=%d, "
-        "app_version_id=%d, "
+        "fileset_id=%lu, "
+        "app_version_id=%ld, "
         "transitioner_flags=%d, "
         "size_class=%d ",
         create_time, appid,
@@ -907,12 +927,12 @@ void DB_WORKUNIT::db_print(char* buf){
 
 void DB_WORKUNIT::db_print_values(char* buf) {
     sprintf(buf,
-        "(0, %d, %d, "
+        "(0, %d, %lu, "
         "'%s', '%s', %d, "
         "%f, %f, "
         "%f, %f, "
         "%d, "
-        "%u, %f, "
+        "%lu, %f, "
         "%d, %d, "
         "%d, %d, %d, "
         "%d, %f, "
@@ -921,13 +941,14 @@ void DB_WORKUNIT::db_print_values(char* buf) {
         "'%s', "
         "%d, NOW(), "
         "%f, "
-        "%d, "
-        "%d, "
+        "%lu, "
+        "%ld, "
         "%d, "
         "%d)",
         create_time, appid,
         name, xml_doc, batch,
-        rsc_fpops_est, rsc_fpops_bound, rsc_memory_bound, rsc_disk_bound,
+        rsc_fpops_est, rsc_fpops_bound,
+        rsc_memory_bound, rsc_disk_bound,
         need_validate,
         canonical_resultid, canonical_credit,
         transition_time, delay_bound,
@@ -951,9 +972,9 @@ void DB_WORKUNIT::db_print_values(char* buf) {
 void DB_WORKUNIT::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    appid = atoi(r[i++]);
+    appid = atol(r[i++]);
     strcpy2(name, r[i++]);
     strcpy2(xml_doc, r[i++]);
     batch = atoi(r[i++]);
@@ -962,7 +983,7 @@ void DB_WORKUNIT::db_parse(MYSQL_ROW &r) {
     rsc_memory_bound = atof(r[i++]);
     rsc_disk_bound = atof(r[i++]);
     need_validate = atoi(r[i++]);
-    canonical_resultid = atoi(r[i++]);
+    canonical_resultid = atol(r[i++]);
     canonical_credit = atof(r[i++]);
     transition_time = atoi(r[i++]);
     delay_bound = atoi(r[i++]);
@@ -980,15 +1001,15 @@ void DB_WORKUNIT::db_parse(MYSQL_ROW &r) {
     priority = atoi(r[i++]);
     strcpy2(mod_time, r[i++]);
     rsc_bandwidth_bound = atof(r[i++]);
-    fileset_id = atoi(r[i++]);
-    app_version_id = atoi(r[i++]);
+    fileset_id = atol(r[i++]);
+    app_version_id = atol(r[i++]);
     transitioner_flags = atoi(r[i++]);
     size_class = atoi(r[i++]);
 }
 
 void DB_CREDITED_JOB::db_print(char* buf){
     sprintf(buf,
-        "userid=%d, workunitid=%f",
+        "userid=%lu, workunitid=%lu",
         userid, workunitid
     );
 }
@@ -996,8 +1017,8 @@ void DB_CREDITED_JOB::db_print(char* buf){
 void DB_CREDITED_JOB::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    userid = atoi(r[i++]);
-    workunitid = atof(r[i++]);
+    userid = atol(r[i++]);
+    workunitid = atol(r[i++]);
 };
 
 void DB_RESULT::db_print(char* buf){
@@ -1005,17 +1026,17 @@ void DB_RESULT::db_print(char* buf){
     ESCAPE(stderr_out);
     sprintf(
         buf,
-        "create_time=%d, workunitid=%d, "
+        "create_time=%d, workunitid=%lu, "
         "server_state=%d, outcome=%d, client_state=%d, "
-        "hostid=%d, userid=%d, "
+        "hostid=%lu, userid=%lu, "
         "report_deadline=%d, sent_time=%d, received_time=%d, "
         "name='%s', cpu_time=%.15e, "
         "xml_doc_in='%s', xml_doc_out='%s', stderr_out='%s', "
         "batch=%d, file_delete_state=%d, validate_state=%d, "
         "claimed_credit=%.15e, granted_credit=%.15e, opaque=%.15e, random=%d, "
-        "app_version_num=%d, appid=%d, exit_status=%d, teamid=%d, "
+        "app_version_num=%d, appid=%lu, exit_status=%d, teamid=%lu, "
         "priority=%d, elapsed_time=%.15e, flops_estimate=%.15e, "
-        "app_version_id=%d, runtime_outlier=%d, size_class=%d, "
+        "app_version_id=%ld, runtime_outlier=%d, size_class=%d, "
         "peak_working_set_size=%.0f, "
         "peak_swap_size=%.0f, "
         "peak_disk_usage=%.0f ",
@@ -1047,15 +1068,15 @@ void DB_RESULT::db_print_values(char* buf){
     ESCAPE(stderr_out);
     sprintf(
         buf,
-        "(0, %d, %d, "
+        "(0, %d, %lu, "
         "%d, %d, %d, "
-        "%d, %d, "
+        "%lu, %lu, "
         "%d, %d, %d, "
         "'%s', %.15e, "
         "'%s', '%s', '%s', "
         "%d, %d, %d, "
         "%.15e, %.15e, %.15e, %d, "
-        "%d, %d, %d, %d, %d, NOW(), 0, 0, 0, 0, %d, 0, 0, 0)",
+        "%d, %lu, %d, %lu, %d, NOW(), 0, 0, 0, 0, %d, 0, 0, 0)",
         create_time, workunitid,
         server_state, outcome, client_state,
         hostid, userid,
@@ -1079,7 +1100,7 @@ int DB_RESULT::mark_as_sent(int old_server_state, int report_grace_period) {
     int retval;
 
     sprintf(query,
-        "update result set server_state=%d, hostid=%d, userid=%d, sent_time=%d, report_deadline=%d, flops_estimate=%.15e, app_version_id=%d  where id=%u and server_state=%d",
+        "update result set server_state=%d, hostid=%lu, userid=%lu, sent_time=%d, report_deadline=%d, flops_estimate=%.15e, app_version_id=%ld  where id=%lu and server_state=%d",
         server_state,
         hostid,
         userid,
@@ -1099,14 +1120,14 @@ int DB_RESULT::mark_as_sent(int old_server_state, int report_grace_period) {
 void DB_RESULT::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    workunitid = atoi(r[i++]);
+    workunitid = atol(r[i++]);
     server_state = atoi(r[i++]);
     outcome = atoi(r[i++]);
     client_state = atoi(r[i++]);
-    hostid = atoi(r[i++]);
-    userid = atoi(r[i++]);
+    hostid = atol(r[i++]);
+    userid = atol(r[i++]);
     report_deadline = atoi(r[i++]);
     sent_time = atoi(r[i++]);
     received_time = atoi(r[i++]);
@@ -1123,14 +1144,14 @@ void DB_RESULT::db_parse(MYSQL_ROW &r) {
     opaque = atof(r[i++]);
     random = atoi(r[i++]);
     app_version_num = atoi(r[i++]);
-    appid = atoi(r[i++]);
+    appid = atol(r[i++]);
     exit_status = atoi(r[i++]);
-    teamid = atoi(r[i++]);
+    teamid = atol(r[i++]);
     priority = atoi(r[i++]);
     strcpy2(mod_time, r[i++]);
     elapsed_time = atof(r[i++]);
     flops_estimate = atof(r[i++]);
-    app_version_id = atoi(r[i++]);
+    app_version_id = atol(r[i++]);
     runtime_outlier = (atoi(r[i++]) != 0);
     size_class = atoi(r[i++]);
     peak_working_set_size = atof(r[i++]);
@@ -1138,6 +1159,38 @@ void DB_RESULT::db_parse(MYSQL_ROW &r) {
     peak_disk_usage = atof(r[i++]);
 }
 
+// faster version.
+// return unsent count up to a max of "count_max"
+//
+int DB_RESULT::get_unsent_counts(APP& app, int* unsent_count, int count_max) {
+    char query[1024];
+    int retval;
+    MYSQL_RES *rp;
+
+    for (int i=0; i<app.n_size_classes; i++) {
+        sprintf(query,
+            "select id from result where appid=%lu and server_state=%d and size_class=%d limit %d",
+            app.id, RESULT_SERVER_STATE_UNSENT, i, count_max
+        );
+        retval = db->do_query(query);
+        if (retval) return mysql_errno(db->mysql);
+        rp = mysql_store_result(db->mysql);
+        if (!rp) return mysql_errno(db->mysql);
+        int count = 0;
+        while (1) {
+            MYSQL_ROW row = mysql_fetch_row(rp);
+            if (!row) break;
+            count++;
+        }
+        mysql_free_result(rp);
+        unsent_count[i] = count;
+    }
+    return 0;
+}
+
+#if 0
+// the following is too slow if result table is large.
+//
 int DB_RESULT::get_unsent_counts(APP& app, int* unsent_count) {
     char query[1024];
     MYSQL_RES *rp;
@@ -1147,7 +1200,7 @@ int DB_RESULT::get_unsent_counts(APP& app, int* unsent_count) {
     }
 
     sprintf(query,
-        "select size_class, count(size_class) from result where appid=%d and server_state=%d group by size_class",
+        "select size_class, count(size_class) from result where appid=%lu and server_state=%d group by size_class",
         app.id, RESULT_SERVER_STATE_UNSENT
     );
     int retval = db->do_query(query);
@@ -1169,13 +1222,14 @@ int DB_RESULT::get_unsent_counts(APP& app, int* unsent_count) {
     mysql_free_result(rp);
     return retval;
 }
+#endif
 
 int DB_RESULT::make_unsent(
     APP& app, int size_class, int n, const char* order_clause, int& nchanged
 ) {
     char query[1024];
     sprintf(query,
-        "update result set server_state=%d where appid=%d and server_state=%d and size_class=%d %s limit %d",
+        "update result set server_state=%d where appid=%lu and server_state=%d and size_class=%d %s limit %d",
         RESULT_SERVER_STATE_UNSENT,
         app.id,
         RESULT_SERVER_STATE_INACTIVE,
@@ -1194,7 +1248,7 @@ void DB_MSG_FROM_HOST::db_print(char* buf) {
     ESCAPE(variety);
     sprintf(buf,
         "create_time=%d, "
-        "hostid=%d, variety='%s', "
+        "hostid=%lu, variety='%s', "
         "handled=%d, xml='%s'",
 
         create_time,
@@ -1209,9 +1263,9 @@ void DB_MSG_FROM_HOST::db_print(char* buf) {
 void DB_MSG_FROM_HOST::db_parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    hostid = atoi(r[i++]);
+    hostid = atol(r[i++]);
     strcpy2(variety, r[i++]);
     handled = atoi(r[i++]);
     strcpy2(xml, r[i++]);
@@ -1222,7 +1276,7 @@ void DB_MSG_TO_HOST::db_print(char* buf) {
     ESCAPE(variety);
     sprintf(buf,
         "create_time=%d, "
-        "hostid=%d, variety='%s', "
+        "hostid=%lu, variety='%s', "
         "handled=%d, xml='%s'",
         create_time,
         hostid, variety,
@@ -1235,9 +1289,9 @@ void DB_MSG_TO_HOST::db_print(char* buf) {
 void DB_MSG_TO_HOST::db_parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    hostid = atoi(r[i++]);
+    hostid = atol(r[i++]);
     strcpy2(variety, r[i++]);
     handled = atoi(r[i++]);
     strcpy2(xml, r[i++]);
@@ -1246,11 +1300,11 @@ void DB_MSG_TO_HOST::db_parse(MYSQL_ROW& r) {
 void DB_ASSIGNMENT::db_print(char* buf) {
     sprintf(buf,
         "create_time=%d, "
-        "target_id=%d, "
+        "target_id=%lu, "
         "target_type=%d, "
         "multi=%d, "
-        "workunitid=%d, "
-        "resultid=%u",
+        "workunitid=%lu, "
+        "resultid=%lu",
         create_time,
         target_id,
         target_type,
@@ -1263,13 +1317,13 @@ void DB_ASSIGNMENT::db_print(char* buf) {
 void DB_ASSIGNMENT::db_parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atoi(r[i++]);
-    target_id = atoi(r[i++]);
+    target_id = atol(r[i++]);
     target_type = atoi(r[i++]);
     multi = atoi(r[i++]);
-    workunitid = atoi(r[i++]);
-    _resultid = atoi(r[i++]);
+    workunitid = atol(r[i++]);
+    _resultid = atol(r[i++]);
 }
 
 int DB_HOST_APP_VERSION::update_scheduler(DB_HOST_APP_VERSION& orig) {
@@ -1287,7 +1341,10 @@ int DB_HOST_APP_VERSION::update_scheduler(DB_HOST_APP_VERSION& orig) {
         max_jobs_per_day,
         n_jobs_today
     );
-    sprintf(clause, "host_id=%d and app_version_id=%d", host_id, app_version_id);
+    sprintf(clause,
+        "host_id=%lu and app_version_id=%ld",
+        host_id, app_version_id
+    );
     return update_fields_noid(query, clause);
 }
 
@@ -1336,7 +1393,7 @@ int DB_HOST_APP_VERSION::update_validator(DB_HOST_APP_VERSION& orig) {
         max_jobs_per_day
     );
     sprintf(clause,
-        "host_id=%d and app_version_id=%d ",
+        "host_id=%lu and app_version_id=%ld ",
         host_id, app_version_id
     );
     return update_fields_noid(query, clause);
@@ -1344,8 +1401,8 @@ int DB_HOST_APP_VERSION::update_validator(DB_HOST_APP_VERSION& orig) {
 
 void DB_HOST_APP_VERSION::db_print(char* buf) {
     sprintf(buf,
-        "host_id=%d, "
-        "app_version_id=%d, "
+        "host_id=%lu, "
+        "app_version_id=%ld, "
         "pfc_n=%.15e, "
         "pfc_avg=%.15e, "
         "et_n=%.15e, "
@@ -1380,8 +1437,8 @@ void DB_HOST_APP_VERSION::db_print(char* buf) {
 void DB_HOST_APP_VERSION::db_parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    host_id = atoi(r[i++]);
-    app_version_id = atoi(r[i++]);
+    host_id = atol(r[i++]);
+    app_version_id = atol(r[i++]);
     pfc.n = atof(r[i++]);
     pfc.avg = atof(r[i++]);
     et.n = atof(r[i++]);
@@ -1399,7 +1456,7 @@ void DB_HOST_APP_VERSION::db_parse(MYSQL_ROW& r) {
 
 void DB_USER_SUBMIT::db_print(char* buf) {
     sprintf(buf,
-        "user_id=%d, "
+        "user_id=%lu, "
         "quota=%.15e, "
         "logical_start_time=%.15e, "
         "submit_all=%d, "
@@ -1415,7 +1472,7 @@ void DB_USER_SUBMIT::db_print(char* buf) {
 void DB_USER_SUBMIT::db_parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    user_id = atoi(r[i++]);
+    user_id = atol(r[i++]);
     quota = atof(r[i++]);
     logical_start_time = atof(r[i++]);
     submit_all = (atoi(r[i++]) != 0);
@@ -1424,7 +1481,7 @@ void DB_USER_SUBMIT::db_parse(MYSQL_ROW& r) {
 
 void DB_STATE_COUNTS::db_print(char* buf) {
     sprintf(buf,
-        "appid=%d, "
+        "appid=%lu, "
         "last_update_time=%d, "
         "result_server_state_2=%d, "
         "result_server_state_4=%d, "
@@ -1468,12 +1525,12 @@ void DB_STATE_COUNTS::db_parse(MYSQL_ROW& r) {
 void TRANSITIONER_ITEM::parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     strcpy2(name, r[i++]);
-    appid = atoi(r[i++]);
+    appid = atol(r[i++]);
     min_quorum = atoi(r[i++]);
     need_validate = atoi(r[i++]);
-    canonical_resultid = atoi(r[i++]);
+    canonical_resultid = atol(r[i++]);
     transition_time = atoi(r[i++]);
     delay_bound = atoi(r[i++]);
     error_mask = atoi(r[i++]);
@@ -1486,13 +1543,13 @@ void TRANSITIONER_ITEM::parse(MYSQL_ROW& r) {
     priority = atoi(r[i++]);
     hr_class = atoi(r[i++]);
     batch = atoi(r[i++]);
-    app_version_id = atoi(r[i++]);
+    app_version_id = atol(r[i++]);
     transitioner_flags = atoi(r[i++]);
     size_class = atoi(r[i++]);
 
     // use safe_atoi() from here on cuz they might not be there
     //
-    res_id = safe_atoi(r[i++]);
+    res_id = safe_atol(r[i++]);
     strcpy2(res_name, r[i++]);
     res_report_deadline = safe_atoi(r[i++]);
     res_server_state = safe_atoi(r[i++]);
@@ -1500,9 +1557,9 @@ void TRANSITIONER_ITEM::parse(MYSQL_ROW& r) {
     res_validate_state = safe_atoi(r[i++]);
     res_file_delete_state = safe_atoi(r[i++]);
     res_sent_time = safe_atoi(r[i++]);
-    res_hostid = safe_atoi(r[i++]);
+    res_hostid = safe_atol(r[i++]);
     res_received_time = safe_atoi(r[i++]);
-    res_app_version_id = safe_atoi(r[i++]);
+    res_app_version_id = safe_atol(r[i++]);
     res_exit_status = safe_atoi(r[i++]);
 }
 
@@ -1637,7 +1694,7 @@ int DB_TRANSITIONER_ITEM_SET::update_result(TRANSITIONER_ITEM& ti) {
 
     sprintf(query,
         "update result set server_state=%d, outcome=%d, "
-        "validate_state=%d, file_delete_state=%d where id=%u",
+        "validate_state=%d, file_delete_state=%d where id=%lu",
         ti.res_server_state,
         ti.res_outcome,
         ti.res_validate_state,
@@ -1681,7 +1738,7 @@ int DB_TRANSITIONER_ITEM_SET::update_workunit(
         strcat(updates, buf);
     }
     if (ti.app_version_id != ti_original.app_version_id) {
-        sprintf(buf, " app_version_id=%d,", ti.app_version_id);
+        sprintf(buf, " app_version_id=%lu,", ti.app_version_id);
         strcat(updates, buf);
     }
     int n = strlen(updates);
@@ -1693,16 +1750,16 @@ int DB_TRANSITIONER_ITEM_SET::update_workunit(
     //
     updates[n-1] = 0;
 
-    sprintf(query, "update workunit set %s where id=%d", updates, ti.id);
+    sprintf(query, "update workunit set %s where id=%lu", updates, ti.id);
     return db->do_query(query);
 }
 
 void VALIDATOR_ITEM::parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    wu.id = atoi(r[i++]);
+    wu.id = atol(r[i++]);
     strcpy2(wu.name, r[i++]);
-    wu.canonical_resultid = atoi(r[i++]);
+    wu.canonical_resultid = atol(r[i++]);
     wu.canonical_credit = atof(r[i++]);
     wu.min_quorum = atoi(r[i++]);
     wu.assimilate_state = atoi(r[i++]);
@@ -1715,7 +1772,8 @@ void VALIDATOR_ITEM::parse(MYSQL_ROW& r) {
     wu.rsc_fpops_est = atof(r[i++]);
     wu.rsc_fpops_bound = atof(r[i++]);
 
-    res.id = atoi(r[i++]);
+    res.id = atol(r[i++]);
+    res.workunitid = atol(r[i++]);
     strcpy2(res.name, r[i++]);
     res.validate_state = atoi(r[i++]);
     res.server_state = atoi(r[i++]);
@@ -1728,24 +1786,24 @@ void VALIDATOR_ITEM::parse(MYSQL_ROW& r) {
     res.batch = atoi(r[i++]);
     res.opaque = atof(r[i++]);
     res.exit_status = atoi(r[i++]);
-    res.hostid = atoi(r[i++]);
-    res.userid = atoi(r[i++]);
-    res.teamid = atoi(r[i++]);
+    res.hostid = atol(r[i++]);
+    res.userid = atol(r[i++]);
+    res.teamid = atol(r[i++]);
     res.sent_time = atoi(r[i++]);
     res.received_time = atoi(r[i++]);
-    res.appid = atoi(r[i++]);
-    res.app_version_id = atoi(r[i++]);
+    res.appid = atol(r[i++]);
+    res.app_version_id = atol(r[i++]);
     res.app_version_num = atoi(r[i++]);
     res.elapsed_time = atof(r[i++]);
     res.flops_estimate = atof(r[i++]);
-    res.app_version_id = atoi(r[i++]);
+    res.app_version_id = atol(r[i++]);
     res.runtime_outlier = (atoi(r[i++]) != 0);
 }
 
 int DB_VALIDATOR_ITEM_SET::enumerate(
-    int appid, int nresult_limit,
+    DB_ID_TYPE appid, int nresult_limit,
     int wu_id_modulus, int wu_id_remainder,
-    int wu_id_min, int wu_id_max,
+    DB_ID_TYPE wu_id_min, DB_ID_TYPE wu_id_max,
     std::vector<VALIDATOR_ITEM>& items
 ) {
     int retval;
@@ -1756,7 +1814,7 @@ int DB_VALIDATOR_ITEM_SET::enumerate(
 
     if (!cursor.active) {
         sprintf(main_clause,
-            " and wu.appid = %d and wu.need_validate > 0 ", appid
+            " and wu.appid = %lu and wu.need_validate > 0 ", appid
         );
         if (wu_id_modulus) {
             // terrible kludge: if rem >= mod, treat it as a WU ID
@@ -1775,10 +1833,10 @@ int DB_VALIDATOR_ITEM_SET::enumerate(
             strcpy(mod_clause, "");
         }
         if (wu_id_min) {
-          sprintf(mod_clause+(strlen(mod_clause)), " and wu.id >= %d", wu_id_min);
+          sprintf(mod_clause+(strlen(mod_clause)), " and wu.id >= %lu", wu_id_min);
         }
         if (wu_id_max) {
-          sprintf(mod_clause+(strlen(mod_clause)), " and wu.id <= %d", wu_id_max);
+          sprintf(mod_clause+(strlen(mod_clause)), " and wu.id <= %lu", wu_id_max);
         }
 
         sprintf(query,
@@ -1798,6 +1856,7 @@ int DB_VALIDATOR_ITEM_SET::enumerate(
             "   wu.rsc_fpops_est, "
             "   wu.rsc_fpops_bound, "
             "   res.id, "
+            "   res.workunitid, "
             "   res.name, "
             "   res.validate_state, "
             "   res.server_state, "
@@ -1884,7 +1943,7 @@ int DB_VALIDATOR_ITEM_SET::update_result(RESULT& res) {
     sprintf(query,
         "update result set validate_state=%d, granted_credit=%.15e, "
         "server_state=%d, outcome=%d, opaque=%lf, runtime_outlier=%d "
-        "where id=%u",
+        "where id=%lu",
         res.validate_state,
         res.granted_credit,
         res.server_state,
@@ -1906,8 +1965,8 @@ int DB_VALIDATOR_ITEM_SET::update_workunit(WORKUNIT& wu) {
         "update workunit set need_validate=0, error_mask=%d, "
         "assimilate_state=%d, transition_time=%d, "
         "target_nresults=%d, "
-        "canonical_resultid=%u, canonical_credit=%.15e "
-        "where id=%d",
+        "canonical_resultid=%lu, canonical_credit=%.15e "
+        "where id=%lu",
         wu.error_mask,
         wu.assimilate_state,
         wu.transition_time,
@@ -1924,13 +1983,13 @@ int DB_VALIDATOR_ITEM_SET::update_workunit(WORKUNIT& wu) {
 void WORK_ITEM::parse(MYSQL_ROW& r) {
     int i=0;
     memset(this, 0, sizeof(WORK_ITEM));
-    res_id = atoi(r[i++]);
+    res_id = atol(r[i++]);
     res_priority = atoi(r[i++]);
     res_server_state = atoi(r[i++]);
     res_report_deadline = atof(r[i++]);
-    wu.id = atoi(r[i++]);
+    wu.id = atol(r[i++]);
     wu.create_time = atoi(r[i++]);
-    wu.appid = atoi(r[i++]);
+    wu.appid = atol(r[i++]);
     strcpy2(wu.name, r[i++]);
     strcpy2(wu.xml_doc, r[i++]);
     wu.batch = atoi(r[i++]);
@@ -1939,7 +1998,7 @@ void WORK_ITEM::parse(MYSQL_ROW& r) {
     wu.rsc_memory_bound = atof(r[i++]);
     wu.rsc_disk_bound = atof(r[i++]);
     wu.need_validate = atoi(r[i++]);
-    wu.canonical_resultid = atoi(r[i++]);
+    wu.canonical_resultid = atol(r[i++]);
     wu.canonical_credit = atof(r[i++]);
     wu.transition_time = atoi(r[i++]);
     wu.delay_bound = atoi(r[i++]);
@@ -1957,8 +2016,8 @@ void WORK_ITEM::parse(MYSQL_ROW& r) {
     wu.priority = atoi(r[i++]);
     strcpy2(wu.mod_time, r[i++]);
     wu.rsc_bandwidth_bound = atof(r[i++]);
-    wu.fileset_id = atoi(r[i++]);
-    wu.app_version_id = atoi(r[i++]);
+    wu.fileset_id = atol(r[i++]);
+    wu.app_version_id = atol(r[i++]);
     wu.transitioner_flags = atoi(r[i++]);
     wu.size_class = atoi(r[i++]);
 }
@@ -2019,7 +2078,7 @@ int DB_WORK_ITEM::enumerate_all(
         //
         sprintf(query,
             "select high_priority r1.id, r1.priority, r1.server_state, r1.report_deadline, workunit.* from result r1 force index(ind_res_st), workunit force index(primary), app"
-            " where r1.server_state=%d and r1.workunitid=workunit.id and r1.id>%d "
+            " where r1.server_state=%d and r1.workunitid=workunit.id and r1.id>%lu "
             " and workunit.appid=app.id and app.deprecated=0 "
             " and workunit.transitioner_flags=0 "
             " %s "
@@ -2068,7 +2127,7 @@ void IN_PROGRESS_RESULT::parse(MYSQL_ROW& r) {
     outcome = atoi(r[i++]);
 }
 
-int DB_IN_PROGRESS_RESULT::enumerate(int hostid, const char* result_names) {
+int DB_IN_PROGRESS_RESULT::enumerate(DB_ID_TYPE hostid, const char* result_names) {
     char query[MAX_QUERY_LEN];
     int retval;
     MYSQL_ROW row;
@@ -2076,7 +2135,7 @@ int DB_IN_PROGRESS_RESULT::enumerate(int hostid, const char* result_names) {
         sprintf(query,
             "select high_priority result.name, workunit.error_mask, workunit.assimilate_state, result.server_state, result.outcome "
             " from result, workunit "
-            " where result.hostid = %d and workunit.id = result.workunitid "
+            " where result.hostid = %lu and workunit.id = result.workunitid "
             " and (result.server_state=%d or ( result.server_state = %d and result.outcome = %d ) ) "
             " and result.name in (%s) ",
             hostid,
@@ -2110,20 +2169,20 @@ int DB_IN_PROGRESS_RESULT::enumerate(int hostid, const char* result_names) {
 void SCHED_RESULT_ITEM::parse(MYSQL_ROW& r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     strcpy2(name, r[i++]);
-    workunitid = atoi(r[i++]);
-    appid = atoi(r[i++]);
+    workunitid = atol(r[i++]);
+    appid = atol(r[i++]);
     server_state = atoi(r[i++]);
-    hostid = atoi(r[i++]);
-    userid = atoi(r[i++]);
+    hostid = atol(r[i++]);
+    userid = atol(r[i++]);
     sent_time = atoi(r[i++]);
     received_time = atoi(r[i++]);
     validate_state = atoi(r[i++]);
     outcome = atoi(r[i++]);
     client_state = atoi(r[i++]);
     file_delete_state = atoi(r[i++]);
-    app_version_id = atoi(r[i++]);
+    app_version_id = atol(r[i++]);
 }
 
 int DB_SCHED_RESULT_ITEM_SET::add_result(char* result_name) {
@@ -2217,7 +2276,7 @@ int DB_SCHED_RESULT_ITEM_SET::update_result(SCHED_RESULT_ITEM& ri) {
     ESCAPE(ri.stderr_out);
     sprintf(query,
         "UPDATE result SET "
-        "    hostid=%d, "
+        "    hostid=%lu, "
         "    received_time=%d, "
         "    client_state=%d, "
         "    cpu_time=%.15e, "
@@ -2228,13 +2287,13 @@ int DB_SCHED_RESULT_ITEM_SET::update_result(SCHED_RESULT_ITEM& ri) {
         "    stderr_out='%s', "
         "    xml_doc_out='%s', "
         "    validate_state=%d, "
-        "    teamid=%d, "
+        "    teamid=%lu, "
         "    elapsed_time=%.15e, "
         "    peak_working_set_size=%.0f, "
         "    peak_swap_size=%.0f, "
         "    peak_disk_usage=%.0f "
         "WHERE "
-        "    id=%u",
+        "    id=%lu",
         ri.hostid,
         ri.received_time,
         ri.client_state,
@@ -2278,7 +2337,7 @@ int DB_SCHED_RESULT_ITEM_SET::update_workunits() {
             // skip non-updated results
         if (!first) strcat(query, ",");
         first = false;
-        sprintf(buf, "%d", results[i].workunitid);
+        sprintf(buf, "%lu", results[i].workunitid);
         strcat(query, buf);
     }
     strcat(query, ")");
@@ -2299,7 +2358,7 @@ void DB_FILE::db_print(char* buf){
 void DB_FILE::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     strcpy2(name, r[i++]);
     strcpy2(md5sum, r[i++]);
     size = atof(r[i++]);
@@ -2312,7 +2371,7 @@ void DB_FILESET::db_print(char* buf){
 void DB_FILESET::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     strcpy2(name, r[i++]);
 }
 
@@ -2326,7 +2385,7 @@ int DB_FILESET::select_by_name(const char* _name) {
 
 void DB_FILESET_FILE::db_print(char* buf){
     snprintf(buf, MAX_QUERY_LEN,
-        "fileset_id=%d, file_id=%d",
+        "fileset_id=%lu, file_id=%lu",
         fileset_id, file_id
     );
 }
@@ -2334,13 +2393,13 @@ void DB_FILESET_FILE::db_print(char* buf){
 void DB_FILESET_FILE::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    fileset_id = atoi(r[i++]);
-    file_id = atoi(r[i++]);
+    fileset_id = atol(r[i++]);
+    file_id = atol(r[i++]);
 }
 
 void DB_SCHED_TRIGGER::db_print(char* buf){
     snprintf(buf, MAX_QUERY_LEN,
-        "fileset_id=%d, need_work=%d, work_available=%d, no_work_available=%d, working_set_removal=%d",
+        "fileset_id=%lu, need_work=%d, work_available=%d, no_work_available=%d, working_set_removal=%d",
         fileset_id, need_work?1:0, work_available?1:0, no_work_available?1:0, working_set_removal?1:0
     );
 }
@@ -2348,8 +2407,8 @@ void DB_SCHED_TRIGGER::db_print(char* buf){
 void DB_SCHED_TRIGGER::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
-    fileset_id = atoi(r[i++]);
+    id = atol(r[i++]);
+    fileset_id = atol(r[i++]);
     need_work = atoi(r[i++]);
     work_available = atoi(r[i++]);
     no_work_available = atoi(r[i++]);
@@ -2454,10 +2513,10 @@ int DB_SCHED_TRIGGER::update_single_state(const DB_SCHED_TRIGGER::STATE state, c
 void DB_FILESET_SCHED_TRIGGER_ITEM::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    fileset.id = atoi(r[i++]);
+    fileset.id = atol(r[i++]);
     strcpy2(fileset.name, r[i++]);
-    trigger.id = atoi(r[i++]);
-    trigger.fileset_id = atoi(r[i++]);
+    trigger.id = atol(r[i++]);
+    trigger.fileset_id = atol(r[i++]);
     trigger.need_work = atoi(r[i++]);
     trigger.work_available = atoi(r[i++]);
     trigger.no_work_available = atoi(r[i++]);
@@ -2600,7 +2659,7 @@ void DB_VDA_FILE::db_print(char* buf){
 void DB_VDA_FILE::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atof(r[i++]);
     strcpy2(dir, r[i++]);
     strcpy2(file_name, r[i++]);
@@ -2615,8 +2674,8 @@ void DB_VDA_FILE::db_parse(MYSQL_ROW &r) {
 void DB_VDA_CHUNK_HOST::db_print(char* buf) {
     sprintf(buf,
         "create_time=%f, "
-        "vda_file_id=%d, "
-        "host_id=%d, "
+        "vda_file_id=%lu, "
+        "host_id=%lu, "
         "physical_file_name='%s', "
         "present_on_host=%d, "
         "transfer_in_progress=%d, "
@@ -2639,8 +2698,8 @@ void DB_VDA_CHUNK_HOST::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
     create_time = atof(r[i++]);
-    vda_file_id = atoi(r[i++]);
-    host_id = atoi(r[i++]);
+    vda_file_id = atol(r[i++]);
+    host_id = atol(r[i++]);
     strcpy2(physical_file_name, r[i++]);
     present_on_host = (atoi(r[i++]) != 0);
     transfer_in_progress = (atoi(r[i++]) != 0);
@@ -2652,7 +2711,7 @@ void DB_VDA_CHUNK_HOST::db_parse(MYSQL_ROW &r) {
 void DB_BADGE::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    id = atoi(r[i++]);
+    id = atol(r[i++]);
     create_time = atof(r[i++]);
     type = atoi(r[i++]);
     strcpy2(name, r[i++]);
@@ -2667,8 +2726,8 @@ void DB_BADGE::db_parse(MYSQL_ROW &r) {
 void DB_BADGE_USER::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    badge_id = atoi(r[i++]);
-    user_id = atoi(r[i++]);
+    badge_id = atol(r[i++]);
+    user_id = atol(r[i++]);
     create_time = atof(r[i++]);
     reassign_time = atof(r[i++]);
 }
@@ -2676,16 +2735,16 @@ void DB_BADGE_USER::db_parse(MYSQL_ROW &r) {
 void DB_BADGE_TEAM::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    badge_id = atoi(r[i++]);
-    team_id = atoi(r[i++]);
+    badge_id = atol(r[i++]);
+    team_id = atol(r[i++]);
     create_time = atof(r[i++]);
     reassign_time = atof(r[i++]);
 }
 
 void DB_CREDIT_USER::db_print(char* buf) {
     sprintf(buf,
-        "userid=%d, "
-        "appid=%d, "
+        "userid=%lu, "
+        "appid=%lu, "
         "njobs=%d, "
         "total=%.15e, "
         "expavg=%.15e, "
@@ -2704,8 +2763,8 @@ void DB_CREDIT_USER::db_print(char* buf) {
 void DB_CREDIT_USER::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    userid = atoi(r[i++]);
-    appid = atoi(r[i++]);
+    userid = atol(r[i++]);
+    appid = atol(r[i++]);
     njobs = atoi(r[i++]);
     total = atof(r[i++]);
     expavg = atof(r[i++]);
@@ -2715,8 +2774,8 @@ void DB_CREDIT_USER::db_parse(MYSQL_ROW &r) {
 
 void DB_CREDIT_TEAM::db_print(char* buf) {
     sprintf(buf,
-        "teamid=%d, "
-        "appid=%d, "
+        "teamid=%lu, "
+        "appid=%lu, "
         "njobs=%d, "
         "total=%.15e, "
         "expavg=%.15e, "
@@ -2735,8 +2794,8 @@ void DB_CREDIT_TEAM::db_print(char* buf) {
 void DB_CREDIT_TEAM::db_parse(MYSQL_ROW &r) {
     int i=0;
     clear();
-    teamid = atoi(r[i++]);
-    appid = atoi(r[i++]);
+    teamid = atol(r[i++]);
+    appid = atol(r[i++]);
     njobs = atoi(r[i++]);
     total = atof(r[i++]);
     expavg = atof(r[i++]);
diff --git a/db/boinc_db.h b/db/boinc_db.h
index bf99c06..3d01698 100644
--- a/db/boinc_db.h
+++ b/db/boinc_db.h
@@ -35,12 +35,12 @@
 extern DB_CONN boinc_db;
 
 struct TRANSITIONER_ITEM {
-    int id; // WARNING: this is the WU ID
+    DB_ID_TYPE id; // WARNING: this is the WU ID
     char name[256];
-    int appid;
+    DB_ID_TYPE appid;
     int min_quorum;
     bool need_validate;
-    int canonical_resultid;
+    DB_ID_TYPE canonical_resultid;
     int transition_time;
     int delay_bound;
     int error_mask;
@@ -53,10 +53,10 @@ struct TRANSITIONER_ITEM {
     int priority;
     int hr_class;
     int batch;
-    int app_version_id;
+    DB_ID_TYPE app_version_id;
     int transitioner_flags;
     int size_class;
-    int res_id; // This is the RESULT ID
+    DB_ID_TYPE res_id; // This is the RESULT ID
     char res_name[256];
     int res_report_deadline;
     int res_server_state;
@@ -64,9 +64,9 @@ struct TRANSITIONER_ITEM {
     int res_validate_state;
     int res_file_delete_state;
     int res_sent_time;
-    int res_hostid;
+    DB_ID_TYPE res_hostid;
     int res_received_time;
-    int res_app_version_id;
+    DB_ID_TYPE res_app_version_id;
     int res_exit_status;
 
     void clear();
@@ -88,7 +88,7 @@ struct DB_USER_SUBMIT : public DB_BASE, public USER_SUBMIT {
 };
 
 struct STATE_COUNTS {
-    int appid; 
+    DB_ID_TYPE appid; 
     int last_update_time;   
     int result_server_state_2;       
     int result_server_state_4;       
@@ -105,7 +105,7 @@ struct STATE_COUNTS {
 
 struct DB_STATE_COUNTS : public DB_BASE, public STATE_COUNTS {
     DB_STATE_COUNTS(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char *);
     void db_parse(MYSQL_ROW &row);
 };
@@ -121,7 +121,7 @@ struct VALIDATOR_ITEM {
 class DB_PLATFORM : public DB_BASE, public PLATFORM {
 public:
     DB_PLATFORM(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
 };
@@ -129,7 +129,7 @@ public:
 class DB_APP : public DB_BASE, public APP {
 public:
     DB_APP(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
 };
@@ -137,7 +137,7 @@ public:
 class DB_APP_VERSION : public DB_BASE, public APP_VERSION {
 public:
     DB_APP_VERSION(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
     void operator=(APP_VERSION& w) {APP_VERSION::operator=(w);}
@@ -146,7 +146,7 @@ public:
 class DB_USER : public DB_BASE, public USER {
 public:
     DB_USER(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
     void operator=(USER& r) {USER::operator=(r);}
@@ -155,7 +155,7 @@ public:
 class DB_TEAM : public DB_BASE, public TEAM {
 public:
     DB_TEAM(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
 };
@@ -163,7 +163,7 @@ public:
 class DB_HOST : public DB_BASE, public HOST {
 public:
     DB_HOST(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     int update_diff_sched(HOST&);
     int update_diff_validator(HOST&);
     int fpops_percentile(double percentile, double& fpops);
@@ -178,13 +178,13 @@ public:
 class DB_RESULT : public DB_BASE, public RESULT {
 public:
     DB_RESULT(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     int mark_as_sent(int old_server_state, int report_grace_period);
     void db_print(char*);
     void db_print_values(char*);
     void db_parse(MYSQL_ROW &row);
     void operator=(RESULT& r) {RESULT::operator=(r);}
-    int get_unsent_counts(APP&, int* unsent);
+    int get_unsent_counts(APP&, int* unsent, int count_max);
     int make_unsent(
         APP&, int size_class, int n, const char* order_clause, int& nchanged
     );
@@ -193,7 +193,7 @@ public:
 class DB_WORKUNIT : public DB_BASE, public WORKUNIT {
 public:
     DB_WORKUNIT(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_print_values(char*);
     void db_parse(MYSQL_ROW &row);
@@ -211,7 +211,7 @@ public:
 class DB_MSG_FROM_HOST : public DB_BASE, public MSG_FROM_HOST {
 public:
     DB_MSG_FROM_HOST(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
 };
@@ -219,7 +219,7 @@ public:
 class DB_MSG_TO_HOST : public DB_BASE, public MSG_TO_HOST {
 public:
     DB_MSG_TO_HOST(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
 };
@@ -227,7 +227,7 @@ public:
 class DB_ASSIGNMENT : public DB_BASE, public ASSIGNMENT {
 public:
     DB_ASSIGNMENT(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW& row);
 };
@@ -262,12 +262,12 @@ public:
     int nitems_this_query;
 
     int enumerate(
-        int appid,
+        DB_ID_TYPE appid,
         int nresult_limit,
         int wu_id_modulus,
         int wu_id_remainder,
-        int wu_id_min,
-        int wu_id_max,
+        DB_ID_TYPE wu_id_min,
+        DB_ID_TYPE wu_id_max,
         std::vector<VALIDATOR_ITEM>& items
     );
     int update_result(RESULT&);
@@ -278,7 +278,7 @@ public:
 // used by the feeder and scheduler for outgoing work
 //
 struct WORK_ITEM {
-    int res_id;
+    DB_ID_TYPE res_id;
     int res_priority;
     int res_server_state;
     double res_report_deadline;
@@ -287,7 +287,7 @@ struct WORK_ITEM {
 };
 
 class DB_WORK_ITEM : public WORK_ITEM, public DB_BASE_SPECIAL {
-    int start_id;
+    DB_ID_TYPE start_id;
         // when enumerate_all is used, keeps track of which ID to start from
 public:
     DB_WORK_ITEM(DB_CONN* p=0);
@@ -322,7 +322,7 @@ struct IN_PROGRESS_RESULT {
 class DB_IN_PROGRESS_RESULT : public IN_PROGRESS_RESULT, public DB_BASE_SPECIAL {
 public:
     DB_IN_PROGRESS_RESULT(DB_CONN* p=0);
-    int enumerate(int hostid, const char* result_names);
+    int enumerate(DB_ID_TYPE hostid, const char* result_names);
 };
 
 // Used by the scheduler to handle results reported by clients
@@ -331,17 +331,17 @@ public:
 
 struct SCHED_RESULT_ITEM {
     char queried_name[256];     // name as reported by client
-    int id;
+    DB_ID_TYPE id;
     char name[256];
-    int workunitid;
-    int appid;
+    DB_ID_TYPE workunitid;
+    DB_ID_TYPE appid;
     int server_state;
     int client_state;
     int validate_state;
     int outcome;
-    int hostid;
-    int userid;
-    int teamid;
+    DB_ID_TYPE hostid;
+    DB_ID_TYPE userid;
+    DB_ID_TYPE teamid;
     int sent_time;
     int received_time;
     double cpu_time;
@@ -351,7 +351,7 @@ struct SCHED_RESULT_ITEM {
     int exit_status;
     int file_delete_state;
     double elapsed_time;
-    int app_version_id;
+    DB_ID_TYPE app_version_id;
     double peak_working_set_size;
     double peak_swap_size;
     double peak_disk_usage;
@@ -379,7 +379,7 @@ public:
 };
 
 struct FILE_ITEM {
-    int id;
+    DB_ID_TYPE id;
     char name[254];
     char md5sum[34];
     double size;
@@ -390,14 +390,14 @@ struct FILE_ITEM {
 class DB_FILE : public DB_BASE, public FILE_ITEM {
 public:
     DB_FILE(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
     void operator=(FILE_ITEM& f) {FILE_ITEM::operator=(f);}
 };
 
 struct FILESET_ITEM {
-    int id;
+    DB_ID_TYPE id;
     char name[254];
 
     void clear();
@@ -406,7 +406,7 @@ struct FILESET_ITEM {
 class DB_FILESET : public DB_BASE, public FILESET_ITEM {
 public:
     DB_FILESET(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
     void operator=(FILESET_ITEM& f) {FILESET_ITEM::operator=(f);}
@@ -416,8 +416,8 @@ public:
 };
 
 struct FILESET_FILE_ITEM {
-    int fileset_id;
-    int file_id;
+    DB_ID_TYPE fileset_id;
+    DB_ID_TYPE file_id;
 
     void clear();
 };
@@ -431,8 +431,8 @@ public:
 };
 
 struct SCHED_TRIGGER_ITEM {
-    int id;
-    int fileset_id;
+    DB_ID_TYPE id;
+    DB_ID_TYPE fileset_id;
     bool need_work;
     bool work_available;
     bool no_work_available;
@@ -444,7 +444,7 @@ struct SCHED_TRIGGER_ITEM {
 class DB_SCHED_TRIGGER : public DB_BASE, public SCHED_TRIGGER_ITEM {
 public:
     DB_SCHED_TRIGGER(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
     void operator=(SCHED_TRIGGER_ITEM& t) {SCHED_TRIGGER_ITEM::operator=(t);}
@@ -501,7 +501,7 @@ public:
 
 struct DB_VDA_FILE : public DB_BASE, public VDA_FILE {
     DB_VDA_FILE(DB_CONN* p=0);
-    int get_id();
+    DB_ID_TYPE get_id();
     void db_print(char*);
     void db_parse(MYSQL_ROW &row);
 };
@@ -514,7 +514,7 @@ struct DB_VDA_CHUNK_HOST : public DB_BASE, public VDA_CHUNK_HOST {
 
 struct DB_BADGE : public DB_BASE, public BADGE {
     DB_BADGE(DB_CONN* p=0);
-    int get_id() {return id;};
+    DB_ID_TYPE get_id() {return id;};
     void db_print(char*){};
     void db_parse(MYSQL_ROW&);
 };
diff --git a/db/boinc_db_types.h b/db/boinc_db_types.h
index 22ce07d..03795fb 100644
--- a/db/boinc_db_types.h
+++ b/db/boinc_db_types.h
@@ -38,11 +38,16 @@
 
 struct BEST_APP_VERSION;
 
+typedef long DB_ID_TYPE;
+    // in principle should be unsigned long,
+    // but we put negative values in app_version_id to represent
+    // anonymous platform versions
+
 // A compilation target, i.e. a architecture/OS combination.
 // Client will be sent applications only for platforms they support.
 //
 struct PLATFORM {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
     char name[256];                 // i.e. "sparc-sun-solaris"
     char user_friendly_name[256];   // i.e. "SPARC Solaris 2.8"
@@ -58,7 +63,7 @@ struct PLATFORM {
 // An application.
 //
 struct APP {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
     char name[256];         // application name, preferably short
     int min_version;        // don't use app versions before this
@@ -96,11 +101,11 @@ struct APP {
 // A version of an application.
 //
 struct APP_VERSION {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int appid;
+    DB_ID_TYPE appid;
     int version_num;
-    int platformid;
+    DB_ID_TYPE platformid;
     char xml_doc[APP_VERSION_XML_BLOB_SIZE];
     // describes app files. format:
     // <file_info>...</file_info>
@@ -153,7 +158,7 @@ struct APP_VERSION {
 };
 
 struct USER {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
     char email_addr[256];
     char name[256];
@@ -180,7 +185,7 @@ struct USER {
         //    </venue>
         //    ...
         // </project_preferences>
-    int teamid;                     // team ID if any
+    DB_ID_TYPE teamid;                     // team ID if any
     char venue[256];                // home/work/school (default)
     char url[256];                  // user's web page if any
     bool send_email;
@@ -222,9 +227,9 @@ struct USER {
 // a team has > 0 members
 
 struct TEAM {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int userid;             // User ID of team founder
+    DB_ID_TYPE userid;             // User ID of team founder
     char name[256];
     char name_lc[256];      // Team name in lowercase (used for searching)
     char url[256];
@@ -247,9 +252,9 @@ struct TEAM {
 };
 
 struct HOST {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int userid;             // ID of user running this host
+    DB_ID_TYPE userid;             // ID of user running this host
         // If the host is "zombied" during merging of duplicate hosts,
         // this field is set to zero and rpc_seqno is used to
         // store the ID of the new host (kludge, but what the heck)
@@ -342,6 +347,8 @@ struct HOST {
         // DEPRECATED
     char product_name[256];
     double gpu_active_frac;
+    int p_ngpus;
+    double p_gpu_fpops;
 
     // the following items are passed in scheduler requests,
     // and used in the scheduler,
@@ -407,9 +414,9 @@ struct HOST {
     // transition, but don't create results; used for targeted jobs
 
 struct WORKUNIT {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int appid;                  // associated app
+    DB_ID_TYPE appid;                  // associated app
     char name[256];
     char xml_doc[BLOB_SIZE];
     int batch;
@@ -434,7 +441,7 @@ struct WORKUNIT {
         // 2) abort task if it uses more than this disk
     bool need_validate;         // this WU has at least 1 successful result in
                                 // validate state = INIT
-    int canonical_resultid;     // ID of canonical result, or zero
+    DB_ID_TYPE canonical_resultid;     // ID of canonical result, or zero
     double canonical_credit;    // credit that all correct results get
         // TODO: deprecate and remove code
     int transition_time;        // when should transition_handler
@@ -464,8 +471,8 @@ struct WORKUNIT {
     char mod_time[16];
     double rsc_bandwidth_bound;
         // send only to hosts with at least this much download bandwidth
-    int fileset_id;
-    int app_version_id;
+    DB_ID_TYPE fileset_id;
+    DB_ID_TYPE app_version_id;
         // if app uses homogeneous_app_version,
         // which version this job is committed to (0 if none)
     int transitioner_flags;
@@ -481,8 +488,8 @@ struct WORKUNIT {
 };
 
 struct CREDITED_JOB {
-    int userid;
-    double workunitid;
+    DB_ID_TYPE userid;
+    DB_ID_TYPE workunitid;
 
     // the following not used in the DB
     void clear();
@@ -555,9 +562,9 @@ struct CREDITED_JOB {
 #define ANON_PLATFORM_INTEL   -5
 
 struct RESULT {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int workunitid;
+    DB_ID_TYPE workunitid;
     int server_state;               // see above
     int outcome;                    // see above; defined if server state OVER
     int client_state;               // phase that client contacted us in.
@@ -565,8 +572,8 @@ struct RESULT {
                                     // error details are in stderr_out.
                                     // The values for this field are defined
                                     // in lib/result_state.h
-    int hostid;                     // host processing this result
-    int userid;                     // user processing this result
+    DB_ID_TYPE hostid;                     // host processing this result
+    DB_ID_TYPE userid;                     // user processing this result
     int report_deadline;            // deadline for receiving result
     int sent_time;                  // when result was sent to host
     int received_time;              // when result was received from host
@@ -584,16 +591,16 @@ struct RESULT {
     int random;                     // determines send order
     int app_version_num;            // version# of app
         // DEPRECATED - THIS DOESN'T DETERMINE VERSION ANY MORE
-    int appid;                      // copy of WU's appid
+    DB_ID_TYPE appid;                      // copy of WU's appid
     int exit_status;                // application exit status, if any
-    int teamid;
+    DB_ID_TYPE teamid;
     int priority;
     char mod_time[16];
     double elapsed_time;
         // AKA runtime; returned by 6.10+ clients
     double flops_estimate;
         // misnomer: actually the peak device FLOPS, returned by app_plan().
-    int app_version_id;
+    DB_ID_TYPE app_version_id;
         // ID of app version used to compute this
         // 0 if unknown (relic of old scheduler)
         // -1 anon platform, unknown resource type (relic)
@@ -614,8 +621,8 @@ struct RESULT {
 };
 
 struct BATCH {
-    int id;
-    int user_id;
+    DB_ID_TYPE id;
+    DB_ID_TYPE user_id;
         // submitter
     int create_time;
     double logical_start_time;
@@ -640,7 +647,7 @@ struct BATCH {
         // the sum of credits of all results
     char name[256];
         // user-assigned name; need not be unique
-    int app_id;
+    DB_ID_TYPE app_id;
     int project_state;
         // project-assigned
     char description[256];
@@ -653,7 +660,7 @@ struct BATCH {
 // info for users who can submit jobs
 //
 struct USER_SUBMIT {
-    int user_id;
+    DB_ID_TYPE user_id;
     double quota;
     double logical_start_time;
     bool submit_all;
@@ -662,9 +669,9 @@ struct USER_SUBMIT {
 };
 
 struct MSG_FROM_HOST {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int hostid;
+    DB_ID_TYPE hostid;
     char variety[256];              // project-defined; what kind of msg
     bool handled;                   // message handler has processed this
     char xml[MSG_FROM_HOST_BLOB_SIZE];
@@ -672,9 +679,9 @@ struct MSG_FROM_HOST {
 };
 
 struct MSG_TO_HOST {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int hostid;
+    DB_ID_TYPE hostid;
     char variety[256];              // project-defined; what kind of msg
     bool handled;                   // scheduler has sent this
     char xml[MSG_TO_HOST_BLOB_SIZE];      // text to include in sched reply
@@ -682,20 +689,20 @@ struct MSG_TO_HOST {
 };
 
 struct ASSIGNMENT {
-    int id;
+    DB_ID_TYPE id;
     int create_time;
-    int target_id;              // ID of target host, user, or team
+    DB_ID_TYPE target_id;              // ID of target host, user, or team
     int target_type;            // none/host/user/team
     int multi;                  // 0 = single host, 1 = all hosts in set
-    int workunitid;
-    int _resultid;              // if not multi, the result ID
+    DB_ID_TYPE workunitid;
+    DB_ID_TYPE _resultid;              // if not multi, the result ID
         // deprecated
     void clear();
 };
 
 struct HOST_APP_VERSION {
-    int host_id;
-    int app_version_id;
+    DB_ID_TYPE host_id;
+    DB_ID_TYPE app_version_id;
         // or for anon platform:
         // 1000000*appid + 2 (CPU)
         // 1000000*appid + 3 (NVIDIA)
@@ -732,7 +739,7 @@ struct HOST_APP_VERSION {
 };
 
 struct VDA_FILE {
-    int id;
+    DB_ID_TYPE id;
     double create_time;
     char dir[256];
     char file_name[256];
@@ -747,8 +754,8 @@ struct VDA_FILE {
 
 struct VDA_CHUNK_HOST {
     double create_time;
-    int vda_file_id;
-    int host_id;
+    DB_ID_TYPE vda_file_id;
+    DB_ID_TYPE host_id;
     char physical_file_name[256];     // e.g. vda_467_0_file.ext
     bool present_on_host;
     bool transfer_in_progress;
@@ -770,7 +777,7 @@ struct VDA_CHUNK_HOST {
 };
 
 struct BADGE {
-    int id;
+    DB_ID_TYPE id;
     double create_time;
     int type;
     char name[256];
@@ -784,24 +791,24 @@ struct BADGE {
 };
 
 struct BADGE_USER {
-    int badge_id;
-    int user_id;
+    DB_ID_TYPE badge_id;
+    DB_ID_TYPE user_id;
     double create_time;
     double reassign_time;
     void clear();
 };
 
 struct BADGE_TEAM {
-    int badge_id;
-    int team_id;
+    DB_ID_TYPE badge_id;
+    DB_ID_TYPE team_id;
     double create_time;
     double reassign_time;
     void clear();
 };
 
 struct CREDIT_USER {
-    int userid;
-    int appid;
+    DB_ID_TYPE userid;
+    DB_ID_TYPE appid;
         // need not be an app ID
     int njobs;
     double total;
@@ -812,8 +819,8 @@ struct CREDIT_USER {
 };
 
 struct CREDIT_TEAM {
-    int teamid;
-    int appid;
+    DB_ID_TYPE teamid;
+    DB_ID_TYPE appid;
     int njobs;
     double total;
     double expavg;
diff --git a/db/constraints.sql b/db/constraints.sql
index 7f0ceb5..b2a0368 100644
--- a/db/constraints.sql
+++ b/db/constraints.sql
@@ -131,10 +131,18 @@ alter table assignment
     add index asgn_target(target_type, target_id);
 
 alter table job_file
-    add unique jf_md5(md5);
+    add unique jf_name(name);
 
 alter table badge_user
     add unique (user_id, badge_id);
 
 alter table badge_team
     add unique (team_id, badge_id);
+
+alter table credit_user
+    add index cu_total(appid, total),
+    add index cu_avg(appid, expavg);
+
+alter table credit_team
+    add index ct_total(appid, total),
+    add index ct_avg(appid, expavg);
diff --git a/db/db_base.cpp b/db/db_base.cpp
index 8a0906a..295261e 100644
--- a/db/db_base.cpp
+++ b/db/db_base.cpp
@@ -192,7 +192,7 @@ int DB_CONN::ping() {
 DB_BASE::DB_BASE(const char *tn, DB_CONN* p) : db(p), table_name(tn) {
 }
 
-int DB_BASE::get_id() { return 0;}
+DB_ID_TYPE DB_BASE::get_id() { return 0;}
 void DB_BASE::db_print(char*) {}
 void DB_BASE::db_parse(MYSQL_ROW&) {}
 
@@ -215,13 +215,13 @@ int DB_BASE::affected_rows() {
 
 //////////// FUNCTIONS FOR TABLES THAT HAVE AN ID FIELD ///////
 
-int DB_BASE::lookup_id(int id) {
+int DB_BASE::lookup_id(DB_ID_TYPE id) {
     char query[MAX_QUERY_LEN];
     int retval;
     MYSQL_ROW row;
     MYSQL_RES* rp;
 
-    sprintf(query, "select * from %s where id=%u", table_name, id);
+    sprintf(query, "select * from %s where id=%lu", table_name, id);
 
     retval = db->do_query(query);
     if (retval) return retval;
@@ -241,7 +241,7 @@ int DB_BASE::lookup_id(int id) {
 int DB_BASE::update() {
     char vals[MAX_QUERY_LEN], query[MAX_QUERY_LEN];
     db_print(vals);
-    sprintf(query, "update %s set %s where id=%u", table_name, vals, get_id());
+    sprintf(query, "update %s set %s where id=%lu", table_name, vals, get_id());
     int retval = db->do_query(query);
     if (retval) return retval;
     if (db->affected_rows() != 1) return ERR_DB_NOT_FOUND;
@@ -254,9 +254,13 @@ int DB_BASE::update() {
 int DB_BASE::update_field(const char* clause, const char* where_clause) {
     char query[MAX_QUERY_LEN];
     if (where_clause) {
-        sprintf(query, "update %s set %s where id=%u and %s", table_name, clause, get_id(), where_clause);
+        sprintf(query, "update %s set %s where id=%lu and %s",
+            table_name, clause, get_id(), where_clause
+        );
     } else {
-        sprintf(query, "update %s set %s where id=%u", table_name, clause, get_id());
+        sprintf(query, "update %s set %s where id=%lu",
+            table_name, clause, get_id()
+        );
     }
     return db->do_query(query);
 }
@@ -265,7 +269,7 @@ int DB_BASE::update_field(const char* clause, const char* where_clause) {
 //
 int DB_BASE::delete_from_db() {
     char query[MAX_QUERY_LEN];
-    sprintf(query, "delete from %s where id=%u", table_name, get_id());
+    sprintf(query, "delete from %s where id=%lu", table_name, get_id());
     return db->do_query(query);
 }
 
@@ -282,7 +286,7 @@ int DB_BASE::get_field_ints(const char* fields, int nfields, int* vals) {
     MYSQL_RES* rp;
 
     sprintf(query,
-        "select %s from %s where id=%u", fields, table_name, get_id()
+        "select %s from %s where id=%lu", fields, table_name, get_id()
     );
     retval = db->do_query(query);
     if (retval) return retval;
@@ -306,7 +310,7 @@ int DB_BASE::get_field_str(const char* field, char* buf, int buflen) {
     MYSQL_RES* rp;
 
     sprintf(query,
-        "select %s from %s where id=%u", field, table_name, get_id()
+        "select %s from %s where id=%lu", field, table_name, get_id()
     );
     retval = db->do_query(query);
     if (retval) return retval;
@@ -321,10 +325,10 @@ int DB_BASE::get_field_str(const char* field, char* buf, int buflen) {
     return 0;
 }
 
-int DB_BASE::max_id(int& n, const char* clause) {
+int DB_BASE::max_id(DB_ID_TYPE& n, const char* clause) {
     char query[MAX_QUERY_LEN];
     sprintf(query, "select max(id) from %s %s", table_name, clause);
-    return get_integer(query, n);
+    return get_long(query, n);
 }
 
 /////////////// FUNCTIONS THAT DON'T REQUIRE AN ID FIELD ///////////////
@@ -407,7 +411,7 @@ int DB_BASE::end_enumerate() {
     return 0;
 }
 
-int DB_BASE::get_integer(const char* query, int& n) {
+int DB_BASE::get_long(const char* query, long& n) {
     int retval;
     MYSQL_ROW row;
     MYSQL_RES* resp;
@@ -420,7 +424,7 @@ int DB_BASE::get_integer(const char* query, int& n) {
     if (!row || !row[0]) {
         retval = ERR_DB_NOT_FOUND;
     } else {
-        n = atoi(row[0]);
+        n = atol(row[0]);
     }
     mysql_free_result(resp);
     return retval;
@@ -445,12 +449,12 @@ int DB_CONN::get_double(const char* query, double& x) {
     return retval;
 }
 
-int DB_BASE::count(int& n, const char* clause) {
+int DB_BASE::count(long& n, const char* clause) {
     char query[MAX_QUERY_LEN];
 
     sprintf(query, "select count(*) from %s %s", table_name, clause);
 
-    return get_integer(query, n);
+    return get_long(query, n);
 }
 
 int DB_BASE::sum(double& x, const char* field, const char* clause) {
diff --git a/db/db_base.h b/db/db_base.h
index 5a6da4a..c65ac8f 100644
--- a/db/db_base.h
+++ b/db/db_base.h
@@ -33,21 +33,16 @@ inline int safe_atoi(const char* s) {
     return atoi(s);
 }
 
+inline long safe_atol(const char* s) {
+    if (!s) return 0;
+    return atol(s);
+}
+
 inline double safe_atof(const char* s) {
     if (!s) return 0;
     return atof(s);
 }
 
-#define strcpy2(x, y) \
-    { \
-        const char* z = y; \
-        if (!z) { \
-            x[0]=0; \
-        } else { \
-            strlcpy(x, z, sizeof(x)); \
-        } \
-    }
-
 #define MAX_QUERY_LEN 262144
     // TODO: use string for queries, get rid of this
 
@@ -64,6 +59,8 @@ enum ISOLATION_LEVEL {
     SERIALIZABLE
 };
 
+typedef long DB_ID_TYPE;
+
 // represents a connection to a database
 //
 class DB_CONN {
@@ -102,20 +99,20 @@ public:
     int delete_from_db_multi(const char* where_clause);
     int get_field_ints(const char*, int, int*);
     int get_field_str(const char*, char*, int);
-    int lookup_id(int id);
+    int lookup_id(DB_ID_TYPE id);
     int lookup(const char*);
     int enumerate(const char* clause="", bool use_use_result=false);
     int end_enumerate();
-    int count(int&, const char* clause="");
-    int max_id(int&, const char* clause="");
+    int count(long&, const char* clause="");
+    int max_id(DB_ID_TYPE&, const char* clause="");
     int sum(double&, const char* field, const char* clause="");
-    int get_integer(const char* query, int&);
+    int get_long(const char* query, long&);
     int affected_rows();
 
     DB_CONN* db;
     const char *table_name;
     CURSOR cursor;
-    virtual int get_id();
+    virtual DB_ID_TYPE get_id();
     virtual void db_print(char*);
     virtual void db_parse(MYSQL_ROW&);
 };
diff --git a/db/schema.sql b/db/schema.sql
index cc4dbcb..7ca2760 100644
--- a/db/schema.sql
+++ b/db/schema.sql
@@ -132,6 +132,7 @@ create table team (
     ping_user               integer         not null default 0,
     ping_time               integer unsigned not null default 0,
     joinable                tinyint         not null default 1,
+    mod_time                timestamp default current_timestamp on update current_timestamp,
     primary key (id)
 ) engine=MyISAM;  
 
@@ -148,6 +149,7 @@ create table host (
     timezone                integer         not null,
     domain_name             varchar(254),
     serialnum               varchar(254),
+        /* now used to encode stuff related to GPUs and VBox */
     last_ip_addr            varchar(254),
     nsame_ip_addr           integer         not null,
 
@@ -189,6 +191,8 @@ create table host (
     error_rate              double          not null default 0,
     product_name            varchar(254)    not null,
     gpu_active_frac         double          not null,
+    p_ngpus                 integer         not null,
+    p_gpu_fpops             double          not null,
 
     primary key (id)
 ) engine=InnoDB;
@@ -348,12 +352,11 @@ create table user_submit_app (
     primary key (user_id, app_id)
 ) engine = InnoDB;
 
--- Record files present on server.
--- Files are named jf_(md5)
+-- Record files (created by remote file mgt) present on server.
 --
 create table job_file (
     id                      integer         not null auto_increment,
-    md5                     char(64)        not null,
+    name                    varchar(255)    not null,
     create_time             double          not null,
     delete_time             double          not null,
     primary key (id)
diff --git a/doc/account_managers.inc b/doc/account_managers.inc
new file mode 100644
index 0000000..8c24a91
--- /dev/null
+++ b/doc/account_managers.inc
@@ -0,0 +1,18 @@
+<?php
+
+$account_managers = array(
+    array(
+        "BAM!",
+        "https://bam.boincstats.com/",
+        tra("BAM! assists you in creating and managing your BOINC project accounts and helps you with setting preferences, joining or creating teams, connecting your computers to projects, and much more.  Whether you're a new or an existing BOINC user, BAM will help you get the most out of BOINC."),
+        "BAM.png"
+    ),
+    array(
+        "GridRepublic",
+        "http://www.gridrepublic.org/",
+        tra("GridRepublic members run a screensaver that allows their computers to work on public-interest research projects when the machines are not otherwise in use. This screensaver does not affect performance of the host computer any more than an ordinary screensaver does."),
+        "logo_gridrepublic_vc.gif"
+    ),
+);
+
+?>
diff --git a/doc/addon_data.php b/doc/addon_data.php
index 1dcb8a7..16051f8 100644
--- a/doc/addon_data.php
+++ b/doc/addon_data.php
@@ -59,7 +59,7 @@ array(
     1371112500
 ),
 array(
-    'http://www.myfavoritegadgets.info/monitors/BOINCMonitor/BOINCMonitor.html',
+    'https://windows10gadgets.pro/toolsandutils/boincmonitor/boincmonitor.html',
     'BOINC Monitor',
     '',
     'A desktop gadget that shows the status of running tasks',
@@ -275,6 +275,17 @@ array('http://mion.faireal.net/BES/',
 
 $linux = array(
 array(
+    'http://www.pkcarlisle.com/dietboinc',
+    'Diet BOINC',
+    '1.0',
+    'A no-graphics, lightweight XScreenSaver compatible alternative for BOINC screen saver',
+    'http://www.pkcarlisle.com/dietboinc',
+    'Linux',
+    'Explicitly avoids libraries not included with default Linux or Python. No graphics requirements beyond what XScreenSaver uses. Looks only for BOINC data, not the client which creates it. Attempts to find BOINC data without anticipating a default location. Works with shared resources/multiple @Home projects.',
+    1438068943
+),
+
+array(
     'http://kde-look.org/content/show.php?content=154630',
     'BOINC Monitor',
     '2.3',
@@ -370,14 +381,14 @@ array('boincprog-1.1.5.tar.gz',
 //    '',
 //    1110378627
 //),
-array('boinc-2.7.tar.bz2',
+array('http://phil.eimer.perso.sfr.fr/boinc-2.16.tar.xz',
     'Boinc bash script',
-    '2.7',
+    '2.16',
     'Boinc state displayer',
-    'http://phileimer.9online.fr',
+    'http://www.jpmr.org/',
     'Linux or any OS with bash shell',
-    'Can be used as a console tool to display information about BOINC projects and working units. It can also be used to start or stop BOINC.',
-    1163903033
+    'A console tool to display information about BOINC projects and tasks. It can also be used to start or stop BOINC.',
+    1442346490
 ),
 //array('CPDNSpy.rar',
 //    'CPDNSpy Linux/Mac',
diff --git a/doc/build_po.php b/doc/build_po.php
index 344e444..cfa4452 100755
--- a/doc/build_po.php
+++ b/doc/build_po.php
@@ -32,12 +32,14 @@ msgstr ""
 
 HDR;
 
+$files = "docutil.php download.php help.php help_funcs.php index.php projects.inc ../html/inc/news.inc";
+$pipe = popen("xgettext --omit-header --add-comments -o - --keyword=tra -L PHP $files", "r");
+
 $out = fopen("BOINC-Web.pot", "w");
-fwrite($out, $header);
 
-$files = "docutil.php download.php help.php help_funcs.php index.php projects.inc ../html/inc/news.inc";
-$pipe = popen("xgettext --omit-header -o - --keyword=tra -L PHP $files", "r");
+fwrite($out, $header);
 stream_copy_to_stream($pipe, $out);
+
 fclose($pipe);
 fclose($out);
 
diff --git a/doc/docutil.php b/doc/docutil.php
index 87db30d..885c824 100644
--- a/doc/docutil.php
+++ b/doc/docutil.php
@@ -11,7 +11,7 @@ if (0) {
     fclose($f);
 }
 
-function search_form() {
+function boinc_google_search_form() {
     echo "
     <form method=get action=\"https://google.com/search\">
     <input type=hidden name=domains value=\"https://boinc.berkeley.edu\">
@@ -68,7 +68,7 @@ function page_head($title, $extra="") {
         <td align=right><a href=index.php><img src=\"logo/www_logo.gif\" alt=\"BOINC logo\"></a>
         <br>
 ";
-        search_form();
+        boinc_google_search_form();
 echo "
         </td>
         </tr></table>
diff --git a/doc/download.php b/doc/download.php
index 36fba17..61deb32 100644
--- a/doc/download.php
+++ b/doc/download.php
@@ -39,27 +39,34 @@ function download_link($pname, $button=false) {
 
     if ($button) {
         if ($vbox_file) {
-            echo tra("We recommend that you also install VirtualBox, so your computer can work on science projects that require it.");
-            echo " <a href=wiki/VirtualBox>";
+            echo tra("We recommend that you also install %1VirtualBox%2, so your computer can work on science projects that require it.", "<a href=https://www.virtualbox.org/>", "</a>");
+            echo " <a href=http://boinc.berkeley.edu/wiki/VirtualBox>";
             echo tra("Learn more about VirtualBox.");
             echo "</a>";
 
             echo "<table><tr valign=top><td>\n";
-            echo "
-                <table cellpadding=10><tr valign=top><td class=button>
-                <a href=\"$vbox_url\"><font size=4><u>"
-                .tra("Download BOINC + VirtualBox")
-                ."</u></font></a>
-                <br>"
-                .sprintf(tra("for %s"), $long_name)
-                ." ($vbox_size MB)"
-                ."<br><span class=note>"
-                .sprintf(tra("BOINC %s"), $num)
-                .", "
-                .sprintf(tra("VirtualBox %s"), $vbox_version)
-                ."</span></td></tr>
-                </table>
-            ";
+
+            // the current BOINC VBox doesn't work on Win 10
+            // remove this when we make a new release
+            //
+            if (!strstr($client_info, "Windows NT 10")) {
+                echo "
+                    <table cellpadding=10><tr valign=top><td class=button_green>
+                    <a href=\"$vbox_url\"><font size=5em><u>"
+                    .tra("Download BOINC + VirtualBox")
+                    ."</u></font></a>
+                    <br>"
+                    // "for %s" identifies the operating system, e.g. "for Windows"
+                    .sprintf(tra("for %s"), $long_name)
+                    ." ($vbox_size MB)"
+                    ."<br><span class=note>"
+                    .sprintf(tra("BOINC %s"), $num)
+                    .", "
+                    .sprintf(tra("VirtualBox %s"), $vbox_version)
+                    ."</span></td></tr>
+                    </table>
+                ";
+            }
             echo "</td><td>\n";
         }
         echo "
diff --git a/doc/get_platforms.inc b/doc/get_platforms.inc
index 3cca2e4..4f82730 100644
--- a/doc/get_platforms.inc
+++ b/doc/get_platforms.inc
@@ -40,6 +40,7 @@ function friendly_name($p) {
     }
     if (strlen($pc)) {
         if (strstr($pc, 'cuda')) $q .= " (NVIDIA GPU)";
+        else if (strstr($pc, 'nvidia')) $q .= " (NVIDIA GPU)";
         else if (strstr($pc, 'ati')) $q .= " (AMD/ATI GPU)";
         else if (strstr($pc, 'intel_gpu')) $q .= " (Intel GPU)";
         else if (strstr($pc, 'mt')) $q .= " (multicore)";
@@ -49,6 +50,8 @@ function friendly_name($p) {
     return $q;
 }
 
+// return an array of bools for the supported platforms
+//
 function get_platform_icon_flags($l) {
     $x = new StdClass;
     $x->windows = false;
@@ -78,6 +81,7 @@ function get_platform_icon_flags($l) {
         if (strstr($p, "armv6")) $x->rasp_pi = true;
         if (strstr($pc, "ati")) $x->amd_gpu = true;
         if (strstr($pc, "cuda")) $x->nvidia_gpu = true;
+        if (strstr($pc, "nvidia")) $x->nvidia_gpu = true;
         if (strstr($pc, "intel_gpu")) $x->intel_gpu = true;
         if (strstr($pc, "vbox")) $x->vbox = true;
     }
@@ -95,7 +99,7 @@ function platform_icons($f) {
         $x .= "<img hspace=$hs height=$ht src=images/mac.jpg title=\"Supports Mac OS X\">";
     }
     if ($f->linux) {
-        $x .= "<img hspace=$hs height=$ht src=images/linux.jpg title=\"Supports Linux\">";
+        $x .= "<img hspace=$hs height=$ht src=images/linux.jpg title=\"Supports Linux on Intel\">";
     }
     if ($f->android) {
         $x .= "<img hspace=$hs height=$ht src=images/android.png title=\"Supports Android\">";
@@ -104,7 +108,7 @@ function platform_icons($f) {
         $x .= "<img hspace=$hs height=$ht src=images/freebsd.png title=\"Supports FreeBSD\">";
     }
     if ($f->rasp_pi) {
-        $x .= "<img hspace=$hs height=$ht src=images/raspberry-pi.jpg title=\"Supports Raspberry Pi\">";
+        $x .= "<img hspace=$hs height=$ht src=images/linux_arm.png title=\"Supports Linux on ARM (e.g. Raspberry Pi)\">";
     }
     if ($f->nvidia_gpu) {
         $x .= "<img hspace=$hs height=$ht src=images/nvidia.jpg title=\"Supports NVIDIA GPUs\">";
@@ -128,6 +132,18 @@ function canonical_plan_class($pc) {
     return $pc;
 }
 
+// some specific cases where we know the project doesn't have jobs
+//
+function valid($url, $plat) {
+    if (strstr($url, "gpugrid.net")) {
+        if (strstr($plat, "android")) return false;
+        if (strstr($plat, "vbox")) return false;
+    } else if (strstr($url, "csgrid")) {
+        if (strstr($plat, "android")) return false;
+    }
+    return true;
+}
+
 // get platforms from get_project_config.php (preferred method)
 //
 // format is either
@@ -192,7 +208,9 @@ function get_platforms($url) {
                     $plat .= "[".$pc."]";
                 }
             }
-            $list[] = $plat;
+            if (valid($url, $plat)) {
+                $list[] = $plat;
+            }
         }
     }
     return array_unique($list);
@@ -263,22 +281,21 @@ function get_platforms_cached($url) {
     $u = urlencode($url);
     $fname = "/home/boincadm/boinc/doc/platforms/$u";
     $t = @filemtime($fname);
-	if ($t && $t > time() - 604800) {
-        $l = json_decode(file_get_contents($fname));
+	if (strstr($url, "gpugrid") || ($t && $t > time() - 604800)) {
+        return json_decode(file_get_contents($fname));
+    }
+    $l = get_platforms($url);
+    if (!$l) {
+        $l = get_platforms2($url);
+    }
+    if ($l) {
+        file_put_contents($fname, json_encode($l));
     } else {
-        $l = get_platforms($url);
-        if (!$l) {
-            $l = get_platforms2($url);
-        }
-        if ($l) {
-            file_put_contents($fname, json_encode($l));
+        if (file_exists($fname)) {
+            touch($fname);
         } else {
-            if (file_exists($fname)) {
-                touch($fname);
-            } else {
-                $l[] = "Unknown";
-                file_put_contents($fname, json_encode($l));
-            }
+            $l[] = "Unknown";
+            file_put_contents($fname, json_encode($l));
         }
     }
     return $l;
@@ -313,6 +330,7 @@ function get_platform_icons($url) {
 
 
 // Mediawiki extension to show a project's platforms.
+// Doesn't seem to work anymore.
 //
 function wfPlatforms() {
     global $wgParser;
diff --git a/doc/help.php b/doc/help.php
index ae5987d..d948135 100644
--- a/doc/help.php
+++ b/doc/help.php
@@ -4,44 +4,40 @@ require_once("spoken_languages.php");
 require_once("help_db.php");
 require_once("../html/inc/translation.inc");
 
-page_head("Live help via Skype or email");
+page_head(tra("Live help via Skype or email"));
 
 echo "
 <p>
-".sprintf(
-    tra("BOINC Online Help lets you talk one-on-one with experienced BOINC users, who can: %s answer questions about BOINC and volunteer computing; %s walk you through the process of installing and using BOINC; %s troubleshoot any problems you might have."),
-    "<ul><li>",
-    "<li>",
-    "<li>",
-    "<li>"
-)."
+".tra("BOINC Live Help lets get one-on-one help from an experienced BOINC user, who can answer questions about BOINC, help you install and use BOINC, and troubleshoot problems.")."
 </ul>
 <p>
-".sprintf(
-    tra("BOINC Online Help is based on %sSkype%s, an Internet-based telephone system. Skype is free (both the software and the calls).  If you don't already have Skype, please %sdownload and install it now%s.  When you're finished, return to this page."),
-    "<a href=\"http://www.skype.com\">",
+".tra("You can communicate with a helper")."
+<ul>
+<li> ".tra("by email")."
+<li>
+".tra("
+by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page.",
+    "<a href=\"https://www.skype.com\">",
     "</a>",
-    "<a href=\"http://www.skype.com\">",
+    "<a href=\"https://www.skype.com\">",
     "</a>"
 )."
+<li> ".tra("using Skype chat")."
+</ul>
 <p>
-".tra("The best way to get help is by voice, for which you need either built-in microphone and speakers or an external headset for your computer.  You can also use Skype's text-based chat system or regular email (if you don't have Skype) to communicate with Help Volunteers."),"
-
-<p>
-".tra("Volunteers speaking several languages are available. Please select a language:"),"
+".tra("Volunteers speaking many languages are available. Please select a language (number of helpers is shown):"),"
 <p>
 ";
 
-$langs = get_languages();
-sort($langs);
-$n = 0;
-foreach ($langs as $lang) {
+$langs = get_languages2();
+$i = 0;
+foreach ($langs as $lang=>$n) {
     $lang_enc = urlencode($lang);
-    if ($n) {
+    if ($i) {
         echo " · ";
     }
-    $n++;
-    echo "<a href=\"help_lang.php?lang=$lang_enc\"><b>$lang</b></a>";
+    $i++;
+    echo "<a href=\"help_lang.php?lang=$lang_enc\"><b>$lang</b></a> ($n)";
 }
 echo "
 <h2>".tra("Be a Help Volunteer")."</h2>
diff --git a/doc/help_db.php b/doc/help_db.php
index 90be11c..c5a9130 100644
--- a/doc/help_db.php
+++ b/doc/help_db.php
@@ -1,7 +1,8 @@
 <?php
 
-mysql_pconnect("localhost", "boincadm", null);
-mysql_select_db("support");
+$db_passwd = trim(file_get_contents("db_passwd"));
+ at mysql_pconnect("localhost", "boincadm", $db_passwd);
+ at mysql_select_db("support");
 
 function rating_insert($r) {
     $auth = mysql_real_escape_string($r->auth);
@@ -152,4 +153,29 @@ function get_languages() {
     return $langs;
 }
 
+function get_languages2() {
+    $langs = array();
+    $result = mysql_query("select lang1 from volunteer where hide=0");
+    while ($lang = mysql_fetch_object($result)) {
+        if (array_key_exists($lang->lang1, $langs)) {
+            $langs[$lang->lang1]++;
+        } else {
+            $langs[$lang->lang1] = 1;
+        }
+
+    }
+    mysql_free_result($result);
+    $result = mysql_query("select lang2 from volunteer where lang2<>'' and hide=0");
+    while ($lang = mysql_fetch_object($result)) {
+        if (array_key_exists($lang->lang2, $langs)) {
+            $langs[$lang->lang2]++;
+        } else {
+            $langs[$lang->lang2] = 1;
+        }
+    }
+    mysql_free_result($result);
+    arsort($langs);
+    return $langs;
+}
+
 ?>
diff --git a/doc/help_funcs.php b/doc/help_funcs.php
index a15502b..b0aaceb 100644
--- a/doc/help_funcs.php
+++ b/doc/help_funcs.php
@@ -47,6 +47,35 @@ function online($status) {
 //<script type="text/javascript" src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js"></script>
 //<a href="skype:rare44?call"><img src="http://mystatus.skype.com/balloon/rare44" style="border: none;" width="150" height="60" alt="My status" /></a>
 
+// NOTE: nothing above works anymore; Skype turned off their mystatus API.
+// Instead we now have the following
+
+function skype_script() {
+    echo '<script type="text/javascript" src="https://secure.skypeassets.com/i/scom/js/skype-uri.js"></script>
+';
+}
+
+function skype_call_button($vol) {
+    if ($vol->text_ok && $vol->voice_ok) {
+        $x = "dropdown";
+    } else if ($vol->voice_ok) {
+        $x = "call";
+    } else {
+        $x = "chat";
+    }
+    echo "
+        <div id=\"SkypeButton_Call_".$vol->skypeid."_1\">
+          <script type=\"text/javascript\">
+            Skype.ui({
+              \"name\": \"$x\",
+              \"element\": \"SkypeButton_Call_".$vol->skypeid."_1\",
+              \"participants\": [\"".$vol->skypeid."\"],
+              \"imageSize\": 24
+            });
+          </script>
+        </div>
+    ";
+}
 
 function input($name, $val) {
     return "<input name=$name size=40 value=\"$val\">";
@@ -104,7 +133,7 @@ function help_warning() {
         <span class=emphasize>
         <li>
         "
-        . tra("BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC or the University of California.")
+        . tra("BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC.")
         ." <li>"
         .tra(
             "%1Never%2 give email address or password information to BOINC helpers.",
diff --git a/doc/help_lang.php b/doc/help_lang.php
index 950f573..e31da2d 100644
--- a/doc/help_lang.php
+++ b/doc/help_lang.php
@@ -91,7 +91,6 @@ function show_vol($vol) {
     $image = button_image($status);
     list_item_array(array(
         vol_info($vol),
-        status_string($status),
         vol_modes($vol),
         info($vol),
         rating_info($vol)
@@ -99,9 +98,7 @@ function show_vol($vol) {
 }
 
 function show_vols($vols) {
-    echo "
-        You can send email to a volunteer even if they're offline.
-        To do so, click their name.
+    echo tra("You can send email to a volunteer even if they're offline.  To do so, click their name.")."
         <p>
     ";
     help_warning();
@@ -115,7 +112,6 @@ function show_vols($vols) {
     list_start("border=0");
     list_heading_array(array(
         "Volunteer name<br><font size=2>click to contact</font>",
-        "Status",
         "Voice/Text",
         "Info",
         "Feedback <br><font size=-2>Click to see comments</font>",
@@ -130,9 +126,9 @@ if ($lang) {
     if (!is_spoken_language($lang)) {
         boinc_error_page("Not a recognized language");
     }
-    page_head("Online Help in $lang");
+    page_head(tra("Live help in %1", $lang));
 } else {
-    page_head("Online Help in all languages");
+    page_head(tra("Live help in all languages"));
 }
 $vols = get_vols($lang);
 $vols = order_vols($vols);
diff --git a/doc/help_vol.php b/doc/help_vol.php
index 24e31e6..27bd062 100644
--- a/doc/help_vol.php
+++ b/doc/help_vol.php
@@ -10,7 +10,7 @@ $volid = get_int('volid');
 $vol = vol_lookup($volid);
 
 function show_info($vol) {
-    $x = "<span class=note> Country: $vol->country\n";
+    $x = "Country: $vol->country\n";
     if ($vol->availability) {
         $x .= "<br>Usual hours: $vol->availability";
     }
@@ -24,14 +24,13 @@ function show_info($vol) {
         $x .= "<br>Primary language: $vol->lang1";
         $x .= "<br>Secondary language: $vol->lang2";
     }
-    $x .= "</span><p>";
+    $x .= "<p>";
     return $x;
 }
 
 function live_contact($vol) {
     $skypeid = $vol->skypeid;
     echo "
-    <font size=+2><b>Contact $vol->name on Skype</b></font>
     <script>
         if (navigator.userAgent.indexOf('MSIE') != -1) {
             document.write(
@@ -92,7 +91,7 @@ function email_contact($vol) {
             
         Please include a detailed description of the problem
         you're experiencing.
-        If possible, include the contents of BOINC's message log.
+        If possible, include the contents of BOINC's event log.
         </span>",
         textarea("message", "")
     );
@@ -104,9 +103,10 @@ function email_contact($vol) {
 
 $send_email = get_str2('send_email');
 $rate = get_str2('rate');
-session_set_cookie_params(86400*365);
-session_start();
-$uid = session_id();
+//session_set_cookie_params(86400*365);
+//@session_start();
+//$uid = @session_id();
+$uid = false;
 
 if ($send_email) {
     $volid = $_GET['volid'];
@@ -178,7 +178,9 @@ if ($send_email) {
     page_tail();
 } else {
     page_head("Help Volunteer: $vol->name");
+    skype_script();
     echo show_info($vol);
+if (false) {
     $status = skype_status($vol->skypeid);
     if ($status != $vol->status) {
         $vol->status = $status;
@@ -197,6 +199,9 @@ if ($send_email) {
     if (online($status)) {
         live_contact($vol);
     }
+}
+    echo "<h2>Contact $vol->name by Skype</h2>\n";
+    skype_call_button($vol);
     email_contact($vol);
     echo "</td></tr></table><p>\n";
     echo "<table class=box cellpadding=8 width=100%><tr><td>";
diff --git a/doc/index.php b/doc/index.php
index 933a462..4bb12b2 100644
--- a/doc/index.php
+++ b/doc/index.php
@@ -1,37 +1,48 @@
 <?php
 
-$host = $_SERVER["SERVER_NAME"];
-if ($host == "bossa.berkeley.edu") {
-    Header("Location: https://boinc.berkeley.edu/trac/wiki/BossaIntro");
-    exit();
+//define("MYSQLI", false);
+if (isset($_SERVER) && array_key_exists('SERVER_NAME', $_SERVER)) {
+    $host = $_SERVER["SERVER_NAME"];
+    if ($host == "bossa.berkeley.edu") {
+        Header("Location: https://boinc.berkeley.edu/trac/wiki/BossaIntro");
+        exit();
 
-}
-if ($host == "bolt.berkeley.edu") {
-    Header("Location: https://boinc.berkeley.edu/trac/wiki/BoltIntro");
-    exit();
+    }
+    if ($host == "bolt.berkeley.edu") {
+        Header("Location: https://boinc.berkeley.edu/trac/wiki/BoltIntro");
+        exit();
+    }
 }
 
-require_once("docutil.php");
-require_once("../html/inc/translation.inc");
-require_once("../html/inc/language_names.inc");
+$dir = getcwd();
+chdir("/mydisks/a/users/boincadm/projects/dev/html/user");
+require_once("../inc/util.inc");
+require_once("../inc/language_names.inc");
+require_once("../inc/news.inc");
+require_once("../inc/forum.inc");
+chdir($dir);
 
 function show_participant() {
     $i = rand(0, 99);
     $j = $i+1;
-    echo "<table cellpadding=8 cellspacing=0 width=100%>
-        <tr><td class=heading_right>
-        <center>
-        <span class=section_title>".tra("Computing power")."</span>
-        <br>
-        <a class=heading href=chart_list.php><b>".tra("Top 100 volunteers")."</b></a>
-        · <a class=heading href=\"links.php#stats\"><b>".tra("Statistics")."</b></a>
-        </center>
-        </td></tr>
-        <tr><td>
-    ";
-    show_totals();
-    include("piecharts/$i.html");
-    echo "</td></tr></table>";
+    panel(
+        tra("Computing power"),
+        function() use ($i) {
+            echo "
+                <center>
+            ";
+            show_totals();
+            echo '
+                <p> </p>
+                <a class="btn btn-xs btn-primary" href=chart_list.php>'.tra("Top 100 volunteers").'</a>
+                <a class="btn btn-xs btn-primary" href="links.php#stats">'.tra("Statistics").'</a>
+                <hr>
+                <p>
+            ';
+            echo "</center>";
+            include("piecharts/$i.html");
+        }
+     );
 }
 
 function show_totals() {
@@ -52,139 +63,155 @@ function show_totals() {
     $hosts = number_format($hosts);
 
     $petaflops = number_format($credit_day/200000000, 3);
-    echo tra("Active:")." $users ".tra("volunteers,")." $hosts ".tra("computers.
-")."        <br>".tra("24-hour average:")." $petaflops ".tra("PetaFLOPS.")."
-        <hr size=1 width=\"80%\">
+    echo
+        tra("24-hour average:")." $petaflops ".tra("PetaFLOPS.")."
+        <br>
+        ".tra("Active:")." $users ".tra("volunteers,")." $hosts ".tra("computers.
+")."
     ";
 }
 
 function show_news_items() {
-    require_once("../html/inc/news.inc");
-    require_once("../html/inc/forum.inc");
-    echo "
-        <table border=0 cellpadding=8>
-        <tr><td class=heading_right>
-        <center>
-        <span class=section_title>".tra("News")."</span>
-        </center>
-    ";
-    show_news(0, 5);
-    echo "
-        </td></tr></table>
-    ";
+    panel(
+        tra("News"),
+        function() {
+            if (!file_exists("stop_web")) {
+                show_news(0, 5);
+            } else {
+                echo "<p>".tra("Database not available; please try again later.");
+            }
+        }
+    );
 }
 
 function show_participate() {
-    echo "
-        <tr><td class=heading_left>
-    <a href=https://www.facebook.com/BOINC-32672338584/><img width=36 src=images/facebook_logo.jpg align=left title='BOINC on Facebook'></a>
-    <a href=https://plus.google.com/+boinc><img width=36 src=images/google_plus_logo.jpg align=left title='BOINC on Google+'></a>
-        <center>
-        <span class=section_title>".tra("Volunteer")."</span>
-        <br>
-        <a class=heading href=download.php><b>".tra("Download")."</b></a>
-        · <a class=heading href=\"/wiki/BOINC_Help\"><b>".tra("Help")."</b></a>
-        · <a class=heading href=\"wiki/User_manual\"><b><span class=nobr>".tra("Documentation")."</span></b></a> 
-        · <a class=heading href=addons.php><b><span class=nobr>".tra("Add-ons")."</span></b></a> 
-        · <a class=heading href=links.php><b><span class=nobr>".tra("Links")."</span></b></a> 
-        </center>
-        </td></tr>
-        <tr><td>
-        <p>
-        ".tra("Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure diseases, study global warming, discover pulsars, and do many other types of scientific research.  It's safe, secure, and easy:")."
-        <ol>
-        <li> <a href=projects.php>".tra("Choose projects")."</a>
-        <li> <a href=download.php>".tra("Download BOINC software")."</a>
-        <li> ".tra("Enter an email address and password.")."
-        </ol>
-        <p>
-        ".sprintf(
-            tra("Or, if you run several projects, try an %saccount manager%s such as %sGridRepublic%s or %sBAM!%s. "),
-            "<a href=\"wiki/Account_managers\">",
-            "</a>",
-            "<a href=\"https://www.gridrepublic.org\">",
-            "</a>",
-            "<a href=\"http://bam.boincstats.com/\">",
-            "</a>"
-        )."
-        <p>
-        For Android devices, download the BOINC or
-        <a href=http://www.htc.com/www/go/power-to-give-faqs/>HTC Power To Give</a> app from the Google Play Store.
-        <a href=http://www.htc.com/www/go/power-to-give-faqs/>
-        <img align=right valign=top height=50 src=images/htc-power-to-give.jpg>
-        </a>
-        </td></tr>
-    ";
+    panel(
+        // "Volunteer" is used as a verb
+            tra("Volunteer"),
+        function () {
+            echo tra("Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure diseases, study global warming, discover pulsars, and do many other types of scientific research.  It's safe, secure, and easy:");
+            echo '<p>
+                <center>
+                <a class="btn btn-lg btn-success" href="download.php">'.tra("Download").'</a>
+                </center>
+                <p></p>
+                '.tra("For Android devices, get the BOINC app from the Google Play Store; for Kindle, get it from the Amazon App Store.").'
+                <p></p>
+            ';
+            echo tra(
+                "You can choose to support %1projects%2 such as %3, %4, and %5, among many others.",
+                '<a href="projects.php">', '</a>',
+                '<a href="https://einsteinathome.org">Einstein at Home</a>',
+                '<a href="https://worldcommunitygrid.org">IBM World Community Grid</a>',
+                '<a href="https://setiathome.berkeley.edu">SETI at home</a>'
+            );
+            echo " ";
+            echo tra("If you run several projects, try an %1account manager%2 such as %3GridRepublic%4 or %5BAM!%6. ",
+                "<a href=\"wiki/Account_managers\">", "</a>",
+                "<a href=\"https://www.gridrepublic.org\">", "</a>",
+                "<a href=\"https://bam.boincstats.com/\">", "</a>"
+            );
+            echo '
+                <p></p>
+                '.tra("Learn more:").'
+                <p></p>
+                <center>
+                <a class="btn btn-xs btn-primary" href="dev/">'.tra("Message boards").'</a>
+                <a class="btn btn-xs btn-primary" href="projects.php">'.tra("Projects").'</a>
+                <a class="btn btn-xs btn-primary" href="http://boinc.berkeley.edu/wiki/User_manual"><span class=nobr>'.tra("Manual").'</span></a> 
+                <a class="btn btn-xs btn-primary" href="http://boinc.berkeley.edu/wiki/BOINC_Help">'.tra("Help").'</a>
+                <a class="btn btn-xs btn-primary" href="addons.php"><span class=nobr>'.tra("Add-ons").'</span></a> 
+                <a class="btn btn-xs btn-primary" href="links.php"><span class=nobr>'.tra("Links").'</span></a> 
+                </center>
+            ';
+            echo '
+                <p></p>
+                '.tra("Other ways to help:").'
+                <p></p>
+                <center>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/ContributePage">'.tra("Overview").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/TranslateIntro">'.tra("Translate").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/AlphaInstructions">'.tra("Test").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/WikiMeta">'.tra("Document").'</a>
+                <a class="btn btn-xs btn-primary" href="http://boinc.berkeley.edu/wiki/Publicizing_BOINC">'.tra("Publicize").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/ReportBugs">'.tra("Report bugs").'</a>
+                </center>
+                <p>
+            ';
+        }
+    );
 }
 
-function show_create() {
-    echo "
-        <tr><td class=heading_left>
-        <center>
-        <span class=section_title>".tra("Compute with BOINC")."</span>
-        <br>
-        <b><a class=heading href=\"trac/wiki/ProjectMain\">".tra("Documentation")."</a></b>
-        · <b><a class=heading href=\"trac/wiki/ServerUpdates\">".tra("Software updates")."</a></b>
-        </center>
-        </td></tr>
-        <tr><td>
-        <ul>
-        <li>
-    ",
-    tra("%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving you the computing power of thousands of CPUs.",
-        "<b>", "</b>", "<a href=volunteer.php>", "</a>"
-    ),
-    "<li>",
-    tra("%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing Center%4.",
-        "<b>", "</b>",
-        "<a href=\"trac/wiki/VirtualCampusSupercomputerCenter\">", "</a>"
-    ),
-    "<li>",
-    tra("%1Companies%2: use BOINC for %3desktop Grid computing%4.",
-        "<b>", "</b>", "<a href=dg.php>", "</a>"
-    ),
-    " </ul>
-        </td></tr>
-    ";
+function show_science() {
+    panel(
+        tra("High-throughput computing with BOINC"),
+        function() {
+            echo 
+                tra("%1Scientists%2: use BOINC to create a %3volunteer computing project%4, giving you the power of thousands of CPUs and GPUs.",
+                    "<b>", "</b>", "<a href=volunteer.php>", "</a>"
+                )
+                .'<p></p>'.
+                tra("%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing Center%4.",
+                    "<b>", "</b>",
+                    "<a href=\"trac/wiki/VirtualCampusSupercomputerCenter\">", "</a>"
+                )
+                .'<p></p>'.
+                tra("%1Companies%2: use BOINC for %3desktop Grid computing%4.",
+                    "<b>", "</b>", "<a href=dg.php>", "</a>"
+                )
+                .'<p></p>
+                <center>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/ProjectMain">'.tra("Documentation").'</a>
+                <a class="btn btn-xs btn-primary" href=trac/wiki/BoincDocker>'.tra("BOINC and Docker").'</a>
+                </center>
+            ';
+        }
+    );
+}
+function show_software() {
+    panel(
+        tra("Software development"),
+        function() {
+            echo 
+                tra("BOINC is a software platform for volunteer computing. It includes client, server, and web components, and APIs for connecting other components.").'
+                <p></p>
+                <center>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/SourceCodeGit">'.tra("Source code").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/SoftwareBuilding">'.tra("Building BOINC").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/SoftwareAddon">APIs</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/SoftwareDevelopment">'.tra("Design documents").'</a>
+                </center>
+                <p></p>
+                '.tra("We're always looking for programmers to help us maintain and develop BOINC.").'
+                <p></p>
+                <center>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/DevProcess">'.tra("Development process").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/DevProjects">'.tra("Development tasks").'</a>
+                </center>
+                <p></p>
+                '.tra("BOINC is distributed under the LGPL open-source license.").'
+            ';
+        }
+    );
 }
 
-function show_other() {
-    echo "
-        <tr><td class=heading_left>
-        <center>
-        <span class=section_title>".tra("The BOINC project")."</span>
-        </center>
-        </td></tr>
-        <tr><td>
-            <table width=100%><tr><td width=50% valign=top>
-            <ul>
-            <li> <a href=\"dev/\">".tra("Message boards")."</a>
-            <li> <a href=email_lists.php>".tra("Email lists")."</a>
-            <li> <a href=\"trac/wiki/ProjectPeople\">".tra("Personnel and contributors")."</a>
-            <li> <a href=\"trac/wiki/BoincEvents\">".tra("Events")."</a>
-            <li> <a href=\"trac/wiki/BoincPapers\">".tra("Papers and talks")."</a>
-            <li> <a href=\"trac/wiki/ResearchProjects\">".tra("Research projects")."</a>
-            <li> <a href=logo.php>".tra("Logos and graphics")."</a>
-            <li> <a href=\"http://bolt.berkeley.edu/\">Bolt</a> ",tra("and"),  " <a href=\"http://bossa.berkeley.edu/\">Bossa</a>
-            </ul>
-            </td><td valign=top>
-            <ul>
-            <li> <a href=trac/wiki/SourceCodeGit>".tra("Source code")."</a>
-            <li> ".tra("Help wanted")."
-            <ul>
-                <li> <a href=\"trac/wiki/DevProjects\">".tra("Programming")."</a>
-                <li> <a href=\"trac/wiki/TranslateIntro\">".tra("Translation")."</a>
-                <li> <a href=\"trac/wiki/AlphaInstructions\">".tra("Testing")."</a>
-                <li> <a href=\"trac/wiki/WikiMeta\">".tra("Documentation")."</a>
-                <li> <a href=\"http://boinc.berkeley.edu/wiki/Publicizing_BOINC\">".tra("Publicity")."</a>
-            </ul>
-            <li> <a href=\"trac/wiki/SoftwareDevelopment\">".tra("Software development")."</a>
-            <li> <a href=\"trac/wiki/SoftwareAddon\">".tra("APIs for add-on software")."</a>
-            </ul>
-            </td></tr></table>
-            <br>
-        </td></tr>
-    ";
+function show_boinc() {
+    panel(
+        tra("The BOINC project"),
+        function() {
+            echo 
+                tra("BOINC is a community-based project.  Everyone is welcome to participate.").'
+                <p></p>
+                <center>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/ProjectPeople">Contact</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/EmailLists">'.tra("Email lists").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/BoincEvents">'.tra("Events").'</a>
+                <a class="btn btn-xs btn-primary" href="logo.php">'.tra("Graphics").'</a>
+                <a class="btn btn-xs btn-primary" href="trac/wiki/ProjectGovernance">'.tra("Governance").'</a>
+                </center>
+            ';
+        }
+    );
 }
 
 function show_nsf() {
@@ -206,63 +233,42 @@ function show_nsf() {
 
 header("Content-type: text/html; charset=utf-8");
 
-html_tag();
-echo "
+//html_tag();
+$rh_col_width = 390;
+
+echo '
     <head>
-    <link rel=\"shortcut icon\" href=\"logo/favicon.gif\">
-    <link rel=\"stylesheet\" type=\"text/css\" href=\"white.css\">
-    <link href=\"https://plus.google.com/117150698502685192946\" rel=\"publisher\" />
+    <link rel="shortcut icon" href="logo/favicon.gif">
+    <link rel="stylesheet" type="text/css" href="bootstrap.min.css">
+    <link href="https://plus.google.com/117150698502685192946" rel="publisher" />
     <title>BOINC</title>
-    <meta name=description content=\"BOINC is an open-source software platform for computing using volunteered resources\">
-    <meta name=keywords content=\"distributed scientific computing supercomputing grid SETI at home public computing volunteer computing \">
+    <meta name=description content="BOINC is an open-source software platform for computing using volunteered resources">
+    <meta name=keywords content="distributed scientific computing supercomputing grid SETI at home public computing volunteer computing ">
     </head>
     <body>
-    <table width=\"100%\" border=0><tr><td valign=top>
-    <img hspace=20 vspace=6 align=left src=\"logo/www_logo.gif\" alt=\"BOINC logo\">
-    </td><td align=center>
-    <span class=\"subtitle\">
-    ".sprintf(tra("Open-source software for %svolunteer computing%s and %sgrid computing%s."), '<a href=volunteer.php><span class=nobr>', '</span></a>', '<a href=dg.php><span class=nobr>', '</span></a>')."
-    </span><br><br>
-    <table><tr><td>
-";
-language_form();
-echo "</td><td>";
-search_form();
-echo "
-    </td></tr></table>
-    </td>
-    <td>
-    <center>
-    <a href=http://www.berkeley.edu>
-    <img src=images/uc_logo.jpg width=107 height=105 title=\"".tra("BOINC is based at The University of California, Berkeley")."\" alt=\"The University of California logo\">
-    </a>
-    </span>
-    </center>
-    </td>
-    </tr></table>
-    <table width=\"100%\" border=0 cellspacing=0 cellpadding=4>
-    <tr>
-    <td valign=top>
-    <table width=\"100%\" border=0 cellspacing=0 cellpadding=8>
-";
-show_participate();
-show_create();
-show_other();
-show_nsf();
-echo "
-    </table>
-    </td>
-";
-echo " <td valign=top width=390>
-";
+    <div class="container-fluid">
+';
+
+function left() {
+    echo '<div class="container-fluid">';
+    show_participate();
+    show_science();
+    show_software();
+    show_boinc();
+    show_participant();
+    //show_nsf();
+    echo '</div>';
+}
+
+function right() {
+    echo '<div class="container-fluid">';
+    show_news_items();
+    echo '</div>';
+}
 
-show_participant();
-show_news_items();
+page_head("BOINC", null, true);
 
-echo "
-    </td></tr>
-    </table>
-";
+grid(null, 'left', 'right');
 
 page_tail(true, true);
 ?>
diff --git a/doc/links.php b/doc/links.php
index 1fdc12a..5cf61d1 100644
--- a/doc/links.php
+++ b/doc/links.php
@@ -44,7 +44,7 @@ $info_sites = array(
         "(survey of volunteer computing, including non-BOINC projects)"
     ),
     array(
-        "http://www.rechenkraft.net/wiki/",
+        "https://www.rechenkraft.net/wiki/",
         "Rechenkraft.net wiki",
         "(German, English, Portuguese)"
     ),
@@ -57,9 +57,8 @@ $info_sites = array(
     //    "BOINC mini-FAQ"
     //),
     array(
-        "http://boincfaq.mundayweb.com/",
-        "The BOINC FAQ Service",
-        "(English, German, Dutch, Spanish and French)"
+        "https://boinc.mundayweb.com/wiki/index.php?title=BOINC_FAQs_Central",
+        "The BOINC FAQ Service"
     ),
     array(
         "http://www.seti-argentina.com.ar/instrucciones-boinc-manager",
@@ -88,19 +87,45 @@ $info_sites = array(
     ),
 );
 
+function show_social_media() {
+    echo "
+    <a name=misc></a>
+    <h3>Social media</h3>
+    ";
+    $misc_sites = array(
+        array("https://www.reddit.com/r/BOINC", "BOINC subreddit"),
+        //array("http://www.myboinc.com/", "BOINC Users of the Day"),
+        //array("http://groups.myspace.com/BOINConMYSPACE", "BOINC on MySpace"),
+        //array("http://www.boincuk.com/repository.php", "bunc", "(excellent newsletter produced by BOINC UK)"),
+        array("https://www.linkedin.com/groups/678497/profile", "BOINC group on LinkedIn"),
+        array("https://www.facebook.com/pages/Berkeley-Open-Infrastructure-for-Network-Computing/111781192172429", "BOINC on Facebook"),
+    );
+    echo "<ul>";
+    foreach ($misc_sites as $m) {
+        $u = $m[0];
+        $t1 = $m[1];
+        $t2 = $m[2];
+        echo "<li> <a href=$u>$t1</a> $t2
+        ";
+    }
+    echo "
+    </ul>
+    ";
+}
+
 page_head("Web resources for BOINC participants");
 
 echo "
 <h3>Contents</h3>
 <ul>
 <li> <a href=#info>Help and Information</a>
+<li> <a href=#misc>Social media</a>
 <li> <a href=#stats>Credit statistics</a>
 <li> <a href=#sigs>Signature images</a>
 <li> <a href=#team_stats>Team statistics</a>
 ";
 //<li> <a href=#status>Project status</a>
 echo "
-<li> <a href=#misc>Miscellaneous</a>
 <li> <a href=#skins>Skins for the BOINC Manager</a>
 <li> <a href=#sites>Other BOINC-related sites</a>
 (Information, message boards, and teams)
@@ -112,6 +137,9 @@ Sites with information and documentation about BOINC.
 ";
 shuffle($info_sites);
 site_list($info_sites);
+
+show_social_media();
+
 echo "
 <a name=stats></a>
 <h3>Credit statistics</h3>
@@ -119,7 +147,7 @@ echo "
 The following web sites show statistics for one or more BOINC projects.
 These sites use XML-format data exported by BOINC projects,
 as described
-<a href=http://boinc.berkeley.edu/trac/wiki/CreditStats>here</a>.
+<a href=trac/wiki/CreditStats>here</a>.
 If you're interested in running your own site or
 participating in the development efforts,
 please contact the people listed below.
@@ -157,32 +185,12 @@ if (0) {
     ";
 }
 echo "
-<a name=misc></a>
-<h3>Miscellaneous</h3>
-";
-$misc_sites = array(
-    //array("http://www.myboinc.com/", "BOINC Users of the Day"),
-    //array("http://groups.myspace.com/BOINConMYSPACE", "BOINC on MySpace"),
-    //array("http://www.boincuk.com/repository.php", "bunc", "(excellent newsletter produced by BOINC UK)"),
-    array("http://www.linkedin.com/groups?gid=678497", "BOINC group on LinkedIn"),
-    array("http://www.facebook.com/#!/pages/BOINC/109465765746025?ref=ts", "BOINC on Facebook"),
-);
-echo "<ul>";
-foreach ($misc_sites as $m) {
-    $u = $m[0];
-    $t1 = $m[1];
-    $t2 = $m[2];
-    echo "<li> <a href=$u>$t1</a> $t2
-    ";
-}
-echo "
-</ul>
 <a name=skins></a>
 <h3>Skins for the BOINC Manager</h3>
 <ul>
 <li> <a href=http://www.crunching-family.at/download-center/>Crunching Family Skin Download</a>
 <li> <a href=http://www.czechnationalteam.cz/view.php?cisloclanku=2007040003>Czech National Team skin</a> (in Czech)
-<li> <a href=http://www.grid-france.fr/tutos/boinc-personnaliser-aux-couleurs-equipe >Skin for Equipe France (WCG)</a>
+<li> <a href=http://www.grid-france.fr/tutos/boinc-personnaliser-aux-couleurs-equipe>Skin for Equipe France (WCG)</a>
 ";
 //<li> <a href=http://wcg.userfriendly.org/resources.jspx>Skin for team UserFriendly.org</a>
 echo "
@@ -268,6 +276,7 @@ language("French", array(
     //site("http://wwww.boinc-2tf.org", "2TF Asso"),
     //site("http://boincfrance.org", "BOINCFRANCE.ORG"),
     site("http://www.boinc-af.org", "L'Alliance Francophone"),
+    site("https://www.crunchersansfrontieres.org/", "CRUNCHERS SANS FRONTIERES"),
 ));
 language("German", array(
     site("http://www.crunchers-freiburg.de/", "crunchers at freiburg"),
@@ -367,8 +376,8 @@ If you'd like to add a web site to this list, please
 <h2>BOINC-related videos</h2>
 
 <ul>
-<li> <a href=http://www.youtube.com/watch?v=8iSRLIK-x6A>David Anderson talks about BOINC</a> (2006)
-<li> <a href=http://www.youtube.com/watch?v=GzATbET3g54>David Baker talks about Rosetta at home</a>
+<li> <a href=https://www.youtube.com/watch?v=8iSRLIK-x6A>David Anderson talks about BOINC</a> (2006)
+<li> <a href=https://www.youtube.com/watch?v=GzATbET3g54>David Baker talks about Rosetta at home</a>
 </ul>
 ";
 page_tail();
diff --git a/doc/logo.php b/doc/logo.php
index 2af7d2f..31790ed 100644
--- a/doc/logo.php
+++ b/doc/logo.php
@@ -31,6 +31,15 @@ The BOINC logo and associated icons were designed by Michal Krakowiak.
 Its arms represent the convergence of separated things
 (such as computers) into a unified whole.
 The colors are based on U.C. Berkeley's blue-and-gold colors.
+<p>
+The BOINC logo and its variants are in the public domain.
+If you use one of them in a web page,
+we ask that you link it to the BOINC web site
+(currently https://boinc.berkeley.edu)
+or display this URL near the image.
+<p>
+The volunteer-supplied images on this page are owned by
+their respectice creators; contact them for license info.
 <ul>
 <li> <a href=logo/www_logo.gif>164x73 version (GIFF)</a>
 <li> <a href=logo/boinc_600.jpg>600x305 version (JPEG)</a>
@@ -64,14 +73,13 @@ Installer splash screen:
 <p>
 <a href=https://boinc.berkeley.edu><img src=logo/pb_boinc.gif></a>
 <p>
-(always link this to https://boinc.berkeley.edu)
-<p>
 Monochrome/black:
 <p>
 <img src=logo/boinc_watermark.png>
 
 <p>
 
+<a name=wallpaper>
 Wallpaper:
 <p>
 ";
@@ -86,6 +94,13 @@ $wallpaper = array(
         "Jacob Klein",
         "<a href=images/boinc_logo_1920x1080.png><img width=180 src=images/boinc_logo_1920x1080.png></a>"
     ),
+    array(
+        "Francois Normandin",
+        "<a href=images/BOINC_wallpaper.jpg><img width=180 src=images/BOINC_wallpaper.jpg></a>
+        <a href=images/boinc_together-1.jpg><img width=180 src=images/boinc_together-1.jpg></a>
+        <a href=images/boinc_together_DARK-1.jpg><img width=180 src=images/boinc_together_DARK-1.jpg></a>
+        "
+    ),
 );
 art_list_head();
 art_list_show($wallpaper);
diff --git a/doc/manpages/boinccmd.xml b/doc/manpages/boinccmd.xml
index eb5a854..64ac96b 100644
--- a/doc/manpages/boinccmd.xml
+++ b/doc/manpages/boinccmd.xml
@@ -171,7 +171,7 @@
           <listitem>
               <para>Attach to an account using the project URL and authenticator
                 (send via email after <option>--create_account</option> was
-                succesfull).</para>
+                successful).</para>
           </listitem>
         </varlistentry>
 
diff --git a/doc/projects.inc b/doc/projects.inc
index af10f7d..3db4e21 100644
--- a/doc/projects.inc
+++ b/doc/projects.inc
@@ -20,12 +20,12 @@ $sensing = array(
     array(
         array(
             "Quake Catcher Network",
-            "http://qcn.stanford.edu/sensor/",
-            tra("Stanford University"),
+            "http://quakecatcher.net",
+            tra("University of Southern California"),
             tra("Seismology"),
-            tra("Quake-Catcher Network is developing the world's largest seismic network using sensors attached to computers and smartphones."),
-            "",
+            tra("Quake-Catcher Network uses sensors attached to computers and smartphones to detect seismic waves."),
             "",
+            "http://quakecatcher.net/sensor/",
             "Help detect earthquakes"
         ),
         array(
@@ -48,8 +48,8 @@ $cogsci = array(
             "MindModeling at Home",
             "http://mindmodeling.org/",
             "University of Dayton and Wright State University",
-            "Cognitive Science",
-            "MindModeling at Home uses computational cognitive process modeling to better understand the human mind, and specifically to study the mechanisms and processes that enable and moderate human performance and learning.",
+            tra("Cognitive Science"),
+            tra("MindModeling at Home uses computational cognitive process modeling to better understand the human mind, and specifically to study the mechanisms and processes that enable and moderate human performance and learning."),
             "mmlogo.gif",
             "",
             "Model the human brain"
@@ -67,7 +67,7 @@ $dormant_projects = array(
         array(
             "FreeHAL",
             "http://www.freehal.net/freehal_at_home/",
-            tra("Private"),
+            tra("Independent"),
             tra("Artificial intelligence"),
             tra("Parse and convert semantic nets for use in FreeHAL, an artificial intelligence that uses semantic networks, stemmers, part of speech databases, and part of speech taggers in order to imitate human behavior in conversations."),
             "",
@@ -85,8 +85,8 @@ $biomed = array(
             "DENIS at Home",
             "http://denis.usj.es/denisathome/",
             "San Jorge University, Zaragoza, Spain",
-            "Medical physiology",
-            "DENIS at Home does cardiac electrophysiological simulations, studying the electrical activity of the heart.",
+            tra("Medical physiology"),
+            tra("DENIS at Home does cardiac electrophysiological simulations, studying the electrical activity of the heart."),
             "",
             "",
             "Study the physiology of the heart"
@@ -95,32 +95,32 @@ $biomed = array(
             "RNA World",
             "http://www.rnaworld.de/rnaworld/",
             "Rechenkraft.net e.V.",
-            "Molecular biology",
-            "RNA World seeks to identify, analyze, structurally predict and design RNA molecules on the basis of established bioinformatics software.",
+            tra("Molecular biology"),
+            tra("RNA World seeks to identify, analyze, structurally predict and design RNA molecules on the basis of established bioinformatics software."),
             "rna4.png",
             "",
             "Study and design RNA molecules"
         ),
         array(
-            "FightNeglectedDiseases at Home",
+            "FiND at Home",
             "http://findah.ucd.ie/",
             tra("University College Dublin"),
             tra("Antimalarial drug discovery"),
-            tra("The parasite that causes malaria continues to evolve resistance to available medication. We therefore urgently need to discover new drugs, targeting new proteins in the parasite. The FightNeglectedDiseases at Home project is aimed at finding these new targets."),
+            tra("The parasite that causes malaria continues to evolve resistance to available medication. We therefore urgently need to discover new drugs, targeting new proteins in the parasite. The FiND at Home project is aimed at finding these new targets."),
             "",
             "",
             "Develop malaria drugs"
         ),
-        array(
-            "POEM at HOME",
-            "http://boinc.fzk.de/poem/",
-            tra("University of Karlsruhe (Germany)"),
-            tra("Protein structure prediction"),
-            tra("POEM at HOME uses a computational approach to predict the biologically active structure of proteins, to understand the signal-processing mechanisms when the proteins interact with one another, to understand diseases related to protein malfunction or aggregation, and to develop new drugs on the basis of the three-dimensions structure of biologically important proteins."),
-            "poem.jpg",
-            "",
-            "Study protein structure and interaction"
-        ),
+//        array(
+//            "POEM at HOME",
+//            "http://boinc.fzk.de/poem/",
+//            tra("University of Karlsruhe (Germany)"),
+//            tra("Protein structure prediction"),
+//            tra("POEM at HOME uses a computational approach to predict the biologically active structure of proteins, to understand the signal-processing mechanisms when the proteins interact with one another, to understand diseases related to protein malfunction or aggregation, and to develop new drugs on the basis of the three-dimensions structure of biologically important proteins."),
+//            "poem.jpg",
+//            "",
+//            "Study protein structure and interaction"
+//        ),
 //        array(
 //            "Docking at Home",
 //            "http://docking.cis.udel.edu/",
@@ -169,26 +169,26 @@ $biomed = array(
 //            tra("By joining Proteins at Home, you will be part of a large-scale protein structure prediction project and help to advance an important area of science. By increasing our knowledge of proteins, you will contribute to a better understanding of many diseases and pathologies, and to progress in both medicine and technology. Proteins at Home is not for profit."),
 //            "proteinsathome.gif"
 //        ),
-        array(
-            "The Lattice Project",
-            "http://boinc.umiacs.umd.edu/",
-            tra("University of Maryland Center for Bioinformatics and Computational Biology"),
-            tra("Life science research"),
-            tra("The Lattice Project, developed and administered at the University of Maryland, supplies computing power to researchers worldwide who are studying evolutionary relationships using DNA and protein sequence data."),
-            "lattice.gif",
-            "",
-            "Study evolution using genetics"
-        ),
-        array(
-            "Malariacontrol.net",
-            "http://www.malariacontrol.net/",
-            tra("The Swiss Tropical Institute"),
-            tra("Epidemiology"),
-            tra("Simulation models of the transmission dynamics and health effects of malaria are an important tool for malaria control. They can be used to determine optimal strategies for delivering mosquito nets, chemotherapy, or new vaccines which are currently under development and testing.  Such modeling is extremely computer intensive, requiring simulations of large human populations with a diverse set of parameters related to biological and social factors that influence the distr [...]
-            "africaathome.gif",
-            "",
-            "Study the spread of malaria"
-        ),
+//        array(
+//            "The Lattice Project",
+//            "http://boinc.umiacs.umd.edu/",
+//            tra("University of Maryland Center for Bioinformatics and Computational Biology"),
+//            tra("Life science research"),
+//            tra("The Lattice Project, developed and administered at the University of Maryland, supplies computing power to researchers worldwide who are studying evolutionary relationships using DNA and protein sequence data."),
+//            "lattice.gif",
+//            "",
+//            "Study evolution using genetics"
+//        ),
+//        array(
+//            "Malariacontrol.net",
+//            "http://www.malariacontrol.net/",
+//            tra("The Swiss Tropical Institute"),
+//            tra("Epidemiology"),
+//            tra("Simulation models of the transmission dynamics and health effects of malaria are an important tool for malaria control. They can be used to determine optimal strategies for delivering mosquito nets, chemotherapy, or new vaccines which are currently under development and testing.  Such modeling is extremely computer intensive, requiring simulations of large human populations with a diverse set of parameters related to biological and social factors that influence the dis [...]
+//            "africaathome.gif",
+//            "",
+//            "Study the spread of malaria"
+//        ),
 //        array(
 //            "Tanpaku",
 //            "http://issofty17.is.noda.tus.ac.jp/",
@@ -252,16 +252,16 @@ $earth = array(
 $astro_phys_chem = array(
     tra("Physical Science"),
     array(
-        array(
-            "CONVECTOR",
-            "http://convector.fsv.cvut.cz/",
-            "Czech Technical University in Prague",
-            tra("Mechanical engineering"),
-            tra("Currently we are calculating the optimum design of a structure call the 52 bar truss"),
-            "convector.jpg",
-            "",
-            "Study mechanical engineering"
-        ),
+//        array(
+//            "CONVECTOR",
+//            "http://convector.fsv.cvut.cz/",
+//            "Czech Technical University in Prague",
+//            tra("Mechanical engineering"),
+//            tra("Currently we are calculating the optimum design of a structure call the 52 bar truss"),
+//            "convector.jpg",
+//            "",
+//            "Study mechanical engineering"
+//        ),
         array(
             "theSkyNet POGS",
             "http://pogs.theskynet.org/pogs/",
@@ -277,22 +277,22 @@ $astro_phys_chem = array(
             "Asteroids at home",
             "http://asteroidsathome.net/boinc/",
             "Charles University in Prague",
-            "Astrophysics",
-            "The aim of the project is to derive shapes and spin for a significant part of the asteroid population. As input data, we use any asteroid photometry that is available. The results are asteroid convex shape models with the direction of the spin axis and the rotation period.",
+            tra("Astrophysics"),
+            tra("The aim of the project is to derive shapes and spin for a significant part of the asteroid population. As input data, we use any asteroid photometry that is available. The results are asteroid convex shape models with the direction of the spin axis and the rotation period."),
             "asteroids_logo.jpg",
             "",
             "Study the properties of asteroids"
         ),
-        array(
-            "Constellation",
-            "http://aerospaceresearch.net/constellation/",
-            "<a href='http://rechenkraft.net'>Rechenkraft.net</a>, <a href='http://stuttgart.dglr.de'>DGLR</a>, <a href='http://selfnet.de'>Selfnet</a>, and <a href='http://shackspace.de'>shack</a>",
-            "Aerospace-related science and engineering",
-            "Constellation is a platform for aerospace-related simulations, including trajectory optimization of launchers, satellites and probes, simulation of Moon's near-surface exosphere, and analysis of dynamic systems of exploration-rovers",
-            "constellation2.png",
-            "",
-            "Perform aerospace-related simulations"
-        ),
+//        array(
+//            "Constellation",
+//            "http://aerospaceresearch.net/constellation/",
+//            "<a href='http://rechenkraft.net'>Rechenkraft.net</a>, <a href='http://stuttgart.dglr.de'>DGLR</a>, <a href='http://selfnet.de'>Selfnet</a>, and <a href='http://shackspace.de'>shack</a>",
+//            tra("Aerospace-related science and engineering"),
+//            tra("Constellation is a platform for aerospace-related simulations, including trajectory optimization of launchers, satellites and probes, simulation of Moon's near-surface exosphere, and analysis of dynamic systems of exploration-rovers"),
+//            "constellation2.png",
+//            "",
+//            tra("Perform aerospace-related simulations")
+//        ),
 //        array(
 //            "eOn",
 //            "http://eon.ices.utexas.edu/eon2/",
@@ -311,25 +311,25 @@ $astro_phys_chem = array(
 //            tra("Monitor and study the hazard posed by near-Earth asteroids"),
 //            "http://orbit.psi.edu/"
 //        ),
-//        array(
-//            "Cosmology at Home",
-//            "http://www.cosmologyathome.org/",
-//            tra("University of Illinois at Urbana-Champaign"),
-//            tra("Astronomy"),
-//            tra("The goal of Cosmology at Home is to search for the model that best describes our Universe and to find the range of models that agree with the available astronomical particle physics data."),
-//            "cosmo.jpg",
-//            "",
-//            "Study the evolution of the Universe"
-//        ),
+        array(
+            "Cosmology at Home",
+            "http://www.cosmologyathome.org/",
+            tra("University of Illinois at Urbana-Champaign"),
+            tra("Astronomy"),
+            tra("The goal of Cosmology at Home is to search for the model that best describes our Universe and to find the range of models that agree with the available astronomical particle physics data."),
+            "cosmo.jpg",
+            "",
+            "Study the evolution of the Universe"
+        ),
         array(
             "Universe at Home",
-            "universeathome.pl/universe/",
+            "http://universeathome.pl/universe/",
             "University of Warsaw",
             tra("Astronomy"),
-            "Universe at Home aims to create the first database of the simulated stellar content of the Universe, from the earliest stars to the most exotic black hole binaries.",
+            tra("Universe at Home aims to create the first database of the simulated stellar content of the Universe, from the earliest stars to the most exotic black hole binaries."),
             "universe_at_home.png",
             "",
-            "Do research in physics and astronomy"
+            tra("Do research in physics and astronomy")
         ),
         array(
             "Milkyway at home",
@@ -339,7 +339,7 @@ $astro_phys_chem = array(
             tra("The goal of Milkyway at Home is to create a highly accurate three dimensional model of the Milky Way galaxy using data gathered by the Sloan Digital Sky Survey."),
             "mw.png",
             "",
-            "Study the structure of the Milky Way galaxy"
+            tra("Study the structure of the Milky Way galaxy")
         ),
         array(
             "Leiden Classical",
@@ -349,7 +349,7 @@ $astro_phys_chem = array(
             tra("Surface science calculations using Classical Dynamics.  Leiden Classical allows volunteers, students and other scientist to submit their personal calculations to the grid. Each user has his own personal queue for Classical Dynamics jobs. In this way students have used the grid to simulate liquid argon, or to test the validity of the ideal gas law by actually doing the simulations through the grid."),
             "leiden_classical.png",
             "",
-            "Help students do atomic simulations"
+            tra("Help students do atomic simulations")
         ),
 //        array(
 //            "uFluids at home",
@@ -361,13 +361,13 @@ $astro_phys_chem = array(
 //        ),
         array(
             "Einstein at home",
-            "http://einstein.phys.uwm.edu/",
-            tra("Univ. of Wisconsin - Milwaukee, Max Planck Institute"),
+            "https://einsteinathome.org/",
+            tra("University of Wisconsin - Milwaukee (USA), Max Planck Institute for Gravitational Physics - Hanover (Germany)"),
             tra("Astrophysics"),
-            tra("Search for spinning neutron stars (also called pulsars) using data from the LIGO and GEO gravitational wave detectors, and from the Arecibo radio observatory.  Einstein at Home is a World Year of Physics 2005 project supported by the American Physical Society (APS) and by a number of international organizations."),
+            tra("Einstein at Home uses your computer's idle time to search for weak astrophysical signals from spinning neutron stars (often called pulsars) using data from the LIGO gravitational-wave detectors, the Arecibo radio telescope, and the Fermi gamma-ray satellite."),
             "einstein.jpg",
             "",
-            "Help detect pulsars and gravitational waves"
+            tra("Help detect pulsars and gravitational waves")
         ),
 //        array(
 //            "Albert at home",
@@ -379,34 +379,34 @@ $astro_phys_chem = array(
 //        ),
         array(
             "LHC at home",
-            "http://lhcathomeclassic.cern.ch/sixtrack/",
+            "http://lhcathome.cern.ch/",
             tra("CERN (European Organization for Nuclear Research)"),
             tra("Physics"),
             tra("The Large Hadron Collider (LHC) is a particle accelerator at CERN, the European Organization for Nuclear Research, the world's largest particle physics laboratory.  It is the most powerful instrument ever built to investigate on particles proprieties. LHC at home runs simulations to improve the design of LHC and its detectors."),
             "lhc.jpg",
             "",
-            "Improve the design of the Large Hadron Collider"
-        ),
-        array(
-            "vLHCathome",
-            "http://lhcathome2.cern.ch/vLHCathome/",
-            tra("CERN (European Organization for Nuclear Research)"),
-            tra("Physics"),
-            tra("This project uses CERN-developed virtual machine technology for LHC event physics simulation on volunteer computers.  Requires that you install VirtualBox on your computer"),
-            "t4t.png",
-            "",
-            "Simulate high-energy particle collisions"
-        ),
-        array(
-            "ATLAS at Home",
-            "http://atlasathome.cern.ch/",
-            tra("CERN (European Organization for Nuclear Research)"),
-            tra("Physics"),
-            tra("ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new particles and processes using head-on collisions of protons of extraordinary high energy."),
-            "atlas_at_home.jpg",
-            "",
-            "Simulate high-energy particle collisions for CERN"
+            tra("Improve the design of the Large Hadron Collider")
         ),
+//        array(
+//            "vLHCathome",
+//            "http://lhcathome2.cern.ch/vLHCathome/",
+//            tra("CERN (European Organization for Nuclear Research)"),
+//            tra("Physics"),
+//            tra("This project uses CERN-developed virtual machine technology for LHC event physics simulation on volunteer computers.  Requires that you install VirtualBox on your computer"),
+//            "t4t.png",
+//            "",
+//            tra("Simulate high-energy particle collisions")
+//        ),
+//        array(
+//            "ATLAS at Home",
+//            "http://atlasathome.cern.ch/",
+//            tra("CERN (European Organization for Nuclear Research)"),
+//            tra("Physics"),
+//            tra("ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new particles and processes using head-on collisions of protons of extraordinary high energy."),
+//            "atlas_at_home.jpg",
+//            "",
+//            tra("Simulate high-energy particle collisions for CERN")
+//        ),
         array(
             "SETI at home",
             "http://setiathome.berkeley.edu/",
@@ -415,7 +415,7 @@ $astro_phys_chem = array(
             tra("SETI (Search for Extraterrestrial Intelligence) is a scientific area whose goal is to detect intelligent life outside Earth. One approach, known as radio SETI, uses radio telescopes to listen for narrow-bandwidth radio signals from space. Such signals are not known to occur naturally, so a detection would provide evidence of extraterrestrial technology."),
             "seti_logo.png",
             "",
-            "Search for evidence of extra-terrestrial life"
+            tra("Search for evidence of extra-terrestrial life")
         ),
 //        array(
 //            "Quantum Monte Carlo at Home",
@@ -443,54 +443,54 @@ $mixed = array(
     array(
         array(
             "Citizen Science Grid",
-            "http://csgrid.org",
+            "http://csgrid.org/csg/",
             "University of North Dakota",
-            "Molecular biology, Computer Science",
-            "The Citizen Science Grid is dedicated to supporting a wide range of research and educational projects using volunteer computing and citizen science.",
+            tra("Molecular biology, Computer Science"),
+            tra("The Citizen Science Grid is dedicated to supporting a wide range of research and educational projects using volunteer computing and citizen science."),
             "",
             "",
-            "Support science from the University of North Dakota"
+            tra("Support science from the University of North Dakota")
         ),
         array(
             "CAS at home",
             "http://casathome.ihep.ac.cn/",
             tra("Chinese Academy of Sciences"),
             tra("Physics, biochemistry, and others"),
-            tra("The objective of CAS at home is to encourage and assist scientists in China to adopt the technologies of volunteer computing and volunteer thinking for their research."),
+            tra("CAS at home is hosted by the Computing Centre of the Institute of High Energy Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with projects studying protein structure, nanotechnology, cancer genomics, and high energy physics."),
             "cas_at_home.jpg",
             "",
-            "Help Chinese researchers"
+            tra("Help Chinese researchers")
         ),
         array(
             "Yoyo at home",
             "http://www.rechenkraft.net/yoyo/",
-            tra("Private"),
+            tra("Independent"),
             tra("Mathematics, physics, evolution"),
             tra("Yoyo at home is an adapter between BOINC and several existing volunteer computing projects: ECM, Muon, Evolution at home, and distributed.net"),
             "",
             "",
-            "Do research in math, physics, and evolution"
-        ),
-        array(
-            "EDGeS at Home",
-            "http://home.edges-grid.eu/home/",
-            tra("MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"),
-            tra("European research projects"),
-            tra("The EDGeS at Home Beta project integrates volunteer computing into the service grid network of Europe by allowing service grids to send workunits to be processed by the volunteers of this project. The scientific projects covered by the project include math, physics, biology, etc."),
-            "logo_edges.png",
-            "",
-            "Help European researchers"
-        ),
-        array(
-            "Ibercivis",
-            "http://registro.ibercivis.es/",
-            tra("Spanish universities and research centers"),
-            tra("Various Spanish research projects"),
-            tra("Research in physics, material science, and biomedicine"),
-            "cabecera2.jpg",
-            "",
-            "Help Spanish researchers"
+            tra("Do research in math, physics, and evolution")
         ),
+//        array(
+//            "EDGeS at Home",
+//            "http://home.edges-grid.eu/home/",
+//            tra("MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"),
+//            tra("European research projects"),
+//            tra("The EDGeS at Home Beta project integrates volunteer computing into the service grid network of Europe by allowing service grids to send workunits to be processed by the volunteers of this project. The scientific projects covered by the project include math, physics, biology, etc."),
+//            "logo_edges.png",
+//            "",
+//            tra("Help European researchers")
+//        ),
+//        array(
+//            "Ibercivis",
+//            "http://registro.ibercivis.es/",
+//            tra("Spanish universities and research centers"),
+//            tra("Various Spanish research projects"),
+//            tra("Research in physics, material science, and biomedicine"),
+//            "cabecera2.jpg",
+//            "",
+//            tra("Help Spanish researchers")
+//        ),
         array(
             "World Community Grid",
             "http://www.worldcommunitygrid.org/",
@@ -499,7 +499,7 @@ $mixed = array(
             tra("To further critical non-profit research on some of humanity's most pressing problems by creating the world's largest volunteer computing grid.  Research includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, clean water and many more."),
             "wcg.jpg",
             "",
-            "Do biomedical and environmental research"
+            tra("Do biomedical and environmental research")
         ),
     ),
 );
@@ -519,7 +519,7 @@ $math = array(
 //        array(
 //            "OProject at Home",
 //            "http://oproject.info/",
-//            tra("Private"),
+//            tra("Independent"),
 //            tra("Mathematics, Physics, Artificial Intelligence"),
 //            tra("Simulation of quantum computing; Goldbach's conjecture."),
 //            "oproject_logo.png",
@@ -530,11 +530,11 @@ $math = array(
             "NumberFields at home",
             "http://numberfields.asu.edu/NumberFields/",
             "Arizona State University, school of Mathematics",
-            "Mathematics",
-            "NumberFields at home searches for fields with special properties. The primary application of this research is in the realm of algebraic number theory. Number theorists can mine the data for interesting patterns to help them formulate conjectures about number fields. Ultimately, this research will lead to a deeper understanding of the profound properties of numbers, the basic building blocks of all mathematics.",
+            tra("Mathematics"),
+            tra("NumberFields at home searches for fields with special properties. The primary application of this research is in the realm of algebraic number theory. Number theorists can mine the data for interesting patterns to help them formulate conjectures about number fields. Ultimately, this research will lead to a deeper understanding of the profound properties of numbers, the basic building blocks of all mathematics."),
             "nf_banner_10.jpg",
             "",
-            "Do research in algebraic number theory"
+            tra("Do research in algebraic number theory")
         ),
 //        array(
 //            "VolPEx",
@@ -550,16 +550,16 @@ $math = array(
             "SAT at home",
             "http://sat.isa.ru/pdsat/",
             "Institute for System Dynamics and Control Theory and Institute for Information Transmission Problems, Russian Academy of Science",
-            "Computer Science",
-            "Solve hard and practically important problems (discrete functions inversion problems, discrete optimization, bioinformatics, etc.) that can be effectively reduced to Boolean satisfiability problem.",
+            tra("Computer Science"),
+            tra("Solve hard and practically important problems (discrete functions inversion problems, discrete optimization, bioinformatics, etc.) that can be effectively reduced to Boolean satisfiability problem."),
             "sat_logo.png",
             "",
-            "Study computational complexity"
+            tra("Study computational complexity")
         ),
 //        array(
 //            "Mersenne at home",
 //            "http://mersenneathome.net/",
-//            tra("Private"),
+//            tra("Independent"),
 //            tra("Mathematics"),
 //            tra("Mersenne at home searches for 'Mersenne primes' - prime numbers of the form 2<sup>p</sup>-1."),
 //
@@ -568,7 +568,7 @@ $math = array(
 //        array(
 //            "DistrRTgen",
 //            "http://boinc.freerainbowtables.com/distrrtgen/",
-//            "Private",
+//            "Independent",
 //            tra("Cryptography"),
 //            "To give the world's security experts the best tools available for detecting weak hashes. This can help them to force developers to use more secure methods of password protection.",
 //            "freerainbowtables_logo.png",
@@ -578,32 +578,32 @@ $math = array(
         array(
             "Moo! Wrapper",
             "http://moowrap.net/",
-            "Private",
+            "Independent",
             tra("Cryptography and combinatorics"),
-            "Run applications from distributed.net",
+            tra("Run applications from distributed.net"),
             "",
             "",
-            "Run applications from distributed.net"
+            tra("Run applications from distributed.net")
         ),
         array(
             "Enigma at Home",
             "http://www.enigmaathome.net/",
-            tra("Private"),
+            tra("Independent"),
             tra("Cryptography"),
             tra("Attempt to decode 3 original Enigma messages. The signals were intercepted in the North Atlantic in 1942 and are believed to be unbroken."),
             "",
             "",
-            "Decode WWII submarine messages"
+            tra("Decode WWII submarine messages")
         ),
         array(
             "Collatz Conjecture",
-            "http://boinc.thesonntags.com/collatz/",
-            tra("Private"),
+            "https://boinc.thesonntags.com/collatz/",
+            tra("Independent"),
             tra("Mathematics"),
             tra("Study the Collatz Conjecture, an unsolved conjecture in mathematics"),
             "",
             "",
-            "Study the Collatz Conjecture"
+            tra("Study the Collatz Conjecture")
         ),
         array(
             "NFS at home",
@@ -613,7 +613,7 @@ $math = array(
             tra("NFS at Home is a research project that uses Internet-connected computers to do the lattice sieving step in the Number Field Sieve factorization of large integers. As a young school student, you gained your first experience at breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. NFS at Home is a continuation of that experience, only with integers that are hundreds of digits long."),
             "NFS_Logo.jpg",
             "",
-            "Study the factorization of large integers"
+            tra("Study the factorization of large integers")
         ),
 //        array(
 //            "VTU at home",
@@ -654,12 +654,12 @@ $math = array(
         array(
             "PrimeGrid",
             "http://www.primegrid.com/",
-            tra("Private"),
+            tra("Independent"),
             tra("Mathematics"),
             tra("Primegrid has multiple projects searching for different forms of very large prime numbers, including searching for the largest known prime number."),
             "primegrid_logo.png",
             "",
-            "Search for large prime numbers"
+            tra("Search for large prime numbers")
         ),
         array(
             "primaboinca",
@@ -669,7 +669,7 @@ $math = array(
             tra("Search for counterexamples to two conjectures related to the identification of prime numbers"),
             "logo_primaboinca.gif",
             "",
-            "Study the properties of prime numbers"
+            tra("Study the properties of prime numbers")
         ),
         array(
             "SZTAKI Desktop Grid",
@@ -679,7 +679,7 @@ $math = array(
             tra("Find all the generalized binary number systems (in which bases are matrices and digits are vectors) up to dimension 11."),
             "szdg1_small.jpg",
             "",
-            "Study number theory"
+            tra("Study number theory")
         ),
 //        array(
 //            "Riesel Sieve",
@@ -736,11 +736,21 @@ $math = array(
             "http://gerasim.boinc.ru/",
             "Southwest State University (Russia)",
             "Computer engineering",
-            "Testing and comparison of heuristic methods for getting separations of parallel algorithms working in the CAD system for designing logic control systems",
+            tra("Testing and comparison of heuristic methods for getting separations of parallel algorithms working in the CAD system for designing logic control systems"),
             "gerasim.gif",
             "",
             "",
         ),
+        array(
+            "SRBase",
+            "http://srbase.myfirewall.org/sr5/",
+            "Independent",
+            "Mathematics",
+            "SRBase is a mathematical research project that uses Internet-connected computers trying to solve Sierpinski / Riesel Bases up to 1030.",
+            "",
+            "",
+            ""
+        ),
     ),
 );
 
diff --git a/doc/rss_main.php b/doc/rss_main.php
index 1bf642a..2db328f 100644
--- a/doc/rss_main.php
+++ b/doc/rss_main.php
@@ -25,5 +25,5 @@ if (!$forum) {
     exit;
 }
 
-forum_rss($forum->id, 0, 0, 1, 90);
+forum_rss($forum->id, 0, 1, 90);
 ?>
diff --git a/doc/sim/sim_web.php b/doc/sim/sim_web.php
index 79d71b4..201b6dc 100644
--- a/doc/sim/sim_web.php
+++ b/doc/sim/sim_web.php
@@ -63,9 +63,10 @@ function show_scenario_summary($f) {
     $user = BoincUser::lookup_id($userid);
     $date = date_str(filemtime("scenarios/$f"));
     $nsims = nsims($f);
+    $name = $user?$user->name:"???";
     echo "<tr>
         <td><a href=sim_web.php?action=show_scenario&name=$f>$f</a></td>
-        <td>$user->name</td>
+        <td>$name</td>
         <td>$date</td>
         <td>$nsims</td>
         <td>$desc</td>
@@ -107,6 +108,14 @@ function show_scenarios() {
         projects with very short or long jobs, and so on).
         See <a href=http://boinc.berkeley.edu/trac/wiki/ClientSim>The
         BCE documentation</a> for details.
+    ";
+    echo '
+        <p>
+        <a href="sim_web.php?action=create_scenario_form"
+            class="btn btn-success">Create a scenario
+        </a>
+    ';
+    echo "
         <h3>Simulations</h3>
         You can run <b>simulations</b> based on existing scenarios
         (including scenarios created by other people).
@@ -149,12 +158,7 @@ function show_scenarios() {
         <li> you have suggestions for new features.
         </ul>
         <hr>
-    ";
-    show_button(
-        "sim_web.php?action=create_scenario_form",
-        "Create a scenario", "Create a new scenario"
-    );
-    echo "
+
         <h3>Existing scenarios</h3>
     ";
     start_table();
diff --git a/doc/sim_web.php b/doc/sim_web.php
new file mode 120000
index 0000000..efb7789
--- /dev/null
+++ b/doc/sim_web.php
@@ -0,0 +1 @@
+/home/boincadm/boinc/doc/sim/sim_web.php
\ No newline at end of file
diff --git a/doc/versions.inc b/doc/versions.inc
index d36d84d..447ab28 100644
--- a/doc/versions.inc
+++ b/doc/versions.inc
@@ -43,9 +43,29 @@ function linux_info() {
     instead.  ";
 }
 
+$w77 = array(
+    "num"=>"7.7.2",
+    "status"=>"Development version",
+    "file"=>"boinc_7.7.2_windows_intelx86.exe",
+    "vbox_file"=>"boinc_7.7.2_windows_intelx86_vbox.exe",
+    "vbox_version"=>"5.1.18",
+    "date"=>"25 Mar 2017",
+    "type"=>"win_new",
+);
+
+$w76 = array(
+    "num"=>"7.6.33",
+    "status"=>"Recommended version",
+    "file"=>"boinc_7.6.33_windows_intelx86.exe",
+    "vbox_file"=>"boinc_7.6.33_windows_intelx86_vbox.exe",
+    "vbox_version"=>"5.0.18",
+    "date"=>"5 Jun 2016",
+    "type"=>"win_new",
+);
+
 $w74 = array(
     "num"=>"7.4.42",
-    "status"=>"Recommended version",
+    "status"=>"Older version",
     "file"=>"boinc_7.4.42_windows_intelx86.exe",
     "vbox_file"=>"boinc_7.4.42_windows_intelx86_vbox.exe",
     "vbox_version"=>"4.3.12",
@@ -53,16 +73,6 @@ $w74 = array(
     "type"=>"win_new",
 );
 
-$w72 = array(
-    "num"=>"7.2.42",
-    "status"=>"Older version",
-    "file"=>"boinc_7.2.42_windows_intelx86.exe",
-    "vbox_file"=>"boinc_7.2.42_windows_intelx86_vbox.exe",
-    "vbox_version"=>"4.2.16",
-    "date"=>"28 Feb 2014",
-    "type"=>"win_new",
-);
-
 $w66 = array(
     "num"=>"6.6.38",
     "status"=>"Older version (also works on Windows 98, Windows ME)",
@@ -79,9 +89,29 @@ $w5816 = array(
     "type"=>"win_new",
 );
 
+$w77x64 = array(
+    "num"=>"7.7.2",
+    "status"=>"Development version",
+    "file"=>"boinc_7.7.2_windows_x86_64.exe",
+    "vbox_file"=>"boinc_7.7.2_windows_x86_64_vbox.exe",
+    "vbox_version"=>"5.1.18",
+    "date"=>"25 Mar 2017",
+    "type"=>"win_new",
+);
+
+$w76x64 = array(
+    "num"=>"7.6.33",
+    "status"=>"Recommended version",
+    "file"=>"boinc_7.6.33_windows_x86_64.exe",
+    "vbox_file"=>"boinc_7.6.33_windows_x86_64_vbox.exe",
+    "vbox_version"=>"5.0.18",
+    "date"=>"5 Jun 2016",
+    "type"=>"win_new",
+);
+
 $w74x64 = array(
     "num"=>"7.4.42",
-    "status"=>"Recommended version",
+    "status"=>"Older version",
     "file"=>"boinc_7.4.42_windows_x86_64.exe",
     "vbox_file"=>"boinc_7.4.42_windows_x86_64_vbox.exe",
     "vbox_version"=>"4.3.12",
@@ -99,9 +129,17 @@ $w72x64 = array(
     "type"=>"win_new",
 );
 
+$m76 = array(
+    "num"=>"7.6.34",
+    "status"=>"Recommended version (standard GUI)",
+    "file"=>"boinc_7.6.34_macOSX_x86_64.zip",
+    "date"=>"9 Apr 2017",
+    "type"=>"mac_advanced",
+);
+
 $m74 = array(
 	"num"=>"7.4.42",
-	"status"=>"Recommended version (standard GUI)",
+	"status"=>"Older version (standard GUI)",
 	"file"=>"boinc_7.4.42_macOSX_x86_64.zip",
 	"date"=>"12 Mar 2015",
 	"type"=>"mac_advanced",
@@ -131,9 +169,17 @@ $m66 = array(
     "type"=>"mac_advanced",
 );
 
+$m76c = array(
+    "num"=>"7.6.34",
+    "status"=>"Recommended version (Unix command-line version)",
+    "file"=>"boinc_7.6.34_x86_64-apple-darwin.zip",
+    "date"=>"9 April 2017",
+    "type"=>"bare_core",
+);
+
 $m74c = array(
 	"num"=>"7.4.42",
-	"status"=>"Recommended version (Unix command-line version)",
+	"status"=>"Older version (Unix command-line version)",
 	"file"=>"boinc_7.4.42_x86_64-apple-darwin.zip",
 	"date"=>"12 Mar 2015",
 	"type"=>"bare_core",
@@ -227,11 +273,19 @@ $a74dev = array(
     "type"=>"apk",
 );
 
+$a74dev = array(
+    "num"=>"7.4.43",
+    "status"=>"Development Version",
+    "file"=>"boinc_7.4.43.apk",
+    "date"=>"15 Apr 2016",
+    "type"=>"apk",
+);
+
 $a74 = array(
-    "num"=>"7.4.41",
+    "num"=>"7.4.53",
     "status"=>"Recommended Version",
-    "file"=>"boinc_7.4.41.apk",
-    "date"=>"22 Jan 2015",
+    "file"=>"boinc_7.4.53.apk",
+    "date"=>"3 Jul 2016",
     "type"=>"apk",
 );
 
@@ -241,11 +295,12 @@ $a74 = array(
 
 $windows = array(
     "name"=>"Windows 32-bit",
-    "description"=>"XP/Vista/7/8/8.1",
+    "description"=>"XP/Vista/7/8/8.1/10",
     "dbname" => "windows_intelx86",
     "versions"=>array(
+          $w77,
+          $w76,
           $w74,
-          $w72,
           $w66,
           $w5816,
     )
@@ -253,19 +308,22 @@ $windows = array(
 
 $windowsx64 = array(
     "name"=>"Windows 64-bit",
-    "description"=>"XP/Vista/7/8/8.1",
+    "description"=>"XP/Vista/7/8/8.1/10",
     "dbname" => "windows_x86_64",
     "versions"=>array(
+          $w77x64,
+          $w76x64,
           $w74x64,
-          $w72x64,
     )
 );
 
 $mac = array(
     "name"=>"Mac OS X (64-bit Intel)",
-    "description"=>"Version 10.5.0+",
+    "description"=>"Version 10.6.0+",
     "dbname" => "x86_64-apple-darwin",
     "versions"=>array(
+          $m76,
+          $m76c,
           $m74,
           $m74c,
     )
@@ -326,9 +384,10 @@ $linuxcompat = array(
 
 $android = array(
     "name"=>"Android",
-    "description"=>"Android version 4.1 and later for ARM, MIPS, or x86<br>We recommend that, rather than downloading BOINC from here,</br>you get it from the Google Play Store or the Amazon app store (for Kindle Fire)",
+    "description"=>"Android version 4.1 and later for ARM, AArch64, MIPS, MIPS64, x86, and x86_64<br>We recommend that, rather than downloading BOINC from here,</br>you get it from the Google Play Store or the Amazon app store (for Kindle Fire)",
     "dbname" => "arm-android-linux-gnu",
     "versions"=>array(
+        $a74dev,
         $a74,
     )
 );
diff --git a/doc/white.css b/doc/white.css
index 739a9e0..abc0079 100644
--- a/doc/white.css
+++ b/doc/white.css
@@ -10,9 +10,15 @@ pre, code {
     font-size: medium;
 }
 
+.lead {
+    font-size: 17px;
+    font-weight: bold;
+}
+
 .emphasize {
-	font-weight: bold;
+    font-weight: bold;
 }
+
 .emphasize2 {
 	color: red;
 }
@@ -109,6 +115,12 @@ td.button{
     border-radius: 10px;
 }
 
+td.button_green{
+    background-color: rgb(200, 255, 230);
+    border: 1px solid lightgreen;
+    border-radius: 10px;
+}
+
 td.heading{
     background-color: rgb(223, 240, 255);
     border: 1px solid lightblue;
diff --git a/drupal/.gitignore b/drupal/.gitignore
new file mode 100644
index 0000000..5f8844c
--- /dev/null
+++ b/drupal/.gitignore
@@ -0,0 +1 @@
+sites/all/modules
diff --git a/drupal/sites/all/README.txt b/drupal/sites/all/README.txt
new file mode 100644
index 0000000..e549030
--- /dev/null
+++ b/drupal/sites/all/README.txt
@@ -0,0 +1,9 @@
+// $Id: README.txt,v 1.3 2006/12/23 15:35:51 dries Exp $
+
+This directory should be used to place downloaded and custom modules
+and themes which are common to all sites. This will allow you to
+more easily update Drupal core files. These modules and themes should
+be placed in subdirectories called modules and themes as follows:
+
+  sites/all/modules
+  sites/all/themes
diff --git a/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.features.inc b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.features.inc
new file mode 100644
index 0000000..9b31ccb
--- /dev/null
+++ b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function boinc_server_migration_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.info b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.info
new file mode 100644
index 0000000..b7e8c2e
--- /dev/null
+++ b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.info
@@ -0,0 +1,17 @@
+name = "BOINC server migration"
+description = "Import data from an existing BOINC server"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "boincimport"
+dependencies[] = "boincteam"
+dependencies[] = "boincteam_forum"
+dependencies[] = "boincuser"
+dependencies[] = "friends"
+dependencies[] = "private_messages"
+dependencies[] = "strongarm"
+dependencies[] = "taxonomy"
+dependencies[] = "user_preferences"
+dependencies[] = "user_profiles"
+features[ctools][] = "strongarm:strongarm:1"
+features[variable][] = "boincimport_input_format"
diff --git a/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.module b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.module
new file mode 100644
index 0000000..4eb3881
--- /dev/null
+++ b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('boinc_server_migration.features.inc');
diff --git a/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.strongarm.inc b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.strongarm.inc
new file mode 100644
index 0000000..11ce38e
--- /dev/null
+++ b/drupal/sites/all/features/boinc_server_migration/boinc_server_migration.strongarm.inc
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function boinc_server_migration_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'boincimport_input_format';
+  $strongarm->value = '4';
+  $export['boincimport_input_format'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.features.inc b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.features.inc
new file mode 100644
index 0000000..ce07010
--- /dev/null
+++ b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function boinc_solr_search_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.info b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.info
new file mode 100644
index 0000000..0c02445
--- /dev/null
+++ b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.info
@@ -0,0 +1,10 @@
+name = "BOINC Solr search"
+description = "Apache Solr search settings for BOINC"
+core = "6.x"
+package = "Features"
+version = "6.x-0.1-alpha1"
+project = "boinc_solr_search"
+dependencies[] = "ctools"
+dependencies[] = "strongarm"
+features[ctools][] = "strongarm:strongarm:1"
+features[variable][] = "boinc_solr_comments_nodetypes"
diff --git a/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.module b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.module
new file mode 100644
index 0000000..9c0a0cb
--- /dev/null
+++ b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('boinc_solr_search.features.inc');
diff --git a/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.strongarm.inc b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.strongarm.inc
new file mode 100644
index 0000000..f228b99
--- /dev/null
+++ b/drupal/sites/all/features/boinc_solr_search/boinc_solr_search.strongarm.inc
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function boinc_solr_search_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'boinc_solr_comments_nodetypes';
+  $strongarm->value = array(
+    'forum' => 'forum',
+    'news' => 'news',
+    'page' => 'page',
+    'story' => 'story',
+    'team_forum' => 'team_forum',
+  );
+  $export['boinc_solr_comments_nodetypes'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.features.fe_block_settings.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.features.fe_block_settings.inc
new file mode 100644
index 0000000..7020704
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.features.fe_block_settings.inc
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * Implementation of hook_default_fe_block_settings().
+ */
+function boinc_standard_default_fe_block_settings() {
+  $export = array();
+
+  // boinc
+  $theme = array();
+
+  $theme['menu_block-1'] = array(
+    'module' => 'menu_block',
+    'delta' => '1',
+    'theme' => 'boinc',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '<none>',
+    'cache' => '-1',
+  );
+
+  $export['boinc'] = $theme;
+
+  // einstein
+  $theme = array();
+
+  $theme['menu_block-1'] = array(
+    'module' => 'menu_block',
+    'delta' => '1',
+    'theme' => 'einstein',
+    'status' => 0,
+    'weight' => '-23',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '<none>',
+    'cache' => '-1',
+  );
+
+  $export['einstein'] = $theme;
+
+  // garland
+  $theme = array();
+
+  $theme['menu_block-1'] = array(
+    'module' => 'menu_block',
+    'delta' => '1',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '<none>',
+    'cache' => '-1',
+  );
+
+  $export['garland'] = $theme;
+
+  $theme_default = variable_get('theme_default', 'garland');
+  $themes = list_themes();
+  foreach ($export as $theme_key => $settings) {
+    if ($theme_key != $theme_default && empty($themes[$theme_key]->status)) {
+      unset($export[$theme_key]);
+    }
+  }
+  return $export;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.features.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.features.inc
new file mode 100644
index 0000000..98befc8
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.features.inc
@@ -0,0 +1,380 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function boinc_standard_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "input_formats" && $api == "input_formats") {
+    return array("version" => 1);
+  }
+  elseif ($module == "page_manager" && $api == "pages_default") {
+    return array("version" => 1);
+  }
+  elseif ($module == "panels_mini" && $api == "panels_default") {
+    return array("version" => 1);
+  }
+  elseif ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+  elseif ($module == "wysiwyg" && $api == "wysiwyg") {
+    return array("version" => 2);
+  }
+}
+
+/**
+ * Implementation of hook_flag_default_flags().
+ */
+function boinc_standard_flag_default_flags() {
+  $flags = array();
+  // Exported flag: "Comment Abuse".
+  $flags['abuse_comment'] = array(
+    'content_type' => 'comment',
+    'title' => 'Comment Abuse',
+    'global' => FALSE,
+    'types' => array(
+      '0' => 'forum',
+      '1' => 'news',
+      '2' => 'team_forum',
+    ),
+    'flag_short' => 'Report',
+    'flag_long' => 'Report this content as offensive.',
+    'flag_message' => '',
+    'unflag_short' => 'Cancel report',
+    'unflag_long' => 'Cancel reporting this content as offensive.',
+    'unflag_message' => '',
+    'unflag_denied_text' => '',
+    'link_type' => 'toggle',
+    'roles' => array(
+      'flag' => array(
+        '0' => 2,
+      ),
+      'unflag' => array(
+        '0' => 2,
+      ),
+    ),
+    'weight' => 0,
+    'access_author' => '',
+    'show_on_comment' => 1,
+    'module' => 'boinc_standard',
+    'locked' => array(
+      '0' => 'name',
+    ),
+    'api_version' => 2,
+  );
+  // Exported flag: "Node Abuse".
+  $flags['abuse_node'] = array(
+    'content_type' => 'node',
+    'title' => 'Node Abuse',
+    'global' => FALSE,
+    'types' => array(
+      '0' => 'forum',
+      '1' => 'profile',
+      '2' => 'team_forum',
+    ),
+    'flag_short' => 'Report',
+    'flag_long' => 'Report this content as offensive.',
+    'flag_message' => '',
+    'unflag_short' => 'Cancel report',
+    'unflag_long' => 'Cancel reporting this content as offensive.',
+    'unflag_message' => '',
+    'unflag_denied_text' => '',
+    'link_type' => 'toggle',
+    'roles' => array(
+      'flag' => array(
+        '0' => 2,
+      ),
+      'unflag' => array(
+        '0' => 2,
+      ),
+    ),
+    'weight' => 0,
+    'show_on_page' => 1,
+    'show_on_teaser' => 0,
+    'show_on_form' => 0,
+    'access_author' => '',
+    'i18n' => '0',
+    'module' => 'boinc_standard',
+    'locked' => array(
+      '0' => 'name',
+    ),
+    'api_version' => 2,
+  );
+  // Exported flag: "User Abuse".
+  $flags['abuse_user'] = array(
+    'content_type' => 'user',
+    'title' => 'User Abuse',
+    'global' => '0',
+    'types' => array(),
+    'flag_short' => 'Report User',
+    'flag_long' => 'Report this user as offensive.',
+    'flag_message' => '',
+    'unflag_short' => 'Remove Report',
+    'unflag_long' => 'Remove your report about this user.',
+    'unflag_message' => '',
+    'unflag_denied_text' => '',
+    'link_type' => 'confirm',
+    'roles' => array(
+      'flag' => array(
+        '0' => '2',
+      ),
+      'unflag' => array(
+        '0' => '2',
+      ),
+    ),
+    'weight' => 0,
+    'show_on_profile' => TRUE,
+    'access_uid' => '',
+    'flag_confirmation' => 'Are you sure you want to report this user as offensive?',
+    'unflag_confirmation' => 'Are you sure you want to remove your report of this user?',
+    'module' => 'boinc_standard',
+    'locked' => array(
+      '0' => 'name',
+    ),
+    'api_version' => 2,
+  );
+  // Exported flag: "Subscriptions".
+  $flags['subscriptions'] = array(
+    'content_type' => 'node',
+    'title' => 'Subscriptions',
+    'global' => '0',
+    'types' => array(
+      '0' => 'forum',
+      '1' => 'news',
+      '2' => 'team_forum',
+    ),
+    'flag_short' => 'subscribe',
+    'flag_long' => 'Subscribe to this topic',
+    'flag_message' => 'You are now subscribed to this topic.',
+    'unflag_short' => 'unsubscribe',
+    'unflag_long' => 'Unsubscribe to this topic',
+    'unflag_message' => 'You are no longer subscribed to this topic.',
+    'unflag_denied_text' => '',
+    'link_type' => 'toggle',
+    'roles' => array(
+      'flag' => array(
+        '0' => 2,
+      ),
+      'unflag' => array(
+        '0' => 2,
+      ),
+    ),
+    'weight' => 0,
+    'show_on_page' => 1,
+    'show_on_teaser' => 1,
+    'show_on_form' => 0,
+    'access_author' => '',
+    'i18n' => '0',
+    'module' => 'boinc_standard',
+    'locked' => array(
+      '0' => 'name',
+    ),
+    'api_version' => 2,
+  );
+  return $flags;
+
+}
+
+/**
+ * Implementation of hook_node_info().
+ */
+function boinc_standard_node_info() {
+  $items = array(
+    'page' => array(
+      'name' => t('Page'),
+      'module' => 'features',
+      'description' => t('A <em>page</em>, similar in form to a <em>story</em>, is a simple method for creating and displaying information that rarely changes, such as an "About us" section of a website. By default, a <em>page</em> entry does not allow visitor comments and is not featured on the site\'s initial home page.'),
+      'has_title' => '1',
+      'title_label' => t('Title'),
+      'has_body' => '1',
+      'body_label' => t('Body'),
+      'min_word_count' => '0',
+      'help' => '',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_rules_defaults().
+ */
+function boinc_standard_rules_defaults() {
+  return array(
+    'rules' => array(
+      'rules_offensive_comment_reported' => array(
+        '#type' => 'rule',
+        '#set' => 'event_flag_flagged_abuse_comment',
+        '#label' => 'Offensive comment reported',
+        '#active' => 1,
+        '#weight' => '0',
+        '#categories' => array(
+          '0' => 'moderator notification',
+          '1' => 'boinc_standard',
+        ),
+        '#status' => 'default',
+        '#conditions' => array(),
+        '#actions' => array(
+          '1' => array(
+            '#info' => array(
+              'label' => 'Notify moderators via email',
+              'module' => 'BOINC core',
+              'eval input' => array(
+                '0' => 'subject',
+                '1' => 'message',
+                '2' => 'from',
+              ),
+            ),
+            '#name' => 'boinccore_rules_action_mail_to_moderators',
+            '#settings' => array(
+              'from' => '',
+              'subject' => 'Report of offensive [node:type] comment at [:global:site-name]',
+              'message' => '[flagging_user:display-name] has reported the following comment on [node:type] content as being offensive or inappropriate for the [:global:site-name] site:
+
+[:global:site-url]/goto/comment/[comment:comment-cid]
+
+Total reports of this comment: [comment:flag-abuse-comment-count]',
+              '#eval input' => array(
+                'token_rules_input_evaluator' => array(
+                  'subject' => array(
+                    '0' => 'node',
+                    '1' => ':global',
+                  ),
+                  'message' => array(
+                    '0' => 'flagging_user',
+                    '1' => 'comment',
+                    '2' => 'node',
+                    '3' => ':global',
+                  ),
+                  'from' => array(
+                    '0' => ':global',
+                  ),
+                ),
+              ),
+            ),
+            '#type' => 'action',
+            '#weight' => 0,
+          ),
+        ),
+        '#version' => 6003,
+      ),
+      'rules_offensive_content_reported' => array(
+        '#type' => 'rule',
+        '#set' => 'event_flag_flagged_abuse_node',
+        '#label' => 'Offensive content reported',
+        '#active' => 1,
+        '#weight' => '0',
+        '#categories' => array(
+          '0' => 'moderator notification',
+          'boinc_standard' => 'boinc_standard',
+        ),
+        '#status' => 'default',
+        '#conditions' => array(),
+        '#actions' => array(
+          '1' => array(
+            '#type' => 'action',
+            '#settings' => array(
+              'from' => '',
+              'subject' => 'Report of offensive [node:type] content at [:global:site-name]',
+              'message' => '[flagging_user:display-name] has reported the following [node:type] content as being offensive or inappropriate for the [:global:site-name] site:
+
+[:global:site-url]/[node:node-path]
+
+Total reports of this content: [node:flag-abuse-node-count]',
+              '#eval input' => array(
+                'token_rules_input_evaluator' => array(
+                  'subject' => array(
+                    '0' => 'node',
+                    '1' => ':global',
+                  ),
+                  'message' => array(
+                    '0' => 'flagging_user',
+                    '1' => 'node',
+                    '2' => ':global',
+                  ),
+                  'from' => array(
+                    '0' => ':global',
+                  ),
+                ),
+              ),
+            ),
+            '#name' => 'boinccore_rules_action_mail_to_moderators',
+            '#info' => array(
+              'label' => 'Notify moderators via email',
+              'module' => 'BOINC core',
+              'eval input' => array(
+                '0' => 'subject',
+                '1' => 'message',
+                '2' => 'from',
+              ),
+            ),
+            '#weight' => 0,
+          ),
+        ),
+        '#version' => 6003,
+      ),
+      'rules_offensive_user_reported' => array(
+        '#type' => 'rule',
+        '#set' => 'event_flag_flagged_abuse_user',
+        '#label' => 'Offensive user reported',
+        '#active' => 1,
+        '#weight' => '0',
+        '#categories' => array(
+          '0' => 'moderator notification',
+          'boinc_standard' => 'boinc_standard',
+        ),
+        '#status' => 'default',
+        '#conditions' => array(),
+        '#actions' => array(
+          '1' => array(
+            '#type' => 'action',
+            '#settings' => array(
+              'from' => '',
+              'subject' => 'Report of offensive user at [:global:site-name]',
+              'message' => '[flagging_user:display-name] has reported [account:display-name] for inappropriate behavior:
+
+[:global:site-url]/account/[account:uid]
+
+Total current reports of this user: [account:flag-abuse-user-count]',
+              '#eval input' => array(
+                'token_rules_input_evaluator' => array(
+                  'subject' => array(
+                    '0' => ':global',
+                  ),
+                  'message' => array(
+                    '0' => 'flagging_user',
+                    '1' => 'account',
+                    '2' => ':global',
+                  ),
+                  'from' => array(
+                    '0' => ':global',
+                  ),
+                ),
+              ),
+            ),
+            '#name' => 'boinccore_rules_action_mail_to_moderators',
+            '#info' => array(
+              'label' => 'Notify moderators via email',
+              'module' => 'BOINC core',
+              'eval input' => array(
+                '0' => 'subject',
+                '1' => 'message',
+                '2' => 'from',
+              ),
+            ),
+            '#weight' => 0,
+          ),
+        ),
+        '#version' => 6003,
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function boinc_standard_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.features.menu_custom.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.features.menu_custom.inc
new file mode 100644
index 0000000..733edca
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.features.menu_custom.inc
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * Implementation of hook_menu_default_menu_custom().
+ */
+function boinc_standard_menu_default_menu_custom() {
+  $menus = array();
+
+  // Exported menu: menu-footer-links
+  $menus['menu-footer-links'] = array(
+    'menu_name' => 'menu-footer-links',
+    'title' => 'Footer links',
+    'description' => 'Auxiliary menu, typically at the bottom of the page in the footer, that includes links to content such as "about us" or "privacy policy" etc.',
+  );
+  // Translatables
+  // Title and description for footer menu appears in admin menu: Admin> Site Building> Menus
+  t('Auxiliary menu, typically at the bottom of the page in the footer, that includes links to content such as "about us" or "privacy policy" etc.');
+  t('Footer links');
+
+
+  return $menus;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.features.menu_links.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.features.menu_links.inc
new file mode 100644
index 0000000..648c042
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.features.menu_links.inc
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * Implementation of hook_menu_default_menu_links().
+ */
+function boinc_standard_menu_default_menu_links() {
+  $menu_links = array();
+
+  // Exported menu link: menu-footer-links:https://boinc.berkeley.edu/
+  $menu_links['menu-footer-links:https://boinc.berkeley.edu/'] = array(
+    'menu_name' => 'menu-footer-links',
+    'link_path' => 'https://boinc.berkeley.edu/',
+    'router_path' => '',
+    'link_title' => 'BOINC',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '1',
+    'has_children' => '0',
+    'expanded' => '0',
+    'weight' => '10',
+  );
+  // Exported menu link: primary-links:<front>
+  $menu_links['primary-links:<front>'] = array(
+    'menu_name' => 'primary-links',
+    'link_path' => '<front>',
+    'router_path' => '',
+    'link_title' => 'Home',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '1',
+    'has_children' => '0',
+    'expanded' => '0',
+    'weight' => '-50',
+  );
+  // Exported menu link: primary-links:dashboard
+  $menu_links['primary-links:dashboard'] = array(
+    'menu_name' => 'primary-links',
+    'link_path' => 'dashboard',
+    'router_path' => 'dashboard',
+    'link_title' => 'Dashboard',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '0',
+    'has_children' => '0',
+    'expanded' => '0',
+    'weight' => '-50',
+    'parent_path' => 'dashboard',
+  );
+  // Exported menu link: primary-links:user/me/edit
+  $menu_links['primary-links:user/me/edit'] = array(
+    'menu_name' => 'primary-links',
+    'link_path' => 'user/me/edit',
+    'router_path' => 'user/%/edit',
+    'link_title' => 'Credentials',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '0',
+    'has_children' => '0',
+    'expanded' => '0',
+    'weight' => '-48',
+    'parent_path' => 'dashboard',
+  );
+  // Translatables
+  // Use bts() function to translate additional strings.
+  bts('Home', array(), NULL, 'boinc:menu-link');
+  bts('Credentials', array(), NULL, 'boinc:menu-link');
+  bts('Dashboard', array(), NULL, 'boinc:menu-link');
+
+  return $menu_links;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.features.role_export.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.features.role_export.inc
new file mode 100644
index 0000000..757b4c2
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.features.role_export.inc
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * Implementation of hook_role_export_defaults().
+ */
+function boinc_standard_role_export_defaults() {
+  $roles = array();
+
+  $roles['administrator'] = array(
+    'rid' => '3519698132',
+    'name' => 'administrator',
+    'machine_name' => 'administrator',
+  );
+
+  $roles['community_member'] = array(
+    'rid' => '1110965548',
+    'name' => 'community member',
+    'machine_name' => 'community_member',
+  );
+
+  $roles['content_editor'] = array(
+    'rid' => '2938987599',
+    'name' => 'content editor',
+    'machine_name' => 'content_editor',
+  );
+
+  $roles['verified_contributor'] = array(
+    'rid' => '933038561',
+    'name' => 'verified contributor',
+    'machine_name' => 'verified_contributor',
+  );
+
+  return $roles;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.features.user_permission.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.features.user_permission.inc
new file mode 100644
index 0000000..9c10d17
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.features.user_permission.inc
@@ -0,0 +1,578 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function boinc_standard_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: Use PHP input for field settings (dangerous - grant with care)
+  $permissions['Use PHP input for field settings (dangerous - grant with care)'] = array(
+    'name' => 'Use PHP input for field settings (dangerous - grant with care)',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: access administration pages
+  $permissions['access administration pages'] = array(
+    'name' => 'access administration pages',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: access all views
+  $permissions['access all views'] = array(
+    'name' => 'access all views',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: access content
+  $permissions['access content'] = array(
+    'name' => 'access content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'anonymous user',
+      '2' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: access site reports
+  $permissions['access site reports'] = array(
+    'name' => 'access site reports',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer actions
+  $permissions['administer actions'] = array(
+    'name' => 'administer actions',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer advanced pane settings
+  $permissions['administer advanced pane settings'] = array(
+    'name' => 'administer advanced pane settings',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer blocks
+  $permissions['administer blocks'] = array(
+    'name' => 'administer blocks',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer content types
+  $permissions['administer content types'] = array(
+    'name' => 'administer content types',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer elysia_cron
+  $permissions['administer elysia_cron'] = array(
+    'name' => 'administer elysia_cron',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer features
+  $permissions['administer features'] = array(
+    'name' => 'administer features',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer files
+  $permissions['administer files'] = array(
+    'name' => 'administer files',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer filters
+  $permissions['administer filters'] = array(
+    'name' => 'administer filters',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer flags
+  $permissions['administer flags'] = array(
+    'name' => 'administer flags',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer imce(execute PHP)
+  $permissions['administer imce(execute PHP)'] = array(
+    'name' => 'administer imce(execute PHP)',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer menu
+  $permissions['administer menu'] = array(
+    'name' => 'administer menu',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  // Exported permission: administer mini panels
+  $permissions['administer mini panels'] = array(
+    'name' => 'administer mini panels',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer nodes
+  $permissions['administer nodes'] = array(
+    'name' => 'administer nodes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer page manager
+  $permissions['administer page manager'] = array(
+    'name' => 'administer page manager',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer pane access
+  $permissions['administer pane access'] = array(
+    'name' => 'administer pane access',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer pane visibility
+  $permissions['administer pane visibility'] = array(
+    'name' => 'administer pane visibility',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer panel-nodes
+  $permissions['administer panel-nodes'] = array(
+    'name' => 'administer panel-nodes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer panels layouts
+  $permissions['administer panels layouts'] = array(
+    'name' => 'administer panels layouts',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer pathauto
+  $permissions['administer pathauto'] = array(
+    'name' => 'administer pathauto',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer permissions
+  $permissions['administer permissions'] = array(
+    'name' => 'administer permissions',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer rules
+  $permissions['administer rules'] = array(
+    'name' => 'administer rules',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer site configuration
+  $permissions['administer site configuration'] = array(
+    'name' => 'administer site configuration',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer smtp module
+  $permissions['administer smtp module'] = array(
+    'name' => 'administer smtp module',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer tabtamer
+  $permissions['administer tabtamer'] = array(
+    'name' => 'administer tabtamer',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer taxonomy
+  $permissions['administer taxonomy'] = array(
+    'name' => 'administer taxonomy',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer url aliases
+  $permissions['administer url aliases'] = array(
+    'name' => 'administer url aliases',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer users
+  $permissions['administer users'] = array(
+    'name' => 'administer users',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer views
+  $permissions['administer views'] = array(
+    'name' => 'administer views',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: assign all roles
+  $permissions['assign all roles'] = array(
+    'name' => 'assign all roles',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: change own username
+  $permissions['change own username'] = array(
+    'name' => 'change own username',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: create mini panels
+  $permissions['create mini panels'] = array(
+    'name' => 'create mini panels',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: create page content
+  $permissions['create page content'] = array(
+    'name' => 'create page content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  // Exported permission: create panel-nodes
+  $permissions['create panel-nodes'] = array(
+    'name' => 'create panel-nodes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: create story content
+  $permissions['create story content'] = array(
+    'name' => 'create story content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: create url aliases
+  $permissions['create url aliases'] = array(
+    'name' => 'create url aliases',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete any page content
+  $permissions['delete any page content'] = array(
+    'name' => 'delete any page content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  // Exported permission: delete any panel-nodes
+  $permissions['delete any panel-nodes'] = array(
+    'name' => 'delete any panel-nodes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete any story content
+  $permissions['delete any story content'] = array(
+    'name' => 'delete any story content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete own page content
+  $permissions['delete own page content'] = array(
+    'name' => 'delete own page content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete own panel-nodes
+  $permissions['delete own panel-nodes'] = array(
+    'name' => 'delete own panel-nodes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete own story content
+  $permissions['delete own story content'] = array(
+    'name' => 'delete own story content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete revisions
+  $permissions['delete revisions'] = array(
+    'name' => 'delete revisions',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  // Exported permission: edit any page content
+  $permissions['edit any page content'] = array(
+    'name' => 'edit any page content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  // Exported permission: edit any panel-nodes
+  $permissions['edit any panel-nodes'] = array(
+    'name' => 'edit any panel-nodes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: edit any story content
+  $permissions['edit any story content'] = array(
+    'name' => 'edit any story content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: edit own page content
+  $permissions['edit own page content'] = array(
+    'name' => 'edit own page content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: edit own panel-nodes
+  $permissions['edit own panel-nodes'] = array(
+    'name' => 'edit own panel-nodes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: edit own story content
+  $permissions['edit own story content'] = array(
+    'name' => 'edit own story content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: ignore user
+  $permissions['ignore user'] = array(
+    'name' => 'ignore user',
+    'roles' => array(
+      '0' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: import input formats
+  $permissions['import input formats'] = array(
+    'name' => 'import input formats',
+    'roles' => array(),
+  );
+
+  // Exported permission: manage features
+  $permissions['manage features'] = array(
+    'name' => 'manage features',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: notify of path changes
+  $permissions['notify of path changes'] = array(
+    'name' => 'notify of path changes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: reset abuse flags
+  $permissions['reset abuse flags'] = array(
+    'name' => 'reset abuse flags',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+    ),
+  );
+
+  // Exported permission: revert revisions
+  $permissions['revert revisions'] = array(
+    'name' => 'revert revisions',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  // Exported permission: select different theme
+  $permissions['select different theme'] = array(
+    'name' => 'select different theme',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: use PHP for block visibility
+  $permissions['use PHP for block visibility'] = array(
+    'name' => 'use PHP for block visibility',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: use PHP for me alias paths
+  $permissions['use PHP for me alias paths'] = array(
+    'name' => 'use PHP for me alias paths',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: use flag import
+  $permissions['use flag import'] = array(
+    'name' => 'use flag import',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: use page manager
+  $permissions['use page manager'] = array(
+    'name' => 'use page manager',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: use panels caching features
+  $permissions['use panels caching features'] = array(
+    'name' => 'use panels caching features',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: use panels dashboard
+  $permissions['use panels dashboard'] = array(
+    'name' => 'use panels dashboard',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: use panels in place editing
+  $permissions['use panels in place editing'] = array(
+    'name' => 'use panels in place editing',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: view all panes
+  $permissions['view all panes'] = array(
+    'name' => 'view all panes',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: view pane admin links
+  $permissions['view pane admin links'] = array(
+    'name' => 'view pane admin links',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: view revisions
+  $permissions['view revisions'] = array(
+    'name' => 'view revisions',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.info b/drupal/sites/all/features/boinc_standard/boinc_standard.info
new file mode 100644
index 0000000..6c470fd
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.info
@@ -0,0 +1,253 @@
+name = "BOINC standard"
+description = "Provide common features, such as user roles and rich text editing"
+core = "6.x"
+package = "Features"
+dependencies[] = "ahah_helper"
+dependencies[] = "bbcode"
+dependencies[] = "boinccore"
+dependencies[] = "boincuser"
+dependencies[] = "boincwork"
+dependencies[] = "content"
+dependencies[] = "ctools"
+dependencies[] = "diff"
+dependencies[] = "drupal_queue"
+dependencies[] = "elysia_cron"
+dependencies[] = "exportables"
+dependencies[] = "fe_block"
+dependencies[] = "features"
+dependencies[] = "flag"
+dependencies[] = "flag_abuse"
+dependencies[] = "flag_comment_notify"
+dependencies[] = "htmlpurifier"
+dependencies[] = "ignore_user"
+dependencies[] = "image_caption_filter"
+dependencies[] = "imce"
+dependencies[] = "imce_wysiwyg"
+dependencies[] = "input_formats"
+dependencies[] = "me"
+dependencies[] = "menu"
+dependencies[] = "menu_block"
+dependencies[] = "page_manager"
+dependencies[] = "panels"
+dependencies[] = "panels_mini"
+dependencies[] = "panels_node"
+dependencies[] = "path"
+dependencies[] = "pathauto"
+dependencies[] = "pathologic"
+dependencies[] = "php"
+dependencies[] = "quote"
+dependencies[] = "r4032login"
+dependencies[] = "role_delegation"
+dependencies[] = "role_export"
+dependencies[] = "rules"
+dependencies[] = "rules_admin"
+dependencies[] = "smtp"
+dependencies[] = "strongarm"
+dependencies[] = "tableofcontents"
+dependencies[] = "tabtamer"
+dependencies[] = "taxonomy"
+dependencies[] = "token"
+dependencies[] = "user_preferences"
+dependencies[] = "user_profiles"
+dependencies[] = "views"
+dependencies[] = "views_content"
+dependencies[] = "views_customfield"
+dependencies[] = "views_or"
+dependencies[] = "views_ui"
+dependencies[] = "wysiwyg"
+dependencies[] = "wysiwyg_linebreaks"
+dependencies[] = "wysiwyg_tweaks"
+features[ctools][] = "input_formats:input_formats:1"
+features[ctools][] = "page_manager:pages_default:1"
+features[ctools][] = "panels_mini:panels_default:1"
+features[ctools][] = "strongarm:strongarm:1"
+features[ctools][] = "wysiwyg:wysiwyg:2"
+features[fe_block_settings][] = "menu_block-1"
+features[filter_formats][] = "php_code"
+features[filter_formats][] = "plain_text"
+features[filter_formats][] = "rich_text"
+features[flag][] = "abuse_comment"
+features[flag][] = "abuse_node"
+features[flag][] = "abuse_user"
+features[flag][] = "subscriptions"
+features[menu_custom][] = "menu-footer-links"
+features[menu_links][] = "menu-footer-links:https://boinc.berkeley.edu/"
+features[menu_links][] = "primary-links:<front>"
+features[menu_links][] = "primary-links:dashboard"
+features[menu_links][] = "primary-links:user/me/edit"
+features[node][] = "page"
+features[page_manager_pages][] = "about_us"
+features[page_manager_pages][] = "account_dashboard"
+features[page_manager_pages][] = "boinc_user"
+features[page_manager_pages][] = "home"
+features[panels_mini][] = "dashboard_tables"
+features[role_export][] = "administrator"
+features[role_export][] = "community_member"
+features[role_export][] = "content_editor"
+features[role_export][] = "verified_contributor"
+features[rules_categories][] = "moderator notification"
+features[user_permission][] = "Use PHP input for field settings (dangerous - grant with care)"
+features[user_permission][] = "access administration pages"
+features[user_permission][] = "access all views"
+features[user_permission][] = "access content"
+features[user_permission][] = "access site reports"
+features[user_permission][] = "administer actions"
+features[user_permission][] = "administer advanced pane settings"
+features[user_permission][] = "administer blocks"
+features[user_permission][] = "administer content types"
+features[user_permission][] = "administer elysia_cron"
+features[user_permission][] = "administer features"
+features[user_permission][] = "administer files"
+features[user_permission][] = "administer filters"
+features[user_permission][] = "administer flags"
+features[user_permission][] = "administer imce(execute PHP)"
+features[user_permission][] = "administer menu"
+features[user_permission][] = "administer mini panels"
+features[user_permission][] = "administer nodes"
+features[user_permission][] = "administer page manager"
+features[user_permission][] = "administer pane access"
+features[user_permission][] = "administer pane visibility"
+features[user_permission][] = "administer panel-nodes"
+features[user_permission][] = "administer panels layouts"
+features[user_permission][] = "administer pathauto"
+features[user_permission][] = "administer permissions"
+features[user_permission][] = "administer rules"
+features[user_permission][] = "administer site configuration"
+features[user_permission][] = "administer smtp module"
+features[user_permission][] = "administer tabtamer"
+features[user_permission][] = "administer taxonomy"
+features[user_permission][] = "administer url aliases"
+features[user_permission][] = "administer users"
+features[user_permission][] = "administer views"
+features[user_permission][] = "assign all roles"
+features[user_permission][] = "change own username"
+features[user_permission][] = "create mini panels"
+features[user_permission][] = "create page content"
+features[user_permission][] = "create panel-nodes"
+features[user_permission][] = "create story content"
+features[user_permission][] = "create url aliases"
+features[user_permission][] = "delete any page content"
+features[user_permission][] = "delete any panel-nodes"
+features[user_permission][] = "delete any story content"
+features[user_permission][] = "delete own page content"
+features[user_permission][] = "delete own panel-nodes"
+features[user_permission][] = "delete own story content"
+features[user_permission][] = "delete revisions"
+features[user_permission][] = "edit any page content"
+features[user_permission][] = "edit any panel-nodes"
+features[user_permission][] = "edit any story content"
+features[user_permission][] = "edit own page content"
+features[user_permission][] = "edit own panel-nodes"
+features[user_permission][] = "edit own story content"
+features[user_permission][] = "ignore user"
+features[user_permission][] = "import input formats"
+features[user_permission][] = "manage features"
+features[user_permission][] = "notify of path changes"
+features[user_permission][] = "reset abuse flags"
+features[user_permission][] = "revert revisions"
+features[user_permission][] = "select different theme"
+features[user_permission][] = "use PHP for block visibility"
+features[user_permission][] = "use PHP for me alias paths"
+features[user_permission][] = "use flag import"
+features[user_permission][] = "use page manager"
+features[user_permission][] = "use panels caching features"
+features[user_permission][] = "use panels dashboard"
+features[user_permission][] = "use panels in place editing"
+features[user_permission][] = "view all panes"
+features[user_permission][] = "view pane admin links"
+features[user_permission][] = "view revisions"
+features[variable][] = "admin_theme"
+features[variable][] = "comment_anonymous_page"
+features[variable][] = "comment_controls_page"
+features[variable][] = "comment_default_mode_page"
+features[variable][] = "comment_default_order_page"
+features[variable][] = "comment_default_per_page_page"
+features[variable][] = "comment_form_location_page"
+features[variable][] = "comment_page"
+features[variable][] = "comment_preview_page"
+features[variable][] = "comment_subject_field_page"
+features[variable][] = "error_level"
+features[variable][] = "filter_default_format"
+features[variable][] = "format"
+features[variable][] = "imce_profiles"
+features[variable][] = "imce_roles_profiles"
+features[variable][] = "language_content_type_page"
+features[variable][] = "menu_block_1_admin_title"
+features[variable][] = "menu_block_1_depth"
+features[variable][] = "menu_block_1_expanded"
+features[variable][] = "menu_block_1_follow"
+features[variable][] = "menu_block_1_level"
+features[variable][] = "menu_block_1_parent"
+features[variable][] = "menu_block_1_sort"
+features[variable][] = "menu_block_1_title_link"
+features[variable][] = "menu_block_ids"
+features[variable][] = "menu_default_node_menu"
+features[variable][] = "menu_expanded"
+features[variable][] = "menu_primary_links_source"
+features[variable][] = "menu_secondary_links_source"
+features[variable][] = "node_admin_theme"
+features[variable][] = "node_options_page"
+features[variable][] = "page_manager_user_view_disabled"
+features[variable][] = "panels_legacy_rendering_mode"
+features[variable][] = "pathauto_ignore_words"
+features[variable][] = "pathauto_indexaliases"
+features[variable][] = "pathauto_indexaliases_bulkupdate"
+features[variable][] = "pathauto_max_component_length"
+features[variable][] = "pathauto_max_length"
+features[variable][] = "pathauto_modulelist"
+features[variable][] = "pathauto_node_applytofeeds"
+features[variable][] = "pathauto_node_bulkupdate"
+features[variable][] = "pathauto_node_image_pattern"
+features[variable][] = "pathauto_node_page_pattern"
+features[variable][] = "pathauto_node_pattern"
+features[variable][] = "pathauto_node_story_pattern"
+features[variable][] = "pathauto_punctuation_hyphen"
+features[variable][] = "pathauto_punctuation_quotes"
+features[variable][] = "pathauto_separator"
+features[variable][] = "pathauto_taxonomy_2_pattern"
+features[variable][] = "pathauto_taxonomy_applytofeeds"
+features[variable][] = "pathauto_taxonomy_bulkupdate"
+features[variable][] = "pathauto_taxonomy_pattern"
+features[variable][] = "pathauto_taxonomy_supportsfeeds"
+features[variable][] = "pathauto_update_action"
+features[variable][] = "pathauto_user_bulkupdate"
+features[variable][] = "pathauto_user_pattern"
+features[variable][] = "pathauto_user_supportsfeeds"
+features[variable][] = "pathauto_verbose"
+features[variable][] = "site_frontpage"
+features[variable][] = "tabtamer_tab_settings"
+features[variable][] = "theme_boinc_settings"
+features[variable][] = "theme_default"
+features[variable][] = "theme_einstein_settings"
+features[variable][] = "theme_settings"
+features[variable][] = "theme_zen_settings"
+features[variable][] = "user_email_verification"
+features[variable][] = "user_mail_password_reset_body"
+features[variable][] = "user_mail_password_reset_subject"
+features[variable][] = "user_mail_register_admin_created_body"
+features[variable][] = "user_mail_register_admin_created_subject"
+features[variable][] = "user_mail_register_no_approval_required_body"
+features[variable][] = "user_mail_register_no_approval_required_subject"
+features[variable][] = "user_mail_register_pending_approval_body"
+features[variable][] = "user_mail_register_pending_approval_subject"
+features[variable][] = "user_mail_status_activated_body"
+features[variable][] = "user_mail_status_activated_notify"
+features[variable][] = "user_mail_status_activated_subject"
+features[variable][] = "user_mail_status_blocked_body"
+features[variable][] = "user_mail_status_blocked_notify"
+features[variable][] = "user_mail_status_blocked_subject"
+features[variable][] = "user_mail_status_deleted_body"
+features[variable][] = "user_mail_status_deleted_notify"
+features[variable][] = "user_mail_status_deleted_subject"
+features[variable][] = "user_picture_default"
+features[variable][] = "user_picture_dimensions"
+features[variable][] = "user_picture_file_size"
+features[variable][] = "user_picture_guidelines"
+features[variable][] = "user_picture_path"
+features[variable][] = "user_pictures"
+features[variable][] = "user_register"
+features[variable][] = "user_registration_help"
+features[variable][] = "user_signatures"
+features[views][] = "admin_user_search"
+features[views_api][] = "api:2"
+features[wysiwyg][] = "rich_text"
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.input_formats.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.input_formats.inc
new file mode 100644
index 0000000..ee02a1f
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.input_formats.inc
@@ -0,0 +1,200 @@
+<?php
+
+/**
+ * Implementation of hook_input_formats().
+ */
+function boinc_standard_input_formats() {
+  $input_formats = array();
+
+  $input_format = new stdClass;
+  $input_format->api_version = 1;
+  $input_format->name = 'Rich text';
+  $input_format->roles = array(
+    1 => 'anonymous user',
+    2 => 'authenticated user',
+  );
+  $input_format->cache = FALSE;
+  $input_format->settings = array(
+    // Settings for: tableofcontents module
+    'tableofcontents' => array(
+      // Hide the table of contents tags
+      'tableofcontents_hide_table' => 0,
+      // Whether an automatic table of content should be added
+      'tableofcontents_automatic' => '0',
+      // Number of headers before an automatic table of content is added
+      'tableofcontents_min_limit' => '5',
+      // Remove Table of Contents tags from teasers
+      'tableofcontents_remove_teaser' => 1,
+      // Allow users to override the settings within the table of contents tag itself
+      'tableofcontents_allow_override' => 1,
+      // Ensure title is safe (i.e. use check_plain() to avoid XSS attacks.)
+      'tableofcontents_safe_title' => 1,
+      // Table of Contents Title
+      'tableofcontents_title' => 'Table of Contents',
+      // Minimum heading level
+      'tableofcontents_minlevel' => '2',
+      // Maximum heading level
+      'tableofcontents_maxlevel' => '3',
+      // Include link to hide/show table of contents
+      'tableofcontents_hide_show' => 1,
+      // Start with the table of content collapsed
+      'tableofcontents_collapsed' => 0,
+      // Select what is stripped from the header titles
+      'tableofcontents_id_stripping' => array(
+          'digits' => 0,
+          'dashes' => 0,
+          'periods' => 0,
+          'underscores' => 0,
+          'colons' => 0,
+        ),
+      // Identifier introducer
+      'tableofcontents_identifier_introducer' => 'header',
+      // Identifier and number separator
+      'tableofcontents_id_separator' => '-',
+      // How to generate missing header identifiers
+      'tableofcontents_id_generator' => 'title',
+      // List of tags allowed in table headers
+      'tableofcontents_allowed_tags' => '<em> <i> <strong> <b> <u> <del> <ins> <sub> <sup> <cite> <strike> <s> <tt> <span> <font> <abbr> <acronym> <dfn> <q> <bdo> <big> <small>',
+      // Add the comments to the table of contents
+      'tableofcontents_comments' => 0,
+      // Select header level at which comments start
+      'tableofcontents_comments_level' => '3',
+      // Back to top label
+      'tableofcontents_back_to_top' => '',
+      // Back to top location
+      'tableofcontents_back_to_top_location' => 'bottom',
+      // Minimum level where Back to Top appears
+      'tableofcontents_back_to_top_minlevel' => '2',
+      // Maximum level where Back to Top appears
+      'tableofcontents_back_to_top_maxlevel' => '4',
+      // Back to top anchor
+      'tableofcontents_back_to_top_anchor' => 'toc',
+      // Scroll back to the table of contents
+      'tableofcontents_scroll_back_to_top' => 0,
+      // Numbering method
+      'tableofcontents_numbering' => '0',
+      // Add the number to the headers
+      'tableofcontents_number_headers' => 0,
+      // Numbering mode
+      'tableofcontents_number_mode' => '0',
+      // Numbering prefix
+      'tableofcontents_number_start_letter' => '',
+      // Numbering separator
+      'tableofcontents_number_separator' => '.',
+      // Numbering suffix
+      'tableofcontents_number_end_letter' => '.',
+    ),
+    // Settings for: pathologic module
+    'pathologic' => array(
+      // Also considered local
+      'filter_pathologic_local_paths' => '/',
+      // Output full absolute URLs
+      'filter_pathologic_absolute' => 1,
+    ),
+    // Settings for: bbcode module
+    'bbcode' => array(
+      // Convert addresses to links
+      'bbcode_make_links' => '1',
+      // Spam link deterrent
+      'bbcode_filter_nofollow' => '0',
+      // Email address encoding
+      'bbcode_encode_mailto' => '1',
+      // Smart paragraph and line breaks
+      'bbcode_paragraph_breaks' => '2',
+      // Print debugging info
+      'bbcode_debug' => '0',
+    ),
+    // Settings for: htmlpurifier module
+    'htmlpurifier' => array(
+      'htmlpurifier_clear_cac' => array(
+          '#description' => NULL,
+          '#value' => 'Clear cache (Warning: Can result in performance degradation)',
+        ),
+      // Display help text
+      'htmlpurifier_help' => 1,
+      'htmlpurifier_config' => array(
+          '#description' => NULL,
+          '#value' => array(
+            'Attr.EnableID' => '0',
+            'AutoFormat.AutoParagraph' => '1',
+            'AutoFormat.Linkify' => '1',
+            'AutoFormat.RemoveEmpty' => '0',
+            'Null_HTML.Allowed' => '1',
+            'HTML.ForbiddenAttributes' => '',
+            'HTML.ForbiddenElements' => '',
+            'HTML.SafeObject' => '0',
+            'Output.FlashCompat' => '0',
+            'URI.DisableExternalResources' => '0',
+            'URI.DisableResources' => '0',
+            'Null_URI.Munge' => '1',
+          ),
+        ),
+    ),
+  );
+  $input_format->filters = array(
+    'tableofcontents' => array(
+      // Delta => Weight for: Table of contents
+      '0' => '-10',
+    ),
+    'pathologic' => array(
+      // Delta => Weight for: Pathologic
+      '0' => '-9',
+    ),
+    'bbcode' => array(
+      // Delta => Weight for: BBCode
+      '0' => '-8',
+    ),
+    'htmlpurifier' => array(
+      // Delta => Weight for: HTML Purifier
+      '0' => '-7',
+    ),
+    'image_caption_filter' => array(
+      // Delta => Weight for: Image caption filter
+      '0' => '-6',
+    ),
+  );
+  $input_format->machine = 'rich_text';
+  $input_formats['rich_text'] = $input_format;
+
+  $input_format = new stdClass;
+  $input_format->api_version = 1;
+  $input_format->name = 'PHP code';
+  $input_format->roles = array();
+  $input_format->cache = FALSE;
+  $input_format->settings = array(
+  );
+  $input_format->filters = array(
+    'php' => array(
+      '0' => '0',
+    ),
+  );
+  $input_format->machine = 'php_code';
+  $input_formats['php_code'] = $input_format;
+
+  $input_format = new stdClass;
+  $input_format->api_version = 1;
+  $input_format->name = 'Plain text';
+  $input_format->roles = array(
+    3519698132 => 'administrator',
+  );
+  $input_format->cache = TRUE;
+  $input_format->settings = array(
+    // Settings for: filter module
+    'filter' => array(
+      'filter_html' => '2',
+      'allowed_html' => '<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>',
+      'filter_html_help' => 0,
+      'filter_html_nofollow' => 0,
+    ),
+  );
+  $input_format->filters = array(
+    'filter' => array(
+      '0' => '10',
+    ),
+  );
+  $input_format->machine = 'plain_text';
+  $input_formats['plain_text'] = $input_format;
+
+  return $input_formats;
+
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.module b/drupal/sites/all/features/boinc_standard/boinc_standard.module
new file mode 100644
index 0000000..a6b1d46
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.module
@@ -0,0 +1,21 @@
+<?php
+
+include_once('boinc_standard.features.inc');
+
+/**
+ * Make some changes to configurations after the feature has been enabled
+ */
+function boinc_standard_enable() {
+  // Ensure that the default theme is enabled. A bit ridiculous, but it is
+  // possible for this not to be the case.
+  $default_theme = variable_get('theme_default', 'boinc');
+  // If default theme is garland, this is because the boinc_standard feature
+  // has not been reverted yet. Work around this by forcing it to default to
+  // the boinc theme
+  if ($default_theme == 'garland') {
+    $default_theme = 'boinc';
+    variable_set('theme_default', $default_theme);
+  }
+  $default_theme_enabled = db_query("UPDATE {system} SET status = 1
+    WHERE type = 'theme' and name = '%s'", $default_theme);
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.pages_default.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.pages_default.inc
new file mode 100644
index 0000000..38f2eb4
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.pages_default.inc
@@ -0,0 +1,717 @@
+<?php
+
+/**
+ * Implementation of hook_default_page_manager_pages().
+ */
+function boinc_standard_default_page_manager_pages() {
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'about_us';
+  $page->task = 'page';
+  $page->admin_title = 'About Us';
+  $page->admin_description = '';
+  $page->path = 'about.fail';
+  $page->access = array(
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array();
+  $page->arguments = array();
+  $page->conf = array();
+  $page->default_handlers = array();
+  $pages['about_us'] = $page;
+
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'account_dashboard';
+  $page->task = 'page';
+  $page->admin_title = 'Dashboard';
+  $page->admin_description = '';
+  $page->path = 'dashboard';
+  $page->access = array(
+    'plugins' => array(
+      1 => array(
+        'name' => 'role',
+        'settings' => array(
+          'rids' => array(
+            0 => 2,
+          ),
+        ),
+        'context' => 'logged-in-user',
+        'not' => FALSE,
+      ),
+    ),
+    'logic' => 'and',
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array(
+    'type' => 'none',
+    'title' => 'Dashboard',
+    'name' => 'navigation',
+    'weight' => '0',
+    'parent' => array(
+      'type' => 'normal',
+      'title' => 'Account',
+      'name' => 'navigation',
+      'weight' => '0',
+    ),
+  );
+  $page->arguments = array();
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_account_dashboard_panel_context';
+  $handler->task = 'page';
+  $handler->subtask = 'account_dashboard';
+  $handler->handler = 'panel_context';
+  $handler->weight = 0;
+  $handler->conf = array(
+    'title' => 'Landing page',
+    'no_blocks' => FALSE,
+    'pipeline' => 'ipe',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(
+      0 => array(
+        'name' => 'user',
+        'id' => 1,
+        'identifier' => 'User',
+        'keyword' => 'user',
+        'context_settings' => array(
+          'type' => 'current',
+          'user' => '',
+          'uid' => '',
+        ),
+      ),
+    ),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'one_sidebar_second';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_account_dashboard_panel_context';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'content';
+    $pane->type = 'panels_mini';
+    $pane->subtype = 'dashboard_tables';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_title' => 1,
+      'override_title_text' => bts('My stats', array(), NULL, 'boinc:account-dashboard'),
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['content'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'content';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'subscriptions-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array();
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-2'] = $pane;
+    $display->panels['content'][1] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        1 => array(
+          'name' => 'perm',
+          'settings' => array(
+            'perm' => 'edit any profile content',
+          ),
+          'context' => 'context_user_1',
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Moderation overview',
+      'title' => '',
+      'body' => '<?php print boinccore_moderation_overview_panel(); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-3'] = $pane;
+    $display->panels['sidebar_first'][0] = 'new-3';
+    $pane = new stdClass;
+    $pane->pid = 'new-4';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'panels_mini';
+    $pane->subtype = 'user_mail_summary';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-4'] = $pane;
+    $display->panels['sidebar_first'][1] = 'new-4';
+    $pane = new stdClass;
+    $pane->pid = 'new-5';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Team summary',
+      'title' => '',
+      'body' => '<?php 
+if (module_exists(\'boincteam\')) {
+  echo boincteam_dashboard_panel();
+}
+?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => 'team-dashboard-pane',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 2;
+    $display->content['new-5'] = $pane;
+    $display->panels['sidebar_first'][2] = 'new-5';
+    $pane = new stdClass;
+    $pane->pid = 'new-6';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'User activity summary',
+      'title' => '',
+      'body' => '<?php
+
+global $user;
+$uid = $user->uid;
+$account = user_load($uid);
+echo \'<h2 class="pane-title compound-heading">\' . l(bts(\'Posts contributed\', array(), NULL, \'boinc:account-dashboard\'), "account/{$uid}/posts") . \'</h2>\';
+echo \'<div class="item-count-wrapper"><div class="item-count">\' . $account->post_count . \'</div></div>\';
+
+?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 3;
+    $display->content['new-6'] = $pane;
+    $display->panels['sidebar_first'][3] = 'new-6';
+    $pane = new stdClass;
+    $pane->pid = 'new-7';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'views';
+    $pane->subtype = 'boinc_friends';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_pager_settings' => 0,
+      'use_pager' => 0,
+      'nodes_per_page' => '6',
+      'pager_id' => '',
+      'offset' => '0',
+      'more_link' => 1,
+      'feed_icons' => 0,
+      'panel_args' => 0,
+      'link_to_view' => 0,
+      'args' => '',
+      'url' => '',
+      'display' => 'block_1',
+      'context' => array(
+        0 => 'context_user_1.uid',
+      ),
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 4;
+    $display->content['new-7'] = $pane;
+    $display->panels['sidebar_first'][4] = 'new-7';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['account_dashboard'] = $page;
+
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'boinc_user';
+  $page->task = 'page';
+  $page->admin_title = 'User profile template (boinc)';
+  $page->admin_description = '';
+  $page->path = 'account/%user';
+  $page->access = array(
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array();
+  $page->arguments = array(
+    'user' => array(
+      'id' => 1,
+      'identifier' => 'User: ID',
+      'name' => 'uid',
+      'settings' => array(),
+    ),
+  );
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_boinc_user_panel_context_2';
+  $handler->task = 'page';
+  $handler->subtask = 'boinc_user';
+  $handler->handler = 'panel_context';
+  $handler->weight = 1;
+  $handler->conf = array(
+    'title' => 'Panel',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+  );
+  $display = new panels_display;
+  $display->layout = 'one_sidebar_second';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_boinc_user_panel_context_2';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'content';
+    $pane->type = 'panels_mini';
+    $pane->subtype = 'user_profile';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'context' => array(
+        0 => 'argument_uid_1',
+      ),
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['content'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_account_stats-panel_pane_2';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['sidebar_first'][0] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Team summary',
+      'title' => '',
+      'body' => '<?php 
+if (module_exists(\'boincteam\')) {
+  echo boincteam_dashboard_panel(%user:uid);
+}
+?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => 'team-dashboard-pane',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-3'] = $pane;
+    $display->panels['sidebar_first'][1] = 'new-3';
+    $pane = new stdClass;
+    $pane->pid = 'new-4';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'User activity summary',
+      'title' => '',
+      'body' => '<?php
+
+$uid = arg(1);
+$account = user_load($uid);
+echo \'<h2 class="pane-title compound-heading">\' . l(bts(\'Posts contributed\', array(), NULL, \'boinc:account-dashboard\'), "account/{$uid}/posts") . \'</h2>\';
+echo \'<div class="item-count-wrapper"><div class="item-count">\' . $account->post_count . \'</div></div>\';
+
+?>',
+      'format' => '3',
+      'substitute' => 0,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 2;
+    $display->content['new-4'] = $pane;
+    $display->panels['sidebar_first'][2] = 'new-4';
+    $pane = new stdClass;
+    $pane->pid = 'new-5';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'views';
+    $pane->subtype = 'boinc_friends';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_pager_settings' => 0,
+      'use_pager' => 0,
+      'nodes_per_page' => '6',
+      'pager_id' => '',
+      'offset' => '0',
+      'more_link' => 0,
+      'feed_icons' => 0,
+      'panel_args' => 0,
+      'link_to_view' => 0,
+      'args' => '',
+      'url' => '',
+      'display' => 'block_1',
+      'context' => array(
+        0 => 'argument_uid_1.uid',
+      ),
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 3;
+    $display->content['new-5'] = $pane;
+    $display->panels['sidebar_first'][3] = 'new-5';
+    $pane = new stdClass;
+    $pane->pid = 'new-6';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Project list',
+      'title' => 'Projects',
+      'body' => '<?php echo boincuser_get_projects_table(%user:uid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 4;
+    $display->content['new-6'] = $pane;
+    $display->panels['sidebar_first'][4] = 'new-6';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['boinc_user'] = $page;
+
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'home';
+  $page->task = 'page';
+  $page->admin_title = 'Home page';
+  $page->admin_description = '';
+  $page->path = 'home';
+  $page->access = array(
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array(
+    'type' => 'normal',
+    'title' => 'Home',
+    'name' => 'navigation',
+    'weight' => '0',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'name' => 'navigation',
+      'weight' => '0',
+    ),
+  );
+  $page->arguments = array();
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_home_panel_context';
+  $handler->task = 'page';
+  $handler->subtask = 'home';
+  $handler->handler = 'panel_context';
+  $handler->weight = 0;
+  $handler->conf = array(
+    'title' => 'Landing page',
+    'no_blocks' => FALSE,
+    'pipeline' => 'ipe',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+  );
+  $display = new panels_display;
+  $display->layout = 'one_sidebar_second';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_home_panel_context';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'content';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'BOINC overview',
+      'title' => '',
+      'body' => '<?php print boincuser_home_page(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['content'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'panels_mini';
+    $pane->subtype = 'project_stats_overview';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow balance-height-front no-resize',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['sidebar_first'][0] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'sidebar_first';
+    $pane->type = 'views';
+    $pane->subtype = 'news';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_pager_settings' => 1,
+      'use_pager' => 0,
+      'nodes_per_page' => '2',
+      'pager_id' => '',
+      'offset' => '0',
+      'more_link' => 1,
+      'feed_icons' => 1,
+      'panel_args' => 0,
+      'link_to_view' => 0,
+      'args' => '',
+      'url' => '',
+      'display' => 'page_2',
+      'override_title' => 1,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow balance-height-front',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-3'] = $pane;
+    $display->panels['sidebar_first'][1] = 'new-3';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['home'] = $page;
+
+ return $pages;
+
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.panels_default.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.panels_default.inc
new file mode 100644
index 0000000..520ac40
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.panels_default.inc
@@ -0,0 +1,97 @@
+<?php
+
+/**
+ * Implementation of hook_default_panels_mini().
+ */
+function boinc_standard_default_panels_mini() {
+  $export = array();
+
+  $mini = new stdClass;
+  $mini->disabled = FALSE; /* Edit this to true to make a default mini disabled initially */
+  $mini->api_version = 1;
+  $mini->name = 'dashboard_tables';
+  $mini->category = 'BOINC';
+  $mini->admin_title = 'Dashboard tables';
+  $mini->admin_description = 'Tables of computers and projects for a user';
+  $mini->requiredcontexts = array();
+  $mini->contexts = array();
+  $mini->relationships = array();
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'panels_mini';
+  $display->storage_id = 'dashboard_tables';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_account_computers-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array();
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'right';
+    $pane->type = 'panels_mini';
+    $pane->subtype = 'user_project_list';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['right'][0] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'top';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_account_stats-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array();
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-3'] = $pane;
+    $display->panels['top'][0] = 'new-3';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $mini->display = $display;
+  $export['dashboard_tables'] = $mini;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.strongarm.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.strongarm.inc
new file mode 100644
index 0000000..45219fd
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.strongarm.inc
@@ -0,0 +1,1312 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function boinc_standard_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'admin_theme';
+  $strongarm->value = 'garland';
+  $export['admin_theme'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_anonymous_page';
+  $strongarm->value = 0;
+  $export['comment_anonymous_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_controls_page';
+  $strongarm->value = '3';
+  $export['comment_controls_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_mode_page';
+  $strongarm->value = '4';
+  $export['comment_default_mode_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_order_page';
+  $strongarm->value = '1';
+  $export['comment_default_order_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_per_page_page';
+  $strongarm->value = '50';
+  $export['comment_default_per_page_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_form_location_page';
+  $strongarm->value = '0';
+  $export['comment_form_location_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_page';
+  $strongarm->value = 0;
+  $export['comment_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_preview_page';
+  $strongarm->value = '1';
+  $export['comment_preview_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_subject_field_page';
+  $strongarm->value = '1';
+  $export['comment_subject_field_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'error_level';
+  $strongarm->value = '0';
+  $export['error_level'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'filter_default_format';
+  $strongarm->value = '4';
+  $export['filter_default_format'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'format';
+  $strongarm->value = '4';
+  $export['format'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'imce_profiles';
+  $strongarm->value = array(
+    1 => array(
+      'name' => 'User-1',
+      'usertab' => 1,
+      'filesize' => 0,
+      'quota' => 0,
+      'tuquota' => 0,
+      'extensions' => '*',
+      'dimensions' => '1200x1200',
+      'filenum' => 0,
+      'directories' => array(
+        0 => array(
+          'name' => '.',
+          'subnav' => 1,
+          'browse' => 1,
+          'upload' => 1,
+          'thumb' => 1,
+          'delete' => 1,
+          'resize' => 1,
+        ),
+      ),
+      'thumbnails' => array(
+        0 => array(
+          'name' => 'Small',
+          'dimensions' => '90x90',
+          'prefix' => 'small_',
+          'suffix' => '',
+        ),
+        1 => array(
+          'name' => 'Medium',
+          'dimensions' => '120x120',
+          'prefix' => 'medium_',
+          'suffix' => '',
+        ),
+        2 => array(
+          'name' => 'Large',
+          'dimensions' => '180x180',
+          'prefix' => 'large_',
+          'suffix' => '',
+        ),
+      ),
+    ),
+    2 => array(
+      'name' => 'Sample profile',
+      'usertab' => 1,
+      'filesize' => 1,
+      'quota' => 2,
+      'tuquota' => 0,
+      'extensions' => 'gif png jpg jpeg',
+      'dimensions' => '800x600',
+      'filenum' => 1,
+      'directories' => array(
+        0 => array(
+          'name' => 'u%uid',
+          'subnav' => 0,
+          'browse' => 1,
+          'upload' => 1,
+          'thumb' => 1,
+          'delete' => 0,
+          'resize' => 0,
+        ),
+      ),
+      'thumbnails' => array(
+        0 => array(
+          'name' => 'Thumb',
+          'dimensions' => '90x90',
+          'prefix' => 'thumb_',
+          'suffix' => '',
+        ),
+      ),
+    ),
+    3 => array(
+      'name' => 'Editor',
+      'usertab' => 1,
+      'filesize' => '1',
+      'quota' => '2',
+      'tuquota' => '0',
+      'extensions' => 'gif png jpg jpeg',
+      'dimensions' => '800x600',
+      'filenum' => '1',
+      'directories' => array(
+        0 => array(
+          'name' => 'u%uid',
+          'subnav' => 0,
+          'browse' => 1,
+          'upload' => 1,
+          'thumb' => 1,
+          'delete' => 0,
+          'resize' => 0,
+        ),
+      ),
+      'thumbnails' => array(
+        0 => array(
+          'name' => 'Small',
+          'dimensions' => '90x90',
+          'prefix' => 'small_',
+          'suffix' => '',
+        ),
+        1 => array(
+          'name' => 'Medium',
+          'dimensions' => '120x120',
+          'prefix' => 'medium_',
+          'suffix' => '',
+        ),
+        2 => array(
+          'name' => 'Large',
+          'dimensions' => '180x180',
+          'prefix' => 'large_',
+          'suffix' => '',
+        ),
+      ),
+    ),
+  );
+  $export['imce_profiles'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'imce_roles_profiles';
+  $strongarm->value = array(
+    3519698132 => array(
+      'weight' => '0',
+      'pid' => '0',
+    ),
+    1110965548 => array(
+      'weight' => '0',
+      'pid' => '0',
+    ),
+    268174006 => array(
+      'weight' => '0',
+      'pid' => '0',
+    ),
+    2938987599 => array(
+      'weight' => '0',
+      'pid' => '3',
+    ),
+    1257454314 => array(
+      'weight' => '0',
+      'pid' => '0',
+    ),
+    1271379760 => array(
+      'weight' => '0',
+      'pid' => '0',
+    ),
+    933038561 => array(
+      'weight' => '0',
+      'pid' => '0',
+    ),
+    2 => array(
+      'weight' => 11,
+      'pid' => '0',
+    ),
+    1 => array(
+      'weight' => 12,
+      'pid' => '0',
+    ),
+  );
+  $export['imce_roles_profiles'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'language_content_type_page';
+  $strongarm->value = '2';
+  $export['language_content_type_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_admin_title';
+  $strongarm->value = 'Tertiary menu';
+  $export['menu_block_1_admin_title'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_depth';
+  $strongarm->value = '0';
+  $export['menu_block_1_depth'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_expanded';
+  $strongarm->value = 0;
+  $export['menu_block_1_expanded'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_follow';
+  $strongarm->value = 0;
+  $export['menu_block_1_follow'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_level';
+  $strongarm->value = '3';
+  $export['menu_block_1_level'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_parent';
+  $strongarm->value = 'primary-links:0';
+  $export['menu_block_1_parent'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_sort';
+  $strongarm->value = 0;
+  $export['menu_block_1_sort'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_1_title_link';
+  $strongarm->value = 0;
+  $export['menu_block_1_title_link'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_block_ids';
+  $strongarm->value = array(
+    0 => 1,
+  );
+  $export['menu_block_ids'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_default_node_menu';
+  $strongarm->value = 'primary-links';
+  $export['menu_default_node_menu'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_expanded';
+  $strongarm->value = array(
+    0 => 'primary-links',
+  );
+  $export['menu_expanded'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_primary_links_source';
+  $strongarm->value = 'primary-links';
+  $export['menu_primary_links_source'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'menu_secondary_links_source';
+  $strongarm->value = 'primary-links';
+  $export['menu_secondary_links_source'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_admin_theme';
+  $strongarm->value = 0;
+  $export['node_admin_theme'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_options_page';
+  $strongarm->value = array(
+    0 => 'status',
+  );
+  $export['node_options_page'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'page_manager_user_view_disabled';
+  $strongarm->value = FALSE;
+  $export['page_manager_user_view_disabled'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'panels_legacy_rendering_mode';
+  $strongarm->value = FALSE;
+  $export['panels_legacy_rendering_mode'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_ignore_words';
+  $strongarm->value = 'a,an,as,at,before,but,by,for,from,is,in,into,like,of,off,on,onto,per,since,than,the,this,that,to,up,via,with';
+  $export['pathauto_ignore_words'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_indexaliases';
+  $strongarm->value = FALSE;
+  $export['pathauto_indexaliases'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_indexaliases_bulkupdate';
+  $strongarm->value = FALSE;
+  $export['pathauto_indexaliases_bulkupdate'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_max_component_length';
+  $strongarm->value = '100';
+  $export['pathauto_max_component_length'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_max_length';
+  $strongarm->value = '100';
+  $export['pathauto_max_length'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_modulelist';
+  $strongarm->value = array(
+    0 => 'node',
+    1 => 'user',
+    2 => 'taxonomy',
+  );
+  $export['pathauto_modulelist'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_node_applytofeeds';
+  $strongarm->value = '';
+  $export['pathauto_node_applytofeeds'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_node_bulkupdate';
+  $strongarm->value = FALSE;
+  $export['pathauto_node_bulkupdate'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_node_image_pattern';
+  $strongarm->value = '';
+  $export['pathauto_node_image_pattern'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_node_page_pattern';
+  $strongarm->value = '';
+  $export['pathauto_node_page_pattern'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_node_pattern';
+  $strongarm->value = 'content/[title-raw]';
+  $export['pathauto_node_pattern'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_node_story_pattern';
+  $strongarm->value = '';
+  $export['pathauto_node_story_pattern'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_punctuation_hyphen';
+  $strongarm->value = 1;
+  $export['pathauto_punctuation_hyphen'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_punctuation_quotes';
+  $strongarm->value = 0;
+  $export['pathauto_punctuation_quotes'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_separator';
+  $strongarm->value = '-';
+  $export['pathauto_separator'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_taxonomy_2_pattern';
+  $strongarm->value = '';
+  $export['pathauto_taxonomy_2_pattern'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_taxonomy_applytofeeds';
+  $strongarm->value = FALSE;
+  $export['pathauto_taxonomy_applytofeeds'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_taxonomy_bulkupdate';
+  $strongarm->value = FALSE;
+  $export['pathauto_taxonomy_bulkupdate'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_taxonomy_pattern';
+  $strongarm->value = 'category/[vocab-raw]/[catpath-raw]';
+  $export['pathauto_taxonomy_pattern'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_taxonomy_supportsfeeds';
+  $strongarm->value = '0/feed';
+  $export['pathauto_taxonomy_supportsfeeds'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_update_action';
+  $strongarm->value = '2';
+  $export['pathauto_update_action'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_user_bulkupdate';
+  $strongarm->value = FALSE;
+  $export['pathauto_user_bulkupdate'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_user_pattern';
+  $strongarm->value = 'users/[user-raw]';
+  $export['pathauto_user_pattern'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_user_supportsfeeds';
+  $strongarm->value = '';
+  $export['pathauto_user_supportsfeeds'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'pathauto_verbose';
+  $strongarm->value = FALSE;
+  $export['pathauto_verbose'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'site_frontpage';
+  $strongarm->value = 'home';
+  $export['site_frontpage'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'tabtamer_tab_settings';
+  $strongarm->value = array(
+    'node/%/view' => array(
+      'weight' => '-10',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/view',
+      'tabtamer_title' => '',
+    ),
+    'node/%/edit' => array(
+      'weight' => '1',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/edit',
+      'tabtamer_title' => '',
+    ),
+    'node/%/revisions' => array(
+      'weight' => '2',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/revisions',
+      'tabtamer_title' => '',
+    ),
+    'node/%/panel_layout' => array(
+      'weight' => '2',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/panel_layout',
+      'tabtamer_title' => '',
+    ),
+    'node/%/panel_content' => array(
+      'weight' => '3',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/panel_content',
+      'tabtamer_title' => '',
+    ),
+    'node/%/revisions/list' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/revisions/list',
+      'tabtamer_title' => '',
+    ),
+    'node/%/revisions/view/%/%' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/revisions/view/%/%',
+      'tabtamer_title' => '',
+    ),
+    'node/%/revisions/view/latest' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'node/%node/revisions/view/latest',
+      'tabtamer_title' => '',
+    ),
+    'search/node/%' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'search/node/%menu_tail',
+      'tabtamer_title' => '',
+    ),
+    'search/user/%' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'search/user/%menu_tail',
+      'tabtamer_title' => '',
+    ),
+    'user/login' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'user/login',
+      'tabtamer_title' => '',
+    ),
+    'user/register' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'user/register',
+      'tabtamer_title' => '',
+    ),
+    'user/password' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'user/password',
+      'tabtamer_title' => '',
+    ),
+    'user/%/view' => array(
+      'weight' => '-10',
+      'action' => 'hidden',
+      'tabtamer_original_path' => 'user/%user/view',
+      'tabtamer_title' => '',
+    ),
+    'user/%/edit' => array(
+      'weight' => '0',
+      'action' => 'hidden',
+      'tabtamer_original_path' => 'user/%user_category/edit',
+      'tabtamer_title' => '',
+    ),
+    'user/%/imce' => array(
+      'weight' => '10',
+      'action' => 'hidden',
+      'tabtamer_original_path' => 'user/%user/imce',
+      'tabtamer_title' => '',
+    ),
+    'user/%/roles' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'user/%user/roles',
+      'tabtamer_title' => '',
+    ),
+    'user/%/messages' => array(
+      'weight' => '0',
+      'action' => 'hidden',
+      'tabtamer_original_path' => 'user/%/messages',
+      'tabtamer_title' => '',
+    ),
+    'user/%/friends' => array(
+      'weight' => '0',
+      'action' => 'hidden',
+      'tabtamer_original_path' => 'user/%/friends',
+      'tabtamer_title' => '',
+    ),
+    'user/%/edit/account' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'user/%user_category/edit/account',
+      'tabtamer_title' => '',
+    ),
+    'user/%/edit/profile' => array(
+      'weight' => '1',
+      'action' => 'hidden',
+      'tabtamer_original_path' => 'user/%user_category/edit/profile',
+      'tabtamer_title' => '',
+    ),
+    'user/%/friends/pending' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'user/%views_arg/friends/pending',
+      'tabtamer_title' => '',
+    ),
+    'user/%/friends/flagged' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'user/%views_arg/friends/flagged',
+      'tabtamer_title' => '',
+    ),
+    'account/profile/view' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/profile/view',
+      'tabtamer_title' => '',
+    ),
+    'account/profile/edit' => array(
+      'weight' => '5',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/profile/edit',
+      'tabtamer_title' => '',
+    ),
+    'account/prefs/computing' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/prefs/computing',
+      'tabtamer_title' => '',
+    ),
+    'account/prefs/project' => array(
+      'weight' => '5',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/prefs/project',
+      'tabtamer_title' => '',
+    ),
+    'account/prefs/community' => array(
+      'weight' => '10',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/prefs/community',
+      'tabtamer_title' => '',
+    ),
+    'account/prefs/privacy' => array(
+      'weight' => '15',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/prefs/privacy',
+      'tabtamer_title' => '',
+    ),
+    'account/obsolete' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/obsolete',
+      'tabtamer_title' => '',
+    ),
+    'account/tasks/all' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/tasks/all',
+      'tabtamer_title' => '',
+    ),
+    'account/tasks/error' => array(
+      'weight' => '5',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/tasks/error',
+      'tabtamer_title' => '',
+    ),
+    'account/tasks/active' => array(
+      'weight' => '1',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/tasks/active',
+      'tabtamer_title' => '',
+    ),
+    'account/tasks/invalid' => array(
+      'weight' => '4',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/tasks/invalid',
+      'tabtamer_title' => '',
+    ),
+    'account/tasks/pending' => array(
+      'weight' => '2',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/tasks/pending',
+      'tabtamer_title' => '',
+    ),
+    'account/tasks/valid' => array(
+      'weight' => '3',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/tasks/valid',
+      'tabtamer_title' => '',
+    ),
+    'account/computers/all' => array(
+      'weight' => '1',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/computers/all',
+      'tabtamer_title' => '',
+    ),
+    'account/computers/active' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/computers/active',
+      'tabtamer_title' => '',
+    ),
+    'account/%/computers' => array(
+      'weight' => '0',
+      'action' => 'hidden',
+      'tabtamer_original_path' => 'account/%views_arg/computers',
+      'tabtamer_title' => '',
+    ),
+    'account/%/computers/all' => array(
+      'weight' => '1',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/%views_arg/computers/all',
+      'tabtamer_title' => '',
+    ),
+    'account/%/friends/all' => array(
+      'weight' => '-10',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/%/friends/all',
+      'tabtamer_title' => '',
+    ),
+    'account/%/friends/pending' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/%views_arg/friends/pending',
+      'tabtamer_title' => '',
+    ),
+    'account/%/friends/flagged' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'account/%views_arg/friends/flagged',
+      'tabtamer_title' => '',
+    ),
+    'join/new' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'join/new',
+      'tabtamer_title' => '',
+    ),
+    'join/boinc' => array(
+      'weight' => '5',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'join/boinc',
+      'tabtamer_title' => '',
+    ),
+    'messages/list' => array(
+      'weight' => '-10',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'messages/list',
+      'tabtamer_title' => '',
+    ),
+    'messages/view/%' => array(
+      'weight' => '-5',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'messages/view/%privatemsg_thread',
+      'tabtamer_title' => '',
+    ),
+    'messages/new' => array(
+      'weight' => '-3',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'messages/new',
+      'tabtamer_title' => '',
+    ),
+    'news' => array(
+      'weight' => 0,
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'news',
+      'tabtamer_title' => '',
+    ),
+    'workunit/%/tasks' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'workunit/%views_arg/tasks',
+      'tabtamer_title' => '',
+    ),
+    'workunit/%/tasks/error' => array(
+      'weight' => '5',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'workunit/%views_arg/tasks/error',
+      'tabtamer_title' => '',
+    ),
+    'workunit/%/tasks/active' => array(
+      'weight' => '1',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'workunit/%views_arg/tasks/active',
+      'tabtamer_title' => '',
+    ),
+    'workunit/%/tasks/invalid' => array(
+      'weight' => '4',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'workunit/%views_arg/tasks/invalid',
+      'tabtamer_title' => '',
+    ),
+    'workunit/%/tasks/pending' => array(
+      'weight' => '2',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'workunit/%views_arg/tasks/pending',
+      'tabtamer_title' => '',
+    ),
+    'workunit/%/tasks/valid' => array(
+      'weight' => '3',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'workunit/%views_arg/tasks/valid',
+      'tabtamer_title' => '',
+    ),
+    'host/%/tasks' => array(
+      'weight' => '0',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'host/%views_arg/tasks',
+      'tabtamer_title' => '',
+    ),
+    'host/%/tasks/error' => array(
+      'weight' => '5',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'host/%views_arg/tasks/error',
+      'tabtamer_title' => '',
+    ),
+    'host/%/tasks/active' => array(
+      'weight' => '1',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'host/%views_arg/tasks/active',
+      'tabtamer_title' => '',
+    ),
+    'host/%/tasks/invalid' => array(
+      'weight' => '4',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'host/%views_arg/tasks/invalid',
+      'tabtamer_title' => '',
+    ),
+    'host/%/tasks/pending' => array(
+      'weight' => '2',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'host/%views_arg/tasks/pending',
+      'tabtamer_title' => '',
+    ),
+    'host/%/tasks/valid' => array(
+      'weight' => '3',
+      'action' => 'enabled',
+      'tabtamer_original_path' => 'host/%views_arg/tasks/valid',
+      'tabtamer_title' => '',
+    ),
+  );
+  $export['tabtamer_tab_settings'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'theme_boinc_settings';
+  $strongarm->value = array(
+    'zen_block_editing' => 1,
+    'zen_breadcrumb' => 'yes',
+    'zen_breadcrumb_separator' => ' › ',
+    'zen_breadcrumb_home' => 1,
+    'zen_breadcrumb_trailing' => 1,
+    'zen_breadcrumb_title' => 0,
+    'zen_rebuild_registry' => 1,
+    'zen_wireframes' => 0,
+    'boinc_stats_chart_color' => '#FAA341',
+    'boinc_stats_chart_bcolor' => '#FFFFFF',
+    'toggle_logo' => 1,
+    'toggle_name' => 1,
+    'toggle_slogan' => 0,
+    'toggle_mission' => 1,
+    'toggle_node_user_picture' => 0,
+    'toggle_comment_user_picture' => 1,
+    'toggle_search' => 0,
+    'toggle_favicon' => 1,
+    'toggle_primary_links' => 1,
+    'toggle_secondary_links' => 1,
+    'default_logo' => 1,
+    'logo_path' => '',
+    'logo_upload' => '',
+    'default_favicon' => 1,
+    'favicon_path' => '',
+    'favicon_upload' => '',
+  );
+  $export['theme_boinc_settings'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'theme_default';
+  $strongarm->value = 'einstein';
+  $export['theme_default'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'theme_einstein_settings';
+  $strongarm->value = array(
+    'zen_block_editing' => 1,
+    'zen_breadcrumb' => 'yes',
+    'zen_breadcrumb_separator' => ' › ',
+    'zen_breadcrumb_home' => 1,
+    'zen_breadcrumb_trailing' => 1,
+    'zen_breadcrumb_title' => 0,
+    'zen_rebuild_registry' => 0,
+    'zen_wireframes' => 0,
+    'toggle_logo' => 1,
+    'toggle_name' => 0,
+    'toggle_slogan' => 0,
+    'toggle_mission' => 1,
+    'toggle_node_user_picture' => 0,
+    'toggle_comment_user_picture' => 1,
+    'toggle_search' => 0,
+    'toggle_favicon' => 1,
+    'toggle_primary_links' => 1,
+    'toggle_secondary_links' => 1,
+    'default_logo' => 1,
+    'logo_path' => '',
+    'logo_upload' => '',
+    'default_favicon' => 1,
+    'favicon_path' => '',
+    'favicon_upload' => '',
+    'boinc_stats_chart_color' => '#009CDB',
+    'boinc_stats_chart_bcolor' => '#EEEEEE',
+  );
+  $export['theme_einstein_settings'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'theme_settings';
+  $strongarm->value = array(
+    'toggle_node_info_page' => FALSE,
+  );
+  $export['theme_settings'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'theme_zen_settings';
+  $strongarm->value = array(
+    'zen_block_editing' => '1',
+    'zen_breadcrumb' => 'yes',
+    'zen_breadcrumb_separator' => ' › ',
+    'zen_breadcrumb_home' => '1',
+    'zen_breadcrumb_trailing' => '1',
+    'zen_breadcrumb_title' => '0',
+    'zen_layout' => 'zen-columns-liquid',
+    'zen_rebuild_registry' => '0',
+    'zen_wireframes' => '0',
+  );
+  $export['theme_zen_settings'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_email_verification';
+  $strongarm->value = 0;
+  $export['user_email_verification'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_password_reset_body';
+  $strongarm->value = '!username,
+
+A request to reset the password for your account has been made at !site.
+
+You may now log in to !uri_brief by clicking on this link or copying and pasting it in your browser:
+
+!login_url
+
+This is a one-time login, so it can be used only once. It expires after one day and nothing will happen if it\'s not used.
+
+After logging in, you will be redirected to !edit_uri so you can change your password.';
+  $export['user_mail_password_reset_body'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_password_reset_subject';
+  $strongarm->value = 'Replacement login information for !username at !site';
+  $export['user_mail_password_reset_subject'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_register_admin_created_body';
+  $strongarm->value = '!username,
+
+A site administrator at !site has created an account for you. You may now log in to !login_uri using the following username and password:
+
+username: !username
+password: !password
+
+You may also log in by clicking on this link or copying and pasting it in your browser:
+
+!login_url
+
+This is a one-time login, so it can be used only once.
+
+After logging in, you will be redirected to !edit_uri so you can change your password.
+
+
+--  !site team';
+  $export['user_mail_register_admin_created_body'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_register_admin_created_subject';
+  $strongarm->value = 'An administrator created an account for you at !site';
+  $export['user_mail_register_admin_created_subject'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_register_no_approval_required_body';
+  $strongarm->value = '!username,
+
+Thank you for registering at !site. You may now log in to !login_uri using the following username and password:
+
+username: !username
+password: !password
+
+You may also log in by clicking on this link or copying and pasting it in your browser:
+
+!login_url
+
+This is a one-time login, so it can be used only once.
+
+After logging in, you will be redirected to !edit_uri so you can change your password.
+
+
+--  !site team';
+  $export['user_mail_register_no_approval_required_body'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_register_no_approval_required_subject';
+  $strongarm->value = 'Account details for !username at !site';
+  $export['user_mail_register_no_approval_required_subject'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_register_pending_approval_body';
+  $strongarm->value = '!username,
+
+Thank you for registering at !site. Your application for an account is currently pending approval. Once it has been approved, you will receive another e-mail containing information about how to log in, set your password, and other details.
+
+
+--  !site team';
+  $export['user_mail_register_pending_approval_body'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_register_pending_approval_subject';
+  $strongarm->value = 'Account details for !username at !site (pending admin approval)';
+  $export['user_mail_register_pending_approval_subject'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_activated_body';
+  $strongarm->value = '!username,
+
+Your account at !site has been activated.
+
+You may now log in by clicking on this link or copying and pasting it in your browser:
+
+!login_url
+
+This is a one-time login, so it can be used only once.
+
+After logging in, you will be redirected to !edit_uri so you can change your password.
+
+Once you have set your own password, you will be able to log in to !login_uri in the future using:
+
+username: !username
+';
+  $export['user_mail_status_activated_body'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_activated_notify';
+  $strongarm->value = 1;
+  $export['user_mail_status_activated_notify'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_activated_subject';
+  $strongarm->value = 'Account details for !username at !site (approved)';
+  $export['user_mail_status_activated_subject'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_blocked_body';
+  $strongarm->value = '!username,
+
+Your account on !site has been blocked.';
+  $export['user_mail_status_blocked_body'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_blocked_notify';
+  $strongarm->value = 0;
+  $export['user_mail_status_blocked_notify'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_blocked_subject';
+  $strongarm->value = 'Account details for !username at !site (blocked)';
+  $export['user_mail_status_blocked_subject'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_deleted_body';
+  $strongarm->value = '!username,
+
+Your account on !site has been deleted.';
+  $export['user_mail_status_deleted_body'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_deleted_notify';
+  $strongarm->value = 0;
+  $export['user_mail_status_deleted_notify'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_mail_status_deleted_subject';
+  $strongarm->value = 'Account details for !username at !site (deleted)';
+  $export['user_mail_status_deleted_subject'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_pictures';
+  $strongarm->value = '1';
+  $export['user_pictures'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_picture_default';
+  $strongarm->value = '';
+  $export['user_picture_default'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_picture_dimensions';
+  $strongarm->value = '85x85';
+  $export['user_picture_dimensions'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_picture_file_size';
+  $strongarm->value = '30';
+  $export['user_picture_file_size'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_picture_guidelines';
+  $strongarm->value = '';
+  $export['user_picture_guidelines'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_picture_path';
+  $strongarm->value = 'pictures';
+  $export['user_picture_path'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_register';
+  $strongarm->value = '0';
+  $export['user_register'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_registration_help';
+  $strongarm->value = '';
+  $export['user_registration_help'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'user_signatures';
+  $strongarm->value = '1';
+  $export['user_signatures'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.views_default.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.views_default.inc
new file mode 100644
index 0000000..0bf3739
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.views_default.inc
@@ -0,0 +1,409 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function boinc_standard_views_default_views() {
+  $views = array();
+
+  // Exported view: admin_user_search
+  $view = new view;
+  $view->name = 'admin_user_search';
+  $view->description = 'Administrator User Search';
+  $view->tag = '';
+  $view->base_table = 'users';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'uid' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => 'account/[uid]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'exclude' => 0,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'account/[uid]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'overwrite_anonymous' => 0,
+      'anonymous_text' => '',
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'rid' => array(
+      'label' => 'Roles',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'type' => 'separator',
+      'separator' => ', ',
+      'exclude' => 0,
+      'id' => 'rid',
+      'table' => 'users_roles',
+      'field' => 'rid',
+      'relationship' => 'none',
+    ),
+    'status' => array(
+      'label' => 'Banned',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'type' => 'yes-no',
+      'not' => 1,
+      'exclude' => 0,
+      'id' => 'status',
+      'table' => 'users',
+      'field' => 'status',
+      'relationship' => 'none',
+    ),
+    'access' => array(
+      'label' => 'Last access',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'access',
+      'table' => 'users',
+      'field' => 'access',
+      'relationship' => 'none',
+    ),
+    'login' => array(
+      'label' => 'Last login',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'login',
+      'table' => 'users',
+      'field' => 'login',
+      'relationship' => 'none',
+    ),
+    'created' => array(
+      'label' => 'Created date',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'created',
+      'table' => 'users',
+      'field' => 'created',
+      'relationship' => 'none',
+    ),
+    'edit_node' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'text' => '',
+      'exclude' => 0,
+      'id' => 'edit_node',
+      'table' => 'users',
+      'field' => 'edit_node',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'name' => array(
+      'operator' => 'contains',
+      'value' => '',
+      'group' => '0',
+      'exposed' => TRUE,
+      'expose' => array(
+        'use_operator' => 0,
+        'operator' => 'name_op',
+        'identifier' => 'name',
+        'label' => 'Part of a User\'s name',
+        'remember' => 0,
+      ),
+      'case' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'mail' => array(
+      'operator' => 'contains',
+      'value' => '',
+      'group' => '0',
+      'exposed' => TRUE,
+      'expose' => array(
+        'use_operator' => 0,
+        'operator' => 'mail_op',
+        'identifier' => 'mail',
+        'label' => 'Part of a User\'s E-mail',
+        'remember' => 0,
+      ),
+      'case' => 0,
+      'id' => 'mail',
+      'table' => 'users',
+      'field' => 'mail',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'perm' => 'administer users',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'uid' => 'uid',
+      'name' => 'name',
+      'status' => 'status',
+      'rid' => 'rid',
+      'login' => 'login',
+      'access' => 'access',
+      'created' => 'created',
+      'edit_node' => 'edit_node',
+    ),
+    'info' => array(
+      'uid' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'status' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'rid' => array(
+        'separator' => '',
+      ),
+      'login' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'access' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'created' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'edit_node' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'access',
+  ));
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('path', 'admin/user/search');
+  $handler->override_option('menu', array(
+    'type' => 'normal',
+    'title' => 'User search',
+    'description' => 'Find users by partial name or email address',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/boinc_standard/boinc_standard.wysiwyg.inc b/drupal/sites/all/features/boinc_standard/boinc_standard.wysiwyg.inc
new file mode 100644
index 0000000..4ba9813
--- /dev/null
+++ b/drupal/sites/all/features/boinc_standard/boinc_standard.wysiwyg.inc
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * Implementation of hook_default_wysiwyg().
+ */
+function boinc_standard_default_wysiwyg() {
+  $export = array();
+
+  $wysiwyg = new stdClass;
+  $wysiwyg->disabled = FALSE; /* Edit this to true to make a default wysiwyg disabled initially */
+  $wysiwyg->api_version = 2;
+  $wysiwyg->editor = 'tinymce';
+  $wysiwyg->settings = array(
+    'default' => 1,
+    'user_choose' => 1,
+    'show_toggle' => 1,
+    'theme' => 'advanced',
+    'language' => 'en',
+    'buttons' => array(
+      'default' => array(
+        'bold' => 1,
+        'italic' => 1,
+        'underline' => 1,
+        'strikethrough' => 1,
+        'justifyleft' => 1,
+        'justifycenter' => 1,
+        'justifyright' => 1,
+        'justifyfull' => 1,
+        'bullist' => 1,
+        'numlist' => 1,
+        'outdent' => 1,
+        'indent' => 1,
+        'undo' => 1,
+        'redo' => 1,
+        'link' => 1,
+        'image' => 1,
+        'sup' => 1,
+        'sub' => 1,
+        'blockquote' => 1,
+        'hr' => 1,
+        'removeformat' => 1,
+        'charmap' => 1,
+      ),
+      'advimage' => array(
+        'advimage' => 1,
+      ),
+      'emotions' => array(
+        'emotions' => 1,
+      ),
+      'font' => array(
+        'formatselect' => 1,
+      ),
+      'paste' => array(
+        'pastetext' => 1,
+      ),
+      'media' => array(
+        'media' => 1,
+      ),
+      'drupal' => array(
+        'linebreaks' => 1,
+      ),
+    ),
+    'toolbar_loc' => 'top',
+    'toolbar_align' => 'left',
+    'path_loc' => 'bottom',
+    'resizing' => 1,
+    'verify_html' => 1,
+    'preformatted' => 0,
+    'convert_fonts_to_spans' => 1,
+    'remove_linebreaks' => 1,
+    'apply_source_formatting' => 0,
+    'paste_auto_cleanup_on_paste' => 1,
+    'block_formats' => 'p,code,pre,h2,h3,h4,h5,h6,div,address',
+    'css_setting' => 'theme',
+    'css_path' => '',
+    'css_classes' => 'Image with caption=standalone-image
+Float left with caption=image-left
+Float right with caption=image-right',
+  );
+  $wysiwyg->machine = 'rich_text';
+  $export['rich_text'] = $wysiwyg;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.context.inc b/drupal/sites/all/features/discussion_forums/discussion_forums.context.inc
new file mode 100644
index 0000000..f30fbb8
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.context.inc
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * Implementation of hook_context_default_contexts().
+ */
+function discussion_forums_context_default_contexts() {
+  $export = array();
+
+  $context = new stdClass;
+  $context->disabled = FALSE; /* Edit this to true to make a default context disabled initially */
+  $context->api_version = 3;
+  $context->name = 'community_default';
+  $context->description = 'Highlight the Message Boards submenu when viewing the top level community page';
+  $context->tag = 'community';
+  $context->conditions = array(
+    'path' => array(
+      'values' => array(
+        'community' => 'community',
+      ),
+    ),
+  );
+  $context->reactions = array(
+    'menu' => 'community/forum',
+  );
+  $context->condition_mode = 0;
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Highlight the Message Boards submenu when viewing the top level community page');
+  t('community');
+  $export['community_default'] = $context;
+
+  $context = new stdClass;
+  $context->disabled = FALSE; /* Edit this to true to make a default context disabled initially */
+  $context->api_version = 3;
+  $context->name = 'forum_topics';
+  $context->description = 'Highlight the Community menu when viewing forum topics';
+  $context->tag = 'community';
+  $context->conditions = array(
+    'node' => array(
+      'values' => array(
+        'forum' => 'forum',
+      ),
+      'options' => array(
+        'node_form' => '1',
+      ),
+    ),
+  );
+  $context->reactions = array(
+    'menu' => 'forum',
+  );
+  $context->condition_mode = 0;
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Highlight the Community menu when viewing forum topics');
+  t('community');
+  $export['forum_topics'] = $context;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.features.fe_block_settings.inc b/drupal/sites/all/features/discussion_forums/discussion_forums.features.fe_block_settings.inc
new file mode 100644
index 0000000..0773b3e
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.features.fe_block_settings.inc
@@ -0,0 +1,137 @@
+<?php
+
+/**
+ * Implementation of hook_default_fe_block_settings().
+ */
+function discussion_forums_default_fe_block_settings() {
+  $export = array();
+
+  // boinc
+  $theme = array();
+
+  $theme['comment_form_block-comment_form'] = array(
+    'module' => 'comment_form_block',
+    'delta' => 'comment_form',
+    'theme' => 'boinc',
+    'status' => '1',
+    'weight' => '-19',
+    'region' => 'content_bottom',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '2',
+    'pages' => '<?php
+  // Only show if $match is true
+  $match = FALSE;
+
+  // Which node types
+  $types = array(\'forum\', \'team_forum\');
+
+  // Match current node type with array of types
+  if (arg(0) == \'node\' && is_numeric(arg(1))) {
+    $nid = arg(1);
+    $node = node_load(array(\'nid\' => $nid));
+    $type = $node->type; 
+    $match |= in_array($type, $types);
+    // Don\'t show if comments aren\'t enabled...
+    if ($node->comment != 2) {
+      $match = FALSE;
+    }
+  }
+
+  return $match;
+?>',
+    'title' => '',
+    'cache' => '1',
+  );
+
+  $export['boinc'] = $theme;
+
+  // einstein
+  $theme = array();
+
+  $theme['comment_form_block-comment_form'] = array(
+    'module' => 'comment_form_block',
+    'delta' => 'comment_form',
+    'theme' => 'einstein',
+    'status' => '1',
+    'weight' => '0',
+    'region' => 'content_bottom',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '2',
+    'pages' => '<?php
+  // Only show if $match is true
+  $match = FALSE;
+
+  // Which node types
+  $types = array(\'forum\', \'team_forum\');
+
+  // Match current node type with array of types
+  if (arg(0) == \'node\' && is_numeric(arg(1))) {
+    $nid = arg(1);
+    $node = node_load(array(\'nid\' => $nid));
+    $type = $node->type; 
+    $match |= in_array($type, $types);
+    // Don\'t show if comments aren\'t enabled...
+    if ($node->comment != 2) {
+      $match = FALSE;
+    }
+  }
+
+  return $match;
+?>',
+    'title' => '',
+    'cache' => '1',
+  );
+
+  $export['einstein'] = $theme;
+
+  // garland
+  $theme = array();
+
+  $theme['comment_form_block-comment_form'] = array(
+    'module' => 'comment_form_block',
+    'delta' => 'comment_form',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '2',
+    'pages' => '<?php
+  // Only show if $match is true
+  $match = FALSE;
+
+  // Which node types
+  $types = array(\'forum\', \'team_forum\');
+
+  // Match current node type with array of types
+  if (arg(0) == \'node\' && is_numeric(arg(1))) {
+    $nid = arg(1);
+    $node = node_load(array(\'nid\' => $nid));
+    $type = $node->type; 
+    $match |= in_array($type, $types);
+    // Don\'t show if comments aren\'t enabled...
+    if ($node->comment != 2) {
+      $match = FALSE;
+    }
+  }
+
+  return $match;
+?>',
+    'title' => '',
+    'cache' => '1',
+  );
+
+  $export['garland'] = $theme;
+
+  $theme_default = variable_get('theme_default', 'garland');
+  $themes = list_themes();
+  foreach ($export as $theme_key => $settings) {
+    if ($theme_key != $theme_default && empty($themes[$theme_key]->status)) {
+      unset($export[$theme_key]);
+    }
+  }
+  return $export;
+}
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.features.inc b/drupal/sites/all/features/discussion_forums/discussion_forums.features.inc
new file mode 100644
index 0000000..d731fe6
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.features.inc
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function discussion_forums_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "context" && $api == "context") {
+    return array("version" => 3);
+  }
+  elseif ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.features.role_export.inc b/drupal/sites/all/features/discussion_forums/discussion_forums.features.role_export.inc
new file mode 100644
index 0000000..accdbe1
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.features.role_export.inc
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * Implementation of hook_role_export_defaults().
+ */
+function discussion_forums_role_export_defaults() {
+  $roles = array();
+
+  $roles['moderator'] = array(
+    'rid' => '1271379760',
+    'name' => 'moderator',
+    'machine_name' => 'moderator',
+  );
+
+  return $roles;
+}
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.features.user_permission.inc b/drupal/sites/all/features/discussion_forums/discussion_forums.features.user_permission.inc
new file mode 100644
index 0000000..453ef96
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.features.user_permission.inc
@@ -0,0 +1,109 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function discussion_forums_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: access comments
+  $permissions['access comments'] = array(
+    'name' => 'access comments',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'anonymous user',
+      '2' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: administer comments
+  $permissions['administer comments'] = array(
+    'name' => 'administer comments',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+    ),
+  );
+
+  // Exported permission: administer forums
+  $permissions['administer forums'] = array(
+    'name' => 'administer forums',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: assign community member role
+  $permissions['assign community member role'] = array(
+    'name' => 'assign community member role',
+    'roles' => array(
+      '0' => 'moderator',
+    ),
+  );
+
+  // Exported permission: create forum topics
+  $permissions['create forum topics'] = array(
+    'name' => 'create forum topics',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+      '2' => 'verified contributor',
+    ),
+  );
+
+  // Exported permission: delete any forum topic
+  $permissions['delete any forum topic'] = array(
+    'name' => 'delete any forum topic',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete own forum topics
+  $permissions['delete own forum topics'] = array(
+    'name' => 'delete own forum topics',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: edit any forum topic
+  $permissions['edit any forum topic'] = array(
+    'name' => 'edit any forum topic',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+    ),
+  );
+
+  // Exported permission: edit own forum topics
+  $permissions['edit own forum topics'] = array(
+    'name' => 'edit own forum topics',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'verified contributor',
+    ),
+  );
+
+  // Exported permission: post comments
+  $permissions['post comments'] = array(
+    'name' => 'post comments',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+      '2' => 'verified contributor',
+    ),
+  );
+
+  // Exported permission: post comments without approval
+  $permissions['post comments without approval'] = array(
+    'name' => 'post comments without approval',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+      '2' => 'verified contributor',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.info b/drupal/sites/all/features/discussion_forums/discussion_forums.info
new file mode 100644
index 0000000..5b1da3f
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.info
@@ -0,0 +1,46 @@
+name = "Discussion forums"
+description = "Forum support for the user community"
+core = "6.x"
+package = "Features"
+dependencies[] = "acl"
+dependencies[] = "boinc_standard"
+dependencies[] = "comment_form_block"
+dependencies[] = "context"
+dependencies[] = "fe_block"
+dependencies[] = "features"
+dependencies[] = "forum"
+dependencies[] = "forum_access"
+dependencies[] = "forum_tweaks"
+dependencies[] = "menu"
+dependencies[] = "role_delegation"
+dependencies[] = "role_export"
+dependencies[] = "strongarm"
+dependencies[] = "taxonomy"
+dependencies[] = "wysiwyg"
+features[context][] = "community_default"
+features[context][] = "forum_topics"
+features[ctools][] = "context:context:3"
+features[ctools][] = "strongarm:strongarm:1"
+features[fe_block_settings][] = "comment_form_block-comment_form"
+features[role_export][] = "moderator"
+features[user_permission][] = "access comments"
+features[user_permission][] = "administer comments"
+features[user_permission][] = "administer forums"
+features[user_permission][] = "assign community member role"
+features[user_permission][] = "create forum topics"
+features[user_permission][] = "delete any forum topic"
+features[user_permission][] = "delete own forum topics"
+features[user_permission][] = "edit any forum topic"
+features[user_permission][] = "edit own forum topics"
+features[user_permission][] = "post comments"
+features[user_permission][] = "post comments without approval"
+features[variable][] = "comment_anonymous_forum"
+features[variable][] = "comment_controls_forum"
+features[variable][] = "comment_default_mode_forum"
+features[variable][] = "comment_default_order_forum"
+features[variable][] = "comment_default_per_page_forum"
+features[variable][] = "comment_form_location_forum"
+features[variable][] = "comment_forum"
+features[variable][] = "comment_preview_forum"
+features[variable][] = "comment_subject_field_forum"
+features[variable][] = "quote"
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.module b/drupal/sites/all/features/discussion_forums/discussion_forums.module
new file mode 100644
index 0000000..9324b99
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.module
@@ -0,0 +1,62 @@
+<?php
+
+// 
+
+require_once('discussion_forums.features.inc');
+
+/**
+ * Make some changes to configurations after the feature has been enabled
+ */
+function discussion_forums_enable() {
+  // Check that the forum access module has its internal role set up and that
+  // it has been renamed from "Forum Moderator," which is ridiculous
+  
+  $better_name = t('forum control (system use only)');
+  
+  // Get the role ID of the forum access moderator role; this also sets up the
+  // role if for some reason it has not already been done
+  module_load_include('inc', 'forum_access', 'forum_access.node');
+  $rid = _forum_access_get_moderator_rid();
+  
+  // The role export module really messes with role IDs... be sure things are
+  // normalized before thinking that the forum access role ID won't change
+  role_export_normalize();
+  
+  $roles = user_roles();
+  
+  if (isset($roles[$rid]) AND $roles[$rid] == $better_name) {
+    // Life is good
+  }
+  else {
+    $better_rid = array_search($better_name, $roles);
+    $old_rid = array_search('Forum Moderator', $roles);
+    if (!$better_rid) {
+      if ($old_rid) {
+        db_query("UPDATE {role} SET name = '%s' WHERE rid = %d",
+          $better_name, $old_rid);
+        $better_rid = $old_rid;
+        $old_rid = NULL;
+      }
+      else {
+        drupal_set_message(t('The Forum Access module is not set up right. Try disabling the Discussion Forums feature and then manually uninstall the Forum Access module before enabling Discussion Forums again.', 'error'));
+      }
+    }
+    // Use our "better named" role for the forum access moderator
+    variable_set('forum_access_moderator_rid', $better_rid);
+    if ($old_rid) {
+      // Delete the default forum access role
+      db_query("DELETE FROM {role} WHERE rid = '%d'", $old_rid);
+    }
+  }
+}
+
+function discussion_forums_menu_alter(&$items) {
+  // Change the forum menu item to use the path: community/forum
+  $items['community'] = $items['forum'];
+  $items['community']['title'] = t('Community');
+  $items['community']['type'] = MENU_NORMAL_ITEM;
+  $items['community']['menu_name'] = 'primary-links';
+  $items['community/forum'] = $items['community'];
+  $items['community/forum']['title'] = t('Message boards');
+  unset($items['forum']);
+}
diff --git a/drupal/sites/all/features/discussion_forums/discussion_forums.strongarm.inc b/drupal/sites/all/features/discussion_forums/discussion_forums.strongarm.inc
new file mode 100644
index 0000000..f99e606
--- /dev/null
+++ b/drupal/sites/all/features/discussion_forums/discussion_forums.strongarm.inc
@@ -0,0 +1,88 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function discussion_forums_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_anonymous_forum';
+  $strongarm->value = 0;
+  $export['comment_anonymous_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_controls_forum';
+  $strongarm->value = '1';
+  $export['comment_controls_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_mode_forum';
+  $strongarm->value = '2';
+  $export['comment_default_mode_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_order_forum';
+  $strongarm->value = '2';
+  $export['comment_default_order_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_per_page_forum';
+  $strongarm->value = '10';
+  $export['comment_default_per_page_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_form_location_forum';
+  $strongarm->value = '0';
+  $export['comment_form_location_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_forum';
+  $strongarm->value = '2';
+  $export['comment_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_preview_forum';
+  $strongarm->value = '0';
+  $export['comment_preview_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_subject_field_forum';
+  $strongarm->value = '1';
+  $export['comment_subject_field_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'quote';
+  $strongarm->value = array(
+    'node_types' => array(
+      'news' => 'news',
+      'team_forum' => 'team_forum',
+      'forum' => 'forum',
+    ),
+    'node_link_display' => 1,
+    'subject_required' => 0,
+  );
+  $export['quote'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/friends/friends.features.inc b/drupal/sites/all/features/friends/friends.features.inc
new file mode 100644
index 0000000..70b9aba
--- /dev/null
+++ b/drupal/sites/all/features/friends/friends.features.inc
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * Implementation of hook_flag_default_flags().
+ */
+function friends_flag_default_flags() {
+  $flags = array();
+  // Exported flag: "Friend".
+  $flags['friend'] = array(
+    'content_type' => 'user',
+    'title' => 'Friend',
+    'global' => FALSE,
+    'types' => array(),
+    'flag_short' => 'Add friend',
+    'flag_long' => 'Add this user to your list of friends.',
+    'flag_message' => '',
+    'unflag_short' => 'Remove friend',
+    'unflag_long' => 'Remove this user from your list of friends.',
+    'unflag_message' => '',
+    'unflag_denied_text' => '',
+    'link_type' => 'confirm',
+    'roles' => array(
+      'flag' => array(
+        '0' => 2,
+      ),
+      'unflag' => array(
+        '0' => 2,
+      ),
+    ),
+    'weight' => 0,
+    'show_on_profile' => 1,
+    'access_uid' => '',
+    'flag_confirmation' => 'Add [display-name] as a friend?',
+    'unflag_confirmation' => 'Remove [display-name] as a friend?',
+    'module' => 'friends',
+    'locked' => array(
+      '0' => 'name',
+    ),
+    'api_version' => 2,
+  );
+  return $flags;
+
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function friends_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/friends/friends.features.user_permission.inc b/drupal/sites/all/features/friends/friends.features.user_permission.inc
new file mode 100644
index 0000000..84cb4ce
--- /dev/null
+++ b/drupal/sites/all/features/friends/friends.features.user_permission.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function friends_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: receive friend email notification
+  $permissions['receive friend email notification'] = array(
+    'name' => 'receive friend email notification',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/friends/friends.info b/drupal/sites/all/features/friends/friends.info
new file mode 100644
index 0000000..50fd8ce
--- /dev/null
+++ b/drupal/sites/all/features/friends/friends.info
@@ -0,0 +1,14 @@
+name = "Friends"
+description = "Friend relationships between users"
+core = "6.x"
+package = "Features"
+dependencies[] = "content"
+dependencies[] = "features"
+dependencies[] = "flag"
+dependencies[] = "flag_friend"
+dependencies[] = "menu"
+dependencies[] = "views"
+features[flag][] = "friend"
+features[user_permission][] = "receive friend email notification"
+features[views][] = "boinc_friends"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/friends/friends.module b/drupal/sites/all/features/friends/friends.module
new file mode 100644
index 0000000..ba0f93d
--- /dev/null
+++ b/drupal/sites/all/features/friends/friends.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('friends.features.inc');
diff --git a/drupal/sites/all/features/friends/friends.views_default.inc b/drupal/sites/all/features/friends/friends.views_default.inc
new file mode 100644
index 0000000..5bb8bd0
--- /dev/null
+++ b/drupal/sites/all/features/friends/friends.views_default.inc
@@ -0,0 +1,918 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function friends_views_default_views() {
+  $views = array();
+
+  // Exported view: boinc_friends
+  $view = new view;
+  $view->name = 'boinc_friends';
+  $view->description = 'Customized views for friend relationships';
+  $view->tag = 'boinc';
+  $view->base_table = 'users';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'flag_friend_content_rel' => array(
+      'label' => 'flag friend',
+      'required' => 1,
+      'flag' => 'friend',
+      'user_scope' => 'any',
+      'id' => 'flag_friend_content_rel',
+      'table' => 'users',
+      'field' => 'flag_friend_content_rel',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'name' => array(
+      'label' => 'Name',
+      'link_to_user' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'ops' => array(
+      'label' => 'Flag link',
+      'link_type' => '',
+      'exclude' => 0,
+      'id' => 'ops',
+      'table' => 'flag_content',
+      'field' => 'ops',
+      'relationship' => 'flag_friend_content_rel',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'uid' => array(
+      'label' => 'Flag friend links',
+      'exclude' => 0,
+      'id' => 'uid',
+      'table' => 'flag_friend',
+      'field' => 'uid',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'friend_uid' => array(
+      'id' => 'friend_uid',
+      'table' => 'flag_friend',
+      'field' => 'friend_uid',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'status',
+      'table' => 'users',
+      'field' => 'status',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'perm' => 'access content',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('empty', bts('No Friends have been added.', array(), NULL, 'boinc:friends-page'));
+  $handler->override_option('empty_format', '5');
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('distinct', 1);
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'asc',
+    'summary' => '',
+    'columns' => array(
+      'name' => 'name',
+      'ops' => 'ops',
+      'uid' => 'uid',
+    ),
+    'info' => array(
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'ops' => array(
+        'separator' => '',
+      ),
+      'uid' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => '-1',
+  ));
+  $handler = $view->new_display('page', 'Page (friends)', 'page_1');
+  $handler->override_option('relationships', array());
+  $handler->override_option('fields', array(
+    'picture' => array(
+      'label' => 'Friend',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'picture',
+      'table' => 'users',
+      'field' => 'picture',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'link_to_user' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'uid' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'uid',
+      'table' => 'flag_friend',
+      'field' => 'uid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'friend_uid' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'current_user',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'flag_friend_include_arg_user' => 0,
+      'id' => 'friend_uid',
+      'table' => 'flag_friend',
+      'field' => 'friend_uid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+        5 => 0,
+        4 => 0,
+        6 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+        5 => 0,
+        4 => 0,
+        6 => 0,
+      ),
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'news' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('title', 'Friends');
+  $handler->override_option('path', 'account/%/friends/all');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => bts('View All Friends', array(), NULL, 'boinc:friends-page'),
+    'description' => '',
+    'weight' => '-10',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'normal',
+    'title' => 'Friends',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Page (pending)', 'page_2');
+  $handler->override_option('fields', array(
+    'picture' => array(
+      'label' => 'User',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'picture',
+      'table' => 'users',
+      'field' => 'picture',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'link_to_user' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'message' => array(
+      'label' => 'Message',
+      'exclude' => 0,
+      'id' => 'message',
+      'table' => 'flag_friend_message',
+      'field' => 'message',
+      'relationship' => 'flag_friend_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'uid' => array(
+      'label' => 'Flag friend links',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '<ul class="tab-list">
+  <li class="alt tab">[uid]</li>',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'uid',
+      'table' => 'flag_friend',
+      'field' => 'uid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'ops' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '  <li class="first alt tab">[ops]</li>
+</ul>',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_type' => '',
+      'exclude' => 0,
+      'id' => 'ops',
+      'table' => 'flag_content',
+      'field' => 'ops',
+      'relationship' => 'flag_friend_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'content_id' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'default_argument_type' => 'user',
+      'default_argument' => '',
+      'validate_type' => 'php',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'content_id',
+      'table' => 'flag_content',
+      'field' => 'content_id',
+      'relationship' => 'flag_friend_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'default_options_div_prefix' => '',
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(),
+      'validate_argument_type' => 'tid',
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => 'if ($argument !== $GLOBALS[\'user\']->uid && !user_access(\'administer users\')) {
+                                      return FALSE;
+                                    }
+                                    return TRUE;',
+    ),
+  ));
+  $handler->override_option('title', 'Friend Requests');
+  $handler->override_option('header', 'These are users who would like to be your friend.');
+  $handler->override_option('header_format', '5');
+  $handler->override_option('header_empty', 0);
+  $handler->override_option('empty', 'No Friend Requests.');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'asc',
+    'summary' => '',
+    'columns' => array(
+      'picture' => 'picture',
+      'name' => 'name',
+      'message' => 'message',
+      'ops' => 'ops',
+      'uid' => 'ops',
+    ),
+    'info' => array(
+      'picture' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'message' => array(
+        'separator' => '',
+      ),
+      'ops' => array(
+        'separator' => '',
+      ),
+      'uid' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => '-1',
+  ));
+  $handler->override_option('path', 'account/%/friends/pending');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => bts('Friend Requests', array(), NULL, 'boinc:friends-page'),
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Page (flagged)', 'page_3');
+  $handler->override_option('relationships', array(
+    'flag_content_rel' => array(
+      'label' => 'flag',
+      'required' => 1,
+      'flag' => 'friend',
+      'user_scope' => 'any',
+      'id' => 'flag_content_rel',
+      'table' => 'users',
+      'field' => 'flag_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'uid' => array(
+      'label' => 'Flag user',
+      'required' => 0,
+      'id' => 'uid',
+      'table' => 'flag_content',
+      'field' => 'uid',
+      'relationship' => 'flag_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'picture' => array(
+      'label' => 'User',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'picture',
+      'table' => 'users',
+      'field' => 'picture',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'link_to_user' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'message' => array(
+      'label' => 'Message',
+      'exclude' => 0,
+      'id' => 'message',
+      'table' => 'flag_friend_message',
+      'field' => 'message',
+      'relationship' => 'flag_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'ops' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_type' => '',
+      'exclude' => 0,
+      'id' => 'ops',
+      'table' => 'flag_content',
+      'field' => 'ops',
+      'relationship' => 'flag_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'uid' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'user',
+      'default_argument' => '',
+      'validate_type' => 'php',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'uid',
+      'default_options_div_prefix' => '',
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => 'if ($argument !== $GLOBALS[\'user\']->uid && !user_access(\'administer users\')) {
+    return FALSE;
+  }
+  return TRUE;',
+    ),
+  ));
+  $handler->override_option('title', 'Awaiting Friend Approvals');
+  $handler->override_option('header', 'These are users who you have requested to be friends with.');
+  $handler->override_option('header_format', '5');
+  $handler->override_option('header_empty', 1);
+  $handler->override_option('empty', 'No Friend Requests.');
+  $handler->override_option('path', 'account/%/friends/flagged');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => bts('Awaiting Friend Approvals', array(), NULL, 'boinc:friends-page'),
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('block', 'Current user\'s Friends block', 'block_1');
+  $handler->override_option('relationships', array(
+    'content_profile_rel' => array(
+      'label' => 'Content Profile',
+      'required' => 0,
+      'type' => 'profile',
+      'id' => 'content_profile_rel',
+      'table' => 'users',
+      'field' => 'content_profile_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'overwrite_anonymous' => 0,
+      'anonymous_text' => '',
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'field_image_fid' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'label_type' => 'none',
+      'format' => 'image_plain',
+      'multiple' => array(
+        'group' => TRUE,
+        'multiple_number' => '',
+        'multiple_from' => '',
+        'multiple_reversed' => FALSE,
+      ),
+      'exclude' => 0,
+      'id' => 'field_image_fid',
+      'table' => 'node_data_field_image',
+      'field' => 'field_image_fid',
+      'relationship' => 'content_profile_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'uid' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'exclude' => 0,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'friend_uid' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'default_argument_type' => 'current_user',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'friend_uid',
+      'table' => 'flag_friend',
+      'field' => 'friend_uid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('header_format', '3');
+  $handler->override_option('header_empty', 0);
+  $handler->override_option('items_per_page', 6);
+  $handler->override_option('use_pager', '0');
+  $handler->override_option('use_more', 1);
+  $handler->override_option('use_more_always', 1);
+  $handler->override_option('style_plugin', 'default');
+  $handler->override_option('style_options', array());
+  $handler->override_option('block_description', '');
+  $handler->override_option('block_caching', -1);
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/global_search/global_search.features.inc b/drupal/sites/all/features/global_search/global_search.features.inc
new file mode 100644
index 0000000..831b0c8
--- /dev/null
+++ b/drupal/sites/all/features/global_search/global_search.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function global_search_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/global_search/global_search.features.user_permission.inc b/drupal/sites/all/features/global_search/global_search.features.user_permission.inc
new file mode 100644
index 0000000..390c91a
--- /dev/null
+++ b/drupal/sites/all/features/global_search/global_search.features.user_permission.inc
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function global_search_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: administer search
+  $permissions['administer search'] = array(
+    'name' => 'administer search',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: search content
+  $permissions['search content'] = array(
+    'name' => 'search content',
+    'roles' => array(
+      '0' => 'anonymous user',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: use advanced search
+  $permissions['use advanced search'] = array(
+    'name' => 'use advanced search',
+    'roles' => array(
+      '0' => 'anonymous user',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/global_search/global_search.info b/drupal/sites/all/features/global_search/global_search.info
new file mode 100644
index 0000000..da46e2a
--- /dev/null
+++ b/drupal/sites/all/features/global_search/global_search.info
@@ -0,0 +1,18 @@
+name = "Global search (basic)"
+description = "Provided a unified search across all site content"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "ctools"
+dependencies[] = "features"
+dependencies[] = "porterstemmer"
+dependencies[] = "sbp_nodes"
+dependencies[] = "sbp_paths"
+dependencies[] = "search"
+dependencies[] = "search404"
+dependencies[] = "search_by_page"
+dependencies[] = "search_config"
+dependencies[] = "strongarm"
+features[ctools][] = "strongarm:strongarm:1"
+features[variable][] = "search404_page_title"
+features[variable][] = "search_by_page_settings"
diff --git a/drupal/sites/all/features/global_search/global_search.module b/drupal/sites/all/features/global_search/global_search.module
new file mode 100644
index 0000000..9c4924f
--- /dev/null
+++ b/drupal/sites/all/features/global_search/global_search.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('global_search.features.inc');
diff --git a/drupal/sites/all/features/global_search/global_search.strongarm.inc b/drupal/sites/all/features/global_search/global_search.strongarm.inc
new file mode 100644
index 0000000..0887d67
--- /dev/null
+++ b/drupal/sites/all/features/global_search/global_search.strongarm.inc
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function global_search_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'search404_page_title';
+  $strongarm->value = 'Page not found';
+  $export['search404_page_title'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'search_by_page_settings';
+  $strongarm->value = array(
+    1 => array(
+      'environment_name' => 'general',
+      'page_title' => '',
+      'block_title' => 'Search',
+      'field_label' => 'Search',
+      'button_label' => 'Search',
+      'page_path' => 'find',
+      'exclude_tags' => '',
+      'sbp_nodes_types_indexed' => array(
+        'forum' => 'forum',
+        'page' => 'page',
+        'panel' => 'panel',
+        'profile' => 'profile',
+        'story' => 'story',
+      ),
+      'sbp_nodes_display_type' => 'excerpts',
+      'sbp_nodes_role' => '1',
+      'sbp_nodes_min_time' => '1',
+      'sbp_nodes_max_time' => '0',
+      'sbp_paths_min_time' => '1',
+      'sbp_paths_max_time' => '0',
+      'sbp_users_roles_indexed' => array(
+        2 => 2,
+        4 => 0,
+        5 => 0,
+        3 => 0,
+        6 => 0,
+      ),
+      'sbp_users_role' => '1',
+      'sbp_users_min_time' => '1',
+      'sbp_users_max_time' => '0',
+      'op' => 'Save configuration',
+    ),
+  );
+  $export['search_by_page_settings'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.apachesolr_environments.inc b/drupal/sites/all/features/global_search_solr/global_search_solr.apachesolr_environments.inc
new file mode 100644
index 0000000..4e65682
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.apachesolr_environments.inc
@@ -0,0 +1,93 @@
+<?php
+
+/**
+ * Implementation of hook_apachesolr_environments().
+ */
+function global_search_solr_apachesolr_environments() {
+  $export = array();
+
+  $environment = new stdClass;
+  $environment->api_version = 1;
+  $environment->env_id = 'solr';
+  $environment->name = 'localhost server';
+  $environment->url = 'http://localhost:8983/solr';
+  $environment->service_class = '';
+  $environment->conf = array(
+    'apachesolr_read_only' => '0',
+    'apachesolr_search_changed_boost' => '0:0',
+    'apachesolr_search_comment_boost' => '0:0',
+    'apachesolr_search_date_boost' => '0:0',
+    'apachesolr_search_facet_pages' => '',
+    'apachesolr_search_promote_boost' => '0',
+    'apachesolr_search_sticky_boost' => '0',
+    'apachesolr_search_type_boosts' => array(
+      'page' => '0',
+      'news' => '0',
+      'profile' => '0',
+      'forum' => '0',
+      'panel' => '0',
+      'story' => '0',
+    ),
+    'field_bias' => array(
+      'bs_promote' => '0',
+      'bs_status' => '0',
+      'bs_sticky' => '0',
+      'bs_translate' => '0',
+      'bundle' => '0',
+      'bundle_name' => '0',
+      'content' => '1.0',
+      'ds_changed' => '0',
+      'ds_created' => '0',
+      'ds_last_comment_or_change' => '0',
+      'entity_id' => '0',
+      'entity_type' => '0',
+      'hash' => '0',
+      'id' => '0',
+      'is_tnid' => '0',
+      'is_uid' => '0',
+      'label' => '5.0',
+      'path' => '0',
+      'path_alias' => '0',
+      'site' => '0',
+      'sm_field_background' => '0',
+      'sm_field_country' => '0',
+      'sm_field_opinions' => '0',
+      'sm_field_url' => '0',
+      'sm_field_zip' => '0',
+      'sort_label' => '0',
+      'sort_language' => '0',
+      'sort_name' => '0',
+      'sort_name_formatted' => '0',
+      'spell' => '0',
+      'ss_language' => '0',
+      'ss_name' => '0',
+      'ss_name_formatted' => '0',
+      'tags_a' => '0',
+      'tags_h1' => '5.0',
+      'tags_h2_h3' => '3.0',
+      'tags_h4_h5_h6' => '2.0',
+      'tags_inline' => '1.0',
+      'taxonomy_names' => '2.0',
+      'timestamp' => '0',
+      'tos_content_extra' => '0.1',
+      'tos_name' => '3.0',
+      'tos_name_formatted' => '0',
+      'ts_comments' => '0.5',
+      'url' => '0',
+    ),
+  );
+  $environment->index_bundles = array(
+    'node' => array(
+      0 => 'forum',
+      1 => 'news',
+      2 => 'page',
+      3 => 'panel',
+      4 => 'profile',
+      5 => 'story',
+      6 => 'team',
+    ),
+  );
+  $export['solr'] = $environment;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.apachesolr_search_defaults.inc b/drupal/sites/all/features/global_search_solr/global_search_solr.apachesolr_search_defaults.inc
new file mode 100644
index 0000000..e8d5515
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.apachesolr_search_defaults.inc
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * Implementation of hook_apachesolr_search_default_searchers().
+ */
+function global_search_solr_apachesolr_search_default_searchers() {
+  $export = array();
+
+  $searcher = new stdClass;
+  $searcher->disabled = FALSE; /* Edit this to true to make a default searcher disabled initially */
+  $searcher->api_version = 3;
+  $searcher->page_id = 'core_search';
+  $searcher->label = 'Core Search';
+  $searcher->description = 'Core Search';
+  $searcher->search_path = 'search/site';
+  $searcher->page_title = bts('Search site', array(), NULL, 'boinc:search-page');
+  $searcher->env_id = 'solr';
+  $searcher->settings = array(
+    'fq' => array(),
+    'apachesolr_search_custom_enable' => 0,
+    'apachesolr_search_search_type' => 'custom',
+    'apachesolr_search_search_box' => TRUE,
+    'apachesolr_search_per_page' => '10',
+    'apachesolr_search_browse' => 'none',
+    'apachesolr_search_spellcheck' => 1,
+    'apachesolr_search_allow_user_input' => 0,
+  );
+  $export['core_search'] = $searcher;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.facetapi_defaults.inc b/drupal/sites/all/features/global_search_solr/global_search_solr.facetapi_defaults.inc
new file mode 100644
index 0000000..5d4a8c7
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.facetapi_defaults.inc
@@ -0,0 +1,143 @@
+<?php
+
+/**
+ * Implementation of hook_facetapi_default_facet_settings().
+ */
+function global_search_solr_facetapi_default_facet_settings() {
+  $export = array();
+
+  $facet = new stdClass;
+  $facet->disabled = FALSE; /* Edit this to true to make a default facet disabled initially */
+  $facet->api_version = 1;
+  $facet->name = 'apachesolr at solr:block:author';
+  $facet->searcher = 'apachesolr at solr';
+  $facet->realm = 'block';
+  $facet->facet = 'author';
+  $facet->enabled = TRUE;
+  $facet->settings = array(
+    'weight' => 0,
+    'widget' => 'facetapi_links',
+    'filters' => array(),
+    'active_sorts' => array(
+      'active' => 'active',
+      'count' => 'count',
+      'display' => 'display',
+    ),
+    'sort_weight' => array(
+      'active' => -50,
+      'count' => -49,
+      'display' => -48,
+    ),
+    'sort_order' => array(
+      'active' => 3,
+      'count' => 3,
+      'display' => 4,
+    ),
+    'empty_behavior' => 'none',
+    'soft_limit' => 20,
+    'nofollow' => 1,
+    'show_expanded' => 0,
+  );
+  $export['apachesolr at solr:block:author'] = $facet;
+
+  $facet = new stdClass;
+  $facet->disabled = FALSE; /* Edit this to true to make a default facet disabled initially */
+  $facet->api_version = 1;
+  $facet->name = 'apachesolr at solr:block:bundle';
+  $facet->searcher = 'apachesolr at solr';
+  $facet->realm = 'block';
+  $facet->facet = 'bundle';
+  $facet->enabled = TRUE;
+  $facet->settings = array(
+    'weight' => 0,
+    'widget' => 'facetapi_links',
+    'filters' => array(),
+    'active_sorts' => array(
+      'active' => 'active',
+      'count' => 'count',
+      'display' => 'display',
+    ),
+    'sort_weight' => array(
+      'active' => -50,
+      'count' => -49,
+      'display' => -48,
+    ),
+    'sort_order' => array(
+      'active' => 3,
+      'count' => 3,
+      'display' => 4,
+    ),
+    'empty_behavior' => 'none',
+    'soft_limit' => 20,
+    'nofollow' => 1,
+    'show_expanded' => 0,
+  );
+  $export['apachesolr at solr:block:bundle'] = $facet;
+
+  $facet = new stdClass;
+  $facet->disabled = FALSE; /* Edit this to true to make a default facet disabled initially */
+  $facet->api_version = 1;
+  $facet->name = 'apachesolr at solr:block:changed';
+  $facet->searcher = 'apachesolr at solr';
+  $facet->realm = 'block';
+  $facet->facet = 'changed';
+  $facet->enabled = TRUE;
+  $facet->settings = array(
+    'weight' => 0,
+    'widget' => 'facetapi_links',
+    'filters' => array(),
+    'active_sorts' => array(
+      'active' => 'active',
+      'indexed' => 'indexed',
+    ),
+    'sort_weight' => array(
+      'active' => -50,
+      'indexed' => -49,
+    ),
+    'sort_order' => array(
+      'active' => 3,
+      'indexed' => 4,
+    ),
+    'empty_behavior' => 'none',
+    'soft_limit' => 20,
+    'nofollow' => 1,
+    'show_expanded' => 0,
+  );
+  $export['apachesolr at solr:block:changed'] = $facet;
+
+  $facet = new stdClass;
+  $facet->disabled = FALSE; /* Edit this to true to make a default facet disabled initially */
+  $facet->api_version = 1;
+  $facet->name = 'apachesolr at solr:block:im_taxonomy_vid_1';
+  $facet->searcher = 'apachesolr at solr';
+  $facet->realm = 'block';
+  $facet->facet = 'im_taxonomy_vid_1';
+  $facet->enabled = TRUE;
+  $facet->settings = array(
+    'weight' => 0,
+    'widget' => 'facetapi_links',
+    'filters' => array(),
+    'active_sorts' => array(
+      'active' => 'active',
+      'count' => 'count',
+      'display' => 'display',
+    ),
+    'sort_weight' => array(
+      'active' => -50,
+      'count' => -49,
+      'display' => -48,
+    ),
+    'sort_order' => array(
+      'active' => 3,
+      'count' => 3,
+      'display' => 4,
+    ),
+    'empty_behavior' => 'none',
+    'soft_limit' => 20,
+    'nofollow' => 1,
+    'show_expanded' => 0,
+  );
+  $export['apachesolr at solr:block:im_taxonomy_vid_1'] = $facet;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.features.fe_block_settings.inc b/drupal/sites/all/features/global_search_solr/global_search_solr.features.fe_block_settings.inc
new file mode 100644
index 0000000..b5963ee
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.features.fe_block_settings.inc
@@ -0,0 +1,257 @@
+<?php
+
+/**
+ * Implementation of hook_default_fe_block_settings().
+ */
+function global_search_solr_default_fe_block_settings() {
+  $export = array();
+
+  // boinc
+  $theme = array();
+
+  $theme['apachesolr_search-sort'] = array(
+    'module' => 'apachesolr_search',
+    'delta' => 'sort',
+    'theme' => 'boinc',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-7ML0OK3vgYXeSgMyfPmmpnz2TBw9jZ7J'] = array(
+    'module' => 'facetapi',
+    'delta' => '7ML0OK3vgYXeSgMyfPmmpnz2TBw9jZ7J',
+    'theme' => 'boinc',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-GiIy4zr9Gu0ZSa0bumw1Y9qIIpIDf1wu'] = array(
+    'module' => 'facetapi',
+    'delta' => 'GiIy4zr9Gu0ZSa0bumw1Y9qIIpIDf1wu',
+    'theme' => 'boinc',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-WtseAVugB1EhxGslwR3XIwoa0sVTttYt'] = array(
+    'module' => 'facetapi',
+    'delta' => 'WtseAVugB1EhxGslwR3XIwoa0sVTttYt',
+    'theme' => 'boinc',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-wWWinJ0eOefOtAMbjo2yl86Mnf1rO12j'] = array(
+    'module' => 'facetapi',
+    'delta' => 'wWWinJ0eOefOtAMbjo2yl86Mnf1rO12j',
+    'theme' => 'boinc',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $export['boinc'] = $theme;
+
+  // einstein
+  $theme = array();
+
+  $theme['apachesolr_search-sort'] = array(
+    'module' => 'apachesolr_search',
+    'delta' => 'sort',
+    'theme' => 'einstein',
+    'status' => '1',
+    'weight' => '-21',
+    'region' => 'sidebar_second',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-7ML0OK3vgYXeSgMyfPmmpnz2TBw9jZ7J'] = array(
+    'module' => 'facetapi',
+    'delta' => '7ML0OK3vgYXeSgMyfPmmpnz2TBw9jZ7J',
+    'theme' => 'einstein',
+    'status' => 0,
+    'weight' => '-24',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-GiIy4zr9Gu0ZSa0bumw1Y9qIIpIDf1wu'] = array(
+    'module' => 'facetapi',
+    'delta' => 'GiIy4zr9Gu0ZSa0bumw1Y9qIIpIDf1wu',
+    'theme' => 'einstein',
+    'status' => '1',
+    'weight' => '-24',
+    'region' => 'sidebar_second',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-WtseAVugB1EhxGslwR3XIwoa0sVTttYt'] = array(
+    'module' => 'facetapi',
+    'delta' => 'WtseAVugB1EhxGslwR3XIwoa0sVTttYt',
+    'theme' => 'einstein',
+    'status' => '1',
+    'weight' => '-23',
+    'region' => 'sidebar_second',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-wWWinJ0eOefOtAMbjo2yl86Mnf1rO12j'] = array(
+    'module' => 'facetapi',
+    'delta' => 'wWWinJ0eOefOtAMbjo2yl86Mnf1rO12j',
+    'theme' => 'einstein',
+    'status' => 0,
+    'weight' => '-23',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $export['einstein'] = $theme;
+
+  // garland
+  $theme = array();
+
+  $theme['apachesolr_search-sort'] = array(
+    'module' => 'apachesolr_search',
+    'delta' => 'sort',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-7ML0OK3vgYXeSgMyfPmmpnz2TBw9jZ7J'] = array(
+    'module' => 'facetapi',
+    'delta' => '7ML0OK3vgYXeSgMyfPmmpnz2TBw9jZ7J',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-GiIy4zr9Gu0ZSa0bumw1Y9qIIpIDf1wu'] = array(
+    'module' => 'facetapi',
+    'delta' => 'GiIy4zr9Gu0ZSa0bumw1Y9qIIpIDf1wu',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-WtseAVugB1EhxGslwR3XIwoa0sVTttYt'] = array(
+    'module' => 'facetapi',
+    'delta' => 'WtseAVugB1EhxGslwR3XIwoa0sVTttYt',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => 'search/team/*',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $theme['facetapi-wWWinJ0eOefOtAMbjo2yl86Mnf1rO12j'] = array(
+    'module' => 'facetapi',
+    'delta' => 'wWWinJ0eOefOtAMbjo2yl86Mnf1rO12j',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '',
+    'cache' => '-1',
+  );
+
+  $export['garland'] = $theme;
+
+  $theme_default = variable_get('theme_default', 'garland');
+  $themes = list_themes();
+  foreach ($export as $theme_key => $settings) {
+    if ($theme_key != $theme_default && empty($themes[$theme_key]->status)) {
+      unset($export[$theme_key]);
+    }
+  }
+  return $export;
+}
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.features.inc b/drupal/sites/all/features/global_search_solr/global_search_solr.features.inc
new file mode 100644
index 0000000..d4c4ac4
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.features.inc
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function global_search_solr_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "apachesolr" && $api == "apachesolr_environments") {
+    return array("version" => 1);
+  }
+  elseif ($module == "apachesolr_search" && $api == "apachesolr_search_defaults") {
+    return array("version" => 3);
+  }
+  elseif ($module == "facetapi" && $api == "facetapi_defaults") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.features.user_permission.inc b/drupal/sites/all/features/global_search_solr/global_search_solr.features.user_permission.inc
new file mode 100644
index 0000000..94c1a5b
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.features.user_permission.inc
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function global_search_solr_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: administer search
+  $permissions['administer search'] = array(
+    'name' => 'administer search',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: search content
+  $permissions['search content'] = array(
+    'name' => 'search content',
+    'roles' => array(
+      '0' => 'anonymous user',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: use advanced search
+  $permissions['use advanced search'] = array(
+    'name' => 'use advanced search',
+    'roles' => array(
+      '0' => 'anonymous user',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.info b/drupal/sites/all/features/global_search_solr/global_search_solr.info
new file mode 100644
index 0000000..3362126
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.info
@@ -0,0 +1,28 @@
+name = "Global search (solr)"
+description = "Use an external solr service, rather than the core Drupal indexer, to provide a unified search across all site content"
+core = "6.x"
+package = "Features"
+dependencies[] = "apachesolr"
+dependencies[] = "apachesolr_search"
+dependencies[] = "ctools"
+dependencies[] = "facetapi"
+dependencies[] = "fe_block"
+dependencies[] = "features"
+dependencies[] = "search"
+features[apachesolr_environment][] = "solr"
+features[apachesolr_search_page][] = "core_search"
+features[ctools][] = "apachesolr:apachesolr_environments:1"
+features[ctools][] = "apachesolr_search:apachesolr_search_defaults:3"
+features[ctools][] = "facetapi:facetapi_defaults:1"
+features[facetapi][] = "apachesolr at solr:block:author"
+features[facetapi][] = "apachesolr at solr:block:bundle"
+features[facetapi][] = "apachesolr at solr:block:changed"
+features[facetapi][] = "apachesolr at solr:block:im_taxonomy_vid_1"
+features[fe_block_settings][] = "apachesolr_search-sort"
+features[fe_block_settings][] = "facetapi-7ML0OK3vgYXeSgMyfPmmpnz2TBw9jZ7J"
+features[fe_block_settings][] = "facetapi-GiIy4zr9Gu0ZSa0bumw1Y9qIIpIDf1wu"
+features[fe_block_settings][] = "facetapi-WtseAVugB1EhxGslwR3XIwoa0sVTttYt"
+features[fe_block_settings][] = "facetapi-wWWinJ0eOefOtAMbjo2yl86Mnf1rO12j"
+features[user_permission][] = "administer search"
+features[user_permission][] = "search content"
+features[user_permission][] = "use advanced search"
diff --git a/drupal/sites/all/features/global_search_solr/global_search_solr.module b/drupal/sites/all/features/global_search_solr/global_search_solr.module
new file mode 100644
index 0000000..0a9918f
--- /dev/null
+++ b/drupal/sites/all/features/global_search_solr/global_search_solr.module
@@ -0,0 +1,12 @@
+<?php
+
+include_once('global_search_solr.features.inc');
+
+// Hackish... but there doesn't seem to be a non-hackish way to change the
+// label on the search form!? Need a custom module to call hook_form_alter()...
+function global_search_solr_form_alter(&$form, &$form_state, $form_id) {
+  if ($form_id == 'apachesolr_search_custom_page_search_form') {
+    $form['basic']['keys']['#title'] = t('Search'); 
+    $form['basic']['keys']['#size'] = 40;
+  }
+}
diff --git a/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.apachesolr_search_defaults.inc b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.apachesolr_search_defaults.inc
new file mode 100644
index 0000000..8f360d2
--- /dev/null
+++ b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.apachesolr_search_defaults.inc
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * Implementation of hook_apachesolr_search_default_searchers().
+ */
+function global_search_teams_solr_apachesolr_search_default_searchers() {
+  $export = array();
+
+  $searcher = new stdClass;
+  $searcher->disabled = FALSE; /* Edit this to true to make a default searcher disabled initially */
+  $searcher->api_version = 3;
+  $searcher->page_id = 'team_search';
+  $searcher->label = 'Team search';
+  $searcher->description = '';
+  $searcher->search_path = 'search/team';
+  $searcher->page_title = 'Search teams';
+  $searcher->env_id = 'solr';
+  $searcher->settings = array(
+    'fq' => array(
+      0 => 'bundle:team',
+    ),
+    'apachesolr_search_custom_enable' => 1,
+    'apachesolr_search_search_type' => 'custom',
+    'apachesolr_search_search_box' => 1,
+    'apachesolr_search_per_page' => '10',
+    'apachesolr_search_browse' => 'none',
+    'apachesolr_search_spellcheck' => 1,
+    'apachesolr_search_allow_user_input' => 0,
+  );
+  $export['team_search'] = $searcher;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.features.inc b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.features.inc
new file mode 100644
index 0000000..e9c9447
--- /dev/null
+++ b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function global_search_teams_solr_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "apachesolr_search" && $api == "apachesolr_search_defaults") {
+    return array("version" => 3);
+  }
+}
diff --git a/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.info b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.info
new file mode 100644
index 0000000..98fa742
--- /dev/null
+++ b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.info
@@ -0,0 +1,11 @@
+name = "Global search teams (solr)"
+description = "Allow searching of team content using a Solr instance"
+core = "6.x"
+package = "Features"
+version = "6.x-0.1"
+project = "global_search_teams_solr"
+dependencies[] = "apachesolr_search"
+dependencies[] = "ctools"
+dependencies[] = "global_search_solr"
+features[apachesolr_search_page][] = "team_search"
+features[ctools][] = "apachesolr_search:apachesolr_search_defaults:3"
diff --git a/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.module b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.module
new file mode 100644
index 0000000..65ae318
--- /dev/null
+++ b/drupal/sites/all/features/global_search_teams_solr/global_search_teams_solr.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('global_search_teams_solr.features.inc');
diff --git a/drupal/sites/all/features/internationalization/internationalization.features.inc b/drupal/sites/all/features/internationalization/internationalization.features.inc
new file mode 100644
index 0000000..8b3f5de
--- /dev/null
+++ b/drupal/sites/all/features/internationalization/internationalization.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function internationalization_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/internationalization/internationalization.features.user_permission.inc b/drupal/sites/all/features/internationalization/internationalization.features.user_permission.inc
new file mode 100644
index 0000000..c64d436
--- /dev/null
+++ b/drupal/sites/all/features/internationalization/internationalization.features.user_permission.inc
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function internationalization_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: administer all languages
+  $permissions['administer all languages'] = array(
+    'name' => 'administer all languages',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer languages
+  $permissions['administer languages'] = array(
+    'name' => 'administer languages',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer translations
+  $permissions['administer translations'] = array(
+    'name' => 'administer translations',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: translate content
+  $permissions['translate content'] = array(
+    'name' => 'translate content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: translate interface
+  $permissions['translate interface'] = array(
+    'name' => 'translate interface',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/internationalization/internationalization.info b/drupal/sites/all/features/internationalization/internationalization.info
new file mode 100644
index 0000000..e9a3dc9
--- /dev/null
+++ b/drupal/sites/all/features/internationalization/internationalization.info
@@ -0,0 +1,28 @@
+name = "Internationalization"
+description = "Add translation and localization functionality"
+core = "6.x"
+package = "Features"
+version = "6.x-0.3"
+project = "internationalization"
+dependencies[] = "boinctranslate"
+dependencies[] = "features"
+dependencies[] = "i18n"
+dependencies[] = "i18nblocks"
+dependencies[] = "i18nmenu"
+dependencies[] = "i18nstrings"
+dependencies[] = "i18ntaxonomy"
+dependencies[] = "i18nviews"
+dependencies[] = "l10n_update"
+dependencies[] = "locale"
+dependencies[] = "strongarm"
+dependencies[] = "translation"
+dependencies[] = "translation_helpers"
+features[ctools][] = "strongarm:strongarm:1"
+features[user_permission][] = "administer all languages"
+features[user_permission][] = "administer languages"
+features[user_permission][] = "administer translations"
+features[user_permission][] = "translate content"
+features[user_permission][] = "translate interface"
+features[variable][] = "i18nstrings_allowed_formats"
+features[variable][] = "i18ntaxonomy_vocabulary"
+features[variable][] = "language_negotiation"
diff --git a/drupal/sites/all/features/internationalization/internationalization.module b/drupal/sites/all/features/internationalization/internationalization.module
new file mode 100644
index 0000000..1617021
--- /dev/null
+++ b/drupal/sites/all/features/internationalization/internationalization.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('internationalization.features.inc');
diff --git a/drupal/sites/all/features/internationalization/internationalization.strongarm.inc b/drupal/sites/all/features/internationalization/internationalization.strongarm.inc
new file mode 100644
index 0000000..f9a22ba
--- /dev/null
+++ b/drupal/sites/all/features/internationalization/internationalization.strongarm.inc
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function internationalization_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'i18nstrings_allowed_formats';
+  $strongarm->value = array(
+    0 => 4,
+    1 => 5,
+  );
+  $export['i18nstrings_allowed_formats'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'i18ntaxonomy_vocabulary';
+  $strongarm->value = array(
+    2 => '1',
+    1 => '0',
+  );
+  $export['i18ntaxonomy_vocabulary'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'language_negotiation';
+  $strongarm->value = '2';
+  $export['language_negotiation'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/mobilemenu/mobilemenu.features.fe_block_settings.inc b/drupal/sites/all/features/mobilemenu/mobilemenu.features.fe_block_settings.inc
new file mode 100644
index 0000000..11939c3
--- /dev/null
+++ b/drupal/sites/all/features/mobilemenu/mobilemenu.features.fe_block_settings.inc
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * Implementation of hook_default_fe_block_settings().
+ */
+function mobilemenu_default_fe_block_settings() {
+  $export = array();
+
+  // boinc
+  $theme = array();
+
+  $theme['mobile_menu_toggle-0'] = array(
+    'module' => 'mobile_menu_toggle',
+    'delta' => '0',
+    'theme' => 'boinc',
+    'status' => '1',
+    'weight' => '0',
+    'region' => 'header',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '<none>',
+    'cache' => '1',
+  );
+
+  $export['boinc'] = $theme;
+
+  // einstein
+  $theme = array();
+
+  $theme['mobile_menu_toggle-0'] = array(
+    'module' => 'mobile_menu_toggle',
+    'delta' => '0',
+    'theme' => 'einstein',
+    'status' => '1',
+    'weight' => '-25',
+    'region' => 'header',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '<none>',
+    'cache' => '1',
+  );
+
+  $export['einstein'] = $theme;
+
+  // garland
+  $theme = array();
+
+  $theme['mobile_menu_toggle-0'] = array(
+    'module' => 'mobile_menu_toggle',
+    'delta' => '0',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '0',
+    'pages' => '',
+    'title' => '<none>',
+    'cache' => '1',
+  );
+
+  $export['garland'] = $theme;
+
+  $theme_default = variable_get('theme_default', 'garland');
+  $themes = list_themes();
+  foreach ($export as $theme_key => $settings) {
+    if ($theme_key != $theme_default && empty($themes[$theme_key]->status)) {
+      unset($export[$theme_key]);
+    }
+  }
+  return $export;
+}
diff --git a/drupal/sites/all/features/mobilemenu/mobilemenu.features.inc b/drupal/sites/all/features/mobilemenu/mobilemenu.features.inc
new file mode 100644
index 0000000..01e4569
--- /dev/null
+++ b/drupal/sites/all/features/mobilemenu/mobilemenu.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function mobilemenu_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/mobilemenu/mobilemenu.info b/drupal/sites/all/features/mobilemenu/mobilemenu.info
new file mode 100644
index 0000000..2176233
--- /dev/null
+++ b/drupal/sites/all/features/mobilemenu/mobilemenu.info
@@ -0,0 +1,18 @@
+name = "MobileMenu"
+description = "Mobile Menu"
+core = "6.x"
+package = "Features"
+version = "6.x-1.0"
+project = "mobilemenu"
+dependencies[] = "ctools"
+dependencies[] = "fe_block"
+dependencies[] = "mobile_menu_toggle"
+dependencies[] = "dhtml_menu"
+dependencies[] = "strongarm"
+features[ctools][] = "strongarm:strongarm:1"
+features[fe_block_settings][] = "mobile_menu_toggle-0"
+features[variable][] = "dhtml_menu_settings"
+features[variable][] = "dhtml_menu_theme"
+features[variable][] = "mobile_menu_block"
+features[variable][] = "mobile_menu_css"
+features[variable][] = "mobile_menu_menu"
diff --git a/drupal/sites/all/features/mobilemenu/mobilemenu.module b/drupal/sites/all/features/mobilemenu/mobilemenu.module
new file mode 100644
index 0000000..d787930
--- /dev/null
+++ b/drupal/sites/all/features/mobilemenu/mobilemenu.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('mobilemenu.features.inc');
diff --git a/drupal/sites/all/features/mobilemenu/mobilemenu.strongarm.inc b/drupal/sites/all/features/mobilemenu/mobilemenu.strongarm.inc
new file mode 100644
index 0000000..beb1a50
--- /dev/null
+++ b/drupal/sites/all/features/mobilemenu/mobilemenu.strongarm.inc
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function mobilemenu_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'dhtml_menu_settings';
+  $strongarm->value = array(
+    'nav' => 'none',
+    'animation' => array(
+      'effects' => array(
+        'height' => 'height',
+        'opacity' => 'opacity',
+        'width' => 0,
+      ),
+      'speed' => '500',
+    ),
+    'effects' => array(
+      'siblings' => 'close-same-tree',
+      'children' => 'none',
+      'remember' => '0',
+    ),
+    'filter' => array(
+      'type' => 'whitelist',
+      'list' => array(
+        'primary-links' => 'primary-links',
+        'devel' => 0,
+        'menu-footer-links' => 0,
+        'navigation' => 0,
+      ),
+    ),
+  );
+  $export['dhtml_menu_settings'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'dhtml_menu_theme';
+  $strongarm->value = array(
+    'garland' => array(
+      'menu_item' => 'theme_menu_item',
+      'menu_item_link' => 'theme_menu_item_link',
+    ),
+    'einstein' => array(
+      'menu_item' => 'theme_menu_item',
+      'menu_item_link' => 'zen_menu_item_link',
+    ),
+    'boinc' => array(
+      'menu_item' => 'theme_menu_item',
+      'menu_item_link' => 'zen_menu_item_link',
+    ),
+  );
+  $export['dhtml_menu_theme'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'mobile_menu_block';
+  $strongarm->value = 0;
+  $export['mobile_menu_block'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'mobile_menu_css';
+  $strongarm->value = '#navigation-mmt';
+  $export['mobile_menu_css'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'mobile_menu_menu';
+  $strongarm->value = 'primary-links';
+  $export['mobile_menu_menu'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/news/news.context.inc b/drupal/sites/all/features/news/news.context.inc
new file mode 100644
index 0000000..b9b5510
--- /dev/null
+++ b/drupal/sites/all/features/news/news.context.inc
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * Implementation of hook_context_default_contexts().
+ */
+function news_context_default_contexts() {
+  $export = array();
+
+  $context = new stdClass;
+  $context->disabled = FALSE; /* Edit this to true to make a default context disabled initially */
+  $context->api_version = 3;
+  $context->name = 'news_articles';
+  $context->description = '';
+  $context->tag = 'news';
+  $context->conditions = array(
+    'node' => array(
+      'values' => array(
+        'news' => 'news',
+      ),
+      'options' => array(
+        'node_form' => '1',
+      ),
+    ),
+    'path' => array(
+      'values' => array(
+        'news/*' => 'news/*',
+      ),
+    ),
+  );
+  $context->reactions = array(
+    'menu' => 'news',
+  );
+  $context->condition_mode = 0;
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('news');
+  $export['news_articles'] = $context;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/news/news.features.fe_block_settings.inc b/drupal/sites/all/features/news/news.features.fe_block_settings.inc
new file mode 100644
index 0000000..42fde4d
--- /dev/null
+++ b/drupal/sites/all/features/news/news.features.fe_block_settings.inc
@@ -0,0 +1,125 @@
+<?php
+
+/**
+ * Implementation of hook_default_fe_block_settings().
+ */
+function news_default_fe_block_settings() {
+  $export = array();
+
+  // boinc
+  $theme = array();
+
+  $theme['node_comment_block-node_comments'] = array(
+    'module' => 'node_comment_block',
+    'delta' => 'node_comments',
+    'theme' => 'boinc',
+    'status' => '1',
+    'weight' => '3',
+    'region' => 'content_bottom',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '2',
+    'pages' => '<?php
+  // Only show if $match is true
+  $match = FALSE;
+
+  // Which node types
+  $types = array(\'news\');
+
+  // Match current node type with array of types
+  if (arg(0) == \'node\' && is_numeric(arg(1))) {
+    $nid = arg(1);
+    $node = node_load(array(\'nid\' => $nid));
+    $type = $node->type; 
+    $match |= in_array($type, $types);
+  }
+
+  return $match;
+?>',
+    'title' => '',
+    'cache' => '1',
+  );
+
+  $export['boinc'] = $theme;
+
+  // einstein
+  $theme = array();
+
+  $theme['node_comment_block-node_comments'] = array(
+    'module' => 'node_comment_block',
+    'delta' => 'node_comments',
+    'theme' => 'einstein',
+    'status' => '1',
+    'weight' => '-19',
+    'region' => 'content_bottom',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '2',
+    'pages' => '<?php
+  // Only show if $match is true
+  $match = FALSE;
+
+  // Which node types
+  $types = array(\'news\');
+
+  // Match current node type with array of types
+  if (arg(0) == \'node\' && is_numeric(arg(1))) {
+    $nid = arg(1);
+    $node = node_load(array(\'nid\' => $nid));
+    $type = $node->type; 
+    $match |= in_array($type, $types);
+  }
+
+  return $match;
+?>',
+    'title' => '',
+    'cache' => '1',
+  );
+
+  $export['einstein'] = $theme;
+
+  // garland
+  $theme = array();
+
+  $theme['node_comment_block-node_comments'] = array(
+    'module' => 'node_comment_block',
+    'delta' => 'node_comments',
+    'theme' => 'garland',
+    'status' => 0,
+    'weight' => '0',
+    'region' => '',
+    'custom' => '0',
+    'throttle' => '0',
+    'visibility' => '2',
+    'pages' => '<?php
+  // Only show if $match is true
+  $match = FALSE;
+
+  // Which node types
+  $types = array(\'news\');
+
+  // Match current node type with array of types
+  if (arg(0) == \'node\' && is_numeric(arg(1))) {
+    $nid = arg(1);
+    $node = node_load(array(\'nid\' => $nid));
+    $type = $node->type; 
+    $match |= in_array($type, $types);
+  }
+
+  return $match;
+?>',
+    'title' => '',
+    'cache' => '1',
+  );
+
+  $export['garland'] = $theme;
+
+  $theme_default = variable_get('theme_default', 'garland');
+  $themes = list_themes();
+  foreach ($export as $theme_key => $settings) {
+    if ($theme_key != $theme_default && empty($themes[$theme_key]->status)) {
+      unset($export[$theme_key]);
+    }
+  }
+  return $export;
+}
diff --git a/drupal/sites/all/features/news/news.features.inc b/drupal/sites/all/features/news/news.features.inc
new file mode 100644
index 0000000..050ba74
--- /dev/null
+++ b/drupal/sites/all/features/news/news.features.inc
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function news_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "context" && $api == "context") {
+    return array("version" => 3);
+  }
+  elseif ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
+
+/**
+ * Implementation of hook_node_info().
+ */
+function news_node_info() {
+  $items = array(
+    'news' => array(
+      'name' => t('News item'),
+      'module' => 'features',
+      'description' => t('News items are bits of information and current events relevant to a BOINC project that are to be published to the website and RSS feeds.'),
+      'has_title' => '1',
+      'title_label' => t('Title'),
+      'has_body' => '1',
+      'body_label' => t('Body'),
+      'min_word_count' => '0',
+      'help' => '',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function news_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/news/news.features.menu_links.inc b/drupal/sites/all/features/news/news.features.menu_links.inc
new file mode 100644
index 0000000..c6c95a8
--- /dev/null
+++ b/drupal/sites/all/features/news/news.features.menu_links.inc
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * Implementation of hook_menu_default_menu_links().
+ */
+function news_menu_default_menu_links() {
+  $menu_links = array();
+
+  // Exported menu link: primary-links:news
+  $menu_links['primary-links:news'] = array(
+    'menu_name' => 'primary-links',
+    'link_path' => 'news',
+    'router_path' => 'news',
+    'link_title' => 'News',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+      'alter' => TRUE,
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '0',
+    'has_children' => '0',
+    'expanded' => '1',
+    'weight' => '-48',
+  );
+  // Translatables
+  // Use bts() function to translate additional strings.
+  bts('News', array(), NULL, 'boinc:menu-link');
+
+
+  return $menu_links;
+}
diff --git a/drupal/sites/all/features/news/news.features.user_permission.inc b/drupal/sites/all/features/news/news.features.user_permission.inc
new file mode 100644
index 0000000..9ce029b
--- /dev/null
+++ b/drupal/sites/all/features/news/news.features.user_permission.inc
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function news_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: create news content
+  $permissions['create news content'] = array(
+    'name' => 'create news content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  // Exported permission: edit any news content
+  $permissions['edit any news content'] = array(
+    'name' => 'edit any news content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'content editor',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/news/news.info b/drupal/sites/all/features/news/news.info
new file mode 100644
index 0000000..05934c9
--- /dev/null
+++ b/drupal/sites/all/features/news/news.info
@@ -0,0 +1,36 @@
+name = "News"
+description = "Site news section"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "comment"
+dependencies[] = "context"
+dependencies[] = "ctools"
+dependencies[] = "fe_block"
+dependencies[] = "features"
+dependencies[] = "menu"
+dependencies[] = "node_comment_block"
+dependencies[] = "strongarm"
+dependencies[] = "views"
+dependencies[] = "views_customfield"
+features[context][] = "news_articles"
+features[ctools][] = "context:context:3"
+features[ctools][] = "strongarm:strongarm:1"
+features[fe_block_settings][] = "node_comment_block-node_comments"
+features[menu_links][] = "primary-links:news"
+features[node][] = "news"
+features[user_permission][] = "create news content"
+features[user_permission][] = "edit any news content"
+features[variable][] = "comment_anonymous_news"
+features[variable][] = "comment_controls_news"
+features[variable][] = "comment_default_mode_news"
+features[variable][] = "comment_default_order_news"
+features[variable][] = "comment_default_per_page_news"
+features[variable][] = "comment_form_location_news"
+features[variable][] = "comment_news"
+features[variable][] = "comment_preview_news"
+features[variable][] = "comment_subject_field_news"
+features[variable][] = "language_content_type_news"
+features[variable][] = "node_options_news"
+features[views][] = "news"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/news/news.module b/drupal/sites/all/features/news/news.module
new file mode 100644
index 0000000..d1e7768
--- /dev/null
+++ b/drupal/sites/all/features/news/news.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('news.features.inc');
diff --git a/drupal/sites/all/features/news/news.strongarm.inc b/drupal/sites/all/features/news/news.strongarm.inc
new file mode 100644
index 0000000..77a9d85
--- /dev/null
+++ b/drupal/sites/all/features/news/news.strongarm.inc
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function news_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_anonymous_news';
+  $strongarm->value = 0;
+  $export['comment_anonymous_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_controls_news';
+  $strongarm->value = '3';
+  $export['comment_controls_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_mode_news';
+  $strongarm->value = '2';
+  $export['comment_default_mode_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_order_news';
+  $strongarm->value = '2';
+  $export['comment_default_order_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_per_page_news';
+  $strongarm->value = '50';
+  $export['comment_default_per_page_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_form_location_news';
+  $strongarm->value = '1';
+  $export['comment_form_location_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_news';
+  $strongarm->value = '2';
+  $export['comment_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_preview_news';
+  $strongarm->value = '0';
+  $export['comment_preview_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_subject_field_news';
+  $strongarm->value = '1';
+  $export['comment_subject_field_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'language_content_type_news';
+  $strongarm->value = '0';
+  $export['language_content_type_news'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_options_news';
+  $strongarm->value = array(
+    0 => 'status',
+    1 => 'promote',
+  );
+  $export['node_options_news'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/news/news.views_default.inc b/drupal/sites/all/features/news/news.views_default.inc
new file mode 100644
index 0000000..14108f5
--- /dev/null
+++ b/drupal/sites/all/features/news/news.views_default.inc
@@ -0,0 +1,948 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function news_views_default_views() {
+  $views = array();
+
+  // Exported view: news
+  $view = new view;
+  $view->name = 'news';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'node';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'content_profile_rel' => array(
+      'id' => 'content_profile_rel',
+      'table' => 'users',
+      'field' => 'content_profile_rel',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'comment_count' => array(
+      'id' => 'comment_count',
+      'table' => 'node_comment_statistics',
+      'field' => 'comment_count',
+    ),
+    'view_node' => array(
+      'id' => 'view_node',
+      'table' => 'node',
+      'field' => 'view_node',
+    ),
+    'created' => array(
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+    ),
+    'teaser' => array(
+      'id' => 'teaser',
+      'table' => 'node_revisions',
+      'field' => 'teaser',
+    ),
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'created_1' => array(
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'id' => 'created_1',
+      'table' => 'node',
+      'field' => 'created',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'type' => array(
+      'operator' => 'in',
+      'value' => array(
+        'news' => 'news',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'relationship' => 'none',
+    ),
+    'status' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('empty', 'No news is good news...');
+  $handler->override_option('empty_format', '5');
+  $handler->override_option('items_per_page', 3);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_plugin', 'node');
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('relationships', array());
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '<h2>[title]</h2>',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'link_to_node' => 0,
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'created' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'custom',
+      'custom_date_format' => 'F d, Y',
+      'exclude' => 0,
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => ' / Posted by [name]',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'overwrite_anonymous' => 0,
+      'anonymous_text' => '',
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'teaser' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '160',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'teaser',
+      'table' => 'node_revisions',
+      'field' => 'teaser',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'view_node' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'text' => 'more',
+      'exclude' => 0,
+      'id' => 'view_node',
+      'table' => 'node',
+      'field' => 'view_node',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'comment_count' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'comment_count',
+      'table' => 'node_comment_statistics',
+      'field' => 'comment_count',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'nothing' => array(
+      'label' => '',
+      'alter' => array(
+        'text' => '<div class="clearfix"></div>',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'nothing',
+      'table' => 'views',
+      'field' => 'nothing',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', 'News');
+  $handler->override_option('row_plugin', 'fields');
+  $handler->override_option('path', 'news');
+  $handler->override_option('menu', array(
+    'type' => 'normal',
+    'title' => 'News',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('feed', 'Feed', 'feed_1');
+  $handler->override_option('arguments', array(
+    'null' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '%1 | News',
+      'breadcrumb' => '',
+      'default_argument_type' => 'php',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'must_not_be' => 0,
+      'id' => 'null',
+      'table' => 'views',
+      'field' => 'null',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        4 => 0,
+        7 => 0,
+        5 => 0,
+        3 => 0,
+        6 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        4 => 0,
+        7 => 0,
+        5 => 0,
+        3 => 0,
+        6 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '// Use this to set a custom feed title that works both in the feed and
+// in the auto discovery link in the page header
+return variable_get(\'site_name\', \'BOINC\');
+',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'type' => array(
+      'operator' => 'in',
+      'value' => array(
+        'news' => 'news',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'relationship' => 'none',
+    ),
+    'status' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'relationship' => 'none',
+    ),
+    'changed' => array(
+      'operator' => '>=',
+      'value' => array(
+        'type' => 'offset',
+        'value' => '-90 days',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'changed',
+      'table' => 'node',
+      'field' => 'changed',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('style_plugin', 'rss');
+  $handler->override_option('style_options', array(
+    'mission_description' => FALSE,
+    'description' => '',
+  ));
+  $handler->override_option('row_plugin', 'node_rss');
+  $handler->override_option('row_options', array(
+    'relationship' => 'none',
+    'item_length' => 'default',
+  ));
+  $handler->override_option('path', 'rss_main.php');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler->override_option('displays', array(
+    'page_1' => 'page_1',
+    'page_2' => 'page_2',
+    'default' => 0,
+  ));
+  $handler->override_option('sitename_title', FALSE);
+  $handler = $view->new_display('page', 'Short blurbs', 'page_2');
+  $handler->override_option('relationships', array());
+  $handler->override_option('fields', array(
+    'nid' => array(
+      'label' => 'Nid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'exclude' => 1,
+      'id' => 'nid',
+      'table' => 'node',
+      'field' => 'nid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'comment' => array(
+      'label' => 'Comment status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'comment',
+      'table' => 'node',
+      'field' => 'comment',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'title' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '<h2>[title]</h2>',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'link_to_node' => 0,
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'created' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'custom',
+      'custom_date_format' => 'F d, Y',
+      'exclude' => 0,
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'teaser' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 1,
+        'max_length' => '160',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'teaser',
+      'table' => 'node_revisions',
+      'field' => 'teaser',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'view_node_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'text' => 'more',
+      'exclude' => 0,
+      'id' => 'view_node_1',
+      'table' => 'node',
+      'field' => 'view_node',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if ($data->node_comment == COMMENT_NODE_READ_WRITE) {
+    $cid = boincuser_get_first_unread_comment_id($data->nid);
+    $link = ($cid) ? "goto/comment/{$cid}" : "node/{$data->nid}";
+    return l(bts(\'discuss\', array(), NULL, \'boinc:front-page-discuss-news\'), $link);
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'comment_count' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'comment_count',
+      'table' => 'node_comment_statistics',
+      'field' => 'comment_count',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'nothing' => array(
+      'label' => '',
+      'alter' => array(
+        'text' => '<div class="clearfix"></div>',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'nothing',
+      'table' => 'views',
+      'field' => 'nothing',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'type' => array(
+      'operator' => 'in',
+      'value' => array(
+        'news' => 'news',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'relationship' => 'none',
+    ),
+    'status' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'relationship' => 'none',
+    ),
+    'promote' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'promote',
+      'table' => 'node',
+      'field' => 'promote',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', 'News');
+  $handler->override_option('row_plugin', 'fields');
+  $handler->override_option('path', 'news');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => 'News',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/private_messages/private_messages.features.inc b/drupal/sites/all/features/private_messages/private_messages.features.inc
new file mode 100644
index 0000000..ec1102d
--- /dev/null
+++ b/drupal/sites/all/features/private_messages/private_messages.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function private_messages_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "panels_mini" && $api == "panels_default") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/private_messages/private_messages.features.user_permission.inc b/drupal/sites/all/features/private_messages/private_messages.features.user_permission.inc
new file mode 100644
index 0000000..cf24f84
--- /dev/null
+++ b/drupal/sites/all/features/private_messages/private_messages.features.user_permission.inc
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function private_messages_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: administer privatemsg settings
+  $permissions['administer privatemsg settings'] = array(
+    'name' => 'administer privatemsg settings',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: delete privatemsg
+  $permissions['delete privatemsg'] = array(
+    'name' => 'delete privatemsg',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: read all private messages
+  $permissions['read all private messages'] = array(
+    'name' => 'read all private messages',
+    'roles' => array(),
+  );
+
+  // Exported permission: read privatemsg
+  $permissions['read privatemsg'] = array(
+    'name' => 'read privatemsg',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: write privatemsg
+  $permissions['write privatemsg'] = array(
+    'name' => 'write privatemsg',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/private_messages/private_messages.info b/drupal/sites/all/features/private_messages/private_messages.info
new file mode 100644
index 0000000..6f561f8
--- /dev/null
+++ b/drupal/sites/all/features/private_messages/private_messages.info
@@ -0,0 +1,20 @@
+name = "Private messages"
+description = "Private messages between users"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "ctools"
+dependencies[] = "features"
+dependencies[] = "ignore_user"
+dependencies[] = "menu"
+dependencies[] = "panels_mini"
+dependencies[] = "pm_block_user"
+dependencies[] = "pm_email_notify"
+dependencies[] = "privatemsg"
+features[ctools][] = "panels_mini:panels_default:1"
+features[panels_mini][] = "user_mail_summary"
+features[user_permission][] = "administer privatemsg settings"
+features[user_permission][] = "delete privatemsg"
+features[user_permission][] = "read all private messages"
+features[user_permission][] = "read privatemsg"
+features[user_permission][] = "write privatemsg"
diff --git a/drupal/sites/all/features/private_messages/private_messages.module b/drupal/sites/all/features/private_messages/private_messages.module
new file mode 100644
index 0000000..b64d520
--- /dev/null
+++ b/drupal/sites/all/features/private_messages/private_messages.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('private_messages.features.inc');
diff --git a/drupal/sites/all/features/private_messages/private_messages.panels_default.inc b/drupal/sites/all/features/private_messages/private_messages.panels_default.inc
new file mode 100644
index 0000000..d689016
--- /dev/null
+++ b/drupal/sites/all/features/private_messages/private_messages.panels_default.inc
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * Implementation of hook_default_panels_mini().
+ */
+function private_messages_default_panels_mini() {
+  $export = array();
+
+  $mini = new stdClass;
+  $mini->disabled = FALSE; /* Edit this to true to make a default mini disabled initially */
+  $mini->api_version = 1;
+  $mini->name = 'user_mail_summary';
+  $mini->category = 'BOINC';
+  $mini->admin_title = 'User mail summary';
+  $mini->admin_description = 'Mail widget for user dashboard';
+  $mini->requiredcontexts = array();
+  $mini->contexts = array();
+  $mini->relationships = array();
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = 'Messages';
+  $display->storage_type = 'panels_mini';
+  $display->storage_id = 'user_mail_summary';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Mail summary',
+      'title' => 'Messages',
+      'body' => '<?php 
+  $l1 = url(\'messages\');
+  $l2 = url(\'messages/new\');
+?>
+<ul class="tab-list">
+  <li class="first tab"><div>
+    <a href="<?php echo $l1;?>"><?php print bts(\'Inbox\', array(), NULL, \'boinc:account-dashboard\'); ?></a><div class="item-count-wrapper"><span class="item-count"><?php echo privatemsg_unread_count(); ?></span></div></div>
+  </li>
+  <li class="last tab"><a href="<?php echo $l2?>"><?php print bts(\'Compose new\', array(), NULL, \'boinc:account-dashboard\'); ?></a></li>
+</ul>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = 'new-1';
+  $mini->display = $display;
+  $export['user_mail_summary'] = $mini;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/spam_controls/spam_controls.context.inc b/drupal/sites/all/features/spam_controls/spam_controls.context.inc
new file mode 100644
index 0000000..33fd745
--- /dev/null
+++ b/drupal/sites/all/features/spam_controls/spam_controls.context.inc
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * Implementation of hook_context_default_contexts().
+ */
+function spam_controls_context_default_contexts() {
+  $export = array();
+
+  $context = new stdClass;
+  $context->disabled = FALSE; /* Edit this to true to make a default context disabled initially */
+  $context->api_version = 3;
+  $context->name = 'account_info';
+  $context->description = '';
+  $context->tag = 'account';
+  $context->conditions = array(
+    'path' => array(
+      'values' => array(
+        'account/info/edit/profile' => 'account/info/edit/profile',
+      ),
+    ),
+    'user_page' => array(
+      'values' => array(
+        'form' => 'form',
+      ),
+      'options' => array(
+        'mode' => 'current',
+      ),
+    ),
+  );
+  $context->reactions = array(
+    'menu' => 'user/me/edit',
+  );
+  $context->condition_mode = 0;
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('account');
+  $export['account_info'] = $context;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/spam_controls/spam_controls.features.captcha.inc b/drupal/sites/all/features/spam_controls/spam_controls.features.captcha.inc
new file mode 100644
index 0000000..3518fc5
--- /dev/null
+++ b/drupal/sites/all/features/spam_controls/spam_controls.features.captcha.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Implementation of hook_captcha_default_points().
+ */
+function spam_controls_captcha_default_points() {
+  return array(
+    'edit_profile_node_form' => array(
+      'form_id' => 'edit_profile_node_form',
+      'module' => NULL,
+      'captcha_type' => NULL,
+    ),
+    'user_register' => array(
+      'form_id' => 'user_register',
+      'module' => NULL,
+      'captcha_type' => NULL,
+    ),
+  );
+}
diff --git a/drupal/sites/all/features/spam_controls/spam_controls.features.inc b/drupal/sites/all/features/spam_controls/spam_controls.features.inc
new file mode 100644
index 0000000..056ebe2
--- /dev/null
+++ b/drupal/sites/all/features/spam_controls/spam_controls.features.inc
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function spam_controls_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "context" && $api == "context") {
+    return array("version" => 3);
+  }
+  elseif ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/spam_controls/spam_controls.features.user_permission.inc b/drupal/sites/all/features/spam_controls/spam_controls.features.user_permission.inc
new file mode 100644
index 0000000..c177973
--- /dev/null
+++ b/drupal/sites/all/features/spam_controls/spam_controls.features.user_permission.inc
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function spam_controls_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: administer CAPTCHA settings
+  $permissions['administer CAPTCHA settings'] = array(
+    'name' => 'administer CAPTCHA settings',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer recaptcha
+  $permissions['administer recaptcha'] = array(
+    'name' => 'administer recaptcha',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: administer spamicide
+  $permissions['administer spamicide'] = array(
+    'name' => 'administer spamicide',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: skip CAPTCHA
+  $permissions['skip CAPTCHA'] = array(
+    'name' => 'skip CAPTCHA',
+    'roles' => array(),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/spam_controls/spam_controls.info b/drupal/sites/all/features/spam_controls/spam_controls.info
new file mode 100644
index 0000000..8d27d09
--- /dev/null
+++ b/drupal/sites/all/features/spam_controls/spam_controls.info
@@ -0,0 +1,30 @@
+name = "Spam controls"
+description = "Add captchas to profile forms"
+core = "6.x"
+package = "Features"
+version = "6.x-0.3"
+project = "spam_controls"
+dependencies[] = "boincuser"
+dependencies[] = "captcha"
+dependencies[] = "context"
+dependencies[] = "features"
+dependencies[] = "recaptcha"
+dependencies[] = "spamicide"
+dependencies[] = "strongarm"
+features[context][] = "account_info"
+features[ctools][] = "context:context:3"
+features[ctools][] = "strongarm:strongarm:1"
+features[user_permission][] = "administer CAPTCHA settings"
+features[user_permission][] = "administer recaptcha"
+features[user_permission][] = "administer spamicide"
+features[user_permission][] = "skip CAPTCHA"
+features[variable][] = "captcha_add_captcha_description"
+features[variable][] = "captcha_administration_mode"
+features[variable][] = "captcha_allow_on_admin_pages"
+features[variable][] = "captcha_default_challenge"
+features[variable][] = "captcha_description"
+features[variable][] = "recaptcha_ajax_api"
+features[variable][] = "recaptcha_private_key"
+features[variable][] = "recaptcha_public_key"
+features[variable][] = "recaptcha_secure_connection"
+features[variable][] = "recaptcha_theme"
diff --git a/drupal/sites/all/features/spam_controls/spam_controls.module b/drupal/sites/all/features/spam_controls/spam_controls.module
new file mode 100644
index 0000000..5a26cd8
--- /dev/null
+++ b/drupal/sites/all/features/spam_controls/spam_controls.module
@@ -0,0 +1,19 @@
+<?php
+
+include_once('spam_controls.features.inc');
+
+
+function spam_controls_menu() {
+  $items['user/register']['page access'] = FALSE;
+  $items['user/registration'] = array(
+    'title' => 'Create new account',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('user_register'),
+    'access callback' => 'user_register_access',
+    'type' => MENU_LOCAL_TASK,
+    'file' => 'user.pages.inc',
+    'file path' => drupal_get_path('module', 'user'),
+  );
+  
+  return $items;
+}
diff --git a/drupal/sites/all/features/spam_controls/spam_controls.strongarm.inc b/drupal/sites/all/features/spam_controls/spam_controls.strongarm.inc
new file mode 100644
index 0000000..bc87ed6
--- /dev/null
+++ b/drupal/sites/all/features/spam_controls/spam_controls.strongarm.inc
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function spam_controls_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'captcha_add_captcha_description';
+  $strongarm->value = 0;
+  $export['captcha_add_captcha_description'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'captcha_administration_mode';
+  $strongarm->value = 0;
+  $export['captcha_administration_mode'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'captcha_allow_on_admin_pages';
+  $strongarm->value = 0;
+  $export['captcha_allow_on_admin_pages'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'captcha_default_challenge';
+  $strongarm->value = 'recaptcha/reCAPTCHA';
+  $export['captcha_default_challenge'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'captcha_description';
+  $strongarm->value = 'This question is for testing whether you are a human visitor and to prevent automated spam submissions.';
+  $export['captcha_description'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'recaptcha_ajax_api';
+  $strongarm->value = 0;
+  $export['recaptcha_ajax_api'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'recaptcha_private_key';
+  $strongarm->value = '6LcAp9gSAAAAACqDNjbUiryK2BICYWXQP3HvwlIX';
+  $export['recaptcha_private_key'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'recaptcha_public_key';
+  $strongarm->value = '6LcAp9gSAAAAAK3VyU-clMl_lDf2l-OrSwxMqoZi';
+  $export['recaptcha_public_key'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'recaptcha_secure_connection';
+  $strongarm->value = 1;
+  $export['recaptcha_secure_connection'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'recaptcha_theme';
+  $strongarm->value = 'clean';
+  $export['recaptcha_theme'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/stats_charts/stats_charts.features.inc b/drupal/sites/all/features/stats_charts/stats_charts.features.inc
new file mode 100644
index 0000000..b730e75
--- /dev/null
+++ b/drupal/sites/all/features/stats_charts/stats_charts.features.inc
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function stats_charts_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "panels_mini" && $api == "panels_default") {
+    return array("version" => 1);
+  }
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function stats_charts_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/stats_charts/stats_charts.info b/drupal/sites/all/features/stats_charts/stats_charts.info
new file mode 100644
index 0000000..d3291d6
--- /dev/null
+++ b/drupal/sites/all/features/stats_charts/stats_charts.info
@@ -0,0 +1,13 @@
+name = "Stats charts"
+description = "Chart graphics for user and project stats"
+core = "6.x"
+package = "Features"
+dependencies[] = "boincstats"
+dependencies[] = "boincuser"
+dependencies[] = "panels_mini"
+dependencies[] = "views_content"
+dependencies[] = "views_customfield"
+features[ctools][] = "panels_mini:panels_default:1"
+features[panels_mini][] = "project_stats_overview"
+features[views][] = "boinc_account_stats"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/stats_charts/stats_charts.module b/drupal/sites/all/features/stats_charts/stats_charts.module
new file mode 100644
index 0000000..8ea8bdb
--- /dev/null
+++ b/drupal/sites/all/features/stats_charts/stats_charts.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('stats_charts.features.inc');
diff --git a/drupal/sites/all/features/stats_charts/stats_charts.panels_default.inc b/drupal/sites/all/features/stats_charts/stats_charts.panels_default.inc
new file mode 100644
index 0000000..37ba294
--- /dev/null
+++ b/drupal/sites/all/features/stats_charts/stats_charts.panels_default.inc
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * Implementation of hook_default_panels_mini().
+ */
+function stats_charts_default_panels_mini() {
+  $export = array();
+
+  $mini = new stdClass;
+  $mini->disabled = FALSE; /* Edit this to true to make a default mini disabled initially */
+  $mini->api_version = 1;
+  $mini->name = 'project_stats_overview';
+  $mini->category = 'BOINC';
+  $mini->admin_title = 'Project stats overview';
+  $mini->admin_description = 'General statistical information for the project';
+  $mini->requiredcontexts = array();
+  $mini->contexts = array();
+  $mini->relationships = array();
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'panels_mini';
+  $display->storage_id = 'project_stats_overview';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Project stats overview',
+      'title' => bts('@this_project Progress', array('@this_project' => variable_get('site_name', '')), NULL, 'boinc:frontpage'),
+      'body' => '<?php echo boincstats_get_project_stats_overview(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_FIXED;
+  $display->title_pane = 'new-1';
+  $mini->display = $display;
+  $export['project_stats_overview'] = $mini;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/stats_charts/stats_charts.views_default.inc b/drupal/sites/all/features/stats_charts/stats_charts.views_default.inc
new file mode 100644
index 0000000..5e8046c
--- /dev/null
+++ b/drupal/sites/all/features/stats_charts/stats_charts.views_default.inc
@@ -0,0 +1,961 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function stats_charts_views_default_views() {
+  $views = array();
+
+  // Exported view: boinc_account_stats
+  $view = new view;
+  $view->name = 'boinc_account_stats';
+  $view->description = 'BOINC user stats information';
+  $view->tag = '';
+  $view->base_table = 'user';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'User ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'nothing_4' => array(
+      'label' => 'Pending credit',
+      'alter' => array(
+        'text' => 'View',
+        'make_link' => 1,
+        'path' => 'account/credit/pending',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'nothing_4',
+      'table' => 'views',
+      'field' => 'nothing',
+      'relationship' => 'none',
+    ),
+    'nothing_5' => array(
+      'label' => 'Computers on this account',
+      'alter' => array(
+        'text' => 'View',
+        'make_link' => 1,
+        'path' => 'account/computers',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'nothing_5',
+      'table' => 'views',
+      'field' => 'nothing',
+      'relationship' => 'none',
+    ),
+    'nothing_6' => array(
+      'label' => 'Tasks',
+      'alter' => array(
+        'text' => 'View',
+        'make_link' => 1,
+        'path' => 'account/tasks',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'nothing_6',
+      'table' => 'views',
+      'field' => 'nothing',
+      'relationship' => 'none',
+    ),
+    'cross_project_id' => array(
+      'label' => 'Cross-project statistics',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'cross_project_id',
+      'table' => 'user',
+      'field' => 'cross_project_id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'nothing_8' => array(
+      'label' => 'Certificate',
+      'alter' => array(
+        'text' => '<a href="account/certs">Account</a> | <a href="account/certs/all">Cross-project</a>',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'nothing_8',
+      'table' => 'views',
+      'field' => 'nothing',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'id' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'current_user',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        4 => 0,
+        7 => 0,
+        5 => 0,
+        3 => 0,
+        6 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        4 => 0,
+        7 => 0,
+        5 => 0,
+        3 => 0,
+        6 => 0,
+      ),
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('css_class', 'stats');
+  $handler->override_option('header_format', '1');
+  $handler->override_option('header_empty', 0);
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+  ));
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('path', 'account/obsolete');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Obsolete',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('panel_pane', 'Credit status', 'panel_pane_1');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'User ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent avg',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'nothing_4' => array(
+      'label' => '',
+      'alter' => array(
+        'text' => 'Pending',
+        'make_link' => 1,
+        'path' => 'account/tasks/pending',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'nothing_4',
+      'table' => 'views',
+      'field' => 'nothing',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'nothing' => array(
+      'label' => '',
+      'alter' => array(
+        'text' => bts('Certificates', array(), NULL, 'boinc:account-dashboard'),
+        'make_link' => 1,
+        'path' => 'account/certs',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'nothing',
+      'table' => 'views',
+      'field' => 'nothing',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'nothing_1' => array(
+      'label' => '',
+      'alter' => array(
+        'text' => 'Cross-project',
+        'make_link' => 1,
+        'path' => 'account/certs/all',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'nothing_1',
+      'table' => 'views',
+      'field' => 'nothing',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'cross_project_id' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '<div class="chart"><img src="charts/user/[cross_project_id]" /></div>',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'cross_project_id',
+      'table' => 'user',
+      'field' => 'cross_project_id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php global $base_path; ?>
+<?php $account = user_load(get_drupal_id($data->id)); ?>
+<div class="chart"><img src="<?php echo "{$base_path}charts/user/{$account->boincuser_cpid}"; ?>" /></div>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('style_options', array());
+  $handler->override_option('pane_title', 'BOINC account stats detail');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => FALSE,
+    'items_per_page' => FALSE,
+    'offset' => FALSE,
+    'link_to_view' => FALSE,
+    'more_link' => FALSE,
+    'path_override' => FALSE,
+    'title_override' => FALSE,
+    'exposed_form' => FALSE,
+    'fields_override' => FALSE,
+  ));
+  $handler->override_option('argument_input', array());
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('panel_pane', 'User overview', 'panel_pane_2');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'User ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Avg credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+
+echo l(bts(\'Show computers\', array(), NULL, \'boinc:accountpage\'), \'account/\' . get_drupal_id($data->id) . \'/computers\');
+
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'cross_project_id' => array(
+      'label' => 'Cross-project statistics',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'cross_project_id',
+      'table' => 'user',
+      'field' => 'cross_project_id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'phpcode' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php global $base_path; ?>
+<?php $account = user_load(get_drupal_id($data->id)); ?>
+<div class="chart"><img src="<?php echo "{$base_path}charts/user/{$account->boincuser_cpid}/small"; ?>" /></div>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', 'Statistics');
+  $handler->override_option('empty', 'empty...');
+  $handler->override_option('empty_format', '5');
+  $handler->override_option('row_options', array(
+    'inline' => array(),
+    'separator' => '',
+    'hide_empty' => 0,
+  ));
+  $handler->override_option('pane_title', 'BOINC account stats overview');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 0,
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'id' => array(
+      'type' => 'panel',
+      'context' => 'node_edit_form.author-mail-raw',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Id',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/team_forums/team_forums.context.inc b/drupal/sites/all/features/team_forums/team_forums.context.inc
new file mode 100644
index 0000000..fd2fca7
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.context.inc
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * Implementation of hook_context_default_contexts().
+ */
+function team_forums_context_default_contexts() {
+  $export = array();
+
+  $context = new stdClass;
+  $context->disabled = FALSE; /* Edit this to true to make a default context disabled initially */
+  $context->api_version = 3;
+  $context->name = 'team_forum_topic';
+  $context->description = 'Highlight the Message Boards submenu when viewing a team forum topic';
+  $context->tag = 'community';
+  $context->conditions = array(
+    'node' => array(
+      'values' => array(
+        'team_forum' => 'team_forum',
+      ),
+      'options' => array(
+        'node_form' => '1',
+      ),
+    ),
+  );
+  $context->reactions = array(
+    'menu' => 'community/forum',
+  );
+  $context->condition_mode = 0;
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Highlight the Message Boards submenu when viewing a team forum topic');
+  t('community');
+  $export['team_forum_topic'] = $context;
+
+  $context = new stdClass;
+  $context->disabled = FALSE; /* Edit this to true to make a default context disabled initially */
+  $context->api_version = 3;
+  $context->name = 'team_forums';
+  $context->description = 'Highlight the Message Boards submenu when viewing a team forum';
+  $context->tag = 'community';
+  $context->conditions = array(
+    'path' => array(
+      'values' => array(
+        'community/teams/*/forum/*' => 'community/teams/*/forum/*',
+      ),
+    ),
+  );
+  $context->reactions = array(
+    'menu' => 'community/forum',
+  );
+  $context->condition_mode = 0;
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Highlight the Message Boards submenu when viewing a team forum');
+  t('community');
+  $export['team_forums'] = $context;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/team_forums/team_forums.features.inc b/drupal/sites/all/features/team_forums/team_forums.features.inc
new file mode 100644
index 0000000..78b9d4b
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.features.inc
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function team_forums_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "context" && $api == "context") {
+    return array("version" => 3);
+  }
+  elseif ($module == "page_manager" && $api == "pages_default") {
+    return array("version" => 1);
+  }
+  elseif ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
+
+/**
+ * Implementation of hook_node_info().
+ */
+function team_forums_node_info() {
+  $items = array(
+    'team_forum' => array(
+      'name' => t('Team forum topic'),
+      'module' => 'features',
+      'description' => t('A <em>team forum topic</em> is a special topic within a team forum. This may or may not be visible only to members of the corresponding team.'),
+      'has_title' => '1',
+      'title_label' => t('Subject'),
+      'has_body' => '1',
+      'body_label' => t('Body'),
+      'min_word_count' => '0',
+      'help' => '',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function team_forums_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/team_forums/team_forums.features.user_permission.inc b/drupal/sites/all/features/team_forums/team_forums.features.user_permission.inc
new file mode 100644
index 0000000..997df69
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.features.user_permission.inc
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function team_forums_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: create team_forum content
+  $permissions['create team_forum content'] = array(
+    'name' => 'create team_forum content',
+    'roles' => array(
+      '0' => 'verified contributor',
+    ),
+  );
+
+  // Exported permission: delete any team_forum content
+  $permissions['delete any team_forum content'] = array(
+    'name' => 'delete any team_forum content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: delete own team_forum content
+  $permissions['delete own team_forum content'] = array(
+    'name' => 'delete own team_forum content',
+    'roles' => array(
+      '0' => 'community member',
+    ),
+  );
+
+  // Exported permission: edit any team_forum content
+  $permissions['edit any team_forum content'] = array(
+    'name' => 'edit any team_forum content',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: edit own team_forum content
+  $permissions['edit own team_forum content'] = array(
+    'name' => 'edit own team_forum content',
+    'roles' => array(
+      '0' => 'verified contributor',
+    ),
+  );
+
+  // Exported permission: manage boincteam forum
+  $permissions['manage boincteam forum'] = array(
+    'name' => 'manage boincteam forum',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/team_forums/team_forums.info b/drupal/sites/all/features/team_forums/team_forums.info
new file mode 100644
index 0000000..95086d6
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.info
@@ -0,0 +1,39 @@
+name = "Team forums"
+description = "Enhances teams with team specific forums"
+core = "6.x"
+package = "Features"
+dependencies[] = "boincteam_forum"
+dependencies[] = "comment"
+dependencies[] = "context"
+dependencies[] = "ctools"
+dependencies[] = "features"
+dependencies[] = "page_manager"
+dependencies[] = "strongarm"
+dependencies[] = "teams"
+dependencies[] = "views_content"
+features[context][] = "team_forum_topic"
+features[context][] = "team_forums"
+features[ctools][] = "context:context:3"
+features[ctools][] = "page_manager:pages_default:1"
+features[ctools][] = "strongarm:strongarm:1"
+features[node][] = "team_forum"
+features[page_manager_pages][] = "team_forums"
+features[user_permission][] = "create team_forum content"
+features[user_permission][] = "delete any team_forum content"
+features[user_permission][] = "delete own team_forum content"
+features[user_permission][] = "edit any team_forum content"
+features[user_permission][] = "edit own team_forum content"
+features[user_permission][] = "manage boincteam forum"
+features[variable][] = "comment_anonymous_team_forum"
+features[variable][] = "comment_controls_team_forum"
+features[variable][] = "comment_default_mode_team_forum"
+features[variable][] = "comment_default_order_team_forum"
+features[variable][] = "comment_default_per_page_team_forum"
+features[variable][] = "comment_form_location_team_forum"
+features[variable][] = "comment_preview_team_forum"
+features[variable][] = "comment_subject_field_team_forum"
+features[variable][] = "comment_team_forum"
+features[variable][] = "language_content_type_team_forum"
+features[variable][] = "node_options_team_forum"
+features[views][] = "boinc_team_forum_topics"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/team_forums/team_forums.module b/drupal/sites/all/features/team_forums/team_forums.module
new file mode 100644
index 0000000..1022960
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('team_forums.features.inc');
diff --git a/drupal/sites/all/features/team_forums/team_forums.pages_default.inc b/drupal/sites/all/features/team_forums/team_forums.pages_default.inc
new file mode 100644
index 0000000..a07d333
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.pages_default.inc
@@ -0,0 +1,624 @@
+<?php
+
+/**
+ * Implementation of hook_default_page_manager_pages().
+ */
+function team_forums_default_page_manager_pages() {
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'team_forums';
+  $page->task = 'page';
+  $page->admin_title = 'Team forums';
+  $page->admin_description = '';
+  $page->path = 'community/teams/%team_id/forum/!option_1/!option_2';
+  $page->access = array(
+    'plugins' => array(
+      2 => array(
+        'name' => 'role',
+        'settings' => array(
+          'rids' => array(
+            0 => 2,
+          ),
+        ),
+        'context' => 'logged-in-user',
+        'not' => FALSE,
+      ),
+    ),
+    'logic' => 'and',
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array(
+    'type' => 'none',
+    'title' => 'Teams',
+    'name' => 'navigation',
+    'weight' => '10',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'name' => 'navigation',
+      'weight' => '0',
+    ),
+  );
+  $page->arguments = array(
+    'team_id' => array(
+      'id' => 1,
+      'identifier' => 'Node: ID',
+      'name' => 'nid',
+      'settings' => array(),
+    ),
+    'option_1' => array(
+      'id' => 1,
+      'identifier' => 'String',
+      'name' => 'string',
+      'settings' => array(
+        'use_tail' => 0,
+      ),
+    ),
+    'option_2' => array(
+      'id' => 2,
+      'identifier' => 'String 2',
+      'name' => 'string',
+      'settings' => array(
+        'use_tail' => 0,
+      ),
+    ),
+  );
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_team_forums_panel_context_2';
+  $handler->task = 'page';
+  $handler->subtask = 'team_forums';
+  $handler->handler = 'panel_context';
+  $handler->weight = -30;
+  $handler->conf = array(
+    'title' => 'Add team forum',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/forum/add',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        1 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        2 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'User is team founder',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return boincteam_is_founder($team_id);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array(
+    'items' => array(
+      'canvas' => array(
+        'type' => 'row',
+        'contains' => 'column',
+        'children' => array(
+          0 => 'main',
+          1 => 2,
+        ),
+        'parent' => NULL,
+      ),
+      'main' => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'children' => array(
+          0 => 'main-row',
+          1 => 1,
+        ),
+        'parent' => 'canvas',
+      ),
+      'main-row' => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'center',
+        ),
+        'parent' => 'main',
+      ),
+      'center' => array(
+        'type' => 'region',
+        'title' => 'Center',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'main-row',
+      ),
+      1 => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'top_teams',
+        ),
+        'parent' => 'main',
+        'class' => 'panel-primary container shadow',
+      ),
+      'top_teams' => array(
+        'type' => 'region',
+        'title' => 'Top teams',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => '1',
+        'class' => 'panel-primary container shadow',
+      ),
+      2 => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'parent' => 'canvas',
+        'children' => array(),
+        'class' => '',
+      ),
+    ),
+  );
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'center' => NULL,
+      'top_teams' => NULL,
+      'top' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'bottom' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_team_forums_panel_context_2';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Create team forum form',
+      'title' => '',
+      'body' => '<?php echo boincteam_forum_create_form_panel(); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'About team forums',
+      'title' => '',
+      'body' => '<?php echo boincteam_forum_topic_overview_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['right'][0] = 'new-2';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = 'new-1';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_team_forums_panel_context_3';
+  $handler->task = 'page';
+  $handler->subtask = 'team_forums';
+  $handler->handler = 'panel_context';
+  $handler->weight = -29;
+  $handler->conf = array(
+    'title' => 'Edit team forum',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/forum/*/edit',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        1 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        2 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'User is team founder',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return boincteam_is_founder($team_id);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array(
+    'items' => array(
+      'canvas' => array(
+        'type' => 'row',
+        'contains' => 'column',
+        'children' => array(
+          0 => 'main',
+          1 => 2,
+        ),
+        'parent' => NULL,
+      ),
+      'main' => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'children' => array(
+          0 => 'main-row',
+          1 => 1,
+        ),
+        'parent' => 'canvas',
+      ),
+      'main-row' => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'center',
+        ),
+        'parent' => 'main',
+      ),
+      'center' => array(
+        'type' => 'region',
+        'title' => 'Center',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'main-row',
+      ),
+      1 => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'top_teams',
+        ),
+        'parent' => 'main',
+        'class' => 'panel-primary container shadow',
+      ),
+      'top_teams' => array(
+        'type' => 'region',
+        'title' => 'Top teams',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => '1',
+        'class' => 'panel-primary container shadow',
+      ),
+      2 => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'parent' => 'canvas',
+        'children' => array(),
+        'class' => '',
+      ),
+    ),
+  );
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'center' => NULL,
+      'top_teams' => NULL,
+      'top' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'bottom' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_team_forums_panel_context_3';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Edit team forum form',
+      'title' => '',
+      'body' => '<?php echo boincteam_forum_edit_form_panel(%option_1:raw); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'About team forums',
+      'title' => '',
+      'body' => '<?php echo boincteam_forum_topic_overview_panel(); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['right'][0] = 'new-2';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = 'new-1';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_team_forums_panel_context';
+  $handler->task = 'page';
+  $handler->subtask = 'team_forums';
+  $handler->handler = 'panel_context';
+  $handler->weight = -28;
+  $handler->conf = array(
+    'title' => 'View team forum',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/forum/*',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        1 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        2 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'A member of this team, the forum is public, or has global team moderation',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+$team_forum_id = $contexts[\'argument_string_1\']->data;
+if ($team_id == boincteam_forum_lookup_nid($team_forum_id)) {
+  return (
+    boincteam_is_member($team_id) OR
+    boincteam_forum_is_public($team_forum_id) OR
+    boincteam_forum_is_global_moderator()
+  );
+}
+return FALSE;',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array(
+    'items' => array(
+      'canvas' => array(
+        'type' => 'row',
+        'contains' => 'column',
+        'children' => array(
+          0 => 'main',
+          1 => 2,
+        ),
+        'parent' => NULL,
+      ),
+      'main' => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'children' => array(
+          0 => 'main-row',
+          1 => 1,
+        ),
+        'parent' => 'canvas',
+      ),
+      'main-row' => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'center',
+        ),
+        'parent' => 'main',
+      ),
+      'center' => array(
+        'type' => 'region',
+        'title' => 'Center',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'main-row',
+      ),
+      1 => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'top_teams',
+        ),
+        'parent' => 'main',
+        'class' => 'panel-primary container shadow',
+      ),
+      'top_teams' => array(
+        'type' => 'region',
+        'title' => 'Top teams',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => '1',
+        'class' => 'panel-primary container shadow',
+      ),
+      2 => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'parent' => 'canvas',
+        'children' => array(),
+        'class' => '',
+      ),
+    ),
+  );
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'center' => NULL,
+      'top_teams' => NULL,
+      'top' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'bottom' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_team_forums_panel_context';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_team_forum_topics-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'section framing container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['team_forums'] = $page;
+
+ return $pages;
+
+}
diff --git a/drupal/sites/all/features/team_forums/team_forums.strongarm.inc b/drupal/sites/all/features/team_forums/team_forums.strongarm.inc
new file mode 100644
index 0000000..3f51c38
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.strongarm.inc
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function team_forums_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_anonymous_team_forum';
+  $strongarm->value = 0;
+  $export['comment_anonymous_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_controls_team_forum';
+  $strongarm->value = '1';
+  $export['comment_controls_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_mode_team_forum';
+  $strongarm->value = '2';
+  $export['comment_default_mode_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_order_team_forum';
+  $strongarm->value = '2';
+  $export['comment_default_order_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_per_page_team_forum';
+  $strongarm->value = '50';
+  $export['comment_default_per_page_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_form_location_team_forum';
+  $strongarm->value = '0';
+  $export['comment_form_location_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_preview_team_forum';
+  $strongarm->value = '0';
+  $export['comment_preview_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_subject_field_team_forum';
+  $strongarm->value = '1';
+  $export['comment_subject_field_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_team_forum';
+  $strongarm->value = '2';
+  $export['comment_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'language_content_type_team_forum';
+  $strongarm->value = '0';
+  $export['language_content_type_team_forum'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_options_team_forum';
+  $strongarm->value = array(
+    0 => 'status',
+  );
+  $export['node_options_team_forum'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/team_forums/team_forums.views_default.inc b/drupal/sites/all/features/team_forums/team_forums.views_default.inc
new file mode 100644
index 0000000..3f76b56
--- /dev/null
+++ b/drupal/sites/all/features/team_forums/team_forums.views_default.inc
@@ -0,0 +1,1050 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function team_forums_views_default_views() {
+  $views = array();
+
+  // Exported view: boinc_team_forum_topics
+  $view = new view;
+  $view->name = 'boinc_team_forum_topics';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'boincteam_forum_node';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'nid' => array(
+      'label' => 'Team Forum Topic Node',
+      'required' => 1,
+      'id' => 'nid',
+      'table' => 'boincteam_forum_node',
+      'field' => 'nid',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => 'Topic',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 1,
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'nid',
+    ),
+    'comment_count' => array(
+      'label' => 'Replies',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'comment_count',
+      'table' => 'node_comment_statistics',
+      'field' => 'comment_count',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'created' => array(
+      'label' => 'Created',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+      'relationship' => 'nid',
+    ),
+    'last_comment_timestamp' => array(
+      'label' => 'Last reply',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'last_comment_timestamp',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_comment_timestamp',
+      'relationship' => 'nid',
+    ),
+    'new_comments' => array(
+      'label' => 'New comments',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'link_to_comment' => 1,
+      'exclude' => 0,
+      'id' => 'new_comments',
+      'table' => 'node',
+      'field' => 'new_comments',
+      'relationship' => 'nid',
+    ),
+    'status' => array(
+      'label' => 'Published',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'type' => 'yes-no',
+      'not' => 0,
+      'exclude' => 0,
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'relationship' => 'nid',
+    ),
+    'sticky' => array(
+      'label' => 'Sticky',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'type' => 'true-false',
+      'not' => 0,
+      'exclude' => 0,
+      'id' => 'sticky',
+      'table' => 'node',
+      'field' => 'sticky',
+      'relationship' => 'nid',
+    ),
+    'nid' => array(
+      'label' => 'Nid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'exclude' => 0,
+      'id' => 'nid',
+      'table' => 'node',
+      'field' => 'nid',
+      'relationship' => 'nid',
+    ),
+    'comment' => array(
+      'label' => 'Comment status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'comment',
+      'table' => 'node',
+      'field' => 'comment',
+      'relationship' => 'nid',
+    ),
+    'timestamp' => array(
+      'label' => 'Has new content',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 1,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'comments' => 0,
+      'exclude' => 0,
+      'id' => 'timestamp',
+      'table' => 'history_user',
+      'field' => 'timestamp',
+      'relationship' => 'nid',
+    ),
+    'uid' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'exclude' => 0,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'relationship' => 'nid',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'sticky' => array(
+      'order' => 'DESC',
+      'id' => 'sticky',
+      'table' => 'node',
+      'field' => 'sticky',
+      'relationship' => 'nid',
+    ),
+    'last_comment_timestamp' => array(
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'id' => 'last_comment_timestamp',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_comment_timestamp',
+      'relationship' => 'nid',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'tfid' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'tfid',
+      'table' => 'boincteam_forum_node',
+      'field' => 'tfid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+        'team_forum' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler = $view->new_display('panel_pane', 'Topic list', 'panel_pane_1');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => 'Topic',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 1,
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'nid',
+    ),
+    'comment_count' => array(
+      'label' => 'Replies',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'comment_count',
+      'table' => 'node_comment_statistics',
+      'field' => 'comment_count',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'created' => array(
+      'label' => 'Created',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+      'relationship' => 'nid',
+    ),
+    'last_comment_timestamp' => array(
+      'label' => 'Last reply',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'last_comment_timestamp',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_comment_timestamp',
+      'relationship' => 'nid',
+    ),
+    'new_comments' => array(
+      'label' => 'New comments',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'link_to_comment' => 1,
+      'exclude' => 0,
+      'id' => 'new_comments',
+      'table' => 'node',
+      'field' => 'new_comments',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'status' => array(
+      'label' => 'Published',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'type' => 'yes-no',
+      'not' => 0,
+      'exclude' => 0,
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'relationship' => 'nid',
+    ),
+    'sticky' => array(
+      'label' => 'Sticky',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'type' => 'true-false',
+      'not' => 0,
+      'exclude' => 0,
+      'id' => 'sticky',
+      'table' => 'node',
+      'field' => 'sticky',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'nid' => array(
+      'label' => 'Nid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'exclude' => 0,
+      'id' => 'nid',
+      'table' => 'node',
+      'field' => 'nid',
+      'relationship' => 'nid',
+    ),
+    'comment' => array(
+      'label' => 'Comment status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'comment',
+      'table' => 'node',
+      'field' => 'comment',
+      'relationship' => 'nid',
+    ),
+    'timestamp' => array(
+      'label' => 'Has new content',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 1,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'comments' => 0,
+      'exclude' => 0,
+      'id' => 'timestamp',
+      'table' => 'history_user',
+      'field' => 'timestamp',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'uid' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'exclude' => 0,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'sticky' => array(
+      'order' => 'DESC',
+      'id' => 'sticky',
+      'table' => 'node',
+      'field' => 'sticky',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'last_comment_timestamp' => array(
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'id' => 'last_comment_timestamp',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_comment_timestamp',
+      'relationship' => 'nid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('empty', 'No topics yet...');
+  $handler->override_option('empty_format', '5');
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'title' => 'title',
+      'comment_count' => 'comment_count',
+      'created' => 'created',
+      'last_comment_timestamp' => 'last_comment_timestamp',
+      'new_comments' => 'new_comments',
+      'status' => 'status',
+      'sticky' => 'sticky',
+      'nid' => 'nid',
+      'comment' => 'comment',
+      'timestamp' => 'timestamp',
+      'uid' => 'uid',
+    ),
+    'info' => array(
+      'title' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'comment_count' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'created' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'last_comment_timestamp' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'new_comments' => array(
+        'separator' => '',
+      ),
+      'status' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'sticky' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'nid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'comment' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'timestamp' => array(
+        'separator' => '',
+      ),
+      'uid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => '-1',
+  ));
+  $handler->override_option('pane_title', '');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 0,
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'tfid' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '1',
+      'fixed' => '',
+      'label' => 'BOINC: Team forum ID',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/teams/teams.features.inc b/drupal/sites/all/features/teams/teams.features.inc
new file mode 100644
index 0000000..b198bf4
--- /dev/null
+++ b/drupal/sites/all/features/teams/teams.features.inc
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function teams_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "page_manager" && $api == "pages_default") {
+    return array("version" => 1);
+  }
+  elseif ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
+
+/**
+ * Implementation of hook_node_info().
+ */
+function teams_node_info() {
+  $items = array(
+    'team' => array(
+      'name' => t('Team'),
+      'module' => 'features',
+      'description' => t('A grouping of users, centered on a common interest.'),
+      'has_title' => '1',
+      'title_label' => t('Name'),
+      'has_body' => '1',
+      'body_label' => t('Description'),
+      'min_word_count' => '0',
+      'help' => '',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function teams_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/teams/teams.features.user_permission.inc b/drupal/sites/all/features/teams/teams.features.user_permission.inc
new file mode 100644
index 0000000..488f806
--- /dev/null
+++ b/drupal/sites/all/features/teams/teams.features.user_permission.inc
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function teams_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: create boincteam
+  $permissions['create boincteam'] = array(
+    'name' => 'create boincteam',
+    'roles' => array(
+      '0' => 'community member',
+    ),
+  );
+
+  // Exported permission: join boincteam
+  $permissions['join boincteam'] = array(
+    'name' => 'join boincteam',
+    'roles' => array(
+      '0' => 'community member',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/teams/teams.info b/drupal/sites/all/features/teams/teams.info
new file mode 100644
index 0000000..4d7a76e
--- /dev/null
+++ b/drupal/sites/all/features/teams/teams.info
@@ -0,0 +1,37 @@
+name = "Teams"
+description = "Allows users to create and join teams"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "boincteam"
+dependencies[] = "comment"
+dependencies[] = "ctools"
+dependencies[] = "features"
+dependencies[] = "page_manager"
+dependencies[] = "panels"
+dependencies[] = "panels_mini"
+dependencies[] = "strongarm"
+dependencies[] = "views"
+dependencies[] = "views_content"
+dependencies[] = "views_customfield"
+features[ctools][] = "page_manager:pages_default:1"
+features[ctools][] = "strongarm:strongarm:1"
+features[node][] = "team"
+features[page_manager_pages][] = "create_team"
+features[page_manager_pages][] = "teams_landing"
+features[page_manager_pages][] = "view_team"
+features[user_permission][] = "create boincteam"
+features[user_permission][] = "join boincteam"
+features[variable][] = "comment_anonymous_team"
+features[variable][] = "comment_controls_team"
+features[variable][] = "comment_default_mode_team"
+features[variable][] = "comment_default_order_team"
+features[variable][] = "comment_default_per_page_team"
+features[variable][] = "comment_form_location_team"
+features[variable][] = "comment_preview_team"
+features[variable][] = "comment_subject_field_team"
+features[variable][] = "comment_team"
+features[variable][] = "node_options_team"
+features[views][] = "boinc_team_members"
+features[views][] = "boinc_teams"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/teams/teams.module b/drupal/sites/all/features/teams/teams.module
new file mode 100644
index 0000000..52c7eb2
--- /dev/null
+++ b/drupal/sites/all/features/teams/teams.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('teams.features.inc');
diff --git a/drupal/sites/all/features/teams/teams.pages_default.inc b/drupal/sites/all/features/teams/teams.pages_default.inc
new file mode 100644
index 0000000..e35de06
--- /dev/null
+++ b/drupal/sites/all/features/teams/teams.pages_default.inc
@@ -0,0 +1,1880 @@
+<?php
+
+/**
+ * Implementation of hook_default_page_manager_pages().
+ */
+function teams_default_page_manager_pages() {
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'create_team';
+  $page->task = 'page';
+  $page->admin_title = 'Create team form';
+  $page->admin_description = '';
+  $page->path = 'community/teams/add';
+  $page->access = array(
+    'plugins' => array(
+      0 => array(
+        'name' => 'perm',
+        'settings' => array(
+          'perm' => 'create boincteam',
+        ),
+        'context' => 'logged-in-user',
+        'not' => FALSE,
+      ),
+    ),
+    'logic' => 'and',
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array(
+    'type' => 'none',
+    'title' => 'Teams',
+    'name' => 'navigation',
+    'weight' => '10',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'name' => 'navigation',
+      'weight' => '0',
+    ),
+  );
+  $page->arguments = array();
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_create_team_panel_context';
+  $handler->task = 'page';
+  $handler->subtask = 'create_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = 0;
+  $handler->conf = array(
+    'title' => 'Panel',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array(
+    'items' => array(
+      'canvas' => array(
+        'type' => 'row',
+        'contains' => 'column',
+        'children' => array(
+          0 => 'main',
+          1 => 2,
+        ),
+        'parent' => NULL,
+      ),
+      'main' => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'children' => array(
+          0 => 'main-row',
+          1 => 1,
+        ),
+        'parent' => 'canvas',
+      ),
+      'main-row' => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'center',
+        ),
+        'parent' => 'main',
+      ),
+      'center' => array(
+        'type' => 'region',
+        'title' => 'Center',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'main-row',
+      ),
+      1 => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'top_teams',
+        ),
+        'parent' => 'main',
+        'class' => 'panel-primary container shadow',
+      ),
+      'top_teams' => array(
+        'type' => 'region',
+        'title' => 'Top teams',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => '1',
+        'class' => 'panel-primary container shadow',
+      ),
+      2 => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'parent' => 'canvas',
+        'children' => array(),
+        'class' => '',
+      ),
+    ),
+  );
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'center' => NULL,
+      'top_teams' => NULL,
+      'top' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'bottom' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_create_team_panel_context';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Create team form',
+      'title' => '',
+      'body' => '<?php echo boincteam_create_team_panel(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Search teams',
+      'title' => '',
+      'body' => '<?php echo boincteam_search_panel(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['right'][0] = 'new-2';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = 'new-1';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['create_team'] = $page;
+
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'teams_landing';
+  $page->task = 'page';
+  $page->admin_title = 'Teams';
+  $page->admin_description = '';
+  $page->path = 'community/teams';
+  $page->access = array(
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array(
+    'type' => 'normal',
+    'title' => 'Teams',
+    'name' => 'primary-links',
+    'weight' => '10',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'name' => 'navigation',
+      'weight' => '0',
+    ),
+  );
+  $page->arguments = array();
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_teams_landing_panel_context';
+  $handler->task = 'page';
+  $handler->subtask = 'teams_landing';
+  $handler->handler = 'panel_context';
+  $handler->weight = 0;
+  $handler->conf = array(
+    'title' => 'Panel',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(
+      0 => array(
+        'name' => 'user',
+        'id' => 1,
+        'identifier' => 'User',
+        'keyword' => 'user',
+        'context_settings' => array(
+          'type' => 'current',
+          'user' => '',
+          'uid' => '',
+        ),
+      ),
+    ),
+    'relationships' => array(),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array(
+    'items' => array(
+      'canvas' => array(
+        'type' => 'row',
+        'contains' => 'column',
+        'children' => array(
+          0 => 'main',
+          1 => 2,
+        ),
+        'parent' => NULL,
+      ),
+      'main' => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'children' => array(
+          0 => 'main-row',
+          1 => 1,
+        ),
+        'parent' => 'canvas',
+      ),
+      'main-row' => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'center',
+        ),
+        'parent' => 'main',
+      ),
+      'center' => array(
+        'type' => 'region',
+        'title' => 'Center',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'main-row',
+      ),
+      1 => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'top_teams',
+        ),
+        'parent' => 'main',
+        'class' => 'panel-primary container shadow',
+      ),
+      'top_teams' => array(
+        'type' => 'region',
+        'title' => 'Top teams',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => '1',
+        'class' => 'panel-primary container shadow',
+      ),
+      2 => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'parent' => 'canvas',
+        'children' => array(),
+        'class' => '',
+      ),
+    ),
+  );
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'center' => NULL,
+      'top_teams' => NULL,
+      'top' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'bottom' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_teams_landing_panel_context';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'bottom';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_teams-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'link_to_view' => 0,
+      'more_link' => 1,
+      'use_pager' => 0,
+      'pager_id' => '',
+      'items_per_page' => '10',
+      'override_title' => 1,
+      'override_title_text' => 'Top teams',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['bottom'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'left';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'General info on teams',
+      'title' => '',
+      'body' => '<?php echo boincteam_topic_overview_panel(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow balance-height',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['left'][0] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'Already a team member',
+            'php' => '$account = user_load($contexts[\'logged-in-user\']->data->uid);
+return ($account->team > 0);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Team member widget',
+      'title' => '',
+      'body' => '<?php echo boincteam_member_link_panel(); ?>',
+      'format' => '3',
+      'substitute' => 0,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow balance-height no-resize',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-3'] = $pane;
+    $display->panels['right'][0] = 'new-3';
+    $pane = new stdClass;
+    $pane->pid = 'new-4';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Search teams',
+      'title' => '',
+      'body' => '<?php echo boincteam_search_panel(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow balance-height',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-4'] = $pane;
+    $display->panels['right'][1] = 'new-4';
+    $pane = new stdClass;
+    $pane->pid = 'new-5';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'Not in another team',
+            'php' => '$account = user_load($contexts[\'logged-in-user\']->data->uid);
+return ($account->team == 0);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Create team widget',
+      'title' => '',
+      'body' => '<?php echo boincteam_create_team_link_panel(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow balance-height no-resize',
+    );
+    $pane->extras = array();
+    $pane->position = 2;
+    $display->content['new-5'] = $pane;
+    $display->panels['right'][2] = 'new-5';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = 'new-2';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['teams_landing'] = $page;
+
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'view_team';
+  $page->task = 'page';
+  $page->admin_title = 'View team';
+  $page->admin_description = '';
+  $page->path = 'community/teams/%team_id/!section/!option';
+  $page->access = array(
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array(
+    'type' => 'none',
+    'title' => 'Teams',
+    'name' => 'navigation',
+    'weight' => '10',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'name' => 'navigation',
+      'weight' => '0',
+    ),
+  );
+  $page->arguments = array(
+    'team_id' => array(
+      'id' => 1,
+      'identifier' => 'Node: ID',
+      'name' => 'nid',
+      'settings' => array(),
+    ),
+    'section' => array(
+      'id' => 1,
+      'identifier' => 'Section',
+      'name' => 'string',
+      'settings' => array(
+        'use_tail' => 0,
+      ),
+    ),
+    'option' => array(
+      'id' => 2,
+      'identifier' => 'Option',
+      'name' => 'string',
+      'settings' => array(
+        'use_tail' => 0,
+      ),
+    ),
+  );
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_2';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -30;
+  $handler->conf = array(
+    'title' => 'Edit team',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/edit/info',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        4 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'An admin of this team',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (boincteam_is_founder($team_id) OR boincteam_is_admin($team_id));',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_2';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Edit team form',
+      'title' => '',
+      'body' => '<?php echo boincteam_edit_team_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Manage team',
+      'title' => '',
+      'body' => '<?php echo boincteam_management_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => 'team-management',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['right'][0] = 'new-2';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_8';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -29;
+  $handler->conf = array(
+    'title' => 'Manage members',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/edit/members',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        4 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'An admin of this team',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (boincteam_is_founder($team_id) OR boincteam_is_admin($team_id));',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_8';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_team_members-panel_pane_5';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'items_per_page' => '25',
+      'override_title' => 1,
+      'override_title_text' => 'Remove members',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'section framing container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_4';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -28;
+  $handler->conf = array(
+    'title' => 'View emails',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/members/email',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        4 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'An admin of this team',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (boincteam_is_founder($team_id) OR boincteam_is_admin($team_id));',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_4';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_team_members-panel_pane_3';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'items_per_page' => '25',
+      'override_title' => 1,
+      'override_title_text' => 'Email list',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'section framing container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_3';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -27;
+  $handler->conf = array(
+    'title' => 'View members',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/members',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_3';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_team_members-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'An admin of this team',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (boincteam_is_founder($team_id) OR boincteam_is_admin($team_id));',
+          ),
+          'not' => TRUE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'items_per_page' => '25',
+      'override_title' => 1,
+      'override_title_text' => 'Member list',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'section framing container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_team_members-panel_pane_2';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'An admin of this team',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (boincteam_is_founder($team_id) OR boincteam_is_admin($team_id));',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'items_per_page' => '25',
+      'override_title' => 1,
+      'override_title_text' => 'Member list',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'section framing container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-2'] = $pane;
+    $display->panels['middle'][1] = 'new-2';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_5';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -26;
+  $handler->conf = array(
+    'title' => 'View history',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/history',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        4 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'An admin of this team',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (boincteam_is_founder($team_id) OR boincteam_is_admin($team_id));',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_5';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_teams-panel_pane_2';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'items_per_page' => '25',
+      'override_title' => 1,
+      'override_title_text' => 'Team history',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'section framing container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_6';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -25;
+  $handler->conf = array(
+    'title' => 'Manage admins',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/edit/admins',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        4 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'User is team founder',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return boincteam_is_founder($team_id);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_6';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_teams-panel_pane_3';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'items_per_page' => '10',
+      'override_title' => 1,
+      'override_title_text' => 'Manage team admins',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'About team admins',
+      'title' => '',
+      'body' => '<?php echo boincteam_about_admins_panel(); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['right'][0] = 'new-2';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_9';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -24;
+  $handler->conf = array(
+    'title' => 'Change founder',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/edit/founder',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        4 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'User is team founder',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return boincteam_is_founder($team_id);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_9';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Respond to foundership request',
+      'title' => '',
+      'body' => '<?php echo boincteam_request_foundership_response_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'left';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_team_members-panel_pane_4';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'items_per_page' => '25',
+      'override_title' => 1,
+      'override_title_text' => 'Change founder',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-2'] = $pane;
+    $display->panels['left'][1] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'About changing team founder',
+      'title' => '',
+      'body' => '<?php echo boincteam_about_founder_panel(); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-3'] = $pane;
+    $display->panels['right'][0] = 'new-3';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context_7';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -23;
+  $handler->conf = array(
+    'title' => 'View forum',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'path_visibility',
+          'settings' => array(
+            'visibility_setting' => '1',
+            'paths' => 'community/teams/*/forum/*',
+          ),
+          'context' => 'empty',
+          'not' => FALSE,
+        ),
+        3 => array(
+          'name' => 'role',
+          'settings' => array(
+            'rids' => array(
+              0 => 2,
+            ),
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        4 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'A member of this team or the forum is public',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+$team_forum_id = $contexts[\'argument_string_2\']->data;
+return (boincteam_is_member($team_id) OR boincteam_forum_is_public($team_forum_id));',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'top' => NULL,
+      'bottom' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context_7';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_team_forum_topics-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'section framing container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_view_team_panel_context';
+  $handler->task = 'page';
+  $handler->subtask = 'view_team';
+  $handler->handler = 'panel_context';
+  $handler->weight = -22;
+  $handler->conf = array(
+    'title' => 'View team',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'access' => array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'node_access',
+          'settings' => array(
+            'type' => 'view',
+          ),
+          'context' => array(
+            0 => 'logged-in-user',
+            1 => 'argument_nid_1',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+      'logic' => 'and',
+    ),
+  );
+  $display = new panels_display;
+  $display->layout = 'twocol_stacked';
+  $display->layout_settings = array(
+    'items' => array(
+      'canvas' => array(
+        'type' => 'row',
+        'contains' => 'column',
+        'children' => array(
+          0 => 'main',
+          1 => 2,
+        ),
+        'parent' => NULL,
+      ),
+      'main' => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'children' => array(
+          0 => 'main-row',
+          1 => 1,
+        ),
+        'parent' => 'canvas',
+      ),
+      'main-row' => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'center',
+        ),
+        'parent' => 'main',
+      ),
+      'center' => array(
+        'type' => 'region',
+        'title' => 'Center',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'main-row',
+      ),
+      1 => array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(
+          0 => 'top_teams',
+        ),
+        'parent' => 'main',
+        'class' => 'panel-primary container shadow',
+      ),
+      'top_teams' => array(
+        'type' => 'region',
+        'title' => 'Top teams',
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => '1',
+        'class' => 'panel-primary container shadow',
+      ),
+      2 => array(
+        'type' => 'column',
+        'width' => 50,
+        'width_type' => '%',
+        'parent' => 'canvas',
+        'children' => array(),
+        'class' => '',
+      ),
+    ),
+  );
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'center' => NULL,
+      'top_teams' => NULL,
+      'top' => NULL,
+      'left' => NULL,
+      'right' => NULL,
+      'bottom' => NULL,
+      'content' => NULL,
+      'sidebar_first' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_view_team_panel_context';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'left';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Team details',
+      'title' => '',
+      'body' => '<?php echo boincteam_view_team_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['left'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'An admin of this team',
+            'php' => '$uid = $contexts[\'logged-in-user\']->data->uid;
+$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (boincteam_is_founder($team_id, $uid) OR boincteam_is_admin($team_id, $uid));',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Manage team',
+      'title' => '',
+      'body' => '<?php echo boincteam_management_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => 'team-management',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-2'] = $pane;
+    $display->panels['right'][0] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'A member of this team, the forum is public, or has global team moderation',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return (
+  (
+    boincteam_is_member($team_id) OR
+    boincteam_forum_is_any_public($team_id) OR
+    boincteam_forum_is_global_moderator()
+  ) AND (
+   boincteam_forum_list($team_id)
+  )
+);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Team forum',
+      'title' => '',
+      'body' => '<?php print boincteam_forum_link_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-3'] = $pane;
+    $display->panels['right'][1] = 'new-3';
+    $pane = new stdClass;
+    $pane->pid = 'new-4';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'Not in another team',
+            'php' => '$account = user_load($contexts[\'logged-in-user\']->data->uid);
+return ($account->team == 0);',
+          ),
+          'not' => FALSE,
+        ),
+        1 => array(
+          'name' => 'perm',
+          'settings' => array(
+            'perm' => 'join boincteam',
+          ),
+          'context' => 'logged-in-user',
+          'not' => FALSE,
+        ),
+        2 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'Team is open',
+            'php' => '$team_id = $contexts[\'argument_nid_1\']->data->nid;
+$boincteam = boincteam_load(boincteam_lookup_id($team_id));
+return $boincteam->joinable;',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Join team',
+      'title' => '',
+      'body' => '<?php echo boincteam_join_team_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 2;
+    $display->content['new-4'] = $pane;
+    $display->panels['right'][2] = 'new-4';
+    $pane = new stdClass;
+    $pane->pid = 'new-5';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'A member of this team',
+            'php' => '$account = user_load($contexts[\'logged-in-user\']->data->uid);
+return ($account->team == $contexts[\'argument_nid_1\']->data->nid);',
+          ),
+          'not' => FALSE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Leave team',
+      'title' => '',
+      'body' => '<?php echo boincteam_leave_team_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 3;
+    $display->content['new-5'] = $pane;
+    $display->panels['right'][3] = 'new-5';
+    $pane = new stdClass;
+    $pane->pid = 'new-6';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array(
+      'plugins' => array(
+        0 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'A member of this team',
+            'php' => '$account = user_load($contexts[\'logged-in-user\']->data->uid);
+return ($account->team == $contexts[\'argument_nid_1\']->data->nid);',
+          ),
+          'not' => FALSE,
+        ),
+        1 => array(
+          'name' => 'php',
+          'settings' => array(
+            'description' => 'User is team founder',
+            'php' => '$uid = $contexts[\'logged-in-user\']->data->uid;
+$team_id = $contexts[\'argument_nid_1\']->data->nid;
+return boincteam_is_founder($team_id, $uid);',
+          ),
+          'not' => TRUE,
+        ),
+      ),
+    );
+    $pane->configuration = array(
+      'admin_title' => 'Request foundership',
+      'title' => '',
+      'body' => '<?php echo boincteam_request_foundership_panel(%team_id:nid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 4;
+    $display->content['new-6'] = $pane;
+    $display->panels['right'][4] = 'new-6';
+    $pane = new stdClass;
+    $pane->pid = 'new-7';
+    $pane->panel = 'right';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Search teams',
+      'title' => '',
+      'body' => '<?php echo boincteam_search_panel(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-secondary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 5;
+    $display->content['new-7'] = $pane;
+    $display->panels['right'][5] = 'new-7';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = 'new-1';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['view_team'] = $page;
+
+ return $pages;
+
+}
diff --git a/drupal/sites/all/features/teams/teams.strongarm.inc b/drupal/sites/all/features/teams/teams.strongarm.inc
new file mode 100644
index 0000000..b37d3d6
--- /dev/null
+++ b/drupal/sites/all/features/teams/teams.strongarm.inc
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function teams_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_anonymous_team';
+  $strongarm->value = 0;
+  $export['comment_anonymous_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_controls_team';
+  $strongarm->value = '3';
+  $export['comment_controls_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_mode_team';
+  $strongarm->value = '4';
+  $export['comment_default_mode_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_order_team';
+  $strongarm->value = '1';
+  $export['comment_default_order_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_per_page_team';
+  $strongarm->value = '50';
+  $export['comment_default_per_page_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_form_location_team';
+  $strongarm->value = '0';
+  $export['comment_form_location_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_preview_team';
+  $strongarm->value = '1';
+  $export['comment_preview_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_subject_field_team';
+  $strongarm->value = '1';
+  $export['comment_subject_field_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_team';
+  $strongarm->value = '0';
+  $export['comment_team'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_options_team';
+  $strongarm->value = array(
+    0 => 'status',
+  );
+  $export['node_options_team'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/teams/teams.views_default.inc b/drupal/sites/all/features/teams/teams.views_default.inc
new file mode 100644
index 0000000..9f274a7
--- /dev/null
+++ b/drupal/sites/all/features/teams/teams.views_default.inc
@@ -0,0 +1,4323 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function teams_views_default_views() {
+  $views = array();
+
+  // Exported view: boinc_team_members
+  $view = new view;
+  $view->name = 'boinc_team_members';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'user';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'email_addr' => array(
+      'label' => 'Email Address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'email_addr',
+      'table' => 'user',
+      'field' => 'email_addr',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'country' => array(
+      'label' => 'Country',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'country',
+      'table' => 'user',
+      'field' => 'country',
+      'relationship' => 'none',
+    ),
+    'create_time' => array(
+      'label' => 'Member since',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler = $view->new_display('panel_pane', 'Team member list', 'panel_pane_1');
+  $handler->override_option('fields', array(
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo boincuser_lookup_uid($data->id);
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'account/[phpcode]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'email_addr' => array(
+      'label' => 'Email Address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'email_addr',
+      'table' => 'user',
+      'field' => 'email_addr',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'country' => array(
+      'label' => 'Country',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'country',
+      'table' => 'user',
+      'field' => 'country',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'create_time' => array(
+      'label' => 'Joined',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'teamid' => array(
+      'default_action' => 'empty',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'teamid',
+      'table' => 'user',
+      'field' => 'teamid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'name' => 'name',
+      'email_addr' => 'email_addr',
+      'total_credit' => 'total_credit',
+      'expavg_credit' => 'expavg_credit',
+      'country' => 'country',
+      'create_time' => 'create_time',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'email_addr' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'country' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'create_time' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('pane_title', 'Team member list');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'teamid' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Team ID',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('panel_pane', 'Team member list with email', 'panel_pane_2');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode_2' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo boincuser_lookup_uid($data->id);
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'send_email' => array(
+      'label' => 'Send Email',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'send_email',
+      'table' => 'user',
+      'field' => 'send_email',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'account/[phpcode_2]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'email_addr' => array(
+      'label' => 'Email Address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'email_addr',
+      'table' => 'user',
+      'field' => 'email_addr',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode' => array(
+      'label' => 'Email address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+global $user;
+if ($data->user_send_email OR boincuser_lookup_uid($data->id) == $user->uid) {
+  echo $data->user_email_addr;
+}
+else {
+  echo \'(\' . bts(\'hidden\', array(), NULL, \'boinc:team-emails-are-hidden\') . \')\';
+}
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'country' => array(
+      'label' => 'Country',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'country',
+      'table' => 'user',
+      'field' => 'country',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'create_time' => array(
+      'label' => 'Member since',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  global $user;
+  $team_id = arg(2);
+  $user_id = boincuser_lookup_uid($data->id);
+  if (!boincteam_is_founder($team_id, $user_id) AND ($user_id != $user->uid)) {
+    echo l(bts(\'Remove\', array(), NULL, \'boinc:remove-team-member\'), "community/teams/{$team_id}/edit/members/remove/{$user_id}");
+  }
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'teamid' => array(
+      'default_action' => 'empty',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'teamid',
+      'table' => 'user',
+      'field' => 'teamid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'name' => 'name',
+      'email_addr' => 'email_addr',
+      'total_credit' => 'total_credit',
+      'expavg_credit' => 'expavg_credit',
+      'country' => 'country',
+      'create_time' => 'create_time',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'email_addr' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'country' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'create_time' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('pane_title', 'Team member list with email');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'teamid' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Team ID',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('panel_pane', 'Team email list', 'panel_pane_3');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'email_addr' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '[name] <[email_addr]>',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'email_addr',
+      'table' => 'user',
+      'field' => 'email_addr',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'create_time' => array(
+      'label' => 'Member since',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'teamid' => array(
+      'default_action' => 'empty',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'teamid',
+      'table' => 'user',
+      'field' => 'teamid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'send_email' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'send_email',
+      'table' => 'user',
+      'field' => 'send_email',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('pane_title', 'Team email list');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'teamid' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Team ID',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('panel_pane', 'Team member edit', 'panel_pane_5');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'send_email' => array(
+      'label' => 'Send Email',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'send_email',
+      'table' => 'user',
+      'field' => 'send_email',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'email_addr' => array(
+      'label' => 'Email Address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'email_addr',
+      'table' => 'user',
+      'field' => 'email_addr',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode' => array(
+      'label' => 'Email address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+global $user;
+if ($data->user_send_email OR boincuser_lookup_uid($data->id) == $user->uid) {
+  echo $data->user_email_addr;
+}
+else {
+  echo \'(\' . bts(\'hidden\', array(), NULL, \'boinc:team-emails-are-hidden\') . \')\';
+}
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'create_time' => array(
+      'label' => 'Member since',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  global $user;
+  $team_id = arg(2);
+  $user_id = boincuser_lookup_uid($data->id);
+  if (!boincteam_is_founder($team_id, $user_id) AND ($user_id != $user->uid)) {
+    echo l(bts(\'Remove\', array(), NULL, \'boinc:remove-team-member\'), "community/teams/{$team_id}/edit/members/remove/{$user_id}");
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'teamid' => array(
+      'default_action' => 'empty',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'teamid',
+      'table' => 'user',
+      'field' => 'teamid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'asc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'name' => 'name',
+      'send_email' => 'send_email',
+      'email_addr' => 'email_addr',
+      'phpcode' => 'phpcode',
+      'total_credit' => 'total_credit',
+      'expavg_credit' => 'expavg_credit',
+      'create_time' => 'create_time',
+      'phpcode_1' => 'phpcode_1',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'send_email' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'email_addr' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'create_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'name',
+  ));
+  $handler->override_option('pane_title', 'Edit team members');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'teamid' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Team ID',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('panel_pane', 'Team change founder', 'panel_pane_4');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'send_email' => array(
+      'label' => 'Send Email',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'send_email',
+      'table' => 'user',
+      'field' => 'send_email',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'email_addr' => array(
+      'label' => 'Email Address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'email_addr',
+      'table' => 'user',
+      'field' => 'email_addr',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode' => array(
+      'label' => 'Email address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+global $user;
+if ($data->user_send_email OR boincuser_lookup_uid($data->id) == $user->uid) {
+  echo $data->user_email_addr;
+}
+else {
+  echo \'(\' . bts(\'hidden\', array(), NULL, \'boinc:team-emails-are-hidden\') . \')\';
+}
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'create_time' => array(
+      'label' => 'Member since',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  global $user;
+  $team_id = arg(2);
+  $user_id = boincuser_lookup_uid($data->id);
+  if (!boincteam_is_founder($team_id, $user_id) AND ($user_id != $user->uid)) {
+    echo l(bts(\'Make founder\', array(), NULL, \'boinc:team-make-founder\'), "community/teams/{$team_id}/edit/founder/set/{$user_id}");
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'teamid' => array(
+      'default_action' => 'empty',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'teamid',
+      'table' => 'user',
+      'field' => 'teamid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'asc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'name' => 'name',
+      'send_email' => 'send_email',
+      'email_addr' => 'email_addr',
+      'phpcode' => 'phpcode',
+      'total_credit' => 'total_credit',
+      'expavg_credit' => 'expavg_credit',
+      'create_time' => 'create_time',
+      'phpcode_1' => 'phpcode_1',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'send_email' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'email_addr' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'create_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'name',
+  ));
+  $handler->override_option('pane_title', 'Change team founder');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'teamid' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Team ID',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_teams
+  $view = new view;
+  $view->name = 'boinc_teams';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'team';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'team',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => 'community/teams/[id]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'team',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  $team_id = boincteam_lookup_nid($data->id);
+  echo l($data->team_name, "community/teams/{$team_id}");
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'team',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'team',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'country' => array(
+      'id' => 'country',
+      'table' => 'team',
+      'field' => 'country',
+    ),
+    'nusers' => array(
+      'id' => 'nusers',
+      'table' => 'team',
+      'field' => 'nusers',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'id' => array(
+      'default_action' => 'ignore',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'id',
+      'table' => 'team',
+      'field' => 'id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('header_format', '1');
+  $handler->override_option('header_empty', 1);
+  $handler = $view->new_display('panel_pane', 'Top teams overview pane', 'panel_pane_1');
+  $handler->override_option('use_more', 1);
+  $handler->override_option('use_more_always', 1);
+  $handler->override_option('use_more_text', 'view more');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'rownumber' => 'rownumber',
+      'id' => 'id',
+      'name' => 'name',
+      'phpcode' => 'phpcode',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'country' => 'country',
+      'nusers' => 'nusers',
+    ),
+    'info' => array(
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'country' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'nusers' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('pane_title', '');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 'use_pager',
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 'link_to_view',
+    'more_link' => 'more_link',
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array());
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('items_per_page', 100);
+  $handler->override_option('use_pager', '0');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'rownumber' => 'rownumber',
+      'id' => 'id',
+      'name' => 'name',
+      'phpcode' => 'phpcode',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'country' => 'country',
+      'nusers' => 'nusers',
+    ),
+    'info' => array(
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'country' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'nusers' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('path', 'community/stats/teams');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Top Teams',
+    'description' => '',
+    'weight' => '10',
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('panel_pane', 'Team history', 'panel_pane_2');
+  $handler->override_option('relationships', array(
+    'id' => array(
+      'label' => 'Team History',
+      'required' => 0,
+      'id' => 'id',
+      'table' => 'team',
+      'field' => 'id',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'userid' => array(
+      'label' => 'User (Team History)',
+      'required' => 0,
+      'id' => 'userid',
+      'table' => 'team_delta',
+      'field' => 'userid',
+      'relationship' => 'id',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'userid' => array(
+      'label' => 'User ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'userid',
+      'table' => 'team_delta',
+      'field' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'id',
+    ),
+    'timestamp' => array(
+      'label' => 'Timestamp',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'timestamp',
+      'table' => 'team_delta',
+      'field' => 'timestamp',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'id',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'joining' => array(
+      'label' => 'User joined',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'joining',
+      'table' => 'team_delta',
+      'field' => 'joining',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'id',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'team_delta',
+      'field' => 'total_credit',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'id',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'id' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'id',
+      'table' => 'team',
+      'field' => 'id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'asc',
+    'summary' => '',
+    'columns' => array(
+      'timestamp' => 'timestamp',
+      'total_credit' => 'total_credit',
+      'userid' => 'userid',
+      'joining' => 'joining',
+    ),
+    'info' => array(
+      'timestamp' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'userid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'joining' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'timestamp',
+  ));
+  $handler->override_option('pane_title', 'Team history');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'id' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Id',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('panel_pane', 'Team admins', 'panel_pane_3');
+  $handler->override_option('relationships', array(
+    'userid' => array(
+      'label' => 'User',
+      'required' => 0,
+      'id' => 'userid',
+      'table' => 'team_admin',
+      'field' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'teamid' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'teamid',
+      'table' => 'team_admin',
+      'field' => 'teamid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'userid' => array(
+      'label' => 'User ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'userid',
+      'table' => 'team_admin',
+      'field' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'create_time' => array(
+      'label' => 'Admin since',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'team_admin',
+      'field' => 'create_time',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+$team_id = boincteam_lookup_nid($data->id);
+$user_id = get_drupal_id($data->team_admin_userid);
+echo l(bts(\'Remove\', array(), NULL, \'boinc:remove-team-member\'), "community/teams/{$team_id}/edit/admins/remove/{$user_id}");
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'id' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'id',
+      'table' => 'team',
+      'field' => 'id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'userid' => array(
+      'operator' => 'not empty',
+      'value' => array(
+        'value' => '',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'userid',
+      'table' => 'team_admin',
+      'field' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('empty', 'There are currently no team admins.');
+  $handler->override_option('empty_format', '5');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'asc',
+    'summary' => '',
+    'columns' => array(
+      'teamid' => 'teamid',
+      'userid' => 'userid',
+      'name' => 'name',
+      'create_time' => 'create_time',
+      'phpcode' => 'phpcode',
+    ),
+    'info' => array(
+      'teamid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'userid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'create_time' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'create_time',
+  ));
+  $handler->override_option('pane_title', 'Team admins');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 0,
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 0,
+    'more_link' => 0,
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array(
+    'id' => array(
+      'type' => 'panel',
+      'context' => 'term.description',
+      'context_optional' => 0,
+      'panel' => '0',
+      'fixed' => '',
+      'label' => 'BOINC: Id',
+    ),
+  ));
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('panel_pane', 'Top teams pane', 'panel_pane_4');
+  $handler->override_option('fields', array(
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'team',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => 'community/teams/[id]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'team',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  $team_id = boincteam_lookup_nid($data->id);
+  echo l($data->team_name, "community/teams/{$team_id}");
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'nusers' => array(
+      'id' => 'nusers',
+      'table' => 'team',
+      'field' => 'nusers',
+    ),
+    'country' => array(
+      'id' => 'country',
+      'table' => 'team',
+      'field' => 'country',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'team',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'team',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', 'Top teams');
+  $handler->override_option('use_more', 1);
+  $handler->override_option('use_more_always', 1);
+  $handler->override_option('use_more_text', 'view more');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'rownumber' => 'rownumber',
+      'id' => 'id',
+      'name' => 'name',
+      'phpcode' => 'phpcode',
+      'nusers' => 'nusers',
+      'country' => 'country',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+    ),
+    'info' => array(
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'nusers' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'country' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('pane_title', '');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => 'use_pager',
+    'items_per_page' => 'items_per_page',
+    'offset' => 0,
+    'link_to_view' => 'link_to_view',
+    'more_link' => 'more_link',
+    'path_override' => 0,
+    'title_override' => 'title_override',
+    'exposed_form' => 0,
+    'fields_override' => 0,
+  ));
+  $handler->override_option('argument_input', array());
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/user_account_host_list/user_account_host_list.features.inc b/drupal/sites/all/features/user_account_host_list/user_account_host_list.features.inc
new file mode 100644
index 0000000..752b2b5
--- /dev/null
+++ b/drupal/sites/all/features/user_account_host_list/user_account_host_list.features.inc
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * Implementation of hook_views_api().
+ */
+function user_account_host_list_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/user_account_host_list/user_account_host_list.info b/drupal/sites/all/features/user_account_host_list/user_account_host_list.info
new file mode 100644
index 0000000..64f5751
--- /dev/null
+++ b/drupal/sites/all/features/user_account_host_list/user_account_host_list.info
@@ -0,0 +1,11 @@
+name = "User account host list"
+description = "Host list on the user dashboard"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "boincwork"
+dependencies[] = "views"
+dependencies[] = "views_content"
+dependencies[] = "views_customfield"
+features[views][] = "boinc_account_computers"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/user_account_host_list/user_account_host_list.module b/drupal/sites/all/features/user_account_host_list/user_account_host_list.module
new file mode 100644
index 0000000..fa2070c
--- /dev/null
+++ b/drupal/sites/all/features/user_account_host_list/user_account_host_list.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('user_account_host_list.features.inc');
diff --git a/drupal/sites/all/features/user_account_host_list/user_account_host_list.views_default.inc b/drupal/sites/all/features/user_account_host_list/user_account_host_list.views_default.inc
new file mode 100644
index 0000000..7c4cfb3
--- /dev/null
+++ b/drupal/sites/all/features/user_account_host_list/user_account_host_list.views_default.inc
@@ -0,0 +1,1546 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function user_account_host_list_views_default_views() {
+  $views = array();
+
+  // Exported view: boinc_account_computers
+  $view = new view;
+  $view->name = 'boinc_account_computers';
+  $view->description = 'A list of computers associated with the current account';
+  $view->tag = '';
+  $view->base_table = 'host';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'userid' => array(
+      'id' => 'userid',
+      'table' => 'host',
+      'field' => 'userid',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Computer ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => 'ID: ',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'host',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'phpcode_3' => array(
+      'label' => 'Computer links',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo l(bts(\'Details\', array(), NULL, \'boinc:host-details\'), "host/{$data->id}") . \' | \' . l(bts(\'Tasks\', array(), NULL, \'boinc:host-tasks-link\'), "host/{$data->id}/tasks");
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'host_cpid' => array(
+      'label' => 'Cross project ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'host_cpid',
+      'table' => 'host',
+      'field' => 'host_cpid',
+      'relationship' => 'none',
+    ),
+    'phpcode_4' => array(
+      'label' => 'Cross-project statistics',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'stats_sites\');
+  global $host_sites;
+  $x = "";
+  foreach ($host_sites as $h) {
+    $url = $h[0];
+    $name = $h[1];
+    $img = $h[2];
+    $site_img = theme_image("sites/all/themes/einstein/shared/{$img}", $name, $name);
+    $x .= l($site_img, $url . $data->host_host_cpid, array(\'html\' => TRUE));
+  }
+  echo "Cross-project stats: {$x}";
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_4',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'domain_name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 1,
+        'max_length' => '24',
+        'word_boundary' => 0,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'domain_name',
+      'table' => 'host',
+      'field' => 'domain_name',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'venue' => array(
+      'label' => 'Location',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'venue',
+      'table' => 'host',
+      'field' => 'venue',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Avg. credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'host',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'host',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'serialnum' => array(
+      'label' => 'Serial Number',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'serialnum',
+      'table' => 'host',
+      'field' => 'serialnum',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'BOINC version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo boinc_version($data->host_serialnum);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'p_vendor' => array(
+      'label' => 'CPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_vendor',
+      'table' => 'host',
+      'field' => 'p_vendor',
+      'relationship' => 'none',
+    ),
+    'p_model' => array(
+      'label' => 'CPU model',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_model',
+      'table' => 'host',
+      'field' => 'p_model',
+      'relationship' => 'none',
+    ),
+    'p_ncpus' => array(
+      'label' => 'Number of CPUs',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '([p_ncpus] processors)',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_ncpus',
+      'table' => 'host',
+      'field' => 'p_ncpus',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'GPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo gpu_desc($data->host_serialnum);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'os_name' => array(
+      'label' => 'Operating system',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'os_name',
+      'table' => 'host',
+      'field' => 'os_name',
+      'relationship' => 'none',
+    ),
+    'os_version' => array(
+      'label' => 'Operating system version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'os_version',
+      'table' => 'host',
+      'field' => 'os_version',
+      'relationship' => 'none',
+    ),
+    'rpc_time' => array(
+      'label' => 'Last contact',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 1,
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'relationship' => 'none',
+    ),
+    'phpcode_2' => array(
+      'label' => 'Last contact',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo boincwork_host_last_contact($data->host_rpc_time, $data->id);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'userid' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'current_user',
+      'default_argument' => '',
+      'validate_type' => 'php',
+      'validate_fail' => 'empty',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'userid',
+      'table' => 'host',
+      'field' => 'userid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'team' => 0,
+        'team_forum' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => 'return is_current_boinc_user($argument);
+//return ($argument == $GLOBALS[\'user\']->uid) or ($argument == 60);',
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('empty', '<?php
+  if (!user_is_logged_in()) {
+    drupal_goto(\'user/login\', drupal_get_destination());
+  }
+?>');
+  $handler->override_option('empty_format', '3');
+  $handler->override_option('items_per_page', 20);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'phpcode_3' => 'id',
+      'host_cpid' => 'host_cpid',
+      'phpcode_4' => 'id',
+      'rownumber' => 'rownumber',
+      'domain_name' => 'domain_name',
+      'venue' => 'venue',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'serialnum' => 'serialnum',
+      'phpcode' => 'phpcode',
+      'p_vendor' => 'p_vendor',
+      'p_model' => 'p_vendor',
+      'p_ncpus' => 'p_vendor',
+      'phpcode_1' => 'phpcode_1',
+      'os_name' => 'os_name',
+      'os_version' => 'os_name',
+      'rpc_time' => 'rpc_time',
+      'phpcode_2' => 'phpcode_2',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'phpcode_3' => array(
+        'separator' => '',
+      ),
+      'host_cpid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_4' => array(
+        'separator' => '',
+      ),
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'domain_name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'venue' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'serialnum' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'p_vendor' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'p_model' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'p_ncpus' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+      'os_name' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'os_version' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'rpc_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_2' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'rpc_time',
+  ));
+  $handler = $view->new_display('page', 'All computers', 'page_1');
+  $handler->override_option('path', 'account/computers/all');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => bts('All computers', array(), NULL, 'boinc:account-host-list'),
+    'description' => 'Show all computers associated with the account',
+    'weight' => '1',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Active computers', 'page_2');
+  $handler->override_option('filters', array(
+    'rpc_time' => array(
+      'operator' => '>',
+      'value' => array(
+        'type' => 'offset',
+        'value' => '-30 days',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'account/computers/active');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => bts('Computers active in past 30 days', array(), NULL, 'boinc:account-host-list'),
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'normal',
+    'title' => 'Computers',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('panel_pane', 'Content pane', 'panel_pane_1');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Computer ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'host',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'domain_name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 1,
+        'max_length' => '18',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'domain_name',
+      'table' => 'host',
+      'field' => 'domain_name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Avg credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'host',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'host',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'rpc_time' => array(
+      'label' => 'Last contact',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'custom',
+      'custom_date_format' => 'U',
+      'exclude' => 0,
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'rpc_time' => array(
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', 'Computers');
+  $handler->override_option('items_per_page', 7);
+  $handler->override_option('use_pager', FALSE);
+  $handler->override_option('use_more', 0);
+  $handler->override_option('use_more_always', 1);
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'columns' => array(
+      'id' => 'id',
+      'domain_name' => 'domain_name',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'rpc_time' => 'rpc_time',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'domain_name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'rpc_time' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'rpc_time',
+  ));
+  $handler->override_option('pane_title', '');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => FALSE,
+    'items_per_page' => FALSE,
+    'offset' => FALSE,
+    'link_to_view' => FALSE,
+    'more_link' => FALSE,
+    'path_override' => FALSE,
+    'title_override' => FALSE,
+    'exposed_form' => FALSE,
+    'fields_override' => FALSE,
+  ));
+  $handler->override_option('argument_input', array());
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+  $handler = $view->new_display('block', 'Block', 'block_1');
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Computer ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'host',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'domain_name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 1,
+        'max_length' => '18',
+        'word_boundary' => 0,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'domain_name',
+      'table' => 'host',
+      'field' => 'domain_name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Avg credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'host',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'host',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'rpc_time' => array(
+      'label' => 'Last contact',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'U',
+      'exclude' => 1,
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'rpc_time' => array(
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'userid' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'current_user',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'userid',
+      'table' => 'host',
+      'field' => 'userid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+    ),
+    'venue' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'php',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'ignore',
+      'id' => 'venue',
+      'table' => 'host',
+      'field' => 'venue',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        3 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => 'if (arg(0) == \'account\' AND arg(1) == \'prefs\') {
+  $venue = arg(4);
+  if ($venue == \'default\') $venue = null;
+}
+return $venue;',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'panel' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        3 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_is_member' => 'OG_VIEWS_DO_NOT_VALIDATE_MEMBERSHIP',
+      'validate_argument_group_node_type' => array(
+        'team' => 0,
+      ),
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('items_per_page', 9);
+  $handler->override_option('use_pager', FALSE);
+  $handler->override_option('use_more', 1);
+  $handler->override_option('use_more_always', 1);
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'domain_name' => 'domain_name',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'rpc_time' => 'rpc_time',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'domain_name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'rpc_time' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'rpc_time',
+  ));
+  $handler->override_option('block_description', '');
+  $handler->override_option('block_caching', -1);
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/user_account_project_list/user_account_project_list.features.inc b/drupal/sites/all/features/user_account_project_list/user_account_project_list.features.inc
new file mode 100644
index 0000000..3db4c0c
--- /dev/null
+++ b/drupal/sites/all/features/user_account_project_list/user_account_project_list.features.inc
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function user_account_project_list_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "panels_mini" && $api == "panels_default") {
+    return array("version" => 1);
+  }
+}
diff --git a/drupal/sites/all/features/user_account_project_list/user_account_project_list.info b/drupal/sites/all/features/user_account_project_list/user_account_project_list.info
new file mode 100644
index 0000000..375b893
--- /dev/null
+++ b/drupal/sites/all/features/user_account_project_list/user_account_project_list.info
@@ -0,0 +1,10 @@
+name = "User account project list"
+description = "List user's BOINC projects on the user dashboard"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "boincuser"
+dependencies[] = "ctools"
+dependencies[] = "panels_mini"
+features[ctools][] = "panels_mini:panels_default:1"
+features[panels_mini][] = "user_project_list"
diff --git a/drupal/sites/all/features/user_account_project_list/user_account_project_list.module b/drupal/sites/all/features/user_account_project_list/user_account_project_list.module
new file mode 100644
index 0000000..1acabca
--- /dev/null
+++ b/drupal/sites/all/features/user_account_project_list/user_account_project_list.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('user_account_project_list.features.inc');
diff --git a/drupal/sites/all/features/user_account_project_list/user_account_project_list.panels_default.inc b/drupal/sites/all/features/user_account_project_list/user_account_project_list.panels_default.inc
new file mode 100644
index 0000000..3586e22
--- /dev/null
+++ b/drupal/sites/all/features/user_account_project_list/user_account_project_list.panels_default.inc
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * Implementation of hook_default_panels_mini().
+ */
+function user_account_project_list_default_panels_mini() {
+  $export = array();
+
+  $mini = new stdClass;
+  $mini->disabled = FALSE; /* Edit this to true to make a default mini disabled initially */
+  $mini->api_version = 1;
+  $mini->name = 'user_project_list';
+  $mini->category = 'BOINC';
+  $mini->admin_title = 'User project list';
+  $mini->admin_description = 'A list of all BOINC projects in which a user is participating';
+  $mini->requiredcontexts = array();
+  $mini->contexts = array();
+  $mini->relationships = array();
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'panels_mini';
+  $display->storage_id = 'user_project_list';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Dashboard project table',
+      'title' => bts('Projects', array(), NULL, 'boinc:account-dashboard'),
+      'body' => '<?php echo boincuser_get_projects_table(); ?>',
+      'format' => '3',
+      'substitute' => TRUE,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+  $display->hide_title = PANELS_TITLE_FIXED;
+  $display->title_pane = 'new-1';
+  $mini->display = $display;
+  $export['user_project_list'] = $mini;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/user_preferences/user_preferences.features.inc b/drupal/sites/all/features/user_preferences/user_preferences.features.inc
new file mode 100644
index 0000000..9e2e8ef
--- /dev/null
+++ b/drupal/sites/all/features/user_preferences/user_preferences.features.inc
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * Implementation of hook_views_api().
+ */
+function user_preferences_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/user_preferences/user_preferences.features.menu_links.inc b/drupal/sites/all/features/user_preferences/user_preferences.features.menu_links.inc
new file mode 100644
index 0000000..cae1718
--- /dev/null
+++ b/drupal/sites/all/features/user_preferences/user_preferences.features.menu_links.inc
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * Implementation of hook_menu_default_menu_links().
+ */
+function user_preferences_menu_default_menu_links() {
+  $menu_links = array();
+
+  // Exported menu link: primary-links:account/prefs
+  $menu_links['primary-links:account/prefs'] = array(
+    'menu_name' => 'primary-links',
+    'link_path' => 'account/prefs',
+    'router_path' => 'account/prefs',
+    'link_title' => 'Preferences',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '0',
+    'has_children' => '0',
+    'expanded' => '0',
+    'weight' => '-47',
+    'parent_path' => 'dashboard',
+  );
+  // Translatables
+  // Use bts() function to translate additional strings.
+  bts('Preferences', array(), NULL, 'boinc:menu-link');
+  bts('Community', array(), NULL, 'boinc:menu-link');
+  bts('Privacy', array(), NULL, 'boinc:menu-link');
+  bts('Subscriptions', array(), NULL, 'boinc:menu-link:-1:ignoreoverwrite');
+
+  return $menu_links;
+}
diff --git a/drupal/sites/all/features/user_preferences/user_preferences.info b/drupal/sites/all/features/user_preferences/user_preferences.info
new file mode 100644
index 0000000..ebe4053
--- /dev/null
+++ b/drupal/sites/all/features/user_preferences/user_preferences.info
@@ -0,0 +1,17 @@
+name = "User preferences"
+description = "Allow users to set preferences for computing, privacy, and community features"
+core = "6.x"
+package = "Features"
+dependencies[] = "boincuser"
+dependencies[] = "boincwork"
+dependencies[] = "comment"
+dependencies[] = "features"
+dependencies[] = "flag"
+dependencies[] = "menu"
+dependencies[] = "taxonomy"
+dependencies[] = "views"
+dependencies[] = "views_content"
+dependencies[] = "views_customfield"
+features[menu_links][] = "primary-links:account/prefs"
+features[views][] = "subscriptions"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/user_preferences/user_preferences.module b/drupal/sites/all/features/user_preferences/user_preferences.module
new file mode 100644
index 0000000..24905cb
--- /dev/null
+++ b/drupal/sites/all/features/user_preferences/user_preferences.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('user_preferences.features.inc');
diff --git a/drupal/sites/all/features/user_preferences/user_preferences.views_default.inc b/drupal/sites/all/features/user_preferences/user_preferences.views_default.inc
new file mode 100644
index 0000000..a807c7d
--- /dev/null
+++ b/drupal/sites/all/features/user_preferences/user_preferences.views_default.inc
@@ -0,0 +1,915 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function user_preferences_views_default_views() {
+  $views = array();
+
+  // Exported view: subscriptions
+  $view = new view;
+  $view->name = 'subscriptions';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'node';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'flag_content_rel' => array(
+      'label' => 'Subscription flag',
+      'required' => 1,
+      'flag' => 'subscriptions',
+      'user_scope' => 'current',
+      'id' => 'flag_content_rel',
+      'table' => 'node',
+      'field' => 'flag_content_rel',
+      'relationship' => 'none',
+    ),
+    'flag_count_rel' => array(
+      'label' => 'counter',
+      'required' => 1,
+      'flag' => 'subscriptions',
+      'id' => 'flag_count_rel',
+      'table' => 'node',
+      'field' => 'flag_count_rel',
+      'relationship' => 'none',
+    ),
+    'vid' => array(
+      'id' => 'vid',
+      'table' => 'term_node',
+      'field' => 'vid',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => 'Page',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'exclude' => 1,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+    ),
+    'type' => array(
+      'label' => 'Type',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'machine_name' => 0,
+      'exclude' => 1,
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'relationship' => 'none',
+    ),
+    'timestamp' => array(
+      'label' => 'Has new content',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'comments' => 1,
+      'exclude' => 1,
+      'id' => 'timestamp',
+      'table' => 'history_user',
+      'field' => 'timestamp',
+      'relationship' => 'none',
+    ),
+    'new_comments' => array(
+      'label' => 'New comments',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'link_to_comment' => 1,
+      'exclude' => 1,
+      'id' => 'new_comments',
+      'table' => 'node',
+      'field' => 'new_comments',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Term',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_taxonomy' => 0,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'term_data',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'name_1' => array(
+      'label' => 'Vocabulary name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name_1',
+      'table' => 'vocabulary',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Page',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+$updated = ($data->node_comment_statistics_last_updated > $data->history_user_timestamp) ? TRUE : FALSE;
+$url = "node/{$data->nid}";
+if ($data->node_new_comments) {
+  $cid = boincuser_get_first_unread_comment_id($data->nid);
+  $url = "goto/comment/{$cid}";
+}
+print \'<span class="title \' . ($updated ? \'updated\' : \'\') . \'">\';
+print l($data->node_title, $url);
+print \'</span>\';
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+if ($data->node_type == \'forum\') {
+  print $data->vocabulary_name . \' › \' . $data->term_data_name;
+}
+elseif ($data->node_type == \'news\') {
+  print bts(\'News\', array(), NULL, \'boinc:menu-link\');
+}
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'last_updated' => array(
+      'label' => 'Updated',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'last_updated',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_updated',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'ops' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_type' => '',
+      'exclude' => 0,
+      'id' => 'ops',
+      'table' => 'flag_content',
+      'field' => 'ops',
+      'relationship' => 'flag_content_rel',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'ops' => 'ops',
+      'title' => 'title',
+      'type' => 'type',
+      'last_updated' => 'last_updated',
+    ),
+    'info' => array(
+      'ops' => array(
+        'separator' => '',
+      ),
+      'title' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'type' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'last_updated' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'last_updated',
+  ));
+  $handler->override_option('path', 'account/prefs/subscriptions');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => bts('Subscriptions', array(), NULL, 'boinc:account-dashboard'),
+    'description' => '',
+    'weight' => '20',
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('panel_pane', 'Content pane', 'panel_pane_1');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => 'Page',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 1,
+      'exclude' => 1,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'type' => array(
+      'label' => 'Type',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'machine_name' => 0,
+      'exclude' => 1,
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'timestamp' => array(
+      'label' => 'Has new content',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'comments' => 1,
+      'exclude' => 1,
+      'id' => 'timestamp',
+      'table' => 'history_user',
+      'field' => 'timestamp',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'new_comments' => array(
+      'label' => 'New comments',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'link_to_comment' => 1,
+      'exclude' => 1,
+      'id' => 'new_comments',
+      'table' => 'node',
+      'field' => 'new_comments',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'name' => array(
+      'label' => 'Term',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_taxonomy' => 0,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'term_data',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name_1' => array(
+      'label' => 'Vocabulary name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name_1',
+      'table' => 'vocabulary',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Page',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+$updated = ($data->node_comment_statistics_last_updated > $data->history_user_timestamp) ? TRUE : FALSE;
+$url = "node/{$data->nid}";
+if ($data->node_new_comments) {
+  $cid = boincuser_get_first_unread_comment_id($data->nid);
+  $url = "goto/comment/{$cid}";
+}
+print \'<span class="title \' . ($updated ? \'updated\' : \'\') . \'">\';
+print l($data->node_title, $url);
+print \'</span>\';
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+if ($data->node_type == \'forum\') {
+  print $data->vocabulary_name . \' › \' . $data->term_data_name;
+}
+elseif ($data->node_type == \'news\') {
+  print bts(\'News\', array(), NULL, \'boinc:menu-link\');
+}
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'last_updated' => array(
+      'label' => bts('Updated', array(), NULL, 'boinc:account-dashboard'),
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'last_updated',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_updated',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'ops' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_type' => '',
+      'exclude' => 1,
+      'id' => 'ops',
+      'table' => 'flag_content',
+      'field' => 'ops',
+      'relationship' => 'flag_content_rel',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('title', 'Subscriptions');
+  $handler->override_option('items_per_page', 5);
+  $handler->override_option('use_pager', '0');
+  $handler->override_option('use_more', 1);
+  $handler->override_option('use_more_always', 1);
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'title' => 'title',
+      'type' => 'type',
+      'ops' => 'ops',
+      'last_updated' => 'last_updated',
+    ),
+    'info' => array(
+      'title' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'type' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'ops' => array(
+        'separator' => '',
+      ),
+      'last_updated' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'last_updated',
+  ));
+  $handler->override_option('pane_title', '');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => FALSE,
+    'items_per_page' => FALSE,
+    'offset' => FALSE,
+    'link_to_view' => FALSE,
+    'more_link' => FALSE,
+    'path_override' => FALSE,
+    'title_override' => FALSE,
+    'exposed_form' => FALSE,
+    'fields_override' => FALSE,
+  ));
+  $handler->override_option('argument_input', array());
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.context.inc b/drupal/sites/all/features/user_profiles/user_profiles.context.inc
new file mode 100644
index 0000000..0bae798
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.context.inc
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * Implementation of hook_context_default_contexts().
+ */
+function user_profiles_context_default_contexts() {
+  $export = array();
+
+  $context = new stdClass;
+  $context->disabled = FALSE; /* Edit this to true to make a default context disabled initially */
+  $context->api_version = 3;
+  $context->name = 'account--profile--form';
+  $context->description = 'Set the account context for the profile form';
+  $context->tag = '';
+  $context->conditions = array(
+    'path' => array(
+      'values' => array(
+        'account/info/edit/*' => 'account/info/edit/*',
+      ),
+    ),
+  );
+  $context->reactions = array(
+    'menu' => 'user/me/edit',
+  );
+  $context->condition_mode = 0;
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Set the account context for the profile form');
+  $export['account--profile--form'] = $context;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.features.content.inc b/drupal/sites/all/features/user_profiles/user_profiles.features.content.inc
new file mode 100644
index 0000000..827581d
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.features.content.inc
@@ -0,0 +1,717 @@
+<?php
+
+/**
+ * Implementation of hook_content_default_fields().
+ */
+function user_profiles_content_default_fields() {
+  $fields = array();
+
+  // Exported field: field_background
+  $fields['profile-field_background'] = array(
+    'field_name' => 'field_background',
+    'type_name' => 'profile',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '1',
+    'max_length' => '',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => '10',
+      'size' => 60,
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_background][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => bts('Your personal background', array(), NULL, 'boinc:account-profile-edit'),
+      'weight' => '3',
+      'description' => bts('Tell us about yourself. You could tell us where you\'re from, your age, occupation, hobbies, or anything else about yourself.', array(), NULL, 'boinc:account-profile-edit'),
+      'type' => 'text_textarea',
+      'module' => 'text',
+    ),
+  );
+
+  // Exported field: field_country
+  $fields['profile-field_country'] = array(
+    'field_name' => 'field_country',
+    'type_name' => 'profile',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '0',
+    'max_length' => '',
+    'allowed_values' => 'None|None
+International|International
+Afghanistan|Afghanistan
+Albania|Albania
+Algeria|Algeria
+American Samoa|American Samoa
+Andorra|Andorra
+Angola|Angola
+Anguilla|Anguilla
+Antarctica|Antarctica
+Antigua and Barbuda|Antigua and Barbuda
+Argentina|Argentina
+Armenia|Armenia
+Aruba|Aruba
+Australia|Australia
+Austria|Austria
+Azerbaijan|Azerbaijan
+Bahamas, The|Bahamas, The
+Bahrain|Bahrain
+Bangladesh|Bangladesh
+Barbados|Barbados
+Belarus|Belarus
+Belgium|Belgium
+Belize|Belize
+Benin|Benin
+Bermuda|Bermuda
+Bhutan|Bhutan
+Bolivia|Bolivia
+Bosnia and Herzegovina|Bosnia and Herzegovina
+Botswana|Botswana
+Brazil|Brazil
+British Virgin Islands|British Virgin Islands
+Brunei|Brunei
+Bulgaria|Bulgaria
+Burkina Faso|Burkina Faso
+Burma|Burma
+Burundi|Burundi
+Cambodia|Cambodia
+Cameroon|Cameroon
+Canada|Canada
+Cape Verde|Cape Verde
+Cayman Islands|Cayman Islands
+Central African Republic|Central African Republic
+Chad|Chad
+Channel Islands|Channel Islands
+Chile|Chile
+China|China
+Colombia|Colombia
+Comoros|Comoros
+Congo, Democratic Republic of the|Congo, Democratic Republic of the
+Congo, Republic of the|Congo, Republic of the
+Cook Islands|Cook Islands
+Costa Rica|Costa Rica
+Cote d\'Ivoire|Cote d\'Ivoire
+Croatia|Croatia
+Cuba|Cuba
+Cyprus|Cyprus
+Czech Republic|Czech Republic
+Denmark|Denmark
+Djibouti|Djibouti
+Dominica|Dominica
+Dominican Republic|Dominican Republic
+East Timor|East Timor
+Ecuador|Ecuador
+Egypt|Egypt
+El Salvador|El Salvador
+Equatorial Guinea|Equatorial Guinea
+Eritrea|Eritrea
+Estonia|Estonia
+Ethiopia|Ethiopia
+Falkland Islands|Falkland Islands
+Faroe Islands|Faroe Islands
+Fiji|Fiji
+Finland|Finland
+France|France
+French Guiana|French Guiana
+French Polynesia|French Polynesia
+Gabon|Gabon
+Gambia, The|Gambia, The
+Gaza Strip|Gaza Strip
+Georgia|Georgia
+Germany|Germany
+Ghana|Ghana
+Gibraltar|Gibraltar
+Greece|Greece
+Greenland|Greenland
+Grenada|Grenada
+Guadeloupe|Guadeloupe
+Guam|Guam
+Guatemala|Guatemala
+Guinea|Guinea
+Guinea-Bissau|Guinea-Bissau
+Guyana|Guyana
+Haiti|Haiti
+Holy See (Vatican City)|Holy See (Vatican City)
+Honduras|Honduras
+Hong Kong|Hong Kong
+Hungary|Hungary
+Iceland|Iceland
+India|India
+Indonesia|Indonesia
+Iran|Iran
+Iraq|Iraq
+Ireland|Ireland
+Isle of Man|Isle of Man
+Israel|Israel
+Italy|Italy
+Jamaica|Jamaica
+Japan|Japan
+Jordan|Jordan
+Kazakhstan|Kazakhstan
+Korea, North|Korea, North
+Korea, South|Korea, South
+Kenya|Kenya
+Kiribati|Kiribati
+Kuwait|Kuwait
+Kyrgyzstan|Kyrgyzstan
+Laos|Laos
+Latvia|Latvia
+Lebanon|Lebanon
+Lesotho|Lesotho
+Liberia|Liberia
+Libya|Libya
+Liechtenstein|Liechtenstein
+Lithuania|Lithuania
+Luxembourg|Luxembourg
+Macau|Macau
+Macedonia|Macedonia
+Madagascar|Madagascar
+Malawi|Malawi
+Malaysia|Malaysia
+Maldives|Maldives
+Mali|Mali
+Malta|Malta
+Marshall Islands|Marshall Islands
+Martinique|Martinique
+Mauritania|Mauritania
+Mauritius|Mauritius
+Mexico|Mexico
+Micronesia|Micronesia
+Moldova|Moldova
+Monaco|Monaco
+Mongolia|Mongolia
+Montenegro|Montenegro
+Montserrat|Montserrat
+Morocco|Morocco
+Mozambique|Mozambique
+Namibia|Namibia
+Nauru|Nauru
+Nepal|Nepal
+Netherlands|Netherlands
+Netherlands Antilles|Netherlands Antilles
+New Caledonia|New Caledonia
+New Zealand|New Zealand
+Nicaragua|Nicaragua
+Niger|Niger
+Nigeria|Nigeria
+Niue|Niue
+Northern Mariana Islands|Northern Mariana Islands
+Norway|Norway
+Oman|Oman
+Pakistan|Pakistan
+Palau|Palau
+Panama|Panama
+Papua New Guinea|Papua New Guinea
+Paraguay|Paraguay
+Peru|Peru
+Philippines|Philippines
+Pitcairn Islands|Pitcairn Islands
+Poland|Poland
+Portugal|Portugal
+Puerto Rico|Puerto Rico
+Qatar|Qatar
+Reunion|Reunion
+Romania|Romania
+Russia|Russia
+Rwanda|Rwanda
+Saint Kitts and Nevis|Saint Kitts and Nevis
+Saint Lucia|Saint Lucia
+Saint Pierre and Miquelon|Saint Pierre and Miquelon
+Saint Vincent and the Grenadines|Saint Vincent and the Grenadines
+Samoa|Samoa
+San Marino|San Marino
+Sao Tome and Principe|Sao Tome and Principe
+Saudi Arabia|Saudi Arabia
+Senegal|Senegal
+Serbia|Serbia
+Seychelles|Seychelles
+Sierra Leone|Sierra Leone
+Singapore|Singapore
+Slovakia|Slovakia
+Slovenia|Slovenia
+Solomon Islands|Solomon Islands
+Somalia|Somalia
+South Africa|South Africa
+Spain|Spain
+Sri Lanka|Sri Lanka
+Sudan|Sudan
+Suriname|Suriname
+Swaziland|Swaziland
+Sweden|Sweden
+Switzerland|Switzerland
+Syria|Syria
+Taiwan|Taiwan
+Tajikistan|Tajikistan
+Tanzania|Tanzania
+Thailand|Thailand
+Togo|Togo
+Tokelau|Tokelau
+Tonga|Tonga
+Trinidad and Tobago|Trinidad and Tobago
+Tunisia|Tunisia
+Turkey|Turkey
+Turkmenistan|Turkmenistan
+Turks and Caicos Islands|Turks and Caicos Islands
+Tuvalu|Tuvalu
+Uganda|Uganda
+Ukraine|Ukraine
+United Arab Emirates|United Arab Emirates
+United Kingdom|United Kingdom
+United States|United States
+Uruguay|Uruguay
+Uzbekistan|Uzbekistan
+Vanuatu|Vanuatu
+Venezuela|Venezuela
+Vietnam|Vietnam
+Virgin Islands|Virgin Islands
+Wallis and Futuna|Wallis and Futuna
+West Bank|West Bank
+Western Sahara|Western Sahara
+Yemen|Yemen
+Zambia|Zambia
+Zimbabwe|Zimbabwe',
+    'allowed_values_php' => 'return boinccore_get_country_list();',
+    'widget' => array(
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => 'Country',
+      'weight' => '5',
+      'description' => '',
+      'type' => 'optionwidgets_select',
+      'module' => 'optionwidgets',
+    ),
+  );
+
+  // Exported field: field_image
+  $fields['profile-field_image'] = array(
+    'field_name' => 'field_image',
+    'type_name' => 'profile',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'filefield',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'filefield',
+    'active' => '1',
+    'list_field' => '0',
+    'list_default' => 1,
+    'description_field' => '0',
+    'widget' => array(
+      'file_extensions' => 'png gif jpg jpeg',
+      'file_path' => 'profiles',
+      'progress_indicator' => 'bar',
+      'max_filesize_per_file' => '512K',
+      'max_filesize_per_node' => '',
+      'max_resolution' => '300x300',
+      'min_resolution' => '50x50',
+      'alt' => '',
+      'custom_alt' => 0,
+      'title' => '',
+      'custom_title' => 0,
+      'title_type' => 'textfield',
+      'default_image' => array(
+        'filename' => 'default-avatar.png',
+        'filepath' => 'sites/default/files/imagefield_default_images/default-avatar.png',
+        'filemime' => 'image/png',
+        'source' => 'default_image_upload',
+        'destination' => 'sites/default/files/imagefield_default_images/default-avatar.png',
+        'filesize' => 9733,
+        'uid' => '1',
+        'status' => 1,
+        'timestamp' => 1347855344,
+        'fid' => '1',
+      ),
+      'use_default_image' => 1,
+      'label' => 'Avatar',
+      'weight' => '7',
+      'description' => '',
+      'type' => 'imagefield_widget',
+      'module' => 'imagefield',
+    ),
+  );
+
+  // Exported field: field_opinions
+  $fields['profile-field_opinions'] = array(
+    'field_name' => 'field_opinions',
+    'type_name' => 'profile',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '1',
+    'max_length' => '',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => '10',
+      'size' => 60,
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_opinions][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => bts('Your opinions about this project', array(), NULL, 'boinc:account-profile-edit'),
+      'weight' => '4',
+      'description' => bts('Tell us your thoughts about @this_project
+   1. Why do you run @this_project?
+   2. What are your views about the project?
+   3. Any suggestions?',
+      array('@this_project' => variable_get('site_name','')), NULL, 'boinc:account-profile-edit'),
+      'type' => 'text_textarea',
+      'module' => 'text',
+    ),
+  );
+
+  // Exported field: field_profile_image
+  $fields['profile-field_profile_image'] = array(
+    'field_name' => 'field_profile_image',
+    'type_name' => 'profile',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'image_plain',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'filefield',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'filefield',
+    'active' => '1',
+    'list_field' => '0',
+    'list_default' => 1,
+    'description_field' => '0',
+    'widget' => array(
+      'file_extensions' => 'png gif jpg jpeg',
+      'file_path' => 'profiles',
+      'progress_indicator' => 'bar',
+      'max_filesize_per_file' => '512K',
+      'max_filesize_per_node' => '',
+      'max_resolution' => '640x480',
+      'min_resolution' => '100x100',
+      'alt' => '',
+      'custom_alt' => 0,
+      'title' => '',
+      'custom_title' => 0,
+      'title_type' => 'textfield',
+      'default_image' => array(
+        'filename' => 'default-user.png',
+        'filepath' => 'sites/default/files/imagefield_default_images/default-user.png',
+        'filemime' => 'image/png',
+        'source' => 'default_image_upload',
+        'destination' => 'sites/default/files/imagefield_default_images/default-user.png',
+        'filesize' => 9774,
+        'uid' => '1',
+        'status' => 1,
+        'timestamp' => 1362770990,
+        'fid' => '5',
+      ),
+      'use_default_image' => 1,
+      'label' => 'Profile image',
+      'weight' => '8',
+      'description' => '',
+      'type' => 'imagefield_widget',
+      'module' => 'imagefield',
+    ),
+  );
+
+  // Exported field: field_url
+  $fields['profile-field_url'] = array(
+    'field_name' => 'field_url',
+    'type_name' => 'profile',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '0',
+    'max_length' => '',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => 5,
+      'size' => '42',
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_url][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => 'Website URL',
+      'weight' => '9',
+      'description' => '',
+      'type' => 'text_textfield',
+      'module' => 'text',
+    ),
+  );
+
+  // Exported field: field_zip
+  $fields['profile-field_zip'] = array(
+    'field_name' => 'field_zip',
+    'type_name' => 'profile',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '0',
+    'max_length' => '10',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => 5,
+      'size' => '10',
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_zip][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => bts('Postal code', array(), NULL, 'boinc:account-profile-edit'),
+      'weight' => '6',
+      'description' => '',
+      'type' => 'text_textfield',
+      'module' => 'text',
+    ),
+  );
+
+  // Translatables
+  // Use bts() function to translate additional strings.
+  bts('Avatar', array(), NULL, 'boinc:account-profile-edit');
+  bts('Country', array(), NULL, 'boinc:country-of-origin');
+  bts('Profile image', array(), NULL, 'boinc:account-profile-edit');
+  bts('Website URL', array(), NULL, 'boinc:account-profile-edit');
+  bts('Your opinions about this project', array(), NULL, 'boinc:account-profile-edit');
+  bts('Your personal background', array(), NULL, 'boinc:account-profile-edit');
+  bts('Postal code', array(), NULL, 'boinc:account-profile-edit');
+
+  return $fields;
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.features.inc b/drupal/sites/all/features/user_profiles/user_profiles.features.inc
new file mode 100644
index 0000000..8008165
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.features.inc
@@ -0,0 +1,679 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function user_profiles_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "context" && $api == "context") {
+    return array("version" => 3);
+  }
+  elseif ($module == "panels_mini" && $api == "panels_default") {
+    return array("version" => 1);
+  }
+  elseif ($module == "strongarm" && $api == "strongarm") {
+    return array("version" => 1);
+  }
+}
+
+/**
+ * Implementation of hook_node_info().
+ */
+function user_profiles_node_info() {
+  $items = array(
+    'profile' => array(
+      'name' => t('Profile'),
+      'module' => 'features',
+      'description' => t('A user profile built as content.'),
+      'has_title' => '1',
+      'title_label' => t('Title'),
+      'has_body' => '1',
+      'body_label' => t('Body'),
+      'min_word_count' => '0',
+      'help' => '',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_rules_defaults().
+ */
+function user_profiles_rules_defaults() {
+  return array(
+    'rules' => array(
+      'rules_new_user_profile_has_been_created' => array(
+        '#type' => 'rule',
+        '#set' => 'event_node_insert',
+        '#label' => 'New user profile has been created',
+        '#active' => 1,
+        '#weight' => '0',
+        '#categories' => array(
+          '0' => 'moderation queue',
+          'user_profiles' => 'user_profiles',
+        ),
+        '#status' => 'default',
+        '#conditions' => array(
+          '0' => array(
+            '#weight' => 0,
+            '#info' => array(
+              'label' => 'Created content is Profile',
+              'arguments' => array(
+                'node' => array(
+                  'type' => 'node',
+                  'label' => 'Content',
+                ),
+              ),
+              'module' => 'Node',
+            ),
+            '#name' => 'rules_condition_content_is_type',
+            '#settings' => array(
+              'type' => array(
+                'profile' => 'profile',
+              ),
+              '#argument map' => array(
+                'node' => 'node',
+              ),
+            ),
+            '#type' => 'condition',
+          ),
+          '1' => array(
+            '#settings' => array(
+              'roles' => array(
+                '0' => 1271379760,
+              ),
+              'operation' => 'OR',
+              '#argument map' => array(
+                'user' => 'user',
+              ),
+            ),
+            '#type' => 'condition',
+            '#name' => 'rules_condition_user_hasrole',
+            '#info' => array(
+              'label' => 'User has role(s)',
+              'arguments' => array(
+                'user' => array(
+                  'type' => 'user',
+                  'label' => 'User',
+                ),
+              ),
+              'module' => 'User',
+            ),
+            '#weight' => 0,
+            '#negate' => 1,
+          ),
+          '2' => array(
+            '#type' => 'OR',
+            '0' => array(
+              '#info' => array(
+                'label' => 'Created content\'s field \'field_background\' has value',
+                'arguments' => array(
+                  'node' => array(
+                    'type' => 'node',
+                    'label' => 'Content',
+                  ),
+                ),
+                'eval input' => array(
+                  '0' => 'code',
+                  '1' => 'value|0|value',
+                  '2' => 'value|0|format',
+                ),
+                'module' => 'CCK',
+              ),
+              '#negate' => 1,
+              '#name' => 'content_rules_field_has_value',
+              '#settings' => array(
+                'field_name' => 'field_background',
+                '#argument map' => array(
+                  'node' => 'node',
+                ),
+                'value' => array(
+                  '0' => array(
+                    'value' => '',
+                    'format' => '4',
+                  ),
+                ),
+                'code' => 'return array(
+  0 => array(\'value\' => NULL, \'format\' => NULL),
+);',
+                'vars' => array(),
+                '#eval input' => array(
+                  'token_rules_input_evaluator' => array(
+                    'code' => array(
+                      '0' => ':global',
+                    ),
+                    'value|0|value' => array(
+                      '0' => ':global',
+                    ),
+                    'value|0|format' => array(
+                      '0' => ':global',
+                    ),
+                  ),
+                ),
+              ),
+              '#weight' => 0,
+              '#type' => 'condition',
+            ),
+            '#weight' => 0,
+            '1' => array(
+              '#negate' => 1,
+              '#weight' => 0,
+              '#info' => array(
+                'label' => 'Created content\'s field \'field_opinions\' has value',
+                'arguments' => array(
+                  'node' => array(
+                    'type' => 'node',
+                    'label' => 'Content',
+                  ),
+                ),
+                'eval input' => array(
+                  '0' => 'code',
+                  '1' => 'value|0|value',
+                  '2' => 'value|0|format',
+                ),
+                'module' => 'CCK',
+              ),
+              '#name' => 'content_rules_field_has_value',
+              '#settings' => array(
+                'field_name' => 'field_opinions',
+                '#argument map' => array(
+                  'node' => 'node',
+                ),
+                'value' => array(
+                  '0' => array(
+                    'value' => '',
+                    'format' => '4',
+                  ),
+                ),
+                'code' => 'return array(
+  0 => array(\'value\' => NULL, \'format\' => NULL),
+);',
+                'vars' => array(),
+                '#eval input' => array(
+                  'token_rules_input_evaluator' => array(
+                    'code' => array(
+                      '0' => ':global',
+                    ),
+                    'value|0|value' => array(
+                      '0' => ':global',
+                    ),
+                    'value|0|format' => array(
+                      '0' => ':global',
+                    ),
+                  ),
+                ),
+              ),
+              '#type' => 'condition',
+            ),
+            '2' => array(
+              '#type' => 'condition',
+              '#settings' => array(
+                'field_name' => 'field_url',
+                '#argument map' => array(
+                  'node' => 'node',
+                ),
+                'value' => array(
+                  '0' => array(
+                    'value' => '',
+                  ),
+                ),
+                'code' => 'return array(
+  0 => array(\'value\' => NULL),
+);',
+                'vars' => array(),
+                '#eval input' => array(
+                  'token_rules_input_evaluator' => array(
+                    'code' => array(
+                      '0' => ':global',
+                    ),
+                    'value|0|value' => array(
+                      '0' => ':global',
+                    ),
+                  ),
+                ),
+              ),
+              '#name' => 'content_rules_field_has_value',
+              '#negate' => 1,
+              '#info' => array(
+                'label' => 'Created content\'s field \'field_url\' has value',
+                'arguments' => array(
+                  'node' => array(
+                    'type' => 'node',
+                    'label' => 'Content',
+                  ),
+                ),
+                'eval input' => array(
+                  '0' => 'code',
+                  '1' => 'value|0|value',
+                ),
+                'module' => 'CCK',
+              ),
+              '#weight' => 0,
+            ),
+            '5' => array(
+              '#type' => 'condition',
+              '#settings' => array(
+                'boolean' => '<?php echo ($node->field_image[0][\'fid\'] ? 1 : 0); ?>',
+                '#eval input' => array(
+                  'token_rules_input_evaluator' => array(
+                    'boolean' => array(
+                      '0' => ':global',
+                    ),
+                  ),
+                  'rules_input_evaluator_php' => array(
+                    'boolean' => array(
+                      '0' => 'node',
+                    ),
+                  ),
+                ),
+              ),
+              '#name' => 'rules_condition_check_boolean',
+              '#info' => array(
+                'label' => 'New profile has avatar',
+                'label callback' => FALSE,
+                'arguments' => array(
+                  'boolean' => array(
+                    'type' => 'boolean',
+                    'label' => 'Truth value',
+                  ),
+                ),
+                'module' => 'Rules',
+              ),
+              '#weight' => 0,
+            ),
+            '6' => array(
+              '#weight' => 0,
+              '#info' => array(
+                'label' => 'New profile has profile image',
+                'label callback' => FALSE,
+                'arguments' => array(
+                  'boolean' => array(
+                    'type' => 'boolean',
+                    'label' => 'Truth value',
+                  ),
+                ),
+                'module' => 'Rules',
+              ),
+              '#name' => 'rules_condition_check_boolean',
+              '#settings' => array(
+                'boolean' => '<?php echo ($node->field_profile_image[0][\'fid\'] ? 1 : 0); ?>',
+                '#eval input' => array(
+                  'token_rules_input_evaluator' => array(
+                    'boolean' => array(
+                      '0' => ':global',
+                    ),
+                  ),
+                  'rules_input_evaluator_php' => array(
+                    'boolean' => array(
+                      '0' => 'node',
+                    ),
+                  ),
+                ),
+              ),
+              '#type' => 'condition',
+            ),
+          ),
+        ),
+        '#actions' => array(
+          '1' => array(
+            '#weight' => 0,
+            '#info' => array(
+              'label' => 'Mark content for moderation',
+              'arguments' => array(
+                'node' => array(
+                  'type' => 'node',
+                  'label' => 'Content',
+                ),
+              ),
+              'module' => 'BOINC core',
+            ),
+            '#name' => 'boinccore_rules_action_mark_content_for_moderation',
+            '#settings' => array(
+              '#argument map' => array(
+                'node' => 'node',
+              ),
+            ),
+            '#type' => 'action',
+          ),
+        ),
+        '#version' => 6003,
+      ),
+      'rules_user_profile_has_been_modified' => array(
+        '#type' => 'rule',
+        '#set' => 'event_node_update',
+        '#label' => 'User profile has been modified',
+        '#active' => 1,
+        '#weight' => '0',
+        '#categories' => array(
+          '0' => 'moderation queue',
+          'user_profiles' => 'user_profiles',
+        ),
+        '#status' => 'default',
+        '#conditions' => array(
+          '0' => array(
+            '#type' => 'condition',
+            '#settings' => array(
+              'type' => array(
+                'profile' => 'profile',
+              ),
+              '#argument map' => array(
+                'node' => 'node',
+              ),
+            ),
+            '#name' => 'rules_condition_content_is_type',
+            '#info' => array(
+              'label' => 'Created content is Profile',
+              'arguments' => array(
+                'node' => array(
+                  'type' => 'node',
+                  'label' => 'Content',
+                ),
+              ),
+              'module' => 'Node',
+            ),
+            '#weight' => 0,
+          ),
+          '1' => array(
+            '#negate' => 1,
+            '#info' => array(
+              'label' => 'User has role(s)',
+              'arguments' => array(
+                'user' => array(
+                  'type' => 'user',
+                  'label' => 'User',
+                ),
+              ),
+              'module' => 'User',
+            ),
+            '#name' => 'rules_condition_user_hasrole',
+            '#settings' => array(
+              'roles' => array(
+                '0' => 3519698132,
+                '1' => 1271379760,
+              ),
+              'operation' => 'OR',
+              '#argument map' => array(
+                'user' => 'user',
+              ),
+            ),
+            '#type' => 'condition',
+            '#weight' => 0,
+          ),
+          '2' => array(
+            '#weight' => 0,
+            '#info' => array(
+              'label' => 'Compare two users',
+              'arguments' => array(
+                'user1' => array(
+                  'type' => 'user',
+                  'label' => 'User account 1',
+                ),
+                'user2' => array(
+                  'type' => 'user',
+                  'label' => 'User account 2',
+                ),
+              ),
+              'module' => 'User',
+            ),
+            '#name' => 'rules_condition_user_comparison',
+            '#settings' => array(
+              '#argument map' => array(
+                'user1' => 'user',
+                'user2' => 'author',
+              ),
+            ),
+            '#type' => 'condition',
+          ),
+          '3' => array(
+            '#type' => 'OR',
+            '0' => array(
+              '#info' => array(
+                'label' => 'Updated content\'s field \'field_background\' has been changed',
+                'arguments' => array(
+                  'node' => array(
+                    'type' => 'node',
+                    'label' => 'Content containing changes',
+                  ),
+                  'node_unchanged' => array(
+                    'type' => 'node',
+                    'label' => 'Content not containing changes',
+                  ),
+                ),
+                'module' => 'CCK',
+              ),
+              '#name' => 'content_rules_field_changed',
+              '#settings' => array(
+                'field_name' => 'field_background',
+                '#argument map' => array(
+                  'node' => 'node',
+                  'node_unchanged' => 'node_unchanged',
+                ),
+              ),
+              '#type' => 'condition',
+              '#weight' => 0,
+            ),
+            '#weight' => 0,
+            '1' => array(
+              '#weight' => 0,
+              '#info' => array(
+                'label' => 'Updated content\'s field \'field_opinions\' has been changed',
+                'arguments' => array(
+                  'node' => array(
+                    'type' => 'node',
+                    'label' => 'Content containing changes',
+                  ),
+                  'node_unchanged' => array(
+                    'type' => 'node',
+                    'label' => 'Content not containing changes',
+                  ),
+                ),
+                'module' => 'CCK',
+              ),
+              '#name' => 'content_rules_field_changed',
+              '#settings' => array(
+                'field_name' => 'field_opinions',
+                '#argument map' => array(
+                  'node' => 'node',
+                  'node_unchanged' => 'node_unchanged',
+                ),
+              ),
+              '#type' => 'condition',
+            ),
+            '2' => array(
+              '#type' => 'condition',
+              '#settings' => array(
+                'field_name' => 'field_url',
+                '#argument map' => array(
+                  'node' => 'node',
+                  'node_unchanged' => 'node_unchanged',
+                ),
+              ),
+              '#name' => 'content_rules_field_changed',
+              '#info' => array(
+                'label' => 'Updated content\'s field \'field_url\' has been changed',
+                'arguments' => array(
+                  'node' => array(
+                    'type' => 'node',
+                    'label' => 'Content containing changes',
+                  ),
+                  'node_unchanged' => array(
+                    'type' => 'node',
+                    'label' => 'Content not containing changes',
+                  ),
+                ),
+                'module' => 'CCK',
+              ),
+              '#weight' => 0,
+            ),
+            '4' => array(
+              '#type' => 'AND',
+              '#weight' => 0,
+              '1' => array(
+                '#weight' => 0,
+                '#info' => array(
+                  'label' => 'Modified profile has profile image',
+                  'label callback' => FALSE,
+                  'arguments' => array(
+                    'boolean' => array(
+                      'type' => 'boolean',
+                      'label' => 'Truth value',
+                    ),
+                  ),
+                  'module' => 'Rules',
+                ),
+                '#name' => 'rules_condition_check_boolean',
+                '#settings' => array(
+                  'boolean' => '<?php echo ($node->field_profile_image[0][\'fid\'] ? 1 : 0); ?>',
+                  '#eval input' => array(
+                    'token_rules_input_evaluator' => array(
+                      'boolean' => array(
+                        '0' => ':global',
+                      ),
+                    ),
+                    'rules_input_evaluator_php' => array(
+                      'boolean' => array(
+                        '0' => 'node',
+                      ),
+                    ),
+                  ),
+                ),
+                '#type' => 'condition',
+              ),
+              '0' => array(
+                '#info' => array(
+                  'label' => 'Modified profile image is different from previous profile image',
+                  'label callback' => FALSE,
+                  'arguments' => array(
+                    'boolean' => array(
+                      'type' => 'boolean',
+                      'label' => 'Truth value',
+                    ),
+                  ),
+                  'module' => 'Rules',
+                ),
+                '#name' => 'rules_condition_check_boolean',
+                '#settings' => array(
+                  'boolean' => '<?php echo ($node->field_profile_image[0][\'fid\'] != $node_unchanged->field_profile_image[0][\'fid\']); ?>',
+                  '#eval input' => array(
+                    'token_rules_input_evaluator' => array(
+                      'boolean' => array(
+                        '0' => ':global',
+                      ),
+                    ),
+                    'rules_input_evaluator_php' => array(
+                      'boolean' => array(
+                        '0' => 'node',
+                        '1' => 'node_unchanged',
+                      ),
+                    ),
+                  ),
+                ),
+                '#type' => 'condition',
+                '#weight' => 1,
+              ),
+            ),
+            '3' => array(
+              '#weight' => 1,
+              '#type' => 'AND',
+              '1' => array(
+                '#type' => 'condition',
+                '#settings' => array(
+                  'boolean' => '<?php echo ($node->field_image[0][\'fid\'] ? 1 : 0); ?>',
+                  '#eval input' => array(
+                    'token_rules_input_evaluator' => array(
+                      'boolean' => array(
+                        '0' => ':global',
+                      ),
+                    ),
+                    'rules_input_evaluator_php' => array(
+                      'boolean' => array(
+                        '0' => 'node',
+                      ),
+                    ),
+                  ),
+                ),
+                '#name' => 'rules_condition_check_boolean',
+                '#info' => array(
+                  'label' => 'Modified profile has avatar',
+                  'label callback' => FALSE,
+                  'arguments' => array(
+                    'boolean' => array(
+                      'type' => 'boolean',
+                      'label' => 'Truth value',
+                    ),
+                  ),
+                  'module' => 'Rules',
+                ),
+                '#weight' => 0,
+              ),
+              '0' => array(
+                '#weight' => 1,
+                '#info' => array(
+                  'label' => 'Modified profile avatar is different from previous avatar',
+                  'label callback' => FALSE,
+                  'arguments' => array(
+                    'boolean' => array(
+                      'type' => 'boolean',
+                      'label' => 'Truth value',
+                    ),
+                  ),
+                  'module' => 'Rules',
+                ),
+                '#name' => 'rules_condition_check_boolean',
+                '#settings' => array(
+                  'boolean' => '<?php echo ($node->field_image[0][\'fid\'] != $node_unchanged->field_image[0][\'fid\']); ?>',
+                  '#eval input' => array(
+                    'token_rules_input_evaluator' => array(
+                      'boolean' => array(
+                        '0' => ':global',
+                      ),
+                    ),
+                    'rules_input_evaluator_php' => array(
+                      'boolean' => array(
+                        '0' => 'node',
+                        '1' => 'node_unchanged',
+                      ),
+                    ),
+                  ),
+                ),
+                '#type' => 'condition',
+              ),
+            ),
+          ),
+        ),
+        '#actions' => array(
+          '1' => array(
+            '#weight' => 0,
+            '#info' => array(
+              'label' => 'Mark content for moderation',
+              'arguments' => array(
+                'node' => array(
+                  'type' => 'node',
+                  'label' => 'Content',
+                ),
+              ),
+              'module' => 'BOINC core',
+            ),
+            '#name' => 'boinccore_rules_action_mark_content_for_moderation',
+            '#settings' => array(
+              '#argument map' => array(
+                'node' => 'node',
+              ),
+            ),
+            '#type' => 'action',
+          ),
+        ),
+        '#version' => 6003,
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function user_profiles_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.features.menu_links.inc b/drupal/sites/all/features/user_profiles/user_profiles.features.menu_links.inc
new file mode 100644
index 0000000..307942c
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.features.menu_links.inc
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * Implementation of hook_menu_default_menu_links().
+ */
+function user_profiles_menu_default_menu_links() {
+  $menu_links = array();
+
+  // Exported menu link: primary-links:account/profile
+  $menu_links['primary-links:account/profile'] = array(
+    'menu_name' => 'primary-links',
+    'link_path' => 'account/profile',
+    'router_path' => 'account/profile',
+    'link_title' => 'Profile',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '0',
+    'has_children' => '0',
+    'expanded' => '0',
+    'weight' => '-49',
+    'parent_path' => 'dashboard',
+  );
+  // Exported menu link: primary-links:moderate/profiles
+  $menu_links['primary-links:moderate/profiles'] = array(
+    'menu_name' => 'primary-links',
+    'link_path' => 'moderate/profiles',
+    'router_path' => 'moderate/profiles',
+    'link_title' => 'Queue',
+    'options' => array(
+      'attributes' => array(
+        'title' => '',
+      ),
+    ),
+    'module' => 'menu',
+    'hidden' => '0',
+    'external' => '0',
+    'has_children' => '0',
+    'expanded' => '0',
+    'weight' => '-50',
+    'parent_path' => 'moderate',
+  );
+  // Translatables
+  // Use bts() function to translate additional strings.
+  bts('Queue', array(), NULL, 'boinc:menu-link');
+  bts('Profile', array(), NULL, 'boinc:menu-link');
+
+  return $menu_links;
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.features.user_permission.inc b/drupal/sites/all/features/user_profiles/user_profiles.features.user_permission.inc
new file mode 100644
index 0000000..1f29b66
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.features.user_permission.inc
@@ -0,0 +1,88 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function user_profiles_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: access user profiles
+  $permissions['access user profiles'] = array(
+    'name' => 'access user profiles',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  // Exported permission: administer gravatar
+  $permissions['administer gravatar'] = array(
+    'name' => 'administer gravatar',
+    'roles' => array(
+      '0' => 'administrator',
+    ),
+  );
+
+  // Exported permission: create profile content
+  $permissions['create profile content'] = array(
+    'name' => 'create profile content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'verified contributor',
+    ),
+  );
+
+  // Exported permission: delete any profile content
+  $permissions['delete any profile content'] = array(
+    'name' => 'delete any profile content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+    ),
+  );
+
+  // Exported permission: delete own profile content
+  $permissions['delete own profile content'] = array(
+    'name' => 'delete own profile content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'community member',
+    ),
+  );
+
+  // Exported permission: disable own gravatar
+  $permissions['disable own gravatar'] = array(
+    'name' => 'disable own gravatar',
+    'roles' => array(
+      '0' => 'community member',
+    ),
+  );
+
+  // Exported permission: edit any profile content
+  $permissions['edit any profile content'] = array(
+    'name' => 'edit any profile content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'moderator',
+    ),
+  );
+
+  // Exported permission: edit own profile content
+  $permissions['edit own profile content'] = array(
+    'name' => 'edit own profile content',
+    'roles' => array(
+      '0' => 'administrator',
+      '1' => 'verified contributor',
+    ),
+  );
+
+  // Exported permission: use gravatar
+  $permissions['use gravatar'] = array(
+    'name' => 'use gravatar',
+    'roles' => array(
+      '0' => 'community member',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.info b/drupal/sites/all/features/user_profiles/user_profiles.info
new file mode 100644
index 0000000..5b19208
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.info
@@ -0,0 +1,66 @@
+name = "User profiles"
+description = "Profile information for user accounts"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinccore"
+dependencies[] = "content_profile"
+dependencies[] = "context"
+dependencies[] = "ctools"
+dependencies[] = "features"
+dependencies[] = "filefield"
+dependencies[] = "gravatar"
+dependencies[] = "imagefield"
+dependencies[] = "me"
+dependencies[] = "menu"
+dependencies[] = "node"
+dependencies[] = "optionwidgets"
+dependencies[] = "panels_mini"
+dependencies[] = "php"
+dependencies[] = "rules"
+dependencies[] = "strongarm"
+dependencies[] = "text"
+dependencies[] = "token"
+dependencies[] = "user"
+dependencies[] = "views_customfield"
+features[content][] = "profile-field_background"
+features[content][] = "profile-field_country"
+features[content][] = "profile-field_image"
+features[content][] = "profile-field_opinions"
+features[content][] = "profile-field_profile_image"
+features[content][] = "profile-field_url"
+features[content][] = "profile-field_zip"
+features[context][] = "account--profile--form"
+features[ctools][] = "context:context:3"
+features[ctools][] = "panels_mini:panels_default:1"
+features[ctools][] = "strongarm:strongarm:1"
+features[menu_links][] = "primary-links:account/profile"
+features[menu_links][] = "primary-links:moderate/profiles"
+features[node][] = "profile"
+features[panels_mini][] = "user_profile"
+features[rules_categories][] = "moderation queue"
+features[user_permission][] = "access user profiles"
+features[user_permission][] = "administer gravatar"
+features[user_permission][] = "create profile content"
+features[user_permission][] = "delete any profile content"
+features[user_permission][] = "delete own profile content"
+features[user_permission][] = "disable own gravatar"
+features[user_permission][] = "edit any profile content"
+features[user_permission][] = "edit own profile content"
+features[user_permission][] = "use gravatar"
+features[variable][] = "comment_anonymous_profile"
+features[variable][] = "comment_controls_profile"
+features[variable][] = "comment_default_mode_profile"
+features[variable][] = "comment_default_order_profile"
+features[variable][] = "comment_default_per_page_profile"
+features[variable][] = "comment_form_location_profile"
+features[variable][] = "comment_preview_profile"
+features[variable][] = "comment_profile"
+features[variable][] = "comment_subject_field_profile"
+features[variable][] = "content_extra_weights_profile"
+features[variable][] = "content_profile_use_profile"
+features[variable][] = "language_content_type_profile"
+features[variable][] = "node_options_profile"
+features[variable][] = "show_preview_changes_profile"
+features[views][] = "moderation_queue"
+features[views][] = "user_activity"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.module b/drupal/sites/all/features/user_profiles/user_profiles.module
new file mode 100644
index 0000000..150b7e9
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('user_profiles.features.inc');
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.panels_default.inc b/drupal/sites/all/features/user_profiles/user_profiles.panels_default.inc
new file mode 100644
index 0000000..d447960
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.panels_default.inc
@@ -0,0 +1,91 @@
+<?php
+
+/**
+ * Implementation of hook_default_panels_mini().
+ */
+function user_profiles_default_panels_mini() {
+  $export = array();
+
+  $mini = new stdClass;
+  $mini->disabled = FALSE; /* Edit this to true to make a default mini disabled initially */
+  $mini->api_version = 1;
+  $mini->name = 'user_profile';
+  $mini->category = 'BOINC';
+  $mini->admin_title = 'User profile';
+  $mini->admin_description = 'A user\'s profile information, including background and opinions';
+  $mini->requiredcontexts = array(
+    0 => array(
+      'name' => 'user',
+      'id' => 1,
+      'identifier' => 'User',
+      'keyword' => 'user',
+    ),
+  );
+  $mini->contexts = array();
+  $mini->relationships = array();
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = '';
+  $display->storage_type = 'panels_mini';
+  $display->storage_id = 'user_profile';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'user_profile';
+    $pane->subtype = 'user_profile';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'context' => 'requiredcontext_user_1',
+      'override_title' => 1,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'middle';
+    $pane->type = 'custom';
+    $pane->subtype = 'custom';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'admin_title' => 'Flag user',
+      'title' => '',
+      'body' => '<?php print boincuser_get_profile_links(%user:uid); ?>',
+      'format' => '3',
+      'substitute' => 1,
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array();
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-2'] = $pane;
+    $display->panels['middle'][1] = 'new-2';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = 'new-1';
+  $mini->display = $display;
+  $export['user_profile'] = $mini;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.strongarm.inc b/drupal/sites/all/features/user_profiles/user_profiles.strongarm.inc
new file mode 100644
index 0000000..fdc99f2
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.strongarm.inc
@@ -0,0 +1,120 @@
+<?php
+
+/**
+ * Implementation of hook_strongarm().
+ */
+function user_profiles_strongarm() {
+  $export = array();
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_anonymous_profile';
+  $strongarm->value = 0;
+  $export['comment_anonymous_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_controls_profile';
+  $strongarm->value = '3';
+  $export['comment_controls_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_mode_profile';
+  $strongarm->value = '4';
+  $export['comment_default_mode_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_order_profile';
+  $strongarm->value = '1';
+  $export['comment_default_order_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_per_page_profile';
+  $strongarm->value = '50';
+  $export['comment_default_per_page_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_form_location_profile';
+  $strongarm->value = '0';
+  $export['comment_form_location_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_preview_profile';
+  $strongarm->value = '1';
+  $export['comment_preview_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_profile';
+  $strongarm->value = '2';
+  $export['comment_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_subject_field_profile';
+  $strongarm->value = '1';
+  $export['comment_subject_field_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'content_extra_weights_profile';
+  $strongarm->value = array(
+    'title' => '-5',
+    'body_field' => '-3',
+    'revision_information' => '-1',
+    'author' => '-2',
+    'options' => '0',
+    'comment_settings' => '1',
+    'menu' => '-4',
+    'path' => '2',
+  );
+  $export['content_extra_weights_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'content_profile_use_profile';
+  $strongarm->value = 1;
+  $export['content_profile_use_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'language_content_type_profile';
+  $strongarm->value = '0';
+  $export['language_content_type_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_options_profile';
+  $strongarm->value = array(
+    0 => 'status',
+    1 => 'promote',
+  );
+  $export['node_options_profile'] = $strongarm;
+
+  $strongarm = new stdClass;
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'show_preview_changes_profile';
+  $strongarm->value = 0;
+  $export['show_preview_changes_profile'] = $strongarm;
+
+  return $export;
+}
diff --git a/drupal/sites/all/features/user_profiles/user_profiles.views_default.inc b/drupal/sites/all/features/user_profiles/user_profiles.views_default.inc
new file mode 100644
index 0000000..18fc767
--- /dev/null
+++ b/drupal/sites/all/features/user_profiles/user_profiles.views_default.inc
@@ -0,0 +1,830 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function user_profiles_views_default_views() {
+  $views = array();
+
+  // Exported view: moderation_queue
+  $view = new view;
+  $view->name = 'moderation_queue';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'node';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => 'Title',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 1,
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+    ),
+    'changed' => array(
+      'label' => 'Updated date',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'changed',
+      'table' => 'node',
+      'field' => 'changed',
+      'relationship' => 'none',
+    ),
+    'uid' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 1,
+      'exclude' => 1,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Author',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'account/[uid]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'link_to_user' => 0,
+      'overwrite_anonymous' => 1,
+      'anonymous_text' => 'Anonymous',
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'moderate' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'moderate',
+      'table' => 'node',
+      'field' => 'moderate',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'role',
+    'role' => array(
+      1271379760 => 1271379760,
+    ),
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('empty', bts('No content is in the queue for moderation.', array(), NULL, 'boinc:moderate-user-page'));
+  $handler->override_option('empty_format', '4');
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'view_node' => 'view_node',
+      'title' => 'title',
+      'changed' => 'changed',
+    ),
+    'info' => array(
+      'view_node' => array(
+        'separator' => '',
+      ),
+      'title' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'changed' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'changed',
+  ));
+  $handler = $view->new_display('page', 'User profiles', 'page_1');
+  $handler->override_option('fields', array(
+    'uid' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 1,
+      'exclude' => 1,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'User',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'account/[uid]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 1,
+      'overwrite_anonymous' => 0,
+      'anonymous_text' => '',
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'changed' => array(
+      'label' => 'Updated date',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'changed',
+      'table' => 'node',
+      'field' => 'changed',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'moderate' => array(
+      'operator' => '=',
+      'value' => '1',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'moderate',
+      'table' => 'node',
+      'field' => 'moderate',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'type' => array(
+      'operator' => 'in',
+      'value' => array(
+        'profile' => 'profile',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', bts('User profile moderation queue', array(), NULL, 'boinc:moderate-user-page'));
+  $handler->override_option('path', 'moderate/profiles');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => 'Queue',
+    'description' => '',
+    'weight' => '-50',
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'normal',
+    'title' => 'Moderation',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'primary-links',
+  ));
+
+  $views[$view->name] = $view;
+
+  // Exported view: user_activity
+  $view = new view;
+  $view->name = 'user_activity';
+  $view->description = 'A feed of a user\'s activity on the site';
+  $view->tag = '';
+  $view->base_table = 'node_revisions';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'uid' => array(
+      'label' => 'user',
+      'required' => 1,
+      'id' => 'uid',
+      'table' => 'node_revisions',
+      'field' => 'uid',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'nid' => array(
+      'label' => 'Nid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'exclude' => 1,
+      'id' => 'nid',
+      'table' => 'node',
+      'field' => 'nid',
+      'relationship' => 'none',
+    ),
+    'title' => array(
+      'label' => 'Title',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'exclude' => 1,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+    ),
+    'type' => array(
+      'label' => 'Type',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_node' => 0,
+      'machine_name' => 0,
+      'exclude' => 1,
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'relationship' => 'none',
+    ),
+    'uid' => array(
+      'label' => 'Uid',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'link_to_user' => 0,
+      'exclude' => 1,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'relationship' => 'uid',
+    ),
+    'nothing' => array(
+      'label' => '',
+      'alter' => array(
+        'text' => '<div class="gray-divider"></div>',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'nothing',
+      'table' => 'views',
+      'field' => 'nothing',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+
+switch($data->node_type) {
+case \'forum\':
+  $action = bts(\'started discussion\', array(), NULL, \'boinc:recent-posts\');
+  $url = "node/{$data->node_nid}";
+  break;
+//case \'wiki_page\':
+//  $action = t(\'edited\');
+//  $url = \'/\' . drupal_lookup_path(\'alias\',"node/{$data->node_nid}");
+//  break;
+case \'story\':
+  $action = bts(\'published\', array(), NULL, \'boinc:recent-posts\');
+  //$url = \'/news/blogs/\' . basename(drupal_lookup_path(\'alias\',"node/{$data->node_nid}"));
+  $url = "node/{$data->node_nid}";
+  break;
+case \'comment\':
+  $action = bts(\'commented on\', array(), NULL, \'boinc:recent-posts\');
+  $url = "node/{$data->node_nid}";
+  $fragment = "comment-{$data->vid}";
+  break;
+default:
+  $action = bts(\'posted\', array(), NULL, \'boinc:recent-posts\');
+}
+
+$uid = $data->users_node_uid;
+$account = user_load($uid);
+echo l($account->boincuser_name, "account/{$uid}") . " {$action} " . l($data->node_title, $url, array(\'fragment\' => $fragment));
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'body' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 1,
+        'max_length' => '125',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 1,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'body',
+      'table' => 'node_revisions',
+      'field' => 'body',
+      'relationship' => 'none',
+    ),
+    'timestamp' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'jS F Y',
+      'exclude' => 0,
+      'id' => 'timestamp',
+      'table' => 'node_revisions',
+      'field' => 'timestamp',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'uid' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'user',
+      'default_argument' => '',
+      'validate_type' => 'user',
+      'validate_fail' => 'empty',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'relationship' => 'uid',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'team' => 0,
+        'team_forum' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('items_per_page', 5);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_options', array(
+    'inline' => array(
+      'value' => 'value',
+      'phpcode_1' => 'phpcode_1',
+    ),
+    'separator' => ' ',
+    'hide_empty' => 0,
+  ));
+  $handler = $view->new_display('block', 'Block', 'block_1');
+  $handler->override_option('block_description', '');
+  $handler->override_option('block_caching', -1);
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('title', 'Recent posts');
+  $handler->override_option('style_plugin', 'grid');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'columns' => '1',
+    'alignment' => 'vertical',
+    'fill_single_line' => 1,
+    'summary' => '',
+  ));
+  $handler->override_option('row_options', array(
+    'inline' => array(),
+    'separator' => '',
+    'hide_empty' => 0,
+  ));
+  $handler->override_option('path', 'account/%/posts');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.features.inc b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.features.inc
new file mode 100644
index 0000000..12cef7a
--- /dev/null
+++ b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.features.inc
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ */
+function work_and_host_stats_ctools_plugin_api() {
+  list($module, $api) = func_get_args();
+  if ($module == "page_manager" && $api == "pages_default") {
+    return array("version" => 1);
+  }
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function work_and_host_stats_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.info b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.info
new file mode 100644
index 0000000..950ad24
--- /dev/null
+++ b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.info
@@ -0,0 +1,24 @@
+name = "Work and host stats"
+description = "Detailed information on BOINC work and hosts"
+core = "6.x"
+package = "Features"
+dependencies[] = "boinc_standard"
+dependencies[] = "boincwork"
+dependencies[] = "ctools"
+dependencies[] = "page_manager"
+dependencies[] = "views"
+dependencies[] = "views_content"
+dependencies[] = "views_customfield"
+dependencies[] = "views_or"
+features[ctools][] = "page_manager:pages_default:1"
+features[page_manager_pages][] = "page_stats"
+features[views][] = "boinc_account_tasks_all"
+features[views][] = "boinc_host"
+features[views][] = "boinc_host_apps"
+features[views][] = "boinc_host_list"
+features[views][] = "boinc_host_tasks_all"
+features[views][] = "boinc_task"
+features[views][] = "boinc_users"
+features[views][] = "boinc_workunit"
+features[views][] = "boinc_workunit_tasks_all"
+features[views_api][] = "api:2"
diff --git a/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.module b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.module
new file mode 100644
index 0000000..34b8af7
--- /dev/null
+++ b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('work_and_host_stats.features.inc');
diff --git a/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.pages_default.inc b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.pages_default.inc
new file mode 100644
index 0000000..ce70115
--- /dev/null
+++ b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.pages_default.inc
@@ -0,0 +1,142 @@
+<?php
+
+/**
+ * Implementation of hook_default_page_manager_pages().
+ */
+function work_and_host_stats_default_page_manager_pages() {
+  $page = new stdClass;
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'page_stats';
+  $page->task = 'page';
+  $page->admin_title = 'Stats';
+  $page->admin_description = '';
+  $page->path = 'community/stats';
+  $page->access = array(
+    'type' => 'none',
+    'settings' => NULL,
+  );
+  $page->menu = array(
+    'type' => 'normal',
+    'title' => 'Statistics',
+    'name' => 'primary-links',
+    'weight' => '20',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'name' => 'navigation',
+      'weight' => '0',
+    ),
+  );
+  $page->arguments = array();
+  $page->conf = array();
+  $page->default_handlers = array();
+  $handler = new stdClass;
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'page_page_stats_panel_context';
+  $handler->task = 'page';
+  $handler->subtask = 'page_stats';
+  $handler->handler = 'panel_context';
+  $handler->weight = 0;
+  $handler->conf = array(
+    'title' => 'Panel',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+  );
+  $display = new panels_display;
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = 'Statistics and Leaderboards';
+  $display->storage_type = 'page_manager';
+  $display->storage_id = 'page_page_stats_panel_context';
+  $display->content = array();
+  $display->panels = array();
+    $pane = new stdClass;
+    $pane->pid = 'new-1';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_users-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array();
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 0;
+    $display->content['new-1'] = $pane;
+    $display->panels['middle'][0] = 'new-1';
+    $pane = new stdClass;
+    $pane->pid = 'new-2';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_host_list-panel_pane_1';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array();
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 1;
+    $display->content['new-2'] = $pane;
+    $display->panels['middle'][1] = 'new-2';
+    $pane = new stdClass;
+    $pane->pid = 'new-3';
+    $pane->panel = 'middle';
+    $pane->type = 'views_panes';
+    $pane->subtype = 'boinc_teams-panel_pane_4';
+    $pane->shown = TRUE;
+    $pane->access = array();
+    $pane->configuration = array(
+      'link_to_view' => 0,
+      'more_link' => 1,
+      'use_pager' => 0,
+      'pager_id' => '',
+      'items_per_page' => '10',
+      'override_title' => 0,
+      'override_title_text' => '',
+    );
+    $pane->cache = array();
+    $pane->style = array(
+      'settings' => NULL,
+    );
+    $pane->css = array(
+      'css_id' => '',
+      'css_class' => 'panel-primary container shadow',
+    );
+    $pane->extras = array();
+    $pane->position = 2;
+    $display->content['new-3'] = $pane;
+    $display->panels['middle'][2] = 'new-3';
+  $display->hide_title = PANELS_TITLE_NONE;
+  $display->title_pane = '0';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['page_stats'] = $page;
+
+ return $pages;
+
+}
diff --git a/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.views_default.inc b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.views_default.inc
new file mode 100644
index 0000000..3fb8cda
--- /dev/null
+++ b/drupal/sites/all/features/work_and_host_stats/work_and_host_stats.views_default.inc
@@ -0,0 +1,13045 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function work_and_host_stats_views_default_views() {
+  $views = array();
+
+  // Exported view: boinc_account_tasks_all
+  $view = new view;
+  $view->name = 'boinc_account_tasks_all';
+  $view->description = 'A list of all tasks for a user';
+  $view->tag = '';
+  $view->base_table = 'result';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'result',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Task ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => 'task/[id]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'result',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'workunitid' => array(
+      'label' => 'Workunit ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'workunit/[workunitid]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'workunitid',
+      'table' => 'result',
+      'field' => 'workunitid',
+      'relationship' => 'none',
+    ),
+    'hostid' => array(
+      'label' => 'Computer',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'host/[hostid]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'hostid',
+      'table' => 'result',
+      'field' => 'hostid',
+      'relationship' => 'none',
+    ),
+    'sent_time' => array(
+      'label' => 'Sent',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s e',
+      'exclude' => 1,
+      'id' => 'sent_time',
+      'table' => 'result',
+      'field' => 'sent_time',
+      'relationship' => 'none',
+    ),
+    'received_time' => array(
+      'label' => 'Received time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'received_time',
+      'table' => 'result',
+      'field' => 'received_time',
+      'relationship' => 'none',
+    ),
+    'report_deadline' => array(
+      'label' => 'Report deadline',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'report_deadline',
+      'table' => 'result',
+      'field' => 'report_deadline',
+      'relationship' => 'none',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Sent',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'util\');
+  echo time_str($data->result_sent_time);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Time reported or deadline',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php return boincwork_task_time_reported($data->result_received_time, $data->result_report_deadline); ?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'server_state' => array(
+      'label' => 'Server state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'label' => 'Outcome',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'relationship' => 'none',
+    ),
+    'client_state' => array(
+      'label' => 'Client state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'client_state',
+      'table' => 'result',
+      'field' => 'client_state',
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'label' => 'Validation state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'relationship' => 'none',
+    ),
+    'exit_status' => array(
+      'label' => 'Exit status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'exit_status',
+      'table' => 'result',
+      'field' => 'exit_status',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'Status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'result\');
+  $result = new stdClass();
+  $result->server_state = $data->result_server_state;
+  $result->outcome = $data->result_outcome;
+  $result->validate_state = $data->result_validate_state;
+  $result->client_state = $data->result_client_state;
+  $result->exit_status = $data->result_exit_status;
+  return state_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'elapsed_time' => array(
+      'label' => 'Run time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'elapsed_time',
+      'table' => 'result',
+      'field' => 'elapsed_time',
+      'relationship' => 'none',
+    ),
+    'cpu_time' => array(
+      'label' => 'CPU time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'cpu_time',
+      'table' => 'result',
+      'field' => 'cpu_time',
+      'relationship' => 'none',
+    ),
+    'claimed_credit_1' => array(
+      'label' => 'Claimed credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'claimed_credit_1',
+      'table' => 'result',
+      'field' => 'claimed_credit',
+      'relationship' => 'none',
+    ),
+    'granted_credit' => array(
+      'label' => 'Granted credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'granted_credit',
+      'table' => 'result',
+      'field' => 'granted_credit',
+      'relationship' => 'none',
+    ),
+    'appid' => array(
+      'label' => 'Application ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'appid',
+      'table' => 'result',
+      'field' => 'appid',
+      'relationship' => 'none',
+    ),
+    'app_version_id' => array(
+      'label' => 'Application version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'app_version_id',
+      'table' => 'result',
+      'field' => 'app_version_id',
+      'relationship' => 'none',
+    ),
+    'phpcode_2' => array(
+      'label' => 'Application',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'result\');
+  $result = new stdClass();
+  $result->appid = $data->result_appid;
+  $result->app_version_id = $data->result_app_version_id;
+  return app_version_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'userid' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'current_user',
+      'default_argument' => '',
+      'validate_type' => 'php',
+      'validate_fail' => 'empty',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'userid',
+      'table' => 'result',
+      'field' => 'userid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        268174006 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'team' => 0,
+        'team_forum' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => 'return is_current_boinc_user($argument);',
+      'me_validate_user_restrict_roles' => 0,
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('empty', '<?php
+  if (!user_is_logged_in()) {
+    drupal_goto(\'user/login\', drupal_get_destination());
+  }
+?>');
+  $handler->override_option('empty_format', '3');
+  $handler->override_option('items_per_page', 20);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'workunitid' => 'workunitid',
+      'hostid' => 'hostid',
+      'sent_time' => 'sent_time',
+      'received_time' => 'received_time',
+      'report_deadline' => 'report_deadline',
+      'phpcode_3' => 'phpcode_3',
+      'phpcode' => 'phpcode',
+      'server_state' => 'server_state',
+      'outcome' => 'outcome',
+      'client_state' => 'client_state',
+      'validate_state' => 'validate_state',
+      'exit_status' => 'exit_status',
+      'phpcode_1' => 'phpcode_1',
+      'elapsed_time' => 'elapsed_time',
+      'cpu_time' => 'cpu_time',
+      'claimed_credit_1' => 'claimed_credit_1',
+      'granted_credit' => 'granted_credit',
+      'app_version_id' => 'app_version_id',
+      'phpcode_2' => 'phpcode_2',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'workunitid' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'hostid' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'sent_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'received_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'report_deadline' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_3' => array(
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'server_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'outcome' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'client_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'validate_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'exit_status' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+      'elapsed_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'cpu_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'claimed_credit_1' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'granted_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'app_version_id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_2' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'id',
+  ));
+  $handler = $view->new_display('page', 'All tasks', 'page_1');
+  $handler->override_option('path', 'account/tasks/all');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => 'All tasks',
+    'description' => 'Show all tasks associated with the account',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'normal',
+    'title' => 'Tasks',
+    'description' => 'Show all tasks',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Error', 'page_2');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '>=',
+      'value' => array(
+        'value' => '3',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome_1' => array(
+      'operator' => 'not between',
+      'value' => array(
+        'value' => '',
+        'min' => '4',
+        'max' => '7',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_1',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome_2' => array(
+      'operator' => '<=',
+      'value' => array(
+        'value' => '7',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_2',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'account/tasks/error');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Error',
+    'description' => 'Show tasks with errors associated with the account',
+    'weight' => '5',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'In progress', 'page_3');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '4',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'account/tasks/active');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'In progress',
+    'description' => 'Show tasks in progress associated with the account',
+    'weight' => '1',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Invalidated', 'page_4');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_begin_2' => array(
+      'id' => 'views_or_begin_2',
+      'table' => 'views_or',
+      'field' => 'views_or_begin',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '6',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next_5' => array(
+      'id' => 'views_or_next_5',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'outcome_1' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_1',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_begin_3' => array(
+      'id' => 'views_or_begin_3',
+      'table' => 'views_or',
+      'field' => 'views_or_begin',
+    ),
+    'validate_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '2',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next_3' => array(
+      'id' => 'views_or_next_3',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'validate_state_1' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '3',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_1',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next_4' => array(
+      'id' => 'views_or_next_4',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'validate_state_2' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_2',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_end_3' => array(
+      'id' => 'views_or_end_3',
+      'table' => 'views_or',
+      'field' => 'views_or_end',
+    ),
+    'views_or_end_2' => array(
+      'id' => 'views_or_end_2',
+      'table' => 'views_or',
+      'field' => 'views_or_end',
+    ),
+  ));
+  $handler->override_option('path', 'account/tasks/invalid');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Invalid',
+    'description' => 'Show invalidated tasks associated with the account',
+    'weight' => '4',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Pending', 'page_5');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'operator' => '>=',
+      'value' => array(
+        'value' => '0',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state_1' => array(
+      'operator' => 'not between',
+      'value' => array(
+        'value' => '',
+        'min' => '0',
+        'max' => '4',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_1',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state_2' => array(
+      'operator' => '<=',
+      'value' => array(
+        'value' => '4',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_2',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'account/tasks/pending');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Pending',
+    'description' => 'Show tasks associated with the account with results pending',
+    'weight' => '2',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Validated', 'page_6');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'account/tasks/valid');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Valid',
+    'description' => 'Show validated tasks associated with the account',
+    'weight' => '3',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_host
+  $view = new view;
+  $view->name = 'boinc_host';
+  $view->description = 'Details for a specific host';
+  $view->tag = '';
+  $view->base_table = 'host';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'userid' => array(
+      'label' => 'User ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'userid',
+      'table' => 'host',
+      'field' => 'userid',
+      'relationship' => 'none',
+    ),
+    'last_ip_addr' => array(
+      'label' => 'Last IP address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'last_ip_addr',
+      'table' => 'host',
+      'field' => 'last_ip_addr',
+      'relationship' => 'none',
+    ),
+    'nsame_ip_addr' => array(
+      'label' => 'Same IP address count',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'nsame_ip_addr',
+      'table' => 'host',
+      'field' => 'nsame_ip_addr',
+      'relationship' => 'none',
+    ),
+    'external_ip_addr' => array(
+      'label' => 'External IP address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'external_ip_addr',
+      'table' => 'host',
+      'field' => 'external_ip_addr',
+      'relationship' => 'none',
+    ),
+    'phpcode_26' => array(
+      'label' => 'IP address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    $showIP = arg(2);
+    if ($showIP) {
+      $last_ip = $data->host_last_ip_addr;
+      if ($last_ip) {
+        echo bts(\'@ip_address (same the last @count times)\',
+          array(\'@ip_address\' => $data->host_last_ip_addr, \'@count\' => $data->host_nsame_ip_addr),
+          NULL, \'boinc:host-details\'
+        );
+      }
+      else {
+        echo \'n/a\';
+      }
+    } else {
+      echo l(bts(\'Show IP address\', array(), NULL, \'boinc:host-details\'), arg(0).\'/\'.arg(1).\'/1\');
+    }
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_26',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_28' => array(
+      'label' => 'External IP address',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    $showIP = arg(2);
+    if ($showIP) {
+      echo $data->host_external_ip_addr;
+    }
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_28',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'domain_name' => array(
+      'label' => 'Domain name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'domain_name',
+      'table' => 'host',
+      'field' => 'domain_name',
+      'relationship' => 'none',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Domain name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo $data->host_domain_name;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'timezone' => array(
+      'label' => 'Timezone',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'timezone',
+      'table' => 'host',
+      'field' => 'timezone',
+      'relationship' => 'none',
+    ),
+    'phpcode_4' => array(
+      'label' => 'Local standard time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo \'UTC \' . ($data->host_timezone > 0 ? \'+\' : \'\') . $data->host_timezone / 3600 . \' \' . bts(\'hours\', array(), NULL, \'boinc:unit-of-time\');
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_4',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_5' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo $data->host_domain_name;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_5',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_29' => array(
+      'label' => 'Owner',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (!is_current_boinc_user($data->host_userid)) {
+    require_boinc(\'boinc_db\');
+    $owner = BoincUser::lookup_id($data->host_userid);
+    $drupal_id = get_drupal_id($owner->id);
+    $profile_link = ($drupal_id) ? l($owner->name, "account/{$drupal_id}") : $owner->name;
+    echo ($owner->show_hosts) ? $profile_link : bts(\'Anonymous\', array(), NULL, \'boinc:anonymous-user\');
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_29',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'create_time' => array(
+      'label' => 'Created',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'host',
+      'field' => 'create_time',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'host',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'host',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'host_cpid' => array(
+      'label' => 'Cross project ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'host_cpid',
+      'table' => 'host',
+      'field' => 'host_cpid',
+      'relationship' => 'none',
+    ),
+    'phpcode_7' => array(
+      'label' => 'Cross project credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'util\');
+  $owner = BoincUser::lookup_id($data->host_userid);
+  if ($owner->show_hosts) {
+    require_boinc(\'stats_sites\');
+    global $host_sites;
+    $x = "";
+    foreach ($host_sites as $h) {
+      $url = $h[0];
+      $name = $h[1];
+      $img = $h[2];
+      $site_img = theme_image("sites/all/themes/einstein/shared/{$img}", $name, $name);
+      $x .= l($site_img, $url . $data->host_host_cpid, array(\'html\' => TRUE));
+    }
+    echo $x;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_7',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'serialnum' => array(
+      'label' => 'Serial Number',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'serialnum',
+      'table' => 'host',
+      'field' => 'serialnum',
+      'relationship' => 'none',
+    ),
+    'p_vendor' => array(
+      'label' => 'CPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'p_vendor',
+      'table' => 'host',
+      'field' => 'p_vendor',
+      'relationship' => 'none',
+    ),
+    'p_model' => array(
+      'label' => 'CPU type',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '[p_vendor] [p_model]',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'p_model',
+      'table' => 'host',
+      'field' => 'p_model',
+      'relationship' => 'none',
+    ),
+    'p_ncpus' => array(
+      'label' => 'Number of processors',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_ncpus',
+      'table' => 'host',
+      'field' => 'p_ncpus',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'Coprocessors',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if ($data->host_serialnum) {
+    require_boinc(\'host\');
+    echo gpu_desc($data->host_serialnum);
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'os_name' => array(
+      'label' => 'Operating system',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'os_name',
+      'table' => 'host',
+      'field' => 'os_name',
+      'relationship' => 'none',
+    ),
+    'os_version' => array(
+      'label' => 'Operating system',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '[os_name] [os_version]',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'os_version',
+      'table' => 'host',
+      'field' => 'os_version',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'BOINC client version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'host\');
+  $version = boinc_version($data->host_serialnum);
+  if ($version) echo $version;
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'm_nbytes' => array(
+      'label' => 'Memory',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'm_nbytes',
+      'table' => 'host',
+      'field' => 'm_nbytes',
+      'relationship' => 'none',
+    ),
+    'm_cache' => array(
+      'label' => 'Cache',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'm_cache',
+      'table' => 'host',
+      'field' => 'm_cache',
+      'relationship' => 'none',
+    ),
+    'phpcode_8' => array(
+      'label' => 'Memory',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  echo round($data->host_m_nbytes/(1024*1024), 2) . \' MiB\';
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_8',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_9' => array(
+      'label' => 'Cache',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  echo round($data->host_m_cache/(1024), 2) . \' KiB\';
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_9',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'm_swap' => array(
+      'label' => 'Swap space',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'm_swap',
+      'table' => 'host',
+      'field' => 'm_swap',
+      'relationship' => 'none',
+    ),
+    'd_total' => array(
+      'label' => 'Total disk space',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'd_total',
+      'table' => 'host',
+      'field' => 'd_total',
+      'relationship' => 'none',
+    ),
+    'd_free' => array(
+      'label' => 'Free disk space',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'd_free',
+      'table' => 'host',
+      'field' => 'd_free',
+      'relationship' => 'none',
+    ),
+    'phpcode_10' => array(
+      'label' => 'Swap space',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo round($data->host_m_swap/(1024*1024), 2) . \' MiB\';
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_10',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_11' => array(
+      'label' => 'Total disk space',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo round($data->host_d_total/(1024*1024*1024), 2) . \' GiB\';
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_11',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_12' => array(
+      'label' => 'Free disk space',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo round($data->host_d_free/(1024*1024*1024), 2) . \' GiB\';
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_12',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'n_bwdown' => array(
+      'label' => 'Average download rate',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'n_bwdown',
+      'table' => 'host',
+      'field' => 'n_bwdown',
+      'relationship' => 'none',
+    ),
+    'avg_turnaround' => array(
+      'label' => 'Average turnaround time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'avg_turnaround',
+      'table' => 'host',
+      'field' => 'avg_turnaround',
+      'relationship' => 'none',
+    ),
+    'n_bwup' => array(
+      'label' => 'Average upload rate',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'n_bwup',
+      'table' => 'host',
+      'field' => 'n_bwup',
+      'relationship' => 'none',
+    ),
+    'p_fpops' => array(
+      'label' => 'Measured floating point speed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'p_fpops',
+      'table' => 'host',
+      'field' => 'p_fpops',
+      'relationship' => 'none',
+    ),
+    'p_iops' => array(
+      'label' => 'Measured integer speed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'p_iops',
+      'table' => 'host',
+      'field' => 'p_iops',
+      'relationship' => 'none',
+    ),
+    'phpcode_13' => array(
+      'label' => 'Measured floating point speed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo bts(\'@count million ops/sec\',
+    array(\'@count\' => round($data->host_p_fpops/(1000*1000), 2)),
+    NULL, \'boinc:host-details\');
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_13',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_14' => array(
+      'label' => 'Measured integer speed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo bts(\'@count million ops/sec\',
+    array(\'@count\' => round($data->host_p_iops/(1000*1000), 2)),
+    NULL, \'boinc:host-details\');
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_14',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_15' => array(
+      'label' => 'Average upload rate',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  $rate = round($data->host_n_bwup/(1024), 2);
+  echo ($rate > 0) ? bts(\'@rate KiB/sec\', array(\'@rate\' => $rate), NULL, \'boinc:host-details\') : bts(\'Unknown\', array(), NULL, \'boinc:host-details\');
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_15',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_16' => array(
+      'label' => 'Average download rate',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  $rate = round($data->host_n_bwdown/(1024), 2);
+  echo ($rate > 0) ? bts(\'@rate KiB/sec\', array(\'@rate\' => $rate), NULL, \'boinc:host-details\') : bts(\'Unknown\', array(), NULL, \'boinc:host-details\');
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_16',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_17' => array(
+      'label' => 'Average turnaround time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo bts(\'@count days\', array(\'@count\' => round($data->host_avg_turnaround/(60*60*24), 2)), NULL, \'boinc:host-details\');
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_17',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'max_results_day' => array(
+      'label' => 'Maximum daily WU quota per CPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '/day',
+      'exclude' => 1,
+      'id' => 'max_results_day',
+      'table' => 'host',
+      'field' => 'max_results_day',
+      'relationship' => 'none',
+    ),
+    'nothing' => array(
+      'label' => 'Application details',
+      'alter' => array(
+        'text' => 'Show',
+        'make_link' => 1,
+        'path' => 'host/!1/apps',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'nothing',
+      'table' => 'views',
+      'field' => 'nothing',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'phpcode_18' => array(
+      'label' => 'Tasks',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'value' => '<?php
+  //require_boint(\'util\');
+  //$config = get_config();
+  //if (parse_bool($config, "show_results")) {
+    // Create makeshift host object for host_nresults function
+    $host = new stdClass();
+    $host->id = $data->id;
+    $nresults = host_nresults($host);
+    if ($nresults) {
+      echo l($nresults, "host/{$host->id}/tasks");
+    }
+  //}
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_18',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'rpc_seqno' => array(
+      'label' => 'Number of times client has contacted server',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'rpc_seqno',
+      'table' => 'host',
+      'field' => 'rpc_seqno',
+      'relationship' => 'none',
+    ),
+    'phpcode_2' => array(
+      'label' => 'Number of times client has contacted server',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'value' => '<?php
+  echo $data->host_rpc_seqno;
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'on_frac' => array(
+      'label' => '% of time BOINC client is running',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'on_frac',
+      'table' => 'host',
+      'field' => 'on_frac',
+      'relationship' => 'none',
+    ),
+    'rpc_time_1' => array(
+      'label' => 'Last contact',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'rpc_time_1',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'relationship' => 'none',
+    ),
+    'cpu_efficiency' => array(
+      'label' => 'Average CPU efficiency',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'cpu_efficiency',
+      'table' => 'host',
+      'field' => 'cpu_efficiency',
+      'relationship' => 'none',
+    ),
+    'duration_correction_factor' => array(
+      'label' => 'Task duration correction factor',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'duration_correction_factor',
+      'table' => 'host',
+      'field' => 'duration_correction_factor',
+      'relationship' => 'none',
+    ),
+    'connected_frac' => array(
+      'label' => 'While BOINC running, % of time host has an Internet connection',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'connected_frac',
+      'table' => 'host',
+      'field' => 'connected_frac',
+      'relationship' => 'none',
+    ),
+    'active_frac' => array(
+      'label' => 'While BOINC running, % of time work is allowed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'active_frac',
+      'table' => 'host',
+      'field' => 'active_frac',
+      'relationship' => 'none',
+    ),
+    'phpcode_19' => array(
+      'label' => 'Last time contacted server',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo boincwork_host_last_contact($data->host_rpc_time, $data->id);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_19',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_20' => array(
+      'label' => '% of time BOINC client is running',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo ($data->host_on_frac * 100) . \' %\';
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_20',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_21' => array(
+      'label' => 'While BOINC running, % of time host has an Internet connection',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    if ($data->host_connected_frac > 0) {
+      echo ($data->host_connected_frac * 100) . \' %\';
+    }
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_21',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_22' => array(
+      'label' => 'While BOINC running, % of time work is allowed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo ($data->host_active_frac * 100) . \' %\';
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_22',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_27' => array(
+      'label' => 'Average CPU efficiency',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    if ($data->host_cpu_efficiency) {
+      echo $data->host_cpu_efficiency;
+    }
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_27',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_23' => array(
+      'label' => 'Task duration correction factor',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    if ($data->host_duration_correction_factor) {
+      echo $data->host_duration_correction_factor;
+    }
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_23',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_24' => array(
+      'label' => 'Location',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (is_current_boinc_user($data->host_userid)) {
+    echo boincwork_host_venue_selector($data->id);
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_24',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_25' => array(
+      'label' => 'Actions ',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo boincwork_host_action_links($data->id);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_25',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'id' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => 'Computer %1',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'id' => 'id',
+      'table' => 'host',
+      'field' => 'id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+    ),
+    'null' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'must_not_be' => 0,
+      'id' => 'null',
+      'table' => 'views',
+      'field' => 'null',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '0',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('items_per_page', 0);
+  $handler->override_option('distinct', 0);
+  $handler->override_option('style_plugin', 'grid');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'columns' => '2',
+    'alignment' => 'vertical',
+    'fill_single_line' => 1,
+  ));
+  $handler->override_option('row_options', array(
+    'inline' => array(),
+    'separator' => '',
+    'hide_empty' => 0,
+  ));
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('row_options', array());
+  $handler->override_option('path', 'host');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => 'All computers',
+    'description' => 'Show all computers associated with the account',
+    'weight' => '1',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_host_apps
+  $view = new view;
+  $view->name = 'boinc_host_apps';
+  $view->description = '';
+  $view->tag = '';
+  $view->base_table = 'host';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'app_version_id' => array(
+      'label' => 'App version',
+      'required' => 1,
+      'id' => 'app_version_id',
+      'table' => 'host_app_version',
+      'field' => 'app_version_id',
+      'relationship' => 'none',
+    ),
+    'appid' => array(
+      'label' => 'App ID',
+      'required' => 1,
+      'id' => 'appid',
+      'table' => 'app_version',
+      'field' => 'appid',
+      'relationship' => 'app_version_id',
+    ),
+    'platformid' => array(
+      'label' => 'Platform ID',
+      'required' => 1,
+      'id' => 'platformid',
+      'table' => 'app_version',
+      'field' => 'platformid',
+      'relationship' => 'app_version_id',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'user_friendly_name' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'user_friendly_name',
+      'table' => 'app',
+      'field' => 'user_friendly_name',
+      'relationship' => 'appid',
+    ),
+    'version_num' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'set_precision' => 0,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'id' => 'version_num',
+      'table' => 'app_version',
+      'field' => 'version_num',
+      'relationship' => 'app_version_id',
+    ),
+    'name' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'platform',
+      'field' => 'name',
+      'relationship' => 'platformid',
+    ),
+    'plan_class' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '([plan_class])',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'plan_class',
+      'table' => 'app_version',
+      'field' => 'plan_class',
+      'relationship' => 'app_version_id',
+    ),
+    'et_n' => array(
+      'label' => 'Number of tasks completed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'et_n',
+      'table' => 'host_app_version',
+      'field' => 'et_n',
+      'relationship' => 'none',
+    ),
+    'max_jobs_per_day' => array(
+      'label' => 'Max tasks per day',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'max_jobs_per_day',
+      'table' => 'host_app_version',
+      'field' => 'max_jobs_per_day',
+      'relationship' => 'none',
+    ),
+    'n_jobs_today' => array(
+      'label' => 'Number of tasks today',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'n_jobs_today',
+      'table' => 'host_app_version',
+      'field' => 'n_jobs_today',
+      'relationship' => 'none',
+    ),
+    'consecutive_valid' => array(
+      'label' => 'Consecutive valid tasks',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'consecutive_valid',
+      'table' => 'host_app_version',
+      'field' => 'consecutive_valid',
+      'relationship' => 'none',
+    ),
+    'et_avg' => array(
+      'label' => 'Average processing rate',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'id' => 'et_avg',
+      'table' => 'host_app_version',
+      'field' => 'et_avg',
+      'relationship' => 'none',
+    ),
+    'turnaround_avg' => array(
+      'label' => 'Average turnaround time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'set_precision' => 0,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'id' => 'turnaround_avg',
+      'table' => 'host_app_version',
+      'field' => 'turnaround_avg',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'host_id' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'id' => 'host_id',
+      'table' => 'host_app_version',
+      'field' => 'host_id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        3519698132 => 0,
+        1110965548 => 0,
+        2938987599 => 0,
+        1257454314 => 0,
+        1271379760 => 0,
+        933038561 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'team' => 0,
+        'team_forum' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+  ));
+  $handler->override_option('row_options', array(
+    'inline' => array(
+      'user_friendly_name' => 'user_friendly_name',
+      'version_num' => 'version_num',
+      'name' => 'name',
+      'plan_class' => 'plan_class',
+    ),
+    'separator' => ' ',
+    'hide_empty' => 0,
+  ));
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('fields', array(
+    'user_friendly_name' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '<b>[user_friendly_name]',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'user_friendly_name',
+      'table' => 'app',
+      'field' => 'user_friendly_name',
+      'relationship' => 'appid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'version_num' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'set_precision' => 0,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'id' => 'version_num',
+      'table' => 'app_version',
+      'field' => 'version_num',
+      'relationship' => 'app_version_id',
+    ),
+    'name' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'platform',
+      'field' => 'name',
+      'relationship' => 'platformid',
+    ),
+    'plan_class' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '([plan_class])</b>',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'exclude' => 0,
+      'id' => 'plan_class',
+      'table' => 'app_version',
+      'field' => 'plan_class',
+      'relationship' => 'app_version_id',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'et_n' => array(
+      'label' => 'Number of tasks completed',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'et_n',
+      'table' => 'host_app_version',
+      'field' => 'et_n',
+      'relationship' => 'none',
+    ),
+    'max_jobs_per_day' => array(
+      'label' => 'Max tasks per day',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'max_jobs_per_day',
+      'table' => 'host_app_version',
+      'field' => 'max_jobs_per_day',
+      'relationship' => 'none',
+    ),
+    'n_jobs_today' => array(
+      'label' => 'Number of tasks today',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'n_jobs_today',
+      'table' => 'host_app_version',
+      'field' => 'n_jobs_today',
+      'relationship' => 'none',
+    ),
+    'consecutive_valid' => array(
+      'label' => 'Consecutive valid tasks',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'consecutive_valid',
+      'table' => 'host_app_version',
+      'field' => 'consecutive_valid',
+      'relationship' => 'none',
+    ),
+    'et_avg' => array(
+      'label' => 'Average processing rate',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'id' => 'et_avg',
+      'table' => 'host_app_version',
+      'field' => 'et_avg',
+      'relationship' => 'none',
+    ),
+    'turnaround_avg' => array(
+      'label' => 'Average turnaround time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'set_precision' => 0,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'id' => 'turnaround_avg',
+      'table' => 'host_app_version',
+      'field' => 'turnaround_avg',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', 'Application details');
+  $handler->override_option('path', 'host/%/apps');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_host_list
+  $view = new view;
+  $view->name = 'boinc_host_list';
+  $view->description = 'A list of computers associated with a given user';
+  $view->tag = '';
+  $view->base_table = 'host';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'userid' => array(
+      'id' => 'userid',
+      'table' => 'host',
+      'field' => 'userid',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'id' => array(
+      'label' => 'Computer ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => 'ID: [id]
+<a href="">Details</a> | <a href="">Tasks</a>
+Cross-project stats:
+...',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => 'ID: ',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'host',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Computer links',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo l(bts(\'Details\', array(), NULL, \'boinc:host-details\'), "host/{$data->id}") . \' | \' . l(bts(\'Tasks\', array(), NULL, \'boinc:host-tasks-link\'), "host/{$data->id}/tasks");
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'host_cpid' => array(
+      'label' => 'Cross project ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'host_cpid',
+      'table' => 'host',
+      'field' => 'host_cpid',
+      'relationship' => 'none',
+    ),
+    'phpcode_4' => array(
+      'label' => 'Cross-project statistics',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'stats_sites\');
+  global $host_sites;
+  $x = "";
+  foreach ($host_sites as $h) {
+    $url = $h[0];
+    $name = $h[1];
+    $img = $h[2];
+    $site_img = theme_image("sites/all/themes/einstein/shared/{$img}", $name, $name);
+    $x .= l($site_img, $url . $data->host_host_cpid, array(\'html\' => TRUE));
+  }
+  echo "Cross-project stats: {$x}";
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_4',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Avg. credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'host',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'host',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'serialnum' => array(
+      'label' => 'Serial Number',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'serialnum',
+      'table' => 'host',
+      'field' => 'serialnum',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'BOINC version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo boinc_version($data->host_serialnum);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'p_vendor' => array(
+      'label' => 'CPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_vendor',
+      'table' => 'host',
+      'field' => 'p_vendor',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'p_model' => array(
+      'label' => 'CPU model',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_model',
+      'table' => 'host',
+      'field' => 'p_model',
+      'relationship' => 'none',
+    ),
+    'p_ncpus' => array(
+      'label' => 'Number of CPUs',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '([p_ncpus] processors)',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_ncpus',
+      'table' => 'host',
+      'field' => 'p_ncpus',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'GPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo gpu_desc($data->host_serialnum);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'os_name' => array(
+      'label' => 'Operating system',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'os_name',
+      'table' => 'host',
+      'field' => 'os_name',
+      'relationship' => 'none',
+    ),
+    'os_version' => array(
+      'label' => 'Operating system version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'os_version',
+      'table' => 'host',
+      'field' => 'os_version',
+      'relationship' => 'none',
+    ),
+    'rpc_time' => array(
+      'label' => 'Last contact',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 1,
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'relationship' => 'none',
+    ),
+    'phpcode_2' => array(
+      'label' => 'Last contact',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo boincwork_host_last_contact($data->host_rpc_time, $data->id);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'userid' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'id' => 'userid',
+      'table' => 'host',
+      'field' => 'userid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'show_hosts' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'show_hosts',
+      'table' => 'user',
+      'field' => 'show_hosts',
+      'relationship' => 'userid',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('empty_format', '1');
+  $handler->override_option('items_per_page', 20);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'phpcode_3' => 'id',
+      'host_cpid' => 'host_cpid',
+      'phpcode_4' => 'id',
+      'rownumber' => 'rownumber',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'serialnum' => 'serialnum',
+      'phpcode' => 'phpcode',
+      'p_vendor' => 'p_vendor',
+      'p_model' => 'p_vendor',
+      'p_ncpus' => 'p_vendor',
+      'phpcode_1' => 'phpcode_1',
+      'os_name' => 'os_name',
+      'os_version' => 'os_name',
+      'rpc_time' => 'rpc_time',
+      'phpcode_2' => 'phpcode_2',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'phpcode_3' => array(
+        'separator' => '',
+      ),
+      'host_cpid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_4' => array(
+        'separator' => '',
+      ),
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'serialnum' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'p_vendor' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'p_model' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'p_ncpus' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+      'os_name' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'os_version' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'rpc_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_2' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'rpc_time',
+  ));
+  $handler = $view->new_display('page', 'User active hosts', 'page_1');
+  $handler->override_option('filters', array(
+    'rpc_time' => array(
+      'operator' => '>',
+      'value' => array(
+        'type' => 'offset',
+        'value' => '-30 days',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'rpc_time',
+      'table' => 'host',
+      'field' => 'rpc_time',
+      'relationship' => 'none',
+    ),
+    'show_hosts' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'show_hosts',
+      'table' => 'user',
+      'field' => 'show_hosts',
+      'relationship' => 'userid',
+    ),
+  ));
+  $handler->override_option('path', 'account/%/computers/active');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => bts('Active in past 30 days', array(), NULL, 'boinc:account-host-list'),
+    'description' => 'Show only computers that have been active in the past month',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'tab',
+    'title' => 'Computers',
+    'description' => 'Show the computers associated with this user',
+    'weight' => '0',
+    'name' => 'secondary-links',
+  ));
+  $handler = $view->new_display('page', 'User all hosts', 'page_2');
+  $handler->override_option('path', 'account/%/computers/all');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => bts('All computers', array(), NULL, 'boinc:account-host-list'),
+    'description' => 'Show all computers associated with the account',
+    'weight' => '1',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Top hosts', 'page_3');
+  $handler->override_option('fields', array(
+    'id_1' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id_1',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'show_hosts' => array(
+      'label' => 'Show Hosts',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'show_hosts',
+      'table' => 'user',
+      'field' => 'show_hosts',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'id' => array(
+      'label' => 'Computer ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => 'ID: [id]
+<a href="">Details</a> | <a href="">Tasks</a>
+Cross-project stats:
+...',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => 'ID: ',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'host',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Computer links',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo l(bts(\'Details\', array(), NULL, \'boinc:host-details\'), "host/{$data->id}") . \' | \' . l(bts(\'Tasks\', array(), NULL, \'boinc:host-tasks-link\'), "host/{$data->id}/tasks");
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'host_cpid' => array(
+      'label' => 'Cross project ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'host_cpid',
+      'table' => 'host',
+      'field' => 'host_cpid',
+      'relationship' => 'none',
+    ),
+    'phpcode_4' => array(
+      'label' => 'Cross-project statistics',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'stats_sites\');
+  global $host_sites;
+  $x = "";
+  foreach ($host_sites as $h) {
+    $url = $h[0];
+    $name = $h[1];
+    $img = $h[2];
+    $site_img = theme_image("sites/default/themes/project/einstein/shared/{$img}", $name, $name);
+    $x .= l($site_img, $url . $data->host_host_cpid, array(\'html\' => TRUE));
+  }
+  echo "Cross-project stats: {$x}";
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_4',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'relationship' => 'none',
+    ),
+    'phpcode_5' => array(
+      'label' => 'Owner',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php 
+$uid = get_drupal_id($data->user_host_id);
+if ($data->user_host_show_hosts) {
+  echo l($data->user_host_name, "account/{$uid}");
+}
+else {
+  echo bts(\'Anonymous\', array(), NULL, \'boinc:anonymous-user\');
+}',
+      'exclude' => 0,
+      'id' => 'phpcode_5',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Avg. credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'host',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'host',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'serialnum' => array(
+      'label' => 'Serial Number',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'serialnum',
+      'table' => 'host',
+      'field' => 'serialnum',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'BOINC version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo boinc_version($data->host_serialnum);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'p_vendor' => array(
+      'label' => 'CPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_vendor',
+      'table' => 'host',
+      'field' => 'p_vendor',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'p_model' => array(
+      'label' => 'CPU model',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_model',
+      'table' => 'host',
+      'field' => 'p_model',
+      'relationship' => 'none',
+    ),
+    'p_ncpus' => array(
+      'label' => 'Number of CPUs',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '([p_ncpus] processors)',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'p_ncpus',
+      'table' => 'host',
+      'field' => 'p_ncpus',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'GPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo gpu_desc($data->host_serialnum);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'os_name' => array(
+      'label' => 'Operating system',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'os_name',
+      'table' => 'host',
+      'field' => 'os_name',
+      'relationship' => 'none',
+    ),
+    'os_version' => array(
+      'label' => 'Operating system version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'os_version',
+      'table' => 'host',
+      'field' => 'os_version',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array());
+  $handler->override_option('filters', array());
+  $handler->override_option('items_per_page', 50);
+  $handler->override_option('use_pager', '0');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id_1' => 'id_1',
+      'name' => 'name',
+      'show_hosts' => 'show_hosts',
+      'id' => 'id',
+      'phpcode_3' => 'id',
+      'host_cpid' => 'host_cpid',
+      'phpcode_4' => 'id',
+      'rownumber' => 'rownumber',
+      'phpcode_5' => 'phpcode_5',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'serialnum' => 'serialnum',
+      'phpcode' => 'phpcode',
+      'p_vendor' => 'p_vendor',
+      'p_model' => 'p_vendor',
+      'p_ncpus' => 'p_vendor',
+      'phpcode_1' => 'phpcode_1',
+      'os_name' => 'os_name',
+      'os_version' => 'os_name',
+    ),
+    'info' => array(
+      'id_1' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'show_hosts' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '<br/>',
+      ),
+      'phpcode_3' => array(
+        'separator' => '',
+      ),
+      'host_cpid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_4' => array(
+        'separator' => '',
+      ),
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'phpcode_5' => array(
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'serialnum' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'p_vendor' => array(
+        'sortable' => 0,
+        'separator' => '<br/>',
+      ),
+      'p_model' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'p_ncpus' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+      'os_name' => array(
+        'sortable' => 0,
+        'separator' => '<br/>',
+      ),
+      'os_version' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('path', 'community/stats/hosts');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Top Computers',
+    'description' => '',
+    'weight' => '10',
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('panel_pane', 'Top hosts pane', 'panel_pane_1');
+  $handler->override_option('fields', array(
+    'id_1' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id_1',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'show_hosts' => array(
+      'label' => 'Show Hosts',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'show_hosts',
+      'table' => 'user',
+      'field' => 'show_hosts',
+      'relationship' => 'userid',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Computer ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => 'ID: [id]
+<a href="">Details</a> | <a href="">Tasks</a>
+Cross-project stats:
+...',
+        'make_link' => 1,
+        'path' => 'host/[id]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'host',
+      'field' => 'id',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode_3' => array(
+      'label' => 'Computer links',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  echo l(bts(\'Details\', array(), NULL, \'boinc:host-details\'), "host/{$data->id}") . \' | \' . l(bts(\'Tasks\', array(), NULL, \'boinc:host-tasks-link\'), "host/{$data->id}/tasks");
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'host_cpid' => array(
+      'label' => 'Cross project ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'host_cpid',
+      'table' => 'host',
+      'field' => 'host_cpid',
+      'relationship' => 'none',
+    ),
+    'phpcode_4' => array(
+      'label' => 'Cross-project statistics',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'stats_sites\');
+  global $host_sites;
+  $x = "";
+  foreach ($host_sites as $h) {
+    $url = $h[0];
+    $name = $h[1];
+    $img = $h[2];
+    $site_img = theme_image("sites/all/themes/einstein/shared/{$img}", $name, $name);
+    $x .= l($site_img, $url . $data->host_host_cpid, array(\'html\' => TRUE));
+  }
+  echo "Cross-project stats: {$x}";
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode_4',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode_5' => array(
+      'label' => 'Owner',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php 
+$uid = get_drupal_id($data->user_host_id);
+if ($data->user_host_show_hosts) {
+  echo l($data->user_host_name, "account/{$uid}");
+}
+else {
+  echo bts(\'Anonymous\', array(), NULL, \'boinc:anonymous-user\');
+}',
+      'exclude' => 0,
+      'id' => 'phpcode_5',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'host',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'total_credit' => array(
+      'label' => 'Total credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'host',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'serialnum' => array(
+      'label' => 'Serial Number',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'serialnum',
+      'table' => 'host',
+      'field' => 'serialnum',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'BOINC version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo boinc_version($data->host_serialnum);
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'p_vendor' => array(
+      'label' => 'CPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'p_vendor',
+      'table' => 'host',
+      'field' => 'p_vendor',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'p_model' => array(
+      'label' => 'CPU model',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'p_model',
+      'table' => 'host',
+      'field' => 'p_model',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'p_ncpus' => array(
+      'label' => 'Number of CPUs',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => '([p_ncpus] processors)',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'p_ncpus',
+      'table' => 'host',
+      'field' => 'p_ncpus',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'phpcode_1' => array(
+      'label' => 'GPU',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'host\');
+  echo gpu_desc($data->host_serialnum);
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'os_name' => array(
+      'label' => 'Operating system',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'os_name',
+      'table' => 'host',
+      'field' => 'os_name',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+    'os_version' => array(
+      'label' => 'Operating system version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'os_version',
+      'table' => 'host',
+      'field' => 'os_version',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('arguments', array());
+  $handler->override_option('title', 'Top computers');
+  $handler->override_option('items_per_page', 10);
+  $handler->override_option('use_pager', '0');
+  $handler->override_option('use_more', 1);
+  $handler->override_option('use_more_always', 0);
+  $handler->override_option('use_more_text', 'view more');
+  $handler->override_option('link_display', 'page_3');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id_1' => 'id_1',
+      'name' => 'name',
+      'show_hosts' => 'show_hosts',
+      'rownumber' => 'rownumber',
+      'id' => 'id',
+      'phpcode_3' => 'id',
+      'host_cpid' => 'host_cpid',
+      'phpcode_4' => 'id',
+      'phpcode_5' => 'phpcode_5',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'serialnum' => 'serialnum',
+      'phpcode' => 'phpcode',
+      'p_vendor' => 'p_vendor',
+      'p_model' => 'p_vendor',
+      'p_ncpus' => 'p_vendor',
+      'phpcode_1' => 'phpcode_1',
+      'os_name' => 'os_name',
+      'os_version' => 'os_name',
+    ),
+    'info' => array(
+      'id_1' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'show_hosts' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'id' => array(
+        'sortable' => 0,
+        'separator' => ' | ',
+      ),
+      'phpcode_3' => array(
+        'separator' => '',
+      ),
+      'host_cpid' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_4' => array(
+        'separator' => '',
+      ),
+      'phpcode_5' => array(
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'serialnum' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'p_vendor' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'p_model' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'p_ncpus' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+      'os_name' => array(
+        'sortable' => 1,
+        'separator' => '<br/>',
+      ),
+      'os_version' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('pane_title', '');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => FALSE,
+    'items_per_page' => FALSE,
+    'offset' => FALSE,
+    'link_to_view' => FALSE,
+    'more_link' => FALSE,
+    'path_override' => FALSE,
+    'title_override' => FALSE,
+    'exposed_form' => FALSE,
+    'fields_override' => FALSE,
+  ));
+  $handler->override_option('argument_input', array());
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_host_tasks_all
+  $view = new view;
+  $view->name = 'boinc_host_tasks_all';
+  $view->description = 'A list of all tasks for the given host';
+  $view->tag = '';
+  $view->base_table = 'result';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'result',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Task ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => 'task/[id]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'result',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'workunitid' => array(
+      'label' => 'Workunit ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'workunit/[workunitid]',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'workunitid',
+      'table' => 'result',
+      'field' => 'workunitid',
+      'relationship' => 'none',
+    ),
+    'sent_time' => array(
+      'label' => 'Sent',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s e',
+      'exclude' => 1,
+      'id' => 'sent_time',
+      'table' => 'result',
+      'field' => 'sent_time',
+      'relationship' => 'none',
+    ),
+    'received_time' => array(
+      'label' => 'Received time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'received_time',
+      'table' => 'result',
+      'field' => 'received_time',
+      'relationship' => 'none',
+    ),
+    'report_deadline' => array(
+      'label' => 'Report deadline',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'report_deadline',
+      'table' => 'result',
+      'field' => 'report_deadline',
+      'relationship' => 'none',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Sent',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'util\');
+  echo time_str($data->result_sent_time);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Time reported or deadline',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php return boincwork_task_time_reported($data->result_received_time, $data->result_report_deadline); ?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'server_state' => array(
+      'label' => 'Server state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'label' => 'Outcome',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'relationship' => 'none',
+    ),
+    'client_state' => array(
+      'label' => 'Client state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'client_state',
+      'table' => 'result',
+      'field' => 'client_state',
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'label' => 'Validation state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'relationship' => 'none',
+    ),
+    'exit_status' => array(
+      'label' => 'Exit status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'exit_status',
+      'table' => 'result',
+      'field' => 'exit_status',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'Status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'result\');
+  $result = new stdClass();
+  $result->server_state = $data->result_server_state;
+  $result->outcome = $data->result_outcome;
+  $result->validate_state = $data->result_validate_state;
+  $result->client_state = $data->result_client_state;
+  $result->exit_status = $data->result_exit_status;
+  return state_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'elapsed_time' => array(
+      'label' => 'Run time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'elapsed_time',
+      'table' => 'result',
+      'field' => 'elapsed_time',
+      'relationship' => 'none',
+    ),
+    'cpu_time' => array(
+      'label' => 'CPU time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'cpu_time',
+      'table' => 'result',
+      'field' => 'cpu_time',
+      'relationship' => 'none',
+    ),
+    'claimed_credit_1' => array(
+      'label' => 'Claimed credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'claimed_credit_1',
+      'table' => 'result',
+      'field' => 'claimed_credit',
+      'relationship' => 'none',
+    ),
+    'granted_credit' => array(
+      'label' => 'Granted credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'granted_credit',
+      'table' => 'result',
+      'field' => 'granted_credit',
+      'relationship' => 'none',
+    ),
+    'appid' => array(
+      'label' => 'Application ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'appid',
+      'table' => 'result',
+      'field' => 'appid',
+      'relationship' => 'none',
+    ),
+    'app_version_id' => array(
+      'label' => 'Application version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'app_version_id',
+      'table' => 'result',
+      'field' => 'app_version_id',
+      'relationship' => 'none',
+    ),
+    'phpcode_2' => array(
+      'label' => 'Application',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'result\');
+  $result = new stdClass();
+  $result->appid = $data->result_appid;
+  $result->app_version_id = $data->result_app_version_id;
+  return app_version_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'hostid' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => 'Tasks for computer %1',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'id' => 'hostid',
+      'table' => 'result',
+      'field' => 'hostid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('items_per_page', 20);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'workunitid' => 'workunitid',
+      'sent_time' => 'sent_time',
+      'received_time' => 'received_time',
+      'report_deadline' => 'report_deadline',
+      'phpcode_3' => 'phpcode_3',
+      'phpcode' => 'phpcode',
+      'server_state' => 'server_state',
+      'outcome' => 'outcome',
+      'client_state' => 'client_state',
+      'validate_state' => 'validate_state',
+      'exit_status' => 'exit_status',
+      'phpcode_1' => 'phpcode_1',
+      'elapsed_time' => 'elapsed_time',
+      'cpu_time' => 'cpu_time',
+      'claimed_credit_1' => 'claimed_credit_1',
+      'granted_credit' => 'granted_credit',
+      'app_version_id' => 'app_version_id',
+      'phpcode_2' => 'phpcode_2',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'workunitid' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'sent_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'received_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'report_deadline' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_3' => array(
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'server_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'outcome' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'client_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'validate_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'exit_status' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+      'elapsed_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'cpu_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'claimed_credit_1' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'granted_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'app_version_id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_2' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'id',
+  ));
+  $handler = $view->new_display('page', 'All tasks', 'page_1');
+  $handler->override_option('path', 'host/%/tasks/all');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => 'All tasks',
+    'description' => 'Show all tasks associated with the host',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'tab',
+    'title' => 'Tasks',
+    'description' => 'Show all tasks',
+    'weight' => '0',
+    'name' => 'secondary-links',
+  ));
+  $handler = $view->new_display('page', 'Error', 'page_2');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '>=',
+      'value' => array(
+        'value' => '3',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome_1' => array(
+      'operator' => 'not between',
+      'value' => array(
+        'value' => '',
+        'min' => '4',
+        'max' => '7',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_1',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome_2' => array(
+      'operator' => '<=',
+      'value' => array(
+        'value' => '7',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_2',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'host/%/tasks/error');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Error',
+    'description' => 'Show tasks with errors associated with the host',
+    'weight' => '5',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'In progress', 'page_3');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '4',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'host/%/tasks/active');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'In progress',
+    'description' => 'Show tasks in progress associated with the host',
+    'weight' => '1',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Invalidated', 'page_4');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_begin_2' => array(
+      'id' => 'views_or_begin_2',
+      'table' => 'views_or',
+      'field' => 'views_or_begin',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '6',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next_3' => array(
+      'id' => 'views_or_next_3',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'outcome_1' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_1',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_begin' => array(
+      'id' => 'views_or_begin',
+      'table' => 'views_or',
+      'field' => 'views_or_begin',
+    ),
+    'validate_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '2',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next_4' => array(
+      'id' => 'views_or_next_4',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'validate_state_1' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '3',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_1',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next' => array(
+      'id' => 'views_or_next',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'validate_state_2' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_2',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_end_3' => array(
+      'id' => 'views_or_end_3',
+      'table' => 'views_or',
+      'field' => 'views_or_end',
+    ),
+    'views_or_end_2' => array(
+      'id' => 'views_or_end_2',
+      'table' => 'views_or',
+      'field' => 'views_or_end',
+    ),
+  ));
+  $handler->override_option('path', 'host/%/tasks/invalid');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Invalid',
+    'description' => 'Show invalidated tasks associated with the host',
+    'weight' => '4',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Pending', 'page_5');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'operator' => '>=',
+      'value' => array(
+        'value' => '0',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state_1' => array(
+      'operator' => 'not between',
+      'value' => array(
+        'value' => '',
+        'min' => '0',
+        'max' => '4',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_1',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state_2' => array(
+      'operator' => '<=',
+      'value' => array(
+        'value' => '4',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_2',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'host/%/tasks/pending');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Pending',
+    'description' => 'Show tasks associated with the host with results pending',
+    'weight' => '2',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Validated', 'page_6');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'host/%/tasks/valid');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Valid',
+    'description' => 'Show validated tasks associated with the host',
+    'weight' => '3',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_task
+  $view = new view;
+  $view->name = 'boinc_task';
+  $view->description = 'Details for a specific task';
+  $view->tag = '';
+  $view->base_table = 'result';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'result',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'workunitid' => array(
+      'label' => 'Workunit ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'workunit/[workunitid]',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'workunitid',
+      'table' => 'result',
+      'field' => 'workunitid',
+      'relationship' => 'none',
+    ),
+    'create_time' => array(
+      'label' => 'Created',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'result',
+      'field' => 'create_time',
+      'relationship' => 'none',
+    ),
+    'sent_time' => array(
+      'label' => 'Sent',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'sent_time',
+      'table' => 'result',
+      'field' => 'sent_time',
+      'relationship' => 'none',
+    ),
+    'report_deadline' => array(
+      'label' => 'Report deadline',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'report_deadline',
+      'table' => 'result',
+      'field' => 'report_deadline',
+      'relationship' => 'none',
+    ),
+    'received_time' => array(
+      'label' => 'Received',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'received_time',
+      'table' => 'result',
+      'field' => 'received_time',
+      'relationship' => 'none',
+    ),
+    'server_state' => array(
+      'label' => 'Server state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'relationship' => 'none',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Server state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(array(\'result\', \'util\'));
+  $result = new stdClass();
+  $result->server_state = $data->result_server_state;
+  return result_server_state_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'label' => 'Outcome',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'relationship' => 'none',
+    ),
+    'phpcode_4' => array(
+      'label' => 'Outcome',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(array(\'result\', \'util\'));
+  $result = new stdClass();
+  $result->outcome = $data->result_outcome;
+  return result_outcome_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_4',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'client_state' => array(
+      'label' => 'Client state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'client_state',
+      'table' => 'result',
+      'field' => 'client_state',
+      'relationship' => 'none',
+    ),
+    'phpcode_5' => array(
+      'label' => 'Client state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(array(\'result\', \'util\'));
+  $result = new stdClass();
+  $result->client_state = $data->result_client_state;
+  return result_client_state_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_5',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'exit_status' => array(
+      'label' => 'Exit status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'exit_status',
+      'table' => 'result',
+      'field' => 'exit_status',
+      'relationship' => 'none',
+    ),
+    'phpcode_6' => array(
+      'label' => 'Exit status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(array(\'result\', \'util\'));
+  return exit_status_string($data->result_exit_status);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_6',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'hostid' => array(
+      'label' => 'Computer',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'host/[hostid]',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'hostid',
+      'table' => 'result',
+      'field' => 'hostid',
+      'relationship' => 'none',
+    ),
+    'elapsed_time' => array(
+      'label' => 'Run time (sec)',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'elapsed_time',
+      'table' => 'result',
+      'field' => 'elapsed_time',
+      'relationship' => 'none',
+    ),
+    'cpu_time' => array(
+      'label' => 'CPU time (sec)',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'cpu_time',
+      'table' => 'result',
+      'field' => 'cpu_time',
+      'relationship' => 'none',
+    ),
+    'peak_working_set_size' => array(
+      'label' => 'Peak working set size (MB)',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'peak_working_set_size',
+      'table' => 'result',
+      'field' => 'peak_working_set_size',
+      'relationship' => 'none',
+    ),
+    'peak_swap_size' => array(
+      'label' => 'Peak swap size (MB)',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'peak_swap_size',
+      'table' => 'result',
+      'field' => 'peak_swap_size',
+      'relationship' => 'none',
+    ),
+    'peak_disk_usage' => array(
+      'label' => 'Peak disk usage (MB)',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'peak_disk_usage',
+      'table' => 'result',
+      'field' => 'peak_disk_usage',
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'label' => 'Validation state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'relationship' => 'none',
+    ),
+    'phpcode_7' => array(
+      'label' => 'Validation state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(array(\'result\', \'util\'));
+  $result = new stdClass();
+  $result->validate_state = $data->result_validate_state;
+  return validate_state_str($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_7',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'claimed_credit_1' => array(
+      'label' => 'Claimed credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'claimed_credit_1',
+      'table' => 'result',
+      'field' => 'claimed_credit',
+      'relationship' => 'none',
+    ),
+    'granted_credit' => array(
+      'label' => 'Granted credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'granted_credit',
+      'table' => 'result',
+      'field' => 'granted_credit',
+      'relationship' => 'none',
+    ),
+    'appid' => array(
+      'label' => 'Application ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'appid',
+      'table' => 'result',
+      'field' => 'appid',
+      'relationship' => 'none',
+    ),
+    'app_version_id' => array(
+      'label' => 'Application version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'app_version_id',
+      'table' => 'result',
+      'field' => 'app_version_id',
+      'relationship' => 'none',
+    ),
+    'phpcode_2' => array(
+      'label' => 'Application',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(array(\'result\', \'util\'));
+  $result = new stdClass();
+  $result->appid = $data->result_appid;
+  $result->app_version_id = $data->result_app_version_id;
+  return app_version_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'stderr_out' => array(
+      'label' => 'Stderr output',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '<pre>[stderr_out]</pre>',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 1,
+      'id' => 'stderr_out',
+      'table' => 'result',
+      'field' => 'stderr_out',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'id' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => 'Task %1',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'id' => 'id',
+      'table' => 'result',
+      'field' => 'id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('footer_format', '1');
+  $handler->override_option('footer_empty', 0);
+  $handler->override_option('items_per_page', 0);
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('items_per_page', 20);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'grid');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'columns' => '2',
+    'alignment' => 'vertical',
+    'fill_single_line' => 1,
+  ));
+  $handler->override_option('path', 'task');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => 'All tasks',
+    'description' => 'Show all tasks associated with the account',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'normal',
+    'title' => 'Tasks',
+    'description' => 'Show all tasks',
+    'weight' => '0',
+    'name' => 'secondary-links',
+  ));
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_users
+  $view = new view;
+  $view->name = 'boinc_users';
+  $view->description = 'User lists and statistics';
+  $view->tag = '';
+  $view->base_table = 'user';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  $uid = boincuser_lookup_uid($data->id);
+  if ($uid) {
+    $account = user_load($uid);
+    print l($account->name, "account/{$uid}");
+  }
+  else {
+    // No Drupal account
+    print $data->user_name;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'country' => array(
+      'label' => 'Country',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'country',
+      'table' => 'user',
+      'field' => 'country',
+      'relationship' => 'none',
+    ),
+    'create_time' => array(
+      'label' => 'Joined',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('items_per_page', 100);
+  $handler->override_option('use_pager', '0');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'rownumber' => 'rownumber',
+      'id' => 'id',
+      'name' => 'name',
+      'phpcode' => 'phpcode',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'country' => 'country',
+      'create_time' => 'create_time',
+    ),
+    'info' => array(
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'country' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'create_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler = $view->new_display('page', 'Top users', 'page_1');
+  $handler->override_option('path', 'community/stats/users');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Top Users',
+    'description' => '',
+    'weight' => '0',
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('panel_pane', 'Top users pane', 'panel_pane_1');
+  $handler->override_option('fields', array(
+    'rownumber' => array(
+      'label' => 'Rank',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'rownumber',
+      'table' => 'customfield',
+      'field' => 'rownumber',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Id',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'id',
+      'table' => 'user',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'user',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  $uid = boincuser_lookup_uid($data->id);
+  if ($uid) {
+    $account = user_load($uid);
+    print l($account->name, "account/{$uid}");
+  }
+  else {
+    // No Drupal account
+    print $data->user_name;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'country' => array(
+      'label' => 'Country',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 0,
+      'id' => 'country',
+      'table' => 'user',
+      'field' => 'country',
+      'relationship' => 'none',
+    ),
+    'expavg_credit' => array(
+      'label' => 'Recent average credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'expavg_credit',
+      'table' => 'user',
+      'field' => 'expavg_credit',
+      'relationship' => 'none',
+    ),
+    'total_credit' => array(
+      'label' => 'Total Credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '0',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 0,
+      'set_precision' => 1,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'total_credit',
+      'table' => 'user',
+      'field' => 'total_credit',
+      'relationship' => 'none',
+    ),
+    'create_time' => array(
+      'label' => 'Joined',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'create_time',
+      'table' => 'user',
+      'field' => 'create_time',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+    ),
+  ));
+  $handler->override_option('title', 'Top participants');
+  $handler->override_option('items_per_page', 10);
+  $handler->override_option('use_more', 1);
+  $handler->override_option('use_more_always', 0);
+  $handler->override_option('use_more_text', 'view more');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'desc',
+    'summary' => '',
+    'columns' => array(
+      'rownumber' => 'rownumber',
+      'id' => 'id',
+      'name' => 'name',
+      'phpcode' => 'phpcode',
+      'country' => 'country',
+      'expavg_credit' => 'expavg_credit',
+      'total_credit' => 'total_credit',
+      'create_time' => 'create_time',
+    ),
+    'info' => array(
+      'rownumber' => array(
+        'separator' => '',
+      ),
+      'id' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'country' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'expavg_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'total_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'create_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'expavg_credit',
+  ));
+  $handler->override_option('pane_title', '');
+  $handler->override_option('pane_description', '');
+  $handler->override_option('pane_category', array(
+    'name' => 'View panes',
+    'weight' => 0,
+  ));
+  $handler->override_option('allow', array(
+    'use_pager' => FALSE,
+    'items_per_page' => FALSE,
+    'offset' => FALSE,
+    'link_to_view' => FALSE,
+    'more_link' => FALSE,
+    'path_override' => FALSE,
+    'title_override' => FALSE,
+    'exposed_form' => FALSE,
+    'fields_override' => FALSE,
+  ));
+  $handler->override_option('argument_input', array());
+  $handler->override_option('link_to_view', 0);
+  $handler->override_option('inherit_panels_path', 0);
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_workunit
+  $view = new view;
+  $view->name = 'boinc_workunit';
+  $view->description = 'Details for a specific workunit';
+  $view->tag = '';
+  $view->base_table = 'workunit';
+  $view->core = 0;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'appid' => array(
+      'label' => 'Application',
+      'required' => 1,
+      'id' => 'appid',
+      'table' => 'workunit',
+      'field' => 'appid',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'workunit',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'phpcode_8' => array(
+      'label' => 'dont_suppress_pending',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'util\');
+  $dont_suppress_pending = parse_bool(get_config(), "dont_suppress_pending");
+  $data->dontsuppresspending = $dont_suppress_pending;
+?>',
+      'exclude' => 1,
+      'id' => 'phpcode_8',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'user_friendly_name' => array(
+      'label' => 'Application',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'exclude' => 0,
+      'id' => 'user_friendly_name',
+      'table' => 'app',
+      'field' => 'user_friendly_name',
+      'relationship' => 'appid',
+    ),
+    'create_time' => array(
+      'label' => 'Created',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s T',
+      'exclude' => 0,
+      'id' => 'create_time',
+      'table' => 'workunit',
+      'field' => 'create_time',
+      'relationship' => 'none',
+    ),
+    'canonical_resultid' => array(
+      'label' => 'Canonical result',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'canonical_resultid',
+      'table' => 'workunit',
+      'field' => 'canonical_resultid',
+      'relationship' => 'none',
+    ),
+    'canonical_credit' => array(
+      'label' => 'Canonical credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 0,
+      'precision' => '0',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'canonical_credit',
+      'table' => 'workunit',
+      'field' => 'canonical_credit',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Canonical result',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if ($data->workunit_canonical_resultid) {
+    echo l($data->workunit_canonical_resultid, "task/{$data->workunit_canonical_resultid}");
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'Granted credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'value' => '<?php
+  if ($data->workunit_canonical_resultid) {
+    echo $data->workunit_canonical_credit;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'error_mask' => array(
+      'label' => 'Error mask',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'error_mask',
+      'table' => 'workunit',
+      'field' => 'error_mask',
+      'relationship' => 'none',
+    ),
+    'target_nresults' => array(
+      'label' => 'Initial replication',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'target_nresults',
+      'table' => 'workunit',
+      'field' => 'target_nresults',
+      'relationship' => 'none',
+    ),
+    'max_error_results' => array(
+      'label' => 'Max error tasks',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'max_error_results',
+      'table' => 'workunit',
+      'field' => 'max_error_results',
+      'relationship' => 'none',
+    ),
+    'max_success_results' => array(
+      'label' => 'Max success tasks',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'max_success_results',
+      'table' => 'workunit',
+      'field' => 'max_success_results',
+      'relationship' => 'none',
+    ),
+    'max_total_results' => array(
+      'label' => 'Max total tasks',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'max_total_results',
+      'table' => 'workunit',
+      'field' => 'max_total_results',
+      'relationship' => 'none',
+    ),
+    'min_quorum' => array(
+      'label' => 'Minimum quorum',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'min_quorum',
+      'table' => 'workunit',
+      'field' => 'min_quorum',
+      'relationship' => 'none',
+    ),
+    'target_nresults_1' => array(
+      'label' => 'Target number of results',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'target_nresults_1',
+      'table' => 'app',
+      'field' => 'target_nresults',
+      'relationship' => 'appid',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Minimum quorum',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (!($data->app_workunit_target_nresults>0 AND !$data->workunit_canonical_resultid AND !$data->workunit_error_mask AND !$data->dontsuppresspending)) {
+    echo $data->workunit_min_quorum;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_4' => array(
+      'label' => 'Initial replication',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (!($data->app_workunit_target_nresults>0 AND !$data->workunit_canonical_resultid AND !$data->workunit_error_mask AND !$data->dontsuppresspending)) {
+
+    echo $data->workunit_target_nresults;
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_4',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_5' => array(
+      'label' => 'Max # of error/total/success tasks',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (!($data->app_workunit_target_nresults>0 AND !$data->workunit_canonical_resultid AND !$data->workunit_error_mask AND !$data->dontsuppresspending)) {
+    echo "{$data->workunit_max_error_results}, {$data->workunit_max_total_results}, {$data->workunit_max_success_results}";
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_5',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode_6' => array(
+      'label' => 'Errors',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (!($data->app_workunit_target_nresults>0 AND !$data->workunit_canonical_resultid AND !$data->workunit_error_mask AND !$data->dontsuppresspending)) {
+    if ($data->workunit_error_mask) {
+      require_boinc(\'result\');
+      echo wu_error_mask_str($data->workunit_error_mask);
+    }
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_6',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'need_validate' => array(
+      'label' => 'Needs validation',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'need_validate',
+      'table' => 'workunit',
+      'field' => 'need_validate',
+      'relationship' => 'none',
+    ),
+    'phpcode_7' => array(
+      'label' => 'Validation',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 1,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  if (!($data->app_workunit_target_nresults>0 AND !$data->workunit_canonical_resultid AND !$data->workunit_error_mask AND !$data->dontsuppresspending)) {
+
+    if ($data->workunit_need_validate) {
+      echo bts(\'Pending\', array(), NULL, \'boinc:workunit-detail\');
+    }
+  }
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_7',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'id' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => 'Workunit %1',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'id' => 'id',
+      'table' => 'workunit',
+      'field' => 'id',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        3 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_argument_fixed' => '',
+      'default_argument_user' => 0,
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'forum' => 0,
+        'job_post' => 0,
+        'news' => 0,
+        'page' => 0,
+        'profile' => 0,
+        'story' => 0,
+        'team' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('footer_format', '1');
+  $handler->override_option('footer_empty', 0);
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->override_option('path', 'workunit');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'primary-links',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  // Exported view: boinc_workunit_tasks_all
+  $view = new view;
+  $view->name = 'boinc_workunit_tasks_all';
+  $view->description = 'A list of all tasks in a given workunit';
+  $view->tag = '';
+  $view->base_table = 'result';
+  $view->core = 6;
+  $view->api_version = '2';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'name' => array(
+      'label' => 'Name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'exclude' => 1,
+      'id' => 'name',
+      'table' => 'result',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'id' => array(
+      'label' => 'Task ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => 'task/[id]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'id',
+      'table' => 'result',
+      'field' => 'id',
+      'relationship' => 'none',
+    ),
+    'hostid' => array(
+      'label' => 'Computer',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 1,
+        'path' => 'host/[hostid]',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'hostid',
+      'table' => 'result',
+      'field' => 'hostid',
+      'relationship' => 'none',
+    ),
+    'sent_time' => array(
+      'label' => 'Sent',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'custom',
+      'custom_date_format' => 'j M Y G:i:s e',
+      'exclude' => 1,
+      'id' => 'sent_time',
+      'table' => 'result',
+      'field' => 'sent_time',
+      'relationship' => 'none',
+    ),
+    'received_time' => array(
+      'label' => 'Received time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'received_time',
+      'table' => 'result',
+      'field' => 'received_time',
+      'relationship' => 'none',
+    ),
+    'report_deadline' => array(
+      'label' => 'Report deadline',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'date_format' => 'small',
+      'custom_date_format' => '',
+      'exclude' => 1,
+      'id' => 'report_deadline',
+      'table' => 'result',
+      'field' => 'report_deadline',
+      'relationship' => 'none',
+    ),
+    'phpcode_3' => array(
+      'label' => 'Sent',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'util\');
+  echo time_str($data->result_sent_time);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_3',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'relationship' => 'none',
+    ),
+    'phpcode' => array(
+      'label' => 'Time reported or deadline',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php return boincwork_task_time_reported($data->result_received_time, $data->result_report_deadline); ?>',
+      'exclude' => 0,
+      'id' => 'phpcode',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'server_state' => array(
+      'label' => 'Server state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'label' => 'Outcome',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'relationship' => 'none',
+    ),
+    'client_state' => array(
+      'label' => 'Client state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'client_state',
+      'table' => 'result',
+      'field' => 'client_state',
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'label' => 'Validation state',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'relationship' => 'none',
+    ),
+    'exit_status' => array(
+      'label' => 'Exit status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'exit_status',
+      'table' => 'result',
+      'field' => 'exit_status',
+      'relationship' => 'none',
+    ),
+    'phpcode_1' => array(
+      'label' => 'Status',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'value' => '<?php
+  require_boinc(\'result\');
+  $result = new stdClass();
+  $result->server_state = $data->result_server_state;
+  $result->outcome = $data->result_outcome;
+  $result->validate_state = $data->result_validate_state;
+  $result->client_state = $data->result_client_state;
+  $result->exit_status = $data->result_exit_status;
+  return state_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_1',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+    'elapsed_time' => array(
+      'label' => 'Run time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'elapsed_time',
+      'table' => 'result',
+      'field' => 'elapsed_time',
+      'relationship' => 'none',
+    ),
+    'cpu_time' => array(
+      'label' => 'CPU time',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'cpu_time',
+      'table' => 'result',
+      'field' => 'cpu_time',
+      'relationship' => 'none',
+    ),
+    'claimed_credit_1' => array(
+      'label' => 'Claimed credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'claimed_credit_1',
+      'table' => 'result',
+      'field' => 'claimed_credit',
+      'relationship' => 'none',
+    ),
+    'granted_credit' => array(
+      'label' => 'Granted credit',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => 1,
+      'precision' => '2',
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 0,
+      'id' => 'granted_credit',
+      'table' => 'result',
+      'field' => 'granted_credit',
+      'relationship' => 'none',
+    ),
+    'appid' => array(
+      'label' => 'Application ID',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'format_plural' => 0,
+      'format_plural_singular' => '1',
+      'format_plural_plural' => '@count',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'appid',
+      'table' => 'result',
+      'field' => 'appid',
+      'relationship' => 'none',
+    ),
+    'app_version_id' => array(
+      'label' => 'Application version',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => '',
+      'prefix' => '',
+      'suffix' => '',
+      'exclude' => 1,
+      'id' => 'app_version_id',
+      'table' => 'result',
+      'field' => 'app_version_id',
+      'relationship' => 'none',
+    ),
+    'phpcode_2' => array(
+      'label' => 'Application',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'absolute' => 0,
+        'link_class' => '',
+        'alt' => '',
+        'rel' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'target' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'html' => 0,
+        'strip_tags' => 0,
+      ),
+      'empty' => '',
+      'hide_empty' => 0,
+      'empty_zero' => 0,
+      'hide_alter_empty' => 1,
+      'value' => '<?php
+  require_boinc(\'result\');
+  $result = new stdClass();
+  $result->appid = $data->result_appid;
+  $result->app_version_id = $data->result_app_version_id;
+  return app_version_string($result);
+?>',
+      'exclude' => 0,
+      'id' => 'phpcode_2',
+      'table' => 'customfield',
+      'field' => 'phpcode',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'workunitid' => array(
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => 'Tasks for workunit %1',
+      'breadcrumb' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'numeric',
+      'validate_fail' => 'not found',
+      'id' => 'workunitid',
+      'table' => 'result',
+      'field' => 'workunitid',
+      'validate_user_argument_type' => 'uid',
+      'validate_user_roles' => array(
+        2 => 0,
+        4 => 0,
+        7 => 0,
+        5 => 0,
+        3 => 0,
+        6 => 0,
+      ),
+      'me_redirect' => 0,
+      'me_validate_user_argument_type' => 'uid',
+      'me_validate_user_roles' => array(
+        2 => 0,
+        4 => 0,
+        7 => 0,
+        5 => 0,
+        3 => 0,
+        6 => 0,
+      ),
+      'relationship' => 'none',
+      'default_options_div_prefix' => '',
+      'default_taxonomy_tid_term_page' => 0,
+      'default_taxonomy_tid_node' => 0,
+      'default_taxonomy_tid_limit' => 0,
+      'default_taxonomy_tid_vids' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'page' => 0,
+        'news' => 0,
+        'profile' => 0,
+        'forum' => 0,
+        'panel' => 0,
+        'story' => 0,
+      ),
+      'validate_argument_node_access' => 0,
+      'validate_argument_nid_type' => 'nid',
+      'validate_argument_vocabulary' => array(
+        1 => 0,
+        2 => 0,
+      ),
+      'validate_argument_type' => 'tid',
+      'validate_argument_transform' => 0,
+      'validate_user_restrict_roles' => 0,
+      'validate_argument_node_flag_name' => '*relationship*',
+      'validate_argument_node_flag_test' => 'flaggable',
+      'validate_argument_node_flag_id_type' => 'id',
+      'validate_argument_user_flag_name' => '*relationship*',
+      'validate_argument_user_flag_test' => 'flaggable',
+      'validate_argument_user_flag_id_type' => 'id',
+      'validate_argument_php' => '',
+      'me_validate_user_restrict_roles' => 0,
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('items_per_page', 20);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 1,
+    'order' => 'asc',
+    'summary' => '',
+    'columns' => array(
+      'id' => 'id',
+      'hostid' => 'hostid',
+      'sent_time' => 'sent_time',
+      'received_time' => 'received_time',
+      'report_deadline' => 'report_deadline',
+      'phpcode_3' => 'phpcode_3',
+      'phpcode' => 'phpcode',
+      'server_state' => 'server_state',
+      'outcome' => 'outcome',
+      'client_state' => 'client_state',
+      'validate_state' => 'validate_state',
+      'exit_status' => 'exit_status',
+      'phpcode_1' => 'phpcode_1',
+      'elapsed_time' => 'elapsed_time',
+      'cpu_time' => 'cpu_time',
+      'claimed_credit_1' => 'claimed_credit_1',
+      'granted_credit' => 'granted_credit',
+      'app_version_id' => 'app_version_id',
+      'phpcode_2' => 'phpcode_2',
+    ),
+    'info' => array(
+      'id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'hostid' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'sent_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'received_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'report_deadline' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_3' => array(
+        'separator' => '',
+      ),
+      'phpcode' => array(
+        'separator' => '',
+      ),
+      'server_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'outcome' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'client_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'validate_state' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'exit_status' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'phpcode_1' => array(
+        'separator' => '',
+      ),
+      'elapsed_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'cpu_time' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'claimed_credit_1' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'granted_credit' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'app_version_id' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'phpcode_2' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'id',
+  ));
+  $handler = $view->new_display('page', 'All tasks', 'page_1');
+  $handler->override_option('path', 'workunit/%/tasks/all');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => 'All tasks',
+    'description' => 'Show all tasks associated with the workunit',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'tab',
+    'title' => 'Tasks',
+    'description' => 'Show all tasks',
+    'weight' => '0',
+    'name' => 'secondary-links',
+  ));
+  $handler = $view->new_display('page', 'Error', 'page_2');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '>=',
+      'value' => array(
+        'value' => '3',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome_1' => array(
+      'operator' => 'not between',
+      'value' => array(
+        'value' => '',
+        'min' => '4',
+        'max' => '7',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_1',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome_2' => array(
+      'operator' => '<=',
+      'value' => array(
+        'value' => '7',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_2',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'workunit/%/tasks/error');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Error',
+    'description' => 'Show tasks with errors associated with the workunit',
+    'weight' => '5',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'In progress', 'page_3');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '4',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'workunit/%/tasks/active');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'In progress',
+    'description' => 'Show tasks in progress associated with the workunit',
+    'weight' => '1',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Invalidated', 'page_4');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_begin_2' => array(
+      'id' => 'views_or_begin_2',
+      'table' => 'views_or',
+      'field' => 'views_or_begin',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '6',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next_3' => array(
+      'id' => 'views_or_next_3',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'outcome_1' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome_1',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_begin' => array(
+      'id' => 'views_or_begin',
+      'table' => 'views_or',
+      'field' => 'views_or_begin',
+    ),
+    'validate_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '2',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next_4' => array(
+      'id' => 'views_or_next_4',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'validate_state_1' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '3',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_1',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_next' => array(
+      'id' => 'views_or_next',
+      'table' => 'views_or',
+      'field' => 'views_or_next',
+    ),
+    'validate_state_2' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_2',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'views_or_end_3' => array(
+      'id' => 'views_or_end_3',
+      'table' => 'views_or',
+      'field' => 'views_or_end',
+    ),
+    'views_or_end_2' => array(
+      'id' => 'views_or_end_2',
+      'table' => 'views_or',
+      'field' => 'views_or_end',
+    ),
+  ));
+  $handler->override_option('path', 'workunit/%/tasks/invalid');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Invalid',
+    'description' => 'Show invalidated tasks associated with the workunit',
+    'weight' => '4',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Pending', 'page_5');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'operator' => '>=',
+      'value' => array(
+        'value' => '0',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state_1' => array(
+      'operator' => 'not between',
+      'value' => array(
+        'value' => '',
+        'min' => '0',
+        'max' => '4',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_1',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state_2' => array(
+      'operator' => '<=',
+      'value' => array(
+        'value' => '4',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state_2',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'workunit/%/tasks/pending');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Pending',
+    'description' => 'Show tasks associated with the workunit with results pending',
+    'weight' => '2',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler = $view->new_display('page', 'Validated', 'page_6');
+  $handler->override_option('filters', array(
+    'server_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '5',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'server_state',
+      'table' => 'result',
+      'field' => 'server_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'outcome' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'outcome',
+      'table' => 'result',
+      'field' => 'outcome',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+    'validate_state' => array(
+      'operator' => '=',
+      'value' => array(
+        'value' => '1',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'validate_state',
+      'table' => 'result',
+      'field' => 'validate_state',
+      'override' => array(
+        'button' => 'Use default',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'workunit/%/tasks/valid');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Valid',
+    'description' => 'Show validated tasks associated with the workunit',
+    'weight' => '3',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSans-Bold.ttf b/drupal/sites/all/libraries/fonts/DejaVuSans-Bold.ttf
new file mode 100644
index 0000000..0f4d5e9
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSans-Bold.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSans-BoldOblique.ttf b/drupal/sites/all/libraries/fonts/DejaVuSans-BoldOblique.ttf
new file mode 100644
index 0000000..48f06a8
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSans-BoldOblique.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSans-ExtraLight.ttf b/drupal/sites/all/libraries/fonts/DejaVuSans-ExtraLight.ttf
new file mode 100644
index 0000000..01a5652
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSans-ExtraLight.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSans-Oblique.ttf b/drupal/sites/all/libraries/fonts/DejaVuSans-Oblique.ttf
new file mode 100644
index 0000000..4485638
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSans-Oblique.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSans.ttf b/drupal/sites/all/libraries/fonts/DejaVuSans.ttf
new file mode 100644
index 0000000..27cff47
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSans.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-Bold.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-Bold.ttf
new file mode 100644
index 0000000..9edd89c
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-Bold.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-BoldOblique.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-BoldOblique.ttf
new file mode 100644
index 0000000..e2db5ce
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-BoldOblique.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-Oblique.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-Oblique.ttf
new file mode 100644
index 0000000..7cec04c
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed-Oblique.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansCondensed.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed.ttf
new file mode 100644
index 0000000..826e619
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansCondensed.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansMono-Bold.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansMono-Bold.ttf
new file mode 100644
index 0000000..09d4279
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansMono-Bold.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansMono-BoldOblique.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansMono-BoldOblique.ttf
new file mode 100644
index 0000000..0344c22
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansMono-BoldOblique.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansMono-Oblique.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansMono-Oblique.ttf
new file mode 100644
index 0000000..bc16d51
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansMono-Oblique.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSansMono.ttf b/drupal/sites/all/libraries/fonts/DejaVuSansMono.ttf
new file mode 100644
index 0000000..7260bd6
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSansMono.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerif-Bold.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerif-Bold.ttf
new file mode 100644
index 0000000..afa2d5e
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerif-Bold.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerif-BoldItalic.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerif-BoldItalic.ttf
new file mode 100644
index 0000000..ce9443e
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerif-BoldItalic.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerif-Italic.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerif-Italic.ttf
new file mode 100644
index 0000000..c1864a3
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerif-Italic.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerif.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerif.ttf
new file mode 100644
index 0000000..ed53a29
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerif.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-Bold.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-Bold.ttf
new file mode 100644
index 0000000..55adca4
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-Bold.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-BoldItalic.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-BoldItalic.ttf
new file mode 100644
index 0000000..e211957
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-BoldItalic.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-Italic.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-Italic.ttf
new file mode 100644
index 0000000..275b26d
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed-Italic.ttf differ
diff --git a/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed.ttf b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed.ttf
new file mode 100644
index 0000000..83120cd
Binary files /dev/null and b/drupal/sites/all/libraries/fonts/DejaVuSerifCondensed.ttf differ
diff --git a/drupal/sites/all/libraries/phpmailer/LICENSE b/drupal/sites/all/libraries/phpmailer/LICENSE
new file mode 100644
index 0000000..8e0763d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/LICENSE
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/drupal/sites/all/libraries/phpmailer/PHPMailerAutoload.php b/drupal/sites/all/libraries/phpmailer/PHPMailerAutoload.php
new file mode 100644
index 0000000..eaa2e30
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/PHPMailerAutoload.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * PHPMailer SPL autoloader.
+ * PHP Version 5
+ * @package PHPMailer
+ * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ * @author Brent R. Matzelle (original founder)
+ * @copyright 2012 - 2014 Marcus Bointon
+ * @copyright 2010 - 2012 Jim Jagielski
+ * @copyright 2004 - 2009 Andy Prevost
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ * @note This program is distributed in the hope that it will be useful - WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * PHPMailer SPL autoloader.
+ * @param string $classname The name of the class to load
+ */
+function PHPMailerAutoload($classname)
+{
+    //Can't use __DIR__ as it's only in PHP 5.3+
+    $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
+    if (is_readable($filename)) {
+        require $filename;
+    }
+}
+
+if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
+    //SPL autoloading was introduced in PHP 5.1.2
+    if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
+        spl_autoload_register('PHPMailerAutoload', true, true);
+    } else {
+        spl_autoload_register('PHPMailerAutoload');
+    }
+} else {
+    /**
+     * Fall back to traditional autoload for old PHP versions
+     * @param string $classname The name of the class to load
+     */
+    function __autoload($classname)
+    {
+        PHPMailerAutoload($classname);
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/VERSION b/drupal/sites/all/libraries/phpmailer/VERSION
new file mode 100644
index 0000000..567eefa
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/VERSION
@@ -0,0 +1 @@
+5.2.21
diff --git a/drupal/sites/all/libraries/phpmailer/class.phpmailer.php b/drupal/sites/all/libraries/phpmailer/class.phpmailer.php
new file mode 100644
index 0000000..8ff13f1
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/class.phpmailer.php
@@ -0,0 +1,4025 @@
+<?php
+/**
+ * PHPMailer - PHP email creation and transport class.
+ * PHP Version 5
+ * @package PHPMailer
+ * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ * @author Brent R. Matzelle (original founder)
+ * @copyright 2012 - 2014 Marcus Bointon
+ * @copyright 2010 - 2012 Jim Jagielski
+ * @copyright 2004 - 2009 Andy Prevost
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ * @note This program is distributed in the hope that it will be useful - WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * PHPMailer - PHP email creation and transport class.
+ * @package PHPMailer
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ * @author Brent R. Matzelle (original founder)
+ */
+class PHPMailer
+{
+    /**
+     * The PHPMailer Version number.
+     * @var string
+     */
+    public $Version = '5.2.21';
+
+    /**
+     * Email priority.
+     * Options: null (default), 1 = High, 3 = Normal, 5 = low.
+     * When null, the header is not set at all.
+     * @var integer
+     */
+    public $Priority = null;
+
+    /**
+     * The character set of the message.
+     * @var string
+     */
+    public $CharSet = 'iso-8859-1';
+
+    /**
+     * The MIME Content-type of the message.
+     * @var string
+     */
+    public $ContentType = 'text/plain';
+
+    /**
+     * The message encoding.
+     * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable".
+     * @var string
+     */
+    public $Encoding = '8bit';
+
+    /**
+     * Holds the most recent mailer error message.
+     * @var string
+     */
+    public $ErrorInfo = '';
+
+    /**
+     * The From email address for the message.
+     * @var string
+     */
+    public $From = 'root at localhost';
+
+    /**
+     * The From name of the message.
+     * @var string
+     */
+    public $FromName = 'Root User';
+
+    /**
+     * The Sender email (Return-Path) of the message.
+     * If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
+     * @var string
+     */
+    public $Sender = '';
+
+    /**
+     * The Return-Path of the message.
+     * If empty, it will be set to either From or Sender.
+     * @var string
+     * @deprecated Email senders should never set a return-path header;
+     * it's the receiver's job (RFC5321 section 4.4), so this no longer does anything.
+     * @link https://tools.ietf.org/html/rfc5321#section-4.4 RFC5321 reference
+     */
+    public $ReturnPath = '';
+
+    /**
+     * The Subject of the message.
+     * @var string
+     */
+    public $Subject = '';
+
+    /**
+     * An HTML or plain text message body.
+     * If HTML then call isHTML(true).
+     * @var string
+     */
+    public $Body = '';
+
+    /**
+     * The plain-text message body.
+     * This body can be read by mail clients that do not have HTML email
+     * capability such as mutt & Eudora.
+     * Clients that can read HTML will view the normal Body.
+     * @var string
+     */
+    public $AltBody = '';
+
+    /**
+     * An iCal message part body.
+     * Only supported in simple alt or alt_inline message types
+     * To generate iCal events, use the bundled extras/EasyPeasyICS.php class or iCalcreator
+     * @link http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/
+     * @link http://kigkonsult.se/iCalcreator/
+     * @var string
+     */
+    public $Ical = '';
+
+    /**
+     * The complete compiled MIME message body.
+     * @access protected
+     * @var string
+     */
+    protected $MIMEBody = '';
+
+    /**
+     * The complete compiled MIME message headers.
+     * @var string
+     * @access protected
+     */
+    protected $MIMEHeader = '';
+
+    /**
+     * Extra headers that createHeader() doesn't fold in.
+     * @var string
+     * @access protected
+     */
+    protected $mailHeader = '';
+
+    /**
+     * Word-wrap the message body to this number of chars.
+     * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance.
+     * @var integer
+     */
+    public $WordWrap = 0;
+
+    /**
+     * Which method to use to send mail.
+     * Options: "mail", "sendmail", or "smtp".
+     * @var string
+     */
+    public $Mailer = 'mail';
+
+    /**
+     * The path to the sendmail program.
+     * @var string
+     */
+    public $Sendmail = '/usr/sbin/sendmail';
+
+    /**
+     * Whether mail() uses a fully sendmail-compatible MTA.
+     * One which supports sendmail's "-oi -f" options.
+     * @var boolean
+     */
+    public $UseSendmailOptions = true;
+
+    /**
+     * Path to PHPMailer plugins.
+     * Useful if the SMTP class is not in the PHP include path.
+     * @var string
+     * @deprecated Should not be needed now there is an autoloader.
+     */
+    public $PluginDir = '';
+
+    /**
+     * The email address that a reading confirmation should be sent to, also known as read receipt.
+     * @var string
+     */
+    public $ConfirmReadingTo = '';
+
+    /**
+     * The hostname to use in the Message-ID header and as default HELO string.
+     * If empty, PHPMailer attempts to find one with, in order,
+     * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value
+     * 'localhost.localdomain'.
+     * @var string
+     */
+    public $Hostname = '';
+
+    /**
+     * An ID to be used in the Message-ID header.
+     * If empty, a unique id will be generated.
+     * You can set your own, but it must be in the format "<id at domain>",
+     * as defined in RFC5322 section 3.6.4 or it will be ignored.
+     * @see https://tools.ietf.org/html/rfc5322#section-3.6.4
+     * @var string
+     */
+    public $MessageID = '';
+
+    /**
+     * The message Date to be used in the Date header.
+     * If empty, the current date will be added.
+     * @var string
+     */
+    public $MessageDate = '';
+
+    /**
+     * SMTP hosts.
+     * Either a single hostname or multiple semicolon-delimited hostnames.
+     * You can also specify a different port
+     * for each host by using this format: [hostname:port]
+     * (e.g. "smtp1.example.com:25;smtp2.example.com").
+     * You can also specify encryption type, for example:
+     * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465").
+     * Hosts will be tried in order.
+     * @var string
+     */
+    public $Host = 'localhost';
+
+    /**
+     * The default SMTP server port.
+     * @var integer
+     * @TODO Why is this needed when the SMTP class takes care of it?
+     */
+    public $Port = 25;
+
+    /**
+     * The SMTP HELO of the message.
+     * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find
+     * one with the same method described above for $Hostname.
+     * @var string
+     * @see PHPMailer::$Hostname
+     */
+    public $Helo = '';
+
+    /**
+     * What kind of encryption to use on the SMTP connection.
+     * Options: '', 'ssl' or 'tls'
+     * @var string
+     */
+    public $SMTPSecure = '';
+
+    /**
+     * Whether to enable TLS encryption automatically if a server supports it,
+     * even if `SMTPSecure` is not set to 'tls'.
+     * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid.
+     * @var boolean
+     */
+    public $SMTPAutoTLS = true;
+
+    /**
+     * Whether to use SMTP authentication.
+     * Uses the Username and Password properties.
+     * @var boolean
+     * @see PHPMailer::$Username
+     * @see PHPMailer::$Password
+     */
+    public $SMTPAuth = false;
+
+    /**
+     * Options array passed to stream_context_create when connecting via SMTP.
+     * @var array
+     */
+    public $SMTPOptions = array();
+
+    /**
+     * SMTP username.
+     * @var string
+     */
+    public $Username = '';
+
+    /**
+     * SMTP password.
+     * @var string
+     */
+    public $Password = '';
+
+    /**
+     * SMTP auth type.
+     * Options are CRAM-MD5, LOGIN, PLAIN, NTLM, XOAUTH2, attempted in that order if not specified
+     * @var string
+     */
+    public $AuthType = '';
+
+    /**
+     * SMTP realm.
+     * Used for NTLM auth
+     * @var string
+     */
+    public $Realm = '';
+
+    /**
+     * SMTP workstation.
+     * Used for NTLM auth
+     * @var string
+     */
+    public $Workstation = '';
+
+    /**
+     * The SMTP server timeout in seconds.
+     * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2
+     * @var integer
+     */
+    public $Timeout = 300;
+
+    /**
+     * SMTP class debug output mode.
+     * Debug output level.
+     * Options:
+     * * `0` No output
+     * * `1` Commands
+     * * `2` Data and commands
+     * * `3` As 2 plus connection status
+     * * `4` Low-level data output
+     * @var integer
+     * @see SMTP::$do_debug
+     */
+    public $SMTPDebug = 0;
+
+    /**
+     * How to handle debug output.
+     * Options:
+     * * `echo` Output plain-text as-is, appropriate for CLI
+     * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output
+     * * `error_log` Output to error log as configured in php.ini
+     *
+     * Alternatively, you can provide a callable expecting two params: a message string and the debug level:
+     * <code>
+     * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};
+     * </code>
+     * @var string|callable
+     * @see SMTP::$Debugoutput
+     */
+    public $Debugoutput = 'echo';
+
+    /**
+     * Whether to keep SMTP connection open after each message.
+     * If this is set to true then to close the connection
+     * requires an explicit call to smtpClose().
+     * @var boolean
+     */
+    public $SMTPKeepAlive = false;
+
+    /**
+     * Whether to split multiple to addresses into multiple messages
+     * or send them all in one message.
+     * Only supported in `mail` and `sendmail` transports, not in SMTP.
+     * @var boolean
+     */
+    public $SingleTo = false;
+
+    /**
+     * Storage for addresses when SingleTo is enabled.
+     * @var array
+     * @TODO This should really not be public
+     */
+    public $SingleToArray = array();
+
+    /**
+     * Whether to generate VERP addresses on send.
+     * Only applicable when sending via SMTP.
+     * @link https://en.wikipedia.org/wiki/Variable_envelope_return_path
+     * @link http://www.postfix.org/VERP_README.html Postfix VERP info
+     * @var boolean
+     */
+    public $do_verp = false;
+
+    /**
+     * Whether to allow sending messages with an empty body.
+     * @var boolean
+     */
+    public $AllowEmpty = false;
+
+    /**
+     * The default line ending.
+     * @note The default remains "\n". We force CRLF where we know
+     *        it must be used via self::CRLF.
+     * @var string
+     */
+    public $LE = "\n";
+
+    /**
+     * DKIM selector.
+     * @var string
+     */
+    public $DKIM_selector = '';
+
+    /**
+     * DKIM Identity.
+     * Usually the email address used as the source of the email.
+     * @var string
+     */
+    public $DKIM_identity = '';
+
+    /**
+     * DKIM passphrase.
+     * Used if your key is encrypted.
+     * @var string
+     */
+    public $DKIM_passphrase = '';
+
+    /**
+     * DKIM signing domain name.
+     * @example 'example.com'
+     * @var string
+     */
+    public $DKIM_domain = '';
+
+    /**
+     * DKIM private key file path.
+     * @var string
+     */
+    public $DKIM_private = '';
+
+    /**
+     * DKIM private key string.
+     * If set, takes precedence over `$DKIM_private`.
+     * @var string
+     */
+    public $DKIM_private_string = '';
+
+    /**
+     * Callback Action function name.
+     *
+     * The function that handles the result of the send email action.
+     * It is called out by send() for each email sent.
+     *
+     * Value can be any php callable: http://www.php.net/is_callable
+     *
+     * Parameters:
+     *   boolean $result        result of the send action
+     *   string  $to            email address of the recipient
+     *   string  $cc            cc email addresses
+     *   string  $bcc           bcc email addresses
+     *   string  $subject       the subject
+     *   string  $body          the email body
+     *   string  $from          email address of sender
+     * @var string
+     */
+    public $action_function = '';
+
+    /**
+     * What to put in the X-Mailer header.
+     * Options: An empty string for PHPMailer default, whitespace for none, or a string to use
+     * @var string
+     */
+    public $XMailer = '';
+
+    /**
+     * Which validator to use by default when validating email addresses.
+     * May be a callable to inject your own validator, but there are several built-in validators.
+     * @see PHPMailer::validateAddress()
+     * @var string|callable
+     * @static
+     */
+    public static $validator = 'auto';
+
+    /**
+     * An instance of the SMTP sender class.
+     * @var SMTP
+     * @access protected
+     */
+    protected $smtp = null;
+
+    /**
+     * The array of 'to' names and addresses.
+     * @var array
+     * @access protected
+     */
+    protected $to = array();
+
+    /**
+     * The array of 'cc' names and addresses.
+     * @var array
+     * @access protected
+     */
+    protected $cc = array();
+
+    /**
+     * The array of 'bcc' names and addresses.
+     * @var array
+     * @access protected
+     */
+    protected $bcc = array();
+
+    /**
+     * The array of reply-to names and addresses.
+     * @var array
+     * @access protected
+     */
+    protected $ReplyTo = array();
+
+    /**
+     * An array of all kinds of addresses.
+     * Includes all of $to, $cc, $bcc
+     * @var array
+     * @access protected
+     * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc
+     */
+    protected $all_recipients = array();
+
+    /**
+     * An array of names and addresses queued for validation.
+     * In send(), valid and non duplicate entries are moved to $all_recipients
+     * and one of $to, $cc, or $bcc.
+     * This array is used only for addresses with IDN.
+     * @var array
+     * @access protected
+     * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc
+     * @see PHPMailer::$all_recipients
+     */
+    protected $RecipientsQueue = array();
+
+    /**
+     * An array of reply-to names and addresses queued for validation.
+     * In send(), valid and non duplicate entries are moved to $ReplyTo.
+     * This array is used only for addresses with IDN.
+     * @var array
+     * @access protected
+     * @see PHPMailer::$ReplyTo
+     */
+    protected $ReplyToQueue = array();
+
+    /**
+     * The array of attachments.
+     * @var array
+     * @access protected
+     */
+    protected $attachment = array();
+
+    /**
+     * The array of custom headers.
+     * @var array
+     * @access protected
+     */
+    protected $CustomHeader = array();
+
+    /**
+     * The most recent Message-ID (including angular brackets).
+     * @var string
+     * @access protected
+     */
+    protected $lastMessageID = '';
+
+    /**
+     * The message's MIME type.
+     * @var string
+     * @access protected
+     */
+    protected $message_type = '';
+
+    /**
+     * The array of MIME boundary strings.
+     * @var array
+     * @access protected
+     */
+    protected $boundary = array();
+
+    /**
+     * The array of available languages.
+     * @var array
+     * @access protected
+     */
+    protected $language = array();
+
+    /**
+     * The number of errors encountered.
+     * @var integer
+     * @access protected
+     */
+    protected $error_count = 0;
+
+    /**
+     * The S/MIME certificate file path.
+     * @var string
+     * @access protected
+     */
+    protected $sign_cert_file = '';
+
+    /**
+     * The S/MIME key file path.
+     * @var string
+     * @access protected
+     */
+    protected $sign_key_file = '';
+
+    /**
+     * The optional S/MIME extra certificates ("CA Chain") file path.
+     * @var string
+     * @access protected
+     */
+    protected $sign_extracerts_file = '';
+
+    /**
+     * The S/MIME password for the key.
+     * Used only if the key is encrypted.
+     * @var string
+     * @access protected
+     */
+    protected $sign_key_pass = '';
+
+    /**
+     * Whether to throw exceptions for errors.
+     * @var boolean
+     * @access protected
+     */
+    protected $exceptions = false;
+
+    /**
+     * Unique ID used for message ID and boundaries.
+     * @var string
+     * @access protected
+     */
+    protected $uniqueid = '';
+
+    /**
+     * Error severity: message only, continue processing.
+     */
+    const STOP_MESSAGE = 0;
+
+    /**
+     * Error severity: message, likely ok to continue processing.
+     */
+    const STOP_CONTINUE = 1;
+
+    /**
+     * Error severity: message, plus full stop, critical error reached.
+     */
+    const STOP_CRITICAL = 2;
+
+    /**
+     * SMTP RFC standard line ending.
+     */
+    const CRLF = "\r\n";
+
+    /**
+     * The maximum line length allowed by RFC 2822 section 2.1.1
+     * @var integer
+     */
+    const MAX_LINE_LENGTH = 998;
+
+    /**
+     * Constructor.
+     * @param boolean $exceptions Should we throw external exceptions?
+     */
+    public function __construct($exceptions = null)
+    {
+        if ($exceptions !== null) {
+            $this->exceptions = (boolean)$exceptions;
+        }
+    }
+
+    /**
+     * Destructor.
+     */
+    public function __destruct()
+    {
+        //Close any open SMTP connection nicely
+        $this->smtpClose();
+    }
+
+    /**
+     * Call mail() in a safe_mode-aware fashion.
+     * Also, unless sendmail_path points to sendmail (or something that
+     * claims to be sendmail), don't pass params (not a perfect fix,
+     * but it will do)
+     * @param string $to To
+     * @param string $subject Subject
+     * @param string $body Message Body
+     * @param string $header Additional Header(s)
+     * @param string $params Params
+     * @access private
+     * @return boolean
+     */
+    private function mailPassthru($to, $subject, $body, $header, $params)
+    {
+        //Check overloading of mail function to avoid double-encoding
+        if (ini_get('mbstring.func_overload') & 1) {
+            $subject = $this->secureHeader($subject);
+        } else {
+            $subject = $this->encodeHeader($this->secureHeader($subject));
+        }
+
+        //Can't use additional_parameters in safe_mode, calling mail() with null params breaks
+        //@link http://php.net/manual/en/function.mail.php
+        if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
+            $result = @mail($to, $subject, $body, $header);
+        } else {
+            $result = @mail($to, $subject, $body, $header, $params);
+        }
+        return $result;
+    }
+    /**
+     * Output debugging info via user-defined method.
+     * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug).
+     * @see PHPMailer::$Debugoutput
+     * @see PHPMailer::$SMTPDebug
+     * @param string $str
+     */
+    protected function edebug($str)
+    {
+        if ($this->SMTPDebug <= 0) {
+            return;
+        }
+        //Avoid clash with built-in function names
+        if (!in_array($this->Debugoutput, array('error_log', 'html', 'echo')) and is_callable($this->Debugoutput)) {
+            call_user_func($this->Debugoutput, $str, $this->SMTPDebug);
+            return;
+        }
+        switch ($this->Debugoutput) {
+            case 'error_log':
+                //Don't output, just log
+                error_log($str);
+                break;
+            case 'html':
+                //Cleans up output a bit for a better looking, HTML-safe output
+                echo htmlentities(
+                    preg_replace('/[\r\n]+/', '', $str),
+                    ENT_QUOTES,
+                    'UTF-8'
+                )
+                . "<br>\n";
+                break;
+            case 'echo':
+            default:
+                //Normalize line breaks
+                $str = preg_replace('/\r\n?/ms', "\n", $str);
+                echo gmdate('Y-m-d H:i:s') . "\t" . str_replace(
+                    "\n",
+                    "\n                   \t                  ",
+                    trim($str)
+                ) . "\n";
+        }
+    }
+
+    /**
+     * Sets message type to HTML or plain.
+     * @param boolean $isHtml True for HTML mode.
+     * @return void
+     */
+    public function isHTML($isHtml = true)
+    {
+        if ($isHtml) {
+            $this->ContentType = 'text/html';
+        } else {
+            $this->ContentType = 'text/plain';
+        }
+    }
+
+    /**
+     * Send messages using SMTP.
+     * @return void
+     */
+    public function isSMTP()
+    {
+        $this->Mailer = 'smtp';
+    }
+
+    /**
+     * Send messages using PHP's mail() function.
+     * @return void
+     */
+    public function isMail()
+    {
+        $this->Mailer = 'mail';
+    }
+
+    /**
+     * Send messages using $Sendmail.
+     * @return void
+     */
+    public function isSendmail()
+    {
+        $ini_sendmail_path = ini_get('sendmail_path');
+
+        if (!stristr($ini_sendmail_path, 'sendmail')) {
+            $this->Sendmail = '/usr/sbin/sendmail';
+        } else {
+            $this->Sendmail = $ini_sendmail_path;
+        }
+        $this->Mailer = 'sendmail';
+    }
+
+    /**
+     * Send messages using qmail.
+     * @return void
+     */
+    public function isQmail()
+    {
+        $ini_sendmail_path = ini_get('sendmail_path');
+
+        if (!stristr($ini_sendmail_path, 'qmail')) {
+            $this->Sendmail = '/var/qmail/bin/qmail-inject';
+        } else {
+            $this->Sendmail = $ini_sendmail_path;
+        }
+        $this->Mailer = 'qmail';
+    }
+
+    /**
+     * Add a "To" address.
+     * @param string $address The email address to send to
+     * @param string $name
+     * @return boolean true on success, false if address already used or invalid in some way
+     */
+    public function addAddress($address, $name = '')
+    {
+        return $this->addOrEnqueueAnAddress('to', $address, $name);
+    }
+
+    /**
+     * Add a "CC" address.
+     * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.
+     * @param string $address The email address to send to
+     * @param string $name
+     * @return boolean true on success, false if address already used or invalid in some way
+     */
+    public function addCC($address, $name = '')
+    {
+        return $this->addOrEnqueueAnAddress('cc', $address, $name);
+    }
+
+    /**
+     * Add a "BCC" address.
+     * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.
+     * @param string $address The email address to send to
+     * @param string $name
+     * @return boolean true on success, false if address already used or invalid in some way
+     */
+    public function addBCC($address, $name = '')
+    {
+        return $this->addOrEnqueueAnAddress('bcc', $address, $name);
+    }
+
+    /**
+     * Add a "Reply-To" address.
+     * @param string $address The email address to reply to
+     * @param string $name
+     * @return boolean true on success, false if address already used or invalid in some way
+     */
+    public function addReplyTo($address, $name = '')
+    {
+        return $this->addOrEnqueueAnAddress('Reply-To', $address, $name);
+    }
+
+    /**
+     * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer
+     * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still
+     * be modified after calling this function), addition of such addresses is delayed until send().
+     * Addresses that have been added already return false, but do not throw exceptions.
+     * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo'
+     * @param string $address The email address to send, resp. to reply to
+     * @param string $name
+     * @throws phpmailerException
+     * @return boolean true on success, false if address already used or invalid in some way
+     * @access protected
+     */
+    protected function addOrEnqueueAnAddress($kind, $address, $name)
+    {
+        $address = trim($address);
+        $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
+        if (($pos = strrpos($address, '@')) === false) {
+            // At-sign is misssing.
+            $error_message = $this->lang('invalid_address') . " (addAnAddress $kind): $address";
+            $this->setError($error_message);
+            $this->edebug($error_message);
+            if ($this->exceptions) {
+                throw new phpmailerException($error_message);
+            }
+            return false;
+        }
+        $params = array($kind, $address, $name);
+        // Enqueue addresses with IDN until we know the PHPMailer::$CharSet.
+        if ($this->has8bitChars(substr($address, ++$pos)) and $this->idnSupported()) {
+            if ($kind != 'Reply-To') {
+                if (!array_key_exists($address, $this->RecipientsQueue)) {
+                    $this->RecipientsQueue[$address] = $params;
+                    return true;
+                }
+            } else {
+                if (!array_key_exists($address, $this->ReplyToQueue)) {
+                    $this->ReplyToQueue[$address] = $params;
+                    return true;
+                }
+            }
+            return false;
+        }
+        // Immediately add standard addresses without IDN.
+        return call_user_func_array(array($this, 'addAnAddress'), $params);
+    }
+
+    /**
+     * Add an address to one of the recipient arrays or to the ReplyTo array.
+     * Addresses that have been added already return false, but do not throw exceptions.
+     * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo'
+     * @param string $address The email address to send, resp. to reply to
+     * @param string $name
+     * @throws phpmailerException
+     * @return boolean true on success, false if address already used or invalid in some way
+     * @access protected
+     */
+    protected function addAnAddress($kind, $address, $name = '')
+    {
+        if (!in_array($kind, array('to', 'cc', 'bcc', 'Reply-To'))) {
+            $error_message = $this->lang('Invalid recipient kind: ') . $kind;
+            $this->setError($error_message);
+            $this->edebug($error_message);
+            if ($this->exceptions) {
+                throw new phpmailerException($error_message);
+            }
+            return false;
+        }
+        if (!$this->validateAddress($address)) {
+            $error_message = $this->lang('invalid_address') . " (addAnAddress $kind): $address";
+            $this->setError($error_message);
+            $this->edebug($error_message);
+            if ($this->exceptions) {
+                throw new phpmailerException($error_message);
+            }
+            return false;
+        }
+        if ($kind != 'Reply-To') {
+            if (!array_key_exists(strtolower($address), $this->all_recipients)) {
+                array_push($this->$kind, array($address, $name));
+                $this->all_recipients[strtolower($address)] = true;
+                return true;
+            }
+        } else {
+            if (!array_key_exists(strtolower($address), $this->ReplyTo)) {
+                $this->ReplyTo[strtolower($address)] = array($address, $name);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Parse and validate a string containing one or more RFC822-style comma-separated email addresses
+     * of the form "display name <address>" into an array of name/address pairs.
+     * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available.
+     * Note that quotes in the name part are removed.
+     * @param string $addrstr The address list string
+     * @param bool $useimap Whether to use the IMAP extension to parse the list
+     * @return array
+     * @link http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation
+     */
+    public function parseAddresses($addrstr, $useimap = true)
+    {
+        $addresses = array();
+        if ($useimap and function_exists('imap_rfc822_parse_adrlist')) {
+            //Use this built-in parser if it's available
+            $list = imap_rfc822_parse_adrlist($addrstr, '');
+            foreach ($list as $address) {
+                if ($address->host != '.SYNTAX-ERROR.') {
+                    if ($this->validateAddress($address->mailbox . '@' . $address->host)) {
+                        $addresses[] = array(
+                            'name' => (property_exists($address, 'personal') ? $address->personal : ''),
+                            'address' => $address->mailbox . '@' . $address->host
+                        );
+                    }
+                }
+            }
+        } else {
+            //Use this simpler parser
+            $list = explode(',', $addrstr);
+            foreach ($list as $address) {
+                $address = trim($address);
+                //Is there a separate name part?
+                if (strpos($address, '<') === false) {
+                    //No separate name, just use the whole thing
+                    if ($this->validateAddress($address)) {
+                        $addresses[] = array(
+                            'name' => '',
+                            'address' => $address
+                        );
+                    }
+                } else {
+                    list($name, $email) = explode('<', $address);
+                    $email = trim(str_replace('>', '', $email));
+                    if ($this->validateAddress($email)) {
+                        $addresses[] = array(
+                            'name' => trim(str_replace(array('"', "'"), '', $name)),
+                            'address' => $email
+                        );
+                    }
+                }
+            }
+        }
+        return $addresses;
+    }
+
+    /**
+     * Set the From and FromName properties.
+     * @param string $address
+     * @param string $name
+     * @param boolean $auto Whether to also set the Sender address, defaults to true
+     * @throws phpmailerException
+     * @return boolean
+     */
+    public function setFrom($address, $name = '', $auto = true)
+    {
+        $address = trim($address);
+        $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
+        // Don't validate now addresses with IDN. Will be done in send().
+        if (($pos = strrpos($address, '@')) === false or
+            (!$this->has8bitChars(substr($address, ++$pos)) or !$this->idnSupported()) and
+            !$this->validateAddress($address)) {
+            $error_message = $this->lang('invalid_address') . " (setFrom) $address";
+            $this->setError($error_message);
+            $this->edebug($error_message);
+            if ($this->exceptions) {
+                throw new phpmailerException($error_message);
+            }
+            return false;
+        }
+        $this->From = $address;
+        $this->FromName = $name;
+        if ($auto) {
+            if (empty($this->Sender)) {
+                $this->Sender = $address;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Return the Message-ID header of the last email.
+     * Technically this is the value from the last time the headers were created,
+     * but it's also the message ID of the last sent message except in
+     * pathological cases.
+     * @return string
+     */
+    public function getLastMessageID()
+    {
+        return $this->lastMessageID;
+    }
+
+    /**
+     * Check that a string looks like an email address.
+     * @param string $address The email address to check
+     * @param string|callable $patternselect A selector for the validation pattern to use :
+     * * `auto` Pick best pattern automatically;
+     * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14;
+     * * `pcre` Use old PCRE implementation;
+     * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL;
+     * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements.
+     * * `noregex` Don't use a regex: super fast, really dumb.
+     * Alternatively you may pass in a callable to inject your own validator, for example:
+     * PHPMailer::validateAddress('user at example.com', function($address) {
+     *     return (strpos($address, '@') !== false);
+     * });
+     * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator.
+     * @return boolean
+     * @static
+     * @access public
+     */
+    public static function validateAddress($address, $patternselect = null)
+    {
+        if (is_null($patternselect)) {
+            $patternselect = self::$validator;
+        }
+        if (is_callable($patternselect)) {
+            return call_user_func($patternselect, $address);
+        }
+        //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321
+        if (strpos($address, "\n") !== false or strpos($address, "\r") !== false) {
+            return false;
+        }
+        if (!$patternselect or $patternselect == 'auto') {
+            //Check this constant first so it works when extension_loaded() is disabled by safe mode
+            //Constant was added in PHP 5.2.4
+            if (defined('PCRE_VERSION')) {
+                //This pattern can get stuck in a recursive loop in PCRE <= 8.0.2
+                if (version_compare(PCRE_VERSION, '8.0.3') >= 0) {
+                    $patternselect = 'pcre8';
+                } else {
+                    $patternselect = 'pcre';
+                }
+            } elseif (function_exists('extension_loaded') and extension_loaded('pcre')) {
+                //Fall back to older PCRE
+                $patternselect = 'pcre';
+            } else {
+                //Filter_var appeared in PHP 5.2.0 and does not require the PCRE extension
+                if (version_compare(PHP_VERSION, '5.2.0') >= 0) {
+                    $patternselect = 'php';
+                } else {
+                    $patternselect = 'noregex';
+                }
+            }
+        }
+        switch ($patternselect) {
+            case 'pcre8':
+                /**
+                 * Uses the same RFC5322 regex on which FILTER_VALIDATE_EMAIL is based, but allows dotless domains.
+                 * @link http://squiloople.com/2009/12/20/email-address-validation/
+                 * @copyright 2009-2010 Michael Rushton
+                 * Feel free to use and redistribute this code. But please keep this copyright notice.
+                 */
+                return (boolean)preg_match(
+                    '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' .
+                    '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' .
+                    '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' .
+                    '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' .
+                    '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' .
+                    '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' .
+                    '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' .
+                    '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' .
+                    '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD',
+                    $address
+                );
+            case 'pcre':
+                //An older regex that doesn't need a recent PCRE
+                return (boolean)preg_match(
+                    '/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\\[ -~]|[^"])"?){65,}@)(?>' .
+                    '[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*")' .
+                    '(?>\.(?>[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*"))*' .
+                    '@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\.(?![a-z0-9-]{64,})' .
+                    '(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:' .
+                    '[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?' .
+                    '::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:' .
+                    '[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?' .
+                    '::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}' .
+                    '|[1-9]?[0-9])(?>\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\])$/isD',
+                    $address
+                );
+            case 'html5':
+                /**
+                 * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements.
+                 * @link http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state-(type=email)
+                 */
+                return (boolean)preg_match(
+                    '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' .
+                    '[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD',
+                    $address
+                );
+            case 'noregex':
+                //No PCRE! Do something _very_ approximate!
+                //Check the address is 3 chars or longer and contains an @ that's not the first or last char
+                return (strlen($address) >= 3
+                    and strpos($address, '@') >= 1
+                    and strpos($address, '@') != strlen($address) - 1);
+            case 'php':
+            default:
+                return (boolean)filter_var($address, FILTER_VALIDATE_EMAIL);
+        }
+    }
+
+    /**
+     * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the
+     * "intl" and "mbstring" PHP extensions.
+     * @return bool "true" if required functions for IDN support are present
+     */
+    public function idnSupported()
+    {
+        // @TODO: Write our own "idn_to_ascii" function for PHP <= 5.2.
+        return function_exists('idn_to_ascii') and function_exists('mb_convert_encoding');
+    }
+
+    /**
+     * Converts IDN in given email address to its ASCII form, also known as punycode, if possible.
+     * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet.
+     * This function silently returns unmodified address if:
+     * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form)
+     * - Conversion to punycode is impossible (e.g. required PHP functions are not available)
+     *   or fails for any reason (e.g. domain has characters not allowed in an IDN)
+     * @see PHPMailer::$CharSet
+     * @param string $address The email address to convert
+     * @return string The encoded address in ASCII form
+     */
+    public function punyencodeAddress($address)
+    {
+        // Verify we have required functions, CharSet, and at-sign.
+        if ($this->idnSupported() and
+            !empty($this->CharSet) and
+            ($pos = strrpos($address, '@')) !== false) {
+            $domain = substr($address, ++$pos);
+            // Verify CharSet string is a valid one, and domain properly encoded in this CharSet.
+            if ($this->has8bitChars($domain) and @mb_check_encoding($domain, $this->CharSet)) {
+                $domain = mb_convert_encoding($domain, 'UTF-8', $this->CharSet);
+                if (($punycode = defined('INTL_IDNA_VARIANT_UTS46') ?
+                    idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) :
+                    idn_to_ascii($domain)) !== false) {
+                    return substr($address, 0, $pos) . $punycode;
+                }
+            }
+        }
+        return $address;
+    }
+
+    /**
+     * Create a message and send it.
+     * Uses the sending method specified by $Mailer.
+     * @throws phpmailerException
+     * @return boolean false on error - See the ErrorInfo property for details of the error.
+     */
+    public function send()
+    {
+        try {
+            if (!$this->preSend()) {
+                return false;
+            }
+            return $this->postSend();
+        } catch (phpmailerException $exc) {
+            $this->mailHeader = '';
+            $this->setError($exc->getMessage());
+            if ($this->exceptions) {
+                throw $exc;
+            }
+            return false;
+        }
+    }
+
+    /**
+     * Prepare a message for sending.
+     * @throws phpmailerException
+     * @return boolean
+     */
+    public function preSend()
+    {
+        try {
+            $this->error_count = 0; // Reset errors
+            $this->mailHeader = '';
+
+            // Dequeue recipient and Reply-To addresses with IDN
+            foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) {
+                $params[1] = $this->punyencodeAddress($params[1]);
+                call_user_func_array(array($this, 'addAnAddress'), $params);
+            }
+            if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
+                throw new phpmailerException($this->lang('provide_address'), self::STOP_CRITICAL);
+            }
+
+            // Validate From, Sender, and ConfirmReadingTo addresses
+            foreach (array('From', 'Sender', 'ConfirmReadingTo') as $address_kind) {
+                $this->$address_kind = trim($this->$address_kind);
+                if (empty($this->$address_kind)) {
+                    continue;
+                }
+                $this->$address_kind = $this->punyencodeAddress($this->$address_kind);
+                if (!$this->validateAddress($this->$address_kind)) {
+                    $error_message = $this->lang('invalid_address') . ' (punyEncode) ' . $this->$address_kind;
+                    $this->setError($error_message);
+                    $this->edebug($error_message);
+                    if ($this->exceptions) {
+                        throw new phpmailerException($error_message);
+                    }
+                    return false;
+                }
+            }
+
+            // Set whether the message is multipart/alternative
+            if ($this->alternativeExists()) {
+                $this->ContentType = 'multipart/alternative';
+            }
+
+            $this->setMessageType();
+            // Refuse to send an empty message unless we are specifically allowing it
+            if (!$this->AllowEmpty and empty($this->Body)) {
+                throw new phpmailerException($this->lang('empty_message'), self::STOP_CRITICAL);
+            }
+
+            // Create body before headers in case body makes changes to headers (e.g. altering transfer encoding)
+            $this->MIMEHeader = '';
+            $this->MIMEBody = $this->createBody();
+            // createBody may have added some headers, so retain them
+            $tempheaders = $this->MIMEHeader;
+            $this->MIMEHeader = $this->createHeader();
+            $this->MIMEHeader .= $tempheaders;
+
+            // To capture the complete message when using mail(), create
+            // an extra header list which createHeader() doesn't fold in
+            if ($this->Mailer == 'mail') {
+                if (count($this->to) > 0) {
+                    $this->mailHeader .= $this->addrAppend('To', $this->to);
+                } else {
+                    $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;');
+                }
+                $this->mailHeader .= $this->headerLine(
+                    'Subject',
+                    $this->encodeHeader($this->secureHeader(trim($this->Subject)))
+                );
+            }
+
+            // Sign with DKIM if enabled
+            if (!empty($this->DKIM_domain)
+                && !empty($this->DKIM_selector)
+                && (!empty($this->DKIM_private_string)
+                   || (!empty($this->DKIM_private) && file_exists($this->DKIM_private))
+                )
+            ) {
+                $header_dkim = $this->DKIM_Add(
+                    $this->MIMEHeader . $this->mailHeader,
+                    $this->encodeHeader($this->secureHeader($this->Subject)),
+                    $this->MIMEBody
+                );
+                $this->MIMEHeader = rtrim($this->MIMEHeader, "\r\n ") . self::CRLF .
+                    str_replace("\r\n", "\n", $header_dkim) . self::CRLF;
+            }
+            return true;
+        } catch (phpmailerException $exc) {
+            $this->setError($exc->getMessage());
+            if ($this->exceptions) {
+                throw $exc;
+            }
+            return false;
+        }
+    }
+
+    /**
+     * Actually send a message.
+     * Send the email via the selected mechanism
+     * @throws phpmailerException
+     * @return boolean
+     */
+    public function postSend()
+    {
+        try {
+            // Choose the mailer and send through it
+            switch ($this->Mailer) {
+                case 'sendmail':
+                case 'qmail':
+                    return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody);
+                case 'smtp':
+                    return $this->smtpSend($this->MIMEHeader, $this->MIMEBody);
+                case 'mail':
+                    return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
+                default:
+                    $sendMethod = $this->Mailer.'Send';
+                    if (method_exists($this, $sendMethod)) {
+                        return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody);
+                    }
+
+                    return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
+            }
+        } catch (phpmailerException $exc) {
+            $this->setError($exc->getMessage());
+            $this->edebug($exc->getMessage());
+            if ($this->exceptions) {
+                throw $exc;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Send mail using the $Sendmail program.
+     * @param string $header The message headers
+     * @param string $body The message body
+     * @see PHPMailer::$Sendmail
+     * @throws phpmailerException
+     * @access protected
+     * @return boolean
+     */
+    protected function sendmailSend($header, $body)
+    {
+        // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
+        if (!empty($this->Sender) and self::isShellSafe($this->Sender)) {
+            if ($this->Mailer == 'qmail') {
+                $sendmailFmt = '%s -f%s';
+            } else {
+                $sendmailFmt = '%s -oi -f%s -t';
+            }
+        } else {
+            if ($this->Mailer == 'qmail') {
+                $sendmailFmt = '%s';
+            } else {
+                $sendmailFmt = '%s -oi -t';
+            }
+        }
+
+        // TODO: If possible, this should be changed to escapeshellarg.  Needs thorough testing.
+        $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender);
+
+        if ($this->SingleTo) {
+            foreach ($this->SingleToArray as $toAddr) {
+                if (!@$mail = popen($sendmail, 'w')) {
+                    throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
+                }
+                fputs($mail, 'To: ' . $toAddr . "\n");
+                fputs($mail, $header);
+                fputs($mail, $body);
+                $result = pclose($mail);
+                $this->doCallback(
+                    ($result == 0),
+                    array($toAddr),
+                    $this->cc,
+                    $this->bcc,
+                    $this->Subject,
+                    $body,
+                    $this->From
+                );
+                if ($result != 0) {
+                    throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
+                }
+            }
+        } else {
+            if (!@$mail = popen($sendmail, 'w')) {
+                throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
+            }
+            fputs($mail, $header);
+            fputs($mail, $body);
+            $result = pclose($mail);
+            $this->doCallback(
+                ($result == 0),
+                $this->to,
+                $this->cc,
+                $this->bcc,
+                $this->Subject,
+                $body,
+                $this->From
+            );
+            if ($result != 0) {
+                throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters.
+     *
+     * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows.
+     * @param string $string The string to be validated
+     * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report
+     * @access protected
+     * @return boolean
+     */
+    protected static function isShellSafe($string)
+    {
+        // Future-proof
+        if (escapeshellcmd($string) !== $string
+            or !in_array(escapeshellarg($string), array("'$string'", "\"$string\""))
+        ) {
+            return false;
+        }
+
+        $length = strlen($string);
+
+        for ($i = 0; $i < $length; $i++) {
+            $c = $string[$i];
+
+            // All other characters have a special meaning in at least one common shell, including = and +.
+            // Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here.
+            // Note that this does permit non-Latin alphanumeric characters based on the current locale.
+            if (!ctype_alnum($c) && strpos('@_-.', $c) === false) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Send mail using the PHP mail() function.
+     * @param string $header The message headers
+     * @param string $body The message body
+     * @link http://www.php.net/manual/en/book.mail.php
+     * @throws phpmailerException
+     * @access protected
+     * @return boolean
+     */
+    protected function mailSend($header, $body)
+    {
+        $toArr = array();
+        foreach ($this->to as $toaddr) {
+            $toArr[] = $this->addrFormat($toaddr);
+        }
+        $to = implode(', ', $toArr);
+
+        $params = null;
+        //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver
+        if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {
+            // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
+            if (self::isShellSafe($this->Sender)) {
+                $params = sprintf('-f%s', $this->Sender);
+            }
+        }
+        if (!empty($this->Sender) and !ini_get('safe_mode') and $this->validateAddress($this->Sender)) {
+            $old_from = ini_get('sendmail_from');
+            ini_set('sendmail_from', $this->Sender);
+        }
+        $result = false;
+        if ($this->SingleTo and count($toArr) > 1) {
+            foreach ($toArr as $toAddr) {
+                $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params);
+                $this->doCallback($result, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From);
+            }
+        } else {
+            $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params);
+            $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From);
+        }
+        if (isset($old_from)) {
+            ini_set('sendmail_from', $old_from);
+        }
+        if (!$result) {
+            throw new phpmailerException($this->lang('instantiate'), self::STOP_CRITICAL);
+        }
+        return true;
+    }
+
+    /**
+     * Get an instance to use for SMTP operations.
+     * Override this function to load your own SMTP implementation
+     * @return SMTP
+     */
+    public function getSMTPInstance()
+    {
+        if (!is_object($this->smtp)) {
+            $this->smtp = new SMTP;
+        }
+        return $this->smtp;
+    }
+
+    /**
+     * Send mail via SMTP.
+     * Returns false if there is a bad MAIL FROM, RCPT, or DATA input.
+     * Uses the PHPMailerSMTP class by default.
+     * @see PHPMailer::getSMTPInstance() to use a different class.
+     * @param string $header The message headers
+     * @param string $body The message body
+     * @throws phpmailerException
+     * @uses SMTP
+     * @access protected
+     * @return boolean
+     */
+    protected function smtpSend($header, $body)
+    {
+        $bad_rcpt = array();
+        if (!$this->smtpConnect($this->SMTPOptions)) {
+            throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL);
+        }
+        if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {
+            $smtp_from = $this->Sender;
+        } else {
+            $smtp_from = $this->From;
+        }
+        if (!$this->smtp->mail($smtp_from)) {
+            $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));
+            throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL);
+        }
+
+        // Attempt to send to all recipients
+        foreach (array($this->to, $this->cc, $this->bcc) as $togroup) {
+            foreach ($togroup as $to) {
+                if (!$this->smtp->recipient($to[0])) {
+                    $error = $this->smtp->getError();
+                    $bad_rcpt[] = array('to' => $to[0], 'error' => $error['detail']);
+                    $isSent = false;
+                } else {
+                    $isSent = true;
+                }
+                $this->doCallback($isSent, array($to[0]), array(), array(), $this->Subject, $body, $this->From);
+            }
+        }
+
+        // Only send the DATA command if we have viable recipients
+        if ((count($this->all_recipients) > count($bad_rcpt)) and !$this->smtp->data($header . $body)) {
+            throw new phpmailerException($this->lang('data_not_accepted'), self::STOP_CRITICAL);
+        }
+        if ($this->SMTPKeepAlive) {
+            $this->smtp->reset();
+        } else {
+            $this->smtp->quit();
+            $this->smtp->close();
+        }
+        //Create error message for any bad addresses
+        if (count($bad_rcpt) > 0) {
+            $errstr = '';
+            foreach ($bad_rcpt as $bad) {
+                $errstr .= $bad['to'] . ': ' . $bad['error'];
+            }
+            throw new phpmailerException(
+                $this->lang('recipients_failed') . $errstr,
+                self::STOP_CONTINUE
+            );
+        }
+        return true;
+    }
+
+    /**
+     * Initiate a connection to an SMTP server.
+     * Returns false if the operation failed.
+     * @param array $options An array of options compatible with stream_context_create()
+     * @uses SMTP
+     * @access public
+     * @throws phpmailerException
+     * @return boolean
+     */
+    public function smtpConnect($options = null)
+    {
+        if (is_null($this->smtp)) {
+            $this->smtp = $this->getSMTPInstance();
+        }
+
+        //If no options are provided, use whatever is set in the instance
+        if (is_null($options)) {
+            $options = $this->SMTPOptions;
+        }
+
+        // Already connected?
+        if ($this->smtp->connected()) {
+            return true;
+        }
+
+        $this->smtp->setTimeout($this->Timeout);
+        $this->smtp->setDebugLevel($this->SMTPDebug);
+        $this->smtp->setDebugOutput($this->Debugoutput);
+        $this->smtp->setVerp($this->do_verp);
+        $hosts = explode(';', $this->Host);
+        $lastexception = null;
+
+        foreach ($hosts as $hostentry) {
+            $hostinfo = array();
+            if (!preg_match('/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*):?([0-9]*)$/', trim($hostentry), $hostinfo)) {
+                // Not a valid host entry
+                continue;
+            }
+            // $hostinfo[2]: optional ssl or tls prefix
+            // $hostinfo[3]: the hostname
+            // $hostinfo[4]: optional port number
+            // The host string prefix can temporarily override the current setting for SMTPSecure
+            // If it's not specified, the default value is used
+            $prefix = '';
+            $secure = $this->SMTPSecure;
+            $tls = ($this->SMTPSecure == 'tls');
+            if ('ssl' == $hostinfo[2] or ('' == $hostinfo[2] and 'ssl' == $this->SMTPSecure)) {
+                $prefix = 'ssl://';
+                $tls = false; // Can't have SSL and TLS at the same time
+                $secure = 'ssl';
+            } elseif ($hostinfo[2] == 'tls') {
+                $tls = true;
+                // tls doesn't use a prefix
+                $secure = 'tls';
+            }
+            //Do we need the OpenSSL extension?
+            $sslext = defined('OPENSSL_ALGO_SHA1');
+            if ('tls' === $secure or 'ssl' === $secure) {
+                //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled
+                if (!$sslext) {
+                    throw new phpmailerException($this->lang('extension_missing').'openssl', self::STOP_CRITICAL);
+                }
+            }
+            $host = $hostinfo[3];
+            $port = $this->Port;
+            $tport = (integer)$hostinfo[4];
+            if ($tport > 0 and $tport < 65536) {
+                $port = $tport;
+            }
+            if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) {
+                try {
+                    if ($this->Helo) {
+                        $hello = $this->Helo;
+                    } else {
+                        $hello = $this->serverHostname();
+                    }
+                    $this->smtp->hello($hello);
+                    //Automatically enable TLS encryption if:
+                    // * it's not disabled
+                    // * we have openssl extension
+                    // * we are not already using SSL
+                    // * the server offers STARTTLS
+                    if ($this->SMTPAutoTLS and $sslext and $secure != 'ssl' and $this->smtp->getServerExt('STARTTLS')) {
+                        $tls = true;
+                    }
+                    if ($tls) {
+                        if (!$this->smtp->startTLS()) {
+                            throw new phpmailerException($this->lang('connect_host'));
+                        }
+                        // We must resend EHLO after TLS negotiation
+                        $this->smtp->hello($hello);
+                    }
+                    if ($this->SMTPAuth) {
+                        if (!$this->smtp->authenticate(
+                            $this->Username,
+                            $this->Password,
+                            $this->AuthType,
+                            $this->Realm,
+                            $this->Workstation
+                        )
+                        ) {
+                            throw new phpmailerException($this->lang('authenticate'));
+                        }
+                    }
+                    return true;
+                } catch (phpmailerException $exc) {
+                    $lastexception = $exc;
+                    $this->edebug($exc->getMessage());
+                    // We must have connected, but then failed TLS or Auth, so close connection nicely
+                    $this->smtp->quit();
+                }
+            }
+        }
+        // If we get here, all connection attempts have failed, so close connection hard
+        $this->smtp->close();
+        // As we've caught all exceptions, just report whatever the last one was
+        if ($this->exceptions and !is_null($lastexception)) {
+            throw $lastexception;
+        }
+        return false;
+    }
+
+    /**
+     * Close the active SMTP session if one exists.
+     * @return void
+     */
+    public function smtpClose()
+    {
+        if (is_a($this->smtp, 'SMTP')) {
+            if ($this->smtp->connected()) {
+                $this->smtp->quit();
+                $this->smtp->close();
+            }
+        }
+    }
+
+    /**
+     * Set the language for error messages.
+     * Returns false if it cannot load the language file.
+     * The default language is English.
+     * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr")
+     * @param string $lang_path Path to the language file directory, with trailing separator (slash)
+     * @return boolean
+     * @access public
+     */
+    public function setLanguage($langcode = 'en', $lang_path = '')
+    {
+        // Backwards compatibility for renamed language codes
+        $renamed_langcodes = array(
+            'br' => 'pt_br',
+            'cz' => 'cs',
+            'dk' => 'da',
+            'no' => 'nb',
+            'se' => 'sv',
+        );
+
+        if (isset($renamed_langcodes[$langcode])) {
+            $langcode = $renamed_langcodes[$langcode];
+        }
+
+        // Define full set of translatable strings in English
+        $PHPMAILER_LANG = array(
+            'authenticate' => 'SMTP Error: Could not authenticate.',
+            'connect_host' => 'SMTP Error: Could not connect to SMTP host.',
+            'data_not_accepted' => 'SMTP Error: data not accepted.',
+            'empty_message' => 'Message body empty',
+            'encoding' => 'Unknown encoding: ',
+            'execute' => 'Could not execute: ',
+            'file_access' => 'Could not access file: ',
+            'file_open' => 'File Error: Could not open file: ',
+            'from_failed' => 'The following From address failed: ',
+            'instantiate' => 'Could not instantiate mail function.',
+            'invalid_address' => 'Invalid address: ',
+            'mailer_not_supported' => ' mailer is not supported.',
+            'provide_address' => 'You must provide at least one recipient email address.',
+            'recipients_failed' => 'SMTP Error: The following recipients failed: ',
+            'signing' => 'Signing Error: ',
+            'smtp_connect_failed' => 'SMTP connect() failed.',
+            'smtp_error' => 'SMTP server error: ',
+            'variable_set' => 'Cannot set or reset variable: ',
+            'extension_missing' => 'Extension missing: '
+        );
+        if (empty($lang_path)) {
+            // Calculate an absolute path so it can work if CWD is not here
+            $lang_path = dirname(__FILE__). DIRECTORY_SEPARATOR . 'language'. DIRECTORY_SEPARATOR;
+        }
+        //Validate $langcode
+        if (!preg_match('/^[a-z]{2}(?:_[a-zA-Z]{2})?$/', $langcode)) {
+            $langcode = 'en';
+        }
+        $foundlang = true;
+        $lang_file = $lang_path . 'phpmailer.lang-' . $langcode . '.php';
+        // There is no English translation file
+        if ($langcode != 'en') {
+            // Make sure language file path is readable
+            if (!is_readable($lang_file)) {
+                $foundlang = false;
+            } else {
+                // Overwrite language-specific strings.
+                // This way we'll never have missing translation keys.
+                $foundlang = include $lang_file;
+            }
+        }
+        $this->language = $PHPMAILER_LANG;
+        return (boolean)$foundlang; // Returns false if language not found
+    }
+
+    /**
+     * Get the array of strings for the current language.
+     * @return array
+     */
+    public function getTranslations()
+    {
+        return $this->language;
+    }
+
+    /**
+     * Create recipient headers.
+     * @access public
+     * @param string $type
+     * @param array $addr An array of recipient,
+     * where each recipient is a 2-element indexed array with element 0 containing an address
+     * and element 1 containing a name, like:
+     * array(array('joe at example.com', 'Joe User'), array('zoe at example.com', 'Zoe User'))
+     * @return string
+     */
+    public function addrAppend($type, $addr)
+    {
+        $addresses = array();
+        foreach ($addr as $address) {
+            $addresses[] = $this->addrFormat($address);
+        }
+        return $type . ': ' . implode(', ', $addresses) . $this->LE;
+    }
+
+    /**
+     * Format an address for use in a message header.
+     * @access public
+     * @param array $addr A 2-element indexed array, element 0 containing an address, element 1 containing a name
+     *      like array('joe at example.com', 'Joe User')
+     * @return string
+     */
+    public function addrFormat($addr)
+    {
+        if (empty($addr[1])) { // No name provided
+            return $this->secureHeader($addr[0]);
+        } else {
+            return $this->encodeHeader($this->secureHeader($addr[1]), 'phrase') . ' <' . $this->secureHeader(
+                $addr[0]
+            ) . '>';
+        }
+    }
+
+    /**
+     * Word-wrap message.
+     * For use with mailers that do not automatically perform wrapping
+     * and for quoted-printable encoded messages.
+     * Original written by philippe.
+     * @param string $message The message to wrap
+     * @param integer $length The line length to wrap to
+     * @param boolean $qp_mode Whether to run in Quoted-Printable mode
+     * @access public
+     * @return string
+     */
+    public function wrapText($message, $length, $qp_mode = false)
+    {
+        if ($qp_mode) {
+            $soft_break = sprintf(' =%s', $this->LE);
+        } else {
+            $soft_break = $this->LE;
+        }
+        // If utf-8 encoding is used, we will need to make sure we don't
+        // split multibyte characters when we wrap
+        $is_utf8 = (strtolower($this->CharSet) == 'utf-8');
+        $lelen = strlen($this->LE);
+        $crlflen = strlen(self::CRLF);
+
+        $message = $this->fixEOL($message);
+        //Remove a trailing line break
+        if (substr($message, -$lelen) == $this->LE) {
+            $message = substr($message, 0, -$lelen);
+        }
+
+        //Split message into lines
+        $lines = explode($this->LE, $message);
+        //Message will be rebuilt in here
+        $message = '';
+        foreach ($lines as $line) {
+            $words = explode(' ', $line);
+            $buf = '';
+            $firstword = true;
+            foreach ($words as $word) {
+                if ($qp_mode and (strlen($word) > $length)) {
+                    $space_left = $length - strlen($buf) - $crlflen;
+                    if (!$firstword) {
+                        if ($space_left > 20) {
+                            $len = $space_left;
+                            if ($is_utf8) {
+                                $len = $this->utf8CharBoundary($word, $len);
+                            } elseif (substr($word, $len - 1, 1) == '=') {
+                                $len--;
+                            } elseif (substr($word, $len - 2, 1) == '=') {
+                                $len -= 2;
+                            }
+                            $part = substr($word, 0, $len);
+                            $word = substr($word, $len);
+                            $buf .= ' ' . $part;
+                            $message .= $buf . sprintf('=%s', self::CRLF);
+                        } else {
+                            $message .= $buf . $soft_break;
+                        }
+                        $buf = '';
+                    }
+                    while (strlen($word) > 0) {
+                        if ($length <= 0) {
+                            break;
+                        }
+                        $len = $length;
+                        if ($is_utf8) {
+                            $len = $this->utf8CharBoundary($word, $len);
+                        } elseif (substr($word, $len - 1, 1) == '=') {
+                            $len--;
+                        } elseif (substr($word, $len - 2, 1) == '=') {
+                            $len -= 2;
+                        }
+                        $part = substr($word, 0, $len);
+                        $word = substr($word, $len);
+
+                        if (strlen($word) > 0) {
+                            $message .= $part . sprintf('=%s', self::CRLF);
+                        } else {
+                            $buf = $part;
+                        }
+                    }
+                } else {
+                    $buf_o = $buf;
+                    if (!$firstword) {
+                        $buf .= ' ';
+                    }
+                    $buf .= $word;
+
+                    if (strlen($buf) > $length and $buf_o != '') {
+                        $message .= $buf_o . $soft_break;
+                        $buf = $word;
+                    }
+                }
+                $firstword = false;
+            }
+            $message .= $buf . self::CRLF;
+        }
+
+        return $message;
+    }
+
+    /**
+     * Find the last character boundary prior to $maxLength in a utf-8
+     * quoted-printable encoded string.
+     * Original written by Colin Brown.
+     * @access public
+     * @param string $encodedText utf-8 QP text
+     * @param integer $maxLength Find the last character boundary prior to this length
+     * @return integer
+     */
+    public function utf8CharBoundary($encodedText, $maxLength)
+    {
+        $foundSplitPos = false;
+        $lookBack = 3;
+        while (!$foundSplitPos) {
+            $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack);
+            $encodedCharPos = strpos($lastChunk, '=');
+            if (false !== $encodedCharPos) {
+                // Found start of encoded character byte within $lookBack block.
+                // Check the encoded byte value (the 2 chars after the '=')
+                $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2);
+                $dec = hexdec($hex);
+                if ($dec < 128) {
+                    // Single byte character.
+                    // If the encoded char was found at pos 0, it will fit
+                    // otherwise reduce maxLength to start of the encoded char
+                    if ($encodedCharPos > 0) {
+                        $maxLength = $maxLength - ($lookBack - $encodedCharPos);
+                    }
+                    $foundSplitPos = true;
+                } elseif ($dec >= 192) {
+                    // First byte of a multi byte character
+                    // Reduce maxLength to split at start of character
+                    $maxLength = $maxLength - ($lookBack - $encodedCharPos);
+                    $foundSplitPos = true;
+                } elseif ($dec < 192) {
+                    // Middle byte of a multi byte character, look further back
+                    $lookBack += 3;
+                }
+            } else {
+                // No encoded character found
+                $foundSplitPos = true;
+            }
+        }
+        return $maxLength;
+    }
+
+    /**
+     * Apply word wrapping to the message body.
+     * Wraps the message body to the number of chars set in the WordWrap property.
+     * You should only do this to plain-text bodies as wrapping HTML tags may break them.
+     * This is called automatically by createBody(), so you don't need to call it yourself.
+     * @access public
+     * @return void
+     */
+    public function setWordWrap()
+    {
+        if ($this->WordWrap < 1) {
+            return;
+        }
+
+        switch ($this->message_type) {
+            case 'alt':
+            case 'alt_inline':
+            case 'alt_attach':
+            case 'alt_inline_attach':
+                $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap);
+                break;
+            default:
+                $this->Body = $this->wrapText($this->Body, $this->WordWrap);
+                break;
+        }
+    }
+
+    /**
+     * Assemble message headers.
+     * @access public
+     * @return string The assembled headers
+     */
+    public function createHeader()
+    {
+        $result = '';
+
+        if ($this->MessageDate == '') {
+            $this->MessageDate = self::rfcDate();
+        }
+        $result .= $this->headerLine('Date', $this->MessageDate);
+
+        // To be created automatically by mail()
+        if ($this->SingleTo) {
+            if ($this->Mailer != 'mail') {
+                foreach ($this->to as $toaddr) {
+                    $this->SingleToArray[] = $this->addrFormat($toaddr);
+                }
+            }
+        } else {
+            if (count($this->to) > 0) {
+                if ($this->Mailer != 'mail') {
+                    $result .= $this->addrAppend('To', $this->to);
+                }
+            } elseif (count($this->cc) == 0) {
+                $result .= $this->headerLine('To', 'undisclosed-recipients:;');
+            }
+        }
+
+        $result .= $this->addrAppend('From', array(array(trim($this->From), $this->FromName)));
+
+        // sendmail and mail() extract Cc from the header before sending
+        if (count($this->cc) > 0) {
+            $result .= $this->addrAppend('Cc', $this->cc);
+        }
+
+        // sendmail and mail() extract Bcc from the header before sending
+        if ((
+                $this->Mailer == 'sendmail' or $this->Mailer == 'qmail' or $this->Mailer == 'mail'
+            )
+            and count($this->bcc) > 0
+        ) {
+            $result .= $this->addrAppend('Bcc', $this->bcc);
+        }
+
+        if (count($this->ReplyTo) > 0) {
+            $result .= $this->addrAppend('Reply-To', $this->ReplyTo);
+        }
+
+        // mail() sets the subject itself
+        if ($this->Mailer != 'mail') {
+            $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject)));
+        }
+
+        // Only allow a custom message ID if it conforms to RFC 5322 section 3.6.4
+        // https://tools.ietf.org/html/rfc5322#section-3.6.4
+        if ('' != $this->MessageID and preg_match('/^<.*@.*>$/', $this->MessageID)) {
+            $this->lastMessageID = $this->MessageID;
+        } else {
+            $this->lastMessageID = sprintf('<%s@%s>', $this->uniqueid, $this->serverHostname());
+        }
+        $result .= $this->headerLine('Message-ID', $this->lastMessageID);
+        if (!is_null($this->Priority)) {
+            $result .= $this->headerLine('X-Priority', $this->Priority);
+        }
+        if ($this->XMailer == '') {
+            $result .= $this->headerLine(
+                'X-Mailer',
+                'PHPMailer ' . $this->Version . ' (https://github.com/PHPMailer/PHPMailer)'
+            );
+        } else {
+            $myXmailer = trim($this->XMailer);
+            if ($myXmailer) {
+                $result .= $this->headerLine('X-Mailer', $myXmailer);
+            }
+        }
+
+        if ($this->ConfirmReadingTo != '') {
+            $result .= $this->headerLine('Disposition-Notification-To', '<' . $this->ConfirmReadingTo . '>');
+        }
+
+        // Add custom headers
+        foreach ($this->CustomHeader as $header) {
+            $result .= $this->headerLine(
+                trim($header[0]),
+                $this->encodeHeader(trim($header[1]))
+            );
+        }
+        if (!$this->sign_key_file) {
+            $result .= $this->headerLine('MIME-Version', '1.0');
+            $result .= $this->getMailMIME();
+        }
+
+        return $result;
+    }
+
+    /**
+     * Get the message MIME type headers.
+     * @access public
+     * @return string
+     */
+    public function getMailMIME()
+    {
+        $result = '';
+        $ismultipart = true;
+        switch ($this->message_type) {
+            case 'inline':
+                $result .= $this->headerLine('Content-Type', 'multipart/related;');
+                $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"');
+                break;
+            case 'attach':
+            case 'inline_attach':
+            case 'alt_attach':
+            case 'alt_inline_attach':
+                $result .= $this->headerLine('Content-Type', 'multipart/mixed;');
+                $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"');
+                break;
+            case 'alt':
+            case 'alt_inline':
+                $result .= $this->headerLine('Content-Type', 'multipart/alternative;');
+                $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"');
+                break;
+            default:
+                // Catches case 'plain': and case '':
+                $result .= $this->textLine('Content-Type: ' . $this->ContentType . '; charset=' . $this->CharSet);
+                $ismultipart = false;
+                break;
+        }
+        // RFC1341 part 5 says 7bit is assumed if not specified
+        if ($this->Encoding != '7bit') {
+            // RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE
+            if ($ismultipart) {
+                if ($this->Encoding == '8bit') {
+                    $result .= $this->headerLine('Content-Transfer-Encoding', '8bit');
+                }
+                // The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible
+            } else {
+                $result .= $this->headerLine('Content-Transfer-Encoding', $this->Encoding);
+            }
+        }
+
+        if ($this->Mailer != 'mail') {
+            $result .= $this->LE;
+        }
+
+        return $result;
+    }
+
+    /**
+     * Returns the whole MIME message.
+     * Includes complete headers and body.
+     * Only valid post preSend().
+     * @see PHPMailer::preSend()
+     * @access public
+     * @return string
+     */
+    public function getSentMIMEMessage()
+    {
+        return rtrim($this->MIMEHeader . $this->mailHeader, "\n\r") . self::CRLF . self::CRLF . $this->MIMEBody;
+    }
+
+    /**
+     * Create unique ID
+     * @return string
+     */
+    protected function generateId() {
+        return md5(uniqid(time()));
+    }
+
+    /**
+     * Assemble the message body.
+     * Returns an empty string on failure.
+     * @access public
+     * @throws phpmailerException
+     * @return string The assembled message body
+     */
+    public function createBody()
+    {
+        $body = '';
+        //Create unique IDs and preset boundaries
+        $this->uniqueid = $this->generateId();
+        $this->boundary[1] = 'b1_' . $this->uniqueid;
+        $this->boundary[2] = 'b2_' . $this->uniqueid;
+        $this->boundary[3] = 'b3_' . $this->uniqueid;
+
+        if ($this->sign_key_file) {
+            $body .= $this->getMailMIME() . $this->LE;
+        }
+
+        $this->setWordWrap();
+
+        $bodyEncoding = $this->Encoding;
+        $bodyCharSet = $this->CharSet;
+        //Can we do a 7-bit downgrade?
+        if ($bodyEncoding == '8bit' and !$this->has8bitChars($this->Body)) {
+            $bodyEncoding = '7bit';
+            //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit
+            $bodyCharSet = 'us-ascii';
+        }
+        //If lines are too long, and we're not already using an encoding that will shorten them,
+        //change to quoted-printable transfer encoding for the body part only
+        if ('base64' != $this->Encoding and self::hasLineLongerThanMax($this->Body)) {
+            $bodyEncoding = 'quoted-printable';
+        }
+
+        $altBodyEncoding = $this->Encoding;
+        $altBodyCharSet = $this->CharSet;
+        //Can we do a 7-bit downgrade?
+        if ($altBodyEncoding == '8bit' and !$this->has8bitChars($this->AltBody)) {
+            $altBodyEncoding = '7bit';
+            //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit
+            $altBodyCharSet = 'us-ascii';
+        }
+        //If lines are too long, and we're not already using an encoding that will shorten them,
+        //change to quoted-printable transfer encoding for the alt body part only
+        if ('base64' != $altBodyEncoding and self::hasLineLongerThanMax($this->AltBody)) {
+            $altBodyEncoding = 'quoted-printable';
+        }
+        //Use this as a preamble in all multipart message types
+        $mimepre = "This is a multi-part message in MIME format." . $this->LE . $this->LE;
+        switch ($this->message_type) {
+            case 'inline':
+                $body .= $mimepre;
+                $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding);
+                $body .= $this->encodeString($this->Body, $bodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->attachAll('inline', $this->boundary[1]);
+                break;
+            case 'attach':
+                $body .= $mimepre;
+                $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding);
+                $body .= $this->encodeString($this->Body, $bodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->attachAll('attachment', $this->boundary[1]);
+                break;
+            case 'inline_attach':
+                $body .= $mimepre;
+                $body .= $this->textLine('--' . $this->boundary[1]);
+                $body .= $this->headerLine('Content-Type', 'multipart/related;');
+                $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
+                $body .= $this->LE;
+                $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, '', $bodyEncoding);
+                $body .= $this->encodeString($this->Body, $bodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->attachAll('inline', $this->boundary[2]);
+                $body .= $this->LE;
+                $body .= $this->attachAll('attachment', $this->boundary[1]);
+                break;
+            case 'alt':
+                $body .= $mimepre;
+                $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text/plain', $altBodyEncoding);
+                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, 'text/html', $bodyEncoding);
+                $body .= $this->encodeString($this->Body, $bodyEncoding);
+                $body .= $this->LE . $this->LE;
+                if (!empty($this->Ical)) {
+                    $body .= $this->getBoundary($this->boundary[1], '', 'text/calendar; method=REQUEST', '');
+                    $body .= $this->encodeString($this->Ical, $this->Encoding);
+                    $body .= $this->LE . $this->LE;
+                }
+                $body .= $this->endBoundary($this->boundary[1]);
+                break;
+            case 'alt_inline':
+                $body .= $mimepre;
+                $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text/plain', $altBodyEncoding);
+                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->textLine('--' . $this->boundary[1]);
+                $body .= $this->headerLine('Content-Type', 'multipart/related;');
+                $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
+                $body .= $this->LE;
+                $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text/html', $bodyEncoding);
+                $body .= $this->encodeString($this->Body, $bodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->attachAll('inline', $this->boundary[2]);
+                $body .= $this->LE;
+                $body .= $this->endBoundary($this->boundary[1]);
+                break;
+            case 'alt_attach':
+                $body .= $mimepre;
+                $body .= $this->textLine('--' . $this->boundary[1]);
+                $body .= $this->headerLine('Content-Type', 'multipart/alternative;');
+                $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
+                $body .= $this->LE;
+                $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text/plain', $altBodyEncoding);
+                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text/html', $bodyEncoding);
+                $body .= $this->encodeString($this->Body, $bodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->endBoundary($this->boundary[2]);
+                $body .= $this->LE;
+                $body .= $this->attachAll('attachment', $this->boundary[1]);
+                break;
+            case 'alt_inline_attach':
+                $body .= $mimepre;
+                $body .= $this->textLine('--' . $this->boundary[1]);
+                $body .= $this->headerLine('Content-Type', 'multipart/alternative;');
+                $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
+                $body .= $this->LE;
+                $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text/plain', $altBodyEncoding);
+                $body .= $this->encodeString($this->AltBody, $altBodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->textLine('--' . $this->boundary[2]);
+                $body .= $this->headerLine('Content-Type', 'multipart/related;');
+                $body .= $this->textLine("\tboundary=\"" . $this->boundary[3] . '"');
+                $body .= $this->LE;
+                $body .= $this->getBoundary($this->boundary[3], $bodyCharSet, 'text/html', $bodyEncoding);
+                $body .= $this->encodeString($this->Body, $bodyEncoding);
+                $body .= $this->LE . $this->LE;
+                $body .= $this->attachAll('inline', $this->boundary[3]);
+                $body .= $this->LE;
+                $body .= $this->endBoundary($this->boundary[2]);
+                $body .= $this->LE;
+                $body .= $this->attachAll('attachment', $this->boundary[1]);
+                break;
+            default:
+                // Catch case 'plain' and case '', applies to simple `text/plain` and `text/html` body content types
+                //Reset the `Encoding` property in case we changed it for line length reasons
+                $this->Encoding = $bodyEncoding;
+                $body .= $this->encodeString($this->Body, $this->Encoding);
+                break;
+        }
+
+        if ($this->isError()) {
+            $body = '';
+        } elseif ($this->sign_key_file) {
+            try {
+                if (!defined('PKCS7_TEXT')) {
+                    throw new phpmailerException($this->lang('extension_missing') . 'openssl');
+                }
+                // @TODO would be nice to use php://temp streams here, but need to wrap for PHP < 5.1
+                $file = tempnam(sys_get_temp_dir(), 'mail');
+                if (false === file_put_contents($file, $body)) {
+                    throw new phpmailerException($this->lang('signing') . ' Could not write temp file');
+                }
+                $signed = tempnam(sys_get_temp_dir(), 'signed');
+                //Workaround for PHP bug https://bugs.php.net/bug.php?id=69197
+                if (empty($this->sign_extracerts_file)) {
+                    $sign = @openssl_pkcs7_sign(
+                        $file,
+                        $signed,
+                        'file://' . realpath($this->sign_cert_file),
+                        array('file://' . realpath($this->sign_key_file), $this->sign_key_pass),
+                        null
+                    );
+                } else {
+                    $sign = @openssl_pkcs7_sign(
+                        $file,
+                        $signed,
+                        'file://' . realpath($this->sign_cert_file),
+                        array('file://' . realpath($this->sign_key_file), $this->sign_key_pass),
+                        null,
+                        PKCS7_DETACHED,
+                        $this->sign_extracerts_file
+                    );
+                }
+                if ($sign) {
+                    @unlink($file);
+                    $body = file_get_contents($signed);
+                    @unlink($signed);
+                    //The message returned by openssl contains both headers and body, so need to split them up
+                    $parts = explode("\n\n", $body, 2);
+                    $this->MIMEHeader .= $parts[0] . $this->LE . $this->LE;
+                    $body = $parts[1];
+                } else {
+                    @unlink($file);
+                    @unlink($signed);
+                    throw new phpmailerException($this->lang('signing') . openssl_error_string());
+                }
+            } catch (phpmailerException $exc) {
+                $body = '';
+                if ($this->exceptions) {
+                    throw $exc;
+                }
+            }
+        }
+        return $body;
+    }
+
+    /**
+     * Return the start of a message boundary.
+     * @access protected
+     * @param string $boundary
+     * @param string $charSet
+     * @param string $contentType
+     * @param string $encoding
+     * @return string
+     */
+    protected function getBoundary($boundary, $charSet, $contentType, $encoding)
+    {
+        $result = '';
+        if ($charSet == '') {
+            $charSet = $this->CharSet;
+        }
+        if ($contentType == '') {
+            $contentType = $this->ContentType;
+        }
+        if ($encoding == '') {
+            $encoding = $this->Encoding;
+        }
+        $result .= $this->textLine('--' . $boundary);
+        $result .= sprintf('Content-Type: %s; charset=%s', $contentType, $charSet);
+        $result .= $this->LE;
+        // RFC1341 part 5 says 7bit is assumed if not specified
+        if ($encoding != '7bit') {
+            $result .= $this->headerLine('Content-Transfer-Encoding', $encoding);
+        }
+        $result .= $this->LE;
+
+        return $result;
+    }
+
+    /**
+     * Return the end of a message boundary.
+     * @access protected
+     * @param string $boundary
+     * @return string
+     */
+    protected function endBoundary($boundary)
+    {
+        return $this->LE . '--' . $boundary . '--' . $this->LE;
+    }
+
+    /**
+     * Set the message type.
+     * PHPMailer only supports some preset message types, not arbitrary MIME structures.
+     * @access protected
+     * @return void
+     */
+    protected function setMessageType()
+    {
+        $type = array();
+        if ($this->alternativeExists()) {
+            $type[] = 'alt';
+        }
+        if ($this->inlineImageExists()) {
+            $type[] = 'inline';
+        }
+        if ($this->attachmentExists()) {
+            $type[] = 'attach';
+        }
+        $this->message_type = implode('_', $type);
+        if ($this->message_type == '') {
+            //The 'plain' message_type refers to the message having a single body element, not that it is plain-text
+            $this->message_type = 'plain';
+        }
+    }
+
+    /**
+     * Format a header line.
+     * @access public
+     * @param string $name
+     * @param string $value
+     * @return string
+     */
+    public function headerLine($name, $value)
+    {
+        return $name . ': ' . $value . $this->LE;
+    }
+
+    /**
+     * Return a formatted mail line.
+     * @access public
+     * @param string $value
+     * @return string
+     */
+    public function textLine($value)
+    {
+        return $value . $this->LE;
+    }
+
+    /**
+     * Add an attachment from a path on the filesystem.
+     * Returns false if the file could not be found or read.
+     * @param string $path Path to the attachment.
+     * @param string $name Overrides the attachment name.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.
+     * @param string $disposition Disposition to use
+     * @throws phpmailerException
+     * @return boolean
+     */
+    public function addAttachment($path, $name = '', $encoding = 'base64', $type = '', $disposition = 'attachment')
+    {
+        try {
+            if (!@is_file($path)) {
+                throw new phpmailerException($this->lang('file_access') . $path, self::STOP_CONTINUE);
+            }
+
+            // If a MIME type is not specified, try to work it out from the file name
+            if ($type == '') {
+                $type = self::filenameToType($path);
+            }
+
+            $filename = basename($path);
+            if ($name == '') {
+                $name = $filename;
+            }
+
+            $this->attachment[] = array(
+                0 => $path,
+                1 => $filename,
+                2 => $name,
+                3 => $encoding,
+                4 => $type,
+                5 => false, // isStringAttachment
+                6 => $disposition,
+                7 => 0
+            );
+
+        } catch (phpmailerException $exc) {
+            $this->setError($exc->getMessage());
+            $this->edebug($exc->getMessage());
+            if ($this->exceptions) {
+                throw $exc;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Return the array of attachments.
+     * @return array
+     */
+    public function getAttachments()
+    {
+        return $this->attachment;
+    }
+
+    /**
+     * Attach all file, string, and binary attachments to the message.
+     * Returns an empty string on failure.
+     * @access protected
+     * @param string $disposition_type
+     * @param string $boundary
+     * @return string
+     */
+    protected function attachAll($disposition_type, $boundary)
+    {
+        // Return text of body
+        $mime = array();
+        $cidUniq = array();
+        $incl = array();
+
+        // Add all attachments
+        foreach ($this->attachment as $attachment) {
+            // Check if it is a valid disposition_filter
+            if ($attachment[6] == $disposition_type) {
+                // Check for string attachment
+                $string = '';
+                $path = '';
+                $bString = $attachment[5];
+                if ($bString) {
+                    $string = $attachment[0];
+                } else {
+                    $path = $attachment[0];
+                }
+
+                $inclhash = md5(serialize($attachment));
+                if (in_array($inclhash, $incl)) {
+                    continue;
+                }
+                $incl[] = $inclhash;
+                $name = $attachment[2];
+                $encoding = $attachment[3];
+                $type = $attachment[4];
+                $disposition = $attachment[6];
+                $cid = $attachment[7];
+                if ($disposition == 'inline' && array_key_exists($cid, $cidUniq)) {
+                    continue;
+                }
+                $cidUniq[$cid] = true;
+
+                $mime[] = sprintf('--%s%s', $boundary, $this->LE);
+                //Only include a filename property if we have one
+                if (!empty($name)) {
+                    $mime[] = sprintf(
+                        'Content-Type: %s; name="%s"%s',
+                        $type,
+                        $this->encodeHeader($this->secureHeader($name)),
+                        $this->LE
+                    );
+                } else {
+                    $mime[] = sprintf(
+                        'Content-Type: %s%s',
+                        $type,
+                        $this->LE
+                    );
+                }
+                // RFC1341 part 5 says 7bit is assumed if not specified
+                if ($encoding != '7bit') {
+                    $mime[] = sprintf('Content-Transfer-Encoding: %s%s', $encoding, $this->LE);
+                }
+
+                if ($disposition == 'inline') {
+                    $mime[] = sprintf('Content-ID: <%s>%s', $cid, $this->LE);
+                }
+
+                // If a filename contains any of these chars, it should be quoted,
+                // but not otherwise: RFC2183 & RFC2045 5.1
+                // Fixes a warning in IETF's msglint MIME checker
+                // Allow for bypassing the Content-Disposition header totally
+                if (!(empty($disposition))) {
+                    $encoded_name = $this->encodeHeader($this->secureHeader($name));
+                    if (preg_match('/[ \(\)<>@,;:\\"\/\[\]\?=]/', $encoded_name)) {
+                        $mime[] = sprintf(
+                            'Content-Disposition: %s; filename="%s"%s',
+                            $disposition,
+                            $encoded_name,
+                            $this->LE . $this->LE
+                        );
+                    } else {
+                        if (!empty($encoded_name)) {
+                            $mime[] = sprintf(
+                                'Content-Disposition: %s; filename=%s%s',
+                                $disposition,
+                                $encoded_name,
+                                $this->LE . $this->LE
+                            );
+                        } else {
+                            $mime[] = sprintf(
+                                'Content-Disposition: %s%s',
+                                $disposition,
+                                $this->LE . $this->LE
+                            );
+                        }
+                    }
+                } else {
+                    $mime[] = $this->LE;
+                }
+
+                // Encode as string attachment
+                if ($bString) {
+                    $mime[] = $this->encodeString($string, $encoding);
+                    if ($this->isError()) {
+                        return '';
+                    }
+                    $mime[] = $this->LE . $this->LE;
+                } else {
+                    $mime[] = $this->encodeFile($path, $encoding);
+                    if ($this->isError()) {
+                        return '';
+                    }
+                    $mime[] = $this->LE . $this->LE;
+                }
+            }
+        }
+
+        $mime[] = sprintf('--%s--%s', $boundary, $this->LE);
+
+        return implode('', $mime);
+    }
+
+    /**
+     * Encode a file attachment in requested format.
+     * Returns an empty string on failure.
+     * @param string $path The full path to the file
+     * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'
+     * @throws phpmailerException
+     * @access protected
+     * @return string
+     */
+    protected function encodeFile($path, $encoding = 'base64')
+    {
+        try {
+            if (!is_readable($path)) {
+                throw new phpmailerException($this->lang('file_open') . $path, self::STOP_CONTINUE);
+            }
+            $magic_quotes = get_magic_quotes_runtime();
+            if ($magic_quotes) {
+                if (version_compare(PHP_VERSION, '5.3.0', '<')) {
+                    set_magic_quotes_runtime(false);
+                } else {
+                    //Doesn't exist in PHP 5.4, but we don't need to check because
+                    //get_magic_quotes_runtime always returns false in 5.4+
+                    //so it will never get here
+                    ini_set('magic_quotes_runtime', false);
+                }
+            }
+            $file_buffer = file_get_contents($path);
+            $file_buffer = $this->encodeString($file_buffer, $encoding);
+            if ($magic_quotes) {
+                if (version_compare(PHP_VERSION, '5.3.0', '<')) {
+                    set_magic_quotes_runtime($magic_quotes);
+                } else {
+                    ini_set('magic_quotes_runtime', $magic_quotes);
+                }
+            }
+            return $file_buffer;
+        } catch (Exception $exc) {
+            $this->setError($exc->getMessage());
+            return '';
+        }
+    }
+
+    /**
+     * Encode a string in requested format.
+     * Returns an empty string on failure.
+     * @param string $str The text to encode
+     * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'
+     * @access public
+     * @return string
+     */
+    public function encodeString($str, $encoding = 'base64')
+    {
+        $encoded = '';
+        switch (strtolower($encoding)) {
+            case 'base64':
+                $encoded = chunk_split(base64_encode($str), 76, $this->LE);
+                break;
+            case '7bit':
+            case '8bit':
+                $encoded = $this->fixEOL($str);
+                // Make sure it ends with a line break
+                if (substr($encoded, -(strlen($this->LE))) != $this->LE) {
+                    $encoded .= $this->LE;
+                }
+                break;
+            case 'binary':
+                $encoded = $str;
+                break;
+            case 'quoted-printable':
+                $encoded = $this->encodeQP($str);
+                break;
+            default:
+                $this->setError($this->lang('encoding') . $encoding);
+                break;
+        }
+        return $encoded;
+    }
+
+    /**
+     * Encode a header string optimally.
+     * Picks shortest of Q, B, quoted-printable or none.
+     * @access public
+     * @param string $str
+     * @param string $position
+     * @return string
+     */
+    public function encodeHeader($str, $position = 'text')
+    {
+        $matchcount = 0;
+        switch (strtolower($position)) {
+            case 'phrase':
+                if (!preg_match('/[\200-\377]/', $str)) {
+                    // Can't use addslashes as we don't know the value of magic_quotes_sybase
+                    $encoded = addcslashes($str, "\0..\37\177\\\"");
+                    if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) {
+                        return ($encoded);
+                    } else {
+                        return ("\"$encoded\"");
+                    }
+                }
+                $matchcount = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches);
+                break;
+            /** @noinspection PhpMissingBreakStatementInspection */
+            case 'comment':
+                $matchcount = preg_match_all('/[()"]/', $str, $matches);
+                // Intentional fall-through
+            case 'text':
+            default:
+                $matchcount += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);
+                break;
+        }
+
+        //There are no chars that need encoding
+        if ($matchcount == 0) {
+            return ($str);
+        }
+
+        $maxlen = 75 - 7 - strlen($this->CharSet);
+        // Try to select the encoding which should produce the shortest output
+        if ($matchcount > strlen($str) / 3) {
+            // More than a third of the content will need encoding, so B encoding will be most efficient
+            $encoding = 'B';
+            if (function_exists('mb_strlen') && $this->hasMultiBytes($str)) {
+                // Use a custom function which correctly encodes and wraps long
+                // multibyte strings without breaking lines within a character
+                $encoded = $this->base64EncodeWrapMB($str, "\n");
+            } else {
+                $encoded = base64_encode($str);
+                $maxlen -= $maxlen % 4;
+                $encoded = trim(chunk_split($encoded, $maxlen, "\n"));
+            }
+        } else {
+            $encoding = 'Q';
+            $encoded = $this->encodeQ($str, $position);
+            $encoded = $this->wrapText($encoded, $maxlen, true);
+            $encoded = str_replace('=' . self::CRLF, "\n", trim($encoded));
+        }
+
+        $encoded = preg_replace('/^(.*)$/m', ' =?' . $this->CharSet . "?$encoding?\\1?=", $encoded);
+        $encoded = trim(str_replace("\n", $this->LE, $encoded));
+
+        return $encoded;
+    }
+
+    /**
+     * Check if a string contains multi-byte characters.
+     * @access public
+     * @param string $str multi-byte text to wrap encode
+     * @return boolean
+     */
+    public function hasMultiBytes($str)
+    {
+        if (function_exists('mb_strlen')) {
+            return (strlen($str) > mb_strlen($str, $this->CharSet));
+        } else { // Assume no multibytes (we can't handle without mbstring functions anyway)
+            return false;
+        }
+    }
+
+    /**
+     * Does a string contain any 8-bit chars (in any charset)?
+     * @param string $text
+     * @return boolean
+     */
+    public function has8bitChars($text)
+    {
+        return (boolean)preg_match('/[\x80-\xFF]/', $text);
+    }
+
+    /**
+     * Encode and wrap long multibyte strings for mail headers
+     * without breaking lines within a character.
+     * Adapted from a function by paravoid
+     * @link http://www.php.net/manual/en/function.mb-encode-mimeheader.php#60283
+     * @access public
+     * @param string $str multi-byte text to wrap encode
+     * @param string $linebreak string to use as linefeed/end-of-line
+     * @return string
+     */
+    public function base64EncodeWrapMB($str, $linebreak = null)
+    {
+        $start = '=?' . $this->CharSet . '?B?';
+        $end = '?=';
+        $encoded = '';
+        if ($linebreak === null) {
+            $linebreak = $this->LE;
+        }
+
+        $mb_length = mb_strlen($str, $this->CharSet);
+        // Each line must have length <= 75, including $start and $end
+        $length = 75 - strlen($start) - strlen($end);
+        // Average multi-byte ratio
+        $ratio = $mb_length / strlen($str);
+        // Base64 has a 4:3 ratio
+        $avgLength = floor($length * $ratio * .75);
+
+        for ($i = 0; $i < $mb_length; $i += $offset) {
+            $lookBack = 0;
+            do {
+                $offset = $avgLength - $lookBack;
+                $chunk = mb_substr($str, $i, $offset, $this->CharSet);
+                $chunk = base64_encode($chunk);
+                $lookBack++;
+            } while (strlen($chunk) > $length);
+            $encoded .= $chunk . $linebreak;
+        }
+
+        // Chomp the last linefeed
+        $encoded = substr($encoded, 0, -strlen($linebreak));
+        return $encoded;
+    }
+
+    /**
+     * Encode a string in quoted-printable format.
+     * According to RFC2045 section 6.7.
+     * @access public
+     * @param string $string The text to encode
+     * @param integer $line_max Number of chars allowed on a line before wrapping
+     * @return string
+     * @link http://www.php.net/manual/en/function.quoted-printable-decode.php#89417 Adapted from this comment
+     */
+    public function encodeQP($string, $line_max = 76)
+    {
+        // Use native function if it's available (>= PHP5.3)
+        if (function_exists('quoted_printable_encode')) {
+            return quoted_printable_encode($string);
+        }
+        // Fall back to a pure PHP implementation
+        $string = str_replace(
+            array('%20', '%0D%0A.', '%0D%0A', '%'),
+            array(' ', "\r\n=2E", "\r\n", '='),
+            rawurlencode($string)
+        );
+        return preg_replace('/[^\r\n]{' . ($line_max - 3) . '}[^=\r\n]{2}/', "$0=\r\n", $string);
+    }
+
+    /**
+     * Backward compatibility wrapper for an old QP encoding function that was removed.
+     * @see PHPMailer::encodeQP()
+     * @access public
+     * @param string $string
+     * @param integer $line_max
+     * @param boolean $space_conv
+     * @return string
+     * @deprecated Use encodeQP instead.
+     */
+    public function encodeQPphp(
+        $string,
+        $line_max = 76,
+        /** @noinspection PhpUnusedParameterInspection */ $space_conv = false
+    ) {
+        return $this->encodeQP($string, $line_max);
+    }
+
+    /**
+     * Encode a string using Q encoding.
+     * @link http://tools.ietf.org/html/rfc2047
+     * @param string $str the text to encode
+     * @param string $position Where the text is going to be used, see the RFC for what that means
+     * @access public
+     * @return string
+     */
+    public function encodeQ($str, $position = 'text')
+    {
+        // There should not be any EOL in the string
+        $pattern = '';
+        $encoded = str_replace(array("\r", "\n"), '', $str);
+        switch (strtolower($position)) {
+            case 'phrase':
+                // RFC 2047 section 5.3
+                $pattern = '^A-Za-z0-9!*+\/ -';
+                break;
+            /** @noinspection PhpMissingBreakStatementInspection */
+            case 'comment':
+                // RFC 2047 section 5.2
+                $pattern = '\(\)"';
+                // intentional fall-through
+                // for this reason we build the $pattern without including delimiters and []
+            case 'text':
+            default:
+                // RFC 2047 section 5.1
+                // Replace every high ascii, control, =, ? and _ characters
+                $pattern = '\000-\011\013\014\016-\037\075\077\137\177-\377' . $pattern;
+                break;
+        }
+        $matches = array();
+        if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) {
+            // If the string contains an '=', make sure it's the first thing we replace
+            // so as to avoid double-encoding
+            $eqkey = array_search('=', $matches[0]);
+            if (false !== $eqkey) {
+                unset($matches[0][$eqkey]);
+                array_unshift($matches[0], '=');
+            }
+            foreach (array_unique($matches[0]) as $char) {
+                $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded);
+            }
+        }
+        // Replace every spaces to _ (more readable than =20)
+        return str_replace(' ', '_', $encoded);
+    }
+
+    /**
+     * Add a string or binary attachment (non-filesystem).
+     * This method can be used to attach ascii or binary data,
+     * such as a BLOB record from a database.
+     * @param string $string String attachment data.
+     * @param string $filename Name of the attachment.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.
+     * @param string $disposition Disposition to use
+     * @return void
+     */
+    public function addStringAttachment(
+        $string,
+        $filename,
+        $encoding = 'base64',
+        $type = '',
+        $disposition = 'attachment'
+    ) {
+        // If a MIME type is not specified, try to work it out from the file name
+        if ($type == '') {
+            $type = self::filenameToType($filename);
+        }
+        // Append to $attachment array
+        $this->attachment[] = array(
+            0 => $string,
+            1 => $filename,
+            2 => basename($filename),
+            3 => $encoding,
+            4 => $type,
+            5 => true, // isStringAttachment
+            6 => $disposition,
+            7 => 0
+        );
+    }
+
+    /**
+     * Add an embedded (inline) attachment from a file.
+     * This can include images, sounds, and just about any other document type.
+     * These differ from 'regular' attachments in that they are intended to be
+     * displayed inline with the message, not just attached for download.
+     * This is used in HTML messages that embed the images
+     * the HTML refers to using the $cid value.
+     * @param string $path Path to the attachment.
+     * @param string $cid Content ID of the attachment; Use this to reference
+     *        the content when using an embedded image in HTML.
+     * @param string $name Overrides the attachment name.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File MIME type.
+     * @param string $disposition Disposition to use
+     * @return boolean True on successfully adding an attachment
+     */
+    public function addEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = '', $disposition = 'inline')
+    {
+        if (!@is_file($path)) {
+            $this->setError($this->lang('file_access') . $path);
+            return false;
+        }
+
+        // If a MIME type is not specified, try to work it out from the file name
+        if ($type == '') {
+            $type = self::filenameToType($path);
+        }
+
+        $filename = basename($path);
+        if ($name == '') {
+            $name = $filename;
+        }
+
+        // Append to $attachment array
+        $this->attachment[] = array(
+            0 => $path,
+            1 => $filename,
+            2 => $name,
+            3 => $encoding,
+            4 => $type,
+            5 => false, // isStringAttachment
+            6 => $disposition,
+            7 => $cid
+        );
+        return true;
+    }
+
+    /**
+     * Add an embedded stringified attachment.
+     * This can include images, sounds, and just about any other document type.
+     * Be sure to set the $type to an image type for images:
+     * JPEG images use 'image/jpeg', GIF uses 'image/gif', PNG uses 'image/png'.
+     * @param string $string The attachment binary data.
+     * @param string $cid Content ID of the attachment; Use this to reference
+     *        the content when using an embedded image in HTML.
+     * @param string $name
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type MIME type.
+     * @param string $disposition Disposition to use
+     * @return boolean True on successfully adding an attachment
+     */
+    public function addStringEmbeddedImage(
+        $string,
+        $cid,
+        $name = '',
+        $encoding = 'base64',
+        $type = '',
+        $disposition = 'inline'
+    ) {
+        // If a MIME type is not specified, try to work it out from the name
+        if ($type == '' and !empty($name)) {
+            $type = self::filenameToType($name);
+        }
+
+        // Append to $attachment array
+        $this->attachment[] = array(
+            0 => $string,
+            1 => $name,
+            2 => $name,
+            3 => $encoding,
+            4 => $type,
+            5 => true, // isStringAttachment
+            6 => $disposition,
+            7 => $cid
+        );
+        return true;
+    }
+
+    /**
+     * Check if an inline attachment is present.
+     * @access public
+     * @return boolean
+     */
+    public function inlineImageExists()
+    {
+        foreach ($this->attachment as $attachment) {
+            if ($attachment[6] == 'inline') {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Check if an attachment (non-inline) is present.
+     * @return boolean
+     */
+    public function attachmentExists()
+    {
+        foreach ($this->attachment as $attachment) {
+            if ($attachment[6] == 'attachment') {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Check if this message has an alternative body set.
+     * @return boolean
+     */
+    public function alternativeExists()
+    {
+        return !empty($this->AltBody);
+    }
+
+    /**
+     * Clear queued addresses of given kind.
+     * @access protected
+     * @param string $kind 'to', 'cc', or 'bcc'
+     * @return void
+     */
+    public function clearQueuedAddresses($kind)
+    {
+        $RecipientsQueue = $this->RecipientsQueue;
+        foreach ($RecipientsQueue as $address => $params) {
+            if ($params[0] == $kind) {
+                unset($this->RecipientsQueue[$address]);
+            }
+        }
+    }
+
+    /**
+     * Clear all To recipients.
+     * @return void
+     */
+    public function clearAddresses()
+    {
+        foreach ($this->to as $to) {
+            unset($this->all_recipients[strtolower($to[0])]);
+        }
+        $this->to = array();
+        $this->clearQueuedAddresses('to');
+    }
+
+    /**
+     * Clear all CC recipients.
+     * @return void
+     */
+    public function clearCCs()
+    {
+        foreach ($this->cc as $cc) {
+            unset($this->all_recipients[strtolower($cc[0])]);
+        }
+        $this->cc = array();
+        $this->clearQueuedAddresses('cc');
+    }
+
+    /**
+     * Clear all BCC recipients.
+     * @return void
+     */
+    public function clearBCCs()
+    {
+        foreach ($this->bcc as $bcc) {
+            unset($this->all_recipients[strtolower($bcc[0])]);
+        }
+        $this->bcc = array();
+        $this->clearQueuedAddresses('bcc');
+    }
+
+    /**
+     * Clear all ReplyTo recipients.
+     * @return void
+     */
+    public function clearReplyTos()
+    {
+        $this->ReplyTo = array();
+        $this->ReplyToQueue = array();
+    }
+
+    /**
+     * Clear all recipient types.
+     * @return void
+     */
+    public function clearAllRecipients()
+    {
+        $this->to = array();
+        $this->cc = array();
+        $this->bcc = array();
+        $this->all_recipients = array();
+        $this->RecipientsQueue = array();
+    }
+
+    /**
+     * Clear all filesystem, string, and binary attachments.
+     * @return void
+     */
+    public function clearAttachments()
+    {
+        $this->attachment = array();
+    }
+
+    /**
+     * Clear all custom headers.
+     * @return void
+     */
+    public function clearCustomHeaders()
+    {
+        $this->CustomHeader = array();
+    }
+
+    /**
+     * Add an error message to the error container.
+     * @access protected
+     * @param string $msg
+     * @return void
+     */
+    protected function setError($msg)
+    {
+        $this->error_count++;
+        if ($this->Mailer == 'smtp' and !is_null($this->smtp)) {
+            $lasterror = $this->smtp->getError();
+            if (!empty($lasterror['error'])) {
+                $msg .= $this->lang('smtp_error') . $lasterror['error'];
+                if (!empty($lasterror['detail'])) {
+                    $msg .= ' Detail: '. $lasterror['detail'];
+                }
+                if (!empty($lasterror['smtp_code'])) {
+                    $msg .= ' SMTP code: ' . $lasterror['smtp_code'];
+                }
+                if (!empty($lasterror['smtp_code_ex'])) {
+                    $msg .= ' Additional SMTP info: ' . $lasterror['smtp_code_ex'];
+                }
+            }
+        }
+        $this->ErrorInfo = $msg;
+    }
+
+    /**
+     * Return an RFC 822 formatted date.
+     * @access public
+     * @return string
+     * @static
+     */
+    public static function rfcDate()
+    {
+        // Set the time zone to whatever the default is to avoid 500 errors
+        // Will default to UTC if it's not set properly in php.ini
+        date_default_timezone_set(@date_default_timezone_get());
+        return date('D, j M Y H:i:s O');
+    }
+
+    /**
+     * Get the server hostname.
+     * Returns 'localhost.localdomain' if unknown.
+     * @access protected
+     * @return string
+     */
+    protected function serverHostname()
+    {
+        $result = 'localhost.localdomain';
+        if (!empty($this->Hostname)) {
+            $result = $this->Hostname;
+        } elseif (isset($_SERVER) and array_key_exists('SERVER_NAME', $_SERVER) and !empty($_SERVER['SERVER_NAME'])) {
+            $result = $_SERVER['SERVER_NAME'];
+        } elseif (function_exists('gethostname') && gethostname() !== false) {
+            $result = gethostname();
+        } elseif (php_uname('n') !== false) {
+            $result = php_uname('n');
+        }
+        return $result;
+    }
+
+    /**
+     * Get an error message in the current language.
+     * @access protected
+     * @param string $key
+     * @return string
+     */
+    protected function lang($key)
+    {
+        if (count($this->language) < 1) {
+            $this->setLanguage('en'); // set the default language
+        }
+
+        if (array_key_exists($key, $this->language)) {
+            if ($key == 'smtp_connect_failed') {
+                //Include a link to troubleshooting docs on SMTP connection failure
+                //this is by far the biggest cause of support questions
+                //but it's usually not PHPMailer's fault.
+                return $this->language[$key] . ' https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting';
+            }
+            return $this->language[$key];
+        } else {
+            //Return the key as a fallback
+            return $key;
+        }
+    }
+
+    /**
+     * Check if an error occurred.
+     * @access public
+     * @return boolean True if an error did occur.
+     */
+    public function isError()
+    {
+        return ($this->error_count > 0);
+    }
+
+    /**
+     * Ensure consistent line endings in a string.
+     * Changes every end of line from CRLF, CR or LF to $this->LE.
+     * @access public
+     * @param string $str String to fixEOL
+     * @return string
+     */
+    public function fixEOL($str)
+    {
+        // Normalise to \n
+        $nstr = str_replace(array("\r\n", "\r"), "\n", $str);
+        // Now convert LE as needed
+        if ($this->LE !== "\n") {
+            $nstr = str_replace("\n", $this->LE, $nstr);
+        }
+        return $nstr;
+    }
+
+    /**
+     * Add a custom header.
+     * $name value can be overloaded to contain
+     * both header name and value (name:value)
+     * @access public
+     * @param string $name Custom header name
+     * @param string $value Header value
+     * @return void
+     */
+    public function addCustomHeader($name, $value = null)
+    {
+        if ($value === null) {
+            // Value passed in as name:value
+            $this->CustomHeader[] = explode(':', $name, 2);
+        } else {
+            $this->CustomHeader[] = array($name, $value);
+        }
+    }
+
+    /**
+     * Returns all custom headers.
+     * @return array
+     */
+    public function getCustomHeaders()
+    {
+        return $this->CustomHeader;
+    }
+
+    /**
+     * Create a message body from an HTML string.
+     * Automatically inlines images and creates a plain-text version by converting the HTML,
+     * overwriting any existing values in Body and AltBody.
+     * $basedir is used when handling relative image paths, e.g. <img src="images/a.png">
+     * will look for an image file in $basedir/images/a.png and convert it to inline.
+     * If you don't want to apply these transformations to your HTML, just set Body and AltBody yourself.
+     * @access public
+     * @param string $message HTML message string
+     * @param string $basedir base directory for relative paths to images
+     * @param boolean|callable $advanced Whether to use the internal HTML to text converter
+     *    or your own custom converter @see PHPMailer::html2text()
+     * @return string $message The transformed message Body
+     */
+    public function msgHTML($message, $basedir = '', $advanced = false)
+    {
+        preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images);
+        if (array_key_exists(2, $images)) {
+            foreach ($images[2] as $imgindex => $url) {
+                // Convert data URIs into embedded images
+                if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) {
+                    $data = substr($url, strpos($url, ','));
+                    if ($match[2]) {
+                        $data = base64_decode($data);
+                    } else {
+                        $data = rawurldecode($data);
+                    }
+                    $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
+                    if ($this->addStringEmbeddedImage($data, $cid, 'embed' . $imgindex, 'base64', $match[1])) {
+                        $message = str_replace(
+                            $images[0][$imgindex],
+                            $images[1][$imgindex] . '="cid:' . $cid . '"',
+                            $message
+                        );
+                    }
+                } elseif (substr($url, 0, 4) !== 'cid:' && !preg_match('#^[a-z][a-z0-9+.-]*://#i', $url)) {
+                    // Do not change urls for absolute images (thanks to corvuscorax)
+                    // Do not change urls that are already inline images
+                    $filename = basename($url);
+                    $directory = dirname($url);
+                    if ($directory == '.') {
+                        $directory = '';
+                    }
+                    $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
+                    if (strlen($basedir) > 1 && substr($basedir, -1) != '/') {
+                        $basedir .= '/';
+                    }
+                    if (strlen($directory) > 1 && substr($directory, -1) != '/') {
+                        $directory .= '/';
+                    }
+                    if ($this->addEmbeddedImage(
+                        $basedir . $directory . $filename,
+                        $cid,
+                        $filename,
+                        'base64',
+                        self::_mime_types((string)self::mb_pathinfo($filename, PATHINFO_EXTENSION))
+                    )
+                    ) {
+                        $message = preg_replace(
+                            '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui',
+                            $images[1][$imgindex] . '="cid:' . $cid . '"',
+                            $message
+                        );
+                    }
+                }
+            }
+        }
+        $this->isHTML(true);
+        // Convert all message body line breaks to CRLF, makes quoted-printable encoding work much better
+        $this->Body = $this->normalizeBreaks($message);
+        $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced));
+        if (!$this->alternativeExists()) {
+            $this->AltBody = 'To view this email message, open it in a program that understands HTML!' .
+                self::CRLF . self::CRLF;
+        }
+        return $this->Body;
+    }
+
+    /**
+     * Convert an HTML string into plain text.
+     * This is used by msgHTML().
+     * Note - older versions of this function used a bundled advanced converter
+     * which was been removed for license reasons in #232.
+     * Example usage:
+     * <code>
+     * // Use default conversion
+     * $plain = $mail->html2text($html);
+     * // Use your own custom converter
+     * $plain = $mail->html2text($html, function($html) {
+     *     $converter = new MyHtml2text($html);
+     *     return $converter->get_text();
+     * });
+     * </code>
+     * @param string $html The HTML text to convert
+     * @param boolean|callable $advanced Any boolean value to use the internal converter,
+     *   or provide your own callable for custom conversion.
+     * @return string
+     */
+    public function html2text($html, $advanced = false)
+    {
+        if (is_callable($advanced)) {
+            return call_user_func($advanced, $html);
+        }
+        return html_entity_decode(
+            trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/si', '', $html))),
+            ENT_QUOTES,
+            $this->CharSet
+        );
+    }
+
+    /**
+     * Get the MIME type for a file extension.
+     * @param string $ext File extension
+     * @access public
+     * @return string MIME type of file.
+     * @static
+     */
+    public static function _mime_types($ext = '')
+    {
+        $mimes = array(
+            'xl'    => 'application/excel',
+            'js'    => 'application/javascript',
+            'hqx'   => 'application/mac-binhex40',
+            'cpt'   => 'application/mac-compactpro',
+            'bin'   => 'application/macbinary',
+            'doc'   => 'application/msword',
+            'word'  => 'application/msword',
+            'xlsx'  => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+            'xltx'  => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
+            'potx'  => 'application/vnd.openxmlformats-officedocument.presentationml.template',
+            'ppsx'  => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
+            'pptx'  => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
+            'sldx'  => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
+            'docx'  => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+            'dotx'  => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
+            'xlam'  => 'application/vnd.ms-excel.addin.macroEnabled.12',
+            'xlsb'  => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
+            'class' => 'application/octet-stream',
+            'dll'   => 'application/octet-stream',
+            'dms'   => 'application/octet-stream',
+            'exe'   => 'application/octet-stream',
+            'lha'   => 'application/octet-stream',
+            'lzh'   => 'application/octet-stream',
+            'psd'   => 'application/octet-stream',
+            'sea'   => 'application/octet-stream',
+            'so'    => 'application/octet-stream',
+            'oda'   => 'application/oda',
+            'pdf'   => 'application/pdf',
+            'ai'    => 'application/postscript',
+            'eps'   => 'application/postscript',
+            'ps'    => 'application/postscript',
+            'smi'   => 'application/smil',
+            'smil'  => 'application/smil',
+            'mif'   => 'application/vnd.mif',
+            'xls'   => 'application/vnd.ms-excel',
+            'ppt'   => 'application/vnd.ms-powerpoint',
+            'wbxml' => 'application/vnd.wap.wbxml',
+            'wmlc'  => 'application/vnd.wap.wmlc',
+            'dcr'   => 'application/x-director',
+            'dir'   => 'application/x-director',
+            'dxr'   => 'application/x-director',
+            'dvi'   => 'application/x-dvi',
+            'gtar'  => 'application/x-gtar',
+            'php3'  => 'application/x-httpd-php',
+            'php4'  => 'application/x-httpd-php',
+            'php'   => 'application/x-httpd-php',
+            'phtml' => 'application/x-httpd-php',
+            'phps'  => 'application/x-httpd-php-source',
+            'swf'   => 'application/x-shockwave-flash',
+            'sit'   => 'application/x-stuffit',
+            'tar'   => 'application/x-tar',
+            'tgz'   => 'application/x-tar',
+            'xht'   => 'application/xhtml+xml',
+            'xhtml' => 'application/xhtml+xml',
+            'zip'   => 'application/zip',
+            'mid'   => 'audio/midi',
+            'midi'  => 'audio/midi',
+            'mp2'   => 'audio/mpeg',
+            'mp3'   => 'audio/mpeg',
+            'mpga'  => 'audio/mpeg',
+            'aif'   => 'audio/x-aiff',
+            'aifc'  => 'audio/x-aiff',
+            'aiff'  => 'audio/x-aiff',
+            'ram'   => 'audio/x-pn-realaudio',
+            'rm'    => 'audio/x-pn-realaudio',
+            'rpm'   => 'audio/x-pn-realaudio-plugin',
+            'ra'    => 'audio/x-realaudio',
+            'wav'   => 'audio/x-wav',
+            'bmp'   => 'image/bmp',
+            'gif'   => 'image/gif',
+            'jpeg'  => 'image/jpeg',
+            'jpe'   => 'image/jpeg',
+            'jpg'   => 'image/jpeg',
+            'png'   => 'image/png',
+            'tiff'  => 'image/tiff',
+            'tif'   => 'image/tiff',
+            'eml'   => 'message/rfc822',
+            'css'   => 'text/css',
+            'html'  => 'text/html',
+            'htm'   => 'text/html',
+            'shtml' => 'text/html',
+            'log'   => 'text/plain',
+            'text'  => 'text/plain',
+            'txt'   => 'text/plain',
+            'rtx'   => 'text/richtext',
+            'rtf'   => 'text/rtf',
+            'vcf'   => 'text/vcard',
+            'vcard' => 'text/vcard',
+            'xml'   => 'text/xml',
+            'xsl'   => 'text/xml',
+            'mpeg'  => 'video/mpeg',
+            'mpe'   => 'video/mpeg',
+            'mpg'   => 'video/mpeg',
+            'mov'   => 'video/quicktime',
+            'qt'    => 'video/quicktime',
+            'rv'    => 'video/vnd.rn-realvideo',
+            'avi'   => 'video/x-msvideo',
+            'movie' => 'video/x-sgi-movie'
+        );
+        if (array_key_exists(strtolower($ext), $mimes)) {
+            return $mimes[strtolower($ext)];
+        }
+        return 'application/octet-stream';
+    }
+
+    /**
+     * Map a file name to a MIME type.
+     * Defaults to 'application/octet-stream', i.e.. arbitrary binary data.
+     * @param string $filename A file name or full path, does not need to exist as a file
+     * @return string
+     * @static
+     */
+    public static function filenameToType($filename)
+    {
+        // In case the path is a URL, strip any query string before getting extension
+        $qpos = strpos($filename, '?');
+        if (false !== $qpos) {
+            $filename = substr($filename, 0, $qpos);
+        }
+        $pathinfo = self::mb_pathinfo($filename);
+        return self::_mime_types($pathinfo['extension']);
+    }
+
+    /**
+     * Multi-byte-safe pathinfo replacement.
+     * Drop-in replacement for pathinfo(), but multibyte-safe, cross-platform-safe, old-version-safe.
+     * Works similarly to the one in PHP >= 5.2.0
+     * @link http://www.php.net/manual/en/function.pathinfo.php#107461
+     * @param string $path A filename or path, does not need to exist as a file
+     * @param integer|string $options Either a PATHINFO_* constant,
+     *      or a string name to return only the specified piece, allows 'filename' to work on PHP < 5.2
+     * @return string|array
+     * @static
+     */
+    public static function mb_pathinfo($path, $options = null)
+    {
+        $ret = array('dirname' => '', 'basename' => '', 'extension' => '', 'filename' => '');
+        $pathinfo = array();
+        if (preg_match('%^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^\.\\\\/]+?)|))[\\\\/\.]*$%im', $path, $pathinfo)) {
+            if (array_key_exists(1, $pathinfo)) {
+                $ret['dirname'] = $pathinfo[1];
+            }
+            if (array_key_exists(2, $pathinfo)) {
+                $ret['basename'] = $pathinfo[2];
+            }
+            if (array_key_exists(5, $pathinfo)) {
+                $ret['extension'] = $pathinfo[5];
+            }
+            if (array_key_exists(3, $pathinfo)) {
+                $ret['filename'] = $pathinfo[3];
+            }
+        }
+        switch ($options) {
+            case PATHINFO_DIRNAME:
+            case 'dirname':
+                return $ret['dirname'];
+            case PATHINFO_BASENAME:
+            case 'basename':
+                return $ret['basename'];
+            case PATHINFO_EXTENSION:
+            case 'extension':
+                return $ret['extension'];
+            case PATHINFO_FILENAME:
+            case 'filename':
+                return $ret['filename'];
+            default:
+                return $ret;
+        }
+    }
+
+    /**
+     * Set or reset instance properties.
+     * You should avoid this function - it's more verbose, less efficient, more error-prone and
+     * harder to debug than setting properties directly.
+     * Usage Example:
+     * `$mail->set('SMTPSecure', 'tls');`
+     *   is the same as:
+     * `$mail->SMTPSecure = 'tls';`
+     * @access public
+     * @param string $name The property name to set
+     * @param mixed $value The value to set the property to
+     * @return boolean
+     * @TODO Should this not be using the __set() magic function?
+     */
+    public function set($name, $value = '')
+    {
+        if (property_exists($this, $name)) {
+            $this->$name = $value;
+            return true;
+        } else {
+            $this->setError($this->lang('variable_set') . $name);
+            return false;
+        }
+    }
+
+    /**
+     * Strip newlines to prevent header injection.
+     * @access public
+     * @param string $str
+     * @return string
+     */
+    public function secureHeader($str)
+    {
+        return trim(str_replace(array("\r", "\n"), '', $str));
+    }
+
+    /**
+     * Normalize line breaks in a string.
+     * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format.
+     * Defaults to CRLF (for message bodies) and preserves consecutive breaks.
+     * @param string $text
+     * @param string $breaktype What kind of line break to use, defaults to CRLF
+     * @return string
+     * @access public
+     * @static
+     */
+    public static function normalizeBreaks($text, $breaktype = "\r\n")
+    {
+        return preg_replace('/(\r\n|\r|\n)/ms', $breaktype, $text);
+    }
+
+    /**
+     * Set the public and private key files and password for S/MIME signing.
+     * @access public
+     * @param string $cert_filename
+     * @param string $key_filename
+     * @param string $key_pass Password for private key
+     * @param string $extracerts_filename Optional path to chain certificate
+     */
+    public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '')
+    {
+        $this->sign_cert_file = $cert_filename;
+        $this->sign_key_file = $key_filename;
+        $this->sign_key_pass = $key_pass;
+        $this->sign_extracerts_file = $extracerts_filename;
+    }
+
+    /**
+     * Quoted-Printable-encode a DKIM header.
+     * @access public
+     * @param string $txt
+     * @return string
+     */
+    public function DKIM_QP($txt)
+    {
+        $line = '';
+        for ($i = 0; $i < strlen($txt); $i++) {
+            $ord = ord($txt[$i]);
+            if (((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E))) {
+                $line .= $txt[$i];
+            } else {
+                $line .= '=' . sprintf('%02X', $ord);
+            }
+        }
+        return $line;
+    }
+
+    /**
+     * Generate a DKIM signature.
+     * @access public
+     * @param string $signHeader
+     * @throws phpmailerException
+     * @return string The DKIM signature value
+     */
+    public function DKIM_Sign($signHeader)
+    {
+        if (!defined('PKCS7_TEXT')) {
+            if ($this->exceptions) {
+                throw new phpmailerException($this->lang('extension_missing') . 'openssl');
+            }
+            return '';
+        }
+        $privKeyStr = !empty($this->DKIM_private_string) ? $this->DKIM_private_string : file_get_contents($this->DKIM_private);
+        if ('' != $this->DKIM_passphrase) {
+            $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase);
+        } else {
+            $privKey = openssl_pkey_get_private($privKeyStr);
+        }
+        //Workaround for missing digest algorithms in old PHP & OpenSSL versions
+        //@link http://stackoverflow.com/a/11117338/333340
+        if (version_compare(PHP_VERSION, '5.3.0') >= 0 and
+            in_array('sha256WithRSAEncryption', openssl_get_md_methods(true))) {
+            if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) {
+                openssl_pkey_free($privKey);
+                return base64_encode($signature);
+            }
+        } else {
+            $pinfo = openssl_pkey_get_details($privKey);
+            $hash = hash('sha256', $signHeader);
+            //'Magic' constant for SHA256 from RFC3447
+            //@link https://tools.ietf.org/html/rfc3447#page-43
+            $t = '3031300d060960864801650304020105000420' . $hash;
+            $pslen = $pinfo['bits'] / 8 - (strlen($t) / 2 + 3);
+            $eb = pack('H*', '0001' . str_repeat('FF', $pslen) . '00' . $t);
+
+            if (openssl_private_encrypt($eb, $signature, $privKey, OPENSSL_NO_PADDING)) {
+                openssl_pkey_free($privKey);
+                return base64_encode($signature);
+            }
+        }
+        openssl_pkey_free($privKey);
+        return '';
+    }
+
+    /**
+     * Generate a DKIM canonicalization header.
+     * @access public
+     * @param string $signHeader Header
+     * @return string
+     */
+    public function DKIM_HeaderC($signHeader)
+    {
+        $signHeader = preg_replace('/\r\n\s+/', ' ', $signHeader);
+        $lines = explode("\r\n", $signHeader);
+        foreach ($lines as $key => $line) {
+            list($heading, $value) = explode(':', $line, 2);
+            $heading = strtolower($heading);
+            $value = preg_replace('/\s{2,}/', ' ', $value); // Compress useless spaces
+            $lines[$key] = $heading . ':' . trim($value); // Don't forget to remove WSP around the value
+        }
+        $signHeader = implode("\r\n", $lines);
+        return $signHeader;
+    }
+
+    /**
+     * Generate a DKIM canonicalization body.
+     * @access public
+     * @param string $body Message Body
+     * @return string
+     */
+    public function DKIM_BodyC($body)
+    {
+        if ($body == '') {
+            return "\r\n";
+        }
+        // stabilize line endings
+        $body = str_replace("\r\n", "\n", $body);
+        $body = str_replace("\n", "\r\n", $body);
+        // END stabilize line endings
+        while (substr($body, strlen($body) - 4, 4) == "\r\n\r\n") {
+            $body = substr($body, 0, strlen($body) - 2);
+        }
+        return $body;
+    }
+
+    /**
+     * Create the DKIM header and body in a new message header.
+     * @access public
+     * @param string $headers_line Header lines
+     * @param string $subject Subject
+     * @param string $body Body
+     * @return string
+     */
+    public function DKIM_Add($headers_line, $subject, $body)
+    {
+        $DKIMsignatureType = 'rsa-sha256'; // Signature & hash algorithms
+        $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body
+        $DKIMquery = 'dns/txt'; // Query method
+        $DKIMtime = time(); // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone)
+        $subject_header = "Subject: $subject";
+        $headers = explode($this->LE, $headers_line);
+        $from_header = '';
+        $to_header = '';
+        $date_header = '';
+        $current = '';
+        foreach ($headers as $header) {
+            if (strpos($header, 'From:') === 0) {
+                $from_header = $header;
+                $current = 'from_header';
+            } elseif (strpos($header, 'To:') === 0) {
+                $to_header = $header;
+                $current = 'to_header';
+            } elseif (strpos($header, 'Date:') === 0) {
+                $date_header = $header;
+                $current = 'date_header';
+            } else {
+                if (!empty($$current) && strpos($header, ' =?') === 0) {
+                    $$current .= $header;
+                } else {
+                    $current = '';
+                }
+            }
+        }
+        $from = str_replace('|', '=7C', $this->DKIM_QP($from_header));
+        $to = str_replace('|', '=7C', $this->DKIM_QP($to_header));
+        $date = str_replace('|', '=7C', $this->DKIM_QP($date_header));
+        $subject = str_replace(
+            '|',
+            '=7C',
+            $this->DKIM_QP($subject_header)
+        ); // Copied header fields (dkim-quoted-printable)
+        $body = $this->DKIM_BodyC($body);
+        $DKIMlen = strlen($body); // Length of body
+        $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body))); // Base64 of packed binary SHA-256 hash of body
+        if ('' == $this->DKIM_identity) {
+            $ident = '';
+        } else {
+            $ident = ' i=' . $this->DKIM_identity . ';';
+        }
+        $dkimhdrs = 'DKIM-Signature: v=1; a=' .
+            $DKIMsignatureType . '; q=' .
+            $DKIMquery . '; l=' .
+            $DKIMlen . '; s=' .
+            $this->DKIM_selector .
+            ";\r\n" .
+            "\tt=" . $DKIMtime . '; c=' . $DKIMcanonicalization . ";\r\n" .
+            "\th=From:To:Date:Subject;\r\n" .
+            "\td=" . $this->DKIM_domain . ';' . $ident . "\r\n" .
+            "\tz=$from\r\n" .
+            "\t|$to\r\n" .
+            "\t|$date\r\n" .
+            "\t|$subject;\r\n" .
+            "\tbh=" . $DKIMb64 . ";\r\n" .
+            "\tb=";
+        $toSign = $this->DKIM_HeaderC(
+            $from_header . "\r\n" .
+            $to_header . "\r\n" .
+            $date_header . "\r\n" .
+            $subject_header . "\r\n" .
+            $dkimhdrs
+        );
+        $signed = $this->DKIM_Sign($toSign);
+        return $dkimhdrs . $signed . "\r\n";
+    }
+
+    /**
+     * Detect if a string contains a line longer than the maximum line length allowed.
+     * @param string $str
+     * @return boolean
+     * @static
+     */
+    public static function hasLineLongerThanMax($str)
+    {
+        //+2 to include CRLF line break for a 1000 total
+        return (boolean)preg_match('/^(.{'.(self::MAX_LINE_LENGTH + 2).',})/m', $str);
+    }
+
+    /**
+     * Allows for public read access to 'to' property.
+     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
+     * @access public
+     * @return array
+     */
+    public function getToAddresses()
+    {
+        return $this->to;
+    }
+
+    /**
+     * Allows for public read access to 'cc' property.
+     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
+     * @access public
+     * @return array
+     */
+    public function getCcAddresses()
+    {
+        return $this->cc;
+    }
+
+    /**
+     * Allows for public read access to 'bcc' property.
+     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
+     * @access public
+     * @return array
+     */
+    public function getBccAddresses()
+    {
+        return $this->bcc;
+    }
+
+    /**
+     * Allows for public read access to 'ReplyTo' property.
+     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
+     * @access public
+     * @return array
+     */
+    public function getReplyToAddresses()
+    {
+        return $this->ReplyTo;
+    }
+
+    /**
+     * Allows for public read access to 'all_recipients' property.
+     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
+     * @access public
+     * @return array
+     */
+    public function getAllRecipientAddresses()
+    {
+        return $this->all_recipients;
+    }
+
+    /**
+     * Perform a callback.
+     * @param boolean $isSent
+     * @param array $to
+     * @param array $cc
+     * @param array $bcc
+     * @param string $subject
+     * @param string $body
+     * @param string $from
+     */
+    protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from)
+    {
+        if (!empty($this->action_function) && is_callable($this->action_function)) {
+            $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from);
+            call_user_func_array($this->action_function, $params);
+        }
+    }
+}
+
+/**
+ * PHPMailer exception handler
+ * @package PHPMailer
+ */
+class phpmailerException extends Exception
+{
+    /**
+     * Prettify error message output
+     * @return string
+     */
+    public function errorMessage()
+    {
+        $errorMsg = '<strong>' . $this->getMessage() . "</strong><br />\n";
+        return $errorMsg;
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/class.phpmaileroauth.php b/drupal/sites/all/libraries/phpmailer/class.phpmaileroauth.php
new file mode 100644
index 0000000..b1bb09f
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/class.phpmaileroauth.php
@@ -0,0 +1,197 @@
+<?php
+/**
+ * PHPMailer - PHP email creation and transport class.
+ * PHP Version 5.4
+ * @package PHPMailer
+ * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ * @author Brent R. Matzelle (original founder)
+ * @copyright 2012 - 2014 Marcus Bointon
+ * @copyright 2010 - 2012 Jim Jagielski
+ * @copyright 2004 - 2009 Andy Prevost
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ * @note This program is distributed in the hope that it will be useful - WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * PHPMailerOAuth - PHPMailer subclass adding OAuth support.
+ * @package PHPMailer
+ * @author @sherryl4george
+ * @author Marcus Bointon (@Synchro) <phpmailer at synchromedia.co.uk>
+ */
+class PHPMailerOAuth extends PHPMailer
+{
+    /**
+     * The OAuth user's email address
+     * @var string
+     */
+    public $oauthUserEmail = '';
+
+    /**
+     * The OAuth refresh token
+     * @var string
+     */
+    public $oauthRefreshToken = '';
+
+    /**
+     * The OAuth client ID
+     * @var string
+     */
+    public $oauthClientId = '';
+
+    /**
+     * The OAuth client secret
+     * @var string
+     */
+    public $oauthClientSecret = '';
+
+    /**
+     * An instance of the PHPMailerOAuthGoogle class.
+     * @var PHPMailerOAuthGoogle
+     * @access protected
+     */
+    protected $oauth = null;
+
+    /**
+     * Get a PHPMailerOAuthGoogle instance to use.
+     * @return PHPMailerOAuthGoogle
+     */
+    public function getOAUTHInstance()
+    {
+        if (!is_object($this->oauth)) {
+            $this->oauth = new PHPMailerOAuthGoogle(
+                $this->oauthUserEmail,
+                $this->oauthClientSecret,
+                $this->oauthClientId,
+                $this->oauthRefreshToken
+            );
+        }
+        return $this->oauth;
+    }
+
+    /**
+     * Initiate a connection to an SMTP server.
+     * Overrides the original smtpConnect method to add support for OAuth.
+     * @param array $options An array of options compatible with stream_context_create()
+     * @uses SMTP
+     * @access public
+     * @return bool
+     * @throws phpmailerException
+     */
+    public function smtpConnect($options = array())
+    {
+        if (is_null($this->smtp)) {
+            $this->smtp = $this->getSMTPInstance();
+        }
+
+        if (is_null($this->oauth)) {
+            $this->oauth = $this->getOAUTHInstance();
+        }
+
+        // Already connected?
+        if ($this->smtp->connected()) {
+            return true;
+        }
+
+        $this->smtp->setTimeout($this->Timeout);
+        $this->smtp->setDebugLevel($this->SMTPDebug);
+        $this->smtp->setDebugOutput($this->Debugoutput);
+        $this->smtp->setVerp($this->do_verp);
+        $hosts = explode(';', $this->Host);
+        $lastexception = null;
+
+        foreach ($hosts as $hostentry) {
+            $hostinfo = array();
+            if (!preg_match('/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*):?([0-9]*)$/', trim($hostentry), $hostinfo)) {
+                // Not a valid host entry
+                continue;
+            }
+            // $hostinfo[2]: optional ssl or tls prefix
+            // $hostinfo[3]: the hostname
+            // $hostinfo[4]: optional port number
+            // The host string prefix can temporarily override the current setting for SMTPSecure
+            // If it's not specified, the default value is used
+            $prefix = '';
+            $secure = $this->SMTPSecure;
+            $tls = ($this->SMTPSecure == 'tls');
+            if ('ssl' == $hostinfo[2] or ('' == $hostinfo[2] and 'ssl' == $this->SMTPSecure)) {
+                $prefix = 'ssl://';
+                $tls = false; // Can't have SSL and TLS at the same time
+                $secure = 'ssl';
+            } elseif ($hostinfo[2] == 'tls') {
+                $tls = true;
+                // tls doesn't use a prefix
+                $secure = 'tls';
+            }
+            //Do we need the OpenSSL extension?
+            $sslext = defined('OPENSSL_ALGO_SHA1');
+            if ('tls' === $secure or 'ssl' === $secure) {
+                //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled
+                if (!$sslext) {
+                    throw new phpmailerException($this->lang('extension_missing').'openssl', self::STOP_CRITICAL);
+                }
+            }
+            $host = $hostinfo[3];
+            $port = $this->Port;
+            $tport = (integer)$hostinfo[4];
+            if ($tport > 0 and $tport < 65536) {
+                $port = $tport;
+            }
+            if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) {
+                try {
+                    if ($this->Helo) {
+                        $hello = $this->Helo;
+                    } else {
+                        $hello = $this->serverHostname();
+                    }
+                    $this->smtp->hello($hello);
+                    //Automatically enable TLS encryption if:
+                    // * it's not disabled
+                    // * we have openssl extension
+                    // * we are not already using SSL
+                    // * the server offers STARTTLS
+                    if ($this->SMTPAutoTLS and $sslext and $secure != 'ssl' and $this->smtp->getServerExt('STARTTLS')) {
+                        $tls = true;
+                    }
+                    if ($tls) {
+                        if (!$this->smtp->startTLS()) {
+                            throw new phpmailerException($this->lang('connect_host'));
+                        }
+                        // We must resend HELO after tls negotiation
+                        $this->smtp->hello($hello);
+                    }
+                    if ($this->SMTPAuth) {
+                        if (!$this->smtp->authenticate(
+                            $this->Username,
+                            $this->Password,
+                            $this->AuthType,
+                            $this->Realm,
+                            $this->Workstation,
+                            $this->oauth
+                        )
+                        ) {
+                            throw new phpmailerException($this->lang('authenticate'));
+                        }
+                    }
+                    return true;
+                } catch (phpmailerException $exc) {
+                    $lastexception = $exc;
+                    $this->edebug($exc->getMessage());
+                    // We must have connected, but then failed TLS or Auth, so close connection nicely
+                    $this->smtp->quit();
+                }
+            }
+        }
+        // If we get here, all connection attempts have failed, so close connection hard
+        $this->smtp->close();
+        // As we've caught all exceptions, just report whatever the last one was
+        if ($this->exceptions and !is_null($lastexception)) {
+            throw $lastexception;
+        }
+        return false;
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/class.phpmaileroauthgoogle.php b/drupal/sites/all/libraries/phpmailer/class.phpmaileroauthgoogle.php
new file mode 100644
index 0000000..71c9bd3
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/class.phpmaileroauthgoogle.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * PHPMailer - PHP email creation and transport class.
+ * PHP Version 5.4
+ * @package PHPMailer
+ * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ * @author Brent R. Matzelle (original founder)
+ * @copyright 2012 - 2014 Marcus Bointon
+ * @copyright 2010 - 2012 Jim Jagielski
+ * @copyright 2004 - 2009 Andy Prevost
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ * @note This program is distributed in the hope that it will be useful - WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * PHPMailerOAuthGoogle - Wrapper for League OAuth2 Google provider.
+ * @package PHPMailer
+ * @author @sherryl4george
+ * @author Marcus Bointon (@Synchro) <phpmailer at synchromedia.co.uk>
+ * @link https://github.com/thephpleague/oauth2-client
+ */
+class PHPMailerOAuthGoogle
+{
+    private $oauthUserEmail = '';
+    private $oauthRefreshToken = '';
+    private $oauthClientId = '';
+    private $oauthClientSecret = '';
+
+    /**
+     * @param string $UserEmail
+     * @param string $ClientSecret
+     * @param string $ClientId
+     * @param string $RefreshToken
+     */
+    public function __construct(
+        $UserEmail,
+        $ClientSecret,
+        $ClientId,
+        $RefreshToken
+    ) {
+        $this->oauthClientId = $ClientId;
+        $this->oauthClientSecret = $ClientSecret;
+        $this->oauthRefreshToken = $RefreshToken;
+        $this->oauthUserEmail = $UserEmail;
+    }
+
+    private function getProvider()
+    {
+        return new League\OAuth2\Client\Provider\Google([
+            'clientId' => $this->oauthClientId,
+            'clientSecret' => $this->oauthClientSecret
+        ]);
+    }
+
+    private function getGrant()
+    {
+        return new \League\OAuth2\Client\Grant\RefreshToken();
+    }
+
+    private function getToken()
+    {
+        $provider = $this->getProvider();
+        $grant = $this->getGrant();
+        return $provider->getAccessToken($grant, ['refresh_token' => $this->oauthRefreshToken]);
+    }
+
+    public function getOauth64()
+    {
+        $token = $this->getToken();
+        return base64_encode("user=" . $this->oauthUserEmail . "\001auth=Bearer " . $token . "\001\001");
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/class.pop3.php b/drupal/sites/all/libraries/phpmailer/class.pop3.php
new file mode 100644
index 0000000..373c886
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/class.pop3.php
@@ -0,0 +1,407 @@
+<?php
+/**
+ * PHPMailer POP-Before-SMTP Authentication Class.
+ * PHP Version 5
+ * @package PHPMailer
+ * @link https://github.com/PHPMailer/PHPMailer/
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ * @author Brent R. Matzelle (original founder)
+ * @copyright 2012 - 2014 Marcus Bointon
+ * @copyright 2010 - 2012 Jim Jagielski
+ * @copyright 2004 - 2009 Andy Prevost
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ * @note This program is distributed in the hope that it will be useful - WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * PHPMailer POP-Before-SMTP Authentication Class.
+ * Specifically for PHPMailer to use for RFC1939 POP-before-SMTP authentication.
+ * Does not support APOP.
+ * @package PHPMailer
+ * @author Richard Davey (original author) <rich at corephp.co.uk>
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ */
+class POP3
+{
+    /**
+     * The POP3 PHPMailer Version number.
+     * @var string
+     * @access public
+     */
+    public $Version = '5.2.21';
+
+    /**
+     * Default POP3 port number.
+     * @var integer
+     * @access public
+     */
+    public $POP3_PORT = 110;
+
+    /**
+     * Default timeout in seconds.
+     * @var integer
+     * @access public
+     */
+    public $POP3_TIMEOUT = 30;
+
+    /**
+     * POP3 Carriage Return + Line Feed.
+     * @var string
+     * @access public
+     * @deprecated Use the constant instead
+     */
+    public $CRLF = "\r\n";
+
+    /**
+     * Debug display level.
+     * Options: 0 = no, 1+ = yes
+     * @var integer
+     * @access public
+     */
+    public $do_debug = 0;
+
+    /**
+     * POP3 mail server hostname.
+     * @var string
+     * @access public
+     */
+    public $host;
+
+    /**
+     * POP3 port number.
+     * @var integer
+     * @access public
+     */
+    public $port;
+
+    /**
+     * POP3 Timeout Value in seconds.
+     * @var integer
+     * @access public
+     */
+    public $tval;
+
+    /**
+     * POP3 username
+     * @var string
+     * @access public
+     */
+    public $username;
+
+    /**
+     * POP3 password.
+     * @var string
+     * @access public
+     */
+    public $password;
+
+    /**
+     * Resource handle for the POP3 connection socket.
+     * @var resource
+     * @access protected
+     */
+    protected $pop_conn;
+
+    /**
+     * Are we connected?
+     * @var boolean
+     * @access protected
+     */
+    protected $connected = false;
+
+    /**
+     * Error container.
+     * @var array
+     * @access protected
+     */
+    protected $errors = array();
+
+    /**
+     * Line break constant
+     */
+    const CRLF = "\r\n";
+
+    /**
+     * Simple static wrapper for all-in-one POP before SMTP
+     * @param $host
+     * @param integer|boolean $port The port number to connect to
+     * @param integer|boolean $timeout The timeout value
+     * @param string $username
+     * @param string $password
+     * @param integer $debug_level
+     * @return boolean
+     */
+    public static function popBeforeSmtp(
+        $host,
+        $port = false,
+        $timeout = false,
+        $username = '',
+        $password = '',
+        $debug_level = 0
+    ) {
+        $pop = new POP3;
+        return $pop->authorise($host, $port, $timeout, $username, $password, $debug_level);
+    }
+
+    /**
+     * Authenticate with a POP3 server.
+     * A connect, login, disconnect sequence
+     * appropriate for POP-before SMTP authorisation.
+     * @access public
+     * @param string $host The hostname to connect to
+     * @param integer|boolean $port The port number to connect to
+     * @param integer|boolean $timeout The timeout value
+     * @param string $username
+     * @param string $password
+     * @param integer $debug_level
+     * @return boolean
+     */
+    public function authorise($host, $port = false, $timeout = false, $username = '', $password = '', $debug_level = 0)
+    {
+        $this->host = $host;
+        // If no port value provided, use default
+        if (false === $port) {
+            $this->port = $this->POP3_PORT;
+        } else {
+            $this->port = (integer)$port;
+        }
+        // If no timeout value provided, use default
+        if (false === $timeout) {
+            $this->tval = $this->POP3_TIMEOUT;
+        } else {
+            $this->tval = (integer)$timeout;
+        }
+        $this->do_debug = $debug_level;
+        $this->username = $username;
+        $this->password = $password;
+        //  Reset the error log
+        $this->errors = array();
+        //  connect
+        $result = $this->connect($this->host, $this->port, $this->tval);
+        if ($result) {
+            $login_result = $this->login($this->username, $this->password);
+            if ($login_result) {
+                $this->disconnect();
+                return true;
+            }
+        }
+        // We need to disconnect regardless of whether the login succeeded
+        $this->disconnect();
+        return false;
+    }
+
+    /**
+     * Connect to a POP3 server.
+     * @access public
+     * @param string $host
+     * @param integer|boolean $port
+     * @param integer $tval
+     * @return boolean
+     */
+    public function connect($host, $port = false, $tval = 30)
+    {
+        //  Are we already connected?
+        if ($this->connected) {
+            return true;
+        }
+
+        //On Windows this will raise a PHP Warning error if the hostname doesn't exist.
+        //Rather than suppress it with @fsockopen, capture it cleanly instead
+        set_error_handler(array($this, 'catchWarning'));
+
+        if (false === $port) {
+            $port = $this->POP3_PORT;
+        }
+
+        //  connect to the POP3 server
+        $this->pop_conn = fsockopen(
+            $host, //  POP3 Host
+            $port, //  Port #
+            $errno, //  Error Number
+            $errstr, //  Error Message
+            $tval
+        ); //  Timeout (seconds)
+        //  Restore the error handler
+        restore_error_handler();
+
+        //  Did we connect?
+        if (false === $this->pop_conn) {
+            //  It would appear not...
+            $this->setError(array(
+                'error' => "Failed to connect to server $host on port $port",
+                'errno' => $errno,
+                'errstr' => $errstr
+            ));
+            return false;
+        }
+
+        //  Increase the stream time-out
+        stream_set_timeout($this->pop_conn, $tval, 0);
+
+        //  Get the POP3 server response
+        $pop3_response = $this->getResponse();
+        //  Check for the +OK
+        if ($this->checkResponse($pop3_response)) {
+            //  The connection is established and the POP3 server is talking
+            $this->connected = true;
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Log in to the POP3 server.
+     * Does not support APOP (RFC 2828, 4949).
+     * @access public
+     * @param string $username
+     * @param string $password
+     * @return boolean
+     */
+    public function login($username = '', $password = '')
+    {
+        if (!$this->connected) {
+            $this->setError('Not connected to POP3 server');
+        }
+        if (empty($username)) {
+            $username = $this->username;
+        }
+        if (empty($password)) {
+            $password = $this->password;
+        }
+
+        // Send the Username
+        $this->sendString("USER $username" . self::CRLF);
+        $pop3_response = $this->getResponse();
+        if ($this->checkResponse($pop3_response)) {
+            // Send the Password
+            $this->sendString("PASS $password" . self::CRLF);
+            $pop3_response = $this->getResponse();
+            if ($this->checkResponse($pop3_response)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Disconnect from the POP3 server.
+     * @access public
+     */
+    public function disconnect()
+    {
+        $this->sendString('QUIT');
+        //The QUIT command may cause the daemon to exit, which will kill our connection
+        //So ignore errors here
+        try {
+            @fclose($this->pop_conn);
+        } catch (Exception $e) {
+            //Do nothing
+        };
+    }
+
+    /**
+     * Get a response from the POP3 server.
+     * $size is the maximum number of bytes to retrieve
+     * @param integer $size
+     * @return string
+     * @access protected
+     */
+    protected function getResponse($size = 128)
+    {
+        $response = fgets($this->pop_conn, $size);
+        if ($this->do_debug >= 1) {
+            echo "Server -> Client: $response";
+        }
+        return $response;
+    }
+
+    /**
+     * Send raw data to the POP3 server.
+     * @param string $string
+     * @return integer
+     * @access protected
+     */
+    protected function sendString($string)
+    {
+        if ($this->pop_conn) {
+            if ($this->do_debug >= 2) { //Show client messages when debug >= 2
+                echo "Client -> Server: $string";
+            }
+            return fwrite($this->pop_conn, $string, strlen($string));
+        }
+        return 0;
+    }
+
+    /**
+     * Checks the POP3 server response.
+     * Looks for for +OK or -ERR.
+     * @param string $string
+     * @return boolean
+     * @access protected
+     */
+    protected function checkResponse($string)
+    {
+        if (substr($string, 0, 3) !== '+OK') {
+            $this->setError(array(
+                'error' => "Server reported an error: $string",
+                'errno' => 0,
+                'errstr' => ''
+            ));
+            return false;
+        } else {
+            return true;
+        }
+    }
+
+    /**
+     * Add an error to the internal error store.
+     * Also display debug output if it's enabled.
+     * @param $error
+     * @access protected
+     */
+    protected function setError($error)
+    {
+        $this->errors[] = $error;
+        if ($this->do_debug >= 1) {
+            echo '<pre>';
+            foreach ($this->errors as $error) {
+                print_r($error);
+            }
+            echo '</pre>';
+        }
+    }
+
+    /**
+     * Get an array of error messages, if any.
+     * @return array
+     */
+    public function getErrors()
+    {
+        return $this->errors;
+    }
+
+    /**
+     * POP3 connection error handler.
+     * @param integer $errno
+     * @param string $errstr
+     * @param string $errfile
+     * @param integer $errline
+     * @access protected
+     */
+    protected function catchWarning($errno, $errstr, $errfile, $errline)
+    {
+        $this->setError(array(
+            'error' => "Connecting to the POP3 server raised a PHP warning: ",
+            'errno' => $errno,
+            'errstr' => $errstr,
+            'errfile' => $errfile,
+            'errline' => $errline
+        ));
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/class.smtp.php b/drupal/sites/all/libraries/phpmailer/class.smtp.php
new file mode 100644
index 0000000..270162b
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/class.smtp.php
@@ -0,0 +1,1249 @@
+<?php
+/**
+ * PHPMailer RFC821 SMTP email transport class.
+ * PHP Version 5
+ * @package PHPMailer
+ * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
+ * @author Marcus Bointon (Synchro/coolbru) <phpmailer at synchromedia.co.uk>
+ * @author Jim Jagielski (jimjag) <jimjag at gmail.com>
+ * @author Andy Prevost (codeworxtech) <codeworxtech at users.sourceforge.net>
+ * @author Brent R. Matzelle (original founder)
+ * @copyright 2014 Marcus Bointon
+ * @copyright 2010 - 2012 Jim Jagielski
+ * @copyright 2004 - 2009 Andy Prevost
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ * @note This program is distributed in the hope that it will be useful - WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * PHPMailer RFC821 SMTP email transport class.
+ * Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server.
+ * @package PHPMailer
+ * @author Chris Ryan
+ * @author Marcus Bointon <phpmailer at synchromedia.co.uk>
+ */
+class SMTP
+{
+    /**
+     * The PHPMailer SMTP version number.
+     * @var string
+     */
+    const VERSION = '5.2.21';
+
+    /**
+     * SMTP line break constant.
+     * @var string
+     */
+    const CRLF = "\r\n";
+
+    /**
+     * The SMTP port to use if one is not specified.
+     * @var integer
+     */
+    const DEFAULT_SMTP_PORT = 25;
+
+    /**
+     * The maximum line length allowed by RFC 2822 section 2.1.1
+     * @var integer
+     */
+    const MAX_LINE_LENGTH = 998;
+
+    /**
+     * Debug level for no output
+     */
+    const DEBUG_OFF = 0;
+
+    /**
+     * Debug level to show client -> server messages
+     */
+    const DEBUG_CLIENT = 1;
+
+    /**
+     * Debug level to show client -> server and server -> client messages
+     */
+    const DEBUG_SERVER = 2;
+
+    /**
+     * Debug level to show connection status, client -> server and server -> client messages
+     */
+    const DEBUG_CONNECTION = 3;
+
+    /**
+     * Debug level to show all messages
+     */
+    const DEBUG_LOWLEVEL = 4;
+
+    /**
+     * The PHPMailer SMTP Version number.
+     * @var string
+     * @deprecated Use the `VERSION` constant instead
+     * @see SMTP::VERSION
+     */
+    public $Version = '5.2.21';
+
+    /**
+     * SMTP server port number.
+     * @var integer
+     * @deprecated This is only ever used as a default value, so use the `DEFAULT_SMTP_PORT` constant instead
+     * @see SMTP::DEFAULT_SMTP_PORT
+     */
+    public $SMTP_PORT = 25;
+
+    /**
+     * SMTP reply line ending.
+     * @var string
+     * @deprecated Use the `CRLF` constant instead
+     * @see SMTP::CRLF
+     */
+    public $CRLF = "\r\n";
+
+    /**
+     * Debug output level.
+     * Options:
+     * * self::DEBUG_OFF (`0`) No debug output, default
+     * * self::DEBUG_CLIENT (`1`) Client commands
+     * * self::DEBUG_SERVER (`2`) Client commands and server responses
+     * * self::DEBUG_CONNECTION (`3`) As DEBUG_SERVER plus connection status
+     * * self::DEBUG_LOWLEVEL (`4`) Low-level data output, all messages
+     * @var integer
+     */
+    public $do_debug = self::DEBUG_OFF;
+
+    /**
+     * How to handle debug output.
+     * Options:
+     * * `echo` Output plain-text as-is, appropriate for CLI
+     * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output
+     * * `error_log` Output to error log as configured in php.ini
+     *
+     * Alternatively, you can provide a callable expecting two params: a message string and the debug level:
+     * <code>
+     * $smtp->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};
+     * </code>
+     * @var string|callable
+     */
+    public $Debugoutput = 'echo';
+
+    /**
+     * Whether to use VERP.
+     * @link http://en.wikipedia.org/wiki/Variable_envelope_return_path
+     * @link http://www.postfix.org/VERP_README.html Info on VERP
+     * @var boolean
+     */
+    public $do_verp = false;
+
+    /**
+     * The timeout value for connection, in seconds.
+     * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2
+     * This needs to be quite high to function correctly with hosts using greetdelay as an anti-spam measure.
+     * @link http://tools.ietf.org/html/rfc2821#section-4.5.3.2
+     * @var integer
+     */
+    public $Timeout = 300;
+
+    /**
+     * How long to wait for commands to complete, in seconds.
+     * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2
+     * @var integer
+     */
+    public $Timelimit = 300;
+
+	/**
+	 * @var array patterns to extract smtp transaction id from smtp reply
+	 * Only first capture group will be use, use non-capturing group to deal with it
+	 * Extend this class to override this property to fulfil your needs.
+	 */
+	protected $smtp_transaction_id_patterns = array(
+		'exim' => '/[0-9]{3} OK id=(.*)/',
+		'sendmail' => '/[0-9]{3} 2.0.0 (.*) Message/',
+		'postfix' => '/[0-9]{3} 2.0.0 Ok: queued as (.*)/'
+	);
+
+    /**
+     * The socket for the server connection.
+     * @var resource
+     */
+    protected $smtp_conn;
+
+    /**
+     * Error information, if any, for the last SMTP command.
+     * @var array
+     */
+    protected $error = array(
+        'error' => '',
+        'detail' => '',
+        'smtp_code' => '',
+        'smtp_code_ex' => ''
+    );
+
+    /**
+     * The reply the server sent to us for HELO.
+     * If null, no HELO string has yet been received.
+     * @var string|null
+     */
+    protected $helo_rply = null;
+
+    /**
+     * The set of SMTP extensions sent in reply to EHLO command.
+     * Indexes of the array are extension names.
+     * Value at index 'HELO' or 'EHLO' (according to command that was sent)
+     * represents the server name. In case of HELO it is the only element of the array.
+     * Other values can be boolean TRUE or an array containing extension options.
+     * If null, no HELO/EHLO string has yet been received.
+     * @var array|null
+     */
+    protected $server_caps = null;
+
+    /**
+     * The most recent reply received from the server.
+     * @var string
+     */
+    protected $last_reply = '';
+
+    /**
+     * Output debugging info via a user-selected method.
+     * @see SMTP::$Debugoutput
+     * @see SMTP::$do_debug
+     * @param string $str Debug string to output
+     * @param integer $level The debug level of this message; see DEBUG_* constants
+     * @return void
+     */
+    protected function edebug($str, $level = 0)
+    {
+        if ($level > $this->do_debug) {
+            return;
+        }
+        //Avoid clash with built-in function names
+        if (!in_array($this->Debugoutput, array('error_log', 'html', 'echo')) and is_callable($this->Debugoutput)) {
+            call_user_func($this->Debugoutput, $str, $level);
+            return;
+        }
+        switch ($this->Debugoutput) {
+            case 'error_log':
+                //Don't output, just log
+                error_log($str);
+                break;
+            case 'html':
+                //Cleans up output a bit for a better looking, HTML-safe output
+                echo htmlentities(
+                    preg_replace('/[\r\n]+/', '', $str),
+                    ENT_QUOTES,
+                    'UTF-8'
+                )
+                . "<br>\n";
+                break;
+            case 'echo':
+            default:
+                //Normalize line breaks
+                $str = preg_replace('/(\r\n|\r|\n)/ms', "\n", $str);
+                echo gmdate('Y-m-d H:i:s') . "\t" . str_replace(
+                    "\n",
+                    "\n                   \t                  ",
+                    trim($str)
+                )."\n";
+        }
+    }
+
+    /**
+     * Connect to an SMTP server.
+     * @param string $host SMTP server IP or host name
+     * @param integer $port The port number to connect to
+     * @param integer $timeout How long to wait for the connection to open
+     * @param array $options An array of options for stream_context_create()
+     * @access public
+     * @return boolean
+     */
+    public function connect($host, $port = null, $timeout = 30, $options = array())
+    {
+        static $streamok;
+        //This is enabled by default since 5.0.0 but some providers disable it
+        //Check this once and cache the result
+        if (is_null($streamok)) {
+            $streamok = function_exists('stream_socket_client');
+        }
+        // Clear errors to avoid confusion
+        $this->setError('');
+        // Make sure we are __not__ connected
+        if ($this->connected()) {
+            // Already connected, generate error
+            $this->setError('Already connected to a server');
+            return false;
+        }
+        if (empty($port)) {
+            $port = self::DEFAULT_SMTP_PORT;
+        }
+        // Connect to the SMTP server
+        $this->edebug(
+            "Connection: opening to $host:$port, timeout=$timeout, options=".var_export($options, true),
+            self::DEBUG_CONNECTION
+        );
+        $errno = 0;
+        $errstr = '';
+        if ($streamok) {
+            $socket_context = stream_context_create($options);
+            set_error_handler(array($this, 'errorHandler'));
+            $this->smtp_conn = stream_socket_client(
+                $host . ":" . $port,
+                $errno,
+                $errstr,
+                $timeout,
+                STREAM_CLIENT_CONNECT,
+                $socket_context
+            );
+            restore_error_handler();
+        } else {
+            //Fall back to fsockopen which should work in more places, but is missing some features
+            $this->edebug(
+                "Connection: stream_socket_client not available, falling back to fsockopen",
+                self::DEBUG_CONNECTION
+            );
+            set_error_handler(array($this, 'errorHandler'));
+            $this->smtp_conn = fsockopen(
+                $host,
+                $port,
+                $errno,
+                $errstr,
+                $timeout
+            );
+            restore_error_handler();
+        }
+        // Verify we connected properly
+        if (!is_resource($this->smtp_conn)) {
+            $this->setError(
+                'Failed to connect to server',
+                $errno,
+                $errstr
+            );
+            $this->edebug(
+                'SMTP ERROR: ' . $this->error['error']
+                . ": $errstr ($errno)",
+                self::DEBUG_CLIENT
+            );
+            return false;
+        }
+        $this->edebug('Connection: opened', self::DEBUG_CONNECTION);
+        // SMTP server can take longer to respond, give longer timeout for first read
+        // Windows does not have support for this timeout function
+        if (substr(PHP_OS, 0, 3) != 'WIN') {
+            $max = ini_get('max_execution_time');
+            // Don't bother if unlimited
+            if ($max != 0 && $timeout > $max) {
+                @set_time_limit($timeout);
+            }
+            stream_set_timeout($this->smtp_conn, $timeout, 0);
+        }
+        // Get any announcement
+        $announce = $this->get_lines();
+        $this->edebug('SERVER -> CLIENT: ' . $announce, self::DEBUG_SERVER);
+        return true;
+    }
+
+    /**
+     * Initiate a TLS (encrypted) session.
+     * @access public
+     * @return boolean
+     */
+    public function startTLS()
+    {
+        if (!$this->sendCommand('STARTTLS', 'STARTTLS', 220)) {
+            return false;
+        }
+
+        //Allow the best TLS version(s) we can
+        $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT;
+
+        //PHP 5.6.7 dropped inclusion of TLS 1.1 and 1.2 in STREAM_CRYPTO_METHOD_TLS_CLIENT
+        //so add them back in manually if we can
+        if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) {
+            $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT;
+            $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
+        }
+
+        // Begin encrypted connection
+        if (!stream_socket_enable_crypto(
+            $this->smtp_conn,
+            true,
+            $crypto_method
+        )) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Perform SMTP authentication.
+     * Must be run after hello().
+     * @see hello()
+     * @param string $username The user name
+     * @param string $password The password
+     * @param string $authtype The auth type (PLAIN, LOGIN, NTLM, CRAM-MD5, XOAUTH2)
+     * @param string $realm The auth realm for NTLM
+     * @param string $workstation The auth workstation for NTLM
+     * @param null|OAuth $OAuth An optional OAuth instance (@see PHPMailerOAuth)
+     * @return bool True if successfully authenticated.* @access public
+     */
+    public function authenticate(
+        $username,
+        $password,
+        $authtype = null,
+        $realm = '',
+        $workstation = '',
+        $OAuth = null
+    ) {
+        if (!$this->server_caps) {
+            $this->setError('Authentication is not allowed before HELO/EHLO');
+            return false;
+        }
+
+        if (array_key_exists('EHLO', $this->server_caps)) {
+        // SMTP extensions are available. Let's try to find a proper authentication method
+
+            if (!array_key_exists('AUTH', $this->server_caps)) {
+                $this->setError('Authentication is not allowed at this stage');
+                // 'at this stage' means that auth may be allowed after the stage changes
+                // e.g. after STARTTLS
+                return false;
+            }
+
+            self::edebug('Auth method requested: ' . ($authtype ? $authtype : 'UNKNOWN'), self::DEBUG_LOWLEVEL);
+            self::edebug(
+                'Auth methods available on the server: ' . implode(',', $this->server_caps['AUTH']),
+                self::DEBUG_LOWLEVEL
+            );
+
+            if (empty($authtype)) {
+                foreach (array('CRAM-MD5', 'LOGIN', 'PLAIN', 'NTLM', 'XOAUTH2') as $method) {
+                    if (in_array($method, $this->server_caps['AUTH'])) {
+                        $authtype = $method;
+                        break;
+                    }
+                }
+                if (empty($authtype)) {
+                    $this->setError('No supported authentication methods found');
+                    return false;
+                }
+                self::edebug('Auth method selected: '.$authtype, self::DEBUG_LOWLEVEL);
+            }
+
+            if (!in_array($authtype, $this->server_caps['AUTH'])) {
+                $this->setError("The requested authentication method \"$authtype\" is not supported by the server");
+                return false;
+            }
+        } elseif (empty($authtype)) {
+            $authtype = 'LOGIN';
+        }
+        switch ($authtype) {
+            case 'PLAIN':
+                // Start authentication
+                if (!$this->sendCommand('AUTH', 'AUTH PLAIN', 334)) {
+                    return false;
+                }
+                // Send encoded username and password
+                if (!$this->sendCommand(
+                    'User & Password',
+                    base64_encode("\0" . $username . "\0" . $password),
+                    235
+                )
+                ) {
+                    return false;
+                }
+                break;
+            case 'LOGIN':
+                // Start authentication
+                if (!$this->sendCommand('AUTH', 'AUTH LOGIN', 334)) {
+                    return false;
+                }
+                if (!$this->sendCommand("Username", base64_encode($username), 334)) {
+                    return false;
+                }
+                if (!$this->sendCommand("Password", base64_encode($password), 235)) {
+                    return false;
+                }
+                break;
+            case 'XOAUTH2':
+                //If the OAuth Instance is not set. Can be a case when PHPMailer is used
+                //instead of PHPMailerOAuth
+                if (is_null($OAuth)) {
+                    return false;
+                }
+                $oauth = $OAuth->getOauth64();
+
+                // Start authentication
+                if (!$this->sendCommand('AUTH', 'AUTH XOAUTH2 ' . $oauth, 235)) {
+                    return false;
+                }
+                break;
+            case 'NTLM':
+                /*
+                 * ntlm_sasl_client.php
+                 * Bundled with Permission
+                 *
+                 * How to telnet in windows:
+                 * http://technet.microsoft.com/en-us/library/aa995718%28EXCHG.65%29.aspx
+                 * PROTOCOL Docs http://curl.haxx.se/rfc/ntlm.html#ntlmSmtpAuthentication
+                 */
+                require_once 'extras/ntlm_sasl_client.php';
+                $temp = new stdClass;
+                $ntlm_client = new ntlm_sasl_client_class;
+                //Check that functions are available
+                if (!$ntlm_client->initialize($temp)) {
+                    $this->setError($temp->error);
+                    $this->edebug(
+                        'You need to enable some modules in your php.ini file: '
+                        . $this->error['error'],
+                        self::DEBUG_CLIENT
+                    );
+                    return false;
+                }
+                //msg1
+                $msg1 = $ntlm_client->typeMsg1($realm, $workstation); //msg1
+
+                if (!$this->sendCommand(
+                    'AUTH NTLM',
+                    'AUTH NTLM ' . base64_encode($msg1),
+                    334
+                )
+                ) {
+                    return false;
+                }
+                //Though 0 based, there is a white space after the 3 digit number
+                //msg2
+                $challenge = substr($this->last_reply, 3);
+                $challenge = base64_decode($challenge);
+                $ntlm_res = $ntlm_client->NTLMResponse(
+                    substr($challenge, 24, 8),
+                    $password
+                );
+                //msg3
+                $msg3 = $ntlm_client->typeMsg3(
+                    $ntlm_res,
+                    $username,
+                    $realm,
+                    $workstation
+                );
+                // send encoded username
+                return $this->sendCommand('Username', base64_encode($msg3), 235);
+            case 'CRAM-MD5':
+                // Start authentication
+                if (!$this->sendCommand('AUTH CRAM-MD5', 'AUTH CRAM-MD5', 334)) {
+                    return false;
+                }
+                // Get the challenge
+                $challenge = base64_decode(substr($this->last_reply, 4));
+
+                // Build the response
+                $response = $username . ' ' . $this->hmac($challenge, $password);
+
+                // send encoded credentials
+                return $this->sendCommand('Username', base64_encode($response), 235);
+            default:
+                $this->setError("Authentication method \"$authtype\" is not supported");
+                return false;
+        }
+        return true;
+    }
+
+    /**
+     * Calculate an MD5 HMAC hash.
+     * Works like hash_hmac('md5', $data, $key)
+     * in case that function is not available
+     * @param string $data The data to hash
+     * @param string $key  The key to hash with
+     * @access protected
+     * @return string
+     */
+    protected function hmac($data, $key)
+    {
+        if (function_exists('hash_hmac')) {
+            return hash_hmac('md5', $data, $key);
+        }
+
+        // The following borrowed from
+        // http://php.net/manual/en/function.mhash.php#27225
+
+        // RFC 2104 HMAC implementation for php.
+        // Creates an md5 HMAC.
+        // Eliminates the need to install mhash to compute a HMAC
+        // by Lance Rushing
+
+        $bytelen = 64; // byte length for md5
+        if (strlen($key) > $bytelen) {
+            $key = pack('H*', md5($key));
+        }
+        $key = str_pad($key, $bytelen, chr(0x00));
+        $ipad = str_pad('', $bytelen, chr(0x36));
+        $opad = str_pad('', $bytelen, chr(0x5c));
+        $k_ipad = $key ^ $ipad;
+        $k_opad = $key ^ $opad;
+
+        return md5($k_opad . pack('H*', md5($k_ipad . $data)));
+    }
+
+    /**
+     * Check connection state.
+     * @access public
+     * @return boolean True if connected.
+     */
+    public function connected()
+    {
+        if (is_resource($this->smtp_conn)) {
+            $sock_status = stream_get_meta_data($this->smtp_conn);
+            if ($sock_status['eof']) {
+                // The socket is valid but we are not connected
+                $this->edebug(
+                    'SMTP NOTICE: EOF caught while checking if connected',
+                    self::DEBUG_CLIENT
+                );
+                $this->close();
+                return false;
+            }
+            return true; // everything looks good
+        }
+        return false;
+    }
+
+    /**
+     * Close the socket and clean up the state of the class.
+     * Don't use this function without first trying to use QUIT.
+     * @see quit()
+     * @access public
+     * @return void
+     */
+    public function close()
+    {
+        $this->setError('');
+        $this->server_caps = null;
+        $this->helo_rply = null;
+        if (is_resource($this->smtp_conn)) {
+            // close the connection and cleanup
+            fclose($this->smtp_conn);
+            $this->smtp_conn = null; //Makes for cleaner serialization
+            $this->edebug('Connection: closed', self::DEBUG_CONNECTION);
+        }
+    }
+
+    /**
+     * Send an SMTP DATA command.
+     * Issues a data command and sends the msg_data to the server,
+     * finializing the mail transaction. $msg_data is the message
+     * that is to be send with the headers. Each header needs to be
+     * on a single line followed by a <CRLF> with the message headers
+     * and the message body being separated by and additional <CRLF>.
+     * Implements rfc 821: DATA <CRLF>
+     * @param string $msg_data Message data to send
+     * @access public
+     * @return boolean
+     */
+    public function data($msg_data)
+    {
+        //This will use the standard timelimit
+        if (!$this->sendCommand('DATA', 'DATA', 354)) {
+            return false;
+        }
+
+        /* The server is ready to accept data!
+         * According to rfc821 we should not send more than 1000 characters on a single line (including the CRLF)
+         * so we will break the data up into lines by \r and/or \n then if needed we will break each of those into
+         * smaller lines to fit within the limit.
+         * We will also look for lines that start with a '.' and prepend an additional '.'.
+         * NOTE: this does not count towards line-length limit.
+         */
+
+        // Normalize line breaks before exploding
+        $lines = explode("\n", str_replace(array("\r\n", "\r"), "\n", $msg_data));
+
+        /* To distinguish between a complete RFC822 message and a plain message body, we check if the first field
+         * of the first line (':' separated) does not contain a space then it _should_ be a header and we will
+         * process all lines before a blank line as headers.
+         */
+
+        $field = substr($lines[0], 0, strpos($lines[0], ':'));
+        $in_headers = false;
+        if (!empty($field) && strpos($field, ' ') === false) {
+            $in_headers = true;
+        }
+
+        foreach ($lines as $line) {
+            $lines_out = array();
+            if ($in_headers and $line == '') {
+                $in_headers = false;
+            }
+            //Break this line up into several smaller lines if it's too long
+            //Micro-optimisation: isset($str[$len]) is faster than (strlen($str) > $len),
+            while (isset($line[self::MAX_LINE_LENGTH])) {
+                //Working backwards, try to find a space within the last MAX_LINE_LENGTH chars of the line to break on
+                //so as to avoid breaking in the middle of a word
+                $pos = strrpos(substr($line, 0, self::MAX_LINE_LENGTH), ' ');
+                //Deliberately matches both false and 0
+                if (!$pos) {
+                    //No nice break found, add a hard break
+                    $pos = self::MAX_LINE_LENGTH - 1;
+                    $lines_out[] = substr($line, 0, $pos);
+                    $line = substr($line, $pos);
+                } else {
+                    //Break at the found point
+                    $lines_out[] = substr($line, 0, $pos);
+                    //Move along by the amount we dealt with
+                    $line = substr($line, $pos + 1);
+                }
+                //If processing headers add a LWSP-char to the front of new line RFC822 section 3.1.1
+                if ($in_headers) {
+                    $line = "\t" . $line;
+                }
+            }
+            $lines_out[] = $line;
+
+            //Send the lines to the server
+            foreach ($lines_out as $line_out) {
+                //RFC2821 section 4.5.2
+                if (!empty($line_out) and $line_out[0] == '.') {
+                    $line_out = '.' . $line_out;
+                }
+                $this->client_send($line_out . self::CRLF);
+            }
+        }
+
+        //Message data has been sent, complete the command
+        //Increase timelimit for end of DATA command
+        $savetimelimit = $this->Timelimit;
+        $this->Timelimit = $this->Timelimit * 2;
+        $result = $this->sendCommand('DATA END', '.', 250);
+        //Restore timelimit
+        $this->Timelimit = $savetimelimit;
+        return $result;
+    }
+
+    /**
+     * Send an SMTP HELO or EHLO command.
+     * Used to identify the sending server to the receiving server.
+     * This makes sure that client and server are in a known state.
+     * Implements RFC 821: HELO <SP> <domain> <CRLF>
+     * and RFC 2821 EHLO.
+     * @param string $host The host name or IP to connect to
+     * @access public
+     * @return boolean
+     */
+    public function hello($host = '')
+    {
+        //Try extended hello first (RFC 2821)
+        return (boolean)($this->sendHello('EHLO', $host) or $this->sendHello('HELO', $host));
+    }
+
+    /**
+     * Send an SMTP HELO or EHLO command.
+     * Low-level implementation used by hello()
+     * @see hello()
+     * @param string $hello The HELO string
+     * @param string $host The hostname to say we are
+     * @access protected
+     * @return boolean
+     */
+    protected function sendHello($hello, $host)
+    {
+        $noerror = $this->sendCommand($hello, $hello . ' ' . $host, 250);
+        $this->helo_rply = $this->last_reply;
+        if ($noerror) {
+            $this->parseHelloFields($hello);
+        } else {
+            $this->server_caps = null;
+        }
+        return $noerror;
+    }
+
+    /**
+     * Parse a reply to HELO/EHLO command to discover server extensions.
+     * In case of HELO, the only parameter that can be discovered is a server name.
+     * @access protected
+     * @param string $type - 'HELO' or 'EHLO'
+     */
+    protected function parseHelloFields($type)
+    {
+        $this->server_caps = array();
+        $lines = explode("\n", $this->helo_rply);
+
+        foreach ($lines as $n => $s) {
+            //First 4 chars contain response code followed by - or space
+            $s = trim(substr($s, 4));
+            if (empty($s)) {
+                continue;
+            }
+            $fields = explode(' ', $s);
+            if (!empty($fields)) {
+                if (!$n) {
+                    $name = $type;
+                    $fields = $fields[0];
+                } else {
+                    $name = array_shift($fields);
+                    switch ($name) {
+                        case 'SIZE':
+                            $fields = ($fields ? $fields[0] : 0);
+                            break;
+                        case 'AUTH':
+                            if (!is_array($fields)) {
+                                $fields = array();
+                            }
+                            break;
+                        default:
+                            $fields = true;
+                    }
+                }
+                $this->server_caps[$name] = $fields;
+            }
+        }
+    }
+
+    /**
+     * Send an SMTP MAIL command.
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more recipient
+     * commands may be called followed by a data command.
+     * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>
+     * @param string $from Source address of this message
+     * @access public
+     * @return boolean
+     */
+    public function mail($from)
+    {
+        $useVerp = ($this->do_verp ? ' XVERP' : '');
+        return $this->sendCommand(
+            'MAIL FROM',
+            'MAIL FROM:<' . $from . '>' . $useVerp,
+            250
+        );
+    }
+
+    /**
+     * Send an SMTP QUIT command.
+     * Closes the socket if there is no error or the $close_on_error argument is true.
+     * Implements from rfc 821: QUIT <CRLF>
+     * @param boolean $close_on_error Should the connection close if an error occurs?
+     * @access public
+     * @return boolean
+     */
+    public function quit($close_on_error = true)
+    {
+        $noerror = $this->sendCommand('QUIT', 'QUIT', 221);
+        $err = $this->error; //Save any error
+        if ($noerror or $close_on_error) {
+            $this->close();
+            $this->error = $err; //Restore any error from the quit command
+        }
+        return $noerror;
+    }
+
+    /**
+     * Send an SMTP RCPT command.
+     * Sets the TO argument to $toaddr.
+     * Returns true if the recipient was accepted false if it was rejected.
+     * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
+     * @param string $address The address the message is being sent to
+     * @access public
+     * @return boolean
+     */
+    public function recipient($address)
+    {
+        return $this->sendCommand(
+            'RCPT TO',
+            'RCPT TO:<' . $address . '>',
+            array(250, 251)
+        );
+    }
+
+    /**
+     * Send an SMTP RSET command.
+     * Abort any transaction that is currently in progress.
+     * Implements rfc 821: RSET <CRLF>
+     * @access public
+     * @return boolean True on success.
+     */
+    public function reset()
+    {
+        return $this->sendCommand('RSET', 'RSET', 250);
+    }
+
+    /**
+     * Send a command to an SMTP server and check its return code.
+     * @param string $command The command name - not sent to the server
+     * @param string $commandstring The actual command to send
+     * @param integer|array $expect One or more expected integer success codes
+     * @access protected
+     * @return boolean True on success.
+     */
+    protected function sendCommand($command, $commandstring, $expect)
+    {
+        if (!$this->connected()) {
+            $this->setError("Called $command without being connected");
+            return false;
+        }
+        //Reject line breaks in all commands
+        if (strpos($commandstring, "\n") !== false or strpos($commandstring, "\r") !== false) {
+            $this->setError("Command '$command' contained line breaks");
+            return false;
+        }
+        $this->client_send($commandstring . self::CRLF);
+
+        $this->last_reply = $this->get_lines();
+        // Fetch SMTP code and possible error code explanation
+        $matches = array();
+        if (preg_match("/^([0-9]{3})[ -](?:([0-9]\\.[0-9]\\.[0-9]) )?/", $this->last_reply, $matches)) {
+            $code = $matches[1];
+            $code_ex = (count($matches) > 2 ? $matches[2] : null);
+            // Cut off error code from each response line
+            $detail = preg_replace(
+                "/{$code}[ -]".($code_ex ? str_replace('.', '\\.', $code_ex).' ' : '')."/m",
+                '',
+                $this->last_reply
+            );
+        } else {
+            // Fall back to simple parsing if regex fails
+            $code = substr($this->last_reply, 0, 3);
+            $code_ex = null;
+            $detail = substr($this->last_reply, 4);
+        }
+
+        $this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER);
+
+        if (!in_array($code, (array)$expect)) {
+            $this->setError(
+                "$command command failed",
+                $detail,
+                $code,
+                $code_ex
+            );
+            $this->edebug(
+                'SMTP ERROR: ' . $this->error['error'] . ': ' . $this->last_reply,
+                self::DEBUG_CLIENT
+            );
+            return false;
+        }
+
+        $this->setError('');
+        return true;
+    }
+
+    /**
+     * Send an SMTP SAML command.
+     * Starts a mail transaction from the email address specified in $from.
+     * Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more recipient
+     * commands may be called followed by a data command. This command
+     * will send the message to the users terminal if they are logged
+     * in and send them an email.
+     * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>
+     * @param string $from The address the message is from
+     * @access public
+     * @return boolean
+     */
+    public function sendAndMail($from)
+    {
+        return $this->sendCommand('SAML', "SAML FROM:$from", 250);
+    }
+
+    /**
+     * Send an SMTP VRFY command.
+     * @param string $name The name to verify
+     * @access public
+     * @return boolean
+     */
+    public function verify($name)
+    {
+        return $this->sendCommand('VRFY', "VRFY $name", array(250, 251));
+    }
+
+    /**
+     * Send an SMTP NOOP command.
+     * Used to keep keep-alives alive, doesn't actually do anything
+     * @access public
+     * @return boolean
+     */
+    public function noop()
+    {
+        return $this->sendCommand('NOOP', 'NOOP', 250);
+    }
+
+    /**
+     * Send an SMTP TURN command.
+     * This is an optional command for SMTP that this class does not support.
+     * This method is here to make the RFC821 Definition complete for this class
+     * and _may_ be implemented in future
+     * Implements from rfc 821: TURN <CRLF>
+     * @access public
+     * @return boolean
+     */
+    public function turn()
+    {
+        $this->setError('The SMTP TURN command is not implemented');
+        $this->edebug('SMTP NOTICE: ' . $this->error['error'], self::DEBUG_CLIENT);
+        return false;
+    }
+
+    /**
+     * Send raw data to the server.
+     * @param string $data The data to send
+     * @access public
+     * @return integer|boolean The number of bytes sent to the server or false on error
+     */
+    public function client_send($data)
+    {
+        $this->edebug("CLIENT -> SERVER: $data", self::DEBUG_CLIENT);
+        return fwrite($this->smtp_conn, $data);
+    }
+
+    /**
+     * Get the latest error.
+     * @access public
+     * @return array
+     */
+    public function getError()
+    {
+        return $this->error;
+    }
+
+    /**
+     * Get SMTP extensions available on the server
+     * @access public
+     * @return array|null
+     */
+    public function getServerExtList()
+    {
+        return $this->server_caps;
+    }
+
+    /**
+     * A multipurpose method
+     * The method works in three ways, dependent on argument value and current state
+     *   1. HELO/EHLO was not sent - returns null and set up $this->error
+     *   2. HELO was sent
+     *     $name = 'HELO': returns server name
+     *     $name = 'EHLO': returns boolean false
+     *     $name = any string: returns null and set up $this->error
+     *   3. EHLO was sent
+     *     $name = 'HELO'|'EHLO': returns server name
+     *     $name = any string: if extension $name exists, returns boolean True
+     *       or its options. Otherwise returns boolean False
+     * In other words, one can use this method to detect 3 conditions:
+     *  - null returned: handshake was not or we don't know about ext (refer to $this->error)
+     *  - false returned: the requested feature exactly not exists
+     *  - positive value returned: the requested feature exists
+     * @param string $name Name of SMTP extension or 'HELO'|'EHLO'
+     * @return mixed
+     */
+    public function getServerExt($name)
+    {
+        if (!$this->server_caps) {
+            $this->setError('No HELO/EHLO was sent');
+            return null;
+        }
+
+        // the tight logic knot ;)
+        if (!array_key_exists($name, $this->server_caps)) {
+            if ($name == 'HELO') {
+                return $this->server_caps['EHLO'];
+            }
+            if ($name == 'EHLO' || array_key_exists('EHLO', $this->server_caps)) {
+                return false;
+            }
+            $this->setError('HELO handshake was used. Client knows nothing about server extensions');
+            return null;
+        }
+
+        return $this->server_caps[$name];
+    }
+
+    /**
+     * Get the last reply from the server.
+     * @access public
+     * @return string
+     */
+    public function getLastReply()
+    {
+        return $this->last_reply;
+    }
+
+    /**
+     * Read the SMTP server's response.
+     * Either before eof or socket timeout occurs on the operation.
+     * With SMTP we can tell if we have more lines to read if the
+     * 4th character is '-' symbol. If it is a space then we don't
+     * need to read anything else.
+     * @access protected
+     * @return string
+     */
+    protected function get_lines()
+    {
+        // If the connection is bad, give up straight away
+        if (!is_resource($this->smtp_conn)) {
+            return '';
+        }
+        $data = '';
+        $endtime = 0;
+        stream_set_timeout($this->smtp_conn, $this->Timeout);
+        if ($this->Timelimit > 0) {
+            $endtime = time() + $this->Timelimit;
+        }
+        while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) {
+            $str = @fgets($this->smtp_conn, 515);
+            $this->edebug("SMTP -> get_lines(): \$data is \"$data\"", self::DEBUG_LOWLEVEL);
+            $this->edebug("SMTP -> get_lines(): \$str is  \"$str\"", self::DEBUG_LOWLEVEL);
+            $data .= $str;
+            // If 4th character is a space, we are done reading, break the loop, micro-optimisation over strlen
+            if ((isset($str[3]) and $str[3] == ' ')) {
+                break;
+            }
+            // Timed-out? Log and break
+            $info = stream_get_meta_data($this->smtp_conn);
+            if ($info['timed_out']) {
+                $this->edebug(
+                    'SMTP -> get_lines(): timed-out (' . $this->Timeout . ' sec)',
+                    self::DEBUG_LOWLEVEL
+                );
+                break;
+            }
+            // Now check if reads took too long
+            if ($endtime and time() > $endtime) {
+                $this->edebug(
+                    'SMTP -> get_lines(): timelimit reached ('.
+                    $this->Timelimit . ' sec)',
+                    self::DEBUG_LOWLEVEL
+                );
+                break;
+            }
+        }
+        return $data;
+    }
+
+    /**
+     * Enable or disable VERP address generation.
+     * @param boolean $enabled
+     */
+    public function setVerp($enabled = false)
+    {
+        $this->do_verp = $enabled;
+    }
+
+    /**
+     * Get VERP address generation mode.
+     * @return boolean
+     */
+    public function getVerp()
+    {
+        return $this->do_verp;
+    }
+
+    /**
+     * Set error messages and codes.
+     * @param string $message The error message
+     * @param string $detail Further detail on the error
+     * @param string $smtp_code An associated SMTP error code
+     * @param string $smtp_code_ex Extended SMTP code
+     */
+    protected function setError($message, $detail = '', $smtp_code = '', $smtp_code_ex = '')
+    {
+        $this->error = array(
+            'error' => $message,
+            'detail' => $detail,
+            'smtp_code' => $smtp_code,
+            'smtp_code_ex' => $smtp_code_ex
+        );
+    }
+
+    /**
+     * Set debug output method.
+     * @param string|callable $method The name of the mechanism to use for debugging output, or a callable to handle it.
+     */
+    public function setDebugOutput($method = 'echo')
+    {
+        $this->Debugoutput = $method;
+    }
+
+    /**
+     * Get debug output method.
+     * @return string
+     */
+    public function getDebugOutput()
+    {
+        return $this->Debugoutput;
+    }
+
+    /**
+     * Set debug output level.
+     * @param integer $level
+     */
+    public function setDebugLevel($level = 0)
+    {
+        $this->do_debug = $level;
+    }
+
+    /**
+     * Get debug output level.
+     * @return integer
+     */
+    public function getDebugLevel()
+    {
+        return $this->do_debug;
+    }
+
+    /**
+     * Set SMTP timeout.
+     * @param integer $timeout
+     */
+    public function setTimeout($timeout = 0)
+    {
+        $this->Timeout = $timeout;
+    }
+
+    /**
+     * Get SMTP timeout.
+     * @return integer
+     */
+    public function getTimeout()
+    {
+        return $this->Timeout;
+    }
+
+    /**
+     * Reports an error number and string.
+     * @param integer $errno The error number returned by PHP.
+     * @param string $errmsg The error message returned by PHP.
+     */
+    protected function errorHandler($errno, $errmsg)
+    {
+        $notice = 'Connection: Failed to connect to server.';
+        $this->setError(
+            $notice,
+            $errno,
+            $errmsg
+        );
+        $this->edebug(
+            $notice . ' Error number ' . $errno . '. "Error notice: ' . $errmsg,
+            self::DEBUG_CONNECTION
+        );
+    }
+
+	/**
+	 * Will return the ID of the last smtp transaction based on a list of patterns provided
+	 * in SMTP::$smtp_transaction_id_patterns.
+	 * If no reply has been received yet, it will return null.
+	 * If no pattern has been matched, it will return false.
+	 * @return bool|null|string
+	 */
+	public function getLastTransactionID()
+	{
+		$reply = $this->getLastReply();
+
+		if (empty($reply)) {
+			return null;
+		}
+
+		foreach($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) {
+			if(preg_match($smtp_transaction_id_pattern, $reply, $matches)) {
+				return $matches[1];
+			}
+		}
+
+		return false;
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/composer.json b/drupal/sites/all/libraries/phpmailer/composer.json
new file mode 100644
index 0000000..1112fb9
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/composer.json
@@ -0,0 +1,44 @@
+{
+    "name": "phpmailer/phpmailer",
+    "type": "library",
+    "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
+    "authors": [
+        {
+            "name": "Marcus Bointon",
+            "email": "phpmailer at synchromedia.co.uk"
+        },
+        {
+            "name": "Jim Jagielski",
+            "email": "jimjag at gmail.com"
+        },
+        {
+            "name": "Andy Prevost",
+            "email": "codeworxtech at users.sourceforge.net"
+        },
+        {
+            "name": "Brent R. Matzelle"
+        }
+    ],
+    "require": {
+        "php": ">=5.0.0"
+    },
+    "require-dev": {
+        "phpdocumentor/phpdocumentor": "*",
+        "phpunit/phpunit": "4.7.*"
+    },
+    "suggest": {
+        "league/oauth2-google": "Needed for Google XOAUTH2 authentication"
+    },
+    "autoload": {
+        "classmap": [
+            "class.phpmailer.php",
+            "class.phpmaileroauth.php",
+            "class.phpmaileroauthgoogle.php",
+            "class.smtp.php",
+            "class.pop3.php",
+            "extras/EasyPeasyICS.php",
+            "extras/ntlm_sasl_client.php"
+        ]
+    },
+    "license": "LGPL-2.1"
+}
diff --git a/drupal/sites/all/libraries/phpmailer/composer.lock b/drupal/sites/all/libraries/phpmailer/composer.lock
new file mode 100644
index 0000000..9edbf55
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/composer.lock
@@ -0,0 +1,3576 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+        "This file is @generated automatically"
+    ],
+    "hash": "ca5abc72444d9608a35c39f9064c139b",
+    "content-hash": "8b66ed71ae9ca8cd0258c814615d624f",
+    "packages": [],
+    "packages-dev": [
+        {
+            "name": "cilex/cilex",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Cilex/Cilex.git",
+                "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Cilex/Cilex/zipball/7acd965a609a56d0345e8b6071c261fbdb926cb5",
+                "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5",
+                "shasum": ""
+            },
+            "require": {
+                "cilex/console-service-provider": "1.*",
+                "php": ">=5.3.3",
+                "pimple/pimple": "~1.0",
+                "symfony/finder": "~2.1",
+                "symfony/process": "~2.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "3.7.*",
+                "symfony/validator": "~2.1"
+            },
+            "suggest": {
+                "monolog/monolog": ">=1.0.0",
+                "symfony/validator": ">=1.0.0",
+                "symfony/yaml": ">=1.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Cilex": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mike van Riel",
+                    "email": "mike.vanriel at naenius.com"
+                }
+            ],
+            "description": "The PHP micro-framework for Command line tools based on the Symfony2 Components",
+            "homepage": "http://cilex.github.com",
+            "keywords": [
+                "cli",
+                "microframework"
+            ],
+            "time": "2014-03-29 14:03:13"
+        },
+        {
+            "name": "cilex/console-service-provider",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Cilex/console-service-provider.git",
+                "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Cilex/console-service-provider/zipball/25ee3d1875243d38e1a3448ff94bdf944f70d24e",
+                "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "pimple/pimple": "1.*@dev",
+                "symfony/console": "~2.1"
+            },
+            "require-dev": {
+                "cilex/cilex": "1.*@dev",
+                "silex/silex": "1.*@dev"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Cilex\\Provider\\Console": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Beau Simensen",
+                    "email": "beau at dflydev.com",
+                    "homepage": "http://beausimensen.com"
+                },
+                {
+                    "name": "Mike van Riel",
+                    "email": "mike.vanriel at naenius.com"
+                }
+            ],
+            "description": "Console Service Provider",
+            "keywords": [
+                "cilex",
+                "console",
+                "pimple",
+                "service-provider",
+                "silex"
+            ],
+            "time": "2012-12-19 10:50:58"
+        },
+        {
+            "name": "container-interop/container-interop",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/container-interop/container-interop.git",
+                "reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/container-interop/container-interop/zipball/fc08354828f8fd3245f77a66b9e23a6bca48297e",
+                "reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Interop\\Container\\": "src/Interop/Container/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
+            "time": "2014-12-30 15:22:37"
+        },
+        {
+            "name": "doctrine/annotations",
+            "version": "v1.2.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/annotations.git",
+                "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535",
+                "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/lexer": "1.*",
+                "php": ">=5.3.2"
+            },
+            "require-dev": {
+                "doctrine/cache": "1.*",
+                "phpunit/phpunit": "4.*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Doctrine\\Common\\Annotations\\": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Roman Borschel",
+                    "email": "roman at code-factory.org"
+                },
+                {
+                    "name": "Benjamin Eberlei",
+                    "email": "kontakt at beberlei.de"
+                },
+                {
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco at gmail.com"
+                },
+                {
+                    "name": "Jonathan Wage",
+                    "email": "jonwage at gmail.com"
+                },
+                {
+                    "name": "Johannes Schmitt",
+                    "email": "schmittjoh at gmail.com"
+                }
+            ],
+            "description": "Docblock Annotations Parser",
+            "homepage": "http://www.doctrine-project.org",
+            "keywords": [
+                "annotations",
+                "docblock",
+                "parser"
+            ],
+            "time": "2015-08-31 12:32:49"
+        },
+        {
+            "name": "doctrine/instantiator",
+            "version": "1.0.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/instantiator.git",
+                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
+                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3,<8.0-DEV"
+            },
+            "require-dev": {
+                "athletic/athletic": "~0.1.8",
+                "ext-pdo": "*",
+                "ext-phar": "*",
+                "phpunit/phpunit": "~4.0",
+                "squizlabs/php_codesniffer": "~2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Marco Pivetta",
+                    "email": "ocramius at gmail.com",
+                    "homepage": "http://ocramius.github.com/"
+                }
+            ],
+            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+            "homepage": "https://github.com/doctrine/instantiator",
+            "keywords": [
+                "constructor",
+                "instantiate"
+            ],
+            "time": "2015-06-14 21:17:01"
+        },
+        {
+            "name": "doctrine/lexer",
+            "version": "v1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/lexer.git",
+                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
+                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Doctrine\\Common\\Lexer\\": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Roman Borschel",
+                    "email": "roman at code-factory.org"
+                },
+                {
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco at gmail.com"
+                },
+                {
+                    "name": "Johannes Schmitt",
+                    "email": "schmittjoh at gmail.com"
+                }
+            ],
+            "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
+            "homepage": "http://www.doctrine-project.org",
+            "keywords": [
+                "lexer",
+                "parser"
+            ],
+            "time": "2014-09-09 13:34:57"
+        },
+        {
+            "name": "erusev/parsedown",
+            "version": "1.6.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/erusev/parsedown.git",
+                "reference": "3ebbd730b5c2cf5ce78bc1bf64071407fc6674b7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/erusev/parsedown/zipball/3ebbd730b5c2cf5ce78bc1bf64071407fc6674b7",
+                "reference": "3ebbd730b5c2cf5ce78bc1bf64071407fc6674b7",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-0": {
+                    "Parsedown": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Emanuil Rusev",
+                    "email": "hello at erusev.com",
+                    "homepage": "http://erusev.com"
+                }
+            ],
+            "description": "Parser for Markdown.",
+            "homepage": "http://parsedown.org",
+            "keywords": [
+                "markdown",
+                "parser"
+            ],
+            "time": "2015-10-04 16:44:32"
+        },
+        {
+            "name": "herrera-io/json",
+            "version": "1.0.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/kherge-abandoned/php-json.git",
+                "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/kherge-abandoned/php-json/zipball/60c696c9370a1e5136816ca557c17f82a6fa83f1",
+                "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "justinrainbow/json-schema": ">=1.0,<2.0-dev",
+                "php": ">=5.3.3",
+                "seld/jsonlint": ">=1.0,<2.0-dev"
+            },
+            "require-dev": {
+                "herrera-io/phpunit-test-case": "1.*",
+                "mikey179/vfsstream": "1.1.0",
+                "phpunit/phpunit": "3.7.*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/lib/json_version.php"
+                ],
+                "psr-0": {
+                    "Herrera\\Json": "src/lib"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Kevin Herrera",
+                    "email": "kevin at herrera.io",
+                    "homepage": "http://kevin.herrera.io/",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A library for simplifying JSON linting and validation.",
+            "homepage": "http://herrera-io.github.com/php-json",
+            "keywords": [
+                "json",
+                "lint",
+                "schema",
+                "validate"
+            ],
+            "time": "2013-10-30 16:51:34"
+        },
+        {
+            "name": "herrera-io/phar-update",
+            "version": "1.0.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/kherge-abandoned/php-phar-update.git",
+                "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/kherge-abandoned/php-phar-update/zipball/00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b",
+                "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b",
+                "shasum": ""
+            },
+            "require": {
+                "herrera-io/json": "1.*",
+                "kherge/version": "1.*",
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "herrera-io/phpunit-test-case": "1.*",
+                "mikey179/vfsstream": "1.1.0",
+                "phpunit/phpunit": "3.7.*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/lib/constants.php"
+                ],
+                "psr-0": {
+                    "Herrera\\Phar\\Update": "src/lib"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Kevin Herrera",
+                    "email": "kevin at herrera.io",
+                    "homepage": "http://kevin.herrera.io/",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A library for self-updating Phars.",
+            "homepage": "http://herrera-io.github.com/php-phar-update",
+            "keywords": [
+                "phar",
+                "update"
+            ],
+            "time": "2013-10-30 17:23:01"
+        },
+        {
+            "name": "jms/metadata",
+            "version": "1.5.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/schmittjoh/metadata.git",
+                "reference": "22b72455559a25777cfd28c4ffda81ff7639f353"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/22b72455559a25777cfd28c4ffda81ff7639f353",
+                "reference": "22b72455559a25777cfd28c4ffda81ff7639f353",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "require-dev": {
+                "doctrine/cache": "~1.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.5.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Metadata\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache"
+            ],
+            "authors": [
+                {
+                    "name": "Johannes Schmitt",
+                    "email": "schmittjoh at gmail.com",
+                    "homepage": "https://github.com/schmittjoh",
+                    "role": "Developer of wrapped JMSSerializerBundle"
+                }
+            ],
+            "description": "Class/method/property metadata management in PHP",
+            "keywords": [
+                "annotations",
+                "metadata",
+                "xml",
+                "yaml"
+            ],
+            "time": "2014-07-12 07:13:19"
+        },
+        {
+            "name": "jms/parser-lib",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/schmittjoh/parser-lib.git",
+                "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d",
+                "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d",
+                "shasum": ""
+            },
+            "require": {
+                "phpoption/phpoption": ">=0.9,<2.0-dev"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "JMS\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache2"
+            ],
+            "description": "A library for easily creating recursive-descent parsers.",
+            "time": "2012-11-18 18:08:43"
+        },
+        {
+            "name": "jms/serializer",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/schmittjoh/serializer.git",
+                "reference": "fe13a1f993ea3456e195b7820692f2eb2b6bbb48"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/fe13a1f993ea3456e195b7820692f2eb2b6bbb48",
+                "reference": "fe13a1f993ea3456e195b7820692f2eb2b6bbb48",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/annotations": "1.*",
+                "doctrine/instantiator": "~1.0.3",
+                "jms/metadata": "~1.1",
+                "jms/parser-lib": "1.*",
+                "php": ">=5.4.0",
+                "phpcollection/phpcollection": "~0.1"
+            },
+            "conflict": {
+                "twig/twig": "<1.12"
+            },
+            "require-dev": {
+                "doctrine/orm": "~2.1",
+                "doctrine/phpcr-odm": "~1.0.1",
+                "jackalope/jackalope-doctrine-dbal": "1.0.*",
+                "phpunit/phpunit": "~4.0",
+                "propel/propel1": "~1.7",
+                "symfony/filesystem": "2.*",
+                "symfony/form": "~2.1",
+                "symfony/translation": "~2.0",
+                "symfony/validator": "~2.0",
+                "symfony/yaml": "2.*",
+                "twig/twig": "~1.12|~2.0"
+            },
+            "suggest": {
+                "symfony/yaml": "Required if you'd like to serialize data to YAML format."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "JMS\\Serializer": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache2"
+            ],
+            "authors": [
+                {
+                    "name": "Johannes M. Schmitt",
+                    "email": "schmittjoh at gmail.com"
+                }
+            ],
+            "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.",
+            "homepage": "http://jmsyst.com/libs/serializer",
+            "keywords": [
+                "deserialization",
+                "jaxb",
+                "json",
+                "serialization",
+                "xml"
+            ],
+            "time": "2015-10-27 09:24:41"
+        },
+        {
+            "name": "justinrainbow/json-schema",
+            "version": "1.6.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/justinrainbow/json-schema.git",
+                "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/cc84765fb7317f6b07bd8ac78364747f95b86341",
+                "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.29"
+            },
+            "require-dev": {
+                "json-schema/json-schema-test-suite": "1.1.0",
+                "phpdocumentor/phpdocumentor": "~2",
+                "phpunit/phpunit": "~3.7"
+            },
+            "bin": [
+                "bin/validate-json"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.6.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "JsonSchema\\": "src/JsonSchema/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Bruno Prieto Reis",
+                    "email": "bruno.p.reis at gmail.com"
+                },
+                {
+                    "name": "Justin Rainbow",
+                    "email": "justin.rainbow at gmail.com"
+                },
+                {
+                    "name": "Igor Wiedler",
+                    "email": "igor at wiedler.ch"
+                },
+                {
+                    "name": "Robert Schönthal",
+                    "email": "seroscho at googlemail.com"
+                }
+            ],
+            "description": "A library to validate a json schema.",
+            "homepage": "https://github.com/justinrainbow/json-schema",
+            "keywords": [
+                "json",
+                "schema"
+            ],
+            "time": "2016-01-25 15:43:01"
+        },
+        {
+            "name": "kherge/version",
+            "version": "1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/kherge-abandoned/Version.git",
+                "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/kherge-abandoned/Version/zipball/f07cf83f8ce533be8f93d2893d96d674bbeb7e30",
+                "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "KevinGH\\Version": "src/lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Kevin Herrera",
+                    "email": "me at kevingh.com",
+                    "homepage": "http://www.kevingh.com/"
+                }
+            ],
+            "description": "A parsing and comparison library for semantic versioning.",
+            "homepage": "http://github.com/kherge/Version",
+            "time": "2012-08-16 17:13:03"
+        },
+        {
+            "name": "monolog/monolog",
+            "version": "1.19.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Seldaek/monolog.git",
+                "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5f56ed5212dc509c8dc8caeba2715732abb32dbf",
+                "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0",
+                "psr/log": "~1.0"
+            },
+            "provide": {
+                "psr/log-implementation": "1.0.0"
+            },
+            "require-dev": {
+                "aws/aws-sdk-php": "^2.4.9",
+                "doctrine/couchdb": "~1.0 at dev",
+                "graylog2/gelf-php": "~1.0",
+                "jakub-onderka/php-parallel-lint": "0.9",
+                "php-amqplib/php-amqplib": "~2.4",
+                "php-console/php-console": "^3.1.3",
+                "phpunit/phpunit": "~4.5",
+                "phpunit/phpunit-mock-objects": "2.3.0",
+                "raven/raven": "^0.13",
+                "ruflin/elastica": ">=0.90 <3.0",
+                "swiftmailer/swiftmailer": "~5.3"
+            },
+            "suggest": {
+                "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+                "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+                "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+                "ext-mongo": "Allow sending log messages to a MongoDB server",
+                "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+                "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
+                "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+                "php-console/php-console": "Allow sending log messages to Google Chrome",
+                "raven/raven": "Allow sending log messages to a Sentry server",
+                "rollbar/rollbar": "Allow sending log messages to Rollbar",
+                "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Monolog\\": "src/Monolog"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jordi Boggiano",
+                    "email": "j.boggiano at seld.be",
+                    "homepage": "http://seld.be"
+                }
+            ],
+            "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+            "homepage": "http://github.com/Seldaek/monolog",
+            "keywords": [
+                "log",
+                "logging",
+                "psr-3"
+            ],
+            "time": "2016-04-12 18:29:35"
+        },
+        {
+            "name": "nikic/php-parser",
+            "version": "v1.4.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nikic/PHP-Parser.git",
+                "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
+                "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
+                "shasum": ""
+            },
+            "require": {
+                "ext-tokenizer": "*",
+                "php": ">=5.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "lib/bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Nikita Popov"
+                }
+            ],
+            "description": "A PHP parser written in PHP",
+            "keywords": [
+                "parser",
+                "php"
+            ],
+            "time": "2015-09-19 14:15:08"
+        },
+        {
+            "name": "phpcollection/phpcollection",
+            "version": "0.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/schmittjoh/php-collection.git",
+                "reference": "b8bf55a0a929ca43b01232b36719f176f86c7e83"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/b8bf55a0a929ca43b01232b36719f176f86c7e83",
+                "reference": "b8bf55a0a929ca43b01232b36719f176f86c7e83",
+                "shasum": ""
+            },
+            "require": {
+                "phpoption/phpoption": "1.*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "0.3-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "PhpCollection": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache2"
+            ],
+            "authors": [
+                {
+                    "name": "Johannes M. Schmitt",
+                    "email": "schmittjoh at gmail.com",
+                    "homepage": "http://jmsyst.com",
+                    "role": "Developer of wrapped JMSSerializerBundle"
+                }
+            ],
+            "description": "General-Purpose Collection Library for PHP",
+            "keywords": [
+                "collection",
+                "list",
+                "map",
+                "sequence",
+                "set"
+            ],
+            "time": "2014-03-11 13:46:42"
+        },
+        {
+            "name": "phpdocumentor/fileset",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpDocumentor/Fileset.git",
+                "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpDocumentor/Fileset/zipball/bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0",
+                "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "symfony/finder": "~2.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~3.7"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-0": {
+                    "phpDocumentor": [
+                        "src/",
+                        "tests/unit/"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Fileset component for collecting a set of files given directories and file paths",
+            "homepage": "http://www.phpdoc.org",
+            "keywords": [
+                "files",
+                "fileset",
+                "phpdoc"
+            ],
+            "time": "2013-08-06 21:07:42"
+        },
+        {
+            "name": "phpdocumentor/graphviz",
+            "version": "1.0.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpDocumentor/GraphViz.git",
+                "reference": "a906a90a9f230535f25ea31caf81b2323956283f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpDocumentor/GraphViz/zipball/a906a90a9f230535f25ea31caf81b2323956283f",
+                "reference": "a906a90a9f230535f25ea31caf81b2323956283f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-0": {
+                    "phpDocumentor": [
+                        "src/",
+                        "tests/unit"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mike van Riel",
+                    "email": "mike.vanriel at naenius.com"
+                }
+            ],
+            "time": "2016-02-02 13:00:08"
+        },
+        {
+            "name": "phpdocumentor/phpdocumentor",
+            "version": "v2.9.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpDocumentor/phpDocumentor2.git",
+                "reference": "be607da0eef9b9249c43c5b4820d25d631c73667"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpDocumentor/phpDocumentor2/zipball/be607da0eef9b9249c43c5b4820d25d631c73667",
+                "reference": "be607da0eef9b9249c43c5b4820d25d631c73667",
+                "shasum": ""
+            },
+            "require": {
+                "cilex/cilex": "~1.0",
+                "erusev/parsedown": "~1.0",
+                "herrera-io/phar-update": "1.0.3",
+                "jms/serializer": ">=0.12",
+                "monolog/monolog": "~1.6",
+                "php": ">=5.3.3",
+                "phpdocumentor/fileset": "~1.0",
+                "phpdocumentor/graphviz": "~1.0",
+                "phpdocumentor/reflection": "^3.0",
+                "phpdocumentor/reflection-docblock": "~2.0",
+                "symfony/config": "~2.3",
+                "symfony/console": "~2.3",
+                "symfony/event-dispatcher": "~2.1",
+                "symfony/process": "~2.0",
+                "symfony/stopwatch": "~2.3",
+                "symfony/validator": "~2.2",
+                "twig/twig": "~1.3",
+                "zendframework/zend-cache": "~2.1",
+                "zendframework/zend-config": "~2.1",
+                "zendframework/zend-filter": "~2.1",
+                "zendframework/zend-i18n": "~2.1",
+                "zendframework/zend-serializer": "~2.1",
+                "zendframework/zend-servicemanager": "~2.1",
+                "zendframework/zend-stdlib": "~2.1",
+                "zetacomponents/document": ">=1.3.1"
+            },
+            "require-dev": {
+                "behat/behat": "~3.0",
+                "mikey179/vfsstream": "~1.2",
+                "mockery/mockery": "~0.9 at dev",
+                "phpunit/phpunit": "~4.0",
+                "squizlabs/php_codesniffer": "~1.4",
+                "symfony/expression-language": "~2.4"
+            },
+            "suggest": {
+                "ext-twig": "Enabling the twig extension improves the generation of twig based templates.",
+                "ext-xslcache": "Enabling the XSLCache extension improves the generation of xml based templates."
+            },
+            "bin": [
+                "bin/phpdoc.php",
+                "bin/phpdoc"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-develop": "2.9-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "phpDocumentor": [
+                        "src/",
+                        "tests/unit/"
+                    ],
+                    "Cilex\\Provider": [
+                        "src/"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Documentation Generator for PHP",
+            "homepage": "http://www.phpdoc.org",
+            "keywords": [
+                "api",
+                "application",
+                "dga",
+                "documentation",
+                "phpdoc"
+            ],
+            "time": "2016-05-22 09:50:56"
+        },
+        {
+            "name": "phpdocumentor/reflection",
+            "version": "3.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpDocumentor/Reflection.git",
+                "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpDocumentor/Reflection/zipball/793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
+                "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
+                "shasum": ""
+            },
+            "require": {
+                "nikic/php-parser": "^1.0",
+                "php": ">=5.3.3",
+                "phpdocumentor/reflection-docblock": "~2.0",
+                "psr/log": "~1.0"
+            },
+            "require-dev": {
+                "behat/behat": "~2.4",
+                "mockery/mockery": "~0.8",
+                "phpunit/phpunit": "~4.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "phpDocumentor": [
+                        "src/",
+                        "tests/unit/",
+                        "tests/mocks/"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Reflection library to do Static Analysis for PHP Projects",
+            "homepage": "http://www.phpdoc.org",
+            "keywords": [
+                "phpDocumentor",
+                "phpdoc",
+                "reflection",
+                "static analysis"
+            ],
+            "time": "2016-05-21 08:42:32"
+        },
+        {
+            "name": "phpdocumentor/reflection-docblock",
+            "version": "2.0.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
+                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0"
+            },
+            "suggest": {
+                "dflydev/markdown": "~1.0",
+                "erusev/parsedown": "~1.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "phpDocumentor": [
+                        "src/"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mike van Riel",
+                    "email": "mike.vanriel at naenius.com"
+                }
+            ],
+            "time": "2015-02-03 12:10:50"
+        },
+        {
+            "name": "phpoption/phpoption",
+            "version": "1.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/schmittjoh/php-option.git",
+                "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed",
+                "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "4.7.*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "PhpOption\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache2"
+            ],
+            "authors": [
+                {
+                    "name": "Johannes M. Schmitt",
+                    "email": "schmittjoh at gmail.com"
+                }
+            ],
+            "description": "Option Type for PHP",
+            "keywords": [
+                "language",
+                "option",
+                "php",
+                "type"
+            ],
+            "time": "2015-07-25 16:39:46"
+        },
+        {
+            "name": "phpspec/prophecy",
+            "version": "v1.6.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpspec/prophecy.git",
+                "reference": "58a8137754bc24b25740d4281399a4a3596058e0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0",
+                "reference": "58a8137754bc24b25740d4281399a4a3596058e0",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/instantiator": "^1.0.2",
+                "php": "^5.3|^7.0",
+                "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
+                "sebastian/comparator": "^1.1",
+                "sebastian/recursion-context": "^1.0"
+            },
+            "require-dev": {
+                "phpspec/phpspec": "^2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.6.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Prophecy\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Konstantin Kudryashov",
+                    "email": "ever.zet at gmail.com",
+                    "homepage": "http://everzet.com"
+                },
+                {
+                    "name": "Marcello Duarte",
+                    "email": "marcello.duarte at gmail.com"
+                }
+            ],
+            "description": "Highly opinionated mocking framework for PHP 5.3+",
+            "homepage": "https://github.com/phpspec/prophecy",
+            "keywords": [
+                "Double",
+                "Dummy",
+                "fake",
+                "mock",
+                "spy",
+                "stub"
+            ],
+            "time": "2016-06-07 08:13:47"
+        },
+        {
+            "name": "phpunit/php-code-coverage",
+            "version": "2.2.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
+                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "phpunit/php-file-iterator": "~1.3",
+                "phpunit/php-text-template": "~1.2",
+                "phpunit/php-token-stream": "~1.3",
+                "sebastian/environment": "^1.3.2",
+                "sebastian/version": "~1.0"
+            },
+            "require-dev": {
+                "ext-xdebug": ">=2.1.4",
+                "phpunit/phpunit": "~4"
+            },
+            "suggest": {
+                "ext-dom": "*",
+                "ext-xdebug": ">=2.2.1",
+                "ext-xmlwriter": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.2.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb at sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+            "keywords": [
+                "coverage",
+                "testing",
+                "xunit"
+            ],
+            "time": "2015-10-06 15:47:00"
+        },
+        {
+            "name": "phpunit/php-file-iterator",
+            "version": "1.4.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+                "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+                "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb at sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+            "keywords": [
+                "filesystem",
+                "iterator"
+            ],
+            "time": "2015-06-21 13:08:43"
+        },
+        {
+            "name": "phpunit/php-text-template",
+            "version": "1.2.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-text-template.git",
+                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Simple template engine.",
+            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+            "keywords": [
+                "template"
+            ],
+            "time": "2015-06-21 13:50:34"
+        },
+        {
+            "name": "phpunit/php-timer",
+            "version": "1.0.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-timer.git",
+                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
+                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4|~5"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb at sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Utility class for timing",
+            "homepage": "https://github.com/sebastianbergmann/php-timer/",
+            "keywords": [
+                "timer"
+            ],
+            "time": "2016-05-12 18:03:57"
+        },
+        {
+            "name": "phpunit/php-token-stream",
+            "version": "1.4.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+                "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
+                "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
+                "shasum": ""
+            },
+            "require": {
+                "ext-tokenizer": "*",
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de"
+                }
+            ],
+            "description": "Wrapper around PHP's tokenizer extension.",
+            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+            "keywords": [
+                "tokenizer"
+            ],
+            "time": "2015-09-15 10:49:45"
+        },
+        {
+            "name": "phpunit/phpunit",
+            "version": "4.7.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit.git",
+                "reference": "9b97f9d807b862c2de2a36e86690000801c85724"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9b97f9d807b862c2de2a36e86690000801c85724",
+                "reference": "9b97f9d807b862c2de2a36e86690000801c85724",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-pcre": "*",
+                "ext-reflection": "*",
+                "ext-spl": "*",
+                "php": ">=5.3.3",
+                "phpspec/prophecy": "~1.3,>=1.3.1",
+                "phpunit/php-code-coverage": "~2.1",
+                "phpunit/php-file-iterator": "~1.4",
+                "phpunit/php-text-template": "~1.2",
+                "phpunit/php-timer": ">=1.0.6",
+                "phpunit/phpunit-mock-objects": "~2.3",
+                "sebastian/comparator": "~1.1",
+                "sebastian/diff": "~1.2",
+                "sebastian/environment": "~1.2",
+                "sebastian/exporter": "~1.2",
+                "sebastian/global-state": "~1.0",
+                "sebastian/version": "~1.0",
+                "symfony/yaml": "~2.1|~3.0"
+            },
+            "suggest": {
+                "phpunit/php-invoker": "~1.1"
+            },
+            "bin": [
+                "phpunit"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.7.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "The PHP Unit Testing framework.",
+            "homepage": "https://phpunit.de/",
+            "keywords": [
+                "phpunit",
+                "testing",
+                "xunit"
+            ],
+            "time": "2015-07-13 11:28:34"
+        },
+        {
+            "name": "phpunit/phpunit-mock-objects",
+            "version": "2.3.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
+                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/instantiator": "^1.0.2",
+                "php": ">=5.3.3",
+                "phpunit/php-text-template": "~1.2",
+                "sebastian/exporter": "~1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "suggest": {
+                "ext-soap": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.3.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb at sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Mock Object library for PHPUnit",
+            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+            "keywords": [
+                "mock",
+                "xunit"
+            ],
+            "time": "2015-10-02 06:51:40"
+        },
+        {
+            "name": "pimple/pimple",
+            "version": "v1.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/silexphp/Pimple.git",
+                "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d",
+                "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Pimple": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com",
+                    "homepage": "http://fabien.potencier.org",
+                    "role": "Lead Developer"
+                }
+            ],
+            "description": "Pimple is a simple Dependency Injection Container for PHP 5.3",
+            "homepage": "http://pimple.sensiolabs.org",
+            "keywords": [
+                "container",
+                "dependency injection"
+            ],
+            "time": "2013-11-22 08:30:29"
+        },
+        {
+            "name": "psr/log",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/log.git",
+                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
+                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-0": {
+                    "Psr\\Log\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for logging libraries",
+            "keywords": [
+                "log",
+                "psr",
+                "psr-3"
+            ],
+            "time": "2012-12-21 11:40:51"
+        },
+        {
+            "name": "sebastian/comparator",
+            "version": "1.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/comparator.git",
+                "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
+                "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "sebastian/diff": "~1.2",
+                "sebastian/exporter": "~1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.2.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff at gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github at wallbash.com"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek at 2bepublished.at"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de"
+                }
+            ],
+            "description": "Provides the functionality to compare PHP values for equality",
+            "homepage": "http://www.github.com/sebastianbergmann/comparator",
+            "keywords": [
+                "comparator",
+                "compare",
+                "equality"
+            ],
+            "time": "2015-07-26 15:48:44"
+        },
+        {
+            "name": "sebastian/diff",
+            "version": "1.4.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/diff.git",
+                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
+                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.8"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Kore Nordmann",
+                    "email": "mail at kore-nordmann.de"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de"
+                }
+            ],
+            "description": "Diff implementation",
+            "homepage": "https://github.com/sebastianbergmann/diff",
+            "keywords": [
+                "diff"
+            ],
+            "time": "2015-12-08 07:14:41"
+        },
+        {
+            "name": "sebastian/environment",
+            "version": "1.3.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/environment.git",
+                "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716",
+                "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de"
+                }
+            ],
+            "description": "Provides functionality to handle HHVM/PHP environments",
+            "homepage": "http://www.github.com/sebastianbergmann/environment",
+            "keywords": [
+                "Xdebug",
+                "environment",
+                "hhvm"
+            ],
+            "time": "2016-05-17 03:18:57"
+        },
+        {
+            "name": "sebastian/exporter",
+            "version": "1.2.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/exporter.git",
+                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
+                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "sebastian/recursion-context": "~1.0"
+            },
+            "require-dev": {
+                "ext-mbstring": "*",
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff at gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github at wallbash.com"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek at 2bepublished.at"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey at php.net"
+                }
+            ],
+            "description": "Provides the functionality to export PHP variables for visualization",
+            "homepage": "http://www.github.com/sebastianbergmann/exporter",
+            "keywords": [
+                "export",
+                "exporter"
+            ],
+            "time": "2016-06-17 09:04:28"
+        },
+        {
+            "name": "sebastian/global-state",
+            "version": "1.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/global-state.git",
+                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
+                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.2"
+            },
+            "suggest": {
+                "ext-uopz": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de"
+                }
+            ],
+            "description": "Snapshotting of global state",
+            "homepage": "http://www.github.com/sebastianbergmann/global-state",
+            "keywords": [
+                "global state"
+            ],
+            "time": "2015-10-12 03:26:01"
+        },
+        {
+            "name": "sebastian/recursion-context",
+            "version": "1.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/recursion-context.git",
+                "reference": "913401df809e99e4f47b27cdd781f4a258d58791"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
+                "reference": "913401df809e99e4f47b27cdd781f4a258d58791",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff at gmail.com"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey at php.net"
+                }
+            ],
+            "description": "Provides functionality to recursively process PHP variables",
+            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+            "time": "2015-11-11 19:50:13"
+        },
+        {
+            "name": "sebastian/version",
+            "version": "1.0.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/version.git",
+                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian at phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+            "homepage": "https://github.com/sebastianbergmann/version",
+            "time": "2015-06-21 13:59:46"
+        },
+        {
+            "name": "seld/jsonlint",
+            "version": "1.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Seldaek/jsonlint.git",
+                "reference": "66834d3e3566bb5798db7294619388786ae99394"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/66834d3e3566bb5798db7294619388786ae99394",
+                "reference": "66834d3e3566bb5798db7294619388786ae99394",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.3 || ^7.0"
+            },
+            "bin": [
+                "bin/jsonlint"
+            ],
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jordi Boggiano",
+                    "email": "j.boggiano at seld.be",
+                    "homepage": "http://seld.be"
+                }
+            ],
+            "description": "JSON Linter",
+            "keywords": [
+                "json",
+                "linter",
+                "parser",
+                "validator"
+            ],
+            "time": "2015-11-21 02:21:41"
+        },
+        {
+            "name": "symfony/config",
+            "version": "v2.8.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/config.git",
+                "reference": "a2edd59c2163c65747fc3f35d132b5a39266bd05"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/config/zipball/a2edd59c2163c65747fc3f35d132b5a39266bd05",
+                "reference": "a2edd59c2163c65747fc3f35d132b5a39266bd05",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9",
+                "symfony/filesystem": "~2.3|~3.0.0"
+            },
+            "suggest": {
+                "symfony/yaml": "To use the yaml reference dumper"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Config\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Config Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-06 11:11:27"
+        },
+        {
+            "name": "symfony/console",
+            "version": "v2.8.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/console.git",
+                "reference": "5ac8bc9aa77bb2edf06af3a1bb6bc1020d23acd3"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/console/zipball/5ac8bc9aa77bb2edf06af3a1bb6bc1020d23acd3",
+                "reference": "5ac8bc9aa77bb2edf06af3a1bb6bc1020d23acd3",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9",
+                "symfony/polyfill-mbstring": "~1.0"
+            },
+            "require-dev": {
+                "psr/log": "~1.0",
+                "symfony/event-dispatcher": "~2.1|~3.0.0",
+                "symfony/process": "~2.1|~3.0.0"
+            },
+            "suggest": {
+                "psr/log": "For using the console logger",
+                "symfony/event-dispatcher": "",
+                "symfony/process": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Console\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Console Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-06 15:06:25"
+        },
+        {
+            "name": "symfony/event-dispatcher",
+            "version": "v2.8.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/event-dispatcher.git",
+                "reference": "2a6b8713f8bdb582058cfda463527f195b066110"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2a6b8713f8bdb582058cfda463527f195b066110",
+                "reference": "2a6b8713f8bdb582058cfda463527f195b066110",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9"
+            },
+            "require-dev": {
+                "psr/log": "~1.0",
+                "symfony/config": "~2.0,>=2.0.5|~3.0.0",
+                "symfony/dependency-injection": "~2.6|~3.0.0",
+                "symfony/expression-language": "~2.6|~3.0.0",
+                "symfony/stopwatch": "~2.3|~3.0.0"
+            },
+            "suggest": {
+                "symfony/dependency-injection": "",
+                "symfony/http-kernel": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\EventDispatcher\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony EventDispatcher Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-06 11:11:27"
+        },
+        {
+            "name": "symfony/filesystem",
+            "version": "v3.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/filesystem.git",
+                "reference": "74fec3511b62cb934b64bce1d96f06fffa4beafd"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/filesystem/zipball/74fec3511b62cb934b64bce1d96f06fffa4beafd",
+                "reference": "74fec3511b62cb934b64bce1d96f06fffa4beafd",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.5.9"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Filesystem\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Filesystem Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-04-12 18:09:53"
+        },
+        {
+            "name": "symfony/finder",
+            "version": "v2.8.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/finder.git",
+                "reference": "3ec095fab1800222732ca522a95dce8fa124007b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/3ec095fab1800222732ca522a95dce8fa124007b",
+                "reference": "3ec095fab1800222732ca522a95dce8fa124007b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Finder\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Finder Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-06 11:11:27"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "dff51f72b0706335131b00a7f49606168c582594"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
+                "reference": "dff51f72b0706335131b00a7f49606168c582594",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.2-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p at tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "time": "2016-05-18 14:26:46"
+        },
+        {
+            "name": "symfony/process",
+            "version": "v2.8.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/process.git",
+                "reference": "115347d00c342198cdc52a7bd8bc15b5ab43500c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/process/zipball/115347d00c342198cdc52a7bd8bc15b5ab43500c",
+                "reference": "115347d00c342198cdc52a7bd8bc15b5ab43500c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Process\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Process Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-06 11:11:27"
+        },
+        {
+            "name": "symfony/stopwatch",
+            "version": "v2.8.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/stopwatch.git",
+                "reference": "5e628055488bcc42dbace3af65be435d094e37e4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5e628055488bcc42dbace3af65be435d094e37e4",
+                "reference": "5e628055488bcc42dbace3af65be435d094e37e4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Stopwatch\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Stopwatch Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-06 11:11:27"
+        },
+        {
+            "name": "symfony/translation",
+            "version": "v3.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation.git",
+                "reference": "2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7",
+                "reference": "2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.5.9",
+                "symfony/polyfill-mbstring": "~1.0"
+            },
+            "conflict": {
+                "symfony/config": "<2.8"
+            },
+            "require-dev": {
+                "psr/log": "~1.0",
+                "symfony/config": "~2.8|~3.0",
+                "symfony/intl": "~2.8|~3.0",
+                "symfony/yaml": "~2.8|~3.0"
+            },
+            "suggest": {
+                "psr/log": "To use logging capability in translator",
+                "symfony/config": "",
+                "symfony/yaml": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Translation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Translation Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-06 11:33:26"
+        },
+        {
+            "name": "symfony/validator",
+            "version": "v2.8.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/validator.git",
+                "reference": "4c8f9fd8e2150dbc4745ef13378e690588365df0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/validator/zipball/4c8f9fd8e2150dbc4745ef13378e690588365df0",
+                "reference": "4c8f9fd8e2150dbc4745ef13378e690588365df0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/translation": "~2.4|~3.0.0"
+            },
+            "require-dev": {
+                "doctrine/annotations": "~1.0",
+                "doctrine/cache": "~1.0",
+                "egulias/email-validator": "~1.2,>=1.2.1",
+                "symfony/config": "~2.2|~3.0.0",
+                "symfony/expression-language": "~2.4|~3.0.0",
+                "symfony/http-foundation": "~2.1|~3.0.0",
+                "symfony/intl": "~2.7.4|~2.8|~3.0.0",
+                "symfony/property-access": "~2.3|~3.0.0",
+                "symfony/yaml": "~2.0,>=2.0.5|~3.0.0"
+            },
+            "suggest": {
+                "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
+                "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
+                "egulias/email-validator": "Strict (RFC compliant) email validation",
+                "symfony/config": "",
+                "symfony/expression-language": "For using the 2.4 Expression validator",
+                "symfony/http-foundation": "",
+                "symfony/intl": "",
+                "symfony/property-access": "For using the 2.4 Validator API",
+                "symfony/yaml": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Validator\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Validator Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-04-14 08:48:44"
+        },
+        {
+            "name": "symfony/yaml",
+            "version": "v3.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/yaml.git",
+                "reference": "c5a7e7fc273c758b92b85dcb9c46149ccda89623"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/c5a7e7fc273c758b92b85dcb9c46149ccda89623",
+                "reference": "c5a7e7fc273c758b92b85dcb9c46149ccda89623",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.5.9"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Yaml\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Yaml Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-06-14 11:18:07"
+        },
+        {
+            "name": "twig/twig",
+            "version": "v1.24.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/twigphp/Twig.git",
+                "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/twigphp/Twig/zipball/3566d311a92aae4deec6e48682dc5a4528c4a512",
+                "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.2.7"
+            },
+            "require-dev": {
+                "symfony/debug": "~2.7",
+                "symfony/phpunit-bridge": "~2.7"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.24-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Twig_": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien at symfony.com",
+                    "homepage": "http://fabien.potencier.org",
+                    "role": "Lead Developer"
+                },
+                {
+                    "name": "Armin Ronacher",
+                    "email": "armin.ronacher at active-4.com",
+                    "role": "Project Founder"
+                },
+                {
+                    "name": "Twig Team",
+                    "homepage": "http://twig.sensiolabs.org/contributors",
+                    "role": "Contributors"
+                }
+            ],
+            "description": "Twig, the flexible, fast, and secure template language for PHP",
+            "homepage": "http://twig.sensiolabs.org",
+            "keywords": [
+                "templating"
+            ],
+            "time": "2016-05-30 09:11:59"
+        },
+        {
+            "name": "zendframework/zend-cache",
+            "version": "2.7.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-cache.git",
+                "reference": "2c68def8f96ce842d2f2a9a69e2f3508c2f5312d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-cache/zipball/2c68def8f96ce842d2f2a9a69e2f3508c2f5312d",
+                "reference": "2c68def8f96ce842d2f2a9a69e2f3508c2f5312d",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0",
+                "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
+                "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+                "zendframework/zend-stdlib": "^2.7 || ^3.0"
+            },
+            "require-dev": {
+                "fabpot/php-cs-fixer": "1.7.*",
+                "phpbench/phpbench": "^0.10.0",
+                "phpunit/phpunit": "^4.5",
+                "zendframework/zend-serializer": "^2.6",
+                "zendframework/zend-session": "^2.6.2"
+            },
+            "suggest": {
+                "ext-apc": "APC or compatible extension, to use the APC storage adapter",
+                "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter",
+                "ext-dba": "DBA, to use the DBA storage adapter",
+                "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter",
+                "ext-memcached": "Memcached >= 1.0.0 to use the Memcached storage adapter",
+                "ext-mongo": "Mongo, to use MongoDb storage adapter",
+                "ext-redis": "Redis, to use Redis storage adapter",
+                "ext-wincache": "WinCache, to use the WinCache storage adapter",
+                "ext-xcache": "XCache, to use the XCache storage adapter",
+                "mongofill/mongofill": "Alternative to ext-mongo - a pure PHP implementation designed as a drop in replacement",
+                "zendframework/zend-serializer": "Zend\\Serializer component",
+                "zendframework/zend-session": "Zend\\Session component"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.7-dev",
+                    "dev-develop": "2.8-dev"
+                },
+                "zf": {
+                    "component": "Zend\\Cache",
+                    "config-provider": "Zend\\Cache\\ConfigProvider"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\Cache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "provides a generic way to cache any data",
+            "homepage": "https://github.com/zendframework/zend-cache",
+            "keywords": [
+                "cache",
+                "zf2"
+            ],
+            "time": "2016-05-12 21:47:55"
+        },
+        {
+            "name": "zendframework/zend-config",
+            "version": "2.6.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-config.git",
+                "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-config/zipball/2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
+                "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0",
+                "zendframework/zend-stdlib": "^2.7 || ^3.0"
+            },
+            "require-dev": {
+                "fabpot/php-cs-fixer": "1.7.*",
+                "phpunit/phpunit": "~4.0",
+                "zendframework/zend-filter": "^2.6",
+                "zendframework/zend-i18n": "^2.5",
+                "zendframework/zend-json": "^2.6.1",
+                "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+            },
+            "suggest": {
+                "zendframework/zend-filter": "Zend\\Filter component",
+                "zendframework/zend-i18n": "Zend\\I18n component",
+                "zendframework/zend-json": "Zend\\Json to use the Json reader or writer classes",
+                "zendframework/zend-servicemanager": "Zend\\ServiceManager for use with the Config Factory to retrieve reader and writer instances"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.6-dev",
+                    "dev-develop": "2.7-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\Config\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "provides a nested object property based user interface for accessing this configuration data within application code",
+            "homepage": "https://github.com/zendframework/zend-config",
+            "keywords": [
+                "config",
+                "zf2"
+            ],
+            "time": "2016-02-04 23:01:10"
+        },
+        {
+            "name": "zendframework/zend-eventmanager",
+            "version": "3.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-eventmanager.git",
+                "reference": "5c80bdee0e952be112dcec0968bad770082c3a6e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/5c80bdee0e952be112dcec0968bad770082c3a6e",
+                "reference": "5c80bdee0e952be112dcec0968bad770082c3a6e",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0"
+            },
+            "require-dev": {
+                "athletic/athletic": "^0.1",
+                "container-interop/container-interop": "^1.1.0",
+                "phpunit/phpunit": "~4.0",
+                "squizlabs/php_codesniffer": "^2.0",
+                "zendframework/zend-stdlib": "^2.7.3 || ^3.0"
+            },
+            "suggest": {
+                "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
+                "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev",
+                    "dev-develop": "3.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\EventManager\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "Trigger and listen to events within a PHP application",
+            "homepage": "https://github.com/zendframework/zend-eventmanager",
+            "keywords": [
+                "event",
+                "eventmanager",
+                "events",
+                "zf2"
+            ],
+            "time": "2016-02-18 20:53:00"
+        },
+        {
+            "name": "zendframework/zend-filter",
+            "version": "2.7.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-filter.git",
+                "reference": "84c50246428efb0a1e52868e162dab3e149d5b80"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/84c50246428efb0a1e52868e162dab3e149d5b80",
+                "reference": "84c50246428efb0a1e52868e162dab3e149d5b80",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0",
+                "zendframework/zend-stdlib": "^2.7 || ^3.0"
+            },
+            "require-dev": {
+                "fabpot/php-cs-fixer": "1.7.*",
+                "pear/archive_tar": "^1.4",
+                "phpunit/phpunit": "~4.0",
+                "zendframework/zend-crypt": "^2.6",
+                "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+                "zendframework/zend-uri": "^2.5"
+            },
+            "suggest": {
+                "zendframework/zend-crypt": "Zend\\Crypt component, for encryption filters",
+                "zendframework/zend-i18n": "Zend\\I18n component for filters depending on i18n functionality",
+                "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for using the filter chain functionality",
+                "zendframework/zend-uri": "Zend\\Uri component, for the UriNormalize filter"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.7-dev",
+                    "dev-develop": "2.8-dev"
+                },
+                "zf": {
+                    "component": "Zend\\Filter",
+                    "config-provider": "Zend\\Filter\\ConfigProvider"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\Filter\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "provides a set of commonly needed data filters",
+            "homepage": "https://github.com/zendframework/zend-filter",
+            "keywords": [
+                "filter",
+                "zf2"
+            ],
+            "time": "2016-04-18 18:32:43"
+        },
+        {
+            "name": "zendframework/zend-hydrator",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-hydrator.git",
+                "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-hydrator/zipball/22652e1661a5a10b3f564cf7824a2206cf5a4a65",
+                "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0",
+                "zendframework/zend-stdlib": "^2.7 || ^3.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0",
+                "squizlabs/php_codesniffer": "^2.0 at dev",
+                "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
+                "zendframework/zend-filter": "^2.6",
+                "zendframework/zend-inputfilter": "^2.6",
+                "zendframework/zend-serializer": "^2.6.1",
+                "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+            },
+            "suggest": {
+                "zendframework/zend-eventmanager": "^2.6.2 || ^3.0, to support aggregate hydrator usage",
+                "zendframework/zend-filter": "^2.6, to support naming strategy hydrator usage",
+                "zendframework/zend-serializer": "^2.6.1, to use the SerializableStrategy",
+                "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, to support hydrator plugin manager usage"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-release-1.0": "1.0-dev",
+                    "dev-release-1.1": "1.1-dev",
+                    "dev-master": "2.0-dev",
+                    "dev-develop": "2.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\Hydrator\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "homepage": "https://github.com/zendframework/zend-hydrator",
+            "keywords": [
+                "hydrator",
+                "zf2"
+            ],
+            "time": "2016-02-18 22:38:26"
+        },
+        {
+            "name": "zendframework/zend-i18n",
+            "version": "2.7.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-i18n.git",
+                "reference": "b2db0d8246a865c659f93199f90f5fc2cd2f3cd8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-i18n/zipball/b2db0d8246a865c659f93199f90f5fc2cd2f3cd8",
+                "reference": "b2db0d8246a865c659f93199f90f5fc2cd2f3cd8",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0",
+                "zendframework/zend-stdlib": "^2.7 || ^3.0"
+            },
+            "require-dev": {
+                "fabpot/php-cs-fixer": "1.7.*",
+                "phpunit/phpunit": "~4.0",
+                "zendframework/zend-cache": "^2.6.1",
+                "zendframework/zend-config": "^2.6",
+                "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
+                "zendframework/zend-filter": "^2.6.1",
+                "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+                "zendframework/zend-validator": "^2.6",
+                "zendframework/zend-view": "^2.6.3"
+            },
+            "suggest": {
+                "ext-intl": "Required for most features of Zend\\I18n; included in default builds of PHP",
+                "zendframework/zend-cache": "Zend\\Cache component",
+                "zendframework/zend-config": "Zend\\Config component",
+                "zendframework/zend-eventmanager": "You should install this package to use the events in the translator",
+                "zendframework/zend-filter": "You should install this package to use the provided filters",
+                "zendframework/zend-i18n-resources": "Translation resources",
+                "zendframework/zend-servicemanager": "Zend\\ServiceManager component",
+                "zendframework/zend-validator": "You should install this package to use the provided validators",
+                "zendframework/zend-view": "You should install this package to use the provided view helpers"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.7-dev",
+                    "dev-develop": "2.8-dev"
+                },
+                "zf": {
+                    "component": "Zend\\I18n",
+                    "config-provider": "Zend\\I18n\\ConfigProvider"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\I18n\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "homepage": "https://github.com/zendframework/zend-i18n",
+            "keywords": [
+                "i18n",
+                "zf2"
+            ],
+            "time": "2016-06-07 21:08:30"
+        },
+        {
+            "name": "zendframework/zend-json",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-json.git",
+                "reference": "f42a1588e75c2a3e338cd94c37906231e616daab"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-json/zipball/f42a1588e75c2a3e338cd94c37906231e616daab",
+                "reference": "f42a1588e75c2a3e338cd94c37906231e616daab",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0",
+                "squizlabs/php_codesniffer": "^2.3",
+                "zendframework/zend-stdlib": "^2.7 || ^3.0"
+            },
+            "suggest": {
+                "zendframework/zend-json-server": "For implementing JSON-RPC servers",
+                "zendframework/zend-xml2json": "For converting XML documents to JSON"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev",
+                    "dev-develop": "3.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\Json\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP",
+            "homepage": "https://github.com/zendframework/zend-json",
+            "keywords": [
+                "json",
+                "zf2"
+            ],
+            "time": "2016-04-01 02:34:00"
+        },
+        {
+            "name": "zendframework/zend-serializer",
+            "version": "2.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-serializer.git",
+                "reference": "ff74ea020f5f90866eb28365327e9bc765a61a6e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-serializer/zipball/ff74ea020f5f90866eb28365327e9bc765a61a6e",
+                "reference": "ff74ea020f5f90866eb28365327e9bc765a61a6e",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.6 || ^7.0",
+                "zendframework/zend-json": "^2.5 || ^3.0",
+                "zendframework/zend-stdlib": "^2.7 || ^3.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^4.5",
+                "squizlabs/php_codesniffer": "^2.3.1",
+                "zendframework/zend-math": "^2.6",
+                "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+            },
+            "suggest": {
+                "zendframework/zend-math": "(^2.6 || ^3.0) To support Python Pickle serialization",
+                "zendframework/zend-servicemanager": "(^2.7.5 || ^3.0.3) To support plugin manager support"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev",
+                    "dev-develop": "2.9-dev"
+                },
+                "zf": {
+                    "component": "Zend\\Serializer",
+                    "config-provider": "Zend\\Serializer\\ConfigProvider"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\Serializer\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "provides an adapter based interface to simply generate storable representation of PHP types by different facilities, and recover",
+            "homepage": "https://github.com/zendframework/zend-serializer",
+            "keywords": [
+                "serializer",
+                "zf2"
+            ],
+            "time": "2016-06-21 17:01:55"
+        },
+        {
+            "name": "zendframework/zend-servicemanager",
+            "version": "2.7.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-servicemanager.git",
+                "reference": "a6db4d13b9141fccce5dcb553df0295d6ad7d477"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/a6db4d13b9141fccce5dcb553df0295d6ad7d477",
+                "reference": "a6db4d13b9141fccce5dcb553df0295d6ad7d477",
+                "shasum": ""
+            },
+            "require": {
+                "container-interop/container-interop": "~1.0",
+                "php": "^5.5 || ^7.0"
+            },
+            "require-dev": {
+                "athletic/athletic": "dev-master",
+                "fabpot/php-cs-fixer": "1.7.*",
+                "phpunit/phpunit": "~4.0",
+                "zendframework/zend-di": "~2.5",
+                "zendframework/zend-mvc": "~2.5"
+            },
+            "suggest": {
+                "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services",
+                "zendframework/zend-di": "Zend\\Di component"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.7-dev",
+                    "dev-develop": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\ServiceManager\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "homepage": "https://github.com/zendframework/zend-servicemanager",
+            "keywords": [
+                "servicemanager",
+                "zf2"
+            ],
+            "time": "2016-04-27 19:07:40"
+        },
+        {
+            "name": "zendframework/zend-stdlib",
+            "version": "2.7.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zendframework/zend-stdlib.git",
+                "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/0e44eb46788f65e09e077eb7f44d2659143bcc1f",
+                "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5 || ^7.0",
+                "zendframework/zend-hydrator": "~1.1"
+            },
+            "require-dev": {
+                "athletic/athletic": "~0.1",
+                "fabpot/php-cs-fixer": "1.7.*",
+                "phpunit/phpunit": "~4.0",
+                "zendframework/zend-config": "~2.5",
+                "zendframework/zend-eventmanager": "~2.5",
+                "zendframework/zend-filter": "~2.5",
+                "zendframework/zend-inputfilter": "~2.5",
+                "zendframework/zend-serializer": "~2.5",
+                "zendframework/zend-servicemanager": "~2.5"
+            },
+            "suggest": {
+                "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
+                "zendframework/zend-filter": "To support naming strategy hydrator usage",
+                "zendframework/zend-serializer": "Zend\\Serializer component",
+                "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-release-2.7": "2.7-dev",
+                    "dev-master": "3.0-dev",
+                    "dev-develop": "3.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Zend\\Stdlib\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "homepage": "https://github.com/zendframework/zend-stdlib",
+            "keywords": [
+                "stdlib",
+                "zf2"
+            ],
+            "time": "2016-04-12 21:17:31"
+        },
+        {
+            "name": "zetacomponents/base",
+            "version": "1.9",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zetacomponents/Base.git",
+                "reference": "f20df24e8de3e48b6b69b2503f917e457281e687"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zetacomponents/Base/zipball/f20df24e8de3e48b6b69b2503f917e457281e687",
+                "reference": "f20df24e8de3e48b6b69b2503f917e457281e687",
+                "shasum": ""
+            },
+            "require-dev": {
+                "zetacomponents/unit-test": "*"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Sergey Alexeev"
+                },
+                {
+                    "name": "Sebastian Bergmann"
+                },
+                {
+                    "name": "Jan Borsodi"
+                },
+                {
+                    "name": "Raymond Bosman"
+                },
+                {
+                    "name": "Frederik Holljen"
+                },
+                {
+                    "name": "Kore Nordmann"
+                },
+                {
+                    "name": "Derick Rethans"
+                },
+                {
+                    "name": "Vadym Savchuk"
+                },
+                {
+                    "name": "Tobias Schlitt"
+                },
+                {
+                    "name": "Alexandru Stanoi"
+                }
+            ],
+            "description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
+            "homepage": "https://github.com/zetacomponents",
+            "time": "2014-09-19 03:28:34"
+        },
+        {
+            "name": "zetacomponents/document",
+            "version": "1.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zetacomponents/Document.git",
+                "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zetacomponents/Document/zipball/688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
+                "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
+                "shasum": ""
+            },
+            "require": {
+                "zetacomponents/base": "*"
+            },
+            "require-dev": {
+                "zetacomponents/unit-test": "dev-master"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann"
+                },
+                {
+                    "name": "Kore Nordmann"
+                },
+                {
+                    "name": "Derick Rethans"
+                },
+                {
+                    "name": "Tobias Schlitt"
+                },
+                {
+                    "name": "Alexandru Stanoi"
+                }
+            ],
+            "description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
+            "homepage": "https://github.com/zetacomponents",
+            "time": "2013-12-19 11:40:00"
+        }
+    ],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": {
+        "php": ">=5.0.0"
+    },
+    "platform-dev": []
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/DKIM.phps b/drupal/sites/all/libraries/phpmailer/examples/DKIM.phps
new file mode 100644
index 0000000..e3d2bae
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/DKIM.phps
@@ -0,0 +1,38 @@
+<?php
+/**
+ * This example shows how to use DKIM message authentication with PHPMailer.
+ * There's more to using DKIM than just this code - check out this article:
+ * @link https://yomotherboard.com/how-to-setup-email-server-dkim-keys/
+ * See also the DKIM code in the PHPMailer unit tests,
+ * which shows how to make a key pair from PHP.
+ */
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer;
+//Set who the message is to be sent from
+$mail->setFrom('from at example.com', 'First Last');
+//Set an alternative reply-to address
+$mail->addReplyTo('replyto at example.com', 'First Last');
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+//Set the subject line
+$mail->Subject = 'PHPMailer DKIM test';
+//This should be the same as the domain of your From address
+$mail->DKIM_domain = 'example.com';
+//Path to your private key file
+$mail->DKIM_private = 'dkim_private.pem';
+//Set this to your own selector
+$mail->DKIM_selector = 'phpmailer';
+//If your private key has a passphrase, set it here
+$mail->DKIM_passphrase = '';
+//The identity you're signing as - usually your From address
+$mail->DKIM_identity = $mail->From;
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/code_generator.phps b/drupal/sites/all/libraries/phpmailer/examples/code_generator.phps
new file mode 100644
index 0000000..2345856
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/code_generator.phps
@@ -0,0 +1,597 @@
+<?php
+/*
+ * A web form that both generates and uses PHPMailer code.
+ * revised, updated and corrected 27/02/2013
+ * by matt.sturdy at gmail.com
+ */
+require '../PHPMailerAutoload.php';
+
+$CFG['smtp_debug'] = 2; //0 == off, 1 for client output, 2 for client and server
+$CFG['smtp_debugoutput'] = 'html';
+$CFG['smtp_server'] = 'localhost';
+$CFG['smtp_port'] = '25';
+$CFG['smtp_authenticate'] = false;
+$CFG['smtp_username'] = 'name at example.com';
+$CFG['smtp_password'] = 'yourpassword';
+$CFG['smtp_secure'] = 'None';
+
+$from_name = (isset($_POST['From_Name'])) ? $_POST['From_Name'] : '';
+$from_email = (isset($_POST['From_Email'])) ? $_POST['From_Email'] : '';
+$to_name = (isset($_POST['To_Name'])) ? $_POST['To_Name'] : '';
+$to_email = (isset($_POST['To_Email'])) ? $_POST['To_Email'] : '';
+$cc_email = (isset($_POST['cc_Email'])) ? $_POST['cc_Email'] : '';
+$bcc_email = (isset($_POST['bcc_Email'])) ? $_POST['bcc_Email'] : '';
+$subject = (isset($_POST['Subject'])) ? $_POST['Subject'] : '';
+$message = (isset($_POST['Message'])) ? $_POST['Message'] : '';
+$test_type = (isset($_POST['test_type'])) ? $_POST['test_type'] : 'smtp';
+$smtp_debug = (isset($_POST['smtp_debug'])) ? $_POST['smtp_debug'] : $CFG['smtp_debug'];
+$smtp_server = (isset($_POST['smtp_server'])) ? $_POST['smtp_server'] : $CFG['smtp_server'];
+$smtp_port = (isset($_POST['smtp_port'])) ? $_POST['smtp_port'] : $CFG['smtp_port'];
+$smtp_secure = strtolower((isset($_POST['smtp_secure'])) ? $_POST['smtp_secure'] : $CFG['smtp_secure']);
+$smtp_authenticate = (isset($_POST['smtp_authenticate'])) ?
+    $_POST['smtp_authenticate'] : $CFG['smtp_authenticate'];
+$authenticate_password = (isset($_POST['authenticate_password'])) ?
+    $_POST['authenticate_password'] : $CFG['smtp_password'];
+$authenticate_username = (isset($_POST['authenticate_username'])) ?
+    $_POST['authenticate_username'] : $CFG['smtp_username'];
+
+// storing all status output from the script to be shown to the user later
+$results_messages = array();
+
+// $example_code represents the "final code" that we're using, and will
+// be shown to the user at the end.
+$example_code = "\nrequire_once '../PHPMailerAutoload.php';";
+$example_code .= "\n\n\$results_messages = array();";
+
+$mail = new PHPMailer(true);  //PHPMailer instance with exceptions enabled
+$mail->CharSet = 'utf-8';
+ini_set('default_charset', 'UTF-8');
+$mail->Debugoutput = $CFG['smtp_debugoutput'];
+$example_code .= "\n\n\$mail = new PHPMailer(true);";
+$example_code .= "\n\$mail->CharSet = 'utf-8';";
+$example_code .= "\nini_set('default_charset', 'UTF-8');";
+
+class phpmailerAppException extends phpmailerException
+{
+}
+
+$example_code .= "\n\nclass phpmailerAppException extends phpmailerException {}";
+$example_code .= "\n\ntry {";
+
+try {
+    if (isset($_POST["submit"]) && $_POST['submit'] == "Submit") {
+        $to = $_POST['To_Email'];
+        if (!PHPMailer::validateAddress($to)) {
+            throw new phpmailerAppException("Email address " . $to . " is invalid -- aborting!");
+        }
+
+        $example_code .= "\n\$to = '{$_POST['To_Email']}';";
+        $example_code .= "\nif(!PHPMailer::validateAddress(\$to)) {";
+        $example_code .= "\n  throw new phpmailerAppException(\"Email address \" . " .
+            "\$to . \" is invalid -- aborting!\");";
+        $example_code .= "\n}";
+
+        switch ($_POST['test_type']) {
+            case 'smtp':
+                $mail->isSMTP(); // telling the class to use SMTP
+                $mail->SMTPDebug = (integer)$_POST['smtp_debug'];
+                $mail->Host = $_POST['smtp_server']; // SMTP server
+                $mail->Port = (integer)$_POST['smtp_port']; // set the SMTP port
+                if ($_POST['smtp_secure']) {
+                    $mail->SMTPSecure = strtolower($_POST['smtp_secure']);
+                }
+                $mail->SMTPAuth = array_key_exists('smtp_authenticate', $_POST); // enable SMTP authentication?
+                if (array_key_exists('smtp_authenticate', $_POST)) {
+                    $mail->Username = $_POST['authenticate_username']; // SMTP account username
+                    $mail->Password = $_POST['authenticate_password']; // SMTP account password
+                }
+
+                $example_code .= "\n\$mail->isSMTP();";
+                $example_code .= "\n\$mail->SMTPDebug  = " . $_POST['smtp_debug'] . ";";
+                $example_code .= "\n\$mail->Host       = \"" . $_POST['smtp_server'] . "\";";
+                $example_code .= "\n\$mail->Port       = \"" . $_POST['smtp_port'] . "\";";
+                $example_code .= "\n\$mail->SMTPSecure = \"" . strtolower($_POST['smtp_secure']) . "\";";
+                $example_code .= "\n\$mail->SMTPAuth   = " . (array_key_exists(
+                    'smtp_authenticate',
+                    $_POST
+                ) ? 'true' : 'false') . ";";
+                if (array_key_exists('smtp_authenticate', $_POST)) {
+                    $example_code .= "\n\$mail->Username   = \"" . $_POST['authenticate_username'] . "\";";
+                    $example_code .= "\n\$mail->Password   = \"" . $_POST['authenticate_password'] . "\";";
+                }
+                break;
+            case 'mail':
+                $mail->isMail(); // telling the class to use PHP's mail()
+                $example_code .= "\n\$mail->isMail();";
+                break;
+            case 'sendmail':
+                $mail->isSendmail(); // telling the class to use Sendmail
+                $example_code .= "\n\$mail->isSendmail();";
+                break;
+            case 'qmail':
+                $mail->isQmail(); // telling the class to use Qmail
+                $example_code .= "\n\$mail->isQmail();";
+                break;
+            default:
+                throw new phpmailerAppException('Invalid test_type provided');
+        }
+
+        try {
+            if ($_POST['From_Name'] != '') {
+                $mail->addReplyTo($_POST['From_Email'], $_POST['From_Name']);
+                $mail->setFrom($_POST['From_Email'], $_POST['From_Name']);
+
+                $example_code .= "\n\$mail->addReplyTo(\"" .
+                    $_POST['From_Email'] . "\", \"" . $_POST['From_Name'] . "\");";
+                $example_code .= "\n\$mail->setFrom(\"" .
+                    $_POST['From_Email'] . "\", \"" . $_POST['From_Name'] . "\");";
+            } else {
+                $mail->addReplyTo($_POST['From_Email']);
+                $mail->setFrom($_POST['From_Email'], $_POST['From_Email']);
+
+                $example_code .= "\n\$mail->addReplyTo(\"" . $_POST['From_Email'] . "\");";
+                $example_code .= "\n\$mail->setFrom(\"" .
+                    $_POST['From_Email'] . "\", \"" . $_POST['From_Email'] . "\");";
+            }
+
+            if ($_POST['To_Name'] != '') {
+                $mail->addAddress($to, $_POST['To_Name']);
+                $example_code .= "\n\$mail->addAddress(\"$to\", \"" . $_POST['To_Name'] . "\");";
+            } else {
+                $mail->addAddress($to);
+                $example_code .= "\n\$mail->addAddress(\"$to\");";
+            }
+
+            if ($_POST['bcc_Email'] != '') {
+                $indiBCC = explode(" ", $_POST['bcc_Email']);
+                foreach ($indiBCC as $key => $value) {
+                    $mail->addBCC($value);
+                    $example_code .= "\n\$mail->addBCC(\"$value\");";
+                }
+            }
+
+            if ($_POST['cc_Email'] != '') {
+                $indiCC = explode(" ", $_POST['cc_Email']);
+                foreach ($indiCC as $key => $value) {
+                    $mail->addCC($value);
+                    $example_code .= "\n\$mail->addCC(\"$value\");";
+                }
+            }
+        } catch (phpmailerException $e) { //Catch all kinds of bad addressing
+            throw new phpmailerAppException($e->getMessage());
+        }
+        $mail->Subject = $_POST['Subject'] . ' (PHPMailer test using ' . strtoupper($_POST['test_type']) . ')';
+        $example_code .= "\n\$mail->Subject  = \"" . $_POST['Subject'] .
+            ' (PHPMailer test using ' . strtoupper($_POST['test_type']) . ')";';
+
+        if ($_POST['Message'] == '') {
+            $body = file_get_contents('contents.html');
+        } else {
+            $body = $_POST['Message'];
+        }
+
+        $example_code .= "\n\$body = <<<'EOT'\n" . htmlentities($body) . "\nEOT;";
+
+        $mail->WordWrap = 78; // set word wrap to the RFC2822 limit
+        $mail->msgHTML($body, dirname(__FILE__), true); //Create message bodies and embed images
+
+        $example_code .= "\n\$mail->WordWrap = 78;";
+        $example_code .= "\n\$mail->msgHTML(\$body, dirname(__FILE__), true); //Create message bodies and embed images";
+
+        $mail->addAttachment('images/phpmailer_mini.png', 'phpmailer_mini.png'); // optional name
+        $mail->addAttachment('images/phpmailer.png', 'phpmailer.png'); // optional name
+        $example_code .= "\n\$mail->addAttachment('images/phpmailer_mini.png'," .
+            "'phpmailer_mini.png');  // optional name";
+        $example_code .= "\n\$mail->addAttachment('images/phpmailer.png', 'phpmailer.png');  // optional name";
+
+        $example_code .= "\n\ntry {";
+        $example_code .= "\n  \$mail->send();";
+        $example_code .= "\n  \$results_messages[] = \"Message has been sent using " .
+            strtoupper($_POST['test_type']) . "\";";
+        $example_code .= "\n}";
+        $example_code .= "\ncatch (phpmailerException \$e) {";
+        $example_code .= "\n  throw new phpmailerAppException('Unable to send to: ' . \$to. ': '.\$e->getMessage());";
+        $example_code .= "\n}";
+
+        try {
+            $mail->send();
+            $results_messages[] = "Message has been sent using " . strtoupper($_POST["test_type"]);
+        } catch (phpmailerException $e) {
+            throw new phpmailerAppException("Unable to send to: " . $to . ': ' . $e->getMessage());
+        }
+    }
+} catch (phpmailerAppException $e) {
+    $results_messages[] = $e->errorMessage();
+}
+$example_code .= "\n}";
+$example_code .= "\ncatch (phpmailerAppException \$e) {";
+$example_code .= "\n  \$results_messages[] = \$e->errorMessage();";
+$example_code .= "\n}";
+$example_code .= "\n\nif (count(\$results_messages) > 0) {";
+$example_code .= "\n  echo \"<h2>Run results</h2>\\n\";";
+$example_code .= "\n  echo \"<ul>\\n\";";
+$example_code .= "\nforeach (\$results_messages as \$result) {";
+$example_code .= "\n  echo \"<li>\$result</li>\\n\";";
+$example_code .= "\n}";
+$example_code .= "\necho \"</ul>\\n\";";
+$example_code .= "\n}";
+?><!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>PHPMailer Test Page</title>
+    <script type="text/javascript" src="scripts/shCore.js"></script>
+    <script type="text/javascript" src="scripts/shBrushPhp.js"></script>
+    <link type="text/css" rel="stylesheet" href="styles/shCore.css">
+    <link type="text/css" rel="stylesheet" href="styles/shThemeDefault.css">
+    <style>
+        body {
+            font-family: Arial, Helvetica, sans-serif;
+            font-size: 1em;
+            padding: 1em;
+        }
+
+        table {
+            margin: 0 auto;
+            border-spacing: 0;
+            border-collapse: collapse;
+        }
+
+        table.column {
+            border-collapse: collapse;
+            background-color: #FFFFFF;
+            padding: 0.5em;
+            width: 35em;
+        }
+
+        td {
+            font-size: 1em;
+            padding: 0.1em 0.25em;
+            -moz-border-radius: 1em;
+            -webkit-border-radius: 1em;
+            border-radius: 1em;
+        }
+
+        td.colleft {
+            text-align: right;
+            width: 35%;
+        }
+
+        td.colrite {
+            text-align: left;
+            width: 65%;
+        }
+
+        fieldset {
+            padding: 1em 1em 1em 1em;
+            margin: 0 2em;
+            border-radius: 1.5em;
+            -webkit-border-radius: 1em;
+            -moz-border-radius: 1em;
+        }
+
+        fieldset.inner {
+            width: 40%;
+        }
+
+        fieldset:hover, tr:hover {
+            background-color: #fafafa;
+        }
+
+        legend {
+            font-weight: bold;
+            font-size: 1.1em;
+        }
+
+        div.column-left {
+            float: left;
+            width: 45em;
+            height: 31em;
+        }
+
+        div.column-right {
+            display: inline;
+            width: 45em;
+            max-height: 31em;
+        }
+
+        input.radio {
+            float: left;
+        }
+
+        div.radio {
+            padding: 0.2em;
+        }
+    </style>
+    <script>
+        SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf';
+        SyntaxHighlighter.all();
+
+        function startAgain() {
+            var post_params = {
+                "From_Name": "<?php echo $from_name; ?>",
+                "From_Email": "<?php echo $from_email; ?>",
+                "To_Name": "<?php echo $to_name; ?>",
+                "To_Email": "<?php echo $to_email; ?>",
+                "cc_Email": "<?php echo $cc_email; ?>",
+                "bcc_Email": "<?php echo $bcc_email; ?>",
+                "Subject": "<?php echo $subject; ?>",
+                "Message": "<?php echo $message; ?>",
+                "test_type": "<?php echo $test_type; ?>",
+                "smtp_debug": "<?php echo $smtp_debug; ?>",
+                "smtp_server": "<?php echo $smtp_server; ?>",
+                "smtp_port": "<?php echo $smtp_port; ?>",
+                "smtp_secure": "<?php echo $smtp_secure; ?>",
+                "smtp_authenticate": "<?php echo $smtp_authenticate; ?>",
+                "authenticate_username": "<?php echo $authenticate_username; ?>",
+                "authenticate_password": "<?php echo $authenticate_password; ?>"
+            };
+
+            var resetForm = document.createElement("form");
+            resetForm.setAttribute("method", "POST");
+            resetForm.setAttribute("path", "index.php");
+
+            for (var k in post_params) {
+                var h = document.createElement("input");
+                h.setAttribute("type", "hidden");
+                h.setAttribute("name", k);
+                h.setAttribute("value", post_params[k]);
+                resetForm.appendChild(h);
+            }
+
+            document.body.appendChild(resetForm);
+            resetForm.submit();
+        }
+
+        function showHideDiv(test, element_id) {
+            var ops = {"smtp-options-table": "smtp"};
+
+            if (test == ops[element_id]) {
+                document.getElementById(element_id).style.display = "block";
+            } else {
+                document.getElementById(element_id).style.display = "none";
+            }
+        }
+    </script>
+</head>
+<body>
+<?php
+if (version_compare(PHP_VERSION, '5.0.0', '<')) {
+    echo 'Current PHP version: ' . phpversion() . "<br>";
+    echo exit("ERROR: Wrong PHP version. Must be PHP 5 or above.");
+}
+
+if (count($results_messages) > 0) {
+    echo '<h2>Run results</h2>';
+    echo '<ul>';
+    foreach ($results_messages as $result) {
+        echo "<li>$result</li>";
+    }
+    echo '</ul>';
+}
+
+if (isset($_POST["submit"]) && $_POST["submit"] == "Submit") {
+    echo "<button type=\"submit\" onclick=\"startAgain();\">Start Over</button><br>\n";
+    echo "<br><span>Script:</span>\n";
+    echo "<pre class=\"brush: php;\">\n";
+    echo $example_code;
+    echo "\n</pre>\n";
+    echo "\n<hr style=\"margin: 3em;\">\n";
+}
+?>
+<form method="POST" enctype="multipart/form-data">
+    <div>
+        <div class="column-left">
+            <fieldset>
+                <legend>Mail Details</legend>
+                <table border="1" class="column">
+                    <tr>
+                        <td class="colleft">
+                            <label for="From_Name"><strong>From</strong> Name</label>
+                        </td>
+                        <td class="colrite">
+                            <input type="text" id="From_Name" name="From_Name" value="<?php echo $from_name; ?>"
+                                   style="width:95%;" autofocus placeholder="Your Name">
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="colleft">
+                            <label for="From_Email"><strong>From</strong> Email Address</label>
+                        </td>
+                        <td class="colrite">
+                            <input type="text" id="From_Email" name="From_Email" value="<?php echo $from_email; ?>"
+                                   style="width:95%;" required placeholder="Your.Email at example.com">
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="colleft">
+                            <label for="To_Name"><strong>To</strong> Name</label>
+                        </td>
+                        <td class="colrite">
+                            <input type="text" id="To_Name" name="To_Name" value="<?php echo $to_name; ?>"
+                                   style="width:95%;" placeholder="Recipient's Name">
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="colleft">
+                            <label for="To_Email"><strong>To</strong> Email Address</label>
+                        </td>
+                        <td class="colrite">
+                            <input type="text" id="To_Email" name="To_Email" value="<?php echo $to_email; ?>"
+                                   style="width:95%;" required placeholder="Recipients.Email at example.com">
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="colleft">
+                            <label for="cc_Email"><strong>CC Recipients</strong><br>
+                                <small>(separate with commas)</small>
+                            </label>
+                        </td>
+                        <td class="colrite">
+                            <input type="text" id="cc_Email" name="cc_Email" value="<?php echo $cc_email; ?>"
+                                   style="width:95%;" placeholder="cc1 at example.com, cc2 at example.com">
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="colleft">
+                            <label for="bcc_Email"><strong>BCC Recipients</strong><br>
+                                <small>(separate with commas)</small>
+                            </label>
+                        </td>
+                        <td class="colrite">
+                            <input type="text" id="bcc_Email" name="bcc_Email" value="<?php echo $bcc_email; ?>"
+                                   style="width:95%;" placeholder="bcc1 at example.com, bcc2 at example.com">
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="colleft">
+                            <label for="Subject"><strong>Subject</strong></label>
+                        </td>
+                        <td class="colrite">
+                            <input type="text" name="Subject" id="Subject" value="<?php echo $subject; ?>"
+                                   style="width:95%;" placeholder="Email Subject">
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="colleft">
+                            <label for="Message"><strong>Message</strong><br>
+                                <small>If blank, will use content.html</small>
+                            </label>
+                        </td>
+                        <td class="colrite">
+                            <textarea name="Message" id="Message" style="width:95%;height:5em;"
+                                      placeholder="Body of your email"><?php echo $message; ?></textarea>
+                        </td>
+                    </tr>
+                </table>
+                <div style="margin:1em 0;">Test will include two attachments.</div>
+            </fieldset>
+        </div>
+        <div class="column-right">
+            <fieldset class="inner"> <!-- SELECT TYPE OF MAIL -->
+                <legend>Mail Test Specs</legend>
+                <table border="1" class="column">
+                    <tr>
+                        <td class="colleft">Test Type</td>
+                        <td class="colrite">
+                            <div class="radio">
+                                <label for="radio-mail">Mail()</label>
+                                <input class="radio" type="radio" name="test_type" value="mail" id="radio-mail"
+                                       onclick="showHideDiv(this.value, 'smtp-options-table');"
+                                       <?php echo ($test_type == 'mail') ? 'checked' : ''; ?>
+                                       required>
+                            </div>
+                            <div class="radio">
+                                <label for="radio-sendmail">Sendmail</label>
+                                <input class="radio" type="radio" name="test_type" value="sendmail" id="radio-sendmail"
+                                       onclick="showHideDiv(this.value, 'smtp-options-table');"
+                                       <?php echo ($test_type == 'sendmail') ? 'checked' : ''; ?>
+                                       required>
+                            </div>
+                            <div class="radio">
+                                <label for="radio-qmail">Qmail</label>
+                                <input class="radio" type="radio" name="test_type" value="qmail" id="radio-qmail"
+                                       onclick="showHideDiv(this.value, 'smtp-options-table');"
+                                       <?php echo ($test_type == 'qmail') ? 'checked' : ''; ?>
+                                       required>
+                            </div>
+                            <div class="radio">
+                                <label for="radio-smtp">SMTP</label>
+                                <input class="radio" type="radio" name="test_type" value="smtp" id="radio-smtp"
+                                       onclick="showHideDiv(this.value, 'smtp-options-table');"
+                                       <?php echo ($test_type == 'smtp') ? 'checked' : ''; ?>
+                                       required>
+                            </div>
+                        </td>
+                    </tr>
+                </table>
+                <div id="smtp-options-table" style="margin:1em 0 0 0;
+<?php if ($test_type != 'smtp') {
+    echo "display: none;";
+} ?>">
+                    <span style="margin:1.25em 0; display:block;"><strong>SMTP Specific Options:</strong></span>
+                    <table border="1" class="column">
+                        <tr>
+                            <td class="colleft"><label for="smtp_debug">SMTP Debug ?</label></td>
+                            <td class="colrite">
+                                <select size="1" id="smtp_debug" name="smtp_debug">
+                                    <option <?php echo ($smtp_debug == '0') ? 'selected' : ''; ?> value="0">
+                                        0 - Disabled
+                                    </option>
+                                    <option <?php echo ($smtp_debug == '1') ? 'selected' : ''; ?> value="1">
+                                        1 - Client messages
+                                    </option>
+                                    <option <?php echo ($smtp_debug == '2') ? 'selected' : ''; ?> value="2">
+                                        2 - Client and server messages
+                                    </option>
+                                </select>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="colleft"><label for="smtp_server">SMTP Server</label></td>
+                            <td class="colrite">
+                                <input type="text" id="smtp_server" name="smtp_server"
+                                       value="<?php echo $smtp_server; ?>" style="width:95%;"
+                                       placeholder="smtp.server.com">
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="colleft" style="width: 5em;"><label for="smtp_port">SMTP Port</label></td>
+                            <td class="colrite">
+                                <input type="text" name="smtp_port" id="smtp_port" size="3"
+                                       value="<?php echo $smtp_port; ?>" placeholder="Port">
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="colleft"><label for="smtp_secure">SMTP Security</label></td>
+                            <td>
+                                <select size="1" name="smtp_secure" id="smtp_secure">
+                                    <option <?php echo ($smtp_secure == 'none') ? 'selected' : '' ?>>None</option>
+                                    <option <?php echo ($smtp_secure == 'tls') ? 'selected' : '' ?>>TLS</option>
+                                    <option <?php echo ($smtp_secure == 'ssl') ? 'selected' : '' ?>>SSL</option>
+                                </select>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="colleft"><label for="smtp-authenticate">SMTP Authenticate?</label></td>
+                            <td class="colrite">
+                                <input type="checkbox" id="smtp-authenticate"
+                                       name="smtp_authenticate"
+<?php if ($smtp_authenticate != '') {
+    echo "checked";
+} ?>
+                                       value="<?php echo $smtp_authenticate; ?>">
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="colleft"><label for="authenticate_username">Authenticate Username</label></td>
+                            <td class="colrite">
+                                <input type="text" id="authenticate_username" name="authenticate_username"
+                                       value="<?php echo $authenticate_username; ?>" style="width:95%;"
+                                       placeholder="SMTP Server Username">
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="colleft"><label for="authenticate_password">Authenticate Password</label></td>
+                            <td class="colrite">
+                                <input type="password" name="authenticate_password" id="authenticate_password"
+                                       value="<?php echo $authenticate_password; ?>" style="width:95%;"
+                                       placeholder="SMTP Server Password">
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+            </fieldset>
+        </div>
+        <br style="clear:both;">
+
+        <div style="margin-left:2em; margin-bottom:5em; float:left;">
+            <div style="margin-bottom: 1em; ">
+                <input type="submit" value="Submit" name="submit">
+            </div>
+            <?php echo 'Current PHP version: ' . phpversion(); ?>
+        </div>
+    </div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/phpmailer/examples/contents.html b/drupal/sites/all/libraries/phpmailer/examples/contents.html
new file mode 100644
index 0000000..dc3fc66
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/contents.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <title>PHPMailer Test</title>
+</head>
+<body>
+<div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
+  <h1>This is a test of PHPMailer.</h1>
+  <div align="center">
+    <a href="https://github.com/PHPMailer/PHPMailer/"><img src="images/phpmailer.png" height="90" width="340" alt="PHPMailer rocks"></a>
+  </div>
+  <p>This example uses <strong>HTML</strong>.</p>
+  <p>ISO-8859-1 text: ���������</p>
+</div>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/phpmailer/examples/contentsutf8.html b/drupal/sites/all/libraries/phpmailer/examples/contentsutf8.html
new file mode 100644
index 0000000..81a2024
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/contentsutf8.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <title>PHPMailer Test</title>
+</head>
+<body>
+<div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
+  <h1>This is a test of PHPMailer.</h1>
+  <div align="center">
+    <a href="https://github.com/PHPMailer/PHPMailer/"><img src="images/phpmailer.png" height="90" width="340" alt="PHPMailer rocks"></a>
+  </div>
+  <p>This example uses <strong>HTML</strong>.</p>
+  <p>Chinese text: 郵件內容為空</p>
+  <p>Russian text: Пустое тело сообщения</p>
+  <p>Armenian text: Հաղորդագրությունը դատարկ է</p>
+  <p>Czech text: Prázdné tělo zprávy</p>
+</div>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/phpmailer/examples/exceptions.phps b/drupal/sites/all/libraries/phpmailer/examples/exceptions.phps
new file mode 100644
index 0000000..0e941e7
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/exceptions.phps
@@ -0,0 +1,35 @@
+<?php
+/**
+ * This example shows how to make use of PHPMailer's exceptions for error handling.
+ */
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+//Passing true to the constructor enables the use of exceptions for error handling
+$mail = new PHPMailer(true);
+try {
+    //Set who the message is to be sent from
+    $mail->setFrom('from at example.com', 'First Last');
+    //Set an alternative reply-to address
+    $mail->addReplyTo('replyto at example.com', 'First Last');
+    //Set who the message is to be sent to
+    $mail->addAddress('whoto at example.com', 'John Doe');
+    //Set the subject line
+    $mail->Subject = 'PHPMailer Exceptions test';
+    //Read an HTML message body from an external file, convert referenced images to embedded,
+    //and convert the HTML into a basic plain-text alternative body
+    $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+    //Replace the plain text body with one created manually
+    $mail->AltBody = 'This is a plain-text message body';
+    //Attach an image file
+    $mail->addAttachment('images/phpmailer_mini.png');
+    //send the message
+    //Note that we don't need check the response from this because it will throw an exception if it has trouble
+    $mail->send();
+    echo "Message sent!";
+} catch (phpmailerException $e) {
+    echo $e->errorMessage(); //Pretty error messages from PHPMailer
+} catch (Exception $e) {
+    echo $e->getMessage(); //Boring error messages from anything else!
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/gmail.phps b/drupal/sites/all/libraries/phpmailer/examples/gmail.phps
new file mode 100644
index 0000000..b3cc02d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/gmail.phps
@@ -0,0 +1,75 @@
+<?php
+/**
+ * This example shows settings to use when sending via Google's Gmail servers.
+ */
+
+//SMTP needs accurate times, and the PHP time zone MUST be set
+//This should be done in your php.ini, but this is how to do it if you don't have access to that
+date_default_timezone_set('Etc/UTC');
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer;
+
+//Tell PHPMailer to use SMTP
+$mail->isSMTP();
+
+//Enable SMTP debugging
+// 0 = off (for production use)
+// 1 = client messages
+// 2 = client and server messages
+$mail->SMTPDebug = 2;
+
+//Ask for HTML-friendly debug output
+$mail->Debugoutput = 'html';
+
+//Set the hostname of the mail server
+$mail->Host = 'smtp.gmail.com';
+// use
+// $mail->Host = gethostbyname('smtp.gmail.com');
+// if your network does not support SMTP over IPv6
+
+//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
+$mail->Port = 587;
+
+//Set the encryption system to use - ssl (deprecated) or tls
+$mail->SMTPSecure = 'tls';
+
+//Whether to use SMTP authentication
+$mail->SMTPAuth = true;
+
+//Username to use for SMTP authentication - use full email address for gmail
+$mail->Username = "username at gmail.com";
+
+//Password to use for SMTP authentication
+$mail->Password = "yourpassword";
+
+//Set who the message is to be sent from
+$mail->setFrom('from at example.com', 'First Last');
+
+//Set an alternative reply-to address
+$mail->addReplyTo('replyto at example.com', 'First Last');
+
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+
+//Set the subject line
+$mail->Subject = 'PHPMailer GMail SMTP test';
+
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+
+//Replace the plain text body with one created manually
+$mail->AltBody = 'This is a plain-text message body';
+
+//Attach an image file
+$mail->addAttachment('images/phpmailer_mini.png');
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/gmail_xoauth.phps b/drupal/sites/all/libraries/phpmailer/examples/gmail_xoauth.phps
new file mode 100644
index 0000000..d64483a
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/gmail_xoauth.phps
@@ -0,0 +1,85 @@
+<?php
+/**
+ * This example shows settings to use when sending via Google's Gmail servers.
+ */
+
+//SMTP needs accurate times, and the PHP time zone MUST be set
+//This should be done in your php.ini, but this is how to do it if you don't have access to that
+date_default_timezone_set('Etc/UTC');
+
+require '../PHPMailerAutoload.php';
+
+//Load dependencies from composer
+//If this causes an error, run 'composer install'
+require '../vendor/autoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailerOAuth;
+
+//Tell PHPMailer to use SMTP
+$mail->isSMTP();
+
+//Enable SMTP debugging
+// 0 = off (for production use)
+// 1 = client messages
+// 2 = client and server messages
+$mail->SMTPDebug = 0;
+
+//Ask for HTML-friendly debug output
+$mail->Debugoutput = 'html';
+
+//Set the hostname of the mail server
+$mail->Host = 'smtp.gmail.com';
+
+//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
+$mail->Port = 587;
+
+//Set the encryption system to use - ssl (deprecated) or tls
+$mail->SMTPSecure = 'tls';
+
+//Whether to use SMTP authentication
+$mail->SMTPAuth = true;
+
+//Set AuthType
+$mail->AuthType = 'XOAUTH2';
+
+//User Email to use for SMTP authentication - Use the same Email used in Google Developer Console
+$mail->oauthUserEmail = "someone at gmail.com";
+
+//Obtained From Google Developer Console
+$mail->oauthClientId = "RANDOMCHARS-----duv1n2.apps.googleusercontent.com";
+
+//Obtained From Google Developer Console
+$mail->oauthClientSecret = "RANDOMCHARS-----lGyjPcRtvP";
+
+//Obtained By running get_oauth_token.php after setting up APP in Google Developer Console.
+//Set Redirect URI in Developer Console as [https/http]://<yourdomain>/<folder>/get_oauth_token.php
+// eg: http://localhost/phpmail/get_oauth_token.php
+$mail->oauthRefreshToken = "RANDOMCHARS-----DWxgOvPT003r-yFUV49TQYag7_Aod7y0";
+
+//Set who the message is to be sent from
+//For gmail, this generally needs to be the same as the user you logged in as
+$mail->setFrom('from at example.com', 'First Last');
+
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+
+//Set the subject line
+$mail->Subject = 'PHPMailer GMail SMTP test';
+
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+
+//Replace the plain text body with one created manually
+$mail->AltBody = 'This is a plain-text message body';
+
+//Attach an image file
+$mail->addAttachment('images/phpmailer_mini.png');
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/images/phpmailer.png b/drupal/sites/all/libraries/phpmailer/examples/images/phpmailer.png
new file mode 100644
index 0000000..9bdd83c
Binary files /dev/null and b/drupal/sites/all/libraries/phpmailer/examples/images/phpmailer.png differ
diff --git a/drupal/sites/all/libraries/phpmailer/examples/images/phpmailer_mini.png b/drupal/sites/all/libraries/phpmailer/examples/images/phpmailer_mini.png
new file mode 100644
index 0000000..e6915f4
Binary files /dev/null and b/drupal/sites/all/libraries/phpmailer/examples/images/phpmailer_mini.png differ
diff --git a/drupal/sites/all/libraries/phpmailer/examples/index.html b/drupal/sites/all/libraries/phpmailer/examples/index.html
new file mode 100644
index 0000000..bbb830d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/index.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+	<title>PHPMailer Examples</title>
+</head>
+<body>
+<h1>PHPMailer code examples<a href="https://github.com/PHPMailer/PHPMailer"><img src="images/phpmailer.png" style="float:right; border:0;" alt="PHPMailer logo"></a></h1>
+<p>This folder contains a collection of examples of using <a href="https://github.com/PHPMailer/PHPMailer">PHPMailer</a>.</p>
+<h2>About testing email sending</h2>
+<p>When working on email sending code you'll find yourself worrying about what might happen if all these test emails got sent to your mailing list. The solution is to use a fake mail server, one that acts just like the real thing, but just doesn't actually send anything out. Some offer web interfaces, feedback, logging, the ability to return specific error codes, all things that are useful for testing error handling, authentication etc. Here's a selection of mail testing tools you might  [...]
+<ul>
+  <li><a href="https://github.com/Nilhcem/FakeSMTP">FakeSMTP</a>, a Java desktop app with the ability to show an SMTP log and save messages to a folder. </li>
+  <li><a href="https://github.com/isotoma/FakeEmail">FakeEmail</a>, a Python-based fake mail server with a web interface.</li>
+  <li><a href="http://www.postfix.org/smtp-sink.1.html">smtp-sink</a>, part of the Postfix mail server, so you probably already have this installed. This is used in the Travis-CI configuration to run PHPMailer's unit tests.</li>
+  <li><a href="http://smtp4dev.codeplex.com">smtp4dev</a>, a dummy SMTP server for Windows.</li>
+  <li><a href="https://github.com/PHPMailer/PHPMailer/blob/master/test/fakesendmail.sh">fakesendmail.sh</a>, part of PHPMailer's test setup, this is a shell script that emulates sendmail for testing 'mail' or 'sendmail' methods in PHPMailer.</li>
+  <li><a href="http://tools.ietf.org/tools/msglint/">msglint</a>, not a mail server, the IETF's MIME structure analyser checks the formatting of your messages.</li>
+</ul>
+<div style="padding: 8px; color: #333333; background-color: #dc8b92">
+<h2>Security note</h2>
+<p>Before running these examples you'll need to rename them with '.php' extensions. They are supplied as '.phps' files which will usually be displayed with syntax highlighting by PHP instead of running them. This prevents potential security issues with running potential spam-gateway code if you happen to deploy these code examples on a live site - <em>please don't do that!</em> Similarly, don't leave your passwords in these files as they will be visible to the world!</p>
+</div>
+<h2><a href="code_generator.phps">code_generator.phps</a></h2>
+<p>This script is a simple code generator - fill in the form and hit submit, and it will use when you entered to email you a message, and will also generate PHP code using your settings that you can copy and paste to use in your own apps. If you need to get going quickly, this is probably the best place to start.</p>
+<h2><a href="mail.phps">mail.phps</a></h2>
+<p>This script is a basic example which creates an email message from an external HTML file, creates a plain text body, sets various addresses, adds an attachment and sends the message. It uses PHP's built-in mail() function which is the simplest to use, but relies on the presence of a local mail server, something which is not usually available on Windows. If you find yourself in that situation, either install a local mail server, or use a remote one and send using SMTP instead.</p>
+<h2><a href="exceptions.phps">exceptions.phps</a></h2>
+<p>The same as the mail example, but shows how to use PHPMailer's optional exceptions for error handling.</p>
+<h2><a href="smtp.phps">smtp.phps</a></h2>
+<p>A simple example sending using SMTP with authentication.</p>
+<h2><a href="smtp_no_auth.phps">smtp_no_auth.phps</a></h2>
+<p>A simple example sending using SMTP without authentication.</p>
+<h2><a href="sendmail.phps">sendmail.phps</a></h2>
+<p>A simple example using sendmail. Sendmail is a program (usually found on Linux/BSD, OS X and other UNIX-alikes) that can be used to submit messages to a local mail server without a lengthy SMTP conversation. It's probably the fastest sending mechanism, but lacks some error reporting features. There are sendmail emulators for most popular mail servers including postfix, qmail, exim etc.</p>
+<h2><a href="gmail.phps">gmail.phps</a></h2>
+<p>Submitting email via Google's Gmail service is a popular use of PHPMailer. It's much the same as normal SMTP sending, just with some specific settings, namely using TLS encryption, authentication is enabled, and it connects to the SMTP submission port 587 on the smtp.gmail.com host. This example does all that.</p>
+<h2><a href="pop_before_smtp.phps">pop_before_smtp.phps</a></h2>
+<p>Before effective SMTP authentication mechanisms were available, it was common for ISPs to use POP-before-SMTP authentication. As it implies, you authenticate using the POP3 protocol (an older protocol now mostly replaced by the far superior IMAP), and then the SMTP server will allow send access from your IP address for a short while, usually 5-15 minutes. PHPMailer includes a POP3 protocol client, so it can carry out this sequence - it's just like a normal SMTP conversation (without a [...]
+<h2><a href="mailing_list.phps">mailing_list.phps</a></h2>
+<p>This is a somewhat naïve example of sending similar emails to a list of different addresses. It sets up a PHPMailer instance using SMTP, then connects to a MySQL database to retrieve a list of recipients. The code loops over this list, sending email to each person using their info and marks them as sent in the database. It makes use of SMTP keepalive which saves reconnecting and re-authenticating between each message.</p>
+<hr>
+<h2><a href="smtp_check.phps">smtp_check.phps</a></h2>
+<p>This is an example showing how to use the SMTP class by itself (without PHPMailer) to check an SMTP connection.</p>
+<hr>
+<p>Most of these examples use the 'example.com' domain. This domain is reserved by IANA for illustrative purposes, as documented in <a href="http://tools.ietf.org/html/rfc2606">RFC 2606</a>. Don't use made-up domains like 'mydomain.com' or 'somedomain.com' in examples as someone, somewhere, probably owns them!</p>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/phpmailer/examples/mail.phps b/drupal/sites/all/libraries/phpmailer/examples/mail.phps
new file mode 100644
index 0000000..8e129f4
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/mail.phps
@@ -0,0 +1,31 @@
+<?php
+/**
+ * This example shows sending a message using PHP's mail() function.
+ */
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer;
+//Set who the message is to be sent from
+$mail->setFrom('from at example.com', 'First Last');
+//Set an alternative reply-to address
+$mail->addReplyTo('replyto at example.com', 'First Last');
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+//Set the subject line
+$mail->Subject = 'PHPMailer mail() test';
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+//Replace the plain text body with one created manually
+$mail->AltBody = 'This is a plain-text message body';
+//Attach an image file
+$mail->addAttachment('images/phpmailer_mini.png');
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/mailing_list.phps b/drupal/sites/all/libraries/phpmailer/examples/mailing_list.phps
new file mode 100644
index 0000000..8644bb5
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/mailing_list.phps
@@ -0,0 +1,59 @@
+<?php
+
+error_reporting(E_STRICT | E_ALL);
+
+date_default_timezone_set('Etc/UTC');
+
+require '../PHPMailerAutoload.php';
+
+$mail = new PHPMailer;
+
+$body = file_get_contents('contents.html');
+
+$mail->isSMTP();
+$mail->Host = 'smtp.example.com';
+$mail->SMTPAuth = true;
+$mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead
+$mail->Port = 25;
+$mail->Username = 'yourname at example.com';
+$mail->Password = 'yourpassword';
+$mail->setFrom('list at example.com', 'List manager');
+$mail->addReplyTo('list at example.com', 'List manager');
+
+$mail->Subject = "PHPMailer Simple database mailing list test";
+
+//Same body for all messages, so set this before the sending loop
+//If you generate a different body for each recipient (e.g. you're using a templating system),
+//set it inside the loop
+$mail->msgHTML($body);
+//msgHTML also sets AltBody, but if you want a custom one, set it afterwards
+$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
+
+//Connect to the database and select the recipients from your mailing list that have not yet been sent to
+//You'll need to alter this to match your database
+$mysql = mysqli_connect('localhost', 'username', 'password');
+mysqli_select_db($mysql, 'mydb');
+$result = mysqli_query($mysql, 'SELECT full_name, email, photo FROM mailinglist WHERE sent = false');
+
+foreach ($result as $row) { //This iterator syntax only works in PHP 5.4+
+    $mail->addAddress($row['email'], $row['full_name']);
+    if (!empty($row['photo'])) {
+        $mail->addStringAttachment($row['photo'], 'YourPhoto.jpg'); //Assumes the image data is stored in the DB
+    }
+
+    if (!$mail->send()) {
+        echo "Mailer Error (" . str_replace("@", "@", $row["email"]) . ') ' . $mail->ErrorInfo . '<br />';
+        break; //Abandon sending
+    } else {
+        echo "Message sent to :" . $row['full_name'] . ' (' . str_replace("@", "@", $row['email']) . ')<br />';
+        //Mark it as sent in the DB
+        mysqli_query(
+            $mysql,
+            "UPDATE mailinglist SET sent = true WHERE email = '" .
+            mysqli_real_escape_string($mysql, $row['email']) . "'"
+        );
+    }
+    // Clear all addresses and attachments for next loop
+    $mail->clearAddresses();
+    $mail->clearAttachments();
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/pop_before_smtp.phps b/drupal/sites/all/libraries/phpmailer/examples/pop_before_smtp.phps
new file mode 100644
index 0000000..164dfe8
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/pop_before_smtp.phps
@@ -0,0 +1,54 @@
+<?php
+/**
+ * This example shows how to use POP-before-SMTP for authentication.
+ */
+
+require '../PHPMailerAutoload.php';
+
+//Authenticate via POP3.
+//After this you should be allowed to submit messages over SMTP for a while.
+//Only applies if your host supports POP-before-SMTP.
+$pop = POP3::popBeforeSmtp('pop3.example.com', 110, 30, 'username', 'password', 1);
+
+//Create a new PHPMailer instance
+//Passing true to the constructor enables the use of exceptions for error handling
+$mail = new PHPMailer(true);
+try {
+    $mail->isSMTP();
+    //Enable SMTP debugging
+    // 0 = off (for production use)
+    // 1 = client messages
+    // 2 = client and server messages
+    $mail->SMTPDebug = 2;
+    //Ask for HTML-friendly debug output
+    $mail->Debugoutput = 'html';
+    //Set the hostname of the mail server
+    $mail->Host = "mail.example.com";
+    //Set the SMTP port number - likely to be 25, 465 or 587
+    $mail->Port = 25;
+    //Whether to use SMTP authentication
+    $mail->SMTPAuth = false;
+    //Set who the message is to be sent from
+    $mail->setFrom('from at example.com', 'First Last');
+    //Set an alternative reply-to address
+    $mail->addReplyTo('replyto at example.com', 'First Last');
+    //Set who the message is to be sent to
+    $mail->addAddress('whoto at example.com', 'John Doe');
+    //Set the subject line
+    $mail->Subject = 'PHPMailer POP-before-SMTP test';
+    //Read an HTML message body from an external file, convert referenced images to embedded,
+    //and convert the HTML into a basic plain-text alternative body
+    $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+    //Replace the plain text body with one created manually
+    $mail->AltBody = 'This is a plain-text message body';
+    //Attach an image file
+    $mail->addAttachment('images/phpmailer_mini.png');
+    //send the message
+    //Note that we don't need check the response from this because it will throw an exception if it has trouble
+    $mail->send();
+    echo "Message sent!";
+} catch (phpmailerException $e) {
+    echo $e->errorMessage(); //Pretty error messages from PHPMailer
+} catch (Exception $e) {
+    echo $e->getMessage(); //Boring error messages from anything else!
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/scripts/XRegExp.js b/drupal/sites/all/libraries/phpmailer/examples/scripts/XRegExp.js
new file mode 100644
index 0000000..ebdb9c9
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/scripts/XRegExp.js
@@ -0,0 +1,664 @@
+// XRegExp 1.5.1
+// (c) 2007-2012 Steven Levithan
+// MIT License
+// <http://xregexp.com>
+// Provides an augmented, extensible, cross-browser implementation of regular expressions,
+// including support for additional syntax, flags, and methods
+
+var XRegExp;
+
+if (XRegExp) {
+    // Avoid running twice, since that would break references to native globals
+    throw Error("can't load XRegExp twice in the same frame");
+}
+
+// Run within an anonymous function to protect variables and avoid new globals
+(function (undefined) {
+
+    //---------------------------------
+    //  Constructor
+    //---------------------------------
+
+    // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native
+    // regular expression in that additional syntax and flags are supported and cross-browser
+    // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and
+    // converts to type XRegExp
+    XRegExp = function (pattern, flags) {
+        var output = [],
+            currScope = XRegExp.OUTSIDE_CLASS,
+            pos = 0,
+            context, tokenResult, match, chr, regex;
+
+        if (XRegExp.isRegExp(pattern)) {
+            if (flags !== undefined)
+                throw TypeError("can't supply flags when constructing one RegExp from another");
+            return clone(pattern);
+        }
+        // Tokens become part of the regex construction process, so protect against infinite
+        // recursion when an XRegExp is constructed within a token handler or trigger
+        if (isInsideConstructor)
+            throw Error("can't call the XRegExp constructor within token definition functions");
+
+        flags = flags || "";
+        context = { // `this` object for custom tokens
+            hasNamedCapture: false,
+            captureNames: [],
+            hasFlag: function (flag) {return flags.indexOf(flag) > -1;},
+            setFlag: function (flag) {flags += flag;}
+        };
+
+        while (pos < pattern.length) {
+            // Check for custom tokens at the current position
+            tokenResult = runTokens(pattern, pos, currScope, context);
+
+            if (tokenResult) {
+                output.push(tokenResult.output);
+                pos += (tokenResult.match[0].length || 1);
+            } else {
+                // Check for native multicharacter metasequences (excluding character classes) at
+                // the current position
+                if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) {
+                    output.push(match[0]);
+                    pos += match[0].length;
+                } else {
+                    chr = pattern.charAt(pos);
+                    if (chr === "[")
+                        currScope = XRegExp.INSIDE_CLASS;
+                    else if (chr === "]")
+                        currScope = XRegExp.OUTSIDE_CLASS;
+                    // Advance position one character
+                    output.push(chr);
+                    pos++;
+                }
+            }
+        }
+
+        regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, ""));
+        regex._xregexp = {
+            source: pattern,
+            captureNames: context.hasNamedCapture ? context.captureNames : null
+        };
+        return regex;
+    };
+
+
+    //---------------------------------
+    //  Public properties
+    //---------------------------------
+
+    XRegExp.version = "1.5.1";
+
+    // Token scope bitflags
+    XRegExp.INSIDE_CLASS = 1;
+    XRegExp.OUTSIDE_CLASS = 2;
+
+
+    //---------------------------------
+    //  Private variables
+    //---------------------------------
+
+    var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g,
+        flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags
+        quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/,
+        isInsideConstructor = false,
+        tokens = [],
+        // Copy native globals for reference ("native" is an ES3 reserved keyword)
+        nativ = {
+            exec: RegExp.prototype.exec,
+            test: RegExp.prototype.test,
+            match: String.prototype.match,
+            replace: String.prototype.replace,
+            split: String.prototype.split
+        },
+        compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups
+        compliantLastIndexIncrement = function () {
+            var x = /^/g;
+            nativ.test.call(x, "");
+            return !x.lastIndex;
+        }(),
+        hasNativeY = RegExp.prototype.sticky !== undefined,
+        nativeTokens = {};
+
+    // `nativeTokens` match native multicharacter metasequences only (including deprecated octals,
+    // excluding character classes)
+    nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/;
+    nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/;
+
+
+    //---------------------------------
+    //  Public methods
+    //---------------------------------
+
+    // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by
+    // the XRegExp library and can be used to create XRegExp plugins. This function is intended for
+    // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can
+    // be disabled by `XRegExp.freezeTokens`
+    XRegExp.addToken = function (regex, handler, scope, trigger) {
+        tokens.push({
+            pattern: clone(regex, "g" + (hasNativeY ? "y" : "")),
+            handler: handler,
+            scope: scope || XRegExp.OUTSIDE_CLASS,
+            trigger: trigger || null
+        });
+    };
+
+    // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag
+    // combination has previously been cached, the cached copy is returned; otherwise the newly
+    // created regex is cached
+    XRegExp.cache = function (pattern, flags) {
+        var key = pattern + "/" + (flags || "");
+        return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags));
+    };
+
+    // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh
+    // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global`
+    // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve
+    // special properties required for named capture
+    XRegExp.copyAsGlobal = function (regex) {
+        return clone(regex, "g");
+    };
+
+    // Accepts a string; returns the string with regex metacharacters escaped. The returned string
+    // can safely be used at any point within a regex to match the provided literal string. Escaped
+    // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace
+    XRegExp.escape = function (str) {
+        return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+    };
+
+    // Accepts a string to search, regex to search with, position to start the search within the
+    // string (default: 0), and an optional Boolean indicating whether matches must start at-or-
+    // after the position or at the specified position only. This function ignores the `lastIndex`
+    // of the provided regex in its own handling, but updates the property for compatibility
+    XRegExp.execAt = function (str, regex, pos, anchored) {
+        var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")),
+            match;
+        r2.lastIndex = pos = pos || 0;
+        match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.)
+        if (anchored && match && match.index !== pos)
+            match = null;
+        if (regex.global)
+            regex.lastIndex = match ? r2.lastIndex : 0;
+        return match;
+    };
+
+    // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing
+    // syntax and flag changes. Should be run after XRegExp and any plugins are loaded
+    XRegExp.freezeTokens = function () {
+        XRegExp.addToken = function () {
+            throw Error("can't run addToken after freezeTokens");
+        };
+    };
+
+    // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object.
+    // Note that this is also `true` for regex literals and regexes created by the `XRegExp`
+    // constructor. This works correctly for variables created in another frame, when `instanceof`
+    // and `constructor` checks would fail to work as intended
+    XRegExp.isRegExp = function (o) {
+        return Object.prototype.toString.call(o) === "[object RegExp]";
+    };
+
+    // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to
+    // iterate over regex matches compared to the traditional approaches of subverting
+    // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop
+    XRegExp.iterate = function (str, regex, callback, context) {
+        var r2 = clone(regex, "g"),
+            i = -1, match;
+        while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.)
+            if (regex.global)
+                regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback`
+            callback.call(context, match, ++i, str, regex);
+            if (r2.lastIndex === match.index)
+                r2.lastIndex++;
+        }
+        if (regex.global)
+            regex.lastIndex = 0;
+    };
+
+    // Accepts a string and an array of regexes; returns the result of using each successive regex
+    // to search within the matches of the previous regex. The array of regexes can also contain
+    // objects with `regex` and `backref` properties, in which case the named or numbered back-
+    // references specified are passed forward to the next regex or returned. E.g.:
+    // var xregexpImgFileNames = XRegExp.matchChain(html, [
+    //     {regex: /<img\b([^>]+)>/i, backref: 1}, // <img> tag attributes
+    //     {regex: XRegExp('(?ix) \\s src=" (?<src> [^"]+ )'), backref: "src"}, // src attribute values
+    //     {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths
+    //     /[^\/]+$/ // filenames (strip directory paths)
+    // ]);
+    XRegExp.matchChain = function (str, chain) {
+        return function recurseChain (values, level) {
+            var item = chain[level].regex ? chain[level] : {regex: chain[level]},
+                regex = clone(item.regex, "g"),
+                matches = [], i;
+            for (i = 0; i < values.length; i++) {
+                XRegExp.iterate(values[i], regex, function (match) {
+                    matches.push(item.backref ? (match[item.backref] || "") : match[0]);
+                });
+            }
+            return ((level === chain.length - 1) || !matches.length) ?
+                matches : recurseChain(matches, level + 1);
+        }([str], 0);
+    };
+
+
+    //---------------------------------
+    //  New RegExp prototype methods
+    //---------------------------------
+
+    // Accepts a context object and arguments array; returns the result of calling `exec` with the
+    // first value in the arguments array. the context is ignored but is accepted for congruity
+    // with `Function.prototype.apply`
+    RegExp.prototype.apply = function (context, args) {
+        return this.exec(args[0]);
+    };
+
+    // Accepts a context object and string; returns the result of calling `exec` with the provided
+    // string. the context is ignored but is accepted for congruity with `Function.prototype.call`
+    RegExp.prototype.call = function (context, str) {
+        return this.exec(str);
+    };
+
+
+    //---------------------------------
+    //  Overriden native methods
+    //---------------------------------
+
+    // Adds named capture support (with backreferences returned as `result.name`), and fixes two
+    // cross-browser issues per ES3:
+    // - Captured values for nonparticipating capturing groups should be returned as `undefined`,
+    //   rather than the empty string.
+    // - `lastIndex` should not be incremented after zero-length matches.
+    RegExp.prototype.exec = function (str) {
+        var match, name, r2, origLastIndex;
+        if (!this.global)
+            origLastIndex = this.lastIndex;
+        match = nativ.exec.apply(this, arguments);
+        if (match) {
+            // Fix browsers whose `exec` methods don't consistently return `undefined` for
+            // nonparticipating capturing groups
+            if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) {
+                r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", ""));
+                // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed
+                // matching due to characters outside the match
+                nativ.replace.call((str + "").slice(match.index), r2, function () {
+                    for (var i = 1; i < arguments.length - 2; i++) {
+                        if (arguments[i] === undefined)
+                            match[i] = undefined;
+                    }
+                });
+            }
+            // Attach named capture properties
+            if (this._xregexp && this._xregexp.captureNames) {
+                for (var i = 1; i < match.length; i++) {
+                    name = this._xregexp.captureNames[i - 1];
+                    if (name)
+                       match[name] = match[i];
+                }
+            }
+            // Fix browsers that increment `lastIndex` after zero-length matches
+            if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))
+                this.lastIndex--;
+        }
+        if (!this.global)
+            this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows)
+        return match;
+    };
+
+    // Fix browser bugs in native method
+    RegExp.prototype.test = function (str) {
+        // Use the native `exec` to skip some processing overhead, even though the altered
+        // `exec` would take care of the `lastIndex` fixes
+        var match, origLastIndex;
+        if (!this.global)
+            origLastIndex = this.lastIndex;
+        match = nativ.exec.call(this, str);
+        // Fix browsers that increment `lastIndex` after zero-length matches
+        if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))
+            this.lastIndex--;
+        if (!this.global)
+            this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows)
+        return !!match;
+    };
+
+    // Adds named capture support and fixes browser bugs in native method
+    String.prototype.match = function (regex) {
+        if (!XRegExp.isRegExp(regex))
+            regex = RegExp(regex); // Native `RegExp`
+        if (regex.global) {
+            var result = nativ.match.apply(this, arguments);
+            regex.lastIndex = 0; // Fix IE bug
+            return result;
+        }
+        return regex.exec(this); // Run the altered `exec`
+    };
+
+    // Adds support for `${n}` tokens for named and numbered backreferences in replacement text,
+    // and provides named backreferences to replacement functions as `arguments[0].name`. Also
+    // fixes cross-browser differences in replacement text syntax when performing a replacement
+    // using a nonregex search value, and the value of replacement regexes' `lastIndex` property
+    // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary
+    // third (`flags`) parameter
+    String.prototype.replace = function (search, replacement) {
+        var isRegex = XRegExp.isRegExp(search),
+            captureNames, result, str, origLastIndex;
+
+        // There are too many combinations of search/replacement types/values and browser bugs that
+        // preclude passing to native `replace`, so don't try
+        //if (...)
+        //    return nativ.replace.apply(this, arguments);
+
+        if (isRegex) {
+            if (search._xregexp)
+                captureNames = search._xregexp.captureNames; // Array or `null`
+            if (!search.global)
+                origLastIndex = search.lastIndex;
+        } else {
+            search = search + ""; // Type conversion
+        }
+
+        if (Object.prototype.toString.call(replacement) === "[object Function]") {
+            result = nativ.replace.call(this + "", search, function () {
+                if (captureNames) {
+                    // Change the `arguments[0]` string primitive to a String object which can store properties
+                    arguments[0] = new String(arguments[0]);
+                    // Store named backreferences on `arguments[0]`
+                    for (var i = 0; i < captureNames.length; i++) {
+                        if (captureNames[i])
+                            arguments[0][captureNames[i]] = arguments[i + 1];
+                    }
+                }
+                // Update `lastIndex` before calling `replacement` (fix browsers)
+                if (isRegex && search.global)
+                    search.lastIndex = arguments[arguments.length - 2] + arguments[0].length;
+                return replacement.apply(null, arguments);
+            });
+        } else {
+            str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`)
+            result = nativ.replace.call(str, search, function () {
+                var args = arguments; // Keep this function's `arguments` available through closure
+                return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) {
+                    // Numbered backreference (without delimiters) or special variable
+                    if ($1) {
+                        switch ($1) {
+                            case "$": return "$";
+                            case "&": return args[0];
+                            case "`": return args[args.length - 1].slice(0, args[args.length - 2]);
+                            case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length);
+                            // Numbered backreference
+                            default:
+                                // What does "$10" mean?
+                                // - Backreference 10, if 10 or more capturing groups exist
+                                // - Backreference 1 followed by "0", if 1-9 capturing groups exist
+                                // - Otherwise, it's the string "$10"
+                                // Also note:
+                                // - Backreferences cannot be more than two digits (enforced by `replacementToken`)
+                                // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01"
+                                // - There is no "$0" token ("$&" is the entire match)
+                                var literalNumbers = "";
+                                $1 = +$1; // Type conversion; drop leading zero
+                                if (!$1) // `$1` was "0" or "00"
+                                    return $0;
+                                while ($1 > args.length - 3) {
+                                    literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers;
+                                    $1 = Math.floor($1 / 10); // Drop the last digit
+                                }
+                                return ($1 ? args[$1] || "" : "$") + literalNumbers;
+                        }
+                    // Named backreference or delimited numbered backreference
+                    } else {
+                        // What does "${n}" mean?
+                        // - Backreference to numbered capture n. Two differences from "$n":
+                        //   - n can be more than two digits
+                        //   - Backreference 0 is allowed, and is the entire match
+                        // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture
+                        // - Otherwise, it's the string "${n}"
+                        var n = +$2; // Type conversion; drop leading zeros
+                        if (n <= args.length - 3)
+                            return args[n];
+                        n = captureNames ? indexOf(captureNames, $2) : -1;
+                        return n > -1 ? args[n + 1] : $0;
+                    }
+                });
+            });
+        }
+
+        if (isRegex) {
+            if (search.global)
+                search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows)
+            else
+                search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows)
+        }
+
+        return result;
+    };
+
+    // A consistent cross-browser, ES3 compliant `split`
+    String.prototype.split = function (s /* separator */, limit) {
+        // If separator `s` is not a regex, use the native `split`
+        if (!XRegExp.isRegExp(s))
+            return nativ.split.apply(this, arguments);
+
+        var str = this + "", // Type conversion
+            output = [],
+            lastLastIndex = 0,
+            match, lastLength;
+
+        // Behavior for `limit`: if it's...
+        // - `undefined`: No limit
+        // - `NaN` or zero: Return an empty array
+        // - A positive number: Use `Math.floor(limit)`
+        // - A negative number: No limit
+        // - Other: Type-convert, then use the above rules
+        if (limit === undefined || +limit < 0) {
+            limit = Infinity;
+        } else {
+            limit = Math.floor(+limit);
+            if (!limit)
+                return [];
+        }
+
+        // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero
+        // and restore it to its original value when we're done using the regex
+        s = XRegExp.copyAsGlobal(s);
+
+        while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.)
+            if (s.lastIndex > lastLastIndex) {
+                output.push(str.slice(lastLastIndex, match.index));
+
+                if (match.length > 1 && match.index < str.length)
+                    Array.prototype.push.apply(output, match.slice(1));
+
+                lastLength = match[0].length;
+                lastLastIndex = s.lastIndex;
+
+                if (output.length >= limit)
+                    break;
+            }
+
+            if (s.lastIndex === match.index)
+                s.lastIndex++;
+        }
+
+        if (lastLastIndex === str.length) {
+            if (!nativ.test.call(s, "") || lastLength)
+                output.push("");
+        } else {
+            output.push(str.slice(lastLastIndex));
+        }
+
+        return output.length > limit ? output.slice(0, limit) : output;
+    };
+
+
+    //---------------------------------
+    //  Private helper functions
+    //---------------------------------
+
+    // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp`
+    // instance with a fresh `lastIndex` (set to zero), preserving properties required for named
+    // capture. Also allows adding new flags in the process of copying the regex
+    function clone (regex, additionalFlags) {
+        if (!XRegExp.isRegExp(regex))
+            throw TypeError("type RegExp expected");
+        var x = regex._xregexp;
+        regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || ""));
+        if (x) {
+            regex._xregexp = {
+                source: x.source,
+                captureNames: x.captureNames ? x.captureNames.slice(0) : null
+            };
+        }
+        return regex;
+    }
+
+    function getNativeFlags (regex) {
+        return (regex.global     ? "g" : "") +
+               (regex.ignoreCase ? "i" : "") +
+               (regex.multiline  ? "m" : "") +
+               (regex.extended   ? "x" : "") + // Proposed for ES4; included in AS3
+               (regex.sticky     ? "y" : "");
+    }
+
+    function runTokens (pattern, index, scope, context) {
+        var i = tokens.length,
+            result, match, t;
+        // Protect against constructing XRegExps within token handler and trigger functions
+        isInsideConstructor = true;
+        // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws
+        try {
+            while (i--) { // Run in reverse order
+                t = tokens[i];
+                if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) {
+                    t.pattern.lastIndex = index;
+                    match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc.
+                    if (match && match.index === index) {
+                        result = {
+                            output: t.handler.call(context, match, scope),
+                            match: match
+                        };
+                        break;
+                    }
+                }
+            }
+        } catch (err) {
+            throw err;
+        } finally {
+            isInsideConstructor = false;
+        }
+        return result;
+    }
+
+    function indexOf (array, item, from) {
+        if (Array.prototype.indexOf) // Use the native array method if available
+            return array.indexOf(item, from);
+        for (var i = from || 0; i < array.length; i++) {
+            if (array[i] === item)
+                return i;
+        }
+        return -1;
+    }
+
+
+    //---------------------------------
+    //  Built-in tokens
+    //---------------------------------
+
+    // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the
+    // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS`
+
+    // Comment pattern: (?# )
+    XRegExp.addToken(
+        /\(\?#[^)]*\)/,
+        function (match) {
+            // Keep tokens separated unless the following token is a quantifier
+            return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)";
+        }
+    );
+
+    // Capturing group (match the opening parenthesis only).
+    // Required for support of named capturing groups
+    XRegExp.addToken(
+        /\((?!\?)/,
+        function () {
+            this.captureNames.push(null);
+            return "(";
+        }
+    );
+
+    // Named capturing group (match the opening delimiter only): (?<name>
+    XRegExp.addToken(
+        /\(\?<([$\w]+)>/,
+        function (match) {
+            this.captureNames.push(match[1]);
+            this.hasNamedCapture = true;
+            return "(";
+        }
+    );
+
+    // Named backreference: \k<name>
+    XRegExp.addToken(
+        /\\k<([\w$]+)>/,
+        function (match) {
+            var index = indexOf(this.captureNames, match[1]);
+            // Keep backreferences separate from subsequent literal numbers. Preserve back-
+            // references to named groups that are undefined at this point as literal strings
+            return index > -1 ?
+                "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") :
+                match[0];
+        }
+    );
+
+    // Empty character class: [] or [^]
+    XRegExp.addToken(
+        /\[\^?]/,
+        function (match) {
+            // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S].
+            // (?!) should work like \b\B, but is unreliable in Firefox
+            return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]";
+        }
+    );
+
+    // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx)
+    // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc.
+    XRegExp.addToken(
+        /^\(\?([imsx]+)\)/,
+        function (match) {
+            this.setFlag(match[1]);
+            return "";
+        }
+    );
+
+    // Whitespace and comments, in free-spacing (aka extended) mode only
+    XRegExp.addToken(
+        /(?:\s+|#.*)+/,
+        function (match) {
+            // Keep tokens separated unless the following token is a quantifier
+            return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)";
+        },
+        XRegExp.OUTSIDE_CLASS,
+        function () {return this.hasFlag("x");}
+    );
+
+    // Dot, in dotall (aka singleline) mode only
+    XRegExp.addToken(
+        /\./,
+        function () {return "[\\s\\S]";},
+        XRegExp.OUTSIDE_CLASS,
+        function () {return this.hasFlag("s");}
+    );
+
+
+    //---------------------------------
+    //  Backward compatibility
+    //---------------------------------
+
+    // Uncomment the following block for compatibility with XRegExp 1.0-1.2:
+    /*
+    XRegExp.matchWithinChain = XRegExp.matchChain;
+    RegExp.prototype.addFlags = function (s) {return clone(this, s);};
+    RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;};
+    RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);};
+    RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;};
+    */
+
+})();
+
diff --git a/drupal/sites/all/libraries/phpmailer/examples/scripts/shAutoloader.js b/drupal/sites/all/libraries/phpmailer/examples/scripts/shAutoloader.js
new file mode 100644
index 0000000..9f5942e
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/scripts/shAutoloader.js
@@ -0,0 +1,122 @@
+(function() {
+
+var sh = SyntaxHighlighter;
+
+/**
+ * Provides functionality to dynamically load only the brushes that a needed to render the current page.
+ *
+ * There are two syntaxes that autoload understands. For example:
+ *
+ * SyntaxHighlighter.autoloader(
+ *     [ 'applescript',          'Scripts/shBrushAppleScript.js' ],
+ *     [ 'actionscript3', 'as3', 'Scripts/shBrushAS3.js' ]
+ * );
+ *
+ * or a more easily comprehendable one:
+ *
+ * SyntaxHighlighter.autoloader(
+ *     'applescript       Scripts/shBrushAppleScript.js',
+ *     'actionscript3 as3 Scripts/shBrushAS3.js'
+ * );
+ */
+sh.autoloader = function()
+{
+	var list = arguments,
+		elements = sh.findElements(),
+		brushes = {},
+		scripts = {},
+		all = SyntaxHighlighter.all,
+		allCalled = false,
+		allParams = null,
+		i
+		;
+
+	SyntaxHighlighter.all = function(params)
+	{
+		allParams = params;
+		allCalled = true;
+	};
+
+	function addBrush(aliases, url)
+	{
+		for (var i = 0; i < aliases.length; i++)
+			brushes[aliases[i]] = url;
+	};
+
+	function getAliases(item)
+	{
+		return item.pop
+			? item
+			: item.split(/\s+/)
+			;
+	}
+
+	// create table of aliases and script urls
+	for (i = 0; i < list.length; i++)
+	{
+		var aliases = getAliases(list[i]),
+			url = aliases.pop()
+			;
+
+		addBrush(aliases, url);
+	}
+
+	// dynamically add <script /> tags to the document body
+	for (i = 0; i < elements.length; i++)
+	{
+		var url = brushes[elements[i].params.brush];
+
+		if(url && scripts[url] === undefined)
+		{
+			if(elements[i].params['html-script'] === 'true')
+			{
+				if(scripts[brushes['xml']] === undefined) {
+					loadScript(brushes['xml']);
+					scripts[url] = false;
+				}
+			}
+
+			scripts[url] = false;
+			loadScript(url);
+		}
+	}
+
+	function loadScript(url)
+	{
+		var script = document.createElement('script'),
+			done = false
+			;
+
+		script.src = url;
+		script.type = 'text/javascript';
+		script.language = 'javascript';
+		script.onload = script.onreadystatechange = function()
+		{
+			if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete'))
+			{
+				done = true;
+				scripts[url] = true;
+				checkAll();
+
+				// Handle memory leak in IE
+				script.onload = script.onreadystatechange = null;
+				script.parentNode.removeChild(script);
+			}
+		};
+
+		// sync way of adding script tags to the page
+		document.body.appendChild(script);
+	};
+
+	function checkAll()
+	{
+		for(var url in scripts)
+			if (scripts[url] == false)
+				return;
+
+		if (allCalled)
+			SyntaxHighlighter.highlight(allParams);
+	};
+};
+
+})();
diff --git a/drupal/sites/all/libraries/phpmailer/examples/scripts/shBrushPhp.js b/drupal/sites/all/libraries/phpmailer/examples/scripts/shBrushPhp.js
new file mode 100644
index 0000000..33aca6f
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/scripts/shBrushPhp.js
@@ -0,0 +1,72 @@
+;(function()
+{
+	// CommonJS
+	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
+
+	function Brush()
+	{
+		var funcs	=	'abs acos acosh addcslashes addslashes ' +
+						'array_change_key_case array_chunk array_combine array_count_values array_diff '+
+						'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill '+
+						'array_filter array_flip array_intersect array_intersect_assoc array_intersect_key '+
+						'array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map '+
+						'array_merge array_merge_recursive array_multisort array_pad array_pop array_product '+
+						'array_push array_rand array_reduce array_reverse array_search array_shift '+
+						'array_slice array_splice array_sum array_udiff array_udiff_assoc '+
+						'array_udiff_uassoc array_uintersect array_uintersect_assoc '+
+						'array_uintersect_uassoc array_unique array_unshift array_values array_walk '+
+						'array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert '+
+						'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress '+
+						'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir '+
+						'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists '+
+						'closedir closelog copy cos cosh count count_chars date decbin dechex decoct '+
+						'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log '+
+						'error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded '+
+						'feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents '+
+						'fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype '+
+						'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf '+
+						'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname '+
+						'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt '+
+						'getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext '+
+						'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set '+
+						'interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double '+
+						'is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long '+
+						'is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault '+
+						'is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br '+
+						'parse_ini_file parse_str parse_url passthru pathinfo print readlink realpath rewind rewinddir rmdir '+
+						'round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split '+
+						'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes '+
+						'stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk '+
+						'strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime '+
+						'strtoupper strtr strval substr substr_compare';
+
+		var keywords =	'abstract and array as break case catch cfunction class clone const continue declare default die do ' +
+						'else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach ' +
+						'function global goto if implements include include_once interface instanceof insteadof namespace new ' +
+						'old_function or private protected public return require require_once static switch ' +
+						'trait throw try use var while xor ';
+		
+		var constants	= '__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__';
+
+		this.regexList = [
+			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
+			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
+			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// double quoted strings
+			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// single quoted strings
+			{ regex: /\$\w+/g,											css: 'variable' },			// variables
+			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },			// common functions
+			{ regex: new RegExp(this.getKeywords(constants), 'gmi'),	css: 'constants' },			// constants
+			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }			// keyword
+			];
+
+		this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
+	};
+
+	Brush.prototype	= new SyntaxHighlighter.Highlighter();
+	Brush.aliases	= ['php'];
+
+	SyntaxHighlighter.brushes.Php = Brush;
+
+	// CommonJS
+	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
+})();
diff --git a/drupal/sites/all/libraries/phpmailer/examples/scripts/shCore.js b/drupal/sites/all/libraries/phpmailer/examples/scripts/shCore.js
new file mode 100644
index 0000000..294b91c
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/scripts/shCore.js
@@ -0,0 +1 @@
+var XRegExp;if(XRegExp)throw Error("can't load XRegExp twice in the same frame");(function(e){function c(e,t){if(!XRegExp.isRegExp(e))throw TypeError("type RegExp expected");var n=e._xregexp;return e=XRegExp(e.source,h(e)+(t||"")),n&&(e._xregexp={source:n.source,captureNames:n.captureNames?n.captureNames.slice(0):null}),e}function h(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function p(e,t,n,r){var o=s.length,u,a,f;i=!0;try [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/phpmailer/examples/scripts/shLegacy.js b/drupal/sites/all/libraries/phpmailer/examples/scripts/shLegacy.js
new file mode 100644
index 0000000..2fd2c14
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/scripts/shLegacy.js
@@ -0,0 +1,140 @@
+var dp = {
+	SyntaxHighlighter : {}
+};
+
+dp.SyntaxHighlighter = {
+	parseParams: function(
+						input,
+						showGutter, 
+						showControls, 
+						collapseAll, 
+						firstLine, 
+						showColumns
+						)
+	{
+		function getValue(list, name)
+		{
+			var regex = new XRegExp('^' + name + '\\[(?<value>\\w+)\\]$', 'gi'),
+				match = null
+				;
+			
+			for (var i = 0; i < list.length; i++) 
+				if ((match = regex.exec(list[i])) != null)
+					return match.value;
+			
+			return null;
+		}
+		
+		function defaultValue(value, def)
+		{
+			return value != null ? value : def;
+		}
+		
+		function asString(value)
+		{
+			return value != null ? value.toString() : null;
+		}
+
+		var parts = input.split(':'),
+			brushName = parts[0],
+			options = {},
+			straight = { 'true' : true },
+			reverse = { 'true' : false },
+			defaults = SyntaxHighlighter.defaults
+			;
+		
+		for (var i in parts)
+			options[parts[i]] = 'true';
+
+		showGutter = asString(defaultValue(showGutter, defaults.gutter));
+		showControls = asString(defaultValue(showControls, defaults.toolbar));
+		collapseAll = asString(defaultValue(collapseAll, defaults.collapse)); 
+		showColumns = asString(defaultValue(showColumns, defaults.ruler));
+		firstLine = asString(defaultValue(firstLine, defaults['first-line'])); 
+
+		return {
+			brush			: brushName,
+			gutter			: defaultValue(reverse[options.nogutter], showGutter),
+			toolbar			: defaultValue(reverse[options.nocontrols], showControls),
+			collapse		: defaultValue(straight[options.collapse], collapseAll),
+			// ruler			: defaultValue(straight[options.showcolumns], showColumns),
+			'first-line'	: defaultValue(getValue(parts, 'firstline'), firstLine)
+		};
+	},
+	
+	HighlightAll: function(
+						name, 
+						showGutter /* optional */, 
+						showControls /* optional */, 
+						collapseAll /* optional */, 
+						firstLine /* optional */, 
+						showColumns /* optional */
+						)
+	{
+		function findValue()
+		{
+			var a = arguments;
+			
+			for (var i = 0; i < a.length; i++) 
+			{
+				if (a[i] === null) 
+					continue;
+				
+				if (typeof(a[i]) == 'string' && a[i] != '') 
+					return a[i] + '';
+				
+				if (typeof(a[i]) == 'object' && a[i].value != '') 
+					return a[i].value + '';
+			}
+			
+			return null;
+		}
+
+		function findTagsByName(list, name, tagName)
+		{
+			var tags = document.getElementsByTagName(tagName);
+			
+			for (var i = 0; i < tags.length; i++) 
+				if (tags[i].getAttribute('name') == name) 
+					list.push(tags[i]);
+		}
+		
+		var elements = [],
+			highlighter = null,
+			registered = {},
+			propertyName = 'innerHTML'
+			;
+		
+		// for some reason IE doesn't find <pre/> by name, however it does see them just fine by tag name... 
+		findTagsByName(elements, name, 'pre');
+		findTagsByName(elements, name, 'textarea');
+
+		if (elements.length === 0)
+			return;
+		
+		for (var i = 0; i < elements.length; i++)
+		{
+			var element = elements[i],
+				params = findValue(
+					element.attributes['class'], element.className, 
+					element.attributes['language'], element.language
+					),
+				language = ''
+				;
+			
+			if (params === null) 
+				continue;
+
+			params = dp.SyntaxHighlighter.parseParams(
+				params,
+				showGutter, 
+				showControls, 
+				collapseAll, 
+				firstLine, 
+				showColumns
+				);
+
+			SyntaxHighlighter.highlight(params, element);
+		}
+	}
+};
diff --git a/drupal/sites/all/libraries/phpmailer/examples/send_file_upload.phps b/drupal/sites/all/libraries/phpmailer/examples/send_file_upload.phps
new file mode 100644
index 0000000..3004c76
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/send_file_upload.phps
@@ -0,0 +1,49 @@
+<?php
+/**
+ * PHPMailer simple file upload and send example
+ */
+$msg = '';
+if (array_key_exists('userfile', $_FILES)) {
+    // First handle the upload
+    // Don't trust provided filename - same goes for MIME types
+    // See http://php.net/manual/en/features.file-upload.php#114004 for more thorough upload validation
+    $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name']));
+    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
+        // Upload handled successfully
+        // Now create a message
+        // This should be somewhere in your include_path
+        require '../PHPMailerAutoload.php';
+        $mail = new PHPMailer;
+        $mail->setFrom('from at example.com', 'First Last');
+        $mail->addAddress('whoto at example.com', 'John Doe');
+        $mail->Subject = 'PHPMailer file sender';
+        $mail->msgHTML("My message body");
+        // Attach the uploaded file
+        $mail->addAttachment($uploadfile, 'My uploaded file');
+        if (!$mail->send()) {
+            $msg .= "Mailer Error: " . $mail->ErrorInfo;
+        } else {
+            $msg .= "Message sent!";
+        }
+    } else {
+        $msg .= 'Failed to move file to ' . $uploadfile;
+    }
+}
+?>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>PHPMailer Upload</title>
+</head>
+<body>
+<?php if (empty($msg)) { ?>
+    <form method="post" enctype="multipart/form-data">
+        <input type="hidden" name="MAX_FILE_SIZE" value="100000"> Send this file: <input name="userfile" type="file">
+        <input type="submit" value="Send File">
+    </form>
+<?php } else {
+    echo $msg;
+} ?>
+</body>
+</html>
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/phpmailer/examples/send_multiple_file_upload.phps b/drupal/sites/all/libraries/phpmailer/examples/send_multiple_file_upload.phps
new file mode 100644
index 0000000..ddb7614
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/send_multiple_file_upload.phps
@@ -0,0 +1,51 @@
+<?php
+/**
+ * PHPMailer multiple files upload and send example
+ */
+$msg = '';
+if (array_key_exists('userfile', $_FILES)) {
+
+    // Create a message
+    // This should be somewhere in your include_path
+    require '../PHPMailerAutoload.php';
+    $mail = new PHPMailer;
+    $mail->setFrom('from at example.com', 'First Last');
+    $mail->addAddress('whoto at example.com', 'John Doe');
+    $mail->Subject = 'PHPMailer file sender';
+    $mail->msgHTML('My message body');
+    //Attach multiple files one by one
+    for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) {
+        $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
+        $filename = $_FILES['userfile']['name'][$ct];
+        if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
+            $mail->addAttachment($uploadfile, $filename);
+        } else {
+            $msg .= 'Failed to move file to ' . $uploadfile;
+        }
+    }
+    if (!$mail->send()) {
+        $msg .= "Mailer Error: " . $mail->ErrorInfo;
+    } else {
+        $msg .= "Message sent!";
+    }
+}
+?>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>PHPMailer Upload</title>
+</head>
+<body>
+<?php if (empty($msg)) { ?>
+    <form method="post" enctype="multipart/form-data">
+        <input type="hidden" name="MAX_FILE_SIZE" value="100000">
+        Select one or more files:
+        <input name="userfile[]" type="file" multiple="multiple">
+        <input type="submit" value="Send Files">
+    </form>
+<?php } else {
+    echo $msg;
+} ?>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/phpmailer/examples/sendmail.phps b/drupal/sites/all/libraries/phpmailer/examples/sendmail.phps
new file mode 100644
index 0000000..a830e49
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/sendmail.phps
@@ -0,0 +1,33 @@
+<?php
+/**
+ * This example shows sending a message using a local sendmail binary.
+ */
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer;
+// Set PHPMailer to use the sendmail transport
+$mail->isSendmail();
+//Set who the message is to be sent from
+$mail->setFrom('from at example.com', 'First Last');
+//Set an alternative reply-to address
+$mail->addReplyTo('replyto at example.com', 'First Last');
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+//Set the subject line
+$mail->Subject = 'PHPMailer sendmail test';
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+//Replace the plain text body with one created manually
+$mail->AltBody = 'This is a plain-text message body';
+//Attach an image file
+$mail->addAttachment('images/phpmailer_mini.png');
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/signed-mail.phps b/drupal/sites/all/libraries/phpmailer/examples/signed-mail.phps
new file mode 100644
index 0000000..9d70d01
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/signed-mail.phps
@@ -0,0 +1,89 @@
+<?php
+/**
+ * This example shows signing a message and then sending it via the mail() function of PHP.
+ * 
+ * Before you can sign the mail certificates are needed.
+ *
+ *
+ * STEP 1 - Creating a certificate:
+ * You can either use a self signed certificate, pay for a signed one or use free alternatives such as StartSSL/Comodo etc.
+ * Check out this link for more providers: http://kb.mozillazine.org/Getting_an_SMIME_certificate
+ * In this example I am using Comodo.
+ * The form is directly available via https://secure.comodo.com/products/frontpage?area=SecureEmailCertificate
+ * Fill it out and you'll get an email with a link to download your certificate.
+ * Usually the certificate will be directly installed into your browser (FireFox/Chrome).
+ * 
+ *
+ * STEP 2 - Exporting the certificate
+ * This is specific to your browser, however, most browsers will give you the option to export your recently added certificate in PKCS12 (.pfx)
+ * Include your private key if you are asked for it.
+ * Set up a password to protect your exported file.
+ * 
+ * STEP 3 - Splitting the .pfx into a private key and the certificate.
+ * I use openssl for this. You only need two commands. In my case the certificate file is called 'exported-cert.pfx'
+ * To create the private key do the following:
+ *
+ * openssl pkcs12 -in exported-cert.pfx -nocerts -out cert.key
+ * 
+ * Of course the way you name your file (-out) is up to you.
+ * You will be asked for a password for the Import password. This is the password you just set while exporting the certificate into the pfx file.
+ * Afterwards, you can password protect your private key (recommended)
+ * Also make sure to set the permissions to a minimum level and suitable for your application.
+ * To create the certificate file use the following command:
+ * 
+ * openssl pkcs12 -in exported-cert.pfx -clcerts -nokeys -out cert.crt
+ *
+ * Again, the way you name your certificate is up to you. You will be also asked for the Import Password.
+ * To create the certificate-chain file use the following command:
+ *
+ * openssl pkcs12 -in exported-cert.pfx -cacerts -out certchain.pem
+ *
+ * Again, the way you name your chain file is up to you. You will be also asked for the Import Password.
+ *
+ *
+ * STEP 3 - Code
+ */
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer();
+//Set who the message is to be sent from
+//IMPORTANT: This must match the email address of your certificate.
+//Although the certificate will be valid, an error will be thrown since it cannot be verified that the sender and the signer are the same person.
+$mail->setFrom('from at example.com', 'First Last');
+//Set an alternative reply-to address
+$mail->addReplyTo('replyto at example.com', 'First Last');
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+//Set the subject line
+$mail->Subject = 'PHPMailer mail() test';
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//Convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+//Replace the plain text body with one created manually
+$mail->AltBody = 'This is a plain-text message body';
+//Attach an image file
+$mail->addAttachment('images/phpmailer_mini.png');
+
+//Configure message signing (the actual signing does not occur until sending)
+$mail->sign(
+    '/path/to/cert.crt', //The location of your certificate file
+    '/path/to/cert.key', //The location of your private key file
+    'yourSecretPrivateKeyPassword', //The password you protected your private key with (not the Import Password! may be empty but parameter must not be omitted!)
+    '/path/to/certchain.pem' //The location of your chain file
+);
+
+//Send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
+
+/**
+ * REMARKS:
+ * If your email client does not support S/MIME it will most likely just show an attachment smime.p7s which is the signature contained in the email.
+ * Other clients, such as Thunderbird support S/MIME natively and will validate the signature automatically and report the result in some way.
+ */
+?>
diff --git a/drupal/sites/all/libraries/phpmailer/examples/smtp.phps b/drupal/sites/all/libraries/phpmailer/examples/smtp.phps
new file mode 100644
index 0000000..7c6b023
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/smtp.phps
@@ -0,0 +1,54 @@
+<?php
+/**
+ * This example shows making an SMTP connection with authentication.
+ */
+
+//SMTP needs accurate times, and the PHP time zone MUST be set
+//This should be done in your php.ini, but this is how to do it if you don't have access to that
+date_default_timezone_set('Etc/UTC');
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer;
+//Tell PHPMailer to use SMTP
+$mail->isSMTP();
+//Enable SMTP debugging
+// 0 = off (for production use)
+// 1 = client messages
+// 2 = client and server messages
+$mail->SMTPDebug = 2;
+//Ask for HTML-friendly debug output
+$mail->Debugoutput = 'html';
+//Set the hostname of the mail server
+$mail->Host = "mail.example.com";
+//Set the SMTP port number - likely to be 25, 465 or 587
+$mail->Port = 25;
+//Whether to use SMTP authentication
+$mail->SMTPAuth = true;
+//Username to use for SMTP authentication
+$mail->Username = "yourname at example.com";
+//Password to use for SMTP authentication
+$mail->Password = "yourpassword";
+//Set who the message is to be sent from
+$mail->setFrom('from at example.com', 'First Last');
+//Set an alternative reply-to address
+$mail->addReplyTo('replyto at example.com', 'First Last');
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+//Set the subject line
+$mail->Subject = 'PHPMailer SMTP test';
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+//Replace the plain text body with one created manually
+$mail->AltBody = 'This is a plain-text message body';
+//Attach an image file
+$mail->addAttachment('images/phpmailer_mini.png');
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/smtp_check.phps b/drupal/sites/all/libraries/phpmailer/examples/smtp_check.phps
new file mode 100644
index 0000000..9ecc03a
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/smtp_check.phps
@@ -0,0 +1,55 @@
+<?php
+/**
+ * This uses the SMTP class alone to check that a connection can be made to an SMTP server,
+ * authenticate, then disconnect
+ */
+
+//SMTP needs accurate times, and the PHP time zone MUST be set
+//This should be done in your php.ini, but this is how to do it if you don't have access to that
+date_default_timezone_set('Etc/UTC');
+
+require '../PHPMailerAutoload.php';
+
+//Create a new SMTP instance
+$smtp = new SMTP;
+
+//Enable connection-level debug output
+$smtp->do_debug = SMTP::DEBUG_CONNECTION;
+
+try {
+    //Connect to an SMTP server
+    if (!$smtp->connect('mail.example.com', 25)) {
+        throw new Exception('Connect failed');
+    }
+    //Say hello
+    if (!$smtp->hello(gethostname())) {
+        throw new Exception('EHLO failed: ' . $smtp->getError()['error']);
+    }
+    //Get the list of ESMTP services the server offers
+    $e = $smtp->getServerExtList();
+    //If server can do TLS encryption, use it
+    if (is_array($e) && array_key_exists('STARTTLS', $e)) {
+        $tlsok = $smtp->startTLS();
+        if (!$tlsok) {
+            throw new Exception('Failed to start encryption: ' . $smtp->getError()['error']);
+        }
+        //Repeat EHLO after STARTTLS
+        if (!$smtp->hello(gethostname())) {
+            throw new Exception('EHLO (2) failed: ' . $smtp->getError()['error']);
+        }
+        //Get new capabilities list, which will usually now include AUTH if it didn't before
+        $e = $smtp->getServerExtList();
+    }
+    //If server supports authentication, do it (even if no encryption)
+    if (is_array($e) && array_key_exists('AUTH', $e)) {
+        if ($smtp->authenticate('username', 'password')) {
+            echo "Connected ok!";
+        } else {
+            throw new Exception('Authentication failed: ' . $smtp->getError()['error']);
+        }
+    }
+} catch (Exception $e) {
+    echo 'SMTP error: ' . $e->getMessage(), "\n";
+}
+//Whatever happened, close the connection.
+$smtp->quit(true);
diff --git a/drupal/sites/all/libraries/phpmailer/examples/smtp_no_auth.phps b/drupal/sites/all/libraries/phpmailer/examples/smtp_no_auth.phps
new file mode 100644
index 0000000..b590298
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/smtp_no_auth.phps
@@ -0,0 +1,50 @@
+<?php
+/**
+ * This example shows making an SMTP connection without using authentication.
+ */
+
+//SMTP needs accurate times, and the PHP time zone MUST be set
+//This should be done in your php.ini, but this is how to do it if you don't have access to that
+date_default_timezone_set('Etc/UTC');
+
+require_once '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer;
+//Tell PHPMailer to use SMTP
+$mail->isSMTP();
+//Enable SMTP debugging
+// 0 = off (for production use)
+// 1 = client messages
+// 2 = client and server messages
+$mail->SMTPDebug = 2;
+//Ask for HTML-friendly debug output
+$mail->Debugoutput = 'html';
+//Set the hostname of the mail server
+$mail->Host = "mail.example.com";
+//Set the SMTP port number - likely to be 25, 465 or 587
+$mail->Port = 25;
+//Whether to use SMTP authentication
+$mail->SMTPAuth = false;
+//Set who the message is to be sent from
+$mail->setFrom('from at example.com', 'First Last');
+//Set an alternative reply-to address
+$mail->addReplyTo('replyto at example.com', 'First Last');
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+//Set the subject line
+$mail->Subject = 'PHPMailer SMTP without auth test';
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+//Replace the plain text body with one created manually
+$mail->AltBody = 'This is a plain-text message body';
+//Attach an image file
+$mail->addAttachment('images/phpmailer_mini.png');
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/ssl_options.phps b/drupal/sites/all/libraries/phpmailer/examples/ssl_options.phps
new file mode 100644
index 0000000..cc41495
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/ssl_options.phps
@@ -0,0 +1,74 @@
+<?php
+/**
+ * This example shows settings to use when sending over SMTP with TLS and custom connection options.
+ */
+
+//SMTP needs accurate times, and the PHP time zone MUST be set
+//This should be done in your php.ini, but this is how to do it if you don't have access to that
+date_default_timezone_set('Etc/UTC');
+
+require '../PHPMailerAutoload.php';
+
+//Create a new PHPMailer instance
+$mail = new PHPMailer;
+
+//Tell PHPMailer to use SMTP
+$mail->isSMTP();
+
+//Enable SMTP debugging
+// 0 = off (for production use)
+// 1 = client messages
+// 2 = client and server messages
+$mail->SMTPDebug = 2;
+
+//Ask for HTML-friendly debug output
+$mail->Debugoutput = 'html';
+
+//Set the hostname of the mail server
+$mail->Host = 'smtp.example.com';
+
+//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
+$mail->Port = 587;
+
+//Set the encryption system to use - ssl (deprecated) or tls
+$mail->SMTPSecure = 'tls';
+
+//Custom connection options
+$mail->SMTPOptions = array (
+    'ssl' => array(
+        'verify_peer'  => true,
+        'verify_depth' => 3,
+        'allow_self_signed' => true,
+        'peer_name' => 'smtp.example.com',
+        'cafile' => '/etc/ssl/ca_cert.pem',
+    )
+);
+
+//Whether to use SMTP authentication
+$mail->SMTPAuth = true;
+
+//Username to use for SMTP authentication - use full email address for gmail
+$mail->Username = "username at example.com";
+
+//Password to use for SMTP authentication
+$mail->Password = "yourpassword";
+
+//Set who the message is to be sent from
+$mail->setFrom('from at example.com', 'First Last');
+
+//Set who the message is to be sent to
+$mail->addAddress('whoto at example.com', 'John Doe');
+
+//Set the subject line
+$mail->Subject = 'PHPMailer SMTP options test';
+
+//Read an HTML message body from an external file, convert referenced images to embedded,
+//convert HTML into a basic plain-text alternative body
+$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
+
+//send the message, check for errors
+if (!$mail->send()) {
+    echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+    echo "Message sent!";
+}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCore.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCore.css
new file mode 100644
index 0000000..3b26ae7
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCore.css
@@ -0,0 +1,46 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreDefault.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreDefault.css
new file mode 100644
index 0000000..3f15eba
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreDefault.css
@@ -0,0 +1,77 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:white !important;}
+.syntaxhighlighter .line.alt1{background-color:white !important;}
+.syntaxhighlighter .line.alt2{background-color:white !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0 !important;}
+.syntaxhighlighter .line.highlighted.number{color:black !important;}
+.syntaxhighlighter table caption{color:black !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c !important;color:white !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:blue !important;background:white !important;border:1px solid #6ce26c !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:blue !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:red !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#6ce26c !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:black !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue !important;}
+.syntaxhighlighter .keyword{color:#006699 !important;}
+.syntaxhighlighter .preprocessor{color:gray !important;}
+.syntaxhighlighter .variable{color:#aa7700 !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#ff1493 !important;}
+.syntaxhighlighter .constants{color:#0066cc !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#006699 !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
+.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreDjango.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreDjango.css
new file mode 100644
index 0000000..19c5eb4
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreDjango.css
@@ -0,0 +1,78 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:#0a2b1d !important;}
+.syntaxhighlighter .line.alt1{background-color:#0a2b1d !important;}
+.syntaxhighlighter .line.alt2{background-color:#0a2b1d !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#233729 !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:#f8f8f8 !important;}
+.syntaxhighlighter .gutter{color:#497958 !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #41a83e !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#41a83e !important;color:#0a2b1d !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#96dd3b !important;background:black !important;border:1px solid #41a83e !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#96dd3b !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:white !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#41a83e !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#ffe862 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#f8f8f8 !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#336442 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#9df39f !important;}
+.syntaxhighlighter .keyword{color:#96dd3b !important;}
+.syntaxhighlighter .preprocessor{color:#91bb9e !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#f7e741 !important;}
+.syntaxhighlighter .functions{color:#ffaa3e !important;}
+.syntaxhighlighter .constants{color:#e0e8ff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#96dd3b !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#eb939a !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#91bb9e !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#edef7d !important;}
+.syntaxhighlighter .comments{font-style:italic !important;}
+.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreEclipse.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreEclipse.css
new file mode 100644
index 0000000..fc8c59d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreEclipse.css
@@ -0,0 +1,80 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:white !important;}
+.syntaxhighlighter .line.alt1{background-color:white !important;}
+.syntaxhighlighter .line.alt2{background-color:white !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#c3defe !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:black !important;}
+.syntaxhighlighter .gutter{color:#787878 !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #d4d0c8 !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#d4d0c8 !important;color:white !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#3f5fbf !important;background:white !important;border:1px solid #d4d0c8 !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#3f5fbf !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#aa7700 !important;}
+.syntaxhighlighter .toolbar{color:#a0a0a0 !important;background:#d4d0c8 !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:#a0a0a0 !important;}
+.syntaxhighlighter .toolbar a:hover{color:red !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#3f5fbf !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#2a00ff !important;}
+.syntaxhighlighter .keyword{color:#7f0055 !important;}
+.syntaxhighlighter .preprocessor{color:#646464 !important;}
+.syntaxhighlighter .variable{color:#aa7700 !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#ff1493 !important;}
+.syntaxhighlighter .constants{color:#0066cc !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#7f0055 !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
+.syntaxhighlighter .keyword{font-weight:bold !important;}
+.syntaxhighlighter .xml .keyword{color:#3f7f7f !important;font-weight:normal !important;}
+.syntaxhighlighter .xml .color1,.syntaxhighlighter .xml .color1 a{color:#7f007f !important;}
+.syntaxhighlighter .xml .string{font-style:italic !important;color:#2a00ff !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreEmacs.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreEmacs.css
new file mode 100644
index 0000000..4fbd325
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreEmacs.css
@@ -0,0 +1,76 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:black !important;}
+.syntaxhighlighter .line.alt1{background-color:black !important;}
+.syntaxhighlighter .line.alt2{background-color:black !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2a3133 !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:#d3d3d3 !important;}
+.syntaxhighlighter .gutter{color:#d3d3d3 !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #990000 !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#990000 !important;color:black !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#ebdb8d !important;background:black !important;border:1px solid #990000 !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#ebdb8d !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#ff7d27 !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#990000 !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d3d3d3 !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#ff7d27 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#ff9e7b !important;}
+.syntaxhighlighter .keyword{color:aqua !important;}
+.syntaxhighlighter .preprocessor{color:#aec4de !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#81cef9 !important;}
+.syntaxhighlighter .constants{color:#ff9e7b !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:aqua !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ebdb8d !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff7d27 !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#aec4de !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreFadeToGrey.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreFadeToGrey.css
new file mode 100644
index 0000000..398d6ee
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreFadeToGrey.css
@@ -0,0 +1,77 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:#121212 !important;}
+.syntaxhighlighter .line.alt1{background-color:#121212 !important;}
+.syntaxhighlighter .line.alt2{background-color:#121212 !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2c2c29 !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:white !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #3185b9 !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#3185b9 !important;color:#121212 !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#3185b9 !important;background:black !important;border:1px solid #3185b9 !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#3185b9 !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#d01d33 !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#3185b9 !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#96daff !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:white !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#696854 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#e3e658 !important;}
+.syntaxhighlighter .keyword{color:#d01d33 !important;}
+.syntaxhighlighter .preprocessor{color:#435a5f !important;}
+.syntaxhighlighter .variable{color:#898989 !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#aaaaaa !important;}
+.syntaxhighlighter .constants{color:#96daff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#d01d33 !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ffc074 !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#4a8cdb !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#96daff !important;}
+.syntaxhighlighter .functions{font-weight:bold !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreMDUltra.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreMDUltra.css
new file mode 100644
index 0000000..87a3cc2
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreMDUltra.css
@@ -0,0 +1,76 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:#222222 !important;}
+.syntaxhighlighter .line.alt1{background-color:#222222 !important;}
+.syntaxhighlighter .line.alt2{background-color:#222222 !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:lime !important;}
+.syntaxhighlighter .gutter{color:#38566f !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#222222 !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:lime !important;}
+.syntaxhighlighter .toolbar{color:#aaaaff !important;background:#435a5f !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:#aaaaff !important;}
+.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:lime !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:lime !important;}
+.syntaxhighlighter .keyword{color:#aaaaff !important;}
+.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
+.syntaxhighlighter .variable{color:aqua !important;}
+.syntaxhighlighter .value{color:#f7e741 !important;}
+.syntaxhighlighter .functions{color:#ff8000 !important;}
+.syntaxhighlighter .constants{color:yellow !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#aaaaff !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:red !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:yellow !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreMidnight.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreMidnight.css
new file mode 100644
index 0000000..3c02103
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreMidnight.css
@@ -0,0 +1,76 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:#0f192a !important;}
+.syntaxhighlighter .line.alt1{background-color:#0f192a !important;}
+.syntaxhighlighter .line.alt2{background-color:#0f192a !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
+.syntaxhighlighter .line.highlighted.number{color:#38566f !important;}
+.syntaxhighlighter table caption{color:#d1edff !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#0f192a !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#1dc116 !important;}
+.syntaxhighlighter .toolbar{color:#d1edff !important;background:#435a5f !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:#d1edff !important;}
+.syntaxhighlighter .toolbar a:hover{color:#8aa6c1 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d1edff !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#1dc116 !important;}
+.syntaxhighlighter .keyword{color:#b43d3d !important;}
+.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#f7e741 !important;}
+.syntaxhighlighter .functions{color:#ffaa3e !important;}
+.syntaxhighlighter .constants{color:#e0e8ff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#b43d3d !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#f8bb00 !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreRDark.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreRDark.css
new file mode 100644
index 0000000..f5b7b47
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shCoreRDark.css
@@ -0,0 +1,76 @@
+.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line- [...]
+.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
+.syntaxhighlighter.source{overflow:hidden !important;}
+.syntaxhighlighter .bold{font-weight:bold !important;}
+.syntaxhighlighter .italic{font-style:italic !important;}
+.syntaxhighlighter .line{white-space:pre !important;}
+.syntaxhighlighter table{width:100% !important;}
+.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
+.syntaxhighlighter table td.code{width:100% !important;}
+.syntaxhighlighter table td.code .container{position:relative !important;}
+.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
+.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
+.syntaxhighlighter table td.code .line{padding:0 1em !important;}
+.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
+.syntaxhighlighter.show{display:block !important;}
+.syntaxhighlighter.collapsed table{display:none !important;}
+.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
+.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
+.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
+.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
+.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
+.syntaxhighlighter .toolbar span.title{display:inline !important;}
+.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
+.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
+.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
+.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
+.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
+.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
+.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
+.syntaxhighlighter.printing .line .content{color:black !important;}
+.syntaxhighlighter.printing .toolbar{display:none !important;}
+.syntaxhighlighter.printing a{text-decoration:none !important;}
+.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
+.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
+.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
+.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
+.syntaxhighlighter.printing .preprocessor{color:gray !important;}
+.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
+.syntaxhighlighter.printing .value{color:#009900 !important;}
+.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
+.syntaxhighlighter.printing .constants{color:#0066cc !important;}
+.syntaxhighlighter.printing .script{font-weight:bold !important;}
+.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
+.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
+.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
+.syntaxhighlighter{background-color:#1b2426 !important;}
+.syntaxhighlighter .line.alt1{background-color:#1b2426 !important;}
+.syntaxhighlighter .line.alt2{background-color:#1b2426 !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#323e41 !important;}
+.syntaxhighlighter .line.highlighted.number{color:#b9bdb6 !important;}
+.syntaxhighlighter table caption{color:#b9bdb6 !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#1b2426 !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#5ba1cf !important;background:black !important;border:1px solid #435a5f !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#5ba1cf !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#5ce638 !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#435a5f !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#e0e8ff !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#b9bdb6 !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#878a85 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#5ce638 !important;}
+.syntaxhighlighter .keyword{color:#5ba1cf !important;}
+.syntaxhighlighter .preprocessor{color:#435a5f !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#ffaa3e !important;}
+.syntaxhighlighter .constants{color:#e0e8ff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#5ba1cf !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#e0e8ff !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeAppleScript.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeAppleScript.css
new file mode 100644
index 0000000..7881bad
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeAppleScript.css
@@ -0,0 +1,21 @@
+.syntaxhighlighter.applescript{background:white;font-size:1em;color:black;}
+.syntaxhighlighter.applescript div,.syntaxhighlighter.applescript code{font:1em/1.25 Verdana,sans-serif !important;}
+.syntaxhighlighter.applescript .code .line{overflow:hidden !important;}
+.syntaxhighlighter.applescript .code .line.highlighted{background:#b5d5ff !important;}
+.syntaxhighlighter.applescript .color1{color:#000000 !important;}
+.syntaxhighlighter.applescript .color2{color:#000000 !important;}
+.syntaxhighlighter.applescript .color3{color:#000000 !important;font-weight:bold !important;}
+.syntaxhighlighter.applescript .keyword{color:#000000 !important;font-weight:bold !important;}
+.syntaxhighlighter.applescript .color4{color:#0000ff !important;font-style:italic !important;}
+.syntaxhighlighter.applescript .comments{color:#4c4d4d !important;}
+.syntaxhighlighter.applescript .plain{color:#408000 !important;}
+.syntaxhighlighter.applescript .string{color:#000000 !important;}
+.syntaxhighlighter.applescript .commandNames{color:#0000ff !important;font-weight:bold !important;}
+.syntaxhighlighter.applescript .parameterNames{color:#0000ff !important;}
+.syntaxhighlighter.applescript .classes{color:#0000ff !important;font-style:italic !important;}
+.syntaxhighlighter.applescript .properties{color:#6c04d4 !important;}
+.syntaxhighlighter.applescript .enumeratedValues{color:#4a1e7f !important;}
+.syntaxhighlighter.applescript .additionCommandNames{color:#0016b0 !important;font-weight:bold !important;}
+.syntaxhighlighter.applescript .additionParameterNames{color:#0016b0 !important;}
+.syntaxhighlighter.applescript .additionClasses{color:#0016b0 !important;font-style:italic !important;}
+.syntaxhighlighter.applescript .spaces{display:inline-block;height:0 !important;font-size:1.75em !important;line-height:0 !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeDefault.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeDefault.css
new file mode 100644
index 0000000..8034517
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeDefault.css
@@ -0,0 +1,31 @@
+.syntaxhighlighter{background-color:white !important;}
+.syntaxhighlighter .line.alt1{background-color:white !important;}
+.syntaxhighlighter .line.alt2{background-color:white !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0 !important;}
+.syntaxhighlighter .line.highlighted.number{color:black !important;}
+.syntaxhighlighter table caption{color:black !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c !important;color:white !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:blue !important;background:white !important;border:1px solid #6ce26c !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:blue !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:red !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#6ce26c !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:black !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue !important;}
+.syntaxhighlighter .keyword{color:#006699 !important;}
+.syntaxhighlighter .preprocessor{color:gray !important;}
+.syntaxhighlighter .variable{color:#aa7700 !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#ff1493 !important;}
+.syntaxhighlighter .constants{color:#0066cc !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#006699 !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
+.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeDjango.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeDjango.css
new file mode 100644
index 0000000..5cb724f
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeDjango.css
@@ -0,0 +1,32 @@
+.syntaxhighlighter{background-color:#0a2b1d !important;}
+.syntaxhighlighter .line.alt1{background-color:#0a2b1d !important;}
+.syntaxhighlighter .line.alt2{background-color:#0a2b1d !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#233729 !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:#f8f8f8 !important;}
+.syntaxhighlighter .gutter{color:#497958 !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #41a83e !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#41a83e !important;color:#0a2b1d !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#96dd3b !important;background:black !important;border:1px solid #41a83e !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#96dd3b !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:white !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#41a83e !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#ffe862 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#f8f8f8 !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#336442 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#9df39f !important;}
+.syntaxhighlighter .keyword{color:#96dd3b !important;}
+.syntaxhighlighter .preprocessor{color:#91bb9e !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#f7e741 !important;}
+.syntaxhighlighter .functions{color:#ffaa3e !important;}
+.syntaxhighlighter .constants{color:#e0e8ff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#96dd3b !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#eb939a !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#91bb9e !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#edef7d !important;}
+.syntaxhighlighter .comments{font-style:italic !important;}
+.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeEclipse.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeEclipse.css
new file mode 100644
index 0000000..b089c5d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeEclipse.css
@@ -0,0 +1,34 @@
+.syntaxhighlighter{background-color:white !important;}
+.syntaxhighlighter .line.alt1{background-color:white !important;}
+.syntaxhighlighter .line.alt2{background-color:white !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#c3defe !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:black !important;}
+.syntaxhighlighter .gutter{color:#787878 !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #d4d0c8 !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#d4d0c8 !important;color:white !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#3f5fbf !important;background:white !important;border:1px solid #d4d0c8 !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#3f5fbf !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#aa7700 !important;}
+.syntaxhighlighter .toolbar{color:#a0a0a0 !important;background:#d4d0c8 !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:#a0a0a0 !important;}
+.syntaxhighlighter .toolbar a:hover{color:red !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#3f5fbf !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#2a00ff !important;}
+.syntaxhighlighter .keyword{color:#7f0055 !important;}
+.syntaxhighlighter .preprocessor{color:#646464 !important;}
+.syntaxhighlighter .variable{color:#aa7700 !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#ff1493 !important;}
+.syntaxhighlighter .constants{color:#0066cc !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#7f0055 !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
+.syntaxhighlighter .keyword{font-weight:bold !important;}
+.syntaxhighlighter .xml .keyword{color:#3f7f7f !important;font-weight:normal !important;}
+.syntaxhighlighter .xml .color1,.syntaxhighlighter .xml .color1 a{color:#7f007f !important;}
+.syntaxhighlighter .xml .string{font-style:italic !important;color:#2a00ff !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeEmacs.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeEmacs.css
new file mode 100644
index 0000000..a3dcfc9
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeEmacs.css
@@ -0,0 +1,30 @@
+.syntaxhighlighter{background-color:black !important;}
+.syntaxhighlighter .line.alt1{background-color:black !important;}
+.syntaxhighlighter .line.alt2{background-color:black !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2a3133 !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:#d3d3d3 !important;}
+.syntaxhighlighter .gutter{color:#d3d3d3 !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #990000 !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#990000 !important;color:black !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#ebdb8d !important;background:black !important;border:1px solid #990000 !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#ebdb8d !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#ff7d27 !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#990000 !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d3d3d3 !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#ff7d27 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#ff9e7b !important;}
+.syntaxhighlighter .keyword{color:aqua !important;}
+.syntaxhighlighter .preprocessor{color:#aec4de !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#81cef9 !important;}
+.syntaxhighlighter .constants{color:#ff9e7b !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:aqua !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ebdb8d !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff7d27 !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#aec4de !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeFadeToGrey.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeFadeToGrey.css
new file mode 100644
index 0000000..d0b1c93
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeFadeToGrey.css
@@ -0,0 +1,31 @@
+.syntaxhighlighter{background-color:#121212 !important;}
+.syntaxhighlighter .line.alt1{background-color:#121212 !important;}
+.syntaxhighlighter .line.alt2{background-color:#121212 !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2c2c29 !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:white !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #3185b9 !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#3185b9 !important;color:#121212 !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#3185b9 !important;background:black !important;border:1px solid #3185b9 !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#3185b9 !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#d01d33 !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#3185b9 !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#96daff !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:white !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#696854 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#e3e658 !important;}
+.syntaxhighlighter .keyword{color:#d01d33 !important;}
+.syntaxhighlighter .preprocessor{color:#435a5f !important;}
+.syntaxhighlighter .variable{color:#898989 !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#aaaaaa !important;}
+.syntaxhighlighter .constants{color:#96daff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#d01d33 !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ffc074 !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#4a8cdb !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#96daff !important;}
+.syntaxhighlighter .functions{font-weight:bold !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeMDUltra.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeMDUltra.css
new file mode 100644
index 0000000..6f712fd
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeMDUltra.css
@@ -0,0 +1,30 @@
+.syntaxhighlighter{background-color:#222222 !important;}
+.syntaxhighlighter .line.alt1{background-color:#222222 !important;}
+.syntaxhighlighter .line.alt2{background-color:#222222 !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
+.syntaxhighlighter .line.highlighted.number{color:white !important;}
+.syntaxhighlighter table caption{color:lime !important;}
+.syntaxhighlighter .gutter{color:#38566f !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#222222 !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:lime !important;}
+.syntaxhighlighter .toolbar{color:#aaaaff !important;background:#435a5f !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:#aaaaff !important;}
+.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:lime !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:lime !important;}
+.syntaxhighlighter .keyword{color:#aaaaff !important;}
+.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
+.syntaxhighlighter .variable{color:aqua !important;}
+.syntaxhighlighter .value{color:#f7e741 !important;}
+.syntaxhighlighter .functions{color:#ff8000 !important;}
+.syntaxhighlighter .constants{color:yellow !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#aaaaff !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:red !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:yellow !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeMidnight.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeMidnight.css
new file mode 100644
index 0000000..e9c177e
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeMidnight.css
@@ -0,0 +1,30 @@
+.syntaxhighlighter{background-color:#0f192a !important;}
+.syntaxhighlighter .line.alt1{background-color:#0f192a !important;}
+.syntaxhighlighter .line.alt2{background-color:#0f192a !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
+.syntaxhighlighter .line.highlighted.number{color:#38566f !important;}
+.syntaxhighlighter table caption{color:#d1edff !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#0f192a !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#1dc116 !important;}
+.syntaxhighlighter .toolbar{color:#d1edff !important;background:#435a5f !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:#d1edff !important;}
+.syntaxhighlighter .toolbar a:hover{color:#8aa6c1 !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d1edff !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#1dc116 !important;}
+.syntaxhighlighter .keyword{color:#b43d3d !important;}
+.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#f7e741 !important;}
+.syntaxhighlighter .functions{color:#ffaa3e !important;}
+.syntaxhighlighter .constants{color:#e0e8ff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#b43d3d !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#f8bb00 !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeRDark.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeRDark.css
new file mode 100644
index 0000000..42d8710
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeRDark.css
@@ -0,0 +1,30 @@
+.syntaxhighlighter{background-color:#1b2426 !important;}
+.syntaxhighlighter .line.alt1{background-color:#1b2426 !important;}
+.syntaxhighlighter .line.alt2{background-color:#1b2426 !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#323e41 !important;}
+.syntaxhighlighter .line.highlighted.number{color:#b9bdb6 !important;}
+.syntaxhighlighter table caption{color:#b9bdb6 !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#1b2426 !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:#5ba1cf !important;background:black !important;border:1px solid #435a5f !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:#5ba1cf !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:#5ce638 !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#435a5f !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:#e0e8ff !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#b9bdb6 !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#878a85 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#5ce638 !important;}
+.syntaxhighlighter .keyword{color:#5ba1cf !important;}
+.syntaxhighlighter .preprocessor{color:#435a5f !important;}
+.syntaxhighlighter .variable{color:#ffaa3e !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#ffaa3e !important;}
+.syntaxhighlighter .constants{color:#e0e8ff !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#5ba1cf !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#e0e8ff !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeVisualStudio.css b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeVisualStudio.css
new file mode 100644
index 0000000..8ed369f
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/examples/styles/shThemeVisualStudio.css
@@ -0,0 +1,31 @@
+.syntaxhighlighter{background-color:white !important;}
+.syntaxhighlighter .line.alt1{background-color:white !important;}
+.syntaxhighlighter .line.alt2{background-color:white !important;}
+.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0 !important;}
+.syntaxhighlighter .line.highlighted.number{color:black !important;}
+.syntaxhighlighter table caption{color:black !important;}
+.syntaxhighlighter .gutter{color:#afafaf !important;}
+.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c !important;}
+.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c !important;color:white !important;}
+.syntaxhighlighter.printing .line .content{border:none !important;}
+.syntaxhighlighter.collapsed{overflow:visible !important;}
+.syntaxhighlighter.collapsed .toolbar{color:blue !important;background:white !important;border:1px solid #6ce26c !important;}
+.syntaxhighlighter.collapsed .toolbar a{color:blue !important;}
+.syntaxhighlighter.collapsed .toolbar a:hover{color:red !important;}
+.syntaxhighlighter .toolbar{color:white !important;background:#6ce26c !important;border:none !important;}
+.syntaxhighlighter .toolbar a{color:white !important;}
+.syntaxhighlighter .toolbar a:hover{color:black !important;}
+.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
+.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200 !important;}
+.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#d11010 !important;}
+.syntaxhighlighter .keyword{color:#006699 !important;}
+.syntaxhighlighter .preprocessor{color:gray !important;}
+.syntaxhighlighter .variable{color:#aa7700 !important;}
+.syntaxhighlighter .value{color:#009900 !important;}
+.syntaxhighlighter .functions{color:#ff1493 !important;}
+.syntaxhighlighter .constants{color:#0066cc !important;}
+.syntaxhighlighter .script{font-weight:bold !important;color:#006699 !important;background-color:none !important;}
+.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
+.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
+.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
+.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/drupal/sites/all/libraries/phpmailer/examples/styles/wrapping.png b/drupal/sites/all/libraries/phpmailer/examples/styles/wrapping.png
new file mode 100644
index 0000000..6972c5e
Binary files /dev/null and b/drupal/sites/all/libraries/phpmailer/examples/styles/wrapping.png differ
diff --git a/drupal/sites/all/libraries/phpmailer/extras/EasyPeasyICS.php b/drupal/sites/all/libraries/phpmailer/extras/EasyPeasyICS.php
new file mode 100644
index 0000000..d8bfcfa
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/extras/EasyPeasyICS.php
@@ -0,0 +1,148 @@
+<?php
+/**
+ * EasyPeasyICS Simple ICS/vCal data generator.
+ * @author Marcus Bointon <phpmailer at synchromedia.co.uk>
+ * @author Manuel Reinhard <manu at sprain.ch>
+ *
+ * Built with inspiration from
+ * http://stackoverflow.com/questions/1463480/how-can-i-use-php-to-dynamically-publish-an-ical-file-to-be-read-by-google-calend/1464355#1464355
+ * History:
+ * 2010/12/17 - Manuel Reinhard - when it all started
+ * 2014 PHPMailer project becomes maintainer
+ */
+
+/**
+ * Class EasyPeasyICS.
+ * Simple ICS data generator
+ * @package phpmailer
+ * @subpackage easypeasyics
+ */
+class EasyPeasyICS
+{
+    /**
+     * The name of the calendar
+     * @var string
+     */
+    protected $calendarName;
+    /**
+     * The array of events to add to this calendar
+     * @var array
+     */
+    protected $events = array();
+
+    /**
+     * Constructor
+     * @param string $calendarName
+     */
+    public function __construct($calendarName = "")
+    {
+        $this->calendarName = $calendarName;
+    }
+
+    /**
+     * Add an event to this calendar.
+     * @param string $start The start date and time as a unix timestamp
+     * @param string $end The end date and time as a unix timestamp
+     * @param string $summary A summary or title for the event
+     * @param string $description A description of the event
+     * @param string $url A URL for the event
+     * @param string $uid A unique identifier for the event - generated automatically if not provided
+     * @return array An array of event details, including any generated UID
+     */
+    public function addEvent($start, $end, $summary = '', $description = '', $url = '', $uid = '')
+    {
+        if (empty($uid)) {
+            $uid = md5(uniqid(mt_rand(), true)) . '@EasyPeasyICS';
+        }
+        $event = array(
+            'start' => gmdate('Ymd', $start) . 'T' . gmdate('His', $start) . 'Z',
+            'end' => gmdate('Ymd', $end) . 'T' . gmdate('His', $end) . 'Z',
+            'summary' => $summary,
+            'description' => $description,
+            'url' => $url,
+            'uid' => $uid
+        );
+        $this->events[] = $event;
+        return $event;
+    }
+
+    /**
+     * @return array Get the array of events.
+     */
+    public function getEvents()
+    {
+        return $this->events;
+    }
+
+    /**
+     * Clear all events.
+     */
+    public function clearEvents()
+    {
+        $this->events = array();
+    }
+
+    /**
+     * Get the name of the calendar.
+     * @return string
+     */
+    public function getName()
+    {
+        return $this->calendarName;
+    }
+
+    /**
+     * Set the name of the calendar.
+     * @param $name
+     */
+    public function setName($name)
+    {
+        $this->calendarName = $name;
+    }
+
+    /**
+     * Render and optionally output a vcal string.
+     * @param bool $output Whether to output the calendar data directly (the default).
+     * @return string The complete rendered vlal
+     */
+    public function render($output = true)
+    {
+        //Add header
+        $ics = 'BEGIN:VCALENDAR
+METHOD:PUBLISH
+VERSION:2.0
+X-WR-CALNAME:' . $this->calendarName . '
+PRODID:-//hacksw/handcal//NONSGML v1.0//EN';
+
+        //Add events
+        foreach ($this->events as $event) {
+            $ics .= '
+BEGIN:VEVENT
+UID:' . $event['uid'] . '
+DTSTAMP:' . gmdate('Ymd') . 'T' . gmdate('His') . 'Z
+DTSTART:' . $event['start'] . '
+DTEND:' . $event['end'] . '
+SUMMARY:' . str_replace("\n", "\\n", $event['summary']) . '
+DESCRIPTION:' . str_replace("\n", "\\n", $event['description']) . '
+URL;VALUE=URI:' . $event['url'] . '
+END:VEVENT';
+        }
+
+        //Add footer
+        $ics .= '
+END:VCALENDAR';
+
+        if ($output) {
+            //Output
+            $filename = $this->calendarName;
+            //Filename needs quoting if it contains spaces
+            if (strpos($filename, ' ') !== false) {
+                $filename = '"'.$filename.'"';
+            }
+            header('Content-type: text/calendar; charset=utf-8');
+            header('Content-Disposition: inline; filename=' . $filename . '.ics');
+            echo $ics;
+        }
+        return $ics;
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/extras/README.md b/drupal/sites/all/libraries/phpmailer/extras/README.md
new file mode 100644
index 0000000..dac79e0
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/extras/README.md
@@ -0,0 +1,17 @@
+#PHPMailer Extras
+
+These classes provide optional additional functions to PHPMailer.
+
+These are not loaded by the PHPMailer autoloader, so in some cases you may need to `require` them yourself before using them.
+
+##EasyPeasyICS
+
+This class was originally written by Manuel Reinhard and provides a simple means of generating ICS/vCal files that are used in sending calendar events. PHPMailer does not use it directly, but you can use it to generate content appropriate for placing in the `Ical` property of PHPMailer. The PHPMailer project is now its official home as Manuel has given permission for that and is no longer maintaining it himself.
+
+##htmlfilter
+
+This class by Konstantin Riabitsev and Jim Jagielski implements HTML filtering to remove potentially malicious tags, such as `<script>` or `onclick=` attributes that can result in XSS attacks. This is a simple filter and is not as comprehensive as [HTMLawed](http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/) or [HTMLPurifier](http://htmlpurifier.org), but it's easier to use and considerably better than nothing! PHPMailer does not use it directly, but you may want to a [...]
+
+##NTLM_SASL_client
+
+This class by Manuel Lemos (bundled with permission) adds the ability to authenticate with Microsoft Windows mail servers that use NTLM-based authentication. It is used by PHPMailer if you send via SMTP and set the `AuthType` property to `NTLM`; you will also need to use the `Realm` and `Workstation` properties. The original source is [here](http://www.phpclasses.org/browse/file/7495.html).
diff --git a/drupal/sites/all/libraries/phpmailer/extras/htmlfilter.php b/drupal/sites/all/libraries/phpmailer/extras/htmlfilter.php
new file mode 100644
index 0000000..7727487
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/extras/htmlfilter.php
@@ -0,0 +1,1159 @@
+<?php
+/**
+ * htmlfilter.inc
+ * ---------------
+ * This set of functions allows you to filter html in order to remove
+ * any malicious tags from it. Useful in cases when you need to filter
+ * user input for any cross-site-scripting attempts.
+ *
+ * Copyright (C) 2002-2004 by Duke University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301  USA
+ *
+ * @Author	Konstantin Riabitsev <icon at linux.duke.edu>
+ * @Author  Jim Jagielski <jim at jaguNET.com / jimjag at gmail.com>
+ * @Version 1.1 ($Date$)
+ */
+
+/**
+ * This function returns the final tag out of the tag name, an array
+ * of attributes, and the type of the tag. This function is called by
+ * tln_sanitize internally.
+ *
+ * @param string $tagname the name of the tag.
+ * @param array $attary the array of attributes and their values
+ * @param integer $tagtype The type of the tag (see in comments).
+ * @return string A string with the final tag representation.
+ */
+function tln_tagprint($tagname, $attary, $tagtype)
+{
+    if ($tagtype == 2) {
+        $fulltag = '</' . $tagname . '>';
+    } else {
+        $fulltag = '<' . $tagname;
+        if (is_array($attary) && sizeof($attary)) {
+            $atts = array();
+            while (list($attname, $attvalue) = each($attary)) {
+                array_push($atts, "$attname=$attvalue");
+            }
+            $fulltag .= ' ' . join(' ', $atts);
+        }
+        if ($tagtype == 3) {
+            $fulltag .= ' /';
+        }
+        $fulltag .= '>';
+    }
+    return $fulltag;
+}
+
+/**
+ * A small helper function to use with array_walk. Modifies a by-ref
+ * value and makes it lowercase.
+ *
+ * @param string $val a value passed by-ref.
+ * @return		void since it modifies a by-ref value.
+ */
+function tln_casenormalize(&$val)
+{
+    $val = strtolower($val);
+}
+
+/**
+ * This function skips any whitespace from the current position within
+ * a string and to the next non-whitespace value.
+ *
+ * @param string $body the string
+ * @param integer $offset the offset within the string where we should start
+ *				   looking for the next non-whitespace character.
+ * @return integer          the location within the $body where the next
+ *				   non-whitespace char is located.
+ */
+function tln_skipspace($body, $offset)
+{
+    preg_match('/^(\s*)/s', substr($body, $offset), $matches);
+    if (sizeof($matches[1])) {
+        $count = strlen($matches[1]);
+        $offset += $count;
+    }
+    return $offset;
+}
+
+/**
+ * This function looks for the next character within a string.	It's
+ * really just a glorified "strpos", except it catches the failures
+ * nicely.
+ *
+ * @param string $body   The string to look for needle in.
+ * @param integer $offset Start looking from this position.
+ * @param string $needle The character/string to look for.
+ * @return integer           location of the next occurrence of the needle, or
+ *				   strlen($body) if needle wasn't found.
+ */
+function tln_findnxstr($body, $offset, $needle)
+{
+    $pos = strpos($body, $needle, $offset);
+    if ($pos === false) {
+        $pos = strlen($body);
+    }
+    return $pos;
+}
+
+/**
+ * This function takes a PCRE-style regexp and tries to match it
+ * within the string.
+ *
+ * @param string $body   The string to look for needle in.
+ * @param integer $offset Start looking from here.
+ * @param string $reg       A PCRE-style regex to match.
+ * @return array|boolean  Returns a false if no matches found, or an array
+ *				   with the following members:
+ *				   - integer with the location of the match within $body
+ *				   - string with whatever content between offset and the match
+ *				   - string with whatever it is we matched
+ */
+function tln_findnxreg($body, $offset, $reg)
+{
+    $matches = array();
+    $retarr = array();
+    $preg_rule = '%^(.*?)(' . $reg . ')%s';
+    preg_match($preg_rule, substr($body, $offset), $matches);
+    if (!isset($matches[0]) || !$matches[0]) {
+        $retarr = false;
+    } else {
+        $retarr[0] = $offset + strlen($matches[1]);
+        $retarr[1] = $matches[1];
+        $retarr[2] = $matches[2];
+    }
+    return $retarr;
+}
+
+/**
+ * This function looks for the next tag.
+ *
+ * @param string $body   String where to look for the next tag.
+ * @param integer $offset Start looking from here.
+ * @return array|boolean false if no more tags exist in the body, or
+ *				   an array with the following members:
+ *				   - string with the name of the tag
+ *				   - array with attributes and their values
+ *				   - integer with tag type (1, 2, or 3)
+ *				   - integer where the tag starts (starting "<")
+ *				   - integer where the tag ends (ending ">")
+ *				   first three members will be false, if the tag is invalid.
+ */
+function tln_getnxtag($body, $offset)
+{
+    if ($offset > strlen($body)) {
+        return false;
+    }
+    $lt = tln_findnxstr($body, $offset, '<');
+    if ($lt == strlen($body)) {
+        return false;
+    }
+    /**
+     * We are here:
+     * blah blah <tag attribute="value">
+     * \---------^
+     */
+    $pos = tln_skipspace($body, $lt + 1);
+    if ($pos >= strlen($body)) {
+        return array(false, false, false, $lt, strlen($body));
+    }
+    /**
+     * There are 3 kinds of tags:
+     * 1. Opening tag, e.g.:
+     *	  <a href="blah">
+     * 2. Closing tag, e.g.:
+     *	  </a>
+     * 3. XHTML-style content-less tag, e.g.:
+     *	  <img src="blah"/>
+     */
+    switch (substr($body, $pos, 1)) {
+    case '/':
+        $tagtype = 2;
+        $pos++;
+        break;
+    case '!':
+        /**
+         * A comment or an SGML declaration.
+         */
+            if (substr($body, $pos + 1, 2) == '--') {
+            $gt = strpos($body, '-->', $pos);
+            if ($gt === false) {
+                $gt = strlen($body);
+            } else {
+                $gt += 2;
+            }
+            return array(false, false, false, $lt, $gt);
+        } else {
+            $gt = tln_findnxstr($body, $pos, '>');
+            return array(false, false, false, $lt, $gt);
+        }
+        break;
+    default:
+        /**
+         * Assume tagtype 1 for now. If it's type 3, we'll switch values
+         * later.
+         */
+        $tagtype = 1;
+        break;
+    }
+
+    /**
+     * Look for next [\W-_], which will indicate the end of the tag name.
+     */
+    $regary = tln_findnxreg($body, $pos, '[^\w\-_]');
+    if ($regary == false) {
+        return array(false, false, false, $lt, strlen($body));
+    }
+    list($pos, $tagname, $match) = $regary;
+    $tagname = strtolower($tagname);
+
+    /**
+     * $match can be either of these:
+     * '>'	indicating the end of the tag entirely.
+     * '\s' indicating the end of the tag name.
+     * '/'	indicating that this is type-3 xhtml tag.
+     *
+     * Whatever else we find there indicates an invalid tag.
+     */
+    switch ($match) {
+    case '/':
+        /**
+         * This is an xhtml-style tag with a closing / at the
+         * end, like so: <img src="blah"/>. Check if it's followed
+         * by the closing bracket. If not, then this tag is invalid
+         */
+        if (substr($body, $pos, 2) == '/>') {
+            $pos++;
+            $tagtype = 3;
+        } else {
+            $gt = tln_findnxstr($body, $pos, '>');
+            $retary = array(false, false, false, $lt, $gt);
+            return $retary;
+        }
+            //intentional fall-through
+    case '>':
+        return array($tagname, false, $tagtype, $lt, $pos);
+        break;
+    default:
+        /**
+         * Check if it's whitespace
+         */
+        if (!preg_match('/\s/', $match)) {
+            /**
+             * This is an invalid tag! Look for the next closing ">".
+             */
+            $gt = tln_findnxstr($body, $lt, '>');
+            return array(false, false, false, $lt, $gt);
+        }
+        break;
+    }
+
+    /**
+     * At this point we're here:
+     * <tagname	 attribute='blah'>
+     * \-------^
+     *
+     * At this point we loop in order to find all attributes.
+     */
+    $attary = array();
+
+    while ($pos <= strlen($body)) {
+        $pos = tln_skipspace($body, $pos);
+        if ($pos == strlen($body)) {
+            /**
+             * Non-closed tag.
+             */
+            return array(false, false, false, $lt, $pos);
+        }
+        /**
+         * See if we arrived at a ">" or "/>", which means that we reached
+         * the end of the tag.
+         */
+        $matches = array();
+        if (preg_match('%^(\s*)(>|/>)%s', substr($body, $pos), $matches)) {
+            /**
+             * Yep. So we did.
+             */
+            $pos += strlen($matches[1]);
+            if ($matches[2] == '/>') {
+                $tagtype = 3;
+                $pos++;
+            }
+            return array($tagname, $attary, $tagtype, $lt, $pos);
+        }
+
+        /**
+         * There are several types of attributes, with optional
+         * [:space:] between members.
+         * Type 1:
+         *	 attrname[:space:]=[:space:]'CDATA'
+         * Type 2:
+         *	 attrname[:space:]=[:space:]"CDATA"
+         * Type 3:
+         *	 attr[:space:]=[:space:]CDATA
+         * Type 4:
+         *	 attrname
+         *
+         * We leave types 1 and 2 the same, type 3 we check for
+         * '"' and convert to "&quot" if needed, then wrap in
+         * double quotes. Type 4 we convert into:
+         * attrname="yes".
+         */
+        $regary = tln_findnxreg($body, $pos, '[^\w\-_]');
+        if ($regary == false) {
+            /**
+             * Looks like body ended before the end of tag.
+             */
+            return array(false, false, false, $lt, strlen($body));
+        }
+        list($pos, $attname, $match) = $regary;
+        $attname = strtolower($attname);
+        /**
+         * We arrived at the end of attribute name. Several things possible
+         * here:
+         * '>'	means the end of the tag and this is attribute type 4
+         * '/'	if followed by '>' means the same thing as above
+         * '\s' means a lot of things -- look what it's followed by.
+         *		anything else means the attribute is invalid.
+         */
+        switch ($match) {
+        case '/':
+            /**
+             * This is an xhtml-style tag with a closing / at the
+             * end, like so: <img src="blah"/>. Check if it's followed
+             * by the closing bracket. If not, then this tag is invalid
+             */
+            if (substr($body, $pos, 2) == '/>') {
+                $pos++;
+                $tagtype = 3;
+            } else {
+                $gt = tln_findnxstr($body, $pos, '>');
+                $retary = array(false, false, false, $lt, $gt);
+                return $retary;
+            }
+                //intentional fall-through
+        case '>':
+            $attary{$attname} = '"yes"';
+            return array($tagname, $attary, $tagtype, $lt, $pos);
+            break;
+        default:
+            /**
+             * Skip whitespace and see what we arrive at.
+             */
+            $pos = tln_skipspace($body, $pos);
+            $char = substr($body, $pos, 1);
+            /**
+             * Two things are valid here:
+             * '=' means this is attribute type 1 2 or 3.
+             * \w means this was attribute type 4.
+             * anything else we ignore and re-loop. End of tag and
+             * invalid stuff will be caught by our checks at the beginning
+             * of the loop.
+             */
+            if ($char == '=') {
+                $pos++;
+                $pos = tln_skipspace($body, $pos);
+                /**
+                 * Here are 3 possibilities:
+                 * "'"	attribute type 1
+                 * '"'	attribute type 2
+                 * everything else is the content of tag type 3
+                 */
+                $quot = substr($body, $pos, 1);
+                if ($quot == '\'') {
+                        $regary = tln_findnxreg($body, $pos + 1, '\'');
+                    if ($regary == false) {
+                        return array(false, false, false, $lt, strlen($body));
+                    }
+                    list($pos, $attval, $match) = $regary;
+                    $pos++;
+                    $attary{$attname} = '\'' . $attval . '\'';
+                } elseif ($quot == '"') {
+                    $regary = tln_findnxreg($body, $pos + 1, '\"');
+                    if ($regary == false) {
+                        return array(false, false, false, $lt, strlen($body));
+                    }
+                    list($pos, $attval, $match) = $regary;
+                    $pos++;
+                            $attary{$attname} = '"' . $attval . '"';
+                } else {
+                    /**
+                     * These are hateful. Look for \s, or >.
+                     */
+                    $regary = tln_findnxreg($body, $pos, '[\s>]');
+                    if ($regary == false) {
+                        return array(false, false, false, $lt, strlen($body));
+                    }
+                    list($pos, $attval, $match) = $regary;
+                    /**
+                     * If it's ">" it will be caught at the top.
+                     */
+                    $attval = preg_replace('/\"/s', '"', $attval);
+                    $attary{$attname} = '"' . $attval . '"';
+                }
+            } elseif (preg_match('|[\w/>]|', $char)) {
+                /**
+                 * That was attribute type 4.
+                 */
+                $attary{$attname} = '"yes"';
+            } else {
+                /**
+                 * An illegal character. Find next '>' and return.
+                 */
+                $gt = tln_findnxstr($body, $pos, '>');
+                return array(false, false, false, $lt, $gt);
+            }
+            break;
+        }
+    }
+    /**
+     * The fact that we got here indicates that the tag end was never
+     * found. Return invalid tag indication so it gets stripped.
+     */
+    return array(false, false, false, $lt, strlen($body));
+}
+
+/**
+ * Translates entities into literal values so they can be checked.
+ *
+ * @param string $attvalue the by-ref value to check.
+ * @param string $regex    the regular expression to check against.
+ * @param boolean $hex        whether the entites are hexadecimal.
+ * @return boolean            True or False depending on whether there were matches.
+ */
+function tln_deent(&$attvalue, $regex, $hex = false)
+{
+    preg_match_all($regex, $attvalue, $matches);
+    if (is_array($matches) && sizeof($matches[0]) > 0) {
+        $repl = array();
+        for ($i = 0; $i < sizeof($matches[0]); $i++) {
+            $numval = $matches[1][$i];
+            if ($hex) {
+                $numval = hexdec($numval);
+            }
+            $repl{$matches[0][$i]} = chr($numval);
+        }
+        $attvalue = strtr($attvalue, $repl);
+        return true;
+    } else {
+        return false;
+    }
+}
+
+/**
+ * This function checks attribute values for entity-encoded values
+ * and returns them translated into 8-bit strings so we can run
+ * checks on them.
+ *
+ * @param string $attvalue A string to run entity check against.
+ */
+function tln_defang(&$attvalue)
+{
+    /**
+     * Skip this if there aren't ampersands or backslashes.
+     */
+    if (strpos($attvalue, '&') === false
+        && strpos($attvalue, '\\') === false
+    ) {
+        return;
+    }
+    do {
+        $m = false;
+        $m = $m || tln_deent($attvalue, '/\&#0*(\d+);*/s');
+        $m = $m || tln_deent($attvalue, '/\&#x0*((\d|[a-f])+);*/si', true);
+        $m = $m || tln_deent($attvalue, '/\\\\(\d+)/s', true);
+    } while ($m == true);
+    $attvalue = stripslashes($attvalue);
+}
+
+/**
+ * Kill any tabs, newlines, or carriage returns. Our friends the
+ * makers of the browser with 95% market value decided that it'd
+ * be funny to make "java[tab]script" be just as good as "javascript".
+ *
+ * @param string $attvalue     The attribute value before extraneous spaces removed.
+ */
+function tln_unspace(&$attvalue)
+{
+    if (strcspn($attvalue, "\t\r\n\0 ") != strlen($attvalue)) {
+        $attvalue = str_replace(
+            array("\t", "\r", "\n", "\0", " "),
+            array('', '', '', '', ''),
+            $attvalue
+        );
+    }
+}
+
+/**
+ * This function runs various checks against the attributes.
+ *
+ * @param string $tagname            String with the name of the tag.
+ * @param array $attary            Array with all tag attributes.
+ * @param array $rm_attnames        See description for tln_sanitize
+ * @param array $bad_attvals        See description for tln_sanitize
+ * @param array $add_attr_to_tag See description for tln_sanitize
+ * @param string $trans_image_path
+ * @param boolean $block_external_images
+ * @return array with modified attributes.
+ */
+function tln_fixatts(
+    $tagname,
+    $attary,
+    $rm_attnames,
+    $bad_attvals,
+    $add_attr_to_tag,
+    $trans_image_path,
+    $block_external_images
+) {
+    while (list($attname, $attvalue) = each($attary)) {
+        /**
+         * See if this attribute should be removed.
+         */
+        foreach ($rm_attnames as $matchtag => $matchattrs) {
+            if (preg_match($matchtag, $tagname)) {
+                foreach ($matchattrs as $matchattr) {
+                    if (preg_match($matchattr, $attname)) {
+                        unset($attary{$attname});
+                        continue;
+                    }
+                }
+            }
+        }
+        /**
+         * Remove any backslashes, entities, or extraneous whitespace.
+         */
+        $oldattvalue = $attvalue;
+        tln_defang($attvalue);
+        if ($attname == 'style' && $attvalue !== $oldattvalue) {
+            $attvalue = "idiocy";
+            $attary{$attname} = $attvalue;
+        }
+        tln_unspace($attvalue);
+
+        /**
+         * Now let's run checks on the attvalues.
+         * I don't expect anyone to comprehend this. If you do,
+         * get in touch with me so I can drive to where you live and
+         * shake your hand personally. :)
+         */
+        foreach ($bad_attvals as $matchtag => $matchattrs) {
+            if (preg_match($matchtag, $tagname)) {
+                foreach ($matchattrs as $matchattr => $valary) {
+                    if (preg_match($matchattr, $attname)) {
+                        /**
+                         * There are two arrays in valary.
+                         * First is matches.
+                         * Second one is replacements
+                         */
+                        list($valmatch, $valrepl) = $valary;
+                        $newvalue = preg_replace($valmatch, $valrepl, $attvalue);
+                        if ($newvalue != $attvalue) {
+                            $attary{$attname} = $newvalue;
+                            $attvalue = $newvalue;
+                        }
+                    }
+                }
+            }
+        }
+        if ($attname == 'style') {
+            if (preg_match('/[\0-\37\200-\377]+/', $attvalue)) {
+                $attary{$attname} = '"disallowed character"';
+            }
+            preg_match_all("/url\s*\((.+)\)/si", $attvalue, $aMatch);
+            if (count($aMatch)) {
+                foreach($aMatch[1] as $sMatch) {
+                    $urlvalue = $sMatch;
+                    tln_fixurl($attname, $urlvalue, $trans_image_path, $block_external_images);
+                    $attary{$attname} = str_replace($sMatch, $urlvalue, $attvalue);
+                }
+            }
+        }
+     }
+    /**
+     * See if we need to append any attributes to this tag.
+     */
+    foreach ($add_attr_to_tag as $matchtag => $addattary) {
+        if (preg_match($matchtag, $tagname)) {
+            $attary = array_merge($attary, $addattary);
+        }
+    }
+    return $attary;
+}
+
+function tln_fixurl($attname, &$attvalue, $trans_image_path, $block_external_images)
+{
+    $sQuote = '"';
+    $attvalue = trim($attvalue);
+    if ($attvalue && ($attvalue[0] =='"'|| $attvalue[0] == "'")) {
+        // remove the double quotes
+        $sQuote = $attvalue[0];
+        $attvalue = trim(substr($attvalue,1,-1));
+    }
+
+    /**
+     * Replace empty src tags with the blank image.  src is only used
+     * for frames, images, and image inputs.  Doing a replace should
+     * not affect them working as should be, however it will stop
+     * IE from being kicked off when src for img tags are not set
+     */
+    if ($attvalue == '') {
+        $attvalue = $sQuote . $trans_image_path . $sQuote;
+    } else {
+        // first, disallow 8 bit characters and control characters
+        if (preg_match('/[\0-\37\200-\377]+/',$attvalue)) {
+            switch ($attname) {
+                case 'href':
+                    $attvalue = $sQuote . 'http://invalid-stuff-detected.example.com' . $sQuote;
+                    break;
+                default:
+                    $attvalue = $sQuote . $trans_image_path . $sQuote;
+                    break;
+            }
+        } else {
+            $aUrl = parse_url($attvalue);
+            if (isset($aUrl['scheme'])) {
+                switch(strtolower($aUrl['scheme'])) {
+                    case 'mailto':
+                    case 'http':
+                    case 'https':
+                    case 'ftp':
+                        if ($attname != 'href') {
+                            if ($block_external_images == true) {
+                                $attvalue = $sQuote . $trans_image_path . $sQuote;
+                            } else {
+                                if (!isset($aUrl['path'])) {
+                                    $attvalue = $sQuote . $trans_image_path . $sQuote;
+                                }
+                            }
+                        } else {
+                            $attvalue = $sQuote . $attvalue . $sQuote;
+                        }
+                        break;
+                    case 'outbind':
+                        $attvalue = $sQuote . $attvalue . $sQuote;
+                        break;
+                    case 'cid':
+                        $attvalue = $sQuote . $attvalue . $sQuote;
+                        break;
+                    default:
+                        $attvalue = $sQuote . $trans_image_path . $sQuote;
+                        break;
+                }
+            } else {
+                if (!isset($aUrl['path']) || $aUrl['path'] != $trans_image_path) {
+                    $$attvalue = $sQuote . $trans_image_path . $sQuote;
+                }
+            }
+        }
+    }
+}
+
+function tln_fixstyle($body, $pos, $trans_image_path, $block_external_images)
+{
+    // workaround for </style> in between comments
+    $content = '';
+    $sToken = '';
+    $bSucces = false;
+    $bEndTag = false;
+    for ($i=$pos,$iCount=strlen($body);$i<$iCount;++$i) {
+        $char = $body{$i};
+        switch ($char) {
+            case '<':
+                $sToken = $char;
+                break;
+            case '/':
+                 if ($sToken == '<') {
+                    $sToken .= $char;
+                    $bEndTag = true;
+                 } else {
+                    $content .= $char;
+                 }
+                 break;
+            case '>':
+                 if ($bEndTag) {
+                    $sToken .= $char;
+                    if (preg_match('/\<\/\s*style\s*\>/i',$sToken,$aMatch)) {
+                        $newpos = $i + 1;
+                        $bSucces = true;
+                        break 2;
+                    } else {
+                        $content .= $sToken;
+                    }
+                    $bEndTag = false;
+                 } else {
+                    $content .= $char;
+                 }
+                 break;
+            case '!':
+                if ($sToken == '<') {
+                    // possible comment
+                    if (isset($body{$i+2}) && substr($body,$i,3) == '!--') {
+                        $i = strpos($body,'-->',$i+3);
+                        if ($i === false) { // no end comment
+                            $i = strlen($body);
+                        }
+                        $sToken = '';
+                    }
+                } else {
+                    $content .= $char;
+                }
+                break;
+            default:
+                if ($bEndTag) {
+                    $sToken .= $char;
+                } else {
+                    $content .= $char;
+                }
+                break;
+        }
+    }
+    if ($bSucces == FALSE){
+        return array(FALSE, strlen($body));
+    }
+
+
+
+    /**
+     * First look for general BODY style declaration, which would be
+     * like so:
+     * body {background: blah-blah}
+     * and change it to .bodyclass so we can just assign it to a <div>
+     */
+    $content = preg_replace("|body(\s*\{.*?\})|si", ".bodyclass\\1", $content);
+
+    /**
+    * Fix url('blah') declarations.
+    */
+    //   $content = preg_replace("|url\s*\(\s*([\'\"])\s*\S+script\s*:.*?([\'\"])\s*\)|si",
+    //                           "url(\\1$trans_image_path\\2)", $content);
+
+    // first check for 8bit sequences and disallowed control characters
+    if (preg_match('/[\16-\37\200-\377]+/',$content)) {
+        $content = '<!-- style block removed by html filter due to presence of 8bit characters -->';
+        return array($content, $newpos);
+    }
+
+    // remove @import line
+    $content = preg_replace("/^\s*(@import.*)$/mi","\n<!-- @import rules forbidden -->\n",$content);
+
+    $content = preg_replace("/(\\\\)?u(\\\\)?r(\\\\)?l(\\\\)?/i", 'url', $content);
+    preg_match_all("/url\s*\((.+)\)/si",$content,$aMatch);
+    if (count($aMatch)) {
+        $aValue = $aReplace = array();
+        foreach($aMatch[1] as $sMatch) {
+            // url value
+            $urlvalue = $sMatch;
+            tln_fixurl('style',$urlvalue, $trans_image_path, $block_external_images);
+            $aValue[] = $sMatch;
+            $aReplace[] = $urlvalue;
+        }
+        $content = str_replace($aValue,$aReplace,$content);
+    }
+
+    /**
+     * Remove any backslashes, entities, and extraneous whitespace.
+     */
+    $contentTemp = $content;
+    tln_defang($contentTemp);
+    tln_unspace($contentTemp);
+
+    $match   = Array('/\/\*.*\*\//',
+                    '/expression/i',
+                    '/behaviou*r/i',
+                    '/binding/i',
+                    '/include-source/i',
+                    '/javascript/i',
+                    '/script/i',
+                    '/position/i');
+    $replace = Array('','idiocy', 'idiocy', 'idiocy', 'idiocy', 'idiocy', 'idiocy', '');
+    $contentNew = preg_replace($match, $replace, $contentTemp);
+    if ($contentNew !== $contentTemp) {
+        $content = $contentNew;
+    }
+    return array($content, $newpos);
+}
+
+function tln_body2div($attary, $trans_image_path)
+{
+    $divattary = array('class' => "'bodyclass'");
+    $text = '#000000';
+    $has_bgc_stl = $has_txt_stl = false;
+    $styledef = '';
+    if (is_array($attary) && sizeof($attary) > 0){
+        foreach ($attary as $attname=>$attvalue){
+            $quotchar = substr($attvalue, 0, 1);
+            $attvalue = str_replace($quotchar, "", $attvalue);
+            switch ($attname){
+                case 'background':
+                    $styledef .= "background-image: url('$trans_image_path'); ";
+                    break;
+                case 'bgcolor':
+                    $has_bgc_stl = true;
+                    $styledef .= "background-color: $attvalue; ";
+                    break;
+                case 'text':
+                    $has_txt_stl = true;
+                    $styledef .= "color: $attvalue; ";
+                    break;
+            }
+        }
+        // Outlook defines a white bgcolor and no text color. This can lead to
+        // white text on a white bg with certain themes.
+        if ($has_bgc_stl && !$has_txt_stl) {
+            $styledef .= "color: $text; ";
+        }
+        if (strlen($styledef) > 0){
+            $divattary{"style"} = "\"$styledef\"";
+        }
+    }
+    return $divattary;
+}
+
+/**
+ *
+ * @param string $body                    The HTML you wish to filter
+ * @param array $tag_list                see description above
+ * @param array $rm_tags_with_content see description above
+ * @param array $self_closing_tags    see description above
+ * @param boolean $force_tag_closing    see description above
+ * @param array $rm_attnames            see description above
+ * @param array $bad_attvals            see description above
+ * @param array $add_attr_to_tag        see description above
+ * @param string $trans_image_path
+ * @param boolean $block_external_images
+
+ * @return string                       Sanitized html safe to show on your pages.
+ */
+function tln_sanitize(
+    $body,
+    $tag_list,
+    $rm_tags_with_content,
+    $self_closing_tags,
+    $force_tag_closing,
+    $rm_attnames,
+    $bad_attvals,
+    $add_attr_to_tag,
+    $trans_image_path,
+    $block_external_images
+) {
+    /**
+     * Normalize rm_tags and rm_tags_with_content.
+     */
+    $rm_tags = array_shift($tag_list);
+    @array_walk($tag_list, 'tln_casenormalize');
+    @array_walk($rm_tags_with_content, 'tln_casenormalize');
+    @array_walk($self_closing_tags, 'tln_casenormalize');
+    /**
+     * See if tag_list is of tags to remove or tags to allow.
+     * false  means remove these tags
+     * true	  means allow these tags
+     */
+    $curpos = 0;
+    $open_tags = array();
+    $trusted = "<!-- begin tln_sanitized html -->\n";
+    $skip_content = false;
+    /**
+     * Take care of netscape's stupid javascript entities like
+     * &{alert('boo')};
+     */
+    $body = preg_replace('/&(\{.*?\};)/si', '&\\1', $body);
+    while (($curtag = tln_getnxtag($body, $curpos)) != false) {
+        list($tagname, $attary, $tagtype, $lt, $gt) = $curtag;
+        $free_content = substr($body, $curpos, $lt-$curpos);
+        /**
+         * Take care of <style>
+         */
+        if ($tagname == "style" && $tagtype == 1){
+            list($free_content, $curpos) =
+                tln_fixstyle($body, $gt+1, $trans_image_path, $block_external_images);
+            if ($free_content != FALSE){
+                if ( !empty($attary) ) {
+                    $attary = tln_fixatts($tagname,
+                                         $attary,
+                                         $rm_attnames,
+                                         $bad_attvals,
+                                         $add_attr_to_tag,
+                                         $trans_image_path,
+                                         $block_external_images
+                                         );
+                }
+                $trusted .= tln_tagprint($tagname, $attary, $tagtype);
+                $trusted .= $free_content;
+                $trusted .= tln_tagprint($tagname, null, 2);
+            }
+            continue;
+        }
+        if ($skip_content == false){
+            $trusted .= $free_content;
+        }
+        if ($tagname != false) {
+            if ($tagtype == 2) {
+                if ($skip_content == $tagname) {
+                    /**
+                     * Got to the end of tag we needed to remove.
+                     */
+                    $tagname = false;
+                    $skip_content = false;
+                } else {
+                    if ($skip_content == false) {
+                        if ($tagname == "body") {
+                            $tagname = "div";
+                        }
+                        if (isset($open_tags{$tagname}) &&
+                            $open_tags{$tagname} > 0
+                        ) {
+                            $open_tags{$tagname}--;
+                        } else {
+                            $tagname = false;
+                        }
+                    }
+                }
+            } else {
+                /**
+                 * $rm_tags_with_content
+                 */
+                if ($skip_content == false) {
+                    /**
+                     * See if this is a self-closing type and change
+                     * tagtype appropriately.
+                     */
+                    if ($tagtype == 1
+                        && in_array($tagname, $self_closing_tags)
+                    ) {
+                        $tagtype = 3;
+                    }
+                    /**
+                     * See if we should skip this tag and any content
+                     * inside it.
+                     */
+                    if ($tagtype == 1
+                        && in_array($tagname, $rm_tags_with_content)
+                    ) {
+                        $skip_content = $tagname;
+                    } else {
+                        if (($rm_tags == false
+                             && in_array($tagname, $tag_list)) ||
+                            ($rm_tags == true
+                                && !in_array($tagname, $tag_list))
+                        ) {
+                            $tagname = false;
+                        } else {
+                            /**
+                             * Convert body into div.
+                             */
+                            if ($tagname == "body"){
+                                $tagname = "div";
+                                $attary = tln_body2div($attary, $trans_image_path);
+                            }
+                            if ($tagtype == 1) {
+                                if (isset($open_tags{$tagname})) {
+                                    $open_tags{$tagname}++;
+                                } else {
+                                    $open_tags{$tagname} = 1;
+                                }
+                            }
+                            /**
+                             * This is where we run other checks.
+                             */
+                            if (is_array($attary) && sizeof($attary) > 0) {
+                                $attary = tln_fixatts(
+                                    $tagname,
+                                    $attary,
+                                    $rm_attnames,
+                                    $bad_attvals,
+                                    $add_attr_to_tag,
+                                    $trans_image_path,
+                                    $block_external_images
+                                );
+                            }
+                        }
+                    }
+                }
+            }
+            if ($tagname != false && $skip_content == false) {
+                $trusted .= tln_tagprint($tagname, $attary, $tagtype);
+            }
+        }
+        $curpos = $gt + 1;
+    }
+    $trusted .= substr($body, $curpos, strlen($body) - $curpos);
+    if ($force_tag_closing == true) {
+        foreach ($open_tags as $tagname => $opentimes) {
+            while ($opentimes > 0) {
+                $trusted .= '</' . $tagname . '>';
+                $opentimes--;
+            }
+        }
+        $trusted .= "\n";
+    }
+    $trusted .= "<!-- end tln_sanitized html -->\n";
+    return $trusted;
+}
+
+//
+// Use the nifty htmlfilter library
+//
+
+
+function HTMLFilter($body, $trans_image_path, $block_external_images = false)
+{
+
+    $tag_list = array(
+        false,
+        "object",
+        "meta",
+        "html",
+        "head",
+        "base",
+        "link",
+        "frame",
+        "iframe",
+        "plaintext",
+        "marquee"
+    );
+
+    $rm_tags_with_content = array(
+        "script",
+        "applet",
+        "embed",
+        "title",
+        "frameset",
+        "xmp",
+        "xml"
+    );
+
+    $self_closing_tags =  array(
+        "img",
+        "br",
+        "hr",
+        "input",
+        "outbind"
+    );
+
+    $force_tag_closing = true;
+
+    $rm_attnames = array(
+        "/.*/" =>
+            array(
+                // "/target/i",
+                "/^on.*/i",
+                "/^dynsrc/i",
+                "/^data.*/i",
+                "/^lowsrc.*/i"
+            )
+    );
+
+    $bad_attvals = array(
+        "/.*/" =>
+        array(
+            "/^src|background/i" =>
+            array(
+                array(
+                    '/^([\'"])\s*\S+script\s*:.*([\'"])/si',
+                    '/^([\'"])\s*mocha\s*:*.*([\'"])/si',
+                    '/^([\'"])\s*about\s*:.*([\'"])/si'
+                ),
+                array(
+                    "\\1$trans_image_path\\2",
+                    "\\1$trans_image_path\\2",
+                    "\\1$trans_image_path\\2"
+                )
+            ),
+            "/^href|action/i" =>
+            array(
+                array(
+                    '/^([\'"])\s*\S+script\s*:.*([\'"])/si',
+                    '/^([\'"])\s*mocha\s*:*.*([\'"])/si',
+                    '/^([\'"])\s*about\s*:.*([\'"])/si'
+                ),
+                array(
+                    "\\1#\\1",
+                    "\\1#\\1",
+                    "\\1#\\1"
+                )
+            ),
+            "/^style/i" =>
+            array(
+                array(
+                    "/\/\*.*\*\//",
+                    "/expression/i",
+                    "/binding/i",
+                    "/behaviou*r/i",
+                    "/include-source/i",
+                    '/position\s*:/i',
+                    '/(\\\\)?u(\\\\)?r(\\\\)?l(\\\\)?/i',
+                    '/url\s*\(\s*([\'"])\s*\S+script\s*:.*([\'"])\s*\)/si',
+                    '/url\s*\(\s*([\'"])\s*mocha\s*:.*([\'"])\s*\)/si',
+                    '/url\s*\(\s*([\'"])\s*about\s*:.*([\'"])\s*\)/si',
+                    '/(.*)\s*:\s*url\s*\(\s*([\'"]*)\s*\S+script\s*:.*([\'"]*)\s*\)/si'
+                ),
+                array(
+                    "",
+                    "idiocy",
+                    "idiocy",
+                    "idiocy",
+                    "idiocy",
+                    "idiocy",
+                    "url",
+                    "url(\\1#\\1)",
+                    "url(\\1#\\1)",
+                    "url(\\1#\\1)",
+                    "\\1:url(\\2#\\3)"
+                )
+            )
+        )
+    );
+
+    if ($block_external_images) {
+        array_push(
+            $bad_attvals{'/.*/'}{'/^src|background/i'}[0],
+            '/^([\'\"])\s*https*:.*([\'\"])/si'
+        );
+        array_push(
+            $bad_attvals{'/.*/'}{'/^src|background/i'}[1],
+            "\\1$trans_image_path\\1"
+        );
+        array_push(
+            $bad_attvals{'/.*/'}{'/^style/i'}[0],
+            '/url\(([\'\"])\s*https*:.*([\'\"])\)/si'
+        );
+        array_push(
+            $bad_attvals{'/.*/'}{'/^style/i'}[1],
+            "url(\\1$trans_image_path\\1)"
+        );
+    }
+
+    $add_attr_to_tag = array(
+        "/^a$/i" =>
+            array('target' => '"_blank"')
+    );
+
+    $trusted = tln_sanitize(
+        $body,
+        $tag_list,
+        $rm_tags_with_content,
+        $self_closing_tags,
+        $force_tag_closing,
+        $rm_attnames,
+        $bad_attvals,
+        $add_attr_to_tag,
+        $trans_image_path,
+        $block_external_images
+    );
+    return $trusted;
+}
diff --git a/drupal/sites/all/libraries/phpmailer/extras/ntlm_sasl_client.php b/drupal/sites/all/libraries/phpmailer/extras/ntlm_sasl_client.php
new file mode 100644
index 0000000..3fd5392
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/extras/ntlm_sasl_client.php
@@ -0,0 +1,185 @@
+<?php
+/*
+ * ntlm_sasl_client.php
+ *
+ * @(#) $Id: ntlm_sasl_client.php,v 1.3 2004/11/17 08:00:37 mlemos Exp $
+ *
+ */
+
+define("SASL_NTLM_STATE_START", 0);
+define("SASL_NTLM_STATE_IDENTIFY_DOMAIN", 1);
+define("SASL_NTLM_STATE_RESPOND_CHALLENGE", 2);
+define("SASL_NTLM_STATE_DONE", 3);
+define("SASL_FAIL", -1);
+define("SASL_CONTINUE", 1);
+
+class ntlm_sasl_client_class
+{
+    public $credentials = array();
+    public $state = SASL_NTLM_STATE_START;
+
+    public function initialize(&$client)
+    {
+        if (!function_exists($function = "mcrypt_encrypt")
+            || !function_exists($function = "mhash")
+        ) {
+            $extensions = array(
+                "mcrypt_encrypt" => "mcrypt",
+                "mhash" => "mhash"
+            );
+            $client->error = "the extension " . $extensions[$function] .
+                " required by the NTLM SASL client class is not available in this PHP configuration";
+            return (0);
+        }
+        return (1);
+    }
+
+    public function ASCIIToUnicode($ascii)
+    {
+        for ($unicode = "", $a = 0; $a < strlen($ascii); $a++) {
+            $unicode .= substr($ascii, $a, 1) . chr(0);
+        }
+        return ($unicode);
+    }
+
+    public function typeMsg1($domain, $workstation)
+    {
+        $domain_length = strlen($domain);
+        $workstation_length = strlen($workstation);
+        $workstation_offset = 32;
+        $domain_offset = $workstation_offset + $workstation_length;
+        return (
+            "NTLMSSP\0" .
+            "\x01\x00\x00\x00" .
+            "\x07\x32\x00\x00" .
+            pack("v", $domain_length) .
+            pack("v", $domain_length) .
+            pack("V", $domain_offset) .
+            pack("v", $workstation_length) .
+            pack("v", $workstation_length) .
+            pack("V", $workstation_offset) .
+            $workstation .
+            $domain
+        );
+    }
+
+    public function NTLMResponse($challenge, $password)
+    {
+        $unicode = $this->ASCIIToUnicode($password);
+        $md4 = mhash(MHASH_MD4, $unicode);
+        $padded = $md4 . str_repeat(chr(0), 21 - strlen($md4));
+        $iv_size = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_ECB);
+        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
+        for ($response = "", $third = 0; $third < 21; $third += 7) {
+            for ($packed = "", $p = $third; $p < $third + 7; $p++) {
+                $packed .= str_pad(decbin(ord(substr($padded, $p, 1))), 8, "0", STR_PAD_LEFT);
+            }
+            for ($key = "", $p = 0; $p < strlen($packed); $p += 7) {
+                $s = substr($packed, $p, 7);
+                $b = $s . ((substr_count($s, "1") % 2) ? "0" : "1");
+                $key .= chr(bindec($b));
+            }
+            $ciphertext = mcrypt_encrypt(MCRYPT_DES, $key, $challenge, MCRYPT_MODE_ECB, $iv);
+            $response .= $ciphertext;
+        }
+        return $response;
+    }
+
+    public function typeMsg3($ntlm_response, $user, $domain, $workstation)
+    {
+        $domain_unicode = $this->ASCIIToUnicode($domain);
+        $domain_length = strlen($domain_unicode);
+        $domain_offset = 64;
+        $user_unicode = $this->ASCIIToUnicode($user);
+        $user_length = strlen($user_unicode);
+        $user_offset = $domain_offset + $domain_length;
+        $workstation_unicode = $this->ASCIIToUnicode($workstation);
+        $workstation_length = strlen($workstation_unicode);
+        $workstation_offset = $user_offset + $user_length;
+        $lm = "";
+        $lm_length = strlen($lm);
+        $lm_offset = $workstation_offset + $workstation_length;
+        $ntlm = $ntlm_response;
+        $ntlm_length = strlen($ntlm);
+        $ntlm_offset = $lm_offset + $lm_length;
+        $session = "";
+        $session_length = strlen($session);
+        $session_offset = $ntlm_offset + $ntlm_length;
+        return (
+            "NTLMSSP\0" .
+            "\x03\x00\x00\x00" .
+            pack("v", $lm_length) .
+            pack("v", $lm_length) .
+            pack("V", $lm_offset) .
+            pack("v", $ntlm_length) .
+            pack("v", $ntlm_length) .
+            pack("V", $ntlm_offset) .
+            pack("v", $domain_length) .
+            pack("v", $domain_length) .
+            pack("V", $domain_offset) .
+            pack("v", $user_length) .
+            pack("v", $user_length) .
+            pack("V", $user_offset) .
+            pack("v", $workstation_length) .
+            pack("v", $workstation_length) .
+            pack("V", $workstation_offset) .
+            pack("v", $session_length) .
+            pack("v", $session_length) .
+            pack("V", $session_offset) .
+            "\x01\x02\x00\x00" .
+            $domain_unicode .
+            $user_unicode .
+            $workstation_unicode .
+            $lm .
+            $ntlm
+        );
+    }
+
+    public function start(&$client, &$message, &$interactions)
+    {
+        if ($this->state != SASL_NTLM_STATE_START) {
+            $client->error = "NTLM authentication state is not at the start";
+            return (SASL_FAIL);
+        }
+        $this->credentials = array(
+            "user" => "",
+            "password" => "",
+            "realm" => "",
+            "workstation" => ""
+        );
+        $defaults = array();
+        $status = $client->GetCredentials($this->credentials, $defaults, $interactions);
+        if ($status == SASL_CONTINUE) {
+            $this->state = SASL_NTLM_STATE_IDENTIFY_DOMAIN;
+        }
+        unset($message);
+        return ($status);
+    }
+
+    public function step(&$client, $response, &$message, &$interactions)
+    {
+        switch ($this->state) {
+            case SASL_NTLM_STATE_IDENTIFY_DOMAIN:
+                $message = $this->typeMsg1($this->credentials["realm"], $this->credentials["workstation"]);
+                $this->state = SASL_NTLM_STATE_RESPOND_CHALLENGE;
+                break;
+            case SASL_NTLM_STATE_RESPOND_CHALLENGE:
+                $ntlm_response = $this->NTLMResponse(substr($response, 24, 8), $this->credentials["password"]);
+                $message = $this->typeMsg3(
+                    $ntlm_response,
+                    $this->credentials["user"],
+                    $this->credentials["realm"],
+                    $this->credentials["workstation"]
+                );
+                $this->state = SASL_NTLM_STATE_DONE;
+                break;
+            case SASL_NTLM_STATE_DONE:
+                $client->error = "NTLM authentication was finished without success";
+                return (SASL_FAIL);
+            default:
+                $client->error = "invalid NTLM authentication step state";
+                return (SASL_FAIL);
+        }
+        return (SASL_CONTINUE);
+    }
+}
diff --git a/drupal/sites/all/libraries/phpmailer/get_oauth_token.php b/drupal/sites/all/libraries/phpmailer/get_oauth_token.php
new file mode 100644
index 0000000..2c26d0f
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/get_oauth_token.php
@@ -0,0 +1,162 @@
+<?php
+/**
+ * Get an OAuth2 token from Google.
+ * * Install this script on your server so that it's accessible
+ * as [https/http]://<yourdomain>/<folder>/get_oauth_token.php
+ * e.g.: http://localhost/phpmail/get_oauth_token.php
+ * * Ensure dependencies are installed with 'composer install'
+ * * Set up an app in your Google developer console
+ * * Set the script address as the app's redirect URL
+ * If no refresh token is obtained when running this file, revoke access to your app
+ * using link: https://accounts.google.com/b/0/IssuedAuthSubTokens and run the script again.
+ * This script requires PHP 5.4 or later
+ * PHP Version 5.4
+ */
+
+namespace League\OAuth2\Client\Provider;
+
+require 'vendor/autoload.php';
+
+use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
+use League\OAuth2\Client\Token\AccessToken;
+use League\OAuth2\Client\Tool\BearerAuthorizationTrait;
+use Psr\Http\Message\ResponseInterface;
+
+session_start();
+
+//If this automatic URL doesn't work, set it yourself manually
+$redirectUri = isset($_SERVER['HTTPS']) ? 'https://' : 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
+//$redirectUri = 'http://localhost/phpmailer/get_oauth_token.php';
+
+//These details obtained are by setting up app in Google developer console.
+$clientId = 'RANDOMCHARS-----duv1n2.apps.googleusercontent.com';
+$clientSecret = 'RANDOMCHARS-----lGyjPcRtvP';
+
+class Google extends AbstractProvider
+{
+    use BearerAuthorizationTrait;
+
+    const ACCESS_TOKEN_RESOURCE_OWNER_ID = 'id';
+
+    /**
+     * @var string If set, this will be sent to google as the "access_type" parameter.
+     * @link https://developers.google.com/accounts/docs/OAuth2WebServer#offline
+     */
+    protected $accessType;
+
+    /**
+     * @var string If set, this will be sent to google as the "hd" parameter.
+     * @link https://developers.google.com/accounts/docs/OAuth2Login#hd-param
+     */
+    protected $hostedDomain;
+
+    /**
+     * @var string If set, this will be sent to google as the "scope" parameter.
+     * @link https://developers.google.com/gmail/api/auth/scopes
+     */
+    protected $scope;
+
+    public function getBaseAuthorizationUrl()
+    {
+        return 'https://accounts.google.com/o/oauth2/auth';
+    }
+
+    public function getBaseAccessTokenUrl(array $params)
+    {
+        return 'https://accounts.google.com/o/oauth2/token';
+    }
+
+    public function getResourceOwnerDetailsUrl(AccessToken $token)
+    {
+	return ' ';
+    }
+
+    protected function getAuthorizationParameters(array $options)
+    {
+	if (is_array($this->scope)) {
+            $separator = $this->getScopeSeparator();
+            $this->scope = implode($separator, $this->scope);
+        }
+
+        $params = array_merge(
+            parent::getAuthorizationParameters($options),
+            array_filter([
+                'hd'          => $this->hostedDomain,
+                'access_type' => $this->accessType,
+		'scope'       => $this->scope,
+                // if the user is logged in with more than one account ask which one to use for the login!
+                'authuser'    => '-1'
+            ])
+        );
+        return $params;
+    }
+
+    protected function getDefaultScopes()
+    {
+        return [
+            'email',
+            'openid',
+            'profile',
+        ];
+    }
+
+    protected function getScopeSeparator()
+    {
+        return ' ';
+    }
+
+    protected function checkResponse(ResponseInterface $response, $data)
+    {
+        if (!empty($data['error'])) {
+            $code  = 0;
+            $error = $data['error'];
+
+            if (is_array($error)) {
+                $code  = $error['code'];
+                $error = $error['message'];
+            }
+
+            throw new IdentityProviderException($error, $code, $data);
+        }
+    }
+
+    protected function createResourceOwner(array $response, AccessToken $token)
+    {
+        return new GoogleUser($response);
+    }
+}
+
+
+//Set Redirect URI in Developer Console as [https/http]://<yourdomain>/<folder>/get_oauth_token.php
+$provider = new Google(
+    array(
+        'clientId' => $clientId,
+        'clientSecret' => $clientSecret,
+        'redirectUri' => $redirectUri,
+        'scope' => array('https://mail.google.com/'),
+	'accessType' => 'offline'
+    )
+);
+
+if (!isset($_GET['code'])) {
+    // If we don't have an authorization code then get one
+    $authUrl = $provider->getAuthorizationUrl();
+    $_SESSION['oauth2state'] = $provider->getState();
+    header('Location: ' . $authUrl);
+    exit;
+// Check given state against previously stored one to mitigate CSRF attack
+} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {
+    unset($_SESSION['oauth2state']);
+    exit('Invalid state');
+} else {
+    // Try to get an access token (using the authorization code grant)
+    $token = $provider->getAccessToken(
+        'authorization_code',
+        array(
+            'code' => $_GET['code']
+        )
+    );
+
+    // Use this to get a new access token if the old one expires
+    echo 'Refresh Token: ' . $token->getRefreshToken();
+}
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-am.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-am.php
new file mode 100644
index 0000000..ff2a969
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-am.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Armenian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Hrayr Grigoryan <hrayr at bits.am>
+ */
+ 
+$PHPMAILER_LANG['authenticate']         = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP -ի սխալ: տվյալները ընդունված չեն.';
+$PHPMAILER_LANG['empty_message']        = 'Հաղորդագրությունը դատարկ է';
+$PHPMAILER_LANG['encoding']             = 'Կոդավորման անհայտ տեսակ: ';
+$PHPMAILER_LANG['execute']              = 'Չհաջողվեց իրականացնել հրամանը: ';
+$PHPMAILER_LANG['file_access']          = 'Ֆայլը հասանելի չէ: ';
+$PHPMAILER_LANG['file_open']            = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: ';
+$PHPMAILER_LANG['from_failed']          = 'Ուղարկողի հետևյալ հասցեն սխալ է: ';
+$PHPMAILER_LANG['instantiate']          = 'Հնարավոր չէ կանչել mail ֆունկցիան.';
+$PHPMAILER_LANG['invalid_address']      = 'Հասցեն սխալ է: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.';
+$PHPMAILER_LANG['provide_address']      = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: ';
+$PHPMAILER_LANG['signing']              = 'Ստորագրման սխալ: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP -ի connect() ֆունկցիան չի հաջողվել';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP սերվերի սխալ: ';
+$PHPMAILER_LANG['variable_set']         = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: ';
+$PHPMAILER_LANG['extension_missing']    = 'Հավելվածը բացակայում է: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ar.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ar.php
new file mode 100644
index 0000000..790e2a5
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ar.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Arabic PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author bahjat al mostafa <bahjat983 at hotmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'خطأ SMTP : لا يمكن تأكيد الهوية.';
+$PHPMAILER_LANG['connect_host']         = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'خطأ SMTP: لم يتم قبول المعلومات .';
+$PHPMAILER_LANG['empty_message']        = 'نص الرسالة فارغ';
+$PHPMAILER_LANG['encoding']             = 'ترميز غير معروف: ';
+$PHPMAILER_LANG['execute']              = 'لا يمكن تنفيذ : ';
+$PHPMAILER_LANG['file_access']          = 'لا يمكن الوصول للملف: ';
+$PHPMAILER_LANG['file_open']            = 'خطأ في الملف: لا يمكن فتحه: ';
+$PHPMAILER_LANG['from_failed']          = 'خطأ على مستوى عنوان المرسل : ';
+$PHPMAILER_LANG['instantiate']          = 'لا يمكن توفير خدمة البريد.';
+$PHPMAILER_LANG['invalid_address']      = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.';
+$PHPMAILER_LANG['provide_address']      = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.';
+$PHPMAILER_LANG['recipients_failed']    = 'خطأ SMTP: الأخطاء التالية ' .
+                                          'فشل في الارسال لكل من : ';
+$PHPMAILER_LANG['signing']              = 'خطأ في التوقيع: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() غير ممكن.';
+$PHPMAILER_LANG['smtp_error']           = 'خطأ على مستوى الخادم SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'لا يمكن تعيين أو إعادة تعيين متغير: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-az.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-az.php
new file mode 100644
index 0000000..3749d83
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-az.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Azerbaijani PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author @mirjalal
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP xətası: Giriş uğursuz oldu.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP xətası: SMTP serverinə qoşulma uğursuz oldu.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP xətası: Verilənlər qəbul edilməyib.';
+$PHPMAILER_LANG['empty_message']        = 'Boş mesaj göndərilə bilməz.';
+$PHPMAILER_LANG['encoding']             = 'Qeyri-müəyyən kodlaşdırma: ';
+$PHPMAILER_LANG['execute']              = 'Əmr yerinə yetirilmədi: ';
+$PHPMAILER_LANG['file_access']          = 'Fayla giriş yoxdur: ';
+$PHPMAILER_LANG['file_open']            = 'Fayl xətası: Fayl açıla bilmədi: ';
+$PHPMAILER_LANG['from_failed']          = 'Göstərilən poçtlara göndərmə uğursuz oldu: ';
+$PHPMAILER_LANG['instantiate']          = 'Mail funksiyası işə salına bilmədi.';
+$PHPMAILER_LANG['invalid_address']      = 'Düzgün olmayan e-mail adresi: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' - e-mail kitabxanası dəstəklənmir.';
+$PHPMAILER_LANG['provide_address']      = 'Ən azı bir e-mail adresi daxil edilməlidir.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP xətası: Aşağıdakı ünvanlar üzrə alıcılara göndərmə uğursuzdur: ';
+$PHPMAILER_LANG['signing']              = 'İmzalama xətası: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP serverinə qoşulma uğursuz oldu.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP serveri xətası: ';
+$PHPMAILER_LANG['variable_set']         = 'Dəyişənin quraşdırılması uğursuz oldu: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-be.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-be.php
new file mode 100644
index 0000000..e2f98f0
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-be.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Belarusian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Aleksander Maksymiuk <info at setpro.pl>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Памылка SMTP: памылка ідэнтыфікацыі.';
+$PHPMAILER_LANG['connect_host']         = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Памылка SMTP: звесткі непрынятыя.';
+$PHPMAILER_LANG['empty_message']        = 'Пустое паведамленне.';
+$PHPMAILER_LANG['encoding']             = 'Невядомая кадыроўка тэксту: ';
+$PHPMAILER_LANG['execute']              = 'Нельга выканаць каманду: ';
+$PHPMAILER_LANG['file_access']          = 'Няма доступу да файла: ';
+$PHPMAILER_LANG['file_open']            = 'Нельга адкрыць файл: ';
+$PHPMAILER_LANG['from_failed']          = 'Няправільны адрас адпраўніка: ';
+$PHPMAILER_LANG['instantiate']          = 'Нельга прымяніць функцыю mail().';
+$PHPMAILER_LANG['invalid_address']      = 'Нельга даслаць паведамленне, няправільны email атрымальніка: ';
+$PHPMAILER_LANG['provide_address']      = 'Запоўніце, калі ласка, правільны email атрымальніка.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.';
+$PHPMAILER_LANG['recipients_failed']    = 'Памылка SMTP: няправільныя атрымальнікі: ';
+$PHPMAILER_LANG['signing']              = 'Памылка подпісу паведамлення: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Памылка сувязі з SMTP-серверам.';
+$PHPMAILER_LANG['smtp_error']           = 'Памылка SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-bg.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-bg.php
new file mode 100644
index 0000000..b22941f
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-bg.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Bulgarian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Mikhail Kyosev <mialygk at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP грешка: Не може да се удостовери пред сървъра.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP грешка: Не може да се свърже с SMTP хоста.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP грешка: данните не са приети.';
+$PHPMAILER_LANG['empty_message']        = 'Съдържанието на съобщението е празно';
+$PHPMAILER_LANG['encoding']             = 'Неизвестно кодиране: ';
+$PHPMAILER_LANG['execute']              = 'Не може да се изпълни: ';
+$PHPMAILER_LANG['file_access']          = 'Няма достъп до файл: ';
+$PHPMAILER_LANG['file_open']            = 'Файлова грешка: Не може да се отвори файл: ';
+$PHPMAILER_LANG['from_failed']          = 'Следните адреси за подател са невалидни: ';
+$PHPMAILER_LANG['instantiate']          = 'Не може да се инстанцира функцията mail.';
+$PHPMAILER_LANG['invalid_address']      = 'Невалиден адрес: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.';
+$PHPMAILER_LANG['provide_address']      = 'Трябва да предоставите поне един email адрес за получател.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP грешка: Следните адреси за Получател са невалидни: ';
+$PHPMAILER_LANG['signing']              = 'Грешка при подписване: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP провален connect().';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP сървърна грешка: ';
+$PHPMAILER_LANG['variable_set']         = 'Не може да се установи или възстанови променлива: ';
+$PHPMAILER_LANG['extension_missing']    = 'Липсва разширение: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ca.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ca.php
new file mode 100644
index 0000000..4117596
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ca.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Catalan PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Ivan <web AT microstudi DOT com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Error SMTP: No s’ha pogut autenticar.';
+$PHPMAILER_LANG['connect_host']         = 'Error SMTP: No es pot connectar al servidor SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Error SMTP: Dades no acceptades.';
+$PHPMAILER_LANG['empty_message']        = 'El cos del missatge està buit.';
+$PHPMAILER_LANG['encoding']             = 'Codificació desconeguda: ';
+$PHPMAILER_LANG['execute']              = 'No es pot executar: ';
+$PHPMAILER_LANG['file_access']          = 'No es pot accedir a l’arxiu: ';
+$PHPMAILER_LANG['file_open']            = 'Error d’Arxiu: No es pot obrir l’arxiu: ';
+$PHPMAILER_LANG['from_failed']          = 'La(s) següent(s) adreces de remitent han fallat: ';
+$PHPMAILER_LANG['instantiate']          = 'No s’ha pogut crear una instància de la funció Mail.';
+$PHPMAILER_LANG['invalid_address']      = 'Adreça d’email invalida: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat';
+$PHPMAILER_LANG['provide_address']      = 'S’ha de proveir almenys una adreça d’email com a destinatari.';
+$PHPMAILER_LANG['recipients_failed']    = 'Error SMTP: Els següents destinataris han fallat: ';
+$PHPMAILER_LANG['signing']              = 'Error al signar: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Ha fallat el SMTP Connect().';
+$PHPMAILER_LANG['smtp_error']           = 'Error del servidor SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'No s’ha pogut establir o restablir la variable: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ch.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ch.php
new file mode 100644
index 0000000..4fda6b8
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ch.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Chinese PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author LiuXin <http://www.80x86.cn/blog/>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP 错误:身份验证失败。';
+$PHPMAILER_LANG['connect_host']         = 'SMTP 错误: 不能连接SMTP主机。';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP 错误: 数据不可接受。';
+//$PHPMAILER_LANG['empty_message']        = 'Message body empty';
+$PHPMAILER_LANG['encoding']             = '未知编码:';
+$PHPMAILER_LANG['execute']              = '不能执行: ';
+$PHPMAILER_LANG['file_access']          = '不能访问文件:';
+$PHPMAILER_LANG['file_open']            = '文件错误:不能打开文件:';
+$PHPMAILER_LANG['from_failed']          = '下面的发送地址邮件发送失败了: ';
+$PHPMAILER_LANG['instantiate']          = '不能实现mail方法。';
+//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。';
+$PHPMAILER_LANG['provide_address']      = '您必须提供至少一个 收信人的email地址。';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP 错误: 下面的 收件人失败了: ';
+//$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+//$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() failed.';
+//$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+//$PHPMAILER_LANG['variable_set']         = 'Cannot set or reset variable: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-cs.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-cs.php
new file mode 100644
index 0000000..8cb1a3d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-cs.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Czech PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Chyba SMTP: Autentizace selhala.';
+$PHPMAILER_LANG['connect_host']         = 'Chyba SMTP: Nelze navázat spojení se SMTP serverem.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Chyba SMTP: Data nebyla přijata.';
+$PHPMAILER_LANG['empty_message']        = 'Prázdné tělo zprávy';
+$PHPMAILER_LANG['encoding']             = 'Neznámé kódování: ';
+$PHPMAILER_LANG['execute']              = 'Nelze provést: ';
+$PHPMAILER_LANG['file_access']          = 'Nelze získat přístup k souboru: ';
+$PHPMAILER_LANG['file_open']            = 'Chyba souboru: Nelze otevřít soubor pro čtení: ';
+$PHPMAILER_LANG['from_failed']          = 'Následující adresa odesílatele je nesprávná: ';
+$PHPMAILER_LANG['instantiate']          = 'Nelze vytvořit instanci emailové funkce.';
+$PHPMAILER_LANG['invalid_address']      = 'Neplatná adresa: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer není podporován.';
+$PHPMAILER_LANG['provide_address']      = 'Musíte zadat alespoň jednu emailovou adresu příjemce.';
+$PHPMAILER_LANG['recipients_failed']    = 'Chyba SMTP: Následující adresy příjemců nejsou správně: ';
+$PHPMAILER_LANG['signing']              = 'Chyba přihlašování: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() selhal.';
+$PHPMAILER_LANG['smtp_error']           = 'Chyba SMTP serveru: ';
+$PHPMAILER_LANG['variable_set']         = 'Nelze nastavit nebo změnit proměnnou: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-da.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-da.php
new file mode 100644
index 0000000..e725f4b
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-da.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Danish PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Mikael Stokkebro <info at stokkebro.dk>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP fejl: Kunne ikke logge på.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP fejl: Data kunne ikke accepteres.';
+//$PHPMAILER_LANG['empty_message']        = 'Message body empty';
+$PHPMAILER_LANG['encoding']             = 'Ukendt encode-format: ';
+$PHPMAILER_LANG['execute']              = 'Kunne ikke køre: ';
+$PHPMAILER_LANG['file_access']          = 'Ingen adgang til fil: ';
+$PHPMAILER_LANG['file_open']            = 'Fil fejl: Kunne ikke åbne filen: ';
+$PHPMAILER_LANG['from_failed']          = 'Følgende afsenderadresse er forkert: ';
+$PHPMAILER_LANG['instantiate']          = 'Kunne ikke initialisere email funktionen.';
+//$PHPMAILER_LANG['invalid_address']        = 'Invalid address: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.';
+$PHPMAILER_LANG['provide_address']      = 'Du skal indtaste mindst en modtagers emailadresse.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP fejl: Følgende modtagere er forkerte: ';
+//$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+//$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() failed.';
+//$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+//$PHPMAILER_LANG['variable_set']         = 'Cannot set or reset variable: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-de.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-de.php
new file mode 100644
index 0000000..aa987a9
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-de.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * German PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP-Fehler: Authentifizierung fehlgeschlagen.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP-Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP-Fehler: Daten werden nicht akzeptiert.';
+$PHPMAILER_LANG['empty_message']        = 'E-Mail-Inhalt ist leer.';
+$PHPMAILER_LANG['encoding']             = 'Unbekannte Kodierung: ';
+$PHPMAILER_LANG['execute']              = 'Konnte folgenden Befehl nicht ausführen: ';
+$PHPMAILER_LANG['file_access']          = 'Zugriff auf folgende Datei fehlgeschlagen: ';
+$PHPMAILER_LANG['file_open']            = 'Dateifehler: Konnte folgende Datei nicht öffnen: ';
+$PHPMAILER_LANG['from_failed']          = 'Die folgende Absenderadresse ist nicht korrekt: ';
+$PHPMAILER_LANG['instantiate']          = 'Mail-Funktion konnte nicht initialisiert werden.';
+$PHPMAILER_LANG['invalid_address']      = 'Die Adresse ist ungültig: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.';
+$PHPMAILER_LANG['provide_address']      = 'Bitte geben Sie mindestens eine Empfängeradresse an.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: ';
+$PHPMAILER_LANG['signing']              = 'Fehler beim Signieren: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Verbindung zum SMTP-Server fehlgeschlagen.';
+$PHPMAILER_LANG['smtp_error']           = 'Fehler vom SMTP-Server: ';
+$PHPMAILER_LANG['variable_set']         = 'Kann Variable nicht setzen oder zurücksetzen: ';
+$PHPMAILER_LANG['extension_missing']    = 'Fehlende Erweiterung: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-el.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-el.php
new file mode 100644
index 0000000..7109641
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-el.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Greek PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP Σφάλμα: Αδυναμία πιστοποίησης (authentication).';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Σφάλμα: Αδυναμία σύνδεσης στον SMTP-Host.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Σφάλμα: Τα δεδομένα δεν έγιναν αποδεκτά.';
+$PHPMAILER_LANG['empty_message']        = 'Το E-Mail δεν έχει περιεχόμενο .';
+$PHPMAILER_LANG['encoding']             = 'Αγνωστο Encoding-Format: ';
+$PHPMAILER_LANG['execute']              = 'Αδυναμία εκτέλεσης ακόλουθης εντολής: ';
+$PHPMAILER_LANG['file_access']          = 'Αδυναμία προσπέλασης του αρχείου: ';
+$PHPMAILER_LANG['file_open']            = 'Σφάλμα Αρχείου: Δεν είναι δυνατό το άνοιγμα του ακόλουθου αρχείου: ';
+$PHPMAILER_LANG['from_failed']          = 'Η παρακάτω διεύθυνση αποστολέα δεν είναι σωστή: ';
+$PHPMAILER_LANG['instantiate']          = 'Αδυναμία εκκίνησης Mail function.';
+$PHPMAILER_LANG['invalid_address']      = 'Το μήνυμα δεν εστάλη, η διεύθυνση δεν είναι έγκυρη: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer δεν υποστηρίζεται.';
+$PHPMAILER_LANG['provide_address']      = 'Παρακαλούμε δώστε τουλάχιστον μια e-mail διεύθυνση παραλήπτη.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Σφάλμα: Οι παρακάτω διευθύνσεις παραλήπτη δεν είναι έγκυρες: ';
+$PHPMAILER_LANG['signing']              = 'Σφάλμα υπογραφής: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Αποτυχία σύνδεσης στον SMTP Server.';
+$PHPMAILER_LANG['smtp_error']           = 'Σφάλμα από τον SMTP Server: ';
+$PHPMAILER_LANG['variable_set']         = 'Αδυναμία ορισμού ή αρχικοποίησης μεταβλητής: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-eo.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-eo.php
new file mode 100644
index 0000000..2cf7d5c
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-eo.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Esperanto PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Eraro de servilo SMTP : aŭtentigo malsukcesis.';
+$PHPMAILER_LANG['connect_host']         = 'Eraro de servilo SMTP : konektado al servilo malsukcesis.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Eraro de servilo SMTP : neĝustaj datumoj.';
+$PHPMAILER_LANG['empty_message']        = 'Teksto de mesaĝo mankas.';
+$PHPMAILER_LANG['encoding']             = 'Nekonata kodoprezento: ';
+$PHPMAILER_LANG['execute']              = 'Lanĉi rulumadon ne eblis: ';
+$PHPMAILER_LANG['file_access']          = 'Aliro al dosiero ne sukcesis: ';
+$PHPMAILER_LANG['file_open']            = 'Eraro de dosiero: malfermo neeblas: ';
+$PHPMAILER_LANG['from_failed']          = 'Jena adreso de sendinto malsukcesis: ';
+$PHPMAILER_LANG['instantiate']          = 'Genero de retmesaĝa funkcio neeblis.';
+$PHPMAILER_LANG['invalid_address']      = 'Retadreso ne validas: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mesaĝilo ne subtenata.';
+$PHPMAILER_LANG['provide_address']      = 'Vi devas tajpi almenaŭ unu recevontan retadreson.';
+$PHPMAILER_LANG['recipients_failed']    = 'Eraro de servilo SMTP : la jenaj poŝtrecivuloj kaŭzis eraron: ';
+$PHPMAILER_LANG['signing']              = 'Eraro de subskribo: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP konektado malsukcesis.';
+$PHPMAILER_LANG['smtp_error']           = 'Eraro de servilo SMTP : ';
+$PHPMAILER_LANG['variable_set']         = 'Variablo ne pravalorizeblas aŭ ne repravalorizeblas: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-es.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-es.php
new file mode 100644
index 0000000..d2eac8d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-es.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Spanish PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Matt Sturdy <matt.sturdy at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Error SMTP: Imposible autentificar.';
+$PHPMAILER_LANG['connect_host']         = 'Error SMTP: Imposible conectar al servidor SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Error SMTP: Datos no aceptados.';
+$PHPMAILER_LANG['empty_message']        = 'El cuerpo del mensaje está vacío';
+$PHPMAILER_LANG['encoding']             = 'Codificación desconocida: ';
+$PHPMAILER_LANG['execute']              = 'Imposible ejecutar: ';
+$PHPMAILER_LANG['file_access']          = 'Imposible acceder al archivo: ';
+$PHPMAILER_LANG['file_open']            = 'Error de Archivo: Imposible abrir el archivo: ';
+$PHPMAILER_LANG['from_failed']          = 'La(s) siguiente(s) direcciones de remitente fallaron: ';
+$PHPMAILER_LANG['instantiate']          = 'Imposible crear una instancia de la función Mail.';
+$PHPMAILER_LANG['invalid_address']      = 'Imposible enviar: dirección de email inválido: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.';
+$PHPMAILER_LANG['provide_address']      = 'Debe proporcionar al menos una dirección de email de destino.';
+$PHPMAILER_LANG['recipients_failed']    = 'Error SMTP: Los siguientes destinos fallaron: ';
+$PHPMAILER_LANG['signing']              = 'Error al firmar: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() falló.';
+$PHPMAILER_LANG['smtp_error']           = 'Error del servidor SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'No se pudo configurar la variable: ';
+$PHPMAILER_LANG['extension_missing']    = 'Extensión faltante: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-et.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-et.php
new file mode 100644
index 0000000..7e06da1
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-et.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Estonian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Indrek Päri
+ * @author Elan Ruusamäe <glen at delfi.ee>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP Viga: Autoriseerimise viga.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Viga: Vigased andmed.';
+$PHPMAILER_LANG['empty_message']        = 'Tühi kirja sisu';
+$PHPMAILER_LANG["encoding"]             = 'Tundmatu kodeering: ';
+$PHPMAILER_LANG['execute']              = 'Tegevus ebaõnnestus: ';
+$PHPMAILER_LANG['file_access']          = 'Pole piisavalt õiguseid järgneva faili avamiseks: ';
+$PHPMAILER_LANG['file_open']            = 'Faili Viga: Faili avamine ebaõnnestus: ';
+$PHPMAILER_LANG['from_failed']          = 'Järgnev saatja e-posti aadress on vigane: ';
+$PHPMAILER_LANG['instantiate']          = 'mail funktiooni käivitamine ebaõnnestus.';
+$PHPMAILER_LANG['invalid_address']      = 'Saatmine peatatud, e-posti address vigane: ';
+$PHPMAILER_LANG['provide_address']      = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: ';
+$PHPMAILER_LANG["signing"]              = 'Viga allkirjastamisel: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() ebaõnnestus.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP serveri viga: ';
+$PHPMAILER_LANG['variable_set']         = 'Ei õnnestunud määrata või lähtestada muutujat: ';
+$PHPMAILER_LANG['extension_missing']    = 'Nõutud laiendus on puudu: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fa.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fa.php
new file mode 100644
index 0000000..ad0745c
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fa.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Persian/Farsi PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Ali Jazayeri <jaza.ali at gmail.com>
+ * @author Mohammad Hossein Mojtahedi <mhm5000 at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'خطای SMTP: احراز هویت با شکست مواجه شد.';
+$PHPMAILER_LANG['connect_host']         = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.';
+$PHPMAILER_LANG['data_not_accepted']    = 'خطای SMTP: داده‌ها نا‌درست هستند.';
+$PHPMAILER_LANG['empty_message']        = 'بخش متن پیام خالی است.';
+$PHPMAILER_LANG['encoding']             = 'کد‌گذاری نا‌شناخته: ';
+$PHPMAILER_LANG['execute']              = 'امکان اجرا وجود ندارد: ';
+$PHPMAILER_LANG['file_access']          = 'امکان دسترسی به فایل وجود ندارد: ';
+$PHPMAILER_LANG['file_open']            = 'خطای File: امکان بازکردن فایل وجود ندارد: ';
+$PHPMAILER_LANG['from_failed']          = 'آدرس فرستنده اشتباه است: ';
+$PHPMAILER_LANG['instantiate']          = 'امکان معرفی تابع ایمیل وجود ندارد.';
+$PHPMAILER_LANG['invalid_address']      = 'آدرس ایمیل معتبر نیست: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمی‌شود.';
+$PHPMAILER_LANG['provide_address']      = 'باید حداقل یک آدرس گیرنده وارد کنید.';
+$PHPMAILER_LANG['recipients_failed']    = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: ';
+$PHPMAILER_LANG['signing']              = 'خطا در امضا: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'خطا در اتصال به SMTP.';
+$PHPMAILER_LANG['smtp_error']           = 'خطا در SMTP Server: ';
+$PHPMAILER_LANG['variable_set']         = 'امکان ارسال یا ارسال مجدد متغیر‌ها وجود ندارد: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fi.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fi.php
new file mode 100644
index 0000000..ec4e752
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fi.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Finnish PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Jyry Kuukanen
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP-virhe: käyttäjätunnistus epäonnistui.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP-virhe: yhteys palvelimeen ei onnistu.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP-virhe: data on virheellinen.';
+//$PHPMAILER_LANG['empty_message']        = 'Message body empty';
+$PHPMAILER_LANG['encoding']             = 'Tuntematon koodaustyyppi: ';
+$PHPMAILER_LANG['execute']              = 'Suoritus epäonnistui: ';
+$PHPMAILER_LANG['file_access']          = 'Seuraavaan tiedostoon ei ole oikeuksia: ';
+$PHPMAILER_LANG['file_open']            = 'Tiedostovirhe: Ei voida avata tiedostoa: ';
+$PHPMAILER_LANG['from_failed']          = 'Seuraava lähettäjän osoite on virheellinen: ';
+$PHPMAILER_LANG['instantiate']          = 'mail-funktion luonti epäonnistui.';
+//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
+$PHPMAILER_LANG['mailer_not_supported'] = 'postivälitintyyppiä ei tueta.';
+$PHPMAILER_LANG['provide_address']      = 'Aseta vähintään yksi vastaanottajan sähköpostiosoite.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.';
+$PHPMAILER_LANG['encoding']             = 'Tuntematon koodaustyyppi: ';
+//$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+//$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() failed.';
+//$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+//$PHPMAILER_LANG['variable_set']         = 'Cannot set or reset variable: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fo.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fo.php
new file mode 100644
index 0000000..68cdef1
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fo.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Faroese PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Dávur Sørensen <http://www.profo-webdesign.dk>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP feilur: Kundi ikki góðkenna.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP feilur: Data ikki góðkent.';
+//$PHPMAILER_LANG['empty_message']        = 'Message body empty';
+$PHPMAILER_LANG['encoding']             = 'Ókend encoding: ';
+$PHPMAILER_LANG['execute']              = 'Kundi ikki útføra: ';
+$PHPMAILER_LANG['file_access']          = 'Kundi ikki tilganga fílu: ';
+$PHPMAILER_LANG['file_open']            = 'Fílu feilur: Kundi ikki opna fílu: ';
+$PHPMAILER_LANG['from_failed']          = 'fylgjandi Frá/From adressa miseydnaðist: ';
+$PHPMAILER_LANG['instantiate']          = 'Kuni ikki instantiera mail funktión.';
+//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.';
+$PHPMAILER_LANG['provide_address']      = 'Tú skal uppgeva minst móttakara-emailadressu(r).';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: ';
+//$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+//$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() failed.';
+//$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+//$PHPMAILER_LANG['variable_set']         = 'Cannot set or reset variable: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fr.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fr.php
new file mode 100644
index 0000000..a661f98
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-fr.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * French PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * Some French punctuation requires a thin non-breaking space (U+202F) character before it,
+ * for example before a colon or exclamation mark.
+ * There is one of these characters between these quotes: " "
+ * @link http://unicode.org/udhr/n/notes_fra.html
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Erreur SMTP : échec de l\'authentification.';
+$PHPMAILER_LANG['connect_host']         = 'Erreur SMTP : impossible de se connecter au serveur SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Erreur SMTP : données incorrectes.';
+$PHPMAILER_LANG['empty_message']        = 'Corps du message vide.';
+$PHPMAILER_LANG['encoding']             = 'Encodage inconnu : ';
+$PHPMAILER_LANG['execute']              = 'Impossible de lancer l\'exécution : ';
+$PHPMAILER_LANG['file_access']          = 'Impossible d\'accéder au fichier : ';
+$PHPMAILER_LANG['file_open']            = 'Ouverture du fichier impossible : ';
+$PHPMAILER_LANG['from_failed']          = 'L\'adresse d\'expéditeur suivante a échoué : ';
+$PHPMAILER_LANG['instantiate']          = 'Impossible d\'instancier la fonction mail.';
+$PHPMAILER_LANG['invalid_address']      = 'L\'adresse courriel n\'est pas valide : ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.';
+$PHPMAILER_LANG['provide_address']      = 'Vous devez fournir au moins une adresse de destinataire.';
+$PHPMAILER_LANG['recipients_failed']    = 'Erreur SMTP : les destinataires suivants sont en erreur : ';
+$PHPMAILER_LANG['signing']              = 'Erreur de signature : ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Échec de la connexion SMTP.';
+$PHPMAILER_LANG['smtp_error']           = 'Erreur du serveur SMTP : ';
+$PHPMAILER_LANG['variable_set']         = 'Impossible d\'initialiser ou de réinitialiser une variable : ';
+$PHPMAILER_LANG['extension_missing']    = 'Extension manquante : ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-gl.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-gl.php
new file mode 100644
index 0000000..9b4ce4d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-gl.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Galician PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author by Donato Rouco <donatorouco at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Erro SMTP: Non puido ser autentificado.';
+$PHPMAILER_LANG['connect_host']         = 'Erro SMTP: Non puido conectar co servidor SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Erro SMTP: Datos non aceptados.';
+$PHPMAILER_LANG['empty_message']        = 'Corpo da mensaxe vacía';
+$PHPMAILER_LANG['encoding']             = 'Codificación descoñecida: ';
+$PHPMAILER_LANG['execute']              = 'Non puido ser executado: ';
+$PHPMAILER_LANG['file_access']          = 'Nob puido acceder ó arquivo: ';
+$PHPMAILER_LANG['file_open']            = 'Erro de Arquivo: No puido abrir o arquivo: ';
+$PHPMAILER_LANG['from_failed']          = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: ';
+$PHPMAILER_LANG['instantiate']          = 'Non puido crear unha instancia da función Mail.';
+$PHPMAILER_LANG['invalid_address']      = 'Non puido envia-lo correo: dirección de email inválida: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.';
+$PHPMAILER_LANG['provide_address']      = 'Debe engadir polo menos unha dirección de email coma destino.';
+$PHPMAILER_LANG['recipients_failed']    = 'Erro SMTP: Os seguintes destinos fallaron: ';
+$PHPMAILER_LANG['signing']              = 'Erro ó firmar: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() fallou.';
+$PHPMAILER_LANG['smtp_error']           = 'Erro do servidor SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Non puidemos axustar ou reaxustar a variábel: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-he.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-he.php
new file mode 100644
index 0000000..70eb717
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-he.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Hebrew PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Ronny Sherer <ronny at hoojima.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'שגיאת SMTP: פעולת האימות נכשלה.';
+$PHPMAILER_LANG['connect_host']         = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'שגיאת SMTP: מידע לא התקבל.';
+$PHPMAILER_LANG['empty_message']        = 'גוף ההודעה ריק';
+$PHPMAILER_LANG['invalid_address']      = 'כתובת שגויה: ';
+$PHPMAILER_LANG['encoding']             = 'קידוד לא מוכר: ';
+$PHPMAILER_LANG['execute']              = 'לא הצלחתי להפעיל את: ';
+$PHPMAILER_LANG['file_access']          = 'לא ניתן לגשת לקובץ: ';
+$PHPMAILER_LANG['file_open']            = 'שגיאת קובץ: לא ניתן לגשת לקובץ: ';
+$PHPMAILER_LANG['from_failed']          = 'כתובות הנמענים הבאות נכשלו: ';
+$PHPMAILER_LANG['instantiate']          = 'לא הצלחתי להפעיל את פונקציית המייל.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.';
+$PHPMAILER_LANG['provide_address']      = 'חובה לספק לפחות כתובת אחת של מקבל המייל.';
+$PHPMAILER_LANG['recipients_failed']    = 'שגיאת SMTP: הנמענים הבאים נכשלו: ';
+$PHPMAILER_LANG['signing']              = 'שגיאת חתימה: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() failed.';
+$PHPMAILER_LANG['smtp_error']           = 'שגיאת שרת SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'לא ניתן לקבוע או לשנות את המשתנה: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-hr.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-hr.php
new file mode 100644
index 0000000..3822920
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-hr.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Croatian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Hrvoj3e <hrvoj3e at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP Greška: Neuspjela autentikacija.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Greška: Podatci nisu prihvaćeni.';
+$PHPMAILER_LANG['empty_message']        = 'Sadržaj poruke je prazan.';
+$PHPMAILER_LANG['encoding']             = 'Nepoznati encoding: ';
+$PHPMAILER_LANG['execute']              = 'Nije moguće izvršiti naredbu: ';
+$PHPMAILER_LANG['file_access']          = 'Nije moguće pristupiti datoteci: ';
+$PHPMAILER_LANG['file_open']            = 'Nije moguće otvoriti datoteku: ';
+$PHPMAILER_LANG['from_failed']          = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: ';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: ';
+$PHPMAILER_LANG['instantiate']          = 'Ne mogu pokrenuti mail funkcionalnost.';
+$PHPMAILER_LANG['invalid_address']      = 'E-mail nije poslan. Neispravna e-mail adresa: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.';
+$PHPMAILER_LANG['provide_address']      = 'Definirajte barem jednu adresu primatelja.';
+$PHPMAILER_LANG['signing']              = 'Greška prilikom prijave: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Spajanje na SMTP poslužitelj nije uspjelo.';
+$PHPMAILER_LANG['smtp_error']           = 'Greška SMTP poslužitelja: ';
+$PHPMAILER_LANG['variable_set']         = 'Ne mogu postaviti varijablu niti ju vratiti nazad: ';
+$PHPMAILER_LANG['extension_missing']    = 'Nedostaje proširenje: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-hu.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-hu.php
new file mode 100644
index 0000000..d7ca888
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-hu.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Hungarian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author @dominicus-75
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP hiba: az azonosítás sikertelen.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP hiba: nem lehet kapcsolódni az SMTP-szerverhez.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP hiba: adatok visszautasítva.';
+$PHPMAILER_LANG['empty_message']        = 'Üres az üzenettörzs.';
+$PHPMAILER_LANG['encoding']             = 'Ismeretlen kódolás: ';
+$PHPMAILER_LANG['execute']              = 'Nem lehet végrehajtani: ';
+$PHPMAILER_LANG['file_access']          = 'A következő fájl nem elérhető: ';
+$PHPMAILER_LANG['file_open']            = 'Fájl hiba: a következő fájlt nem lehet megnyitni: ';
+$PHPMAILER_LANG['from_failed']          = 'A feladóként megadott következő cím hibás: ';
+$PHPMAILER_LANG['instantiate']          = 'A PHP mail() függvényt nem sikerült végrehajtani.';
+$PHPMAILER_LANG['invalid_address']      = 'Érvénytelen cím: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' a mailer-osztály nem támogatott.';
+$PHPMAILER_LANG['provide_address']      = 'Legalább egy címzettet fel kell tüntetni.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP hiba: a címzettként megadott következő címek hibásak: ';
+$PHPMAILER_LANG['signing']              = 'Hibás aláírás: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Hiba az SMTP-kapcsolatban.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP-szerver hiba: ';
+$PHPMAILER_LANG['variable_set']         = 'A következő változók beállítása nem sikerült: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-id.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-id.php
new file mode 100644
index 0000000..e57b524
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-id.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Indonesian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Cecep Prawiro <cecep.prawiro at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Kesalahan SMTP: Tidak dapat mengautentikasi.';
+$PHPMAILER_LANG['connect_host']         = 'Kesalahan SMTP: Tidak dapat terhubung ke host SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Kesalahan SMTP: Data tidak diterima peladen.';
+$PHPMAILER_LANG['empty_message']        = 'Isi pesan kosong';
+$PHPMAILER_LANG['encoding']             = 'Pengkodean karakter tidak dikenali: ';
+$PHPMAILER_LANG['execute']              = 'Tidak dapat menjalankan proses : ';
+$PHPMAILER_LANG['file_access']          = 'Tidak dapat mengakses berkas : ';
+$PHPMAILER_LANG['file_open']            = 'Kesalahan File: Berkas tidak bisa dibuka : ';
+$PHPMAILER_LANG['from_failed']          = 'Alamat pengirim berikut mengakibatkan error : ';
+$PHPMAILER_LANG['instantiate']          = 'Tidak dapat menginisialisasi fungsi email';
+$PHPMAILER_LANG['invalid_address']      = 'Gagal terkirim, alamat email tidak valid : ';
+$PHPMAILER_LANG['provide_address']      = 'Harus disediakan minimal satu alamat tujuan';
+$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer tidak didukung';
+$PHPMAILER_LANG['recipients_failed']    = 'Kesalahan SMTP: Alamat tujuan berikut menghasilkan error : ';
+$PHPMAILER_LANG['signing']              = 'Kesalahan dalam tanda tangan : ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() gagal.';
+$PHPMAILER_LANG['smtp_error']           = 'Kesalahan peladen SMTP : ';
+$PHPMAILER_LANG['variable_set']         = 'Tidak berhasil mengatur atau mengatur ulang variable : ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-it.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-it.php
new file mode 100644
index 0000000..d2f4643
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-it.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Italian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Ilias Bartolini <brain79 at inwind.it>
+ * @author Stefano Sabatini <sabas88 at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP Error: Impossibile autenticarsi.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Error: Impossibile connettersi all\'host SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Error: Dati non accettati dal server.';
+$PHPMAILER_LANG['empty_message']        = 'Il corpo del messaggio è vuoto';
+$PHPMAILER_LANG['encoding']             = 'Codifica dei caratteri sconosciuta: ';
+$PHPMAILER_LANG['execute']              = 'Impossibile eseguire l\'operazione: ';
+$PHPMAILER_LANG['file_access']          = 'Impossibile accedere al file: ';
+$PHPMAILER_LANG['file_open']            = 'File Error: Impossibile aprire il file: ';
+$PHPMAILER_LANG['from_failed']          = 'I seguenti indirizzi mittenti hanno generato errore: ';
+$PHPMAILER_LANG['instantiate']          = 'Impossibile istanziare la funzione mail';
+$PHPMAILER_LANG['invalid_address']      = 'Impossibile inviare, l\'indirizzo email non è valido: ';
+$PHPMAILER_LANG['provide_address']      = 'Deve essere fornito almeno un indirizzo ricevente';
+$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Error: I seguenti indirizzi destinatari hanno generato un errore: ';
+$PHPMAILER_LANG['signing']              = 'Errore nella firma: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() fallita.';
+$PHPMAILER_LANG['smtp_error']           = 'Errore del server SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Impossibile impostare o resettare la variabile: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ja.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ja.php
new file mode 100644
index 0000000..2d77872
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ja.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Japanese PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Mitsuhiro Yoshida <http://mitstek.com/>
+ * @author Yoshi Sakai <http://bluemooninc.jp/>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTPエラー: 認証できませんでした。';
+$PHPMAILER_LANG['connect_host']         = 'SMTPエラー: SMTPホストに接続できませんでした。';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTPエラー: データが受け付けられませんでした。';
+//$PHPMAILER_LANG['empty_message']        = 'Message body empty';
+$PHPMAILER_LANG['encoding']             = '不明なエンコーディング: ';
+$PHPMAILER_LANG['execute']              = '実行できませんでした: ';
+$PHPMAILER_LANG['file_access']          = 'ファイルにアクセスできません: ';
+$PHPMAILER_LANG['file_open']            = 'ファイルエラー: ファイルを開けません: ';
+$PHPMAILER_LANG['from_failed']          = 'Fromアドレスを登録する際にエラーが発生しました: ';
+$PHPMAILER_LANG['instantiate']          = 'メール関数が正常に動作しませんでした。';
+//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
+$PHPMAILER_LANG['provide_address']      = '少なくとも1つメールアドレスを 指定する必要があります。';
+$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: ';
+//$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+//$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() failed.';
+//$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+//$PHPMAILER_LANG['variable_set']         = 'Cannot set or reset variable: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ka.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ka.php
new file mode 100644
index 0000000..dd1af8a
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ka.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Georgian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Avtandil Kikabidze aka LONGMAN <akalongman at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP შეცდომა: ავტორიზაცია შეუძლებელია.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP შეცდომა: SMTP სერვერთან დაკავშირება შეუძლებელია.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP შეცდომა: მონაცემები არ იქნა მიღებული.';
+$PHPMAILER_LANG['encoding']             = 'კოდირების უცნობი ტიპი: ';
+$PHPMAILER_LANG['execute']              = 'შეუძლებელია შემდეგი ბრძანების შესრულება: ';
+$PHPMAILER_LANG['file_access']          = 'შეუძლებელია წვდომა ფაილთან: ';
+$PHPMAILER_LANG['file_open']            = 'ფაილური სისტემის შეცდომა: არ იხსნება ფაილი: ';
+$PHPMAILER_LANG['from_failed']          = 'გამგზავნის არასწორი მისამართი: ';
+$PHPMAILER_LANG['instantiate']          = 'mail ფუნქციის გაშვება ვერ ხერხდება.';
+$PHPMAILER_LANG['provide_address']      = 'გთხოვთ მიუთითოთ ერთი ადრესატის e-mail მისამართი მაინც.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' - საფოსტო სერვერის მხარდაჭერა არ არის.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP შეცდომა: შემდეგ მისამართებზე გაგზავნა ვერ მოხერხდა: ';
+$PHPMAILER_LANG['empty_message']        = 'შეტყობინება ცარიელია';
+$PHPMAILER_LANG['invalid_address']      = 'არ გაიგზავნა, e-mail მისამართის არასწორი ფორმატი: ';
+$PHPMAILER_LANG['signing']              = 'ხელმოწერის შეცდომა: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'შეცდომა SMTP სერვერთან დაკავშირებისას';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP სერვერის შეცდომა: ';
+$PHPMAILER_LANG['variable_set']         = 'შეუძლებელია შემდეგი ცვლადის შექმნა ან შეცვლა: ';
+$PHPMAILER_LANG['extension_missing']    = 'ბიბლიოთეკა არ არსებობს: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ko.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ko.php
new file mode 100644
index 0000000..9599fa6
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ko.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Korean PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author ChalkPE <amato0617 at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP 오류: 인증할 수 없습니다.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.';
+$PHPMAILER_LANG['empty_message']        = '메세지 내용이 없습니다';
+$PHPMAILER_LANG['encoding']             = '알 수 없는 인코딩: ';
+$PHPMAILER_LANG['execute']              = '실행 불가: ';
+$PHPMAILER_LANG['file_access']          = '파일 접근 불가: ';
+$PHPMAILER_LANG['file_open']            = '파일 오류: 파일을 열 수 없습니다: ';
+$PHPMAILER_LANG['from_failed']          = '다음 From 주소에서 오류가 발생했습니다: ';
+$PHPMAILER_LANG['instantiate']          = 'mail 함수를 인스턴스화할 수 없습니다';
+$PHPMAILER_LANG['invalid_address']      = '잘못된 주소: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.';
+$PHPMAILER_LANG['provide_address']      = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: ';
+$PHPMAILER_LANG['signing']              = '서명 오류: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP 연결을 실패하였습니다.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP 서버 오류: ';
+$PHPMAILER_LANG['variable_set']         = '변수 설정 및 초기화 불가: ';
+$PHPMAILER_LANG['extension_missing']    = '확장자 없음: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-lt.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-lt.php
new file mode 100644
index 0000000..1253a4f
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-lt.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Lithuanian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Dainius Kaupaitis <dk at sum.lt>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP klaida: autentifikacija nepavyko.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP klaida: duomenys nepriimti.';
+$PHPMAILER_LANG['empty_message']        = 'Laiško turinys tuščias';
+$PHPMAILER_LANG['encoding']             = 'Neatpažinta koduotė: ';
+$PHPMAILER_LANG['execute']              = 'Nepavyko įvykdyti komandos: ';
+$PHPMAILER_LANG['file_access']          = 'Byla nepasiekiama: ';
+$PHPMAILER_LANG['file_open']            = 'Bylos klaida: Nepavyksta atidaryti: ';
+$PHPMAILER_LANG['from_failed']          = 'Neteisingas siuntėjo adresas: ';
+$PHPMAILER_LANG['instantiate']          = 'Nepavyko paleisti mail funkcijos.';
+$PHPMAILER_LANG['invalid_address']      = 'Neteisingas adresas: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.';
+$PHPMAILER_LANG['provide_address']      = 'Nurodykite bent vieną gavėjo adresą.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: ';
+$PHPMAILER_LANG['signing']              = 'Prisijungimo klaida: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP susijungimo klaida';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP stoties klaida: ';
+$PHPMAILER_LANG['variable_set']         = 'Nepavyko priskirti reikšmės kintamajam: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-lv.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-lv.php
new file mode 100644
index 0000000..39bf9a1
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-lv.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Latvian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Eduards M. <e at npd.lv>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP kļūda: Autorizācija neizdevās.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Kļūda: Nepieņem informāciju.';
+$PHPMAILER_LANG['empty_message']        = 'Ziņojuma teksts ir tukšs';
+$PHPMAILER_LANG['encoding']             = 'Neatpazīts kodējums: ';
+$PHPMAILER_LANG['execute']              = 'Neizdevās izpildīt komandu: ';
+$PHPMAILER_LANG['file_access']          = 'Fails nav pieejams: ';
+$PHPMAILER_LANG['file_open']            = 'Faila kļūda: Nevar atvērt failu: ';
+$PHPMAILER_LANG['from_failed']          = 'Nepareiza sūtītāja adrese: ';
+$PHPMAILER_LANG['instantiate']          = 'Nevar palaist sūtīšanas funkciju.';
+$PHPMAILER_LANG['invalid_address']      = 'Nepareiza adrese: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.';
+$PHPMAILER_LANG['provide_address']      = 'Lūdzu, norādiet vismaz vienu adresātu.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: ';
+$PHPMAILER_LANG['signing']              = 'Autorizācijas kļūda: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP savienojuma kļūda';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP servera kļūda: ';
+$PHPMAILER_LANG['variable_set']         = 'Nevar piešķirt mainīgā vērtību: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ms.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ms.php
new file mode 100644
index 0000000..4e2c340
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ms.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Malaysian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Nawawi Jamili <nawawi at rutweb.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Ralat SMTP: Tidak dapat pengesahan.';
+$PHPMAILER_LANG['connect_host']         = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Ralat SMTP: Data tidak diterima oleh pelayan.';
+$PHPMAILER_LANG['empty_message']        = 'Tiada isi untuk mesej';
+$PHPMAILER_LANG['encoding']             = 'Pengekodan tidak diketahui: ';
+$PHPMAILER_LANG['execute']              = 'Tidak dapat melaksanakan: ';
+$PHPMAILER_LANG['file_access']          = 'Tidak dapat mengakses fail: ';
+$PHPMAILER_LANG['file_open']            = 'Ralat Fail: Tidak dapat membuka fail: ';
+$PHPMAILER_LANG['from_failed']          = 'Berikut merupakan ralat dari alamat e-mel: ';
+$PHPMAILER_LANG['instantiate']          = 'Tidak dapat memberi contoh fungsi e-mel.';
+$PHPMAILER_LANG['invalid_address']      = 'Alamat emel tidak sah: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.';
+$PHPMAILER_LANG['provide_address']      = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.';
+$PHPMAILER_LANG['recipients_failed']    = 'Ralat SMTP: Penerima e-mel berikut telah gagal: ';
+$PHPMAILER_LANG['signing']              = 'Ralat pada tanda tangan: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() telah gagal.';
+$PHPMAILER_LANG['smtp_error']           = 'Ralat pada pelayan SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-nb.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-nb.php
new file mode 100644
index 0000000..383dd51
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-nb.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Norwegian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP Feil: Kunne ikke autentisere.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Feil: Kunne ikke koble til SMTP tjener.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Feil: Data ble ikke akseptert.';
+$PHPMAILER_LANG['empty_message']        = 'Meldingsinnholdet er tomt';
+$PHPMAILER_LANG['encoding']             = 'Ukjent tegnkoding: ';
+$PHPMAILER_LANG['execute']              = 'Kunne ikke utføre: ';
+$PHPMAILER_LANG['file_access']          = 'Får ikke tilgang til filen: ';
+$PHPMAILER_LANG['file_open']            = 'Fil feil: Kunne ikke åpne filen: ';
+$PHPMAILER_LANG['from_failed']          = 'Følgende avsenderadresse feilet: ';
+$PHPMAILER_LANG['instantiate']          = 'Kunne ikke initialisere mailfunksjonen.';
+$PHPMAILER_LANG['invalid_address']      = 'Meldingen ble ikke sendt, følgende adresse er ugyldig: ';
+$PHPMAILER_LANG['provide_address']      = 'Du må angi minst en mottakeradresse.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer er ikke supportert.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Feil: Følgende mottagere feilet: ';
+$PHPMAILER_LANG['signing']              = 'Signeringsfeil: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() feilet.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP-serverfeil: ';
+$PHPMAILER_LANG['variable_set']         = 'Kan ikke sette eller resette variabelen: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-nl.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-nl.php
new file mode 100644
index 0000000..0fc38be
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-nl.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Dutch PHPMailer language file: refer to class.phpmailer.php for definitive list.
+ * @package PHPMailer
+ * @author Tuxion <team at tuxion.nl>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP-fout: authenticatie mislukt.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP-fout: kon niet verbinden met SMTP-host.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP-fout: data niet geaccepteerd.';
+$PHPMAILER_LANG['empty_message']        = 'Berichttekst is leeg';
+$PHPMAILER_LANG['encoding']             = 'Onbekende codering: ';
+$PHPMAILER_LANG['execute']              = 'Kon niet uitvoeren: ';
+$PHPMAILER_LANG['file_access']          = 'Kreeg geen toegang tot bestand: ';
+$PHPMAILER_LANG['file_open']            = 'Bestandsfout: kon bestand niet openen: ';
+$PHPMAILER_LANG['from_failed']          = 'Het volgende afzendersadres is mislukt: ';
+$PHPMAILER_LANG['instantiate']          = 'Kon mailfunctie niet initialiseren.';
+$PHPMAILER_LANG['invalid_address']      = 'Ongeldig adres: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.';
+$PHPMAILER_LANG['provide_address']      = 'Er moet minstens één ontvanger worden opgegeven.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP-fout: de volgende ontvangers zijn mislukt: ';
+$PHPMAILER_LANG['signing']              = 'Signeerfout: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Verbinding mislukt.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP-serverfout: ';
+$PHPMAILER_LANG['variable_set']         = 'Kan de volgende variabele niet instellen of resetten: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pl.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pl.php
new file mode 100644
index 0000000..3da0dee
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pl.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Polish PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Błąd SMTP: Nie można przeprowadzić uwierzytelnienia.';
+$PHPMAILER_LANG['connect_host']         = 'Błąd SMTP: Nie można połączyć się z wybranym hostem.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Błąd SMTP: Dane nie zostały przyjęte.';
+$PHPMAILER_LANG['empty_message']        = 'Wiadomość jest pusta.';
+$PHPMAILER_LANG['encoding']             = 'Nieznany sposób kodowania znaków: ';
+$PHPMAILER_LANG['execute']              = 'Nie można uruchomić: ';
+$PHPMAILER_LANG['file_access']          = 'Brak dostępu do pliku: ';
+$PHPMAILER_LANG['file_open']            = 'Nie można otworzyć pliku: ';
+$PHPMAILER_LANG['from_failed']          = 'Następujący adres Nadawcy jest nieprawidłowy: ';
+$PHPMAILER_LANG['instantiate']          = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.';
+$PHPMAILER_LANG['invalid_address']      = 'Nie można wysłać wiadomości, '.
+    'następujący adres Odbiorcy jest nieprawidłowy: ';
+$PHPMAILER_LANG['provide_address']      = 'Należy podać prawidłowy adres email Odbiorcy.';
+$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.';
+$PHPMAILER_LANG['recipients_failed']    = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi: ';
+$PHPMAILER_LANG['signing']              = 'Błąd podpisywania wiadomości: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() zakończone niepowodzeniem.';
+$PHPMAILER_LANG['smtp_error']           = 'Błąd SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Nie można ustawić lub zmodyfikować zmiennej: ';
+$PHPMAILER_LANG['extension_missing']    = 'Brakujące rozszerzenie: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pt.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pt.php
new file mode 100644
index 0000000..f365d5d
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pt.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Portuguese (European) PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Jonadabe <jonadabe at hotmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Erro do SMTP: Não foi possível realizar a autenticação.';
+$PHPMAILER_LANG['connect_host']         = 'Erro do SMTP: Não foi possível realizar ligação com o servidor SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Erro do SMTP: Os dados foram rejeitados.';
+$PHPMAILER_LANG['empty_message']        = 'A mensagem no e-mail está vazia.';
+$PHPMAILER_LANG['encoding']             = 'Codificação desconhecida: ';
+$PHPMAILER_LANG['execute']              = 'Não foi possível executar: ';
+$PHPMAILER_LANG['file_access']          = 'Não foi possível aceder o ficheiro: ';
+$PHPMAILER_LANG['file_open']            = 'Abertura do ficheiro: Não foi possível abrir o ficheiro: ';
+$PHPMAILER_LANG['from_failed']          = 'Ocorreram falhas nos endereços dos seguintes remententes: ';
+$PHPMAILER_LANG['instantiate']          = 'Não foi possível iniciar uma instância da função mail.';
+$PHPMAILER_LANG['invalid_address']      = 'Não foi enviado nenhum e-mail para o endereço de e-mail inválido: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.';
+$PHPMAILER_LANG['provide_address']      = 'Tem de fornecer pelo menos um endereço como destinatário do e-mail.';
+$PHPMAILER_LANG['recipients_failed']    = 'Erro do SMTP: O endereço do seguinte destinatário falhou: ';
+$PHPMAILER_LANG['signing']              = 'Erro ao assinar: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() falhou.';
+$PHPMAILER_LANG['smtp_error']           = 'Erro de servidor SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Não foi possível definir ou redefinir a variável: ';
+$PHPMAILER_LANG['extension_missing']    = 'Extensão em falta: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pt_br.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pt_br.php
new file mode 100644
index 0000000..fecbbe3
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-pt_br.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Paulo Henrique Garcia <paulo at controllerweb.com.br>
+ * @author Lucas Guimarães <lucas at lucasguimaraes.com>
+ * @author Phelipe Alves <phelipealvesdesouza at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Erro de SMTP: Não foi possível autenticar.';
+$PHPMAILER_LANG['connect_host']         = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Erro de SMTP: Dados rejeitados.';
+$PHPMAILER_LANG['empty_message']        = 'Mensagem vazia';
+$PHPMAILER_LANG['encoding']             = 'Codificação desconhecida: ';
+$PHPMAILER_LANG['execute']              = 'Não foi possível executar: ';
+$PHPMAILER_LANG['file_access']          = 'Não foi possível acessar o arquivo: ';
+$PHPMAILER_LANG['file_open']            = 'Erro de Arquivo: Não foi possível abrir o arquivo: ';
+$PHPMAILER_LANG['from_failed']          = 'Os seguintes remententes falharam: ';
+$PHPMAILER_LANG['instantiate']          = 'Não foi possível instanciar a função mail.';
+$PHPMAILER_LANG['invalid_address']      = 'Endereço de e-mail inválido: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.';
+$PHPMAILER_LANG['provide_address']      = 'Você deve informar pelo menos um destinatário.';
+$PHPMAILER_LANG['recipients_failed']    = 'Erro de SMTP: Os seguintes destinatários falharam: ';
+$PHPMAILER_LANG['signing']              = 'Erro de Assinatura: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() falhou.';
+$PHPMAILER_LANG['smtp_error']           = 'Erro de servidor SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Não foi possível definir ou redefinir a variável: ';
+$PHPMAILER_LANG['extension_missing']    = 'Extensão ausente: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ro.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ro.php
new file mode 100644
index 0000000..fa100ea
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ro.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Romanian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Alex Florea <alecz.fia at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Eroare SMTP: Autentificarea a eșuat.';
+$PHPMAILER_LANG['connect_host']         = 'Eroare SMTP: Conectarea la serverul SMTP a eșuat.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Eroare SMTP: Datele nu au fost acceptate.';
+$PHPMAILER_LANG['empty_message']        = 'Mesajul este gol.';
+$PHPMAILER_LANG['encoding']             = 'Encodare necunoscută: ';
+$PHPMAILER_LANG['execute']              = 'Nu se poate executa următoarea comandă:  ';
+$PHPMAILER_LANG['file_access']          = 'Nu se poate accesa următorul fișier: ';
+$PHPMAILER_LANG['file_open']            = 'Eroare fișier: Nu se poate deschide următorul fișier: ';
+$PHPMAILER_LANG['from_failed']          = 'Următoarele adrese From au dat eroare: ';
+$PHPMAILER_LANG['instantiate']          = 'Funcția mail nu a putut fi inițializată.';
+$PHPMAILER_LANG['invalid_address']      = 'Adresa de email nu este validă: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.';
+$PHPMAILER_LANG['provide_address']      = 'Trebuie să adăugați cel puțin o adresă de email.';
+$PHPMAILER_LANG['recipients_failed']    = 'Eroare SMTP: Următoarele adrese de email au eșuat: ';
+$PHPMAILER_LANG['signing']              = 'A aparut o problemă la semnarea emailului. ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Conectarea la serverul SMTP a eșuat.';
+$PHPMAILER_LANG['smtp_error']           = 'Eroare server SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Nu se poate seta/reseta variabila. ';
+$PHPMAILER_LANG['extension_missing']    = 'Lipsește extensia: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ru.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ru.php
new file mode 100644
index 0000000..4066f6b
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-ru.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Russian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Alexey Chumakov <alex at chumakov.ru>
+ * @author Foster Snowhill <i18n at forstwoof.ru>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Ошибка SMTP: ошибка авторизации.';
+$PHPMAILER_LANG['connect_host']         = 'Ошибка SMTP: не удается подключиться к серверу SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Ошибка SMTP: данные не приняты.';
+$PHPMAILER_LANG['encoding']             = 'Неизвестный вид кодировки: ';
+$PHPMAILER_LANG['execute']              = 'Невозможно выполнить команду: ';
+$PHPMAILER_LANG['file_access']          = 'Нет доступа к файлу: ';
+$PHPMAILER_LANG['file_open']            = 'Файловая ошибка: не удается открыть файл: ';
+$PHPMAILER_LANG['from_failed']          = 'Неверный адрес отправителя: ';
+$PHPMAILER_LANG['instantiate']          = 'Невозможно запустить функцию mail.';
+$PHPMAILER_LANG['provide_address']      = 'Пожалуйста, введите хотя бы один адрес e-mail получателя.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' — почтовый сервер не поддерживается.';
+$PHPMAILER_LANG['recipients_failed']    = 'Ошибка SMTP: отправка по следующим адресам получателей не удалась: ';
+$PHPMAILER_LANG['empty_message']        = 'Пустое сообщение';
+$PHPMAILER_LANG['invalid_address']      = 'Не отослано, неправильный формат email адреса: ';
+$PHPMAILER_LANG['signing']              = 'Ошибка подписи: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Ошибка соединения с SMTP-сервером';
+$PHPMAILER_LANG['smtp_error']           = 'Ошибка SMTP-сервера: ';
+$PHPMAILER_LANG['variable_set']         = 'Невозможно установить или переустановить переменную: ';
+$PHPMAILER_LANG['extension_missing']    = 'Расширение отсутствует: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sk.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sk.php
new file mode 100644
index 0000000..a38f4e5
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sk.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Slovak PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Michal Tinka <michaltinka at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP Error: Chyba autentifikácie.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Error: Nebolo možné nadviazať spojenie so SMTP serverom.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Error: Dáta neboli prijaté';
+$PHPMAILER_LANG['empty_message']        = 'Prázdne telo správy.';
+$PHPMAILER_LANG['encoding']             = 'Neznáme kódovanie: ';
+$PHPMAILER_LANG['execute']              = 'Nedá sa vykonať: ';
+$PHPMAILER_LANG['file_access']          = 'Súbor nebol nájdený: ';
+$PHPMAILER_LANG['file_open']            = 'File Error: Súbor sa otvoriť pre čítanie: ';
+$PHPMAILER_LANG['from_failed']          = 'Následujúca adresa From je nesprávna: ';
+$PHPMAILER_LANG['instantiate']          = 'Nedá sa vytvoriť inštancia emailovej funkcie.';
+$PHPMAILER_LANG['invalid_address']      = 'Neodoslané, emailová adresa je nesprávna: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.';
+$PHPMAILER_LANG['provide_address']      = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Error: Adresy príjemcov niesu správne ';
+$PHPMAILER_LANG['signing']              = 'Chyba prihlasovania: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() zlyhalo.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP chyba serveru: ';
+$PHPMAILER_LANG['variable_set']         = 'Nemožno nastaviť alebo resetovať premennú: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sl.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sl.php
new file mode 100644
index 0000000..54c9572
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sl.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Slovene PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Klemen Tušar <techouse at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP napaka: Avtentikacija ni uspela.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP napaka: Ne morem vzpostaviti povezave s SMTP gostiteljem.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP napaka: Strežnik zavrača podatke.';
+$PHPMAILER_LANG['empty_message']        = 'E-poštno sporočilo nima vsebine.';
+$PHPMAILER_LANG['encoding']             = 'Nepoznan tip kodiranja: ';
+$PHPMAILER_LANG['execute']              = 'Operacija ni uspela: ';
+$PHPMAILER_LANG['file_access']          = 'Nimam dostopa do datoteke: ';
+$PHPMAILER_LANG['file_open']            = 'Ne morem odpreti datoteke: ';
+$PHPMAILER_LANG['from_failed']          = 'Neveljaven e-naslov pošiljatelja: ';
+$PHPMAILER_LANG['instantiate']          = 'Ne morem inicializirati mail funkcije.';
+$PHPMAILER_LANG['invalid_address']      = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.';
+$PHPMAILER_LANG['provide_address']      = 'Prosim vnesite vsaj enega naslovnika.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP napaka: Sledeči naslovniki so neveljavni: ';
+$PHPMAILER_LANG['signing']              = 'Napaka pri podpisovanju: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Ne morem vzpostaviti povezave s SMTP strežnikom.';
+$PHPMAILER_LANG['smtp_error']           = 'Napaka SMTP strežnika: ';
+$PHPMAILER_LANG['variable_set']         = 'Ne morem nastaviti oz. ponastaviti spremenljivke: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sr.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sr.php
new file mode 100644
index 0000000..ed95ca6
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sr.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Serbian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Александар Јевремовић <ajevremovic at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP грешка: аутентификација није успела.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP грешка: није могуће повезивање са SMTP сервером.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP грешка: подаци нису прихваћени.';
+$PHPMAILER_LANG['empty_message']        = 'Садржај поруке је празан.';
+$PHPMAILER_LANG['encoding']             = 'Непознато кодовање: ';
+$PHPMAILER_LANG['execute']              = 'Није могуће извршити наредбу: ';
+$PHPMAILER_LANG['file_access']          = 'Није могуће приступити датотеци: ';
+$PHPMAILER_LANG['file_open']            = 'Није могуће отворити датотеку: ';
+$PHPMAILER_LANG['from_failed']          = 'SMTP грешка: слање са следећих адреса није успело: ';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP грешка: слање на следеће адресе није успело: ';
+$PHPMAILER_LANG['instantiate']          = 'Није могуће покренути mail функцију.';
+$PHPMAILER_LANG['invalid_address']      = 'Порука није послата због неисправне адресе: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.';
+$PHPMAILER_LANG['provide_address']      = 'Потребно је задати најмање једну адресу.';
+$PHPMAILER_LANG['signing']              = 'Грешка приликом пријављивања: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Повезивање са SMTP сервером није успело.';
+$PHPMAILER_LANG['smtp_error']           = 'Грешка SMTP сервера: ';
+$PHPMAILER_LANG['variable_set']         = 'Није могуће задати променљиву, нити је вратити уназад: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sv.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sv.php
new file mode 100644
index 0000000..4408e63
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-sv.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Swedish PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Johan Linnér <johan at linner.biz>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP fel: Kunde inte autentisera.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP fel: Kunde inte ansluta till SMTP-server.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP fel: Data accepterades inte.';
+//$PHPMAILER_LANG['empty_message']        = 'Message body empty';
+$PHPMAILER_LANG['encoding']             = 'Okänt encode-format: ';
+$PHPMAILER_LANG['execute']              = 'Kunde inte köra: ';
+$PHPMAILER_LANG['file_access']          = 'Ingen åtkomst till fil: ';
+$PHPMAILER_LANG['file_open']            = 'Fil fel: Kunde inte öppna fil: ';
+$PHPMAILER_LANG['from_failed']          = 'Följande avsändaradress är felaktig: ';
+$PHPMAILER_LANG['instantiate']          = 'Kunde inte initiera e-postfunktion.';
+$PHPMAILER_LANG['invalid_address']      = 'Felaktig adress: ';
+$PHPMAILER_LANG['provide_address']      = 'Du måste ange minst en mottagares e-postadress.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP fel: Följande mottagare är felaktig: ';
+$PHPMAILER_LANG['signing']              = 'Signerings fel: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() misslyckades.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server fel: ';
+$PHPMAILER_LANG['variable_set']         = 'Kunde inte definiera eller återställa variabel: ';
+$PHPMAILER_LANG['extension_missing']    = 'Tillägg ej tillgängligt: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-tr.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-tr.php
new file mode 100644
index 0000000..323fb4b
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-tr.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Turkish PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Elçin Özel
+ * @author Can Yılmaz
+ * @author Mehmet Benlioğlu
+ * @author @yasinaydin
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP Hatası: Oturum açılamadı.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Hatası: SMTP sunucusuna bağlanılamadı.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Hatası: Veri kabul edilmedi.';
+$PHPMAILER_LANG['empty_message']        = 'Mesajın içeriği boş';
+$PHPMAILER_LANG['encoding']             = 'Bilinmeyen karakter kodlama: ';
+$PHPMAILER_LANG['execute']              = 'Çalıştırılamadı: ';
+$PHPMAILER_LANG['file_access']          = 'Dosyaya erişilemedi: ';
+$PHPMAILER_LANG['file_open']            = 'Dosya Hatası: Dosya açılamadı: ';
+$PHPMAILER_LANG['from_failed']          = 'Belirtilen adreslere gönderme başarısız: ';
+$PHPMAILER_LANG['instantiate']          = 'Örnek e-posta fonksiyonu oluşturulamadı.';
+$PHPMAILER_LANG['invalid_address']      = 'Geçersiz e-posta adresi: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' e-posta kütüphanesi desteklenmiyor.';
+$PHPMAILER_LANG['provide_address']      = 'En az bir alıcı e-posta adresi belirtmelisiniz.';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Hatası: Belirtilen alıcılara ulaşılamadı: ';
+$PHPMAILER_LANG['signing']              = 'İmzalama hatası: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP connect() fonksiyonu başarısız.';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP sunucu hatası: ';
+$PHPMAILER_LANG['variable_set']         = 'Değişken ayarlanamadı ya da sıfırlanamadı: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-uk.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-uk.php
new file mode 100644
index 0000000..9a7b346
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-uk.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Ukrainian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Yuriy Rudyy <yrudyy at prs.net.ua>
+ * @fixed by Boris Yurchenko <boris at yurchenko.pp.ua>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Помилка SMTP: помилка авторизації.';
+$PHPMAILER_LANG['connect_host']         = 'Помилка SMTP: не вдається під\'єднатися до серверу SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Помилка SMTP: дані не прийняті.';
+$PHPMAILER_LANG['encoding']             = 'Невідомий тип кодування: ';
+$PHPMAILER_LANG['execute']              = 'Неможливо виконати команду: ';
+$PHPMAILER_LANG['file_access']          = 'Немає доступу до файлу: ';
+$PHPMAILER_LANG['file_open']            = 'Помилка файлової системи: не вдається відкрити файл: ';
+$PHPMAILER_LANG['from_failed']          = 'Невірна адреса відправника: ';
+$PHPMAILER_LANG['instantiate']          = 'Неможливо запустити функцію mail.';
+$PHPMAILER_LANG['provide_address']      = 'Будь-ласка, введіть хоча б одну адресу e-mail отримувача.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.';
+$PHPMAILER_LANG['recipients_failed']    = 'Помилка SMTP: відправлення наступним отримувачам не вдалося: ';
+$PHPMAILER_LANG['empty_message']        = 'Пусте тіло повідомлення';
+$PHPMAILER_LANG['invalid_address']      = 'Не відправлено, невірний формат адреси e-mail: ';
+$PHPMAILER_LANG['signing']              = 'Помилка підпису: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Помилка з\'єднання із SMTP-сервером';
+$PHPMAILER_LANG['smtp_error']           = 'Помилка SMTP-сервера: ';
+$PHPMAILER_LANG['variable_set']         = 'Неможливо встановити або перевстановити змінну: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-vi.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-vi.php
new file mode 100644
index 0000000..c60dade
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-vi.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list.
+ * @package PHPMailer
+ * @author VINADES.,JSC <contact at vinades.vn>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'Lỗi SMTP: Không thể xác thực.';
+$PHPMAILER_LANG['connect_host']         = 'Lỗi SMTP: Không thể kết nối máy chủ SMTP.';
+$PHPMAILER_LANG['data_not_accepted']    = 'Lỗi SMTP: Dữ liệu không được chấp nhận.';
+$PHPMAILER_LANG['empty_message']        = 'Không có nội dung';
+$PHPMAILER_LANG['encoding']             = 'Mã hóa không xác định: ';
+$PHPMAILER_LANG['execute']              = 'Không thực hiện được: ';
+$PHPMAILER_LANG['file_access']          = 'Không thể truy cập tệp tin ';
+$PHPMAILER_LANG['file_open']            = 'Lỗi Tập tin: Không thể mở tệp tin: ';
+$PHPMAILER_LANG['from_failed']          = 'Lỗi địa chỉ gửi đi: ';
+$PHPMAILER_LANG['instantiate']          = 'Không dùng được các hàm gửi thư.';
+$PHPMAILER_LANG['invalid_address']      = 'Đại chỉ emai không đúng: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.';
+$PHPMAILER_LANG['provide_address']      = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.';
+$PHPMAILER_LANG['recipients_failed']    = 'Lỗi SMTP: lỗi địa chỉ người nhận: ';
+$PHPMAILER_LANG['signing']              = 'Lỗi đăng nhập: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Lỗi kết nối với SMTP';
+$PHPMAILER_LANG['smtp_error']           = 'Lỗi máy chủ smtp ';
+$PHPMAILER_LANG['variable_set']         = 'Không thể thiết lập hoặc thiết lập lại biến: ';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-zh.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-zh.php
new file mode 100644
index 0000000..3e9e358
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-zh.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Traditional Chinese PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author liqwei <liqwei at liqwei.com>
+ * @author Peter Dave Hello <@PeterDaveHello/>
+ * @author Jason Chiang <xcojad at gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP 錯誤:登入失敗。';
+$PHPMAILER_LANG['connect_host']         = 'SMTP 錯誤:無法連線到 SMTP 主機。';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP 錯誤:無法接受的資料。';
+$PHPMAILER_LANG['empty_message']        = '郵件內容為空';
+$PHPMAILER_LANG['encoding']             = '未知編碼: ';
+$PHPMAILER_LANG['execute']              = '無法執行:';
+$PHPMAILER_LANG['file_access']          = '無法存取檔案:';
+$PHPMAILER_LANG['file_open']            = '檔案錯誤:無法開啟檔案:';
+$PHPMAILER_LANG['from_failed']          = '發送地址錯誤:';
+$PHPMAILER_LANG['instantiate']          = '未知函數呼叫。';
+$PHPMAILER_LANG['invalid_address']      = '因為電子郵件地址無效,無法傳送: ';
+$PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。';
+$PHPMAILER_LANG['provide_address']      = '必須提供至少一個收件人地址。';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP 錯誤:以下收件人地址錯誤:';
+$PHPMAILER_LANG['signing']              = '電子簽章錯誤: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP 連線失敗';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP 伺服器錯誤: ';
+$PHPMAILER_LANG['variable_set']         = '無法設定或重設變數: ';
+$PHPMAILER_LANG['extension_missing']    = '遺失模組 Extension: ';
diff --git a/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-zh_cn.php b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-zh_cn.php
new file mode 100644
index 0000000..d85a0b1
--- /dev/null
+++ b/drupal/sites/all/libraries/phpmailer/language/phpmailer.lang-zh_cn.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Simplified Chinese PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author liqwei <liqwei at liqwei.com>
+ * @author young <masxy at foxmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP 错误:登录失败。';
+$PHPMAILER_LANG['connect_host']         = 'SMTP 错误:无法连接到 SMTP 主机。';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP 错误:数据不被接受。';
+$PHPMAILER_LANG['empty_message']        = '邮件正文为空。';
+$PHPMAILER_LANG['encoding']             = '未知编码: ';
+$PHPMAILER_LANG['execute']              = '无法执行:';
+$PHPMAILER_LANG['file_access']          = '无法访问文件:';
+$PHPMAILER_LANG['file_open']            = '文件错误:无法打开文件:';
+$PHPMAILER_LANG['from_failed']          = '发送地址错误:';
+$PHPMAILER_LANG['instantiate']          = '未知函数调用。';
+$PHPMAILER_LANG['invalid_address']      = '发送失败,电子邮箱地址是无效的:';
+$PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。';
+$PHPMAILER_LANG['provide_address']      = '必须提供至少一个收件人地址。';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP 错误:收件人地址错误:';
+$PHPMAILER_LANG['signing']              = '登录失败:';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP服务器连接失败。';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP服务器出错: ';
+$PHPMAILER_LANG['variable_set']         = '无法设置或重置变量:';
+//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
diff --git a/drupal/sites/all/libraries/tinymce/changelog.txt b/drupal/sites/all/libraries/tinymce/changelog.txt
new file mode 100644
index 0000000..cf5ba74
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/changelog.txt
@@ -0,0 +1,1519 @@
+Version 3.5b1 (2012-03-08)
+	Added new event class that is faster and enables support for faking events.
+	Added new self_closing_elements, short_ended_elements, boolean_attributes, non_empty_elements and block_elements options to control the HTML Schema.
+	Added new schema option and support for the HTML5 schema.
+	Added new visualblocks plugin that shows html5 blocks with visual borders.
+	Added new types and selector options to make it easier to create editor instances with different configs.
+	Added new preview of formatting options in various listboxes.
+	Added new preview_styles option that enables control over what gets previewed.
+	Fixed bug where content css would be loaded twice into iframe. 
+	Fixed bug where start elements with only whitespace in the attribute part wouldn't be correctly parsed.
+	Fixed bug where the advlink dialog would produce an error about the addSelectAccessibility function not being defined.
+	Fixed bug where the caret would be placed at an incorrect position if span was removed by the invalid_elements setting.
+	Fixed bug where elements inside a white space preserve element like pre didn't inherit the behavior while parsing.
+	Improved behaviour of backspacing into a table to be consistant across browsers and disable backspace when cursor immediately follows a table.
+	Improved edit CSS style plugin for single and multiple block selection and provide option to apply style to only selected text.
+	Fixed bug in Chrome where moving caret down in table and pasting throws errors.
+Version 3.4.9 (2012-02-23)
+	Corrected reference to TinyMCE trim function.
+	Fixed bug where Ignore All in IE did not remove the underline from the selected word.
+	Fixed bug in html source editor word wrap option not wrapping text in Webkit browsers.
+	Fixed bug where it was possible to insert an invalid colour in the color pop-up dialog.
+	Fixed bug in Webkit where if anchor is on last line by itself caret can not be placed after it.
+	Added settings to wordcount plugin to configure update rate and checking wordcount on backspace and delete using wordcount_update_rate and wordcount_update_on_delete.
+	Fixed bug in Webkit and IE where deleting empty paragraphs would remove entire editor contents.
+	Fixed bug where pressing enter on end of list item with a heading would create a new item with heading.	
+	Fixed edit css style dialog text-decoration none checkbox so it disables other text-decoration options when enabled.
+	Fixed bug in Gecko where undo wasn't added when focus was lost.
+	Fixed bug in Gecko where shift-enter in table cell ending with BR doesn't move caret to new line.
+	Fixed bug where right-click on formatted text in IE selected the entire line.
+	Fixed bug where text ending with space could not be unformatted in IE.
+	Fixed bug where caret formatting would be removed when moving the caret when a selector expression was used.
+	Fixed bug where formatting would be applied to the body element when all contents where selected and format had both inline and selector parts.
+	Fixed bug where the media plugin would throw errors if you had iframe set as an invalid element in config.
+	Fixed bug where the caret would be placed at the top of the document if you inserted a table and undo:ed that operation. Patch contributed by Wesley Walser.
+	Fixed bug where content css files where loaded twice into the iframe.
+	Fixed so elements with comments would be trated as non empty elements. Patch contributed by Arjan Scherpenisse.
+Version 3.4.8 (2012-02-02)
+	Fixed bug in IE where selected text ending with space cannot be formatted then formatted again to get original text.
+	Fixed bug in IE where images larger than editor area were being deselected when toolbar buttons are clicked.
+	Fixed bug where wrong text align buttons are active when multiple block elements are selected.
+	Fixed bug where selected link not showing in target field of link dialog in some selection cases.
+	Use settings for remove_trailing_br so this can be turned off instead of hard coding the value.
+	Fixed bug in IE where the media plugin displayed null text when some values aren't filled in.
+	Added API method 'onSetAttrib' that fires when the attribute value on a node changes.
+	Fix font size dropdown value not being updated when text already has a font size in the advanced template.
+	Fixed bug in IE where IE doesn't use ARIA attributes properly on options - causing labels to be read out 2 times.
+	Fixed bug where caret cannot be placed after table if table is at end of document in IE.
+	Fixed bug where adding range isn't always successful so we need to check range count otherwise an exception can occur.
+	Added spacebar onclick handler to toolbar buttons to ensure that the accessibility behaviour works correctly.
+	Fixed bug where a stranded bullet point would get created in WebKit.
+	Fixed bug where selecting text in a blockquote and pressing backspace toggles the style.
+	Fixed bug where pressing enter from a heading in IE, the resulting P tag below it shares the style property. 
+	Fix white space in between spans from being deleted. 
+	Fixed bug where scrollbars where visible in the character map dialog on Gecko.
+	Fixed issue with missing translation for one of the emoticons.
+	Fixed bug where dots in id:s where causing problems. Patch provided by Abhishek Dev.
+	Fixed bug where urls with an at sign in the path wouldn't be parsed correctly. Patch contributed by Jason Grout.
+	Fixed bug where Opera would remove the first character of a inline formatted word if you pressed backspace.
+	Fixed bugs with the autoresize plugin on various browsers and removed the need for the throbber.
+	Fixed performance issue where the contextmenu plugin would try to remove the menu even if it was removed. Patch contributed by mhu.
+Version 3.4.7 (2011-11-03)
+	Modified the caret formatting behavior to word similar to common desktop wordprocessors like Word or Libre Office.
+	Fixed bug in Webkit - Cursor positioning does not work vertically within a table cell with multiple lines of text.
+	Fixed bug in IE where Inserting a table in IE8 places cursor in the second cell of the first row.
+	Fixed bug in IE where editor in a frame doesn't give focus to the toolbar using ALT-F10.
+	Fix for webkit and gecko so that deleting bullet from start of list outdents inner list items and moves first item into paragraph.
+	Fix new list items in IE8 not displayed on a new line when list contains nested list items.
+	Clear formatting in table cell breaks the cell.
+	Made media type list localisable.
+	Fix out of memory error when using prototype in media dialog.
+	Fixed bug where could not add a space in the middle of a th cell.
+	Fixed bug where adding a bullet between two existing bullets adds an extra one
+	Fixed bug where trying to insert a new entry midway through a bulleted list fails dismally when the next entry is tabbed in.
+	Fixed bug where pressing enter on an empty list item does not outdent properly in FF
+	Fixed bug where adding a heading after a list item in a table cell changes all styles in that cell
+	Fixed bug where hitting enter to exit from a bullet list moves cursor to the top of the page in Firefox.
+	Fixed bug where pressing backspace would not delete HRs in Firefox and IE when next to an empty paragraph.
+	Fixed bug where deleting part of the link text can cause a link with no destination to be saved.
+	Fixed bug where css style border widths wasn't handled correctly in table dialog.
+	Fixed bug where parsing invalid html contents on IE or WebKit could produce an infinite loop.
+	Fixed bug where scripts with custom script types wasn't properly passed though the editor.
+	Fixed issue where some Japanese kanji characters wasn't properly entity encoded when numeric entity mode was enabled.
+	Made emoticons dialog use the keyboard naviation.
+	Added navigation instructions to the symbols dialog.
+	Added ability to set default values for the media plugin.
+	Added new font_size_legacy_values option for converting old font element sizes to span with font-size properties.
+	Fixed bug where the symbols dialog was not accessible.
+	Added quirk for IE ensuring that the body of the document containing tinyMCE has a role="application" for accessibility.
+	Fixed bug where the advanced color picker wasn't working properly on FF 7.
+	Fixed issue where the advanced color picker was producing uppercase hex codes.
+	Fixed bug where IE 8 could throw exceptions if the contents contained resizable content elements.
+	Fixed bug where caret formatting wouldn't be correctly applied to previous sibling on WebKit.
+	Fixed bug where the select boxes for font size/family would loose it's value on WebKit due to recent iOS fixes.
+Version 3.4.6 (2011-09-29)
+	Fixed bug where list items were being created for empty divs.
+	Added support in Media plugin for audio media using the embed tag
+	Fixed accessibility bugs in WebKit and IE8 where toolbar items were not being read.
+	Added new use_accessible_selects option to ensure accessible list boxes are used in all browsers (custom widget in firefox native on other browsers)
+	Fixed bug where classid attribute was not being checked from embed objects.
+	Fixed bug in jsrobot tests with intermittently failing.
+	Fixed bug where anchors wasn't updated properly if you edited them using IE 8.
+	Fixed bug where input method on WebKit on Mac OS X would fail to initialize when sometimes focusing the editor.
+	Fixed bug where it wasn't possible to select HR elements on WebKit by simply clicking on them.
+	Fixed bug where the media plugin wouldn't work on IE9 when not using the inlinepopups plugin.
+	Fixed bug where hspace,vspace,align and bgcolor would be removed from object elements in the media plugin.
+	Fixed bug where the new youtube format wouldn't be properly parsed by the media plugin.
+	Fixed bug where the style attribute of layers wasn't properly updated on IE and Gecko.
+	Fixed bug where editing contents in a layer would fail on Gecko since contentEditable doesn't inherit properly.
+	Fixed bug where IE 6/7 would produce JS errors when serializing contents containing layers.
+Version 3.4.5 (2011-09-06)
+	Fixed accessibility bug in WebKit where the right and left arrow keys would update native list boxes.
+	Added new whitespace_elements option to enable users to specify specific elements where the whitespace is preserved.
+	Added new merge_siblings option to formats. This option makes it possible to disable the auto merging of siblings when applying formats.
+	Fixed bug in IE where trailing comma in paste plugin would cause plugin to not run correctly.
+	Fixed bug in WebKit where console messages would be logged when deleting an empty document.
+	Fixed bug in IE8 where caret positioned is on list item instead of paragraph when outdent splits the list
+	Fixed bug with image dialogs not inserting an image if id was omitted from valid_elements.
+	Fixed bug where the selection normalization logic wouldn't properly handle image elements in specific config cases.
+	Fixed bug where the map elements coords attribute would be messed up by IE when serializing the DOM.
+	Fixed bug where IE wouldn't properly handle custom elements when the contents was serialized.
+	Fixed bug where you couldn't move the caret in Gecko if you focused the editor using the API or a UI control.
+	Fixed bug where adjacent links would get merged on IE due to bugs in their link command.
+	Fixed bug where the color split buttons would loose the selection on IE if the editor was placed in a frame/iframe.
+	Fixed bug where floated images in WebKit wouldn't get properly linked.
+	Fixed bug where the fullscreen mode in a separate window wasn't forced into IE9+ standards mode.
+	Fixed bug where pressing enter in an empty editor on WebKit could produce DIV elements instead of P.
+	Fixed bug where spans would get removed incorrectly when merging two blocks on backspace/delete on WebKit.
+	Fixed bug where the editor contents wouldn't be completely removed on backspace/delete on WebKit.
+	Fixed bug where the fullpage plugin wouldn't properly render style elements in the head on IE 6/7.
+	Fixed bug where the nonbreaking_force_tab option in the nonbreaking plugin wouldn't work on Gecko/WebKit.
+	Fixed bug where the isDirty state would become true on non IE browsers if there was an table at the end of the contents.
+	Fixed bug where entities wasn't properly encoded on WebKit when pasting text as plain text.
+	Fixed bug where empty editors would produce an exception of valid_elements didn't include body and forced_root_blocks where disabled.
+	Fixed bug where the fullscreen mode wouldn't retain the header/footer in the fullpage plugin.
+	Fixed issue where the plaintext_mode and plaintext_mode_sticky language keys where swapped.
+Version 3.4.4 (2011-08-04)
+	Added new html5 audio support. Patch contributed by Ronald M. Clifford.
+	Added mute option for video elements and preload options for video/audio patch contributed by Dmitry Kalinkin.
+	Fixed selection to match visual selection before applying formatting changes.
+	Fixed browser specific bugs in lists for WebKit and IE.
+	Fixed bug where IE would scroll the window if you closed an inline dialog that was larger than the viewport. Patch by Laurence Keijmel.
+	Fixed bug where pasting contents near a span element could remove parts of that span. Patch contributed by Wesley Walser.
+	Fixed bug where formatting change would be lost after pressing enter.
+	Fixed bug in WebKit where deleting across blocks would add extra styles.
+	Fixed bug where moving cursor vertically in tables in WebKit wasn't working.
+	Fixed bug in IE where deleting would cause error in console.
+	Fixed bug where the formatter was not applying formats across list elements.
+	Fixed bug where the wordcount plugin would try and update the wordcount if tinymce had been destroyed.
+	Fixed bug where tabfocus plugin would attempt to focus elements not displayed when their parent element was hidden.
+	Fixed bug where the contentEditable state would sometimes be removed if you deleted contents in Gecko.
+	Fixed bug where inserting contents using mceInsertContent would fail if "span" was disabled in valid_elements.
+	Fixed bug where initialization might fail if some resource on gecko wouldn't load properly and fire the onload event.
+	Fixed bug where ctrl+7/8/9 keys wouldn't properly add the specific formats associated with them.
+	Fixed bug where the HTML tags wasn't properly closed in the style plugins properties dialog.
+	Fixed bug where the list plugin would produce an exception if the user tried to delete an element at the very first location.
+Version 3.4.3.2 (2011-06-30)
+	Fixed bug where deleting all of a paragraph inside a table cell would behave badly in webkit.
+	Fixed bugs in tests in firefox5 and WebKit.
+	Fixed bug where selection of table cells would produce an exception on Gecko.
+	Fixed bug where the caret wasn't properly rendered on Gecko when the editor was hidden.
+	Fixed bug where pasting plain text into WebKit would produce a pre element it will now produce more semantic markup.
+	Fixed bug where selecting list type formats using the advlist plugin on IE8 would loose editor selection.
+	Fixed bug where forced root blocks logic wouldn't properly pad elements created if they contained data attributes.
+	Fixed bug where it would remove all contents of the editor if you inserted an image when not having a caret in the document.
+	Fixed bug where the YUI compressor wouldn't properly encode strings with only a quote in them.
+	Fixed bug where WebKit on iOS5 wouldn't call nodeChanged when the selection was changed.
+	Fixed bug where mceFocus command wouldn't work properly on Gecko since it didn't focus the body element.
+	Fixed performance issue with the noneditable plugin where it would enable/disable controls to often.
+Version 3.4.3.1 (2011-06-16)
+	Fixed bug where listboxes were not being handled correctly by JAWS in firefox with the o2k7 skin.
+	Fixed bug where custom buttons were not being rendered correctly when in high contrast mode.
+	Added support for iOS 5 that now supporting contentEditable in it's latest beta.
+	Fixed bug where urls in style attributes with a _ character followed by a number would cause incorrect output.
+	Fixed bug where custom_elements option wasn't working properly on IE browsers.
+	Fixed bug where custom_elements marked as block elements wouldn't get correctly treated as block elements.
+	Fixed bug where attributes with </> wasn't properly encoded as XML entities.
+Version 3.4.3 (2011-06-09)
+	Fixed bug where deleting backwards before an image into a list would put the cursor in the wrong location.
+	Fixed bug where styles plugin would not apply styles across multiple selected block elements correctly.
+	Fixed bug where cursor would jump to start of document when selection contained empty table cells in IE8.
+	Fixed bug where applied styles wouldn't be kept if you pressed enter twice to produce two paragraphs.
+	Fixed bug where a ghost like caret would appear on Gecko when pressing enter while having a text color applied.
+	Fixed bug where IE would produce absolute urls if you inserted a image/link and reloaded the page.
+	Fixed bug where applying a heading style to a list item would cascade style to children list items.
+	Fixed bug where Editor loses focus when backspacing and changing styles in WebKit.
+	Fixed bug where exception was thrown in tinymce.util.URI when parsing a relative URI and no base_uri setting was provided.
+	Fixed bug where alt-f10 was not always giving focus to the toolbar on Safari.
+	Added new 'allow_html_in_named_anchor' option to allow html to occur within a named anchor tag.  Use at own risk.
+	Added plugin dependency support.  Will autoload plugins specified as a dependency if they haven't been loaded.
+	Fixed bug where the autolink plugin didn't work with non-English keyboards when pressing ).
+	Added possibility to change properties of all table cells in a column.
+	Added external_image_list option to get images list from user-defined variable or function.
+	Fixed bug where the autoresize plugin wouldn't reduce the editors height on Chrome.
+	Fixed bug where table size inputs were to small for values with size units.
+	Fixed bug where table cell/row size input values were not validated.
+	Fixed bug where menu item line-height would be set to wrong value by external styles.
+	Fixed bug where hasUndo() would return wrong answer.
+	Fixed bug where page title would be set to undefined by fullpage plugin.
+	Fixed bug where HTML5 video properties were not updated in embedded media settings.
+	Fixed bug where HTML comment on the first line would cause an error.
+	Fixed bug where spellchecker menu was positioned incorrectly on IE.
+	Fixed bug where breaking out of list elements on WebKit would produce a DIV instead of P after the list.
+	Fixed bug where pasting from Word in IE9 would add extra BR elements when text was word wrapped.
+	Fixed bug where numeric entities with leading zeros would produce incorrect decoding.
+	Fixed bug where hexadecimal entities wasn't properly decoded.
+	Fixed bug where bookmarks wasn't properly stored/restored on undo/redo.
+	Fixed bug where the mceInsertCommand didn't retain the values of links if they contained non url contents.
+	Fixed bug where the valid_styles option wouldn't be properly used on styles for specific elements.
+	Fixed so contentEditable is used for the body of the editor if it's supported.
+	Fixed so trailing BR elements gets removed even when forced_root_blocks option was set to false/null.
+	Fixed performance issue with mceInsertCommand and inserting very simple contents.
+	Fixed performance issue with older IE version and huge documents by optimizing the forced root blocks logic.
+	Fixed performance issue with table plugin where it checked for selected cells to often.
+	Fixed bug where creating a link on centered/floated image would produce an error on WebKit browsers.
+	Fixed bug where Gecko would remove single paragraphs if there where contents before/after it.
+	Fixed bug where the scrollbar would move up/down when pasting contents using the paste plugin.
+Version 3.4.2 (2011-04-07)
+	Added new 'paste_text_sticky_default' option to paste plugin, enables you to set the default state for paste as plain text.
+	Added new autoresize_bottom_margin option to autoresize plugin that enables you to add an extra margin at the bottom. Patch contributed by Andrew Ozz.
+	Rewritten the fullpage plugin to handle style contents better and have a more normalized behavior across browsers.
+	Fixed bug where contents inserted with mceInsertContent wasn't parsed using the default dom parser.
+	Fixed bug where blocks containing a single anchor element would be treated as empty.
+	Fixed bug where merging of table cells on IE 6, 7 wouldn't look correctly until the contents was refreshed.
+	Fixed bug where context menu wouldn't work properly on Safari since it was passing out the ctrl key as pressed.
+	Fixed bug where image border color/style values were overwritten by advimage plugin.
+	Fixed bug where setting border in advimage plugin would throw error in IE.
+	Fixed bug where empty anchors list in link settings wasn't hidden.
+	Fixed bug where xhtmlextras popups were missing localized popup-size parameters.
+	Fixed bug where the context menu wouldn't select images on WebKit browsers.
+	Fixed bug where paste plugin wouldn't properly extract the contents on WebKit due to recent changes in browser behavior.
+	Fixed bug where focus of the editor would get on control contents on IE lost due to a bug in the ColorSplitButton control.
+	Fixed bug where contextmenu wasn't disabled on noneditable elements.
+	Fixed bug where getStyle function would trigger error when called on element without style property.
+	Fixed bug where editor fail to load if Javascript Compressor was used.
+	Fixed bug where list-style-type=lower-greek would produce errors in IE<8.
+	Fixed bug where spellchecker plugin would produce errors on IE6-7.
+	Fixed bug where theme_advanced_containers configuration option causes error.
+	Fixed bug where the mceReplaceContent command would produce an error since it didn't correctly handle a return value.
+	Fixed bug where you couldn't enter float point values for em in dialog input fields since it wouldn't be considered a valid size.
+	Fixed bug in xhtmlxtras plugin where it wasn't possible to remove some attributes in the attributes dialog.
+Version 3.4.1 (2011-03-24)
+	Added significantly improved list handling via the new 'lists' plugin.
+	Added 'autolink' plugin to enable automatically linking URLs. Similar to the behavior IE has by default.
+	Added 'theme_advanced_show_current_color' setting to enable the forecolor and backcolor buttons to continuously show the current text color.
+	Added 'contextmenu_never_use_native' setting to disable the ctrl-right-click showing the native browser context menu behaviour.
+	Added 'paste_enable_default_filters' setting to enable the default paste filters to be disabled.
+	Fixed bug where selection locations on undo/redo didn't work correctly on specific contents.
+	Fixed bug where an exception would be trown on IE when loading TinyMCE inside an iframe.
+	Fixed bug where some ascii numeric entities wasn't properly decoded.
+	Fixed bug where some non western language codes wasn't properly decoded/encoded.
+	Fixed bug where undo levels wasn't created when deleting contents on IE.
+	Fixed bug where the initial undo levels bookmark wasn't updated correctly.
+	Fixed bug where search/replace wouldn't be scoped to editor instances on IE8.
+	Fixed bug where IE9 would produce two br elements after block elements when pasting.
+	Fixed bug where IE would place the caret at an incorrect position after a paste operation.
+	Fixed bug where a paste operation using the keyboard would add an extra undo level.
+	Fixed bug where some attributes/elements wasn't correctly filtered when invalid contents was inserted.
+	Fixed bug where the table plugin couldn't correctly handle invalid table structures.
+	Fixed bug where charset and title of the page were handled incorrectly by the fullpage plugin.
+	Fixed bug where toggle states on some of the list boxes didn't update correctly.
+	Fixed bug where sub/sub wouldn't work correctly when done as a caret action in Chrome 10.
+	Fixed bug where the constrain proportions checkbox wouldn't work in the media plugin.
+	Fixed bug where block elements containing trailing br elements wouldn't treated properly if they where invalid.
+	Fixed bug where the color picker dialog wouldn't be rendered correctly when using the o2k7 theme.
+	Fixed bug where setting border=0 using advimage plugin invalid style attribute content was created in Chrome.
+	Fixed bug with references to non-existing images in css of fullpage plugin.
+	Fixed bug where item could be unselected in spellchecker's language selector.
+	Fixed bug where some mispelled words could be not highlighted using spellchecker plugin.
+	Fixed bug where spellchecking would merge some words on IE.
+	Fixed bug where spellchecker context menu was not always positioned correctly.
+	Fixed bug with empty anchors list in advlink popup when Invisible Elements feature was disabled.
+	Fixed bug where older IE versions wouldn't properly handle some elements if they where placed at the top of editor contents.
+	Fixed bug where selecting the whole table would enable table tools for cells and rows.
+	Fixed bug where it wasn't possible to replace selected contents on IE when pasting using the paste plugin.
+	Fixed bug where setting text color in fullpage plugin doesn't work.
+	Fixed bug where the state of checkboxes in media plugin wouldn't be set correctly.
+	Fixed bug where black spade suit character was not included in special character selector.
+	Fixed bug where setting invalid values for table cell size would throw an error in IE.
+	Fixed bug where spellchecking would remove whitespace characters from PRE block in IE.
+	Fixed bug where HR was inserted inside P elements instead of splitting them.
+	Fixed bug where extra, empty span tags were added when using a format with both selector and inline modes.
+	Fixed bug where bullet lists weren't always detected correctly.
+	Fixed bug where deleting some paragraphs on IE would cause an exception.
+	Fixed bug where the json encoder logic wouldn't properly encode \ characters.
+	Fixed bug where the onChange event would be fired when the editor was first initialized.
+	Fixed bug where mceSelected wouldn't be removed properly from output even if it's an internal class.
+	Fixed issue with table background colors not being transparent. This improves compliance with users browser color preferences.
+	Fixed issue where styles were not included when using the full page plugin.
+	Fixed issue where drag/drop operations wasn't properly added to the undo levels.
+	Fixed issue where colors wasn't correctly applied to elements with underline decoration.
+	Fixed issue where deleting some paragraphs on IE would cause an exception.
+Version 3.4 (2011-03-10)
+	Added accessibility example with various accessibility options contributed by Ephox.
+	Fixed bug where attributes wasn't properly handled in the xhtmlxtras plugin.
+	Fixed bug where the image.htm had some strange td artifacts probably due to auto merging.
+	Fixed bug where the ToolbarGroup had an missing reference to this in it's destroy method.
+	Fixed bug with the resizeBy function in the advanced theme where it was scaled by the wrong parent.
+	Fixed bug where an exception would be thrown by the element if the page was served in xhtml mode.
+	Fixed bug where mceInsertContent would throw an exception when page was served in xhtml mode.
+	Fixed bug where you couldn't select a forground/background color when page was served in xhtml mode.
+	Fixed bug where the editor would scroll to the toolbar when clicked due to a call to focus in ListBox.
+	Fixed bug where pages with rtl dir wouldn't render split buttons correctly when using the o2k7 theme.
+	Fixed bug where anchor elements with names wasn't properly collapsed as they where in 3.3.x.
+	Fixed bug where WebKit wouldn't properly handle image selection if it was done left to right.
+	Fixed bug where the formatter would align images when the selection range was collapsed.
+	Fixed bug where the image button would be active when the selection range was collapsed.
+	Fixed bug where the element_format option wasn't used by the new (X)HTML serializer logic.
+	Fixed bug where the table cell/row dialogs would produce empty attributes.
+	Fixed bug where the tfoot wouldn't be added to the top of the table.
+	Fixed bug where the formatter would merge siblings with white space between them.
+	Fixed bug where pasting headers and paragraphs would produce an extra paragraph.
+	Fixed bug where the ColorSplitButton would throw an exception if you clicked out side a color.
+	Fixed bug where IE9 wouldn't properly produce new paragraphs on enter if the current paragraph had formatting.
+	Fixed bug where multiple BR elements at end of block elements where removed.
+	Fixed bug where fullscreen plugin wouldn't correctly display the edit area on IE6 for long pages.
+	Fixed bug where paste plugin wouldn't properly encode raw entities when pasting in plain text mode.
+	Fixed bug where the search/replace plugin wouldn't work correctly on IE 9.
+	Fixed so the drop menus doesn't get an outline border visible when focused, patch contributed by Ephox.
+	Fixed so the values entered in the color picker are forced to hex values.
+	Removed dialog workaround for IE 9 beta since the RC is now out and people should upgrade.
+	Removed obsolete calls in various plugins to the mceBeginUndoLevel command.
+Version 3.4b3 (2011-02-10)
+	Added WAI-ARIA support for the main UI and dialogs this feature was contributed by Ephox.
+	Added iframe support to media plugin in order to handle the new YouTube HTML5 video formats.
+	Fixed bug where anchors would wrap the text contents after it due to a bug in the DomParser logic.
+	Fixed bug where the selected state wouldn't be removed on ListBox controls when a menu item was selected.
+	Fixed bug where IE could throw an unspecified error exception when the getBookmark logic was executed.
+	Fixed bug where IE would throw an invalid argument error when focus was applied to an empty editor instance.
+	Fixed bug where applying inline format wouldn't work if the start cell in the selection was empty.
+	Fixed bug where auto detection logic for YouTube and Google Video wouldn't work in the new media plugin.
+	Fixed bug where td elements would get a colspan/rowspan of 1 when created by the table plugin.
+	Fixed bug where removal/padding of empty elements wasn't handled correctly.
+	Fixed bug where internal elements would show up in element path.
+	Fixed bug where internal elements would get serialized as valid output.
+	Fixed bug where color wasn't correctly applied to anchor elements.
+	Fixed bug where float option in the style plugin dialog wouldn't be handled correctly on WebKit.
+	Fixed bug where the tinymce.dom.TreeWalker prev function wouldn't walk the DOM correctly.
+	Fixed bug where mceInsertContent command could produce empty block elements after the inserted content.
+	Fixed bug where mceInsertContent command wouldn't apply visual aids on tables and similar elements.
+	Fixed bug where empty block elements would get double br bogus elements in them.
+	Fixed bug where the color menu wouldn't apply the color correctly on IE when the viewport was to small.
+	Fixed bug where right clicking out side the body element of the editor iframe would prevent paste from working on IE.
+	Fixed bug where the onContextMenu event wouldn't fire correctly on IE if you clicked out side the body element.
+	Fixed bug where the onContextMenu event wouldn't fire correctly on modern Opera versions that now support it by default.
+	Fixed bug where legacy content wasn't converted correctly when inserted using mceInsertContent or through the source dialog.
+	Fixed bug where resizing images or tables wouldn't update the style attribute correctly or leave data-mce prefixed attributes.
+	Fixed bug where adding links wouldn't work correctly when using TinyMCE jQuery version with jQuery 1.5.
+	Fixed bug where single quotes inside param elements wasn't treated correctly by the media plugin.
+	Fixed bug where pasting plain text in WebKit wouldn't work correctly. It will now auto detect the WebKit bug and use plain text mode.
+	Fixed bug where the DomParser would fail to move out invalid elements within invalid elements on complex contents.
+	Fixed bug where paste as plain text would not decode html entities properly.
+	Fixed bug where large paragraphs would cause incorrect scrolling behavior if you would split them using enter.
+	Fixed bug where the SaxParser wouldn't properly parse some specific short ended elements.
+	Fixed so mceReplaceContent supports caret position and makes sure that the contents inserted gets validated.
+	Fixed so unnecessary traling br elements in blocks gets removed on Gecko/WebKit when using mceInsertContent command.
+	Moved some plugin css contents into the skin content css files to reduce the number of http requests.
+	Moved some plugin specific images into the theme img directory since they can then be shared.
+Version 3.4b2 (2011-01-13)
+	Added new custom flash player, this player supports mp4 and flv and has skin support.
+	Fixed so mceInsertContent handles context correctly to enforce valid nesting of elements.
+	Fixed bug where scrolling would become jerky on IE on some contents.
+	Fixed bug where paste as plain text would throw exception of missing entities setting.
+	Fixed bug where anchor nodes where removed by the new serializer engine.
+	Fixed bug where IE would crash if when backspace where used on some specific contents.
+	Fixed bug where pasting of plain text in WebKit would result in merging of text lines.
+	Fixed bug where it wasn't possible to delete images or tables using backspace on IE9.
+	Fixed bug where urls in styles would generate a JS error due to incorrect scope.
+	Fixed bug where copy paste from Java applications would produce extra contents in FF on Mac.
+	Fixed bug where the verify_html option wouldn't allow all elements and attributes.
+Version 3.4b1 (2010-12-20)
+	Added new serialization engine that increases performance and enforces valid output according to the specified schema settings.
+	Added new HTML parser logic used by the serialization engine and can handle malformed html contents.
+	Added new valid_children config option, enables more fine grain control of elements can be inside other elements.
+	Added new entities encoding logic boost performance and will only encode entities based on context i.e. attributes/text nodes.
+	Added new protect setting that enables users to protect template items from being removed by the serializer logic.
+	Added new {$caret} marker for the mceInsertContent command. Makes it possible to move the caret to a specific position when inserting contents.
+	Added new validation of anchor names. Only valid W3C names will be accepted.
+	Replaced the internal _mce_ prefixed attributes to the more standard HTML5 data-mce- prefix. This will also resolve future browser santiaztion issues.
+	Fixed bug where the paste plugin wouldn't convert Word lists with more than 9 items to real ol lists. Patch contributed by Mike (yogaboy).
+	Fixed bug where clicking on a format title would produce errors if the current selection didn't have any formats.
+	Fixed bug where paste of simple texts wouldn't work correctly in Gecko using the paste plugin since it keeps block formatting.
+	Fixed bug where confirm dialogs didn't display correctly due to resent IE9 fixes.
+	Fixed bug where spaces in URLs wouldn't be properly encoded to %20 if the user entered them in the link dialogs. Patch contributed by Ephox.
+	Fixed bug where the image alignment buttons wouldn't reposition the resize handles on FF due to a browser issue. Patch contributed by Ephox.
+	Fixed bug where the compareBoundaryPoints method of the IE Range class didn't work correctly. Patch contributed by Ephox.
+	Fixed bug where selection of elements using double click wouldn't select the clicked element but rather the parent node on FF. Patch contributed by Ephox.
+	Fixed bug where IE would scroll the user to the current selection causing parent document to scroll as well. Patch contributed by Ephox.
+	Fixed bug where style compression would incorrectly compress items with different values. It now only compresses if the values are the same. Patch contributed by Ephox.
+	Fixed bug where FF would add non breaking spaces outside TD elements if formatting was applied to table cells. Patch contributed by Ephox.
+	Fixed bug where the caret position would be lost on WebKit browsers if you pasted images multiple times. Patch contributed by Ephox.
+	Fixed bug where non word contents like * would be counted as words in the wordcount pluging. Patch contributed by David Balatero.
+	Fixed bug where the toggle absolute button in the layer plugin wouldn't remove the existing internal style attribute first.
+	Fixed bug where the autosave plugin would generate an exception on IE if the user had disabled userdata persistence.
+	Fixed bug where the paste plugin would remove dashed classes on IE since the regexps didn't include that character.
+	Fixed bug where applying text color would not add spans inside link elements. This is needed due to CSS style inheritance.
+	Fixed bug where applying block formats to empty elements wouldn't render correctly on IE.
+	Fixed bug where the searchreplace plugin would add a f or r character when shortcuts where used on IE while using default dialogs.
+	Fixed bug where Opera wouldn't load scripts correctly since the onreadystate would fire even though the script wasn't loaded.
+	Fixed issue where   wouldn't be handled correctly in the bbcode plugin if entity_encoding was set to raw.
+	Fixed issue where contents would flicker since the content css files where asynchronously loaded.
+	Fixed bug where WebKit wouldn't create links on images with a float style.
+Version 3.3.9.3 (2010-12-20)
+	Fixed issue where WebKit wouldn't correctly apply ins/del in xhtmlxtras plugin.
+	Fixed bug where paste as plaintext on WebKit wouldn't produce br and p elements correctly.
+	Fixed bug where the confirm dialog texts would be incorrectly placed due to recent IE 9 workarounds in the window.css.
+	Fixed bug where applying text color would not add spans inside link elements. This is needed due to CSS style inheritance.
+Version 3.3.9.2 (2010-09-29)
+	Fixed bug where placing the caret in IE 9 beta 1 would not work correctly if you clicked out side the document body element.
+	Fixed bug where IE 9 beta 1 wouldn't resize the editor correctly since the events didn't fire as previous versions did.
+	Fixed bug where FF would produce an error message when being rendered inside a hidden div element.
+	Fixed bug where resize logic could produce a cookie with a width/height less than the size of the container.
+	Fixed bug where content_css wouldn't populate the styles dropdown correctly.
+Version 3.3.9.1 (2010-09-23)
+	Fixed bug where WebKit browsers wouldn't activate the image button when images where selected.
+	Fixed bug where Opera Presto 10.60 deletes elements when restoring bookmarks.
+	Fixed bug where IE9 beta1 doesn't handle regexp replacement values correctly.
+	Fixed bug where IE9 beta1 didn't render the inline dialogs correctly due to a bug with CSS clip.
+	Fixed bug where IE9 beta1 would produce error messages on load since they removed the document.recalc method.
+	Fixed bug where IE9 beta1 would produce <html xmlns=""> since they haven't implemented document.implementation.createDocument correctly.
+	Fixed bug where IE9 beta1 would searchreplace doesn't work since their native DOM Range doesn't have a find method.
+	Fixed bug where IE9 beta1 would render the source view incorrectly due to incorrect viewport size measurements.
+	Fixed bug where IE9 beta1 would crash when running the basic functionality unit tests.
+	Fixed bug where IE9 beta1 would wrap elements in blocks correctly due to changes to the selection object.
+	Fixed bug where IE9 beta1 would fail to insert contents since they havn't implemented the createContextualFragment method in their DOM Range.
+	Fixed bug where IE9 beta1 would fail to handle image selection since they currently doesn't support control selections in their DOM Range.
+	Fixed bug where IE9 beta1 would fail to load scripts since they fire the onload event before the scripts are parsed and executed.
+Version 3.3.9 (2010-09-08)
+	Fixed bug where inserting table rows into a table with subtable would produce an incorrect column count.
+	Fixed bug where the selection of cells in a table with subtables could produce invalid selections.
+	Fixed bug where the table plugin would produce a script error if you tried to move the caret before a first child table.
+	Fixed bug where the keep_styles feature on IE would move the caret to an incorrect location at the end of list blocks.
+	Fixed so attributes from legacy elements such as font gets retained when they get converted to spans.
+	Fixed minor issue where the select boxes wouldn't be set the not set by default in the table dialog.
+Version 3.3.8 (2010-06-30)
+	On IE8+ and FireFox 3.5+, dragging an image now correctly adds an undo
+	event.
+	Fixed bug where WebKit would not move the caret to a correct position after a paste operation.
+	Fixed bug where WebKit would produce a div wrapper element when pasting some contents.
+	Fixed bug where the visual chars and nonbreaking plugin wouldn't show nbsp elements correctly.
+	Fixed bug where the format states would be enabled even after the format was removed.
+	Fixed bug where the delete key would move the caret to an incorrect position.
+	Fixed bug where it wasn't possible to toggle of the current font size/family/style by clicking the title item.
+	Fixed bug where the abbr element wouldn't get serialized correctly on IE6.
+	Fixed so that the examples checks if they are executed from the local file system since that might not work properly.
+Version 3.3.7 (2010-06-10)
+	Fixed bug where context menu would produce an error on IE if you right clicked twice and left clicked once.
+	Fixed bug where resizing of the window on WebKit browsers in fullscreen mode wouldn't position the statusbar correctly.
+	Fixed bug where IE would produce an error if the editor was empty and you where undoing to that initial level.
+	Fixed bug where setting the table background on gecko would produce \" entities inside the url style property.
+	Fixed bug where the button states wouldn't be updated correctly on IE if you placed the caret inside the new element.
+	Fixed bug where undo levels wasn't properly added after applying styles or font sizes.
+	Fixed bug where IE would throw an error if you used "select all" on empty elements and applied formatting to that.
+	Fixed bug where IE could select one extra character when you did a bookmark call on a caret location.
+	Fixed bug where IE could produce a script error on delete since it would sometimes produce an invalid DOM.
+	Fixed bug where IE would return the wrong start element if the whole element was selected.
+	Fixed bug where formatting states wasn't updated on IE if you pressed enter at the end of a block with formatting.
+	Fixed bug where submenus for the context menu wasn't removed correctly when the editor was destroyed.
+	Fixed bug where Gecko could select the wrong element after applying format to multiple elements.
+	Fixed bug where Gecko would delete parts of the previous element if the selection range was a element selection.
+	Fixed bug where Gecko would not merge paragraph elements correctly if they contained br elements.
+	Fixed bug where the cleanup button could produce span artifacts if you pressed it twice in a row.
+	Fixed bug where the fullpage plugin header/footer would be have it's header reseted to it's initial state on undo.
+	Fixed bug where an empty paragraph would be collapsed if you performed a cleanup while having the caret inside it.
+	Fixed a few memory leaks on IE especially with drop menus in listboxes and the spellchecker.
+	Fixed so formats applied to the current caret gets merged to reduce the number of output elements.
+	Added the latest version of Sizzle for the CSS selector logic to fix a compatibility issue with prototype.
+Version 3.3.6 (2010-05-20)
+	Fixed bug where a editor.focus call could produce errors on IE in very specific scenarios.
+	Fixed bug where Gecko would produce an error if you unformatted text inside an empty element.
+	Fixed bug where IE would produce an error if the caret was placed before a table and you used the align buttons.
+	Fixed bug where the font size drop down didn't display the a preview correctly.
+	Fixed bug where the paste plugin wouldn't include all contents some times on WebKit browsers.
+	Fixed bug where the plain text mode toggle wouldn't work properly on WebKit.
+	Fixed bug where the editors statusbar would become invisible when you resized the window in fullscreen mode.
+Version 3.3.5.1 (2010-05-07)
+	Fixed a critical bug with the fullscreen plugin. Produced error messages when the state was toggled on/off.
+Version 3.3.5 (2010-05-06)
+	Added new merge_with_parents option to formats, enables the control of removal of elements with similar parents.
+	Fixed so the default behavior for applying classes isn't a toggle state but the old behavior from before the 3.3 release.
+	Fixed bug where selecting contents using double click on Gecko would produce errors when using removing format.
+	Fixed bug where the IE DOM could get messed up when non valid contents was pasted into the editor.
+	Fixed bug where merging selected table cells using the context menu didn't work as expected.
+	Fixed bug where some nestled formatting would be applied incorrectly.
+	Fixed bug with enter in list items when using the force_br_newlines mode on WebKit patch contributed by Ryan Koopmans.
+	Fixed bug where undo/redo could produce js errors on some specific operations.
+	Fixed bug where the theme_advanced_font_sizes didn't work as before 3.3 when complex settings where used.
+	Fixed bug where the table plugin would copy cell/row id attributes when making new rows/cells.
+Version 3.3.4 (2010-04-27)
+	Fixed bug where fullscreen plugin would add two editor instances to EditorManager collection.
+	Fixed bug where it was difficult to enter text on non western languages such as Japanese on IE.
+	Fixed bug where removing contents from nodes could result in an exception when using undo/redo.
+	Fixed bug with selection of images inside layers or other resizable containers on IE.
+	Fixed so editors isn't initialized on iPhone/iPad devices since they don't have caret support.
+Version 3.3.3 (2010-04-19)
+	Added new script_loaded callback function setting for the jQuery plugin.
+	Added various fixes and new rpc methods for the spellchecker plugin. Patch contributed by Michael Peters.
+	Removed some unnecessary inline style information from some of the dialogs.
+	Fixed some issues with the chaining for the TinyMCE jQuery plugin.
+	Fixed so any extra arguments passed to patched jQuery functions gets passed through. Patch contributed by Lee Henson.
+	Fixed so spellchecking/contextmenu can be toggled on/off if the browser has native spellchecker support.
+	Fixed bug where some texts in the new paste plugin wasn't placed in language pack.
+	Fixed bug where IE would produce an incorrect information message when cutting.
+	Fixed bug where removing items using the xhtmlxtras plugin wouldn't work correctly.
+	Fixed bug where setting table background images would add extra quotes on Gecko.
+	Fixed bug where shortcut for bold/italic/underline wouldn't work properly on WebKit.
+	Fixed bug where IE would produce an error message if only contents was an image tag and bold was used.
+	Fixed bug where the caret would move if alignment was applied to empty block elements.
+	Fixed bug where some shortcut key commands wouldn't apply formatting correctly.
+Version 3.3.2 (2010-03-25)
+	Fixed bug where it was possible to scale the editor iframe smaller than the editor UI.
+	Fixed bug where some of the resizing option didn't work with the new live resize.
+	Fixed bug where the format listbox didn't show nestled formats correctly.
+	Fixed bug where the native listboxes didn't work correctly.
+	Fixed bug where font size selection in using the legacyoutput plugin would produce errors.
+	Fixed so block and blockquote formats remove their matching element regardless of it's attributes.
+Version 3.3.1 (2010-03-18)
+	Added new live resize feature, the editor contents is now visible while resizing.
+	Fixed bug where some valid_element patterns would produce an unknown property error.
+	Fixed bug where it wasn't possible to toggle off blockquotes.
+	Fixed bug where an undo level wasn't produced when applying formatting using the styles dropdown.
+	Fixed bug where IE 6/7 wouldn't perform caret formatting due to a focus/event bug in IE.
+	Fixed bug where undo/redo wasn't restoring the previous selection correctly.
+	Fixed bug where the caret would become invisible if you resized the editor in latest Gecko.
+	Fixed bug where the class attribute wasn't completely removed in IE 6/7 when the removeClass function was used.
+	Fixed so the matchNode method of the Formatter class returns the matched format rule.
+	Fixed so it's possible to apply formatting to both blocks and as inline elements.
+Version 3.3 (2010-03-10)
+	Fixed bug where backspace on a table on IE would produce an empty tbody and some JS exceptions.
+	Fixed bug where some redundant children wasn't removed properly when applying inline styles to them.
+	Fixed bug where Chrome would produce incorect dialog sizes if the inlinepopups plugin wasn't used.
+	Fixed bug where spans with different classes would get merged if they where siblings to each other.
+	Fixed bug where IE 8 would crash if you used the spellchecker.
+	Fixed bug where Input Method for non western languages didn't work correctly.
+	Fixed bug where the UI would render incorrectly in FF 3.6 on Mac due to a bug n their rendering engine.
+	Fixed bug where WebKit wouldn't scroll down correctly if Shift+Enter was used. Patch contributed by Thomas Andersen.
+Version 3.3rc1 (2010-02-23)
+	Fixed bug with new legacyoutput plugin not working correctly on it's own.
+	Fixed bug some performance issues with removing text formats.
+	Fixed bug where TinyMCE specific attributes wasn't removed properly by remove format.
+	Fixed bug where it wasn't possible to align images within inline elements.
+	Fixed bug where Ctrl+Delete/Backspace would produce an invalid argument exception on IE.
+	Fixed bug where the search/replace logic could produce an infinite loop on IE for reverse searches.
+	Fixed bug where cloning formats in cells didn't work properly on IE.
+	Fixed bug where IE6 would produce a horizontal scroll bar.
+	Fixed so remove jQuery method removes the TinyMCE instance as well as the specified textarea.
+	Fixed so selected rows and cells gets updated using the row/cell properties dialogs.
+Version 3.3b2 (2010-02-04)
+	Fixed bug where sometimes img elements would be removed by split method in DOMUtils.
+	Fixed bug where merging of span elements could occur on bookmark nodes.
+	Fixed bug where classes wasn't properly removed when removeformat was used on IE 6.
+	Fixed bug where multiple calls to an tinyMCE.init with mode set to exact could produce the same unique ID.
+	Fixed bug with the IE selection implementation when it was feeded an document range.
+	Fixed bug where block elements formatting wasn't properly removed by removeformat on all browsers.
+	Fixed bug where selection location was lost if you performed a manual cleanup.
+	Fixed bug where removeformat wouldn't remove span elements within styled block elements.
+	Fixed bug where an error would be thrown if you clicked on the separator lines in menus.
+	Fixed bug with the jQuery plugin adding always adding a querystring value to other resources.
+	Fixed bug where IE would produce an error message if you had an empty editor instance.
+	Fixed bug where Shift+Enter didn't produce br elements on WebKit browsers.
+	Fixed bug where a temporary marker element wasn't removed by the paste plugin.
+	Fixed bug where inserting a table would produce two undo levels instead of one.
+Version 3.3b1 (2010-01-25)
+	Added new text formatting engine. Fixes a lot of browser quirks and adds new possibilities.
+	Added new advlist plugin that enables you to set the formats of list elements.
+	Added new paste plugin logic that enables you to retain style information from Office.
+	Added new autosave plugin logic that automatically saves contents in local storage.
+	Added new valid_styles option. Adds the possibility to restrict styles and their order.
+	Added new theme_advanced_runtime_fontsize option to display the runtime font size in font size select box.
+	Added new jquery plugin version that handles the gzip compressor amongst other things. Contributed by Speednet.
+	Added new $ function to tinymce namespace and editor instances for the jQuery build.
+	Added the possibility to get editors by index as well as name in the tinyMCE.editors collection.
+	Fixed so the contents inside the editor renders in standards mode by default.
+	Fixed bug where it wasn't possible to move the caret on short documents running in standards mode on IE.
+	Fixed bug where the decode method of the DOMUtils class could end up in an endless loop.
+	Fixed bug where it was possible to bypass the paste cleanup on non IE browsers if you clicked while pasting.
+	Fixed bug where some attributes wasn't serialized correctly on IE if wildcard attribute patters where used.
+	Fixed bug where entity decoding was performed on strings that didn't have any valid entities in them.
+	Fixed bugs with the insertNode method of the IE DOMRange implementation. Patch contributed by Scott McNaught.
+	Rewrote the getBookmark/moveToBookmark selection logic to boost performance on larger documents.
+	Rewrote the table plugin to include new cell selection logic and fixed various bugs and issues.
+	Merged the tinyMCE, tinymce and tinymce.EditorManager into the same instance makes more sense.
+	Removed browser setting since the browser support for TinyMCE is not far better than it was when that setting was introduced.
+	Changed the mce_ attribute prefix to the more standard _mce_ prefix. This is similar to browser vendors prefixes.
+	Optimized performance with named entities on Gecko. Regexp replace was executing very slowly probably due to a Gecko bug.
+	Optimized performance of the IE specific selection/range implementation.
+	Removed the safari plugin since we now replaced all text formatting logic to custom code.
+Version 3.2.7 (2009-09-22)
+	Fixed bug where uppercase paragraphs could still produce an invalid DOM tree on IE.
+	Fixed bug where split command didn't work on WebKit since the node serializer needs a real document to work with.
+	Fixed bug where it was impossible in Gecko to place the caret before a table if it was the first one.
+	Fixed bug where linking to urls like ../../ would produce an extra traling slash ../..//.
+	Fixed bug where the template cdate functionality was using an old 2.x API call. Patch contributed by vectorjohn.
+	Fixed bug where urls to the same site but different protocol would be converted when relative_urls where set to false. Patch contributed by Ted Rust.
+	Fixed bug where the paste plugin would remove mceItem prefixed classes.
+	Fixed bug where the paste plugin would sometimes add items in a reverse order on WebKit.
+	Fixed bug where the paste buttons would present an error message on Gecko even if you changed user.js. Patch contributed by Todd (teeaykay).
+	Fixed bug where Opera would crash if you had tables incorrectly placed inside paragraphs.
+	Fixed bug where styles elements wasn't properly processed if you had bad input HTML.
+	Fixed bug where style attributes wasn't properly forced into a specific format.
+	Fixed bug and issues with boolean attributes like checked, nowrap etc.
+	Fixed bug where input elements could override attributes on form elements.
+	Fixed bug where script or style elements could get modified by the DOMUtils processHTML method.
+	Fixed bug where the selected attribute could get lost when force root blocks logic got executed on IE. Patch contributed by Attila Mezei-Horvati.
+	Fixed bug where getAttribs method didn't handle boolean attributes correctly on IE.
+	Fixed so the paste from word dialog is presented if you paste content on an IE with to restrictive security settings.
+	Fixed so the paste_strip_class_attributes option is set to none by default in the paste plugin.
+	Removed default border=0 on tables for the default value of valid_elements.
+Version 3.2.6 (2009-08-19)
+	Added new wordcount plugin, this will display the number of typed words as you write. Contributed by Andrew Ozz.
+	Added new getNext and getPrev methods to DOM utils. These will return the first matching sibling.
+	Fixed bug where it was impossible to place the caret after a table on Gecko. It will now add a paragraph after tables.
+	Fixed bug where inline dialogs would fail if used in a window opened using a showModalDialog. Patch contributed by Derek Britt.
+	Fixed bug where IE could sometimes render a unknown runtime error on invalid input HTML.
+	Fixed bug where some incorrectly placed tables wouldn't be moved outside the paragraphs on IE.
+	Fixed bug where uppercase script/style element wouldn't be handled correctly and converted to valid lowercase.
+	Fixed bug where some WebKit versions on Mac OS X would produce issues with hidden select fields.
+	Fixed bug where the media plugin would fail on WebKit since the node wasn't properly imported to the right document.
+	Fixed bug where absolute URLs for the TinyMCE script using a base href element would cause loading problems in IE 6/7.
+	Fixed bug where pasting using the paste plugin wasn't possible on IE with to restrictive security settings.
+	Fixed bug where pasting of whitespace was impossible using the new custom paste method.
+	Fixed bug where pasting on some WebKit browsers would not work if you pasted specific contents due to a WebKit bug.
+	Fixed bug where doctypes with multiple lines would not be parsed correctly by the fullpage plugin. Patch contributed by Colin.
+	Fixed bug where the autoresize plugin would break the fullscreen functionality.
+	Fixed bug where tables would be chopped up running on IE using invalid contents and pasting paragraphs into a cell.
+	Fixed bug where the each method of jQuery build didn't iterate styleSheets. We now use the TinyMCE API one instead.
+	Fixed bug where auto switching to paragraphs after headers some times failed in Gecko.	
+	Fixed so all editor options gets passed to the Serializer class. Patch contributed by Jasper Mattsson.
+	Fixed so script/style blocks isn't wrapped in paragraphs as other inline elements.
+	Fixed so the XHR requests sends the X-Requested-With HTTP header.
+	Fixed so the data url scheme is handled in the tinymce.util.URI class.
+	Changed inline documentation to use moxiedoc style comments.
+	Removed the compat2x plugin people should have upgraded to the 3.x API by now. 3.0 was released more then a year ago.
+	Re-added Gecko specific message for users who doesn't understand the security concept regarding paste.
+Version 3.2.5 (2009-06-29)
+	Added new jQuery plugin for the jQuery specific package. This enables you to more easily load and use TinyMCE.
+	Added new autoresize plugin contributed by Peter Dekkers. This plugin will auto resize the editor to the size of the contents.
+	Fixed so all packages have the same directory structure. Previous releases had a different structure for the production package.
+	Fixed so the paste from word dialog forces the contents to be processed as word contents even if it's not.
+	Fixed so the jQuery build adapter build works. It's currently only excluding Sizzle.
+	Fixed so noscript element contents is retained during the editing process.
+	Fixed bug where the getBookmark method would need a "simple" string input when the documented way is a boolean.
+	Fixed bug where invalid contents could break the fix_table_elements logic.
+	Fixed bug where Sizzle specific attributes would be serialized if the valid_elements was set to *[*].
+	Fixed bug where IE would produce an error if you specified a relative content_css and opened the paste dialog.
+	Fixed bug where pasting images on IE would produce broken images if they came from an external site.
+	Fixed bug where memory was leaked if you add/remove controls dynamically. Some event handlers wasn't removed properly.
+	Fixed bug where domain relaxing wasn't treated correctly if you added it after the TinyMCE script element.
+	Fixed bug where the activeEditor wasn't set to null if the last editor instance was removed.
+	Fixed bug where IE was leaking memory on the onbeforeunload event due to some recently introduced logic. Patch contributed by Options.
+	Fixed bug where inserting tables in Safari 4 didn't work due to a new WebKit bug where some element names are reserved.
+	Fixed bug where URLs having a :// value in the query string would make it absolute regardless of URL settings.
+	Fixed the WebKit specific bug where DOM Ranges would fail if the node wasn't attached to something in a different way.
+	Removed the auto_resize option and the resizeToContent method from the tinymce.Editor class. Use the new autoresize plugin instead.
+Version 3.2.4.1 (2009-05-25)
+	Fixed bug where Gecko browsers would produce an extra space after for example strong when loaded from sub domains.
+	Fixed bug where script elements would be removed if they where placed inside a paragraph element.
+	Fixed bug where IE 8 would produce 1 item remaining when loading CSS files dynamically with an empty cache.
+	Fixed bug where bound events would be removed from other editor instances if a specific one was removed.
+	Fixed various bugs and issues with script and style elements inside the editor.
+	Fixed so all script contents gets wrapped in CDATA sections so that they can be parsed using a XML parser.
+	Fixed so it's impossible for elements marked as closed to have child nodes rendered in output.
+Version 3.2.4 (2009-05-21)
+	Added new paste_remove_styles/paste_remove_styles_if_webkit option to paste plugin concept contributed by Hadrien Gardeur.
+	Added new functionality to paste plugin contributed by Scott Eade aka monkeybrain.
+	Added new paste_block_drop option to the paste plugin this is disabled by default and will block any drag/drop event.
+	Added new bind/unbind methods to DOMUtils these works like Event.add/Event.remove but is easier to access.
+	Added new paste_dialog_width/paste_dialog_height options to paste pluign. Enables you to change the dialog sizes.
+	Fixed bug on IE 8 where it would sometimes produce a "1 item remaining" status message that would never finish.
+	Fixed bug on Safari 4 beta that would produce DOM Range exceptions on the DOMUtils split method since the browser has a bug.
+	Fixed bug where the paste plugin could accidentally think that some word sentences was supposed to be list elements.
+	Fixed bug where paste plugin would produce one extra empty undo level on some browsers.
+	Fixed bug where spans wasn't produced correctly on new line when the keep_styles option was enabled.
+	Fixed bug where the caret would be placed at the beginning of contents in IE 8 if you selected colors from the color pickers.
+	Fixed so the Event class is a normal class instead of a static one. The tinymce.dom.Event is now a global instance of that class.
+	Fixed so internal events for instances gets removed when the DOMUtils instance is removed.
+	Fixed so preventDefault and stopPropagation methods can be used on the event object in all browsers.
+Version 3.2.3.1 (2009-05-05)
+	Fixed bug where paragraphs containing form elements such as input or textarea would be removed.
+	Fixed bug where some IE versions would produce a wrapper function for events attributes.
+	Fixed bug where table cell contents could be removed if you pressed return/enter at the end of the cell contents.
+	Fixed bug where the paste plugin would remove a extra character if the selection range was collapsed.
+	Fixed bug where creating tables with % width wouldn't be handled correctly on WebKit browsers.
+Version 3.2.3 (2009-04-23)
+	Added new paste plugin logic. This new version will autodetect Word contents and clean it up.
+	Added a optional root element argument to getPos so you can tell it where to stop the calculation.
+	Added new DOM ready logic to remove the usage of document.write. We now use basically the same method as jQuery.
+	Fixed bug where WebKit browsers would fail when selecting all contents in the area using Ctrl+A.
+	Fixed bug where IE would produce paragraphs with empty inline style elements.
+	Fixed bug where WebKit browsers would fail when inserting tables with a non pixel width.
+	Fixed bug where block elements could get a redundant br element at the end of the element.
+	Fixed bug where the tabfocus plugin only worked with a single editor instance on page.
+	Fixed bug where IE 8 was loosing caret position if the selection was collapsed and a menu was clicked.
+	Fixed bug with application/xhtml+xml mode where menus wasn't working properly.
+	Fixed bug where the onstop workaround fix for IE would produce errors in an ASP update panel.
+	Fixed bug where the submit function override could produce errors if executed in the wrong scope.
+	Fixed bug where the area element wasn't closed by a short ending.
+	Fixed various number issues in the style plugins properties dialog. Contributed by datpaulchen.
+	Fixed issues with size suffix values in the style plugin dialog.
+	Fixed issue where hasDuplicate variable would leak out to the global space due to a bug in the Sizzle engine.
+	Fixed issue where the paste event would fire a dialog warning on IE since we extracted the text contents.
+	Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported.
+Version 3.2.2.3 (2009-03-26)
+	Fixed regression bug with the getPos method, it would return invalid if the view port was to small.
+Version 3.2.2.2 (2009-03-25)
+	Fixed so the DOMUtils getPos method can be used cross documents if needed.
+	Fixed bug where undo/redo wasn't working correctly in Gecko browsers.
+Version 3.2.2.1 (2009-03-19)
+	Added support for tel: URL prefixes. Even though this doesn't match any official RFC.
+	Fixed so the select method of the Selection class selects the first best suitable contents.
+	Fixed bug where the regexps for www. prefixes for link and advlink dialogs would match wwwX.
+	Fixed bug where the preview dialog would fail to open if the content_css wasn't defined. Patch contributed by David Bildstr�m (ChronoZ).
+	Fixed bug where editors wasn't converted in application/xhtml+xml mode due to an issue with Sizzle.
+	Fixed bug where alignment would fail if multiple lines where selected.
+	Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported.
+Version 3.2.2 (2009-03-05)
+	Added new CSS selector engine. Sizzle the same one that jQuery and other libraries are using.
+	Added new is and getParents methods to the DOMUtils class. These use the new Sizzle engine to select elements.
+	Added new removeformat_selector option, enables you to specify a CSS selector pattern of elements to remove when using removeformat.
+	Fixed so the getParent method can take CSS expressions when selecting it's parents.
+	Added new ant based build process, includes a new javabased preprocessor and a yuicompressor ant task.
+	Moved the tab_focus logic into a plugin called tabfocus, so the old tab_focus option has been removed from the core.
+	Replaced the TinyMCE custom unit testing framework with Qunit and rewrote all tests to match the new logic.
+	Moved the examples/testcases to a root directory called tests since it now includes slickspeed.
+	Fixed bug where nbsp wasn't replaced correctly in ForceBlocks.js. Patch contributed by thorn.
+	Fixed bug where an dom exception would be thrown in Gecko when the theme_advanced_path path was set to false under xml application mode.
+	Fixed bug where it was impossible to get out of a link at the end of a block element in Gecko.
+	Fixed bug where the latest WebKit nightly would fail when changing font size and font family.
+	Fixed bug where the latest WebKit nightly would fail when opening dialogs due to changes to the arguments object.
+	Fixed bug where paragraphs wasn't added to elements positioned absolute using classes.
+	Fixed bug where font size values with dot's like 1.4em would produce a class instead of the style value.
+	Fixed bug where IE 8 would return an incorrect position for elements.
+	Fixed bug where IE 8 would render colorpicker/filepicker icons incorrectly.
+	Fixed bug where trailing slashes for directories in URLs would be removed.
+	Fixed bug where autostart and other boolean values in the media dialog wouldn't be stored/parsed correctly.
+	Fixed bug where the repaint call for the media plugin wouldn't be executed due to a typo in the source.
+	Fixed bug where id attribute of object elements wasn't kept intact by the media plugin.
+	Fixed bug where preview of embeded elements when the media_use_script option was used would fail.
+	Fixed bug where inlinepopups could be rendered at an incorrect location on IE 6 while dragging.
+	Fixed bug where the blocker shim could be placed at an incorrect location on IE 6.
+	Fixed bug where the multiple and size attributes of select elements would produce incorrect values while running in IE.
+	Fixed bug where IE would loose the caret position is you selected a color from the color drop down.
+	Fixed bug where remove format wouldn't work on IE since it couldn't remove span elements that had style information.
+	Fixed bug where Opera was removing links when removing formatting from selected contents.
+	Fixed bug where paragraphs could be produced inside non positional elements styled with the CSS position value of static.
+	Fixed bug where removeformat wouldn't work if you selected part of a span in IE.
+	Fixed bug where media plugin didn't retain the style attribute on embed/object elements.
+	Fixed bug where auto focus on empty editor instances could produce strange results if you inserted an image into it.
+	Fixed bug where   characters would be removed in FF when inserted with the mceInsertContent or selection.setContent methods.
+	Fixed bug where warning message of missing paste support wasn't displayed on WebKit browsers.
+	Fixed bug where anchor links could include other links. The selected range is now unlinked before adding news links to it.
+	Fixed memory leak when TinyMCE was used with prototype. Patch contributed by James Ots.
+	Fixed so the non documented fullpage_hide_in_source_view option for the fullpage plugin works again in the 3.x branch.
+	Fixed so tables doesn't get inserted into paragraphs by default since it's not W3C valid. Can be disabled by using the fix_table_elements option.
+	Fixed so the source view dialog sets a source_view state to the event object. Enables plugins to intercept the source view mode.
+	Fixed various validation issues with the html dialogs and pages.
+	Removed ask mode option since there is way better ways of doing this now. Use the add/remove control methods instead.
+	Removed logic for compatibility with Safari 2.x, this browser is no longer supported since no one is using it.
+	Removed the auto domain relaxing feature. If loading scripts cross sub domains it's better to specify the document.domain by hand.
+Version 3.2.1.1 (2008-11-27)
+	Added new theme_advanced_default_background_color/theme_advanced_default_foreground_color options. Patch contributed by David Bildstr�m (ChronoZ).
+	Fixed font style formatting compatibility issue with Adobe Air.
+	Fixed so legacy font elements get converted into spans even if cleanup_on_startup isn't enabled.
+	Fixed bug where pre elements could be incorrectly modified by an IE bug workaround. Patch contributed by hu vime.
+	Fixed bug where input elements inside inlinepopups wasn't editable in Firefox 2.
+	Fixed bug where the xhtmlxtras plugin wasn't replacing attribute values correctly.
+	Fixed bug where menu buttons in skin variants would look strange due to IE 8 fixes.
+	Fixed bug where WebKit browsers would on backspace take you back to the previous page if the editor was empty.
+	Fixed bug where DOMUtils decode method wouldn't handle strings larger than 4096kb due to node chunking.
+	Fixed bug where meta key wasn't handled as ctrl key on Mac OS X for custom keyboard short cuts.
+	Fixed bug where init event would get fired twice on WebKit on Mac OS X.
+Version 3.2.1 (2008-11-04)
+	Added support for custom icon image for drop menus. Use icon_src to set a custom image directly.
+	Added new media_strict option to media plugin. Enables you to control if the flash embed is strict or not. Enabled by default.
+	Fixed so the editors script files gets dynamically loaded without using XHR or eval.
+	Fixed so the media plugin outputs valid XHTML object elements for Flash movies. Can be disabled with the media_strict option.
+	Fixed so dynamic loading doesn't require eval calls on non IE browsers for better Air support.
+	Fixed bug where the editor wasn't treated as empty if the remaining paragraph had attributes.
+	Fixed bug where id's of elements was removed ones they got wrapped in paragraphs. Patch contributed by ChronoZ.
+	Fixed bug where WebKit browsers where placing list elements inside paragraph elements.
+	Fixed bug where inserting images or links would produce absolute urls on WebKit browsers.
+	Fixed bug where values for checked, readonly, disabled and selected attributes was incorrect on IE.
+	Fixed bug where positive values for checked, readonly, disabled and selected attributes wasn't forced to valid values.
+	Fixed bug where selecting the first option in a native select box would produce an undefined error.
+	Fixed bug where tabindex 32768 could be outputted on IE if element attributes where cloned.
+	Fixed bug where the media dialogs preview window would display incorrect contents due to duplicate clsid prefixes.
+	Fixed bug where non pixel or percent heights for textarea elements would produce errors on IE.
+	Fixed bug where cdata sections in script elements wasn't handled correctly.
+	Fixed bug where nowrap of table cells would produce a 65535 value output.
+	Fixed bug where media plugin would produce an error if you selected the first item in the items list.
+	Fixed bug where media plugin would modify links with the item _value in them.
+	Fixed so table width/height is better forced if inline_styles is enabled. Patch contributed by daKmoR.
+	Fixed css for IE 8 such as opacity and other rendering quirks.
+Version 3.2.0.2 (2008-10-02)
+	Fixed bug where the SelectBox and NativeSelectBox wasn't updated correctly if undefined was passed to them.
+	Fixed bug where the style dropdown wasn't correctly changed back to it's original state when element had no class.
+	Fixed bug where multiple pending font styles wasn't handled correctly.
+	Fixed so you can disable all auto css loading for dialogs by setting the popups_css option to false.
+Version 3.2.0.1 (2008-09-17)
+	Fixed bug where font sizes and faces wouldn't be changed correctly when there was a parent with a different style.
+	Fixed bug where adding fonts to the same selection would produce redundant spans.
+Version 3.2 (2008-09-11)
+	Added new text style support, it will now use span elements internally instead of font elements.
+	Added new improved support for the theme_advanced_font_sizes option, check the Wiki for details.
+	Added new keep_style setting that maintains the text style on return/enter on non IE browsers, enabled by default.
+	Added new onBeforeSetContent/onBeforeGetContent/onSetContent/onGetContent events to the Selection class.
+	Added new selectByIndex method to ListBox class. This enables you to select list items by an index instead of a value.
+	Added new possibility to the select method of the ListBox class. This can now have a selector function as it's value argument.
+	Added new possibility to skip the loading of popups css by setting the feature popup_css to the value false.
+	Added new possibility to skip translation of popups by setting the translate_i18n feature to false.
+	Added new element_format option enables you to produce HTML element endings instead of XHTML. But we are still in the XHTML is better camp.
+	Added missing allowfullscreen and quality options for flash elements, this will now get correctly stored.
+	Fixed bug where table cell dialog didn't close properly unless the accessibility_warnings option was set to false.
+	Fixed bug where the modal dialog blocker element for inlinepopups wasn't placed at a correct location if the page had scroll.
+	Fixed bug where non inline dialogs didn't close correctly if the inlinepopups plugin was used.
+	Fixed bug where non inline dialogs could make the modal dialog blocker to work incorrectly.
+	Fixed bug where style select wasn't populated correctly if you pressed the arrow. Patch by Hari Karam Singh.
+	Fixed bug where toggling the fullscreen mode didn't restore scrollbars on IE when the editor was inside a frame. Patch by Jacob Barrett.
+	Fixed bug where inserting flash contents using the template plugin didn't work correctly.
+	Fixed bug where inserting flash contents using the selection.setContent or mceInsertContent command didn't work correctly.
+	Fixed bug where IE would produce an exception if a comment started with -.
+	Fixed bug where the blockquote button would wrap lists incorrectly on non IE browsers.
+	Fixed bug where Opera would display BR elements in the element path.
+	Fixed bug where xhtmlxtras didn't insert elements correctly on IE.
+	Fixed bug where the buttons wasn't activated correctly in the xhtmlxtras plugin.
+	Fixed bug where adding an object as the style attribute for the dom setAttribs method wouldn't work.
+	Fixed bug where the background color would bleed out to parent container element in Gecko.
+	Fixed bug where the insert column actions for tables would fail if you did it in a thead or tfoot. Patch contributed by T Andersen (tan73).
+	Fixed bug where event blocker element wasn't positioned correctly for the inlinepopups plugin.
+	Fixed bug where pasting from Office 2007 would produce an odd comment in the contents.
+	Fixed bug where the paste as plain text could remove an extra character. Patch contributed by Speednet.
+	Fixed bug where some characters where missing for the paste_replace_list option. Patch contributed by Speednet.
+	Fixed bug where removing non existing editor instances by the mceRemoveControl command would produce an error.
+	Fixed bug where meta elements with the name description would produce errors in IE.
+	Fixed bug where color and background colors wouldn't be updated properly.
+	Fixed bug where the createMenuButton of tinymce.ControlManager didn't implement the last class argument.
+	Fixed bug where the editor_css option was relative from the TinyMCE installation directory not the current page.
+	Fixed bug where elements wouldn't be padded if the element contained bogus br elements. For example TD elements.
+	Fixed bug where parsing of <body > in fullpage plugin would produce an error.
+	Fixed bug where relative urls with just ./ would become an empty string.
+	Fixed bug where outdent button would be disabled if inline_styles where set to false.
+	Fixed bug where replace with an empty search string would produce an error on IE.
+	Fixed bug where restoring the overflow state of the body in fullscreen plugin running on IE would produce vertical scrollbars.
+	Fixed bug where pressing return/enter in list items would sometimes move the caret the to top of the content area in FF.
+	Fixed bug where the style listbox wouldn't be updated correctly if you used the use_native_selects option.
+	Fixed bug where WebKit browsers would produce a div element when ending list elements using return.
+	Fixed so translation of popup contents only occurs if it's needed.
+	Optimized the URI object in regards or converting absolute URIs to relative URIs.
+Version 3.1.1 (2008-08-18)
+	Added new getSize method to DOMUtils it will return the dimensions only of an element.
+	Added new alert/confirm methods to the tinyMCEPopup class to prevent focus problems and also to shorten method calls.
+	Added new plugin_preview_inline option to preview plugin to enable/disable native/inline dialogs.
+	Added new readonly option. If this is set the editor will only display the contents for the user.
+	Added missing tabindex and accesskey to input elements in the default valid_elements setup.
+	Updated firebug lite to 1.2, to enable it use the tiny_mce_dev.js?debug=1 on the development package.
+	Fixed so the preview dialog in the preview plugin uses inline dialogs/popups.
+	Fixed so CDATA sections remains intact through the serialization process of the DOM tree.
+	Fixed various issues with the getAttrib command. It will now return more correct values.
+	Fixed bug where the embed element wasn't properly parsed in the media plugin it now supports 3 formats.
+	Fixed bug where the noshade attribute was serialized incorrectly on IE.
+	Fixed bug where editing an existing link element didn't force it relative.
+	Fixed bug where image link creation fails on Safari if the image is aligned.
+	Fixed bug where it was possible to scroll the fullscreen mode in Opera 9.50.
+	Fixed bug where removal of center image alignment would fail. Patch contributed by Andrew Ozz.
+	Fixed bug where inlinedialogs didn't work properly if the doctype was incorrect in IE.
+	Fixed bug where cross domain loading didn't work correctly in Opera 9.50.
+	Fixed bug where breaking huge text blocks with return/enter key would scroll to end of block.
+	Fixed bug where replace button kept inserting the replacement text even if there is no more matches.
+	Fixed bug with fullpage plugin where value wasn't set correctly. Patch contributed by Pascal Chantelois.
+	Fixed bug where the dom utils setAttrib method call could produce an exception if the input was null/false.
+	Fixed bug where pressing backspace would sometimes remove one extra character in Gecko browsers.
+	Fixed bug where the native confirm/alert boxes would move focus to parent document if fired in dialogs.
+	Fixed bug where Opera 9.50 was telling you that the selection is collapsed even when it isn't.
+	Fixed bug where mceInsertContent would break up existing elements in Opera and Gecko.
+	Fixed bug where TinyMCE fails to detect some keyboard combos on Mac, contributed by MattyRob.
+	Fixed bug where replace all didn't move the caret to beginning of text before searching.
+	Fixed bug where the oninit callback wasn't executed correctly when the strict_loading_mode option was used, thanks goes to Nicholas Oxhoej.
+	Fixed bug where a access denied exception was thrown if some other script specified document.domain before loading TinyMCE.
+	Fixed so setting language to empty string will skip language loading if translations are made by some backend.
+	Fixed so dialog_type is automatically modal if you use the inlinepopups plugin use dialog_type : "window" to re-enable the old behavior.
+Version 3.1.0.1 (2008-06-18)
+	Fixed bug where the Opera line break fix didn't work correctly on Mac OS X and Unix.
+	Fixed bug where IE was producing the default value the maxlength attribute of input elements.
+Version 3.1.0 (2008-06-17)
+	Fixed bug where the paste as text didn't work correctly it encoded produced paragraphs and br elements.
+	Fixed bug where embed element in XHTML style didn't work correctly in the media plugin.
+	Fixed bug where style elements was forced empty in IE. The will now be wrapped in a comment just like script elements.
+	Fixed bug where some script elements wrapped in CDATA could fail to be serialized correctly.
+	Fixed bug where FF 3 produced -moz- internal styles in some style attributes.
+	Fixed bug where query strings and external URLs didn't work correctly in style attributes.
+	Fixed bug where shape attribute of area elements got serialized as rect regardless of it's initial value in IE 6.
+	Fixed bug where selection of elements inside layers would fail in IE since focus was moved to the document body.
+	Fixed bug where pressing enter/return in an editable select box would produce an __mce_add_custom__ class value.
+	Fixed bug where changing font size of text placed inside a colored text chunk would remove the parent node.
+	Fixed bug where Opera 9.5 final produced a strange line break behavior due to a workaround for previous Opera versions.
+	Fixed bug where text/background color would produce a strange focus problem when you tried to click on the body in IE.
+	Fixed issue where selecting the title of an listbox equals the old 2.x behavior of changing the value to an empty string.
+	Fixed issue where it was common for the media plugin to break if the _value attribute wasn't added for the param element.
+	Fixed issue where the wrong parent editor instance might be updated if you use fullscreen mode in an incorrect way.
+	Fixed issue where Safari was producing a warning about the base element not being closed correctly.
+	Removed redundant form element name matching from regexp in the DOMUtils class.
+Version 3.0.9 (2008-06-02)
+	Added new contextmenu_offset_x/contextmenu_offset_y options for the contextmenu plugin.
+	Added cite attribute to the default rule for the blockquote element.
+	Added support for using arrow keys for selection of items in listboxes.
+	Added support for using arrow keys for selection of items in dropmenus.
+	Fixed bug where blockformat change on elements with BR inside them didn't change correctly on Firefox.
+	Fixed bug where removing table rows inside thead or tfoot would remove the whole table if it was the last one.
+	Fixed bug where XHR synchronous mode didn't execute the callback handlers synchronously.
+	Fixed bug where setting border to 0 didn't add border: 0 to the style attribute when using the advimage dialog.
+	Fixed bug where the selection of images and table cells didn't work correctly when the editor is placed in a frame and running on IE.
+	Fixed bug where the store/restore of a selection didn't work correctly in non IE browsers.
+	Fixed bug where only the first element would be invalid for the invalid_elements option.
+	Fixed bug where paste as plain text didn't encode the characters correctly when they where inserted.
+	Fixed bug where HTML source window couldn't be maximized on Gecko when the maximizable feature was enabled.
+	Fixed bug where color selection using the color picker could produce exception in IE.
+	Fixed bug where font size changes could produce produce extra redundant elements.
+	Fixed bug where IE could produce unknown runtime error if you replaced a image with another image from a separate frame.
+	Fixed bug where the domLoaded state for the Event class wasn't set correctly if the editor was loaded dynamically using the gzip compressor.
+	Fixed bug where handling of the base element for a page would produce incorrect urls. Based on a patch contributed by John LeSueur.
+	Fixed bug where table constraint alert boxes was presented with an empty value and wasn't the skinned inline ones.
+	Fixed bug where the onChange event wasn't fired when the form was submitted. It's now also triggered when the save method is called.
+	Fixed bug where encoding set to xml didn't work as expected. It now encodes the contents into XML entities.
+	Fixed bug where numrows didn't work correctly for the merge cells dialog of the table plugin.
+	Fixed bug where the onGetContent event was fired even when the no_events flag was set.
+	Fixed bug where the preview panels for the advimage and the media plugin could overflow on Safari and FF 3.
+	Fixed bug where the editing and removal of abbr elements using the xhtmlxtras plugin working correctly on IE.
+	Fixed bug where save button in the save plugin didn't work correctly on IE.
+	Fixed bug where dragging layers didn't work as expected since it would snap back to it's original location if you saved.
+	Fixed bug where the description of the template plugin dialog wasn't updated correctly.
+	Fixed bug where the values for frame and rules in the table dialogs where swapped.
+	Fixed bug where the elements like ins, del, cite, acronym and abbr didn't have the default editing style as the old 2.x branch.
+	Fixed bug where ask mode would lock the focused textarea if you pressed cancel in the confirm dialog on FF 3.
+	Fixed bug where ask mode would produce contents for empty textareas if you reloaded the page.
+	Fixed so the onGetContent event gets the full pass through object just like the other events.
+	Fixed so attributes for block elements remains the same when you change format of a element.
+Version 3.0.8 (2008-04-30)
+	Fixed bug where IE would produce an error if textareas without names where converted.
+	Fixed bug where editor wasn't forced empty when there was only a single br or empty paragraph left.
+	Fixed bug where IE would produce an warning message if object elements where produced in the media plugins preview running on https.
+	Fixed bug where new addVer function didn't handle hash items correctly. Patch contributed by Mirek Burkon.
+	Fixed bug where font_size_style_values option wasn't applied correctly to fonts inside the editor.
+	Fixed bug where image selection could be lost if a image was edited using context menu on IE.
+	Fixed bug where style values wasn't updated properly due to an invalid regexp.
+	Fixed bug where IE 6 where displaying warning message about insecure items when inserting an image while using https. Patch contributed by Norifumi Sunaoka.
+	Fixed bug where IE was producing an auto save message if you selected a color from the color split button.
+	Fixed bug where backspace sometimes would move the caret to the end of the previous block in Gecko.
+	Fixed bug where the rowlayout manager didn't work as described in the documentation.
+	Fixed bug where the default options for the fullpage plugin wasn't applied correctly.
+	Fixed bug where selection would jump one character if you applied a styles to a words in non IE browsers.
+	Fixed bug where undo levels wasn't added correctly if you went back in undo history and added a new event.
+	Fixed bug where font size dropdown didn't mark the selected size in IE.
+	Fixed bug where the size of the editor was determined using clientWidth instead of offsetWidth.
+	Fixed so the onchange event doesn't fire on the initial undo level, it will also fire when the editor is blurred.
+	Fixed so the advhr plugin produces XHTML valid output instead of non standard attributes.
+	Fixed so blockquote gets converted into [quote] in when the bbcode plugin is enabled.
+	Fixed so theme_advanced_font_sizes can be named for example Font 1=1, Font 2=2 etc.
+	Fixed so editor_selector/editor_deselector can be regexps. By default only strings are allowed not part regexps like before.
+	Fixed so that the version suffix is optional. It still requires the build process so you need to export it manually.
+	Fixed so it's possible to tab to table cells in non Gecko browsers and also produce new rows if you tab at the end of a table. Contributed by Josh Peek.
+Version 3.0.7 (2008-04-14)
+	Added new version suffix to all internal GET requests to make sure that the users cache gets cleared correctly.
+	Fixed issue with isDirty returning true event if it wasn't dirty on IE due to changes in tables during initialization.
+	Fixed memory leak in IE where if a page was unloaded before all images on the page was loaded it would leak.
+	Fixed bug in IE where underline and strikethrough could produce an exception error message.
+	Fixed bug where inserting paragraphs in totally empty table cells would produce odd effects.
+	Fixed bug where layer style data wasn't updated correctly due to some performance enhancements with the DOM serializer.
+	Fixed bug where it would convert the wrong element if there was two elements with the same name and id on the page.
+	Fixed bug where it was possible to add style information to the body element using the style plugin.
+	Fixed bug where Gecko would add an extra undo level some times due to the blur event.
+	Fixed bug where the underline icon would get active if the caret was inside a link element.
+	Fixed bug where merging th cells not working correctly. Patch contributed by Andr� R.
+	Fixed bug where forecolorpicker and backcolorpicker buttons where rendered incorrectly when the o2k7 skin was used.
+	Fixed bug where comment couldn't contain -- since it's invalid markup. It will now at least not break on those invalid comments.
+	Fixed bug where apos wasn't handled correctly in IE. It will now convert apos to ' on IE since that browser doesn't support that entity.
+	Fixed bug where entities wasn't encoded correctly inside pre elements since they where protected from whitespace removal.
+	Fixed bug where color split buttons where rendered incorrectly on IE6 when using the non default theme.
+	Fixed so caret is placed after links ones they are created, to improve usability of the editor.
+	Fixed so you can select tables by clicking on it's borders in non IE browsers to normalize the behavior.
+	Fixed so the menus can be toggled by clicking once more on the icon in listboxes, menubuttons and splitbuttons based on code contributed by Josh Peek.
+	Fixed so buttons can be labeled, currently only works with the default skin, so it's kind of experimental. Patch contributed by Daniel Insley.
+	Fixed so forecolorpicker and backcolorpicker remembers the last selected color. Patch contributed by Shane Tomlinson.
+	Fixed so that you can only execute the mceAddEditor command once for the same instance name.
+	Fixed so command functions added with addCommand can pass though the call to default handles if it returns true.
+Version 3.0.6.2 (2008-04-07)
+	Fixed bug where empty tables couldn't be edited correctly on non IE browsers if they where loaded into the editor.
+	Fixed bug where it was impossible to resize layers correctly in IE since it thought it was an image.
+	Fixed bug where an editor instance was stealing focus in IE resulting in a scroll to the editor on page reloads.
+	Fixed bug where Safari was crashing on Mac OS X if you closed dialogs using the Esc key.
+Version 3.0.6.1 (2008-04-04)
+	Added support for the missing mceAddFrameControl command. The input for this command has changed so consult the Wiki.
+	Fixed bug where sub menus for the drop menus would leave an empty element behind.
+	Fixed memory leak in IE if the editor was placed in a frame or iframe.
+Version 3.0.6 (2008-04-03)
+	Added elements to the default value of valid_elements option. It now contains all XHTML strict elements and a few transitional.
+	Added more accessibility fixes, it's now possible to navigate and close list boxes and split button menus with the keyboard.
+	Added missing getInfo method to the contextmenu and safari plugin, this caused problems for the Drupal module.
+	Added new inlinepopups_zindex option to the inlinepopups plugin so that you can configure the default start z-index.
+	Added new setControlType method to the tinymce.ControlManager class. This method enables you to override the default classes.
+	Added ability to specific an optional control class to use instead of the default one for the ControlManager methods. Based on concept by Josh Peek.
+	Fixed bug where attribute rules for the DOM Serializer couldn't contain - or _ characters in their names.
+	Fixed bug where inlinepopups event blocker and modal dialog blocker elements produced vertical scrollbars.
+	Fixed bug where there was a rendering issue with quirks mode in Safari moving the resize handle to an incorrect position.
+	Fixed bug with forecolor/backcolor controls on IE. Sometimes elements positioned relative will generate display errors.
+	Fixed bug where a p2 was leaking out in the global name space when you selected a color from the forecolor/backcolor controls.
+	Fixed bug where empty paragraphs didn't work as expected in browsers other than IE.
+	Fixed bug where the load method of the tinymce.dom.ScriptLoader didn't check if the file was already loaded.
+	Fixed bug where the load method for the PluginManager and ThemeManager didn't check if a plugin/theme by a specific name was all ready loaded.
+	Fixed bug where the theme_advanced_link_targets option didn't work correctly with the advanced themes link dialog. Patch contributed by Arnold B.
+	Fixed bug where the style command would merge classes into empty span elements.
+	Fixed bug where the style command would remove empty span elements outside the current selection.
+	Fixed bug where the fix for the Safari backspace bug removed all editor contents if it was filled with empty paragraphs.
+	Fixed bug where alert and confirm boxes opened by the inlinepopups plugin would produce an exception if domain relaxing was used.
+	Fixed bug where Safari was adding style attributes to all elements when you paste them into the editor.
+	Fixed bug where the spellchecker menus was visually incorrect since the space for the non existing icon was still there.
+	Fixed bug where remove_linebreaks option didn't remove line breaks inside the text contents of a element.
+	Fixed bug where Safari 3.1 was introducing _mc_tmp into paragraphs due to the new querySelectorAll and a TinyMCE specific workaround.
+	Fixed bug where getParam method in the Editor class was returning incorrect objects and would mess up the font drop down. Patch contributed by speednet.
+	Fixed bug where the table dialog would produce an exception in IE when you edited tables since it tried to place focus in a disabled field.
+	Fixed bug where class attribute on some span elements was removed on cleanup.
+	Fixed bug where resizing the editor in IE could produce an exception if the editor width/height got to be a negative value.
+	Fixed bug where wmv files wouldn't play since the src param was used instead of the url param.
+	Fixed bug where br elements would be added here and there in Gecko. Geckos internal _moz_dirty br elements where serialized as well.
+	Fixed bug where editing named anchors would produce two anchors instead of one updated one.
+	Fixed bug where arrow and function keys didn't work when an noneditable element was focused within the editor.
+	Fixed bug where the dispatcher could produce an exception if the listener list was altered inside an event callback.
+	Fixed bug where it was impossible to totally empty the editor contents on Safari due to an mistreatment of nbsp as whitespace. Patch contributed by Andrew Ozz.
+	Fixed bug where TinyMCE would not convert textareas with the same name attribute value. It will now generate an unique id for those textareas.
+	Fixed bug where backspace/delete key was deleting td elements inside tables while running on Gecko.
+	Fixed bug where Firefox 3.0b4 and Opera 9.26 where scrolling to the top of document when pressing return/enter.
+	Fixed bug where the template plugin wasn't just inserting the mceTmpl tagged element.
+	Fixed bug where the alert method of the default WindowManager implementation didn't translate input language strings like the inlinepopups dialog does.
+	Fixed bugs with the backspace behavior in Gecko. The caret was placed on incorrect locations in the DOM sometimes.
+	Fixed so advimage dialog and table dialogs has support for editable select boxes for the class value.
+	Fixed so the media, pagebreak and spellchecker doesn't load it's default content.css file if the content_css option is set to false.
+	Fixed so the paste_use_dialog option works again it's enabled by default but can be disabled on IE. Patch contributed by Speednet.
+	Fixed so that the fullscreen editor is focused when switching fullscreen editing on.
+	Fixed so it's possible to edit images and links inside tables using the context menu.
+	Fixed so table dialogs and the advanced image dialog doesn't loose selection in IE if the dialogs where navigated/submitted with the keyboard.
+	Fixed so the theme_advanced_blockformats options can have named items for example title 1=h1;title 2=h2.
+	Fixed so it's possible to add a custom editor_css for the simple theme.
+	Fixed quirks with directionality rtl, patch contributed by Andrew Ozz.
+	Fixed so the inlinepopups default start zIndex is 300000.
+	Fixed typo in media plugin Shockware is now replaced with Shockwave.
+	Fixed psuedo memory leak in IE with the replaceChild method inside the DOMUtils.replace method.
+	Fixed so memory is released when an editor instance is removed from page.
+	Optimized the color split button menus so that they use less event handlers.
+	Removed the util/mclayer.js file since it's no longer used by any of the TinyMCE dialogs and is considered deprecated.
+Version 3.0.5 (2008-03-12)
+	Added new black skin variant to the o2k7 skin contributed by Stefan Moonen.
+	Added new explode method to the tinymce core class. This does a split but removed whitespace it also defaults to a , delimiter.
+	Added new detection logic for IE 8 standards mode into the DOMUtils class strMode can now be checked to see if that mode is on/off.
+	Added new noscale option value for the scale select box for Flash in the media plugin.
+	Fixed bug where the menu for the ColorSplitButton wasn't removed when the editor was removed.
+	Fixed bug where font colors couldn't be edited correctly since the style of the element didn't get updated correctly.
+	Fixed bug where class of elements would get lost when TinyMCE was fixing incorrect HTML markup.
+	Fixed bug where table editing would produce double height values.
+	Fixed bug where width style value wouldn't be removed if you switched width unit from cm/em to pixels or percent.
+	Fixed bug where the search/replace input box wasn't auto focused like the other dialogs.
+	Fixed bug where the old mceAddControl command would use the fullscreen settings next time it created an instance.
+	Fixed bug where multiple lines where added to the target cell if you merged multiple empty cells.
+	Fixed bug where drop down menus would be incorrectly positioned inside scrollable divs.
+	Fixed bug where the separators of the silver skin variant didn't display correctly in IE 6.
+	Fixed bug where createStyleSheet seems to load scripts at opposite order in some IE versions.
+	Fixed bug where directionality could produce odd results for the UI and the dialogs.
+	Fixed bug where the DOM serializer wouldn't serialize custom namespaced attributes in IE 6 using the *[*] valid elements rule.
+	Fixed bug where table caption would be inserted after the thead element if you swapped a tr to be inside the thead.
+	Fixed bug where the youtube detection logic for the media plugin was to generic.
+	Fixed so the deprecated and undocumented theme_advanced_path_location set to none won't hide the whole statusbar.
+	Fixed so most input lists can have whitespace in them they are now split using the new tinymce.explode method.
+	Fixed so the popup_css and popup_css_add URLs are relative to where the current document is located.
+	Fixed various bugs and quirks with the store/restore selection logic.
+	Fixed so the editor starts in IE 8 standards mode but still that browser is very very buggy.
+	Fixed so dialog_type set to modal will block the background and other inline windows and only give access to the front most window.
+Version 3.0.4.1 (2008-03-08)
+	Fixed critical bug where it was impossible to edit images when inlinepopups where used due to lost selection in IE.
+Version 3.0.4 (2008-03-07)
+	Added new option constrain_menus, this enables you to force view port constraints on all menus. Contributed by Shane Tomlinson.
+	Fixed bug where table background wasn't visible inside the editor due to a default CSS rule overriding the style attribute.
+	Fixed bug where links would get a null class added if no styles was used in IE.
+	Fixed bug where spellchecker was auto focusing the editor in IE.
+	Fixed bug where document.domain would produce invalid argument if the editor was loaded in IE6 over a network UNC path.
+	Fixed bug where table height attribute was used, this is deprecated in XHTML so it now adds it as an style.
+	Fixed bug where textareas with style values would produce error in IE.
+	Fixed so the first element in each dialog is focused by default to enhance keyboard usage.
+	Fixed so you can add a mceFocus class to elements to make it auto focused.
+	Fixed so you can close dialogs using the esc key.
+	Fixed so you can press return/enter to submit the action of each dialog.
+	Fixed so tabbing inside an inline popups wont focus the resize anchor elements.
+	Fixed so you can press ok in inline alert messages using the return/enter key.
+	Fixed so textareas can be set to non px or % sizes for example em, cm, pt etc.
+	Fixed so non pixel values can be used in width/height properties for tables.
+	Fixed so the custom context menu can be disabled by holding down ctrl key while clicking.
+	Fixed so the layout for the o2k7 skin looks better if you don't have separators before and after list boxes.
+	Fixed so the sub classes get a copy of the super class constructor function to ease up type checking.
+	Fixed so font sizes for the format block previews are normalized according to http://www.w3.org/TR/CSS21/sample.html (it can be overridden).
+	Fixed so font sizes for h1-h6 in the default content.css is normalized according to http://www.w3.org/TR/CSS21/sample.html (it can be overridden).
+Version 3.0.3 (2008-03-03)
+	Fixed bug where an error about document.domain would be thrown if TinyMCE was loaded using a different port.
+	Fixed bug where mode exact would convert textareas without id or name if the elements option was omitted.
+	Fixed bug where the caret could be placed at an incorrect location when backspace was used in Gecko.
+	Fixed bug where local file:// URLs where converted into absolute domain URLs.
+	Fixed bug where an error was produced if a editor was removed inside an editor command.
+	Fixed bug where force_p_newlines didn't effect the paste plugin correctly.
+	Fixed bug where the paste plugin was producing an exception on IE if you pasted contents with middots.
+	Fixed bug where delete key could produce exceptions in Gecko sometimes due to the fix for the table cell bug.
+	Fixed bug where the layer plugin would produce an visual add class called mceVisualAid this one is now renamed to mceItemVisualAid to mark it internal.
+	Fixed bug where TinyMCE wouldn't initialize properly if ActiveX controls was disabled in IE.
+	Fixed bug where tables and other elements that had visual aids on them would produce an extra space after any custom class names.
+	Fixed bug where search with an empty string would produce some odd "invalid pointer" error in IE.
+	Fixed bug where elements like menus where placed at incorrect positions in Opera 9.26.
+	Fixed bug where IE was loosing focus of the editor when you clicked some dropmenu and if it was placed in a frame or iframe.
+	Fixed bug where focus of images could be lost in IE if you focused the accessibility confirm dialog in the advimage plugin.
+	Fixed bug where nestled font elements would produce odd output like missing font elements.
+	Fixed bug where text colors and styles got removed if invalid_elements included the font element.
+	Fixed bug where text-decoration set to underline or line-through would remove other styles from span elements.
+	Fixed bug where editor contents like \n\n would be incorrectly handled and processed as real line feeds.
+	Fixed bug where incorrectly encoded urls with ampersands in them would be decoded incorrectly.
+	Optimized the DOMUtils decode method to be a lot faster if the string doesn't have any entities to decode.
+Version 3.0.2.1 (2008-02-26)
+	Fixed alert/confirm dialogs so they display correctly.
+Version 3.0.2 (2008-02-26)
+	Added new body_id option that enables you to specify the id of the body inside the editor iframe based on ideas by David Bildstr�m (ChronoZ).
+	Added new body_class option that enables you to set the class for the body of the editor iframe based on ideas by David Bildstr�m (ChronoZ).
+	Added new CSS class to the default content.css files mceForceColors that forces white background and black text can be used with the body_class option.
+	Added new type parameter to the Editor.getParam function to reduce redundant logic for parsing hash tables.
+	Added new isDone method to the ScriptLoaded class, this enables you to check if a script has been loaded or not.
+	Added new resizeTo and resizeBy methods for the advanced theme. Can be called using tinyMCE.activeEditor.theme.resizeTo(w, h);
+	Added new skin_variant option this can be used to extend existing skins with slight modifications like color.
+	Added new variant of the o2k7 skin called "silver" based on a contribution made by Stefan Moonen.
+	Fixed bug where the template plugin might produce errors if the template_mdate_classes wasn't configured.
+	Fixed bug where the media plugin didn't convert the URLs for movies once they where inserted.
+	Fixed bug where the style field for the advlink dialog didn't work correctly if you edited an existing link.
+	Fixed bug where alignment of toolbars would fail in editor was uses in a quirks mode on IE, fix contributed by Peter Wood & Art Lawry.
+	Fixed bug where initialization of multiple editors at the same time using the mceAddControl method would produce errors.
+	Fixed bug where initialization of editors using mceAddControl command or new tinymce.Editor calls would fail during page load.
+	Fixed bug where the check for domain relaxing could fail if the document.domain property was changed by another script.
+	Fixed bug where textareas couldn't be named description or any other name that matches the meta elements in IE and Opera.
+	Fixed bug where the element path would fail sometimes in IE due to "unknown runtime error" on innerHTML.
+	Fixed bug where Safari would crash if you was hiding the editor before serializing the contents.
+	Fixed bug where the editor wasn't scaled propertly in fullscreen mode using the old fullscreen_new_window option.
+	Fixed bug where render method didn't load language packs in IE and Opera if you rendered an editor during page load.
+	Fixed bug where resizing the browser window in fullscreen didn't resize the editor.
+	Fixed bug where the blockquote command didn't move the caret inside the new empty blockquote if you used it on an empty document.
+	Fixed bug where auto in a style width/height for the textarea would produce an editor with the size value of 100. Fix contributed by Shane Tomlinson.
+	Fixed bug where restoration of selection at the beginning of an element could fail in Gecko.
+	Fixed bug where caret restoration after a cleanup could place the it at an incorrect location.
+	Fixed bug where delete key inside td elements would delete the cell in Gecko.
+	Fixed so the blockquote button toggles individual lines. This behavior is a bit more like the old indentation behavior in the 2.x branch.
+	Fixed so the dialog language packs only gets loaded the first time you open a dialog.
+	Fixed so all classes in the whole UI is prefixed with "mce" to avoid collisions, use the skin converter to update your existing skins.
+	Fixed so all classes in the inlinepopups logic is prefixed with "mce" to avoid collisions, use the skin converter to update your existing skins.
+	Fixed so that the window in fullscreen mode can be resized when fullscreen_new_window option is enabled.
+	Fixed so blockquote elements are formatted in the source output with an linefeed before and after it.
+	Optimized the editor initialization by reducing the number of calls to getBookmark/moveToBookmark.
+Version 3.0.1 (2008-02-21)
+	Added spellchecker plugin into the main package, but without any backend can be specified with the spellchecker_rpc_url option.
+	Added src attribute for script elements to the default valid_elements option value.
+	Added extra parameter to the class_filter callback it can now also filter out classes based on the whole CSS rule.
+	Added support for domain relaxing, TinyMCE can now be loaded from an remote domain as long as they are on the same root domain.
+	Added support for custom elements the new custom_elements option enables you to add non HTML elements to the editor.
+	Added support for the W3C Selectors API that was added to latest nightly build of WebKit.
+	Fixed bug where some object param element wasn't stored correctly using the media plugin.
+	Fixed bug where Opera was scrolling to top of page is drop menus on list boxes where displayed.
+	Fixed bug where IE6 was crashing if a format block was used on a container with anchor elements.
+	Fixed bug where spans with font sizes wasn't handled correctly when editor was loading contents.
+	Fixed bug where mode exact couldn't convert editors with name only. Id is no longer required but recommended.
+	Fixed bug where the mceInsertRawHTML command produced an extra undo level.
+	Fixed bug where the specific_textareas mode didn't work correctly this is the same thing as textareas now.
+	Fixed bug where the values of input elements in the HTML page of dialogs pages where changed in IE.
+	Fixed bug where fullscreen and fullpage plugins didn't work well together.
+	Fixed bug where embed elements wasn't handled properly in the media plugin.
+	Fixed bug where style information on span elements gets munged when fonts are converted to spans.
+	Fixed bug where some entities in element attributes where encoded incorrectly in the latest WebKit build.
+	Fixed bug where initialization would fail in IE if there where two input elements with the name submit in the form.
+	Fixed bug where fullscreen mode didn't work correctly in IE when the fullscreen_new_window option was used.
+	Fixed bug where invalid contents like an ul inside a p element would produce odd results in IE.
+	Fixed bug where Opera 9.2x was placing the drop menus at incorrect locations if the editor was placed in a table.
+	Fixed bug where Opera was producing odd results if enter/return was pressed while having forced_root_blocks disabled.
+	Fixed bug where layer plugin was stealing focus in IE on initialization.
+	Fixed bug where body attributes wasn't set properly in the fullpage plugin, fix contributed by Hiroaki Kawai.
+	Fixed bug where insert image and insert link dialogs where producing an extra level in the undo history.
+	Fixed bug where Gecko would produce an error if empty elements like <div></div> where inserted using mceInsertContent.
+	Fixed bug where center alignment of images produced odd results inside table cells.
+	Fixed bug where center alignment of images couldn't be toggled correctly.
+	Fixed bug where alignment of images inside tables would produce double float style items in IE if the fix_table_elements option was enabled.
+	Fixed bug where a variable called 'v' was polluting the global namespace. Objects tinymce and tinyMCE are the only ones allowed to be global.
+	Fixed bug where insert table from context menu couldn't insert new tables inside existing tables.
+	Fixed bug where Safari wouldn't produce br elements on enter when the force_br_newlines option was enabled.
+	Fixed bug where switching cell type in table cell dialog would produce odd attributes in IE.
+	Fixed bug where Gecko was outputting internal attributes if valid_elements where set to "*[*]".
+	Fixed bug where the style plugin would produce non hex colors inside the dialog when running on Gecko.
+	Fixed bug where an empty src value for insert image would remove the currently selected image if it wasn't and image element.
+	Fixed bug where hidden input elements would break the logic for the tab_focus option.
+	Fixed bug where save button wasn't working correctly in fullscreen mode.
+	Fixed bug where the editor was forced to be placed in a form element if the save_onsavecallback option was used.
+	Fixed bug where upper case param attributes wasn't parsed correctly in the media plugin.
+	Fixed bug where render method of tinymce.Editor class would produce an exception if the strict_loading_mode option was omitted.
+	Fixed bug where nodeChanged event could be fired while the editor was loading and there for produce an exception in FF.
+	Fixed bug where no undo levels where added if the user created new table rows using the tab key on Gecko.
+	Fixed bug where tables would be broken if you selected a different block format for contents withing an table cell.
+	Fixed bug where the render method of the tinymce.Editor class didn't setup the tinymce.EditorManager.settings object correctly.
+	Fixed bug where the advanced image dialog would go to the first tab if the alternative image was changed using the file browser link.
+	Fixed bug where the forced_root_block option would produce BR elements inside empty blocks if the block wasn't a paragraph.
+	Fixed bug where the forced_root_block doesn't work correctly on IE if the specified element was something else than paragraphs.
+	Fixed bug where selection of images would get lost if user selected something from the context menu in IE.
+	Fixed bug where the context menu plugin would pollute the global namespace with two variables p1 and p2.
+	Fixed compatibility issue with Mootools, it is destroying document.getElementById on unload in IE. (Mantra: You don't own the internal objects).
+	Fixed bugs where dialogs/tabs and other UI elements where rendered incorrectly in Firefox 3.
+	Fixed so the auto CSS class importer is compatible with 2.x.
+	Fixed so the editor UI and inlinedialogs works correctly with the YUI CSS reset package.
+	Fixed so header and footer elements are forced to lower case when the fullpage plugin is used.
+	Fixed so load prefixes "-" for plugins and themes isn't required if the plugin/theme was loaded by the ThemeManager/PluginManager.
+	Fixed so the JSONRequest uses application/json content type to make Ruby on rails happy.
+	Fixed so the CSS rule is more exact for the body in the default content.css files. Body is now defined as "body.mceContentBody" instead of just "body".
+	Fixed so the tiny_mce_dev.js uses XHR instead of document.write to load scripts to resolve an issue with Opera 9.50.
+	Fixed so language pack loading can be disabled by setting the language option to false. Can be useful for systems with their own language pack management.
+Version 3.0 (2008-01-30)
+	Added map and area elements to the default valid_elements list and also some indentation rules.
+	Fixed bug where empty paragraphs wasn't padded when loading contents.
+	Fixed bug where the RowLayout manager didn't work at all.
+	Fixed bug where style attribute data would get messed up in advimage dialog.
+	Fixed bug where the table dialogs class select wasn't updated correctly.
+	Fixed bug where elements would get extra whitespace around on insert when body was present in valid_elements.
+	Fixed bug where coords attribute of the area element wasn't handled properly in IE.
+	Fixed bug where Safari didn't produce BR elements on shift+return.
+	Fixed bug where force blocks would cast odd invalid attribute exception in IE.
+	Fixed bug where media plugin would produce extra whitespace before and after objects.
+	Fixed bug where cleanup_callback could break the contents of the editor. But use the new event system instead of this option.
+	Fixed bug where the tab_focus option didn't work between editor instanced. You can now tab between editors.
+	Fixed bug where the load function of the ScriptLoader class didn't load single files without the load que as it was supposed to.
+	Fixed bug where the execcommand_callback parameter order was incorrect. Recommendation use the new addCommand method.
+	Fixed bug where range.select calls sometimes failed on some IE versions.
+	Fixed bug where Safari was scrolling to top of document when enter/returned was pressed.
+	Fixed bug where fullscreen_new_window option didn't work correctly.
+	Fixed bug where the nonbreaking plugin inserted an space instead of an non breaking space the first time.
+	Fixed bug where the visualization of non breaking spaces where visual in element path.
+	Fixed so the focus is restored to the editor after inserting an custom character.
+	Fixed so the isNotDirty state is set to false if a new undo level is added.
+	Fixed so pointless style information for borders gets removed in IE.
+	Fixed so the resize button has a se-resize cursor css value.
+Version 3.0rc2 (2008-01-18)
+	Added new fix_nesting option to fix bug #1867292, this is disabled by default.
+	Added new indentation option enables you to specify how much each indent/outdent call will add/remove.
+	Added easier support for enabling/disabling icon columns on drop menues.
+	Added new menu button control class. This control is very similar to the splitbutton but without any onclick action.
+	Added support for previous tab focus (shift+tab). The tab_focus setting now takes two items next and previous element.
+	Fixed bug where iframes inside the editor got removed in Firefox on initial load.
+	Fixed bug where the CSS for abbr elements wasn't applied correctly in IE.
+	Fixed bug where mceAddControl on element inside a hidden container produced errors.
+	Fixed bug where closed anchors like <a /> produced strange results.
+	Fixed bug where caret would jump to the top of the editor if enter was pressed a the end of a list.
+	Fixed bug where remove editor failed if the editor wasn't properly initialized.
+	Fixed bug where render call on for a non existing element produced exception.
+	Fixed bug where parent window was hidden when the color picker was used in a non inlinepopups setup.
+	Fixed bug where onchange event wasn't fired correctly on IE when color picker was used in dialogs.
+	Fixed bug where save plugin could not save contents if the converted element wasn't an textarea.
+	Fixed bug where events might be fired even after an editor instance was removed such as blur events.
+	Fixed bug where an exception about undefined undo levels could be throwed sometimes.
+	Fixed bug where the plugin_preview_pageurl option didn't work.
+	Fixed bug where adding/removing an editor instance very fast could produce problems.
+	Fixed bug where the link button was highlighted when an anchor element was selected.
+	Fixed bug where the selected contents where removed if a new anchor element was added.
+	Fixed bug where splitbuttons where rendered one pixel down in the default theme.
+	Fixed bug where some buttons where placed at incorrect positions in the o2k7 theme.
+	Fixed bug that made it impossible to visually disable a custom button that used an image instead of CSS sprites.
+	Fixed bug where it wasn't possible to press delete/backspace if the editor was added+removed and re-added due to a FF bug.
+	Fixed bug where an entities option with only 38,amp,60,lt,62,gt would fail in IE.
+	Fixed bug where innerHTML sometimes generated unknown runtime error on IE.
+	Fixed bug where content_css files wasn't loaded in the template preview iframe.
+	Fixed bug where scroll position was incorrect when toggling fullscreen mode.
+	Fixed bug where restoration of overflow didn't work correctly when disabling fullscreen mode in Opera.
+	Fixed bug where drop menus where places at incorrect locations if the editor was placed in a scrollable container element.
+	Fixed bug where hideMenu didn't hide sub menus correctly. It will now hide all menus recursively.
+	Fixed so theme_advanced_path_location can be used in init options for compatibility reasons.
+	Fixed so the drop menu colors matches the rest of o2k7 theme.
+	Fixed so the preview example.html file is updated to the new 3.x API.
+	Fixed so the margins are the same by default inside the editable area between IE and other browsers.
+	Fixed so editor contents gets stored before it the onSubmit event is fired.
+Version 3.0rc1 (2008-01-08)
+	Added new classes for toolbar rows in advanced theme mceToolbarRow1..n enabled you to change appearance of individual rows.
+	Added auto detection for the strict_loading_mode option when running in application/xhtml+xml mode on Gecko.
+	Optimized the HTML serializer by bundling some post process methods together.
+	Fixed so that the toolbars have unique IDs, enables you to alter the toolbars using the ControlManager and the DOM.
+	Fixed bug where delta values for dialog sizes in language packs didn't work correctly due to missing string to number casting.
+	Fixed bug where paragraph generation logic didn't handle hr or table elements correctly if they where the only element.
+	Fixed bug where some elements got extra linebreaks added after or before it in HTML output.
+	Fixed bug where it was hard to modify existing style data on table rows and table cells.
+	Fixed bug where the dom.getRect method didn't handle non pixel values correctly.
+	Fixed bug where strikethrough and underline couldn't be toggled on existing span elements.
+	Fixed bug where the postprocessor searched for nsbp instead of nbsp entities.
+	Fixed bug where it was impossible to edit links that had child elements within them.
+	Fixed bug where it was possible to click on the parent item of a submenu.
+	Fixed bug where mouseover/mouseout images couldn't be removed in advimage dialog.
+	Fixed bug where drop menus didn't work when running in application/xhtml+xml mode.
+	Fixed bug where Opera added doctype to output in application/xhtml+xml mode.
+	Fixed bug where some DOM methods didn't work correctly in the application/xhtml+xml mode.
+	Fixed bug where the inlinepopups didn't work correctly in the application/xhtml+xml mode.
+	Fixed bug where the ColorSplitButton didn't display correctly in the application/xhtml+xml mode.
+	Fixed bug where the UI layout was incorrect on Gecko browsers when running in application/xhtml+xml mode.
+	Fixed bug where the word paste plugin produced exception while running in application/xhtml+xml mode.
+	Fixed bug where there wasn't any hidden input element generated for divs while running in application/xhtml+xml mode.
+	Fixed bug where indentation of script/style/pre elements where incorrect.
+	Fixed bug where script element contents was removed in IE.
+	Fixed bug where script element contents got entity encoded.
+	Fixed bug where you couldn't edit existing element styles using the styles plugin.
+	Fixed bug where styles wasn't updated properly sometimes due to an performance enhancement.
+	Fixed bug where font sizes couldn't be changed using the style plugin.
+	Fixed bug where an error was produced in Gecko browsers when switching back from fullscreen mode.
+	Fixed bug where Opera was producing br elements after elements like h3.
+	Fixed bug where TinyMCE couldn't be loaded on a page using - characters in it's URL.
+	Fixed bug where the editor container element was forced to have a specific name.
+	Fixed bug with force_br_newlines option on Firefox, even though it should never be used (Read FAQ).
+	Fixed bug where onclick event had an return true; prefix added when creating an popup.
+	Fixed bug where the theme_advanced_statusbar_location option couldn't handle the value "none".
+	Fixed issue with URLs with multiple at characters for example an Zope URI.
+	Fixed so simple and advanced themes doesn't collide.
+	Fixed so a elements gets removed when the href field is left empty, the href attribute is required in a link after all.
+	Fixed so img elements gets removed when the src field is left empty, the src attribute is required for all images after all.
+	Removed the indent and encode methods from the tinymce.dom.Serializer class due to performance enhancement and reduction of the API size.
+Version 3.0b3 (2007-12-14)
+	Added new getElement method to Editor class, returns the element that was replaced with the editor instance.
+	Added new unavailable prefix for disabled controls for accessibility reasons.
+	Fixed bug where regexp patterns couldn't be used for the editor_selector/editor_deselector options.
+	Fixed bug where the DOM wasn't properly initialized before the onInit event was executed in popups.
+	Fixed bug where font sizes where reduced by font size actions on previous spans in Safari.
+	Fixed bug where HR elements got places at the wrong location in IE.
+	Fixed bug where align/justify didn't work correctly on multiple paragraphs.
+	Fixed bug with missing translation for cell scope settings.
+	Fixed bug where selection/caret position was lost on some table actions.
+	Fixed bug where editor instances couldn't be added to hidden div elements.
+	Fixed bug where list elements in Safari would get an odd ID attribute.
+	Fixed bug where IE would return <html/> when the editor was completely empty.
+	Fixed bug where accessibility title attribute for access keys wasn't setup properly.
+	Fixed bug where forecolorpicker and backcolorpicker control names wasn't working.
+	Fixed bug where inserting template content didn't work in Safari due to selection exception.
+	Fixed bug where absolute URLs to remote hosts couldn't be used for background images.
+	Fixed bug where mysterious span elements where produced in Safari when injecting HTML contents.
+	Fixed bug where the media plugin didn't work correctly on the latest Opera 9.24.
+	Fixed bug where indentation of HTML output wasn't applied to all block elements.
+	Fixed bug where Safari was production DOM exception if you pressed enter in an empty editor.
+	Fixed bug where media plugin didn't parse script tags correctly patch contributed by Mathieu Campagna.
+	Fixed bug where the drop menus of list boxes like blockformat could produce scrolling of the page.
+	Fixed bug where the drop menus where placed at an incorrect location if TinyMCE was placed in a scrollable div.
+	Fixed bug where submit buttons couldn't be named submit, it's not recommended to name submit buttons submit anyway.
+	Fixed bug where the stylelistbox produced an exception if there was only one class in the list box.
+	Fixed bug where the stylelistbox wasn't updated correctly when the current class was removed.
+	Fixed bug where the formatblock command sometimes removed the body element.
+	Fixed bug where fullscreen switching in IE sometimes produced an exception when the spellchecker plugin was enabled.
+	Fixed issue where FF produced an empty paragraph when the editor was completely empty.
+	Fixed issue with size of image dialog in the advanced theme.
+	Fixed issues with the bbcode plugin it now also handles spans and the [font] rule.
+	Fixed so the style compression feature is a bit smarter to resolve issues with Opera.
+	Reintroduced the remove_linebreaks option, this is enabled by default.
+Version 3.0b2 (2007-11-29)
+	Added type and compact attributes to the default valid_elements list for the ul and ol elements.
+	Added missing accessibility support to native list boxes in both the toolbar and dialogs.
+	Added missing access key for the element path for accessibility reasons.
+	Fixed support for loading themes from external URLs.
+	Fixed bug where setOuterHTML didn't work correctly when multiple elements where passed to it.
+	Fixed bug with visualchars plugin was moving elements around in the DOM.
+	Fixed bug with DIV elements that got converted into editors on IE.
+	Fixed bug with paste plugin using the old event API.
+	Fixed bug where the spellchecker was removing the word when it was ignored.
+	Fixed bug where fullscreen wasn't working properly.
+	Fixed bug where the base href element and attribute was ignored.
+	Fixed bug where redo function didn't work in IE.
+	Fixed bug where content_css didn't work as previous 2.x branch.
+	Fixed bug where preview dialog was throwing errors if the content_css wasn't defined.
+	Fixed bug where the theme_advanced_path option didn't work like the 2.x branch.
+	Fixed bug where the theme_advanced_statusbar_location was called theme_advanced_status_location.
+	Fixed bug where the strict_loading_mode option didn't work if you created editors dynamically without using the EditorManager.
+	Fixed bug where some language values wasn't translated such as insert and update in dialogs.
+	Fixed bug where some image attributes wasn't stored correctly when inserting an image.
+	Fixed bug where fullscreen mode didn't restore scrollbars when disabled.
+	Fixed bug where there was no visual representation for tab focus in toolbars on IE.
+	Fixed bug where HR elements wasn't treated as block elements so forced_root_block would fail on these.
+	Fixed bug where autosave presented warning message even when the form was submitted normally.
+	Fixed typo of openBrower it's now openBrowser in form_utils.js.
+	Fixed various HTML problems like missing TD elements and duplicated doctypes.
+	Fixed default values for theme_advanced_resize_horizontal, theme_advanced_resizing_use_cookie to be 2.x compatible.
+	Moved spellchecker JS files into the development package.
+	Removed support for theme_advanced_path_location since the theme_advanced_statusbar_location is the correct option name.
+Version 3.0b1 (2007-11-21)
+	Added new tab_focus option, that enables you to specify a element id or that the next element to be focused on tab key down.
+	Added new addQueryValueHandler method to the tinymce.Editor class.
+	Added new class_filter option, this enables you to specify a function that can filter out CSS classes for the styles list box.
+	Added support form [url=url]title[/url] to the bbcode plugin.
+	Renamed the addCommandQueryState method in the tinymce.Editor class to addQueryStateHandler.
+	Renamed loadQue to loadQueue, to correct spelling.
+	Removed the createDOM method from the window manager and replace it with a createInstance method.
+	Removed the add to beginning of class attribute parameter of the DOMUtils.addClass method.
+	Fixed bug with the forced_root_block option, didn't work correctly with multiple inline elements.
+	Fixed bug where image dialogs replaced the current image element with a new one even when it was updated.
+	Fixed bug where the submit trigger wasn't executed when divs where converted into editor instances.
+	Fixed bug where div elements that got converted into editors didn't get a hidden input element generated for them.
+	Fixed bug where the the media_use_script option for the media plugin wasn't working correctly.
+	Fixed bug where the font size and font family listboxes wasn't updated correctly on Safari.
+	Fixed bug where the height of the fieldset in default image dialog for the advanced theme was to small.
+	Fixed bug where the font sizes behaved incorrectly after a cleanup on Safari.
+	Fixed bug where formatblock didn't work correctly in Safari on some elements.
+	Fixed bug where template plugin didn't insert content correctly unless some options where specified.
+	Fixed bug where charmap on Safari produced scrollbars.
+	Fixed bug where there was white artifacts in some dialogs due to missing background color.
+	Fixed bug where port was added to all external URLs if the editor was loaded from a custom port.
+	Fixed bug where the context menus got duplicated on Safari 3.0.4 on Mac OS X.
+	Fixed bug where dialogs like paste from word was huge on Firefox.
+	Fixed bug with media plugin not working with windows media objects.
+	Fixed bug where a forever loop was created if multiple instances where submitted using form.submit.
+	Fixed bug with editing a table produce error in IE when inlinepopups where used.
+	Fixed bug where the style plugin generated ugly looking style information in IE.
+	Fixed bug where the inline dialogs that got opened while in fullscreen mode wasn't visible.
+	Fixed bug where it was difficult to place the caret inside the word paste dialog.
+	Fixed bug where Opera produced strange border in the word paste dialog.
+	Fixed bug where viewport constraints could move a inlinepopup to a negative x, y position if the viewport was to small.
+	Fixed bug where template plugin was producing an error due to a deprecated API call.
+	Fixed bug where drag drop of images failed in Gecko if a document_base_url was specified.
+	Fixed bug where Firefox 3 failed to apply block formats like H1-H6 it still breaks on DIVs this has been reported to bugzilla.
+	Fixed bug where IE was producing a warning dialog about non secure items when running TinyMCE over HTTPS.
+	Fixed bug where the onbeforeunload event was triggered when menus or dialogs where opened.
+	Fixed bug where the fullscreen mode of the HTML view source box threw an error.
+	Fixed bug where the mceFocus command didn't work correctly.
+	Fixed bug where the selection could get lost in IE using inlinepopups.
+	Fixed so the body of the editor area has the mceContentBody class just like the 2.x branch. 
+	Fixed so the media icon gets active when a media element is selected.
+Version 3.0a3 (2007-11-13)
+	Added new experimental jQuery and Prototype framework adapters to the development package.
+	Added new translation.html file for the development package. Helps with the internationalization of TinyMCE.
+	Added new setup callback option, use this callback to add events to TinyMCE. This method is recommended over the old callbacks.
+	Added new API documetation to all classes, functions, events, properties to the Wiki with examples etc.
+	Added new init method to all plugins and themes, since it's shorter to write and it mimics interface capable languages better.
+	Fixed various CSS issues in the default skin such as alignment of split buttons and separators.
+	Fixed issues with mod_security. It didn't like that a content type of text/javascript was forced in a XHR.
+	Fixed all events so that they now pass the sender object as it's first argument.
+	Fixed some DOM methods so they now can take an array as input.
+	Fixed so addButton and the methods of the ControlManager uses less arguments and it now uses a settings object instead.
+	Fixed various issues with the tinymce.util.URI class.
+	Fixed bug in IE and Safari and the on demand gzip loading feature.
+	Fixed bug with moving inline windows sometimes failed in IE6.
+	Fixed bug where save_callback function wasn't executed at all.
+	Fixed bug where inlinepopups produces scrollbars if windows where moved to the corners of the browser.
+	Fixed bug where view HTML source failed when inserting a embedded media object.
+	Fixed bug where the listbox menus didn't display correctly on IE6.
+	Fixed bug where undo level wasn't added when editor was blurred.
+	Fixed bug where spellchecker wasn't disabled when fullscreen mode was enabled.
+	Fixed bug where Firefox could crash some times when the user switched to fullscreen mode.
+	Fixed bug where tinymce.ui.DropMenu didn't remove all item data when an item was removed from the menu.
+	Fixed bug where anchor list in advlink dialog wasn't populated correctly in Safari.
+	Fixed bug where it wasn't possible to edit tables in IE when inlinepopups was enabled.
+	Fixed bug where it wasn't possible to change the table width of an existing table.
+	Fixed bug where xhtmlxtras like abbr didn't work correctly on IE.
+	Fixed bug where IE6 had some graphics rendering issues with the inlinepopups.
+	Fixed bug where inlinepopup windows where moved incorrectly when they were boundary checked for min width.
+	Fixed bug where textareas without id or name couldn't be converted into editor instances.
+	Fixed bug where TinyMCE was stealing element focus on IE.
+	Fixed bug where the getParam method didn't handle false values correctly.
+	Fixed bug where inlinepopups was clipped by other TinyMCE instances or relative elements in IE.
+	Fixed bug where the contextmenu was clipped by other TinyMCE instances or relative elements in IE.
+	Fixed bug where listbox menus was clipped by other TinyMCE instances or relative elements in IE.
+	Fixed bug where listboxes wasn't updated correctly when the a value wasn't found by select.
+	Fixed various CSS issues that produced odd rendering bugs in IE.
+	Fixed issues with tinymce.ui.DropMenu class, it required some optional settings to be specified.
+	Fixed so multiple blockquotes can be removed with a easier method than before.
+	Optimized some of the core API to boost performance.
+	Removed some functions from the core API that wasn't needed.
+Version 3.0a2 (2007-11-02)
+	Fixed critical bug where IE generaded an error on a hasAttribute call in the serialization engine.
+	Fixed critical bug where some dialogs didn't open in the non dev package.
+	Fixed bug when using the theme_advanced_styles option. Error was thrown in some dialogs.
+	Fixed bug where the close buttons produced an error when native windows where used.
+	Fixed bug in default skin so that split buttons gets activated correctly.
+	Fixed so plugins can be loaded from external urls outsite the plugins directory.
+Version 3.0a1 (2007-11-01)
+	Rewrote the core and most of the plugins and themes from scratch.
+	Added new and improved serialization engine, faster and more powerful.
+	Added new internal event system, things like editor.onClick.add(func).
+	Added new inlinepopups plugin, the dialogs are now skinnable and uses clearlooks2 as default.
+	Added new contextmenu plugin, context menus can now have submenus and plugins can add items on the fly.
+	Added new skin support for the simple and advanced themes you can alter the whole UI using CSS.
+	Added new o2k7 skin for the simple and advanced themes.
+	Added new custom list boxes for font size/format/style etc with preview support.
+	Added new UI management, enabled plugins to create controls like splitbuttons or menus easier.
+	Added new JSON parser/serializer and JSON-RPC class to the core API.
+	Added new cookie utility class to the core API.
+	Added new Unit testing class to the core API only available in dev mode.
+	Added new firebug lite integration when loading the dev version of TinyMCE.
+	Added new Safari plugin, fixes lots compatibility of issues with Safari 3.x.
+	Added new URI/URL parsing it now handles the hole RFC and even some exceptions.
+	Added new pagebreak plugin, enables you to insert pagebreak comments like <!-- pagebreak -->
+	Added new on demand loading of plugins and themes. Enables you to load and init TinyMCE at any time.
+	Added new throbber/progress visualization a plugin can show/hide this when it's needed.
+	Added new blockquote button. Enables you to wrap paragraphs in blockquotes.
+	Added new compat2x plugin. Will provide a TinyMCE 2.x API for older plugins.
+	Added new theme_advanced_resizing_min_width, theme_advanced_resizing_min_height options.
+	Added new theme_advanced_resizing_max_height, theme_advanced_resizing_max_height options.
+	Added new use_native_selects option. Enables you to toggle native listboxes on and off.
+	Added new docs_url option enables you to specify where the TinyMCE user documentation is located.
+	Added new frame and rules options for the table dialog.
+	Added new global rule for valid_elements/extended_valid_elements enables you to specify global attributes for all elements.
+	Added new deny attribute rule characher so it's possible to deny global attribute rules on specific elements.
+	Added new unit tests in the dev package of TinyMCE. Runs tests on the core API, commands and settings of the editor.
+	Readded the inline_styles option and enabled it by default so deprecated attributes are no longer used.
+	Removed all button images and replaced them with CSS sprite images. Reduces the number of requests needed.
+	Removed lots of language files and merged them into the base language files. Reduces the number of requests needed.
+	Removed lots of unnecessary files and merged many of them together to reduce requests and improve loading speed.
+	Reduced the over all script size by 33% and the number of files/requests by 75% so it loads a lot faster.
+	Fixed so convert_fonts_to_spans are enabled by default. So no more font tags.
+	Fixed so underline and strikethrough uses spans instread of deprecated U and STRIKE elements.
+	Fixed so indent/outdent adds/removed margin-left instead of blockquotes.
+	Fixed so alignment of paragraphs results in a text-align style value instead of the deprecated align attribute.
+	Fixed so alignment of images uses float or vertical-align style values instead of the deprecated align attribute.
+	Fixed so all classes from @import stylesheets gets imported into the editor.
+	Fixed so the directionality can toggle the dir attribute on and off.
+	Fixed so the fullscreen_settings can be used for all types of fullscreen modes.
+	Fixed so the advanced HR dialog gets displayed when inserting a HR not only on edit.
+	Fixed bug where word wrap didn't work in the source editor on Safari.
+	Fixed so non HTML elements can be used within the editor such as <myns:tag>
+	Fixed various memory leaks in IE and reduced the unload cleanups needed.
+	Fixed so the preformatted option adds an invisible container pre tag inside the editor.
+	Renamed the _template plugin to example and updated it to use the new 3.x API.
diff --git a/drupal/sites/all/libraries/tinymce/examples/accessibility.html b/drupal/sites/all/libraries/tinymce/examples/accessibility.html
new file mode 100644
index 0000000..0ede8b6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/accessibility.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Full featured example</title>
+
+<!-- TinyMCE -->
+<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script type="text/javascript">
+	tinyMCE.init({
+		// General options
+		mode : "textareas",
+		theme : "advanced",
+		plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example content CSS (should be your site CSS)
+		// using false to ensure that the default browser settings are used for best Accessibility
+		// ACCESSIBILITY SETTINGS
+		content_css : false,
+		// Use browser preferred colors for dialogs.
+		browser_preferred_colors : true,
+		detect_highcontrast : true,
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Style formats
+		style_formats : [
+			{title : 'Bold text', inline : 'b'},
+			{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
+			{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
+			{title : 'Example 1', inline : 'span', classes : 'example1'},
+			{title : 'Example 2', inline : 'span', classes : 'example2'},
+			{title : 'Table styles'},
+			{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
+		],
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+</script>
+<!-- /TinyMCE -->
+
+</head>
+<body>
+
+<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
+	<div>
+		<h3>Full featured example, with Accessibility settings enabled</h3>
+
+		<p>
+			This page has got the TinyMCE set up to work with configurations related to accessiblity enabled.
+			In particular
+			<ul>
+			<li>the <strong>content_css</strong> is set to false, to ensure that all default browser styles are used, </li>
+			<li>the <strong>browser_preferred_colors</strong> dialog option is used to ensure that default css is used for dialogs, </li>
+			<li>and the <strong>detect_highcontrast</strong> option has been set to ensure that highcontrast mode in Windows browsers
+			is detected and the toolbars are displayed in a high contrast mode.</li>
+			</ul>
+		</p>
+
+		<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
+		<div>
+			<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
+				<p>
+					This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+				</p>
+				<p>
+				Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feug [...]
+				</p>
+			</textarea>
+		</div>
+
+		<br />
+		<input type="submit" name="save" value="Submit" />
+		<input type="reset" name="reset" value="Reset" />
+	</div>
+</form>
+
+<script type="text/javascript">
+if (document.location.protocol == 'file:') {
+	alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
+}
+</script>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/examples/css/content.css b/drupal/sites/all/libraries/tinymce/examples/css/content.css
new file mode 100644
index 0000000..a9b26c5
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/css/content.css
@@ -0,0 +1,105 @@
+body {
+	background-color: #FFFFFF;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+	scrollbar-3dlight-color: #F0F0EE;
+	scrollbar-arrow-color: #676662;
+	scrollbar-base-color: #F0F0EE;
+	scrollbar-darkshadow-color: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;
+}
+
+td {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+pre {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+.example1 {
+	font-weight: bold;
+	font-size: 14px
+}
+
+.example2 {
+	font-weight: bold;
+	font-size: 12px;
+	color: #FF0000
+}
+
+.tablerow1 {
+	background-color: #BBBBBB;
+}
+
+thead {
+	background-color: #FFBBBB;
+}
+
+tfoot {
+	background-color: #BBBBFF;
+}
+
+th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 13px;
+}
+
+/* Basic formats */
+
+.bold {
+	font-weight: bold;
+}
+
+.italic {
+	font-style: italic;
+}
+
+.underline {
+	text-decoration: underline;
+}
+
+/* Global align classes */
+
+.left {
+	text-align: inherit;
+}
+
+.center {
+	text-align: center;
+}
+
+.right {
+	text-align: right;
+}
+
+.full {
+	text-align: justify
+}
+
+/* Image and table specific aligns */
+
+img.left, table.left {
+	float: left;
+	text-align: inherit;
+}
+
+img.center, table.center {
+	margin-left: auto;
+	margin-right: auto;
+	text-align: inherit;
+}
+
+img.center {
+	display: block;
+}
+
+img.right, table.right {
+	float: right;
+	text-align: inherit;
+}
diff --git a/drupal/sites/all/libraries/tinymce/examples/css/word.css b/drupal/sites/all/libraries/tinymce/examples/css/word.css
new file mode 100644
index 0000000..79b820a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/css/word.css
@@ -0,0 +1,53 @@
+body {
+	background-color: #FFFFFF;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+	scrollbar-3dlight-color: #F0F0EE;
+	scrollbar-arrow-color: #676662;
+	scrollbar-base-color: #F0F0EE;
+	scrollbar-darkshadow-color: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;
+}
+
+p {margin:0; padding:0;}
+
+td {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+pre {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+.example1 {
+	font-weight: bold;
+	font-size: 14px
+}
+
+.example2 {
+	font-weight: bold;
+	font-size: 12px;
+	color: #FF0000
+}
+
+.tablerow1 {
+	background-color: #BBBBBB;
+}
+
+thead {
+	background-color: #FFBBBB;
+}
+
+tfoot {
+	background-color: #BBBBFF;
+}
+
+th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 13px;
+}
diff --git a/drupal/sites/all/libraries/tinymce/examples/custom_formats.html b/drupal/sites/all/libraries/tinymce/examples/custom_formats.html
new file mode 100644
index 0000000..69206b4
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/custom_formats.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Custom formats example</title>
+
+<!-- TinyMCE -->
+<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script type="text/javascript">
+	tinyMCE.init({
+		// General options
+		mode : "textareas",
+		theme : "advanced",
+		plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example content CSS (should be your site CSS)
+		content_css : "css/content.css",
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Style formats
+		style_formats : [
+			{title : 'Bold text', inline : 'b'},
+			{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
+			{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
+			{title : 'Example 1', inline : 'span', classes : 'example1'},
+			{title : 'Example 2', inline : 'span', classes : 'example2'},
+			{title : 'Table styles'},
+			{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
+		],
+
+		formats : {
+			alignleft : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'left'},
+			aligncenter : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'center'},
+			alignright : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'right'},
+			alignfull : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'full'},
+			bold : {inline : 'span', 'classes' : 'bold'},
+			italic : {inline : 'span', 'classes' : 'italic'},
+			underline : {inline : 'span', 'classes' : 'underline', exact : true},
+			strikethrough : {inline : 'del'}
+		},
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+</script>
+<!-- /TinyMCE -->
+
+</head>
+<body>
+
+<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
+	<div>
+		<h3>Custom formats example</h3>
+
+		<p>
+			This example shows you how to override the default formats for bold, italic, underline, strikethough and alignment to use classes instead of inline styles.
+			There are more examples on how to use TinyMCE in the <a href="http://tinymce.moxiecode.com/examples/">Wiki</a>.
+		</p>
+
+		<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
+		<div>
+			<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
+				<p>
+					This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+				</p>
+				<p>
+				Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feug [...]
+				</p>
+			</textarea>
+		</div>
+
+		<!-- Some integration calls -->
+		<a href="javascript:;" onmousedown="tinyMCE.get('elm1').show();">[Show]</a>
+		<a href="javascript:;" onmousedown="tinyMCE.get('elm1').hide();">[Hide]</a>
+		<a href="javascript:;" onmousedown="tinyMCE.get('elm1').execCommand('Bold');">[Bold]</a>
+		<a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').getContent());">[Get contents]</a>
+		<a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').selection.getContent());">[Get selected HTML]</a>
+		<a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').selection.getContent({format : 'text'}));">[Get selected text]</a>
+		<a href="javascript:;" onmousedown="alert(tinyMCE.get('elm1').selection.getNode().nodeName);">[Get selected element]</a>
+		<a href="javascript:;" onmousedown="tinyMCE.execCommand('mceInsertContent',false,'<b>Hello world!!</b>');">[Insert HTML]</a>
+		<a href="javascript:;" onmousedown="tinyMCE.execCommand('mceReplaceContent',false,'<b>{$selection}</b>');">[Replace selection]</a>
+
+		<br />
+		<input type="submit" name="save" value="Submit" />
+		<input type="reset" name="reset" value="Reset" />
+	</div>
+</form>
+<script type="text/javascript">
+if (document.location.protocol == 'file:') {
+	alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
+}
+</script>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/examples/full.html b/drupal/sites/all/libraries/tinymce/examples/full.html
new file mode 100644
index 0000000..53cf0fb
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/full.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Full featured example</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<!-- TinyMCE -->
+<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script type="text/javascript">
+	tinyMCE.init({
+		// General options
+		mode : "textareas",
+		theme : "advanced",
+		plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave,visualblocks",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft,visualblocks",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example content CSS (should be your site CSS)
+		content_css : "css/content.css",
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Style formats
+		style_formats : [
+			{title : 'Bold text', inline : 'b'},
+			{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
+			{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
+			{title : 'Example 1', inline : 'span', classes : 'example1'},
+			{title : 'Example 2', inline : 'span', classes : 'example2'},
+			{title : 'Table styles'},
+			{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
+		],
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+</script>
+<!-- /TinyMCE -->
+
+</head>
+<body role="application">
+
+<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
+	<div>
+		<h3>Full featured example</h3>
+
+		<p>
+			This page shows all available buttons and plugins that are included in the TinyMCE core package.
+			There are more examples on how to use TinyMCE in the <a href="http://tinymce.moxiecode.com/examples/">Wiki</a>.
+		</p>
+
+		<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
+		<div>
+			<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
+				<p>
+					This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+				</p>
+				<p>
+				Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feug [...]
+				</p>
+			</textarea>
+		</div>
+
+		<!-- Some integration calls -->
+		<a href="javascript:;" onclick="tinyMCE.get('elm1').show();return false;">[Show]</a>
+		<a href="javascript:;" onclick="tinyMCE.get('elm1').hide();return false;">[Hide]</a>
+		<a href="javascript:;" onclick="tinyMCE.get('elm1').execCommand('Bold');return false;">[Bold]</a>
+		<a href="javascript:;" onclick="alert(tinyMCE.get('elm1').getContent());return false;">[Get contents]</a>
+		<a href="javascript:;" onclick="alert(tinyMCE.get('elm1').selection.getContent());return false;">[Get selected HTML]</a>
+		<a href="javascript:;" onclick="alert(tinyMCE.get('elm1').selection.getContent({format : 'text'}));return false;">[Get selected text]</a>
+		<a href="javascript:;" onclick="alert(tinyMCE.get('elm1').selection.getNode().nodeName);return false;">[Get selected element]</a>
+		<a href="javascript:;" onclick="tinyMCE.execCommand('mceInsertContent',false,'<b>Hello world!!</b>');return false;">[Insert HTML]</a>
+		<a href="javascript:;" onclick="tinyMCE.execCommand('mceReplaceContent',false,'<b>{$selection}</b>');return false;">[Replace selection]</a>
+
+		<br />
+		<input type="submit" name="save" value="Submit" />
+		<input type="reset" name="reset" value="Reset" />
+	</div>
+</form>
+
+<script type="text/javascript">
+if (document.location.protocol == 'file:') {
+	alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
+}
+</script>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/examples/index.html b/drupal/sites/all/libraries/tinymce/examples/index.html
new file mode 100644
index 0000000..076dbbe
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/index.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<html>
+<head>
+	<title>TinyMCE examples</title>
+</head>
+<frameset cols="180,80%">
+	<frame src="menu.html" name="menu" />
+	<frame src="full.html" name="main" />
+</frameset>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/examples/lists/image_list.js b/drupal/sites/all/libraries/tinymce/examples/lists/image_list.js
new file mode 100644
index 0000000..ad54a97
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/lists/image_list.js
@@ -0,0 +1,9 @@
+// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system.
+// There images will be displayed as a dropdown in all image dialogs if the "external_link_image_url"
+// option is defined in TinyMCE init.
+
+var tinyMCEImageList = new Array(
+	// Name, URL
+	["Logo 1", "media/logo.jpg"],
+	["Logo 2 Over", "media/logo_over.jpg"]
+);
diff --git a/drupal/sites/all/libraries/tinymce/examples/lists/link_list.js b/drupal/sites/all/libraries/tinymce/examples/lists/link_list.js
new file mode 100644
index 0000000..238dacb
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/lists/link_list.js
@@ -0,0 +1,10 @@
+// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system.
+// There links will be displayed as a dropdown in all link dialogs if the "external_link_list_url"
+// option is defined in TinyMCE init.
+
+var tinyMCELinkList = new Array(
+	// Name, URL
+	["Moxiecode", "http://www.moxiecode.com"],
+	["Freshmeat", "http://www.freshmeat.com"],
+	["Sourceforge", "http://www.sourceforge.com"]
+);
diff --git a/drupal/sites/all/libraries/tinymce/examples/lists/media_list.js b/drupal/sites/all/libraries/tinymce/examples/lists/media_list.js
new file mode 100644
index 0000000..87c6fe8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/lists/media_list.js
@@ -0,0 +1,14 @@
+// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system.
+// There flash movies will be displayed as a dropdown in all media dialog if the "media_external_list_url"
+// option is defined in TinyMCE init.
+
+var tinyMCEMediaList = [
+	// Name, URL
+	["Some Flash", "media/sample.swf"],
+	["Some Quicktime", "media/sample.mov"],
+	["Some AVI", "media/sample.avi"],
+	["Some RealMedia", "media/sample.rm"],
+	["Some Shockwave", "media/sample.dcr"],
+	["Some Video", "media/sample.mp4"],
+	["Some FLV", "media/sample.flv"]
+];
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/examples/lists/template_list.js b/drupal/sites/all/libraries/tinymce/examples/lists/template_list.js
new file mode 100644
index 0000000..79d3f86
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/lists/template_list.js
@@ -0,0 +1,9 @@
+// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system.
+// There templates will be displayed as a dropdown in all media dialog if the "template_external_list_url"
+// option is defined in TinyMCE init.
+
+var tinyMCETemplateList = [
+	// Name, URL, Description
+	["Simple snippet", "templates/snippet1.htm", "Simple HTML snippet."],
+	["Layout", "templates/layout1.htm", "HTML Layout."]
+];
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/logo.jpg b/drupal/sites/all/libraries/tinymce/examples/media/logo.jpg
new file mode 100644
index 0000000..ad535d6
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/logo.jpg differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/logo_over.jpg b/drupal/sites/all/libraries/tinymce/examples/media/logo_over.jpg
new file mode 100644
index 0000000..79fcd88
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/logo_over.jpg differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/sample.avi b/drupal/sites/all/libraries/tinymce/examples/media/sample.avi
new file mode 100644
index 0000000..238bb68
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/sample.avi differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/sample.dcr b/drupal/sites/all/libraries/tinymce/examples/media/sample.dcr
new file mode 100644
index 0000000..353b3ce
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/sample.dcr differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/sample.flv b/drupal/sites/all/libraries/tinymce/examples/media/sample.flv
new file mode 100644
index 0000000..799d137
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/sample.flv differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/sample.mov b/drupal/sites/all/libraries/tinymce/examples/media/sample.mov
new file mode 100644
index 0000000..9c0a093
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/sample.mov differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/sample.ram b/drupal/sites/all/libraries/tinymce/examples/media/sample.ram
new file mode 100644
index 0000000..e2ce04c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/media/sample.ram
@@ -0,0 +1 @@
+http://streaming.uga.edu/samples/ayp_lan.rm
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/sample.rm b/drupal/sites/all/libraries/tinymce/examples/media/sample.rm
new file mode 100644
index 0000000..8947706
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/sample.rm differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/media/sample.swf b/drupal/sites/all/libraries/tinymce/examples/media/sample.swf
new file mode 100644
index 0000000..9f5fc4a
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/examples/media/sample.swf differ
diff --git a/drupal/sites/all/libraries/tinymce/examples/menu.html b/drupal/sites/all/libraries/tinymce/examples/menu.html
new file mode 100644
index 0000000..a26c301
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/menu.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Menu</title>
+<style>
+a {display:block;}
+</style>
+</head>
+<body>
+<h3>Examples</h3>
+<a href="full.html" target="main">Full featured</a>
+<a href="simple.html" target="main">Simple theme</a>
+<a href="skins.html" target="main">Skin support</a>
+<a href="word.html" target="main">Word processor</a>
+<a href="custom_formats.html" target="main">Custom formats</a>
+<a href="accessibility.html" target="main">Accessibility Options</a>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/examples/simple.html b/drupal/sites/all/libraries/tinymce/examples/simple.html
new file mode 100644
index 0000000..b183c66
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/simple.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Simple theme example</title>
+
+<!-- TinyMCE -->
+<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script type="text/javascript">
+	tinyMCE.init({
+		mode : "textareas",
+		theme : "simple"
+	});
+</script>
+<!-- /TinyMCE -->
+
+</head>
+<body>
+
+<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
+	<h3>Simple theme example</h3>
+
+	<p>
+		This page shows you the simple theme and it's core functionality you can extend it by changing the code use the advanced theme if you need to configure/add more buttons etc.
+		There are more examples on how to use TinyMCE in the <a href="http://tinymce.moxiecode.com/examples/">Wiki</a>.
+	</p>
+
+	<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
+	<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
+		<p>
+			This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+		</p>
+		<p>
+		Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugia [...]
+		</p>
+	</textarea>
+
+	<br />
+	<input type="submit" name="save" value="Submit" />
+	<input type="reset" name="reset" value="Reset" />
+</form>
+<script type="text/javascript">
+if (document.location.protocol == 'file:') {
+	alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
+}
+</script>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/examples/skins.html b/drupal/sites/all/libraries/tinymce/examples/skins.html
new file mode 100644
index 0000000..f34a99a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/skins.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Skin support example</title>
+
+<!-- TinyMCE -->
+<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script type="text/javascript">
+	// Default skin
+	tinyMCE.init({
+		// General options
+		mode : "exact",
+		elements : "elm1",
+		theme : "advanced",
+		plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autosave",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example content CSS (should be your site CSS)
+		content_css : "css/content.css",
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+
+	// O2k7 skin
+	tinyMCE.init({
+		// General options
+		mode : "exact",
+		elements : "elm2",
+		theme : "advanced",
+		skin : "o2k7",
+		plugins : "lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autosave",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example content CSS (should be your site CSS)
+		content_css : "css/content.css",
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+
+	// O2k7 skin (silver)
+	tinyMCE.init({
+		// General options
+		mode : "exact",
+		elements : "elm3",
+		theme : "advanced",
+		skin : "o2k7",
+		skin_variant : "silver",
+		plugins : "lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autosave",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example content CSS (should be your site CSS)
+		content_css : "css/content.css",
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+
+	// O2k7 skin (silver)
+	tinyMCE.init({
+		// General options
+		mode : "exact",
+		elements : "elm4",
+		theme : "advanced",
+		skin : "o2k7",
+		skin_variant : "black",
+		plugins : "lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autosave",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example content CSS (should be your site CSS)
+		content_css : "css/content.css",
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+</script>
+<!-- /TinyMCE -->
+
+</head>
+<body>
+
+<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
+	<h3>Skin support example</h3>
+
+	<p>
+		This page displays the two skins that TinyMCE comes with. You can make your own by creating a CSS file in themes/advanced/skins/<yout skin>/ui.css
+		There are more examples on how to use TinyMCE in the <a href="http://tinymce.moxiecode.com/examples/">Wiki</a>.
+	</p>
+
+	<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
+	<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
+		<p>
+			This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+		</p>
+		<p>
+		Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugia [...]
+		</p>
+	</textarea>
+
+	<br />
+
+	<textarea id="elm2" name="elm2" rows="15" cols="80" style="width: 80%">
+		<p>
+			This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+		</p>
+		<p>
+		Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugia [...]
+		</p>
+	</textarea>
+
+	<br />
+
+	<textarea id="elm3" name="elm3" rows="15" cols="80" style="width: 80%">
+		<p>
+			This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+		</p>
+		<p>
+		Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugia [...]
+		</p>
+	</textarea>
+
+	<br />
+
+	<textarea id="elm4" name="elm4" rows="15" cols="80" style="width: 80%">
+		<p>
+			This is some example text that you can edit inside the <strong>TinyMCE editor</strong>.
+		</p>
+		<p>
+		Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugia [...]
+		</p>
+	</textarea>
+
+	<br />
+	<input type="submit" name="save" value="Submit" />
+	<input type="reset" name="reset" value="Reset" />
+</form>
+<script type="text/javascript">
+if (document.location.protocol == 'file:') {
+	alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
+}
+</script>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/examples/templates/layout1.htm b/drupal/sites/all/libraries/tinymce/examples/templates/layout1.htm
new file mode 100644
index 0000000..7248c23
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/templates/layout1.htm
@@ -0,0 +1,15 @@
+<table border="1">
+	<thead>
+		<tr>
+			<td>Column 1</td>
+			<td>Column 2</td>
+		</tr>
+	</thead>
+
+	<tbody>
+		<tr>
+			<td>Username: {$username}</td>
+			<td>Staffid: {$staffid}</td>
+		</tr>
+	</tbody>
+</table>
diff --git a/drupal/sites/all/libraries/tinymce/examples/templates/snippet1.htm b/drupal/sites/all/libraries/tinymce/examples/templates/snippet1.htm
new file mode 100644
index 0000000..98f42c3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/templates/snippet1.htm
@@ -0,0 +1 @@
+This is just some <strong>code</strong>.
diff --git a/drupal/sites/all/libraries/tinymce/examples/word.html b/drupal/sites/all/libraries/tinymce/examples/word.html
new file mode 100644
index 0000000..80c6f74
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/examples/word.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Word processor example</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<!-- TinyMCE -->
+<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
+<script type="text/javascript">
+	tinyMCE.init({
+		// General options
+		mode : "textareas",
+		theme : "advanced",
+		skin : "o2k7",
+		plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autosave",
+
+		// Theme options
+		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
+		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
+		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
+		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
+		theme_advanced_toolbar_location : "top",
+		theme_advanced_toolbar_align : "left",
+		theme_advanced_statusbar_location : "bottom",
+		theme_advanced_resizing : true,
+
+		// Example word content CSS (should be your site CSS) this one removes paragraph margins
+		content_css : "css/word.css",
+
+		// Drop lists for link/image/media/template dialogs
+		template_external_list_url : "lists/template_list.js",
+		external_link_list_url : "lists/link_list.js",
+		external_image_list_url : "lists/image_list.js",
+		media_external_list_url : "lists/media_list.js",
+
+		// Replace values for the template plugin
+		template_replace_values : {
+			username : "Some User",
+			staffid : "991234"
+		}
+	});
+</script>
+<!-- /TinyMCE -->
+
+</head>
+<body>
+
+<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
+	<h3>Word processor example</h3>
+
+	<p>
+		This page shows you how to configure TinyMCE to work more like common word processors.
+		There are more examples on how to use TinyMCE in the <a href="http://tinymce.moxiecode.com/examples/">Wiki</a>.
+	</p>
+
+	<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
+	<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
+		<p>This is the first paragraph.</p>
+		<p>This is the second paragraph.</p>
+		<p>This is the third paragraph.</p>
+	</textarea>
+
+	<br />
+	<input type="submit" name="save" value="Submit" />
+	<input type="reset" name="reset" value="Reset" />
+</form>
+<script type="text/javascript">
+if (document.location.protocol == 'file:') {
+	alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
+}
+</script>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/langs/en.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/langs/en.js
new file mode 100644
index 0000000..19324f7
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/langs/en.js
@@ -0,0 +1 @@
+tinyMCE.addI18n({en:{common:{"more_colors":"More Colors...","invalid_data":"Error: Invalid values entered, these are marked in red.","popup_blocked":"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.","clipboard_no_support":"Currently not supported by your browser, use keyboard shortcuts instead.","clipboard_msg":"Copy/Cut/Paste is not  [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/license.txt b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/license.txt
new file mode 100644
index 0000000..1837b0a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/license.txt
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css
new file mode 100644
index 0000000..3fe369c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css
@@ -0,0 +1,5 @@
+input.radio {border:1px none #000; background:transparent; vertical-align:middle;}
+.panel_wrapper div.current {height:80px;}
+#width {width:50px; vertical-align:middle;}
+#width2 {width:50px; vertical-align:middle;}
+#size {width:100px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js
new file mode 100644
index 0000000..4d3b062
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.AdvancedHRPlugin",{init:function(a,b){a.addCommand("mceAdvancedHr",function(){a.windowManager.open({file:b+"/rule.htm",width:250+parseInt(a.getLang("advhr.delta_width",0)),height:160+parseInt(a.getLang("advhr.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("advhr",{title:"advhr.advhr_desc",cmd:"mceAdvancedHr"});a.onNodeChange.add(function(d,c,e){c.setActive("advhr",e.nodeName=="HR")});a.onClick.add(function(c,d){d=d.target;if(d.nodeNa [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js
new file mode 100644
index 0000000..5a4b725
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js
@@ -0,0 +1,57 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.AdvancedHRPlugin', {
+		init : function(ed, url) {
+			// Register commands
+			ed.addCommand('mceAdvancedHr', function() {
+				ed.windowManager.open({
+					file : url + '/rule.htm',
+					width : 250 + parseInt(ed.getLang('advhr.delta_width', 0)),
+					height : 160 + parseInt(ed.getLang('advhr.delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			// Register buttons
+			ed.addButton('advhr', {
+				title : 'advhr.advhr_desc',
+				cmd : 'mceAdvancedHr'
+			});
+
+			ed.onNodeChange.add(function(ed, cm, n) {
+				cm.setActive('advhr', n.nodeName == 'HR');
+			});
+
+			ed.onClick.add(function(ed, e) {
+				e = e.target;
+
+				if (e.nodeName === 'HR')
+					ed.selection.select(e);
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Advanced HR',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('advhr', tinymce.plugins.AdvancedHRPlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js
new file mode 100644
index 0000000..a60c35f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js
@@ -0,0 +1,43 @@
+var AdvHRDialog = {
+	init : function(ed) {
+		var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;
+
+		w = dom.getAttrib(n, 'width');
+		f.width.value = w ? parseInt(w) : (dom.getStyle('width') || '');
+		f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || '';
+		f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width');
+		selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px');
+	},
+
+	update : function() {
+		var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = '';
+
+		h = '<hr';
+
+		if (f.size.value) {
+			h += ' size="' + f.size.value + '"';
+			st += ' height:' + f.size.value + 'px;';
+		}
+
+		if (f.width.value) {
+			h += ' width="' + f.width.value + (f.width2.value == '%' ? '%' : '') + '"';
+			st += ' width:' + f.width.value + (f.width2.value == '%' ? '%' : 'px') + ';';
+		}
+
+		if (f.noshade.checked) {
+			h += ' noshade="noshade"';
+			st += ' border-width: 1px; border-style: solid; border-color: #CCCCCC; color: #ffffff;';
+		}
+
+		if (ed.settings.inline_styles)
+			h += ' style="' + tinymce.trim(st) + '"';
+
+		h += ' />';
+
+		ed.execCommand("mceInsertContent", false, h);
+		tinyMCEPopup.close();
+	}
+};
+
+tinyMCEPopup.requireLangPack();
+tinyMCEPopup.onInit.add(AdvHRDialog.init, AdvHRDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js
new file mode 100644
index 0000000..0c3bf15
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.advhr_dlg',{size:"Height",noshade:"No Shadow",width:"Width",normal:"Normal",widthunits:"Units"});
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm
new file mode 100644
index 0000000..11d3651
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advhr.advhr_desc}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/rule.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<link href="css/advhr.css" rel="stylesheet" type="text/css" />
+</head>
+<body role="application">
+<form onsubmit="AdvHRDialog.update();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advhr.advhr_desc}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+					<tr role="group" aria-labelledby="width_label">
+						<td><label id="width_label" for="width">{#advhr_dlg.width}</label></td>
+						<td class="nowrap">
+							<input id="width" name="width" type="text" value="" class="mceFocus" />
+							<span style="display:none;" id="width_unit_label">{#advhr_dlg.widthunits}</span>
+							<select name="width2" id="width2" aria-labelledby="width_unit_label">
+								<option value="">px</option>
+								<option value="%">%</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td><label for="size">{#advhr_dlg.size}</label></td>
+						<td><select id="size" name="size">
+							<option value="">{#advhr_dlg.normal}</option>
+							<option value="1">1</option>
+							<option value="2">2</option>
+							<option value="3">3</option>
+							<option value="4">4</option>
+							<option value="5">5</option>
+						</select></td>
+					</tr>
+					<tr>
+						<td><label for="noshade">{#advhr_dlg.noshade}</label></td>
+						<td><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>
+					</tr>
+			</table>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#insert}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css
new file mode 100644
index 0000000..228530f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css
@@ -0,0 +1,13 @@
+#src_list, #over_list, #out_list {width:280px;}
+.mceActionPanel {margin-top:7px;}
+.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;}
+.checkbox {border:0;}
+.panel_wrapper div.current {height:305px;}
+#prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;}
+#align, #classlist {width:150px;}
+#width, #height {vertical-align:middle; width:50px; text-align:center;}
+#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;}
+#class_list {width:180px;}
+input {width: 280px;}
+#constrain, #onmousemovecheck {width:auto;}
+#id, #dir, #lang, #usemap, #longdesc {width:200px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js
new file mode 100644
index 0000000..d613a61
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.AdvancedImagePlugin",{init:function(a,b){a.addCommand("mceAdvImage",function(){if(a.dom.getAttrib(a.selection.getNode(),"class","").indexOf("mceItem")!=-1){return}a.windowManager.open({file:b+"/image.htm",width:480+parseInt(a.getLang("advimage.delta_width",0)),height:385+parseInt(a.getLang("advimage.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("image",{title:"advimage.image_desc",cmd:"mceAdvImage"})},getInfo:function(){return{longn [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js
new file mode 100644
index 0000000..76df89a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js
@@ -0,0 +1,50 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.AdvancedImagePlugin', {
+		init : function(ed, url) {
+			// Register commands
+			ed.addCommand('mceAdvImage', function() {
+				// Internal image object like a flash placeholder
+				if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1)
+					return;
+
+				ed.windowManager.open({
+					file : url + '/image.htm',
+					width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)),
+					height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			// Register buttons
+			ed.addButton('image', {
+				title : 'advimage.image_desc',
+				cmd : 'mceAdvImage'
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Advanced image',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm
new file mode 100644
index 0000000..835d388
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm
@@ -0,0 +1,235 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advimage_dlg.dialog_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/image.js"></script>
+	<link href="css/advimage.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="advimage" style="display: none" role="application" aria-labelledby="app_title">
+	<span id="app_title" style="display:none">{#advimage_dlg.dialog_title}</span>
+	<form onsubmit="ImageDialog.insert();return false;" action="#"> 
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advimage_dlg.tab_general}</a></span></li>
+				<li id="appearance_tab" aria-controls="appearance_panel"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#advimage_dlg.tab_appearance}</a></span></li>
+				<li id="advanced_tab" aria-controls="advanced_panel"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advimage_dlg.tab_advanced}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+						<legend>{#advimage_dlg.general}</legend>
+
+						<table role="presentation" class="properties">
+							<tr>
+								<td class="column1"><label id="srclabel" for="src">{#advimage_dlg.src}</label></td>
+								<td colspan="2"><table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr> 
+										<td><input name="src" type="text" id="src" value="" class="mceFocus" onchange="ImageDialog.showPreviewImage(this.value);" aria-required="true" /></td> 
+										<td id="srcbrowsercontainer"> </td>
+									</tr>
+								</table></td>
+							</tr>
+							<tr>
+								<td><label for="src_list">{#advimage_dlg.image_list}</label></td>
+								<td><select id="src_list" name="src_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);"><option value=""></option></select></td>
+							</tr>
+							<tr> 
+								<td class="column1"><label id="altlabel" for="alt">{#advimage_dlg.alt}</label></td> 
+								<td colspan="2"><input id="alt" name="alt" type="text" value="" /></td> 
+							</tr> 
+							<tr> 
+								<td class="column1"><label id="titlelabel" for="title">{#advimage_dlg.title}</label></td> 
+								<td colspan="2"><input id="title" name="title" type="text" value="" /></td> 
+							</tr>
+						</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#advimage_dlg.preview}</legend>
+					<div id="prev"></div>
+				</fieldset>
+			</div>
+
+			<div id="appearance_panel" class="panel">
+				<fieldset>
+					<legend>{#advimage_dlg.tab_appearance}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr> 
+							<td class="column1"><label id="alignlabel" for="align">{#advimage_dlg.align}</label></td> 
+							<td><select id="align" name="align" onchange="ImageDialog.updateStyle('align');ImageDialog.changeAppearance();"> 
+									<option value="">{#not_set}</option> 
+									<option value="baseline">{#advimage_dlg.align_baseline}</option>
+									<option value="top">{#advimage_dlg.align_top}</option>
+									<option value="middle">{#advimage_dlg.align_middle}</option>
+									<option value="bottom">{#advimage_dlg.align_bottom}</option>
+									<option value="text-top">{#advimage_dlg.align_texttop}</option>
+									<option value="text-bottom">{#advimage_dlg.align_textbottom}</option>
+									<option value="left">{#advimage_dlg.align_left}</option>
+									<option value="right">{#advimage_dlg.align_right}</option>
+								</select> 
+							</td>
+							<td rowspan="6" valign="top">
+								<div class="alignPreview">
+									<img id="alignSampleImg" src="img/sample.gif" alt="{#advimage_dlg.example_img}" />
+									Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam
+									nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum
+									edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam
+									erat volutpat.
+								</div>
+							</td>
+						</tr>
+
+						<tr role="group" aria-labelledby="widthlabel">
+							<td class="column1"><label id="widthlabel" for="width">{#advimage_dlg.dimensions}</label></td>
+							<td class="nowrap">
+								<span style="display:none" id="width_voiceLabel">{#advimage_dlg.width}</span>
+								<input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeHeight();" aria-labelledby="width_voiceLabel" /> x 
+								<span style="display:none" id="height_voiceLabel">{#advimage_dlg.height}</span>
+								<input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeWidth();" aria-labelledby="height_voiceLabel" /> px
+							</td>
+						</tr>
+
+						<tr>
+							<td> </td>
+							<td><table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>
+										<td><label id="constrainlabel" for="constrain">{#advimage_dlg.constrain_proportions}</label></td>
+									</tr>
+								</table></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="vspacelabel" for="vspace">{#advimage_dlg.vspace}</label></td> 
+							<td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" />
+							</td>
+						</tr>
+
+						<tr> 
+							<td class="column1"><label id="hspacelabel" for="hspace">{#advimage_dlg.hspace}</label></td> 
+							<td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="borderlabel" for="border">{#advimage_dlg.border}</label></td> 
+							<td><input id="border" name="border" type="text" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" /></td> 
+						</tr>
+
+						<tr>
+							<td><label for="class_list">{#class_name}</label></td>
+							<td colspan="2"><select id="class_list" name="class_list" class="mceEditableSelect"><option value=""></option></select></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="stylelabel" for="style">{#advimage_dlg.style}</label></td> 
+							<td colspan="2"><input id="style" name="style" type="text" value="" onchange="ImageDialog.changeAppearance();" /></td> 
+						</tr>
+
+						<!-- <tr>
+							<td class="column1"><label id="classeslabel" for="classes">{#advimage_dlg.classes}</label></td> 
+							<td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td> 
+						</tr> -->
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{#advimage_dlg.swap_image}</legend>
+
+					<input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="ImageDialog.setSwapImage(this.checked);" aria-controls="onmouseoversrc onmouseoutsrc" />
+					<label id="onmousemovechecklabel" for="onmousemovecheck">{#advimage_dlg.alt_image}</label>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0" width="100%">
+							<tr>
+								<td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{#advimage_dlg.mouseover}</label></td> 
+								<td><table role="presentation" border="0" cellspacing="0" cellpadding="0"> 
+									<tr> 
+										<td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td> 
+										<td id="onmouseoversrccontainer"> </td>
+									</tr>
+								</table></td>
+							</tr>
+							<tr>
+								<td><label for="over_list">{#advimage_dlg.image_list}</label></td>
+								<td><select id="over_list" name="over_list" onchange="document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;"><option value=""></option></select></td>
+							</tr>
+							<tr> 
+								<td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{#advimage_dlg.mouseout}</label></td> 
+								<td class="column2"><table role="presentation" border="0" cellspacing="0" cellpadding="0"> 
+									<tr> 
+										<td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td> 
+										<td id="onmouseoutsrccontainer"> </td>
+									</tr> 
+								</table></td> 
+							</tr>
+							<tr>
+								<td><label for="out_list">{#advimage_dlg.image_list}</label></td>
+								<td><select id="out_list" name="out_list" onchange="document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;"><option value=""></option></select></td>
+							</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#advimage_dlg.misc}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label id="idlabel" for="id">{#advimage_dlg.id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="dirlabel" for="dir">{#advimage_dlg.langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" onchange="ImageDialog.changeAppearance();"> 
+										<option value="">{#not_set}</option> 
+										<option value="ltr">{#advimage_dlg.ltr}</option> 
+										<option value="rtl">{#advimage_dlg.rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="langlabel" for="lang">{#advimage_dlg.langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="usemaplabel" for="usemap">{#advimage_dlg.map}</label></td> 
+							<td>
+								<input id="usemap" name="usemap" type="text" value="" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="longdesclabel" for="longdesc">{#advimage_dlg.long_desc}</label></td>
+							<td><table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input id="longdesc" name="longdesc" type="text" value="" /></td>
+										<td id="longdesccontainer"> </td>
+									</tr>
+							</table></td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<input type="submit" id="insert" name="insert" value="{#insert}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body> 
+</html> 
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif
new file mode 100644
index 0000000..53bf689
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js
new file mode 100644
index 0000000..7e3cf00
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js
@@ -0,0 +1,462 @@
+var ImageDialog = {
+	preInit : function() {
+		var url;
+
+		tinyMCEPopup.requireLangPack();
+
+		if (url = tinyMCEPopup.getParam("external_image_list_url"))
+			document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
+	},
+
+	init : function(ed) {
+		var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode(), fl = tinyMCEPopup.getParam('external_image_list', 'tinyMCEImageList');
+
+		tinyMCEPopup.resizeToInnerSize();
+		this.fillClassList('class_list');
+		this.fillFileList('src_list', fl);
+		this.fillFileList('over_list', fl);
+		this.fillFileList('out_list', fl);
+		TinyMCE_EditableSelects.init();
+
+		if (n.nodeName == 'IMG') {
+			nl.src.value = dom.getAttrib(n, 'src');
+			nl.width.value = dom.getAttrib(n, 'width');
+			nl.height.value = dom.getAttrib(n, 'height');
+			nl.alt.value = dom.getAttrib(n, 'alt');
+			nl.title.value = dom.getAttrib(n, 'title');
+			nl.vspace.value = this.getAttrib(n, 'vspace');
+			nl.hspace.value = this.getAttrib(n, 'hspace');
+			nl.border.value = this.getAttrib(n, 'border');
+			selectByValue(f, 'align', this.getAttrib(n, 'align'));
+			selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true);
+			nl.style.value = dom.getAttrib(n, 'style');
+			nl.id.value = dom.getAttrib(n, 'id');
+			nl.dir.value = dom.getAttrib(n, 'dir');
+			nl.lang.value = dom.getAttrib(n, 'lang');
+			nl.usemap.value = dom.getAttrib(n, 'usemap');
+			nl.longdesc.value = dom.getAttrib(n, 'longdesc');
+			nl.insert.value = ed.getLang('update');
+
+			if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))
+				nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
+
+			if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))
+				nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
+
+			if (ed.settings.inline_styles) {
+				// Move attribs to styles
+				if (dom.getAttrib(n, 'align'))
+					this.updateStyle('align');
+
+				if (dom.getAttrib(n, 'hspace'))
+					this.updateStyle('hspace');
+
+				if (dom.getAttrib(n, 'border'))
+					this.updateStyle('border');
+
+				if (dom.getAttrib(n, 'vspace'))
+					this.updateStyle('vspace');
+			}
+		}
+
+		// Setup browse button
+		document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
+		if (isVisible('srcbrowser'))
+			document.getElementById('src').style.width = '260px';
+
+		// Setup browse button
+		document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');
+		if (isVisible('overbrowser'))
+			document.getElementById('onmouseoversrc').style.width = '260px';
+
+		// Setup browse button
+		document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');
+		if (isVisible('outbrowser'))
+			document.getElementById('onmouseoutsrc').style.width = '260px';
+
+		// If option enabled default contrain proportions to checked
+		if (ed.getParam("advimage_constrain_proportions", true))
+			f.constrain.checked = true;
+
+		// Check swap image if valid data
+		if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)
+			this.setSwapImage(true);
+		else
+			this.setSwapImage(false);
+
+		this.changeAppearance();
+		this.showPreviewImage(nl.src.value, 1);
+	},
+
+	insert : function(file, title) {
+		var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];
+
+		if (f.src.value === '') {
+			if (ed.selection.getNode().nodeName == 'IMG') {
+				ed.dom.remove(ed.selection.getNode());
+				ed.execCommand('mceRepaint');
+			}
+
+			tinyMCEPopup.close();
+			return;
+		}
+
+		if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {
+			if (!f.alt.value) {
+				tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
+					if (s)
+						t.insertAndClose();
+				});
+
+				return;
+			}
+		}
+
+		t.insertAndClose();
+	},
+
+	insertAndClose : function() {
+		var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;
+
+		tinyMCEPopup.restoreSelection();
+
+		// Fixes crash in Safari
+		if (tinymce.isWebKit)
+			ed.getWin().focus();
+
+		if (!ed.settings.inline_styles) {
+			args = {
+				vspace : nl.vspace.value,
+				hspace : nl.hspace.value,
+				border : nl.border.value,
+				align : getSelectValue(f, 'align')
+			};
+		} else {
+			// Remove deprecated values
+			args = {
+				vspace : '',
+				hspace : '',
+				border : '',
+				align : ''
+			};
+		}
+
+		tinymce.extend(args, {
+			src : nl.src.value.replace(/ /g, '%20'),
+			width : nl.width.value,
+			height : nl.height.value,
+			alt : nl.alt.value,
+			title : nl.title.value,
+			'class' : getSelectValue(f, 'class_list'),
+			style : nl.style.value,
+			id : nl.id.value,
+			dir : nl.dir.value,
+			lang : nl.lang.value,
+			usemap : nl.usemap.value,
+			longdesc : nl.longdesc.value
+		});
+
+		args.onmouseover = args.onmouseout = '';
+
+		if (f.onmousemovecheck.checked) {
+			if (nl.onmouseoversrc.value)
+				args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";
+
+			if (nl.onmouseoutsrc.value)
+				args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";
+		}
+
+		el = ed.selection.getNode();
+
+		if (el && el.nodeName == 'IMG') {
+			ed.dom.setAttribs(el, args);
+		} else {
+			tinymce.each(args, function(value, name) {
+				if (value === "") {
+					delete args[name];
+				}
+			});
+
+			ed.execCommand('mceInsertContent', false, tinyMCEPopup.editor.dom.createHTML('img', args), {skip_undo : 1});
+			ed.undoManager.add();
+		}
+
+		tinyMCEPopup.editor.execCommand('mceRepaint');
+		tinyMCEPopup.editor.focus();
+		tinyMCEPopup.close();
+	},
+
+	getAttrib : function(e, at) {
+		var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;
+
+		if (ed.settings.inline_styles) {
+			switch (at) {
+				case 'align':
+					if (v = dom.getStyle(e, 'float'))
+						return v;
+
+					if (v = dom.getStyle(e, 'vertical-align'))
+						return v;
+
+					break;
+
+				case 'hspace':
+					v = dom.getStyle(e, 'margin-left')
+					v2 = dom.getStyle(e, 'margin-right');
+
+					if (v && v == v2)
+						return parseInt(v.replace(/[^0-9]/g, ''));
+
+					break;
+
+				case 'vspace':
+					v = dom.getStyle(e, 'margin-top')
+					v2 = dom.getStyle(e, 'margin-bottom');
+					if (v && v == v2)
+						return parseInt(v.replace(/[^0-9]/g, ''));
+
+					break;
+
+				case 'border':
+					v = 0;
+
+					tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {
+						sv = dom.getStyle(e, 'border-' + sv + '-width');
+
+						// False or not the same as prev
+						if (!sv || (sv != v && v !== 0)) {
+							v = 0;
+							return false;
+						}
+
+						if (sv)
+							v = sv;
+					});
+
+					if (v)
+						return parseInt(v.replace(/[^0-9]/g, ''));
+
+					break;
+			}
+		}
+
+		if (v = dom.getAttrib(e, at))
+			return v;
+
+		return '';
+	},
+
+	setSwapImage : function(st) {
+		var f = document.forms[0];
+
+		f.onmousemovecheck.checked = st;
+		setBrowserDisabled('overbrowser', !st);
+		setBrowserDisabled('outbrowser', !st);
+
+		if (f.over_list)
+			f.over_list.disabled = !st;
+
+		if (f.out_list)
+			f.out_list.disabled = !st;
+
+		f.onmouseoversrc.disabled = !st;
+		f.onmouseoutsrc.disabled  = !st;
+	},
+
+	fillClassList : function(id) {
+		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
+
+		if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
+			cl = [];
+
+			tinymce.each(v.split(';'), function(v) {
+				var p = v.split('=');
+
+				cl.push({'title' : p[0], 'class' : p[1]});
+			});
+		} else
+			cl = tinyMCEPopup.editor.dom.getClasses();
+
+		if (cl.length > 0) {
+			lst.options.length = 0;
+			lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
+
+			tinymce.each(cl, function(o) {
+				lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
+			});
+		} else
+			dom.remove(dom.getParent(id, 'tr'));
+	},
+
+	fillFileList : function(id, l) {
+		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
+
+		l = typeof(l) === 'function' ? l() : window[l];
+		lst.options.length = 0;
+
+		if (l && l.length > 0) {
+			lst.options[lst.options.length] = new Option('', '');
+
+			tinymce.each(l, function(o) {
+				lst.options[lst.options.length] = new Option(o[0], o[1]);
+			});
+		} else
+			dom.remove(dom.getParent(id, 'tr'));
+	},
+
+	resetImageData : function() {
+		var f = document.forms[0];
+
+		f.elements.width.value = f.elements.height.value = '';
+	},
+
+	updateImageData : function(img, st) {
+		var f = document.forms[0];
+
+		if (!st) {
+			f.elements.width.value = img.width;
+			f.elements.height.value = img.height;
+		}
+
+		this.preloadImg = img;
+	},
+
+	changeAppearance : function() {
+		var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');
+
+		if (img) {
+			if (ed.getParam('inline_styles')) {
+				ed.dom.setAttrib(img, 'style', f.style.value);
+			} else {
+				img.align = f.align.value;
+				img.border = f.border.value;
+				img.hspace = f.hspace.value;
+				img.vspace = f.vspace.value;
+			}
+		}
+	},
+
+	changeHeight : function() {
+		var f = document.forms[0], tp, t = this;
+
+		if (!f.constrain.checked || !t.preloadImg) {
+			return;
+		}
+
+		if (f.width.value == "" || f.height.value == "")
+			return;
+
+		tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;
+		f.height.value = tp.toFixed(0);
+	},
+
+	changeWidth : function() {
+		var f = document.forms[0], tp, t = this;
+
+		if (!f.constrain.checked || !t.preloadImg) {
+			return;
+		}
+
+		if (f.width.value == "" || f.height.value == "")
+			return;
+
+		tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;
+		f.width.value = tp.toFixed(0);
+	},
+
+	updateStyle : function(ty) {
+		var dom = tinyMCEPopup.dom, b, bStyle, bColor, v, isIE = tinymce.isIE, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});
+
+		if (tinyMCEPopup.editor.settings.inline_styles) {
+			// Handle align
+			if (ty == 'align') {
+				dom.setStyle(img, 'float', '');
+				dom.setStyle(img, 'vertical-align', '');
+
+				v = getSelectValue(f, 'align');
+				if (v) {
+					if (v == 'left' || v == 'right')
+						dom.setStyle(img, 'float', v);
+					else
+						img.style.verticalAlign = v;
+				}
+			}
+
+			// Handle border
+			if (ty == 'border') {
+				b = img.style.border ? img.style.border.split(' ') : [];
+				bStyle = dom.getStyle(img, 'border-style');
+				bColor = dom.getStyle(img, 'border-color');
+
+				dom.setStyle(img, 'border', '');
+
+				v = f.border.value;
+				if (v || v == '0') {
+					if (v == '0')
+						img.style.border = isIE ? '0' : '0 none none';
+					else {
+						if (b.length == 3 && b[isIE ? 2 : 1])
+							bStyle = b[isIE ? 2 : 1];
+						else if (!bStyle || bStyle == 'none')
+							bStyle = 'solid';
+						if (b.length == 3 && b[isIE ? 0 : 2])
+							bColor = b[isIE ? 0 : 2];
+						else if (!bColor || bColor == 'none')
+							bColor = 'black';
+						img.style.border = v + 'px ' + bStyle + ' ' + bColor;
+					}
+				}
+			}
+
+			// Handle hspace
+			if (ty == 'hspace') {
+				dom.setStyle(img, 'marginLeft', '');
+				dom.setStyle(img, 'marginRight', '');
+
+				v = f.hspace.value;
+				if (v) {
+					img.style.marginLeft = v + 'px';
+					img.style.marginRight = v + 'px';
+				}
+			}
+
+			// Handle vspace
+			if (ty == 'vspace') {
+				dom.setStyle(img, 'marginTop', '');
+				dom.setStyle(img, 'marginBottom', '');
+
+				v = f.vspace.value;
+				if (v) {
+					img.style.marginTop = v + 'px';
+					img.style.marginBottom = v + 'px';
+				}
+			}
+
+			// Merge
+			dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText), 'img');
+		}
+	},
+
+	changeMouseMove : function() {
+	},
+
+	showPreviewImage : function(u, st) {
+		if (!u) {
+			tinyMCEPopup.dom.setHTML('prev', '');
+			return;
+		}
+
+		if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))
+			this.resetImageData();
+
+		u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);
+
+		if (!st)
+			tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this);" onerror="ImageDialog.resetImageData();" />');
+		else
+			tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this, 1);" />');
+	}
+};
+
+ImageDialog.preInit();
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js
new file mode 100644
index 0000000..5f122e2
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.advimage_dlg',{"image_list":"Image List","align_right":"Right","align_left":"Left","align_textbottom":"Text Bottom","align_texttop":"Text Top","align_bottom":"Bottom","align_middle":"Middle","align_top":"Top","align_baseline":"Baseline",align:"Alignment",hspace:"Horizontal Space",vspace:"Vertical Space",dimensions:"Dimensions",border:"Border",list:"Image List",alt:"Image Description",src:"Image URL","dialog_title":"Insert/Edit Image","missing_alt":"Are you sure you wa [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css
new file mode 100644
index 0000000..66c6549
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css
@@ -0,0 +1,8 @@
+.mceLinkList, .mceAnchorList, #targetlist {width:280px;}
+.mceActionPanel {margin-top:7px;}
+.panel_wrapper div.current {height:320px;}
+#classlist, #title, #href {width:280px;}
+#popupurl, #popupname {width:200px;}
+#popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;}
+#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;}
+#events_panel input {width:200px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js
new file mode 100644
index 0000000..983fe5a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.AdvancedLinkPlugin",{init:function(a,b){this.editor=a;a.addCommand("mceAdvLink",function(){var c=a.selection;if(c.isCollapsed()&&!a.dom.getParent(c.getNode(),"A")){return}a.windowManager.open({file:b+"/link.htm",width:480+parseInt(a.getLang("advlink.delta_width",0)),height:400+parseInt(a.getLang("advlink.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("link",{title:"advlink.link_desc",cmd:"mceAdvLink"});a.addShortcut("ctrl+k","advlink [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js
new file mode 100644
index 0000000..32ea8f3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js
@@ -0,0 +1,61 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.AdvancedLinkPlugin', {
+		init : function(ed, url) {
+			this.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceAdvLink', function() {
+				var se = ed.selection;
+
+				// No selection and not in link
+				if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A'))
+					return;
+
+				ed.windowManager.open({
+					file : url + '/link.htm',
+					width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)),
+					height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			// Register buttons
+			ed.addButton('link', {
+				title : 'advlink.link_desc',
+				cmd : 'mceAdvLink'
+			});
+
+			ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink');
+
+			ed.onNodeChange.add(function(ed, cm, n, co) {
+				cm.setDisabled('link', co && n.nodeName != 'A');
+				cm.setActive('link', n.nodeName == 'A' && !n.name);
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Advanced link',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js
new file mode 100644
index 0000000..0e66c94
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js
@@ -0,0 +1,539 @@
+/* Functions for the advlink plugin popup */
+
+tinyMCEPopup.requireLangPack();
+
+var templates = {
+	"window.open" : "window.open('${url}','${target}','${options}')"
+};
+
+function preinit() {
+	var url;
+
+	if (url = tinyMCEPopup.getParam("external_link_list_url"))
+		document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
+}
+
+function changeClass() {
+	var f = document.forms[0];
+
+	f.classes.value = getSelectValue(f, 'classlist');
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	var formObj = document.forms[0];
+	var inst = tinyMCEPopup.editor;
+	var elm = inst.selection.getNode();
+	var action = "insert";
+	var html;
+
+	document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink');
+	document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink');
+	document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target');
+
+	// Link list
+	html = getLinkListHTML('linklisthref','href');
+	if (html == "")
+		document.getElementById("linklisthrefrow").style.display = 'none';
+	else
+		document.getElementById("linklisthrefcontainer").innerHTML = html;
+
+	// Anchor list
+	html = getAnchorListHTML('anchorlist','href');
+	if (html == "")
+		document.getElementById("anchorlistrow").style.display = 'none';
+	else
+		document.getElementById("anchorlistcontainer").innerHTML = html;
+
+	// Resize some elements
+	if (isVisible('hrefbrowser'))
+		document.getElementById('href').style.width = '260px';
+
+	if (isVisible('popupurlbrowser'))
+		document.getElementById('popupurl').style.width = '180px';
+
+	elm = inst.dom.getParent(elm, "A");
+	if (elm == null) {
+		var prospect = inst.dom.create("p", null, inst.selection.getContent());
+		if (prospect.childNodes.length === 1) {
+			elm = prospect.firstChild;
+		}
+	}
+
+	if (elm != null && elm.nodeName == "A")
+		action = "update";
+
+	formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true); 
+
+	setPopupControlsDisabled(true);
+
+	if (action == "update") {
+		var href = inst.dom.getAttrib(elm, 'href');
+		var onclick = inst.dom.getAttrib(elm, 'onclick');
+
+		// Setup form data
+		setFormValue('href', href);
+		setFormValue('title', inst.dom.getAttrib(elm, 'title'));
+		setFormValue('id', inst.dom.getAttrib(elm, 'id'));
+		setFormValue('style', inst.dom.getAttrib(elm, "style"));
+		setFormValue('rel', inst.dom.getAttrib(elm, 'rel'));
+		setFormValue('rev', inst.dom.getAttrib(elm, 'rev'));
+		setFormValue('charset', inst.dom.getAttrib(elm, 'charset'));
+		setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang'));
+		setFormValue('dir', inst.dom.getAttrib(elm, 'dir'));
+		setFormValue('lang', inst.dom.getAttrib(elm, 'lang'));
+		setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
+		setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
+		setFormValue('type', inst.dom.getAttrib(elm, 'type'));
+		setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus'));
+		setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur'));
+		setFormValue('onclick', onclick);
+		setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick'));
+		setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown'));
+		setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup'));
+		setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover'));
+		setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove'));
+		setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout'));
+		setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress'));
+		setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown'));
+		setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup'));
+		setFormValue('target', inst.dom.getAttrib(elm, 'target'));
+		setFormValue('classes', inst.dom.getAttrib(elm, 'class'));
+
+		// Parse onclick data
+		if (onclick != null && onclick.indexOf('window.open') != -1)
+			parseWindowOpen(onclick);
+		else
+			parseFunction(onclick);
+
+		// Select by the values
+		selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir'));
+		selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel'));
+		selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev'));
+		selectByValue(formObj, 'linklisthref', href);
+
+		if (href.charAt(0) == '#')
+			selectByValue(formObj, 'anchorlist', href);
+
+		addClassesToList('classlist', 'advlink_styles');
+
+		selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true);
+		selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true);
+	} else
+		addClassesToList('classlist', 'advlink_styles');
+}
+
+function checkPrefix(n) {
+	if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email')))
+		n.value = 'mailto:' + n.value;
+
+	if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))
+		n.value = 'http://' + n.value;
+}
+
+function setFormValue(name, value) {
+	document.forms[0].elements[name].value = value;
+}
+
+function parseWindowOpen(onclick) {
+	var formObj = document.forms[0];
+
+	// Preprocess center code
+	if (onclick.indexOf('return false;') != -1) {
+		formObj.popupreturn.checked = true;
+		onclick = onclick.replace('return false;', '');
+	} else
+		formObj.popupreturn.checked = false;
+
+	var onClickData = parseLink(onclick);
+
+	if (onClickData != null) {
+		formObj.ispopup.checked = true;
+		setPopupControlsDisabled(false);
+
+		var onClickWindowOptions = parseOptions(onClickData['options']);
+		var url = onClickData['url'];
+
+		formObj.popupname.value = onClickData['target'];
+		formObj.popupurl.value = url;
+		formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');
+		formObj.popupheight.value = getOption(onClickWindowOptions, 'height');
+
+		formObj.popupleft.value = getOption(onClickWindowOptions, 'left');
+		formObj.popuptop.value = getOption(onClickWindowOptions, 'top');
+
+		if (formObj.popupleft.value.indexOf('screen') != -1)
+			formObj.popupleft.value = "c";
+
+		if (formObj.popuptop.value.indexOf('screen') != -1)
+			formObj.popuptop.value = "c";
+
+		formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";
+		formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";
+		formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";
+		formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";
+		formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";
+		formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";
+		formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";
+
+		buildOnClick();
+	}
+}
+
+function parseFunction(onclick) {
+	var formObj = document.forms[0];
+	var onClickData = parseLink(onclick);
+
+	// TODO: Add stuff here
+}
+
+function getOption(opts, name) {
+	return typeof(opts[name]) == "undefined" ? "" : opts[name];
+}
+
+function setPopupControlsDisabled(state) {
+	var formObj = document.forms[0];
+
+	formObj.popupname.disabled = state;
+	formObj.popupurl.disabled = state;
+	formObj.popupwidth.disabled = state;
+	formObj.popupheight.disabled = state;
+	formObj.popupleft.disabled = state;
+	formObj.popuptop.disabled = state;
+	formObj.popuplocation.disabled = state;
+	formObj.popupscrollbars.disabled = state;
+	formObj.popupmenubar.disabled = state;
+	formObj.popupresizable.disabled = state;
+	formObj.popuptoolbar.disabled = state;
+	formObj.popupstatus.disabled = state;
+	formObj.popupreturn.disabled = state;
+	formObj.popupdependent.disabled = state;
+
+	setBrowserDisabled('popupurlbrowser', state);
+}
+
+function parseLink(link) {
+	link = link.replace(new RegExp(''', 'g'), "'");
+
+	var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");
+
+	// Is function name a template function
+	var template = templates[fnName];
+	if (template) {
+		// Build regexp
+		var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));
+		var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";
+		var replaceStr = "";
+		for (var i=0; i<variableNames.length; i++) {
+			// Is string value
+			if (variableNames[i].indexOf("'${") != -1)
+				regExp += "'(.*)'";
+			else // Number value
+				regExp += "([0-9]*)";
+
+			replaceStr += "$" + (i+1);
+
+			// Cleanup variable name
+			variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");
+
+			if (i != variableNames.length-1) {
+				regExp += "\\s*,\\s*";
+				replaceStr += "<delim>";
+			} else
+				regExp += ".*";
+		}
+
+		regExp += "\\);?";
+
+		// Build variable array
+		var variables = [];
+		variables["_function"] = fnName;
+		var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');
+		for (var i=0; i<variableNames.length; i++)
+			variables[variableNames[i]] = variableValues[i];
+
+		return variables;
+	}
+
+	return null;
+}
+
+function parseOptions(opts) {
+	if (opts == null || opts == "")
+		return [];
+
+	// Cleanup the options
+	opts = opts.toLowerCase();
+	opts = opts.replace(/;/g, ",");
+	opts = opts.replace(/[^0-9a-z=,]/g, "");
+
+	var optionChunks = opts.split(',');
+	var options = [];
+
+	for (var i=0; i<optionChunks.length; i++) {
+		var parts = optionChunks[i].split('=');
+
+		if (parts.length == 2)
+			options[parts[0]] = parts[1];
+	}
+
+	return options;
+}
+
+function buildOnClick() {
+	var formObj = document.forms[0];
+
+	if (!formObj.ispopup.checked) {
+		formObj.onclick.value = "";
+		return;
+	}
+
+	var onclick = "window.open('";
+	var url = formObj.popupurl.value;
+
+	onclick += url + "','";
+	onclick += formObj.popupname.value + "','";
+
+	if (formObj.popuplocation.checked)
+		onclick += "location=yes,";
+
+	if (formObj.popupscrollbars.checked)
+		onclick += "scrollbars=yes,";
+
+	if (formObj.popupmenubar.checked)
+		onclick += "menubar=yes,";
+
+	if (formObj.popupresizable.checked)
+		onclick += "resizable=yes,";
+
+	if (formObj.popuptoolbar.checked)
+		onclick += "toolbar=yes,";
+
+	if (formObj.popupstatus.checked)
+		onclick += "status=yes,";
+
+	if (formObj.popupdependent.checked)
+		onclick += "dependent=yes,";
+
+	if (formObj.popupwidth.value != "")
+		onclick += "width=" + formObj.popupwidth.value + ",";
+
+	if (formObj.popupheight.value != "")
+		onclick += "height=" + formObj.popupheight.value + ",";
+
+	if (formObj.popupleft.value != "") {
+		if (formObj.popupleft.value != "c")
+			onclick += "left=" + formObj.popupleft.value + ",";
+		else
+			onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";
+	}
+
+	if (formObj.popuptop.value != "") {
+		if (formObj.popuptop.value != "c")
+			onclick += "top=" + formObj.popuptop.value + ",";
+		else
+			onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";
+	}
+
+	if (onclick.charAt(onclick.length-1) == ',')
+		onclick = onclick.substring(0, onclick.length-1);
+
+	onclick += "');";
+
+	if (formObj.popupreturn.checked)
+		onclick += "return false;";
+
+	// tinyMCE.debug(onclick);
+
+	formObj.onclick.value = onclick;
+
+	if (formObj.href.value == "")
+		formObj.href.value = url;
+}
+
+function setAttrib(elm, attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib.toLowerCase()];
+	var dom = tinyMCEPopup.editor.dom;
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	// Clean up the style
+	if (attrib == 'style')
+		value = dom.serializeStyle(dom.parseStyle(value), 'a');
+
+	dom.setAttrib(elm, attrib, value);
+}
+
+function getAnchorListHTML(id, target) {
+	var ed = tinyMCEPopup.editor, nodes = ed.dom.select('a'), name, i, len, html = "";
+
+	for (i=0, len=nodes.length; i<len; i++) {
+		if ((name = ed.dom.getAttrib(nodes[i], "name")) != "")
+			html += '<option value="#' + name + '">' + name + '</option>';
+	}
+
+	if (html == "")
+		return "";
+
+	html = '<select id="' + id + '" name="' + id + '" class="mceAnchorList"'
+		+ ' onchange="this.form.' + target + '.value=this.options[this.selectedIndex].value"'
+		+ '>'
+		+ '<option value="">---</option>'
+		+ html
+		+ '</select>';
+
+	return html;
+}
+
+function insertAction() {
+	var inst = tinyMCEPopup.editor;
+	var elm, elementArray, i;
+
+	elm = inst.selection.getNode();
+	checkPrefix(document.forms[0].href);
+
+	elm = inst.dom.getParent(elm, "A");
+
+	// Remove element if there is no href
+	if (!document.forms[0].href.value) {
+		i = inst.selection.getBookmark();
+		inst.dom.remove(elm, 1);
+		inst.selection.moveToBookmark(i);
+		tinyMCEPopup.execCommand("mceEndUndoLevel");
+		tinyMCEPopup.close();
+		return;
+	}
+
+	// Create new anchor elements
+	if (elm == null) {
+		inst.getDoc().execCommand("unlink", false, null);
+		tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
+
+		elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';});
+		for (i=0; i<elementArray.length; i++)
+			setAllAttribs(elm = elementArray[i]);
+	} else
+		setAllAttribs(elm);
+
+	// Don't move caret if selection was image
+	if (elm.childNodes.length != 1 || elm.firstChild.nodeName != 'IMG') {
+		inst.focus();
+		inst.selection.select(elm);
+		inst.selection.collapse(0);
+		tinyMCEPopup.storeSelection();
+	}
+
+	tinyMCEPopup.execCommand("mceEndUndoLevel");
+	tinyMCEPopup.close();
+}
+
+function setAllAttribs(elm) {
+	var formObj = document.forms[0];
+	var href = formObj.href.value.replace(/ /g, '%20');
+	var target = getSelectValue(formObj, 'targetlist');
+
+	setAttrib(elm, 'href', href);
+	setAttrib(elm, 'title');
+	setAttrib(elm, 'target', target == '_self' ? '' : target);
+	setAttrib(elm, 'id');
+	setAttrib(elm, 'style');
+	setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));
+	setAttrib(elm, 'rel');
+	setAttrib(elm, 'rev');
+	setAttrib(elm, 'charset');
+	setAttrib(elm, 'hreflang');
+	setAttrib(elm, 'dir');
+	setAttrib(elm, 'lang');
+	setAttrib(elm, 'tabindex');
+	setAttrib(elm, 'accesskey');
+	setAttrib(elm, 'type');
+	setAttrib(elm, 'onfocus');
+	setAttrib(elm, 'onblur');
+	setAttrib(elm, 'onclick');
+	setAttrib(elm, 'ondblclick');
+	setAttrib(elm, 'onmousedown');
+	setAttrib(elm, 'onmouseup');
+	setAttrib(elm, 'onmouseover');
+	setAttrib(elm, 'onmousemove');
+	setAttrib(elm, 'onmouseout');
+	setAttrib(elm, 'onkeypress');
+	setAttrib(elm, 'onkeydown');
+	setAttrib(elm, 'onkeyup');
+
+	// Refresh in old MSIE
+	if (tinyMCE.isMSIE5)
+		elm.outerHTML = elm.outerHTML;
+}
+
+function getSelectValue(form_obj, field_name) {
+	var elm = form_obj.elements[field_name];
+
+	if (!elm || elm.options == null || elm.selectedIndex == -1)
+		return "";
+
+	return elm.options[elm.selectedIndex].value;
+}
+
+function getLinkListHTML(elm_id, target_form_element, onchange_func) {
+	if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)
+		return "";
+
+	var html = "";
+
+	html += '<select id="' + elm_id + '" name="' + elm_id + '"';
+	html += ' class="mceLinkList" onchange="this.form.' + target_form_element + '.value=';
+	html += 'this.options[this.selectedIndex].value;';
+
+	if (typeof(onchange_func) != "undefined")
+		html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';
+
+	html += '"><option value="">---</option>';
+
+	for (var i=0; i<tinyMCELinkList.length; i++)
+		html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';
+
+	html += '</select>';
+
+	return html;
+
+	// tinyMCE.debug('-- image list start --', html, '-- image list end --');
+}
+
+function getTargetListHTML(elm_id, target_form_element) {
+	var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';');
+	var html = '';
+
+	html += '<select id="' + elm_id + '" name="' + elm_id + '" onchange="this.form.' + target_form_element + '.value=';
+	html += 'this.options[this.selectedIndex].value;">';
+	html += '<option value="_self">' + tinyMCEPopup.getLang('advlink_dlg.target_same') + '</option>';
+	html += '<option value="_blank">' + tinyMCEPopup.getLang('advlink_dlg.target_blank') + ' (_blank)</option>';
+	html += '<option value="_parent">' + tinyMCEPopup.getLang('advlink_dlg.target_parent') + ' (_parent)</option>';
+	html += '<option value="_top">' + tinyMCEPopup.getLang('advlink_dlg.target_top') + ' (_top)</option>';
+
+	for (var i=0; i<targets.length; i++) {
+		var key, value;
+
+		if (targets[i] == "")
+			continue;
+
+		key = targets[i].split('=')[0];
+		value = targets[i].split('=')[1];
+
+		html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';
+	}
+
+	html += '</select>';
+
+	return html;
+}
+
+// While loading
+preinit();
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js
new file mode 100644
index 0000000..3169a56
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.advlink_dlg',{"target_name":"Target Name",classes:"Classes",style:"Style",id:"ID","popup_position":"Position (X/Y)",langdir:"Language Direction","popup_size":"Size","popup_dependent":"Dependent (Mozilla/Firefox Only)","popup_resizable":"Make Window Resizable","popup_location":"Show Location Bar","popup_menubar":"Show Menu Bar","popup_toolbar":"Show Toolbars","popup_statusbar":"Show Status Bar","popup_scrollbars":"Show Scrollbars","popup_return":"Insert \'return false\ [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm
new file mode 100644
index 0000000..52623ab
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advlink_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="js/advlink.js"></script>
+	<link href="css/advlink.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="advlink" style="display: none" role="application" onload="javascript:mcTabs.displayTab('general_tab','general_panel', true);" aria-labelledby="app_label">
+	<span class="mceVoiceLabel" id="app_label" style="display:none;">{#advlink_dlg.title}</span>
+	<form onsubmit="insertAction();return false;" action="#">
+		<div class="tabs" role="presentation">
+			<ul>
+				<li id="general_tab" class="current" aria-controls="general_panel" ><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advlink_dlg.general_tab}</a></span></li>
+				<li id="popup_tab" aria-controls="popup_panel" ><span><a href="javascript:mcTabs.displayTab('popup_tab','popup_panel');" onmousedown="return false;">{#advlink_dlg.popup_tab}</a></span></li>
+				<li id="events_tab" aria-controls="events_panel"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#advlink_dlg.events_tab}</a></span></li>
+				<li id="advanced_tab" aria-controls="advanced_panel"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advlink_dlg.advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper" role="presentation">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{#advlink_dlg.general_props}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0" role="presentation">
+						<tr>
+							<td class="nowrap"><label id="hreflabel" for="href">{#advlink_dlg.url}</label></td>
+								<td><table border="0" cellspacing="0" cellpadding="0">
+							<tr>
+								<td><input id="href" name="href" type="text" class="mceFocus" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" aria-required="true" /></td>
+								<td id="hrefbrowsercontainer"> </td>
+							</tr>
+							</table></td>
+						</tr>
+						<tr id="linklisthrefrow">
+							<td class="column1"><label for="linklisthref">{#advlink_dlg.list}</label></td>
+							<td colspan="2" id="linklisthrefcontainer"><select id="linklisthref"><option value=""></option></select></td>
+						</tr>
+						<tr id="anchorlistrow">
+							<td class="column1"><label for="anchorlist">{#advlink_dlg.anchor_names}</label></td>
+							<td colspan="2" id="anchorlistcontainer"><select id="anchorlist"><option value=""></option></select></td>
+						</tr>
+						<tr>
+							<td><label id="targetlistlabel" for="targetlist">{#advlink_dlg.target}</label></td>
+							<td id="targetlistcontainer"><select id="targetlist"><option value=""></option></select></td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label id="titlelabel" for="title">{#advlink_dlg.titlefield}</label></td>
+							<td><input id="title" name="title" type="text" value="" /></td>
+						</tr>
+						<tr>
+							<td><label id="classlabel" for="classlist">{#class_name}</label></td>
+							<td>
+								 <select id="classlist" name="classlist" onchange="changeClass();">
+									<option value="" selected="selected">{#not_set}</option>
+								 </select>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="popup_panel" class="panel">
+				<fieldset>
+					<legend>{#advlink_dlg.popup_props}</legend>
+
+					<input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupControlsDisabled(!this.checked);buildOnClick();" />
+					<label id="ispopuplabel" for="ispopup">{#advlink_dlg.popup}</label>
+
+					<table border="0" cellpadding="0" cellspacing="4" role="presentation" >
+						<tr>
+							<td class="nowrap"><label for="popupurl">{#advlink_dlg.popup_url}</label> </td>
+							<td>
+								<table border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" name="popupurl" id="popupurl" value="" onchange="buildOnClick();" /></td>
+										<td id="popupurlbrowsercontainer"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="popupname">{#advlink_dlg.popup_name}</label> </td>
+							<td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>
+						</tr>
+						<tr role="group" aria-labelledby="popup_size_label">
+							<td class="nowrap"><label id="popup_size_label">{#advlink_dlg.popup_size}</label> </td>
+							<td class="nowrap">
+								<span style="display:none" id="width_voiceLabel">{#advlink_dlg.width}</span>
+								<input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" aria-labelledby="width_voiceLabel" /> x
+								<span style="display:none" id="height_voiceLabel">{#advlink_dlg.height}</span>
+								<input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" aria-labelledby="height_voiceLabel" /> px
+							</td>
+						</tr>
+						<tr role="group" aria-labelledby="popup_position_label center_hint">
+							<td class="nowrap" id="labelleft"><label id="popup_position_label">{#advlink_dlg.popup_position}</label> </td>
+							<td class="nowrap">
+								<span style="display:none" id="x_voiceLabel">X</span>
+								<input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" aria-labelledby="x_voiceLabel" /> /                                
+								<span style="display:none" id="y_voiceLabel">Y</span>
+								<input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" aria-labelledby="y_voiceLabel" /> <span id="center_hint">(c /c = center)</span>
+							</td>
+						</tr>
+					</table>
+
+					<fieldset>
+						<legend>{#advlink_dlg.popup_opts}</legend>
+
+						<table border="0" cellpadding="0" cellspacing="4" role="presentation" >
+							<tr>
+								<td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>
+								<td class="nowrap"><label id="popuplocationlabel" for="popuplocation">{#advlink_dlg.popup_location}</label></td>
+								<td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>
+								<td class="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{#advlink_dlg.popup_scrollbars}</label></td>
+							</tr>
+							<tr>
+								<td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>
+								<td class="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{#advlink_dlg.popup_menubar}</label></td>
+								<td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>
+								<td class="nowrap"><label id="popupresizablelabel" for="popupresizable">{#advlink_dlg.popup_resizable}</label></td>
+							</tr>
+							<tr>
+								<td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>
+								<td class="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{#advlink_dlg.popup_toolbar}</label></td>
+								<td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>
+								<td class="nowrap"><label id="popupdependentlabel" for="popupdependent">{#advlink_dlg.popup_dependent}</label></td>
+							</tr>
+							<tr>
+								<td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>
+								<td class="nowrap"><label id="popupstatuslabel" for="popupstatus">{#advlink_dlg.popup_statusbar}</label></td>
+								<td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" checked="checked" /></td>
+								<td class="nowrap"><label id="popupreturnlabel" for="popupreturn">{#advlink_dlg.popup_return}</label></td>
+							</tr>
+						</table>
+					</fieldset>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+			<fieldset>
+					<legend>{#advlink_dlg.advanced_props}</legend>
+
+					<table border="0" cellpadding="0" cellspacing="4" role="presentation" >
+						<tr>
+							<td class="column1"><label id="idlabel" for="id">{#advlink_dlg.id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td><label id="stylelabel" for="style">{#advlink_dlg.style}</label></td>
+							<td><input type="text" id="style" name="style" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="classeslabel" for="classes">{#advlink_dlg.classes}</label></td>
+							<td><input type="text" id="classes" name="classes" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="targetlabel" for="target">{#advlink_dlg.target_name}</label></td>
+							<td><input type="text" id="target" name="target" value="" onchange="selectByValue(this.form,'targetlist',this.value,true);" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="dirlabel" for="dir">{#advlink_dlg.langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir"> 
+										<option value="">{#not_set}</option> 
+										<option value="ltr">{#advlink_dlg.ltr}</option> 
+										<option value="rtl">{#advlink_dlg.rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td><label id="hreflanglabel" for="hreflang">{#advlink_dlg.target_langcode}</label></td>
+							<td><input type="text" id="hreflang" name="hreflang" value="" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="langlabel" for="lang">{#advlink_dlg.langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td><label id="charsetlabel" for="charset">{#advlink_dlg.encoding}</label></td>
+							<td><input type="text" id="charset" name="charset" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="typelabel" for="type">{#advlink_dlg.mime}</label></td>
+							<td><input type="text" id="type" name="type" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="rellabel" for="rel">{#advlink_dlg.rel}</label></td>
+							<td><select id="rel" name="rel"> 
+									<option value="">{#not_set}</option> 
+									<option value="lightbox">Lightbox</option> 
+									<option value="alternate">Alternate</option> 
+									<option value="designates">Designates</option> 
+									<option value="stylesheet">Stylesheet</option> 
+									<option value="start">Start</option> 
+									<option value="next">Next</option> 
+									<option value="prev">Prev</option> 
+									<option value="contents">Contents</option> 
+									<option value="index">Index</option> 
+									<option value="glossary">Glossary</option> 
+									<option value="copyright">Copyright</option> 
+									<option value="chapter">Chapter</option> 
+									<option value="subsection">Subsection</option> 
+									<option value="appendix">Appendix</option> 
+									<option value="help">Help</option> 
+									<option value="bookmark">Bookmark</option>
+									<option value="nofollow">No Follow</option>
+									<option value="tag">Tag</option>
+								</select> 
+							</td>
+						</tr>
+
+						<tr>
+							<td><label id="revlabel" for="rev">{#advlink_dlg.rev}</label></td>
+							<td><select id="rev" name="rev"> 
+									<option value="">{#not_set}</option> 
+									<option value="alternate">Alternate</option> 
+									<option value="designates">Designates</option> 
+									<option value="stylesheet">Stylesheet</option> 
+									<option value="start">Start</option> 
+									<option value="next">Next</option> 
+									<option value="prev">Prev</option> 
+									<option value="contents">Contents</option> 
+									<option value="index">Index</option> 
+									<option value="glossary">Glossary</option> 
+									<option value="copyright">Copyright</option> 
+									<option value="chapter">Chapter</option> 
+									<option value="subsection">Subsection</option> 
+									<option value="appendix">Appendix</option> 
+									<option value="help">Help</option> 
+									<option value="bookmark">Bookmark</option> 
+								</select> 
+							</td>
+						</tr>
+
+						<tr>
+							<td><label id="tabindexlabel" for="tabindex">{#advlink_dlg.tabindex}</label></td>
+							<td><input type="text" id="tabindex" name="tabindex" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="accesskeylabel" for="accesskey">{#advlink_dlg.accesskey}</label></td>
+							<td><input type="text" id="accesskey" name="accesskey" value="" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="events_panel" class="panel">
+			<fieldset>
+					<legend>{#advlink_dlg.event_props}</legend>
+
+					<table border="0" cellpadding="0" cellspacing="4" role="presentation" >
+						<tr>
+							<td class="column1"><label for="onfocus">onfocus</label></td> 
+							<td><input id="onfocus" name="onfocus" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onblur">onblur</label></td> 
+							<td><input id="onblur" name="onblur" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onclick">onclick</label></td> 
+							<td><input id="onclick" name="onclick" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="ondblclick">ondblclick</label></td> 
+							<td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmousedown">onmousedown</label></td> 
+							<td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmouseup">onmouseup</label></td> 
+							<td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmouseover">onmouseover</label></td> 
+							<td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmousemove">onmousemove</label></td> 
+							<td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmouseout">onmouseout</label></td> 
+							<td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onkeypress">onkeypress</label></td> 
+							<td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onkeydown">onkeydown</label></td> 
+							<td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onkeyup">onkeyup</label></td> 
+							<td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<input type="submit" id="insert" name="insert" value="{#insert}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js
new file mode 100644
index 0000000..57ecce6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.AdvListPlugin",{init:function(b,c){var d=this;d.editor=b;function e(g){var f=[];a(g.split(/,/),function(h){f.push({title:"advlist."+(h=="default"?"def":h.replace(/-/g,"_")),styles:{listStyleType:h=="default"?"":h}})});return f}d.numlist=b.getParam("advlist_number_styles")||e("default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");d.bullist=b.getParam("advlist_bullet_styles")||e("default,circle,disc,square");if( [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js
new file mode 100644
index 0000000..4ee4d34
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js
@@ -0,0 +1,176 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var each = tinymce.each;
+
+	tinymce.create('tinymce.plugins.AdvListPlugin', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			function buildFormats(str) {
+				var formats = [];
+
+				each(str.split(/,/), function(type) {
+					formats.push({
+						title : 'advlist.' + (type == 'default' ? 'def' : type.replace(/-/g, '_')),
+						styles : {
+							listStyleType : type == 'default' ? '' : type
+						}
+					});
+				});
+
+				return formats;
+			};
+
+			// Setup number formats from config or default
+			t.numlist = ed.getParam("advlist_number_styles") || buildFormats("default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");
+			t.bullist = ed.getParam("advlist_bullet_styles") || buildFormats("default,circle,disc,square");
+
+			if (tinymce.isIE && /MSIE [2-7]/.test(navigator.userAgent))
+				t.isIE7 = true;
+		},
+
+		createControl: function(name, cm) {
+			var t = this, btn, format, editor = t.editor;
+
+			if (name == 'numlist' || name == 'bullist') {
+				// Default to first item if it's a default item
+				if (t[name][0].title == 'advlist.def')
+					format = t[name][0];
+
+				function hasFormat(node, format) {
+					var state = true;
+
+					each(format.styles, function(value, name) {
+						// Format doesn't match
+						if (editor.dom.getStyle(node, name) != value) {
+							state = false;
+							return false;
+						}
+					});
+
+					return state;
+				};
+
+				function applyListFormat() {
+					var list, dom = editor.dom, sel = editor.selection;
+
+					// Check for existing list element
+					list = dom.getParent(sel.getNode(), 'ol,ul');
+
+					// Switch/add list type if needed
+					if (!list || list.nodeName == (name == 'bullist' ? 'OL' : 'UL') || hasFormat(list, format))
+						editor.execCommand(name == 'bullist' ? 'InsertUnorderedList' : 'InsertOrderedList');
+
+					// Append styles to new list element
+					if (format) {
+						list = dom.getParent(sel.getNode(), 'ol,ul');
+						if (list) {
+							dom.setStyles(list, format.styles);
+							list.removeAttribute('data-mce-style');
+						}
+					}
+
+					editor.focus();
+				};
+
+				btn = cm.createSplitButton(name, {
+					title : 'advanced.' + name + '_desc',
+					'class' : 'mce_' + name,
+					onclick : function() {
+						applyListFormat();
+					}
+				});
+
+				btn.onRenderMenu.add(function(btn, menu) {
+					menu.onHideMenu.add(function() {
+						if (t.bookmark) {
+							editor.selection.moveToBookmark(t.bookmark);
+							t.bookmark = 0;
+						}
+					});
+
+					menu.onShowMenu.add(function() {
+						var dom = editor.dom, list = dom.getParent(editor.selection.getNode(), 'ol,ul'), fmtList;
+
+						if (list || format) {
+							fmtList = t[name];
+
+							// Unselect existing items
+							each(menu.items, function(item) {
+								var state = true;
+
+								item.setSelected(0);
+
+								if (list && !item.isDisabled()) {
+									each(fmtList, function(fmt) {
+										if (fmt.id == item.id) {
+											if (!hasFormat(list, fmt)) {
+												state = false;
+												return false;
+											}
+										}
+									});
+
+									if (state)
+										item.setSelected(1);
+								}
+							});
+
+							// Select the current format
+							if (!list)
+								menu.items[format.id].setSelected(1);
+						}
+	
+						editor.focus();
+
+						// IE looses it's selection so store it away and restore it later
+						if (tinymce.isIE) {
+							t.bookmark = editor.selection.getBookmark(1);
+						}
+					});
+
+					menu.add({id : editor.dom.uniqueId(), title : 'advlist.types', 'class' : 'mceMenuItemTitle', titleItem: true}).setDisabled(1);
+
+					each(t[name], function(item) {
+						// IE<8 doesn't support lower-greek, skip it
+						if (t.isIE7 && item.styles.listStyleType == 'lower-greek')
+							return;
+
+						item.id = editor.dom.uniqueId();
+
+						menu.add({id : item.id, title : item.title, onclick : function() {
+							format = item;
+							applyListFormat();
+						}});
+					});
+				});
+
+				return btn;
+			}
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Advanced lists',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlist',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('advlist', tinymce.plugins.AdvListPlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js
new file mode 100644
index 0000000..d54e37a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;if(tinyMCE.isIE){return}a.onKeyDown.add(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js
new file mode 100644
index 0000000..0a24a06
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js
@@ -0,0 +1,174 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2011, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.AutolinkPlugin', {
+	/**
+	* Initializes the plugin, this will be executed after the plugin has been created.
+	* This call is done before the editor instance has finished it's initialization so use the onInit event
+	* of the editor instance to intercept that event.
+	*
+	* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
+	* @param {string} url Absolute URL to where the plugin is located.
+	*/
+
+	init : function(ed, url) {
+		var t = this;
+
+		// Internet Explorer has built-in automatic linking
+		if (tinyMCE.isIE)
+			return;
+
+		// Add a key down handler
+		ed.onKeyDown.add(function(ed, e) {
+			if (e.keyCode == 13)
+				return t.handleEnter(ed);
+			});
+
+		ed.onKeyPress.add(function(ed, e) {
+			if (e.which == 41)
+				return t.handleEclipse(ed);
+		});
+
+		// Add a key up handler
+		ed.onKeyUp.add(function(ed, e) {
+			if (e.keyCode == 32)
+				return t.handleSpacebar(ed);
+			});
+	       },
+
+		handleEclipse : function(ed) {
+			this.parseCurrentLine(ed, -1, '(', true);
+		},
+
+		handleSpacebar : function(ed) {
+			 this.parseCurrentLine(ed, 0, '', true);
+		 },
+
+		handleEnter : function(ed) {
+			this.parseCurrentLine(ed, -1, '', false);
+		},
+
+		parseCurrentLine : function(ed, end_offset, delimiter, goback) {
+			var r, end, start, endContainer, bookmark, text, matches, prev, len;
+
+			// We need at least five characters to form a URL,
+			// hence, at minimum, five characters from the beginning of the line.
+			r = ed.selection.getRng().cloneRange();
+			if (r.startOffset < 5) {
+				// During testing, the caret is placed inbetween two text nodes. 
+				// The previous text node contains the URL.
+				prev = r.endContainer.previousSibling;
+				if (prev == null) {
+					if (r.endContainer.firstChild == null || r.endContainer.firstChild.nextSibling == null)
+						return;
+
+					prev = r.endContainer.firstChild.nextSibling;
+				}
+				len = prev.length;
+				r.setStart(prev, len);
+				r.setEnd(prev, len);
+
+				if (r.endOffset < 5)
+					return;
+
+				end = r.endOffset;
+				endContainer = prev;
+			} else {
+				endContainer = r.endContainer;
+
+				// Get a text node
+				if (endContainer.nodeType != 3 && endContainer.firstChild) {
+					while (endContainer.nodeType != 3 && endContainer.firstChild)
+						endContainer = endContainer.firstChild;
+
+					r.setStart(endContainer, 0);
+					r.setEnd(endContainer, endContainer.nodeValue.length);
+				}
+
+				if (r.endOffset == 1)
+					end = 2;
+				else
+					end = r.endOffset - 1 - end_offset;
+			}
+
+			start = end;
+
+			do
+			{
+				// Move the selection one character backwards.
+				r.setStart(endContainer, end - 2);
+				r.setEnd(endContainer, end - 1);
+				end -= 1;
+
+				// Loop until one of the following is found: a blank space,  , delimeter, (end-2) >= 0
+			} while (r.toString() != ' ' && r.toString() != '' && r.toString().charCodeAt(0) != 160 && (end -2) >= 0 && r.toString() != delimiter);
+
+			if (r.toString() == delimiter || r.toString().charCodeAt(0) == 160) {
+				r.setStart(endContainer, end);
+				r.setEnd(endContainer, start);
+				end += 1;
+			} else if (r.startOffset == 0) {
+				r.setStart(endContainer, 0);
+				r.setEnd(endContainer, start);
+			}
+			else {
+				r.setStart(endContainer, end);
+				r.setEnd(endContainer, start);
+			}
+
+			text = r.toString();
+			matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);
+
+			if (matches) {
+				if (matches[1] == 'www.') {
+					matches[1] = 'http://www.';
+				} else if (/@$/.test(matches[1])) {
+					matches[1] = 'mailto:' + matches[1];
+				}
+
+				bookmark = ed.selection.getBookmark();
+
+				ed.selection.setRng(r);
+				tinyMCE.execCommand('createlink',false, matches[1] + matches[2]);
+				ed.selection.moveToBookmark(bookmark);
+
+				// TODO: Determine if this is still needed.
+				if (tinyMCE.isWebKit) {
+					// move the caret to its original position
+					ed.selection.collapse(false);
+					var max = Math.min(endContainer.length, start + 1);
+					r.setStart(endContainer, max);
+					r.setEnd(endContainer, max);
+					ed.selection.setRng(r);
+				}
+			}
+		},
+
+		/**
+		* Returns information about the plugin as a name/value array.
+		* The current keys are longname, author, authorurl, infourl and version.
+		*
+		* @return {Object} Name/value array containing information about the plugin.
+		*/
+		getInfo : function() {
+			return {
+				longname : 'Autolink',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('autolink', tinymce.plugins.AutolinkPlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js
new file mode 100644
index 0000000..46d9dc3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this,e=0;if(a.getParam("fullscreen_is_enabled")){return}function b(){var j,i=a.getDoc(),f=i.body,l=i.documentElement,h=tinymce.DOM,k=d.autoresize_min_height,g;g=tinymce.isIE?f.scrollHeight:(tinymce.isWebKit&&f.clientHeight==0?0:f.offsetHeight);if(g>d.autoresize_min_height){k=g}if(d.autoresize_max_height&&g>d.autoresize_max_height){k=d.autoresize_max_height;f.style.overflowY="auto";l.style.overflowY="a [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js
new file mode 100644
index 0000000..7673bcf
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js
@@ -0,0 +1,119 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	/**
+	 * Auto Resize
+	 *
+	 * This plugin automatically resizes the content area to fit its content height.
+	 * It will retain a minimum height, which is the height of the content area when
+	 * it's initialized.
+	 */
+	tinymce.create('tinymce.plugins.AutoResizePlugin', {
+		/**
+		 * Initializes the plugin, this will be executed after the plugin has been created.
+		 * This call is done before the editor instance has finished it's initialization so use the onInit event
+		 * of the editor instance to intercept that event.
+		 *
+		 * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
+		 * @param {string} url Absolute URL to where the plugin is located.
+		 */
+		init : function(ed, url) {
+			var t = this, oldSize = 0;
+
+			if (ed.getParam('fullscreen_is_enabled'))
+				return;
+
+			/**
+			 * This method gets executed each time the editor needs to resize.
+			 */
+			function resize() {
+				var deltaSize, d = ed.getDoc(), body = d.body, de = d.documentElement, DOM = tinymce.DOM, resizeHeight = t.autoresize_min_height, myHeight;
+
+				// Get height differently depending on the browser used
+				myHeight = tinymce.isIE ? body.scrollHeight : (tinymce.isWebKit && body.clientHeight == 0 ? 0 : body.offsetHeight);
+
+				// Don't make it smaller than the minimum height
+				if (myHeight > t.autoresize_min_height)
+					resizeHeight = myHeight;
+
+				// If a maximum height has been defined don't exceed this height
+				if (t.autoresize_max_height && myHeight > t.autoresize_max_height) {
+					resizeHeight = t.autoresize_max_height;
+					body.style.overflowY = "auto";
+					de.style.overflowY = "auto"; // Old IE
+				} else {
+					body.style.overflowY = "hidden";
+					de.style.overflowY = "hidden"; // Old IE
+					body.scrollTop = 0;
+				}
+
+				// Resize content element
+				if (resizeHeight !== oldSize) {
+					deltaSize = resizeHeight - oldSize;
+					DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px');
+					oldSize = resizeHeight;
+
+					// WebKit doesn't decrease the size of the body element until the iframe gets resized
+					// So we need to continue to resize the iframe down until the size gets fixed
+					if (tinymce.isWebKit && deltaSize < 0)
+						resize();
+				}
+			};
+
+			t.editor = ed;
+
+			// Define minimum height
+			t.autoresize_min_height = parseInt(ed.getParam('autoresize_min_height', ed.getElement().offsetHeight));
+
+			// Define maximum height
+			t.autoresize_max_height = parseInt(ed.getParam('autoresize_max_height', 0));
+
+			// Add padding at the bottom for better UX
+			ed.onInit.add(function(ed){
+				ed.dom.setStyle(ed.getBody(), 'paddingBottom', ed.getParam('autoresize_bottom_margin', 50) + 'px');
+			});
+
+			// Add appropriate listeners for resizing content area
+			ed.onChange.add(resize);
+			ed.onSetContent.add(resize);
+			ed.onPaste.add(resize);
+			ed.onKeyUp.add(resize);
+			ed.onPostRender.add(resize);
+
+			if (ed.getParam('autoresize_on_init', true)) {
+				ed.onLoad.add(resize);
+				ed.onLoadContent.add(resize);
+			}
+
+			// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
+			ed.addCommand('mceAutoResize', resize);
+		},
+
+		/**
+		 * Returns information about the plugin as a name/value array.
+		 * The current keys are longname, author, authorurl, infourl and version.
+		 *
+		 * @return {Object} Name/value array containing information about the plugin.
+		 */
+		getInfo : function() {
+			return {
+				longname : 'Auto Resize',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('autoresize', tinymce.plugins.AutoResizePlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js
new file mode 100644
index 0000000..f7d0576
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js
@@ -0,0 +1 @@
+(function(e){var c="autosave",g="restoredraft",b=true,f,d,a=e.util.Dispatcher;e.create("tinymce.plugins.AutoSave",{init:function(i,j){var h=this,l=i.settings;h.editor=i;function k(n){var m={s:1000,m:60000};n=/^(\d+)([ms]?)$/.exec(""+n);return(n[2]?m[n[2]]:1)*parseInt(n)}e.each({ask_before_unload:b,interval:"30s",retention:"20m",minlength:50},function(n,m){m=c+"_"+m;if(l[m]===f){l[m]=n}});l.autosave_interval=k(l.autosave_interval);l.autosave_retention=k(l.autosave_retention);i.addButton(g [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js
new file mode 100644
index 0000000..31bcb41
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js
@@ -0,0 +1,431 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ *
+ * Adds auto-save capability to the TinyMCE text editor to rescue content
+ * inadvertently lost. This plugin was originally developed by Speednet
+ * and that project can be found here: http://code.google.com/p/tinyautosave/
+ *
+ * TECHNOLOGY DISCUSSION:
+ * 
+ * The plugin attempts to use the most advanced features available in the current browser to save
+ * as much content as possible.  There are a total of four different methods used to autosave the
+ * content.  In order of preference, they are:
+ * 
+ * 1. localStorage - A new feature of HTML 5, localStorage can store megabytes of data per domain
+ * on the client computer. Data stored in the localStorage area has no expiration date, so we must
+ * manage expiring the data ourselves.  localStorage is fully supported by IE8, and it is supposed
+ * to be working in Firefox 3 and Safari 3.2, but in reality is is flaky in those browsers.  As
+ * HTML 5 gets wider support, the AutoSave plugin will use it automatically. In Windows Vista/7,
+ * localStorage is stored in the following folder:
+ * C:\Users\[username]\AppData\Local\Microsoft\Internet Explorer\DOMStore\[tempFolder]
+ * 
+ * 2. sessionStorage - A new feature of HTML 5, sessionStorage works similarly to localStorage,
+ * except it is designed to expire after a certain amount of time.  Because the specification
+ * around expiration date/time is very loosely-described, it is preferrable to use locaStorage and
+ * manage the expiration ourselves.  sessionStorage has similar storage characteristics to
+ * localStorage, although it seems to have better support by Firefox 3 at the moment.  (That will
+ * certainly change as Firefox continues getting better at HTML 5 adoption.)
+ * 
+ * 3. UserData - A very under-exploited feature of Microsoft Internet Explorer, UserData is a
+ * way to store up to 128K of data per "document", or up to 1MB of data per domain, on the client
+ * computer.  The feature is available for IE 5+, which makes it available for every version of IE
+ * supported by TinyMCE.  The content is persistent across browser restarts and expires on the
+ * date/time specified, just like a cookie.  However, the data is not cleared when the user clears
+ * cookies on the browser, which makes it well-suited for rescuing autosaved content.  UserData,
+ * like other Microsoft IE browser technologies, is implemented as a behavior attached to a
+ * specific DOM object, so in this case we attach the behavior to the same DOM element that the
+ * TinyMCE editor instance is attached to.
+ */
+
+(function(tinymce) {
+	// Setup constants to help the compressor to reduce script size
+	var PLUGIN_NAME = 'autosave',
+		RESTORE_DRAFT = 'restoredraft',
+		TRUE = true,
+		undefined,
+		unloadHandlerAdded,
+		Dispatcher = tinymce.util.Dispatcher;
+
+	/**
+	 * This plugin adds auto-save capability to the TinyMCE text editor to rescue content
+	 * inadvertently lost. By using localStorage.
+	 *
+	 * @class tinymce.plugins.AutoSave
+	 */
+	tinymce.create('tinymce.plugins.AutoSave', {
+		/**
+		 * Initializes the plugin, this will be executed after the plugin has been created.
+		 * This call is done before the editor instance has finished it's initialization so use the onInit event
+		 * of the editor instance to intercept that event.
+		 *
+		 * @method init
+		 * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
+		 * @param {string} url Absolute URL to where the plugin is located.
+		 */
+		init : function(ed, url) {
+			var self = this, settings = ed.settings;
+
+			self.editor = ed;
+
+			// Parses the specified time string into a milisecond number 10m, 10s etc.
+			function parseTime(time) {
+				var multipels = {
+					s : 1000,
+					m : 60000
+				};
+
+				time = /^(\d+)([ms]?)$/.exec('' + time);
+
+				return (time[2] ? multipels[time[2]] : 1) * parseInt(time);
+			};
+
+			// Default config
+			tinymce.each({
+				ask_before_unload : TRUE,
+				interval : '30s',
+				retention : '20m',
+				minlength : 50
+			}, function(value, key) {
+				key = PLUGIN_NAME + '_' + key;
+
+				if (settings[key] === undefined)
+					settings[key] = value;
+			});
+
+			// Parse times
+			settings.autosave_interval = parseTime(settings.autosave_interval);
+			settings.autosave_retention = parseTime(settings.autosave_retention);
+
+			// Register restore button
+			ed.addButton(RESTORE_DRAFT, {
+				title : PLUGIN_NAME + ".restore_content",
+				onclick : function() {
+					if (ed.getContent({draft: true}).replace(/\s| |<\/?p[^>]*>|<br[^>]*>/gi, "").length > 0) {
+						// Show confirm dialog if the editor isn't empty
+						ed.windowManager.confirm(
+							PLUGIN_NAME + ".warning_message",
+							function(ok) {
+								if (ok)
+									self.restoreDraft();
+							}
+						);
+					} else
+						self.restoreDraft();
+				}
+			});
+
+			// Enable/disable restoredraft button depending on if there is a draft stored or not
+			ed.onNodeChange.add(function() {
+				var controlManager = ed.controlManager;
+
+				if (controlManager.get(RESTORE_DRAFT))
+					controlManager.setDisabled(RESTORE_DRAFT, !self.hasDraft());
+			});
+
+			ed.onInit.add(function() {
+				// Check if the user added the restore button, then setup auto storage logic
+				if (ed.controlManager.get(RESTORE_DRAFT)) {
+					// Setup storage engine
+					self.setupStorage(ed);
+
+					// Auto save contents each interval time
+					setInterval(function() {
+						self.storeDraft();
+						ed.nodeChanged();
+					}, settings.autosave_interval);
+				}
+			});
+
+			/**
+			 * This event gets fired when a draft is stored to local storage.
+			 *
+			 * @event onStoreDraft
+			 * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
+			 * @param {Object} draft Draft object containing the HTML contents of the editor.
+			 */
+			self.onStoreDraft = new Dispatcher(self);
+
+			/**
+			 * This event gets fired when a draft is restored from local storage.
+			 *
+			 * @event onStoreDraft
+			 * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
+			 * @param {Object} draft Draft object containing the HTML contents of the editor.
+			 */
+			self.onRestoreDraft = new Dispatcher(self);
+
+			/**
+			 * This event gets fired when a draft removed/expired.
+			 *
+			 * @event onRemoveDraft
+			 * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
+			 * @param {Object} draft Draft object containing the HTML contents of the editor.
+			 */
+			self.onRemoveDraft = new Dispatcher(self);
+
+			// Add ask before unload dialog only add one unload handler
+			if (!unloadHandlerAdded) {
+				window.onbeforeunload = tinymce.plugins.AutoSave._beforeUnloadHandler;
+				unloadHandlerAdded = TRUE;
+			}
+		},
+
+		/**
+		 * Returns information about the plugin as a name/value array.
+		 * The current keys are longname, author, authorurl, infourl and version.
+		 *
+		 * @method getInfo
+		 * @return {Object} Name/value array containing information about the plugin.
+		 */
+		getInfo : function() {
+			return {
+				longname : 'Auto save',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		/**
+		 * Returns an expiration date UTC string.
+		 *
+		 * @method getExpDate
+		 * @return {String} Expiration date UTC string.
+		 */
+		getExpDate : function() {
+			return new Date(
+				new Date().getTime() + this.editor.settings.autosave_retention
+			).toUTCString();
+		},
+
+		/**
+		 * This method will setup the storage engine. If the browser has support for it.
+		 *
+		 * @method setupStorage
+		 */
+		setupStorage : function(ed) {
+			var self = this, testKey = PLUGIN_NAME + '_test', testVal = "OK";
+
+			self.key = PLUGIN_NAME + ed.id;
+
+			// Loop though each storage engine type until we find one that works
+			tinymce.each([
+				function() {
+					// Try HTML5 Local Storage
+					if (localStorage) {
+						localStorage.setItem(testKey, testVal);
+
+						if (localStorage.getItem(testKey) === testVal) {
+							localStorage.removeItem(testKey);
+
+							return localStorage;
+						}
+					}
+				},
+
+				function() {
+					// Try HTML5 Session Storage
+					if (sessionStorage) {
+						sessionStorage.setItem(testKey, testVal);
+
+						if (sessionStorage.getItem(testKey) === testVal) {
+							sessionStorage.removeItem(testKey);
+
+							return sessionStorage;
+						}
+					}
+				},
+
+				function() {
+					// Try IE userData
+					if (tinymce.isIE) {
+						ed.getElement().style.behavior = "url('#default#userData')";
+
+						// Fake localStorage on old IE
+						return {
+							autoExpires : TRUE,
+
+							setItem : function(key, value) {
+								var userDataElement = ed.getElement();
+
+								userDataElement.setAttribute(key, value);
+								userDataElement.expires = self.getExpDate();
+
+								try {
+									userDataElement.save("TinyMCE");
+								} catch (e) {
+									// Ignore, saving might fail if "Userdata Persistence" is disabled in IE
+								}
+							},
+
+							getItem : function(key) {
+								var userDataElement = ed.getElement();
+
+								try {
+									userDataElement.load("TinyMCE");
+									return userDataElement.getAttribute(key);
+								} catch (e) {
+									// Ignore, loading might fail if "Userdata Persistence" is disabled in IE
+									return null;
+								}
+							},
+
+							removeItem : function(key) {
+								ed.getElement().removeAttribute(key);
+							}
+						};
+					}
+				},
+			], function(setup) {
+				// Try executing each function to find a suitable storage engine
+				try {
+					self.storage = setup();
+
+					if (self.storage)
+						return false;
+				} catch (e) {
+					// Ignore
+				}
+			});
+		},
+
+		/**
+		 * This method will store the current contents in the the storage engine.
+		 *
+		 * @method storeDraft
+		 */
+		storeDraft : function() {
+			var self = this, storage = self.storage, editor = self.editor, expires, content;
+
+			// Is the contents dirty
+			if (storage) {
+				// If there is no existing key and the contents hasn't been changed since
+				// it's original value then there is no point in saving a draft
+				if (!storage.getItem(self.key) && !editor.isDirty())
+					return;
+
+				// Store contents if the contents if longer than the minlength of characters
+				content = editor.getContent({draft: true});
+				if (content.length > editor.settings.autosave_minlength) {
+					expires = self.getExpDate();
+
+					// Store expiration date if needed IE userData has auto expire built in
+					if (!self.storage.autoExpires)
+						self.storage.setItem(self.key + "_expires", expires);
+
+					self.storage.setItem(self.key, content);
+					self.onStoreDraft.dispatch(self, {
+						expires : expires,
+						content : content
+					});
+				}
+			}
+		},
+
+		/**
+		 * This method will restore the contents from the storage engine back to the editor.
+		 *
+		 * @method restoreDraft
+		 */
+		restoreDraft : function() {
+			var self = this, storage = self.storage, content;
+
+			if (storage) {
+				content = storage.getItem(self.key);
+
+				if (content) {
+					self.editor.setContent(content);
+					self.onRestoreDraft.dispatch(self, {
+						content : content
+					});
+				}
+			}
+		},
+
+		/**
+		 * This method will return true/false if there is a local storage draft available.
+		 *
+		 * @method hasDraft
+		 * @return {boolean} true/false state if there is a local draft.
+		 */
+		hasDraft : function() {
+			var self = this, storage = self.storage, expDate, exists;
+
+			if (storage) {
+				// Does the item exist at all
+				exists = !!storage.getItem(self.key);
+				if (exists) {
+					// Storage needs autoexpire
+					if (!self.storage.autoExpires) {
+						expDate = new Date(storage.getItem(self.key + "_expires"));
+
+						// Contents hasn't expired
+						if (new Date().getTime() < expDate.getTime())
+							return TRUE;
+
+						// Remove it if it has
+						self.removeDraft();
+					} else
+						return TRUE;
+				}
+			}
+
+			return false;
+		},
+
+		/**
+		 * Removes the currently stored draft.
+		 *
+		 * @method removeDraft
+		 */
+		removeDraft : function() {
+			var self = this, storage = self.storage, key = self.key, content;
+
+			if (storage) {
+				// Get current contents and remove the existing draft
+				content = storage.getItem(key);
+				storage.removeItem(key);
+				storage.removeItem(key + "_expires");
+
+				// Dispatch remove event if we had any contents
+				if (content) {
+					self.onRemoveDraft.dispatch(self, {
+						content : content
+					});
+				}
+			}
+		},
+
+		"static" : {
+			// Internal unload handler will be called before the page is unloaded
+			_beforeUnloadHandler : function(e) {
+				var msg;
+
+				tinymce.each(tinyMCE.editors, function(ed) {
+					// Store a draft for each editor instance
+					if (ed.plugins.autosave)
+						ed.plugins.autosave.storeDraft();
+
+					// Never ask in fullscreen mode
+					if (ed.getParam("fullscreen_is_enabled"))
+						return;
+
+					// Setup a return message if the editor is dirty
+					if (!msg && ed.isDirty() && ed.getParam("autosave_ask_before_unload"))
+						msg = ed.getLang("autosave.unload_msg");
+				});
+
+				return msg;
+			}
+		}
+	});
+
+	tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSave);
+})(tinymce);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js
new file mode 100644
index 0000000..219f769
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js
@@ -0,0 +1,4 @@
+tinyMCE.addI18n('en.autosave',{
+restore_content: "Restore auto-saved content",
+warning_message: "If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?"
+});
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js
new file mode 100644
index 0000000..8f8821f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(a,b){var d=this,c=a.getParam("bbcode_dialect","punbb").toLowerCase();a.onBeforeSetContent.add(function(e,f){f.content=d["_"+c+"_bbcode2html"](f.content)});a.onPostProcess.add(function(e,f){if(f.set){f.content=d["_"+c+"_bbcode2html"](f.content)}if(f.get){f.content=d["_"+c+"_html2bbcode"](f.content)}})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
new file mode 100644
index 0000000..12cdaca
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
@@ -0,0 +1,120 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.BBCodePlugin', {
+		init : function(ed, url) {
+			var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase();
+
+			ed.onBeforeSetContent.add(function(ed, o) {
+				o.content = t['_' + dialect + '_bbcode2html'](o.content);
+			});
+
+			ed.onPostProcess.add(function(ed, o) {
+				if (o.set)
+					o.content = t['_' + dialect + '_bbcode2html'](o.content);
+
+				if (o.get)
+					o.content = t['_' + dialect + '_html2bbcode'](o.content);
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'BBCode Plugin',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		// Private methods
+
+		// HTML -> BBCode in PunBB dialect
+		_punbb_html2bbcode : function(s) {
+			s = tinymce.trim(s);
+
+			function rep(re, str) {
+				s = s.replace(re, str);
+			};
+
+			// example: <strong> to [b]
+			rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
+			rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
+			rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
+			rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
+			rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
+			rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
+			rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
+			rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");
+			rep(/<font>(.*?)<\/font>/gi,"$1");
+			rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
+			rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");
+			rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");
+			rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");
+			rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");
+			rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");
+			rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");
+			rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");
+			rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");
+			rep(/<\/(strong|b)>/gi,"[/b]");
+			rep(/<(strong|b)>/gi,"[b]");
+			rep(/<\/(em|i)>/gi,"[/i]");
+			rep(/<(em|i)>/gi,"[i]");
+			rep(/<\/u>/gi,"[/u]");
+			rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");
+			rep(/<u>/gi,"[u]");
+			rep(/<blockquote[^>]*>/gi,"[quote]");
+			rep(/<\/blockquote>/gi,"[/quote]");
+			rep(/<br \/>/gi,"\n");
+			rep(/<br\/>/gi,"\n");
+			rep(/<br>/gi,"\n");
+			rep(/<p>/gi,"");
+			rep(/<\/p>/gi,"\n");
+			rep(/ |\u00a0/gi," ");
+			rep(/"/gi,"\"");
+			rep(/</gi,"<");
+			rep(/>/gi,">");
+			rep(/&/gi,"&");
+
+			return s; 
+		},
+
+		// BBCode -> HTML from PunBB dialect
+		_punbb_bbcode2html : function(s) {
+			s = tinymce.trim(s);
+
+			function rep(re, str) {
+				s = s.replace(re, str);
+			};
+
+			// example: [b] to <strong>
+			rep(/\n/gi,"<br />");
+			rep(/\[b\]/gi,"<strong>");
+			rep(/\[\/b\]/gi,"</strong>");
+			rep(/\[i\]/gi,"<em>");
+			rep(/\[\/i\]/gi,"</em>");
+			rep(/\[u\]/gi,"<u>");
+			rep(/\[\/u\]/gi,"</u>");
+			rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
+			rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
+			rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
+			rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
+			rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");
+			rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");
+
+			return s; 
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js
new file mode 100644
index 0000000..4f99010
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var a=tinymce.dom.Event,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.ContextMenu",{init:function(e){var h=this,f,d,i;h.editor=e;d=e.settings.contextmenu_never_use_native;h.onContextMenu=new tinymce.util.Dispatcher(this);f=e.onContextMenu.add(function(j,k){if((i!==0?i:k.ctrlKey)&&!d){return}a.cancel(k);if(k.target.nodeName=="IMG"){j.selection.select(k.target)}h._getMenu(j).showMenu(k.clientX||k.pageX,k.clientY||k.pageY);a.add(j.getDoc(),"click",function(l){g(j, [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js
new file mode 100644
index 0000000..4937d32
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js
@@ -0,0 +1,161 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;
+
+	/**
+	 * This plugin a context menu to TinyMCE editor instances.
+	 *
+	 * @class tinymce.plugins.ContextMenu
+	 */
+	tinymce.create('tinymce.plugins.ContextMenu', {
+		/**
+		 * Initializes the plugin, this will be executed after the plugin has been created.
+		 * This call is done before the editor instance has finished it's initialization so use the onInit event
+		 * of the editor instance to intercept that event.
+		 *
+		 * @method init
+		 * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
+		 * @param {string} url Absolute URL to where the plugin is located.
+		 */
+		init : function(ed) {
+			var t = this, showMenu, contextmenuNeverUseNative, realCtrlKey;
+
+			t.editor = ed;
+
+			contextmenuNeverUseNative = ed.settings.contextmenu_never_use_native;
+
+			/**
+			 * This event gets fired when the context menu is shown.
+			 *
+			 * @event onContextMenu
+			 * @param {tinymce.plugins.ContextMenu} sender Plugin instance sending the event.
+			 * @param {tinymce.ui.DropMenu} menu Drop down menu to fill with more items if needed.
+			 */
+			t.onContextMenu = new tinymce.util.Dispatcher(this);
+
+			showMenu = ed.onContextMenu.add(function(ed, e) {
+				// Block TinyMCE menu on ctrlKey and work around Safari issue
+				if ((realCtrlKey !== 0 ? realCtrlKey : e.ctrlKey) && !contextmenuNeverUseNative)
+					return;
+
+				Event.cancel(e);
+
+				// Select the image if it's clicked. WebKit would other wise expand the selection
+				if (e.target.nodeName == 'IMG')
+					ed.selection.select(e.target);
+
+				t._getMenu(ed).showMenu(e.clientX || e.pageX, e.clientY || e.pageY);
+				Event.add(ed.getDoc(), 'click', function(e) {
+					hide(ed, e);
+				});
+
+				ed.nodeChanged();
+			});
+
+			ed.onRemove.add(function() {
+				if (t._menu)
+					t._menu.removeAll();
+			});
+
+			function hide(ed, e) {
+				realCtrlKey = 0;
+
+				// Since the contextmenu event moves
+				// the selection we need to store it away
+				if (e && e.button == 2) {
+					realCtrlKey = e.ctrlKey;
+					return;
+				}
+
+				if (t._menu) {
+					t._menu.removeAll();
+					t._menu.destroy();
+					Event.remove(ed.getDoc(), 'click', hide);
+					t._menu = null;
+				}
+			};
+
+			ed.onMouseDown.add(hide);
+			ed.onKeyDown.add(hide);
+			ed.onKeyDown.add(function(ed, e) {
+				if (e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode === 121) {
+					Event.cancel(e);
+					showMenu(ed, e);
+				}
+			});
+		},
+
+		/**
+		 * Returns information about the plugin as a name/value array.
+		 * The current keys are longname, author, authorurl, infourl and version.
+		 *
+		 * @method getInfo
+		 * @return {Object} Name/value array containing information about the plugin.
+		 */
+		getInfo : function() {
+			return {
+				longname : 'Contextmenu',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		_getMenu : function(ed) {
+			var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p;
+
+			if (m) {
+				m.removeAll();
+				m.destroy();
+			}
+
+			p = DOM.getPos(ed.getContentAreaContainer());
+
+			m = ed.controlManager.createDropMenu('contextmenu', {
+				offset_x : p.x + ed.getParam('contextmenu_offset_x', 0),
+				offset_y : p.y + ed.getParam('contextmenu_offset_y', 0),
+				constrain : 1,
+				keyboard_focus: true
+			});
+
+			t._menu = m;
+
+			m.add({title : 'advanced.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col);
+			m.add({title : 'advanced.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col);
+			m.add({title : 'advanced.paste_desc', icon : 'paste', cmd : 'Paste'});
+
+			if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) {
+				m.addSeparator();
+				m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});
+				m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});
+			}
+
+			m.addSeparator();
+			m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});
+
+			m.addSeparator();
+			am = m.addMenu({title : 'contextmenu.align'});
+			am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'});
+			am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'});
+			am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'});
+			am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'});
+
+			t.onContextMenu.dispatch(t, m, el, col);
+
+			return m;
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('contextmenu', tinymce.plugins.ContextMenu);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js
new file mode 100644
index 0000000..bce8e73
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.Directionality",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceDirectionLTR",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="ltr"){a.dom.setAttrib(d,"dir","ltr")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addCommand("mceDirectionRTL",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="rtl"){a.dom.setAttrib(d,"di [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js
new file mode 100644
index 0000000..205d02c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js
@@ -0,0 +1,82 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.Directionality', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			ed.addCommand('mceDirectionLTR', function() {
+				var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
+
+				if (e) {
+					if (ed.dom.getAttrib(e, "dir") != "ltr")
+						ed.dom.setAttrib(e, "dir", "ltr");
+					else
+						ed.dom.setAttrib(e, "dir", "");
+				}
+
+				ed.nodeChanged();
+			});
+
+			ed.addCommand('mceDirectionRTL', function() {
+				var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
+
+				if (e) {
+					if (ed.dom.getAttrib(e, "dir") != "rtl")
+						ed.dom.setAttrib(e, "dir", "rtl");
+					else
+						ed.dom.setAttrib(e, "dir", "");
+				}
+
+				ed.nodeChanged();
+			});
+
+			ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});
+			ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});
+
+			ed.onNodeChange.add(t._nodeChange, t);
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Directionality',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		// Private methods
+
+		_nodeChange : function(ed, cm, n) {
+			var dom = ed.dom, dir;
+
+			n = dom.getParent(n, dom.isBlock);
+			if (!n) {
+				cm.setDisabled('ltr', 1);
+				cm.setDisabled('rtl', 1);
+				return;
+			}
+
+			dir = dom.getAttrib(n, 'dir');
+			cm.setActive('ltr', dir == "ltr");
+			cm.setDisabled('ltr', 0);
+			cm.setActive('rtl', dir == "rtl");
+			cm.setDisabled('rtl', 0);
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js
new file mode 100644
index 0000000..dbdd8ff
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js
@@ -0,0 +1 @@
+(function(a){a.create("tinymce.plugins.EmotionsPlugin",{init:function(b,c){b.addCommand("mceEmotion",function(){b.windowManager.open({file:c+"/emotions.htm",width:250+parseInt(b.getLang("emotions.delta_width",0)),height:160+parseInt(b.getLang("emotions.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("emotions",{title:"emotions.emotions_desc",cmd:"mceEmotion"})},getInfo:function(){return{longname:"Emotions",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",i [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js
new file mode 100644
index 0000000..aeee199
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js
@@ -0,0 +1,43 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function(tinymce) {
+	tinymce.create('tinymce.plugins.EmotionsPlugin', {
+		init : function(ed, url) {
+			// Register commands
+			ed.addCommand('mceEmotion', function() {
+				ed.windowManager.open({
+					file : url + '/emotions.htm',
+					width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)),
+					height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			// Register buttons
+			ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Emotions',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);
+})(tinymce);
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm
new file mode 100644
index 0000000..eb7a6b2
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#emotions_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/emotions.js"></script>
+</head>
+<body style="display: none" role="application" aria-labelledby="app_title">
+<span style="display:none;" id="app_title">{#emotions_dlg.title}</span>
+<div align="center">
+	<div class="title">{#emotions_dlg.title}:<br /><br /></div>
+
+	<table id="emoticon_table" role="presentation" border="0" cellspacing="0" cellpadding="4">
+		<tr>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.cool}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-cool.gif','emotions_dlg.cool');"><img src="img/smiley-cool.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cool}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.cry}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-cry.gif','emotions_dlg.cry');"><img src="img/smiley-cry.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cry}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.embarassed}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-embarassed.gif','emotions_dlg.embarassed');"><img src="img/smiley-embarassed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.embarassed}. {#emotions_dlg.usage}"  /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.foot_in_mouth}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-foot-in-mouth.gif','emotions_dlg.foot_in_mouth');"><img src="img/smiley-foot-in-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.foot_in_mouth}. {#emotions_dlg.usage}" /></a></td>
+		</tr>
+		<tr>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.frown}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-frown.gif','emotions_dlg.frown');"><img src="img/smiley-frown.gif" width="18" height="18" border="0" alt="{#emotions_dlg.frown}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.innocent}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-innocent.gif','emotions_dlg.innocent');"><img src="img/smiley-innocent.gif" width="18" height="18" border="0" alt="{#emotions_dlg.innocent}. {#emotions_dlg.usage}"  /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.kiss}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-kiss.gif','emotions_dlg.kiss');"><img src="img/smiley-kiss.gif" width="18" height="18" border="0" alt="{#emotions_dlg.kiss}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.laughing}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-laughing.gif','emotions_dlg.laughing');"><img src="img/smiley-laughing.gif" width="18" height="18" border="0" alt="{#emotions_dlg.laughing}. {#emotions_dlg.usage}" /></a></td>
+		</tr>
+		<tr>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.money_mouth}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-money-mouth.gif','emotions_dlg.money_mouth');"><img src="img/smiley-money-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.money_mouth}. {#emotions_dlg.usage}"/></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.sealed}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-sealed.gif','emotions_dlg.sealed');"><img src="img/smiley-sealed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.sealed}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.smile}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-smile.gif','emotions_dlg.smile');"><img src="img/smiley-smile.gif" width="18" height="18" border="0" alt="{#emotions_dlg.smile}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.surprised}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-surprised.gif','emotions_dlg.surprised');"><img src="img/smiley-surprised.gif" width="18" height="18" border="0" alt="{#emotions_dlg.surprised}. {#emotions_dlg.usage}" /></a></td>
+		</tr>
+		<tr>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.tongue_out}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-tongue-out.gif','emotions_dlg.tongue_out');"><img src="img/smiley-tongue-out.gif" width="18" height="18" border="0" alt="{#emotions_dlg.tongue-out}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.undecided}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-undecided.gif','emotions_dlg.undecided');"><img src="img/smiley-undecided.gif" width="18" height="18" border="0" alt="{#emotions_dlg.undecided}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.wink}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-wink.gif','emotions_dlg.wink');"><img src="img/smiley-wink.gif" width="18" height="18" border="0" alt="{#emotions_dlg.wink}. {#emotions_dlg.usage}" /></a></td>
+			<td><a class="emoticon_link" role="button" title="{#emotions_dlg.yell}. {#emotions_dlg.usage}" href="javascript:EmotionsDialog.insert('smiley-yell.gif','emotions_dlg.yell');"><img src="img/smiley-yell.gif" width="18" height="18" border="0" alt="{#emotions_dlg.yell}. {#emotions_dlg.usage}" /></a></td>
+		</tr>
+	</table>
+	<div>{#emotions_dlg.usage}</div>
+</div>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif
new file mode 100644
index 0000000..ba90cc3
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif
new file mode 100644
index 0000000..74d897a
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif
new file mode 100644
index 0000000..963a96b
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif
new file mode 100644
index 0000000..c7cf101
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif
new file mode 100644
index 0000000..716f55e
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif
new file mode 100644
index 0000000..334d49e
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif
new file mode 100644
index 0000000..4efd549
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif
new file mode 100644
index 0000000..82c5b18
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif
new file mode 100644
index 0000000..ca2451e
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif
new file mode 100644
index 0000000..fe66220
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif
new file mode 100644
index 0000000..fd27edf
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif
new file mode 100644
index 0000000..0cc9bb7
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif
new file mode 100644
index 0000000..2075dc1
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif
new file mode 100644
index 0000000..bef7e25
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif
new file mode 100644
index 0000000..0631c76
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif
new file mode 100644
index 0000000..648e6e8
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js
new file mode 100644
index 0000000..f73516c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js
@@ -0,0 +1,43 @@
+tinyMCEPopup.requireLangPack();
+
+var EmotionsDialog = {
+	addKeyboardNavigation: function(){
+		var tableElm, cells, settings;
+			
+		cells = tinyMCEPopup.dom.select("a.emoticon_link", "emoticon_table");
+			
+		settings ={
+			root: "emoticon_table",
+			items: cells
+		};
+		cells[0].tabindex=0;
+		tinyMCEPopup.dom.addClass(cells[0], "mceFocus");
+		if (tinymce.isGecko) {
+			cells[0].focus();		
+		} else {
+			setTimeout(function(){
+				cells[0].focus();
+			}, 100);
+		}
+		tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom);
+	}, 
+	init : function(ed) {
+		tinyMCEPopup.resizeToInnerSize();
+		this.addKeyboardNavigation();
+	},
+
+	insert : function(file, title) {
+		var ed = tinyMCEPopup.editor, dom = ed.dom;
+
+		tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {
+			src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file,
+			alt : ed.getLang(title),
+			title : ed.getLang(title),
+			border : 0
+		}));
+
+		tinyMCEPopup.close();
+	}
+};
+
+tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js
new file mode 100644
index 0000000..037c4b5
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.emotions_dlg',{cry:"Cry",cool:"Cool",desc:"Emotions",title:"Insert Emotion",usage:"Use left and right arrows to navigate.",yell:"Yell",wink:"Wink",undecided:"Undecided","tongue_out":"Tongue Out",surprised:"Surprised",smile:"Smile",sealed:"Sealed","money_mouth":"Money Mouth",laughing:"Laughing",kiss:"Kiss",innocent:"Innocent",frown:"Frown","foot_in_mouth":"Foot in Mouth",embarassed:"Embarassed"});
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm
new file mode 100644
index 0000000..d6f2856
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#example_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/dialog.js"></script>
+</head>
+<body>
+
+<form onsubmit="ExampleDialog.insert();return false;" action="#">
+	<p>Here is a example dialog.</p>
+	<p>Selected text: <input id="someval" name="someval" type="text" class="text" /></p>
+	<p>Custom arg: <input id="somearg" name="somearg" type="text" class="text" /></p>
+
+	<div class="mceActionPanel">
+		<input type="button" id="insert" name="insert" value="{#insert}" onclick="ExampleDialog.insert();" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js
new file mode 100644
index 0000000..ec1f81e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(functi [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js
new file mode 100644
index 0000000..edc1e77
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js
@@ -0,0 +1,84 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	// Load plugin specific language pack
+	tinymce.PluginManager.requireLangPack('example');
+
+	tinymce.create('tinymce.plugins.ExamplePlugin', {
+		/**
+		 * Initializes the plugin, this will be executed after the plugin has been created.
+		 * This call is done before the editor instance has finished it's initialization so use the onInit event
+		 * of the editor instance to intercept that event.
+		 *
+		 * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
+		 * @param {string} url Absolute URL to where the plugin is located.
+		 */
+		init : function(ed, url) {
+			// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
+			ed.addCommand('mceExample', function() {
+				ed.windowManager.open({
+					file : url + '/dialog.htm',
+					width : 320 + parseInt(ed.getLang('example.delta_width', 0)),
+					height : 120 + parseInt(ed.getLang('example.delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url, // Plugin absolute URL
+					some_custom_arg : 'custom arg' // Custom argument
+				});
+			});
+
+			// Register example button
+			ed.addButton('example', {
+				title : 'example.desc',
+				cmd : 'mceExample',
+				image : url + '/img/example.gif'
+			});
+
+			// Add a node change handler, selects the button in the UI when a image is selected
+			ed.onNodeChange.add(function(ed, cm, n) {
+				cm.setActive('example', n.nodeName == 'IMG');
+			});
+		},
+
+		/**
+		 * Creates control instances based in the incomming name. This method is normally not
+		 * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
+		 * but you sometimes need to create more complex controls like listboxes, split buttons etc then this
+		 * method can be used to create those.
+		 *
+		 * @param {String} n Name of the control to create.
+		 * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
+		 * @return {tinymce.ui.Control} New control instance or null if no control was created.
+		 */
+		createControl : function(n, cm) {
+			return null;
+		},
+
+		/**
+		 * Returns information about the plugin as a name/value array.
+		 * The current keys are longname, author, authorurl, infourl and version.
+		 *
+		 * @return {Object} Name/value array containing information about the plugin.
+		 */
+		getInfo : function() {
+			return {
+				longname : 'Example plugin',
+				author : 'Some author',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',
+				version : "1.0"
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif
new file mode 100644
index 0000000..1ab5da4
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js
new file mode 100644
index 0000000..a7ee507
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js
@@ -0,0 +1,19 @@
+tinyMCEPopup.requireLangPack();
+
+var ExampleDialog = {
+	init : function() {
+		var f = document.forms[0];
+
+		// Get the selected contents as text and place it in the input
+		f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'});
+		f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg');
+	},
+
+	insert : function() {
+		// Insert the contents from the input into the document
+		tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value);
+		tinyMCEPopup.close();
+	}
+};
+
+tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js
new file mode 100644
index 0000000..f3721d3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js
@@ -0,0 +1,3 @@
+tinyMCE.addI18n('en.example',{
+	desc : 'This is just a template button'
+});
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js
new file mode 100644
index 0000000..a9cd65f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js
@@ -0,0 +1,3 @@
+tinyMCE.addI18n('en.example_dlg',{
+	title : 'This is just a example title'
+});
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js
new file mode 100644
index 0000000..0a4551d
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.ExampleDependencyPlugin",{init:function(a,b){},getInfo:function(){return{longname:"Example Dependency plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example_dependency",version:"1.0"}}});tinymce.PluginManager.add("example_dependency",tinymce.plugins.ExampleDependencyPlugin,["example"])})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js
new file mode 100644
index 0000000..e1c55e4
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js
@@ -0,0 +1,50 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+
+	tinymce.create('tinymce.plugins.ExampleDependencyPlugin', {
+		/**
+		 * Initializes the plugin, this will be executed after the plugin has been created.
+		 * This call is done before the editor instance has finished it's initialization so use the onInit event
+		 * of the editor instance to intercept that event.
+		 *
+		 * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
+		 * @param {string} url Absolute URL to where the plugin is located.
+		 */
+		init : function(ed, url) {
+		},
+
+
+		/**
+		 * Returns information about the plugin as a name/value array.
+		 * The current keys are longname, author, authorurl, infourl and version.
+		 *
+		 * @return {Object} Name/value array containing information about the plugin.
+		 */
+		getInfo : function() {
+			return {
+				longname : 'Example Dependency plugin',
+				author : 'Some author',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example_dependency',
+				version : "1.0"
+			};
+		}
+	});
+
+	/**
+	 * Register the plugin, specifying the list of the plugins that this plugin depends on.  They are specified in a list, with the list loaded in order.
+	 * plugins in this list will be initialised when this plugin is initialized. (before the init method is called).
+	 * plugins in a depends list should typically be specified using the short name).  If neccesary this can be done
+	 * with an object which has the url to the plugin and the shortname.
+	 */
+	tinymce.PluginManager.add('example_dependency', tinymce.plugins.ExampleDependencyPlugin, ['example']);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css
new file mode 100644
index 0000000..28b721f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css
@@ -0,0 +1,143 @@
+/* Hide the advanced tab */
+#advanced_tab {
+	display: none;
+}
+
+#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright {
+	width: 280px;
+}
+
+#doctype, #docencoding {
+	width: 200px;
+}
+
+#langcode {
+	width: 30px;
+}
+
+#bgimage {
+	width: 220px;	
+}
+
+#fontface {
+	width: 240px;
+}
+
+#leftmargin, #rightmargin, #topmargin, #bottommargin {
+	width: 50px;
+}
+
+.panel_wrapper div.current {
+	height: 400px;
+}
+
+#stylesheet, #style {
+	width: 240px;
+}
+
+#doctypes {
+	width: 200px;
+}
+
+/* Head list classes */
+
+.headlistwrapper {
+	width: 100%;
+}
+
+.selected {
+	border: 1px solid #0A246A;
+	background-color: #B6BDD2;
+}
+
+.toolbar {
+	width: 100%;
+}
+
+#headlist {
+	width: 100%;
+	margin-top: 3px;
+	font-size: 11px;
+}
+
+#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element {
+	display: none;
+}
+
+#addmenu {
+	position: absolute;
+	border: 1px solid gray;
+	display: none;
+	z-index: 100;
+	background-color: white;
+}
+
+#addmenu a {
+	display: block;
+	width: 100%;
+	line-height: 20px;
+	text-decoration: none;
+	background-color: white;
+}
+
+#addmenu a:hover {
+	background-color: #B6BDD2;
+	color: black;
+}
+
+#addmenu span {
+	padding-left: 10px;
+	padding-right: 10px;
+}
+
+#updateElementPanel {
+	display: none;
+}
+
+#script_element .panel_wrapper div.current {
+	height: 108px;
+}
+
+#style_element .panel_wrapper div.current {
+	height: 108px;
+}
+
+#link_element  .panel_wrapper div.current {
+	height: 140px;
+}
+
+#element_script_value {
+	width: 100%;
+	height: 100px;
+}
+
+#element_comment_value {
+	width: 100%;
+	height: 120px;
+}
+
+#element_style_value {
+	width: 100%;
+	height: 100px;
+}
+
+#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title {
+	width: 250px;
+}
+
+.updateElementButton {
+	margin-top: 3px;
+}
+
+/* MSIE specific styles */
+
+* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton {
+	width: 22px;
+	height: 22px;
+}
+
+textarea {
+	height: 55px;
+}
+
+.panel_wrapper div.current {height:420px;}
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js
new file mode 100644
index 0000000..dcf7602
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var b=tinymce.each,a=tinymce.html.Node;tinymce.create("tinymce.plugins.FullPagePlugin",{init:function(c,d){var e=this;e.editor=c;c.addCommand("mceFullPageProperties",function(){c.windowManager.open({file:d+"/fullpage.htm",width:430+parseInt(c.getLang("fullpage.delta_width",0)),height:495+parseInt(c.getLang("fullpage.delta_height",0)),inline:1},{plugin_url:d,data:e._htmlToData()})});c.addButton("fullpage",{title:"fullpage.desc",cmd:"mceFullPageProperties"});c.onBeforeSetConten [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
new file mode 100644
index 0000000..8b49c44
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
@@ -0,0 +1,405 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var each = tinymce.each, Node = tinymce.html.Node;
+
+	tinymce.create('tinymce.plugins.FullPagePlugin', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceFullPageProperties', function() {
+				ed.windowManager.open({
+					file : url + '/fullpage.htm',
+					width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)),
+					height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url,
+					data : t._htmlToData()
+				});
+			});
+
+			// Register buttons
+			ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'});
+
+			ed.onBeforeSetContent.add(t._setContent, t);
+			ed.onGetContent.add(t._getContent, t);
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Fullpage',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		// Private plugin internal methods
+
+		_htmlToData : function() {
+			var headerFragment = this._parseHeader(), data = {}, nodes, elm, matches, editor = this.editor;
+
+			function getAttr(elm, name) {
+				var value = elm.attr(name);
+
+				return value || '';
+			};
+
+			// Default some values
+			data.fontface = editor.getParam("fullpage_default_fontface", "");
+			data.fontsize = editor.getParam("fullpage_default_fontsize", "");
+
+			// Parse XML PI
+			elm = headerFragment.firstChild;
+			if (elm.type == 7) {
+				data.xml_pi = true;
+				matches = /encoding="([^"]+)"/.exec(elm.value);
+				if (matches)
+					data.docencoding = matches[1];
+			}
+
+			// Parse doctype
+			elm = headerFragment.getAll('#doctype')[0];
+			if (elm)
+				data.doctype = '<!DOCTYPE' + elm.value + ">"; 
+
+			// Parse title element
+			elm = headerFragment.getAll('title')[0];
+			if (elm && elm.firstChild) {
+				data.metatitle = elm.firstChild.value;
+			}
+
+			// Parse meta elements
+			each(headerFragment.getAll('meta'), function(meta) {
+				var name = meta.attr('name'), httpEquiv = meta.attr('http-equiv'), matches;
+
+				if (name)
+					data['meta' + name.toLowerCase()] = meta.attr('content');
+				else if (httpEquiv == "Content-Type") {
+					matches = /charset\s*=\s*(.*)\s*/gi.exec(meta.attr('content'));
+
+					if (matches)
+						data.docencoding = matches[1];
+				}
+			});
+
+			// Parse html attribs
+			elm = headerFragment.getAll('html')[0];
+			if (elm)
+				data.langcode = getAttr(elm, 'lang') || getAttr(elm, 'xml:lang');
+	
+			// Parse stylesheet
+			elm = headerFragment.getAll('link')[0];
+			if (elm && elm.attr('rel') == 'stylesheet')
+				data.stylesheet = elm.attr('href');
+
+			// Parse body parts
+			elm = headerFragment.getAll('body')[0];
+			if (elm) {
+				data.langdir = getAttr(elm, 'dir');
+				data.style = getAttr(elm, 'style');
+				data.visited_color = getAttr(elm, 'vlink');
+				data.link_color = getAttr(elm, 'link');
+				data.active_color = getAttr(elm, 'alink');
+			}
+
+			return data;
+		},
+
+		_dataToHtml : function(data) {
+			var headerFragment, headElement, html, elm, value, dom = this.editor.dom;
+
+			function setAttr(elm, name, value) {
+				elm.attr(name, value ? value : undefined);
+			};
+
+			function addHeadNode(node) {
+				if (headElement.firstChild)
+					headElement.insert(node, headElement.firstChild);
+				else
+					headElement.append(node);
+			};
+
+			headerFragment = this._parseHeader();
+			headElement = headerFragment.getAll('head')[0];
+			if (!headElement) {
+				elm = headerFragment.getAll('html')[0];
+				headElement = new Node('head', 1);
+
+				if (elm.firstChild)
+					elm.insert(headElement, elm.firstChild, true);
+				else
+					elm.append(headElement);
+			}
+
+			// Add/update/remove XML-PI
+			elm = headerFragment.firstChild;
+			if (data.xml_pi) {
+				value = 'version="1.0"';
+
+				if (data.docencoding)
+					value += ' encoding="' + data.docencoding + '"';
+
+				if (elm.type != 7) {
+					elm = new Node('xml', 7);
+					headerFragment.insert(elm, headerFragment.firstChild, true);
+				}
+
+				elm.value = value;
+			} else if (elm && elm.type == 7)
+				elm.remove();
+
+			// Add/update/remove doctype
+			elm = headerFragment.getAll('#doctype')[0];
+			if (data.doctype) {
+				if (!elm) {
+					elm = new Node('#doctype', 10);
+
+					if (data.xml_pi)
+						headerFragment.insert(elm, headerFragment.firstChild);
+					else
+						addHeadNode(elm);
+				}
+
+				elm.value = data.doctype.substring(9, data.doctype.length - 1);
+			} else if (elm)
+				elm.remove();
+
+			// Add/update/remove title
+			elm = headerFragment.getAll('title')[0];
+			if (data.metatitle) {
+				if (!elm) {
+					elm = new Node('title', 1);
+					elm.append(new Node('#text', 3)).value = data.metatitle;
+					addHeadNode(elm);
+				}
+			}
+
+			// Add meta encoding
+			if (data.docencoding) {
+				elm = null;
+				each(headerFragment.getAll('meta'), function(meta) {
+					if (meta.attr('http-equiv') == 'Content-Type')
+						elm = meta;
+				});
+
+				if (!elm) {
+					elm = new Node('meta', 1);
+					elm.attr('http-equiv', 'Content-Type');
+					elm.shortEnded = true;
+					addHeadNode(elm);
+				}
+
+				elm.attr('content', 'text/html; charset=' + data.docencoding);
+			}
+
+			// Add/update/remove meta
+			each('keywords,description,author,copyright,robots'.split(','), function(name) {
+				var nodes = headerFragment.getAll('meta'), i, meta, value = data['meta' + name];
+
+				for (i = 0; i < nodes.length; i++) {
+					meta = nodes[i];
+
+					if (meta.attr('name') == name) {
+						if (value)
+							meta.attr('content', value);
+						else
+							meta.remove();
+
+						return;
+					}
+				}
+
+				if (value) {
+					elm = new Node('meta', 1);
+					elm.attr('name', name);
+					elm.attr('content', value);
+					elm.shortEnded = true;
+
+					addHeadNode(elm);
+				}
+			});
+
+			// Add/update/delete link
+			elm = headerFragment.getAll('link')[0];
+			if (elm && elm.attr('rel') == 'stylesheet') {
+				if (data.stylesheet)
+					elm.attr('href', data.stylesheet);
+				else
+					elm.remove();
+			} else if (data.stylesheet) {
+				elm = new Node('link', 1);
+				elm.attr({
+					rel : 'stylesheet',
+					text : 'text/css',
+					href : data.stylesheet
+				});
+				elm.shortEnded = true;
+
+				addHeadNode(elm);
+			}
+
+			// Update body attributes
+			elm = headerFragment.getAll('body')[0];
+			if (elm) {
+				setAttr(elm, 'dir', data.langdir);
+				setAttr(elm, 'style', data.style);
+				setAttr(elm, 'vlink', data.visited_color);
+				setAttr(elm, 'link', data.link_color);
+				setAttr(elm, 'alink', data.active_color);
+
+				// Update iframe body as well
+				dom.setAttribs(this.editor.getBody(), {
+					style : data.style,
+					dir : data.dir,
+					vLink : data.visited_color,
+					link : data.link_color,
+					aLink : data.active_color
+				});
+			}
+
+			// Set html attributes
+			elm = headerFragment.getAll('html')[0];
+			if (elm) {
+				setAttr(elm, 'lang', data.langcode);
+				setAttr(elm, 'xml:lang', data.langcode);
+			}
+
+			// Serialize header fragment and crop away body part
+			html = new tinymce.html.Serializer({
+				validate: false,
+				indent: true,
+				apply_source_formatting : true,
+				indent_before: 'head,html,body,meta,title,script,link,style',
+				indent_after: 'head,html,body,meta,title,script,link,style'
+			}).serialize(headerFragment);
+
+			this.head = html.substring(0, html.indexOf('</body>'));
+		},
+
+		_parseHeader : function() {
+			// Parse the contents with a DOM parser
+			return new tinymce.html.DomParser({
+				validate: false,
+				root_name: '#document'
+			}).parse(this.head);
+		},
+
+		_setContent : function(ed, o) {
+			var self = this, startPos, endPos, content = o.content, headerFragment, styles = '', dom = self.editor.dom, elm;
+
+			function low(s) {
+				return s.replace(/<\/?[A-Z]+/g, function(a) {
+					return a.toLowerCase();
+				})
+			};
+
+			// Ignore raw updated if we already have a head, this will fix issues with undo/redo keeping the head/foot separate
+			if (o.format == 'raw' && self.head)
+				return;
+
+			if (o.source_view && ed.getParam('fullpage_hide_in_source_view'))
+				return;
+
+			// Parse out head, body and footer
+			content = content.replace(/<(\/?)BODY/gi, '<$1body');
+			startPos = content.indexOf('<body');
+
+			if (startPos != -1) {
+				startPos = content.indexOf('>', startPos);
+				self.head = low(content.substring(0, startPos + 1));
+
+				endPos = content.indexOf('</body', startPos);
+				if (endPos == -1)
+					endPos = content.length;
+
+				o.content = content.substring(startPos + 1, endPos);
+				self.foot = low(content.substring(endPos));
+			} else {
+				self.head = this._getDefaultHeader();
+				self.foot = '\n</body>\n</html>';
+			}
+
+			// Parse header and update iframe
+			headerFragment = self._parseHeader();
+			each(headerFragment.getAll('style'), function(node) {
+				if (node.firstChild)
+					styles += node.firstChild.value;
+			});
+
+			elm = headerFragment.getAll('body')[0];
+			if (elm) {
+				dom.setAttribs(self.editor.getBody(), {
+					style : elm.attr('style') || '',
+					dir : elm.attr('dir') || '',
+					vLink : elm.attr('vlink') || '',
+					link : elm.attr('link') || '',
+					aLink : elm.attr('alink') || ''
+				});
+			}
+
+			dom.remove('fullpage_styles');
+
+			if (styles) {
+				dom.add(self.editor.getDoc().getElementsByTagName('head')[0], 'style', {id : 'fullpage_styles'}, styles);
+
+				// Needed for IE 6/7
+				elm = dom.get('fullpage_styles');
+				if (elm.styleSheet)
+					elm.styleSheet.cssText = styles;
+			}
+		},
+
+		_getDefaultHeader : function() {
+			var header = '', editor = this.editor, value, styles = '';
+
+			if (editor.getParam('fullpage_default_xml_pi'))
+				header += '<?xml version="1.0" encoding="' + editor.getParam('fullpage_default_encoding', 'ISO-8859-1') + '" ?>\n';
+
+			header += editor.getParam('fullpage_default_doctype', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
+			header += '\n<html>\n<head>\n';
+
+			if (value = editor.getParam('fullpage_default_title'))
+				header += '<title>' + value + '</title>\n';
+
+			if (value = editor.getParam('fullpage_default_encoding'))
+				header += '<meta http-equiv="Content-Type" content="text/html; charset=' + value + '" />\n';
+
+			if (value = editor.getParam('fullpage_default_font_family'))
+				styles += 'font-family: ' + value + ';';
+
+			if (value = editor.getParam('fullpage_default_font_size'))
+				styles += 'font-size: ' + value + ';';
+
+			if (value = editor.getParam('fullpage_default_text_color'))
+				styles += 'color: ' + value + ';';
+
+			header += '</head>\n<body' + (styles ? ' style="' + styles + '"' : '') + '>\n';
+
+			return header;
+		},
+
+		_getContent : function(ed, o) {
+			var self = this;
+
+			if (!o.source_view || !ed.getParam('fullpage_hide_in_source_view'))
+				o.content = tinymce.trim(self.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(self.foot);
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm
new file mode 100644
index 0000000..200f2b8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm
@@ -0,0 +1,259 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#fullpage_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="js/fullpage.js"></script>
+	<link href="css/fullpage.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="fullpage" style="display: none">
+<form onsubmit="FullPageDialog.update();return false;" name="fullpage" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="meta_tab" class="current"><span><a href="javascript:mcTabs.displayTab('meta_tab','meta_panel');" onmousedown="return false;">{#fullpage_dlg.meta_tab}</a></span></li>
+				<li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#fullpage_dlg.appearance_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="meta_panel" class="panel current">
+				<fieldset>
+					<legend>{#fullpage_dlg.meta_props}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="nowrap"><label for="metatitle">{#fullpage_dlg.meta_title}</label> </td>
+							<td><input type="text" id="metatitle" name="metatitle" value="" class="mceFocus" /></td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="metakeywords">{#fullpage_dlg.meta_keywords}</label> </td>
+							<td><textarea id="metakeywords" name="metakeywords" rows="4"></textarea></td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="metadescription">{#fullpage_dlg.meta_description}</label> </td>
+							<td><textarea id="metadescription" name="metadescription" rows="4"></textarea></td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="metaauthor">{#fullpage_dlg.author}</label> </td>
+							<td><input type="text" id="metaauthor" name="metaauthor" value="" /></td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="metacopyright">{#fullpage_dlg.copyright}</label> </td>
+							<td><input type="text" id="metacopyright" name="metacopyright" value="" /></td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="metarobots">{#fullpage_dlg.meta_robots}</label> </td>
+							<td>
+								<select id="metarobots" name="metarobots">
+											<option value="">{#not_set}</option> 
+											<option value="index,follow">{#fullpage_dlg.meta_index_follow}</option>
+											<option value="index,nofollow">{#fullpage_dlg.meta_index_nofollow}</option>
+											<option value="noindex,follow">{#fullpage_dlg.meta_noindex_follow}</option>
+											<option value="noindex,nofollow">{#fullpage_dlg.meta_noindex_nofollow}</option>
+								</select>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#fullpage_dlg.langprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="docencoding">{#fullpage_dlg.encoding}</label></td> 
+							<td>
+								<select id="docencoding" name="docencoding"> 
+										<option value="">{#not_set}</option>
+								</select>
+							</td> 
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="doctype">{#fullpage_dlg.doctypes}</label> </td>
+							<td>
+								<select id="doctype" name="doctype">
+										<option value="">{#not_set}</option>
+								</select>
+							</td>
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="langcode">{#fullpage_dlg.langcode}</label> </td>
+							<td><input type="text" id="langcode" name="langcode" value="" /></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="langdir">{#fullpage_dlg.langdir}</label></td> 
+							<td>
+								<select id="langdir" name="langdir"> 
+										<option value="">{#not_set}</option> 
+										<option value="ltr">{#fullpage_dlg.ltr}</option> 
+										<option value="rtl">{#fullpage_dlg.rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+						<tr>
+							<td class="nowrap"><label for="xml_pi">{#fullpage_dlg.xml_pi}</label> </td>
+							<td><input type="checkbox" id="xml_pi" name="xml_pi" class="checkbox" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="appearance_panel" class="panel">
+				<fieldset>
+					<legend>{#fullpage_dlg.appearance_textprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="fontface">{#fullpage_dlg.fontface}</label></td> 
+							<td>
+								<select id="fontface" name="fontface" onchange="FullPageDialog.changedStyleProp();">
+										<option value="">{#not_set}</option>
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="fontsize">{#fullpage_dlg.fontsize}</label></td> 
+							<td>
+								<select id="fontsize" name="fontsize" onchange="FullPageDialog.changedStyleProp();">
+										<option value="">{#not_set}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="textcolor">{#fullpage_dlg.textcolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="textcolor" name="textcolor" type="text" value="" size="9" onchange="updateColor('textcolor_pick','textcolor');FullPageDialog.changedStyleProp();" /></td>
+										<td id="textcolor_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#fullpage_dlg.appearance_bgprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="bgimage">{#fullpage_dlg.bgimage}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgimage" name="bgimage" type="text" value="" onchange="FullPageDialog.changedStyleProp();" /></td>
+										<td id="bgimage_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="bgcolor">{#fullpage_dlg.bgcolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');FullPageDialog.changedStyleProp();" /></td>
+										<td id="bgcolor_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#fullpage_dlg.appearance_marginprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="leftmargin">{#fullpage_dlg.left_margin}</label></td> 
+							<td><input id="leftmargin" name="leftmargin" type="text" value="" onchange="FullPageDialog.changedStyleProp();" /></td>
+							<td class="column1"><label for="rightmargin">{#fullpage_dlg.right_margin}</label></td> 
+							<td><input id="rightmargin" name="rightmargin" type="text" value="" onchange="FullPageDialog.changedStyleProp();" /></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="topmargin">{#fullpage_dlg.top_margin}</label></td> 
+							<td><input id="topmargin" name="topmargin" type="text" value="" onchange="FullPageDialog.changedStyleProp();" /></td>
+							<td class="column1"><label for="bottommargin">{#fullpage_dlg.bottom_margin}</label></td> 
+							<td><input id="bottommargin" name="bottommargin" type="text" value="" onchange="FullPageDialog.changedStyleProp();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#fullpage_dlg.appearance_linkprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="link_color">{#fullpage_dlg.link_color}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="link_color" name="link_color" type="text" value="" size="9" onchange="updateColor('link_color_pick','link_color');FullPageDialog.changedStyleProp();" /></td>
+										<td id="link_color_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td>
+
+							<td class="column1"><label for="visited_color">{#fullpage_dlg.visited_color}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="visited_color" name="visited_color" type="text" value="" size="9" onchange="updateColor('visited_color_pick','visited_color');FullPageDialog.changedStyleProp();" /></td>
+										<td id="visited_color_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="active_color">{#fullpage_dlg.active_color}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="active_color" name="active_color" type="text" value="" size="9" onchange="updateColor('active_color_pick','active_color');FullPageDialog.changedStyleProp();" /></td>
+										<td id="active_color_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td>
+
+							<td> </td>
+							<td> </td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#fullpage_dlg.appearance_style}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="stylesheet">{#fullpage_dlg.stylesheet}</label></td> 
+							<td><table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="stylesheet" name="stylesheet" type="text" value="" /></td>
+										<td id="stylesheet_browsercontainer"> </td>
+									</tr>
+								</table></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="style">{#fullpage_dlg.style}</label></td> 
+							<td><input id="style" name="style" type="text" value="" onchange="FullPageDialog.changedStyle();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<input type="submit" id="insert" name="update" value="{#update}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js
new file mode 100644
index 0000000..66eec2d
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js
@@ -0,0 +1,232 @@
+/**
+ * fullpage.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinyMCEPopup.requireLangPack();
+
+	var defaultDocTypes = 
+		'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' +
+		'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' +
+		'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' +
+		'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' +
+		'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' +
+		'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' +
+		'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">';
+
+	var defaultEncodings = 
+		'Western european (iso-8859-1)=iso-8859-1,' +
+		'Central European (iso-8859-2)=iso-8859-2,' +
+		'Unicode (UTF-8)=utf-8,' +
+		'Chinese traditional (Big5)=big5,' +
+		'Cyrillic (iso-8859-5)=iso-8859-5,' +
+		'Japanese (iso-2022-jp)=iso-2022-jp,' +
+		'Greek (iso-8859-7)=iso-8859-7,' +
+		'Korean (iso-2022-kr)=iso-2022-kr,' +
+		'ASCII (us-ascii)=us-ascii';
+
+	var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
+	var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';
+
+	function setVal(id, value) {
+		var elm = document.getElementById(id);
+
+		if (elm) {
+			value = value || '';
+
+			if (elm.nodeName == "SELECT")
+				selectByValue(document.forms[0], id, value);
+			else if (elm.type == "checkbox")
+				elm.checked = !!value;
+			else
+				elm.value = value;
+		}
+	};
+
+	function getVal(id) {
+		var elm = document.getElementById(id);
+
+		if (elm.nodeName == "SELECT")
+			return elm.options[elm.selectedIndex].value;
+
+		if (elm.type == "checkbox")
+			return elm.checked;
+
+		return elm.value;
+	};
+
+	window.FullPageDialog = {
+		changedStyle : function() {
+			var val, styles = tinyMCEPopup.editor.dom.parseStyle(getVal('style'));
+
+			setVal('fontface', styles['font-face']);
+			setVal('fontsize', styles['font-size']);
+			setVal('textcolor', styles['color']);
+
+			if (val = styles['background-image'])
+				setVal('bgimage', val.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"));
+			else
+				setVal('bgimage', '');
+
+			setVal('bgcolor', styles['background-color']);
+
+			// Reset margin form elements
+			setVal('topmargin', '');
+			setVal('rightmargin', '');
+			setVal('bottommargin', '');
+			setVal('leftmargin', '');
+
+			// Expand margin
+			if (val = styles['margin']) {
+				val = val.split(' ');
+				styles['margin-top'] = val[0] || '';
+				styles['margin-right'] = val[1] || val[0] || '';
+				styles['margin-bottom'] = val[2] || val[0] || '';
+				styles['margin-left'] = val[3] || val[0] || '';
+			}
+
+			if (val = styles['margin-top'])
+				setVal('topmargin', val.replace(/px/, ''));
+
+			if (val = styles['margin-right'])
+				setVal('rightmargin', val.replace(/px/, ''));
+
+			if (val = styles['margin-bottom'])
+				setVal('bottommargin', val.replace(/px/, ''));
+
+			if (val = styles['margin-left'])
+				setVal('leftmargin', val.replace(/px/, ''));
+
+			updateColor('bgcolor_pick', 'bgcolor');
+			updateColor('textcolor_pick', 'textcolor');
+		},
+
+		changedStyleProp : function() {
+			var val, dom = tinyMCEPopup.editor.dom, styles = dom.parseStyle(getVal('style'));
+	
+			styles['font-face'] = getVal('fontface');
+			styles['font-size'] = getVal('fontsize');
+			styles['color'] = getVal('textcolor');
+			styles['background-color'] = getVal('bgcolor');
+
+			if (val = getVal('bgimage'))
+				styles['background-image'] = "url('" + val + "')";
+			else
+				styles['background-image'] = '';
+
+			delete styles['margin'];
+
+			if (val = getVal('topmargin'))
+				styles['margin-top'] = val + "px";
+			else
+				styles['margin-top'] = '';
+
+			if (val = getVal('rightmargin'))
+				styles['margin-right'] = val + "px";
+			else
+				styles['margin-right'] = '';
+
+			if (val = getVal('bottommargin'))
+				styles['margin-bottom'] = val + "px";
+			else
+				styles['margin-bottom'] = '';
+
+			if (val = getVal('leftmargin'))
+				styles['margin-left'] = val + "px";
+			else
+				styles['margin-left'] = '';
+
+			// Serialize, parse and reserialize this will compress redundant styles
+			setVal('style', dom.serializeStyle(dom.parseStyle(dom.serializeStyle(styles))));
+			this.changedStyle();
+		},
+		
+		update : function() {
+			var data = {};
+
+			tinymce.each(tinyMCEPopup.dom.select('select,input,textarea'), function(node) {
+				data[node.id] = getVal(node.id);
+			});
+
+			tinyMCEPopup.editor.plugins.fullpage._dataToHtml(data);
+			tinyMCEPopup.close();
+		}
+	};
+	
+	function init() {
+		var form = document.forms[0], i, item, list, editor = tinyMCEPopup.editor;
+
+		// Setup doctype select box
+		list = editor.getParam("fullpage_doctypes", defaultDocTypes).split(',');
+		for (i = 0; i < list.length; i++) {
+			item = list[i].split('=');
+
+			if (item.length > 1)
+				addSelectValue(form, 'doctype', item[0], item[1]);
+		}
+
+		// Setup fonts select box
+		list = editor.getParam("fullpage_fonts", defaultFontNames).split(';');
+		for (i = 0; i < list.length; i++) {
+			item = list[i].split('=');
+
+			if (item.length > 1)
+				addSelectValue(form, 'fontface', item[0], item[1]);
+		}
+
+		// Setup fontsize select box
+		list = editor.getParam("fullpage_fontsizes", defaultFontSizes).split(',');
+		for (i = 0; i < list.length; i++)
+			addSelectValue(form, 'fontsize', list[i], list[i]);
+
+		// Setup encodings select box
+		list = editor.getParam("fullpage_encodings", defaultEncodings).split(',');
+		for (i = 0; i < list.length; i++) {
+			item = list[i].split('=');
+
+			if (item.length > 1)
+				addSelectValue(form, 'docencoding', item[0], item[1]);
+		}
+
+		// Setup color pickers
+		document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+		document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');
+		document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');
+		document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');
+		document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');
+		document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');
+		document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');
+
+		// Resize some elements
+		if (isVisible('stylesheetbrowser'))
+			document.getElementById('stylesheet').style.width = '220px';
+
+		if (isVisible('link_href_browser'))
+			document.getElementById('element_link_href').style.width = '230px';
+
+		if (isVisible('bgimage_browser'))
+			document.getElementById('bgimage').style.width = '210px';
+
+		// Update form
+		tinymce.each(tinyMCEPopup.getWindowArg('data'), function(value, key) {
+			setVal(key, value);
+		});
+
+		FullPageDialog.changedStyle();
+
+		// Update colors
+		updateColor('textcolor_pick', 'textcolor');
+		updateColor('bgcolor_pick', 'bgcolor');
+		updateColor('visited_color_pick', 'visited_color');
+		updateColor('active_color_pick', 'active_color');
+		updateColor('link_color_pick', 'link_color');
+	};
+
+	tinyMCEPopup.onInit.add(init);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js
new file mode 100644
index 0000000..516edc7
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.fullpage_dlg',{title:"Document Properties","meta_tab":"General","appearance_tab":"Appearance","advanced_tab":"Advanced","meta_props":"Meta Information",langprops:"Language and Encoding","meta_title":"Title","meta_keywords":"Keywords","meta_description":"Description","meta_robots":"Robots",doctypes:"Doctype",langcode:"Language Code",langdir:"Language Direction",ltr:"Left to Right",rtl:"Right to Left","xml_pi":"XML Declaration",encoding:"Character Encoding","appearance_ [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js
new file mode 100644
index 0000000..a6456f8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
new file mode 100644
index 0000000..42af070
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
@@ -0,0 +1,159 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var DOM = tinymce.DOM;
+
+	tinymce.create('tinymce.plugins.FullScreenPlugin', {
+		init : function(ed, url) {
+			var t = this, s = {}, vp, posCss;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceFullScreen', function() {
+				var win, de = DOM.doc.documentElement;
+
+				if (ed.getParam('fullscreen_is_enabled')) {
+					if (ed.getParam('fullscreen_new_window'))
+						closeFullscreen(); // Call to close in new window
+					else {
+						DOM.win.setTimeout(function() {
+							tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);
+							tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent());
+							tinyMCE.remove(ed);
+							DOM.remove('mce_fullscreen_container');
+							de.style.overflow = ed.getParam('fullscreen_html_overflow');
+							DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));
+							DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));
+							tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings
+						}, 10);
+					}
+
+					return;
+				}
+
+				if (ed.getParam('fullscreen_new_window')) {
+					win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
+					try {
+						win.resizeTo(screen.availWidth, screen.availHeight);
+					} catch (e) {
+						// Ignore
+					}
+				} else {
+					tinyMCE.oldSettings = tinyMCE.settings; // Store old settings
+					s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';
+					s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);
+					vp = DOM.getViewPort();
+					s.fullscreen_scrollx = vp.x;
+					s.fullscreen_scrolly = vp.y;
+
+					// Fixes an Opera bug where the scrollbars doesn't reappear
+					if (tinymce.isOpera && s.fullscreen_overflow == 'visible')
+						s.fullscreen_overflow = 'auto';
+
+					// Fixes an IE bug where horizontal scrollbars would appear
+					if (tinymce.isIE && s.fullscreen_overflow == 'scroll')
+						s.fullscreen_overflow = 'auto';
+
+					// Fixes an IE bug where the scrollbars doesn't reappear
+					if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))
+						s.fullscreen_html_overflow = 'auto'; 
+
+					if (s.fullscreen_overflow == '0px')
+						s.fullscreen_overflow = '';
+
+					DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');
+					de.style.overflow = 'hidden'; //Fix for IE6/7
+					vp = DOM.getViewPort();
+					DOM.win.scrollTo(0, 0);
+
+					if (tinymce.isIE)
+						vp.h -= 1;
+
+					// Use fixed position if it exists
+					if (tinymce.isIE6)
+						posCss = 'absolute;top:' + vp.y;
+					else
+						posCss = 'fixed;top:0';
+
+					n = DOM.add(DOM.doc.body, 'div', {
+						id : 'mce_fullscreen_container', 
+						style : 'position:' + posCss + ';left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
+					DOM.add(n, 'div', {id : 'mce_fullscreen'});
+
+					tinymce.each(ed.settings, function(v, n) {
+						s[n] = v;
+					});
+
+					s.id = 'mce_fullscreen';
+					s.width = n.clientWidth;
+					s.height = n.clientHeight - 15;
+					s.fullscreen_is_enabled = true;
+					s.fullscreen_editor_id = ed.id;
+					s.theme_advanced_resizing = false;
+					s.save_onsavecallback = function() {
+						ed.setContent(tinyMCE.get(s.id).getContent());
+						ed.execCommand('mceSave');
+					};
+
+					tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {
+						s[k] = v;
+					});
+
+					if (s.theme_advanced_toolbar_location === 'external')
+						s.theme_advanced_toolbar_location = 'top';
+
+					t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);
+					t.fullscreenEditor.onInit.add(function() {
+						t.fullscreenEditor.setContent(ed.getContent());
+						t.fullscreenEditor.focus();
+					});
+
+					t.fullscreenEditor.render();
+
+					t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');
+					t.fullscreenElement.update();
+					//document.body.overflow = 'hidden';
+
+					t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {
+						var vp = tinymce.DOM.getViewPort(), fed = t.fullscreenEditor, outerSize, innerSize;
+
+						// Get outer/inner size to get a delta size that can be used to calc the new iframe size
+						outerSize = fed.dom.getSize(fed.getContainer().firstChild);
+						innerSize = fed.dom.getSize(fed.getContainer().getElementsByTagName('iframe')[0]);
+
+						fed.theme.resizeTo(vp.w - outerSize.w + innerSize.w, vp.h - outerSize.h + innerSize.h);
+					});
+				}
+			});
+
+			// Register buttons
+			ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});
+
+			ed.onNodeChange.add(function(ed, cm) {
+				cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Fullscreen',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm
new file mode 100644
index 0000000..496a2f6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+	<script type="text/javascript" src="../../tiny_mce.js"></script>
+	<script type="text/javascript">
+		function patchCallback(settings, key) {
+			if (settings[key])
+				settings[key] = "window.opener." + settings[key];
+		}
+
+		var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id;
+
+		// Clone array
+		for (var n in paSe)
+			settings[n] = paSe[n];
+
+		// Override options for fullscreen
+		for (var n in paSe.fullscreen_settings)
+			settings[n] = paSe.fullscreen_settings[n];
+
+		// Patch callbacks, make them point to window.opener
+		patchCallback(settings, 'urlconverter_callback');
+		patchCallback(settings, 'insertlink_callback');
+		patchCallback(settings, 'insertimage_callback');
+		patchCallback(settings, 'setupcontent_callback');
+		patchCallback(settings, 'save_callback');
+		patchCallback(settings, 'onchange_callback');
+		patchCallback(settings, 'init_instance_callback');
+		patchCallback(settings, 'file_browser_callback');
+		patchCallback(settings, 'cleanup_callback');
+		patchCallback(settings, 'execcommand_callback');
+		patchCallback(settings, 'oninit');
+
+		// Set options
+		delete settings.id;
+		settings['mode'] = 'exact';
+		settings['elements'] = 'fullscreenarea';
+		settings['add_unload_trigger'] = false;
+		settings['ask'] = false;
+		settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();
+		settings['fullscreen_is_enabled'] = true;
+		settings['fullscreen_editor_id'] = oeID;
+		settings['theme_advanced_resizing'] = false;
+		settings['strict_loading_mode'] = true;
+
+		settings.save_onsavecallback = function() {
+			window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});
+			window.opener.tinyMCE.get(oeID).execCommand('mceSave');
+			window.close();
+		};
+
+		function unloadHandler(e) {
+			moveContent();
+		}
+
+		function moveContent() {
+			window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());
+		}
+
+		function closeFullscreen() {
+			moveContent();
+			window.close();
+		}
+
+		function doParentSubmit() {
+			moveContent();
+
+			if (window.opener.tinyMCE.selectedInstance.formElement.form)
+				window.opener.tinyMCE.selectedInstance.formElement.form.submit();
+
+			window.close();
+
+			return false;
+		}
+
+		function render() {
+			var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;
+
+			e.value = window.opener.tinyMCE.get(oeID).getContent();
+
+			vp = dom.getViewPort();
+			settings.width = vp.w;
+			settings.height = vp.h - 15;
+
+			tinymce.dom.Event.add(window, 'resize', function() {
+				var vp = dom.getViewPort();
+
+				tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);
+			});
+
+			tinyMCE.init(settings);
+		}
+
+		// Add onunload
+		tinymce.dom.Event.add(window, "beforeunload", unloadHandler);
+	</script>
+</head>
+<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">
+<form onsubmit="doParentSubmit();">
+<textarea id="fullscreenarea" style="width:100%; height:100%"></textarea>
+</form>
+
+<script type="text/javascript">
+	render();
+</script>
+
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js
new file mode 100644
index 0000000..e9cba10
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell:  [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js
new file mode 100644
index 0000000..61edf1e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js
@@ -0,0 +1,54 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.IESpell', {
+		init : function(ed, url) {
+			var t = this, sp;
+
+			if (!tinymce.isIE)
+				return;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceIESpell', function() {
+				try {
+					sp = new ActiveXObject("ieSpell.ieSpellExtension");
+					sp.CheckDocumentNode(ed.getDoc().documentElement);
+				} catch (e) {
+					if (e.number == -2146827859) {
+						ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) {
+							if (s)
+								window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');
+						});
+					} else
+						ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number);
+				}
+			});
+
+			// Register buttons
+			ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'IESpell (IE Only)',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js
new file mode 100644
index 0000000..8bb96f9
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;tinymce.create("tinymce.plugins.InlinePopups",{init:function(f,g){f.onBeforeRenderUI.add(function(){f.windowManager=new tinymce.InlineWindowManager(f);d.loadCSS(g+"/skins/"+(f.settings.inlinepopups_skin||"clearlooks2")+"/window.css")})},getInfo:function(){return{longname:"InlinePopups",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
new file mode 100644
index 0000000..2a6f3ad
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
@@ -0,0 +1,699 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;
+
+	tinymce.create('tinymce.plugins.InlinePopups', {
+		init : function(ed, url) {
+			// Replace window manager
+			ed.onBeforeRenderUI.add(function() {
+				ed.windowManager = new tinymce.InlineWindowManager(ed);
+				DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css");
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'InlinePopups',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', {
+		InlineWindowManager : function(ed) {
+			var t = this;
+
+			t.parent(ed);
+			t.zIndex = 300000;
+			t.count = 0;
+			t.windows = {};
+		},
+
+		open : function(f, p) {
+			var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u, parentWindow;
+
+			f = f || {};
+			p = p || {};
+
+			// Run native windows
+			if (!f.inline)
+				return t.parent(f, p);
+
+			parentWindow = t._frontWindow();
+			if (parentWindow && DOM.get(parentWindow.id + '_ifr')) {
+				parentWindow.focussedElement = DOM.get(parentWindow.id + '_ifr').contentWindow.document.activeElement;
+			}
+			
+			// Only store selection if the type is a normal window
+			if (!f.type)
+				t.bookmark = ed.selection.getBookmark(1);
+
+			id = DOM.uniqueId();
+			vp = DOM.getViewPort();
+			f.width = parseInt(f.width || 320);
+			f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0);
+			f.min_width = parseInt(f.min_width || 150);
+			f.min_height = parseInt(f.min_height || 100);
+			f.max_width = parseInt(f.max_width || 2000);
+			f.max_height = parseInt(f.max_height || 2000);
+			f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0)));
+			f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0)));
+			f.movable = f.resizable = true;
+			p.mce_width = f.width;
+			p.mce_height = f.height;
+			p.mce_inline = true;
+			p.mce_window_id = id;
+			p.mce_auto_focus = f.auto_focus;
+
+			// Transpose
+//			po = DOM.getPos(ed.getContainer());
+//			f.left -= po.x;
+//			f.top -= po.y;
+
+			t.features = f;
+			t.params = p;
+			t.onOpen.dispatch(t, f, p);
+
+			if (f.type) {
+				opt += ' mceModal';
+
+				if (f.type)
+					opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1);
+
+				f.resizable = false;
+			}
+
+			if (f.statusbar)
+				opt += ' mceStatusbar';
+
+			if (f.resizable)
+				opt += ' mceResizable';
+
+			if (f.minimizable)
+				opt += ' mceMinimizable';
+
+			if (f.maximizable)
+				opt += ' mceMaximizable';
+
+			if (f.movable)
+				opt += ' mceMovable';
+
+			// Create DOM objects
+			t._addAll(DOM.doc.body, 
+				['div', {id : id, role : 'dialog', 'aria-labelledby': f.type ? id + '_content' : id + '_title', 'class' : (ed.settings.inlinepopups_skin || 'clearlooks2') + (tinymce.isIE && window.getSelection ? ' ie9' : ''), style : 'width:100px;height:100px'}, 
+					['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt},
+						['div', {id : id + '_top', 'class' : 'mceTop'}, 
+							['div', {'class' : 'mceLeft'}],
+							['div', {'class' : 'mceCenter'}],
+							['div', {'class' : 'mceRight'}],
+							['span', {id : id + '_title'}, f.title || '']
+						],
+
+						['div', {id : id + '_middle', 'class' : 'mceMiddle'}, 
+							['div', {id : id + '_left', 'class' : 'mceLeft', tabindex : '0'}],
+							['span', {id : id + '_content'}],
+							['div', {id : id + '_right', 'class' : 'mceRight', tabindex : '0'}]
+						],
+
+						['div', {id : id + '_bottom', 'class' : 'mceBottom'},
+							['div', {'class' : 'mceLeft'}],
+							['div', {'class' : 'mceCenter'}],
+							['div', {'class' : 'mceRight'}],
+							['span', {id : id + '_status'}, 'Content']
+						],
+
+						['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}],
+						['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
+						['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
+						['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
+						['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
+						['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}],
+						['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}],
+						['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}],
+						['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}],
+						['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}],
+						['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}],
+						['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}],
+						['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}]
+					]
+				]
+			);
+
+			DOM.setStyles(id, {top : -10000, left : -10000});
+
+			// Fix gecko rendering bug, where the editors iframe messed with window contents
+			if (tinymce.isGecko)
+				DOM.setStyle(id, 'overflow', 'auto');
+
+			// Measure borders
+			if (!f.type) {
+				dw += DOM.get(id + '_left').clientWidth;
+				dw += DOM.get(id + '_right').clientWidth;
+				dh += DOM.get(id + '_top').clientHeight;
+				dh += DOM.get(id + '_bottom').clientHeight;
+			}
+
+			// Resize window
+			DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh});
+
+			u = f.url || f.file;
+			if (u) {
+				if (tinymce.relaxedDomain)
+					u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;
+
+				u = tinymce._addVer(u);
+			}
+
+			if (!f.type) {
+				DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'});
+				DOM.setStyles(id + '_ifr', {width : f.width, height : f.height});
+				DOM.setAttrib(id + '_ifr', 'src', u);
+			} else {
+				DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok');
+
+				if (f.type == 'confirm')
+					DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel');
+
+				DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'});
+				DOM.setHTML(id + '_content', f.content.replace('\n', '<br />'));
+				
+				Event.add(id, 'keyup', function(evt) {
+					var VK_ESCAPE = 27;
+					if (evt.keyCode === VK_ESCAPE) {
+						f.button_func(false);
+						return Event.cancel(evt);
+					}
+				});
+
+				Event.add(id, 'keydown', function(evt) {
+					var cancelButton, VK_TAB = 9;
+					if (evt.keyCode === VK_TAB) {
+						cancelButton = DOM.select('a.mceCancel', id + '_wrapper')[0];
+						if (cancelButton && cancelButton !== evt.target) {
+							cancelButton.focus();
+						} else {
+							DOM.get(id + '_ok').focus();
+						}
+						return Event.cancel(evt);
+					}
+				});
+			}
+
+			// Register events
+			mdf = Event.add(id, 'mousedown', function(e) {
+				var n = e.target, w, vp;
+
+				w = t.windows[id];
+				t.focus(id);
+
+				if (n.nodeName == 'A' || n.nodeName == 'a') {
+					if (n.className == 'mceClose') {
+						t.close(null, id);
+						return Event.cancel(e);
+					} else if (n.className == 'mceMax') {
+						w.oldPos = w.element.getXY();
+						w.oldSize = w.element.getSize();
+
+						vp = DOM.getViewPort();
+
+						// Reduce viewport size to avoid scrollbars
+						vp.w -= 2;
+						vp.h -= 2;
+
+						w.element.moveTo(vp.x, vp.y);
+						w.element.resizeTo(vp.w, vp.h);
+						DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight});
+						DOM.addClass(id + '_wrapper', 'mceMaximized');
+					} else if (n.className == 'mceMed') {
+						// Reset to old size
+						w.element.moveTo(w.oldPos.x, w.oldPos.y);
+						w.element.resizeTo(w.oldSize.w, w.oldSize.h);
+						w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight);
+
+						DOM.removeClass(id + '_wrapper', 'mceMaximized');
+					} else if (n.className == 'mceMove')
+						return t._startDrag(id, e, n.className);
+					else if (DOM.hasClass(n, 'mceResize'))
+						return t._startDrag(id, e, n.className.substring(13));
+				}
+			});
+
+			clf = Event.add(id, 'click', function(e) {
+				var n = e.target;
+
+				t.focus(id);
+
+				if (n.nodeName == 'A' || n.nodeName == 'a') {
+					switch (n.className) {
+						case 'mceClose':
+							t.close(null, id);
+							return Event.cancel(e);
+
+						case 'mceButton mceOk':
+						case 'mceButton mceCancel':
+							f.button_func(n.className == 'mceButton mceOk');
+							return Event.cancel(e);
+					}
+				}
+			});
+			
+			// Make sure the tab order loops within the dialog.
+			Event.add([id + '_left', id + '_right'], 'focus', function(evt) {
+				var iframe = DOM.get(id + '_ifr');
+				if (iframe) {
+					var body = iframe.contentWindow.document.body;
+					var focusable = DOM.select(':input:enabled,*[tabindex=0]', body);
+					if (evt.target.id === (id + '_left')) {
+						focusable[focusable.length - 1].focus();
+					} else {
+						focusable[0].focus();
+					}
+				} else {
+					DOM.get(id + '_ok').focus();
+				}
+			});
+			
+			// Add window
+			w = t.windows[id] = {
+				id : id,
+				mousedown_func : mdf,
+				click_func : clf,
+				element : new Element(id, {blocker : 1, container : ed.getContainer()}),
+				iframeElement : new Element(id + '_ifr'),
+				features : f,
+				deltaWidth : dw,
+				deltaHeight : dh
+			};
+
+			w.iframeElement.on('focus', function() {
+				t.focus(id);
+			});
+
+			// Setup blocker
+			if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') {
+				DOM.add(DOM.doc.body, 'div', {
+					id : 'mceModalBlocker',
+					'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',
+					style : {zIndex : t.zIndex - 1}
+				});
+
+				DOM.show('mceModalBlocker'); // Reduces flicker in IE
+				DOM.setAttrib(DOM.doc.body, 'aria-hidden', 'true');
+			} else
+				DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);
+
+			if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE && !DOM.boxModel))
+				DOM.setStyles('mceModalBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2});
+
+			DOM.setAttrib(id, 'aria-hidden', 'false');
+			t.focus(id);
+			t._fixIELayout(id, 1);
+
+			// Focus ok button
+			if (DOM.get(id + '_ok'))
+				DOM.get(id + '_ok').focus();
+			t.count++;
+
+			return w;
+		},
+
+		focus : function(id) {
+			var t = this, w;
+
+			if (w = t.windows[id]) {
+				w.zIndex = this.zIndex++;
+				w.element.setStyle('zIndex', w.zIndex);
+				w.element.update();
+
+				id = id + '_wrapper';
+				DOM.removeClass(t.lastId, 'mceFocus');
+				DOM.addClass(id, 'mceFocus');
+				t.lastId = id;
+				
+				if (w.focussedElement) {
+					w.focussedElement.focus();
+				} else if (DOM.get(id + '_ok')) {
+					DOM.get(w.id + '_ok').focus();
+				} else if (DOM.get(w.id + '_ifr')) {
+					DOM.get(w.id + '_ifr').focus();
+				}
+			}
+		},
+
+		_addAll : function(te, ne) {
+			var i, n, t = this, dom = tinymce.DOM;
+
+			if (is(ne, 'string'))
+				te.appendChild(dom.doc.createTextNode(ne));
+			else if (ne.length) {
+				te = te.appendChild(dom.create(ne[0], ne[1]));
+
+				for (i=2; i<ne.length; i++)
+					t._addAll(te, ne[i]);
+			}
+		},
+
+		_startDrag : function(id, se, ac) {
+			var t = this, mu, mm, d = DOM.doc, eb, w = t.windows[id], we = w.element, sp = we.getXY(), p, sz, ph, cp, vp, sx, sy, sex, sey, dx, dy, dw, dh;
+
+			// Get positons and sizes
+//			cp = DOM.getPos(t.editor.getContainer());
+			cp = {x : 0, y : 0};
+			vp = DOM.getViewPort();
+
+			// Reduce viewport size to avoid scrollbars while dragging
+			vp.w -= 2;
+			vp.h -= 2;
+
+			sex = se.screenX;
+			sey = se.screenY;
+			dx = dy = dw = dh = 0;
+
+			// Handle mouse up
+			mu = Event.add(d, 'mouseup', function(e) {
+				Event.remove(d, 'mouseup', mu);
+				Event.remove(d, 'mousemove', mm);
+
+				if (eb)
+					eb.remove();
+
+				we.moveBy(dx, dy);
+				we.resizeBy(dw, dh);
+				sz = we.getSize();
+				DOM.setStyles(id + '_ifr', {width : sz.w - w.deltaWidth, height : sz.h - w.deltaHeight});
+				t._fixIELayout(id, 1);
+
+				return Event.cancel(e);
+			});
+
+			if (ac != 'Move')
+				startMove();
+
+			function startMove() {
+				if (eb)
+					return;
+
+				t._fixIELayout(id, 0);
+
+				// Setup event blocker
+				DOM.add(d.body, 'div', {
+					id : 'mceEventBlocker',
+					'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),
+					style : {zIndex : t.zIndex + 1}
+				});
+
+				if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))
+					DOM.setStyles('mceEventBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2});
+
+				eb = new Element('mceEventBlocker');
+				eb.update();
+
+				// Setup placeholder
+				p = we.getXY();
+				sz = we.getSize();
+				sx = cp.x + p.x - vp.x;
+				sy = cp.y + p.y - vp.y;
+				DOM.add(eb.get(), 'div', {id : 'mcePlaceHolder', 'class' : 'mcePlaceHolder', style : {left : sx, top : sy, width : sz.w, height : sz.h}});
+				ph = new Element('mcePlaceHolder');
+			};
+
+			// Handle mouse move/drag
+			mm = Event.add(d, 'mousemove', function(e) {
+				var x, y, v;
+
+				startMove();
+
+				x = e.screenX - sex;
+				y = e.screenY - sey;
+
+				switch (ac) {
+					case 'ResizeW':
+						dx = x;
+						dw = 0 - x;
+						break;
+
+					case 'ResizeE':
+						dw = x;
+						break;
+
+					case 'ResizeN':
+					case 'ResizeNW':
+					case 'ResizeNE':
+						if (ac == "ResizeNW") {
+							dx = x;
+							dw = 0 - x;
+						} else if (ac == "ResizeNE")
+							dw = x;
+
+						dy = y;
+						dh = 0 - y;
+						break;
+
+					case 'ResizeS':
+					case 'ResizeSW':
+					case 'ResizeSE':
+						if (ac == "ResizeSW") {
+							dx = x;
+							dw = 0 - x;
+						} else if (ac == "ResizeSE")
+							dw = x;
+
+						dh = y;
+						break;
+
+					case 'mceMove':
+						dx = x;
+						dy = y;
+						break;
+				}
+
+				// Boundary check
+				if (dw < (v = w.features.min_width - sz.w)) {
+					if (dx !== 0)
+						dx += dw - v;
+
+					dw = v;
+				}
+	
+				if (dh < (v = w.features.min_height - sz.h)) {
+					if (dy !== 0)
+						dy += dh - v;
+
+					dh = v;
+				}
+
+				dw = Math.min(dw, w.features.max_width - sz.w);
+				dh = Math.min(dh, w.features.max_height - sz.h);
+				dx = Math.max(dx, vp.x - (sx + vp.x));
+				dy = Math.max(dy, vp.y - (sy + vp.y));
+				dx = Math.min(dx, (vp.w + vp.x) - (sx + sz.w + vp.x));
+				dy = Math.min(dy, (vp.h + vp.y) - (sy + sz.h + vp.y));
+
+				// Move if needed
+				if (dx + dy !== 0) {
+					if (sx + dx < 0)
+						dx = 0;
+	
+					if (sy + dy < 0)
+						dy = 0;
+
+					ph.moveTo(sx + dx, sy + dy);
+				}
+
+				// Resize if needed
+				if (dw + dh !== 0)
+					ph.resizeTo(sz.w + dw, sz.h + dh);
+
+				return Event.cancel(e);
+			});
+
+			return Event.cancel(se);
+		},
+
+		resizeBy : function(dw, dh, id) {
+			var w = this.windows[id];
+
+			if (w) {
+				w.element.resizeBy(dw, dh);
+				w.iframeElement.resizeBy(dw, dh);
+			}
+		},
+
+		close : function(win, id) {
+			var t = this, w, d = DOM.doc, fw, id;
+
+			id = t._findId(id || win);
+
+			// Probably not inline
+			if (!t.windows[id]) {
+				t.parent(win);
+				return;
+			}
+
+			t.count--;
+
+			if (t.count == 0) {
+				DOM.remove('mceModalBlocker');
+				DOM.setAttrib(DOM.doc.body, 'aria-hidden', 'false');
+				t.editor.focus();
+			}
+
+			if (w = t.windows[id]) {
+				t.onClose.dispatch(t);
+				Event.remove(d, 'mousedown', w.mousedownFunc);
+				Event.remove(d, 'click', w.clickFunc);
+				Event.clear(id);
+				Event.clear(id + '_ifr');
+
+				DOM.setAttrib(id + '_ifr', 'src', 'javascript:""'); // Prevent leak
+				w.element.remove();
+				delete t.windows[id];
+
+				fw = t._frontWindow();
+
+				if (fw)
+					t.focus(fw.id);
+			}
+		},
+		
+		// Find front most window
+		_frontWindow : function() {
+			var fw, ix = 0;
+			// Find front most window and focus that
+			each (this.windows, function(w) {
+				if (w.zIndex > ix) {
+					fw = w;
+					ix = w.zIndex;
+				}
+			});
+			return fw;
+		},
+
+		setTitle : function(w, ti) {
+			var e;
+
+			w = this._findId(w);
+
+			if (e = DOM.get(w + '_title'))
+				e.innerHTML = DOM.encode(ti);
+		},
+
+		alert : function(txt, cb, s) {
+			var t = this, w;
+
+			w = t.open({
+				title : t,
+				type : 'alert',
+				button_func : function(s) {
+					if (cb)
+						cb.call(s || t, s);
+
+					t.close(null, w.id);
+				},
+				content : DOM.encode(t.editor.getLang(txt, txt)),
+				inline : 1,
+				width : 400,
+				height : 130
+			});
+		},
+
+		confirm : function(txt, cb, s) {
+			var t = this, w;
+
+			w = t.open({
+				title : t,
+				type : 'confirm',
+				button_func : function(s) {
+					if (cb)
+						cb.call(s || t, s);
+
+					t.close(null, w.id);
+				},
+				content : DOM.encode(t.editor.getLang(txt, txt)),
+				inline : 1,
+				width : 400,
+				height : 130
+			});
+		},
+
+		// Internal functions
+
+		_findId : function(w) {
+			var t = this;
+
+			if (typeof(w) == 'string')
+				return w;
+
+			each(t.windows, function(wo) {
+				var ifr = DOM.get(wo.id + '_ifr');
+
+				if (ifr && w == ifr.contentWindow) {
+					w = wo.id;
+					return false;
+				}
+			});
+
+			return w;
+		},
+
+		_fixIELayout : function(id, s) {
+			var w, img;
+
+			if (!tinymce.isIE6)
+				return;
+
+			// Fixes the bug where hover flickers and does odd things in IE6
+			each(['n','s','w','e','nw','ne','sw','se'], function(v) {
+				var e = DOM.get(id + '_resize_' + v);
+
+				DOM.setStyles(e, {
+					width : s ? e.clientWidth : '',
+					height : s ? e.clientHeight : '',
+					cursor : DOM.getStyle(e, 'cursor', 1)
+				});
+
+				DOM.setStyle(id + "_bottom", 'bottom', '-1px');
+
+				e = 0;
+			});
+
+			// Fixes graphics glitch
+			if (w = this.windows[id]) {
+				// Fixes rendering bug after resize
+				w.element.hide();
+				w.element.show();
+
+				// Forced a repaint of the window
+				//DOM.get(id).style.filter = '';
+
+				// IE has a bug where images used in CSS won't get loaded
+				// sometimes when the cache in the browser is disabled
+				// This fix tries to solve it by loading the images using the image object
+				each(DOM.select('div,a', id), function(e, i) {
+					if (e.currentStyle.backgroundImage != 'none') {
+						img = new Image();
+						img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1');
+					}
+				});
+
+				DOM.get(id).style.filter = '';
+			}
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups);
+})();
+
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif
new file mode 100644
index 0000000..2191398
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif
new file mode 100644
index 0000000..f957e49
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif
new file mode 100644
index 0000000..6baf64a
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif
new file mode 100644
index 0000000..20acbbf
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif
new file mode 100644
index 0000000..d5de1cc
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif
new file mode 100644
index 0000000..c2a2ad4
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif
new file mode 100644
index 0000000..0b4cc36
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
new file mode 100644
index 0000000..a50d4fc
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
@@ -0,0 +1,90 @@
+/* Clearlooks 2 */
+
+/* Reset */
+.clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
+
+/* General */
+.clearlooks2 {position:absolute; direction:ltr}
+.clearlooks2 .mceWrapper {position:static}
+.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
+.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)}
+.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none}
+
+/* Top */
+.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px}
+.clearlooks2 .mceTop .mceLeft {width:6px; background:url(img/corners.gif)}
+.clearlooks2 .mceTop .mceCenter {right:6px; width:100%; height:23px; background:url(img/horizontal.gif) 12px 0; clip:rect(auto auto auto 12px)}
+.clearlooks2 .mceTop .mceRight {right:0; width:6px; height:23px; background:url(img/corners.gif) -12px 0}
+.clearlooks2 .mceTop span {width:100%; text-align:center; vertical-align:middle; line-height:23px; font-weight:bold}
+.clearlooks2 .mceFocus .mceTop .mceLeft {background:url(img/corners.gif) -6px 0}
+.clearlooks2 .mceFocus .mceTop .mceCenter {background:url(img/horizontal.gif) 0 -23px}
+.clearlooks2 .mceFocus .mceTop .mceRight {background:url(img/corners.gif) -18px 0}
+.clearlooks2 .mceFocus .mceTop span {color:#FFF}
+
+/* Middle */
+.clearlooks2 .mceMiddle, .clearlooks2 .mceMiddle div {top:0}
+.clearlooks2 .mceMiddle {width:100%; height:100%; clip:rect(23px auto auto auto)}
+.clearlooks2 .mceMiddle .mceLeft {left:0; width:5px; height:100%; background:url(img/vertical.gif) -5px 0}
+.clearlooks2 .mceMiddle span {top:23px; left:5px; width:100%; height:100%; background:#FFF}
+.clearlooks2 .mceMiddle .mceRight {right:0; width:5px; height:100%; background:url(img/vertical.gif)}
+
+/* Bottom */
+.clearlooks2 .mceBottom, .clearlooks2 .mceBottom div {height:6px}
+.clearlooks2 .mceBottom {left:0; bottom:0; width:100%}
+.clearlooks2 .mceBottom div {top:0}
+.clearlooks2 .mceBottom .mceLeft {left:0; width:5px; background:url(img/corners.gif) -34px -6px}
+.clearlooks2 .mceBottom .mceCenter {left:5px; width:100%; background:url(img/horizontal.gif) 0 -46px}
+.clearlooks2 .mceBottom .mceRight {right:0; width:5px; background: url(img/corners.gif) -34px 0}
+.clearlooks2 .mceBottom span {display:none}
+.clearlooks2 .mceStatusbar .mceBottom, .clearlooks2 .mceStatusbar .mceBottom div {height:23px}
+.clearlooks2 .mceStatusbar .mceBottom .mceLeft {background:url(img/corners.gif) -29px 0}
+.clearlooks2 .mceStatusbar .mceBottom .mceCenter {background:url(img/horizontal.gif) 0 -52px}
+.clearlooks2 .mceStatusbar .mceBottom .mceRight {background:url(img/corners.gif) -24px 0}
+.clearlooks2 .mceStatusbar .mceBottom span {display:block; left:7px; font-family:Arial, Verdana; font-size:11px; line-height:23px}
+
+/* Actions */
+.clearlooks2 a {width:29px; height:16px; top:3px;}
+.clearlooks2 .mceClose {right:6px; background:url(img/buttons.gif) -87px 0}
+.clearlooks2 .mceMin {display:none; right:68px; background:url(img/buttons.gif) 0 0}
+.clearlooks2 .mceMed {display:none; right:37px; background:url(img/buttons.gif) -29px 0}
+.clearlooks2 .mceMax {display:none; right:37px; background:url(img/buttons.gif) -58px 0}
+.clearlooks2 .mceMove {display:none;width:100%;cursor:move;background:url(img/corners.gif) no-repeat -100px -100px}
+.clearlooks2 .mceMovable .mceMove {display:block}
+.clearlooks2 .mceFocus .mceClose {right:6px; background:url(img/buttons.gif) -87px -16px}
+.clearlooks2 .mceFocus .mceMin {right:68px; background:url(img/buttons.gif) 0 -16px}
+.clearlooks2 .mceFocus .mceMed {right:37px; background:url(img/buttons.gif) -29px -16px}
+.clearlooks2 .mceFocus .mceMax {right:37px; background:url(img/buttons.gif) -58px -16px}
+.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
+.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
+.clearlooks2 .mceFocus .mceMin:hover {right:68px; background:url(img/buttons.gif) 0 -32px}
+.clearlooks2 .mceFocus .mceMed:hover {right:37px; background:url(img/buttons.gif) -29px -32px}
+.clearlooks2 .mceFocus .mceMax:hover {right:37px; background:url(img/buttons.gif) -58px -32px}
+
+/* Resize */
+.clearlooks2 .mceResize {top:auto; left:auto; display:none; width:5px; height:5px; background:url(img/horizontal.gif) no-repeat 0 -75px}
+.clearlooks2 .mceResizable .mceResize {display:block}
+.clearlooks2 .mceResizable .mceMin, .clearlooks2 .mceMax {display:none}
+.clearlooks2 .mceMinimizable .mceMin {display:block}
+.clearlooks2 .mceMaximizable .mceMax {display:block}
+.clearlooks2 .mceMaximized .mceMed {display:block}
+.clearlooks2 .mceMaximized .mceMax {display:none}
+.clearlooks2 a.mceResizeN {top:0; left:0; width:100%; cursor:n-resize}
+.clearlooks2 a.mceResizeNW {top:0; left:0; cursor:nw-resize}
+.clearlooks2 a.mceResizeNE {top:0; right:0; cursor:ne-resize}
+.clearlooks2 a.mceResizeW {top:0; left:0; height:100%; cursor:w-resize;}
+.clearlooks2 a.mceResizeE {top:0; right:0; height:100%; cursor:e-resize}
+.clearlooks2 a.mceResizeS {bottom:0; left:0; width:100%; cursor:s-resize}
+.clearlooks2 a.mceResizeSW {bottom:0; left:0; cursor:sw-resize}
+.clearlooks2 a.mceResizeSE {bottom:0; right:0; cursor:se-resize}
+
+/* Alert/Confirm */
+.clearlooks2 .mceButton {font-weight:bold; bottom:10px; width:80px; height:30px; background:url(img/button.gif); line-height:30px; vertical-align:middle; text-align:center; outline:0}
+.clearlooks2 .mceMiddle .mceIcon {left:15px; top:35px; width:32px; height:32px}
+.clearlooks2 .mceAlert .mceMiddle span, .clearlooks2 .mceConfirm .mceMiddle span {background:transparent;left:60px; top:35px; width:320px; height:50px; font-weight:bold; overflow:auto; white-space:normal}
+.clearlooks2 a:hover {font-weight:bold;}
+.clearlooks2 .mceAlert .mceMiddle, .clearlooks2 .mceConfirm .mceMiddle {background:#D6D7D5}
+.clearlooks2 .mceAlert .mceOk {left:50%; top:auto; margin-left: -40px}
+.clearlooks2 .mceAlert .mceIcon {background:url(img/alert.gif)}
+.clearlooks2 .mceConfirm .mceOk {left:50%; top:auto; margin-left: -90px}
+.clearlooks2 .mceConfirm .mceCancel {left:50%; top:auto}
+.clearlooks2 .mceConfirm .mceIcon {background:url(img/confirm.gif)}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm
new file mode 100644
index 0000000..c98fe41
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm
@@ -0,0 +1,387 @@
+<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Template for dialogs</title>
+<link rel="stylesheet" type="text/css" href="skins/clearlooks2/window.css" />
+</head>
+<body>
+
+<div class="mceEditor">
+	<div class="clearlooks2" style="width:400px; height:100px; left:10px;">
+		<div class="mceWrapper">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Blured</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:100px; left:420px;">
+		<div class="mceWrapper mceMovable mceFocus">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Focused</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:100px; left:10px; top:120px;">
+		<div class="mceWrapper mceMovable mceFocus mceStatusbar">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:100px; left:420px; top:120px;">
+		<div class="mceWrapper mceMovable mceFocus mceStatusbar mceResizable">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar, Resizable</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:100px; left:10px; top:230px;">
+		<div class="mceWrapper mceMovable mceFocus mceResizable mceMaximizable">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Resizable, Maximizable</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:100px; left:420px; top:230px;">
+		<div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximizable">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Blurred, Maximizable, Statusbar, Resizable</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:100px; left:10px; top:340px;">
+		<div class="mceWrapper mceMovable mceFocus mceResizable mceMaximized mceMinimizable mceMaximizable">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Maximized, Maximizable, Minimizable</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:100px; left:420px; top:340px;">
+		<div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximized mceMinimizable mceMaximizable">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Blured</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>Content</span>
+				<div class="mceRight"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Statusbar text.</span>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceMin" href="#"></a>
+			<a class="mceMax" href="#"></a>
+			<a class="mceMed" href="#"></a>
+			<a class="mceClose" href="#"></a>
+			<a class="mceResize mceResizeN" href="#"></a>
+			<a class="mceResize mceResizeS" href="#"></a>
+			<a class="mceResize mceResizeW" href="#"></a>
+			<a class="mceResize mceResizeE" href="#"></a>
+			<a class="mceResize mceResizeNW" href="#"></a>
+			<a class="mceResize mceResizeNE" href="#"></a>
+			<a class="mceResize mceResizeSW" href="#"></a>
+			<a class="mceResize mceResizeSE" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:130px; left:10px; top:450px;">
+		<div class="mceWrapper mceMovable mceFocus mceModal mceAlert">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Alert</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+				</span>
+				<div class="mceRight"></div>
+				<div class="mceIcon"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceButton mceOk" href="#">Ok</a>
+			<a class="mceClose" href="#"></a>
+		</div>
+	</div>
+
+	<div class="clearlooks2" style="width:400px; height:130px; left:420px; top:450px;">
+		<div class="mceWrapper mceMovable mceFocus mceModal mceConfirm">
+			<div class="mceTop">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+				<span>Confirm</span>
+			</div>
+
+			<div class="mceMiddle">
+				<div class="mceLeft"></div>
+				<span>
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					This is a very long error message. This is a very long error message.
+					</span>
+				<div class="mceRight"></div>
+				<div class="mceIcon"></div>
+			</div>
+
+			<div class="mceBottom">
+				<div class="mceLeft"></div>
+				<div class="mceCenter"></div>
+				<div class="mceRight"></div>
+			</div>
+
+			<a class="mceMove" href="#"></a>
+			<a class="mceButton mceOk" href="#">Ok</a>
+			<a class="mceButton mceCancel" href="#">Cancel</a>
+			<a class="mceClose" href="#"></a>
+		</div>
+	</div>
+</div>
+
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js
new file mode 100644
index 0000000..938ce6b
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.InsertDateTime",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceInsertDate",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_dateFormat",a.getLang("insertdatetime.date_fmt")));a.execCommand("mceInsertContent",false,d)});a.addCommand("mceInsertTime",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_timeFormat",a.getLang("insertdatetime.time_fmt")));a.execCommand("mceInsertContent",false,d [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js
new file mode 100644
index 0000000..c5d9a41
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js
@@ -0,0 +1,83 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.InsertDateTime', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			ed.addCommand('mceInsertDate', function() {
+				var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_dateFormat", ed.getLang('insertdatetime.date_fmt')));
+
+				ed.execCommand('mceInsertContent', false, str);
+			});
+
+			ed.addCommand('mceInsertTime', function() {
+				var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_timeFormat", ed.getLang('insertdatetime.time_fmt')));
+
+				ed.execCommand('mceInsertContent', false, str);
+			});
+
+			ed.addButton('insertdate', {title : 'insertdatetime.insertdate_desc', cmd : 'mceInsertDate'});
+			ed.addButton('inserttime', {title : 'insertdatetime.inserttime_desc', cmd : 'mceInsertTime'});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Insert date/time',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		// Private methods
+
+		_getDateTime : function(d, fmt) {
+			var ed = this.editor;
+
+			function addZeros(value, len) {
+				value = "" + value;
+
+				if (value.length < len) {
+					for (var i=0; i<(len-value.length); i++)
+						value = "0" + value;
+				}
+
+				return value;
+			};
+
+			fmt = fmt.replace("%D", "%m/%d/%y");
+			fmt = fmt.replace("%r", "%I:%M:%S %p");
+			fmt = fmt.replace("%Y", "" + d.getFullYear());
+			fmt = fmt.replace("%y", "" + d.getYear());
+			fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
+			fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
+			fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
+			fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
+			fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
+			fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
+			fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
+			fmt = fmt.replace("%B", "" + ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);
+			fmt = fmt.replace("%b", "" + ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);
+			fmt = fmt.replace("%A", "" + ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);
+			fmt = fmt.replace("%a", "" + ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);
+			fmt = fmt.replace("%%", "%");
+
+			return fmt;
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('insertdatetime', tinymce.plugins.InsertDateTime);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js
new file mode 100644
index 0000000..ca3857a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js
@@ -0,0 +1 @@
+(function(){function a(b){do{if(b.className&&b.className.indexOf("mceItemLayer")!=-1){return b}}while(b=b.parentNode)}tinymce.create("tinymce.plugins.Layer",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceInsertLayer",d._insertLayer,d);b.addCommand("mceMoveForward",function(){d._move(1)});b.addCommand("mceMoveBackward",function(){d._move(-1)});b.addCommand("mceMakeAbsolute",function(){d._toggleAbsolute()});b.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForwa [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js
new file mode 100644
index 0000000..d31978b
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js
@@ -0,0 +1,262 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	function findParentLayer(node) {
+		do {
+			if (node.className && node.className.indexOf('mceItemLayer') != -1) {
+				return node;
+			}
+		} while (node = node.parentNode);
+	};
+
+	tinymce.create('tinymce.plugins.Layer', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceInsertLayer', t._insertLayer, t);
+
+			ed.addCommand('mceMoveForward', function() {
+				t._move(1);
+			});
+
+			ed.addCommand('mceMoveBackward', function() {
+				t._move(-1);
+			});
+
+			ed.addCommand('mceMakeAbsolute', function() {
+				t._toggleAbsolute();
+			});
+
+			// Register buttons
+			ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'});
+			ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'});
+			ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'});
+			ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'});
+
+			ed.onInit.add(function() {
+				var dom = ed.dom;
+
+				if (tinymce.isIE)
+					ed.getDoc().execCommand('2D-Position', false, true);
+			});
+
+			// Remove serialized styles when selecting a layer since it might be changed by a drag operation
+			ed.onMouseUp.add(function(ed, e) {
+				var layer = findParentLayer(e.target);
+	
+				if (layer) {
+					ed.dom.setAttrib(layer, 'data-mce-style', '');
+				}
+			});
+
+			// Fixes edit focus issues with layers on Gecko
+			// This will enable designMode while inside a layer and disable it when outside
+			ed.onMouseDown.add(function(ed, e) {
+				var node = e.target, doc = ed.getDoc(), parent;
+
+				if (tinymce.isGecko) {
+					if (findParentLayer(node)) {
+						if (doc.designMode !== 'on') {
+							doc.designMode = 'on';
+
+							// Repaint caret
+							node = doc.body;
+							parent = node.parentNode;
+							parent.removeChild(node);
+							parent.appendChild(node);
+						}
+					} else if (doc.designMode == 'on') {
+						doc.designMode = 'off';
+					}
+				}
+			});
+
+			ed.onNodeChange.add(t._nodeChange, t);
+			ed.onVisualAid.add(t._visualAid, t);
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Layer',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		// Private methods
+
+		_nodeChange : function(ed, cm, n) {
+			var le, p;
+
+			le = this._getParentLayer(n);
+			p = ed.dom.getParent(n, 'DIV,P,IMG');
+
+			if (!p) {
+				cm.setDisabled('absolute', 1);
+				cm.setDisabled('moveforward', 1);
+				cm.setDisabled('movebackward', 1);
+			} else {
+				cm.setDisabled('absolute', 0);
+				cm.setDisabled('moveforward', !le);
+				cm.setDisabled('movebackward', !le);
+				cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute");
+			}
+		},
+
+		// Private methods
+
+		_visualAid : function(ed, e, s) {
+			var dom = ed.dom;
+
+			tinymce.each(dom.select('div,p', e), function(e) {
+				if (/^(absolute|relative|fixed)$/i.test(e.style.position)) {
+					if (s)
+						dom.addClass(e, 'mceItemVisualAid');
+					else
+						dom.removeClass(e, 'mceItemVisualAid');
+
+					dom.addClass(e, 'mceItemLayer');
+				}
+			});
+		},
+
+		_move : function(d) {
+			var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl;
+
+			nl = [];
+			tinymce.walk(ed.getBody(), function(n) {
+				if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position))
+					nl.push(n); 
+			}, 'childNodes');
+
+			// Find z-indexes
+			for (i=0; i<nl.length; i++) {
+				z[i] = nl[i].style.zIndex ? parseInt(nl[i].style.zIndex) : 0;
+
+				if (ci < 0 && nl[i] == le)
+					ci = i;
+			}
+
+			if (d < 0) {
+				// Move back
+
+				// Try find a lower one
+				for (i=0; i<z.length; i++) {
+					if (z[i] < z[ci]) {
+						fi = i;
+						break;
+					}
+				}
+
+				if (fi > -1) {
+					nl[ci].style.zIndex = z[fi];
+					nl[fi].style.zIndex = z[ci];
+				} else {
+					if (z[ci] > 0)
+						nl[ci].style.zIndex = z[ci] - 1;
+				}
+			} else {
+				// Move forward
+
+				// Try find a higher one
+				for (i=0; i<z.length; i++) {
+					if (z[i] > z[ci]) {
+						fi = i;
+						break;
+					}
+				}
+
+				if (fi > -1) {
+					nl[ci].style.zIndex = z[fi];
+					nl[fi].style.zIndex = z[ci];
+				} else
+					nl[ci].style.zIndex = z[ci] + 1;
+			}
+
+			ed.execCommand('mceRepaint');
+		},
+
+		_getParentLayer : function(n) {
+			return this.editor.dom.getParent(n, function(n) {
+				return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position);
+			});
+		},
+
+		_insertLayer : function() {
+			var ed = this.editor, dom = ed.dom, p = dom.getPos(dom.getParent(ed.selection.getNode(), '*')), body = ed.getBody();
+
+			ed.dom.add(body, 'div', {
+				style : {
+					position : 'absolute',
+					left : p.x,
+					top : (p.y > 20 ? p.y : 20),
+					width : 100,
+					height : 100
+				},
+				'class' : 'mceItemVisualAid mceItemLayer'
+			}, ed.selection.getContent() || ed.getLang('layer.content'));
+
+			// Workaround for IE where it messes up the JS engine if you insert a layer on IE 6,7
+			if (tinymce.isIE)
+				dom.setHTML(body, body.innerHTML);
+		},
+
+		_toggleAbsolute : function() {
+			var ed = this.editor, le = this._getParentLayer(ed.selection.getNode());
+
+			if (!le)
+				le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG');
+
+			if (le) {
+				if (le.style.position.toLowerCase() == "absolute") {
+					ed.dom.setStyles(le, {
+						position : '',
+						left : '',
+						top : '',
+						width : '',
+						height : ''
+					});
+
+					ed.dom.removeClass(le, 'mceItemVisualAid');
+					ed.dom.removeClass(le, 'mceItemLayer');
+				} else {
+					if (le.style.left == "")
+						le.style.left = 20 + 'px';
+
+					if (le.style.top == "")
+						le.style.top = 20 + 'px';
+
+					if (le.style.width == "")
+						le.style.width = le.width ? (le.width + 'px') : '100px';
+
+					if (le.style.height == "")
+						le.style.height = le.height ? (le.height + 'px') : '100px';
+
+					le.style.position = "absolute";
+
+					ed.dom.setAttrib(le, 'data-mce-style', '');
+					ed.addVisual(ed.getBody());
+				}
+
+				ed.execCommand('mceRepaint');
+				ed.nodeChanged();
+			}
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('layer', tinymce.plugins.Layer);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js
new file mode 100644
index 0000000..b3a4ce3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js
@@ -0,0 +1 @@
+(function(a){a.onAddEditor.addToTop(function(c,b){b.settings.inline_styles=false});a.create("tinymce.plugins.LegacyOutput",{init:function(b){b.onInit.add(function(){var c="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",e=a.explode(b.settings.font_size_style_values),d=b.schema;b.formatter.register({alignleft:{selector:c,attributes:{align:"left"}},aligncenter:{selector:c,attributes:{align:"center"}},alignright:{selector:c,attributes:{align:"right"}},alignfull:{selector:c,attributes:{ali [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js
new file mode 100644
index 0000000..835a45c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js
@@ -0,0 +1,139 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ *
+ * This plugin will force TinyMCE to produce deprecated legacy output such as font elements, u elements, align
+ * attributes and so forth. There are a few cases where these old items might be needed for example in email applications or with Flash
+ *
+ * However you should NOT use this plugin if you are building some system that produces web contents such as a CMS. All these elements are
+ * not apart of the newer specifications for HTML and XHTML.
+ */
+
+(function(tinymce) {
+	// Override inline_styles setting to force TinyMCE to produce deprecated contents
+	tinymce.onAddEditor.addToTop(function(tinymce, editor) {
+		editor.settings.inline_styles = false;
+	});
+
+	// Create the legacy ouput plugin
+	tinymce.create('tinymce.plugins.LegacyOutput', {
+		init : function(editor) {
+			editor.onInit.add(function() {
+				var alignElements = 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img',
+					fontSizes = tinymce.explode(editor.settings.font_size_style_values),
+					schema = editor.schema;
+
+				// Override some internal formats to produce legacy elements and attributes
+				editor.formatter.register({
+					// Change alignment formats to use the deprecated align attribute
+					alignleft : {selector : alignElements, attributes : {align : 'left'}},
+					aligncenter : {selector : alignElements, attributes : {align : 'center'}},
+					alignright : {selector : alignElements, attributes : {align : 'right'}},
+					alignfull : {selector : alignElements, attributes : {align : 'justify'}},
+
+					// Change the basic formatting elements to use deprecated element types
+					bold : [
+						{inline : 'b', remove : 'all'},
+						{inline : 'strong', remove : 'all'},
+						{inline : 'span', styles : {fontWeight : 'bold'}}
+					],
+					italic : [
+						{inline : 'i', remove : 'all'},
+						{inline : 'em', remove : 'all'},
+						{inline : 'span', styles : {fontStyle : 'italic'}}
+					],
+					underline : [
+						{inline : 'u', remove : 'all'},
+						{inline : 'span', styles : {textDecoration : 'underline'}, exact : true}
+					],
+					strikethrough : [
+						{inline : 'strike', remove : 'all'},
+						{inline : 'span', styles : {textDecoration: 'line-through'}, exact : true}
+					],
+
+					// Change font size and font family to use the deprecated font element
+					fontname : {inline : 'font', attributes : {face : '%value'}},
+					fontsize : {
+						inline : 'font',
+						attributes : {
+							size : function(vars) {
+								return tinymce.inArray(fontSizes, vars.value) + 1;
+							}
+						}
+					},
+
+					// Setup font elements for colors as well
+					forecolor : {inline : 'font', styles : {color : '%value'}},
+					hilitecolor : {inline : 'font', styles : {backgroundColor : '%value'}}
+				});
+
+				// Check that deprecated elements are allowed if not add them
+				tinymce.each('b,i,u,strike'.split(','), function(name) {
+					schema.addValidElements(name + '[*]');
+				});
+
+				// Add font element if it's missing
+				if (!schema.getElementRule("font"))
+					schema.addValidElements("font[face|size|color|style]");
+
+				// Add the missing and depreacted align attribute for the serialization engine
+				tinymce.each(alignElements.split(','), function(name) {
+					var rule = schema.getElementRule(name), found;
+
+					if (rule) {
+						if (!rule.attributes.align) {
+							rule.attributes.align = {};
+							rule.attributesOrder.push('align');
+						}
+					}
+				});
+
+				// Listen for the onNodeChange event so that we can do special logic for the font size and font name drop boxes
+				editor.onNodeChange.add(function(editor, control_manager) {
+					var control, fontElm, fontName, fontSize;
+
+					// Find font element get it's name and size
+					fontElm = editor.dom.getParent(editor.selection.getNode(), 'font');
+					if (fontElm) {
+						fontName = fontElm.face;
+						fontSize = fontElm.size;
+					}
+
+					// Select/unselect the font name in droplist
+					if (control = control_manager.get('fontselect')) {
+						control.select(function(value) {
+							return value == fontName;
+						});
+					}
+
+					// Select/unselect the font size in droplist
+					if (control = control_manager.get('fontsizeselect')) {
+						control.select(function(value) {
+							var index = tinymce.inArray(fontSizes, value.fontSize);
+
+							return index + 1 == fontSize;
+						});
+					}
+				});
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'LegacyOutput',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/legacyoutput',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('legacyoutput', tinymce.plugins.LegacyOutput);
+})(tinymce);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js
new file mode 100644
index 0000000..a5afe90
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var e=tinymce.each,r=tinymce.dom.Event,g;function p(t,s){while(t&&(t.nodeType===8||(t.nodeType===3&&/^[ \t\n\r]*$/.test(t.nodeValue)))){t=s(t)}return t}function b(s){return p(s,function(t){return t.previousSibling})}function i(s){return p(s,function(t){return t.nextSibling})}function d(s,u,t){return s.dom.getParent(u,function(v){return tinymce.inArray(t,v)!==-1})}function n(s){return s&&(s.tagName==="OL"||s.tagName==="UL")}function c(u,v){var t,w,s;t=b(u.lastChild);while(n(t) [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js
new file mode 100644
index 0000000..ebe4fa5
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js
@@ -0,0 +1,954 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2011, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var each = tinymce.each, Event = tinymce.dom.Event, bookmark;
+
+	// Skips text nodes that only contain whitespace since they aren't semantically important.
+	function skipWhitespaceNodes(e, next) {
+		while (e && (e.nodeType === 8 || (e.nodeType === 3 && /^[ \t\n\r]*$/.test(e.nodeValue)))) {
+			e = next(e);
+		}
+		return e;
+	}
+
+	function skipWhitespaceNodesBackwards(e) {
+		return skipWhitespaceNodes(e, function(e) {
+			return e.previousSibling;
+		});
+	}
+
+	function skipWhitespaceNodesForwards(e) {
+		return skipWhitespaceNodes(e, function(e) {
+			return e.nextSibling;
+		});
+	}
+
+	function hasParentInList(ed, e, list) {
+		return ed.dom.getParent(e, function(p) {
+			return tinymce.inArray(list, p) !== -1;
+		});
+	}
+
+	function isList(e) {
+		return e && (e.tagName === 'OL' || e.tagName === 'UL');
+	}
+
+	function splitNestedLists(element, dom) {
+		var tmp, nested, wrapItem;
+		tmp = skipWhitespaceNodesBackwards(element.lastChild);
+		while (isList(tmp)) {
+			nested = tmp;
+			tmp = skipWhitespaceNodesBackwards(nested.previousSibling);
+		}
+		if (nested) {
+			wrapItem = dom.create('li', { style: 'list-style-type: none;'});
+			dom.split(element, nested);
+			dom.insertAfter(wrapItem, nested);
+			wrapItem.appendChild(nested);
+			wrapItem.appendChild(nested);
+			element = wrapItem.previousSibling;
+		}
+		return element;
+	}
+
+	function attemptMergeWithAdjacent(e, allowDifferentListStyles, mergeParagraphs) {
+		e = attemptMergeWithPrevious(e, allowDifferentListStyles, mergeParagraphs);
+		return attemptMergeWithNext(e, allowDifferentListStyles, mergeParagraphs);
+	}
+
+	function attemptMergeWithPrevious(e, allowDifferentListStyles, mergeParagraphs) {
+		var prev = skipWhitespaceNodesBackwards(e.previousSibling);
+		if (prev) {
+			return attemptMerge(prev, e, allowDifferentListStyles ? prev : false, mergeParagraphs);
+		} else {
+			return e;
+		}
+	}
+
+	function attemptMergeWithNext(e, allowDifferentListStyles, mergeParagraphs) {
+		var next = skipWhitespaceNodesForwards(e.nextSibling);
+		if (next) {
+			return attemptMerge(e, next, allowDifferentListStyles ? next : false, mergeParagraphs);
+		} else {
+			return e;
+		}
+	}
+
+	function attemptMerge(e1, e2, differentStylesMasterElement, mergeParagraphs) {
+		if (canMerge(e1, e2, !!differentStylesMasterElement, mergeParagraphs)) {
+			return merge(e1, e2, differentStylesMasterElement);
+		} else if (e1 && e1.tagName === 'LI' && isList(e2)) {
+			// Fix invalidly nested lists.
+			e1.appendChild(e2);
+		}
+		return e2;
+	}
+
+	function canMerge(e1, e2, allowDifferentListStyles, mergeParagraphs) {
+		if (!e1 || !e2) {
+			return false;
+		} else if (e1.tagName === 'LI' && e2.tagName === 'LI') {
+			return e2.style.listStyleType === 'none' || containsOnlyAList(e2);
+		} else if (isList(e1)) {
+			return (e1.tagName === e2.tagName && (allowDifferentListStyles || e1.style.listStyleType === e2.style.listStyleType)) || isListForIndent(e2);
+		} else return mergeParagraphs && e1.tagName === 'P' && e2.tagName === 'P';
+	}
+
+	function isListForIndent(e) {
+		var firstLI = skipWhitespaceNodesForwards(e.firstChild), lastLI = skipWhitespaceNodesBackwards(e.lastChild);
+		return firstLI && lastLI && isList(e) && firstLI === lastLI && (isList(firstLI) || firstLI.style.listStyleType === 'none' || containsOnlyAList(firstLI));
+	}
+
+	function containsOnlyAList(e) {
+		var firstChild = skipWhitespaceNodesForwards(e.firstChild), lastChild = skipWhitespaceNodesBackwards(e.lastChild);
+		return firstChild && lastChild && firstChild === lastChild && isList(firstChild);
+	}
+
+	function merge(e1, e2, masterElement) {
+		var lastOriginal = skipWhitespaceNodesBackwards(e1.lastChild), firstNew = skipWhitespaceNodesForwards(e2.firstChild);
+		if (e1.tagName === 'P') {
+			e1.appendChild(e1.ownerDocument.createElement('br'));
+		}
+		while (e2.firstChild) {
+			e1.appendChild(e2.firstChild);
+		}
+		if (masterElement) {
+			e1.style.listStyleType = masterElement.style.listStyleType;
+		}
+		e2.parentNode.removeChild(e2);
+		attemptMerge(lastOriginal, firstNew, false);
+		return e1;
+	}
+
+	function findItemToOperateOn(e, dom) {
+		var item;
+		if (!dom.is(e, 'li,ol,ul')) {
+			item = dom.getParent(e, 'li');
+			if (item) {
+				e = item;
+			}
+		}
+		return e;
+	}
+
+	tinymce.create('tinymce.plugins.Lists', {
+		init: function(ed) {
+			var LIST_TABBING = 'TABBING';
+			var LIST_EMPTY_ITEM = 'EMPTY';
+			var LIST_ESCAPE = 'ESCAPE';
+			var LIST_PARAGRAPH = 'PARAGRAPH';
+			var LIST_UNKNOWN = 'UNKNOWN';
+			var state = LIST_UNKNOWN;
+
+			function isTabInList(e) {
+				// Don't indent on Ctrl+Tab or Alt+Tab
+				return e.keyCode === tinymce.VK.TAB && !(e.altKey || e.ctrlKey) &&
+					(ed.queryCommandState('InsertUnorderedList') || ed.queryCommandState('InsertOrderedList'));
+			}
+
+			function isOnLastListItem() {
+				var li = getLi();
+				var grandParent = li.parentNode.parentNode;
+				var isLastItem = li.parentNode.lastChild === li;
+				return isLastItem && !isNestedList(grandParent) && isEmptyListItem(li);
+			}
+
+			function isNestedList(grandParent) {
+				if (isList(grandParent)) {
+					return grandParent.parentNode && grandParent.parentNode.tagName === 'LI';
+				} else {
+					return  grandParent.tagName === 'LI';
+				}
+			}
+
+			function isInEmptyListItem() {
+				return ed.selection.isCollapsed() && isEmptyListItem(getLi());
+			}
+
+			function getLi() {
+				var n = ed.selection.getStart();
+				// Get start will return BR if the LI only contains a BR or an empty element as we use these to fix caret position
+				return ((n.tagName == 'BR' || n.tagName == '') && n.parentNode.tagName == 'LI') ? n.parentNode : n;
+			}
+
+			function isEmptyListItem(li) {
+				var numChildren = li.childNodes.length;
+				if (li.tagName === 'LI') {
+					return numChildren == 0 ? true : numChildren == 1 && (li.firstChild.tagName == '' || li.firstChild.tagName == 'BR' || isEmptyIE9Li(li));
+				}
+				return false;
+			}
+
+			function isEmptyIE9Li(li) {
+				// only consider this to be last item if there is no list item content or that content is nbsp or space since IE9 creates these
+				var lis = tinymce.grep(li.parentNode.childNodes, function(n) {return n.tagName == 'LI'});
+				var isLastLi = li == lis[lis.length - 1];
+				var child = li.firstChild;
+				return tinymce.isIE9 && isLastLi && (child.nodeValue == String.fromCharCode(160) || child.nodeValue == String.fromCharCode(32));
+			}
+
+			function isEnter(e) {
+				return e.keyCode === tinymce.VK.ENTER;
+			}
+
+			function isEnterWithoutShift(e) {
+				return isEnter(e) && !e.shiftKey;
+			}
+
+			function getListKeyState(e) {
+				if (isTabInList(e)) {
+					return LIST_TABBING;
+				} else if (isEnterWithoutShift(e) && isOnLastListItem()) {
+					return LIST_ESCAPE;
+				} else if (isEnterWithoutShift(e) && isInEmptyListItem()) {
+					return LIST_EMPTY_ITEM;
+				} else {
+					return LIST_UNKNOWN;
+				}
+			}
+
+			function cancelDefaultEvents(ed, e) {
+				// list escape is done manually using outdent as it does not create paragraphs correctly in td's
+				if (state == LIST_TABBING || state == LIST_EMPTY_ITEM || tinymce.isGecko && state == LIST_ESCAPE) {
+					Event.cancel(e);
+				}
+			}
+
+			function isCursorAtEndOfContainer() {
+				var range = ed.selection.getRng(true);
+				var startContainer = range.startContainer;
+				if (startContainer.nodeType == 3) {
+					var value = startContainer.nodeValue;
+					if (tinymce.isIE9 && value.length > 1 && value.charCodeAt(value.length-1) == 32) {
+						// IE9 places a space on the end of the text in some cases so ignore last char
+						return (range.endOffset == value.length-1);
+					} else {
+						return (range.endOffset == value.length);
+					}
+				} else if (startContainer.nodeType == 1) {
+					return range.endOffset == startContainer.childNodes.length;
+				}
+				return false;
+			}
+
+			/*
+			 	If we are at the end of a list item surrounded with an element, pressing enter should create a
+			 	new list item instead without splitting the element e.g. don't want to create new P or H1 tag
+			  */
+			function isEndOfListItem() {
+				var node = ed.selection.getNode();
+				var validElements = 'h1,h2,h3,h4,h5,h6,p,div';
+				var isLastParagraphOfLi = ed.dom.is(node, validElements) && node.parentNode.tagName === 'LI' && node.parentNode.lastChild === node;
+				return ed.selection.isCollapsed() && isLastParagraphOfLi && isCursorAtEndOfContainer();
+			}
+
+			// Creates a new list item after the current selection's list item parent
+			function createNewLi(ed, e) {
+				if (isEnterWithoutShift(e) && isEndOfListItem()) {
+					var node = ed.selection.getNode();
+					var li = ed.dom.create("li");
+					var parentLi = ed.dom.getParent(node, 'li');
+					ed.dom.insertAfter(li, parentLi);
+
+					// Move caret to new list element.
+					if (tinymce.isIE6 || tinymce.isIE7 || tinyMCE.isIE8) {
+						li.appendChild(ed.dom.create(" ")); // IE needs an element within the bullet point
+						ed.selection.setCursorLocation(li, 1);
+					} else if (tinyMCE.isGecko) {
+						// This setTimeout is a hack as FF behaves badly if there is no content after the bullet point
+						setTimeout(function () {
+							var n = ed.getDoc().createTextNode('\uFEFF');
+							li.appendChild(n);
+							ed.selection.setCursorLocation(li, 0);
+						}, 0);
+					} else {
+						ed.selection.setCursorLocation(li, 0);
+					}
+					e.preventDefault();
+				}
+			}
+
+			function imageJoiningListItem(ed, e) {
+				var prevSibling;
+
+				if (!tinymce.isGecko)
+					return;
+
+				var n = ed.selection.getStart();
+				if (e.keyCode != tinymce.VK.BACKSPACE || n.tagName !== 'IMG')
+					return;
+
+				function lastLI(node) {
+					var child = node.firstChild;
+					var li = null;
+					do {
+						if (!child)
+							break;
+
+						if (child.tagName === 'LI')
+							li = child;
+					} while (child = child.nextSibling);
+
+					return li;
+				}
+
+				function addChildren(parentNode, destination) {
+					while (parentNode.childNodes.length > 0)
+						destination.appendChild(parentNode.childNodes[0]);
+				}
+
+				// Check if there is a previous sibling
+				prevSibling = n.parentNode.previousSibling;
+				if (!prevSibling)
+					return;
+
+				var ul;
+				if (prevSibling.tagName === 'UL' || prevSibling.tagName === 'OL')
+					ul = prevSibling;
+				else if (prevSibling.previousSibling && (prevSibling.previousSibling.tagName === 'UL' || prevSibling.previousSibling.tagName === 'OL'))
+					ul = prevSibling.previousSibling;
+				else
+					return;
+
+				var li = lastLI(ul);
+
+				// move the caret to the end of the list item
+				var rng = ed.dom.createRng();
+				rng.setStart(li, 1);
+				rng.setEnd(li, 1);
+				ed.selection.setRng(rng);
+				ed.selection.collapse(true);
+
+				// save a bookmark at the end of the list item
+				var bookmark = ed.selection.getBookmark();
+
+				// copy the image an its text to the list item
+				var clone = n.parentNode.cloneNode(true);
+				if (clone.tagName === 'P' || clone.tagName === 'DIV')
+					addChildren(clone, li);
+				else
+					li.appendChild(clone);
+
+				// remove the old copy of the image
+				n.parentNode.parentNode.removeChild(n.parentNode);
+
+				// move the caret where we saved the bookmark
+				ed.selection.moveToBookmark(bookmark);
+			}
+
+			// fix the cursor position to ensure it is correct in IE
+			function setCursorPositionToOriginalLi(li) {
+				var list = ed.dom.getParent(li, 'ol,ul');
+				if (list != null) {
+					var lastLi = list.lastChild;
+					lastLi.appendChild(ed.getDoc().createElement(''));
+					ed.selection.setCursorLocation(lastLi, 0);
+				}
+			}
+
+			this.ed = ed;
+			ed.addCommand('Indent', this.indent, this);
+			ed.addCommand('Outdent', this.outdent, this);
+			ed.addCommand('InsertUnorderedList', function() {
+				this.applyList('UL', 'OL');
+			}, this);
+			ed.addCommand('InsertOrderedList', function() {
+				this.applyList('OL', 'UL');
+			}, this);
+
+			ed.onInit.add(function() {
+				ed.editorCommands.addCommands({
+					'outdent': function() {
+						var sel = ed.selection, dom = ed.dom;
+
+						function hasStyleIndent(n) {
+							n = dom.getParent(n, dom.isBlock);
+							return n && (parseInt(ed.dom.getStyle(n, 'margin-left') || 0, 10) + parseInt(ed.dom.getStyle(n, 'padding-left') || 0, 10)) > 0;
+						}
+
+						return hasStyleIndent(sel.getStart()) || hasStyleIndent(sel.getEnd()) || ed.queryCommandState('InsertOrderedList') || ed.queryCommandState('InsertUnorderedList');
+					}
+				}, 'state');
+			});
+
+			ed.onKeyUp.add(function(ed, e) {
+				if (state == LIST_TABBING) {
+					ed.execCommand(e.shiftKey ? 'Outdent' : 'Indent', true, null);
+					state = LIST_UNKNOWN;
+					return Event.cancel(e);
+				} else if (state == LIST_EMPTY_ITEM) {
+					var li = getLi();
+					var shouldOutdent =  ed.settings.list_outdent_on_enter === true || e.shiftKey;
+					ed.execCommand(shouldOutdent ? 'Outdent' : 'Indent', true, null);
+					if (tinymce.isIE) {
+						setCursorPositionToOriginalLi(li);
+					}
+
+					return Event.cancel(e);
+				} else if (state == LIST_ESCAPE) {
+					if (tinymce.isIE6 || tinymce.isIE7 || tinymce.isIE8) {
+						// append a zero sized nbsp so that caret is positioned correctly in IE after escaping and applying formatting.
+						// if there is no text then applying formatting for e.g a H1 to the P tag immediately following list after
+						// escaping from it will cause the caret to be positioned on the last li instead of staying the in P tag.
+						var n = ed.getDoc().createTextNode('\uFEFF');
+						ed.selection.getNode().appendChild(n);
+					} else if (tinymce.isIE9 || tinymce.isGecko) {
+						// IE9 does not escape the list so we use outdent to do this and cancel the default behaviour
+						// Gecko does not create a paragraph outdenting inside a TD so default behaviour is cancelled and we outdent ourselves
+						ed.execCommand('Outdent');
+						return Event.cancel(e);
+					}
+				}
+			});
+
+			function fixListItem(parent, reference) {
+				// a zero-sized non-breaking space is placed in the empty list item so that the nested list is
+				// displayed on the below line instead of next to it
+				var n = ed.getDoc().createTextNode('\uFEFF');
+				parent.insertBefore(n, reference);
+				ed.selection.setCursorLocation(n, 0);
+				// repaint to remove rendering artifact. only visible when creating new list
+				ed.execCommand('mceRepaint');
+			}
+
+			function fixIndentedListItemForGecko(ed, e) {
+				if (isEnter(e)) {
+					var li = getLi();
+					if (li) {
+						var parent = li.parentNode;
+						var grandParent = parent && parent.parentNode;
+						if (grandParent && grandParent.nodeName == 'LI' && grandParent.firstChild == parent && li == parent.firstChild) {
+							fixListItem(grandParent, parent);
+						}
+					}
+				}
+			}
+
+			function fixIndentedListItemForIE8(ed, e) {
+				if (isEnter(e)) {
+					var li = getLi();
+					if (ed.dom.select('ul li', li).length === 1) {
+						var list = li.firstChild;
+						fixListItem(li, list);
+					}
+				}
+			}
+
+			function fixDeletingFirstCharOfList(ed, e) {
+				function listElements(list, li) {
+					var elements = [];
+					var walker = new tinymce.dom.TreeWalker(li, list);
+					for (var node = walker.current(); node; node = walker.next()) {
+						if (ed.dom.is(node, 'ol,ul,li')) {
+							elements.push(node);
+						}
+					}
+					return elements;
+				}
+
+				if (e.keyCode == tinymce.VK.BACKSPACE) {
+					var li = getLi();
+					if (li) {
+						var list = ed.dom.getParent(li, 'ol,ul');
+						if (list && list.firstChild === li) {
+							var elements = listElements(list, li);
+							ed.execCommand("Outdent", false, elements);
+							ed.undoManager.add();
+							return Event.cancel(e);
+						}
+					}
+				}
+			}
+
+			function fixDeletingEmptyLiInWebkit(ed, e) {
+				var li = getLi();
+				if (e.keyCode === tinymce.VK.BACKSPACE && ed.dom.is(li, 'li') && li.parentNode.firstChild!==li) {
+					if (ed.dom.select('ul,ol', li).length === 1) {
+						var prevLi = li.previousSibling;
+						ed.dom.remove(ed.dom.select('br', li));
+						ed.dom.remove(li, true);
+						var textNodes = tinymce.grep(prevLi.childNodes, function(n){ return n.nodeType === 3 });
+						if (textNodes.length === 1) {
+							var textNode = textNodes[0]
+							ed.selection.setCursorLocation(textNode, textNode.length);
+						}
+						ed.undoManager.add();
+						return Event.cancel(e);
+					}
+				}
+			}
+
+			ed.onKeyDown.add(function(_, e) { state = getListKeyState(e); });
+			ed.onKeyDown.add(cancelDefaultEvents);
+			ed.onKeyDown.add(imageJoiningListItem);
+			ed.onKeyDown.add(createNewLi);
+
+			if (tinymce.isGecko) {
+				ed.onKeyUp.add(fixIndentedListItemForGecko);
+			}
+			if (tinymce.isIE8) {
+				ed.onKeyUp.add(fixIndentedListItemForIE8);
+			}
+			if (tinymce.isGecko || tinymce.isWebKit) {
+				ed.onKeyDown.add(fixDeletingFirstCharOfList);
+			}
+			if (tinymce.isWebKit) {
+				ed.onKeyDown.add(fixDeletingEmptyLiInWebkit);
+			}
+		},
+
+		applyList: function(targetListType, oppositeListType) {
+			var t = this, ed = t.ed, dom = ed.dom, applied = [], hasSameType = false, hasOppositeType = false, hasNonList = false, actions,
+					selectedBlocks = ed.selection.getSelectedBlocks();
+
+			function cleanupBr(e) {
+				if (e && e.tagName === 'BR') {
+					dom.remove(e);
+				}
+			}
+
+			function makeList(element) {
+				var list = dom.create(targetListType), li;
+
+				function adjustIndentForNewList(element) {
+					// If there's a margin-left, outdent one level to account for the extra list margin.
+					if (element.style.marginLeft || element.style.paddingLeft) {
+						t.adjustPaddingFunction(false)(element);
+					}
+				}
+
+				if (element.tagName === 'LI') {
+					// No change required.
+				} else if (element.tagName === 'P' || element.tagName === 'DIV' || element.tagName === 'BODY') {
+					processBrs(element, function(startSection, br) {
+						doWrapList(startSection, br, element.tagName === 'BODY' ? null : startSection.parentNode);
+						li = startSection.parentNode;
+						adjustIndentForNewList(li);
+						cleanupBr(br);
+					});
+					if (li) {
+						if (li.tagName === 'LI' && (element.tagName === 'P' || selectedBlocks.length > 1)) {
+							dom.split(li.parentNode.parentNode, li.parentNode);
+						}
+						attemptMergeWithAdjacent(li.parentNode, true);
+					}
+					return;
+				} else {
+					// Put the list around the element.
+					li = dom.create('li');
+					dom.insertAfter(li, element);
+					li.appendChild(element);
+					adjustIndentForNewList(element);
+					element = li;
+				}
+				dom.insertAfter(list, element);
+				list.appendChild(element);
+				attemptMergeWithAdjacent(list, true);
+				applied.push(element);
+			}
+
+			function doWrapList(start, end, template) {
+				var li, n = start, tmp;
+				while (!dom.isBlock(start.parentNode) && start.parentNode !== dom.getRoot()) {
+					start = dom.split(start.parentNode, start.previousSibling);
+					start = start.nextSibling;
+					n = start;
+				}
+				if (template) {
+					li = template.cloneNode(true);
+					start.parentNode.insertBefore(li, start);
+					while (li.firstChild) dom.remove(li.firstChild);
+					li = dom.rename(li, 'li');
+				} else {
+					li = dom.create('li');
+					start.parentNode.insertBefore(li, start);
+				}
+				while (n && n != end) {
+					tmp = n.nextSibling;
+					li.appendChild(n);
+					n = tmp;
+				}
+				if (li.childNodes.length === 0) {
+					li.innerHTML = '<br _mce_bogus="1" />';
+				}
+				makeList(li);
+			}
+
+			function processBrs(element, callback) {
+				var startSection, previousBR, END_TO_START = 3, START_TO_END = 1,
+						breakElements = 'br,ul,ol,p,div,h1,h2,h3,h4,h5,h6,table,blockquote,address,pre,form,center,dl';
+
+				function isAnyPartSelected(start, end) {
+					var r = dom.createRng(), sel;
+					bookmark.keep = true;
+					ed.selection.moveToBookmark(bookmark);
+					bookmark.keep = false;
+					sel = ed.selection.getRng(true);
+					if (!end) {
+						end = start.parentNode.lastChild;
+					}
+					r.setStartBefore(start);
+					r.setEndAfter(end);
+					return !(r.compareBoundaryPoints(END_TO_START, sel) > 0 || r.compareBoundaryPoints(START_TO_END, sel) <= 0);
+				}
+
+				function nextLeaf(br) {
+					if (br.nextSibling)
+						return br.nextSibling;
+					if (!dom.isBlock(br.parentNode) && br.parentNode !== dom.getRoot())
+						return nextLeaf(br.parentNode);
+				}
+
+				// Split on BRs within the range and process those.
+				startSection = element.firstChild;
+				// First mark the BRs that have any part of the previous section selected.
+				var trailingContentSelected = false;
+				each(dom.select(breakElements, element), function(br) {
+					if (br.hasAttribute && br.hasAttribute('_mce_bogus')) {
+						return true; // Skip the bogus Brs that are put in to appease Firefox and Safari.
+					}
+					if (isAnyPartSelected(startSection, br)) {
+						dom.addClass(br, '_mce_tagged_br');
+						startSection = nextLeaf(br);
+					}
+				});
+				trailingContentSelected = (startSection && isAnyPartSelected(startSection, undefined));
+				startSection = element.firstChild;
+				each(dom.select(breakElements, element), function(br) {
+					// Got a section from start to br.
+					var tmp = nextLeaf(br);
+					if (br.hasAttribute && br.hasAttribute('_mce_bogus')) {
+						return true; // Skip the bogus Brs that are put in to appease Firefox and Safari.
+					}
+					if (dom.hasClass(br, '_mce_tagged_br')) {
+						callback(startSection, br, previousBR);
+						previousBR = null;
+					} else {
+						previousBR = br;
+					}
+					startSection = tmp;
+				});
+				if (trailingContentSelected) {
+					callback(startSection, undefined, previousBR);
+				}
+			}
+
+			function wrapList(element) {
+				processBrs(element, function(startSection, br, previousBR) {
+					// Need to indent this part
+					doWrapList(startSection, br);
+					cleanupBr(br);
+					cleanupBr(previousBR);
+				});
+			}
+
+			function changeList(element) {
+				if (tinymce.inArray(applied, element) !== -1) {
+					return;
+				}
+				if (element.parentNode.tagName === oppositeListType) {
+					dom.split(element.parentNode, element);
+					makeList(element);
+					attemptMergeWithNext(element.parentNode, false);
+				}
+				applied.push(element);
+			}
+
+			function convertListItemToParagraph(element) {
+				var child, nextChild, mergedElement, splitLast;
+				if (tinymce.inArray(applied, element) !== -1) {
+					return;
+				}
+				element = splitNestedLists(element, dom);
+				while (dom.is(element.parentNode, 'ol,ul,li')) {
+					dom.split(element.parentNode, element);
+				}
+				// Push the original element we have from the selection, not the renamed one.
+				applied.push(element);
+				element = dom.rename(element, 'p');
+				mergedElement = attemptMergeWithAdjacent(element, false, ed.settings.force_br_newlines);
+				if (mergedElement === element) {
+					// Now split out any block elements that can't be contained within a P.
+					// Manually iterate to ensure we handle modifications correctly (doesn't work with tinymce.each)
+					child = element.firstChild;
+					while (child) {
+						if (dom.isBlock(child)) {
+							child = dom.split(child.parentNode, child);
+							splitLast = true;
+							nextChild = child.nextSibling && child.nextSibling.firstChild;
+						} else {
+							nextChild = child.nextSibling;
+							if (splitLast && child.tagName === 'BR') {
+								dom.remove(child);
+							}
+							splitLast = false;
+						}
+						child = nextChild;
+					}
+				}
+			}
+
+			each(selectedBlocks, function(e) {
+				e = findItemToOperateOn(e, dom);
+				if (e.tagName === oppositeListType || (e.tagName === 'LI' && e.parentNode.tagName === oppositeListType)) {
+					hasOppositeType = true;
+				} else if (e.tagName === targetListType || (e.tagName === 'LI' && e.parentNode.tagName === targetListType)) {
+					hasSameType = true;
+				} else {
+					hasNonList = true;
+				}
+			});
+
+			if (hasNonList &&!hasSameType || hasOppositeType || selectedBlocks.length === 0) {
+				actions = {
+					'LI': changeList,
+					'H1': makeList,
+					'H2': makeList,
+					'H3': makeList,
+					'H4': makeList,
+					'H5': makeList,
+					'H6': makeList,
+					'P': makeList,
+					'BODY': makeList,
+					'DIV': selectedBlocks.length > 1 ? makeList : wrapList,
+					defaultAction: wrapList,
+					elements: this.selectedBlocks()
+				};
+			} else {
+				actions = {
+					defaultAction: convertListItemToParagraph,
+					elements: this.selectedBlocks()
+				};
+			}
+			this.process(actions);
+		},
+
+		indent: function() {
+			var ed = this.ed, dom = ed.dom, indented = [];
+
+			function createWrapItem(element) {
+				var wrapItem = dom.create('li', { style: 'list-style-type: none;'});
+				dom.insertAfter(wrapItem, element);
+				return wrapItem;
+			}
+
+			function createWrapList(element) {
+				var wrapItem = createWrapItem(element),
+						list = dom.getParent(element, 'ol,ul'),
+						listType = list.tagName,
+						listStyle = dom.getStyle(list, 'list-style-type'),
+						attrs = {},
+						wrapList;
+				if (listStyle !== '') {
+					attrs.style = 'list-style-type: ' + listStyle + ';';
+				}
+				wrapList = dom.create(listType, attrs);
+				wrapItem.appendChild(wrapList);
+				return wrapList;
+			}
+
+			function indentLI(element) {
+				if (!hasParentInList(ed, element, indented)) {
+					element = splitNestedLists(element, dom);
+					var wrapList = createWrapList(element);
+					wrapList.appendChild(element);
+					attemptMergeWithAdjacent(wrapList.parentNode, false);
+					attemptMergeWithAdjacent(wrapList, false);
+					indented.push(element);
+				}
+			}
+
+			this.process({
+				'LI': indentLI,
+				defaultAction: this.adjustPaddingFunction(true),
+				elements: this.selectedBlocks()
+			});
+
+		},
+
+		outdent: function(ui, elements) {
+			var t = this, ed = t.ed, dom = ed.dom, outdented = [];
+
+			function outdentLI(element) {
+				var listElement, targetParent, align;
+				if (!hasParentInList(ed, element, outdented)) {
+					if (dom.getStyle(element, 'margin-left') !== '' || dom.getStyle(element, 'padding-left') !== '') {
+						return t.adjustPaddingFunction(false)(element);
+					}
+					align = dom.getStyle(element, 'text-align', true);
+					if (align === 'center' || align === 'right') {
+						dom.setStyle(element, 'text-align', 'left');
+						return;
+					}
+					element = splitNestedLists(element, dom);
+					listElement = element.parentNode;
+					targetParent = element.parentNode.parentNode;
+					if (targetParent.tagName === 'P') {
+						dom.split(targetParent, element.parentNode);
+					} else {
+						dom.split(listElement, element);
+						if (targetParent.tagName === 'LI') {
+							// Nested list, need to split the LI and go back out to the OL/UL element.
+							dom.split(targetParent, element);
+						} else if (!dom.is(targetParent, 'ol,ul')) {
+							dom.rename(element, 'p');
+						}
+					}
+					outdented.push(element);
+				}
+			}
+
+			var listElements = elements && tinymce.is(elements, 'array') ? elements : this.selectedBlocks();
+			this.process({
+				'LI': outdentLI,
+				defaultAction: this.adjustPaddingFunction(false),
+				elements: listElements
+			});
+
+			each(outdented, attemptMergeWithAdjacent);
+		},
+
+		process: function(actions) {
+			var t = this, sel = t.ed.selection, dom = t.ed.dom, selectedBlocks, r;
+
+			function isEmptyElement(element) {
+				var excludeBrsAndBookmarks = tinymce.grep(element.childNodes, function(n) {
+					return !(n.nodeName === 'BR' || n.nodeName === 'SPAN' && dom.getAttrib(n, 'data-mce-type') == 'bookmark'
+							|| n.nodeType == 3 && (n.nodeValue == String.fromCharCode(160) || n.nodeValue == ''));
+				});
+				return excludeBrsAndBookmarks.length === 0;
+			}
+
+			function processElement(element) {
+				dom.removeClass(element, '_mce_act_on');
+				if (!element || element.nodeType !== 1 || selectedBlocks.length > 1 && isEmptyElement(element)) {
+					return;
+				}
+				element = findItemToOperateOn(element, dom);
+				var action = actions[element.tagName];
+				if (!action) {
+					action = actions.defaultAction;
+				}
+				action(element);
+			}
+
+			function recurse(element) {
+				t.splitSafeEach(element.childNodes, processElement);
+			}
+
+			function brAtEdgeOfSelection(container, offset) {
+				return offset >= 0 && container.hasChildNodes() && offset < container.childNodes.length &&
+						container.childNodes[offset].tagName === 'BR';
+			}
+
+			function isInTable() {
+				var n = sel.getNode();
+				var p = dom.getParent(n, 'td');
+				return p !== null;
+			}
+
+			selectedBlocks = actions.elements;
+
+			r = sel.getRng(true);
+			if (!r.collapsed) {
+				if (brAtEdgeOfSelection(r.endContainer, r.endOffset - 1)) {
+					r.setEnd(r.endContainer, r.endOffset - 1);
+					sel.setRng(r);
+				}
+				if (brAtEdgeOfSelection(r.startContainer, r.startOffset)) {
+					r.setStart(r.startContainer, r.startOffset + 1);
+					sel.setRng(r);
+				}
+			}
+
+
+			if (tinymce.isIE8) {
+				// append a zero sized nbsp so that caret is restored correctly using bookmark
+				var s = t.ed.selection.getNode();
+				if (s.tagName === 'LI' && !(s.parentNode.lastChild === s)) {
+					var i = t.ed.getDoc().createTextNode('\uFEFF');
+					s.appendChild(i);
+				}
+			}
+
+			bookmark = sel.getBookmark();
+			actions.OL = actions.UL = recurse;
+			t.splitSafeEach(selectedBlocks, processElement);
+			sel.moveToBookmark(bookmark);
+			bookmark = null;
+
+			// we avoid doing repaint in a table as this will move the caret out of the table in Firefox 3.6
+			if (!isInTable()) {
+				// Avoids table or image handles being left behind in Firefox.
+				t.ed.execCommand('mceRepaint');
+			}
+		},
+
+		splitSafeEach: function(elements, f) {
+			if (tinymce.isGecko && (/Firefox\/[12]\.[0-9]/.test(navigator.userAgent) ||
+					/Firefox\/3\.[0-4]/.test(navigator.userAgent))) {
+				this.classBasedEach(elements, f);
+			} else {
+				each(elements, f);
+			}
+		},
+
+		classBasedEach: function(elements, f) {
+			var dom = this.ed.dom, nodes, element;
+			// Mark nodes
+			each(elements, function(element) {
+				dom.addClass(element, '_mce_act_on');
+			});
+			nodes = dom.select('._mce_act_on');
+			while (nodes.length > 0) {
+				element = nodes.shift();
+				dom.removeClass(element, '_mce_act_on');
+				f(element);
+				nodes = dom.select('._mce_act_on');
+			}
+		},
+
+		adjustPaddingFunction: function(isIndent) {
+			var indentAmount, indentUnits, ed = this.ed;
+			indentAmount = ed.settings.indentation;
+			indentUnits = /[a-z%]+/i.exec(indentAmount);
+			indentAmount = parseInt(indentAmount, 10);
+			return function(element) {
+				var currentIndent, newIndentAmount;
+				currentIndent = parseInt(ed.dom.getStyle(element, 'margin-left') || 0, 10) + parseInt(ed.dom.getStyle(element, 'padding-left') || 0, 10);
+				if (isIndent) {
+					newIndentAmount = currentIndent + indentAmount;
+				} else {
+					newIndentAmount = currentIndent - indentAmount;
+				}
+				ed.dom.setStyle(element, 'padding-left', '');
+				ed.dom.setStyle(element, 'margin-left', newIndentAmount > 0 ? newIndentAmount + indentUnits : '');
+			};
+		},
+
+		selectedBlocks: function() {
+			var ed = this.ed
+			var selectedBlocks = ed.selection.getSelectedBlocks();
+			return selectedBlocks.length == 0 ? [ ed.dom.getRoot() ] : selectedBlocks;
+		},
+
+		getInfo: function() {
+			return {
+				longname : 'Lists',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/lists',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+	tinymce.PluginManager.add("lists", tinymce.plugins.Lists);
+}());
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/css/media.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/css/media.css
new file mode 100644
index 0000000..fd04898
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/css/media.css
@@ -0,0 +1,17 @@
+#id, #name, #hspace, #vspace, #class_name, #align { width: 100px }
+#hspace, #vspace { width: 50px }
+#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px }
+#flash_base, #flash_flashvars, #html5_altsource1, #html5_altsource2, #html5_poster { width: 240px }
+#width, #height { width: 40px }
+#src, #media_type { width: 250px }
+#class { width: 120px }
+#prev { margin: 0; border: 1px solid black; width: 380px; height: 260px; overflow: auto }
+.panel_wrapper div.current { height: 420px; overflow: auto }
+#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none }
+.mceAddSelectValue { background-color: #DDDDDD }
+#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px }
+#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px }
+#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px }
+#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px }
+#qt_qtsrc { width: 200px }
+iframe {border: 1px solid gray}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js
new file mode 100644
index 0000000..37b4320
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var d=tinymce.explode("id,name,width,height,style,align,class,hspace,vspace,bgcolor,type"),h=tinymce.makeMap(d.join(",")),b=tinymce.html.Node,f,a,g=tinymce.util.JSON,e;f=[["Flash","d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["ShockWave","166b1bca-3f9c-11cf-8075-444553540000","application/x-director","http://download.macromedia.com/pub/shockwave/cabs/director/sw.c [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js
new file mode 100644
index 0000000..a0d4ef2
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js
@@ -0,0 +1,890 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var rootAttributes = tinymce.explode('id,name,width,height,style,align,class,hspace,vspace,bgcolor,type'), excludedAttrs = tinymce.makeMap(rootAttributes.join(',')), Node = tinymce.html.Node,
+		mediaTypes, scriptRegExp, JSON = tinymce.util.JSON, mimeTypes;
+
+	// Media types supported by this plugin
+	mediaTypes = [
+		// Type, clsid:s, mime types, codebase
+		["Flash", "d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash", "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],
+		["ShockWave", "166b1bca-3f9c-11cf-8075-444553540000", "application/x-director", "http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0"],
+		["WindowsMedia", "6bf52a52-394a-11d3-b153-00c04f79faa6,22d6f312-b0f6-11d0-94ab-0080c74c7e95,05589fa1-c356-11ce-bf01-00aa0055595a", "application/x-mplayer2", "http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"],
+		["QuickTime", "02bf25d5-8c17-4b23-bc80-d3488abddc6b", "video/quicktime", "http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"],
+		["RealMedia", "cfcdaa03-8be4-11cf-b84b-0020afbbccfa", "audio/x-pn-realaudio-plugin", "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],
+		["Java", "8ad9c840-044e-11d1-b3e9-00805f499d93", "application/x-java-applet", "http://java.sun.com/products/plugin/autodl/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0"],
+		["Silverlight", "dfeaf541-f3e1-4c24-acac-99c30715084a", "application/x-silverlight-2"],
+		["Iframe"],
+		["Video"],
+		["EmbeddedAudio"],
+		["Audio"]
+	];
+
+	function toArray(obj) {
+		var undef, out, i;
+
+		if (obj && !obj.splice) {
+			out = [];
+
+			for (i = 0; true; i++) {
+				if (obj[i])
+					out[i] = obj[i];
+				else
+					break;
+			}
+
+			return out;
+		}
+
+		return obj;
+	};
+
+	tinymce.create('tinymce.plugins.MediaPlugin', {
+		init : function(ed, url) {
+			var self = this, lookup = {}, i, y, item, name;
+
+			function isMediaImg(node) {
+				return node && node.nodeName === 'IMG' && ed.dom.hasClass(node, 'mceItemMedia');
+			};
+
+			self.editor = ed;
+			self.url = url;
+
+			// Parse media types into a lookup table
+			scriptRegExp = '';
+			for (i = 0; i < mediaTypes.length; i++) {
+				name = mediaTypes[i][0];
+
+				item = {
+					name : name,
+					clsids : tinymce.explode(mediaTypes[i][1] || ''),
+					mimes : tinymce.explode(mediaTypes[i][2] || ''),
+					codebase : mediaTypes[i][3]
+				};
+
+				for (y = 0; y < item.clsids.length; y++)
+					lookup['clsid:' + item.clsids[y]] = item;
+
+				for (y = 0; y < item.mimes.length; y++)
+					lookup[item.mimes[y]] = item;
+
+				lookup['mceItem' + name] = item;
+				lookup[name.toLowerCase()] = item;
+
+				scriptRegExp += (scriptRegExp ? '|' : '') + name;
+			}
+
+			// Handle the media_types setting
+			tinymce.each(ed.getParam("media_types",
+				"video=mp4,m4v,ogv,webm;" +
+				"silverlight=xap;" +
+				"flash=swf,flv;" +
+				"shockwave=dcr;" +
+				"quicktime=mov,qt,mpg,mpeg;" +
+				"shockwave=dcr;" +
+				"windowsmedia=avi,wmv,wm,asf,asx,wmx,wvx;" +
+				"realmedia=rm,ra,ram;" +
+				"java=jar;" +
+				"audio=mp3,ogg"
+			).split(';'), function(item) {
+				var i, extensions, type;
+
+				item = item.split(/=/);
+				extensions = tinymce.explode(item[1].toLowerCase());
+				for (i = 0; i < extensions.length; i++) {
+					type = lookup[item[0].toLowerCase()];
+
+					if (type)
+						lookup[extensions[i]] = type;
+				}
+			});
+
+			scriptRegExp = new RegExp('write(' + scriptRegExp + ')\\(([^)]+)\\)');
+			self.lookup = lookup;
+
+			ed.onPreInit.add(function() {
+				// Allow video elements
+				ed.schema.addValidElements('object[id|style|width|height|classid|codebase|*],param[name|value],embed[id|style|width|height|type|src|*],video[*],audio[*],source[*]');
+
+				// Convert video elements to image placeholder
+				ed.parser.addNodeFilter('object,embed,video,audio,script,iframe', function(nodes) {
+					var i = nodes.length;
+
+					while (i--)
+						self.objectToImg(nodes[i]);
+				});
+
+				// Convert image placeholders to video elements
+				ed.serializer.addNodeFilter('img', function(nodes, name, args) {
+					var i = nodes.length, node;
+
+					while (i--) {
+						node = nodes[i];
+						if ((node.attr('class') || '').indexOf('mceItemMedia') !== -1)
+							self.imgToObject(node, args);
+					}
+				});
+			});
+
+			ed.onInit.add(function() {
+				// Display "media" instead of "img" in element path
+				if (ed.theme && ed.theme.onResolveName) {
+					ed.theme.onResolveName.add(function(theme, path_object) {
+						if (path_object.name === 'img' && ed.dom.hasClass(path_object.node, 'mceItemMedia'))
+							path_object.name = 'media';
+					});
+				}
+
+				// Add contect menu if it's loaded
+				if (ed && ed.plugins.contextmenu) {
+					ed.plugins.contextmenu.onContextMenu.add(function(plugin, menu, element) {
+						if (element.nodeName === 'IMG' && element.className.indexOf('mceItemMedia') !== -1)
+							menu.add({title : 'media.edit', icon : 'media', cmd : 'mceMedia'});
+					});
+				}
+			});
+
+			// Register commands
+			ed.addCommand('mceMedia', function() {
+				var data, img;
+
+				img = ed.selection.getNode();
+				if (isMediaImg(img)) {
+					data = ed.dom.getAttrib(img, 'data-mce-json');
+					if (data) {
+						data = JSON.parse(data);
+
+						// Add some extra properties to the data object
+						tinymce.each(rootAttributes, function(name) {
+							var value = ed.dom.getAttrib(img, name);
+
+							if (value)
+								data[name] = value;
+						});
+
+						data.type = self.getType(img.className).name.toLowerCase();
+					}
+				}
+
+				if (!data) {
+					data = {
+						type : 'flash',
+						video: {sources:[]},
+						params: {}
+					};
+				}
+
+				ed.windowManager.open({
+					file : url + '/media.htm',
+					width : 430 + parseInt(ed.getLang('media.delta_width', 0)),
+					height : 500 + parseInt(ed.getLang('media.delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url,
+					data : data
+				});
+			});
+
+			// Register buttons
+			ed.addButton('media', {title : 'media.desc', cmd : 'mceMedia'});
+
+			// Update media selection status
+			ed.onNodeChange.add(function(ed, cm, node) {
+				cm.setActive('media', isMediaImg(node));
+			});
+		},
+
+		convertUrl : function(url, force_absolute) {
+			var self = this, editor = self.editor, settings = editor.settings,
+				urlConverter = settings.url_converter,
+				urlConverterScope = settings.url_converter_scope || self;
+
+			if (!url)
+				return url;
+
+			if (force_absolute)
+				return editor.documentBaseURI.toAbsolute(url);
+
+			return urlConverter.call(urlConverterScope, url, 'src', 'object');
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Media',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		/**
+		 * Converts the JSON data object to an img node.
+		 */
+		dataToImg : function(data, force_absolute) {
+			var self = this, editor = self.editor, baseUri = editor.documentBaseURI, sources, attrs, img, i;
+
+			data.params.src = self.convertUrl(data.params.src, force_absolute);
+
+			attrs = data.video.attrs;
+			if (attrs)
+				attrs.src = self.convertUrl(attrs.src, force_absolute);
+
+			if (attrs)
+				attrs.poster = self.convertUrl(attrs.poster, force_absolute);
+
+			sources = toArray(data.video.sources);
+			if (sources) {
+				for (i = 0; i < sources.length; i++)
+					sources[i].src = self.convertUrl(sources[i].src, force_absolute);
+			}
+
+			img = self.editor.dom.create('img', {
+				id : data.id,
+				style : data.style,
+				align : data.align,
+				hspace : data.hspace,
+				vspace : data.vspace,
+				src : self.editor.theme.url + '/img/trans.gif',
+				'class' : 'mceItemMedia mceItem' + self.getType(data.type).name,
+				'data-mce-json' : JSON.serialize(data, "'")
+			});
+
+			img.width = data.width || (data.type == 'audio' ? "300" : "320");
+			img.height = data.height || (data.type == 'audio' ? "32" : "240");
+
+			return img;
+		},
+
+		/**
+		 * Converts the JSON data object to a HTML string.
+		 */
+		dataToHtml : function(data, force_absolute) {
+			return this.editor.serializer.serialize(this.dataToImg(data, force_absolute), {forced_root_block : '', force_absolute : force_absolute});
+		},
+
+		/**
+		 * Converts the JSON data object to a HTML string.
+		 */
+		htmlToData : function(html) {
+			var fragment, img, data;
+
+			data = {
+				type : 'flash',
+				video: {sources:[]},
+				params: {}
+			};
+
+			fragment = this.editor.parser.parse(html);
+			img = fragment.getAll('img')[0];
+
+			if (img) {
+				data = JSON.parse(img.attr('data-mce-json'));
+				data.type = this.getType(img.attr('class')).name.toLowerCase();
+
+				// Add some extra properties to the data object
+				tinymce.each(rootAttributes, function(name) {
+					var value = img.attr(name);
+
+					if (value)
+						data[name] = value;
+				});
+			}
+
+			return data;
+		},
+
+		/**
+		 * Get type item by extension, class, clsid or mime type.
+		 *
+		 * @method getType
+		 * @param {String} value Value to get type item by.
+		 * @return {Object} Type item object or undefined.
+		 */
+		getType : function(value) {
+			var i, values, typeItem;
+
+			// Find type by checking the classes
+			values = tinymce.explode(value, ' ');
+			for (i = 0; i < values.length; i++) {
+				typeItem = this.lookup[values[i]];
+
+				if (typeItem)
+					return typeItem;
+			}
+		},
+
+		/**
+		 * Converts a tinymce.html.Node image element to video/object/embed.
+		 */
+		imgToObject : function(node, args) {
+			var self = this, editor = self.editor, video, object, embed, iframe, name, value, data,
+				source, sources, params, param, typeItem, i, item, mp4Source, replacement,
+				posterSrc, style, audio;
+
+			// Adds the flash player
+			function addPlayer(video_src, poster_src) {
+				var baseUri, flashVars, flashVarsOutput, params, flashPlayer;
+
+				flashPlayer = editor.getParam('flash_video_player_url', self.convertUrl(self.url + '/moxieplayer.swf'));
+				if (flashPlayer) {
+					baseUri = editor.documentBaseURI;
+					data.params.src = flashPlayer;
+
+					// Convert the movie url to absolute urls
+					if (editor.getParam('flash_video_player_absvideourl', true)) {
+						video_src = baseUri.toAbsolute(video_src || '', true);
+						poster_src = baseUri.toAbsolute(poster_src || '', true);
+					}
+
+					// Generate flash vars
+					flashVarsOutput = '';
+					flashVars = editor.getParam('flash_video_player_flashvars', {url : '$url', poster : '$poster'});
+					tinymce.each(flashVars, function(value, name) {
+						// Replace $url and $poster variables in flashvars value
+						value = value.replace(/\$url/, video_src || '');
+						value = value.replace(/\$poster/, poster_src || '');
+
+						if (value.length > 0)
+							flashVarsOutput += (flashVarsOutput ? '&' : '') + name + '=' + escape(value);
+					});
+
+					if (flashVarsOutput.length)
+						data.params.flashvars = flashVarsOutput;
+
+					params = editor.getParam('flash_video_player_params', {
+						allowfullscreen: true,
+						allowscriptaccess: true
+					});
+
+					tinymce.each(params, function(value, name) {
+						data.params[name] = "" + value;
+					});
+				}
+			};
+
+			data = node.attr('data-mce-json');
+			if (!data)
+				return;
+
+			data = JSON.parse(data);
+			typeItem = this.getType(node.attr('class'));
+
+			style = node.attr('data-mce-style')
+			if (!style) {
+				style = node.attr('style');
+
+				if (style)
+					style = editor.dom.serializeStyle(editor.dom.parseStyle(style, 'img'));
+			}
+
+			// Handle iframe
+			if (typeItem.name === 'Iframe') {
+				replacement = new Node('iframe', 1);
+
+				tinymce.each(rootAttributes, function(name) {
+					var value = node.attr(name);
+
+					if (name == 'class' && value)
+						value = value.replace(/mceItem.+ ?/g, '');
+
+					if (value && value.length > 0)
+						replacement.attr(name, value);
+				});
+
+				for (name in data.params)
+					replacement.attr(name, data.params[name]);
+
+				replacement.attr({
+					style: style,
+					src: data.params.src
+				});
+
+				node.replace(replacement);
+
+				return;
+			}
+
+			// Handle scripts
+			if (this.editor.settings.media_use_script) {
+				replacement = new Node('script', 1).attr('type', 'text/javascript');
+
+				value = new Node('#text', 3);
+				value.value = 'write' + typeItem.name + '(' + JSON.serialize(tinymce.extend(data.params, {
+					width: node.attr('width'),
+					height: node.attr('height')
+				})) + ');';
+
+				replacement.append(value);
+				node.replace(replacement);
+
+				return;
+			}
+
+			// Add HTML5 video element
+			if (typeItem.name === 'Video' && data.video.sources[0]) {
+				// Create new object element
+				video = new Node('video', 1).attr(tinymce.extend({
+					id : node.attr('id'),
+					width: node.attr('width'),
+					height: node.attr('height'),
+					style : style
+				}, data.video.attrs));
+
+				// Get poster source and use that for flash fallback
+				if (data.video.attrs)
+					posterSrc = data.video.attrs.poster;
+
+				sources = data.video.sources = toArray(data.video.sources);
+				for (i = 0; i < sources.length; i++) {
+					if (/\.mp4$/.test(sources[i].src))
+						mp4Source = sources[i].src;
+				}
+
+				if (!sources[0].type) {
+					video.attr('src', sources[0].src);
+					sources.splice(0, 1);
+				}
+
+				for (i = 0; i < sources.length; i++) {
+					source = new Node('source', 1).attr(sources[i]);
+					source.shortEnded = true;
+					video.append(source);
+				}
+
+				// Create flash fallback for video if we have a mp4 source
+				if (mp4Source) {
+					addPlayer(mp4Source, posterSrc);
+					typeItem = self.getType('flash');
+				} else
+					data.params.src = '';
+			}
+
+			// Add HTML5 audio element
+			if (typeItem.name === 'Audio' && data.video.sources[0]) {
+				// Create new object element
+				audio = new Node('audio', 1).attr(tinymce.extend({
+					id : node.attr('id'),
+					width: node.attr('width'),
+					height: node.attr('height'),
+					style : style
+				}, data.video.attrs));
+
+				// Get poster source and use that for flash fallback
+				if (data.video.attrs)
+					posterSrc = data.video.attrs.poster;
+
+				sources = data.video.sources = toArray(data.video.sources);
+				if (!sources[0].type) {
+					audio.attr('src', sources[0].src);
+					sources.splice(0, 1);
+				}
+
+				for (i = 0; i < sources.length; i++) {
+					source = new Node('source', 1).attr(sources[i]);
+					source.shortEnded = true;
+					audio.append(source);
+				}
+
+				data.params.src = '';
+			}
+
+			if (typeItem.name === 'EmbeddedAudio') {
+				embed = new Node('embed', 1);
+				embed.shortEnded = true;
+				embed.attr({
+					id: node.attr('id'),
+					width: node.attr('width'),
+					height: node.attr('height'),
+					style : style,
+					type: node.attr('type')
+				});
+
+				for (name in data.params)
+					embed.attr(name, data.params[name]);
+
+				tinymce.each(rootAttributes, function(name) {
+					if (data[name] && name != 'type')
+						embed.attr(name, data[name]);
+				});
+
+				data.params.src = '';
+			}
+
+			// Do we have a params src then we can generate object
+			if (data.params.src) {
+				// Is flv movie add player for it
+				if (/\.flv$/i.test(data.params.src))
+					addPlayer(data.params.src, '');
+
+				if (args && args.force_absolute)
+					data.params.src = editor.documentBaseURI.toAbsolute(data.params.src);
+
+				// Create new object element
+				object = new Node('object', 1).attr({
+					id : node.attr('id'),
+					width: node.attr('width'),
+					height: node.attr('height'),
+					style : style
+				});
+
+				tinymce.each(rootAttributes, function(name) {
+					var value = data[name];
+
+					if (name == 'class' && value)
+						value = value.replace(/mceItem.+ ?/g, '');
+
+					if (value && name != 'type')
+						object.attr(name, value);
+				});
+
+				// Add params
+				for (name in data.params) {
+					param = new Node('param', 1);
+					param.shortEnded = true;
+					value = data.params[name];
+
+					// Windows media needs to use url instead of src for the media URL
+					if (name === 'src' && typeItem.name === 'WindowsMedia')
+						name = 'url';
+
+					param.attr({name: name, value: value});
+					object.append(param);
+				}
+
+				// Setup add type and classid if strict is disabled
+				if (this.editor.getParam('media_strict', true)) {
+					object.attr({
+						data: data.params.src,
+						type: typeItem.mimes[0]
+					});
+				} else {
+					object.attr({
+						classid: "clsid:" + typeItem.clsids[0],
+						codebase: typeItem.codebase
+					});
+
+					embed = new Node('embed', 1);
+					embed.shortEnded = true;
+					embed.attr({
+						id: node.attr('id'),
+						width: node.attr('width'),
+						height: node.attr('height'),
+						style : style,
+						type: typeItem.mimes[0]
+					});
+
+					for (name in data.params)
+						embed.attr(name, data.params[name]);
+
+					tinymce.each(rootAttributes, function(name) {
+						if (data[name] && name != 'type')
+							embed.attr(name, data[name]);
+					});
+
+					object.append(embed);
+				}
+
+				// Insert raw HTML
+				if (data.object_html) {
+					value = new Node('#text', 3);
+					value.raw = true;
+					value.value = data.object_html;
+					object.append(value);
+				}
+
+				// Append object to video element if it exists
+				if (video)
+					video.append(object);
+			}
+
+			if (video) {
+				// Insert raw HTML
+				if (data.video_html) {
+					value = new Node('#text', 3);
+					value.raw = true;
+					value.value = data.video_html;
+					video.append(value);
+				}
+			}
+
+			if (audio) {
+				// Insert raw HTML
+				if (data.video_html) {
+					value = new Node('#text', 3);
+					value.raw = true;
+					value.value = data.video_html;
+					audio.append(value);
+				}
+			}
+
+			var n = video || audio || object || embed;
+			if (n)
+				node.replace(n);
+			else
+				node.remove();
+		},
+
+		/**
+		 * Converts a tinymce.html.Node video/object/embed to an img element.
+		 *
+		 * The video/object/embed will be converted into an image placeholder with a JSON data attribute like this:
+		 * <img class="mceItemMedia mceItemFlash" width="100" height="100" data-mce-json="{..}" />
+		 *
+		 * The JSON structure will be like this:
+		 * {'params':{'flashvars':'something','quality':'high','src':'someurl'}, 'video':{'sources':[{src: 'someurl', type: 'video/mp4'}]}}
+		 */
+		objectToImg : function(node) {
+			var object, embed, video, iframe, img, name, id, width, height, style, i, html,
+				param, params, source, sources, data, type, lookup = this.lookup,
+				matches, attrs, urlConverter = this.editor.settings.url_converter,
+				urlConverterScope = this.editor.settings.url_converter_scope,
+				hspace, vspace, align, bgcolor;
+
+			function getInnerHTML(node) {
+				return new tinymce.html.Serializer({
+					inner: true,
+					validate: false
+				}).serialize(node);
+			};
+
+			function lookupAttribute(o, attr) {
+				return lookup[(o.attr(attr) || '').toLowerCase()];
+			}
+
+			function lookupExtension(src) {
+				var ext = src.replace(/^.*\.([^.]+)$/, '$1');
+				return lookup[ext.toLowerCase() || ''];
+			}
+
+			// If node isn't in document
+			if (!node.parent)
+				return;
+
+			// Handle media scripts
+			if (node.name === 'script') {
+				if (node.firstChild)
+					matches = scriptRegExp.exec(node.firstChild.value);
+
+				if (!matches)
+					return;
+
+				type = matches[1];
+				data = {video : {}, params : JSON.parse(matches[2])};
+				width = data.params.width;
+				height = data.params.height;
+			}
+
+			// Setup data objects
+			data = data || {
+				video : {},
+				params : {}
+			};
+
+			// Setup new image object
+			img = new Node('img', 1);
+			img.attr({
+				src : this.editor.theme.url + '/img/trans.gif'
+			});
+
+			// Video element
+			name = node.name;
+			if (name === 'video' || name == 'audio') {
+				video = node;
+				object = node.getAll('object')[0];
+				embed = node.getAll('embed')[0];
+				width = video.attr('width');
+				height = video.attr('height');
+				id = video.attr('id');
+				data.video = {attrs : {}, sources : []};
+
+				// Get all video attributes
+				attrs = data.video.attrs;
+				for (name in video.attributes.map)
+					attrs[name] = video.attributes.map[name];
+
+				source = node.attr('src');
+				if (source)
+					data.video.sources.push({src : urlConverter.call(urlConverterScope, source, 'src', node.name)});
+
+				// Get all sources
+				sources = video.getAll("source");
+				for (i = 0; i < sources.length; i++) {
+					source = sources[i].remove();
+
+					data.video.sources.push({
+						src: urlConverter.call(urlConverterScope, source.attr('src'), 'src', 'source'),
+						type: source.attr('type'),
+						media: source.attr('media')
+					});
+				}
+
+				// Convert the poster URL
+				if (attrs.poster)
+					attrs.poster = urlConverter.call(urlConverterScope, attrs.poster, 'poster', node.name);
+			}
+
+			// Object element
+			if (node.name === 'object') {
+				object = node;
+				embed = node.getAll('embed')[0];
+			}
+
+			// Embed element
+			if (node.name === 'embed')
+				embed = node;
+
+			// Iframe element
+			if (node.name === 'iframe') {
+				iframe = node;
+				type = 'Iframe';
+			}
+
+			if (object) {
+				// Get width/height
+				width = width || object.attr('width');
+				height = height || object.attr('height');
+				style = style || object.attr('style');
+				id = id || object.attr('id');
+				hspace = hspace || object.attr('hspace');
+				vspace = vspace || object.attr('vspace');
+				align = align || object.attr('align');
+				bgcolor = bgcolor || object.attr('bgcolor');
+				data.name = object.attr('name');
+
+				// Get all object params
+				params = object.getAll("param");
+				for (i = 0; i < params.length; i++) {
+					param = params[i];
+					name = param.remove().attr('name');
+
+					if (!excludedAttrs[name])
+						data.params[name] = param.attr('value');
+				}
+
+				data.params.src = data.params.src || object.attr('data');
+			}
+
+			if (embed) {
+				// Get width/height
+				width = width || embed.attr('width');
+				height = height || embed.attr('height');
+				style = style || embed.attr('style');
+				id = id || embed.attr('id');
+				hspace = hspace || embed.attr('hspace');
+				vspace = vspace || embed.attr('vspace');
+				align = align || embed.attr('align');
+				bgcolor = bgcolor || embed.attr('bgcolor');
+
+				// Get all embed attributes
+				for (name in embed.attributes.map) {
+					if (!excludedAttrs[name] && !data.params[name])
+						data.params[name] = embed.attributes.map[name];
+				}
+			}
+
+			if (iframe) {
+				// Get width/height
+				width = iframe.attr('width');
+				height = iframe.attr('height');
+				style = style || iframe.attr('style');
+				id = iframe.attr('id');
+				hspace = iframe.attr('hspace');
+				vspace = iframe.attr('vspace');
+				align = iframe.attr('align');
+				bgcolor = iframe.attr('bgcolor');
+
+				tinymce.each(rootAttributes, function(name) {
+					img.attr(name, iframe.attr(name));
+				});
+
+				// Get all iframe attributes
+				for (name in iframe.attributes.map) {
+					if (!excludedAttrs[name] && !data.params[name])
+						data.params[name] = iframe.attributes.map[name];
+				}
+			}
+
+			// Use src not movie
+			if (data.params.movie) {
+				data.params.src = data.params.src || data.params.movie;
+				delete data.params.movie;
+			}
+
+			// Convert the URL to relative/absolute depending on configuration
+			if (data.params.src)
+				data.params.src = urlConverter.call(urlConverterScope, data.params.src, 'src', 'object');
+
+			if (video) {
+				if (node.name === 'video')
+					type = lookup.video.name;
+				else if (node.name === 'audio')
+					type = lookup.audio.name;
+			}
+
+			if (object && !type)
+				type = (lookupAttribute(object, 'clsid') || lookupAttribute(object, 'classid') || lookupAttribute(object, 'type') || {}).name;
+
+			if (embed && !type)
+				type = (lookupAttribute(embed, 'type') || lookupExtension(data.params.src) || {}).name;
+
+			// for embedded audio we preserve the original specified type
+			if (embed && type == 'EmbeddedAudio') {
+				data.params.type = embed.attr('type');
+			}
+
+			// Replace the video/object/embed element with a placeholder image containing the data
+			node.replace(img);
+
+			// Remove embed
+			if (embed)
+				embed.remove();
+
+			// Serialize the inner HTML of the object element
+			if (object) {
+				html = getInnerHTML(object.remove());
+
+				if (html)
+					data.object_html = html;
+			}
+
+			// Serialize the inner HTML of the video element
+			if (video) {
+				html = getInnerHTML(video.remove());
+
+				if (html)
+					data.video_html = html;
+			}
+
+			data.hspace = hspace;
+			data.vspace = vspace;
+			data.align = align;
+			data.bgcolor = bgcolor;
+
+			// Set width/height of placeholder
+			img.attr({
+				id : id,
+				'class' : 'mceItemMedia mceItem' + (type || 'Flash'),
+				style : style,
+				width : width || (node.name == 'audio' ? "300" : "320"),
+				height : height || (node.name == 'audio' ? "32" : "240"),
+				hspace : hspace,
+				vspace : vspace,
+				align : align,
+				bgcolor : bgcolor,
+				"data-mce-json" : JSON.serialize(data, "'")
+			});
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js
new file mode 100644
index 0000000..6fe25de
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js
@@ -0,0 +1,73 @@
+/**
+ * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
+ */
+
+function writeFlash(p) {
+	writeEmbed(
+		'D27CDB6E-AE6D-11cf-96B8-444553540000',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'application/x-shockwave-flash',
+		p
+	);
+}
+
+function writeShockWave(p) {
+	writeEmbed(
+	'166B1BCA-3F9C-11CF-8075-444553540000',
+	'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
+	'application/x-director',
+		p
+	);
+}
+
+function writeQuickTime(p) {
+	writeEmbed(
+		'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
+		'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
+		'video/quicktime',
+		p
+	);
+}
+
+function writeRealMedia(p) {
+	writeEmbed(
+		'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'audio/x-pn-realaudio-plugin',
+		p
+	);
+}
+
+function writeWindowsMedia(p) {
+	p.url = p.src;
+	writeEmbed(
+		'6BF52A52-394A-11D3-B153-00C04F79FAA6',
+		'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
+		'application/x-mplayer2',
+		p
+	);
+}
+
+function writeEmbed(cls, cb, mt, p) {
+	var h = '', n;
+
+	h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
+	h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
+	h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
+	h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
+	h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
+	h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
+	h += '>';
+
+	for (n in p)
+		h += '<param name="' + n + '" value="' + p[n] + '">';
+
+	h += '<embed type="' + mt + '"';
+
+	for (n in p)
+		h += n + '="' + p[n] + '" ';
+
+	h += '></embed></object>';
+
+	document.write(h);
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/js/media.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/js/media.js
new file mode 100644
index 0000000..43e9ac4
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/js/media.js
@@ -0,0 +1,470 @@
+(function() {
+	var url;
+
+	if (url = tinyMCEPopup.getParam("media_external_list_url"))
+		document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
+
+	function get(id) {
+		return document.getElementById(id);
+	}
+
+	function clone(obj) {
+		var i, len, copy, attr;
+
+		if (null == obj || "object" != typeof obj)
+			return obj;
+
+		// Handle Array
+		if ('length' in obj) {
+			copy = [];
+
+			for (i = 0, len = obj.length; i < len; ++i) {
+				copy[i] = clone(obj[i]);
+			}
+
+			return copy;
+		}
+
+		// Handle Object
+		copy = {};
+		for (attr in obj) {
+			if (obj.hasOwnProperty(attr))
+				copy[attr] = clone(obj[attr]);
+		}
+
+		return copy;
+	}
+
+	function getVal(id) {
+		var elm = get(id);
+
+		if (elm.nodeName == "SELECT")
+			return elm.options[elm.selectedIndex].value;
+
+		if (elm.type == "checkbox")
+			return elm.checked;
+
+		return elm.value;
+	}
+
+	function setVal(id, value, name) {
+		if (typeof(value) != 'undefined' && value != null) {
+			var elm = get(id);
+
+			if (elm.nodeName == "SELECT")
+				selectByValue(document.forms[0], id, value);
+			else if (elm.type == "checkbox") {
+				if (typeof(value) == 'string') {
+					value = value.toLowerCase();
+					value = (!name && value === 'true') || (name && value === name.toLowerCase());
+				}
+				elm.checked = !!value;
+			} else
+				elm.value = value;
+		}
+	}
+
+	window.Media = {
+		init : function() {
+			var html, editor, self = this;
+
+			self.editor = editor = tinyMCEPopup.editor;
+
+			// Setup file browsers and color pickers
+			get('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
+			get('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','quicktime_qtsrc','media','media');
+			get('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+			get('video_altsource1_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource1','video_altsource1','media','media');
+			get('video_altsource2_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource2','video_altsource2','media','media');
+			get('audio_altsource1_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource1','audio_altsource1','media','media');
+			get('audio_altsource2_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource2','audio_altsource2','media','media');
+			get('video_poster_filebrowser').innerHTML = getBrowserHTML('filebrowser_poster','video_poster','media','image');
+
+			html = self.getMediaListHTML('medialist', 'src', 'media', 'media');
+			if (html == "")
+				get("linklistrow").style.display = 'none';
+			else
+				get("linklistcontainer").innerHTML = html;
+
+			if (isVisible('filebrowser'))
+				get('src').style.width = '230px';
+
+			if (isVisible('video_filebrowser_altsource1'))
+				get('video_altsource1').style.width = '220px';
+
+			if (isVisible('video_filebrowser_altsource2'))
+				get('video_altsource2').style.width = '220px';
+
+			if (isVisible('audio_filebrowser_altsource1'))
+				get('audio_altsource1').style.width = '220px';
+
+			if (isVisible('audio_filebrowser_altsource2'))
+				get('audio_altsource2').style.width = '220px';
+
+			if (isVisible('filebrowser_poster'))
+				get('video_poster').style.width = '220px';
+
+			editor.dom.setOuterHTML(get('media_type'), self.getMediaTypeHTML(editor));
+
+			self.setDefaultDialogSettings(editor);
+			self.data = clone(tinyMCEPopup.getWindowArg('data'));
+			self.dataToForm();
+			self.preview();
+
+			updateColor('bgcolor_pick', 'bgcolor');
+		},
+
+		insert : function() {
+			var editor = tinyMCEPopup.editor;
+
+			this.formToData();
+			editor.execCommand('mceRepaint');
+			tinyMCEPopup.restoreSelection();
+			editor.selection.setNode(editor.plugins.media.dataToImg(this.data));
+			tinyMCEPopup.close();
+		},
+
+		preview : function() {
+			get('prev').innerHTML = this.editor.plugins.media.dataToHtml(this.data, true);
+		},
+
+		moveStates : function(to_form, field) {
+			var data = this.data, editor = this.editor,
+				mediaPlugin = editor.plugins.media, ext, src, typeInfo, defaultStates, src;
+
+			defaultStates = {
+				// QuickTime
+				quicktime_autoplay : true,
+				quicktime_controller : true,
+
+				// Flash
+				flash_play : true,
+				flash_loop : true,
+				flash_menu : true,
+
+				// WindowsMedia
+				windowsmedia_autostart : true,
+				windowsmedia_enablecontextmenu : true,
+				windowsmedia_invokeurls : true,
+
+				// RealMedia
+				realmedia_autogotourl : true,
+				realmedia_imagestatus : true
+			};
+
+			function parseQueryParams(str) {
+				var out = {};
+
+				if (str) {
+					tinymce.each(str.split('&'), function(item) {
+						var parts = item.split('=');
+
+						out[unescape(parts[0])] = unescape(parts[1]);
+					});
+				}
+
+				return out;
+			};
+
+			function setOptions(type, names) {
+				var i, name, formItemName, value, list;
+
+				if (type == data.type || type == 'global') {
+					names = tinymce.explode(names);
+					for (i = 0; i < names.length; i++) {
+						name = names[i];
+						formItemName = type == 'global' ? name : type + '_' + name;
+
+						if (type == 'global')
+						list = data;
+					else if (type == 'video' || type == 'audio') {
+							list = data.video.attrs;
+
+							if (!list && !to_form)
+							data.video.attrs = list = {};
+						} else
+						list = data.params;
+
+						if (list) {
+							if (to_form) {
+								setVal(formItemName, list[name], type == 'video' || type == 'audio' ? name : '');
+							} else {
+								delete list[name];
+
+								value = getVal(formItemName);
+								if ((type == 'video' || type == 'audio') && value === true)
+									value = name;
+
+								if (defaultStates[formItemName]) {
+									if (value !== defaultStates[formItemName]) {
+										value = "" + value;
+										list[name] = value;
+									}
+								} else if (value) {
+									value = "" + value;
+									list[name] = value;
+								}
+							}
+						}
+					}
+				}
+			}
+
+			if (!to_form) {
+				data.type = get('media_type').options[get('media_type').selectedIndex].value;
+				data.width = getVal('width');
+				data.height = getVal('height');
+
+				// Switch type based on extension
+				src = getVal('src');
+				if (field == 'src') {
+					ext = src.replace(/^.*\.([^.]+)$/, '$1');
+					if (typeInfo = mediaPlugin.getType(ext))
+						data.type = typeInfo.name.toLowerCase();
+
+					setVal('media_type', data.type);
+				}
+
+				if (data.type == "video" || data.type == "audio") {
+					if (!data.video.sources)
+						data.video.sources = [];
+
+					data.video.sources[0] = {src: getVal('src')};
+				}
+			}
+
+			// Hide all fieldsets and show the one active
+			get('video_options').style.display = 'none';
+			get('audio_options').style.display = 'none';
+			get('flash_options').style.display = 'none';
+			get('quicktime_options').style.display = 'none';
+			get('shockwave_options').style.display = 'none';
+			get('windowsmedia_options').style.display = 'none';
+			get('realmedia_options').style.display = 'none';
+			get('embeddedaudio_options').style.display = 'none';
+
+			if (get(data.type + '_options'))
+				get(data.type + '_options').style.display = 'block';
+
+			setVal('media_type', data.type);
+
+			setOptions('flash', 'play,loop,menu,swliveconnect,quality,scale,salign,wmode,base,flashvars');
+			setOptions('quicktime', 'loop,autoplay,cache,controller,correction,enablejavascript,kioskmode,autohref,playeveryframe,targetcache,scale,starttime,endtime,target,qtsrcchokespeed,volume,qtsrc');
+			setOptions('shockwave', 'sound,progress,autostart,swliveconnect,swvolume,swstretchstyle,swstretchhalign,swstretchvalign');
+			setOptions('windowsmedia', 'autostart,enabled,enablecontextmenu,fullscreen,invokeurls,mute,stretchtofit,windowlessvideo,balance,baseurl,captioningid,currentmarker,currentposition,defaultframe,playcount,rate,uimode,volume');
+			setOptions('realmedia', 'autostart,loop,autogotourl,center,imagestatus,maintainaspect,nojava,prefetch,shuffle,console,controls,numloop,scriptcallbacks');
+			setOptions('video', 'poster,autoplay,loop,muted,preload,controls');
+			setOptions('audio', 'autoplay,loop,preload,controls');
+			setOptions('embeddedaudio', 'autoplay,loop,controls');
+			setOptions('global', 'id,name,vspace,hspace,bgcolor,align,width,height');
+
+			if (to_form) {
+				if (data.type == 'video') {
+					if (data.video.sources[0])
+						setVal('src', data.video.sources[0].src);
+
+					src = data.video.sources[1];
+					if (src)
+						setVal('video_altsource1', src.src);
+
+					src = data.video.sources[2];
+					if (src)
+						setVal('video_altsource2', src.src);
+                } else if (data.type == 'audio') {
+                    if (data.video.sources[0])
+                        setVal('src', data.video.sources[0].src);
+                    
+                    src = data.video.sources[1];
+                    if (src)
+                        setVal('audio_altsource1', src.src);
+                    
+                    src = data.video.sources[2];
+                    if (src)
+                        setVal('audio_altsource2', src.src);
+				} else {
+					// Check flash vars
+					if (data.type == 'flash') {
+						tinymce.each(editor.getParam('flash_video_player_flashvars', {url : '$url', poster : '$poster'}), function(value, name) {
+							if (value == '$url')
+								data.params.src = parseQueryParams(data.params.flashvars)[name] || data.params.src || '';
+						});
+					}
+
+					setVal('src', data.params.src);
+				}
+			} else {
+				src = getVal("src");
+
+				// YouTube *NEW*
+				if (src.match(/youtu.be\/[a-z1-9.-_]+/)) {
+					data.width = 425;
+					data.height = 350;
+					data.params.frameborder = '0';
+					data.type = 'iframe';
+					src = 'http://www.youtube.com/embed/' + src.match(/youtu.be\/([a-z1-9.-_]+)/)[1];
+					setVal('src', src);
+					setVal('media_type', data.type);
+				}
+
+				// YouTube
+				if (src.match(/youtube.com(.+)v=([^&]+)/)) {
+					data.width = 425;
+					data.height = 350;
+					data.params.frameborder = '0';
+					data.type = 'iframe';
+					src = 'http://www.youtube.com/embed/' + src.match(/v=([^&]+)/)[1];
+					setVal('src', src);
+					setVal('media_type', data.type);
+				}
+
+				// Google video
+				if (src.match(/video.google.com(.+)docid=([^&]+)/)) {
+					data.width = 425;
+					data.height = 326;
+					data.type = 'flash';
+					src = 'http://video.google.com/googleplayer.swf?docId=' + src.match(/docid=([^&]+)/)[1] + '&hl=en';
+					setVal('src', src);
+					setVal('media_type', data.type);
+				}
+
+				if (data.type == 'video') {
+					if (!data.video.sources)
+						data.video.sources = [];
+
+					data.video.sources[0] = {src : src};
+
+					src = getVal("video_altsource1");
+					if (src)
+						data.video.sources[1] = {src : src};
+
+					src = getVal("video_altsource2");
+					if (src)
+						data.video.sources[2] = {src : src};
+                } else if (data.type == 'audio') {
+                    if (!data.video.sources)
+                        data.video.sources = [];
+                    
+                    data.video.sources[0] = {src : src};
+                    
+                    src = getVal("audio_altsource1");
+                    if (src)
+                        data.video.sources[1] = {src : src};
+                    
+                    src = getVal("audio_altsource2");
+                    if (src)
+                        data.video.sources[2] = {src : src};
+				} else
+					data.params.src = src;
+
+				// Set default size
+                setVal('width', data.width || (data.type == 'audio' ? 300 : 320));
+                setVal('height', data.height || (data.type == 'audio' ? 32 : 240));
+			}
+		},
+
+		dataToForm : function() {
+			this.moveStates(true);
+		},
+
+		formToData : function(field) {
+			if (field == "width" || field == "height")
+				this.changeSize(field);
+
+			if (field == 'source') {
+				this.moveStates(false, field);
+				setVal('source', this.editor.plugins.media.dataToHtml(this.data));
+				this.panel = 'source';
+			} else {
+				if (this.panel == 'source') {
+					this.data = clone(this.editor.plugins.media.htmlToData(getVal('source')));
+					this.dataToForm();
+					this.panel = '';
+				}
+
+				this.moveStates(false, field);
+				this.preview();
+			}
+		},
+
+		beforeResize : function() {
+            this.width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
+            this.height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
+		},
+
+		changeSize : function(type) {
+			var width, height, scale, size;
+
+			if (get('constrain').checked) {
+                width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
+                height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
+
+				if (type == 'width') {
+					this.height = Math.round((width / this.width) * height);
+					setVal('height', this.height);
+				} else {
+					this.width = Math.round((height / this.height) * width);
+					setVal('width', this.width);
+				}
+			}
+		},
+
+		getMediaListHTML : function() {
+			if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
+				var html = "";
+
+				html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;Media.formToData(\'src\');">';
+				html += '<option value="">---</option>';
+
+				for (var i=0; i<tinyMCEMediaList.length; i++)
+					html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';
+
+				html += '</select>';
+
+				return html;
+			}
+
+			return "";
+		},
+
+		getMediaTypeHTML : function(editor) {
+			function option(media_type, element) {
+				if (!editor.schema.getElementRule(element || media_type)) {
+					return '';
+				}
+
+				return '<option value="'+media_type+'">'+tinyMCEPopup.editor.translate("media_dlg."+media_type)+'</option>'
+			}
+
+			var html = "";
+
+			html += '<select id="media_type" name="media_type" onchange="Media.formToData(\'type\');">';
+			html += option("video");
+			html += option("audio");
+			html += option("flash", "object");
+			html += option("quicktime", "object");
+			html += option("shockwave", "object");
+			html += option("windowsmedia", "object");
+			html += option("realmedia", "object");
+			html += option("iframe");
+
+			if (editor.getParam('media_embedded_audio', false)) {
+				html += option('embeddedaudio', "object");
+			}
+
+			html += '</select>';
+			return html;
+		},
+
+		setDefaultDialogSettings : function(editor) {
+			var defaultDialogSettings = editor.getParam("media_dialog_defaults", {});
+			tinymce.each(defaultDialogSettings, function(v, k) {
+				setVal(k, v);
+			});
+		}
+	};
+
+	tinyMCEPopup.requireLangPack();
+	tinyMCEPopup.onInit.add(function() {
+		Media.init();
+	});
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js
new file mode 100644
index 0000000..ecef3a8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.media_dlg',{list:"List",file:"File/URL",advanced:"Advanced",general:"General",title:"Insert/Edit Embedded Media","align_top_left":"Top Left","align_center":"Center","align_left":"Left","align_bottom":"Bottom","align_right":"Right","align_top":"Top","qt_stream_warn":"Streamed RTSP resources should be added to the QT Source field under the Advanced tab.\nYou should also add a non-streamed version to the Source field.",qtsrc:"QT Source",progress:"Progress",sound:"Sound", [...]
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/media.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/media.htm
new file mode 100644
index 0000000..50efe91
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/media.htm
@@ -0,0 +1,922 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#media_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/media.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<link href="css/media.css" rel="stylesheet" type="text/css" />
+</head>
+<body style="display: none" role="application">
+<form onsubmit="Media.insert();return false;" action="#">
+		<div class="tabs" role="presentation">
+			<ul>
+				<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');Media.formToData();" onmousedown="return false;">{#media_dlg.general}</a></span></li>
+				<li id="advanced_tab" aria-controls="advanced_panel"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');Media.formToData();" onmousedown="return false;">{#media_dlg.advanced}</a></span></li>
+				<li id="source_tab" aria-controls="source_panel"><span><a href="javascript:mcTabs.displayTab('source_tab','source_panel');Media.formToData('source');" onmousedown="return false;">{#media_dlg.source}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{#media_dlg.general}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+							<tr>
+								<td><label for="media_type">{#media_dlg.type}</label></td>
+								<td>
+									<select id="media_type"></select>
+								</td>
+							</tr>
+							<tr>
+							<td><label for="src">{#media_dlg.file}</label></td>
+								<td>
+									<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input id="src" name="src" type="text" value="" class="mceFocus" onchange="Media.formToData();" /></td>
+										<td id="filebrowsercontainer"> </td>
+									</tr>
+									</table>
+								</td>
+							</tr>
+							<tr id="linklistrow">
+								<td><label for="linklist">{#media_dlg.list}</label></td>
+								<td id="linklistcontainer"><select id="linklist"><option value=""></option></select></td>
+							</tr>
+							<tr>
+								<td><label for="width">{#media_dlg.size}</label></td>
+								<td>
+									<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+										<tr>
+											<td><input type="text" id="width" name="width" value="" class="size" onchange="Media.formToData('width');" onfocus="Media.beforeResize();" /> x <input type="text" id="height" name="height" value="" class="size" onfocus="Media.beforeResize();" onchange="Media.formToData('height');" /></td>
+											<td>  <input id="constrain" type="checkbox" name="constrain" class="checkbox" checked="checked" /></td>
+											<td><label id="constrainlabel" for="constrain">{#media_dlg.constrain_proportions}</label></td>
+										</tr>
+									</table>
+								</td>
+							</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{#media_dlg.preview}</legend>
+					<div id="prev"></div>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{#media_dlg.advanced}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0" width="100%">
+						<tr>
+							<td><label for="id">{#media_dlg.id}</label></td>
+							<td><input type="text" id="id" name="id" onchange="Media.formToData();" /></td>
+							<td><label for="name">{#media_dlg.name}</label></td>
+							<td><input type="text" id="name" name="name" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="align">{#media_dlg.align}</label></td>
+							<td>
+								<select id="align" name="align" onchange="Media.formToData();">
+									<option value="">{#not_set}</option> 
+									<option value="top">{#media_dlg.align_top}</option>
+									<option value="right">{#media_dlg.align_right}</option>
+									<option value="bottom">{#media_dlg.align_bottom}</option>
+									<option value="left">{#media_dlg.align_left}</option>
+								</select>
+							</td>
+
+							<td><label for="bgcolor">{#media_dlg.bgcolor}</label></td>
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');Media.formToData();" /></td>
+										<td id="bgcolor_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="vspace">{#media_dlg.vspace}</label></td>
+							<td><input type="text" id="vspace" name="vspace" class="number" onchange="Media.formToData();" /></td>
+							<td><label for="hspace">{#media_dlg.hspace}</label></td>
+							<td><input type="text" id="hspace" name="hspace" class="number" onchange="Media.formToData();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="video_options">
+					<legend>{#media_dlg.html5_video_options}</legend>
+
+					<table role="presentation">
+						<tr>
+							<td><label for="video_altsource1">{#media_dlg.altsource1}</label></td>
+							<td>
+								<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" id="video_altsource1" name="video_altsource1" onchange="Media.formToData();" style="width: 240px" /></td>
+										<td id="video_altsource1_filebrowser"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="video_altsource2">{#media_dlg.altsource2}</label></td>
+							<td>
+								<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" id="video_altsource2" name="video_altsource2" onchange="Media.formToData();" style="width: 240px" /></td>
+										<td id="video_altsource2_filebrowser"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="video_poster">{#media_dlg.poster}</label></td>
+							<td>
+								<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" id="video_poster" name="video_poster" onchange="Media.formToData();" style="width: 240px" /></td>
+										<td id="video_poster_filebrowser"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="video_preload">{#media_dlg.preload}</label></td>
+							<td>
+								<select id="video_preload" name="video_preload" onchange="Media.formToData();">
+									<option value="none">{#media_dlg.preload_none}</option> 
+									<option value="metadata">{#media_dlg.preload_metadata}</option>
+									<option value="auto">{#media_dlg.preload_auto}</option>
+								</select>
+							</td>
+						</tr>
+					</table>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="video_autoplay" name="video_autoplay" onchange="Media.formToData();" /></td>
+										<td><label for="video_autoplay">{#media_dlg.play}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="video_muted" name="video_muted" onchange="Media.formToData();" /></td>
+										<td><label for="video_muted">{#media_dlg.mute}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td>
+									<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+											<tr>
+													<td><input type="checkbox" class="checkbox" id="video_loop" name="video_loop" onchange="Media.formToData();" /></td>
+													<td><label for="video_loop">{#media_dlg.loop}</label></td>
+											</tr>
+									</table>
+							</td>
+
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="video_controls" name="video_controls" onchange="Media.formToData();" /></td>
+										<td><label for="video_controls">{#media_dlg.controls}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="embeddedaudio_options">
+					<legend>{#media_dlg.embedded_audio_options}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="embeddedaudio_autoplay" name="audio_autoplay" onchange="Media.formToData();" /></td>
+										<td><label for="audio_autoplay">{#media_dlg.play}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="embeddedaudio_loop" name="audio_loop" onchange="Media.formToData();" /></td>
+										<td><label for="audio_loop">{#media_dlg.loop}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="embeddedaudio_controls" name="audio_controls" onchange="Media.formToData();" /></td>
+										<td><label for="audio_controls">{#media_dlg.controls}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="audio_options">
+					<legend>{#media_dlg.html5_audio_options}</legend>
+
+					<table role="presentation">
+						<tr>
+							<td><label for="audio_altsource1">{#media_dlg.altsource1}</label></td>
+							<td>
+								<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" id="audio_altsource1" name="audio_altsource1" onchange="Media.formToData();" style="width: 240px" /></td>
+										<td id="audio_altsource1_filebrowser"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="audio_altsource2">{#media_dlg.altsource2}</label></td>
+							<td>
+								<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" id="audio_altsource2" name="audio_altsource2" onchange="Media.formToData();" style="width: 240px" /></td>
+										<td id="audio_altsource2_filebrowser"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="audio_preload">{#media_dlg.preload}</label></td>
+							<td>
+								<select id="audio_preload" name="audio_preload" onchange="Media.formToData();">
+									<option value="none">{#media_dlg.preload_none}</option>
+									<option value="metadata">{#media_dlg.preload_metadata}</option>
+									<option value="auto">{#media_dlg.preload_auto}</option>
+								</select>
+							</td>
+						</tr>
+					</table>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="audio_autoplay" name="audio_autoplay" onchange="Media.formToData();" /></td>
+										<td><label for="audio_autoplay">{#media_dlg.play}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="audio_loop" name="audio_loop" onchange="Media.formToData();" /></td>
+										<td><label for="audio_loop">{#media_dlg.loop}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="audio_controls" name="audio_controls" onchange="Media.formToData();" /></td>
+										<td><label for="audio_controls">{#media_dlg.controls}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="flash_options">
+					<legend>{#media_dlg.flash_options}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="flash_quality">{#media_dlg.quality}</label></td>
+							<td>
+								<select id="flash_quality" name="flash_quality" onchange="Media.formToData();">
+									<option value="">{#not_set}</option> 
+									<option value="high">high</option>
+									<option value="low">low</option>
+									<option value="autolow">autolow</option>
+									<option value="autohigh">autohigh</option>
+									<option value="best">best</option>
+								</select>
+							</td>
+
+							<td><label for="flash_scale">{#media_dlg.scale}</label></td>
+							<td>
+								<select id="flash_scale" name="flash_scale" onchange="Media.formToData();">
+									<option value="">{#not_set}</option> 
+									<option value="showall">showall</option>
+									<option value="noborder">noborder</option>
+									<option value="exactfit">exactfit</option>
+									<option value="noscale">noscale</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="flash_wmode">{#media_dlg.wmode}</label></td>
+							<td>
+								<select id="flash_wmode" name="flash_wmode" onchange="Media.formToData();">
+									<option value="">{#not_set}</option> 
+									<option value="window">window</option>
+									<option value="opaque">opaque</option>
+									<option value="transparent">transparent</option>
+								</select>
+							</td>
+
+							<td><label for="flash_salign">{#media_dlg.salign}</label></td>
+							<td>
+								<select id="flash_salign" name="flash_salign" onchange="Media.formToData();">
+									<option value="">{#not_set}</option> 
+									<option value="l">{#media_dlg.align_left}</option>
+									<option value="t">{#media_dlg.align_top}</option>
+									<option value="r">{#media_dlg.align_right}</option>
+									<option value="b">{#media_dlg.align_bottom}</option>
+									<option value="tl">{#media_dlg.align_top_left}</option>
+									<option value="tr">{#media_dlg.align_top_right}</option>
+									<option value="bl">{#media_dlg.align_bottom_left}</option>
+									<option value="br">{#media_dlg.align_bottom_right}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_play" name="flash_play" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="flash_play">{#media_dlg.play}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_loop" name="flash_loop" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="flash_loop">{#media_dlg.loop}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_menu" name="flash_menu" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="flash_menu">{#media_dlg.menu}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_swliveconnect" name="flash_swliveconnect" onchange="Media.formToData();" /></td>
+										<td><label for="flash_swliveconnect">{#media_dlg.liveconnect}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+
+					<table role="presentation">
+						<tr>
+							<td><label for="flash_base">{#media_dlg.base}</label></td>
+							<td><input type="text" id="flash_base" name="flash_base" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="flash_flashvars">{#media_dlg.flashvars}</label></td>
+							<td><input type="text" id="flash_flashvars" name="flash_flashvars" onchange="Media.formToData();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="quicktime_options">
+					<legend>{#media_dlg.qt_options}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_loop" name="quicktime_loop" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_loop">{#media_dlg.loop}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_autoplay" name="quicktime_autoplay" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_autoplay">{#media_dlg.play}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_cache" name="quicktime_cache" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_cache">{#media_dlg.cache}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_controller" name="quicktime_controller" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_controller">{#media_dlg.controller}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_correction" name="quicktime_correction" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_correction">{#media_dlg.correction}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_enablejavascript" name="quicktime_enablejavascript" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_enablejavascript">{#media_dlg.enablejavascript}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_kioskmode" name="quicktime_kioskmode" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_kioskmode">{#media_dlg.kioskmode}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_autohref" name="quicktime_autohref" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_autohref">{#media_dlg.autohref}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_playeveryframe" name="quicktime_playeveryframe" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_playeveryframe">{#media_dlg.playeveryframe}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="quicktime_targetcache" name="quicktime_targetcache" onchange="Media.formToData();" /></td>
+										<td><label for="quicktime_targetcache">{#media_dlg.targetcache}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="quicktime_scale">{#media_dlg.scale}</label></td>
+							<td><select id="quicktime_scale" name="quicktime_scale" class="mceEditableSelect" onchange="Media.formToData();">
+									<option value="">{#not_set}</option> 
+									<option value="tofit">tofit</option>
+									<option value="aspect">aspect</option>
+								</select>
+							</td>
+
+							<td colspan="2"> </td>
+						</tr>
+
+						<tr>
+							<td><label for="quicktime_starttime">{#media_dlg.starttime}</label></td>
+							<td><input type="text" id="quicktime_starttime" name="quicktime_starttime" onchange="Media.formToData();" /></td>
+
+							<td><label for="quicktime_endtime">{#media_dlg.endtime}</label></td>
+							<td><input type="text" id="quicktime_endtime" name="quicktime_endtime" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="quicktime_target">{#media_dlg.target}</label></td>
+							<td><input type="text" id="quicktime_target" name="quicktime_target" onchange="Media.formToData();" /></td>
+
+							<td><label for="quicktime_href">{#media_dlg.href}</label></td>
+							<td><input type="text" id="quicktime_href" name="quicktime_href" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="quicktime_qtsrcchokespeed">{#media_dlg.qtsrcchokespeed}</label></td>
+							<td><input type="text" id="quicktime_qtsrcchokespeed" name="quicktime_qtsrcchokespeed" onchange="Media.formToData();" /></td>
+
+							<td><label for="quicktime_volume">{#media_dlg.volume}</label></td>
+							<td><input type="text" id="quicktime_volume" name="quicktime_volume" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="quicktime_qtsrc">{#media_dlg.qtsrc}</label></td>
+							<td colspan="4">
+								<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" id="quicktime_qtsrc" name="quicktime_qtsrc" onchange="Media.formToData();" /></td>
+										<td id="qtsrcfilebrowsercontainer"> </td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="windowsmedia_options">
+					<legend>{#media_dlg.wmp_options}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_autostart" name="windowsmedia_autostart" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_autostart">{#media_dlg.autostart}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_enabled" name="windowsmedia_enabled" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_enabled">{#media_dlg.enabled}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_enablecontextmenu" name="windowsmedia_enablecontextmenu" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_enablecontextmenu">{#media_dlg.menu}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_fullscreen" name="windowsmedia_fullscreen" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_fullscreen">{#media_dlg.fullscreen}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_invokeurls" name="windowsmedia_invokeurls" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_invokeurls">{#media_dlg.invokeurls}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_mute" name="windowsmedia_mute" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_mute">{#media_dlg.mute}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_stretchtofit" name="windowsmedia_stretchtofit" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_stretchtofit">{#media_dlg.stretchtofit}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="windowsmedia_windowlessvideo" name="windowsmedia_windowlessvideo" onchange="Media.formToData();" /></td>
+										<td><label for="windowsmedia_windowlessvideo">{#media_dlg.windowlessvideo}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="windowsmedia_balance">{#media_dlg.balance}</label></td>
+							<td><input type="text" id="windowsmedia_balance" name="windowsmedia_balance" onchange="Media.formToData();" /></td>
+
+							<td><label for="windowsmedia_baseurl">{#media_dlg.baseurl}</label></td>
+							<td><input type="text" id="windowsmedia_baseurl" name="windowsmedia_baseurl" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="windowsmedia_captioningid">{#media_dlg.captioningid}</label></td>
+							<td><input type="text" id="windowsmedia_captioningid" name="windowsmedia_captioningid" onchange="Media.formToData();" /></td>
+
+							<td><label for="windowsmedia_currentmarker">{#media_dlg.currentmarker}</label></td>
+							<td><input type="text" id="windowsmedia_currentmarker" name="windowsmedia_currentmarker" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="windowsmedia_currentposition">{#media_dlg.currentposition}</label></td>
+							<td><input type="text" id="windowsmedia_currentposition" name="windowsmedia_currentposition" onchange="Media.formToData();" /></td>
+
+							<td><label for="windowsmedia_defaultframe">{#media_dlg.defaultframe}</label></td>
+							<td><input type="text" id="windowsmedia_defaultframe" name="windowsmedia_defaultframe" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="windowsmedia_playcount">{#media_dlg.playcount}</label></td>
+							<td><input type="text" id="windowsmedia_playcount" name="windowsmedia_playcount" onchange="Media.formToData();" /></td>
+
+							<td><label for="windowsmedia_rate">{#media_dlg.rate}</label></td>
+							<td><input type="text" id="windowsmedia_rate" name="windowsmedia_rate" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="windowsmedia_uimode">{#media_dlg.uimode}</label></td>
+							<td><input type="text" id="windowsmedia_uimode" name="windowsmedia_uimode" onchange="Media.formToData();" /></td>
+
+							<td><label for="windowsmedia_volume">{#media_dlg.volume}</label></td>
+							<td><input type="text" id="windowsmedia_volume" name="windowsmedia_volume" onchange="Media.formToData();" /></td>
+						</tr>
+
+					</table>
+				</fieldset>
+
+				<fieldset id="realmedia_options">
+					<legend>{#media_dlg.rmp_options}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_autostart" name="realmedia_autostart" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_autostart">{#media_dlg.autostart}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_loop" name="realmedia_loop" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_loop">{#media_dlg.loop}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_autogotourl" name="realmedia_autogotourl" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_autogotourl">{#media_dlg.autogotourl}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_center" name="realmedia_center" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_center">{#media_dlg.center}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_imagestatus" name="realmedia_imagestatus" checked="checked" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_imagestatus">{#media_dlg.imagestatus}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_maintainaspect" name="realmedia_maintainaspect" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_maintainaspect">{#media_dlg.maintainaspect}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_nojava" name="realmedia_nojava" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_nojava">{#media_dlg.nojava}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_prefetch" name="realmedia_prefetch" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_prefetch">{#media_dlg.prefetch}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="realmedia_shuffle" name="realmedia_shuffle" onchange="Media.formToData();" /></td>
+										<td><label for="realmedia_shuffle">{#media_dlg.shuffle}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								 
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="realmedia_console">{#media_dlg.console}</label></td>
+							<td><input type="text" id="realmedia_console" name="realmedia_console" onchange="Media.formToData();" /></td>
+
+							<td><label for="realmedia_controls">{#media_dlg.controls}</label></td>
+							<td><input type="text" id="realmedia_controls" name="realmedia_controls" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="realmedia_numloop">{#media_dlg.numloop}</label></td>
+							<td><input type="text" id="realmedia_numloop" name="realmedia_numloop" onchange="Media.formToData();" /></td>
+
+							<td><label for="realmedia_scriptcallbacks">{#media_dlg.scriptcallbacks}</label></td>
+							<td><input type="text" id="realmedia_scriptcallbacks" name="realmedia_scriptcallbacks" onchange="Media.formToData();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="shockwave_options">
+					<legend>{#media_dlg.shockwave_options}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="shockwave_swstretchstyle">{#media_dlg.swstretchstyle}</label></td>
+							<td>
+								<select id="shockwave_swstretchstyle" name="shockwave_swstretchstyle" onchange="Media.formToData();">
+									<option value="none">{#not_set}</option>
+									<option value="meet">Meet</option>
+									<option value="fill">Fill</option>
+									<option value="stage">Stage</option>
+								</select>
+							</td>
+
+							<td><label for="shockwave_swvolume">{#media_dlg.volume}</label></td>
+							<td><input type="text" id="shockwave_swvolume" name="shockwave_swvolume" onchange="Media.formToData();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="shockwave_swstretchhalign">{#media_dlg.swstretchhalign}</label></td>
+							<td>
+								<select id="shockwave_swstretchhalign" name="shockwave_swstretchhalign" onchange="Media.formToData();">
+									<option value="none">{#not_set}</option>
+									<option value="left">{#media_dlg.align_left}</option>
+									<option value="center">{#media_dlg.align_center}</option>
+									<option value="right">{#media_dlg.align_right}</option>
+								</select>
+							</td>
+
+							<td><label for="shockwave_swstretchvalign">{#media_dlg.swstretchvalign}</label></td>
+							<td>
+								<select id="shockwave_swstretchvalign" name="shockwave_swstretchvalign" onchange="Media.formToData();">
+									<option value="none">{#not_set}</option>
+									<option value="meet">Meet</option>
+									<option value="fill">Fill</option>
+									<option value="stage">Stage</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_autostart" name="shockwave_autostart" onchange="Media.formToData();" checked="checked" /></td>
+										<td><label for="shockwave_autostart">{#media_dlg.autostart}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_sound" name="shockwave_sound" onchange="Media.formToData();" checked="checked" /></td>
+										<td><label for="shockwave_sound">{#media_dlg.sound}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+
+						<tr>
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_swliveconnect" name="shockwave_swliveconnect" onchange="Media.formToData();" /></td>
+										<td><label for="shockwave_swliveconnect">{#media_dlg.liveconnect}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_progress" name="shockwave_progress" onchange="Media.formToData();" checked="checked" /></td>
+										<td><label for="shockwave_progress">{#media_dlg.progress}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="source_panel" class="panel">
+				<fieldset>
+					<legend>{#media_dlg.source}</legend>
+					<textarea id="source" style="width: 99%; height: 390px"></textarea>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<input type="submit" id="insert" name="insert" value="{#insert}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf
new file mode 100644
index 0000000..585d772
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js
new file mode 100644
index 0000000..687f548
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?'<span data-mce-bogus="1" class="mceItemHidden mceItemNbsp"> </span>':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(f.keyCode==9) [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
new file mode 100644
index 0000000..0a048b3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
@@ -0,0 +1,54 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.Nonbreaking', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceNonBreaking', function() {
+				ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? '<span data-mce-bogus="1" class="mceItemHidden mceItemNbsp"> </span>' : ' ');
+			});
+
+			// Register buttons
+			ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'});
+
+			if (ed.getParam('nonbreaking_force_tab')) {
+				ed.onKeyDown.add(function(ed, e) {
+					if (e.keyCode == 9) {
+						e.preventDefault();
+	
+						ed.execCommand('mceNonBreaking');
+						ed.execCommand('mceNonBreaking');
+						ed.execCommand('mceNonBreaking');
+					}
+				});
+			}
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Nonbreaking space',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+
+		// Private methods
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js
new file mode 100644
index 0000000..583e3e6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var c=tinymce.dom.TreeWalker;var a="contenteditable",d="data-mce-"+a;var e=tinymce.VK;function b(n){var j=n.dom,p=n.selection,r,o="mce_noneditablecaret";r=tinymce.isGecko?"\u200B":"\uFEFF";function m(t){var s;if(t.nodeType===1){s=t.getAttribute(d);if(s&&s!=="inherit"){return s}s=t.contentEditable;if(s!=="inherit"){return s}}return null}function g(s){var t;while(s){t=m(s);if(t){return t==="false"?s:null}s=s.parentNode}}function l(s){while(s){if(s.id===o){return s}s=s.parentNod [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js
new file mode 100644
index 0000000..2d65b50
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js
@@ -0,0 +1,433 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var TreeWalker = tinymce.dom.TreeWalker;
+	var externalName = 'contenteditable', internalName = 'data-mce-' + externalName;
+	var VK = tinymce.VK;
+
+	function handleContentEditableSelection(ed) {
+		var dom = ed.dom, selection = ed.selection, invisibleChar, caretContainerId = 'mce_noneditablecaret';
+
+		// Setup invisible character use zero width space on Gecko since it doesn't change the height of the container
+		invisibleChar = tinymce.isGecko ? '\u200B' : '\uFEFF';
+
+		// Returns the content editable state of a node "true/false" or null
+		function getContentEditable(node) {
+			var contentEditable;
+
+			// Ignore non elements
+			if (node.nodeType === 1) {
+				// Check for fake content editable
+				contentEditable = node.getAttribute(internalName);
+				if (contentEditable && contentEditable !== "inherit") {
+					return contentEditable;
+				}
+
+				// Check for real content editable
+				contentEditable = node.contentEditable;
+				if (contentEditable !== "inherit") {
+					return contentEditable;
+				}
+			}
+
+			return null;
+		};
+
+		// Returns the noneditable parent or null if there is a editable before it or if it wasn't found
+		function getNonEditableParent(node) {
+			var state;
+
+			while (node) {
+				state = getContentEditable(node);
+				if (state) {
+					return state  === "false" ? node : null;
+				}
+
+				node = node.parentNode;
+			}
+		};
+
+		// Get caret container parent for the specified node
+		function getParentCaretContainer(node) {
+			while (node) {
+				if (node.id === caretContainerId) {
+					return node;
+				}
+
+				node = node.parentNode;
+			}
+		};
+
+		// Finds the first text node in the specified node
+		function findFirstTextNode(node) {
+			var walker;
+
+			if (node) {
+				walker = new TreeWalker(node, node);
+
+				for (node = walker.current(); node; node = walker.next()) {
+					if (node.nodeType === 3) {
+						return node;
+					}
+				}
+			}
+		};
+
+		// Insert caret container before/after target or expand selection to include block
+		function insertCaretContainerOrExpandToBlock(target, before) {
+			var caretContainer, rng;
+
+			// Select block
+			if (getContentEditable(target) === "false") {
+				if (dom.isBlock(target)) {
+					selection.select(target);
+					return;
+				}
+			}
+
+			rng = dom.createRng();
+
+			if (getContentEditable(target) === "true") {
+				if (!target.firstChild) {
+					target.appendChild(ed.getDoc().createTextNode('\u00a0'));
+				}
+
+				target = target.firstChild;
+				before = true;
+			}
+
+			//caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true, style:'border: 1px solid red'}, invisibleChar);
+			caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true}, invisibleChar);
+
+			if (before) {
+				target.parentNode.insertBefore(caretContainer, target);
+			} else {
+				dom.insertAfter(caretContainer, target);
+			}
+
+			rng.setStart(caretContainer.firstChild, 1);
+			rng.collapse(true);
+			selection.setRng(rng);
+
+			return caretContainer;
+		};
+
+		// Removes any caret container except the one we might be in
+		function removeCaretContainer(caretContainer) {
+			var child, currentCaretContainer, lastContainer;
+
+			if (caretContainer) {
+					rng = selection.getRng(true);
+					rng.setStartBefore(caretContainer);
+					rng.setEndBefore(caretContainer);
+
+					child = findFirstTextNode(caretContainer);
+					if (child && child.nodeValue.charAt(0) == invisibleChar) {
+						child = child.deleteData(0, 1);
+					}
+
+					dom.remove(caretContainer, true);
+
+					selection.setRng(rng);
+			} else {
+				currentCaretContainer = getParentCaretContainer(selection.getStart());
+				while ((caretContainer = dom.get(caretContainerId)) && caretContainer !== lastContainer) {
+					if (currentCaretContainer !== caretContainer) {
+						child = findFirstTextNode(caretContainer);
+						if (child && child.nodeValue.charAt(0) == invisibleChar) {
+							child = child.deleteData(0, 1);
+						}
+
+						dom.remove(caretContainer, true);
+					}
+
+					lastContainer = caretContainer;
+				}
+			}
+		};
+
+		// Modifies the selection to include contentEditable false elements or insert caret containers
+		function moveSelection() {
+			var nonEditableStart, nonEditableEnd, isCollapsed, rng, element;
+
+			// Checks if there is any contents to the left/right side of caret returns the noneditable element or any editable element if it finds one inside
+			function hasSideContent(element, left) {
+				var container, offset, walker, node, len;
+
+				container = rng.startContainer;
+				offset = rng.startOffset;
+
+				// If endpoint is in middle of text node then expand to beginning/end of element
+				if (container.nodeType == 3) {
+					len = container.nodeValue.length;
+					if ((offset > 0 && offset < len) || (left ? offset == len : offset == 0)) {
+						return;
+					}
+				} else {
+					// Can we resolve the node by index
+					if (offset < container.childNodes.length) {
+						// Browser represents caret position as the offset at the start of an element. When moving right
+						// this is the element we are moving into so we consider our container to be child node at offset-1
+						var pos = !left && offset > 0 ? offset-1 : offset;
+						container = container.childNodes[pos];
+						if (container.hasChildNodes()) {
+							container = container.firstChild;
+						}
+					} else {
+						// If not then the caret is at the last position in it's container and the caret container should be inserted after the noneditable element
+						return !left ? element : null;
+					}
+				}
+
+				// Walk left/right to look for contents
+				walker = new TreeWalker(container, element);
+				while (node = walker[left ? 'prev' : 'next']()) {
+					if (node.nodeType === 3 && node.nodeValue.length > 0) {
+						return;
+					} else if (getContentEditable(node) === "true") {
+						// Found contentEditable=true element return this one to we can move the caret inside it
+						return node;
+					}
+				}
+
+				return element;
+			};
+
+			// Remove any existing caret containers
+			removeCaretContainer();
+
+			// Get noneditable start/end elements
+			isCollapsed = selection.isCollapsed();
+			nonEditableStart = getNonEditableParent(selection.getStart());
+			nonEditableEnd = getNonEditableParent(selection.getEnd());
+
+			// Is any fo the range endpoints noneditable
+			if (nonEditableStart || nonEditableEnd) {
+				rng = selection.getRng(true);
+
+				// If it's a caret selection then look left/right to see if we need to move the caret out side or expand
+				if (isCollapsed) {
+					nonEditableStart = nonEditableStart || nonEditableEnd;
+					var start = selection.getStart();
+					if (element = hasSideContent(nonEditableStart, true)) {
+						// We have no contents to the left of the caret then insert a caret container before the noneditable element
+						insertCaretContainerOrExpandToBlock(element, true);
+					} else if (element = hasSideContent(nonEditableStart, false)) {
+						// We have no contents to the right of the caret then insert a caret container after the noneditable element
+						insertCaretContainerOrExpandToBlock(element, false);
+					} else {
+						// We are in the middle of a noneditable so expand to select it
+						selection.select(nonEditableStart);
+					}
+				} else {
+					rng = selection.getRng(true);
+
+					// Expand selection to include start non editable element
+					if (nonEditableStart) {
+						rng.setStartBefore(nonEditableStart);
+					}
+
+					// Expand selection to include end non editable element
+					if (nonEditableEnd) {
+						rng.setEndAfter(nonEditableEnd);
+					}
+
+					selection.setRng(rng);
+				}
+			}
+		};
+
+		function handleKey(ed, e) {
+			var keyCode = e.keyCode, nonEditableParent, caretContainer, startElement, endElement;
+
+			function getNonEmptyTextNodeSibling(node, prev) {
+				while (node = node[prev ? 'previousSibling' : 'nextSibling']) {
+					if (node.nodeType !== 3 || node.nodeValue.length > 0) {
+						return node;
+					}
+				}
+			};
+
+			function positionCaretOnElement(element, start) {
+				selection.select(element);
+				selection.collapse(start);
+			}
+
+			startElement = selection.getStart()
+			endElement = selection.getEnd();
+
+			// Disable all key presses in contentEditable=false except delete or backspace
+			nonEditableParent = getNonEditableParent(startElement) || getNonEditableParent(endElement);
+			if (nonEditableParent && (keyCode < 112 || keyCode > 124) && keyCode != VK.DELETE && keyCode != VK.BACKSPACE) {
+				e.preventDefault();
+
+				// Arrow left/right select the element and collapse left/right
+				if (keyCode == VK.LEFT || keyCode == VK.RIGHT) {
+					var left = keyCode == VK.LEFT;
+					// If a block element find previous or next element to position the caret
+					if (ed.dom.isBlock(nonEditableParent)) {
+						var targetElement = left ? nonEditableParent.previousSibling : nonEditableParent.nextSibling;
+						var walker = new TreeWalker(targetElement, targetElement);
+						var caretElement = left ? walker.prev() : walker.next();
+						positionCaretOnElement(caretElement, !left);
+					} else {
+						positionCaretOnElement(nonEditableParent, left);
+					}
+				}
+			} else {
+				// Is arrow left/right, backspace or delete
+				if (keyCode == VK.LEFT || keyCode == VK.RIGHT || keyCode == VK.BACKSPACE || keyCode == VK.DELETE) {
+					caretContainer = getParentCaretContainer(startElement);
+					if (caretContainer) {
+						// Arrow left or backspace
+						if (keyCode == VK.LEFT || keyCode == VK.BACKSPACE) {
+							nonEditableParent = getNonEmptyTextNodeSibling(caretContainer, true);
+
+							if (nonEditableParent && getContentEditable(nonEditableParent) === "false") {
+								e.preventDefault();
+
+								if (keyCode == VK.LEFT) {
+									positionCaretOnElement(nonEditableParent, true);
+								} else {
+									dom.remove(nonEditableParent);
+								}
+							} else {
+								removeCaretContainer(caretContainer);
+							}
+						}
+
+						// Arrow right or delete
+						if (keyCode == VK.RIGHT || keyCode == VK.DELETE) {
+							nonEditableParent = getNonEmptyTextNodeSibling(caretContainer);
+
+							if (nonEditableParent && getContentEditable(nonEditableParent) === "false") {
+								e.preventDefault();
+
+								if (keyCode == VK.RIGHT) {
+									positionCaretOnElement(nonEditableParent, false);
+								} else {
+									dom.remove(nonEditableParent);
+								}
+							} else {
+								removeCaretContainer(caretContainer);
+							}
+						}
+					}
+				}
+			}
+		};
+
+		ed.onMouseDown.addToTop(function(ed, e){
+			// prevent collapsing selection to caret when clicking in a non-editable section
+			var node = ed.selection.getNode();
+			if (getContentEditable(node) === "false" && node == e.target) {
+				e.preventDefault();
+			}
+		});
+		ed.onMouseUp.addToTop(moveSelection);
+		ed.onKeyDown.addToTop(handleKey);
+		ed.onKeyUp.addToTop(moveSelection);
+	};
+
+	tinymce.create('tinymce.plugins.NonEditablePlugin', {
+		init : function(ed, url) {
+			var editClass, nonEditClass, nonEditableRegExps;
+
+			editClass = " " + tinymce.trim(ed.getParam("noneditable_editable_class", "mceEditable")) + " ";
+			nonEditClass = " " + tinymce.trim(ed.getParam("noneditable_noneditable_class", "mceNonEditable")) + " ";
+
+			// Setup noneditable regexps array
+			nonEditableRegExps = ed.getParam("noneditable_regexp");
+			if (nonEditableRegExps && !nonEditableRegExps.length) {
+				nonEditableRegExps = [nonEditableRegExps];
+			}
+
+			ed.onPreInit.add(function() {
+				handleContentEditableSelection(ed);
+
+				if (nonEditableRegExps) {
+					ed.onBeforeSetContent.add(function(ed, args) {
+						var i = nonEditableRegExps.length, content = args.content, cls = tinymce.trim(nonEditClass);
+
+						while (i--) {
+							content = content.replace(nonEditableRegExps[i], function() {
+								var args = arguments;
+
+								return '<span class="' + cls + '" data-mce-content="' + ed.dom.encode(args[0]) + '">' + ed.dom.encode(typeof(args[1]) === "string" ? args[1] : args[0]) + '</span>';
+							});
+						}
+
+						args.content = content;
+					});
+				}
+				
+				// Apply contentEditable true/false on elements with the noneditable/editable classes
+				ed.parser.addAttributeFilter('class', function(nodes) {
+					var i = nodes.length, className, node;
+
+					while (i--) {
+						node = nodes[i];
+						className = " " + node.attr("class") + " ";
+
+						if (className.indexOf(editClass) !== -1) {
+							node.attr(internalName, "true");
+						} else if (className.indexOf(nonEditClass) !== -1) {
+							node.attr(internalName, "false");
+						}
+					}
+				});
+
+				// Remove internal name
+				ed.serializer.addAttributeFilter(internalName, function(nodes, name) {
+					var i = nodes.length, node;
+
+					while (i--) {
+						node = nodes[i];
+
+						if (nonEditableRegExps && node.attr('data-mce-content')) {
+							node.name = "#text";
+							node.type = 3;
+							node.raw = true;
+							node.value = node.attr('data-mce-content');
+						} else {
+							node.attr(externalName, null);
+							node.attr(internalName, null);
+						}
+					}
+				});
+
+				// Convert external name into internal name
+				ed.parser.addAttributeFilter(externalName, function(nodes, name) {
+					var i = nodes.length, node;
+
+					while (i--) {
+						node = nodes[i];
+						node.attr(internalName, node.attr(externalName));
+						node.attr(externalName, null);
+					}
+				});
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Non editable elements',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js
new file mode 100644
index 0000000..35085e8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='<img src="'+b.theme.url+'/img/trans.gif" class="mcePageBreak mceItemNoResize" />',a="mcePageBreak",c=b.getParam("pagebreak_separator","<!-- pagebreak -->"),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){ [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js
new file mode 100644
index 0000000..fc3b3b4
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js
@@ -0,0 +1,74 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.PageBreakPlugin', {
+		init : function(ed, url) {
+			var pb = '<img src="' + ed.theme.url + '/img/trans.gif" class="mcePageBreak mceItemNoResize" />', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', '<!-- pagebreak -->'), pbRE;
+
+			pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');
+
+			// Register commands
+			ed.addCommand('mcePageBreak', function() {
+				ed.execCommand('mceInsertContent', 0, pb);
+			});
+
+			// Register buttons
+			ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});
+
+			ed.onInit.add(function() {
+				if (ed.theme.onResolveName) {
+					ed.theme.onResolveName.add(function(th, o) {
+						if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))
+							o.name = 'pagebreak';
+					});
+				}
+			});
+
+			ed.onClick.add(function(ed, e) {
+				e = e.target;
+
+				if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))
+					ed.selection.select(e);
+			});
+
+			ed.onNodeChange.add(function(ed, cm, n) {
+				cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));
+			});
+
+			ed.onBeforeSetContent.add(function(ed, o) {
+				o.content = o.content.replace(pbRE, pb);
+			});
+
+			ed.onPostProcess.add(function(ed, o) {
+				if (o.get)
+					o.content = o.content.replace(/<img[^>]+>/g, function(im) {
+						if (im.indexOf('class="mcePageBreak') !== -1)
+							im = sep;
+
+						return im;
+					});
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'PageBreak',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js
new file mode 100644
index 0000000..e47a5c6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var c=tinymce.each,a={paste_auto_cleanup_on_paste:true,paste_enable_default_filters:true,paste_block_drop:false,paste_retain_style_properties:"none",paste_strip_class_attributes:"mso",paste_remove_spans:false,paste_remove_styles:false,paste_remove_styles_if_webkit:true,paste_convert_middot_lists:true,paste_convert_headers_to_strong:false,paste_dialog_width:"450",paste_dialog_height:"400",paste_text_use_dialog:false,paste_text_sticky:false,paste_text_sticky_default:false,paste [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js
new file mode 100644
index 0000000..cec4abf
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js
@@ -0,0 +1,871 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var each = tinymce.each,
+		defs = {
+			paste_auto_cleanup_on_paste : true,
+			paste_enable_default_filters : true,
+			paste_block_drop : false,
+			paste_retain_style_properties : "none",
+			paste_strip_class_attributes : "mso",
+			paste_remove_spans : false,
+			paste_remove_styles : false,
+			paste_remove_styles_if_webkit : true,
+			paste_convert_middot_lists : true,
+			paste_convert_headers_to_strong : false,
+			paste_dialog_width : "450",
+			paste_dialog_height : "400",
+			paste_text_use_dialog : false,
+			paste_text_sticky : false,
+			paste_text_sticky_default : false,
+			paste_text_notifyalways : false,
+			paste_text_linebreaktype : "combined",
+			paste_text_replacements : [
+				[/\u2026/g, "..."],
+				[/[\x93\x94\u201c\u201d]/g, '"'],
+				[/[\x60\x91\x92\u2018\u2019]/g, "'"]
+			]
+		};
+
+	function getParam(ed, name) {
+		return ed.getParam(name, defs[name]);
+	}
+
+	tinymce.create('tinymce.plugins.PastePlugin', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+			t.url = url;
+
+			// Setup plugin events
+			t.onPreProcess = new tinymce.util.Dispatcher(t);
+			t.onPostProcess = new tinymce.util.Dispatcher(t);
+
+			// Register default handlers
+			t.onPreProcess.add(t._preProcess);
+			t.onPostProcess.add(t._postProcess);
+
+			// Register optional preprocess handler
+			t.onPreProcess.add(function(pl, o) {
+				ed.execCallback('paste_preprocess', pl, o);
+			});
+
+			// Register optional postprocess
+			t.onPostProcess.add(function(pl, o) {
+				ed.execCallback('paste_postprocess', pl, o);
+			});
+
+			ed.onKeyDown.addToTop(function(ed, e) {
+				// Block ctrl+v from adding an undo level since the default logic in tinymce.Editor will add that
+				if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
+					return false; // Stop other listeners
+			});
+
+			// Initialize plain text flag
+			ed.pasteAsPlainText = getParam(ed, 'paste_text_sticky_default');
+
+			// This function executes the process handlers and inserts the contents
+			// force_rich overrides plain text mode set by user, important for pasting with execCommand
+			function process(o, force_rich) {
+				var dom = ed.dom, rng;
+
+				// Execute pre process handlers
+				t.onPreProcess.dispatch(t, o);
+
+				// Create DOM structure
+				o.node = dom.create('div', 0, o.content);
+
+				// If pasting inside the same element and the contents is only one block
+				// remove the block and keep the text since Firefox will copy parts of pre and h1-h6 as a pre element
+				if (tinymce.isGecko) {
+					rng = ed.selection.getRng(true);
+					if (rng.startContainer == rng.endContainer && rng.startContainer.nodeType == 3) {
+						// Is only one block node and it doesn't contain word stuff
+						if (o.node.childNodes.length === 1 && /^(p|h[1-6]|pre)$/i.test(o.node.firstChild.nodeName) && o.content.indexOf('__MCE_ITEM__') === -1)
+							dom.remove(o.node.firstChild, true);
+					}
+				}
+
+				// Execute post process handlers
+				t.onPostProcess.dispatch(t, o);
+
+				// Serialize content
+				o.content = ed.serializer.serialize(o.node, {getInner : 1, forced_root_block : ''});
+
+				// Plain text option active?
+				if ((!force_rich) && (ed.pasteAsPlainText)) {
+					t._insertPlainText(o.content);
+
+					if (!getParam(ed, "paste_text_sticky")) {
+						ed.pasteAsPlainText = false;
+						ed.controlManager.setActive("pastetext", false);
+					}
+				} else {
+					t._insert(o.content);
+				}
+			}
+
+			// Add command for external usage
+			ed.addCommand('mceInsertClipboardContent', function(u, o) {
+				process(o, true);
+			});
+
+			if (!getParam(ed, "paste_text_use_dialog")) {
+				ed.addCommand('mcePasteText', function(u, v) {
+					var cookie = tinymce.util.Cookie;
+
+					ed.pasteAsPlainText = !ed.pasteAsPlainText;
+					ed.controlManager.setActive('pastetext', ed.pasteAsPlainText);
+
+					if ((ed.pasteAsPlainText) && (!cookie.get("tinymcePasteText"))) {
+						if (getParam(ed, "paste_text_sticky")) {
+							ed.windowManager.alert(ed.translate('paste.plaintext_mode_sticky'));
+						} else {
+							ed.windowManager.alert(ed.translate('paste.plaintext_mode'));
+						}
+
+						if (!getParam(ed, "paste_text_notifyalways")) {
+							cookie.set("tinymcePasteText", "1", new Date(new Date().getFullYear() + 1, 12, 31))
+						}
+					}
+				});
+			}
+
+			ed.addButton('pastetext', {title: 'paste.paste_text_desc', cmd: 'mcePasteText'});
+			ed.addButton('selectall', {title: 'paste.selectall_desc', cmd: 'selectall'});
+
+			// This function grabs the contents from the clipboard by adding a
+			// hidden div and placing the caret inside it and after the browser paste
+			// is done it grabs that contents and processes that
+			function grabContent(e) {
+				var n, or, rng, oldRng, sel = ed.selection, dom = ed.dom, body = ed.getBody(), posY, textContent;
+
+				// Check if browser supports direct plaintext access
+				if (e.clipboardData || dom.doc.dataTransfer) {
+					textContent = (e.clipboardData || dom.doc.dataTransfer).getData('Text');
+
+					if (ed.pasteAsPlainText) {
+						e.preventDefault();
+						process({content : dom.encode(textContent).replace(/\r?\n/g, '<br />')});
+						return;
+					}
+				}
+
+				if (dom.get('_mcePaste'))
+					return;
+
+				// Create container to paste into
+				n = dom.add(body, 'div', {id : '_mcePaste', 'class' : 'mcePaste', 'data-mce-bogus' : '1'}, '\uFEFF\uFEFF');
+
+				// If contentEditable mode we need to find out the position of the closest element
+				if (body != ed.getDoc().body)
+					posY = dom.getPos(ed.selection.getStart(), body).y;
+				else
+					posY = body.scrollTop + dom.getViewPort(ed.getWin()).y;
+
+				// Styles needs to be applied after the element is added to the document since WebKit will otherwise remove all styles
+				// If also needs to be in view on IE or the paste would fail
+				dom.setStyles(n, {
+					position : 'absolute',
+					left : tinymce.isGecko ? -40 : 0, // Need to move it out of site on Gecko since it will othewise display a ghost resize rect for the div
+					top : posY - 25,
+					width : 1,
+					height : 1,
+					overflow : 'hidden'
+				});
+
+				if (tinymce.isIE) {
+					// Store away the old range
+					oldRng = sel.getRng();
+
+					// Select the container
+					rng = dom.doc.body.createTextRange();
+					rng.moveToElementText(n);
+					rng.execCommand('Paste');
+
+					// Remove container
+					dom.remove(n);
+
+					// Check if the contents was changed, if it wasn't then clipboard extraction failed probably due
+					// to IE security settings so we pass the junk though better than nothing right
+					if (n.innerHTML === '\uFEFF\uFEFF') {
+						ed.execCommand('mcePasteWord');
+						e.preventDefault();
+						return;
+					}
+
+					// Restore the old range and clear the contents before pasting
+					sel.setRng(oldRng);
+					sel.setContent('');
+
+					// For some odd reason we need to detach the the mceInsertContent call from the paste event
+					// It's like IE has a reference to the parent element that you paste in and the selection gets messed up
+					// when it tries to restore the selection
+					setTimeout(function() {
+						// Process contents
+						process({content : n.innerHTML});
+					}, 0);
+
+					// Block the real paste event
+					return tinymce.dom.Event.cancel(e);
+				} else {
+					function block(e) {
+						e.preventDefault();
+					};
+
+					// Block mousedown and click to prevent selection change
+					dom.bind(ed.getDoc(), 'mousedown', block);
+					dom.bind(ed.getDoc(), 'keydown', block);
+
+					or = ed.selection.getRng();
+
+					// Move select contents inside DIV
+					n = n.firstChild;
+					rng = ed.getDoc().createRange();
+					rng.setStart(n, 0);
+					rng.setEnd(n, 2);
+					sel.setRng(rng);
+
+					// Wait a while and grab the pasted contents
+					window.setTimeout(function() {
+						var h = '', nl;
+
+						// Paste divs duplicated in paste divs seems to happen when you paste plain text so lets first look for that broken behavior in WebKit
+						if (!dom.select('div.mcePaste > div.mcePaste').length) {
+							nl = dom.select('div.mcePaste');
+
+							// WebKit will split the div into multiple ones so this will loop through then all and join them to get the whole HTML string
+							each(nl, function(n) {
+								var child = n.firstChild;
+
+								// WebKit inserts a DIV container with lots of odd styles
+								if (child && child.nodeName == 'DIV' && child.style.marginTop && child.style.backgroundColor) {
+									dom.remove(child, 1);
+								}
+
+								// Remove apply style spans
+								each(dom.select('span.Apple-style-span', n), function(n) {
+									dom.remove(n, 1);
+								});
+
+								// Remove bogus br elements
+								each(dom.select('br[data-mce-bogus]', n), function(n) {
+									dom.remove(n);
+								});
+
+								// WebKit will make a copy of the DIV for each line of plain text pasted and insert them into the DIV
+								if (n.parentNode.className != 'mcePaste')
+									h += n.innerHTML;
+							});
+						} else {
+							// Found WebKit weirdness so force the content into paragraphs this seems to happen when you paste plain text from Nodepad etc
+							// So this logic will replace double enter with paragraphs and single enter with br so it kind of looks the same
+							h = '<p>' + dom.encode(textContent).replace(/\r?\n\r?\n/g, '</p><p>').replace(/\r?\n/g, '<br />') + '</p>';
+						}
+
+						// Remove the nodes
+						each(dom.select('div.mcePaste'), function(n) {
+							dom.remove(n);
+						});
+
+						// Restore the old selection
+						if (or)
+							sel.setRng(or);
+
+						process({content : h});
+
+						// Unblock events ones we got the contents
+						dom.unbind(ed.getDoc(), 'mousedown', block);
+						dom.unbind(ed.getDoc(), 'keydown', block);
+					}, 0);
+				}
+			}
+
+			// Check if we should use the new auto process method			
+			if (getParam(ed, "paste_auto_cleanup_on_paste")) {
+				// Is it's Opera or older FF use key handler
+				if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) {
+					ed.onKeyDown.addToTop(function(ed, e) {
+						if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
+							grabContent(e);
+					});
+				} else {
+					// Grab contents on paste event on Gecko and WebKit
+					ed.onPaste.addToTop(function(ed, e) {
+						return grabContent(e);
+					});
+				}
+			}
+
+			ed.onInit.add(function() {
+				ed.controlManager.setActive("pastetext", ed.pasteAsPlainText);
+
+				// Block all drag/drop events
+				if (getParam(ed, "paste_block_drop")) {
+					ed.dom.bind(ed.getBody(), ['dragend', 'dragover', 'draggesture', 'dragdrop', 'drop', 'drag'], function(e) {
+						e.preventDefault();
+						e.stopPropagation();
+
+						return false;
+					});
+				}
+			});
+
+			// Add legacy support
+			t._legacySupport();
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Paste text/word',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		_preProcess : function(pl, o) {
+			var ed = this.editor,
+				h = o.content,
+				grep = tinymce.grep,
+				explode = tinymce.explode,
+				trim = tinymce.trim,
+				len, stripClass;
+
+			//console.log('Before preprocess:' + o.content);
+
+			function process(items) {
+				each(items, function(v) {
+					// Remove or replace
+					if (v.constructor == RegExp)
+						h = h.replace(v, '');
+					else
+						h = h.replace(v[0], v[1]);
+				});
+			}
+			
+			if (ed.settings.paste_enable_default_filters == false) {
+				return;
+			}
+
+			// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
+			if (tinymce.isIE && document.documentMode >= 9) {
+				// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
+				process([[/(?:<br> [\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br> [\s\r\n]+|<br>)*/g, '$1']]);
+
+				// IE9 also adds an extra BR element for each soft-linefeed and it also adds a BR for each word wrap break
+				process([
+					[/<br><br>/g, '<BR><BR>'], // Replace multiple BR elements with uppercase BR to keep them intact
+					[/<br>/g, ' '], // Replace single br elements with space since they are word wrap BR:s
+					[/<BR><BR>/g, '<br>'] // Replace back the double brs but into a single BR
+				]);
+			}
+
+			// Detect Word content and process it more aggressive
+			if (/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i.test(h) || o.wordContent) {
+				o.wordContent = true;			// Mark the pasted contents as word specific content
+				//console.log('Word contents detected.');
+
+				// Process away some basic content
+				process([
+					/^\s*( )+/gi,				//   entities at the start of contents
+					/( |<br[^>]*>)+\s*$/gi		//   entities at the end of contents
+				]);
+
+				if (getParam(ed, "paste_convert_headers_to_strong")) {
+					h = h.replace(/<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "<p><strong>$1</strong></p>");
+				}
+
+				if (getParam(ed, "paste_convert_middot_lists")) {
+					process([
+						[/<!--\[if !supportLists\]-->/gi, '$&__MCE_ITEM__'],					// Convert supportLists to a list item marker
+						[/(<span[^>]+(?:mso-list:|:\s*symbol)[^>]+>)/gi, '$1__MCE_ITEM__'],		// Convert mso-list and symbol spans to item markers
+						[/(<p[^>]+(?:MsoListParagraph)[^>]+>)/gi, '$1__MCE_ITEM__']				// Convert mso-list and symbol paragraphs to item markers (FF)
+					]);
+				}
+
+				process([
+					// Word comments like conditional comments etc
+					/<!--[\s\S]+?-->/gi,
+
+					// Remove comments, scripts (e.g., msoShowComment), XML tag, VML content, MS Office namespaced tags, and a few other tags
+					/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,
+
+					// Convert <s> into <strike> for line-though
+					[/<(\/?)s>/gi, "<$1strike>"],
+
+					// Replace nsbp entites to char since it's easier to handle
+					[/ /gi, "\u00a0"]
+				]);
+
+				// Remove bad attributes, with or without quotes, ensuring that attribute text is really inside a tag.
+				// If JavaScript had a RegExp look-behind, we could have integrated this with the last process() array and got rid of the loop. But alas, it does not, so we cannot.
+				do {
+					len = h.length;
+					h = h.replace(/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi, "$1");
+				} while (len != h.length);
+
+				// Remove all spans if no styles is to be retained
+				if (getParam(ed, "paste_retain_style_properties").replace(/^none$/i, "").length == 0) {
+					h = h.replace(/<\/?span[^>]*>/gi, "");
+				} else {
+					// We're keeping styles, so at least clean them up.
+					// CSS Reference: http://msdn.microsoft.com/en-us/library/aa155477.aspx
+
+					process([
+						// Convert <span style="mso-spacerun:yes">___</span> to string of alternating breaking/non-breaking spaces of same length
+						[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,
+							function(str, spaces) {
+								return (spaces.length > 0)? spaces.replace(/./, " ").slice(Math.floor(spaces.length/2)).split("").join("\u00a0") : "";
+							}
+						],
+
+						// Examine all styles: delete junk, transform some, and keep the rest
+						[/(<[a-z][^>]*)\sstyle="([^"]*)"/gi,
+							function(str, tag, style) {
+								var n = [],
+									i = 0,
+									s = explode(trim(style).replace(/"/gi, "'"), ";");
+
+								// Examine each style definition within the tag's style attribute
+								each(s, function(v) {
+									var name, value,
+										parts = explode(v, ":");
+
+									function ensureUnits(v) {
+										return v + ((v !== "0") && (/\d$/.test(v)))? "px" : "";
+									}
+
+									if (parts.length == 2) {
+										name = parts[0].toLowerCase();
+										value = parts[1].toLowerCase();
+
+										// Translate certain MS Office styles into their CSS equivalents
+										switch (name) {
+											case "mso-padding-alt":
+											case "mso-padding-top-alt":
+											case "mso-padding-right-alt":
+											case "mso-padding-bottom-alt":
+											case "mso-padding-left-alt":
+											case "mso-margin-alt":
+											case "mso-margin-top-alt":
+											case "mso-margin-right-alt":
+											case "mso-margin-bottom-alt":
+											case "mso-margin-left-alt":
+											case "mso-table-layout-alt":
+											case "mso-height":
+											case "mso-width":
+											case "mso-vertical-align-alt":
+												n[i++] = name.replace(/^mso-|-alt$/g, "") + ":" + ensureUnits(value);
+												return;
+
+											case "horiz-align":
+												n[i++] = "text-align:" + value;
+												return;
+
+											case "vert-align":
+												n[i++] = "vertical-align:" + value;
+												return;
+
+											case "font-color":
+											case "mso-foreground":
+												n[i++] = "color:" + value;
+												return;
+
+											case "mso-background":
+											case "mso-highlight":
+												n[i++] = "background:" + value;
+												return;
+
+											case "mso-default-height":
+												n[i++] = "min-height:" + ensureUnits(value);
+												return;
+
+											case "mso-default-width":
+												n[i++] = "min-width:" + ensureUnits(value);
+												return;
+
+											case "mso-padding-between-alt":
+												n[i++] = "border-collapse:separate;border-spacing:" + ensureUnits(value);
+												return;
+
+											case "text-line-through":
+												if ((value == "single") || (value == "double")) {
+													n[i++] = "text-decoration:line-through";
+												}
+												return;
+
+											case "mso-zero-height":
+												if (value == "yes") {
+													n[i++] = "display:none";
+												}
+												return;
+										}
+
+										// Eliminate all MS Office style definitions that have no CSS equivalent by examining the first characters in the name
+										if (/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/.test(name)) {
+											return;
+										}
+
+										// If it reached this point, it must be a valid CSS style
+										n[i++] = name + ":" + parts[1];		// Lower-case name, but keep value case
+									}
+								});
+
+								// If style attribute contained any valid styles the re-write it; otherwise delete style attribute.
+								if (i > 0) {
+									return tag + ' style="' + n.join(';') + '"';
+								} else {
+									return tag;
+								}
+							}
+						]
+					]);
+				}
+			}
+
+			// Replace headers with <strong>
+			if (getParam(ed, "paste_convert_headers_to_strong")) {
+				process([
+					[/<h[1-6][^>]*>/gi, "<p><strong>"],
+					[/<\/h[1-6][^>]*>/gi, "</strong></p>"]
+				]);
+			}
+
+			process([
+				// Copy paste from Java like Open Office will produce this junk on FF
+				[/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi, '']
+			]);
+
+			// Class attribute options are: leave all as-is ("none"), remove all ("all"), or remove only those starting with mso ("mso").
+			// Note:-  paste_strip_class_attributes: "none", verify_css_classes: true is also a good variation.
+			stripClass = getParam(ed, "paste_strip_class_attributes");
+
+			if (stripClass !== "none") {
+				function removeClasses(match, g1) {
+						if (stripClass === "all")
+							return '';
+
+						var cls = grep(explode(g1.replace(/^(["'])(.*)\1$/, "$2"), " "),
+							function(v) {
+								return (/^(?!mso)/i.test(v));
+							}
+						);
+
+						return cls.length ? ' class="' + cls.join(" ") + '"' : '';
+				};
+
+				h = h.replace(/ class="([^"]+)"/gi, removeClasses);
+				h = h.replace(/ class=([\-\w]+)/gi, removeClasses);
+			}
+
+			// Remove spans option
+			if (getParam(ed, "paste_remove_spans")) {
+				h = h.replace(/<\/?span[^>]*>/gi, "");
+			}
+
+			//console.log('After preprocess:' + h);
+
+			o.content = h;
+		},
+
+		/**
+		 * Various post process items.
+		 */
+		_postProcess : function(pl, o) {
+			var t = this, ed = t.editor, dom = ed.dom, styleProps;
+
+			if (ed.settings.paste_enable_default_filters == false) {
+				return;
+			}
+			
+			if (o.wordContent) {
+				// Remove named anchors or TOC links
+				each(dom.select('a', o.node), function(a) {
+					if (!a.href || a.href.indexOf('#_Toc') != -1)
+						dom.remove(a, 1);
+				});
+
+				if (getParam(ed, "paste_convert_middot_lists")) {
+					t._convertLists(pl, o);
+				}
+
+				// Process styles
+				styleProps = getParam(ed, "paste_retain_style_properties"); // retained properties
+
+				// Process only if a string was specified and not equal to "all" or "*"
+				if ((tinymce.is(styleProps, "string")) && (styleProps !== "all") && (styleProps !== "*")) {
+					styleProps = tinymce.explode(styleProps.replace(/^none$/i, ""));
+
+					// Retains some style properties
+					each(dom.select('*', o.node), function(el) {
+						var newStyle = {}, npc = 0, i, sp, sv;
+
+						// Store a subset of the existing styles
+						if (styleProps) {
+							for (i = 0; i < styleProps.length; i++) {
+								sp = styleProps[i];
+								sv = dom.getStyle(el, sp);
+
+								if (sv) {
+									newStyle[sp] = sv;
+									npc++;
+								}
+							}
+						}
+
+						// Remove all of the existing styles
+						dom.setAttrib(el, 'style', '');
+
+						if (styleProps && npc > 0)
+							dom.setStyles(el, newStyle); // Add back the stored subset of styles
+						else // Remove empty span tags that do not have class attributes
+							if (el.nodeName == 'SPAN' && !el.className)
+								dom.remove(el, true);
+					});
+				}
+			}
+
+			// Remove all style information or only specifically on WebKit to avoid the style bug on that browser
+			if (getParam(ed, "paste_remove_styles") || (getParam(ed, "paste_remove_styles_if_webkit") && tinymce.isWebKit)) {
+				each(dom.select('*[style]', o.node), function(el) {
+					el.removeAttribute('style');
+					el.removeAttribute('data-mce-style');
+				});
+			} else {
+				if (tinymce.isWebKit) {
+					// We need to compress the styles on WebKit since if you paste <img border="0" /> it will become <img border="0" style="... lots of junk ..." />
+					// Removing the mce_style that contains the real value will force the Serializer engine to compress the styles
+					each(dom.select('*', o.node), function(el) {
+						el.removeAttribute('data-mce-style');
+					});
+				}
+			}
+		},
+
+		/**
+		 * Converts the most common bullet and number formats in Office into a real semantic UL/LI list.
+		 */
+		_convertLists : function(pl, o) {
+			var dom = pl.editor.dom, listElm, li, lastMargin = -1, margin, levels = [], lastType, html;
+
+			// Convert middot lists into real semantic lists
+			each(dom.select('p', o.node), function(p) {
+				var sib, val = '', type, html, idx, parents;
+
+				// Get text node value at beginning of paragraph
+				for (sib = p.firstChild; sib && sib.nodeType == 3; sib = sib.nextSibling)
+					val += sib.nodeValue;
+
+				val = p.innerHTML.replace(/<\/?\w+[^>]*>/gi, '').replace(/ /g, '\u00a0');
+
+				// Detect unordered lists look for bullets
+				if (/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/.test(val))
+					type = 'ul';
+
+				// Detect ordered lists 1., a. or ixv.
+				if (/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/.test(val))
+					type = 'ol';
+
+				// Check if node value matches the list pattern: o  
+				if (type) {
+					margin = parseFloat(p.style.marginLeft || 0);
+
+					if (margin > lastMargin)
+						levels.push(margin);
+
+					if (!listElm || type != lastType) {
+						listElm = dom.create(type);
+						dom.insertAfter(listElm, p);
+					} else {
+						// Nested list element
+						if (margin > lastMargin) {
+							listElm = li.appendChild(dom.create(type));
+						} else if (margin < lastMargin) {
+							// Find parent level based on margin value
+							idx = tinymce.inArray(levels, margin);
+							parents = dom.getParents(listElm.parentNode, type);
+							listElm = parents[parents.length - 1 - idx] || listElm;
+						}
+					}
+
+					// Remove middot or number spans if they exists
+					each(dom.select('span', p), function(span) {
+						var html = span.innerHTML.replace(/<\/?\w+[^>]*>/gi, '');
+
+						// Remove span with the middot or the number
+						if (type == 'ul' && /^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/.test(html))
+							dom.remove(span);
+						else if (/^__MCE_ITEM__[\s\S]*\w+\.( |\u00a0)*\s*/.test(html))
+							dom.remove(span);
+					});
+
+					html = p.innerHTML;
+
+					// Remove middot/list items
+					if (type == 'ul')
+						html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*( |\u00a0)+\s*/, '');
+					else
+						html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^\s*\w+\.( |\u00a0)+\s*/, '');
+
+					// Create li and add paragraph data into the new li
+					li = listElm.appendChild(dom.create('li', 0, html));
+					dom.remove(p);
+
+					lastMargin = margin;
+					lastType = type;
+				} else
+					listElm = lastMargin = 0; // End list element
+			});
+
+			// Remove any left over makers
+			html = o.node.innerHTML;
+			if (html.indexOf('__MCE_ITEM__') != -1)
+				o.node.innerHTML = html.replace(/__MCE_ITEM__/g, '');
+		},
+
+		/**
+		 * Inserts the specified contents at the caret position.
+		 */
+		_insert : function(h, skip_undo) {
+			var ed = this.editor, r = ed.selection.getRng();
+
+			// First delete the contents seems to work better on WebKit when the selection spans multiple list items or multiple table cells.
+			if (!ed.selection.isCollapsed() && r.startContainer != r.endContainer)
+				ed.getDoc().execCommand('Delete', false, null);
+
+			ed.execCommand('mceInsertContent', false, h, {skip_undo : skip_undo});
+		},
+
+		/**
+		 * Instead of the old plain text method which tried to re-create a paste operation, the
+		 * new approach adds a plain text mode toggle switch that changes the behavior of paste.
+		 * This function is passed the same input that the regular paste plugin produces.
+		 * It performs additional scrubbing and produces (and inserts) the plain text.
+		 * This approach leverages all of the great existing functionality in the paste
+		 * plugin, and requires minimal changes to add the new functionality.
+		 * Speednet - June 2009
+		 */
+		_insertPlainText : function(content) {
+			var ed = this.editor,
+				linebr = getParam(ed, "paste_text_linebreaktype"),
+				rl = getParam(ed, "paste_text_replacements"),
+				is = tinymce.is;
+
+			function process(items) {
+				each(items, function(v) {
+					if (v.constructor == RegExp)
+						content = content.replace(v, "");
+					else
+						content = content.replace(v[0], v[1]);
+				});
+			};
+
+			if ((typeof(content) === "string") && (content.length > 0)) {
+				// If HTML content with line-breaking tags, then remove all cr/lf chars because only tags will break a line
+				if (/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i.test(content)) {
+					process([
+						/[\n\r]+/g
+					]);
+				} else {
+					// Otherwise just get rid of carriage returns (only need linefeeds)
+					process([
+						/\r+/g
+					]);
+				}
+
+				process([
+					[/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi, "\n\n"],		// Block tags get a blank line after them
+					[/<br[^>]*>|<\/tr>/gi, "\n"],				// Single linebreak for <br /> tags and table rows
+					[/<\/t[dh]>\s*<t[dh][^>]*>/gi, "\t"],		// Table cells get tabs betweem them
+					/<[a-z!\/?][^>]*>/gi,						// Delete all remaining tags
+					[/ /gi, " "],							// Convert non-break spaces to regular spaces (remember, *plain text*)
+					[/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"],// Cool little RegExp deletes whitespace around linebreak chars.
+					[/\n{3,}/g, "\n\n"]							// Max. 2 consecutive linebreaks
+				]);
+
+				content = ed.dom.decode(tinymce.html.Entities.encodeRaw(content));
+
+				// Perform default or custom replacements
+				if (is(rl, "array")) {
+					process(rl);
+				} else if (is(rl, "string")) {
+					process(new RegExp(rl, "gi"));
+				}
+
+				// Treat paragraphs as specified in the config
+				if (linebr == "none") {
+					// Convert all line breaks to space
+					process([
+						[/\n+/g, " "]
+					]);
+				} else if (linebr == "br") {
+					// Convert all line breaks to <br />
+					process([
+						[/\n/g, "<br />"]
+					]);
+				} else if (linebr == "p") {
+					// Convert all line breaks to <p>...</p>
+					process([
+						[/\n+/g, "</p><p>"],
+						[/^(.*<\/p>)(<p>)$/, '<p>$1']
+					]);
+				} else {
+					// defaults to "combined"
+					// Convert single line breaks to <br /> and double line breaks to <p>...</p>
+					process([
+						[/\n\n/g, "</p><p>"],
+						[/^(.*<\/p>)(<p>)$/, '<p>$1'],
+						[/\n/g, "<br />"]
+					]);
+				}
+
+				ed.execCommand('mceInsertContent', false, content);
+			}
+		},
+
+		/**
+		 * This method will open the old style paste dialogs. Some users might want the old behavior but still use the new cleanup engine.
+		 */
+		_legacySupport : function() {
+			var t = this, ed = t.editor;
+
+			// Register command(s) for backwards compatibility
+			ed.addCommand("mcePasteWord", function() {
+				ed.windowManager.open({
+					file: t.url + "/pasteword.htm",
+					width: parseInt(getParam(ed, "paste_dialog_width")),
+					height: parseInt(getParam(ed, "paste_dialog_height")),
+					inline: 1
+				});
+			});
+
+			if (getParam(ed, "paste_text_use_dialog")) {
+				ed.addCommand("mcePasteText", function() {
+					ed.windowManager.open({
+						file : t.url + "/pastetext.htm",
+						width: parseInt(getParam(ed, "paste_dialog_width")),
+						height: parseInt(getParam(ed, "paste_dialog_height")),
+						inline : 1
+					});
+				});
+			}
+
+			// Register button for backwards compatibility
+			ed.addButton("pasteword", {title : "paste.paste_word_desc", cmd : "mcePasteWord"});
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add("paste", tinymce.plugins.PastePlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js
new file mode 100644
index 0000000..81b1d6a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js
@@ -0,0 +1,36 @@
+tinyMCEPopup.requireLangPack();
+
+var PasteTextDialog = {
+	init : function() {
+		this.resize();
+	},
+
+	insert : function() {
+		var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines;
+
+		// Convert linebreaks into paragraphs
+		if (document.getElementById('linebreaks').checked) {
+			lines = h.split(/\r?\n/);
+			if (lines.length > 1) {
+				h = '';
+				tinymce.each(lines, function(row) {
+					h += '<p>' + row + '</p>';
+				});
+			}
+		}
+
+		tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h});
+		tinyMCEPopup.close();
+	},
+
+	resize : function() {
+		var vp = tinyMCEPopup.dom.getViewPort(window), el;
+
+		el = document.getElementById('content');
+
+		el.style.width  = (vp.w - 20) + 'px';
+		el.style.height = (vp.h - 90) + 'px';
+	}
+};
+
+tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js
new file mode 100644
index 0000000..959bf39
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js
@@ -0,0 +1,51 @@
+tinyMCEPopup.requireLangPack();
+
+var PasteWordDialog = {
+	init : function() {
+		var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
+
+		// Create iframe
+		el.innerHTML = '<iframe id="iframe" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';
+		ifr = document.getElementById('iframe');
+		doc = ifr.contentWindow.document;
+
+		// Force absolute CSS urls
+		css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")];
+		css = css.concat(tinymce.explode(ed.settings.content_css) || []);
+		tinymce.each(css, function(u) {
+			cssHTML += '<link href="' + ed.documentBaseURI.toAbsolute('' + u) + '" rel="stylesheet" type="text/css" />';
+		});
+
+		// Write content into iframe
+		doc.open();
+		doc.write('<html><head>' + cssHTML + '</head><body class="mceContentBody" spellcheck="false"></body></html>');
+		doc.close();
+
+		doc.designMode = 'on';
+		this.resize();
+
+		window.setTimeout(function() {
+			ifr.contentWindow.focus();
+		}, 10);
+	},
+
+	insert : function() {
+		var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
+
+		tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
+		tinyMCEPopup.close();
+	},
+
+	resize : function() {
+		var vp = tinyMCEPopup.dom.getViewPort(window), el;
+
+		el = document.getElementById('iframe');
+
+		if (el) {
+			el.style.width  = (vp.w - 20) + 'px';
+			el.style.height = (vp.h - 90) + 'px';
+		}
+	}
+};
+
+tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js
new file mode 100644
index 0000000..bc74daf
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.paste_dlg',{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."});
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm
new file mode 100644
index 0000000..8ccfbb9
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm
@@ -0,0 +1,27 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#paste.paste_text_desc}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/pastetext.js"></script>
+</head>
+<body onresize="PasteTextDialog.resize();" style="display:none; overflow:hidden;">
+	<form name="source" onsubmit="return PasteTextDialog.insert();" action="#">
+		<div style="float: left" class="title">{#paste.paste_text_desc}</div>
+
+		<div style="float: right">
+			<input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{#paste_dlg.text_linebreaks}</label>
+		</div>
+
+		<br style="clear: both" />
+
+		<div>{#paste_dlg.text_title}</div>
+
+		<textarea id="content" name="content" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>
+
+		<div class="mceActionPanel">
+			<input type="submit" name="insert" value="{#insert}" id="insert" />
+			<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
+		</div>
+	</form>
+</body> 
+</html>
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm
new file mode 100644
index 0000000..7731f39
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm
@@ -0,0 +1,21 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#paste.paste_word_desc}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/pasteword.js"></script>
+</head>
+<body onresize="PasteWordDialog.resize();" style="display:none; overflow:hidden;">
+	<form name="source" onsubmit="return PasteWordDialog.insert();" action="#">
+		<div class="title">{#paste.paste_word_desc}</div>
+
+		<div>{#paste_dlg.word_title}</div>
+
+		<div id="iframecontainer"></div>
+
+		<div class="mceActionPanel">
+			<input type="submit" id="insert" name="insert" value="{#insert}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js
new file mode 100644
index 0000000..507909c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join( [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js
new file mode 100644
index 0000000..80f00f0
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js
@@ -0,0 +1,53 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.Preview', {
+		init : function(ed, url) {
+			var t = this, css = tinymce.explode(ed.settings.content_css);
+
+			t.editor = ed;
+
+			// Force absolute CSS urls	
+			tinymce.each(css, function(u, k) {
+				css[k] = ed.documentBaseURI.toAbsolute(u);
+			});
+
+			ed.addCommand('mcePreview', function() {
+				ed.windowManager.open({
+					file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"),
+					width : parseInt(ed.getParam("plugin_preview_width", "550")),
+					height : parseInt(ed.getParam("plugin_preview_height", "600")),
+					resizable : "yes",
+					scrollbars : "yes",
+					popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"),
+					inline : ed.getParam("plugin_preview_inline", 1)
+				}, {
+					base : ed.documentBaseURI.getURI()
+				});
+			});
+
+			ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Preview',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('preview', tinymce.plugins.Preview);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/example.html b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/example.html
new file mode 100644
index 0000000..4820222
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/example.html
@@ -0,0 +1,28 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script language="javascript" src="../../tiny_mce_popup.js"></script>
+<script type="text/javascript" src="jscripts/embed.js"></script>
+<script type="text/javascript">
+tinyMCEPopup.onInit.add(function(ed) {
+	var dom = tinyMCEPopup.dom;
+
+	// Load editor content_css
+	tinymce.each(ed.settings.content_css.split(','), function(u) {
+		dom.loadCSS(ed.documentBaseURI.toAbsolute(u));
+	});
+
+	// Place contents inside div container
+	dom.setHTML('content', ed.getContent());
+});
+</script>
+<title>Example of a custom preview page</title>
+</head>
+<body>
+
+Editor contents: <br />
+<div id="content">
+<!-- Gets filled with editor contents -->
+</div>
+
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js
new file mode 100644
index 0000000..6fe25de
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js
@@ -0,0 +1,73 @@
+/**
+ * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
+ */
+
+function writeFlash(p) {
+	writeEmbed(
+		'D27CDB6E-AE6D-11cf-96B8-444553540000',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'application/x-shockwave-flash',
+		p
+	);
+}
+
+function writeShockWave(p) {
+	writeEmbed(
+	'166B1BCA-3F9C-11CF-8075-444553540000',
+	'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
+	'application/x-director',
+		p
+	);
+}
+
+function writeQuickTime(p) {
+	writeEmbed(
+		'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
+		'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
+		'video/quicktime',
+		p
+	);
+}
+
+function writeRealMedia(p) {
+	writeEmbed(
+		'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'audio/x-pn-realaudio-plugin',
+		p
+	);
+}
+
+function writeWindowsMedia(p) {
+	p.url = p.src;
+	writeEmbed(
+		'6BF52A52-394A-11D3-B153-00C04F79FAA6',
+		'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
+		'application/x-mplayer2',
+		p
+	);
+}
+
+function writeEmbed(cls, cb, mt, p) {
+	var h = '', n;
+
+	h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
+	h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
+	h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
+	h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
+	h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
+	h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
+	h += '>';
+
+	for (n in p)
+		h += '<param name="' + n + '" value="' + p[n] + '">';
+
+	h += '<embed type="' + mt + '"';
+
+	for (n in p)
+		h += n + '="' + p[n] + '" ';
+
+	h += '></embed></object>';
+
+	document.write(h);
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/preview.html b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/preview.html
new file mode 100644
index 0000000..c09a7f0
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/preview/preview.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+<script type="text/javascript" src="jscripts/embed.js"></script>
+<script type="text/javascript"><!--
+document.write('<base href="' + tinyMCEPopup.getWindowArg("base") + '">');
+// -->
+</script>
+<title>{#preview.preview_desc}</title>
+</head>
+<body id="content">
+<script type="text/javascript">
+	document.write(tinyMCEPopup.editor.getContent());
+</script>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js
new file mode 100644
index 0000000..b5b3a55
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js
new file mode 100644
index 0000000..47e666a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js
@@ -0,0 +1,34 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.Print', {
+		init : function(ed, url) {
+			ed.addCommand('mcePrint', function() {
+				ed.getWin().print();
+			});
+
+			ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Print',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('print', tinymce.plugins.Print);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js
new file mode 100644
index 0000000..8e93996
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.Save",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceSave",c._save,c);a.addCommand("mceCancel",c._cancel,c);a.addButton("save",{title:"save.save_desc",cmd:"mceSave"});a.addButton("cancel",{title:"save.cancel_desc",cmd:"mceCancel"});a.onNodeChange.add(c._nodeChange,c);a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")},getInfo:function(){return{longname:"Save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxieco [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js
new file mode 100644
index 0000000..5ab6491
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js
@@ -0,0 +1,101 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.Save', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceSave', t._save, t);
+			ed.addCommand('mceCancel', t._cancel, t);
+
+			// Register buttons
+			ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});
+			ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});
+
+			ed.onNodeChange.add(t._nodeChange, t);
+			ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Save',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		// Private methods
+
+		_nodeChange : function(ed, cm, n) {
+			var ed = this.editor;
+
+			if (ed.getParam('save_enablewhendirty')) {
+				cm.setDisabled('save', !ed.isDirty());
+				cm.setDisabled('cancel', !ed.isDirty());
+			}
+		},
+
+		// Private methods
+
+		_save : function() {
+			var ed = this.editor, formObj, os, i, elementId;
+
+			formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');
+
+			if (ed.getParam("save_enablewhendirty") && !ed.isDirty())
+				return;
+
+			tinyMCE.triggerSave();
+
+			// Use callback instead
+			if (os = ed.getParam("save_onsavecallback")) {
+				if (ed.execCallback('save_onsavecallback', ed)) {
+					ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));
+					ed.nodeChanged();
+				}
+
+				return;
+			}
+
+			if (formObj) {
+				ed.isNotDirty = true;
+
+				if (formObj.onsubmit == null || formObj.onsubmit() != false)
+					formObj.submit();
+
+				ed.nodeChanged();
+			} else
+				ed.windowManager.alert("Error: No form element found.");
+		},
+
+		_cancel : function() {
+			var ed = this.editor, os, h = tinymce.trim(ed.startContent);
+
+			// Use callback instead
+			if (os = ed.getParam("save_oncancelcallback")) {
+				ed.execCallback('save_oncancelcallback', ed);
+				return;
+			}
+
+			ed.setContent(h);
+			ed.undoManager.clear();
+			ed.nodeChanged();
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('save', tinymce.plugins.Save);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css
new file mode 100644
index 0000000..3e2eaf3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css
@@ -0,0 +1,6 @@
+.panel_wrapper {height:85px;}
+.panel_wrapper div.current {height:85px;}
+
+/* IE */
+* html .panel_wrapper {height:100px;}
+* html .panel_wrapper div.current {height:100px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js
new file mode 100644
index 0000000..165bc12
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a. [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js
new file mode 100644
index 0000000..b0c013f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js
@@ -0,0 +1,61 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.SearchReplacePlugin', {
+		init : function(ed, url) {
+			function open(m) {
+				// Keep IE from writing out the f/r character to the editor
+				// instance while initializing a new dialog. See: #3131190
+				window.focus();
+
+				ed.windowManager.open({
+					file : url + '/searchreplace.htm',
+					width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)),
+					height : 170 + parseInt(ed.getLang('searchreplace.delta_height', 0)),
+					inline : 1,
+					auto_focus : 0
+				}, {
+					mode : m,
+					search_string : ed.selection.getContent({format : 'text'}),
+					plugin_url : url
+				});
+			};
+
+			// Register commands
+			ed.addCommand('mceSearch', function() {
+				open('search');
+			});
+
+			ed.addCommand('mceReplace', function() {
+				open('replace');
+			});
+
+			// Register buttons
+			ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'});
+			ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'});
+
+			ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch');
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Search/Replace',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js
new file mode 100644
index 0000000..b1630ca
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js
@@ -0,0 +1,142 @@
+tinyMCEPopup.requireLangPack();
+
+var SearchReplaceDialog = {
+	init : function(ed) {
+		var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");
+
+		t.switchMode(m);
+
+		f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");
+
+		// Focus input field
+		f[m + '_panel_searchstring'].focus();
+		
+		mcTabs.onChange.add(function(tab_id, panel_id) {
+			t.switchMode(tab_id.substring(0, tab_id.indexOf('_')));
+		});
+	},
+
+	switchMode : function(m) {
+		var f, lm = this.lastMode;
+
+		if (lm != m) {
+			f = document.forms[0];
+
+			if (lm) {
+				f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;
+				f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;
+				f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;
+				f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;
+			}
+
+			mcTabs.displayTab(m + '_tab',  m + '_panel');
+			document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";
+			document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";
+			this.lastMode = m;
+		}
+	},
+
+	searchNext : function(a) {
+		var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;
+
+		// Get input
+		f = document.forms[0];
+		s = f[m + '_panel_searchstring'].value;
+		b = f[m + '_panel_backwardsu'].checked;
+		ca = f[m + '_panel_casesensitivebox'].checked;
+		rs = f['replace_panel_replacestring'].value;
+
+		if (tinymce.isIE) {
+			r = ed.getDoc().selection.createRange();
+		}
+
+		if (s == '')
+			return;
+
+		function fix() {
+			// Correct Firefox graphics glitches
+			// TODO: Verify if this is actually needed any more, maybe it was for very old FF versions? 
+			r = se.getRng().cloneRange();
+			ed.getDoc().execCommand('SelectAll', false, null);
+			se.setRng(r);
+		};
+
+		function replace() {
+			ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE
+		};
+
+		// IE flags
+		if (ca)
+			fl = fl | 4;
+
+		switch (a) {
+			case 'all':
+				// Move caret to beginning of text
+				ed.execCommand('SelectAll');
+				ed.selection.collapse(true);
+
+				if (tinymce.isIE) {
+					ed.focus();
+					r = ed.getDoc().selection.createRange();
+
+					while (r.findText(s, b ? -1 : 1, fl)) {
+						r.scrollIntoView();
+						r.select();
+						replace();
+						fo = 1;
+
+						if (b) {
+							r.moveEnd("character", -(rs.length)); // Otherwise will loop forever
+						}
+					}
+
+					tinyMCEPopup.storeSelection();
+				} else {
+					while (w.find(s, ca, b, false, false, false, false)) {
+						replace();
+						fo = 1;
+					}
+				}
+
+				if (fo)
+					tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));
+				else
+					tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
+
+				return;
+
+			case 'current':
+				if (!ed.selection.isCollapsed())
+					replace();
+
+				break;
+		}
+
+		se.collapse(b);
+		r = se.getRng();
+
+		// Whats the point
+		if (!s)
+			return;
+
+		if (tinymce.isIE) {
+			ed.focus();
+			r = ed.getDoc().selection.createRange();
+
+			if (r.findText(s, b ? -1 : 1, fl)) {
+				r.scrollIntoView();
+				r.select();
+			} else
+				tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
+
+			tinyMCEPopup.storeSelection();
+		} else {
+			if (!w.find(s, ca, b, false, false, false, false))
+				tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
+			else
+				fix();
+		}
+	}
+};
+
+tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js
new file mode 100644
index 0000000..8a65900
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.searchreplace_dlg',{findwhat:"Find What",replacewith:"Replace with",direction:"Direction",up:"Up",down:"Down",mcase:"Match Case",findnext:"Find Next",allreplaced:"All occurrences of the search string were replaced.","searchnext_desc":"Find Again",notfound:"The search has been completed. The search string could not be found.","search_title":"Find","replace_title":"Find/Replace",replaceall:"Replace All",replace:"Replace"});
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm
new file mode 100644
index 0000000..bac5a18
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#searchreplace_dlg.replace_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="js/searchreplace.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/searchreplace.css" />
+</head>
+<body style="display:none;" role="application" aria-labelledby="app_title">
+<span id="app_title" style="display:none">{#searchreplace_dlg.replace_title}</span>
+<form onsubmit="SearchReplaceDialog.searchNext('none');return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="search_tab" aria-controls="search_panel"><span><a href="javascript:SearchReplaceDialog.switchMode('search');" onmousedown="return false;">{#searchreplace.search_desc}</a></span></li>
+			<li id="replace_tab" aria-controls="replace_panel"><span><a href="javascript:SearchReplaceDialog.switchMode('replace');" onmousedown="return false;">{#searchreplace_dlg.replace}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="search_panel" class="panel">
+			<table role="presentation" border="0" cellspacing="0" cellpadding="2">
+				<tr>
+					<td><label for="search_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>
+					<td><input type="text" id="search_panel_searchstring" name="search_panel_searchstring" style="width: 200px" aria-required="true" /></td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table role="presentation" border="0" cellspacing="0" cellpadding="0" class="direction">
+							<tr role="group" aria-labelledby="search_panel_backwards_label">
+								<td><label id="search_panel_backwards_label">{#searchreplace_dlg.direction}</label></td>
+								<td><input id="search_panel_backwardsu" name="search_panel_backwards" class="radio" type="radio" /></td>
+								<td><label for="search_panel_backwardsu">{#searchreplace_dlg.up}</label></td>
+								<td><input id="search_panel_backwardsd" name="search_panel_backwards" class="radio" type="radio" checked="checked" /></td>
+								<td><label for="search_panel_backwardsd">{#searchreplace_dlg.down}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+							<tr>
+								<td><input id="search_panel_casesensitivebox" name="search_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>
+								<td><label for="search_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+
+		<div id="replace_panel" class="panel">
+			<table role="presentation" border="0" cellspacing="0" cellpadding="2">
+				<tr>
+					<td><label for="replace_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>
+					<td><input type="text" id="replace_panel_searchstring" name="replace_panel_searchstring" style="width: 200px" aria-required="true" /></td>
+				</tr>
+				<tr>
+					<td><label for="replace_panel_replacestring">{#searchreplace_dlg.replacewith}</label></td>
+					<td><input type="text" id="replace_panel_replacestring" name="replace_panel_replacestring" style="width: 200px" aria-required="true" /></td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table role="presentation" border="0" cellspacing="0" cellpadding="0" class="direction">
+							<tr role="group" aria-labelledby="replace_panel_dir_label">
+								<td><label id="replace_panel_dir_label">{#searchreplace_dlg.direction}</label></td>
+								<td><input id="replace_panel_backwardsu" name="replace_panel_backwards" class="radio" type="radio" /></td>
+								<td><label for="replace_panel_backwardsu">{#searchreplace_dlg.up}</label></td>
+								<td><input id="replace_panel_backwardsd" name="replace_panel_backwards" class="radio" type="radio" checked="checked" /></td>
+								<td><label for="replace_panel_backwardsd">{#searchreplace_dlg.down}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+							<tr>
+								<td><input id="replace_panel_casesensitivebox" name="replace_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>
+								<td><label for="replace_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+
+	</div>
+
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#searchreplace_dlg.findnext}" />
+		<input type="button" class="button" id="replaceBtn" name="replaceBtn" value="{#searchreplace_dlg.replace}" onclick="SearchReplaceDialog.searchNext('current');" />
+		<input type="button" class="button" id="replaceAllBtn" name="replaceAllBtn" value="{#searchreplace_dlg.replaceall}" onclick="SearchReplaceDialog.searchNext('all');" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css
new file mode 100644
index 0000000..656ce1e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css
@@ -0,0 +1 @@
+.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js
new file mode 100644
index 0000000..48549c9
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;g.rpcUrl=e.getParam("spellchecker_rpc_url","{backend}");if(g.rpc [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
new file mode 100644
index 0000000..925d2f2
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
@@ -0,0 +1,436 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;
+
+	tinymce.create('tinymce.plugins.SpellcheckerPlugin', {
+		getInfo : function() {
+			return {
+				longname : 'Spellchecker',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		init : function(ed, url) {
+			var t = this, cm;
+
+			t.url = url;
+			t.editor = ed;
+			t.rpcUrl = ed.getParam("spellchecker_rpc_url", "{backend}");
+
+			if (t.rpcUrl == '{backend}') {
+				// Sniff if the browser supports native spellchecking (Don't know of a better way)
+				if (tinymce.isIE)
+					return;
+
+				t.hasSupport = true;
+
+				// Disable the context menu when spellchecking is active
+				ed.onContextMenu.addToTop(function(ed, e) {
+					if (t.active)
+						return false;
+				});
+			}
+
+			// Register commands
+			ed.addCommand('mceSpellCheck', function() {
+				if (t.rpcUrl == '{backend}') {
+					// Enable/disable native spellchecker
+					t.editor.getBody().spellcheck = t.active = !t.active;
+					return;
+				}
+
+				if (!t.active) {
+					ed.setProgressState(1);
+					t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {
+						if (r.length > 0) {
+							t.active = 1;
+							t._markWords(r);
+							ed.setProgressState(0);
+							ed.nodeChanged();
+						} else {
+							ed.setProgressState(0);
+
+							if (ed.getParam('spellchecker_report_no_misspellings', true))
+								ed.windowManager.alert('spellchecker.no_mpell');
+						}
+					});
+				} else
+					t._done();
+			});
+
+			if (ed.settings.content_css !== false)
+				ed.contentCSS.push(url + '/css/content.css');
+
+			ed.onClick.add(t._showMenu, t);
+			ed.onContextMenu.add(t._showMenu, t);
+			ed.onBeforeGetContent.add(function() {
+				if (t.active)
+					t._removeWords();
+			});
+
+			ed.onNodeChange.add(function(ed, cm) {
+				cm.setActive('spellchecker', t.active);
+			});
+
+			ed.onSetContent.add(function() {
+				t._done();
+			});
+
+			ed.onBeforeGetContent.add(function() {
+				t._done();
+			});
+
+			ed.onBeforeExecCommand.add(function(ed, cmd) {
+				if (cmd == 'mceFullScreen')
+					t._done();
+			});
+
+			// Find selected language
+			t.languages = {};
+			each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {
+				if (k.indexOf('+') === 0) {
+					k = k.substring(1);
+					t.selectedLang = v;
+				}
+
+				t.languages[k] = v;
+			});
+		},
+
+		createControl : function(n, cm) {
+			var t = this, c, ed = t.editor;
+
+			if (n == 'spellchecker') {
+				// Use basic button if we use the native spellchecker
+				if (t.rpcUrl == '{backend}') {
+					// Create simple toggle button if we have native support
+					if (t.hasSupport)
+						c = cm.createButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
+
+					return c;
+				}
+
+				c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
+
+				c.onRenderMenu.add(function(c, m) {
+					m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+					each(t.languages, function(v, k) {
+						var o = {icon : 1}, mi;
+
+						o.onclick = function() {
+							if (v == t.selectedLang) {
+								return;
+							}
+							mi.setSelected(1);
+							t.selectedItem.setSelected(0);
+							t.selectedItem = mi;
+							t.selectedLang = v;
+						};
+
+						o.title = k;
+						mi = m.add(o);
+						mi.setSelected(v == t.selectedLang);
+
+						if (v == t.selectedLang)
+							t.selectedItem = mi;
+					})
+				});
+
+				return c;
+			}
+		},
+
+		// Internal functions
+
+		_walk : function(n, f) {
+			var d = this.editor.getDoc(), w;
+
+			if (d.createTreeWalker) {
+				w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
+
+				while ((n = w.nextNode()) != null)
+					f.call(this, n);
+			} else
+				tinymce.walk(n, f, 'childNodes');
+		},
+
+		_getSeparators : function() {
+			var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');
+
+			// Build word separator regexp
+			for (i=0; i<str.length; i++)
+				re += '\\' + str.charAt(i);
+
+			return re;
+		},
+
+		_getWords : function() {
+			var ed = this.editor, wl = [], tx = '', lo = {}, rawWords = [];
+
+			// Get area text
+			this._walk(ed.getBody(), function(n) {
+				if (n.nodeType == 3)
+					tx += n.nodeValue + ' ';
+			});
+
+			// split the text up into individual words
+			if (ed.getParam('spellchecker_word_pattern')) {
+				// look for words that match the pattern
+				rawWords = tx.match('(' + ed.getParam('spellchecker_word_pattern') + ')', 'gi');
+			} else {
+				// Split words by separator
+				tx = tx.replace(new RegExp('([0-9]|[' + this._getSeparators() + '])', 'g'), ' ');
+				tx = tinymce.trim(tx.replace(/(\s+)/g, ' '));
+				rawWords = tx.split(' ');
+			}
+
+			// Build word array and remove duplicates
+			each(rawWords, function(v) {
+				if (!lo[v]) {
+					wl.push(v);
+					lo[v] = 1;
+				}
+			});
+
+			return wl;
+		},
+
+		_removeWords : function(w) {
+			var ed = this.editor, dom = ed.dom, se = ed.selection, r = se.getRng(true);
+
+			each(dom.select('span').reverse(), function(n) {
+				if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {
+					if (!w || dom.decode(n.innerHTML) == w)
+						dom.remove(n, 1);
+				}
+			});
+
+			se.setRng(r);
+		},
+
+		_markWords : function(wl) {
+			var ed = this.editor, dom = ed.dom, doc = ed.getDoc(), se = ed.selection, r = se.getRng(true), nl = [],
+				w = wl.join('|'), re = this._getSeparators(), rx = new RegExp('(^|[' + re + '])(' + w + ')(?=[' + re + ']|$)', 'g');
+
+			// Collect all text nodes
+			this._walk(ed.getBody(), function(n) {
+				if (n.nodeType == 3) {
+					nl.push(n);
+				}
+			});
+
+			// Wrap incorrect words in spans
+			each(nl, function(n) {
+				var node, elem, txt, pos, v = n.nodeValue;
+
+				if (rx.test(v)) {
+					// Encode the content
+					v = dom.encode(v);
+					// Create container element
+					elem = dom.create('span', {'class' : 'mceItemHidden'});
+
+					// Following code fixes IE issues by creating text nodes
+					// using DOM methods instead of innerHTML.
+					// Bug #3124: <PRE> elements content is broken after spellchecking.
+					// Bug #1408: Preceding whitespace characters are removed
+					// @TODO: I'm not sure that both are still issues on IE9.
+					if (tinymce.isIE) {
+						// Enclose mispelled words with temporal tag
+						v = v.replace(rx, '$1<mcespell>$2</mcespell>');
+						// Loop over the content finding mispelled words
+						while ((pos = v.indexOf('<mcespell>')) != -1) {
+							// Add text node for the content before the word
+							txt = v.substring(0, pos);
+							if (txt.length) {
+								node = doc.createTextNode(dom.decode(txt));
+								elem.appendChild(node);
+							}
+							v = v.substring(pos+10);
+							pos = v.indexOf('</mcespell>');
+							txt = v.substring(0, pos);
+							v = v.substring(pos+11);
+							// Add span element for the word
+							elem.appendChild(dom.create('span', {'class' : 'mceItemHiddenSpellWord'}, txt));
+						}
+						// Add text node for the rest of the content
+						if (v.length) {
+							node = doc.createTextNode(dom.decode(v));
+							elem.appendChild(node);
+						}
+					} else {
+						// Other browsers preserve whitespace characters on innerHTML usage
+						elem.innerHTML = v.replace(rx, '$1<span class="mceItemHiddenSpellWord">$2</span>');
+					}
+
+					// Finally, replace the node with the container
+					dom.replace(elem, n);
+				}
+			});
+
+			se.setRng(r);
+		},
+
+		_showMenu : function(ed, e) {
+			var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin()), wordSpan = e.target;
+
+			e = 0; // Fixes IE memory leak
+
+			if (!m) {
+				m = ed.controlManager.createDropMenu('spellcheckermenu', {'class' : 'mceNoIcons'});
+				t._menu = m;
+			}
+
+			if (dom.hasClass(wordSpan, 'mceItemHiddenSpellWord')) {
+				m.removeAll();
+				m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+				t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(wordSpan.innerHTML)], function(r) {
+					var ignoreRpc;
+
+					m.removeAll();
+
+					if (r.length > 0) {
+						m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+						each(r, function(v) {
+							m.add({title : v, onclick : function() {
+								dom.replace(ed.getDoc().createTextNode(v), wordSpan);
+								t._checkDone();
+							}});
+						});
+
+						m.addSeparator();
+					} else
+						m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
+
+					if (ed.getParam('show_ignore_words', true)) {
+						ignoreRpc = t.editor.getParam("spellchecker_enable_ignore_rpc", '');
+						m.add({
+							title : 'spellchecker.ignore_word',
+							onclick : function() {
+								var word = wordSpan.innerHTML;
+
+								dom.remove(wordSpan, 1);
+								t._checkDone();
+
+								// tell the server if we need to
+								if (ignoreRpc) {
+									ed.setProgressState(1);
+									t._sendRPC('ignoreWord', [t.selectedLang, word], function(r) {
+										ed.setProgressState(0);
+									});
+								}
+							}
+						});
+
+						m.add({
+							title : 'spellchecker.ignore_words',
+							onclick : function() {
+								var word = wordSpan.innerHTML;
+
+								t._removeWords(dom.decode(word));
+								t._checkDone();
+
+								// tell the server if we need to
+								if (ignoreRpc) {
+									ed.setProgressState(1);
+									t._sendRPC('ignoreWords', [t.selectedLang, word], function(r) {
+										ed.setProgressState(0);
+									});
+								}
+							}
+						});
+					}
+
+					if (t.editor.getParam("spellchecker_enable_learn_rpc")) {
+						m.add({
+							title : 'spellchecker.learn_word',
+							onclick : function() {
+								var word = wordSpan.innerHTML;
+
+								dom.remove(wordSpan, 1);
+								t._checkDone();
+
+								ed.setProgressState(1);
+								t._sendRPC('learnWord', [t.selectedLang, word], function(r) {
+									ed.setProgressState(0);
+								});
+							}
+						});
+					}
+
+					m.update();
+				});
+
+				p1 = DOM.getPos(ed.getContentAreaContainer());
+				m.settings.offset_x = p1.x;
+				m.settings.offset_y = p1.y;
+
+				ed.selection.select(wordSpan);
+				p1 = dom.getPos(wordSpan);
+				m.showMenu(p1.x, p1.y + wordSpan.offsetHeight - vp.y);
+
+				return tinymce.dom.Event.cancel(e);
+			} else
+				m.hideMenu();
+		},
+
+		_checkDone : function() {
+			var t = this, ed = t.editor, dom = ed.dom, o;
+
+			each(dom.select('span'), function(n) {
+				if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {
+					o = true;
+					return false;
+				}
+			});
+
+			if (!o)
+				t._done();
+		},
+
+		_done : function() {
+			var t = this, la = t.active;
+
+			if (t.active) {
+				t.active = 0;
+				t._removeWords();
+
+				if (t._menu)
+					t._menu.hideMenu();
+
+				if (la)
+					t.editor.nodeChanged();
+			}
+		},
+
+		_sendRPC : function(m, p, cb) {
+			var t = this;
+
+			JSONRequest.sendRPC({
+				url : t.rpcUrl,
+				method : m,
+				params : p,
+				success : cb,
+				error : function(e, x) {
+					t.editor.setProgressState(0);
+					t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));
+				}
+			});
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif
new file mode 100644
index 0000000..7d0a4db
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/css/props.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/css/props.css
new file mode 100644
index 0000000..51a3b1f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/css/props.css
@@ -0,0 +1,14 @@
+#text_font {width:250px;}
+#text_size {width:70px;}
+.mceAddSelectValue {background:#DDD;}
+select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;}
+#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;}
+#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;}
+#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;}
+.panel_toggle_insert_span {padding-top:10px;}
+.panel_wrapper div.current {padding-top:10px;height:230px;}
+.delim {border-left:1px solid gray;}
+.tdelim {border-bottom:1px solid gray;}
+#block_display {width:145px;}
+#list_type {width:115px;}
+.disabled {background:#EEE;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js
new file mode 100644
index 0000000..dda9f92
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){var c=false;var f=a.selection.getSelectedBlocks();var d=[];if(f.length===1){d.push(a.selection.getNode().style.cssText)}else{tinymce.each(f,function(g){d.push(a.dom.getAttrib(g,"style"))});c=true}a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:340+parseInt(a.getLang("style.delta_height",0)),inline:1},{applyStyleToBlocks [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js
new file mode 100644
index 0000000..5a2d848
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js
@@ -0,0 +1,71 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.StylePlugin', {
+		init : function(ed, url) {
+			// Register commands
+			ed.addCommand('mceStyleProps', function() {
+
+				var applyStyleToBlocks = false;
+				var blocks = ed.selection.getSelectedBlocks();
+				var styles = [];
+
+				if (blocks.length === 1) {
+					styles.push(ed.selection.getNode().style.cssText);
+				}
+				else {
+					tinymce.each(blocks, function(block) {
+						styles.push(ed.dom.getAttrib(block, 'style'));
+					});
+					applyStyleToBlocks = true;
+				}
+
+				ed.windowManager.open({
+					file : url + '/props.htm',
+					width : 480 + parseInt(ed.getLang('style.delta_width', 0)),
+					height : 340 + parseInt(ed.getLang('style.delta_height', 0)),
+					inline : 1
+				}, {
+					applyStyleToBlocks : applyStyleToBlocks,
+					plugin_url : url,
+					styles : styles
+				});
+			});
+
+			ed.addCommand('mceSetElementStyle', function(ui, v) {
+				if (e = ed.selection.getNode()) {
+					ed.dom.setAttrib(e, 'style', v);
+					ed.execCommand('mceRepaint');
+				}
+			});
+
+			ed.onNodeChange.add(function(ed, cm, n) {
+				cm.setDisabled('styleprops', n.nodeName === 'BODY');
+			});
+
+			// Register buttons
+			ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Style',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/props.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/props.js
new file mode 100644
index 0000000..853222b
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/props.js
@@ -0,0 +1,709 @@
+tinyMCEPopup.requireLangPack();
+
+var defaultFonts = "" + 
+	"Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + 
+	"Times New Roman, Times, serif=Times New Roman, Times, serif;" + 
+	"Courier New, Courier, mono=Courier New, Courier, mono;" + 
+	"Times New Roman, Times, serif=Times New Roman, Times, serif;" + 
+	"Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + 
+	"Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + 
+	"Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";
+
+var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";
+var defaultMeasurement = "+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
+var defaultSpacingMeasurement = "pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%";
+var defaultIndentMeasurement = "pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
+var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";
+var defaultTextStyle = "normal;italic;oblique";
+var defaultVariant = "normal;small-caps";
+var defaultLineHeight = "normal";
+var defaultAttachment = "fixed;scroll";
+var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";
+var defaultPosH = "left;center;right";
+var defaultPosV = "top;center;bottom";
+var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";
+var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";
+var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";
+var defaultBorderWidth = "thin;medium;thick";
+var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";
+
+function aggregateStyles(allStyles) {
+	var mergedStyles = {};
+
+	tinymce.each(allStyles, function(style) {
+		if (style !== '') {
+			var parsedStyles = tinyMCEPopup.editor.dom.parseStyle(style);
+			for (var name in parsedStyles) {
+				if (parsedStyles.hasOwnProperty(name)) {
+					if (mergedStyles[name] === undefined) {
+						mergedStyles[name] = parsedStyles[name];
+					}
+					else if (name === 'text-decoration') {
+						if (mergedStyles[name].indexOf(parsedStyles[name]) === -1) {
+							mergedStyles[name] = mergedStyles[name] +' '+ parsedStyles[name];
+						}
+					}
+				}
+			}
+		}
+	});
+
+  return mergedStyles;
+}
+
+var applyActionIsInsert;
+var existingStyles;
+
+function init(ed) {
+	var ce = document.getElementById('container'), h;
+
+	existingStyles = aggregateStyles(tinyMCEPopup.getWindowArg('styles'));
+	ce.style.cssText = tinyMCEPopup.editor.dom.serializeStyle(existingStyles);
+
+	applyActionIsInsert = ed.getParam("edit_css_style_insert_span", false);
+	document.getElementById('toggle_insert_span').checked = applyActionIsInsert;
+
+	h = getBrowserHTML('background_image_browser','background_image','image','advimage');
+	document.getElementById("background_image_browser").innerHTML = h;
+
+	document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');
+	document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');
+	document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');
+	document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');
+	document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');
+	document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');
+
+	fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);
+	fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);
+	fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);
+	fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);
+	fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);
+	fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);
+	fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);
+	fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);
+	fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);
+
+	fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);
+	fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);
+
+	fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);
+	fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);
+	fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);
+	fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);
+	fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);
+	fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);
+	fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);
+	fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);
+	fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);
+
+	fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);
+	fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);
+	fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);
+	fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);
+	fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);
+	fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);
+
+	fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);
+	fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);
+	fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);
+	fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);
+
+	fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);
+	fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);
+
+	fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);
+	fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);
+
+	fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);
+
+	fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);
+
+	TinyMCE_EditableSelects.init();
+	setupFormData();
+	showDisabledControls();
+}
+
+function setupFormData() {
+	var ce = document.getElementById('container'), f = document.forms[0], s, b, i;
+
+	// Setup text fields
+
+	selectByValue(f, 'text_font', ce.style.fontFamily, true, true);
+	selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);
+	selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));
+	selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);
+	selectByValue(f, 'text_style', ce.style.fontStyle, true, true);
+	selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);
+	selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));
+	selectByValue(f, 'text_case', ce.style.textTransform, true, true);
+	selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);
+	f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);
+	updateColor('text_color_pick', 'text_color');
+	f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');
+	f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');
+	f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');
+	f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');
+	f.text_none.checked = inStr(ce.style.textDecoration, 'none');
+	updateTextDecorations();
+
+	// Setup background fields
+
+	f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);
+	updateColor('background_color_pick', 'background_color');
+	f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+	selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);
+	selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);
+	selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);
+	selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));
+	selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);
+	selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));
+
+	// Setup block fields
+
+	selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);
+	selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));
+	selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);
+	selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));
+	selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);
+	selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);
+	f.block_text_indent.value = getNum(ce.style.textIndent);
+	selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));
+	selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);
+	selectByValue(f, 'block_display', ce.style.display, true, true);
+
+	// Setup box fields
+
+	f.box_width.value = getNum(ce.style.width);
+	selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));
+
+	f.box_height.value = getNum(ce.style.height);
+	selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));
+	selectByValue(f, 'box_float', ce.style.cssFloat || ce.style.styleFloat, true, true);
+
+	selectByValue(f, 'box_clear', ce.style.clear, true, true);
+
+	setupBox(f, ce, 'box_padding', 'padding', '');
+	setupBox(f, ce, 'box_margin', 'margin', '');
+
+	// Setup border fields
+
+	setupBox(f, ce, 'border_style', 'border', 'Style');
+	setupBox(f, ce, 'border_width', 'border', 'Width');
+	setupBox(f, ce, 'border_color', 'border', 'Color');
+
+	updateColor('border_color_top_pick', 'border_color_top');
+	updateColor('border_color_right_pick', 'border_color_right');
+	updateColor('border_color_bottom_pick', 'border_color_bottom');
+	updateColor('border_color_left_pick', 'border_color_left');
+
+	f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);
+	f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);
+	f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);
+	f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);
+
+	// Setup list fields
+
+	selectByValue(f, 'list_type', ce.style.listStyleType, true, true);
+	selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);
+	f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+
+	// Setup box fields
+
+	selectByValue(f, 'positioning_type', ce.style.position, true, true);
+	selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);
+	selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);
+	f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";
+
+	f.positioning_width.value = getNum(ce.style.width);
+	selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));
+
+	f.positioning_height.value = getNum(ce.style.height);
+	selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));
+
+	setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']);
+
+	s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");
+	s = s.replace(/,/g, ' ');
+
+	if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) {
+		f.positioning_clip_top.value = getNum(getVal(s, 0));
+		selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
+		f.positioning_clip_right.value = getNum(getVal(s, 1));
+		selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));
+		f.positioning_clip_bottom.value = getNum(getVal(s, 2));
+		selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));
+		f.positioning_clip_left.value = getNum(getVal(s, 3));
+		selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));
+	} else {
+		f.positioning_clip_top.value = getNum(getVal(s, 0));
+		selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
+		f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;
+	}
+
+//	setupBox(f, ce, '', 'border', 'Color');
+}
+
+function getMeasurement(s) {
+	return s.replace(/^([0-9.]+)(.*)$/, "$2");
+}
+
+function getNum(s) {
+	if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s))
+		return s.replace(/[^0-9.]/g, '');
+
+	return s;
+}
+
+function inStr(s, n) {
+	return new RegExp(n, 'gi').test(s);
+}
+
+function getVal(s, i) {
+	var a = s.split(' ');
+
+	if (a.length > 1)
+		return a[i];
+
+	return "";
+}
+
+function setValue(f, n, v) {
+	if (f.elements[n].type == "text")
+		f.elements[n].value = v;
+	else
+		selectByValue(f, n, v, true, true);
+}
+
+function setupBox(f, ce, fp, pr, sf, b) {
+	if (typeof(b) == "undefined")
+		b = ['Top', 'Right', 'Bottom', 'Left'];
+
+	if (isSame(ce, pr, sf, b)) {
+		f.elements[fp + "_same"].checked = true;
+
+		setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
+		f.elements[fp + "_top"].disabled = false;
+
+		f.elements[fp + "_right"].value = "";
+		f.elements[fp + "_right"].disabled = true;
+		f.elements[fp + "_bottom"].value = "";
+		f.elements[fp + "_bottom"].disabled = true;
+		f.elements[fp + "_left"].value = "";
+		f.elements[fp + "_left"].disabled = true;
+
+		if (f.elements[fp + "_top_measurement"]) {
+			selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
+			f.elements[fp + "_left_measurement"].disabled = true;
+			f.elements[fp + "_bottom_measurement"].disabled = true;
+			f.elements[fp + "_right_measurement"].disabled = true;
+		}
+	} else {
+		f.elements[fp + "_same"].checked = false;
+
+		setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
+		f.elements[fp + "_top"].disabled = false;
+
+		setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));
+		f.elements[fp + "_right"].disabled = false;
+
+		setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));
+		f.elements[fp + "_bottom"].disabled = false;
+
+		setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));
+		f.elements[fp + "_left"].disabled = false;
+
+		if (f.elements[fp + "_top_measurement"]) {
+			selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
+			selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));
+			selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));
+			selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));
+			f.elements[fp + "_left_measurement"].disabled = false;
+			f.elements[fp + "_bottom_measurement"].disabled = false;
+			f.elements[fp + "_right_measurement"].disabled = false;
+		}
+	}
+}
+
+function isSame(e, pr, sf, b) {
+	var a = [], i, x;
+
+	if (typeof(b) == "undefined")
+		b = ['Top', 'Right', 'Bottom', 'Left'];
+
+	if (typeof(sf) == "undefined" || sf == null)
+		sf = "";
+
+	a[0] = e.style[pr + b[0] + sf];
+	a[1] = e.style[pr + b[1] + sf];
+	a[2] = e.style[pr + b[2] + sf];
+	a[3] = e.style[pr + b[3] + sf];
+
+	for (i=0; i<a.length; i++) {
+		if (a[i] == null)
+			return false;
+
+		for (x=0; x<a.length; x++) {
+			if (a[x] != a[i])
+				return false;
+		}
+	}
+
+	return true;
+};
+
+function hasEqualValues(a) {
+	var i, x;
+
+	for (i=0; i<a.length; i++) {
+		if (a[i] == null)
+			return false;
+
+		for (x=0; x<a.length; x++) {
+			if (a[x] != a[i])
+				return false;
+		}
+	}
+
+	return true;
+}
+
+function toggleApplyAction() {
+	applyActionIsInsert = ! applyActionIsInsert;
+}
+
+function applyAction() {
+	var ce = document.getElementById('container'), ed = tinyMCEPopup.editor;
+
+	generateCSS();
+
+	tinyMCEPopup.restoreSelection();
+
+	var newStyles = tinyMCEPopup.editor.dom.parseStyle(ce.style.cssText);
+
+	if (applyActionIsInsert) {
+		ed.formatter.register('plugin_style', {
+			inline: 'span', styles: existingStyles
+		});
+		ed.formatter.remove('plugin_style');
+
+		ed.formatter.register('plugin_style', {
+			inline: 'span', styles: newStyles
+		});
+		ed.formatter.apply('plugin_style');
+	} else {
+		var nodes;
+
+		if (tinyMCEPopup.getWindowArg('applyStyleToBlocks')) {
+			nodes = ed.selection.getSelectedBlocks();
+		}
+		else {
+			nodes = ed.selection.getNode();
+		}
+
+		ed.dom.setAttrib(nodes, 'style', tinyMCEPopup.editor.dom.serializeStyle(newStyles));
+	}
+}
+
+function updateAction() {
+	applyAction();
+	tinyMCEPopup.close();
+}
+
+function generateCSS() {
+	var ce = document.getElementById('container'), f = document.forms[0], num = new RegExp('[0-9]+', 'g'), s, t;
+
+	ce.style.cssText = "";
+
+	// Build text styles
+	ce.style.fontFamily = f.text_font.value;
+	ce.style.fontSize = f.text_size.value + (isNum(f.text_size.value) ? (f.text_size_measurement.value || 'px') : "");
+	ce.style.fontStyle = f.text_style.value;
+	ce.style.lineHeight = f.text_lineheight.value + (isNum(f.text_lineheight.value) ? f.text_lineheight_measurement.value : "");
+	ce.style.textTransform = f.text_case.value;
+	ce.style.fontWeight = f.text_weight.value;
+	ce.style.fontVariant = f.text_variant.value;
+	ce.style.color = f.text_color.value;
+
+	s = "";
+	s += f.text_underline.checked ? " underline" : "";
+	s += f.text_overline.checked ? " overline" : "";
+	s += f.text_linethrough.checked ? " line-through" : "";
+	s += f.text_blink.checked ? " blink" : "";
+	s = s.length > 0 ? s.substring(1) : s;
+
+	if (f.text_none.checked)
+		s = "none";
+
+	ce.style.textDecoration = s;
+
+	// Build background styles
+
+	ce.style.backgroundColor = f.background_color.value;
+	ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";
+	ce.style.backgroundRepeat = f.background_repeat.value;
+	ce.style.backgroundAttachment = f.background_attachment.value;
+
+	if (f.background_hpos.value != "") {
+		s = "";
+		s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";
+		s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");
+		ce.style.backgroundPosition = s;
+	}
+
+	// Build block styles
+
+	ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");
+	ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");
+	ce.style.verticalAlign = f.block_vertical_alignment.value;
+	ce.style.textAlign = f.block_text_align.value;
+	ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");
+	ce.style.whiteSpace = f.block_whitespace.value;
+	ce.style.display = f.block_display.value;
+
+	// Build box styles
+
+	ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");
+	ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");
+	ce.style.styleFloat = f.box_float.value;
+	ce.style.cssFloat = f.box_float.value;
+
+	ce.style.clear = f.box_clear.value;
+
+	if (!f.box_padding_same.checked) {
+		ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
+		ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");
+		ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");
+		ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");
+	} else
+		ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");		
+
+	if (!f.box_margin_same.checked) {
+		ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
+		ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");
+		ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");
+		ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");
+	} else
+		ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");		
+
+	// Build border styles
+
+	if (!f.border_style_same.checked) {
+		ce.style.borderTopStyle = f.border_style_top.value;
+		ce.style.borderRightStyle = f.border_style_right.value;
+		ce.style.borderBottomStyle = f.border_style_bottom.value;
+		ce.style.borderLeftStyle = f.border_style_left.value;
+	} else
+		ce.style.borderStyle = f.border_style_top.value;
+
+	if (!f.border_width_same.checked) {
+		ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
+		ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");
+		ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");
+		ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");
+	} else
+		ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
+
+	if (!f.border_color_same.checked) {
+		ce.style.borderTopColor = f.border_color_top.value;
+		ce.style.borderRightColor = f.border_color_right.value;
+		ce.style.borderBottomColor = f.border_color_bottom.value;
+		ce.style.borderLeftColor = f.border_color_left.value;
+	} else
+		ce.style.borderColor = f.border_color_top.value;
+
+	// Build list styles
+
+	ce.style.listStyleType = f.list_type.value;
+	ce.style.listStylePosition = f.list_position.value;
+	ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";
+
+	// Build positioning styles
+
+	ce.style.position = f.positioning_type.value;
+	ce.style.visibility = f.positioning_visibility.value;
+
+	if (ce.style.width == "")
+		ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");
+
+	if (ce.style.height == "")
+		ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");
+
+	ce.style.zIndex = f.positioning_zindex.value;
+	ce.style.overflow = f.positioning_overflow.value;
+
+	if (!f.positioning_placement_same.checked) {
+		ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
+		ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");
+		ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");
+		ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");
+	} else {
+		s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
+		ce.style.top = s;
+		ce.style.right = s;
+		ce.style.bottom = s;
+		ce.style.left = s;
+	}
+
+	if (!f.positioning_clip_same.checked) {
+		s = "rect(";
+		s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";
+		s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";
+		s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";
+		s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");
+		s += ")";
+
+		if (s != "rect(auto auto auto auto)")
+			ce.style.clip = s;
+	} else {
+		s = "rect(";
+		t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";
+		s += t + " ";
+		s += t + " ";
+		s += t + " ";
+		s += t + ")";
+
+		if (s != "rect(auto auto auto auto)")
+			ce.style.clip = s;
+	}
+
+	ce.style.cssText = ce.style.cssText;
+}
+
+function isNum(s) {
+	return new RegExp('[0-9]+', 'g').test(s);
+}
+
+function showDisabledControls() {
+	var f = document.forms, i, a;
+
+	for (i=0; i<f.length; i++) {
+		for (a=0; a<f[i].elements.length; a++) {
+			if (f[i].elements[a].disabled)
+				tinyMCEPopup.editor.dom.addClass(f[i].elements[a], "disabled");
+			else
+				tinyMCEPopup.editor.dom.removeClass(f[i].elements[a], "disabled");
+		}
+	}
+}
+
+function fillSelect(f, s, param, dval, sep, em) {
+	var i, ar, p, se;
+
+	f = document.forms[f];
+	sep = typeof(sep) == "undefined" ? ";" : sep;
+
+	if (em)
+		addSelectValue(f, s, "", "");
+
+	ar = tinyMCEPopup.getParam(param, dval).split(sep);
+	for (i=0; i<ar.length; i++) {
+		se = false;
+
+		if (ar[i].charAt(0) == '+') {
+			ar[i] = ar[i].substring(1);
+			se = true;
+		}
+
+		p = ar[i].split('=');
+
+		if (p.length > 1) {
+			addSelectValue(f, s, p[0], p[1]);
+
+			if (se)
+				selectByValue(f, s, p[1]);
+		} else {
+			addSelectValue(f, s, p[0], p[0]);
+
+			if (se)
+				selectByValue(f, s, p[0]);
+		}
+	}
+}
+
+function toggleSame(ce, pre) {
+	var el = document.forms[0].elements, i;
+
+	if (ce.checked) {
+		el[pre + "_top"].disabled = false;
+		el[pre + "_right"].disabled = true;
+		el[pre + "_bottom"].disabled = true;
+		el[pre + "_left"].disabled = true;
+
+		if (el[pre + "_top_measurement"]) {
+			el[pre + "_top_measurement"].disabled = false;
+			el[pre + "_right_measurement"].disabled = true;
+			el[pre + "_bottom_measurement"].disabled = true;
+			el[pre + "_left_measurement"].disabled = true;
+		}
+	} else {
+		el[pre + "_top"].disabled = false;
+		el[pre + "_right"].disabled = false;
+		el[pre + "_bottom"].disabled = false;
+		el[pre + "_left"].disabled = false;
+
+		if (el[pre + "_top_measurement"]) {
+			el[pre + "_top_measurement"].disabled = false;
+			el[pre + "_right_measurement"].disabled = false;
+			el[pre + "_bottom_measurement"].disabled = false;
+			el[pre + "_left_measurement"].disabled = false;
+		}
+	}
+
+	showDisabledControls();
+}
+
+function synch(fr, to) {
+	var f = document.forms[0];
+
+	f.elements[to].value = f.elements[fr].value;
+
+	if (f.elements[fr + "_measurement"])
+		selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);
+}
+
+function updateTextDecorations(){
+	var el = document.forms[0].elements;
+
+	var textDecorations = ["text_underline", "text_overline", "text_linethrough", "text_blink"];
+	var noneChecked = el["text_none"].checked;
+	tinymce.each(textDecorations, function(id) {
+		el[id].disabled = noneChecked;
+		if (noneChecked) {
+			el[id].checked = false;
+		}
+	});
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js
new file mode 100644
index 0000000..35881b3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.style_dlg',{"text_lineheight":"Line Height","text_variant":"Variant","text_style":"Style","text_weight":"Weight","text_size":"Size","text_font":"Font","text_props":"Text","positioning_tab":"Positioning","list_tab":"List","border_tab":"Border","box_tab":"Box","block_tab":"Block","background_tab":"Background","text_tab":"Text",apply:"Apply",toggle_insert_span:"Insert span at selection",title:"Edit CSS Style",clip:"Clip",placement:"Placement",overflow:"Overflow",zindex:" [...]
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/props.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/props.htm
new file mode 100644
index 0000000..7dc087a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/props.htm
@@ -0,0 +1,845 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#style_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="js/props.js"></script>
+	<link href="css/props.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body id="styleprops" style="display: none" role="application" aria-labelledby="app_title">
+<span id="app_title" style="display:none">{#style_dlg.title}</span>
+<form onsubmit="updateAction();return false;" action="#">
+<div class="tabs">
+	<ul>
+		<li id="text_tab" class="current" aria-controls="text_panel"><span><a href="javascript:mcTabs.displayTab('text_tab','text_panel');" onMouseDown="return false;">{#style_dlg.text_tab}</a></span></li>
+		<li id="background_tab" aria-controls="background_panel"><span><a href="javascript:mcTabs.displayTab('background_tab','background_panel');" onMouseDown="return false;">{#style_dlg.background_tab}</a></span></li>
+		<li id="block_tab" aria-controls="block_panel"><span><a href="javascript:mcTabs.displayTab('block_tab','block_panel');" onMouseDown="return false;">{#style_dlg.block_tab}</a></span></li>
+		<li id="box_tab" aria-controls="box_panel"><span><a href="javascript:mcTabs.displayTab('box_tab','box_panel');" onMouseDown="return false;">{#style_dlg.box_tab}</a></span></li>
+		<li id="border_tab" aria-controls="border_panel"><span><a href="javascript:mcTabs.displayTab('border_tab','border_panel');" onMouseDown="return false;">{#style_dlg.border_tab}</a></span></li>
+		<li id="list_tab" aria-controls="list_panel"><span><a href="javascript:mcTabs.displayTab('list_tab','list_panel');" onMouseDown="return false;">{#style_dlg.list_tab}</a></span></li>
+		<li id="positioning_tab" aria-controls="positioning_panel"><span><a href="javascript:mcTabs.displayTab('positioning_tab','positioning_panel');" onMouseDown="return false;">{#style_dlg.positioning_tab}</a></span></li>
+	</ul>
+</div>
+
+<div class="panel_wrapper">
+<div id="text_panel" class="panel current">
+	<fieldset>
+		<legend>{#style_dlg.text}</legend>
+		<table role="presentation" border="0" width="100%">
+			<tr>
+				<td><label for="text_font">{#style_dlg.text_font}</label></td>
+				<td colspan="3">
+					<select id="text_font" name="text_font" class="mceEditableSelect mceFocus"></select>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="text_size">{#style_dlg.text_size}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><select id="text_size" name="text_size" class="mceEditableSelect"></select></td>
+							<td> </td>
+							<td>
+								<label id="text_size_measurement_label" for="text_size_measurement" style="display: none; visibility: hidden;">Text Size Measurement Unit</label>
+								<select id="text_size_measurement" name="text_size_measurement" aria-labelledby="text_size_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+				<td><label for="text_weight">{#style_dlg.text_weight}</label></td>
+				<td>
+					<select id="text_weight" name="text_weight"></select>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="text_style">{#style_dlg.text_style}</label></td>
+				<td>
+					<select id="text_style" name="text_style" class="mceEditableSelect"></select>
+				</td>
+				<td><label for="text_variant">{#style_dlg.text_variant}</label></td>
+				<td>
+					<select id="text_variant" name="text_variant"></select>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="text_lineheight">{#style_dlg.text_lineheight}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td>
+								<select id="text_lineheight" name="text_lineheight" class="mceEditableSelect"></select>
+							</td>
+							<td> </td>
+							<td>
+								<label id="text_lineheight_measurement_label" for="text_lineheight_measurement" style="display: none; visibility: hidden;">Line Height Measurement Unit</label>
+								<select id="text_lineheight_measurement" name="text_lineheight_measurement" aria-labelledby="text_lineheight_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+				<td><label for="text_case">{#style_dlg.text_case}</label></td>
+				<td>
+					<select id="text_case" name="text_case"></select>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="text_color">{#style_dlg.text_color}</label></td>
+				<td colspan="2">
+					<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+						<tr>
+							<td><input id="text_color" name="text_color" type="text" value="" size="9" onChange="updateColor('text_color_pick','text_color');" /></td>
+							<td id="text_color_pickcontainer"> </td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td valign="top" style="vertical-align: top; padding-top: 3px;">{#style_dlg.text_decoration}</td>
+				<td colspan="2">
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input id="text_underline" name="text_underline" class="checkbox" type="checkbox" /></td>
+							<td><label for="text_underline">{#style_dlg.text_underline}</label></td>
+						</tr>
+						<tr>
+							<td><input id="text_overline" name="text_overline" class="checkbox" type="checkbox" /></td>
+							<td><label for="text_overline">{#style_dlg.text_overline}</label></td>
+						</tr>
+						<tr>
+							<td><input id="text_linethrough" name="text_linethrough" class="checkbox" type="checkbox" /></td>
+							<td><label for="text_linethrough">{#style_dlg.text_striketrough}</label></td>
+						</tr>
+						<tr>
+							<td><input id="text_blink" name="text_blink" class="checkbox" type="checkbox" /></td>
+							<td><label for="text_blink">{#style_dlg.text_blink}</label></td>
+						</tr>
+						<tr>
+							<td><input id="text_none" name="text_none" class="checkbox" type="checkbox" onclick="updateTextDecorations();"/></td>
+							<td><label for="text_none">{#style_dlg.text_none}</label></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div id="background_panel" class="panel">
+	<fieldset>
+		<legend>{#style_dlg.background}</legend>
+		<table role="presentation" border="0">
+			<tr>
+				<td><label for="background_color">{#style_dlg.background_color}</label></td>
+				<td>
+					<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+						<tr>
+							<td><input id="background_color" name="background_color" type="text" value="" size="9" onChange="updateColor('background_color_pick','background_color');" /></td>
+							<td id="background_color_pickcontainer"> </td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+
+			<tr>
+				<td><label for="background_image">{#style_dlg.background_image}</label></td>
+				<td><table role="presentation" border="0" cellspacing="0" cellpadding="0">
+					<tr> 
+						<td><input id="background_image" name="background_image" type="text" /></td> 
+						<td id="background_image_browser"> </td>
+					</tr>
+					</table>
+				</td>
+			</tr>
+
+			<tr>
+				<td><label for="background_repeat">{#style_dlg.background_repeat}</label></td>
+				<td><select id="background_repeat" name="background_repeat" class="mceEditableSelect"></select></td>
+			</tr>
+
+			<tr>
+				<td><label for="background_attachment">{#style_dlg.background_attachment}</label></td>
+				<td><select id="background_attachment" name="background_attachment" class="mceEditableSelect"></select></td>
+			</tr>
+
+			<tr>
+				<td><label for="background_hpos">{#style_dlg.background_hpos}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><select id="background_hpos" name="background_hpos" class="mceEditableSelect"></select></td>
+							<td> </td>
+							<td>
+								<label id="background_hpos_measurement_label" for="background_hpos_measurement" style="display: none; visibility: hidden;">Horizontal position measurement unit</label>
+								<select id="background_hpos_measurement" name="background_hpos_measurement" aria-labelledby="background_hpos_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+
+			<tr>
+				<td><label for="background_vpos">{#style_dlg.background_vpos}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><select id="background_vpos" name="background_vpos" class="mceEditableSelect"></select></td>
+							<td> </td>
+							<td>
+
+								<label id="background_vpos_measurement_label" for="background_vpos_measurement" style="display: none; visibility: hidden;">Vertical position measurement unit</label>
+								<select id="background_vpos_measurement" name="background_vpos_measurement" aria-labelledby="background_vpos_measurement_label">></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div id="block_panel" class="panel">
+	<fieldset>
+		<legend>{#style_dlg.block}</legend>
+		<table role="presentation" border="0">
+			<tr>
+				<td><label for="block_wordspacing">{#style_dlg.block_wordspacing}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><select id="block_wordspacing" name="block_wordspacing" class="mceEditableSelect"></select></td>
+							<td> </td>
+							<td>
+								<label id="block_wordspacing_measurement_label" for="block_wordspacing_measurement" style="display: none; visibility: hidden;">Word spacing measurement unit</label>
+								<select id="block_wordspacing_measurement" name="block_wordspacing_measurement" aria-labelledby="block_wordspacing_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+
+			<tr>
+				<td><label for="block_letterspacing">{#style_dlg.block_letterspacing}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><select id="block_letterspacing" name="block_letterspacing" class="mceEditableSelect"></select></td>
+							<td> </td>
+							<td>
+								<label id="block_letterspacing_measurement_label" for="block_letterspacing_measurement" style="display: none; visibility: hidden;">Letter spacing measurement unit</label>
+								<select id="block_letterspacing_measurement" name="block_letterspacing_measurement" aria-labelledby="block_letterspacing_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+
+			<tr>
+				<td><label for="block_vertical_alignment">{#style_dlg.block_vertical_alignment}</label></td>
+				<td><select id="block_vertical_alignment" name="block_vertical_alignment" class="mceEditableSelect"></select></td>
+			</tr>
+
+			<tr>
+				<td><label for="block_text_align">{#style_dlg.block_text_align}</label></td>
+				<td><select id="block_text_align" name="block_text_align" class="mceEditableSelect"></select></td>
+			</tr>
+
+			<tr>
+				<td><label for="block_text_indent">{#style_dlg.block_text_indent}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="block_text_indent" name="block_text_indent" /></td>
+							<td> </td>
+							<td>
+								<label id="block_text_indent_measurement_label" for="block_text_indent_measurement" style="display: none; visibility: hidden;">Text Indent Measurement Unit</label>
+
+								<select id="block_text_indent_measurement" name="block_text_indent_measurement" aria-labelledby="block_text_indent_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+
+			<tr>
+				<td><label for="block_whitespace">{#style_dlg.block_whitespace}</label></td>
+				<td><select id="block_whitespace" name="block_whitespace" class="mceEditableSelect"></select></td>
+			</tr>
+
+			<tr>
+				<td><label for="block_display">{#style_dlg.block_display}</label></td>
+				<td><select id="block_display" name="block_display" class="mceEditableSelect"></select></td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div id="box_panel" class="panel">
+	<fieldset>
+		<legend>{#style_dlg.box}</legend>
+		<table role="presentation" border="0">
+			<tr>
+				<td><label for="box_width">{#style_dlg.box_width}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_width" name="box_width" class="mceEditableSelect" onChange="synch('box_width','positioning_width');" /></td>
+							<td> </td>
+							<td>
+								<label id="box_width_measurement_label" for="box_width_measurement" style="display: none; visibility: hidden;">Box Width Measurement Unit</label>
+								<select id="box_width_measurement" name="box_width_measurement" aria-labelledby="box_width_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+				<td>   <label for="box_float">{#style_dlg.box_float}</label></td>
+				<td><select id="box_float" name="box_float" class="mceEditableSelect"></select></td>
+			</tr>
+
+			<tr>
+				<td><label for="box_height">{#style_dlg.box_height}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_height" name="box_height" class="mceEditableSelect" onChange="synch('box_height','positioning_height');" /></td>
+							<td> </td>
+							<td>
+								<label id="box_height_measurement_label" for="box_height_measurement" style="display: none; visibility: hidden;">Box Height Measurement Unit</label>
+								<select id="box_height_measurement" name="box_height_measurement" aria-labelledby="box_height_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+				<td>   <label for="box_clear">{#style_dlg.box_clear}</label></td>
+				<td><select id="box_clear" name="box_clear" class="mceEditableSelect"></select></td>
+			</tr>
+		</table>
+	</fieldset>
+
+<div style="float: left; width: 49%">
+	<fieldset>
+		<legend>{#style_dlg.padding}</legend>
+
+		<table role="presentation" border="0">
+			<tr>
+				<td> </td>
+				<td><input type="checkbox" id="box_padding_same" name="box_padding_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_padding');" /> <label for="box_padding_same">{#style_dlg.same}</label></td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_top">{#style_dlg.top}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_top" name="box_padding_top" class="mceEditableSelect" /></td>
+							<td> </td>
+							<td>
+								<label id="box_padding_top_measurement_label" for="box_padding_top_measurement" style="display: none; visibility: hidden;">Padding Top Measurement Unit</label>
+								<select id="box_padding_top_measurement" name="box_padding_top_measurement" aria-labelledby="box_padding_top_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_right">{#style_dlg.right}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_right" name="box_padding_right" class="mceEditableSelect" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="box_padding_right_measurement_label" for="box_padding_right_measurement" style="display: none; visibility: hidden;">Padding Right Measurement Unit</label>
+								<select id="box_padding_right_measurement" name="box_padding_right_measurement" disabled="disabled" aria-labelledby="box_padding_right_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_bottom">{#style_dlg.bottom}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_bottom" name="box_padding_bottom" class="mceEditableSelect" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="box_padding_bottom_measurement_label" for="box_padding_bottom_measurement" style="display: none; visibility: hidden;">Padding Bottom Measurement Unit</label>
+								<select id="box_padding_bottom_measurement" name="box_padding_bottom_measurement" disabled="disabled" aria-labelledby="box_padding_bottom_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_left">{#style_dlg.left}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_left" name="box_padding_left" class="mceEditableSelect" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="box_padding_left_measurement_label" for="box_padding_left_measurement" style="display: none; visibility: hidden;">Padding Left Measurement Unit</label>
+								<select id="box_padding_left_measurement" name="box_padding_left_measurement" disabled="disabled" aria-labelledby="box_padding_left_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div style="float: right; width: 49%">
+	<fieldset>
+		<legend>{#style_dlg.margin}</legend>
+
+		<table role="presentation" border="0">
+			<tr>
+				<td> </td>
+				<td><input type="checkbox" id="box_margin_same" name="box_margin_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_margin');" /> <label for="box_margin_same">{#style_dlg.same}</label></td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_top">{#style_dlg.top}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_top" name="box_margin_top" class="mceEditableSelect" /></td>
+							<td> </td>
+							<td>
+								<label id="box_margin_top_measurement_label" for="box_margin_top_measurement" style="display: none; visibility: hidden;">Margin Top Measurement Unit</label>
+								<select id="box_margin_top_measurement" name="box_margin_top_measurement" aria-labelledby="box_margin_top_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_right">{#style_dlg.right}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_right" name="box_margin_right" class="mceEditableSelect" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="box_margin_right_measurement_label" for="box_margin_right_measurement" style="display: none; visibility: hidden;">Margin Right Measurement Unit</label>
+								<select id="box_margin_right_measurement" name="box_margin_right_measurement" disabled="disabled" aria-labelledby="box_margin_right_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_bottom">{#style_dlg.bottom}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_bottom" name="box_margin_bottom" class="mceEditableSelect" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="box_margin_bottom_measurement_label" for="box_margin_bottom_measurement" style="display: none; visibility: hidden;">Margin Bottom Measurement Unit</label>
+								<select id="box_margin_bottom_measurement" name="box_margin_bottom_measurement" disabled="disabled" aria-labelledby="box_margin_bottom_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_left">{#style_dlg.left}</label></td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_left" name="box_margin_left" class="mceEditableSelect" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="box_margin_left_measurement_label" for="box_margin_left_measurement" style="display: none; visibility: hidden;">Margin Left Measurement Unit</label>
+								<select id="box_margin_left_measurement" name="box_margin_left_measurement" disabled="disabled" aria-labelledby="box_margin_left_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+<br style="clear: both" />
+</div>
+
+<div id="border_panel" class="panel">
+	<fieldset>
+		<legend>{#style_dlg.border}</legend>	
+		<table role="presentation" border="0" cellspacing="0" cellpadding="0" width="100%">
+		<tr>
+			<td class="tdelim"> </td>
+			<td class="tdelim delim"> </td>
+			<td class="tdelim">{#style_dlg.style}</td>
+			<td class="tdelim delim"> </td>
+			<td class="tdelim">{#style_dlg.width}</td>
+			<td class="tdelim delim"> </td>
+			<td class="tdelim">{#style_dlg.color}</td>
+		</tr>
+
+		<tr>
+			<td> </td>
+			<td class="delim"> </td>
+			<td><input type="checkbox" id="border_style_same" name="border_style_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_style');" /> <label for="border_style_same">{#style_dlg.same}</label></td>
+			<td class="delim"> </td>
+			<td><input type="checkbox" id="border_width_same" name="border_width_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_width');" /> <label for="border_width_same">{#style_dlg.same}</label></td>
+			<td class="delim"> </td>
+			<td><input type="checkbox" id="border_color_same" name="border_color_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_color');" /> <label for="border_color_same">{#style_dlg.same}</label></td>
+		</tr>
+
+		<tr>
+			<td>{#style_dlg.top}</td>
+			<td class="delim"> </td>
+			<td><select id="border_style_top" name="border_style_top" class="mceEditableSelect"></select></td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="border_width_top" name="border_width_top" class="mceEditableSelect"></select></td>
+						<td> </td>
+						<td>
+							<label id="border_width_top_measurement_label" for="border_width_top_measurement" style="display: none; visibility: hidden;">Width top Measurement Unit</label>
+							<select id="border_width_top_measurement" name="border_width_top_measurement" aria-labelledby="border_width_top_measurement_label"></select>
+						</td>
+					</tr>
+				</table>
+			</td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+					<tr>
+						<td><input id="border_color_top" name="border_color_top" type="text" value="" size="9" onChange="updateColor('border_color_top_pick','border_color_top');" /></td>
+						<td id="border_color_top_pickcontainer"> </td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td>{#style_dlg.right}</td>
+			<td class="delim"> </td>
+			<td><select id="border_style_right" name="border_style_right" class="mceEditableSelect" disabled="disabled"></select></td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="border_width_right" name="border_width_right" class="mceEditableSelect" disabled="disabled"></select></td>
+						<td> </td>
+						<td>
+							<label id="border_width_right_measurement_label" for="border_width_right_measurement" style="display: none; visibility: hidden;">Width Right Measurement Unit</label>
+							<select id="border_width_right_measurement" name="border_width_right_measurement" disabled="disabled" aria-labelledby="border_width_right_measurement_label"></select>
+						</td>
+					</tr>
+				</table>
+			</td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+					<tr>
+						<td><input id="border_color_right" name="border_color_right" type="text" value="" size="9" onChange="updateColor('border_color_right_pick','border_color_right');" disabled="disabled" /></td>
+						<td id="border_color_right_pickcontainer"> </td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td>{#style_dlg.bottom}</td>
+			<td class="delim"> </td>
+			<td><select id="border_style_bottom" name="border_style_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="border_width_bottom" name="border_width_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
+						<td> </td>
+						<td>
+							<label id="border_width_bottom_measurement_label" for="border_width_bottom_measurement" style="display: none; visibility: hidden;">Width Bottom Measurement Unit</label>
+							<select id="border_width_bottom_measurement" name="border_width_bottom_measurement" disabled="disabled" aria-labelledby="border_width_bottom_measurement_label"></select>
+						</td>
+					</tr>
+				</table>
+			</td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+					<tr>
+						<td><input id="border_color_bottom" name="border_color_bottom" type="text" value="" size="9" onChange="updateColor('border_color_bottom_pick','border_color_bottom');" disabled="disabled" /></td>
+						<td id="border_color_bottom_pickcontainer"> </td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td>{#style_dlg.left}</td>
+			<td class="delim"> </td>
+			<td><select id="border_style_left" name="border_style_left" class="mceEditableSelect" disabled="disabled"></select></td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="border_width_left" name="border_width_left" class="mceEditableSelect" disabled="disabled"></select></td>
+						<td> </td>
+						<td>
+							<label id="border_width_left_measurement_label" for="border_width_left_measurement" style="display: none; visibility: hidden;">Width Left Measurement Unit</label>
+							<select id="border_width_left_measurement" name="border_width_left_measurement" disabled="disabled" aria-labelledby="border_width_left_measurement_label"></select>
+						</td>
+					</tr>
+				</table>
+			</td>
+			<td class="delim"> </td>
+			<td>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+					<tr>
+						<td><input id="border_color_left" name="border_color_left" type="text" value="" size="9" onChange="updateColor('border_color_left_pick','border_color_left');" disabled="disabled" /></td>
+						<td id="border_color_left_pickcontainer"> </td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div id="list_panel" class="panel">
+<fieldset>
+	<legend>{#style_dlg.list}</legend>
+	<table role="presentation" border="0">
+		<tr>
+			<td><label for="list_type">{#style_dlg.list_type}</label></td>
+			<td><select id="list_type" name="list_type" class="mceEditableSelect"></select></td>
+		</tr>
+
+		<tr>
+			<td><label for="list_bullet_image">{#style_dlg.bullet_image}</label></td>
+			<td><input id="list_bullet_image" name="list_bullet_image" type="text" /></td>
+		</tr>
+
+		<tr>
+			<td><label for="list_position">{#style_dlg.position}</label></td>
+			<td><select id="list_position" name="list_position" class="mceEditableSelect"></select></td>
+		</tr>
+	</table>
+</fieldset>
+</div>
+
+<div id="positioning_panel" class="panel">
+<fieldset>
+	<legend>{#style_dlg.position}</legend>
+<table role="presentation" border="0">
+	<tr>
+		<td><label for="positioning_type">{#style_dlg.positioning_type}</label></td>
+		<td><select id="positioning_type" name="positioning_type" class="mceEditableSelect"></select></td>
+		<td>   <label for="positioning_visibility">{#style_dlg.visibility}</label></td>
+		<td><select id="positioning_visibility" name="positioning_visibility" class="mceEditableSelect"></select></td>
+	</tr>
+
+	<tr>
+		<td><label for="positioning_width">{#style_dlg.width}</label></td>
+		<td>
+			<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+				<tr>
+					<td><input type="text" id="positioning_width" name="positioning_width" onChange="synch('positioning_width','box_width');" /></td>
+					<td> </td>
+					<td>
+						<label id="positioning_width_measurement_label" for="positioning_width_measurement" style="display: none; visibility: hidden;">Positioning width Measurement Unit</label>
+						<select id="positioning_width_measurement" name="positioning_width_measurement" aria-labelledby="positioning_width_measurement_label"></select>
+					</td>
+				</tr>
+			</table>
+		</td>
+		<td>   <label for="positioning_zindex">{#style_dlg.zindex}</label></td>
+		<td><input type="text" id="positioning_zindex" name="positioning_zindex" /></td>
+	</tr>
+
+	<tr>
+		<td><label for="positioning_height">{#style_dlg.height}</label></td>
+		<td>
+			<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+				<tr>
+					<td><input type="text" id="positioning_height" name="positioning_height" onChange="synch('positioning_height','box_height');" /></td>
+					<td> </td>
+					<td>
+						<label id="positioning_height_measurement_label" for="positioning_height_measurement" style="display: none; visibility: hidden;">Positioning Height Measurement Unit</label>
+						<select id="positioning_height_measurement" name="positioning_height_measurement" aria-labelledby="positioning_height_measurement_label"></select>
+					</td>
+				</tr>
+			</table>
+		</td>
+		<td>   <label for="positioning_overflow">{#style_dlg.overflow}</label></td>
+		<td><select id="positioning_overflow" name="positioning_overflow" class="mceEditableSelect"></select></td>
+	</tr>
+</table>
+</fieldset>
+
+<div style="float: left; width: 49%">
+	<fieldset>
+		<legend>{#style_dlg.placement}</legend>
+
+		<table role="presentation" border="0">
+			<tr>
+				<td> </td>
+				<td><input type="checkbox" id="positioning_placement_same" name="positioning_placement_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_placement');" /> <label for="positioning_placement_same">{#style_dlg.same}</label></td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.top}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_top" name="positioning_placement_top" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_placement_top_measurement_label" for="positioning_placement_top_measurement" style="display: none; visibility: hidden;">Placement Top Measurement Unit</label>
+								<select id="positioning_placement_top_measurement" name="positioning_placement_top_measurement" aria-labelledby="positioning_placement_top_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.right}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_right" name="positioning_placement_right" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_placement_right_measurement_label" for="positioning_placement_right_measurement" style="display: none; visibility: hidden;">Placement Right Measurement Unit</label>
+								<select id="positioning_placement_right_measurement" name="positioning_placement_right_measurement" disabled="disabled" aria-labelledby="positioning_placement_right_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.bottom}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_bottom" name="positioning_placement_bottom" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_placement_bottom_measurement_label" for="positioning_placement_bottom_measurement" style="display: none; visibility: hidden;">Placement Bottom Measurement Unit</label>
+								<select id="positioning_placement_bottom_measurement" name="positioning_placement_bottom_measurement" disabled="disabled" aria-labelledby="positioning_placement_bottom_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.left}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_left" name="positioning_placement_left" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_placement_left_measurement_label" for="positioning_placement_left_measurement" style="display: none; visibility: hidden;">Placement Left Measurement Unit</label>
+								<select id="positioning_placement_left_measurement" name="positioning_placement_left_measurement" disabled="disabled" aria-labelledby="positioning_placement_left_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div style="float: right; width: 49%">
+	<fieldset>
+		<legend>{#style_dlg.clip}</legend>
+
+		<table role="presentation" border="0">
+			<tr>
+				<td> </td>
+				<td><input type="checkbox" id="positioning_clip_same" name="positioning_clip_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_clip');" /> <label for="positioning_clip_same">{#style_dlg.same}</label></td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.top}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_top" name="positioning_clip_top" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_clip_top_measurement_label" for="positioning_clip_top_measurement" style="display: none; visibility: hidden;">Clip Top Measurement Unit</label>
+								<select id="positioning_clip_top_measurement" name="positioning_clip_top_measurement" aria-labelledby="positioning_clip_top_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.right}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_right" name="positioning_clip_right" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_clip_right_measurement_label" for="positioning_clip_right_measurement" style="display: none; visibility: hidden;">Clip Right Measurement Unit</label>
+								<select id="positioning_clip_right_measurement" name="positioning_clip_right_measurement" disabled="disabled" aria-labelledby="positioning_clip_right_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.bottom}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_bottom" name="positioning_clip_bottom" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_clip_bottom_measurement_label" for="positioning_clip_bottom_measurement" style="display: none; visibility: hidden;">Clip Bottom Measurement Unit</label>
+								<select id="positioning_clip_bottom_measurement" name="positioning_clip_bottom_measurement" disabled="disabled" aria-labelledby="positioning_clip_bottom_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{#style_dlg.left}</td>
+				<td>
+					<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_left" name="positioning_clip_left" disabled="disabled" /></td>
+							<td> </td>
+							<td>
+								<label id="positioning_clip_left_measurement_label" for="positioning_clip_left_measurement" style="display: none; visibility: hidden;">Clip Left Measurement Unit</label>
+								<select id="positioning_clip_left_measurement" name="positioning_clip_left_measurement" disabled="disabled" aria-labelledby="positioning_clip_left_measurement_label"></select>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+<br style="clear: both" />
+</div>
+</div>
+
+<div class="panel_toggle_insert_span">
+	<input type="checkbox" class="checkbox" id="toggle_insert_span" name="toggle_insert_span" onClick="toggleApplyAction();" />
+	<label for="toggle_insert_span">{#style_dlg.toggle_insert_span}</label>
+</div>
+
+<div class="mceActionPanel">
+	<input type="submit" id="insert" name="insert" value="{#update}" />
+	<input type="button" class="button" id="apply" name="apply" value="{#style_dlg.apply}" onClick="applyAction();" />
+	<input type="button" id="cancel" name="cancel" value="{#cancel}" onClick="tinyMCEPopup.close();" />
+</div>
+</form>
+
+<div style="display: none">
+	<div id="container"></div>
+</div>
+
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/readme.txt b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/readme.txt
new file mode 100644
index 0000000..5bac302
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/readme.txt
@@ -0,0 +1,19 @@
+Edit CSS Style plug-in notes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Unlike WYSIWYG editor functionality that operates only on the selected text,
+typically by inserting new HTML elements with the specified styles.
+This plug-in operates on the HTML blocks surrounding the selected text.
+No new HTML elements are created.
+
+This plug-in only operates on the surrounding blocks and not the nearest
+parent node.  This means that if a block encapsulates a node,
+e.g <p><span>text</span></p>, then only the styles in the block are
+recognized, not those in the span.
+
+When selecting text that includes multiple blocks at the same level (peers),
+this plug-in accumulates the specified styles in all of the surrounding blocks
+and populates the dialogue checkboxes accordingly.  There is no differentiation
+between styles set in all the blocks versus styles set in some of the blocks.
+
+When the [Update] or [Apply] buttons are pressed, the styles selected in the
+checkboxes are applied to all blocks that surround the selected text.
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js
new file mode 100644
index 0000000..42a82d1
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeNam [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
new file mode 100644
index 0000000..a1579c8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
@@ -0,0 +1,122 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode;
+
+	tinymce.create('tinymce.plugins.TabFocusPlugin', {
+		init : function(ed, url) {
+			function tabCancel(ed, e) {
+				if (e.keyCode === 9)
+					return Event.cancel(e);
+			}
+
+			function tabHandler(ed, e) {
+				var x, i, f, el, v;
+
+				function find(d) {
+					el = DOM.select(':input:enabled,*[tabindex]');
+
+					function canSelectRecursive(e) {
+						return e.nodeName==="BODY" || (e.type != 'hidden' &&
+							!(e.style.display == "none") &&
+							!(e.style.visibility == "hidden") && canSelectRecursive(e.parentNode));
+					}
+					function canSelectInOldIe(el) {
+						return el.attributes["tabIndex"].specified || el.nodeName == "INPUT" || el.nodeName == "TEXTAREA";
+					}
+					function isOldIe() {
+						return tinymce.isIE6 || tinymce.isIE7;
+					}
+					function canSelect(el) {
+						return ((!isOldIe() || canSelectInOldIe(el))) && el.getAttribute("tabindex") != '-1' && canSelectRecursive(el);
+					}
+
+					each(el, function(e, i) {
+						if (e.id == ed.id) {
+							x = i;
+							return false;
+						}
+					});
+					if (d > 0) {
+						for (i = x + 1; i < el.length; i++) {
+							if (canSelect(el[i]))
+								return el[i];
+						}
+					} else {
+						for (i = x - 1; i >= 0; i--) {
+							if (canSelect(el[i]))
+								return el[i];
+						}
+					}
+
+					return null;
+				}
+
+				if (e.keyCode === 9) {
+					v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next')));
+
+					if (v.length == 1) {
+						v[1] = v[0];
+						v[0] = ':prev';
+					}
+
+					// Find element to focus
+					if (e.shiftKey) {
+						if (v[0] == ':prev')
+							el = find(-1);
+						else
+							el = DOM.get(v[0]);
+					} else {
+						if (v[1] == ':next')
+							el = find(1);
+						else
+							el = DOM.get(v[1]);
+					}
+
+					if (el) {
+						if (el.id && (ed = tinymce.get(el.id || el.name)))
+							ed.focus();
+						else
+							window.setTimeout(function() {
+								if (!tinymce.isWebKit)
+									window.focus();
+								el.focus();
+							}, 10);
+
+						return Event.cancel(e);
+					}
+				}
+			}
+
+			ed.onKeyUp.add(tabCancel);
+
+			if (tinymce.isGecko) {
+				ed.onKeyPress.add(tabHandler);
+				ed.onKeyDown.add(tabCancel);
+			} else
+				ed.onKeyDown.add(tabHandler);
+
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Tabfocus',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/cell.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/cell.htm
new file mode 100644
index 0000000..2922f7a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/cell.htm
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#table_dlg.cell_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/cell.js"></script>
+	<link href="css/cell.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="tablecell" style="display: none" role="application">
+	<form onsubmit="updateAction();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>
+				<li id="advanced_tab" aria-controls="advanced_panel"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{#table_dlg.general_props}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="align">{#table_dlg.align}</label></td>
+							<td>
+								<select id="align" name="align" class="mceFocus">
+									<option value="">{#not_set}</option>
+									<option value="center">{#table_dlg.align_middle}</option>
+									<option value="left">{#table_dlg.align_left}</option>
+									<option value="right">{#table_dlg.align_right}</option>
+								</select>
+							</td>
+		
+							<td><label for="celltype">{#table_dlg.cell_type}</label></td>
+							<td>
+								<select id="celltype" name="celltype">
+									<option value="td">{#table_dlg.td}</option>
+									<option value="th">{#table_dlg.th}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="valign">{#table_dlg.valign}</label></td>
+							<td>
+								<select id="valign" name="valign">
+									<option value="">{#not_set}</option>
+									<option value="top">{#table_dlg.align_top}</option>
+									<option value="middle">{#table_dlg.align_middle}</option>
+									<option value="bottom">{#table_dlg.align_bottom}</option>
+								</select>
+							</td>
+
+							<td><label for="scope">{#table_dlg.scope}</label></td>
+							<td>
+								<select id="scope" name="scope">
+									<option value="">{#not_set}</option>
+									<option value="col">{#table.col}</option>
+									<option value="row">{#table.row}</option>
+									<option value="rowgroup">{#table_dlg.rowgroup}</option>
+									<option value="colgroup">{#table_dlg.colgroup}</option>
+								</select>
+							</td>
+
+						</tr>
+
+						<tr>
+							<td><label for="width">{#table_dlg.width}</label></td>
+							<td><input id="width" name="width" type="text" value="" size="7" maxlength="7" onchange="changedSize();" class="size" /></td>
+
+							<td><label for="height">{#table_dlg.height}</label></td>
+							<td><input id="height" name="height" type="text" value="" size="7" maxlength="7" onchange="changedSize();" class="size" /></td>
+						</tr>
+
+						<tr id="styleSelectRow">
+							<td><label for="class">{#class_name}</label></td>
+							<td colspan="3">
+								<select id="class" name="class" class="mceEditableSelect">
+									<option value="" selected="selected">{#not_set}</option>
+								</select>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{#table_dlg.advanced_props}</legend>
+
+					<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label for="id">{#table_dlg.id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> 
+						</tr>
+
+						<tr>
+							<td><label for="style">{#table_dlg.style}</label></td>
+							<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" style="width: 200px"> 
+										<option value="">{#not_set}</option> 
+										<option value="ltr">{#table_dlg.ltr}</option> 
+										<option value="rtl">{#table_dlg.rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" style="width: 200px" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> 
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
+										<td id="backgroundimagebrowsercontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr role="group" aria-labelledby="bordercolor_label">
+							<td class="column1"><label id="bordercolor_label" for="bordercolor">{#table_dlg.bordercolor}</label></td> 
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>
+										<td id="bordercolor_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr role="group" aria-labelledby="bgcolor_label">
+							<td class="column1"><label id="bgcolor_label" for="bgcolor">{#table_dlg.bgcolor}</label></td> 
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
+										<td id="bgcolor_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div>
+				<select id="action" name="action">
+					<option value="cell">{#table_dlg.cell_cell}</option>
+					<option value="row">{#table_dlg.cell_row}</option>
+					<option value="col">{#table_dlg.cell_col}</option>
+					<option value="all">{#table_dlg.cell_all}</option>
+				</select>
+			</div>
+
+			<input type="submit" id="insert" name="insert" value="{#update}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css
new file mode 100644
index 0000000..a47cc1a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css
@@ -0,0 +1,17 @@
+/* CSS file for cell dialog in the table plugin */
+
+.panel_wrapper div.current {
+	height: 200px;
+}
+
+.advfield {
+	width: 200px;
+}
+
+#action {
+	margin-bottom: 3px;
+}
+
+#class {
+	width: 150px;
+}
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/row.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/row.css
new file mode 100644
index 0000000..0e397db
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/row.css
@@ -0,0 +1,25 @@
+/* CSS file for row dialog in the table plugin */
+
+.panel_wrapper div.current {
+	height: 200px;
+}
+
+.advfield {
+	width: 200px;
+}
+
+#action {
+	margin-bottom: 3px;
+}
+
+#rowtype,#align,#valign,#class,#height {
+	width: 150px;
+}
+
+#height {
+	width: 50px;	
+}
+
+.col2 {
+	padding-left: 20px;
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/table.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/table.css
new file mode 100644
index 0000000..8f10783
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/css/table.css
@@ -0,0 +1,13 @@
+/* CSS file for table dialog in the table plugin */
+
+.panel_wrapper div.current {
+	height: 245px;
+}
+
+.advfield {
+	width: 200px;
+}
+
+#class {
+	width: 150px;
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
new file mode 100644
index 0000000..ad462f0
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
@@ -0,0 +1 @@
+(function(d){var e=d.each;function c(g,h){var j=h.ownerDocument,f=j.createRange(),k;f.setStartBefore(h);f.setEnd(g.endContainer,g.endOffset);k=j.createElement("body");k.appendChild(f.cloneContents());return k.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(g,f){return parseInt(g.getAttribute(f)||1)}function b(H,G,K){var g,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.clo [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
new file mode 100644
index 0000000..832b5e9
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
@@ -0,0 +1,1428 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function(tinymce) {
+	var each = tinymce.each;
+
+	// Checks if the selection/caret is at the start of the specified block element
+	function isAtStart(rng, par) {
+		var doc = par.ownerDocument, rng2 = doc.createRange(), elm;
+
+		rng2.setStartBefore(par);
+		rng2.setEnd(rng.endContainer, rng.endOffset);
+
+		elm = doc.createElement('body');
+		elm.appendChild(rng2.cloneContents());
+
+		// Check for text characters of other elements that should be treated as content
+		return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length == 0;
+	};
+
+	function getSpanVal(td, name) {
+		return parseInt(td.getAttribute(name) || 1);
+	}
+
+	/**
+	 * Table Grid class.
+	 */
+	function TableGrid(table, dom, selection) {
+		var grid, startPos, endPos, selectedCell;
+
+		buildGrid();
+		selectedCell = dom.getParent(selection.getStart(), 'th,td');
+		if (selectedCell) {
+			startPos = getPos(selectedCell);
+			endPos = findEndPos();
+			selectedCell = getCell(startPos.x, startPos.y);
+		}
+
+		function cloneNode(node, children) {
+			node = node.cloneNode(children);
+			node.removeAttribute('id');
+
+			return node;
+		}
+
+		function buildGrid() {
+			var startY = 0;
+
+			grid = [];
+
+			each(['thead', 'tbody', 'tfoot'], function(part) {
+				var rows = dom.select('> ' + part + ' tr', table);
+
+				each(rows, function(tr, y) {
+					y += startY;
+
+					each(dom.select('> td, > th', tr), function(td, x) {
+						var x2, y2, rowspan, colspan;
+
+						// Skip over existing cells produced by rowspan
+						if (grid[y]) {
+							while (grid[y][x])
+								x++;
+						}
+
+						// Get col/rowspan from cell
+						rowspan = getSpanVal(td, 'rowspan');
+						colspan = getSpanVal(td, 'colspan');
+
+						// Fill out rowspan/colspan right and down
+						for (y2 = y; y2 < y + rowspan; y2++) {
+							if (!grid[y2])
+								grid[y2] = [];
+
+							for (x2 = x; x2 < x + colspan; x2++) {
+								grid[y2][x2] = {
+									part : part,
+									real : y2 == y && x2 == x,
+									elm : td,
+									rowspan : rowspan,
+									colspan : colspan
+								};
+							}
+						}
+					});
+				});
+
+				startY += rows.length;
+			});
+		};
+
+		function getCell(x, y) {
+			var row;
+
+			row = grid[y];
+			if (row)
+				return row[x];
+		};
+
+		function setSpanVal(td, name, val) {
+			if (td) {
+				val = parseInt(val);
+
+				if (val === 1)
+					td.removeAttribute(name, 1);
+				else
+					td.setAttribute(name, val, 1);
+			}
+		}
+
+		function isCellSelected(cell) {
+			return cell && (dom.hasClass(cell.elm, 'mceSelected') || cell == selectedCell);
+		};
+
+		function getSelectedRows() {
+			var rows = [];
+
+			each(table.rows, function(row) {
+				each(row.cells, function(cell) {
+					if (dom.hasClass(cell, 'mceSelected') || cell == selectedCell.elm) {
+						rows.push(row);
+						return false;
+					}
+				});
+			});
+
+			return rows;
+		};
+
+		function deleteTable() {
+			var rng = dom.createRng();
+
+			rng.setStartAfter(table);
+			rng.setEndAfter(table);
+
+			selection.setRng(rng);
+
+			dom.remove(table);
+		};
+
+		function cloneCell(cell) {
+			var formatNode;
+
+			// Clone formats
+			tinymce.walk(cell, function(node) {
+				var curNode;
+
+				if (node.nodeType == 3) {
+					each(dom.getParents(node.parentNode, null, cell).reverse(), function(node) {
+						node = cloneNode(node, false);
+
+						if (!formatNode)
+							formatNode = curNode = node;
+						else if (curNode)
+							curNode.appendChild(node);
+
+						curNode = node;
+					});
+
+					// Add something to the inner node
+					if (curNode)
+						curNode.innerHTML = tinymce.isIE ? ' ' : '<br data-mce-bogus="1" />';
+
+					return false;
+				}
+			}, 'childNodes');
+
+			cell = cloneNode(cell, false);
+			setSpanVal(cell, 'rowSpan', 1);
+			setSpanVal(cell, 'colSpan', 1);
+
+			if (formatNode) {
+				cell.appendChild(formatNode);
+			} else {
+				if (!tinymce.isIE)
+					cell.innerHTML = '<br data-mce-bogus="1" />';
+			}
+
+			return cell;
+		};
+
+		function cleanup() {
+			var rng = dom.createRng();
+
+			// Empty rows
+			each(dom.select('tr', table), function(tr) {
+				if (tr.cells.length == 0)
+					dom.remove(tr);
+			});
+
+			// Empty table
+			if (dom.select('tr', table).length == 0) {
+				rng.setStartAfter(table);
+				rng.setEndAfter(table);
+				selection.setRng(rng);
+				dom.remove(table);
+				return;
+			}
+
+			// Empty header/body/footer
+			each(dom.select('thead,tbody,tfoot', table), function(part) {
+				if (part.rows.length == 0)
+					dom.remove(part);
+			});
+
+			// Restore selection to start position if it still exists
+			buildGrid();
+
+			// Restore the selection to the closest table position
+			row = grid[Math.min(grid.length - 1, startPos.y)];
+			if (row) {
+				selection.select(row[Math.min(row.length - 1, startPos.x)].elm, true);
+				selection.collapse(true);
+			}
+		};
+
+		function fillLeftDown(x, y, rows, cols) {
+			var tr, x2, r, c, cell;
+
+			tr = grid[y][x].elm.parentNode;
+			for (r = 1; r <= rows; r++) {
+				tr = dom.getNext(tr, 'tr');
+
+				if (tr) {
+					// Loop left to find real cell
+					for (x2 = x; x2 >= 0; x2--) {
+						cell = grid[y + r][x2].elm;
+
+						if (cell.parentNode == tr) {
+							// Append clones after
+							for (c = 1; c <= cols; c++)
+								dom.insertAfter(cloneCell(cell), cell);
+
+							break;
+						}
+					}
+
+					if (x2 == -1) {
+						// Insert nodes before first cell
+						for (c = 1; c <= cols; c++)
+							tr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]);
+					}
+				}
+			}
+		};
+
+		function split() {
+			each(grid, function(row, y) {
+				each(row, function(cell, x) {
+					var colSpan, rowSpan, newCell, i;
+
+					if (isCellSelected(cell)) {
+						cell = cell.elm;
+						colSpan = getSpanVal(cell, 'colspan');
+						rowSpan = getSpanVal(cell, 'rowspan');
+
+						if (colSpan > 1 || rowSpan > 1) {
+							setSpanVal(cell, 'rowSpan', 1);
+							setSpanVal(cell, 'colSpan', 1);
+
+							// Insert cells right
+							for (i = 0; i < colSpan - 1; i++)
+								dom.insertAfter(cloneCell(cell), cell);
+
+							fillLeftDown(x, y, rowSpan - 1, colSpan);
+						}
+					}
+				});
+			});
+		};
+
+		function merge(cell, cols, rows) {
+			var startX, startY, endX, endY, x, y, startCell, endCell, cell, children, count;
+
+			// Use specified cell and cols/rows
+			if (cell) {
+				pos = getPos(cell);
+				startX = pos.x;
+				startY = pos.y;
+				endX = startX + (cols - 1);
+				endY = startY + (rows - 1);
+			} else {
+				// Use selection
+				startX = startPos.x;
+				startY = startPos.y;
+				endX = endPos.x;
+				endY = endPos.y;
+			}
+
+			// Find start/end cells
+			startCell = getCell(startX, startY);
+			endCell = getCell(endX, endY);
+
+			// Check if the cells exists and if they are of the same part for example tbody = tbody
+			if (startCell && endCell && startCell.part == endCell.part) {
+				// Split and rebuild grid
+				split();
+				buildGrid();
+
+				// Set row/col span to start cell
+				startCell = getCell(startX, startY).elm;
+				setSpanVal(startCell, 'colSpan', (endX - startX) + 1);
+				setSpanVal(startCell, 'rowSpan', (endY - startY) + 1);
+
+				// Remove other cells and add it's contents to the start cell
+				for (y = startY; y <= endY; y++) {
+					for (x = startX; x <= endX; x++) {
+						if (!grid[y] || !grid[y][x])
+							continue;
+
+						cell = grid[y][x].elm;
+
+						if (cell != startCell) {
+							// Move children to startCell
+							children = tinymce.grep(cell.childNodes);
+							each(children, function(node) {
+								startCell.appendChild(node);
+							});
+
+							// Remove bogus nodes if there is children in the target cell
+							if (children.length) {
+								children = tinymce.grep(startCell.childNodes);
+								count = 0;
+								each(children, function(node) {
+									if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1)
+										startCell.removeChild(node);
+								});
+							}
+							
+							// Remove cell
+							dom.remove(cell);
+						}
+					}
+				}
+
+				// Remove empty rows etc and restore caret location
+				cleanup();
+			}
+		};
+
+		function insertRow(before) {
+			var posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan;
+
+			// Find first/last row
+			each(grid, function(row, y) {
+				each(row, function(cell, x) {
+					if (isCellSelected(cell)) {
+						cell = cell.elm;
+						rowElm = cell.parentNode;
+						newRow = cloneNode(rowElm, false);
+						posY = y;
+
+						if (before)
+							return false;
+					}
+				});
+
+				if (before)
+					return !posY;
+			});
+
+			for (x = 0; x < grid[0].length; x++) {
+				// Cell not found could be because of an invalid table structure
+				if (!grid[posY][x])
+					continue;
+
+				cell = grid[posY][x].elm;
+
+				if (cell != lastCell) {
+					if (!before) {
+						rowSpan = getSpanVal(cell, 'rowspan');
+						if (rowSpan > 1) {
+							setSpanVal(cell, 'rowSpan', rowSpan + 1);
+							continue;
+						}
+					} else {
+						// Check if cell above can be expanded
+						if (posY > 0 && grid[posY - 1][x]) {
+							otherCell = grid[posY - 1][x].elm;
+							rowSpan = getSpanVal(otherCell, 'rowSpan');
+							if (rowSpan > 1) {
+								setSpanVal(otherCell, 'rowSpan', rowSpan + 1);
+								continue;
+							}
+						}
+					}
+
+					// Insert new cell into new row
+					newCell = cloneCell(cell);
+					setSpanVal(newCell, 'colSpan', cell.colSpan);
+
+					newRow.appendChild(newCell);
+
+					lastCell = cell;
+				}
+			}
+
+			if (newRow.hasChildNodes()) {
+				if (!before)
+					dom.insertAfter(newRow, rowElm);
+				else
+					rowElm.parentNode.insertBefore(newRow, rowElm);
+			}
+		};
+
+		function insertCol(before) {
+			var posX, lastCell;
+
+			// Find first/last column
+			each(grid, function(row, y) {
+				each(row, function(cell, x) {
+					if (isCellSelected(cell)) {
+						posX = x;
+
+						if (before)
+							return false;
+					}
+				});
+
+				if (before)
+					return !posX;
+			});
+
+			each(grid, function(row, y) {
+				var cell, rowSpan, colSpan;
+
+				if (!row[posX])
+					return;
+
+				cell = row[posX].elm;
+				if (cell != lastCell) {
+					colSpan = getSpanVal(cell, 'colspan');
+					rowSpan = getSpanVal(cell, 'rowspan');
+
+					if (colSpan == 1) {
+						if (!before) {
+							dom.insertAfter(cloneCell(cell), cell);
+							fillLeftDown(posX, y, rowSpan - 1, colSpan);
+						} else {
+							cell.parentNode.insertBefore(cloneCell(cell), cell);
+							fillLeftDown(posX, y, rowSpan - 1, colSpan);
+						}
+					} else
+						setSpanVal(cell, 'colSpan', cell.colSpan + 1);
+
+					lastCell = cell;
+				}
+			});
+		};
+
+		function deleteCols() {
+			var cols = [];
+
+			// Get selected column indexes
+			each(grid, function(row, y) {
+				each(row, function(cell, x) {
+					if (isCellSelected(cell) && tinymce.inArray(cols, x) === -1) {
+						each(grid, function(row) {
+							var cell = row[x].elm, colSpan;
+
+							colSpan = getSpanVal(cell, 'colSpan');
+
+							if (colSpan > 1)
+								setSpanVal(cell, 'colSpan', colSpan - 1);
+							else
+								dom.remove(cell);
+						});
+
+						cols.push(x);
+					}
+				});
+			});
+
+			cleanup();
+		};
+
+		function deleteRows() {
+			var rows;
+
+			function deleteRow(tr) {
+				var nextTr, pos, lastCell;
+
+				nextTr = dom.getNext(tr, 'tr');
+
+				// Move down row spanned cells
+				each(tr.cells, function(cell) {
+					var rowSpan = getSpanVal(cell, 'rowSpan');
+
+					if (rowSpan > 1) {
+						setSpanVal(cell, 'rowSpan', rowSpan - 1);
+						pos = getPos(cell);
+						fillLeftDown(pos.x, pos.y, 1, 1);
+					}
+				});
+
+				// Delete cells
+				pos = getPos(tr.cells[0]);
+				each(grid[pos.y], function(cell) {
+					var rowSpan;
+
+					cell = cell.elm;
+
+					if (cell != lastCell) {
+						rowSpan = getSpanVal(cell, 'rowSpan');
+
+						if (rowSpan <= 1)
+							dom.remove(cell);
+						else
+							setSpanVal(cell, 'rowSpan', rowSpan - 1);
+
+						lastCell = cell;
+					}
+				});
+			};
+
+			// Get selected rows and move selection out of scope
+			rows = getSelectedRows();
+
+			// Delete all selected rows
+			each(rows.reverse(), function(tr) {
+				deleteRow(tr);
+			});
+
+			cleanup();
+		};
+
+		function cutRows() {
+			var rows = getSelectedRows();
+
+			dom.remove(rows);
+			cleanup();
+
+			return rows;
+		};
+
+		function copyRows() {
+			var rows = getSelectedRows();
+
+			each(rows, function(row, i) {
+				rows[i] = cloneNode(row, true);
+			});
+
+			return rows;
+		};
+
+		function pasteRows(rows, before) {
+			var selectedRows = getSelectedRows(),
+				targetRow = selectedRows[before ? 0 : selectedRows.length - 1],
+				targetCellCount = targetRow.cells.length;
+
+			// Calc target cell count
+			each(grid, function(row) {
+				var match;
+
+				targetCellCount = 0;
+				each(row, function(cell, x) {
+					if (cell.real)
+						targetCellCount += cell.colspan;
+
+					if (cell.elm.parentNode == targetRow)
+						match = 1;
+				});
+
+				if (match)
+					return false;
+			});
+
+			if (!before)
+				rows.reverse();
+
+			each(rows, function(row) {
+				var cellCount = row.cells.length, cell;
+
+				// Remove col/rowspans
+				for (i = 0; i < cellCount; i++) {
+					cell = row.cells[i];
+					setSpanVal(cell, 'colSpan', 1);
+					setSpanVal(cell, 'rowSpan', 1);
+				}
+
+				// Needs more cells
+				for (i = cellCount; i < targetCellCount; i++)
+					row.appendChild(cloneCell(row.cells[cellCount - 1]));
+
+				// Needs less cells
+				for (i = targetCellCount; i < cellCount; i++)
+					dom.remove(row.cells[i]);
+
+				// Add before/after
+				if (before)
+					targetRow.parentNode.insertBefore(row, targetRow);
+				else
+					dom.insertAfter(row, targetRow);
+			});
+		};
+
+		function getPos(target) {
+			var pos;
+
+			each(grid, function(row, y) {
+				each(row, function(cell, x) {
+					if (cell.elm == target) {
+						pos = {x : x, y : y};
+						return false;
+					}
+				});
+
+				return !pos;
+			});
+
+			return pos;
+		};
+
+		function setStartCell(cell) {
+			startPos = getPos(cell);
+		};
+
+		function findEndPos() {
+			var pos, maxX, maxY;
+
+			maxX = maxY = 0;
+
+			each(grid, function(row, y) {
+				each(row, function(cell, x) {
+					var colSpan, rowSpan;
+
+					if (isCellSelected(cell)) {
+						cell = grid[y][x];
+
+						if (x > maxX)
+							maxX = x;
+
+						if (y > maxY)
+							maxY = y;
+
+						if (cell.real) {
+							colSpan = cell.colspan - 1;
+							rowSpan = cell.rowspan - 1;
+
+							if (colSpan) {
+								if (x + colSpan > maxX)
+									maxX = x + colSpan;
+							}
+
+							if (rowSpan) {
+								if (y + rowSpan > maxY)
+									maxY = y + rowSpan;
+							}
+						}
+					}
+				});
+			});
+
+			return {x : maxX, y : maxY};
+		};
+
+		function setEndCell(cell) {
+			var startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan;
+
+			endPos = getPos(cell);
+
+			if (startPos && endPos) {
+				// Get start/end positions
+				startX = Math.min(startPos.x, endPos.x);
+				startY = Math.min(startPos.y, endPos.y);
+				endX = Math.max(startPos.x, endPos.x);
+				endY = Math.max(startPos.y, endPos.y);
+
+				// Expand end positon to include spans
+				maxX = endX;
+				maxY = endY;
+
+				// Expand startX
+				for (y = startY; y <= maxY; y++) {
+					cell = grid[y][startX];
+
+					if (!cell.real) {
+						if (startX - (cell.colspan - 1) < startX)
+							startX -= cell.colspan - 1;
+					}
+				}
+
+				// Expand startY
+				for (x = startX; x <= maxX; x++) {
+					cell = grid[startY][x];
+
+					if (!cell.real) {
+						if (startY - (cell.rowspan - 1) < startY)
+							startY -= cell.rowspan - 1;
+					}
+				}
+
+				// Find max X, Y
+				for (y = startY; y <= endY; y++) {
+					for (x = startX; x <= endX; x++) {
+						cell = grid[y][x];
+
+						if (cell.real) {
+							colSpan = cell.colspan - 1;
+							rowSpan = cell.rowspan - 1;
+
+							if (colSpan) {
+								if (x + colSpan > maxX)
+									maxX = x + colSpan;
+							}
+
+							if (rowSpan) {
+								if (y + rowSpan > maxY)
+									maxY = y + rowSpan;
+							}
+						}
+					}
+				}
+
+				// Remove current selection
+				dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected');
+
+				// Add new selection
+				for (y = startY; y <= maxY; y++) {
+					for (x = startX; x <= maxX; x++) {
+						if (grid[y][x])
+							dom.addClass(grid[y][x].elm, 'mceSelected');
+					}
+				}
+			}
+		};
+
+		// Expose to public
+		tinymce.extend(this, {
+			deleteTable : deleteTable,
+			split : split,
+			merge : merge,
+			insertRow : insertRow,
+			insertCol : insertCol,
+			deleteCols : deleteCols,
+			deleteRows : deleteRows,
+			cutRows : cutRows,
+			copyRows : copyRows,
+			pasteRows : pasteRows,
+			getPos : getPos,
+			setStartCell : setStartCell,
+			setEndCell : setEndCell
+		});
+	};
+
+	tinymce.create('tinymce.plugins.TablePlugin', {
+		init : function(ed, url) {
+			var winMan, clipboardRows, hasCellSelection = true; // Might be selected cells on reload
+
+			function createTableGrid(node) {
+				var selection = ed.selection, tblElm = ed.dom.getParent(node || selection.getNode(), 'table');
+
+				if (tblElm)
+					return new TableGrid(tblElm, ed.dom, selection);
+			};
+
+			function cleanup() {
+				// Restore selection possibilities
+				ed.getBody().style.webkitUserSelect = '';
+
+				if (hasCellSelection) {
+					ed.dom.removeClass(ed.dom.select('td.mceSelected,th.mceSelected'), 'mceSelected');
+					hasCellSelection = false;
+				}
+			};
+
+			// Register buttons
+			each([
+				['table', 'table.desc', 'mceInsertTable', true],
+				['delete_table', 'table.del', 'mceTableDelete'],
+				['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'],
+				['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'],
+				['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'],
+				['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'],
+				['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'],
+				['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'],
+				['row_props', 'table.row_desc', 'mceTableRowProps', true],
+				['cell_props', 'table.cell_desc', 'mceTableCellProps', true],
+				['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true],
+				['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true]
+			], function(c) {
+				ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});
+			});
+
+			// Select whole table is a table border is clicked
+			if (!tinymce.isIE) {
+				ed.onClick.add(function(ed, e) {
+					e = e.target;
+
+					if (e.nodeName === 'TABLE') {
+						ed.selection.select(e);
+						ed.nodeChanged();
+					}
+				});
+			}
+
+			ed.onPreProcess.add(function(ed, args) {
+				var nodes, i, node, dom = ed.dom, value;
+
+				nodes = dom.select('table', args.node);
+				i = nodes.length;
+				while (i--) {
+					node = nodes[i];
+					dom.setAttrib(node, 'data-mce-style', '');
+
+					if ((value = dom.getAttrib(node, 'width'))) {
+						dom.setStyle(node, 'width', value);
+						dom.setAttrib(node, 'width', '');
+					}
+
+					if ((value = dom.getAttrib(node, 'height'))) {
+						dom.setStyle(node, 'height', value);
+						dom.setAttrib(node, 'height', '');
+					}
+				}
+			});
+
+			// Handle node change updates
+			ed.onNodeChange.add(function(ed, cm, n) {
+				var p;
+
+				n = ed.selection.getStart();
+				p = ed.dom.getParent(n, 'td,th,caption');
+				cm.setActive('table', n.nodeName === 'TABLE' || !!p);
+
+				// Disable table tools if we are in caption
+				if (p && p.nodeName === 'CAPTION')
+					p = 0;
+
+				cm.setDisabled('delete_table', !p);
+				cm.setDisabled('delete_col', !p);
+				cm.setDisabled('delete_table', !p);
+				cm.setDisabled('delete_row', !p);
+				cm.setDisabled('col_after', !p);
+				cm.setDisabled('col_before', !p);
+				cm.setDisabled('row_after', !p);
+				cm.setDisabled('row_before', !p);
+				cm.setDisabled('row_props', !p);
+				cm.setDisabled('cell_props', !p);
+				cm.setDisabled('split_cells', !p);
+				cm.setDisabled('merge_cells', !p);
+			});
+
+			ed.onInit.add(function(ed) {
+				var startTable, startCell, dom = ed.dom, tableGrid;
+
+				winMan = ed.windowManager;
+
+				// Add cell selection logic
+				ed.onMouseDown.add(function(ed, e) {
+					if (e.button != 2) {
+						cleanup();
+
+						startCell = dom.getParent(e.target, 'td,th');
+						startTable = dom.getParent(startCell, 'table');
+					}
+				});
+
+				dom.bind(ed.getDoc(), 'mouseover', function(e) {
+					var sel, table, target = e.target;
+
+					if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) {
+						table = dom.getParent(target, 'table');
+						if (table == startTable) {
+							if (!tableGrid) {
+								tableGrid = createTableGrid(table);
+								tableGrid.setStartCell(startCell);
+
+								ed.getBody().style.webkitUserSelect = 'none';
+							}
+
+							tableGrid.setEndCell(target);
+							hasCellSelection = true;
+						}
+
+						// Remove current selection
+						sel = ed.selection.getSel();
+
+						try {
+							if (sel.removeAllRanges)
+								sel.removeAllRanges();
+							else
+								sel.empty();
+						} catch (ex) {
+							// IE9 might throw errors here
+						}
+
+						e.preventDefault();
+					}
+				});
+
+				ed.onMouseUp.add(function(ed, e) {
+					var rng, sel = ed.selection, selectedCells, nativeSel = sel.getSel(), walker, node, lastNode, endNode;
+
+					// Move selection to startCell
+					if (startCell) {
+						if (tableGrid)
+							ed.getBody().style.webkitUserSelect = '';
+
+						function setPoint(node, start) {
+							var walker = new tinymce.dom.TreeWalker(node, node);
+
+							do {
+								// Text node
+								if (node.nodeType == 3 && tinymce.trim(node.nodeValue).length != 0) {
+									if (start)
+										rng.setStart(node, 0);
+									else
+										rng.setEnd(node, node.nodeValue.length);
+
+									return;
+								}
+
+								// BR element
+								if (node.nodeName == 'BR') {
+									if (start)
+										rng.setStartBefore(node);
+									else
+										rng.setEndBefore(node);
+
+									return;
+								}
+							} while (node = (start ? walker.next() : walker.prev()));
+						}
+
+						// Try to expand text selection as much as we can only Gecko supports cell selection
+						selectedCells = dom.select('td.mceSelected,th.mceSelected');
+						if (selectedCells.length > 0) {
+							rng = dom.createRng();
+							node = selectedCells[0];
+							endNode = selectedCells[selectedCells.length - 1];
+							rng.setStartBefore(node);
+							rng.setEndAfter(node);
+
+							setPoint(node, 1);
+							walker = new tinymce.dom.TreeWalker(node, dom.getParent(selectedCells[0], 'table'));
+
+							do {
+								if (node.nodeName == 'TD' || node.nodeName == 'TH') {
+									if (!dom.hasClass(node, 'mceSelected'))
+										break;
+
+									lastNode = node;
+								}
+							} while (node = walker.next());
+
+							setPoint(lastNode);
+
+							sel.setRng(rng);
+						}
+
+						ed.nodeChanged();
+						startCell = tableGrid = startTable = null;
+					}
+				});
+
+				ed.onKeyUp.add(function(ed, e) {
+					cleanup();
+				});
+
+				ed.onKeyDown.add(function (ed, e) {
+					fixTableCellSelection(ed);
+				});
+
+				ed.onMouseDown.add(function (ed, e) {
+					if (e.button != 2) {
+						fixTableCellSelection(ed);
+					}
+				});
+				function tableCellSelected(ed, rng, n, currentCell) {
+					// The decision of when a table cell is selected is somewhat involved.  The fact that this code is
+					// required is actually a pointer to the root cause of this bug. A cell is selected when the start 
+					// and end offsets are 0, the start container is a text, and the selection node is either a TR (most cases)
+					// or the parent of the table (in the case of the selection containing the last cell of a table).
+					var TEXT_NODE = 3, table = ed.dom.getParent(rng.startContainer, 'TABLE'), 
+					tableParent, allOfCellSelected, tableCellSelection;
+					if (table) 
+					tableParent = table.parentNode;
+					allOfCellSelected =rng.startContainer.nodeType == TEXT_NODE && 
+						rng.startOffset == 0 && 
+						rng.endOffset == 0 && 
+						currentCell && 
+						(n.nodeName=="TR" || n==tableParent);
+					tableCellSelection = (n.nodeName=="TD"||n.nodeName=="TH")&& !currentCell;	   
+					return  allOfCellSelected || tableCellSelection;
+					// return false;
+				}
+				
+				// this nasty hack is here to work around some WebKit selection bugs.
+				function fixTableCellSelection(ed) {
+					if (!tinymce.isWebKit)
+						return;
+
+					var rng = ed.selection.getRng();
+					var n = ed.selection.getNode();
+					var currentCell = ed.dom.getParent(rng.startContainer, 'TD,TH');
+				
+					if (!tableCellSelected(ed, rng, n, currentCell))
+						return;
+						if (!currentCell) {
+							currentCell=n;
+						}
+					
+					// Get the very last node inside the table cell
+					var end = currentCell.lastChild;
+					while (end.lastChild)
+						end = end.lastChild;
+					
+					// Select the entire table cell. Nothing outside of the table cell should be selected.
+					rng.setEnd(end, end.nodeValue.length);
+					ed.selection.setRng(rng);
+				}
+				ed.plugins.table.fixTableCellSelection=fixTableCellSelection;
+
+				// Add context menu
+				if (ed && ed.plugins.contextmenu) {
+					ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {
+						var sm, se = ed.selection, el = se.getNode() || ed.getBody();
+
+						if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th') || ed.dom.select('td.mceSelected,th.mceSelected').length) {
+							m.removeAll();
+
+							if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) {
+								m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});
+								m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});
+								m.addSeparator();
+							}
+
+							if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) {
+								m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});
+								m.addSeparator();
+							}
+
+							m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', value : {action : 'insert'}});
+							m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable'});
+							m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete'});
+							m.addSeparator();
+
+							// Cell menu
+							sm = m.addMenu({title : 'table.cell'});
+							sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps'});
+							sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells'});
+							sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells'});
+
+							// Row menu
+							sm = m.addMenu({title : 'table.row'});
+							sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps'});
+							sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'});
+							sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'});
+							sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'});
+							sm.addSeparator();
+							sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'});
+							sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'});
+							sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'}).setDisabled(!clipboardRows);
+							sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'}).setDisabled(!clipboardRows);
+
+							// Column menu
+							sm = m.addMenu({title : 'table.col'});
+							sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'});
+							sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'});
+							sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'});
+						} else
+							m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable'});
+					});
+				}
+
+				// Fix to allow navigating up and down in a table in WebKit browsers.
+				if (tinymce.isWebKit) {
+					function moveSelection(ed, e) {
+						var VK = tinymce.VK;
+						var key = e.keyCode;
+
+						function handle(upBool, sourceNode, event) {
+							var siblingDirection = upBool ? 'previousSibling' : 'nextSibling';
+							var currentRow = ed.dom.getParent(sourceNode, 'tr');
+							var siblingRow = currentRow[siblingDirection];
+
+							if (siblingRow) {
+								moveCursorToRow(ed, sourceNode, siblingRow, upBool);
+								tinymce.dom.Event.cancel(event);
+								return true;
+							} else {
+								var tableNode = ed.dom.getParent(currentRow, 'table');
+								var middleNode = currentRow.parentNode;
+								var parentNodeName = middleNode.nodeName.toLowerCase();
+								if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) {
+									var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody');
+									if (targetParent !== null) {
+										return moveToRowInTarget(upBool, targetParent, sourceNode, event);
+									}
+								}
+								return escapeTable(upBool, currentRow, siblingDirection, tableNode, event);
+							}
+						}
+
+						function getTargetParent(upBool, topNode, secondNode, nodeName) {
+							var tbodies = ed.dom.select('>' + nodeName, topNode);
+							var position = tbodies.indexOf(secondNode);
+							if (upBool && position === 0 || !upBool && position === tbodies.length - 1) {
+								return getFirstHeadOrFoot(upBool, topNode);
+							} else if (position === -1) {
+								var topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1;
+								return tbodies[topOrBottom];
+							} else {
+								return tbodies[position + (upBool ? -1 : 1)];
+							}
+						}
+
+						function getFirstHeadOrFoot(upBool, parent) {
+							var tagName = upBool ? 'thead' : 'tfoot';
+							var headOrFoot = ed.dom.select('>' + tagName, parent);
+							return headOrFoot.length !== 0 ? headOrFoot[0] : null;
+						}
+
+						function moveToRowInTarget(upBool, targetParent, sourceNode, event) {
+							var targetRow = getChildForDirection(targetParent, upBool);
+							targetRow && moveCursorToRow(ed, sourceNode, targetRow, upBool);
+							tinymce.dom.Event.cancel(event);
+							return true;
+						}
+
+						function escapeTable(upBool, currentRow, siblingDirection, table, event) {
+							var tableSibling = table[siblingDirection];
+							if (tableSibling) {
+								moveCursorToStartOfElement(tableSibling);
+								return true;
+							} else {
+								var parentCell = ed.dom.getParent(table, 'td,th');
+								if (parentCell) {
+									return handle(upBool, parentCell, event);
+								} else {
+									var backUpSibling = getChildForDirection(currentRow, !upBool);
+									moveCursorToStartOfElement(backUpSibling);
+									return tinymce.dom.Event.cancel(event);
+								}
+							}
+						}
+
+						function getChildForDirection(parent, up) {
+							var child =  parent && parent[up ? 'lastChild' : 'firstChild'];
+							// BR is not a valid table child to return in this case we return the table cell
+							return child && child.nodeName === 'BR' ? ed.dom.getParent(child, 'td,th') : child;
+						}
+
+						function moveCursorToStartOfElement(n) {
+							ed.selection.setCursorLocation(n, 0);
+						}
+
+						function isVerticalMovement() {
+							return key == VK.UP || key == VK.DOWN;
+						}
+
+						function isInTable(ed) {
+							var node = ed.selection.getNode();
+							var currentRow = ed.dom.getParent(node, 'tr');
+							return currentRow !== null;
+						}
+
+						function columnIndex(column) {
+							var colIndex = 0;
+							var c = column;
+							while (c.previousSibling) {
+								c = c.previousSibling;
+								colIndex = colIndex + getSpanVal(c, "colspan");
+							}
+							return colIndex;
+						}
+
+						function findColumn(rowElement, columnIndex) {
+							var c = 0;
+							var r = 0;
+							each(rowElement.children, function(cell, i) {
+								c = c + getSpanVal(cell, "colspan");
+								r = i;
+								if (c > columnIndex)
+									return false;
+							});
+							return r;
+						}
+
+						function moveCursorToRow(ed, node, row, upBool) {
+							var srcColumnIndex = columnIndex(ed.dom.getParent(node, 'td,th'));
+							var tgtColumnIndex = findColumn(row, srcColumnIndex);
+							var tgtNode = row.childNodes[tgtColumnIndex];
+							var rowCellTarget = getChildForDirection(tgtNode, upBool);
+							moveCursorToStartOfElement(rowCellTarget || tgtNode);
+						}
+
+						function shouldFixCaret(preBrowserNode) {
+							var newNode = ed.selection.getNode();
+							var newParent = ed.dom.getParent(newNode, 'td,th');
+							var oldParent = ed.dom.getParent(preBrowserNode, 'td,th');
+							return newParent && newParent !== oldParent && checkSameParentTable(newParent, oldParent)
+						}
+
+						function checkSameParentTable(nodeOne, NodeTwo) {
+							return ed.dom.getParent(nodeOne, 'TABLE') === ed.dom.getParent(NodeTwo, 'TABLE');
+						}
+
+						if (isVerticalMovement() && isInTable(ed)) {
+							var preBrowserNode = ed.selection.getNode();
+							setTimeout(function() {
+								if (shouldFixCaret(preBrowserNode)) {
+									handle(!e.shiftKey && key === VK.UP, preBrowserNode, e);
+								}
+							}, 0);
+						}
+					}
+
+					ed.onKeyDown.add(moveSelection);
+				}
+								
+				// Fixes an issue on Gecko where it's impossible to place the caret behind a table
+				// This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled
+				if (!tinymce.isIE) {
+					function fixTableCaretPos() {
+						var last;
+
+						// Skip empty text nodes form the end
+						for (last = ed.getBody().lastChild; last && last.nodeType == 3 && !last.nodeValue.length; last = last.previousSibling) ;
+
+						if (last && last.nodeName == 'TABLE')
+							ed.dom.add(ed.getBody(), 'p', null, '<br mce_bogus="1" />');
+					};
+
+					// Fixes an bug where it's impossible to place the caret before a table in Gecko
+					// this fix solves it by detecting when the caret is at the beginning of such a table
+					// and then manually moves the caret infront of the table
+					if (tinymce.isGecko) {
+						ed.onKeyDown.add(function(ed, e) {
+							var rng, table, dom = ed.dom;
+
+							// On gecko it's not possible to place the caret before a table
+							if (e.keyCode == 37 || e.keyCode == 38) {
+								rng = ed.selection.getRng();
+								table = dom.getParent(rng.startContainer, 'table');
+
+								if (table && ed.getBody().firstChild == table) {
+									if (isAtStart(rng, table)) {
+										rng = dom.createRng();
+
+										rng.setStartBefore(table);
+										rng.setEndBefore(table);
+
+										ed.selection.setRng(rng);
+
+										e.preventDefault();
+									}
+								}
+							}
+						});
+					}
+
+					ed.onKeyUp.add(fixTableCaretPos);
+					ed.onSetContent.add(fixTableCaretPos);
+					ed.onVisualAid.add(fixTableCaretPos);
+
+					ed.onPreProcess.add(function(ed, o) {
+						var last = o.node.lastChild;
+
+						if (last && last.childNodes.length == 1 && last.firstChild.nodeName == 'BR')
+							ed.dom.remove(last);
+					});
+
+
+					/**
+					 * Fixes bug in Gecko where shift-enter in table cell does not place caret on new line
+					 */
+					if (tinymce.isGecko) {
+						ed.onKeyDown.add(function(ed, e) {
+							if (e.keyCode === tinymce.VK.ENTER && e.shiftKey) {
+								var node = ed.selection.getRng().startContainer;
+								var tableCell = dom.getParent(node, 'td,th');
+								if (tableCell) {
+									var zeroSizedNbsp = ed.getDoc().createTextNode("\uFEFF");
+									dom.insertAfter(zeroSizedNbsp, node);
+								}
+							}
+						});
+					}
+
+
+					fixTableCaretPos();
+					ed.startContent = ed.getContent({format : 'raw'});
+				}
+			});
+
+			// Register action commands
+			each({
+				mceTableSplitCells : function(grid) {
+					grid.split();
+				},
+
+				mceTableMergeCells : function(grid) {
+					var rowSpan, colSpan, cell;
+
+					cell = ed.dom.getParent(ed.selection.getNode(), 'th,td');
+					if (cell) {
+						rowSpan = cell.rowSpan;
+						colSpan = cell.colSpan;
+					}
+
+					if (!ed.dom.select('td.mceSelected,th.mceSelected').length) {
+						winMan.open({
+							url : url + '/merge_cells.htm',
+							width : 240 + parseInt(ed.getLang('table.merge_cells_delta_width', 0)),
+							height : 110 + parseInt(ed.getLang('table.merge_cells_delta_height', 0)),
+							inline : 1
+						}, {
+							rows : rowSpan,
+							cols : colSpan,
+							onaction : function(data) {
+								grid.merge(cell, data.cols, data.rows);
+							},
+							plugin_url : url
+						});
+					} else
+						grid.merge();
+				},
+
+				mceTableInsertRowBefore : function(grid) {
+					grid.insertRow(true);
+				},
+
+				mceTableInsertRowAfter : function(grid) {
+					grid.insertRow();
+				},
+
+				mceTableInsertColBefore : function(grid) {
+					grid.insertCol(true);
+				},
+
+				mceTableInsertColAfter : function(grid) {
+					grid.insertCol();
+				},
+
+				mceTableDeleteCol : function(grid) {
+					grid.deleteCols();
+				},
+
+				mceTableDeleteRow : function(grid) {
+					grid.deleteRows();
+				},
+
+				mceTableCutRow : function(grid) {
+					clipboardRows = grid.cutRows();
+				},
+
+				mceTableCopyRow : function(grid) {
+					clipboardRows = grid.copyRows();
+				},
+
+				mceTablePasteRowBefore : function(grid) {
+					grid.pasteRows(clipboardRows, true);
+				},
+
+				mceTablePasteRowAfter : function(grid) {
+					grid.pasteRows(clipboardRows);
+				},
+
+				mceTableDelete : function(grid) {
+					grid.deleteTable();
+				}
+			}, function(func, name) {
+				ed.addCommand(name, function() {
+					var grid = createTableGrid();
+
+					if (grid) {
+						func(grid);
+						ed.execCommand('mceRepaint');
+						cleanup();
+					}
+				});
+			});
+
+			// Register dialog commands
+			each({
+				mceInsertTable : function(val) {
+					winMan.open({
+						url : url + '/table.htm',
+						width : 400 + parseInt(ed.getLang('table.table_delta_width', 0)),
+						height : 320 + parseInt(ed.getLang('table.table_delta_height', 0)),
+						inline : 1
+					}, {
+						plugin_url : url,
+						action : val ? val.action : 0
+					});
+				},
+
+				mceTableRowProps : function() {
+					winMan.open({
+						url : url + '/row.htm',
+						width : 400 + parseInt(ed.getLang('table.rowprops_delta_width', 0)),
+						height : 295 + parseInt(ed.getLang('table.rowprops_delta_height', 0)),
+						inline : 1
+					}, {
+						plugin_url : url
+					});
+				},
+
+				mceTableCellProps : function() {
+					winMan.open({
+						url : url + '/cell.htm',
+						width : 400 + parseInt(ed.getLang('table.cellprops_delta_width', 0)),
+						height : 295 + parseInt(ed.getLang('table.cellprops_delta_height', 0)),
+						inline : 1
+					}, {
+						plugin_url : url
+					});
+				}
+			}, function(func, name) {
+				ed.addCommand(name, function(ui, val) {
+					func(val);
+				});
+			});
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin);
+})(tinymce);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js
new file mode 100644
index 0000000..53bdb54
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js
@@ -0,0 +1,319 @@
+tinyMCEPopup.requireLangPack();
+
+var ed;
+
+function init() {
+	ed = tinyMCEPopup.editor;
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
+
+	var inst = ed;
+	var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th");
+	var formObj = document.forms[0];
+	var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
+
+	// Get table cell data
+	var celltype = tdElm.nodeName.toLowerCase();
+	var align = ed.dom.getAttrib(tdElm, 'align');
+	var valign = ed.dom.getAttrib(tdElm, 'valign');
+	var width = trimSize(getStyle(tdElm, 'width', 'width'));
+	var height = trimSize(getStyle(tdElm, 'height', 'height'));
+	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
+	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
+	var className = ed.dom.getAttrib(tdElm, 'class');
+	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
+	var id = ed.dom.getAttrib(tdElm, 'id');
+	var lang = ed.dom.getAttrib(tdElm, 'lang');
+	var dir = ed.dom.getAttrib(tdElm, 'dir');
+	var scope = ed.dom.getAttrib(tdElm, 'scope');
+
+	// Setup form
+	addClassesToList('class', 'table_cell_styles');
+	TinyMCE_EditableSelects.init();
+
+	if (!ed.dom.hasClass(tdElm, 'mceSelected')) {
+		formObj.bordercolor.value = bordercolor;
+		formObj.bgcolor.value = bgcolor;
+		formObj.backgroundimage.value = backgroundimage;
+		formObj.width.value = width;
+		formObj.height.value = height;
+		formObj.id.value = id;
+		formObj.lang.value = lang;
+		formObj.style.value = ed.dom.serializeStyle(st);
+		selectByValue(formObj, 'align', align);
+		selectByValue(formObj, 'valign', valign);
+		selectByValue(formObj, 'class', className, true, true);
+		selectByValue(formObj, 'celltype', celltype);
+		selectByValue(formObj, 'dir', dir);
+		selectByValue(formObj, 'scope', scope);
+
+		// Resize some elements
+		if (isVisible('backgroundimagebrowser'))
+			document.getElementById('backgroundimage').style.width = '180px';
+
+		updateColor('bordercolor_pick', 'bordercolor');
+		updateColor('bgcolor_pick', 'bgcolor');
+	} else
+		tinyMCEPopup.dom.hide('action');
+}
+
+function updateAction() {
+	var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
+
+	if (!AutoValidator.validate(formObj)) {
+		tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
+		return false;
+	}
+
+	tinyMCEPopup.restoreSelection();
+	el = ed.selection.getStart();
+	tdElm = ed.dom.getParent(el, "td,th");
+	trElm = ed.dom.getParent(el, "tr");
+	tableElm = ed.dom.getParent(el, "table");
+
+	// Cell is selected
+	if (ed.dom.hasClass(tdElm, 'mceSelected')) {
+		// Update all selected sells
+		tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) {
+			updateCell(td);
+		});
+
+		ed.addVisual();
+		ed.nodeChanged();
+		inst.execCommand('mceEndUndoLevel');
+		tinyMCEPopup.close();
+		return;
+	}
+
+	switch (getSelectValue(formObj, 'action')) {
+		case "cell":
+			var celltype = getSelectValue(formObj, 'celltype');
+			var scope = getSelectValue(formObj, 'scope');
+
+			function doUpdate(s) {
+				if (s) {
+					updateCell(tdElm);
+
+					ed.addVisual();
+					ed.nodeChanged();
+					inst.execCommand('mceEndUndoLevel');
+					tinyMCEPopup.close();
+				}
+			};
+
+			if (ed.getParam("accessibility_warnings", 1)) {
+				if (celltype == "th" && scope == "")
+					tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
+				else
+					doUpdate(1);
+
+				return;
+			}
+
+			updateCell(tdElm);
+			break;
+
+		case "row":
+			var cell = trElm.firstChild;
+
+			if (cell.nodeName != "TD" && cell.nodeName != "TH")
+				cell = nextCell(cell);
+
+			do {
+				cell = updateCell(cell, true);
+			} while ((cell = nextCell(cell)) != null);
+
+			break;
+
+		case "col":
+			var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr");
+
+			if (cell.nodeName != "TD" && cell.nodeName != "TH")
+				cell = nextCell(cell);
+
+			do {
+				if (cell == tdElm)
+					break;
+				col += cell.getAttribute("colspan");
+			} while ((cell = nextCell(cell)) != null);
+
+			for (var i=0; i<rows.length; i++) {
+				cell = rows[i].firstChild;
+
+				if (cell.nodeName != "TD" && cell.nodeName != "TH")
+					cell = nextCell(cell);
+
+				curr = 0;
+				do {
+					if (curr == col) {
+						cell = updateCell(cell, true);
+						break;
+					}
+					curr += cell.getAttribute("colspan");
+				} while ((cell = nextCell(cell)) != null);
+			}
+
+			break;
+
+		case "all":
+			var rows = tableElm.getElementsByTagName("tr");
+
+			for (var i=0; i<rows.length; i++) {
+				var cell = rows[i].firstChild;
+
+				if (cell.nodeName != "TD" && cell.nodeName != "TH")
+					cell = nextCell(cell);
+
+				do {
+					cell = updateCell(cell, true);
+				} while ((cell = nextCell(cell)) != null);
+			}
+
+			break;
+	}
+
+	ed.addVisual();
+	ed.nodeChanged();
+	inst.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function nextCell(elm) {
+	while ((elm = elm.nextSibling) != null) {
+		if (elm.nodeName == "TD" || elm.nodeName == "TH")
+			return elm;
+	}
+
+	return null;
+}
+
+function updateCell(td, skip_id) {
+	var inst = ed;
+	var formObj = document.forms[0];
+	var curCellType = td.nodeName.toLowerCase();
+	var celltype = getSelectValue(formObj, 'celltype');
+	var doc = inst.getDoc();
+	var dom = ed.dom;
+
+	if (!skip_id)
+		dom.setAttrib(td, 'id', formObj.id.value);
+
+	dom.setAttrib(td, 'align', formObj.align.value);
+	dom.setAttrib(td, 'vAlign', formObj.valign.value);
+	dom.setAttrib(td, 'lang', formObj.lang.value);
+	dom.setAttrib(td, 'dir', getSelectValue(formObj, 'dir'));
+	dom.setAttrib(td, 'style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
+	dom.setAttrib(td, 'scope', formObj.scope.value);
+	dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
+
+	// Clear deprecated attributes
+	ed.dom.setAttrib(td, 'width', '');
+	ed.dom.setAttrib(td, 'height', '');
+	ed.dom.setAttrib(td, 'bgColor', '');
+	ed.dom.setAttrib(td, 'borderColor', '');
+	ed.dom.setAttrib(td, 'background', '');
+
+	// Set styles
+	td.style.width = getCSSSize(formObj.width.value);
+	td.style.height = getCSSSize(formObj.height.value);
+	if (formObj.bordercolor.value != "") {
+		td.style.borderColor = formObj.bordercolor.value;
+		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
+		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
+	} else
+		td.style.borderColor = '';
+
+	td.style.backgroundColor = formObj.bgcolor.value;
+
+	if (formObj.backgroundimage.value != "")
+		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
+	else
+		td.style.backgroundImage = '';
+
+	if (curCellType != celltype) {
+		// changing to a different node type
+		var newCell = doc.createElement(celltype);
+
+		for (var c=0; c<td.childNodes.length; c++)
+			newCell.appendChild(td.childNodes[c].cloneNode(1));
+
+		for (var a=0; a<td.attributes.length; a++)
+			ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
+
+		td.parentNode.replaceChild(newCell, td);
+		td = newCell;
+	}
+
+	dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
+
+	return td;
+}
+
+function changedBackgroundImage() {
+	var formObj = document.forms[0];
+	var st = ed.dom.parseStyle(formObj.style.value);
+
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+	formObj.style.value = ed.dom.serializeStyle(st);
+}
+
+function changedSize() {
+	var formObj = document.forms[0];
+	var st = ed.dom.parseStyle(formObj.style.value);
+
+	var width = formObj.width.value;
+	if (width != "")
+		st['width'] = getCSSSize(width);
+	else
+		st['width'] = "";
+
+	var height = formObj.height.value;
+	if (height != "")
+		st['height'] = getCSSSize(height);
+	else
+		st['height'] = "";
+
+	formObj.style.value = ed.dom.serializeStyle(st);
+}
+
+function changedColor() {
+	var formObj = document.forms[0];
+	var st = ed.dom.parseStyle(formObj.style.value);
+
+	st['background-color'] = formObj.bgcolor.value;
+	st['border-color'] = formObj.bordercolor.value;
+
+	formObj.style.value = ed.dom.serializeStyle(st);
+}
+
+function changedStyle() {
+	var formObj = document.forms[0];
+	var st = ed.dom.parseStyle(formObj.style.value);
+
+	if (st['background-image'])
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+	else
+		formObj.backgroundimage.value = '';
+
+	if (st['width'])
+		formObj.width.value = trimSize(st['width']);
+
+	if (st['height'])
+		formObj.height.value = trimSize(st['height']);
+
+	if (st['background-color']) {
+		formObj.bgcolor.value = st['background-color'];
+		updateColor('bgcolor_pick','bgcolor');
+	}
+
+	if (st['border-color']) {
+		formObj.bordercolor.value = st['border-color'];
+		updateColor('bordercolor_pick','bordercolor');
+	}
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js
new file mode 100644
index 0000000..fc2a048
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js
@@ -0,0 +1,27 @@
+tinyMCEPopup.requireLangPack();
+
+var MergeCellsDialog = {
+	init : function() {
+		var f = document.forms[0];
+
+		f.numcols.value = tinyMCEPopup.getWindowArg('cols', 1);
+		f.numrows.value = tinyMCEPopup.getWindowArg('rows', 1);
+	},
+
+	merge : function() {
+		var func, f = document.forms[0];
+
+		tinyMCEPopup.restoreSelection();
+
+		func = tinyMCEPopup.getWindowArg('onaction');
+
+		func({
+			cols : f.numcols.value,
+			rows : f.numrows.value
+		});
+
+		tinyMCEPopup.close();
+	}
+};
+
+tinyMCEPopup.onInit.add(MergeCellsDialog.init, MergeCellsDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/row.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/row.js
new file mode 100644
index 0000000..882bfb5
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/row.js
@@ -0,0 +1,237 @@
+tinyMCEPopup.requireLangPack();
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+
+	var inst = tinyMCEPopup.editor;
+	var dom = inst.dom;
+	var trElm = dom.getParent(inst.selection.getStart(), "tr");
+	var formObj = document.forms[0];
+	var st = dom.parseStyle(dom.getAttrib(trElm, "style"));
+
+	// Get table row data
+	var rowtype = trElm.parentNode.nodeName.toLowerCase();
+	var align = dom.getAttrib(trElm, 'align');
+	var valign = dom.getAttrib(trElm, 'valign');
+	var height = trimSize(getStyle(trElm, 'height', 'height'));
+	var className = dom.getAttrib(trElm, 'class');
+	var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
+	var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
+	var id = dom.getAttrib(trElm, 'id');
+	var lang = dom.getAttrib(trElm, 'lang');
+	var dir = dom.getAttrib(trElm, 'dir');
+
+	selectByValue(formObj, 'rowtype', rowtype);
+
+	// Any cells selected
+	if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {
+		// Setup form
+		addClassesToList('class', 'table_row_styles');
+		TinyMCE_EditableSelects.init();
+
+		formObj.bgcolor.value = bgcolor;
+		formObj.backgroundimage.value = backgroundimage;
+		formObj.height.value = height;
+		formObj.id.value = id;
+		formObj.lang.value = lang;
+		formObj.style.value = dom.serializeStyle(st);
+		selectByValue(formObj, 'align', align);
+		selectByValue(formObj, 'valign', valign);
+		selectByValue(formObj, 'class', className, true, true);
+		selectByValue(formObj, 'dir', dir);
+
+		// Resize some elements
+		if (isVisible('backgroundimagebrowser'))
+			document.getElementById('backgroundimage').style.width = '180px';
+
+		updateColor('bgcolor_pick', 'bgcolor');
+	} else
+		tinyMCEPopup.dom.hide('action');
+}
+
+function updateAction() {
+	var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];
+	var action = getSelectValue(formObj, 'action');
+
+	if (!AutoValidator.validate(formObj)) {
+		tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
+		return false;
+	}
+
+	tinyMCEPopup.restoreSelection();
+	trElm = dom.getParent(inst.selection.getStart(), "tr");
+	tableElm = dom.getParent(inst.selection.getStart(), "table");
+
+	// Update all selected rows
+	if (dom.select('td.mceSelected,th.mceSelected', trElm).length > 0) {
+		tinymce.each(tableElm.rows, function(tr) {
+			var i;
+
+			for (i = 0; i < tr.cells.length; i++) {
+				if (dom.hasClass(tr.cells[i], 'mceSelected')) {
+					updateRow(tr, true);
+					return;
+				}
+			}
+		});
+
+		inst.addVisual();
+		inst.nodeChanged();
+		inst.execCommand('mceEndUndoLevel');
+		tinyMCEPopup.close();
+		return;
+	}
+
+	switch (action) {
+		case "row":
+			updateRow(trElm);
+			break;
+
+		case "all":
+			var rows = tableElm.getElementsByTagName("tr");
+
+			for (var i=0; i<rows.length; i++)
+				updateRow(rows[i], true);
+
+			break;
+
+		case "odd":
+		case "even":
+			var rows = tableElm.getElementsByTagName("tr");
+
+			for (var i=0; i<rows.length; i++) {
+				if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
+					updateRow(rows[i], true, true);
+			}
+
+			break;
+	}
+
+	inst.addVisual();
+	inst.nodeChanged();
+	inst.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function updateRow(tr_elm, skip_id, skip_parent) {
+	var inst = tinyMCEPopup.editor;
+	var formObj = document.forms[0];
+	var dom = inst.dom;
+	var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
+	var rowtype = getSelectValue(formObj, 'rowtype');
+	var doc = inst.getDoc();
+
+	// Update row element
+	if (!skip_id)
+		dom.setAttrib(tr_elm, 'id', formObj.id.value);
+
+	dom.setAttrib(tr_elm, 'align', getSelectValue(formObj, 'align'));
+	dom.setAttrib(tr_elm, 'vAlign', getSelectValue(formObj, 'valign'));
+	dom.setAttrib(tr_elm, 'lang', formObj.lang.value);
+	dom.setAttrib(tr_elm, 'dir', getSelectValue(formObj, 'dir'));
+	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));
+	dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
+
+	// Clear deprecated attributes
+	dom.setAttrib(tr_elm, 'background', '');
+	dom.setAttrib(tr_elm, 'bgColor', '');
+	dom.setAttrib(tr_elm, 'height', '');
+
+	// Set styles
+	tr_elm.style.height = getCSSSize(formObj.height.value);
+	tr_elm.style.backgroundColor = formObj.bgcolor.value;
+
+	if (formObj.backgroundimage.value != "")
+		tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
+	else
+		tr_elm.style.backgroundImage = '';
+
+	// Setup new rowtype
+	if (curRowType != rowtype && !skip_parent) {
+		// first, clone the node we are working on
+		var newRow = tr_elm.cloneNode(1);
+
+		// next, find the parent of its new destination (creating it if necessary)
+		var theTable = dom.getParent(tr_elm, "table");
+		var dest = rowtype;
+		var newParent = null;
+		for (var i = 0; i < theTable.childNodes.length; i++) {
+			if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
+				newParent = theTable.childNodes[i];
+		}
+
+		if (newParent == null) {
+			newParent = doc.createElement(dest);
+
+			if (theTable.firstChild.nodeName == 'CAPTION')
+				inst.dom.insertAfter(newParent, theTable.firstChild);
+			else
+				theTable.insertBefore(newParent, theTable.firstChild);
+		}
+
+		// append the row to the new parent
+		newParent.appendChild(newRow);
+
+		// remove the original
+		tr_elm.parentNode.removeChild(tr_elm);
+
+		// set tr_elm to the new node
+		tr_elm = newRow;
+	}
+
+	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));
+}
+
+function changedBackgroundImage() {
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
+	var st = dom.parseStyle(formObj.style.value);
+
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+	formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedStyle() {
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
+	var st = dom.parseStyle(formObj.style.value);
+
+	if (st['background-image'])
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+	else
+		formObj.backgroundimage.value = '';
+
+	if (st['height'])
+		formObj.height.value = trimSize(st['height']);
+
+	if (st['background-color']) {
+		formObj.bgcolor.value = st['background-color'];
+		updateColor('bgcolor_pick','bgcolor');
+	}
+}
+
+function changedSize() {
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
+	var st = dom.parseStyle(formObj.style.value);
+
+	var height = formObj.height.value;
+	if (height != "")
+		st['height'] = getCSSSize(height);
+	else
+		st['height'] = "";
+
+	formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedColor() {
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
+	var st = dom.parseStyle(formObj.style.value);
+
+	st['background-color'] = formObj.bgcolor.value;
+
+	formObj.style.value = dom.serializeStyle(st);
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/table.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/table.js
new file mode 100644
index 0000000..fd95e8c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/js/table.js
@@ -0,0 +1,489 @@
+tinyMCEPopup.requireLangPack();
+
+var action, orgTableWidth, orgTableHeight, dom = tinyMCEPopup.editor.dom;
+
+function insertTable() {
+	var formObj = document.forms[0];
+	var inst = tinyMCEPopup.editor, dom = inst.dom;
+	var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className, caption, frame, rules;
+	var html = '', capEl, elm;
+	var cellLimit, rowLimit, colLimit;
+
+	tinyMCEPopup.restoreSelection();
+
+	if (!AutoValidator.validate(formObj)) {
+		tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
+		return false;
+	}
+
+	elm = dom.getParent(inst.selection.getNode(), 'table');
+
+	// Get form data
+	cols = formObj.elements['cols'].value;
+	rows = formObj.elements['rows'].value;
+	border = formObj.elements['border'].value != "" ? formObj.elements['border'].value : 0;
+	cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
+	cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
+	align = getSelectValue(formObj, "align");
+	frame = getSelectValue(formObj, "tframe");
+	rules = getSelectValue(formObj, "rules");
+	width = formObj.elements['width'].value;
+	height = formObj.elements['height'].value;
+	bordercolor = formObj.elements['bordercolor'].value;
+	bgcolor = formObj.elements['bgcolor'].value;
+	className = getSelectValue(formObj, "class");
+	id = formObj.elements['id'].value;
+	summary = formObj.elements['summary'].value;
+	style = formObj.elements['style'].value;
+	dir = formObj.elements['dir'].value;
+	lang = formObj.elements['lang'].value;
+	background = formObj.elements['backgroundimage'].value;
+	caption = formObj.elements['caption'].checked;
+
+	cellLimit = tinyMCEPopup.getParam('table_cell_limit', false);
+	rowLimit = tinyMCEPopup.getParam('table_row_limit', false);
+	colLimit = tinyMCEPopup.getParam('table_col_limit', false);
+
+	// Validate table size
+	if (colLimit && cols > colLimit) {
+		tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));
+		return false;
+	} else if (rowLimit && rows > rowLimit) {
+		tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));
+		return false;
+	} else if (cellLimit && cols * rows > cellLimit) {
+		tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));
+		return false;
+	}
+
+	// Update table
+	if (action == "update") {
+		dom.setAttrib(elm, 'cellPadding', cellpadding, true);
+		dom.setAttrib(elm, 'cellSpacing', cellspacing, true);
+
+		if (!isCssSize(border)) {
+			dom.setAttrib(elm, 'border', border);
+		} else {
+			dom.setAttrib(elm, 'border', '');
+		}
+
+		if (border == '') {
+			dom.setStyle(elm, 'border-width', '');
+			dom.setStyle(elm, 'border', '');
+			dom.setAttrib(elm, 'border', '');
+		}
+
+		dom.setAttrib(elm, 'align', align);
+		dom.setAttrib(elm, 'frame', frame);
+		dom.setAttrib(elm, 'rules', rules);
+		dom.setAttrib(elm, 'class', className);
+		dom.setAttrib(elm, 'style', style);
+		dom.setAttrib(elm, 'id', id);
+		dom.setAttrib(elm, 'summary', summary);
+		dom.setAttrib(elm, 'dir', dir);
+		dom.setAttrib(elm, 'lang', lang);
+
+		capEl = inst.dom.select('caption', elm)[0];
+
+		if (capEl && !caption)
+			capEl.parentNode.removeChild(capEl);
+
+		if (!capEl && caption) {
+			capEl = elm.ownerDocument.createElement('caption');
+
+			if (!tinymce.isIE)
+				capEl.innerHTML = '<br data-mce-bogus="1"/>';
+
+			elm.insertBefore(capEl, elm.firstChild);
+		}
+
+		if (width && inst.settings.inline_styles) {
+			dom.setStyle(elm, 'width', width);
+			dom.setAttrib(elm, 'width', '');
+		} else {
+			dom.setAttrib(elm, 'width', width, true);
+			dom.setStyle(elm, 'width', '');
+		}
+
+		// Remove these since they are not valid XHTML
+		dom.setAttrib(elm, 'borderColor', '');
+		dom.setAttrib(elm, 'bgColor', '');
+		dom.setAttrib(elm, 'background', '');
+
+		if (height && inst.settings.inline_styles) {
+			dom.setStyle(elm, 'height', height);
+			dom.setAttrib(elm, 'height', '');
+		} else {
+			dom.setAttrib(elm, 'height', height, true);
+			dom.setStyle(elm, 'height', '');
+ 		}
+
+		if (background != '')
+			elm.style.backgroundImage = "url('" + background + "')";
+		else
+			elm.style.backgroundImage = '';
+
+/*		if (tinyMCEPopup.getParam("inline_styles")) {
+			if (width != '')
+				elm.style.width = getCSSSize(width);
+		}*/
+
+		if (bordercolor != "") {
+			elm.style.borderColor = bordercolor;
+			elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
+			elm.style.borderWidth = cssSize(border);
+		} else
+			elm.style.borderColor = '';
+
+		elm.style.backgroundColor = bgcolor;
+		elm.style.height = getCSSSize(height);
+
+		inst.addVisual();
+
+		// Fix for stange MSIE align bug
+		//elm.outerHTML = elm.outerHTML;
+
+		inst.nodeChanged();
+		inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true});
+
+		// Repaint if dimensions changed
+		if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
+			inst.execCommand('mceRepaint');
+
+		tinyMCEPopup.close();
+		return true;
+	}
+
+	// Create new table
+	html += '<table';
+
+	html += makeAttrib('id', id);
+	if (!isCssSize(border)) {
+		html += makeAttrib('border', border);
+	}
+
+	html += makeAttrib('cellpadding', cellpadding);
+	html += makeAttrib('cellspacing', cellspacing);
+	html += makeAttrib('data-mce-new', '1');
+
+	if (width && inst.settings.inline_styles) {
+		if (style)
+			style += '; ';
+
+		// Force px
+		if (/^[0-9\.]+$/.test(width))
+			width += 'px';
+
+		style += 'width: ' + width;
+	} else
+		html += makeAttrib('width', width);
+
+/*	if (height) {
+		if (style)
+			style += '; ';
+
+		style += 'height: ' + height;
+	}*/
+
+	//html += makeAttrib('height', height);
+	//html += makeAttrib('bordercolor', bordercolor);
+	//html += makeAttrib('bgcolor', bgcolor);
+	html += makeAttrib('align', align);
+	html += makeAttrib('frame', frame);
+	html += makeAttrib('rules', rules);
+	html += makeAttrib('class', className);
+	html += makeAttrib('style', style);
+	html += makeAttrib('summary', summary);
+	html += makeAttrib('dir', dir);
+	html += makeAttrib('lang', lang);
+	html += '>';
+
+	if (caption) {
+		if (!tinymce.isIE)
+			html += '<caption><br data-mce-bogus="1"/></caption>';
+		else
+			html += '<caption></caption>';
+	}
+
+	for (var y=0; y<rows; y++) {
+		html += "<tr>";
+
+		for (var x=0; x<cols; x++) {
+			if (!tinymce.isIE)
+				html += '<td><br data-mce-bogus="1"/></td>';
+			else
+				html += '<td></td>';
+		}
+
+		html += "</tr>";
+	}
+
+	html += "</table>";
+
+	// Move table
+	if (inst.settings.fix_table_elements) {
+		var patt = '';
+
+		inst.focus();
+		inst.selection.setContent('<br class="_mce_marker" />');
+
+		tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) {
+			if (patt)
+				patt += ',';
+
+			patt += n + ' ._mce_marker';
+		});
+
+		tinymce.each(inst.dom.select(patt), function(n) {
+			inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n);
+		});
+
+		dom.setOuterHTML(dom.select('br._mce_marker')[0], html);
+	} else
+		inst.execCommand('mceInsertContent', false, html);
+
+	tinymce.each(dom.select('table[data-mce-new]'), function(node) {
+		var tdorth = dom.select('td,th', node);
+
+		// Fixes a bug in IE where the caret cannot be placed after the table if the table is at the end of the document
+		if (tinymce.isIE && node.nextSibling == null) {
+			dom.insertAfter(dom.create('p'), node);
+		}
+
+		try {
+			// IE9 might fail to do this selection 
+			inst.selection.setCursorLocation(tdorth[0], 0);
+		} catch (ex) {
+			// Ignore
+		}
+
+		dom.setAttrib(node, 'data-mce-new', '');
+	});
+
+	inst.addVisual();
+	inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true});
+
+	tinyMCEPopup.close();
+}
+
+function makeAttrib(attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib];
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	if (value == "")
+		return "";
+
+	// XML encode it
+	value = value.replace(/&/g, '&');
+	value = value.replace(/\"/g, '"');
+	value = value.replace(/</g, '<');
+	value = value.replace(/>/g, '>');
+
+	return ' ' + attrib + '="' + value + '"';
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+
+	var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', '');
+	var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
+	var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules = "", frame = "";
+	var inst = tinyMCEPopup.editor, dom = inst.dom;
+	var formObj = document.forms[0];
+	var elm = dom.getParent(inst.selection.getNode(), "table");
+
+	action = tinyMCEPopup.getWindowArg('action');
+
+	if (!action)
+		action = elm ? "update" : "insert";
+
+	if (elm && action != "insert") {
+		var rowsAr = elm.rows;
+		var cols = 0;
+		for (var i=0; i<rowsAr.length; i++)
+			if (rowsAr[i].cells.length > cols)
+				cols = rowsAr[i].cells.length;
+
+		cols = cols;
+		rows = rowsAr.length;
+
+		st = dom.parseStyle(dom.getAttrib(elm, "style"));
+		border = trimSize(getStyle(elm, 'border', 'borderWidth'));
+		cellpadding = dom.getAttrib(elm, 'cellpadding', "");
+		cellspacing = dom.getAttrib(elm, 'cellspacing', "");
+		width = trimSize(getStyle(elm, 'width', 'width'));
+		height = trimSize(getStyle(elm, 'height', 'height'));
+		bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
+		bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
+		align = dom.getAttrib(elm, 'align', align);
+		frame = dom.getAttrib(elm, 'frame');
+		rules = dom.getAttrib(elm, 'rules');
+		className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, ''));
+		id = dom.getAttrib(elm, 'id');
+		summary = dom.getAttrib(elm, 'summary');
+		style = dom.serializeStyle(st);
+		dir = dom.getAttrib(elm, 'dir');
+		lang = dom.getAttrib(elm, 'lang');
+		background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
+		formObj.caption.checked = elm.getElementsByTagName('caption').length > 0;
+
+		orgTableWidth = width;
+		orgTableHeight = height;
+
+		action = "update";
+		formObj.insert.value = inst.getLang('update');
+	}
+
+	addClassesToList('class', "table_styles");
+	TinyMCE_EditableSelects.init();
+
+	// Update form
+	selectByValue(formObj, 'align', align);
+	selectByValue(formObj, 'tframe', frame);
+	selectByValue(formObj, 'rules', rules);
+	selectByValue(formObj, 'class', className, true, true);
+	formObj.cols.value = cols;
+	formObj.rows.value = rows;
+	formObj.border.value = border;
+	formObj.cellpadding.value = cellpadding;
+	formObj.cellspacing.value = cellspacing;
+	formObj.width.value = width;
+	formObj.height.value = height;
+	formObj.bordercolor.value = bordercolor;
+	formObj.bgcolor.value = bgcolor;
+	formObj.id.value = id;
+	formObj.summary.value = summary;
+	formObj.style.value = style;
+	formObj.dir.value = dir;
+	formObj.lang.value = lang;
+	formObj.backgroundimage.value = background;
+
+	updateColor('bordercolor_pick', 'bordercolor');
+	updateColor('bgcolor_pick', 'bgcolor');
+
+	// Resize some elements
+	if (isVisible('backgroundimagebrowser'))
+		document.getElementById('backgroundimage').style.width = '180px';
+
+	// Disable some fields in update mode
+	if (action == "update") {
+		formObj.cols.disabled = true;
+		formObj.rows.disabled = true;
+	}
+}
+
+function changedSize() {
+	var formObj = document.forms[0];
+	var st = dom.parseStyle(formObj.style.value);
+
+/*	var width = formObj.width.value;
+	if (width != "")
+		st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : "";
+	else
+		st['width'] = "";*/
+
+	var height = formObj.height.value;
+	if (height != "")
+		st['height'] = getCSSSize(height);
+	else
+		st['height'] = "";
+
+	formObj.style.value = dom.serializeStyle(st);
+}
+
+function isCssSize(value) {
+	return /^[0-9.]+(%|in|cm|mm|em|ex|pt|pc|px)$/.test(value);
+}
+
+function cssSize(value, def) {
+	value = tinymce.trim(value || def);
+
+	if (!isCssSize(value)) {
+		return parseInt(value, 10) + 'px';
+	}
+
+	return value;
+}
+
+function changedBackgroundImage() {
+	var formObj = document.forms[0];
+	var st = dom.parseStyle(formObj.style.value);
+
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+	formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedBorder() {
+	var formObj = document.forms[0];
+	var st = dom.parseStyle(formObj.style.value);
+
+	// Update border width if the element has a color
+	if (formObj.border.value != "" && (isCssSize(formObj.border.value) || formObj.bordercolor.value != ""))
+		st['border-width'] = cssSize(formObj.border.value);
+	else {
+		if (!formObj.border.value) {
+			st['border'] = '';
+			st['border-width'] = '';
+		}
+	}
+
+	formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedColor() {
+	var formObj = document.forms[0];
+	var st = dom.parseStyle(formObj.style.value);
+
+	st['background-color'] = formObj.bgcolor.value;
+
+	if (formObj.bordercolor.value != "") {
+		st['border-color'] = formObj.bordercolor.value;
+
+		// Add border-width if it's missing
+		if (!st['border-width'])
+			st['border-width'] = cssSize(formObj.border.value, 1);
+	}
+
+	formObj.style.value = dom.serializeStyle(st);
+}
+
+function changedStyle() {
+	var formObj = document.forms[0];
+	var st = dom.parseStyle(formObj.style.value);
+
+	if (st['background-image'])
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
+	else
+		formObj.backgroundimage.value = '';
+
+	if (st['width'])
+		formObj.width.value = trimSize(st['width']);
+
+	if (st['height'])
+		formObj.height.value = trimSize(st['height']);
+
+	if (st['background-color']) {
+		formObj.bgcolor.value = st['background-color'];
+		updateColor('bgcolor_pick','bgcolor');
+	}
+
+	if (st['border-color']) {
+		formObj.bordercolor.value = st['border-color'];
+		updateColor('bordercolor_pick','bordercolor');
+	}
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js
new file mode 100644
index 0000000..463e09e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.table_dlg',{"rules_border":"border","rules_box":"box","rules_vsides":"vsides","rules_rhs":"rhs","rules_lhs":"lhs","rules_hsides":"hsides","rules_below":"below","rules_above":"above","rules_void":"void",rules:"Rules","frame_all":"all","frame_cols":"cols","frame_rows":"rows","frame_groups":"groups","frame_none":"none",frame:"Frame",caption:"Table Caption","missing_scope":"Are you sure you want to continue without specifying a scope for this table header cell. Without it [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm
new file mode 100644
index 0000000..788acf6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#table_dlg.merge_cells_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="js/merge_cells.js"></script>
+</head>
+<body style="margin: 8px" role="application">
+<form onsubmit="MergeCellsDialog.merge();return false;" action="#">
+	<fieldset>
+		<legend>{#table_dlg.merge_cells_title}</legend>
+		<table role="presentation" border="0" cellpadding="0" cellspacing="3" width="100%">
+			<tr>
+				<td><label for="numcols">{#table_dlg.cols}</label>:</td>
+				<td align="right"><input type="text" id="numcols" name="numcols" value="" class="number min1 mceFocus" style="width: 30px" aria-required="true" /></td>
+			</tr>
+			<tr>
+				<td><label for="numrows">{#table_dlg.rows}</label>:</td>
+				<td align="right"><input type="text" id="numrows" name="numrows" value="" class="number min1" style="width: 30px" aria-required="true" /></td>
+			</tr>
+		</table>
+	</fieldset>
+
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/row.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/row.htm
new file mode 100644
index 0000000..e0b182b
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/row.htm
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#table_dlg.row_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/row.js"></script>
+	<link href="css/row.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="tablerow" style="display: none" role="application">
+	<form onsubmit="updateAction();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>
+				<li id="advanced_tab" aria-controls="advanced_panel"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{#table_dlg.general_props}</legend>
+
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="rowtype">{#table_dlg.rowtype}</label></td>
+							<td class="col2">
+								<select id="rowtype" name="rowtype" class="mceFocus">
+									<option value="thead">{#table_dlg.thead}</option>
+									<option value="tbody">{#table_dlg.tbody}</option>
+									<option value="tfoot">{#table_dlg.tfoot}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="align">{#table_dlg.align}</label></td>
+							<td class="col2">
+								<select id="align" name="align">
+									<option value="">{#not_set}</option>
+									<option value="center">{#table_dlg.align_middle}</option>
+									<option value="left">{#table_dlg.align_left}</option>
+									<option value="right">{#table_dlg.align_right}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="valign">{#table_dlg.valign}</label></td>
+							<td class="col2">
+								<select id="valign" name="valign">
+									<option value="">{#not_set}</option>
+									<option value="top">{#table_dlg.align_top}</option>
+									<option value="middle">{#table_dlg.align_middle}</option>
+									<option value="bottom">{#table_dlg.align_bottom}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr id="styleSelectRow">
+							<td><label for="class">{#class_name}</label></td>
+							<td class="col2">
+								<select id="class" name="class" class="mceEditableSelect">
+									<option value="" selected="selected">{#not_set}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="height">{#table_dlg.height}</label></td>
+							<td class="col2"><input name="height" type="text" id="height" value="" size="7" maxlength="7" onchange="changedSize();" class="size" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{#table_dlg.advanced_props}</legend>
+
+					<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label for="id">{#table_dlg.id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> 
+						</tr>
+
+						<tr>
+							<td><label for="style">{#table_dlg.style}</label></td>
+							<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" style="width: 200px"> 
+										<option value="">{#not_set}</option> 
+										<option value="ltr">{#table_dlg.ltr}</option> 
+										<option value="rtl">{#table_dlg.rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" style="width: 200px" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> 
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
+										<td id="backgroundimagebrowsercontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="bgcolor" id="bgcolor_label">{#table_dlg.bgcolor}</label></td> 
+							<td>
+								<span role="group" aria-labelledby="bgcolor_label">
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
+										<td id="bgcolor_pickcontainer"> </td>
+									</tr>
+								</table>
+								</span>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div>
+				<select id="action" name="action">
+					<option value="row">{#table_dlg.row_row}</option>
+					<option value="odd">{#table_dlg.row_odd}</option>
+					<option value="even">{#table_dlg.row_even}</option>
+					<option value="all">{#table_dlg.row_all}</option>
+				</select>
+			</div>
+
+			<input type="submit" id="insert" name="insert" value="{#update}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/table.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/table.htm
new file mode 100644
index 0000000..52e6bf2
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/table/table.htm
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#table_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/table.js"></script>
+	<link href="css/table.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="table" style="display: none" role="application" aria-labelledby="app_title">
+	<span style="display:none;" id="app_title">{#table_dlg.title}</span>
+	<form onsubmit="insertTable();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" aria-controls="general_panel" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>
+				<li id="advanced_tab" aria-controls="advanced_panel"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{#table_dlg.general_props}</legend>
+					<table role="presentation" border="0" cellpadding="4" cellspacing="0" width="100%">
+						<tr>
+							<td><label id="colslabel" for="cols">{#table_dlg.cols}</label></td>
+							<td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" class="required number min1 mceFocus" aria-required="true" /></td>
+							<td><label id="rowslabel" for="rows">{#table_dlg.rows}</label></td>
+							<td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" class="required number min1" aria-required="true" /></td>
+						</tr>
+						<tr>
+							<td><label id="cellpaddinglabel" for="cellpadding">{#table_dlg.cellpadding}</label></td>
+							<td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" class="number" /></td>
+							<td><label id="cellspacinglabel" for="cellspacing">{#table_dlg.cellspacing}</label></td>
+							<td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" class="number" /></td>
+						</tr>
+						<tr>
+							<td><label id="alignlabel" for="align">{#table_dlg.align}</label></td>
+							<td><select id="align" name="align">
+								<option value="">{#not_set}</option>
+								<option value="center">{#table_dlg.align_middle}</option>
+								<option value="left">{#table_dlg.align_left}</option>
+								<option value="right">{#table_dlg.align_right}</option>
+							</select></td>
+							<td><label id="borderlabel" for="border">{#table_dlg.border}</label></td>
+							<td><input id="border" name="border" type="text" value="" size="3" maxlength="5" onchange="changedBorder();" class="size" /></td>
+						</tr>
+						<tr id="width_row">
+							<td><label id="widthlabel" for="width">{#table_dlg.width}</label></td>
+							<td><input name="width" type="text" id="width" value="" size="7" maxlength="7" onchange="changedSize();" class="size" /></td>
+							<td><label id="heightlabel" for="height">{#table_dlg.height}</label></td>
+							<td><input name="height" type="text" id="height" value="" size="7" maxlength="7" onchange="changedSize();" class="size" /></td>
+						</tr>
+						<tr id="styleSelectRow" >
+							<td><label id="classlabel" for="class">{#class_name}</label></td>
+							<td colspan="3" >
+							 <select id="class" name="class" class="mceEditableSelect">
+								<option value="" selected="selected">{#not_set}</option>
+							 </select></td>
+						</tr>
+						<tr>
+							<td class="column1" ><label for="caption">{#table_dlg.caption}</label></td> 
+							<td><input id="caption" name="caption" type="checkbox" class="checkbox" value="true" /></td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{#table_dlg.advanced_props}</legend>
+
+					<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label for="id">{#table_dlg.id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" class="advfield" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="summary">{#table_dlg.summary}</label></td> 
+							<td><input id="summary" name="summary" type="text" value="" class="advfield" /></td> 
+						</tr>
+
+						<tr>
+							<td><label for="style">{#table_dlg.style}</label></td>
+							<td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="langlabel" for="lang">{#table_dlg.langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" class="advfield" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> 
+							<td>
+								<table role="presentation" aria-labelledby="backgroundimage_label" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td>
+										<td id="backgroundimagebrowsercontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="tframe">{#table_dlg.frame}</label></td> 
+							<td>
+								<select id="tframe" name="tframe" class="advfield"> 
+										<option value="">{#not_set}</option>
+										<option value="void">{#table_dlg.rules_void}</option>
+										<option value="above">{#table_dlg.rules_above}</option> 
+										<option value="below">{#table_dlg.rules_below}</option> 
+										<option value="hsides">{#table_dlg.rules_hsides}</option> 
+										<option value="lhs">{#table_dlg.rules_lhs}</option> 
+										<option value="rhs">{#table_dlg.rules_rhs}</option> 
+										<option value="vsides">{#table_dlg.rules_vsides}</option> 
+										<option value="box">{#table_dlg.rules_box}</option> 
+										<option value="border">{#table_dlg.rules_border}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="rules">{#table_dlg.rules}</label></td> 
+							<td>
+								<select id="rules" name="rules" class="advfield"> 
+										<option value="">{#not_set}</option> 
+										<option value="none">{#table_dlg.frame_none}</option>
+										<option value="groups">{#table_dlg.frame_groups}</option>
+										<option value="rows">{#table_dlg.frame_rows}</option>
+										<option value="cols">{#table_dlg.frame_cols}</option>
+										<option value="all">{#table_dlg.frame_all}</option>
+									</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" class="advfield"> 
+										<option value="">{#not_set}</option> 
+										<option value="ltr">{#table_dlg.ltr}</option> 
+										<option value="rtl">{#table_dlg.rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr role="group" aria-labelledby="bordercolor_label">
+							<td class="column1"><label id="bordercolor_label" for="bordercolor">{#table_dlg.bordercolor}</label></td> 
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>
+										<td id="bordercolor_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr role="group" aria-labelledby="bgcolor_label">
+							<td class="column1"><label id="bgcolor_label" for="bgcolor">{#table_dlg.bgcolor}</label></td> 
+							<td>
+								<table role="presentation" border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
+										<td id="bgcolor_pickcontainer"> </td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<input type="submit" id="insert" name="insert" value="{#insert}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/blank.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/blank.htm
new file mode 100644
index 0000000..538a3b1
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/blank.htm
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>blank_page</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+	<script type="text/javascript">
+		parent.TemplateDialog.loadCSSFiles(document);
+	</script>
+</head>
+<body id="mceTemplatePreview" class="mceContentBody">
+
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/css/template.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/css/template.css
new file mode 100644
index 0000000..0a03f2e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/css/template.css
@@ -0,0 +1,23 @@
+#frmbody {
+	padding: 10px;
+	background-color: #FFF;
+	border: 1px solid #CCC;
+}
+
+.frmRow {
+	margin-bottom: 10px;
+}
+
+#templatesrc {
+	border: none;
+	width: 320px;
+	height: 240px;
+}
+
+.title {
+	padding-bottom: 5px;
+}
+
+.mceActionPanel {
+	padding-top: 5px;
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js
new file mode 100644
index 0000000..ebe3c27
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js
@@ -0,0 +1 @@
+(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a( [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js
new file mode 100644
index 0000000..28baed2
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js
@@ -0,0 +1,159 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var each = tinymce.each;
+
+	tinymce.create('tinymce.plugins.TemplatePlugin', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceTemplate', function(ui) {
+				ed.windowManager.open({
+					file : url + '/template.htm',
+					width : ed.getParam('template_popup_width', 750),
+					height : ed.getParam('template_popup_height', 600),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			ed.addCommand('mceInsertTemplate', t._insertTemplate, t);
+
+			// Register buttons
+			ed.addButton('template', {title : 'template.desc', cmd : 'mceTemplate'});
+
+			ed.onPreProcess.add(function(ed, o) {
+				var dom = ed.dom;
+
+				each(dom.select('div', o.node), function(e) {
+					if (dom.hasClass(e, 'mceTmpl')) {
+						each(dom.select('*', e), function(e) {
+							if (dom.hasClass(e, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
+								e.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
+						});
+
+						t._replaceVals(e);
+					}
+				});
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Template plugin',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://www.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		_insertTemplate : function(ui, v) {
+			var t = this, ed = t.editor, h, el, dom = ed.dom, sel = ed.selection.getContent();
+
+			h = v.content;
+
+			each(t.editor.getParam('template_replace_values'), function(v, k) {
+				if (typeof(v) != 'function')
+					h = h.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);
+			});
+
+			el = dom.create('div', null, h);
+
+			// Find template element within div
+			n = dom.select('.mceTmpl', el);
+			if (n && n.length > 0) {
+				el = dom.create('div', null);
+				el.appendChild(n[0].cloneNode(true));
+			}
+
+			function hasClass(n, c) {
+				return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
+			};
+
+			each(dom.select('*', el), function(n) {
+				// Replace cdate
+				if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))
+					n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));
+
+				// Replace mdate
+				if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
+					n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
+
+				// Replace selection
+				if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))
+					n.innerHTML = sel;
+			});
+
+			t._replaceVals(el);
+
+			ed.execCommand('mceInsertContent', false, el.innerHTML);
+			ed.addVisual();
+		},
+
+		_replaceVals : function(e) {
+			var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');
+
+			each(dom.select('*', e), function(e) {
+				each(vl, function(v, k) {
+					if (dom.hasClass(e, k)) {
+						if (typeof(vl[k]) == 'function')
+							vl[k](e);
+					}
+				});
+			});
+		},
+
+		_getDateTime : function(d, fmt) {
+				if (!fmt)
+					return "";
+
+				function addZeros(value, len) {
+					var i;
+
+					value = "" + value;
+
+					if (value.length < len) {
+						for (i=0; i<(len-value.length); i++)
+							value = "0" + value;
+					}
+
+					return value;
+				}
+
+				fmt = fmt.replace("%D", "%m/%d/%y");
+				fmt = fmt.replace("%r", "%I:%M:%S %p");
+				fmt = fmt.replace("%Y", "" + d.getFullYear());
+				fmt = fmt.replace("%y", "" + d.getYear());
+				fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
+				fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
+				fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
+				fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
+				fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
+				fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
+				fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
+				fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]);
+				fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]);
+				fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]);
+				fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]);
+				fmt = fmt.replace("%%", "%");
+
+				return fmt;
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/js/template.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/js/template.js
new file mode 100644
index 0000000..673395a
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/js/template.js
@@ -0,0 +1,106 @@
+tinyMCEPopup.requireLangPack();
+
+var TemplateDialog = {
+	preInit : function() {
+		var url = tinyMCEPopup.getParam("template_external_list_url");
+
+		if (url != null)
+			document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');
+	},
+
+	init : function() {
+		var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
+
+ 		tsrc = ed.getParam("template_templates", false);
+ 		sel = document.getElementById('tpath');
+
+		// Setup external template list
+		if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
+			for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
+				tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
+		}
+
+		for (x=0; x<tsrc.length; x++)
+			sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));
+
+		this.resize();
+		this.tsrc = tsrc;
+	},
+
+	resize : function() {
+		var w, h, e;
+
+		if (!self.innerWidth) {
+			w = document.body.clientWidth - 50;
+			h = document.body.clientHeight - 160;
+		} else {
+			w = self.innerWidth - 50;
+			h = self.innerHeight - 170;
+		}
+
+		e = document.getElementById('templatesrc');
+
+		if (e) {
+			e.style.height = Math.abs(h) + 'px';
+			e.style.width = Math.abs(w - 5) + 'px';
+		}
+	},
+
+	loadCSSFiles : function(d) {
+		var ed = tinyMCEPopup.editor;
+
+		tinymce.each(ed.getParam("content_css", '').split(','), function(u) {
+			d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
+		});
+	},
+
+	selectTemplate : function(u, ti) {
+		var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
+
+		if (!u)
+			return;
+
+		d.body.innerHTML = this.templateHTML = this.getFileContents(u);
+
+		for (x=0; x<tsrc.length; x++) {
+			if (tsrc[x].title == ti)
+				document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';
+		}
+	},
+
+ 	insert : function() {
+		tinyMCEPopup.execCommand('mceInsertTemplate', false, {
+			content : this.templateHTML,
+			selection : tinyMCEPopup.editor.selection.getContent()
+		});
+
+		tinyMCEPopup.close();
+	},
+
+	getFileContents : function(u) {
+		var x, d, t = 'text/plain';
+
+		function g(s) {
+			x = 0;
+
+			try {
+				x = new ActiveXObject(s);
+			} catch (s) {
+			}
+
+			return x;
+		};
+
+		x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
+
+		// Synchronous AJAX load file
+		x.overrideMimeType && x.overrideMimeType(t);
+		x.open("GET", u, false);
+		x.send(null);
+
+		return x.responseText;
+	}
+};
+
+TemplateDialog.preInit();
+tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js
new file mode 100644
index 0000000..83e599d
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.template_dlg',{title:"Templates",label:"Template","desc_label":"Description",desc:"Insert Predefined Template Content",select:"Select a Template",preview:"Preview",warning:"Warning: Updating a template with a different one may cause data loss.","mdate_format":"%Y-%m-%d %H:%M:%S","cdate_format":"%Y-%m-%d %H:%M:%S","months_long":"January,February,March,April,May,June,July,August,September,October,November,December","months_short":"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/template.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/template.htm
new file mode 100644
index 0000000..59b7cdc
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/template/template.htm
@@ -0,0 +1,31 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#template_dlg.title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/template.js"></script>
+	<link href="css/template.css" rel="stylesheet" type="text/css" />
+</head>
+<body onresize="TemplateDialog.resize();"> 
+	<form onsubmit="TemplateDialog.insert();return false;">
+		<div id="frmbody">
+			<div class="title">{#template_dlg.desc}</div>
+			<div class="frmRow"><label for="tpath" title="{#template_dlg.select}">{#template_dlg.label}:</label>
+			<select id="tpath" name="tpath" onchange="TemplateDialog.selectTemplate(this.options[this.selectedIndex].value, this.options[this.selectedIndex].text);" class="mceFocus">
+				<option value="">{#template_dlg.select}...</option>
+			</select>
+			<span id="warning"></span></div>
+			<div class="frmRow"><label for="tdesc">{#template_dlg.desc_label}:</label>
+			<span id="tmpldesc"></span></div>
+			<fieldset>
+				<legend>{#template_dlg.preview}</legend>
+				<iframe id="templatesrc" name="templatesrc" src="blank.htm" width="690" height="400" frameborder="0"></iframe>
+			</fieldset>
+		</div>
+		
+		<div class="mceActionPanel">
+			<input type="submit" id="insert" name="insert" value="{#insert}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</form>
+</body> 
+</html> 
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css
new file mode 100644
index 0000000..a4f9d9f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css
@@ -0,0 +1,19 @@
+p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat}
+p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre {margin-left: 3px}
+section, article, address, hgroup, aside {margin: 1em 0 0 3px}
+
+p {background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}
+h1 {background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}
+h2 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}
+h3 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}
+h4 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}
+h5 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}
+h6 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}
+div {background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}
+section {background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}
+article {background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}
+blockquote {background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}
+address {background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}
+pre {background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}
+hgroup {background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}
+aside {background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin.js
new file mode 100644
index 0000000..62cc2e4
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js
new file mode 100644
index 0000000..f9b3125
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js
@@ -0,0 +1,63 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2012, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.VisualBlocks', {
+		init : function(ed, url) {
+			var cssId;
+
+			// We don't support older browsers like IE6/7 and they don't provide prototypes for DOM objects
+			if (!window.NodeList) {
+				return;
+			}
+
+			ed.addCommand('mceVisualBlocks', function() {
+				var dom = ed.dom, linkElm;
+
+				if (!cssId) {
+					cssId = dom.uniqueId();
+					linkElm = dom.create('link', {
+						id: cssId,
+						rel : 'stylesheet',
+						href : url + '/css/visualblocks.css'
+					});
+
+					ed.getDoc().getElementsByTagName('head')[0].appendChild(linkElm);
+				} else {
+					linkElm = dom.get(cssId);
+					linkElm.disabled = !linkElm.disabled;
+				}
+
+				ed.controlManager.setActive('visualblocks', !linkElm.disabled);
+			});
+
+			ed.addButton('visualblocks', {title : 'visualblocks.desc', cmd : 'mceVisualBlocks'});
+
+			ed.onInit.add(function() {
+				if (ed.settings.visualblocks_default_state) {
+					ed.execCommand('mceVisualBlocks');
+				}
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Visual blocks',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('visualblocks', tinymce.plugins.VisualBlocks);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js
new file mode 100644
index 0000000..1a148e8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http:/ [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js
new file mode 100644
index 0000000..0e3572e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js
@@ -0,0 +1,83 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.VisualChars', {
+		init : function(ed, url) {
+			var t = this;
+
+			t.editor = ed;
+
+			// Register commands
+			ed.addCommand('mceVisualChars', t._toggleVisualChars, t);
+
+			// Register buttons
+			ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'});
+
+			ed.onBeforeGetContent.add(function(ed, o) {
+				if (t.state && o.format != 'raw' && !o.draft) {
+					t.state = true;
+					t._toggleVisualChars(false);
+				}
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Visual characters',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		},
+
+		// Private methods
+
+		_toggleVisualChars : function(bookmark) {
+			var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo, div, bm;
+
+			t.state = !t.state;
+			ed.controlManager.setActive('visualchars', t.state);
+
+			if (bookmark)
+				bm = s.getBookmark();
+
+			if (t.state) {
+				nl = [];
+				tinymce.walk(b, function(n) {
+					if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1)
+						nl.push(n);
+				}, 'childNodes');
+
+				for (i = 0; i < nl.length; i++) {
+					nv = nl[i].nodeValue;
+					nv = nv.replace(/(\u00a0)/g, '<span data-mce-bogus="1" class="mceItemHidden mceItemNbsp">$1</span>');
+
+					div = ed.dom.create('div', null, nv);
+					while (node = div.lastChild)
+						ed.dom.insertAfter(node, nl[i]);
+
+					ed.dom.remove(nl[i]);
+				}
+			} else {
+				nl = ed.dom.select('span.mceItemNbsp', b);
+
+				for (i = nl.length - 1; i >= 0; i--)
+					ed.dom.remove(nl[i], 1);
+			}
+
+			s.moveToBookmark(bm);
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js
new file mode 100644
index 0000000..42ece20
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.WordCount",{block:0,id:null,countre:null,cleanre:null,init:function(c,d){var e=this,f=0,g=tinymce.VK;e.countre=c.getParam("wordcount_countregex",/[\w\u2019\'-]+/g);e.cleanre=c.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g);e.update_rate=c.getParam("wordcount_update_rate",2000);e.update_on_delete=c.getParam("wordcount_update_on_delete",false);e.id=c.id+"-word-count";c.onPostRender.add(function(i,h){var j,k;k=i.getParam("wordc [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js
new file mode 100644
index 0000000..3fb8fff
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js
@@ -0,0 +1,122 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.WordCount', {
+		block : 0,
+		id : null,
+		countre : null,
+		cleanre : null,
+
+		init : function(ed, url) {
+			var t = this, last = 0, VK = tinymce.VK;
+
+			t.countre = ed.getParam('wordcount_countregex', /[\w\u2019\'-]+/g); // u2019 == ’
+			t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g);
+			t.update_rate = ed.getParam('wordcount_update_rate', 2000);
+			t.update_on_delete = ed.getParam('wordcount_update_on_delete', false);
+			t.id = ed.id + '-word-count';
+
+			ed.onPostRender.add(function(ed, cm) {
+				var row, id;
+
+				// Add it to the specified id or the theme advanced path
+				id = ed.getParam('wordcount_target_id');
+				if (!id) {
+					row = tinymce.DOM.get(ed.id + '_path_row');
+
+					if (row)
+						tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'}, ed.getLang('wordcount.words', 'Words: ') + '<span id="' + t.id + '">0</span>');
+				} else {
+					tinymce.DOM.add(id, 'span', {}, '<span id="' + t.id + '">0</span>');
+				}
+			});
+
+			ed.onInit.add(function(ed) {
+				ed.selection.onSetContent.add(function() {
+					t._count(ed);
+				});
+
+				t._count(ed);
+			});
+
+			ed.onSetContent.add(function(ed) {
+				t._count(ed);
+			});
+
+			function checkKeys(key) {
+				return key !== last && (key === VK.ENTER || last === VK.SPACEBAR || checkDelOrBksp(last));
+			}
+
+			function checkDelOrBksp(key) {
+				return key === VK.DELETE || key === VK.BACKSPACE;
+			}
+
+			ed.onKeyUp.add(function(ed, e) {
+				if (checkKeys(e.keyCode) || t.update_on_delete && checkDelOrBksp(e.keyCode)) {
+					t._count(ed);
+				}
+
+				last = e.keyCode;
+			});
+		},
+
+		_getCount : function(ed) {
+			var tc = 0;
+			var tx = ed.getContent({ format: 'raw' });
+
+			if (tx) {
+					tx = tx.replace(/\.\.\./g, ' '); // convert ellipses to spaces
+					tx = tx.replace(/<.[^<>]*?>/g, ' ').replace(/ | /gi, ' '); // remove html tags and space chars
+
+					// deal with html entities
+					tx = tx.replace(/(\w+)(&.+?;)+(\w+)/, "$1$3").replace(/&.+?;/g, ' ');
+					tx = tx.replace(this.cleanre, ''); // remove numbers and punctuation
+
+					var wordArray = tx.match(this.countre);
+					if (wordArray) {
+							tc = wordArray.length;
+					}
+			}
+
+			return tc;
+		},
+
+		_count : function(ed) {
+			var t = this;
+
+			// Keep multiple calls from happening at the same time
+			if (t.block)
+				return;
+
+			t.block = 1;
+
+			setTimeout(function() {
+				if (!ed.destroyed) {
+					var tc = t._getCount(ed);
+					tinymce.DOM.setHTML(t.id, tc.toString());
+					setTimeout(function() {t.block = 0;}, t.update_rate);
+				}
+			}, 1);
+		},
+
+		getInfo: function() {
+			return {
+				longname : 'Word Count plugin',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	tinymce.PluginManager.add('wordcount', tinymce.plugins.WordCount);
+})();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm
new file mode 100644
index 0000000..d410218
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#xhtmlxtras_dlg.title_abbr_element}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/element_common.js"></script>
+	<script type="text/javascript" src="js/abbr.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+</head>
+<body style="display: none" role="application" aria-labelledby="app_title">
+<span style="display:none;" id="app_title">{#xhtmlxtras_dlg.title_abbr_element}</span>
+<form onsubmit="insertAbbr();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{#not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="style">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{#not_set}</option> 
+								<option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> 
+								<option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
+
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAbbr();" style="display: none;" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm
new file mode 100644
index 0000000..12b189b
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#xhtmlxtras_dlg.title_acronym_element}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/element_common.js"></script>
+	<script type="text/javascript" src="js/acronym.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+</head>
+<body style="display: none" role="application" aria-labelledby="app_title">
+<span style="display:none;" id="app_title">{#xhtmlxtras_dlg.title_acronym_element}</span>
+<form onsubmit="insertAcronym();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{#not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="style">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{#not_set}</option> 
+								<option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> 
+								<option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
+
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAcronym();" style="display: none;" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm
new file mode 100644
index 0000000..d84f378
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#xhtmlxtras_dlg.attribs_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="js/attributes.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/attributes.css" />
+</head>
+<body style="display: none" role="application" aria-labelledby="app_title">
+<span style="display:none;" id="app_title">{#xhtmlxtras_dlg.attribs_title}</span>
+<form onsubmit="insertAction();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_attrib_tab}</a></span></li>
+			<li id="events_tab" aria-controls="events_panel"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_events_tab}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.attribute_attrib_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="mceFocus" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" /></td> 
+					</tr>
+					<tr>
+						<td><label id="classlabel" for="classlist">{#class_name}</label></td>
+						<td>
+							<select id="classlist" name="classlist" class="mceEditableSelect">
+								<option value="" selected="selected">{#not_set}</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="style">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir"> 
+								<option value="">{#not_set}</option> 
+								<option value="ltr">{#xhtmlxtras_dlg.option_ltr}</option> 
+								<option value="rtl">{#xhtmlxtras_dlg.option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" />
+						</td> 
+					</tr>
+					<tr>
+							<td><label id="tabindexlabel" for="tabindex">{#xhtmlxtras_dlg.attribute_label_tabindex}</label></td>
+							<td><input type="text" id="tabindex" name="tabindex" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="accesskeylabel" for="accesskey">{#xhtmlxtras_dlg.attribute_label_accesskey}</label></td>
+							<td><input type="text" id="accesskey" name="accesskey" value="" /></td>
+						</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.attribute_events_tab}</legend>
+
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#insert}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm
new file mode 100644
index 0000000..ab61b33
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#xhtmlxtras_dlg.title_cite_element}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/element_common.js"></script>
+	<script type="text/javascript" src="js/cite.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+</head>
+<body style="display: none" role="application" aria-labelledby="app_title">
+<span style="display:none;" id="app_title">{#xhtmlxtras_dlg.title_cite_element}</span>
+<form onsubmit="insertCite();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{#not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{#not_set}</option> 
+								<option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> 
+								<option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
+
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeCite();" style="display: none;" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css
new file mode 100644
index 0000000..85b1b37
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css
@@ -0,0 +1,11 @@
+.panel_wrapper div.current {
+	height: 290px;
+}
+
+#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey {
+	width: 200px;
+}
+
+#events_panel input {
+	width: 200px;
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css
new file mode 100644
index 0000000..034b985
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css
@@ -0,0 +1,9 @@
+input.field, select.field {width:200px;}
+input.picker {width:179px; margin-left: 5px;}
+input.disabled {border-color:#F2F2F2;}
+img.picker {vertical-align:text-bottom; cursor:pointer;}
+h1 {padding: 0 0 5px 0;}
+.panel_wrapper div.current {height:160px;}
+#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;}
+a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;}
+#datetime {width:180px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm
new file mode 100644
index 0000000..e3f34c7
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#xhtmlxtras_dlg.title_del_element}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/element_common.js"></script>
+	<script type="text/javascript" src="js/del.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+</head>
+<body id="xhtmlxtrasins" style="display: none" role="application" aria-labelledby="app_title">
+<span style="display:none;" id="app_title">{#xhtmlxtras_dlg.title_del_element}</span>
+<form onsubmit="insertDel();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td>
+						<td>
+							<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+								<tr> 
+									<td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> 
+									<td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse" role="button" aria-labelledby="datetimelabel"><span class="datetime" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td>
+						<td><input id="cite" name="cite" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{#not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="style">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{#not_set}</option> 
+								<option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> 
+								<option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
+
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeDel();" style="display: none;" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
new file mode 100644
index 0000000..9b98a51
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.XHTMLXtrasPlugin",{init:function(a,b){a.addCommand("mceCite",function(){a.windowManager.open({file:b+"/cite.htm",width:350+parseInt(a.getLang("xhtmlxtras.cite_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.cite_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAcronym",function(){a.windowManager.open({file:b+"/acronym.htm",width:350+parseInt(a.getLang("xhtmlxtras.acronym_delta_width",0)),height:250+parseInt(a.getLang("x [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
new file mode 100644
index 0000000..a9c12ef
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
@@ -0,0 +1,132 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {
+		init : function(ed, url) {
+			// Register commands
+			ed.addCommand('mceCite', function() {
+				ed.windowManager.open({
+					file : url + '/cite.htm',
+					width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),
+					height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			ed.addCommand('mceAcronym', function() {
+				ed.windowManager.open({
+					file : url + '/acronym.htm',
+					width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
+					height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			ed.addCommand('mceAbbr', function() {
+				ed.windowManager.open({
+					file : url + '/abbr.htm',
+					width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
+					height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			ed.addCommand('mceDel', function() {
+				ed.windowManager.open({
+					file : url + '/del.htm',
+					width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
+					height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			ed.addCommand('mceIns', function() {
+				ed.windowManager.open({
+					file : url + '/ins.htm',
+					width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
+					height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			ed.addCommand('mceAttributes', function() {
+				ed.windowManager.open({
+					file : url + '/attributes.htm',
+					width : 380 + parseInt(ed.getLang('xhtmlxtras.attr_delta_width', 0)),
+					height : 370 + parseInt(ed.getLang('xhtmlxtras.attr_delta_height', 0)),
+					inline : 1
+				}, {
+					plugin_url : url
+				});
+			});
+
+			// Register buttons
+			ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});
+			ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});
+			ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});
+			ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});
+			ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});
+			ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});
+
+			ed.onNodeChange.add(function(ed, cm, n, co) {
+				n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');
+
+				cm.setDisabled('cite', co);
+				cm.setDisabled('acronym', co);
+				cm.setDisabled('abbr', co);
+				cm.setDisabled('del', co);
+				cm.setDisabled('ins', co);
+				cm.setDisabled('attribs', n && n.nodeName == 'BODY');
+				cm.setActive('cite', 0);
+				cm.setActive('acronym', 0);
+				cm.setActive('abbr', 0);
+				cm.setActive('del', 0);
+				cm.setActive('ins', 0);
+
+				// Activate all
+				if (n) {
+					do {
+						cm.setDisabled(n.nodeName.toLowerCase(), 0);
+						cm.setActive(n.nodeName.toLowerCase(), 1);
+					} while (n = n.parentNode);
+				}
+			});
+
+			ed.onPreInit.add(function() {
+				// Fixed IE issue where it can't handle these elements correctly
+				ed.dom.create('abbr');
+			});
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'XHTML Xtras Plugin',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm
new file mode 100644
index 0000000..226e605
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#xhtmlxtras_dlg.title_ins_element}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script type="text/javascript" src="js/element_common.js"></script>
+	<script type="text/javascript" src="js/ins.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+</head>
+<body id="xhtmlxtrasins" style="display: none" role="application" aria-labelledby="app_title">
+<span style="display:none;" id="app_title">{#xhtmlxtras_dlg.title_ins_element}</span>
+<form onsubmit="insertIns();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td> 
+						<td>
+							<table role="presentation" border="0" cellspacing="0" cellpadding="0">
+								<tr> 
+									<td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> 
+									<td ><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse" role="button" aria-labelledby="datetimelabel"><span class="datetime" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+					<tr >
+						<td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td> 
+						<td><input id="cite" name="cite" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td  class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{#not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="style">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{#not_set}</option> 
+								<option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> 
+								<option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
+
+				<table role="presentation" border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeIns();" style="display: none;" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js
new file mode 100644
index 0000000..1790e83
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js
@@ -0,0 +1,28 @@
+/**
+ * abbr.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+function init() {
+	SXE.initElementDialog('abbr');
+	if (SXE.currentAction == "update") {
+		SXE.showRemoveButton();
+	}
+}
+
+function insertAbbr() {
+	SXE.insertElement('abbr');
+	tinyMCEPopup.close();
+}
+
+function removeAbbr() {
+	SXE.removeElement('abbr');
+	tinyMCEPopup.close();
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js
new file mode 100644
index 0000000..93b8d25
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js
@@ -0,0 +1,28 @@
+/**
+ * acronym.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+function init() {
+	SXE.initElementDialog('acronym');
+	if (SXE.currentAction == "update") {
+		SXE.showRemoveButton();
+	}
+}
+
+function insertAcronym() {
+	SXE.insertElement('acronym');
+	tinyMCEPopup.close();
+}
+
+function removeAcronym() {
+	SXE.removeElement('acronym');
+	tinyMCEPopup.close();
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js
new file mode 100644
index 0000000..9e9b07e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js
@@ -0,0 +1,111 @@
+/**
+ * attributes.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+	var inst = tinyMCEPopup.editor;
+	var dom = inst.dom;
+	var elm = inst.selection.getNode();
+	var f = document.forms[0];
+	var onclick = dom.getAttrib(elm, 'onclick');
+
+	setFormValue('title', dom.getAttrib(elm, 'title'));
+	setFormValue('id', dom.getAttrib(elm, 'id'));
+	setFormValue('style', dom.getAttrib(elm, "style"));
+	setFormValue('dir', dom.getAttrib(elm, 'dir'));
+	setFormValue('lang', dom.getAttrib(elm, 'lang'));
+	setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
+	setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
+	setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));
+	setFormValue('onblur', dom.getAttrib(elm, 'onblur'));
+	setFormValue('onclick', onclick);
+	setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));
+	setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));
+	setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));
+	setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));
+	setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));
+	setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));
+	setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));
+	setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));
+	setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));
+	className = dom.getAttrib(elm, 'class');
+
+	addClassesToList('classlist', 'advlink_styles');
+	selectByValue(f, 'classlist', className, true);
+
+	TinyMCE_EditableSelects.init();
+}
+
+function setFormValue(name, value) {
+	if(value && document.forms[0].elements[name]){
+		document.forms[0].elements[name].value = value;
+	}
+}
+
+function insertAction() {
+	var inst = tinyMCEPopup.editor;
+	var elm = inst.selection.getNode();
+
+	setAllAttribs(elm);
+	tinyMCEPopup.execCommand("mceEndUndoLevel");
+	tinyMCEPopup.close();
+}
+
+function setAttrib(elm, attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib.toLowerCase()];
+	var inst = tinyMCEPopup.editor;
+	var dom = inst.dom;
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	dom.setAttrib(elm, attrib.toLowerCase(), value);
+}
+
+function setAllAttribs(elm) {
+	var f = document.forms[0];
+
+	setAttrib(elm, 'title');
+	setAttrib(elm, 'id');
+	setAttrib(elm, 'style');
+	setAttrib(elm, 'class', getSelectValue(f, 'classlist'));
+	setAttrib(elm, 'dir');
+	setAttrib(elm, 'lang');
+	setAttrib(elm, 'tabindex');
+	setAttrib(elm, 'accesskey');
+	setAttrib(elm, 'onfocus');
+	setAttrib(elm, 'onblur');
+	setAttrib(elm, 'onclick');
+	setAttrib(elm, 'ondblclick');
+	setAttrib(elm, 'onmousedown');
+	setAttrib(elm, 'onmouseup');
+	setAttrib(elm, 'onmouseover');
+	setAttrib(elm, 'onmousemove');
+	setAttrib(elm, 'onmouseout');
+	setAttrib(elm, 'onkeypress');
+	setAttrib(elm, 'onkeydown');
+	setAttrib(elm, 'onkeyup');
+
+	// Refresh in old MSIE
+//	if (tinyMCE.isMSIE5)
+//		elm.outerHTML = elm.outerHTML;
+}
+
+function insertAttribute() {
+	tinyMCEPopup.close();
+}
+
+tinyMCEPopup.onInit.add(init);
+tinyMCEPopup.requireLangPack();
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js
new file mode 100644
index 0000000..b73ef47
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js
@@ -0,0 +1,28 @@
+/**
+ * cite.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+function init() {
+	SXE.initElementDialog('cite');
+	if (SXE.currentAction == "update") {
+		SXE.showRemoveButton();
+	}
+}
+
+function insertCite() {
+	SXE.insertElement('cite');
+	tinyMCEPopup.close();
+}
+
+function removeCite() {
+	SXE.removeElement('cite');
+	tinyMCEPopup.close();
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js
new file mode 100644
index 0000000..a5397f7
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js
@@ -0,0 +1,53 @@
+/**
+ * del.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+function init() {
+	SXE.initElementDialog('del');
+	if (SXE.currentAction == "update") {
+		setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));
+		setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));
+		SXE.showRemoveButton();
+	}
+}
+
+function setElementAttribs(elm) {
+	setAllCommonAttribs(elm);
+	setAttrib(elm, 'datetime');
+	setAttrib(elm, 'cite');
+	elm.removeAttribute('data-mce-new');
+}
+
+function insertDel() {
+	var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL');
+
+	if (elm == null) {
+		var s = SXE.inst.selection.getContent();
+		if(s.length > 0) {
+			insertInlineElement('del');
+			var elementArray = SXE.inst.dom.select('del[data-mce-new]');
+			for (var i=0; i<elementArray.length; i++) {
+				var elm = elementArray[i];
+				setElementAttribs(elm);
+			}
+		}
+	} else {
+		setElementAttribs(elm);
+	}
+	tinyMCEPopup.editor.nodeChanged();
+	tinyMCEPopup.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function removeDel() {
+	SXE.removeElement('del');
+	tinyMCEPopup.close();
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js
new file mode 100644
index 0000000..6df1b77
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js
@@ -0,0 +1,229 @@
+/**
+ * element_common.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+tinyMCEPopup.requireLangPack();
+
+function initCommonAttributes(elm) {
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
+
+	// Setup form data for common element attributes
+	setFormValue('title', dom.getAttrib(elm, 'title'));
+	setFormValue('id', dom.getAttrib(elm, 'id'));
+	selectByValue(formObj, 'class', dom.getAttrib(elm, 'class'), true);
+	setFormValue('style', dom.getAttrib(elm, 'style'));
+	selectByValue(formObj, 'dir', dom.getAttrib(elm, 'dir'));
+	setFormValue('lang', dom.getAttrib(elm, 'lang'));
+	setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));
+	setFormValue('onblur', dom.getAttrib(elm, 'onblur'));
+	setFormValue('onclick', dom.getAttrib(elm, 'onclick'));
+	setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));
+	setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));
+	setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));
+	setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));
+	setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));
+	setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));
+	setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));
+	setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));
+	setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));
+}
+
+function setFormValue(name, value) {
+	if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value;
+}
+
+function insertDateTime(id) {
+	document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S");
+}
+
+function getDateTime(d, fmt) {
+	fmt = fmt.replace("%D", "%m/%d/%y");
+	fmt = fmt.replace("%r", "%I:%M:%S %p");
+	fmt = fmt.replace("%Y", "" + d.getFullYear());
+	fmt = fmt.replace("%y", "" + d.getYear());
+	fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
+	fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
+	fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
+	fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
+	fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
+	fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
+	fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
+	fmt = fmt.replace("%%", "%");
+
+	return fmt;
+}
+
+function addZeros(value, len) {
+	var i;
+
+	value = "" + value;
+
+	if (value.length < len) {
+		for (i=0; i<(len-value.length); i++)
+			value = "0" + value;
+	}
+
+	return value;
+}
+
+function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
+	if (!form_obj || !form_obj.elements[field_name])
+		return;
+
+	var sel = form_obj.elements[field_name];
+
+	var found = false;
+	for (var i=0; i<sel.options.length; i++) {
+		var option = sel.options[i];
+
+		if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
+			option.selected = true;
+			found = true;
+		} else
+			option.selected = false;
+	}
+
+	if (!found && add_custom && value != '') {
+		var option = new Option('Value: ' + value, value);
+		option.selected = true;
+		sel.options[sel.options.length] = option;
+	}
+
+	return found;
+}
+
+function setAttrib(elm, attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib.toLowerCase()];
+	tinyMCEPopup.editor.dom.setAttrib(elm, attrib, value || valueElm.value);
+}
+
+function setAllCommonAttribs(elm) {
+	setAttrib(elm, 'title');
+	setAttrib(elm, 'id');
+	setAttrib(elm, 'class');
+	setAttrib(elm, 'style');
+	setAttrib(elm, 'dir');
+	setAttrib(elm, 'lang');
+	/*setAttrib(elm, 'onfocus');
+	setAttrib(elm, 'onblur');
+	setAttrib(elm, 'onclick');
+	setAttrib(elm, 'ondblclick');
+	setAttrib(elm, 'onmousedown');
+	setAttrib(elm, 'onmouseup');
+	setAttrib(elm, 'onmouseover');
+	setAttrib(elm, 'onmousemove');
+	setAttrib(elm, 'onmouseout');
+	setAttrib(elm, 'onkeypress');
+	setAttrib(elm, 'onkeydown');
+	setAttrib(elm, 'onkeyup');*/
+}
+
+SXE = {
+	currentAction : "insert",
+	inst : tinyMCEPopup.editor,
+	updateElement : null
+}
+
+SXE.focusElement = SXE.inst.selection.getNode();
+
+SXE.initElementDialog = function(element_name) {
+	addClassesToList('class', 'xhtmlxtras_styles');
+	TinyMCE_EditableSelects.init();
+
+	element_name = element_name.toLowerCase();
+	var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());
+	if (elm != null && elm.nodeName.toUpperCase() == element_name.toUpperCase()) {
+		SXE.currentAction = "update";
+	}
+
+	if (SXE.currentAction == "update") {
+		initCommonAttributes(elm);
+		SXE.updateElement = elm;
+	}
+
+	document.forms[0].insert.value = tinyMCEPopup.getLang(SXE.currentAction, 'Insert', true); 
+}
+
+SXE.insertElement = function(element_name) {
+	var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()), h, tagName;
+
+	if (elm == null) {
+		var s = SXE.inst.selection.getContent();
+		if(s.length > 0) {
+			tagName = element_name;
+
+			insertInlineElement(element_name);
+			var elementArray = tinymce.grep(SXE.inst.dom.select(element_name));
+			for (var i=0; i<elementArray.length; i++) {
+				var elm = elementArray[i];
+
+				if (SXE.inst.dom.getAttrib(elm, 'data-mce-new')) {
+					elm.id = '';
+					elm.setAttribute('id', '');
+					elm.removeAttribute('id');
+					elm.removeAttribute('data-mce-new');
+
+					setAllCommonAttribs(elm);
+				}
+			}
+		}
+	} else {
+		setAllCommonAttribs(elm);
+	}
+	SXE.inst.nodeChanged();
+	tinyMCEPopup.execCommand('mceEndUndoLevel');
+}
+
+SXE.removeElement = function(element_name){
+	element_name = element_name.toLowerCase();
+	elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());
+	if(elm && elm.nodeName.toUpperCase() == element_name.toUpperCase()){
+		tinyMCE.execCommand('mceRemoveNode', false, elm);
+		SXE.inst.nodeChanged();
+		tinyMCEPopup.execCommand('mceEndUndoLevel');
+	}
+}
+
+SXE.showRemoveButton = function() {
+		document.getElementById("remove").style.display = '';
+}
+
+SXE.containsClass = function(elm,cl) {
+	return (elm.className.indexOf(cl) > -1) ? true : false;
+}
+
+SXE.removeClass = function(elm,cl) {
+	if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {
+		return true;
+	}
+	var classNames = elm.className.split(" ");
+	var newClassNames = "";
+	for (var x = 0, cnl = classNames.length; x < cnl; x++) {
+		if (classNames[x] != cl) {
+			newClassNames += (classNames[x] + " ");
+		}
+	}
+	elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end
+}
+
+SXE.addClass = function(elm,cl) {
+	if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;
+	return true;
+}
+
+function insertInlineElement(en) {
+	var ed = tinyMCEPopup.editor, dom = ed.dom;
+
+	ed.getDoc().execCommand('FontName', false, 'mceinline');
+	tinymce.each(dom.select('span,font'), function(n) {
+		if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
+			dom.replace(dom.create(en, {'data-mce-new' : 1}), n, 1);
+	});
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js
new file mode 100644
index 0000000..71a8a26
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js
@@ -0,0 +1,53 @@
+/**
+ * ins.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+function init() {
+	SXE.initElementDialog('ins');
+	if (SXE.currentAction == "update") {
+		setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));
+		setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));
+		SXE.showRemoveButton();
+	}
+}
+
+function setElementAttribs(elm) {
+	setAllCommonAttribs(elm);
+	setAttrib(elm, 'datetime');
+	setAttrib(elm, 'cite');
+	elm.removeAttribute('data-mce-new');
+}
+
+function insertIns() {
+	var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS');
+
+	if (elm == null) {
+		var s = SXE.inst.selection.getContent();
+		if(s.length > 0) {
+			insertInlineElement('ins');
+			var elementArray = SXE.inst.dom.select('ins[data-mce-new]');
+			for (var i=0; i<elementArray.length; i++) {
+				var elm = elementArray[i];
+				setElementAttribs(elm);
+			}
+		}
+	} else {
+		setElementAttribs(elm);
+	}
+	tinyMCEPopup.editor.nodeChanged();
+	tinyMCEPopup.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function removeIns() {
+	SXE.removeElement('ins');
+	tinyMCEPopup.close();
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
new file mode 100644
index 0000000..c4569f8
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.xhtmlxtras_dlg',{"attribs_title":"Insert/Edit Attributes","option_rtl":"Right to Left","option_ltr":"Left to Right","insert_date":"Insert Current Date/Time",remove:"Remove","title_cite_element":"Citation Element","title_abbr_element":"Abbreviation Element","title_acronym_element":"Acronym Element","title_del_element":"Deletion Element","title_ins_element":"Insertion Element","fieldset_events_tab":"Element Events","fieldset_attrib_tab":"Element Attributes","fieldset_ge [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/about.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/about.htm
new file mode 100644
index 0000000..fe36603
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/about.htm
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advanced_dlg.about_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="js/about.js"></script>
+</head>
+<body id="about" style="display: none">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current" aria-controls="general_panel"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.about_general}</a></span></li>
+				<li id="help_tab" style="display:none" aria-hidden="true" aria-controls="help_panel"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{#advanced_dlg.about_help}</a></span></li>
+				<li id="plugins_tab" aria-controls="plugins_panel"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{#advanced_dlg.about_plugins}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<h3>{#advanced_dlg.about_title}</h3>
+				<p>Version: <span id="version"></span> (<span id="date"></span>)</p>
+				<p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>
+				by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>
+				<p>Copyright © 2003-2008, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>
+				<p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>
+
+				<div id="buttoncontainer">
+					<a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a>
+				</div>
+			</div>
+
+			<div id="plugins_panel" class="panel">
+				<div id="pluginscontainer">
+					<h3>{#advanced_dlg.about_loaded}</h3>
+
+					<div id="plugintablecontainer">
+					</div>
+
+					<p> </p>
+				</div>
+			</div>
+
+			<div id="help_panel" class="panel noscroll" style="overflow: visible;">
+				<div id="iframecontainer"></div>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<input type="button" id="cancel" name="cancel" value="{#close}" onclick="tinyMCEPopup.close();" />
+		</div>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm
new file mode 100644
index 0000000..dc53312
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advanced_dlg.anchor_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/anchor.js"></script>
+</head>
+<body style="display: none" role="application" aria-labelledby="app_title">
+<form onsubmit="AnchorDialog.update();return false;" action="#">
+	<table border="0" cellpadding="4" cellspacing="0" role="presentation">
+		<tr>
+			<td colspan="2" class="title" id="app_title">{#advanced_dlg.anchor_title}</td>
+		</tr>
+		<tr>
+			<td class="nowrap"><label for="anchorName">{#advanced_dlg.anchor_name}:</label></td>
+			<td><input name="anchorName" type="text" class="mceFocus" id="anchorName" value="" style="width: 200px" aria-required="true" /></td>
+		</tr>
+	</table>
+
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm
new file mode 100644
index 0000000..12acfe1
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advanced_dlg.charmap_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/charmap.js"></script>
+</head>
+<body id="charmap" style="display:none" role="application">
+<table align="center" border="0" cellspacing="0" cellpadding="2" role="presentation">
+	<tr>
+		<td colspan="2" class="title" ><label for="charmapView" id="charmap_label">{#advanced_dlg.charmap_title}</label></td>
+	</tr>
+	<tr>
+		<td id="charmapView" rowspan="2" align="left" valign="top">
+			<!-- Chars will be rendered here -->
+		</td>
+		<td width="100" align="center" valign="top">
+			<table border="0" cellpadding="0" cellspacing="0" width="100" style="height:100px" role="presentation">
+				<tr>
+					<td id="codeV"> </td>
+				</tr>
+				<tr>
+					<td id="codeN"> </td>
+				</tr>
+			</table>
+		</td>
+	</tr>
+	<tr>
+		<td valign="bottom" style="padding-bottom: 3px;">
+			<table width="100" align="center" border="0" cellpadding="2" cellspacing="0" role="presentation">
+				<tr>
+					<td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;"><label for="codeA">HTML-Code</label></td>
+				</tr>
+				<tr>
+					<td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center"> </td>
+				</tr>
+				<tr>
+					<td style="font-size: 1px;"> </td>
+				</tr>
+				<tr>
+					<td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;"><label for="codeB">NUM-Code</label></td>
+				</tr>
+				<tr>
+					<td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center"> </td>
+				</tr>
+			</table>
+		</td>
+	</tr>
+	<tr>
+		<td colspan="2" id="charmap_usage">{#advanced_dlg.charmap_usage}</td>
+	</tr>
+	
+</table>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm
new file mode 100644
index 0000000..e7f19ab
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advanced_dlg.colorpicker_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="js/color_picker.js"></script>
+</head>
+<body id="colorpicker" style="display: none" role="application" aria-labelledby="app_label">
+	<span class="mceVoiceLabel" id="app_label" style="display:none;">{#advanced_dlg.colorpicker_title}</span>
+<form onsubmit="insertAction();return false" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="picker_tab" aria-controls="picker_panel" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_picker_tab}</a></span></li>
+			<li id="rgb_tab" aria-controls="rgb_panel"><span><a href="javascript:;" onclick="mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_palette_tab}</a></span></li>
+			<li id="named_tab" aria-controls="named_panel"><span><a  href="javascript:;" onclick="javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_named_tab}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="picker_panel" class="panel current">
+			<fieldset>
+				<legend>{#advanced_dlg.colorpicker_picker_title}</legend>
+				<div id="picker">
+					<img id="colors" src="img/colorpicker.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" alt="" />
+
+					<div id="light">
+						<!-- Will be filled with divs -->
+					</div>
+
+					<br style="clear: both" />
+				</div>
+			</fieldset>
+		</div>
+
+		<div id="rgb_panel" class="panel">
+			<fieldset>
+				<legend id="webcolors_title">{#advanced_dlg.colorpicker_palette_title}</legend>
+				<div id="webcolors">
+					<!-- Gets filled with web safe colors-->
+				</div>
+
+				<br style="clear: both" />
+			</fieldset>
+		</div>
+
+		<div id="named_panel" class="panel">
+			<fieldset id="named_picker_label">
+				<legend id="named_title">{#advanced_dlg.colorpicker_named_title}</legend>
+				<div id="namedcolors" role="listbox" tabindex="0" aria-labelledby="named_picker_label">
+					<!-- Gets filled with named colors-->
+				</div>
+
+				<br style="clear: both" />
+
+				<div id="colornamecontainer">
+					{#advanced_dlg.colorpicker_name} <span id="colorname"></span>
+				</div>
+			</fieldset>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#apply}" />
+
+		<div id="preview"></div>
+
+		<div id="previewblock">
+			<label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" class="text mceFocus" aria-required="true" />
+		</div>
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js
new file mode 100644
index 0000000..99ea8b9
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js
@@ -0,0 +1 @@
+(function(h){var i=h.DOM,g=h.dom.Event,c=h.extend,f=h.each,a=h.util.Cookie,e,d=h.explode;function b(m,k){var q,p=m.dom,n="",o,l;previewStyles=m.settings.preview_styles;if(previewStyles===false){return""}if(!previewStyles){previewStyles="font-family font-size font-weight text-decoration text-transform color background-color"}function j(r){return r.replace(/%(\w+)/g,"")}name=k.block||k.inline||"span";q=p.create(name);f(k.styles,function(s,r){s=j(s);if(s){p.setStyle(q,r,s)}});f(k.attributes [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js
new file mode 100644
index 0000000..68c237f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js
@@ -0,0 +1,1467 @@
+/**
+ * editor_template_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function(tinymce) {
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;
+
+	// Generates a preview for a format
+	function getPreviewCss(ed, fmt) {
+		var previewElm, dom = ed.dom, previewCss = '', parentFontSize, previewStylesName;
+
+		previewStyles = ed.settings.preview_styles;
+
+		// No preview forced
+		if (previewStyles === false)
+			return '';
+
+		// Default preview
+		if (!previewStyles)
+			previewStyles = 'font-family font-size font-weight text-decoration text-transform color background-color';
+
+		// Removes any variables since these can't be previewed
+		function removeVars(val) {
+			return val.replace(/%(\w+)/g, '');
+		};
+
+		// Create block/inline element to use for preview
+		name = fmt.block || fmt.inline || 'span';
+		previewElm = dom.create(name);
+
+		// Add format styles to preview element
+		each(fmt.styles, function(value, name) {
+			value = removeVars(value);
+
+			if (value)
+				dom.setStyle(previewElm, name, value);
+		});
+
+		// Add attributes to preview element
+		each(fmt.attributes, function(value, name) {
+			value = removeVars(value);
+
+			if (value)
+				dom.setAttrib(previewElm, name, value);
+		});
+
+		// Add classes to preview element
+		each(fmt.classes, function(value) {
+			value = removeVars(value);
+
+			if (!dom.hasClass(previewElm, value))
+				dom.addClass(previewElm, value);
+		});
+
+		// Add the previewElm outside the visual area
+		dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF});
+		ed.getBody().appendChild(previewElm);
+
+		// Get parent container font size so we can compute px values out of em/% for older IE:s
+		parentFontSize = dom.getStyle(ed.getBody(), 'fontSize', true);
+		parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;
+
+		each(previewStyles.split(' '), function(name) {
+			var value = dom.getStyle(previewElm, name, true);
+
+			// Old IE won't calculate the font size so we need to do that manually
+			if (name == 'font-size') {
+				if (/em|%$/.test(value)) {
+					if (parentFontSize === 0) {
+						return;
+					}
+
+					// Convert font size from em/% to px
+					value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1);
+					value = (value * parentFontSize) + 'px';
+				}
+			}
+
+			previewCss += name + ':' + value + ';';
+		});
+
+		dom.remove(previewElm);
+
+		return previewCss;
+	};
+
+	// Tell it to load theme specific language pack(s)
+	tinymce.ThemeManager.requireLangPack('advanced');
+
+	tinymce.create('tinymce.themes.AdvancedTheme', {
+		sizes : [8, 10, 12, 14, 18, 24, 36],
+
+		// Control name lookup, format: title, command
+		controls : {
+			bold : ['bold_desc', 'Bold'],
+			italic : ['italic_desc', 'Italic'],
+			underline : ['underline_desc', 'Underline'],
+			strikethrough : ['striketrough_desc', 'Strikethrough'],
+			justifyleft : ['justifyleft_desc', 'JustifyLeft'],
+			justifycenter : ['justifycenter_desc', 'JustifyCenter'],
+			justifyright : ['justifyright_desc', 'JustifyRight'],
+			justifyfull : ['justifyfull_desc', 'JustifyFull'],
+			bullist : ['bullist_desc', 'InsertUnorderedList'],
+			numlist : ['numlist_desc', 'InsertOrderedList'],
+			outdent : ['outdent_desc', 'Outdent'],
+			indent : ['indent_desc', 'Indent'],
+			cut : ['cut_desc', 'Cut'],
+			copy : ['copy_desc', 'Copy'],
+			paste : ['paste_desc', 'Paste'],
+			undo : ['undo_desc', 'Undo'],
+			redo : ['redo_desc', 'Redo'],
+			link : ['link_desc', 'mceLink'],
+			unlink : ['unlink_desc', 'unlink'],
+			image : ['image_desc', 'mceImage'],
+			cleanup : ['cleanup_desc', 'mceCleanup'],
+			help : ['help_desc', 'mceHelp'],
+			code : ['code_desc', 'mceCodeEditor'],
+			hr : ['hr_desc', 'InsertHorizontalRule'],
+			removeformat : ['removeformat_desc', 'RemoveFormat'],
+			sub : ['sub_desc', 'subscript'],
+			sup : ['sup_desc', 'superscript'],
+			forecolor : ['forecolor_desc', 'ForeColor'],
+			forecolorpicker : ['forecolor_desc', 'mceForeColor'],
+			backcolor : ['backcolor_desc', 'HiliteColor'],
+			backcolorpicker : ['backcolor_desc', 'mceBackColor'],
+			charmap : ['charmap_desc', 'mceCharMap'],
+			visualaid : ['visualaid_desc', 'mceToggleVisualAid'],
+			anchor : ['anchor_desc', 'mceInsertAnchor'],
+			newdocument : ['newdocument_desc', 'mceNewDocument'],
+			blockquote : ['blockquote_desc', 'mceBlockQuote']
+		},
+
+		stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],
+
+		init : function(ed, url) {
+			var t = this, s, v, o;
+	
+			t.editor = ed;
+			t.url = url;
+			t.onResolveName = new tinymce.util.Dispatcher(this);
+
+			ed.forcedHighContrastMode = ed.settings.detect_highcontrast && t._isHighContrast();
+			ed.settings.skin = ed.forcedHighContrastMode ? 'highcontrast' : ed.settings.skin;
+
+			// Default settings
+			t.settings = s = extend({
+				theme_advanced_path : true,
+				theme_advanced_toolbar_location : 'bottom',
+				theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",
+				theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",
+				theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",
+				theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6",
+				theme_advanced_toolbar_align : "center",
+				theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings; [...]
+				theme_advanced_more_colors : 1,
+				theme_advanced_row_height : 23,
+				theme_advanced_resize_horizontal : 1,
+				theme_advanced_resizing_use_cookie : 1,
+				theme_advanced_font_sizes : "1,2,3,4,5,6,7",
+				theme_advanced_font_selector : "span",
+				theme_advanced_show_current_color: 0,
+				readonly : ed.settings.readonly
+			}, ed.settings);
+
+			// Setup default font_size_style_values
+			if (!s.font_size_style_values)
+				s.font_size_style_values = "8pt,10pt,12pt,14pt,18pt,24pt,36pt";
+
+			if (tinymce.is(s.theme_advanced_font_sizes, 'string')) {
+				s.font_size_style_values = tinymce.explode(s.font_size_style_values);
+				s.font_size_classes = tinymce.explode(s.font_size_classes || '');
+
+				// Parse string value
+				o = {};
+				ed.settings.theme_advanced_font_sizes = s.theme_advanced_font_sizes;
+				each(ed.getParam('theme_advanced_font_sizes', '', 'hash'), function(v, k) {
+					var cl;
+
+					if (k == v && v >= 1 && v <= 7) {
+						k = v + ' (' + t.sizes[v - 1] + 'pt)';
+						cl = s.font_size_classes[v - 1];
+						v = s.font_size_style_values[v - 1] || (t.sizes[v - 1] + 'pt');
+					}
+
+					if (/^\s*\./.test(v))
+						cl = v.replace(/\./g, '');
+
+					o[k] = cl ? {'class' : cl} : {fontSize : v};
+				});
+
+				s.theme_advanced_font_sizes = o;
+			}
+
+			if ((v = s.theme_advanced_path_location) && v != 'none')
+				s.theme_advanced_statusbar_location = s.theme_advanced_path_location;
+
+			if (s.theme_advanced_statusbar_location == 'none')
+				s.theme_advanced_statusbar_location = 0;
+
+			if (ed.settings.content_css !== false)
+				ed.contentCSS.push(ed.baseURI.toAbsolute(url + "/skins/" + ed.settings.skin + "/content.css"));
+
+			// Init editor
+			ed.onInit.add(function() {
+				if (!ed.settings.readonly) {
+					ed.onNodeChange.add(t._nodeChanged, t);
+					ed.onKeyUp.add(t._updateUndoStatus, t);
+					ed.onMouseUp.add(t._updateUndoStatus, t);
+					ed.dom.bind(ed.dom.getRoot(), 'dragend', function() {
+						t._updateUndoStatus(ed);
+					});
+				}
+			});
+
+			ed.onSetProgressState.add(function(ed, b, ti) {
+				var co, id = ed.id, tb;
+
+				if (b) {
+					t.progressTimer = setTimeout(function() {
+						co = ed.getContainer();
+						co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild);
+						tb = DOM.get(ed.id + '_tbl');
+
+						DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}});
+						DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}});
+					}, ti || 0);
+				} else {
+					DOM.remove(id + '_blocker');
+					DOM.remove(id + '_progress');
+					clearTimeout(t.progressTimer);
+				}
+			});
+
+			DOM.loadCSS(s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : url + "/skins/" + ed.settings.skin + "/ui.css");
+
+			if (s.skin_variant)
+				DOM.loadCSS(url + "/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css");
+		},
+
+		_isHighContrast : function() {
+			var actualColor, div = DOM.add(DOM.getRoot(), 'div', {'style': 'background-color: rgb(171,239,86);'});
+
+			actualColor = (DOM.getStyle(div, 'background-color', true) + '').toLowerCase().replace(/ /g, '');
+			DOM.remove(div);
+
+			return actualColor != 'rgb(171,239,86)' && actualColor != '#abef56';
+		},
+
+		createControl : function(n, cf) {
+			var cd, c;
+
+			if (c = cf.createControl(n))
+				return c;
+
+			switch (n) {
+				case "styleselect":
+					return this._createStyleSelect();
+
+				case "formatselect":
+					return this._createBlockFormats();
+
+				case "fontselect":
+					return this._createFontSelect();
+
+				case "fontsizeselect":
+					return this._createFontSizeSelect();
+
+				case "forecolor":
+					return this._createForeColorMenu();
+
+				case "backcolor":
+					return this._createBackColorMenu();
+			}
+
+			if ((cd = this.controls[n]))
+				return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]});
+		},
+
+		execCommand : function(cmd, ui, val) {
+			var f = this['_' + cmd];
+
+			if (f) {
+				f.call(this, ui, val);
+				return true;
+			}
+
+			return false;
+		},
+
+		_importClasses : function(e) {
+			var ed = this.editor, ctrl = ed.controlManager.get('styleselect');
+
+			if (ctrl.getLength() == 0) {
+				each(ed.dom.getClasses(), function(o, idx) {
+					var name = 'style_' + idx, fmt;
+
+					fmt = {
+						inline : 'span',
+						attributes : {'class' : o['class']},
+						selector : '*'
+					};
+
+					ed.formatter.register(name, fmt);
+
+					ctrl.add(o['class'], name, {
+						style: function() {
+							return getPreviewCss(ed, fmt);
+						}
+					});
+				});
+			}
+		},
+
+		_createStyleSelect : function(n) {
+			var t = this, ed = t.editor, ctrlMan = ed.controlManager, ctrl;
+
+			// Setup style select box
+			ctrl = ctrlMan.createListBox('styleselect', {
+				title : 'advanced.style_select',
+				onselect : function(name) {
+					var matches, formatNames = [], removedFormat;
+
+					each(ctrl.items, function(item) {
+						formatNames.push(item.value);
+					});
+
+					ed.focus();
+					ed.undoManager.add();
+
+					// Toggle off the current format(s)
+					matches = ed.formatter.matchAll(formatNames);
+					tinymce.each(matches, function(match) {
+						if (!name || match == name) {
+							if (match)
+								ed.formatter.remove(match);
+
+							removedFormat = true;
+						}
+					});
+
+					if (!removedFormat)
+						ed.formatter.apply(name);
+
+					ed.undoManager.add();
+					ed.nodeChanged();
+
+					return false; // No auto select
+				}
+			});
+
+			// Handle specified format
+			ed.onPreInit.add(function() {
+				var counter = 0, formats = ed.getParam('style_formats');
+
+				if (formats) {
+					each(formats, function(fmt) {
+						var name, keys = 0;
+
+						each(fmt, function() {keys++;});
+
+						if (keys > 1) {
+							name = fmt.name = fmt.name || 'style_' + (counter++);
+							ed.formatter.register(name, fmt);
+							ctrl.add(fmt.title, name, {
+								style: function() {
+									return getPreviewCss(ed, fmt);
+								}
+							});
+						} else
+							ctrl.add(fmt.title);
+					});
+				} else {
+					each(ed.getParam('theme_advanced_styles', '', 'hash'), function(val, key) {
+						var name, fmt;
+
+						if (val) {
+							name = 'style_' + (counter++);
+							fmt = {
+								inline : 'span',
+								classes : val,
+								selector : '*'
+							};
+
+							ed.formatter.register(name, fmt);
+							ctrl.add(t.editor.translate(key), name, {
+								style: function() {
+									return getPreviewCss(ed, fmt);
+								}
+							});
+						}
+					});
+				}
+			});
+
+			// Auto import classes if the ctrl box is empty
+			if (ctrl.getLength() == 0) {
+				ctrl.onPostRender.add(function(ed, n) {
+					if (!ctrl.NativeListBox) {
+						Event.add(n.id + '_text', 'focus', t._importClasses, t);
+						Event.add(n.id + '_text', 'mousedown', t._importClasses, t);
+						Event.add(n.id + '_open', 'focus', t._importClasses, t);
+						Event.add(n.id + '_open', 'mousedown', t._importClasses, t);
+					} else
+						Event.add(n.id, 'focus', t._importClasses, t);
+				});
+			}
+
+			return ctrl;
+		},
+
+		_createFontSelect : function() {
+			var c, t = this, ed = t.editor;
+
+			c = ed.controlManager.createListBox('fontselect', {
+				title : 'advanced.fontdefault',
+				onselect : function(v) {
+					var cur = c.items[c.selectedIndex];
+
+					if (!v && cur) {
+						ed.execCommand('FontName', false, cur.value);
+						return;
+					}
+
+					ed.execCommand('FontName', false, v);
+
+					// Fake selection, execCommand will fire a nodeChange and update the selection
+					c.select(function(sv) {
+						return v == sv;
+					});
+
+					if (cur && cur.value == v) {
+						c.select(null);
+					}
+
+					return false; // No auto select
+				}
+			});
+
+			if (c) {
+				each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) {
+					c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''});
+				});
+			}
+
+			return c;
+		},
+
+		_createFontSizeSelect : function() {
+			var t = this, ed = t.editor, c, i = 0, cl = [];
+
+			c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', onselect : function(v) {
+				var cur = c.items[c.selectedIndex];
+
+				if (!v && cur) {
+					cur = cur.value;
+
+					if (cur['class']) {
+						ed.formatter.toggle('fontsize_class', {value : cur['class']});
+						ed.undoManager.add();
+						ed.nodeChanged();
+					} else {
+						ed.execCommand('FontSize', false, cur.fontSize);
+					}
+
+					return;
+				}
+
+				if (v['class']) {
+					ed.focus();
+					ed.undoManager.add();
+					ed.formatter.toggle('fontsize_class', {value : v['class']});
+					ed.undoManager.add();
+					ed.nodeChanged();
+				} else
+					ed.execCommand('FontSize', false, v.fontSize);
+
+				// Fake selection, execCommand will fire a nodeChange and update the selection
+				c.select(function(sv) {
+					return v == sv;
+				});
+
+				if (cur && (cur.value.fontSize == v.fontSize || cur.value['class'] && cur.value['class'] == v['class'])) {
+					c.select(null);
+				}
+
+				return false; // No auto select
+			}});
+
+			if (c) {
+				each(t.settings.theme_advanced_font_sizes, function(v, k) {
+					var fz = v.fontSize;
+
+					if (fz >= 1 && fz <= 7)
+						fz = t.sizes[parseInt(fz) - 1] + 'pt';
+
+					c.add(k, v, {'style' : 'font-size:' + fz, 'class' : 'mceFontSize' + (i++) + (' ' + (v['class'] || ''))});
+				});
+			}
+
+			return c;
+		},
+
+		_createBlockFormats : function() {
+			var c, fmts = {
+				p : 'advanced.paragraph',
+				address : 'advanced.address',
+				pre : 'advanced.pre',
+				h1 : 'advanced.h1',
+				h2 : 'advanced.h2',
+				h3 : 'advanced.h3',
+				h4 : 'advanced.h4',
+				h5 : 'advanced.h5',
+				h6 : 'advanced.h6',
+				div : 'advanced.div',
+				blockquote : 'advanced.blockquote',
+				code : 'advanced.code',
+				dt : 'advanced.dt',
+				dd : 'advanced.dd',
+				samp : 'advanced.samp'
+			}, t = this;
+
+			c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', onselect : function(v) {
+				t.editor.execCommand('FormatBlock', false, v);
+				return false;
+			}});
+
+			if (c) {
+				each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) {
+					c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v, style: function() {
+						return getPreviewCss(t.editor, {block: v});
+					}});
+				});
+			}
+
+			return c;
+		},
+
+		_createForeColorMenu : function() {
+			var c, t = this, s = t.settings, o = {}, v;
+
+			if (s.theme_advanced_more_colors) {
+				o.more_colors_func = function() {
+					t._mceColorPicker(0, {
+						color : c.value,
+						func : function(co) {
+							c.setColor(co);
+						}
+					});
+				};
+			}
+
+			if (v = s.theme_advanced_text_colors)
+				o.colors = v;
+
+			if (s.theme_advanced_default_foreground_color)
+				o.default_color = s.theme_advanced_default_foreground_color;
+
+			o.title = 'advanced.forecolor_desc';
+			o.cmd = 'ForeColor';
+			o.scope = this;
+
+			c = t.editor.controlManager.createColorSplitButton('forecolor', o);
+
+			return c;
+		},
+
+		_createBackColorMenu : function() {
+			var c, t = this, s = t.settings, o = {}, v;
+
+			if (s.theme_advanced_more_colors) {
+				o.more_colors_func = function() {
+					t._mceColorPicker(0, {
+						color : c.value,
+						func : function(co) {
+							c.setColor(co);
+						}
+					});
+				};
+			}
+
+			if (v = s.theme_advanced_background_colors)
+				o.colors = v;
+
+			if (s.theme_advanced_default_background_color)
+				o.default_color = s.theme_advanced_default_background_color;
+
+			o.title = 'advanced.backcolor_desc';
+			o.cmd = 'HiliteColor';
+			o.scope = this;
+
+			c = t.editor.controlManager.createColorSplitButton('backcolor', o);
+
+			return c;
+		},
+
+		renderUI : function(o) {
+			var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl;
+
+			if (ed.settings) {
+				ed.settings.aria_label = s.aria_label + ed.getLang('advanced.help_shortcut');
+			}
+
+			// TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for.
+			// Maybe actually inherit it from the original textara?
+			n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});
+			DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label);
+
+			if (!DOM.boxModel)
+				n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'});
+
+			n = sc = DOM.add(n, 'table', {role : "presentation", id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0});
+			n = tb = DOM.add(n, 'tbody');
+
+			switch ((s.theme_advanced_layout_manager || '').toLowerCase()) {
+				case "rowlayout":
+					ic = t._rowLayout(s, tb, o);
+					break;
+
+				case "customlayout":
+					ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p);
+					break;
+
+				default:
+					ic = t._simpleLayout(s, tb, o, p);
+			}
+
+			n = o.targetNode;
+
+			// Add classes to first and last TRs
+			nl = sc.rows;
+			DOM.addClass(nl[0], 'mceFirst');
+			DOM.addClass(nl[nl.length - 1], 'mceLast');
+
+			// Add classes to first and last TDs
+			each(DOM.select('tr', tb), function(n) {
+				DOM.addClass(n.firstChild, 'mceFirst');
+				DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast');
+			});
+
+			if (DOM.get(s.theme_advanced_toolbar_container))
+				DOM.get(s.theme_advanced_toolbar_container).appendChild(p);
+			else
+				DOM.insertAfter(p, n);
+
+			Event.add(ed.id + '_path_row', 'click', function(e) {
+				e = e.target;
+
+				if (e.nodeName == 'A') {
+					t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));
+					return false;
+				}
+			});
+/*
+			if (DOM.get(ed.id + '_path_row')) {
+				Event.add(ed.id + '_tbl', 'mouseover', function(e) {
+					var re;
+	
+					e = e.target;
+
+					if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {
+						re = DOM.get(ed.id + '_path_row');
+						t.lastPath = re.innerHTML;
+						DOM.setHTML(re, e.parentNode.title);
+					}
+				});
+
+				Event.add(ed.id + '_tbl', 'mouseout', function(e) {
+					if (t.lastPath) {
+						DOM.setHTML(ed.id + '_path_row', t.lastPath);
+						t.lastPath = 0;
+					}
+				});
+			}
+*/
+
+			if (!ed.getParam('accessibility_focus'))
+				Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();});
+
+			if (s.theme_advanced_toolbar_location == 'external')
+				o.deltaHeight = 0;
+
+			t.deltaHeight = o.deltaHeight;
+			o.targetNode = null;
+
+			ed.onKeyDown.add(function(ed, evt) {
+				var DOM_VK_F10 = 121, DOM_VK_F11 = 122;
+
+				if (evt.altKey) {
+		 			if (evt.keyCode === DOM_VK_F10) {
+						// Make sure focus is given to toolbar in Safari.
+						// We can't do this in IE as it prevents giving focus to toolbar when editor is in a frame
+						if (tinymce.isWebKit) {
+							window.focus();
+						}
+						t.toolbarGroup.focus();
+						return Event.cancel(evt);
+					} else if (evt.keyCode === DOM_VK_F11) {
+						DOM.get(ed.id + '_path_row').focus();
+						return Event.cancel(evt);
+					}
+				}
+			});
+
+			// alt+0 is the UK recommended shortcut for accessing the list of access controls.
+			ed.addShortcut('alt+0', '', 'mceShortcuts', t);
+
+			return {
+				iframeContainer : ic,
+				editorContainer : ed.id + '_parent',
+				sizeContainer : sc,
+				deltaHeight : o.deltaHeight
+			};
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Advanced theme',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			}
+		},
+
+		resizeBy : function(dw, dh) {
+			var e = DOM.get(this.editor.id + '_ifr');
+
+			this.resizeTo(e.clientWidth + dw, e.clientHeight + dh);
+		},
+
+		resizeTo : function(w, h, store) {
+			var ed = this.editor, s = this.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr');
+
+			// Boundery fix box
+			w = Math.max(s.theme_advanced_resizing_min_width || 100, w);
+			h = Math.max(s.theme_advanced_resizing_min_height || 100, h);
+			w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w);
+			h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h);
+
+			// Resize iframe and container
+			DOM.setStyle(e, 'height', '');
+			DOM.setStyle(ifr, 'height', h);
+
+			if (s.theme_advanced_resize_horizontal) {
+				DOM.setStyle(e, 'width', '');
+				DOM.setStyle(ifr, 'width', w);
+
+				// Make sure that the size is never smaller than the over all ui
+				if (w < e.clientWidth) {
+					w = e.clientWidth;
+					DOM.setStyle(ifr, 'width', e.clientWidth);
+				}
+			}
+
+			// Store away the size
+			if (store && s.theme_advanced_resizing_use_cookie) {
+				Cookie.setHash("TinyMCE_" + ed.id + "_size", {
+					cw : w,
+					ch : h
+				});
+			}
+		},
+
+		destroy : function() {
+			var id = this.editor.id;
+
+			Event.clear(id + '_resize');
+			Event.clear(id + '_path_row');
+			Event.clear(id + '_external_close');
+		},
+
+		// Internal functions
+
+		_simpleLayout : function(s, tb, o, p) {
+			var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;
+
+			if (s.readonly) {
+				n = DOM.add(tb, 'tr');
+				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
+				return ic;
+			}
+
+			// Create toolbar container at top
+			if (lo == 'top')
+				t._addToolbars(tb, o);
+
+			// Create external toolbar
+			if (lo == 'external') {
+				n = c = DOM.create('div', {style : 'position:relative'});
+				n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});
+				DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});
+				n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});
+				etb = DOM.add(n, 'tbody');
+
+				if (p.firstChild.className == 'mceOldBoxModel')
+					p.firstChild.appendChild(c);
+				else
+					p.insertBefore(c, p.firstChild);
+
+				t._addToolbars(etb, o);
+
+				ed.onMouseUp.add(function() {
+					var e = DOM.get(ed.id + '_external');
+					DOM.show(e);
+
+					DOM.hide(lastExtID);
+
+					var f = Event.add(ed.id + '_external_close', 'click', function() {
+						DOM.hide(ed.id + '_external');
+						Event.remove(ed.id + '_external_close', 'click', f);
+					});
+
+					DOM.show(e);
+					DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);
+
+					// Fixes IE rendering bug
+					DOM.hide(e);
+					DOM.show(e);
+					e.style.filter = '';
+
+					lastExtID = ed.id + '_external';
+
+					e = null;
+				});
+			}
+
+			if (sl == 'top')
+				t._addStatusBar(tb, o);
+
+			// Create iframe container
+			if (!s.theme_advanced_toolbar_container) {
+				n = DOM.add(tb, 'tr');
+				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
+			}
+
+			// Create toolbar container at bottom
+			if (lo == 'bottom')
+				t._addToolbars(tb, o);
+
+			if (sl == 'bottom')
+				t._addStatusBar(tb, o);
+
+			return ic;
+		},
+
+		_rowLayout : function(s, tb, o) {
+			var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a;
+
+			dc = s.theme_advanced_containers_default_class || '';
+			da = s.theme_advanced_containers_default_align || 'center';
+
+			each(explode(s.theme_advanced_containers || ''), function(c, i) {
+				var v = s['theme_advanced_container_' + c] || '';
+
+				switch (c.toLowerCase()) {
+					case 'mceeditor':
+						n = DOM.add(tb, 'tr');
+						n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
+						break;
+
+					case 'mceelementpath':
+						t._addStatusBar(tb, o);
+						break;
+
+					default:
+						a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase();
+						a = 'mce' + t._ufirst(a);
+
+						n = DOM.add(DOM.add(tb, 'tr'), 'td', {
+							'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da
+						});
+
+						to = cf.createToolbar("toolbar" + i);
+						t._addControls(v, to);
+						DOM.setHTML(n, to.renderHTML());
+						o.deltaHeight -= s.theme_advanced_row_height;
+				}
+			});
+
+			return ic;
+		},
+
+		_addControls : function(v, tb) {
+			var t = this, s = t.settings, di, cf = t.editor.controlManager;
+
+			if (s.theme_advanced_disable && !t._disabled) {
+				di = {};
+
+				each(explode(s.theme_advanced_disable), function(v) {
+					di[v] = 1;
+				});
+
+				t._disabled = di;
+			} else
+				di = t._disabled;
+
+			each(explode(v), function(n) {
+				var c;
+
+				if (di && di[n])
+					return;
+
+				// Compatiblity with 2.x
+				if (n == 'tablecontrols') {
+					each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) {
+						n = t.createControl(n, cf);
+
+						if (n)
+							tb.add(n);
+					});
+
+					return;
+				}
+
+				c = t.createControl(n, cf);
+
+				if (c)
+					tb.add(c);
+			});
+		},
+
+		_addToolbars : function(c, o) {
+			var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup;
+
+			toolbarGroup = cf.createToolbarGroup('toolbargroup', {
+				'name': ed.getLang('advanced.toolbar'),
+				'tab_focus_toolbar':ed.getParam('theme_advanced_tab_focus_toolbar')
+			});
+
+			t.toolbarGroup = toolbarGroup;
+
+			a = s.theme_advanced_toolbar_align.toLowerCase();
+			a = 'mce' + t._ufirst(a);
+
+			n = DOM.add(DOM.add(c, 'tr', {role: 'presentation'}), 'td', {'class' : 'mceToolbar ' + a, "role":"presentation"});
+
+			// Create toolbar and add the controls
+			for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
+				tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});
+
+				if (s['theme_advanced_buttons' + i + '_add'])
+					v += ',' + s['theme_advanced_buttons' + i + '_add'];
+
+				if (s['theme_advanced_buttons' + i + '_add_before'])
+					v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v;
+
+				t._addControls(v, tb);
+				toolbarGroup.add(tb);
+
+				o.deltaHeight -= s.theme_advanced_row_height;
+			}
+			h.push(toolbarGroup.renderHTML());
+			h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
+			DOM.setHTML(n, h.join(''));
+		},
+
+		_addStatusBar : function(tb, o) {
+			var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;
+
+			n = DOM.add(tb, 'tr');
+			n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'}); 
+			n = DOM.add(n, 'div', {id : ed.id + '_path_row', 'role': 'group', 'aria-labelledby': ed.id + '_path_voice'});
+			if (s.theme_advanced_path) {
+				DOM.add(n, 'span', {id: ed.id + '_path_voice'}, ed.translate('advanced.path'));
+				DOM.add(n, 'span', {}, ': ');
+			} else {
+				DOM.add(n, 'span', {}, ' ');
+			}
+			
+
+			if (s.theme_advanced_resizing) {
+				DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize', tabIndex:"-1"});
+
+				if (s.theme_advanced_resizing_use_cookie) {
+					ed.onPostRender.add(function() {
+						var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl');
+
+						if (!o)
+							return;
+
+						t.resizeTo(o.cw, o.ch);
+					});
+				}
+
+				ed.onPostRender.add(function() {
+					Event.add(ed.id + '_resize', 'click', function(e) {
+						e.preventDefault();
+					});
+
+					Event.add(ed.id + '_resize', 'mousedown', function(e) {
+						var mouseMoveHandler1, mouseMoveHandler2,
+							mouseUpHandler1, mouseUpHandler2,
+							startX, startY, startWidth, startHeight, width, height, ifrElm;
+
+						function resizeOnMove(e) {
+							e.preventDefault();
+
+							width = startWidth + (e.screenX - startX);
+							height = startHeight + (e.screenY - startY);
+
+							t.resizeTo(width, height);
+						};
+
+						function endResize(e) {
+							// Stop listening
+							Event.remove(DOM.doc, 'mousemove', mouseMoveHandler1);
+							Event.remove(ed.getDoc(), 'mousemove', mouseMoveHandler2);
+							Event.remove(DOM.doc, 'mouseup', mouseUpHandler1);
+							Event.remove(ed.getDoc(), 'mouseup', mouseUpHandler2);
+
+							width = startWidth + (e.screenX - startX);
+							height = startHeight + (e.screenY - startY);
+							t.resizeTo(width, height, true);
+						};
+
+						e.preventDefault();
+
+						// Get the current rect size
+						startX = e.screenX;
+						startY = e.screenY;
+						ifrElm = DOM.get(t.editor.id + '_ifr');
+						startWidth = width = ifrElm.clientWidth;
+						startHeight = height = ifrElm.clientHeight;
+
+						// Register envent handlers
+						mouseMoveHandler1 = Event.add(DOM.doc, 'mousemove', resizeOnMove);
+						mouseMoveHandler2 = Event.add(ed.getDoc(), 'mousemove', resizeOnMove);
+						mouseUpHandler1 = Event.add(DOM.doc, 'mouseup', endResize);
+						mouseUpHandler2 = Event.add(ed.getDoc(), 'mouseup', endResize);
+					});
+				});
+			}
+
+			o.deltaHeight -= 21;
+			n = tb = null;
+		},
+
+		_updateUndoStatus : function(ed) {
+			var cm = ed.controlManager, um = ed.undoManager;
+
+			cm.setDisabled('undo', !um.hasUndo() && !um.typing);
+			cm.setDisabled('redo', !um.hasRedo());
+		},
+
+		_nodeChanged : function(ed, cm, n, co, ob) {
+			var t = this, p, de = 0, v, c, s = t.settings, cl, fz, fn, fc, bc, formatNames, matches;
+
+			tinymce.each(t.stateControls, function(c) {
+				cm.setActive(c, ed.queryCommandState(t.controls[c][1]));
+			});
+
+			function getParent(name) {
+				var i, parents = ob.parents, func = name;
+
+				if (typeof(name) == 'string') {
+					func = function(node) {
+						return node.nodeName == name;
+					};
+				}
+
+				for (i = 0; i < parents.length; i++) {
+					if (func(parents[i]))
+						return parents[i];
+				}
+			};
+
+			cm.setActive('visualaid', ed.hasVisual);
+			t._updateUndoStatus(ed);
+			cm.setDisabled('outdent', !ed.queryCommandState('Outdent'));
+
+			p = getParent('A');
+			if (c = cm.get('link')) {
+				if (!p || !p.name) {
+					c.setDisabled(!p && co);
+					c.setActive(!!p);
+				}
+			}
+
+			if (c = cm.get('unlink')) {
+				c.setDisabled(!p && co);
+				c.setActive(!!p && !p.name);
+			}
+
+			if (c = cm.get('anchor')) {
+				c.setActive(!co && !!p && p.name);
+			}
+
+			p = getParent('IMG');
+			if (c = cm.get('image'))
+				c.setActive(!co && !!p && n.className.indexOf('mceItem') == -1);
+
+			if (c = cm.get('styleselect')) {
+				t._importClasses();
+
+				formatNames = [];
+				each(c.items, function(item) {
+					formatNames.push(item.value);
+				});
+
+				matches = ed.formatter.matchAll(formatNames);
+				c.select(matches[0]);
+				tinymce.each(matches, function(match, index) {
+					if (index > 0) {
+						c.mark(match);
+					}
+				});
+			}
+
+			if (c = cm.get('formatselect')) {
+				p = getParent(DOM.isBlock);
+
+				if (p)
+					c.select(p.nodeName.toLowerCase());
+			}
+
+			// Find out current fontSize, fontFamily and fontClass
+			getParent(function(n) {
+				if (n.nodeName === 'SPAN') {
+					if (!cl && n.className)
+						cl = n.className;
+				}
+
+				if (ed.dom.is(n, s.theme_advanced_font_selector)) {
+					if (!fz && n.style.fontSize)
+						fz = n.style.fontSize;
+
+					if (!fn && n.style.fontFamily)
+						fn = n.style.fontFamily.replace(/[\"\']+/g, '').replace(/^([^,]+).*/, '$1').toLowerCase();
+					
+					if (!fc && n.style.color)
+						fc = n.style.color;
+
+					if (!bc && n.style.backgroundColor)
+						bc = n.style.backgroundColor;
+				}
+
+				return false;
+			});
+
+			if (c = cm.get('fontselect')) {
+				c.select(function(v) {
+					return v.replace(/^([^,]+).*/, '$1').toLowerCase() == fn;
+				});
+			}
+
+			// Select font size
+			if (c = cm.get('fontsizeselect')) {
+				// Use computed style
+				if (s.theme_advanced_runtime_fontsize && !fz && !cl)
+					fz = ed.dom.getStyle(n, 'fontSize', true);
+
+				c.select(function(v) {
+					if (v.fontSize && v.fontSize === fz)
+						return true;
+
+					if (v['class'] && v['class'] === cl)
+						return true;
+				});
+			}
+			
+			if (s.theme_advanced_show_current_color) {
+				function updateColor(controlId, color) {
+					if (c = cm.get(controlId)) {
+						if (!color)
+							color = c.settings.default_color;
+						if (color !== c.value) {
+							c.displayColor(color);
+						}
+					}
+				}
+				updateColor('forecolor', fc);
+				updateColor('backcolor', bc);
+			}
+
+			if (s.theme_advanced_show_current_color) {
+				function updateColor(controlId, color) {
+					if (c = cm.get(controlId)) {
+						if (!color)
+							color = c.settings.default_color;
+						if (color !== c.value) {
+							c.displayColor(color);
+						}
+					}
+				};
+
+				updateColor('forecolor', fc);
+				updateColor('backcolor', bc);
+			}
+
+			if (s.theme_advanced_path && s.theme_advanced_statusbar_location) {
+				p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});
+
+				if (t.statusKeyboardNavigation) {
+					t.statusKeyboardNavigation.destroy();
+					t.statusKeyboardNavigation = null;
+				}
+
+				DOM.setHTML(p, '');
+
+				getParent(function(n) {
+					var na = n.nodeName.toLowerCase(), u, pi, ti = '';
+
+					// Ignore non element and bogus/hidden elements
+					if (n.nodeType != 1 || na === 'br' || n.getAttribute('data-mce-bogus') || DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved'))
+						return;
+
+					// Handle prefix
+					if (tinymce.isIE && n.scopeName !== 'HTML')
+						na = n.scopeName + ':' + na;
+
+					// Remove internal prefix
+					na = na.replace(/mce\:/g, '');
+
+					// Handle node name
+					switch (na) {
+						case 'b':
+							na = 'strong';
+							break;
+
+						case 'i':
+							na = 'em';
+							break;
+
+						case 'img':
+							if (v = DOM.getAttrib(n, 'src'))
+								ti += 'src: ' + v + ' ';
+
+							break;
+
+						case 'a':
+							if (v = DOM.getAttrib(n, 'name')) {
+								ti += 'name: ' + v + ' ';
+								na += '#' + v;
+							}
+
+							if (v = DOM.getAttrib(n, 'href'))
+								ti += 'href: ' + v + ' ';
+
+							break;
+
+						case 'font':
+							if (v = DOM.getAttrib(n, 'face'))
+								ti += 'font: ' + v + ' ';
+
+							if (v = DOM.getAttrib(n, 'size'))
+								ti += 'size: ' + v + ' ';
+
+							if (v = DOM.getAttrib(n, 'color'))
+								ti += 'color: ' + v + ' ';
+
+							break;
+
+						case 'span':
+							if (v = DOM.getAttrib(n, 'style'))
+								ti += 'style: ' + v + ' ';
+
+							break;
+					}
+
+					if (v = DOM.getAttrib(n, 'id'))
+						ti += 'id: ' + v + ' ';
+
+					if (v = n.className) {
+						v = v.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g, '')
+
+						if (v) {
+							ti += 'class: ' + v + ' ';
+
+							if (DOM.isBlock(n) || na == 'img' || na == 'span')
+								na += '.' + v;
+						}
+					}
+
+					na = na.replace(/(html:)/g, '');
+					na = {name : na, node : n, title : ti};
+					t.onResolveName.dispatch(t, na);
+					ti = na.title;
+					na = na.name;
+
+					//u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');";
+					pi = DOM.create('a', {'href' : "javascript:;", role: 'button', onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na);
+
+					if (p.hasChildNodes()) {
+						p.insertBefore(DOM.create('span', {'aria-hidden': 'true'}, '\u00a0\u00bb '), p.firstChild);
+						p.insertBefore(pi, p.firstChild);
+					} else
+						p.appendChild(pi);
+				}, ed.getBody());
+
+				if (DOM.select('a', p).length > 0) {
+					t.statusKeyboardNavigation = new tinymce.ui.KeyboardNavigation({
+						root: ed.id + "_path_row",
+						items: DOM.select('a', p),
+						excludeFromTabOrder: true,
+						onCancel: function() {
+							ed.focus();
+						}
+					}, DOM);
+				}
+			}
+		},
+
+		// Commands gets called by execCommand
+
+		_sel : function(v) {
+			this.editor.execCommand('mceSelectNodeDepth', false, v);
+		},
+
+		_mceInsertAnchor : function(ui, v) {
+			var ed = this.editor;
+
+			ed.windowManager.open({
+				url : this.url + '/anchor.htm',
+				width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)),
+				height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)),
+				inline : true
+			}, {
+				theme_url : this.url
+			});
+		},
+
+		_mceCharMap : function() {
+			var ed = this.editor;
+
+			ed.windowManager.open({
+				url : this.url + '/charmap.htm',
+				width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)),
+				height : 265 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)),
+				inline : true
+			}, {
+				theme_url : this.url
+			});
+		},
+
+		_mceHelp : function() {
+			var ed = this.editor;
+
+			ed.windowManager.open({
+				url : this.url + '/about.htm',
+				width : 480,
+				height : 380,
+				inline : true
+			}, {
+				theme_url : this.url
+			});
+		},
+
+		_mceShortcuts : function() {
+			var ed = this.editor;
+			ed.windowManager.open({
+				url: this.url + '/shortcuts.htm',
+				width: 480,
+				height: 380,
+				inline: true
+			}, {
+				theme_url: this.url
+			});
+		},
+
+		_mceColorPicker : function(u, v) {
+			var ed = this.editor;
+
+			v = v || {};
+
+			ed.windowManager.open({
+				url : this.url + '/color_picker.htm',
+				width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)),
+				height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)),
+				close_previous : false,
+				inline : true
+			}, {
+				input_color : v.color,
+				func : v.func,
+				theme_url : this.url
+			});
+		},
+
+		_mceCodeEditor : function(ui, val) {
+			var ed = this.editor;
+
+			ed.windowManager.open({
+				url : this.url + '/source_editor.htm',
+				width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)),
+				height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)),
+				inline : true,
+				resizable : true,
+				maximizable : true
+			}, {
+				theme_url : this.url
+			});
+		},
+
+		_mceImage : function(ui, val) {
+			var ed = this.editor;
+
+			// Internal image object like a flash placeholder
+			if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)
+				return;
+
+			ed.windowManager.open({
+				url : this.url + '/image.htm',
+				width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)),
+				height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)),
+				inline : true
+			}, {
+				theme_url : this.url
+			});
+		},
+
+		_mceLink : function(ui, val) {
+			var ed = this.editor;
+
+			ed.windowManager.open({
+				url : this.url + '/link.htm',
+				width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)),
+				height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)),
+				inline : true
+			}, {
+				theme_url : this.url
+			});
+		},
+
+		_mceNewDocument : function() {
+			var ed = this.editor;
+
+			ed.windowManager.confirm('advanced.newdocument', function(s) {
+				if (s)
+					ed.execCommand('mceSetContent', false, '');
+			});
+		},
+
+		_mceForeColor : function() {
+			var t = this;
+
+			this._mceColorPicker(0, {
+				color: t.fgColor,
+				func : function(co) {
+					t.fgColor = co;
+					t.editor.execCommand('ForeColor', false, co);
+				}
+			});
+		},
+
+		_mceBackColor : function() {
+			var t = this;
+
+			this._mceColorPicker(0, {
+				color: t.bgColor,
+				func : function(co) {
+					t.bgColor = co;
+					t.editor.execCommand('HiliteColor', false, co);
+				}
+			});
+		},
+
+		_ufirst : function(s) {
+			return s.substring(0, 1).toUpperCase() + s.substring(1);
+		}
+	});
+
+	tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme);
+}(tinymce));
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/image.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/image.htm
new file mode 100644
index 0000000..884890f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/image.htm
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advanced_dlg.image_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="js/image.js"></script>
+</head>
+<body id="image" style="display: none">
+<form onsubmit="ImageDialog.update();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.image_title}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<table border="0" cellpadding="4" cellspacing="0">
+				<tr>
+					<td class="nowrap"><label for="src">{#advanced_dlg.image_src}</label></td>
+					<td><table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input id="src" name="src" type="text" class="mceFocus" value="" style="width: 200px" onchange="ImageDialog.getImageData();" /></td>
+							<td id="srcbrowsercontainer"> </td>
+						</tr>
+					</table></td>
+				</tr>
+				<tr>
+					<td><label for="image_list">{#advanced_dlg.image_list}</label></td>
+					<td><select id="image_list" name="image_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;"></select></td>
+				</tr>
+				<tr>
+					<td class="nowrap"><label for="alt">{#advanced_dlg.image_alt}</label></td>
+					<td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td>
+				</tr>
+				<tr>
+					<td class="nowrap"><label for="align">{#advanced_dlg.image_align}</label></td>
+					<td><select id="align" name="align" onchange="ImageDialog.updateStyle();">
+						<option value="">{#not_set}</option>
+						<option value="baseline">{#advanced_dlg.image_align_baseline}</option>
+						<option value="top">{#advanced_dlg.image_align_top}</option>
+						<option value="middle">{#advanced_dlg.image_align_middle}</option>
+						<option value="bottom">{#advanced_dlg.image_align_bottom}</option>
+						<option value="text-top">{#advanced_dlg.image_align_texttop}</option>
+						<option value="text-bottom">{#advanced_dlg.image_align_textbottom}</option>
+						<option value="left">{#advanced_dlg.image_align_left}</option>
+						<option value="right">{#advanced_dlg.image_align_right}</option>
+					</select></td>
+				</tr>
+				<tr>
+					<td class="nowrap"><label for="width">{#advanced_dlg.image_dimensions}</label></td>
+					<td><input id="width" name="width" type="text" value="" size="3" maxlength="5" />
+					 x 
+					<input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td>
+				</tr>
+				<tr>
+				<td class="nowrap"><label for="border">{#advanced_dlg.image_border}</label></td>
+				<td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>
+				</tr>
+				<tr>
+					<td class="nowrap"><label for="vspace">{#advanced_dlg.image_vspace}</label></td>
+					<td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>
+				</tr>
+				<tr>
+					<td class="nowrap"><label for="hspace">{#advanced_dlg.image_hspace}</label></td>
+					<td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>
+				</tr>
+			</table>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#insert}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg
new file mode 100644
index 0000000..b1a377a
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif
new file mode 100644
index 0000000..dec3f7c
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif
new file mode 100644
index 0000000..ca22249
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif
new file mode 100644
index 0000000..410c7ad
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif
new file mode 100644
index 0000000..acdf408
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif
new file mode 100644
index 0000000..8f10e7a
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif
new file mode 100644
index 0000000..fdfe0b9
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif
new file mode 100644
index 0000000..9314d04
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif
new file mode 100644
index 0000000..3884865
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif
new file mode 100644
index 0000000..3570104
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif
new file mode 100644
index 0000000..ab50f2d
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js
new file mode 100644
index 0000000..daf4909
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js
@@ -0,0 +1,73 @@
+tinyMCEPopup.requireLangPack();
+
+function init() {
+	var ed, tcont;
+
+	tinyMCEPopup.resizeToInnerSize();
+	ed = tinyMCEPopup.editor;
+
+	// Give FF some time
+	window.setTimeout(insertHelpIFrame, 10);
+
+	tcont = document.getElementById('plugintablecontainer');
+	document.getElementById('plugins_tab').style.display = 'none';
+
+	var html = "";
+	html += '<table id="plugintable">';
+	html += '<thead>';
+	html += '<tr>';
+	html += '<td>' + ed.getLang('advanced_dlg.about_plugin') + '</td>';
+	html += '<td>' + ed.getLang('advanced_dlg.about_author') + '</td>';
+	html += '<td>' + ed.getLang('advanced_dlg.about_version') + '</td>';
+	html += '</tr>';
+	html += '</thead>';
+	html += '<tbody>';
+
+	tinymce.each(ed.plugins, function(p, n) {
+		var info;
+
+		if (!p.getInfo)
+			return;
+
+		html += '<tr>';
+
+		info = p.getInfo();
+
+		if (info.infourl != null && info.infourl != '')
+			html += '<td width="50%" title="' + n + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>';
+		else
+			html += '<td width="50%" title="' + n + '">' + info.longname + '</td>';
+
+		if (info.authorurl != null && info.authorurl != '')
+			html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>';
+		else
+			html += '<td width="35%">' + info.author + '</td>';
+
+		html += '<td width="15%">' + info.version + '</td>';
+		html += '</tr>';
+
+		document.getElementById('plugins_tab').style.display = '';
+
+	});
+
+	html += '</tbody>';
+	html += '</table>';
+
+	tcont.innerHTML = html;
+
+	tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;
+	tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate;
+}
+
+function insertHelpIFrame() {
+	var html;
+
+	if (tinyMCEPopup.getParam('docs_url')) {
+		html = '<iframe width="100%" height="300" src="' + tinyMCEPopup.editor.baseURI.toAbsolute(tinyMCEPopup.getParam('docs_url')) + '"></iframe>';
+		document.getElementById('iframecontainer').innerHTML = html;
+		document.getElementById('help_tab').style.display = 'block';
+		document.getElementById('help_tab').setAttribute("aria-hidden", "false");
+	}
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js
new file mode 100644
index 0000000..fb8ac0c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js
@@ -0,0 +1,44 @@
+tinyMCEPopup.requireLangPack();
+
+var AnchorDialog = {
+	init : function(ed) {
+		var action, elm, f = document.forms[0];
+
+		this.editor = ed;
+		elm = ed.dom.getParent(ed.selection.getNode(), 'A');
+		v = ed.dom.getAttrib(elm, 'name');
+
+		if (v) {
+			this.action = 'update';
+			f.anchorName.value = v;
+		}
+
+		f.insert.value = ed.getLang(elm ? 'update' : 'insert');
+	},
+
+	update : function() {
+		var ed = this.editor, elm, name = document.forms[0].anchorName.value;
+
+		if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) {
+			tinyMCEPopup.alert('advanced_dlg.anchor_invalid');
+			return;
+		}
+
+		tinyMCEPopup.restoreSelection();
+
+		if (this.action != 'update')
+			ed.selection.collapse(1);
+
+		elm = ed.dom.getParent(ed.selection.getNode(), 'A');
+		if (elm) {
+			elm.setAttribute('name', name);
+			elm.name = name;
+		} else
+			// create with zero-sized nbsp so that in Webkit where anchor is on last line by itself caret cannot be placed after it
+			ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, '\uFEFF'));
+
+		tinyMCEPopup.close();
+	}
+};
+
+tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js
new file mode 100644
index 0000000..cbb4172
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js
@@ -0,0 +1,363 @@
+/**
+ * charmap.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+tinyMCEPopup.requireLangPack();
+
+var charmap = [
+	[' ',    ' ',  true, 'no-break space'],
+	['&',     '&',   true, 'ampersand'],
+	['"',    '"',   true, 'quotation mark'],
+// finance
+	['¢',    '¢',  true, 'cent sign'],
+	['€',    '€', true, 'euro sign'],
+	['£',   '£',  true, 'pound sign'],
+	['¥',     '¥',  true, 'yen sign'],
+// signs
+	['©',    '©',  true, 'copyright sign'],
+	['®',     '®',  true, 'registered sign'],
+	['™',   '™', true, 'trade mark sign'],
+	['‰',  '‰', true, 'per mille sign'],
+	['µ',   'µ',  true, 'micro sign'],
+	['·',  '·',  true, 'middle dot'],
+	['•',    '•', true, 'bullet'],
+	['…',  '…', true, 'three dot leader'],
+	['′',   '′', true, 'minutes / feet'],
+	['″',   '″', true, 'seconds / inches'],
+	['§',    '§',  true, 'section sign'],
+	['¶',    '¶',  true, 'paragraph sign'],
+	['ß',   'ß',  true, 'sharp s / ess-zed'],
+// quotations
+	['‹',  '‹', true, 'single left-pointing angle quotation mark'],
+	['›',  '›', true, 'single right-pointing angle quotation mark'],
+	['«',   '«',  true, 'left pointing guillemet'],
+	['»',   '»',  true, 'right pointing guillemet'],
+	['‘',   '‘', true, 'left single quotation mark'],
+	['’',   '’', true, 'right single quotation mark'],
+	['“',   '“', true, 'left double quotation mark'],
+	['”',   '”', true, 'right double quotation mark'],
+	['‚',   '‚', true, 'single low-9 quotation mark'],
+	['„',   '„', true, 'double low-9 quotation mark'],
+	['<',      '<',   true, 'less-than sign'],
+	['>',      '>',   true, 'greater-than sign'],
+	['≤',      '≤', true, 'less-than or equal to'],
+	['≥',      '≥', true, 'greater-than or equal to'],
+	['–',   '–', true, 'en dash'],
+	['—',   '—', true, 'em dash'],
+	['¯',    '¯',  true, 'macron'],
+	['‾',   '‾', true, 'overline'],
+	['¤',  '¤',  true, 'currency sign'],
+	['¦',  '¦',  true, 'broken bar'],
+	['¨',     '¨',  true, 'diaeresis'],
+	['¡',   '¡',  true, 'inverted exclamation mark'],
+	['¿',  '¿',  true, 'turned question mark'],
+	['ˆ',    'ˆ',  true, 'circumflex accent'],
+	['˜',   '˜',  true, 'small tilde'],
+	['°',     '°',  true, 'degree sign'],
+	['−',   '−', true, 'minus sign'],
+	['±',  '±',  true, 'plus-minus sign'],
+	['÷',  '÷',  true, 'division sign'],
+	['⁄',   '⁄', true, 'fraction slash'],
+	['×',   '×',  true, 'multiplication sign'],
+	['&sup1;',    '¹',  true, 'superscript one'],
+	['&sup2;',    '²',  true, 'superscript two'],
+	['&sup3;',    '³',  true, 'superscript three'],
+	['&frac14;',  '¼',  true, 'fraction one quarter'],
+	['&frac12;',  '½',  true, 'fraction one half'],
+	['&frac34;',  '¾',  true, 'fraction three quarters'],
+// math / logical
+	['ƒ',    'ƒ',  true, 'function / florin'],
+	['∫',     '∫', true, 'integral'],
+	['∑',     '∑', true, 'n-ary sumation'],
+	['∞',   '∞', true, 'infinity'],
+	['√',   '√', true, 'square root'],
+	['∼',     '∼', false,'similar to'],
+	['≅',    '≅', false,'approximately equal to'],
+	['≈',   '≈', true, 'almost equal to'],
+	['≠',      '≠', true, 'not equal to'],
+	['≡',   '≡', true, 'identical to'],
+	['∈',    '∈', false,'element of'],
+	['∉',   '∉', false,'not an element of'],
+	['∋',      '∋', false,'contains as member'],
+	['∏',    '∏', true, 'n-ary product'],
+	['∧',     '∧', false,'logical and'],
+	['∨',      '∨', false,'logical or'],
+	['¬',     '¬',  true, 'not sign'],
+	['∩',     '∩', true, 'intersection'],
+	['∪',     '∪', false,'union'],
+	['∂',    '∂', true, 'partial differential'],
+	['∀',  '∀', false,'for all'],
+	['∃',   '∃', false,'there exists'],
+	['∅',   '∅', false,'diameter'],
+	['∇',   '∇', false,'backward difference'],
+	['∗',  '∗', false,'asterisk operator'],
+	['∝',    '∝', false,'proportional to'],
+	['∠',     '∠', false,'angle'],
+// undefined
+	['´',   '´',  true, 'acute accent'],
+	['¸',   '¸',  true, 'cedilla'],
+	['ª',    'ª',  true, 'feminine ordinal indicator'],
+	['º',    'º',  true, 'masculine ordinal indicator'],
+	['†',  '†', true, 'dagger'],
+	['‡',  '‡', true, 'double dagger'],
+// alphabetical special chars
+	['À',  'À',  true, 'A - grave'],
+	['Á',  'Á',  true, 'A - acute'],
+	['Â',   'Â',  true, 'A - circumflex'],
+	['Ã',  'Ã',  true, 'A - tilde'],
+	['Ä',    'Ä',  true, 'A - diaeresis'],
+	['Å',   'Å',  true, 'A - ring above'],
+	['Æ',   'Æ',  true, 'ligature AE'],
+	['Ç',  'Ç',  true, 'C - cedilla'],
+	['È',  'È',  true, 'E - grave'],
+	['É',  'É',  true, 'E - acute'],
+	['Ê',   'Ê',  true, 'E - circumflex'],
+	['Ë',    'Ë',  true, 'E - diaeresis'],
+	['Ì',  'Ì',  true, 'I - grave'],
+	['Í',  'Í',  true, 'I - acute'],
+	['Î',   'Î',  true, 'I - circumflex'],
+	['Ï',    'Ï',  true, 'I - diaeresis'],
+	['Ð',     'Ð',  true, 'ETH'],
+	['Ñ',  'Ñ',  true, 'N - tilde'],
+	['Ò',  'Ò',  true, 'O - grave'],
+	['Ó',  'Ó',  true, 'O - acute'],
+	['Ô',   'Ô',  true, 'O - circumflex'],
+	['Õ',  'Õ',  true, 'O - tilde'],
+	['Ö',    'Ö',  true, 'O - diaeresis'],
+	['Ø',  'Ø',  true, 'O - slash'],
+	['Œ',   'Œ',  true, 'ligature OE'],
+	['Š',  'Š',  true, 'S - caron'],
+	['Ù',  'Ù',  true, 'U - grave'],
+	['Ú',  'Ú',  true, 'U - acute'],
+	['Û',   'Û',  true, 'U - circumflex'],
+	['Ü',    'Ü',  true, 'U - diaeresis'],
+	['Ý',  'Ý',  true, 'Y - acute'],
+	['Ÿ',    'Ÿ',  true, 'Y - diaeresis'],
+	['Þ',   'Þ',  true, 'THORN'],
+	['à',  'à',  true, 'a - grave'],
+	['á',  'á',  true, 'a - acute'],
+	['â',   'â',  true, 'a - circumflex'],
+	['ã',  'ã',  true, 'a - tilde'],
+	['ä',    'ä',  true, 'a - diaeresis'],
+	['å',   'å',  true, 'a - ring above'],
+	['æ',   'æ',  true, 'ligature ae'],
+	['ç',  'ç',  true, 'c - cedilla'],
+	['è',  'è',  true, 'e - grave'],
+	['é',  'é',  true, 'e - acute'],
+	['ê',   'ê',  true, 'e - circumflex'],
+	['ë',    'ë',  true, 'e - diaeresis'],
+	['ì',  'ì',  true, 'i - grave'],
+	['í',  'í',  true, 'i - acute'],
+	['î',   'î',  true, 'i - circumflex'],
+	['ï',    'ï',  true, 'i - diaeresis'],
+	['ð',     'ð',  true, 'eth'],
+	['ñ',  'ñ',  true, 'n - tilde'],
+	['ò',  'ò',  true, 'o - grave'],
+	['ó',  'ó',  true, 'o - acute'],
+	['ô',   'ô',  true, 'o - circumflex'],
+	['õ',  'õ',  true, 'o - tilde'],
+	['ö',    'ö',  true, 'o - diaeresis'],
+	['ø',  'ø',  true, 'o slash'],
+	['œ',   'œ',  true, 'ligature oe'],
+	['š',  'š',  true, 's - caron'],
+	['ù',  'ù',  true, 'u - grave'],
+	['ú',  'ú',  true, 'u - acute'],
+	['û',   'û',  true, 'u - circumflex'],
+	['ü',    'ü',  true, 'u - diaeresis'],
+	['ý',  'ý',  true, 'y - acute'],
+	['þ',   'þ',  true, 'thorn'],
+	['ÿ',    'ÿ',  true, 'y - diaeresis'],
+	['Α',   'Α',  true, 'Alpha'],
+	['Β',    'Β',  true, 'Beta'],
+	['Γ',   'Γ',  true, 'Gamma'],
+	['Δ',   'Δ',  true, 'Delta'],
+	['Ε', 'Ε',  true, 'Epsilon'],
+	['Ζ',    'Ζ',  true, 'Zeta'],
+	['Η',     'Η',  true, 'Eta'],
+	['Θ',   'Θ',  true, 'Theta'],
+	['Ι',    'Ι',  true, 'Iota'],
+	['Κ',   'Κ',  true, 'Kappa'],
+	['Λ',  'Λ',  true, 'Lambda'],
+	['Μ',      'Μ',  true, 'Mu'],
+	['Ν',      'Ν',  true, 'Nu'],
+	['Ξ',      'Ξ',  true, 'Xi'],
+	['Ο', 'Ο',  true, 'Omicron'],
+	['Π',      'Π',  true, 'Pi'],
+	['Ρ',     'Ρ',  true, 'Rho'],
+	['Σ',   'Σ',  true, 'Sigma'],
+	['Τ',     'Τ',  true, 'Tau'],
+	['Υ', 'Υ',  true, 'Upsilon'],
+	['Φ',     'Φ',  true, 'Phi'],
+	['Χ',     'Χ',  true, 'Chi'],
+	['Ψ',     'Ψ',  true, 'Psi'],
+	['Ω',   'Ω',  true, 'Omega'],
+	['α',   'α',  true, 'alpha'],
+	['β',    'β',  true, 'beta'],
+	['γ',   'γ',  true, 'gamma'],
+	['δ',   'δ',  true, 'delta'],
+	['ε', 'ε',  true, 'epsilon'],
+	['ζ',    'ζ',  true, 'zeta'],
+	['η',     'η',  true, 'eta'],
+	['θ',   'θ',  true, 'theta'],
+	['ι',    'ι',  true, 'iota'],
+	['κ',   'κ',  true, 'kappa'],
+	['λ',  'λ',  true, 'lambda'],
+	['μ',      'μ',  true, 'mu'],
+	['ν',      'ν',  true, 'nu'],
+	['ξ',      'ξ',  true, 'xi'],
+	['ο', 'ο',  true, 'omicron'],
+	['π',      'π',  true, 'pi'],
+	['ρ',     'ρ',  true, 'rho'],
+	['ς',  'ς',  true, 'final sigma'],
+	['σ',   'σ',  true, 'sigma'],
+	['τ',     'τ',  true, 'tau'],
+	['υ', 'υ',  true, 'upsilon'],
+	['φ',     'φ',  true, 'phi'],
+	['χ',     'χ',  true, 'chi'],
+	['ψ',     'ψ',  true, 'psi'],
+	['ω',   'ω',  true, 'omega'],
+// symbols
+	['ℵ', 'ℵ', false,'alef symbol'],
+	['ϖ',     'ϖ',  false,'pi symbol'],
+	['ℜ',    'ℜ', false,'real part symbol'],
+	['ϑ','ϑ',  false,'theta symbol'],
+	['ϒ',   'ϒ',  false,'upsilon - hook symbol'],
+	['℘',  '℘', false,'Weierstrass p'],
+	['ℑ',   'ℑ', false,'imaginary part'],
+// arrows
+	['←',    '←', true, 'leftwards arrow'],
+	['↑',    '↑', true, 'upwards arrow'],
+	['→',    '→', true, 'rightwards arrow'],
+	['↓',    '↓', true, 'downwards arrow'],
+	['↔',    '↔', true, 'left right arrow'],
+	['↵',   '↵', false,'carriage return'],
+	['⇐',    '⇐', false,'leftwards double arrow'],
+	['⇑',    '⇑', false,'upwards double arrow'],
+	['⇒',    '⇒', false,'rightwards double arrow'],
+	['⇓',    '⇓', false,'downwards double arrow'],
+	['⇔',    '⇔', false,'left right double arrow'],
+	['&there4;',  '∴', false,'therefore'],
+	['⊂',     '⊂', false,'subset of'],
+	['⊃',     '⊃', false,'superset of'],
+	['⊄',    '⊄', false,'not a subset of'],
+	['⊆',    '⊆', false,'subset of or equal to'],
+	['⊇',    '⊇', false,'superset of or equal to'],
+	['⊕',   '⊕', false,'circled plus'],
+	['⊗',  '⊗', false,'circled times'],
+	['⊥',    '⊥', false,'perpendicular'],
+	['⋅',    '⋅', false,'dot operator'],
+	['⌈',   '⌈', false,'left ceiling'],
+	['⌉',   '⌉', false,'right ceiling'],
+	['⌊',  '⌊', false,'left floor'],
+	['⌋',  '⌋', false,'right floor'],
+	['⟨',    '〈', false,'left-pointing angle bracket'],
+	['⟩',    '〉', false,'right-pointing angle bracket'],
+	['◊',     '◊', true, 'lozenge'],
+	['♠',  '♠', true, 'black spade suit'],
+	['♣',   '♣', true, 'black club suit'],
+	['♥',  '♥', true, 'black heart suit'],
+	['♦',   '♦', true, 'black diamond suit'],
+	[' ',    ' ', false,'en space'],
+	[' ',    ' ', false,'em space'],
+	[' ',  ' ', false,'thin space'],
+	['‌',    '‌', false,'zero width non-joiner'],
+	['‍',     '‍', false,'zero width joiner'],
+	['‎',     '‎', false,'left-to-right mark'],
+	['‏',     '‏', false,'right-to-left mark'],
+	['­',     '­',  false,'soft hyphen']
+];
+
+tinyMCEPopup.onInit.add(function() {
+	tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML());
+	addKeyboardNavigation();
+});
+
+function addKeyboardNavigation(){
+	var tableElm, cells, settings;
+
+	cells = tinyMCEPopup.dom.select("a.charmaplink", "charmapgroup");
+
+	settings ={
+		root: "charmapgroup",
+		items: cells
+	};
+	cells[0].tabindex=0;
+	tinyMCEPopup.dom.addClass(cells[0], "mceFocus");
+	if (tinymce.isGecko) {
+		cells[0].focus();		
+	} else {
+		setTimeout(function(){
+			cells[0].focus();
+		}, 100);
+	}
+	tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom);
+}
+
+function renderCharMapHTML() {
+	var charsPerRow = 20, tdWidth=20, tdHeight=20, i;
+	var html = '<div id="charmapgroup" aria-labelledby="charmap_label" tabindex="0" role="listbox">'+
+	'<table role="presentation" border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + 
+	'"><tr height="' + tdHeight + '">';
+	var cols=-1;
+
+	for (i=0; i<charmap.length; i++) {
+		var previewCharFn;
+
+		if (charmap[i][2]==true) {
+			cols++;
+			previewCharFn = 'previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');';
+			html += ''
+				+ '<td class="charmap">'
+				+ '<a class="charmaplink" role="button" onmouseover="'+previewCharFn+'" onfocus="'+previewCharFn+'" href="javascript:void(0)" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + ' '+ tinyMCEPopup.editor.translate("advanced_dlg.charmap_usage")+'">'
+				+ charmap[i][1]
+				+ '</a></td>';
+			if ((cols+1) % charsPerRow == 0)
+				html += '</tr><tr height="' + tdHeight + '">';
+		}
+	 }
+
+	if (cols % charsPerRow > 0) {
+		var padd = charsPerRow - (cols % charsPerRow);
+		for (var i=0; i<padd-1; i++)
+			html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>';
+	}
+
+	html += '</tr></table></div>';
+	html = html.replace(/<tr height="20"><\/tr>/g, '');
+
+	return html;
+}
+
+function insertChar(chr) {
+	tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');
+
+	// Refocus in window
+	if (tinyMCEPopup.isWindow)
+		window.focus();
+
+	tinyMCEPopup.editor.focus();
+	tinyMCEPopup.close();
+}
+
+function previewChar(codeA, codeB, codeN) {
+	var elmA = document.getElementById('codeA');
+	var elmB = document.getElementById('codeB');
+	var elmV = document.getElementById('codeV');
+	var elmN = document.getElementById('codeN');
+
+	if (codeA=='#160;') {
+		elmV.innerHTML = '__';
+	} else {
+		elmV.innerHTML = '&' + codeA;
+	}
+
+	elmB.innerHTML = '&' + codeA;
+	elmA.innerHTML = '&' + codeB;
+	elmN.innerHTML = codeN;
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js
new file mode 100644
index 0000000..cc891c1
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js
@@ -0,0 +1,345 @@
+tinyMCEPopup.requireLangPack();
+
+var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false;
+
+var colors = [
+	"#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",
+	"#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",
+	"#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",
+	"#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",
+	"#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",
+	"#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",
+	"#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",
+	"#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",
+	"#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",
+	"#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",
+	"#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",
+	"#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",
+	"#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",
+	"#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",
+	"#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",
+	"#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",
+	"#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",
+	"#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",
+	"#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",
+	"#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",
+	"#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",
+	"#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",
+	"#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",
+	"#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",
+	"#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",
+	"#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",
+	"#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"
+];
+
+var named = {
+	'#F0F8FF':'Alice Blue','#FAEBD7':'Antique White','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige',
+	'#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'Blanched Almond','#0000FF':'Blue','#8A2BE2':'Blue Violet','#A52A2A':'Brown',
+	'#DEB887':'Burly Wood','#5F9EA0':'Cadet Blue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'Cornflower Blue',
+	'#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'Dark Blue','#008B8B':'Dark Cyan','#B8860B':'Dark Golden Rod',
+	'#A9A9A9':'Dark Gray','#A9A9A9':'Dark Grey','#006400':'Dark Green','#BDB76B':'Dark Khaki','#8B008B':'Dark Magenta','#556B2F':'Dark Olive Green',
+	'#FF8C00':'Darkorange','#9932CC':'Dark Orchid','#8B0000':'Dark Red','#E9967A':'Dark Salmon','#8FBC8F':'Dark Sea Green','#483D8B':'Dark Slate Blue',
+	'#2F4F4F':'Dark Slate Gray','#2F4F4F':'Dark Slate Grey','#00CED1':'Dark Turquoise','#9400D3':'Dark Violet','#FF1493':'Deep Pink','#00BFFF':'Deep Sky Blue',
+	'#696969':'Dim Gray','#696969':'Dim Grey','#1E90FF':'Dodger Blue','#B22222':'Fire Brick','#FFFAF0':'Floral White','#228B22':'Forest Green',
+	'#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'Ghost White','#FFD700':'Gold','#DAA520':'Golden Rod','#808080':'Gray','#808080':'Grey',
+	'#008000':'Green','#ADFF2F':'Green Yellow','#F0FFF0':'Honey Dew','#FF69B4':'Hot Pink','#CD5C5C':'Indian Red','#4B0082':'Indigo','#FFFFF0':'Ivory',
+	'#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'Lavender Blush','#7CFC00':'Lawn Green','#FFFACD':'Lemon Chiffon','#ADD8E6':'Light Blue',
+	'#F08080':'Light Coral','#E0FFFF':'Light Cyan','#FAFAD2':'Light Golden Rod Yellow','#D3D3D3':'Light Gray','#D3D3D3':'Light Grey','#90EE90':'Light Green',
+	'#FFB6C1':'Light Pink','#FFA07A':'Light Salmon','#20B2AA':'Light Sea Green','#87CEFA':'Light Sky Blue','#778899':'Light Slate Gray','#778899':'Light Slate Grey',
+	'#B0C4DE':'Light Steel Blue','#FFFFE0':'Light Yellow','#00FF00':'Lime','#32CD32':'Lime Green','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon',
+	'#66CDAA':'Medium Aqua Marine','#0000CD':'Medium Blue','#BA55D3':'Medium Orchid','#9370D8':'Medium Purple','#3CB371':'Medium Sea Green','#7B68EE':'Medium Slate Blue',
+	'#00FA9A':'Medium Spring Green','#48D1CC':'Medium Turquoise','#C71585':'Medium Violet Red','#191970':'Midnight Blue','#F5FFFA':'Mint Cream','#FFE4E1':'Misty Rose','#FFE4B5':'Moccasin',
+	'#FFDEAD':'Navajo White','#000080':'Navy','#FDF5E6':'Old Lace','#808000':'Olive','#6B8E23':'Olive Drab','#FFA500':'Orange','#FF4500':'Orange Red','#DA70D6':'Orchid',
+	'#EEE8AA':'Pale Golden Rod','#98FB98':'Pale Green','#AFEEEE':'Pale Turquoise','#D87093':'Pale Violet Red','#FFEFD5':'Papaya Whip','#FFDAB9':'Peach Puff',
+	'#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'Powder Blue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'Rosy Brown','#4169E1':'Royal Blue',
+	'#8B4513':'Saddle Brown','#FA8072':'Salmon','#F4A460':'Sandy Brown','#2E8B57':'Sea Green','#FFF5EE':'Sea Shell','#A0522D':'Sienna','#C0C0C0':'Silver',
+	'#87CEEB':'Sky Blue','#6A5ACD':'Slate Blue','#708090':'Slate Gray','#708090':'Slate Grey','#FFFAFA':'Snow','#00FF7F':'Spring Green',
+	'#4682B4':'Steel Blue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet',
+	'#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'White Smoke','#FFFF00':'Yellow','#9ACD32':'Yellow Green'
+};
+
+var namedLookup = {};
+
+function init() {
+	var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color')), key, value;
+
+	tinyMCEPopup.resizeToInnerSize();
+
+	generatePicker();
+	generateWebColors();
+	generateNamedColors();
+
+	if (inputColor) {
+		changeFinalColor(inputColor);
+
+		col = convertHexToRGB(inputColor);
+
+		if (col)
+			updateLight(col.r, col.g, col.b);
+	}
+
+	for (key in named) {
+		value = named[key];
+		namedLookup[value.replace(/\s+/, '').toLowerCase()] = key.replace(/#/, '').toLowerCase();
+	}
+}
+
+function toHexColor(color) {
+	var matches, red, green, blue, toInt = parseInt;
+
+	function hex(value) {
+		value = parseInt(value).toString(16);
+
+		return value.length > 1 ? value : '0' + value; // Padd with leading zero
+	};
+
+	color = tinymce.trim(color);
+	color = color.replace(/^[#]/, '').toLowerCase();  // remove leading '#'
+	color = namedLookup[color] || color;
+
+	matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/.exec(color);
+
+	if (matches) {
+		red   = toInt(matches[1]);
+		green = toInt(matches[2]);
+		blue  = toInt(matches[3]);
+	} else {
+		matches = /^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/.exec(color);
+
+		if (matches) {
+			red   = toInt(matches[1], 16);
+			green = toInt(matches[2], 16);
+			blue  = toInt(matches[3], 16);
+		} else {
+			matches = /^([0-9a-f])([0-9a-f])([0-9a-f])$/.exec(color);
+
+			if (matches) {
+				red   = toInt(matches[1] + matches[1], 16);
+				green = toInt(matches[2] + matches[2], 16);
+				blue  = toInt(matches[3] + matches[3], 16);
+			} else {
+				return '';
+			}
+		}
+	}
+
+	return '#' + hex(red) + hex(green) + hex(blue);
+}
+
+function insertAction() {
+	var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func');
+
+	var hexColor = toHexColor(color);
+
+	if (hexColor === '') {
+		var text = tinyMCEPopup.editor.getLang('advanced_dlg.invalid_color_value');
+		tinyMCEPopup.alert(text + ': ' + color);
+	}
+	else {
+		tinyMCEPopup.restoreSelection();
+
+		if (f)
+			f(hexColor);
+
+		tinyMCEPopup.close();
+	}
+}
+
+function showColor(color, name) {
+	if (name)
+		document.getElementById("colorname").innerHTML = name;
+
+	document.getElementById("preview").style.backgroundColor = color;
+	document.getElementById("color").value = color.toUpperCase();
+}
+
+function convertRGBToHex(col) {
+	var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
+
+	if (!col)
+		return col;
+
+	var rgb = col.replace(re, "$1,$2,$3").split(',');
+	if (rgb.length == 3) {
+		r = parseInt(rgb[0]).toString(16);
+		g = parseInt(rgb[1]).toString(16);
+		b = parseInt(rgb[2]).toString(16);
+
+		r = r.length == 1 ? '0' + r : r;
+		g = g.length == 1 ? '0' + g : g;
+		b = b.length == 1 ? '0' + b : b;
+
+		return "#" + r + g + b;
+	}
+
+	return col;
+}
+
+function convertHexToRGB(col) {
+	if (col.indexOf('#') != -1) {
+		col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
+
+		r = parseInt(col.substring(0, 2), 16);
+		g = parseInt(col.substring(2, 4), 16);
+		b = parseInt(col.substring(4, 6), 16);
+
+		return {r : r, g : g, b : b};
+	}
+
+	return null;
+}
+
+function generatePicker() {
+	var el = document.getElementById('light'), h = '', i;
+
+	for (i = 0; i < detail; i++){
+		h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"'
+		+ ' onclick="changeFinalColor(this.style.backgroundColor)"'
+		+ ' onmousedown="isMouseDown = true; return false;"'
+		+ ' onmouseup="isMouseDown = false;"'
+		+ ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"'
+		+ ' onmouseover="isMouseOver = true;"'
+		+ ' onmouseout="isMouseOver = false;"'
+		+ '></div>';
+	}
+
+	el.innerHTML = h;
+}
+
+function generateWebColors() {
+	var el = document.getElementById('webcolors'), h = '', i;
+
+	if (el.className == 'generated')
+		return;
+
+	// TODO: VoiceOver doesn't seem to support legend as a label referenced by labelledby.
+	h += '<div role="listbox" aria-labelledby="webcolors_title" tabindex="0"><table role="presentation" border="0" cellspacing="1" cellpadding="0">'
+		+ '<tr>';
+
+	for (i=0; i<colors.length; i++) {
+		h += '<td bgcolor="' + colors[i] + '" width="10" height="10">'
+			+ '<a href="javascript:insertAction();" role="option" tabindex="-1" aria-labelledby="web_colors_' + i + '" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');" style="display:block;width:10px;height:10px;overflow:hidden;">';
+		if (tinyMCEPopup.editor.forcedHighContrastMode) {
+			h += '<canvas class="mceColorSwatch" height="10" width="10" data-color="' + colors[i] + '"></canvas>';
+		}
+		h += '<span class="mceVoiceLabel" style="display:none;" id="web_colors_' + i + '">' + colors[i].toUpperCase() + '</span>';
+		h += '</a></td>';
+		if ((i+1) % 18 == 0)
+			h += '</tr><tr>';
+	}
+
+	h += '</table></div>';
+
+	el.innerHTML = h;
+	el.className = 'generated';
+
+	paintCanvas(el);
+	enableKeyboardNavigation(el.firstChild);
+}
+
+function paintCanvas(el) {
+	tinyMCEPopup.getWin().tinymce.each(tinyMCEPopup.dom.select('canvas.mceColorSwatch', el), function(canvas) {
+		var context;
+		if (canvas.getContext && (context = canvas.getContext("2d"))) {
+			context.fillStyle = canvas.getAttribute('data-color');
+			context.fillRect(0, 0, 10, 10);
+		}
+	});
+}
+function generateNamedColors() {
+	var el = document.getElementById('namedcolors'), h = '', n, v, i = 0;
+
+	if (el.className == 'generated')
+		return;
+
+	for (n in named) {
+		v = named[n];
+		h += '<a href="javascript:insertAction();" role="option" tabindex="-1" aria-labelledby="named_colors_' + i + '" onfocus="showColor(\'' + n + '\',\'' + v + '\');" onmouseover="showColor(\'' + n + '\',\'' + v + '\');" style="background-color: ' + n + '">';
+		if (tinyMCEPopup.editor.forcedHighContrastMode) {
+			h += '<canvas class="mceColorSwatch" height="10" width="10" data-color="' + colors[i] + '"></canvas>';
+		}
+		h += '<span class="mceVoiceLabel" style="display:none;" id="named_colors_' + i + '">' + v + '</span>';
+		h += '</a>';
+		i++;
+	}
+
+	el.innerHTML = h;
+	el.className = 'generated';
+
+	paintCanvas(el);
+	enableKeyboardNavigation(el);
+}
+
+function enableKeyboardNavigation(el) {
+	tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', {
+		root: el,
+		items: tinyMCEPopup.dom.select('a', el)
+	}, tinyMCEPopup.dom);
+}
+
+function dechex(n) {
+	return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16);
+}
+
+function computeColor(e) {
+	var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB, pos = tinyMCEPopup.dom.getPos(e.target);
+
+	x = e.offsetX ? e.offsetX : (e.target ? e.clientX - pos.x : 0);
+	y = e.offsetY ? e.offsetY : (e.target ? e.clientY - pos.y : 0);
+
+	partWidth = document.getElementById('colors').width / 6;
+	partDetail = detail / 2;
+	imHeight = document.getElementById('colors').height;
+
+	r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255;
+	g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255	+ (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth);
+	b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth);
+
+	coef = (imHeight - y) / imHeight;
+	r = 128 + (r - 128) * coef;
+	g = 128 + (g - 128) * coef;
+	b = 128 + (b - 128) * coef;
+
+	changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b));
+	updateLight(r, g, b);
+}
+
+function updateLight(r, g, b) {
+	var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color;
+
+	for (i=0; i<detail; i++) {
+		if ((i>=0) && (i<partDetail)) {
+			finalCoef = i / partDetail;
+			finalR = dechex(255 - (255 - r) * finalCoef);
+			finalG = dechex(255 - (255 - g) * finalCoef);
+			finalB = dechex(255 - (255 - b) * finalCoef);
+		} else {
+			finalCoef = 2 - i / partDetail;
+			finalR = dechex(r * finalCoef);
+			finalG = dechex(g * finalCoef);
+			finalB = dechex(b * finalCoef);
+		}
+
+		color = finalR + finalG + finalB;
+
+		setCol('gs' + i, '#'+color);
+	}
+}
+
+function changeFinalColor(color) {
+	if (color.indexOf('#') == -1)
+		color = convertRGBToHex(color);
+
+	setCol('preview', color);
+	document.getElementById('color').value = color;
+}
+
+function setCol(e, c) {
+	try {
+		document.getElementById(e).style.backgroundColor = c;
+	} catch (ex) {
+		// Ignore IE warning
+	}
+}
+
+tinyMCEPopup.onInit.add(init);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js
new file mode 100644
index 0000000..313ca5d
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js
@@ -0,0 +1,251 @@
+var ImageDialog = {
+	preInit : function() {
+		var url;
+
+		tinyMCEPopup.requireLangPack();
+
+		if (url = tinyMCEPopup.getParam("external_image_list_url"))
+			document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
+	},
+
+	init : function() {
+		var f = document.forms[0], ed = tinyMCEPopup.editor;
+
+		// Setup browse button
+		document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
+		if (isVisible('srcbrowser'))
+			document.getElementById('src').style.width = '180px';
+
+		e = ed.selection.getNode();
+
+		this.fillFileList('image_list', tinyMCEPopup.getParam('external_image_list', 'tinyMCEImageList'));
+
+		if (e.nodeName == 'IMG') {
+			f.src.value = ed.dom.getAttrib(e, 'src');
+			f.alt.value = ed.dom.getAttrib(e, 'alt');
+			f.border.value = this.getAttrib(e, 'border');
+			f.vspace.value = this.getAttrib(e, 'vspace');
+			f.hspace.value = this.getAttrib(e, 'hspace');
+			f.width.value = ed.dom.getAttrib(e, 'width');
+			f.height.value = ed.dom.getAttrib(e, 'height');
+			f.insert.value = ed.getLang('update');
+			this.styleVal = ed.dom.getAttrib(e, 'style');
+			selectByValue(f, 'image_list', f.src.value);
+			selectByValue(f, 'align', this.getAttrib(e, 'align'));
+			this.updateStyle();
+		}
+	},
+
+	fillFileList : function(id, l) {
+		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
+
+		l = typeof(l) === 'function' ? l() : window[l];
+
+		if (l && l.length > 0) {
+			lst.options[lst.options.length] = new Option('', '');
+
+			tinymce.each(l, function(o) {
+				lst.options[lst.options.length] = new Option(o[0], o[1]);
+			});
+		} else
+			dom.remove(dom.getParent(id, 'tr'));
+	},
+
+	update : function() {
+		var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;
+
+		tinyMCEPopup.restoreSelection();
+
+		if (f.src.value === '') {
+			if (ed.selection.getNode().nodeName == 'IMG') {
+				ed.dom.remove(ed.selection.getNode());
+				ed.execCommand('mceRepaint');
+			}
+
+			tinyMCEPopup.close();
+			return;
+		}
+
+		if (!ed.settings.inline_styles) {
+			args = tinymce.extend(args, {
+				vspace : nl.vspace.value,
+				hspace : nl.hspace.value,
+				border : nl.border.value,
+				align : getSelectValue(f, 'align')
+			});
+		} else
+			args.style = this.styleVal;
+
+		tinymce.extend(args, {
+			src : f.src.value.replace(/ /g, '%20'),
+			alt : f.alt.value,
+			width : f.width.value,
+			height : f.height.value
+		});
+
+		el = ed.selection.getNode();
+
+		if (el && el.nodeName == 'IMG') {
+			ed.dom.setAttribs(el, args);
+			tinyMCEPopup.editor.execCommand('mceRepaint');
+			tinyMCEPopup.editor.focus();
+		} else {
+			tinymce.each(args, function(value, name) {
+				if (value === "") {
+					delete args[name];
+				}
+			});
+
+			ed.execCommand('mceInsertContent', false, tinyMCEPopup.editor.dom.createHTML('img', args), {skip_undo : 1});
+			ed.undoManager.add();
+		}
+
+		tinyMCEPopup.close();
+	},
+
+	updateStyle : function() {
+		var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];
+
+		if (tinyMCEPopup.editor.settings.inline_styles) {
+			st = tinyMCEPopup.dom.parseStyle(this.styleVal);
+
+			// Handle align
+			v = getSelectValue(f, 'align');
+			if (v) {
+				if (v == 'left' || v == 'right') {
+					st['float'] = v;
+					delete st['vertical-align'];
+				} else {
+					st['vertical-align'] = v;
+					delete st['float'];
+				}
+			} else {
+				delete st['float'];
+				delete st['vertical-align'];
+			}
+
+			// Handle border
+			v = f.border.value;
+			if (v || v == '0') {
+				if (v == '0')
+					st['border'] = '0';
+				else
+					st['border'] = v + 'px solid black';
+			} else
+				delete st['border'];
+
+			// Handle hspace
+			v = f.hspace.value;
+			if (v) {
+				delete st['margin'];
+				st['margin-left'] = v + 'px';
+				st['margin-right'] = v + 'px';
+			} else {
+				delete st['margin-left'];
+				delete st['margin-right'];
+			}
+
+			// Handle vspace
+			v = f.vspace.value;
+			if (v) {
+				delete st['margin'];
+				st['margin-top'] = v + 'px';
+				st['margin-bottom'] = v + 'px';
+			} else {
+				delete st['margin-top'];
+				delete st['margin-bottom'];
+			}
+
+			// Merge
+			st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st), 'img');
+			this.styleVal = dom.serializeStyle(st, 'img');
+		}
+	},
+
+	getAttrib : function(e, at) {
+		var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;
+
+		if (ed.settings.inline_styles) {
+			switch (at) {
+				case 'align':
+					if (v = dom.getStyle(e, 'float'))
+						return v;
+
+					if (v = dom.getStyle(e, 'vertical-align'))
+						return v;
+
+					break;
+
+				case 'hspace':
+					v = dom.getStyle(e, 'margin-left')
+					v2 = dom.getStyle(e, 'margin-right');
+					if (v && v == v2)
+						return parseInt(v.replace(/[^0-9]/g, ''));
+
+					break;
+
+				case 'vspace':
+					v = dom.getStyle(e, 'margin-top')
+					v2 = dom.getStyle(e, 'margin-bottom');
+					if (v && v == v2)
+						return parseInt(v.replace(/[^0-9]/g, ''));
+
+					break;
+
+				case 'border':
+					v = 0;
+
+					tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {
+						sv = dom.getStyle(e, 'border-' + sv + '-width');
+
+						// False or not the same as prev
+						if (!sv || (sv != v && v !== 0)) {
+							v = 0;
+							return false;
+						}
+
+						if (sv)
+							v = sv;
+					});
+
+					if (v)
+						return parseInt(v.replace(/[^0-9]/g, ''));
+
+					break;
+			}
+		}
+
+		if (v = dom.getAttrib(e, at))
+			return v;
+
+		return '';
+	},
+
+	resetImageData : function() {
+		var f = document.forms[0];
+
+		f.width.value = f.height.value = "";	
+	},
+
+	updateImageData : function() {
+		var f = document.forms[0], t = ImageDialog;
+
+		if (f.width.value == "")
+			f.width.value = t.preloadImg.width;
+
+		if (f.height.value == "")
+			f.height.value = t.preloadImg.height;
+	},
+
+	getImageData : function() {
+		var f = document.forms[0];
+
+		this.preloadImg = new Image();
+		this.preloadImg.onload = this.updateImageData;
+		this.preloadImg.onerror = this.resetImageData;
+		this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);
+	}
+};
+
+ImageDialog.preInit();
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js
new file mode 100644
index 0000000..e67d868
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js
@@ -0,0 +1,153 @@
+tinyMCEPopup.requireLangPack();
+
+var LinkDialog = {
+	preInit : function() {
+		var url;
+
+		if (url = tinyMCEPopup.getParam("external_link_list_url"))
+			document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
+	},
+
+	init : function() {
+		var f = document.forms[0], ed = tinyMCEPopup.editor;
+
+		// Setup browse button
+		document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link');
+		if (isVisible('hrefbrowser'))
+			document.getElementById('href').style.width = '180px';
+
+		this.fillClassList('class_list');
+		this.fillFileList('link_list', 'tinyMCELinkList');
+		this.fillTargetList('target_list');
+
+		if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {
+			f.href.value = ed.dom.getAttrib(e, 'href');
+			f.linktitle.value = ed.dom.getAttrib(e, 'title');
+			f.insert.value = ed.getLang('update');
+			selectByValue(f, 'link_list', f.href.value);
+			selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));
+			selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));
+		}
+	},
+
+	update : function() {
+		var f = document.forms[0], ed = tinyMCEPopup.editor, e, b, href = f.href.value.replace(/ /g, '%20');
+
+		tinyMCEPopup.restoreSelection();
+		e = ed.dom.getParent(ed.selection.getNode(), 'A');
+
+		// Remove element if there is no href
+		if (!f.href.value) {
+			if (e) {
+				b = ed.selection.getBookmark();
+				ed.dom.remove(e, 1);
+				ed.selection.moveToBookmark(b);
+				tinyMCEPopup.execCommand("mceEndUndoLevel");
+				tinyMCEPopup.close();
+				return;
+			}
+		}
+
+		// Create new anchor elements
+		if (e == null) {
+			ed.getDoc().execCommand("unlink", false, null);
+			tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
+
+			tinymce.each(ed.dom.select("a"), function(n) {
+				if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {
+					e = n;
+
+					ed.dom.setAttribs(e, {
+						href : href,
+						title : f.linktitle.value,
+						target : f.target_list ? getSelectValue(f, "target_list") : null,
+						'class' : f.class_list ? getSelectValue(f, "class_list") : null
+					});
+				}
+			});
+		} else {
+			ed.dom.setAttribs(e, {
+				href : href,
+				title : f.linktitle.value,
+				target : f.target_list ? getSelectValue(f, "target_list") : null,
+				'class' : f.class_list ? getSelectValue(f, "class_list") : null
+			});
+		}
+
+		// Don't move caret if selection was image
+		if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {
+			ed.focus();
+			ed.selection.select(e);
+			ed.selection.collapse(0);
+			tinyMCEPopup.storeSelection();
+		}
+
+		tinyMCEPopup.execCommand("mceEndUndoLevel");
+		tinyMCEPopup.close();
+	},
+
+	checkPrefix : function(n) {
+		if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))
+			n.value = 'mailto:' + n.value;
+
+		if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))
+			n.value = 'http://' + n.value;
+	},
+
+	fillFileList : function(id, l) {
+		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
+
+		l = window[l];
+
+		if (l && l.length > 0) {
+			lst.options[lst.options.length] = new Option('', '');
+
+			tinymce.each(l, function(o) {
+				lst.options[lst.options.length] = new Option(o[0], o[1]);
+			});
+		} else
+			dom.remove(dom.getParent(id, 'tr'));
+	},
+
+	fillClassList : function(id) {
+		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
+
+		if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
+			cl = [];
+
+			tinymce.each(v.split(';'), function(v) {
+				var p = v.split('=');
+
+				cl.push({'title' : p[0], 'class' : p[1]});
+			});
+		} else
+			cl = tinyMCEPopup.editor.dom.getClasses();
+
+		if (cl.length > 0) {
+			lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
+
+			tinymce.each(cl, function(o) {
+				lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
+			});
+		} else
+			dom.remove(dom.getParent(id, 'tr'));
+	},
+
+	fillTargetList : function(id) {
+		var dom = tinyMCEPopup.dom, lst = dom.get(id), v;
+
+		lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
+		lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self');
+		lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank');
+
+		if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) {
+			tinymce.each(v.split(','), function(v) {
+				v = v.split('=');
+				lst.options[lst.options.length] = new Option(v[0], v[1]);
+			});
+		}
+	}
+};
+
+LinkDialog.preInit();
+tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js
new file mode 100644
index 0000000..d417937
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js
@@ -0,0 +1,78 @@
+tinyMCEPopup.requireLangPack();
+tinyMCEPopup.onInit.add(onLoadInit);
+
+function saveContent() {
+	tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true});
+	tinyMCEPopup.close();
+}
+
+function onLoadInit() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	// Remove Gecko spellchecking
+	if (tinymce.isGecko)
+		document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");
+
+	document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true});
+
+	if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {
+		turnWrapOn();
+		document.getElementById('wraped').checked = true;
+	}
+
+	resizeInputs();
+}
+
+function setWrap(val) {
+	var v, n, s = document.getElementById('htmlSource');
+
+	s.wrap = val;
+
+	if (!tinymce.isIE) {
+		v = s.value;
+		n = s.cloneNode(false);
+		n.setAttribute("wrap", val);
+		s.parentNode.replaceChild(n, s);
+		n.value = v;
+	}
+}
+
+function setWhiteSpaceCss(value) {
+	var el = document.getElementById('htmlSource');
+	tinymce.DOM.setStyle(el, 'white-space', value);
+}
+
+function turnWrapOff() {
+	if (tinymce.isWebKit) {
+		setWhiteSpaceCss('pre');
+	} else {
+		setWrap('off');
+	}
+}
+
+function turnWrapOn() {
+	if (tinymce.isWebKit) {
+		setWhiteSpaceCss('pre-wrap');
+	} else {
+		setWrap('soft');
+	}
+}
+
+function toggleWordWrap(elm) {
+	if (elm.checked) {
+		turnWrapOn();
+	} else {
+		turnWrapOff();
+	}
+}
+
+function resizeInputs() {
+	var vp = tinyMCEPopup.dom.getViewPort(window), el;
+
+	el = document.getElementById('htmlSource');
+
+	if (el) {
+		el.style.width = (vp.w - 20) + 'px';
+		el.style.height = (vp.h - 65) + 'px';
+	}
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js
new file mode 100644
index 0000000..6e58481
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.advanced',{"underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)",dd:"Definition Description",dt:"Definition Term ",samp:"Code Sample",code:"Code",blockquote:"Block Quote",h6:"Heading 6",h5:"Heading 5",h4:"Heading 4",h3:"Heading 3",h2:"Heading 2",h1:"Heading 1",pre:"Preformatted",address:"Address",div:"DIV",paragraph:"Paragraph",block:"Format",fontdefault:"Font Family","font_size":"Font Size","style_select":"Styles","anchor_d [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js
new file mode 100644
index 0000000..50cd87e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.advanced_dlg', {"link_list":"Link List","link_is_external":"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?","link_is_email":"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?","link_titlefield":"Title","link_target_blank":"Open Link in a New Window","link_target_same":"Open Link in the Same Window","link_target":"Target","link_url":"Link URL","link_title":"Insert/Edit Li [...]
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/link.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/link.htm
new file mode 100644
index 0000000..4a2459f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/link.htm
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advanced_dlg.link_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script type="text/javascript" src="../../utils/validate.js"></script>
+	<script type="text/javascript" src="js/link.js"></script>
+</head>
+<body id="link" style="display: none">
+<form onsubmit="LinkDialog.update();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.link_title}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<table border="0" cellpadding="4" cellspacing="0">
+				<tr>
+					<td class="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td>
+					<td><table border="0" cellspacing="0" cellpadding="0"> 
+						<tr> 
+							<td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td> 
+							<td id="hrefbrowsercontainer"> </td>
+						</tr> 
+					</table></td>
+				</tr>
+				<tr>
+					<td><label for="link_list">{#advanced_dlg.link_list}</label></td>
+					<td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>
+				</tr>
+				<tr>
+					<td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td>
+					<td><select id="target_list" name="target_list"></select></td>
+				</tr>
+				<tr>
+					<td class="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td>
+					<td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>
+				</tr>
+				<tr>
+					<td><label for="class_list">{#class_name}</label></td>
+					<td><select id="class_list" name="class_list"></select></td>
+				</tr>
+			</table>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<input type="submit" id="insert" name="insert" value="{#insert}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
+	</div>
+</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm
new file mode 100644
index 0000000..436091f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<title>{#advanced_dlg.accessibility_help}</title>
+		<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+		<script type="text/javascript">tinyMCEPopup.requireLangPack();</script>
+	</head>
+	<body id="content">
+		<h1>{#advanced_dlg.accessibility_usage_title}</h1>
+		<h2>Toolbars</h2>
+		<p>Press ALT-F10 to move focus to the toolbars. Navigate through the buttons using the arrow keys.
+		Press enter to activate a button and return focus to the editor.
+		Press escape to return focus to the editor without performing any actions.</p>
+		
+		<h2>Status Bar</h2>
+		<p>To access the editor status bar, press ALT-F11. Use the left and right arrow keys to navigate between elements in the path.
+		Press enter or space to select an element. Press escape to return focus to the editor without changing the selection.</p>
+		
+		<h2>Context Menu</h2>
+		<p>Press shift-F10 to activate the context menu. Use the up and down arrow keys to move between menu items. To open sub-menus press the right arrow key.
+		To close submenus press the left arrow key.  Press escape to close the context menu.</p>
+		
+		<h1>Keyboard Shortcuts</h1>
+		<table>
+			<thead>
+				<tr>
+					<th>Keystroke</th>
+					<th>Function</th>
+				</tr>
+			</thead>
+			<tbody>
+				<tr>
+					<td>Control-B</td><td>Bold</td>
+				</tr>
+				<tr>
+					<td>Control-I</td><td>Italic</td>
+				</tr>
+				<tr>
+					<td>Control-Z</td><td>Undo</td>
+				</tr>
+				<tr>
+					<td>Control-Y</td><td>Redo</td>
+				</tr>
+			</tbody>
+		</table>
+	</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css
new file mode 100644
index 0000000..4d63ca9
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css
@@ -0,0 +1,50 @@
+body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}
+body {background:#FFF;}
+body.mceForceColors {background:#FFF; color:#000;}
+body.mceBrowserDefaults {background:transparent; color:inherit; font-size:inherit; font-family:inherit;}
+h1 {font-size: 2em}
+h2 {font-size: 1.5em}
+h3 {font-size: 1.17em}
+h4 {font-size: 1em}
+h5 {font-size: .83em}
+h6 {font-size: .75em}
+.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}
+a.mceItemAnchor {display:inline-block; -webkit-user-select:all; -webkit-user-modify:read-only; -moz-user-select:all; -moz-user-modify:read-only; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat center center}
+span.mceItemNbsp {background: #DDD}
+td.mceSelected, th.mceSelected {background-color:#3399ff !important}
+img {border:0;}
+table, img, hr, .mceItemAnchor {cursor:default}
+table td, table th {cursor:text}
+ins {border-bottom:1px solid green; text-decoration: none; color:green}
+del {color:red; text-decoration:line-through}
+cite {border-bottom:1px dashed blue}
+acronym {border-bottom:1px dotted #CCC; cursor:help}
+abbr {border-bottom:1px dashed #CCC; cursor:help}
+
+/* IE */
+* html body {
+scrollbar-3dlight-color:#F0F0EE;
+scrollbar-arrow-color:#676662;
+scrollbar-base-color:#F0F0EE;
+scrollbar-darkshadow-color:#DDD;
+scrollbar-face-color:#E0E0DD;
+scrollbar-highlight-color:#F0F0EE;
+scrollbar-shadow-color:#F0F0EE;
+scrollbar-track-color:#F5F5F5;
+}
+
+img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}
+font[face=mceinline] {font-family:inherit !important}
+*[contentEditable]:focus {outline:0}
+
+.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc}
+.mceItemShockWave {background-image:url(../../img/shockwave.gif)}
+.mceItemFlash {background-image:url(../../img/flash.gif)}
+.mceItemQuickTime {background-image:url(../../img/quicktime.gif)}
+.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)}
+.mceItemRealMedia {background-image:url(../../img/realmedia.gif)}
+.mceItemVideo {background-image:url(../../img/video.gif)}
+.mceItemAudio {background-image:url(../../img/video.gif)}
+.mceItemEmbeddedAudio {background-image:url(../../img/video.gif)}
+.mceItemIframe {background-image:url(../../img/iframe.gif)}
+.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css
new file mode 100644
index 0000000..1f5598c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css
@@ -0,0 +1,117 @@
+/* Generic */
+body {
+font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;
+scrollbar-3dlight-color:#F0F0EE;
+scrollbar-arrow-color:#676662;
+scrollbar-base-color:#F0F0EE;
+scrollbar-darkshadow-color:#DDDDDD;
+scrollbar-face-color:#E0E0DD;
+scrollbar-highlight-color:#F0F0EE;
+scrollbar-shadow-color:#F0F0EE;
+scrollbar-track-color:#F5F5F5;
+background:#F0F0EE;
+padding:0;
+margin:8px 8px 0 8px;
+}
+
+html {background:#F0F0EE;}
+td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
+textarea {resize:none;outline:none;}
+a:link, a:visited {color:black;}
+a:hover {color:#2B6FB6;}
+.nowrap {white-space: nowrap}
+
+/* Forms */
+fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}
+legend {color:#2B6FB6; font-weight:bold;}
+label.msg {display:none;}
+label.invalid {color:#EE0000; display:inline;}
+input.invalid {border:1px solid #EE0000;}
+input {background:#FFF; border:1px solid #CCC;}
+input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
+input, select, textarea {border:1px solid #808080;}
+input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}
+input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}
+.input_noborder {border:0;}
+
+/* Buttons */
+#insert, #cancel, input.button, .updateButton {
+border:0; margin:0; padding:0;
+font-weight:bold;
+width:94px; height:26px;
+background:url(img/buttons.png) 0 -26px;
+cursor:pointer;
+padding-bottom:2px;
+float:left;
+}
+
+#insert {background:url(img/buttons.png) 0 -52px}
+#cancel {background:url(img/buttons.png) 0 0; float:right}
+
+/* Browse */
+a.pickcolor, a.browse {text-decoration:none}
+a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
+.mceOldBoxModel a.browse span {width:22px; height:20px;}
+a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
+a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
+a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
+.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
+a.pickcolor:hover span {background-color:#B2BBD0;}
+a.pickcolor:hover span.disabled {}
+
+/* Charmap */
+table.charmap {border:1px solid #AAA; text-align:center}
+td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}
+#charmap a {display:block; color:#000; text-decoration:none; border:0}
+#charmap a:hover {background:#CCC;color:#2B6FB6}
+#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}
+#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}
+
+/* Source */
+.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}
+.mceActionPanel {margin-top:5px;}
+
+/* Tabs classes */
+.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;}
+.tabs ul {margin:0; padding:0; list-style:none;}
+.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}
+.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}
+.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}
+.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;}
+.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}
+.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}
+
+/* Panels */
+.panel_wrapper div.panel {display:none;}
+.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}
+.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}
+
+/* Columns */
+.column {float:left;}
+.properties {width:100%;}
+.properties .column1 {}
+.properties .column2 {text-align:left;}
+
+/* Titles */
+h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}
+h3 {font-size:14px;}
+.title {font-size:12px; font-weight:bold; color:#2B6FB6;}
+
+/* Dialog specific */
+#link .panel_wrapper, #link div.current {height:125px;}
+#image .panel_wrapper, #image div.current {height:200px;}
+#plugintable thead {font-weight:bold; background:#DDD;}
+#plugintable, #about #plugintable td {border:1px solid #919B9C;}
+#plugintable {width:96%; margin-top:10px;}
+#pluginscontainer {height:290px; overflow:auto;}
+#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
+#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
+#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
+#colorpicker #light div {overflow:hidden;}
+#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
+#colorpicker .panel_wrapper div.current {height:175px;}
+#colorpicker #namedcolors {width:150px;}
+#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
+#colorpicker #colornamecontainer {margin-top:5px;}
+#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png
new file mode 100644
index 0000000..1e53560
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif
new file mode 100644
index 0000000..d2f9367
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif
new file mode 100644
index 0000000..85e31df
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif
new file mode 100644
index 0000000..adfdddc
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif
new file mode 100644
index 0000000..5bb90fd
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif
new file mode 100644
index 0000000..06812cb
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css
new file mode 100644
index 0000000..e05b0ff
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css
@@ -0,0 +1,215 @@
+/* Reset */
+.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}
+.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}
+.defaultSkin table td {vertical-align:middle}
+
+/* Containers */
+.defaultSkin table {direction:ltr;background:transparent}
+.defaultSkin iframe {display:block;}
+.defaultSkin .mceToolbar {height:26px}
+.defaultSkin .mceLeft {text-align:left}
+.defaultSkin .mceRight {text-align:right}
+
+/* External */
+.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;}
+.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}
+.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}
+
+/* Layout */
+.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC}
+.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC}
+.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC}
+.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;}
+.defaultSkin td.mceToolbar {background:#F0F0EE; padding-top:1px; vertical-align:top}
+.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC}
+.defaultSkin .mceStatusbar {background:#F0F0EE; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px}
+.defaultSkin .mceStatusbar div {float:left; margin:2px}
+.defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0}
+.defaultSkin .mceStatusbar a:hover {text-decoration:underline}
+.defaultSkin table.mceToolbar {margin-left:3px}
+.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px}
+.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
+.defaultSkin td.mceCenter {text-align:center;}
+.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;}
+.defaultSkin td.mceRight table {margin:0 0 0 auto;}
+
+/* Button */
+.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px}
+.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}
+.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0}
+.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+.defaultSkin .mceButtonLabeled {width:auto}
+.defaultSkin .mceButtonLabeled span.mceIcon {float:left}
+.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}
+.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888}
+
+/* Separator */
+.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px}
+
+/* ListBox */
+.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block}
+.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}
+.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;}
+.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF}
+.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0}
+.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;}
+.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden}
+.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px}
+.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;}
+.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;}
+
+/* SplitButton */
+.defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr}
+.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block}
+.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;}
+.defaultSkin .mceSplitButton span.mceAction {width:20px; background-image:url(../../img/icons.gif);}
+.defaultSkin .mceSplitButton a.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0; border:1px solid #F0F0EE;}
+.defaultSkin .mceSplitButton span.mceOpen {display:none}
+.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0}
+.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {background-color:#B2BBD0; border:1px solid #0A246A;}
+.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled a.mceOpen {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0}
+.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;}
+
+/* ColorSplitButton */
+.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}
+.defaultSkin .mceColorSplitMenu td {padding:2px}
+.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}
+.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}
+.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}
+.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}
+.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A}
+.defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a}
+.defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px}
+
+/* Menu */
+.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8}
+.defaultSkin .mceNoIcons span.mceIcon {width:0;}
+.defaultSkin .mceNoIcons a .mceText {padding-left:10px}
+.defaultSkin .mceMenu table {background:#FFF}
+.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block}
+.defaultSkin .mceMenu td {height:20px}
+.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0}
+.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}
+.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px}
+.defaultSkin .mceMenu pre.mceText {font-family:Monospace}
+.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}
+.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3}
+.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px}
+.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD}
+.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}
+.defaultSkin .mceMenuItemDisabled .mceText {color:#888}
+.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)}
+.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center}
+.defaultSkin .mceMenu span.mceMenuLine {display:none}
+.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;}
+.defaultSkin .mceMenuItem td, .defaultSkin .mceMenuItem th {line-height: normal}
+
+/* Progress,Resize */
+.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF}
+.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
+
+/* Formats */
+.defaultSkin .mce_formatPreview a {font-size:10px}
+.defaultSkin .mce_p span.mceText {}
+.defaultSkin .mce_address span.mceText {font-style:italic}
+.defaultSkin .mce_pre span.mceText {font-family:monospace}
+.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}
+.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}
+.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}
+.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}
+.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}
+.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}
+
+/* Theme */
+.defaultSkin span.mce_bold {background-position:0 0}
+.defaultSkin span.mce_italic {background-position:-60px 0}
+.defaultSkin span.mce_underline {background-position:-140px 0}
+.defaultSkin span.mce_strikethrough {background-position:-120px 0}
+.defaultSkin span.mce_undo {background-position:-160px 0}
+.defaultSkin span.mce_redo {background-position:-100px 0}
+.defaultSkin span.mce_cleanup {background-position:-40px 0}
+.defaultSkin span.mce_bullist {background-position:-20px 0}
+.defaultSkin span.mce_numlist {background-position:-80px 0}
+.defaultSkin span.mce_justifyleft {background-position:-460px 0}
+.defaultSkin span.mce_justifyright {background-position:-480px 0}
+.defaultSkin span.mce_justifycenter {background-position:-420px 0}
+.defaultSkin span.mce_justifyfull {background-position:-440px 0}
+.defaultSkin span.mce_anchor {background-position:-200px 0}
+.defaultSkin span.mce_indent {background-position:-400px 0}
+.defaultSkin span.mce_outdent {background-position:-540px 0}
+.defaultSkin span.mce_link {background-position:-500px 0}
+.defaultSkin span.mce_unlink {background-position:-640px 0}
+.defaultSkin span.mce_sub {background-position:-600px 0}
+.defaultSkin span.mce_sup {background-position:-620px 0}
+.defaultSkin span.mce_removeformat {background-position:-580px 0}
+.defaultSkin span.mce_newdocument {background-position:-520px 0}
+.defaultSkin span.mce_image {background-position:-380px 0}
+.defaultSkin span.mce_help {background-position:-340px 0}
+.defaultSkin span.mce_code {background-position:-260px 0}
+.defaultSkin span.mce_hr {background-position:-360px 0}
+.defaultSkin span.mce_visualaid {background-position:-660px 0}
+.defaultSkin span.mce_charmap {background-position:-240px 0}
+.defaultSkin span.mce_paste {background-position:-560px 0}
+.defaultSkin span.mce_copy {background-position:-700px 0}
+.defaultSkin span.mce_cut {background-position:-680px 0}
+.defaultSkin span.mce_blockquote {background-position:-220px 0}
+.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0}
+.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0}
+.defaultSkin span.mce_forecolorpicker {background-position:-720px 0}
+.defaultSkin span.mce_backcolorpicker {background-position:-760px 0}
+
+/* Plugins */
+.defaultSkin span.mce_advhr {background-position:-0px -20px}
+.defaultSkin span.mce_ltr {background-position:-20px -20px}
+.defaultSkin span.mce_rtl {background-position:-40px -20px}
+.defaultSkin span.mce_emotions {background-position:-60px -20px}
+.defaultSkin span.mce_fullpage {background-position:-80px -20px}
+.defaultSkin span.mce_fullscreen {background-position:-100px -20px}
+.defaultSkin span.mce_iespell {background-position:-120px -20px}
+.defaultSkin span.mce_insertdate {background-position:-140px -20px}
+.defaultSkin span.mce_inserttime {background-position:-160px -20px}
+.defaultSkin span.mce_absolute {background-position:-180px -20px}
+.defaultSkin span.mce_backward {background-position:-200px -20px}
+.defaultSkin span.mce_forward {background-position:-220px -20px}
+.defaultSkin span.mce_insert_layer {background-position:-240px -20px}
+.defaultSkin span.mce_insertlayer {background-position:-260px -20px}
+.defaultSkin span.mce_movebackward {background-position:-280px -20px}
+.defaultSkin span.mce_moveforward {background-position:-300px -20px}
+.defaultSkin span.mce_media {background-position:-320px -20px}
+.defaultSkin span.mce_nonbreaking {background-position:-340px -20px}
+.defaultSkin span.mce_pastetext {background-position:-360px -20px}
+.defaultSkin span.mce_pasteword {background-position:-380px -20px}
+.defaultSkin span.mce_selectall {background-position:-400px -20px}
+.defaultSkin span.mce_preview {background-position:-420px -20px}
+.defaultSkin span.mce_print {background-position:-440px -20px}
+.defaultSkin span.mce_cancel {background-position:-460px -20px}
+.defaultSkin span.mce_save {background-position:-480px -20px}
+.defaultSkin span.mce_replace {background-position:-500px -20px}
+.defaultSkin span.mce_search {background-position:-520px -20px}
+.defaultSkin span.mce_styleprops {background-position:-560px -20px}
+.defaultSkin span.mce_table {background-position:-580px -20px}
+.defaultSkin span.mce_cell_props {background-position:-600px -20px}
+.defaultSkin span.mce_delete_table {background-position:-620px -20px}
+.defaultSkin span.mce_delete_col {background-position:-640px -20px}
+.defaultSkin span.mce_delete_row {background-position:-660px -20px}
+.defaultSkin span.mce_col_after {background-position:-680px -20px}
+.defaultSkin span.mce_col_before {background-position:-700px -20px}
+.defaultSkin span.mce_row_after {background-position:-720px -20px}
+.defaultSkin span.mce_row_before {background-position:-740px -20px}
+.defaultSkin span.mce_merge_cells {background-position:-760px -20px}
+.defaultSkin span.mce_table_props {background-position:-980px -20px}
+.defaultSkin span.mce_row_props {background-position:-780px -20px}
+.defaultSkin span.mce_split_cells {background-position:-800px -20px}
+.defaultSkin span.mce_template {background-position:-820px -20px}
+.defaultSkin span.mce_visualchars {background-position:-840px -20px}
+.defaultSkin span.mce_abbr {background-position:-860px -20px}
+.defaultSkin span.mce_acronym {background-position:-880px -20px}
+.defaultSkin span.mce_attribs {background-position:-900px -20px}
+.defaultSkin span.mce_cite {background-position:-920px -20px}
+.defaultSkin span.mce_del {background-position:-940px -20px}
+.defaultSkin span.mce_ins {background-position:-960px -20px}
+.defaultSkin span.mce_pagebreak {background-position:0 -40px}
+.defaultSkin span.mce_restoredraft {background-position:-20px -40px}
+.defaultSkin span.mce_spellchecker {background-position:-540px -20px}
+.defaultSkin span.mce_visualblocks {background-position: -40px -40px}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css
new file mode 100644
index 0000000..ee3d369
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css
@@ -0,0 +1,24 @@
+body, td, pre { margin:8px;}
+body.mceForceColors {background:#FFF; color:#000;}
+h1 {font-size: 2em}
+h2 {font-size: 1.5em}
+h3 {font-size: 1.17em}
+h4 {font-size: 1em}
+h5 {font-size: .83em}
+h6 {font-size: .75em}
+.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}
+a.mceItemAnchor {display:inline-block; width:11px !important; height:11px  !important; background:url(../default/img/items.gif) no-repeat 0 0;}
+span.mceItemNbsp {background: #DDD}
+td.mceSelected, th.mceSelected {background-color:#3399ff !important}
+img {border:0;}
+table, img, hr, .mceItemAnchor {cursor:default}
+table td, table th {cursor:text}
+ins {border-bottom:1px solid green; text-decoration: none; color:green}
+del {color:red; text-decoration:line-through}
+cite {border-bottom:1px dashed blue}
+acronym {border-bottom:1px dotted #CCC; cursor:help}
+abbr {border-bottom:1px dashed #CCC; cursor:help}
+
+img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}
+font[face=mceinline] {font-family:inherit !important}
+*[contentEditable]:focus {outline:0}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css
new file mode 100644
index 0000000..dafcd28
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css
@@ -0,0 +1,105 @@
+/* Generic */
+body {
+font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;
+background:#F0F0EE;
+color: black;
+padding:0;
+margin:8px 8px 0 8px;
+}
+
+html {background:#F0F0EE; color:#000;}
+td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
+textarea {resize:none;outline:none;}
+a:link, a:visited {color:black;background-color:transparent;}
+a:hover {color:#2B6FB6;background-color:transparent;}
+.nowrap {white-space: nowrap}
+
+/* Forms */
+fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}
+legend {color:#2B6FB6; font-weight:bold;}
+label.msg {display:none;}
+label.invalid {color:#EE0000; display:inline;background-color:transparent;}
+input.invalid {border:1px solid #EE0000;background-color:transparent;}
+input {background:#FFF; border:1px solid #CCC;color:black;}
+input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
+input, select, textarea {border:1px solid #808080;}
+input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}
+input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}
+.input_noborder {border:0;}
+
+/* Buttons */
+#insert, #cancel, input.button, .updateButton {
+font-weight:bold;
+width:94px; height:23px;
+cursor:pointer;
+padding-bottom:2px;
+float:left;
+}
+
+#cancel {float:right}
+
+/* Browse */
+a.pickcolor, a.browse {text-decoration:none}
+a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
+.mceOldBoxModel a.browse span {width:22px; height:20px;}
+a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
+a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
+a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
+.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
+a.pickcolor:hover span {background-color:#B2BBD0;}
+a.pickcolor:hover span.disabled {}
+
+/* Charmap */
+table.charmap {border:1px solid #AAA; text-align:center}
+td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}
+#charmap a {display:block; color:#000; text-decoration:none; border:0}
+#charmap a:hover {background:#CCC;color:#2B6FB6}
+#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}
+#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}
+
+/* Source */
+.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}
+.mceActionPanel {margin-top:5px;}
+
+/* Tabs classes */
+.tabs {width:100%; height:18px; line-height:normal;}
+.tabs ul {margin:0; padding:0; list-style:none;}
+.tabs li {float:left; border: 1px solid black; border-bottom:0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block; cursor:pointer;}
+.tabs li.current {font-weight: bold; margin-right:2px;}
+.tabs span {float:left; display:block; padding:0px 10px 0 0;}
+.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}
+.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}
+
+/* Panels */
+.panel_wrapper div.panel {display:none;}
+.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}
+.panel_wrapper {border:1px solid #919B9C; padding:10px; padding-top:5px; clear:both; background:white;}
+
+/* Columns */
+.column {float:left;}
+.properties {width:100%;}
+.properties .column1 {}
+.properties .column2 {text-align:left;}
+
+/* Titles */
+h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}
+h3 {font-size:14px;}
+.title {font-size:12px; font-weight:bold; color:#2B6FB6;}
+
+/* Dialog specific */
+#link .panel_wrapper, #link div.current {height:125px;}
+#image .panel_wrapper, #image div.current {height:200px;}
+#plugintable thead {font-weight:bold; background:#DDD;}
+#plugintable, #about #plugintable td {border:1px solid #919B9C;}
+#plugintable {width:96%; margin-top:10px;}
+#pluginscontainer {height:290px; overflow:auto;}
+#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
+#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
+#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
+#colorpicker #light div {overflow:hidden;}
+#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
+#colorpicker .panel_wrapper div.current {height:175px;}
+#colorpicker #namedcolors {width:150px;}
+#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
+#colorpicker #colornamecontainer {margin-top:5px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css
new file mode 100644
index 0000000..81da151
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css
@@ -0,0 +1,102 @@
+/* Reset */
+.highcontrastSkin table, .highcontrastSkin tbody, .highcontrastSkin a, .highcontrastSkin img, .highcontrastSkin tr, .highcontrastSkin div, .highcontrastSkin td, .highcontrastSkin iframe, .highcontrastSkin span, .highcontrastSkin *, .highcontrastSkin .mceText {border:0; margin:0; padding:0; vertical-align:baseline; border-collapse:separate;}
+.highcontrastSkin a:hover, .highcontrastSkin a:link, .highcontrastSkin a:visited, .highcontrastSkin a:active {text-decoration:none; font-weight:normal; cursor:default;}
+.highcontrastSkin table td {vertical-align:middle}
+
+.highcontrastSkin .mceIconOnly {display: block !important;}
+
+/* External */
+.highcontrastSkin .mceExternalToolbar {position:absolute; border:1px solid; border-bottom:0; display:none; background-color: white;}
+.highcontrastSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}
+.highcontrastSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px;}
+
+/* Layout */
+.highcontrastSkin table.mceLayout {border: 1px solid;}
+.highcontrastSkin .mceIframeContainer {border-top:1px solid; border-bottom:1px solid}
+.highcontrastSkin .mceStatusbar a:hover {text-decoration:underline}
+.highcontrastSkin .mceStatusbar {display:block; line-height:1.5em; overflow:visible;}
+.highcontrastSkin .mceStatusbar div {float:left}
+.highcontrastSkin .mceStatusbar a.mceResize {display:block; float:right; width:20px; height:20px; cursor:se-resize; outline:0}
+
+.highcontrastSkin .mceToolbar td { display: inline-block; float: left;}
+.highcontrastSkin .mceToolbar tr { display: block;}
+.highcontrastSkin .mceToolbar table { display: block; }
+
+/* Button */
+
+.highcontrastSkin .mceButton { display:block; margin: 2px; padding: 5px 10px;border: 1px solid; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -ms-border-radius: 3px; height: 2em;}
+.highcontrastSkin .mceButton .mceVoiceLabel { height: 100%; vertical-align: center; line-height: 2em}
+.highcontrastSkin .mceButtonDisabled .mceVoiceLabel { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);}
+.highcontrastSkin .mceButtonActive, .highcontrastSkin .mceButton:focus, .highcontrastSkin .mceButton:active { border: 5px solid; padding: 1px 6px;-webkit-focus-ring-color:none;outline:none;}
+
+/* Separator */
+.highcontrastSkin .mceSeparator {display:block; width:16px; height:26px;}
+
+/* ListBox */
+.highcontrastSkin .mceListBox { display: block; margin:2px;-webkit-focus-ring-color:none;outline:none;}
+.highcontrastSkin .mceListBox .mceText {padding: 5px 6px;  line-height: 2em; width: 15ex; overflow: hidden;}
+.highcontrastSkin .mceListBoxDisabled .mceText { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);}
+.highcontrastSkin .mceListBox a.mceText { padding: 5px 10px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;}
+.highcontrastSkin .mceListBox a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-left: 0; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;}
+.highcontrastSkin .mceListBox:focus a.mceText, .highcontrastSkin .mceListBox:active a.mceText { border-width: 5px; padding: 1px 10px 1px 6px;}
+.highcontrastSkin .mceListBox:focus a.mceOpen, .highcontrastSkin .mceListBox:active a.mceOpen { border-width: 5px; padding: 1px 0px 1px 4px;}
+
+.highcontrastSkin .mceListBoxMenu {overflow-y:auto}
+
+/* SplitButton */
+.highcontrastSkin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+
+.highcontrastSkin .mceSplitButton { border-collapse: collapse; margin: 2px; height: 2em; line-height: 2em;-webkit-focus-ring-color:none;outline:none;}
+.highcontrastSkin .mceSplitButton td { display: table-cell; float: none; margin: 0; padding: 0; height: 2em;}
+.highcontrastSkin .mceSplitButton tr { display: table-row; }
+.highcontrastSkin table.mceSplitButton  { display: table; }
+.highcontrastSkin .mceSplitButton a.mceAction { padding: 5px 10px; display: block; height: 2em; line-height: 2em; overflow: hidden; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;}
+.highcontrastSkin .mceSplitButton a.mceOpen { padding: 5px 4px;  display: block; height: 2em; line-height: 2em; border: 1px solid; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;}
+.highcontrastSkin .mceSplitButton .mceVoiceLabel { height: 2em; vertical-align: center; line-height: 2em; } 
+.highcontrastSkin .mceSplitButton:focus a.mceAction, .highcontrastSkin .mceSplitButton:active a.mceAction { border-width: 5px; border-right-width: 1px; padding: 1px 10px 1px 6px;-webkit-focus-ring-color:none;outline:none;}
+.highcontrastSkin .mceSplitButton:focus a.mceOpen, .highcontrastSkin .mceSplitButton:active a.mceOpen { border-width: 5px; border-left-width: 1px; padding: 1px 0px 1px 4px;-webkit-focus-ring-color:none;outline:none;}
+
+/* Menu */
+.highcontrastSkin .mceNoIcons span.mceIcon {width:0;}
+.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; }
+.highcontrastSkin .mceMenu table {background:white; color: black}
+.highcontrastSkin .mceNoIcons a .mceText {padding-left:10px}
+.highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black}
+.highcontrastSkin .mceMenu td {height:2em}
+.highcontrastSkin .mceMenu a {position:relative;padding:3px 0 4px 0; display: block;}
+.highcontrastSkin .mceMenu .mceText {position:relative; display:block; cursor:default; margin:0; padding:0 25px 0 25px;}
+.highcontrastSkin .mceMenu pre.mceText {font-family:Monospace}
+.highcontrastSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:26px;}
+.highcontrastSkin td.mceMenuItemSeparator {border-top:1px solid; height:1px}
+.highcontrastSkin .mceMenuItemTitle a {border:0; border-bottom:1px solid}
+.highcontrastSkin .mceMenuItemTitle span.mceText {font-weight:bold; padding-left:4px}
+.highcontrastSkin .mceNoIcons .mceMenuItemSelected span.mceText:before {content: "\2713\A0";}
+.highcontrastSkin .mceMenu span.mceMenuLine {display:none}
+.highcontrastSkin .mceMenuItemSub a .mceText:after {content: "\A0\25B8"}
+.highcontrastSkin .mceMenuItem td, .highcontrastSkin .mceMenuItem th {line-height: normal}
+
+/* ColorSplitButton */
+.highcontrastSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid; color: #000}
+.highcontrastSkin .mceColorSplitMenu td {padding:2px}
+.highcontrastSkin .mceColorSplitMenu a {display:block; width:16px; height:16px; overflow:hidden; color:#000; margin: 0; padding: 0;}
+.highcontrastSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}
+.highcontrastSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}
+.highcontrastSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid; background-color:#B6BDD2}
+.highcontrastSkin a.mceMoreColors:hover {border:1px solid #0A246A; color: #000;}
+.highcontrastSkin .mceColorPreview {display:none;}
+.highcontrastSkin .mce_forecolor span.mceAction, .highcontrastSkin .mce_backcolor span.mceAction {height:17px;overflow:hidden}
+
+/* Progress,Resize */
+.highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
+.highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
+
+/* Formats */
+.highcontrastSkin .mce_p span.mceText {}
+.highcontrastSkin .mce_address span.mceText {font-style:italic}
+.highcontrastSkin .mce_pre span.mceText {font-family:monospace}
+.highcontrastSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}
+.highcontrastSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}
+.highcontrastSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}
+.highcontrastSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}
+.highcontrastSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}
+.highcontrastSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css
new file mode 100644
index 0000000..631fa0e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css
@@ -0,0 +1,48 @@
+body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}
+body {background:#FFF;}
+body.mceForceColors {background:#FFF; color:#000;}
+h1 {font-size: 2em}
+h2 {font-size: 1.5em}
+h3 {font-size: 1.17em}
+h4 {font-size: 1em}
+h5 {font-size: .83em}
+h6 {font-size: .75em}
+.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}
+a.mceItemAnchor {display:inline-block; width:11px !important; height:11px  !important; background:url(../default/img/items.gif) no-repeat 0 0;}
+span.mceItemNbsp {background: #DDD}
+td.mceSelected, th.mceSelected {background-color:#3399ff !important}
+img {border:0;}
+table, img, hr, .mceItemAnchor {cursor:default}
+table td, table th {cursor:text}
+ins {border-bottom:1px solid green; text-decoration: none; color:green}
+del {color:red; text-decoration:line-through}
+cite {border-bottom:1px dashed blue}
+acronym {border-bottom:1px dotted #CCC; cursor:help}
+abbr {border-bottom:1px dashed #CCC; cursor:help}
+
+/* IE */
+* html body {
+scrollbar-3dlight-color:#F0F0EE;
+scrollbar-arrow-color:#676662;
+scrollbar-base-color:#F0F0EE;
+scrollbar-darkshadow-color:#DDD;
+scrollbar-face-color:#E0E0DD;
+scrollbar-highlight-color:#F0F0EE;
+scrollbar-shadow-color:#F0F0EE;
+scrollbar-track-color:#F5F5F5;
+}
+
+img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}
+font[face=mceinline] {font-family:inherit !important}
+*[contentEditable]:focus {outline:0}
+
+.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc}
+.mceItemShockWave {background-image:url(../../img/shockwave.gif)}
+.mceItemFlash {background-image:url(../../img/flash.gif)}
+.mceItemQuickTime {background-image:url(../../img/quicktime.gif)}
+.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)}
+.mceItemRealMedia {background-image:url(../../img/realmedia.gif)}
+.mceItemVideo {background-image:url(../../img/video.gif)}
+.mceItemAudio {background-image:url(../../img/video.gif)}
+.mceItemIframe {background-image:url(../../img/iframe.gif)}
+.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css
new file mode 100644
index 0000000..c97d38e
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css
@@ -0,0 +1,117 @@
+/* Generic */
+body {
+font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;
+scrollbar-3dlight-color:#F0F0EE;
+scrollbar-arrow-color:#676662;
+scrollbar-base-color:#F0F0EE;
+scrollbar-darkshadow-color:#DDDDDD;
+scrollbar-face-color:#E0E0DD;
+scrollbar-highlight-color:#F0F0EE;
+scrollbar-shadow-color:#F0F0EE;
+scrollbar-track-color:#F5F5F5;
+background:#F0F0EE;
+padding:0;
+margin:8px 8px 0 8px;
+}
+
+html {background:#F0F0EE;}
+td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
+textarea {resize:none;outline:none;}
+a:link, a:visited {color:black;}
+a:hover {color:#2B6FB6;}
+.nowrap {white-space: nowrap}
+
+/* Forms */
+fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}
+legend {color:#2B6FB6; font-weight:bold;}
+label.msg {display:none;}
+label.invalid {color:#EE0000; display:inline;}
+input.invalid {border:1px solid #EE0000;}
+input {background:#FFF; border:1px solid #CCC;}
+input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
+input, select, textarea {border:1px solid #808080;}
+input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}
+input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}
+.input_noborder {border:0;}
+
+/* Buttons */
+#insert, #cancel, input.button, .updateButton {
+border:0; margin:0; padding:0;
+font-weight:bold;
+width:94px; height:26px;
+background:url(../default/img/buttons.png) 0 -26px;
+cursor:pointer;
+padding-bottom:2px;
+float:left;
+}
+
+#insert {background:url(../default/img/buttons.png) 0 -52px}
+#cancel {background:url(../default/img/buttons.png) 0 0; float:right}
+
+/* Browse */
+a.pickcolor, a.browse {text-decoration:none}
+a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
+.mceOldBoxModel a.browse span {width:22px; height:20px;}
+a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
+a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
+a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
+.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
+a.pickcolor:hover span {background-color:#B2BBD0;}
+a.pickcolor:hover span.disabled {}
+
+/* Charmap */
+table.charmap {border:1px solid #AAA; text-align:center}
+td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}
+#charmap a {display:block; color:#000; text-decoration:none; border:0}
+#charmap a:hover {background:#CCC;color:#2B6FB6}
+#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}
+#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}
+
+/* Source */
+.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}
+.mceActionPanel {margin-top:5px;}
+
+/* Tabs classes */
+.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;}
+.tabs ul {margin:0; padding:0; list-style:none;}
+.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}
+.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}
+.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}
+.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;}
+.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}
+.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}
+
+/* Panels */
+.panel_wrapper div.panel {display:none;}
+.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}
+.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}
+
+/* Columns */
+.column {float:left;}
+.properties {width:100%;}
+.properties .column1 {}
+.properties .column2 {text-align:left;}
+
+/* Titles */
+h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}
+h3 {font-size:14px;}
+.title {font-size:12px; font-weight:bold; color:#2B6FB6;}
+
+/* Dialog specific */
+#link .panel_wrapper, #link div.current {height:125px;}
+#image .panel_wrapper, #image div.current {height:200px;}
+#plugintable thead {font-weight:bold; background:#DDD;}
+#plugintable, #about #plugintable td {border:1px solid #919B9C;}
+#plugintable {width:96%; margin-top:10px;}
+#pluginscontainer {height:290px; overflow:auto;}
+#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
+#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
+#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
+#colorpicker #light div {overflow:hidden;}
+#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
+#colorpicker .panel_wrapper div.current {height:175px;}
+#colorpicker #namedcolors {width:150px;}
+#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
+#colorpicker #colornamecontainer {margin-top:5px;}
+#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png
new file mode 100644
index 0000000..13a5cb0
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png
new file mode 100644
index 0000000..7fc57f2
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png
new file mode 100644
index 0000000..c0dcc6c
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css
new file mode 100644
index 0000000..701b3d3
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css
@@ -0,0 +1,218 @@
+/* Reset */
+.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}
+.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}
+.o2k7Skin table td {vertical-align:middle}
+
+/* Containers */
+.o2k7Skin table {background:transparent}
+.o2k7Skin iframe {display:block;}
+.o2k7Skin .mceToolbar {height:26px}
+
+/* External */
+.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none}
+.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;}
+.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}
+
+/* Layout */
+.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD}
+.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD}
+.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD}
+.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0}
+.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD}
+.o2k7Skin td.mceToolbar{background:#E5EFFD}
+.o2k7Skin .mceStatusbar {background:#E5EFFD; display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px}
+.o2k7Skin .mceStatusbar div {float:left; padding:2px}
+.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0}
+.o2k7Skin .mceStatusbar a:hover {text-decoration:underline}
+.o2k7Skin table.mceToolbar {margin-left:3px}
+.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;}
+.o2k7Skin .mceToolbar td.mceFirst span {margin:0}
+.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}
+.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none}
+.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px}
+.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
+.o2k7Skin td.mceCenter {text-align:center;}
+.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;}
+.o2k7Skin td.mceRight table {margin:0 0 0 auto;}
+
+/* Button */
+.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}
+.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px}
+.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}
+.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}
+.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}
+.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+.o2k7Skin .mceButtonLabeled {width:auto}
+.o2k7Skin .mceButtonLabeled span.mceIcon {float:left}
+.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}
+.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888}
+
+/* Separator */
+.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}
+
+/* ListBox */
+.o2k7Skin .mceListBox  {padding-left: 3px}
+.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block}
+.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}
+.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0}
+.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF}
+.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px}
+.o2k7Skin .mceListBoxDisabled .mceText {color:gray}
+.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden; margin-left:3px}
+.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px}
+.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;}
+
+/* SplitButton */
+.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px; direction:ltr}
+.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)}
+.o2k7Skin .mceSplitButton a.mceAction {width:22px}
+.o2k7Skin .mceSplitButton span.mceAction {width:22px; background-image:url(../../img/icons.gif)}
+.o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}
+.o2k7Skin .mceSplitButton span.mceOpen {display:none}
+.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px}
+.o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px}
+.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+.o2k7Skin .mceSplitButtonActive {background-position:0 -44px}
+
+/* ColorSplitButton */
+.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}
+.o2k7Skin .mceColorSplitMenu td {padding:2px}
+.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}
+.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}
+.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}
+.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}
+.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A}
+.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden}
+.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}
+
+/* Menu */
+.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}
+.o2k7Skin .mceNoIcons span.mceIcon {width:0;}
+.o2k7Skin .mceNoIcons a .mceText {padding-left:10px}
+.o2k7Skin .mceMenu table {background:#FFF}
+.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block}
+.o2k7Skin .mceMenu td {height:20px}
+.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0}
+.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}
+.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px}
+.o2k7Skin .mceMenu pre.mceText {font-family:Monospace}
+.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}
+.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3}
+.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px}
+.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD}
+.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}
+.o2k7Skin .mceMenuItemDisabled .mceText {color:#888}
+.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)}
+.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center}
+.o2k7Skin .mceMenu span.mceMenuLine {display:none}
+.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}
+.o2k7Skin .mceMenuItem td, .o2k7Skin .mceMenuItem th {line-height: normal}
+
+/* Progress,Resize */
+.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
+.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
+
+/* Formats */
+.o2k7Skin .mce_formatPreview a {font-size:10px}
+.o2k7Skin .mce_p span.mceText {}
+.o2k7Skin .mce_address span.mceText {font-style:italic}
+.o2k7Skin .mce_pre span.mceText {font-family:monospace}
+.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}
+.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}
+.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}
+.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}
+.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}
+.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}
+
+/* Theme */
+.o2k7Skin span.mce_bold {background-position:0 0}
+.o2k7Skin span.mce_italic {background-position:-60px 0}
+.o2k7Skin span.mce_underline {background-position:-140px 0}
+.o2k7Skin span.mce_strikethrough {background-position:-120px 0}
+.o2k7Skin span.mce_undo {background-position:-160px 0}
+.o2k7Skin span.mce_redo {background-position:-100px 0}
+.o2k7Skin span.mce_cleanup {background-position:-40px 0}
+.o2k7Skin span.mce_bullist {background-position:-20px 0}
+.o2k7Skin span.mce_numlist {background-position:-80px 0}
+.o2k7Skin span.mce_justifyleft {background-position:-460px 0}
+.o2k7Skin span.mce_justifyright {background-position:-480px 0}
+.o2k7Skin span.mce_justifycenter {background-position:-420px 0}
+.o2k7Skin span.mce_justifyfull {background-position:-440px 0}
+.o2k7Skin span.mce_anchor {background-position:-200px 0}
+.o2k7Skin span.mce_indent {background-position:-400px 0}
+.o2k7Skin span.mce_outdent {background-position:-540px 0}
+.o2k7Skin span.mce_link {background-position:-500px 0}
+.o2k7Skin span.mce_unlink {background-position:-640px 0}
+.o2k7Skin span.mce_sub {background-position:-600px 0}
+.o2k7Skin span.mce_sup {background-position:-620px 0}
+.o2k7Skin span.mce_removeformat {background-position:-580px 0}
+.o2k7Skin span.mce_newdocument {background-position:-520px 0}
+.o2k7Skin span.mce_image {background-position:-380px 0}
+.o2k7Skin span.mce_help {background-position:-340px 0}
+.o2k7Skin span.mce_code {background-position:-260px 0}
+.o2k7Skin span.mce_hr {background-position:-360px 0}
+.o2k7Skin span.mce_visualaid {background-position:-660px 0}
+.o2k7Skin span.mce_charmap {background-position:-240px 0}
+.o2k7Skin span.mce_paste {background-position:-560px 0}
+.o2k7Skin span.mce_copy {background-position:-700px 0}
+.o2k7Skin span.mce_cut {background-position:-680px 0}
+.o2k7Skin span.mce_blockquote {background-position:-220px 0}
+.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0}
+.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0}
+.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0}
+.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0}
+
+/* Plugins */
+.o2k7Skin span.mce_advhr {background-position:-0px -20px}
+.o2k7Skin span.mce_ltr {background-position:-20px -20px}
+.o2k7Skin span.mce_rtl {background-position:-40px -20px}
+.o2k7Skin span.mce_emotions {background-position:-60px -20px}
+.o2k7Skin span.mce_fullpage {background-position:-80px -20px}
+.o2k7Skin span.mce_fullscreen {background-position:-100px -20px}
+.o2k7Skin span.mce_iespell {background-position:-120px -20px}
+.o2k7Skin span.mce_insertdate {background-position:-140px -20px}
+.o2k7Skin span.mce_inserttime {background-position:-160px -20px}
+.o2k7Skin span.mce_absolute {background-position:-180px -20px}
+.o2k7Skin span.mce_backward {background-position:-200px -20px}
+.o2k7Skin span.mce_forward {background-position:-220px -20px}
+.o2k7Skin span.mce_insert_layer {background-position:-240px -20px}
+.o2k7Skin span.mce_insertlayer {background-position:-260px -20px}
+.o2k7Skin span.mce_movebackward {background-position:-280px -20px}
+.o2k7Skin span.mce_moveforward {background-position:-300px -20px}
+.o2k7Skin span.mce_media {background-position:-320px -20px}
+.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px}
+.o2k7Skin span.mce_pastetext {background-position:-360px -20px}
+.o2k7Skin span.mce_pasteword {background-position:-380px -20px}
+.o2k7Skin span.mce_selectall {background-position:-400px -20px}
+.o2k7Skin span.mce_preview {background-position:-420px -20px}
+.o2k7Skin span.mce_print {background-position:-440px -20px}
+.o2k7Skin span.mce_cancel {background-position:-460px -20px}
+.o2k7Skin span.mce_save {background-position:-480px -20px}
+.o2k7Skin span.mce_replace {background-position:-500px -20px}
+.o2k7Skin span.mce_search {background-position:-520px -20px}
+.o2k7Skin span.mce_styleprops {background-position:-560px -20px}
+.o2k7Skin span.mce_table {background-position:-580px -20px}
+.o2k7Skin span.mce_cell_props {background-position:-600px -20px}
+.o2k7Skin span.mce_delete_table {background-position:-620px -20px}
+.o2k7Skin span.mce_delete_col {background-position:-640px -20px}
+.o2k7Skin span.mce_delete_row {background-position:-660px -20px}
+.o2k7Skin span.mce_col_after {background-position:-680px -20px}
+.o2k7Skin span.mce_col_before {background-position:-700px -20px}
+.o2k7Skin span.mce_row_after {background-position:-720px -20px}
+.o2k7Skin span.mce_row_before {background-position:-740px -20px}
+.o2k7Skin span.mce_merge_cells {background-position:-760px -20px}
+.o2k7Skin span.mce_table_props {background-position:-980px -20px}
+.o2k7Skin span.mce_row_props {background-position:-780px -20px}
+.o2k7Skin span.mce_split_cells {background-position:-800px -20px}
+.o2k7Skin span.mce_template {background-position:-820px -20px}
+.o2k7Skin span.mce_visualchars {background-position:-840px -20px}
+.o2k7Skin span.mce_abbr {background-position:-860px -20px}
+.o2k7Skin span.mce_acronym {background-position:-880px -20px}
+.o2k7Skin span.mce_attribs {background-position:-900px -20px}
+.o2k7Skin span.mce_cite {background-position:-920px -20px}
+.o2k7Skin span.mce_del {background-position:-940px -20px}
+.o2k7Skin span.mce_ins {background-position:-960px -20px}
+.o2k7Skin span.mce_pagebreak {background-position:0 -40px}
+.o2k7Skin span.mce_restoredraft {background-position:-20px -40px}
+.o2k7Skin span.mce_spellchecker {background-position:-540px -20px}
+.o2k7Skin span.mce_visualblocks {background-position: -40px -40px}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css
new file mode 100644
index 0000000..85812cd
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css
@@ -0,0 +1,8 @@
+/* Black */
+.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)}
+.o2k7SkinBlack td.mceToolbar, .o2k7SkinBlack td.mceStatusbar, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}
+.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}
+.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}
+.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}
+.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}
+.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css
new file mode 100644
index 0000000..d64c361
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css
@@ -0,0 +1,5 @@
+/* Silver */
+.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)}
+.o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}
+.o2k7SkinSilver .mceListBox .mceText {background:#FFF}
+.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm
new file mode 100644
index 0000000..d3f75d6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm
@@ -0,0 +1,25 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{#advanced_dlg.code_title}</title>
+	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script type="text/javascript" src="js/source_editor.js"></script>
+</head>
+<body onresize="resizeInputs();" style="display:none; overflow:hidden;">
+	<form name="source" onsubmit="saveContent();return false;" action="#">
+		<div style="float: left" class="title"><label for="htmlSource">{#advanced_dlg.code_title}</label></div>
+
+		<div id="wrapline" style="float: right">
+			<input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#advanced_dlg.code_wordwrap}</label>
+		</div>
+
+		<br style="clear: both" />
+
+		<textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>
+
+		<div class="mceActionPanel">
+			<input type="submit" role="button" name="insert" value="{#update}" id="insert" />
+			<input type="button" role="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
+		</div>
+	</form>
+</body>
+</html>
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js
new file mode 100644
index 0000000..4b3209c
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js
@@ -0,0 +1 @@
+(function(){var a=tinymce.DOM;tinymce.ThemeManager.requireLangPack("simple");tinymce.create("tinymce.themes.SimpleTheme",{init:function(c,d){var e=this,b=["Bold","Italic","Underline","Strikethrough","InsertUnorderedList","InsertOrderedList"],f=c.settings;e.editor=c;c.contentCSS.push(d+"/skins/"+f.skin+"/content.css");c.onInit.add(function(){c.onNodeChange.add(function(h,g){tinymce.each(b,function(i){g.get(i.toLowerCase()).setActive(h.queryCommandState(i))})})});a.loadCSS((f.editor_css?c. [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js
new file mode 100644
index 0000000..35c19a6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js
@@ -0,0 +1,84 @@
+/**
+ * editor_template_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+(function() {
+	var DOM = tinymce.DOM;
+
+	// Tell it to load theme specific language pack(s)
+	tinymce.ThemeManager.requireLangPack('simple');
+
+	tinymce.create('tinymce.themes.SimpleTheme', {
+		init : function(ed, url) {
+			var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings;
+
+			t.editor = ed;
+			ed.contentCSS.push(url + "/skins/" + s.skin + "/content.css");
+
+			ed.onInit.add(function() {
+				ed.onNodeChange.add(function(ed, cm) {
+					tinymce.each(states, function(c) {
+						cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));
+					});
+				});
+			});
+
+			DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css");
+		},
+
+		renderUI : function(o) {
+			var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc;
+
+			n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n);
+			n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'});
+			n = tb = DOM.add(n, 'tbody');
+
+			// Create iframe container
+			n = DOM.add(tb, 'tr');
+			n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'});
+
+			// Create toolbar container
+			n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'});
+
+			// Create toolbar
+			tb = t.toolbar = cf.createToolbar("tools1");
+			tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'}));
+			tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'}));
+			tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'}));
+			tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'}));
+			tb.add(cf.createSeparator());
+			tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'}));
+			tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'}));
+			tb.add(cf.createSeparator());
+			tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'}));
+			tb.add(cf.createSeparator());
+			tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'}));
+			tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'}));
+			tb.renderTo(n);
+
+			return {
+				iframeContainer : ic,
+				editorContainer : ed.id + '_container',
+				sizeContainer : sc,
+				deltaHeight : -20
+			};
+		},
+
+		getInfo : function() {
+			return {
+				longname : 'Simple theme',
+				author : 'Moxiecode Systems AB',
+				authorurl : 'http://tinymce.moxiecode.com',
+				version : tinymce.majorVersion + "." + tinymce.minorVersion
+			}
+		}
+	});
+
+	tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme);
+})();
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif
new file mode 100644
index 0000000..6fcbcb5
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js
new file mode 100644
index 0000000..088ed0f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js
@@ -0,0 +1 @@
+tinyMCE.addI18n('en.simple',{"cleanup_desc":"Cleanup Messy Code","redo_desc":"Redo (Ctrl+Y)","undo_desc":"Undo (Ctrl+Z)","numlist_desc":"Insert/Remove Numbered List","bullist_desc":"Insert/Remove Bulleted List","striketrough_desc":"Strikethrough","underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)"});
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css
new file mode 100644
index 0000000..783b170
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css
@@ -0,0 +1,25 @@
+body, td, pre {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+body {
+	background-color: #FFFFFF;
+}
+
+.mceVisualAid {
+	border: 1px dashed #BBBBBB;
+}
+
+/* MSIE specific */
+
+* html body {
+	scrollbar-3dlight-color: #F0F0EE;
+	scrollbar-arrow-color: #676662;
+	scrollbar-base-color: #F0F0EE;
+	scrollbar-darkshadow-color: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;	
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css
new file mode 100644
index 0000000..32feae6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css
@@ -0,0 +1,32 @@
+/* Reset */
+.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}
+
+/* Containers */
+.defaultSimpleSkin {position:relative}
+.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;}
+.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;}
+.defaultSimpleSkin .mceToolbar {height:24px;}
+
+/* Layout */
+.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px}
+.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
+
+/* Button */
+.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px}
+.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}
+.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0}
+.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+
+/* Separator */
+.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px}
+
+/* Theme */
+.defaultSimpleSkin span.mce_bold {background-position:0 0}
+.defaultSimpleSkin span.mce_italic {background-position:-60px 0}
+.defaultSimpleSkin span.mce_underline {background-position:-140px 0}
+.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0}
+.defaultSimpleSkin span.mce_undo {background-position:-160px 0}
+.defaultSimpleSkin span.mce_redo {background-position:-100px 0}
+.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0}
+.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}
+.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css
new file mode 100644
index 0000000..e10558f
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css
@@ -0,0 +1,17 @@
+body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
+
+body {background: #FFF;}
+.mceVisualAid {border: 1px dashed #BBB;}
+
+/* IE */
+
+* html body {
+scrollbar-3dlight-color: #F0F0EE;
+scrollbar-arrow-color: #676662;
+scrollbar-base-color: #F0F0EE;
+scrollbar-darkshadow-color: #DDDDDD;
+scrollbar-face-color: #E0E0DD;
+scrollbar-highlight-color: #F0F0EE;
+scrollbar-shadow-color: #F0F0EE;
+scrollbar-track-color: #F5F5F5;	
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png
new file mode 100644
index 0000000..527e349
Binary files /dev/null and b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png differ
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css
new file mode 100644
index 0000000..021d650
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css
@@ -0,0 +1,35 @@
+/* Reset */
+.o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}
+
+/* Containers */
+.o2k7SimpleSkin {position:relative}
+.o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;}
+.o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;}
+.o2k7SimpleSkin .mceToolbar {height:26px;}
+
+/* Layout */
+.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; }
+.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}
+.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px}
+.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
+
+/* Button */
+.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}
+.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px}
+.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}
+.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px}
+.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
+
+/* Separator */
+.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}
+
+/* Theme */
+.o2k7SimpleSkin span.mce_bold {background-position:0 0}
+.o2k7SimpleSkin span.mce_italic {background-position:-60px 0}
+.o2k7SimpleSkin span.mce_underline {background-position:-140px 0}
+.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0}
+.o2k7SimpleSkin span.mce_undo {background-position:-160px 0}
+.o2k7SimpleSkin span.mce_redo {background-position:-100px 0}
+.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0}
+.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}
+.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce.js
new file mode 100644
index 0000000..45401d1
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce.js
@@ -0,0 +1 @@
+(function(d){var a=/^\s*|\s*$/g,e,c="B".replace(/A(.)|B/,"$1")==="$1";var b={majorVersion:"3",minorVersion:"5b1",releaseDate:"2012-03-08",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=d.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isIE7=s.isIE&&/MSIE [7]/.test(g);s.isIE8=s.isIE&&/MSIE [8]/.test(g);s.isIE9=s.isIE&&/MSIE [ [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce_popup.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce_popup.js
new file mode 100644
index 0000000..4d9ffc0
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce_popup.js
@@ -0,0 +1,5 @@
+
+// Uncomment and change this document.domain value if you are loading the script cross subdomains
+// document.domain = 'moxiecode.com';
+
+var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document,{ownEvents:true,proxy:tinyMCEPopup._eventProxy});b.dom.bind(window,"ready",b._onDOMLoaded,b);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_c [...]
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce_src.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce_src.js
new file mode 100644
index 0000000..d28482d
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/tiny_mce_src.js
@@ -0,0 +1,17480 @@
+(function(win) {
+	var whiteSpaceRe = /^\s*|\s*$/g,
+		undefined, isRegExpBroken = 'B'.replace(/A(.)|B/, '$1') === '$1';
+
+	var tinymce = {
+		majorVersion : '3',
+
+		minorVersion : '5b1',
+
+		releaseDate : '2012-03-08',
+
+		_init : function() {
+			var t = this, d = document, na = navigator, ua = na.userAgent, i, nl, n, base, p, v;
+
+			t.isOpera = win.opera && opera.buildNumber;
+
+			t.isWebKit = /WebKit/.test(ua);
+
+			t.isIE = !t.isWebKit && !t.isOpera && (/MSIE/gi).test(ua) && (/Explorer/gi).test(na.appName);
+
+			t.isIE6 = t.isIE && /MSIE [56]/.test(ua);
+
+			t.isIE7 = t.isIE && /MSIE [7]/.test(ua);
+
+			t.isIE8 = t.isIE && /MSIE [8]/.test(ua);
+
+			t.isIE9 = t.isIE && /MSIE [9]/.test(ua);
+
+			t.isGecko = !t.isWebKit && /Gecko/.test(ua);
+
+			t.isMac = ua.indexOf('Mac') != -1;
+
+			t.isAir = /adobeair/i.test(ua);
+
+			t.isIDevice = /(iPad|iPhone)/.test(ua);
+			
+			t.isIOS5 = t.isIDevice && ua.match(/AppleWebKit\/(\d*)/)[1]>=534;
+
+			// TinyMCE .NET webcontrol might be setting the values for TinyMCE
+			if (win.tinyMCEPreInit) {
+				t.suffix = tinyMCEPreInit.suffix;
+				t.baseURL = tinyMCEPreInit.base;
+				t.query = tinyMCEPreInit.query;
+				return;
+			}
+
+			// Get suffix and base
+			t.suffix = '';
+
+			// If base element found, add that infront of baseURL
+			nl = d.getElementsByTagName('base');
+			for (i=0; i<nl.length; i++) {
+				if (v = nl[i].href) {
+					// Host only value like http://site.com or http://site.com:8008
+					if (/^https?:\/\/[^\/]+$/.test(v))
+						v += '/';
+
+					base = v ? v.match(/.*\//)[0] : ''; // Get only directory
+				}
+			}
+
+			function getBase(n) {
+				if (n.src && /tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(n.src)) {
+					if (/_(src|dev)\.js/g.test(n.src))
+						t.suffix = '_src';
+
+					if ((p = n.src.indexOf('?')) != -1)
+						t.query = n.src.substring(p + 1);
+
+					t.baseURL = n.src.substring(0, n.src.lastIndexOf('/'));
+
+					// If path to script is relative and a base href was found add that one infront
+					// the src property will always be an absolute one on non IE browsers and IE 8
+					// so this logic will basically only be executed on older IE versions
+					if (base && t.baseURL.indexOf('://') == -1 && t.baseURL.indexOf('/') !== 0)
+						t.baseURL = base + t.baseURL;
+
+					return t.baseURL;
+				}
+
+				return null;
+			};
+
+			// Check document
+			nl = d.getElementsByTagName('script');
+			for (i=0; i<nl.length; i++) {
+				if (getBase(nl[i]))
+					return;
+			}
+
+			// Check head
+			n = d.getElementsByTagName('head')[0];
+			if (n) {
+				nl = n.getElementsByTagName('script');
+				for (i=0; i<nl.length; i++) {
+					if (getBase(nl[i]))
+						return;
+				}
+			}
+
+			return;
+		},
+
+		is : function(o, t) {
+			if (!t)
+				return o !== undefined;
+
+			if (t == 'array' && (o.hasOwnProperty && o instanceof Array))
+				return true;
+
+			return typeof(o) == t;
+		},
+
+		makeMap : function(items, delim, map) {
+			var i;
+
+			items = items || [];
+			delim = delim || ',';
+
+			if (typeof(items) == "string")
+				items = items.split(delim);
+
+			map = map || {};
+
+			i = items.length;
+			while (i--)
+				map[items[i]] = {};
+
+			return map;
+		},
+
+		each : function(o, cb, s) {
+			var n, l;
+
+			if (!o)
+				return 0;
+
+			s = s || o;
+
+			if (o.length !== undefined) {
+				// Indexed arrays, needed for Safari
+				for (n=0, l = o.length; n < l; n++) {
+					if (cb.call(s, o[n], n, o) === false)
+						return 0;
+				}
+			} else {
+				// Hashtables
+				for (n in o) {
+					if (o.hasOwnProperty(n)) {
+						if (cb.call(s, o[n], n, o) === false)
+							return 0;
+					}
+				}
+			}
+
+			return 1;
+		},
+
+
+		map : function(a, f) {
+			var o = [];
+
+			tinymce.each(a, function(v) {
+				o.push(f(v));
+			});
+
+			return o;
+		},
+
+		grep : function(a, f) {
+			var o = [];
+
+			tinymce.each(a, function(v) {
+				if (!f || f(v))
+					o.push(v);
+			});
+
+			return o;
+		},
+
+		inArray : function(a, v) {
+			var i, l;
+
+			if (a) {
+				for (i = 0, l = a.length; i < l; i++) {
+					if (a[i] === v)
+						return i;
+				}
+			}
+
+			return -1;
+		},
+
+		extend : function(o, e) {
+			var i, l, a = arguments;
+
+			for (i = 1, l = a.length; i < l; i++) {
+				e = a[i];
+
+				tinymce.each(e, function(v, n) {
+					if (v !== undefined)
+						o[n] = v;
+				});
+			}
+
+			return o;
+		},
+
+
+		trim : function(s) {
+			return (s ? '' + s : '').replace(whiteSpaceRe, '');
+		},
+
+		create : function(s, p, root) {
+			var t = this, sp, ns, cn, scn, c, de = 0;
+
+			// Parse : <prefix> <class>:<super class>
+			s = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);
+			cn = s[3].match(/(^|\.)(\w+)$/i)[2]; // Class name
+
+			// Create namespace for new class
+			ns = t.createNS(s[3].replace(/\.\w+$/, ''), root);
+
+			// Class already exists
+			if (ns[cn])
+				return;
+
+			// Make pure static class
+			if (s[2] == 'static') {
+				ns[cn] = p;
+
+				if (this.onCreate)
+					this.onCreate(s[2], s[3], ns[cn]);
+
+				return;
+			}
+
+			// Create default constructor
+			if (!p[cn]) {
+				p[cn] = function() {};
+				de = 1;
+			}
+
+			// Add constructor and methods
+			ns[cn] = p[cn];
+			t.extend(ns[cn].prototype, p);
+
+			// Extend
+			if (s[5]) {
+				sp = t.resolve(s[5]).prototype;
+				scn = s[5].match(/\.(\w+)$/i)[1]; // Class name
+
+				// Extend constructor
+				c = ns[cn];
+				if (de) {
+					// Add passthrough constructor
+					ns[cn] = function() {
+						return sp[scn].apply(this, arguments);
+					};
+				} else {
+					// Add inherit constructor
+					ns[cn] = function() {
+						this.parent = sp[scn];
+						return c.apply(this, arguments);
+					};
+				}
+				ns[cn].prototype[cn] = ns[cn];
+
+				// Add super methods
+				t.each(sp, function(f, n) {
+					ns[cn].prototype[n] = sp[n];
+				});
+
+				// Add overridden methods
+				t.each(p, function(f, n) {
+					// Extend methods if needed
+					if (sp[n]) {
+						ns[cn].prototype[n] = function() {
+							this.parent = sp[n];
+							return f.apply(this, arguments);
+						};
+					} else {
+						if (n != cn)
+							ns[cn].prototype[n] = f;
+					}
+				});
+			}
+
+			// Add static methods
+			t.each(p['static'], function(f, n) {
+				ns[cn][n] = f;
+			});
+
+			if (this.onCreate)
+				this.onCreate(s[2], s[3], ns[cn].prototype);
+		},
+
+		walk : function(o, f, n, s) {
+			s = s || this;
+
+			if (o) {
+				if (n)
+					o = o[n];
+
+				tinymce.each(o, function(o, i) {
+					if (f.call(s, o, i, n) === false)
+						return false;
+
+					tinymce.walk(o, f, n, s);
+				});
+			}
+		},
+
+		createNS : function(n, o) {
+			var i, v;
+
+			o = o || win;
+
+			n = n.split('.');
+			for (i=0; i<n.length; i++) {
+				v = n[i];
+
+				if (!o[v])
+					o[v] = {};
+
+				o = o[v];
+			}
+
+			return o;
+		},
+
+		resolve : function(n, o) {
+			var i, l;
+
+			o = o || win;
+
+			n = n.split('.');
+			for (i = 0, l = n.length; i < l; i++) {
+				o = o[n[i]];
+
+				if (!o)
+					break;
+			}
+
+			return o;
+		},
+
+		addUnload : function(f, s) {
+			var t = this;
+
+			f = {func : f, scope : s || this};
+
+			if (!t.unloads) {
+				function unload() {
+					var li = t.unloads, o, n;
+
+					if (li) {
+						// Call unload handlers
+						for (n in li) {
+							o = li[n];
+
+							if (o && o.func)
+								o.func.call(o.scope, 1); // Send in one arg to distinct unload and user destroy
+						}
+
+						// Detach unload function
+						if (win.detachEvent) {
+							win.detachEvent('onbeforeunload', fakeUnload);
+							win.detachEvent('onunload', unload);
+						} else if (win.removeEventListener)
+							win.removeEventListener('unload', unload, false);
+
+						// Destroy references
+						t.unloads = o = li = w = unload = 0;
+
+						// Run garbarge collector on IE
+						if (win.CollectGarbage)
+							CollectGarbage();
+					}
+				};
+
+				function fakeUnload() {
+					var d = document;
+
+					// Is there things still loading, then do some magic
+					if (d.readyState == 'interactive') {
+						function stop() {
+							// Prevent memory leak
+							d.detachEvent('onstop', stop);
+
+							// Call unload handler
+							if (unload)
+								unload();
+
+							d = 0;
+						};
+
+						// Fire unload when the currently loading page is stopped
+						if (d)
+							d.attachEvent('onstop', stop);
+
+						// Remove onstop listener after a while to prevent the unload function
+						// to execute if the user presses cancel in an onbeforeunload
+						// confirm dialog and then presses the browser stop button
+						win.setTimeout(function() {
+							if (d)
+								d.detachEvent('onstop', stop);
+						}, 0);
+					}
+				};
+
+				// Attach unload handler
+				if (win.attachEvent) {
+					win.attachEvent('onunload', unload);
+					win.attachEvent('onbeforeunload', fakeUnload);
+				} else if (win.addEventListener)
+					win.addEventListener('unload', unload, false);
+
+				// Setup initial unload handler array
+				t.unloads = [f];
+			} else
+				t.unloads.push(f);
+
+			return f;
+		},
+
+		removeUnload : function(f) {
+			var u = this.unloads, r = null;
+
+			tinymce.each(u, function(o, i) {
+				if (o && o.func == f) {
+					u.splice(i, 1);
+					r = f;
+					return false;
+				}
+			});
+
+			return r;
+		},
+
+		explode : function(s, d) {
+			return s ? tinymce.map(s.split(d || ','), tinymce.trim) : s;
+		},
+
+		_addVer : function(u) {
+			var v;
+
+			if (!this.query)
+				return u;
+
+			v = (u.indexOf('?') == -1 ? '?' : '&') + this.query;
+
+			if (u.indexOf('#') == -1)
+				return u + v;
+
+			return u.replace('#', v + '#');
+		},
+
+		// Fix function for IE 9 where regexps isn't working correctly
+		// Todo: remove me once MS fixes the bug
+		_replace : function(find, replace, str) {
+			// On IE9 we have to fake $x replacement
+			if (isRegExpBroken) {
+				return str.replace(find, function() {
+					var val = replace, args = arguments, i;
+
+					for (i = 0; i < args.length - 2; i++) {
+						if (args[i] === undefined) {
+							val = val.replace(new RegExp('\\$' + i, 'g'), '');
+						} else {
+							val = val.replace(new RegExp('\\$' + i, 'g'), args[i]);
+						}
+					}
+
+					return val;
+				});
+			}
+
+			return str.replace(find, replace);
+		}
+
+		};
+
+	// Initialize the API
+	tinymce._init();
+
+	// Expose tinymce namespace to the global namespace (window)
+	win.tinymce = win.tinyMCE = tinymce;
+
+	// Describe the different namespaces
+
+	})(window);
+
+
+
+tinymce.create('tinymce.util.Dispatcher', {
+	scope : null,
+	listeners : null,
+
+	Dispatcher : function(s) {
+		this.scope = s || this;
+		this.listeners = [];
+	},
+
+	add : function(cb, s) {
+		this.listeners.push({cb : cb, scope : s || this.scope});
+
+		return cb;
+	},
+
+	addToTop : function(cb, s) {
+		this.listeners.unshift({cb : cb, scope : s || this.scope});
+
+		return cb;
+	},
+
+	remove : function(cb) {
+		var l = this.listeners, o = null;
+
+		tinymce.each(l, function(c, i) {
+			if (cb == c.cb) {
+				o = cb;
+				l.splice(i, 1);
+				return false;
+			}
+		});
+
+		return o;
+	},
+
+	dispatch : function() {
+		var s, a = arguments, i, li = this.listeners, c;
+
+		// Needs to be a real loop since the listener count might change while looping
+		// And this is also more efficient
+		for (i = 0; i<li.length; i++) {
+			c = li[i];
+			s = c.cb.apply(c.scope, a.length > 0 ? a : [c.scope]);
+
+			if (s === false)
+				break;
+		}
+
+		return s;
+	}
+
+	});
+
+(function() {
+	var each = tinymce.each;
+
+	tinymce.create('tinymce.util.URI', {
+		URI : function(u, s) {
+			var t = this, o, a, b, base_url;
+
+			// Trim whitespace
+			u = tinymce.trim(u);
+
+			// Default settings
+			s = t.settings = s || {};
+
+			// Strange app protocol that isn't http/https or local anchor
+			// For example: mailto,skype,tel etc.
+			if (/^([\w\-]+):([^\/]{2})/i.test(u) || /^\s*#/.test(u)) {
+				t.source = u;
+				return;
+			}
+
+			// Absolute path with no host, fake host and protocol
+			if (u.indexOf('/') === 0 && u.indexOf('//') !== 0)
+				u = (s.base_uri ? s.base_uri.protocol || 'http' : 'http') + '://mce_host' + u;
+
+			// Relative path http:// or protocol relative //path
+			if (!/^[\w-]*:?\/\//.test(u)) {
+				base_url = s.base_uri ? s.base_uri.path : new tinymce.util.URI(location.href).directory;
+				u = ((s.base_uri && s.base_uri.protocol) || 'http') + '://mce_host' + t.toAbsPath(base_url, u);
+			}
+
+			// Parse URL (Credits goes to Steave, http://blog.stevenlevithan.com/archives/parseuri)
+			u = u.replace(/@@/g, '(mce_at)'); // Zope 3 workaround, they use @@something
+			u = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);
+			each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], function(v, i) {
+				var s = u[i];
+
+				// Zope 3 workaround, they use @@something
+				if (s)
+					s = s.replace(/\(mce_at\)/g, '@@');
+
+				t[v] = s;
+			});
+
+			if (b = s.base_uri) {
+				if (!t.protocol)
+					t.protocol = b.protocol;
+
+				if (!t.userInfo)
+					t.userInfo = b.userInfo;
+
+				if (!t.port && t.host == 'mce_host')
+					t.port = b.port;
+
+				if (!t.host || t.host == 'mce_host')
+					t.host = b.host;
+
+				t.source = '';
+			}
+
+			//t.path = t.path || '/';
+		},
+
+		setPath : function(p) {
+			var t = this;
+
+			p = /^(.*?)\/?(\w+)?$/.exec(p);
+
+			// Update path parts
+			t.path = p[0];
+			t.directory = p[1];
+			t.file = p[2];
+
+			// Rebuild source
+			t.source = '';
+			t.getURI();
+		},
+
+		toRelative : function(u) {
+			var t = this, o;
+
+			if (u === "./")
+				return u;
+
+			u = new tinymce.util.URI(u, {base_uri : t});
+
+			// Not on same domain/port or protocol
+			if ((u.host != 'mce_host' && t.host != u.host && u.host) || t.port != u.port || t.protocol != u.protocol)
+				return u.getURI();
+
+			o = t.toRelPath(t.path, u.path);
+
+			// Add query
+			if (u.query)
+				o += '?' + u.query;
+
+			// Add anchor
+			if (u.anchor)
+				o += '#' + u.anchor;
+
+			return o;
+		},
+	
+		toAbsolute : function(u, nh) {
+			var u = new tinymce.util.URI(u, {base_uri : this});
+
+			return u.getURI(this.host == u.host && this.protocol == u.protocol ? nh : 0);
+		},
+
+		toRelPath : function(base, path) {
+			var items, bp = 0, out = '', i, l;
+
+			// Split the paths
+			base = base.substring(0, base.lastIndexOf('/'));
+			base = base.split('/');
+			items = path.split('/');
+
+			if (base.length >= items.length) {
+				for (i = 0, l = base.length; i < l; i++) {
+					if (i >= items.length || base[i] != items[i]) {
+						bp = i + 1;
+						break;
+					}
+				}
+			}
+
+			if (base.length < items.length) {
+				for (i = 0, l = items.length; i < l; i++) {
+					if (i >= base.length || base[i] != items[i]) {
+						bp = i + 1;
+						break;
+					}
+				}
+			}
+
+			if (bp == 1)
+				return path;
+
+			for (i = 0, l = base.length - (bp - 1); i < l; i++)
+				out += "../";
+
+			for (i = bp - 1, l = items.length; i < l; i++) {
+				if (i != bp - 1)
+					out += "/" + items[i];
+				else
+					out += items[i];
+			}
+
+			return out;
+		},
+
+		toAbsPath : function(base, path) {
+			var i, nb = 0, o = [], tr, outPath;
+
+			// Split paths
+			tr = /\/$/.test(path) ? '/' : '';
+			base = base.split('/');
+			path = path.split('/');
+
+			// Remove empty chunks
+			each(base, function(k) {
+				if (k)
+					o.push(k);
+			});
+
+			base = o;
+
+			// Merge relURLParts chunks
+			for (i = path.length - 1, o = []; i >= 0; i--) {
+				// Ignore empty or .
+				if (path[i].length == 0 || path[i] == ".")
+					continue;
+
+				// Is parent
+				if (path[i] == '..') {
+					nb++;
+					continue;
+				}
+
+				// Move up
+				if (nb > 0) {
+					nb--;
+					continue;
+				}
+
+				o.push(path[i]);
+			}
+
+			i = base.length - nb;
+
+			// If /a/b/c or /
+			if (i <= 0)
+				outPath = o.reverse().join('/');
+			else
+				outPath = base.slice(0, i).join('/') + '/' + o.reverse().join('/');
+
+			// Add front / if it's needed
+			if (outPath.indexOf('/') !== 0)
+				outPath = '/' + outPath;
+
+			// Add traling / if it's needed
+			if (tr && outPath.lastIndexOf('/') !== outPath.length - 1)
+				outPath += tr;
+
+			return outPath;
+		},
+
+		getURI : function(nh) {
+			var s, t = this;
+
+			// Rebuild source
+			if (!t.source || nh) {
+				s = '';
+
+				if (!nh) {
+					if (t.protocol)
+						s += t.protocol + '://';
+
+					if (t.userInfo)
+						s += t.userInfo + '@';
+
+					if (t.host)
+						s += t.host;
+
+					if (t.port)
+						s += ':' + t.port;
+				}
+
+				if (t.path)
+					s += t.path;
+
+				if (t.query)
+					s += '?' + t.query;
+
+				if (t.anchor)
+					s += '#' + t.anchor;
+
+				t.source = s;
+			}
+
+			return t.source;
+		}
+	});
+})();
+
+(function() {
+	var each = tinymce.each;
+
+	tinymce.create('static tinymce.util.Cookie', {
+		getHash : function(n) {
+			var v = this.get(n), h;
+
+			if (v) {
+				each(v.split('&'), function(v) {
+					v = v.split('=');
+					h = h || {};
+					h[unescape(v[0])] = unescape(v[1]);
+				});
+			}
+
+			return h;
+		},
+
+		setHash : function(n, v, e, p, d, s) {
+			var o = '';
+
+			each(v, function(v, k) {
+				o += (!o ? '' : '&') + escape(k) + '=' + escape(v);
+			});
+
+			this.set(n, o, e, p, d, s);
+		},
+
+		get : function(n) {
+			var c = document.cookie, e, p = n + "=", b;
+
+			// Strict mode
+			if (!c)
+				return;
+
+			b = c.indexOf("; " + p);
+
+			if (b == -1) {
+				b = c.indexOf(p);
+
+				if (b != 0)
+					return null;
+			} else
+				b += 2;
+
+			e = c.indexOf(";", b);
+
+			if (e == -1)
+				e = c.length;
+
+			return unescape(c.substring(b + p.length, e));
+		},
+
+		set : function(n, v, e, p, d, s) {
+			document.cookie = n + "=" + escape(v) +
+				((e) ? "; expires=" + e.toGMTString() : "") +
+				((p) ? "; path=" + escape(p) : "") +
+				((d) ? "; domain=" + d : "") +
+				((s) ? "; secure" : "");
+		},
+
+		remove : function(n, p) {
+			var d = new Date();
+
+			d.setTime(d.getTime() - 1000);
+
+			this.set(n, '', d, p, d);
+		}
+	});
+})();
+
+(function() {
+	function serialize(o, quote) {
+		var i, v, t;
+
+		quote = quote || '"';
+
+		if (o == null)
+			return 'null';
+
+		t = typeof o;
+
+		if (t == 'string') {
+			v = '\bb\tt\nn\ff\rr\""\'\'\\\\';
+
+			return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) {
+				// Make sure single quotes never get encoded inside double quotes for JSON compatibility
+				if (quote === '"' && a === "'")
+					return a;
+
+				i = v.indexOf(b);
+
+				if (i + 1)
+					return '\\' + v.charAt(i + 1);
+
+				a = b.charCodeAt().toString(16);
+
+				return '\\u' + '0000'.substring(a.length) + a;
+			}) + quote;
+		}
+
+		if (t == 'object') {
+			if (o.hasOwnProperty && o instanceof Array) {
+					for (i=0, v = '['; i<o.length; i++)
+						v += (i > 0 ? ',' : '') + serialize(o[i], quote);
+
+					return v + ']';
+				}
+
+				v = '{';
+
+				for (i in o) {
+					if (o.hasOwnProperty(i)) {
+						v += typeof o[i] != 'function' ? (v.length > 1 ? ',' + quote : quote) + i + quote +':' + serialize(o[i], quote) : '';
+					}
+				}
+
+				return v + '}';
+		}
+
+		return '' + o;
+	};
+
+	tinymce.util.JSON = {
+		serialize: serialize,
+
+		parse: function(s) {
+			try {
+				return eval('(' + s + ')');
+			} catch (ex) {
+				// Ignore
+			}
+		}
+
+		};
+})();
+
+tinymce.create('static tinymce.util.XHR', {
+	send : function(o) {
+		var x, t, w = window, c = 0;
+
+		// Default settings
+		o.scope = o.scope || this;
+		o.success_scope = o.success_scope || o.scope;
+		o.error_scope = o.error_scope || o.scope;
+		o.async = o.async === false ? false : true;
+		o.data = o.data || '';
+
+		function get(s) {
+			x = 0;
+
+			try {
+				x = new ActiveXObject(s);
+			} catch (ex) {
+			}
+
+			return x;
+		};
+
+		x = w.XMLHttpRequest ? new XMLHttpRequest() : get('Microsoft.XMLHTTP') || get('Msxml2.XMLHTTP');
+
+		if (x) {
+			if (x.overrideMimeType)
+				x.overrideMimeType(o.content_type);
+
+			x.open(o.type || (o.data ? 'POST' : 'GET'), o.url, o.async);
+
+			if (o.content_type)
+				x.setRequestHeader('Content-Type', o.content_type);
+
+			x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
+
+			x.send(o.data);
+
+			function ready() {
+				if (!o.async || x.readyState == 4 || c++ > 10000) {
+					if (o.success && c < 10000 && x.status == 200)
+						o.success.call(o.success_scope, '' + x.responseText, x, o);
+					else if (o.error)
+						o.error.call(o.error_scope, c > 10000 ? 'TIMED_OUT' : 'GENERAL', x, o);
+
+					x = null;
+				} else
+					w.setTimeout(ready, 10);
+			};
+
+			// Syncronous request
+			if (!o.async)
+				return ready();
+
+			// Wait for response, onReadyStateChange can not be used since it leaks memory in IE
+			t = w.setTimeout(ready, 10);
+		}
+	}
+});
+
+(function() {
+	var extend = tinymce.extend, JSON = tinymce.util.JSON, XHR = tinymce.util.XHR;
+
+	tinymce.create('tinymce.util.JSONRequest', {
+		JSONRequest : function(s) {
+			this.settings = extend({
+			}, s);
+			this.count = 0;
+		},
+
+		send : function(o) {
+			var ecb = o.error, scb = o.success;
+
+			o = extend(this.settings, o);
+
+			o.success = function(c, x) {
+				c = JSON.parse(c);
+
+				if (typeof(c) == 'undefined') {
+					c = {
+						error : 'JSON Parse error.'
+					};
+				}
+
+				if (c.error)
+					ecb.call(o.error_scope || o.scope, c.error, x);
+				else
+					scb.call(o.success_scope || o.scope, c.result);
+			};
+
+			o.error = function(ty, x) {
+				if (ecb)
+					ecb.call(o.error_scope || o.scope, ty, x);
+			};
+
+			o.data = JSON.serialize({
+				id : o.id || 'c' + (this.count++),
+				method : o.method,
+				params : o.params
+			});
+
+			// JSON content type for Ruby on rails. Bug: #1883287
+			o.content_type = 'application/json';
+
+			XHR.send(o);
+		},
+
+		'static' : {
+			sendRPC : function(o) {
+				return new tinymce.util.JSONRequest().send(o);
+			}
+		}
+	});
+}());
+(function(tinymce){
+	tinymce.VK = {
+		BACKSPACE: 8,
+		DELETE: 46,
+		DOWN: 40,
+		ENTER: 13,
+		LEFT: 37,
+		RIGHT: 39,
+		SPACEBAR: 32,
+		TAB: 9,
+		UP: 38,
+
+		modifierPressed: function (e) {
+			return e.shiftKey || e.ctrlKey || e.altKey;
+		}
+	}
+})(tinymce);
+
+(function(tinymce) {
+	var VK = tinymce.VK, BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE;
+
+	function cleanupStylesWhenDeleting(ed) {
+		var dom = ed.dom, selection = ed.selection;
+
+		ed.onKeyDown.add(function(ed, e) {
+			var rng, blockElm, node, clonedSpan, isDelete;
+
+			if (e.isDefaultPrevented()) {
+				return;
+			}
+
+			isDelete = e.keyCode == DELETE;
+			if ((isDelete || e.keyCode == BACKSPACE) && !VK.modifierPressed(e)) {
+				e.preventDefault();
+				rng = selection.getRng();
+
+				// Find root block
+				blockElm = dom.getParent(rng.startContainer, dom.isBlock);
+
+				// On delete clone the root span of the next block element
+				if (isDelete)
+					blockElm = dom.getNext(blockElm, dom.isBlock);
+
+				// Locate root span element and clone it since it would otherwise get merged by the "apple-style-span" on delete/backspace
+				if (blockElm) {
+					node = blockElm.firstChild;
+
+					// Ignore empty text nodes
+					while (node && node.nodeType == 3 && node.nodeValue.length == 0)
+						node = node.nextSibling;
+
+					if (node && node.nodeName === 'SPAN') {
+						clonedSpan = node.cloneNode(false);
+					}
+				}
+
+				// Do the backspace/delete action
+				ed.getDoc().execCommand(isDelete ? 'ForwardDelete' : 'Delete', false, null);
+
+				// Find all odd apple-style-spans
+				blockElm = dom.getParent(rng.startContainer, dom.isBlock);
+				tinymce.each(dom.select('span.Apple-style-span,font.Apple-style-span', blockElm), function(span) {
+					var bm = selection.getBookmark();
+
+					if (clonedSpan) {
+						dom.replace(clonedSpan.cloneNode(false), span, true);
+					} else {
+						dom.remove(span, true);
+					}
+
+					// Restore the selection
+					selection.moveToBookmark(bm);
+				});
+			}
+		});
+	};
+
+	function emptyEditorWhenDeleting(ed) {
+		function serializeRng(rng) {
+			var body = ed.dom.create("body");
+			var contents = rng.cloneContents();
+			body.appendChild(contents);
+			return ed.selection.serializer.serialize(body, {format: 'html'});
+		}
+
+		function allContentsSelected(rng) {
+			var selection = serializeRng(rng);
+
+			var allRng = ed.dom.createRng();
+			allRng.selectNode(ed.getBody());
+
+			var allSelection = serializeRng(allRng);
+			return selection === allSelection;
+		}
+
+		ed.onKeyDown.addToTop(function(ed, e) {
+			var keyCode = e.keyCode;
+			if (keyCode == DELETE || keyCode == BACKSPACE) {
+				var rng = ed.selection.getRng(true);
+				if (!rng.collapsed && allContentsSelected(rng)) {
+					ed.setContent('', {format : 'raw'});
+					ed.nodeChanged();
+					e.preventDefault();
+				}
+			}
+		});
+	};
+
+	function inputMethodFocus(ed) {
+		ed.dom.bind(ed.getDoc(), 'focusin', function() {
+			ed.selection.setRng(ed.selection.getRng());
+		});
+	};
+
+	function removeHrOnBackspace(ed) {
+		ed.onKeyDown.add(function(ed, e) {
+			if (e.keyCode === BACKSPACE) {
+				if (ed.selection.isCollapsed() && ed.selection.getRng(true).startOffset === 0) {
+					var node = ed.selection.getNode();
+					var previousSibling = node.previousSibling;
+					if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "hr") {
+						ed.dom.remove(previousSibling);
+						tinymce.dom.Event.cancel(e);
+					}
+				}
+			}
+		})
+	}
+
+	function focusBody(ed) {
+		// Fix for a focus bug in FF 3.x where the body element
+		// wouldn't get proper focus if the user clicked on the HTML element
+		if (!Range.prototype.getClientRects) { // Detect getClientRects got introduced in FF 4
+			ed.onMouseDown.add(function(ed, e) {
+				if (e.target.nodeName === "HTML") {
+					var body = ed.getBody();
+
+					// Blur the body it's focused but not correctly focused
+					body.blur();
+
+					// Refocus the body after a little while
+					setTimeout(function() {
+						body.focus();
+					}, 0);
+				}
+			});
+		}
+	};
+
+	function selectControlElements(ed) {
+		ed.onClick.add(function(ed, e) {
+			e = e.target;
+
+			// Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250
+			// WebKit can't even do simple things like selecting an image
+			// Needs tobe the setBaseAndExtend or it will fail to select floated images
+			if (/^(IMG|HR)$/.test(e.nodeName))
+				ed.selection.getSel().setBaseAndExtent(e, 0, e, 1);
+
+			if (e.nodeName == 'A' && ed.dom.hasClass(e, 'mceItemAnchor'))
+				ed.selection.select(e);
+
+			ed.nodeChanged();
+		});
+	};
+
+	function removeStylesWhenDeletingAccrossBlockElements(ed) {
+		var selection = ed.selection, dom = ed.dom;
+
+		function getAttributeApplyFunction() {
+			var template = dom.getAttribs(selection.getStart().cloneNode(false));
+
+			return function() {
+				var target = selection.getStart();
+
+				if (target !== ed.getBody()) {
+					dom.setAttrib(target, "style", null);
+
+				tinymce.each(template, function(attr) {
+					target.setAttributeNode(attr.cloneNode(true));
+				});
+				}
+			};
+		}
+
+		function isSelectionAcrossElements() {
+			return !selection.isCollapsed() && selection.getStart() != selection.getEnd();
+		}
+
+		function blockEvent(ed, e) {
+			e.preventDefault();
+			return false;
+		}
+
+		ed.onKeyPress.add(function(ed, e) {
+			var applyAttributes;
+
+			if ((e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) {
+				applyAttributes = getAttributeApplyFunction();
+				ed.getDoc().execCommand('delete', false, null);
+				applyAttributes();
+				e.preventDefault();
+				return false;
+			}
+		});
+
+		dom.bind(ed.getDoc(), 'cut', function(e) {
+			var applyAttributes;
+
+			if (isSelectionAcrossElements()) {
+				applyAttributes = getAttributeApplyFunction();
+				ed.onKeyUp.addToTop(blockEvent);
+
+				setTimeout(function() {
+					applyAttributes();
+					ed.onKeyUp.remove(blockEvent);
+				}, 0);
+			}
+		});
+	}
+	
+	/*
+	function removeStylesOnPTagsInheritedFromHeadingTag(ed) {
+		ed.onKeyDown.add(function(ed, event) {
+			function checkInHeadingTag(ed) {
+				var currentNode = ed.selection.getNode();
+				var headingTags = 'h1,h2,h3,h4,h5,h6';
+				return ed.dom.is(currentNode, headingTags) || ed.dom.getParent(currentNode, headingTags) !== null;
+			}
+
+			if (event.keyCode === VK.ENTER && !VK.modifierPressed(event) && checkInHeadingTag(ed)) {
+				setTimeout(function() {
+					var currentNode = ed.selection.getNode();
+					if (ed.dom.is(currentNode, 'p')) {
+						ed.dom.setAttrib(currentNode, 'style', null);
+						// While tiny's content is correct after this method call, the content shown is not representative of it and needs to be 'repainted'
+						ed.execCommand('mceCleanup');
+					}
+				}, 0);
+			}
+		});
+	}
+	*/
+
+	function selectionChangeNodeChanged(ed) {
+		var lastRng, selectionTimer;
+
+		ed.dom.bind(ed.getDoc(), 'selectionchange', function() {
+			if (selectionTimer) {
+				clearTimeout(selectionTimer);
+				selectionTimer = 0;
+			}
+
+			selectionTimer = window.setTimeout(function() {
+				var rng = ed.selection.getRng();
+
+				// Compare the ranges to see if it was a real change or not
+				if (!lastRng || !tinymce.dom.RangeUtils.compareRanges(rng, lastRng)) {
+					ed.nodeChanged();
+					lastRng = rng;
+				}
+			}, 50);
+		});
+	}
+
+	function ensureBodyHasRoleApplication(ed) {
+		document.body.setAttribute("role", "application");
+	}
+	
+	function disableBackspaceIntoATable(ed) {
+		ed.onKeyDown.add(function(ed, e) {
+			if (e.keyCode === BACKSPACE) {
+				if (ed.selection.isCollapsed() && ed.selection.getRng(true).startOffset === 0) {
+					var previousSibling = ed.selection.getNode().previousSibling;
+					if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "table") {
+						return tinymce.dom.Event.cancel(e);
+					}
+				}
+			}
+		})
+	}
+
+	tinymce.create('tinymce.util.Quirks', {
+		Quirks: function(ed) {
+			// All browsers
+			disableBackspaceIntoATable(ed);
+
+			// WebKit
+			if (tinymce.isWebKit) {
+				cleanupStylesWhenDeleting(ed);
+				emptyEditorWhenDeleting(ed);
+				inputMethodFocus(ed);
+				selectControlElements(ed);
+
+				// iOS
+				if (tinymce.isIDevice) {
+					selectionChangeNodeChanged(ed);
+				}
+			}
+
+			// IE
+			if (tinymce.isIE) {
+				removeHrOnBackspace(ed);
+				emptyEditorWhenDeleting(ed);
+				ensureBodyHasRoleApplication(ed);
+				//removeStylesOnPTagsInheritedFromHeadingTag(ed)
+			}
+
+			// Gecko
+			if (tinymce.isGecko) {
+				removeHrOnBackspace(ed);
+				focusBody(ed);
+				removeStylesWhenDeletingAccrossBlockElements(ed);
+			}
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var namedEntities, baseEntities, reverseEntities,
+		attrsCharsRegExp = /[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
+		textCharsRegExp = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
+		rawCharsRegExp = /[<>&\"\']/g,
+		entityRegExp = /&(#x|#)?([\w]+);/g,
+		asciiMap = {
+				128 : "\u20AC", 130 : "\u201A", 131 : "\u0192", 132 : "\u201E", 133 : "\u2026", 134 : "\u2020",
+				135 : "\u2021", 136 : "\u02C6", 137 : "\u2030", 138 : "\u0160", 139 : "\u2039", 140 : "\u0152",
+				142 : "\u017D", 145 : "\u2018", 146 : "\u2019", 147 : "\u201C", 148 : "\u201D", 149 : "\u2022",
+				150 : "\u2013", 151 : "\u2014", 152 : "\u02DC", 153 : "\u2122", 154 : "\u0161", 155 : "\u203A",
+				156 : "\u0153", 158 : "\u017E", 159 : "\u0178"
+		};
+
+	// Raw entities
+	baseEntities = {
+		'\"' : '"', // Needs to be escaped since the YUI compressor would otherwise break the code
+		"'" : ''',
+		'<' : '<',
+		'>' : '>',
+		'&' : '&'
+	};
+
+	// Reverse lookup table for raw entities
+	reverseEntities = {
+		'<' : '<',
+		'>' : '>',
+		'&' : '&',
+		'"' : '"',
+		''' : "'"
+	};
+
+	// Decodes text by using the browser
+	function nativeDecode(text) {
+		var elm;
+
+		elm = document.createElement("div");
+		elm.innerHTML = text;
+
+		return elm.textContent || elm.innerText || text;
+	};
+
+	// Build a two way lookup table for the entities
+	function buildEntitiesLookup(items, radix) {
+		var i, chr, entity, lookup = {};
+
+		if (items) {
+			items = items.split(',');
+			radix = radix || 10;
+
+			// Build entities lookup table
+			for (i = 0; i < items.length; i += 2) {
+				chr = String.fromCharCode(parseInt(items[i], radix));
+
+				// Only add non base entities
+				if (!baseEntities[chr]) {
+					entity = '&' + items[i + 1] + ';';
+					lookup[chr] = entity;
+					lookup[entity] = chr;
+				}
+			}
+
+			return lookup;
+		}
+	};
+
+	// Unpack entities lookup where the numbers are in radix 32 to reduce the size
+	namedEntities = buildEntitiesLookup(
+		'50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' +
+		'5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' +
+		'5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' +
+		'5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' +
+		'68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' +
+		'6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' +
+		'6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' +
+		'75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' +
+		'7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' +
+		'7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' +
+		'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' +
+		'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' +
+		't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' +
+		'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' +
+		'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' +
+		'81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' +
+		'8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' +
+		'8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' +
+		'8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' +
+		'8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' +
+		'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' +
+		'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' +
+		'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' +
+		'80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' +
+		'811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro'
+	, 32);
+
+	tinymce.html = tinymce.html || {};
+
+	tinymce.html.Entities = {
+		encodeRaw : function(text, attr) {
+			return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) {
+				return baseEntities[chr] || chr;
+			});
+		},
+
+		encodeAllRaw : function(text) {
+			return ('' + text).replace(rawCharsRegExp, function(chr) {
+				return baseEntities[chr] || chr;
+			});
+		},
+
+		encodeNumeric : function(text, attr) {
+			return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) {
+				// Multi byte sequence convert it to a single entity
+				if (chr.length > 1)
+					return '&#' + (((chr.charCodeAt(0) - 0xD800) * 0x400) + (chr.charCodeAt(1) - 0xDC00) + 0x10000) + ';';
+
+				return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';';
+			});
+		},
+
+		encodeNamed : function(text, attr, entities) {
+			entities = entities || namedEntities;
+
+			return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) {
+				return baseEntities[chr] || entities[chr] || chr;
+			});
+		},
+
+		getEncodeFunc : function(name, entities) {
+			var Entities = tinymce.html.Entities;
+
+			entities = buildEntitiesLookup(entities) || namedEntities;
+
+			function encodeNamedAndNumeric(text, attr) {
+				return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) {
+					return baseEntities[chr] || entities[chr] || '&#' + chr.charCodeAt(0) + ';' || chr;
+				});
+			};
+
+			function encodeCustomNamed(text, attr) {
+				return Entities.encodeNamed(text, attr, entities);
+			};
+
+			// Replace + with , to be compatible with previous TinyMCE versions
+			name = tinymce.makeMap(name.replace(/\+/g, ','));
+
+			// Named and numeric encoder
+			if (name.named && name.numeric)
+				return encodeNamedAndNumeric;
+
+			// Named encoder
+			if (name.named) {
+				// Custom names
+				if (entities)
+					return encodeCustomNamed;
+
+				return Entities.encodeNamed;
+			}
+
+			// Numeric
+			if (name.numeric)
+				return Entities.encodeNumeric;
+
+			// Raw encoder
+			return Entities.encodeRaw;
+		},
+
+		decode : function(text) {
+			return text.replace(entityRegExp, function(all, numeric, value) {
+				if (numeric) {
+					value = parseInt(value, numeric.length === 2 ? 16 : 10);
+
+					// Support upper UTF
+					if (value > 0xFFFF) {
+						value -= 0x10000;
+
+						return String.fromCharCode(0xD800 + (value >> 10), 0xDC00 + (value & 0x3FF));
+					} else
+						return asciiMap[value] || String.fromCharCode(value);
+				}
+
+				return reverseEntities[all] || namedEntities[all] || nativeDecode(all);
+			});
+		}
+	};
+})(tinymce);
+
+tinymce.html.Styles = function(settings, schema) {
+	var rgbRegExp = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,
+		urlOrStrRegExp = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,
+		styleRegExp = /\s*([^:]+):\s*([^;]+);?/g,
+		trimRightRegExp = /\s+$/,
+		urlColorRegExp = /rgb/,
+		undef, i, encodingLookup = {}, encodingItems;
+
+	settings = settings || {};
+
+	encodingItems = '\\" \\\' \\; \\: ; : \uFEFF'.split(' ');
+	for (i = 0; i < encodingItems.length; i++) {
+		encodingLookup[encodingItems[i]] = '\uFEFF' + i;
+		encodingLookup['\uFEFF' + i] = encodingItems[i];
+	}
+
+	function toHex(match, r, g, b) {
+		function hex(val) {
+			val = parseInt(val).toString(16);
+
+			return val.length > 1 ? val : '0' + val; // 0 -> 00
+		};
+
+		return '#' + hex(r) + hex(g) + hex(b);
+	};
+
+	return {
+		toHex : function(color) {
+			return color.replace(rgbRegExp, toHex);
+		},
+
+		parse : function(css) {
+			var styles = {}, matches, name, value, isEncoded, urlConverter = settings.url_converter, urlConverterScope = settings.url_converter_scope || this;
+
+			function compress(prefix, suffix) {
+				var top, right, bottom, left;
+
+				// Get values and check it it needs compressing
+				top = styles[prefix + '-top' + suffix];
+				if (!top)
+					return;
+
+				right = styles[prefix + '-right' + suffix];
+				if (top != right)
+					return;
+
+				bottom = styles[prefix + '-bottom' + suffix];
+				if (right != bottom)
+					return;
+
+				left = styles[prefix + '-left' + suffix];
+				if (bottom != left)
+					return;
+
+				// Compress
+				styles[prefix + suffix] = left;
+				delete styles[prefix + '-top' + suffix];
+				delete styles[prefix + '-right' + suffix];
+				delete styles[prefix + '-bottom' + suffix];
+				delete styles[prefix + '-left' + suffix];
+			};
+
+			function canCompress(key) {
+				var value = styles[key], i;
+
+				if (!value || value.indexOf(' ') < 0)
+					return;
+
+				value = value.split(' ');
+				i = value.length;
+				while (i--) {
+					if (value[i] !== value[0])
+						return false;
+				}
+
+				styles[key] = value[0];
+
+				return true;
+			};
+
+			function compress2(target, a, b, c) {
+				if (!canCompress(a))
+					return;
+
+				if (!canCompress(b))
+					return;
+
+				if (!canCompress(c))
+					return;
+
+				// Compress
+				styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];
+				delete styles[a];
+				delete styles[b];
+				delete styles[c];
+			};
+
+			// Encodes the specified string by replacing all \" \' ; : with _<num>
+			function encode(str) {
+				isEncoded = true;
+
+				return encodingLookup[str];
+			};
+
+			// Decodes the specified string by replacing all _<num> with it's original value \" \' etc
+			// It will also decode the \" \' if keep_slashes is set to fale or omitted
+			function decode(str, keep_slashes) {
+				if (isEncoded) {
+					str = str.replace(/\uFEFF[0-9]/g, function(str) {
+						return encodingLookup[str];
+					});
+				}
+
+				if (!keep_slashes)
+					str = str.replace(/\\([\'\";:])/g, "$1");
+
+				return str;
+			}
+
+			if (css) {
+				// Encode \" \' % and ; and : inside strings so they don't interfere with the style parsing
+				css = css.replace(/\\[\"\';:\uFEFF]/g, encode).replace(/\"[^\"]+\"|\'[^\']+\'/g, function(str) {
+					return str.replace(/[;:]/g, encode);
+				});
+
+				// Parse styles
+				while (matches = styleRegExp.exec(css)) {
+					name = matches[1].replace(trimRightRegExp, '').toLowerCase();
+					value = matches[2].replace(trimRightRegExp, '');
+
+					if (name && value.length > 0) {
+						// Opera will produce 700 instead of bold in their style values
+						if (name === 'font-weight' && value === '700')
+							value = 'bold';
+						else if (name === 'color' || name === 'background-color') // Lowercase colors like RED
+							value = value.toLowerCase();		
+
+						// Convert RGB colors to HEX
+						value = value.replace(rgbRegExp, toHex);
+
+						// Convert URLs and force them into url('value') format
+						value = value.replace(urlOrStrRegExp, function(match, url, url2, url3, str, str2) {
+							str = str || str2;
+
+							if (str) {
+								str = decode(str);
+
+								// Force strings into single quote format
+								return "'" + str.replace(/\'/g, "\\'") + "'";
+							}
+
+							url = decode(url || url2 || url3);
+
+							// Convert the URL to relative/absolute depending on config
+							if (urlConverter)
+								url = urlConverter.call(urlConverterScope, url, 'style');
+
+							// Output new URL format
+							return "url('" + url.replace(/\'/g, "\\'") + "')";
+						});
+
+						styles[name] = isEncoded ? decode(value, true) : value;
+					}
+
+					styleRegExp.lastIndex = matches.index + matches[0].length;
+				}
+
+				// Compress the styles to reduce it's size for example IE will expand styles
+				compress("border", "");
+				compress("border", "-width");
+				compress("border", "-color");
+				compress("border", "-style");
+				compress("padding", "");
+				compress("margin", "");
+				compress2('border', 'border-width', 'border-style', 'border-color');
+
+				// Remove pointless border, IE produces these
+				if (styles.border === 'medium none')
+					delete styles.border;
+			}
+
+			return styles;
+		},
+
+		serialize : function(styles, element_name) {
+			var css = '', name, value;
+
+			function serializeStyles(name) {
+				var styleList, i, l, value;
+
+				styleList = schema.styles[name];
+				if (styleList) {
+					for (i = 0, l = styleList.length; i < l; i++) {
+						name = styleList[i];
+						value = styles[name];
+
+						if (value !== undef && value.length > 0)
+							css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';
+					}
+				}
+			};
+
+			// Serialize styles according to schema
+			if (element_name && schema && schema.styles) {
+				// Serialize global styles and element specific styles
+				serializeStyles('*');
+				serializeStyles(element_name);
+			} else {
+				// Output the styles in the order they are inside the object
+				for (name in styles) {
+					value = styles[name];
+
+					if (value !== undef && value.length > 0)
+						css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';
+				}
+			}
+
+			return css;
+		}
+	};
+};
+
+(function(tinymce) {
+	var mapCache = {}, makeMap = tinymce.makeMap, each = tinymce.each;
+
+	function split(str, delim) {
+		return str.split(delim || ',');
+	};
+
+	function unpack(lookup, data) {
+		var key, elements = {};
+
+		function replace(value) {
+			return value.replace(/[A-Z]+/g, function(key) {
+				return replace(lookup[key]);
+			});
+		};
+
+		// Unpack lookup
+		for (key in lookup) {
+			if (lookup.hasOwnProperty(key))
+				lookup[key] = replace(lookup[key]);
+		}
+
+		// Unpack and parse data into object map
+		replace(data).replace(/#/g, '#text').replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g, function(str, name, attributes, children) {
+			attributes = split(attributes, '|');
+
+			elements[name] = {
+				attributes : makeMap(attributes),
+				attributesOrder : attributes,
+				children : makeMap(children, '|', {'#comment' : {}})
+			}
+		});
+
+		return elements;
+	};
+
+	function getHTML5() {
+		var html5 = mapCache.html5;
+
+		if (!html5) {
+			html5 = mapCache.html5 = unpack({
+					A : 'id|accesskey|class|dir|draggable|item|hidden|itemprop|role|spellcheck|style|subject|title',
+					B : '#|a|abbr|area|audio|b|bdo|br|button|canvas|cite|code|command|datalist|del|dfn|em|embed|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|meta|meter|noscript|object|output|progress|q|ruby|samp|script|select|small|span|strong|sub|sup|svg|textarea|time|var|video',
+					C : '#|a|abbr|area|address|article|aside|audio|b|bdo|blockquote|br|button|canvas|cite|code|command|datalist|del|details|dfn|dialog|div|dl|em|embed|fieldset|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|menu|meta|meter|nav|noscript|ol|object|output|p|pre|progress|q|ruby|samp|script|section|select|small|span|strong|style|sub|sup|svg|table|textarea|time|ul|var|video'
+				}, 'html[A|manifest][body|head]' +
+					'head[A][base|command|link|meta|noscript|script|style|title]' +
+					'title[A][#]' +
+					'base[A|href|target][]' +
+					'link[A|href|rel|media|type|sizes][]' +
+					'meta[A|http-equiv|name|content|charset][]' +
+					'style[A|type|media|scoped][#]' +
+					'script[A|charset|type|src|defer|async][#]' +
+					'noscript[A][C]' +
+					'body[A][C]' +
+					'section[A][C]' +
+					'nav[A][C]' +
+					'article[A][C]' +
+					'aside[A][C]' +
+					'h1[A][B]' +
+					'h2[A][B]' +
+					'h3[A][B]' +
+					'h4[A][B]' +
+					'h5[A][B]' +
+					'h6[A][B]' +
+					'hgroup[A][h1|h2|h3|h4|h5|h6]' +
+					'header[A][C]' +
+					'footer[A][C]' +
+					'address[A][C]' +
+					'p[A][B]' +
+					'br[A][]' +
+					'pre[A][B]' +
+					'dialog[A][dd|dt]' +
+					'blockquote[A|cite][C]' +
+					'ol[A|start|reversed][li]' +
+					'ul[A][li]' +
+					'li[A|value][C]' +
+					'dl[A][dd|dt]' +
+					'dt[A][B]' +
+					'dd[A][C]' +
+					'a[A|href|target|ping|rel|media|type][C]' +
+					'em[A][B]' +
+					'strong[A][B]' +
+					'small[A][B]' +
+					'cite[A][B]' +
+					'q[A|cite][B]' +
+					'dfn[A][B]' +
+					'abbr[A][B]' +
+					'code[A][B]' +
+					'var[A][B]' +
+					'samp[A][B]' +
+					'kbd[A][B]' +
+					'sub[A][B]' +
+					'sup[A][B]' +
+					'i[A][B]' +
+					'b[A][B]' +
+					'mark[A][B]' +
+					'progress[A|value|max][B]' +
+					'meter[A|value|min|max|low|high|optimum][B]' +
+					'time[A|datetime][B]' +
+					'ruby[A][B|rt|rp]' +
+					'rt[A][B]' +
+					'rp[A][B]' +
+					'bdo[A][B]' +
+					'span[A][B]' +
+					'ins[A|cite|datetime][B]' +
+					'del[A|cite|datetime][B]' +
+					'figure[A][C|legend]' +
+					'img[A|alt|src|height|width|usemap|ismap][]' +
+					'iframe[A|name|src|height|width|sandbox|seamless][]' +
+					'embed[A|src|height|width|type][]' +
+					'object[A|data|type|height|width|usemap|name|form|classid][param]' +
+					'param[A|name|value][]' +
+					'details[A|open][C|legend]' +
+					'command[A|type|label|icon|disabled|checked|radiogroup][]' +
+					'menu[A|type|label][C|li]' +
+					'legend[A][C|B]' +
+					'div[A][C]' +
+					'source[A|src|type|media][]' +
+					'audio[A|src|autobuffer|autoplay|loop|controls][source]' +
+					'video[A|src|autobuffer|autoplay|loop|controls|width|height|poster][source]' +
+					'hr[A][]' +
+					'form[A|accept-charset|action|autocomplete|enctype|method|name|novalidate|target][C]' +
+					'fieldset[A|disabled|form|name][C|legend]' +
+					'label[A|form|for][B]' +
+					'input[A|type|accept|alt|autocomplete|checked|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|height|list|max|maxlength|min|multiple|pattern|placeholder|readonly|required|size|src|step|width|files|value][]' +
+					'button[A|autofocus|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|name|value|type][B]' +
+					'select[A|autofocus|disabled|form|multiple|name|size][option|optgroup]' +
+					'datalist[A][B|option]' +
+					'optgroup[A|disabled|label][option]' +
+					'option[A|disabled|selected|label|value][]' +
+					'textarea[A|autofocus|disabled|form|maxlength|name|placeholder|readonly|required|rows|cols|wrap][]' +
+					'keygen[A|autofocus|challenge|disabled|form|keytype|name][]' +
+					'output[A|for|form|name][B]' +
+					'canvas[A|width|height][]' +
+					'map[A|name][B|C]' +
+					'area[A|shape|coords|href|alt|target|media|rel|ping|type][]' +
+					'mathml[A][]' +
+					'svg[A][]' +
+					'table[A|summary][caption|colgroup|thead|tfoot|tbody|tr]' +
+					'caption[A][C]' +
+					'colgroup[A|span][col]' +
+					'col[A|span][]' +
+					'thead[A][tr]' +
+					'tfoot[A][tr]' +
+					'tbody[A][tr]' +
+					'tr[A][th|td]' +
+					'th[A|headers|rowspan|colspan|scope][B]' +
+					'td[A|headers|rowspan|colspan][C]'
+			);
+		}
+
+		return html5;
+	};
+
+	function getHTML4() {
+		var html4 = mapCache.html4;
+
+		if (!html4) {
+			// This is the XHTML 1.0 transitional elements with it's attributes and children packed to reduce it's size
+			html4 = mapCache.html4 = unpack({
+				Z : 'H|K|N|O|P',
+				Y : 'X|form|R|Q',
+				ZG : 'E|span|width|align|char|charoff|valign',
+				X : 'p|T|div|U|W|isindex|fieldset|table',
+				ZF : 'E|align|char|charoff|valign',
+				W : 'pre|hr|blockquote|address|center|noframes',
+				ZE : 'abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height',
+				ZD : '[E][S]',
+				U : 'ul|ol|dl|menu|dir',
+				ZC : 'p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q',
+				T : 'h1|h2|h3|h4|h5|h6',
+				ZB : 'X|S|Q',
+				S : 'R|P',
+				ZA : 'a|G|J|M|O|P',
+				R : 'a|H|K|N|O',
+				Q : 'noscript|P',
+				P : 'ins|del|script',
+				O : 'input|select|textarea|label|button',
+				N : 'M|L',
+				M : 'em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym',
+				L : 'sub|sup',
+				K : 'J|I',
+				J : 'tt|i|b|u|s|strike',
+				I : 'big|small|font|basefont',
+				H : 'G|F',
+				G : 'br|span|bdo',
+				F : 'object|applet|img|map|iframe',
+				E : 'A|B|C',
+				D : 'accesskey|tabindex|onfocus|onblur',
+				C : 'onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup',
+				B : 'lang|xml:lang|dir',
+				A : 'id|class|style|title'
+			}, 'script[id|charset|type|language|src|defer|xml:space][]' + 
+				'style[B|id|type|media|title|xml:space][]' + 
+				'object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]' + 
+				'param[id|name|value|valuetype|type][]' + 
+				'p[E|align][#|S]' + 
+				'a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]' + 
+				'br[A|clear][]' + 
+				'span[E][#|S]' + 
+				'bdo[A|C|B][#|S]' + 
+				'applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]' + 
+				'h1[E|align][#|S]' + 
+				'img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]' + 
+				'map[B|C|A|name][X|form|Q|area]' + 
+				'h2[E|align][#|S]' + 
+				'iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]' + 
+				'h3[E|align][#|S]' + 
+				'tt[E][#|S]' + 
+				'i[E][#|S]' + 
+				'b[E][#|S]' + 
+				'u[E][#|S]' + 
+				's[E][#|S]' + 
+				'strike[E][#|S]' + 
+				'big[E][#|S]' + 
+				'small[E][#|S]' + 
+				'font[A|B|size|color|face][#|S]' + 
+				'basefont[id|size|color|face][]' + 
+				'em[E][#|S]' + 
+				'strong[E][#|S]' + 
+				'dfn[E][#|S]' + 
+				'code[E][#|S]' + 
+				'q[E|cite][#|S]' + 
+				'samp[E][#|S]' + 
+				'kbd[E][#|S]' + 
+				'var[E][#|S]' + 
+				'cite[E][#|S]' + 
+				'abbr[E][#|S]' + 
+				'acronym[E][#|S]' + 
+				'sub[E][#|S]' + 
+				'sup[E][#|S]' + 
+				'input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]' + 
+				'select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]' + 
+				'optgroup[E|disabled|label][option]' + 
+				'option[E|selected|disabled|label|value][]' + 
+				'textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]' + 
+				'label[E|for|accesskey|onfocus|onblur][#|S]' + 
+				'button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]' + 
+				'h4[E|align][#|S]' + 
+				'ins[E|cite|datetime][#|Y]' + 
+				'h5[E|align][#|S]' + 
+				'del[E|cite|datetime][#|Y]' + 
+				'h6[E|align][#|S]' + 
+				'div[E|align][#|Y]' + 
+				'ul[E|type|compact][li]' + 
+				'li[E|type|value][#|Y]' + 
+				'ol[E|type|compact|start][li]' + 
+				'dl[E|compact][dt|dd]' + 
+				'dt[E][#|S]' + 
+				'dd[E][#|Y]' + 
+				'menu[E|compact][li]' + 
+				'dir[E|compact][li]' + 
+				'pre[E|width|xml:space][#|ZA]' + 
+				'hr[E|align|noshade|size|width][]' + 
+				'blockquote[E|cite][#|Y]' + 
+				'address[E][#|S|p]' + 
+				'center[E][#|Y]' + 
+				'noframes[E][#|Y]' + 
+				'isindex[A|B|prompt][]' + 
+				'fieldset[E][#|legend|Y]' + 
+				'legend[E|accesskey|align][#|S]' + 
+				'table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]' + 
+				'caption[E|align][#|S]' + 
+				'col[ZG][]' + 
+				'colgroup[ZG][col]' + 
+				'thead[ZF][tr]' + 
+				'tr[ZF|bgcolor][th|td]' + 
+				'th[E|ZE][#|Y]' + 
+				'form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]' + 
+				'noscript[E][#|Y]' + 
+				'td[E|ZE][#|Y]' + 
+				'tfoot[ZF][tr]' + 
+				'tbody[ZF][tr]' + 
+				'area[E|D|shape|coords|href|nohref|alt|target][]' + 
+				'base[id|href|target][]' + 
+				'body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]'
+			);
+		}
+
+		return html4;
+	};
+
+	tinymce.html.Schema = function(settings) {
+		var self = this, elements = {}, children = {}, patternElements = [], validStyles, schemaItems;
+		var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap, blockElementsMap, nonEmptyElementsMap, customElementsMap = {};
+
+		// Creates an lookup table map object for the specified option or the default value
+		function createLookupTable(option, default_value, extend) {
+			var value = settings[option];
+
+			if (!value) {
+				// Get cached default map or make it if needed
+				value = mapCache[option];
+
+				if (!value) {
+					value = makeMap(default_value, ' ', makeMap(default_value.toUpperCase(), ' '));
+					value = tinymce.extend(value, extend);
+
+					mapCache[option] = value;
+				}
+			} else {
+				// Create custom map
+				value = makeMap(value, ',', makeMap(value.toUpperCase(), ' '));
+			}
+
+			return value;
+		};
+
+		settings = settings || {};
+		schemaItems = settings.schema == "html5" ? getHTML5() : getHTML4();
+
+		// Allow all elements and attributes if verify_html is set to false
+		if (settings.verify_html === false)
+			settings.valid_elements = '*[*]';
+
+		// Build styles list
+		if (settings.valid_styles) {
+			validStyles = {};
+
+			// Convert styles into a rule list
+			each(settings.valid_styles, function(value, key) {
+				validStyles[key] = tinymce.explode(value);
+			});
+		}
+
+		// Setup map objects
+		whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script style textarea');
+		selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li options p td tfoot th thead tr');
+		shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link meta param embed source');
+		boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls');
+		nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object', shortEndedElementsMap);
+		blockElementsMap = createLookupTable('block_elements', 'h1 h2 h3 h4 h5 h6 hr p div address pre form table tbody thead tfoot ' + 
+						'th tr td li ol ul caption blockquote center dl dt dd dir fieldset ' + 
+						'noscript menu isindex samp header footer article section hgroup aside nav');
+
+		// Converts a wildcard expression string to a regexp for example *a will become /.*a/.
+		function patternToRegExp(str) {
+			return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');
+		};
+
+		// Parses the specified valid_elements string and adds to the current rules
+		// This function is a bit hard to read since it's heavily optimized for speed
+		function addValidElements(valid_elements) {
+			var ei, el, ai, al, yl, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder,
+				prefix, outputName, globalAttributes, globalAttributesOrder, transElement, key, childKey, value,
+				elementRuleRegExp = /^([#+-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,
+				attrRuleRegExp = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,
+				hasPatternsRegExp = /[*?+]/;
+
+			if (valid_elements) {
+				// Split valid elements into an array with rules
+				valid_elements = split(valid_elements);
+
+				if (elements['@']) {
+					globalAttributes = elements['@'].attributes;
+					globalAttributesOrder = elements['@'].attributesOrder;
+				}
+
+				// Loop all rules
+				for (ei = 0, el = valid_elements.length; ei < el; ei++) {
+					// Parse element rule
+					matches = elementRuleRegExp.exec(valid_elements[ei]);
+					if (matches) {
+						// Setup local names for matches
+						prefix = matches[1];
+						elementName = matches[2];
+						outputName = matches[3];
+						attrData = matches[4];
+
+						// Create new attributes and attributesOrder
+						attributes = {};
+						attributesOrder = [];
+
+						// Create the new element
+						element = {
+							attributes : attributes,
+							attributesOrder : attributesOrder
+						};
+
+						// Padd empty elements prefix
+						if (prefix === '#')
+							element.paddEmpty = true;
+
+						// Remove empty elements prefix
+						if (prefix === '-')
+							element.removeEmpty = true;
+
+						// Copy attributes from global rule into current rule
+						if (globalAttributes) {
+							for (key in globalAttributes)
+								attributes[key] = globalAttributes[key];
+
+							attributesOrder.push.apply(attributesOrder, globalAttributesOrder);
+						}
+
+						// Attributes defined
+						if (attrData) {
+							attrData = split(attrData, '|');
+							for (ai = 0, al = attrData.length; ai < al; ai++) {
+								matches = attrRuleRegExp.exec(attrData[ai]);
+								if (matches) {
+									attr = {};
+									attrType = matches[1];
+									attrName = matches[2].replace(/::/g, ':');
+									prefix = matches[3];
+									value = matches[4];
+
+									// Required
+									if (attrType === '!') {
+										element.attributesRequired = element.attributesRequired || [];
+										element.attributesRequired.push(attrName);
+										attr.required = true;
+									}
+
+									// Denied from global
+									if (attrType === '-') {
+										delete attributes[attrName];
+										attributesOrder.splice(tinymce.inArray(attributesOrder, attrName), 1);
+										continue;
+									}
+
+									// Default value
+									if (prefix) {
+										// Default value
+										if (prefix === '=') {
+											element.attributesDefault = element.attributesDefault || [];
+											element.attributesDefault.push({name: attrName, value: value});
+											attr.defaultValue = value;
+										}
+
+										// Forced value
+										if (prefix === ':') {
+											element.attributesForced = element.attributesForced || [];
+											element.attributesForced.push({name: attrName, value: value});
+											attr.forcedValue = value;
+										}
+
+										// Required values
+										if (prefix === '<')
+											attr.validValues = makeMap(value, '?');
+									}
+
+									// Check for attribute patterns
+									if (hasPatternsRegExp.test(attrName)) {
+										element.attributePatterns = element.attributePatterns || [];
+										attr.pattern = patternToRegExp(attrName);
+										element.attributePatterns.push(attr);
+									} else {
+										// Add attribute to order list if it doesn't already exist
+										if (!attributes[attrName])
+											attributesOrder.push(attrName);
+
+										attributes[attrName] = attr;
+									}
+								}
+							}
+						}
+
+						// Global rule, store away these for later usage
+						if (!globalAttributes && elementName == '@') {
+							globalAttributes = attributes;
+							globalAttributesOrder = attributesOrder;
+						}
+
+						// Handle substitute elements such as b/strong
+						if (outputName) {
+							element.outputName = elementName;
+							elements[outputName] = element;
+						}
+
+						// Add pattern or exact element
+						if (hasPatternsRegExp.test(elementName)) {
+							element.pattern = patternToRegExp(elementName);
+							patternElements.push(element);
+						} else
+							elements[elementName] = element;
+					}
+				}
+			}
+		};
+
+		function setValidElements(valid_elements) {
+			elements = {};
+			patternElements = [];
+
+			addValidElements(valid_elements);
+
+			each(schemaItems, function(element, name) {
+				children[name] = element.children;
+			});
+		};
+
+		// Adds custom non HTML elements to the schema
+		function addCustomElements(custom_elements) {
+			var customElementRegExp = /^(~)?(.+)$/;
+
+			if (custom_elements) {
+				each(split(custom_elements), function(rule) {
+					var matches = customElementRegExp.exec(rule),
+						inline = matches[1] === '~',
+						cloneName = inline ? 'span' : 'div',
+						name = matches[2];
+
+					children[name] = children[cloneName];
+					customElementsMap[name] = cloneName;
+
+					// If it's not marked as inline then add it to valid block elements
+					if (!inline)
+						blockElementsMap[name] = {};
+
+					// Add custom elements at span/div positions
+					each(children, function(element, child) {
+						if (element[cloneName])
+							element[name] = element[cloneName];
+					});
+				});
+			}
+		};
+
+		// Adds valid children to the schema object
+		function addValidChildren(valid_children) {
+			var childRuleRegExp = /^([+\-]?)(\w+)\[([^\]]+)\]$/;
+
+			if (valid_children) {
+				each(split(valid_children), function(rule) {
+					var matches = childRuleRegExp.exec(rule), parent, prefix;
+
+					if (matches) {
+						prefix = matches[1];
+
+						// Add/remove items from default
+						if (prefix)
+							parent = children[matches[2]];
+						else
+							parent = children[matches[2]] = {'#comment' : {}};
+
+						parent = children[matches[2]];
+
+						each(split(matches[3], '|'), function(child) {
+							if (prefix === '-')
+								delete parent[child];
+							else
+								parent[child] = {};
+						});
+					}
+				});
+			}
+		};
+
+		function getElementRule(name) {
+			var element = elements[name], i;
+
+			// Exact match found
+			if (element)
+				return element;
+
+			// No exact match then try the patterns
+			i = patternElements.length;
+			while (i--) {
+				element = patternElements[i];
+
+				if (element.pattern.test(name))
+					return element;
+			}
+		};
+
+		if (!settings.valid_elements) {
+			// No valid elements defined then clone the elements from the schema spec
+			each(schemaItems, function(element, name) {
+				elements[name] = {
+					attributes : element.attributes,
+					attributesOrder : element.attributesOrder
+				};
+
+				children[name] = element.children;
+			});
+
+			// Switch these on HTML4
+			if (settings.schema != "html5") {
+				each(split('strong/b,em/i'), function(item) {
+					item = split(item, '/');
+					elements[item[1]].outputName = item[0];
+				});
+			}
+
+			// Add default alt attribute for images
+			elements.img.attributesDefault = [{name: 'alt', value: ''}];
+
+			// Remove these if they are empty by default
+			each(split('ol,ul,sub,sup,blockquote,span,font,a,table,tbody,tr,strong,em,b,i'), function(name) {
+				if (elements[name]) {
+					elements[name].removeEmpty = true;
+				}
+			});
+
+			// Padd these by default
+			each(split('p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption'), function(name) {
+				elements[name].paddEmpty = true;
+			});
+		} else
+			setValidElements(settings.valid_elements);
+
+		addCustomElements(settings.custom_elements);
+		addValidChildren(settings.valid_children);
+		addValidElements(settings.extended_valid_elements);
+
+		// Todo: Remove this when we fix list handling to be valid
+		addValidChildren('+ol[ul|ol],+ul[ul|ol]');
+
+		// Delete invalid elements
+		if (settings.invalid_elements) {
+			tinymce.each(tinymce.explode(settings.invalid_elements), function(item) {
+				if (elements[item])
+					delete elements[item];
+			});
+		}
+
+		// If the user didn't allow span only allow internal spans
+		if (!getElementRule('span'))
+			addValidElements('span[!data-mce-type|*]');
+
+		self.children = children;
+
+		self.styles = validStyles;
+
+		self.getBoolAttrs = function() {
+			return boolAttrMap;
+		};
+
+		self.getBlockElements = function() {
+			return blockElementsMap;
+		};
+
+		self.getShortEndedElements = function() {
+			return shortEndedElementsMap;
+		};
+
+		self.getSelfClosingElements = function() {
+			return selfClosingElementsMap;
+		};
+
+		self.getNonEmptyElements = function() {
+			return nonEmptyElementsMap;
+		};
+
+		self.getWhiteSpaceElements = function() {
+			return whiteSpaceElementsMap;
+		};
+
+		self.isValidChild = function(name, child) {
+			var parent = children[name];
+
+			return !!(parent && parent[child]);
+		};
+
+		self.getElementRule = getElementRule;
+
+		self.getCustomElements = function() {
+			return customElementsMap;
+		};
+
+		self.addValidElements = addValidElements;
+
+		self.setValidElements = setValidElements;
+
+		self.addCustomElements = addCustomElements;
+
+		self.addValidChildren = addValidChildren;
+	};
+})(tinymce);
+
+(function(tinymce) {
+	tinymce.html.SaxParser = function(settings, schema) {
+		var self = this, noop = function() {};
+
+		settings = settings || {};
+		self.schema = schema = schema || new tinymce.html.Schema();
+
+		if (settings.fix_self_closing !== false)
+			settings.fix_self_closing = true;
+
+		// Add handler functions from settings and setup default handlers
+		tinymce.each('comment cdata text start end pi doctype'.split(' '), function(name) {
+			if (name)
+				self[name] = settings[name] || noop;
+		});
+
+		self.parse = function(html) {
+			var self = this, matches, index = 0, value, endRegExp, stack = [], attrList, i, text, name, isInternalElement, removeInternalElements,
+				shortEndedElements, fillAttrsMap, isShortEnded, validate, elementRule, isValidElement, attr, attribsValue, invalidPrefixRegExp,
+				validAttributesMap, validAttributePatterns, attributesRequired, attributesDefault, attributesForced, selfClosing,
+				tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0, decode = tinymce.html.Entities.decode, fixSelfClosing, isIE;
+
+			function processEndTag(name) {
+				var pos, i;
+
+				// Find position of parent of the same type
+				pos = stack.length;
+				while (pos--) {
+					if (stack[pos].name === name)
+						break;						
+				}
+
+				// Found parent
+				if (pos >= 0) {
+					// Close all the open elements
+					for (i = stack.length - 1; i >= pos; i--) {
+						name = stack[i];
+
+						if (name.valid)
+							self.end(name.name);
+					}
+
+					// Remove the open elements from the stack
+					stack.length = pos;
+				}
+			};
+
+			// Precompile RegExps and map objects
+			tokenRegExp = new RegExp('<(?:' +
+				'(?:!--([\\w\\W]*?)-->)|' + // Comment
+				'(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + // CDATA
+				'(?:!DOCTYPE([\\w\\W]*?)>)|' + // DOCTYPE
+				'(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + // PI
+				'(?:\\/([^>]+)>)|' + // End element
+				'(?:([^\\s\\/<>]+)((?:\\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\\/|\\s+)>)' + // Start element
+			')', 'g');
+
+			attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;
+			specialElements = {
+				'script' : /<\/script[^>]*>/gi,
+				'style' : /<\/style[^>]*>/gi,
+				'noscript' : /<\/noscript[^>]*>/gi
+			};
+
+			// Setup lookup tables for empty elements and boolean attributes
+			shortEndedElements = schema.getShortEndedElements();
+			selfClosing = schema.getSelfClosingElements();
+			fillAttrsMap = schema.getBoolAttrs();
+			validate = settings.validate;
+			removeInternalElements = settings.remove_internals;
+			fixSelfClosing = settings.fix_self_closing;
+			isIE = tinymce.isIE;
+			invalidPrefixRegExp = /^:/;
+
+			while (matches = tokenRegExp.exec(html)) {
+				// Text
+				if (index < matches.index)
+					self.text(decode(html.substr(index, matches.index - index)));
+
+				if (value = matches[6]) { // End element
+					value = value.toLowerCase();
+
+					// IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements
+					if (isIE && invalidPrefixRegExp.test(value))
+						value = value.substr(1);
+
+					processEndTag(value);
+				} else if (value = matches[7]) { // Start element
+					value = value.toLowerCase();
+
+					// IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements
+					if (isIE && invalidPrefixRegExp.test(value))
+						value = value.substr(1);
+
+					isShortEnded = value in shortEndedElements;
+
+					// Is self closing tag for example an <li> after an open <li>
+					if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value)
+						processEndTag(value);
+
+					// Validate element
+					if (!validate || (elementRule = schema.getElementRule(value))) {
+						isValidElement = true;
+
+						// Grab attributes map and patters when validation is enabled
+						if (validate) {
+							validAttributesMap = elementRule.attributes;
+							validAttributePatterns = elementRule.attributePatterns;
+						}
+
+						// Parse attributes
+						if (attribsValue = matches[8]) {
+							isInternalElement = attribsValue.indexOf('data-mce-type') !== -1; // Check if the element is an internal element
+
+							// If the element has internal attributes then remove it if we are told to do so
+							if (isInternalElement && removeInternalElements)
+								isValidElement = false;
+
+							attrList = [];
+							attrList.map = {};
+
+							attribsValue.replace(attrRegExp, function(match, name, value, val2, val3) {
+								var attrRule, i;
+
+								name = name.toLowerCase();
+								value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); // Handle boolean attribute than value attribute
+
+								// Validate name and value
+								if (validate && !isInternalElement && name.indexOf('data-') !== 0) {
+									attrRule = validAttributesMap[name];
+
+									// Find rule by pattern matching
+									if (!attrRule && validAttributePatterns) {
+										i = validAttributePatterns.length;
+										while (i--) {
+											attrRule = validAttributePatterns[i];
+											if (attrRule.pattern.test(name))
+												break;
+										}
+
+										// No rule matched
+										if (i === -1)
+											attrRule = null;
+									}
+
+									// No attribute rule found
+									if (!attrRule)
+										return;
+
+									// Validate value
+									if (attrRule.validValues && !(value in attrRule.validValues))
+										return;
+								}
+
+								// Add attribute to list and map
+								attrList.map[name] = value;
+								attrList.push({
+									name: name,
+									value: value
+								});
+							});
+						} else {
+							attrList = [];
+							attrList.map = {};
+						}
+
+						// Process attributes if validation is enabled
+						if (validate && !isInternalElement) {
+							attributesRequired = elementRule.attributesRequired;
+							attributesDefault = elementRule.attributesDefault;
+							attributesForced = elementRule.attributesForced;
+
+							// Handle forced attributes
+							if (attributesForced) {
+								i = attributesForced.length;
+								while (i--) {
+									attr = attributesForced[i];
+									name = attr.name;
+									attrValue = attr.value;
+
+									if (attrValue === '{$uid}')
+										attrValue = 'mce_' + idCount++;
+
+									attrList.map[name] = attrValue;
+									attrList.push({name: name, value: attrValue});
+								}
+							}
+
+							// Handle default attributes
+							if (attributesDefault) {
+								i = attributesDefault.length;
+								while (i--) {
+									attr = attributesDefault[i];
+									name = attr.name;
+
+									if (!(name in attrList.map)) {
+										attrValue = attr.value;
+
+										if (attrValue === '{$uid}')
+											attrValue = 'mce_' + idCount++;
+
+										attrList.map[name] = attrValue;
+										attrList.push({name: name, value: attrValue});
+									}
+								}
+							}
+
+							// Handle required attributes
+							if (attributesRequired) {
+								i = attributesRequired.length;
+								while (i--) {
+									if (attributesRequired[i] in attrList.map)
+										break;
+								}
+
+								// None of the required attributes where found
+								if (i === -1)
+									isValidElement = false;
+							}
+
+							// Invalidate element if it's marked as bogus
+							if (attrList.map['data-mce-bogus'])
+								isValidElement = false;
+						}
+
+						if (isValidElement)
+							self.start(value, attrList, isShortEnded);
+					} else
+						isValidElement = false;
+
+					// Treat script, noscript and style a bit different since they may include code that looks like elements
+					if (endRegExp = specialElements[value]) {
+						endRegExp.lastIndex = index = matches.index + matches[0].length;
+
+						if (matches = endRegExp.exec(html)) {
+							if (isValidElement)
+								text = html.substr(index, matches.index - index);
+
+							index = matches.index + matches[0].length;
+						} else {
+							text = html.substr(index);
+							index = html.length;
+						}
+
+						if (isValidElement && text.length > 0)
+							self.text(text, true);
+
+						if (isValidElement)
+							self.end(value);
+
+						tokenRegExp.lastIndex = index;
+						continue;
+					}
+
+					// Push value on to stack
+					if (!isShortEnded) {
+						if (!attribsValue || attribsValue.indexOf('/') != attribsValue.length - 1)
+							stack.push({name: value, valid: isValidElement});
+						else if (isValidElement)
+							self.end(value);
+					}
+				} else if (value = matches[1]) { // Comment
+					self.comment(value);
+				} else if (value = matches[2]) { // CDATA
+					self.cdata(value);
+				} else if (value = matches[3]) { // DOCTYPE
+					self.doctype(value);
+				} else if (value = matches[4]) { // PI
+					self.pi(value, matches[5]);
+				}
+
+				index = matches.index + matches[0].length;
+			}
+
+			// Text
+			if (index < html.length)
+				self.text(decode(html.substr(index)));
+
+			// Close any open elements
+			for (i = stack.length - 1; i >= 0; i--) {
+				value = stack[i];
+
+				if (value.valid)
+					self.end(value.name);
+			}
+		};
+	}
+})(tinymce);
+
+(function(tinymce) {
+	var whiteSpaceRegExp = /^[ \t\r\n]*$/, typeLookup = {
+		'#text' : 3,
+		'#comment' : 8,
+		'#cdata' : 4,
+		'#pi' : 7,
+		'#doctype' : 10,
+		'#document-fragment' : 11
+	};
+
+	// Walks the tree left/right
+	function walk(node, root_node, prev) {
+		var sibling, parent, startName = prev ? 'lastChild' : 'firstChild', siblingName = prev ? 'prev' : 'next';
+
+		// Walk into nodes if it has a start
+		if (node[startName])
+			return node[startName];
+
+		// Return the sibling if it has one
+		if (node !== root_node) {
+			sibling = node[siblingName];
+
+			if (sibling)
+				return sibling;
+
+			// Walk up the parents to look for siblings
+			for (parent = node.parent; parent && parent !== root_node; parent = parent.parent) {
+				sibling = parent[siblingName];
+
+				if (sibling)
+					return sibling;
+			}
+		}
+	};
+
+	function Node(name, type) {
+		this.name = name;
+		this.type = type;
+
+		if (type === 1) {
+			this.attributes = [];
+			this.attributes.map = {};
+		}
+	}
+
+	tinymce.extend(Node.prototype, {
+		replace : function(node) {
+			var self = this;
+
+			if (node.parent)
+				node.remove();
+
+			self.insert(node, self);
+			self.remove();
+
+			return self;
+		},
+
+		attr : function(name, value) {
+			var self = this, attrs, i, undef;
+
+			if (typeof name !== "string") {
+				for (i in name)
+					self.attr(i, name[i]);
+
+				return self;
+			}
+
+			if (attrs = self.attributes) {
+				if (value !== undef) {
+					// Remove attribute
+					if (value === null) {
+						if (name in attrs.map) {
+							delete attrs.map[name];
+
+							i = attrs.length;
+							while (i--) {
+								if (attrs[i].name === name) {
+									attrs = attrs.splice(i, 1);
+									return self;
+								}
+							}
+						}
+
+						return self;
+					}
+
+					// Set attribute
+					if (name in attrs.map) {
+						// Set attribute
+						i = attrs.length;
+						while (i--) {
+							if (attrs[i].name === name) {
+								attrs[i].value = value;
+								break;
+							}
+						}
+					} else
+						attrs.push({name: name, value: value});
+
+					attrs.map[name] = value;
+
+					return self;
+				} else {
+					return attrs.map[name];
+				}
+			}
+		},
+
+		clone : function() {
+			var self = this, clone = new Node(self.name, self.type), i, l, selfAttrs, selfAttr, cloneAttrs;
+
+			// Clone element attributes
+			if (selfAttrs = self.attributes) {
+				cloneAttrs = [];
+				cloneAttrs.map = {};
+
+				for (i = 0, l = selfAttrs.length; i < l; i++) {
+					selfAttr = selfAttrs[i];
+
+					// Clone everything except id
+					if (selfAttr.name !== 'id') {
+						cloneAttrs[cloneAttrs.length] = {name: selfAttr.name, value: selfAttr.value};
+						cloneAttrs.map[selfAttr.name] = selfAttr.value;
+					}
+				}
+
+				clone.attributes = cloneAttrs;
+			}
+
+			clone.value = self.value;
+			clone.shortEnded = self.shortEnded;
+
+			return clone;
+		},
+
+		wrap : function(wrapper) {
+			var self = this;
+
+			self.parent.insert(wrapper, self);
+			wrapper.append(self);
+
+			return self;
+		},
+
+		unwrap : function() {
+			var self = this, node, next;
+
+			for (node = self.firstChild; node; ) {
+				next = node.next;
+				self.insert(node, self, true);
+				node = next;
+			}
+
+			self.remove();
+		},
+
+		remove : function() {
+			var self = this, parent = self.parent, next = self.next, prev = self.prev;
+
+			if (parent) {
+				if (parent.firstChild === self) {
+					parent.firstChild = next;
+
+					if (next)
+						next.prev = null;
+				} else {
+					prev.next = next;
+				}
+
+				if (parent.lastChild === self) {
+					parent.lastChild = prev;
+
+					if (prev)
+						prev.next = null;
+				} else {
+					next.prev = prev;
+				}
+
+				self.parent = self.next = self.prev = null;
+			}
+
+			return self;
+		},
+
+		append : function(node) {
+			var self = this, last;
+
+			if (node.parent)
+				node.remove();
+
+			last = self.lastChild;
+			if (last) {
+				last.next = node;
+				node.prev = last;
+				self.lastChild = node;
+			} else
+				self.lastChild = self.firstChild = node;
+
+			node.parent = self;
+
+			return node;
+		},
+
+		insert : function(node, ref_node, before) {
+			var parent;
+
+			if (node.parent)
+				node.remove();
+
+			parent = ref_node.parent || this;
+
+			if (before) {
+				if (ref_node === parent.firstChild)
+					parent.firstChild = node;
+				else
+					ref_node.prev.next = node;
+
+				node.prev = ref_node.prev;
+				node.next = ref_node;
+				ref_node.prev = node;
+			} else {
+				if (ref_node === parent.lastChild)
+					parent.lastChild = node;
+				else
+					ref_node.next.prev = node;
+
+				node.next = ref_node.next;
+				node.prev = ref_node;
+				ref_node.next = node;
+			}
+
+			node.parent = parent;
+
+			return node;
+		},
+
+		getAll : function(name) {
+			var self = this, node, collection = [];
+
+			for (node = self.firstChild; node; node = walk(node, self)) {
+				if (node.name === name)
+					collection.push(node);
+			}
+
+			return collection;
+		},
+
+		empty : function() {
+			var self = this, nodes, i, node;
+
+			// Remove all children
+			if (self.firstChild) {
+				nodes = [];
+
+				// Collect the children
+				for (node = self.firstChild; node; node = walk(node, self))
+					nodes.push(node);
+
+				// Remove the children
+				i = nodes.length;
+				while (i--) {
+					node = nodes[i];
+					node.parent = node.firstChild = node.lastChild = node.next = node.prev = null;
+				}
+			}
+
+			self.firstChild = self.lastChild = null;
+
+			return self;
+		},
+
+		isEmpty : function(elements) {
+			var self = this, node = self.firstChild, i, name;
+
+			if (node) {
+				do {
+					if (node.type === 1) {
+						// Ignore bogus elements
+						if (node.attributes.map['data-mce-bogus'])
+							continue;
+
+						// Keep empty elements like <img />
+						if (elements[node.name])
+							return false;
+
+						// Keep elements with data attributes or name attribute like <a name="1"></a>
+						i = node.attributes.length;
+						while (i--) {
+							name = node.attributes[i].name;
+							if (name === "name" || name.indexOf('data-') === 0)
+								return false;
+						}
+					}
+
+					// Keep comments
+					if (node.type === 8)
+						return false;
+					
+					// Keep non whitespace text nodes
+					if ((node.type === 3 && !whiteSpaceRegExp.test(node.value)))
+						return false;
+				} while (node = walk(node, self));
+			}
+
+			return true;
+		},
+
+		walk : function(prev) {
+			return walk(this, null, prev);
+		}
+	});
+
+	tinymce.extend(Node, {
+		create : function(name, attrs) {
+			var node, attrName;
+
+			// Create node
+			node = new Node(name, typeLookup[name] || 1);
+
+			// Add attributes if needed
+			if (attrs) {
+				for (attrName in attrs)
+					node.attr(attrName, attrs[attrName]);
+			}
+
+			return node;
+		}
+	});
+
+	tinymce.html.Node = Node;
+})(tinymce);
+
+(function(tinymce) {
+	var Node = tinymce.html.Node;
+
+	tinymce.html.DomParser = function(settings, schema) {
+		var self = this, nodeFilters = {}, attributeFilters = [], matchedNodes = {}, matchedAttributes = {};
+
+		settings = settings || {};
+		settings.validate = "validate" in settings ? settings.validate : true;
+		settings.root_name = settings.root_name || 'body';
+		self.schema = schema = schema || new tinymce.html.Schema();
+
+		function fixInvalidChildren(nodes) {
+			var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i,
+				childClone, nonEmptyElements, nonSplitableElements, sibling, nextNode;
+
+			nonSplitableElements = tinymce.makeMap('tr,td,th,tbody,thead,tfoot,table');
+			nonEmptyElements = schema.getNonEmptyElements();
+
+			for (ni = 0; ni < nodes.length; ni++) {
+				node = nodes[ni];
+
+				// Already removed
+				if (!node.parent)
+					continue;
+
+				// Get list of all parent nodes until we find a valid parent to stick the child into
+				parents = [node];
+				for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && !nonSplitableElements[parent.name]; parent = parent.parent)
+					parents.push(parent);
+
+				// Found a suitable parent
+				if (parent && parents.length > 1) {
+					// Reverse the array since it makes looping easier
+					parents.reverse();
+
+					// Clone the related parent and insert that after the moved node
+					newParent = currentNode = self.filterNode(parents[0].clone());
+
+					// Start cloning and moving children on the left side of the target node
+					for (i = 0; i < parents.length - 1; i++) {
+						if (schema.isValidChild(currentNode.name, parents[i].name)) {
+							tempNode = self.filterNode(parents[i].clone());
+							currentNode.append(tempNode);
+						} else
+							tempNode = currentNode;
+
+						for (childNode = parents[i].firstChild; childNode && childNode != parents[i + 1]; ) {
+							nextNode = childNode.next;
+							tempNode.append(childNode);
+							childNode = nextNode;
+						}
+
+						currentNode = tempNode;
+					}
+
+					if (!newParent.isEmpty(nonEmptyElements)) {
+						parent.insert(newParent, parents[0], true);
+						parent.insert(node, newParent);
+					} else {
+						parent.insert(node, parents[0], true);
+					}
+
+					// Check if the element is empty by looking through it's contents and special treatment for <p><br /></p>
+					parent = parents[0];
+					if (parent.isEmpty(nonEmptyElements) || parent.firstChild === parent.lastChild && parent.firstChild.name === 'br') {
+						parent.empty().remove();
+					}
+				} else if (node.parent) {
+					// If it's an LI try to find a UL/OL for it or wrap it
+					if (node.name === 'li') {
+						sibling = node.prev;
+						if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {
+							sibling.append(node);
+							continue;
+						}
+
+						sibling = node.next;
+						if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {
+							sibling.insert(node, sibling.firstChild, true);
+							continue;
+						}
+
+						node.wrap(self.filterNode(new Node('ul', 1)));
+						continue;
+					}
+
+					// Try wrapping the element in a DIV
+					if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) {
+						node.wrap(self.filterNode(new Node('div', 1)));
+					} else {
+						// We failed wrapping it, then remove or unwrap it
+						if (node.name === 'style' || node.name === 'script')
+							node.empty().remove();
+						else
+							node.unwrap();
+					}
+				}
+			}
+		};
+
+		self.filterNode = function(node) {
+			var i, name, list;
+
+			// Run element filters
+			if (name in nodeFilters) {
+				list = matchedNodes[name];
+
+				if (list)
+					list.push(node);
+				else
+					matchedNodes[name] = [node];
+			}
+
+			// Run attribute filters
+			i = attributeFilters.length;
+			while (i--) {
+				name = attributeFilters[i].name;
+
+				if (name in node.attributes.map) {
+					list = matchedAttributes[name];
+
+					if (list)
+						list.push(node);
+					else
+						matchedAttributes[name] = [node];
+				}
+			}
+
+			return node;
+		};
+
+		self.addNodeFilter = function(name, callback) {
+			tinymce.each(tinymce.explode(name), function(name) {
+				var list = nodeFilters[name];
+
+				if (!list)
+					nodeFilters[name] = list = [];
+
+				list.push(callback);
+			});
+		};
+
+		self.addAttributeFilter = function(name, callback) {
+			tinymce.each(tinymce.explode(name), function(name) {
+				var i;
+
+				for (i = 0; i < attributeFilters.length; i++) {
+					if (attributeFilters[i].name === name) {
+						attributeFilters[i].callbacks.push(callback);
+						return;
+					}
+				}
+
+				attributeFilters.push({name: name, callbacks: [callback]});
+			});
+		};
+
+		self.parse = function(html, args) {
+			var parser, rootNode, node, nodes, i, l, fi, fl, list, name, validate,
+				blockElements, startWhiteSpaceRegExp, invalidChildren = [], isInWhiteSpacePreservedElement,
+				endWhiteSpaceRegExp, allWhiteSpaceRegExp, whiteSpaceElements, children, nonEmptyElements, rootBlockName;
+
+			args = args || {};
+			matchedNodes = {};
+			matchedAttributes = {};
+			blockElements = tinymce.extend(tinymce.makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements());
+			nonEmptyElements = schema.getNonEmptyElements();
+			children = schema.children;
+			validate = settings.validate;
+			rootBlockName = "forced_root_block" in args ? args.forced_root_block : settings.forced_root_block;
+
+			whiteSpaceElements = schema.getWhiteSpaceElements();
+			startWhiteSpaceRegExp = /^[ \t\r\n]+/;
+			endWhiteSpaceRegExp = /[ \t\r\n]+$/;
+			allWhiteSpaceRegExp = /[ \t\r\n]+/g;
+
+			function addRootBlocks() {
+				var node = rootNode.firstChild, next, rootBlockNode;
+
+				while (node) {
+					next = node.next;
+
+					if (node.type == 3 || (node.type == 1 && node.name !== 'p' && !blockElements[node.name] && !node.attr('data-mce-type'))) {
+						if (!rootBlockNode) {
+							// Create a new root block element
+							rootBlockNode = createNode(rootBlockName, 1);
+							rootNode.insert(rootBlockNode, node);
+							rootBlockNode.append(node);
+						} else
+							rootBlockNode.append(node);
+					} else {
+						rootBlockNode = null;
+					}
+
+					node = next;
+				};
+			};
+
+			function createNode(name, type) {
+				var node = new Node(name, type), list;
+
+				if (name in nodeFilters) {
+					list = matchedNodes[name];
+
+					if (list)
+						list.push(node);
+					else
+						matchedNodes[name] = [node];
+				}
+
+				return node;
+			};
+
+			function removeWhitespaceBefore(node) {
+				var textNode, textVal, sibling;
+
+				for (textNode = node.prev; textNode && textNode.type === 3; ) {
+					textVal = textNode.value.replace(endWhiteSpaceRegExp, '');
+
+					if (textVal.length > 0) {
+						textNode.value = textVal;
+						textNode = textNode.prev;
+					} else {
+						sibling = textNode.prev;
+						textNode.remove();
+						textNode = sibling;
+					}
+				}
+			};
+
+			parser = new tinymce.html.SaxParser({
+				validate : validate,
+				fix_self_closing : !validate, // Let the DOM parser handle <li> in <li> or <p> in <p> for better results
+
+				cdata: function(text) {
+					node.append(createNode('#cdata', 4)).value = text;
+				},
+
+				text: function(text, raw) {
+					var textNode;
+
+					// Trim all redundant whitespace on non white space elements
+					if (!isInWhiteSpacePreservedElement) {
+						text = text.replace(allWhiteSpaceRegExp, ' ');
+
+						if (node.lastChild && blockElements[node.lastChild.name])
+							text = text.replace(startWhiteSpaceRegExp, '');
+					}
+
+					// Do we need to create the node
+					if (text.length !== 0) {
+						textNode = createNode('#text', 3);
+						textNode.raw = !!raw;
+						node.append(textNode).value = text;
+					}
+				},
+
+				comment: function(text) {
+					node.append(createNode('#comment', 8)).value = text;
+				},
+
+				pi: function(name, text) {
+					node.append(createNode(name, 7)).value = text;
+					removeWhitespaceBefore(node);
+				},
+
+				doctype: function(text) {
+					var newNode;
+		
+					newNode = node.append(createNode('#doctype', 10));
+					newNode.value = text;
+					removeWhitespaceBefore(node);
+				},
+
+				start: function(name, attrs, empty) {
+					var newNode, attrFiltersLen, elementRule, textNode, attrName, text, sibling, parent;
+
+					elementRule = validate ? schema.getElementRule(name) : {};
+					if (elementRule) {
+						newNode = createNode(elementRule.outputName || name, 1);
+						newNode.attributes = attrs;
+						newNode.shortEnded = empty;
+
+						node.append(newNode);
+
+						// Check if node is valid child of the parent node is the child is
+						// unknown we don't collect it since it's probably a custom element
+						parent = children[node.name];
+						if (parent && children[newNode.name] && !parent[newNode.name])
+							invalidChildren.push(newNode);
+
+						attrFiltersLen = attributeFilters.length;
+						while (attrFiltersLen--) {
+							attrName = attributeFilters[attrFiltersLen].name;
+
+							if (attrName in attrs.map) {
+								list = matchedAttributes[attrName];
+
+								if (list)
+									list.push(newNode);
+								else
+									matchedAttributes[attrName] = [newNode];
+							}
+						}
+
+						// Trim whitespace before block
+						if (blockElements[name])
+							removeWhitespaceBefore(newNode);
+
+						// Change current node if the element wasn't empty i.e not <br /> or <img />
+						if (!empty)
+							node = newNode;
+
+						// Check if we are inside a whitespace preserved element
+						if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {
+							isInWhiteSpacePreservedElement = true;
+						}
+					}
+				},
+
+				end: function(name) {
+					var textNode, elementRule, text, sibling, tempNode;
+
+					elementRule = validate ? schema.getElementRule(name) : {};
+					if (elementRule) {
+						if (blockElements[name]) {
+							if (!isInWhiteSpacePreservedElement) {
+								// Trim whitespace at beginning of block
+								for (textNode = node.firstChild; textNode && textNode.type === 3; ) {
+									text = textNode.value.replace(startWhiteSpaceRegExp, '');
+
+									if (text.length > 0) {
+										textNode.value = text;
+										textNode = textNode.next;
+									} else {
+										sibling = textNode.next;
+										textNode.remove();
+										textNode = sibling;
+									}
+								}
+
+								// Trim whitespace at end of block
+								for (textNode = node.lastChild; textNode && textNode.type === 3; ) {
+									text = textNode.value.replace(endWhiteSpaceRegExp, '');
+
+									if (text.length > 0) {
+										textNode.value = text;
+										textNode = textNode.prev;
+									} else {
+										sibling = textNode.prev;
+										textNode.remove();
+										textNode = sibling;
+									}
+								}
+							}
+
+							// Trim start white space
+							textNode = node.prev;
+							if (textNode && textNode.type === 3) {
+								text = textNode.value.replace(startWhiteSpaceRegExp, '');
+
+								if (text.length > 0)
+									textNode.value = text;
+								else
+									textNode.remove();
+							}
+						}
+
+						// Check if we exited a whitespace preserved element
+						if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {
+							isInWhiteSpacePreservedElement = false;
+						}
+
+						// Handle empty nodes
+						if (elementRule.removeEmpty || elementRule.paddEmpty) {
+							if (node.isEmpty(nonEmptyElements)) {
+								if (elementRule.paddEmpty)
+									node.empty().append(new Node('#text', '3')).value = '\u00a0';
+								else {
+									// Leave nodes that have a name like <a name="name">
+									if (!node.attributes.map.name) {
+										tempNode = node.parent;
+										node.empty().remove();
+										node = tempNode;
+										return;
+									}
+								}
+							}
+						}
+
+						node = node.parent;
+					}
+				}
+			}, schema);
+
+			rootNode = node = new Node(args.context || settings.root_name, 11);
+
+			parser.parse(html);
+
+			// Fix invalid children or report invalid children in a contextual parsing
+			if (validate && invalidChildren.length) {
+				if (!args.context)
+					fixInvalidChildren(invalidChildren);
+				else
+					args.invalid = true;
+			}
+
+			// Wrap nodes in the root into block elements if the root is body
+			if (rootBlockName && rootNode.name == 'body')
+				addRootBlocks();
+
+			// Run filters only when the contents is valid
+			if (!args.invalid) {
+				// Run node filters
+				for (name in matchedNodes) {
+					list = nodeFilters[name];
+					nodes = matchedNodes[name];
+
+					// Remove already removed children
+					fi = nodes.length;
+					while (fi--) {
+						if (!nodes[fi].parent)
+							nodes.splice(fi, 1);
+					}
+
+					for (i = 0, l = list.length; i < l; i++)
+						list[i](nodes, name, args);
+				}
+
+				// Run attribute filters
+				for (i = 0, l = attributeFilters.length; i < l; i++) {
+					list = attributeFilters[i];
+
+					if (list.name in matchedAttributes) {
+						nodes = matchedAttributes[list.name];
+
+						// Remove already removed children
+						fi = nodes.length;
+						while (fi--) {
+							if (!nodes[fi].parent)
+								nodes.splice(fi, 1);
+						}
+
+						for (fi = 0, fl = list.callbacks.length; fi < fl; fi++)
+							list.callbacks[fi](nodes, list.name, args);
+					}
+				}
+			}
+
+			return rootNode;
+		};
+
+		// Remove <br> at end of block elements Gecko and WebKit injects BR elements to
+		// make it possible to place the caret inside empty blocks. This logic tries to remove
+		// these elements and keep br elements that where intended to be there intact
+		if (settings.remove_trailing_brs) {
+			self.addNodeFilter('br', function(nodes, name) {
+				var i, l = nodes.length, node, blockElements = schema.getBlockElements(),
+					nonEmptyElements = schema.getNonEmptyElements(), parent, prev, prevName;
+
+				// Remove brs from body element as well
+				blockElements.body = 1;
+
+				// Must loop forwards since it will otherwise remove all brs in <p>a<br><br><br></p>
+				for (i = 0; i < l; i++) {
+					node = nodes[i];
+					parent = node.parent;
+
+					if (blockElements[node.parent.name] && node === parent.lastChild) {
+						// Loop all nodes to the right of the current node and check for other BR elements
+						// excluding bookmarks since they are invisible
+						prev = node.prev;
+						while (prev) {
+							prevName = prev.name;
+
+							// Ignore bookmarks
+							if (prevName !== "span" || prev.attr('data-mce-type') !== 'bookmark') {
+								// Found a non BR element
+								if (prevName !== "br")
+									break;
+	
+								// Found another br it's a <br><br> structure then don't remove anything
+								if (prevName === 'br') {
+									node = null;
+									break;
+								}
+							}
+
+							prev = prev.prev;
+						}
+
+						if (node) {
+							node.remove();
+
+							// Is the parent to be considered empty after we removed the BR
+							if (parent.isEmpty(nonEmptyElements)) {
+								elementRule = schema.getElementRule(parent.name);
+
+								// Remove or padd the element depending on schema rule
+								if (elementRule) {
+								  if (elementRule.removeEmpty)
+									  parent.remove();
+								  else if (elementRule.paddEmpty)
+									  parent.empty().append(new tinymce.html.Node('#text', 3)).value = '\u00a0';
+							  }
+              }
+						}
+					}
+				}
+			});
+		}
+	}
+})(tinymce);
+
+tinymce.html.Writer = function(settings) {
+	var html = [], indent, indentBefore, indentAfter, encode, htmlOutput;
+
+	settings = settings || {};
+	indent = settings.indent;
+	indentBefore = tinymce.makeMap(settings.indent_before || '');
+	indentAfter = tinymce.makeMap(settings.indent_after || '');
+	encode = tinymce.html.Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);
+	htmlOutput = settings.element_format == "html";
+
+	return {
+		start: function(name, attrs, empty) {
+			var i, l, attr, value;
+
+			if (indent && indentBefore[name] && html.length > 0) {
+				value = html[html.length - 1];
+
+				if (value.length > 0 && value !== '\n')
+					html.push('\n');
+			}
+
+			html.push('<', name);
+
+			if (attrs) {
+				for (i = 0, l = attrs.length; i < l; i++) {
+					attr = attrs[i];
+					html.push(' ', attr.name, '="', encode(attr.value, true), '"');
+				}
+			}
+
+			if (!empty || htmlOutput)
+				html[html.length] = '>';
+			else
+				html[html.length] = ' />';
+
+			if (empty && indent && indentAfter[name] && html.length > 0) {
+				value = html[html.length - 1];
+
+				if (value.length > 0 && value !== '\n')
+					html.push('\n');
+			}
+		},
+
+		end: function(name) {
+			var value;
+
+			/*if (indent && indentBefore[name] && html.length > 0) {
+				value = html[html.length - 1];
+
+				if (value.length > 0 && value !== '\n')
+					html.push('\n');
+			}*/
+
+			html.push('</', name, '>');
+
+			if (indent && indentAfter[name] && html.length > 0) {
+				value = html[html.length - 1];
+
+				if (value.length > 0 && value !== '\n')
+					html.push('\n');
+			}
+		},
+
+		text: function(text, raw) {
+			if (text.length > 0)
+				html[html.length] = raw ? text : encode(text);
+		},
+
+		cdata: function(text) {
+			html.push('<![CDATA[', text, ']]>');
+		},
+
+		comment: function(text) {
+			html.push('<!--', text, '-->');
+		},
+
+		pi: function(name, text) {
+			if (text)
+				html.push('<?', name, ' ', text, '?>');
+			else
+				html.push('<?', name, '?>');
+
+			if (indent)
+				html.push('\n');
+		},
+
+		doctype: function(text) {
+			html.push('<!DOCTYPE', text, '>', indent ? '\n' : '');
+		},
+
+		reset: function() {
+			html.length = 0;
+		},
+
+		getContent: function() {
+			return html.join('').replace(/\n$/, '');
+		}
+	};
+};
+
+(function(tinymce) {
+	tinymce.html.Serializer = function(settings, schema) {
+		var self = this, writer = new tinymce.html.Writer(settings);
+
+		settings = settings || {};
+		settings.validate = "validate" in settings ? settings.validate : true;
+
+		self.schema = schema = schema || new tinymce.html.Schema();
+		self.writer = writer;
+
+		self.serialize = function(node) {
+			var handlers, validate;
+
+			validate = settings.validate;
+
+			handlers = {
+				// #text
+				3: function(node, raw) {
+					writer.text(node.value, node.raw);
+				},
+
+				// #comment
+				8: function(node) {
+					writer.comment(node.value);
+				},
+
+				// Processing instruction
+				7: function(node) {
+					writer.pi(node.name, node.value);
+				},
+
+				// Doctype
+				10: function(node) {
+					writer.doctype(node.value);
+				},
+
+				// CDATA
+				4: function(node) {
+					writer.cdata(node.value);
+				},
+
+ 				// Document fragment
+				11: function(node) {
+					if ((node = node.firstChild)) {
+						do {
+							walk(node);
+						} while (node = node.next);
+					}
+				}
+			};
+
+			writer.reset();
+
+			function walk(node) {
+				var handler = handlers[node.type], name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule;
+
+				if (!handler) {
+					name = node.name;
+					isEmpty = node.shortEnded;
+					attrs = node.attributes;
+
+					// Sort attributes
+					if (validate && attrs && attrs.length > 1) {
+						sortedAttrs = [];
+						sortedAttrs.map = {};
+
+						elementRule = schema.getElementRule(node.name);
+						for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) {
+							attrName = elementRule.attributesOrder[i];
+
+							if (attrName in attrs.map) {
+								attrValue = attrs.map[attrName];
+								sortedAttrs.map[attrName] = attrValue;
+								sortedAttrs.push({name: attrName, value: attrValue});
+							}
+						}
+
+						for (i = 0, l = attrs.length; i < l; i++) {
+							attrName = attrs[i].name;
+
+							if (!(attrName in sortedAttrs.map)) {
+								attrValue = attrs.map[attrName];
+								sortedAttrs.map[attrName] = attrValue;
+								sortedAttrs.push({name: attrName, value: attrValue});
+							}
+						}
+
+						attrs = sortedAttrs;
+					}
+
+					writer.start(node.name, attrs, isEmpty);
+
+					if (!isEmpty) {
+						if ((node = node.firstChild)) {
+							do {
+								walk(node);
+							} while (node = node.next);
+						}
+
+						writer.end(name);
+					}
+				} else
+					handler(node);
+			}
+
+			// Serialize element and treat all non elements as fragments
+			if (node.type == 1 && !settings.inner)
+				walk(node);
+			else
+				handlers[11](node);
+
+			return writer.getContent();
+		};
+	}
+})(tinymce);
+
+// JSLint defined globals
+/*global tinymce:false, window:false */
+
+tinymce.dom = {};
+
+(function(namespace, expando) {
+	var w3cEventModel = !!document.addEventListener;
+
+	function addEvent(target, name, callback, capture) {
+		if (target.addEventListener) {
+			target.addEventListener(name, callback, capture || false);
+		} else if (target.attachEvent) {
+			target.attachEvent('on' + name, callback);
+		}
+	}
+
+	function removeEvent(target, name, callback, capture) {
+		if (target.removeEventListener) {
+			target.removeEventListener(name, callback, capture || false);
+		} else if (target.detachEvent) {
+			target.detachEvent('on' + name, callback);
+		}
+	}
+
+	function fix(original_event, data) {
+		var name, event = data || {};
+
+		// Dummy function that gets replaced on the delegation state functions
+		function returnFalse() {
+			return false;
+		}
+
+		// Dummy function that gets replaced on the delegation state functions
+		function returnTrue() {
+			return true;
+		}
+
+		// Copy all properties from the original event
+		for (name in original_event) {
+			// layerX/layerY is deprecated in Chrome and produces a warning
+			if (name !== "layerX" && name !== "layerY") {
+				event[name] = original_event[name];
+			}
+		}
+
+		// Normalize target IE uses srcElement
+		if (!event.target) {
+			event.target = event.srcElement || document;
+		}
+
+		// Add preventDefault method
+		event.preventDefault = function() {
+			event.isDefaultPrevented = returnTrue;
+
+			// Execute preventDefault on the original event object
+			if (original_event) {
+				if (original_event.preventDefault) {
+					original_event.preventDefault();
+				} else {
+					original_event.returnValue = false; // IE
+				}
+			}
+		};
+
+		// Add stopPropagation
+		event.stopPropagation = function() {
+			event.isPropagationStopped = returnTrue;
+
+			// Execute stopPropagation on the original event object
+			if (original_event) {
+				if (original_event.stopPropagation) {
+					original_event.stopPropagation();
+				} else {
+					original_event.cancelBubble = true; // IE
+				}
+			 }
+		};
+
+		// Add stopImmediatePropagation
+		event.stopImmediatePropagation = function() {
+			event.isImmediatePropagationStopped = returnTrue;
+			event.stopPropagation();
+		};
+
+		// Add event delegation states
+		if (!event.isDefaultPrevented) {
+			event.isDefaultPrevented = returnFalse;
+			event.isPropagationStopped = returnFalse;
+			event.isImmediatePropagationStopped = returnFalse;
+		}
+
+		return event;
+	}
+
+	function bindOnReady(win, callback, event_utils) {
+		var doc = win.document, event = {type: 'ready'};
+
+		// Gets called when the DOM is ready
+		function readyHandler() {
+			if (!event_utils.domLoaded) {
+				event_utils.domLoaded = true;
+				callback(event);
+			}
+		}
+
+		// Use W3C method
+		if (w3cEventModel) {
+			addEvent(win, 'DOMContentLoaded', readyHandler);
+		} else {
+			// Use IE method
+			addEvent(doc, "readystatechange", function() {
+				if (doc.readyState === "complete") {
+					removeEvent(doc, "readystatechange", arguments.callee);
+					readyHandler();
+				}
+			});
+
+			// Wait until we can scroll, when we can the DOM is initialized
+			if (doc.documentElement.doScroll && win === win.top) {
+				(function() {
+					try {
+						// If IE is used, use the trick by Diego Perini licensed under MIT by request to the author.
+						// http://javascript.nwbox.com/IEContentLoaded/
+						doc.documentElement.doScroll("left");
+					} catch (ex) {
+						setTimeout(arguments.callee, 0);
+						return;
+					}
+
+					readyHandler();
+				})();
+			}
+		}
+
+		// Fallback if any of the above methods should fail for some odd reason
+		addEvent(win, 'load', readyHandler);
+	}
+
+	function EventUtils(proxy) {
+		var self = this, events = {}, count, isFocusBlurBound, hasFocusIn, hasMouseEnterLeave, mouseEnterLeave;
+
+		hasMouseEnterLeave = "onmouseenter" in document.documentElement;
+		hasFocusIn = "onfocusin" in document.documentElement;
+		mouseEnterLeave = {mouseenter: 'mouseover', mouseleave: 'mouseout'};
+		count = 1;
+
+		// State if the DOMContentLoaded was executed or not
+		self.domLoaded = false;
+		self.events = events;
+
+		function executeHandlers(evt, id) {
+			var callbackList, i, l, callback;
+
+			callbackList = events[id][evt.type];
+			if (callbackList) {
+				for (i = 0, l = callbackList.length; i < l; i++) {
+					callback = callbackList[i];
+					
+					// Check if callback exists might be removed if a unbind is called inside the callback
+					if (callback && callback.func.call(callback.scope, evt) === false) {
+						evt.preventDefault();
+					}
+
+					// Should we stop propagation to immediate listeners
+					if (evt.isImmediatePropagationStopped()) {
+						return;
+					}
+				}
+			}
+		}
+
+		self.bind = function(target, names, callback, scope) {
+			var id, callbackList, i, name, fakeName, nativeHandler, capture, win = window;
+
+			// Native event handler function patches the event and executes the callbacks for the expando
+			function defaultNativeHandler(evt) {
+				executeHandlers(fix(evt || win.event), id);
+			}
+
+			// Don't bind to text nodes or comments
+			if (!target || target.nodeType === 3 || target.nodeType === 8) {
+				return;
+			}
+
+			// Create or get events id for the target
+			if (!target[expando]) {
+				id = count++;
+				target[expando] = id;
+				events[id] = {};
+			} else {
+				id = target[expando];
+
+				if (!events[id]) {
+					events[id] = {};
+				}
+			}
+
+			// Setup the specified scope or use the target as a default
+			scope = scope || target;
+
+			// Split names and bind each event, enables you to bind multiple events with one call
+			names = names.split(' ');
+			i = names.length;
+			while (i--) {
+				name = names[i];
+				nativeHandler = defaultNativeHandler;
+				fakeName = capture = false;
+
+				// Use ready instead of DOMContentLoaded
+				if (name === "DOMContentLoaded") {
+					name = "ready";
+				}
+
+				// DOM is already ready
+				if ((self.domLoaded || target.readyState == 'complete') && name === "ready") {
+					self.domLoaded = true;
+					callback.call(scope, fix({type: name}));
+					continue;
+				}
+
+				// Handle mouseenter/mouseleaver
+				if (!hasMouseEnterLeave) {
+					fakeName = mouseEnterLeave[name];
+
+					if (fakeName) {
+						nativeHandler = function(evt) {
+							var current, related;
+
+							current = evt.currentTarget;
+							related = evt.relatedTarget;
+
+							// Check if related is inside the current target if it's not then the event should be ignored since it's a mouseover/mouseout inside the element
+							if (related && current.contains) {
+								// Use contains for performance
+								related = current.contains(related);
+							} else {
+								while (related && related !== current) {
+									related = related.parentNode;
+								}
+							}
+
+							// Fire fake event
+							if (!related) {
+								evt = fix(evt || win.event);
+								evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter';
+								evt.target = current;
+								executeHandlers(evt, id);
+							}
+						};
+					}
+				}
+
+				// Fake bubbeling of focusin/focusout
+				if (!hasFocusIn && (name === "focusin" || name === "focusout")) {
+					capture = true;
+					fakeName = name === "focusin" ? "focus" : "blur";
+					nativeHandler = function(evt) {
+						evt = fix(evt || win.event);
+						evt.type = evt.type === 'focus' ? 'focusin' : 'focusout';
+						executeHandlers(evt, id);
+					};
+				}
+
+				// Setup callback list and bind native event
+				callbackList = events[id][name];
+				if (!callbackList) {
+					events[id][name] = callbackList = [{func: callback, scope: scope}];
+					callbackList.fakeName = fakeName;
+					callbackList.capture = capture;
+
+					// Add the nativeHandler to the callback list so that we can later unbind it
+					callbackList.nativeHandler = nativeHandler;
+					if (!w3cEventModel) {
+						callbackList.proxyHandler = proxy(id);
+					}
+
+					// Check if the target has native events support
+					if (name === "ready") {
+						bindOnReady(target, nativeHandler, self);
+					} else {
+						addEvent(target, fakeName || name, w3cEventModel ? nativeHandler : callbackList.proxyHandler, capture);
+					}
+				} else {
+					// If it already has an native handler then just push the callback
+					callbackList.push({func: callback, scope: scope});
+				}
+			}
+
+			target = callbackList = 0; // Clean memory for IE
+
+			return callback;
+		};
+
+		self.unbind = function(target, names, callback) {
+			var id, callbackList, i, ci, name, eventMap;
+
+			// Don't bind to text nodes or comments
+			if (!target || target.nodeType === 3 || target.nodeType === 8) {
+				return self;
+			}
+
+			// Unbind event or events if the target has the expando
+			id = target[expando];
+			if (id) {
+				eventMap = events[id];
+
+				// Specific callback
+				if (names) {
+					names = names.split(' ');
+					i = names.length;
+					while (i--) {
+						name = names[i];
+						callbackList = eventMap[name];
+
+						// Unbind the event if it exists in the map
+						if (callbackList) {
+							// Remove specified callback
+							if (callback) {
+								ci = callbackList.length;
+								while (ci--) {
+									if (callbackList[ci].func === callback) {
+										callbackList.splice(ci, 1);
+									}
+								}
+							}
+
+							// Remove all callbacks if there isn't a specified callback or there is no callbacks left
+							if (!callback || callbackList.length === 0) {
+								delete eventMap[name];
+								removeEvent(target, callbackList.fakeName || name, w3cEventModel ? callbackList.nativeHandler : callbackList.proxyHandler, callbackList.capture);
+							}
+						}
+					}
+				} else {
+					// All events for a specific element
+					for (name in eventMap) {
+						callbackList = eventMap[name];
+						removeEvent(target, callbackList.fakeName || name, w3cEventModel ? callbackList.nativeHandler : callbackList.proxyHandler, callbackList.capture);
+					}
+
+					eventMap = {};
+				}
+
+				// Check if object is empty, if it isn't then we won't remove the expando map
+				for (name in eventMap) {
+					return self;
+				}
+
+				// Delete event object
+				delete events[id];
+
+				// Remove expando from target
+				try {
+					// IE will fail here since it can't delete properties from window
+					delete target[expando];
+				} catch (ex) {
+					// IE will set it to null
+					target[expando] = null;
+				}
+			}
+
+			return self;
+		};
+
+		self.fire = function(target, name, args) {
+			var id, event;
+
+			// Don't bind to text nodes or comments
+			if (!target || target.nodeType === 3 || target.nodeType === 8) {
+				return self;
+			}
+
+			// Build event object by patching the args
+			event = fix(null, args);
+			event.type = name;
+
+			do {
+				// Found an expando that means there is listeners to execute
+				id = target[expando];
+				if (id) {
+					executeHandlers(event, id);
+				}
+
+				// Walk up the DOM
+				target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;
+			} while (target && !event.isPropagationStopped());
+
+			return self;
+		};
+
+		self.clean = function(target) {
+			var i, children, unbind = self.unbind;
+	
+			// Don't bind to text nodes or comments
+			if (!target || target.nodeType === 3 || target.nodeType === 8) {
+				return self;
+			}
+
+			// Unbind any element on the specificed target
+			if (target[expando]) {
+				unbind(target);
+			}
+
+			// Target doesn't have getElementsByTagName it's probably a window object then use it's document to find the children
+			if (!target.getElementsByTagName) {
+				target = target.document;
+			}
+
+			// Remove events from each child element
+			if (target && target.getElementsByTagName) {
+				unbind(target);
+
+				children = target.getElementsByTagName('*');
+				i = children.length;
+				while (i--) {
+					target = children[i];
+
+					if (target[expando]) {
+						unbind(target);
+					}
+				}
+			}
+
+			return self;
+		};
+
+		self.callNativeHandler = function(id, evt) {
+			if (events) {
+				events[id][evt.type].nativeHandler(evt);
+			}
+		};
+
+		self.destory = function() {
+			events = {};
+		};
+
+		// Legacy function calls
+
+		self.add = function(target, events, func, scope) {
+			// Old API supported direct ID assignment
+			if (typeof(target) === "string") {
+				target = document.getElementById(target);
+			}
+
+			// Old API supported multiple targets
+			if (target && target instanceof Array) {
+				var i = target;
+
+				while (i--) {
+					self.add(target[i], events, func, scope);
+				}
+
+				return;
+			}
+
+			// Old API called ready init
+			if (events === "init") {
+				events = "ready";
+			}
+
+			return self.bind(target, events instanceof Array ? events.join(' ') : events, func, scope);
+		};
+
+		self.remove = function(target, events, func) {
+			// Old API supported direct ID assignment
+			if (typeof(target) === "string") {
+				target = document.getElementById(target);
+			}
+
+			// Old API supported multiple targets
+			if (target instanceof Array) {
+				var i = target;
+
+				while (i--) {
+					self.remove(target[i], events, func, scope);
+				}
+
+				return self;
+			}
+
+			return self.unbind(target, events instanceof Array ? events.join(' ') : events, func);
+		};
+
+		self.clear = function(target) {
+			// Old API supported direct ID assignment
+			if (typeof(target) === "string") {
+				target = document.getElementById(target);
+			}
+
+			return self.clean(target);
+		};
+
+		self.cancel = function(e) {
+			if (e) {
+				self.prevent(e);
+				self.stop(e);
+			}
+
+			return false;
+		};
+
+		self.prevent = function(e) {
+			e.preventDefault();
+
+			return false;
+		};
+
+		self.stop = function(e) {
+			e.stopPropagation();
+
+			return false;
+		};
+	}
+
+	namespace.EventUtils = EventUtils;
+
+	namespace.Event = new EventUtils(function(id) {
+		return function(evt) {
+			tinymce.dom.Event.callNativeHandler(id, evt);
+		};
+	});
+
+	// Bind ready event when tinymce script is loaded
+	namespace.Event.bind(window, 'ready', function() {});
+
+	namespace = 0;
+})(tinymce.dom, 'data-mce-expando'); // Namespace and expando
+
+(function(tinymce) {
+	// Shorten names
+	var each = tinymce.each,
+		is = tinymce.is,
+		isWebKit = tinymce.isWebKit,
+		isIE = tinymce.isIE,
+		Entities = tinymce.html.Entities,
+		simpleSelectorRe = /^([a-z0-9],?)+$/i,
+		whiteSpaceRegExp = /^[ \t\r\n]*$/;
+
+	tinymce.create('tinymce.dom.DOMUtils', {
+		doc : null,
+		root : null,
+		files : null,
+		pixelStyles : /^(top|left|bottom|right|width|height|borderWidth)$/,
+		props : {
+			"for" : "htmlFor",
+			"class" : "className",
+			className : "className",
+			checked : "checked",
+			disabled : "disabled",
+			maxlength : "maxLength",
+			readonly : "readOnly",
+			selected : "selected",
+			value : "value",
+			id : "id",
+			name : "name",
+			type : "type"
+		},
+
+		DOMUtils : function(d, s) {
+			var t = this, globalStyle, name, blockElementsMap;
+
+			t.doc = d;
+			t.win = window;
+			t.files = {};
+			t.cssFlicker = false;
+			t.counter = 0;
+			t.stdMode = !tinymce.isIE || d.documentMode >= 8;
+			t.boxModel = !tinymce.isIE || d.compatMode == "CSS1Compat" || t.stdMode;
+			t.hasOuterHTML = "outerHTML" in d.createElement("a");
+
+			t.settings = s = tinymce.extend({
+				keep_values : false,
+				hex_colors : 1
+			}, s);
+			
+			t.schema = s.schema;
+			t.styles = new tinymce.html.Styles({
+				url_converter : s.url_converter,
+				url_converter_scope : s.url_converter_scope
+			}, s.schema);
+
+			// Fix IE6SP2 flicker and check it failed for pre SP2
+			if (tinymce.isIE6) {
+				try {
+					d.execCommand('BackgroundImageCache', false, true);
+				} catch (e) {
+					t.cssFlicker = true;
+				}
+			}
+
+			t.fixDoc(d);
+			t.events = s.ownEvents ? new tinymce.dom.EventUtils(s.proxy) : tinymce.dom.Event;
+			tinymce.addUnload(t.destroy, t);
+			blockElementsMap = s.schema ? s.schema.getBlockElements() : {};
+
+			t.isBlock = function(node) {
+				// This function is called in module pattern style since it might be executed with the wrong this scope
+				var type = node.nodeType;
+
+				// If it's a node then check the type and use the nodeName
+				if (type)
+					return !!(type === 1 && blockElementsMap[node.nodeName]);
+
+				return !!blockElementsMap[node];
+			};
+		},
+
+		fixDoc: function(doc) {
+			var settings = this.settings, name;
+
+			if (isIE && settings.schema) {
+				// Add missing HTML 4/5 elements to IE
+				('abbr article aside audio canvas ' +
+				'details figcaption figure footer ' +
+				'header hgroup mark menu meter nav ' +
+				'output progress section summary ' +
+				'time video').replace(/\w+/g, function(name) {
+					doc.createElement(name);
+				});
+
+				// Create all custom elements
+				for (name in settings.schema.getCustomElements()) {
+					doc.createElement(name);
+				}
+			}
+		},
+
+		clone: function(node, deep) {
+			var self = this, clone, doc;
+
+			// TODO: Add feature detection here in the future
+			if (!isIE || node.nodeType !== 1 || deep) {
+				return node.cloneNode(deep);
+			}
+
+			doc = self.doc;
+
+			// Make a HTML5 safe shallow copy
+			if (!deep) {
+				clone = doc.createElement(node.nodeName);
+
+				// Copy attribs
+				each(self.getAttribs(node), function(attr) {
+					self.setAttrib(clone, attr.nodeName, self.getAttrib(node, attr.nodeName));
+				});
+
+				return clone;
+			}
+/*
+			// Setup HTML5 patched document fragment
+			if (!self.frag) {
+				self.frag = doc.createDocumentFragment();
+				self.fixDoc(self.frag);
+			}
+
+			// Make a deep copy by adding it to the document fragment then removing it this removed the :section
+			clone = doc.createElement('div');
+			self.frag.appendChild(clone);
+			clone.innerHTML = node.outerHTML;
+			self.frag.removeChild(clone);
+*/
+			return clone.firstChild;
+		},
+
+		getRoot : function() {
+			var t = this, s = t.settings;
+
+			return (s && t.get(s.root_element)) || t.doc.body;
+		},
+
+		getViewPort : function(w) {
+			var d, b;
+
+			w = !w ? this.win : w;
+			d = w.document;
+			b = this.boxModel ? d.documentElement : d.body;
+
+			// Returns viewport size excluding scrollbars
+			return {
+				x : w.pageXOffset || b.scrollLeft,
+				y : w.pageYOffset || b.scrollTop,
+				w : w.innerWidth || b.clientWidth,
+				h : w.innerHeight || b.clientHeight
+			};
+		},
+
+		getRect : function(e) {
+			var p, t = this, sr;
+
+			e = t.get(e);
+			p = t.getPos(e);
+			sr = t.getSize(e);
+
+			return {
+				x : p.x,
+				y : p.y,
+				w : sr.w,
+				h : sr.h
+			};
+		},
+
+		getSize : function(e) {
+			var t = this, w, h;
+
+			e = t.get(e);
+			w = t.getStyle(e, 'width');
+			h = t.getStyle(e, 'height');
+
+			// Non pixel value, then force offset/clientWidth
+			if (w.indexOf('px') === -1)
+				w = 0;
+
+			// Non pixel value, then force offset/clientWidth
+			if (h.indexOf('px') === -1)
+				h = 0;
+
+			return {
+				w : parseInt(w) || e.offsetWidth || e.clientWidth,
+				h : parseInt(h) || e.offsetHeight || e.clientHeight
+			};
+		},
+
+		getParent : function(n, f, r) {
+			return this.getParents(n, f, r, false);
+		},
+
+		getParents : function(n, f, r, c) {
+			var t = this, na, se = t.settings, o = [];
+
+			n = t.get(n);
+			c = c === undefined;
+
+			if (se.strict_root)
+				r = r || t.getRoot();
+
+			// Wrap node name as func
+			if (is(f, 'string')) {
+				na = f;
+
+				if (f === '*') {
+					f = function(n) {return n.nodeType == 1;};
+				} else {
+					f = function(n) {
+						return t.is(n, na);
+					};
+				}
+			}
+
+			while (n) {
+				if (n == r || !n.nodeType || n.nodeType === 9)
+					break;
+
+				if (!f || f(n)) {
+					if (c)
+						o.push(n);
+					else
+						return n;
+				}
+
+				n = n.parentNode;
+			}
+
+			return c ? o : null;
+		},
+
+		get : function(e) {
+			var n;
+
+			if (e && this.doc && typeof(e) == 'string') {
+				n = e;
+				e = this.doc.getElementById(e);
+
+				// IE and Opera returns meta elements when they match the specified input ID, but getElementsByName seems to do the trick
+				if (e && e.id !== n)
+					return this.doc.getElementsByName(n)[1];
+			}
+
+			return e;
+		},
+
+		getNext : function(node, selector) {
+			return this._findSib(node, selector, 'nextSibling');
+		},
+
+		getPrev : function(node, selector) {
+			return this._findSib(node, selector, 'previousSibling');
+		},
+
+
+		select : function(pa, s) {
+			var t = this;
+
+			return tinymce.dom.Sizzle(pa, t.get(s) || t.get(t.settings.root_element) || t.doc, []);
+		},
+
+		is : function(n, selector) {
+			var i;
+
+			// If it isn't an array then try to do some simple selectors instead of Sizzle for to boost performance
+			if (n.length === undefined) {
+				// Simple all selector
+				if (selector === '*')
+					return n.nodeType == 1;
+
+				// Simple selector just elements
+				if (simpleSelectorRe.test(selector)) {
+					selector = selector.toLowerCase().split(/,/);
+					n = n.nodeName.toLowerCase();
+
+					for (i = selector.length - 1; i >= 0; i--) {
+						if (selector[i] == n)
+							return true;
+					}
+
+					return false;
+				}
+			}
+
+			return tinymce.dom.Sizzle.matches(selector, n.nodeType ? [n] : n).length > 0;
+		},
+
+
+		add : function(p, n, a, h, c) {
+			var t = this;
+
+			return this.run(p, function(p) {
+				var e, k;
+
+				e = is(n, 'string') ? t.doc.createElement(n) : n;
+				t.setAttribs(e, a);
+
+				if (h) {
+					if (h.nodeType)
+						e.appendChild(h);
+					else
+						t.setHTML(e, h);
+				}
+
+				return !c ? p.appendChild(e) : e;
+			});
+		},
+
+		create : function(n, a, h) {
+			return this.add(this.doc.createElement(n), n, a, h, 1);
+		},
+
+		createHTML : function(n, a, h) {
+			var o = '', t = this, k;
+
+			o += '<' + n;
+
+			for (k in a) {
+				if (a.hasOwnProperty(k))
+					o += ' ' + k + '="' + t.encode(a[k]) + '"';
+			}
+
+			// A call to tinymce.is doesn't work for some odd reason on IE9 possible bug inside their JS runtime
+			if (typeof(h) != "undefined")
+				return o + '>' + h + '</' + n + '>';
+
+			return o + ' />';
+		},
+
+		remove : function(node, keep_children) {
+			return this.run(node, function(node) {
+				var child, parent = node.parentNode;
+
+				if (!parent)
+					return null;
+
+				if (keep_children) {
+					while (child = node.firstChild) {
+						// IE 8 will crash if you don't remove completely empty text nodes
+						if (!tinymce.isIE || child.nodeType !== 3 || child.nodeValue)
+							parent.insertBefore(child, node);
+						else
+							node.removeChild(child);
+					}
+				}
+
+				return parent.removeChild(node);
+			});
+		},
+
+		setStyle : function(n, na, v) {
+			var t = this;
+
+			return t.run(n, function(e) {
+				var s, i;
+
+				s = e.style;
+
+				// Camelcase it, if needed
+				na = na.replace(/-(\D)/g, function(a, b){
+					return b.toUpperCase();
+				});
+
+				// Default px suffix on these
+				if (t.pixelStyles.test(na) && (tinymce.is(v, 'number') || /^[\-0-9\.]+$/.test(v)))
+					v += 'px';
+
+				switch (na) {
+					case 'opacity':
+						// IE specific opacity
+						if (isIE) {
+							s.filter = v === '' ? '' : "alpha(opacity=" + (v * 100) + ")";
+
+							if (!n.currentStyle || !n.currentStyle.hasLayout)
+								s.display = 'inline-block';
+						}
+
+						// Fix for older browsers
+						s[na] = s['-moz-opacity'] = s['-khtml-opacity'] = v || '';
+						break;
+
+					case 'float':
+						isIE ? s.styleFloat = v : s.cssFloat = v;
+						break;
+					
+					default:
+						s[na] = v || '';
+				}
+
+				// Force update of the style data
+				if (t.settings.update_styles)
+					t.setAttrib(e, 'data-mce-style');
+			});
+		},
+
+		getStyle : function(n, na, c) {
+			n = this.get(n);
+
+			if (!n)
+				return;
+
+			// Gecko
+			if (this.doc.defaultView && c) {
+				// Remove camelcase
+				na = na.replace(/[A-Z]/g, function(a){
+					return '-' + a;
+				});
+
+				try {
+					return this.doc.defaultView.getComputedStyle(n, null).getPropertyValue(na);
+				} catch (ex) {
+					// Old safari might fail
+					return null;
+				}
+			}
+
+			// Camelcase it, if needed
+			na = na.replace(/-(\D)/g, function(a, b){
+				return b.toUpperCase();
+			});
+
+			if (na == 'float')
+				na = isIE ? 'styleFloat' : 'cssFloat';
+
+			// IE & Opera
+			if (n.currentStyle && c)
+				return n.currentStyle[na];
+
+			return n.style ? n.style[na] : undefined;
+		},
+
+		setStyles : function(e, o) {
+			var t = this, s = t.settings, ol;
+
+			ol = s.update_styles;
+			s.update_styles = 0;
+
+			each(o, function(v, n) {
+				t.setStyle(e, n, v);
+			});
+
+			// Update style info
+			s.update_styles = ol;
+			if (s.update_styles)
+				t.setAttrib(e, s.cssText);
+		},
+
+		removeAllAttribs: function(e) {
+			return this.run(e, function(e) {
+				var i, attrs = e.attributes;
+				for (i = attrs.length - 1; i >= 0; i--) {
+					e.removeAttributeNode(attrs.item(i));
+				}
+			});
+		},
+
+		setAttrib : function(e, n, v) {
+			var t = this;
+
+			// Whats the point
+			if (!e || !n)
+				return;
+
+			// Strict XML mode
+			if (t.settings.strict)
+				n = n.toLowerCase();
+
+			return this.run(e, function(e) {
+				var s = t.settings;
+				var originalValue = e.getAttribute(n);
+				if (v !== null) {
+					switch (n) {
+						case "style":
+							if (!is(v, 'string')) {
+								each(v, function(v, n) {
+									t.setStyle(e, n, v);
+								});
+
+								return;
+							}
+
+							// No mce_style for elements with these since they might get resized by the user
+							if (s.keep_values) {
+								if (v && !t._isRes(v))
+									e.setAttribute('data-mce-style', v, 2);
+								else
+									e.removeAttribute('data-mce-style', 2);
+							}
+
+							e.style.cssText = v;
+							break;
+
+						case "class":
+							e.className = v || ''; // Fix IE null bug
+							break;
+
+						case "src":
+						case "href":
+							if (s.keep_values) {
+								if (s.url_converter)
+									v = s.url_converter.call(s.url_converter_scope || t, v, n, e);
+
+								t.setAttrib(e, 'data-mce-' + n, v, 2);
+							}
+
+							break;
+
+						case "shape":
+							e.setAttribute('data-mce-style', v);
+							break;
+					}
+				}
+				if (is(v) && v !== null && v.length !== 0)
+					e.setAttribute(n, '' + v, 2);
+				else
+					e.removeAttribute(n, 2);
+
+				// fire onChangeAttrib event for attributes that have changed
+				if (tinyMCE.activeEditor && originalValue != v) {
+					var ed = tinyMCE.activeEditor;
+					ed.onSetAttrib.dispatch(ed, e, n, v);
+				}
+			});
+		},
+
+		setAttribs : function(e, o) {
+			var t = this;
+
+			return this.run(e, function(e) {
+				each(o, function(v, n) {
+					t.setAttrib(e, n, v);
+				});
+			});
+		},
+
+		getAttrib : function(e, n, dv) {
+			var v, t = this, undef;
+
+			e = t.get(e);
+
+			if (!e || e.nodeType !== 1)
+				return dv === undef ? false : dv;
+
+			if (!is(dv))
+				dv = '';
+
+			// Try the mce variant for these
+			if (/^(src|href|style|coords|shape)$/.test(n)) {
+				v = e.getAttribute("data-mce-" + n);
+
+				if (v)
+					return v;
+			}
+
+			if (isIE && t.props[n]) {
+				v = e[t.props[n]];
+				v = v && v.nodeValue ? v.nodeValue : v;
+			}
+
+			if (!v)
+				v = e.getAttribute(n, 2);
+
+			// Check boolean attribs
+			if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(n)) {
+				if (e[t.props[n]] === true && v === '')
+					return n;
+
+				return v ? n : '';
+			}
+
+			// Inner input elements will override attributes on form elements
+			if (e.nodeName === "FORM" && e.getAttributeNode(n))
+				return e.getAttributeNode(n).nodeValue;
+
+			if (n === 'style') {
+				v = v || e.style.cssText;
+
+				if (v) {
+					v = t.serializeStyle(t.parseStyle(v), e.nodeName);
+
+					if (t.settings.keep_values && !t._isRes(v))
+						e.setAttribute('data-mce-style', v);
+				}
+			}
+
+			// Remove Apple and WebKit stuff
+			if (isWebKit && n === "class" && v)
+				v = v.replace(/(apple|webkit)\-[a-z\-]+/gi, '');
+
+			// Handle IE issues
+			if (isIE) {
+				switch (n) {
+					case 'rowspan':
+					case 'colspan':
+						// IE returns 1 as default value
+						if (v === 1)
+							v = '';
+
+						break;
+
+					case 'size':
+						// IE returns +0 as default value for size
+						if (v === '+0' || v === 20 || v === 0)
+							v = '';
+
+						break;
+
+					case 'width':
+					case 'height':
+					case 'vspace':
+					case 'checked':
+					case 'disabled':
+					case 'readonly':
+						if (v === 0)
+							v = '';
+
+						break;
+
+					case 'hspace':
+						// IE returns -1 as default value
+						if (v === -1)
+							v = '';
+
+						break;
+
+					case 'maxlength':
+					case 'tabindex':
+						// IE returns default value
+						if (v === 32768 || v === 2147483647 || v === '32768')
+							v = '';
+
+						break;
+
+					case 'multiple':
+					case 'compact':
+					case 'noshade':
+					case 'nowrap':
+						if (v === 65535)
+							return n;
+
+						return dv;
+
+					case 'shape':
+						v = v.toLowerCase();
+						break;
+
+					default:
+						// IE has odd anonymous function for event attributes
+						if (n.indexOf('on') === 0 && v)
+							v = tinymce._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, '$1', '' + v);
+				}
+			}
+
+			return (v !== undef && v !== null && v !== '') ? '' + v : dv;
+		},
+
+		getPos : function(n, ro) {
+			var t = this, x = 0, y = 0, e, d = t.doc, r;
+
+			n = t.get(n);
+			ro = ro || d.body;
+
+			if (n) {
+				// Use getBoundingClientRect if it exists since it's faster than looping offset nodes
+				if (n.getBoundingClientRect) {
+					n = n.getBoundingClientRect();
+					e = t.boxModel ? d.documentElement : d.body;
+
+					// Add scroll offsets from documentElement or body since IE with the wrong box model will use d.body and so do WebKit
+					// Also remove the body/documentelement clientTop/clientLeft on IE 6, 7 since they offset the position
+					x = n.left + (d.documentElement.scrollLeft || d.body.scrollLeft) - e.clientTop;
+					y = n.top + (d.documentElement.scrollTop || d.body.scrollTop) - e.clientLeft;
+
+					return {x : x, y : y};
+				}
+
+				r = n;
+				while (r && r != ro && r.nodeType) {
+					x += r.offsetLeft || 0;
+					y += r.offsetTop || 0;
+					r = r.offsetParent;
+				}
+
+				r = n.parentNode;
+				while (r && r != ro && r.nodeType) {
+					x -= r.scrollLeft || 0;
+					y -= r.scrollTop || 0;
+					r = r.parentNode;
+				}
+			}
+
+			return {x : x, y : y};
+		},
+
+		parseStyle : function(st) {
+			return this.styles.parse(st);
+		},
+
+		serializeStyle : function(o, name) {
+			return this.styles.serialize(o, name);
+		},
+
+		loadCSS : function(u) {
+			var t = this, d = t.doc, head;
+
+			if (!u)
+				u = '';
+
+			head = t.select('head')[0];
+
+			each(u.split(','), function(u) {
+				var link;
+
+				if (t.files[u])
+					return;
+
+				t.files[u] = true;
+				link = t.create('link', {rel : 'stylesheet', href : tinymce._addVer(u)});
+
+				// IE 8 has a bug where dynamically loading stylesheets would produce a 1 item remaining bug
+				// This fix seems to resolve that issue by realcing the document ones a stylesheet finishes loading
+				// It's ugly but it seems to work fine.
+				if (isIE && d.documentMode && d.recalc) {
+					link.onload = function() {
+						if (d.recalc)
+							d.recalc();
+
+						link.onload = null;
+					};
+				}
+
+				head.appendChild(link);
+			});
+		},
+
+		addClass : function(e, c) {
+			return this.run(e, function(e) {
+				var o;
+
+				if (!c)
+					return 0;
+
+				if (this.hasClass(e, c))
+					return e.className;
+
+				o = this.removeClass(e, c);
+
+				return e.className = (o != '' ? (o + ' ') : '') + c;
+			});
+		},
+
+		removeClass : function(e, c) {
+			var t = this, re;
+
+			return t.run(e, function(e) {
+				var v;
+
+				if (t.hasClass(e, c)) {
+					if (!re)
+						re = new RegExp("(^|\\s+)" + c + "(\\s+|$)", "g");
+
+					v = e.className.replace(re, ' ');
+					v = tinymce.trim(v != ' ' ? v : '');
+
+					e.className = v;
+
+					// Empty class attr
+					if (!v) {
+						e.removeAttribute('class');
+						e.removeAttribute('className');
+					}
+
+					return v;
+				}
+
+				return e.className;
+			});
+		},
+
+		hasClass : function(n, c) {
+			n = this.get(n);
+
+			if (!n || !c)
+				return false;
+
+			return (' ' + n.className + ' ').indexOf(' ' + c + ' ') !== -1;
+		},
+
+		show : function(e) {
+			return this.setStyle(e, 'display', 'block');
+		},
+
+		hide : function(e) {
+			return this.setStyle(e, 'display', 'none');
+		},
+
+		isHidden : function(e) {
+			e = this.get(e);
+
+			return !e || e.style.display == 'none' || this.getStyle(e, 'display') == 'none';
+		},
+
+		uniqueId : function(p) {
+			return (!p ? 'mce_' : p) + (this.counter++);
+		},
+
+		setHTML : function(element, html) {
+			var self = this;
+
+			return self.run(element, function(element) {
+				if (isIE) {
+					// Remove all child nodes, IE keeps empty text nodes in DOM
+					while (element.firstChild)
+						element.removeChild(element.firstChild);
+
+					try {
+						// IE will remove comments from the beginning
+						// unless you padd the contents with something
+						element.innerHTML = '<br />' + html;
+						element.removeChild(element.firstChild);
+					} catch (ex) {
+						// IE sometimes produces an unknown runtime error on innerHTML if it's an block element within a block element for example a div inside a p
+						// This seems to fix this problem
+
+						// Create new div with HTML contents and a BR infront to keep comments
+						element = self.create('div');
+						element.innerHTML = '<br />' + html;
+
+						// Add all children from div to target
+						each (element.childNodes, function(node, i) {
+							// Skip br element
+							if (i)
+								element.appendChild(node);
+						});
+					}
+				} else
+					element.innerHTML = html;
+
+				return html;
+			});
+		},
+
+		getOuterHTML : function(elm) {
+			var doc, self = this;
+
+			elm = self.get(elm);
+
+			if (!elm)
+				return null;
+
+			if (elm.nodeType === 1 && self.hasOuterHTML)
+				return elm.outerHTML;
+
+			doc = (elm.ownerDocument || self.doc).createElement("body");
+			doc.appendChild(elm.cloneNode(true));
+
+			return doc.innerHTML;
+		},
+
+		setOuterHTML : function(e, h, d) {
+			var t = this;
+
+			function setHTML(e, h, d) {
+				var n, tp;
+
+				tp = d.createElement("body");
+				tp.innerHTML = h;
+
+				n = tp.lastChild;
+				while (n) {
+					t.insertAfter(n.cloneNode(true), e);
+					n = n.previousSibling;
+				}
+
+				t.remove(e);
+			};
+
+			return this.run(e, function(e) {
+				e = t.get(e);
+
+				// Only set HTML on elements
+				if (e.nodeType == 1) {
+					d = d || e.ownerDocument || t.doc;
+
+					if (isIE) {
+						try {
+							// Try outerHTML for IE it sometimes produces an unknown runtime error
+							if (isIE && e.nodeType == 1)
+								e.outerHTML = h;
+							else
+								setHTML(e, h, d);
+						} catch (ex) {
+							// Fix for unknown runtime error
+							setHTML(e, h, d);
+						}
+					} else
+						setHTML(e, h, d);
+				}
+			});
+		},
+
+		decode : Entities.decode,
+
+		encode : Entities.encodeAllRaw,
+
+		insertAfter : function(node, reference_node) {
+			reference_node = this.get(reference_node);
+
+			return this.run(node, function(node) {
+				var parent, nextSibling;
+
+				parent = reference_node.parentNode;
+				nextSibling = reference_node.nextSibling;
+
+				if (nextSibling)
+					parent.insertBefore(node, nextSibling);
+				else
+					parent.appendChild(node);
+
+				return node;
+			});
+		},
+
+		replace : function(n, o, k) {
+			var t = this;
+
+			if (is(o, 'array'))
+				n = n.cloneNode(true);
+
+			return t.run(o, function(o) {
+				if (k) {
+					each(tinymce.grep(o.childNodes), function(c) {
+						n.appendChild(c);
+					});
+				}
+
+				return o.parentNode.replaceChild(n, o);
+			});
+		},
+
+		rename : function(elm, name) {
+			var t = this, newElm;
+
+			if (elm.nodeName != name.toUpperCase()) {
+				// Rename block element
+				newElm = t.create(name);
+
+				// Copy attribs to new block
+				each(t.getAttribs(elm), function(attr_node) {
+					t.setAttrib(newElm, attr_node.nodeName, t.getAttrib(elm, attr_node.nodeName));
+				});
+
+				// Replace block
+				t.replace(newElm, elm, 1);
+			}
+
+			return newElm || elm;
+		},
+
+		findCommonAncestor : function(a, b) {
+			var ps = a, pe;
+
+			while (ps) {
+				pe = b;
+
+				while (pe && ps != pe)
+					pe = pe.parentNode;
+
+				if (ps == pe)
+					break;
+
+				ps = ps.parentNode;
+			}
+
+			if (!ps && a.ownerDocument)
+				return a.ownerDocument.documentElement;
+
+			return ps;
+		},
+
+		toHex : function(s) {
+			var c = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);
+
+			function hex(s) {
+				s = parseInt(s).toString(16);
+
+				return s.length > 1 ? s : '0' + s; // 0 -> 00
+			};
+
+			if (c) {
+				s = '#' + hex(c[1]) + hex(c[2]) + hex(c[3]);
+
+				return s;
+			}
+
+			return s;
+		},
+
+		getClasses : function() {
+			var t = this, cl = [], i, lo = {}, f = t.settings.class_filter, ov;
+
+			if (t.classes)
+				return t.classes;
+
+			function addClasses(s) {
+				// IE style imports
+				each(s.imports, function(r) {
+					addClasses(r);
+				});
+
+				each(s.cssRules || s.rules, function(r) {
+					// Real type or fake it on IE
+					switch (r.type || 1) {
+						// Rule
+						case 1:
+							if (r.selectorText) {
+								each(r.selectorText.split(','), function(v) {
+									v = v.replace(/^\s*|\s*$|^\s\./g, "");
+
+									// Is internal or it doesn't contain a class
+									if (/\.mce/.test(v) || !/\.[\w\-]+$/.test(v))
+										return;
+
+									// Remove everything but class name
+									ov = v;
+									v = tinymce._replace(/.*\.([a-z0-9_\-]+).*/i, '$1', v);
+
+									// Filter classes
+									if (f && !(v = f(v, ov)))
+										return;
+
+									if (!lo[v]) {
+										cl.push({'class' : v});
+										lo[v] = 1;
+									}
+								});
+							}
+							break;
+
+						// Import
+						case 3:
+							addClasses(r.styleSheet);
+							break;
+					}
+				});
+			};
+
+			try {
+				each(t.doc.styleSheets, addClasses);
+			} catch (ex) {
+				// Ignore
+			}
+
+			if (cl.length > 0)
+				t.classes = cl;
+
+			return cl;
+		},
+
+		run : function(e, f, s) {
+			var t = this, o;
+
+			if (t.doc && typeof(e) === 'string')
+				e = t.get(e);
+
+			if (!e)
+				return false;
+
+			s = s || this;
+			if (!e.nodeType && (e.length || e.length === 0)) {
+				o = [];
+
+				each(e, function(e, i) {
+					if (e) {
+						if (typeof(e) == 'string')
+							e = t.doc.getElementById(e);
+
+						o.push(f.call(s, e, i));
+					}
+				});
+
+				return o;
+			}
+
+			return f.call(s, e);
+		},
+
+		getAttribs : function(n) {
+			var o;
+
+			n = this.get(n);
+
+			if (!n)
+				return [];
+
+			if (isIE) {
+				o = [];
+
+				// Object will throw exception in IE
+				if (n.nodeName == 'OBJECT')
+					return n.attributes;
+
+				// IE doesn't keep the selected attribute if you clone option elements
+				if (n.nodeName === 'OPTION' && this.getAttrib(n, 'selected'))
+					o.push({specified : 1, nodeName : 'selected'});
+
+				// It's crazy that this is faster in IE but it's because it returns all attributes all the time
+				n.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi, '').replace(/[\w:\-]+/gi, function(a) {
+					o.push({specified : 1, nodeName : a});
+				});
+
+				return o;
+			}
+
+			return n.attributes;
+		},
+
+		isEmpty : function(node, elements) {
+			var self = this, i, attributes, type, walker, name, parentNode;
+
+			node = node.firstChild;
+			if (node) {
+				walker = new tinymce.dom.TreeWalker(node, node.parentNode);
+				elements = elements || self.schema ? self.schema.getNonEmptyElements() : null;
+
+				do {
+					type = node.nodeType;
+
+					if (type === 1) {
+						// Ignore bogus elements
+						if (node.getAttribute('data-mce-bogus'))
+							continue;
+
+						// Keep empty elements like <img />
+						name = node.nodeName.toLowerCase();
+						if (elements && elements[name]) {
+							// Ignore single BR elements in blocks like <p><br /></p>
+							parentNode = node.parentNode;
+							if (name === 'br' && self.isBlock(parentNode) && parentNode.firstChild === node && parentNode.lastChild === node) {
+								continue;
+							}
+
+							return false;
+						}
+
+						// Keep elements with data-bookmark attributes or name attribute like <a name="1"></a>
+						attributes = self.getAttribs(node);
+						i = node.attributes.length;
+						while (i--) {
+							name = node.attributes[i].nodeName;
+							if (name === "name" || name === 'data-mce-bookmark')
+								return false;
+						}
+					}
+
+					// Keep comment nodes
+					if (type == 8)
+						return false;
+
+					// Keep non whitespace text nodes
+					if ((type === 3 && !whiteSpaceRegExp.test(node.nodeValue)))
+						return false;
+				} while (node = walker.next());
+			}
+
+			return true;
+		},
+
+		destroy : function(s) {
+			var t = this;
+
+			t.win = t.doc = t.root = t.events = t.frag = null;
+
+			// Manual destroy then remove unload handler
+			if (!s)
+				tinymce.removeUnload(t.destroy);
+		},
+
+		createRng : function() {
+			var d = this.doc;
+
+			return d.createRange ? d.createRange() : new tinymce.dom.Range(this);
+		},
+
+		nodeIndex : function(node, normalized) {
+			var idx = 0, lastNodeType, lastNode, nodeType;
+
+			if (node) {
+				for (lastNodeType = node.nodeType, node = node.previousSibling, lastNode = node; node; node = node.previousSibling) {
+					nodeType = node.nodeType;
+
+					// Normalize text nodes
+					if (normalized && nodeType == 3) {
+						if (nodeType == lastNodeType || !node.nodeValue.length)
+							continue;
+					}
+					idx++;
+					lastNodeType = nodeType;
+				}
+			}
+
+			return idx;
+		},
+
+		split : function(pe, e, re) {
+			var t = this, r = t.createRng(), bef, aft, pa;
+
+			// W3C valid browsers tend to leave empty nodes to the left/right side of the contents, this makes sense
+			// but we don't want that in our code since it serves no purpose for the end user
+			// For example if this is chopped:
+			//   <p>text 1<span><b>CHOP</b></span>text 2</p>
+			// would produce:
+			//   <p>text 1<span></span></p><b>CHOP</b><p><span></span>text 2</p>
+			// this function will then trim of empty edges and produce:
+			//   <p>text 1</p><b>CHOP</b><p>text 2</p>
+			function trim(node) {
+				var i, children = node.childNodes, type = node.nodeType;
+
+				function surroundedBySpans(node) {
+					var previousIsSpan = node.previousSibling && node.previousSibling.nodeName == 'SPAN';
+					var nextIsSpan = node.nextSibling && node.nextSibling.nodeName == 'SPAN';
+					return previousIsSpan && nextIsSpan;
+				}
+
+				if (type == 1 && node.getAttribute('data-mce-type') == 'bookmark')
+					return;
+
+				for (i = children.length - 1; i >= 0; i--)
+					trim(children[i]);
+
+				if (type != 9) {
+					// Keep non whitespace text nodes
+					if (type == 3 && node.nodeValue.length > 0) {
+						// If parent element isn't a block or there isn't any useful contents for example "<p>   </p>"
+						// Also keep text nodes with only spaces if surrounded by spans.
+						// eg. "<p><span>a</span> <span>b</span></p>" should keep space between a and b
+						var trimmedLength = tinymce.trim(node.nodeValue).length;
+						if (!t.isBlock(node.parentNode) || trimmedLength > 0 || trimmedLength == 0 && surroundedBySpans(node))
+							return;
+					} else if (type == 1) {
+						// If the only child is a bookmark then move it up
+						children = node.childNodes;
+						if (children.length == 1 && children[0] && children[0].nodeType == 1 && children[0].getAttribute('data-mce-type') == 'bookmark')
+							node.parentNode.insertBefore(children[0], node);
+
+						// Keep non empty elements or img, hr etc
+						if (children.length || /^(br|hr|input|img)$/i.test(node.nodeName))
+							return;
+					}
+
+					t.remove(node);
+				}
+
+				return node;
+			};
+
+			if (pe && e) {
+				// Get before chunk
+				r.setStart(pe.parentNode, t.nodeIndex(pe));
+				r.setEnd(e.parentNode, t.nodeIndex(e));
+				bef = r.extractContents();
+
+				// Get after chunk
+				r = t.createRng();
+				r.setStart(e.parentNode, t.nodeIndex(e) + 1);
+				r.setEnd(pe.parentNode, t.nodeIndex(pe) + 1);
+				aft = r.extractContents();
+
+				// Insert before chunk
+				pa = pe.parentNode;
+				pa.insertBefore(trim(bef), pe);
+
+				// Insert middle chunk
+				if (re)
+				pa.replaceChild(re, e);
+			else
+				pa.insertBefore(e, pe);
+
+				// Insert after chunk
+				pa.insertBefore(trim(aft), pe);
+				t.remove(pe);
+
+				return re || e;
+			}
+		},
+
+		bind : function(target, name, func, scope) {
+			return this.events.add(target, name, func, scope || this);
+		},
+
+		unbind : function(target, name, func) {
+			return this.events.remove(target, name, func);
+		},
+
+		fire : function(target, name, evt) {
+			return this.events.fire(target, name, evt);
+		},
+
+
+		_findSib : function(node, selector, name) {
+			var t = this, f = selector;
+
+			if (node) {
+				// If expression make a function of it using is
+				if (is(f, 'string')) {
+					f = function(node) {
+						return t.is(node, selector);
+					};
+				}
+
+				// Loop all siblings
+				for (node = node[name]; node; node = node[name]) {
+					if (f(node))
+						return node;
+				}
+			}
+
+			return null;
+		},
+
+		_isRes : function(c) {
+			// Is live resizble element
+			return /^(top|left|bottom|right|width|height)/i.test(c) || /;\s*(top|left|bottom|right|width|height)/i.test(c);
+		}
+
+		/*
+		walk : function(n, f, s) {
+			var d = this.doc, w;
+
+			if (d.createTreeWalker) {
+				w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
+
+				while ((n = w.nextNode()) != null)
+					f.call(s || this, n);
+			} else
+				tinymce.walk(n, f, 'childNodes', s);
+		}
+		*/
+
+		/*
+		toRGB : function(s) {
+			var c = /^\s*?#([0-9A-F]{2})([0-9A-F]{1,2})([0-9A-F]{2})?\s*?$/.exec(s);
+
+			if (c) {
+				// #FFF -> #FFFFFF
+				if (!is(c[3]))
+					c[3] = c[2] = c[1];
+
+				return "rgb(" + parseInt(c[1], 16) + "," + parseInt(c[2], 16) + "," + parseInt(c[3], 16) + ")";
+			}
+
+			return s;
+		}
+		*/
+	});
+
+	tinymce.DOM = new tinymce.dom.DOMUtils(document, {process_html : 0});
+})(tinymce);
+
+(function(ns) {
+	// Range constructor
+	function Range(dom) {
+		var t = this,
+			doc = dom.doc,
+			EXTRACT = 0,
+			CLONE = 1,
+			DELETE = 2,
+			TRUE = true,
+			FALSE = false,
+			START_OFFSET = 'startOffset',
+			START_CONTAINER = 'startContainer',
+			END_CONTAINER = 'endContainer',
+			END_OFFSET = 'endOffset',
+			extend = tinymce.extend,
+			nodeIndex = dom.nodeIndex;
+
+		extend(t, {
+			// Inital states
+			startContainer : doc,
+			startOffset : 0,
+			endContainer : doc,
+			endOffset : 0,
+			collapsed : TRUE,
+			commonAncestorContainer : doc,
+
+			// Range constants
+			START_TO_START : 0,
+			START_TO_END : 1,
+			END_TO_END : 2,
+			END_TO_START : 3,
+
+			// Public methods
+			setStart : setStart,
+			setEnd : setEnd,
+			setStartBefore : setStartBefore,
+			setStartAfter : setStartAfter,
+			setEndBefore : setEndBefore,
+			setEndAfter : setEndAfter,
+			collapse : collapse,
+			selectNode : selectNode,
+			selectNodeContents : selectNodeContents,
+			compareBoundaryPoints : compareBoundaryPoints,
+			deleteContents : deleteContents,
+			extractContents : extractContents,
+			cloneContents : cloneContents,
+			insertNode : insertNode,
+			surroundContents : surroundContents,
+			cloneRange : cloneRange
+		});
+
+		function createDocumentFragment() {
+			return doc.createDocumentFragment();
+		};
+
+		function setStart(n, o) {
+			_setEndPoint(TRUE, n, o);
+		};
+
+		function setEnd(n, o) {
+			_setEndPoint(FALSE, n, o);
+		};
+
+		function setStartBefore(n) {
+			setStart(n.parentNode, nodeIndex(n));
+		};
+
+		function setStartAfter(n) {
+			setStart(n.parentNode, nodeIndex(n) + 1);
+		};
+
+		function setEndBefore(n) {
+			setEnd(n.parentNode, nodeIndex(n));
+		};
+
+		function setEndAfter(n) {
+			setEnd(n.parentNode, nodeIndex(n) + 1);
+		};
+
+		function collapse(ts) {
+			if (ts) {
+				t[END_CONTAINER] = t[START_CONTAINER];
+				t[END_OFFSET] = t[START_OFFSET];
+			} else {
+				t[START_CONTAINER] = t[END_CONTAINER];
+				t[START_OFFSET] = t[END_OFFSET];
+			}
+
+			t.collapsed = TRUE;
+		};
+
+		function selectNode(n) {
+			setStartBefore(n);
+			setEndAfter(n);
+		};
+
+		function selectNodeContents(n) {
+			setStart(n, 0);
+			setEnd(n, n.nodeType === 1 ? n.childNodes.length : n.nodeValue.length);
+		};
+
+		function compareBoundaryPoints(h, r) {
+			var sc = t[START_CONTAINER], so = t[START_OFFSET], ec = t[END_CONTAINER], eo = t[END_OFFSET],
+			rsc = r.startContainer, rso = r.startOffset, rec = r.endContainer, reo = r.endOffset;
+
+			// Check START_TO_START
+			if (h === 0)
+				return _compareBoundaryPoints(sc, so, rsc, rso);
+	
+			// Check START_TO_END
+			if (h === 1)
+				return _compareBoundaryPoints(ec, eo, rsc, rso);
+	
+			// Check END_TO_END
+			if (h === 2)
+				return _compareBoundaryPoints(ec, eo, rec, reo);
+	
+			// Check END_TO_START
+			if (h === 3) 
+				return _compareBoundaryPoints(sc, so, rec, reo);
+		};
+
+		function deleteContents() {
+			_traverse(DELETE);
+		};
+
+		function extractContents() {
+			return _traverse(EXTRACT);
+		};
+
+		function cloneContents() {
+			return _traverse(CLONE);
+		};
+
+		function insertNode(n) {
+			var startContainer = this[START_CONTAINER],
+				startOffset = this[START_OFFSET], nn, o;
+
+			// Node is TEXT_NODE or CDATA
+			if ((startContainer.nodeType === 3 || startContainer.nodeType === 4) && startContainer.nodeValue) {
+				if (!startOffset) {
+					// At the start of text
+					startContainer.parentNode.insertBefore(n, startContainer);
+				} else if (startOffset >= startContainer.nodeValue.length) {
+					// At the end of text
+					dom.insertAfter(n, startContainer);
+				} else {
+					// Middle, need to split
+					nn = startContainer.splitText(startOffset);
+					startContainer.parentNode.insertBefore(n, nn);
+				}
+			} else {
+				// Insert element node
+				if (startContainer.childNodes.length > 0)
+					o = startContainer.childNodes[startOffset];
+
+				if (o)
+					startContainer.insertBefore(n, o);
+				else
+					startContainer.appendChild(n);
+			}
+		};
+
+		function surroundContents(n) {
+			var f = t.extractContents();
+
+			t.insertNode(n);
+			n.appendChild(f);
+			t.selectNode(n);
+		};
+
+		function cloneRange() {
+			return extend(new Range(dom), {
+				startContainer : t[START_CONTAINER],
+				startOffset : t[START_OFFSET],
+				endContainer : t[END_CONTAINER],
+				endOffset : t[END_OFFSET],
+				collapsed : t.collapsed,
+				commonAncestorContainer : t.commonAncestorContainer
+			});
+		};
+
+		// Private methods
+
+		function _getSelectedNode(container, offset) {
+			var child;
+
+			if (container.nodeType == 3 /* TEXT_NODE */)
+				return container;
+
+			if (offset < 0)
+				return container;
+
+			child = container.firstChild;
+			while (child && offset > 0) {
+				--offset;
+				child = child.nextSibling;
+			}
+
+			if (child)
+				return child;
+
+			return container;
+		};
+
+		function _isCollapsed() {
+			return (t[START_CONTAINER] == t[END_CONTAINER] && t[START_OFFSET] == t[END_OFFSET]);
+		};
+
+		function _compareBoundaryPoints(containerA, offsetA, containerB, offsetB) {
+			var c, offsetC, n, cmnRoot, childA, childB;
+			
+			// In the first case the boundary-points have the same container. A is before B
+			// if its offset is less than the offset of B, A is equal to B if its offset is
+			// equal to the offset of B, and A is after B if its offset is greater than the
+			// offset of B.
+			if (containerA == containerB) {
+				if (offsetA == offsetB)
+					return 0; // equal
+
+				if (offsetA < offsetB)
+					return -1; // before
+
+				return 1; // after
+			}
+
+			// In the second case a child node C of the container of A is an ancestor
+			// container of B. In this case, A is before B if the offset of A is less than or
+			// equal to the index of the child node C and A is after B otherwise.
+			c = containerB;
+			while (c && c.parentNode != containerA)
+				c = c.parentNode;
+
+			if (c) {
+				offsetC = 0;
+				n = containerA.firstChild;
+
+				while (n != c && offsetC < offsetA) {
+					offsetC++;
+					n = n.nextSibling;
+				}
+
+				if (offsetA <= offsetC)
+					return -1; // before
+
+				return 1; // after
+			}
+
+			// In the third case a child node C of the container of B is an ancestor container
+			// of A. In this case, A is before B if the index of the child node C is less than
+			// the offset of B and A is after B otherwise.
+			c = containerA;
+			while (c && c.parentNode != containerB) {
+				c = c.parentNode;
+			}
+
+			if (c) {
+				offsetC = 0;
+				n = containerB.firstChild;
+
+				while (n != c && offsetC < offsetB) {
+					offsetC++;
+					n = n.nextSibling;
+				}
+
+				if (offsetC < offsetB)
+					return -1; // before
+
+				return 1; // after
+			}
+
+			// In the fourth case, none of three other cases hold: the containers of A and B
+			// are siblings or descendants of sibling nodes. In this case, A is before B if
+			// the container of A is before the container of B in a pre-order traversal of the
+			// Ranges' context tree and A is after B otherwise.
+			cmnRoot = dom.findCommonAncestor(containerA, containerB);
+			childA = containerA;
+
+			while (childA && childA.parentNode != cmnRoot)
+				childA = childA.parentNode;
+
+			if (!childA)
+				childA = cmnRoot;
+
+			childB = containerB;
+			while (childB && childB.parentNode != cmnRoot)
+				childB = childB.parentNode;
+
+			if (!childB)
+				childB = cmnRoot;
+
+			if (childA == childB)
+				return 0; // equal
+
+			n = cmnRoot.firstChild;
+			while (n) {
+				if (n == childA)
+					return -1; // before
+
+				if (n == childB)
+					return 1; // after
+
+				n = n.nextSibling;
+			}
+		};
+
+		function _setEndPoint(st, n, o) {
+			var ec, sc;
+
+			if (st) {
+				t[START_CONTAINER] = n;
+				t[START_OFFSET] = o;
+			} else {
+				t[END_CONTAINER] = n;
+				t[END_OFFSET] = o;
+			}
+
+			// If one boundary-point of a Range is set to have a root container
+			// other than the current one for the Range, the Range is collapsed to
+			// the new position. This enforces the restriction that both boundary-
+			// points of a Range must have the same root container.
+			ec = t[END_CONTAINER];
+			while (ec.parentNode)
+				ec = ec.parentNode;
+
+			sc = t[START_CONTAINER];
+			while (sc.parentNode)
+				sc = sc.parentNode;
+
+			if (sc == ec) {
+				// The start position of a Range is guaranteed to never be after the
+				// end position. To enforce this restriction, if the start is set to
+				// be at a position after the end, the Range is collapsed to that
+				// position.
+				if (_compareBoundaryPoints(t[START_CONTAINER], t[START_OFFSET], t[END_CONTAINER], t[END_OFFSET]) > 0)
+					t.collapse(st);
+			} else
+				t.collapse(st);
+
+			t.collapsed = _isCollapsed();
+			t.commonAncestorContainer = dom.findCommonAncestor(t[START_CONTAINER], t[END_CONTAINER]);
+		};
+
+		function _traverse(how) {
+			var c, endContainerDepth = 0, startContainerDepth = 0, p, depthDiff, startNode, endNode, sp, ep;
+
+			if (t[START_CONTAINER] == t[END_CONTAINER])
+				return _traverseSameContainer(how);
+
+			for (c = t[END_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) {
+				if (p == t[START_CONTAINER])
+					return _traverseCommonStartContainer(c, how);
+
+				++endContainerDepth;
+			}
+
+			for (c = t[START_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) {
+				if (p == t[END_CONTAINER])
+					return _traverseCommonEndContainer(c, how);
+
+				++startContainerDepth;
+			}
+
+			depthDiff = startContainerDepth - endContainerDepth;
+
+			startNode = t[START_CONTAINER];
+			while (depthDiff > 0) {
+				startNode = startNode.parentNode;
+				depthDiff--;
+			}
+
+			endNode = t[END_CONTAINER];
+			while (depthDiff < 0) {
+				endNode = endNode.parentNode;
+				depthDiff++;
+			}
+
+			// ascend the ancestor hierarchy until we have a common parent.
+			for (sp = startNode.parentNode, ep = endNode.parentNode; sp != ep; sp = sp.parentNode, ep = ep.parentNode) {
+				startNode = sp;
+				endNode = ep;
+			}
+
+			return _traverseCommonAncestors(startNode, endNode, how);
+		};
+
+		 function _traverseSameContainer(how) {
+			var frag, s, sub, n, cnt, sibling, xferNode, start, len;
+
+			if (how != DELETE)
+				frag = createDocumentFragment();
+
+			// If selection is empty, just return the fragment
+			if (t[START_OFFSET] == t[END_OFFSET])
+				return frag;
+
+			// Text node needs special case handling
+			if (t[START_CONTAINER].nodeType == 3 /* TEXT_NODE */) {
+				// get the substring
+				s = t[START_CONTAINER].nodeValue;
+				sub = s.substring(t[START_OFFSET], t[END_OFFSET]);
+
+				// set the original text node to its new value
+				if (how != CLONE) {
+					n = t[START_CONTAINER];
+					start = t[START_OFFSET];
+					len = t[END_OFFSET] - t[START_OFFSET];
+
+					if (start === 0 && len >= n.nodeValue.length - 1) {
+						n.parentNode.removeChild(n);
+					} else {
+						n.deleteData(start, len);
+					}
+
+					// Nothing is partially selected, so collapse to start point
+					t.collapse(TRUE);
+				}
+
+				if (how == DELETE)
+					return;
+
+				if (sub.length > 0) {
+					frag.appendChild(doc.createTextNode(sub));
+				}
+
+				return frag;
+			}
+
+			// Copy nodes between the start/end offsets.
+			n = _getSelectedNode(t[START_CONTAINER], t[START_OFFSET]);
+			cnt = t[END_OFFSET] - t[START_OFFSET];
+
+			while (n && cnt > 0) {
+				sibling = n.nextSibling;
+				xferNode = _traverseFullySelected(n, how);
+
+				if (frag)
+					frag.appendChild( xferNode );
+
+				--cnt;
+				n = sibling;
+			}
+
+			// Nothing is partially selected, so collapse to start point
+			if (how != CLONE)
+				t.collapse(TRUE);
+
+			return frag;
+		};
+
+		function _traverseCommonStartContainer(endAncestor, how) {
+			var frag, n, endIdx, cnt, sibling, xferNode;
+
+			if (how != DELETE)
+				frag = createDocumentFragment();
+
+			n = _traverseRightBoundary(endAncestor, how);
+
+			if (frag)
+				frag.appendChild(n);
+
+			endIdx = nodeIndex(endAncestor);
+			cnt = endIdx - t[START_OFFSET];
+
+			if (cnt <= 0) {
+				// Collapse to just before the endAncestor, which
+				// is partially selected.
+				if (how != CLONE) {
+					t.setEndBefore(endAncestor);
+					t.collapse(FALSE);
+				}
+
+				return frag;
+			}
+
+			n = endAncestor.previousSibling;
+			while (cnt > 0) {
+				sibling = n.previousSibling;
+				xferNode = _traverseFullySelected(n, how);
+
+				if (frag)
+					frag.insertBefore(xferNode, frag.firstChild);
+
+				--cnt;
+				n = sibling;
+			}
+
+			// Collapse to just before the endAncestor, which
+			// is partially selected.
+			if (how != CLONE) {
+				t.setEndBefore(endAncestor);
+				t.collapse(FALSE);
+			}
+
+			return frag;
+		};
+
+		function _traverseCommonEndContainer(startAncestor, how) {
+			var frag, startIdx, n, cnt, sibling, xferNode;
+
+			if (how != DELETE)
+				frag = createDocumentFragment();
+
+			n = _traverseLeftBoundary(startAncestor, how);
+			if (frag)
+				frag.appendChild(n);
+
+			startIdx = nodeIndex(startAncestor);
+			++startIdx; // Because we already traversed it
+
+			cnt = t[END_OFFSET] - startIdx;
+			n = startAncestor.nextSibling;
+			while (n && cnt > 0) {
+				sibling = n.nextSibling;
+				xferNode = _traverseFullySelected(n, how);
+
+				if (frag)
+					frag.appendChild(xferNode);
+
+				--cnt;
+				n = sibling;
+			}
+
+			if (how != CLONE) {
+				t.setStartAfter(startAncestor);
+				t.collapse(TRUE);
+			}
+
+			return frag;
+		};
+
+		function _traverseCommonAncestors(startAncestor, endAncestor, how) {
+			var n, frag, commonParent, startOffset, endOffset, cnt, sibling, nextSibling;
+
+			if (how != DELETE)
+				frag = createDocumentFragment();
+
+			n = _traverseLeftBoundary(startAncestor, how);
+			if (frag)
+				frag.appendChild(n);
+
+			commonParent = startAncestor.parentNode;
+			startOffset = nodeIndex(startAncestor);
+			endOffset = nodeIndex(endAncestor);
+			++startOffset;
+
+			cnt = endOffset - startOffset;
+			sibling = startAncestor.nextSibling;
+
+			while (cnt > 0) {
+				nextSibling = sibling.nextSibling;
+				n = _traverseFullySelected(sibling, how);
+
+				if (frag)
+					frag.appendChild(n);
+
+				sibling = nextSibling;
+				--cnt;
+			}
+
+			n = _traverseRightBoundary(endAncestor, how);
+
+			if (frag)
+				frag.appendChild(n);
+
+			if (how != CLONE) {
+				t.setStartAfter(startAncestor);
+				t.collapse(TRUE);
+			}
+
+			return frag;
+		};
+
+		function _traverseRightBoundary(root, how) {
+			var next = _getSelectedNode(t[END_CONTAINER], t[END_OFFSET] - 1), parent, clonedParent, prevSibling, clonedChild, clonedGrandParent, isFullySelected = next != t[END_CONTAINER];
+
+			if (next == root)
+				return _traverseNode(next, isFullySelected, FALSE, how);
+
+			parent = next.parentNode;
+			clonedParent = _traverseNode(parent, FALSE, FALSE, how);
+
+			while (parent) {
+				while (next) {
+					prevSibling = next.previousSibling;
+					clonedChild = _traverseNode(next, isFullySelected, FALSE, how);
+
+					if (how != DELETE)
+						clonedParent.insertBefore(clonedChild, clonedParent.firstChild);
+
+					isFullySelected = TRUE;
+					next = prevSibling;
+				}
+
+				if (parent == root)
+					return clonedParent;
+
+				next = parent.previousSibling;
+				parent = parent.parentNode;
+
+				clonedGrandParent = _traverseNode(parent, FALSE, FALSE, how);
+
+				if (how != DELETE)
+					clonedGrandParent.appendChild(clonedParent);
+
+				clonedParent = clonedGrandParent;
+			}
+		};
+
+		function _traverseLeftBoundary(root, how) {
+			var next = _getSelectedNode(t[START_CONTAINER], t[START_OFFSET]), isFullySelected = next != t[START_CONTAINER], parent, clonedParent, nextSibling, clonedChild, clonedGrandParent;
+
+			if (next == root)
+				return _traverseNode(next, isFullySelected, TRUE, how);
+
+			parent = next.parentNode;
+			clonedParent = _traverseNode(parent, FALSE, TRUE, how);
+
+			while (parent) {
+				while (next) {
+					nextSibling = next.nextSibling;
+					clonedChild = _traverseNode(next, isFullySelected, TRUE, how);
+
+					if (how != DELETE)
+						clonedParent.appendChild(clonedChild);
+
+					isFullySelected = TRUE;
+					next = nextSibling;
+				}
+
+				if (parent == root)
+					return clonedParent;
+
+				next = parent.nextSibling;
+				parent = parent.parentNode;
+
+				clonedGrandParent = _traverseNode(parent, FALSE, TRUE, how);
+
+				if (how != DELETE)
+					clonedGrandParent.appendChild(clonedParent);
+
+				clonedParent = clonedGrandParent;
+			}
+		};
+
+		function _traverseNode(n, isFullySelected, isLeft, how) {
+			var txtValue, newNodeValue, oldNodeValue, offset, newNode;
+
+			if (isFullySelected)
+				return _traverseFullySelected(n, how);
+
+			if (n.nodeType == 3 /* TEXT_NODE */) {
+				txtValue = n.nodeValue;
+
+				if (isLeft) {
+					offset = t[START_OFFSET];
+					newNodeValue = txtValue.substring(offset);
+					oldNodeValue = txtValue.substring(0, offset);
+				} else {
+					offset = t[END_OFFSET];
+					newNodeValue = txtValue.substring(0, offset);
+					oldNodeValue = txtValue.substring(offset);
+				}
+
+				if (how != CLONE)
+					n.nodeValue = oldNodeValue;
+
+				if (how == DELETE)
+					return;
+
+				newNode = dom.clone(n, FALSE);
+				newNode.nodeValue = newNodeValue;
+
+				return newNode;
+			}
+
+			if (how == DELETE)
+				return;
+
+			return dom.clone(n, FALSE);
+		};
+
+		function _traverseFullySelected(n, how) {
+			if (how != DELETE)
+				return how == CLONE ? dom.clone(n, TRUE) : n;
+
+			n.parentNode.removeChild(n);
+		};
+	};
+
+	ns.Range = Range;
+})(tinymce.dom);
+
+(function() {
+	function Selection(selection) {
+		var self = this, dom = selection.dom, TRUE = true, FALSE = false;
+
+		function getPosition(rng, start) {
+			var checkRng, startIndex = 0, endIndex, inside,
+				children, child, offset, index, position = -1, parent;
+
+			// Setup test range, collapse it and get the parent
+			checkRng = rng.duplicate();
+			checkRng.collapse(start);
+			parent = checkRng.parentElement();
+
+			// Check if the selection is within the right document
+			if (parent.ownerDocument !== selection.dom.doc)
+				return;
+
+			// IE will report non editable elements as it's parent so look for an editable one
+			while (parent.contentEditable === "false") {
+				parent = parent.parentNode;
+			}
+
+			// If parent doesn't have any children then return that we are inside the element
+			if (!parent.hasChildNodes()) {
+				return {node : parent, inside : 1};
+			}
+
+			// Setup node list and endIndex
+			children = parent.children;
+			endIndex = children.length - 1;
+
+			// Perform a binary search for the position
+			while (startIndex <= endIndex) {
+				index = Math.floor((startIndex + endIndex) / 2);
+
+				// Move selection to node and compare the ranges
+				child = children[index];
+				checkRng.moveToElementText(child);
+				position = checkRng.compareEndPoints(start ? 'StartToStart' : 'EndToEnd', rng);
+
+				// Before/after or an exact match
+				if (position > 0) {
+					endIndex = index - 1;
+				} else if (position < 0) {
+					startIndex = index + 1;
+				} else {
+					return {node : child};
+				}
+			}
+
+			// Check if child position is before or we didn't find a position
+			if (position < 0) {
+				// No element child was found use the parent element and the offset inside that
+				if (!child) {
+					checkRng.moveToElementText(parent);
+					checkRng.collapse(true);
+					child = parent;
+					inside = true;
+				} else
+					checkRng.collapse(false);
+
+				checkRng.setEndPoint(start ? 'EndToStart' : 'EndToEnd', rng);
+
+				// Fix for edge case: <div style="width: 100px; height:100px;"><table>..</table>ab|c</div>
+				if (checkRng.compareEndPoints(start ? 'StartToStart' : 'StartToEnd', rng) > 0) {
+					checkRng = rng.duplicate();
+					checkRng.collapse(start);
+
+					offset = -1;
+					while (parent == checkRng.parentElement()) {
+						if (checkRng.move('character', -1) == 0)
+							break;
+
+						offset++;
+					}
+				}
+
+				offset = offset || checkRng.text.replace('\r\n', ' ').length;
+			} else {
+				// Child position is after the selection endpoint
+				checkRng.collapse(true);
+				checkRng.setEndPoint(start ? 'StartToStart' : 'StartToEnd', rng);
+
+				// Get the length of the text to find where the endpoint is relative to it's container
+				offset = checkRng.text.replace('\r\n', ' ').length;
+			}
+
+			return {node : child, position : position, offset : offset, inside : inside};
+		};
+
+		// Returns a W3C DOM compatible range object by using the IE Range API
+		function getRange() {
+			var ieRange = selection.getRng(), domRange = dom.createRng(), element, collapsed, tmpRange, element2, bookmark, fail;
+
+			// If selection is outside the current document just return an empty range
+			element = ieRange.item ? ieRange.item(0) : ieRange.parentElement();
+			if (element.ownerDocument != dom.doc)
+				return domRange;
+
+			collapsed = selection.isCollapsed();
+
+			// Handle control selection
+			if (ieRange.item) {
+				domRange.setStart(element.parentNode, dom.nodeIndex(element));
+				domRange.setEnd(domRange.startContainer, domRange.startOffset + 1);
+
+				return domRange;
+			}
+
+			function findEndPoint(start) {
+				var endPoint = getPosition(ieRange, start), container, offset, textNodeOffset = 0, sibling, undef, nodeValue;
+
+				container = endPoint.node;
+				offset = endPoint.offset;
+
+				if (endPoint.inside && !container.hasChildNodes()) {
+					domRange[start ? 'setStart' : 'setEnd'](container, 0);
+					return;
+				}
+
+				if (offset === undef) {
+					domRange[start ? 'setStartBefore' : 'setEndAfter'](container);
+					return;
+				}
+
+				if (endPoint.position < 0) {
+					sibling = endPoint.inside ? container.firstChild : container.nextSibling;
+
+					if (!sibling) {
+						domRange[start ? 'setStartAfter' : 'setEndAfter'](container);
+						return;
+					}
+
+					if (!offset) {
+						if (sibling.nodeType == 3)
+							domRange[start ? 'setStart' : 'setEnd'](sibling, 0);
+						else
+							domRange[start ? 'setStartBefore' : 'setEndBefore'](sibling);
+
+						return;
+					}
+
+					// Find the text node and offset
+					while (sibling) {
+						nodeValue = sibling.nodeValue;
+						textNodeOffset += nodeValue.length;
+
+						// We are at or passed the position we where looking for
+						if (textNodeOffset >= offset) {
+							container = sibling;
+							textNodeOffset -= offset;
+							textNodeOffset = nodeValue.length - textNodeOffset;
+							break;
+						}
+
+						sibling = sibling.nextSibling;
+					}
+				} else {
+					// Find the text node and offset
+					sibling = container.previousSibling;
+
+					if (!sibling)
+						return domRange[start ? 'setStartBefore' : 'setEndBefore'](container);
+
+					// If there isn't any text to loop then use the first position
+					if (!offset) {
+						if (container.nodeType == 3)
+							domRange[start ? 'setStart' : 'setEnd'](sibling, container.nodeValue.length);
+						else
+							domRange[start ? 'setStartAfter' : 'setEndAfter'](sibling);
+
+						return;
+					}
+
+					while (sibling) {
+						textNodeOffset += sibling.nodeValue.length;
+
+						// We are at or passed the position we where looking for
+						if (textNodeOffset >= offset) {
+							container = sibling;
+							textNodeOffset -= offset;
+							break;
+						}
+
+						sibling = sibling.previousSibling;
+					}
+				}
+
+				domRange[start ? 'setStart' : 'setEnd'](container, textNodeOffset);
+			};
+
+			try {
+				// Find start point
+				findEndPoint(true);
+
+				// Find end point if needed
+				if (!collapsed)
+					findEndPoint();
+			} catch (ex) {
+				// IE has a nasty bug where text nodes might throw "invalid argument" when you
+				// access the nodeValue or other properties of text nodes. This seems to happend when
+				// text nodes are split into two nodes by a delete/backspace call. So lets detect it and try to fix it.
+				if (ex.number == -2147024809) {
+					// Get the current selection
+					bookmark = self.getBookmark(2);
+
+					// Get start element
+					tmpRange = ieRange.duplicate();
+					tmpRange.collapse(true);
+					element = tmpRange.parentElement();
+
+					// Get end element
+					if (!collapsed) {
+						tmpRange = ieRange.duplicate();
+						tmpRange.collapse(false);
+						element2 = tmpRange.parentElement();
+						element2.innerHTML = element2.innerHTML;
+					}
+
+					// Remove the broken elements
+					element.innerHTML = element.innerHTML;
+
+					// Restore the selection
+					self.moveToBookmark(bookmark);
+
+					// Since the range has moved we need to re-get it
+					ieRange = selection.getRng();
+
+					// Find start point
+					findEndPoint(true);
+
+					// Find end point if needed
+					if (!collapsed)
+						findEndPoint();
+				} else
+					throw ex; // Throw other errors
+			}
+
+			return domRange;
+		};
+
+		this.getBookmark = function(type) {
+			var rng = selection.getRng(), start, end, bookmark = {};
+
+			function getIndexes(node) {
+				var node, parent, root, children, i, indexes = [];
+
+				parent = node.parentNode;
+				root = dom.getRoot().parentNode;
+
+				while (parent != root && parent.nodeType !== 9) {
+					children = parent.children;
+
+					i = children.length;
+					while (i--) {
+						if (node === children[i]) {
+							indexes.push(i);
+							break;
+						}
+					}
+
+					node = parent;
+					parent = parent.parentNode;
+				}
+
+				return indexes;
+			};
+
+			function getBookmarkEndPoint(start) {
+				var position;
+
+				position = getPosition(rng, start);
+				if (position) {
+					return {
+						position : position.position,
+						offset : position.offset,
+						indexes : getIndexes(position.node),
+						inside : position.inside
+					};
+				}
+			};
+
+			// Non ubstructive bookmark
+			if (type === 2) {
+				// Handle text selection
+				if (!rng.item) {
+					bookmark.start = getBookmarkEndPoint(true);
+
+					if (!selection.isCollapsed())
+						bookmark.end = getBookmarkEndPoint();
+				} else
+					bookmark.start = {ctrl : true, indexes : getIndexes(rng.item(0))};
+			}
+
+			return bookmark;
+		};
+
+		this.moveToBookmark = function(bookmark) {
+			var rng, body = dom.doc.body;
+
+			function resolveIndexes(indexes) {
+				var node, i, idx, children;
+
+				node = dom.getRoot();
+				for (i = indexes.length - 1; i >= 0; i--) {
+					children = node.children;
+					idx = indexes[i];
+
+					if (idx <= children.length - 1) {
+						node = children[idx];
+					}
+				}
+
+				return node;
+			};
+			
+			function setBookmarkEndPoint(start) {
+				var endPoint = bookmark[start ? 'start' : 'end'], moveLeft, moveRng, undef;
+
+				if (endPoint) {
+					moveLeft = endPoint.position > 0;
+
+					moveRng = body.createTextRange();
+					moveRng.moveToElementText(resolveIndexes(endPoint.indexes));
+
+					offset = endPoint.offset;
+					if (offset !== undef) {
+						moveRng.collapse(endPoint.inside || moveLeft);
+						moveRng.moveStart('character', moveLeft ? -offset : offset);
+					} else
+						moveRng.collapse(start);
+
+					rng.setEndPoint(start ? 'StartToStart' : 'EndToStart', moveRng);
+
+					if (start)
+						rng.collapse(true);
+				}
+			};
+
+			if (bookmark.start) {
+				if (bookmark.start.ctrl) {
+					rng = body.createControlRange();
+					rng.addElement(resolveIndexes(bookmark.start.indexes));
+					rng.select();
+				} else {
+					rng = body.createTextRange();
+					setBookmarkEndPoint(true);
+					setBookmarkEndPoint();
+					rng.select();
+				}
+			}
+		};
+
+		this.addRange = function(rng) {
+			var ieRng, ctrlRng, startContainer, startOffset, endContainer, endOffset, doc = selection.dom.doc, body = doc.body;
+
+			function setEndPoint(start) {
+				var container, offset, marker, tmpRng, nodes;
+
+				marker = dom.create('a');
+				container = start ? startContainer : endContainer;
+				offset = start ? startOffset : endOffset;
+				tmpRng = ieRng.duplicate();
+
+				if (container == doc || container == doc.documentElement) {
+					container = body;
+					offset = 0;
+				}
+
+				if (container.nodeType == 3) {
+					container.parentNode.insertBefore(marker, container);
+					tmpRng.moveToElementText(marker);
+					tmpRng.moveStart('character', offset);
+					dom.remove(marker);
+					ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng);
+				} else {
+					nodes = container.childNodes;
+
+					if (nodes.length) {
+						if (offset >= nodes.length) {
+							dom.insertAfter(marker, nodes[nodes.length - 1]);
+						} else {
+							container.insertBefore(marker, nodes[offset]);
+						}
+
+						tmpRng.moveToElementText(marker);
+					} else if (container.canHaveHTML) {
+						// Empty node selection for example <div>|</div>
+						// Setting innerHTML with a span marker then remove that marker seems to keep empty block elements open
+						container.innerHTML = '<span>\uFEFF</span>';
+						marker = container.firstChild;
+						tmpRng.moveToElementText(marker);
+						tmpRng.collapse(FALSE); // Collapse false works better than true for some odd reason
+					}
+
+					ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng);
+					dom.remove(marker);
+				}
+			}
+
+			// Setup some shorter versions
+			startContainer = rng.startContainer;
+			startOffset = rng.startOffset;
+			endContainer = rng.endContainer;
+			endOffset = rng.endOffset;
+			ieRng = body.createTextRange();
+
+			// If single element selection then try making a control selection out of it
+			if (startContainer == endContainer && startContainer.nodeType == 1) {
+				// Trick to place the caret inside an empty block element like <p></p>
+				if (!startContainer.hasChildNodes()) {
+					startContainer.innerHTML = '<span>\uFEFF</span><span>\uFEFF</span>';
+					ieRng.moveToElementText(startContainer.lastChild);
+					ieRng.select();
+					dom.doc.selection.clear();
+					startContainer.innerHTML = '';
+					return;
+				}
+
+				if (startOffset == endOffset - 1) {
+					try {
+						ctrlRng = body.createControlRange();
+						ctrlRng.addElement(startContainer.childNodes[startOffset]);
+						ctrlRng.select();
+						return;
+					} catch (ex) {
+						// Ignore
+					}
+				}
+			}
+
+			// Set start/end point of selection
+			setEndPoint(true);
+			setEndPoint();
+
+			// Select the new range and scroll it into view
+			ieRng.select();
+		};
+
+		// Expose range method
+		this.getRangeAt = getRange;
+	};
+
+	// Expose the selection object
+	tinymce.dom.TridentSelection = Selection;
+})();
+
+
+/*
+ * Sizzle CSS Selector Engine - v1.0
+ *  Copyright 2009, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+	done = 0,
+	toString = Object.prototype.toString,
+	hasDuplicate = false,
+	baseHasDuplicate = true;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+//   Thus far that includes Google Chrome.
+[0, 0].sort(function(){
+	baseHasDuplicate = false;
+	return 0;
+});
+
+var Sizzle = function(selector, context, results, seed) {
+	results = results || [];
+	context = context || document;
+
+	var origContext = context;
+
+	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+		return [];
+	}
+	
+	if ( !selector || typeof selector !== "string" ) {
+		return results;
+	}
+
+	var parts = [], m, set, checkSet, extra, prune = true, contextXML = Sizzle.isXML(context),
+		soFar = selector, ret, cur, pop, i;
+	
+	// Reset the position of the chunker regexp (start from head)
+	do {
+		chunker.exec("");
+		m = chunker.exec(soFar);
+
+		if ( m ) {
+			soFar = m[3];
+		
+			parts.push( m[1] );
+		
+			if ( m[2] ) {
+				extra = m[3];
+				break;
+			}
+		}
+	} while ( m );
+
+	if ( parts.length > 1 && origPOS.exec( selector ) ) {
+		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+			set = posProcess( parts[0] + parts[1], context );
+		} else {
+			set = Expr.relative[ parts[0] ] ?
+				[ context ] :
+				Sizzle( parts.shift(), context );
+
+			while ( parts.length ) {
+				selector = parts.shift();
+
+				if ( Expr.relative[ selector ] ) {
+					selector += parts.shift();
+				}
+				
+				set = posProcess( selector, set );
+			}
+		}
+	} else {
+		// Take a shortcut and set the context if the root selector is an ID
+		// (but not if it'll be faster if the inner selector is an ID)
+		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+			ret = Sizzle.find( parts.shift(), context, contextXML );
+			context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0];
+		}
+
+		if ( context ) {
+			ret = seed ?
+				{ expr: parts.pop(), set: makeArray(seed) } :
+				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+			set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
+
+			if ( parts.length > 0 ) {
+				checkSet = makeArray(set);
+			} else {
+				prune = false;
+			}
+
+			while ( parts.length ) {
+				cur = parts.pop();
+				pop = cur;
+
+				if ( !Expr.relative[ cur ] ) {
+					cur = "";
+				} else {
+					pop = parts.pop();
+				}
+
+				if ( pop == null ) {
+					pop = context;
+				}
+
+				Expr.relative[ cur ]( checkSet, pop, contextXML );
+			}
+		} else {
+			checkSet = parts = [];
+		}
+	}
+
+	if ( !checkSet ) {
+		checkSet = set;
+	}
+
+	if ( !checkSet ) {
+		Sizzle.error( cur || selector );
+	}
+
+	if ( toString.call(checkSet) === "[object Array]" ) {
+		if ( !prune ) {
+			results.push.apply( results, checkSet );
+		} else if ( context && context.nodeType === 1 ) {
+			for ( i = 0; checkSet[i] != null; i++ ) {
+				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+					results.push( set[i] );
+				}
+			}
+		} else {
+			for ( i = 0; checkSet[i] != null; i++ ) {
+				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+					results.push( set[i] );
+				}
+			}
+		}
+	} else {
+		makeArray( checkSet, results );
+	}
+
+	if ( extra ) {
+		Sizzle( extra, origContext, results, seed );
+		Sizzle.uniqueSort( results );
+	}
+
+	return results;
+};
+
+Sizzle.uniqueSort = function(results){
+	if ( sortOrder ) {
+		hasDuplicate = baseHasDuplicate;
+		results.sort(sortOrder);
+
+		if ( hasDuplicate ) {
+			for ( var i = 1; i < results.length; i++ ) {
+				if ( results[i] === results[i-1] ) {
+					results.splice(i--, 1);
+				}
+			}
+		}
+	}
+
+	return results;
+};
+
+Sizzle.matches = function(expr, set){
+	return Sizzle(expr, null, null, set);
+};
+
+Sizzle.find = function(expr, context, isXML){
+	var set;
+
+	if ( !expr ) {
+		return [];
+	}
+
+	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
+		var type = Expr.order[i], match;
+		
+		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+			var left = match[1];
+			match.splice(1,1);
+
+			if ( left.substr( left.length - 1 ) !== "\\" ) {
+				match[1] = (match[1] || "").replace(/\\/g, "");
+				set = Expr.find[ type ]( match, context, isXML );
+				if ( set != null ) {
+					expr = expr.replace( Expr.match[ type ], "" );
+					break;
+				}
+			}
+		}
+	}
+
+	if ( !set ) {
+		set = context.getElementsByTagName("*");
+	}
+
+	return {set: set, expr: expr};
+};
+
+Sizzle.filter = function(expr, set, inplace, not){
+	var old = expr, result = [], curLoop = set, match, anyFound,
+		isXMLFilter = set && set[0] && Sizzle.isXML(set[0]);
+
+	while ( expr && set.length ) {
+		for ( var type in Expr.filter ) {
+			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+				var filter = Expr.filter[ type ], found, item, left = match[1];
+				anyFound = false;
+
+				match.splice(1,1);
+
+				if ( left.substr( left.length - 1 ) === "\\" ) {
+					continue;
+				}
+
+				if ( curLoop === result ) {
+					result = [];
+				}
+
+				if ( Expr.preFilter[ type ] ) {
+					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+					if ( !match ) {
+						anyFound = found = true;
+					} else if ( match === true ) {
+						continue;
+					}
+				}
+
+				if ( match ) {
+					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+						if ( item ) {
+							found = filter( item, match, i, curLoop );
+							var pass = not ^ !!found;
+
+							if ( inplace && found != null ) {
+								if ( pass ) {
+									anyFound = true;
+								} else {
+									curLoop[i] = false;
+								}
+							} else if ( pass ) {
+								result.push( item );
+								anyFound = true;
+							}
+						}
+					}
+				}
+
+				if ( found !== undefined ) {
+					if ( !inplace ) {
+						curLoop = result;
+					}
+
+					expr = expr.replace( Expr.match[ type ], "" );
+
+					if ( !anyFound ) {
+						return [];
+					}
+
+					break;
+				}
+			}
+		}
+
+		// Improper expression
+		if ( expr === old ) {
+			if ( anyFound == null ) {
+				Sizzle.error( expr );
+			} else {
+				break;
+			}
+		}
+
+		old = expr;
+	}
+
+	return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+	throw "Syntax error, unrecognized expression: " + msg;
+};
+
+var Expr = Sizzle.selectors = {
+	order: [ "ID", "NAME", "TAG" ],
+	match: {
+		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+		CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+	},
+	leftMatch: {},
+	attrMap: {
+		"class": "className",
+		"for": "htmlFor"
+	},
+	attrHandle: {
+		href: function(elem){
+			return elem.getAttribute("href");
+		}
+	},
+	relative: {
+		"+": function(checkSet, part){
+			var isPartStr = typeof part === "string",
+				isTag = isPartStr && !/\W/.test(part),
+				isPartStrNotTag = isPartStr && !isTag;
+
+			if ( isTag ) {
+				part = part.toLowerCase();
+			}
+
+			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+				if ( (elem = checkSet[i]) ) {
+					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+						elem || false :
+						elem === part;
+				}
+			}
+
+			if ( isPartStrNotTag ) {
+				Sizzle.filter( part, checkSet, true );
+			}
+		},
+		">": function(checkSet, part){
+			var isPartStr = typeof part === "string",
+				elem, i = 0, l = checkSet.length;
+
+			if ( isPartStr && !/\W/.test(part) ) {
+				part = part.toLowerCase();
+
+				for ( ; i < l; i++ ) {
+					elem = checkSet[i];
+					if ( elem ) {
+						var parent = elem.parentNode;
+						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+					}
+				}
+			} else {
+				for ( ; i < l; i++ ) {
+					elem = checkSet[i];
+					if ( elem ) {
+						checkSet[i] = isPartStr ?
+							elem.parentNode :
+							elem.parentNode === part;
+					}
+				}
+
+				if ( isPartStr ) {
+					Sizzle.filter( part, checkSet, true );
+				}
+			}
+		},
+		"": function(checkSet, part, isXML){
+			var doneName = done++, checkFn = dirCheck, nodeCheck;
+
+			if ( typeof part === "string" && !/\W/.test(part) ) {
+				part = part.toLowerCase();
+				nodeCheck = part;
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+		},
+		"~": function(checkSet, part, isXML){
+			var doneName = done++, checkFn = dirCheck, nodeCheck;
+
+			if ( typeof part === "string" && !/\W/.test(part) ) {
+				part = part.toLowerCase();
+				nodeCheck = part;
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+		}
+	},
+	find: {
+		ID: function(match, context, isXML){
+			if ( typeof context.getElementById !== "undefined" && !isXML ) {
+				var m = context.getElementById(match[1]);
+				return m ? [m] : [];
+			}
+		},
+		NAME: function(match, context){
+			if ( typeof context.getElementsByName !== "undefined" ) {
+				var ret = [], results = context.getElementsByName(match[1]);
+
+				for ( var i = 0, l = results.length; i < l; i++ ) {
+					if ( results[i].getAttribute("name") === match[1] ) {
+						ret.push( results[i] );
+					}
+				}
+
+				return ret.length === 0 ? null : ret;
+			}
+		},
+		TAG: function(match, context){
+			return context.getElementsByTagName(match[1]);
+		}
+	},
+	preFilter: {
+		CLASS: function(match, curLoop, inplace, result, not, isXML){
+			match = " " + match[1].replace(/\\/g, "") + " ";
+
+			if ( isXML ) {
+				return match;
+			}
+
+			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+				if ( elem ) {
+					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0) ) {
+						if ( !inplace ) {
+							result.push( elem );
+						}
+					} else if ( inplace ) {
+						curLoop[i] = false;
+					}
+				}
+			}
+
+			return false;
+		},
+		ID: function(match){
+			return match[1].replace(/\\/g, "");
+		},
+		TAG: function(match, curLoop){
+			return match[1].toLowerCase();
+		},
+		CHILD: function(match){
+			if ( match[1] === "nth" ) {
+				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+				var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+				// calculate the numbers (first)n+(last) including if they are negative
+				match[2] = (test[1] + (test[2] || 1)) - 0;
+				match[3] = test[3] - 0;
+			}
+
+			// TODO: Move to normal caching system
+			match[0] = done++;
+
+			return match;
+		},
+		ATTR: function(match, curLoop, inplace, result, not, isXML){
+			var name = match[1].replace(/\\/g, "");
+			
+			if ( !isXML && Expr.attrMap[name] ) {
+				match[1] = Expr.attrMap[name];
+			}
+
+			if ( match[2] === "~=" ) {
+				match[4] = " " + match[4] + " ";
+			}
+
+			return match;
+		},
+		PSEUDO: function(match, curLoop, inplace, result, not){
+			if ( match[1] === "not" ) {
+				// If we're dealing with a complex expression, or a simple one
+				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+					match[3] = Sizzle(match[3], null, null, curLoop);
+				} else {
+					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+					if ( !inplace ) {
+						result.push.apply( result, ret );
+					}
+					return false;
+				}
+			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+				return true;
+			}
+			
+			return match;
+		},
+		POS: function(match){
+			match.unshift( true );
+			return match;
+		}
+	},
+	filters: {
+		enabled: function(elem){
+			return elem.disabled === false && elem.type !== "hidden";
+		},
+		disabled: function(elem){
+			return elem.disabled === true;
+		},
+		checked: function(elem){
+			return elem.checked === true;
+		},
+		selected: function(elem){
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			elem.parentNode.selectedIndex;
+			return elem.selected === true;
+		},
+		parent: function(elem){
+			return !!elem.firstChild;
+		},
+		empty: function(elem){
+			return !elem.firstChild;
+		},
+		has: function(elem, i, match){
+			return !!Sizzle( match[3], elem ).length;
+		},
+		header: function(elem){
+			return (/h\d/i).test( elem.nodeName );
+		},
+		text: function(elem){
+			return "text" === elem.type;
+		},
+		radio: function(elem){
+			return "radio" === elem.type;
+		},
+		checkbox: function(elem){
+			return "checkbox" === elem.type;
+		},
+		file: function(elem){
+			return "file" === elem.type;
+		},
+		password: function(elem){
+			return "password" === elem.type;
+		},
+		submit: function(elem){
+			return "submit" === elem.type;
+		},
+		image: function(elem){
+			return "image" === elem.type;
+		},
+		reset: function(elem){
+			return "reset" === elem.type;
+		},
+		button: function(elem){
+			return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
+		},
+		input: function(elem){
+			return (/input|select|textarea|button/i).test(elem.nodeName);
+		}
+	},
+	setFilters: {
+		first: function(elem, i){
+			return i === 0;
+		},
+		last: function(elem, i, match, array){
+			return i === array.length - 1;
+		},
+		even: function(elem, i){
+			return i % 2 === 0;
+		},
+		odd: function(elem, i){
+			return i % 2 === 1;
+		},
+		lt: function(elem, i, match){
+			return i < match[3] - 0;
+		},
+		gt: function(elem, i, match){
+			return i > match[3] - 0;
+		},
+		nth: function(elem, i, match){
+			return match[3] - 0 === i;
+		},
+		eq: function(elem, i, match){
+			return match[3] - 0 === i;
+		}
+	},
+	filter: {
+		PSEUDO: function(elem, match, i, array){
+			var name = match[1], filter = Expr.filters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+			} else if ( name === "contains" ) {
+				return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
+			} else if ( name === "not" ) {
+				var not = match[3];
+
+				for ( var j = 0, l = not.length; j < l; j++ ) {
+					if ( not[j] === elem ) {
+						return false;
+					}
+				}
+
+				return true;
+			} else {
+				Sizzle.error( "Syntax error, unrecognized expression: " + name );
+			}
+		},
+		CHILD: function(elem, match){
+			var type = match[1], node = elem;
+			switch (type) {
+				case 'only':
+				case 'first':
+					while ( (node = node.previousSibling) )	 {
+						if ( node.nodeType === 1 ) { 
+							return false; 
+						}
+					}
+					if ( type === "first" ) { 
+						return true; 
+					}
+					node = elem;
+				case 'last':
+					while ( (node = node.nextSibling) )	 {
+						if ( node.nodeType === 1 ) { 
+							return false; 
+						}
+					}
+					return true;
+				case 'nth':
+					var first = match[2], last = match[3];
+
+					if ( first === 1 && last === 0 ) {
+						return true;
+					}
+					
+					var doneName = match[0],
+						parent = elem.parentNode;
+	
+					if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+						var count = 0;
+						for ( node = parent.firstChild; node; node = node.nextSibling ) {
+							if ( node.nodeType === 1 ) {
+								node.nodeIndex = ++count;
+							}
+						} 
+						parent.sizcache = doneName;
+					}
+					
+					var diff = elem.nodeIndex - last;
+					if ( first === 0 ) {
+						return diff === 0;
+					} else {
+						return ( diff % first === 0 && diff / first >= 0 );
+					}
+			}
+		},
+		ID: function(elem, match){
+			return elem.nodeType === 1 && elem.getAttribute("id") === match;
+		},
+		TAG: function(elem, match){
+			return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
+		},
+		CLASS: function(elem, match){
+			return (" " + (elem.className || elem.getAttribute("class")) + " ")
+				.indexOf( match ) > -1;
+		},
+		ATTR: function(elem, match){
+			var name = match[1],
+				result = Expr.attrHandle[ name ] ?
+					Expr.attrHandle[ name ]( elem ) :
+					elem[ name ] != null ?
+						elem[ name ] :
+						elem.getAttribute( name ),
+				value = result + "",
+				type = match[2],
+				check = match[4];
+
+			return result == null ?
+				type === "!=" :
+				type === "=" ?
+				value === check :
+				type === "*=" ?
+				value.indexOf(check) >= 0 :
+				type === "~=" ?
+				(" " + value + " ").indexOf(check) >= 0 :
+				!check ?
+				value && result !== false :
+				type === "!=" ?
+				value !== check :
+				type === "^=" ?
+				value.indexOf(check) === 0 :
+				type === "$=" ?
+				value.substr(value.length - check.length) === check :
+				type === "|=" ?
+				value === check || value.substr(0, check.length + 1) === check + "-" :
+				false;
+		},
+		POS: function(elem, match, i, array){
+			var name = match[2], filter = Expr.setFilters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+			}
+		}
+	}
+};
+
+var origPOS = Expr.match.POS,
+	fescape = function(all, num){
+		return "\\" + (num - 0 + 1);
+	};
+
+for ( var type in Expr.match ) {
+	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+
+var makeArray = function(array, results) {
+	array = Array.prototype.slice.call( array, 0 );
+
+	if ( results ) {
+		results.push.apply( results, array );
+		return results;
+	}
+	
+	return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch(e){
+	makeArray = function(array, results) {
+		var ret = results || [], i = 0;
+
+		if ( toString.call(array) === "[object Array]" ) {
+			Array.prototype.push.apply( ret, array );
+		} else {
+			if ( typeof array.length === "number" ) {
+				for ( var l = array.length; i < l; i++ ) {
+					ret.push( array[i] );
+				}
+			} else {
+				for ( ; array[i]; i++ ) {
+					ret.push( array[i] );
+				}
+			}
+		}
+
+		return ret;
+	};
+}
+
+var sortOrder;
+
+if ( document.documentElement.compareDocumentPosition ) {
+	sortOrder = function( a, b ) {
+		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+			if ( a == b ) {
+				hasDuplicate = true;
+			}
+			return a.compareDocumentPosition ? -1 : 1;
+		}
+
+		var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
+		if ( ret === 0 ) {
+			hasDuplicate = true;
+		}
+		return ret;
+	};
+} else if ( "sourceIndex" in document.documentElement ) {
+	sortOrder = function( a, b ) {
+		if ( !a.sourceIndex || !b.sourceIndex ) {
+			if ( a == b ) {
+				hasDuplicate = true;
+			}
+			return a.sourceIndex ? -1 : 1;
+		}
+
+		var ret = a.sourceIndex - b.sourceIndex;
+		if ( ret === 0 ) {
+			hasDuplicate = true;
+		}
+		return ret;
+	};
+} else if ( document.createRange ) {
+	sortOrder = function( a, b ) {
+		if ( !a.ownerDocument || !b.ownerDocument ) {
+			if ( a == b ) {
+				hasDuplicate = true;
+			}
+			return a.ownerDocument ? -1 : 1;
+		}
+
+		var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
+		aRange.setStart(a, 0);
+		aRange.setEnd(a, 0);
+		bRange.setStart(b, 0);
+		bRange.setEnd(b, 0);
+		var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
+		if ( ret === 0 ) {
+			hasDuplicate = true;
+		}
+		return ret;
+	};
+}
+
+// Utility function for retreiving the text value of an array of DOM nodes
+Sizzle.getText = function( elems ) {
+	var ret = "", elem;
+
+	for ( var i = 0; elems[i]; i++ ) {
+		elem = elems[i];
+
+		// Get the text from text nodes and CDATA nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
+			ret += elem.nodeValue;
+
+		// Traverse everything else, except comment nodes
+		} else if ( elem.nodeType !== 8 ) {
+			ret += Sizzle.getText( elem.childNodes );
+		}
+	}
+
+	return ret;
+};
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+	// We're going to inject a fake input element with a specified name
+	var form = document.createElement("div"),
+		id = "script" + (new Date()).getTime();
+	form.innerHTML = "<a name='" + id + "'/>";
+
+	// Inject it into the root element, check its status, and remove it quickly
+	var root = document.documentElement;
+	root.insertBefore( form, root.firstChild );
+
+	// The workaround has to do additional checks after a getElementById
+	// Which slows things down for other browsers (hence the branching)
+	if ( document.getElementById( id ) ) {
+		Expr.find.ID = function(match, context, isXML){
+			if ( typeof context.getElementById !== "undefined" && !isXML ) {
+				var m = context.getElementById(match[1]);
+				return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
+			}
+		};
+
+		Expr.filter.ID = function(elem, match){
+			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+			return elem.nodeType === 1 && node && node.nodeValue === match;
+		};
+	}
+
+	root.removeChild( form );
+	root = form = null; // release memory in IE
+})();
+
+(function(){
+	// Check to see if the browser returns only elements
+	// when doing getElementsByTagName("*")
+
+	// Create a fake element
+	var div = document.createElement("div");
+	div.appendChild( document.createComment("") );
+
+	// Make sure no comments are found
+	if ( div.getElementsByTagName("*").length > 0 ) {
+		Expr.find.TAG = function(match, context){
+			var results = context.getElementsByTagName(match[1]);
+
+			// Filter out possible comments
+			if ( match[1] === "*" ) {
+				var tmp = [];
+
+				for ( var i = 0; results[i]; i++ ) {
+					if ( results[i].nodeType === 1 ) {
+						tmp.push( results[i] );
+					}
+				}
+
+				results = tmp;
+			}
+
+			return results;
+		};
+	}
+
+	// Check to see if an attribute returns normalized href attributes
+	div.innerHTML = "<a href='#'></a>";
+	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+			div.firstChild.getAttribute("href") !== "#" ) {
+		Expr.attrHandle.href = function(elem){
+			return elem.getAttribute("href", 2);
+		};
+	}
+
+	div = null; // release memory in IE
+})();
+
+if ( document.querySelectorAll ) {
+	(function(){
+		var oldSizzle = Sizzle, div = document.createElement("div");
+		div.innerHTML = "<p class='TEST'></p>";
+
+		// Safari can't handle uppercase or unicode characters when
+		// in quirks mode.
+		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+			return;
+		}
+	
+		Sizzle = function(query, context, extra, seed){
+			context = context || document;
+
+			// Only use querySelectorAll on non-XML documents
+			// (ID selectors don't work in non-HTML documents)
+			if ( !seed && context.nodeType === 9 && !Sizzle.isXML(context) ) {
+				try {
+					return makeArray( context.querySelectorAll(query), extra );
+				} catch(e){}
+			}
+		
+			return oldSizzle(query, context, extra, seed);
+		};
+
+		for ( var prop in oldSizzle ) {
+			Sizzle[ prop ] = oldSizzle[ prop ];
+		}
+
+		div = null; // release memory in IE
+	})();
+}
+
+(function(){
+	var div = document.createElement("div");
+
+	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+	// Opera can't find a second classname (in 9.6)
+	// Also, make sure that getElementsByClassName actually exists
+	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+		return;
+	}
+
+	// Safari caches class attributes, doesn't catch changes (in 3.2)
+	div.lastChild.className = "e";
+
+	if ( div.getElementsByClassName("e").length === 1 ) {
+		return;
+	}
+	
+	Expr.order.splice(1, 0, "CLASS");
+	Expr.find.CLASS = function(match, context, isXML) {
+		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+			return context.getElementsByClassName(match[1]);
+		}
+	};
+
+	div = null; // release memory in IE
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+		var elem = checkSet[i];
+		if ( elem ) {
+			elem = elem[dir];
+			var match = false;
+
+			while ( elem ) {
+				if ( elem.sizcache === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 && !isXML ){
+					elem.sizcache = doneName;
+					elem.sizset = i;
+				}
+
+				if ( elem.nodeName.toLowerCase() === cur ) {
+					match = elem;
+					break;
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+		var elem = checkSet[i];
+		if ( elem ) {
+			elem = elem[dir];
+			var match = false;
+
+			while ( elem ) {
+				if ( elem.sizcache === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 ) {
+					if ( !isXML ) {
+						elem.sizcache = doneName;
+						elem.sizset = i;
+					}
+					if ( typeof cur !== "string" ) {
+						if ( elem === cur ) {
+							match = true;
+							break;
+						}
+
+					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+						match = elem;
+						break;
+					}
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+Sizzle.contains = document.compareDocumentPosition ? function(a, b){
+	return !!(a.compareDocumentPosition(b) & 16);
+} : function(a, b){
+	return a !== b && (a.contains ? a.contains(b) : true);
+};
+
+Sizzle.isXML = function(elem){
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833) 
+	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function(selector, context){
+	var tmpSet = [], later = "", match,
+		root = context.nodeType ? [context] : context;
+
+	// Position selectors must be done after the filter
+	// And so must :not(positional) so we move all PSEUDOs to the end
+	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+		later += match[0];
+		selector = selector.replace( Expr.match.PSEUDO, "" );
+	}
+
+	selector = Expr.relative[selector] ? selector + "*" : selector;
+
+	for ( var i = 0, l = root.length; i < l; i++ ) {
+		Sizzle( selector, root[i], tmpSet );
+	}
+
+	return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+
+window.tinymce.dom.Sizzle = Sizzle;
+
+})();
+
+
+(function(tinymce) {
+	tinymce.dom.Element = function(id, settings) {
+		var t = this, dom, el;
+
+		t.settings = settings = settings || {};
+		t.id = id;
+		t.dom = dom = settings.dom || tinymce.DOM;
+
+		// Only IE leaks DOM references, this is a lot faster
+		if (!tinymce.isIE)
+			el = dom.get(t.id);
+
+		tinymce.each(
+				('getPos,getRect,getParent,add,setStyle,getStyle,setStyles,' + 
+				'setAttrib,setAttribs,getAttrib,addClass,removeClass,' + 
+				'hasClass,getOuterHTML,setOuterHTML,remove,show,hide,' + 
+				'isHidden,setHTML,get').split(/,/)
+			, function(k) {
+				t[k] = function() {
+					var a = [id], i;
+
+					for (i = 0; i < arguments.length; i++)
+						a.push(arguments[i]);
+
+					a = dom[k].apply(dom, a);
+					t.update(k);
+
+					return a;
+				};
+		});
+
+		tinymce.extend(t, {
+			on : function(n, f, s) {
+				return tinymce.dom.Event.add(t.id, n, f, s);
+			},
+
+			getXY : function() {
+				return {
+					x : parseInt(t.getStyle('left')),
+					y : parseInt(t.getStyle('top'))
+				};
+			},
+
+			getSize : function() {
+				var n = dom.get(t.id);
+
+				return {
+					w : parseInt(t.getStyle('width') || n.clientWidth),
+					h : parseInt(t.getStyle('height') || n.clientHeight)
+				};
+			},
+
+			moveTo : function(x, y) {
+				t.setStyles({left : x, top : y});
+			},
+
+			moveBy : function(x, y) {
+				var p = t.getXY();
+
+				t.moveTo(p.x + x, p.y + y);
+			},
+
+			resizeTo : function(w, h) {
+				t.setStyles({width : w, height : h});
+			},
+
+			resizeBy : function(w, h) {
+				var s = t.getSize();
+
+				t.resizeTo(s.w + w, s.h + h);
+			},
+
+			update : function(k) {
+				var b;
+
+				if (tinymce.isIE6 && settings.blocker) {
+					k = k || '';
+
+					// Ignore getters
+					if (k.indexOf('get') === 0 || k.indexOf('has') === 0 || k.indexOf('is') === 0)
+						return;
+
+					// Remove blocker on remove
+					if (k == 'remove') {
+						dom.remove(t.blocker);
+						return;
+					}
+
+					if (!t.blocker) {
+						t.blocker = dom.uniqueId();
+						b = dom.add(settings.container || dom.getRoot(), 'iframe', {id : t.blocker, style : 'position:absolute;', frameBorder : 0, src : 'javascript:""'});
+						dom.setStyle(b, 'opacity', 0);
+					} else
+						b = dom.get(t.blocker);
+
+					dom.setStyles(b, {
+						left : t.getStyle('left', 1),
+						top : t.getStyle('top', 1),
+						width : t.getStyle('width', 1),
+						height : t.getStyle('height', 1),
+						display : t.getStyle('display', 1),
+						zIndex : parseInt(t.getStyle('zIndex', 1) || 0) - 1
+					});
+				}
+			}
+		});
+	};
+})(tinymce);
+
+(function(tinymce) {
+	function trimNl(s) {
+		return s.replace(/[\n\r]+/g, '');
+	};
+
+	// Shorten names
+	var is = tinymce.is, isIE = tinymce.isIE, each = tinymce.each;
+
+	tinymce.create('tinymce.dom.Selection', {
+		Selection : function(dom, win, serializer) {
+			var t = this;
+
+			t.dom = dom;
+			t.win = win;
+			t.serializer = serializer;
+
+			// Add events
+			each([
+				'onBeforeSetContent',
+
+				'onBeforeGetContent',
+
+				'onSetContent',
+
+				'onGetContent'
+			], function(e) {
+				t[e] = new tinymce.util.Dispatcher(t);
+			});
+
+			// No W3C Range support
+			if (!t.win.getSelection)
+				t.tridentSel = new tinymce.dom.TridentSelection(t);
+
+			if (tinymce.isIE && dom.boxModel)
+				this._fixIESelection();
+
+			// Prevent leaks
+			tinymce.addUnload(t.destroy, t);
+		},
+
+		setCursorLocation: function(node, offset) {
+			var t = this; var r = t.dom.createRng();
+			r.setStart(node, offset);
+			r.setEnd(node, offset);
+			t.setRng(r);
+			t.collapse(false);
+		},
+		getContent : function(s) {
+			var t = this, r = t.getRng(), e = t.dom.create("body"), se = t.getSel(), wb, wa, n;
+
+			s = s || {};
+			wb = wa = '';
+			s.get = true;
+			s.format = s.format || 'html';
+			s.forced_root_block = '';
+			t.onBeforeGetContent.dispatch(t, s);
+
+			if (s.format == 'text')
+				return t.isCollapsed() ? '' : (r.text || (se.toString ? se.toString() : ''));
+
+			if (r.cloneContents) {
+				n = r.cloneContents();
+
+				if (n)
+					e.appendChild(n);
+			} else if (is(r.item) || is(r.htmlText)) {
+				// IE will produce invalid markup if elements are present that
+				// it doesn't understand like custom elements or HTML5 elements.
+				// Adding a BR in front of the contents and then remoiving it seems to fix it though.
+				e.innerHTML = '<br>' + (r.item ? r.item(0).outerHTML : r.htmlText);
+				e.removeChild(e.firstChild);
+			} else
+				e.innerHTML = r.toString();
+
+			// Keep whitespace before and after
+			if (/^\s/.test(e.innerHTML))
+				wb = ' ';
+
+			if (/\s+$/.test(e.innerHTML))
+				wa = ' ';
+
+			s.getInner = true;
+
+			s.content = t.isCollapsed() ? '' : wb + t.serializer.serialize(e, s) + wa;
+			t.onGetContent.dispatch(t, s);
+
+			return s.content;
+		},
+
+		setContent : function(content, args) {
+			var self = this, rng = self.getRng(), caretNode, doc = self.win.document, frag, temp;
+
+			args = args || {format : 'html'};
+			args.set = true;
+			content = args.content = content;
+
+			// Dispatch before set content event
+			if (!args.no_events)
+				self.onBeforeSetContent.dispatch(self, args);
+
+			content = args.content;
+
+			if (rng.insertNode) {
+				// Make caret marker since insertNode places the caret in the beginning of text after insert
+				content += '<span id="__caret">_</span>';
+
+				// Delete and insert new node
+				if (rng.startContainer == doc && rng.endContainer == doc) {
+					// WebKit will fail if the body is empty since the range is then invalid and it can't insert contents
+					doc.body.innerHTML = content;
+				} else {
+					rng.deleteContents();
+
+					if (doc.body.childNodes.length == 0) {
+						doc.body.innerHTML = content;
+					} else {
+						// createContextualFragment doesn't exists in IE 9 DOMRanges
+						if (rng.createContextualFragment) {
+							rng.insertNode(rng.createContextualFragment(content));
+						} else {
+							// Fake createContextualFragment call in IE 9
+							frag = doc.createDocumentFragment();
+							temp = doc.createElement('div');
+
+							frag.appendChild(temp);
+							temp.outerHTML = content;
+
+							rng.insertNode(frag);
+						}
+					}
+				}
+
+				// Move to caret marker
+				caretNode = self.dom.get('__caret');
+
+				// Make sure we wrap it compleatly, Opera fails with a simple select call
+				rng = doc.createRange();
+				rng.setStartBefore(caretNode);
+				rng.setEndBefore(caretNode);
+				self.setRng(rng);
+
+				// Remove the caret position
+				self.dom.remove('__caret');
+
+				try {
+					self.setRng(rng);
+				} catch (ex) {
+					// Might fail on Opera for some odd reason
+				}
+			} else {
+				if (rng.item) {
+					// Delete content and get caret text selection
+					doc.execCommand('Delete', false, null);
+					rng = self.getRng();
+				}
+
+				// Explorer removes spaces from the beginning of pasted contents
+				if (/^\s+/.test(content)) {
+					rng.pasteHTML('<span id="__mce_tmp">_</span>' + content);
+					self.dom.remove('__mce_tmp');
+				} else
+					rng.pasteHTML(content);
+			}
+
+			// Dispatch set content event
+			if (!args.no_events)
+				self.onSetContent.dispatch(self, args);
+		},
+
+		getStart : function() {
+			var rng = this.getRng(), startElement, parentElement, checkRng, node;
+
+			if (rng.duplicate || rng.item) {
+				// Control selection, return first item
+				if (rng.item)
+					return rng.item(0);
+
+				// Get start element
+				checkRng = rng.duplicate();
+				checkRng.collapse(1);
+				startElement = checkRng.parentElement();
+
+				// Check if range parent is inside the start element, then return the inner parent element
+				// This will fix issues when a single element is selected, IE would otherwise return the wrong start element
+				parentElement = node = rng.parentElement();
+				while (node = node.parentNode) {
+					if (node == startElement) {
+						startElement = parentElement;
+						break;
+					}
+				}
+
+				return startElement;
+			} else {
+				startElement = rng.startContainer;
+
+				if (startElement.nodeType == 1 && startElement.hasChildNodes())
+					startElement = startElement.childNodes[Math.min(startElement.childNodes.length - 1, rng.startOffset)];
+
+				if (startElement && startElement.nodeType == 3)
+					return startElement.parentNode;
+
+				return startElement;
+			}
+		},
+
+		getEnd : function() {
+			var t = this, r = t.getRng(), e, eo;
+
+			if (r.duplicate || r.item) {
+				if (r.item)
+					return r.item(0);
+
+				r = r.duplicate();
+				r.collapse(0);
+				e = r.parentElement();
+
+				if (e && e.nodeName == 'BODY')
+					return e.lastChild || e;
+
+				return e;
+			} else {
+				e = r.endContainer;
+				eo = r.endOffset;
+
+				if (e.nodeType == 1 && e.hasChildNodes())
+					e = e.childNodes[eo > 0 ? eo - 1 : eo];
+
+				if (e && e.nodeType == 3)
+					return e.parentNode;
+
+				return e;
+			}
+		},
+
+		getBookmark : function(type, normalized) {
+			var t = this, dom = t.dom, rng, rng2, id, collapsed, name, element, index, chr = '\uFEFF', styles;
+
+			function findIndex(name, element) {
+				var index = 0;
+
+				each(dom.select(name), function(node, i) {
+					if (node == element)
+						index = i;
+				});
+
+				return index;
+			};
+
+			if (type == 2) {
+				function getLocation() {
+					var rng = t.getRng(true), root = dom.getRoot(), bookmark = {};
+
+					function getPoint(rng, start) {
+						var container = rng[start ? 'startContainer' : 'endContainer'],
+							offset = rng[start ? 'startOffset' : 'endOffset'], point = [], node, childNodes, after = 0;
+
+						if (container.nodeType == 3) {
+							if (normalized) {
+								for (node = container.previousSibling; node && node.nodeType == 3; node = node.previousSibling)
+									offset += node.nodeValue.length;
+							}
+
+							point.push(offset);
+						} else {
+							childNodes = container.childNodes;
+
+							if (offset >= childNodes.length && childNodes.length) {
+								after = 1;
+								offset = Math.max(0, childNodes.length - 1);
+							}
+
+							point.push(t.dom.nodeIndex(childNodes[offset], normalized) + after);
+						}
+
+						for (; container && container != root; container = container.parentNode)
+							point.push(t.dom.nodeIndex(container, normalized));
+
+						return point;
+					};
+
+					bookmark.start = getPoint(rng, true);
+
+					if (!t.isCollapsed())
+						bookmark.end = getPoint(rng);
+
+					return bookmark;
+				};
+
+				if (t.tridentSel)
+					return t.tridentSel.getBookmark(type);
+
+				return getLocation();
+			}
+
+			// Handle simple range
+			if (type)
+				return {rng : t.getRng()};
+
+			rng = t.getRng();
+			id = dom.uniqueId();
+			collapsed = tinyMCE.activeEditor.selection.isCollapsed();
+			styles = 'overflow:hidden;line-height:0px';
+
+			// Explorer method
+			if (rng.duplicate || rng.item) {
+				// Text selection
+				if (!rng.item) {
+					rng2 = rng.duplicate();
+
+					try {
+						// Insert start marker
+						rng.collapse();
+						rng.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_start" style="' + styles + '">' + chr + '</span>');
+
+						// Insert end marker
+						if (!collapsed) {
+							rng2.collapse(false);
+
+							// Detect the empty space after block elements in IE and move the end back one character <p></p>] becomes <p>]</p>
+							rng.moveToElementText(rng2.parentElement());
+							if (rng.compareEndPoints('StartToEnd', rng2) == 0)
+								rng2.move('character', -1);
+
+							rng2.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_end" style="' + styles + '">' + chr + '</span>');
+						}
+					} catch (ex) {
+						// IE might throw unspecified error so lets ignore it
+						return null;
+					}
+				} else {
+					// Control selection
+					element = rng.item(0);
+					name = element.nodeName;
+
+					return {name : name, index : findIndex(name, element)};
+				}
+			} else {
+				element = t.getNode();
+				name = element.nodeName;
+				if (name == 'IMG')
+					return {name : name, index : findIndex(name, element)};
+
+				// W3C method
+				rng2 = rng.cloneRange();
+
+				// Insert end marker
+				if (!collapsed) {
+					rng2.collapse(false);
+					rng2.insertNode(dom.create('span', {'data-mce-type' : "bookmark", id : id + '_end', style : styles}, chr));
+				}
+
+				rng.collapse(true);
+				rng.insertNode(dom.create('span', {'data-mce-type' : "bookmark", id : id + '_start', style : styles}, chr));
+			}
+
+			t.moveToBookmark({id : id, keep : 1});
+
+			return {id : id};
+		},
+
+		moveToBookmark : function(bookmark) {
+			var t = this, dom = t.dom, marker1, marker2, rng, root, startContainer, endContainer, startOffset, endOffset;
+
+			if (bookmark) {
+				if (bookmark.start) {
+					rng = dom.createRng();
+					root = dom.getRoot();
+
+					function setEndPoint(start) {
+						var point = bookmark[start ? 'start' : 'end'], i, node, offset, children;
+
+						if (point) {
+							offset = point[0];
+
+							// Find container node
+							for (node = root, i = point.length - 1; i >= 1; i--) {
+								children = node.childNodes;
+
+								if (point[i] > children.length - 1)
+									return;
+
+								node = children[point[i]];
+							}
+
+							// Move text offset to best suitable location
+							if (node.nodeType === 3)
+								offset = Math.min(point[0], node.nodeValue.length);
+
+							// Move element offset to best suitable location
+							if (node.nodeType === 1)
+								offset = Math.min(point[0], node.childNodes.length);
+
+							// Set offset within container node
+							if (start)
+								rng.setStart(node, offset);
+							else
+								rng.setEnd(node, offset);
+						}
+
+						return true;
+					};
+
+					if (t.tridentSel)
+						return t.tridentSel.moveToBookmark(bookmark);
+
+					if (setEndPoint(true) && setEndPoint()) {
+						t.setRng(rng);
+					}
+				} else if (bookmark.id) {
+					function restoreEndPoint(suffix) {
+						var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev, keep = bookmark.keep;
+
+						if (marker) {
+							node = marker.parentNode;
+
+							if (suffix == 'start') {
+								if (!keep) {
+									idx = dom.nodeIndex(marker);
+								} else {
+									node = marker.firstChild;
+									idx = 1;
+								}
+
+								startContainer = endContainer = node;
+								startOffset = endOffset = idx;
+							} else {
+								if (!keep) {
+									idx = dom.nodeIndex(marker);
+								} else {
+									node = marker.firstChild;
+									idx = 1;
+								}
+
+								endContainer = node;
+								endOffset = idx;
+							}
+
+							if (!keep) {
+								prev = marker.previousSibling;
+								next = marker.nextSibling;
+
+								// Remove all marker text nodes
+								each(tinymce.grep(marker.childNodes), function(node) {
+									if (node.nodeType == 3)
+										node.nodeValue = node.nodeValue.replace(/\uFEFF/g, '');
+								});
+
+								// Remove marker but keep children if for example contents where inserted into the marker
+								// Also remove duplicated instances of the marker for example by a split operation or by WebKit auto split on paste feature
+								while (marker = dom.get(bookmark.id + '_' + suffix))
+									dom.remove(marker, 1);
+
+								// If siblings are text nodes then merge them unless it's Opera since it some how removes the node
+								// and we are sniffing since adding a lot of detection code for a browser with 3% of the market isn't worth the effort. Sorry, Opera but it's just a fact
+								if (prev && next && prev.nodeType == next.nodeType && prev.nodeType == 3 && !tinymce.isOpera) {
+									idx = prev.nodeValue.length;
+									prev.appendData(next.nodeValue);
+									dom.remove(next);
+
+									if (suffix == 'start') {
+										startContainer = endContainer = prev;
+										startOffset = endOffset = idx;
+									} else {
+										endContainer = prev;
+										endOffset = idx;
+									}
+								}
+							}
+						}
+					};
+
+					function addBogus(node) {
+						// Adds a bogus BR element for empty block elements or just a space on IE since it renders BR elements incorrectly
+						if (dom.isBlock(node) && !node.innerHTML)
+							node.innerHTML = !isIE ? '<br data-mce-bogus="1" />' : ' ';
+
+						return node;
+					};
+
+					// Restore start/end points
+					restoreEndPoint('start');
+					restoreEndPoint('end');
+
+					if (startContainer) {
+						rng = dom.createRng();
+						rng.setStart(addBogus(startContainer), startOffset);
+						rng.setEnd(addBogus(endContainer), endOffset);
+						t.setRng(rng);
+					}
+				} else if (bookmark.name) {
+					t.select(dom.select(bookmark.name)[bookmark.index]);
+				} else if (bookmark.rng)
+					t.setRng(bookmark.rng);
+			}
+		},
+
+		select : function(node, content) {
+			var t = this, dom = t.dom, rng = dom.createRng(), idx;
+
+			if (node) {
+				idx = dom.nodeIndex(node);
+				rng.setStart(node.parentNode, idx);
+				rng.setEnd(node.parentNode, idx + 1);
+
+				// Find first/last text node or BR element
+				if (content) {
+					function setPoint(node, start) {
+						var walker = new tinymce.dom.TreeWalker(node, node);
+
+						do {
+							// Text node
+							if (node.nodeType == 3 && tinymce.trim(node.nodeValue).length != 0) {
+								if (start)
+									rng.setStart(node, 0);
+								else
+									rng.setEnd(node, node.nodeValue.length);
+
+								return;
+							}
+
+							// BR element
+							if (node.nodeName == 'BR') {
+								if (start)
+									rng.setStartBefore(node);
+								else
+									rng.setEndBefore(node);
+
+								return;
+							}
+						} while (node = (start ? walker.next() : walker.prev()));
+					};
+
+					setPoint(node, 1);
+					setPoint(node);
+				}
+
+				t.setRng(rng);
+			}
+
+			return node;
+		},
+
+		isCollapsed : function() {
+			var t = this, r = t.getRng(), s = t.getSel();
+
+			if (!r || r.item)
+				return false;
+
+			if (r.compareEndPoints)
+				return r.compareEndPoints('StartToEnd', r) === 0;
+
+			return !s || r.collapsed;
+		},
+
+		collapse : function(to_start) {
+			var self = this, rng = self.getRng(), node;
+
+			// Control range on IE
+			if (rng.item) {
+				node = rng.item(0);
+				rng = self.win.document.body.createTextRange();
+				rng.moveToElementText(node);
+			}
+
+			rng.collapse(!!to_start);
+			self.setRng(rng);
+		},
+
+		getSel : function() {
+			var t = this, w = this.win;
+
+			return w.getSelection ? w.getSelection() : w.document.selection;
+		},
+
+		getRng : function(w3c) {
+			var t = this, s, r, elm, doc = t.win.document;
+
+			// Found tridentSel object then we need to use that one
+			if (w3c && t.tridentSel)
+				return t.tridentSel.getRangeAt(0);
+
+			try {
+				if (s = t.getSel())
+					r = s.rangeCount > 0 ? s.getRangeAt(0) : (s.createRange ? s.createRange() : doc.createRange());
+			} catch (ex) {
+				// IE throws unspecified error here if TinyMCE is placed in a frame/iframe
+			}
+
+			// We have W3C ranges and it's IE then fake control selection since IE9 doesn't handle that correctly yet
+			if (tinymce.isIE && r && r.setStart && doc.selection.createRange().item) {
+				elm = doc.selection.createRange().item(0);
+				r = doc.createRange();
+				r.setStartBefore(elm);
+				r.setEndAfter(elm);
+			}
+
+			// No range found then create an empty one
+			// This can occur when the editor is placed in a hidden container element on Gecko
+			// Or on IE when there was an exception
+			if (!r)
+				r = doc.createRange ? doc.createRange() : doc.body.createTextRange();
+
+			if (t.selectedRange && t.explicitRange) {
+				if (r.compareBoundaryPoints(r.START_TO_START, t.selectedRange) === 0 && r.compareBoundaryPoints(r.END_TO_END, t.selectedRange) === 0) {
+					// Safari, Opera and Chrome only ever select text which causes the range to change.
+					// This lets us use the originally set range if the selection hasn't been changed by the user.
+					r = t.explicitRange;
+				} else {
+					t.selectedRange = null;
+					t.explicitRange = null;
+				}
+			}
+
+			return r;
+		},
+
+		setRng : function(r) {
+			var s, t = this;
+
+			if (!t.tridentSel) {
+				s = t.getSel();
+
+				if (s) {
+					t.explicitRange = r;
+
+					try {
+						s.removeAllRanges();
+					} catch (ex) {
+						// IE9 might throw errors here don't know why
+					}
+
+					s.addRange(r);
+					// adding range isn't always successful so we need to check range count otherwise an exception can occur
+					t.selectedRange = s.rangeCount > 0 ? s.getRangeAt(0) : null;
+				}
+			} else {
+				// Is W3C Range
+				if (r.cloneRange) {
+					try {
+						t.tridentSel.addRange(r);
+						return;
+					} catch (ex) {
+						//IE9 throws an error here if called before selection is placed in the editor
+					}
+				}
+
+				// Is IE specific range
+				try {
+					r.select();
+				} catch (ex) {
+					// Needed for some odd IE bug #1843306
+				}
+			}
+		},
+
+		setNode : function(n) {
+			var t = this;
+
+			t.setContent(t.dom.getOuterHTML(n));
+
+			return n;
+		},
+
+		getNode : function() {
+			var t = this, rng = t.getRng(), sel = t.getSel(), elm, start = rng.startContainer, end = rng.endContainer;
+
+			// Range maybe lost after the editor is made visible again
+			if (!rng)
+				return t.dom.getRoot();
+
+			if (rng.setStart) {
+				elm = rng.commonAncestorContainer;
+
+				// Handle selection a image or other control like element such as anchors
+				if (!rng.collapsed) {
+					if (rng.startContainer == rng.endContainer) {
+						if (rng.endOffset - rng.startOffset < 2) {
+							if (rng.startContainer.hasChildNodes())
+								elm = rng.startContainer.childNodes[rng.startOffset];
+						}
+					}
+
+					// If the anchor node is a element instead of a text node then return this element
+					//if (tinymce.isWebKit && sel.anchorNode && sel.anchorNode.nodeType == 1)
+					//	return sel.anchorNode.childNodes[sel.anchorOffset];
+
+					// Handle cases where the selection is immediately wrapped around a node and return that node instead of it's parent.
+					// This happens when you double click an underlined word in FireFox.
+					if (start.nodeType === 3 && end.nodeType === 3) {
+						function skipEmptyTextNodes(n, forwards) {
+							var orig = n;
+							while (n && n.nodeType === 3 && n.length === 0) {
+								n = forwards ? n.nextSibling : n.previousSibling;
+							}
+							return n || orig;
+						}
+						if (start.length === rng.startOffset) {
+							start = skipEmptyTextNodes(start.nextSibling, true);
+						} else {
+							start = start.parentNode;
+						}
+						if (rng.endOffset === 0) {
+							end = skipEmptyTextNodes(end.previousSibling, false);
+						} else {
+							end = end.parentNode;
+						}
+
+						if (start && start === end)
+							return start;
+					}
+				}
+
+				if (elm && elm.nodeType == 3)
+					return elm.parentNode;
+
+				return elm;
+			}
+
+			return rng.item ? rng.item(0) : rng.parentElement();
+		},
+
+		getSelectedBlocks : function(st, en) {
+			var t = this, dom = t.dom, sb, eb, n, bl = [];
+
+			sb = dom.getParent(st || t.getStart(), dom.isBlock);
+			eb = dom.getParent(en || t.getEnd(), dom.isBlock);
+
+			if (sb)
+				bl.push(sb);
+
+			if (sb && eb && sb != eb) {
+				n = sb;
+
+				var walker = new tinymce.dom.TreeWalker(sb, dom.getRoot());
+				while ((n = walker.next()) && n != eb) {
+					if (dom.isBlock(n))
+						bl.push(n);
+				}
+			}
+
+			if (eb && sb != eb)
+				bl.push(eb);
+
+			return bl;
+		},
+
+		normalize : function() {
+			var self = this, rng, normalized;
+
+			// TODO:
+			// Retain selection direction.
+			// Lean left/right on Gecko for inline elements.
+			// Run this on mouse up/key up when the user manually moves the selection
+
+			// Normalize only on non IE browsers for now
+			if (tinymce.isIE)
+				return;
+
+			function normalizeEndPoint(start) {
+				var container, offset, walker, dom = self.dom, body = dom.getRoot(), node;
+
+				container = rng[(start ? 'start' : 'end') + 'Container'];
+				offset = rng[(start ? 'start' : 'end') + 'Offset'];
+
+				// If the container is a document move it to the body element
+				if (container.nodeType === 9) {
+					container = container.body;
+					offset = 0;
+				}
+
+				// If the container is body try move it into the closest text node or position
+				// TODO: Add more logic here to handle element selection cases
+				if (container === body) {
+					// Resolve the index
+					if (container.hasChildNodes()) {
+						container = container.childNodes[Math.min(!start && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1)];
+						offset = 0;
+
+						// Don't walk into elements that doesn't have any child nodes like a IMG
+						if (container.hasChildNodes()) {
+							// Walk the DOM to find a text node to place the caret at or a BR
+							node = container;
+							walker = new tinymce.dom.TreeWalker(container, body);
+							do {
+								// Found a text node use that position
+								if (node.nodeType === 3) {
+									offset = start ? 0 : node.nodeValue.length - 1;
+									container = node;
+									normalized = true;
+									break;
+								}
+
+								// Found a BR/IMG element that we can place the caret before
+								if (/^(BR|IMG)$/.test(node.nodeName)) {
+									offset = dom.nodeIndex(node);
+									container = node.parentNode;
+
+									// Put caret after image when moving the end point
+									if (node.nodeName ==  "IMG" && !start) {
+										offset++;
+									}
+
+									normalized = true;
+									break;
+								}
+							} while (node = (start ? walker.next() : walker.prev()));
+						}
+					}
+				}
+
+				// Set endpoint if it was normalized
+				if (normalized)
+					rng['set' + (start ? 'Start' : 'End')](container, offset);
+			};
+
+			rng = self.getRng();
+
+			// Normalize the end points
+			normalizeEndPoint(true);
+
+			if (!rng.collapsed)
+				normalizeEndPoint();
+
+			// Set the selection if it was normalized
+			if (normalized) {
+				//console.log(self.dom.dumpRng(rng));
+				self.setRng(rng);
+			}
+		},
+
+		destroy : function(s) {
+			var t = this;
+
+			t.win = null;
+
+			// Manual destroy then remove unload handler
+			if (!s)
+				tinymce.removeUnload(t.destroy);
+		},
+
+		// IE has an issue where you can't select/move the caret by clicking outside the body if the document is in standards mode
+		_fixIESelection : function() {
+			var dom = this.dom, doc = dom.doc, body = doc.body, started, startRng, htmlElm;
+
+			// Make HTML element unselectable since we are going to handle selection by hand
+			doc.documentElement.unselectable = true;
+
+			// Return range from point or null if it failed
+			function rngFromPoint(x, y) {
+				var rng = body.createTextRange();
+
+				try {
+					rng.moveToPoint(x, y);
+				} catch (ex) {
+					// IE sometimes throws and exception, so lets just ignore it
+					rng = null;
+				}
+
+				return rng;
+			};
+
+			// Fires while the selection is changing
+			function selectionChange(e) {
+				var pointRng;
+
+				// Check if the button is down or not
+				if (e.button) {
+					// Create range from mouse position
+					pointRng = rngFromPoint(e.x, e.y);
+
+					if (pointRng) {
+						// Check if pointRange is before/after selection then change the endPoint
+						if (pointRng.compareEndPoints('StartToStart', startRng) > 0)
+							pointRng.setEndPoint('StartToStart', startRng);
+						else
+							pointRng.setEndPoint('EndToEnd', startRng);
+
+						pointRng.select();
+					}
+				} else
+					endSelection();
+			}
+
+			// Removes listeners
+			function endSelection() {
+				var rng = doc.selection.createRange();
+
+				// If the range is collapsed then use the last start range
+				if (startRng && !rng.item && rng.compareEndPoints('StartToEnd', rng) === 0)
+					startRng.select();
+
+				dom.unbind(doc, 'mouseup', endSelection);
+				dom.unbind(doc, 'mousemove', selectionChange);
+				startRng = started = 0;
+			};
+
+			// Detect when user selects outside BODY
+			dom.bind(doc, ['mousedown', 'contextmenu'], function(e) {
+				if (e.target.nodeName === 'HTML') {
+					if (started)
+						endSelection();
+
+					// Detect vertical scrollbar, since IE will fire a mousedown on the scrollbar and have target set as HTML
+					htmlElm = doc.documentElement;
+					if (htmlElm.scrollHeight > htmlElm.clientHeight)
+						return;
+
+					started = 1;
+					// Setup start position
+					startRng = rngFromPoint(e.x, e.y);
+					if (startRng) {
+						// Listen for selection change events
+						dom.bind(doc, 'mouseup', endSelection);
+						dom.bind(doc, 'mousemove', selectionChange);
+
+						dom.win.focus();
+						startRng.select();
+					}
+				}
+			});
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	tinymce.dom.Serializer = function(settings, dom, schema) {
+		var onPreProcess, onPostProcess, isIE = tinymce.isIE, each = tinymce.each, htmlParser;
+
+		// Support the old apply_source_formatting option
+		if (!settings.apply_source_formatting)
+			settings.indent = false;
+
+		// Default DOM and Schema if they are undefined
+		dom = dom || tinymce.DOM;
+		schema = schema || new tinymce.html.Schema(settings);
+		settings.entity_encoding = settings.entity_encoding || 'named';
+		settings.remove_trailing_brs = "remove_trailing_brs" in settings ? settings.remove_trailing_brs : true;
+
+		onPreProcess = new tinymce.util.Dispatcher(self);
+
+		onPostProcess = new tinymce.util.Dispatcher(self);
+
+		htmlParser = new tinymce.html.DomParser(settings, schema);
+
+		// Convert move data-mce-src, data-mce-href and data-mce-style into nodes or process them if needed
+		htmlParser.addAttributeFilter('src,href,style', function(nodes, name) {
+			var i = nodes.length, node, value, internalName = 'data-mce-' + name, urlConverter = settings.url_converter, urlConverterScope = settings.url_converter_scope, undef;
+
+			while (i--) {
+				node = nodes[i];
+
+				value = node.attributes.map[internalName];
+				if (value !== undef) {
+					// Set external name to internal value and remove internal
+					node.attr(name, value.length > 0 ? value : null);
+					node.attr(internalName, null);
+				} else {
+					// No internal attribute found then convert the value we have in the DOM
+					value = node.attributes.map[name];
+
+					if (name === "style")
+						value = dom.serializeStyle(dom.parseStyle(value), node.name);
+					else if (urlConverter)
+						value = urlConverter.call(urlConverterScope, value, name, node.name);
+
+					node.attr(name, value.length > 0 ? value : null);
+				}
+			}
+		});
+
+		// Remove internal classes mceItem<..>
+		htmlParser.addAttributeFilter('class', function(nodes, name) {
+			var i = nodes.length, node, value;
+
+			while (i--) {
+				node = nodes[i];
+				value = node.attr('class').replace(/\s*mce(Item\w+|Selected)\s*/g, '');
+				node.attr('class', value.length > 0 ? value : null);
+			}
+		});
+
+		// Remove bookmark elements
+		htmlParser.addAttributeFilter('data-mce-type', function(nodes, name, args) {
+			var i = nodes.length, node;
+
+			while (i--) {
+				node = nodes[i];
+
+				if (node.attributes.map['data-mce-type'] === 'bookmark' && !args.cleanup)
+					node.remove();
+			}
+		});
+
+		// Remove expando attributes
+		htmlParser.addAttributeFilter('data-mce-expando', function(nodes, name, args) {
+			var i = nodes.length;
+
+			while (i--) {
+				nodes[i].attr(name, null);
+			}
+		});
+
+		// Force script into CDATA sections and remove the mce- prefix also add comments around styles
+		htmlParser.addNodeFilter('script,style', function(nodes, name) {
+			var i = nodes.length, node, value;
+
+			function trim(value) {
+				return value.replace(/(<!--\[CDATA\[|\]\]-->)/g, '\n')
+						.replace(/^[\r\n]*|[\r\n]*$/g, '')
+						.replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, '')
+						.replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, '');
+			};
+
+			while (i--) {
+				node = nodes[i];
+				value = node.firstChild ? node.firstChild.value : '';
+
+				if (name === "script") {
+					// Remove mce- prefix from script elements
+					node.attr('type', (node.attr('type') || 'text/javascript').replace(/^mce\-/, ''));
+
+					if (value.length > 0)
+						node.firstChild.value = '// <![CDATA[\n' + trim(value) + '\n// ]]>';
+				} else {
+					if (value.length > 0)
+						node.firstChild.value = '<!--\n' + trim(value) + '\n-->';
+				}
+			}
+		});
+
+		// Convert comments to cdata and handle protected comments
+		htmlParser.addNodeFilter('#comment', function(nodes, name) {
+			var i = nodes.length, node;
+
+			while (i--) {
+				node = nodes[i];
+
+				if (node.value.indexOf('[CDATA[') === 0) {
+					node.name = '#cdata';
+					node.type = 4;
+					node.value = node.value.replace(/^\[CDATA\[|\]\]$/g, '');
+				} else if (node.value.indexOf('mce:protected ') === 0) {
+					node.name = "#text";
+					node.type = 3;
+					node.raw = true;
+					node.value = unescape(node.value).substr(14);
+				}
+			}
+		});
+
+		htmlParser.addNodeFilter('xml:namespace,input', function(nodes, name) {
+			var i = nodes.length, node;
+
+			while (i--) {
+				node = nodes[i];
+				if (node.type === 7)
+					node.remove();
+				else if (node.type === 1) {
+					if (name === "input" && !("type" in node.attributes.map))
+						node.attr('type', 'text');
+				}
+			}
+		});
+
+		// Fix list elements, TODO: Replace this later
+		if (settings.fix_list_elements) {
+			htmlParser.addNodeFilter('ul,ol', function(nodes, name) {
+				var i = nodes.length, node, parentNode;
+
+				while (i--) {
+					node = nodes[i];
+					parentNode = node.parent;
+
+					if (parentNode.name === 'ul' || parentNode.name === 'ol') {
+						if (node.prev && node.prev.name === 'li') {
+							node.prev.append(node);
+						}
+					}
+				}
+			});
+		}
+
+		// Remove internal data attributes
+		htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style', function(nodes, name) {
+			var i = nodes.length;
+
+			while (i--) {
+				nodes[i].attr(name, null);
+			}
+		});
+
+		// Return public methods
+		return {
+			schema : schema,
+
+			addNodeFilter : htmlParser.addNodeFilter,
+
+			addAttributeFilter : htmlParser.addAttributeFilter,
+
+			onPreProcess : onPreProcess,
+
+			onPostProcess : onPostProcess,
+
+			serialize : function(node, args) {
+				var impl, doc, oldDoc, htmlSerializer, content;
+
+				// Explorer won't clone contents of script and style and the
+				// selected index of select elements are cleared on a clone operation.
+				if (isIE && dom.select('script,style,select,map').length > 0) {
+					content = node.innerHTML;
+					node = node.cloneNode(false);
+					dom.setHTML(node, content);
+				} else
+					node = node.cloneNode(true);
+
+				// Nodes needs to be attached to something in WebKit/Opera
+				// Older builds of Opera crashes if you attach the node to an document created dynamically
+				// and since we can't feature detect a crash we need to sniff the acutal build number
+				// This fix will make DOM ranges and make Sizzle happy!
+				impl = node.ownerDocument.implementation;
+				if (impl.createHTMLDocument) {
+					// Create an empty HTML document
+					doc = impl.createHTMLDocument("");
+
+					// Add the element or it's children if it's a body element to the new document
+					each(node.nodeName == 'BODY' ? node.childNodes : [node], function(node) {
+						doc.body.appendChild(doc.importNode(node, true));
+					});
+
+					// Grab first child or body element for serialization
+					if (node.nodeName != 'BODY')
+						node = doc.body.firstChild;
+					else
+						node = doc.body;
+
+					// set the new document in DOMUtils so createElement etc works
+					oldDoc = dom.doc;
+					dom.doc = doc;
+				}
+
+				args = args || {};
+				args.format = args.format || 'html';
+
+				// Pre process
+				if (!args.no_events) {
+					args.node = node;
+					onPreProcess.dispatch(self, args);
+				}
+
+				// Setup serializer
+				htmlSerializer = new tinymce.html.Serializer(settings, schema);
+
+				// Parse and serialize HTML
+				args.content = htmlSerializer.serialize(
+					htmlParser.parse(args.getInner ? node.innerHTML : tinymce.trim(dom.getOuterHTML(node), args), args)
+				);
+
+				// Replace all BOM characters for now until we can find a better solution
+				if (!args.cleanup)
+					args.content = args.content.replace(/\uFEFF|\u200B/g, '');
+
+				// Post process
+				if (!args.no_events)
+					onPostProcess.dispatch(self, args);
+
+				// Restore the old document if it was changed
+				if (oldDoc)
+					dom.doc = oldDoc;
+
+				args.node = null;
+
+				return args.content;
+			},
+
+			addRules : function(rules) {
+				schema.addValidElements(rules);
+			},
+
+			setRules : function(rules) {
+				schema.setValidElements(rules);
+			}
+		};
+	};
+})(tinymce);
+(function(tinymce) {
+	tinymce.dom.ScriptLoader = function(settings) {
+		var QUEUED = 0,
+			LOADING = 1,
+			LOADED = 2,
+			states = {},
+			queue = [],
+			scriptLoadedCallbacks = {},
+			queueLoadedCallbacks = [],
+			loading = 0,
+			undefined;
+
+		function loadScript(url, callback) {
+			var t = this, dom = tinymce.DOM, elm, uri, loc, id;
+
+			// Execute callback when script is loaded
+			function done() {
+				dom.remove(id);
+
+				if (elm)
+					elm.onreadystatechange = elm.onload = elm = null;
+
+				callback();
+			};
+			
+			function error() {
+				// Report the error so it's easier for people to spot loading errors
+				if (typeof(console) !== "undefined" && console.log)
+					console.log("Failed to load: " + url);
+
+				// We can't mark it as done if there is a load error since
+				// A) We don't want to produce 404 errors on the server and
+				// B) the onerror event won't fire on all browsers.
+				// done();
+			};
+
+			id = dom.uniqueId();
+
+			if (tinymce.isIE6) {
+				uri = new tinymce.util.URI(url);
+				loc = location;
+
+				// If script is from same domain and we
+				// use IE 6 then use XHR since it's more reliable
+				if (uri.host == loc.hostname && uri.port == loc.port && (uri.protocol + ':') == loc.protocol && uri.protocol.toLowerCase() != 'file') {
+					tinymce.util.XHR.send({
+						url : tinymce._addVer(uri.getURI()),
+						success : function(content) {
+							// Create new temp script element
+							var script = dom.create('script', {
+								type : 'text/javascript'
+							});
+
+							// Evaluate script in global scope
+							script.text = content;
+							document.getElementsByTagName('head')[0].appendChild(script);
+							dom.remove(script);
+
+							done();
+						},
+						
+						error : error
+					});
+
+					return;
+				}
+			}
+
+			// Create new script element
+			elm = dom.create('script', {
+				id : id,
+				type : 'text/javascript',
+				src : tinymce._addVer(url)
+			});
+
+			// Add onload listener for non IE browsers since IE9
+			// fires onload event before the script is parsed and executed
+			if (!tinymce.isIE)
+				elm.onload = done;
+
+			// Add onerror event will get fired on some browsers but not all of them
+			elm.onerror = error;
+
+			// Opera 9.60 doesn't seem to fire the onreadystate event at correctly
+			if (!tinymce.isOpera) {
+				elm.onreadystatechange = function() {
+					var state = elm.readyState;
+
+					// Loaded state is passed on IE 6 however there
+					// are known issues with this method but we can't use
+					// XHR in a cross domain loading
+					if (state == 'complete' || state == 'loaded')
+						done();
+				};
+			}
+
+			// Most browsers support this feature so we report errors
+			// for those at least to help users track their missing plugins etc
+			// todo: Removed since it produced error if the document is unloaded by navigating away, re-add it as an option
+			/*elm.onerror = function() {
+				alert('Failed to load: ' + url);
+			};*/
+
+			// Add script to document
+			(document.getElementsByTagName('head')[0] || document.body).appendChild(elm);
+		};
+
+		this.isDone = function(url) {
+			return states[url] == LOADED;
+		};
+
+		this.markDone = function(url) {
+			states[url] = LOADED;
+		};
+
+		this.add = this.load = function(url, callback, scope) {
+			var item, state = states[url];
+
+			// Add url to load queue
+			if (state == undefined) {
+				queue.push(url);
+				states[url] = QUEUED;
+			}
+
+			if (callback) {
+				// Store away callback for later execution
+				if (!scriptLoadedCallbacks[url])
+					scriptLoadedCallbacks[url] = [];
+
+				scriptLoadedCallbacks[url].push({
+					func : callback,
+					scope : scope || this
+				});
+			}
+		};
+
+		this.loadQueue = function(callback, scope) {
+			this.loadScripts(queue, callback, scope);
+		};
+
+		this.loadScripts = function(scripts, callback, scope) {
+			var loadScripts;
+
+			function execScriptLoadedCallbacks(url) {
+				// Execute URL callback functions
+				tinymce.each(scriptLoadedCallbacks[url], function(callback) {
+					callback.func.call(callback.scope);
+				});
+
+				scriptLoadedCallbacks[url] = undefined;
+			};
+
+			queueLoadedCallbacks.push({
+				func : callback,
+				scope : scope || this
+			});
+
+			loadScripts = function() {
+				var loadingScripts = tinymce.grep(scripts);
+
+				// Current scripts has been handled
+				scripts.length = 0;
+
+				// Load scripts that needs to be loaded
+				tinymce.each(loadingScripts, function(url) {
+					// Script is already loaded then execute script callbacks directly
+					if (states[url] == LOADED) {
+						execScriptLoadedCallbacks(url);
+						return;
+					}
+
+					// Is script not loading then start loading it
+					if (states[url] != LOADING) {
+						states[url] = LOADING;
+						loading++;
+
+						loadScript(url, function() {
+							states[url] = LOADED;
+							loading--;
+
+							execScriptLoadedCallbacks(url);
+
+							// Load more scripts if they where added by the recently loaded script
+							loadScripts();
+						});
+					}
+				});
+
+				// No scripts are currently loading then execute all pending queue loaded callbacks
+				if (!loading) {
+					tinymce.each(queueLoadedCallbacks, function(callback) {
+						callback.func.call(callback.scope);
+					});
+
+					queueLoadedCallbacks.length = 0;
+				}
+			};
+
+			loadScripts();
+		};
+	};
+
+	// Global script loader
+	tinymce.ScriptLoader = new tinymce.dom.ScriptLoader();
+})(tinymce);
+
+tinymce.dom.TreeWalker = function(start_node, root_node) {
+	var node = start_node;
+
+	function findSibling(node, start_name, sibling_name, shallow) {
+		var sibling, parent;
+
+		if (node) {
+			// Walk into nodes if it has a start
+			if (!shallow && node[start_name])
+				return node[start_name];
+
+			// Return the sibling if it has one
+			if (node != root_node) {
+				sibling = node[sibling_name];
+				if (sibling)
+					return sibling;
+
+				// Walk up the parents to look for siblings
+				for (parent = node.parentNode; parent && parent != root_node; parent = parent.parentNode) {
+					sibling = parent[sibling_name];
+					if (sibling)
+						return sibling;
+				}
+			}
+		}
+	};
+
+	this.current = function() {
+		return node;
+	};
+
+	this.next = function(shallow) {
+		return (node = findSibling(node, 'firstChild', 'nextSibling', shallow));
+	};
+
+	this.prev = function(shallow) {
+		return (node = findSibling(node, 'lastChild', 'previousSibling', shallow));
+	};
+};
+
+(function(tinymce) {
+	tinymce.dom.RangeUtils = function(dom) {
+		var INVISIBLE_CHAR = '\uFEFF';
+
+		this.walk = function(rng, callback) {
+			var startContainer = rng.startContainer,
+				startOffset = rng.startOffset,
+				endContainer = rng.endContainer,
+				endOffset = rng.endOffset,
+				ancestor, startPoint,
+				endPoint, node, parent, siblings, nodes;
+
+			// Handle table cell selection the table plugin enables
+			// you to fake select table cells and perform formatting actions on them
+			nodes = dom.select('td.mceSelected,th.mceSelected');
+			if (nodes.length > 0) {
+				tinymce.each(nodes, function(node) {
+					callback([node]);
+				});
+
+				return;
+			}
+
+			function exclude(nodes) {
+				var node;
+
+				// First node is excluded
+				node = nodes[0];
+				if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) {
+					nodes.splice(0, 1);
+				}
+
+				// Last node is excluded
+				node = nodes[nodes.length - 1];
+				if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) {
+					nodes.splice(nodes.length - 1, 1);
+				}
+
+				return nodes;
+			};
+
+			function collectSiblings(node, name, end_node) {
+				var siblings = [];
+
+				for (; node && node != end_node; node = node[name])
+					siblings.push(node);
+
+				return siblings;
+			};
+
+			function findEndPoint(node, root) {
+				do {
+					if (node.parentNode == root)
+						return node;
+
+					node = node.parentNode;
+				} while(node);
+			};
+
+			function walkBoundary(start_node, end_node, next) {
+				var siblingName = next ? 'nextSibling' : 'previousSibling';
+
+				for (node = start_node, parent = node.parentNode; node && node != end_node; node = parent) {
+					parent = node.parentNode;
+					siblings = collectSiblings(node == start_node ? node : node[siblingName], siblingName);
+
+					if (siblings.length) {
+						if (!next)
+							siblings.reverse();
+
+						callback(exclude(siblings));
+					}
+				}
+			};
+
+			// If index based start position then resolve it
+			if (startContainer.nodeType == 1 && startContainer.hasChildNodes())
+				startContainer = startContainer.childNodes[startOffset];
+
+			// If index based end position then resolve it
+			if (endContainer.nodeType == 1 && endContainer.hasChildNodes())
+				endContainer = endContainer.childNodes[Math.min(endOffset - 1, endContainer.childNodes.length - 1)];
+
+			// Same container
+			if (startContainer == endContainer)
+				return callback(exclude([startContainer]));
+
+			// Find common ancestor and end points
+			ancestor = dom.findCommonAncestor(startContainer, endContainer);
+				
+			// Process left side
+			for (node = startContainer; node; node = node.parentNode) {
+				if (node === endContainer)
+					return walkBoundary(startContainer, ancestor, true);
+
+				if (node === ancestor)
+					break;
+			}
+
+			// Process right side
+			for (node = endContainer; node; node = node.parentNode) {
+				if (node === startContainer)
+					return walkBoundary(endContainer, ancestor);
+
+				if (node === ancestor)
+					break;
+			}
+
+			// Find start/end point
+			startPoint = findEndPoint(startContainer, ancestor) || startContainer;
+			endPoint = findEndPoint(endContainer, ancestor) || endContainer;
+
+			// Walk left leaf
+			walkBoundary(startContainer, startPoint, true);
+
+			// Walk the middle from start to end point
+			siblings = collectSiblings(
+				startPoint == startContainer ? startPoint : startPoint.nextSibling,
+				'nextSibling',
+				endPoint == endContainer ? endPoint.nextSibling : endPoint
+			);
+
+			if (siblings.length)
+				callback(exclude(siblings));
+
+			// Walk right leaf
+			walkBoundary(endContainer, endPoint);
+		};
+
+		this.split = function(rng) {
+			var startContainer = rng.startContainer,
+				startOffset = rng.startOffset,
+				endContainer = rng.endContainer,
+				endOffset = rng.endOffset;
+
+			function splitText(node, offset) {
+				return node.splitText(offset);
+			};
+
+			// Handle single text node
+			if (startContainer == endContainer && startContainer.nodeType == 3) {
+				if (startOffset > 0 && startOffset < startContainer.nodeValue.length) {
+					endContainer = splitText(startContainer, startOffset);
+					startContainer = endContainer.previousSibling;
+
+					if (endOffset > startOffset) {
+						endOffset = endOffset - startOffset;
+						startContainer = endContainer = splitText(endContainer, endOffset).previousSibling;
+						endOffset = endContainer.nodeValue.length;
+						startOffset = 0;
+					} else {
+						endOffset = 0;
+					}
+				}
+			} else {
+				// Split startContainer text node if needed
+				if (startContainer.nodeType == 3 && startOffset > 0 && startOffset < startContainer.nodeValue.length) {
+					startContainer = splitText(startContainer, startOffset);
+					startOffset = 0;
+				}
+
+				// Split endContainer text node if needed
+				if (endContainer.nodeType == 3 && endOffset > 0 && endOffset < endContainer.nodeValue.length) {
+					endContainer = splitText(endContainer, endOffset).previousSibling;
+					endOffset = endContainer.nodeValue.length;
+				}
+			}
+
+			return {
+				startContainer : startContainer,
+				startOffset : startOffset,
+				endContainer : endContainer,
+				endOffset : endOffset
+			};
+		};
+
+	};
+
+	tinymce.dom.RangeUtils.compareRanges = function(rng1, rng2) {
+		if (rng1 && rng2) {
+			// Compare native IE ranges
+			if (rng1.item || rng1.duplicate) {
+				// Both are control ranges and the selected element matches
+				if (rng1.item && rng2.item && rng1.item(0) === rng2.item(0))
+					return true;
+
+				// Both are text ranges and the range matches
+				if (rng1.isEqual && rng2.isEqual && rng2.isEqual(rng1))
+					return true;
+			} else {
+				// Compare w3c ranges
+				return rng1.startContainer == rng2.startContainer && rng1.startOffset == rng2.startOffset;
+			}
+		}
+
+		return false;
+	};
+})(tinymce);
+
+(function(tinymce) {
+	var Event = tinymce.dom.Event, each = tinymce.each;
+
+	tinymce.create('tinymce.ui.KeyboardNavigation', {
+		KeyboardNavigation: function(settings, dom) {
+			var t = this, root = settings.root, items = settings.items,
+					enableUpDown = settings.enableUpDown, enableLeftRight = settings.enableLeftRight || !settings.enableUpDown,
+					excludeFromTabOrder = settings.excludeFromTabOrder,
+					itemFocussed, itemBlurred, rootKeydown, rootFocussed, focussedId;
+
+			dom = dom || tinymce.DOM;
+
+			itemFocussed = function(evt) {
+				focussedId = evt.target.id;
+			};
+			
+			itemBlurred = function(evt) {
+				dom.setAttrib(evt.target.id, 'tabindex', '-1');
+			};
+			
+			rootFocussed = function(evt) {
+				var item = dom.get(focussedId);
+				dom.setAttrib(item, 'tabindex', '0');
+				item.focus();
+			};
+			
+			t.focus = function() {
+				dom.get(focussedId).focus();
+			};
+
+			t.destroy = function() {
+				each(items, function(item) {
+					dom.unbind(dom.get(item.id), 'focus', itemFocussed);
+					dom.unbind(dom.get(item.id), 'blur', itemBlurred);
+				});
+
+				dom.unbind(dom.get(root), 'focus', rootFocussed);
+				dom.unbind(dom.get(root), 'keydown', rootKeydown);
+
+				items = dom = root = t.focus = itemFocussed = itemBlurred = rootKeydown = rootFocussed = null;
+				t.destroy = function() {};
+			};
+			
+			t.moveFocus = function(dir, evt) {
+				var idx = -1, controls = t.controls, newFocus;
+
+				if (!focussedId)
+					return;
+
+				each(items, function(item, index) {
+					if (item.id === focussedId) {
+						idx = index;
+						return false;
+					}
+				});
+
+				idx += dir;
+				if (idx < 0) {
+					idx = items.length - 1;
+				} else if (idx >= items.length) {
+					idx = 0;
+				}
+				
+				newFocus = items[idx];
+				dom.setAttrib(focussedId, 'tabindex', '-1');
+				dom.setAttrib(newFocus.id, 'tabindex', '0');
+				dom.get(newFocus.id).focus();
+
+				if (settings.actOnFocus) {
+					settings.onAction(newFocus.id);
+				}
+
+				if (evt)
+					Event.cancel(evt);
+			};
+			
+			rootKeydown = function(evt) {
+				var DOM_VK_LEFT = 37, DOM_VK_RIGHT = 39, DOM_VK_UP = 38, DOM_VK_DOWN = 40, DOM_VK_ESCAPE = 27, DOM_VK_ENTER = 14, DOM_VK_RETURN = 13, DOM_VK_SPACE = 32;
+				
+				switch (evt.keyCode) {
+					case DOM_VK_LEFT:
+						if (enableLeftRight) t.moveFocus(-1);
+						break;
+	
+					case DOM_VK_RIGHT:
+						if (enableLeftRight) t.moveFocus(1);
+						break;
+	
+					case DOM_VK_UP:
+						if (enableUpDown) t.moveFocus(-1);
+						break;
+
+					case DOM_VK_DOWN:
+						if (enableUpDown) t.moveFocus(1);
+						break;
+
+					case DOM_VK_ESCAPE:
+						if (settings.onCancel) {
+							settings.onCancel();
+							Event.cancel(evt);
+						}
+						break;
+
+					case DOM_VK_ENTER:
+					case DOM_VK_RETURN:
+					case DOM_VK_SPACE:
+						if (settings.onAction) {
+							settings.onAction(focussedId);
+							Event.cancel(evt);
+						}
+						break;
+				}
+			};
+
+			// Set up state and listeners for each item.
+			each(items, function(item, idx) {
+				var tabindex;
+
+				if (!item.id) {
+					item.id = dom.uniqueId('_mce_item_');
+				}
+
+				if (excludeFromTabOrder) {
+					dom.bind(item.id, 'blur', itemBlurred);
+					tabindex = '-1';
+				} else {
+					tabindex = (idx === 0 ? '0' : '-1');
+				}
+
+				dom.setAttrib(item.id, 'tabindex', tabindex);
+				dom.bind(dom.get(item.id), 'focus', itemFocussed);
+			});
+			
+			// Setup initial state for root element.
+			if (items[0]){
+				focussedId = items[0].id;
+			}
+
+			dom.setAttrib(root, 'tabindex', '-1');
+			
+			// Setup listeners for root element.
+			dom.bind(dom.get(root), 'focus', rootFocussed);
+			dom.bind(dom.get(root), 'keydown', rootKeydown);
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	// Shorten class names
+	var DOM = tinymce.DOM, is = tinymce.is;
+
+	tinymce.create('tinymce.ui.Control', {
+		Control : function(id, s, editor) {
+			this.id = id;
+			this.settings = s = s || {};
+			this.rendered = false;
+			this.onRender = new tinymce.util.Dispatcher(this);
+			this.classPrefix = '';
+			this.scope = s.scope || this;
+			this.disabled = 0;
+			this.active = 0;
+			this.editor = editor;
+		},
+		
+		setAriaProperty : function(property, value) {
+			var element = DOM.get(this.id + '_aria') || DOM.get(this.id);
+			if (element) {
+				DOM.setAttrib(element, 'aria-' + property, !!value);
+			}
+		},
+		
+		focus : function() {
+			DOM.get(this.id).focus();
+		},
+
+		setDisabled : function(s) {
+			if (s != this.disabled) {
+				this.setAriaProperty('disabled', s);
+
+				this.setState('Disabled', s);
+				this.setState('Enabled', !s);
+				this.disabled = s;
+			}
+		},
+
+		isDisabled : function() {
+			return this.disabled;
+		},
+
+		setActive : function(s) {
+			if (s != this.active) {
+				this.setState('Active', s);
+				this.active = s;
+				this.setAriaProperty('pressed', s);
+			}
+		},
+
+		isActive : function() {
+			return this.active;
+		},
+
+		setState : function(c, s) {
+			var n = DOM.get(this.id);
+
+			c = this.classPrefix + c;
+
+			if (s)
+				DOM.addClass(n, c);
+			else
+				DOM.removeClass(n, c);
+		},
+
+		isRendered : function() {
+			return this.rendered;
+		},
+
+		renderHTML : function() {
+		},
+
+		renderTo : function(n) {
+			DOM.setHTML(n, this.renderHTML());
+		},
+
+		postRender : function() {
+			var t = this, b;
+
+			// Set pending states
+			if (is(t.disabled)) {
+				b = t.disabled;
+				t.disabled = -1;
+				t.setDisabled(b);
+			}
+
+			if (is(t.active)) {
+				b = t.active;
+				t.active = -1;
+				t.setActive(b);
+			}
+		},
+
+		remove : function() {
+			DOM.remove(this.id);
+			this.destroy();
+		},
+
+		destroy : function() {
+			tinymce.dom.Event.clear(this.id);
+		}
+	});
+})(tinymce);
+tinymce.create('tinymce.ui.Container:tinymce.ui.Control', {
+	Container : function(id, s, editor) {
+		this.parent(id, s, editor);
+
+		this.controls = [];
+
+		this.lookup = {};
+	},
+
+	add : function(c) {
+		this.lookup[c.id] = c;
+		this.controls.push(c);
+
+		return c;
+	},
+
+	get : function(n) {
+		return this.lookup[n];
+	}
+});
+
+
+tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
+	Separator : function(id, s) {
+		this.parent(id, s);
+		this.classPrefix = 'mceSeparator';
+		this.setDisabled(true);
+	},
+
+	renderHTML : function() {
+		return tinymce.DOM.createHTML('span', {'class' : this.classPrefix, role : 'separator', 'aria-orientation' : 'vertical', tabindex : '-1'});
+	}
+});
+
+(function(tinymce) {
+	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;
+
+	tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control', {
+		MenuItem : function(id, s) {
+			this.parent(id, s);
+			this.classPrefix = 'mceMenuItem';
+		},
+
+		setSelected : function(s) {
+			this.setState('Selected', s);
+			this.setAriaProperty('checked', !!s);
+			this.selected = s;
+		},
+
+		isSelected : function() {
+			return this.selected;
+		},
+
+		postRender : function() {
+			var t = this;
+			
+			t.parent();
+
+			// Set pending state
+			if (is(t.selected))
+				t.setSelected(t.selected);
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;
+
+	tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem', {
+		Menu : function(id, s) {
+			var t = this;
+
+			t.parent(id, s);
+			t.items = {};
+			t.collapsed = false;
+			t.menuCount = 0;
+			t.onAddItem = new tinymce.util.Dispatcher(this);
+		},
+
+		expand : function(d) {
+			var t = this;
+
+			if (d) {
+				walk(t, function(o) {
+					if (o.expand)
+						o.expand();
+				}, 'items', t);
+			}
+
+			t.collapsed = false;
+		},
+
+		collapse : function(d) {
+			var t = this;
+
+			if (d) {
+				walk(t, function(o) {
+					if (o.collapse)
+						o.collapse();
+				}, 'items', t);
+			}
+
+			t.collapsed = true;
+		},
+
+		isCollapsed : function() {
+			return this.collapsed;
+		},
+
+		add : function(o) {
+			if (!o.settings)
+				o = new tinymce.ui.MenuItem(o.id || DOM.uniqueId(), o);
+
+			this.onAddItem.dispatch(this, o);
+
+			return this.items[o.id] = o;
+		},
+
+		addSeparator : function() {
+			return this.add({separator : true});
+		},
+
+		addMenu : function(o) {
+			if (!o.collapse)
+				o = this.createMenu(o);
+
+			this.menuCount++;
+
+			return this.add(o);
+		},
+
+		hasMenus : function() {
+			return this.menuCount !== 0;
+		},
+
+		remove : function(o) {
+			delete this.items[o.id];
+		},
+
+		removeAll : function() {
+			var t = this;
+
+			walk(t, function(o) {
+				if (o.removeAll)
+					o.removeAll();
+				else
+					o.remove();
+
+				o.destroy();
+			}, 'items', t);
+
+			t.items = {};
+		},
+
+		createMenu : function(o) {
+			var m = new tinymce.ui.Menu(o.id || DOM.uniqueId(), o);
+
+			m.onAddItem.add(this.onAddItem.dispatch, this.onAddItem);
+
+			return m;
+		}
+	});
+})(tinymce);
+(function(tinymce) {
+	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, Event = tinymce.dom.Event, Element = tinymce.dom.Element;
+
+	tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu', {
+		DropMenu : function(id, s) {
+			s = s || {};
+			s.container = s.container || DOM.doc.body;
+			s.offset_x = s.offset_x || 0;
+			s.offset_y = s.offset_y || 0;
+			s.vp_offset_x = s.vp_offset_x || 0;
+			s.vp_offset_y = s.vp_offset_y || 0;
+
+			if (is(s.icons) && !s.icons)
+				s['class'] += ' mceNoIcons';
+
+			this.parent(id, s);
+			this.onShowMenu = new tinymce.util.Dispatcher(this);
+			this.onHideMenu = new tinymce.util.Dispatcher(this);
+			this.classPrefix = 'mceMenu';
+		},
+
+		createMenu : function(s) {
+			var t = this, cs = t.settings, m;
+
+			s.container = s.container || cs.container;
+			s.parent = t;
+			s.constrain = s.constrain || cs.constrain;
+			s['class'] = s['class'] || cs['class'];
+			s.vp_offset_x = s.vp_offset_x || cs.vp_offset_x;
+			s.vp_offset_y = s.vp_offset_y || cs.vp_offset_y;
+			s.keyboard_focus = cs.keyboard_focus;
+			m = new tinymce.ui.DropMenu(s.id || DOM.uniqueId(), s);
+
+			m.onAddItem.add(t.onAddItem.dispatch, t.onAddItem);
+
+			return m;
+		},
+		
+		focus : function() {
+			var t = this;
+			if (t.keyboardNav) {
+				t.keyboardNav.focus();
+			}
+		},
+
+		update : function() {
+			var t = this, s = t.settings, tb = DOM.get('menu_' + t.id + '_tbl'), co = DOM.get('menu_' + t.id + '_co'), tw, th;
+
+			tw = s.max_width ? Math.min(tb.clientWidth, s.max_width) : tb.clientWidth;
+			th = s.max_height ? Math.min(tb.clientHeight, s.max_height) : tb.clientHeight;
+
+			if (!DOM.boxModel)
+				t.element.setStyles({width : tw + 2, height : th + 2});
+			else
+				t.element.setStyles({width : tw, height : th});
+
+			if (s.max_width)
+				DOM.setStyle(co, 'width', tw);
+
+			if (s.max_height) {
+				DOM.setStyle(co, 'height', th);
+
+				if (tb.clientHeight < s.max_height)
+					DOM.setStyle(co, 'overflow', 'hidden');
+			}
+		},
+
+		showMenu : function(x, y, px) {
+			var t = this, s = t.settings, co, vp = DOM.getViewPort(), w, h, mx, my, ot = 2, dm, tb, cp = t.classPrefix;
+
+			t.collapse(1);
+
+			if (t.isMenuVisible)
+				return;
+
+			if (!t.rendered) {
+				co = DOM.add(t.settings.container, t.renderNode());
+
+				each(t.items, function(o) {
+					o.postRender();
+				});
+
+				t.element = new Element('menu_' + t.id, {blocker : 1, container : s.container});
+			} else
+				co = DOM.get('menu_' + t.id);
+
+			// Move layer out of sight unless it's Opera since it scrolls to top of page due to an bug
+			if (!tinymce.isOpera)
+				DOM.setStyles(co, {left : -0xFFFF , top : -0xFFFF});
+
+			DOM.show(co);
+			t.update();
+
+			x += s.offset_x || 0;
+			y += s.offset_y || 0;
+			vp.w -= 4;
+			vp.h -= 4;
+
+			// Move inside viewport if not submenu
+			if (s.constrain) {
+				w = co.clientWidth - ot;
+				h = co.clientHeight - ot;
+				mx = vp.x + vp.w;
+				my = vp.y + vp.h;
+
+				if ((x + s.vp_offset_x + w) > mx)
+					x = px ? px - w : Math.max(0, (mx - s.vp_offset_x) - w);
+
+				if ((y + s.vp_offset_y + h) > my)
+					y = Math.max(0, (my - s.vp_offset_y) - h);
+			}
+
+			DOM.setStyles(co, {left : x , top : y});
+			t.element.update();
+
+			t.isMenuVisible = 1;
+			t.mouseClickFunc = Event.add(co, 'click', function(e) {
+				var m;
+
+				e = e.target;
+
+				if (e && (e = DOM.getParent(e, 'tr')) && !DOM.hasClass(e, cp + 'ItemSub')) {
+					m = t.items[e.id];
+
+					if (m.isDisabled())
+						return;
+
+					dm = t;
+
+					while (dm) {
+						if (dm.hideMenu)
+							dm.hideMenu();
+
+						dm = dm.settings.parent;
+					}
+
+					if (m.settings.onclick)
+						m.settings.onclick(e);
+
+					return false; // Cancel to fix onbeforeunload problem
+				}
+			});
+
+			if (t.hasMenus()) {
+				t.mouseOverFunc = Event.add(co, 'mouseover', function(e) {
+					var m, r, mi;
+
+					e = e.target;
+					if (e && (e = DOM.getParent(e, 'tr'))) {
+						m = t.items[e.id];
+
+						if (t.lastMenu)
+							t.lastMenu.collapse(1);
+
+						if (m.isDisabled())
+							return;
+
+						if (e && DOM.hasClass(e, cp + 'ItemSub')) {
+							//p = DOM.getPos(s.container);
+							r = DOM.getRect(e);
+							m.showMenu((r.x + r.w - ot), r.y - ot, r.x);
+							t.lastMenu = m;
+							DOM.addClass(DOM.get(m.id).firstChild, cp + 'ItemActive');
+						}
+					}
+				});
+			}
+			
+			Event.add(co, 'keydown', t._keyHandler, t);
+
+			t.onShowMenu.dispatch(t);
+
+			if (s.keyboard_focus) { 
+				t._setupKeyboardNav(); 
+			}
+		},
+
+		hideMenu : function(c) {
+			var t = this, co = DOM.get('menu_' + t.id), e;
+
+			if (!t.isMenuVisible)
+				return;
+
+			if (t.keyboardNav) t.keyboardNav.destroy();
+			Event.remove(co, 'mouseover', t.mouseOverFunc);
+			Event.remove(co, 'click', t.mouseClickFunc);
+			Event.remove(co, 'keydown', t._keyHandler);
+			DOM.hide(co);
+			t.isMenuVisible = 0;
+
+			if (!c)
+				t.collapse(1);
+
+			if (t.element)
+				t.element.hide();
+
+			if (e = DOM.get(t.id))
+				DOM.removeClass(e.firstChild, t.classPrefix + 'ItemActive');
+
+			t.onHideMenu.dispatch(t);
+		},
+
+		add : function(o) {
+			var t = this, co;
+
+			o = t.parent(o);
+
+			if (t.isRendered && (co = DOM.get('menu_' + t.id)))
+				t._add(DOM.select('tbody', co)[0], o);
+
+			return o;
+		},
+
+		collapse : function(d) {
+			this.parent(d);
+			this.hideMenu(1);
+		},
+
+		remove : function(o) {
+			DOM.remove(o.id);
+			this.destroy();
+
+			return this.parent(o);
+		},
+
+		destroy : function() {
+			var t = this, co = DOM.get('menu_' + t.id);
+
+			if (t.keyboardNav) t.keyboardNav.destroy();
+			Event.remove(co, 'mouseover', t.mouseOverFunc);
+			Event.remove(DOM.select('a', co), 'focus', t.mouseOverFunc);
+			Event.remove(co, 'click', t.mouseClickFunc);
+			Event.remove(co, 'keydown', t._keyHandler);
+
+			if (t.element)
+				t.element.remove();
+
+			DOM.remove(co);
+		},
+
+		renderNode : function() {
+			var t = this, s = t.settings, n, tb, co, w;
+
+			w = DOM.create('div', {role: 'listbox', id : 'menu_' + t.id, 'class' : s['class'], 'style' : 'position:absolute;left:0;top:0;z-index:200000;outline:0'});
+			if (t.settings.parent) {
+				DOM.setAttrib(w, 'aria-parent', 'menu_' + t.settings.parent.id);
+			}
+			co = DOM.add(w, 'div', {role: 'presentation', id : 'menu_' + t.id + '_co', 'class' : t.classPrefix + (s['class'] ? ' ' + s['class'] : '')});
+			t.element = new Element('menu_' + t.id, {blocker : 1, container : s.container});
+
+			if (s.menu_line)
+				DOM.add(co, 'span', {'class' : t.classPrefix + 'Line'});
+
+//			n = DOM.add(co, 'div', {id : 'menu_' + t.id + '_co', 'class' : 'mceMenuContainer'});
+			n = DOM.add(co, 'table', {role: 'presentation', id : 'menu_' + t.id + '_tbl', border : 0, cellPadding : 0, cellSpacing : 0});
+			tb = DOM.add(n, 'tbody');
+
+			each(t.items, function(o) {
+				t._add(tb, o);
+			});
+
+			t.rendered = true;
+
+			return w;
+		},
+
+		// Internal functions
+		_setupKeyboardNav : function(){
+			var contextMenu, menuItems, t=this; 
+			contextMenu = DOM.get('menu_' + t.id);
+			menuItems = DOM.select('a[role=option]', 'menu_' + t.id);
+			menuItems.splice(0,0,contextMenu);
+			t.keyboardNav = new tinymce.ui.KeyboardNavigation({
+				root: 'menu_' + t.id,
+				items: menuItems,
+				onCancel: function() {
+					t.hideMenu();
+				},
+				enableUpDown: true
+			});
+			contextMenu.focus();
+		},
+
+		_keyHandler : function(evt) {
+			var t = this, e;
+			switch (evt.keyCode) {
+				case 37: // Left
+					if (t.settings.parent) {
+						t.hideMenu();
+						t.settings.parent.focus();
+						Event.cancel(evt);
+					}
+					break;
+				case 39: // Right
+					if (t.mouseOverFunc)
+						t.mouseOverFunc(evt);
+					break;
+			}
+		},
+
+		_add : function(tb, o) {
+			var n, s = o.settings, a, ro, it, cp = this.classPrefix, ic;
+
+			if (s.separator) {
+				ro = DOM.add(tb, 'tr', {id : o.id, 'class' : cp + 'ItemSeparator'});
+				DOM.add(ro, 'td', {'class' : cp + 'ItemSeparator'});
+
+				if (n = ro.previousSibling)
+					DOM.addClass(n, 'mceLast');
+
+				return;
+			}
+
+			n = ro = DOM.add(tb, 'tr', {id : o.id, 'class' : cp + 'Item ' + cp + 'ItemEnabled'});
+			n = it = DOM.add(n, s.titleItem ? 'th' : 'td');
+			n = a = DOM.add(n, 'a', {id: o.id + '_aria',  role: s.titleItem ? 'presentation' : 'option', href : 'javascript:;', onclick : "return false;", onmousedown : 'return false;'});
+
+			if (s.parent) {
+				DOM.setAttrib(a, 'aria-haspopup', 'true');
+				DOM.setAttrib(a, 'aria-owns', 'menu_' + o.id);
+			}
+
+			DOM.addClass(it, s['class']);
+//			n = DOM.add(n, 'span', {'class' : 'item'});
+
+			ic = DOM.add(n, 'span', {'class' : 'mceIcon' + (s.icon ? ' mce_' + s.icon : '')});
+
+			if (s.icon_src)
+				DOM.add(ic, 'img', {src : s.icon_src});
+
+			n = DOM.add(n, s.element || 'span', {'class' : 'mceText', title : o.settings.title}, o.settings.title);
+
+			if (o.settings.style) {
+				if (typeof o.settings.style == "function")
+					o.settings.style = o.settings.style();
+
+				DOM.setAttrib(n, 'style', o.settings.style);
+			}
+
+			if (tb.childNodes.length == 1)
+				DOM.addClass(ro, 'mceFirst');
+
+			if ((n = ro.previousSibling) && DOM.hasClass(n, cp + 'ItemSeparator'))
+				DOM.addClass(ro, 'mceFirst');
+
+			if (o.collapse)
+				DOM.addClass(ro, cp + 'ItemSub');
+
+			if (n = ro.previousSibling)
+				DOM.removeClass(n, 'mceLast');
+
+			DOM.addClass(ro, 'mceLast');
+		}
+	});
+})(tinymce);
+(function(tinymce) {
+	var DOM = tinymce.DOM;
+
+	tinymce.create('tinymce.ui.Button:tinymce.ui.Control', {
+		Button : function(id, s, ed) {
+			this.parent(id, s, ed);
+			this.classPrefix = 'mceButton';
+		},
+
+		renderHTML : function() {
+			var cp = this.classPrefix, s = this.settings, h, l;
+
+			l = DOM.encode(s.label || '');
+			h = '<a role="button" id="' + this.id + '" href="javascript:;" class="' + cp + ' ' + cp + 'Enabled ' + s['class'] + (l ? ' ' + cp + 'Labeled' : '') +'" onmousedown="return false;" onclick="return false;" aria-labelledby="' + this.id + '_voice" title="' + DOM.encode(s.title) + '">';
+			if (s.image && !(this.editor  &&this.editor.forcedHighContrastMode) )
+				h += '<img class="mceIcon" src="' + s.image + '" alt="' + DOM.encode(s.title) + '" />' + l;
+			else
+				h += '<span class="mceIcon ' + s['class'] + '"></span>' + (l ? '<span class="' + cp + 'Label">' + l + '</span>' : '');
+
+			h += '<span class="mceVoiceLabel mceIconOnly" style="display: none;" id="' + this.id + '_voice">' + s.title + '</span>'; 
+			h += '</a>';
+			return h;
+		},
+
+		postRender : function() {
+			var t = this, s = t.settings, imgBookmark;
+
+			// In IE a large image that occupies the entire editor area will be deselected when a button is clicked, so
+			// need to keep the selection in case the selection is lost
+			if (tinymce.isIE && t.editor) {
+				tinymce.dom.Event.add(t.id, 'mousedown', function(e) {
+					var nodeName = t.editor.selection.getNode().nodeName;
+					imgBookmark = nodeName === 'IMG' ? t.editor.selection.getBookmark() : null;
+				});
+			}
+			tinymce.dom.Event.add(t.id, 'click', function(e) {
+				if (!t.isDisabled()) {
+					// restore the selection in case the selection is lost in IE
+					if (tinymce.isIE && t.editor && imgBookmark !== null) {
+						t.editor.selection.moveToBookmark(imgBookmark);
+					}
+					return s.onclick.call(s.scope, e);
+				}
+			});
+			tinymce.dom.Event.add(t.id, 'keyup', function(e) {
+				if (!t.isDisabled() && e.keyCode==tinymce.VK.SPACEBAR)
+					return s.onclick.call(s.scope, e);
+			});
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;
+
+	tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control', {
+		ListBox : function(id, s, ed) {
+			var t = this;
+
+			t.parent(id, s, ed);
+
+			t.items = [];
+
+			t.onChange = new Dispatcher(t);
+
+			t.onPostRender = new Dispatcher(t);
+
+			t.onAdd = new Dispatcher(t);
+
+			t.onRenderMenu = new tinymce.util.Dispatcher(this);
+
+			t.classPrefix = 'mceListBox';
+			t.marked = {};
+		},
+
+		select : function(va) {
+			var t = this, fv, f;
+
+			t.marked = {};
+
+			if (va == undefined)
+				return t.selectByIndex(-1);
+
+			// Is string or number make function selector
+			if (va && typeof(va)=="function")
+				f = va;
+			else {
+				f = function(v) {
+					return v == va;
+				};
+			}
+
+			// Do we need to do something?
+			if (va != t.selectedValue) {
+				// Find item
+				each(t.items, function(o, i) {
+					if (f(o.value)) {
+						fv = 1;
+						t.selectByIndex(i);
+						return false;
+					}
+				});
+
+				if (!fv)
+					t.selectByIndex(-1);
+			}
+		},
+
+		selectByIndex : function(idx) {
+			var t = this, e, o, label;
+
+			t.marked = {};
+
+			if (idx != t.selectedIndex) {
+				e = DOM.get(t.id + '_text');
+				label = DOM.get(t.id + '_voiceDesc');
+				o = t.items[idx];
+
+				if (o) {
+					t.selectedValue = o.value;
+					t.selectedIndex = idx;
+					DOM.setHTML(e, DOM.encode(o.title));
+					DOM.setHTML(label, t.settings.title + " - " + o.title);
+					DOM.removeClass(e, 'mceTitle');
+					DOM.setAttrib(t.id, 'aria-valuenow', o.title);
+				} else {
+					DOM.setHTML(e, DOM.encode(t.settings.title));
+					DOM.setHTML(label, DOM.encode(t.settings.title));
+					DOM.addClass(e, 'mceTitle');
+					t.selectedValue = t.selectedIndex = null;
+					DOM.setAttrib(t.id, 'aria-valuenow', t.settings.title);
+				}
+				e = 0;
+			}
+		},
+
+		mark : function(value) {
+			this.marked[value] = true;
+		},
+
+		add : function(n, v, o) {
+			var t = this;
+
+			o = o || {};
+			o = tinymce.extend(o, {
+				title : n,
+				value : v
+			});
+
+			t.items.push(o);
+			t.onAdd.dispatch(t, o);
+		},
+
+		getLength : function() {
+			return this.items.length;
+		},
+
+		renderHTML : function() {
+			var h = '', t = this, s = t.settings, cp = t.classPrefix;
+
+			h = '<span role="listbox" aria-haspopup="true" aria-labelledby="' + t.id +'_voiceDesc" aria-describedby="' + t.id + '_voiceDesc"><table role="presentation" tabindex="0" id="' + t.id + '" cellpadding="0" cellspacing="0" class="' + cp + ' ' + cp + 'Enabled' + (s['class'] ? (' ' + s['class']) : '') + '"><tbody><tr>';
+			h += '<td>' + DOM.createHTML('span', {id: t.id + '_voiceDesc', 'class': 'voiceLabel', style:'display:none;'}, t.settings.title); 
+			h += DOM.createHTML('a', {id : t.id + '_text', tabindex : -1, href : 'javascript:;', 'class' : 'mceText', onclick : "return false;", onmousedown : 'return false;'}, DOM.encode(t.settings.title)) + '</td>';
+			h += '<td>' + DOM.createHTML('a', {id : t.id + '_open', tabindex : -1, href : 'javascript:;', 'class' : 'mceOpen', onclick : "return false;", onmousedown : 'return false;'}, '<span><span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span></span>') + '</td>';
+			h += '</tr></tbody></table></span>';
+
+			return h;
+		},
+
+		showMenu : function() {
+			var t = this, p2, e = DOM.get(this.id), m;
+
+			if (t.isDisabled() || t.items.length == 0)
+				return;
+
+			if (t.menu && t.menu.isMenuVisible)
+				return t.hideMenu();
+
+			if (!t.isMenuRendered) {
+				t.renderMenu();
+				t.isMenuRendered = true;
+			}
+
+			p2 = DOM.getPos(e);
+
+			m = t.menu;
+			m.settings.offset_x = p2.x;
+			m.settings.offset_y = p2.y;
+			m.settings.keyboard_focus = !tinymce.isOpera; // Opera is buggy when it comes to auto focus
+
+			// Select in menu
+			each(t.items, function(o) {
+				if (m.items[o.id]) {
+					m.items[o.id].setSelected(0);
+				}
+			});
+
+			each(t.items, function(o) {
+				if (m.items[o.id] && t.marked[o.value]) {
+					m.items[o.id].setSelected(1);
+				}
+
+				if (o.value === t.selectedValue) {
+					m.items[o.id].setSelected(1);
+				}
+			});
+
+			m.showMenu(0, e.clientHeight);
+
+			Event.add(DOM.doc, 'mousedown', t.hideMenu, t);
+			DOM.addClass(t.id, t.classPrefix + 'Selected');
+
+			//DOM.get(t.id + '_text').focus();
+		},
+
+		hideMenu : function(e) {
+			var t = this;
+
+			if (t.menu && t.menu.isMenuVisible) {
+				DOM.removeClass(t.id, t.classPrefix + 'Selected');
+
+				// Prevent double toogles by canceling the mouse click event to the button
+				if (e && e.type == "mousedown" && (e.target.id == t.id + '_text' || e.target.id == t.id + '_open'))
+					return;
+
+				if (!e || !DOM.getParent(e.target, '.mceMenu')) {
+					DOM.removeClass(t.id, t.classPrefix + 'Selected');
+					Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);
+					t.menu.hideMenu();
+				}
+			}
+		},
+
+		renderMenu : function() {
+			var t = this, m;
+
+			m = t.settings.control_manager.createDropMenu(t.id + '_menu', {
+				menu_line : 1,
+				'class' : t.classPrefix + 'Menu mceNoIcons',
+				max_width : 150,
+				max_height : 150
+			});
+
+			m.onHideMenu.add(function() {
+				t.hideMenu();
+				t.focus();
+			});
+
+			m.add({
+				title : t.settings.title,
+				'class' : 'mceMenuItemTitle',
+				onclick : function() {
+					if (t.settings.onselect('') !== false)
+						t.select(''); // Must be runned after
+				}
+			});
+
+			each(t.items, function(o) {
+				// No value then treat it as a title
+				if (o.value === undefined) {
+					m.add({
+						title : o.title,
+						role : "option",
+						'class' : 'mceMenuItemTitle',
+						onclick : function() {
+							if (t.settings.onselect('') !== false)
+								t.select(''); // Must be runned after
+						}
+					});
+				} else {
+					o.id = DOM.uniqueId();
+					o.role= "option";
+					o.onclick = function() {
+						if (t.settings.onselect(o.value) !== false)
+							t.select(o.value); // Must be runned after
+					};
+
+					m.add(o);
+				}
+			});
+
+			t.onRenderMenu.dispatch(t, m);
+			t.menu = m;
+		},
+
+		postRender : function() {
+			var t = this, cp = t.classPrefix;
+
+			Event.add(t.id, 'click', t.showMenu, t);
+			Event.add(t.id, 'keydown', function(evt) {
+				if (evt.keyCode == 32) { // Space
+					t.showMenu(evt);
+					Event.cancel(evt);
+				}
+			});
+			Event.add(t.id, 'focus', function() {
+				if (!t._focused) {
+					t.keyDownHandler = Event.add(t.id, 'keydown', function(e) {
+						if (e.keyCode == 40) {
+							t.showMenu();
+							Event.cancel(e);
+						}
+					});
+					t.keyPressHandler = Event.add(t.id, 'keypress', function(e) {
+						var v;
+						if (e.keyCode == 13) {
+							// Fake select on enter
+							v = t.selectedValue;
+							t.selectedValue = null; // Needs to be null to fake change
+							Event.cancel(e);
+							t.settings.onselect(v);
+						}
+					});
+				}
+
+				t._focused = 1;
+			});
+			Event.add(t.id, 'blur', function() {
+				Event.remove(t.id, 'keydown', t.keyDownHandler);
+				Event.remove(t.id, 'keypress', t.keyPressHandler);
+				t._focused = 0;
+			});
+
+			// Old IE doesn't have hover on all elements
+			if (tinymce.isIE6 || !DOM.boxModel) {
+				Event.add(t.id, 'mouseover', function() {
+					if (!DOM.hasClass(t.id, cp + 'Disabled'))
+						DOM.addClass(t.id, cp + 'Hover');
+				});
+
+				Event.add(t.id, 'mouseout', function() {
+					if (!DOM.hasClass(t.id, cp + 'Disabled'))
+						DOM.removeClass(t.id, cp + 'Hover');
+				});
+			}
+
+			t.onPostRender.dispatch(t, DOM.get(t.id));
+		},
+
+		destroy : function() {
+			this.parent();
+
+			Event.clear(this.id + '_text');
+			Event.clear(this.id + '_open');
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;
+
+	tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox', {
+		NativeListBox : function(id, s) {
+			this.parent(id, s);
+			this.classPrefix = 'mceNativeListBox';
+		},
+
+		setDisabled : function(s) {
+			DOM.get(this.id).disabled = s;
+			this.setAriaProperty('disabled', s);
+		},
+
+		isDisabled : function() {
+			return DOM.get(this.id).disabled;
+		},
+
+		select : function(va) {
+			var t = this, fv, f;
+
+			if (va == undefined)
+				return t.selectByIndex(-1);
+
+			// Is string or number make function selector
+			if (va && typeof(va)=="function")
+				f = va;
+			else {
+				f = function(v) {
+					return v == va;
+				};
+			}
+
+			// Do we need to do something?
+			if (va != t.selectedValue) {
+				// Find item
+				each(t.items, function(o, i) {
+					if (f(o.value)) {
+						fv = 1;
+						t.selectByIndex(i);
+						return false;
+					}
+				});
+
+				if (!fv)
+					t.selectByIndex(-1);
+			}
+		},
+
+		selectByIndex : function(idx) {
+			DOM.get(this.id).selectedIndex = idx + 1;
+			this.selectedValue = this.items[idx] ? this.items[idx].value : null;
+		},
+
+		add : function(n, v, a) {
+			var o, t = this;
+
+			a = a || {};
+			a.value = v;
+
+			if (t.isRendered())
+				DOM.add(DOM.get(this.id), 'option', a, n);
+
+			o = {
+				title : n,
+				value : v,
+				attribs : a
+			};
+
+			t.items.push(o);
+			t.onAdd.dispatch(t, o);
+		},
+
+		getLength : function() {
+			return this.items.length;
+		},
+
+		renderHTML : function() {
+			var h, t = this;
+
+			h = DOM.createHTML('option', {value : ''}, '-- ' + t.settings.title + ' --');
+
+			each(t.items, function(it) {
+				h += DOM.createHTML('option', {value : it.value}, it.title);
+			});
+
+			h = DOM.createHTML('select', {id : t.id, 'class' : 'mceNativeListBox', 'aria-labelledby': t.id + '_aria'}, h);
+			h += DOM.createHTML('span', {id : t.id + '_aria', 'style': 'display: none'}, t.settings.title);
+			return h;
+		},
+
+		postRender : function() {
+			var t = this, ch, changeListenerAdded = true;
+
+			t.rendered = true;
+
+			function onChange(e) {
+				var v = t.items[e.target.selectedIndex - 1];
+
+				if (v && (v = v.value)) {
+					t.onChange.dispatch(t, v);
+
+					if (t.settings.onselect)
+						t.settings.onselect(v);
+				}
+			};
+
+			Event.add(t.id, 'change', onChange);
+
+			// Accessibility keyhandler
+			Event.add(t.id, 'keydown', function(e) {
+				var bf;
+
+				Event.remove(t.id, 'change', ch);
+				changeListenerAdded = false;
+
+				bf = Event.add(t.id, 'blur', function() {
+					if (changeListenerAdded) return;
+					changeListenerAdded = true;
+					Event.add(t.id, 'change', onChange);
+					Event.remove(t.id, 'blur', bf);
+				});
+
+				//prevent default left and right keys on chrome - so that the keyboard navigation is used.
+				if (tinymce.isWebKit && (e.keyCode==37 ||e.keyCode==39)) {
+					return Event.prevent(e);
+				}
+				
+				if (e.keyCode == 13 || e.keyCode == 32) {
+					onChange(e);
+					return Event.cancel(e);
+				}
+			});
+
+			t.onPostRender.dispatch(t, DOM.get(t.id));
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;
+
+	tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button', {
+		MenuButton : function(id, s, ed) {
+			this.parent(id, s, ed);
+
+			this.onRenderMenu = new tinymce.util.Dispatcher(this);
+
+			s.menu_container = s.menu_container || DOM.doc.body;
+		},
+
+		showMenu : function() {
+			var t = this, p1, p2, e = DOM.get(t.id), m;
+
+			if (t.isDisabled())
+				return;
+
+			if (!t.isMenuRendered) {
+				t.renderMenu();
+				t.isMenuRendered = true;
+			}
+
+			if (t.isMenuVisible)
+				return t.hideMenu();
+
+			p1 = DOM.getPos(t.settings.menu_container);
+			p2 = DOM.getPos(e);
+
+			m = t.menu;
+			m.settings.offset_x = p2.x;
+			m.settings.offset_y = p2.y;
+			m.settings.vp_offset_x = p2.x;
+			m.settings.vp_offset_y = p2.y;
+			m.settings.keyboard_focus = t._focused;
+			m.showMenu(0, e.clientHeight);
+
+			Event.add(DOM.doc, 'mousedown', t.hideMenu, t);
+			t.setState('Selected', 1);
+
+			t.isMenuVisible = 1;
+		},
+
+		renderMenu : function() {
+			var t = this, m;
+
+			m = t.settings.control_manager.createDropMenu(t.id + '_menu', {
+				menu_line : 1,
+				'class' : this.classPrefix + 'Menu',
+				icons : t.settings.icons
+			});
+
+			m.onHideMenu.add(function() {
+				t.hideMenu();
+				t.focus();
+			});
+
+			t.onRenderMenu.dispatch(t, m);
+			t.menu = m;
+		},
+
+		hideMenu : function(e) {
+			var t = this;
+
+			// Prevent double toogles by canceling the mouse click event to the button
+			if (e && e.type == "mousedown" && DOM.getParent(e.target, function(e) {return e.id === t.id || e.id === t.id + '_open';}))
+				return;
+
+			if (!e || !DOM.getParent(e.target, '.mceMenu')) {
+				t.setState('Selected', 0);
+				Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);
+				if (t.menu)
+					t.menu.hideMenu();
+			}
+
+			t.isMenuVisible = 0;
+		},
+
+		postRender : function() {
+			var t = this, s = t.settings;
+
+			Event.add(t.id, 'click', function() {
+				if (!t.isDisabled()) {
+					if (s.onclick)
+						s.onclick(t.value);
+
+					t.showMenu();
+				}
+			});
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;
+
+	tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton', {
+		SplitButton : function(id, s, ed) {
+			this.parent(id, s, ed);
+			this.classPrefix = 'mceSplitButton';
+		},
+
+		renderHTML : function() {
+			var h, t = this, s = t.settings, h1;
+
+			h = '<tbody><tr>';
+
+			if (s.image)
+				h1 = DOM.createHTML('img ', {src : s.image, role: 'presentation', 'class' : 'mceAction ' + s['class']});
+			else
+				h1 = DOM.createHTML('span', {'class' : 'mceAction ' + s['class']}, '');
+
+			h1 += DOM.createHTML('span', {'class': 'mceVoiceLabel mceIconOnly', id: t.id + '_voice', style: 'display:none;'}, s.title);
+			h += '<td >' + DOM.createHTML('a', {role: 'button', id : t.id + '_action', tabindex: '-1', href : 'javascript:;', 'class' : 'mceAction ' + s['class'], onclick : "return false;", onmousedown : 'return false;', title : s.title}, h1) + '</td>';
+	
+			h1 = DOM.createHTML('span', {'class' : 'mceOpen ' + s['class']}, '<span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span>');
+			h += '<td >' + DOM.createHTML('a', {role: 'button', id : t.id + '_open', tabindex: '-1', href : 'javascript:;', 'class' : 'mceOpen ' + s['class'], onclick : "return false;", onmousedown : 'return false;', title : s.title}, h1) + '</td>';
+
+			h += '</tr></tbody>';
+			h = DOM.createHTML('table', { role: 'presentation',   'class' : 'mceSplitButton mceSplitButtonEnabled ' + s['class'], cellpadding : '0', cellspacing : '0', title : s.title}, h);
+			return DOM.createHTML('div', {id : t.id, role: 'button', tabindex: '0', 'aria-labelledby': t.id + '_voice', 'aria-haspopup': 'true'}, h);
+		},
+
+		postRender : function() {
+			var t = this, s = t.settings, activate;
+
+			if (s.onclick) {
+				activate = function(evt) {
+					if (!t.isDisabled()) {
+						s.onclick(t.value);
+						Event.cancel(evt);
+					}
+				};
+				Event.add(t.id + '_action', 'click', activate);
+				Event.add(t.id, ['click', 'keydown'], function(evt) {
+					var DOM_VK_SPACE = 32, DOM_VK_ENTER = 14, DOM_VK_RETURN = 13, DOM_VK_UP = 38, DOM_VK_DOWN = 40;
+					if ((evt.keyCode === 32 || evt.keyCode === 13 || evt.keyCode === 14) && !evt.altKey && !evt.ctrlKey && !evt.metaKey) {
+						activate();
+						Event.cancel(evt);
+					} else if (evt.type === 'click' || evt.keyCode === DOM_VK_DOWN) {
+						t.showMenu();
+						Event.cancel(evt);
+					}
+				});
+			}
+
+			Event.add(t.id + '_open', 'click', function (evt) {
+				t.showMenu();
+				Event.cancel(evt);
+			});
+			Event.add([t.id, t.id + '_open'], 'focus', function() {t._focused = 1;});
+			Event.add([t.id, t.id + '_open'], 'blur', function() {t._focused = 0;});
+
+			// Old IE doesn't have hover on all elements
+			if (tinymce.isIE6 || !DOM.boxModel) {
+				Event.add(t.id, 'mouseover', function() {
+					if (!DOM.hasClass(t.id, 'mceSplitButtonDisabled'))
+						DOM.addClass(t.id, 'mceSplitButtonHover');
+				});
+
+				Event.add(t.id, 'mouseout', function() {
+					if (!DOM.hasClass(t.id, 'mceSplitButtonDisabled'))
+						DOM.removeClass(t.id, 'mceSplitButtonHover');
+				});
+			}
+		},
+
+		destroy : function() {
+			this.parent();
+
+			Event.clear(this.id + '_action');
+			Event.clear(this.id + '_open');
+			Event.clear(this.id);
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, is = tinymce.is, each = tinymce.each;
+
+	tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton', {
+		ColorSplitButton : function(id, s, ed) {
+			var t = this;
+
+			t.parent(id, s, ed);
+
+			t.settings = s = tinymce.extend({
+				colors : '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',
+				grid_width : 8,
+				default_color : '#888888'
+			}, t.settings);
+
+			t.onShowMenu = new tinymce.util.Dispatcher(t);
+
+			t.onHideMenu = new tinymce.util.Dispatcher(t);
+
+			t.value = s.default_color;
+		},
+
+		showMenu : function() {
+			var t = this, r, p, e, p2;
+
+			if (t.isDisabled())
+				return;
+
+			if (!t.isMenuRendered) {
+				t.renderMenu();
+				t.isMenuRendered = true;
+			}
+
+			if (t.isMenuVisible)
+				return t.hideMenu();
+
+			e = DOM.get(t.id);
+			DOM.show(t.id + '_menu');
+			DOM.addClass(e, 'mceSplitButtonSelected');
+			p2 = DOM.getPos(e);
+			DOM.setStyles(t.id + '_menu', {
+				left : p2.x,
+				top : p2.y + e.clientHeight,
+				zIndex : 200000
+			});
+			e = 0;
+
+			Event.add(DOM.doc, 'mousedown', t.hideMenu, t);
+			t.onShowMenu.dispatch(t);
+
+			if (t._focused) {
+				t._keyHandler = Event.add(t.id + '_menu', 'keydown', function(e) {
+					if (e.keyCode == 27)
+						t.hideMenu();
+				});
+
+				DOM.select('a', t.id + '_menu')[0].focus(); // Select first link
+			}
+
+			t.isMenuVisible = 1;
+		},
+
+		hideMenu : function(e) {
+			var t = this;
+
+			if (t.isMenuVisible) {
+				// Prevent double toogles by canceling the mouse click event to the button
+				if (e && e.type == "mousedown" && DOM.getParent(e.target, function(e) {return e.id === t.id + '_open';}))
+					return;
+
+				if (!e || !DOM.getParent(e.target, '.mceSplitButtonMenu')) {
+					DOM.removeClass(t.id, 'mceSplitButtonSelected');
+					Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);
+					Event.remove(t.id + '_menu', 'keydown', t._keyHandler);
+					DOM.hide(t.id + '_menu');
+				}
+
+				t.isMenuVisible = 0;
+				t.onHideMenu.dispatch();
+			}
+		},
+
+		renderMenu : function() {
+			var t = this, m, i = 0, s = t.settings, n, tb, tr, w, context;
+
+			w = DOM.add(s.menu_container, 'div', {role: 'listbox', id : t.id + '_menu', 'class' : s['menu_class'] + ' ' + s['class'], style : 'position:absolute;left:0;top:-1000px;'});
+			m = DOM.add(w, 'div', {'class' : s['class'] + ' mceSplitButtonMenu'});
+			DOM.add(m, 'span', {'class' : 'mceMenuLine'});
+
+			n = DOM.add(m, 'table', {role: 'presentation', 'class' : 'mceColorSplitMenu'});
+			tb = DOM.add(n, 'tbody');
+
+			// Generate color grid
+			i = 0;
+			each(is(s.colors, 'array') ? s.colors : s.colors.split(','), function(c) {
+				c = c.replace(/^#/, '');
+
+				if (!i--) {
+					tr = DOM.add(tb, 'tr');
+					i = s.grid_width - 1;
+				}
+
+				n = DOM.add(tr, 'td');
+				var settings = {
+					href : 'javascript:;',
+					style : {
+						backgroundColor : '#' + c
+					},
+					'title': t.editor.getLang('colors.' + c, c),
+					'data-mce-color' : '#' + c
+				};
+
+				// adding a proper ARIA role = button causes JAWS to read things incorrectly on IE.
+				if (!tinymce.isIE ) {
+					settings['role']= 'option';
+				}
+
+				n = DOM.add(n, 'a', settings);
+
+				if (t.editor.forcedHighContrastMode) {
+					n = DOM.add(n, 'canvas', { width: 16, height: 16, 'aria-hidden': 'true' });
+					if (n.getContext && (context = n.getContext("2d"))) {
+						context.fillStyle = '#' + c;
+						context.fillRect(0, 0, 16, 16);
+					} else {
+						// No point leaving a canvas element around if it's not supported for drawing on anyway.
+						DOM.remove(n);
+					}
+				}
+			});
+
+			if (s.more_colors_func) {
+				n = DOM.add(tb, 'tr');
+				n = DOM.add(n, 'td', {colspan : s.grid_width, 'class' : 'mceMoreColors'});
+				n = DOM.add(n, 'a', {role: 'option', id : t.id + '_more', href : 'javascript:;', onclick : 'return false;', 'class' : 'mceMoreColors'}, s.more_colors_title);
+
+				Event.add(n, 'click', function(e) {
+					s.more_colors_func.call(s.more_colors_scope || this);
+					return Event.cancel(e); // Cancel to fix onbeforeunload problem
+				});
+			}
+
+			DOM.addClass(m, 'mceColorSplitMenu');
+			
+			new tinymce.ui.KeyboardNavigation({
+				root: t.id + '_menu',
+				items: DOM.select('a', t.id + '_menu'),
+				onCancel: function() {
+					t.hideMenu();
+					t.focus();
+				}
+			});
+
+			// Prevent IE from scrolling and hindering click to occur #4019
+			Event.add(t.id + '_menu', 'mousedown', function(e) {return Event.cancel(e);});
+
+			Event.add(t.id + '_menu', 'click', function(e) {
+				var c;
+
+				e = DOM.getParent(e.target, 'a', tb);
+
+				if (e && e.nodeName.toLowerCase() == 'a' && (c = e.getAttribute('data-mce-color')))
+					t.setColor(c);
+
+				return false; // Prevent IE auto save warning
+			});
+
+			return w;
+		},
+
+		setColor : function(c) {
+			this.displayColor(c);
+			this.hideMenu();
+			this.settings.onselect(c);
+		},
+		
+		displayColor : function(c) {
+			var t = this;
+
+			DOM.setStyle(t.id + '_preview', 'backgroundColor', c);
+
+			t.value = c;
+		},
+
+		postRender : function() {
+			var t = this, id = t.id;
+
+			t.parent();
+			DOM.add(id + '_action', 'div', {id : id + '_preview', 'class' : 'mceColorPreview'});
+			DOM.setStyle(t.id + '_preview', 'backgroundColor', t.value);
+		},
+
+		destroy : function() {
+			this.parent();
+
+			Event.clear(this.id + '_menu');
+			Event.clear(this.id + '_more');
+			DOM.remove(this.id + '_menu');
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+// Shorten class names
+var dom = tinymce.DOM, each = tinymce.each, Event = tinymce.dom.Event;
+tinymce.create('tinymce.ui.ToolbarGroup:tinymce.ui.Container', {
+	renderHTML : function() {
+		var t = this, h = [], controls = t.controls, each = tinymce.each, settings = t.settings;
+
+		h.push('<div id="' + t.id + '" role="group" aria-labelledby="' + t.id + '_voice">');
+		//TODO: ACC test this out - adding a role = application for getting the landmarks working well.
+		h.push("<span role='application'>");
+		h.push('<span id="' + t.id + '_voice" class="mceVoiceLabel" style="display:none;">' + dom.encode(settings.name) + '</span>');
+		each(controls, function(toolbar) {
+			h.push(toolbar.renderHTML());
+		});
+		h.push("</span>");
+		h.push('</div>');
+
+		return h.join('');
+	},
+	
+	focus : function() {
+		var t = this;
+		dom.get(t.id).focus();
+	},
+	
+	postRender : function() {
+		var t = this, items = [];
+
+		each(t.controls, function(toolbar) {
+			each (toolbar.controls, function(control) {
+				if (control.id) {
+					items.push(control);
+				}
+			});
+		});
+
+		t.keyNav = new tinymce.ui.KeyboardNavigation({
+			root: t.id,
+			items: items,
+			onCancel: function() {
+				//Move focus if webkit so that navigation back will read the item.
+				if (tinymce.isWebKit) {
+					dom.get(t.editor.id+"_ifr").focus();
+				}
+				t.editor.focus();
+			},
+			excludeFromTabOrder: !t.settings.tab_focus_toolbar
+		});
+	},
+	
+	destroy : function() {
+		var self = this;
+
+		self.parent();
+		self.keyNav.destroy();
+		Event.clear(self.id);
+	}
+});
+})(tinymce);
+
+(function(tinymce) {
+// Shorten class names
+var dom = tinymce.DOM, each = tinymce.each;
+tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
+	renderHTML : function() {
+		var t = this, h = '', c, co, s = t.settings, i, pr, nx, cl;
+
+		cl = t.controls;
+		for (i=0; i<cl.length; i++) {
+			// Get current control, prev control, next control and if the control is a list box or not
+			co = cl[i];
+			pr = cl[i - 1];
+			nx = cl[i + 1];
+
+			// Add toolbar start
+			if (i === 0) {
+				c = 'mceToolbarStart';
+
+				if (co.Button)
+					c += ' mceToolbarStartButton';
+				else if (co.SplitButton)
+					c += ' mceToolbarStartSplitButton';
+				else if (co.ListBox)
+					c += ' mceToolbarStartListBox';
+
+				h += dom.createHTML('td', {'class' : c}, dom.createHTML('span', null, '<!-- IE -->'));
+			}
+
+			// Add toolbar end before list box and after the previous button
+			// This is to fix the o2k7 editor skins
+			if (pr && co.ListBox) {
+				if (pr.Button || pr.SplitButton)
+					h += dom.createHTML('td', {'class' : 'mceToolbarEnd'}, dom.createHTML('span', null, '<!-- IE -->'));
+			}
+
+			// Render control HTML
+
+			// IE 8 quick fix, needed to propertly generate a hit area for anchors
+			if (dom.stdMode)
+				h += '<td style="position: relative">' + co.renderHTML() + '</td>';
+			else
+				h += '<td>' + co.renderHTML() + '</td>';
+
+			// Add toolbar start after list box and before the next button
+			// This is to fix the o2k7 editor skins
+			if (nx && co.ListBox) {
+				if (nx.Button || nx.SplitButton)
+					h += dom.createHTML('td', {'class' : 'mceToolbarStart'}, dom.createHTML('span', null, '<!-- IE -->'));
+			}
+		}
+
+		c = 'mceToolbarEnd';
+
+		if (co.Button)
+			c += ' mceToolbarEndButton';
+		else if (co.SplitButton)
+			c += ' mceToolbarEndSplitButton';
+		else if (co.ListBox)
+			c += ' mceToolbarEndListBox';
+
+		h += dom.createHTML('td', {'class' : c}, dom.createHTML('span', null, '<!-- IE -->'));
+
+		return dom.createHTML('table', {id : t.id, 'class' : 'mceToolbar' + (s['class'] ? ' ' + s['class'] : ''), cellpadding : '0', cellspacing : '0', align : t.settings.align || '', role: 'presentation', tabindex: '-1'}, '<tbody><tr>' + h + '</tr></tbody>');
+	}
+});
+})(tinymce);
+
+(function(tinymce) {
+	var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each;
+
+	tinymce.create('tinymce.AddOnManager', {
+		AddOnManager : function() {
+			var self = this;
+
+			self.items = [];
+			self.urls = {};
+			self.lookup = {};
+			self.onAdd = new Dispatcher(self);
+		},
+
+		get : function(n) {
+			if (this.lookup[n]) {
+				return this.lookup[n].instance;
+			} else {
+				return undefined;
+			}
+		},
+
+		dependencies : function(n) {
+			var result;
+			if (this.lookup[n]) {
+				result = this.lookup[n].dependencies;
+			}
+			return result || [];
+		},
+
+		requireLangPack : function(n) {
+			var s = tinymce.settings;
+
+			if (s && s.language && s.language_load !== false)
+				tinymce.ScriptLoader.add(this.urls[n] + '/langs/' + s.language + '.js');
+		},
+
+		add : function(id, o, dependencies) {
+			this.items.push(o);
+			this.lookup[id] = {instance:o, dependencies:dependencies};
+			this.onAdd.dispatch(this, id, o);
+
+			return o;
+		},
+		createUrl: function(baseUrl, dep) {
+			if (typeof dep === "object") {
+				return dep
+			} else {
+				return {prefix: baseUrl.prefix, resource: dep, suffix: baseUrl.suffix};
+			}
+		},
+
+		addComponents: function(pluginName, scripts) {
+			var pluginUrl = this.urls[pluginName];
+			tinymce.each(scripts, function(script){
+				tinymce.ScriptLoader.add(pluginUrl+"/"+script);	
+			});
+		},
+
+		load : function(n, u, cb, s) {
+			var t = this, url = u;
+
+			function loadDependencies() {
+				var dependencies = t.dependencies(n);
+				tinymce.each(dependencies, function(dep) {
+					var newUrl = t.createUrl(u, dep);
+					t.load(newUrl.resource, newUrl, undefined, undefined);
+				});
+				if (cb) {
+					if (s) {
+						cb.call(s);
+					} else {
+						cb.call(tinymce.ScriptLoader);
+					}
+				}
+			}
+
+			if (t.urls[n])
+				return;
+			if (typeof u === "object")
+				url = u.prefix + u.resource + u.suffix;
+
+			if (url.indexOf('/') != 0 && url.indexOf('://') == -1)
+				url = tinymce.baseURL + '/' + url;
+
+			t.urls[n] = url.substring(0, url.lastIndexOf('/'));
+
+			if (t.lookup[n]) {
+				loadDependencies();
+			} else {
+				tinymce.ScriptLoader.add(url, loadDependencies, s);
+			}
+		}
+	});
+
+	// Create plugin and theme managers
+	tinymce.PluginManager = new tinymce.AddOnManager();
+	tinymce.ThemeManager = new tinymce.AddOnManager();
+}(tinymce));
+
+(function(tinymce) {
+	// Shorten names
+	var each = tinymce.each, extend = tinymce.extend,
+		DOM = tinymce.DOM, Event = tinymce.dom.Event,
+		ThemeManager = tinymce.ThemeManager, PluginManager = tinymce.PluginManager,
+		explode = tinymce.explode,
+		Dispatcher = tinymce.util.Dispatcher, undefined, instanceCounter = 0;
+
+	// Setup some URLs where the editor API is located and where the document is
+	tinymce.documentBaseURL = window.location.href.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, '');
+	if (!/[\/\\]$/.test(tinymce.documentBaseURL))
+		tinymce.documentBaseURL += '/';
+
+	tinymce.baseURL = new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);
+
+	tinymce.baseURI = new tinymce.util.URI(tinymce.baseURL);
+
+	// Add before unload listener
+	// This was required since IE was leaking memory if you added and removed beforeunload listeners
+	// with attachEvent/detatchEvent so this only adds one listener and instances can the attach to the onBeforeUnload event
+	tinymce.onBeforeUnload = new Dispatcher(tinymce);
+
+	// Must be on window or IE will leak if the editor is placed in frame or iframe
+	Event.add(window, 'beforeunload', function(e) {
+		tinymce.onBeforeUnload.dispatch(tinymce, e);
+	});
+
+	tinymce.onAddEditor = new Dispatcher(tinymce);
+
+	tinymce.onRemoveEditor = new Dispatcher(tinymce);
+
+	tinymce.EditorManager = extend(tinymce, {
+		editors : [],
+
+		i18n : {},
+
+		activeEditor : null,
+
+		init : function(s) {
+			var t = this, pl, sl = tinymce.ScriptLoader, e, el = [], ed;
+
+			function createId(elm) {
+				var id = elm.id;
+	
+				// Use element id, or unique name or generate a unique id
+				if (!id) {
+					id = elm.name;
+	
+					if (id && !DOM.get(id)) {
+						id = elm.name;
+					} else {
+						// Generate unique name
+						id = DOM.uniqueId();
+					}
+
+					elm.setAttribute('id', id);
+				}
+
+				return id;
+			};
+
+			function execCallback(se, n, s) {
+				var f = se[n];
+
+				if (!f)
+					return;
+
+				if (tinymce.is(f, 'string')) {
+					s = f.replace(/\.\w+$/, '');
+					s = s ? tinymce.resolve(s) : 0;
+					f = tinymce.resolve(f);
+				}
+
+				return f.apply(s || this, Array.prototype.slice.call(arguments, 2));
+			};
+
+			s = extend({
+				theme : "simple",
+				language : "en"
+			}, s);
+
+			t.settings = s;
+
+			// Legacy call
+			Event.bind(window, 'ready', function() {
+				var l, co;
+
+				execCallback(s, 'onpageload');
+
+				switch (s.mode) {
+					case "exact":
+						l = s.elements || '';
+
+						if(l.length > 0) {
+							each(explode(l), function(v) {
+								if (DOM.get(v)) {
+									ed = new tinymce.Editor(v, s);
+									el.push(ed);
+									ed.render(1);
+								} else {
+									each(document.forms, function(f) {
+										each(f.elements, function(e) {
+											if (e.name === v) {
+												v = 'mce_editor_' + instanceCounter++;
+												DOM.setAttrib(e, 'id', v);
+
+												ed = new tinymce.Editor(v, s);
+												el.push(ed);
+												ed.render(1);
+											}
+										});
+									});
+								}
+							});
+						}
+						break;
+
+					case "textareas":
+					case "specific_textareas":
+						function hasClass(n, c) {
+							return c.constructor === RegExp ? c.test(n.className) : DOM.hasClass(n, c);
+						};
+
+						each(DOM.select('textarea'), function(elm) {
+							if (s.editor_deselector && hasClass(elm, s.editor_deselector))
+								return;
+
+							if (!s.editor_selector || hasClass(elm, s.editor_selector)) {
+								ed = new tinymce.Editor(createId(elm), s);
+								el.push(ed);
+								ed.render(1);
+							}
+						});
+						break;
+					
+					default:
+						if (s.types) {
+							// Process type specific selector
+							each(s.types, function(type) {
+								each(DOM.select(type.selector), function(elm) {
+									var editor = new tinymce.Editor(createId(elm), tinymce.extend({}, s, type));
+									el.push(editor);
+									editor.render(1);
+								});
+							});
+						} else if (s.selector) {
+							// Process global selector
+							each(DOM.select(s.selector), function(elm) {
+								var editor = new tinymce.Editor(createId(elm), s);
+								el.push(editor);
+								editor.render(1);
+							});
+						}
+				}
+
+				// Call onInit when all editors are initialized
+				if (s.oninit) {
+					l = co = 0;
+
+					each(el, function(ed) {
+						co++;
+
+						if (!ed.initialized) {
+							// Wait for it
+							ed.onInit.add(function() {
+								l++;
+
+								// All done
+								if (l == co)
+									execCallback(s, 'oninit');
+							});
+						} else
+							l++;
+
+						// All done
+						if (l == co)
+							execCallback(s, 'oninit');					
+					});
+				}
+			});
+		},
+
+		get : function(id) {
+			if (id === undefined)
+				return this.editors;
+
+			return this.editors[id];
+		},
+
+		getInstanceById : function(id) {
+			return this.get(id);
+		},
+
+		add : function(editor) {
+			var self = this, editors = self.editors;
+
+			// Add named and index editor instance
+			editors[editor.id] = editor;
+			editors.push(editor);
+
+			self._setActive(editor);
+			self.onAddEditor.dispatch(self, editor);
+
+
+			return editor;
+		},
+
+		remove : function(editor) {
+			var t = this, i, editors = t.editors;
+
+			// Not in the collection
+			if (!editors[editor.id])
+				return null;
+
+			delete editors[editor.id];
+
+			for (i = 0; i < editors.length; i++) {
+				if (editors[i] == editor) {
+					editors.splice(i, 1);
+					break;
+				}
+			}
+
+			// Select another editor since the active one was removed
+			if (t.activeEditor == editor)
+				t._setActive(editors[0]);
+
+			editor.destroy();
+			t.onRemoveEditor.dispatch(t, editor);
+
+			return editor;
+		},
+
+		execCommand : function(c, u, v) {
+			var t = this, ed = t.get(v), w;
+
+			// Manager commands
+			switch (c) {
+				case "mceFocus":
+					ed.focus();
+					return true;
+
+				case "mceAddEditor":
+				case "mceAddControl":
+					if (!t.get(v))
+						new tinymce.Editor(v, t.settings).render();
+
+					return true;
+
+				case "mceAddFrameControl":
+					w = v.window;
+
+					// Add tinyMCE global instance and tinymce namespace to specified window
+					w.tinyMCE = tinyMCE;
+					w.tinymce = tinymce;
+
+					tinymce.DOM.doc = w.document;
+					tinymce.DOM.win = w;
+
+					ed = new tinymce.Editor(v.element_id, v);
+					ed.render();
+
+					// Fix IE memory leaks
+					if (tinymce.isIE) {
+						function clr() {
+							ed.destroy();
+							w.detachEvent('onunload', clr);
+							w = w.tinyMCE = w.tinymce = null; // IE leak
+						};
+
+						w.attachEvent('onunload', clr);
+					}
+
+					v.page_window = null;
+
+					return true;
+
+				case "mceRemoveEditor":
+				case "mceRemoveControl":
+					if (ed)
+						ed.remove();
+
+					return true;
+
+				case 'mceToggleEditor':
+					if (!ed) {
+						t.execCommand('mceAddControl', 0, v);
+						return true;
+					}
+
+					if (ed.isHidden())
+						ed.show();
+					else
+						ed.hide();
+
+					return true;
+			}
+
+			// Run command on active editor
+			if (t.activeEditor)
+				return t.activeEditor.execCommand(c, u, v);
+
+			return false;
+		},
+
+		execInstanceCommand : function(id, c, u, v) {
+			var ed = this.get(id);
+
+			if (ed)
+				return ed.execCommand(c, u, v);
+
+			return false;
+		},
+
+		triggerSave : function() {
+			each(this.editors, function(e) {
+				e.save();
+			});
+		},
+
+		addI18n : function(p, o) {
+			var lo, i18n = this.i18n;
+
+			if (!tinymce.is(p, 'string')) {
+				each(p, function(o, lc) {
+					each(o, function(o, g) {
+						each(o, function(o, k) {
+							if (g === 'common')
+								i18n[lc + '.' + k] = o;
+							else
+								i18n[lc + '.' + g + '.' + k] = o;
+						});
+					});
+				});
+			} else {
+				each(o, function(o, k) {
+					i18n[p + '.' + k] = o;
+				});
+			}
+		},
+
+		// Private methods
+
+		_setActive : function(editor) {
+			this.selectedInstance = this.activeEditor = editor;
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	// Shorten these names
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend,
+		Dispatcher = tinymce.util.Dispatcher, each = tinymce.each, isGecko = tinymce.isGecko,
+		isIE = tinymce.isIE, isWebKit = tinymce.isWebKit, is = tinymce.is,
+		ThemeManager = tinymce.ThemeManager, PluginManager = tinymce.PluginManager,
+		inArray = tinymce.inArray, grep = tinymce.grep, explode = tinymce.explode, VK = tinymce.VK;
+
+	tinymce.create('tinymce.Editor', {
+		Editor : function(id, s) {
+			var t = this;
+
+			t.id = t.editorId = id;
+
+			t.execCommands = {};
+			t.queryStateCommands = {};
+			t.queryValueCommands = {};
+
+			t.isNotDirty = false;
+
+			t.plugins = {};
+
+			// Add events to the editor
+			each([
+				'onPreInit',
+
+				'onBeforeRenderUI',
+
+				'onPostRender',
+
+				'onLoad',
+
+				'onInit',
+
+				'onRemove',
+
+				'onActivate',
+
+				'onDeactivate',
+
+				'onClick',
+
+				'onEvent',
+
+				'onMouseUp',
+
+				'onMouseDown',
+
+				'onDblClick',
+
+				'onKeyDown',
+
+				'onKeyUp',
+
+				'onKeyPress',
+
+				'onContextMenu',
+
+				'onSubmit',
+
+				'onReset',
+
+				'onPaste',
+
+				'onPreProcess',
+
+				'onPostProcess',
+
+				'onBeforeSetContent',
+
+				'onBeforeGetContent',
+
+				'onSetContent',
+
+				'onGetContent',
+
+				'onLoadContent',
+
+				'onSaveContent',
+
+				'onNodeChange',
+
+				'onChange',
+
+				'onBeforeExecCommand',
+
+				'onExecCommand',
+
+				'onUndo',
+
+				'onRedo',
+
+				'onVisualAid',
+
+				'onSetProgressState',
+
+				'onSetAttrib'
+			], function(e) {
+				t[e] = new Dispatcher(t);
+			});
+
+			t.settings = s = extend({
+				id : id,
+				language : 'en',
+				docs_language : 'en',
+				theme : 'simple',
+				skin : 'default',
+				delta_width : 0,
+				delta_height : 0,
+				popup_css : '',
+				plugins : '',
+				document_base_url : tinymce.documentBaseURL,
+				add_form_submit_trigger : 1,
+				submit_patch : 1,
+				add_unload_trigger : 1,
+				convert_urls : 1,
+				relative_urls : 1,
+				remove_script_host : 1,
+				table_inline_editing : 0,
+				object_resizing : 1,
+				cleanup : 1,
+				accessibility_focus : 1,
+				custom_shortcuts : 1,
+				custom_undo_redo_keyboard_shortcuts : 1,
+				custom_undo_redo_restore_selection : 1,
+				custom_undo_redo : 1,
+				doctype : tinymce.isIE6 ? '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' : '<!DOCTYPE>', // Use old doctype on IE 6 to avoid horizontal scroll
+				visual_table_class : 'mceItemTable',
+				visual : 1,
+				font_size_style_values : 'xx-small,x-small,small,medium,large,x-large,xx-large',
+				font_size_legacy_values : 'xx-small,small,medium,large,x-large,xx-large,300%', // See: http://www.w3.org/TR/CSS2/fonts.html#propdef-font-size
+				apply_source_formatting : 1,
+				directionality : 'ltr',
+				forced_root_block : 'p',
+				hidden_input : 1,
+				padd_empty_editor : 1,
+				render_ui : 1,
+				init_theme : 1,
+				force_p_newlines : 1,
+				indentation : '30px',
+				keep_styles : 1,
+				fix_table_elements : 1,
+				inline_styles : 1,
+				convert_fonts_to_spans : true,
+				indent : 'simple',
+				indent_before : 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside',
+				indent_after : 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside',
+				validate : true,
+				entity_encoding : 'named',
+				url_converter : t.convertURL,
+				url_converter_scope : t,
+				ie7_compat : true
+			}, s);
+
+			t.documentBaseURI = new tinymce.util.URI(s.document_base_url || tinymce.documentBaseURL, {
+				base_uri : tinyMCE.baseURI
+			});
+
+			t.baseURI = tinymce.baseURI;
+
+			t.contentCSS = [];
+
+			// Call setup
+			t.execCallback('setup', t);
+		},
+
+		render : function(nst) {
+			var t = this, s = t.settings, id = t.id, sl = tinymce.ScriptLoader;
+
+			// Page is not loaded yet, wait for it
+			if (!Event.domLoaded) {
+				Event.add(window, 'ready', function() {
+					t.render();
+				});
+				return;
+			}
+
+			tinyMCE.settings = s;
+
+			// Element not found, then skip initialization
+			if (!t.getElement())
+				return;
+
+			// Is a iPad/iPhone and not on iOS5, then skip initialization. We need to sniff 
+			// here since the browser says it has contentEditable support but there is no visible
+			// caret We will remove this check ones Apple implements full contentEditable support
+			if (tinymce.isIDevice && !tinymce.isIOS5)
+				return;
+
+			// Add hidden input for non input elements inside form elements
+			if (!/TEXTAREA|INPUT/i.test(t.getElement().nodeName) && s.hidden_input && DOM.getParent(id, 'form'))
+				DOM.insertAfter(DOM.create('input', {type : 'hidden', name : id}), id);
+
+			if (tinymce.WindowManager)
+				t.windowManager = new tinymce.WindowManager(t);
+
+			if (s.encoding == 'xml') {
+				t.onGetContent.add(function(ed, o) {
+					if (o.save)
+						o.content = DOM.encode(o.content);
+				});
+			}
+
+			if (s.add_form_submit_trigger) {
+				t.onSubmit.addToTop(function() {
+					if (t.initialized) {
+						t.save();
+						t.isNotDirty = 1;
+					}
+				});
+			}
+
+			if (s.add_unload_trigger) {
+				t._beforeUnload = tinyMCE.onBeforeUnload.add(function() {
+					if (t.initialized && !t.destroyed && !t.isHidden())
+						t.save({format : 'raw', no_events : true});
+				});
+			}
+
+			tinymce.addUnload(t.destroy, t);
+
+			if (s.submit_patch) {
+				t.onBeforeRenderUI.add(function() {
+					var n = t.getElement().form;
+
+					if (!n)
+						return;
+
+					// Already patched
+					if (n._mceOldSubmit)
+						return;
+
+					// Check page uses id="submit" or name="submit" for it's submit button
+					if (!n.submit.nodeType && !n.submit.length) {
+						t.formElement = n;
+						n._mceOldSubmit = n.submit;
+						n.submit = function() {
+							// Save all instances
+							tinymce.triggerSave();
+							t.isNotDirty = 1;
+
+							return t.formElement._mceOldSubmit(t.formElement);
+						};
+					}
+
+					n = null;
+				});
+			}
+
+			// Load scripts
+			function loadScripts() {
+				if (s.language && s.language_load !== false)
+					sl.add(tinymce.baseURL + '/langs/' + s.language + '.js');
+
+				if (s.theme && s.theme.charAt(0) != '-' && !ThemeManager.urls[s.theme])
+					ThemeManager.load(s.theme, 'themes/' + s.theme + '/editor_template' + tinymce.suffix + '.js');
+
+				each(explode(s.plugins), function(p) {
+					if (p &&!PluginManager.urls[p]) {
+						if (p.charAt(0) == '-') {
+							p = p.substr(1, p.length);
+							var dependencies = PluginManager.dependencies(p);
+							each(dependencies, function(dep) {
+								var defaultSettings = {prefix:'plugins/', resource: dep, suffix:'/editor_plugin' + tinymce.suffix + '.js'};
+								var dep = PluginManager.createUrl(defaultSettings, dep);
+								PluginManager.load(dep.resource, dep);
+								
+							});
+						} else {
+							// Skip safari plugin, since it is removed as of 3.3b1
+							if (p == 'safari') {
+								return;
+							}
+							PluginManager.load(p, {prefix:'plugins/', resource: p, suffix:'/editor_plugin' + tinymce.suffix + '.js'});
+						}
+					}
+				});
+
+				// Init when que is loaded
+				sl.loadQueue(function() {
+					if (!t.removed)
+						t.init();
+				});
+			};
+
+			loadScripts();
+		},
+
+		init : function() {
+			var n, t = this, s = t.settings, w, h, e = t.getElement(), o, ti, u, bi, bc, re, i, initializedPlugins = [];
+
+			tinymce.add(t);
+
+			s.aria_label = s.aria_label || DOM.getAttrib(e, 'aria-label', t.getLang('aria.rich_text_area'));
+
+			if (s.theme) {
+				s.theme = s.theme.replace(/-/, '');
+				o = ThemeManager.get(s.theme);
+				t.theme = new o();
+
+				if (t.theme.init && s.init_theme)
+					t.theme.init(t, ThemeManager.urls[s.theme] || tinymce.documentBaseURL.replace(/\/$/, ''));
+			}
+			function initPlugin(p) {
+				var c = PluginManager.get(p), u = PluginManager.urls[p] || tinymce.documentBaseURL.replace(/\/$/, ''), po;
+				if (c && tinymce.inArray(initializedPlugins,p) === -1) {
+					each(PluginManager.dependencies(p), function(dep){
+						initPlugin(dep);
+					});
+					po = new c(t, u);
+
+					t.plugins[p] = po;
+
+					if (po.init) {
+						po.init(t, u);
+						initializedPlugins.push(p);
+					}
+				}
+			}
+			
+			// Create all plugins
+			each(explode(s.plugins.replace(/\-/g, '')), initPlugin);
+
+			// Setup popup CSS path(s)
+			if (s.popup_css !== false) {
+				if (s.popup_css)
+					s.popup_css = t.documentBaseURI.toAbsolute(s.popup_css);
+				else
+					s.popup_css = t.baseURI.toAbsolute("themes/" + s.theme + "/skins/" + s.skin + "/dialog.css");
+			}
+
+			if (s.popup_css_add)
+				s.popup_css += ',' + t.documentBaseURI.toAbsolute(s.popup_css_add);
+
+			t.controlManager = new tinymce.ControlManager(t);
+
+			if (s.custom_undo_redo) {
+				t.onBeforeExecCommand.add(function(ed, cmd, ui, val, a) {
+					if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint' && (!a || !a.skip_undo))
+						t.undoManager.beforeChange();
+				});
+
+				t.onExecCommand.add(function(ed, cmd, ui, val, a) {
+					if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint' && (!a || !a.skip_undo))
+						t.undoManager.add();
+				});
+			}
+
+			t.onExecCommand.add(function(ed, c) {
+				// Don't refresh the select lists until caret move
+				if (!/^(FontName|FontSize)$/.test(c))
+					t.nodeChanged();
+			});
+
+			// Remove ghost selections on images and tables in Gecko
+			if (isGecko) {
+				function repaint(a, o) {
+					if (!o || !o.initial)
+						t.execCommand('mceRepaint');
+				};
+
+				t.onUndo.add(repaint);
+				t.onRedo.add(repaint);
+				t.onSetContent.add(repaint);
+			}
+
+			// Enables users to override the control factory
+			t.onBeforeRenderUI.dispatch(t, t.controlManager);
+
+			// Measure box
+			if (s.render_ui) {
+				w = s.width || e.style.width || e.offsetWidth;
+				h = s.height || e.style.height || e.offsetHeight;
+				t.orgDisplay = e.style.display;
+				re = /^[0-9\.]+(|px)$/i;
+
+				if (re.test('' + w))
+					w = Math.max(parseInt(w) + (o.deltaWidth || 0), 100);
+
+				if (re.test('' + h))
+					h = Math.max(parseInt(h) + (o.deltaHeight || 0), 100);
+
+				// Render UI
+				o = t.theme.renderUI({
+					targetNode : e,
+					width : w,
+					height : h,
+					deltaWidth : s.delta_width,
+					deltaHeight : s.delta_height
+				});
+
+				t.editorContainer = o.editorContainer;
+			}
+
+
+			// User specified a document.domain value
+			if (document.domain && location.hostname != document.domain)
+				tinymce.relaxedDomain = document.domain;
+
+			// Resize editor
+			DOM.setStyles(o.sizeContainer || o.editorContainer, {
+				width : w,
+				height : h
+			});
+
+			// Load specified content CSS last
+			if (s.content_css) {
+				tinymce.each(explode(s.content_css), function(u) {
+					t.contentCSS.push(t.documentBaseURI.toAbsolute(u));
+				});
+			}
+
+			h = (o.iframeHeight || h) + (typeof(h) == 'number' ? (o.deltaHeight || 0) : '');
+			if (h < 100)
+				h = 100;
+
+			t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml">';
+
+			// We only need to override paths if we have to
+			// IE has a bug where it remove site absolute urls to relative ones if this is specified
+			if (s.document_base_url != tinymce.documentBaseURL)
+				t.iframeHTML += '<base href="' + t.documentBaseURI.getURI() + '" />';
+
+			// IE8 doesn't support carets behind images setting ie7_compat would force IE8+ to run in IE7 compat mode.
+			if (s.ie7_compat)
+				t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />';
+			else
+				t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=edge" />';
+
+			t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
+
+			// Load the CSS by injecting them into the HTML this will reduce "flicker"
+			for (i = 0; i < t.contentCSS.length; i++) {
+				t.iframeHTML += '<link type="text/css" rel="stylesheet" href="' + t.contentCSS[i] + '" />';
+			}
+
+			t.contentCSS = [];
+
+			bi = s.body_id || 'tinymce';
+			if (bi.indexOf('=') != -1) {
+				bi = t.getParam('body_id', '', 'hash');
+				bi = bi[t.id] || bi;
+			}
+
+			bc = s.body_class || '';
+			if (bc.indexOf('=') != -1) {
+				bc = t.getParam('body_class', '', 'hash');
+				bc = bc[t.id] || '';
+			}
+
+			t.iframeHTML += '</head><body id="' + bi + '" class="mceContentBody ' + bc + '" onload="window.parent.tinyMCE.get(\'' + t.id + '\').onLoad.dispatch();"><br></body></html>';
+
+			// Domain relaxing enabled, then set document domain
+			if (tinymce.relaxedDomain && (isIE || (tinymce.isOpera && parseFloat(opera.version()) < 11))) {
+				// We need to write the contents here in IE since multiple writes messes up refresh button and back button
+				u = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinyMCE.get("' + t.id + '");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';
+			}
+
+			// Create iframe
+			// TODO: ACC add the appropriate description on this.
+			n = DOM.add(o.iframeContainer, 'iframe', { 
+				id : t.id + "_ifr",
+				src : u || 'javascript:""', // Workaround for HTTPS warning in IE6/7
+				frameBorder : '0',
+				allowTransparency : "true",
+				title : s.aria_label,
+				style : {
+					width : '100%',
+					height : h,
+					display : 'block' // Important for Gecko to render the iframe correctly
+				}
+			});
+
+			t.contentAreaContainer = o.iframeContainer;
+			DOM.get(o.editorContainer).style.display = t.orgDisplay;
+			DOM.get(t.id).style.display = 'none';
+			DOM.setAttrib(t.id, 'aria-hidden', true);
+
+			if (!tinymce.relaxedDomain || !u)
+				t.setupIframe();
+
+			e = n = o = null; // Cleanup
+		},
+
+		setupIframe : function() {
+			var t = this, s = t.settings, e = DOM.get(t.id), d = t.getDoc(), h, b;
+
+			// Setup iframe body
+			if (!isIE || !tinymce.relaxedDomain) {
+				d.open();
+				d.write(t.iframeHTML);
+				d.close();
+
+				if (tinymce.relaxedDomain)
+					d.domain = tinymce.relaxedDomain;
+			}
+
+			// It will not steal focus while setting contentEditable
+			b = t.getBody();
+			b.disabled = true;
+
+			if (!s.readonly)
+				b.contentEditable = true;
+
+			b.disabled = false;
+
+			t.schema = new tinymce.html.Schema(s);
+
+			t.dom = new tinymce.dom.DOMUtils(t.getDoc(), {
+				keep_values : true,
+				url_converter : t.convertURL,
+				url_converter_scope : t,
+				hex_colors : s.force_hex_style_colors,
+				class_filter : s.class_filter,
+				update_styles : 1,
+				fix_ie_paragraphs : 1,
+				schema : t.schema
+			});
+
+			t.parser = new tinymce.html.DomParser(s, t.schema);
+
+			// Force anchor names closed, unless the setting "allow_html_in_named_anchor" is explicitly included.
+			if (!t.settings.allow_html_in_named_anchor) {
+				t.parser.addAttributeFilter('name', function(nodes, name) {
+					var i = nodes.length, sibling, prevSibling, parent, node;
+	
+					while (i--) {
+						node = nodes[i];
+						if (node.name === 'a' && node.firstChild) {
+							parent = node.parent;
+	
+							// Move children after current node
+							sibling = node.lastChild;
+							do {
+								prevSibling = sibling.prev;
+								parent.insert(sibling, node);
+								sibling = prevSibling;
+							} while (sibling);
+						}
+					}
+				});
+			}
+
+			// Convert src and href into data-mce-src, data-mce-href and data-mce-style
+			t.parser.addAttributeFilter('src,href,style', function(nodes, name) {
+				var i = nodes.length, node, dom = t.dom, value, internalName;
+
+				while (i--) {
+					node = nodes[i];
+					value = node.attr(name);
+					internalName = 'data-mce-' + name;
+
+					// Add internal attribute if we need to we don't on a refresh of the document
+					if (!node.attributes.map[internalName]) {	
+						if (name === "style")
+							node.attr(internalName, dom.serializeStyle(dom.parseStyle(value), node.name));
+						else
+							node.attr(internalName, t.convertURL(value, name, node.name));
+					}
+				}
+			});
+
+			// Keep scripts from executing
+			t.parser.addNodeFilter('script', function(nodes, name) {
+				var i = nodes.length, node;
+
+				while (i--) {
+					node = nodes[i];
+					node.attr('type', 'mce-' + (node.attr('type') || 'text/javascript'));
+				}
+			});
+
+			t.parser.addNodeFilter('#cdata', function(nodes, name) {
+				var i = nodes.length, node;
+
+				while (i--) {
+					node = nodes[i];
+					node.type = 8;
+					node.name = '#comment';
+					node.value = '[CDATA[' + node.value + ']]';
+				}
+			});
+
+			t.parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function(nodes, name) {
+				var i = nodes.length, node, nonEmptyElements = t.schema.getNonEmptyElements();
+
+				while (i--) {
+					node = nodes[i];
+
+					if (node.isEmpty(nonEmptyElements))
+						node.empty().append(new tinymce.html.Node('br', 1)).shortEnded = true;
+				}
+			});
+
+			t.serializer = new tinymce.dom.Serializer(s, t.dom, t.schema);
+
+			t.selection = new tinymce.dom.Selection(t.dom, t.getWin(), t.serializer);
+
+			t.formatter = new tinymce.Formatter(this);
+
+			// Register default formats
+			t.formatter.register({
+				alignleft : [
+					{selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'left'}},
+					{selector : 'img,table', collapsed : false, styles : {'float' : 'left'}}
+				],
+
+				aligncenter : [
+					{selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'center'}},
+					{selector : 'img', collapsed : false, styles : {display : 'block', marginLeft : 'auto', marginRight : 'auto'}},
+					{selector : 'table', collapsed : false, styles : {marginLeft : 'auto', marginRight : 'auto'}}
+				],
+
+				alignright : [
+					{selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'right'}},
+					{selector : 'img,table', collapsed : false, styles : {'float' : 'right'}}
+				],
+
+				alignfull : [
+					{selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'justify'}}
+				],
+
+				bold : [
+					{inline : 'strong', remove : 'all'},
+					{inline : 'span', styles : {fontWeight : 'bold'}},
+					{inline : 'b', remove : 'all'}
+				],
+
+				italic : [
+					{inline : 'em', remove : 'all'},
+					{inline : 'span', styles : {fontStyle : 'italic'}},
+					{inline : 'i', remove : 'all'}
+				],
+
+				underline : [
+					{inline : 'span', styles : {textDecoration : 'underline'}, exact : true},
+					{inline : 'u', remove : 'all'}
+				],
+
+				strikethrough : [
+					{inline : 'span', styles : {textDecoration : 'line-through'}, exact : true},
+					{inline : 'strike', remove : 'all'}
+				],
+
+				forecolor : {inline : 'span', styles : {color : '%value'}, wrap_links : false},
+				hilitecolor : {inline : 'span', styles : {backgroundColor : '%value'}, wrap_links : false},
+				fontname : {inline : 'span', styles : {fontFamily : '%value'}},
+				fontsize : {inline : 'span', styles : {fontSize : '%value'}},
+				fontsize_class : {inline : 'span', attributes : {'class' : '%value'}},
+				blockquote : {block : 'blockquote', wrapper : 1, remove : 'all'},
+				subscript : {inline : 'sub'},
+				superscript : {inline : 'sup'},
+
+				link : {inline : 'a', selector : 'a', remove : 'all', split : true, deep : true,
+					onmatch : function(node) {
+						return true;
+					},
+
+					onformat : function(elm, fmt, vars) {
+						each(vars, function(value, key) {
+							t.dom.setAttrib(elm, key, value);
+						});
+					}
+				},
+
+				removeformat : [
+					{selector : 'b,strong,em,i,font,u,strike', remove : 'all', split : true, expand : false, block_expand : true, deep : true},
+					{selector : 'span', attributes : ['style', 'class'], remove : 'empty', split : true, expand : false, deep : true},
+					{selector : '*', attributes : ['style', 'class'], split : false, expand : false, deep : true}
+				]
+			});
+
+			// Register default block formats
+			each('p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp'.split(/\s/), function(name) {
+				t.formatter.register(name, {block : name, remove : 'all'});
+			});
+
+			// Register user defined formats
+			t.formatter.register(t.settings.formats);
+
+			t.undoManager = new tinymce.UndoManager(t);
+
+			// Pass through
+			t.undoManager.onAdd.add(function(um, l) {
+				if (um.hasUndo())
+					return t.onChange.dispatch(t, l, um);
+			});
+
+			t.undoManager.onUndo.add(function(um, l) {
+				return t.onUndo.dispatch(t, l, um);
+			});
+
+			t.undoManager.onRedo.add(function(um, l) {
+				return t.onRedo.dispatch(t, l, um);
+			});
+
+			t.forceBlocks = new tinymce.ForceBlocks(t, {
+				forced_root_block : s.forced_root_block
+			});
+
+			t.editorCommands = new tinymce.EditorCommands(t);
+
+			// Pass through
+			t.serializer.onPreProcess.add(function(se, o) {
+				return t.onPreProcess.dispatch(t, o, se);
+			});
+
+			t.serializer.onPostProcess.add(function(se, o) {
+				return t.onPostProcess.dispatch(t, o, se);
+			});
+
+			t.onPreInit.dispatch(t);
+
+			if (!s.gecko_spellcheck)
+				t.getBody().spellcheck = 0;
+
+			if (!s.readonly)
+				t._addEvents();
+
+			t.controlManager.onPostRender.dispatch(t, t.controlManager);
+			t.onPostRender.dispatch(t);
+
+			t.quirks = new tinymce.util.Quirks(this);
+
+			if (s.directionality)
+				t.getBody().dir = s.directionality;
+
+			if (s.nowrap)
+				t.getBody().style.whiteSpace = "nowrap";
+
+			if (s.handle_node_change_callback) {
+				t.onNodeChange.add(function(ed, cm, n) {
+					t.execCallback('handle_node_change_callback', t.id, n, -1, -1, true, t.selection.isCollapsed());
+				});
+			}
+
+			if (s.save_callback) {
+				t.onSaveContent.add(function(ed, o) {
+					var h = t.execCallback('save_callback', t.id, o.content, t.getBody());
+
+					if (h)
+						o.content = h;
+				});
+			}
+
+			if (s.onchange_callback) {
+				t.onChange.add(function(ed, l) {
+					t.execCallback('onchange_callback', t, l);
+				});
+			}
+
+			if (s.protect) {
+				t.onBeforeSetContent.add(function(ed, o) {
+					if (s.protect) {
+						each(s.protect, function(pattern) {
+							o.content = o.content.replace(pattern, function(str) {
+								return '<!--mce:protected ' + escape(str) + '-->';
+							});
+						});
+					}
+				});
+			}
+
+			if (s.convert_newlines_to_brs) {
+				t.onBeforeSetContent.add(function(ed, o) {
+					if (o.initial)
+						o.content = o.content.replace(/\r?\n/g, '<br />');
+				});
+			}
+
+			if (s.preformatted) {
+				t.onPostProcess.add(function(ed, o) {
+					o.content = o.content.replace(/^\s*<pre.*?>/, '');
+					o.content = o.content.replace(/<\/pre>\s*$/, '');
+
+					if (o.set)
+						o.content = '<pre class="mceItemHidden">' + o.content + '</pre>';
+				});
+			}
+
+			if (s.verify_css_classes) {
+				t.serializer.attribValueFilter = function(n, v) {
+					var s, cl;
+
+					if (n == 'class') {
+						// Build regexp for classes
+						if (!t.classesRE) {
+							cl = t.dom.getClasses();
+
+							if (cl.length > 0) {
+								s = '';
+
+								each (cl, function(o) {
+									s += (s ? '|' : '') + o['class'];
+								});
+
+								t.classesRE = new RegExp('(' + s + ')', 'gi');
+							}
+						}
+
+						return !t.classesRE || /(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v) || t.classesRE.test(v) ? v : '';
+					}
+
+					return v;
+				};
+			}
+
+			if (s.cleanup_callback) {
+				t.onBeforeSetContent.add(function(ed, o) {
+					o.content = t.execCallback('cleanup_callback', 'insert_to_editor', o.content, o);
+				});
+
+				t.onPreProcess.add(function(ed, o) {
+					if (o.set)
+						t.execCallback('cleanup_callback', 'insert_to_editor_dom', o.node, o);
+
+					if (o.get)
+						t.execCallback('cleanup_callback', 'get_from_editor_dom', o.node, o);
+				});
+
+				t.onPostProcess.add(function(ed, o) {
+					if (o.set)
+						o.content = t.execCallback('cleanup_callback', 'insert_to_editor', o.content, o);
+
+					if (o.get)						
+						o.content = t.execCallback('cleanup_callback', 'get_from_editor', o.content, o);
+				});
+			}
+
+			if (s.save_callback) {
+				t.onGetContent.add(function(ed, o) {
+					if (o.save)
+						o.content = t.execCallback('save_callback', t.id, o.content, t.getBody());
+				});
+			}
+
+			if (s.handle_event_callback) {
+				t.onEvent.add(function(ed, e, o) {
+					if (t.execCallback('handle_event_callback', e, ed, o) === false)
+						Event.cancel(e);
+				});
+			}
+
+			// Add visual aids when new contents is added
+			t.onSetContent.add(function() {
+				t.addVisual(t.getBody());
+			});
+
+			// Remove empty contents
+			if (s.padd_empty_editor) {
+				t.onPostProcess.add(function(ed, o) {
+					o.content = o.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, '');
+				});
+			}
+
+			if (isGecko) {
+				// Fix gecko link bug, when a link is placed at the end of block elements there is
+				// no way to move the caret behind the link. This fix adds a bogus br element after the link
+				function fixLinks(ed, o) {
+					each(ed.dom.select('a'), function(n) {
+						var pn = n.parentNode;
+
+						if (ed.dom.isBlock(pn) && pn.lastChild === n)
+							ed.dom.add(pn, 'br', {'data-mce-bogus' : 1});
+					});
+				};
+
+				t.onExecCommand.add(function(ed, cmd) {
+					if (cmd === 'CreateLink')
+						fixLinks(ed);
+				});
+
+				t.onSetContent.add(t.selection.onSetContent.add(fixLinks));
+			}
+
+			t.load({initial : true, format : 'html'});
+			t.startContent = t.getContent({format : 'raw'});
+			t.undoManager.add();
+			t.initialized = true;
+
+			t.onInit.dispatch(t);
+			t.execCallback('setupcontent_callback', t.id, t.getBody(), t.getDoc());
+			t.execCallback('init_instance_callback', t);
+			t.focus(true);
+			t.nodeChanged({initial : 1});
+
+			// Load specified content CSS last
+			each(t.contentCSS, function(u) {
+				t.dom.loadCSS(u);
+			});
+
+			// Handle auto focus
+			if (s.auto_focus) {
+				setTimeout(function () {
+					var ed = tinymce.get(s.auto_focus);
+
+					ed.selection.select(ed.getBody(), 1);
+					ed.selection.collapse(1);
+					ed.getBody().focus();
+					ed.getWin().focus();
+				}, 100);
+			}
+
+			e = null;
+		},
+
+
+		focus : function(sf) {
+			var oed, t = this, selection = t.selection, ce = t.settings.content_editable, ieRng, controlElm, doc = t.getDoc();
+
+			if (!sf) {
+				// Get selected control element
+				ieRng = selection.getRng();
+				if (ieRng.item) {
+					controlElm = ieRng.item(0);
+				}
+
+				t._refreshContentEditable();
+
+				// Is not content editable
+				if (!ce)
+					t.getWin().focus();
+
+				// Focus the body as well since it's contentEditable
+				if (tinymce.isGecko) {
+					t.getBody().focus();
+				}
+
+				// Restore selected control element
+				// This is needed when for example an image is selected within a
+				// layer a call to focus will then remove the control selection
+				if (controlElm && controlElm.ownerDocument == doc) {
+					ieRng = doc.body.createControlRange();
+					ieRng.addElement(controlElm);
+					ieRng.select();
+				}
+
+			}
+
+			if (tinymce.activeEditor != t) {
+				if ((oed = tinymce.activeEditor) != null)
+					oed.onDeactivate.dispatch(oed, t);
+
+				t.onActivate.dispatch(t, oed);
+			}
+
+			tinymce._setActive(t);
+		},
+
+		execCallback : function(n) {
+			var t = this, f = t.settings[n], s;
+
+			if (!f)
+				return;
+
+			// Look through lookup
+			if (t.callbackLookup && (s = t.callbackLookup[n])) {
+				f = s.func;
+				s = s.scope;
+			}
+
+			if (is(f, 'string')) {
+				s = f.replace(/\.\w+$/, '');
+				s = s ? tinymce.resolve(s) : 0;
+				f = tinymce.resolve(f);
+				t.callbackLookup = t.callbackLookup || {};
+				t.callbackLookup[n] = {func : f, scope : s};
+			}
+
+			return f.apply(s || t, Array.prototype.slice.call(arguments, 1));
+		},
+
+		translate : function(s) {
+			var c = this.settings.language || 'en', i18n = tinymce.i18n;
+
+			if (!s)
+				return '';
+
+			return i18n[c + '.' + s] || s.replace(/{\#([^}]+)\}/g, function(a, b) {
+				return i18n[c + '.' + b] || '{#' + b + '}';
+			});
+		},
+
+		getLang : function(n, dv) {
+			return tinymce.i18n[(this.settings.language || 'en') + '.' + n] || (is(dv) ? dv : '{#' + n + '}');
+		},
+
+		getParam : function(n, dv, ty) {
+			var tr = tinymce.trim, v = is(this.settings[n]) ? this.settings[n] : dv, o;
+
+			if (ty === 'hash') {
+				o = {};
+
+				if (is(v, 'string')) {
+					each(v.indexOf('=') > 0 ? v.split(/[;,](?![^=;,]*(?:[;,]|$))/) : v.split(','), function(v) {
+						v = v.split('=');
+
+						if (v.length > 1)
+							o[tr(v[0])] = tr(v[1]);
+						else
+							o[tr(v[0])] = tr(v);
+					});
+				} else
+					o = v;
+
+				return o;
+			}
+
+			return v;
+		},
+
+		nodeChanged : function(o) {
+			var t = this, s = t.selection, n = s.getStart() || t.getBody();
+
+			// Fix for bug #1896577 it seems that this can not be fired while the editor is loading
+			if (t.initialized) {
+				o = o || {};
+				n = isIE && n.ownerDocument != t.getDoc() ? t.getBody() : n; // Fix for IE initial state
+
+				// Get parents and add them to object
+				o.parents = [];
+				t.dom.getParent(n, function(node) {
+					if (node.nodeName == 'BODY')
+						return true;
+
+					o.parents.push(node);
+				});
+
+				t.onNodeChange.dispatch(
+					t,
+					o ? o.controlManager || t.controlManager : t.controlManager,
+					n,
+					s.isCollapsed(),
+					o
+				);
+			}
+		},
+
+		addButton : function(n, s) {
+			var t = this;
+
+			t.buttons = t.buttons || {};
+			t.buttons[n] = s;
+		},
+
+		addCommand : function(name, callback, scope) {
+			this.execCommands[name] = {func : callback, scope : scope || this};
+		},
+
+		addQueryStateHandler : function(name, callback, scope) {
+			this.queryStateCommands[name] = {func : callback, scope : scope || this};
+		},
+
+		addQueryValueHandler : function(name, callback, scope) {
+			this.queryValueCommands[name] = {func : callback, scope : scope || this};
+		},
+
+		addShortcut : function(pa, desc, cmd_func, sc) {
+			var t = this, c;
+
+			if (!t.settings.custom_shortcuts)
+				return false;
+
+			t.shortcuts = t.shortcuts || {};
+
+			if (is(cmd_func, 'string')) {
+				c = cmd_func;
+
+				cmd_func = function() {
+					t.execCommand(c, false, null);
+				};
+			}
+
+			if (is(cmd_func, 'object')) {
+				c = cmd_func;
+
+				cmd_func = function() {
+					t.execCommand(c[0], c[1], c[2]);
+				};
+			}
+
+			each(explode(pa), function(pa) {
+				var o = {
+					func : cmd_func,
+					scope : sc || this,
+					desc : desc,
+					alt : false,
+					ctrl : false,
+					shift : false
+				};
+
+				each(explode(pa, '+'), function(v) {
+					switch (v) {
+						case 'alt':
+						case 'ctrl':
+						case 'shift':
+							o[v] = true;
+							break;
+
+						default:
+							o.charCode = v.charCodeAt(0);
+							o.keyCode = v.toUpperCase().charCodeAt(0);
+					}
+				});
+
+				t.shortcuts[(o.ctrl ? 'ctrl' : '') + ',' + (o.alt ? 'alt' : '') + ',' + (o.shift ? 'shift' : '') + ',' + o.keyCode] = o;
+			});
+
+			return true;
+		},
+
+		execCommand : function(cmd, ui, val, a) {
+			var t = this, s = 0, o, st;
+
+			if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd) && (!a || !a.skip_focus))
+				t.focus();
+
+			a = extend({}, a);
+			t.onBeforeExecCommand.dispatch(t, cmd, ui, val, a);
+			if (a.terminate)
+				return false;
+
+			// Command callback
+			if (t.execCallback('execcommand_callback', t.id, t.selection.getNode(), cmd, ui, val)) {
+				t.onExecCommand.dispatch(t, cmd, ui, val, a);
+				return true;
+			}
+
+			// Registred commands
+			if (o = t.execCommands[cmd]) {
+				st = o.func.call(o.scope, ui, val);
+
+				// Fall through on true
+				if (st !== true) {
+					t.onExecCommand.dispatch(t, cmd, ui, val, a);
+					return st;
+				}
+			}
+
+			// Plugin commands
+			each(t.plugins, function(p) {
+				if (p.execCommand && p.execCommand(cmd, ui, val)) {
+					t.onExecCommand.dispatch(t, cmd, ui, val, a);
+					s = 1;
+					return false;
+				}
+			});
+
+			if (s)
+				return true;
+
+			// Theme commands
+			if (t.theme && t.theme.execCommand && t.theme.execCommand(cmd, ui, val)) {
+				t.onExecCommand.dispatch(t, cmd, ui, val, a);
+				return true;
+			}
+
+			// Editor commands
+			if (t.editorCommands.execCommand(cmd, ui, val)) {
+				t.onExecCommand.dispatch(t, cmd, ui, val, a);
+				return true;
+			}
+
+			// Browser commands
+			t.getDoc().execCommand(cmd, ui, val);
+			t.onExecCommand.dispatch(t, cmd, ui, val, a);
+		},
+
+		queryCommandState : function(cmd) {
+			var t = this, o, s;
+
+			// Is hidden then return undefined
+			if (t._isHidden())
+				return;
+
+			// Registred commands
+			if (o = t.queryStateCommands[cmd]) {
+				s = o.func.call(o.scope);
+
+				// Fall though on true
+				if (s !== true)
+					return s;
+			}
+
+			// Registred commands
+			o = t.editorCommands.queryCommandState(cmd);
+			if (o !== -1)
+				return o;
+
+			// Browser commands
+			try {
+				return this.getDoc().queryCommandState(cmd);
+			} catch (ex) {
+				// Fails sometimes see bug: 1896577
+			}
+		},
+
+		queryCommandValue : function(c) {
+			var t = this, o, s;
+
+			// Is hidden then return undefined
+			if (t._isHidden())
+				return;
+
+			// Registred commands
+			if (o = t.queryValueCommands[c]) {
+				s = o.func.call(o.scope);
+
+				// Fall though on true
+				if (s !== true)
+					return s;
+			}
+
+			// Registred commands
+			o = t.editorCommands.queryCommandValue(c);
+			if (is(o))
+				return o;
+
+			// Browser commands
+			try {
+				return this.getDoc().queryCommandValue(c);
+			} catch (ex) {
+				// Fails sometimes see bug: 1896577
+			}
+		},
+
+		show : function() {
+			var t = this;
+
+			DOM.show(t.getContainer());
+			DOM.hide(t.id);
+			t.load();
+		},
+
+		hide : function() {
+			var t = this, d = t.getDoc();
+
+			// Fixed bug where IE has a blinking cursor left from the editor
+			if (isIE && d)
+				d.execCommand('SelectAll');
+
+			// We must save before we hide so Safari doesn't crash
+			t.save();
+			DOM.hide(t.getContainer());
+			DOM.setStyle(t.id, 'display', t.orgDisplay);
+		},
+
+		isHidden : function() {
+			return !DOM.isHidden(this.id);
+		},
+
+		setProgressState : function(b, ti, o) {
+			this.onSetProgressState.dispatch(this, b, ti, o);
+
+			return b;
+		},
+
+		load : function(o) {
+			var t = this, e = t.getElement(), h;
+
+			if (e) {
+				o = o || {};
+				o.load = true;
+
+				// Double encode existing entities in the value
+				h = t.setContent(is(e.value) ? e.value : e.innerHTML, o);
+				o.element = e;
+
+				if (!o.no_events)
+					t.onLoadContent.dispatch(t, o);
+
+				o.element = e = null;
+
+				return h;
+			}
+		},
+
+		save : function(o) {
+			var t = this, e = t.getElement(), h, f;
+
+			if (!e || !t.initialized)
+				return;
+
+			o = o || {};
+			o.save = true;
+
+			// Add undo level will trigger onchange event
+			if (!o.no_events) {
+				t.undoManager.typing = false;
+				t.undoManager.add();
+			}
+
+			o.element = e;
+			h = o.content = t.getContent(o);
+
+			if (!o.no_events)
+				t.onSaveContent.dispatch(t, o);
+
+			h = o.content;
+
+			if (!/TEXTAREA|INPUT/i.test(e.nodeName)) {
+				e.innerHTML = h;
+
+				// Update hidden form element
+				if (f = DOM.getParent(t.id, 'form')) {
+					each(f.elements, function(e) {
+						if (e.name == t.id) {
+							e.value = h;
+							return false;
+						}
+					});
+				}
+			} else
+				e.value = h;
+
+			o.element = e = null;
+
+			return h;
+		},
+
+		setContent : function(content, args) {
+			var self = this, rootNode, body = self.getBody(), forcedRootBlockName;
+
+			// Setup args object
+			args = args || {};
+			args.format = args.format || 'html';
+			args.set = true;
+			args.content = content;
+
+			// Do preprocessing
+			if (!args.no_events)
+				self.onBeforeSetContent.dispatch(self, args);
+
+			content = args.content;
+
+			// Padd empty content in Gecko and Safari. Commands will otherwise fail on the content
+			// It will also be impossible to place the caret in the editor unless there is a BR element present
+			if (!tinymce.isIE && (content.length === 0 || /^\s+$/.test(content))) {
+				forcedRootBlockName = self.settings.forced_root_block;
+				if (forcedRootBlockName)
+					content = '<' + forcedRootBlockName + '><br data-mce-bogus="1"></' + forcedRootBlockName + '>';
+				else
+					content = '<br data-mce-bogus="1">';
+
+				body.innerHTML = content;
+				self.selection.select(body, true);
+				self.selection.collapse(true);
+				return;
+			}
+
+			// Parse and serialize the html
+			if (args.format !== 'raw') {
+				content = new tinymce.html.Serializer({}, self.schema).serialize(
+					self.parser.parse(content)
+				);
+			}
+
+			// Set the new cleaned contents to the editor
+			args.content = tinymce.trim(content);
+			self.dom.setHTML(body, args.content);
+
+			// Do post processing
+			if (!args.no_events)
+				self.onSetContent.dispatch(self, args);
+
+			self.selection.normalize();
+
+			return args.content;
+		},
+
+		getContent : function(args) {
+			var self = this, content;
+
+			// Setup args object
+			args = args || {};
+			args.format = args.format || 'html';
+			args.get = true;
+
+			// Do preprocessing
+			if (!args.no_events)
+				self.onBeforeGetContent.dispatch(self, args);
+
+			// Get raw contents or by default the cleaned contents
+			if (args.format == 'raw')
+				content = self.getBody().innerHTML;
+			else
+				content = self.serializer.serialize(self.getBody(), args);
+
+			args.content = tinymce.trim(content);
+
+			// Do post processing
+			if (!args.no_events)
+				self.onGetContent.dispatch(self, args);
+
+			return args.content;
+		},
+
+		isDirty : function() {
+			var self = this;
+
+			return tinymce.trim(self.startContent) != tinymce.trim(self.getContent({format : 'raw', no_events : 1})) && !self.isNotDirty;
+		},
+
+		getContainer : function() {
+			var t = this;
+
+			if (!t.container)
+				t.container = DOM.get(t.editorContainer || t.id + '_parent');
+
+			return t.container;
+		},
+
+		getContentAreaContainer : function() {
+			return this.contentAreaContainer;
+		},
+
+		getElement : function() {
+			return DOM.get(this.settings.content_element || this.id);
+		},
+
+		getWin : function() {
+			var t = this, e;
+
+			if (!t.contentWindow) {
+				e = DOM.get(t.id + "_ifr");
+
+				if (e)
+					t.contentWindow = e.contentWindow;
+			}
+
+			return t.contentWindow;
+		},
+
+		getDoc : function() {
+			var t = this, w;
+
+			if (!t.contentDocument) {
+				w = t.getWin();
+
+				if (w)
+					t.contentDocument = w.document;
+			}
+
+			return t.contentDocument;
+		},
+
+		getBody : function() {
+			return this.bodyElement || this.getDoc().body;
+		},
+
+		convertURL : function(u, n, e) {
+			var t = this, s = t.settings;
+
+			// Use callback instead
+			if (s.urlconverter_callback)
+				return t.execCallback('urlconverter_callback', u, e, true, n);
+
+			// Don't convert link href since thats the CSS files that gets loaded into the editor also skip local file URLs
+			if (!s.convert_urls || (e && e.nodeName == 'LINK') || u.indexOf('file:') === 0)
+				return u;
+
+			// Convert to relative
+			if (s.relative_urls)
+				return t.documentBaseURI.toRelative(u);
+
+			// Convert to absolute
+			u = t.documentBaseURI.toAbsolute(u, s.remove_script_host);
+
+			return u;
+		},
+
+		addVisual : function(e) {
+			var t = this, s = t.settings;
+
+			e = e || t.getBody();
+
+			if (!is(t.hasVisual))
+				t.hasVisual = s.visual;
+
+			each(t.dom.select('table,a', e), function(e) {
+				var v;
+
+				switch (e.nodeName) {
+					case 'TABLE':
+						v = t.dom.getAttrib(e, 'border');
+
+						if (!v || v == '0') {
+							if (t.hasVisual)
+								t.dom.addClass(e, s.visual_table_class);
+							else
+								t.dom.removeClass(e, s.visual_table_class);
+						}
+
+						return;
+
+					case 'A':
+						v = t.dom.getAttrib(e, 'name');
+
+						if (v) {
+							if (t.hasVisual)
+								t.dom.addClass(e, 'mceItemAnchor');
+							else
+								t.dom.removeClass(e, 'mceItemAnchor');
+						}
+
+						return;
+				}
+			});
+
+			t.onVisualAid.dispatch(t, e, t.hasVisual);
+		},
+
+		remove : function() {
+			var t = this, e = t.getContainer();
+
+			if (!t.removed) {
+				t.removed = 1; // Cancels post remove event execution
+				t.hide();
+
+				// Remove all events
+
+				// Don't clear the window or document if content editable
+				// is enabled since other instances might still be present
+				if (!t.settings.content_editable) {
+					Event.clear(t.getWin());
+					Event.clear(t.getDoc());
+				}
+
+				Event.clear(t.getBody());
+				Event.clear(t.formElement);
+				Event.unbind(e);
+
+				t.execCallback('remove_instance_callback', t);
+				t.onRemove.dispatch(t);
+
+				// Clear all execCommand listeners this is required to avoid errors if the editor was removed inside another command
+				t.onExecCommand.listeners = [];
+
+				tinymce.remove(t);
+				DOM.remove(e);
+			}
+		},
+
+		destroy : function(s) {
+			var t = this;
+
+			// One time is enough
+			if (t.destroyed)
+				return;
+
+			// We must unbind on Gecko since it would otherwise produce the pesky "attempt to run compile-and-go script on a cleared scope" message
+			if (isGecko) {
+				Event.unbind(t.getDoc());
+				Event.unbind(t.getWin());
+				Event.unbind(t.getBody());
+			}
+
+			if (!s) {
+				tinymce.removeUnload(t.destroy);
+				tinyMCE.onBeforeUnload.remove(t._beforeUnload);
+
+				// Manual destroy
+				if (t.theme && t.theme.destroy)
+					t.theme.destroy();
+
+				// Destroy controls, selection and dom
+				t.controlManager.destroy();
+				t.selection.destroy();
+				t.dom.destroy();
+			}
+
+			if (t.formElement) {
+				t.formElement.submit = t.formElement._mceOldSubmit;
+				t.formElement._mceOldSubmit = null;
+			}
+
+			t.contentAreaContainer = t.formElement = t.container = t.settings.content_element = t.bodyElement = t.contentDocument = t.contentWindow = null;
+
+			if (t.selection)
+				t.selection = t.selection.win = t.selection.dom = t.selection.dom.doc = null;
+
+			t.destroyed = 1;
+		},
+
+		// Internal functions
+
+		_addEvents : function() {
+			// 'focus', 'blur', 'dblclick', 'beforedeactivate', submit, reset
+			var t = this, i, s = t.settings, dom = t.dom, lo = {
+				mouseup : 'onMouseUp',
+				mousedown : 'onMouseDown',
+				click : 'onClick',
+				keyup : 'onKeyUp',
+				keydown : 'onKeyDown',
+				keypress : 'onKeyPress',
+				submit : 'onSubmit',
+				reset : 'onReset',
+				contextmenu : 'onContextMenu',
+				dblclick : 'onDblClick',
+				paste : 'onPaste' // Doesn't work in all browsers yet
+			};
+
+			function eventHandler(e, o) {
+				var ty = e.type;
+
+				// Don't fire events when it's removed
+				if (t.removed)
+					return;
+
+				// Generic event handler
+				if (t.onEvent.dispatch(t, e, o) !== false) {
+					// Specific event handler
+					t[lo[e.fakeType || e.type]].dispatch(t, e, o);
+				}
+			};
+
+			// Add DOM events
+			each(lo, function(v, k) {
+				switch (k) {
+					case 'contextmenu':
+						dom.bind(t.getDoc(), k, eventHandler);
+						break;
+
+					case 'paste':
+						dom.bind(t.getBody(), k, function(e) {
+							eventHandler(e);
+						});
+						break;
+
+					case 'submit':
+					case 'reset':
+						dom.bind(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler);
+						break;
+
+					default:
+						dom.bind(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler);
+				}
+			});
+
+			dom.bind(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) {
+				t.focus(true);
+			});
+
+
+			// Fixes bug where a specified document_base_uri could result in broken images
+			// This will also fix drag drop of images in Gecko
+			if (tinymce.isGecko) {
+				dom.bind(t.getDoc(), 'DOMNodeInserted', function(e) {
+					var v;
+
+					e = e.target;
+
+					if (e.nodeType === 1 && e.nodeName === 'IMG' && (v = e.getAttribute('data-mce-src')))
+						e.src = t.documentBaseURI.toAbsolute(v);
+				});
+			}
+
+			// Set various midas options in Gecko
+			if (isGecko) {
+				function setOpts() {
+					var t = this, d = t.getDoc(), s = t.settings;
+
+					if (isGecko && !s.readonly) {
+						t._refreshContentEditable();
+
+						try {
+							// Try new Gecko method
+							d.execCommand("styleWithCSS", 0, false);
+						} catch (ex) {
+							// Use old method
+							if (!t._isHidden())
+								try {d.execCommand("useCSS", 0, true);} catch (ex) {}
+						}
+
+						if (!s.table_inline_editing)
+							try {d.execCommand('enableInlineTableEditing', false, false);} catch (ex) {}
+
+						if (!s.object_resizing)
+							try {d.execCommand('enableObjectResizing', false, false);} catch (ex) {}
+					}
+				};
+
+				t.onBeforeExecCommand.add(setOpts);
+				t.onMouseDown.add(setOpts);
+			}
+
+			// Add node change handlers
+			t.onMouseUp.add(t.nodeChanged);
+			//t.onClick.add(t.nodeChanged);
+			t.onKeyUp.add(function(ed, e) {
+				var c = e.keyCode;
+
+				if ((c >= 33 && c <= 36) || (c >= 37 && c <= 40) || c == 13 || c == 45 || c == 46 || c == 8 || (tinymce.isMac && (c == 91 || c == 93)) || e.ctrlKey)
+					t.nodeChanged();
+			});
+
+
+			// Add block quote deletion handler
+			t.onKeyDown.add(function(ed, e) {
+				if (e.keyCode != VK.BACKSPACE)
+					return;
+
+				var rng = ed.selection.getRng();
+				if (!rng.collapsed)
+					return;
+
+				var n = rng.startContainer;
+				var offset = rng.startOffset;
+
+				while (n && n.nodeType && n.nodeType != 1 && n.parentNode)
+					n = n.parentNode;
+
+				// Is the cursor at the beginning of a blockquote?
+				if (n && n.parentNode && n.parentNode.tagName === 'BLOCKQUOTE' && n.parentNode.firstChild == n && offset == 0) {
+					// Remove the blockquote
+					ed.formatter.toggle('blockquote', null, n.parentNode);
+
+					// Move the caret to the beginning of n
+					rng.setStart(n, 0);
+					rng.setEnd(n, 0);
+					ed.selection.setRng(rng);
+					ed.selection.collapse(false);
+				}
+			});
+
+
+
+			// Add reset handler
+			t.onReset.add(function() {
+				t.setContent(t.startContent, {format : 'raw'});
+			});
+
+			// Add shortcuts
+			if (s.custom_shortcuts) {
+				if (s.custom_undo_redo_keyboard_shortcuts) {
+					t.addShortcut('ctrl+z', t.getLang('undo_desc'), 'Undo');
+					t.addShortcut('ctrl+y', t.getLang('redo_desc'), 'Redo');
+				}
+
+				// Add default shortcuts for gecko
+				t.addShortcut('ctrl+b', t.getLang('bold_desc'), 'Bold');
+				t.addShortcut('ctrl+i', t.getLang('italic_desc'), 'Italic');
+				t.addShortcut('ctrl+u', t.getLang('underline_desc'), 'Underline');
+
+				// BlockFormat shortcuts keys
+				for (i=1; i<=6; i++)
+					t.addShortcut('ctrl+' + i, '', ['FormatBlock', false, 'h' + i]);
+
+				t.addShortcut('ctrl+7', '', ['FormatBlock', false, 'p']);
+				t.addShortcut('ctrl+8', '', ['FormatBlock', false, 'div']);
+				t.addShortcut('ctrl+9', '', ['FormatBlock', false, 'address']);
+
+				function find(e) {
+					var v = null;
+
+					if (!e.altKey && !e.ctrlKey && !e.metaKey)
+						return v;
+
+					each(t.shortcuts, function(o) {
+						if (tinymce.isMac && o.ctrl != e.metaKey)
+							return;
+						else if (!tinymce.isMac && o.ctrl != e.ctrlKey)
+							return;
+
+						if (o.alt != e.altKey)
+							return;
+
+						if (o.shift != e.shiftKey)
+							return;
+
+						if (e.keyCode == o.keyCode || (e.charCode && e.charCode == o.charCode)) {
+							v = o;
+							return false;
+						}
+					});
+
+					return v;
+				};
+
+				t.onKeyUp.add(function(ed, e) {
+					var o = find(e);
+
+					if (o)
+						return Event.cancel(e);
+				});
+
+				t.onKeyPress.add(function(ed, e) {
+					var o = find(e);
+
+					if (o)
+						return Event.cancel(e);
+				});
+
+				t.onKeyDown.add(function(ed, e) {
+					var o = find(e);
+
+					if (o) {
+						o.func.call(o.scope);
+						return Event.cancel(e);
+					}
+				});
+			}
+
+			if (tinymce.isIE) {
+				// Fix so resize will only update the width and height attributes not the styles of an image
+				// It will also block mceItemNoResize items
+				dom.bind(t.getDoc(), 'controlselect', function(e) {
+					var re = t.resizeInfo, cb;
+
+					e = e.target;
+
+					// Don't do this action for non image elements
+					if (e.nodeName !== 'IMG')
+						return;
+
+					if (re)
+						dom.unbind(re.node, re.ev, re.cb);
+
+					if (!dom.hasClass(e, 'mceItemNoResize')) {
+						ev = 'resizeend';
+						cb = dom.bind(e, ev, function(e) {
+							var v;
+
+							e = e.target;
+
+							if (v = dom.getStyle(e, 'width')) {
+								dom.setAttrib(e, 'width', v.replace(/[^0-9%]+/g, ''));
+								dom.setStyle(e, 'width', '');
+							}
+
+							if (v = dom.getStyle(e, 'height')) {
+								dom.setAttrib(e, 'height', v.replace(/[^0-9%]+/g, ''));
+								dom.setStyle(e, 'height', '');
+							}
+						});
+					} else {
+						ev = 'resizestart';
+						cb = dom.bind(e, 'resizestart', Event.cancel, Event);
+					}
+
+					re = t.resizeInfo = {
+						node : e,
+						ev : ev,
+						cb : cb
+					};
+				});
+			}
+
+			if (tinymce.isOpera) {
+				t.onClick.add(function(ed, e) {
+					Event.prevent(e);
+				});
+			}
+
+			// Add custom undo/redo handlers
+			if (s.custom_undo_redo) {
+				function addUndo() {
+					t.undoManager.typing = false;
+					t.undoManager.add();
+				};
+
+				var focusLostFunc = tinymce.isGecko ? 'blur' : 'focusout';
+				dom.bind(t.getDoc(), focusLostFunc, function(e){
+					if (!t.removed && t.undoManager.typing)
+						addUndo();
+				});
+
+				// Add undo level when contents is drag/dropped within the editor
+				t.dom.bind(t.dom.getRoot(), 'dragend', function(e) {
+					addUndo();
+				});
+
+				t.onKeyUp.add(function(ed, e) {
+					var keyCode = e.keyCode;
+
+					if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 13 || keyCode == 45 || e.ctrlKey)
+						addUndo();
+				});
+
+				t.onKeyDown.add(function(ed, e) {
+					var keyCode = e.keyCode, sel;
+
+					if (keyCode == 8) {
+						sel = t.getDoc().selection;
+
+						// Fix IE control + backspace browser bug
+						if (sel && sel.createRange && sel.createRange().item) {
+							t.undoManager.beforeChange();
+							ed.dom.remove(sel.createRange().item(0));
+							addUndo();
+
+							return Event.cancel(e);
+						}
+					}
+
+					// Is caracter positon keys left,right,up,down,home,end,pgdown,pgup,enter
+					if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 13 || keyCode == 45) {
+						// Add position before enter key is pressed, used by IE since it still uses the default browser behavior
+						// Todo: Remove this once we normalize enter behavior on IE
+						if (tinymce.isIE && keyCode == 13)
+							t.undoManager.beforeChange();
+
+						if (t.undoManager.typing)
+							addUndo();
+
+						return;
+					}
+
+					// If key isn't shift,ctrl,alt,capslock,metakey
+					if ((keyCode < 16 || keyCode > 20) && keyCode != 224 && keyCode != 91 && !t.undoManager.typing) {
+						t.undoManager.beforeChange();
+						t.undoManager.typing = true;
+						t.undoManager.add();
+					}
+				});
+
+				t.onMouseDown.add(function() {
+					if (t.undoManager.typing)
+						addUndo();
+				});
+			}
+		},
+
+		_refreshContentEditable : function() {
+			var self = this, body, parent;
+
+			// Check if the editor was hidden and the re-initalize contentEditable mode by removing and adding the body again
+			if (self._isHidden()) {
+				body = self.getBody();
+				parent = body.parentNode;
+
+				parent.removeChild(body);
+				parent.appendChild(body);
+
+				body.focus();
+			}
+		},
+
+		_isHidden : function() {
+			var s;
+
+			if (!isGecko)
+				return 0;
+
+			// Weird, wheres that cursor selection?
+			s = this.selection.getSel();
+			return (!s || !s.rangeCount || s.rangeCount == 0);
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	// Added for compression purposes
+	var each = tinymce.each, undefined, TRUE = true, FALSE = false;
+
+	tinymce.EditorCommands = function(editor) {
+		var dom = editor.dom,
+			selection = editor.selection,
+			commands = {state: {}, exec : {}, value : {}},
+			settings = editor.settings,
+			formatter = editor.formatter,
+			bookmark;
+
+		function execCommand(command, ui, value) {
+			var func;
+
+			command = command.toLowerCase();
+			if (func = commands.exec[command]) {
+				func(command, ui, value);
+				return TRUE;
+			}
+
+			return FALSE;
+		};
+
+		function queryCommandState(command) {
+			var func;
+
+			command = command.toLowerCase();
+			if (func = commands.state[command])
+				return func(command);
+
+			return -1;
+		};
+
+		function queryCommandValue(command) {
+			var func;
+
+			command = command.toLowerCase();
+			if (func = commands.value[command])
+				return func(command);
+
+			return FALSE;
+		};
+
+		function addCommands(command_list, type) {
+			type = type || 'exec';
+
+			each(command_list, function(callback, command) {
+				each(command.toLowerCase().split(','), function(command) {
+					commands[type][command] = callback;
+				});
+			});
+		};
+
+		// Expose public methods
+		tinymce.extend(this, {
+			execCommand : execCommand,
+			queryCommandState : queryCommandState,
+			queryCommandValue : queryCommandValue,
+			addCommands : addCommands
+		});
+
+		// Private methods
+
+		function execNativeCommand(command, ui, value) {
+			if (ui === undefined)
+				ui = FALSE;
+
+			if (value === undefined)
+				value = null;
+
+			return editor.getDoc().execCommand(command, ui, value);
+		};
+
+		function isFormatMatch(name) {
+			return formatter.match(name);
+		};
+
+		function toggleFormat(name, value) {
+			formatter.toggle(name, value ? {value : value} : undefined);
+		};
+
+		function storeSelection(type) {
+			bookmark = selection.getBookmark(type);
+		};
+
+		function restoreSelection() {
+			selection.moveToBookmark(bookmark);
+		};
+
+		// Add execCommand overrides
+		addCommands({
+			// Ignore these, added for compatibility
+			'mceResetDesignMode,mceBeginUndoLevel' : function() {},
+
+			// Add undo manager logic
+			'mceEndUndoLevel,mceAddUndoLevel' : function() {
+				editor.undoManager.add();
+			},
+
+			'Cut,Copy,Paste' : function(command) {
+				var doc = editor.getDoc(), failed;
+
+				// Try executing the native command
+				try {
+					execNativeCommand(command);
+				} catch (ex) {
+					// Command failed
+					failed = TRUE;
+				}
+
+				// Present alert message about clipboard access not being available
+				if (failed || !doc.queryCommandSupported(command)) {
+					if (tinymce.isGecko) {
+						editor.windowManager.confirm(editor.getLang('clipboard_msg'), function(state) {
+							if (state)
+								open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', '_blank');
+						});
+					} else
+						editor.windowManager.alert(editor.getLang('clipboard_no_support'));
+				}
+			},
+
+			// Override unlink command
+			unlink : function(command) {
+				if (selection.isCollapsed())
+					selection.select(selection.getNode());
+
+				execNativeCommand(command);
+				selection.collapse(FALSE);
+			},
+
+			// Override justify commands to use the text formatter engine
+			'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull' : function(command) {
+				var align = command.substring(7);
+
+				// Remove all other alignments first
+				each('left,center,right,full'.split(','), function(name) {
+					if (align != name)
+						formatter.remove('align' + name);
+				});
+
+				toggleFormat('align' + align);
+				execCommand('mceRepaint');
+			},
+
+			// Override list commands to fix WebKit bug
+			'InsertUnorderedList,InsertOrderedList' : function(command) {
+				var listElm, listParent;
+
+				execNativeCommand(command);
+
+				// WebKit produces lists within block elements so we need to split them
+				// we will replace the native list creation logic to custom logic later on
+				// TODO: Remove this when the list creation logic is removed
+				listElm = dom.getParent(selection.getNode(), 'ol,ul');
+				if (listElm) {
+					listParent = listElm.parentNode;
+
+					// If list is within a text block then split that block
+					if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) {
+						storeSelection();
+						dom.split(listParent, listElm);
+						restoreSelection();
+					}
+				}
+			},
+
+			// Override commands to use the text formatter engine
+			'Bold,Italic,Underline,Strikethrough,Superscript,Subscript' : function(command) {
+				toggleFormat(command);
+			},
+
+			// Override commands to use the text formatter engine
+			'ForeColor,HiliteColor,FontName' : function(command, ui, value) {
+				toggleFormat(command, value);
+			},
+
+			FontSize : function(command, ui, value) {
+				var fontClasses, fontSizes;
+
+				// Convert font size 1-7 to styles
+				if (value >= 1 && value <= 7) {
+					fontSizes = tinymce.explode(settings.font_size_style_values);
+					fontClasses = tinymce.explode(settings.font_size_classes);
+
+					if (fontClasses)
+						value = fontClasses[value - 1] || value;
+					else
+						value = fontSizes[value - 1] || value;
+				}
+
+				toggleFormat(command, value);
+			},
+
+			RemoveFormat : function(command) {
+				formatter.remove(command);
+			},
+
+			mceBlockQuote : function(command) {
+				toggleFormat('blockquote');
+			},
+
+			FormatBlock : function(command, ui, value) {
+				return toggleFormat(value || 'p');
+			},
+
+			mceCleanup : function() {
+				var bookmark = selection.getBookmark();
+
+				editor.setContent(editor.getContent({cleanup : TRUE}), {cleanup : TRUE});
+
+				selection.moveToBookmark(bookmark);
+			},
+
+			mceRemoveNode : function(command, ui, value) {
+				var node = value || selection.getNode();
+
+				// Make sure that the body node isn't removed
+				if (node != editor.getBody()) {
+					storeSelection();
+					editor.dom.remove(node, TRUE);
+					restoreSelection();
+				}
+			},
+
+			mceSelectNodeDepth : function(command, ui, value) {
+				var counter = 0;
+
+				dom.getParent(selection.getNode(), function(node) {
+					if (node.nodeType == 1 && counter++ == value) {
+						selection.select(node);
+						return FALSE;
+					}
+				}, editor.getBody());
+			},
+
+			mceSelectNode : function(command, ui, value) {
+				selection.select(value);
+			},
+
+			mceInsertContent : function(command, ui, value) {
+				var parser, serializer, parentNode, rootNode, fragment, args,
+					marker, nodeRect, viewPortRect, rng, node, node2, bookmarkHtml, viewportBodyElement;
+
+				//selection.normalize();
+
+				// Setup parser and serializer
+				parser = editor.parser;
+				serializer = new tinymce.html.Serializer({}, editor.schema);
+				bookmarkHtml = '<span id="mce_marker" data-mce-type="bookmark">\uFEFF</span>';
+
+				// Run beforeSetContent handlers on the HTML to be inserted
+				args = {content: value, format: 'html'};
+				selection.onBeforeSetContent.dispatch(selection, args);
+				value = args.content;
+
+				// Add caret at end of contents if it's missing
+				if (value.indexOf('{$caret}') == -1)
+					value += '{$caret}';
+
+				// Replace the caret marker with a span bookmark element
+				value = value.replace(/\{\$caret\}/, bookmarkHtml);
+
+				// Insert node maker where we will insert the new HTML and get it's parent
+				if (!selection.isCollapsed())
+					editor.getDoc().execCommand('Delete', false, null);
+
+				parentNode = selection.getNode();
+
+				// Parse the fragment within the context of the parent node
+				args = {context : parentNode.nodeName.toLowerCase()};
+				fragment = parser.parse(value, args);
+
+				// Move the caret to a more suitable location
+				node = fragment.lastChild;
+				if (node.attr('id') == 'mce_marker') {
+					marker = node;
+
+					for (node = node.prev; node; node = node.walk(true)) {
+						if (node.type == 3 || !dom.isBlock(node.name)) {
+							node.parent.insert(marker, node, node.name === 'br');
+							break;
+						}
+					}
+				}
+
+				// If parser says valid we can insert the contents into that parent
+				if (!args.invalid) {
+					value = serializer.serialize(fragment);
+
+					// Check if parent is empty or only has one BR element then set the innerHTML of that parent
+					node = parentNode.firstChild;
+					node2 = parentNode.lastChild;
+					if (!node || (node === node2 && node.nodeName === 'BR'))
+						dom.setHTML(parentNode, value);
+					else
+						selection.setContent(value);
+				} else {
+					// If the fragment was invalid within that context then we need
+					// to parse and process the parent it's inserted into
+
+					// Insert bookmark node and get the parent
+					selection.setContent(bookmarkHtml);
+					parentNode = editor.selection.getNode();
+					rootNode = editor.getBody();
+
+					// Opera will return the document node when selection is in root
+					if (parentNode.nodeType == 9)
+						parentNode = node = rootNode;
+					else
+						node = parentNode;
+
+					// Find the ancestor just before the root element
+					while (node !== rootNode) {
+						parentNode = node;
+						node = node.parentNode;
+					}
+
+					// Get the outer/inner HTML depending on if we are in the root and parser and serialize that
+					value = parentNode == rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);
+					value = serializer.serialize(
+						parser.parse(
+							// Need to replace by using a function since $ in the contents would otherwise be a problem
+							value.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function() {
+								return serializer.serialize(fragment);
+							})
+						)
+					);
+
+					// Set the inner/outer HTML depending on if we are in the root or not
+					if (parentNode == rootNode)
+						dom.setHTML(rootNode, value);
+					else
+						dom.setOuterHTML(parentNode, value);
+				}
+
+				marker = dom.get('mce_marker');
+
+				// Scroll range into view scrollIntoView on element can't be used since it will scroll the main view port as well
+				nodeRect = dom.getRect(marker);
+				viewPortRect = dom.getViewPort(editor.getWin());
+
+				// Check if node is out side the viewport if it is then scroll to it
+				if ((nodeRect.y + nodeRect.h > viewPortRect.y + viewPortRect.h || nodeRect.y < viewPortRect.y) ||
+					(nodeRect.x > viewPortRect.x + viewPortRect.w || nodeRect.x < viewPortRect.x)) {
+					viewportBodyElement = tinymce.isIE ? editor.getDoc().documentElement : editor.getBody();
+					viewportBodyElement.scrollLeft = nodeRect.x;
+					viewportBodyElement.scrollTop = nodeRect.y - viewPortRect.h + 25;
+				}
+
+				// Move selection before marker and remove it
+				rng = dom.createRng();
+
+				// If previous sibling is a text node set the selection to the end of that node
+				node = marker.previousSibling;
+				if (node && node.nodeType == 3) {
+					rng.setStart(node, node.nodeValue.length);
+				} else {
+					// If the previous sibling isn't a text node or doesn't exist set the selection before the marker node
+					rng.setStartBefore(marker);
+					rng.setEndBefore(marker);
+				}
+
+				// Remove the marker node and set the new range
+				dom.remove(marker);
+				selection.setRng(rng);
+
+				// Dispatch after event and add any visual elements needed
+				selection.onSetContent.dispatch(selection, args);
+				editor.addVisual();
+			},
+
+			mceInsertRawHTML : function(command, ui, value) {
+				selection.setContent('tiny_mce_marker');
+				editor.setContent(editor.getContent().replace(/tiny_mce_marker/g, function() { return value }));
+			},
+
+			mceSetContent : function(command, ui, value) {
+				editor.setContent(value);
+			},
+
+			'Indent,Outdent' : function(command) {
+				var intentValue, indentUnit, value;
+
+				// Setup indent level
+				intentValue = settings.indentation;
+				indentUnit = /[a-z%]+$/i.exec(intentValue);
+				intentValue = parseInt(intentValue);
+
+				if (!queryCommandState('InsertUnorderedList') && !queryCommandState('InsertOrderedList')) {
+					each(selection.getSelectedBlocks(), function(element) {
+						if (command == 'outdent') {
+							value = Math.max(0, parseInt(element.style.paddingLeft || 0) - intentValue);
+							dom.setStyle(element, 'paddingLeft', value ? value + indentUnit : '');
+						} else
+							dom.setStyle(element, 'paddingLeft', (parseInt(element.style.paddingLeft || 0) + intentValue) + indentUnit);
+					});
+				} else
+					execNativeCommand(command);
+			},
+
+			mceRepaint : function() {
+				var bookmark;
+
+				if (tinymce.isGecko) {
+					try {
+						storeSelection(TRUE);
+
+						if (selection.getSel())
+							selection.getSel().selectAllChildren(editor.getBody());
+
+						selection.collapse(TRUE);
+						restoreSelection();
+					} catch (ex) {
+						// Ignore
+					}
+				}
+			},
+
+			mceToggleFormat : function(command, ui, value) {
+				formatter.toggle(value);
+			},
+
+			InsertHorizontalRule : function() {
+				editor.execCommand('mceInsertContent', false, '<hr />');
+			},
+
+			mceToggleVisualAid : function() {
+				editor.hasVisual = !editor.hasVisual;
+				editor.addVisual();
+			},
+
+			mceReplaceContent : function(command, ui, value) {
+				editor.execCommand('mceInsertContent', false, value.replace(/\{\$selection\}/g, selection.getContent({format : 'text'})));
+			},
+
+			mceInsertLink : function(command, ui, value) {
+				var anchor;
+
+				if (typeof(value) == 'string')
+					value = {href : value};
+
+				anchor = dom.getParent(selection.getNode(), 'a');
+
+				// Spaces are never valid in URLs and it's a very common mistake for people to make so we fix it here.
+				value.href = value.href.replace(' ', '%20');
+
+				// Remove existing links if there could be child links or that the href isn't specified
+				if (!anchor || !value.href) {
+					formatter.remove('link');
+				}		
+
+				// Apply new link to selection
+				if (value.href) {
+					formatter.apply('link', value, anchor);
+				}
+			},
+
+			selectAll : function() {
+				var root = dom.getRoot(), rng = dom.createRng();
+
+				rng.setStart(root, 0);
+				rng.setEnd(root, root.childNodes.length);
+
+				editor.selection.setRng(rng);
+			}
+		});
+
+		// Add queryCommandState overrides
+		addCommands({
+			// Override justify commands
+			'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull' : function(command) {
+				var name = 'align' + command.substring(7);
+				// Use Formatter.matchNode instead of Formatter.match so that we don't match on parent node. This fixes bug where for both left
+				// and right align buttons can be active. This could occur when selected nodes have align right and the parent has align left.
+				var nodes = selection.isCollapsed() ? [selection.getNode()] : selection.getSelectedBlocks();
+				var matches = tinymce.map(nodes, function(node) {
+					return !!formatter.matchNode(node, name);
+				});
+				return tinymce.inArray(matches, TRUE) !== -1;
+			},
+
+			'Bold,Italic,Underline,Strikethrough,Superscript,Subscript' : function(command) {
+				return isFormatMatch(command);
+			},
+
+			mceBlockQuote : function() {
+				return isFormatMatch('blockquote');
+			},
+
+			Outdent : function() {
+				var node;
+
+				if (settings.inline_styles) {
+					if ((node = dom.getParent(selection.getStart(), dom.isBlock)) && parseInt(node.style.paddingLeft) > 0)
+						return TRUE;
+
+					if ((node = dom.getParent(selection.getEnd(), dom.isBlock)) && parseInt(node.style.paddingLeft) > 0)
+						return TRUE;
+				}
+
+				return queryCommandState('InsertUnorderedList') || queryCommandState('InsertOrderedList') || (!settings.inline_styles && !!dom.getParent(selection.getNode(), 'BLOCKQUOTE'));
+			},
+
+			'InsertUnorderedList,InsertOrderedList' : function(command) {
+				return dom.getParent(selection.getNode(), command == 'insertunorderedlist' ? 'UL' : 'OL');
+			}
+		}, 'state');
+
+		// Add queryCommandValue overrides
+		addCommands({
+			'FontSize,FontName' : function(command) {
+				var value = 0, parent;
+
+				if (parent = dom.getParent(selection.getNode(), 'span')) {
+					if (command == 'fontsize')
+						value = parent.style.fontSize;
+					else
+						value = parent.style.fontFamily.replace(/, /g, ',').replace(/[\'\"]/g, '').toLowerCase();
+				}
+
+				return value;
+			}
+		}, 'value');
+
+		// Add undo manager logic
+		if (settings.custom_undo_redo) {
+			addCommands({
+				Undo : function() {
+					editor.undoManager.undo();
+				},
+
+				Redo : function() {
+					editor.undoManager.redo();
+				}
+			});
+		}
+	};
+})(tinymce);
+
+(function(tinymce) {
+	var Dispatcher = tinymce.util.Dispatcher;
+
+	tinymce.UndoManager = function(editor) {
+		var self, index = 0, data = [], beforeBookmark;
+
+		function getContent() {
+			// Remove whitespace before/after and remove pure bogus nodes
+			return tinymce.trim(editor.getContent({format : 'raw', no_events : 1}).replace(/<span[^>]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\/span>/g, ''));
+		};
+
+		return self = {
+			typing : false,
+
+			onAdd : new Dispatcher(self),
+
+			onUndo : new Dispatcher(self),
+
+			onRedo : new Dispatcher(self),
+
+			beforeChange : function() {
+				beforeBookmark = editor.selection.getBookmark(2, true);
+			},
+
+			add : function(level) {
+				var i, settings = editor.settings, lastLevel;
+
+				level = level || {};
+				level.content = getContent();
+
+				// Add undo level if needed
+				lastLevel = data[index];
+				if (lastLevel && lastLevel.content == level.content)
+					return null;
+
+				// Set before bookmark on previous level
+				if (data[index])
+					data[index].beforeBookmark = beforeBookmark;
+
+				// Time to compress
+				if (settings.custom_undo_redo_levels) {
+					if (data.length > settings.custom_undo_redo_levels) {
+						for (i = 0; i < data.length - 1; i++)
+							data[i] = data[i + 1];
+
+						data.length--;
+						index = data.length;
+					}
+				}
+
+				// Get a non intrusive normalized bookmark
+				level.bookmark = editor.selection.getBookmark(2, true);
+
+				// Crop array if needed
+				if (index < data.length - 1)
+					data.length = index + 1;
+
+				data.push(level);
+				index = data.length - 1;
+
+				self.onAdd.dispatch(self, level);
+				editor.isNotDirty = 0;
+
+				return level;
+			},
+
+			undo : function() {
+				var level, i;
+
+				if (self.typing) {
+					self.add();
+					self.typing = false;
+				}
+
+				if (index > 0) {
+					level = data[--index];
+
+					editor.setContent(level.content, {format : 'raw'});
+					editor.selection.moveToBookmark(level.beforeBookmark);
+
+					self.onUndo.dispatch(self, level);
+				}
+
+				return level;
+			},
+
+			redo : function() {
+				var level;
+
+				if (index < data.length - 1) {
+					level = data[++index];
+
+					editor.setContent(level.content, {format : 'raw'});
+					editor.selection.moveToBookmark(level.bookmark);
+
+					self.onRedo.dispatch(self, level);
+				}
+
+				return level;
+			},
+
+			clear : function() {
+				data = [];
+				index = 0;
+				self.typing = false;
+			},
+
+			hasUndo : function() {
+				return index > 0 || this.typing;
+			},
+
+			hasRedo : function() {
+				return index < data.length - 1 && !this.typing;
+			}
+		};
+	};
+})(tinymce);
+
+(function(tinymce) {
+	// Shorten names
+	var Event = tinymce.dom.Event,
+		isIE = tinymce.isIE,
+		isGecko = tinymce.isGecko,
+		isOpera = tinymce.isOpera,
+		each = tinymce.each,
+		extend = tinymce.extend,
+		TRUE = true,
+		FALSE = false;
+
+	function splitList(selection, dom, li) {
+		var listBlock, block;
+
+		// TODO: Fix so this doesn't use native IE logic
+		if (dom.isEmpty(li) && !isIE) {
+			listBlock = dom.getParent(li, 'ul,ol');
+
+			if (!dom.getParent(listBlock.parentNode, 'ul,ol')) {
+				dom.split(listBlock, li);
+				block = dom.create('p', 0, '<br data-mce-bogus="1" />');
+				dom.replace(block, li);
+				selection.select(block, 1);
+			}
+
+			return FALSE;
+		}
+
+		return TRUE;
+	};
+
+	tinymce.create('tinymce.ForceBlocks', {
+		ForceBlocks : function(ed) {
+			var t = this, s = ed.settings, elm;
+
+			t.editor = ed;
+			t.dom = ed.dom;
+			elm = (s.forced_root_block || 'p').toLowerCase();
+			s.element = elm.toUpperCase();
+
+			ed.onPreInit.add(t.setup, t);
+		},
+
+		setup : function() {
+			var t = this, ed = t.editor, s = ed.settings, dom = ed.dom, selection = ed.selection, blockElements = ed.schema.getBlockElements();
+
+			// Force root blocks
+			if (s.forced_root_block) {
+				function addRootBlocks() {
+					var node = selection.getStart(), rootNode = ed.getBody(), rng, startContainer, startOffset, endContainer, endOffset, rootBlockNode, tempNode, offset = -0xFFFFFF;
+
+					if (!node || node.nodeType !== 1)
+						return;
+
+					// Check if node is wrapped in block
+					while (node != rootNode) {
+						if (blockElements[node.nodeName])
+							return;
+
+						node = node.parentNode;
+					}
+
+					// Get current selection
+					rng = selection.getRng();
+					if (rng.setStart) {
+						startContainer = rng.startContainer;
+						startOffset = rng.startOffset;
+						endContainer = rng.endContainer;
+						endOffset = rng.endOffset;
+					} else {
+						// Force control range into text range
+						if (rng.item) {
+							rng = ed.getDoc().body.createTextRange();
+							rng.moveToElementText(rng.item(0));
+						}
+
+						tmpRng = rng.duplicate();
+						tmpRng.collapse(true);
+						startOffset = tmpRng.move('character', offset) * -1;
+
+						if (!tmpRng.collapsed) {
+							tmpRng = rng.duplicate();
+							tmpRng.collapse(false);
+							endOffset = (tmpRng.move('character', offset) * -1) - startOffset;
+						}
+					}
+
+					// Wrap non block elements and text nodes
+					for (node = rootNode.firstChild; node; node) {
+						if (node.nodeType === 3 || (node.nodeType == 1 && !blockElements[node.nodeName])) {
+							if (!rootBlockNode) {
+								rootBlockNode = dom.create(s.forced_root_block);
+								node.parentNode.insertBefore(rootBlockNode, node);
+							}
+
+							tempNode = node;
+							node = node.nextSibling;
+							rootBlockNode.appendChild(tempNode);
+						} else {
+							rootBlockNode = null;
+							node = node.nextSibling;
+						}
+					}
+
+					if (rng.setStart) {
+						rng.setStart(startContainer, startOffset);
+						rng.setEnd(endContainer, endOffset);
+						selection.setRng(rng);
+					} else {
+						try {
+							rng = ed.getDoc().body.createTextRange();
+							rng.moveToElementText(rootNode);
+							rng.collapse(true);
+							rng.moveStart('character', startOffset);
+
+							if (endOffset > 0)
+								rng.moveEnd('character', endOffset);
+
+							rng.select();
+						} catch (ex) {
+							// Ignore
+						}
+					}
+
+					ed.nodeChanged();
+				};
+
+				ed.onKeyUp.add(addRootBlocks);
+				ed.onClick.add(addRootBlocks);
+			}
+
+			if (s.force_br_newlines) {
+				// Force IE to produce BRs on enter
+				if (isIE) {
+					ed.onKeyPress.add(function(ed, e) {
+						var n;
+
+						if (e.keyCode == 13 && selection.getNode().nodeName != 'LI') {
+							selection.setContent('<br id="__" /> ', {format : 'raw'});
+							n = dom.get('__');
+							n.removeAttribute('id');
+							selection.select(n);
+							selection.collapse();
+							return Event.cancel(e);
+						}
+					});
+				}
+			}
+
+			if (s.force_p_newlines) {
+				ed.onKeyPress.add(function(ed, e) {
+					if (e.keyCode == 13 && !e.shiftKey && !t.insertPara(e))
+						Event.cancel(e);
+				});
+
+				if (isGecko) {
+					ed.onKeyDown.add(function(ed, e) {
+						if ((e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey)
+							t.backspaceDelete(e, e.keyCode == 8);
+					});
+				}
+			}
+
+			// Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
+			if (tinymce.isWebKit) {
+				function insertBr(ed) {
+					var rng = selection.getRng(), br, div = dom.create('div', null, ' '), divYPos, vpHeight = dom.getViewPort(ed.getWin()).h;
+
+					// Insert BR element
+					rng.insertNode(br = dom.create('br'));
+
+					// Place caret after BR
+					rng.setStartAfter(br);
+					rng.setEndAfter(br);
+					selection.setRng(rng);
+
+					// Could not place caret after BR then insert an nbsp entity and move the caret
+					if (selection.getSel().focusNode == br.previousSibling) {
+						selection.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));
+						selection.collapse(TRUE);
+					}
+
+					// Create a temporary DIV after the BR and get the position as it
+					// seems like getPos() returns 0 for text nodes and BR elements.
+					dom.insertAfter(div, br);
+					divYPos = dom.getPos(div).y;
+					dom.remove(div);
+
+					// Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117
+					if (divYPos > vpHeight) // It is not necessary to scroll if the DIV is inside the view port.
+						ed.getWin().scrollTo(0, divYPos);
+				};
+
+				ed.onKeyPress.add(function(ed, e) {
+					if (e.keyCode == 13 && (e.shiftKey || (s.force_br_newlines && !dom.getParent(selection.getNode(), 'h1,h2,h3,h4,h5,h6,ol,ul')))) {
+						insertBr(ed);
+						Event.cancel(e);
+					}
+				});
+			}
+
+			// IE specific fixes
+			if (isIE) {
+				// Replaces IE:s auto generated paragraphs with the specified element name
+				if (s.element != 'P') {
+					ed.onKeyPress.add(function(ed, e) {
+						t.lastElm = selection.getNode().nodeName;
+					});
+
+					ed.onKeyUp.add(function(ed, e) {
+						var bl, n = selection.getNode(), b = ed.getBody();
+
+						if (b.childNodes.length === 1 && n.nodeName == 'P') {
+							n = dom.rename(n, s.element);
+							selection.select(n);
+							selection.collapse();
+							ed.nodeChanged();
+						} else if (e.keyCode == 13 && !e.shiftKey && t.lastElm != 'P') {
+							bl = dom.getParent(n, 'p');
+
+							if (bl) {
+								dom.rename(bl, s.element);
+								ed.nodeChanged();
+							}
+						}
+					});
+				}
+			}
+		},
+
+		getParentBlock : function(n) {
+			var d = this.dom;
+
+			return d.getParent(n, d.isBlock);
+		},
+
+		insertPara : function(e) {
+			var t = this, ed = t.editor, dom = ed.dom, selection = ed.selection, d = ed.getDoc(), se = ed.settings, s = selection.getSel(), r = selection.getRng(true), b = d.body;
+			var rb, ra, dir, sn, so, en, eo, sb, eb, bn, bef, aft, sc, ec, n, ch, containerBlock, beforeCaretNode, afterCaretNode;
+
+			// Checks if the selection/caret is at the end of the specified block element
+			function isAtEnd(rng, par) {
+				var rng2 = rng.cloneRange();
+
+				rng2.setStart(rng.endContainer, rng.endOffset);
+				rng2.setEndAfter(par);
+
+				// Get number of characters to the right of the cursor if it's zero then we are at the end and need to merge the next block element
+				return dom.isEmpty(rng2.cloneContents());
+			};
+
+			function moveToCaretPosition(root, scroll) {
+				var walker, node, rng, y, vp;
+
+				rng = dom.createRng();
+
+				if (root.hasChildNodes()) {
+					walker = new tinymce.dom.TreeWalker(root, root);
+
+					while (node = walker.current()) {
+						if (node.nodeType == 3) {
+							rng.setStart(node, 0);
+							rng.setEnd(node, 0);
+							break;
+						}
+
+						if (/^(BR|IMG)$/.test(node.nodeName)) {
+							rng.setStartBefore(node);
+							rng.setEndBefore(node);
+							break;
+						}
+						
+						node = walker.next();
+					}
+				} else {
+					rng.setStart(root, 0);
+					rng.setEnd(root, 0);
+				}
+
+				selection.setRng(rng);
+
+				if (scroll !== false) {
+					vp = dom.getViewPort(ed.getWin());
+
+					// scrollIntoView seems to scroll the parent window in most browsers now including FF 3.0b4 so it's time to stop using it and do it our selfs
+					y = dom.getPos(root).y;
+
+					// Is element within viewport
+					if (y < vp.y || y + 25 > vp.y + vp.h) {
+						ed.getWin().scrollTo(0, y < vp.y ? y : y - vp.h + 25); // Needs to be hardcoded to roughly one line of text if a huge text block is broken into two blocks
+
+						/*console.debug(
+							'Element: y=' + y + ', h=' + ch + ', ' +
+							'Viewport: y=' + vp.y + ", h=" + vp.h + ', bottom=' + (vp.y + vp.h)
+						);*/
+					}
+				}
+			};
+
+			function clean(node) {
+				if (node.nodeType == 3 && node.nodeValue.length == 0) {
+					dom.remove(node);
+				}
+
+				if (node.hasChildNodes()) {
+					for (var i = 0; i < node.childNodes.length; i++) {
+						clean(node.childNodes[i]);
+					}
+				}
+			};
+
+			ed.undoManager.beforeChange();
+
+			// If root blocks are forced then use Operas default behavior since it's really good
+// Removed due to bug: #1853816
+//			if (se.forced_root_block && isOpera)
+//				return TRUE;
+
+			// Handle selection direction for browsers that support it
+			if (typeof s.anchorNode != "undefined") {
+				// Setup before range
+				rb = dom.createRng();
+
+				// If is before the first block element and in body, then move it into first block element
+				rb.setStart(s.anchorNode, s.anchorOffset);
+				rb.collapse(TRUE);
+
+				// Setup after range
+				ra = dom.createRng();
+
+				// If is before the first block element and in body, then move it into first block element
+				ra.setStart(s.focusNode, s.focusOffset);
+				ra.collapse(TRUE);
+
+				// Setup start/end points
+				dir = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;
+				sn = dir ? s.anchorNode : s.focusNode;
+				so = dir ? s.anchorOffset : s.focusOffset;
+				en = dir ? s.focusNode : s.anchorNode;
+				eo = dir ? s.focusOffset : s.anchorOffset;
+			} else {
+				rb = r.cloneRange();
+				rb.collapse(TRUE);
+
+				ra = r.cloneRange();
+				ra.collapse(FALSE);
+
+				sn = r.startContainer;
+				so = r.startOffset;
+				en = r.endContainer;
+				eo = r.endOffset;
+			}
+
+			// If selection is in empty table cell
+			if (sn === en && /^(TD|TH)$/.test(sn.nodeName)) {
+				sn.innerHTML = '';
+
+				// Create two new block elements
+				dom.add(sn, se.element, null, isIE ? '' : '<br />');
+				aft = dom.add(sn, se.element, null, isIE ? '' : '<br />');
+				moveToCaretPosition(aft);
+
+				return FALSE;
+			}
+
+			// If the caret is in an invalid location in FF we need to move it into the first block
+			if (sn == b && en == b && b.firstChild && dom.isBlock(b.firstChild)) {
+				sn = en = sn.firstChild;
+				so = eo = 0;
+				rb = dom.createRng();
+				rb.setStart(sn, 0);
+				ra = dom.createRng();
+				ra.setStart(en, 0);
+			}
+
+			// If the body is totally empty add a BR element this might happen on webkit
+			if (!b.hasChildNodes()) {
+				b.appendChild(dom.create('br'));
+			}
+
+			// Never use body as start or end node
+			sn = sn.nodeName == "HTML" ? d.body : sn; // Fix for Opera bug: https://bugs.opera.com/show_bug.cgi?id=273224&comments=yes
+			sn = sn.nodeName == "BODY" ? sn.firstChild : sn;
+			en = en.nodeName == "HTML" ? d.body : en; // Fix for Opera bug: https://bugs.opera.com/show_bug.cgi?id=273224&comments=yes
+			en = en.nodeName == "BODY" ? en.firstChild : en;
+
+			// Get start and end blocks
+			sb = t.getParentBlock(sn);
+			eb = t.getParentBlock(en);
+			bn = sb ? sb.nodeName : se.element; // Get block name to create
+
+			// Break container blocks on enter in empty block element (experimental feature)
+			if (ed.settings.end_container_on_empty_block) {
+				containerBlock = dom.getParent(sb, 'hgroup,blockquote,section,article');
+				if (containerBlock && (dom.isEmpty(sb) || (sb.firstChild === sb.lastChild && (!sb.firstChild || sb.firstChild.nodeName == 'BR')))) {
+					dom.split(containerBlock, sb);
+					selection.select(sb, true);
+					selection.collapse(true);
+					return;
+				}
+			}
+
+			// Return inside list use default browser behavior
+			if (n = t.dom.getParent(sb, 'li')) {
+				if (n.nodeName == 'LI')
+					return splitList(selection, t.dom, n);
+
+				return TRUE;
+			}
+
+			// If caption or absolute layers then always generate new blocks within
+			if (sb && (sb.nodeName == 'CAPTION' || /absolute|relative|fixed/gi.test(dom.getStyle(sb, 'position', 1)))) {
+				bn = se.element;
+				sb = null;
+			}
+
+			// If caption or absolute layers then always generate new blocks within
+			if (eb && (eb.nodeName == 'CAPTION' || /absolute|relative|fixed/gi.test(dom.getStyle(sb, 'position', 1)))) {
+				bn = se.element;
+				eb = null;
+			}
+
+			// Use P instead
+			if (/(TD|TABLE|TH|CAPTION)/.test(bn) || (sb && bn == "DIV" && /left|right/gi.test(dom.getStyle(sb, 'float', 1)))) {
+				bn = se.element;
+				sb = eb = null;
+			}
+
+			// Setup new before and after blocks
+			bef = (sb && sb.nodeName == bn) ? dom.clone(sb, false) : dom.create(bn);
+			aft = (eb && eb.nodeName == bn) ? dom.clone(eb, false) : dom.create(bn);
+
+			// Remove id from after clone
+			aft.removeAttribute('id');
+
+			// Is header and cursor is at the end, then force paragraph under
+			if (/^(H[1-6])$/.test(bn) && isAtEnd(r, sb, dom)) {
+				aft = dom.create(se.element);
+
+				// Use header name as copy if we are in a hgroup
+				if (t.dom.getParent(sb, 'hgroup')) {
+					aft = dom.create(bn);
+				}
+			}
+
+			// Find start chop node
+			n = sc = sn;
+			do {
+				if (n == b || n.nodeType == 9 || t.dom.isBlock(n) || /(TD|TABLE|TH|CAPTION)/.test(n.nodeName))
+					break;
+
+				sc = n;
+			} while ((n = n.previousSibling ? n.previousSibling : n.parentNode));
+
+			// Find end chop node
+			n = ec = en;
+			do {
+				if (n == b || n.nodeType == 9 || t.dom.isBlock(n) || /(TD|TABLE|TH|CAPTION)/.test(n.nodeName))
+					break;
+
+				ec = n;
+			} while ((n = n.nextSibling ? n.nextSibling : n.parentNode));
+
+			// Place first chop part into before block element
+			if (sc.nodeName == bn)
+				rb.setStart(sc, 0);
+			else
+				rb.setStartBefore(sc);
+
+			rb.setEnd(sn, so);
+			bef.appendChild(rb.cloneContents() || d.createTextNode('')); // Empty text node needed for Safari
+
+			// Place secnd chop part within new block element
+			try {
+				ra.setEndAfter(ec);
+			} catch(ex) {
+				//console.debug(s.focusNode, s.focusOffset);
+			}
+
+			ra.setStart(en, eo);
+			aft.appendChild(ra.cloneContents() || d.createTextNode('')); // Empty text node needed for Safari
+
+			// Create range around everything
+			r = dom.createRng();
+			if (!sc.previousSibling && sc.parentNode.nodeName == bn) {
+				r.setStartBefore(sc.parentNode);
+			} else {
+				if (rb.startContainer.nodeName == bn && rb.startOffset == 0)
+					r.setStartBefore(rb.startContainer);
+				else
+					r.setStart(rb.startContainer, rb.startOffset);
+			}
+
+			if (!ec.nextSibling && ec.parentNode.nodeName == bn)
+				r.setEndAfter(ec.parentNode);
+			else
+				r.setEnd(ra.endContainer, ra.endOffset);
+
+			if (!isIE || sb != eb || (sb && !dom.isEmpty(sb))) {
+				r.deleteContents();
+			}
+
+			// Remove range end point if it's empty
+			n = r.startContainer.childNodes[r.startOffset];
+			if (n && !n.hasChildNodes()) {
+				dom.remove(n);
+			}
+
+			// Never wrap blocks in blocks
+			if (bef.firstChild && bef.firstChild.nodeName == bn)
+				bef.innerHTML = bef.firstChild.innerHTML;
+
+			if (aft.firstChild && aft.firstChild.nodeName == bn)
+				aft.innerHTML = aft.firstChild.innerHTML;
+
+			function appendStyles(e, en) {
+				var nl = [], nn, n, i, padd;
+
+				 // Use BR on W3C browsers and empty string on IE
+				padd = isIE ? '' : '<br />';
+
+				// Needs to be removed using removeChild since innerHTML adds   on IE
+				while (e.firstChild) {
+					e.removeChild(e.firstChild);
+				}
+
+				// Make clones of style elements
+				if (se.keep_styles) {
+					n = en;
+					do {
+						// We only want style specific elements
+						if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(n.nodeName)) {
+							nn = n.cloneNode(FALSE);
+							dom.setAttrib(nn, 'id', ''); // Remove ID since it needs to be unique
+							nl.push(nn);
+						}
+					} while (n = n.parentNode);
+				}
+
+				// Append style elements to aft
+				if (nl.length > 0) {
+					for (i = nl.length - 1, nn = e; i >= 0; i--)
+						nn = nn.appendChild(nl[i]);
+
+					// Padd most inner style element
+					nl[0].innerHTML = padd;
+					return nl[0]; // Move caret to most inner element
+				} else
+					e.innerHTML = padd;
+
+				return e;
+			};
+
+			// IE gets messed up if the elements has empty text nodes in them this might
+			// happen when the range spits at the end/beginning of a text node.
+			// @todo: The acutal bug should be fixed in the Range.js file this is a hot patch
+			if (isIE) {
+				clean(bef);
+				clean(aft);
+			}
+
+			// Padd empty blocks
+			if (dom.isEmpty(bef)) {
+				beforeCaretNode = appendStyles(bef, sn);
+			}
+
+			// Fill empty afterblook with current style
+			if (dom.isEmpty(aft))
+				afterCaretNode = appendStyles(aft, en);
+
+			// Opera needs this one backwards for older versions
+			if (isOpera && parseFloat(opera.version()) < 9.5) {
+				r.insertNode(bef);
+				r.insertNode(aft);
+			} else {
+				r.insertNode(aft);
+				r.insertNode(bef);
+			}
+
+			// IE doesn't render empty block elements unless you poke it with a selection
+			// So we need to detect old IE and then move the caret into that block to "render it"
+			if (selection.tridentSel && beforeCaretNode) {
+				moveToCaretPosition(beforeCaretNode, false);
+			}
+
+			moveToCaretPosition(afterCaretNode || aft);
+			ed.undoManager.add();
+
+			return FALSE;
+		},
+
+		backspaceDelete : function(e, bs) {
+			var t = this, ed = t.editor, b = ed.getBody(), dom = ed.dom, n, se = ed.selection, r = se.getRng(), sc = r.startContainer, n, w, tn, walker;
+
+			// Delete when caret is behind a element doesn't work correctly on Gecko see #3011651
+			if (!bs && r.collapsed && sc.nodeType == 1 && r.startOffset == sc.childNodes.length) {
+				walker = new tinymce.dom.TreeWalker(sc.lastChild, sc);
+
+				// Walk the dom backwards until we find a text node
+				for (n = sc.lastChild; n; n = walker.prev()) {
+					if (n.nodeType == 3) {
+						r.setStart(n, n.nodeValue.length);
+						r.collapse(true);
+						se.setRng(r);
+						return;
+					}
+				}
+			}
+
+			// The caret sometimes gets stuck in Gecko if you delete empty paragraphs
+			// This workaround removes the element by hand and moves the caret to the previous element
+			if (sc && ed.dom.isBlock(sc) && !/^(TD|TH)$/.test(sc.nodeName) && bs) {
+				if (sc.childNodes.length == 0 || (sc.childNodes.length == 1 && sc.firstChild.nodeName == 'BR')) {
+					// Find previous block element
+					n = sc;
+					while ((n = n.previousSibling) && !ed.dom.isBlock(n)) ;
+
+					if (n) {
+						if (sc != b.firstChild) {
+							// Find last text node
+							w = ed.dom.doc.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, FALSE);
+							while (tn = w.nextNode())
+								n = tn;
+
+							// Place caret at the end of last text node
+							r = ed.getDoc().createRange();
+							r.setStart(n, n.nodeValue ? n.nodeValue.length : 0);
+							r.setEnd(n, n.nodeValue ? n.nodeValue.length : 0);
+							se.setRng(r);
+
+							// Remove the target container
+							ed.dom.remove(sc);
+						}
+
+						return Event.cancel(e);
+					}
+				}
+			}
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	// Shorten names
+	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, extend = tinymce.extend;
+
+	tinymce.create('tinymce.ControlManager', {
+		ControlManager : function(ed, s) {
+			var t = this, i;
+
+			s = s || {};
+			t.editor = ed;
+			t.controls = {};
+			t.onAdd = new tinymce.util.Dispatcher(t);
+			t.onPostRender = new tinymce.util.Dispatcher(t);
+			t.prefix = s.prefix || ed.id + '_';
+			t._cls = {};
+
+			t.onPostRender.add(function() {
+				each(t.controls, function(c) {
+					c.postRender();
+				});
+			});
+		},
+
+		get : function(id) {
+			return this.controls[this.prefix + id] || this.controls[id];
+		},
+
+		setActive : function(id, s) {
+			var c = null;
+
+			if (c = this.get(id))
+				c.setActive(s);
+
+			return c;
+		},
+
+		setDisabled : function(id, s) {
+			var c = null;
+
+			if (c = this.get(id))
+				c.setDisabled(s);
+
+			return c;
+		},
+
+		add : function(c) {
+			var t = this;
+
+			if (c) {
+				t.controls[c.id] = c;
+				t.onAdd.dispatch(c, t);
+			}
+
+			return c;
+		},
+
+		createControl : function(n) {
+			var c, t = this, ed = t.editor;
+
+			each(ed.plugins, function(p) {
+				if (p.createControl) {
+					c = p.createControl(n, t);
+
+					if (c)
+						return false;
+				}
+			});
+
+			switch (n) {
+				case "|":
+				case "separator":
+					return t.createSeparator();
+			}
+
+			if (!c && ed.buttons && (c = ed.buttons[n]))
+				return t.createButton(n, c);
+
+			return t.add(c);
+		},
+
+		createDropMenu : function(id, s, cc) {
+			var t = this, ed = t.editor, c, bm, v, cls;
+
+			s = extend({
+				'class' : 'mceDropDown',
+				constrain : ed.settings.constrain_menus
+			}, s);
+
+			s['class'] = s['class'] + ' ' + ed.getParam('skin') + 'Skin';
+			if (v = ed.getParam('skin_variant'))
+				s['class'] += ' ' + ed.getParam('skin') + 'Skin' + v.substring(0, 1).toUpperCase() + v.substring(1);
+
+			id = t.prefix + id;
+			cls = cc || t._cls.dropmenu || tinymce.ui.DropMenu;
+			c = t.controls[id] = new cls(id, s);
+			c.onAddItem.add(function(c, o) {
+				var s = o.settings;
+
+				s.title = ed.getLang(s.title, s.title);
+
+				if (!s.onclick) {
+					s.onclick = function(v) {
+						if (s.cmd)
+							ed.execCommand(s.cmd, s.ui || false, s.value);
+					};
+				}
+			});
+
+			ed.onRemove.add(function() {
+				c.destroy();
+			});
+
+			// Fix for bug #1897785, #1898007
+			if (tinymce.isIE) {
+				c.onShowMenu.add(function() {
+					// IE 8 needs focus in order to store away a range with the current collapsed caret location
+					ed.focus();
+
+					bm = ed.selection.getBookmark(1);
+				});
+
+				c.onHideMenu.add(function() {
+					if (bm) {
+						ed.selection.moveToBookmark(bm);
+						bm = 0;
+					}
+				});
+			}
+
+			return t.add(c);
+		},
+
+		createListBox : function(id, s, cc) {
+			var t = this, ed = t.editor, cmd, c, cls;
+
+			if (t.get(id))
+				return null;
+
+			s.title = ed.translate(s.title);
+			s.scope = s.scope || ed;
+
+			if (!s.onselect) {
+				s.onselect = function(v) {
+					ed.execCommand(s.cmd, s.ui || false, v || s.value);
+				};
+			}
+
+			s = extend({
+				title : s.title,
+				'class' : 'mce_' + id,
+				scope : s.scope,
+				control_manager : t
+			}, s);
+
+			id = t.prefix + id;
+
+
+			function useNativeListForAccessibility(ed) {
+				return ed.settings.use_accessible_selects && !tinymce.isGecko
+			}
+
+			if (ed.settings.use_native_selects || useNativeListForAccessibility(ed))
+				c = new tinymce.ui.NativeListBox(id, s);
+			else {
+				cls = cc || t._cls.listbox || tinymce.ui.ListBox;
+				c = new cls(id, s, ed);
+			}
+
+			t.controls[id] = c;
+
+			// Fix focus problem in Safari
+			if (tinymce.isWebKit) {
+				c.onPostRender.add(function(c, n) {
+					// Store bookmark on mousedown
+					Event.add(n, 'mousedown', function() {
+						ed.bookmark = ed.selection.getBookmark(1);
+					});
+
+					// Restore on focus, since it might be lost
+					Event.add(n, 'focus', function() {
+						ed.selection.moveToBookmark(ed.bookmark);
+						ed.bookmark = null;
+					});
+				});
+			}
+
+			if (c.hideMenu)
+				ed.onMouseDown.add(c.hideMenu, c);
+
+			return t.add(c);
+		},
+
+		createButton : function(id, s, cc) {
+			var t = this, ed = t.editor, o, c, cls;
+
+			if (t.get(id))
+				return null;
+
+			s.title = ed.translate(s.title);
+			s.label = ed.translate(s.label);
+			s.scope = s.scope || ed;
+
+			if (!s.onclick && !s.menu_button) {
+				s.onclick = function() {
+					ed.execCommand(s.cmd, s.ui || false, s.value);
+				};
+			}
+
+			s = extend({
+				title : s.title,
+				'class' : 'mce_' + id,
+				unavailable_prefix : ed.getLang('unavailable', ''),
+				scope : s.scope,
+				control_manager : t
+			}, s);
+
+			id = t.prefix + id;
+
+			if (s.menu_button) {
+				cls = cc || t._cls.menubutton || tinymce.ui.MenuButton;
+				c = new cls(id, s, ed);
+				ed.onMouseDown.add(c.hideMenu, c);
+			} else {
+				cls = t._cls.button || tinymce.ui.Button;
+				c = new cls(id, s, ed);
+			}
+
+			return t.add(c);
+		},
+
+		createMenuButton : function(id, s, cc) {
+			s = s || {};
+			s.menu_button = 1;
+
+			return this.createButton(id, s, cc);
+		},
+
+		createSplitButton : function(id, s, cc) {
+			var t = this, ed = t.editor, cmd, c, cls;
+
+			if (t.get(id))
+				return null;
+
+			s.title = ed.translate(s.title);
+			s.scope = s.scope || ed;
+
+			if (!s.onclick) {
+				s.onclick = function(v) {
+					ed.execCommand(s.cmd, s.ui || false, v || s.value);
+				};
+			}
+
+			if (!s.onselect) {
+				s.onselect = function(v) {
+					ed.execCommand(s.cmd, s.ui || false, v || s.value);
+				};
+			}
+
+			s = extend({
+				title : s.title,
+				'class' : 'mce_' + id,
+				scope : s.scope,
+				control_manager : t
+			}, s);
+
+			id = t.prefix + id;
+			cls = cc || t._cls.splitbutton || tinymce.ui.SplitButton;
+			c = t.add(new cls(id, s, ed));
+			ed.onMouseDown.add(c.hideMenu, c);
+
+			return c;
+		},
+
+		createColorSplitButton : function(id, s, cc) {
+			var t = this, ed = t.editor, cmd, c, cls, bm;
+
+			if (t.get(id))
+				return null;
+
+			s.title = ed.translate(s.title);
+			s.scope = s.scope || ed;
+
+			if (!s.onclick) {
+				s.onclick = function(v) {
+					if (tinymce.isIE)
+						bm = ed.selection.getBookmark(1);
+
+					ed.execCommand(s.cmd, s.ui || false, v || s.value);
+				};
+			}
+
+			if (!s.onselect) {
+				s.onselect = function(v) {
+					ed.execCommand(s.cmd, s.ui || false, v || s.value);
+				};
+			}
+
+			s = extend({
+				title : s.title,
+				'class' : 'mce_' + id,
+				'menu_class' : ed.getParam('skin') + 'Skin',
+				scope : s.scope,
+				more_colors_title : ed.getLang('more_colors')
+			}, s);
+
+			id = t.prefix + id;
+			cls = cc || t._cls.colorsplitbutton || tinymce.ui.ColorSplitButton;
+			c = new cls(id, s, ed);
+			ed.onMouseDown.add(c.hideMenu, c);
+
+			// Remove the menu element when the editor is removed
+			ed.onRemove.add(function() {
+				c.destroy();
+			});
+
+			// Fix for bug #1897785, #1898007
+			if (tinymce.isIE) {
+				c.onShowMenu.add(function() {
+					// IE 8 needs focus in order to store away a range with the current collapsed caret location
+					ed.focus();
+					bm = ed.selection.getBookmark(1);
+				});
+
+				c.onHideMenu.add(function() {
+					if (bm) {
+						ed.selection.moveToBookmark(bm);
+						bm = 0;
+					}
+				});
+			}
+
+			return t.add(c);
+		},
+
+		createToolbar : function(id, s, cc) {
+			var c, t = this, cls;
+
+			id = t.prefix + id;
+			cls = cc || t._cls.toolbar || tinymce.ui.Toolbar;
+			c = new cls(id, s, t.editor);
+
+			if (t.get(id))
+				return null;
+
+			return t.add(c);
+		},
+		
+		createToolbarGroup : function(id, s, cc) {
+			var c, t = this, cls;
+			id = t.prefix + id;
+			cls = cc || this._cls.toolbarGroup || tinymce.ui.ToolbarGroup;
+			c = new cls(id, s, t.editor);
+			
+			if (t.get(id))
+				return null;
+			
+			return t.add(c);
+		},
+
+		createSeparator : function(cc) {
+			var cls = cc || this._cls.separator || tinymce.ui.Separator;
+
+			return new cls();
+		},
+
+		setControlType : function(n, c) {
+			return this._cls[n.toLowerCase()] = c;
+		},
+	
+		destroy : function() {
+			each(this.controls, function(c) {
+				c.destroy();
+			});
+
+			this.controls = null;
+		}
+	});
+})(tinymce);
+
+(function(tinymce) {
+	var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each, isIE = tinymce.isIE, isOpera = tinymce.isOpera;
+
+	tinymce.create('tinymce.WindowManager', {
+		WindowManager : function(ed) {
+			var t = this;
+
+			t.editor = ed;
+			t.onOpen = new Dispatcher(t);
+			t.onClose = new Dispatcher(t);
+			t.params = {};
+			t.features = {};
+		},
+
+		open : function(s, p) {
+			var t = this, f = '', x, y, mo = t.editor.settings.dialog_type == 'modal', w, sw, sh, vp = tinymce.DOM.getViewPort(), u;
+
+			// Default some options
+			s = s || {};
+			p = p || {};
+			sw = isOpera ? vp.w : screen.width; // Opera uses windows inside the Opera window
+			sh = isOpera ? vp.h : screen.height;
+			s.name = s.name || 'mc_' + new Date().getTime();
+			s.width = parseInt(s.width || 320);
+			s.height = parseInt(s.height || 240);
+			s.resizable = true;
+			s.left = s.left || parseInt(sw / 2.0) - (s.width / 2.0);
+			s.top = s.top || parseInt(sh / 2.0) - (s.height / 2.0);
+			p.inline = false;
+			p.mce_width = s.width;
+			p.mce_height = s.height;
+			p.mce_auto_focus = s.auto_focus;
+
+			if (mo) {
+				if (isIE) {
+					s.center = true;
+					s.help = false;
+					s.dialogWidth = s.width + 'px';
+					s.dialogHeight = s.height + 'px';
+					s.scroll = s.scrollbars || false;
+				}
+			}
+
+			// Build features string
+			each(s, function(v, k) {
+				if (tinymce.is(v, 'boolean'))
+					v = v ? 'yes' : 'no';
+
+				if (!/^(name|url)$/.test(k)) {
+					if (isIE && mo)
+						f += (f ? ';' : '') + k + ':' + v;
+					else
+						f += (f ? ',' : '') + k + '=' + v;
+				}
+			});
+
+			t.features = s;
+			t.params = p;
+			t.onOpen.dispatch(t, s, p);
+
+			u = s.url || s.file;
+			u = tinymce._addVer(u);
+
+			try {
+				if (isIE && mo) {
+					w = 1;
+					window.showModalDialog(u, window, f);
+				} else
+					w = window.open(u, s.name, f);
+			} catch (ex) {
+				// Ignore
+			}
+
+			if (!w)
+				alert(t.editor.getLang('popup_blocked'));
+		},
+
+		close : function(w) {
+			w.close();
+			this.onClose.dispatch(this);
+		},
+
+		createInstance : function(cl, a, b, c, d, e) {
+			var f = tinymce.resolve(cl);
+
+			return new f(a, b, c, d, e);
+		},
+
+		confirm : function(t, cb, s, w) {
+			w = w || window;
+
+			cb.call(s || this, w.confirm(this._decode(this.editor.getLang(t, t))));
+		},
+
+		alert : function(tx, cb, s, w) {
+			var t = this;
+
+			w = w || window;
+			w.alert(t._decode(t.editor.getLang(tx, tx)));
+
+			if (cb)
+				cb.call(s || t);
+		},
+
+		resizeBy : function(dw, dh, win) {
+			win.resizeBy(dw, dh);
+		},
+
+		// Internal functions
+
+		_decode : function(s) {
+			return tinymce.DOM.decode(s).replace(/\\n/g, '\n');
+		}
+	});
+}(tinymce));
+(function(tinymce) {
+	tinymce.Formatter = function(ed) {
+		var formats = {},
+			each = tinymce.each,
+			dom = ed.dom,
+			selection = ed.selection,
+			TreeWalker = tinymce.dom.TreeWalker,
+			rangeUtils = new tinymce.dom.RangeUtils(dom),
+			isValid = ed.schema.isValidChild,
+			isBlock = dom.isBlock,
+			forcedRootBlock = ed.settings.forced_root_block,
+			nodeIndex = dom.nodeIndex,
+			INVISIBLE_CHAR = tinymce.isGecko ? '\u200B' : '\uFEFF',
+			MCE_ATTR_RE = /^(src|href|style)$/,
+			FALSE = false,
+			TRUE = true,
+			undefined;
+
+		// Returns the content editable state of a node
+		function getContentEditable(node) {
+			var contentEditable = node.getAttribute("data-mce-contenteditable");
+
+			// Check for fake content editable
+			if (contentEditable && contentEditable !== "inherit") {
+				return contentEditable;
+			}
+
+			// Check for real content editable
+			return node.contentEditable !== "inherit" ? node.contentEditable : null;
+		};
+
+		function isArray(obj) {
+			return obj instanceof Array;
+		};
+
+		function getParents(node, selector) {
+			return dom.getParents(node, selector, dom.getRoot());
+		};
+
+		function isCaretNode(node) {
+			return node.nodeType === 1 && node.id === '_mce_caret';
+		};
+
+		// Public functions
+
+		function get(name) {
+			return name ? formats[name] : formats;
+		};
+
+		function register(name, format) {
+			if (name) {
+				if (typeof(name) !== 'string') {
+					each(name, function(format, name) {
+						register(name, format);
+					});
+				} else {
+					// Force format into array and add it to internal collection
+					format = format.length ? format : [format];
+
+					each(format, function(format) {
+						// Set deep to false by default on selector formats this to avoid removing
+						// alignment on images inside paragraphs when alignment is changed on paragraphs
+						if (format.deep === undefined)
+							format.deep = !format.selector;
+
+						// Default to true
+						if (format.split === undefined)
+							format.split = !format.selector || format.inline;
+
+						// Default to true
+						if (format.remove === undefined && format.selector && !format.inline)
+							format.remove = 'none';
+
+						// Mark format as a mixed format inline + block level
+						if (format.selector && format.inline) {
+							format.mixed = true;
+							format.block_expand = true;
+						}
+
+						// Split classes if needed
+						if (typeof(format.classes) === 'string')
+							format.classes = format.classes.split(/\s+/);
+					});
+
+					formats[name] = format;
+				}
+			}
+		};
+
+		var getTextDecoration = function(node) {
+			var decoration;
+
+			ed.dom.getParent(node, function(n) {
+				decoration = ed.dom.getStyle(n, 'text-decoration');
+				return decoration && decoration !== 'none';
+			});
+
+			return decoration;
+		};
+
+		var processUnderlineAndColor = function(node) {
+			var textDecoration;
+			if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) {
+				textDecoration = getTextDecoration(node.parentNode);
+				if (ed.dom.getStyle(node, 'color') && textDecoration) {
+					ed.dom.setStyle(node, 'text-decoration', textDecoration);
+				} else if (ed.dom.getStyle(node, 'textdecoration') === textDecoration) {
+					ed.dom.setStyle(node, 'text-decoration', null);
+				}
+			}
+		};
+
+		function apply(name, vars, node) {
+			var formatList = get(name), format = formatList[0], bookmark, rng, i, isCollapsed = selection.isCollapsed();
+
+			function setElementFormat(elm, fmt) {
+				fmt = fmt || format;
+
+				if (elm) {
+					if (fmt.onformat) {
+						fmt.onformat(elm, fmt, vars, node);
+					}
+
+					each(fmt.styles, function(value, name) {
+						dom.setStyle(elm, name, replaceVars(value, vars));
+					});
+
+					each(fmt.attributes, function(value, name) {
+						dom.setAttrib(elm, name, replaceVars(value, vars));
+					});
+
+					each(fmt.classes, function(value) {
+						value = replaceVars(value, vars);
+
+						if (!dom.hasClass(elm, value))
+							dom.addClass(elm, value);
+					});
+				}
+			};
+			function adjustSelectionToVisibleSelection() {
+				function findSelectionEnd(start, end) {
+					var walker = new TreeWalker(end);
+					for (node = walker.current(); node; node = walker.prev()) {
+						if (node.childNodes.length > 1 || node == start) {
+							return node;
+						}
+					}
+				};
+
+				// Adjust selection so that a end container with a end offset of zero is not included in the selection
+				// as this isn't visible to the user.
+				var rng = ed.selection.getRng();
+				var start = rng.startContainer;
+				var end = rng.endContainer;
+
+				if (start != end && rng.endOffset == 0) {
+					var newEnd = findSelectionEnd(start, end);
+					var endOffset = newEnd.nodeType == 3 ? newEnd.length : newEnd.childNodes.length;
+
+					rng.setEnd(newEnd, endOffset);
+				}
+
+				return rng;
+			}
+			
+			function applyStyleToList(node, bookmark, wrapElm, newWrappers, process){
+				var nodes = [], listIndex = -1, list, startIndex = -1, endIndex = -1, currentWrapElm;
+				
+				// find the index of the first child list.
+				each(node.childNodes, function(n, index) {
+					if (n.nodeName === "UL" || n.nodeName === "OL") {
+						listIndex = index;
+						list = n;
+						return false;
+					}
+				});
+				
+				// get the index of the bookmarks
+				each(node.childNodes, function(n, index) {
+					if (n.nodeName === "SPAN" && dom.getAttrib(n, "data-mce-type") == "bookmark") {
+						if (n.id == bookmark.id + "_start") {
+							startIndex = index;
+						} else if (n.id == bookmark.id + "_end") {
+							endIndex = index;
+						}
+					}
+				});
+				
+				// if the selection spans across an embedded list, or there isn't an embedded list - handle processing normally
+				if (listIndex <= 0 || (startIndex < listIndex && endIndex > listIndex)) {
+					each(tinymce.grep(node.childNodes), process);
+					return 0;
+				} else {
+					currentWrapElm = dom.clone(wrapElm, FALSE);
+
+					// create a list of the nodes on the same side of the list as the selection
+					each(tinymce.grep(node.childNodes), function(n, index) {
+						if ((startIndex < listIndex && index < listIndex) || (startIndex > listIndex && index > listIndex)) {
+							nodes.push(n); 
+							n.parentNode.removeChild(n);
+						}
+					});
+
+					// insert the wrapping element either before or after the list.
+					if (startIndex < listIndex) {
+						node.insertBefore(currentWrapElm, list);
+					} else if (startIndex > listIndex) {
+						node.insertBefore(currentWrapElm, list.nextSibling);
+					}
+					
+					// add the new nodes to the list.
+					newWrappers.push(currentWrapElm);
+
+					each(nodes, function(node) {
+						currentWrapElm.appendChild(node);
+					});
+
+					return currentWrapElm;
+				}
+			};
+
+			function applyRngStyle(rng, bookmark, node_specific) {
+				var newWrappers = [], wrapName, wrapElm, contentEditable = true;
+
+				// Setup wrapper element
+				wrapName = format.inline || format.block;
+				wrapElm = dom.create(wrapName);
+				setElementFormat(wrapElm);
+
+				rangeUtils.walk(rng, function(nodes) {
+					var currentWrapElm;
+
+					function process(node) {
+						var nodeName, parentName, found, hasContentEditableState, lastContentEditable;
+
+						lastContentEditable = contentEditable;
+						nodeName = node.nodeName.toLowerCase();
+						parentName = node.parentNode.nodeName.toLowerCase();
+
+						// Node has a contentEditable value
+						if (node.nodeType === 1 && getContentEditable(node)) {
+							lastContentEditable = contentEditable;
+							contentEditable = getContentEditable(node) === "true";
+							hasContentEditableState = true; // We don't want to wrap the container only it's children
+						}
+
+						// Stop wrapping on br elements
+						if (isEq(nodeName, 'br')) {
+							currentWrapElm = 0;
+
+							// Remove any br elements when we wrap things
+							if (format.block)
+								dom.remove(node);
+
+							return;
+						}
+
+						// If node is wrapper type
+						if (format.wrapper && matchNode(node, name, vars)) {
+							currentWrapElm = 0;
+							return;
+						}
+
+						// Can we rename the block
+						if (contentEditable && !hasContentEditableState && format.block && !format.wrapper && isTextBlock(nodeName)) {
+							node = dom.rename(node, wrapName);
+							setElementFormat(node);
+							newWrappers.push(node);
+							currentWrapElm = 0;
+							return;
+						}
+
+						// Handle selector patterns
+						if (format.selector) {
+							// Look for matching formats
+							each(formatList, function(format) {
+								// Check collapsed state if it exists
+								if ('collapsed' in format && format.collapsed !== isCollapsed) {
+									return;
+								}
+
+								if (dom.is(node, format.selector) && !isCaretNode(node)) {
+									setElementFormat(node, format);
+									found = true;
+								}
+							});
+
+							// Continue processing if a selector match wasn't found and a inline element is defined
+							if (!format.inline || found) {
+								currentWrapElm = 0;
+								return;
+							}
+						}
+
+						// Is it valid to wrap this item
+						if (contentEditable && !hasContentEditableState && isValid(wrapName, nodeName) && isValid(parentName, wrapName) &&
+								!(!node_specific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node)) {
+							// Start wrapping
+							if (!currentWrapElm) {
+								// Wrap the node
+								currentWrapElm = dom.clone(wrapElm, FALSE);
+								node.parentNode.insertBefore(currentWrapElm, node);
+								newWrappers.push(currentWrapElm);
+							}
+
+							currentWrapElm.appendChild(node);
+						} else if (nodeName == 'li' && bookmark) {
+							// Start wrapping - if we are in a list node and have a bookmark, then we will always begin by wrapping in a new element.
+							currentWrapElm = applyStyleToList(node, bookmark, wrapElm, newWrappers, process);
+						} else {
+							// Start a new wrapper for possible children
+							currentWrapElm = 0;
+							
+							each(tinymce.grep(node.childNodes), process);
+
+							if (hasContentEditableState) {
+								contentEditable = lastContentEditable; // Restore last contentEditable state from stack
+							}
+
+							// End the last wrapper
+							currentWrapElm = 0;
+						}
+					};
+
+					// Process siblings from range
+					each(nodes, process);
+				});
+
+				// Wrap links inside as well, for example color inside a link when the wrapper is around the link
+				if (format.wrap_links === false) {
+					each(newWrappers, function(node) {
+						function process(node) {
+							var i, currentWrapElm, children;
+
+							if (node.nodeName === 'A') {
+								currentWrapElm = dom.clone(wrapElm, FALSE);
+								newWrappers.push(currentWrapElm);
+
+								children = tinymce.grep(node.childNodes);
+								for (i = 0; i < children.length; i++)
+									currentWrapElm.appendChild(children[i]);
+
+								node.appendChild(currentWrapElm);
+							}
+
+							each(tinymce.grep(node.childNodes), process);
+						};
+
+						process(node);
+					});
+				}
+
+				// Cleanup
+				
+				each(newWrappers, function(node) {
+					var childCount;
+
+					function getChildCount(node) {
+						var count = 0;
+
+						each(node.childNodes, function(node) {
+							if (!isWhiteSpaceNode(node) && !isBookmarkNode(node))
+								count++;
+						});
+
+						return count;
+					};
+
+					function mergeStyles(node) {
+						var child, clone;
+
+						each(node.childNodes, function(node) {
+							if (node.nodeType == 1 && !isBookmarkNode(node) && !isCaretNode(node)) {
+								child = node;
+								return FALSE; // break loop
+							}
+						});
+
+						// If child was found and of the same type as the current node
+						if (child && matchName(child, format)) {
+							clone = dom.clone(child, FALSE);
+							setElementFormat(clone);
+
+							dom.replace(clone, node, TRUE);
+							dom.remove(child, 1);
+						}
+
+						return clone || node;
+					};
+
+					childCount = getChildCount(node);
+
+					// Remove empty nodes but only if there is multiple wrappers and they are not block
+					// elements so never remove single <h1></h1> since that would remove the currrent empty block element where the caret is at
+					if ((newWrappers.length > 1 || !isBlock(node)) && childCount === 0) {
+						dom.remove(node, 1);
+						return;
+					}
+
+					if (format.inline || format.wrapper) {
+						// Merges the current node with it's children of similar type to reduce the number of elements
+						if (!format.exact && childCount === 1)
+							node = mergeStyles(node);
+
+						// Remove/merge children
+						each(formatList, function(format) {
+							// Merge all children of similar type will move styles from child to parent
+							// this: <span style="color:red"><b><span style="color:red; font-size:10px">text</span></b></span>
+							// will become: <span style="color:red"><b><span style="font-size:10px">text</span></b></span>
+							each(dom.select(format.inline, node), function(child) {
+								var parent;
+
+								// When wrap_links is set to false we don't want
+								// to remove the format on children within links
+								if (format.wrap_links === false) {
+									parent = child.parentNode;
+
+									do {
+										if (parent.nodeName === 'A')
+											return;
+									} while (parent = parent.parentNode);
+								}
+
+								removeFormat(format, vars, child, format.exact ? child : null);
+							});
+						});
+
+						// Remove child if direct parent is of same type
+						if (matchNode(node.parentNode, name, vars)) {
+							dom.remove(node, 1);
+							node = 0;
+							return TRUE;
+						}
+
+						// Look for parent with similar style format
+						if (format.merge_with_parents) {
+							dom.getParent(node.parentNode, function(parent) {
+								if (matchNode(parent, name, vars)) {
+									dom.remove(node, 1);
+									node = 0;
+									return TRUE;
+								}
+							});
+						}
+
+						// Merge next and previous siblings if they are similar <b>text</b><b>text</b> becomes <b>texttext</b>
+						if (node && format.merge_siblings !== false) {
+							node = mergeSiblings(getNonWhiteSpaceSibling(node), node);
+							node = mergeSiblings(node, getNonWhiteSpaceSibling(node, TRUE));
+						}
+					}
+				});
+			};
+
+			if (format) {
+				if (node) {
+					if (node.nodeType) {
+						rng = dom.createRng();
+						rng.setStartBefore(node);
+						rng.setEndAfter(node);
+						applyRngStyle(expandRng(rng, formatList), null, true);
+					} else {
+						applyRngStyle(node, null, true);
+					}
+				} else {
+					if (!isCollapsed || !format.inline || dom.select('td.mceSelected,th.mceSelected').length) {
+						// Obtain selection node before selection is unselected by applyRngStyle()
+						var curSelNode = ed.selection.getNode();
+
+						// Apply formatting to selection
+						ed.selection.setRng(adjustSelectionToVisibleSelection());
+						bookmark = selection.getBookmark();
+						applyRngStyle(expandRng(selection.getRng(TRUE), formatList), bookmark);
+
+						// Colored nodes should be underlined so that the color of the underline matches the text color.
+						if (format.styles && (format.styles.color || format.styles.textDecoration)) {
+							tinymce.walk(curSelNode, processUnderlineAndColor, 'childNodes');
+							processUnderlineAndColor(curSelNode);
+						}
+
+						selection.moveToBookmark(bookmark);
+						moveStart(selection.getRng(TRUE));
+						ed.nodeChanged();
+					} else
+						performCaretAction('apply', name, vars);
+				}
+			}
+		};
+
+		function remove(name, vars, node) {
+			var formatList = get(name), format = formatList[0], bookmark, i, rng, contentEditable = true;
+
+			// Merges the styles for each node
+			function process(node) {
+				var children, i, l, localContentEditable, lastContentEditable, hasContentEditableState;
+
+				// Node has a contentEditable value
+				if (node.nodeType === 1 && getContentEditable(node)) {
+					lastContentEditable = contentEditable;
+					contentEditable = getContentEditable(node) === "true";
+					hasContentEditableState = true; // We don't want to wrap the container only it's children
+				}
+
+				// Grab the children first since the nodelist might be changed
+				children = tinymce.grep(node.childNodes);
+
+				// Process current node
+				if (contentEditable && !hasContentEditableState) {
+					for (i = 0, l = formatList.length; i < l; i++) {
+						if (removeFormat(formatList[i], vars, node, node))
+							break;
+					}
+				}
+
+				// Process the children
+				if (format.deep) {
+					if (children.length) {					
+						for (i = 0, l = children.length; i < l; i++)
+							process(children[i]);
+
+						if (hasContentEditableState) {
+							contentEditable = lastContentEditable; // Restore last contentEditable state from stack
+						}
+					}
+				}
+			};
+
+			function findFormatRoot(container) {
+				var formatRoot;
+
+				// Find format root
+				each(getParents(container.parentNode).reverse(), function(parent) {
+					var format;
+
+					// Find format root element
+					if (!formatRoot && parent.id != '_start' && parent.id != '_end') {
+						// Is the node matching the format we are looking for
+						format = matchNode(parent, name, vars);
+						if (format && format.split !== false)
+							formatRoot = parent;
+					}
+				});
+
+				return formatRoot;
+			};
+
+			function wrapAndSplit(format_root, container, target, split) {
+				var parent, clone, lastClone, firstClone, i, formatRootParent;
+
+				// Format root found then clone formats and split it
+				if (format_root) {
+					formatRootParent = format_root.parentNode;
+
+					for (parent = container.parentNode; parent && parent != formatRootParent; parent = parent.parentNode) {
+						clone = dom.clone(parent, FALSE);
+
+						for (i = 0; i < formatList.length; i++) {
+							if (removeFormat(formatList[i], vars, clone, clone)) {
+								clone = 0;
+								break;
+							}
+						}
+
+						// Build wrapper node
+						if (clone) {
+							if (lastClone)
+								clone.appendChild(lastClone);
+
+							if (!firstClone)
+								firstClone = clone;
+
+							lastClone = clone;
+						}
+					}
+
+					// Never split block elements if the format is mixed
+					if (split && (!format.mixed || !isBlock(format_root)))
+						container = dom.split(format_root, container);
+
+					// Wrap container in cloned formats
+					if (lastClone) {
+						target.parentNode.insertBefore(lastClone, target);
+						firstClone.appendChild(target);
+					}
+				}
+
+				return container;
+			};
+
+			function splitToFormatRoot(container) {
+				return wrapAndSplit(findFormatRoot(container), container, container, true);
+			};
+
+			function unwrap(start) {
+				var node = dom.get(start ? '_start' : '_end'),
+					out = node[start ? 'firstChild' : 'lastChild'];
+
+				// If the end is placed within the start the result will be removed
+				// So this checks if the out node is a bookmark node if it is it
+				// checks for another more suitable node
+				if (isBookmarkNode(out))
+					out = out[start ? 'firstChild' : 'lastChild'];
+
+				dom.remove(node, true);
+
+				return out;
+			};
+
+			function removeRngStyle(rng) {
+				var startContainer, endContainer;
+
+				rng = expandRng(rng, formatList, TRUE);
+
+				if (format.split) {
+					startContainer = getContainer(rng, TRUE);
+					endContainer = getContainer(rng);
+
+					if (startContainer != endContainer) {
+						// Wrap start/end nodes in span element since these might be cloned/moved
+						startContainer = wrap(startContainer, 'span', {id : '_start', 'data-mce-type' : 'bookmark'});
+						endContainer = wrap(endContainer, 'span', {id : '_end', 'data-mce-type' : 'bookmark'});
+
+						// Split start/end
+						splitToFormatRoot(startContainer);
+						splitToFormatRoot(endContainer);
+
+						// Unwrap start/end to get real elements again
+						startContainer = unwrap(TRUE);
+						endContainer = unwrap();
+					} else
+						startContainer = endContainer = splitToFormatRoot(startContainer);
+
+					// Update range positions since they might have changed after the split operations
+					rng.startContainer = startContainer.parentNode;
+					rng.startOffset = nodeIndex(startContainer);
+					rng.endContainer = endContainer.parentNode;
+					rng.endOffset = nodeIndex(endContainer) + 1;
+				}
+
+				// Remove items between start/end
+				rangeUtils.walk(rng, function(nodes) {
+					each(nodes, function(node) {
+						process(node);
+
+						// Remove parent span if it only contains text-decoration: underline, yet a parent node is also underlined.
+						if (node.nodeType === 1 && ed.dom.getStyle(node, 'text-decoration') === 'underline' && node.parentNode && getTextDecoration(node.parentNode) === 'underline') {
+							removeFormat({'deep': false, 'exact': true, 'inline': 'span', 'styles': {'textDecoration' : 'underline'}}, null, node);
+						}
+					});
+				});
+			};
+
+			// Handle node
+			if (node) {
+				if (node.nodeType) {
+					rng = dom.createRng();
+					rng.setStartBefore(node);
+					rng.setEndAfter(node);
+					removeRngStyle(rng);
+				} else {
+					removeRngStyle(node);
+				}
+
+				return;
+			}
+
+			if (!selection.isCollapsed() || !format.inline || dom.select('td.mceSelected,th.mceSelected').length) {
+				bookmark = selection.getBookmark();
+				removeRngStyle(selection.getRng(TRUE));
+				selection.moveToBookmark(bookmark);
+
+				// Check if start element still has formatting then we are at: "<b>text|</b>text" and need to move the start into the next text node
+				if (format.inline && match(name, vars, selection.getStart())) {
+					moveStart(selection.getRng(true));
+				}
+
+				ed.nodeChanged();
+			} else
+				performCaretAction('remove', name, vars);
+
+			// When you remove formatting from a table cell in WebKit (cell, not the contents of a cell) there is a rendering issue with column width
+			if (tinymce.isWebKit) {
+				ed.execCommand('mceCleanup');
+			}
+		};
+
+		function toggle(name, vars, node) {
+			var fmt = get(name);
+
+			if (match(name, vars, node) && (!('toggle' in fmt[0]) || fmt[0]['toggle']))
+				remove(name, vars, node);
+			else
+				apply(name, vars, node);
+		};
+
+		function matchNode(node, name, vars, similar) {
+			var formatList = get(name), format, i, classes;
+
+			function matchItems(node, format, item_name) {
+				var key, value, items = format[item_name], i;
+
+				// Custom match
+				if (format.onmatch) {
+					return format.onmatch(node, format, item_name);
+				}
+
+				// Check all items
+				if (items) {
+					// Non indexed object
+					if (items.length === undefined) {
+						for (key in items) {
+							if (items.hasOwnProperty(key)) {
+								if (item_name === 'attributes')
+									value = dom.getAttrib(node, key);
+								else
+									value = getStyle(node, key);
+
+								if (similar && !value && !format.exact)
+									return;
+
+								if ((!similar || format.exact) && !isEq(value, replaceVars(items[key], vars)))
+									return;
+							}
+						}
+					} else {
+						// Only one match needed for indexed arrays
+						for (i = 0; i < items.length; i++) {
+							if (item_name === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(node, items[i]))
+								return format;
+						}
+					}
+				}
+
+				return format;
+			};
+
+			if (formatList && node) {
+				// Check each format in list
+				for (i = 0; i < formatList.length; i++) {
+					format = formatList[i];
+
+					// Name name, attributes, styles and classes
+					if (matchName(node, format) && matchItems(node, format, 'attributes') && matchItems(node, format, 'styles')) {
+						// Match classes
+						if (classes = format.classes) {
+							for (i = 0; i < classes.length; i++) {
+								if (!dom.hasClass(node, classes[i]))
+									return;
+							}
+						}
+
+						return format;
+					}
+				}
+			}
+		};
+
+		function match(name, vars, node) {
+			var startNode;
+
+			function matchParents(node) {
+				// Find first node with similar format settings
+				node = dom.getParent(node, function(node) {
+					return !!matchNode(node, name, vars, true);
+				});
+
+				// Do an exact check on the similar format element
+				return matchNode(node, name, vars);
+			};
+
+			// Check specified node
+			if (node)
+				return matchParents(node);
+
+			// Check selected node
+			node = selection.getNode();
+			if (matchParents(node))
+				return TRUE;
+
+			// Check start node if it's different
+			startNode = selection.getStart();
+			if (startNode != node) {
+				if (matchParents(startNode))
+					return TRUE;
+			}
+
+			return FALSE;
+		};
+
+		function matchAll(names, vars) {
+			var startElement, matchedFormatNames = [], checkedMap = {}, i, ni, name;
+
+			// Check start of selection for formats
+			startElement = selection.getStart();
+			dom.getParent(startElement, function(node) {
+				var i, name;
+
+				for (i = 0; i < names.length; i++) {
+					name = names[i];
+
+					if (!checkedMap[name] && matchNode(node, name, vars)) {
+						checkedMap[name] = true;
+						matchedFormatNames.push(name);
+					}
+				}
+			});
+
+			return matchedFormatNames;
+		};
+
+		function canApply(name) {
+			var formatList = get(name), startNode, parents, i, x, selector;
+
+			if (formatList) {
+				startNode = selection.getStart();
+				parents = getParents(startNode);
+
+				for (x = formatList.length - 1; x >= 0; x--) {
+					selector = formatList[x].selector;
+
+					// Format is not selector based, then always return TRUE
+					if (!selector)
+						return TRUE;
+
+					for (i = parents.length - 1; i >= 0; i--) {
+						if (dom.is(parents[i], selector))
+							return TRUE;
+					}
+				}
+			}
+
+			return FALSE;
+		};
+
+		// Expose to public
+		tinymce.extend(this, {
+			get : get,
+			register : register,
+			apply : apply,
+			remove : remove,
+			toggle : toggle,
+			match : match,
+			matchAll : matchAll,
+			matchNode : matchNode,
+			canApply : canApply
+		});
+
+		// Private functions
+
+		function matchName(node, format) {
+			// Check for inline match
+			if (isEq(node, format.inline))
+				return TRUE;
+
+			// Check for block match
+			if (isEq(node, format.block))
+				return TRUE;
+
+			// Check for selector match
+			if (format.selector)
+				return dom.is(node, format.selector);
+		};
+
+		function isEq(str1, str2) {
+			str1 = str1 || '';
+			str2 = str2 || '';
+
+			str1 = '' + (str1.nodeName || str1);
+			str2 = '' + (str2.nodeName || str2);
+
+			return str1.toLowerCase() == str2.toLowerCase();
+		};
+
+		function getStyle(node, name) {
+			var styleVal = dom.getStyle(node, name);
+
+			// Force the format to hex
+			if (name == 'color' || name == 'backgroundColor')
+				styleVal = dom.toHex(styleVal);
+
+			// Opera will return bold as 700
+			if (name == 'fontWeight' && styleVal == 700)
+				styleVal = 'bold';
+
+			return '' + styleVal;
+		};
+
+		function replaceVars(value, vars) {
+			if (typeof(value) != "string")
+				value = value(vars);
+			else if (vars) {
+				value = value.replace(/%(\w+)/g, function(str, name) {
+					return vars[name] || str;
+				});
+			}
+
+			return value;
+		};
+
+		function isWhiteSpaceNode(node) {
+			return node && node.nodeType === 3 && /^([\t \r\n]+|)$/.test(node.nodeValue);
+		};
+
+		function wrap(node, name, attrs) {
+			var wrapper = dom.create(name, attrs);
+
+			node.parentNode.insertBefore(wrapper, node);
+			wrapper.appendChild(node);
+
+			return wrapper;
+		};
+
+		function expandRng(rng, format, remove) {
+			var sibling, lastIdx, leaf,
+				startContainer = rng.startContainer,
+				startOffset = rng.startOffset,
+				endContainer = rng.endContainer,
+				endOffset = rng.endOffset, sibling, lastIdx, leaf, endPoint;
+
+			// This function walks up the tree if there is no siblings before/after the node
+			function findParentContainer(start) {
+				var container, parent, child, sibling, siblingName;
+
+				container = parent = start ? startContainer : endContainer;
+				siblingName = start ? 'previousSibling' : 'nextSibling';
+				root = dom.getRoot();
+
+				// If it's a text node and the offset is inside the text
+				if (container.nodeType == 3 && !isWhiteSpaceNode(container)) {
+					if (start ? startOffset > 0 : endOffset < container.nodeValue.length) {
+						return container;
+					}
+				}
+
+				for (;;) {
+					// Stop expanding on block elements
+					if (!format[0].block_expand && isBlock(parent))
+						return parent;
+
+					// Walk left/right
+					for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {
+						if (!isBookmarkNode(sibling) && !isWhiteSpaceNode(sibling)) {
+							return parent;
+						}
+					}
+
+					// Check if we can move up are we at root level or body level
+					if (parent.parentNode == root) {
+						container = parent;
+						break;
+					}
+
+					parent = parent.parentNode;
+				}
+
+				return container;
+			};
+
+			// This function walks down the tree to find the leaf at the selection.
+			// The offset is also returned as if node initially a leaf, the offset may be in the middle of the text node.
+			function findLeaf(node, offset) {
+				if (offset === undefined)
+					offset = node.nodeType === 3 ? node.length : node.childNodes.length;
+				while (node && node.hasChildNodes()) {
+					node = node.childNodes[offset];
+					if (node)
+						offset = node.nodeType === 3 ? node.length : node.childNodes.length;
+				}
+				return { node: node, offset: offset };
+			}
+
+			// If index based start position then resolve it
+			if (startContainer.nodeType == 1 && startContainer.hasChildNodes()) {
+				lastIdx = startContainer.childNodes.length - 1;
+				startContainer = startContainer.childNodes[startOffset > lastIdx ? lastIdx : startOffset];
+
+				if (startContainer.nodeType == 3)
+					startOffset = 0;
+			}
+
+			// If index based end position then resolve it
+			if (endContainer.nodeType == 1 && endContainer.hasChildNodes()) {
+				lastIdx = endContainer.childNodes.length - 1;
+				endContainer = endContainer.childNodes[endOffset > lastIdx ? lastIdx : endOffset - 1];
+
+				if (endContainer.nodeType == 3)
+					endOffset = endContainer.nodeValue.length;
+			}
+
+			// Expands the node to the closes contentEditable false element if it exists
+			function findParentContentEditable(node) {
+				var parent = node;
+
+				while (parent) {
+					if (parent.nodeType === 1 && getContentEditable(parent)) {
+						return getContentEditable(parent) === "false" ? parent : node;
+					}
+
+					parent = parent.parentNode;
+				}
+
+				return node;
+			};
+
+			// Expand to closest contentEditable element
+			startContainer = findParentContentEditable(startContainer);
+			endContainer = findParentContentEditable(endContainer);
+
+			// Exclude bookmark nodes if possible
+			if (isBookmarkNode(startContainer.parentNode) || isBookmarkNode(startContainer)) {
+				startContainer = isBookmarkNode(startContainer) ? startContainer : startContainer.parentNode;
+				startContainer = startContainer.nextSibling || startContainer;
+
+				if (startContainer.nodeType == 3)
+					startOffset = 0;
+			}
+
+			if (isBookmarkNode(endContainer.parentNode) || isBookmarkNode(endContainer)) {
+				endContainer = isBookmarkNode(endContainer) ? endContainer : endContainer.parentNode;
+				endContainer = endContainer.previousSibling || endContainer;
+
+				if (endContainer.nodeType == 3)
+					endOffset = endContainer.length;
+			}
+
+			if (format[0].inline) {
+				if (rng.collapsed) {
+					function findWordEndPoint(container, offset, start) {
+						var walker, node, pos, lastTextNode;
+
+						function findSpace(node, offset) {
+							var pos, pos2, str = node.nodeValue;
+
+							if (typeof(offset) == "undefined") {
+								offset = start ? str.length : 0;
+							}
+
+							if (start) {
+								pos = str.lastIndexOf(' ', offset);
+								pos2 = str.lastIndexOf('\u00a0', offset);
+								pos = pos > pos2 ? pos : pos2;
+
+								// Include the space on remove to avoid tag soup
+								if (pos !== -1 && !remove) {
+									pos++;
+								}
+							} else {
+								pos = str.indexOf(' ', offset);
+								pos2 = str.indexOf('\u00a0', offset);
+								pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2;
+							}
+
+							return pos;
+						};
+
+						if (container.nodeType === 3) {
+							pos = findSpace(container, offset);
+
+							if (pos !== -1) {
+								return {container : container, offset : pos};
+							}
+
+							lastTextNode = container;
+						}
+
+						// Walk the nodes inside the block
+						walker = new TreeWalker(container, dom.getParent(container, isBlock) || ed.getBody());
+						while (node = walker[start ? 'prev' : 'next']()) {
+							if (node.nodeType === 3) {
+								lastTextNode = node;
+								pos = findSpace(node);
+
+								if (pos !== -1) {
+									return {container : node, offset : pos};
+								}
+							} else if (isBlock(node)) {
+								break;
+							}
+						}
+
+						if (lastTextNode) {
+							if (start) {
+								offset = 0;
+							} else {
+								offset = lastTextNode.length;
+							}
+
+							return {container: lastTextNode, offset: offset};
+						}
+					}
+
+					// Expand left to closest word boundery
+					endPoint = findWordEndPoint(startContainer, startOffset, true);
+					if (endPoint) {
+						startContainer = endPoint.container;
+						startOffset = endPoint.offset;
+					}
+
+					// Expand right to closest word boundery
+					endPoint = findWordEndPoint(endContainer, endOffset);
+					if (endPoint) {
+						endContainer = endPoint.container;
+						endOffset = endPoint.offset;
+					}
+				}
+
+				// Avoid applying formatting to a trailing space.
+				leaf = findLeaf(endContainer, endOffset);
+				if (leaf.node) {
+					while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling)
+						leaf = findLeaf(leaf.node.previousSibling);
+
+					if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 &&
+							leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') {
+
+						if (leaf.offset > 1) {
+							endContainer = leaf.node;
+							endContainer.splitText(leaf.offset - 1);
+						} else if (leaf.node.previousSibling) {
+							// TODO: Figure out why this is in here
+							//endContainer = leaf.node.previousSibling;
+						}
+					}
+				}
+			}
+
+			// Move start/end point up the tree if the leaves are sharp and if we are in different containers
+			// Example * becomes !: !<p><b><i>*text</i><i>text*</i></b></p>!
+			// This will reduce the number of wrapper elements that needs to be created
+			// Move start point up the tree
+			if (format[0].inline || format[0].block_expand) {
+				if (!format[0].inline || (startContainer.nodeType != 3 || startOffset === 0)) {
+					startContainer = findParentContainer(true);
+				}
+
+				if (!format[0].inline || (endContainer.nodeType != 3 || endOffset === endContainer.nodeValue.length)) {
+					endContainer = findParentContainer();
+				}
+			}
+
+			// Expand start/end container to matching selector
+			if (format[0].selector && format[0].expand !== FALSE && !format[0].inline) {
+				function findSelectorEndPoint(container, sibling_name) {
+					var parents, i, y, curFormat;
+
+					if (container.nodeType == 3 && container.nodeValue.length == 0 && container[sibling_name])
+						container = container[sibling_name];
+
+					parents = getParents(container);
+					for (i = 0; i < parents.length; i++) {
+						for (y = 0; y < format.length; y++) {
+							curFormat = format[y];
+
+							// If collapsed state is set then skip formats that doesn't match that
+							if ("collapsed" in curFormat && curFormat.collapsed !== rng.collapsed)
+								continue;
+
+							if (dom.is(parents[i], curFormat.selector))
+								return parents[i];
+						}
+					}
+
+					return container;
+				};
+
+				// Find new startContainer/endContainer if there is better one
+				startContainer = findSelectorEndPoint(startContainer, 'previousSibling');
+				endContainer = findSelectorEndPoint(endContainer, 'nextSibling');
+			}
+
+			// Expand start/end container to matching block element or text node
+			if (format[0].block || format[0].selector) {
+				function findBlockEndPoint(container, sibling_name, sibling_name2) {
+					var node;
+
+					// Expand to block of similar type
+					if (!format[0].wrapper)
+						node = dom.getParent(container, format[0].block);
+
+					// Expand to first wrappable block element or any block element
+					if (!node)
+						node = dom.getParent(container.nodeType == 3 ? container.parentNode : container, isBlock);
+
+					// Exclude inner lists from wrapping
+					if (node && format[0].wrapper)
+						node = getParents(node, 'ul,ol').reverse()[0] || node;
+
+					// Didn't find a block element look for first/last wrappable element
+					if (!node) {
+						node = container;
+
+						while (node[sibling_name] && !isBlock(node[sibling_name])) {
+							node = node[sibling_name];
+
+							// Break on BR but include it will be removed later on
+							// we can't remove it now since we need to check if it can be wrapped
+							if (isEq(node, 'br'))
+								break;
+						}
+					}
+
+					return node || container;
+				};
+
+				// Find new startContainer/endContainer if there is better one
+				startContainer = findBlockEndPoint(startContainer, 'previousSibling');
+				endContainer = findBlockEndPoint(endContainer, 'nextSibling');
+
+				// Non block element then try to expand up the leaf
+				if (format[0].block) {
+					if (!isBlock(startContainer))
+						startContainer = findParentContainer(true);
+
+					if (!isBlock(endContainer))
+						endContainer = findParentContainer();
+				}
+			}
+
+			// Setup index for startContainer
+			if (startContainer.nodeType == 1) {
+				startOffset = nodeIndex(startContainer);
+				startContainer = startContainer.parentNode;
+			}
+
+			// Setup index for endContainer
+			if (endContainer.nodeType == 1) {
+				endOffset = nodeIndex(endContainer) + 1;
+				endContainer = endContainer.parentNode;
+			}
+
+			// Return new range like object
+			return {
+				startContainer : startContainer,
+				startOffset : startOffset,
+				endContainer : endContainer,
+				endOffset : endOffset
+			};
+		}
+
+		function removeFormat(format, vars, node, compare_node) {
+			var i, attrs, stylesModified;
+
+			// Check if node matches format
+			if (!matchName(node, format))
+				return FALSE;
+
+			// Should we compare with format attribs and styles
+			if (format.remove != 'all') {
+				// Remove styles
+				each(format.styles, function(value, name) {
+					value = replaceVars(value, vars);
+
+					// Indexed array
+					if (typeof(name) === 'number') {
+						name = value;
+						compare_node = 0;
+					}
+
+					if (!compare_node || isEq(getStyle(compare_node, name), value))
+						dom.setStyle(node, name, '');
+
+					stylesModified = 1;
+				});
+
+				// Remove style attribute if it's empty
+				if (stylesModified && dom.getAttrib(node, 'style') == '') {
+					node.removeAttribute('style');
+					node.removeAttribute('data-mce-style');
+				}
+
+				// Remove attributes
+				each(format.attributes, function(value, name) {
+					var valueOut;
+
+					value = replaceVars(value, vars);
+
+					// Indexed array
+					if (typeof(name) === 'number') {
+						name = value;
+						compare_node = 0;
+					}
+
+					if (!compare_node || isEq(dom.getAttrib(compare_node, name), value)) {
+						// Keep internal classes
+						if (name == 'class') {
+							value = dom.getAttrib(node, name);
+							if (value) {
+								// Build new class value where everything is removed except the internal prefixed classes
+								valueOut = '';
+								each(value.split(/\s+/), function(cls) {
+									if (/mce\w+/.test(cls))
+										valueOut += (valueOut ? ' ' : '') + cls;
+								});
+
+								// We got some internal classes left
+								if (valueOut) {
+									dom.setAttrib(node, name, valueOut);
+									return;
+								}
+							}
+						}
+
+						// IE6 has a bug where the attribute doesn't get removed correctly
+						if (name == "class")
+							node.removeAttribute('className');
+
+						// Remove mce prefixed attributes
+						if (MCE_ATTR_RE.test(name))
+							node.removeAttribute('data-mce-' + name);
+
+						node.removeAttribute(name);
+					}
+				});
+
+				// Remove classes
+				each(format.classes, function(value) {
+					value = replaceVars(value, vars);
+
+					if (!compare_node || dom.hasClass(compare_node, value))
+						dom.removeClass(node, value);
+				});
+
+				// Check for non internal attributes
+				attrs = dom.getAttribs(node);
+				for (i = 0; i < attrs.length; i++) {
+					if (attrs[i].nodeName.indexOf('_') !== 0)
+						return FALSE;
+				}
+			}
+
+			// Remove the inline child if it's empty for example <b> or <span>
+			if (format.remove != 'none') {
+				removeNode(node, format);
+				return TRUE;
+			}
+		};
+
+		function removeNode(node, format) {
+			var parentNode = node.parentNode, rootBlockElm;
+
+			if (format.block) {
+				if (!forcedRootBlock) {
+					function find(node, next, inc) {
+						node = getNonWhiteSpaceSibling(node, next, inc);
+
+						return !node || (node.nodeName == 'BR' || isBlock(node));
+					};
+
+					// Append BR elements if needed before we remove the block
+					if (isBlock(node) && !isBlock(parentNode)) {
+						if (!find(node, FALSE) && !find(node.firstChild, TRUE, 1))
+							node.insertBefore(dom.create('br'), node.firstChild);
+
+						if (!find(node, TRUE) && !find(node.lastChild, FALSE, 1))
+							node.appendChild(dom.create('br'));
+					}
+				} else {
+					// Wrap the block in a forcedRootBlock if we are at the root of document
+					if (parentNode == dom.getRoot()) {
+						if (!format.list_block || !isEq(node, format.list_block)) {
+							each(tinymce.grep(node.childNodes), function(node) {
+								if (isValid(forcedRootBlock, node.nodeName.toLowerCase())) {
+									if (!rootBlockElm)
+										rootBlockElm = wrap(node, forcedRootBlock);
+									else
+										rootBlockElm.appendChild(node);
+								} else
+									rootBlockElm = 0;
+							});
+						}
+					}
+				}
+			}
+
+			// Never remove nodes that isn't the specified inline element if a selector is specified too
+			if (format.selector && format.inline && !isEq(format.inline, node))
+				return;
+
+			dom.remove(node, 1);
+		};
+
+		function getNonWhiteSpaceSibling(node, next, inc) {
+			if (node) {
+				next = next ? 'nextSibling' : 'previousSibling';
+
+				for (node = inc ? node : node[next]; node; node = node[next]) {
+					if (node.nodeType == 1 || !isWhiteSpaceNode(node))
+						return node;
+				}
+			}
+		};
+
+		function isBookmarkNode(node) {
+			return node && node.nodeType == 1 && node.getAttribute('data-mce-type') == 'bookmark';
+		};
+
+		function mergeSiblings(prev, next) {
+			var marker, sibling, tmpSibling;
+
+			function compareElements(node1, node2) {
+				// Not the same name
+				if (node1.nodeName != node2.nodeName)
+					return FALSE;
+
+				function getAttribs(node) {
+					var attribs = {};
+
+					each(dom.getAttribs(node), function(attr) {
+						var name = attr.nodeName.toLowerCase();
+
+						// Don't compare internal attributes or style
+						if (name.indexOf('_') !== 0 && name !== 'style')
+							attribs[name] = dom.getAttrib(node, name);
+					});
+
+					return attribs;
+				};
+
+				function compareObjects(obj1, obj2) {
+					var value, name;
+
+					for (name in obj1) {
+						// Obj1 has item obj2 doesn't have
+						if (obj1.hasOwnProperty(name)) {
+							value = obj2[name];
+
+							// Obj2 doesn't have obj1 item
+							if (value === undefined)
+								return FALSE;
+
+							// Obj2 item has a different value
+							if (obj1[name] != value)
+								return FALSE;
+
+							// Delete similar value
+							delete obj2[name];
+						}
+					}
+
+					// Check if obj 2 has something obj 1 doesn't have
+					for (name in obj2) {
+						// Obj2 has item obj1 doesn't have
+						if (obj2.hasOwnProperty(name))
+							return FALSE;
+					}
+
+					return TRUE;
+				};
+
+				// Attribs are not the same
+				if (!compareObjects(getAttribs(node1), getAttribs(node2)))
+					return FALSE;
+
+				// Styles are not the same
+				if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style'))))
+					return FALSE;
+
+				return TRUE;
+			};
+
+			// Check if next/prev exists and that they are elements
+			if (prev && next) {
+				function findElementSibling(node, sibling_name) {
+					for (sibling = node; sibling; sibling = sibling[sibling_name]) {
+						if (sibling.nodeType == 3 && sibling.nodeValue.length !== 0)
+							return node;
+
+						if (sibling.nodeType == 1 && !isBookmarkNode(sibling))
+							return sibling;
+					}
+
+					return node;
+				};
+
+				// If previous sibling is empty then jump over it
+				prev = findElementSibling(prev, 'previousSibling');
+				next = findElementSibling(next, 'nextSibling');
+
+				// Compare next and previous nodes
+				if (compareElements(prev, next)) {
+					// Append nodes between
+					for (sibling = prev.nextSibling; sibling && sibling != next;) {
+						tmpSibling = sibling;
+						sibling = sibling.nextSibling;
+						prev.appendChild(tmpSibling);
+					}
+
+					// Remove next node
+					dom.remove(next);
+
+					// Move children into prev node
+					each(tinymce.grep(next.childNodes), function(node) {
+						prev.appendChild(node);
+					});
+
+					return prev;
+				}
+			}
+
+			return next;
+		};
+
+		function isTextBlock(name) {
+			return /^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(name);
+		};
+
+		function getContainer(rng, start) {
+			var container, offset, lastIdx, walker;
+
+			container = rng[start ? 'startContainer' : 'endContainer'];
+			offset = rng[start ? 'startOffset' : 'endOffset'];
+
+			if (container.nodeType == 1) {
+				lastIdx = container.childNodes.length - 1;
+
+				if (!start && offset)
+					offset--;
+
+				container = container.childNodes[offset > lastIdx ? lastIdx : offset];
+			}
+
+			// If start text node is excluded then walk to the next node
+			if (container.nodeType === 3 && start && offset >= container.nodeValue.length) {
+				container = new TreeWalker(container, ed.getBody()).next() || container;
+			}
+
+			// If end text node is excluded then walk to the previous node
+			if (container.nodeType === 3 && !start && offset == 0) {
+				container = new TreeWalker(container, ed.getBody()).prev() || container;
+			}
+
+			return container;
+		};
+
+		function performCaretAction(type, name, vars) {
+			var caretContainerId = '_mce_caret', debug = ed.settings.caret_debug;
+
+			// Creates a caret container bogus element
+			function createCaretContainer(fill) {
+				var caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true, style: debug ? 'color:red' : ''});
+
+				if (fill) {
+					caretContainer.appendChild(ed.getDoc().createTextNode(INVISIBLE_CHAR));
+				}
+
+				return caretContainer;
+			};
+
+			function isCaretContainerEmpty(node, nodes) {
+				while (node) {
+					if ((node.nodeType === 3 && node.nodeValue !== INVISIBLE_CHAR) || node.childNodes.length > 1) {
+						return false;
+					}
+
+					// Collect nodes
+					if (nodes && node.nodeType === 1) {
+						nodes.push(node);
+					}
+
+					node = node.firstChild;
+				}
+
+				return true;
+			};
+			
+			// Returns any parent caret container element
+			function getParentCaretContainer(node) {
+				while (node) {
+					if (node.id === caretContainerId) {
+						return node;
+					}
+
+					node = node.parentNode;
+				}
+			};
+
+			// Finds the first text node in the specified node
+			function findFirstTextNode(node) {
+				var walker;
+
+				if (node) {
+					walker = new TreeWalker(node, node);
+
+					for (node = walker.current(); node; node = walker.next()) {
+						if (node.nodeType === 3) {
+							return node;
+						}
+					}
+				}
+			};
+
+			// Removes the caret container for the specified node or all on the current document
+			function removeCaretContainer(node, move_caret) {
+				var child, rng;
+
+				if (!node) {
+					node = getParentCaretContainer(selection.getStart());
+
+					if (!node) {
+						while (node = dom.get(caretContainerId)) {
+							removeCaretContainer(node, false);
+						}
+					}
+				} else {
+					rng = selection.getRng(true);
+
+					if (isCaretContainerEmpty(node)) {
+						if (move_caret !== false) {
+							rng.setStartBefore(node);
+							rng.setEndBefore(node);
+						}
+
+						dom.remove(node);
+					} else {
+						child = findFirstTextNode(node);
+
+						if (child.nodeValue.charAt(0) === INVISIBLE_CHAR) {
+							child = child.deleteData(0, 1);
+						}
+
+						dom.remove(node, 1);
+					}
+
+					selection.setRng(rng);
+				}
+			};
+			
+			// Applies formatting to the caret postion
+			function applyCaretFormat() {
+				var rng, caretContainer, textNode, offset, bookmark, container, text;
+
+				rng = selection.getRng(true);
+				offset = rng.startOffset;
+				container = rng.startContainer;
+				text = container.nodeValue;
+
+				caretContainer = getParentCaretContainer(selection.getStart());
+				if (caretContainer) {
+					textNode = findFirstTextNode(caretContainer);
+				}
+
+				// Expand to word is caret is in the middle of a text node and the char before/after is a alpha numeric character
+				if (text && offset > 0 && offset < text.length && /\w/.test(text.charAt(offset)) && /\w/.test(text.charAt(offset - 1))) {
+					// Get bookmark of caret position
+					bookmark = selection.getBookmark();
+
+					// Collapse bookmark range (WebKit)
+					rng.collapse(true);
+
+					// Expand the range to the closest word and split it at those points
+					rng = expandRng(rng, get(name));
+					rng = rangeUtils.split(rng);
+
+					// Apply the format to the range
+					apply(name, vars, rng);
+
+					// Move selection back to caret position
+					selection.moveToBookmark(bookmark);
+				} else {
+					if (!caretContainer || textNode.nodeValue !== INVISIBLE_CHAR) {
+						caretContainer = createCaretContainer(true);
+						textNode = caretContainer.firstChild;
+
+						rng.insertNode(caretContainer);
+						offset = 1;
+
+						apply(name, vars, caretContainer);
+					} else {
+						apply(name, vars, caretContainer);
+					}
+
+					// Move selection to text node
+					selection.setCursorLocation(textNode, offset);
+				}
+			};
+
+			function removeCaretFormat() {
+				var rng = selection.getRng(true), container, offset, bookmark,
+					hasContentAfter, node, formatNode, parents = [], i, caretContainer;
+
+				container = rng.startContainer;
+				offset = rng.startOffset;
+				node = container;
+
+				if (container.nodeType == 3) {
+					if (offset != container.nodeValue.length || container.nodeValue === INVISIBLE_CHAR) {
+						hasContentAfter = true;
+					}
+
+					node = node.parentNode;
+				}
+
+				while (node) {
+					if (matchNode(node, name, vars)) {
+						formatNode = node;
+						break;
+					}
+
+					if (node.nextSibling) {
+						hasContentAfter = true;
+					}
+
+					parents.push(node);
+					node = node.parentNode;
+				}
+
+				// Node doesn't have the specified format
+				if (!formatNode) {
+					return;
+				}
+
+				// Is there contents after the caret then remove the format on the element
+				if (hasContentAfter) {
+					// Get bookmark of caret position
+					bookmark = selection.getBookmark();
+
+					// Collapse bookmark range (WebKit)
+					rng.collapse(true);
+
+					// Expand the range to the closest word and split it at those points
+					rng = expandRng(rng, get(name), true);
+					rng = rangeUtils.split(rng);
+
+					// Remove the format from the range
+					remove(name, vars, rng);
+
+					// Move selection back to caret position
+					selection.moveToBookmark(bookmark);
+				} else {
+					caretContainer = createCaretContainer();
+
+					node = caretContainer;
+					for (i = parents.length - 1; i >= 0; i--) {
+						node.appendChild(dom.clone(parents[i], false));
+						node = node.firstChild;
+					}
+
+					// Insert invisible character into inner most format element
+					node.appendChild(dom.doc.createTextNode(INVISIBLE_CHAR));
+					node = node.firstChild;
+
+					// Insert caret container after the formated node
+					dom.insertAfter(caretContainer, formatNode);
+
+					// Move selection to text node
+					selection.setCursorLocation(node, 1);
+				}
+			};
+
+			// Only bind the caret events once
+			if (!self._hasCaretEvents) {
+				// Mark current caret container elements as bogus when getting the contents so we don't end up with empty elements
+				ed.onBeforeGetContent.addToTop(function() {
+					var nodes = [], i;
+
+					if (isCaretContainerEmpty(getParentCaretContainer(selection.getStart()), nodes)) {
+						// Mark children
+						i = nodes.length;
+						while (i--) {
+							dom.setAttrib(nodes[i], 'data-mce-bogus', '1');
+						}
+					}
+				});
+
+				// Remove caret container on mouse up and on key up
+				tinymce.each('onMouseUp onKeyUp'.split(' '), function(name) {
+					ed[name].addToTop(function() {
+						removeCaretContainer();
+					});
+				});
+
+				// Remove caret container on keydown and it's a backspace, enter or left/right arrow keys
+				ed.onKeyDown.addToTop(function(ed, e) {
+					var keyCode = e.keyCode;
+
+					if (keyCode == 8 || keyCode == 37 || keyCode == 39) {
+						removeCaretContainer(getParentCaretContainer(selection.getStart()));
+					}
+				});
+
+				self._hasCaretEvents = true;
+			}
+
+			// Do apply or remove caret format
+			if (type == "apply") {
+				applyCaretFormat();
+			} else {
+				removeCaretFormat();
+			}
+		};
+
+		function moveStart(rng) {
+			var container = rng.startContainer,
+					offset = rng.startOffset,
+					walker, node, nodes, tmpNode;
+
+			// Convert text node into index if possible
+			if (container.nodeType == 3 && offset >= container.nodeValue.length - 1) {
+				container = container.parentNode;
+				offset = nodeIndex(container) + 1;
+			}
+
+			// Move startContainer/startOffset in to a suitable node
+			if (container.nodeType == 1) {
+				nodes = container.childNodes;
+				container = nodes[Math.min(offset, nodes.length - 1)];
+				walker = new TreeWalker(container);
+
+				// If offset is at end of the parent node walk to the next one
+				if (offset > nodes.length - 1)
+					walker.next();
+
+				for (node = walker.current(); node; node = walker.next()) {
+					if (node.nodeType == 3 && !isWhiteSpaceNode(node)) {
+						// IE has a "neat" feature where it moves the start node into the closest element
+						// we can avoid this by inserting an element before it and then remove it after we set the selection
+						tmpNode = dom.create('a', null, INVISIBLE_CHAR);
+						node.parentNode.insertBefore(tmpNode, node);
+
+						// Set selection and remove tmpNode
+						rng.setStart(node, 0);
+						selection.setRng(rng);
+						dom.remove(tmpNode);
+
+						return;
+					}
+				}
+			}
+		};
+
+	};
+})(tinymce);
+
+tinymce.onAddEditor.add(function(tinymce, ed) {
+	var filters, fontSizes, dom, settings = ed.settings;
+
+	if (settings.inline_styles) {
+		fontSizes = tinymce.explode(settings.font_size_legacy_values);
+
+		function replaceWithSpan(node, styles) {
+			tinymce.each(styles, function(value, name) {
+				if (value)
+					dom.setStyle(node, name, value);
+			});
+
+			dom.rename(node, 'span');
+		};
+
+		filters = {
+			font : function(dom, node) {
+				replaceWithSpan(node, {
+					backgroundColor : node.style.backgroundColor,
+					color : node.color,
+					fontFamily : node.face,
+					fontSize : fontSizes[parseInt(node.size) - 1]
+				});
+			},
+
+			u : function(dom, node) {
+				replaceWithSpan(node, {
+					textDecoration : 'underline'
+				});
+			},
+
+			strike : function(dom, node) {
+				replaceWithSpan(node, {
+					textDecoration : 'line-through'
+				});
+			}
+		};
+
+		function convert(editor, params) {
+			dom = editor.dom;
+
+			if (settings.convert_fonts_to_spans) {
+				tinymce.each(dom.select('font,u,strike', params.node), function(node) {
+					filters[node.nodeName.toLowerCase()](ed.dom, node);
+				});
+			}
+		};
+
+		ed.onPreProcess.add(convert);
+		ed.onSetContent.add(convert);
+
+		ed.onInit.add(function() {
+			ed.selection.onSetContent.add(convert);
+		});
+	}
+});
+
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/editable_selects.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/editable_selects.js
new file mode 100644
index 0000000..4d9ffe2
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/editable_selects.js
@@ -0,0 +1,70 @@
+/**
+ * editable_selects.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+var TinyMCE_EditableSelects = {
+	editSelectElm : null,
+
+	init : function() {
+		var nl = document.getElementsByTagName("select"), i, d = document, o;
+
+		for (i=0; i<nl.length; i++) {
+			if (nl[i].className.indexOf('mceEditableSelect') != -1) {
+				o = new Option(tinyMCEPopup.editor.translate('value'), '__mce_add_custom__');
+
+				o.className = 'mceAddSelectValue';
+
+				nl[i].options[nl[i].options.length] = o;
+				nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;
+			}
+		}
+	},
+
+	onChangeEditableSelect : function(e) {
+		var d = document, ne, se = window.event ? window.event.srcElement : e.target;
+
+		if (se.options[se.selectedIndex].value == '__mce_add_custom__') {
+			ne = d.createElement("input");
+			ne.id = se.id + "_custom";
+			ne.name = se.name + "_custom";
+			ne.type = "text";
+
+			ne.style.width = se.offsetWidth + 'px';
+			se.parentNode.insertBefore(ne, se);
+			se.style.display = 'none';
+			ne.focus();
+			ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;
+			ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;
+			TinyMCE_EditableSelects.editSelectElm = se;
+		}
+	},
+
+	onBlurEditableSelectInput : function() {
+		var se = TinyMCE_EditableSelects.editSelectElm;
+
+		if (se) {
+			if (se.previousSibling.value != '') {
+				addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);
+				selectByValue(document.forms[0], se.id, se.previousSibling.value);
+			} else
+				selectByValue(document.forms[0], se.id, '');
+
+			se.style.display = 'inline';
+			se.parentNode.removeChild(se.previousSibling);
+			TinyMCE_EditableSelects.editSelectElm = null;
+		}
+	},
+
+	onKeyDown : function(e) {
+		e = e || window.event;
+
+		if (e.keyCode == 13)
+			TinyMCE_EditableSelects.onBlurEditableSelectInput();
+	}
+};
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/form_utils.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/form_utils.js
new file mode 100644
index 0000000..6f62fe6
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/form_utils.js
@@ -0,0 +1,210 @@
+/**
+ * form_utils.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));
+
+function getColorPickerHTML(id, target_form_element) {
+	var h = "", dom = tinyMCEPopup.dom;
+
+	if (label = dom.select('label[for=' + target_form_element + ']')[0]) {
+		label.id = label.id || dom.uniqueId();
+	}
+
+	h += '<a role="button" aria-labelledby="' + id + '_label" id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';
+	h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"> <span id="' + id + '_label" class="mceVoiceLabel mceIconOnly" style="display:none;">' + tinyMCEPopup.getLang('browse') + '</span></span></a>';
+
+	return h;
+}
+
+function updateColor(img_id, form_element_id) {
+	document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;
+}
+
+function setBrowserDisabled(id, state) {
+	var img = document.getElementById(id);
+	var lnk = document.getElementById(id + "_link");
+
+	if (lnk) {
+		if (state) {
+			lnk.setAttribute("realhref", lnk.getAttribute("href"));
+			lnk.removeAttribute("href");
+			tinyMCEPopup.dom.addClass(img, 'disabled');
+		} else {
+			if (lnk.getAttribute("realhref"))
+				lnk.setAttribute("href", lnk.getAttribute("realhref"));
+
+			tinyMCEPopup.dom.removeClass(img, 'disabled');
+		}
+	}
+}
+
+function getBrowserHTML(id, target_form_element, type, prefix) {
+	var option = prefix + "_" + type + "_browser_callback", cb, html;
+
+	cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));
+
+	if (!cb)
+		return "";
+
+	html = "";
+	html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';
+	html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"> </span></a>';
+
+	return html;
+}
+
+function openBrowser(img_id, target_form_element, type, option) {
+	var img = document.getElementById(img_id);
+
+	if (img.className != "mceButtonDisabled")
+		tinyMCEPopup.openBrowser(target_form_element, type, option);
+}
+
+function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
+	if (!form_obj || !form_obj.elements[field_name])
+		return;
+
+	if (!value)
+		value = "";
+
+	var sel = form_obj.elements[field_name];
+
+	var found = false;
+	for (var i=0; i<sel.options.length; i++) {
+		var option = sel.options[i];
+
+		if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
+			option.selected = true;
+			found = true;
+		} else
+			option.selected = false;
+	}
+
+	if (!found && add_custom && value != '') {
+		var option = new Option(value, value);
+		option.selected = true;
+		sel.options[sel.options.length] = option;
+		sel.selectedIndex = sel.options.length - 1;
+	}
+
+	return found;
+}
+
+function getSelectValue(form_obj, field_name) {
+	var elm = form_obj.elements[field_name];
+
+	if (elm == null || elm.options == null || elm.selectedIndex === -1)
+		return "";
+
+	return elm.options[elm.selectedIndex].value;
+}
+
+function addSelectValue(form_obj, field_name, name, value) {
+	var s = form_obj.elements[field_name];
+	var o = new Option(name, value);
+	s.options[s.options.length] = o;
+}
+
+function addClassesToList(list_id, specific_option) {
+	// Setup class droplist
+	var styleSelectElm = document.getElementById(list_id);
+	var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);
+	styles = tinyMCEPopup.getParam(specific_option, styles);
+
+	if (styles) {
+		var stylesAr = styles.split(';');
+
+		for (var i=0; i<stylesAr.length; i++) {
+			if (stylesAr != "") {
+				var key, value;
+
+				key = stylesAr[i].split('=')[0];
+				value = stylesAr[i].split('=')[1];
+
+				styleSelectElm.options[styleSelectElm.length] = new Option(key, value);
+			}
+		}
+	} else {
+		tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {
+			styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);
+		});
+	}
+}
+
+function isVisible(element_id) {
+	var elm = document.getElementById(element_id);
+
+	return elm && elm.style.display != "none";
+}
+
+function convertRGBToHex(col) {
+	var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
+
+	var rgb = col.replace(re, "$1,$2,$3").split(',');
+	if (rgb.length == 3) {
+		r = parseInt(rgb[0]).toString(16);
+		g = parseInt(rgb[1]).toString(16);
+		b = parseInt(rgb[2]).toString(16);
+
+		r = r.length == 1 ? '0' + r : r;
+		g = g.length == 1 ? '0' + g : g;
+		b = b.length == 1 ? '0' + b : b;
+
+		return "#" + r + g + b;
+	}
+
+	return col;
+}
+
+function convertHexToRGB(col) {
+	if (col.indexOf('#') != -1) {
+		col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
+
+		r = parseInt(col.substring(0, 2), 16);
+		g = parseInt(col.substring(2, 4), 16);
+		b = parseInt(col.substring(4, 6), 16);
+
+		return "rgb(" + r + "," + g + "," + b + ")";
+	}
+
+	return col;
+}
+
+function trimSize(size) {
+	return size.replace(/([0-9\.]+)(px|%|in|cm|mm|em|ex|pt|pc)/i, '$1$2');
+}
+
+function getCSSSize(size) {
+	size = trimSize(size);
+
+	if (size == "")
+		return "";
+
+	// Add px
+	if (/^[0-9]+$/.test(size))
+		size += 'px';
+	// Sanity check, IE doesn't like broken values
+	else if (!(/^[0-9\.]+(px|%|in|cm|mm|em|ex|pt|pc)$/i.test(size)))
+		return "";
+
+	return size;
+}
+
+function getStyle(elm, attrib, style) {
+	var val = tinyMCEPopup.dom.getAttrib(elm, attrib);
+
+	if (val != '')
+		return '' + val;
+
+	if (typeof(style) == 'undefined')
+		style = attrib;
+
+	return tinyMCEPopup.dom.getStyle(elm, style);
+}
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/mctabs.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/mctabs.js
new file mode 100644
index 0000000..027ef40
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/mctabs.js
@@ -0,0 +1,162 @@
+/**
+ * mctabs.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+function MCTabs() {
+	this.settings = [];
+	this.onChange = tinyMCEPopup.editor.windowManager.createInstance('tinymce.util.Dispatcher');
+};
+
+MCTabs.prototype.init = function(settings) {
+	this.settings = settings;
+};
+
+MCTabs.prototype.getParam = function(name, default_value) {
+	var value = null;
+
+	value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
+
+	// Fix bool values
+	if (value == "true" || value == "false")
+		return (value == "true");
+
+	return value;
+};
+
+MCTabs.prototype.showTab =function(tab){
+	tab.className = 'current';
+	tab.setAttribute("aria-selected", true);
+	tab.setAttribute("aria-expanded", true);
+	tab.tabIndex = 0;
+};
+
+MCTabs.prototype.hideTab =function(tab){
+	var t=this;
+
+	tab.className = '';
+	tab.setAttribute("aria-selected", false);
+	tab.setAttribute("aria-expanded", false);
+	tab.tabIndex = -1;
+};
+
+MCTabs.prototype.showPanel = function(panel) {
+	panel.className = 'current'; 
+	panel.setAttribute("aria-hidden", false);
+};
+
+MCTabs.prototype.hidePanel = function(panel) {
+	panel.className = 'panel';
+	panel.setAttribute("aria-hidden", true);
+}; 
+
+MCTabs.prototype.getPanelForTab = function(tabElm) {
+	return tinyMCEPopup.dom.getAttrib(tabElm, "aria-controls");
+};
+
+MCTabs.prototype.displayTab = function(tab_id, panel_id, avoid_focus) {
+	var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i, t = this;
+
+	tabElm = document.getElementById(tab_id);
+
+	if (panel_id === undefined) {
+		panel_id = t.getPanelForTab(tabElm);
+	}
+
+	panelElm= document.getElementById(panel_id);
+	panelContainerElm = panelElm ? panelElm.parentNode : null;
+	tabContainerElm = tabElm ? tabElm.parentNode : null;
+	selectionClass = t.getParam('selection_class', 'current');
+
+	if (tabElm && tabContainerElm) {
+		nodes = tabContainerElm.childNodes;
+
+		// Hide all other tabs
+		for (i = 0; i < nodes.length; i++) {
+			if (nodes[i].nodeName == "LI") {
+				t.hideTab(nodes[i]);
+			}
+		}
+
+		// Show selected tab
+		t.showTab(tabElm);
+	}
+
+	if (panelElm && panelContainerElm) {
+		nodes = panelContainerElm.childNodes;
+
+		// Hide all other panels
+		for (i = 0; i < nodes.length; i++) {
+			if (nodes[i].nodeName == "DIV")
+				t.hidePanel(nodes[i]);
+		}
+
+		if (!avoid_focus) { 
+			tabElm.focus();
+		}
+
+		// Show selected panel
+		t.showPanel(panelElm);
+	}
+};
+
+MCTabs.prototype.getAnchor = function() {
+	var pos, url = document.location.href;
+
+	if ((pos = url.lastIndexOf('#')) != -1)
+		return url.substring(pos + 1);
+
+	return "";
+};
+
+
+//Global instance
+var mcTabs = new MCTabs();
+
+tinyMCEPopup.onInit.add(function() {
+	var tinymce = tinyMCEPopup.getWin().tinymce, dom = tinyMCEPopup.dom, each = tinymce.each;
+
+	each(dom.select('div.tabs'), function(tabContainerElm) {
+		var keyNav;
+
+		dom.setAttrib(tabContainerElm, "role", "tablist"); 
+
+		var items = tinyMCEPopup.dom.select('li', tabContainerElm);
+		var action = function(id) {
+			mcTabs.displayTab(id, mcTabs.getPanelForTab(id));
+			mcTabs.onChange.dispatch(id);
+		};
+
+		each(items, function(item) {
+			dom.setAttrib(item, 'role', 'tab');
+			dom.bind(item, 'click', function(evt) {
+				action(item.id);
+			});
+		});
+
+		dom.bind(dom.getRoot(), 'keydown', function(evt) {
+			if (evt.keyCode === 9 && evt.ctrlKey && !evt.altKey) { // Tab
+				keyNav.moveFocus(evt.shiftKey ? -1 : 1);
+				tinymce.dom.Event.cancel(evt);
+			}
+		});
+
+		each(dom.select('a', tabContainerElm), function(a) {
+			dom.setAttrib(a, 'tabindex', '-1');
+		});
+
+		keyNav = tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', {
+			root: tabContainerElm,
+			items: items,
+			onAction: action,
+			actOnFocus: true,
+			enableLeftRight: true,
+			enableUpDown: true
+		}, tinyMCEPopup.dom);
+	});
+});
\ No newline at end of file
diff --git a/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/validate.js b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/validate.js
new file mode 100644
index 0000000..760d029
--- /dev/null
+++ b/drupal/sites/all/libraries/tinymce/jscripts/tiny_mce/utils/validate.js
@@ -0,0 +1,252 @@
+/**
+ * validate.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+/**
+	// String validation:
+
+	if (!Validator.isEmail('myemail'))
+		alert('Invalid email.');
+
+	// Form validation:
+
+	var f = document.forms['myform'];
+
+	if (!Validator.isEmail(f.myemail))
+		alert('Invalid email.');
+*/
+
+var Validator = {
+	isEmail : function(s) {
+		return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
+	},
+
+	isAbsUrl : function(s) {
+		return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$');
+	},
+
+	isSize : function(s) {
+		return this.test(s, '^[0-9.]+(%|in|cm|mm|em|ex|pt|pc|px)?$');
+	},
+
+	isId : function(s) {
+		return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$');
+	},
+
+	isEmpty : function(s) {
+		var nl, i;
+
+		if (s.nodeName == 'SELECT' && s.selectedIndex < 1)
+			return true;
+
+		if (s.type == 'checkbox' && !s.checked)
+			return true;
+
+		if (s.type == 'radio') {
+			for (i=0, nl = s.form.elements; i<nl.length; i++) {
+				if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked)
+					return false;
+			}
+
+			return true;
+		}
+
+		return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s);
+	},
+
+	isNumber : function(s, d) {
+		return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$'));
+	},
+
+	test : function(s, p) {
+		s = s.nodeType == 1 ? s.value : s;
+
+		return s == '' || new RegExp(p).test(s);
+	}
+};
+
+var AutoValidator = {
+	settings : {
+		id_cls : 'id',
+		int_cls : 'int',
+		url_cls : 'url',
+		number_cls : 'number',
+		email_cls : 'email',
+		size_cls : 'size',
+		required_cls : 'required',
+		invalid_cls : 'invalid',
+		min_cls : 'min',
+		max_cls : 'max'
+	},
+
+	init : function(s) {
+		var n;
+
+		for (n in s)
+			this.settings[n] = s[n];
+	},
+
+	validate : function(f) {
+		var i, nl, s = this.settings, c = 0;
+
+		nl = this.tags(f, 'label');
+		for (i=0; i<nl.length; i++) {
+			this.removeClass(nl[i], s.invalid_cls);
+			nl[i].setAttribute('aria-invalid', false);
+		}
+
+		c += this.validateElms(f, 'input');
+		c += this.validateElms(f, 'select');
+		c += this.validateElms(f, 'textarea');
+
+		return c == 3;
+	},
+
+	invalidate : function(n) {
+		this.mark(n.form, n);
+	},
+	
+	getErrorMessages : function(f) {
+		var nl, i, s = this.settings, field, msg, values, messages = [], ed = tinyMCEPopup.editor;
+		nl = this.tags(f, "label");
+		for (i=0; i<nl.length; i++) {
+			if (this.hasClass(nl[i], s.invalid_cls)) {
+				field = document.getElementById(nl[i].getAttribute("for"));
+				values = { field: nl[i].textContent };
+				if (this.hasClass(field, s.min_cls, true)) {
+					message = ed.getLang('invalid_data_min');
+					values.min = this.getNum(field, s.min_cls);
+				} else if (this.hasClass(field, s.number_cls)) {
+					message = ed.getLang('invalid_data_number');
+				} else if (this.hasClass(field, s.size_cls)) {
+					message = ed.getLang('invalid_data_size');
+				} else {
+					message = ed.getLang('invalid_data');
+				}
+				
+				message = message.replace(/{\#([^}]+)\}/g, function(a, b) {
+					return values[b] || '{#' + b + '}';
+				});
+				messages.push(message);
+			}
+		}
+		return messages;
+	},
+
+	reset : function(e) {
+		var t = ['label', 'input', 'select', 'textarea'];
+		var i, j, nl, s = this.settings;
+
+		if (e == null)
+			return;
+
+		for (i=0; i<t.length; i++) {
+			nl = this.tags(e.form ? e.form : e, t[i]);
+			for (j=0; j<nl.length; j++) {
+				this.removeClass(nl[j], s.invalid_cls);
+				nl[j].setAttribute('aria-invalid', false);
+			}
+		}
+	},
+
+	validateElms : function(f, e) {
+		var nl, i, n, s = this.settings, st = true, va = Validator, v;
+
+		nl = this.tags(f, e);
+		for (i=0; i<nl.length; i++) {
+			n = nl[i];
+
+			this.removeClass(n, s.invalid_cls);
+
+			if (this.hasClass(n, s.required_cls) && va.isEmpty(n))
+				st = this.mark(f, n);
+
+			if (this.hasClass(n, s.number_cls) && !va.isNumber(n))
+				st = this.mark(f, n);
+
+			if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true))
+				st = this.mark(f, n);
+
+			if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n))
+				st = this.mark(f, n);
+
+			if (this.hasClass(n, s.email_cls) && !va.isEmail(n))
+				st = this.mark(f, n);
+
+			if (this.hasClass(n, s.size_cls) && !va.isSize(n))
+				st = this.mark(f, n);
+
+			if (this.hasClass(n, s.id_cls) && !va.isId(n))
+				st = this.mark(f, n);
+
+			if (this.hasClass(n, s.min_cls, true)) {
+				v = this.getNum(n, s.min_cls);
+
+				if (isNaN(v) || parseInt(n.value) < parseInt(v))
+					st = this.mark(f, n);
+			}
+
+			if (this.hasClass(n, s.max_cls, true)) {
+				v = this.getNum(n, s.max_cls);
+
+				if (isNaN(v) || parseInt(n.value) > parseInt(v))
+					st = this.mark(f, n);
+			}
+		}
+
+		return st;
+	},
+
+	hasClass : function(n, c, d) {
+		return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className);
+	},
+
+	getNum : function(n, c) {
+		c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0];
+		c = c.replace(/[^0-9]/g, '');
+
+		return c;
+	},
+
+	addClass : function(n, c, b) {
+		var o = this.removeClass(n, c);
+		n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c;
+	},
+
+	removeClass : function(n, c) {
+		c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');
+		return n.className = c != ' ' ? c : '';
+	},
+
+	tags : function(f, s) {
+		return f.getElementsByTagName(s);
+	},
+
+	mark : function(f, n) {
+		var s = this.settings;
+
+		this.addClass(n, s.invalid_cls);
+		n.setAttribute('aria-invalid', 'true');
+		this.markLabels(f, n, s.invalid_cls);
+
+		return false;
+	},
+
+	markLabels : function(f, n, ic) {
+		var nl, i;
+
+		nl = this.tags(f, "label");
+		for (i=0; i<nl.length; i++) {
+			if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id)
+				this.addClass(nl[i], ic);
+		}
+
+		return null;
+	}
+};
diff --git a/drupal/sites/all/themes/zen/CHANGELOG.txt b/drupal/sites/all/themes/zen/CHANGELOG.txt
new file mode 100644
index 0000000..4acfb06
--- /dev/null
+++ b/drupal/sites/all/themes/zen/CHANGELOG.txt
@@ -0,0 +1,390 @@
+Zen 6.x-2.1, 2011-04-05
+-----------------------
+- #774836 by hefox: Check if node $title is set before outputting
+- #705264 by JohnAlbin, Jehu, mlncn and zenic: Allow Zen (and subthemes) to be used without a database
+- #1046090 by daniels and JohnAlbin: $styles is destroyed by rare bug with APC
+- #1083700: Add $submitted variable back into node.tpl
+- #1086820 by tacituseu: Views classes redundant since Views 6.x-2.9
+- #1017062 by adrinux: Block edit links span entire block on RTL pages
+- #774838 by bangpound, hefox and JohnAlbin: Add default case for build_mode
+- #919838 by saem, rgbivens and JohnAlbin: Theme description links to wrong docs
+- #992616 by JohnAlbin and adrinux: Comments in layout RTL stylesheets are incorrect
+- #822570 by JohnAlbin and AaronCollier: Add focus styling to tabs
+- #1072268: Zen theme doesn't load RTL styles
+- #929630 by juan_g and akalata: URL for overriding stylesheets documentation has changed
+- #742208: Conflict with domain theme module
+- #1063226 by tacituseu, danillonunes and barraponto: Unpublished comment style is not applied
+- #962356: Convert region template suggestions into theme hook suggestions
+- #978640 by marcvangend: Whitespace before comment causes jQuery error
+- #1046394 by n8tron and JohnAlbin: Add first and last classes to blocks
+- #870080 by mverbaar: Correction to README.TXT for STARTERKIT
+- #707410 by AdrianB: improve detection of Panels pages
+- #634552 by JohnAlbin and tim.plunkett: Conflict with context module
+- #941714: Modules setting $classes in preprocess functions breaks expected Zen classes
+- #932826: mytheme_links__system_main_menu() doesn't work as expected
+- Fix PHP warning on maintenance page
+- #690026: Cannot override region.tpl.php
+
+Zen 6.x-2.0, 2010-06-26
+-----------------------
+- #791056 by meatsack and JohnAlbin: Zen clobbers Views 3 classes
+- #838338: element-invisible class doesn't fully hide elements
+- #723514 by kmonty: Link in STARTERKIT description incorrect
+- Skip navigation's ID changed from #skip-to-nav to #skip-link
+- Added $block_html_id to block.tpl.php
+- #772488 by andreiashu: Fatal error: Call to undefined function
+  ctools_menu_primary_local_tasks()
+- #707410 by agentrickard and JohnAlbin: Add page-views and page-panels body classes
+- #691426: Add D7-style named implementations of theme_links in page.tpl
+- #683904: SUBTHEME_process functions do not work
+- #552156: broken clearfix class causes overlapping containers in IE7
+- #593290 by sfyn and JohnAlbin: Chaos Tools/Panels edit tab not working with Zen
+- #661628 by Jacine and JohnAlbin: Integration with Skinr module
+- by Jacine: Added views-view.tpl.php with support for $classes variables
+- by caroltron, gleroux02, _natron, and JohnAlbin: Add panels 3 layouts using
+  Zen layout method
+
+Zen 6.x-2.0-beta1, 2009-11-10
+-----------------------------
+- #478134 by mithrill: Improve docs about sites/all/themes and sites/default/themes folders
+- #628070 by Aren Cambre: Change "jquery" to "JavaScript" in STARTERKIT.info.txt
+- #626868 by alefteris: Replace Bitstream Vera with DejaVu fonts
+- #624818 by Aren Cambre and Garrett Albright: Tahoma shouldn't be first font pick
+- #600344 by mgifford: Use of absolute font size in block editing links breaks WCAG 2.0
+- #546904 by Jennifer_M: List $node as available variable in page.tpl.php
+- #583716 by droidenator: Empty title can cause breadcrumbs to display incorrectly
+- #600920 by kto.3decb: Fix incorrect comment block class name
+- #624046: Replace zen_id_safe() with drupal_html_class() and drupal_html_id()
+- Renamed $closure_region region to $page_closure
+- #622324: Update page.tpl to use ideas from D7
+  - Renamed #page and #page-inner to #page-wrapper and #page
+  - Added <span> around site name
+  - Moved #skip-to-nav styling to pages.css
+  - Removed #navigation link anchor
+  - Renamed div#header-inner to div.section which can be themed with #header .section
+  - Renamed #main and #main-inner to #main-wrapper and #main
+  - Renamed div#content-inner to div.section which can be themed with #content .section
+  - Removed #content-header div
+  - Added $highlight region
+  - Renamed #navbar div to #navigation
+  - Renamed $navbar region to $navigation
+  - Renamed .with-navbar class to .with-navigation
+  - Added #navigation .section div
+  - Removed #sidebar-first, #sidebar-first-inner, #sidebar-second, #sidebar-second-inner and moved styles to .region-sidebar-first, .region-sidebar-first .section, .region-sidebar-second, .region-sidebar-second .section
+  - Added #footer .section div
+- Added region-sidebar.tpl.php template suggestion
+- #308254: Make "skip to nav" styling more useful and less intrusive
+- #621798: Change sidebar variables to be RTL friendly and $shows_blocks compatible
+- #547696: Update node.tpl to use ideas from D7
+  - Renamed $picture to $user_picture in node.tpl.php
+  - Renamed .sticky class to .node-sticky in node.tpl.php
+  - Removed #node-inner div
+  - Added $display_submitted variable and deprecated $submitted variable
+  - Renamed the .node-mine class to .node-by-viewer
+- #620794: Update block.tpl to use ideas from D7
+  - Removed .block-inner div
+  - Renamed $block->subject variable to $title
+  - Renamed $block->content variable to $content
+- #548994: Update comment.tpl and comment-wrapper.tpl to use ideas from D7
+  - Renamed comment-wrapper's h2#comments-title to #comments h2.title
+  - Added $created to comment.tpl and deprecated $submitted
+  - Removed #comment-inner div
+  - comment div classes changed:
+    - .comment-by-anon changed to .comment-by-anonymous
+    - .comment-by-author changed to .comment-by-node-author
+    - .comment-mine changed to .comment-by-viewer
+    - .comment-published was removed
+- #311458: Search box gets disabled after arbitrary amount of time
+- Added $classes and $classes_array to all templates, not just Zen's templates
+- Renamed page.tpl's $body_classes and $body_classes_array to $classes and $classes_array
+- #564068: Views classes are missing from $classes variable
+- Simplified header, content_top, content_bottom, navbar, and footer region markup
+- Add region.tpl.php template
+- Render $edit_links_array in zen_process_block
+- #546858: Add THEME_process_HOOK functions to Zen
+- #317417 by JohnAlbin and quicksketch: Fix off-line maintenance page since drupal_get_path('theme', 'zen') won't work
+- #549798 by caroltron: page-backgrounds.css missing from .info file
+- Remove ie5.css from STARTERKIT and deprecate support for IE5
+- #547696: Update node.tpl to use ideas from D7
+- Renamed $picture to $user_picture in node.tpl.php
+- Renamed sticky class to node-sticky in node.tpl.php
+- Added $build_mode variable to node.tpl.php
+- #445814: Change primary/secondary link rendering and move secondary menu to footer
+- #445822: Simplify wrapper divs around logo, site name, slogan
+- #546862: Add D7's element-hidden and element-invisible for accessibility features
+- #547382: Rename Zen's reset stylesheet to html-reset.css from html-elements.css
+- #527494: Follow Drupal's proposed CSS coding standards
+- #480610 by kdebaas: css class .field-type-image does not exist anymore in 6.x version of the module
+- #545320 by Deslack: Use of split() generate E_DEPRECATED warnings on PHP 5.3.0
+- #542818: Using alternate layout method causes .clearfix class to disappear
+- #546828: Move tpl.php files to a templates folder in the root zen directory
+- #546792: Remove box.tpl.php
+- #513926: Sub-themes cannot reorder the stylesheets of the base theme
+- #456136: Move zen stylesheets into STARTERKIT/css
+- #544750 by kdebaas: Wrong sidebar class naming in maintenance-page.tpl.php
+- #529796: Make block edit links easier to edit/turn off individually
+- Added $classes_array variable to node, block and comment templates
+- Add layout.css in Zen's .info file to properly position sub-theme's layout.css
+- #379902: Make all stylesheets RTL compatible
+- #472694: Drupal 6.11 broke Zen's OpenID overrides
+- #375976 by JohnAlbin and Amitaibu: Flip sidebar positioning on RTL
+- #375953 by Amitaibu and JohnAlbin: Change sidebar names to be RTL friendly
+- Updated screenshot.png to use Zen logo since an actual screenshot is boring
+- Changed "or" back to "||" in node.tpl.php since themers do need to learn a little PHP
+- #254821: Sub-theme's .info file triggers incorrect "out of date" flag in update module
+- Added blockquote indent stlying
+- Removed navigation-top named anchor from page templates
+- #382598: .node div.links ruleset doesn't match html in node template
+- #452118: Removed redundant wrapper div around comment links
+- #382480 by Ognyan Kulev: #block-menu-2 should be #block-menu-primary-links
+- #374349: breadcrumb often broken when zen_breadcrumb_title is on
+- #426750: Removed Zen Classic sub theme
+- #445830: Rename clear-block CSS class to clearfix
+- #445790: Move search box to header
+- #445562: q0rban and JohnAlbin: Allow modules to declare their own block edit links
+- Added optional node-type-specific preprocess functions
+- Added notes about mobile stylesheets to STARTERKIT.info
+- #200495 by JohnAlbin, caroltron, and Toe: Split up monolithic zen.css into smaller, logical stylesheets
+- #328221 by kmonty and JohnAlbin: Split up ie.css to remove CSS hacks
+
+Zen 6.x-1.2, 2011-02-26
+-----------------------
+- #593290 by sfyn and JohnAlbin: Chaos Tools/Panels edit tab not working with Zen
+
+Zen 6.x-1.1, 2009-11-10
+-----------------------
+- #478134 by mithrill: Improve docs about sites/all/themes and sites/default/themes folders
+- #600758 by mattyoung: Secondary links run together in one line with primary links
+- #600344 by mgifford: Use of absolute font size in block editing links breaks WCAG 2.0
+- #546904 by Jennifer_M: List $node as available variable in page.tpl.php
+- #583716 by droidenator: Empty title can cause breadcrumbs to display incorrectly
+- #600920 by kto.3decb: Fix incorrect comment block class name
+- #297084: Remove ctype_lower() from zen_id_safe() to prevent WSOD/Fatal error on some systems
+- #317417 by JohnAlbin and quicksketch: Fix off-line maintenance page since drupal_get_path('theme', 'zen') won't work
+- #545320 by Deslack: Use of split() generate E_DEPRECATED warnings on PHP 5.3.0
+- #472694: Drupal 6.11 broke Zen's OpenID overrides
+- Updated screenshot.png to use Zen logo since an actual screenshot is boring
+- Changed "or" back to "||" in node.tpl.php since themers do need to learn a little PHP
+- #254821: Sub-theme's .info file triggers incorrect "out of date" flag in update module
+- #327455 by grendzy and erifneerg: name and id mismatch in named anchor causing validation error
+- #382598: .node div.links ruleset doesn't match html in node template
+- #382480 by Ognyan Kulev: #block-menu-2 should be #block-menu-primary-links
+- #374349: breadcrumb often broken when zen_breadcrumb_title is on
+- #426750: Removed Zen Classic sub theme
+- #445562: q0rban and JohnAlbin: Allow modules to declare their own block edit links
+
+Zen 6.x-1.0, 2009-02-14
+-----------------------
+- #342004 by Amitaibu: Add css hint to prevent cramped-looking tables
+- #290657: Liquid layout does not have min-width enforced
+- #329769 by kmonty: Update zen_id_safe to remove underscores
+- #275832: hook_theme implementation breaks maintenance page when database is down
+- #362104: layout breaks on Zen-themed maintenance page
+- Changed "or" back to "||" in template files since themers do need to learn a little PHP
+- #346867 by debonator: navbar-inner is missing the "clear-block" class
+- #325610 by Garrett Albright: Site name and logo don't link to frontpage on multilingual site
+- #281106: Erroneous whitespace when div.clear-block touches bottom edge of viewport
+- #365631: Zen's table-styling-fix breaks update module's styling
+- #322480 by grendzy, mr.baileys, Bevan, and JohnAlbin: Make registry rebuild warning less obtrusive
+- #325630: Broken link in "Theme registry rebuilt" warning when Clean URLs is off
+- #324104 by JohnAlbin and dalin: Broken block editing link for Views 2
+- #365205: block editing link doesn't work with Menu Block 6.x-2.1 and later
+- #308251 by Garrett Albright: Improve icon placement on status, warning, and error messages
+- Added $body_classes_array variable to page template
+- #343945: Fix zen_breadcrumb_title setting to use proper menu_get_active_item()
+- #279896 by lutegrass: Help prevent double H1 tags on homepage that is not /node
+- #310507 by MikeyLikesIt: Footer region not output in Zen Classic
+- #347195: Remove theme registry fix that was needed for broken Drupal 6.0 - 6.6
+- #346706 by jsaints: Content clipped after page one when printing in Firefox
+- #311529: Remove core's page-ARG0 body class, leaving zen's page-PATH
+- Simplified body class generation code
+- #334956 by hansrossel: Remove no-longer-needed fix for "Flash of Unstyled Content in IE"
+- Fixed theme settings CSS for IE6 users
+- Added Photoshop file for STARTERKIT screenshot
+- Added Photoshop file for messages
+- Allow easier CSS rule overriding by including THEMENAME.css file last
+- Fixed message styling in Zen Classic
+- #308957: html-elements.css not enabled in STARTERKIT
+- #288213 by budda: Tabs in IE have a text select cursor rather than hand pointer
+- #310818: Auto theme-registry rebuild warns themer multiple times
+
+Zen 6.x-1.0-beta3, 2008-09-15
+-----------------------------
+- #308251: Add useful styling for status, warning, and error messages
+- #307309: Add feature to rebuild theme registry during theme development
+- Removed path_to_zentheme() since we're not conditionally including wireframes.css or block-editing.css
+- #245832: Add IE conditional stylesheets to .info file
+- #263228: Allow sub-themes to override wireframes.css
+- #260605: Can't override block-editing.css
+- #308266: Don't display footer if no footer message or footer blocks
+- Changed $block_classes to $classes and $comment_classes to $classes and $node_classes to $classes
+- #290838 by thehong: Only display comments block when comments content is not empty
+- Don't display comment wrapper title on forums
+- #299397: Synchronize Zen's tpl files with core's tpl files
+- #281106 by kmonty: Erroneous whitespace when div.clear-block touches bottom edge of viewport
+- Changed "||" to "or" in template files since its more intuitive to PHP newbies
+- #279896: Help prevent double H1 tags on homepage that is not /node
+- #279896: Moved styles to zen.css that should never have been in layout.css
+- #255265 by kmonty: Don't "skip to nav" if there's no nav
+- Re-arranged sidebar classes so they are in no-sidebars -> two-sidebars order in the layout CSS files
+- #306856: Optimize code by adding conditional includes
+- Moved some comments from zen to STARTERKIT where they belong
+- Optimized zen_breadcrumb()
+- Folded template-menus.php back into template.php since its not conditionally included
+- Removed theme_username from STARTERKIT and zen_classic since it was fixed in Drupal 6.3
+- Optimized zen_menu_item_link()
+- #305311: CSS files makes reference to to drupal5-reference.css
+- #299419: Remove empty zen.css in sub-themes
+- #284798: PHP warning when settings section of .info file is missing
+- #272655: Make STARTERKIT_theme easier to extend
+
+Zen 6.x-1.0-beta2, 2008-05-20
+-----------------------------
+- #260016: PHP 4 Parse error: syntax error, unexpected '&'
+
+Zen 6.x-1.0-beta1, 2008-05-15
+-----------------------------
+- #253609 by jjeff: Add 'region' class to regions
+- #258123 by jjeff: Rearrange placement of #site-name strong
+- #248103: Allow themes to set defaults for settings in their .info files
+- #249532: Allow subthemes to have preprocess hooks without tpl files
+- #223518: Option to show page title in breadcrumbs
+- #253249: zen_id_safe fails when first character is extended latin
+- #251632: Make the closure region more useful
+- #199682: 'Submitted by' text is shown for content even if setting is disabled
+- #222339: Blocks in Zen Classic header and closure lack padding
+- #248780: admin table styles override update_status styling
+- #232840: OpenID login block displaying incorrectly
+- #246110 by jjeff: zen.css breaks .container-inline
+- #229661: Search Box doesn't return any results or warnings
+- #244023 by jjeff: Make block editing links go to actual menu edit pages
+- #245968 by jjeff: Put the word "Comments" above comments
+- #238387: Update README on how to edit the .info file
+- #227297 by Aragorn450: CSS Include for wireframes broken
+- Prevented "notice: Undefined variable: edit_links" for anonymous users
+- Made block-editing.css a "theme"-type CSS file
+- #224416 by sykora: <span> displaying on mouse over on block heading
+- Added complete Drupal 6 CSS for easy reference by theme developers
+- Added Photoshop file for tabs
+- #222299: Block editing link in Zen Classic footer is white on white
+
+Zen 5.x-1.2, 2009-02-15
+-----------------------
+- #342004 by Amitaibu: Add css hint to prevent cramped-looking tables
+- #290657: Liquid layout does not have min-width enforced
+- #279896 by lutegrass: Help prevent double H1 tags on homepage that is not /node
+- #346706 by jsaints: Content clipped after page one when printing in Firefox
+- Added $body_classes_array variable to page template
+- Simplified body class generation code
+- Fixed theme settings CSS for IE6 users
+- #288213 by budda: Tabs in IE have a text select cursor rather than hand pointer
+- #249823: Add options to toggle display of primary and secondary links
+- #281106 by kmonty: Erroneous whitespace when div.clear-block touches bottom edge of viewport
+- #279896: Help prevent double H1 tags on homepage that is not /node
+- #279896: Moved styles to zen.css that should never have been in layout.css
+- #255265 by kmonty: Don't "skip to nav" if there's no nav
+- #263228: Allow sub-themes to override wireframes.css
+- Added sample override template file for search block's form
+- Fixed _zen_hook() to look in sub-theme directory when $hook is not valid PHP function name
+- #223518: Option to show page title in breadcrumbs
+- #255263: Don't call preprocess functions twice when Zen is active theme
+- #253249: zen_id_safe fails when first character is extended latin
+
+Zen 5.x-1.1, 2008-04-21
+-----------------------
+- #246109: Add MODULE_preprocess_HOOK functions to Zen
+- #199682: 'Submitted by' text is shown for content even if setting is disabled
+- #247960: Add THEME_preprocess() hook to Zen
+- #222339: Blocks in Zen Classic header and closure lack padding
+- #248720 by matt at antinomia: Only UPDATE {system} table WHERE type = 'theme'
+- #248780: admin table styles override update_status styling
+- #246110 by jjeff: zen.css breaks .container-inline
+- Prevented "notice: Undefined variable: edit_links" for anonymous users
+- Made block-editing.css a "theme"-type CSS file
+- Added Photoshop file for tabs
+- #222299: Block editing link in Zen Classic footer is white on white
+
+Zen 5.x-1.0, 2008-02-14
+-----------------------
+- #220161: Change SUBTHEME to STARTERKIT to prevent accidental WSOD
+- #221545 by jjeff: Add theme_comment_wrapper() and theme_username() from Zengine
+- #220551: IE6: sidebars disappear when resizing window
+- Added body classes: section-node-add, section-node-edit, section-node-delete
+- Prevented display of empty help from node_help()
+- #219401: Add theme override examples for all functions used in Zen core
+
+Zen 5.x-1.0-beta2, 2008-01-29
+-----------------------------
+- #214777: sub-theme's search-theme-form.tpl is ignored
+- #206707: tr.even/odd border-bottom is missing in IE
+- #207743 by jjeff: Added translatable "Unpublished" text as background
+- #207743 by jjeff: Added block editing links on hover
+- Added extended block classes (zebra class by jjeff)
+- #207743 by jjeff: Allow a sub-theme to add/alter block variables
+- #110897: oversize content causes IE6 layout breakage (now fixed in Zen Classic)
+- #211156 by jjeff: $subtheme_directory variable in page.tpl.php never gets populated
+- #206060: changed inline styling method for navbar links from inline to float
+
+Zen 5.x-1.0-beta1, 2008-01-06
+-----------------------------
+- Removed named anchors from doc flow to prevent any styles from appearing
+- #203213 by kdebaas: Add node-teaser class to nodes displayed as teasers
+- #203112 by kdebaas: Un-localizable string in search-theme-form.tpl.php
+- #201793: Fixed fatal error when no settings are added to a sub-theme's settings
+- #196181: _phptemplate_callback doesn't look in sub-theme folder for .tpl.php files
+- Added sample override template file for drupal search form
+- Added SUBTHEME directory as a starter sub-theme for developers
+- #199036 by joachim: Make padding on #squeeze conditional
+- #199578: Fatal error on Zen Classic theme settings when using admin theme
+- #200380 by psynaptic: missing semi-colon in layout-fixed.css
+- #196230: Tabs broken in IE5 and IE6
+- #199682: 'Submitted by' text is shown even if setting is disabled
+- #171201: Remove un-localizable date/time format from base theme
+- Added theme settings to control layout method and wireframes inclusion
+- Added fixed layout stylesheet
+
+Zen 5.x-0.8, 2007-11-29
+-----------------------
+- #196223: IE5 always loads @import print stylesheet
+- #184232: Add README documentation
+- #121991: Source rendering order needs adjustment
+- #110897: oversize content causes IE6 layout breakage
+- Added unique classes for each page and website section
+- Added customizable breadcrumb settings
+- Split template.php into multiple files to ease theme developer overload
+- Add prettier tab styling
+- #141784: Add conditional IE stylesheets
+- Merge zen-fixed with zen_classic
+- Add optional Theme Settings API integration
+- #169359: Base CSS and tpl files don't get loaded (sub-theme with page.tpl.php)
+- #171464: Create starter theme; migrate current style to a sub-theme
+- Add ability to change regions in a sub-theme
+- Add complete Drupal 5 CSS for easy reference by theme developers
+- #183936: Backport Drupal 6 $body_classes
+
+Zen 5.x-0.7, 2007-10-15
+-----------------------
+- #100894: For SEO, H1#site-name should be div#site-name strong
+- #118467 by leandrosiow: Screen redraw errors with resizable textareas in Firefox
+- #154937 by msonnabaum: add skip navigation for screen readers/mobility impaired
+- #122592: Ability to theme each primary link
+- #178560 by incognito: Shifting avatars in the comment blocks
+- #110553 by rport: Use png instead of gif for images
+- #120052: Add linux fonts
+- #183360: Empty H2 appears on blocks with no titles
+- #121101: zen.css does not validate
+- #110902: IE6: text falls outside and to the left of content area
+- #183354: Add a div around the feed icons
+- #120341: Sidebar has unwanted 5em bottom margin
+- #122938: Enabling CSS aggregation messes up the CSS in Safari
+- #110897: oversize content causes IE6 layout breakage
+- #119270: profile pictures indenting
+- #118170 by mr700: blockquote css border has two widths
+- #110810: change .submitted span to div
+- #100899: don't use sidebar class for widths
+- #182130 by joachim: links in h2 and h3 different sizes
+- #182556: Added CHANGELOG
+
+Zen 5.x-0.6, 2007-01-17
+-----------------------
+- Initial pre-release
diff --git a/drupal/sites/all/themes/zen/LICENSE.txt b/drupal/sites/all/themes/zen/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/drupal/sites/all/themes/zen/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/drupal/sites/all/themes/zen/README-FIRST.txt b/drupal/sites/all/themes/zen/README-FIRST.txt
new file mode 100644
index 0000000..8c11896
--- /dev/null
+++ b/drupal/sites/all/themes/zen/README-FIRST.txt
@@ -0,0 +1,79 @@
+WHERE TO START
+--------------
+
+Yay! You opened the correct file first. The first thing that people notice when
+they download the Zen theme is that there are A LOT of files -- way more than
+other themes.
+
+Don't worry! You don't need to learn everything all at once in order to make a
+drupal theme. Zen will do the bits you haven't learned and patiently wait for
+you to discover the documentation and inline comments about them.
+
+
+SUGGESTED READING
+-----------------
+
+Installation
+  If you don't know how to install a Drupal theme, there is a quick primer later
+  in this document.
+
+Building a sub-theme
+  See the STARTERKIT/README.txt file for full instructions.
+
+Theme .info file
+  Your sub-theme's .info file holds the basic information about your theme that
+  Drupal needs to know: its name, description, features, template regions, CSS
+  files, and JavaScript. Don't worry about all these lines just yet.
+
+CSS
+  Once you have created your sub-theme, look at the README.txt in your
+  sub-theme's css folder.
+
+Templates
+  Now take a look at the README.txt in your sub-theme's templates folder.
+
+
+ONLINE READING
+--------------
+
+Full documentation on the Zen theme can be found in Drupal's Handbook:
+  http://drupal.org/node/193318
+
+Excellent documentation on Drupal theming can be found in the Theme Guide:
+  http://drupal.org/theme-guide
+
+
+INSTALLATION
+------------
+
+ 1. Download Zen from http://drupal.org/project/zen
+
+ 2. Unpack the downloaded file, take the entire zen folder and place it in your
+    Drupal installation under one of the following locations:
+      sites/all/themes
+        making it available to the default Drupal site and to all Drupal sites
+        in a multi-site configuration
+      sites/default/themes
+        making it available to only the default Drupal site
+      sites/example.com/themes
+        making it available to only the example.com site if there is a
+        sites/example.com/settings.php configuration file
+
+    Please note: you will need to create the "theme" folder under "sites/all/"
+    or "sites/default/".
+
+    For more information about acceptable theme installation directories, read
+    the sites/default/default.settings.php file in your Drupal installation.
+
+ 3. Log in as an administrator on your Drupal site and go to Administer > Site
+    building > Themes (admin/build/themes). You will see the Zen theme there
+    with links on how to create your own sub-theme. You can optionally make Zen
+    the default theme.
+
+ 4. Now build your own sub-theme by reading the STARTERKIT/README.txt file.
+
+ 5. Internet explorer has a nasty bug that limits you to 31 stylsheets total. To
+    get around this limitation during theme development, download, install and
+    configure the "IE CSS Optimizer" module.
+
+    http://drupal.org/project/ie_css_optimizer
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/README.txt b/drupal/sites/all/themes/zen/STARTERKIT/README.txt
new file mode 100644
index 0000000..d5c3515
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/README.txt
@@ -0,0 +1,127 @@
+BUILD YOUR OWN SUB-THEME
+------------------------
+
+*** IMPORTANT ***
+
+* In Drupal 6, the theme system caches template files and which theme functions
+  should be called. What that means is if you add a new theme or preprocess
+  function to your template.php file or add a new template (.tpl.php) file to
+  your sub-theme, you will need to rebuild the "theme registry." See
+  http://drupal.org/node/173880#theme-registry
+
+* Drupal 6 also stores a cache of the data in .info files. If you modify any
+  lines in your sub-theme's .info file, you MUST refresh Drupal 6's cache by
+  simply visiting the admin/build/themes page.
+
+
+The base Zen theme is designed to be easily extended by its sub-themes. You
+shouldn't modify any of the CSS or PHP files in the zen/ folder; but instead you
+should create a sub-theme of zen which is located in a folder outside of the
+root zen/ folder. The examples below assume zen and your sub-theme will be
+installed in sites/all/themes/, but any valid theme directory is acceptable
+(read the sites/default/default.settings.php for more info.)
+
+  Why? To learn why you shouldn't modify any of the files in the zen/ folder,
+  see http://drupal.org/node/245802
+
+ 1. Copy the STARTERKIT folder out of the zen/ folder and rename it to be your
+    new sub-theme. IMPORTANT: The name of your sub-theme must start with an
+    alphabetic character and can only contain lowercase letters, numbers and
+    underscores.
+
+    For example, copy the sites/all/themes/zen/STARTERKIT folder and rename it
+    as sites/all/themes/foo.
+
+      Why? Each theme should reside in its own folder. To make it easier to
+      upgrade Zen, sub-themes should reside in a folder separate from their base
+      theme.
+
+ 2. In your new sub-theme folder, rename the STARTERKIT.info.txt file to include
+    the name of your new sub-theme and remove the ".txt" extension. Then edit
+    the .info file by editing the name and description field.
+
+    For example, rename the foo/STARTERKIT.info.txt file to foo/foo.info. Edit
+    the foo.info file and change "name = Zen Sub-theme Starter Kit" to
+    "name = Foo" and "description = Read..." to "description = A Zen sub-theme".
+
+      Why? The .info file describes the basic things about your theme: its
+      name, description, features, template regions, CSS files, and JavaScript
+      files. See the Drupal 6 Theme Guide for more info:
+      http://drupal.org/node/171205
+
+    Then, visit your site's admin/build/themes to refresh Drupal 6's cache of
+    .info file data.
+
+ 3. By default your new sub-theme is using a fixed-width layout. If you want a
+    liquid layout for your theme, delete the unneeded layout-fixed.css and
+    layout-fixed-rtl.css files and edit your sub-theme's .info file and replace
+    the reference to layout-fixed.css with layout-liquid.css.
+
+    For example, edit foo/foo.info and change this line:
+      stylesheets[all][]   = css/layout-fixed.css
+    to:
+      stylesheets[all][]   = css/layout-liquid.css
+
+      Why? The "stylesheets" lines in your .info file describe the media type
+      and path to the CSS file you want to include. The format for these lines
+      is:  stylesheets[MEDIA][] = path/to/file.css
+
+    Then, visit your site's admin/build/themes to refresh Drupal 6's cache of
+    .info file data.
+
+    Alternatively, if you are more familiar with a different CSS layout method,
+    such as Blueprint or 960.gs, you can replace the "css/layout-fixed.css" line
+    in your .info file with a line pointing at your choice of layout CSS file.
+
+ 4. Edit the template.php and theme-settings.php files in your sub-theme's
+    folder; replace ALL occurrences of "STARTERKIT" with the name of your
+    sub-theme.
+
+    For example, edit foo/template.php and foo/theme-settings.php and replace
+    every occurrence of "STARTERKIT" with "foo".
+
+    It is recommended to use a text editing application with search and
+    "replace all" functionality.
+
+ 5. Log in as an administrator on your Drupal site and go to Administer > Site
+    building > Themes (admin/build/themes) and enable your new sub-theme.
+
+ 6. Internet explorer has a nasty bug that limits you to 31 stylsheets total. To
+    get around this limitation during theme development, download, install and
+    configure the "IE CSS Optimizer" module.
+
+    http://drupal.org/project/ie_css_optimizer
+
+    On a production server, you should enable full optimization of the "Optimize
+    CSS files" option on the Admin Performance page at
+    admin/settings/performance.
+
+
+Optional:
+
+ 7. MODIFYING ZEN CORE TEMPLATE FILES:
+    If you decide you want to modify any of the .tpl.php template files in the
+    zen folder, copy them to your sub-theme's folder before making any changes.
+    And then rebuild the theme registry.
+
+    For example, copy zen/templates/page.tpl.php to foo/templates/page.tpl.php.
+
+ 8. THEMEING DRUPAL'S SEARCH FORM:
+    Copy the search-theme-form.tpl.php template file from the modules/search/
+    folder and place it in your sub-theme's folder. And then rebuild the theme
+    registry.
+
+    You can find a full list of Drupal templates that you can override in the
+    templates/README.txt file or http://drupal.org/node/190815
+
+      Why? In Drupal 6 theming, if you want to modify a template included by a
+      module, you should copy the template file from the module's directory to
+      your sub-theme's directory and then rebuild the theme registry. See the
+      Drupal 6 Theme Guide for more info: http://drupal.org/node/173880
+
+ 9. FURTHER EXTENSIONS OF YOUR SUB-THEME:
+    Discover further ways to extend your sub-theme by reading Zen's
+    documentation online at:
+      http://drupal.org/node/193318
+    and Drupal 6's Theme Guide online at:
+      http://drupal.org/theme-guide
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/STARTERKIT.info.txt b/drupal/sites/all/themes/zen/STARTERKIT/STARTERKIT.info.txt
new file mode 100644
index 0000000..4492544
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/STARTERKIT.info.txt
@@ -0,0 +1,96 @@
+  ; The name and description of the theme used on the admin/build/themes page.
+name        = Zen Sub-theme Starter Kit
+description = Read the <a href="http://drupal.org/node/629510">online docs</a> or the included README.txt on how to create a Zen sub-theme.
+
+  ; The screenshot used on the admin/build/themes page.
+screenshot = screenshot.png
+
+  ; "core" specifies the version of Drupal that this theme is compatible with.
+  ; "base theme" specifies that this is a theme that uses the "zen" theme as its
+  ; base theme. Its unlikely you will ever need to change these, but they are
+  ; required fields for a Zen sub-theme. The "engine" field is not used in a
+  ; sub-theme since the engine is inherited from its base theme.
+core       = 6.x
+base theme = zen
+
+  ; This section adds CSS files to your theme. The media type is specified in
+  ; the brackets. Typical CSS media types include "all", "screen", "print", and
+  ; "handheld". See http://www.w3.org/TR/CSS21/media.html#media-types for a full
+  ; list of stylesheet media types in CSS 2.1. The iPhone's preferred media type
+  ; is based on the CSS3 Media queries. http://www.w3.org/TR/css3-mediaqueries/
+  ;
+  ; You can also override any of Zen's stylesheets or any module's stylesheets,
+  ; an /extremely/ useful feature. See the excellent Drupal 6 Theme Guide at
+  ; http://drupal.org/node/263967 for more details.
+stylesheets[all][]   = css/html-reset.css
+stylesheets[all][]   = css/wireframes.css
+stylesheets[all][]   = css/layout-fixed.css
+stylesheets[all][]   = css/page-backgrounds.css
+stylesheets[all][]   = css/tabs.css
+stylesheets[all][]   = css/messages.css
+stylesheets[all][]   = css/pages.css
+stylesheets[all][]   = css/block-editing.css
+stylesheets[all][]   = css/blocks.css
+stylesheets[all][]   = css/navigation.css
+stylesheets[all][]   = css/panels-styles.css
+stylesheets[all][]   = css/views-styles.css
+stylesheets[all][]   = css/nodes.css
+stylesheets[all][]   = css/comments.css
+stylesheets[all][]   = css/forms.css
+stylesheets[all][]   = css/fields.css
+stylesheets[print][] = css/print.css
+; stylesheets[handheld][] = css/mobile.css
+; stylesheets[only screen and (max-device-width: 480px)][] = css/iphone.css
+
+  ; Set the conditional stylesheets that are processed by IE.
+conditional-stylesheets[if IE][all][]       = css/ie.css
+conditional-stylesheets[if lte IE 6][all][] = css/ie6.css
+
+  ; Optionally add some JavaScripts to your theme.
+; scripts[] = js/script.js
+
+  ; The regions defined in Zen's default page.tpl.php file.  The name in
+  ; brackets is the name of the variable in the page.tpl.php file, (e.g.
+  ; "[content_top]" in the .info file means there should be a $content_top
+  ; variable in the page.tpl.php file.) The text after the equals sign is a
+  ; descriptive text used on the admin/build/blocks page.
+  ;
+  ; To add a new region, copy Zen's page.tpl.php to your sub-theme's directory,
+  ; add a line line to this file, and then add the new variable to your
+  ; page.tpl.php template.
+regions[sidebar_first]  = First sidebar
+regions[sidebar_second] = Second sidebar
+regions[navigation]     = Navigation bar
+regions[highlight]      = Highlighted content
+regions[content_top]    = Content top
+regions[content_bottom] = Content bottom
+regions[header]         = Header
+regions[footer]         = Footer
+regions[page_closure]   = Page closure
+
+  ; Various page elements output by the theme can be toggled on and off. The
+  ; "features" control which of these check boxes display on the
+  ; admin/build/themes config page. This is useful for suppressing check boxes
+  ; for elements not used by your sub-theme. To suppress a check box, omit the
+  ; entry for it below. See the Drupal 6 Theme Guide for more info:
+  ; http://drupal.org/node/171205#features
+features[] = logo
+features[] = name
+features[] = slogan
+features[] = mission
+features[] = node_user_picture
+features[] = comment_user_picture
+features[] = search
+features[] = favicon
+features[] = primary_links
+features[] = secondary_links
+
+  ; Set the default settings to be used in theme-settings.php
+settings[zen_block_editing]        = 1
+settings[zen_breadcrumb]           = yes
+settings[zen_breadcrumb_separator] = ' › '
+settings[zen_breadcrumb_home]      = 1
+settings[zen_breadcrumb_trailing]  = 1
+settings[zen_breadcrumb_title]     = 0
+settings[zen_rebuild_registry]     = 1
+settings[zen_wireframes]           = 0
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/README.txt b/drupal/sites/all/themes/zen/STARTERKIT/css/README.txt
new file mode 100644
index 0000000..3a128ae
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/README.txt
@@ -0,0 +1,134 @@
+ZEN'S STYLESHEETS
+-----------------
+
+Don't panic!
+
+There are 28 CSS files in this sub-theme, but its not as bad as it first seems:
+- The drupal6-reference.css is just a reference file and isn't used directly by
+  your sub-theme. See below.
+- There are 9 CSS files whose names end in "-rtl.css". Those are CSS files
+  needed to style content written in Right-to-Left languages, such as Arabic and
+  Hebrew. If your website doesn't use such languages, you can safely delete all
+  of those CSS files.
+- If you aren't using this theme while doing wireframes of the functionality of
+  your sub-theme, you can remove wireframes.css from your sub-theme's .info file
+  and delete the file as well.
+
+That leaves just 17 CSS files. (Okay, still quite a few, but better than 28.)
+
+- Instead of one monolithic stylesheet, your sub-theme's CSS files are organized
+  into several smaller stylesheets that are grouped to allow cascading across
+  common Drupal template files.
+- The order of the stylesheets is designed to allow CSS authors to use the
+  lowest specificity possible to achieve the required styling.
+
+
+ORDER AND PURPOSE OF DEFAULT STYLESHEETS
+----------------------------------------
+
+First off, if you find you don't like this organization of stylesheets, you are
+free to change it; simply edit the stylesheet declarations in your sub-theme's
+.info file. This structure was crafted based on several years of experience
+theming Drupal websites.
+
+- html-reset.css:
+  This is the place where you should set the default styling for all HTML
+  elements and standardize the styling across browsers. If you prefer a specific
+  reset method, feel free to add it.
+
+- layout-fixed.css:
+- layout-liquid.css:
+  Zen's default layout is based on the Zen Columns layout method. The
+  layout-fixed.css file is used by default and can be swapped with the
+  layout-liquid.css file. These files are designed to be easily replaced. If you
+  are more familiar with a different CSS layout method, such as Blueprint or
+  960.gs, you can replace these files with your choice of layout CSS file.
+
+- page-backgrounds.css:
+  Layered backgrounds across scattered divs can be easier to manage if they are
+  centralized in one location.
+
+- tabs.css:
+- messages.css:
+  While most of the CSS rulesets in your sub-theme are guidelines without any
+  actual properties, the tabs and messages stylesheets contain actual styling
+  for Drupal tabs and Drupal status messages; two common Drupal elements that
+  are often neglected by site desiners. Zen provides some basic styling which
+  you are free to use or to rip out and replace.
+
+- pages.css:
+  Page styling for the markup in the page.tpl.php template.
+
+- blocks.css:
+  Block styling for the markup in the block.tpl.php template.
+
+- navigation.css:
+  The styling for your site's menus can get quite bulky and its easier to see
+  all the styles if they are grouped together rather then across the
+  header/footer sections of pages.css and in blocks.css.
+
+- views-styles.css:
+  Views styling for the markup in various views templates. You'll notice this
+  stylesheet isn't called "views.css" as that would override (remove) the Views
+  module's stylesheet.
+
+- nodes.css:
+  Node styling for the markkup in the node.tpl.php template.
+
+- comments.css:
+  Comment styling for the markup in the comment-wrapper.tpl.php and
+  comments.tpl.php templates.
+
+- forms.css:
+  Form styling for the markup in various Drupal forms.
+
+- fields.css:
+  Field styling for the markup produced by theme_field().
+
+- print.css:
+  The print styles for all markup.
+
+- ie.css:
+- ie6.css:
+  The Internet Explorer stylesheets are added via conditional comments. Many CSS
+  authors find using IE "conditional stylesheets" much easier then writing
+  rulesets with CSS hacks that are known to only apply to various versions of
+  IE. An alternative method presented by Paul Irish can be found at
+  http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
+
+In these stylesheets, we have included all of the classes and IDs from this
+theme's tpl.php files. We have also included many of the useful Drupal core
+styles to make it easier for theme developers to see them.
+
+
+DRUPAL CORE'S STYLESHEETS
+-------------------------
+
+Many of these styles are over-riding Drupal's core stylesheets, so if you remove
+a declaration from them, the styles may still not be what you want since
+Drupal's core stylesheets are still styling the element. See the
+drupal6-reference.css file for a complete list of all Drupal 6.x core styles.
+
+In addition to the style declarations in these stylesheets, other Drupal styles
+that you might want to override or augment are those for:
+
+  Book Navigation  See line 74  of drupal6-reference.css file
+  Forum            See line 197 of drupal6-reference.css file
+  Menus            See line 667 of drupal6-reference.css file
+  News Aggregator  See line 20  of drupal6-reference.css file
+  Polls            See line 287 of drupal6-reference.css file
+  Search           See line 320 of drupal6-reference.css file
+  User Profiles    See line 945 of drupal6-reference.css file
+
+
+INTERNET EXLORER HATES YOU
+--------------------------
+
+All versions of IE limit you to 31 stylesheets total. What that means is that
+only the first 31 stylesheets will load, ignoring the others. So you'll have
+missing styles in IE7 and later and a broken layout in IE6.
+
+This is a known bug in IE: http://support.microsoft.com/kb/262161
+
+Please read http://john.albin.net/css/ie-stylesheets-not-loading for the gory
+details.
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/block-editing-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/block-editing-rtl.css
new file mode 100644
index 0000000..2b7cc47
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/block-editing-rtl.css
@@ -0,0 +1,10 @@
+/**
+ * @file
+ * RTL companion for the block-editing.css file.
+ */
+
+
+div.block.with-block-editing div.edit {
+  left: 0;
+  right: auto;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/block-editing.css b/drupal/sites/all/themes/zen/STARTERKIT/css/block-editing.css
new file mode 100644
index 0000000..ba86d71
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/block-editing.css
@@ -0,0 +1,25 @@
+/**
+ * @file
+ * Zen's rollover edit links for blocks.
+ */
+
+
+div.block.with-block-editing {
+  position: relative;
+}
+
+div.block.with-block-editing div.edit {
+  display: none;
+  position: absolute;
+  right: 0; /* LTR */
+  top: 0;
+  z-index: 40;
+  border: 1px solid #eee;
+  padding: 0 2px;
+  font-size: 0.75em;
+  background-color: #fff;
+}
+
+div.block.with-block-editing:hover div.edit {
+  display: block;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/blocks.css b/drupal/sites/all/themes/zen/STARTERKIT/css/blocks.css
new file mode 100644
index 0000000..1a050be
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/blocks.css
@@ -0,0 +1,96 @@
+/**
+ * @file
+ * Block Styling
+ */
+
+
+.block /* Block wrapper */ {
+  margin-bottom: 1em;
+}
+
+.block.first /* The first block in the region */ {
+}
+
+.block.last /* The last block in the region */ {
+}
+
+.block.region-odd /* Zebra striping for each block in the region */ {
+}
+
+.block.region-even /* Zebra striping for each block in the region */ {
+}
+
+.block.odd /* Zebra striping independent of each region */ {
+}
+
+.block.even /* Zebra striping independent of each region */ {
+}
+
+.region-count-1 /* Incremental count for each block in the region */ {
+}
+
+.count-1 /* Incremental count independent of each region */ {
+}
+
+.block h2.title /* Block title */ {
+}
+
+.block .content /* Block's content wrapper */ {
+}
+
+#block-aggregator-category-1 /* Block for the latest news items in the first category */ {
+}
+
+#block-aggregator-feed-1 /* Block for the latest news items in the first feed */ {
+}
+
+#block-block-1 /* First administrator-defined block */ {
+}
+
+#block-blog-0 /* "Recent blog posts" block */ {
+}
+
+#block-book-0 /* "Book navigation" block for the current book's table of contents */ {
+}
+
+#block-comment-0 /* "Recent comments" block */ {
+}
+
+#block-forum-0 /* "Active forum topics" block */ {
+}
+
+#block-forum-1 /* "New forum topics" block */ {
+}
+
+#block-menu-primary-links /* "Primary links" block */ {
+}
+
+#block-menu-secondary-links /* "Secondary links" block */ {
+}
+
+#block-node-0 /* "Syndicate" block for primary RSS feed */ {
+}
+
+#block-poll-0 /* "Most recent poll" block */ {
+}
+
+#block-profile-0 /* "Author information" block for the profile of the page's author */ {
+}
+
+#block-search-0 /* "Search form" block */ {
+}
+
+#block-statistics-0 /* "Popular content" block */ {
+}
+
+#block-user-0 /* "User login form" block */ {
+}
+
+#block-user-1 /* "Navigation" block for Drupal navigation menu */ {
+}
+
+#block-user-2 /* "Who's new" block for a list of the newest users */ {
+}
+
+#block-user-3 /* "Who's online" block for a list of the online users */ {
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/comments.css b/drupal/sites/all/themes/zen/STARTERKIT/css/comments.css
new file mode 100644
index 0000000..0eed0cb
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/comments.css
@@ -0,0 +1,79 @@
+/**
+ * @file
+ * Comment Styling
+ */
+
+
+#comments /* Wrapper for the list of comments and its title */ {
+  margin: 1em 0;
+}
+
+#comments h2.title /* Heading for the list of comments */ {
+}
+
+.comment /* Wrapper for a single comment */ {
+}
+
+.comment-preview /* Preview of the comment before submitting new or updated comment */ {
+}
+
+.comment.new /* A new comment since the user last viewed the page. */ {
+}
+
+.comment.first /* The first comment in the list of comments */ {
+}
+
+.comment.last /* The last comment in the list of comments */ {
+}
+
+.comment.odd /* An odd-numbered comment in the list of comments */ {
+}
+
+.comment.even /* An even-numbered comment in the list of comments */ {
+}
+
+.comment-unpublished /* Unpublished comments */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. See also the div.unpublished declaration in the nodes.css. */ {
+}
+
+.comment-by-anonymous /* A comment created by an anonymous user */ {
+}
+
+.comment-by-node-author /* A comment created by the node's author */ {
+}
+
+.comment-by-viewer /* A comment created by the current user */ {
+}
+
+.comment h3.title /* Comment title */ {
+}
+
+.new /* "New" marker for comments that are new for the current user */ {
+  color: #c00;
+}
+
+.comment .picture /* The picture of the comment author */ {
+}
+
+.comment .submitted /* The "posted by" information */ {
+}
+
+.comment .content /* Comment's content wrapper */ {
+}
+
+.comment .user-signature /* The user's signature */ {
+}
+
+.comment ul.links /* Comment links. See also the ul.links declaration in the pages.css. */ {
+}
+
+.indented /* Nested comments are indented */ {
+  /* margin-left: 25px; */ /* Drupal core uses a 25px left margin */
+}
+
+.preview .comment /* Preview of the comment before submitting new or updated comment */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/drupal6-reference.css b/drupal/sites/all/themes/zen/STARTERKIT/css/drupal6-reference.css
new file mode 100644
index 0000000..14df3ef
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/drupal6-reference.css
@@ -0,0 +1,1983 @@
+/**
+ * @file
+ * DRUPAL 6.x Reference CSS
+ *
+ * THIS FILE IS FOR REFERENCE ONLY AND IS NOT USED IN ANY WAY BY THE ZEN THEME.
+ *
+ * Drupal has very modular CSS. Which means that only the CSS that is needed
+ * for a particular page is loaded. This is a good thing.
+ *
+ * However, this makes it difficult for theme developers to discover how and
+ * where a particular style is coming from. So, here in all its glory is the
+ * complete CSS included with Drupal core 6.x.
+ *
+ * And, if you're not already, you should check out the free Firebug extension
+ * for Firefox. With it, you can inspect elements and easily view and play with
+ * its CSS styles.  http://www.getfirebug.com
+ */
+
+
+/*
+ * modules/aggregator/aggregator-rtl.css
+ */
+
+#aggregator .feed-source .feed-icon {
+  float: left;
+}
+
+
+/*
+ * modules/aggregator/aggregator.css
+ */
+
+#aggregator .feed-source .feed-title {
+  margin-top: 0;
+}
+#aggregator .feed-source .feed-image img {
+  margin-bottom: 0.75em;
+}
+#aggregator .feed-source .feed-icon {
+  float: right; /* LTR */
+  display: block;
+}
+#aggregator .feed-item {
+  margin-bottom: 1.5em;
+}
+#aggregator .feed-item-title {
+  margin-bottom: 0;
+  font-size: 1.3em;
+}
+#aggregator .feed-item-meta, #aggregator .feed-item-body {
+  margin-bottom: 0.5em;
+}
+#aggregator .feed-item-categories {
+  font-size: 0.9em;
+}
+#aggregator td {
+  vertical-align: bottom;
+}
+#aggregator td.categorize-item {
+  white-space: nowrap;
+}
+#aggregator .categorize-item .news-item .body {
+  margin-top: 0;
+}
+#aggregator .categorize-item h3 {
+  margin-bottom: 1em;
+  margin-top: 0;
+}
+
+
+/*
+ * modules/block/block.css
+ */
+
+#blocks td.region {
+  font-weight: bold;
+}
+#blocks tr.region-message {
+  font-weight: normal;
+  color: #999;
+}
+#blocks tr.region-populated {
+  display: none;
+}
+.block-region {
+  background-color: #ff6;
+  margin-top: 4px;
+  margin-bottom: 4px;
+  padding: 3px;
+}
+
+
+/*
+ * modules/book/book-rtl.css
+ */
+
+.book-navigation .page-previous {
+  float: right;
+}
+.book-navigation .page-up {
+  float: right;
+}
+
+
+/*
+ * modules/book/book.css
+ */
+
+.book-navigation .menu {
+  border-top: 1px solid #888;
+  padding: 1em 0 0 3em;
+}
+.book-navigation .page-links {
+  border-top: 1px solid #888;
+  border-bottom: 1px solid #888;
+  text-align: center;
+  padding: 0.5em;
+}
+.book-navigation .page-previous {
+  text-align: left;
+  width: 42%;
+  display: block;
+  float: left; /* LTR */
+}
+.book-navigation .page-up {
+  margin: 0 5%;
+  width: 4%;
+  display: block;
+  float: left; /* LTR */
+}
+.book-navigation .page-next {
+  text-align: right;
+  width: 42%;
+  display: block;
+  float: right;
+}
+#book-outline {
+  min-width: 56em;
+}
+.book-outline-form .form-item {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+#edit-book-bid-wrapper .description {
+  clear: both;
+}
+#book-admin-edit select {
+  margin-right: 24px;
+}
+#book-admin-edit select.progress-disabled {
+  margin-right: 0;
+}
+#book-admin-edit tr.ahah-new-content {
+  background-color: #ffd;
+}
+#book-admin-edit .form-item {
+  float: left;
+}
+
+
+/*
+ * modules/color/color-rtl.css
+ */
+
+#placeholder {
+  left: 0;
+  right: auto;
+}
+
+/* Palette */
+.color-form .form-item {
+  padding-left: 0;
+  padding-right: 1em;
+}
+.color-form label {
+  float: right;
+  clear: right;
+}
+.color-form .form-text, .color-form .form-select {
+  float: right;
+}
+.color-form .form-text {
+  margin-right: 0;
+  margin-left: 5px;
+}
+
+#palette .hook {
+  float: right;
+}
+#palette .down, #palette .up, #palette .both {
+  background: url(images/hook-rtl.png) no-repeat 0 0;
+}
+#palette .up {
+  background-position: 0 -27px;
+}
+#palette .both {
+  background-position: 0 -54px;
+}
+
+#palette .lock {
+  float: right;
+  right: -10px;
+}
+html.js #preview {
+  float: right;
+}
+
+
+/*
+ * modules/color/color.css
+ */
+
+/* Farbtastic placement */
+.color-form {
+  max-width: 50em;
+  position: relative;
+}
+#placeholder {
+  position: absolute;
+  top: 0;
+  right: 0; /* LTR */
+}
+
+/* Palette */
+.color-form .form-item {
+  height: 2em;
+  line-height: 2em;
+  padding-left: 1em; /* LTR */
+  margin: 0.5em 0;
+}
+.color-form label {
+  float: left; /* LTR */
+  clear: left; /* LTR */
+  width: 10em;
+}
+.color-form .form-text, .color-form .form-select {
+  float: left; /* LTR */
+}
+.color-form .form-text {
+  text-align: center;
+  margin-right: 5px; /* LTR */
+  cursor: pointer;
+}
+
+#palette .hook {
+  float: left; /* LTR */
+  margin-top: 3px;
+  width: 16px;
+  height: 16px;
+}
+#palette .down, #palette .up, #palette .both {
+  background: url(images/hook.png) no-repeat 100% 0; /* LTR */
+}
+#palette .up {
+  background-position: 100% -27px; /* LTR */
+}
+#palette .both {
+  background-position: 100% -54px; /* LTR */
+}
+
+#palette .lock {
+  float: left; /* LTR */
+  position: relative;
+  top: -1.4em;
+  left: -10px; /* LTR */
+  width: 20px;
+  height: 25px;
+  background: url(images/lock.png) no-repeat 50% 2px;
+  cursor: pointer;
+}
+#palette .unlocked {
+  background-position: 50% -22px;
+}
+#palette .form-item {
+  width: 20em;
+}
+#palette .item-selected {
+  background: #eee;
+}
+
+/* Preview */
+#preview {
+  display: none;
+}
+html.js #preview {
+  display: block;
+  position: relative;
+  float: left; /* LTR */
+}
+
+
+/*
+ * modules/comment/comment-rtl.css
+ */
+
+.indented {
+  margin-left: 0;
+  margin-right: 25px;
+}
+
+
+/*
+ * modules/comment/comment.css
+ */
+
+.indented {
+  margin-left: 25px; /* LTR */
+}
+.comment-unpublished {
+  background-color: #fff4f4;
+}
+.preview .comment {
+  background-color: #ffffea;
+}
+
+
+/*
+ * modules/dblog/dblog-rtl.css
+ */
+
+#edit-type-wrapper, #edit-severity-wrapper {
+  float: right;
+  padding-right: 0;
+  padding-left: .8em;
+}
+
+
+/*
+ * modules/dblog/dblog.css
+ */
+
+#edit-type-wrapper, #edit-severity-wrapper {
+  float: left; /* LTR */
+  padding-right: .8em; /* LTR */
+  margin: 0.1em;
+  /**
+   * In Opera 9, DOM elements with the property of "overflow: auto"
+   * will partially hide its contents with unnecessary scrollbars when
+   * its immediate child is floated without an explicit width set.
+   */
+  width: 15em;
+}
+#dblog-filter-form .form-item select.form-select {
+  width: 100%;
+}
+tr.dblog-user {
+  background: #ffd;
+}
+tr.dblog-user .active {
+  background: #eed;
+}
+tr.dblog-content {
+  background: #ddf;
+}
+tr.dblog-content .active {
+  background: #cce;
+}
+tr.dblog-page-not-found, tr.dblog-access-denied {
+  background: #dfd;
+}
+tr.dblog-page-not-found .active, tr.dblog-access-denied .active {
+  background: #cec;
+}
+tr.dblog-error {
+  background: #ffc9c9;
+}
+tr.dblog-error .active {
+  background: #eeb9b9;
+}
+
+
+/*
+ * modules/forum/forum-rtl.css
+ */
+
+#forum tr td.forum {
+  padding-left: 0.5em;
+  padding-right: 25px;
+  background-position: 98% 2px;
+}
+.forum-topic-navigation {
+  padding: 1em 3em 0 0;
+}
+.forum-topic-navigation .topic-previous {
+  text-align: left;
+  float: right;
+}
+.forum-topic-navigation .topic-next {
+  text-align: right;
+  float: left;
+}
+
+
+/*
+ * modules/forum/forum.css
+ */
+
+#forum .description {
+  font-size: 0.9em;
+  margin: 0.5em;
+}
+#forum td.created, #forum td.posts, #forum td.topics, #forum td.last-reply, #forum td.replies, #forum td.pager {
+  white-space: nowrap;
+}
+#forum td.posts, #forum td.topics, #forum td.replies, #forum td.pager {
+  text-align: center;
+}
+#forum tr td.forum {
+  padding-left: 25px; /* LTR */
+  background-position: 2px 2px; /* LTR */
+  background-image: url(../../misc/forum-default.png);
+  background-repeat: no-repeat;
+}
+#forum tr.new-topics td.forum {
+  background-image: url(../../misc/forum-new.png);
+}
+#forum div.indent {
+  margin-left: 20px;
+}
+
+.forum-topic-navigation {
+  padding: 1em 0 0 3em; /* LTR */
+  border-top: 1px solid #888;
+  border-bottom: 1px solid #888;
+  text-align: center;
+  padding: 0.5em;
+}
+.forum-topic-navigation .topic-previous {
+  text-align: right; /* LTR */
+  float: left; /* LTR */
+  width: 46%;
+}
+.forum-topic-navigation .topic-next {
+  text-align: left; /* LTR */
+  float: right; /* LTR */
+  width: 46%;
+}
+
+
+/*
+ * modules/help/help-rtl.css
+ */
+
+.help-items {
+  float: right;
+  padding-right: 0;
+  padding-left: 3%;
+}
+.help-items-last {
+  padding-right: 0;
+  padding-left: 0;
+}
+
+
+/*
+ * modules/help/help.css
+ */
+
+.help-items {
+  float: left; /* LTR */
+  width: 22%;
+  padding-right: 3%; /* LTR */
+}
+.help-items-last {
+  padding-right: 0; /* LTR */
+}
+
+
+/*
+ * modules/locale/locale.css
+ */
+
+.locale-untranslated {
+  font-style: normal;
+  text-decoration: line-through;
+}
+
+
+/*
+ * modules/node/node-rtl.css
+ */
+
+#node-admin-buttons {
+  float: right;
+  margin-left: 0;
+  margin-right: 0.5em;
+  clear: left;
+}
+
+
+/*
+ * modules/node/node.css
+ */
+
+.node-unpublished {
+  background-color: #fff4f4;
+}
+.preview .node {
+  background-color: #ffffea;
+}
+#node-admin-filter ul {
+  list-style-type: none;
+  padding: 0;
+  margin: 0;
+  width: 100%;
+}
+#node-admin-buttons {
+  float: left; /* LTR */
+  margin-left: 0.5em; /* LTR */
+  clear: right; /* LTR */
+}
+td.revision-current {
+  background: #ffc;
+}
+.node-form .form-text {
+  display: block;
+  width: 95%;
+}
+.node-form .container-inline .form-text {
+  display: inline;
+  width: auto;
+}
+.node-form .standard {
+  clear: both;
+}
+.node-form textarea {
+  display: block;
+  width: 95%;
+}
+.node-form .attachments fieldset {
+  float: none;
+  display: block;
+}
+.terms-inline {
+  display: inline;
+}
+
+
+/*
+ * modules/openid/openid.css
+ */
+
+#edit-openid-identifier {
+  background-image: url("login-bg.png");
+  background-position: 0% 50%;
+  background-repeat: no-repeat;
+  padding-left: 20px;
+}
+div#edit-openid-identifier-wrapper {
+  display: block;
+}
+html.js #user-login-form div#edit-openid-identifier-wrapper,
+html.js #user-login div#edit-openid-identifier-wrapper {
+  display: none;
+}
+html.js #user-login-form li.openid-link,
+html.js #user-login li.openid-link {
+  display : block;
+  list-style: none;
+}
+#user-login-form ul {
+  margin-top: 0;
+}
+#user-login ul {
+  margin: 0 0 5px;
+}
+#user-login ul li {
+  margin: 0;
+}
+#user-login-form li.openid-link,
+#user-login-form li.user-link,
+#user-login li.openid-link,
+#user-login li.user-link {
+  display: none;
+}
+#user-login-form li.openid-link a,
+#user-login li.openid-link a {
+  background: transparent url("login-bg.png") no-repeat 0 2px;
+  padding: 0 20px;
+}
+
+
+/*
+ * modules/poll/poll-rtl.css
+ */
+
+.poll .bar .foreground {
+  float: right;
+}
+.poll .percent {
+  text-align: left;
+}
+.poll .vote-form .choices {
+  text-align: right;
+}
+
+
+/*
+ * modules/poll/poll.css
+ */
+
+.poll .bar {
+  height: 1em;
+  margin: 1px 0;
+  background-color: #ddd;
+}
+.poll .bar .foreground {
+  background-color: #000;
+  height: 1em;
+  float: left; /* LTR */
+}
+.poll .links {
+  text-align: center;
+}
+.poll .percent {
+  text-align: right; /* LTR */
+}
+.poll .total {
+  text-align: center;
+}
+.poll .vote-form {
+  text-align: center;
+}
+.poll .vote-form .choices {
+  text-align: left; /* LTR */
+  margin: 0 auto;
+  display: table;
+}
+.poll .vote-form .choices .title {
+  font-weight: bold;
+}
+.node-form #edit-poll-more {
+  margin: 0;
+}
+td.poll-chtext {
+  width: 80%;
+}
+td.poll-chvotes .form-text {
+  width: 85%;
+}
+
+
+/*
+ * modules/profile/profile.css
+ */
+
+#profile-fields td.category {
+  font-weight: bold;
+}
+#profile-fields tr.category-message {
+  color: #999;
+}
+#profile-fields tr.category-populated {
+  display: none;
+}
+
+
+/*
+ * modules/search/search-rtl.css
+ */
+
+.search-advanced .criterion {
+  float: right;
+  margin-right: 0;
+  margin-left: 2em;
+}
+.search-advanced .action {
+  float: right;
+  clear: right;
+}
+
+
+/*
+ * modules/search/search.css
+ */
+
+.search-form {
+  margin-bottom: 1em;
+}
+.search-form input {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.search-results p {
+  margin-top: 0;
+}
+.search-results dt {
+  font-size: 1.1em;
+}
+.search-results dd {
+  margin-bottom: 1em;
+}
+.search-results .search-info {
+  font-size: 0.85em;
+}
+.search-advanced .criterion {
+  float: left; /* LTR */
+  margin-right: 2em; /* LTR */
+}
+.search-advanced .action {
+  float: left; /* LTR */
+  clear: left; /* LTR */
+}
+
+
+/*
+ * modules/system/admin-rtl.css
+ */
+
+div.admin-panel .body {
+  padding: 0 8px 2px 4px;
+}
+
+div.admin .expert-link {
+  text-align: left;
+  margin-right: 0;
+  margin-left: 1em;
+  padding-right: 0;
+  padding-left: 4px;
+}
+
+table.system-status-report th, table.system-status-report tr.merge-up td {
+  padding-right: 30px;
+}
+
+table.system-status-report th {
+  background-position: 95% 50%;
+}
+
+table.screenshot {
+  margin-left: 1em;
+}
+
+.date-container {
+  clear: right;
+}
+.date-container .select-container, .date-container .custom-container {
+  float: right;
+}
+.date-container .custom-container {
+  margin-left: 0;
+  margin-right: 15px;
+}
+
+
+/*
+ * modules/system/admin.css
+ */
+
+/*
+** Formatting for administration page
+*/
+div.admin-panel {
+  margin: 0;
+  padding: 5px 5px 15px 5px;
+}
+
+div.admin-panel .description {
+  margin: 0 0 3px;
+  padding: 2px 0 3px 0;
+}
+
+div.admin-panel .body {
+  padding: 0 4px 2px 8px; /* LTR */
+}
+
+div.admin {
+  padding-top: 15px;
+}
+
+div.admin .left {
+  float: left;
+  width: 47%;
+  margin-left: 1em;
+}
+div.admin .right {
+  float: right;
+  width: 47%;
+  margin-right: 1em;
+}
+
+div.admin .expert-link {
+  text-align: right; /* LTR */
+  margin-right: 1em; /* LTR */
+  padding-right: 4px; /* LTR */
+}
+
+table.package {
+  width: 100%;
+}
+table.package .description {
+  width: 100%;
+}
+table.package .version {
+  direction: ltr;
+}
+div.admin-dependencies, div.admin-required {
+  font-size: 0.9em;
+  color: #444;
+}
+span.admin-disabled {
+  color: #800;
+}
+span.admin-enabled {
+  color: #080;
+}
+span.admin-missing {
+  color: #f00;
+}
+
+/**
+ * Formatting for status report
+ */
+table.system-status-report th {
+  border-bottom: 1px solid #ccc;
+}
+table.system-status-report th, table.system-status-report tr.merge-up td {
+  padding-left: 30px; /* LTR */
+}
+table.system-status-report th {
+  background-repeat: no-repeat;
+  background-position: 5px 50%; /* LTR */
+  padding-top: 6px;
+  padding-bottom: 6px;
+}
+table.system-status-report tr.error th {
+  background-image: url(../../misc/watchdog-error.png);
+}
+table.system-status-report tr.warning th {
+  background-image: url(../../misc/watchdog-warning.png);
+}
+table.system-status-report tr.ok th {
+  background-image: url(../../misc/watchdog-ok.png);
+}
+
+/**
+ * Formatting for theme configuration
+ */
+.theme-settings-left {
+  float: left;
+  width: 49%;
+}
+.theme-settings-right {
+  float: right;
+  width: 49%;
+}
+.theme-settings-bottom {
+  clear: both;
+}
+
+/**
+ * Formatting for theme overview
+ */
+table.screenshot {
+  margin-right: 1em; /* LTR */
+}
+.theme-info h2 {
+  margin-bottom: 0;
+}
+.theme-info p {
+  margin-top: 0;
+}
+
+
+/**
+ * Date and time settings page
+ */
+.date-container {
+  overflow: auto;
+  clear: left; /* LTR */
+}
+.date-container .form-item {
+  margin-top: 0;
+}
+.date-container .select-container, .date-container .custom-container {
+  float: left; /* LTR */
+}
+.date-container .custom-container {
+  margin-left: 15px; /* LTR */
+  width: 50%;
+}
+html.js .custom-container label {
+  visibility: hidden;
+}
+
+
+/*
+ * modules/system/defaults-rtl.css
+ */
+
+th {
+  text-align: right;
+  padding-right: 0;
+  padding-left: 1em;
+}
+
+
+/*
+ * modules/system/defaults.css
+ */
+
+/*
+** HTML elements
+*/
+fieldset {
+  margin-bottom: 1em;
+  padding: .5em;
+}
+form {
+  margin: 0;
+  padding: 0;
+}
+hr {
+  height: 1px;
+  border: 1px solid gray;
+}
+img {
+  border: 0;
+}
+table {
+  border-collapse: collapse;
+}
+th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+/*
+** Markup free clearing
+** Details: http://www.positioniseverything.net/easyclearing.html
+*/
+.clear-block:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+
+.clear-block {
+  display: inline-block;
+}
+
+/* Hides from IE-mac \*/
+* html .clear-block {
+  height: 1%;
+}
+.clear-block {
+  display: block;
+}
+/* End hide from IE-mac */
+
+
+/*
+ * modules/system/maintenance.css
+ */
+
+/* Update styles */
+#update-results {
+  margin-top: 3em;
+  padding: 0.25em;
+  border: 1px solid #ccc;
+  background: #eee;
+  font-size: smaller;
+}
+#update-results h2 {
+  margin-top: 0.25em;
+}
+#update-results h4 {
+  margin-bottom: 0.25em;
+}
+#update-results li.none {
+  color: #888;
+  font-style: italic;
+}
+#update-results li.failure strong {
+  color: #b63300;
+}
+
+
+/*
+ * modules/system/system-menus-rtl.css
+ */
+
+ul.menu {
+  text-align:right;
+}
+ul.menu li {
+  margin: 0 0.5em 0 0;
+}
+li.expanded {
+  padding: 0.2em 0 0 0.5em;
+}
+li.collapsed {
+  list-style-image: url(../../misc/menu-collapsed-rtl.png);
+  padding: 0.2em 0 0 0.5em;
+}
+li.leaf {
+  padding: 0.2em 0 0 0.5em;
+}
+
+
+/*
+ * modules/system/system-menus.css
+ */
+
+ul.menu {
+  list-style: none;
+  border: none;
+  text-align:left; /* LTR */
+}
+ul.menu li {
+  margin: 0 0 0 0.5em; /* LTR */
+}
+li.expanded {
+  list-style-type: circle;
+  list-style-image: url(../../misc/menu-expanded.png);
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li.collapsed {
+  list-style-type: disc;
+  list-style-image: url(../../misc/menu-collapsed.png); /* LTR */
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li.leaf {
+  list-style-type: square;
+  list-style-image: url(../../misc/menu-leaf.png);
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li a.active {
+  color: #000;
+}
+td.menu-disabled {
+  background: #ccc;
+}
+ul.links {
+  margin: 0;
+  padding: 0;
+}
+ul.links.inline {
+  display: inline;
+}
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+.block ul {
+  margin: 0;
+  padding: 0 0 0.25em 1em; /* LTR */
+}
+
+
+/*
+ * modules/system/system-rtl.css
+ */
+
+thead th {
+  text-align: right;
+  padding-left: 1em;
+  padding-right: 0.5em;
+}
+
+.item-list .icon {
+  float: left;
+  padding-left: 0;
+  padding-right: 0.25em;
+  clear: left;
+}
+.item-list ul li {
+  margin: 0 1.5em 0.25em 0;
+}
+
+.more-link {
+  text-align: left;
+}
+.more-help-link {
+  text-align: left;
+}
+
+dl.multiselect dt, dl.multiselect dd {
+  float: right;
+  margin: 0 0 0 1em;
+}
+
+.block ul {
+  padding: 0 1em 0.25em 0;
+}
+
+ul.primary {
+  padding: 0 1em 0 0;
+}
+ul.primary li a {
+  margin-right: 5px;
+  margin-left: 0.5em;
+}
+ul.secondary li {
+  display: inline;
+  padding: 0 1em;
+  border-right: none;
+  border-left: 1px solid #ccc;
+}
+html.js input.form-autocomplete {
+  background-position: 0% 2px;
+}
+html.js input.throbbing {
+  background-position: 0% -18px;
+}
+
+html.js fieldset.collapsible legend a {
+  padding-left: 0;
+  padding-right: 15px;
+  background-position: 98% 75%;
+}
+html.js fieldset.collapsed legend a {
+  background-image: url(../../misc/menu-collapsed-rtl.png);
+  background-position: 98% 50%;
+}
+
+div.teaser-button-wrapper {
+  float: left;
+  padding-right: 0;
+  padding-left: 5%;
+}
+.teaser-checkbox div.form-item {
+  float: left;
+  margin: 0 0 0 5%;
+}
+.progress .percentage {
+  float: left;
+}
+.progess-disabled {
+  float: right;
+}
+.ahah-progress {
+  float: right;
+}
+.ahah-progress .throbber {
+  float: right;
+}
+input.password-field {
+  margin-left: 10px;
+  margin-right: 0;
+}
+input.password-confirm {
+  margin-left: 10px;
+  margin-right: 0;
+}
+
+.draggable a.tabledrag-handle {
+  float: right;
+  margin: -0.4em -0.5em -0.4em 0;
+  padding: 0.42em 0.5em 0.42em 1.5em;
+}
+div.indentation {
+  margin: -0.4em -0.4em -0.4em 0.2em;
+  padding: 0.42em 0.6em 0.42em 0;
+  float: right;
+}
+div.tree-child, div.tree-child-last {
+  background-position: -65px center;
+}
+
+
+/*
+ * modules/system/system.css
+ */
+
+/*
+** HTML elements
+*/
+body.drag {
+  cursor: move;
+}
+th.active img {
+  display: inline;
+}
+tr.even, tr.odd {
+  background-color: #eee;
+  border-bottom: 1px solid #ccc;
+  padding: 0.1em 0.6em;
+}
+tr.drag {
+  background-color: #fffff0;
+}
+tr.drag-previous {
+  background-color: #ffd;
+}
+td.active {
+  background-color: #ddd;
+}
+td.checkbox, th.checkbox {
+  text-align: center;
+}
+tbody {
+  border-top: 1px solid #ccc;
+}
+tbody th {
+  border-bottom: 1px solid #ccc;
+}
+thead th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+/*
+** Other common styles
+*/
+.breadcrumb {
+  padding-bottom: .5em
+}
+div.indentation {
+  width: 20px;
+  height: 1.7em;
+  margin: -0.4em 0.2em -0.4em -0.4em; /* LTR */
+  padding: 0.42em 0 0.42em 0.6em; /* LTR */
+  float: left; /* LTR */
+}
+div.tree-child {
+  background: url(../../misc/tree.png) no-repeat 11px center; /* LTR */
+}
+div.tree-child-last {
+  background: url(../../misc/tree-bottom.png) no-repeat 11px center; /* LTR */
+}
+div.tree-child-horizontal {
+  background: url(../../misc/tree.png) no-repeat -11px center;
+}
+.error {
+  color: #e55;
+}
+div.error {
+  border: 1px solid #d77;
+}
+div.error, tr.error {
+  background: #fcc;
+  color: #200;
+  padding: 2px;
+}
+.warning {
+  color: #e09010;
+}
+div.warning {
+  border: 1px solid #f0c020;
+}
+div.warning, tr.warning {
+  background: #ffd;
+  color: #220;
+  padding: 2px;
+}
+.ok {
+  color: #008000;
+}
+div.ok {
+  border: 1px solid #00aa00;
+}
+div.ok, tr.ok {
+  background: #dfd;
+  color: #020;
+  padding: 2px;
+}
+.item-list .icon {
+  color: #555;
+  float: right; /* LTR */
+  padding-left: 0.25em; /* LTR */
+  clear: right; /* LTR */
+}
+.item-list .title {
+  font-weight: bold;
+}
+.item-list ul {
+  margin: 0 0 0.75em 0;
+  padding: 0;
+}
+.item-list ul li {
+  margin: 0 0 0.25em 1.5em; /* LTR */
+  padding: 0;
+  list-style: disc;
+}
+ol.task-list li.active {
+  font-weight: bold;
+}
+.form-item {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+tr.odd .form-item, tr.even .form-item {
+  margin-top: 0;
+  margin-bottom: 0;
+  white-space: nowrap;
+}
+tr.merge-down, tr.merge-down td, tr.merge-down th {
+  border-bottom-width: 0 !important;
+}
+tr.merge-up, tr.merge-up td, tr.merge-up th {
+  border-top-width: 0 !important;
+}
+.form-item input.error, .form-item textarea.error, .form-item select.error {
+  border: 2px solid red;
+}
+.form-item .description {
+  font-size: 0.85em;
+}
+.form-item label {
+  display: block;
+  font-weight: bold;
+}
+.form-item label.option {
+  display: inline;
+  font-weight: normal;
+}
+.form-checkboxes, .form-radios {
+  margin: 1em 0;
+}
+.form-checkboxes .form-item, .form-radios .form-item {
+  margin-top: 0.4em;
+  margin-bottom: 0.4em;
+}
+.marker, .form-required {
+  color: #f00;
+}
+.more-link {
+  text-align: right; /* LTR */
+}
+.more-help-link {
+  font-size: 0.85em;
+  text-align: right; /* LTR */
+}
+.nowrap {
+  white-space: nowrap;
+}
+.item-list .pager {
+  clear: both;
+  text-align: center;
+}
+.item-list .pager li {
+  background-image:none;
+  display:inline;
+  list-style-type:none;
+  padding: 0.5em;
+}
+.pager-current {
+  font-weight:bold;
+}
+.tips {
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-top: 0;
+  padding-bottom: 0;
+  font-size: 0.9em;
+}
+dl.multiselect dd.b, dl.multiselect dd.b .form-item, dl.multiselect dd.b select {
+  font-family: inherit;
+  font-size: inherit;
+  width: 14em;
+}
+dl.multiselect dd.a, dl.multiselect dd.a .form-item {
+  width: 8em;
+}
+dl.multiselect dt, dl.multiselect dd {
+  float: left; /* LTR */
+  line-height: 1.75em;
+  padding: 0;
+  margin: 0 1em 0 0; /* LTR */
+}
+dl.multiselect .form-item {
+  height: 1.75em;
+  margin: 0;
+}
+
+/*
+** Inline items (need to override above)
+*/
+.container-inline div, .container-inline label {
+  display: inline;
+}
+
+/*
+** Tab navigation
+*/
+ul.primary {
+  border-collapse: collapse;
+  padding: 0 0 0 1em; /* LTR */
+  white-space: nowrap;
+  list-style: none;
+  margin: 5px;
+  height: auto;
+  line-height: normal;
+  border-bottom: 1px solid #bbb;
+}
+ul.primary li {
+  display: inline;
+}
+ul.primary li a {
+  background-color: #ddd;
+  border-color: #bbb;
+  border-width: 1px;
+  border-style: solid solid none solid;
+  height: auto;
+  margin-right: 0.5em; /* LTR */
+  padding: 0 1em;
+  text-decoration: none;
+}
+ul.primary li.active a {
+  background-color: #fff;
+  border: 1px solid #bbb;
+  border-bottom: #fff 1px solid;
+}
+ul.primary li a:hover {
+  background-color: #eee;
+  border-color: #ccc;
+  border-bottom-color: #eee;
+}
+ul.secondary {
+  border-bottom: 1px solid #bbb;
+  padding: 0.5em 1em;
+  margin: 5px;
+}
+ul.secondary li {
+  display: inline;
+  padding: 0 1em;
+  border-right: 1px solid #ccc; /* LTR */
+}
+ul.secondary a {
+  padding: 0;
+  text-decoration: none;
+}
+ul.secondary a.active {
+  border-bottom: 4px solid #999;
+}
+
+/*
+** Autocomplete styles
+*/
+/* Suggestion list */
+#autocomplete {
+  position: absolute;
+  border: 1px solid;
+  overflow: hidden;
+  z-index: 100;
+}
+#autocomplete ul {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+#autocomplete li {
+  background: #fff;
+  color: #000;
+  white-space: pre;
+  cursor: default;
+}
+#autocomplete li.selected {
+  background: #0072b9;
+  color: #fff;
+}
+/* Animated throbber */
+html.js input.form-autocomplete {
+  background-image: url(../../misc/throbber.gif);
+  background-repeat: no-repeat;
+  background-position: 100% 2px; /* LTR */
+}
+html.js input.throbbing {
+  background-position: 100% -18px; /* LTR */
+}
+
+/*
+** Collapsing fieldsets
+*/
+html.js fieldset.collapsed {
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  margin-bottom: 0;
+  height: 1em;
+}
+html.js fieldset.collapsed * {
+  display: none;
+}
+html.js fieldset.collapsed legend {
+  display: block;
+}
+html.js fieldset.collapsible legend a {
+  padding-left: 15px; /* LTR */
+  background: url(../../misc/menu-expanded.png) 5px 75% no-repeat; /* LTR */
+}
+html.js fieldset.collapsed legend a {
+  background-image: url(../../misc/menu-collapsed.png); /* LTR */
+  background-position: 5px 50%; /* LTR */
+}
+/* Note: IE-only fix due to '* html' (breaks Konqueror otherwise). */
+* html.js fieldset.collapsed legend,
+* html.js fieldset.collapsed legend *,
+* html.js fieldset.collapsed table * {
+  display: inline;
+}
+/* For Safari 2 to prevent collapsible fieldsets containing tables from dissapearing due to tableheader.js. */
+html.js fieldset.collapsible {
+  position: relative;
+}
+html.js fieldset.collapsible legend a {
+  display: block;
+}
+/* Avoid jumping around due to margins collapsing into collapsible fieldset border */
+html.js fieldset.collapsible .fieldset-wrapper {
+  overflow: auto;
+}
+
+/*
+** Resizable text areas
+*/
+.resizable-textarea {
+  width: 95%;
+}
+.resizable-textarea .grippie {
+  height: 9px;
+  overflow: hidden;
+  background: #eee url(../../misc/grippie.png) no-repeat center 2px;
+  border: 1px solid #ddd;
+  border-top-width: 0;
+  cursor: s-resize;
+}
+html.js .resizable-textarea textarea {
+  margin-bottom: 0;
+  width: 100%;
+  display: block;
+}
+
+/*
+** Table drag and drop.
+*/
+.draggable a.tabledrag-handle {
+  cursor: move;
+  float: left; /* LTR */
+  height: 1.7em;
+  margin: -0.4em 0 -0.4em -0.5em; /* LTR */
+  padding: 0.42em 1.5em 0.42em 0.5em; /* LTR */
+  text-decoration: none;
+}
+a.tabledrag-handle:hover {
+  text-decoration: none;
+}
+a.tabledrag-handle .handle {
+  margin-top: 4px;
+  height: 13px;
+  width: 13px;
+  background: url(../../misc/draggable.png) no-repeat 0 0;
+}
+a.tabledrag-handle-hover .handle {
+  background-position: 0 -20px;
+}
+
+/*
+** Teaser splitter
+*/
+.joined + .grippie {
+  height: 5px;
+  background-position: center 1px;
+  margin-bottom: -2px;
+}
+/* Keeps inner content contained in Opera 9. */
+.teaser-checkbox {
+  padding-top: 1px;
+}
+div.teaser-button-wrapper {
+  float: right; /* LTR */
+  padding-right: 5%; /* LTR */
+  margin: 0;
+}
+.teaser-checkbox div.form-item {
+  float: right; /* LTR */
+  margin: 0 5% 0 0; /* LTR */
+  padding: 0;
+}
+textarea.teaser {
+  display: none;
+}
+html.js .no-js {
+  display: none;
+}
+
+/*
+** Progressbar styles
+*/
+.progress {
+  font-weight: bold;
+}
+.progress .bar {
+  background: #fff url(../../misc/progress.gif);
+  border: 1px solid #00375a;
+  height: 1.5em;
+  margin: 0 0.2em;
+}
+.progress .filled {
+  background: #0072b9;
+  height: 1em;
+  border-bottom: 0.5em solid #004a73;
+  width: 0%;
+}
+.progress .percentage {
+  float: right; /* LTR */
+}
+.progress-disabled {
+  float: left; /* LTR */
+}
+.ahah-progress {
+  float: left; /* LTR */
+}
+.ahah-progress .throbber {
+  width: 15px;
+  height: 15px;
+  margin: 2px;
+  background: transparent url(../../misc/throbber.gif) no-repeat 0px -18px;
+  float: left; /* LTR */
+}
+tr .ahah-progress .throbber {
+  margin: 0 2px;
+}
+.ahah-progress-bar {
+  width: 16em;
+}
+
+/*
+** Formatting for welcome page
+*/
+#first-time strong {
+  display: block;
+  padding: 1.5em 0 .5em;
+}
+
+/*
+** To be used with tableselect.js
+*/
+tr.selected td {
+  background: #ffc;
+}
+
+/*
+** Floating header for tableheader.js
+*/
+table.sticky-header {
+  margin-top: 0;
+  background: #fff;
+}
+
+/*
+** Installation clean URLs
+*/
+#clean-url.install {
+  display: none;
+}
+
+/*
+** For anything you want to hide on page load when JS is enabled, so
+** that you can use the JS to control visibility and avoid flicker.
+*/
+html.js .js-hide {
+  display: none;
+}
+
+/*
+** Styles for the system modules page (admin/build/modules)
+*/
+#system-modules div.incompatible {
+  font-weight: bold;
+}
+
+/*
+** Styles for the system themes page (admin/build/themes)
+*/
+#system-themes-form div.incompatible {
+  font-weight: bold;
+}
+
+/*
+** Password strength indicator
+*/
+span.password-strength {
+  visibility: hidden;
+}
+input.password-field {
+  margin-right: 10px; /* LTR */
+}
+div.password-description {
+  padding: 0 2px;
+  margin: 4px 0 0 0;
+  font-size: 0.85em;
+  max-width: 500px;
+}
+div.password-description ul {
+  margin-bottom: 0;
+}
+.password-parent {
+  margin: 0 0 0 0;
+}
+/*
+** Password confirmation checker
+*/
+input.password-confirm {
+  margin-right: 10px; /* LTR */
+}
+.confirm-parent {
+  margin: 5px 0 0 0;
+}
+span.password-confirm {
+  visibility: hidden;
+}
+span.password-confirm span {
+  font-weight: normal;
+}
+
+
+/*
+ * modules/taxonomy/taxonomy.css
+ */
+
+tr.taxonomy-term-preview {
+  background-color: #EEE;
+}
+tr.taxonomy-term-divider-top {
+  border-bottom: none;
+}
+tr.taxonomy-term-divider-bottom {
+  border-top: 1px dotted #CCC;
+}
+.taxonomy-term-description {
+  margin: 5px 0 20px;
+}
+
+
+/*
+ * modules/tracker/tracker.css
+ */
+
+#tracker td.replies {
+  text-align: center;
+}
+#tracker table {
+  width: 100%;
+}
+
+
+/*
+ * modules/update/update-rtl.css
+ */
+
+.update .project {
+  padding-right: .25em;
+}
+
+.update .version-status {
+  float: left;
+  padding-left: 10px;
+}
+
+.update .version-status .icon {
+  padding-right: .5em;
+}
+
+.update table.version .version-title {
+  padding-left: 1em;
+}
+
+.update table.version .version-details {
+  padding-left: .5em;
+  direction: ltr;
+}
+
+.update table.version .version-links {
+  text-align: left;
+  padding-left: 1em;
+}
+
+.update .check-manually {
+  padding-right: 1em;
+}
+
+
+/*
+ * modules/update/update.css
+ */
+
+.update .project {
+  font-weight: bold;
+  font-size: 110%;
+  padding-left: .25em; /* LTR */
+  height: 22px;
+}
+
+.update .version-status {
+  float: right; /* LTR */
+  padding-right: 10px; /* LTR */
+  font-size: 110%;
+  height: 20px;
+}
+
+.update .version-status .icon {
+  padding-left: .5em; /* LTR */
+}
+
+.update .version-date {
+  white-space: nowrap;
+}
+
+.update .info {
+  margin: 0;
+  padding: 1em 1em .25em 1em;
+}
+
+.update tr td {
+  border-top: 1px solid #ccc;
+  border-bottom: 1px solid #ccc;
+}
+
+.update tr.error {
+  background: #fcc;
+}
+
+.update tr.error .version-recommended {
+  background: #fdd;
+}
+
+.update tr.ok {
+  background: #dfd;
+}
+
+.update tr.warning {
+  background: #ffd;
+}
+
+.update tr.warning .version-recommended {
+  background: #ffe;
+}
+
+.current-version, .new-version {
+  direction: ltr; /* Note: version numbers should always be LTR. */
+}
+
+.update tr.unknown {
+  background: #ddd;
+}
+
+table.update,
+.update table.version {
+  width: 100%;
+  margin-top: .5em;
+}
+
+.update table.version tbody {
+  border: none;
+}
+
+.update table.version tr,
+.update table.version td {
+  line-height: .9em;
+  padding: 0;
+  margin: 0;
+  border: none;
+}
+
+.update table.version .version-title {
+  padding-left: 1em; /* LTR */
+  width: 14em;
+}
+
+.update table.version .version-details {
+  padding-right: .5em; /* LTR */
+}
+
+.update table.version .version-links {
+  text-align: right; /* LTR */
+  padding-right: 1em; /* LTR */
+}
+
+.update table.version-security .version-title {
+  color: #970F00;
+}
+
+.update table.version-recommended-strong .version-title {
+  font-weight: bold;
+}
+
+.update .security-error {
+  font-weight: bold;
+  color: #970F00;
+}
+
+.update .check-manually {
+  padding-left: 1em; /* LTR */
+}
+
+
+/*
+ * modules/user/user-rtl.css
+ */
+
+#permissions td.permission {
+  padding-left: 0;
+  padding-right: 1.5em;
+}
+#access-rules .access-type, #access-rules .rule-type {
+  margin-right: 0;
+  margin-left: 1em;
+  float: right;
+}
+#user-admin-buttons {
+  float: right;
+  margin-left: 0;
+  margin-right: 0.5em;
+  clear: left;
+}
+
+.profile .picture {
+  float: left;
+  margin: 0 0 1em 1em;
+}
+
+
+/*
+ * modules/user/user.css
+ */
+
+#permissions td.module {
+  font-weight: bold;
+}
+#permissions td.permission {
+  padding-left: 1.5em; /* LTR */
+}
+#access-rules .access-type, #access-rules .rule-type {
+  margin-right: 1em; /* LTR */
+  float: left; /* LTR */
+}
+#access-rules .access-type .form-item, #access-rules .rule-type .form-item {
+  margin-top: 0;
+}
+#access-rules .mask {
+  clear: both;
+}
+#user-login-form {
+  text-align: center;
+}
+#user-admin-filter ul {
+  list-style-type: none;
+  padding: 0;
+  margin: 0;
+  width: 100%;
+}
+#user-admin-buttons {
+  float: left; /* LTR */
+  margin-left: 0.5em; /* LTR */
+  clear: right; /* LTR */
+}
+#user-admin-settings fieldset .description {
+  font-size: 0.85em;
+  padding-bottom: .5em;
+}
+
+/* Generated by user.module but used by profile.module: */
+.profile {
+  clear: both;
+  margin: 1em 0;
+}
+.profile .picture {
+  float: right; /* LTR */
+  margin: 0 1em 1em 0; /* LTR */
+}
+.profile h3 {
+  border-bottom: 1px solid #ccc;
+}
+.profile dl {
+  margin: 0 0 1.5em 0;
+}
+.profile dt {
+  margin: 0 0 0.2em 0;
+  font-weight: bold;
+}
+.profile dd {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/fields.css b/drupal/sites/all/themes/zen/STARTERKIT/css/fields.css
new file mode 100644
index 0000000..a3d1c18
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/fields.css
@@ -0,0 +1,44 @@
+/**
+ * @file
+ * Field Styling
+ */
+
+
+/*
+ * Field types
+ */
+
+.field /* Wrapper for any CCK field. */ {
+}
+
+.field-type-datetime /* Always use "datetime" when creating new CCK date fields. "date" and "datestamp" are legacy types. */ {
+}
+
+.field-type-filefield /* Field from filefield module */ {
+}
+
+.field-type-nodereference {
+}
+
+.field-type-number-decimal {
+}
+
+.field-type-number-float {
+}
+
+.field-type-number-integer {
+}
+
+.field-type-text {
+}
+
+.field-type-userreference {
+}
+
+
+/*
+ * Named fields
+ */
+
+.field-field-FIELDNAME /* Underscores in field name are replaced with dashes. */ {
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/forms-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/forms-rtl.css
new file mode 100644
index 0000000..4e4318e
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/forms-rtl.css
@@ -0,0 +1,46 @@
+/**
+ * @file
+ * RTL companion for the forms.css file.
+ */
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: right;
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-left: 0;
+  margin-right: -20px; /* Un-do some of the padding on the ul list. */
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: 0;
+  margin-right: -2em; /* Un-do all of the padding on the ul list. */
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form th,
+form thead th {
+  text-align: right;
+  padding-left: 1em;
+  padding-right: 0;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/forms.css b/drupal/sites/all/themes/zen/STARTERKIT/css/forms.css
new file mode 100644
index 0000000..696702f
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/forms.css
@@ -0,0 +1,134 @@
+/**
+ * @file
+ * Form Styling
+ */
+
+
+.form-item,
+.form-checkboxes,
+.form-radios /* Wrapper for a form element (or group of form elements) and its label */ {
+  margin: 1em 0;
+}
+
+.form-item input.error,
+.form-item textarea.error,
+.form-item select.error /* Highlight the form elements that caused a form submission error */ {
+  border: 2px solid #c00;
+}
+
+.form-item label /* The label for a form element */ {
+  display: block;
+  font-weight: bold;
+}
+
+.form-item label.option /* The label for a radio button or checkbox */ {
+  display: inline;
+  font-weight: normal;
+}
+
+.form-required /* The part of the label that indicates a required field */ {
+  color: #c00;
+}
+
+.form-item .description /* The descriptive help text (separate from the label) */ {
+  font-size: 0.85em;
+}
+
+.form-checkboxes .form-item,
+.form-radios .form-item /* Pack groups of checkboxes and radio buttons closer together */ {
+  margin: 0.4em 0;
+}
+
+.form-submit /* The submit button */ {
+}
+
+.container-inline div,
+.container-inline label /* Inline labels and form divs */ {
+  display: inline;
+}
+
+.tips /* Tips for Drupal's input formats */ {
+}
+
+
+/*
+ * Search (search-theme-form.tpl.php)
+ */
+#search-box /* Wrapper for the search form */ {
+}
+
+#edit-search-theme-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Search (search-block-form.tpl.php)
+ */
+#search-block-form /* Wrapper for the search form */ {
+}
+
+#edit-search-block-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: left; /* LTR */
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form ul /* OpenID creates a new ul above the login form's links. */ {
+  margin-bottom: 0; /* Position OpenID's ul next to the rest of the links. */
+}
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-top: 1em;
+  margin-left: -20px; /* LTR */ /* Un-do some of the padding on the ul list. */
+}
+
+#user-login-form li.user-link /* The "Cancel OpenID login" link. */ {
+  margin-top: 1em;
+}
+
+#user-login ul {
+  margin: 1em 0;
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: -2em; /* LTR */ /* Un-do all of the padding on the ul list. */
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form tbody {
+  border-top: 1px solid #ccc;
+}
+
+form th,
+form thead th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+form tbody th {
+  border-bottom: 1px solid #ccc;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/html-reset-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/html-reset-rtl.css
new file mode 100644
index 0000000..0260d5e
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/html-reset-rtl.css
@@ -0,0 +1,37 @@
+/**
+ * @file
+ * RTL companion for the html-reset.css file.
+ */
+
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  padding-left: 0;
+  padding-right: 2em;
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  padding: 0 2em 0 0;
+}
+
+dd {
+  margin: 0 2em 0 0;
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+th,
+thead th,
+tbody th {
+  text-align: right;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/html-reset.css b/drupal/sites/all/themes/zen/STARTERKIT/css/html-reset.css
new file mode 100644
index 0000000..d57fa3a
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/html-reset.css
@@ -0,0 +1,291 @@
+/**
+ * @file
+ * HTML Element Styling
+ *
+ * Ok, I admit it. I fooled you. This isn't a "reset" stylesheet. Instead this
+ * is the place where you should set (not reset) the default styling for all
+ * HTML elements.
+ *
+ * @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/
+ * @see http://snook.ca/archives/html_and_css/no_css_reset/
+ */
+
+
+/*
+ * Fonts
+ *
+ * Our font size and line height declarations are based on the following ALA
+ * article:
+ *   http://www.alistapart.com/articles/howtosizetextincss
+ *
+ * All modern browsrs use a 16px default font size. Specifying the font-size
+ * and line-height in ems (relative to the 16px default font) allows the user
+ * to resize the font in the browser and produces the most consistent results
+ * across different browsers.
+ */
+body {
+  font-size: 100%; /* Fixes exaggerated text resizing in IE6 and IE7 */
+}
+
+#skip-link,
+#page {
+  /*
+   * To use a 12px font size on the page, delete the 14px declarations.
+   * to use a 14px font size on the page, delete the 12px declarations.
+   */
+
+  /* Use a 12px base font size with a 16px line height */
+  font-size: 0.75em; /* 16px x .75 = 12px */
+  line-height: 1.333em; /* 12px x 1.333 = 16px */
+
+  /* Use a 14px base font size with a 18px line height */
+  font-size: 0.875em; /* 16px x .875 = 14px */
+  line-height: 1.286em; /* 14px x 1.286 = 18px */
+}
+
+body,
+caption,
+th,
+td,
+input,
+textarea,
+select,
+option,
+legend,
+fieldset {
+  /* The following font family declarations are based on the Microsoft core web
+   * fonts which are common fonts available on most computer systems. The DejaVu
+   * fonts are commonly available on Linux systems where the MS fonts are less
+   * common. Tahoma and Helvetica are also widely available.
+   *
+   * A user's web browser will look at the comma-separated list and will
+   * attempt to use each font in turn until it finds one that is available
+   * on the user's computer. The final "generic" font (sans-serif or serif)
+   * hints at what type of font to use if the web browser doesn't find any
+   * of the fonts in the list.
+
+  font-family: "Times New Roman", Times, Georgia, "DejaVu Serif", serif;
+  font-family: Times, "Times New Roman", Georgia, "DejaVu Serif", serif;
+  font-family: Georgia, "Times New Roman", "DejaVu Serif", serif;
+
+  font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
+  font-family: Tahoma, Verdana, "DejaVu Sans", sans-serif;
+  font-family: Helvetica, Arial, "Nimbus Sans L", sans-serif;
+  font-family: Arial, Helvetica, "Nimbus Sans L", sans-serif;
+
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+
+   */
+
+  font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
+}
+
+pre,
+code {
+  font-size: 1.1em; /* Monospace fonts can be hard to read */
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+}
+
+/*
+ * Headings
+ */
+h1 {
+  font-size: 2em;
+  line-height: 1.3em;
+  margin-top: 0;
+  margin-bottom: 0.5em; /* 0.5em is equavalent to 1em in the page's base font.
+                           Remember, a margin specified in ems is relative to
+                           the element's font-size, not to the pages' base
+                           font size. So, for example, if we want a 1em margin
+                           (relative to the base font), we have to divide that
+                           length by the element's font-size:
+                           1em / 2em = 0.5em */
+}
+
+h2 {
+  font-size: 1.5em;
+  line-height: 1.3em;
+  margin-top: 0.667em; /* Equivalent to 1em in the page's base font: 1 / 1.5 = 0.667em */
+  margin-bottom: 0.667em;
+}
+
+h3 {
+  font-size: 1.3em;
+  line-height: 1.3em;
+  margin-top: 0.769em; /* Equivalent to 1em in the page's base font: 1 / 1.3 = 0.769 */
+  margin-bottom: 0.769em;
+}
+
+h4,
+h5,
+h6 {
+  font-size: 1.1em;
+  line-height: 1.3em;
+  margin-top: 0.909em; /* Equivalent to 1em in the page's base font: 1 / 1.1 = 0.909 */
+  margin-bottom: 0.909em;
+}
+
+/*
+ * Block-level elements
+ */
+p,
+ul,
+ol,
+dl,
+pre,
+table,
+fieldset {
+  margin: 1em 0;
+}
+
+blockquote {
+  margin: 1em 2em;
+}
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  margin-left: 0;
+  padding-left: 2em; /* LTR */
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  margin: 1em 0;
+  padding: 0 0 0 2em; /* LTR */
+}
+
+ul ul, ul ol,
+ol ol, ol ul,
+.block ul ul, .block ul ol,
+.block ol ol, .block ol ul,
+.item-list ul ul, .item-list ul ol,
+.item-list ol ol, .item-list ol ul {
+  margin: 0;
+}
+
+li {
+  margin: 0;
+  padding: 0;
+}
+
+.item-list ul li /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+  list-style: inherit;
+}
+
+ul.menu li,
+li.expanded,
+li.collapsed,
+li.leaf /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+}
+
+ul          { list-style-type: disc; }
+ul ul       { list-style-type: circle; }
+ul ul ul    { list-style-type: square; }
+ul ul ul ul { list-style-type: circle; }
+ol          { list-style-type: decimal; }
+ol ol       { list-style-type: lower-alpha; }
+ol ol ol    { list-style-type: decimal; }
+
+dt {
+  margin: 0;
+  padding: 0;
+}
+
+dd {
+  margin: 0 0 0 2em;
+  padding: 0;
+}
+
+/*
+ * Links
+ *
+ * The order of link states are based on Eric Meyer's article:
+ * http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states
+ */
+a:link {
+}
+
+a:visited {
+}
+
+a:hover,
+a:focus {
+}
+
+a:active {
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+table {
+  border-collapse: collapse;
+  /* width: 100%; */ /* Prevent cramped-looking tables */
+}
+
+th,
+thead th,
+tbody th {
+  text-align: left; /* LTR */
+  padding: 0;
+  border-bottom: none;
+}
+
+tbody {
+  border-top: none;
+}
+
+/*
+ * Abbreviations
+ */
+abbr {
+  border-bottom: 1px dotted #666;
+  cursor: help;
+  white-space: nowrap;
+}
+
+abbr.created /* Date-based "abbreviations" show computer-friendly timestamps which are not human-friendly. */ {
+  border: none;
+  cursor: auto;
+  white-space: normal;
+}
+
+/*
+ * Images
+ */
+img {
+  border: 0;
+}
+
+/*
+ * Horizontal rules
+ */
+hr {
+  height: 1px;
+  border: 1px solid #666;
+}
+
+/*
+ * Forms
+ */
+form {
+  margin: 0;
+  padding: 0;
+}
+
+fieldset {
+  margin: 1em 0;
+  padding: 0.5em;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/ie.css b/drupal/sites/all/themes/zen/STARTERKIT/css/ie.css
new file mode 100644
index 0000000..9eb0bb7
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/ie.css
@@ -0,0 +1,47 @@
+/**
+ * @file
+ * CSS targeted specifically for Internet Explorer for Windows.
+ *
+ * Any CSS in this file will apply to all versions of IE. You can target
+ * specific versions of IE by using conditional comments. See your sub-theme's
+ * .info file for an easy way to use them.
+ *
+ * While building your theme, you should be aware that IE limits Drupal to 31
+ * stylesheets total. The work-around for the bug is to enable CSS aggregation
+ * under: admin / settings / performance.
+ */
+
+
+/*
+ * Tabs
+ */
+ul.primary li a,
+ul.primary li a .tab,
+ul.secondary li a,
+ul.secondary li a .tab {
+  cursor: pointer;
+}
+
+/*
+ * Drupal nodes
+ */
+.node-unpublished .node-inner>* {
+  position: relative; /* Otherwise these elements will appear below the "Unpublished" text. */
+}
+
+/*
+ * Drupal admin tables
+ */
+tr.even th,
+tr.even td,
+tr.odd th,
+tr.odd td {
+  border-bottom: 1px solid #ccc; /* IE doesn't display borders on table rows */
+}
+
+/*
+ * Markup free clearing
+ */
+.clearfix {
+  zoom: 1;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/ie6-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/ie6-rtl.css
new file mode 100644
index 0000000..4d6f40c
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/ie6-rtl.css
@@ -0,0 +1,12 @@
+/**
+ * @file
+ * RTL companion for the ie6.css file.
+ */
+
+
+/*
+ * Layout CSS
+ */
+#page {
+  text-align: right; /* 2nd part of IE5/IE6quirks centering hack */
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/ie6.css b/drupal/sites/all/themes/zen/STARTERKIT/css/ie6.css
new file mode 100644
index 0000000..4441e47
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/ie6.css
@@ -0,0 +1,105 @@
+/**
+ * @file
+ * CSS targeted specifically for Internet Explorer 5 and 6 for Windows.
+ *
+ * Any CSS in this file will override the rules specified in the ie.css file.
+ */
+
+
+/*
+ * Layout CSS
+ */
+
+body {
+  text-align: center; /* 1st part of IE5/IE6quirks centering hack */
+}
+
+#page {
+  text-align: left; /* LTR */ /* 2nd part of IE5/IE6quirks centering hack */
+}
+
+#main-wrapper {
+  zoom: 1; /* Otherwise with a liquid layout, sidebars disappear when resizing the windows in IE6 */
+}
+
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second /* Floating divs */ {
+  display: inline; /* display inline or double your floated margin! [1] */
+  overflow: hidden; /* in ie6, overflow auto is broken [2] and so is overflow visible [3] */
+  overflow-y: visible;
+}
+
+/*
+ * Tabs - IE 5 and 6 don't support PNGs with alpha transparency.
+ */
+
+ul.primary li a,
+ul.primary li a .tab,
+ul.secondary li a,
+ul.secondary li a .tab {
+  display: inline-block; /* Otherwise the blocks mistakenly get 100% width in IE6 */
+}
+
+ul.primary li a {
+  background: url(../images/tab-left-ie6.png) no-repeat left -38px;
+}
+
+ul.primary li a .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right -38px;
+}
+
+ul.primary li a:hover,
+ul.primary li a:focus {
+  background: url(../images/tab-left-ie6.png) no-repeat left -76px;
+}
+
+ul.primary li a:hover .tab,
+ul.primary li a:focus .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right -76px;
+}
+
+ul.primary li.active a,
+ul.primary li.active a:hover,
+ul.primary li.active a:focus {
+  background: url(../images/tab-left-ie6.png) no-repeat left 0;
+}
+
+ul.primary li.active a .tab,
+ul.primary li.active a:hover .tab,
+ul.primary li.active a:focus .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right 0;
+}
+
+/*
+ * Messages - IE 5 and 6 don't support PNGs with alpha transparency.
+ */
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  background-image: url(../images/messages-status-ie6.png);
+}
+
+div.warning /* Medium priority messages */ {
+  background-image: url(../images/messages-warning-ie6.png);
+}
+
+div.error /* High priority messages. See also the .error declaration below. */ {
+  background-image: url(../images/messages-error-ie6.png);
+}
+
+
+/*
+ * REFERENCES
+ *
+
+1. http://www.positioniseverything.net/explorer/doubled-margin.html
+2. http://browservulsel.blogspot.com/2005/04/ie-overflow-auto-scrollbar-overlap.html
+3. http://www.howtocreate.co.uk/wrongWithIE/?chapter=overflow%3Avisible%3B
+4. http://www.ryanbrill.com/archives/multiple-classes-in-ie
+
+ *
+ */
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/layout-fixed-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-fixed-rtl.css
new file mode 100644
index 0000000..7e12e0b
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-fixed-rtl.css
@@ -0,0 +1,74 @@
+/**
+ * @file
+ * RTL companion for the layout-fixed.css file.
+ */
+
+
+/*
+ * Content
+ */
+#content,
+.no-sidebars #content {
+  float: right;
+  margin-left: -960px; /* Negative value of #content's width + right margin. */
+  margin-right: 0;
+}
+
+.sidebar-first #content {
+  margin-left: -960px; /* Negative value of #content's width + right margin. */
+  margin-right: 200px; /* The width of .region-sidebar-first. */
+}
+
+.sidebar-second #content {
+  margin-left: -760px; /* Negative value of #content's width + right margin. */
+  margin-right: 0;
+}
+
+.two-sidebars #content {
+  margin-left: -760px; /* Negative value of #content's width + right margin. */
+  margin-right: 200px; /* The width of .region-sidebar-first */
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: right;
+  margin-left: -100%; /* Negative value of #navigation's width + right margin. */
+  margin-right: 0;
+}
+
+#navigation ul /* Primary and secondary links */ {
+  text-align: right;
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: right;
+  padding: 0 0 0 10px;
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: right;
+  margin-left: -200px; /* Negative value of .region-sidebar-first's width + right margin. */
+  margin-right: 0;
+}
+
+.region-sidebar-first .section {
+  margin: 0 0 0 20px;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: right;
+  margin-left: -960px; /* Negative value of .region-sidebar-second's width + right margin. */
+  margin-right: 760px; /* Width of content + sidebar-first. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 20px 0 0;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/layout-fixed.css b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-fixed.css
new file mode 100644
index 0000000..4cf5b36
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-fixed.css
@@ -0,0 +1,212 @@
+/**
+ * @file
+ * Layout Styling (DIV Positioning)
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout is based on the Zen Columns layout method.
+ *   http://drupal.org/node/201428
+ *
+ * Only CSS that affects the layout (positioning) of major elements should be
+ * listed here.  Such as:
+ *   display, position, float, clear, width, height, min-width, min-height
+ *   margin, border, padding, overflow
+ */
+
+
+/*
+ * Body
+ */
+body {
+}
+
+#page-wrapper,
+.region-page-closure {
+  /*
+   * If you want to make the page a fixed width and centered in the viewport,
+   * this is the standards-compliant way to do that. See also the ie6.css file
+   * for the necessary IE5/IE6quirks hack to center a div.
+   */
+  margin-left: auto;
+  margin-right: auto;
+  width: 960px;
+}
+
+#page {
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#search-box {
+}
+
+.region-header {
+  clear: both; /* Clear the logo */
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+  position: relative;
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content,
+.no-sidebars #content {
+  float: left; /* LTR */
+  width: 960px;
+  margin-left: 0; /* LTR */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
+}
+
+.sidebar-first #content {
+  width: 760px;
+  margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first. */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+.sidebar-second #content {
+  width: 760px;
+  margin-left: 0; /* LTR */
+  margin-right: -760px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+.two-sidebars #content {
+  width: 560px;
+  margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first */
+  margin-right: -760px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+#content .section {
+  margin: 0;
+  padding: 0;
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
+  height: 2.3em; /* The navigation can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+}
+
+.with-navigation #content,
+.with-navigation .region-sidebar-first,
+.with-navigation .region-sidebar-second {
+  margin-top: 2.3em; /* Set this to the same value as the navigation height above. */
+}
+
+#navigation .section {
+}
+
+#navigation ul /* Primary and secondary links */ {
+  margin: 0;
+  padding: 0;
+  text-align: left; /* LTR */
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: left; /* LTR */
+  padding: 0 10px 0 0; /* LTR */
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 0; /* LTR */
+  margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 20px 0 0; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 760px; /* LTR */ /* Width of content + sidebar-first. */
+  margin-right: -960px; /* LTR */ /* Negative value of .region-sidebar-second's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 0 0 20px; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
+}
+
+/*
+ * Prevent overflowing content
+ */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.region-page-closure {
+  overflow: visible;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+#navigation {
+  overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
+}
+
+/*
+ * If a div.clearfix doesn't have any content after it and its bottom edge
+ * touches the bottom of the viewport, Firefox and Safari will mistakenly
+ * place several pixels worth of space between the bottom of the div and the
+ * bottom of the viewport. Uncomment this CSS property to fix this.
+ * Note: with some over-large content, this property might cause scrollbars
+ * to appear on the #page-wrapper div.
+ */
+/*
+#page-wrapper {
+  overflow-y: hidden;
+}
+*/
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/layout-liquid-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-liquid-rtl.css
new file mode 100644
index 0000000..c3aed02
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-liquid-rtl.css
@@ -0,0 +1,68 @@
+/**
+ * @file
+ * RTL companion for the layout-liquid.css file.
+ */
+
+
+/*
+ * Content
+ */
+#content {
+  float: right;
+  margin-left: -100%; /* Negative value of #content's width + right margin. */
+  margin-right: 0;
+}
+
+.sidebar-first #content .section {
+  padding-left: 0;
+  padding-right: 200px; /* The width + right margin of .region-sidebar-first. */
+}
+
+.sidebar-second #content .section {
+  padding-left: 200px; /* The width + left margin of .region-sidebar-second. */
+  padding-right: 0;
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: right;
+  margin-left: -100%; /* Negative value of #navigation's width + right margin. */
+  margin-right: 0;
+}
+
+#navigation ul /* Primary and secondary links */ {
+  text-align: right;
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: right;
+  padding: 0 0 0 10px;
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: right;
+  margin-left: -200px; /* Negative value of .region-sidebar-first's width + right margin. */
+  margin-right: 0;
+}
+
+.region-sidebar-first .section {
+  margin: 0 0 0 20px;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: left;
+  margin-left: 0;
+  margin-right: -200px; /* Negative value of .region-sidebar-second's width + left margin. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 20px 0 0;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/layout-liquid.css b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-liquid.css
new file mode 100644
index 0000000..e5aefad
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/layout-liquid.css
@@ -0,0 +1,202 @@
+/**
+ * @file
+ * Layout Styling (DIV Positioning)
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout is based on the Zen Columns layout method.
+ *   http://drupal.org/node/201428
+ *
+ * Only CSS that affects the layout (positioning) of major elements should be
+ * listed here.  Such as:
+ *   display, position, float, clear, width, height, min-width, min-height
+ *   margin, border, padding, overflow
+ */
+
+
+/*
+ * Body
+ */
+body {
+}
+
+#page-wrapper,
+.region-page-closure {
+  min-width: 960px; /* Don't allow the browser to make the site unreadable. */
+}
+
+#page {
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#search-box {
+}
+
+.region-header {
+  clear: both; /* Clear the logo */
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+  position: relative;
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
+}
+
+#content .section,
+.no-sidebars #content .section {
+  margin: 0;
+  padding: 0;
+}
+
+.sidebar-first #content .section {
+  padding-left: 200px; /* LTR */ /* The width + left margin of .region-sidebar-first. */
+  padding-right: 0; /* LTR */
+}
+
+.sidebar-second #content .section {
+  padding-left: 0; /* LTR */
+  padding-right: 200px; /* LTR */ /* The width + right margin of .region-sidebar-second. */
+}
+
+.two-sidebars #content .section {
+  padding-left: 200px; /* The width + left margin of .region-sidebar-first. */
+  padding-right: 200px; /* The width + right margin of .region-sidebar-second. */
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
+  height: 2.3em; /* The navigation can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+}
+
+.with-navigation #content,
+.with-navigation .region-sidebar-first,
+.with-navigation .region-sidebar-second {
+  margin-top: 2.3em; /* Set this to the same value as the navigation height above. */
+}
+
+#navigation .section {
+}
+
+#navigation ul /* Primary and secondary links */ {
+  margin: 0;
+  padding: 0;
+  text-align: left; /* LTR */
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: left; /* LTR */
+  padding: 0 10px 0 0; /* LTR */
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 0; /* LTR */
+  margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 20px 0 0; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: right; /* LTR */
+  width: 200px;
+  margin-left: -200px; /* LTR */ /* Negative value of .region-sidebar-second's width + right margin. */
+  margin-right: 0; /* LTR */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 0 0 20px; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
+}
+
+/*
+ * Prevent overflowing content
+ */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.region-page-closure {
+  overflow: visible;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+#navigation {
+  overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
+}
+
+/*
+ * If a div.clearfix doesn't have any content after it and its bottom edge
+ * touches the bottom of the viewport, Firefox and Safari will mistakenly
+ * place several pixels worth of space between the bottom of the div and the
+ * bottom of the viewport. Uncomment this CSS property to fix this.
+ * Note: with some over-large content, this property might cause scrollbars
+ * to appear on the #page-wrapper div.
+ */
+/*
+#page-wrapper {
+  overflow-y: hidden;
+}
+*/
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/messages-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/messages-rtl.css
new file mode 100644
index 0000000..681f838
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/messages-rtl.css
@@ -0,0 +1,13 @@
+/**
+ * @file
+ * RTL companion for the messages.css file.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  padding: 5px 35px 5px 5px;
+  background-position: 99.5% 5px;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/messages.css b/drupal/sites/all/themes/zen/STARTERKIT/css/messages.css
new file mode 100644
index 0000000..ed47ee0
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/messages.css
@@ -0,0 +1,53 @@
+/**
+ * @file
+ * Message Styling
+ *
+ * Sensible styling for Drupal's error/warning/status messages.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  min-height: 21px;
+  margin: 0 1em 5px 1em;
+  border: 2px solid #ff7;
+  padding: 5px 5px 5px 35px; /* LTR */
+  color: #000;
+  background-color: #ffc;
+  background-image: url(../images/messages-status.png);
+  background-repeat: no-repeat;
+  background-position: 5px 5px; /* LTR */
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning /* Medium priority messages */ {
+  border-color: #fc0;
+  background-image: url(../images/messages-warning.png);
+}
+
+div.warning,
+tr.warning {
+  color: #000; /* Drupal core uses #220 */
+  background-color: #ffc;
+}
+
+div.error /* High priority messages. See also the .error declaration in pages.css. */ {
+  /* border: 1px solid #d77; */ /* Drupal core uses: 1px solid #d77 */
+  border-color: #c00;
+  background-image: url(../images/messages-error.png);
+}
+
+div.error,
+tr.error {
+  color: #900; /* Drupal core uses #200 */
+  background-color: #fee;
+}
+
+div.messages ul {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/navigation.css b/drupal/sites/all/themes/zen/STARTERKIT/css/navigation.css
new file mode 100644
index 0000000..49d8f72
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/navigation.css
@@ -0,0 +1,44 @@
+/**
+ * @file
+ * Navigation Styling
+ *
+ * Default menu styling (ul.menu) is defined in system-menus.css.
+ */
+
+
+/*
+ * The active item in a Drupal menu
+ */
+li a.active {
+  color: #000;
+}
+
+/*
+ * Navigation bar
+ */
+#navigation {
+}
+
+.region-navigation {
+}
+
+/*
+ * Primary and Secondary menu links
+ */
+#main-menu {
+}
+
+#secondary-menu {
+}
+
+/*
+ * Menu blocks
+ */
+.block-menu {
+}
+
+/*
+ * "Menu block" blocks. See http://drupal.org/project/menu_block
+ */
+.block-menu_block {
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/nodes.css b/drupal/sites/all/themes/zen/STARTERKIT/css/nodes.css
new file mode 100644
index 0000000..c1e4929
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/nodes.css
@@ -0,0 +1,81 @@
+/**
+ * @file
+ * Node Styling
+ *
+ * Style anything that isn't in the $content variable.
+ */
+
+
+.node /* Node wrapper */ {
+}
+
+.node-sticky /* A sticky node (displayed before others in a list) */ {
+}
+
+.node-unpublished /* Unpublished nodes */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.node-unpublished div.unpublished,
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. */ {
+  height: 0;
+  overflow: visible;
+  color: #d8d8d8;
+  font-size: 75px;
+  line-height: 1;
+  font-family: Impact, "Arial Narrow", Helvetica, sans-serif;
+  font-weight: bold;
+  text-transform: uppercase;
+  text-align: center;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+.node-by-viewer /* A node created by the current user */ {
+}
+
+.node-teaser /* A node displayed as teaser */ {
+}
+
+/* All nodes are given a node-type-FOO class that describes the type of
+ * content that it is. If you create a new content type called
+ * "my-custom-type", it will receive a "node-type-my-custom-type" class.
+ */
+.node-type-page /* Page content node */ {
+}
+
+.node-type-story /* Story content node */ {
+}
+
+.node h2.title /* Node title */ {
+}
+
+.marker /* "New" or "Updated" marker for content that is new or updated for the current user */ {
+  color: #c00;
+}
+
+.node .picture /* The picture of the node author */ {
+}
+
+.node.node-unpublished .picture,
+.comment.comment-unpublished .picture {
+  position: relative; /* Otherwise floated pictures will appear below the "Unpublished" text. */
+}
+
+.node .meta /* Wrapper for submitted and terms data */ {
+}
+
+.node .submitted /* The "posted by" information */ {
+}
+
+.node .terms /* Node terms (taxonomy) */ {
+}
+
+.node .content /* Node's content wrapper */ {
+}
+
+.node ul.links /* Node links. See also the ul.links declaration in the pages.css. */ {
+}
+
+.preview .node /* Preview of the content before submitting new or updated content */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/page-backgrounds.css b/drupal/sites/all/themes/zen/STARTERKIT/css/page-backgrounds.css
new file mode 100644
index 0000000..5a8559d
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/page-backgrounds.css
@@ -0,0 +1,38 @@
+/**
+ * @file
+ * Page Background Styling
+ *
+ * The default layout method of Zen doesn't give themers equal-height columns.
+ * However, equal-height columns are difficult to achieve and totally
+ * unnecessary. Instead, use the Faux Columns method described in the following
+ * ALA article:
+ *   http://www.alistapart.com/articles/fauxcolumns/
+ */
+
+
+body {
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+#header {
+}
+
+#header .section {
+}
+
+#main-wrapper {
+}
+
+#main {
+}
+
+#footer {
+}
+
+#footer .section {
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/pages-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/pages-rtl.css
new file mode 100644
index 0000000..08f35af
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/pages-rtl.css
@@ -0,0 +1,19 @@
+/**
+ * @file
+ * RTL companion for the pages.css file.
+ */
+
+
+/*
+ * Header
+ */
+#logo /* Wrapping link for logo */ {
+  float: right;
+}
+
+/*
+ * Content
+ */
+.more-link /* Aggregator, blog, and forum more link */ {
+  text-align: left;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/pages.css b/drupal/sites/all/themes/zen/STARTERKIT/css/pages.css
new file mode 100644
index 0000000..3a59538
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/pages.css
@@ -0,0 +1,314 @@
+/**
+ * @file
+ * Page Styling
+ *
+ * Style the markup found in page.tpl.php. Also includes some styling of
+ * miscellaneous Drupal elements that appear in the $content variable, such as
+ * ul.links, .pager, .more-link, etc.
+ */
+
+
+/*
+ * Body
+ */
+body {
+  margin: 0;
+  padding: 0;
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+/*
+ * The skip navigation link will be completely hidden until a user tabs to the
+ * link. See http://www.webaim.org/techniques/skipnav/
+ */
+#skip-link a,
+#skip-link a:visited {
+  position: absolute;
+  display: block;
+  left: 0;
+  top: -500px;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  text-align: center;
+  background-color: #666;
+  color: #fff;
+}
+
+#skip-link a:hover,
+#skip-link a:active,
+#skip-link a:focus {
+  position: static;
+  width: 100%;
+  height: auto;
+  padding: 2px 0 3px 0;
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#logo /* Wrapping link for logo */ {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+#logo img {
+  vertical-align: bottom;
+}
+
+#name-and-slogan /* Wrapper for website name and slogan */ {
+}
+
+h1#site-name,
+div#site-name /* The name of the website */ {
+  margin: 0;
+  font-size: 2em;
+  line-height: 1.3em;
+}
+
+#site-name a:link,
+#site-name a:visited {
+  color: #000;
+  text-decoration: none;
+}
+
+#site-name a:hover,
+#site-name a:focus {
+  text-decoration: underline;
+}
+
+#site-slogan /* The slogan (or tagline) of a website */ {
+}
+
+.region-header /* Wrapper for any blocks placed in the header region */ {
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content {
+}
+
+#content .section {
+}
+
+#mission /* The mission statement of the site (displayed on homepage) */ {
+}
+
+.region-content-top /* Wrapper for any blocks placed in the "content top" region */ {
+}
+
+.breadcrumb /* The path to the current page in the form of a list of links */ {
+  padding-bottom: 0; /* Undo system.css */
+}
+
+h1.title, /* The title of the page */
+h2.title, /* Block title or the title of a piece of content when it is given in a list of content */
+h3.title /* Comment title */ {
+  margin: 0;
+}
+
+tr.even /* Some tables have rows marked even or odd. */ {
+  /* background-color: #eee; */ /* Drupal core uses a #eee background */
+}
+
+tr.odd {
+  /* background-color: #eee; */ /* Drupal core uses a #eee background */
+}
+
+div.messages /* Important messages (status, warning, and error) for the user. See also the declarations in messages.css. */ {
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning,
+tr.warning /* Medium priority messages */ {
+  /* border: 1px solid #f0c020; */ /* Drupal core uses: 1px solid #f0c020 */
+}
+
+div.error,
+tr.error /* High priority messages. See also the .error declaration below. */ {
+}
+
+.error /* Errors that are separate from div.messages status messages. */ {
+  /* color: #e55; */ /* Drupal core uses a #e55 background */
+}
+
+.warning /* Warnings that are separate from div.messages status messages. */ {
+  /* color: #e09010; */ /* Drupal core uses a #e09010 background */
+}
+
+div.tabs /* See also the tabs.css file. */ {
+}
+
+.help /* Help text on a page */ {
+  margin: 1em 0;
+}
+
+.more-help-link /* Link to more help */ {
+  font-size: 0.85em;
+  text-align: right;
+}
+
+#content-area /* Wrapper for the actual page content */ {
+}
+
+ul.links /* List of links */ {
+  margin: 1em 0;
+  padding: 0;
+}
+
+ul.links.inline {
+  margin: 0;
+  display: inline;
+}
+
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+
+.pager /* A list of page numbers when more than 1 page of content is available */ {
+  clear: both;
+  margin: 1em 0;
+  text-align: center;
+}
+
+.pager a,
+.pager strong.pager-current /* Each page number in the pager list */ {
+  padding: 0.5em;
+}
+
+.feed-icons /* The links to the RSS or Atom feeds for the current list of content */ {
+  margin: 1em 0;
+}
+
+.more-link /* Aggregator, blog, and forum more link */ {
+  text-align: right; /* LTR */
+}
+
+.region-content-bottom /* Wrapper for any blocks placed in the "content bottom" region */ {
+}
+
+/*
+ * First sidebar (on left in LTR languages, on right in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-first
+ * (see the layout.css file.)
+ */
+.region-sidebar-first {
+}
+
+.region-sidebar-first .section {
+}
+
+/*
+ * Second sidebar (on right in LTR languages, on left in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-second
+ * (see the layout.css file.)
+ */
+.region-sidebar-second {
+}
+
+.region-sidebar-second .section {
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+#footer-message /* Wrapper for the footer message from Drupal's "Site information"
+                   and for any blocks placed in the footer region */ {
+}
+
+.region-footer {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* Wrapper for any blocks placed in the closure region */ {
+}
+
+/*
+ * Drupal boxes
+ *
+ * Wrapper for Comment form, Comment viewing options, Menu admin, and
+ * Search results.
+ */
+.box /* Wrapper for box */ {
+}
+
+.box h2 /* Box title */ {
+}
+
+.box .content /* Box's content wrapper */ {
+}
+
+/*
+ * Markup free clearing (See: http://www.positioniseverything.net/easyclearing.html )
+ */
+.clearfix:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+
+/**
+ * Hide elements from all users.
+ *
+ * Used for elements which should not be immediately displayed to any user. An
+ * example would be a collapsible fieldset that will be expanded with a click
+ * from a user. The effect of this class can be toggled with the jQuery show()
+ * and hide() functions.
+ */
+.element-hidden {
+  display: none;
+}
+
+/**
+ * Hide elements visually, but keep them available for screen-readers.
+ *
+ * Used for information required for screen-reader users to understand and use
+ * the site where visual display is undesirable. Information provided in this
+ * manner should be kept concise, to avoid unnecessary burden on the user. Must
+ * not be used for focusable elements (such as links and form elements) as this
+ * causes issues for keyboard only or voice recognition users. "!important" is
+ * used to prevent unintentional overrides.
+ */
+.element-invisible {
+  position: absolute !important;
+  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+  clip: rect(1px, 1px, 1px, 1px);
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/panels-styles.css b/drupal/sites/all/themes/zen/STARTERKIT/css/panels-styles.css
new file mode 100644
index 0000000..df3475c
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/panels-styles.css
@@ -0,0 +1,6 @@
+/**
+ * @file
+ * Panels Styling
+ */
+
+
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/print.css b/drupal/sites/all/themes/zen/STARTERKIT/css/print.css
new file mode 100644
index 0000000..8e8cd30
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/print.css
@@ -0,0 +1,73 @@
+/**
+ * @file
+ * Print styling
+ *
+ * We provide some sane print styling for Drupal using Zen's layout method.
+ */
+
+
+/* underline all links */
+a:link,
+a:visited {
+  text-decoration: underline !important;
+}
+
+/* Don't underline header */
+#site-name a:link,
+#site-name a:visited {
+  text-decoration: none !important;
+}
+
+/* CSS2 selector to add visible href after links */
+#content a:link:after,
+#content a:visited:after {
+  content: " (" attr(href) ") ";
+  font-size: 0.8em;
+  font-weight: normal;
+}
+
+/* Un-float the content */
+#content,
+#content .section {
+  float: none;
+  width: 100%;
+  margin: 0 !important;
+  padding: 0 !important;
+}
+
+/* Turn off any background colors or images */
+body,
+#page-wrapper,
+#page,
+#main-wrapper,
+#main,
+#content,
+#content .section {
+  color: #000;
+  background-color: transparent !important;
+  background-image: none !important;
+}
+
+/* Hide sidebars and nav elements */
+#skip-link,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.breadcrumb,
+div.tabs,
+.links,
+.taxonomy,
+.book-navigation,
+.forum-topic-navigation,
+.pager,
+.feed-icons {
+  visibility: hidden;
+  display: none;
+}
+
+/* If you un-comment the "page { overflow-y: hidden; }" ruleset, Firefox clips
+   the content after the first page. */
+#page-wrapper {
+  overflow-y: visible;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/tabs-rtl.css b/drupal/sites/all/themes/zen/STARTERKIT/css/tabs-rtl.css
new file mode 100644
index 0000000..6e7fb0e
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/tabs-rtl.css
@@ -0,0 +1,22 @@
+/**
+ * @file
+ * RTL companion for the tabs.css file.
+ */
+
+
+ul.primary {
+  padding: 0 10px 0 0;
+}
+
+ul.primary li {
+  float: right;
+}
+
+ul.secondary {
+  padding: 0 5px 0 0;
+}
+
+ul.secondary li {
+  float: right;
+  border-left: none;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/tabs.css b/drupal/sites/all/themes/zen/STARTERKIT/css/tabs.css
new file mode 100644
index 0000000..db59568
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/tabs.css
@@ -0,0 +1,128 @@
+/**
+ * @file
+ * Tabs Styling
+ *
+ * Adds styles for the primary and secondary tabs.
+ *
+ * Compare this with default CSS found in the system module's stylesheet (a copy
+ * of which is in drupal6-reference.css, line 510.)
+ */
+
+
+div.tabs {
+  margin: 0 0 5px 0;
+}
+
+ul.primary {
+  margin: 0;
+  padding: 0 0 0 10px; /* LTR */
+  border-width: 0;
+  list-style: none;
+  white-space: nowrap;
+  line-height: normal;
+  background: url(../images/tab-bar.png) repeat-x left bottom;
+}
+
+ul.primary li {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+ul.primary li a {
+  display: block;
+  height: 24px;
+  margin: 0;
+  padding: 0 0 0 5px; /* width of tab-left.png */
+  border-width: 0;
+  font-weight: bold;
+  text-decoration: none;
+  color: #777;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left -38px;
+}
+
+ul.primary li a .tab {
+  display: block;
+  height: 20px; /* 24px (parent) - 4px (padding) */
+  margin: 0;
+  padding: 4px 13px 0 6px;
+  border-width: 0;
+  line-height: 20px;
+  background: url(../images/tab-right.png) no-repeat right -38px;
+}
+
+ul.primary li a:hover,
+ul.primary li a:focus {
+  border-width: 0;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left -76px;
+}
+
+ul.primary li a:hover .tab,
+ul.primary li a:focus .tab {
+  background: url(../images/tab-right.png) no-repeat right -76px;
+}
+
+ul.primary li.active a,
+ul.primary li.active a:hover,
+ul.primary li.active a:focus {
+  border-width: 0;
+  color: #000;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left 0;
+}
+
+ul.primary li.active a .tab,
+ul.primary li.active a:hover .tab,
+ul.primary li.active a:focus .tab {
+  background: url(../images/tab-right.png) no-repeat right 0;
+}
+
+ul.secondary {
+  margin: 0;
+  padding: 0 0 0 5px; /* LTR */
+  border-bottom: 1px solid #c0c0c0;
+  list-style: none;
+  white-space: nowrap;
+  background: url(../images/tab-secondary-bg.png) repeat-x left bottom;
+}
+
+ul.secondary li {
+  float: left; /* LTR */
+  margin: 0 5px 0 0;
+  padding: 5px 0;
+  border-right: none; /* LTR */
+}
+
+ul.secondary a {
+  display: block;
+  height: 24px;
+  margin: 0;
+  padding: 0;
+  border: 1px solid #c0c0c0;
+  text-decoration: none;
+  color: #777;
+  background: url(../images/tab-secondary.png) repeat-x left -56px;
+}
+
+ul.secondary a .tab {
+  display: block;
+  height: 18px; /* 24px (parent) - 6px (padding) */
+  margin: 0;
+  padding: 3px 8px;
+  line-height: 18px;
+}
+
+ul.secondary a:hover,
+ul.secondary a:focus {
+  background: url(../images/tab-secondary.png) repeat-x left bottom;
+}
+
+ul.secondary a.active,
+ul.secondary a.active:hover,
+ul.secondary a.active:focus {
+  border: 1px solid #c0c0c0;
+  color: #000;
+  background: url(../images/tab-secondary.png) repeat-x left top;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/views-styles.css b/drupal/sites/all/themes/zen/STARTERKIT/css/views-styles.css
new file mode 100644
index 0000000..909edd9
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/views-styles.css
@@ -0,0 +1,6 @@
+/**
+ * @file
+ * Views Styling
+ */
+
+
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/css/wireframes.css b/drupal/sites/all/themes/zen/STARTERKIT/css/wireframes.css
new file mode 100644
index 0000000..0bf3058
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/css/wireframes.css
@@ -0,0 +1,24 @@
+/**
+ * @file
+ * Wireframes Styling
+ *
+ * Add wireframes to the basic layout elements.
+ */
+
+
+.with-wireframes #header .section,
+.with-wireframes #content .section,
+.with-wireframes #navigation .section,
+.with-wireframes .region-sidebar-first .section,
+.with-wireframes .region-sidebar-second .section,
+.with-wireframes #footer .section {
+  margin: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
+
+.with-wireframes .region-page-closure {
+  margin-top: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/favicon.ico b/drupal/sites/all/themes/zen/STARTERKIT/favicon.ico
new file mode 100644
index 0000000..0f9909a
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/favicon.ico differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images-source/messages.psd b/drupal/sites/all/themes/zen/STARTERKIT/images-source/messages.psd
new file mode 100644
index 0000000..a155d1c
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images-source/messages.psd differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images-source/panels-layouts.psd b/drupal/sites/all/themes/zen/STARTERKIT/images-source/panels-layouts.psd
new file mode 100644
index 0000000..1f0aecb
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images-source/panels-layouts.psd differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images-source/screenshot.psd b/drupal/sites/all/themes/zen/STARTERKIT/images-source/screenshot.psd
new file mode 100644
index 0000000..6762e48
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images-source/screenshot.psd differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images-source/tabs.psd b/drupal/sites/all/themes/zen/STARTERKIT/images-source/tabs.psd
new file mode 100644
index 0000000..dfd82aa
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images-source/tabs.psd differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/messages-error-ie6.png b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-error-ie6.png
new file mode 100644
index 0000000..054b9f2
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-error-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/messages-error.png b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-error.png
new file mode 100644
index 0000000..012813b
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-error.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/messages-status-ie6.png b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-status-ie6.png
new file mode 100644
index 0000000..f9eb63f
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-status-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/messages-status.png b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-status.png
new file mode 100644
index 0000000..9f07a42
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-status.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/messages-warning-ie6.png b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-warning-ie6.png
new file mode 100644
index 0000000..551a9db
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-warning-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/messages-warning.png b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-warning.png
new file mode 100644
index 0000000..e727711
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/messages-warning.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/tab-bar.png b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-bar.png
new file mode 100644
index 0000000..0b380be
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-bar.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/tab-left-ie6.png b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-left-ie6.png
new file mode 100644
index 0000000..5c512ae
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-left-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/tab-left.png b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-left.png
new file mode 100644
index 0000000..dd925f7
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-left.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/tab-right-ie6.png b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-right-ie6.png
new file mode 100644
index 0000000..1c00281
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-right-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/tab-right.png b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-right.png
new file mode 100644
index 0000000..9ed9cb2
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-right.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/tab-secondary-bg.png b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-secondary-bg.png
new file mode 100644
index 0000000..a5a617e
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-secondary-bg.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/images/tab-secondary.png b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-secondary.png
new file mode 100644
index 0000000..bf4e8d2
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/images/tab-secondary.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/js/README.txt b/drupal/sites/all/themes/zen/STARTERKIT/js/README.txt
new file mode 100644
index 0000000..a8b446a
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/js/README.txt
@@ -0,0 +1,14 @@
+Your theme can add JavaScript files in two ways:
+
+1. To add a JavaScript file to all pages on your website, edit your sub-theme's
+   .info file and add a line like this one:
+
+     scripts[] = js/my-jquery-script.js
+
+2. To add a JavaScript file depending on a certain condition, you can add it
+   using some PHP code in a preprocess function:
+
+     drupal_add_js('js/my-jquery-script.js', 'theme');
+
+   For the full documentation of drupal_add_js(), see:
+     http://api.drupal.org/api/function/drupal_add_js
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/logo.png b/drupal/sites/all/themes/zen/STARTERKIT/logo.png
new file mode 100644
index 0000000..a30644a
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/logo.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/screenshot.png b/drupal/sites/all/themes/zen/STARTERKIT/screenshot.png
new file mode 100644
index 0000000..f6f3e70
Binary files /dev/null and b/drupal/sites/all/themes/zen/STARTERKIT/screenshot.png differ
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/template.php b/drupal/sites/all/themes/zen/STARTERKIT/template.php
new file mode 100644
index 0000000..2c724b9
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/template.php
@@ -0,0 +1,155 @@
+<?php
+/**
+ * @file
+ * Contains theme override functions and preprocess functions for the theme.
+ *
+ * ABOUT THE TEMPLATE.PHP FILE
+ *
+ *   The template.php file is one of the most useful files when creating or
+ *   modifying Drupal themes. You can add new regions for block content, modify
+ *   or override Drupal's theme functions, intercept or make additional
+ *   variables available to your theme, and create custom PHP logic. For more
+ *   information, please visit the Theme Developer's Guide on Drupal.org:
+ *   http://drupal.org/theme-guide
+ *
+ * OVERRIDING THEME FUNCTIONS
+ *
+ *   The Drupal theme system uses special theme functions to generate HTML
+ *   output automatically. Often we wish to customize this HTML output. To do
+ *   this, we have to override the theme function. You have to first find the
+ *   theme function that generates the output, and then "catch" it and modify it
+ *   here. The easiest way to do it is to copy the original function in its
+ *   entirety and paste it here, changing the prefix from theme_ to STARTERKIT_.
+ *   For example:
+ *
+ *     original: theme_breadcrumb()
+ *     theme override: STARTERKIT_breadcrumb()
+ *
+ *   where STARTERKIT is the name of your sub-theme. For example, the
+ *   zen_classic theme would define a zen_classic_breadcrumb() function.
+ *
+ *   If you would like to override any of the theme functions used in Zen core,
+ *   you should first look at how Zen core implements those functions:
+ *     theme_breadcrumbs()      in zen/template.php
+ *     theme_menu_item_link()   in zen/template.php
+ *     theme_menu_local_tasks() in zen/template.php
+ *
+ *   For more information, please visit the Theme Developer's Guide on
+ *   Drupal.org: http://drupal.org/node/173880
+ *
+ * CREATE OR MODIFY VARIABLES FOR YOUR THEME
+ *
+ *   Each tpl.php template file has several variables which hold various pieces
+ *   of content. You can modify those variables (or add new ones) before they
+ *   are used in the template files by using preprocess functions.
+ *
+ *   This makes THEME_preprocess_HOOK() functions the most powerful functions
+ *   available to themers.
+ *
+ *   It works by having one preprocess function for each template file or its
+ *   derivatives (called template suggestions). For example:
+ *     THEME_preprocess_page    alters the variables for page.tpl.php
+ *     THEME_preprocess_node    alters the variables for node.tpl.php or
+ *                              for node-forum.tpl.php
+ *     THEME_preprocess_comment alters the variables for comment.tpl.php
+ *     THEME_preprocess_block   alters the variables for block.tpl.php
+ *
+ *   For more information on preprocess functions and template suggestions,
+ *   please visit the Theme Developer's Guide on Drupal.org:
+ *   http://drupal.org/node/223440
+ *   and http://drupal.org/node/190815#template-suggestions
+ */
+
+
+/**
+ * Implementation of HOOK_theme().
+ */
+function STARTERKIT_theme(&$existing, $type, $theme, $path) {
+  $hooks = zen_theme($existing, $type, $theme, $path);
+  // Add your theme hooks like this:
+  /*
+  $hooks['hook_name_here'] = array( // Details go here );
+  */
+  // @TODO: Needs detailed comments. Patches welcome!
+  return $hooks;
+}
+
+/**
+ * Override or insert variables into all templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered (name of the .tpl.php file.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess(&$vars, $hook) {
+  $vars['sample_variable'] = t('Lorem ipsum.');
+}
+// */
+
+/**
+ * Override or insert variables into the page templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("page" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_page(&$vars, $hook) {
+  $vars['sample_variable'] = t('Lorem ipsum.');
+
+  // To remove a class from $classes_array, use array_diff().
+  //$vars['classes_array'] = array_diff($vars['classes_array'], array('class-to-remove'));
+}
+// */
+
+/**
+ * Override or insert variables into the node templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("node" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_node(&$vars, $hook) {
+  $vars['sample_variable'] = t('Lorem ipsum.');
+
+  // Optionally, run node-type-specific preprocess functions, like
+  // STARTERKIT_preprocess_node_page() or STARTERKIT_preprocess_node_story().
+  $function = __FUNCTION__ . '_' . $vars['node']->type;
+  if (function_exists($function)) {
+    $function($vars, $hook);
+  }
+}
+// */
+
+/**
+ * Override or insert variables into the comment templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("comment" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_comment(&$vars, $hook) {
+  $vars['sample_variable'] = t('Lorem ipsum.');
+}
+// */
+
+/**
+ * Override or insert variables into the block templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("block" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function STARTERKIT_preprocess_block(&$vars, $hook) {
+  $vars['sample_variable'] = t('Lorem ipsum.');
+}
+// */
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/templates/README.txt b/drupal/sites/all/themes/zen/STARTERKIT/templates/README.txt
new file mode 100644
index 0000000..a97d7cc
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/templates/README.txt
@@ -0,0 +1,82 @@
+TEMPLATES
+---------
+
+Drupal 6 contains the following template files which you can override and modify
+by copying them to your sub-theme. The Zen theme overrides a handful of Drupal's
+templates. In order to override those templates, you should copy them from the
+zen/templates folder to your sub-theme's templates folder.
+
+As always, when adding a new template file to your sub-theme, you will need to
+rebuild the "theme registry" in order for Drupal to see it. For more info, see:
+  http://drupal.org/node/173880#theme-registry
+
+Located in zen/templates:
+  page.tpl.php
+  maintenance-page.tpl.php
+  node.tpl.php
+  block.tpl.php
+  comment-wrapper.tpl.php
+  comment.tpl.php
+  views-view.tpl.php
+
+Located in /modules/aggregator:
+  aggregator-feed-source.tpl.php
+  aggregator-item.tpl.php
+  aggregator-summary-item.tpl.php
+  aggregator-summary-items.tpl.php
+  aggregator-wrapper.tpl.php
+
+Located in /modules/block:
+  block-admin-display-form.tpl.php
+
+Located in /modules/book:
+  book-all-books-block.tpl.php
+  book-export-html.tpl.php
+  book-navigation.tpl.php
+  book-node-export-html.tpl.php
+
+Located in /modules/comment:
+  comment-folded.tpl.php
+  comment-wrapper.tpl.php  (overridden by Zen)
+  comment.tpl.php  (overridden by Zen)
+
+Located in /modules/forum:
+  forum-icon.tpl.php
+  forum-list.tpl.php
+  forum-submitted.tpl.php
+  forum-topic-list.tpl.php
+  forum-topic-navigation.tpl.php
+  forums.tpl.php
+
+Located in /modules/node:
+  node.tpl.php  (overridden by Zen)
+
+Located in /modules/poll:
+  poll-bar-block.tpl.php
+  poll-bar.tpl.php
+  poll-results-block.tpl.php
+  poll-results.tpl.php
+  poll-vote.tpl.php
+
+Located in /modules/profile:
+  profile-block.tpl.php
+  profile-listing.tpl.php
+  profile-wrapper.tpl.php
+
+Located in /modules/search:
+  search-block-form.tpl.php
+  search-result.tpl.php
+  search-results.tpl.php
+  search-theme-form.tpl.php
+
+Located in /modules/system:
+  block.tpl.php  (overridden by Zen)
+  box.tpl.php
+  maintenance-page.tpl.php  (overridden by Zen)
+  page.tpl.php  (overridden by Zen)
+
+Located in /modules/user:
+  user-picture.tpl.php
+  user-profile-category.tpl.php
+  user-profile-item.tpl.php
+  user-profile.tpl.php
diff --git a/drupal/sites/all/themes/zen/STARTERKIT/theme-settings.php b/drupal/sites/all/themes/zen/STARTERKIT/theme-settings.php
new file mode 100644
index 0000000..2879454
--- /dev/null
+++ b/drupal/sites/all/themes/zen/STARTERKIT/theme-settings.php
@@ -0,0 +1,43 @@
+<?php
+// Include the definition of zen_settings() and zen_theme_get_default_settings().
+include_once './' . drupal_get_path('theme', 'zen') . '/theme-settings.php';
+
+
+/**
+ * Implementation of THEMEHOOK_settings() function.
+ *
+ * @param $saved_settings
+ *   An array of saved settings for this theme.
+ * @return
+ *   A form array.
+ */
+function STARTERKIT_settings($saved_settings) {
+
+  // Get the default values from the .info file.
+  $defaults = zen_theme_get_default_settings('STARTERKIT');
+
+  // Merge the saved variables and their default values.
+  $settings = array_merge($defaults, $saved_settings);
+
+  /*
+   * Create the form using Forms API: http://api.drupal.org/api/6
+   */
+  $form = array();
+  /* -- Delete this line if you want to use this setting
+  $form['STARTERKIT_example'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Use this sample setting'),
+    '#default_value' => $settings['STARTERKIT_example'],
+    '#description'   => t("This option doesn't do anything; it's just an example."),
+  );
+  // */
+
+  // Add the base theme's settings.
+  $form += zen_settings($saved_settings, $defaults);
+
+  // Remove some of the base theme's settings.
+  unset($form['themedev']['zen_layout']); // We don't need to select the base stylesheet.
+
+  // Return the form
+  return $form;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/README.txt b/drupal/sites/all/themes/zen/layouts/README.txt
new file mode 100644
index 0000000..2784eba
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/README.txt
@@ -0,0 +1,5 @@
+To build your own Panels layout follow the documentation provided by Panels:
+  http://drupal.org/node/495654
+
+* Please note: These panels layouts will only show up if Zen is enabled. A
+  bugfix is in the works for this issue: http://drupal.org/node/657720
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first-admin.css b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first-admin.css
new file mode 100644
index 0000000..eecec4c
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first-admin.css
@@ -0,0 +1,41 @@
+/**
+ * @file
+ * Page manager layout
+ *
+ * We are using percentages in the admin instead of fixed widths so that the
+ * admin can work nicely in different admin themes.
+ */
+
+#panels-dnd-main div.panels-display h2.label {
+	padding-left: 24px;
+	text-align: left;
+}
+
+#page-manager-edit .zen-one-sidebar-first .panel-content {
+  float: left; /* LTR */
+  width: 66%;
+  margin-left: 34%; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+#page-manager-edit .zen-one-sidebar-first .panel-content .inside {
+  margin-right: 0px;
+}
+
+#page-manager-edit .zen-one-sidebar-first .panel-header {
+  height: auto;
+  margin-bottom: 10px;
+}
+
+#page-manager-edit .zen-one-sidebar-first .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 34%;
+  margin-left: 0px; /* LTR */ /* Width of #content. */
+  margin-right: -34%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+#page-manager-edit .zen-one-sidebar-first .panel-sidebar-first .panel-sidebar-first-inner {
+  margin-right: 10px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first.css b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first.css
new file mode 100644
index 0000000..c5eba65
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first.css
@@ -0,0 +1,36 @@
+/**
+ * @file
+ * Zen panel layout
+ *
+ * This layout does include the standar Zen navbar, content and right sidebar
+ * layout.  Markup has been reordered for Accessibility and SEO optimizations.
+ * The markup order is: content, sidebar but the display will show sidebar,
+ * content.
+ */
+
+.zen-one-sidebar-first { 
+/*  overflow: hidden;  */
+  position: relative;
+  margin-top: 0;
+  padding-top: 0;
+}
+
+.zen-one-sidebar-first .panel-content {
+  float: left; /* LTR */
+  width: 640px;
+  margin-left: 320px; /* LTR */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+.zen-one-sidebar-first .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 320px;
+  margin-left: 0px; /* LTR */ /* Width of #content. */
+  margin-right: -320px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-one-sidebar-first .panel-sidebar-first .panel-sidebar-first-inner {
+  margin-right: 20px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first.png b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first.png
new file mode 100644
index 0000000..5b7b1de
Binary files /dev/null and b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one-sidebar-first.png differ
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one_sidebar_first.inc b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one_sidebar_first.inc
new file mode 100644
index 0000000..a001987
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/one_sidebar_first.inc
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Implements hook_panels_layouts().
+ */
+function zen_one_sidebar_first_panels_layouts() {
+  $items['one_sidebar_first'] = array(
+    'title' => t('Zen Layout: one sidebar before content'),
+    'icon' => 'one-sidebar-first.png',
+    'theme' => 'zen_one_sidebar_first',
+    'admin theme' => 'zen_one_sidebar_first_admin',
+    'css' => 'one-sidebar-first.css',
+    'admin css' => 'one-sidebar-first-admin.css',    
+    'panels' => array(
+      'content' => t('Content'),
+      'sidebar_first' => t('First sidebar'),
+    ),
+  );
+
+  return $items;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_first/zen-one-sidebar-first-admin.tpl.php b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/zen-one-sidebar-first-admin.tpl.php
new file mode 100644
index 0000000..b1b8e37
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/zen-one-sidebar-first-admin.tpl.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ */
+?>
+
+<div class="panel-display zen-one-sidebar-first clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+</div> <!-- /.panel-zencontentfirst-inner, /.panel-zencontentfirst -->
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_first/zen-one-sidebar-first.tpl.php b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/zen-one-sidebar-first.tpl.php
new file mode 100644
index 0000000..09fe40d
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_first/zen-one-sidebar-first.tpl.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ */
+?>
+
+<div class="panel-display zen-one-sidebar-first clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+</div> <!-- /.zen-one-sidebar-first -->
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second-admin.css b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second-admin.css
new file mode 100644
index 0000000..8097908
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second-admin.css
@@ -0,0 +1,42 @@
+/**
+ * @file
+ * Page manager layout
+ *
+ * We are using percentages in the admin instead of fixed widths so that the
+ * admin can work nicely in different admin themes.
+ */
+
+#page-manager-edit .zen-one-sidebar-second .panel-header {
+  height: auto;
+  margin-bottom: 10px;
+}
+
+#page-manager-edit .zen-one-sidebar-second .panel-content {
+  float: left; /* LTR */
+  width: 66%;
+  margin-left: 0; /* LTR */
+  margin-right: -66%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+  margin-top: 0px;
+}
+
+#page-manager-edit .zen-one-sidebar-second .panel-content .inside {
+  margin-right: 10px;
+}
+
+#page-manager-edit .zen-one-sidebar-second .with-panel-header .panel-content,
+#page-manager-edit .zen-one-sidebar-second .with-panel-header .panel-sidebar-first {
+  margin-top: 0; /* Set this to the same value as the navbar height above. */
+}
+
+#page-manager-edit .zen-one-sidebar-second .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 34%;
+  margin-left: 66%; /* LTR */ /* Width of #content. */
+  margin-right: -100%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-one-sidebar-second .panel-sidebar-first .panel-sidebar-first-inner {
+  margin: 0 0 0 0;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second.css b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second.css
new file mode 100644
index 0000000..6eebc71
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second.css
@@ -0,0 +1,50 @@
+/**
+ * @file
+ * Zen panel layout
+ *
+ * This layout does include the standar Zen navbar, content and right sidebar
+ * layout.  Markup has been reordered for Accessibility and SEO optimizations.
+ */
+
+.zen-one-sidebar-second { 
+/*  overflow: hidden;  */
+  position: relative;
+  margin-top: 0;
+  padding-top: 0;
+}
+
+.zen-one-sidebar-second .panel-navbar { 
+  width: 100%; 
+  float: left; /* LTR */
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navbar's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-navbar. */
+  height: 8.3em; /* The navbar can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+}
+
+.zen-one-sidebar-second .with-panel-header .panel-content,
+.zen-one-sidebar-second .with-panel-header .panel-sidebar-first {
+  margin-top: 8.3em; /* Set this to the same value as the navbar height above. */
+}
+
+.zen-one-sidebar-second .panel-content {
+  float: left; /* LTR */
+  width: 640px;
+  margin-left: 0; /* LTR */
+  margin-right: -640px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+.zen-one-sidebar-second .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 320px;
+  margin-left: 640px; /* LTR */ /* Width of #content. */
+  margin-right: -960px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-one-sidebar-second .panel-sidebar-first .panel-sidebar-first-inner {
+  margin-left: 20px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second.png b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second.png
new file mode 100644
index 0000000..33be416
Binary files /dev/null and b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one-sidebar-second.png differ
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one_sidebar_second.inc b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one_sidebar_second.inc
new file mode 100644
index 0000000..1ed20ba
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/one_sidebar_second.inc
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Implements hook_panels_layouts().
+ */
+function zen_one_sidebar_second_panels_layouts() {
+  $items['one_sidebar_second'] = array(
+    'title' => t('Zen Layout: one sidebar after content'),
+    'icon' => 'one-sidebar-second.png',
+    'theme' => 'zen_one_sidebar_second',
+    'admin theme' => 'zen_one_sidebar_second_admin',
+    'css' => 'one-sidebar-second.css',
+    'admin css' => 'one-sidebar-second-admin.css',    
+    'panels' => array(
+      'content' => t('Content'),
+      'sidebar_first' => t('First sidebar'),
+    ),
+  );
+
+  return $items;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_second/zen-one-sidebar-second-admin.tpl.php b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/zen-one-sidebar-second-admin.tpl.php
new file mode 100644
index 0000000..41dbe56
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/zen-one-sidebar-second-admin.tpl.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ */
+?>
+
+<div class="panel-display zen-one-sidebar-second clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+</div> <!-- /.zen-one-sidebar-second -->
diff --git a/drupal/sites/all/themes/zen/layouts/one_sidebar_second/zen-one-sidebar-second.tpl.php b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/zen-one-sidebar-second.tpl.php
new file mode 100644
index 0000000..bdb251e
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/one_sidebar_second/zen-one-sidebar-second.tpl.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ */
+?>
+
+<div class="panel-display zen-one-sidebar-second clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+</div> <!-- /.zen-one-sidebar-second -->
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars-admin.css b/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars-admin.css
new file mode 100644
index 0000000..f7669b7
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars-admin.css
@@ -0,0 +1,53 @@
+/**
+ * @file
+ * Page manager layout
+ *
+ * We are using percentages in the admin instead of fixed widths so that the
+ * admin can work nicely in different admin themes.
+ */
+
+#panels-dnd-main div.panels-display h2.label {
+  padding-left: 24px;
+  text-align: left;
+}
+
+#page-manager-edit .zen-two-sidebars .panel-content .inside {
+  margin-right: 10px;
+}
+
+#page-manager-edit .zen-two-sidebars .panel-content {
+  float: left; /* LTR */
+  width: 50%;
+  margin-left: 25%; /* LTR */
+  margin-right: -75%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars .panel-header {
+  height: auto;
+  margin-bottom: 10px;
+}
+
+#page-manager-edit .zen-two-sidebars .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 25%;
+  margin-left: 0px; /* LTR */ /* Width of #content. */
+  margin-right: -25%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars .panel-sidebar-first-inner {
+  margin-right: 10px;
+}
+
+#page-manager-edit .zen-two-sidebars .panel-sidebar-second {
+  float: left; /* LTR */
+  width: 25%;
+  margin-left: 75%; /* LTR */ /* Width of #content. */
+  margin-right: -100%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars .panel-sidebar-second-inner {
+  margin-left: 0px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars.css b/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars.css
new file mode 100644
index 0000000..10ddf5d
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars.css
@@ -0,0 +1,51 @@
+/**
+ * @file
+ * Zen panel layout
+ *
+ * This layout does include the standar Zen navbar, content and right sidebar
+ * layout.  Markup has been reordered for Accessibility and SEO optimizations.
+ * The markup order is: content, sidebar, sidebar but the display will show
+ * sidebar, content, sidebar.
+ */
+
+.zen-two-sidebars { 
+/*  overflow: hidden;  */
+  position: relative;
+  margin-top: 0;
+  padding-top: 0;
+}
+
+.zen-two-sidebars .panel-sidebar-first {
+}
+
+.zen-two-sidebars .panel-content {
+  float: left; /* LTR */
+  width: 460px;
+  margin-left: 250px; /* LTR */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+.zen-two-sidebars .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 250px;
+  margin-left: 0px; /* LTR */ /* Width of #content. */
+  margin-right: -250px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-two-sidebars .panel-sidebar-first .panel-sidebar-first-inner {
+  margin-right: 20px;
+}
+
+.zen-two-sidebars .panel-sidebar-second {
+  float: left; /* LTR */
+  width: 250px;
+  margin-left: 710px; /* LTR */ /* Width of #content. */
+  margin-right: -960px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-two-sidebars .panel-sidebar-second .panel-sidebar-second-inner {
+  margin-left: 20px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars.png b/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars.png
new file mode 100644
index 0000000..23cc8d1
Binary files /dev/null and b/drupal/sites/all/themes/zen/layouts/two_sidebars/two-sidebars.png differ
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars/two_sidebars.inc b/drupal/sites/all/themes/zen/layouts/two_sidebars/two_sidebars.inc
new file mode 100644
index 0000000..4d1b785
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars/two_sidebars.inc
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Implements hook_panels_layouts().
+ */
+function zen_two_sidebars_panels_layouts() {
+  $items['two_sidebars'] = array(
+    'title' => t('Zen Layout: two sidebars with content'),
+    'icon' => 'two-sidebars.png',
+    'theme' => 'zen_two_sidebars',
+    'admin theme' => 'zen_two_sidebars_admin',
+    'css' => 'two-sidebars.css',
+    'admin css' => 'two-sidebars-admin.css',    
+    'panels' => array(
+      'content' => t('Content'),
+      'sidebar_first' => t('First sidebar'),
+      'sidebar_second' => t('Second sidebar'),
+    ),
+  );
+
+  return $items;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars/zen-two-sidebars-admin.tpl.php b/drupal/sites/all/themes/zen/layouts/two_sidebars/zen-two-sidebars-admin.tpl.php
new file mode 100644
index 0000000..5dbfd83
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars/zen-two-sidebars-admin.tpl.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ *   - $content['sidebar_second']: Content in the second column.
+ */
+?>
+
+<div class="panel-display zen-two-sidebars clear-block"<?php if (!empty($css_id)) { print ' id="' . $css_id . '"'; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+  <div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
+    <?php print $content['sidebar_second']; ?>
+  </div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
+
+</div> <!-- /.zen-two-sidebars -->
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars/zen-two-sidebars.tpl.php b/drupal/sites/all/themes/zen/layouts/two_sidebars/zen-two-sidebars.tpl.php
new file mode 100644
index 0000000..f309c87
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars/zen-two-sidebars.tpl.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ *   - $content['sidebar_second']: Content in the second column.
+ */
+?>
+
+<div class="panel-display zen-two-sidebars clearfix"<?php if (!empty($css_id)) { print ' id="' . $css_id . '"'; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+  <div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
+    <?php print $content['sidebar_second']; ?>
+  </div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
+
+</div> <!-- /.zen-two-sidebars -->
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first-admin.css b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first-admin.css
new file mode 100644
index 0000000..bfc8686
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first-admin.css
@@ -0,0 +1,53 @@
+/**
+ * @file
+ * Page manager layout
+ *
+ * Because we're using fixed widths and not percentages, we need to adjust the
+ * panel page editing layout to fit reasonably on screen.  We're assuming a
+ * 960px page width, leaving the main panel manager content well at 769px.
+ */
+#panels-dnd-main div.panels-display h2.label {
+	padding-left: 24px;
+	text-align: left;
+}
+
+#page-manager-edit .zen-two-sidebars-first .panel-content .inside {
+  margin-right: 0px;
+}
+
+#page-manager-edit .zen-two-sidebars-first .panel-content {
+  float: left; /* LTR */
+  width: 50%;
+  margin-left: 50%; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars-first .panel-header {
+  height: auto;
+  margin-bottom: 10px;
+}
+
+#page-manager-edit .zen-two-sidebars-first .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 25%;
+  margin-left: 0px; /* LTR */ /* Width of #content. */
+  margin-right: -25%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars-first .panel-sidebar-first-inner {
+	margin-right: 10px;
+}
+
+#page-manager-edit .zen-two-sidebars-first .panel-sidebar-second {
+  float: left; /* LTR */
+  width: 25%;
+  margin-left: 25%; /* LTR */ /* Width of #content. */
+  margin-right: -50%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars-first .panel-sidebar-second-inner {
+	margin-right: 10px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first.css b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first.css
new file mode 100644
index 0000000..f763b08
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first.css
@@ -0,0 +1,51 @@
+/**
+ * @file
+ * Zen panel layout
+ *
+ * This layout does include the standar Zen navbar, content and right sidebar
+ * layout.  Markup has been reordered for Accessibility and SEO optimizations.
+ * The markup order is: content, sidebar, sidebar but the display will show
+ * sidebar, sidebar, content.
+ */
+
+.zen-two-sidebars-first { 
+/*  overflow: hidden;  */
+  position: relative;
+  margin-top: 0;
+  padding-top: 0;
+}
+
+.zen-two-sidebars-first .panel-sidebar-first {
+}
+
+.zen-two-sidebars-first .panel-content {
+  float: left; /* LTR */
+  width: 460px;
+  margin-left: 500px; /* LTR */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+.zen-two-sidebars-first .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 250px;
+  margin-left: 0px; /* LTR */ /* Width of #content. */
+  margin-right: -250px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-two-sidebars-first .panel-sidebar-first .panel-sidebar-first-inner {
+  margin-right: 20px;
+}
+
+.zen-two-sidebars-first .panel-sidebar-second {
+  float: left; /* LTR */
+  width: 250px;
+  margin-left: 250px; /* LTR */ /* Width of #content. */
+  margin-right: -500px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-two-sidebars-first .panel-sidebar-second .panel-sidebar-second-inner {
+  margin-right: 20px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first.png b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first.png
new file mode 100644
index 0000000..79ec8d8
Binary files /dev/null and b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two-sidebars-first.png differ
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two_sidebars_first.inc b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two_sidebars_first.inc
new file mode 100644
index 0000000..77f878c
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/two_sidebars_first.inc
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Implements hook_panels_layouts().
+ */
+function zen_two_sidebars_first_panels_layouts() {
+  $items['two_sidebars_first'] = array(
+    'title' => t('Zen Layout: two sidebars before content'),
+    'icon' => 'two-sidebars-first.png',
+    'theme' => 'zen_two_sidebars_first',
+    'admin theme' => 'zen_two_sidebars_first_admin',
+    'css' => 'two-sidebars-first.css',
+    'admin css' => 'two-sidebars-first-admin.css',    
+    'panels' => array(
+      'content' => t('Content'),
+      'sidebar_first' => t('First sidebar'),
+      'sidebar_second' => t('Second sidebar'),
+    ),
+  );
+
+  return $items;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_first/zen-two-sidebars-first-admin.tpl.php b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/zen-two-sidebars-first-admin.tpl.php
new file mode 100644
index 0000000..320a32f
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/zen-two-sidebars-first-admin.tpl.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ *   - $content['sidebar_second']: Content in the second column.
+ */
+?>
+
+<div class="panel-display zen-two-sidebars-first clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+  <div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
+    <?php print $content['sidebar_second']; ?>
+  </div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
+
+</div> <!-- /.zen-two-sidebars-first -->
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_first/zen-two-sidebars-first.tpl.php b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/zen-two-sidebars-first.tpl.php
new file mode 100644
index 0000000..b25010b
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_first/zen-two-sidebars-first.tpl.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ *   - $content['sidebar_second']: Content in the second column.
+ */
+?>
+
+<div class="panel-display zen-two-sidebars-first clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+  <div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
+    <?php print $content['sidebar_second']; ?>
+  </div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
+
+</div> <!-- /.zen-two-sidebars-first -->
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second-admin.css b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second-admin.css
new file mode 100644
index 0000000..91ccb52
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second-admin.css
@@ -0,0 +1,55 @@
+/**
+ * @file
+ * Page manager layout
+ *
+ * We are using percentages in the admin instead of fixed widths so that the
+ * admin can work nicely in different admin themes.
+ */
+
+.zen-two-sidebars-second .admin-row {
+  float: left;
+  width: 100%;
+}
+ 
+#panels-dnd-main div.panels-display h2.label {
+	padding-left: 24px;
+	padding-right: 0px;
+	text-align: left;
+}
+
+#page-manager-edit .zen-two-sidebars-second .panel-content {
+  float: left; /* LTR */
+  width: 51%;
+  margin-left: 0; /* LTR */
+  margin-right: -51%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars-second .panel-header {
+  height: auto;
+  margin-bottom: 10px;
+}
+
+#page-manager-edit .zen-two-sidebars-second .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 24%;
+  margin-left: 51%; /* LTR */ /* Width of #content. */
+  margin-right: -75%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars-second .panel-sidebar-first-inner {
+	margin-left: 5px;
+}
+
+#page-manager-edit .zen-two-sidebars-second .panel-sidebar-second {
+  float: left; /* LTR */
+  width: 24%;
+  margin-left: 75%; /* LTR */ /* Width of #content. */
+  margin-right: -99%; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+#page-manager-edit .zen-two-sidebars-second .panel-sidebar-second-inner {
+	margin-left: 5px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second.css b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second.css
new file mode 100644
index 0000000..ee6a313
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second.css
@@ -0,0 +1,62 @@
+/**
+ * @file
+ * Zen panel layout
+ *
+ * This layout does include the standar Zen navbar, content and right sidebar
+ * layout.  Markup has been reordered for Accessibility and SEO optimizations.
+ */
+.zen-two-sidebars-second { 
+/*  overflow: hidden;  */
+  position: relative;
+  margin-top: 0;
+  padding-top: 0;
+}
+
+.zen-two-sidebars-second .panel-content {
+  float: left; /* LTR */
+  width: 460px;
+  margin-left: 0; /* LTR */
+  margin-right: -460px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content-inner. */
+}
+
+.zen-two-sidebars-second .panel-header {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
+  height: 3.3em; /* The navigation can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+}
+
+.zen-two-sidebars-second .with-panel-header .panel-content,
+.zen-two-sidebars-second .with-panel-header .panel-sidebar-first,
+.zen-two-sidebars-second .with-panel-header .panel-sidebar-second {
+  margin-top: 3.3em; /* Set this to the same value as the navigation height above. */
+}
+
+.zen-two-sidebars-second .panel-sidebar-first {
+  float: left; /* LTR */
+  width: 250px;
+  margin-left: 460px; /* LTR */ /* Width of #content. */
+  margin-right: -710px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-two-sidebars-second .panel-sidebar-first .panel-sidebar-first-inner {
+  margin-left: 20px;
+}
+
+.zen-two-sidebars-second .panel-sidebar-second {
+  float: left; /* LTR */
+  width: 250px;
+  margin-left: 710px; /* LTR */ /* Width of #content. */
+  margin-right: -960px; /* LTR */ /* Negative value of #sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #sidebar-first-inner. */
+}
+
+.zen-two-sidebars-second .panel-sidebar-second .panel-sidebar-second-inner {
+  margin-left: 20px;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second.png b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second.png
new file mode 100644
index 0000000..97a6f8e
Binary files /dev/null and b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two-sidebars-second.png differ
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two_sidebars_second.inc b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two_sidebars_second.inc
new file mode 100644
index 0000000..05e0add
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/two_sidebars_second.inc
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Implements hook_panels_layouts().
+ */
+function zen_two_sidebars_second_panels_layouts() {
+  $items['two_sidebars_second'] = array(
+    'title' => t('Zen Layout: two sidebars after content'),
+    'icon' => 'two-sidebars-second.png',
+    'theme' => 'zen_two_sidebars_second',
+    'admin theme' => 'zen_two_sidebars_second_admin',
+    'css' => 'two-sidebars-second.css',
+    'admin css' => 'two-sidebars-second-admin.css',    
+    'panels' => array(
+      'content' => t('Content'),
+      'sidebar_first' => t('First sidebar'),
+      'sidebar_second' => t('Second sidebar'),
+    ),
+  );
+
+  return $items;
+}
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_second/zen-two-sidebars-second-admin.tpl.php b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/zen-two-sidebars-second-admin.tpl.php
new file mode 100644
index 0000000..b19f138
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/zen-two-sidebars-second-admin.tpl.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ *   - $content['sidebar_second']: Content in the second column.
+ */
+?>
+
+<div class="panel-display zen-two-sidebars-second clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+  <div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
+    <?php print $content['sidebar_second']; ?>
+  </div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
+
+</div> <!-- /.zen-two-sidebars-second -->
diff --git a/drupal/sites/all/themes/zen/layouts/two_sidebars_second/zen-two-sidebars-second.tpl.php b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/zen-two-sidebars-second.tpl.php
new file mode 100644
index 0000000..9fb6e0b
--- /dev/null
+++ b/drupal/sites/all/themes/zen/layouts/two_sidebars_second/zen-two-sidebars-second.tpl.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * Template for a 1 row, 2 column Zen-based panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $css_id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['content']: Content in the main column.
+ *   - $content['sidebar_first']: Content in the first column.
+ *   - $content['sidebar_second']: Content in the second column.
+ */
+?>
+
+<div class="panel-display zen-two-sidebars-second clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+
+  <div class="panel-content"><div class="panel-content-inner inside panel-panel">
+    <?php print $content['content']; ?>
+  </div></div> <!-- /.panel-content-inner, /.panel-content -->
+
+  <div class="panel-sidebar-first"><div class="panel-sidebar-first-inner inside panel-panel">
+    <?php print $content['sidebar_first']; ?>
+  </div></div> <!-- /.panel-sidebar-first-inner, /.panel-sidebar-first -->
+
+  <div class="panel-sidebar-second"><div class="panel-sidebar-second-inner inside panel-panel">
+    <?php print $content['sidebar_second']; ?>
+  </div></div> <!-- /.panel-sidebar-second-inner, /.panel-sidebar-second -->
+
+</div> <!-- /.zen-two-sidebars-second -->
diff --git a/drupal/sites/all/themes/zen/logo.png b/drupal/sites/all/themes/zen/logo.png
new file mode 100644
index 0000000..a30644a
Binary files /dev/null and b/drupal/sites/all/themes/zen/logo.png differ
diff --git a/drupal/sites/all/themes/zen/template.php b/drupal/sites/all/themes/zen/template.php
new file mode 100644
index 0000000..0389d75
--- /dev/null
+++ b/drupal/sites/all/themes/zen/template.php
@@ -0,0 +1,668 @@
+<?php
+/**
+ * @file
+ * Contains theme override functions and preprocess functions for the Zen theme.
+ *
+ * IMPORTANT WARNING: DO NOT MODIFY THIS FILE.
+ *
+ * The base Zen theme is designed to be easily extended by its sub-themes. You
+ * shouldn't modify this or any of the CSS or PHP files in the root zen/ folder.
+ * See the online documentation for more information:
+ *   http://drupal.org/node/193318
+ */
+
+// Auto-rebuild the theme registry during theme development.
+if (theme_get_setting('zen_rebuild_registry')) {
+  drupal_rebuild_theme_registry();
+}
+
+
+/**
+ * Implements HOOK_theme().
+ */
+function zen_theme(&$existing, $type, $theme, $path) {
+  // When #341140 is fixed, replace _zen_path() with drupal_get_path().
+  include_once './' . _zen_path() . '/zen-internals/template.theme-registry.inc';
+  return _zen_theme($existing, $type, $theme, $path);
+}
+
+/**
+ * Return a themed breadcrumb trail.
+ *
+ * @param $breadcrumb
+ *   An array containing the breadcrumb links.
+ * @return
+ *   A string containing the breadcrumb output.
+ */
+function zen_breadcrumb($breadcrumb) {
+  // Determine if we are to display the breadcrumb.
+  $show_breadcrumb = theme_get_setting('zen_breadcrumb');
+  if ($show_breadcrumb == 'yes' || $show_breadcrumb == 'admin' && arg(0) == 'admin') {
+
+    // Optionally get rid of the homepage link.
+    $show_breadcrumb_home = theme_get_setting('zen_breadcrumb_home');
+    if (!$show_breadcrumb_home) {
+      array_shift($breadcrumb);
+    }
+
+    // Return the breadcrumb with separators.
+    if (!empty($breadcrumb)) {
+      $breadcrumb_separator = theme_get_setting('zen_breadcrumb_separator');
+      $trailing_separator = $title = '';
+      if (theme_get_setting('zen_breadcrumb_title')) {
+        if ($title = drupal_get_title()) {
+          $trailing_separator = $breadcrumb_separator;
+        }
+      }
+      elseif (theme_get_setting('zen_breadcrumb_trailing')) {
+        $trailing_separator = $breadcrumb_separator;
+      }
+      return '<div class="breadcrumb">' . implode($breadcrumb_separator, $breadcrumb) . "$trailing_separator$title</div>";
+    }
+  }
+  // Otherwise, return an empty string.
+  return '';
+}
+
+/**
+ * Return a themed set of links.
+ *
+ * @param $links
+ *   A keyed array of links to be themed.
+ * @param $attributes
+ *   A keyed array of attributes
+ * @param $heading
+ *   An optional keyed array or a string for a heading to precede the links.
+ *   When using an array the following keys can be used:
+ *     - text: the heading text
+ *     - level: the heading level (e.g. 'h2', 'h3')
+ *     - class: (optional) a string of the CSS classes for the heading
+ *   When using a string it will be used as the text of the heading and the
+ *   level will default to 'h2'.
+ *   Headings should be used on navigation menus and any list of links that
+ *   consistently appears on multiple pages. To make the heading invisible
+ *   use the 'element-invisible' CSS class. Do not use 'display:none', which
+ *   removes it from screen-readers and assistive technology. Headings allow
+ *   screen-reader and keyboard only users to navigate to or skip the links.
+ *   See http://juicystudio.com/article/screen-readers-display-none.php
+ *   and http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
+ * @return
+ *   A string containing an unordered list of links.
+ */
+function zen_links($links, $attributes = array('class' => 'links'), $heading = '') {
+  global $language;
+  $output = '';
+
+  if (count($links) > 0) {
+    // Treat the heading first if it is present to prepend it to the
+    // list of links.
+    if (!empty($heading)) {
+      if (is_string($heading)) {
+        // Prepare the array that will be used when the passed heading
+        // is a string.
+        $heading = array(
+          'text' => $heading,
+          // Set the default level of the heading.
+          'level' => 'h2',
+        );
+      }
+      $output .= '<' . $heading['level'];
+      if (!empty($heading['class'])) {
+        $output .= drupal_attributes(array('class' => $heading['class']));
+      }
+      $output .= '>' . check_plain($heading['text']) . '</' . $heading['level'] . '>';
+    }
+
+    $output .= '<ul'. drupal_attributes($attributes) .'>';
+
+    $num_links = count($links);
+    $i = 1;
+
+    foreach ($links as $key => $link) {
+      $class = $key;
+
+      // Add first, last and active classes to the list of links to help out themers.
+      if ($i == 1) {
+        $class .= ' first';
+      }
+      if ($i == $num_links) {
+        $class .= ' last';
+      }
+      if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '<front>' && drupal_is_front_page()))
+          && (empty($link['language']) || $link['language']->language == $language->language)) {
+        $class .= ' active';
+      }
+      $output .= '<li'. drupal_attributes(array('class' => $class)) .'>';
+
+      if (isset($link['href'])) {
+        // Pass in $link as $options, they share the same keys.
+        $output .= l($link['title'], $link['href'], $link);
+      }
+      else if (!empty($link['title'])) {
+        // Some links are actually not links, but we wrap these in <span> for adding title and class attributes
+        if (empty($link['html'])) {
+          $link['title'] = check_plain($link['title']);
+        }
+        $span_attributes = '';
+        if (isset($link['attributes'])) {
+          $span_attributes = drupal_attributes($link['attributes']);
+        }
+        $output .= '<span'. $span_attributes .'>'. $link['title'] .'</span>';
+      }
+
+      $i++;
+      $output .= "</li>\n";
+    }
+
+    $output .= '</ul>';
+  }
+
+  return $output;
+}
+
+/**
+ * Implements theme_menu_item_link()
+ */
+function zen_menu_item_link($link) {
+  if (empty($link['localized_options'])) {
+    $link['localized_options'] = array();
+  }
+
+  // If an item is a LOCAL TASK, render it as a tab
+  if ($link['type'] & MENU_IS_LOCAL_TASK) {
+    $link['title'] = '<span class="tab">' . check_plain($link['title']) . '</span>';
+    $link['localized_options']['html'] = TRUE;
+  }
+
+  return l($link['title'], $link['href'], $link['localized_options']);
+}
+
+/**
+ * Duplicate of theme_menu_local_tasks() but adds clearfix to tabs.
+ */
+function zen_menu_local_tasks() {
+  $output = '';
+
+  // CTools requires a different set of local task functions.
+  if (module_exists('ctools')) {
+    ctools_include('menu');
+    $primary = ctools_menu_primary_local_tasks();
+    $secondary = ctools_menu_secondary_local_tasks();
+  }
+  else {
+    $primary = menu_primary_local_tasks();
+    $secondary = menu_secondary_local_tasks();
+  }
+
+  if ($primary) {
+    $output .= '<ul class="tabs primary clearfix">' . $primary . '</ul>';
+  }
+  if ($secondary) {
+    $output .= '<ul class="tabs secondary clearfix">' . $secondary . '</ul>';
+  }
+
+  return $output;
+}
+
+/**
+ * Return a set of blocks available for the current user.
+ *
+ * @param $region
+ *   Which set of blocks to retrieve.
+ * @param $show_blocks
+ *   A boolean to determine whether to render sidebar regions or not. Should be
+ *   the same value as passed to theme_page.
+ * @return
+ *   A string containing the themed blocks for this region.
+ *
+ * @see zen_show_blocks_discovery()
+ */
+function zen_blocks($region, $show_blocks = NULL) {
+  // Since Drupal 6 doesn't pass $show_blocks to theme_blocks, we manually call
+  // theme('blocks', NULL, $show_blocks) so that this function can remember the
+  // value on later calls.
+  static $render_sidebars = TRUE;
+  if (!is_null($show_blocks)) {
+    $render_sidebars = $show_blocks;
+  }
+
+  // If zen_blocks was called with a NULL region, its likely we were just
+  // setting the $render_sidebars static variable.
+  if ($region) {
+    $output = '';
+
+    // If $renders_sidebars is FALSE, don't render any region whose name begins
+    // with "sidebar_".
+    if ($render_sidebars || (strpos($region, 'sidebar_') !== 0)) {
+      // Allow context module to set blocks.
+      if (function_exists('context_blocks')) {
+        $output = context_blocks($region);
+      }
+      else {
+        foreach (block_list($region) as $key => $block) {
+          // $key == module_delta
+          $output .= theme('block', $block);
+        }
+      }
+    }
+
+    // Add any content assigned to this region through drupal_set_content() calls.
+    $output .= drupal_get_content($region);
+
+    $elements['#children'] = $output;
+    $elements['#region'] = $region;
+
+    // Set the theme hook suggestions.
+    $hook = array('region_' . $region);
+    if (strpos($region, 'sidebar_') === 0) {
+      $hook[] = 'region_sidebar';
+    }
+    $hook[] = 'region';
+    return $output ? theme($hook, $elements) : '';
+  }
+}
+
+/**
+ * Examine the $show_blocks variable before template_preprocess_page() is called.
+ *
+ * @param $vars
+ *   An array of variables to pass to the page template.
+ *
+ * @see zen_blocks()
+ */
+function zen_show_blocks_discovery(&$vars) {
+  if ($vars['show_blocks'] == FALSE) {
+    // Allow zen_blocks() to statically cache the $show_blocks variable. A TRUE
+    // value is assumed, so we only need to override when $show_blocks is FALSE.
+    theme('blocks', NULL, FALSE);
+  }
+}
+
+/**
+ * Override or insert variables into templates before other preprocess functions have run.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered.
+ */
+function zen_preprocess(&$vars, $hook) {
+  // In D6, the page.tpl uses a different variable name to hold the classes.
+  $key = ($hook == 'page' || $hook == 'maintenance_page') ? 'body_classes' : 'classes';
+
+  // Create a D7-standard classes_array variable.
+  if (array_key_exists($key, $vars)) {
+    // Views (and possibly other modules) have templates with a $classes
+    // variable that isn't a string, so we leave those variables alone.
+    if (is_string($vars[$key])) {
+      $vars['classes_array'] = explode(' ', $hook . ' ' . $vars[$key]);
+      unset($vars[$key]);
+    }
+  }
+  else {
+    $vars['classes_array'] = array($hook);
+  }
+  // Add support for Skinr
+  if (!empty($vars['skinr']) && array_key_exists('classes_array', $vars)) {
+    $vars['classes_array'][] = $vars['skinr'];
+  }
+}
+
+/**
+ * Override or insert variables into the page templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("page" in this case.)
+ */
+function zen_preprocess_page(&$vars, $hook) {
+  // If the user is silly and enables Zen as the theme, add some styles.
+  if ($GLOBALS['theme'] == 'zen') {
+    include_once './' . _zen_path() . '/zen-internals/template.zen.inc';
+    _zen_preprocess_page($vars, $hook);
+  }
+  // Add conditional stylesheets.
+  elseif (!module_exists('conditional_styles')) {
+    $language = $GLOBALS['language']->direction == LANGUAGE_RTL ? '_rtl' : '';
+    $vars['conditional_styles'] = variable_get('conditional_styles_' . $GLOBALS['theme'] . $language, '');
+    $vars['styles'] .= $vars['conditional_styles'];
+  }
+
+  // Classes for body element. Allows advanced theming based on context
+  // (home page, node of certain type, etc.)
+  // Remove the mostly useless page-ARG0 class.
+  if ($index = array_search(preg_replace('![^abcdefghijklmnopqrstuvwxyz0-9-_]+!s', '', 'page-'. drupal_strtolower(arg(0))), $vars['classes_array'])) {
+    unset($vars['classes_array'][$index]);
+  }
+  if (!$vars['is_front']) {
+    // Add unique class for each page.
+    $path = drupal_get_path_alias($_GET['q']);
+    $vars['classes_array'][] = drupal_html_class('page-' . $path);
+    // Add unique class for each website section.
+    list($section, ) = explode('/', $path, 2);
+    if (arg(0) == 'node') {
+      if (arg(1) == 'add') {
+        $section = 'node-add';
+      }
+      elseif (is_numeric(arg(1)) && (arg(2) == 'edit' || arg(2) == 'delete')) {
+        $section = 'node-' . arg(2);
+      }
+    }
+    $vars['classes_array'][] = drupal_html_class('section-' . $section);
+  }
+  if (theme_get_setting('zen_wireframes')) {
+    $vars['classes_array'][] = 'with-wireframes'; // Optionally add the wireframes style.
+  }
+  // We need to re-do the $layout and body classes because
+  // template_preprocess_page() assumes sidebars are named 'left' and 'right'.
+  $vars['layout'] = 'none';
+  if (!empty($vars['sidebar_first'])) {
+    $vars['layout'] = 'first';
+  }
+  if (!empty($vars['sidebar_second'])) {
+    $vars['layout'] = ($vars['layout'] == 'first') ? 'both' : 'second';
+  }
+  // If the layout is 'none', then template_preprocess_page() will already have
+  // set a 'no-sidebars' class since it won't find a 'left' or 'right' sidebar.
+  if ($vars['layout'] != 'none') {
+    // Remove the incorrect 'no-sidebars' class.
+    if ($index = array_search('no-sidebars', $vars['classes_array'])) {
+      unset($vars['classes_array'][$index]);
+    }
+    // Set the proper layout body classes.
+    if ($vars['layout'] == 'both') {
+      $vars['classes_array'][] = 'two-sidebars';
+    }
+    else {
+      $vars['classes_array'][] = 'one-sidebar';
+      $vars['classes_array'][] = 'sidebar-' . $vars['layout'];
+    }
+  }
+  // Store the menu item since it has some useful information.
+  $vars['menu_item'] = menu_get_item();
+  switch ($vars['menu_item']['page_callback']) {
+    case 'views_page':
+      // Is this a Views page?
+      $vars['classes_array'][] = 'page-views';
+      break;
+    case 'page_manager_page_execute':
+    case 'page_manager_node_view':
+    case 'page_manager_contact_site':
+      // Is this a Panels page?
+      $vars['classes_array'][] = 'page-panels';
+      break;
+  }
+}
+
+/**
+ * Override or insert variables into the maintenance page template.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("maintenance_page" in this case.)
+ */
+function zen_preprocess_maintenance_page(&$vars, $hook) {
+  // If Zen is the maintenance theme, add some styles.
+  if ($GLOBALS['theme'] == 'zen') {
+    include_once './' . _zen_path() . '/zen-internals/template.zen.inc';
+    _zen_preprocess_page($vars, $hook);
+  }
+  // Add conditional stylesheets.
+  elseif (!module_exists('conditional_styles')) {
+    $language = $GLOBALS['language']->direction == LANGUAGE_RTL ? '_rtl' : '';
+    $vars['conditional_styles'] = variable_get('conditional_styles_' . $GLOBALS['theme'] . $language, '');
+    $vars['styles'] .= $vars['conditional_styles'];
+  }
+}
+
+/**
+ * Override or insert variables into the node templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("node" in this case.)
+ */
+function zen_preprocess_node(&$vars, $hook) {
+  // Create the build_mode variable.
+  switch ($vars['node']->build_mode) {
+    case NODE_BUILD_NORMAL:
+      if ($vars['node']->build_mode === NODE_BUILD_NORMAL) {
+        $vars['build_mode'] = $vars['teaser'] ? 'teaser' : 'full';
+      }
+      else {
+        $vars['build_mode'] = $vars['node']->build_mode;
+      }
+      break;
+    case NODE_BUILD_PREVIEW:
+      $vars['build_mode'] = 'preview';
+      break;
+    case NODE_BUILD_SEARCH_INDEX:
+      $vars['build_mode'] = 'search_index';
+      break;
+    case NODE_BUILD_SEARCH_RESULT:
+      $vars['build_mode'] = 'search_result';
+      break;
+    case NODE_BUILD_RSS:
+      $vars['build_mode'] = 'rss';
+      break;
+    case NODE_BUILD_PRINT:
+      $vars['build_mode'] = 'print';
+      break;
+    default:
+      $vars['build_mode'] = $vars['node']->build_mode;
+  }
+
+  // Create the user_picture variable.
+  $vars['user_picture'] = $vars['picture'];
+
+  // Create the Drupal 7 $display_submitted variable.
+  $vars['display_submitted'] = theme_get_setting('toggle_node_info_' . $vars['node']->type);
+
+  // Special classes for nodes.
+  // Class for node type: "node-type-page", "node-type-story", "node-type-my-custom-type", etc.
+  $vars['classes_array'][] = drupal_html_class('node-type-' . $vars['type']);
+  if ($vars['promote']) {
+    $vars['classes_array'][] = 'node-promoted';
+  }
+  if ($vars['sticky']) {
+    $vars['classes_array'][] = 'node-sticky';
+  }
+  if (!$vars['status']) {
+    $vars['classes_array'][] = 'node-unpublished';
+    $vars['unpublished'] = TRUE;
+  }
+  else {
+    $vars['unpublished'] = FALSE;
+  }
+  if ($vars['uid'] && $vars['uid'] == $GLOBALS['user']->uid) {
+    $vars['classes_array'][] = 'node-by-viewer'; // Node is authored by current user.
+  }
+  if ($vars['teaser']) {
+    $vars['classes_array'][] = 'node-teaser'; // Node is displayed as teaser.
+  }
+  if (isset($vars['preview'])) {
+    $vars['classes_array'][] = 'node-preview';
+  }
+  $vars['classes_array'][] = 'build-mode-' . $vars['build_mode'] ;
+}
+
+/**
+ * Override or insert variables into the comment templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("comment" in this case.)
+ */
+function zen_preprocess_comment(&$vars, $hook) {
+  include_once './' . _zen_path() . '/zen-internals/template.comment.inc';
+  _zen_preprocess_comment($vars, $hook);
+}
+
+/**
+ * Preprocess variables for region.tpl.php
+ *
+ * Prepare the values passed to the theme_region function to be passed into a
+ * pluggable template engine.
+ *
+ * @see region.tpl.php
+ */
+function zen_preprocess_region(&$vars, $hook) {
+  // Create the $content variable that templates expect.
+  $vars['content'] = $vars['elements']['#children'];
+  $vars['region'] = $vars['elements']['#region'];
+
+  // Setup the default classes.
+  $vars['classes_array'] = array('region', 'region-' . str_replace('_', '-', $vars['region']));
+
+  // Sidebar regions get a couple extra classes.
+  if (strpos($vars['region'], 'sidebar_') === 0) {
+    $vars['classes_array'][] = 'column';
+    $vars['classes_array'][] = 'sidebar';
+  }
+}
+
+/**
+ * Override or insert variables into the block templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("block" in this case.)
+ */
+function zen_preprocess_block(&$vars, $hook) {
+  $block = $vars['block'];
+
+  // Drupal 7 uses a $content variable instead of $block->content.
+  $vars['content'] = $block->content;
+  // Drupal 7 should use a $title variable instead of $block->subject.
+  $vars['title'] = $block->subject;
+
+  // Special classes for blocks.
+  $vars['classes_array'][] = 'block-' . $block->module;
+  // Classes describing the position of the block within the region.
+  if ($vars['block_id'] == 1) {
+    $vars['classes_array'][] = 'first';
+  }
+  if (!function_exists('context_blocks') && count(block_list($vars['block']->region)) == $vars['block_id']) {
+    $vars['classes_array'][] = 'last';
+  }
+  $vars['classes_array'][] = 'region-' . $vars['block_zebra'];
+  $vars['classes_array'][] = $vars['zebra'];
+  $vars['classes_array'][] = 'region-count-' . $vars['block_id'];
+  $vars['classes_array'][] = 'count-' . $vars['id'];
+
+  // Create the block ID.
+  $vars['block_html_id'] = 'block-' . $block->module . '-' . $block->delta;
+
+  $vars['edit_links_array'] = array();
+  if (theme_get_setting('zen_block_editing') && user_access('administer blocks')) {
+    include_once './' . _zen_path() . '/zen-internals/template.block-editing.inc';
+    zen_preprocess_block_editing($vars, $hook);
+    $vars['classes_array'][] = 'with-block-editing';
+  }
+}
+
+/**
+ * Override or insert variables into templates after preprocess functions have run.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered.
+ */
+function zen_process(&$vars, $hook) {
+  // Don't clobber Views 3 classes.
+  if (array_key_exists('classes_array', $vars) && !array_key_exists('classes', $vars)) {
+    $vars['classes'] = implode(' ', $vars['classes_array']);
+  }
+}
+
+/**
+ * Override or insert variables into the block templates after preprocess functions have run.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("block" in this case.)
+ */
+function zen_process_block(&$vars, $hook) {
+  $vars['edit_links'] = !empty($vars['edit_links_array']) ? '<div class="edit">' . implode(' ', $vars['edit_links_array']) . '</div>' : '';
+}
+
+if (!function_exists('drupal_html_class')) {
+  /**
+   * Prepare a string for use as a valid class name.
+   *
+   * Do not pass one string containing multiple classes as they will be
+   * incorrectly concatenated with dashes, i.e. "one two" will become "one-two".
+   *
+   * @param $class
+   *   The class name to clean.
+   * @return
+   *   The cleaned class name.
+   */
+  function drupal_html_class($class) {
+    // By default, we filter using Drupal's coding standards.
+    $class = strtr(drupal_strtolower($class), array(' ' => '-', '_' => '-', '/' => '-', '[' => '-', ']' => ''));
+
+    // http://www.w3.org/TR/CSS21/syndata.html#characters shows the syntax for valid
+    // CSS identifiers (including element names, classes, and IDs in selectors.)
+    //
+    // Valid characters in a CSS identifier are:
+    // - the hyphen (U+002D)
+    // - a-z (U+0030 - U+0039)
+    // - A-Z (U+0041 - U+005A)
+    // - the underscore (U+005F)
+    // - 0-9 (U+0061 - U+007A)
+    // - ISO 10646 characters U+00A1 and higher
+    // We strip out any character not in the above list.
+    $class = preg_replace('/[^\x{002D}\x{0030}-\x{0039}\x{0041}-\x{005A}\x{005F}\x{0061}-\x{007A}\x{00A1}-\x{FFFF}]/u', '', $class);
+
+    return $class;
+  }
+} /* End of drupal_html_class conditional definition. */
+
+if (!function_exists('drupal_html_id')) {
+  /**
+   * Prepare a string for use as a valid HTML ID and guarantee uniqueness.
+   *
+   * @param $id
+   *   The ID to clean.
+   * @return
+   *   The cleaned ID.
+   */
+  function drupal_html_id($id) {
+    $id = strtr(drupal_strtolower($id), array(' ' => '-', '_' => '-', '[' => '-', ']' => ''));
+
+    // As defined in http://www.w3.org/TR/html4/types.html#type-name, HTML IDs can
+    // only contain letters, digits ([0-9]), hyphens ("-"), underscores ("_"),
+    // colons (":"), and periods ("."). We strip out any character not in that
+    // list. Note that the CSS spec doesn't allow colons or periods in identifiers
+    // (http://www.w3.org/TR/CSS21/syndata.html#characters), so we strip those two
+    // characters as well.
+    $id = preg_replace('/[^A-Za-z0-9\-_]/', '', $id);
+
+    return $id;
+  }
+} /* End of drupal_html_id conditional definition. */
+
+/**
+ * Returns the path to the Zen theme.
+ *
+ * drupal_get_filename() is broken; see #341140. When that is fixed in Drupal 6,
+ * replace _zen_path() with drupal_get_path('theme', 'zen').
+ */
+function _zen_path() {
+  static $path = FALSE;
+  if (!$path) {
+    $matches = drupal_system_listing('zen\.info$', 'themes', 'name', 0);
+    if (!empty($matches['zen']->filename)) {
+      $path = dirname($matches['zen']->filename);
+    }
+  }
+  return $path;
+}
diff --git a/drupal/sites/all/themes/zen/templates/block.tpl.php b/drupal/sites/all/themes/zen/templates/block.tpl.php
new file mode 100644
index 0000000..607ae98
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/block.tpl.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * @file
+ * Theme implementation to display a block.
+ *
+ * Available variables:
+ * - $title: Block title.
+ * - $content: Block content.
+ * - $block->module: Module that generated the block.
+ * - $block->delta: An ID for the block, unique within each module.
+ * - $block->region: The block region embedding the current block.
+ * - $edit_links: A list of contextual links for the block. It can be
+ *   manipulated through the variable $edit_links_array from preprocess
+ *   functions.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - block: The current template type, i.e., "theming hook".
+ *   - block-[module]: The module generating the block. For example, the user
+ *     module is responsible for handling the default user navigation block. In
+ *     that case the class would be "block-user".
+ *   - first: The first block in the region.
+ *   - last: The last block in the region.
+ *   - region-count-[x]: The position of the block in the list of blocks in the
+ *     current region.
+ *   - region-odd: An odd-numbered block of the list of blocks in the current
+ *     region.
+ *   - region-even: An even-numbered block of the list of blocks in the current
+ *     region.
+ *   - count-[x]: The position of the block in the list of blocks on the current
+ *     page.
+ *   - odd: An odd-numbered block of the list of blocks on the current page.
+ *   - even: An even-numbered block of the list of blocks on the current page.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $edit_links_array: An array of contextual links for the block.
+ * - $block_zebra: Outputs 'odd' and 'even' dependent on each block region.
+ * - $zebra: Same output as $block_zebra but independent of any block region.
+ * - $block_id: Counter dependent on each block region.
+ * - $id: Same output as $block_id but independent of any block region.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ * - $is_admin: Flags true when the current user is an administrator.
+ * - $block_html_id: A valid HTML ID and guaranteed unique.
+ *
+ * @see template_preprocess()
+ * @see zen_preprocess()
+ * @see template_preprocess_block()
+ * @see zen_preprocess_block()
+ * @see zen_process()
+ */
+?>
+<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>">
+  <?php if ($title): ?>
+    <h2 class="title"><?php print $title; ?></h2>
+  <?php endif; ?>
+
+  <div class="content">
+    <?php print $content; ?>
+  </div>
+
+  <?php print $edit_links; ?>
+</div><!-- /.block -->
diff --git a/drupal/sites/all/themes/zen/templates/comment-wrapper.tpl.php b/drupal/sites/all/themes/zen/templates/comment-wrapper.tpl.php
new file mode 100644
index 0000000..3cc2cba
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/comment-wrapper.tpl.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * @file
+ * Default theme implementation to wrap comments.
+ *
+ * Available variables:
+ * - $content: All comments for a given page. Also contains sorting controls
+ *   and comment forms if the site is configured for it.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default value has the following:
+ *   - comment-wrapper: The current template type, i.e., "theming hook".
+ *
+ * The following variables are provided for contextual information.
+ * - $node: Node object the comments are attached to.
+ * The constants below the variables show the possible values and should be
+ * used for comparison.
+ * - $display_mode
+ *   - COMMENT_MODE_FLAT_COLLAPSED
+ *   - COMMENT_MODE_FLAT_EXPANDED
+ *   - COMMENT_MODE_THREADED_COLLAPSED
+ *   - COMMENT_MODE_THREADED_EXPANDED
+ * - $display_order
+ *   - COMMENT_ORDER_NEWEST_FIRST
+ *   - COMMENT_ORDER_OLDEST_FIRST
+ * - $comment_controls_state
+ *   - COMMENT_CONTROLS_ABOVE
+ *   - COMMENT_CONTROLS_BELOW
+ *   - COMMENT_CONTROLS_ABOVE_BELOW
+ *   - COMMENT_CONTROLS_HIDDEN
+ *
+ * Other variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * @see template_preprocess_comment_wrapper()
+ */
+?>
+<div id="comments" class="<?php print $classes; ?>">
+  <?php if ($node->type != 'forum'): ?>
+    <h2 class="title"><?php print t('Comments'); ?></h2>
+  <?php endif; ?>
+
+  <?php print $content; ?>
+</div>
diff --git a/drupal/sites/all/themes/zen/templates/comment.tpl.php b/drupal/sites/all/themes/zen/templates/comment.tpl.php
new file mode 100644
index 0000000..ecfa136
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/comment.tpl.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * @file
+ * Default theme implementation for comments.
+ *
+ * Available variables:
+ * - $author: Comment author. Can be link or plain text.
+ * - $content: Body of the comment.
+ * - $created: Formatted date and time for when the comment was created.
+ *   Preprocess functions can reformat it by calling format_date() with the
+ *   desired parameters on the $comment->timestamp variable.
+ * - $new: New comment marker.
+ * - $picture: Authors picture.
+ * - $signature: Authors signature.
+ * - $status: Comment status. Possible values are:
+ *   comment-unpublished, comment-published or comment-preview.
+ * - $title: Linked title.
+ * - $links: Various operational links.
+ * - $unpublished: An unpublished comment visible only to administrators.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the following:
+ *   - comment: The current template type, i.e., "theming hook".
+ *   - comment-by-anonymous: Comment by an unregistered user.
+ *   - comment-by-node-author: Comment by the author of the parent node.
+ *   - comment-preview: When previewing a new or edited comment.
+ *   - first: The first comment in the list of displayed comments.
+ *   - last: The last comment in the list of displayed comments.
+ *   - odd: An odd-numbered comment in the list of displayed comments.
+ *   - even: An even-numbered comment in the list of displayed comments.
+ *   The following applies only to viewers who are registered users:
+ *   - comment-by-viewer: Comment by the user currently viewing the page.
+ *   - comment-unpublished: An unpublished comment visible only to administrators.
+ *   - comment-new: New comment since the last visit.
+ *
+ * These two variables are provided for context:
+ * - $comment: Full comment object.
+ * - $node: Node object the comments are attached to.
+ *
+ * Other variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * The following variables are deprecated and will be removed in Drupal 7:
+ * - $date: Formatted date and time for when the comment was created.
+ * - $submitted: By line with date and time.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_comment()
+ * @see zen_preprocess()
+ * @see zen_preprocess_comment()
+ * @see zen_process()
+ */
+?>
+<div class="<?php print $classes; ?> clearfix">
+  <?php print $picture; ?>
+
+  <?php if ($title): ?>
+    <h3 class="title">
+      <?php print $title; ?>
+      <?php if ($new): ?>
+        <span class="new"><?php print $new; ?></span>
+      <?php endif; ?>
+    </h3>
+  <?php elseif ($new): ?>
+    <div class="new"><?php print $new; ?></div>
+  <?php endif; ?>
+
+  <?php if ($unpublished): ?>
+    <div class="unpublished"><?php print t('Unpublished'); ?></div>
+  <?php endif; ?>
+
+  <div class="submitted">
+    <?php
+      print t('Submitted by !username on !datetime.',
+        array('!username' => $author, '!datetime' => $created));
+    ?>
+  </div>
+
+  <div class="content">
+    <?php print $content; ?>
+    <?php if ($signature): ?>
+      <div class="user-signature clearfix">
+        <?php print $signature; ?>
+      </div>
+    <?php endif; ?>
+  </div>
+
+  <?php print $links; ?>
+</div><!-- /.comment -->
diff --git a/drupal/sites/all/themes/zen/templates/maintenance-page.tpl.php b/drupal/sites/all/themes/zen/templates/maintenance-page.tpl.php
new file mode 100644
index 0000000..5eff548
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/maintenance-page.tpl.php
@@ -0,0 +1,107 @@
+<?php
+/**
+ * @file maintenance-page.tpl.php
+ *
+ * Theme implementation to display a single Drupal page while off-line.
+ *
+ * All the available variables are mirrored in page.tpl.php. Some may be left
+ * blank but they are provided for consistency.
+ *
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_maintenance_page()
+ */
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" lang="<?php print $language->language; ?>" dir="<?php print $language->dir; ?>">
+
+<head>
+  <title><?php print $head_title; ?></title>
+  <?php print $head; ?>
+  <?php print $styles; ?>
+  <?php print $scripts; ?>
+</head>
+<body class="<?php print $classes; ?>">
+
+  <div id="page-wrapper"><div id="page">
+
+    <div id="header"><div class="section clearfix">
+
+      <?php if ($logo): ?>
+        <a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"><img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /></a>
+      <?php endif; ?>
+
+      <?php if ($site_name || $site_slogan): ?>
+        <div id="name-and-slogan">
+          <?php if ($site_name): ?>
+            <div id="site-name"><strong>
+              <a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>" rel="home">
+              <?php print $site_name; ?>
+              </a>
+            </strong></div>
+          <?php endif; ?>
+          <?php if ($site_slogan): ?>
+            <div id="site-slogan"><?php print $site_slogan; ?></div>
+          <?php endif; ?>
+        </div><!-- /#name-and-slogan -->
+      <?php endif; ?>
+
+      <?php print $header; ?>
+
+    </div></div><!-- /.section, /#header -->
+
+    <div id="main-wrapper"><div id="main" class="clearfix<?php if ($navigation) { print ' with-navigation'; } ?>">
+
+      <div id="content" class="column"><div class="section">
+
+        <?php print $highlight; ?>
+
+        <?php if ($title): ?>
+          <h1 class="title"><?php print $title; ?></h1>
+        <?php endif; ?>
+        <?php if ($messages): print $messages; endif; ?>
+
+        <?php print $content_top; ?>
+
+        <div id="content-area">
+          <?php print $content; ?>
+        </div>
+
+        <?php print $content_bottom; ?>
+
+      </div></div><!-- /.section, /#content -->
+
+      <?php if ($navigation): ?>
+        <div id="navigation"><div class="section clearfix">
+
+          <?php print $navigation; ?>
+
+        </div></div><!-- /.section, /#navigation -->
+      <?php endif; ?>
+
+      <?php print $sidebar_first; ?>
+
+      <?php print $sidebar_second; ?>
+
+    </div></div><!-- /#main, /#main-wrapper -->
+
+    <?php if ($footer || $footer_message): ?>
+      <div id="footer"><div class="section">
+
+        <?php if ($footer_message): ?>
+          <div id="footer-message"><?php print $footer_message; ?></div>
+        <?php endif; ?>
+
+        <?php print $footer; ?>
+
+      </div></div><!-- /.section, /#footer -->
+    <?php endif; ?>
+
+  </div></div><!-- /#page, /#page-wrapper -->
+
+  <?php print $page_closure; ?>
+
+  <?php print $closure; ?>
+
+</body>
+</html>
diff --git a/drupal/sites/all/themes/zen/templates/node.tpl.php b/drupal/sites/all/themes/zen/templates/node.tpl.php
new file mode 100644
index 0000000..9aba644
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/node.tpl.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * @file
+ * Theme implementation to display a node.
+ *
+ * Available variables:
+ * - $title: the (sanitized) title of the node.
+ * - $content: Node body or teaser depending on $teaser flag.
+ * - $user_picture: The node author's picture from user-picture.tpl.php.
+ * - $date: Formatted creation date. Preprocess functions can reformat it by
+ *   calling format_date() with the desired parameters on the $created variable.
+ * - $name: Themed username of node author output from theme_username().
+ * - $node_url: Direct url of the current node.
+ * - $terms: the themed list of taxonomy term links output from theme_links().
+ * - $display_submitted: whether submission information should be displayed.
+ * - $submitted: Themed submission information output from
+ *   theme_node_submitted().
+ * - $links: Themed links like "Read more", "Add new comment", etc. output
+ *   from theme_links().
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - node: The current template type, i.e., "theming hook".
+ *   - node-[type]: The current node type. For example, if the node is a
+ *     "Blog entry" it would result in "node-blog". Note that the machine
+ *     name will often be in a short form of the human readable label.
+ *   - node-teaser: Nodes in teaser form.
+ *   - node-preview: Nodes in preview mode.
+ *   The following are controlled through the node publishing options.
+ *   - node-promoted: Nodes promoted to the front page.
+ *   - node-sticky: Nodes ordered above other non-sticky nodes in teaser
+ *     listings.
+ *   - node-unpublished: Unpublished nodes visible only to administrators.
+ *   The following applies only to viewers who are registered users:
+ *   - node-by-viewer: Node is authored by the user currently viewing the page.
+ *
+ * Other variables:
+ * - $node: Full node object. Contains data that may not be safe.
+ * - $type: Node type, i.e. story, page, blog, etc.
+ * - $comment_count: Number of comments attached to the node.
+ * - $uid: User ID of the node author.
+ * - $created: Time the node was published formatted in Unix timestamp.
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
+ *   teaser listings.
+ * - $id: Position of the node. Increments each time it's output.
+ *
+ * Node status variables:
+ * - $build_mode: Build mode, e.g. 'full', 'teaser'...
+ * - $teaser: Flag for the teaser state (shortcut for $build_mode == 'teaser').
+ * - $page: Flag for the full page state.
+ * - $promote: Flag for front page promotion state.
+ * - $sticky: Flags for sticky post setting.
+ * - $status: Flag for published status.
+ * - $comment: State of comment settings for the node.
+ * - $readmore: Flags true if the teaser content of the node cannot hold the
+ *   main body content.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ * - $is_admin: Flags true when the current user is an administrator.
+ *
+ * The following variable is deprecated and will be removed in Drupal 7:
+ * - $picture: This variable has been renamed $user_picture in Drupal 7.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_node()
+ * @see zen_preprocess()
+ * @see zen_preprocess_node()
+ * @see zen_process()
+ */
+?>
+<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix">
+  <?php print $user_picture; ?>
+
+  <?php if (!$page && $title): ?>
+    <h2 class="title"><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
+  <?php endif; ?>
+
+  <?php if ($unpublished): ?>
+    <div class="unpublished"><?php print t('Unpublished'); ?></div>
+  <?php endif; ?>
+
+  <?php if ($display_submitted || $terms): ?>
+    <div class="meta">
+      <?php if ($display_submitted): ?>
+        <span class="submitted">
+          <?php print $submitted; ?>
+        </span>
+      <?php endif; ?>
+
+      <?php if ($terms): ?>
+        <div class="terms terms-inline"><?php print $terms; ?></div>
+      <?php endif; ?>
+    </div>
+  <?php endif; ?>
+
+  <div class="content">
+    <?php print $content; ?>
+  </div>
+
+  <?php print $links; ?>
+</div><!-- /.node -->
diff --git a/drupal/sites/all/themes/zen/templates/page.tpl.php b/drupal/sites/all/themes/zen/templates/page.tpl.php
new file mode 100644
index 0000000..f29d7f5
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/page.tpl.php
@@ -0,0 +1,252 @@
+<?php
+/**
+ * @file
+ * Theme implementation to display a single Drupal page.
+ *
+ * Available variables:
+ *
+ * General utility variables:
+ * - $base_path: The base URL path of the Drupal installation. At the very
+ *   least, this will always default to /.
+ * - $css: An array of CSS files for the current page.
+ * - $directory: The directory the template is located in, e.g. modules/system
+ *   or themes/garland.
+ * - $is_front: TRUE if the current page is the front page. Used to toggle the mission statement.
+ * - $logged_in: TRUE if the user is registered and signed in.
+ * - $is_admin: TRUE if the user has permission to access administration pages.
+ *
+ * Page metadata:
+ * - $language: (object) The language the site is being displayed in.
+ *   $language->language contains its textual representation.
+ *   $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
+ * - $head_title: A modified version of the page title, for use in the TITLE tag.
+ * - $head: Markup for the HEAD section (including meta tags, keyword tags, and
+ *   so on).
+ * - $styles: Style tags necessary to import all CSS files for the page.
+ * - $scripts: Script tags necessary to load the JavaScript files and settings
+ *   for the page.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It should be placed within the <body> tag. When selecting through CSS
+ *   it's recommended that you use the body tag, e.g., "body.front". It can be
+ *   manipulated through the variable $classes_array from preprocess functions.
+ *   The default values can be one or more of the following:
+ *   - front: Page is the home page.
+ *   - not-front: Page is not the home page.
+ *   - logged-in: The current viewer is logged in.
+ *   - not-logged-in: The current viewer is not logged in.
+ *   - node-type-[node type]: When viewing a single node, the type of that node.
+ *     For example, if the node is a "Blog entry" it would result in "node-type-blog".
+ *     Note that the machine name will often be in a short form of the human readable label.
+ *   - page-views: Page content is generated from Views. Note: a Views block
+ *     will not cause this class to appear.
+ *   - page-panels: Page content is generated from Panels. Note: a Panels block
+ *     will not cause this class to appear.
+ *   The following only apply with the default 'sidebar_first' and 'sidebar_second' block regions:
+ *     - two-sidebars: When both sidebars have content.
+ *     - no-sidebars: When no sidebar content exists.
+ *     - one-sidebar and sidebar-first or sidebar-second: A combination of the
+ *       two classes when only one of the two sidebars have content.
+ * - $node: Full node object. Contains data that may not be safe. This is only
+ *   available if the current page is on the node's primary url.
+ * - $menu_item: (array) A page's menu item. This is only available if the
+ *   current page is in the menu.
+ *
+ * Site identity:
+ * - $front_page: The URL of the front page. Use this instead of $base_path,
+ *   when linking to the front page. This includes the language domain or prefix.
+ * - $logo: The path to the logo image, as defined in theme configuration.
+ * - $site_name: The name of the site, empty when display has been disabled
+ *   in theme settings.
+ * - $site_slogan: The slogan of the site, empty when display has been disabled
+ *   in theme settings.
+ * - $mission: The text of the site mission, empty when display has been disabled
+ *   in theme settings.
+ *
+ * Navigation:
+ * - $search_box: HTML to display the search box, empty if search has been disabled.
+ * - $primary_links (array): An array containing the Primary menu links for the
+ *   site, if they have been configured.
+ * - $secondary_links (array): An array containing the Secondary menu links for
+ *   the site, if they have been configured.
+ * - $breadcrumb: The breadcrumb trail for the current page.
+ *
+ * Page content (in order of occurrence in the default page.tpl.php):
+ * - $title: The page title, for use in the actual HTML content.
+ * - $messages: HTML for status and error messages. Should be displayed prominently.
+ * - $tabs: Tabs linking to any sub-pages beneath the current page (e.g., the
+ *   view and edit tabs when displaying a node).
+ * - $help: Dynamic help text, mostly for admin pages.
+ * - $content: The main content of the current page.
+ * - $feed_icons: A string of all feed icons for the current page.
+ *
+ * Footer/closing data:
+ * - $footer_message: The footer message as defined in the admin settings.
+ * - $closure: Final closing markup from any modules that have altered the page.
+ *   This variable should always be output last, after all other dynamic content.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * Regions:
+ * - $content_top: Items to appear above the main content of the current page.
+ * - $content_bottom: Items to appear below the main content of the current page.
+ * - $navigation: Items for the navigation bar.
+ * - $sidebar_first: Items for the first sidebar.
+ * - $sidebar_second: Items for the second sidebar.
+ * - $header: Items for the header region.
+ * - $footer: Items for the footer region.
+ * - $page_closure: Items to appear below the footer.
+ *
+ * The following variables are deprecated and will be removed in Drupal 7:
+ * - $body_classes: This variable has been renamed $classes in Drupal 7.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_page()
+ * @see zen_preprocess()
+ * @see zen_process()
+ */
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" lang="<?php print $language->language; ?>" dir="<?php print $language->dir; ?>">
+
+<head>
+  <title><?php print $head_title; ?></title>
+  <?php print $head; ?>
+  <?php print $styles; ?>
+  <?php print $scripts; ?>
+</head>
+<body class="<?php print $classes; ?>">
+
+  <?php if ($primary_links): ?>
+    <div id="skip-link"><a href="#main-menu"><?php print t('Jump to Navigation'); ?></a></div>
+  <?php endif; ?>
+
+  <div id="page-wrapper"><div id="page">
+
+    <div id="header"><div class="section clearfix">
+
+      <?php if ($logo): ?>
+        <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"><img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /></a>
+      <?php endif; ?>
+
+      <?php if ($site_name || $site_slogan): ?>
+        <div id="name-and-slogan">
+          <?php if ($site_name): ?>
+            <?php if ($title): ?>
+              <div id="site-name"><strong>
+                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+              </strong></div>
+            <?php else: /* Use h1 when the content title is empty */ ?>
+              <h1 id="site-name">
+                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+              </h1>
+            <?php endif; ?>
+          <?php endif; ?>
+
+          <?php if ($site_slogan): ?>
+            <div id="site-slogan"><?php print $site_slogan; ?></div>
+          <?php endif; ?>
+        </div><!-- /#name-and-slogan -->
+      <?php endif; ?>
+
+      <?php if ($search_box): ?>
+        <div id="search-box"><?php print $search_box; ?></div>
+      <?php endif; ?>
+
+      <?php print $header; ?>
+
+    </div></div><!-- /.section, /#header -->
+
+    <div id="main-wrapper"><div id="main" class="clearfix<?php if ($primary_links || $navigation) { print ' with-navigation'; } ?>">
+
+      <div id="content" class="column"><div class="section">
+
+        <?php if ($mission): ?>
+          <div id="mission"><?php print $mission; ?></div>
+        <?php endif; ?>
+
+        <?php print $highlight; ?>
+
+        <?php print $breadcrumb; ?>
+        <?php if ($title): ?>
+          <h1 class="title"><?php print $title; ?></h1>
+        <?php endif; ?>
+        <?php print $messages; ?>
+        <?php if ($tabs): ?>
+          <div class="tabs"><?php print $tabs; ?></div>
+        <?php endif; ?>
+        <?php print $help; ?>
+
+        <?php print $content_top; ?>
+
+        <div id="content-area">
+          <?php print $content; ?>
+        </div>
+
+        <?php print $content_bottom; ?>
+
+        <?php if ($feed_icons): ?>
+          <div class="feed-icons"><?php print $feed_icons; ?></div>
+        <?php endif; ?>
+
+      </div></div><!-- /.section, /#content -->
+
+      <?php if ($primary_links || $navigation): ?>
+        <div id="navigation"><div class="section clearfix">
+
+          <?php print theme(array('links__system_main_menu', 'links'), $primary_links,
+            array(
+              'id' => 'main-menu',
+              'class' => 'links clearfix',
+            ),
+            array(
+              'text' => t('Main menu'),
+              'level' => 'h2',
+              'class' => 'element-invisible',
+            ));
+          ?>
+
+          <?php print $navigation; ?>
+
+        </div></div><!-- /.section, /#navigation -->
+      <?php endif; ?>
+
+      <?php print $sidebar_first; ?>
+
+      <?php print $sidebar_second; ?>
+
+    </div></div><!-- /#main, /#main-wrapper -->
+
+    <?php if ($footer || $footer_message || $secondary_links): ?>
+      <div id="footer"><div class="section">
+
+        <?php print theme(array('links__system_secondary_menu', 'links'), $secondary_links,
+          array(
+            'id' => 'secondary-menu',
+            'class' => 'links clearfix',
+          ),
+          array(
+            'text' => t('Secondary menu'),
+            'level' => 'h2',
+            'class' => 'element-invisible',
+          ));
+        ?>
+
+        <?php if ($footer_message): ?>
+          <div id="footer-message"><?php print $footer_message; ?></div>
+        <?php endif; ?>
+
+        <?php print $footer; ?>
+
+      </div></div><!-- /.section, /#footer -->
+    <?php endif; ?>
+
+  </div></div><!-- /#page, /#page-wrapper -->
+
+  <?php print $page_closure; ?>
+
+  <?php print $closure; ?>
+
+</body>
+</html>
diff --git a/drupal/sites/all/themes/zen/templates/region-sidebar.tpl.php b/drupal/sites/all/themes/zen/templates/region-sidebar.tpl.php
new file mode 100644
index 0000000..77c8c42
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/region-sidebar.tpl.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @file
+ * Default theme implementation to display a region.
+ *
+ * Available variables:
+ * - $content: The content for this region, typically blocks.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the following:
+ *   - region: The current template type, i.e., "theming hook".
+ *   - region-[name]: The name of the region with underscores replaced with
+ *     dashes. For example, the page_top region would have a region-page-top class.
+ * - $region: The name of the region variable as defined in the theme's .info file.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $is_admin: Flags true when the current user is an administrator.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ *
+ * @see template_preprocess()
+ * @see zen_preprocess()
+ * @see zen_preprocess_region()
+ * @see zen_process()
+ */
+?>
+<div class="<?php print $classes; ?>"><div class="section">
+  <?php print $content; ?>
+</div></div><!-- /.section, /.region -->
diff --git a/drupal/sites/all/themes/zen/templates/region.tpl.php b/drupal/sites/all/themes/zen/templates/region.tpl.php
new file mode 100644
index 0000000..b0cf3d9
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/region.tpl.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @file
+ * Default theme implementation to display a region.
+ *
+ * Available variables:
+ * - $content: The content for this region, typically blocks.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the following:
+ *   - region: The current template type, i.e., "theming hook".
+ *   - region-[name]: The name of the region with underscores replaced with
+ *     dashes. For example, the page_top region would have a region-page-top class.
+ * - $region: The name of the region variable as defined in the theme's .info file.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $is_admin: Flags true when the current user is an administrator.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ *
+ * @see template_preprocess()
+ * @see zen_preprocess()
+ * @see zen_preprocess_region()
+ * @see zen_process()
+ */
+?>
+<div class="<?php print $classes; ?>">
+  <?php print $content; ?>
+</div><!-- /.region -->
diff --git a/drupal/sites/all/themes/zen/templates/views-view.tpl.php b/drupal/sites/all/themes/zen/templates/views-view.tpl.php
new file mode 100644
index 0000000..9d722a6
--- /dev/null
+++ b/drupal/sites/all/themes/zen/templates/views-view.tpl.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * @file
+ * Main view template
+ *
+ * Variables available:
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - view
+ *   - view-[name]
+ *   - view-id-[name]
+ *   - view-display-id-[display id]
+ *   - view-dom-id-[dom id]
+ * - $css_name: A css-safe version of the view name.
+ * - $header: The view header
+ * - $footer: The view footer
+ * - $rows: The results of the view query, if any
+ * - $empty: The empty text to display if the view is empty
+ * - $pager: The pager next/prev links to display, if any
+ * - $exposed: Exposed widget form/info to display
+ * - $feed_icon: Feed icon to display, if any
+ * - $more: A link to view more, if any
+ * - $admin_links: A rendered list of administrative links
+ * - $admin_links_raw: A list of administrative links suitable for theme('links')
+ *
+ * @ingroup views_templates
+ */
+?>
+<div class="<?php print $classes; ?>">
+  <?php if ($admin_links): ?>
+    <div class="views-admin-links views-hide">
+      <?php print $admin_links; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($header): ?>
+    <div class="view-header">
+      <?php print $header; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($exposed): ?>
+    <div class="view-filters">
+      <?php print $exposed; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($attachment_before): ?>
+    <div class="attachment attachment-before">
+      <?php print $attachment_before; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($rows): ?>
+    <div class="view-content">
+      <?php print $rows; ?>
+    </div>
+  <?php elseif ($empty): ?>
+    <div class="view-empty">
+      <?php print $empty; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($pager): ?>
+    <?php print $pager; ?>
+  <?php endif; ?>
+
+  <?php if ($attachment_after): ?>
+    <div class="attachment attachment-after">
+      <?php print $attachment_after; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($more): ?>
+    <?php print $more; ?>
+  <?php endif; ?>
+
+  <?php if ($footer): ?>
+    <div class="view-footer">
+      <?php print $footer; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($feed_icon): ?>
+    <div class="feed-icon">
+      <?php print $feed_icon; ?>
+    </div>
+  <?php endif; ?>
+
+</div><!-- /.view -->
diff --git a/drupal/sites/all/themes/zen/theme-settings.php b/drupal/sites/all/themes/zen/theme-settings.php
new file mode 100644
index 0000000..c769a44
--- /dev/null
+++ b/drupal/sites/all/themes/zen/theme-settings.php
@@ -0,0 +1,127 @@
+<?php
+// Include the definition of zen_theme_get_default_settings().
+include_once './' . drupal_get_path('theme', 'zen') . '/zen-internals/template.theme-registry.inc';
+
+
+/**
+ * Implementation of THEMEHOOK_settings() function.
+ *
+ * @param $saved_settings
+ *   An array of saved settings for this theme.
+ * @param $subtheme_defaults
+ *   Allow a subtheme to override the default values.
+ * @return
+ *   A form array.
+ */
+function zen_settings($saved_settings, $subtheme_defaults = array()) {
+
+  // Add the form's CSS
+  drupal_add_css(drupal_get_path('theme', 'zen') . '/zen-internals/css/theme-settings.css', 'theme');
+
+  // Add javascript to show/hide optional settings
+  drupal_add_js(drupal_get_path('theme', 'zen') . '/zen-internals/js/theme-settings.js', 'theme');
+
+  // Get the default values from the .info file.
+  $defaults = zen_theme_get_default_settings('zen');
+
+  // Allow a subtheme to override the default values.
+  $defaults = array_merge($defaults, $subtheme_defaults);
+
+  // Merge the saved variables and their default values.
+  $settings = array_merge($defaults, $saved_settings);
+
+  /*
+   * Create the form using Forms API
+   */
+  $form['zen-div-opening'] = array(
+    '#value'         => '<div id="zen-settings">',
+  );
+
+  $form['zen_block_editing'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Show block editing on hover'),
+    '#description'   => t('When hovering over a block, privileged users will see block editing links.'),
+    '#default_value' => $settings['zen_block_editing'],
+  );
+
+  $form['breadcrumb'] = array(
+    '#type'          => 'fieldset',
+    '#title'         => t('Breadcrumb settings'),
+    '#attributes'    => array('id' => 'zen-breadcrumb'),
+  );
+  $form['breadcrumb']['zen_breadcrumb'] = array(
+    '#type'          => 'select',
+    '#title'         => t('Display breadcrumb'),
+    '#default_value' => $settings['zen_breadcrumb'],
+    '#options'       => array(
+                          'yes'   => t('Yes'),
+                          'admin' => t('Only in admin section'),
+                          'no'    => t('No'),
+                        ),
+  );
+  $form['breadcrumb']['zen_breadcrumb_separator'] = array(
+    '#type'          => 'textfield',
+    '#title'         => t('Breadcrumb separator'),
+    '#description'   => t('Text only. Don’t forget to include spaces.'),
+    '#default_value' => $settings['zen_breadcrumb_separator'],
+    '#size'          => 5,
+    '#maxlength'     => 10,
+    '#prefix'        => '<div id="div-zen-breadcrumb-collapse">', // jquery hook to show/hide optional widgets
+  );
+  $form['breadcrumb']['zen_breadcrumb_home'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Show home page link in breadcrumb'),
+    '#default_value' => $settings['zen_breadcrumb_home'],
+  );
+  $form['breadcrumb']['zen_breadcrumb_trailing'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Append a separator to the end of the breadcrumb'),
+    '#default_value' => $settings['zen_breadcrumb_trailing'],
+    '#description'   => t('Useful when the breadcrumb is placed just before the title.'),
+  );
+  $form['breadcrumb']['zen_breadcrumb_title'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Append the content title to the end of the breadcrumb'),
+    '#default_value' => $settings['zen_breadcrumb_title'],
+    '#description'   => t('Useful when the breadcrumb is not placed just before the title.'),
+    '#suffix'        => '</div>', // #div-zen-breadcrumb
+  );
+
+  $form['themedev'] = array(
+    '#type'          => 'fieldset',
+    '#title'         => t('Theme development settings'),
+    '#attributes'    => array('id' => 'zen-themedev'),
+  );
+  $form['themedev']['zen_rebuild_registry'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Rebuild theme registry on every page.'),
+    '#default_value' => $settings['zen_rebuild_registry'],
+    '#description'   => t('During theme development, it can be very useful to continuously <a href="!link">rebuild the theme registry</a>. WARNING: this is a huge performance penalty and must be turned off on production websites.', array('!link' => 'http://drupal.org/node/173880#theme-registry')),
+    '#prefix'        => '<div id="div-zen-registry"><strong>' . t('Theme registry:') . '</strong>',
+    '#suffix'        => '</div>',
+  );
+  $form['themedev']['zen_layout'] = array(
+    '#type'          => 'radios',
+    '#title'         => t('Layout method'),
+    '#options'       => array(
+                          'zen-columns-liquid' => t('Liquid layout') . ' <small>(layout-liquid.css)</small>',
+                          'zen-columns-fixed' => t('Fixed layout') . ' <small>(layout-fixed.css)</small>',
+                        ),
+    '#default_value' => $settings['zen_layout'],
+  );
+  $form['themedev']['zen_wireframes'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Display borders around main layout elements'),
+    '#default_value' => $settings['zen_wireframes'],
+    '#description'   => t('<a href="!link">Wireframes</a> are useful when prototyping a website.', array('!link' => 'http://www.boxesandarrows.com/view/html_wireframes_and_prototypes_all_gain_and_no_pain')),
+    '#prefix'        => '<div id="div-zen-wireframes"><strong>' . t('Wireframes:') . '</strong>',
+    '#suffix'        => '</div>',
+  );
+
+  $form['zen-div-closing'] = array(
+    '#value'         => '</div>',
+  );
+
+  // Return the form
+  return $form;
+}
diff --git a/drupal/sites/all/themes/zen/translations/de.po b/drupal/sites/all/themes/zen/translations/de.po
new file mode 100644
index 0000000..02e6f91
--- /dev/null
+++ b/drupal/sites/all/themes/zen/translations/de.po
@@ -0,0 +1,240 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  theme-settings.php,v 1.7 2009/08/12 06:49:46 johnalbin
+#  zen.info,v 1.8 2009/11/08 18:28:48 johnalbin
+#  STARTERKIT.info.txt,v 1.16 2009/11/10 07:40:15 johnalbin
+#  comment-wrapper.tpl.php,v 1.3 2009/11/01 19:47:40 johnalbin
+#  comment.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin
+#  node.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin
+#  maintenance-page.tpl.php,v 1.17 2009/11/04 20:49:23 johnalbin
+#  page.tpl.php,v 1.26 2009/11/05 13:54:57 johnalbin
+#  template.block-editing.inc,v 1.2 2009/09/07 10:03:59 johnalbin
+#  template.theme-registry.inc,v 1.7 2009/11/03 18:27:44 johnalbin
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Zen 6.x-2.x\n"
+"POT-Creation-Date: 2009-11-11 15:57+0800\n"
+"PO-Revision-Date: 2009-11-08 16:37+0100\n"
+"Last-Translator: Thomas Zahreddin <tz at it-arts.org>\n"
+"Language-Team: Thomas Zahreddin <tz at it-arts.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: Germany\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: theme-settings.php:44
+msgid "Show block editing on hover"
+msgstr "Für Blöck die Möglichkeit zum Editieren anzeigen, sobald die Maus kurz darüber ruht"
+
+#: theme-settings.php:45
+msgid "When hovering over a block, privileged users will see block editing links."
+msgstr "Für Blöck die Möglichkeit zum Editieren anzeigen, sobald die Maus kurz darüber ruht und der Benutzer die erforderlichen Rechte hat."
+
+#: theme-settings.php:51
+msgid "Breadcrumb settings"
+msgstr "Pfadnavigation Einstellungen"
+
+#: theme-settings.php:56
+msgid "Display breadcrumb"
+msgstr "Pfadnavigation"
+
+#: theme-settings.php:59
+msgid "Yes"
+msgstr "Ja"
+
+#: theme-settings.php:60
+msgid "Only in admin section"
+msgstr "Nur im Admin-Bereich"
+
+#: theme-settings.php:61
+msgid "No"
+msgstr "Nein"
+
+#: theme-settings.php:66
+msgid "Breadcrumb separator"
+msgstr "Pfadnavigation Separator"
+
+#: theme-settings.php:67
+msgid "Text only. Don’t forget to include spaces."
+msgstr "Nur Text. Vergessen Sie die Leerzeichen nicht."
+
+#: theme-settings.php:75
+msgid "Show home page link in breadcrumb"
+msgstr "Link zur Startseite in der Pfadnavigation"
+
+#: theme-settings.php:80
+msgid "Append a separator to the end of the breadcrumb"
+msgstr "Fügen Sie ein Trennzeichen am Ende der Pfadnavigation hinzu"
+
+#: theme-settings.php:82
+msgid "Useful when the breadcrumb is placed just before the title."
+msgstr "Nützlich, wenn die Pfadnavigation direkt vor dem Titel steht."
+
+#: theme-settings.php:86
+msgid "Append the content title to the end of the breadcrumb"
+msgstr "Fügen Sie den Titel am Ende der Pfadnavigation hinzu"
+
+#: theme-settings.php:88
+msgid "Useful when the breadcrumb is not placed just before the title."
+msgstr "Nützlich, wenn die Pfadnavigation nicht direkt vor dem Titel steht."
+
+#: theme-settings.php:94
+msgid "Theme development settings"
+msgstr "Theme-spezifische Einstellungen"
+
+#: theme-settings.php:99
+msgid "Rebuild theme registry on every page."
+msgstr "Theme-Registry neu aufbauen auf jeder Seite"
+
+#: theme-settings.php:101
+msgid "During theme development, it can be very useful to continuously <a href=\"!link\">rebuild the theme registry</a>. WARNING: this is a huge performance penalty and must be turned off on production websites."
+msgstr "Während der Entwicklung des Themes ist es sehr nützlich, um kontinuierlich <a href=\"!link\">die Theme-Registry neu zu erstellen.</a> WARNUNG: dies ist eine enorme Performance-Einbuße und müssen für den produktiven Betrieb ausgeschaltet."
+
+#: theme-settings.php:102
+msgid "Theme registry:"
+msgstr "Theme-Registry"
+
+#: theme-settings.php:107
+msgid "Layout method"
+msgstr "Layout-Methode"
+
+#: theme-settings.php:109
+msgid "Liquid layout"
+msgstr "Flexibles Layout"
+
+#: theme-settings.php:110
+msgid "Fixed layout"
+msgstr "Starres Layout"
+
+#: theme-settings.php:116
+msgid "Display borders around main layout elements"
+msgstr "Rahmen um die wichtigsten Layout-Elemente anzeigen"
+
+#: theme-settings.php:118
+msgid "<a href=\"!link\">Wireframes</a> are useful when prototyping a website."
+msgstr "<a href=\"!link\">Wireframes</a> werden gerne für die Konzeiption von websites eingesetzt."
+
+#: theme-settings.php:119
+msgid "Wireframes:"
+msgstr "Wireframes:"
+
+#: zen.info:0
+msgid "Zen"
+msgstr "Zen"
+
+#: zen.info:0
+msgid "Zen sub-themes are the ultimate starting themes for Drupal 6. Read the <a href=\"http://drupal.org/node/226507\">online docs</a> or the included README-FIRST.txt on how to create a sub-theme."
+msgstr "Zen Sub-Themes sind die absoluten Anfänger Themes für Drupal 6. Lesen Sie die <a href=\"http://drupal.org/node/226507\">Online-Dokumentation</a> oder die mitgelieferte README-FIRST.txt, wie ein Sub-Thema erstellt wird."
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "First sidebar"
+msgstr "First Seitenleiste"
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Second sidebar"
+msgstr "Second Seitenleiste"
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Navigation bar"
+msgstr "Navigationsleiste"
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Highlighted content"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Content top"
+msgstr "Inhalt oben"
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Content bottom"
+msgstr "Inhalt unten"
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Header"
+msgstr "Kopfbereich"
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Footer"
+msgstr "Fußbereich"
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Page closure"
+msgstr ""
+
+#: STARTERKIT/STARTERKIT.info:0
+msgid "Zen Sub-theme Starter Kit"
+msgstr ""
+
+#: STARTERKIT/STARTERKIT.info:0
+msgid "Read the <a href=\"http://drupal.org/node/226507\">online docs</a> or the included README.txt on how to create a Zen sub-theme."
+msgstr "Lesen Sie die <a href=\"http://drupal.org/node/226507\">Online-Dokumentation</a> oder die mitgelieferte README.txt, wie ein Sub-Thema erstellt wird."
+
+#: templates/comment-wrapper.tpl.php:43
+msgid "Comments"
+msgstr "Kommentare"
+
+#: templates/comment.tpl.php:72 templates/node.tpl.php:84
+msgid "Unpublished"
+msgstr "Unveröffentlicht"
+
+#: templates/comment.tpl.php:77
+msgid "Submitted by !username on !datetime."
+msgstr ""
+
+#: templates/maintenance-page.tpl.php:33;33;40 templates/page.tpl.php:126;126;134;138
+msgid "Home"
+msgstr "Startseite"
+
+#: templates/node.tpl.php:92
+msgid "Submitted by !username on !datetime"
+msgstr ""
+
+#: templates/page.tpl.php:118
+msgid "Jump to Navigation"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:22
+msgid "edit block"
+msgstr "Block bearbeiten"
+
+#: zen-internals/template.block-editing.inc:25
+msgid "edit the content of this block"
+msgstr "Bearbeiten Sie den Inhalt dieses Blocks"
+
+#: zen-internals/template.block-editing.inc:35
+msgid "configure"
+msgstr "konfigurieren"
+
+#: zen-internals/template.block-editing.inc:38
+msgid "configure this block"
+msgstr "konfigurieren dieses Blocks"
+
+#: zen-internals/template.block-editing.inc:50
+msgid "edit view"
+msgstr "Ansicht bearbeiten"
+
+#: zen-internals/template.block-editing.inc:53
+msgid "edit the view that defines this block"
+msgstr "Bearbeiten der Ansicht, die diesen Block definiert"
+
+#: zen-internals/template.block-editing.inc:65;79
+msgid "edit menu"
+msgstr "Bearbeiten Menü"
+
+#: zen-internals/template.block-editing.inc:68;82
+msgid "edit the menu that defines this block"
+msgstr "Bearbeiten des Menüs, das diesen Block definiert"
+
+#: zen-internals/template.theme-registry.inc:33
+msgid "For easier theme development, the theme registry is being rebuilt on every page request. It is <em>extremely</em> important to <a href=\"!link\">turn off this feature</a> on production websites."
+msgstr "Zur einfacheren Theme Entwicklung kann die Theme Registry für jede Anfrage neu aufgebaut werden. Es <em>extrem</em> wichtig <a href=\"!link\">diese Funktion</a> für produktive Websites auszuschalten."
+
diff --git a/drupal/sites/all/themes/zen/translations/hu.po b/drupal/sites/all/themes/zen/translations/hu.po
new file mode 100644
index 0000000..24fbf5c
--- /dev/null
+++ b/drupal/sites/all/themes/zen/translations/hu.po
@@ -0,0 +1,144 @@
+# Hungarian translation of Zen (6.x-2.0-beta1)
+# Copyright (c) 2009 by the Hungarian translation team
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Zen (6.x-2.0-beta1)\n"
+"POT-Creation-Date: 2009-12-17 18:09+0000\n"
+"PO-Revision-Date: 2009-12-17 11:03+0000\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+msgid "Home"
+msgstr "Címlap"
+msgid "Comments"
+msgstr "Hozzászólások"
+msgid "Yes"
+msgstr "Igen"
+msgid "No"
+msgstr "Nem"
+msgid "Header"
+msgstr "Fejléc"
+msgid "Footer"
+msgstr "Lábléc"
+msgid "configure"
+msgstr "beállítás"
+msgid "Breadcrumb settings"
+msgstr "Morzsa beállításai"
+msgid "Display breadcrumb"
+msgstr "Morzsa megjelenítése"
+msgid "Breadcrumb separator"
+msgstr "Morzsák közti elválasztó jel"
+msgid "Show home page link in breadcrumb"
+msgstr "Címlapra való hivatkozás megjelenítése a morzsában"
+msgid "Append a separator to the end of the breadcrumb"
+msgstr "Elválasztó hozzáadása a morzsa végéhez"
+msgid "Content top"
+msgstr "Tartalom teteje"
+msgid "Zen"
+msgstr "Zen"
+msgid "Unpublished"
+msgstr "Rejtett"
+msgid "edit block"
+msgstr "blokk szerkesztése"
+msgid "edit the content of this block"
+msgstr "a blokk tartalmának szerkesztése"
+msgid "configure this block"
+msgstr "blokk beállítása"
+msgid "edit view"
+msgstr "nézet szerkesztése"
+msgid "edit the view that defines this block"
+msgstr "a blokkot létrehozó nézet szerkesztése"
+msgid "edit menu"
+msgstr "menü szerkesztése"
+msgid "edit the menu that defines this block"
+msgstr "a blokkot létrehozó menü szerkesztése"
+msgid "Content bottom"
+msgstr "Tartalom alja"
+msgid "Show block editing on hover"
+msgstr "Blokkszerkesztés megjelenítése ha az egér a blokk fölött van"
+msgid ""
+"When hovering over a block, privileged users will see block editing "
+"links."
+msgstr ""
+"Ha az egér a blokk fölé kerül, a jogosult felhasználóknak "
+"megjelenik egy blokkszerkesztő hivatkozás."
+msgid "Only in admin section"
+msgstr "Csak az admin részeknél"
+msgid "Text only. Don’t forget to include spaces."
+msgstr "Csak szöveg. A szöközök fontosak."
+msgid "Useful when the breadcrumb is placed just before the title."
+msgstr "Hasznos, ha a morzsa pont a cím előtt van."
+msgid "Append the content title to the end of the breadcrumb"
+msgstr "Tartalom címének beillesztése a morzsa végére"
+msgid "Useful when the breadcrumb is not placed just before the title."
+msgstr "Hasznos, ha a morzsa nem pont a cím előtt van."
+msgid "Theme development settings"
+msgstr "Sminkfejlesztés beállításai"
+msgid "Rebuild theme registry on every page."
+msgstr "Smink gyorstár ürítése minden oldalletöltés esetén."
+msgid ""
+"During theme development, it can be very useful to continuously <a "
+"href=\"!link\">rebuild the theme registry</a>. WARNING: this is a huge "
+"performance penalty and must be turned off on production websites."
+msgstr ""
+"A smink fejlesztése során hasznos folyamatosan <a "
+"href=\"!link\">újraépíteni a smink gyorstárat</a>. "
+"FIGYELMEZTETÉS: erős teljesítményromlást eredményez, éles "
+"webhelyen ki kell kapcsolni."
+msgid "Theme registry:"
+msgstr "Smink gyorstár:"
+msgid "Layout method"
+msgstr "Felépítési mód"
+msgid "Liquid layout"
+msgstr "Rugalmas felépítés"
+msgid "Fixed layout"
+msgstr "Rögzített felépítés"
+msgid "Display borders around main layout elements"
+msgstr "Szegélyek megjelenítése a fő szerkezeti elemek körül"
+msgid ""
+"<a href=\"!link\">Wireframes</a> are useful when prototyping a "
+"website."
+msgstr ""
+"A <a href=\"!link\">drótvázak</a> prototípus oldalak "
+"létrehozásánál lehetnek hasznosak."
+msgid "Wireframes:"
+msgstr "Drótvázak"
+msgid ""
+"For easier theme development, the theme registry is being rebuilt on "
+"every page request. It is <em>extremely</em> important to <a "
+"href=\"!link\">turn off this feature</a> on production websites."
+msgstr ""
+"A könnyebb sminkfejlesztés érdekében a smink gyorsítótár minden "
+"oldal betöltésekor újra lesz építve. A nagymértékű "
+"teljesítményromlás elkerülésének érdekében "
+"<em>rendkívül</em> fontos ezt éles webhelyen <a "
+"href=\"!link\">kikapcsolni</a>."
+msgid "First sidebar"
+msgstr "Első oldalsáv"
+msgid "Second sidebar"
+msgstr "Második oldalsáv"
+msgid ""
+"Zen sub-themes are the ultimate starting themes for Drupal 6. Read the "
+"<a href=\"http://drupal.org/node/226507\">online docs</a> or the "
+"included README-FIRST.txt on how to create a sub-theme."
+msgstr ""
+"A Zen alsminkek kiváló kiinduló sminkek Drupal 6-hoz. Az alsminkek "
+"létrehozásához további információk találhatóak a <a "
+"href=\"http://drupal.org/node/226507\">dokumentációban</a>, vagy a "
+"README-FIRST.txt fájlban."
+msgid "Navigation bar"
+msgstr "Navigációs sáv"
+msgid "Highlighted content"
+msgstr "Kiemelt tartalom"
+msgid "Page closure"
+msgstr "Oldal befejezés"
+msgid "Submitted by !username on !datetime."
+msgstr "Beküldte !username - !datetime."
+msgid "Submitted by !username on !datetime"
+msgstr "Beküldte !username - !datetime"
+msgid "Jump to Navigation"
+msgstr "Ugrás a navigációra"
diff --git a/drupal/sites/all/themes/zen/translations/zen.pot b/drupal/sites/all/themes/zen/translations/zen.pot
new file mode 100644
index 0000000..fcb6748
--- /dev/null
+++ b/drupal/sites/all/themes/zen/translations/zen.pot
@@ -0,0 +1,237 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  theme-settings.php,v 1.7 2009/08/12 06:49:46 johnalbin
+#  zen.info,v 1.8 2009/11/08 18:28:48 johnalbin
+#  STARTERKIT.info.txt,v 1.16 2009/11/10 07:40:15 johnalbin
+#  comment-wrapper.tpl.php,v 1.3 2009/11/01 19:47:40 johnalbin
+#  comment.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin
+#  node.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin
+#  maintenance-page.tpl.php,v 1.17 2009/11/04 20:49:23 johnalbin
+#  page.tpl.php,v 1.26 2009/11/05 13:54:57 johnalbin
+#  template.block-editing.inc,v 1.2 2009/09/07 10:03:59 johnalbin
+#  template.theme-registry.inc,v 1.7 2009/11/03 18:27:44 johnalbin
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Zen 6.x-2.x\n"
+"POT-Creation-Date: 2009-11-11 15:57+0800\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: theme-settings.php:44
+msgid "Show block editing on hover"
+msgstr ""
+
+#: theme-settings.php:45
+msgid "When hovering over a block, privileged users will see block editing links."
+msgstr ""
+
+#: theme-settings.php:51
+msgid "Breadcrumb settings"
+msgstr ""
+
+#: theme-settings.php:56
+msgid "Display breadcrumb"
+msgstr ""
+
+#: theme-settings.php:59
+msgid "Yes"
+msgstr ""
+
+#: theme-settings.php:60
+msgid "Only in admin section"
+msgstr ""
+
+#: theme-settings.php:61
+msgid "No"
+msgstr ""
+
+#: theme-settings.php:66
+msgid "Breadcrumb separator"
+msgstr ""
+
+#: theme-settings.php:67
+msgid "Text only. Don’t forget to include spaces."
+msgstr ""
+
+#: theme-settings.php:75
+msgid "Show home page link in breadcrumb"
+msgstr ""
+
+#: theme-settings.php:80
+msgid "Append a separator to the end of the breadcrumb"
+msgstr ""
+
+#: theme-settings.php:82
+msgid "Useful when the breadcrumb is placed just before the title."
+msgstr ""
+
+#: theme-settings.php:86
+msgid "Append the content title to the end of the breadcrumb"
+msgstr ""
+
+#: theme-settings.php:88
+msgid "Useful when the breadcrumb is not placed just before the title."
+msgstr ""
+
+#: theme-settings.php:94
+msgid "Theme development settings"
+msgstr ""
+
+#: theme-settings.php:99
+msgid "Rebuild theme registry on every page."
+msgstr ""
+
+#: theme-settings.php:101
+msgid "During theme development, it can be very useful to continuously <a href=\"!link\">rebuild the theme registry</a>. WARNING: this is a huge performance penalty and must be turned off on production websites."
+msgstr ""
+
+#: theme-settings.php:102
+msgid "Theme registry:"
+msgstr ""
+
+#: theme-settings.php:107
+msgid "Layout method"
+msgstr ""
+
+#: theme-settings.php:109
+msgid "Liquid layout"
+msgstr ""
+
+#: theme-settings.php:110
+msgid "Fixed layout"
+msgstr ""
+
+#: theme-settings.php:116
+msgid "Display borders around main layout elements"
+msgstr ""
+
+#: theme-settings.php:118
+msgid "<a href=\"!link\">Wireframes</a> are useful when prototyping a website."
+msgstr ""
+
+#: theme-settings.php:119
+msgid "Wireframes:"
+msgstr ""
+
+#: zen.info:0
+msgid "Zen"
+msgstr ""
+
+#: zen.info:0
+msgid "Zen sub-themes are the ultimate starting themes for Drupal 6. Read the <a href=\"http://drupal.org/node/226507\">online docs</a> or the included README-FIRST.txt on how to create a sub-theme."
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "First sidebar"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Second sidebar"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Navigation bar"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Highlighted content"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Content top"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Content bottom"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Header"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Footer"
+msgstr ""
+
+#: zen.info:0 STARTERKIT/STARTERKIT.info:0
+msgid "Page closure"
+msgstr ""
+
+#: STARTERKIT/STARTERKIT.info:0
+msgid "Zen Sub-theme Starter Kit"
+msgstr ""
+
+#: STARTERKIT/STARTERKIT.info:0
+msgid "Read the <a href=\"http://drupal.org/node/226507\">online docs</a> or the included README.txt on how to create a Zen sub-theme."
+msgstr ""
+
+#: templates/comment-wrapper.tpl.php:43
+msgid "Comments"
+msgstr ""
+
+#: templates/comment.tpl.php:72 templates/node.tpl.php:84
+msgid "Unpublished"
+msgstr ""
+
+#: templates/comment.tpl.php:77
+msgid "Submitted by !username on !datetime."
+msgstr ""
+
+#: templates/maintenance-page.tpl.php:33;33;40 templates/page.tpl.php:126;126;134;138
+msgid "Home"
+msgstr ""
+
+#: templates/node.tpl.php:92
+msgid "Submitted by !username on !datetime"
+msgstr ""
+
+#: templates/page.tpl.php:118
+msgid "Jump to Navigation"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:22
+msgid "edit block"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:25
+msgid "edit the content of this block"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:35
+msgid "configure"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:38
+msgid "configure this block"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:50
+msgid "edit view"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:53
+msgid "edit the view that defines this block"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:65;79
+msgid "edit menu"
+msgstr ""
+
+#: zen-internals/template.block-editing.inc:68;82
+msgid "edit the menu that defines this block"
+msgstr ""
+
+#: zen-internals/template.theme-registry.inc:33
+msgid "For easier theme development, the theme registry is being rebuilt on every page request. It is <em>extremely</em> important to <a href=\"!link\">turn off this feature</a> on production websites."
+msgstr ""
+
diff --git a/drupal/sites/all/themes/zen/zen-internals/TODO.txt b/drupal/sites/all/themes/zen/zen-internals/TODO.txt
new file mode 100644
index 0000000..b5c91ef
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/TODO.txt
@@ -0,0 +1,7 @@
+Zen 6.x-2.0 @TODO
+-----------------
+- #: Add fix to auto-correct tabs broken by contrib modules
+- #: Display "edit menu" only when Menu block is displaying menu.module links
+- * confirm all the variables of every tpl are documented.
+- #341140: drupal_get_filename() is broken in Drupal 6. When that is fixed,
+  replace _zen_path() with drupal_get_path('theme', 'zen').
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/generate.sh b/drupal/sites/all/themes/zen/zen-internals/css/generate.sh
new file mode 100755
index 0000000..ccde535
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/generate.sh
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+# This script is used by the MAINTAINER to generate composite stylesheets for
+# the base Zen theme from the stylesheets in the STARTERKIT.
+
+FIXED=( \
+  html-reset \
+  wireframes \
+  layout-fixed \
+  page-backgrounds \
+  tabs \
+  messages \
+  pages \
+  block-editing \
+  blocks \
+  navigation \
+  views-styles \
+  nodes \
+  comments \
+  forms \
+  fields \
+  );
+
+STYLESHEET='zen-fixed.css';
+RTL_STYLESHEET='zen-fixed-rtl.css';
+echo > $STYLESHEET;
+echo > $RTL_STYLESHEET;
+for FILENAME in ${FIXED[*]}; do
+  echo >> $STYLESHEET;
+  echo "/* $FILENAME.css */" >> $STYLESHEET;
+  echo >> $STYLESHEET;
+  cat ../../STARTERKIT/css/$FILENAME.css >> $STYLESHEET;
+  if [[ -e ../../STARTERKIT/css/$FILENAME-rtl.css ]]; then
+    echo >> $RTL_STYLESHEET;
+    echo "/* $FILENAME-rtl.css */" >> $RTL_STYLESHEET;
+    echo >> $RTL_STYLESHEET;
+    cat ../../STARTERKIT/css/$FILENAME-rtl.css >> $RTL_STYLESHEET;
+  fi
+done
+
+LIQUID=( \
+  html-reset \
+  wireframes \
+  layout-liquid \
+  page-backgrounds \
+  tabs \
+  messages \
+  pages \
+  block-editing \
+  blocks \
+  navigation \
+  views-styles \
+  nodes \
+  comments \
+  forms \
+  fields \
+  );
+
+STYLESHEET='zen-liquid.css';
+RTL_STYLESHEET='zen-liquid-rtl.css';
+echo > $STYLESHEET;
+echo > $RTL_STYLESHEET;
+for FILENAME in ${LIQUID[*]}; do
+  echo >> $STYLESHEET;
+  echo "/* $FILENAME.css */" >> $STYLESHEET;
+  echo >> $STYLESHEET;
+  cat ../../STARTERKIT/css/$FILENAME.css >> $STYLESHEET;
+  if [[ -e ../../STARTERKIT/css/$FILENAME-rtl.css ]]; then
+    echo >> $RTL_STYLESHEET;
+    echo "/* $FILENAME-rtl.css */" >> $RTL_STYLESHEET;
+    echo >> $RTL_STYLESHEET;
+    cat ../../STARTERKIT/css/$FILENAME-rtl.css >> $RTL_STYLESHEET;
+  fi
+done
+
+cp ../../STARTERKIT/css/print.css .;
+
+cp ../../STARTERKIT/css/ie.css .;
+cp ../../STARTERKIT/css/ie6.css .;
+cp ../../STARTERKIT/css/ie6-rtl.css .;
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/ie.css b/drupal/sites/all/themes/zen/zen-internals/css/ie.css
new file mode 100644
index 0000000..9eb0bb7
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/ie.css
@@ -0,0 +1,47 @@
+/**
+ * @file
+ * CSS targeted specifically for Internet Explorer for Windows.
+ *
+ * Any CSS in this file will apply to all versions of IE. You can target
+ * specific versions of IE by using conditional comments. See your sub-theme's
+ * .info file for an easy way to use them.
+ *
+ * While building your theme, you should be aware that IE limits Drupal to 31
+ * stylesheets total. The work-around for the bug is to enable CSS aggregation
+ * under: admin / settings / performance.
+ */
+
+
+/*
+ * Tabs
+ */
+ul.primary li a,
+ul.primary li a .tab,
+ul.secondary li a,
+ul.secondary li a .tab {
+  cursor: pointer;
+}
+
+/*
+ * Drupal nodes
+ */
+.node-unpublished .node-inner>* {
+  position: relative; /* Otherwise these elements will appear below the "Unpublished" text. */
+}
+
+/*
+ * Drupal admin tables
+ */
+tr.even th,
+tr.even td,
+tr.odd th,
+tr.odd td {
+  border-bottom: 1px solid #ccc; /* IE doesn't display borders on table rows */
+}
+
+/*
+ * Markup free clearing
+ */
+.clearfix {
+  zoom: 1;
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/ie6-rtl.css b/drupal/sites/all/themes/zen/zen-internals/css/ie6-rtl.css
new file mode 100644
index 0000000..4d6f40c
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/ie6-rtl.css
@@ -0,0 +1,12 @@
+/**
+ * @file
+ * RTL companion for the ie6.css file.
+ */
+
+
+/*
+ * Layout CSS
+ */
+#page {
+  text-align: right; /* 2nd part of IE5/IE6quirks centering hack */
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/ie6.css b/drupal/sites/all/themes/zen/zen-internals/css/ie6.css
new file mode 100644
index 0000000..4441e47
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/ie6.css
@@ -0,0 +1,105 @@
+/**
+ * @file
+ * CSS targeted specifically for Internet Explorer 5 and 6 for Windows.
+ *
+ * Any CSS in this file will override the rules specified in the ie.css file.
+ */
+
+
+/*
+ * Layout CSS
+ */
+
+body {
+  text-align: center; /* 1st part of IE5/IE6quirks centering hack */
+}
+
+#page {
+  text-align: left; /* LTR */ /* 2nd part of IE5/IE6quirks centering hack */
+}
+
+#main-wrapper {
+  zoom: 1; /* Otherwise with a liquid layout, sidebars disappear when resizing the windows in IE6 */
+}
+
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second /* Floating divs */ {
+  display: inline; /* display inline or double your floated margin! [1] */
+  overflow: hidden; /* in ie6, overflow auto is broken [2] and so is overflow visible [3] */
+  overflow-y: visible;
+}
+
+/*
+ * Tabs - IE 5 and 6 don't support PNGs with alpha transparency.
+ */
+
+ul.primary li a,
+ul.primary li a .tab,
+ul.secondary li a,
+ul.secondary li a .tab {
+  display: inline-block; /* Otherwise the blocks mistakenly get 100% width in IE6 */
+}
+
+ul.primary li a {
+  background: url(../images/tab-left-ie6.png) no-repeat left -38px;
+}
+
+ul.primary li a .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right -38px;
+}
+
+ul.primary li a:hover,
+ul.primary li a:focus {
+  background: url(../images/tab-left-ie6.png) no-repeat left -76px;
+}
+
+ul.primary li a:hover .tab,
+ul.primary li a:focus .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right -76px;
+}
+
+ul.primary li.active a,
+ul.primary li.active a:hover,
+ul.primary li.active a:focus {
+  background: url(../images/tab-left-ie6.png) no-repeat left 0;
+}
+
+ul.primary li.active a .tab,
+ul.primary li.active a:hover .tab,
+ul.primary li.active a:focus .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right 0;
+}
+
+/*
+ * Messages - IE 5 and 6 don't support PNGs with alpha transparency.
+ */
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  background-image: url(../images/messages-status-ie6.png);
+}
+
+div.warning /* Medium priority messages */ {
+  background-image: url(../images/messages-warning-ie6.png);
+}
+
+div.error /* High priority messages. See also the .error declaration below. */ {
+  background-image: url(../images/messages-error-ie6.png);
+}
+
+
+/*
+ * REFERENCES
+ *
+
+1. http://www.positioniseverything.net/explorer/doubled-margin.html
+2. http://browservulsel.blogspot.com/2005/04/ie-overflow-auto-scrollbar-overlap.html
+3. http://www.howtocreate.co.uk/wrongWithIE/?chapter=overflow%3Avisible%3B
+4. http://www.ryanbrill.com/archives/multiple-classes-in-ie
+
+ *
+ */
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/print.css b/drupal/sites/all/themes/zen/zen-internals/css/print.css
new file mode 100644
index 0000000..8e8cd30
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/print.css
@@ -0,0 +1,73 @@
+/**
+ * @file
+ * Print styling
+ *
+ * We provide some sane print styling for Drupal using Zen's layout method.
+ */
+
+
+/* underline all links */
+a:link,
+a:visited {
+  text-decoration: underline !important;
+}
+
+/* Don't underline header */
+#site-name a:link,
+#site-name a:visited {
+  text-decoration: none !important;
+}
+
+/* CSS2 selector to add visible href after links */
+#content a:link:after,
+#content a:visited:after {
+  content: " (" attr(href) ") ";
+  font-size: 0.8em;
+  font-weight: normal;
+}
+
+/* Un-float the content */
+#content,
+#content .section {
+  float: none;
+  width: 100%;
+  margin: 0 !important;
+  padding: 0 !important;
+}
+
+/* Turn off any background colors or images */
+body,
+#page-wrapper,
+#page,
+#main-wrapper,
+#main,
+#content,
+#content .section {
+  color: #000;
+  background-color: transparent !important;
+  background-image: none !important;
+}
+
+/* Hide sidebars and nav elements */
+#skip-link,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.breadcrumb,
+div.tabs,
+.links,
+.taxonomy,
+.book-navigation,
+.forum-topic-navigation,
+.pager,
+.feed-icons {
+  visibility: hidden;
+  display: none;
+}
+
+/* If you un-comment the "page { overflow-y: hidden; }" ruleset, Firefox clips
+   the content after the first page. */
+#page-wrapper {
+  overflow-y: visible;
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/theme-settings-rtl.css b/drupal/sites/all/themes/zen/zen-internals/css/theme-settings-rtl.css
new file mode 100644
index 0000000..f3de57f
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/theme-settings-rtl.css
@@ -0,0 +1,56 @@
+/**
+ * @file
+ * Theme settings styling
+ *
+ * This file is only loaded on the Theme Settings page for Zen and its
+ * subthemes: admin/build/themes/settings
+ */
+
+
+#zen-settings fieldset .form-item
+{
+  padding-left: 0;
+  padding-right: 200px;
+}
+
+#zen-settings fieldset .form-checkboxes .form-item,
+#zen-settings fieldset .form-radios .form-item
+{
+  padding-right: 0;
+}
+
+#zen-settings fieldset .form-item label
+{
+  float: right;
+  margin-left: 10px;
+  margin-right: -200px;
+  text-align: left;
+}
+
+#zen-settings fieldset .form-item label.option
+{
+  text-align: right;
+}
+
+#div-zen-registry strong,
+#div-zen-wireframes strong
+{
+  float: right;
+  margin-left: 10px;
+  margin-right: 0;
+  text-align: left;
+}
+
+#div-zen-registry fieldset .form-item,
+#div-zen-wireframes fieldset .form-item
+{
+  margin-right: 0;
+  padding-right: 0;
+}
+
+#div-zen-registry fieldset .form-item .description,
+#div-zen-wireframes fieldset .form-item .description
+{
+  margin-left: 0;
+  margin-right: 200px;
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/theme-settings.css b/drupal/sites/all/themes/zen/zen-internals/css/theme-settings.css
new file mode 100644
index 0000000..567b6e3
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/theme-settings.css
@@ -0,0 +1,69 @@
+/**
+ * @file
+ * Theme settings styling
+ *
+ * This file is only loaded on the Theme Settings page for Zen and its
+ * subthemes: admin/build/themes/settings
+ */
+
+
+#zen-settings fieldset .form-item
+{
+  padding-left: 200px; /* LTR */
+}
+
+#zen-settings fieldset .form-checkboxes .form-item,
+#zen-settings fieldset .form-radios .form-item
+{
+  padding-left: 0; /* LTR */
+}
+
+#zen-settings fieldset .form-item label
+{
+  float: left; /* LTR */
+  width: 190px;
+  margin-left: -200px; /* LTR */
+  margin-right: 10px; /* LTR */
+  text-align: right; /* LTR */
+  _display: inline-block; /* IE6 is dumb. */
+}
+
+#zen-settings fieldset .form-item label.option
+{
+  float: none;
+  width: auto;
+  margin-left: 0;
+  margin-right: 0;
+  text-align: left; /* LTR */
+}
+
+#div-zen-registry,
+#div-zen-wireframes
+{
+  margin: 1em 0;
+}
+
+#div-zen-registry strong,
+#div-zen-wireframes strong
+{
+  float: left; /* LTR */
+  width: 190px;
+  margin-left: 0; /* LTR */
+  margin-right: 10px; /* LTR */
+  text-align: right; /* LTR */
+}
+
+#div-zen-registry fieldset .form-item,
+#div-zen-wireframes fieldset .form-item
+{
+  display: inline;
+  margin-left: 0; /* LTR */
+  padding-left: 0; /* LTR */
+}
+
+#div-zen-registry fieldset .form-item .description,
+#div-zen-wireframes fieldset .form-item .description
+{
+  display: block;
+  margin-left: 200px; /* LTR */
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/zen-fixed-rtl.css b/drupal/sites/all/themes/zen/zen-internals/css/zen-fixed-rtl.css
new file mode 100644
index 0000000..6be9693
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/zen-fixed-rtl.css
@@ -0,0 +1,243 @@
+
+
+/* html-reset-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the html-reset.css file.
+ */
+
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  padding-left: 0;
+  padding-right: 2em;
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  padding: 0 2em 0 0;
+}
+
+dd {
+  margin: 0 2em 0 0;
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+th,
+thead th,
+tbody th {
+  text-align: right;
+}
+
+/* layout-fixed-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the layout-fixed.css file.
+ */
+
+
+/*
+ * Content
+ */
+#content,
+.no-sidebars #content {
+  float: right;
+  margin-left: -960px; /* Negative value of #content's width + right margin. */
+  margin-right: 0;
+}
+
+.sidebar-first #content {
+  margin-left: -960px; /* Negative value of #content's width + right margin. */
+  margin-right: 200px; /* The width of .region-sidebar-first. */
+}
+
+.sidebar-second #content {
+  margin-left: -760px; /* Negative value of #content's width + right margin. */
+  margin-right: 0;
+}
+
+.two-sidebars #content {
+  margin-left: -760px; /* Negative value of #content's width + right margin. */
+  margin-right: 200px; /* The width of .region-sidebar-first */
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: right;
+  margin-left: -100%; /* Negative value of #navigation's width + right margin. */
+  margin-right: 0;
+}
+
+#navigation ul /* Primary and secondary links */ {
+  text-align: right;
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: right;
+  padding: 0 0 0 10px;
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: right;
+  margin-left: -200px; /* Negative value of .region-sidebar-first's width + right margin. */
+  margin-right: 0;
+}
+
+.region-sidebar-first .section {
+  margin: 0 0 0 20px;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: right;
+  margin-left: -960px; /* Negative value of .region-sidebar-second's width + right margin. */
+  margin-right: 760px; /* Width of content + sidebar-first. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 20px 0 0;
+}
+
+/* tabs-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the tabs.css file.
+ */
+
+
+ul.primary {
+  padding: 0 10px 0 0;
+}
+
+ul.primary li {
+  float: right;
+}
+
+ul.secondary {
+  padding: 0 5px 0 0;
+}
+
+ul.secondary li {
+  float: right;
+  border-left: none;
+}
+
+/* messages-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the messages.css file.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  padding: 5px 35px 5px 5px;
+  background-position: 99.5% 5px;
+}
+
+/* pages-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the pages.css file.
+ */
+
+
+/*
+ * Header
+ */
+#logo /* Wrapping link for logo */ {
+  float: right;
+}
+
+/*
+ * Content
+ */
+.more-link /* Aggregator, blog, and forum more link */ {
+  text-align: left;
+}
+
+/* block-editing-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the block-editing.css file.
+ */
+
+
+div.block.with-block-editing div.edit {
+  left: 0;
+  right: auto;
+}
+
+/* forms-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the forms.css file.
+ */
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: right;
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-left: 0;
+  margin-right: -20px; /* Un-do some of the padding on the ul list. */
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: 0;
+  margin-right: -2em; /* Un-do all of the padding on the ul list. */
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form th,
+form thead th {
+  text-align: right;
+  padding-left: 1em;
+  padding-right: 0;
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/zen-fixed.css b/drupal/sites/all/themes/zen/zen-internals/css/zen-fixed.css
new file mode 100644
index 0000000..29db6c2
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/zen-fixed.css
@@ -0,0 +1,1615 @@
+
+
+/* html-reset.css */
+
+/**
+ * @file
+ * HTML Element Styling
+ *
+ * Ok, I admit it. I fooled you. This isn't a "reset" stylesheet. Instead this
+ * is the place where you should set (not reset) the default styling for all
+ * HTML elements.
+ *
+ * @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/
+ * @see http://snook.ca/archives/html_and_css/no_css_reset/
+ */
+
+
+/*
+ * Fonts
+ *
+ * Our font size and line height declarations are based on the following ALA
+ * article:
+ *   http://www.alistapart.com/articles/howtosizetextincss
+ *
+ * All modern browsrs use a 16px default font size. Specifying the font-size
+ * and line-height in ems (relative to the 16px default font) allows the user
+ * to resize the font in the browser and produces the most consistent results
+ * across different browsers.
+ */
+body {
+  font-size: 100%; /* Fixes exaggerated text resizing in IE6 and IE7 */
+}
+
+#skip-link,
+#page {
+  /*
+   * To use a 12px font size on the page, delete the 14px declarations.
+   * to use a 14px font size on the page, delete the 12px declarations.
+   */
+
+  /* Use a 12px base font size with a 16px line height */
+  font-size: 0.75em; /* 16px x .75 = 12px */
+  line-height: 1.333em; /* 12px x 1.333 = 16px */
+
+  /* Use a 14px base font size with a 18px line height */
+  font-size: 0.875em; /* 16px x .875 = 14px */
+  line-height: 1.286em; /* 14px x 1.286 = 18px */
+}
+
+body,
+caption,
+th,
+td,
+input,
+textarea,
+select,
+option,
+legend,
+fieldset {
+  /* The following font family declarations are based on the Microsoft core web
+   * fonts which are common fonts available on most computer systems. The DejaVu
+   * fonts are commonly available on Linux systems where the MS fonts are less
+   * common. Tahoma and Helvetica are also widely available.
+   *
+   * A user's web browser will look at the comma-separated list and will
+   * attempt to use each font in turn until it finds one that is available
+   * on the user's computer. The final "generic" font (sans-serif or serif)
+   * hints at what type of font to use if the web browser doesn't find any
+   * of the fonts in the list.
+
+  font-family: "Times New Roman", Times, Georgia, "DejaVu Serif", serif;
+  font-family: Times, "Times New Roman", Georgia, "DejaVu Serif", serif;
+  font-family: Georgia, "Times New Roman", "DejaVu Serif", serif;
+
+  font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
+  font-family: Tahoma, Verdana, "DejaVu Sans", sans-serif;
+  font-family: Helvetica, Arial, "Nimbus Sans L", sans-serif;
+  font-family: Arial, Helvetica, "Nimbus Sans L", sans-serif;
+
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+
+   */
+
+  font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
+}
+
+pre,
+code {
+  font-size: 1.1em; /* Monospace fonts can be hard to read */
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+}
+
+/*
+ * Headings
+ */
+h1 {
+  font-size: 2em;
+  line-height: 1.3em;
+  margin-top: 0;
+  margin-bottom: 0.5em; /* 0.5em is equavalent to 1em in the page's base font.
+                           Remember, a margin specified in ems is relative to
+                           the element's font-size, not to the pages' base
+                           font size. So, for example, if we want a 1em margin
+                           (relative to the base font), we have to divide that
+                           length by the element's font-size:
+                           1em / 2em = 0.5em */
+}
+
+h2 {
+  font-size: 1.5em;
+  line-height: 1.3em;
+  margin-top: 0.667em; /* Equivalent to 1em in the page's base font: 1 / 1.5 = 0.667em */
+  margin-bottom: 0.667em;
+}
+
+h3 {
+  font-size: 1.3em;
+  line-height: 1.3em;
+  margin-top: 0.769em; /* Equivalent to 1em in the page's base font: 1 / 1.3 = 0.769 */
+  margin-bottom: 0.769em;
+}
+
+h4,
+h5,
+h6 {
+  font-size: 1.1em;
+  line-height: 1.3em;
+  margin-top: 0.909em; /* Equivalent to 1em in the page's base font: 1 / 1.1 = 0.909 */
+  margin-bottom: 0.909em;
+}
+
+/*
+ * Block-level elements
+ */
+p,
+ul,
+ol,
+dl,
+pre,
+table,
+fieldset {
+  margin: 1em 0;
+}
+
+blockquote {
+  margin: 1em 2em;
+}
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  margin-left: 0;
+  padding-left: 2em; /* LTR */
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  margin: 1em 0;
+  padding: 0 0 0 2em; /* LTR */
+}
+
+ul ul, ul ol,
+ol ol, ol ul,
+.block ul ul, .block ul ol,
+.block ol ol, .block ol ul,
+.item-list ul ul, .item-list ul ol,
+.item-list ol ol, .item-list ol ul {
+  margin: 0;
+}
+
+li {
+  margin: 0;
+  padding: 0;
+}
+
+.item-list ul li /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+  list-style: inherit;
+}
+
+ul.menu li,
+li.expanded,
+li.collapsed,
+li.leaf /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+}
+
+ul          { list-style-type: disc; }
+ul ul       { list-style-type: circle; }
+ul ul ul    { list-style-type: square; }
+ul ul ul ul { list-style-type: circle; }
+ol          { list-style-type: decimal; }
+ol ol       { list-style-type: lower-alpha; }
+ol ol ol    { list-style-type: decimal; }
+
+dt {
+  margin: 0;
+  padding: 0;
+}
+
+dd {
+  margin: 0 0 0 2em;
+  padding: 0;
+}
+
+/*
+ * Links
+ *
+ * The order of link states are based on Eric Meyer's article:
+ * http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states
+ */
+a:link {
+}
+
+a:visited {
+}
+
+a:hover,
+a:focus {
+}
+
+a:active {
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+table {
+  border-collapse: collapse;
+  /* width: 100%; */ /* Prevent cramped-looking tables */
+}
+
+th,
+thead th,
+tbody th {
+  text-align: left; /* LTR */
+  padding: 0;
+  border-bottom: none;
+}
+
+tbody {
+  border-top: none;
+}
+
+/*
+ * Abbreviations
+ */
+abbr {
+  border-bottom: 1px dotted #666;
+  cursor: help;
+  white-space: nowrap;
+}
+
+abbr.created /* Date-based "abbreviations" show computer-friendly timestamps which are not human-friendly. */ {
+  border: none;
+  cursor: auto;
+  white-space: normal;
+}
+
+/*
+ * Images
+ */
+img {
+  border: 0;
+}
+
+/*
+ * Horizontal rules
+ */
+hr {
+  height: 1px;
+  border: 1px solid #666;
+}
+
+/*
+ * Forms
+ */
+form {
+  margin: 0;
+  padding: 0;
+}
+
+fieldset {
+  margin: 1em 0;
+  padding: 0.5em;
+}
+
+/* wireframes.css */
+
+/**
+ * @file
+ * Wireframes Styling
+ *
+ * Add wireframes to the basic layout elements.
+ */
+
+
+.with-wireframes #header .section,
+.with-wireframes #content .section,
+.with-wireframes #navigation .section,
+.with-wireframes .region-sidebar-first .section,
+.with-wireframes .region-sidebar-second .section,
+.with-wireframes #footer .section {
+  margin: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
+
+.with-wireframes .region-page-closure {
+  margin-top: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
+
+/* layout-fixed.css */
+
+/**
+ * @file
+ * Layout Styling (DIV Positioning)
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout is based on the Zen Columns layout method.
+ *   http://drupal.org/node/201428
+ *
+ * Only CSS that affects the layout (positioning) of major elements should be
+ * listed here.  Such as:
+ *   display, position, float, clear, width, height, min-width, min-height
+ *   margin, border, padding, overflow
+ */
+
+
+/*
+ * Body
+ */
+body {
+}
+
+#page-wrapper,
+.region-page-closure {
+  /*
+   * If you want to make the page a fixed width and centered in the viewport,
+   * this is the standards-compliant way to do that. See also the ie6.css file
+   * for the necessary IE5/IE6quirks hack to center a div.
+   */
+  margin-left: auto;
+  margin-right: auto;
+  width: 960px;
+}
+
+#page {
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#search-box {
+}
+
+.region-header {
+  clear: both; /* Clear the logo */
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+  position: relative;
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content,
+.no-sidebars #content {
+  float: left; /* LTR */
+  width: 960px;
+  margin-left: 0; /* LTR */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
+}
+
+.sidebar-first #content {
+  width: 760px;
+  margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first. */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+.sidebar-second #content {
+  width: 760px;
+  margin-left: 0; /* LTR */
+  margin-right: -760px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+.two-sidebars #content {
+  width: 560px;
+  margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first */
+  margin-right: -760px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+#content .section {
+  margin: 0;
+  padding: 0;
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
+  height: 2.3em; /* The navigation can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+}
+
+.with-navigation #content,
+.with-navigation .region-sidebar-first,
+.with-navigation .region-sidebar-second {
+  margin-top: 2.3em; /* Set this to the same value as the navigation height above. */
+}
+
+#navigation .section {
+}
+
+#navigation ul /* Primary and secondary links */ {
+  margin: 0;
+  padding: 0;
+  text-align: left; /* LTR */
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: left; /* LTR */
+  padding: 0 10px 0 0; /* LTR */
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 0; /* LTR */
+  margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 20px 0 0; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 760px; /* LTR */ /* Width of content + sidebar-first. */
+  margin-right: -960px; /* LTR */ /* Negative value of .region-sidebar-second's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 0 0 20px; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
+}
+
+/*
+ * Prevent overflowing content
+ */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.region-page-closure {
+  overflow: visible;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+#navigation {
+  overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
+}
+
+/*
+ * If a div.clearfix doesn't have any content after it and its bottom edge
+ * touches the bottom of the viewport, Firefox and Safari will mistakenly
+ * place several pixels worth of space between the bottom of the div and the
+ * bottom of the viewport. Uncomment this CSS property to fix this.
+ * Note: with some over-large content, this property might cause scrollbars
+ * to appear on the #page-wrapper div.
+ */
+/*
+#page-wrapper {
+  overflow-y: hidden;
+}
+*/
+
+/* page-backgrounds.css */
+
+/**
+ * @file
+ * Page Background Styling
+ *
+ * The default layout method of Zen doesn't give themers equal-height columns.
+ * However, equal-height columns are difficult to achieve and totally
+ * unnecessary. Instead, use the Faux Columns method described in the following
+ * ALA article:
+ *   http://www.alistapart.com/articles/fauxcolumns/
+ */
+
+
+body {
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+#header {
+}
+
+#header .section {
+}
+
+#main-wrapper {
+}
+
+#main {
+}
+
+#footer {
+}
+
+#footer .section {
+}
+
+/* tabs.css */
+
+/**
+ * @file
+ * Tabs Styling
+ *
+ * Adds styles for the primary and secondary tabs.
+ *
+ * Compare this with default CSS found in the system module's stylesheet (a copy
+ * of which is in drupal6-reference.css, line 510.)
+ */
+
+
+div.tabs {
+  margin: 0 0 5px 0;
+}
+
+ul.primary {
+  margin: 0;
+  padding: 0 0 0 10px; /* LTR */
+  border-width: 0;
+  list-style: none;
+  white-space: nowrap;
+  line-height: normal;
+  background: url(../images/tab-bar.png) repeat-x left bottom;
+}
+
+ul.primary li {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+ul.primary li a {
+  display: block;
+  height: 24px;
+  margin: 0;
+  padding: 0 0 0 5px; /* width of tab-left.png */
+  border-width: 0;
+  font-weight: bold;
+  text-decoration: none;
+  color: #777;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left -38px;
+}
+
+ul.primary li a .tab {
+  display: block;
+  height: 20px; /* 24px (parent) - 4px (padding) */
+  margin: 0;
+  padding: 4px 13px 0 6px;
+  border-width: 0;
+  line-height: 20px;
+  background: url(../images/tab-right.png) no-repeat right -38px;
+}
+
+ul.primary li a:hover,
+ul.primary li a:focus {
+  border-width: 0;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left -76px;
+}
+
+ul.primary li a:hover .tab,
+ul.primary li a:focus .tab {
+  background: url(../images/tab-right.png) no-repeat right -76px;
+}
+
+ul.primary li.active a,
+ul.primary li.active a:hover,
+ul.primary li.active a:focus {
+  border-width: 0;
+  color: #000;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left 0;
+}
+
+ul.primary li.active a .tab,
+ul.primary li.active a:hover .tab,
+ul.primary li.active a:focus .tab {
+  background: url(../images/tab-right.png) no-repeat right 0;
+}
+
+ul.secondary {
+  margin: 0;
+  padding: 0 0 0 5px; /* LTR */
+  border-bottom: 1px solid #c0c0c0;
+  list-style: none;
+  white-space: nowrap;
+  background: url(../images/tab-secondary-bg.png) repeat-x left bottom;
+}
+
+ul.secondary li {
+  float: left; /* LTR */
+  margin: 0 5px 0 0;
+  padding: 5px 0;
+  border-right: none; /* LTR */
+}
+
+ul.secondary a {
+  display: block;
+  height: 24px;
+  margin: 0;
+  padding: 0;
+  border: 1px solid #c0c0c0;
+  text-decoration: none;
+  color: #777;
+  background: url(../images/tab-secondary.png) repeat-x left -56px;
+}
+
+ul.secondary a .tab {
+  display: block;
+  height: 18px; /* 24px (parent) - 6px (padding) */
+  margin: 0;
+  padding: 3px 8px;
+  line-height: 18px;
+}
+
+ul.secondary a:hover,
+ul.secondary a:focus {
+  background: url(../images/tab-secondary.png) repeat-x left bottom;
+}
+
+ul.secondary a.active,
+ul.secondary a.active:hover,
+ul.secondary a.active:focus {
+  border: 1px solid #c0c0c0;
+  color: #000;
+  background: url(../images/tab-secondary.png) repeat-x left top;
+}
+
+/* messages.css */
+
+/**
+ * @file
+ * Message Styling
+ *
+ * Sensible styling for Drupal's error/warning/status messages.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  min-height: 21px;
+  margin: 0 1em 5px 1em;
+  border: 2px solid #ff7;
+  padding: 5px 5px 5px 35px; /* LTR */
+  color: #000;
+  background-color: #ffc;
+  background-image: url(../images/messages-status.png);
+  background-repeat: no-repeat;
+  background-position: 5px 5px; /* LTR */
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning /* Medium priority messages */ {
+  border-color: #fc0;
+  background-image: url(../images/messages-warning.png);
+}
+
+div.warning,
+tr.warning {
+  color: #000; /* Drupal core uses #220 */
+  background-color: #ffc;
+}
+
+div.error /* High priority messages. See also the .error declaration in pages.css. */ {
+  /* border: 1px solid #d77; */ /* Drupal core uses: 1px solid #d77 */
+  border-color: #c00;
+  background-image: url(../images/messages-error.png);
+}
+
+div.error,
+tr.error {
+  color: #900; /* Drupal core uses #200 */
+  background-color: #fee;
+}
+
+div.messages ul {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+/* pages.css */
+
+/**
+ * @file
+ * Page Styling
+ *
+ * Style the markup found in page.tpl.php. Also includes some styling of
+ * miscellaneous Drupal elements that appear in the $content variable, such as
+ * ul.links, .pager, .more-link, etc.
+ */
+
+
+/*
+ * Body
+ */
+body {
+  margin: 0;
+  padding: 0;
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+/*
+ * The skip navigation link will be completely hidden until a user tabs to the
+ * link. See http://www.webaim.org/techniques/skipnav/
+ */
+#skip-link a,
+#skip-link a:visited {
+  position: absolute;
+  display: block;
+  left: 0;
+  top: -500px;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  text-align: center;
+  background-color: #666;
+  color: #fff;
+}
+
+#skip-link a:hover,
+#skip-link a:active,
+#skip-link a:focus {
+  position: static;
+  width: 100%;
+  height: auto;
+  padding: 2px 0 3px 0;
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#logo /* Wrapping link for logo */ {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+#logo img {
+  vertical-align: bottom;
+}
+
+#name-and-slogan /* Wrapper for website name and slogan */ {
+}
+
+h1#site-name,
+div#site-name /* The name of the website */ {
+  margin: 0;
+  font-size: 2em;
+  line-height: 1.3em;
+}
+
+#site-name a:link,
+#site-name a:visited {
+  color: #000;
+  text-decoration: none;
+}
+
+#site-name a:hover,
+#site-name a:focus {
+  text-decoration: underline;
+}
+
+#site-slogan /* The slogan (or tagline) of a website */ {
+}
+
+.region-header /* Wrapper for any blocks placed in the header region */ {
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content {
+}
+
+#content .section {
+}
+
+#mission /* The mission statement of the site (displayed on homepage) */ {
+}
+
+.region-content-top /* Wrapper for any blocks placed in the "content top" region */ {
+}
+
+.breadcrumb /* The path to the current page in the form of a list of links */ {
+  padding-bottom: 0; /* Undo system.css */
+}
+
+h1.title, /* The title of the page */
+h2.title, /* Block title or the title of a piece of content when it is given in a list of content */
+h3.title /* Comment title */ {
+  margin: 0;
+}
+
+tr.even /* Some tables have rows marked even or odd. */ {
+  /* background-color: #eee; */ /* Drupal core uses a #eee background */
+}
+
+tr.odd {
+  /* background-color: #eee; */ /* Drupal core uses a #eee background */
+}
+
+div.messages /* Important messages (status, warning, and error) for the user. See also the declarations in messages.css. */ {
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning,
+tr.warning /* Medium priority messages */ {
+  /* border: 1px solid #f0c020; */ /* Drupal core uses: 1px solid #f0c020 */
+}
+
+div.error,
+tr.error /* High priority messages. See also the .error declaration below. */ {
+}
+
+.error /* Errors that are separate from div.messages status messages. */ {
+  /* color: #e55; */ /* Drupal core uses a #e55 background */
+}
+
+.warning /* Warnings that are separate from div.messages status messages. */ {
+  /* color: #e09010; */ /* Drupal core uses a #e09010 background */
+}
+
+div.tabs /* See also the tabs.css file. */ {
+}
+
+.help /* Help text on a page */ {
+  margin: 1em 0;
+}
+
+.more-help-link /* Link to more help */ {
+  font-size: 0.85em;
+  text-align: right;
+}
+
+#content-area /* Wrapper for the actual page content */ {
+}
+
+ul.links /* List of links */ {
+  margin: 1em 0;
+  padding: 0;
+}
+
+ul.links.inline {
+  margin: 0;
+  display: inline;
+}
+
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+
+.pager /* A list of page numbers when more than 1 page of content is available */ {
+  clear: both;
+  margin: 1em 0;
+  text-align: center;
+}
+
+.pager a,
+.pager strong.pager-current /* Each page number in the pager list */ {
+  padding: 0.5em;
+}
+
+.feed-icons /* The links to the RSS or Atom feeds for the current list of content */ {
+  margin: 1em 0;
+}
+
+.more-link /* Aggregator, blog, and forum more link */ {
+  text-align: right; /* LTR */
+}
+
+.region-content-bottom /* Wrapper for any blocks placed in the "content bottom" region */ {
+}
+
+/*
+ * First sidebar (on left in LTR languages, on right in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-first
+ * (see the layout.css file.)
+ */
+.region-sidebar-first {
+}
+
+.region-sidebar-first .section {
+}
+
+/*
+ * Second sidebar (on right in LTR languages, on left in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-second
+ * (see the layout.css file.)
+ */
+.region-sidebar-second {
+}
+
+.region-sidebar-second .section {
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+#footer-message /* Wrapper for the footer message from Drupal's "Site information"
+                   and for any blocks placed in the footer region */ {
+}
+
+.region-footer {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* Wrapper for any blocks placed in the closure region */ {
+}
+
+/*
+ * Drupal boxes
+ *
+ * Wrapper for Comment form, Comment viewing options, Menu admin, and
+ * Search results.
+ */
+.box /* Wrapper for box */ {
+}
+
+.box h2 /* Box title */ {
+}
+
+.box .content /* Box's content wrapper */ {
+}
+
+/*
+ * Markup free clearing (See: http://www.positioniseverything.net/easyclearing.html )
+ */
+.clearfix:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+
+/**
+ * Hide elements from all users.
+ *
+ * Used for elements which should not be immediately displayed to any user. An
+ * example would be a collapsible fieldset that will be expanded with a click
+ * from a user. The effect of this class can be toggled with the jQuery show()
+ * and hide() functions.
+ */
+.element-hidden {
+  display: none;
+}
+
+/**
+ * Hide elements visually, but keep them available for screen-readers.
+ *
+ * Used for information required for screen-reader users to understand and use
+ * the site where visual display is undesirable. Information provided in this
+ * manner should be kept concise, to avoid unnecessary burden on the user. Must
+ * not be used for focusable elements (such as links and form elements) as this
+ * causes issues for keyboard only or voice recognition users. "!important" is
+ * used to prevent unintentional overrides.
+ */
+.element-invisible {
+  position: absolute !important;
+  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+  clip: rect(1px, 1px, 1px, 1px);
+}
+
+/* block-editing.css */
+
+/**
+ * @file
+ * Zen's rollover edit links for blocks.
+ */
+
+
+div.block.with-block-editing {
+  position: relative;
+}
+
+div.block.with-block-editing div.edit {
+  display: none;
+  position: absolute;
+  right: 0; /* LTR */
+  top: 0;
+  z-index: 40;
+  border: 1px solid #eee;
+  padding: 0 2px;
+  font-size: 0.75em;
+  background-color: #fff;
+}
+
+div.block.with-block-editing:hover div.edit {
+  display: block;
+}
+
+/* blocks.css */
+
+/**
+ * @file
+ * Block Styling
+ */
+
+
+.block /* Block wrapper */ {
+  margin-bottom: 1em;
+}
+
+.block.first /* The first block in the region */ {
+}
+
+.block.last /* The last block in the region */ {
+}
+
+.block.region-odd /* Zebra striping for each block in the region */ {
+}
+
+.block.region-even /* Zebra striping for each block in the region */ {
+}
+
+.block.odd /* Zebra striping independent of each region */ {
+}
+
+.block.even /* Zebra striping independent of each region */ {
+}
+
+.region-count-1 /* Incremental count for each block in the region */ {
+}
+
+.count-1 /* Incremental count independent of each region */ {
+}
+
+.block h2.title /* Block title */ {
+}
+
+.block .content /* Block's content wrapper */ {
+}
+
+#block-aggregator-category-1 /* Block for the latest news items in the first category */ {
+}
+
+#block-aggregator-feed-1 /* Block for the latest news items in the first feed */ {
+}
+
+#block-block-1 /* First administrator-defined block */ {
+}
+
+#block-blog-0 /* "Recent blog posts" block */ {
+}
+
+#block-book-0 /* "Book navigation" block for the current book's table of contents */ {
+}
+
+#block-comment-0 /* "Recent comments" block */ {
+}
+
+#block-forum-0 /* "Active forum topics" block */ {
+}
+
+#block-forum-1 /* "New forum topics" block */ {
+}
+
+#block-menu-primary-links /* "Primary links" block */ {
+}
+
+#block-menu-secondary-links /* "Secondary links" block */ {
+}
+
+#block-node-0 /* "Syndicate" block for primary RSS feed */ {
+}
+
+#block-poll-0 /* "Most recent poll" block */ {
+}
+
+#block-profile-0 /* "Author information" block for the profile of the page's author */ {
+}
+
+#block-search-0 /* "Search form" block */ {
+}
+
+#block-statistics-0 /* "Popular content" block */ {
+}
+
+#block-user-0 /* "User login form" block */ {
+}
+
+#block-user-1 /* "Navigation" block for Drupal navigation menu */ {
+}
+
+#block-user-2 /* "Who's new" block for a list of the newest users */ {
+}
+
+#block-user-3 /* "Who's online" block for a list of the online users */ {
+}
+
+/* navigation.css */
+
+/**
+ * @file
+ * Navigation Styling
+ *
+ * Default menu styling (ul.menu) is defined in system-menus.css.
+ */
+
+
+/*
+ * The active item in a Drupal menu
+ */
+li a.active {
+  color: #000;
+}
+
+/*
+ * Navigation bar
+ */
+#navigation {
+}
+
+.region-navigation {
+}
+
+/*
+ * Primary and Secondary menu links
+ */
+#main-menu {
+}
+
+#secondary-menu {
+}
+
+/*
+ * Menu blocks
+ */
+.block-menu {
+}
+
+/*
+ * "Menu block" blocks. See http://drupal.org/project/menu_block
+ */
+.block-menu_block {
+}
+
+/* views-styles.css */
+
+/**
+ * @file
+ * Views Styling
+ */
+
+
+
+/* nodes.css */
+
+/**
+ * @file
+ * Node Styling
+ *
+ * Style anything that isn't in the $content variable.
+ */
+
+
+.node /* Node wrapper */ {
+}
+
+.node-sticky /* A sticky node (displayed before others in a list) */ {
+}
+
+.node-unpublished /* Unpublished nodes */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.node-unpublished div.unpublished,
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. */ {
+  height: 0;
+  overflow: visible;
+  color: #d8d8d8;
+  font-size: 75px;
+  line-height: 1;
+  font-family: Impact, "Arial Narrow", Helvetica, sans-serif;
+  font-weight: bold;
+  text-transform: uppercase;
+  text-align: center;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+.node-by-viewer /* A node created by the current user */ {
+}
+
+.node-teaser /* A node displayed as teaser */ {
+}
+
+/* All nodes are given a node-type-FOO class that describes the type of
+ * content that it is. If you create a new content type called
+ * "my-custom-type", it will receive a "node-type-my-custom-type" class.
+ */
+.node-type-page /* Page content node */ {
+}
+
+.node-type-story /* Story content node */ {
+}
+
+.node h2.title /* Node title */ {
+}
+
+.marker /* "New" or "Updated" marker for content that is new or updated for the current user */ {
+  color: #c00;
+}
+
+.node .picture /* The picture of the node author */ {
+}
+
+.node.node-unpublished .picture,
+.comment.comment-unpublished .picture {
+  position: relative; /* Otherwise floated pictures will appear below the "Unpublished" text. */
+}
+
+.node .meta /* Wrapper for submitted and terms data */ {
+}
+
+.node .submitted /* The "posted by" information */ {
+}
+
+.node .terms /* Node terms (taxonomy) */ {
+}
+
+.node .content /* Node's content wrapper */ {
+}
+
+.node ul.links /* Node links. See also the ul.links declaration in the pages.css. */ {
+}
+
+.preview .node /* Preview of the content before submitting new or updated content */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+}
+
+/* comments.css */
+
+/**
+ * @file
+ * Comment Styling
+ */
+
+
+#comments /* Wrapper for the list of comments and its title */ {
+  margin: 1em 0;
+}
+
+#comments h2.title /* Heading for the list of comments */ {
+}
+
+.comment /* Wrapper for a single comment */ {
+}
+
+.comment-preview /* Preview of the comment before submitting new or updated comment */ {
+}
+
+.comment.new /* A new comment since the user last viewed the page. */ {
+}
+
+.comment.first /* The first comment in the list of comments */ {
+}
+
+.comment.last /* The last comment in the list of comments */ {
+}
+
+.comment.odd /* An odd-numbered comment in the list of comments */ {
+}
+
+.comment.even /* An even-numbered comment in the list of comments */ {
+}
+
+.comment-unpublished /* Unpublished comments */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. See also the div.unpublished declaration in the nodes.css. */ {
+}
+
+.comment-by-anonymous /* A comment created by an anonymous user */ {
+}
+
+.comment-by-node-author /* A comment created by the node's author */ {
+}
+
+.comment-by-viewer /* A comment created by the current user */ {
+}
+
+.comment h3.title /* Comment title */ {
+}
+
+.new /* "New" marker for comments that are new for the current user */ {
+  color: #c00;
+}
+
+.comment .picture /* The picture of the comment author */ {
+}
+
+.comment .submitted /* The "posted by" information */ {
+}
+
+.comment .content /* Comment's content wrapper */ {
+}
+
+.comment .user-signature /* The user's signature */ {
+}
+
+.comment ul.links /* Comment links. See also the ul.links declaration in the pages.css. */ {
+}
+
+.indented /* Nested comments are indented */ {
+  /* margin-left: 25px; */ /* Drupal core uses a 25px left margin */
+}
+
+.preview .comment /* Preview of the comment before submitting new or updated comment */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+}
+
+/* forms.css */
+
+/**
+ * @file
+ * Form Styling
+ */
+
+
+.form-item,
+.form-checkboxes,
+.form-radios /* Wrapper for a form element (or group of form elements) and its label */ {
+  margin: 1em 0;
+}
+
+.form-item input.error,
+.form-item textarea.error,
+.form-item select.error /* Highlight the form elements that caused a form submission error */ {
+  border: 2px solid #c00;
+}
+
+.form-item label /* The label for a form element */ {
+  display: block;
+  font-weight: bold;
+}
+
+.form-item label.option /* The label for a radio button or checkbox */ {
+  display: inline;
+  font-weight: normal;
+}
+
+.form-required /* The part of the label that indicates a required field */ {
+  color: #c00;
+}
+
+.form-item .description /* The descriptive help text (separate from the label) */ {
+  font-size: 0.85em;
+}
+
+.form-checkboxes .form-item,
+.form-radios .form-item /* Pack groups of checkboxes and radio buttons closer together */ {
+  margin: 0.4em 0;
+}
+
+.form-submit /* The submit button */ {
+}
+
+.container-inline div,
+.container-inline label /* Inline labels and form divs */ {
+  display: inline;
+}
+
+.tips /* Tips for Drupal's input formats */ {
+}
+
+
+/*
+ * Search (search-theme-form.tpl.php)
+ */
+#search-box /* Wrapper for the search form */ {
+}
+
+#edit-search-theme-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Search (search-block-form.tpl.php)
+ */
+#search-block-form /* Wrapper for the search form */ {
+}
+
+#edit-search-block-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: left; /* LTR */
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form ul /* OpenID creates a new ul above the login form's links. */ {
+  margin-bottom: 0; /* Position OpenID's ul next to the rest of the links. */
+}
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-top: 1em;
+  margin-left: -20px; /* LTR */ /* Un-do some of the padding on the ul list. */
+}
+
+#user-login-form li.user-link /* The "Cancel OpenID login" link. */ {
+  margin-top: 1em;
+}
+
+#user-login ul {
+  margin: 1em 0;
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: -2em; /* LTR */ /* Un-do all of the padding on the ul list. */
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form tbody {
+  border-top: 1px solid #ccc;
+}
+
+form th,
+form thead th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+form tbody th {
+  border-bottom: 1px solid #ccc;
+}
+
+/* fields.css */
+
+/**
+ * @file
+ * Field Styling
+ */
+
+
+/*
+ * Field types
+ */
+
+.field /* Wrapper for any CCK field. */ {
+}
+
+.field-type-datetime /* Always use "datetime" when creating new CCK date fields. "date" and "datestamp" are legacy types. */ {
+}
+
+.field-type-filefield /* Field from filefield module */ {
+}
+
+.field-type-nodereference {
+}
+
+.field-type-number-decimal {
+}
+
+.field-type-number-float {
+}
+
+.field-type-number-integer {
+}
+
+.field-type-text {
+}
+
+.field-type-userreference {
+}
+
+
+/*
+ * Named fields
+ */
+
+.field-field-FIELDNAME /* Underscores in field name are replaced with dashes. */ {
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/zen-liquid-rtl.css b/drupal/sites/all/themes/zen/zen-internals/css/zen-liquid-rtl.css
new file mode 100644
index 0000000..2a44868
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/zen-liquid-rtl.css
@@ -0,0 +1,237 @@
+
+
+/* html-reset-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the html-reset.css file.
+ */
+
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  padding-left: 0;
+  padding-right: 2em;
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  padding: 0 2em 0 0;
+}
+
+dd {
+  margin: 0 2em 0 0;
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+th,
+thead th,
+tbody th {
+  text-align: right;
+}
+
+/* layout-liquid-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the layout-liquid.css file.
+ */
+
+
+/*
+ * Content
+ */
+#content {
+  float: right;
+  margin-left: -100%; /* Negative value of #content's width + right margin. */
+  margin-right: 0;
+}
+
+.sidebar-first #content .section {
+  padding-left: 0;
+  padding-right: 200px; /* The width + right margin of .region-sidebar-first. */
+}
+
+.sidebar-second #content .section {
+  padding-left: 200px; /* The width + left margin of .region-sidebar-second. */
+  padding-right: 0;
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: right;
+  margin-left: -100%; /* Negative value of #navigation's width + right margin. */
+  margin-right: 0;
+}
+
+#navigation ul /* Primary and secondary links */ {
+  text-align: right;
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: right;
+  padding: 0 0 0 10px;
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: right;
+  margin-left: -200px; /* Negative value of .region-sidebar-first's width + right margin. */
+  margin-right: 0;
+}
+
+.region-sidebar-first .section {
+  margin: 0 0 0 20px;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: left;
+  margin-left: 0;
+  margin-right: -200px; /* Negative value of .region-sidebar-second's width + left margin. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 20px 0 0;
+}
+
+/* tabs-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the tabs.css file.
+ */
+
+
+ul.primary {
+  padding: 0 10px 0 0;
+}
+
+ul.primary li {
+  float: right;
+}
+
+ul.secondary {
+  padding: 0 5px 0 0;
+}
+
+ul.secondary li {
+  float: right;
+  border-left: none;
+}
+
+/* messages-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the messages.css file.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  padding: 5px 35px 5px 5px;
+  background-position: 99.5% 5px;
+}
+
+/* pages-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the pages.css file.
+ */
+
+
+/*
+ * Header
+ */
+#logo /* Wrapping link for logo */ {
+  float: right;
+}
+
+/*
+ * Content
+ */
+.more-link /* Aggregator, blog, and forum more link */ {
+  text-align: left;
+}
+
+/* block-editing-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the block-editing.css file.
+ */
+
+
+div.block.with-block-editing div.edit {
+  left: 0;
+  right: auto;
+}
+
+/* forms-rtl.css */
+
+/**
+ * @file
+ * RTL companion for the forms.css file.
+ */
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: right;
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-left: 0;
+  margin-right: -20px; /* Un-do some of the padding on the ul list. */
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: 0;
+  margin-right: -2em; /* Un-do all of the padding on the ul list. */
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form th,
+form thead th {
+  text-align: right;
+  padding-left: 1em;
+  padding-right: 0;
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/css/zen-liquid.css b/drupal/sites/all/themes/zen/zen-internals/css/zen-liquid.css
new file mode 100644
index 0000000..0d4842b
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/css/zen-liquid.css
@@ -0,0 +1,1605 @@
+
+
+/* html-reset.css */
+
+/**
+ * @file
+ * HTML Element Styling
+ *
+ * Ok, I admit it. I fooled you. This isn't a "reset" stylesheet. Instead this
+ * is the place where you should set (not reset) the default styling for all
+ * HTML elements.
+ *
+ * @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/
+ * @see http://snook.ca/archives/html_and_css/no_css_reset/
+ */
+
+
+/*
+ * Fonts
+ *
+ * Our font size and line height declarations are based on the following ALA
+ * article:
+ *   http://www.alistapart.com/articles/howtosizetextincss
+ *
+ * All modern browsrs use a 16px default font size. Specifying the font-size
+ * and line-height in ems (relative to the 16px default font) allows the user
+ * to resize the font in the browser and produces the most consistent results
+ * across different browsers.
+ */
+body {
+  font-size: 100%; /* Fixes exaggerated text resizing in IE6 and IE7 */
+}
+
+#skip-link,
+#page {
+  /*
+   * To use a 12px font size on the page, delete the 14px declarations.
+   * to use a 14px font size on the page, delete the 12px declarations.
+   */
+
+  /* Use a 12px base font size with a 16px line height */
+  font-size: 0.75em; /* 16px x .75 = 12px */
+  line-height: 1.333em; /* 12px x 1.333 = 16px */
+
+  /* Use a 14px base font size with a 18px line height */
+  font-size: 0.875em; /* 16px x .875 = 14px */
+  line-height: 1.286em; /* 14px x 1.286 = 18px */
+}
+
+body,
+caption,
+th,
+td,
+input,
+textarea,
+select,
+option,
+legend,
+fieldset {
+  /* The following font family declarations are based on the Microsoft core web
+   * fonts which are common fonts available on most computer systems. The DejaVu
+   * fonts are commonly available on Linux systems where the MS fonts are less
+   * common. Tahoma and Helvetica are also widely available.
+   *
+   * A user's web browser will look at the comma-separated list and will
+   * attempt to use each font in turn until it finds one that is available
+   * on the user's computer. The final "generic" font (sans-serif or serif)
+   * hints at what type of font to use if the web browser doesn't find any
+   * of the fonts in the list.
+
+  font-family: "Times New Roman", Times, Georgia, "DejaVu Serif", serif;
+  font-family: Times, "Times New Roman", Georgia, "DejaVu Serif", serif;
+  font-family: Georgia, "Times New Roman", "DejaVu Serif", serif;
+
+  font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
+  font-family: Tahoma, Verdana, "DejaVu Sans", sans-serif;
+  font-family: Helvetica, Arial, "Nimbus Sans L", sans-serif;
+  font-family: Arial, Helvetica, "Nimbus Sans L", sans-serif;
+
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+
+   */
+
+  font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
+}
+
+pre,
+code {
+  font-size: 1.1em; /* Monospace fonts can be hard to read */
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+}
+
+/*
+ * Headings
+ */
+h1 {
+  font-size: 2em;
+  line-height: 1.3em;
+  margin-top: 0;
+  margin-bottom: 0.5em; /* 0.5em is equavalent to 1em in the page's base font.
+                           Remember, a margin specified in ems is relative to
+                           the element's font-size, not to the pages' base
+                           font size. So, for example, if we want a 1em margin
+                           (relative to the base font), we have to divide that
+                           length by the element's font-size:
+                           1em / 2em = 0.5em */
+}
+
+h2 {
+  font-size: 1.5em;
+  line-height: 1.3em;
+  margin-top: 0.667em; /* Equivalent to 1em in the page's base font: 1 / 1.5 = 0.667em */
+  margin-bottom: 0.667em;
+}
+
+h3 {
+  font-size: 1.3em;
+  line-height: 1.3em;
+  margin-top: 0.769em; /* Equivalent to 1em in the page's base font: 1 / 1.3 = 0.769 */
+  margin-bottom: 0.769em;
+}
+
+h4,
+h5,
+h6 {
+  font-size: 1.1em;
+  line-height: 1.3em;
+  margin-top: 0.909em; /* Equivalent to 1em in the page's base font: 1 / 1.1 = 0.909 */
+  margin-bottom: 0.909em;
+}
+
+/*
+ * Block-level elements
+ */
+p,
+ul,
+ol,
+dl,
+pre,
+table,
+fieldset {
+  margin: 1em 0;
+}
+
+blockquote {
+  margin: 1em 2em;
+}
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  margin-left: 0;
+  padding-left: 2em; /* LTR */
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  margin: 1em 0;
+  padding: 0 0 0 2em; /* LTR */
+}
+
+ul ul, ul ol,
+ol ol, ol ul,
+.block ul ul, .block ul ol,
+.block ol ol, .block ol ul,
+.item-list ul ul, .item-list ul ol,
+.item-list ol ol, .item-list ol ul {
+  margin: 0;
+}
+
+li {
+  margin: 0;
+  padding: 0;
+}
+
+.item-list ul li /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+  list-style: inherit;
+}
+
+ul.menu li,
+li.expanded,
+li.collapsed,
+li.leaf /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+}
+
+ul          { list-style-type: disc; }
+ul ul       { list-style-type: circle; }
+ul ul ul    { list-style-type: square; }
+ul ul ul ul { list-style-type: circle; }
+ol          { list-style-type: decimal; }
+ol ol       { list-style-type: lower-alpha; }
+ol ol ol    { list-style-type: decimal; }
+
+dt {
+  margin: 0;
+  padding: 0;
+}
+
+dd {
+  margin: 0 0 0 2em;
+  padding: 0;
+}
+
+/*
+ * Links
+ *
+ * The order of link states are based on Eric Meyer's article:
+ * http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states
+ */
+a:link {
+}
+
+a:visited {
+}
+
+a:hover,
+a:focus {
+}
+
+a:active {
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+table {
+  border-collapse: collapse;
+  /* width: 100%; */ /* Prevent cramped-looking tables */
+}
+
+th,
+thead th,
+tbody th {
+  text-align: left; /* LTR */
+  padding: 0;
+  border-bottom: none;
+}
+
+tbody {
+  border-top: none;
+}
+
+/*
+ * Abbreviations
+ */
+abbr {
+  border-bottom: 1px dotted #666;
+  cursor: help;
+  white-space: nowrap;
+}
+
+abbr.created /* Date-based "abbreviations" show computer-friendly timestamps which are not human-friendly. */ {
+  border: none;
+  cursor: auto;
+  white-space: normal;
+}
+
+/*
+ * Images
+ */
+img {
+  border: 0;
+}
+
+/*
+ * Horizontal rules
+ */
+hr {
+  height: 1px;
+  border: 1px solid #666;
+}
+
+/*
+ * Forms
+ */
+form {
+  margin: 0;
+  padding: 0;
+}
+
+fieldset {
+  margin: 1em 0;
+  padding: 0.5em;
+}
+
+/* wireframes.css */
+
+/**
+ * @file
+ * Wireframes Styling
+ *
+ * Add wireframes to the basic layout elements.
+ */
+
+
+.with-wireframes #header .section,
+.with-wireframes #content .section,
+.with-wireframes #navigation .section,
+.with-wireframes .region-sidebar-first .section,
+.with-wireframes .region-sidebar-second .section,
+.with-wireframes #footer .section {
+  margin: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
+
+.with-wireframes .region-page-closure {
+  margin-top: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
+
+/* layout-liquid.css */
+
+/**
+ * @file
+ * Layout Styling (DIV Positioning)
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout is based on the Zen Columns layout method.
+ *   http://drupal.org/node/201428
+ *
+ * Only CSS that affects the layout (positioning) of major elements should be
+ * listed here.  Such as:
+ *   display, position, float, clear, width, height, min-width, min-height
+ *   margin, border, padding, overflow
+ */
+
+
+/*
+ * Body
+ */
+body {
+}
+
+#page-wrapper,
+.region-page-closure {
+  min-width: 960px; /* Don't allow the browser to make the site unreadable. */
+}
+
+#page {
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#search-box {
+}
+
+.region-header {
+  clear: both; /* Clear the logo */
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+  position: relative;
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
+}
+
+#content .section,
+.no-sidebars #content .section {
+  margin: 0;
+  padding: 0;
+}
+
+.sidebar-first #content .section {
+  padding-left: 200px; /* LTR */ /* The width + left margin of .region-sidebar-first. */
+  padding-right: 0; /* LTR */
+}
+
+.sidebar-second #content .section {
+  padding-left: 0; /* LTR */
+  padding-right: 200px; /* LTR */ /* The width + right margin of .region-sidebar-second. */
+}
+
+.two-sidebars #content .section {
+  padding-left: 200px; /* The width + left margin of .region-sidebar-first. */
+  padding-right: 200px; /* The width + right margin of .region-sidebar-second. */
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
+  height: 2.3em; /* The navigation can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+}
+
+.with-navigation #content,
+.with-navigation .region-sidebar-first,
+.with-navigation .region-sidebar-second {
+  margin-top: 2.3em; /* Set this to the same value as the navigation height above. */
+}
+
+#navigation .section {
+}
+
+#navigation ul /* Primary and secondary links */ {
+  margin: 0;
+  padding: 0;
+  text-align: left; /* LTR */
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: left; /* LTR */
+  padding: 0 10px 0 0; /* LTR */
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 0; /* LTR */
+  margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 20px 0 0; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: right; /* LTR */
+  width: 200px;
+  margin-left: -200px; /* LTR */ /* Negative value of .region-sidebar-second's width + right margin. */
+  margin-right: 0; /* LTR */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 0 0 20px; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
+}
+
+/*
+ * Prevent overflowing content
+ */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.region-page-closure {
+  overflow: visible;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+#navigation {
+  overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
+}
+
+/*
+ * If a div.clearfix doesn't have any content after it and its bottom edge
+ * touches the bottom of the viewport, Firefox and Safari will mistakenly
+ * place several pixels worth of space between the bottom of the div and the
+ * bottom of the viewport. Uncomment this CSS property to fix this.
+ * Note: with some over-large content, this property might cause scrollbars
+ * to appear on the #page-wrapper div.
+ */
+/*
+#page-wrapper {
+  overflow-y: hidden;
+}
+*/
+
+/* page-backgrounds.css */
+
+/**
+ * @file
+ * Page Background Styling
+ *
+ * The default layout method of Zen doesn't give themers equal-height columns.
+ * However, equal-height columns are difficult to achieve and totally
+ * unnecessary. Instead, use the Faux Columns method described in the following
+ * ALA article:
+ *   http://www.alistapart.com/articles/fauxcolumns/
+ */
+
+
+body {
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+#header {
+}
+
+#header .section {
+}
+
+#main-wrapper {
+}
+
+#main {
+}
+
+#footer {
+}
+
+#footer .section {
+}
+
+/* tabs.css */
+
+/**
+ * @file
+ * Tabs Styling
+ *
+ * Adds styles for the primary and secondary tabs.
+ *
+ * Compare this with default CSS found in the system module's stylesheet (a copy
+ * of which is in drupal6-reference.css, line 510.)
+ */
+
+
+div.tabs {
+  margin: 0 0 5px 0;
+}
+
+ul.primary {
+  margin: 0;
+  padding: 0 0 0 10px; /* LTR */
+  border-width: 0;
+  list-style: none;
+  white-space: nowrap;
+  line-height: normal;
+  background: url(../images/tab-bar.png) repeat-x left bottom;
+}
+
+ul.primary li {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+ul.primary li a {
+  display: block;
+  height: 24px;
+  margin: 0;
+  padding: 0 0 0 5px; /* width of tab-left.png */
+  border-width: 0;
+  font-weight: bold;
+  text-decoration: none;
+  color: #777;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left -38px;
+}
+
+ul.primary li a .tab {
+  display: block;
+  height: 20px; /* 24px (parent) - 4px (padding) */
+  margin: 0;
+  padding: 4px 13px 0 6px;
+  border-width: 0;
+  line-height: 20px;
+  background: url(../images/tab-right.png) no-repeat right -38px;
+}
+
+ul.primary li a:hover,
+ul.primary li a:focus {
+  border-width: 0;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left -76px;
+}
+
+ul.primary li a:hover .tab,
+ul.primary li a:focus .tab {
+  background: url(../images/tab-right.png) no-repeat right -76px;
+}
+
+ul.primary li.active a,
+ul.primary li.active a:hover,
+ul.primary li.active a:focus {
+  border-width: 0;
+  color: #000;
+  background-color: transparent;
+  background: url(../images/tab-left.png) no-repeat left 0;
+}
+
+ul.primary li.active a .tab,
+ul.primary li.active a:hover .tab,
+ul.primary li.active a:focus .tab {
+  background: url(../images/tab-right.png) no-repeat right 0;
+}
+
+ul.secondary {
+  margin: 0;
+  padding: 0 0 0 5px; /* LTR */
+  border-bottom: 1px solid #c0c0c0;
+  list-style: none;
+  white-space: nowrap;
+  background: url(../images/tab-secondary-bg.png) repeat-x left bottom;
+}
+
+ul.secondary li {
+  float: left; /* LTR */
+  margin: 0 5px 0 0;
+  padding: 5px 0;
+  border-right: none; /* LTR */
+}
+
+ul.secondary a {
+  display: block;
+  height: 24px;
+  margin: 0;
+  padding: 0;
+  border: 1px solid #c0c0c0;
+  text-decoration: none;
+  color: #777;
+  background: url(../images/tab-secondary.png) repeat-x left -56px;
+}
+
+ul.secondary a .tab {
+  display: block;
+  height: 18px; /* 24px (parent) - 6px (padding) */
+  margin: 0;
+  padding: 3px 8px;
+  line-height: 18px;
+}
+
+ul.secondary a:hover,
+ul.secondary a:focus {
+  background: url(../images/tab-secondary.png) repeat-x left bottom;
+}
+
+ul.secondary a.active,
+ul.secondary a.active:hover,
+ul.secondary a.active:focus {
+  border: 1px solid #c0c0c0;
+  color: #000;
+  background: url(../images/tab-secondary.png) repeat-x left top;
+}
+
+/* messages.css */
+
+/**
+ * @file
+ * Message Styling
+ *
+ * Sensible styling for Drupal's error/warning/status messages.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  min-height: 21px;
+  margin: 0 1em 5px 1em;
+  border: 2px solid #ff7;
+  padding: 5px 5px 5px 35px; /* LTR */
+  color: #000;
+  background-color: #ffc;
+  background-image: url(../images/messages-status.png);
+  background-repeat: no-repeat;
+  background-position: 5px 5px; /* LTR */
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning /* Medium priority messages */ {
+  border-color: #fc0;
+  background-image: url(../images/messages-warning.png);
+}
+
+div.warning,
+tr.warning {
+  color: #000; /* Drupal core uses #220 */
+  background-color: #ffc;
+}
+
+div.error /* High priority messages. See also the .error declaration in pages.css. */ {
+  /* border: 1px solid #d77; */ /* Drupal core uses: 1px solid #d77 */
+  border-color: #c00;
+  background-image: url(../images/messages-error.png);
+}
+
+div.error,
+tr.error {
+  color: #900; /* Drupal core uses #200 */
+  background-color: #fee;
+}
+
+div.messages ul {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+/* pages.css */
+
+/**
+ * @file
+ * Page Styling
+ *
+ * Style the markup found in page.tpl.php. Also includes some styling of
+ * miscellaneous Drupal elements that appear in the $content variable, such as
+ * ul.links, .pager, .more-link, etc.
+ */
+
+
+/*
+ * Body
+ */
+body {
+  margin: 0;
+  padding: 0;
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+/*
+ * The skip navigation link will be completely hidden until a user tabs to the
+ * link. See http://www.webaim.org/techniques/skipnav/
+ */
+#skip-link a,
+#skip-link a:visited {
+  position: absolute;
+  display: block;
+  left: 0;
+  top: -500px;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  text-align: center;
+  background-color: #666;
+  color: #fff;
+}
+
+#skip-link a:hover,
+#skip-link a:active,
+#skip-link a:focus {
+  position: static;
+  width: 100%;
+  height: auto;
+  padding: 2px 0 3px 0;
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#logo /* Wrapping link for logo */ {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+#logo img {
+  vertical-align: bottom;
+}
+
+#name-and-slogan /* Wrapper for website name and slogan */ {
+}
+
+h1#site-name,
+div#site-name /* The name of the website */ {
+  margin: 0;
+  font-size: 2em;
+  line-height: 1.3em;
+}
+
+#site-name a:link,
+#site-name a:visited {
+  color: #000;
+  text-decoration: none;
+}
+
+#site-name a:hover,
+#site-name a:focus {
+  text-decoration: underline;
+}
+
+#site-slogan /* The slogan (or tagline) of a website */ {
+}
+
+.region-header /* Wrapper for any blocks placed in the header region */ {
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content {
+}
+
+#content .section {
+}
+
+#mission /* The mission statement of the site (displayed on homepage) */ {
+}
+
+.region-content-top /* Wrapper for any blocks placed in the "content top" region */ {
+}
+
+.breadcrumb /* The path to the current page in the form of a list of links */ {
+  padding-bottom: 0; /* Undo system.css */
+}
+
+h1.title, /* The title of the page */
+h2.title, /* Block title or the title of a piece of content when it is given in a list of content */
+h3.title /* Comment title */ {
+  margin: 0;
+}
+
+tr.even /* Some tables have rows marked even or odd. */ {
+  /* background-color: #eee; */ /* Drupal core uses a #eee background */
+}
+
+tr.odd {
+  /* background-color: #eee; */ /* Drupal core uses a #eee background */
+}
+
+div.messages /* Important messages (status, warning, and error) for the user. See also the declarations in messages.css. */ {
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning,
+tr.warning /* Medium priority messages */ {
+  /* border: 1px solid #f0c020; */ /* Drupal core uses: 1px solid #f0c020 */
+}
+
+div.error,
+tr.error /* High priority messages. See also the .error declaration below. */ {
+}
+
+.error /* Errors that are separate from div.messages status messages. */ {
+  /* color: #e55; */ /* Drupal core uses a #e55 background */
+}
+
+.warning /* Warnings that are separate from div.messages status messages. */ {
+  /* color: #e09010; */ /* Drupal core uses a #e09010 background */
+}
+
+div.tabs /* See also the tabs.css file. */ {
+}
+
+.help /* Help text on a page */ {
+  margin: 1em 0;
+}
+
+.more-help-link /* Link to more help */ {
+  font-size: 0.85em;
+  text-align: right;
+}
+
+#content-area /* Wrapper for the actual page content */ {
+}
+
+ul.links /* List of links */ {
+  margin: 1em 0;
+  padding: 0;
+}
+
+ul.links.inline {
+  margin: 0;
+  display: inline;
+}
+
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+
+.pager /* A list of page numbers when more than 1 page of content is available */ {
+  clear: both;
+  margin: 1em 0;
+  text-align: center;
+}
+
+.pager a,
+.pager strong.pager-current /* Each page number in the pager list */ {
+  padding: 0.5em;
+}
+
+.feed-icons /* The links to the RSS or Atom feeds for the current list of content */ {
+  margin: 1em 0;
+}
+
+.more-link /* Aggregator, blog, and forum more link */ {
+  text-align: right; /* LTR */
+}
+
+.region-content-bottom /* Wrapper for any blocks placed in the "content bottom" region */ {
+}
+
+/*
+ * First sidebar (on left in LTR languages, on right in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-first
+ * (see the layout.css file.)
+ */
+.region-sidebar-first {
+}
+
+.region-sidebar-first .section {
+}
+
+/*
+ * Second sidebar (on right in LTR languages, on left in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-second
+ * (see the layout.css file.)
+ */
+.region-sidebar-second {
+}
+
+.region-sidebar-second .section {
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+#footer-message /* Wrapper for the footer message from Drupal's "Site information"
+                   and for any blocks placed in the footer region */ {
+}
+
+.region-footer {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* Wrapper for any blocks placed in the closure region */ {
+}
+
+/*
+ * Drupal boxes
+ *
+ * Wrapper for Comment form, Comment viewing options, Menu admin, and
+ * Search results.
+ */
+.box /* Wrapper for box */ {
+}
+
+.box h2 /* Box title */ {
+}
+
+.box .content /* Box's content wrapper */ {
+}
+
+/*
+ * Markup free clearing (See: http://www.positioniseverything.net/easyclearing.html )
+ */
+.clearfix:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+
+/**
+ * Hide elements from all users.
+ *
+ * Used for elements which should not be immediately displayed to any user. An
+ * example would be a collapsible fieldset that will be expanded with a click
+ * from a user. The effect of this class can be toggled with the jQuery show()
+ * and hide() functions.
+ */
+.element-hidden {
+  display: none;
+}
+
+/**
+ * Hide elements visually, but keep them available for screen-readers.
+ *
+ * Used for information required for screen-reader users to understand and use
+ * the site where visual display is undesirable. Information provided in this
+ * manner should be kept concise, to avoid unnecessary burden on the user. Must
+ * not be used for focusable elements (such as links and form elements) as this
+ * causes issues for keyboard only or voice recognition users. "!important" is
+ * used to prevent unintentional overrides.
+ */
+.element-invisible {
+  position: absolute !important;
+  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+  clip: rect(1px, 1px, 1px, 1px);
+}
+
+/* block-editing.css */
+
+/**
+ * @file
+ * Zen's rollover edit links for blocks.
+ */
+
+
+div.block.with-block-editing {
+  position: relative;
+}
+
+div.block.with-block-editing div.edit {
+  display: none;
+  position: absolute;
+  right: 0; /* LTR */
+  top: 0;
+  z-index: 40;
+  border: 1px solid #eee;
+  padding: 0 2px;
+  font-size: 0.75em;
+  background-color: #fff;
+}
+
+div.block.with-block-editing:hover div.edit {
+  display: block;
+}
+
+/* blocks.css */
+
+/**
+ * @file
+ * Block Styling
+ */
+
+
+.block /* Block wrapper */ {
+  margin-bottom: 1em;
+}
+
+.block.first /* The first block in the region */ {
+}
+
+.block.last /* The last block in the region */ {
+}
+
+.block.region-odd /* Zebra striping for each block in the region */ {
+}
+
+.block.region-even /* Zebra striping for each block in the region */ {
+}
+
+.block.odd /* Zebra striping independent of each region */ {
+}
+
+.block.even /* Zebra striping independent of each region */ {
+}
+
+.region-count-1 /* Incremental count for each block in the region */ {
+}
+
+.count-1 /* Incremental count independent of each region */ {
+}
+
+.block h2.title /* Block title */ {
+}
+
+.block .content /* Block's content wrapper */ {
+}
+
+#block-aggregator-category-1 /* Block for the latest news items in the first category */ {
+}
+
+#block-aggregator-feed-1 /* Block for the latest news items in the first feed */ {
+}
+
+#block-block-1 /* First administrator-defined block */ {
+}
+
+#block-blog-0 /* "Recent blog posts" block */ {
+}
+
+#block-book-0 /* "Book navigation" block for the current book's table of contents */ {
+}
+
+#block-comment-0 /* "Recent comments" block */ {
+}
+
+#block-forum-0 /* "Active forum topics" block */ {
+}
+
+#block-forum-1 /* "New forum topics" block */ {
+}
+
+#block-menu-primary-links /* "Primary links" block */ {
+}
+
+#block-menu-secondary-links /* "Secondary links" block */ {
+}
+
+#block-node-0 /* "Syndicate" block for primary RSS feed */ {
+}
+
+#block-poll-0 /* "Most recent poll" block */ {
+}
+
+#block-profile-0 /* "Author information" block for the profile of the page's author */ {
+}
+
+#block-search-0 /* "Search form" block */ {
+}
+
+#block-statistics-0 /* "Popular content" block */ {
+}
+
+#block-user-0 /* "User login form" block */ {
+}
+
+#block-user-1 /* "Navigation" block for Drupal navigation menu */ {
+}
+
+#block-user-2 /* "Who's new" block for a list of the newest users */ {
+}
+
+#block-user-3 /* "Who's online" block for a list of the online users */ {
+}
+
+/* navigation.css */
+
+/**
+ * @file
+ * Navigation Styling
+ *
+ * Default menu styling (ul.menu) is defined in system-menus.css.
+ */
+
+
+/*
+ * The active item in a Drupal menu
+ */
+li a.active {
+  color: #000;
+}
+
+/*
+ * Navigation bar
+ */
+#navigation {
+}
+
+.region-navigation {
+}
+
+/*
+ * Primary and Secondary menu links
+ */
+#main-menu {
+}
+
+#secondary-menu {
+}
+
+/*
+ * Menu blocks
+ */
+.block-menu {
+}
+
+/*
+ * "Menu block" blocks. See http://drupal.org/project/menu_block
+ */
+.block-menu_block {
+}
+
+/* views-styles.css */
+
+/**
+ * @file
+ * Views Styling
+ */
+
+
+
+/* nodes.css */
+
+/**
+ * @file
+ * Node Styling
+ *
+ * Style anything that isn't in the $content variable.
+ */
+
+
+.node /* Node wrapper */ {
+}
+
+.node-sticky /* A sticky node (displayed before others in a list) */ {
+}
+
+.node-unpublished /* Unpublished nodes */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.node-unpublished div.unpublished,
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. */ {
+  height: 0;
+  overflow: visible;
+  color: #d8d8d8;
+  font-size: 75px;
+  line-height: 1;
+  font-family: Impact, "Arial Narrow", Helvetica, sans-serif;
+  font-weight: bold;
+  text-transform: uppercase;
+  text-align: center;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+.node-by-viewer /* A node created by the current user */ {
+}
+
+.node-teaser /* A node displayed as teaser */ {
+}
+
+/* All nodes are given a node-type-FOO class that describes the type of
+ * content that it is. If you create a new content type called
+ * "my-custom-type", it will receive a "node-type-my-custom-type" class.
+ */
+.node-type-page /* Page content node */ {
+}
+
+.node-type-story /* Story content node */ {
+}
+
+.node h2.title /* Node title */ {
+}
+
+.marker /* "New" or "Updated" marker for content that is new or updated for the current user */ {
+  color: #c00;
+}
+
+.node .picture /* The picture of the node author */ {
+}
+
+.node.node-unpublished .picture,
+.comment.comment-unpublished .picture {
+  position: relative; /* Otherwise floated pictures will appear below the "Unpublished" text. */
+}
+
+.node .meta /* Wrapper for submitted and terms data */ {
+}
+
+.node .submitted /* The "posted by" information */ {
+}
+
+.node .terms /* Node terms (taxonomy) */ {
+}
+
+.node .content /* Node's content wrapper */ {
+}
+
+.node ul.links /* Node links. See also the ul.links declaration in the pages.css. */ {
+}
+
+.preview .node /* Preview of the content before submitting new or updated content */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+}
+
+/* comments.css */
+
+/**
+ * @file
+ * Comment Styling
+ */
+
+
+#comments /* Wrapper for the list of comments and its title */ {
+  margin: 1em 0;
+}
+
+#comments h2.title /* Heading for the list of comments */ {
+}
+
+.comment /* Wrapper for a single comment */ {
+}
+
+.comment-preview /* Preview of the comment before submitting new or updated comment */ {
+}
+
+.comment.new /* A new comment since the user last viewed the page. */ {
+}
+
+.comment.first /* The first comment in the list of comments */ {
+}
+
+.comment.last /* The last comment in the list of comments */ {
+}
+
+.comment.odd /* An odd-numbered comment in the list of comments */ {
+}
+
+.comment.even /* An even-numbered comment in the list of comments */ {
+}
+
+.comment-unpublished /* Unpublished comments */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. See also the div.unpublished declaration in the nodes.css. */ {
+}
+
+.comment-by-anonymous /* A comment created by an anonymous user */ {
+}
+
+.comment-by-node-author /* A comment created by the node's author */ {
+}
+
+.comment-by-viewer /* A comment created by the current user */ {
+}
+
+.comment h3.title /* Comment title */ {
+}
+
+.new /* "New" marker for comments that are new for the current user */ {
+  color: #c00;
+}
+
+.comment .picture /* The picture of the comment author */ {
+}
+
+.comment .submitted /* The "posted by" information */ {
+}
+
+.comment .content /* Comment's content wrapper */ {
+}
+
+.comment .user-signature /* The user's signature */ {
+}
+
+.comment ul.links /* Comment links. See also the ul.links declaration in the pages.css. */ {
+}
+
+.indented /* Nested comments are indented */ {
+  /* margin-left: 25px; */ /* Drupal core uses a 25px left margin */
+}
+
+.preview .comment /* Preview of the comment before submitting new or updated comment */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+}
+
+/* forms.css */
+
+/**
+ * @file
+ * Form Styling
+ */
+
+
+.form-item,
+.form-checkboxes,
+.form-radios /* Wrapper for a form element (or group of form elements) and its label */ {
+  margin: 1em 0;
+}
+
+.form-item input.error,
+.form-item textarea.error,
+.form-item select.error /* Highlight the form elements that caused a form submission error */ {
+  border: 2px solid #c00;
+}
+
+.form-item label /* The label for a form element */ {
+  display: block;
+  font-weight: bold;
+}
+
+.form-item label.option /* The label for a radio button or checkbox */ {
+  display: inline;
+  font-weight: normal;
+}
+
+.form-required /* The part of the label that indicates a required field */ {
+  color: #c00;
+}
+
+.form-item .description /* The descriptive help text (separate from the label) */ {
+  font-size: 0.85em;
+}
+
+.form-checkboxes .form-item,
+.form-radios .form-item /* Pack groups of checkboxes and radio buttons closer together */ {
+  margin: 0.4em 0;
+}
+
+.form-submit /* The submit button */ {
+}
+
+.container-inline div,
+.container-inline label /* Inline labels and form divs */ {
+  display: inline;
+}
+
+.tips /* Tips for Drupal's input formats */ {
+}
+
+
+/*
+ * Search (search-theme-form.tpl.php)
+ */
+#search-box /* Wrapper for the search form */ {
+}
+
+#edit-search-theme-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Search (search-block-form.tpl.php)
+ */
+#search-block-form /* Wrapper for the search form */ {
+}
+
+#edit-search-block-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: left; /* LTR */
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form ul /* OpenID creates a new ul above the login form's links. */ {
+  margin-bottom: 0; /* Position OpenID's ul next to the rest of the links. */
+}
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-top: 1em;
+  margin-left: -20px; /* LTR */ /* Un-do some of the padding on the ul list. */
+}
+
+#user-login-form li.user-link /* The "Cancel OpenID login" link. */ {
+  margin-top: 1em;
+}
+
+#user-login ul {
+  margin: 1em 0;
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: -2em; /* LTR */ /* Un-do all of the padding on the ul list. */
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form tbody {
+  border-top: 1px solid #ccc;
+}
+
+form th,
+form thead th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+form tbody th {
+  border-bottom: 1px solid #ccc;
+}
+
+/* fields.css */
+
+/**
+ * @file
+ * Field Styling
+ */
+
+
+/*
+ * Field types
+ */
+
+.field /* Wrapper for any CCK field. */ {
+}
+
+.field-type-datetime /* Always use "datetime" when creating new CCK date fields. "date" and "datestamp" are legacy types. */ {
+}
+
+.field-type-filefield /* Field from filefield module */ {
+}
+
+.field-type-nodereference {
+}
+
+.field-type-number-decimal {
+}
+
+.field-type-number-float {
+}
+
+.field-type-number-integer {
+}
+
+.field-type-text {
+}
+
+.field-type-userreference {
+}
+
+
+/*
+ * Named fields
+ */
+
+.field-field-FIELDNAME /* Underscores in field name are replaced with dashes. */ {
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/messages-error-ie6.png b/drupal/sites/all/themes/zen/zen-internals/images/messages-error-ie6.png
new file mode 100644
index 0000000..054b9f2
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/messages-error-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/messages-error.png b/drupal/sites/all/themes/zen/zen-internals/images/messages-error.png
new file mode 100644
index 0000000..012813b
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/messages-error.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/messages-status-ie6.png b/drupal/sites/all/themes/zen/zen-internals/images/messages-status-ie6.png
new file mode 100644
index 0000000..f9eb63f
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/messages-status-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/messages-status.png b/drupal/sites/all/themes/zen/zen-internals/images/messages-status.png
new file mode 100644
index 0000000..9f07a42
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/messages-status.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/messages-warning-ie6.png b/drupal/sites/all/themes/zen/zen-internals/images/messages-warning-ie6.png
new file mode 100644
index 0000000..551a9db
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/messages-warning-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/messages-warning.png b/drupal/sites/all/themes/zen/zen-internals/images/messages-warning.png
new file mode 100644
index 0000000..e727711
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/messages-warning.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/tab-bar.png b/drupal/sites/all/themes/zen/zen-internals/images/tab-bar.png
new file mode 100644
index 0000000..0b380be
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/tab-bar.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/tab-left-ie6.png b/drupal/sites/all/themes/zen/zen-internals/images/tab-left-ie6.png
new file mode 100644
index 0000000..5c512ae
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/tab-left-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/tab-left.png b/drupal/sites/all/themes/zen/zen-internals/images/tab-left.png
new file mode 100644
index 0000000..dd925f7
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/tab-left.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/tab-right-ie6.png b/drupal/sites/all/themes/zen/zen-internals/images/tab-right-ie6.png
new file mode 100644
index 0000000..1c00281
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/tab-right-ie6.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/tab-right.png b/drupal/sites/all/themes/zen/zen-internals/images/tab-right.png
new file mode 100644
index 0000000..9ed9cb2
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/tab-right.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/tab-secondary-bg.png b/drupal/sites/all/themes/zen/zen-internals/images/tab-secondary-bg.png
new file mode 100644
index 0000000..a5a617e
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/tab-secondary-bg.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/images/tab-secondary.png b/drupal/sites/all/themes/zen/zen-internals/images/tab-secondary.png
new file mode 100644
index 0000000..bf4e8d2
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/images/tab-secondary.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/js/theme-settings.js b/drupal/sites/all/themes/zen/zen-internals/js/theme-settings.js
new file mode 100644
index 0000000..04ce8b6
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/js/theme-settings.js
@@ -0,0 +1,27 @@
+$(document).ready( function() {
+  // Hide the breadcrumb details, if no breadcrumb.
+  $('#edit-zen-breadcrumb').change(
+    function() {
+      div = $('#div-zen-breadcrumb-collapse');
+      if ($('#edit-zen-breadcrumb').val() == 'no') {
+        div.slideUp('slow');
+      } else if (div.css('display') == 'none') {
+        div.slideDown('slow');
+      }
+    }
+  );
+  if ($('#edit-zen-breadcrumb').val() == 'no') {
+    $('#div-zen-breadcrumb-collapse').css('display', 'none');
+  }
+  $('#edit-zen-breadcrumb-title').change(
+    function() {
+      checkbox = $('#edit-zen-breadcrumb-trailing');
+      if ($('#edit-zen-breadcrumb-title').attr('checked')) {
+        checkbox.attr('disabled', 'disabled');
+      } else {
+        checkbox.removeAttr('disabled');
+      }
+    }
+  );
+  $('#edit-zen-breadcrumb-title').change();
+} );
diff --git a/drupal/sites/all/themes/zen/zen-internals/screenshot.png b/drupal/sites/all/themes/zen/zen-internals/screenshot.png
new file mode 100644
index 0000000..3821461
Binary files /dev/null and b/drupal/sites/all/themes/zen/zen-internals/screenshot.png differ
diff --git a/drupal/sites/all/themes/zen/zen-internals/template.block-editing.inc b/drupal/sites/all/themes/zen/zen-internals/template.block-editing.inc
new file mode 100644
index 0000000..c12b5c1
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/template.block-editing.inc
@@ -0,0 +1,88 @@
+<?php
+/**
+ * @file
+ * Contains functions only needed if the user has block editing permissions.
+ */
+
+/**
+ * Add block editing variables into the block templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("block" in this case.)
+ */
+function zen_preprocess_block_editing(&$vars, $hook) {
+  $block = $vars['block'];
+
+  // Display 'edit block' for custom blocks.
+  if ($block->module == 'block') {
+    $vars['edit_links_array']['block-edit'] = l('<span>' . t('edit block') . '</span>', 'admin/build/block/configure/' . $block->module . '/' . $block->delta,
+      array(
+        'attributes' => array(
+          'title' => t('edit the content of this block'),
+          'class' => 'block-edit',
+        ),
+        'query' => drupal_get_destination(),
+        'html' => TRUE,
+      )
+    );
+  }
+  // Display 'configure' for other blocks.
+  else {
+    $vars['edit_links_array']['block-config'] = l('<span>' . t('configure') . '</span>', 'admin/build/block/configure/' . $block->module . '/' . $block->delta,
+      array(
+        'attributes' => array(
+          'title' => t('configure this block'),
+          'class' => 'block-config',
+        ),
+        'query' => drupal_get_destination(),
+        'html' => TRUE,
+      )
+    );
+  }
+
+  // Display 'edit view' for Views blocks.
+  if ($block->module == 'views' && user_access('administer views')) {
+    list($view_name, $view_block) = explode('-block', $block->delta);
+    $vars['edit_links_array']['block-edit-view'] = l('<span>' . t('edit view') . '</span>', 'admin/build/views/edit/' . $view_name,
+      array(
+        'attributes' => array(
+          'title' => t('edit the view that defines this block'),
+          'class' => 'block-edit-view',
+        ),
+        'query' => drupal_get_destination(),
+        'fragment' => 'views-tab-block' . $view_block,
+        'html' => TRUE,
+      )
+    );
+  }
+  // Display 'edit menu' for Menu blocks.
+  elseif (($block->module == 'menu' || ($block->module == 'user' && $block->delta == 1)) && user_access('administer menu')) {
+    $menu_name = ($block->module == 'user') ? 'navigation' : $block->delta;
+    $vars['edit_links_array']['block-edit-menu'] = l('<span>' . t('edit menu') . '</span>', 'admin/build/menu-customize/' . $menu_name,
+      array(
+        'attributes' => array(
+          'title' => t('edit the menu that defines this block'),
+          'class' => 'block-edit-menu',
+        ),
+        'query' => drupal_get_destination(),
+        'html' => TRUE,
+      )
+    );
+  }
+  // Display 'edit menu' for Menu block blocks.
+  elseif ($block->module == 'menu_block' && user_access('administer menu')) {
+    list($menu_name, ) = split(':', variable_get("menu_block_{$block->delta}_parent", 'navigation:0'));
+    $vars['edit_links_array']['block-edit-menu'] = l('<span>' . t('edit menu') . '</span>', 'admin/build/menu-customize/' . $menu_name,
+      array(
+        'attributes' => array(
+          'title' => t('edit the menu that defines this block'),
+          'class' => 'block-edit-menu',
+        ),
+        'query' => drupal_get_destination(),
+        'html' => TRUE,
+      )
+    );
+  }
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/template.comment.inc b/drupal/sites/all/themes/zen/zen-internals/template.comment.inc
new file mode 100644
index 0000000..9578763
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/template.comment.inc
@@ -0,0 +1,58 @@
+<?php
+/**
+ * @file
+ * Contains functions only needed when rendering comments.
+ */
+
+/**
+ * Override or insert variables into the comment templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("comment" in this case.)
+ */
+function _zen_preprocess_comment(&$vars, $hook) {
+  // In Drupal 7, $date has been renamed to $created.
+  $vars['created'] = $vars['date'];
+
+  // If comment subjects are disabled, don't display them.
+  if (variable_get('comment_subject_field_' . $vars['node']->type, 1) == 0) {
+    $vars['title'] = '';
+  }
+
+  // New comment.
+  if ($vars['comment']->new) {
+    $vars['classes_array'][] = 'comment-new';
+  }
+  // Add an "unpublished" flag.
+  if ($vars['comment']->status == COMMENT_NOT_PUBLISHED) {
+    $vars['unpublished'] = TRUE;
+    $vars['classes_array'][] = $vars['status'];
+  }
+  else {
+    $vars['unpublished'] = FALSE;
+  }
+  // Zebra striping.
+  if ($vars['id'] == 1) {
+    $vars['classes_array'][] = 'first';
+  }
+  if ($vars['id'] == $vars['node']->comment_count) {
+    $vars['classes_array'][] = 'last';
+  }
+  $vars['classes_array'][] = $vars['zebra'];
+  if ($vars['comment']->uid == 0) {
+    // Comment is by an anonymous user.
+    $vars['classes_array'][] = 'comment-by-anonymous';
+  }
+  else {
+    if ($vars['comment']->uid == $vars['node']->uid) {
+      // Comment is by the node author.
+      $vars['classes_array'][] = 'comment-by-node-author';
+    }
+    if ($vars['comment']->uid == $GLOBALS['user']->uid) {
+      // Comment was posted by current user.
+      $vars['classes_array'][] = 'comment-by-viewer';
+    }
+  }
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/template.conditional-styles.inc b/drupal/sites/all/themes/zen/zen-internals/template.conditional-styles.inc
new file mode 100644
index 0000000..fc4d04e
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/template.conditional-styles.inc
@@ -0,0 +1,112 @@
+<?php
+// The code for conditional stylesheets started out as a patch for Zen. Now that
+// it has been spun out to its own separate module, It would be nice to prevent
+// code drift between the Zen implementation and the conditional_styles.module,
+// so Zen now includes an exact copy of conditonal_style module's
+// conditional_styles.theme.inc file.
+
+/**
+ * @file
+ * Allows themes to add conditional stylesheets.
+ *
+ * @see http://msdn.microsoft.com/en-us/library/ms537512.aspx
+ */
+
+/**
+ * Return paths for the theme and its base themes.
+ *
+ * @param $theme
+ *   The name of the theme.
+ * @return
+ *   An array of all the theme paths.
+ */
+function conditional_styles_paths_to_basetheme($theme) {
+  static $theme_paths;
+  if (empty($theme_paths[$theme])) {
+    $theme_paths[$theme] = array();
+    $themes = list_themes();
+    // Grab the paths from the base theme.
+    if (!empty($themes[$theme]->base_theme)) {
+      $theme_paths[$theme] = conditional_styles_paths_to_basetheme($themes[$theme]->base_theme);
+    }
+    $theme_paths[$theme][$theme] = dirname($themes[$theme]->filename);
+  }
+  return $theme_paths[$theme];
+}
+
+/**
+ * When the theme registry is rebuilt, we also build the conditional stylesheets.
+ */
+function _conditional_styles_theme($existing, $type, $theme, $path) {
+  // Process the conditional stylesheets for every active theme.
+  $themes = list_themes();
+  foreach (array_keys($themes) AS $theme) {
+    // We only need to process active themes.
+    if ($themes[$theme]->status || $GLOBALS['theme'] == $theme) {
+      $paths = conditional_styles_paths_to_basetheme($theme);
+
+      // Grab all the conditional stylesheets.
+      $stylesheets = array();
+      // Start with the base theme and travel up the chain to the active theme.
+      foreach ($paths AS $theme_name => $path) {
+        // Look at the conditional-stylesheets defined in the theme's .info file.
+        if (!empty($themes[$theme_name]->info['conditional-stylesheets'])) {
+          foreach ($themes[$theme_name]->info['conditional-stylesheets'] AS $condition => $css) {
+            // Allow the theme to override its base themes' styles.
+            foreach ($css AS $media => $files) {
+              foreach ($files AS $file) {
+                $stylesheets[$condition][$media][$file] = $path;
+              }
+            }
+          }
+        }
+      }
+      // Render the stylesheets to link elements.
+      $conditional_styles = $conditional_styles_rtl = '';
+      if (!empty($stylesheets)) {
+        $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1);
+        $base_path = base_path();
+        foreach ($stylesheets AS $condition => $css) {
+          // Each condition requires its own set of links.
+          $output = $output_rtl = '';
+          foreach ($css AS $media => $files) {
+            foreach ($files AS $file => $path) {
+              // Don't allow non-existent stylesheets to clutter the logs with 404.
+              if (file_exists("./$path/$file")) {
+                $link = "<link type=\"text/css\" rel=\"stylesheet\" media=\"$media\" href=\"$base_path$path/$file$query_string\" />\n";
+                $output .= $link;
+                $output_rtl .= $link;
+                $file_rtl = str_replace('.css', '-rtl.css', $file);
+                if (file_exists("./$path/$file_rtl")) {
+                  $output_rtl .= "<link type=\"text/css\" rel=\"stylesheet\" media=\"$media\" href=\"$base_path$path/$file_rtl$query_string\" />\n";
+                }
+              }
+            }
+          }
+          if ($output) {
+            $conditional_styles .= "<!--[$condition]>\n$output<![endif]-->\n";
+            $conditional_styles_rtl .= "<!--[$condition]>\n$output_rtl<![endif]-->\n";
+          }
+        }
+      }
+      // Save the stylesheets for later retrieval.
+      if ($conditional_styles) {
+        if (db_is_active()) {
+          variable_set('conditional_styles_' . $theme, $conditional_styles);
+          variable_set('conditional_styles_' . $theme . '_rtl', $conditional_styles_rtl);
+        }
+        else {
+          $GLOBALS['conf']['conditional_styles_' . $theme] = $conditional_styles;
+          $GLOBALS['conf']['conditional_styles_' . $theme . '_rtl'] = $conditional_styles_rtl;
+        }
+      }
+      elseif (db_is_active()) {
+        variable_del('conditional_styles_' . $theme);
+        variable_del('conditional_styles_' . $theme . '_rtl');
+      }
+    }
+  }
+
+  // Return nothing.
+  return array();
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/template.theme-registry.inc b/drupal/sites/all/themes/zen/zen-internals/template.theme-registry.inc
new file mode 100644
index 0000000..b6fdf4c
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/template.theme-registry.inc
@@ -0,0 +1,137 @@
+<?php
+/**
+ * @file
+ * Contains infrequently used theme registry build functions.
+ */
+
+/**
+ * Implements HOOK_theme().
+ *
+ * We are simply using this hook as a convenient time to do some related work.
+ */
+function _zen_theme(&$existing, $type, $theme, $path) {
+  // Compute the conditional stylesheets.
+  if (!module_exists('conditional_styles')) {
+    include_once './' . _zen_path() . '/zen-internals/template.conditional-styles.inc';
+    // _conditional_styles_theme() only needs to be run once.
+    if ($theme == 'zen') {
+      _conditional_styles_theme($existing, $type, $theme, $path);
+    }
+  }
+
+  // Since we are rebuilding the theme registry and the theme settings' default
+  // values may have changed, make sure they are saved in the database properly.
+  zen_theme_get_default_settings($theme);
+
+  // If we are auto-rebuilding the theme registry, warn about the feature.
+  // Always display the warning in the admin section, otherwise limit to three
+  // warnings per hour.
+  if (function_exists('user_access') && user_access('administer site configuration') && theme_get_setting('zen_rebuild_registry') && $theme == $GLOBALS['theme'] && (arg(0) == 'admin' || flood_is_allowed($GLOBALS['theme'] . '_rebuild_registry_warning', 3))) {
+    flood_register_event($GLOBALS['theme'] . '_rebuild_registry_warning');
+    drupal_set_message(t('For easier theme development, the theme registry is being rebuilt on every page request. It is <em>extremely</em> important to <a href="!link">turn off this feature</a> on production websites.', array('!link' => url('admin/build/themes/settings/' . $GLOBALS['theme']))), 'warning', FALSE);
+  }
+
+  // Keep track of all the base themes.
+  static $base_themes = array();
+  $base_themes[] = $theme;
+
+  // Add a "process" phase to come after the "preprocess" functions.
+  if ($type == 'theme') {
+    foreach (array_keys($existing) as $hook) {
+      // Normally, preprocess functions are added to the registry after
+      // HOOK_theme() returns, but if we add them first, they won't be re-added.
+      if (function_exists($theme . '_preprocess')) {
+        $existing[$hook]['preprocess functions'][] = $theme . '_preprocess';
+      }
+      if (function_exists($theme . '_preprocess_' . $hook)) {
+        $existing[$hook]['preprocess functions'][] = $theme . '_preprocess_' . $hook;
+      }
+      // Add base theme process functions.
+      foreach ($base_themes as $base_theme) {
+        if (function_exists($base_theme . '_process')) {
+          $existing[$hook]['preprocess functions'][] = $base_theme . '_process';
+        }
+        if (function_exists($base_theme . '_process_' . $hook)) {
+          $existing[$hook]['preprocess functions'][] = $base_theme . '_process_' . $hook;
+        }
+      }
+      // Add the theme process functions.
+      if (function_exists($theme . '_process')) {
+        $existing[$hook]['preprocess functions'][] = $theme . '_process';
+      }
+      if (function_exists($theme . '_process_' . $hook)) {
+        $existing[$hook]['preprocess functions'][] = $theme . '_process_' . $hook;
+      }
+    }
+  }
+
+  // Manipulations only to be done by the base theme.
+  if ($theme == 'zen') {
+    // Insert zen_show_blocks_discovery() before template_preprocess_page().
+    $existing['page']['preprocess functions'] = array_merge(array('zen_show_blocks_discovery'), $existing['page']['preprocess functions']);
+
+    // Allow theme hook suggestions on theme_links.
+    $existing['links']['pattern'] = 'links__';
+
+    // The base theme registers region.tpl.php.
+    $templates = array(
+      'region' => array(
+        'arguments' => array('elements' => NULL),
+        'pattern' => 'region_',
+        'path' => drupal_get_path('theme', 'zen') . '/templates',
+        'template' => 'region',
+        // drupal_find_theme_templates() requires this, so manually add it.
+        'include files' => array(),
+      ),
+    );
+    // We have to manually find template suggestions since phptemplate_theme()
+    // is in charge of that, but runs before zen_theme().
+    $templates += drupal_find_theme_templates($templates, '.tpl.php', $path);
+    // We manually register the preprocess and process functions, since Drupal
+    // won't auto-register template_preprocess or process functions.
+    foreach (array_keys($templates) as $key) {
+      $templates[$key]['preprocess functions'] = array(
+        'template_preprocess',
+        'zen_preprocess',
+        'zen_preprocess_region',
+        'zen_process',
+      );
+    }
+    return $templates;
+  }
+
+  // Else return nothing.
+  return array();
+}
+
+/**
+ * Return the theme settings' default values from the .info and save them into the database.
+ *
+ * @param $theme
+ *   The name of theme.
+ */
+function zen_theme_get_default_settings($theme) {
+  $themes = list_themes();
+
+  // Get the default values from the .info file.
+  $defaults = !empty($themes[$theme]->info['settings']) ? $themes[$theme]->info['settings'] : array();
+
+  if (!module_exists('domain_theme') && !empty($defaults)) {
+    // Merge the defaults with the theme settings saved in the database.
+    $settings = array_merge($defaults, variable_get('theme_'. $theme .'_settings', array()));
+    // Save the settings back to the database.
+    if (db_is_active()) {
+      variable_set('theme_'. $theme .'_settings', $settings);
+    }
+    else {
+      $GLOBALS['conf']['theme_'. $theme .'_settings'] = $settings;
+    }
+    // If the active theme has been loaded, force refresh of Drupal internals.
+    if (!empty($GLOBALS['theme_key'])) {
+      theme_get_setting('', TRUE);
+    }
+  }
+
+  // Return the default settings.
+  return $defaults;
+}
diff --git a/drupal/sites/all/themes/zen/zen-internals/template.zen.inc b/drupal/sites/all/themes/zen/zen-internals/template.zen.inc
new file mode 100644
index 0000000..390f6c7
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen-internals/template.zen.inc
@@ -0,0 +1,41 @@
+<?php
+/**
+ * @file
+ * Add stylesheets that are only needed when Zen is the enabled theme.
+ *
+ * Don't do something this dumb in your sub-theme. Stylesheets should be added
+ * using your sub-theme's .info file. If you desire styles that apply
+ * conditionally, you can conditionally add a "body class" in the
+ * preprocess_page function. For example, see how wireframes.css is handled in
+ * zen_preprocess_page() and wireframes.css.
+ */
+
+/**
+ * If the user is silly and enables Zen as the theme, manually add some stylesheets.
+ */
+function _zen_preprocess_page(&$vars, $hook) {
+  $directory = _zen_path() . '/zen-internals/css';
+
+  // Add default styles.
+  if (theme_get_setting('zen_layout') == 'zen-columns-fixed') {
+    drupal_add_css($directory . '/zen-fixed.css', 'theme', 'all');
+  }
+  else {
+    drupal_add_css($directory . '/zen-liquid.css', 'theme', 'all');
+  }
+  // Add print styles.
+  drupal_add_css($directory . '/print.css', 'theme', 'print');
+
+  // Regenerate the stylesheets.
+  $vars['css'] = drupal_add_css();
+  $vars['styles'] = drupal_get_css();
+
+  // Add IE styles.
+  $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1);
+  $base_path = base_path() . $directory;
+  $vars['styles'] .= <<< IE_STYLES
+<!--[if IE]><link type="text/css" rel="stylesheet" media="all" href="$base_path/ie.css$query_string" /><![endif]-->
+<!--[if lte IE 6]><link type="text/css" rel="stylesheet" media="all" href="$base_path/ie6.css$query_string" /><![endif]-->
+
+IE_STYLES;
+}
diff --git a/drupal/sites/all/themes/zen/zen.info b/drupal/sites/all/themes/zen/zen.info
new file mode 100644
index 0000000..829b5aa
--- /dev/null
+++ b/drupal/sites/all/themes/zen/zen.info
@@ -0,0 +1,49 @@
+name        = Zen
+description = Zen sub-themes are the ultimate starting themes for Drupal 6. Read the <a href="http://drupal.org/node/873778">online docs</a> or the included README-FIRST.txt on how to create a theme with Zen.
+
+screenshot = zen-internals/screenshot.png
+
+core   = 6.x
+engine = phptemplate
+
+regions[sidebar_first]  = First sidebar
+regions[sidebar_second] = Second sidebar
+regions[navigation]     = Navigation bar
+regions[highlight]      = Highlighted content
+regions[content_top]    = Content top
+regions[content_bottom] = Content bottom
+regions[header]         = Header
+regions[footer]         = Footer
+regions[page_closure]   = Page closure
+
+features[] = logo
+features[] = name
+features[] = slogan
+features[] = mission
+features[] = node_user_picture
+features[] = comment_user_picture
+features[] = search
+features[] = favicon
+features[] = primary_links
+features[] = secondary_links
+
+  ; Set the default settings to be used in theme-settings.php
+settings[zen_block_editing]        = 1
+settings[zen_breadcrumb]           = yes
+settings[zen_breadcrumb_separator] = ' › '
+settings[zen_breadcrumb_home]      = 1
+settings[zen_breadcrumb_trailing]  = 1
+settings[zen_breadcrumb_title]     = 0
+settings[zen_layout]               = zen-columns-liquid
+settings[zen_rebuild_registry]     = 0
+settings[zen_wireframes]           = 0
+
+  ; Panels 3 layouts
+plugins[panels][layouts] = layouts
+
+; Information added by drupal.org packaging script on 2011-04-05
+version = "6.x-2.1"
+core = "6.x"
+project = "zen"
+datestamp = "1302017816"
+
diff --git a/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/INSTALL.txt b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/INSTALL.txt
new file mode 100644
index 0000000..d3d4bef
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/INSTALL.txt
@@ -0,0 +1,15 @@
+INSTALLATION
+------------
+
+This module should be included in the BOINC-Drupal project, and should
+be automatically downloaded along with the other BOINC-Drupal modules.
+
+Enable this module using the Administration pages: Administer » Site
+Building » Modules.
+
+Or use drush
+ * 'drush en boinc_solr_comments'
+
+See the README for how to configure this module. Before comments can
+be searched, the Apache Solr Index needs to be completely
+re-indexed. Delete the current index and re-index the site.
diff --git a/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/README.txt b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/README.txt
new file mode 100644
index 0000000..db238ba
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/README.txt
@@ -0,0 +1,73 @@
+INTRODUCTION
+------------
+
+The boinc_solr_comments module will index the comments of a BOINC
+project's Web site. The apachesolr module is a requirement as this
+module uses hooks from apachesolr to perform its job.
+
+REQUIREMENTS
+------------
+
+This module requires the following modules:
+
+ * apachesolr (https://www.drupal.org/project/apachesolr)
+   - Use version family 6.x-3.x
+
+INSTALLATION
+------------
+
+ * Install as you would normally install a contributed Drupal module.
+ * Enable the module normally.
+
+CONFIGURATION
+-------------
+
+ * Configure this module in Administration » Site configuration »
+   Apache Solr search » Index Comments
+
+Admins should choose what content (node) types shall be have their
+comments indexed by Apache Solr. By default, all node types are
+selected for indexing. Use the check-boxes to select content types.
+
+Every time this module is (re)configured, the Apache Solr Index needs
+to be completely re-indexed. Delete the current index and re-index the
+site.
+
+DESCRIPTION
+-----------
+
+Quick summary of apachesolr module: For every node that is created,
+the apachesolr module creates an object of type
+ApacheSolrDocument. These ApacheSolrDocuments contain multiple fields:
+such as 'content', node’s main content, and importantly for this
+description 'ts_comments', the node’s comments. For example, for a
+forum topic the 'content' is the forum post that starts the thread. All
+comments are flattened into 'ts_comments'.
+
+What this module does is to load each node’s document and remove the
+'ts_comments' field. Then it loops over all comments attached to the
+node and creates a separate ApacheSolrDocument objects for each
+one. In this way a forum topic with 6 comments is separated into 7
+ApacheSolrDocuments (1 forum topic + 6 comments) for indexing into
+Solr.
+
+In addition, the module will detect when a node or comment has been
+deleted, and inform Solr of that change.
+
+FAQ
+---
+
+Q: When I re-index the site, why does the number of documents Apache
+   Solr reports not match? e.g., '50 items successfully processed. 122
+   documents successfully sent to Solr.'
+
+A: This is normal behavior for this module. Without this module
+   installed, each node is a separate Apache Solr Document. The
+   apachesolr module will report the number of "items successfully
+   processed", which corresponds to the number of nodes. This is 50 in
+   the example above.
+
+   However, this module will create a separate Document for each
+   comment. Thus if there are 72 comments to be indexed, this module
+   will create 72 Documents, which with total the 122 documents shown
+   in the example above.
diff --git a/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.admin.inc b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.admin.inc
new file mode 100644
index 0000000..bf99dee
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.admin.inc
@@ -0,0 +1,54 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Administration page callbacks for boinc_solr_comments module.
+ */
+
+function boinc_solr_comments_form(&$form_state) {
+  $form = array();
+
+  $form['config'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Configuration'),
+    '#collapsible' => TRUE,
+  );
+
+  $options = array();
+  foreach (content_types() as $key => $info) {
+    // Exclude node types profile, team, and panel
+    switch ($key) {
+      case 'profile':
+      case 'team':
+      case 'panel':
+        continue 2;
+    }// switch key
+    $options[$key] = $info['name'];
+  }
+  asort($options);
+  
+  // Form defaults
+  $default = array(
+    'boinc_solr_comments_nodetypes' => variable_get('boinc_solr_comments_nodetypes', ''),
+  );
+  if (empty($default['boinc_solr_comments_nodetypes'])) {
+    $default['boinc_solr_comments_nodetypes'] = array('forum','team_forum','news','page','story');
+  }
+  
+  // Define the form
+  $form['config']['nodes'] = array(
+    '#type'  => 'markup',
+    '#value' => bts('Select the content types where the comments are indexed by Apace Solr. Your content must be re-indexed after changing this configuration.', array(), NULL, 'boinc:admin-solr-search-comments-option'),
+  );
+      
+  $form['config']['boinc_solr_comments_nodetypes'] = array(
+    '#type'          => 'checkboxes',
+    '#title'         => 'node',
+    '#options'       => $options,
+    '#default_value' => $default['boinc_solr_comments_nodetypes'],
+  );
+
+  return system_settings_form($form);
+}
+
diff --git a/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.info b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.info
new file mode 100644
index 0000000..616129f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.info
@@ -0,0 +1,9 @@
+name = BOINC Solr Comments
+description = Index comments into Apache Solr
+core = 6.x
+dependencies[] = apachesolr
+dependencies[] = apachesolr_search
+dependencies[] = boinccore
+package = BOINC
+
+version = 6.x-0.1
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.module b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.module
new file mode 100644
index 0000000..1533adc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinc_solr_search/boinc_solr_comments/boinc_solr_comments.module
@@ -0,0 +1,434 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Module indexes comments in nodes for apache solr.
+ */
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into drupal
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Implementation of hook_menu()
+ */
+function boinc_solr_comments_menu() {
+  $items = array();
+  $base_path = 'admin/settings/apachesolr/indexcomments';
+  $items[$base_path] = array(
+      'title' => 'Index Comments',
+      'description' => 'Administer Indexing of Comments',
+      'page callback' => 'drupal_get_form',
+      'page arguments' => array('boinc_solr_comments_form'),
+      'access arguments' => array('administer search'),
+      'file' => 'boinc_solr_comments.admin.inc',
+      'weight' => '10',
+  );
+
+  return $items;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into apache solr
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Implementation of hook_apachesolr_index_documents_alter()
+ * 
+ * This function separates the comments from a parent node and indexes
+ * the individual comments as separate ApacheSolrDocuments. 
+ * 
+ * The function loads each node’s Solr document, and removes the
+ * ts_comments field. Then it loops over all the node's comments found
+ * with a db_query and creates separate ApacheSolrDocument objects for
+ * each one. 
+ *
+ * At the end, the new documents representing the comments are merged
+ * with the input $documents array.
+ * 
+ * @param array $documents
+ *   Array of ApacheSolrDocument which are to be indexed
+ * @param string $entity
+ *   The entity object, typically a node object.
+ * @param string $entity_type
+ *   The entity's type, typically 'node'.
+ * @param $env_id
+ *   Environment ID for apache solr.
+ */
+function boinc_solr_comments_apachesolr_index_documents_alter(array &$documents, $entity, $entity_type, $env_id) {
+  $comdocs = array();
+
+  // Array of node types that will have comments indexed.
+  $node_types = variable_get('boinc_solr_comments_nodetypes', '');
+  if (empty($node_types)) {
+    // If the variable has not been set, then by default index
+    // comments for all known node types.
+    $node_types = array(
+        'forum'      => 'forum',
+        'news'       => 'news',
+        'page'       => 'page',
+        'story'      => 'story',
+        'team_forum' => 'team_forum',
+    );
+  }
+  
+  // Loop over all documents and alter:
+  foreach ($documents as $document) {
+    //dd($document, "index documents alter - document");
+
+    $to_process = ( array_key_exists($document->bundle, $node_types) AND $node_types[$document->bundle] );
+    if ( $document->entity_type=='node' AND $to_process) {
+      
+      // Remove ts_comments if present.
+      if (isset($document->ts_comments)) {
+        unset($document->ts_comments);
+      }
+      // Node information.
+      $nid = $document->entity_id;
+      $node = node_load($nid);
+      
+      // Query database for comments of node. Only return comments
+      // with status 0 (0 is published for comments).
+      $sql = 'SELECT cid from {comments} WHERE nid = %d AND status = 0 ORDER by timestamp DESC';
+      $resource = db_query($sql, $nid);
+      while ($row = db_fetch_array($resource)) {
+        // Load the comment from cid.
+        $comment = _comment_load($row['cid']);
+
+        // Code derived from _apachesolr_index_process_entity_get_document
+        $url_options = array('absolute' => TRUE);
+        $comment_document = new ApacheSolrdocument();
+
+        $comment_document->id = apachesolr_document_id($comment->cid, 'comment');
+        $comment_document->site = $document->site;
+        $comment_document->hash = apachesolr_site_hash();
+
+        $comment_document->entity_id = $comment->cid;
+        $comment_document->entity_type = 'comment';
+        $comment_document->bundle = 'Comment';
+        $comment_document->bundle_name = 'Comment';
+
+        $comment_document->path = 'goto/comment/' . $comment->cid;
+        $comment_document->url = url($comment_document->path, $url_options);
+
+        // Comment object has no language
+        $comment_document->ss_language = 'und';
+        if (function_exists('drupal_get_path_alias')) {
+          $output = drupal_get_path_alias($comment_document->path, NULL);
+          if ($output && $output != $document->path) {
+            $comment_document->path_alias = $output;
+          }
+        }
+        
+        // Code derived from apachesolr_index_node_solr_document
+        $comment_document->label = truncate_utf8(apachesolr_clean_text($comment->comment), 32, TRUE);
+        $comment_document->content = apachesolr_clean_text($comment->comment);
+        $comment_document->teaser = truncate_utf8($document->content, 300, TRUE);
+
+        // Author information
+        if ($comment->uid == 0 || strlen($comment->name) == 0) {
+          // @see user_validate_name(). !'0' === TRUE.
+          $comment_document->ss_name = '0';
+        }
+        else {
+          $comment_document->ss_name = $comment->name;
+          // We want the name to be searchable for keywords.
+          $comment_document->tos_name = $comment->name;
+        }
+
+        // Index formatted username so it can be searched and sorted
+        // on.
+        $account = (object) array('uid' => $comment->uid, 'name' => $comment->name);
+        $username = check_plain($account->name);
+        $comment_document->ss_name_formatted = $username;
+        $comment_document->tos_name_formatted = $username;
+        $comment_document->is_uid = $comment->uid;
+        $comment_document->bs_status = $comment->status;
+
+        // Timestamp of the comment
+        $comment_document->ds_created = apachesolr_date_iso($comment->timestamp);
+        $comment_document->ds_changed = apachesolr_date_iso($comment->timestamp);
+
+        // Add field for comment parent node id.
+        $comment_document->tos_content_extra = $nid;
+
+        // Unset the following fields (if set) that don't make sense
+        // for a comment.
+        if (isset($comment_document->bs_sticky)) {
+          unset($comment_document->bs_sticky);
+        }
+        if (isset($comment_document->bs_promote)) {
+          unset($comment_document->bs_promote);
+        }    
+        if (isset($comment_document->is_tnid)) {
+          unset($comment_document->is_tnid);
+        }
+        if (isset($comment_document->bs_translate)) {
+          unset($comment_document->bs_translate);
+        }
+        if (isset($comment_document->ts_last_comment_timestamp)) {
+          unset($comment_document->ts_last_comment_timestamp);
+        }
+        if (isset($comment_document->ds_last_comment_or_change)) {
+          unset($comment_document->ds_last_comment_or_change);
+        }
+        if (isset($comment_document->is_comment_count)) {
+          unset($comment_document->is_comment_count);
+        }
+
+        // Loop over fields in document and copy relevant values into
+        // comment_document.
+        foreach ($document as $fieldName => $fieldValue) {
+
+          // Copy over fields [im_taxonomy_vid_1], [tid], [im_vid_1],
+          // [im_vid_Forums], [tm_vid_1_names]
+          if ( ( preg_match('/tid/', $fieldName) OR preg_match('/vid/', $fieldName) ) AND is_array($fieldValue) ) {
+            foreach ($fieldValue as $subkey => $subvalue) {
+              $comment_document->addField($fieldName, $subvalue);
+            }
+          }// if preg_match
+               
+          // Set the access keys so this module will work with
+          // apachesolr_access.
+          if (module_exists('apachesolr_access')) {
+            if (preg_match('/^access/', $fieldName) AND is_array($fieldValue)) {
+              foreach ($fieldValue as $subkey => $subvalue) {
+                $comment_document->addField($fieldName, $subvalue);
+              }
+            }// if preg_match
+          }// if module_exist
+            
+        }// foreach document
+        
+        $comdocs[] = $comment_document;
+      }// while
+    }// if entity_type=node
+  }// documents
+
+  // Merge the comment documents with the input documents array. These
+  // documents will now be added to the Solr search index.
+  $documents = array_merge($documents, $comdocs);
+}
+
+/**
+ * Implementation of hook_apachesolr_process_results()
+ * 
+ * After a query, the search results for comments are filled by this
+ * function. The search results are used by the serach results
+ * template.
+ *
+ * @param array $results
+ *   Array of result from the Solr search.
+ * @param $query
+ *   The Solr query used for the search.
+ */
+function boinc_solr_comments_apachesolr_process_results(&$results, DrupalSolrQueryInterface $query) {
+  //dpm($query->getSolrParams(), "process_results query getSolrParams");
+  foreach($results as $id => $result) {
+    if ($result['entity_type']=='comment') {
+        $results[$id]['type'] = 'Comment';
+        $results[$id]['date'] = $result['fields']['changed'];
+        if (isset($result['fields']['is_uid'])) {
+          $uid = $result['fields']['is_uid'];
+          $results[$id]['uid']  = $uid;
+          $results[$id]['user'] = theme('username', user_load($uid));
+        }
+    } //if result entity_type == comment
+  }// foreach $result
+  //dpm($results, "process_results array_results");
+}
+
+/**
+ * Implementation of hook_apachesolr_query_alter()
+ *
+ * An additional field is added to the query results,
+ * tos_content_extra. This is used for comment search results, as the
+ * field contains the parent node id.
+ * 
+ * @params query
+ *   The Solr query used for the search.
+ */
+function boinc_solr_comments_apachesolr_query_alter($query) {
+  // Add custom field to query results
+  $query->addParam('fl','tos_content_extra');
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core/other modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+
+/**
+ * Implementation of hook_nodeapi()
+ * 
+ */
+function boinc_solr_comments_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
+  // Array of node types that will have comments indexed.
+  $node_types = variable_get('boinc_solr_comments_nodetypes', '');
+  if (empty($node_types)) {
+    // If the variable has not been set, then by default index
+    // comments for all known node types.
+    $node_types = array(
+        'forum'      => 'forum',
+        'news'       => 'news',
+        'page'       => 'page',
+        'story'      => 'story',
+        'team_forum' => 'team_forum',
+    );
+  }
+
+  switch ($op) {
+    case 'delete':
+      // Only call delete function on certain node types
+      if (in_array( $node->type, $node_types)) {
+        boinc_solr_comments_delete($node);
+      }
+      break;
+  } //switch
+}
+
+
+/**
+ * Helper function for hook_nodeapi()
+ *
+ * When a node is deleted, the comments with parent nid are removed
+ * from the Solr index.
+ *
+ * @param node $node
+ *  The node that is being deleted.
+ *
+ * @return bool
+ *   Returns TRUE if the comment was deleted, otherwise return FALSE.
+ */
+function boinc_solr_comments_delete($node) {
+  // Load the Solr environment.
+  $env_id = apachesolr_default_environment();
+  // Check to see if Solr is read-only.
+  if (apachesolr_environment_variable_get($env_id, 'apachesolr_read_only', APACHESOLR_READ_WRITE) == APACHESOLR_READ_ONLY) {
+    return FALSE;
+  }
+  
+  // Code derived from apachesolr_index_delete_entity_from_index
+  try {
+    $solr = apachesolr_get_solr($env_id);
+    // Custom query to find all comments with parent nid of the node bing deleted.
+    $query = "entity_type:comment AND tos_content_extra:" . $node->nid;
+    $solr->deleteByQuery($query);
+    // Log the query used for deletion.
+    watchdog('Apache Solr', 'Deleted documents from index with query @query', array('@query' => $query), WATCHDOG_INFO);
+  }
+  catch (Exception $e) {
+      watchdog('Apache Solr', nl2br(check_plain($e->getMessage())), NULL, WATCHDOG_ERROR);
+      return FALSE;
+  }// try
+
+  // all deletions sucessful
+  apachesolr_set_last_index_updated($env_id, APACHESOLR_REQUEST_TIME);
+  return TRUE;
+}
+
+/**
+ * Implementation of hook_comment()
+ *
+ */
+function boinc_solr_comments_comment(&$a1, $op) {
+  switch ($op) {
+    case 'view':
+    case 'update':
+      break;
+    case 'delete':
+      // $a1 should be a comment object
+      boinc_solr_comments_deletecomment($a1);
+      break;
+  }// switch
+}
+
+/** 
+ * Helper function for hook_comment()
+ *
+ * When a comment is deleted, the corresponding apache Solr document
+ * is removed from the Solr index.
+ *
+ * @param comment $comment
+ *   The comment to be deleted.
+ *
+ * @return bool
+ *   Returns TRUE if the comment was deleted, otherwise return FALSE.
+ */
+function boinc_solr_comments_deletecomment($comment) {
+  // Load the Solr environment.
+  $env_id = apachesolr_default_environment();
+  // Check to see if Solr is read-only.
+  if (apachesolr_environment_variable_get($env_id, 'apachesolr_read_only', APACHESOLR_READ_WRITE) == APACHESOLR_READ_ONLY) {
+    return FALSE;
+  }
+  //dd($comment->cid, "delete - nid begin");
+    
+  // Code derived from apachesolr_index_delete_entity_from_index.
+  try {
+    $solr = apachesolr_get_solr($env_id);
+    $entity_id = $comment->cid;
+    $entity_type = 'comment';
+    $document_id = apachesolr_document_id($entity_id, $entity_type);
+    $query = "id:$document_id OR sm_parent_document_id:$document_id";
+    $solr->deleteByQuery($query);
+    // Log the query used for deletion.
+    watchdog('Apache Solr', 'Deleted documents from index with query @query', array('@query' => $query), WATCHDOG_INFO);
+    }
+  catch (Exception $e) {
+    watchdog('Apache Solr', nl2br(check_plain($e->getMessage())), NULL, WATCHDOG_ERROR);
+    return FALSE;
+  }// try
+
+  // deletion sucessful
+  apachesolr_set_last_index_updated($env_id, APACHESOLR_REQUEST_TIME);
+  return TRUE;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Other Functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ *  Implementation of module_enable()
+ *
+ * Simply gives the admin a message after installing and enabling this module.
+ */
+
+function boinc_solr_comments_enable() {
+  drupal_set_message( bts('Warning: Your content <a href="@url">must be re-indexed</a> before Apache Solr will search comments.', array('@url' => url('admin/settings/apachesolr/index')), NULL, 'boinc:admin-solr-index-comments-message'), 'warning');
+}
+
+/** 
+ * Helper function which is called when a comment is published.
+ * Interfaces with boinccore module.
+ *
+ * @param comment $comment
+ *   The comment to be published (unhidden).
+ */
+function boinc_solr_comments_publish($comment) {
+  if ( ($comment->cid) AND ($comment->nid) ) {
+    $node = node_load($comment->nid);
+    // Tell Solr that the node has been updated, so the comment can be
+    // indexed.
+    apachesolr_entity_update($node, 'node');
+  }
+}
+
+/** 
+ * Helper function which is called when a comment is unpublished.
+ * Interfaces with boinccore module.
+ *
+ * @param comment $comment
+ *   The comment to be unpublished (hidden). 
+ */
+function boinc_solr_comments_unpublish($comment) {
+  if ( ($comment->cid) ) {
+    // Call the deletecomment function for hook comment.
+    boinc_solr_comments_deletecomment($comment);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/boinccore/boinccore.admin.inc b/drupal/sites/default/boinc/modules/boinccore/boinccore.admin.inc
new file mode 100644
index 0000000..3650f0d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinccore/boinccore.admin.inc
@@ -0,0 +1,229 @@
+<?php
+// $Id$
+
+/**
+* @file
+* Administration page callbacks for the boinccore module.
+*/
+
+/**
+  * The BOINC community form allows the setting of requirements for interaction
+  * in the community sections of the site.
+  */
+function boinccore_admin_community(&$form_state) {
+  $form = array();
+  $default = array(
+    'min_credit_to_post' => variable_get('boinc_comment_min_credit', 0),
+    'penalty_period' => variable_get('boinc_penalty_period', 7*24*60*60),
+    'moderator_mailing_list' => variable_get('boinc_moderator_mailing_list', ''),
+    'moderator_force_individual_notifications' => variable_get('boinc_moderator_force_individual_notifications', 0),
+  );
+  
+  // Define the form
+  $form['boinc_comment_min_credit'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Credit required for community participation'),
+    '#default_value' => $default['min_credit_to_post'],
+    '#description' => t('Set a minimum threshold of credit a user must have
+      earned before being allowed to create a profile, post comments or participate in forums.'),
+  );
+  $form['boinc_penalty_period'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Penalty period'),
+    '#default_value' => $default['penalty_period'],
+    '#description' => t('The amount of time (in seconds) that user privileges
+      are revoked when a user is banned from community participation.'),
+  );
+  $form['boinc_moderator_mailing_list'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Moderator mailing list'),
+    '#default_value' => $default['moderator_mailing_list'],
+    '#description' => t('As an alternative to sending moderator notifications
+      to individual users with the moderator role, enter a mailing list address
+      here to be the only target of the notification emails.'),
+  );
+  $form['boinc_moderator_force_individual_notifications'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Always send individual notifications'),
+    '#default_value' => $default['moderator_force_individual_notifications'],
+    '#description' => t('Continue to send individual moderator notification
+      emails even when a mailing list is provided.'),
+  );
+  
+  $form['tools'] = array(
+    '#title' => t('Tools'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+    '#attributes' => array('class' => '')
+  );
+  $form['tools']['reset_uotd'] = array(
+    '#type' => 'submit',
+    '#value' => t('Force new UOTD'),
+    '#submit' => array('boinccore_reset_user_of_the_day'),
+  );
+  
+  return system_settings_form($form);
+}
+
+/**
+  * Validate the BOINC community form.
+  */
+function boinccore_admin_community_validate($form, &$form_state) {
+  $values = $form_state['values'];
+  if (!is_numeric($values['boinc_comment_min_credit'])) {
+    form_set_error('boinc_comment_min_credit', t('The minimum credit value must be a number.'));
+  }
+}
+
+/**
+  * Handle post-validation submission of BOINC community form.
+  */
+function boinccore_admin_community_submit($form, &$form_state) {
+  drupal_set_message(t('BOINC community settings have been updated.'));
+}
+
+/**
+ * Force a reset of the user of the day
+ */
+function boinccore_reset_user_of_the_day() {
+  if (boincuser_select_user_of_the_day()) {
+    drupal_set_message(t('The user of the day has been reset.'));
+  }
+}
+
+/**
+  * The standard page generator form provides an interface to create standard
+  * pages, such as a Help or About page.
+  */
+function boinccore_admin_default_content(&$form_state) {
+  $form = array();
+  
+  // Define the form
+  $form['page'] = array(
+    '#type' => 'select',
+    '#title' => t('Generate default content for'),
+    '#options' => array(
+      0 => t('all standard pages'),
+//      'about' => t('About page'),
+      'help' => t('Help page'),
+    ),
+  );
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => 'Generate content',
+  );
+  
+  return $form;
+}
+
+/**
+  * Generate content based on the selection made on the form
+  */
+function boinccore_admin_default_content_submit($form, &$form_state) {
+  $option = $form_state['values']['page'];
+  $page_list = boinccore_admin_default_content_generate($option);
+  $pages_generated = count($page_list);
+  if ($pages_generated > 0) {
+    switch ($pages_generated) {
+    case 1:
+      $page_list = reset($page_list);
+      break;
+    case 2:
+      $page_list = implode(' and ', $page_list);
+      break;
+    default:
+      end($page_list);
+      $page_list[key($page_list)] = 'and ' . $page_list[key($page_list)];
+      $page_list = implode(', ', $page_list);
+    }
+    drupal_set_message(t('Default content has been generated for the @listed
+      @pages.', array(
+        '@listed' => $page_list, 
+        '@pages' => format_plural($pages_generated, 'page', 'pages'),
+      )
+    ));
+  }
+  else {
+    if ($option) {
+      drupal_set_message(t('The @specified page already exists.',
+        array('@specified' => $option)), 'warning');
+    }
+    else {
+      drupal_set_message(t('All pages already exist, so none can be recreated
+        automatically.'), 'warning');
+    }
+    drupal_set_message(t('To recreate a page, first delete the existing page (or
+      remove its URL alias), then try this function again.'), 'warning');
+  }
+}
+
+/**
+  * 
+  */
+function boinccore_admin_default_content_generate($pages = array()) {
+  if (!$pages) {
+    // If not specified, attempt to generate all pages by default
+    $pages = array(
+      'help',
+//      'about',
+    );
+  }
+  elseif (!is_array($pages)) {
+    $pages = array($pages);
+  }
+  $pages_generated = array();
+  if (in_array('about', $pages)) {
+    // Create the default About page, if it doesn't exist
+    // TODO: what is the default About page...?
+    if (!drupal_lookup_path('source', 'about')) {
+      drupal_set_message('The about page doesn\'t yet have a definition...', 'warning');
+      //$pages_generated[] = 'about';
+    }
+  }
+  if (in_array('help', $pages)) {
+    // Create the default Help page, if it doesn't exist
+    if (!drupal_lookup_path('source', 'help')) {
+      $node = array(
+        'type' => 'page',
+        'title' => t('Help'),
+        'uid' => 1,
+        'status' => 1,  // published
+        'promote' => 0, // not promoted to front page
+        'path' => 'help',
+        'pathauto_perform_alias' => FALSE,
+        'created' => time(),
+        'changed' => time(),
+        'comment' => 0, // disable comments
+        'moderate' => 0,
+        'body' => preg_replace('/>\s+</', '><',
+          '<p>Use this page to provide help and support for your site\'s
+          visitors:</p>
+          <ul>
+            <li>Add a link to your primary forum for getting help</li>
+            <li>Add a link to a page describing your screensaver</li>
+            <li>Add links to your social media outlets like Facebook or Twitter</li>
+            <li>Get help regarding <a href="http://boinc.berkeley.edu/help.php" target="_blank">BOINC in general</a></li>
+          </ul>'),
+        'sticky' => 0,
+        'format' => 4,
+        //'teaser' => $teaser,
+      );
+      $node = (object) $node; // node_save requires an object
+      node_save($node);
+      
+      $item = array(
+        'link_path' => drupal_get_normal_path('help'),
+        'link_title' => t('Help'),
+        'menu_name' => 'primary-links',
+        'weight' => 50,
+      );
+      menu_link_save($item);
+      $pages_generated[] = 'help';
+    }
+  }
+  // Refresh the cache with these changes
+  menu_cache_clear_all();
+  return $pages_generated;
+}
diff --git a/drupal/sites/default/boinc/modules/boinccore/boinccore.info b/drupal/sites/default/boinc/modules/boinccore/boinccore.info
new file mode 100644
index 0000000..80c38db
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinccore/boinccore.info
@@ -0,0 +1,8 @@
+; $Id$
+name = BOINC core
+description = Common BOINC features and functions
+core = 6.x
+dependencies[] = user
+dependencies[] = node
+dependencies[] = taxonomy
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boinccore/boinccore.install b/drupal/sites/default/boinc/modules/boinccore/boinccore.install
new file mode 100644
index 0000000..2a5cd9e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinccore/boinccore.install
@@ -0,0 +1,28 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_install()
+ */
+function boinccore_install() {
+  // Use schema API to create database table
+  //drupal_install_schema('boinccore');
+}
+
+/**
+* Implementation of hook_uninstall().
+*/
+function boinccore_uninstall() {
+  // Use schema API to delete database table.
+  //drupal_uninstall_schema('boinccore');
+  // Delete our module's variable from the variables table.
+  //variable_del('boinccore_');
+}
+
+/**
+* Implementation of hook_schema().
+*/ /*
+function boinccore_schema() {
+  $schema['boinccore'] = array();
+  return $schema;
+}*/
diff --git a/drupal/sites/default/boinc/modules/boinccore/boinccore.module b/drupal/sites/default/boinc/modules/boinccore/boinccore.module
new file mode 100644
index 0000000..5f5a96f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinccore/boinccore.module
@@ -0,0 +1,1933 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provides common BOINC module functionality.
+ *
+ * In general, any custom feature or function required independently by
+ * multiple BOINC modules should be in this module.
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+//require_once('includes/boinccore.forms.inc');
+//require_once('includes/boinccore.helpers.inc');
+require_once('boinccore.admin.inc');
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+ * Implementation of hook_menu(); determine the actions that correspond
+ * with defined URL paths
+ */
+function boinccore_menu() {
+  $items['node_control'] = array(
+    'page callback' => 'boinccore_node_control',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['comment_control'] = array(
+    'page callback' => 'boinccore_comment_control',
+    'access arguments' => array('administer comments'),
+    'type' => MENU_CALLBACK
+  );
+  $items['goto'] = array(
+    'page callback' => 'boinccore_url_pagination_handler',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['admin/boinc/community'] = array(
+    'title' => 'Community',
+    'description' => 'Global settings for community interaction.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boinccore_admin_community'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boinccore.admin.inc'
+  );
+  $items['admin/boinc/standard-content-generator'] = array(
+    'title' => 'Standard page generator',
+    'description' => 'Regenerate standard site content (e.g. Help and About Us
+      pages).',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boinccore_admin_default_content'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boinccore.admin.inc'
+  );
+  
+  // BOINC RPC wrappers
+  $items['lookup_account.php'] = array(
+    'title' => 'Look up account RPC',
+    'description' => 'RPC for getting the authenticator for a user account.',
+    'page callback' => 'boinccore_lookup_account',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['am_get_info.php'] = array(
+    'title' => 'Account manager get info RPC',
+    'description' => 'RPC for getting assorted details of a user account.',
+    'page callback' => 'boinccore_am_get_info',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['am_set_info.php'] = array(
+    'title' => 'Account manager set info RPC',
+    'description' => 'RPC for updating assorted details of a user account.',
+    'page callback' => 'boinccore_am_set_info',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['am_set_host_info.php'] = array(
+    'title' => 'Account manager set host info RPC',
+    'description' => 'RPC for updating the venue for a given host.',
+    'page callback' => 'boinccore_am_set_host_info',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['show_user.php'] = array(
+    'title' => 'Show user RPC',
+    'description' => 'RPC for getting assorted details of a user account.',
+    'page callback' => 'boinccore_show_user',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['pending.php'] = array(
+    'title' => 'Pending credit RPC',
+    'description' => 'RPC for getting pending credit for a given account.',
+    'page callback' => 'boinccore_pending_credit',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['create_team.php'] = array(
+    'title' => 'Create team RPC',
+    'description' => 'RPC for creating a new team.',
+    'page callback' => 'boinccore_create_team',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['team_lookup.php'] = array(
+    'title' => 'Team lookup RPC',
+    'description' => 'RPC for getting info on a team or matching teams.',
+    'page callback' => 'boinccore_team_lookup',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['team_email_list.php'] = array(
+    'title' => 'Get team member list RPC',
+    'description' => 'RPC for getting a list of members of a given team.',
+    'page callback' => 'boinccore_team_email_list',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['edit_forum_preferences_action.php'] = array(
+    'title' => 'Forum preferences RPC',
+    'description' => 'RPC for setting forum preferences for a given user.',
+    'page callback' => 'boinccore_edit_forum_preferences',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['forum_get_data.php'] = array(
+    'title' => 'Forum get data RPC',
+    'description' => 'RPC for getting recent forum activity for a given user.',
+    'page callback' => 'boinccore_forum_get_data',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  $items['apps.php'] = array(
+    'title' => 'Apps RPC',
+    'description' => 'RPC for getting the applications in the system.',
+    'page callback' => 'boinccore_apps',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  
+  return $items;
+}
+
+/**
+ * Implementation of hook_menu_alter()
+ */
+function boinccore_menu_alter(&$items) {
+  // If using Solr search and not core Drupal search, disable core search!
+  if (module_exists('global_search_solr') AND !module_exists('global_search')) {
+    // Add permission to user search.
+    $check = array(
+      'search/node/%menu_tail',
+      'search/user/%menu_tail',
+      'user/autocomplete'
+    );
+    foreach ($check as $path) {
+      if (isset($items[$path])) {
+        $items[$path]['access callback'] = FALSE;
+      }
+    }
+  }
+}
+
+/**
+ * Implementation of hook_enable()
+ */
+function boinccore_enable() {
+  // Automatically try to establish standard site content when this module is
+  // enabled (e.g. Help and About Us pages)
+  boinccore_admin_default_content_generate();
+}
+
+/**
+ * Implementation of hook_boot()
+ * Caching for anonymous users in Drupal 6 is not language specific, so using
+ * the browser language without path prefix can result in mixed languages being
+ * present in the cache for pages with the default (no language given) path. 
+ * As a workaround, redirect anonymous users to a language prefix if they are
+ * on the default site path and the browser reports a non-default language.
+ * See: https://www.drupal.org/node/339958#comment-3012662
+ */
+function boinccore_boot() {
+  global $user, $language;
+  $cache = variable_get('cache', CACHE_DISABLED);
+  $language_negotiation = variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE);
+
+  // If we have an anonymous user, page cache is enabled, the URL has no prefix
+  // and browser language negotiation is set, we perform a redirect to the
+  // prefixed URL. 
+  if (empty($user->uid) && $cache != CACHE_DISABLED && $language_negotiation == LANGUAGE_NEGOTIATION_PATH) {
+    $args = isset($_GET['q']) ? explode('/', $_GET['q']) : array();
+    $prefix = array_shift($args);
+
+    // Initialize language as we need the proper language negotiation to be
+    // performed.
+    drupal_bootstrap(DRUPAL_BOOTSTRAP_LANGUAGE);
+    
+    // But Drupal 6 language negotiation does not always work that well...
+    // so call this backported Drupal 7 language negotation function, which
+    // does both case insensitive and longest prefix matching
+    if (function_exists('locale_language_from_browser')) {
+      $language = locale_language_from_browser();
+    }
+
+    if (!empty($language->prefix) && $prefix != $language->prefix) {
+      // We need full path support to perform the redirect.
+      drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);
+
+      require_once './includes/common.inc';
+      $url = url($_GET['q'], array('query' => drupal_query_string_encode($_GET, array('q'))));
+      $code = variable_get('locale_redirect_http_code', 302);
+
+      // Since we are in a hook_boot() implementation cache mode is normal, so
+      // we can safely call hook_exit().
+      bootstrap_invoke_all('exit');
+      header("Location: $url", TRUE, $code);
+      exit;
+    }
+  }
+}
+
+
+if (!function_exists('locale_language_from_browser')) {
+/**
+ * Backport of locale_language_from_browser from Drupal 7
+ *
+ * The language_from_browser() function in Drupal 6 does not match the browser
+ * language preference case-insensitively or by longest prefix
+ *
+ * Obsolete in Drupal 7...
+ */
+  function locale_language_from_browser() {
+    if (empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+      return FALSE;
+    }
+    
+    $languages = language_list('enabled');
+    $languages = $languages[1];
+    
+    // The Accept-Language header contains information about the language
+    // preferences configured in the user's browser / operating system.
+    // RFC 2616 (section 14.4) defines the Accept-Language header as follows:
+    //   Accept-Language = "Accept-Language" ":"
+    //                  1#( language-range [ ";" "q" "=" qvalue ] )
+    //   language-range  = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
+    // Samples: "hu, en-us;q=0.66, en;q=0.33", "hu,en-us;q=0.5"
+    $browser_langcodes = array();
+    if (preg_match_all('@(?<=[, ]|^)([a-zA-Z-]+|\*)(?:;q=([0-9.]+))?(?:$|\s*,\s*)@', trim($_SERVER['HTTP_ACCEPT_LANGUAGE']), $matches, PREG_SET_ORDER)) {
+      foreach ($matches as $match) {
+        // We can safely use strtolower() here, tags are ASCII.
+        // RFC2616 mandates that the decimal part is no more than three digits,
+        // so we multiply the qvalue by 1000 to avoid floating point comparisons.
+        $langcode = strtolower($match[1]);
+        $qvalue = isset($match[2]) ? (float) $match[2] : 1;
+        $browser_langcodes[$langcode] = (int) ($qvalue * 1000);
+      }
+    }
+
+    // We should take pristine values from the HTTP headers, but Internet Explorer
+    // from version 7 sends only specific language tags (eg. fr-CA) without the
+    // corresponding generic tag (fr) unless explicitly configured. In that case,
+    // we assume that the lowest value of the specific tags is the value of the
+    // generic language to be as close to the HTTP 1.1 spec as possible.
+    // See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 and
+    // http://blogs.msdn.com/b/ie/archive/2006/10/17/accept-language-header-for-internet-explorer-7.aspx
+    asort($browser_langcodes);
+    foreach ($browser_langcodes as $langcode => $qvalue) {
+      $generic_tag = strtok($langcode, '-');
+      if (!isset($browser_langcodes[$generic_tag])) {
+        $browser_langcodes[$generic_tag] = $qvalue;
+      }
+    }
+
+    // Find the enabled language with the greatest qvalue, following the rules
+    // of RFC 2616 (section 14.4). If several languages have the same qvalue,
+    // prefer the one with the greatest weight.
+    $best_match_language = FALSE;
+    $max_qvalue = 0;
+    foreach ($languages as $langcode => $language) {
+      // Language tags are case insensitive (RFC2616, sec 3.10).
+      $langcode = strtolower($langcode);
+
+      // If nothing matches below, the default qvalue is the one of the wildcard
+      // language, if set, or is 0 (which will never match).
+      $qvalue = isset($browser_langcodes['*']) ? $browser_langcodes['*'] : 0;
+
+      // Find the longest possible prefix of the browser-supplied language
+      // ('the language-range') that matches this site language ('the language tag').
+      $prefix = $langcode;
+      do {
+        if (isset($browser_langcodes[$prefix])) {
+          $qvalue = $browser_langcodes[$prefix];
+          break;
+        }
+      } 
+       while ($prefix = substr($prefix, 0, strrpos($prefix, '-')));
+
+      // Find the best match.
+      if ($qvalue > $max_qvalue) {
+        $best_match_language = $language;
+        $max_qvalue = $qvalue;
+      }
+    }
+
+    return $best_match_language;
+  }
+}
+
+/**
+ * Implementation of hook_cron()
+ */
+function boinccore_cron() {
+  // Notify moderators if there is site content that requires moderator action
+  $items_in_queue = boincuser_moderation_queue_count('cron');
+  $last_notification = variable_get('boinccore_last_content_moderation_reminder', 0);
+  if ($items_in_queue AND $last_notification < time() - 24*60*60) {
+    global $base_url;
+    global $base_path;
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
+    $site_url = $base_url . $base_path;
+    $settings = array(
+      'from' => '',
+      'subject' => "Content at {$site_name} is awaiting moderation",
+      'message' => ''
+      . "Please visit the moderation queue page to review content that "
+      . "requires moderator action: \n"
+      . "\n"
+      . "{$site_url}moderate",
+    );
+    boinccore_rules_action_mail_to_moderators($settings);
+    variable_set('boinccore_last_content_moderation_reminder', time());
+  }
+}
+
+/**
+ * Implementation of hook_rules_action_info().
+ */
+function boinccore_rules_action_info() {
+  return array(
+    'boinccore_rules_action_mail_to_moderators' => array(
+      'label' => t('Notify moderators via email'),
+      'module' => 'BOINC core',
+      'eval input' => array('subject', 'message', 'from'),
+    ),
+    'boinccore_rules_action_mark_content_for_moderation' => array(
+      'label' => t('Mark content for moderation'),
+      'arguments' => array(
+        'node' => array('type' => 'node', 'label' => t('Content')),
+      ),
+      'module' => 'BOINC core',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_form_alter()
+ */
+function boinccore_form_alter(&$form, $form_state, $form_id) {
+  global $user;
+  $account = user_load($user->uid);
+  switch ($form_id) {
+  // Comment form
+  case 'comment_form':
+    $user_image = boincuser_get_user_profile_image($user->uid);
+    $user_info = '<div class="user">';
+    if ($user_image) {
+      $user_info .= '  <div class="picture">';
+      if (is_array($user_image) AND $user_image['image']['filepath']) {
+        $user_info .= theme('imagefield_image', $user_image['image'], $user_image['alt'], $user_image['alt'], array(), false);
+      }
+      elseif (is_string($user_image)) {
+        $user_info .= '<img src="' . $user_image . '"/>';
+      }
+      $user_info .= '  </div>';
+    }
+    $user_info .= '  <div class="name">' . theme('username', $account) . '</div>';
+    if ($account->uid) {
+      //$user_info .= '  <div class="join-date">Joined: ' . date('j M y', $account->created) . '</div>';
+      //$user_info .= '  <div class="post-count">Posts: ' . $account->post_count . '</div>';
+      //$user_info .= '  <div class="credit">Credit: ' . $account->boincuser_total_credit . '</div>';
+      //$user_info .= '  <div class="rac">RAC: ' . $account->boincuser_expavg_credit . '</div>';
+    }
+    $user_info .= '</div>';
+    array_unshift($form, array(
+      'user_info' => array(
+        '#value' => $user_info,
+      ),
+      'comment_form_prefix' => array(
+        '#value' => '<div class="form-body">',
+      ),
+    ));
+    $form['comment_form_suffix'] = array(
+      '#value' => '</div>',
+    );
+    
+    module_load_include('inc', 'bbcode', 'bbcode-help');
+    $form['bbcode_help'] = array(
+      '#title' => bts('BBcode help', array(), NULL, 'boinc:help-with-user-input-with-BBCode'),
+      '#type' => 'fieldset',
+      '#attributes' => array(
+        'class' => 'bbcode_help',
+      ),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+      'content' => array(
+        '#value' => _bbcode_filter_tip(),
+      ),
+    );
+    
+    // If a specific comment is being referenced, go back to it on cancel
+    if ($comment_ref = $form['pid']['#value']) {
+      $cancel_url = "goto/comment/{$comment_ref}";
+    }
+    else {
+      $cancel_url = "node/{$form['nid']['#value']}";
+    }
+    
+    // Wrap action buttons for styling consistency
+    $form['buttons']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['buttons']['submit'] = $form['submit'];
+    unset($form['submit']);
+    $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
+    $form['buttons']['submit']['#value'] = bts('Post comment', array(), NULL, 'boinc:post-forum-comment');
+    $form['buttons']['submit']['#suffix'] = '</li>';
+    $form['buttons']['submit']['#weight'] = 1002;
+    // We want all these buttons together under the "buttons" array, but the
+    // default submit and preview buttons cannot both be unset or odd display
+    // bugs result. Somehow the comment form ends up above the preview div in
+    // this case. So... don't unset the preview button, just hide it
+    $form['buttons']['preview'] = $form['preview'];
+    //unset($form['preview']);
+    $form['preview']['#attributes']['style'] = 'display: none;';
+    $form['buttons']['preview']['#prefix'] = '<li class="tab">';
+    $form['buttons']['preview']['#suffix'] = '</li>';
+    $form['buttons']['preview']['#weight'] = 1003;
+    $form['buttons']['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $cancel_url) . '</li>',
+      '#weight' => 1004,
+    );
+    $form['buttons']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    
+    // Remove redundant name field
+    unset($form['_author']);
+    
+    break;
+    
+  // Forum node form
+  case 'forum_node_form':
+  case 'team_forum_node_form':
+    $forum_id = key($form['#node']->taxonomy);
+    $form['buttons']['separator_bottom'] = array(
+      '#value' => '<div class="separator buttons"></div>',
+      '#weight' => 999,
+    );
+    
+    // Wrap action buttons for styling consistency
+    $form['buttons']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
+    $form['buttons']['submit']['#value'] = bts('Post topic', array(), NULL, 'boinc:post-forum-comment');
+    $form['buttons']['submit']['#suffix'] = '</li>';
+    $form['buttons']['submit']['#weight'] = 1002;
+    $form['buttons']['preview']['#prefix'] = '<li class="tab">';
+    $form['buttons']['preview']['#suffix'] = '</li>';
+    $form['buttons']['preview']['#weight'] = 1003;
+    $form['buttons']['preview_changes']['#prefix'] = '<li class="tab">';
+    $form['buttons']['preview_changes']['#suffix'] = '</li>';
+    $form['buttons']['preview_changes']['#weight'] = 1004;
+    $form['buttons']['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "community/forum/{$forum_id}") . '</li>',
+      '#weight' => 1005,
+    );
+    $form['buttons']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+
+    break;
+  default:
+  }
+}
+
+/**
+ * Implementation of hook_link_alter()
+ */
+function boinccore_link_alter(&$links, $node, $comment = NULL) {
+  //echo '<pre>' . print_r($links, true) . '</pre>';
+  foreach ($links as $module => $link) {
+    // Remove the ignore user link
+    if (strstr($module, 'ignore_user')) {
+      unset($links[$module]);
+    }
+  }
+  // Node first, then comment: to be consistent with boinccore_link() function
+  if (!($comment)) {
+    // modify the comment_add link
+    if (isset($links['comment_add'])) {
+      $links['comment_add']['title'] = bts('reply', array(), NULL, 'boinc:forum-reply-to-comment');
+      $links['comment_add']['attributes'] = array(
+          'title' => bts('Reply to this comment', array(), NULL, 'boinc:forum-reply-to-comment')
+      );
+    }
+    // modify quote link
+    if (isset($links['quote'])) {
+      $links['quote']['attributes'] = array(
+          'title' => bts('Reply to this topic with a quote', array(), NULL, 'boinc:forum-reply-to-comment')
+      );
+    }
+  }
+  else {
+    // Standard EDIT, DELETE, and REPLY links are created by Drupal, but we want to alter them
+    if (isset($links['comment_delete'])) {
+      $links['comment_delete']['attributes'] = array(
+          'title' => bts('Delete this comment', array(), NULL, 'boinc:forum-delete-comment')
+      );
+    }
+    if (isset($links['comment_edit'])) {
+      $links['comment_edit']['attributes'] = array(
+          'title' => bts('Edit this comment', array(), NULL, 'boinc:forum-edit-comment')
+      );
+    }
+    if (isset($links['comment_reply'])) {
+      $links['comment_reply']['attributes'] = array(
+          'title' => bts('Reply to this comment', array(), NULL, 'boinc:forum-reply-to-comment')
+      );
+    }
+  }// if !$comment
+}
+
+/**
+ * Implementation of hook_locale().
+ */
+function boinccore_locale($op = 'groups', $group = NULL) {
+  switch ($op) {
+    case 'groups':
+        return array('boinc' => 'BOINC');
+    case 'info':
+      //$info['boinc']['refresh callback'] = 'boinccore_locale_refresh';
+      $info['boinc']['format'] = FALSE;
+      return $info;
+  }
+}
+
+
+/**
+ * Implementation of hook_link()
+ */
+function boinccore_link($type, $object, $teaser = FALSE) {
+  // Add custom links with this hook
+
+  if ($type=='node') {
+    if ( ($object->type=='forum') OR ($object->type=='team_forum') ) {
+      // Add topic moderator controls
+      if (user_access('edit any forum topic')) {
+        $node_control = "node_control/{$object->nid}";
+        if ($object->sticky) {
+          $links['make_unsticky'] = array(
+              'title' => bts('Make unsticky', array(), NULL, 'boinc:forum-unsticky-comment'),
+              'href' => "{$node_control}/unsticky",
+              'attributes' => array(
+                  'title' => bts('Remove sticky status from this topic', array(), NULL, 'boinc:forum-unsticky-comment')
+              )
+          );
+        }
+        else {
+          $links['make_sticky'] = array(
+              'title' => bts('Make sticky', array(), NULL, 'boinc:forum-sticky-comment'),
+              'href' => "{$node_control}/sticky",
+              'attributes' => array(
+                  'title' => bts('Make this topic sticky', array(), NULL, 'boinc:forum-sticky-comment')
+              )
+          );
+        }
+        if ($object->comment == COMMENT_NODE_READ_WRITE) {
+          $links['lock'] = array(
+              'title' => bts('Lock', array(), NULL, 'boinc:forum-lock-comment'),
+              'href' => "{$node_control}/lock",
+              'attributes' => array(
+                  'title' => bts('Lock this thread for comments', array(), NULL, 'boinc:forum-lock-comment')
+              )
+          );
+        }
+        else {
+          $links['unlock'] = array(
+              'title' => bts('Unlock', array(), NULL, 'boinc:forum-unlock-comment'),
+              'href' => "{$node_control}/unlock",
+              'attributes' => array(
+                  'title' => bts('Unlock this thread for comments', array(), NULL, 'boinc:forum-unlock-comment')
+              )
+          );
+        }
+        if ($object->status) {
+          $links['hide'] = array(
+              'title' => bts('Hide', array(), NULL, 'boinc:forum-hide-comment'),
+              'href' => "{$node_control}/hide",
+              'attributes' => array(
+                  'title' => bts('Hide this topic', array(), NULL, 'boinc:forum-hide-comment')
+              )
+          );
+        }
+        else {
+          $links['unhide'] = array(
+              'title' => bts('Unhide', array(), NULL, 'boinc:forum-unhide-comment'),
+              'href' => "{$node_control}/unhide",
+              'attributes' => array(
+                  'title' => bts('Unhide this topic', array(), NULL, 'boinc:forum-unhide-comment')
+              )
+          );
+        }
+      }// if user_access('edit any forum topic')
+    }
+  }
+  else if ($type=='comment') {
+    $node = node_load($object->nid);
+    $nid = $object->nid;
+    $cid = $object->cid;
+
+    // QUOTE
+    if ($node->comment == COMMENT_NODE_READ_WRITE) {
+        $links['quote'] = array(
+            'title' => bts('Quote', array(), NULL, 'boinc:forum-reply-to-comment-with-quote'),
+            'href' => "comment/reply/{$nid}/{$cid}",
+            'attributes' => array(
+                'title' => bts('Reply to this comment with a quote', array(), NULL, 'boinc:forum-reply-to-comment')
+            ),
+            'fragment' => 'comment-form',
+            'query' => 'quote=1',
+        );
+    }
+    // HIDE and COVERT comment
+    // The following are moderator only links
+    if (user_access('administer comments')) {
+      $comment_control = "comment_control/{$cid}";
+      // Add link to convert comment into a new topic
+      $reply_count = db_result(db_query(' SELECT COUNT(*) FROM comments WHERE pid = %d', $cid ));
+      if ($reply_count == 0) {
+        $links['convert'] = array(
+            'title' => bts('Convert', array(), NULL, 'boinc:forum-convert-comment-to-topic'),
+            'href' => "{$comment_control}/convert",
+            'attributes' => array(
+                'title' => bts('Convert this comment to a new topic', array(), NULL, 'boinc:forum-convert-comment-to-topic')
+            )
+        );
+      }
+      // Add hide link
+      if ($object->status == 0) {
+        $links['hide'] = array(
+            'title' => bts('Hide', array(), NULL, 'boinc:forum-hide-comment'),
+            'href' => "{$comment_control}/hide",
+            'attributes' => array(
+                'title' => bts('Hide this comment', array(), NULL, 'boinc:forum-hide-comment')
+            )
+        );
+      }
+      else {
+        $links['unhide'] = array(
+            'title' => bts('Unhide', array(), NULL, 'boinc:forum-unhide-comment'),
+            'href' => "{$comment_control}/unhide",
+            'attributes' => array(
+                'title' => bts('Unhide this comment', array(), NULL, 'boinc:forum-unhide-comment')
+            )
+        );
+      }
+    }// if user_access('administer comments')
+  }//if $type
+
+  return $links;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Page callbacks from hook_menu()
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Controller for handling simple node status configuration.
+ * Allow published, sticky, and comment status to be set on nodes by direct
+ * link rather than through the node form.
+ */
+function boinccore_node_control($nid = NULL, $action = NULL) {
+  if ((!$nid OR !$node = node_load($nid)) OR
+      ($node->type == 'forum' AND !user_access('edit any forum topic')) OR
+      ($node->type != 'forum' AND !user_access('administer nodes'))) {
+    // What are you even doing here...
+    return FALSE;
+  }
+  switch ($action) {
+  case 'unhide':
+    node_publish_action($node);
+    break;
+  case 'hide':
+    node_unpublish_action($node);
+    break;
+  case 'sticky':
+    node_make_sticky_action($node);
+    break;
+  case 'unsticky':
+    node_make_unsticky_action($node);
+    break;
+  case 'lock':
+    $node->comment = 1;
+    watchdog('action', 'Locked comments on @type %title.', array(
+      '@type' => node_get_types('name', $node), '%title' => $node->title));
+    break;
+  case 'unlock':
+    $node->comment = 2;
+    watchdog('action', 'Unlocked comments on @type %title.', array(
+      '@type' => node_get_types('name', $node), '%title' => $node->title));
+    break;
+  default:
+  }
+  node_save($node);
+  drupal_goto("node/{$nid}");
+}
+
+/**
+ * Controller for handling simple comment status configuration.
+ * Allow published status to be set on comments by direct link rather than
+ * through the comment edit form.
+ */
+function boinccore_comment_control($cid = NULL, $action = NULL) {
+  if (!$cid OR !$comment = _comment_load($cid)) {
+    // What are you even doing here...
+    return FALSE;
+  }
+  $return_path = "node/{$comment->nid}";
+  $return_anchor = "comment-{$cid}";
+  switch ($action) {
+  case 'unhide':
+    comment_publish_action($comment);
+    if (module_exists("boinc_solr_comments")) {
+      boinc_solr_comments_publish($comment);
+    }
+    break;
+  case 'hide':
+    comment_unpublish_action($comment);
+    if (module_exists("boinc_solr_comments")) {
+      boinc_solr_comments_unpublish($comment);
+    }
+    break;
+  case 'convert':
+    $node = new stdClass();
+    $node->name = $comment->subject;
+    $node->title = $node->name;
+    $node->body = $comment->comment;
+    $node->type = 'forum';
+    $node->created = $comment->timestamp;
+    $node->changed = $node->created;
+    $node->promote = 0; // Display on front page?
+    $node->sticky = 0;  // Display top of page?
+    $node->status = 1;   // Published?
+    $node->comment = 2;
+    //$node->language = 'en';
+    $node->uid = $comment->uid;
+    
+    // Preselect the parent's taxonomy ID
+    $parent_node = node_load($comment->nid);
+    $node->tid = $parent_node->tid;
+ 
+    if (filter_access($comment->format)) {
+      $node->format = $comment->format;
+    }
+    
+    // Save the new node
+    node_save($node);
+    taxonomy_node_save($node, array($node->tid));
+    
+    // Delete the comment
+    module_load_include('inc', 'comment', 'comment.admin');
+    _comment_delete_thread($comment);
+    
+    $return_path = "node/{$node->nid}";
+    $return_anchor = NULL;
+    break;
+  default:
+  }
+  drupal_goto($return_path, NULL, $return_anchor);
+}
+
+/**
+ * Page callback for the look up account RPC (lookup_account.php).
+ * Get the authenticator for a given account
+ */
+function boinccore_lookup_account() {
+  include_boinc('user/lookup_account.php');
+}
+
+/**
+ * Page callback for the account manager get info RPC (am_get_info.php).
+ * Get assorted details for a given account
+ */
+function boinccore_am_get_info() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  // Capture the XML output of the RPC so we can override things
+  ob_start();
+  include_boinc('user/am_get_info.php');
+  $xml = ob_get_clean();
+  $xml = load_configuration($xml);
+  // See if the account has an approved profile in Drupal
+  $uid = !empty($xml['am_get_info_reply']['id']) ? boincuser_lookup_uid($xml['am_get_info_reply']['id']) : 0;
+  if ($uid) {
+    $content_profile = content_profile_load('profile', $uid);
+    $profile_is_approved = ($content_profile->status AND !$content_profile->moderate);
+    $country = check_plain($content_profile->field_country[0]['value']);
+    $website = '';
+    if ($profile_is_approved) {
+      $website = check_plain($content_profile->field_url[0]['value']);
+    }
+    // Override BOINC values with Drupal values as needed
+    $xml['am_get_info_reply']['has_profile']['@value'] = ($profile_is_approved) ? 1 : 0;
+    $xml['am_get_info_reply']['country']['@value'] = $country;
+    $xml['am_get_info_reply']['url']['@value'] = $website;
+  }
+  print save_configuration($xml);
+}
+
+/**
+ * Page callback for the account manager set info RPC (am_set_info.php).
+ * Update assorted details for a given account
+ */
+function boinccore_am_set_info() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  // Validate the XML prefs (in case BOINC does not)
+  $global_prefs = !empty($_POST['global_prefs']) ? $_POST['global_prefs'] : (!empty($_GET['global_prefs']) ? $_GET['global_prefs'] : NULL);
+  $project_prefs = !empty($_POST['project_prefs']) ? $_POST['project_prefs'] : (!empty($_GET['project_prefs']) ? $_GET['project_prefs'] : NULL);
+  libxml_use_internal_errors(true);
+  $xml = new DomDocument();
+  if ($global_prefs) {
+    $xml->loadXML($global_prefs, LIBXML_NOBLANKS);
+    if ($errors = libxml_get_errors($xml)) {
+      $lines = explode("\r", $global_prefs);
+      watchdog('am_set_info', "XML validation error in global_prefs: {$errors[0]->message} at line {$errors[0]->line}" .
+        ': <br/>' . htmlentities($lines[$errors[0]->line - 1]), array(), WATCHDOG_ERROR);
+    }
+  }
+  elseif ($project_prefs) {
+    $xml->loadXML($project_prefs, LIBXML_NOBLANKS);
+    if ($errors = libxml_get_errors($xml)) {
+      $lines = explode("\r", $project_prefs);
+      watchdog('am_set_info', "XML validation error in project_prefs: {$errors[0]->message} at line {$errors[0]->line}" .
+        ': <br/>' . htmlentities($lines[$errors[0]->line - 1]), array(), WATCHDOG_ERROR);
+    }
+  }
+  if (!$errors) {
+    // Capture the XML output of the RPC so we can override things
+    ob_start();
+    include_boinc('user/am_set_info.php');
+    $xml = ob_get_clean();
+    $xml = load_configuration($xml);
+    if (isset($xml['am_set_info_reply']['success'])) {
+      // Find the account in Drupal
+      $boinc_auth = !empty($_POST['account_key']) ? $_POST['account_key'] : $_GET['account_key'];
+      db_set_active('boinc');
+      $boinc_id = db_result(db_query("
+        SELECT id
+        FROM {user}
+        WHERE authenticator = '%s'",
+        $boinc_auth
+      ));
+      db_set_active('default');
+      $uid = boincuser_lookup_uid($boinc_id);
+      
+      // Apply any relevant updates to the Drupal account, also
+      $country = !empty($_POST['country']) ? $_POST['country'] : (!empty($_GET['country']) ? $_GET['country'] : NULL);
+      $url = !empty($_POST['url']) ? $_POST['url'] : (!empty($_GET['url']) ? $_GET['url'] : NULL);
+      $email_addr = !empty($_POST['email_addr']) ? $_POST['email_addr'] : (!empty($_GET['email_addr']) ? $_GET['email_addr'] : NULL);
+      
+      if ($email_addr) {
+        $account = user_load($uid);
+        user_save($account, array('mail' => $email_addr));
+      }
+      if ($country OR $url) {
+        $content_profile = content_profile_load('profile', $uid);
+        if ($country) $content_profile->field_country[0]['value'] = $country;
+        if ($url) $content_profile->field_url[0]['value'] = $url;
+        node_save($content_profile);
+      }
+    }
+  }
+  else {
+    $xml = array(
+      'error' => array(
+        'error_num' => -112,
+        'error_msg' => "{$errors[0]->message} at line {$errors[0]->line}" .
+        ': <br/>' . htmlentities($lines[$errors[0]->line - 1])
+      ),
+    );
+  }
+  print save_configuration($xml);
+}
+
+/**
+ * Page callback for the set host info RPC (am_set_host_info.php).
+ * Update the venue for the given host
+ */
+function boinccore_am_set_host_info() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  // Capture the XML output of the RPC so we can override things
+  ob_start();
+  include_boinc('user/am_set_host_info.php');
+  $xml = ob_get_clean();
+  $xml = load_configuration($xml);
+  if (isset($xml['am_set_host_info_reply']['success'])) {
+    // Override anything that needs overriding
+  }
+  print save_configuration($xml);
+}
+
+/**
+ * Page callback for the show user RPC (show_user.php).
+ * Get assorted details for a given account
+ */
+function boinccore_show_user() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  // Capture the XML output of the RPC so we can override things
+  ob_start();
+  include_boinc('user/show_user.php');
+  $xml = ob_get_clean();
+  $xml = load_configuration($xml);
+  // See if the account has an approved profile in Drupal
+  $uid = !empty($xml['user']['id']) ? boincuser_lookup_uid($xml['user']['id']) : 0;
+  if ($uid) {
+    $content_profile = content_profile_load('profile', $uid);
+    $profile_is_approved = ($content_profile->status AND !$content_profile->moderate);
+    $country = check_plain($content_profile->field_country[0]['value']);
+    $website = '';
+    if ($profile_is_approved) {
+      $website = check_plain($content_profile->field_url[0]['value']);
+    }
+    // Override BOINC values with Drupal values as needed
+    $xml['user']['has_profile']['@value'] = ($profile_is_approved) ? 1 : 0;
+    $xml['user']['country']['@value'] = $country;
+    $xml['user']['url']['@value'] = $website;
+  }
+  print save_configuration($xml);
+}
+
+/**
+ * Page callback for the pending credit RPC (pending.php).
+ * Get pending credit information for a given account
+ */
+function boinccore_pending_credit() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  include_boinc('user/pending.php');
+}
+
+/**
+ * Page callback for the create team RPC (create_team.php).
+ * Create a team with the provided details
+ */
+function boinccore_create_team() {
+  
+  if (module_exists('boincteam')) {
+    module_load_include('module', 'boincteam', 'boincteam');
+  
+    $input_format = !empty($values['format']) ? $values['format'] : 4;
+    if (!empty($_GET['description'])) $_GET['description'] = check_markup($_GET['description'], $input_format);
+    
+    // Try to add the team to BOINC and capture the XML output of the RPC
+    ob_start();
+    include_boinc('user/create_team.php');
+    $xml = ob_get_clean();
+    $xml = load_configuration($xml);
+    
+    if (isset($xml['create_team_reply']['success'])) {
+      $boincteam_id = isset($xml['create_team_reply']['team_id']['@value']) ? $xml['create_team_reply']['team_id']['@value'] : 0;
+      
+      if ($boincteam_id) {
+        
+        $boincteam = boincteam_load($boincteam_id);
+        $team_owner_uid = boincuser_lookup_uid($boincteam->userid);
+        
+        // Create the team node in Drupal
+        
+        $values = array(
+          'name' => isset($_GET['name']) ? $_GET['name'] : '',
+          'description' => isset($_GET['description']) ? $_GET['description'] : '',
+          'type' => isset($_GET['type']) ? $_GET['type'] : '',
+        );
+        $teaser = node_teaser($values['description']);
+        $created_time = time();
+        
+        $node = array(
+          'type' => 'team',
+          'title' => $values['name'],
+          'body' => $values['description'],
+          'teaser' => $teaser,
+          'uid' => $team_owner_uid,
+          'path' => null,
+          'status' => 1,  // published or not - always publish
+          'promote' => 0,
+          'created' => $created_time,
+          'comment' => 0,  // comments disabled
+          'moderate' => 0,
+          'sticky' => 0,
+          'format' => $input_format
+        );
+        
+        // Use pathauto function, if available, to clean up the path
+        if (module_exists('pathauto')) {
+          module_load_include('inc', 'pathauto', 'pathauto');
+          $node['path'] = pathauto_cleanstring($values['name']);
+        
+          $node = (object) $node; // node_save requires an object form
+          $team_categories = taxonomy_get_term_by_name($values['type']);
+          $node->taxonomy[] = $team_categories[0];
+          
+          // Save the team node
+          node_save($node);
+          // Save the team IDs to a BOINC <--> Drupal reference table.
+          db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boincteam_id, $node->nid);
+        }
+        else {
+          $xml['create_team_reply']['warning'] = t(
+            'There was a problem integrating this team into Drupal. Please
+            contact @project administrators!', array('@project' => PROJECT)
+          );
+          watchdog(
+            'BOINC team',
+            'BOINC teams require the Pathauto module. Team cannot be created in
+              Drupal via create_team.php RPC.',
+            array(),
+            WATCHDOG_ERROR
+          );
+          // Delete from the BOINC DB if we can't sync with Drupal
+          $boincteam::delete();
+        }
+      }
+      else {
+        $xml['create_team_reply']['warning'] = t(
+          'There was a problem integrating this team into Drupal. Please
+          contact @project administrators!', array('@project' => PROJECT)
+        );
+        watchdog(
+          'BOINC team',
+          'Team cannot be created in Drupal via create_team.php RPC because no
+            BOINC team ID was returned in the XML.',
+          array(),
+          WATCHDOG_ERROR
+        );
+      }
+    }
+  }
+  else {
+    $xml = array(
+      'error' => array(
+        'error_num' => -1,
+        'error_msg' => t(
+          'Teams are not enabled for this project'
+        ),
+      ),
+    );
+    watchdog(
+      'BOINC team',
+      'Team cannot be created in Drupal via create_team.php RPC because the
+        BOINC team module is not enabled.',
+      array(),
+      WATCHDOG_ERROR
+    );
+  }
+  print save_configuration($xml);
+}
+
+/**
+ * Page callback for the team lookup RPC (team_lookup.php).
+ * Get info on a team by ID or a list of teams that match a given name
+ */
+function boinccore_team_lookup() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  include_boinc('user/team_lookup.php');
+}
+
+/**
+ * Page callback for the team email list RPC (team_email_list.php).
+ * Get members of a given team
+ */
+function boinccore_team_email_list() {
+  // See if the account has an approved profile in Drupal
+  $boincteam_id = !empty($_POST['teamid']) ? $_POST['teamid'] : $_GET['teamid'];
+  $account_key = !empty($_POST['account_key']) ? $_POST['account_key'] : $_GET['account_key'];
+  $credit_only = !empty($_POST['creditonly']) ? $_POST['creditonly'] : $_GET['creditonly'];
+  $show_xml = !empty($_POST['xml']) ? $_POST['xml'] : $_GET['xml'];
+  if (!$show_xml) {
+      // creditonly does not affect non xml output in BOINC
+      $credit_only = FALSE;
+  }
+  $admin_request = FALSE;
+  if ($boincteam_id && is_numeric($boincteam_id)) {
+    if ($account_key) {
+      // See if this is a team admin
+      db_set_active('boinc');
+      $boincuser_id = db_result(db_query("
+        SELECT 
+          u.id
+        FROM {user} u
+        WHERE u.authenticator = '%s'
+        LIMIT 1",
+        $account_key
+      ));
+      db_set_active('default');
+      require_boinc('team');
+      $boincuser = boincuser_load(boincuser_lookup_uid($boincuser_id), TRUE);
+      $boincteam = boincteam_load($boincteam_id);
+      $admin_request = is_team_admin($boincuser, $boincteam) OR is_team_founder($boincuser, $boincteam);
+    }
+
+    if ($credit_only) {
+      db_set_active('boinc');
+      $result = db_query("
+        SELECT
+          u.id, u.name, u.cross_project_id, u.email_addr, u.total_credit, u.expavg_credit, u.expavg_time
+        FROM {user} u
+        WHERE u.teamid = %d and u.total_credit > 0",
+        $boincteam_id
+      );
+      db_set_active('default');
+
+      $xml = array('users' => array());
+      while ($member = db_fetch_object($result)) {
+        $team_member = array(
+          'id' => $member->id,
+          'cpid' => md5($member->cross_project_id.$member->email_addr),
+          'name' => htmlspecialchars($member->name),
+          'total_credit' => round($member->total_credit),
+          'expavg_credit' => round($member->expavg_credit),
+          'expavg_time' => round($member->expavg_time),
+        );
+        $xml['users']['user'][] = $team_member;
+      }
+    }
+    else {
+      $members = array();
+      db_set_active('boinc');
+      $result = db_query("
+        SELECT
+          u.name, u.email_addr
+        FROM {user} u
+        WHERE u.teamid = %d
+        ORDER BY u.email_addr ASC",
+        $boincteam_id
+      );
+      db_set_active('default');
+
+      while ($member = db_fetch_object($result)) {
+        $members[] = user_load(array('mail' => $member->email_addr));
+      }
+
+      $xml = array('users' => array());
+      foreach ($members as $member) {
+        $content_profile = content_profile_load('profile', $member->uid);
+        $team_member = array(
+          'id' => $member->boincuser_id,
+          'cpid' => $member->boincuser_cpid,
+          'create_time' => $member->created,
+          'name' => $member->boincuser_name,
+          'country' => $content_profile->field_country[0]['value'],
+          'total_credit' => $member->boincuser_total_credit,
+          'expavg_credit' => $member->boincuser_expavg_credit,
+          'expavg_time' => $member->boincuser_expavg_time,
+          'url' => $content_profile->field_url[0]['value'],
+          'has_profile' => ($content_profile->status AND !$content_profile->moderate) ? 1 : 0,
+        );
+        if ($admin_request) {
+          $team_member['email_addr'] = $member->mail;
+        }
+        $xml['users']['user'][] = $team_member;
+      }
+    }
+  }
+  else {
+    $xml = array(
+      'error' => array(
+        'error_num' => -136,
+        'error_msg' => 'Not found',
+      ),
+    );
+  }
+  print xml_to_text(array_to_xml($xml), TRUE, TRUE);
+}
+
+/**
+ * Page callback for the forum prefs RPC (edit_forum_preferences_action.php).
+ * Edit the forum preferences for a given user
+ */
+function boinccore_edit_forum_preferences() {
+  // Do not pass through to BOINC in this case as BOINC forums are no longer
+  // relevant -- use Drupal data only
+  
+  $account_key = !empty($_POST['account_key']) ? $_POST['account_key'] : (!empty($_GET['account_key']) ? $_GET['account_key'] : NULL);
+  
+  require_boinc('boinc_db');
+  $boincuser = BoincUser::lookup_auth($account_key);
+  if ($boincuser) {
+    $uid = boincuser_lookup_uid($boincuser->id);
+    if ($uid AND $account = user_load($uid)) {
+      // Currently supported preferences
+      $avatar_url = isset($_POST['avatar_url']) ? $_POST['avatar_url'] : (isset($_GET['avatar_url']) ? $_GET['avatar_url'] : NULL);
+      $hide_signatures = isset($_POST['forum_hide_signatures']) ? $_POST['forum_hide_signatures'] : (isset($_GET['forum_hide_signatures']) ? $_GET['forum_hide_signatures'] : NULL);
+      $signature = isset($_POST['signature']) ? $_POST['signature'] : (isset($_GET['signature']) ? $_GET['signature'] : NULL);
+      $post_order = isset($_POST['thread_sort']) ? $_POST['thread_sort'] : (isset($_GET['thread_sort']) ? $_GET['thread_sort'] : NULL);
+      // Update preferences as needed
+      if ($avatar_url) {
+        $avatar_image = file_get_contents($avatar_url);
+        if ($avatar_image) {
+          $image_dir = 'profiles';
+          $image_path = "{$image_dir}/{$boincuser->id}_avatar.jpg";
+          $file = file_save_data($avatar_image, $image_path, FILE_EXISTS_REPLACE);
+          if ($file) {
+            $profile = new stdClass();
+            $profile->type = 'profile';
+            $profile->language = NULL;
+            if ($profile_nid = content_profile_profile_exists($profile, $account->uid)) {
+              $profile_node = node_load($profile_nid);
+              if ($profile_node) {
+                $avatar_image = get_cck_image_object(file_directory_path() . '/' . $image_path, 'field_image', 'profile', TRUE);
+                if ($avatar_image) {
+                  $profile_node->field_image[0] = $avatar_image;
+                  node_save($profile_node);
+                }
+                else {
+                  $error = 'Error saving avatar to profile';
+                }
+              }
+              else {
+                $error = 'Unable to load user profile';
+              }
+            }
+            else {
+              $error = 'User has no profile, so avatar could not be added';
+            }
+          }
+          else {
+            $error = 'Unable to save remote image';
+          }
+        }
+        else {
+          $error = 'Could not find avatar image at URL';
+        }
+      }
+      if ($hide_signatures !== NULL) {
+        user_save($account, array('hide_signatures' => ($hide_signatures ? 1 : 0)));
+      }
+      if ($signature !== NULL) {
+        $signature = check_markup($signature);
+        user_save($account, array('signature' => $signature));
+      }
+      if ($post_order) {
+        require_boinc('forum');
+        $post_order_map = array(
+          CREATE_TIME_OLD => 2,
+          CREATE_TIME_NEW => 1,
+        );
+        $drupal_post_order = isset($post_order_map[$post_order]) ? $post_order_map[$post_order] : 2;
+        user_save($account, array('sort' => $drupal_post_order));
+      }
+      if (!$error) {
+        // Success
+        $xml = array(
+          'edit_forum_preferences' => array(
+            'success' => NULL,
+          ),
+        );
+      }
+      else {
+        // Failure
+        $xml = array(
+          'error' => array(
+            'error_num' => -1,
+            'error_msg' => $error,
+          ),
+        );
+      }
+    }
+    else {
+      // Drupal user not found
+      $xml = array(
+        'error' => array(
+          'error_num' => -1,
+          'error_msg' => 'Unknown error',
+        ),
+      );
+    }
+  }
+  else {
+    // BOINC user not found
+    $xml = array(
+      'error' => array(
+        'error_num' => -136,
+        'error_msg' => 'Not found',
+      ),
+    );
+  }
+  print xml_to_text(array_to_xml($xml), TRUE, TRUE);
+}
+
+/**
+ * Page callback for the user forum activity RPC (forum_get_data.php).
+ * Get the last comments OR threads made by a given user
+ */
+function boinccore_forum_get_data() {
+  // Do not pass through to BOINC in this case as BOINC forums are no longer
+  // relevant -- use Drupal data only
+  
+  $xml = array();
+  $boinc_id = !empty($_POST['userid']) ? $_POST['userid'] : (!empty($_GET['userid']) ? $_GET['userid'] : NULL);
+  $uid = boincuser_lookup_uid($boinc_id);
+  
+  if ($uid) {
+    $method = !empty($_POST['method']) ? $_POST['method'] : (!empty($_GET['method']) ? $_GET['method'] : NULL);
+    $count = !empty($_POST['count']) ? $_POST['count'] : (!empty($_GET['count']) ? $_GET['count'] : NULL);
+    if (!$count) $count = 10;
+    
+    switch ($method) {
+    case 'user_posts':
+      $content_length = !empty($_POST['content_length']) ? $_POST['content_length'] : (!empty($_GET['content_length']) ? $_GET['content_length'] : NULL);
+      $posts = db_query("
+        SELECT
+          c.cid,
+          n.nid,
+          c.uid,
+          n.title,
+          c.comment,
+          c.timestamp
+        FROM comments c
+        INNER JOIN node n ON c.nid = n.nid
+        WHERE (n.status = 1) AND (c.uid = '%d')
+        ORDER BY timestamp DESC
+        LIMIT %d",
+        $uid, (int) $count
+      );
+      $xml = array(
+        'rpc_response' => array(
+          'count' => 0,
+          'posts' => array(),
+        ),
+      );
+      $post_count = 0;
+      while ($post = db_fetch_object($posts)) {
+        $xml['rpc_response']['posts']['post'][] = array(
+          'id' => $post->cid,
+          'threadid' => $post->nid,
+          'threadtitle' => $post->title,
+          'timestamp' => $post->timestamp,
+          'content' => ($content_length ? substr($post->comment, 0, $content_length) : $post->comment),
+        );
+        $post_count++;
+      }
+      $xml['rpc_response']['count'] = $post_count;
+      break;
+      
+    case 'user_threads':
+      $threads = db_query("
+        SELECT
+          n.nid,
+          n.uid,
+          n.title,
+          nc.totalcount AS views,
+          n.changed,
+          n.title,
+          tn.tid,
+          (
+            SELECT COUNT(*)
+            FROM {comments} c
+            WHERE c.nid = n.nid
+          ) AS replies
+        FROM {node} n 
+        LEFT JOIN {node_counter} nc ON nc.nid = n.nid
+        LEFT JOIN {term_node} tn ON tn.nid = n.nid
+        WHERE (n.status = 1) AND (n.uid = '%d')
+        ORDER BY changed DESC
+        LIMIT %d",
+        $uid, (int) $count
+      );
+      $xml = array(
+        'rpc_response' => array(
+          'count' => 0,
+          'threads' => array(),
+        ),
+      );
+      $thread_count = 0;
+      while ($thread = db_fetch_object($threads)) {
+        $xml['rpc_response']['threads']['thread'][] = array(
+          'id' => $thread->nid,
+          'forumid' => $thread->tid,
+          'replies' => $thread->replies,
+          'views' => $thread->views,
+          'timestamp' => $thread->changed,
+          'title' => $thread->title,
+        );
+        $thread_count++;
+      }
+      $xml['rpc_response']['count'] = $thread_count;
+      break;
+    default:
+      $xml = array(
+        'error' => array(
+          'error_num' => -1,
+          'error_msg' => 'Unknown error',
+        ),
+      );
+    }
+  }
+  else {
+    $xml = array(
+      'error' => array(
+        'error_num' => -136,
+        'error_msg' => 'Not found',
+      ),
+    );
+  }
+  print xml_to_text(array_to_xml($xml), TRUE, TRUE);
+}
+
+/**
+ * Page callback for the applications RPC (apps.php).
+ * Get information on applications in the system
+ */
+function boinccore_apps() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  include_boinc('user/apps.php');
+}
+
+/**
+ * Controller for handling direct linking to paginated content.
+ * Because pagination settings are user configurable, it is impossible to know
+ * in advance on which page a given comment will appear. Link instead to this
+ * controller function, which can compute the page based on the user's settings
+ */
+function boinccore_url_pagination_handler($type, $object_id = NULL) {
+  global $user;
+  $path = NULL;
+  $params = array();
+  switch ($type) {
+  case 'boinc-forum':
+    // Redirect requests to a BOINC forum to the Drupal forum
+    $forum_id = db_result(db_query('
+      SELECT tid
+      FROM {boincimport_temp_forum}
+      WHERE forum_id = %d',
+      $object_id
+    ));
+    if ($forum_id) {
+      drupal_goto("community/forum/{$forum_id}");
+    }
+    break;
+  case 'boinc-forum-index':
+    // Redirect requests to the top level BOINC forum to Drupal forums
+    drupal_goto("community/forum");
+    break;
+  case 'boinc-forum-post':
+    // Redirect requests to a BOINC forum post to the Drupal comment
+    $cid = db_result(db_query('
+      SELECT cid
+      FROM {boincimport_temp_post}
+      WHERE post_id = %d',
+      $object_id
+    ));
+    if ($cid) {
+      drupal_goto("goto/comment/{$cid}");
+    }
+    break;
+  case 'boinc-forum-topic':
+    // Redirect requests to a BOINC forum topic to the Drupal node
+    $nid = db_result(db_query('
+      SELECT nid
+      FROM {boincimport_temp_topic}
+      WHERE topic_id = %d',
+      $object_id
+    ));
+    if ($nid) {
+      drupal_goto("node/{$nid}");
+    }
+    break;
+  case 'boinc-host':
+    // Redirect requests to BOINC host details to the host page in Drupal
+    drupal_goto("host/{$object_id}");
+    break;
+  case 'boinc-hosts-user':
+    // Redirect requests to a BOINC user host list to the host list in Drupal
+    $uid = boincuser_lookup_uid($object_id);
+    if ($uid) {
+      drupal_goto("account/{$uid}/computers");
+    }
+    break;
+  case 'boinc-result':
+    // Redirect requests to BOINC task details to the task page in Drupal
+    drupal_goto("task/{$object_id}");
+  case 'boinc-results-host':
+    // Redirect requests to BOINC tasks by host to the host task page in Drupal
+    drupal_goto("host/{$object_id}/tasks");
+    break;
+  case 'boinc-results-user':
+    // Redirect requests to a BOINC user's tasks to the Drupal account tasks
+    drupal_goto("account/tasks");
+    break;
+  case 'boinc-user':
+    // Redirect requests to a BOINC user ID to the Drupal profile
+    $uid = boincuser_lookup_uid($object_id);
+    if ($uid) {
+      drupal_goto("account/{$uid}");
+    }
+    break;
+  case 'boinc-workunit':
+    // Redirect requests to BOINC workunits to the workunit page in Drupal
+    drupal_goto("workunit/{$object_id}");
+    break;
+  case 'comment':
+    $object = _comment_load($object_id);
+    if ($object) {
+      $path = "node/{$object->nid}";
+      // Get the sort order
+      $gt_lt = '<';
+      $comment_order = (isset($user->sort)) ? $user->sort : variable_get('comment_default_order_forum', 2);
+      if ($comment_order == COMMENT_ORDER_NEWEST_FIRST) {
+        $gt_lt = '>';
+      }
+      // See how many comments there are before (or after) this comment...
+      $comment_offset = db_result(db_query('
+        SELECT COUNT(*) FROM {comments}
+        WHERE nid = %d AND status = 0 AND timestamp %s %d',
+        $object->nid, $gt_lt, $object->timestamp));
+      if ($comment_offset) {
+        // Get the number of comments per page
+        if ($user->comments_per_page) {
+          $comments_per_page = $user->comments_per_page;
+        }
+        else {
+          $node = node_load($object->nid);
+          $comments_per_page = variable_get(
+            "comment_default_per_page_{$node->type}", 50
+          );
+        }
+        // Determine which page to display in order to show the given comment
+        $page = floor($comment_offset / $comments_per_page);
+        if ($page) {
+          $params = array('page' => $page);
+        }
+      }
+    }
+    if ($path) {
+      drupal_goto($path, $params, "comment-{$object->cid}");
+    }
+    break;
+  case 'friend-requests':
+    // Check for a login, then redirect to the user's friend requests page
+    if ($user->uid) {
+      drupal_goto("account/{$user->uid}/friends/pending");
+    }
+    else {
+      drupal_goto('user/login', array(
+        'destination' => 'goto/friend-requests'
+      ));
+    }
+    break;
+  default:
+  }
+  drupal_not_found();
+}
+
+/*
+ * Fetch an array of all countries 
+ */
+function boinccore_get_country_list() {
+  return array(
+    'None' => 'None',
+    'International' => 'International',
+    'Afghanistan' => 'Afghanistan',
+    'Albania' => 'Albania',
+    'Algeria' => 'Algeria',
+    'American Samoa' => 'American Samoa',
+    'Andorra' => 'Andorra',
+    'Angola' => 'Angola',
+    'Anguilla' => 'Anguilla',
+    'Antarctica' => 'Antarctica',
+    'Antigua and Barbuda' => 'Antigua and Barbuda',
+    'Argentina' => 'Argentina',
+    'Armenia' => 'Armenia',
+    'Aruba' => 'Aruba',
+    'Australia' => 'Australia',
+    'Austria' => 'Austria',
+    'Azerbaijan' => 'Azerbaijan',
+    'Bahamas, The' => 'Bahamas, The',
+    'Bahrain' => 'Bahrain',
+    'Bangladesh' => 'Bangladesh',
+    'Barbados' => 'Barbados',
+    'Belarus' => 'Belarus',
+    'Belgium' => 'Belgium',
+    'Belize' => 'Belize',
+    'Benin' => 'Benin',
+    'Bermuda' => 'Bermuda',
+    'Bhutan' => 'Bhutan',
+    'Bolivia' => 'Bolivia',
+    'Bosnia and Herzegovina' => 'Bosnia and Herzegovina',
+    'Botswana' => 'Botswana',
+    'Brazil' => 'Brazil',
+    'British Virgin Islands' => 'British Virgin Islands',
+    'Brunei' => 'Brunei',
+    'Bulgaria' => 'Bulgaria',
+    'Burkina Faso' => 'Burkina Faso',
+    'Burma' => 'Burma',
+    'Burundi' => 'Burundi',
+    'Cambodia' => 'Cambodia',
+    'Cameroon' => 'Cameroon',
+    'Canada' => 'Canada',
+    'Cape Verde' => 'Cape Verde',
+    'Cayman Islands' => 'Cayman Islands',
+    'Central African Republic' => 'Central African Republic',
+    'Chad' => 'Chad',
+    'Channel Islands' => 'Channel Islands',
+    'Chile' => 'Chile',
+    'China' => 'China',
+    'Colombia' => 'Colombia',
+    'Comoros' => 'Comoros',
+    'Congo, Democratic Republic of the' => 'Congo, Democratic Republic of the',
+    'Congo, Republic of the' => 'Congo, Republic of the',
+    'Cook Islands' => 'Cook Islands',
+    'Costa Rica' => 'Costa Rica',
+    'Cote d\'Ivoire' => 'Cote d\'Ivoire',
+    'Croatia' => 'Croatia',
+    'Cuba' => 'Cuba',
+    'Cyprus' => 'Cyprus',
+    'Czech Republic' => 'Czech Republic',
+    'Denmark' => 'Denmark',
+    'Djibouti' => 'Djibouti',
+    'Dominica' => 'Dominica',
+    'Dominican Republic' => 'Dominican Republic',
+    'East Timor' => 'East Timor',
+    'Ecuador' => 'Ecuador',
+    'Egypt' => 'Egypt',
+    'El Salvador' => 'El Salvador',
+    'Equatorial Guinea' => 'Equatorial Guinea',
+    'Eritrea' => 'Eritrea',
+    'Estonia' => 'Estonia',
+    'Ethiopia' => 'Ethiopia',
+    'Falkland Islands' => 'Falkland Islands',
+    'Faroe Islands' => 'Faroe Islands',
+    'Fiji' => 'Fiji',
+    'Finland' => 'Finland',
+    'France' => 'France',
+    'French Guiana' => 'French Guiana',
+    'French Polynesia' => 'French Polynesia',
+    'Gabon' => 'Gabon',
+    'Gambia, The' => 'Gambia, The',
+    'Gaza Strip' => 'Gaza Strip',
+    'Georgia' => 'Georgia',
+    'Germany' => 'Germany',
+    'Ghana' => 'Ghana',
+    'Gibraltar' => 'Gibraltar',
+    'Greece' => 'Greece',
+    'Greenland' => 'Greenland',
+    'Grenada' => 'Grenada',
+    'Guadeloupe' => 'Guadeloupe',
+    'Guam' => 'Guam',
+    'Guatemala' => 'Guatemala',
+    'Guinea' => 'Guinea',
+    'Guinea-Bissau' => 'Guinea-Bissau',
+    'Guyana' => 'Guyana',
+    'Haiti' => 'Haiti',
+    'Holy See (Vatican City)' => 'Holy See (Vatican City)',
+    'Honduras' => 'Honduras',
+    'Hong Kong' => 'Hong Kong',
+    'Hungary' => 'Hungary',
+    'Iceland' => 'Iceland',
+    'India' => 'India',
+    'Indonesia' => 'Indonesia',
+    'Iran' => 'Iran',
+    'Iraq' => 'Iraq',
+    'Ireland' => 'Ireland',
+    'Isle of Man' => 'Isle of Man',
+    'Israel' => 'Israel',
+    'Italy' => 'Italy',
+    'Jamaica' => 'Jamaica',
+    'Japan' => 'Japan',
+    'Jordan' => 'Jordan',
+    'Kazakhstan' => 'Kazakhstan',
+    'Korea, North' => 'Korea, North',
+    'Korea, South' => 'Korea, South',
+    'Kenya' => 'Kenya',
+    'Kiribati' => 'Kiribati',
+    'Kuwait' => 'Kuwait',
+    'Kyrgyzstan' => 'Kyrgyzstan',
+    'Laos' => 'Laos',
+    'Latvia' => 'Latvia',
+    'Lebanon' => 'Lebanon',
+    'Lesotho' => 'Lesotho',
+    'Liberia' => 'Liberia',
+    'Libya' => 'Libya',
+    'Liechtenstein' => 'Liechtenstein',
+    'Lithuania' => 'Lithuania',
+    'Luxembourg' => 'Luxembourg',
+    'Macau' => 'Macau',
+    'Macedonia' => 'Macedonia',
+    'Madagascar' => 'Madagascar',
+    'Malawi' => 'Malawi',
+    'Malaysia' => 'Malaysia',
+    'Maldives' => 'Maldives',
+    'Mali' => 'Mali',
+    'Malta' => 'Malta',
+    'Marshall Islands' => 'Marshall Islands',
+    'Martinique' => 'Martinique',
+    'Mauritania' => 'Mauritania',
+    'Mauritius' => 'Mauritius',
+    'Mexico' => 'Mexico',
+    'Micronesia' => 'Micronesia',
+    'Moldova' => 'Moldova',
+    'Monaco' => 'Monaco',
+    'Mongolia' => 'Mongolia',
+    'Montenegro' => 'Montenegro',
+    'Montserrat' => 'Montserrat',
+    'Morocco' => 'Morocco',
+    'Mozambique' => 'Mozambique',
+    'Namibia' => 'Namibia',
+    'Nauru' => 'Nauru',
+    'Nepal' => 'Nepal',
+    'Netherlands' => 'Netherlands',
+    'Netherlands Antilles' => 'Netherlands Antilles',
+    'New Caledonia' => 'New Caledonia',
+    'New Zealand' => 'New Zealand',
+    'Nicaragua' => 'Nicaragua',
+    'Niger' => 'Niger',
+    'Nigeria' => 'Nigeria',
+    'Niue' => 'Niue',
+    'Northern Mariana Islands' => 'Northern Mariana Islands',
+    'Norway' => 'Norway',
+    'Oman' => 'Oman',
+    'Pakistan' => 'Pakistan',
+    'Palau' => 'Palau',
+    'Panama' => 'Panama',
+    'Papua New Guinea' => 'Papua New Guinea',
+    'Paraguay' => 'Paraguay',
+    'Peru' => 'Peru',
+    'Philippines' => 'Philippines',
+    'Pitcairn Islands' => 'Pitcairn Islands',
+    'Poland' => 'Poland',
+    'Portugal' => 'Portugal',
+    'Puerto Rico' => 'Puerto Rico',
+    'Qatar' => 'Qatar',
+    'Reunion' => 'Reunion',
+    'Romania' => 'Romania',
+    'Russia' => 'Russia',
+    'Rwanda' => 'Rwanda',
+    'Saint Kitts and Nevis' => 'Saint Kitts and Nevis',
+    'Saint Lucia' => 'Saint Lucia',
+    'Saint Pierre and Miquelon' => 'Saint Pierre and Miquelon',
+    'Saint Vincent and the Grenadines' => 'Saint Vincent and the Grenadines',
+    'Samoa' => 'Samoa',
+    'San Marino' => 'San Marino',
+    'Sao Tome and Principe' => 'Sao Tome and Principe',
+    'Saudi Arabia' => 'Saudi Arabia',
+    'Senegal' => 'Senegal',
+    'Serbia' => 'Serbia',
+    'Seychelles' => 'Seychelles',
+    'Sierra Leone' => 'Sierra Leone',
+    'Singapore' => 'Singapore',
+    'Slovakia' => 'Slovakia',
+    'Slovenia' => 'Slovenia',
+    'Solomon Islands' => 'Solomon Islands',
+    'Somalia' => 'Somalia',
+    'South Africa' => 'South Africa',
+    'Spain' => 'Spain',
+    'Sri Lanka' => 'Sri Lanka',
+    'Sudan' => 'Sudan',
+    'Suriname' => 'Suriname',
+    'Swaziland' => 'Swaziland',
+    'Sweden' => 'Sweden',
+    'Switzerland' => 'Switzerland',
+    'Syria' => 'Syria',
+    'Taiwan' => 'Taiwan',
+    'Tajikistan' => 'Tajikistan',
+    'Tanzania' => 'Tanzania',
+    'Thailand' => 'Thailand',
+    'Togo' => 'Togo',
+    'Tokelau' => 'Tokelau',
+    'Tonga' => 'Tonga',
+    'Trinidad and Tobago' => 'Trinidad and Tobago',
+    'Tunisia' => 'Tunisia',
+    'Turkey' => 'Turkey',
+    'Turkmenistan' => 'Turkmenistan',
+    'Turks and Caicos Islands' => 'Turks and Caicos Islands',
+    'Tuvalu' => 'Tuvalu',
+    'Uganda' => 'Uganda',
+    'Ukraine' => 'Ukraine',
+    'United Arab Emirates' => 'United Arab Emirates',
+    'United Kingdom' => 'United Kingdom',
+    'United States' => 'United States',
+    'Uruguay' => 'Uruguay',
+    'Uzbekistan' => 'Uzbekistan',
+    'Vanuatu' => 'Vanuatu',
+    'Venezuela' => 'Venezuela',
+    'Vietnam' => 'Vietnam',
+    'Virgin Islands' => 'Virgin Islands',
+    'Wallis and Futuna' => 'Wallis and Futuna',
+    'West Bank' => 'West Bank',
+    'Western Sahara' => 'Western Sahara',
+    'Yemen' => 'Yemen',
+    'Zambia' => 'Zambia',
+    'Zimbabwe' => 'Zimbabwe',
+  );
+}
+
+
+/**
+ * Action: Mark node for moderation
+ */
+function boinccore_rules_action_mark_content_for_moderation($node) {
+  $node->moderate = 1;
+  return array('node' => $node);
+}
+
+/**
+ * Action: Send mail to moderators.
+ */
+function boinccore_rules_action_mail_to_moderators($settings) {
+  module_load_include('inc', 'rules', 'modules/system.rules');
+  $mailing_list = variable_get('boinc_moderator_mailing_list', '');
+  $force_individual_notifications = variable_get('boinc_moderator_force_individual_notifications', 0);
+  
+  if (!$mailing_list OR $force_individual_notifications) {
+    // Send individual emails to all moderators
+    $roles = user_roles();
+    $moderator_rid = array_search('moderator', $roles);
+    if ($moderator_rid !== FALSE) {
+      $settings['recipients'] = array($moderator_rid);
+      rules_action_mail_to_users_of_role($settings);
+    }
+    else {
+      watchdog(
+        'boinccore',
+        'Unable to identify members of the moderator role to send moderator notifications!',
+        array(),
+        WATCHDOG_ERROR
+      );
+    }
+  }
+  if ($mailing_list) {
+    $settings['to'] = $mailing_list;
+    rules_action_mail($settings);
+  }
+}
+/**
+ * Action "Send mail to moderators" configuration form
+ */
+function boinccore_rules_action_mail_to_moderators_form($settings = array(), &$form) {
+  // Select only non-anonymous user roles because anonymous users won't have emails.
+  rules_action_mail_to_user_form($settings, $form);
+}
+
+/*
+ * BOINC wrapper for string translation
+ */
+function bts($string, $args = array(), $langcode = NULL, $context = 'boinc: ', $update = TRUE) {
+  if (function_exists('i18nstrings_ts')) {
+    $string = i18nstrings_ts($context, $string, $langcode, $update);
+  }
+  if (empty($args)) {
+    return $string;
+  }
+  else {
+    // Transform arguments before inserting them.
+    foreach ($args as $key => $value) {
+      switch ($key [0]) {
+        case '@':
+          // Escaped only.
+          $args [$key] = check_plain($value);
+          break;
+
+        case '%':
+        default:
+          // Escaped and placeholder.
+          $args [$key] = theme('placeholder', $value);
+          break;
+
+        case '!':
+          // Pass-through.
+      }
+    }
+    return strtr($string, $args);
+  }
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Pane content for panels
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Overview of moderation queues
+ */               
+function boinccore_moderation_overview_panel() {
+  $output = '<h2 class="pane-title">' . bts('Moderation', array(), NULL, 'boinc:moderate-profiles') . '</h2>';
+  $output .= '<ul class="tab-list action-list">';
+  if (module_exists('user_profiles')) {
+    $profile_count = db_result(db_query("
+      SELECT COUNT(DISTINCT(n.nid))
+      FROM {node} n
+      WHERE n.type = 'profile' AND n.moderate = 1"
+    ));
+    $output .= '<li class="tab primary">';
+    $output .= l(bts('Unvetted profiles', array(), NULL, 'boinc:moderate-profiles'), 'moderate/profiles');
+    $output .= '<div class="item-count-wrapper">';
+    $output .= '<span class="item-count">' . $profile_count . '</span>';
+    $output .= '</div>';
+    $output .= '</li>';
+  }
+  $output .= '</ul>';
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/boincimport/boincimport.info b/drupal/sites/default/boinc/modules/boincimport/boincimport.info
new file mode 100644
index 0000000..0b3f1b6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/boincimport.info
@@ -0,0 +1,11 @@
+; $Id$
+name = BOINC import
+description = Import BOINC users, teams, and forums into Drupal.
+core = 6.x
+dependencies[] = boincuser
+dependencies[] = boincteam
+dependencies[] = forum
+dependencies[] = user
+dependencies[] = node
+dependencies[] = taxonomy
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boincimport/boincimport.install b/drupal/sites/default/boinc/modules/boincimport/boincimport.install
new file mode 100644
index 0000000..452dcd0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/boincimport.install
@@ -0,0 +1,42 @@
+<?php
+// $Id$
+function boincimport_schema() {
+  $schema['boincimport_temp_forum'] = array(
+    'description' => t('Maps BOINC categories and forums to Drupal taxonomy tid.'),
+    'fields' => array(
+         'forum_id' => array('type' => 'int', 'unsigned' => TRUE, 'size' => 'small', 'not null' => TRUE, 'default' => 0, 'disp-width' => '5'),
+         'tid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'disp-width' => '10')
+    ),
+    'primary key' => array('forum_id')
+  );
+
+  $schema['boincimport_temp_post'] = array(
+    'description' => t('Maps BOINC posts to Drupal comments.'),
+    'fields' => array(
+         'post_id' => array('type' => 'int', 'unsigned' => TRUE, 'size' => 'medium', 'not null' => TRUE, 'default' => 0, 'disp-width' => '8'),
+         'cid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'disp-width' => '10')
+    ),
+    'primary key' => array('post_id')
+  );
+
+  $schema['boincimport_temp_topic'] = array(
+    'description' => t('Maps BOINC threads and polls to Drupal Nodes.'),
+    'fields' => array(
+         'topic_id' => array('type' => 'int', 'unsigned' => TRUE, 'size' => 'medium', 'not null' => TRUE, 'default' => 0, 'disp-width' => '8'),
+         'post_id' => array('type' => 'int', 'unsigned' => TRUE, 'size' => 'medium', 'not null' => TRUE, 'default' => 0, 'disp-width' => '8'),
+         'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'disp-width' => '10')
+    ),
+    'primary key' => array('topic_id')
+  );
+  return $schema;
+}
+
+function boincimport_install() {
+  // Create tables.
+  drupal_install_schema('boincimport');
+}
+
+function boincimport_uninstall() {
+  // Drop tables.
+  drupal_uninstall_schema('boincimport');
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincimport/boincimport.module b/drupal/sites/default/boinc/modules/boincimport/boincimport.module
new file mode 100644
index 0000000..5b1dcd0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/boincimport.module
@@ -0,0 +1,4209 @@
+<?php
+// ; $Id$
+
+// Drupal forums are represented as a hierarchy of terms in a vocabulary. This
+// is accomplished through the taxonomy concept (see: http://drupal.org/node/774892). 
+// The forum vocabulary has categories as terms (e.g. "Discussion", "Help Desk")
+// and subsequent sub terms that belong to one of these parent terms. This allows
+// an arbitrary number of layers to exist in forum organization. BOINC forums map
+// to Drupal as follows:
+// 
+//   Category -> Root level term in the vocabulary
+//   Topic / forum -> Term in the vocabulary with parent term
+//   Thread -> Content node
+//   Post -> Comment
+
+ini_set('memory_limit', '256M');
+
+/**
+ * Implementation of hook_menu()
+ */
+function boincimport_menu() {
+  $items = array();
+  
+  $items['admin/boinc/import'] = array(
+    'title' => 'Environment: Data import',
+    'description' => 'Overview of the BOINC data import process.',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'boincimport_main',
+    'file' => 'boincimport.pages.inc',
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items['admin/boinc/import/post_configuration'] = array(
+    'title' => 'Post-migration configuration',
+    'description' => 'Tie up a few odds and ends in the system configuration
+      after data importation is complete.',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'boincimport_post_configuration', 
+    'file' => 'boincimport.pages.inc',
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/import/cleanup'] = array(
+    'title' => 'Cleanup',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'boincimport_cleanup', 
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/import/complete/%'] = array(
+    'title' => 'Complete',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'boincimport_complete',
+    'page arguments' => array(4),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/import/process'] = array(
+    'title' => 'Execute migration',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'boincimport_process', 
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/import/reset'] = array(
+    'title' => 'Reset BOINC database URL',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'boincimport_reset',
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/import/unlock'] = array(
+    'title' => 'Unlock BOINC import process',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'boincimport_unlock',
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/import/settings'] = array(
+    'title' => 'BOINC data import settings',
+    'description' => 'Configure the BOINC data import process in preparation
+      for pulling user accounts, teams, and forums into Drupal.',
+    'access callback' => 'user_access',
+    'access arguments' => array('import boinc data'),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincimport_admin_settings'),
+    'file' => 'boincimport.pages.inc',
+    'type' => MENU_CALLBACK,
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_perm()
+ */
+function boincimport_perm() {
+  return array('import boinc data');
+}
+
+/**
+ * Callback admin/boinc/import/reset
+ */
+function boincimport_reset() {
+  global $db_url;
+  $boinc_db_url = (is_array($db_url)) ? (isset($db_url['boinc']) ? $db_url['boinc'] : $db_url['default']) : $db_url;
+  variable_set('boincimport_db_url', $boinc_db_url);
+  variable_set('boincimport_ready', 0);
+  return '<p>'. t('The BOINC database URL has been reset. You may now <a href="@configlink">go back to the configuration page</a>.',
+      array('@configlink' => url('admin/boinc/import/settings'))) .'</p>';
+}
+
+/**
+ * Callback admin/boinc/import/unlock
+ */
+function boincimport_unlock() {
+  variable_del('boincimport_process_locked');
+  return '<p>'. t('The BOINC data import process has been unlocked. You may
+    now !proceed_with_import.', array(
+      '!proceed_with_import' => l(t('proceed with the import'),
+        'admin/boinc/import/process')
+    )) .'</p>';
+}
+
+/**
+ * Callback admin/boinc/import/cleanup
+ */
+function boincimport_cleanup() {
+  return boincimport_process_cleanup() .'<p>'. t('Drupal database cleaned.') .'</p>';
+}
+
+/**
+ * Set database connection for boincimport
+ *
+ * @return
+ *   1 if can connect to BOINC database.
+ *
+ * BEWARE: if you test using db_connect and the connection
+ * fails, the process will die() which is a bit too much since we only
+ * want to test. Therefore, the test part of the code is not used, now.
+ */
+function _boincimport_db_connect($test= 0) {
+  global $db_url;
+  $db_ready = variable_get('boincimport_db_configured', 1);
+  if (!$db_ready) {
+    if (is_array($db_url)) {
+      $db_url2 = $db_url;
+    } else {
+      $db_url2['default'] = $db_url;
+    }
+    $db_url2['boinc'] = variable_get('boincimport_db_url', $db_url);
+    $GLOBALS['db_url'] =& $db_url2;
+    if ($test) {
+      if (!db_connect($db_url2['boinc'])) {
+        return 0;
+      }
+    }
+  }
+  return 1;
+  
+}
+
+/**
+ * Check if the module is enabled.
+ * 
+ * @return array
+ *    $out['html'] = formatted html.
+ *    $out['result'] = boolean.
+ */
+function _boincimport_check_module($module) {
+  $out['html'] = '<ul>';
+  $result = module_exists($module);
+  $out['result'] = $result;
+  if ($result == 1) {
+    $out['html'] .= '<li>'. t('Module %module is enabled. OK!', array('%module' => $module)) .'</li>';
+  }
+  else {
+    $out['html'] .= '<li><span class="marker">'. t('Module %module is disabled.', array('%module' => $module)) .'</span></li>';
+  }
+  $out['html'] .= '</ul>';
+  return $out;
+}
+
+/**
+ * Check if the sql tables are installed.
+ * 
+ * @return array
+ *   $out['html'] = formatted html.
+ *   $out['result'] = boolean.
+ */
+function _boincimport_check_tables($tables = array(), $db = 'default' , $prefix = 1) {
+  _boincimport_db_connect();
+
+  $out['html'] = '<ul>';
+  $out['result']= 1;
+  foreach ($tables as $table) {
+    if ($prefix) {
+      $table = db_prefix_tables('{'. $table .'}');
+    }  
+
+    db_set_active($db);
+    if ($GLOBALS['db_type'] == 'pgsql') {
+      // adapt from db_table_exists in database.pgsql.inc
+      $result = (bool) db_result(db_query("SELECT COUNT(*) FROM pg_class WHERE relname = '%s'", $table));
+    }
+    else {
+      // adapt from db_table_exists in database.mysql.inc
+      $result = (bool) db_fetch_object(db_query("SHOW TABLES LIKE '%s'", $table));
+    }
+    db_set_active('default');
+    if ($result) {
+      $out['html'] .= '<li>'. t('Table %table: OK!', array('%table' => $table)) .'</li>';
+    }
+    else {
+      $out['html'] .= '<li><span class="marker">'. t('Table <strong>%table</strong> does not exist!', array('%table' => $table)) .'</span></li>';
+      $out['result']= 0;
+    }
+  }
+  $out['html'] .= '</ul>';
+  return $out;
+}
+
+
+
+function boincimport_process() {
+  // Start with a quick sanity check on the BOINC environment
+  boinc_get_path();
+  
+  if (!variable_get('boincimport_ready', 0)) {
+    return '<p>'. t('You cannot import the data now. Please <a href="@settings">complete the setup first</a>', array('@settings' => url('admin/boinc/import/settings'))) .'</p>';
+  }
+
+  $output = 'BOINC import process form';
+  $output .= drupal_get_form('boincimport_process_form');
+  return $output;
+}
+
+function boincimport_process_form() {
+  $form = array();
+  _boincimport_db_connect() ;
+  // Causes problems with form api redirect
+  //ini_set('display_errors', TRUE);
+
+  // Adjust how long you want the script to run...
+  if (!ini_get('safe_mode')) {
+    set_time_limit(variable_get('boincimport_time_limit', 0));
+  }
+  
+  // Check for a lock on the import process
+  if (variable_get('boincimport_process_locked', 0)) {
+    drupal_set_message(t('The import process is locked. If you are sure that
+      it is no longer running, you may !unlock_it', 
+      array('!unlock_it' => l(t('release the lock'),
+        'admin/boinc/import/unlock')
+      )), 'warning');
+    watchdog('boincimport', 'The import process is locked. If you are sure that
+      it is no longer running, you may !unlock_it', 
+      array('!unlock_it' => l(t('release the lock'),
+        'admin/boinc/import/unlock')
+      ), WATCHDOG_WARNING); 
+  }
+  else {
+    $boincimport_functions = array(
+      'users' => t('Import users'),
+      'teams' => t('Import teams'),
+      'friends' => t('Import friendships'), 
+      'preferences' => t('Import user preferences'),
+      'private messages' => t('Import private messages'),
+      'categories' => t('Import forum containers'),
+      'topics' => t('Import topics'),
+      'posts' => t('Import posts'),
+      'team forums' => t('Import team forums'),
+      'team topics' => t('Import team topics'),
+      'team posts' => t('Import team posts'),
+      'url' => t('Transform URLs'),
+    );
+
+    $form['import'] = array(
+      '#type' => 'select',
+      '#title' => t('Next import to perform'),
+      '#default_value' => $_SESSION['boincimport_stage_selected'],
+      '#options' => $boincimport_functions,
+    );
+    $form[] = array(
+      '#type' => 'submit',
+      '#value' => t('Import'),
+    );
+  }
+  return $form;
+}
+
+function boincimport_process_form_submit($form, $form_state) {
+  
+  // Lock the import process
+  if (!variable_get('boincimport_process_locked', 0)) {
+    variable_set('boincimport_process_locked', 1);
+  }
+  else {
+    watchdog('boincimport', 'The import process is locked, but another process
+      is trying to access it...', array(), WATCHDOG_WARNING); 
+  }
+  
+  switch ($form_state['values']['import']) {
+    case 'users':
+      boincimport_users();
+      break;
+
+    case 'teams':
+      boincimport_teams();
+      if (!variable_get('boincimport_import_team_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'teams';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'friends';
+      }
+      break;
+
+    case 'friends':
+      boincimport_friends();
+      if (!variable_get('boincimport_import_friend_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'friends';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'preferences';
+      }
+      break;
+
+    case 'preferences':
+      boincimport_preferences();
+      if (!variable_get('boincimport_import_preferences_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'preferences';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'private messages';
+      }
+      break;
+
+    case 'private messages':
+      boincimport_private_msgs();
+      if (!variable_get('boincimport_import_private_msg_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'private messages';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'categories';
+      }
+      break;
+
+    case 'categories':
+      boincimport_forum_categories();
+      if (!variable_get('boincimport_import_category_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'categories';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'topics';
+      }
+      break;
+
+    case 'topics':      
+      boincimport_forum_topics();
+      if (!variable_get('boincimport_import_topic_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'topics';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'posts';
+      }
+      break;
+      
+    case 'posts':
+      boincimport_forum_posts();
+      if (!variable_get('boincimport_import_post_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'posts';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'url';
+      }
+      break;
+
+    case 'team forums':
+      boincimport_team_forums();
+      if (!variable_get('boincimport_team_forum_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'team forums';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'team topics';
+      }
+      break;
+
+    case 'team topics':      
+      boincimport_team_forum_topics();
+      if (!variable_get('boincimport_team_topic_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'team topics';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'team posts';
+      }
+      break;
+      
+    case 'team posts':
+      boincimport_team_forum_posts();
+      if (!variable_get('boincimport_team_post_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'team posts';
+      }
+      else {
+        $_SESSION['boincimport_stage_selected'] = 'url';
+      }
+      break;
+
+    case 'url':
+      boincimport_replace_urls();
+      if (!variable_get('boincimport_replace_url_successful', 0)) {
+        $_SESSION['boincimport_stage_selected'] = 'url';
+      }
+      else {
+        drupal_set_message('Congratulations.  Import Finished');
+        drupal_set_message('Please visit the '. l('Post migration configuration', 'admin/boinc/import/post_configuration') .' page');
+        watchdog('boincimport', 'Import process is complete', array(), WATCHDOG_INFO); 
+        unset($_SESSION['boincimport_stage_selected']);
+      }
+      break;
+    default:
+      $_SESSION['boincimport_stage_selected'] = 'users';
+      break;
+  }
+}
+
+function boincimport_complete($section) {
+  switch ($section) {
+  case 'users':
+    // Set the user import successful flag in the variable table
+    variable_set('boincimport_import_user_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'teams';
+    break;
+  case 'teams':
+    
+    break;
+  
+  default:
+  }
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Users
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+ * Import users (at least those required for further data import)
+ */
+function boincimport_users() {
+  // Check whether the user table has been successfully imported already
+  if (variable_get('boincimport_import_user_successful', 0)) {
+    drupal_set_message(t('Note: user import has already run successfully'));
+    watchdog(
+      'boincimport', 'Note: user import has already run successfully',
+      array(), WATCHDOG_INFO
+    ); 
+  } 
+
+  if (!variable_get('boincimport_import_user_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_user_started', 1);
+  }
+
+  $pre = variable_get('boincimport_table_prefix', '');
+  $import_lurkers = variable_get('boincimport_import_lurkers', 1);
+
+  // Determine which users need to be processed
+  db_set_active('boinc');
+  if ($import_lurkers) {
+    // Import all users, even those who have no community participation; other
+    // users will be imported when they first try to log into the drupal site
+    $boinc_accounts = db_query('
+      SELECT id FROM {user}
+      ORDER BY id ASC'
+    );
+    $user_count = mysql_num_rows($boinc_accounts);
+  }
+  else {
+    // Need to import any user who is currently ignored in order to keep them
+    // ignored... not particularly clean (ignored users are stored in a string)
+    $ignored_user_list = array(0);
+    $ignoring_users = db_query("
+      SELECT ignorelist
+      FROM forum_preferences
+      WHERE ignorelist <> ''
+      ORDER BY userid ASC"
+    );
+    while ($ignoring_user = db_fetch_object($ignoring_users)) {
+      $ignored_user_list = $ignored_user_list + array_fill_keys(explode('|', trim($ignoring_user->ignorelist, '|')), 1);
+    }
+    $ignored_user_list = array_keys($ignored_user_list);
+    // Get IDs for all users who will need to be imported now
+    $boinc_accounts = db_query("
+      SELECT id FROM
+      (
+        (SELECT id FROM {user} WHERE teamid > 0 OR id IN(%s)) UNION
+        (SELECT DISTINCT user FROM {post}) UNION
+        (SELECT DISTINCT userid FROM {subscriptions}) UNION
+        (SELECT DISTINCT user_src FROM {friend} WHERE reciprocated = 1) UNION
+        (SELECT DISTINCT user_dest FROM {friend} WHERE reciprocated = 1) UNION
+        (SELECT DISTINCT userid FROM {forum_preferences} WHERE ignorelist <> '') UNION
+        (SELECT DISTINCT userid FROM {private_messages}) UNION
+        (SELECT DISTINCT senderid FROM {private_messages})
+      ) AS usersToImport",
+      implode(',', $ignored_user_list)
+    );
+    $user_count = mysql_num_rows($boinc_accounts);
+  }
+  db_set_active('default');
+  
+  if (!$user_count) {
+    drupal_set_message(
+      t('There were no users found: Aborting script'), 'error'
+    );
+    watchdog('boincimport',
+      'There were no users found: Aborting script', array(), WATCHDOG_INFO
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no users found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %user_count users: Beginning import',
+    array('%user_count' => $user_count), WATCHDOG_INFO
+  ); 
+  
+  // User import relies on Drupal and BOINC APIs to manage data being read
+  // from one database and saved to the other. This approach keeps things
+  // clean and simple, but since a sizable user base will wreak havoc on system
+  // resources, the job is broken into batches here and each batch is processed
+  // by a separate process. 
+  
+  //$batch_size = variable_get('boincimport_user_batch_size', 50);
+  //$batch_count = $user_count - ($user_count % $batch_size) + $batch_size;
+  $operations = array();
+  $existing_users = array();
+  $duplicates = array();
+  
+  // Get the list of users already in Drupal to be sure we're not importing
+  // any twice
+  $result = db_query('
+    SELECT uid, boinc_id FROM {boincuser}'
+  );
+  while ($row = db_fetch_object($result)) {
+    $existing_users[$row->boinc_id] = $row->uid;
+  }
+  
+  // Create batches to process
+  while ($boinc_account = db_fetch_object($boinc_accounts)) {
+     if (isset($existing_users[$boinc_account->id])) {
+      // This user has already been imported
+      $duplicates[] = $boinc_account->id;
+    }
+    else {
+      $operations[] = array(
+        'boincimport_users_op', array(
+          $boinc_account->id
+        )
+      );
+    }
+  }
+  
+  if ($duplicates) {
+    drupal_set_message(t(
+      'Skipped @count accounts that were already imported',
+      array('@count' => count($duplicates))
+    ));
+    watchdog('boincimport',
+      'Skipped @count accounts that were already imported',
+      array('@count' => count($duplicates)), WATCHDOG_INFO
+    ); 
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_users_finished',
+    'title' => t('Importing users'),
+    'init_message' => t('Beginning user import...'),
+    'progress_message' => t('Processed @current out of @total users.'),
+    'error_message' => t('User import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing users
+ */
+function boincimport_users_op($boinc_id, &$context) {
+  
+  // Use the $context['sandbox'] to store information needed to track progress
+  // between successive calls.
+  if (!isset($context['sandbox']['progress'])) {
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['current_user'] = 0;
+    $context['sandbox']['max'] = 1;
+  }
+
+  // Note about batch size: When a batch is processed, the batch update engine
+  // determines whether it should continue processing in the same request or
+  // provide progress feedback to the user and wait for the next request.
+  
+  // Grab the BOINC user object and create a Drupal user from it
+  $account = boincuser_register_make_drupal_user($boinc_id);
+  $message = '';
+  if ($account) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $boinc_id;
+    $message = "Successfully imported user {$boinc_id}";
+  }
+  else {
+    $context['results']['failure'][] = $boinc_id;
+    $message = "Failed to import user {$boinc_id}!";
+    watchdog('boincimport',
+      'Failed to import user @id!',
+      array('@id' => $boinc_id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_user'] = $boinc_id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_users_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $total_failures = count($results['failure']);
+    $message = t(
+      'Successfully imported @count users (@fail_count failures)',
+      array('@count' => $total_imported, '@fail_count' => $total_failures)
+    );
+    watchdog('boincimport',
+      'Successfully imported @count users (@fail_count failures).',
+      array('@count' => $total_imported, '@fail_count' => $total_failures),
+      WATCHDOG_INFO
+    ); 
+    // Set the user import successful flag in the variable table
+    variable_set('boincimport_import_user_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'teams';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Teams
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Create teams and assign members
+ */
+function boincimport_teams() {
+  
+  // Check whether the team table has been successfully imported already
+  if (variable_get('boincimport_import_team_successful', 0)) {
+    drupal_set_message(t('Note: team import has already run successfully'));
+    watchdog(
+      'boincimport', 'Note: team import has already run successfully',
+      array(), WATCHDOG_INFO
+    ); 
+  }
+
+  if (!variable_get('boincimport_import_team_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_team_started', 1);
+  }
+  
+  // Initialize the map of BOINC team types to taxonomy IDs, if needed
+  $team_type_map = variable_get('boincimport_team_types', array());
+  if (!$team_type_map) {
+    // Import team types from BOINC to a Drupal vocabulary
+    require_boinc('team_types');
+    global $team_types;
+    
+    // Create vocabulary if it isn't set
+    $team_vid = db_result(db_query('SELECT vid FROM {vocabulary} WHERE name="%s"', 'Teams'));
+    if (!$team_vid) {
+      $team_vocab = array(
+        'name' => t('Teams'),
+        'description' => t('Types of BOINC teams'),
+      );
+      taxonomy_save_vocabulary($team_vocab);
+      $team_vid = db_result(db_query('SELECT vid FROM {vocabulary} WHERE name="%s"', 'Teams'));
+    }
+    
+    foreach ($team_types as $boinc_type_id => $name) {
+      // Check for an existing term in the vocabulary
+      $team_type_id = db_result(db_query("SELECT tid FROM {term_data} WHERE vid = '{$team_vid}' AND LOWER(name) = LOWER('%s')", trim($name)));
+      if ($team_type_id) {
+        $team_type = array(
+          'tid' => $team_type_id
+        );
+      }
+      else {
+        if (!$name) continue;
+        $team_type = array(
+          'name' => strip_tags($name),
+          'vid' => $team_vid,
+          'description' => '',
+          'parent' => 0
+        );
+        taxonomy_save_term($team_type);
+      }
+      // Note the taxonomy ID for mapping forums to categories
+      $team_type_map[$boinc_type_id] = $team_type['tid'];
+    }
+    variable_set('boincimport_team_types', $team_type_map);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get the list of teams to import
+  db_set_active('boinc');
+  $boinc_teams = db_query('
+    SELECT id, name, description, userid, create_time
+    FROM %steam',
+    $pre
+  );
+  $team_count = mysql_num_rows($boinc_teams);
+  db_set_active('default');
+
+  if (!$team_count) {
+    drupal_set_message(
+      t('There were no teams found: Aborting script'), 'error'
+    );
+    watchdog('boincimport',
+      'There were no teams found: Aborting script', array(), WATCHDOG_INFO
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no teams found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %team_count teams: Beginning Import',
+    array('%team_count' => $team_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $existing_teams = array();
+  $duplicates = array();
+  
+  // Get the list of teams already in Drupal to be sure we're not importing
+  // any twice
+  $result = db_query('
+    SELECT nid, team_id FROM {boincteam}'
+  );
+  while ($row = db_fetch_object($result)) {
+    $existing_teams[$row->team_id] = $row->nid;
+  }
+  
+  // Create batches to process
+  while ($boinc_team = db_fetch_object($boinc_teams)) {
+     if (isset($existing_teams[$boinc_team->id])) {
+      // This team has already been imported
+      $duplicates[] = $boinc_team->id;
+    }
+    else {
+      $operations[] = array(
+        'boincimport_teams_op', array(
+          $boinc_team
+        )
+      );
+    }
+  }
+  
+  if ($duplicates) {
+    drupal_set_message(t(
+      'Skipped @count teams that were already imported',
+      array('@count' => count($duplicates))
+    ));
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_teams_finished',
+    'title' => t('Importing teams'),
+    'init_message' => t('Beginning team import...'),
+    'progress_message' => t('Processed @current out of @total teams.'),
+    'error_message' => t('Team import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing teams
+ * Create a Drupal node from the given BOINC team object
+ */
+function boincimport_teams_op($boincteam, &$context) {
+  
+  $success = boincteam_import($boincteam);
+  
+  $message = '';
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $boincteam->id;
+    $message = "Successfully imported team {$boincteam->id}";
+  }
+  else {
+    $context['results']['failure'][] = $boincteam->id;
+    $message = "Failed to import team {$boincteam->id}!";
+    watchdog('boincimport',
+      'Failed to import team @id!',
+      array('@id' => $boincteam->id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_team'] = $boincteam->id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_teams_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $message = t(
+      'Successfully imported @count teams',
+      array('@count' => $total_imported)
+    );
+    watchdog('boincimport',
+      'Successfully imported @count teams.',
+      array('@count' => $total_imported), WATCHDOG_INFO
+    ); 
+    // Set the team import successful flag in the variable table
+    variable_set('boincimport_import_team_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'friends';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Friends
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Create friend relationships between users
+ */
+function boincimport_friends() {
+  
+  // Check whether friendships have been successfully imported already
+  if (variable_get('boincimport_import_friend_successful', 0)) {
+    drupal_set_message(t('Note: Friends import has already run successfully'));
+    watchdog(
+      'boincimport', 'Note: Friends import has already run successfully',
+      array(), WATCHDOG_INFO
+    ); 
+  }
+
+  if (!variable_get('boincimport_import_friend_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_friend_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get stuff to import
+  db_set_active('boinc');
+  $friendships = db_query('
+    SELECT
+      f1.user_src,
+      f1.user_dest,
+      f1.create_time
+    FROM %sfriend f1
+    LEFT JOIN %sfriend f2
+      ON f2.user_src = f1.user_dest 
+      AND f2.user_dest = f1.user_src
+      AND f2.user_src <> f2.user_dest
+    WHERE f1.reciprocated = 1
+      AND (f2.user_src IS NULL OR f1.create_time < f2.create_time)
+    ORDER BY create_time',
+    $pre, $pre
+  );
+  $friendship_count = mysql_num_rows($friendships);
+  db_set_active('default');
+
+  if (!$friendship_count) {
+    drupal_set_message(
+      t('There were no friendships found: Aborting script'), 'error'
+    );
+    watchdog('boincimport',
+      'There were no friendships found: Aborting script', array(), WATCHDOG_INFO
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no friendships found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %count friend relationships: Beginning Import',
+    array('%count' => $friendship_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  
+  // It doesn't matter if a friend relationship has already been imported, just
+  // do it again if so
+  
+  // Create batches to process
+  while ($friendship = db_fetch_object($friendships)) {
+    $operations[] = array(
+      'boincimport_friends_op', array(
+        $friendship
+      )
+    );
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_friends_finished',
+    'title' => t('Importing friend relationships'),
+    'init_message' => t('Beginning friend import...'),
+    'progress_message' => t('Processed @current out of @total friendships.'),
+    'error_message' => t('Friend import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing friendships
+ * Create Drupal flags from the given BOINC friend relationship
+ */
+function boincimport_friends_op($friendship, &$context) {
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  $success = FALSE;
+  $message = '';
+  
+  // Convert BOINC friends to Drupal friends
+  $uid = boincuser_lookup_uid($friendship->user_src);
+  $friend_uid = boincuser_lookup_uid($friendship->user_dest);
+  if ($uid AND $friend_uid) {
+    $success = db_query("
+      INSERT IGNORE INTO {flag_friend}
+      SET uid = '%d', friend_uid = '%d', created = '%d'",
+      $uid, $friend_uid, $friendship->create_time
+    );
+  }
+  else {
+    $boinc_id = ($uid) ? $friendship->user_dest : $friendship->user_src;
+    $message = "No Drupal account exists for BOINC user {$boinc_id}!";
+  }
+  
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $uid;
+    $message = "Successfully made users {$uid} and {$friend_uid} friends";
+  }
+  else {
+    $context['results']['failure'][] = $uid;
+    if (!$message) {
+      $message = "Failed to make users {$uid} and {$friend_uid} friends!";
+    }
+    watchdog('boincimport', $message, array(), WATCHDOG_WARNING);
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_user'] = $uid;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_friends_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $failures = count($results['failure']);
+    $message = t(
+      'Successfully imported @count friendships (@failed failures)',
+      array(
+        '@count' => $total_imported,
+        '@failed' => $failures,
+      )
+    );
+    watchdog('boincimport', $message, array(), WATCHDOG_INFO); 
+    // Set the friend import successful flag in the variable table
+    variable_set('boincimport_import_friend_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'preferences';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Community preferences
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import community preferences for users
+ */
+function boincimport_preferences() {
+  
+  // Check whether preferences have been successfully imported already
+  if (variable_get('boincimport_import_preferences_successful', 0)) {
+    drupal_set_message(t('Note: preferences import has already run successfully'));
+    watchdog(
+      'boincimport', 'Note: preferences import has already run successfully',
+      array(), WATCHDOG_INFO
+    ); 
+  }
+
+  if (!variable_get('boincimport_import_preferences_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_preferences_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+  
+  // Currently the only preferences being imported are BOINC "filtered users"
+  // This concept of users blocking other users when they don't get along maps
+  // to the Drupal ignore users module
+  
+  // Find users who are involved in quarrels
+  db_set_active('boinc');
+  $quarrelers = db_query("
+    SELECT userid, ignorelist
+    FROM %sforum_preferences
+    WHERE ignorelist <> ''",
+    $pre
+  );
+  $quarreler_count = mysql_num_rows($quarrelers);
+  db_set_active('default');
+
+  if (!$quarreler_count) {
+    drupal_set_message(
+      t('There were no quarrels found: Moving on...')
+    );
+    watchdog('boincimport',
+      'There were no quarrels found: Moving on...', array(), WATCHDOG_INFO
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no quarrels found: Moving on...');
+  }
+
+  watchdog('boincimport',
+    'Found %count quarreling users: Beginning Import',
+    array('%count' => $quarreler_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  
+  // It doesn't matter if a filtered user preference has already been imported,
+  // just do it again if so
+  
+  // Create batches to process
+  while ($quarreler = db_fetch_object($quarrelers)) {
+    $operations[] = array(
+      'boincimport_quarrels_op', array(
+        $quarreler
+      )
+    );
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_preferences_finished',
+    'title' => t('Importing preferences'),
+    'init_message' => t('Beginning preference import...'),
+    'progress_message' => t('Processed @current out of @total preferences.'),
+    'error_message' => t('Preference import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing ignored user settings
+ * Convert BOINC ignored users to Drupal ignored users
+ */
+function boincimport_quarrels_op($boinc_user, &$context) {
+  
+  $success = FALSE;
+  $uid = boincuser_lookup_uid($boinc_user->userid);
+  $ignored_users = explode('|', trim($boinc_user->ignorelist, '|'));
+  foreach ($ignored_users as $ignored_user) {
+    $ignored_user_uid = boincuser_lookup_uid($ignored_user);
+    if (!$ignored_user_uid) {
+      $context['results']['warning'][] = "{$uid}:{$ignored_user_uid}";
+      watchdog('boincimport',
+        'Error adding to ignore list of user @uid: No Drupal ID found for BOINC user @boinc_id',
+        array('@boinc_id' => $ignored_user, '@uid' => $uid),
+        WATCHDOG_WARNING
+      );
+      continue;
+    }
+    $user_ignored = db_query("
+      INSERT IGNORE INTO {ignore_user}
+      SET uid = '%d', iuid = '%d'",
+      $uid, $ignored_user_uid
+    );
+    if ($user_ignored) {
+      $success = TRUE;
+    }
+    else {
+      $context['results']['warning'][] = "{$uid}:{$ignored_user_uid}";
+      watchdog('boincimport',
+        'Could not add user @ignored_uid to the ignore list of user @uid',
+        array('@ignored_uid' => $ignored_user_uid, '@uid' => $uid),
+        WATCHDOG_WARNING
+      );
+    }
+  }
+  
+  $message = '';
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $uid;
+    $message = "Successfully imported ignored users for user {$uid}";
+  }
+  else {
+    $context['results']['failure'][] = $uid;
+    $message = "Failed to import any user filter preferences for user {$uid}!";
+    watchdog('boincimport',
+      'Failed to import any user filter preferences for user @id!',
+      array('@id' => $uid), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_user'] = $uid;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_preferences_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $total_warnings = count($results['warning']);
+    $message = t(
+      'Successfully imported preferences for @count users (with @warn warnings)',
+      array('@count' => $total_imported, '@warn' => $total_warnings)
+    );
+    watchdog('boincimport',
+      'Successfully imported preferences for @count users (with @warn warnings)',
+      array('@count' => $total_imported, '@warn' => $total_warnings),
+      WATCHDOG_INFO
+    );
+    // Set the preference import successful flag in the variable table
+    variable_set('boincimport_import_preferences_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'private messages';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Private messages
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import private messages from BOINC
+ */
+function boincimport_private_msgs() {
+  
+  // Check whether private messages have been successfully imported already
+  if (variable_get('boincimport_import_private_msg_successful', 0)) {
+    drupal_set_message(t('Private message import has already run successfully -- repeating this process could result in duplicate messages!'), 'warning');
+    watchdog(
+      'boincimport', 'Private message import has already run successfully',
+      array(), WATCHDOG_WARNING
+    );
+    return;
+  }
+
+  if (!variable_get('boincimport_import_private_msg_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_private_msg_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get stuff to import
+  db_set_active('boinc');
+  $boinc_private_msgs = db_query('
+    SELECT id, subject, content, userid, senderid, date, opened
+    FROM %sprivate_messages',
+    $pre
+  );
+  $private_msg_count = mysql_num_rows($boinc_private_msgs);
+  db_set_active('default');
+
+  if (!$private_msg_count) {
+    drupal_set_message(
+      t('There were no private messages found: Moving on...')
+    );
+    watchdog('boincimport',
+      'There were no private messages found: Moving on...', array(), WATCHDOG_INFO
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no private messages found: Moving on...');
+  }
+
+  watchdog('boincimport',
+    'Found %count private messages: Beginning Import',
+    array('%count' => $private_msg_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  
+  // We don't know if a given private message has been imported already or not;
+  // if this is needed, a relation table must be added to the Drupal DB
+  
+  // Create batches to process
+  while ($boinc_private_msg = db_fetch_object($boinc_private_msgs)) {
+    $operations[] = array(
+      'boincimport_private_msgs_op', array(
+        $boinc_private_msg
+      )
+    );
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_private_msgs_finished',
+    'title' => t('Importing private messages'),
+    'init_message' => t('Beginning private message import...'),
+    'progress_message' => t('Processed @current out of @total private messages.'),
+    'error_message' => t('Private message import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing private messages
+ * Create a Drupal message from the given BOINC message object
+ */
+function boincimport_private_msgs_op($pm, &$context) {
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  
+  $uid = boincuser_lookup_uid($pm->userid);
+  $sender_uid = boincuser_lookup_uid($pm->senderid);
+  
+  $pm->content = _boincimport_strip_bbcode($pm->content);
+  $pm->content = _boincimport_text_sanitize($pm->content);
+  
+  // First save the message
+  $message_added = db_query("
+    INSERT INTO {pm_message} (subject, author, body, format, timestamp)
+    VALUES ('%s', %d, '%s', %d, %d)",
+    $pm->subject, $sender_uid, $pm->content, $input_format, $pm->date
+  );
+  $mid = db_last_insert_id('pm_message', 'mid');
+  
+  // Then attach recipients and set status (note that threads are not a BOINC
+  // feature, so just consider every message to be a new thread)
+  $recipient_added = db_query("
+    INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted)
+    VALUES (%d, %d, %d, %d, 0)",
+    $mid, $mid, $uid, !$pm->opened
+  );
+  // In Drupal, the sender should be attached as well
+  $sender_added = db_query("
+    INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted)
+    VALUES (%d, %d, %d, %d, 0)",
+    $mid, $mid, $sender_uid, 0
+  );
+  
+  $message = '';
+  if ($message_added AND $recipient_added AND $sender_added) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $pm->id;
+    $message = "Successfully imported private message {$pm->id}";
+  }
+  else {
+    $context['results']['failure'][] = $pm->id;
+    $message = "Failed to import private message {$pm->id}!";
+    watchdog('boincimport',
+      'Failed to import private message @id!',
+      array('@id' => $pm->id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_pm'] = $pm->id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_private_msgs_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $message = t(
+      'Successfully imported @count private messages',
+      array('@count' => $total_imported)
+    );
+    watchdog('boincimport',
+      'Successfully imported @count private messages.',
+      array('@count' => $total_imported), WATCHDOG_INFO
+    ); 
+    // Set the private message import successful flag in the variable table
+    variable_set('boincimport_import_private_msg_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'categories';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Forums and containers
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Create forum containers and forums
+ */
+function boincimport_forum_categories() {
+  
+  // Check whether forums have been successfully imported already
+  if (variable_get('boincimport_import_forum_category_successful', 0)) {
+    drupal_set_message(t('Note: forum container import has already run successfully'));
+    watchdog(
+      'boincimport', 'Note: forum container import has already run successfully',
+      array(), WATCHDOG_INFO
+    ); 
+  }
+
+  if (!variable_get('boincimport_import_forum_category_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_forum_category_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Retrieve the vocabulary vid named "Forums"
+  //$forum_vid = variable_get('forum_nav_vocabulary', 0);
+  $forum_vid = db_result(db_query('
+    SELECT vid FROM {vocabulary}
+    WHERE name="%s"',
+    'Forums'
+  ));
+  if (!$forum_vid) {
+    $forum_vocab = array(
+      'name' => t('Forums'),
+      'description' => t('The different forum categories / containers'),
+    );
+    taxonomy_save_vocabulary($forum_vocab);
+    $forum_vid = db_result(db_query('
+      SELECT vid FROM {vocabulary}
+      WHERE name="%s"',
+      'Forums'
+    ));
+  }
+  
+  // Get both categories and forums from BOINC
+  db_set_active('boinc');
+  $boinc_forum_categories = db_query('
+    SELECT id, name
+    FROM %scategory
+    ORDER BY orderID',
+    $pre
+  );
+  $forum_category_count = mysql_num_rows($boinc_forum_categories);
+  $boinc_forums = db_query('
+    SELECT id, category, title, description, orderID
+    FROM %sforum
+    WHERE parent_type = 0
+    ORDER BY category',
+    $pre
+  );
+  $forum_count = mysql_num_rows($boinc_forums);
+  db_set_active('default');
+
+  if (!$forum_category_count) {
+    drupal_set_message(
+      t('There were no forum containers found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no forum containers found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no forum containers found: Aborting script.');
+  }
+  if (!$forum_count) {
+    drupal_set_message(
+      t('There were no forums found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no forums found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no forums found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %forum_count forums in %category_count containers: Beginning Import',
+    array(
+      '%forum_count' => $forum_count,
+      '%category_count' => $forum_category_count,
+    ), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $existing_categories = array();
+  $existing_forums = array();
+  $duplicate_categories = array();
+  $duplicate_forums = array();
+  $category_map = array();
+  
+  // Get the list of categories already in Drupal so as not to import any twice
+  $category_tree = taxonomy_get_tree($forum_vid, 0, -1, 1);
+  foreach ($category_tree as $term) {
+    $existing_categories[] = $term->name;
+  }
+  
+  // Get the list of forums already in Drupal
+  $result = db_query('
+    SELECT forum_id, tid FROM {boincimport_temp_forum}'
+  );
+  while ($row = db_fetch_object($result)) {
+    $existing_forums[$row->forum_id] = $row->tid;
+  }
+  
+  // Create batches to process
+  
+  // Set up the "hidden" category, if necessary
+  // This is to support automatic hiding of empty categories
+  $hidden_forum_tid = db_result(db_query('
+    SELECT tid FROM {term_data}
+    WHERE vid = %d
+    AND name = "%s"',
+    $forum_vid, 'Hidden'
+  ));
+  if (!$hidden_forum_tid) {
+    $operations[] = array(
+      'boincimport_forum_categories_op', array(
+        NULL, $forum_vid, $pre, TRUE
+      )
+    );
+  }
+  
+  // Import categories
+  while ($boinc_forum_category = db_fetch_object($boinc_forum_categories)) {
+    if (in_array($boinc_forum_category->name, $existing_categories)) {
+      // This category has already been imported
+      $duplicate_categories[] = $boinc_forum_category->name;
+    }
+    else {
+      $operations[] = array(
+        'boincimport_forum_categories_op', array(
+          $boinc_forum_category, $forum_vid, $pre, FALSE
+        )
+      );
+    }
+  }
+  
+  // Import forums
+  while ($boinc_forum = db_fetch_object($boinc_forums)) {
+     if (isset($existing_forums[$boinc_forum->id])) {
+      // This forum has already been imported
+      $duplicates[] = $boinc_forum->id;
+    }
+    else {
+      $operations[] = array(
+        'boincimport_forums_op', array(
+          $boinc_forum, $forum_vid, $pre
+        )
+      );
+    }
+  }
+  
+  // Report any duplicates that were skipped
+  $skipped_message = array();
+  $categories_skipped = count($duplicate_categories);
+  $forums_skipped = count($duplicate_forums);
+  if ($categories_skipped) {
+    $skipped_message[] = format_plural(
+      $categories_skipped,
+      '1 container',
+      '@count containers'
+    );
+  }
+  if ($forums_skipped) {
+    $skipped_message[] = format_plural(
+      $forums_skipped,
+      '1 forum',
+      '@count forums'
+    );
+  }
+  if ($skipped_message) {
+    drupal_set_message(t('Skipped @forums that were already imported',
+      array('@forums' => implode(' and ', $skipped_message))
+    ));
+  }
+  
+  // Create and run the batch
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_forums_finished',
+    'title' => t('Importing forums'),
+    'init_message' => t('Beginning forum import...'),
+    'progress_message' => t('Processed @current out of @total forums.'),
+    'error_message' => t('Forum import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing categories
+ * Create a Drupal taxonomy term from the given BOINC category object
+ */
+function boincimport_forum_categories_op($category, $forum_vid, $pre, $create_hidden, &$context) {
+  
+  // Set term parameters for categories
+  $forum_id = 0;
+  $parent_id = 0;
+  $description = '';
+  $weight = 0;
+  $hidden = FALSE;
+  
+  $category_map = variable_get('boincimport_forum_category_map', array());
+  
+  if (!$category AND $create_hidden) {
+    // Create the special "hidden" container
+    $category = new stdClass();
+    $category->name = 'Hidden';
+    $category->id = 0;
+    $hidden = TRUE;
+  }
+  else {
+    // If this container is empty, put it into the hidden container
+    db_set_active('boinc');
+    $forums_contained = db_result(db_query('
+      SELECT count(*) FROM %sforum
+      WHERE parent_type = 0
+      AND category = %d',
+      $pre, $category->id));
+    db_set_active('default');
+    if (!$forums_contained) {
+      $parent_id = $category_map[0];
+      $hidden = TRUE;
+    }
+  }
+  
+  $forum = array(
+    'name' => $category->name,
+    'vid' => $forum_vid,
+    'description' => $description,
+    'parent' => $parent_id,
+    'weight' => $weight,
+  );
+  $forum['description'] = strip_tags($forum['description']);
+
+  taxonomy_save_term($forum);
+  $success = isset($forum['tid']);
+  
+  // Serialize the forum containers
+  $containers = variable_get('forum_containers', array());
+  $containers[] = $forum['tid'];
+  variable_set('forum_containers', $containers);
+  
+  // Note the taxonomy ID for mapping forums to categories
+  $category_map[$category->id] = $forum['tid'];
+  variable_set('boincimport_forum_category_map', $category_map);
+  
+  boincimport_forum_set_permissions($forum, $hidden);
+  
+  $message = '';
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    if (!$category AND $create_hidden) {
+      $message = "Created special hidden container";
+    }
+    else {
+      $context['results']['categories']['success'][] = $category->id;
+      $message = "Successfully imported container {$category->id}";
+    }
+  }
+  else {
+    $context['results']['categories']['failure'][] = $category->id;
+    $message = "Failed to import container {$category->id}!";
+    watchdog('boincimport',
+      'Failed to import container @id!',
+      array('@id' => $category->id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_category'] = $category->id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch operation for importing forums
+ * Create a Drupal taxonomy term from the given BOINC forum object
+ */
+function boincimport_forums_op($boincforum, $forum_vid, $pre = '', &$context) {
+  
+  $hidden_forum = FALSE;
+  $open_forum = FALSE;
+  $category_map = variable_get('boincimport_forum_category_map', array());
+  
+  // Set term parameters for forums
+  $forum_id = $boincforum->id;
+  $parent_id = isset($category_map[$boincforum->category]) ? $category_map[$boincforum->category] : $category_map[0];
+  $name = $boincforum->title;
+  $description = $boincforum->description;
+  $weight = $boincforum->orderID;
+  if ($parent_id == $category_map[0]) {
+    // If this forum is hidden, flag for appropriate access controls
+    $hidden_forum = TRUE;
+  }
+  if ($name == 'Getting Started') {
+    // Must allow users to post in this forum even if they have no credit!
+    $open_forum = TRUE;
+  }
+  
+  // Try to detect a BOINC news forum and flag it so that news can be
+  // imported into a Drupal news content type later
+  if ($name == 'News') {
+    // Save the ID of the News forum for later import
+    variable_set('boincimport_news_forum_id', $forum_id);
+    $success = TRUE;
+  }
+  else {
+    // Save all other forums as taxonomy terms
+    $forum = array(
+      'name' => $name,
+      'vid' => $forum_vid,
+      'description' => $description,
+      'parent' => $parent_id,
+      'weight' => $weight,
+    );
+    $forum['description'] = strip_tags($forum['description']);
+
+    taxonomy_save_term($forum); 
+    $success = isset($forum['tid']);
+    
+    // Save the forum ID to a temporary reference table - yes this is hackish.
+    db_query('INSERT INTO {boincimport_temp_forum} (forum_id, tid) VALUES (%d, %d)', $boincforum->id, $forum['tid']);
+    
+    // Set access controls
+    boincimport_forum_set_permissions($forum, $hidden_forum, $open_forum);
+  }
+  
+  $message = '';
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['forums']['success'][] = $forum_id;
+    $message = "Successfully imported forum {$forum_id}";
+  }
+  else {
+    $context['results']['forums']['failure'][] = $forum_id;
+    $message = "Failed to import forum {$forum_id}!";
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_forum'] = $forum_id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Helper function to set permissions on forums upon import
+ */
+function boincimport_forum_set_permissions($forum, $hidden = FALSE, $open = FALSE) {
+  
+  // Set access controls
+  $forum_perms = array();
+  $role_map = array_flip(user_roles());
+  $forum_perms[$role_map['anonymous user']] = array(
+    'view' => (int) !$hidden,
+    'update' => 0,
+    'delete' => 0,
+    'create' => 0,
+  );
+  $forum_perms[$role_map['authenticated user']] = array(
+    'view' => (int) !$hidden,
+    'update' => 0,
+    'delete' => 0,
+    'create' => 0,
+  );
+  $forum_perms[$role_map['community member']] = array(
+    'view' => (int) !$hidden,
+    'update' => 0,
+    'delete' => 0,
+    'create' => (int) $open,
+  );
+  $forum_perms[$role_map['verified contributor']] = array(
+    'view' => (int) !$hidden,
+    'update' => 0,
+    'delete' => 0,
+    'create' => (int) !$hidden,
+  );
+  $forum_perms[$role_map['moderator']] = array(
+    'view' => (int) !$hidden,
+    'update' => (int) !$hidden,
+    'delete' => 0,
+    'create' => (int) !$hidden,
+  );
+  $forum_perms[$role_map['administrator']] = array(
+    'view' => 1,
+    'update' => 1,
+    'delete' => 1,
+    'create' => 1,
+  );
+  foreach ($forum_perms as $role => $perm) {
+    db_query('
+      INSERT INTO {forum_access}
+      SET  tid = %d, rid = %d,
+        grant_view = %d, grant_update = %d,
+        grant_delete = %d, grant_create = %d
+      ON DUPLICATE KEY UPDATE
+        grant_view = %d, grant_update = %d,
+        grant_delete = %d, grant_create = %d',
+      $forum['tid'], $role,
+      $perm['view'], $perm['update'],
+      $perm['delete'], $perm['create'],
+      $perm['view'], $perm['update'],
+      $perm['delete'], $perm['create']);
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_forums_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $categories_imported = count($results['categories']['success']);
+    $forums_imported = count($results['forums']['success']);
+    
+    $success_message = array();
+    if ($categories_imported) {
+      $success_message[] = format_plural(
+        $categories_imported,
+        '1 container',
+        '@count containers'
+      );
+    }
+    if ($forums_imported) {
+      $success_message[] = format_plural(
+        $forums_imported,
+        '1 forum',
+        '@count forums'
+      );
+    }
+    $message = t(
+      'Successfully imported @forums',
+      array('@forums' => implode(' and ', $success_message))
+    );
+    watchdog('boincimport',
+      'Successfully imported @forums',
+      array('@forums' => implode(' and ', $success_message)), WATCHDOG_INFO
+    ); 
+    // Set the forum import successful flag in the variable table
+    variable_set('boincimport_import_forum_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'topics';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Forum topics
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+/**
+ * Import BOINC topics as Drupal forum nodes
+ */
+function boincimport_forum_topics() {
+  
+  // Check whether topics have been successfully imported already
+  if (variable_get('boincimport_import_topic_successful', 0)) {
+    drupal_set_message(t('Topic import has already run successfully'), 'warning');
+    watchdog(
+      'boincimport', 'Topic import has already run successfully',
+      array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return;
+  }
+
+  if (!variable_get('boincimport_import_topic_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_topic_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get the count of non-team topics to import
+  db_set_active('boinc');
+  $topic_count = db_result(db_query('
+    SELECT COUNT(DISTINCT t.id)
+    FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    JOIN %spost p ON p.thread = t.id
+    WHERE f.parent_type = 0',
+    $pre, $pre, $pre
+  ));
+  db_set_active('default');
+
+  if (!$topic_count) {
+    drupal_set_message(
+      t('There were no topics found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no topics found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no topics found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %count topics: Beginning Import',
+    array('%count' => $topic_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $batch_size = 100;
+  
+  // Create batches to process
+  for ($offset = 0; $offset < $topic_count; $offset+=$batch_size) {
+    $topics_per_batch = $batch_size;
+    if ($offset + $batch_size > $topic_count) {
+      $topics_per_batch = $topic_count - $offset;
+    }
+    $operations[] = array(
+      'boincimport_topics_op', array(
+        $offset, $topics_per_batch, $pre
+      )
+    );
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_topics_finished',
+    'title' => t('Importing topics'),
+    'init_message' => t('Beginning topic import...'),
+    'progress_message' => t('Processed @current out of @total batches (@size topics per batch).', array(
+      '@size' => $batch_size,
+    )),
+    'error_message' => t('Topic import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing topics
+ * Create a Drupal node from the given BOINC topic object
+ */
+function boincimport_topics_op($offset, $batch_size, $pre = '', &$context) {
+  // Initialize the batch, if needed
+  if (!isset($context['sandbox']['progress'])) {
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['max'] = $batch_size;
+  }
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  $news_forum_id = variable_get('boincimport_news_forum_id', 0);
+  
+  // Get the topic to import
+  db_set_active('boinc');
+  $topics = db_query('
+    SELECT DISTINCT t.id, t.title, t.owner, t.forum, t.locked, t.hidden,
+        t.sticky, t.timestamp, t.create_time
+    FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    JOIN %spost p ON p.thread = t.id
+    WHERE f.parent_type = 0
+    ORDER BY t.id ASC
+    LIMIT %d,%d',
+    $pre, $pre, $pre, $offset, $batch_size
+  );
+  db_set_active('default');
+  
+  while ($topic = db_fetch_object($topics)) {
+    
+    $error_detail = '';
+    
+    db_set_active('boinc');
+
+    // Get the content of the post that started the topic
+    $post = db_fetch_object(db_query('
+      SELECT id, content
+      FROM %spost
+      WHERE thread = %d
+      ORDER BY timestamp ASC
+      LIMIT 1',
+      $pre, $topic->id
+    ));
+    db_set_active('default');
+      
+    $duplicate = db_result(db_query('
+      SELECT COUNT(*) FROM {boincimport_temp_topic}
+      WHERE topic_id = %d',
+      $topic->id
+    ));
+    
+    if ($duplicate OR !$post) {
+      $success = FALSE;
+    }
+    
+    else {
+      // Get the user and term IDs along with other data to define the topic
+      $uid = boincuser_lookup_uid($topic->owner);
+      $tid = db_result(db_query('
+        SELECT tid FROM {boincimport_temp_forum}
+        WHERE forum_id = %d',
+        $topic->forum
+      ));
+      if (!$topic->owner) {
+        $uid = 0;
+      }
+      
+      $node_type = 'forum';
+      $promote = 0;
+      $comment = ($topic->locked) ? 1 : 2;
+      
+      $post->content = _boincimport_strip_bbcode($post->content);
+      $post->content = _boincimport_text_sanitize($post->content);
+      $teaser = node_teaser($post->content);
+      
+      if ($topic->timestamp < $topic->create_time) {
+        $topic->timestamp = $topic->create_time;
+      }
+      
+      // If dealing with a News topic, be sure it is imported as such
+      if ($news_forum_id AND $topic->forum == $news_forum_id) {
+        $node_type = 'news';
+        $promote = 1;
+      }
+
+      // Construct the thread as a forum topic node
+      $node = array(
+        'type' => $node_type,
+        'title' => $topic->title,
+        'uid' => $uid,
+        'status' => ($topic->hidden) ? 0 : 1,  // published or not
+        'promote' => $promote,
+        'created' => $topic->create_time,
+        'changed' => $topic->timestamp,
+        'comment' => $comment,
+        'moderate' => 0,
+        'body' => $post->content,
+        'sticky' => $topic->sticky,
+        'format' => $input_format,
+        'teaser' => $teaser,
+      );
+      $node['tid'] = $tid;
+      
+      // Save the topic node
+      $node = (object) $node; // node_save requires an object form
+      node_save($node);
+      taxonomy_node_save($node, array($tid));
+      $success = ($node->nid) ? TRUE : FALSE;
+      if ($success) {
+        $success = db_query('
+          INSERT INTO {boincimport_temp_topic} (topic_id, post_id, nid)
+          VALUES (%d, %d, %d)', $topic->id, $post->id, $node->nid
+        );
+        if ($success) {
+          // Hack to keep the topics in correct order
+          $success = db_query('UPDATE {node_comment_statistics} SET last_comment_timestamp = %d WHERE nid = %d', $node->created, $node->nid);
+          if (!$success) {
+            $error_detail = 'topic imported, but failed to set last comment timestamp';
+          }
+        }
+        else {
+          $error_detail = 'topic node saved, but failed to link in boincimport_temp_topic table';
+        }
+      }
+      else {
+        $error_detail = 'failed to save topic node to database';
+      }
+    }
+    
+    // See if the import worked
+    $message = '';
+    if ($success) {
+      // Store some result for post-processing in the finished callback.
+      $context['results']['success'][] = $topic->id;
+      $message = "Successfully imported topic {$topic->id}";
+    }
+    elseif ($duplicate) {
+      $context['results']['duplicate'][] = $topic->id;
+      $message = "Topic {$topic->id} was already imported";
+    }
+    elseif (!$post) {
+      $context['results']['empty'][] = $topic->id;
+      $message = "Skipping topic {$topic->id} as empty";
+    }
+    else {
+      $context['results']['failure'][] = $topic->id;
+      $message = "Failed to import topic {$topic->id}!";
+      watchdog('boincimport',
+        'Failed to import topic @id! (@error)',
+        array(
+          '@id' => $topic->id,
+          '@error' => $error_detail,
+        ),
+        WATCHDOG_WARNING
+      ); 
+    }
+    
+    // Update our progress information.
+    $context['sandbox']['progress']++;
+    $context['sandbox']['current_topic'] = $topic->id;
+    $context['message'] = $message;
+
+    // Update the progress for the batch engine
+    if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+      $context['finished'] = 1;
+    }
+    else {
+      $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+    }
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_topics_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $duplicates = count($results['duplicate']);
+    $empty_topics = count($results['empty']);
+    $message = t(
+      'Successfully imported @count topics (skipped @duplicates already imported, @abandoned empty topics)',
+      array(
+        '@count' => $total_imported,
+        '@duplicates' => $duplicates,
+        '@abandoned' => $empty_topics,
+      )
+    );
+    watchdog('boincimport',
+      'Successfully imported @count topics (skipped @duplicates already imported, @abandoned empty topics).',
+      array(
+        '@count' => $total_imported,
+        '@duplicates' => $duplicates,
+        '@abandoned' => $empty_topics,
+      ), WATCHDOG_INFO
+    ); 
+    // Set the topic import successful flag in the variable table
+    variable_set('boincimport_import_topic_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'posts';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Forum posts
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import BOINC forum posts as Drupal comments
+ */
+function boincimport_forum_posts() {
+  
+  // Check whether forum posts have been successfully imported already
+  if (variable_get('boincimport_import_post_successful', 0)) {
+    drupal_set_message(t('Forum post import has already run successfully'), 'warning');
+    watchdog(
+      'boincimport', 'Forum post import has already run successfully',
+      array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return;
+  }
+
+  if (!variable_get('boincimport_import_post_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_post_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get the BOINC threads and get a count of posts to import
+  db_set_active('boinc');
+  $topic_count = db_result(db_query("
+    SELECT COUNT(DISTINCT t.id) FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    JOIN %spost p ON p.thread = t.id
+    WHERE f.parent_type = 0", $pre, $pre, $pre
+  ));
+  $total_post_count = db_result(db_query("
+    SELECT COUNT(p.id) FROM %spost p
+    JOIN %sthread t ON t.id = p.thread
+    JOIN %sforum f ON f.id = t.forum
+    WHERE f.parent_type = 0", $pre, $pre, $pre
+  ));
+  $post_count = $total_post_count - $topic_count;
+  db_set_active('default');
+
+  if ($post_count <= 0) {
+    drupal_set_message(
+      t('There were no posts found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no posts found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no posts found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %count posts: Beginning Import',
+    array('%count' => $post_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $batch_size = 100;
+  
+  // Create batches to process
+  for ($offset = 0; $offset < $topic_count; $offset+=$batch_size) {
+    $topics_per_batch = $batch_size;
+    if ($offset + $batch_size > $topic_count) {
+      $topics_per_batch = $topic_count - $offset;
+    }
+    $operations[] = array(
+      'boincimport_posts_op', array(
+        $offset, $topics_per_batch
+      )
+    );
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_posts_finished',
+    'title' => t('Importing posts'),
+    'init_message' => t('Beginning post import...'),
+    'progress_message' => t(
+      'Processed posts in @current out of @total batches (@size topics per batch).',
+      array(
+        '@size' => $batch_size,
+        // @current and @total are managed by the batch API
+      )
+    ),
+    'error_message' => t('Post import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing posts
+ * Create a Drupal comment from the given BOINC post object
+ */
+function boincimport_posts_op($offset, $batch_size, &$context) {
+  // Initialize the batch, if needed
+  if (!isset($context['sandbox']['progress'])) {
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['max'] = $batch_size;
+  }
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  
+ // Get the topics with posts to import
+  db_set_active('boinc');
+  $boinc_topic_ids = db_query('
+    SELECT DISTINCT t.id FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    JOIN %spost p ON p.thread = t.id
+    WHERE f.parent_type = 0
+    ORDER BY t.id
+    LIMIT %d,%d', 
+    $pre, $pre, $pre, $offset, $batch_size
+  );
+  db_set_active('default');
+  
+  while ($boinc_topic = db_fetch_object($boinc_topic_ids)) {
+    // Get the posts in this topic
+    db_set_active('boinc');
+    $boinc_posts = db_query('
+      SELECT id, user, thread, timestamp, content, parent_post, hidden
+      FROM %spost WHERE thread = %d ORDER BY id ASC', $pre, $boinc_topic->id);
+    db_set_active('default');
+    
+    $first_post = true;
+    $topic_has_responses = FALSE;
+    $success = FALSE;
+    $posts_imported = 0;
+    $empty_posts = 0;
+    $error_posts = 0;
+    $duplicate_posts = 0;
+
+    while ($post = db_fetch_object($boinc_posts)) {
+      
+      // Skip the first post as it has already been imported as a topic
+      if ($first_post) {
+        $first_post = false;
+        continue;
+      }
+      
+      // Making it this far confirms that there are posts to import
+      $topic_has_responses = TRUE;
+      
+      $is_duplicate = db_result(db_query('
+        SELECT COUNT(*) FROM {boincimport_temp_post}
+        WHERE post_id = %d',
+        $post->id
+      ));
+      if ($is_duplicate) {
+        // This post has already been imported
+        $context['results']['posts']['duplicate'][] = $post->id;
+        $duplicate_posts++;
+        continue;
+      }
+      
+      // Make sure the post is valid
+      if ($post->content) {
+        
+        // Get user, node, and parent IDs for the post and sanitize
+        $uid = boincuser_lookup_uid($post->user);
+        $node = db_fetch_object(db_query('
+          SELECT nr.nid, nr.title
+          FROM {boincimport_temp_topic} btt
+          LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid
+          WHERE btt.topic_id = %d',
+          $post->thread
+        ));
+        $nid = $node->nid;
+        $pid = db_result(db_query('
+          SELECT cid
+          FROM {boincimport_temp_post}
+          WHERE post_id = %d',
+          $post->parent_post));
+        if (is_null($pid)) $pid = 0;
+        if (!$uid) $uid = 0;
+        
+        $post->content = _boincimport_strip_bbcode($post->content);
+        $post->content = _boincimport_text_sanitize($post->content);
+        
+        $topic_reply = db_result(db_query('
+          SELECT COUNT(*)
+          FROM {comments}
+          WHERE nid = %d',
+          $nid
+        ));
+        $post_reply = $pid;
+        
+        if ($post_reply OR $topic_reply) {
+          // Create a subject for the post from the post content. The body may be in 
+          // any format, so we:
+          //  1) Filter it into HTML
+          //  2) Strip out all HTML tags
+          //  3) Convert entities back to plain-text.
+          // Note: format is checked by check_markup().
+          $subject = truncate_utf8(trim(decode_entities(strip_tags(check_markup($post->content, $input_format)))), 29, TRUE);
+          // Replace "Quote:" with "RE:"
+          $subject = str_replace('Quote:', 'RE: ', $subject);
+          // Fringe cases where the comment body is populated only by HTML tags
+          // will require a default subject...
+          if ($subject === '')
+            $subject = "RE: {$node->title}";
+        } else {
+          // This is the first post in the topic
+          $subject = $node->title;
+        }
+        
+        // Construct the post as a Drupal comment
+        $comment = array(
+          'pid' => $pid,
+          'nid' => $nid,
+          'uid' => $uid,
+          'subject' => $subject,
+          'comment' => $post->content,
+          'timestamp' => $post->timestamp,
+          'status' => $post->hidden,
+          'format' => $input_format
+        );
+        
+        // Save the comment
+        if (boincimport_forum_comment_save($comment)) {
+          $success = db_query('
+            INSERT INTO {boincimport_temp_post} (post_id, cid)
+            VALUES (%d, %d)',
+            $post->id, $comment['cid']
+          );
+          if ($success) {
+            $posts_imported++;
+            $context['results']['posts']['success'][] = $post->id;
+          }
+          else {
+            $context['results']['posts']['failure'][] = $post->id;
+            $error_posts++;
+          }
+        }
+        else {
+          $context['results']['posts']['failure'][] = $post->id;
+          $error_posts++;
+        }
+      }
+      else {
+        $context['results']['posts']['empty'][] = $post->id;
+        $empty_posts++;
+      }
+    }
+    
+    $message = '';
+    if ($success OR !$topic_has_responses) {
+      // Store some result for post-processing in the finished callback.
+      $context['results']['success'][] = $boinc_topic->id;
+      $message = "Imported {$posts_imported} post(s) for topic {$boinc_topic->id}";
+    }
+    else {
+      $context['results']['failure'][] = $boinc_topic->id;
+      $message = "Failed to import any posts for topic {$boinc_topic->id} (excluded {$error_posts} errors, {$duplicate_posts} duplicates, and {$empty_posts} empty)";
+      watchdog('boincimport', 'Failed to import any posts for topic @id (excluded @error_posts errors, @duplicate_posts duplicates, and @empty_posts empty)', 
+        array(
+          '@id' => $boinc_topic->id,
+          '@error_posts' => $error_posts,
+          '@duplicate_posts' => $duplicate_posts,
+          '@empty_posts' => $empty_posts,
+        ), WATCHDOG_WARNING
+      ); 
+    }
+    
+    // Update our progress information.
+    $context['sandbox']['progress']++;
+    $context['sandbox']['current_topic'] = $boinc_topic->id;
+    $context['message'] = $message;
+
+    // Update the progress for the batch engine
+    if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+      $context['finished'] = 1;
+    }
+    else {
+      $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+    }
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_posts_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $posts_imported = count($results['posts']['success']);
+    $topic_count = count($results['success']);
+    $topics_skipped = count($results['failure']);
+    $duplicates = count($results['posts']['duplicate']);
+    $empty_posts = count($results['posts']['empty']);
+    $failed_posts = count($results['posts']['failure']);
+    $message = t(
+      'Successfully imported @post_count posts in @topic_count topics ' .
+      '(@skipped topics either had no replies or all replies were already imported, ' .
+      '@duplicates posts were skipped as already imported, ' .
+      '@empty_posts had no content, ' .
+      'and @error_posts encountered errors during import)',
+      array(
+        '@post_count' => $posts_imported,
+        '@topic_count' => $topic_count,
+        '@skipped' => $topics_skipped,
+        '@duplicates' => $duplicates,
+        '@empty_posts' => $empty_posts,
+        '@error_posts' => $failed_posts,
+      )
+    );
+    watchdog('boincimport',
+      $message,
+      array(), WATCHDOG_INFO
+    ); 
+    // Set the post import successful flag in the variable table
+    variable_set('boincimport_import_post_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'team forums';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Team forums
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import team forums
+ */
+function boincimport_team_forums() {
+  
+  // Check whether team forums have been successfully imported already
+  if (variable_get('boincimport_import_team_forum_successful', 0)) {
+    drupal_set_message(t('Team forum import has already run successfully'), 'warning');
+    watchdog(
+      'boincimport', 'Team forum import has already run successfully',
+      array(), WATCHDOG_WARNING
+    );
+  }
+
+  if (!variable_get('boincimport_import_team_forum_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_team_forum_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get team forums from BOINC database
+  db_set_active('boinc');
+  $boincteam_forums = db_query('
+    SELECT id, title, description, category, timestamp, post_min_interval,
+      post_min_total_credit, post_min_expavg_credit
+    FROM %sforum
+    WHERE parent_type = 1
+    ORDER BY id ASC',
+    $pre
+  );
+  $team_forum_count = mysql_num_rows($boincteam_forums);
+  db_set_active('default');
+
+  if (!$team_forum_count) {
+    drupal_set_message(
+      t('There were no team forums found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no team forums found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no BLAH found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %count team forums: Beginning Import',
+    array('%count' => $team_forum_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $existing_team_forums = array();
+  $duplicates = array();
+  
+  // Get the list of team forums already in Drupal to be sure we're not
+  // importing any twice
+  $result = db_query('
+    SELECT nid, boinc_id FROM {boincteam_forum}'
+  );
+  while ($row = db_fetch_object($result)) {
+    $existing_team_forums[$row->boinc_id] = $row->nid;
+  }
+  
+  // Create batches to process
+  while ($boincteam_forum = db_fetch_object($boincteam_forums)) {
+     if (isset($existing_team_forums[$boincteam_forum->id])) {
+      // This team has already been imported
+      $duplicates[] = $boincteam_forum->id;
+    }
+    else {
+      $operations[] = array(
+        'boincimport_team_forums_op', array(
+          $boincteam_forum
+        )
+      );
+    }
+  }
+  
+  if ($duplicates) {
+    drupal_set_message(t(
+      'Skipped @count team forums that were already imported',
+      array('@count' => count($duplicates))
+    ));
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_team_forums_finished',
+    'title' => t('Importing team forums'),
+    'init_message' => t('Beginning team forum import...'),
+    'progress_message' => t('Processed @current out of @total team forums.'),
+    'error_message' => t('Team forum import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing team forums
+ * Create an entry in the boincteam_forum table for the given BOINC team forum
+ * object
+ */
+function boincimport_team_forums_op($boincteam_forum, &$context) {
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  
+  // Set term parameters for forums
+  $forum_id = $boincteam_forum->id;
+  $team_id = boincteam_lookup_nid($boincteam_forum->category);
+  $name = $boincteam_forum->title;
+  $description = strip_tags($boincteam_forum->description);
+  
+  $success = db_query("
+    INSERT INTO {boincteam_forum} SET 
+      boinc_id = %d,
+      nid = %d,
+      title = '%s',
+      description = '%s',
+      created = %d,
+      updated = %d,
+      public = %d,
+      min_time_between_posts = %d,
+      min_total_credit_to_post = %d,
+      min_avg_credit_to_post = %d",
+    $forum_id, $team_id, $name, $description, $boincteam_forum->timestamp, 
+    time(), 0, $boincteam_forum->post_min_interval, 
+    $boincteam_forum->post_min_total_credit,
+    $boincteam_forum->post_min_expavg_credit
+  );
+  
+  $message = '';
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $forum_id;
+    $message = "Successfully imported team forum {$forum_id}";
+  }
+  else {
+    $context['results']['failure'][] = $forum_id;
+    $message = "Failed to import team forum {$forum_id}!";
+    watchdog('boincimport',
+      'Failed to import team forum @id!',
+      array('@id' => $forum_id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_forum'] = $forum_id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_team_forums_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $message = t(
+      'Successfully imported @count team forums',
+      array('@count' => $total_imported)
+    );
+    watchdog('boincimport',
+      'Successfully imported @count team forums.',
+      array('@count' => $total_imported), WATCHDOG_INFO
+    ); 
+    // Set the team forum import successful flag in the variable table
+    variable_set('boincimport_import_team_forum_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'team topics';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Team forum topics
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import BOINC team topics to Drupal team_forum type nodes
+ */
+function boincimport_team_forum_topics() {
+  
+  // Check whether team forum topics have been successfully imported already
+  if (variable_get('boincimport_import_team_topic_successful', 0)) {
+    drupal_set_message(t('Team topic import has already run successfully'), 'warning');
+    watchdog(
+      'boincimport', 'Team topic import has already run successfully',
+      array(), WATCHDOG_WARNING
+    );
+  }
+
+  if (!variable_get('boincimport_import_team_topic_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_team_topic_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get all team topics to import from BOINC
+  db_set_active('boinc');
+  $boincteam_topics = db_query('
+    SELECT DISTINCT t.id, t.title, t.owner, t.forum, t.locked, t.hidden,
+      t.sticky, t.timestamp, t.create_time
+    FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    JOIN %spost p ON p.thread = t.id
+    WHERE f.parent_type = 1
+    ORDER BY id',
+    $pre, $pre, $pre
+  );
+  $boincteam_topic_count = mysql_num_rows($boincteam_topics);
+  $total_team_topic_count = db_result(db_query('
+    SELECT COUNT(*) FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    WHERE f.parent_type = 1', $pre, $pre
+  ));
+  $empty_topic_count = $total_team_topic_count - $boincteam_topic_count;
+  db_set_active('default');
+
+  if (!$boincteam_topic_count) {
+    drupal_set_message(
+      t('There were no team topics found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no team topics found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no team topics found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %count team topics: Beginning Import',
+    array('%count' => $boincteam_topic_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $existing_team_topics = array();
+  $duplicates = array();
+  
+  // Get the list of team topics already in Drupal to be sure we're not
+  // importing any twice
+  $result = db_query('
+    SELECT nid, topic_id FROM {boincimport_temp_topic}'
+  );
+  while ($row = db_fetch_object($result)) {
+    $existing_team_topics[$row->topic_id] = $row->nid;
+  }
+  
+  // Create batches to process
+  while ($boincteam_topic = db_fetch_object($boincteam_topics)) {
+     if (isset($existing_team_topics[$boincteam_topic->id])) {
+      // This team topic has already been imported
+      $duplicates[] = $boincteam_topic->id;
+    }
+    else {
+      $operations[] = array(
+        'boincimport_team_topics_op', array(
+          $boincteam_topic
+        )
+      );
+    }
+  }
+  
+  if ($duplicates) {
+    drupal_set_message(t(
+      'Skipped @count team topics that were already imported',
+      array('@count' => count($duplicates))
+    ));
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_team_topics_finished',
+    'title' => t('Importing team topics'),
+    'init_message' => t('Beginning team topic import...'),
+    'progress_message' => t('Processed @current out of @total team topics.'),
+    'error_message' => t('Team topic import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing team topics
+ * Create a Drupal node from the given BOINC team topic object
+ */
+function boincimport_team_topics_op($topic, &$context) {
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  $success = FALSE;
+  $missing_parent = array();
+  $empty_topics = array();
+  
+  // Verify that the team forum container has been imported
+  $team_forum_id = db_result(db_query("
+    SELECT tfid FROM {boincteam_forum}
+    WHERE boinc_id = %d",
+    $topic->forum
+  ));
+  if (!$team_forum_id) {
+    $missing_parent[] = $topic->id;
+  }
+  else {
+    // Get the content of the post that started the topic
+    db_set_active('boinc');
+    $query = db_query('
+      SELECT id, content
+      FROM %spost
+      WHERE thread = %d
+      ORDER BY timestamp ASC
+      LIMIT 1',
+      $pre, $topic->id);
+    db_set_active('default');
+      
+    // Skip this topic if there are no posts
+    if (!$post = db_fetch_object($query)) {
+      // Empty topics should have already been filtered out of the import, so
+      // consider this an error condition
+      $empty_topics[] = $topic->id;
+    }
+    else {
+      // Get the user ID along with other data to define the topic
+      $uid = boincuser_lookup_uid($topic->owner);
+       if (!$topic->owner) {
+        $uid = 0;
+      }
+      
+      $node_type = 'team_forum';
+      $promote = 0;
+      $comment = ($topic->locked) ? 1 : 2;
+      
+      $post->content = _boincimport_strip_bbcode($post->content);
+      $post->content = _boincimport_text_sanitize($post->content);
+      $teaser = node_teaser($post->content);
+      
+      if ($topic->timestamp < $topic->create_time) {
+        $topic->timestamp = $topic->create_time;
+      }
+
+      // Construct the thread as a team_forum topic node
+      $node = array(
+        'type' => $node_type,
+        'title' => $topic->title,
+        'uid' => $uid,
+        'status' => ($topic->hidden) ? 0 : 1,  // published or not
+        'promote' => $promote,
+        'created' => $topic->create_time,
+        'changed' => $topic->timestamp,
+        'comment' => $comment,
+        'moderate' => 0,
+        'body' => $post->content,
+        'sticky' => $topic->sticky,
+        'format' => $input_format,
+        'teaser' => $teaser,
+        'tfid' => $team_forum_id,
+      );
+      
+      // Save the team topic node
+      $node = (object) $node; // node_save requires an object form
+      node_save($node);
+
+      if ($node->nid) {
+        db_query('
+          INSERT INTO {boincimport_temp_topic} (topic_id, post_id, nid)
+          VALUES (%d, %d, %d)',
+          $topic->id, $post->id, $node->nid
+        );
+        // Hack to keep the topics in correct order
+        db_query('
+          UPDATE {node_comment_statistics}
+          SET last_comment_timestamp = %d
+          WHERE nid = %d',
+          $node->created, $node->nid
+        );
+        $success = TRUE;
+      }
+    }
+  }
+  
+  $message = '';
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $topic->id;
+    $message = "Successfully imported team topic {$topic->id}";
+  }
+  else {
+    $context['results']['failure'][] = $topic->id;
+    $message = "Failed to import team topic {$topic->id}!";
+    watchdog('boincimport',
+      'Failed to import team topic @id!',
+      array('@id' => $topic->id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_topic'] = $topic->id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_team_topics_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $message = t(
+      'Successfully imported @count team topics',
+      array('@count' => $total_imported)
+    );
+    watchdog('boincimport',
+      'Successfully imported @count team topics.',
+      array('@count' => $total_imported), WATCHDOG_INFO
+    ); 
+    // Set the BLAH import successful flag in the variable table
+    variable_set('boincimport_import_team_topic_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'team posts';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Team forum posts
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import BOINC team forum posts as Drupal comments
+ */
+function boincimport_team_forum_posts() {
+  
+  // Check whether team forum posts have been successfully imported already
+  if (variable_get('boincimport_import_team_post_successful', 0)) {
+    drupal_set_message(t('Team forum post import has already run successfully'), 'warning');
+    watchdog(
+      'boincimport', 'Team forum post import has already run successfully',
+      array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return;
+  }
+
+  if (!variable_get('boincimport_import_team_post_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_team_post_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get the BOINC threads and get a count of team posts to import
+  db_set_active('boinc');
+  $team_topic_ids = db_query('
+    SELECT DISTINCT t.id FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    JOIN %spost p ON p.thread = t.id
+    WHERE f.parent_type = 1
+    ORDER BY id', $pre, $pre
+  );
+  $team_topic_count = db_result(db_query("
+    SELECT COUNT(DISTINCT t.id) FROM %sthread t
+    JOIN %sforum f ON f.id = t.forum
+    JOIN %spost p ON p.thread = t.id
+    WHERE f.parent_type = 1", $pre, $pre, $pre
+  ));
+  $total_team_post_count = db_result(db_query("
+    SELECT COUNT(p.id) FROM %spost p
+    JOIN %sthread t ON t.id = p.thread
+    JOIN %sforum f ON f.id = t.forum
+    WHERE f.parent_type = 1", $pre, $pre, $pre
+  ));
+  $team_post_count = $total_team_post_count - $team_topic_count;
+  db_set_active('default');
+
+  if ($team_post_count <= 0) {
+    drupal_set_message(
+      t('There were no team posts found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no team posts found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no posts found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %count team posts: Beginning Import',
+    array('%count' => $team_post_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $existing_posts = array();
+  $duplicates = array();
+  
+  // Get the list of team posts already in Drupal to be sure we're not
+  // importing any twice
+  $result = db_query('
+    SELECT cid, post_id FROM {boincimport_temp_post}'
+  );
+  while ($row = db_fetch_object($result)) {
+    $existing_posts[$row->post_id] = $row->cid;
+  }
+  
+  // Create batches to process
+  while ($boincteam_topic = db_fetch_object($team_topic_ids)) {
+    
+    db_set_active('boinc');
+    $boincteam_posts = db_query('
+      SELECT id, user, thread, timestamp, content, parent_post, hidden
+      FROM %spost
+      WHERE thread = %d
+      ORDER BY timestamp ASC',
+      $pre, $boincteam_topic->id
+    );
+    db_set_active('default');
+    
+    $first_post = true;
+
+    while ($boincteam_post = db_fetch_object($boincteam_posts)) {
+      
+      // Skip the first post as it has already been imported as a topic
+      if ($first_post) {
+        $first_post = false;
+        continue;
+      }
+
+      if (isset($existing_posts[$boincteam_post->id])) {
+        // This post has already been imported
+        $duplicates[] = $boincteam_post->id;
+      }
+      else {
+        $operations[] = array(
+          'boincimport_team_posts_op', array(
+            $boincteam_post
+          )
+        );
+      }
+    }
+  }
+  
+  if ($duplicates) {
+    drupal_set_message(t(
+      'Skipped @count team posts that were already imported',
+      array('@count' => count($duplicates))
+    ));
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_team_posts_finished',
+    'title' => t('Importing team posts'),
+    'init_message' => t('Beginning team post import...'),
+    'progress_message' => t('Processed @current out of @total team posts.'),
+    'error_message' => t('Team post import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing team posts
+ * Create a Drupal comment from the given BOINC team post object
+ */
+function boincimport_team_posts_op($post, &$context) {
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  $success = FALSE;
+  
+  // Make sure the post is valid
+  if ($post->content) {
+    
+    // Get user, node, and parent IDs for the post and sanitize
+    $uid = boincuser_lookup_uid($post->user);
+    $node = db_fetch_object(db_query('
+      SELECT nr.nid, nr.title
+      FROM {boincimport_temp_topic} btt
+      LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid
+      WHERE btt.topic_id = %d',
+      $post->thread
+    ));
+    $nid = $node->nid;
+    $pid = db_result(db_query('
+      SELECT cid
+      FROM {boincimport_temp_post}
+      WHERE post_id = %d',
+      $post->parent_post));
+    if (is_null($pid)) $pid = 0;
+    if (!$uid) $uid = 0;
+    
+    $post->content = _boincimport_strip_bbcode($post->content);
+    $post->content = _boincimport_text_sanitize($post->content);
+    
+    $topic_reply = db_result(db_query('
+      SELECT COUNT(*)
+      FROM {comments}
+      WHERE nid = %d',
+      $nid
+    ));
+    $post_reply = $pid;
+    
+    if ($post_reply OR $topic_reply) {
+      // Create a subject for the post from the post content. The body may be in 
+      // any format, so we:
+      //  1) Filter it into HTML
+      //  2) Strip out all HTML tags
+      //  3) Convert entities back to plain-text.
+      // Note: format is checked by check_markup().
+      $subject = truncate_utf8(trim(decode_entities(strip_tags(check_markup($post->content, $input_format)))), 29, TRUE);
+      // Replace "Quote:" with "RE:"
+      $subject = str_replace('Quote:', 'RE: ', $subject);
+      // Fringe cases where the comment body is populated only by HTML tags
+      // will require a default subject...
+      if ($subject === '')
+        $subject = "RE: {$node->title}";
+    } else {
+      // This is the first post in the topic
+      $subject = $node->title;
+    }
+    
+    // Construct the post as a Drupal comment
+    $comment = array(
+      'pid' => $pid,
+      'nid' => $nid,
+      'uid' => $uid,
+      'subject' => $subject,
+      'comment' => $post->content,
+      'timestamp' => $post->timestamp,
+      'status' => $post->hidden,
+      'format' => $input_format
+    );
+    
+    // Save the comment
+    if (boincimport_forum_comment_save($comment)) {
+      $success = db_query('
+        INSERT INTO {boincimport_temp_post} (post_id, cid)
+        VALUES (%d, %d)',
+        $post->id, $comment['cid']
+      );
+    }
+  }
+  
+  $message = '';
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $post->id;
+    $message = "Successfully imported team post {$post->id}";
+  }
+  else {
+    $context['results']['failure'][] = $post->id;
+    $message = "Failed to import team post {$post->id}!";
+    watchdog('boincimport',
+      'Failed to import team post @id!',
+      array('@id' => $post->id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_post'] = $post->id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_team_posts_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_imported = count($results['success']);
+    $message = t(
+      'Successfully imported @count team posts',
+      array('@count' => $total_imported)
+    );
+    watchdog('boincimport',
+      'Successfully imported @count team posts.',
+      array('@count' => $total_imported), WATCHDOG_INFO
+    ); 
+    // Set the team post import successful flag in the variable table
+    variable_set('boincimport_import_team_post_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'url';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Subscriptions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import subscriptions for users
+ */
+function boincimport_subscriptions() {
+  
+  // Check whether subscriptions have been successfully imported already
+  if (variable_get('boincimport_import_subscription_successful', 0)) {
+    drupal_set_message(t('Subscription import has already run successfully'), 'warning');
+    watchdog(
+      'boincimport', 'Subscription import has already run successfully',
+      array(), WATCHDOG_WARNING
+    );
+  }
+
+  if (!variable_get('boincimport_import_subscription_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_import_subscription_started', 1);
+  }
+  
+  $pre = variable_get('boincimport_table_prefix', '');
+
+  // Get users with subscriptions to import
+  db_set_active('boinc');
+  $users_with_subscriptions = db_query('
+    SELECT DISTINCT userid
+    FROM %ssubscriptions
+    ORDER BY userid ASC',
+    $pre
+  );
+  $user_count = mysql_num_rows($users_with_subscriptions);
+  db_set_active('default');
+
+  if (!$user_count) {
+    drupal_set_message(
+      t('There were no subscriptions found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no subscriptions found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no subscriptions found: Aborting script.');
+  }
+
+  watchdog('boincimport',
+    'Found %count users with subscriptions: Beginning import',
+    array('%count' => $user_count), WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  
+  // Create batches to process
+  while ($subscribed_user = db_fetch_object($users_with_subscriptions)) {
+    $operations[] = array(
+      'boincimport_subscriptions_op', array(
+        $subscribed_user->userid
+      )
+    );
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_subscriptions_finished',
+    'title' => t('Importing subscriptions'),
+    'init_message' => t('Beginning subscription import...'),
+    'progress_message' => t('Processed @current out of @total subscriptions.'),
+    'error_message' => t('Subscription import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for importing subscriptions
+ * Import subscriptions for the given user
+ */
+function boincimport_subscriptions_op($boincuser_id, &$context) {
+  
+  // Get the drupal user and pull subscriptions
+  $uid = get_drupal_id($boincuser_id);
+  $count = boincuser_pull_subscriptions($uid);
+  
+  $message = '';
+  if ($count) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = $boincuser_id;
+    $context['results']['subscriptions'][$boincuser_id] = $count;
+    $message = "Successfully imported {$count} subscriptions for user {$boincuser_id}";
+  }
+  else {
+    $context['results']['failure'][] = $boincuser_id;
+    $message = "Failed to import subscriptions for user {$boincuser_id}!";
+    watchdog('boincimport',
+      'Failed to import subscriptions for user @id!',
+      array('@id' => $boincuser_id), WATCHDOG_WARNING
+    ); 
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['current_user'] = $boincuser_id;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_subscriptions_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $user_count = count($results['success']);
+    $subscriptions_imported = array_sum($results['subscriptions']);
+    $message = t(
+      'Successfully imported @count subscriptions for @distinct users',
+      array('@count' => $subscriptions_imported, '@distinct' => $user_count)
+    );
+    watchdog('boincimport',
+      'Successfully imported @count subscriptions for @distinct users.',
+      array('@count' => $subscriptions_imported, '@distinct' => $user_count),
+      WATCHDOG_INFO
+    ); 
+    // Set the subscription import successful flag in the variable table
+    variable_set('boincimport_import_subscription_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'url';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * URLs
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+/**
+ * Update relative BOINC URLs to work with Drupal
+ */
+function boincimport_replace_urls() {
+  
+  // Check whether URLs have already been fixed
+  if (variable_get('boincimport_replace_url_successful', 0)) {
+    drupal_set_message(t('URLs have already been updated'), 'warning');
+    watchdog(
+      'boincimport', 'URLs have already been updated',
+      array(), WATCHDOG_WARNING
+    );
+  }
+
+  if (!variable_get('boincimport_replace_url_started', 0)) {
+    // Could prepare database tables, if new fields are necessary, etc.
+    variable_set('boincimport_replace_url_started', 1);
+  }
+  
+  // Get the count of nodes and comments to process for URL updates
+  $node_count = db_result(db_query('
+    SELECT COUNT(DISTINCT btt.nid)
+    FROM {boincimport_temp_topic} AS btt
+    LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid'
+  ));
+  
+  $comment_count = db_result(db_query('
+    SELECT COUNT(c.cid)
+    FROM {boincimport_temp_post} AS p
+    LEFT JOIN {comments} AS c ON p.cid = c.cid'
+  ));
+  
+  $pm_count = db_result(db_query('
+    SELECT COUNT(*)
+    FROM {pm_message} pm'
+  ));
+  
+  if (!$node_count AND !$comment_count AND !$pm_count) {
+    drupal_set_message(
+      t('There were no nodes, comments, or private messages found: Aborting script'), 'warning'
+    );
+    watchdog('boincimport',
+      'There were no nodes,comments, or private messages found: Aborting script', array(), WATCHDOG_WARNING
+    );
+    // Release the lock on the import process
+    variable_del('boincimport_process_locked');
+    return t('There were no nodes, comments, or private messages found: Aborting script.');
+  }
+  
+  watchdog('boincimport',
+    'Found %node_count nodes, %comment_count comments, and %pm_count private messages: Updating URLs...',
+    array(
+      '%node_count' => $node_count,
+      '%comment_count' => $comment_count,
+      '%pm_count' => $pm_count,
+    ),
+    WATCHDOG_INFO
+  );
+  
+  $operations = array();
+  $batch_size = 100;
+  
+  // Create node batches to process
+  for ($offset = 0; $offset < $node_count; $offset+=$batch_size) {
+    $nodes_per_batch = $batch_size;
+    if ($offset + $batch_size > $node_count) {
+      $nodes_per_batch = $node_count - $offset;
+    }
+    $operations[] = array(
+      'boincimport_replace_urls_node_op', array(
+        $offset, $nodes_per_batch
+      )
+    );
+  }
+  // Add comment batches
+  for ($offset = 0; $offset < $comment_count; $offset+=$batch_size) {
+    $comments_per_batch = $batch_size;
+    if ($offset + $batch_size > $comment_count) {
+      $comments_per_batch = $comment_count - $offset;
+    }
+    $operations[] = array(
+      'boincimport_replace_urls_comment_op', array(
+        $offset, $comments_per_batch
+      )
+    );
+  }
+  // And don't forget to process private messages
+  for ($offset = 0; $offset < $pm_count; $offset+=$batch_size) {
+    $messages_per_batch = $batch_size;
+    if ($offset + $batch_size > $pm_count) {
+      $messages_per_batch = $pm_count - $offset;
+    }
+    $operations[] = array(
+      'boincimport_replace_urls_pm_op', array(
+        $offset, $messages_per_batch
+      )
+    );
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boincimport_replace_urls_finished',
+    'title' => t('Updating URLs...'),
+    'init_message' => t('Beginning URL update...'),
+    'progress_message' => t('Processed URLs in @current out of @total batches (@size items per batch).', array(
+      '@size' => $batch_size,
+    )),
+    'error_message' => t('URL update has encountered an error.'),
+  );
+  
+  batch_set($batch);
+}
+
+/**
+ * Batch operation for updating URLs in nodes
+ * Find URLs for the old system and update them with Drupal paths
+ */
+function boincimport_replace_urls_node_op($offset, $batch_size, &$context) {
+  // Initialize the batch, if needed
+  if (!isset($context['sandbox']['progress'])) {
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['max'] = $batch_size;
+  }
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+
+  // Since topics have just been imported, there should be only one vid for
+  // each nid, so we can update node_revisions by nid
+  // Get nodes to process
+  $nodes = db_query('
+    SELECT btt.nid, nr.body, nr.teaser
+    FROM {boincimport_temp_topic} AS btt
+    LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid
+    ORDER BY btt.nid
+    LIMIT %d,%d',
+    $offset, $batch_size
+  );
+  
+  while ($node = db_fetch_object($nodes)) {
+    $updated = FALSE;
+    
+    // Update URLs in node contents
+    $original_body = $node->body;
+    $original_teaser = $node->teaser;
+    $node->body = _boincimport_replace_links($node->body);
+    $node->teaser = _boincimport_replace_links($node->teaser);
+    if ($node->body != $original_body OR $node->teaser != $original_teaser) {
+      $updated = db_query("
+        UPDATE {node_revisions}
+        SET body= '%s', teaser = '%s'
+        WHERE nid = %d",
+        $node->body, $node->teaser, $node->nid
+      );
+    }
+    
+    $message = '';
+    $context['results']['success'][] = $node->nid;
+    if ($updated) {
+      // Store some result for post-processing in the finished callback.
+      $context['results']['nodes']['updated'][] = $node->nid;
+      $message = "Successfully updated node {$node->nid}";
+    }
+    else {
+      $message = "No changes made to node {$node->nid}!";
+    }
+    
+    // Update our progress information.
+    $context['sandbox']['progress']++;
+    $context['sandbox']['current_node'] = $node->nid;
+    $context['message'] = $message;
+
+    // Update the progress for the batch engine
+    if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+      $context['finished'] = 1;
+    }
+    else {
+      $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+    }
+  }
+}
+
+/**
+ * Batch operation for updating URLs in comments
+ * Find URLs for the old system and update them with Drupal paths
+ */
+function boincimport_replace_urls_comment_op($offset, $batch_size, &$context) {
+  // Initialize the batch, if needed
+  if (!isset($context['sandbox']['progress'])) {
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['max'] = $batch_size;
+  }
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  
+  // Get comments to process
+  $comments = db_query('
+    SELECT c.cid, c.comment
+    FROM {boincimport_temp_post} AS p
+    LEFT JOIN {comments} AS c ON p.cid = c.cid
+    ORDER BY c.cid
+    LIMIT %d,%d',
+    $offset, $batch_size
+  );
+  
+  while ($comment = db_fetch_object($comments)) {
+    $updated = FALSE;
+    
+    // Update URLs in comment contents
+    $original_comment = $comment->comment;
+    $comment->comment = _boincimport_replace_links($comment->comment);
+    if ($comment->comment != $original_comment) {
+      $updated = db_query("
+        UPDATE {comments}
+        SET comment= '%s'
+        WHERE cid = %d",
+        $comment->comment, $comment->cid
+      );
+    }
+    
+    $message = '';
+    $context['results']['success'][] = $comment->cid;
+    if ($updated) {
+      // Store some result for post-processing in the finished callback.
+      $context['results']['comments']['updated'][] = $comment->cid;
+      $message = "Successfully updated comment {$comment->cid}";
+    }
+    else {
+      $message = "No changes made to comment {$comment->cid}!";
+    }
+    
+    // Update our progress information.
+    $context['sandbox']['progress']++;
+    $context['sandbox']['current_comment'] = $comment->cid;
+    $context['message'] = $message;
+
+    // Update the progress for the batch engine
+    if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+      $context['finished'] = 1;
+    }
+    else {
+      $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+    }
+  }
+}
+
+/**
+ * Batch operation for updating URLs in private messages
+ * Find URLs for the old system and update them with Drupal paths
+ */
+function boincimport_replace_urls_pm_op($offset, $batch_size, &$context) {
+  // Initialize the batch, if needed
+  if (!isset($context['sandbox']['progress'])) {
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['max'] = $batch_size;
+  }
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  
+  // Get private messages to process
+  $messages = db_query('
+    SELECT pm.mid, pm.body
+    FROM {pm_message} pm
+    ORDER BY pm.mid
+    LIMIT %d,%d',
+    $offset, $batch_size
+  );
+  
+  while ($pm = db_fetch_object($messages)) {
+    $updated = FALSE;
+    
+    // Update URLs in private message body
+    $original_pm_body = $pm->body;
+    $pm->body = _boincimport_replace_links($pm->body);
+    if ($pm->body != $original_pm_body) {
+      $updated = db_query("
+        UPDATE {pm_message}
+        SET body= '%s'
+        WHERE mid = %d",
+        $pm->body, $pm->mid
+      );
+    }
+    
+    $message = '';
+    $context['results']['success'][] = $pm->mid;
+    if ($updated) {
+      // Store some result for post-processing in the finished callback.
+      $context['results']['pm']['updated'][] = $pm->mid;
+      $message = "Successfully updated private message {$pm->mid}";
+    }
+    else {
+      $message = "No changes made to private message {$pm->mid}!";
+    }
+    
+    // Update our progress information.
+    $context['sandbox']['progress']++;
+    $context['sandbox']['current_pm'] = $pm->mid;
+    $context['message'] = $message;
+
+    // Update the progress for the batch engine
+    if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+      $context['finished'] = 1;
+    }
+    else {
+      $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+    }
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boincimport_replace_urls_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $total_processed = count($results['success']);
+    $nodes_updated = count($results['nodes']['updated']);
+    $comments_updated = count($results['comments']['updated']);
+    $private_messages_updated = count($results['pm']['updated']);
+    $message = t(
+      'Successfully processed @count nodes, comments, and private messages (@nodes_updated nodes, @comments_updated comments, and @pm_updated private messages were updated)',
+      array(
+        '@count' => $total_processed,
+        '@nodes_updated' => $nodes_updated,
+        '@comments_updated' => $comments_updated,
+        '@pm_updated' => $private_messages_updated,
+      )
+    );
+    if ($private_messages_updated) {
+      watchdog('boincimport',
+        'Updated URLs in these private_messages: @mid_list',
+        array(
+          '@mid_list' => implode(', ', $results['pm']['updated']),
+        ),
+        WATCHDOG_INFO
+      );
+    }
+    if ($comments_updated) {
+      watchdog('boincimport',
+        'Updated URLs in these comments: @cid_list',
+        array(
+          '@cid_list' => implode(', ', $results['comments']['updated']),
+        ),
+        WATCHDOG_INFO
+      );
+    }
+    if ($nodes_updated) {
+      watchdog('boincimport',
+        'Updated URLs in these nodes: @nid_list',
+        array(
+          '@nid_list' => implode(', ', $results['nodes']['updated']),
+        ),
+        WATCHDOG_INFO
+      );
+    }
+    watchdog('boincimport',
+      'Successfully processed @count nodes, comments, and private messages (@nodes_updated nodes, @comments_updated comments, and @pm_updated private messages were updated)',
+      array(
+        '@count' => $total_processed,
+        '@nodes_updated' => $nodes_updated,
+        '@comments_updated' => $comments_updated,
+        '@pm_updated' => $private_messages_updated,
+      ),
+      WATCHDOG_INFO
+    );
+    // Set the replace URLs successful flag in the variable table
+    variable_set('boincimport_replace_urls_successful', '1');
+    $_SESSION['boincimport_stage_selected'] = 'users';
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+  }
+  drupal_set_message($message);
+  
+  // Release the lock on the import process
+  variable_del('boincimport_process_locked');
+  drupal_goto('admin/boinc/import/process');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Clean up
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Remove temporary variables, clear caches, etc.
+ */
+function boincimport_process_cleanup() {
+  db_set_active('default');
+  
+  variable_del('boincimport_base_url_boinc');
+  variable_del('boincimport_base_url_drupal');
+  variable_del('boincimport_import_user_successful');
+  variable_del('boincimport_import_user_started');
+  variable_del('boincimport_import_team_successful');
+  variable_del('boincimport_import_team_started');
+  variable_del('boincimport_import_category_successful');
+  variable_del('boincimport_replace_url_successful');
+  variable_del('boincimport_import_category_started');
+  variable_del('boincimport_import_topic_successful');
+  variable_del('boincimport_import_topic_started');
+  variable_del('boincimport_import_post_successful');
+  variable_del('boincimport_import_post_started');
+  variable_del('boincimport_team_forum_successful');
+  variable_del('boincimport_team_topic_successful');
+  variable_del('boincimport_team_post_successful');
+  variable_del('boincimport_team_post_started');
+  variable_del('boincimport_ready');
+  variable_del('boincimport_db_url');
+  variable_del('boincimport_tested');
+  variable_del('boincimport_db_configured');
+  variable_del('boincimport_table_prefix');
+  variable_del('boincimport_team_types');
+  variable_del('boincimport_time_limit');
+  variable_del('boincimport_import_lurkers');
+  variable_del('boincimport_import_polls'); 
+  variable_del('boincimport_import_poll_started');
+  variable_del('boincimport_import_poll_successful');
+  variable_del('boincimport_import_pm_successful');
+  variable_del('boincimport_encode');
+  variable_del('boincimport_encoding_phpbb');
+  variable_del('boincimport_encoding_drupal');
+  variable_del('boincimport_version');
+
+  db_query('DELETE FROM {cache}');
+}
+
+/**
+ * Helper Functions
+ */
+
+function boincimport_forum_comment_save(&$edit) {
+  // Here we are building the thread field.  See the comment in comment_render().
+  if ($edit['pid'] == 0) {
+    // This is a comment with no parent comment (depth 0): we start by retrieving
+    // the maximum thread level.
+    $max = db_result(db_query('SELECT MAX(thread) FROM {comments} WHERE nid = %d', $edit['nid']));
+    // Strip the "/" from the end of the thread.
+    $max = rtrim($max, '/');
+    $thread = int2vancode(vancode2int($max)+1) .'/';
+  } else {
+    // This is comment with a parent comment: we increase the part of the thread
+    // value at the proper depth.
+    $parent = db_fetch_object(db_query('SELECT * FROM {comments} WHERE cid = %d', $edit['pid']));
+    // Strip the "/" from the end of the parent thread.
+    $parent->thread = (string) rtrim((string) $parent->thread, '/');
+    // Get the max value in _this_ thread.
+    $max = db_result(db_query("SELECT MAX(thread) FROM {comments} WHERE thread LIKE '%s.%%' AND nid = %d", $parent->thread, $edit['nid']));
+    if ($max == '') {
+      // First child of this parent.
+      $thread = $parent->thread .'.'. int2vancode(1) .'/';
+    } else {
+      // Strip the "/" at the end of the thread.
+      $max = rtrim($max, '/');
+      // We need to get the value at the correct depth.
+      $parts = explode('.', $max);
+      $parent_depth = count(explode('.', $parent->thread));
+      $last = $parts[$parent_depth];
+      // Finally, build the thread field for this new comment.
+      $thread = $parent->thread .'.'. int2vancode(vancode2int($last) + 1) .'/';
+    }
+  }
+
+  $status = 0; // 1 - not published, 0 - published
+  $format = variable_get('boincimport_input_format', 0);
+  $score = 0; // 0 default value, comments get higher score depending on the author's roles
+  $users = serialize(array(0 => 1));  // default value for everybody!!
+  
+  if ($edit['uid'] === $user->uid) { // '===' because we want to modify anonymous users too
+    $edit['name'] = $user->name;
+  }
+
+  $success = db_query("INSERT INTO {comments} (nid, pid, uid, subject, comment, format, hostname, timestamp, status, thread, name) VALUES (%d, %d, %d, '%s', '%s', %d, '%s', %d, %d, '%s', '%s')", $edit['nid'], $edit['pid'], $edit['uid'], $edit['subject'], $edit['comment'], $edit['format'], ip_address(), $edit['timestamp'], $edit['status'], $thread, $edit['name']);
+  if ($success) {
+    $edit['cid'] = db_last_insert_id('comments', 'cid');
+    _comment_update_node_statistics($edit['nid']);
+  }
+  return $success;
+}
+
+/**
+ * Strips text of extra phpbb3 markup and if requested, also strips all bbcode from text.
+ */
+function _boincimport_strip_bbcode($text) {
+  // Strip the text of extra markup - regular expressions taken from phpbb3 includes/function.php, function get_preg_expression().
+  $match = array(
+    '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
+    '#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
+    '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
+    '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
+    '#<!\-\- .*? \-\->#s',
+    '#<.*?>#s',
+  );
+  $replace = array('$1', '$1', '$2', '$1', '', '');
+  $text = preg_replace($match, $replace, $text);
+
+  // If BBcode conversion to has been selected, the following will convert the
+  // BBcode to normal html
+  if (variable_get('boincimport_bbcode', 0)) {
+    $input_format = variable_get('boincimport_input_format', 0);
+    $text = bbcode_filter('process', 0 , $input_format, $text);
+  }
+  return $text;
+}
+
+/**
+ * Function to properly encode strings.
+ */
+function _boincimport_text_sanitize($text) {
+  $input_format = variable_get('boincimport_input_format', 0);
+  $text = html_entity_decode($text, ENT_QUOTES, 'utf-8');
+  // Be sure the text is filtered for the default input format
+  $text = check_markup($text, $input_format);
+  return $text;
+}
+
+
+/**
+ * Replace all types of links.
+ */
+function _boincimport_replace_links($html) {
+  
+  $transformer = new BoincImportUrlTransformer();
+  
+  // Update links to posts, threads, and forums
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)&postid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformPostLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)(&\w+=\w*)*?(#(\d+)?)}i', array($transformer, 'transformOldPostLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformTopicLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_forum\.php\?id=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformForumLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)show_user\.php\?userid=(\d+)((&\w+=\w*)+)?}i', array($transformer, 'transformUserLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)workunit\.php\?wuid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformWorkUnitLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)result\.php\?resultid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformResultLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)results\.php\?userid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformUserResultsLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)results\.php\?hostid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformHostResultsLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)show_host_detail\.php\?hostid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformHostLinks'), $html);
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)hosts_user\.php\?userid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformUserHostsLinks'), $html);
+  
+  // Update any links to the top level index
+  $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_index.php}i', array($transformer, 'transformForumIndexLinks'), $html);
+  
+  return $html;
+}
+
+/**
+ * Limit redundancy by using this class to do URL transformations
+ */
+class BoincImportUrlTransformer {
+  
+  var $basePath;
+  var $boincDomain;
+  var $drupalDomain;
+  
+  /**
+   * Constructor
+   */
+  function BoincImportUrlTransformer() {
+    global $base_url;
+    global $base_path;
+    $boinc_base_urls = variable_get('boincimport_base_url_boinc', '');
+    $drupal_base_url = variable_get('boincimport_base_url_drupal', $base_url);
+    $this->basePath = $base_path;
+    $this->drupalDomain = parse_url($drupal_base_url, PHP_URL_HOST);
+    $this->boincDomains = array();
+    $boinc_base_urls = preg_split('/\s+/', $boinc_base_urls);
+    foreach ($boinc_base_urls as $url) {
+      $domain = parse_url($url, PHP_URL_HOST);
+      if ($domain) {
+        $this->boincDomains[$domain] = TRUE;
+      }
+    }
+    if (!$this->boincDomains) {
+      watchdog('boincimport', 'No valid BOINC base URLs found to transform!',
+        array(), WATCHDOG_WARNING); 
+    }
+  }
+  
+  /**
+   * Get what the new base URL should be (needed for every transformation)
+   */
+  function getNewBaseUrl($matches) {
+    $http = $matches[1];
+    $domain = trim($matches[2], '/');
+    if ($http) {
+      if (isset($this->boincDomains[$domain])) {
+        // This is a URL configured to be transformed
+        return "{$http}://{$this->drupalDomain}{$this->basePath}";
+      }
+      else {
+        // This URL should not be transformed
+        return NULL;
+      }
+    }
+    else {
+      // This is a relative URL
+      return $this->basePath;
+    }
+  }
+  
+  /**
+   * Replace links to specific posts. If the given post is the first in the
+   * thread, it is a topic node in Drupal, not a comment.
+   */
+  function transformPostLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $id = db_result(db_query('
+        SELECT p.cid
+        FROM {boincimport_temp_post} p
+        WHERE p.post_id = %d',
+        $matches[4]
+      ));
+      if ($id) {
+        $link = "{$newBaseUrl}goto/comment/{$id}";
+      }
+      else {
+        // This post is not in the post import table, so it's probably a topic
+        $link = $this->transformTopicLinks($matches);
+      }
+    }
+    return $link;
+  }
+  
+  /**
+   * Replace links that include anchors to specific posts. If the given post is
+   * the first in the thread, it is a topic node in Drupal, not a comment.
+   */
+  function transformOldPostLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $id = db_result(db_query('
+        SELECT p.cid
+        FROM {boincimport_temp_post} p
+        WHERE p.post_id = %d',
+        $matches[6]
+      ));
+      if ($id) {
+        $link = "{$newBaseUrl}goto/comment/{$id}";
+      }
+      else {
+        // This post is not in the post import table, so it's probably a topic
+        $link = $this->transformTopicLinks($matches);
+      }
+    }
+    return $link;
+  }
+  
+  function transformTopicLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $id = db_result(db_query('
+        SELECT nid
+        FROM {boincimport_temp_topic}
+        WHERE topic_id = %d',
+        $matches[3]
+      ));
+      $link = "{$newBaseUrl}node/{$id}";
+    }
+    return $link;
+  }
+
+  function transformForumLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $forum = db_fetch_object(db_query('
+        SELECT tid
+        FROM {boincimport_temp_forum}
+        WHERE forum_id = %d',
+        $matches[3]
+      ));
+      $link = "{$newBaseUrl}community/forum/{$forum->tid}";
+    }
+    return $link;
+  }
+
+  function transformUserLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      // Make sure this isn't an RPC link (no need to transform those)
+      if (!$matches[5]) {
+        // TODO: This regex doesn't seem to capture the format=xml part of the
+        // URL, making it impossible to distinguish if this is an RPC or not...
+        //watchdog('DEBUG', 'matches: @m', array('@m' => print_r($matches,true)), WATCHDOG_DEBUG);
+        $uid = boincuser_lookup_uid($matches[3]);
+        $link = "{$newBaseUrl}account/{$uid}";
+      }
+    }
+    return $link;
+  }
+
+  function transformWorkUnitLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $id = $matches[3];
+      $link = "{$newBaseUrl}workunit/{$id}";
+    }
+    return $link;
+  }
+
+  function transformResultLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $id = $matches[3];
+      $link = "{$newBaseUrl}task/{$id}";
+    }
+    return $link;
+  }
+
+  function transformHostResultsLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $id = $matches[3];
+      $link = "{$newBaseUrl}host/{$id}/tasks";
+    }
+    return $link;
+  }
+  
+  function transformUserResultsLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $link = "{$newBaseUrl}account/tasks";
+    }
+    return $link;
+  }
+  
+  function transformHostLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $id = $matches[3];
+      $link = "{$newBaseUrl}host/{$id}";
+    }
+    return $link;
+  }
+  
+  function transformUserHostsLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $uid = boincuser_lookup_uid($matches[3]);
+      if ($uid) {
+        $link = "{$newBaseUrl}account/{$uid}/computers";
+      }
+    }
+    return $link;
+  }
+  
+  function transformForumIndexLinks($matches) {
+    $link = $matches[0];
+    $newBaseUrl = $this->getNewBaseUrl($matches);
+    if ($newBaseUrl !== NULL) {
+      $link = "{$newBaseUrl}community/forum";
+    }
+    return $link;
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/boincimport/boincimport.pages.inc b/drupal/sites/default/boinc/modules/boincimport/boincimport.pages.inc
new file mode 100644
index 0000000..0995e76
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/boincimport.pages.inc
@@ -0,0 +1,455 @@
+<?php
+// $Id$
+
+/**
+ * Callback admin/boinc/import/settings
+ */
+function boincimport_admin_settings() {
+  global $conf ;
+  global $db_url;
+  global $base_url;
+  $stage = variable_get('boincimport_config_stage', 0); 
+  
+  // Start with a quick sanity check on the BOINC environment
+  boinc_get_path();
+  
+  //We'll be checking that the setup is complete.
+  //If it is not complete, the migration will not go ahead.
+  $ready_for_migration = 1;
+
+  // Checking that the migration has been tested on a copy first.
+  $form['test'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Test on copy first'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+    
+  $output = '';
+  if (!variable_get('boincimport_tested', 0)) {
+    $form['test']['#collapsed']= FALSE;
+    $output = '<span class="marker">';
+    $ready_for_migration = 0;
+  }
+  $output .= '<p>' . t('The migration will modify and even destroy some data. You
+    must test this module on a copy of your data first, several times if necessary.
+    Only use this module on your live data when you are familiar with the procedure
+    and you\'re confident everything will run smoothly.') . '</p><p>' . t('Also, you
+    should make a full backup of your database just prior to performing the
+    migration on the live data. It is better to turn off both the BOINC site and the
+    Drupal site during the migration.') . '</p>';
+  if (!variable_get('boincimport_tested', 0)) {
+    $output .= '</span>';
+  }
+  $form['test']['intro'] = array('#value' => $output);
+
+  $form['test']['boincimport_tested'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('I am running a trial migration on a disposable copy of the database
+      OR I have already done so and I am running this on my live site, confident that
+      the migration will proceed smoothly'),
+    '#return_value' => 1,
+    '#default_value' => variable_get('boincimport_tested', 0),
+    '#description' => '',
+  );
+  
+  // Where is BOINC data?
+  $pre = variable_get('boincimport_table_prefix', '');
+  $tables = array($pre .'forum', $pre .'post', $pre .'thread', $pre .'user');
+  $db = (is_array($db_url) AND isset($db_url['boinc'])) ? 'boinc' : 'default';
+  $result = _boincimport_check_tables($tables, $db, 0);
+  
+  $config_path = conf_path();
+  $form['boinc_data'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Location of BOINC data'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  $form['boinc_data']['boincimport_db_configured'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('There is a \'boinc\' database connection string configured in %file',
+      array('%file' => "{$config_path}/settings.php")),
+    '#return_value' => 1,
+    '#default_value' => variable_get('boincimport_db_configured', 1),
+    '#description' => '',
+    '#disabled' => ($result['result']) ? TRUE : FALSE
+  );
+  if (variable_get('boincimport_db_configured', 1) != 1) {
+    $default_db_url = is_array($db_url) ? end($db_url) : $db_url;
+    $url = variable_get('boincimport_db_url', $default_db_url);
+    if (!preg_match('{(mysql|pgsql):\/\/(.+):(.*?)@(.+)/(\w+)}i', $url)) {
+      $output = '<p class="marker">'. t('Set the address of the BOINC database
+        according to the following format:') . '<br /><pre>
+        mysql://boinc_username:boinc_password@localhost/boinc_database
+        </pre></p>';
+      $ready_for_migration = 0;
+      $form['boinc_data']['#collapsed'] = FALSE;
+      $form['boinc_data']['db_connect_string_note'] = array('#value' => $output);
+    }
+
+    $form['boinc_data']['boincimport_db_url'] = array(
+      '#type' => 'textfield',
+      '#title' => t('BOINC database location'),
+      '#default_value' => variable_get('boincimport_db_url', $default_db_url),
+      '#size' => 80,
+      '#maxlength' => 255,
+      '#description' => '',
+    );
+  }
+
+  $output = '<p>' . t('Note that due to a limitation within Drupal core, we cannot
+    import messages from one database type to another database type. E.g, we
+    cannot import BOINC from a myqsl DB, to a postgresql DB. You need to import
+    the data into the same type of database first (import all the BOINC data, as is,
+    from mysql to postgresql).') . '</p><p>' . t('If both BOINC and Drupal are on
+    postgresql, see !this_issue.', array('!this_issue' => l(t('this issue'),
+    'http://drupal.org/node/64877', array('attributes' => array('target' => '_blank'))))) . '</p>';
+  $form['boinc_data']['note'] = array('#value' => $output);
+  
+  // BOINC table prefix
+  $form['boinc_data']['boincimport_table_prefix'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC table prefix'),
+    '#default_value' => variable_get('boincimport_table_prefix', ''),
+    '#size' => 20,
+    '#maxlength' => 255,
+    '#description' => t('What prefix is used for your BOINC tables?'),
+    '#disabled' => ($result['result']) ? TRUE : FALSE
+  );
+  
+  $output = $result['html'];
+  if ($result['result'] != 1) {
+    $ready_for_migration = 0;
+    $form['boinc_data']['#collapsed']= FALSE;
+    $output .= '<span class="marker">';
+    $output .= t('Some tables couldn\'t be found. Are the database settings correct?
+      Please correct the errors so that the BOINC tables can be accessed.');
+    $output .= '</span>';
+  }
+
+  $form['boinc_data']['result'] = array('#value' => $output);
+  
+  // USERS settings
+  $form['users'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('User import'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  // User import batch size
+  $form['users']['boincimport_user_batch_size'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Number of accounts to process at a time'),
+    '#default_value' => variable_get('boincimport_user_batch_size', 50),
+    '#size' => 10,
+    '#maxlength' => 10,
+    '#description' => t('Due to memory intensive API calls, this value may have to
+      be adjusted to avoid exhausting system resources. The default value is a
+      balance between performance and reliability.')
+  );
+
+  // Import users who have never posted?
+  $form['users']['boincimport_import_lurkers'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Import users who have never posted?'),
+    '#return_value' => 1,
+    '#default_value' => variable_get('boincimport_import_lurkers', 0),
+    '#description' => t('Do you want to import users with no community
+      involvement? This may not be desired, as it can take a very long time to
+      import tens or hundreds of thousands of accounts. (note that users who
+      are not imported now will still be imported on-the-fly upon login)'),
+  );
+
+  // Input format settings
+  $form['input'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Input format settings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE
+  );
+  $output = '<p>'. t('Select which !input_format should be used for the imported
+    messages. It is highly-recommended that this value be left as it is, as the
+    Full HTML and PHP code formats can be very dangerous!', 
+    array('!input_format' => l(t('input format'), 'admin/settings/filters'))) .'</p>';
+  $form['input']['intro'] = array('#value' => $output);
+  
+  $formats = db_query('SELECT format, name FROM {filter_formats}');
+  while ($format = db_fetch_array($formats)) {
+    $input_formats[$format['format']]= $format['name'];
+  }
+  
+  // By default, use the format named "Rich text"; fall back to Filtered HTML
+  $default_input_format = db_result(db_query("
+    SELECT format FROM {filter_formats} WHERE name = '%s'", 'Rich text'));
+  if (!$default_input_format) $default_input_format = 1;
+  
+  $input_format = variable_get('boincimport_input_format', $default_input_format);
+  $form['input']['boincimport_input_format'] = array(
+    '#type' => 'radios',
+    '#title' => t('Input format'),
+    '#default_value' => $input_format,
+    '#options' => $input_formats
+  );
+  if (!$input_format) {
+    $ready_for_migration = 0;
+    $form['input']['#collapsed']= FALSE;
+  }
+  $output = '<p><em>'. t('This setting will be applied to all posts and private
+    messages.') .'</em></p>';
+  $form['input']['result'] = array('#value' => $output);
+  
+  // BBcode settings
+  $form['bbcode'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('BBcode settings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  
+  $output = '<p>' . t('BOINC posts are often formatted in BBcode. During the
+    import process, BBcode can be handled in two diffent ways') . ':</p>';
+  $output .= '<ul><li>' . t('Leave the BBcode as is and use the !bbcode_module
+    after the migration to filter the imported posts. In this case, the module
+    is not required during the migration, but will need to be installed and
+    configured later.',
+    array('!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode',
+    array('attributes' => array('target' => '_blank'))))) . '</li>';
+  $output .= '<li>' . t('Filter the BBcode now and replace it with plain HTML.
+    The BBcode module will be required during the migration process, but can
+    be disabled afterwards.') . '</li></ul>';
+  $output .= '<p>' . t('An appropriate input filter should be chosen, as well,
+    as it will affect how the post is displayed. For example, if BBcode is
+    removed and replaced by HTML, some HTML tags will be stripped by the
+    "Filtered HTML" input format unless they are first added to the list of
+    allowed tags in that format. See the !input_formats page.',
+    array('!input_formats' => l(t('input formats'), 'admin/settings/filters'))) . '</p>';
+    
+  $form['bbcode']['intro'] = array('#value' => $output);
+  $form['bbcode']['boincimport_bbcode'] = array(
+    '#type' => 'radios',
+    '#title' => t('BBcode handling'),
+    '#default_value' => variable_get('boincimport_bbcode', 0),
+    '#options' => array(t('Leave BBcode as is.'), t('Transform BBcode into HTML.')),
+    '#description' => '',
+  );
+  
+  $module_status = _boincimport_check_module('bbcode');
+  $bbcode_disabled = ($module_status['result'] == 0) ? true : false;
+  $output = $module_status['html'];
+  
+  if (variable_get('boincimport_bbcode', 0)) {
+    if ($bbcode_disabled) {
+      $ready_for_migration = 0;
+      $form['bbcode']['#collapsed'] = FALSE;
+      $output .= '<p><span class="marker">';
+      $output .= t('The !bbcode_module is required to transform BBcode into HTML.
+        You first need to !enable_bbcode', array(
+          '!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode', array('attributes' => array('target' => '_blank'))),
+          '!enable_bbcode' => l(t('enable the bbcode module'), 'admin/build/modules')));
+      $output .= '</span></p>';
+    }
+    $sql = "SELECT COUNT(*) FROM {filters} WHERE module = 'bbcode' AND format = %d";
+    $result = db_query($sql, $input_format);
+    if (!db_result($result)) {
+      $form['bbcode']['#collapsed'] = FALSE;
+      $output .= '<p class="marker">'. t('You need to !enable_bbcode_input and
+        then !configure_bbcode_options', array(
+          '!enable_bbcode_input' =>  l(t('enable BBcode in the selected input format'), "admin/settings/filters/{$input_format}"),
+          '!configure_bbcode_options' => l(t('configure BBcode options'), "admin/settings/filters/{$input_format}/configure"))) .'</p>';
+    }
+    $output .= '<p>'. t('For best results, !disable_all_options', 
+    array('!disable_all_options' => l(t('all four BBcode configure options should be disabled'), "admin/settings/filters/{$input_format}/configure"))) . '.</p>';
+  } else {
+    if ($bbcode_disabled) {
+      $form['bbcode']['#collapsed'] = FALSE;
+      $output .= '<p>'. t('The !bbcode_module is recommended, but not required.
+        You may !enable_bbcode after having installed it.', array(
+          '!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode', array('attributes' => array('target' => '_blank'))),
+          '!enable_bbcode' => l(t('enable the bbcode module'), 'admin/build/modules'))) .'</p>';
+    }
+    $output .= '<p>' . t('Don\'t forget to !enable_bbcode_input and then !configure_bbcode_options.', array(
+      '!enable_bbcode_input' =>  l(t('enable BBcode in the selected input format'), "admin/settings/filters/{$input_format}"),
+      '!configure_bbcode_options' => l(t('configure BBcode options'), "admin/settings/filters/{$input_format}/configure"))) . '</p>';
+    $output .= '<p>' . t('You may want to enable it for other input formats, too.') . '</p>';
+  }
+  $output .= '<p><em>'. t('This setting will be applied to all posts, private
+    messages and the users\' signature.') .'</em></p>';
+    
+  $form['bbcode']['result'] = array('#value' => $output);
+  
+  // URL transform settings
+  $form['url_transforms'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('URL transforms'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  if (!variable_get('boincimport_base_url_boinc', 0)) {
+    $form['url_transforms']['#collapsed']= FALSE;
+    $output = '<span class="marker">';
+    $ready_for_migration = 0;
+  }
+
+  // List of BOINC domains possible in URLs to transform
+  $form['url_transforms']['boincimport_base_url_boinc'] = array(
+    '#type' => 'textarea',
+    '#title' => t('BOINC base URLs to transform'),
+    '#default_value' => variable_get('boincimport_base_url_boinc', ''),
+    '#description' => t('List URL bases that should be transformed from
+      BOINC format to Drupal format (enter one domain per line, including http://).'),
+  );
+
+  // The Drupal domain to use in URL transform results
+  $form['url_transforms']['boincimport_base_url_drupal'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Target Drupal base URL'),
+    '#default_value' => variable_get('boincimport_base_url_drupal', ''),
+    '#description' => t('Specify the URL base to use in transform results. If
+      left blank, the base_url configured in this Drupal environment will be
+      used (currently: %url)', array('%url' =>$base_url)),
+  );
+  
+  // Are we ready for migration?
+  $form['migration'] = array(
+    '#type' => 'fieldset',
+    '#title' => 'Migration',
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+  variable_set('boincimport_ready', $ready_for_migration);
+  if ($ready_for_migration) {
+    $output = '<p>'. t('Check the settings above one more time. If everything
+      is ok, !proceed.', array('!proceed' => l(t('you can now proceed with the migration'), 'admin/boinc/import/process'))) .'</p>';
+  } else {
+    $output = '<p class="marker">'. t('You are not ready for the migration yet.
+      Please check the settings above.') .'</p>';
+  }
+  
+  $form['migration']['info'] = array('#value' => $output);
+  return system_settings_form($form); 
+}
+
+/**
+ * Callback admin/boinc/import/post_configuration
+ */
+function boincimport_post_configuration() {
+  $output = '<p>'. t('This page will help to tie up any loose ends following
+    the BOINC data import process. Before continuing, it may be best to have
+    already:') .'</p>';
+  $output .= '<ul>';
+  $output .= '<li>'. t('Imported users, teams, and forums using the BOINC
+    import module') .'</li>';
+  $output .= '<li>'. t('Imported any additional data using add on modules if
+    available.') .'</li>';
+  $output .= '</ul>';
+  //User Set up
+  $output .= '<h2>'. t('User settings') .'</h2>';  
+  $output .= '<p>'. t('Make sure your !user_settings are correct. Specifically,
+    you can enable or disable signatures there. ', array(
+      '!user_settings' => l(t('user settings'), 'admin/user/settings')
+    )) .'</p>'; 
+  $output .= '<p>' . t('Note that avatar/picture support is not tied to user
+    settings Picture support at this time.') . '</p>';
+  /*$output .= '<p>' . t('In order to activate avatar/picture support, you need to
+    enable pictures on this page and also:') . '</p>';
+  $output .= '<ul>';
+  $output .= '<li>'. t('Tick the checkboxes to allow "User pictures in posts" and/or
+    "User pictures in comments" on the !theme_config page.', array(
+      '!theme_config' => l(t('theme configuration'), 'admin/build/themes/settings')
+    )) .'</li>';
+  $output .= '<li>'. t('Manually copy the avatars from the boinc/images/avatars/
+    directory to the @files directory.', array(
+      '@files' => file_directory_path(). '/pictures'
+    )) .'</li>';
+  $output .= '</ul>'; */
+  
+  // Forum Set up
+  $output .= '<h2>'. t('Forum settings') .'</h2>';
+  $output .= '<p>'. t('Check any additional changes to make on the
+    !forum_settings page.', array(
+      '!forum_settings' =>  l(t('forum settings'), 'admin/content/forum/settings')
+    )) .'</p>';
+  $output .= '<p>'. t('It also may be a good idea to look at the !forum_list to
+    verify that all necessary containers and forums are in place.', array(
+      '!forum_list' =>  l(t('forum list'), 'admin/content/forum')
+    )) .'</p>';
+  /*$output .= '<p>'. t('If need be, set up the private forums as explained in the
+    !documentation.', array(
+      '!documentation' => l(t('documentation'), 'http://drupal.org/node/58969', array('attributes' => array('target' => '_blank')))
+    )) .'</p>';
+    */
+  /*
+  // Redirection from old URLs:
+  $output .= '<h2>'. t('Redirection from BOINC forum URLs to new Drupal forum URLs') .'</h2>';
+  $output .= '<p>'. t('Enable the boincforum_redirect.module. This way, users
+    accessing URLs from your old BOINC installation will be redirected to your new
+    Drupal forum.') .'</p>';
+  */
+  // BBcode
+  $bbcode = variable_get('boincimport_bbcode', 0);
+  if ($bbcode) {
+    $output .= '<h2>'. t('Remove BBcode module') .'</h2>';
+    $output .= '<p>'. t('The BBcode has been cleaned from the posts. You shouldn\'t
+      need the bbcode module anymore. You can disable it.') .'</p>';
+  } else {
+    $output .= '<h2>'. t('Configure BBcode module') .'</h2>';
+    $output .= '<p>'. t('Most likely, there are many BOINC forum postings
+      formatted in BBcode. It would be a good idea to verify that BBcode is
+      being formatted correctly in the imported posts. Have a look around
+      !the_forum.', array(
+        '!the_forum' =>  l(t('the forum'), 'community')
+      )) . '</p>';
+  }
+
+  return $output;
+}
+
+/**
+ * Callback admin/boinc/import
+ */
+function boincimport_main() {
+  // Start with a quick sanity check on the BOINC environment
+  boinc_get_path();
+  // If that's ok, on with the show
+  $output .= t('You may want to !check_documentation before starting.', array(
+    '!check_documentation' => l(t('check the documentation'), 'http://boinc.berkeley.edu/trac/wiki/InstallDrupal', array('attributes' =>array('target' => '_blank')))
+  ));
+  $output = '<ol><li>';
+  $output .= l(t('Configure the migration'), 'admin/boinc/import/settings');
+  $output .= '</li>';
+  $output .= '<li>';
+  $output .= l(t('Execute the migration'), 'admin/boinc/import/process');
+  $output .= '</li>';
+  $output .= '<li>';
+  $output .= l(t('Post migration configuration'), 'admin/boinc/import/post_configuration');
+  $output .= '</li>';
+  $output .= '<li>';
+  $output .= t('!cleanup (Accessing this link will delete all the saved BOINC forum
+    conversion settings: click only when you\'re done with all the above.)', array(
+      '!cleanup' => l(t('Cleanup'), 'admin/boinc/import/cleanup')
+    ));
+  $output .= '</li>';
+  /*$output .= '<li>';
+  $output .= t('Enable the boincforum_redirect module for seamless redirection
+    from the old forums to the new. This module requires !clean_urls to be active.', array(
+      '!clean_urls' => l(t('Clean URLs'), 'admin/settings/clean-urls')
+    ));
+  $output .= '</li>';
+  $output .= '<li>';
+  $output .= t('If you decide to use the boincforum_redirect module, do NOT
+    uninstall BOINC forum - This will delete tables necessary for redirection. You can,
+    however, deactivate the module safely.');
+  $output .= '</li>';*/
+  $output .= '</ol>';
+
+  // process will die() if the link to the BOINC database is wrong:
+  $output .= '<p>'. t('If the BOINC data is in another database, but you made a
+    mistake while setting up the data base url, you may be unable to access the
+    setting page due to some limitations of the core of Drupal. !reset_db_url.', array(
+      '!reset_db_url' => l(t('Click here to reset the database url'), 'admin/boinc/import/reset')
+    )) .'</p>';
+
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/boincimport/includes/import_subscriptions.php b/drupal/sites/default/boinc/modules/boincimport/includes/import_subscriptions.php
new file mode 100644
index 0000000..669015d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/includes/import_subscriptions.php
@@ -0,0 +1,44 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * A special, detachable routine for importing subscriptions.
+ *
+ * The process of importing subscriptions relies on Drupal API calls that may
+ * not be intended for large batch processing. This script is intended to be
+ * called via exec() by a higher level import routine to handle a small subset
+ * of Drupal user objects at a time and avoid exhausting memory.
+ */
+
+
+  require_once('./includes/bootstrap.inc');
+  drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+  require_boinc('db');
+  
+  // Parse arguments
+  $record_offset = isset($argv[1]) ? $argv[1] : 0;
+  $chunk_size = isset($argv[2]) ? $argv[2] : 100;
+  
+  // Construct sql conditions
+  $limit = sprintf('LIMIT %d,%d', $record_offset, $chunk_size);
+  
+  $total_count = 0;
+  
+  // Get the users with subscriptions to import
+  db_set_active('boinc');
+  $subscribed_boinc_users = db_query("
+    SELECT DISTINCT userid FROM {subscriptions}
+    ORDER BY userid ASC %s", $limit
+  );
+  db_set_active('default');
+  
+  // Import subscriptions
+  while ($boinc_subscription = db_fetch_object($subscribed_boinc_users)) {
+    $uid = get_drupal_id($boinc_subscription->userid);
+    $count = boincuser_pull_subscriptions($uid);
+    $total_count += $count;
+    echo "\nuser: {$uid}; boinc_id: {$boinc_subscription->userid}; {$count} subscriptions";
+  }
+  echo "\n";
+  echo $total_count;
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincimport/includes/import_team.php b/drupal/sites/default/boinc/modules/boincimport/includes/import_team.php
new file mode 100644
index 0000000..d1ff1cc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/includes/import_team.php
@@ -0,0 +1,93 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * A special, detachable routine for importing teams.
+ *
+ * The process of importing teams relies on Drupal API calls that may not
+ * be intended for large batch processing. This script is intended to be called
+ * via exec() by a higher level import routine to handle a small subset of teams
+ * at a time and avoid exhausting memory.
+ */
+
+  require_once('./includes/bootstrap.inc');
+  drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+  require_boinc('db');
+  
+  // Parse arguments
+  $team_id = isset($argv[1]) ? $argv[1] : null;
+  $team_type_tid = isset($argv[2]) ? $argv[2] : null;
+  $input_format = isset($argv[3]) ? $argv[3] : null;
+  
+  $count = 0;
+  
+  // Get teams from BOINC
+  db_set_active('boinc');
+  $boincteam = db_fetch_object(db_query('SELECT * FROM team WHERE id=%d', array($team_id)));
+  $boincteam_members = db_query('SELECT id FROM user WHERE teamid=%d', array($team_id));
+  $boincteam_admin = (int) db_result(db_query('SELECT userid FROM team_admin WHERE teamid=%d', array($team_id)));
+  db_set_active('default');
+  
+  $team_exists = db_query('SELECT team_id FROM {boincteam} WHERE team_id = %d', $boincteam->id);
+  // FIXME: $team_exists==FALSE should be handled as an error and return an error code!
+
+  if ($team_exists != FALSE && db_fetch_object($team_exists) == FALSE) {
+    $boincteam->description = _boincimport_text_sanitize($boincteam->description);
+    $teaser = node_teaser($boincteam->description);
+    
+    // Construct the team as an organic group node
+    $node = array(
+      'type' => 'team',
+      'title' => $boincteam->name,
+      'body' => $boincteam->description,
+      'teaser' => $teaser,
+      'uid' => boincuser_lookup_uid($boincteam->userid),
+      'path' => null,
+      'status' => 1,  // published or not - always publish
+      'promote' => 0,
+      'created' => $boincteam->create_time,
+      'comment' => 0,  // comments disabled
+      'moderate' => 0,
+      'sticky' => 0,
+      'format' => $input_format
+    );
+    
+    // Use pathauto function, if available, to clean up the path
+    if (module_exists('pathauto')) {
+      module_load_include('inc', 'pathauto', 'pathauto');
+      $node['path'] = pathauto_cleanstring($boincteam->name);
+    }
+    else {
+      echo 'Pathauto module is required!';
+      exit;
+    }
+    
+    $node = (object) $node; // node_save requires an object form
+    
+    $node->taxonomy[] = taxonomy_get_term($team_type_tid);
+    
+    // Save the team node
+    node_save($node);
+    
+    // Save the team IDs to a BOINC <--> Drupal reference table.
+    db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boincteam->id, $node->nid);
+  }
+  
+  // Determine team membership
+  db_set_active('boinc');
+  $boincteam_member_ids = array();
+  while ($boincuser = db_fetch_object($boincteam_members)) $boincteam_member_ids[] = $boincuser->id;
+  db_set_active('default');
+  if ($boincteam_member_ids) {
+    $team_members = db_query('SELECT uid FROM {boincuser} WHERE boinc_id IN(%s)', implode(',', $boincteam_member_ids));
+    $team_admin = (int) db_result(db_query('SELECT uid FROM {boincuser} WHERE boinc_id=%d', $boincteam_admin));
+    
+    while ($drupal_user = db_fetch_object($team_members)) {
+      // Add action to take on member accounts?
+      $count++;
+    }
+  }
+  
+  echo $count;
+  
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincimport/includes/import_users.php b/drupal/sites/default/boinc/modules/boincimport/includes/import_users.php
new file mode 100644
index 0000000..3f9f4e5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/includes/import_users.php
@@ -0,0 +1,71 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * A special, detachable routine for importing user accounts.
+ *
+ * The process of importing users relies on Drupal API calls that may not
+ * be intended for large batch processing. This script is intended to be called
+ * via exec() by a higher level import routine to handle a small subset of users
+ * at a time and avoid exhausting memory.
+ */
+
+
+  require_once('./includes/bootstrap.inc');
+  drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+  require_boinc('db');
+  
+  // Parse arguments
+  $import_lurkers = isset($argv[1]) ? $argv[1] : false;
+  $record_offset = isset($argv[2]) ? $argv[2] : 0;
+  $chunk_size = isset($argv[3]) ? $argv[3] : 100;
+  
+  // Construct sql conditions
+  $limit = sprintf('LIMIT %d,%d', $record_offset, $chunk_size);
+  
+  $count = 0;
+  
+  db_set_active('boinc');
+  if ($import_lurkers) {
+    $boinc_accounts = db_query('SELECT id FROM user ORDER BY id %s', $limit);
+  }
+  //else $boinc_accounts = db_query('SELECT DISTINCT user AS boinc_id FROM post ORDER BY boinc_id %s', $limit);
+  else {
+    // Need to import any user who is currently ignored in order to keep them
+    // ignored... not particularly clean (ignored users are stored in a string)
+    $ignored_user_list = array();
+    $ignoring_users = db_query("
+      SELECT ignorelist
+      FROM forum_preferences
+      WHERE ignorelist <> ''
+      ORDER BY userid ASC"
+    );
+    while ($ignoring_user = db_fetch_object($ignoring_users)) {
+      $ignored_user_list = $ignored_user_list + array_fill_keys(explode('|', trim($ignoring_user->ignorelist, '|')), 1);
+    }
+    $ignored_user_list = array_keys($ignored_user_list);
+    $boinc_accounts = db_query("
+      SELECT id FROM
+      (
+        (SELECT id FROM {user} WHERE teamid > 0 OR id IN(%s)) UNION
+        (SELECT DISTINCT user FROM {post}) UNION
+        (SELECT DISTINCT userid FROM {subscriptions}) UNION
+        (SELECT DISTINCT user_src FROM {friend} WHERE reciprocated = 1) UNION
+        (SELECT DISTINCT user_dest FROM {friend} WHERE reciprocated = 1) UNION
+        (SELECT DISTINCT userid FROM {forum_preferences} WHERE ignorelist <> '') UNION
+        (SELECT DISTINCT userid FROM {private_messages}) UNION
+        (SELECT DISTINCT senderid FROM {private_messages})
+      ) AS usersToImport ORDER BY id ASC %s", implode(',', $ignored_user_list), $limit
+    );
+  }
+  db_set_active('default');
+  
+  while ($boinc_account = db_fetch_object($boinc_accounts)) {
+    // Grab the BOINC user object and create a Drupal user from it
+    if (boincuser_register_make_drupal_user($boinc_account->id)) {
+      $count++;
+    }
+  }
+  
+  echo $count;
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincimport/views/views_handler_argument_boincteam_id.inc b/drupal/sites/default/boinc/modules/boincimport/views/views_handler_argument_boincteam_id.inc
new file mode 100644
index 0000000..433e535
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincimport/views/views_handler_argument_boincteam_id.inc
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * views_handler_argument_boincteam_id: This handler is used to convert
+ * the Drupal team ID passed as a URL argument into a BOINC team ID
+ * for accessing data in the BOINC database.
+ */
+
+class views_handler_argument_boincteam_id extends views_handler_argument_numeric {
+  function construct() {
+    parent::construct();
+  }
+
+  function set_argument($arg) {
+    // When setting the ID argument, convert to BOINC ID
+    $id = is_numeric($arg) ? $arg : 0;
+    $boinc_id = db_result(db_query("SELECT team_id FROM {boincteam} WHERE nid = %d", $id));
+    $this->argument = $boinc_id;
+    return $this->validate_arg($boinc_id);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincstats/boincstats.admin.inc b/drupal/sites/default/boinc/modules/boincstats/boincstats.admin.inc
new file mode 100644
index 0000000..8972631
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/boincstats.admin.inc
@@ -0,0 +1,72 @@
+<?php
+// $Id$
+
+/**
+* @file
+* Administration pages for the boincstats module
+*/
+
+
+/**
+  * The BOINC stats configuration determines where statistics are sourced
+  */
+function boincstats_admin_stats_system(&$form_state) {
+  $form = array();
+  $default = array(
+    'boinc_stats_server' => variable_get('boinc_stats_server', 'stats.gridrepublic.org'),
+    'boinc_stats_project_list_rpc' => variable_get('boinc_stats_project_list_rpc', 'rpc/get_projects.php'),
+    'boinc_stats_project_credit_history_rpc' => variable_get('boinc_stats_project_credit_history_rpc', 'rpc2/get_project_tc_history.php'),
+    'boinc_stats_user_credit_history_rpc' => variable_get('boinc_stats_user_credit_history_rpc', 'rpc2/get_user_credit_history.php'),
+    'boinc_stats_remote_project_id' => variable_get('boinc_stats_remote_project_id', ''),
+  );
+  // Define the form
+  $form['boinc_stats_server'] = array(
+    '#type' => 'value',
+    '#value' => $default['boinc_stats_server']
+  );
+  $form['boinc_stats_project_list_rpc'] = array(
+    '#type' => 'value',
+    '#value' => $default['boinc_stats_project_list_rpc']
+  );
+  $form['boinc_stats_project_credit_history_rpc'] = array(
+    '#type' => 'value',
+    '#value' => $default['boinc_stats_project_credit_history_rpc']
+  );
+  $form['boinc_stats_user_credit_history_rpc'] = array(
+    '#type' => 'value',
+    '#value' => $default['boinc_stats_user_credit_history_rpc']
+  );
+  $form['boinc_stats_remote_project_id'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Stats ID for @project', array(
+      '@project' => variable_get('site_name', t('this project')))),
+    '#default_value' => $default['boinc_stats_remote_project_id'], 
+    '#description' => t('This project must be registered with a stats system in
+      order for some statistics to be available. Currently only one system is
+      supported. !find_project_id there.', array(
+        '!find_project_id' => l(t('Find your project ID'),
+        "http://{$default['boinc_stats_server']}/{$default['boinc_stats_project_list_rpc']}",
+        array('attributes' => array('target' => 'external')))
+      )
+    )
+  );
+  return system_settings_form($form);
+}
+
+/**
+  * Validate the BOINC stats form.
+  */
+function boincstats_admin_stats_system_validate($form, &$form_state) {
+  $values = $form_state['values'];
+  if (!$values['boinc_stats_remote_project_id']) {
+    form_set_error('boinc_stats_remote_project_id',
+      t('Stats may not work without a valid stats ID configured!'));
+  }
+}
+
+/**
+  * Handle post-validation submission of BOINC stats form.
+  */
+function boincstats_admin_stats_system_submit($form, &$form_state) {
+  drupal_set_message(t('Stats system configuration has been updated.'));
+}
diff --git a/drupal/sites/default/boinc/modules/boincstats/boincstats.info b/drupal/sites/default/boinc/modules/boincstats/boincstats.info
new file mode 100644
index 0000000..5f0cde4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/boincstats.info
@@ -0,0 +1,6 @@
+; $Id$
+name = BOINC stats
+description = Enable extra charting features and statistics
+core = 6.x
+dependencies[] = boincuser
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boincstats/boincstats.module b/drupal/sites/default/boinc/modules/boincstats/boincstats.module
new file mode 100644
index 0000000..df8331f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/boincstats.module
@@ -0,0 +1,476 @@
+<?php
+// $Id$
+
+/**
+  * @file
+  * Enable BOINC charting features for statistics
+  */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+  * Implementation of hook_menu().
+  */
+function boincstats_menu() {
+  $items['admin/boinc/stats'] = array(
+    'title' => 'Environment: Statistics setup',
+    'description' => 'Configure the stats system for generating charts and 
+      providing cross project data.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincstats_admin_stats_system'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boincstats.admin.inc'
+  );
+  $items['charts/user'] = array(
+    'page callback' => 'boincstats_get_user_stats_chart',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['charts/project'] = array(
+    'page callback' => 'boincstats_get_project_stats_chart',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  return $items;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Page callbacks from hook_menu()
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+  * User stats chart menu callback
+  * Called to generate the daily credit status chart for a user (dashboard)
+  */
+function boincstats_get_user_stats_chart($cpid = null, $chart_size = 'medium') {
+  
+  // pChart library inclusions
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pData.class');
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pDraw.class');
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pImage.class');
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pCache.class');
+  
+  init_theme();
+  global $theme_key;
+  $cache_name = "{$theme_key}_";
+  
+  $dataset_size = 0;
+  $chart_height = 0;
+  $chart_width = 0;
+  $draw_x_lines = FALSE;
+  $label_x_axis = FALSE;
+  
+  $stats_xml = NULL;
+  
+  switch($chart_size) {
+  case 'small':
+    $cache_name .= "{$cpid}_small";
+    $dataset_size = 30;
+    $chart_height = 80;
+    $chart_width = 266;
+    //$backdrop_color = array('R'=>238,'G'=>238,'B'=>238);
+    $draw_x_lines = FALSE;
+    $label_x_axis = FALSE;
+    break;
+  case 'medium':
+  default:
+    $cache_name .= $cpid;
+    $dataset_size = 60;
+    $chart_height = 155;
+    $chart_width = 589;
+    $draw_x_lines = TRUE;
+    $label_x_axis = TRUE;
+  }
+  
+  // Sanity check for cache directory
+  if (!boincstats_check_cache_dir()) {
+    return;
+  }
+  
+  // Initialize the cache object and flush stale images
+  $myCache = new pCache(array('CacheFolder' => realpath('.') . '/' . conf_path() . '/files/cache'));
+  $myCache->removeOlderThan(60*60*24);
+  
+  if ($myCache->isInCache($cache_name)) {
+    $myCache->strokeFromCache($cache_name);
+  }
+  else {
+    // Initialize dataset
+    $dataset = array();
+    $stats_xml = boincstats_get_project_stats('daily', $cpid);
+    if ($stats_xml) {
+      // Get the last 60 days of stats for the chart
+      for ($j = 30; $j < 90; $j++) {
+        $dataset[] = (int) $stats_xml->records->record[$j];
+      }
+    }
+    else {
+      for ($i = 0; $i <= $dataset_size; $i++) $dataset[] = 0;
+    }
+    
+    // Get color configuration
+    $color_keys = array('R', 'G', 'B');
+    $palette_color_hex = theme_get_setting('boinc_stats_chart_color');
+    $palette_color = array_combine($color_keys, sscanf($palette_color_hex, "#%02x%02x%02x"));
+    $backdrop_color_hex = theme_get_setting('boinc_stats_chart_bcolor');
+    $backdrop_color = array_combine($color_keys, sscanf($backdrop_color_hex, "#%02x%02x%02x"));
+    
+    // Create and populate the pData object
+    $MyData = new pData();
+    
+    $MyData->addPoints($dataset, 'series1');
+    $MyData->setPalette('series1', $palette_color);
+    $MyData->setAxisPosition(0,AXIS_POSITION_RIGHT);
+    
+    // Create the pChart object
+    $myPicture = new pImage($chart_width, $chart_height, $MyData);
+
+    // Turn on Antialiasing
+    $myPicture->Antialias = true;
+
+    // Set the default font
+    //$myPicture->setFontProperties(array('FontName' => '../fonts/pf_arma_five.ttf','FontSize' => 6));
+
+    // Define the chart area
+    $myPicture->setGraphArea(0, 3, $chart_width, $chart_height);
+    if ($backdrop_color) {
+      $myPicture->drawFilledRectangle(0, 0, $chart_width, $chart_height, $backdrop_color);
+    }
+    
+    // Draw the scale
+    $scaleSettings = array(
+      'Mode' => SCALE_MODE_START0,
+      'DrawYLines' => false,
+      'DrawXLines' => $draw_x_lines,
+      'GridTicks' => 2,
+      'LabelSkip' => 9,
+      'SkippedAxisAlpha' => 0,
+      'SkippedInnerTickWidth' => 0,
+      'SkippedOuterTickWidth' => 0,
+      'AxisAlpha' => 0,
+      'InnerTickWidth' => 0,
+      'OuterTickWidth' => 0,
+      'XMargin' => 1,
+      'YMargin' => 0,
+      'Floating' => TRUE,
+      'GridR' => 200,
+      'GridG' => 200,
+      'GridB' => 200,
+      'DrawSubTicks' => false,
+      'CycleBackground' => false
+    );
+    $myPicture->setFontProperties(array('FontSize' => 10));
+    $myPicture->drawScale($scaleSettings);
+    
+    if ($label_x_axis) {
+      for ($i = 5; $i >= 0; $i--) {
+        $label = ($i) ? -10*$i : 'Today';
+        $myPicture->drawText(589-587*($i/6)-5, 2, $label, array('Align' => TEXT_ALIGN_TOPRIGHT));
+      }
+    }
+
+    // Draw the area chart
+    $myPicture->drawAreaChart(array('ForceTransparency' => 100));
+    
+    // Write the chart to the cache
+    $myCache->writeToCache($cache_name, $myPicture);
+    
+    // Render the picture (choose the best way)
+    //$myPicture->autoOutput('pictures/example.drawAreaChart.simple.png');
+    $myPicture->stroke();
+  }
+}
+
+/**
+ * Project stats chart menu callback
+ * Called to generate the daily credit status chart for the whole project
+ */
+function boincstats_get_project_stats_chart() {
+  // pChart library inclusions
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pData.class');
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pDraw.class');
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pImage.class');
+  module_load_include('php', 'boincstats', 'includes/pchart/class/pCache.class');
+  
+  init_theme();
+  global $theme_key;
+  $cache_name = "{$theme_key}_project_chart";
+  
+  $color_keys = array('R', 'G', 'B');
+  
+  // Get color configuration
+  $palette_color_hex = theme_get_setting('boinc_stats_chart_color');
+  $palette_color = array_combine($color_keys, sscanf($palette_color_hex, "#%02x%02x%02x"));
+  $backdrop_color_hex = theme_get_setting('boinc_stats_chart_bcolor');
+  $backdrop_color = array_combine($color_keys, sscanf($backdrop_color_hex, "#%02x%02x%02x"));
+   
+  // Sanity check for cache directory
+  if (!boincstats_check_cache_dir()) {
+    return;
+  }
+  
+  // Initialize the cache object and flush stale images
+  $myCache = new pCache(array('CacheFolder' => realpath('.') . '/' . conf_path() . '/files/cache'));
+  $myCache->removeOlderThan(60*60*24);
+  
+  if ($myCache->isInCache($cache_name)) {
+    $myCache->strokeFromCache($cache_name);
+  }
+  else {
+    // Initialize dataset
+    $dataset = array();
+    $stats_xml = boincstats_get_project_stats('daily');
+    if ($stats_xml) {
+      // Get the last 60 days of stats for the chart
+      for ($j = 30; $j < 90; $j++) {
+        $dataset[] = (int) $stats_xml->records->record[$j];
+      }
+    }
+    else {
+      for ($i = 0; $i <= 30; $i++) $dataset[] = 0;
+    }
+    
+    // Create and populate the pData object
+    $MyData = new pData();
+    
+    $MyData->addPoints($dataset, 'series1');
+    $MyData->setPalette('series1', $palette_color);
+    $MyData->setAxisPosition(0,AXIS_POSITION_RIGHT);
+
+    // Create the pChart object
+    $myPicture = new pImage(266,80,$MyData);
+
+    // Turn on Antialiasing
+    $myPicture->Antialias = true;
+
+    // Set the default font
+    //$myPicture->setFontProperties(array('FontName' => '../fonts/pf_arma_five.ttf','FontSize' => 6));
+
+    // Define the chart area
+    $myPicture->setGraphArea(0,0,266,80);
+    $myPicture->drawFilledRectangle(0,0,266,80,$backdrop_color);
+
+    // Draw the scale
+    $scaleSettings = array(
+      'Mode' => SCALE_MODE_START0,
+      'DrawYLines' => false,
+      'DrawXLines' => false,
+      'GridTicks' => 2,
+      'LabelSkip' => 9,
+      'SkippedAxisAlpha' => 0,
+      'SkippedInnerTickWidth' => 0,
+      'SkippedOuterTickWidth' => 0,
+      'AxisAlpha' => 0,
+      'InnerTickWidth' => 0,
+      'OuterTickWidth' => 0,
+      'XMargin' => 1,
+      'YMargin' => 0,
+      'Floating' => TRUE,
+      'GridR' => 200,
+      'GridG' => 200,
+      'GridB' => 200,
+      'DrawSubTicks' => false,
+      'CycleBackground' => false
+    );
+    $myPicture->setFontProperties(array('FontSize' => 10));
+    $myPicture->drawScale($scaleSettings);
+    
+    /*for ($i = 5; $i >= 0; $i--) {
+      $label = ($i) ? -10*$i : 'Today';
+      $myPicture->drawText(598-596*($i/6)-5, 2, $label, array('Align' => TEXT_ALIGN_TOPRIGHT));
+    }*/
+
+    // Draw the area chart */
+    $myPicture->drawAreaChart(array('ForceTransparency' => 100));
+    
+    // Write the chart to the cache
+    $myCache->writeToCache($cache_name, $myPicture);
+
+    // Render the picture (choose the best way)
+    //$myPicture->autoOutput('pictures/example.drawAreaChart.simple.png');
+    $myPicture->stroke();
+  }
+}
+
+/*
+ *
+ */
+function boincstats_check_cache_dir($cache_path = 'files/cache') {
+  $cache_dir = realpath('.') . '/' . conf_path() . '/' . $cache_path;
+  if (!is_writeable($cache_dir)) {
+    if (!is_dir($cache_dir)) {
+      if (!is_writeable(dirname($cache_dir))) {
+        // If the parent "files" dir isn't even writeable...
+        watchdog('boincstats', '@parent_dir directory is not writeable. This
+          directory must be writeable by the web server.',
+          array('@parent_dir' => dirname($cache_dir)), WATCHDOG_ERROR);
+        return FALSE;
+      }
+      else {
+        // Create the cache dir
+        if (!mkdir($cache_dir, 0775)) {
+          watchdog('boincstats', 'Failed to create @cache_dir directory. Check
+            filesystem permissions...?',
+            array('@cache_dir' => $cache_dir), WATCHDOG_ERROR);
+          return FALSE;
+        }
+      }
+    }
+    else {
+      watchdog('boincstats', 'Cache directory at @cache_dir is not writeable.
+        Please allow webserver write access.',
+        array('@cache_dir' => $cache_dir), WATCHDOG_ERROR);
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
+
+/*
+ *
+ */
+function boincstats_get_project_stats($type = 'total', $cpid = NULL) {
+  
+  // Determine the stats environment
+  boincstats_check_configuration();
+  $stats_server = variable_get('boinc_stats_server', '');
+  $stats_rpc = variable_get('boinc_stats_project_credit_history_rpc', '');
+  $project_id = variable_get('boinc_stats_remote_project_id', '');
+  
+  $get = array(
+    'id' => $project_id
+  );
+  switch ($type) {
+  case 'daily':
+    $get['daily'] = NULL;
+    break;
+  case 'total':
+  default:
+  }
+  
+  if ($cpid) {
+    // If a user CPID has been provided, limit scope to that user
+    $stats_rpc = variable_get('boinc_stats_user_credit_history_rpc', '');
+    $get['cpid'] = $cpid;
+  }
+  
+  // Construct query string
+  $args = array();
+  foreach ($get as $arg => $value) {
+    if ($value !== NULL) {
+      $args[] = "{$arg}=" . rawurlencode($value);
+    }
+    else {
+      $args[] = $arg;
+    }
+  }
+  $query = '?' . implode('&', $args);
+  
+  // Load XML from RPC
+  $stats_xml = NULL;
+  $target_url = "http://{$stats_server}/{$stats_rpc}{$query}";
+  $result = drupal_http_request($target_url);
+  if (in_array($result->code, array(200, 304))) {
+    $stats_xml = simplexml_load_string($result->data);
+  }
+  watchdog('boincstats', $target_url);
+  return $stats_xml;
+}
+
+/*
+ *
+ */
+function boincstats_get_project_total_credit() {
+  $stats_xml = boincstats_get_project_stats();
+  $last_record = end($stats_xml->records->record);
+  return ($last_record) ? (int) $last_record : 0;
+}
+
+/*
+ *
+ */
+function boincstats_get_project_avg_credit() {
+  $stats_xml = boincstats_get_project_stats();
+  return (isset($stats_xml->recent_avg)) ? $stats_xml->recent_avg : 0;
+}
+
+/*
+ *
+ */
+function boincstats_credit_to_ghours($credit) {
+  return $credit / (100 * 365);
+}
+
+/*
+ *
+ */
+function boincstats_credit_to_flops($credit, $prefix = 0) {
+  $factor = array(
+    '0' => 0,
+    'g' => 3,
+    't' => 6,
+    'p' => 9
+  );
+  return $credit / (pow(10, (int) $factor[$prefix]) / 10);
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Data access support functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+function boincstats_get_project_stats_overview($type = 'basic') {
+  global $base_path;
+  $output = '';
+  switch ($type) {
+  case 'basic':
+    $output .= '<div class="overlay"><span>(' . bts('Credits per day', array(), NULL, 'boinc:front-page') . ')</span></div>' . "\n";
+    $output .= '<div class="chart"><img src="' . $base_path . 'charts/project" /></div>' . "\n";
+    break;
+  case 'detailed':
+    $output .= '<div class="stats"><label>' . bts('Total G-hours', array(), NULL, 'boinc:front-page') . ': </label><span>' . number_format(boincstats_credit_to_ghours(boincstats_get_project_total_credit())) . '</span></div>' . "\n";
+    $output .= '<div class="stats"><label>' . bts('Avg TFlops', array(), NULL, 'boinc:front-page') . ': </label><span>' . number_format(boincstats_credit_to_flops(boincstats_get_project_avg_credit(), 't')) . '</span></div>' . "\n";
+    //$output .= '<div class="stats"><a href="#">' . bts('Pending credits', array(), NULL, 'boinc:front-page') . '</a></div>' . "\n";
+    $output .= '<div class="chart"><img src="' . $base_path . 'charts/project" /></div>' . "\n";
+    break;
+  default:
+  }
+  return $output;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Miscellaneous support functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/*
+ * Check that the stats system is configured, report if it isn't
+ */
+function boincstats_check_configuration() {
+  $project_id = variable_get('boinc_stats_remote_project_id', '');
+  if (!$project_id) {
+    watchdog('boincstats', 'The BOINC stats system is not configured. Please
+        !configure_it', array('!configure_it' => l(t('configure it now'),
+          'admin/boinc/stats')), WATCHDOG_ERROR);
+    if (user_access('administer site configuration')) {
+      drupal_set_message(t('The BOINC stats system is not configured. Please
+        !configure_it', array('!configure_it' => l(t('configure it now'),
+          'admin/boinc/stats'))), 'error', FALSE);
+    }
+    else {
+      drupal_set_message(t('There is a problem with the site. Please contact
+        the system administrator.'), 'error', FALSE);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/GPLv3.txt b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/GPLv3.txt
new file mode 100644
index 0000000..10926e8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/GPLv3.txt
@@ -0,0 +1,675 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBarcode128.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBarcode128.class.php
new file mode 100644
index 0000000..670ca63
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBarcode128.class.php
@@ -0,0 +1,184 @@
+<?php
+ /*
+     pBarcode128 - class to create barcodes (128B)
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ /* pData class definition */
+ class pBarcode128
+  {
+   var $Codes;
+   var $Reverse;
+   var $Result;
+   var $pChartObject;
+   var $CRC;
+
+   /* Class creator */
+   function pBarcode128($BasePath="")
+    {
+     $this->Codes   = "";
+     $this->Reverse = "";
+
+     $FileHandle = @fopen($BasePath."data/128B.db", "r");
+
+     if (!$FileHandle) { die("Cannot find barcode database (".$BasePath."128B.db)."); }
+
+     while (!feof($FileHandle))
+      {
+       $Buffer = fgets($FileHandle,4096);
+       $Buffer = str_replace(chr(10),"",$Buffer);
+       $Buffer = str_replace(chr(13),"",$Buffer);
+       $Values = preg_split("/;/",$Buffer);
+
+       $this->Codes[$Values[1]]["ID"]     = $Values[0];
+       $this->Codes[$Values[1]]["Code"]   = $Values[2];
+       $this->Reverse[$Values[0]]["Code"] = $Values[2];
+       $this->Reverse[$Values[0]]["Asc"]  = $Values[1];
+      }
+     fclose($FileHandle);
+    }
+
+   /* Return the projected size of a barcode */
+   function getSize($TextString,$Format="")
+    {
+     $Angle		= isset($Format["Angle"]) ? $Format["Angle"] : 0;
+     $ShowLegend	= isset($Format["ShowLegend"]) ? $Format["ShowLegend"] : FALSE;
+     $LegendOffset	= isset($Format["LegendOffset"]) ? $Format["LegendOffset"] : 5;
+     $DrawArea		= isset($Format["DrawArea"]) ? $Format["DrawArea"] : FALSE;
+     $FontSize		= isset($Format["FontSize"]) ? $Format["FontSize"] : 12;
+     $Height		= isset($Format["Height"]) ? $Format["Height"] : 30;
+
+     $TextString    = $this->encode128($TextString);
+     $BarcodeLength = strlen($this->Result);
+
+     if ( $DrawArea )   { $WOffset = 20; } else { $WOffset = 0; }
+     if ( $ShowLegend ) { $HOffset = $FontSize+$LegendOffset+$WOffset; } else { $HOffset = 0; }
+
+     $X1 = cos($Angle * PI / 180) * ($WOffset+$BarcodeLength);
+     $Y1 = sin($Angle * PI / 180) * ($WOffset+$BarcodeLength);
+
+     $X2 = $X1 + cos(($Angle+90) * PI / 180) * ($HOffset+$Height);
+     $Y2 = $Y1 + sin(($Angle+90) * PI / 180) * ($HOffset+$Height);
+
+
+     $AreaWidth  = max(abs($X1),abs($X2));
+     $AreaHeight = max(abs($Y1),abs($Y2));
+
+     return(array("Width"=>$AreaWidth,"Height"=>$AreaHeight));
+    }
+
+   function encode128($Value,$Format="")
+    {
+     $this->Result  = "11010010000";
+     $this->CRC     = 104;
+     $TextString    = "";
+
+     for($i=1;$i<=strlen($Value);$i++)
+      {
+       $CharCode = ord($this->mid($Value,$i,1));
+       if ( isset($this->Codes[$CharCode]) )
+        {
+         $this->Result = $this->Result.$this->Codes[$CharCode]["Code"];
+         $this->CRC = $this->CRC + $i*$this->Codes[$CharCode]["ID"];
+         $TextString = $TextString.chr($CharCode);
+        }
+      }
+     $this->CRC = $this->CRC - floor($this->CRC/103)*103;
+
+     $this->Result = $this->Result.$this->Reverse[$this->CRC]["Code"];
+     $this->Result = $this->Result."1100011101011";
+
+     return($TextString);
+    }
+
+   /* Create the encoded string */
+   function draw($Object,$Value,$X,$Y,$Format="")
+    {
+     $this->pChartObject = $Object;
+
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Height		= isset($Format["Height"]) ? $Format["Height"] : 30;
+     $Angle		= isset($Format["Angle"]) ? $Format["Angle"] : 0;
+     $ShowLegend	= isset($Format["ShowLegend"]) ? $Format["ShowLegend"] : FALSE;
+     $LegendOffset	= isset($Format["LegendOffset"]) ? $Format["LegendOffset"] : 5;
+     $DrawArea		= isset($Format["DrawArea"]) ? $Format["DrawArea"] : FALSE;
+     $AreaR		= isset($Format["AreaR"]) ? $Format["AreaR"] : 255;
+     $AreaG		= isset($Format["AreaG"]) ? $Format["AreaG"] : 255;
+     $AreaB		= isset($Format["AreaB"]) ? $Format["AreaB"] : 255;
+     $AreaBorderR	= isset($Format["AreaBorderR"]) ? $Format["AreaBorderR"] : $AreaR;
+     $AreaBorderG	= isset($Format["AreaBorderG"]) ? $Format["AreaBorderG"] : $AreaG;
+     $AreaBorderB	= isset($Format["AreaBorderB"]) ? $Format["AreaBorderB"] : $AreaB;
+
+     $TextString = $this->encode128($Value);
+
+     if ( $DrawArea )
+      {
+       $X1 = $X + cos(($Angle-135) * PI / 180) * 10;
+       $Y1 = $Y + sin(($Angle-135) * PI / 180) * 10;
+
+       $X2 = $X1 + cos($Angle * PI / 180) * (strlen($this->Result)+20);
+       $Y2 = $Y1 + sin($Angle * PI / 180) * (strlen($this->Result)+20);
+
+       if ( $ShowLegend )
+        {
+         $X3 = $X2 + cos(($Angle+90) * PI / 180) * ($Height+$LegendOffset+$this->pChartObject->FontSize+10);
+         $Y3 = $Y2 + sin(($Angle+90) * PI / 180) * ($Height+$LegendOffset+$this->pChartObject->FontSize+10);
+        }
+       else
+        {
+         $X3 = $X2 + cos(($Angle+90) * PI / 180) * ($Height+20);
+         $Y3 = $Y2 + sin(($Angle+90) * PI / 180) * ($Height+20);
+        }
+
+       $X4 = $X3 + cos(($Angle+180) * PI / 180) * (strlen($this->Result)+20);
+       $Y4 = $Y3 + sin(($Angle+180) * PI / 180) * (strlen($this->Result)+20);
+
+       $Polygon  = array($X1,$Y1,$X2,$Y2,$X3,$Y3,$X4,$Y4);
+       $Settings = array("R"=>$AreaR,"G"=>$AreaG,"B"=>$AreaB,"BorderR"=>$AreaBorderR,"BorderG"=>$AreaBorderG,"BorderB"=>$AreaBorderB);
+       $this->pChartObject->drawPolygon($Polygon,$Settings);
+      }
+
+     for($i=1;$i<=strlen($this->Result);$i++)
+      {
+       if ( $this->mid($this->Result,$i,1) == 1 )
+        {
+         $X1 = $X + cos($Angle * PI / 180) * $i;
+         $Y1 = $Y + sin($Angle * PI / 180) * $i;
+         $X2 = $X1 + cos(($Angle+90) * PI / 180) * $Height;
+         $Y2 = $Y1 + sin(($Angle+90) * PI / 180) * $Height;
+
+         $Settings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+         $this->pChartObject->drawLine($X1,$Y1,$X2,$Y2,$Settings);
+        }
+      }
+
+     if ( $ShowLegend )
+      {
+       $X1 = $X + cos($Angle * PI / 180) * (strlen($this->Result)/2);
+       $Y1 = $Y + sin($Angle * PI / 180) * (strlen($this->Result)/2);
+
+       $LegendX = $X1 + cos(($Angle+90) * PI / 180) * ($Height+$LegendOffset);
+       $LegendY = $Y1 + sin(($Angle+90) * PI / 180) * ($Height+$LegendOffset);
+
+       $Settings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Angle"=>-$Angle,"Align"=>TEXT_ALIGN_TOPMIDDLE);
+       $this->pChartObject->drawText($LegendX,$LegendY,$TextString,$Settings);
+      }
+    }
+
+   function left($value,$NbChar) { return substr($value,0,$NbChar); }  
+   function right($value,$NbChar) { return substr($value,strlen($value)-$NbChar,$NbChar); }  
+   function mid($value,$Depart,$NbChar) { return substr($value,$Depart-1,$NbChar); }  
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBarcode39.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBarcode39.class.php
new file mode 100644
index 0000000..554be9b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBarcode39.class.php
@@ -0,0 +1,200 @@
+<?php
+ /*
+     pBarcode39 - class to create barcodes (39B)
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ /* pData class definition */
+ class pBarcode39
+  {
+   var $Codes;
+   var $Reverse;
+   var $Result;
+   var $pChartObject;
+   var $CRC;
+   var $MOD43;
+
+   /* Class creator */
+   function pBarcode39($BasePath="",$EnableMOD43=FALSE)
+    {
+     $this->MOD43  = $EnableMOD43;
+     $this->Codes   = "";
+     $this->Reverse = "";
+
+     $FileHandle = @fopen($BasePath."data/39.db", "r");
+
+     if (!$FileHandle) { die("Cannot find barcode database (".$BasePath."data/39.db)."); }
+
+     while (!feof($FileHandle))
+      {
+       $Buffer = fgets($FileHandle,4096);
+       $Buffer = str_replace(chr(10),"",$Buffer);
+       $Buffer = str_replace(chr(13),"",$Buffer);
+       $Values = preg_split("/;/",$Buffer);
+
+       $this->Codes[$Values[0]] = $Values[1];
+      }
+     fclose($FileHandle);
+    }
+
+   /* Return the projected size of a barcode */
+   function getSize($TextString,$Format="")
+    {
+     $Angle		= isset($Format["Angle"]) ? $Format["Angle"] : 0;
+     $ShowLegend	= isset($Format["ShowLegend"]) ? $Format["ShowLegend"] : FALSE;
+     $LegendOffset	= isset($Format["LegendOffset"]) ? $Format["LegendOffset"] : 5;
+     $DrawArea		= isset($Format["DrawArea"]) ? $Format["DrawArea"] : FALSE;
+     $FontSize		= isset($Format["FontSize"]) ? $Format["FontSize"] : 12;
+     $Height		= isset($Format["Height"]) ? $Format["Height"] : 30;
+
+     $TextString    = $this->encode39($TextString);
+     $BarcodeLength = strlen($this->Result);
+
+     if ( $DrawArea )   { $WOffset = 20; } else { $WOffset = 0; }
+     if ( $ShowLegend ) { $HOffset = $FontSize+$LegendOffset+$WOffset; } else { $HOffset = 0; }
+
+     $X1 = cos($Angle * PI / 180) * ($WOffset+$BarcodeLength);
+     $Y1 = sin($Angle * PI / 180) * ($WOffset+$BarcodeLength);
+
+     $X2 = $X1 + cos(($Angle+90) * PI / 180) * ($HOffset+$Height);
+     $Y2 = $Y1 + sin(($Angle+90) * PI / 180) * ($HOffset+$Height);
+
+
+     $AreaWidth  = max(abs($X1),abs($X2));
+     $AreaHeight = max(abs($Y1),abs($Y2));
+
+     return(array("Width"=>$AreaWidth,"Height"=>$AreaHeight));
+    }
+
+   /* Create the encoded string */
+   function encode39($Value)
+    {
+     $this->Result = "100101101101"."0";
+     $TextString   = "";
+     for($i=1;$i<=strlen($Value);$i++)
+      {
+       $CharCode = ord($this->mid($Value,$i,1));
+       if ( $CharCode >= 97 && $CharCode <= 122 ) { $CharCode = $CharCode - 32; }
+
+       if ( isset($this->Codes[chr($CharCode)]) )
+        {
+         $this->Result = $this->Result.$this->Codes[chr($CharCode)]."0";
+         $TextString = $TextString.chr($CharCode);
+        }
+      }
+
+     if ( $this->MOD43 )
+      {
+       $Checksum = $this->checksum($TextString);
+       $this->Result = $this->Result.$this->Codes[$Checksum]."0";
+      }
+
+     $this->Result = $this->Result."100101101101";
+     $TextString   = "*".$TextString."*";
+
+     return($TextString);
+    }
+
+   /* Create the encoded string */
+   function draw($Object,$Value,$X,$Y,$Format="")
+    {
+     $this->pChartObject = $Object;
+
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Height		= isset($Format["Height"]) ? $Format["Height"] : 30;
+     $Angle		= isset($Format["Angle"]) ? $Format["Angle"] : 0;
+     $ShowLegend	= isset($Format["ShowLegend"]) ? $Format["ShowLegend"] : FALSE;
+     $LegendOffset	= isset($Format["LegendOffset"]) ? $Format["LegendOffset"] : 5;
+     $DrawArea		= isset($Format["DrawArea"]) ? $Format["DrawArea"] : FALSE;
+     $AreaR		= isset($Format["AreaR"]) ? $Format["AreaR"] : 255;
+     $AreaG		= isset($Format["AreaG"]) ? $Format["AreaG"] : 255;
+     $AreaB		= isset($Format["AreaB"]) ? $Format["AreaB"] : 255;
+     $AreaBorderR	= isset($Format["AreaBorderR"]) ? $Format["AreaBorderR"] : $AreaR;
+     $AreaBorderG	= isset($Format["AreaBorderG"]) ? $Format["AreaBorderG"] : $AreaG;
+     $AreaBorderB	= isset($Format["AreaBorderB"]) ? $Format["AreaBorderB"] : $AreaB;
+
+     $TextString   = $this->encode39($Value);
+
+     if ( $DrawArea )
+      {
+       $X1 = $X + cos(($Angle-135) * PI / 180) * 10;
+       $Y1 = $Y + sin(($Angle-135) * PI / 180) * 10;
+
+       $X2 = $X1 + cos($Angle * PI / 180) * (strlen($this->Result)+20);
+       $Y2 = $Y1 + sin($Angle * PI / 180) * (strlen($this->Result)+20);
+
+       if ( $ShowLegend )
+        {
+         $X3 = $X2 + cos(($Angle+90) * PI / 180) * ($Height+$LegendOffset+$this->pChartObject->FontSize+10);
+         $Y3 = $Y2 + sin(($Angle+90) * PI / 180) * ($Height+$LegendOffset+$this->pChartObject->FontSize+10);
+        }
+       else
+        {
+         $X3 = $X2 + cos(($Angle+90) * PI / 180) * ($Height+20);
+         $Y3 = $Y2 + sin(($Angle+90) * PI / 180) * ($Height+20);
+        }
+
+       $X4 = $X3 + cos(($Angle+180) * PI / 180) * (strlen($this->Result)+20);
+       $Y4 = $Y3 + sin(($Angle+180) * PI / 180) * (strlen($this->Result)+20);
+
+       $Polygon  = array($X1,$Y1,$X2,$Y2,$X3,$Y3,$X4,$Y4);
+       $Settings = array("R"=>$AreaR,"G"=>$AreaG,"B"=>$AreaB,"BorderR"=>$AreaBorderR,"BorderG"=>$AreaBorderG,"BorderB"=>$AreaBorderB);
+       $this->pChartObject->drawPolygon($Polygon,$Settings);
+      }
+
+     for($i=1;$i<=strlen($this->Result);$i++)
+      {
+       if ( $this->mid($this->Result,$i,1) == 1 )
+        {
+         $X1 = $X + cos($Angle * PI / 180) * $i;
+         $Y1 = $Y + sin($Angle * PI / 180) * $i;
+         $X2 = $X1 + cos(($Angle+90) * PI / 180) * $Height;
+         $Y2 = $Y1 + sin(($Angle+90) * PI / 180) * $Height;
+
+         $Settings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+         $this->pChartObject->drawLine($X1,$Y1,$X2,$Y2,$Settings);
+        }
+      }
+
+     if ( $ShowLegend )
+      {
+       $X1 = $X + cos($Angle * PI / 180) * (strlen($this->Result)/2);
+       $Y1 = $Y + sin($Angle * PI / 180) * (strlen($this->Result)/2);
+
+       $LegendX = $X1 + cos(($Angle+90) * PI / 180) * ($Height+$LegendOffset);
+       $LegendY = $Y1 + sin(($Angle+90) * PI / 180) * ($Height+$LegendOffset);
+
+       $Settings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Angle"=>-$Angle,"Align"=>TEXT_ALIGN_TOPMIDDLE);
+       $this->pChartObject->drawText($LegendX,$LegendY,$TextString,$Settings);
+      }
+    }
+
+   function checksum( $string )
+    {
+     $checksum = 0;
+     $length   = strlen( $string );
+     $charset  = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%';
+
+     for( $i=0; $i < $length; ++$i )
+      $checksum += strpos( $charset, $string[$i] );
+ 
+     return substr( $charset, ($checksum % 43), 1 );
+    }
+
+   function left($value,$NbChar) { return substr($value,0,$NbChar); }  
+   function right($value,$NbChar) { return substr($value,strlen($value)-$NbChar,$NbChar); }  
+   function mid($value,$Depart,$NbChar) { return substr($value,$Depart-1,$NbChar); }  
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBubble.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBubble.class.php
new file mode 100644
index 0000000..dbe123f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pBubble.class.php
@@ -0,0 +1,326 @@
+<?php
+ /*
+     pBubble - class to draw bubble charts
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("BUBBLE_SHAPE_ROUND"		, 700001);
+ define("BUBBLE_SHAPE_SQUARE"		, 700002);
+
+ /* pBubble class definition */
+ class pBubble
+  {
+   var $pChartObject;
+   var $pDataObject;
+
+   /* Class creator */
+   function pBubble($pChartObject,$pDataObject)
+    {
+     $this->pChartObject = $pChartObject;
+     $this->pDataObject  = $pDataObject;
+    }
+
+   /* Prepare the scale */
+   function bubbleScale($DataSeries,$WeightSeries)
+    {
+     if ( !is_array($DataSeries) )	{ $DataSeries = array($DataSeries); }
+     if ( !is_array($WeightSeries) )	{ $WeightSeries = array($WeightSeries); }
+
+     /* Parse each data series to find the new min & max boundaries to scale */
+     $NewPositiveSerie = ""; $NewNegativeSerie = ""; $MaxValues = 0; $LastPositive = 0; $LastNegative = 0;
+     foreach($DataSeries as $Key => $SerieName)
+      {
+       $SerieWeightName = $WeightSeries[$Key];
+
+       $this->pDataObject->setSerieDrawable($SerieWeightName,FALSE);
+
+       if ( count($this->pDataObject->Data["Series"][$SerieName]["Data"]) > $MaxValues ) { $MaxValues = count($this->pDataObject->Data["Series"][$SerieName]["Data"]); }
+
+       foreach($this->pDataObject->Data["Series"][$SerieName]["Data"] as $Key => $Value)
+        {
+         if ( $Value >= 0 )
+          {
+           $BubbleBounds = $Value + $this->pDataObject->Data["Series"][$SerieWeightName]["Data"][$Key];
+
+           if ( !isset($NewPositiveSerie[$Key]) )
+            { $NewPositiveSerie[$Key] = $BubbleBounds; }
+           elseif ( $NewPositiveSerie[$Key] < $BubbleBounds )
+            { $NewPositiveSerie[$Key] = $BubbleBounds; }
+
+           $LastPositive = $BubbleBounds;
+          }
+         else
+          {
+           $BubbleBounds = $Value - $this->pDataObject->Data["Series"][$SerieWeightName]["Data"][$Key];
+
+           if ( !isset($NewNegativeSerie[$Key]) )
+            { $NewNegativeSerie[$Key] = $BubbleBounds; }
+           elseif ( $NewNegativeSerie[$Key] > $BubbleBounds )
+            { $NewNegativeSerie[$Key] = $BubbleBounds; }
+
+           $LastNegative = $BubbleBounds;
+          }
+        }
+      }
+
+     /* Check for missing values and all the fake positive serie */
+     if ( $NewPositiveSerie != "" )
+      {
+       for ($i=0; $i<$MaxValues; $i++) { if (!isset($NewPositiveSerie[$i])) { $NewPositiveSerie[$i] = $LastPositive; } }
+
+       $this->pDataObject->addPoints($NewPositiveSerie,"BubbleFakePositiveSerie");
+      }
+
+     /* Check for missing values and all the fake negative serie */
+     if ( $NewNegativeSerie != "" )
+      {
+       for ($i=0; $i<$MaxValues; $i++) { if (!isset($NewNegativeSerie[$i])) { $NewNegativeSerie[$i] = $LastNegative; } }
+
+       $this->pDataObject->addPoints($NewNegativeSerie,"BubbleFakeNegativeSerie");
+      }
+    }
+
+   function resetSeriesColors()
+    {
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     $ID = 0;
+     foreach($Data["Series"] as $SerieName => $SeriesParameters)
+      {
+       if ( $SeriesParameters["isDrawable"] )
+        {
+         $this->pDataObject->Data["Series"][$SerieName]["Color"]["R"]     = $Palette[$ID]["R"];
+         $this->pDataObject->Data["Series"][$SerieName]["Color"]["G"]     = $Palette[$ID]["G"];
+         $this->pDataObject->Data["Series"][$SerieName]["Color"]["B"]     = $Palette[$ID]["B"];
+         $this->pDataObject->Data["Series"][$SerieName]["Color"]["Alpha"] = $Palette[$ID]["Alpha"];
+         $ID++;
+        }
+      }
+    }
+
+   /* Prepare the scale */
+   function drawBubbleChart($DataSeries,$WeightSeries,$Format="")
+    {
+     $ForceAlpha	= isset($Format["ForceAlpha"]) ? $Format["ForceAlpha"] : VOID;
+     $DrawBorder	= isset($Format["DrawBorder"]) ? $Format["DrawBorder"] : TRUE;
+     $BorderWidth	= isset($Format["BorderWidth"]) ? $Format["BorderWidth"] : 1;
+     $Shape		= isset($Format["Shape"]) ? $Format["Shape"] : BUBBLE_SHAPE_ROUND;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 0;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 0;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 0;
+     $BorderAlpha	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : 30;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     if ( !is_array($DataSeries) )	{ $DataSeries = array($DataSeries); }
+     if ( !is_array($WeightSeries) )	{ $WeightSeries = array($WeightSeries); }
+
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     if ( isset($Data["Series"]["BubbleFakePositiveSerie"] ) ) { $this->pDataObject->setSerieDrawable("BubbleFakePositiveSerie",FALSE); }
+     if ( isset($Data["Series"]["BubbleFakeNegativeSerie"] ) ) { $this->pDataObject->setSerieDrawable("BubbleFakeNegativeSerie",FALSE); }
+
+     $this->resetSeriesColors();
+
+     list($XMargin,$XDivs) = $this->pChartObject->scaleGetXSettings();
+
+     foreach($DataSeries as $Key => $SerieName)
+      {
+       $AxisID	= $Data["Series"][$SerieName]["Axis"];
+       $Mode	= $Data["Axis"][$AxisID]["Display"];
+       $Format	= $Data["Axis"][$AxisID]["Format"];
+       $Unit	= $Data["Axis"][$AxisID]["Unit"];
+
+       if (isset($Data["Series"][$SerieName]["Description"])) { $SerieDescription = $Data["Series"][$SerieName]["Description"]; } else { $SerieDescription = $SerieName; }
+
+       $XStep	= ($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1-$XMargin*2)/$XDivs;
+
+       $X = $this->pChartObject->GraphAreaX1 + $XMargin;
+       $Y = $this->pChartObject->GraphAreaY1 + $XMargin;
+
+       $Color = array("R"=>$Palette[$Key]["R"],"G"=>$Palette[$Key]["G"],"B"=>$Palette[$Key]["B"],"Alpha"=>$Palette[$Key]["Alpha"]);
+
+       if ( $ForceAlpha != VOID ) { $Color["Alpha"]=$ForceAlpha; }
+
+       if ( $DrawBorder )
+        {
+         if ( $BorderWidth != 1 )
+          {
+           if ( $Surrounding != NULL )
+            { $BorderR = $Palette[$Key]["R"]+$Surrounding; $BorderG = $Palette[$Key]["G"]+$Surrounding; $BorderB = $Palette[$Key]["B"]+$Surrounding; }
+           else
+            { $BorderR = $BorderR; $BorderG = $BorderG; $BorderB = $BorderB; }
+           if ( $ForceAlpha != VOID ) { $BorderAlpha = $ForceAlpha/2; }
+           $BorderColor = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha);
+          }
+         else
+          {
+           $Color["BorderAlpha"] = $BorderAlpha;
+
+           if ( $Surrounding != NULL )
+            { $Color["BorderR"] = $Palette[$Key]["R"]+$Surrounding; $Color["BorderG"] = $Palette[$Key]["G"]+$Surrounding; $Color["BorderB"] = $Palette[$Key]["B"]+$Surrounding; }
+           else
+            { $Color["BorderR"] = $BorderR; $Color["BorderG"] = $BorderG; $Color["BorderB"] = $BorderB; }
+           if ( $ForceAlpha != VOID ) { $Color["BorderAlpha"] = $ForceAlpha/2; }
+          }
+        }
+
+       foreach($Data["Series"][$SerieName]["Data"] as $iKey => $Point)
+        {
+         $Weight = $Point + $Data["Series"][$WeightSeries[$Key]]["Data"][$iKey];
+
+         $PosArray    = $this->pChartObject->scaleComputeY($Point,array("AxisID"=>$AxisID));
+         $WeightArray = $this->pChartObject->scaleComputeY($Weight,array("AxisID"=>$AxisID));
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $XDivs == 0 ) { $XStep = 0; } else { $XStep = ($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $Y = floor($PosArray); $CircleRadius = floor(abs($PosArray - $WeightArray)/2);
+
+           if ( $Shape == BUBBLE_SHAPE_SQUARE )
+            {
+             if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("RECT",floor($X-$CircleRadius).",".floor($Y-$CircleRadius).",".floor($X+$CircleRadius).",".floor($Y+$CircleRadius),$this->pChartObject->toHTMLColor($Palette[$Key]["R"],$Palette[$Key]["G"],$Palette[$Key]["B"]),$SerieDescription,$Data["Series"][$WeightSeries[$Key]]["Data"][$iKey]); }
+
+             if ( $BorderWidth != 1 )
+              {
+               $this->pChartObject->drawFilledRectangle($X-$CircleRadius-$BorderWidth,$Y-$CircleRadius-$BorderWidth,$X+$CircleRadius+$BorderWidth,$Y+$CircleRadius+$BorderWidth,$BorderColor);
+               $this->pChartObject->drawFilledRectangle($X-$CircleRadius,$Y-$CircleRadius,$X+$CircleRadius,$Y+$CircleRadius,$Color);
+              }
+             else
+              $this->pChartObject->drawFilledRectangle($X-$CircleRadius,$Y-$CircleRadius,$X+$CircleRadius,$Y+$CircleRadius,$Color);
+            }
+           elseif ( $Shape == BUBBLE_SHAPE_ROUND )
+            {
+             if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".floor($CircleRadius),$this->pChartObject->toHTMLColor($Palette[$Key]["R"],$Palette[$Key]["G"],$Palette[$Key]["B"]),$SerieDescription,$Data["Series"][$WeightSeries[$Key]]["Data"][$iKey]); }
+
+             if ( $BorderWidth != 1 )
+              {
+               $this->pChartObject->drawFilledCircle($X,$Y,$CircleRadius+$BorderWidth,$BorderColor);
+               $this->pChartObject->drawFilledCircle($X,$Y,$CircleRadius,$Color);
+              }
+             else
+              $this->pChartObject->drawFilledCircle($X,$Y,$CircleRadius,$Color);
+            }
+
+           $X = $X + $XStep;
+          }
+         elseif ( $Data["Orientation"] == SCALE_POS_TOPBOTTOM )
+          {
+           if ( $XDivs == 0 ) { $XStep = 0; } else { $XStep = ($this->pChartObject->GraphAreaY2-$this->pChartObject->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $X = floor($PosArray); $CircleRadius = floor(abs($PosArray - $WeightArray)/2);
+
+           if ( $Shape == BUBBLE_SHAPE_SQUARE )
+            {
+             if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("RECT",floor($X-$CircleRadius).",".floor($Y-$CircleRadius).",".floor($X+$CircleRadius).",".floor($Y+$CircleRadius),$this->pChartObject->toHTMLColor($Palette[$Key]["R"],$Palette[$Key]["G"],$Palette[$Key]["B"]),$SerieDescription,$Data["Series"][$WeightSeries[$Key]]["Data"][$iKey]); }
+
+             if ( $BorderWidth != 1 )
+              {
+               $this->pChartObject->drawFilledRectangle($X-$CircleRadius-$BorderWidth,$Y-$CircleRadius-$BorderWidth,$X+$CircleRadius+$BorderWidth,$Y+$CircleRadius+$BorderWidth,$BorderColor);
+               $this->pChartObject->drawFilledRectangle($X-$CircleRadius,$Y-$CircleRadius,$X+$CircleRadius,$Y+$CircleRadius,$Color);
+              }
+             else
+              $this->pChartObject->drawFilledRectangle($X-$CircleRadius,$Y-$CircleRadius,$X+$CircleRadius,$Y+$CircleRadius,$Color);
+            }
+           elseif ( $Shape == BUBBLE_SHAPE_ROUND )
+            {
+             if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".floor($CircleRadius),$this->pChartObject->toHTMLColor($Palette[$Key]["R"],$Palette[$Key]["G"],$Palette[$Key]["B"]),$SerieDescription,$Data["Series"][$WeightSeries[$Key]]["Data"][$iKey]); }
+
+             if ( $BorderWidth != 1 )
+              {
+               $this->pChartObject->drawFilledCircle($X,$Y,$CircleRadius+$BorderWidth,$BorderColor);
+               $this->pChartObject->drawFilledCircle($X,$Y,$CircleRadius,$Color);
+              }
+             else
+              $this->pChartObject->drawFilledCircle($X,$Y,$CircleRadius,$Color);
+            }
+
+           $Y = $Y + $XStep;
+          }
+        }
+      }
+    }
+
+   function writeBubbleLabel($SerieName,$SerieWeightName,$Points,$Format="")
+    {
+     $OverrideTitle	= isset($Format["OverrideTitle"]) ? $Format["OverrideTitle"] : NULL;
+     $DrawPoint		= isset($Format["DrawPoint"]) ? $Format["DrawPoint"] : LABEL_POINT_BOX;
+
+     if ( !is_array($Points) ) { $Point = $Points; $Points = ""; $Points[] = $Point; }
+
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     if ( !isset($Data["Series"][$SerieName]) || !isset($Data["Series"][$SerieWeightName]) )
+      return(0);
+
+     list($XMargin,$XDivs) = $this->pChartObject->scaleGetXSettings();
+
+     $AxisID	 = $Data["Series"][$SerieName]["Axis"];
+     $AxisMode	 = $Data["Axis"][$AxisID]["Display"];
+     $AxisFormat = $Data["Axis"][$AxisID]["Format"];
+     $AxisUnit	 = $Data["Axis"][$AxisID]["Unit"];
+     $XStep	 = ($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1-$XMargin*2)/$XDivs;
+
+     $X = $this->pChartObject->GraphAreaX1 + $XMargin;
+     $Y = $this->pChartObject->GraphAreaY1 + $XMargin;
+
+     $Color = array("R"=>$Data["Series"][$SerieName]["Color"]["R"],"G"=>$Data["Series"][$SerieName]["Color"]["G"],"B"=>$Data["Series"][$SerieName]["Color"]["B"],"Alpha"=>$Data["Series"][$SerieName]["Color"]["Alpha"]);
+
+     foreach($Points as $Key => $Point)
+      {
+       $Value    = $Data["Series"][$SerieName]["Data"][$Point];
+       $PosArray = $this->pChartObject->scaleComputeY($Value,array("AxisID"=>$AxisID));
+
+       if ( isset($Data["Abscissa"]) && isset($Data["Series"][$Data["Abscissa"]]["Data"][$Point]) )
+        $Abscissa = $Data["Series"][$Data["Abscissa"]]["Data"][$Point]." : ";
+       else
+        $Abscissa = "";
+
+       $Value   = $this->pChartObject->scaleFormat($Value,$AxisMode,$AxisFormat,$AxisUnit);
+       $Weight  = $Data["Series"][$SerieWeightName]["Data"][$Point];
+       $Caption = $Abscissa.$Value." / ".$Weight;
+
+       if ( isset($Data["Series"][$SerieName]["Description"]) )
+        $Description = $Data["Series"][$SerieName]["Description"];
+       else
+        $Description = "No description";
+
+       $Series = "";
+       $Series[] = array("Format"=>$Color,"Caption"=>$Caption);
+
+       if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+        {
+         if ( $XDivs == 0 ) { $XStep = 0; } else { $XStep = ($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1-$XMargin*2)/$XDivs; }
+
+         $X = floor($X + $Point * $XStep);
+         $Y = floor($PosArray);
+        }
+       else
+        {
+         if ( $XDivs == 0 ) { $YStep = 0; } else { $YStep = ($this->pChartObject->GraphAreaY2-$this->pChartObject->GraphAreaY1-$XMargin*2)/$XDivs; }
+
+         $X = floor($PosArray);
+         $Y = floor($Y + $Point * $YStep);
+        }
+
+       if ( $DrawPoint == LABEL_POINT_CIRCLE )
+        $this->pChartObject->drawFilledCircle($X,$Y,3,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+       elseif ( $DrawPoint == LABEL_POINT_BOX )
+        $this->pChartObject->drawFilledRectangle($X-2,$Y-2,$X+2,$Y+2,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+
+       $this->pChartObject->drawLabelBox($X,$Y-3,$Description,$Series,$Format);
+      }
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pCache.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pCache.class.php
new file mode 100644
index 0000000..4e4a450
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pCache.class.php
@@ -0,0 +1,280 @@
+<?php
+ /*
+     pCache - speed up the rendering by caching up the pictures
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ /* pData class definition */
+ class pCache
+  {
+   var $CacheFolder;
+   var $CacheIndex;
+   var $CacheDB;
+
+   /* Class creator */
+   function pCache($Settings="")
+    {
+     $CacheFolder	= isset($Settings["CacheFolder"]) ? $Settings["CacheFolder"] : "cache";
+     $CacheIndex	= isset($Settings["CacheIndex"]) ? $Settings["CacheIndex"] : "index.db";
+     $CacheDB		= isset($Settings["CacheDB"]) ? $Settings["CacheDB"] : "cache.db";
+
+     $this->CacheFolder	= $CacheFolder;
+     $this->CacheIndex	= $CacheIndex;
+     $this->CacheDB	= $CacheDB;
+
+     if (!file_exists($this->CacheFolder."/".$this->CacheIndex)) { touch($this->CacheFolder."/".$this->CacheIndex); }
+     if (!file_exists($this->CacheFolder."/".$this->CacheDB))    { touch($this->CacheFolder."/".$this->CacheDB); }
+    }
+
+   /* Flush the cache contents */
+   function flush()
+    {
+     if (file_exists($this->CacheFolder."/".$this->CacheIndex)) { unlink($this->CacheFolder."/".$this->CacheIndex); touch($this->CacheFolder."/".$this->CacheIndex); }
+     if (file_exists($this->CacheFolder."/".$this->CacheDB))    { unlink($this->CacheFolder."/".$this->CacheDB); touch($this->CacheFolder."/".$this->CacheDB); }
+    }
+
+   /* Return the MD5 of the data array to clearly identify the chart */
+   function getHash($Data,$Marker="")
+    { return(md5($Marker.serialize($Data->Data))); }
+
+   /* Write the generated picture to the cache */
+   function writeToCache($ID,$pChartObject)
+    {
+     /* Compute the paths */
+     $TemporaryFile = $this->CacheFolder."/tmp_".rand(0,1000).".png";
+     $Database      = $this->CacheFolder."/".$this->CacheDB;
+     $Index         = $this->CacheFolder."/".$this->CacheIndex;
+
+     /* Flush the picture to a temporary file */
+     imagepng($pChartObject->Picture ,$TemporaryFile);
+
+     /* Retrieve the files size */
+     $PictureSize = filesize($TemporaryFile);
+     $DBSize      = filesize($Database);
+
+     /* Save the index */
+     $Handle = fopen($Index,"a");
+     fwrite($Handle, $ID.",".$DBSize.",".$PictureSize.",".time().",0      \r\n");
+     fclose($Handle);
+
+     /* Get the picture raw contents */
+     $Handle = fopen($TemporaryFile,"r");
+     $Raw    = fread($Handle,$PictureSize);
+     fclose($Handle);
+
+     /* Save the picture in the solid database file */
+     $Handle = fopen($Database,"a");
+     fwrite($Handle, $Raw);
+     fclose($Handle);
+
+     /* Remove temporary file */
+     unlink($TemporaryFile);
+    }
+
+   /* Remove object older than the specified TS */
+   function removeOlderThan($Expiry)
+    { $this->dbRemoval(array("Expiry"=>$Expiry)); }
+
+   /* Remove an object from the cache */
+   function remove($ID)
+    { $this->dbRemoval(array("Name"=>$ID)); }
+
+   /* Remove with specified criterias */
+   function dbRemoval($Settings)
+    {
+     $ID     = isset($Settings["Name"]) ? $Settings["Name"] : NULL;
+     $Expiry = isset($Settings["Expiry"]) ? $Settings["Expiry"] : -(24*60*60);
+     $TS     = time()-$Expiry;
+
+     /* Compute the paths */
+     $Database     = $this->CacheFolder."/".$this->CacheDB;
+     $Index        = $this->CacheFolder."/".$this->CacheIndex;
+     $DatabaseTemp = $this->CacheFolder."/".$this->CacheDB.".tmp";
+     $IndexTemp    = $this->CacheFolder."/".$this->CacheIndex.".tmp";
+
+     /* Single file removal */
+     if ( $ID != NULL )
+      {
+       /* Retrieve object informations */
+       $Object = $this->isInCache($ID,TRUE);
+
+       /* If it's not in the cache DB, go away */
+       if ( !$Object ) { return(0); }
+      }
+
+     /* Create the temporary files */
+     if (!file_exists($DatabaseTemp)) { touch($DatabaseTemp); }
+     if (!file_exists($IndexTemp))    { touch($IndexTemp); }
+
+     /* Open the file handles */
+     $IndexHandle     = @fopen($Index, "r");
+     $IndexTempHandle = @fopen($IndexTemp, "w");
+     $DBHandle        = @fopen($Database, "r");
+     $DBTempHandle    = @fopen($DatabaseTemp, "w");
+
+     /* Remove the selected ID from the database */
+     while (!feof($IndexHandle))
+      {
+       $Entry    = fgets($IndexHandle, 4096);
+       $Entry    = str_replace("\r","",$Entry);
+       $Entry    = str_replace("\n","",$Entry);
+       $Settings = preg_split("/,/",$Entry);
+
+       if ( $Entry != "" )
+        {
+         $PicID       = $Settings[0];
+         $DBPos       = $Settings[1];
+         $PicSize     = $Settings[2];
+         $GeneratedTS = $Settings[3];
+         $Hits        = $Settings[4];
+
+         if ( $Settings[0] != $ID && $GeneratedTS > $TS)
+          {
+           $CurrentPos  = ftell($DBTempHandle);
+           fwrite($IndexTempHandle, $PicID.",".$CurrentPos.",".$PicSize.",".$GeneratedTS.",".$Hits."\r\n");
+
+           fseek($DBHandle,$DBPos);
+           $Picture = fread($DBHandle,$PicSize);
+           fwrite($DBTempHandle,$Picture);
+          }
+        }
+      }
+
+     /* Close the handles */
+     fclose($IndexHandle);
+     fclose($IndexTempHandle);
+     fclose($DBHandle);
+     fclose($DBTempHandle);
+
+     /* Remove the prod files */
+     unlink($Database);
+     unlink($Index);
+
+     /* Swap the temp & prod DB */
+     rename($DatabaseTemp,$Database);
+     rename($IndexTemp,$Index);
+    }
+
+   function isInCache($ID,$Verbose=FALSE,$UpdateHitsCount=FALSE)
+    {
+     /* Compute the paths */
+     $Index = $this->CacheFolder."/".$this->CacheIndex;
+
+     /* Search the picture in the index file */
+     $Handle = @fopen($Index, "r");
+     while (!feof($Handle))
+      {
+       $IndexPos = ftell($Handle);
+       $Entry = fgets($Handle, 4096);
+       if ( $Entry != "" )
+        {
+         $Settings = preg_split("/,/",$Entry);
+         $PicID    = $Settings[0];
+         if ( $PicID == $ID )
+          {
+           fclose($Handle);
+
+           $DBPos       = $Settings[1];
+           $PicSize     = $Settings[2];
+           $GeneratedTS = $Settings[3];
+           $Hits        = intval($Settings[4]);
+
+           if ( $UpdateHitsCount )
+            {
+             $Hits++;
+             if ( strlen($Hits) < 7 ) { $Hits = $Hits.str_repeat(" ",7-strlen($Hits)); }
+
+             $Handle = @fopen($Index, "r+");
+             fseek($Handle,$IndexPos);
+             fwrite($Handle, $PicID.",".$DBPos.",".$PicSize.",".$GeneratedTS.",".$Hits."\r\n");
+             fclose($Handle);
+            }
+
+           if ($Verbose)
+            { return(array("DBPos"=>$DBPos,"PicSize"=>$PicSize,"GeneratedTS"=>$GeneratedTS,"Hits"=>$Hits)); }
+           else
+            { return(TRUE); }
+          }
+        }
+      }
+     fclose($Handle);
+
+     /* Picture isn't in the cache */
+     return(FALSE);
+    }
+
+   /* Automatic output method based on the calling interface */
+   function autoOutput($ID,$Destination="output.png")
+    {
+     if (php_sapi_name() == "cli")
+      $this->saveFromCache($ID,$Destination);
+     else
+      $this->strokeFromCache($ID);
+    }
+
+   function strokeFromCache($ID)
+    {
+     /* Get the raw picture from the cache */
+     $Picture = $this->getFromCache($ID);
+
+     /* Do we have a hit? */
+     if ( $Picture == NULL ) { return(FALSE); }
+
+     header('Content-type: image/png');
+     echo $Picture;
+
+     return(TRUE);
+    }
+
+   function saveFromCache($ID,$Destination)
+    {
+     /* Get the raw picture from the cache */
+     $Picture = $this->getFromCache($ID);
+
+     /* Do we have a hit? */
+     if ( $Picture == NULL ) { return(FALSE); }
+
+     /* Flush the picture to a file */
+     $Handle = fopen($Destination,"w");
+     fwrite($Handle,$Picture);
+     fclose($Handle);
+
+     /* All went fine */
+     return(TRUE);
+    }
+
+   function getFromCache($ID)
+    {
+     /* Compute the path */
+     $Database = $this->CacheFolder."/".$this->CacheDB;
+
+     /* Lookup for the picture in the cache */
+     $CacheInfo = $this->isInCache($ID,TRUE,TRUE);
+
+     /* Not in the cache */
+     if (!$CacheInfo) { return(NULL); }
+
+     /* Get the database extended information */     
+     $DBPos   = $CacheInfo["DBPos"];
+     $PicSize = $CacheInfo["PicSize"];
+
+     /* Extract the picture from the solid cache file */
+     $Handle = @fopen($Database, "r");
+     fseek($Handle,$DBPos);
+     $Picture = fread($Handle,$PicSize);
+     fclose($Handle);
+
+     /* Return back the raw picture data */
+     return($Picture);
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pData.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pData.class.php
new file mode 100644
index 0000000..2750519
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pData.class.php
@@ -0,0 +1,787 @@
+<?php
+ /*
+     pDraw - class to manipulate data arrays
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ /* Axis configuration */
+ define("AXIS_FORMAT_DEFAULT"		, 680001);
+ define("AXIS_FORMAT_TIME"		, 680002);
+ define("AXIS_FORMAT_DATE"		, 680003);
+ define("AXIS_FORMAT_METRIC"		, 680004);
+ define("AXIS_FORMAT_CURRENCY"		, 680005);
+ define("AXIS_FORMAT_CUSTOM"		, 680006);
+
+ /* Axis position */
+ define("AXIS_POSITION_LEFT"		, 681001);
+ define("AXIS_POSITION_RIGHT"		, 681002);
+ define("AXIS_POSITION_TOP"		, 681001);
+ define("AXIS_POSITION_BOTTOM"		, 681002);
+
+ /* Families of data points */
+ define("SERIE_SHAPE_FILLEDCIRCLE"	, 681011);
+ define("SERIE_SHAPE_FILLEDTRIANGLE"	, 681012);
+ define("SERIE_SHAPE_FILLEDSQUARE"	, 681013);
+ define("SERIE_SHAPE_FILLEDDIAMOND"	, 681017);
+ define("SERIE_SHAPE_CIRCLE"		, 681014);
+ define("SERIE_SHAPE_TRIANGLE"		, 681015);
+ define("SERIE_SHAPE_SQUARE"		, 681016);
+ define("SERIE_SHAPE_DIAMOND"		, 681018);
+
+ /* Axis position */
+ define("AXIS_X"			, 682001);
+ define("AXIS_Y"			, 682002);
+
+ /* Define value limits */
+ define("ABSOLUTE_MIN"          	, -10000000000000);
+ define("ABSOLUTE_MAX"          	, 10000000000000);
+
+ /* Replacement to the PHP NULL keyword */
+ define("VOID"                  	, 0.123456789);
+
+ /* Euro symbol for GD fonts */
+ define("EURO_SYMBOL"			, utf8_encode("€"));
+
+ /* pData class definition */
+ class pData
+  {
+   var $Data;
+
+   var $Palette = array("0"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
+                        "1"=>array("R"=>224,"G"=>100,"B"=>46,"Alpha"=>100),
+                        "2"=>array("R"=>224,"G"=>214,"B"=>46,"Alpha"=>100),
+                        "3"=>array("R"=>46,"G"=>151,"B"=>224,"Alpha"=>100),
+                        "4"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
+                        "5"=>array("R"=>224,"G"=>46,"B"=>117,"Alpha"=>100),
+                        "6"=>array("R"=>92,"G"=>224,"B"=>46,"Alpha"=>100),
+                        "7"=>array("R"=>224,"G"=>176,"B"=>46,"Alpha"=>100));
+
+   /* Class creator */
+   function pData()
+    {
+     $this->Data = "";
+     $this->Data["XAxisDisplay"]	= AXIS_FORMAT_DEFAULT;
+     $this->Data["XAxisFormat"]		= NULL;
+     $this->Data["XAxisName"]		= NULL;
+     $this->Data["XAxisUnit"]		= NULL;
+     $this->Data["Abscissa"]		= NULL;
+     $this->Data["AbsicssaPosition"]	= AXIS_POSITION_BOTTOM;
+
+     $this->Data["Axis"][0]["Display"]  = AXIS_FORMAT_DEFAULT;
+     $this->Data["Axis"][0]["Position"] = AXIS_POSITION_LEFT;
+     $this->Data["Axis"][0]["Identity"] = AXIS_Y;
+    }
+
+   /* Add a single point or an array to the given serie */
+   function addPoints($Values,$SerieName="Serie1")
+    {
+     if (!isset($this->Data["Series"][$SerieName]))
+      $this->initialise($SerieName);
+
+     if ( is_array($Values) )
+      {
+       foreach($Values as $Key => $Value)
+        { $this->Data["Series"][$SerieName]["Data"][] = $Value; }
+      }
+     else
+      $this->Data["Series"][$SerieName]["Data"][] = $Values;
+
+     if ( $Values != VOID )
+      {
+       $StrippedData = $this->stripVOID($this->Data["Series"][$SerieName]["Data"]);
+       if ( empty($StrippedData) ) { $this->Data["Series"][$SerieName]["Max"] = 0; $this->Data["Series"][$SerieName]["Min"] =0; return(0); }
+       $this->Data["Series"][$SerieName]["Max"] = max($StrippedData);
+       $this->Data["Series"][$SerieName]["Min"] = min($StrippedData);
+      }
+    }
+
+   /* Strip VOID values */
+   function stripVOID($Values)
+    { if (!is_array($Values)) { return(array()); } $Result = array(); foreach($Values as $Key => $Value) { if ( $Value != VOID ) { $Result[] = $Value; } } return($Result); }
+
+   /* Return the number of values contained in a given serie */
+   function getSerieCount($Serie)
+    { if (isset($this->Data["Series"][$Serie]["Data"])) { return(sizeof($this->Data["Series"][$Serie]["Data"])); } else { return(0); } }
+
+   /* Remove a serie from the pData object */
+   function removeSerie($Series)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie])) { unset($this->Data["Series"][$Serie]); } }
+    }
+
+   /* Return a value from given serie & index */
+   function getValueAt($Serie,$Index=0)
+    { if (isset($this->Data["Series"][$Serie]["Data"][$Index])) { return($this->Data["Series"][$Serie]["Data"][$Index]); } else { return(NULL); } }
+
+   /* Return the values array */
+   function getValues($Serie)
+    { if (isset($this->Data["Series"][$Serie]["Data"])) { return($this->Data["Series"][$Serie]["Data"]); } else { return(NULL); } }
+
+   /* Reverse the values in the given serie */
+   function reverseSerie($Series)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]["Data"])) { $this->Data["Series"][$Serie]["Data"] = array_reverse($this->Data["Series"][$Serie]["Data"]); } }
+    }
+
+   /* Return the sum of the serie values */
+   function getSum($Serie)
+    { if (isset($this->Data["Series"][$Serie])) { return(array_sum($this->Data["Series"][$Serie]["Data"])); } else { return(NULL); } }
+
+   /* Return the max value of a given serie */
+   function getMax($Serie)
+    { if (isset($this->Data["Series"][$Serie]["Max"])) { return($this->Data["Series"][$Serie]["Max"]); } else { return(NULL); } }
+
+   /* Return the min value of a given serie */
+   function getMin($Serie)
+    { if (isset($this->Data["Series"][$Serie]["Min"])) { return($this->Data["Series"][$Serie]["Min"]); } else { return(NULL); } }
+
+   /* Set the description of a given serie */
+   function setSerieShape($Series,$Shape=SERIE_SHAPE_FILLEDCIRCLE)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Shape"] = $Shape; } }
+    }
+
+   /* Set the description of a given serie */
+   function setSerieDescription($Series,$Description="My serie")
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Description"] = $Description; } }
+    }
+
+   /* Set a serie as "drawable" while calling a rendering function */
+   function setSerieDrawable($Series,$Drawable=TRUE)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["isDrawable"] = $Drawable; } }
+    }
+
+   /* Set the icon associated to a given serie */
+   function setSeriePicture($Series,$Picture=NULL)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Picture"] = $Picture; } }
+    }
+
+   /* Set the name of the X Axis */
+   function setXAxisName($Name)
+    { $this->Data["XAxisName"] = $Name; }
+
+   /* Set the display mode of the  X Axis */
+   function setXAxisDisplay($Mode,$Format=NULL)
+    { $this->Data["XAxisDisplay"] = $Mode; $this->Data["XAxisFormat"]  = $Format; }
+
+   /* Set the unit that will be displayed on the X axis */
+   function setXAxisUnit($Unit)
+    { $this->Data["XAxisUnit"] = $Unit; }
+
+   /* Set the serie that will be used as abscissa */
+   function setAbscissa($Serie)
+    { if (isset($this->Data["Series"][$Serie])) { $this->Data["Abscissa"] = $Serie; } }
+
+   function setAbsicssaPosition($Position = AXIS_POSITION_BOTTOM)
+    { $this->Data["AbsicssaPosition"] = $Position; }
+
+   /* Set the name of the abscissa axis */
+   function setAbscissaName($Name)
+    { $this->Data["AbscissaName"] = $Name; }
+
+   /* Create a scatter group specifyin X and Y data series */
+   function setScatterSerie($SerieX,$SerieY,$ID=0)
+    { if (isset($this->Data["Series"][$SerieX]) && isset($this->Data["Series"][$SerieY]) ) { $this->initScatterSerie($ID); $this->Data["ScatterSeries"][$ID]["X"] = $SerieX; $this->Data["ScatterSeries"][$ID]["Y"] = $SerieY; } }
+
+   /* Set the shape of a given sctatter serie */
+   function setScatterSerieShape($ID,$Shape=SERIE_SHAPE_FILLEDCIRCLE)
+    { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Shape"] = $Shape; } }
+
+   /* Set the description of a given scatter serie */
+   function setScatterSerieDescription($ID,$Description="My serie")
+    { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Description"] = $Description; } }
+
+   /* Set the icon associated to a given scatter serie */
+   function setScatterSeriePicture($ID,$Picture=NULL)
+    { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Picture"] = $Picture; } }
+
+   /* Set a scatter serie as "drawable" while calling a rendering function */
+   function setScatterSerieDrawable($ID ,$Drawable=TRUE)
+    { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["isDrawable"] = $Drawable; } }
+
+   /* Define if a scatter serie should be draw with ticks */
+   function setScatterSerieTicks($ID,$Width=0)
+    { if ( isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Ticks"] = $Width; } }
+
+   /* Define if a scatter serie should be draw with a special weight */
+   function setScatterSerieWeight($ID,$Weight=0)
+    { if ( isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Weight"] = $Weight; } }
+
+   /* Associate a color to a scatter serie */
+   function setScatterSerieColor($ID,$Format)
+    {
+     $R	    = isset($Format["R"]) ? $Format["R"] : 0;
+     $G	    = isset($Format["G"]) ? $Format["G"] : 0;
+     $B	    = isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+     if ( isset($this->Data["ScatterSeries"][$ID]) )
+      {
+       $this->Data["ScatterSeries"][$ID]["Color"]["R"] = $R;
+       $this->Data["ScatterSeries"][$ID]["Color"]["G"] = $G;
+       $this->Data["ScatterSeries"][$ID]["Color"]["B"] = $B;
+       $this->Data["ScatterSeries"][$ID]["Color"]["Alpha"] = $Alpha;
+      }
+    }
+
+   /* Compute the series limits for an individual and global point of view */
+   function limits()
+    {
+     $GlobalMin = ABSOLUTE_MAX;
+     $GlobalMax = ABSOLUTE_MIN;
+
+     foreach($this->Data["Series"] as $Key => $Value)
+      {
+       if ( $this->Data["Abscissa"] != $Key && $this->Data["Series"][$Key]["isDrawable"] == TRUE)
+        {
+         if ( $GlobalMin > $this->Data["Series"][$Key]["Min"] ) { $GlobalMin = $this->Data["Series"][$Key]["Min"]; }
+         if ( $GlobalMax < $this->Data["Series"][$Key]["Max"] ) { $GlobalMax = $this->Data["Series"][$Key]["Max"]; }
+        }
+      }
+     $this->Data["Min"] = $GlobalMin;
+     $this->Data["Max"] = $GlobalMax;
+
+     return(array($GlobalMin,$GlobalMax));
+    }
+
+   /* Mark all series as drawable */
+   function drawAll()
+    { foreach($this->Data["Series"] as $Key => $Value) { if ( $this->Data["Abscissa"] != $Key ) { $this->Data["Series"][$Key]["isDrawable"]=TRUE; } } }    
+
+   /* Return the average value of the given serie */
+   function getSerieAverage($Serie)
+    {
+     if ( isset($this->Data["Series"][$Serie]) )
+      {
+       $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+       return(array_sum($SerieData)/sizeof($SerieData));
+      }
+     else
+      return(NULL);
+    }
+
+   /* Return the geometric mean of the given serie */
+   function getGeometricMean($Serie)
+    {
+     if ( isset($this->Data["Series"][$Serie]) )
+      {
+       $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+       $Seriesum  = 1; foreach($SerieData as $Key => $Value) { $Seriesum = $Seriesum * $Value; }
+       return(pow($Seriesum,1/sizeof($SerieData)));
+      }
+     else
+      return(NULL);
+    }
+
+   /* Return the harmonic mean of the given serie */
+   function getHarmonicMean($Serie)
+    {
+     if ( isset($this->Data["Series"][$Serie]) )
+      {
+       $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+       $Seriesum  = 0; foreach($SerieData as $Key => $Value) { $Seriesum = $Seriesum + 1/$Value; }
+       return(sizeof($SerieData)/$Seriesum);
+      }
+     else
+      return(NULL);
+    }
+
+   /* Return the standard deviation of the given serie */
+   function getStandardDeviation($Serie)
+    {
+     if ( isset($this->Data["Series"][$Serie]) )
+      {
+       $Average   = $this->getSerieAverage($Serie);
+       $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+
+       $DeviationSum = 0;
+       foreach($SerieData as $Key => $Value)
+        $DeviationSum = $DeviationSum + ($Value-$Average)*($Value-$Average);
+
+       $Deviation = sqrt($DeviationSum/count($SerieData));
+
+       return($Deviation);
+      }
+     else
+      return(NULL);
+    }
+
+   /* Return the Coefficient of variation of the given serie */
+   function getCoefficientOfVariation($Serie)
+    {
+     if ( isset($this->Data["Series"][$Serie]) )
+      {
+       $Average           = $this->getSerieAverage($Serie);
+       $StandardDeviation = $this->getStandardDeviation($Serie);
+
+       if ( $StandardDeviation != 0 )
+        return($StandardDeviation/$Average);
+       else
+        return(NULL);
+      }
+     else
+      return(NULL);
+    }
+
+   /* Return the median value of the given serie */
+   function getSerieMedian($Serie)
+    {
+     if ( isset($this->Data["Series"][$Serie]) )
+      {
+       $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+       sort($SerieData);
+       $SerieCenter = floor(sizeof($SerieData)/2);
+
+       if ( isset($SerieData[$SerieCenter]) )
+        return($SerieData[$SerieCenter]);
+       else
+        return(NULL);
+      }
+     else
+      return(NULL);
+    }
+
+   /* Return the x th percentil of the given serie */
+   function getSeriePercentile($Serie="Serie1",$Percentil=95)
+    {
+     if (!isset($this->Data["Series"][$Serie]["Data"])) { return(NULL); }
+
+     $Values = count($this->Data["Series"][$Serie]["Data"])-1;
+     if ( $Values < 0 ) { $Values = 0; }
+
+     $PercentilID  = floor(($Values/100)*$Percentil+.5);
+     $SortedValues = $this->Data["Series"][$Serie]["Data"];
+     sort($SortedValues);
+
+     if ( is_numeric($SortedValues[$PercentilID]) )
+      return($SortedValues[$PercentilID]);
+     else
+      return(NULL);
+    }
+
+   /* Add random values to a given serie */
+   function addRandomValues($SerieName="Serie1",$Options="")
+    {
+     $Values    = isset($Options["Values"]) ? $Options["Values"] : 20;
+     $Min       = isset($Options["Min"]) ? $Options["Min"] : 0;
+     $Max       = isset($Options["Max"]) ? $Options["Max"] : 100;
+     $withFloat = isset($Options["withFloat"]) ? $Options["withFloat"] : FALSE;
+
+     for ($i=0;$i<=$Values;$i++)
+      {
+       if ( $withFloat ) { $Value = rand($Min*100,$Max*100)/100; } else { $Value = rand($Min,$Max); }
+       $this->addPoints($Value,$SerieName);
+      }
+    }
+
+   /* Test if we have valid data */
+   function containsData()
+    {
+     if (!isset($this->Data["Series"])) { return(FALSE); }
+
+     $Result = FALSE;
+     foreach($this->Data["Series"] as $Key => $Value)
+      { if ( $this->Data["Abscissa"] != $Key && $this->Data["Series"][$Key]["isDrawable"]==TRUE) { $Result=TRUE; } }
+     return($Result);
+    }
+
+   /* Set the display mode of an Axis */
+   function setAxisDisplay($AxisID,$Mode=AXIS_FORMAT_DEFAULT,$Format=NULL)
+    {
+     if ( isset($this->Data["Axis"][$AxisID] ) )
+      {
+       $this->Data["Axis"][$AxisID]["Display"] = $Mode;
+       if ( $Format != NULL ) { $this->Data["Axis"][$AxisID]["Format"] = $Format; }
+      }
+    }
+
+   /* Set the position of an Axis */
+   function setAxisPosition($AxisID,$Position=AXIS_POSITION_LEFT)
+    { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Position"] = $Position; } }
+
+   /* Associate an unit to an axis */
+   function setAxisUnit($AxisID,$Unit)
+    { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Unit"] = $Unit; } }
+
+   /* Associate a name to an axis */
+   function setAxisName($AxisID,$Name)
+    { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Name"] = $Name; } }
+
+   /* Associate a color to an axis */
+   function setAxisColor($AxisID,$Format)
+    {
+     $R	    = isset($Format["R"]) ? $Format["R"] : 0;
+     $G	    = isset($Format["G"]) ? $Format["G"] : 0;
+     $B	    = isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+     if ( isset($this->Data["Axis"][$AxisID] ) )
+      {
+       $this->Data["Axis"][$AxisID]["Color"]["R"] = $R;
+       $this->Data["Axis"][$AxisID]["Color"]["G"] = $G;
+       $this->Data["Axis"][$AxisID]["Color"]["B"] = $B;
+       $this->Data["Axis"][$AxisID]["Color"]["Alpha"] = $Alpha;
+      }
+    }
+
+
+   /* Design an axis as X or Y member */
+   function setAxisXY($AxisID,$Identity=AXIS_Y)
+    { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Identity"] = $Identity; } }
+
+   /* Associate one data serie with one axis */
+   function setSerieOnAxis($Series,$AxisID)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie)
+      {
+       $PreviousAxis = $this->Data["Series"][$Serie]["Axis"];
+
+       /* Create missing axis */
+       if ( !isset($this->Data["Axis"][$AxisID] ) )
+        { $this->Data["Axis"][$AxisID]["Position"] = AXIS_POSITION_LEFT; $this->Data["Axis"][$AxisID]["Identity"] = AXIS_Y;}
+
+       $this->Data["Series"][$Serie]["Axis"] = $AxisID;
+
+       /* Cleanup unused axis */
+       $Found = FALSE;
+       foreach($this->Data["Series"] as $SerieName => $Values) { if ( $Values["Axis"] == $PreviousAxis ) { $Found = TRUE; } }
+       if (!$Found) { unset($this->Data["Axis"][$PreviousAxis]); }
+      }
+    }
+
+   /* Define if a serie should be draw with ticks */
+   function setSerieTicks($Series,$Width=0)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if ( isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Ticks"] = $Width; } }
+    }
+
+   /* Define if a serie should be draw with a special weight */
+   function setSerieWeight($Series,$Weight=0)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $Serie) { if ( isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Weight"] = $Weight; } }
+    }
+
+   /* Returns the palette of the given serie */
+   function getSeriePalette($Serie)
+    {
+     if ( !isset($this->Data["Series"][$Serie]) ) { return(NULL); }
+
+     $Result = "";
+     $Result["R"] = $this->Data["Series"][$Serie]["Color"]["R"];
+     $Result["G"] = $this->Data["Series"][$Serie]["Color"]["G"];
+     $Result["B"] = $this->Data["Series"][$Serie]["Color"]["B"];
+     $Result["Alpha"] = $this->Data["Series"][$Serie]["Color"]["Alpha"];
+
+     return($Result);
+    }
+
+   /* Set the color of one serie */
+   function setPalette($Series,$Format=NULL)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+
+     foreach($Series as $Key => $Serie)
+      {
+       $R	    = isset($Format["R"]) ? $Format["R"] : 0;
+       $G	    = isset($Format["G"]) ? $Format["G"] : 0;
+       $B	    = isset($Format["B"]) ? $Format["B"] : 0;
+       $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+       if ( isset($this->Data["Series"][$Serie]) )
+        {
+         $OldR = $this->Data["Series"][$Serie]["Color"]["R"]; $OldG = $this->Data["Series"][$Serie]["Color"]["G"]; $OldB = $this->Data["Series"][$Serie]["Color"]["B"];
+         $this->Data["Series"][$Serie]["Color"]["R"] = $R;
+         $this->Data["Series"][$Serie]["Color"]["G"] = $G;
+         $this->Data["Series"][$Serie]["Color"]["B"] = $B;
+         $this->Data["Series"][$Serie]["Color"]["Alpha"] = $Alpha;
+
+         /* Do reverse processing on the internal palette array */
+         foreach ($this->Palette as $Key => $Value)
+          { if ($Value["R"] == $OldR && $Value["G"] == $OldG && $Value["B"] == $OldB) { $this->Palette[$Key]["R"] = $R; $this->Palette[$Key]["G"] = $G; $this->Palette[$Key]["B"] = $B; $this->Palette[$Key]["Alpha"] = $Alpha;} }
+        }
+      }
+    }
+
+   /* Load a palette file */
+   function loadPalette($FileName,$Overwrite=FALSE)
+    {
+     if ( !file_exists($FileName) ) { return(-1); }
+     if ( $Overwrite ) { $this->Palette = ""; }
+
+     $fileHandle = @fopen($FileName, "r");
+     if (!$fileHandle) { return(-1); }
+     while (!feof($fileHandle))
+      {
+       $buffer = fgets($fileHandle, 4096);
+       if ( preg_match("/,/",$buffer) )
+        {
+         list($R,$G,$B,$Alpha) = preg_split("/,/",$buffer);
+         if ( $this->Palette == "" ) { $ID = 0; } else { $ID = count($this->Palette); }
+         $this->Palette[$ID] = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+        }
+      }
+     fclose($fileHandle);
+
+     /* Apply changes to current series */
+     $ID = 0;
+     if ( isset($this->Data["Series"]))
+      {
+       foreach($this->Data["Series"] as $Key => $Value)
+        {
+         if ( !isset($this->Palette[$ID]) )
+          $this->Data["Series"][$Key]["Color"] = array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>0);
+         else
+          $this->Data["Series"][$Key]["Color"] = $this->Palette[$ID];
+         $ID++;
+        }
+      }
+    }
+
+   /* Initialise a given scatter serie */
+   function initScatterSerie($ID)
+    {
+     if ( isset($this->Data["ScatterSeries"][$ID]) ) { return(0); }
+
+     $this->Data["ScatterSeries"][$ID]["Description"]	= "Scatter ".$ID;
+     $this->Data["ScatterSeries"][$ID]["isDrawable"]	= TRUE;
+     $this->Data["ScatterSeries"][$ID]["Picture"]	= NULL;
+     $this->Data["ScatterSeries"][$ID]["Ticks"]		= 0;
+     $this->Data["ScatterSeries"][$ID]["Weight"]	= 0;
+
+     if ( isset($this->Palette[$ID]) )
+      $this->Data["ScatterSeries"][$ID]["Color"] = $this->Palette[$ID];
+     else
+      {
+       $this->Data["ScatterSeries"][$ID]["Color"]["R"] = rand(0,255);
+       $this->Data["ScatterSeries"][$ID]["Color"]["G"] = rand(0,255);
+       $this->Data["ScatterSeries"][$ID]["Color"]["B"] = rand(0,255);
+       $this->Data["ScatterSeries"][$ID]["Color"]["Alpha"] = 100;
+      }
+    }
+
+   /* Initialise a given serie */
+   function initialise($Serie)
+    {
+     if ( isset($this->Data["Series"]) ) { $ID = count($this->Data["Series"]); } else { $ID = 0; }
+
+     $this->Data["Series"][$Serie]["Description"]	= $Serie;
+     $this->Data["Series"][$Serie]["isDrawable"]	= TRUE;
+     $this->Data["Series"][$Serie]["Picture"]		= NULL;
+     $this->Data["Series"][$Serie]["Max"]		= NULL;
+     $this->Data["Series"][$Serie]["Min"]		= NULL;
+     $this->Data["Series"][$Serie]["Axis"]		= 0;
+     $this->Data["Series"][$Serie]["Ticks"]		= 0;
+     $this->Data["Series"][$Serie]["Weight"]		= 0;
+     $this->Data["Series"][$Serie]["Shape"]		= SERIE_SHAPE_FILLEDCIRCLE;
+
+     if ( isset($this->Palette[$ID]) )
+      $this->Data["Series"][$Serie]["Color"] = $this->Palette[$ID];
+     else
+      {
+       $this->Data["Series"][$Serie]["Color"]["R"] = rand(0,255);
+       $this->Data["Series"][$Serie]["Color"]["G"] = rand(0,255);
+       $this->Data["Series"][$Serie]["Color"]["B"] = rand(0,255);
+       $this->Data["Series"][$Serie]["Color"]["Alpha"] = 100;
+      }
+    }
+     
+   function normalize($NormalizationFactor=100,$UnitChange=NULL,$Round=1)
+    {
+     $Abscissa = $this->Data["Abscissa"];
+
+     $SelectedSeries = "";
+     $MaxVal         = 0;
+     foreach($this->Data["Axis"] as $AxisID => $Axis)
+      {
+       if ( $UnitChange != NULL ) { $this->Data["Axis"][$AxisID]["Unit"] = $UnitChange; }
+
+       foreach($this->Data["Series"] as $SerieName => $Serie)
+        {
+         if ($Serie["Axis"] == $AxisID && $Serie["isDrawable"] == TRUE && $SerieName != $Abscissa)
+          {
+           $SelectedSeries[$SerieName] = $SerieName;
+
+           if ( count($Serie["Data"] ) > $MaxVal ) { $MaxVal = count($Serie["Data"]); }
+          }
+        }
+      }
+
+     for($i=0;$i<=$MaxVal-1;$i++)
+      {
+       $Factor = 0;
+       foreach ($SelectedSeries as $Key => $SerieName )
+        {
+         $Value = $this->Data["Series"][$SerieName]["Data"][$i];
+         if ( $Value != VOID )
+          $Factor = $Factor + abs($Value);
+        }
+
+       if ( $Factor != 0 )
+        {
+         $Factor = $NormalizationFactor / $Factor;
+
+         foreach ($SelectedSeries as $Key => $SerieName )
+          {
+           $Value = $this->Data["Series"][$SerieName]["Data"][$i];
+
+           if ( $Value != VOID && $Factor != $NormalizationFactor )
+            $this->Data["Series"][$SerieName]["Data"][$i] = round(abs($Value)*$Factor,$Round);
+           elseif ( $Value == VOID || $Value == 0 )
+            $this->Data["Series"][$SerieName]["Data"][$i] = VOID;
+           elseif ( $Factor == $NormalizationFactor )
+            $this->Data["Series"][$SerieName]["Data"][$i] = $NormalizationFactor;
+          }
+        }
+      }
+
+     foreach ($SelectedSeries as $Key => $SerieName )
+      {
+       $this->Data["Series"][$SerieName]["Max"] = max($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+       $this->Data["Series"][$SerieName]["Min"] = min($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+      }
+    }
+
+   /* Load data from a CSV (or similar) data source */
+   function importFromCSV($FileName,$Options="")
+    {
+     $Delimiter		= isset($Options["Delimiter"]) ? $Options["Delimiter"] : ",";
+     $GotHeader		= isset($Options["GotHeader"]) ? $Options["GotHeader"] : FALSE;
+     $SkipColumns	= isset($Options["SkipColumns"]) ? $Options["SkipColumns"] : array(-1);
+     $DefaultSerieName	= isset($Options["DefaultSerieName"]) ? $Options["DefaultSerieName"] : "Serie";
+
+     $Handle = @fopen($FileName,"r");
+     if ($Handle)
+      {
+       $HeaderParsed = FALSE; $SerieNames = "";
+       while (!feof($Handle))
+        {
+         $Buffer = fgets($Handle, 4096);
+         $Buffer = str_replace(chr(10),"",$Buffer);
+         $Buffer = str_replace(chr(13),"",$Buffer);
+         $Values = preg_split("/".$Delimiter."/",$Buffer);
+
+         if ( $Buffer != "" )
+          {
+           if ( $GotHeader && !$HeaderParsed )
+            {
+             foreach($Values as $Key => $Name) { if ( !in_array($Key,$SkipColumns) ) { $SerieNames[$Key] = $Name; } }
+             $HeaderParsed = TRUE;
+            }
+           else
+            {
+             if ($SerieNames == "" ) { foreach($Values as $Key => $Name) {  if ( !in_array($Key,$SkipColumns) ) { $SerieNames[$Key] = $DefaultSerieName.$Key; } } }
+             foreach($Values as $Key => $Value) {  if ( !in_array($Key,$SkipColumns) ) { $this->addPoints($Value,$SerieNames[$Key]); } }
+            }
+          }
+        }
+       fclose($Handle);
+      }
+    }
+
+   /* Create a dataset based on a formula */
+   function createFunctionSerie($SerieName,$Formula="",$Options="")
+    {
+     $MinX		= isset($Options["MinX"]) ? $Options["MinX"] : -10;
+     $MaxX		= isset($Options["MaxX"]) ? $Options["MaxX"] : 10;
+     $XStep		= isset($Options["XStep"]) ? $Options["XStep"] : 1;
+     $AutoDescription	= isset($Options["AutoDescription"]) ? $Options["AutoDescription"] : FALSE;
+     $RecordAbscissa	= isset($Options["RecordAbscissa"]) ? $Options["RecordAbscissa"] : FALSE;
+     $AbscissaSerie	= isset($Options["AbscissaSerie"]) ? $Options["AbscissaSerie"] : "Abscissa";
+
+     if ( $Formula == "" ) { return(0); }
+
+     $Result = ""; $Abscissa = "";
+     for($i=$MinX; $i<=$MaxX; $i=$i+$XStep)
+      {
+       $Expression = "\$return = '!'.(".str_replace("z",$i,$Formula).");";
+       if ( @eval($Expression) === FALSE ) { $return = VOID; }
+       if ( $return == "!" ) { $return = VOID; } else { $return = $this->right($return,strlen($return)-1); }
+       if ( $return == "NAN" ) { $return = VOID; }
+       if ( $return == "INF" ) { $return = VOID; }
+       if ( $return == "-INF" ) { $return = VOID; }
+
+       $Abscissa[] = $i;
+       $Result[]   = $return;
+      }
+
+     $this->addPoints($Result,$SerieName);
+     if ( $AutoDescription ) { $this->setSerieDescription($SerieName,$Formula); }
+     if ( $RecordAbscissa ) { $this->addPoints($Abscissa,$AbscissaSerie); }
+    }
+
+   function negateValues($Series)
+    {
+     if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+     foreach($Series as $Key => $SerieName)
+      {
+       if (isset($this->Data["Series"][$SerieName]))
+        {
+         $Data = "";
+         foreach($this->Data["Series"][$SerieName]["Data"] as $Key => $Value)
+          { if ( $Value == VOID ) { $Data[] = VOID; } else { $Data[] = -$Value; } }
+         $this->Data["Series"][$SerieName]["Data"] = $Data;
+
+         $this->Data["Series"][$SerieName]["Max"] = max($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+         $this->Data["Series"][$SerieName]["Min"] = min($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+        }
+      }
+    }
+
+   /* Return the data & configuration of the series */
+   function getData()
+    { return($this->Data); }
+
+   /* Save a palette element */
+   function savePalette($ID,$Color)
+    { $this->Palette[$ID] = $Color; }
+
+   /* Return the palette of the series */
+   function getPalette()
+    { return($this->Palette); }
+
+   /* Called by the scaling algorithm to save the config */
+   function saveAxisConfig($Axis) { $this->Data["Axis"]=$Axis; }
+
+   /* Save the Y Margin if set */
+   function saveYMargin($Value) { $this->Data["YMargin"]=$Value; }
+
+   /* Save extended configuration to the pData object */
+   function saveExtendedData($Tag,$Values) { $this->Data["Extended"][$Tag]=$Values; }
+
+   /* Called by the scaling algorithm to save the orientation of the scale */
+   function saveOrientation($Orientation) { $this->Data["Orientation"]=$Orientation; }
+
+   /* Convert a string to a single elements array */
+   function convertToArray($Value)
+    { $Values = ""; $Values[] = $Value; return($Values); }
+
+   /* Class string wrapper */
+   function __toString()
+    { return("pData object."); }
+
+   function left($value,$NbChar)	{ return substr($value,0,$NbChar); }  
+   function right($value,$NbChar)	{ return substr($value,strlen($value)-$NbChar,$NbChar); }  
+   function mid($value,$Depart,$NbChar)	{ return substr($value,$Depart-1,$NbChar); }  
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pDraw.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pDraw.class.php
new file mode 100644
index 0000000..750fbb5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pDraw.class.php
@@ -0,0 +1,6193 @@
+<?php
+ /*
+     pDraw - class extension with drawing methods
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("DIRECTION_VERTICAL"		, 690001);
+ define("DIRECTION_HORIZONTAL"		, 690002);
+
+ define("SCALE_POS_LEFTRIGHT"		, 690101);
+ define("SCALE_POS_TOPBOTTOM"		, 690102);
+
+ define("SCALE_MODE_FLOATING"		, 690201);
+ define("SCALE_MODE_START0"		, 690202);
+ define("SCALE_MODE_ADDALL"		, 690203);
+ define("SCALE_MODE_ADDALL_START0"	, 690204);
+ define("SCALE_MODE_MANUAL"		, 690205);
+
+ define("SCALE_SKIP_NONE"		, 690301);
+ define("SCALE_SKIP_SAME"		, 690302);
+ define("SCALE_SKIP_NUMBERS"		, 690303);
+
+ define("TEXT_ALIGN_TOPLEFT"		, 690401);
+ define("TEXT_ALIGN_TOPMIDDLE"		, 690402);
+ define("TEXT_ALIGN_TOPRIGHT"		, 690403);
+ define("TEXT_ALIGN_MIDDLELEFT"		, 690404);
+ define("TEXT_ALIGN_MIDDLEMIDDLE"	, 690405);
+ define("TEXT_ALIGN_MIDDLERIGHT"	, 690406);
+ define("TEXT_ALIGN_BOTTOMLEFT"		, 690407);
+ define("TEXT_ALIGN_BOTTOMMIDDLE"	, 690408);
+ define("TEXT_ALIGN_BOTTOMRIGHT"	, 690409);
+
+ define("POSITION_TOP"                  , 690501);
+ define("POSITION_BOTTOM"               , 690502);
+
+ define("LABEL_POS_LEFT"		, 690601);
+ define("LABEL_POS_CENTER"		, 690602);
+ define("LABEL_POS_RIGHT"		, 690603);
+ define("LABEL_POS_TOP"			, 690604);
+ define("LABEL_POS_BOTTOM"		, 690605);
+ define("LABEL_POS_INSIDE"		, 690606);
+ define("LABEL_POS_OUTSIDE"		, 690607);
+
+ define("ORIENTATION_HORIZONTAL"	, 690701);
+ define("ORIENTATION_VERTICAL"		, 690702);
+ define("ORIENTATION_AUTO"		, 690703);
+
+ define("LEGEND_NOBORDER"		, 690800);
+ define("LEGEND_BOX"			, 690801);
+ define("LEGEND_ROUND"			, 690802);
+
+ define("LEGEND_VERTICAL"		, 690901);
+ define("LEGEND_HORIZONTAL"		, 690902);
+
+ define("LEGEND_FAMILY_BOX"		, 691051);
+ define("LEGEND_FAMILY_CIRCLE"		, 691052);
+ define("LEGEND_FAMILY_LINE"		, 691053);
+
+ define("DISPLAY_AUTO"			, 691001);
+ define("DISPLAY_MANUAL"		, 691002);
+
+ define("LABELING_ALL"			, 691011);
+ define("LABELING_DIFFERENT"		, 691012);
+
+ define("BOUND_MIN"			, 691021);
+ define("BOUND_MAX"			, 691022);
+ define("BOUND_BOTH"			, 691023);
+
+ define("BOUND_LABEL_POS_TOP"		, 691031);
+ define("BOUND_LABEL_POS_BOTTOM"	, 691032);
+ define("BOUND_LABEL_POS_AUTO"		, 691033);
+
+ define("CAPTION_LEFT_TOP"		, 691041);
+ define("CAPTION_RIGHT_BOTTOM"		, 691042);
+
+ define("GRADIENT_SIMPLE"		, 691051);
+ define("GRADIENT_EFFECT_CAN"		, 691052);
+
+ define("LABEL_TITLE_NOBACKGROUND"	, 691061);
+ define("LABEL_TITLE_BACKGROUND"	, 691062);
+
+ define("LABEL_POINT_NONE"		, 691071);
+ define("LABEL_POINT_CIRCLE"		, 691072);
+ define("LABEL_POINT_BOX"		, 691073);
+
+ define("ZONE_NAME_ANGLE_AUTO"		, 691081);
+
+ define("PI"		, 3.14159265);
+ define("ALL"		, 69);
+ define("NONE"		, 31);
+ define("AUTO"		, 690000);
+ define("OUT_OF_SIGHT"	, -10000000000000);
+
+ class pDraw
+  {
+   /* Returns the number of drawable series */
+   function countDrawableSeries()
+    {
+     $Results = 0;
+     $Data = $this->DataSet->getData();
+
+     foreach($Data["Series"] as $SerieName => $Serie)
+      { if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] ) { $Results++; } }
+
+     return($Results);
+    }
+
+   /* Fix box coordinates */
+   function fixBoxCoordinates($Xa,$Ya,$Xb,$Yb)
+    {
+     $X1 = min($Xa,$Xb); $Y1 = min($Ya,$Yb);
+     $X2 = max($Xa,$Xb); $Y2 = max($Ya,$Yb);
+
+     return(array($X1,$Y1,$X2,$Y2));
+    }
+
+   /* Draw a polygon */
+   function drawPolygon($Points,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $NoFill		= isset($Format["NoFill"]) ? $Format["NoFill"] : FALSE;
+     $NoBorder		= isset($Format["NoBorder"]) ? $Format["NoBorder"] : FALSE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : $R;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : $G;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : $B;
+     $BorderAlpha 	= isset($Format["Alpha"]) ? $Format["Alpha"] : $Alpha / 2;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $SkipX		= isset($Format["SkipX"]) ? $Format["SkipX"] : OUT_OF_SIGHT;
+     $SkipY		= isset($Format["SkipY"]) ? $Format["SkipY"] : OUT_OF_SIGHT;
+
+     /* Calling the ImageFilledPolygon() function over the $Points array will round it */ 	
+     $Backup = $Points;
+
+     if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+
+     if ( $SkipX != OUT_OF_SIGHT ) { $SkipX = floor($SkipX); }
+     if ( $SkipY != OUT_OF_SIGHT ) { $SkipY = floor($SkipY); }
+
+     $RestoreShadow = $this->Shadow;
+     if ( !$NoFill )
+      {
+       if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+        {
+         $this->Shadow = FALSE;
+         for($i=0;$i<=count($Points)-1;$i=$i+2)
+          { $Shadow[] = $Points[$i] + $this->ShadowX; $Shadow[] = $Points[$i+1] + $this->ShadowY; }
+         $this->drawPolygon($Shadow,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa,"NoBorder"=>TRUE));
+        }
+
+       $FillColor = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+
+       if ( count($Points) >= 6 )
+        { ImageFilledPolygon($this->Picture,$Points,count($Points)/2,$FillColor); }
+      }
+
+     if ( !$NoBorder )
+      {
+       $Points = $Backup;
+
+       if ( $NoFill )
+        $BorderSettings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+       else
+        $BorderSettings = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha);
+
+       for($i=0;$i<=count($Points)-1;$i=$i+2)
+        {
+         if ( isset($Points[$i+2]) )
+          {
+           if ( !($Points[$i] == $Points[$i+2] && $Points[$i] == $SkipX ) && !($Points[$i+1] == $Points[$i+3] && $Points[$i+1] == $SkipY ) )
+            $this->drawLine($Points[$i],$Points[$i+1],$Points[$i+2],$Points[$i+3],$BorderSettings);
+          }
+         else
+          {
+           if ( !($Points[$i] == $Points[0] && $Points[$i] == $SkipX ) && !($Points[$i+1] == $Points[1] && $Points[$i+1] == $SkipY ) )
+            $this->drawLine($Points[$i],$Points[$i+1],$Points[0],$Points[1],$BorderSettings);
+          }
+        }
+      }
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Apply AALias correction to the rounded box boundaries */
+   function offsetCorrection($Value,$Mode)
+    {
+     $Value = round($Value,1);
+
+     if ( $Value == 0 && $Mode == 1 ) { return(.9); }
+     if ( $Value == 0 ) { return(0); }
+
+     if ( $Mode == 1) 
+      { if ( $Value == 1 ) { return(.9); }; if ( $Value == .1 ) { return(.9); }; if ( $Value == .2 ) { return(.8); }; if ( $Value == .3 ) { return(.8); }; if ( $Value == .4 ) { return(.7); }; if ( $Value == .5 ) { return(.5); }; if ( $Value == .6 ) { return(.8); }; if ( $Value == .7 ) { return(.7); }; if ( $Value == .8 ) { return(.6); }; if ( $Value == .9 ) { return(.9); }; }
+
+     if ( $Mode == 2) 
+      { if ( $Value == 1 ) { return(.9); }; if ( $Value == .1 ) { return(.1); }; if ( $Value == .2 ) { return(.2); }; if ( $Value == .3 ) { return(.3); }; if ( $Value == .4 ) { return(.4); }; if ( $Value == .5 ) { return(.5); }; if ( $Value == .6 ) { return(.8); }; if ( $Value == .7 ) { return(.7); }; if ( $Value == .8 ) { return(.8); }; if ( $Value == .9 ) { return(.9); }; }
+
+     if ( $Mode == 3) 
+      { if ( $Value == 1 ) { return(.1); }; if ( $Value == .1 ) { return(.1); }; if ( $Value == .2 ) { return(.2); }; if ( $Value == .3 ) { return(.3); }; if ( $Value == .4 ) { return(.4); }; if ( $Value == .5 ) { return(.9); }; if ( $Value == .6 ) { return(.6); }; if ( $Value == .7 ) { return(.7); }; if ( $Value == .8 ) { return(.4); }; if ( $Value == .9 ) { return(.5); }; }
+
+     if ( $Mode == 4) 
+      { if ( $Value == 1 ) { return(-1); }; if ( $Value == .1 ) { return(.1); }; if ( $Value == .2 ) { return(.2); }; if ( $Value == .3 ) { return(.3); }; if ( $Value == .4 ) { return(.1); }; if ( $Value == .5 ) { return(-.1); }; if ( $Value == .6 ) { return(.8); }; if ( $Value == .7 ) { return(.1); }; if ( $Value == .8 ) { return(.1); }; if ( $Value == .9 ) { return(.1); }; }
+    }
+
+   /* Draw a rectangle with rounded corners */
+   function drawRoundedRectangle($X1,$Y1,$X2,$Y2,$Radius,$Format="")
+    {
+     $R	    = isset($Format["R"]) ? $Format["R"] : 0;
+     $G	    = isset($Format["G"]) ? $Format["G"] : 0;
+     $B	    = isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+     list($X1,$Y1,$X2,$Y2) = $this->fixBoxCoordinates($X1,$Y1,$X2,$Y2);
+
+     if ( $X2 - $X1 < $Radius ) { $Radius = floor((($X2-$X1))/2); }
+     if ( $Y2 - $Y1 < $Radius ) { $Radius = floor((($Y2-$Y1))/2); }
+
+     $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"NoBorder"=>TRUE);
+
+     if ( $Radius <= 0 ) { $this->drawRectangle($X1,$Y1,$X2,$Y2,$Color); return(0); }
+
+     if ( $this->Antialias )
+      {
+       $this->drawLine($X1+$Radius,$Y1,$X2-$Radius,$Y1,$Color);
+       $this->drawLine($X2,$Y1+$Radius,$X2,$Y2-$Radius,$Color);
+       $this->drawLine($X2-$Radius,$Y2,$X1+$Radius,$Y2,$Color);
+       $this->drawLine($X1,$Y1+$Radius,$X1,$Y2-$Radius,$Color);
+      }
+     else
+      {
+       $Color = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+       imageline($this->Picture,$X1+$Radius,$Y1,$X2-$Radius,$Y1,$Color);
+       imageline($this->Picture,$X2,$Y1+$Radius,$X2,$Y2-$Radius,$Color);
+       imageline($this->Picture,$X2-$Radius,$Y2,$X1+$Radius,$Y2,$Color);
+       imageline($this->Picture,$X1,$Y1+$Radius,$X1,$Y2-$Radius,$Color);
+      }
+
+     $Step = 360 / (2 * PI * $Radius);
+     for($i=0;$i<=90;$i=$i+$Step)
+      {
+       $X = cos(($i+180)*PI/180) * $Radius + $X1 + $Radius;
+       $Y = sin(($i+180)*PI/180) * $Radius + $Y1 + $Radius;
+       $this->drawAntialiasPixel($X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+       $X = cos(($i+90)*PI/180) * $Radius + $X1 + $Radius;
+       $Y = sin(($i+90)*PI/180) * $Radius + $Y2 - $Radius;
+       $this->drawAntialiasPixel($X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+       $X = cos($i*PI/180) * $Radius + $X2 - $Radius;
+       $Y = sin($i*PI/180) * $Radius + $Y2 - $Radius;
+       $this->drawAntialiasPixel($X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+       $X = cos(($i+270)*PI/180) * $Radius + $X2 - $Radius;
+       $Y = sin(($i+270)*PI/180) * $Radius + $Y1 + $Radius;
+       $this->drawAntialiasPixel($X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+      }
+    }
+
+   /* Draw a rectangle with rounded corners */
+   function drawRoundedFilledRectangle($X1,$Y1,$X2,$Y2,$Radius,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : -1;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : -1;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : -1;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+
+     /* Temporary fix for AA issue */
+     $Y1 = floor($Y1); $Y2 = floor($Y2); $X1 = floor($X1); $X2 = floor($X2);
+
+     if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+     if ( $BorderR == -1 ) { $BorderR = $R; $BorderG = $G; $BorderB = $B; }
+
+     list($X1,$Y1,$X2,$Y2) = $this->fixBoxCoordinates($X1,$Y1,$X2,$Y2);
+
+     if ( $X2 - $X1 < $Radius*2 ) { $Radius = floor((($X2-$X1))/4); }
+     if ( $Y2 - $Y1 < $Radius*2 ) { $Radius = floor((($Y2-$Y1))/4); }
+
+     $RestoreShadow = $this->Shadow;
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $this->Shadow = FALSE;
+       $this->drawRoundedFilledRectangle($X1+$this->ShadowX,$Y1+$this->ShadowY,$X2+$this->ShadowX,$Y2+$this->ShadowY,$Radius,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa));
+      }
+
+     $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"NoBorder"=>TRUE);
+
+     if ( $Radius <= 0 ) { $this->drawFilledRectangle($X1,$Y1,$X2,$Y2,$Color); return(0); }
+
+     $YTop    = $Y1+$Radius;
+     $YBottom = $Y2-$Radius;
+
+     $Step = 360 / (2 * PI * $Radius);
+     $Positions = ""; $Radius--; $MinY = ""; $MaxY = "";
+     for($i=0;$i<=90;$i=$i+$Step)
+      {
+       $Xp1 = cos(($i+180)*PI/180) * $Radius + $X1 + $Radius;
+       $Xp2 = cos(((90-$i)+270)*PI/180) * $Radius + $X2 - $Radius;
+       $Yp  = floor(sin(($i+180)*PI/180) * $Radius + $YTop);
+       if ( $MinY == "" || $Yp > $MinY ) { $MinY = $Yp; }
+
+       if ( $Xp1 <= floor($X1) )  { $Xp1++; }
+       if ( $Xp2 >= floor($X2) )  { $Xp2--; }
+       $Xp1++;
+
+       if ( !isset($Positions[$Yp]) )
+        { $Positions[$Yp]["X1"] = $Xp1; $Positions[$Yp]["X2"] = $Xp2; }
+       else
+        { $Positions[$Yp]["X1"] = ($Positions[$Yp]["X1"]+$Xp1)/2; $Positions[$Yp]["X2"] = ($Positions[$Yp]["X2"]+$Xp2)/2; }
+
+       $Xp1 = cos(($i+90)*PI/180) * $Radius + $X1 + $Radius;
+       $Xp2 = cos((90-$i)*PI/180) * $Radius + $X2 - $Radius;
+       $Yp  = floor(sin(($i+90)*PI/180) * $Radius + $YBottom);
+       if ( $MaxY == "" || $Yp < $MaxY ) { $MaxY = $Yp; }
+
+       if ( $Xp1 <= floor($X1) ) { $Xp1++; }
+       if ( $Xp2 >= floor($X2) ) { $Xp2--; }
+       $Xp1++;
+
+       if ( !isset($Positions[$Yp]) )
+        { $Positions[$Yp]["X1"] = $Xp1; $Positions[$Yp]["X2"] = $Xp2; }
+       else
+        { $Positions[$Yp]["X1"] = ($Positions[$Yp]["X1"]+$Xp1)/2; $Positions[$Yp]["X2"] = ($Positions[$Yp]["X2"]+$Xp2)/2; }
+      }
+
+     $ManualColor  = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+     foreach($Positions as $Yp => $Bounds)
+      {
+       $X1 = $Bounds["X1"]; $X1Dec = $this->getFirstDecimal($X1); if ( $X1Dec != 0 ) { $X1 = floor($X1)+1; }
+       $X2 = $Bounds["X2"]; $X2Dec = $this->getFirstDecimal($X2); if ( $X2Dec != 0 ) { $X2 = floor($X2)-1; }
+       imageline($this->Picture,$X1,$Yp,$X2,$Yp,$ManualColor);
+      }
+     $this->drawFilledRectangle($X1,$MinY+1,floor($X2),$MaxY-1,$Color);
+
+     $Radius++;
+     $this->drawRoundedRectangle($X1,$Y1,$X2+1,$Y2-1,$Radius,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Draw a rectangle with rounded corners */
+   function drawRoundedFilledRectangle_deprecated($X1,$Y1,$X2,$Y2,$Radius,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : -1;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : -1;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : -1;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+
+     if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+     if ( $BorderR == -1 ) { $BorderR = $R; $BorderG = $G; $BorderB = $B; }
+
+     list($X1,$Y1,$X2,$Y2) = $this->fixBoxCoordinates($X1,$Y1,$X2,$Y2);
+
+     if ( $X2 - $X1 < $Radius ) { $Radius = floor((($X2-$X1)+2)/2); }
+     if ( $Y2 - $Y1 < $Radius ) { $Radius = floor((($Y2-$Y1)+2)/2); }
+
+     $RestoreShadow = $this->Shadow;
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $this->Shadow = FALSE;
+       $this->drawRoundedFilledRectangle($X1+$this->ShadowX,$Y1+$this->ShadowY,$X2+$this->ShadowX,$Y2+$this->ShadowY,$Radius,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa));
+      }
+
+     if ( $this->getFirstDecimal($X2) >= 5 )  { $XOffset2 = 1; } else { $XOffset2 = 0; }
+     if ( $this->getFirstDecimal($X1) <= 5 )  { $XOffset1 = 1; } else { $XOffset1 = 0; }
+
+     if ( !$this->Antialias ) { $XOffset1 = 1; $XOffset2 = 1; }
+
+     $YTop    = floor($Y1+$Radius);
+     $YBottom = floor($Y2-$Radius);
+
+     $this->drawFilledRectangle($X1-$XOffset1,$YTop,$X2+$XOffset2,$YBottom,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"NoBorder"=>TRUE));
+
+     $Step = 360 / (2 * PI * $Radius);
+     $Color  = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+     $Color2 = $this->allocateColor($this->Picture,255,0,0,$Alpha);
+     $Drawn = "";
+
+     if ( $Alpha < 100 )  { $Drawn[$YTop] = FALSE; }
+     if ( $Alpha < 100 )  { $Drawn[$YBottom] = TRUE; }
+     
+     for($i=0;$i<=90;$i=$i+$Step)
+      {
+       $Xp1 = cos(($i+180)*PI/180) * $Radius + $X1 + $Radius;
+       $Xp2 = cos(((90-$i)+270)*PI/180) * $Radius + $X2 - $Radius;
+       $Yp  = sin(($i+180)*PI/180) * $Radius + $YTop;
+
+       if ( $this->getFirstDecimal($Xp1) > 5 )  { $XOffset1 = 1; } else { $XOffset1 = 0; }
+       if ( $this->getFirstDecimal($Xp2) > 5 )  { $XOffset2 = 1; } else { $XOffset2 = 0; }
+       if ( $this->getFirstDecimal($Yp) > 5 )  { $YOffset = 1; } else { $YOffset = 0; }
+
+       if ( !isset($Drawn[$Yp+$YOffset]) || $Alpha == 100 )
+        imageline($this->Picture,$Xp1+$XOffset1,$Yp+$YOffset,$Xp2+$XOffset2,$Yp+$YOffset,$Color);
+
+       $Drawn[$Yp+$YOffset] = $Xp2;
+
+       $Xp1 = cos(($i+90)*PI/180) * $Radius + $X1 + $Radius;
+       $Xp2 = cos((90-$i)*PI/180) * $Radius + $X2 - $Radius;
+       $Yp  = sin(($i+90)*PI/180) * $Radius + $YBottom;
+
+       if ( $this->getFirstDecimal($Xp1) > 7 )  { $XOffset1 = 1; } else { $XOffset1 = 0; }
+       if ( $this->getFirstDecimal($Xp2) > 7 )  { $XOffset2 = 1; } else { $XOffset2 = 0; }
+       if ( $this->getFirstDecimal($Yp) > 5 )  { $YOffset = 1; } else { $YOffset = 0; }
+
+       if ( !isset($Drawn[$Yp+$YOffset]) || $Alpha == 100 )
+        imageline($this->Picture,$Xp1+$XOffset1,$Yp+$YOffset,$Xp2+$XOffset2,$Yp+$YOffset,$Color);
+
+       $Drawn[$Yp+$YOffset] = $Xp2;
+      }
+
+     $this->drawRoundedRectangle($X1,$Y1,$X2,$Y2,$Radius,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Draw a rectangle */
+   function drawRectangle($X1,$Y1,$X2,$Y2,$Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : 0;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Ticks	= isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+     $NoAngle	= isset($Format["NoAngle"]) ? $Format["NoAngle"] : FALSE;
+
+     if ($X1 > $X2) { list($X1, $X2) = array($X2, $X1); }
+     if ($Y1 > $Y2) { list($Y1, $Y2) = array($Y2, $Y1); }
+
+     if ( $this->Antialias )
+      {
+       if ( $NoAngle )
+        {
+         $this->drawLine($X1+1,$Y1,$X2-1,$Y1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+         $this->drawLine($X2,$Y1+1,$X2,$Y2-1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+         $this->drawLine($X2-1,$Y2,$X1+1,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+         $this->drawLine($X1,$Y1+1,$X1,$Y2-1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+        }
+       else
+        {
+         $this->drawLine($X1+1,$Y1,$X2-1,$Y1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+         $this->drawLine($X2,$Y1,$X2,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+         $this->drawLine($X2-1,$Y2,$X1+1,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+         $this->drawLine($X1,$Y1,$X1,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+        }
+      }
+     else
+      {
+       $Color = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+       imagerectangle($this->Picture,$X1,$Y1,$X2,$Y2,$Color);
+      }
+    }
+
+   /* Draw a filled rectangle */
+   function drawFilledRectangle($X1,$Y1,$X2,$Y2,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : -1;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : -1;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : -1;
+     $BorderAlpha	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : $Alpha;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $Ticks		= isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+     $NoAngle		= isset($Format["NoAngle"]) ? $Format["NoAngle"] : NULL;
+     $Dash		= isset($Format["Dash"]) ? $Format["Dash"] : FALSE;
+     $DashStep		= isset($Format["DashStep"]) ? $Format["DashStep"] : 4;
+     $DashR		= isset($Format["DashR"]) ? $Format["DashR"] : 0;
+     $DashG		= isset($Format["DashG"]) ? $Format["DashG"] : 0;
+     $DashB		= isset($Format["DashB"]) ? $Format["DashB"] : 0;
+     $NoBorder		= isset($Format["NoBorder"]) ? $Format["NoBorder"] : FALSE;
+
+     if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+
+     if ($X1 > $X2) { list($X1, $X2) = array($X2, $X1); }
+     if ($Y1 > $Y2) { list($Y1, $Y2) = array($Y2, $Y1); }
+
+     $RestoreShadow = $this->Shadow;
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $this->Shadow = FALSE;
+       $this->drawFilledRectangle($X1+$this->ShadowX,$Y1+$this->ShadowY,$X2+$this->ShadowX,$Y2+$this->ShadowY,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa,"Ticks"=>$Ticks,"NoAngle"=>$NoAngle));
+      }
+
+     $Color = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+     if ( $NoAngle )
+      {
+       imagefilledrectangle($this->Picture,ceil($X1)+1,ceil($Y1),floor($X2)-1,floor($Y2),$Color);
+       imageline($this->Picture,ceil($X1),ceil($Y1)+1,ceil($X1),floor($Y2)-1,$Color);
+       imageline($this->Picture,floor($X2),ceil($Y1)+1,floor($X2),floor($Y2)-1,$Color);
+      }
+     else
+      imagefilledrectangle($this->Picture,ceil($X1),ceil($Y1),floor($X2),floor($Y2),$Color);
+
+     if ( $Dash )
+      {
+       if ( $BorderR != -1 ) { $iX1=$X1+1; $iY1=$Y1+1; $iX2=$X2-1; $iY2=$Y2-1; } else { $iX1=$X1; $iY1=$Y1; $iX2=$X2; $iY2=$Y2; }
+
+       $Color = $this->allocateColor($this->Picture,$DashR,$DashG,$DashB,$Alpha);
+       $Y=$iY1-$DashStep;
+       for($X=$iX1; $X<=$iX2+($iY2-$iY1); $X=$X+$DashStep)
+        {
+         $Y=$Y+$DashStep;
+         if ( $X > $iX2 ) { $Xa = $X-($X-$iX2); $Ya = $iY1+($X-$iX2); } else { $Xa = $X; $Ya = $iY1; }
+         if ( $Y > $iY2 ) { $Xb = $iX1+($Y-$iY2); $Yb = $Y-($Y-$iY2); } else { $Xb = $iX1; $Yb = $Y; }
+         imageline($this->Picture,$Xa,$Ya,$Xb,$Yb,$Color);
+        }
+      }
+
+     if ( $this->Antialias && !$NoBorder )
+      {
+       if ( $X1 < ceil($X1) )
+        {
+         $AlphaA = $Alpha * (ceil($X1) - $X1);
+         $Color = $this->allocateColor($this->Picture,$R,$G,$B,$AlphaA);
+         imageline($this->Picture,ceil($X1)-1,ceil($Y1),ceil($X1)-1,floor($Y2),$Color);
+        }
+
+       if ( $Y1 < ceil($Y1) )
+        {
+         $AlphaA = $Alpha * (ceil($Y1) - $Y1);
+         $Color = $this->allocateColor($this->Picture,$R,$G,$B,$AlphaA);
+         imageline($this->Picture,ceil($X1),ceil($Y1)-1,floor($X2),ceil($Y1)-1,$Color);
+        }
+
+       if ( $X2 > floor($X2) )
+        {
+         $AlphaA = $Alpha * (.5-($X2 - floor($X2)));
+         $Color = $this->allocateColor($this->Picture,$R,$G,$B,$AlphaA);
+         imageline($this->Picture,floor($X2)+1,ceil($Y1),floor($X2)+1,floor($Y2),$Color);
+        } 
+
+       if ( $Y2 > floor($Y2) )
+        {
+         $AlphaA = $Alpha * (.5-($Y2 - floor($Y2)));
+         $Color = $this->allocateColor($this->Picture,$R,$G,$B,$AlphaA);
+         imageline($this->Picture,ceil($X1),floor($Y2)+1,floor($X2),floor($Y2)+1,$Color);
+        }
+      }
+
+     if ( $BorderR != -1 )
+      $this->drawRectangle($X1,$Y1,$X2,$Y2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$Ticks,"NoAngle"=>$NoAngle));
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Draw a rectangular marker of the specified size */
+   function drawRectangleMarker($X,$Y,$Format="")
+    {
+     $Size = isset($Format["Size"]) ? $Format["Size"] : 4;
+
+     $HalfSize = floor($Size/2);
+     $this->drawFilledRectangle($X-$HalfSize,$Y-$HalfSize,$X+$HalfSize,$Y+$HalfSize,$Format);
+    }
+
+   /* Drawn a spline based on the bezier function */
+   function drawSpline($Coordinates,$Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : 0;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Force	= isset($Format["Force"]) ? $Format["Force"] : 30;
+     $Forces	= isset($Format["Forces"]) ? $Format["Forces"] : NULL;
+     $ShowC	= isset($Format["ShowControl"]) ? $Format["ShowControl"] : FALSE;
+     $Ticks	= isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+     $PathOnly	= isset($Format["PathOnly"]) ? $Format["PathOnly"] : FALSE;
+     $Weight	= isset($Format["Weight"]) ? $Format["Weight"] : NULL;
+
+     $Cpt = NULL; $Mode = NULL; $Result = "";
+     for($i=1;$i<=count($Coordinates)-1;$i++)
+      {
+       $X1 = $Coordinates[$i-1][0]; $Y1 = $Coordinates[$i-1][1];
+       $X2 = $Coordinates[$i][0];   $Y2 = $Coordinates[$i][1];
+
+       if ( $Forces != NULL ) { $Force = $Forces[$i]; }
+
+       /* First segment */
+       if ( $i == 1 )
+        { $Xv1 = $X1; $Yv1 = $Y1; }
+       else
+        {
+         $Angle1 = $this->getAngle($XLast,$YLast,$X1,$Y1);
+         $Angle2 = $this->getAngle($X1,$Y1,$X2,$Y2);
+         $XOff = cos($Angle2 * PI / 180) * $Force + $X1;
+         $YOff = sin($Angle2 * PI / 180) * $Force + $Y1;
+
+         $Xv1 = cos($Angle1 * PI / 180) * $Force + $XOff;
+         $Yv1 = sin($Angle1 * PI / 180) * $Force + $YOff;
+        }
+
+       /* Last segment */
+       if ( $i == count($Coordinates)-1 )
+        { $Xv2 = $X2; $Yv2 = $Y2; }
+       else
+        {
+         $Angle1 = $this->getAngle($X2,$Y2,$Coordinates[$i+1][0],$Coordinates[$i+1][1]);
+         $Angle2 = $this->getAngle($X1,$Y1,$X2,$Y2);
+         $XOff = cos(($Angle2+180) * PI / 180) * $Force + $X2;
+         $YOff = sin(($Angle2+180) * PI / 180) * $Force + $Y2;
+
+         $Xv2 = cos(($Angle1+180) * PI / 180) * $Force + $XOff;
+         $Yv2 = sin(($Angle1+180) * PI / 180) * $Force + $YOff;
+        }
+
+       $Path = $this->drawBezier($X1,$Y1,$X2,$Y2,$Xv1,$Yv1,$Xv2,$Yv2,$Format);
+       if ($PathOnly) { $Result[] = $Path; }
+
+       $XLast = $X1; $YLast = $Y1;
+      }
+
+     return($Result);
+    }
+
+   /* Draw a bezier curve with two controls points */
+   function drawBezier($X1,$Y1,$X2,$Y2,$Xv1,$Yv1,$Xv2,$Yv2,$Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : 0;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $ShowC	= isset($Format["ShowControl"]) ? $Format["ShowControl"] : FALSE;
+     $Segments	= isset($Format["Segments"]) ? $Format["Segments"] : NULL;
+     $Ticks	= isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+     $NoDraw    = isset($Format["NoDraw"]) ? $Format["NoDraw"] : FALSE;
+     $PathOnly  = isset($Format["PathOnly"]) ? $Format["PathOnly"] : FALSE;
+     $Weight    = isset($Format["Weight"]) ? $Format["Weight"] : NULL;
+     $DrawArrow		= isset($Format["DrawArrow"]) ? $Format["DrawArrow"] : FALSE;
+     $ArrowSize		= isset($Format["ArrowSize"]) ? $Format["ArrowSize"] : 10;
+     $ArrowRatio	= isset($Format["ArrowRatio"]) ? $Format["ArrowRatio"] : .5;
+     $ArrowTwoHeads	= isset($Format["ArrowTwoHeads"]) ? $Format["ArrowTwoHeads"] : FALSE;
+
+     if ( $Segments == NULL )
+      {
+       $Length    = $this->getLength($X1,$Y1,$X2,$Y2);
+       $Precision = ($Length*125)/1000;
+      }
+     else
+      $Precision = $Segments;
+
+     $P[0]["X"] = $X1;  $P[0]["Y"] = $Y1;
+     $P[1]["X"] = $Xv1; $P[1]["Y"] = $Yv1;
+     $P[2]["X"] = $Xv2; $P[2]["Y"] = $Yv2;
+     $P[3]["X"] = $X2;  $P[3]["Y"] = $Y2;
+
+     /* Compute the bezier points */
+     $Q = ""; $ID = 0; $Path = "";
+     for($i=0;$i<=$Precision;$i=$i+1)
+      {
+       $u = $i / $Precision;
+
+       $C    = "";
+       $C[0] = (1 - $u) * (1 - $u) * (1 - $u);
+       $C[1] = ($u * 3) * (1 - $u) * (1 - $u);
+       $C[2] = 3 * $u * $u * (1 - $u);
+       $C[3] = $u * $u * $u;
+
+       for($j=0;$j<=3;$j++)
+        {
+         if ( !isset($Q[$ID]) ) { $Q[$ID] = ""; }
+         if ( !isset($Q[$ID]["X"]) ) { $Q[$ID]["X"] = 0; }
+         if ( !isset($Q[$ID]["Y"]) ) { $Q[$ID]["Y"] = 0; }
+
+         $Q[$ID]["X"] = $Q[$ID]["X"] + $P[$j]["X"] * $C[$j];
+         $Q[$ID]["Y"] = $Q[$ID]["Y"] + $P[$j]["Y"] * $C[$j];
+        }
+       $ID++;
+      }        
+     $Q[$ID]["X"] = $X2; $Q[$ID]["Y"] = $Y2;
+
+     if ( !$NoDraw )
+      {
+       /* Display the control points */
+       if ( $ShowC && !$PathOnly )
+        {
+         $Xv1 = floor($Xv1); $Yv1 = floor($Yv1); $Xv2 = floor($Xv2); $Yv2 = floor($Yv2);
+
+         $this->drawLine($X1,$Y1,$X2,$Y2,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>30));
+
+         $MyMarkerSettings = array("R"=>255,"G"=>0,"B"=>0,"BorderR"=>255,"BorderB"=>255,"BorderG"=>255,"Size"=>4);
+         $this->drawRectangleMarker($Xv1,$Yv1,$MyMarkerSettings);
+         $this->drawText($Xv1+4,$Yv1,"v1");
+         $MyMarkerSettings = array("R"=>0,"G"=>0,"B"=>255,"BorderR"=>255,"BorderB"=>255,"BorderG"=>255,"Size"=>4);
+         $this->drawRectangleMarker($Xv2,$Yv2,$MyMarkerSettings);
+         $this->drawText($Xv2+4,$Yv2,"v2");
+        }
+
+       /* Draw the bezier */
+       $LastX = NULL; $LastY = NULL; $Cpt = NULL; $Mode = NULL; $ArrowS = NULL;
+       foreach ($Q as $Key => $Point)
+        {
+         $X = $Point["X"]; $Y = $Point["Y"];
+
+         /* Get the first segment */
+         if ( $ArrowS == NULL && $LastX != NULL && $LastY != NULL )
+          { $ArrowS["X2"] = $LastX; $ArrowS["Y2"] = $LastY; $ArrowS["X1"] = $X; $ArrowS["Y1"] = $Y; }
+
+         if ( $LastX != NULL && $LastY != NULL && !$PathOnly)
+          list($Cpt,$Mode) = $this->drawLine($LastX,$LastY,$X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Cpt"=>$Cpt,"Mode"=>$Mode,"Weight"=>$Weight));
+
+         /* Get the last segment */
+         $ArrowE["X1"] = $LastX; $ArrowE["Y1"] = $LastY; $ArrowE["X2"] = $X; $ArrowE["Y2"] = $Y;
+
+         $LastX = $X; $LastY = $Y;
+        }
+
+       if ( $DrawArrow && !$PathOnly )
+        {
+         $ArrowSettings = array("FillR"=>$R,"FillG"=>$G,"FillB"=>$B,"Alpha"=>$Alpha,"Size"=>$ArrowSize,"Ratio"=>$ArrowRatio);
+         if ( $ArrowTwoHeads )
+          $this->drawArrow($ArrowS["X1"],$ArrowS["Y1"],$ArrowS["X2"],$ArrowS["Y2"],$ArrowSettings);
+
+         $this->drawArrow($ArrowE["X1"],$ArrowE["Y1"],$ArrowE["X2"],$ArrowE["Y2"],$ArrowSettings);
+        }
+      }
+     return($Q);
+    }
+
+   /* Draw a line between two points */
+   function drawLine($X1,$Y1,$X2,$Y2,$Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : 0;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Ticks	= isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+     $Cpt	= isset($Format["Cpt"]) ? $Format["Cpt"] : 1;
+     $Mode	= isset($Format["Mode"]) ? $Format["Mode"] : 1;
+     $Weight	= isset($Format["Weight"]) ? $Format["Weight"] : NULL;
+     $Threshold	= isset($Format["Threshold"]) ? $Format["Threshold"] : NULL;
+
+     if ( $this->Antialias == FALSE && $Ticks == NULL )
+      {
+       if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+        {
+         $ShadowColor = $this->allocateColor($this->Picture,$this->ShadowR,$this->ShadowG,$this->ShadowB,$this->Shadowa);
+         imageline($this->Picture,$X1+$this->ShadowX,$Y1+$this->ShadowY,$X2+$this->ShadowX,$Y2+$this->ShadowY,$ShadowColor);
+        }
+
+       $Color = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+       imageline($this->Picture,$X1,$Y1,$X2,$Y2,$Color);
+       return(0);
+      }
+
+     $Distance = sqrt(($X2-$X1)*($X2-$X1)+($Y2-$Y1)*($Y2-$Y1));  
+     if ( $Distance == 0 ) { return(-1); }
+
+     /* Derivative algorithm for overweighted lines, re-route to polygons primitives */
+     if ( $Weight != NULL )
+      {
+       $Angle        = $this->getAngle($X1,$Y1,$X2,$Y2);
+       $PolySettings = array ("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderAlpha"=>$Alpha);
+
+       if ( $Ticks == NULL )
+        {
+         $Points   = ""; 
+         $Points[] = cos(deg2rad($Angle-90)) * $Weight + $X1; $Points[] = sin(deg2rad($Angle-90)) * $Weight + $Y1;
+         $Points[] = cos(deg2rad($Angle+90)) * $Weight + $X1; $Points[] = sin(deg2rad($Angle+90)) * $Weight + $Y1;
+         $Points[] = cos(deg2rad($Angle+90)) * $Weight + $X2; $Points[] = sin(deg2rad($Angle+90)) * $Weight + $Y2;
+         $Points[] = cos(deg2rad($Angle-90)) * $Weight + $X2; $Points[] = sin(deg2rad($Angle-90)) * $Weight + $Y2;
+
+         $this->drawPolygon($Points,$PolySettings);
+        }
+       else
+        {
+         for($i=0;$i<=$Distance;$i=$i+$Ticks*2)
+          {
+           $Xa = (($X2-$X1)/$Distance) * $i + $X1; $Ya = (($Y2-$Y1)/$Distance) * $i + $Y1;
+           $Xb = (($X2-$X1)/$Distance) * ($i+$Ticks) + $X1; $Yb = (($Y2-$Y1)/$Distance) * ($i+$Ticks) + $Y1;
+
+           $Points   = ""; 
+           $Points[] = cos(deg2rad($Angle-90)) * $Weight + $Xa; $Points[] = sin(deg2rad($Angle-90)) * $Weight + $Ya;
+           $Points[] = cos(deg2rad($Angle+90)) * $Weight + $Xa; $Points[] = sin(deg2rad($Angle+90)) * $Weight + $Ya;
+           $Points[] = cos(deg2rad($Angle+90)) * $Weight + $Xb; $Points[] = sin(deg2rad($Angle+90)) * $Weight + $Yb;
+           $Points[] = cos(deg2rad($Angle-90)) * $Weight + $Xb; $Points[] = sin(deg2rad($Angle-90)) * $Weight 	+ $Yb;
+
+           $this->drawPolygon($Points,$PolySettings);
+          }
+        }
+
+       return(1);
+      }
+
+     $XStep = ($X2-$X1) / $Distance;
+     $YStep = ($Y2-$Y1) / $Distance;
+
+     for($i=0;$i<=$Distance;$i++)
+      {
+       $X = $i * $XStep + $X1;
+       $Y = $i * $YStep + $Y1;
+
+       $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+
+       if ( $Threshold != NULL )
+        {
+         foreach($Threshold as $Key => $Parameters)
+          {
+           if ( $Y <= $Parameters["MinX"] && $Y >= $Parameters["MaxX"])
+            {
+             if ( isset($Parameters["R"]) ) { $RT = $Parameters["R"]; } else { $RT = 0; }
+             if ( isset($Parameters["G"]) ) { $GT = $Parameters["G"]; } else { $GT = 0; }
+             if ( isset($Parameters["B"]) ) { $BT = $Parameters["B"]; } else { $BT = 0; }
+             if ( isset($Parameters["Alpha"]) ) { $AlphaT = $Parameters["Alpha"]; } else { $AlphaT = 0; }
+             $Color = array("R"=>$RT,"G"=>$GT,"B"=>$BT,"Alpha"=>$AlphaT);
+            }
+          }
+        }
+
+       if ( $Ticks != NULL )
+        {
+         if ( $Cpt % $Ticks == 0 )
+          { $Cpt = 0; if ( $Mode == 1 ) { $Mode = 0; } else { $Mode = 1; } }
+
+         if ( $Mode == 1 )
+          $this->drawAntialiasPixel($X,$Y,$Color);
+
+         $Cpt++;
+        }
+       else
+        $this->drawAntialiasPixel($X,$Y,$Color);
+      }
+
+     return(array($Cpt,$Mode));
+    }
+
+   /* Draw a circle */
+   function drawCircle($Xc,$Yc,$Height,$Width,$Format="")
+    {
+     $R	    = isset($Format["R"]) ? $Format["R"] : 0;
+     $G	    = isset($Format["G"]) ? $Format["G"] : 0;
+     $B	    = isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Ticks = isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+
+     $Height	= abs($Height);
+     $Width	= abs($Width);
+
+     if ( $Height == 0 ) { $Height = 1; }
+     if ( $Width == 0 )  { $Width = 1; }
+     $Xc = floor($Xc); $Yc = floor($Yc);
+
+     $RestoreShadow = $this->Shadow;
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $this->Shadow = FALSE;
+       $this->drawCircle($Xc+$this->ShadowX,$Yc+$this->ShadowY,$Height,$Width,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa,"Ticks"=>$Ticks));
+      }
+
+     if ( $Width == 0 ) { $Width = $Height; }
+     if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; }
+     if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; }
+     if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; }
+
+     $Step = 360 / (2 * PI * max($Width,$Height));
+     $Mode = 1; $Cpt = 1;
+     for($i=0;$i<=360;$i=$i+$Step)
+      {
+       $X = cos($i*PI/180) * $Height + $Xc;
+       $Y = sin($i*PI/180) * $Width + $Yc;
+
+       if ( $Ticks != NULL )
+        {
+         if ( $Cpt % $Ticks == 0 )
+          { $Cpt = 0; if ( $Mode == 1 ) { $Mode = 0; } else { $Mode = 1; } }
+
+         if ( $Mode == 1 )
+          $this->drawAntialiasPixel($X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+         $Cpt++;
+        }
+       else
+        $this->drawAntialiasPixel($X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+      }
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Draw a filled circle */
+   function drawFilledCircle($X,$Y,$Radius,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : -1;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : -1;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : -1;
+     $BorderAlpha	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : $Alpha;
+     $Ticks     	= isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+     $Surrounding 	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+
+     if ( $Radius == 0 ) { $Radius = 1; }
+     if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+     $X = floor($X); $Y = floor($Y);
+
+     $Radius = abs($Radius);
+
+     $RestoreShadow = $this->Shadow;
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $this->Shadow = FALSE;
+       $this->drawFilledCircle($X+$this->ShadowX,$Y+$this->ShadowY,$Radius,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa,"Ticks"=>$Ticks));
+      }
+
+     $this->Mask  = "";
+     $Color = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+     for ($i=0; $i<=$Radius*2; $i++)
+      {
+       $Slice  = sqrt($Radius * $Radius - ($Radius - $i) * ($Radius - $i));
+       $XPos   = floor($Slice);
+       $YPos   = $Y + $i - $Radius;
+       $AAlias = $Slice - floor($Slice);
+
+       $this->Mask[$X-$XPos][$YPos] = TRUE;
+       $this->Mask[$X+$XPos][$YPos] = TRUE;
+       imageline($this->Picture,$X-$XPos,$YPos,$X+$XPos,$YPos,$Color);
+      }
+     if ( $this->Antialias )
+      $this->drawCircle($X,$Y,$Radius,$Radius,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+
+     $this->Mask = "";
+
+     if ( $BorderR != -1 )
+      $this->drawCircle($X,$Y,$Radius,$Radius,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$Ticks));
+
+     $this->Shadow	= $RestoreShadow;
+    }
+
+   /* Write text */
+   function drawText($X,$Y,$Text,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : $this->FontColorR;
+     $G			= isset($Format["G"]) ? $Format["G"] : $this->FontColorG;
+     $B			= isset($Format["B"]) ? $Format["B"] : $this->FontColorB;
+     $Angle		= isset($Format["Angle"]) ? $Format["Angle"] : 0;
+     $Align		= isset($Format["Align"]) ? $Format["Align"] : TEXT_ALIGN_BOTTOMLEFT;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : $this->FontColorA;
+     $FontName		= isset($Format["FontName"]) ? $Format["FontName"] : $this->FontName;
+     $FontSize		= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->FontSize;
+     $ShowOrigine	= isset($Format["ShowOrigine"]) ? $Format["ShowOrigine"] : FALSE;
+     $TOffset		= isset($Format["TOffset"]) ? $Format["TOffset"] : 2;
+     $DrawBox		= isset($Format["DrawBox"]) ? $Format["DrawBox"] : FALSE;
+     $DrawBoxBorder	= isset($Format["DrawBoxBorder"]) ? $Format["DrawBoxBorder"] : TRUE;
+     $BorderOffset	= isset($Format["BorderOffset"]) ? $Format["BorderOffset"] : 6;
+     $BoxRounded	= isset($Format["BoxRounded"]) ? $Format["BoxRounded"] : FALSE;
+     $RoundedRadius	= isset($Format["RoundedRadius"]) ? $Format["RoundedRadius"] : 6;
+     $BoxR		= isset($Format["BoxR"]) ? $Format["BoxR"] : 255;
+     $BoxG		= isset($Format["BoxG"]) ? $Format["BoxG"] : 255;
+     $BoxB		= isset($Format["BoxB"]) ? $Format["BoxB"] : 255;
+     $BoxAlpha		= isset($Format["BoxAlpha"]) ? $Format["BoxAlpha"] : 50;
+     $BoxSurrounding	= isset($Format["BoxSurrounding"]) ? $Format["BoxSurrounding"] : "";
+     $BoxBorderR	= isset($Format["BoxR"]) ? $Format["BoxR"] : 0;
+     $BoxBorderG	= isset($Format["BoxG"]) ? $Format["BoxG"] : 0;
+     $BoxBorderB	= isset($Format["BoxB"]) ? $Format["BoxB"] : 0;
+     $BoxBorderAlpha	= isset($Format["BoxAlpha"]) ? $Format["BoxAlpha"] : 50;
+     $NoShadow		= isset($Format["NoShadow"]) ? $Format["NoShadow"] : FALSE;
+
+     $Shadow = $this->Shadow;
+     if ( $NoShadow ) { $this->Shadow = FALSE; }
+
+     if ( $BoxSurrounding != "" ) { $BoxBorderR = $BoxR - $BoxSurrounding; $BoxBorderG = $BoxG - $BoxSurrounding; $BoxBorderB = $BoxB - $BoxSurrounding; $BoxBorderAlpha = $BoxAlpha; }
+
+     if ( $ShowOrigine )
+      {
+       $MyMarkerSettings = array("R"=>255,"G"=>0,"B"=>0,"BorderR"=>255,"BorderB"=>255,"BorderG"=>255,"Size"=>4);
+       $this->drawRectangleMarker($X,$Y,$MyMarkerSettings);
+      }
+
+     $TxtPos = $this->getTextBox($X,$Y,$FontName,$FontSize,$Angle,$Text);
+
+     if ( $DrawBox && ($Angle == 0 || $Angle == 90 || $Angle == 180 || $Angle == 270))
+      {
+       $T[0]["X"]=0;$T[0]["Y"]=0;$T[1]["X"]=0;$T[1]["Y"]=0;$T[2]["X"]=0;$T[2]["Y"]=0;$T[3]["X"]=0;$T[3]["Y"]=0;
+       if ( $Angle == 0 ) { $T[0]["X"]=-$TOffset;$T[0]["Y"]=$TOffset;$T[1]["X"]=$TOffset;$T[1]["Y"]=$TOffset;$T[2]["X"]=$TOffset;$T[2]["Y"]=-$TOffset;$T[3]["X"]=-$TOffset;$T[3]["Y"]=-$TOffset; }
+
+       $X1 = min($TxtPos[0]["X"],$TxtPos[1]["X"],$TxtPos[2]["X"],$TxtPos[3]["X"]) - $BorderOffset + 3;
+       $Y1 = min($TxtPos[0]["Y"],$TxtPos[1]["Y"],$TxtPos[2]["Y"],$TxtPos[3]["Y"]) - $BorderOffset;
+       $X2 = max($TxtPos[0]["X"],$TxtPos[1]["X"],$TxtPos[2]["X"],$TxtPos[3]["X"]) + $BorderOffset + 3;
+       $Y2 = max($TxtPos[0]["Y"],$TxtPos[1]["Y"],$TxtPos[2]["Y"],$TxtPos[3]["Y"]) + $BorderOffset - 3;
+
+       $X1 = $X1 - $TxtPos[$Align]["X"] + $X + $T[0]["X"];
+       $Y1 = $Y1 - $TxtPos[$Align]["Y"] + $Y + $T[0]["Y"];
+       $X2 = $X2 - $TxtPos[$Align]["X"] + $X + $T[0]["X"];
+       $Y2 = $Y2 - $TxtPos[$Align]["Y"] + $Y + $T[0]["Y"];
+
+       $Settings = array("R"=>$BoxR,"G"=>$BoxG,"B"=>$BoxB,"Alpha"=>$BoxAlpha,"BorderR"=>$BoxBorderR,"BorderG"=>$BoxBorderG,"BorderB"=>$BoxBorderB,"BorderAlpha"=>$BoxBorderAlpha);
+
+       if ( $BoxRounded )
+        { $this->drawRoundedFilledRectangle($X1,$Y1,$X2,$Y2,$RoundedRadius,$Settings); }
+       else
+        { $this->drawFilledRectangle($X1,$Y1,$X2,$Y2,$Settings); }
+      }
+
+     $X = $X - $TxtPos[$Align]["X"] + $X;
+     $Y = $Y - $TxtPos[$Align]["Y"] + $Y;
+
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $C_ShadowColor = $this->allocateColor($this->Picture,$this->ShadowR,$this->ShadowG,$this->ShadowB,$this->Shadowa);
+       imagettftext($this->Picture,$FontSize,$Angle,$X+$this->ShadowX,$Y+$this->ShadowY,$C_ShadowColor,$FontName,$Text);
+      }
+
+     $C_TextColor = $this->AllocateColor($this->Picture,$R,$G,$B,$Alpha);
+     imagettftext($this->Picture,$FontSize,$Angle,$X,$Y,$C_TextColor,$FontName,$Text);
+
+     $this->Shadow = $Shadow;
+
+     return($TxtPos);
+    }
+
+   /* Draw a gradient within a defined area */
+   function drawGradientArea($X1,$Y1,$X2,$Y2,$Direction,$Format="")
+    {
+     $StartR	= isset($Format["StartR"]) ? $Format["StartR"] : 90;
+     $StartG	= isset($Format["StartG"]) ? $Format["StartG"] : 90;
+     $StartB	= isset($Format["StartB"]) ? $Format["StartB"] : 90;
+     $EndR	= isset($Format["EndR"]) ? $Format["EndR"] : 0;
+     $EndG	= isset($Format["EndG"]) ? $Format["EndG"] : 0;
+     $EndB	= isset($Format["EndB"]) ? $Format["EndB"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Levels	= isset($Format["Levels"]) ? $Format["Levels"] : NULL;
+
+     $Shadow = $this->Shadow;
+     $this->Shadow = FALSE;
+
+     if ( $StartR == $EndR && $StartG == $EndG && $StartB == $EndB )
+      {
+       $this->drawFilledRectangle($X1,$Y1,$X2,$Y2,array("R"=>$StartR,"G"=>$StartG,"B"=>$StartB,"Alpha"=>$Alpha));
+       return(0);
+      }
+
+     if ( $Levels != NULL )
+      { $EndR=$StartR+$Levels; $EndG=$StartG+$Levels; $EndB=$StartB+$Levels; }
+
+     if ($X1 > $X2) { list($X1, $X2) = array($X2, $X1); }
+     if ($Y1 > $Y2) { list($Y1, $Y2) = array($Y2, $Y1); }
+
+     if ( $Direction == DIRECTION_VERTICAL )   { $Width = abs($Y2-$Y1); }
+     if ( $Direction == DIRECTION_HORIZONTAL ) { $Width = abs($X2-$X1); }
+
+     $Step     = max(abs($EndR-$StartR),abs($EndG-$StartG),abs($EndB-$StartB));
+     $StepSize = $Width/$Step;
+     $RStep    = ($EndR-$StartR)/$Step;
+     $GStep    = ($EndG-$StartG)/$Step;
+     $BStep    = ($EndB-$StartB)/$Step;
+
+     $R=$StartR;$G=$StartG;$B=$StartB;
+     switch($Direction)
+      {
+       case DIRECTION_VERTICAL:
+        $StartY = $Y1; $EndY = floor($Y2)+1; $LastY2 = $StartY;
+        for($i=0;$i<=$Step;$i++)
+         {
+          $Y2 = floor($StartY + ($i * $StepSize));
+
+          if ($Y2 > $EndY) { $Y2 = $EndY; }
+          if (($Y1 != $Y2 && $Y1 < $Y2) || $Y2 == $EndY)
+           {
+            $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+            $this->drawFilledRectangle($X1,$Y1,$X2,$Y2,$Color);
+            $LastY2 = max($LastY2,$Y2);
+            $Y1 = $Y2+1;
+           }
+          $R = $R + $RStep; $G = $G + $GStep; $B = $B + $BStep;
+         }
+        if ( $LastY2 < $EndY && isset($Color)) { for ($i=$LastY2+1;$i<=$EndY;$i++) { $this->drawLine($X1,$i,$X2,$i,$Color); } }
+        break;
+
+       case DIRECTION_HORIZONTAL:
+        $StartX = $X1; $EndX = $X2;
+        for($i=0;$i<=$Step;$i++)
+         {
+          $X2 = floor($StartX + ($i * $StepSize));
+
+          if ($X2 > $EndX) { $X2 = $EndX; }
+          if (($X1 != $X2 && $X1 < $X2) || $X2 == $EndX)
+           {
+            $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+            $this->drawFilledRectangle($X1,$Y1,$X2,$Y2,$Color);
+            $X1 = $X2+1;
+           }
+          $R = $R + $RStep; $G = $G + $GStep; $B = $B + $BStep; 
+         }
+        if ( $X2 < $EndX && isset($Color)) { $this->drawFilledRectangle($X2,$Y1,$EndX,$Y2,$Color); }
+        break;
+      }
+
+     $this->Shadow = $Shadow;
+
+    }
+
+   /* Draw an aliased pixel */
+   function drawAntialiasPixel($X,$Y,$Format="")
+    {
+     $R     = isset($Format["R"]) ? $Format["R"] : 0;
+     $G     = isset($Format["G"]) ? $Format["G"] : 0;
+     $B     = isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+     if ( $X < 0 || $Y < 0 || $X >= $this->XSize || $Y >= $this->YSize )
+      return(-1);
+
+     if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; }
+     if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; }
+     if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; }
+
+     if ( !$this->Antialias )
+      {
+       if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+        {
+         $ShadowColor = $this->allocateColor($this->Picture,$this->ShadowR,$this->ShadowG,$this->ShadowB,$this->Shadowa);
+         imagesetpixel($this->Picture,$X+$this->ShadowX,$Y+$this->ShadowY,$ShadowColor);
+        }
+
+       $PlotColor = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+       imagesetpixel($this->Picture,$X,$Y,$PlotColor);
+
+       return(0);
+      }
+
+     $Plot = "";
+     $Xi   = floor($X);
+     $Yi   = floor($Y);
+
+     if ( $Xi == $X && $Yi == $Y)
+      {
+       if ( $Alpha == 100 )
+        $this->drawAlphaPixel($X,$Y,100,$R,$G,$B);
+       else
+        $this->drawAlphaPixel($X,$Y,$Alpha,$R,$G,$B);
+      }
+     else
+      {
+       $Alpha1 = (((1 - ($X - floor($X))) * (1 - ($Y - floor($Y))) * 100) / 100) * $Alpha;
+       if ( $Alpha1 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi,$Yi,$Alpha1,$R,$G,$B); }
+
+       $Alpha2 = ((($X - floor($X)) * (1 - ($Y - floor($Y))) * 100) / 100) * $Alpha;
+       if ( $Alpha2 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi+1,$Yi,$Alpha2,$R,$G,$B); }
+
+       $Alpha3 = (((1 - ($X - floor($X))) * ($Y - floor($Y)) * 100) / 100) * $Alpha;
+       if ( $Alpha3 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi,$Yi+1,$Alpha3,$R,$G,$B); }
+
+       $Alpha4 = ((($X - floor($X)) * ($Y - floor($Y)) * 100) / 100) * $Alpha;
+       if ( $Alpha4 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi+1,$Yi+1,$Alpha4,$R,$G,$B); }
+      }
+    }
+
+   /* Draw a semi-transparent pixel */
+   function drawAlphaPixel($X,$Y,$Alpha,$R,$G,$B)
+    {
+     if ( isset($this->Mask[$X])) { if ( isset($this->Mask[$X][$Y]) ) { return(0); } }
+
+     if ( $X < 0 || $Y < 0 || $X >= $this->XSize || $Y >= $this->YSize )
+      return(-1);
+
+     if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; }
+     if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; }
+     if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; }
+
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $AlphaFactor = floor(($Alpha / 100) * $this->Shadowa);
+       $ShadowColor = $this->allocateColor($this->Picture,$this->ShadowR,$this->ShadowG,$this->ShadowB,$AlphaFactor);
+       imagesetpixel($this->Picture,$X+$this->ShadowX,$Y+$this->ShadowY,$ShadowColor);
+      }
+
+     $C_Aliased = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+     imagesetpixel($this->Picture,$X,$Y,$C_Aliased);
+    }
+
+   /* Convert apha to base 10 */
+   function convertAlpha($AlphaValue)
+    { return((127/100)*(100-$AlphaValue)); }
+
+   /* Allocate a color with transparency */
+   function allocateColor($Picture,$R,$G,$B,$Alpha=100)
+    {
+     if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; }
+     if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; }
+     if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; }
+     if ( $Alpha < 0 )  { $Alpha = 0; }
+     if ( $Alpha > 100) { $Alpha = 100; }
+
+     $Alpha = $this->convertAlpha($Alpha);
+     return(imagecolorallocatealpha($Picture,$R,$G,$B,$Alpha));
+    }
+
+   /* Load a PNG file and draw it over the chart */
+   function drawFromPNG($X,$Y,$FileName)
+    { $this->drawFromPicture(1,$FileName,$X,$Y); }
+
+   /* Load a GIF file and draw it over the chart */
+   function drawFromGIF($X,$Y,$FileName)
+    { $this->drawFromPicture(2,$FileName,$X,$Y); }
+
+   /* Load a JPEG file and draw it over the chart */
+   function drawFromJPG($X,$Y,$FileName)
+    { $this->drawFromPicture(3,$FileName,$X,$Y); }
+
+   function getPicInfo($FileName)
+    {
+     $Infos  = getimagesize($FileName);
+     $Width  = $Infos[0];
+     $Height = $Infos[1];
+     $Type   = $Infos["mime"];
+
+     if ( $Type == "image/png") { $Type = 1; }
+     if ( $Type == "image/gif") { $Type = 2; }
+     if ( $Type == "image/jpeg ") { $Type = 3; }
+
+     return(array($Width,$Height,$Type));
+    }
+
+   /* Generic loader function for external pictures */
+   function drawFromPicture($PicType,$FileName,$X,$Y)
+    {
+     if ( file_exists($FileName))
+      {
+       list($Width,$Height) = $this->getPicInfo($FileName);
+
+       if ( $PicType == 1 )
+        { $Raster = imagecreatefrompng($FileName); }
+       elseif ( $PicType == 2 )
+        { $Raster = imagecreatefromgif($FileName); }
+       elseif ( $PicType == 3 )
+        { $Raster = imagecreatefromjpeg($FileName); }
+       else
+        { return(0); }
+
+
+       $RestoreShadow = $this->Shadow;
+       if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+        {
+         $this->Shadow = FALSE;
+         if ( $PicType == 3 )
+          $this->drawFilledRectangle($X+$this->ShadowX,$Y+$this->ShadowY,$X+$Width+$this->ShadowX,$Y+$Height+$this->ShadowY,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa));
+         else
+          {
+           $TranparentID = imagecolortransparent($Raster);
+           for ($Xc=0;$Xc<=$Width-1;$Xc++)
+            {
+             for ($Yc=0;$Yc<=$Height-1;$Yc++)
+              {
+               $RGBa   = imagecolorat($Raster,$Xc,$Yc);
+               $Values = imagecolorsforindex($Raster,$RGBa);
+               if ( $Values["alpha"] < 120 )
+                {
+                 $AlphaFactor = floor(($this->Shadowa / 100) * ((100 / 127) * (127-$Values["alpha"])));
+                 $this->drawAlphaPixel($X+$Xc+$this->ShadowX,$Y+$Yc+$this->ShadowY,$AlphaFactor,$this->ShadowR,$this->ShadowG,$this->ShadowB);
+                }
+              }
+            }
+          }
+        }
+       $this->Shadow = $RestoreShadow;
+
+       imagecopy($this->Picture,$Raster,$X,$Y,0,0,$Width,$Height);
+       imagedestroy($Raster);
+      }
+    }
+
+   /* Draw an arrow */
+   function drawArrow($X1,$Y1,$X2,$Y2,$Format="")
+    {
+     $FillR	= isset($Format["FillR"]) ? $Format["FillR"] : 0;
+     $FillG	= isset($Format["FillG"]) ? $Format["FillG"] : 0;
+     $FillB	= isset($Format["FillB"]) ? $Format["FillB"] : 0;
+     $BorderR	= isset($Format["BorderR"]) ? $Format["BorderR"] : $FillR;
+     $BorderG	= isset($Format["BorderG"]) ? $Format["BorderG"] : $FillG;
+     $BorderB	= isset($Format["BorderB"]) ? $Format["BorderB"] : $FillB;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Size	= isset($Format["Size"]) ? $Format["Size"] : 10;
+     $Ratio	= isset($Format["Ratio"]) ? $Format["Ratio"] : .5;
+     $TwoHeads	= isset($Format["TwoHeads"]) ? $Format["TwoHeads"] : FALSE;
+     $Ticks	= isset($Format["Ticks"]) ? $Format["Ticks"] : FALSE;
+
+     /* Calculate the line angle */
+     $Angle = $this->getAngle($X1,$Y1,$X2,$Y2);
+
+     /* Override Shadow support, this will be managed internally */
+     $RestoreShadow = $this->Shadow;
+     if ( $this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0 )
+      {
+       $this->Shadow = FALSE;
+       $this->drawArrow($X1+$this->ShadowX,$Y1+$this->ShadowY,$X2+$this->ShadowX,$Y2+$this->ShadowY,array("FillR"=>$this->ShadowR,"FillG"=>$this->ShadowG,"FillB"=>$this->ShadowB,"Alpha"=>$this->Shadowa,"Size"=>$Size,"Ratio"=>$Ratio,"TwoHeads"=>$TwoHeads,"Ticks"=>$Ticks));
+      }
+
+     /* Draw the 1st Head */
+     $TailX = cos(($Angle-180)*PI/180)*$Size+$X2;
+     $TailY = sin(($Angle-180)*PI/180)*$Size+$Y2;
+
+     $Points	= "";
+     $Points[]  = $X2; $Points[]  = $Y2;
+     $Points[]	= cos(($Angle-90)*PI/180)*$Size*$Ratio+$TailX; $Points[] = sin(($Angle-90)*PI/180)*$Size*$Ratio+$TailY;
+     $Points[]	= cos(($Angle-270)*PI/180)*$Size*$Ratio+$TailX; $Points[] = sin(($Angle-270)*PI/180)*$Size*$Ratio+$TailY;
+     $Points[]  = $X2; $Points[]  = $Y2;
+
+     /* Visual correction */
+     if ($Angle == 180 || $Angle == 360 ) { $Points[4] = $Points[2]; }
+     if ($Angle == 90 || $Angle == 270 ) { $Points[5] = $Points[3]; }
+
+     $ArrowColor = $this->allocateColor($this->Picture,$FillR,$FillG,$FillB,$Alpha);
+     ImageFilledPolygon($this->Picture,$Points,4,$ArrowColor);
+
+     $this->drawLine($Points[0],$Points[1],$Points[2],$Points[3],array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+     $this->drawLine($Points[2],$Points[3],$Points[4],$Points[5],array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+     $this->drawLine($Points[0],$Points[1],$Points[4],$Points[5],array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+
+     /* Draw the second head */
+     if ( $TwoHeads )
+      {
+       $Angle = $this->getAngle($X2,$Y2,$X1,$Y1);
+
+       $TailX2 = cos(($Angle-180)*PI/180)*$Size+$X1;
+       $TailY2 = sin(($Angle-180)*PI/180)*$Size+$Y1;
+
+       $Points   = "";
+       $Points[] = $X1; $Points[]  = $Y1;
+       $Points[] = cos(($Angle-90)*PI/180)*$Size*$Ratio+$TailX2; $Points[] = sin(($Angle-90)*PI/180)*$Size*$Ratio+$TailY2;
+       $Points[] = cos(($Angle-270)*PI/180)*$Size*$Ratio+$TailX2; $Points[] = sin(($Angle-270)*PI/180)*$Size*$Ratio+$TailY2;
+       $Points[] = $X1; $Points[]  = $Y1;
+
+       /* Visual correction */
+       if ($Angle == 180 || $Angle == 360 ) { $Points[4] = $Points[2]; }
+       if ($Angle == 90 || $Angle == 270 ) { $Points[5] = $Points[3]; }
+
+       $ArrowColor = $this->allocateColor($this->Picture,$FillR,$FillG,$FillB,$Alpha);
+       ImageFilledPolygon($this->Picture,$Points,4,$ArrowColor);
+
+       $this->drawLine($Points[0],$Points[1],$Points[2],$Points[3],array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+       $this->drawLine($Points[2],$Points[3],$Points[4],$Points[5],array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+       $this->drawLine($Points[0],$Points[1],$Points[4],$Points[5],array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+
+       $this->drawLine($TailX,$TailY,$TailX2,$TailY2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+      }
+     else
+      $this->drawLine($X1,$Y1,$TailX,$TailY,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+
+     /* Re-enable shadows */
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Draw a label with associated arrow */
+   function drawArrowLabel($X1,$Y1,$Text,$Format="")
+    {
+     $FillR    = isset($Format["FillR"]) ? $Format["FillR"] : 0;
+     $FillG    = isset($Format["FillG"]) ? $Format["FillG"] : 0;
+     $FillB    = isset($Format["FillB"]) ? $Format["FillB"] : 0;
+     $BorderR  = isset($Format["BorderR"]) ? $Format["BorderR"] : $FillR;
+     $BorderG  = isset($Format["BorderG"]) ? $Format["BorderG"] : $FillG;
+     $BorderB  = isset($Format["BorderB"]) ? $Format["BorderB"] : $FillB;
+     $FontName = isset($Format["FontName"]) ? $Format["FontName"] : $this->FontName;
+     $FontSize = isset($Format["FontSize"]) ? $Format["FontSize"] : $this->FontSize;
+     $Alpha    = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Length   = isset($Format["Length"]) ? $Format["Length"] : 50;
+     $Angle    = isset($Format["Angle"]) ? $Format["Angle"] : 315;
+     $Size     = isset($Format["Size"]) ? $Format["Size"] : 10;
+     $Position = isset($Format["Position"]) ? $Format["Position"] : POSITION_TOP;
+     $RoundPos = isset($Format["RoundPos"]) ? $Format["RoundPos"] : FALSE;
+     $Ticks    = isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+
+     $Angle = $Angle % 360;
+
+     $X2 = sin(($Angle+180)*PI/180)*$Length+$X1;
+     $Y2 = cos(($Angle+180)*PI/180)*$Length+$Y1;
+
+     if ( $RoundPos && $Angle > 0 && $Angle < 180 ) { $Y2 = ceil($Y2); }
+     if ( $RoundPos && $Angle > 180 ) { $Y2 = floor($Y2); }
+
+     $this->drawArrow($X2,$Y2,$X1,$Y1,$Format);
+
+     $Size	= imagettfbbox($FontSize,0,$FontName,$Text);
+     $TxtWidth	= max(abs($Size[2]-$Size[0]),abs($Size[0]-$Size[6]));
+     $TxtHeight	= max(abs($Size[1]-$Size[7]),abs($Size[3]-$Size[1]));
+
+     if ( $Angle > 0 && $Angle < 180 )
+      {
+       $this->drawLine($X2,$Y2,$X2-$TxtWidth,$Y2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+       if ( $Position == POSITION_TOP )
+        $this->drawText($X2,$Y2-2,$Text,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha,"Align"=>TEXT_ALIGN_BOTTOMRIGHT));
+       else
+        $this->drawText($X2,$Y2+4,$Text,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha,"Align"=>TEXT_ALIGN_TOPRIGHT));
+      }
+     else
+      {
+       $this->drawLine($X2,$Y2,$X2+$TxtWidth,$Y2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+       if ( $Position == POSITION_TOP )
+        $this->drawText($X2,$Y2-2,$Text,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha));
+       else
+        $this->drawText($X2,$Y2+4,$Text,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$Alpha,"Align"=>TEXT_ALIGN_TOPLEFT));
+      }
+    }
+
+   /* Draw a progress bar filled with specified % */
+   function drawProgress($X,$Y,$Percent,$Format="")
+    {
+     if ( $Percent > 100 ) { $Percent = 100; }
+     if ( $Percent < 0 ) { $Percent = 0; }
+
+     $Width	= isset($Format["Width"]) ? $Format["Width"] : 200;
+     $Height	= isset($Format["Height"]) ? $Format["Height"] : 20;
+     $Orientation = isset($Format["Orientation"]) ? $Format["Orientation"] : ORIENTATION_HORIZONTAL;
+     $ShowLabel = isset($Format["ShowLabel"]) ? $Format["ShowLabel"] : FALSE;
+     $LabelPos	= isset($Format["LabelPos"]) ? $Format["LabelPos"] : LABEL_POS_INSIDE;
+     $Margin    = isset($Format["Margin"]) ? $Format["Margin"] : 10;
+     $R		= isset($Format["R"]) ? $Format["R"] : 130;
+     $G		= isset($Format["G"]) ? $Format["G"] : 130;
+     $B		= isset($Format["B"]) ? $Format["B"] : 130;
+     $RFade	= isset($Format["RFade"]) ? $Format["RFade"] : -1;
+     $GFade	= isset($Format["GFade"]) ? $Format["GFade"] : -1;
+     $BFade	= isset($Format["BFade"]) ? $Format["BFade"] : -1;
+     $BorderR	= isset($Format["BorderR"]) ? $Format["BorderR"] : $R;
+     $BorderG	= isset($Format["BorderG"]) ? $Format["BorderG"] : $G;
+     $BorderB	= isset($Format["BorderB"]) ? $Format["BorderB"] : $B;
+     $BoxBorderR = isset($Format["BoxBorderR"]) ? $Format["BoxBorderR"] : 0;
+     $BoxBorderG = isset($Format["BoxBorderG"]) ? $Format["BoxBorderG"] : 0;
+     $BoxBorderB = isset($Format["BoxBorderB"]) ? $Format["BoxBorderB"] : 0;
+     $BoxBackR	= isset($Format["BoxBackR"]) ? $Format["BoxBackR"] : 255;
+     $BoxBackG	= isset($Format["BoxBackG"]) ? $Format["BoxBackG"] : 255;
+     $BoxBackB	= isset($Format["BoxBackB"]) ? $Format["BoxBackB"] : 255;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Surrounding = isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $BoxSurrounding = isset($Format["BoxSurrounding"]) ? $Format["BoxSurrounding"] : NULL;
+     $NoAngle	= isset($Format["NoAngle"]) ? $Format["NoAngle"] : FALSE;
+
+     if ( $RFade != -1 && $GFade != -1 && $BFade != -1 )
+      {
+       $RFade = (($RFade-$R)/100)*$Percent+$R;
+       $GFade = (($GFade-$G)/100)*$Percent+$G;
+       $BFade = (($BFade-$B)/100)*$Percent+$B;
+      }
+
+     if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
+     if ( $BoxSurrounding != NULL ) { $BoxBorderR = $BoxBackR + $Surrounding; $BoxBorderG = $BoxBackG + $Surrounding; $BoxBorderB = $BoxBackB + $Surrounding; }
+
+     if ( $Orientation == ORIENTATION_VERTICAL )
+      {
+       $InnerHeight = (($Height-2)/100)*$Percent;
+       $this->drawFilledRectangle($X,$Y,$X+$Width,$Y-$Height,array("R"=>$BoxBackR,"G"=>$BoxBackG,"B"=>$BoxBackB,"BorderR"=>$BoxBorderR,"BorderG"=>$BoxBorderG,"BorderB"=>$BoxBorderB,"NoAngle"=>$NoAngle));
+
+       $RestoreShadow = $this->Shadow; $this->Shadow  = FALSE;
+       if ( $RFade != -1 && $GFade != -1 && $BFade != -1 )
+        {
+         $GradientOptions = array("StartR"=>$RFade,"StartG"=>$GFade,"StartB"=>$BFade,"EndR"=>$R,"EndG"=>$G,"EndB"=>$B);
+         $this->drawGradientArea($X+1,$Y-1,$X+$Width-1,$Y-$InnerHeight,DIRECTION_VERTICAL,$GradientOptions);
+
+         if ( $Surrounding )
+          $this->drawRectangle($X+1,$Y-1,$X+$Width-1,$Y-$InnerHeight,array("R"=>255,"G"=>255,"B"=>255,"Alpha"=>$Surrounding));
+        }
+       else
+        $this->drawFilledRectangle($X+1,$Y-1,$X+$Width-1,$Y-$InnerHeight,array("R"=>$R,"G"=>$G,"B"=>$B,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+
+       $this->Shadow = $RestoreShadow;
+
+       if ( $ShowLabel && $LabelPos == LABEL_POS_BOTTOM )	{ $this->drawText($X+($Width/2),$Y+$Margin,$Percent."%",array("Align"=>TEXT_ALIGN_TOPMIDDLE)); }
+       if ( $ShowLabel && $LabelPos == LABEL_POS_TOP )		{ $this->drawText($X+($Width/2),$Y-$Height-$Margin,$Percent."%",array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE)); }
+       if ( $ShowLabel && $LabelPos == LABEL_POS_INSIDE )	{ $this->drawText($X+($Width/2),$Y-$InnerHeight-$Margin,$Percent."%",array("Align"=>TEXT_ALIGN_MIDDLELEFT,"Angle"=>90)); }
+       if ( $ShowLabel && $LabelPos == LABEL_POS_CENTER )	{ $this->drawText($X+($Width/2),$Y-($Height/2),$Percent."%",array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"Angle"=>90)); }
+      }
+     else
+      {
+       if ( $Percent == 100 )
+        $InnerWidth = $Width-1;
+       else
+        $InnerWidth = (($Width-2)/100)*$Percent;
+
+       $this->drawFilledRectangle($X,$Y,$X+$Width,$Y+$Height,array("R"=>$BoxBackR,"G"=>$BoxBackG,"B"=>$BoxBackB,"BorderR"=>$BoxBorderR,"BorderG"=>$BoxBorderG,"BorderB"=>$BoxBorderB,"NoAngle"=>$NoAngle));
+
+       $RestoreShadow = $this->Shadow; $this->Shadow  = FALSE;
+       if ( $RFade != -1 && $GFade != -1 && $BFade != -1 )
+        {
+         $GradientOptions = array("StartR"=>$R,"StartG"=>$G,"StartB"=>$B,"EndR"=>$RFade,"EndG"=>$GFade,"EndB"=>$BFade);
+         $this->drawGradientArea($X+1,$Y+1,$X+$InnerWidth,$Y+$Height-1,DIRECTION_HORIZONTAL,$GradientOptions);
+
+         if ( $Surrounding )
+          $this->drawRectangle($X+1,$Y+1,$X+$InnerWidth,$Y+$Height-1,array("R"=>255,"G"=>255,"B"=>255,"Alpha"=>$Surrounding));
+        }
+       else
+        $this->drawFilledRectangle($X+1,$Y+1,$X+$InnerWidth,$Y+$Height-1,array("R"=>$R,"G"=>$G,"B"=>$B,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+ 
+       $this->Shadow = $RestoreShadow;
+
+       if ( $ShowLabel && $LabelPos == LABEL_POS_LEFT )		{ $this->drawText($X-$Margin,$Y+($Height/2),$Percent."%",array("Align"=>TEXT_ALIGN_MIDDLERIGHT)); }
+       if ( $ShowLabel && $LabelPos == LABEL_POS_RIGHT )	{ $this->drawText($X+$Width+$Margin,$Y+($Height/2),$Percent."%",array("Align"=>TEXT_ALIGN_MIDDLELEFT)); }
+       if ( $ShowLabel && $LabelPos == LABEL_POS_CENTER )	{ $this->drawText($X+($Width/2),$Y+($Height/2),$Percent."%",array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE)); }
+       if ( $ShowLabel && $LabelPos == LABEL_POS_INSIDE )	{ $this->drawText($X+$InnerWidth+$Margin,$Y+($Height/2),$Percent."%",array("Align"=>TEXT_ALIGN_MIDDLELEFT)); }
+      }
+    }
+
+   /* Get the legend box size */
+   function getLegendSize($Format="")
+    {
+     $FontName		= isset($Format["FontName"]) ? $Format["FontName"] : $this->FontName;
+     $FontSize		= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->FontSize;
+     $BoxSize		= isset($Format["BoxSize"]) ? $Format["BoxSize"] : 5;
+     $Margin		= isset($Format["Margin"]) ? $Format["Margin"] : 5;
+     $Style		= isset($Format["Style"]) ? $Format["Style"] : LEGEND_ROUND;
+     $Mode		= isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
+     $BoxWidth		= isset($Format["BoxWidth"]) ? $Format["BoxWidth"] : 5;
+     $BoxHeight		= isset($Format["BoxHeight"]) ? $Format["BoxHeight"] : 5;
+     $IconAreaWidth	= isset($Format["IconAreaWidth"]) ? $Format["IconAreaWidth"] : $BoxWidth;
+     $IconAreaHeight	= isset($Format["IconAreaHeight"]) ? $Format["IconAreaHeight"] : $BoxHeight;
+     $XSpacing		= isset($Format["XSpacing"]) ? $Format["XSpacing"] : 5;
+
+     $Data = $this->DataSet->getData();
+
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] && isset($Serie["Picture"]))
+        {
+         list($PicWidth,$PicHeight) = $this->getPicInfo($Serie["Picture"]);
+         if ( $IconAreaWidth < $PicWidth ) { $IconAreaWidth = $PicWidth; }
+         if ( $IconAreaHeight < $PicHeight ) { $IconAreaHeight = $PicHeight; }
+        }
+      }
+
+     $YStep = max($this->FontSize,$IconAreaHeight) + 5;
+     $XStep = $IconAreaWidth + 5;
+     $XStep = $XSpacing;
+
+     $X=100; $Y=100;
+
+     $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         if ( $Mode == LEGEND_VERTICAL )
+          {
+           $BoxArray = $this->getTextBox($vX+$IconAreaWidth+4,$vY+$IconAreaHeight/2,$FontName,$FontSize,0,$Serie["Description"]);
+
+           if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+           if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+           if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+           $Lines = preg_split("/\n/",$Serie["Description"]);
+           $vY = $vY + max($this->FontSize*count($Lines),$IconAreaHeight) + 5;
+          }
+         elseif ( $Mode == LEGEND_HORIZONTAL )
+          {
+           $Lines = preg_split("/\n/",$Serie["Description"]);
+           $Width = "";
+           foreach($Lines as $Key => $Value)
+            {
+             $BoxArray = $this->getTextBox($vX+$IconAreaWidth+6,$Y+$IconAreaHeight/2+(($this->FontSize+3)*$Key),$FontName,$FontSize,0,$Value);
+
+             if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+             if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+             if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+             $Width[] = $BoxArray[1]["X"];
+            }
+
+           $vX=max($Width)+$XStep;
+          }
+        }
+      }
+     $vY=$vY-$YStep; $vX=$vX-$XStep;
+
+     $TopOffset  = $Y - $Boundaries["T"];
+     if ( $Boundaries["B"]-($vY+$IconAreaHeight) < $TopOffset ) { $Boundaries["B"] = $vY+$IconAreaHeight+$TopOffset; }
+
+     $Width  = ($Boundaries["R"]+$Margin) - ($Boundaries["L"]-$Margin);
+     $Height = ($Boundaries["B"]+$Margin) - ($Boundaries["T"]-$Margin);
+
+     return(array("Width"=>$Width,"Height"=>$Height));
+    }
+
+   /* Draw the legend of the active series */
+   function drawLegend($X,$Y,$Format="")
+    {
+     $Family	= isset($Format["Family"]) ? $Format["Family"] : LEGEND_FAMILY_BOX;
+     $FontName	= isset($Format["FontName"]) ? $Format["FontName"] : $this->FontName;
+     $FontSize	= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->FontSize;
+     $FontR	= isset($Format["FontR"]) ? $Format["FontR"] : $this->FontColorR;
+     $FontG	= isset($Format["FontG"]) ? $Format["FontG"] : $this->FontColorG;
+     $FontB	= isset($Format["FontB"]) ? $Format["FontB"] : $this->FontColorB;
+     $BoxWidth	= isset($Format["BoxWidth"]) ? $Format["BoxWidth"] : 5;
+     $BoxHeight	= isset($Format["BoxHeight"]) ? $Format["BoxHeight"] : 5;
+     $IconAreaWidth	= isset($Format["IconAreaWidth"]) ? $Format["IconAreaWidth"] : $BoxWidth;
+     $IconAreaHeight	= isset($Format["IconAreaHeight"]) ? $Format["IconAreaHeight"] : $BoxHeight;
+     $XSpacing	= isset($Format["XSpacing"]) ? $Format["XSpacing"] : 5;
+     $Margin	= isset($Format["Margin"]) ? $Format["Margin"] : 5;
+     $R		= isset($Format["R"]) ? $Format["R"] : 200;
+     $G		= isset($Format["G"]) ? $Format["G"] : 200;
+     $B		= isset($Format["B"]) ? $Format["B"] : 200;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $BorderR	= isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+     $BorderG	= isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+     $BorderB	= isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+     $Surrounding = isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $Style	= isset($Format["Style"]) ? $Format["Style"] : LEGEND_ROUND;
+     $Mode	= isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
+
+     if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
+
+     $Data = $this->DataSet->getData();
+
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] && isset($Serie["Picture"]))
+        {
+         list($PicWidth,$PicHeight) = $this->getPicInfo($Serie["Picture"]);
+         if ( $IconAreaWidth < $PicWidth ) { $IconAreaWidth = $PicWidth; }
+         if ( $IconAreaHeight < $PicHeight ) { $IconAreaHeight = $PicHeight; }
+        }
+      }
+
+     $YStep = max($this->FontSize,$IconAreaHeight) + 5;
+     $XStep = $IconAreaWidth + 5;
+     $XStep = $XSpacing;
+
+     $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         if ( $Mode == LEGEND_VERTICAL )
+          {
+           $BoxArray = $this->getTextBox($vX+$IconAreaWidth+4,$vY+$IconAreaHeight/2,$FontName,$FontSize,0,$Serie["Description"]);
+
+           if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+           if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+           if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+           $Lines = preg_split("/\n/",$Serie["Description"]);
+           $vY = $vY + max($this->FontSize*count($Lines),$IconAreaHeight) + 5;
+          }
+         elseif ( $Mode == LEGEND_HORIZONTAL )
+          {
+           $Lines = preg_split("/\n/",$Serie["Description"]);
+           $Width = "";
+           foreach($Lines as $Key => $Value)
+            {
+             $BoxArray = $this->getTextBox($vX+$IconAreaWidth+6,$Y+$IconAreaHeight/2+(($this->FontSize+3)*$Key),$FontName,$FontSize,0,$Value);
+
+             if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+             if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+             if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+             $Width[] = $BoxArray[1]["X"];
+            }
+
+           $vX=max($Width)+$XStep;
+          }
+        }
+      }
+     $vY=$vY-$YStep; $vX=$vX-$XStep;
+
+     $TopOffset  = $Y - $Boundaries["T"];
+     if ( $Boundaries["B"]-($vY+$IconAreaHeight) < $TopOffset ) { $Boundaries["B"] = $vY+$IconAreaHeight+$TopOffset; }
+
+     if ( $Style == LEGEND_ROUND )
+      $this->drawRoundedFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+     elseif ( $Style == LEGEND_BOX )
+      $this->drawFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+
+     $RestoreShadow = $this->Shadow; $this->Shadow = FALSE;
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"];
+         $Ticks = $Serie["Ticks"]; $Weight = $Serie["Weight"];
+
+         if ( isset($Serie["Picture"]) )
+          {
+           $Picture = $Serie["Picture"];
+           list($PicWidth,$PicHeight) = $this->getPicInfo($Picture);
+           $PicX = $X+$IconAreaWidth/2; $PicY = $Y+$IconAreaHeight/2; 
+
+           $this->drawFromPNG($PicX-$PicWidth/2,$PicY-$PicHeight/2,$Picture);
+          }
+         else
+          {
+           if ( $Family == LEGEND_FAMILY_BOX )
+            {
+             if ( $BoxWidth != $IconAreaWidth ) { $XOffset = floor(($IconAreaWidth-$BoxWidth)/2); } else { $XOffset = 0; }
+             if ( $BoxHeight != $IconAreaHeight ) { $YOffset = floor(($IconAreaHeight-$BoxHeight)/2); } else { $YOffset = 0; }
+
+             $this->drawFilledRectangle($X+1+$XOffset,$Y+1+$YOffset,$X+$BoxWidth+$XOffset+1,$Y+$BoxHeight+1+$YOffset,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
+             $this->drawFilledRectangle($X+$XOffset,$Y+$YOffset,$X+$BoxWidth+$XOffset,$Y+$BoxHeight+$YOffset,array("R"=>$R,"G"=>$G,"B"=>$B,"Surrounding"=>20));
+            }
+           elseif ( $Family == LEGEND_FAMILY_CIRCLE )
+            {
+             $this->drawFilledCircle($X+1+$IconAreaWidth/2,$Y+1+$IconAreaHeight/2,min($IconAreaHeight/2,$IconAreaWidth/2),array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
+             $this->drawFilledCircle($X+$IconAreaWidth/2,$Y+$IconAreaHeight/2,min($IconAreaHeight/2,$IconAreaWidth/2),array("R"=>$R,"G"=>$G,"B"=>$B,"Surrounding"=>20));
+            }
+           elseif ( $Family == LEGEND_FAMILY_LINE )
+            {
+             $this->drawLine($X+1,$Y+1+$IconAreaHeight/2,$X+1+$IconAreaWidth,$Y+1+$IconAreaHeight/2,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20,"Ticks"=>$Ticks,"Weight"=>$Weight));
+             $this->drawLine($X,$Y+$IconAreaHeight/2,$X+$IconAreaWidth,$Y+$IconAreaHeight/2,array("R"=>$R,"G"=>$G,"B"=>$B,"Ticks"=>$Ticks,"Weight"=>$Weight));
+            }
+          }
+
+         if ( $Mode == LEGEND_VERTICAL )
+          {
+           $Lines = preg_split("/\n/",$Serie["Description"]);
+           foreach($Lines as $Key => $Value)
+            $this->drawText($X+$IconAreaWidth+4,$Y+$IconAreaHeight/2+(($this->FontSize+3)*$Key),$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontSize"=>$FontSize,"FontName"=>$FontName));
+
+           $Y=$Y+max($this->FontSize*count($Lines),$IconAreaHeight) + 5;
+          }
+         elseif ( $Mode == LEGEND_HORIZONTAL )
+          {
+           $Lines = preg_split("/\n/",$Serie["Description"]);
+           $Width = "";
+           foreach($Lines as $Key => $Value)
+            {
+             $BoxArray = $this->drawText($X+$IconAreaWidth+4,$Y+$IconAreaHeight/2+(($this->FontSize+3)*$Key),$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontSize"=>$FontSize,"FontName"=>$FontName));
+             $Width[] = $BoxArray[1]["X"];
+            }
+           $X=max($Width)+2+$XStep;
+          }
+        }
+      }
+
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   function drawScale($Format="")
+    {
+     $Pos		= isset($Format["Pos"]) ? $Format["Pos"] : SCALE_POS_LEFTRIGHT;
+     $Floating		= isset($Format["Floating"]) ? $Format["Floating"] : FALSE;
+     $Mode		= isset($Format["Mode"]) ? $Format["Mode"] : SCALE_MODE_FLOATING;
+     $RemoveXAxis	= isset($Format["RemoveXAxis"]) ? $Format["RemoveXAxis"] : FALSE;
+     $MinDivHeight	= isset($Format["MinDivHeight"]) ? $Format["MinDivHeight"] : 20;
+     $Factors		= isset($Format["Factors"]) ? $Format["Factors"] : array(1,2,5);
+     $ManualScale	= isset($Format["ManualScale"]) ? $Format["ManualScale"] : array("0"=>array("Min"=>-100,"Max"=>100));
+     $XMargin		= isset($Format["XMargin"]) ? $Format["XMargin"] : AUTO;
+     $YMargin		= isset($Format["YMargin"]) ? $Format["YMargin"] : 0;
+     $ScaleSpacing	= isset($Format["ScaleSpacing"]) ? $Format["ScaleSpacing"] : 15;
+     $InnerTickWidth	= isset($Format["InnerTickWidth"]) ? $Format["InnerTickWidth"] : 2;
+     $OuterTickWidth	= isset($Format["OuterTickWidth"]) ? $Format["OuterTickWidth"] : 2;
+     $DrawXLines	= isset($Format["DrawXLines"]) ? $Format["DrawXLines"] : TRUE;
+     $DrawYLines	= isset($Format["DrawYLines"]) ? $Format["DrawYLines"] : ALL;
+     $GridTicks		= isset($Format["GridTicks"]) ? $Format["GridTicks"] : 4;
+     $GridR		= isset($Format["GridR"]) ? $Format["GridR"] : 255;
+     $GridG		= isset($Format["GridG"]) ? $Format["GridG"] : 255;
+     $GridB		= isset($Format["GridB"]) ? $Format["GridB"] : 255;
+     $GridAlpha		= isset($Format["GridAlpha"]) ? $Format["GridAlpha"] : 40;
+     $AxisRo		= isset($Format["AxisR"]) ? $Format["AxisR"] : 0;
+     $AxisGo		= isset($Format["AxisG"]) ? $Format["AxisG"] : 0;
+     $AxisBo		= isset($Format["AxisB"]) ? $Format["AxisB"] : 0;
+     $AxisAlpha		= isset($Format["AxisAlpha"]) ? $Format["AxisAlpha"] : 100;
+     $TickRo		= isset($Format["TickR"]) ? $Format["TickR"] : 0;
+     $TickGo		= isset($Format["TickG"]) ? $Format["TickG"] : 0;
+     $TickBo		= isset($Format["TickB"]) ? $Format["TickB"] : 0;
+     $TickAlpha		= isset($Format["TickAlpha"]) ? $Format["TickAlpha"] : 100;
+     $DrawSubTicks	= isset($Format["DrawSubTicks"]) ? $Format["DrawSubTicks"] : FALSE;
+     $InnerSubTickWidth	= isset($Format["InnerSubTickWidth"]) ? $Format["InnerSubTickWidth"] : 0;
+     $OuterSubTickWidth	= isset($Format["OuterSubTickWidth"]) ? $Format["OuterSubTickWidth"] : 2;
+     $SubTickR		= isset($Format["SubTickR"]) ? $Format["SubTickR"] : 255;
+     $SubTickG		= isset($Format["SubTickG"]) ? $Format["SubTickG"] : 0;
+     $SubTickB		= isset($Format["SubTickB"]) ? $Format["SubTickB"] : 0;
+     $SubTickAlpha	= isset($Format["SubTickAlpha"]) ? $Format["SubTickAlpha"] : 100;
+     $AutoAxisLabels	= isset($Format["AutoAxisLabels"]) ? $Format["AutoAxisLabels"] : TRUE;
+     $XReleasePercent	= isset($Format["XReleasePercent"]) ? $Format["XReleasePercent"] : 1;
+     $DrawArrows	= isset($Format["DrawArrows"]) ? $Format["DrawArrows"] : FALSE;
+     $ArrowSize         = isset($Format["ArrowSize"]) ? $Format["ArrowSize"] : 8;
+     $CycleBackground	= isset($Format["CycleBackground"]) ? $Format["CycleBackground"] : FALSE;
+     $BackgroundR1	= isset($Format["BackgroundR1"]) ? $Format["BackgroundR1"] : 255;
+     $BackgroundG1	= isset($Format["BackgroundG1"]) ? $Format["BackgroundG1"] : 255;
+     $BackgroundB1	= isset($Format["BackgroundB1"]) ? $Format["BackgroundB1"] : 255;
+     $BackgroundAlpha1	= isset($Format["BackgroundAlpha1"]) ? $Format["BackgroundAlpha1"] : 20;
+     $BackgroundR2	= isset($Format["BackgroundR2"]) ? $Format["BackgroundR2"] : 230;
+     $BackgroundG2	= isset($Format["BackgroundG2"]) ? $Format["BackgroundG2"] : 230;
+     $BackgroundB2	= isset($Format["BackgroundB2"]) ? $Format["BackgroundB2"] : 230;
+     $BackgroundAlpha2	= isset($Format["BackgroundAlpha2"]) ? $Format["BackgroundAlpha2"] : 20;
+     $LabelingMethod	= isset($Format["LabelingMethod"]) ? $Format["LabelingMethod"] : LABELING_ALL;
+     $LabelSkip		= isset($Format["LabelSkip"]) ? $Format["LabelSkip"] : 0;
+     $LabelRotation	= isset($Format["LabelRotation"]) ? $Format["LabelRotation"] : 0;
+     $SkippedAxisTicks	= isset($Format["SkippedAxisTicks"]) ? $Format["SkippedAxisTicks"] : $GridTicks+2;
+     $SkippedAxisR	= isset($Format["SkippedAxisR"]) ? $Format["SkippedAxisR"] : $GridR;
+     $SkippedAxisG	= isset($Format["SkippedAxisG"]) ? $Format["SkippedAxisG"] : $GridG;
+     $SkippedAxisB	= isset($Format["SkippedAxisB"]) ? $Format["SkippedAxisB"] : $GridB;
+     $SkippedAxisAlpha	= isset($Format["SkippedAxisAlpha"]) ? $Format["SkippedAxisAlpha"] : $GridAlpha-30;
+     $SkippedTickR	= isset($Format["SkippedTickR"]) ? $Format["SkippedTickR"] : $TickRo;
+     $SkippedTickG	= isset($Format["SkippedTickG"]) ? $Format["SkippedTickG"] : $TickGo;
+     $SkippedTickB	= isset($Format["SkippedTicksB"]) ? $Format["SkippedTickB"] : $TickBo;
+     $SkippedTickAlpha	= isset($Format["SkippedTickAlpha"]) ? $Format["SkippedTickAlpha"] : $TickAlpha-80;
+     $SkippedInnerTickWidth	= isset($Format["SkippedInnerTickWidth"]) ? $Format["SkippedInnerTickWidth"] : 0;
+     $SkippedOuterTickWidth	= isset($Format["SkippedOuterTickWidth"]) ? $Format["SkippedOuterTickWidth"] : 2;
+
+     /* Floating scale require X & Y margins to be set manually */
+     if ( $Floating && ( $XMargin == AUTO || $YMargin == 0 ) ) { $Floating = FALSE; }
+
+     /* Skip a NOTICE event in case of an empty array */
+     if ( $DrawYLines == NONE || $DrawYLines == FALSE ) { $DrawYLines = array("zarma"=>"31"); }
+
+     /* Define the color for the skipped elements */
+     $SkippedAxisColor = array("R"=>$SkippedAxisR,"G"=>$SkippedAxisG,"B"=>$SkippedAxisB,"Alpha"=>$SkippedAxisAlpha,"Ticks"=>$SkippedAxisTicks);
+     $SkippedTickColor = array("R"=>$SkippedTickR,"G"=>$SkippedTickG,"B"=>$SkippedTickB,"Alpha"=>$SkippedTickAlpha);
+
+     $Data = $this->DataSet->getData();
+     if ( isset($Data["Abscissa"]) ) { $Abscissa = $Data["Abscissa"]; } else { $Abscissa = NULL; }
+
+     /* Unset the abscissa axis, needed if we display multiple charts on the same picture */
+     if ( $Abscissa != NULL )
+      {
+       foreach($Data["Axis"] as $AxisID => $Parameters)
+        { if ($Parameters["Identity"] == AXIS_X) { unset($Data["Axis"][$AxisID]); } }
+      }
+
+     /* Build the scale settings */
+     $GotXAxis = FALSE;
+     foreach($Data["Axis"] as $AxisID => $AxisParameter)
+      {
+       if ( $AxisParameter["Identity"] == AXIS_X ) { $GotXAxis = TRUE; }
+
+       if ( $Pos == SCALE_POS_LEFTRIGHT && $AxisParameter["Identity"] == AXIS_Y)
+        { $Height = $this->GraphAreaY2-$this->GraphAreaY1 - $YMargin*2; }
+       elseif ( $Pos == SCALE_POS_LEFTRIGHT && $AxisParameter["Identity"] == AXIS_X)
+        { $Height = $this->GraphAreaX2-$this->GraphAreaX1; }
+       elseif ( $Pos == SCALE_POS_TOPBOTTOM && $AxisParameter["Identity"] == AXIS_Y)
+        { $Height = $this->GraphAreaX2-$this->GraphAreaX1 - $YMargin*2;; }
+       else
+        { $Height = $this->GraphAreaY2-$this->GraphAreaY1; }
+
+       $AxisMin = ABSOLUTE_MAX; $AxisMax = OUT_OF_SIGHT;
+       if ( $Mode == SCALE_MODE_FLOATING || $Mode == SCALE_MODE_START0 )
+        {
+         foreach($Data["Series"] as $SerieID => $SerieParameter)
+          {
+           if ( $SerieParameter["Axis"] == $AxisID && $Data["Series"][$SerieID]["isDrawable"] && $Data["Abscissa"] != $SerieID)
+            {
+             $AxisMax = max($AxisMax,$Data["Series"][$SerieID]["Max"]);
+             $AxisMin = min($AxisMin,$Data["Series"][$SerieID]["Min"]);
+            }
+          }
+         $AutoMargin = (($AxisMax-$AxisMin)/100)*$XReleasePercent;
+
+         $Data["Axis"][$AxisID]["Min"] = $AxisMin-$AutoMargin; $Data["Axis"][$AxisID]["Max"] = $AxisMax+$AutoMargin;
+         if ( $Mode == SCALE_MODE_START0 ) { $Data["Axis"][$AxisID]["Min"] = 0; }
+        }
+       elseif ( $Mode == SCALE_MODE_MANUAL )
+        {
+         if ( isset($ManualScale[$AxisID]["Min"]) && isset($ManualScale[$AxisID]["Max"]) )
+          {
+           $Data["Axis"][$AxisID]["Min"] = $ManualScale[$AxisID]["Min"];
+           $Data["Axis"][$AxisID]["Max"] = $ManualScale[$AxisID]["Max"];
+          }
+         else
+          { echo "Manual scale boundaries not set."; exit(); }
+        }
+       elseif ( $Mode == SCALE_MODE_ADDALL || $Mode == SCALE_MODE_ADDALL_START0 )
+        {
+         $Series = "";
+         foreach($Data["Series"] as $SerieID => $SerieParameter)
+          { if ( $SerieParameter["Axis"] == $AxisID && $SerieParameter["isDrawable"] && $Data["Abscissa"] != $SerieID ) { $Series[$SerieID] = count($Data["Series"][$SerieID]["Data"]); } }
+
+         for ($ID=0;$ID<=max($Series)-1;$ID++)
+          {
+           $PointMin = 0; $PointMax = 0;
+           foreach($Series as $SerieID => $ValuesCount )
+            {
+             if (isset($Data["Series"][$SerieID]["Data"][$ID]) && $Data["Series"][$SerieID]["Data"][$ID] != NULL )
+              {
+               $Value = $Data["Series"][$SerieID]["Data"][$ID];
+               if ( $Value > 0 ) { $PointMax = $PointMax + $Value; } else { $PointMin = $PointMin + $Value; }
+              }
+            }
+           $AxisMax = max($AxisMax,$PointMax);
+           $AxisMin = min($AxisMin,$PointMin);
+          }
+         $AutoMargin = (($AxisMax-$AxisMin)/100)*$XReleasePercent;
+         $Data["Axis"][$AxisID]["Min"] = $AxisMin-$AutoMargin; $Data["Axis"][$AxisID]["Max"] = $AxisMax+$AutoMargin;
+        }
+       $MaxDivs = floor($Height/$MinDivHeight);
+
+       if ( $Mode == SCALE_MODE_ADDALL_START0 ) { $Data["Axis"][$AxisID]["Min"] = 0; }
+
+       $Scale   = $this->computeScale($Data["Axis"][$AxisID]["Min"],$Data["Axis"][$AxisID]["Max"],$MaxDivs,$Factors,$AxisID);
+
+       $Data["Axis"][$AxisID]["Margin"]    = $AxisParameter["Identity"] == AXIS_X ? $XMargin : $YMargin;
+       $Data["Axis"][$AxisID]["ScaleMin"]  = $Scale["XMin"];
+       $Data["Axis"][$AxisID]["ScaleMax"]  = $Scale["XMax"];
+       $Data["Axis"][$AxisID]["Rows"]      = $Scale["Rows"];
+       $Data["Axis"][$AxisID]["RowHeight"] = $Scale["RowHeight"];
+
+       if ( isset($Scale["Format"]) ) { $Data["Axis"][$AxisID]["Format"] = $Scale["Format"]; }
+
+       if ( !isset($Data["Axis"][$AxisID]["Display"]) ) { $Data["Axis"][$AxisID]["Display"] = NULL; }
+       if ( !isset($Data["Axis"][$AxisID]["Format"]) )  { $Data["Axis"][$AxisID]["Format"] = NULL; }
+       if ( !isset($Data["Axis"][$AxisID]["Unit"]) )    { $Data["Axis"][$AxisID]["Unit"] = NULL; }
+      }
+
+     /* Still no X axis */
+     if ( $GotXAxis == FALSE )
+      {
+       if ( $Abscissa != NULL )
+        {
+         $Points = count($Data["Series"][$Abscissa]["Data"]);
+         if ( $AutoAxisLabels )
+          $AxisName = isset($Data["Series"][$Abscissa]["Description"]) ? $Data["Series"][$Abscissa]["Description"] : NULL;
+         else
+          $AxisName = NULL;
+        }
+       else
+        {
+         $Points = 0;
+         $AxisName = isset($Data["XAxisName"]) ? $Data["XAxisName"] : NULL;
+         foreach($Data["Series"] as $SerieID => $SerieParameter)
+          { if ( $SerieParameter["isDrawable"] ) { $Points = max($Points,count($SerieParameter["Data"])); } }
+        }
+
+       $AxisID = count($Data["Axis"]);
+       $Data["Axis"][$AxisID]["Identity"] = AXIS_X;
+       if ( $Pos == SCALE_POS_LEFTRIGHT ) { $Data["Axis"][$AxisID]["Position"] = AXIS_POSITION_BOTTOM; } else { $Data["Axis"][$AxisID]["Position"] = AXIS_POSITION_LEFT; }
+       if ( isset($Data["AbscissaName"]) ) { $Data["Axis"][$AxisID]["Name"] = $Data["AbscissaName"]; }
+       if ( $XMargin == AUTO )
+        {
+         if ( $Pos == SCALE_POS_LEFTRIGHT )
+          { $Height = $this->GraphAreaX2-$this->GraphAreaX1; }
+         else
+          { $Height = $this->GraphAreaY2-$this->GraphAreaY1; }
+
+         if ( $Points == 1 )
+          $Data["Axis"][$AxisID]["Margin"] = $Height / 2;
+         else
+          $Data["Axis"][$AxisID]["Margin"] = ($Height/$Points) / 2;
+        }
+       else
+        { $Data["Axis"][$AxisID]["Margin"] = $XMargin; }
+       $Data["Axis"][$AxisID]["Rows"] = $Points-1;
+       if ( !isset($Data["Axis"][$AxisID]["Display"]) ) { $Data["Axis"][$AxisID]["Display"] = NULL; }
+       if ( !isset($Data["Axis"][$AxisID]["Format"]) )  { $Data["Axis"][$AxisID]["Format"] = NULL; }
+       if ( !isset($Data["Axis"][$AxisID]["Unit"]) )    { $Data["Axis"][$AxisID]["Unit"] = NULL; }
+      }
+
+     /* Do we need to reverse the abscissa position? */
+     if ( $Pos != SCALE_POS_LEFTRIGHT )
+      {
+       if ( $Data["AbsicssaPosition"] == AXIS_POSITION_BOTTOM )
+        { $Data["AbsicssaPosition"] = AXIS_POSITION_LEFT; }
+       else
+        { $Data["AbsicssaPosition"] = AXIS_POSITION_RIGHT; }
+      }
+     $Data["Axis"][$AxisID]["Position"] = $Data["AbsicssaPosition"];
+
+     $this->DataSet->saveOrientation($Pos);
+     $this->DataSet->saveAxisConfig($Data["Axis"]);
+     $this->DataSet->saveYMargin($YMargin);
+
+     $FontColorRo = $this->FontColorR; $FontColorGo = $this->FontColorG; $FontColorBo = $this->FontColorB;
+
+     $AxisPos["L"] = $this->GraphAreaX1; $AxisPos["R"] = $this->GraphAreaX2; $AxisPos["T"] = $this->GraphAreaY1; $AxisPos["B"] = $this->GraphAreaY2;
+     foreach($Data["Axis"] as $AxisID => $Parameters)
+      {
+       if ( isset($Parameters["Color"]) )
+        {
+         $AxisR = $Parameters["Color"]["R"]; $AxisG = $Parameters["Color"]["G"]; $AxisB = $Parameters["Color"]["B"];
+         $TickR = $Parameters["Color"]["R"]; $TickG = $Parameters["Color"]["G"]; $TickB = $Parameters["Color"]["B"];
+         $this->setFontProperties(array("R"=>$Parameters["Color"]["R"],"G"=>$Parameters["Color"]["G"],"B"=>$Parameters["Color"]["B"]));
+        }
+       else
+        {
+         $AxisR = $AxisRo; $AxisG = $AxisGo; $AxisB = $AxisBo;
+         $TickR = $TickRo; $TickG = $TickGo; $TickB = $TickBo;
+         $this->setFontProperties(array("R"=>$FontColorRo,"G"=>$FontColorGo,"B"=>$FontColorBo));
+        }
+
+       $LastValue = "w00t"; $ID = 1;
+       if ( $Parameters["Identity"] == AXIS_X )
+        {
+         if ( $Pos == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $Parameters["Position"] == AXIS_POSITION_BOTTOM )
+            {
+             if ( $LabelRotation == 0 )					{ $LabelAlign = TEXT_ALIGN_TOPMIDDLE; $YLabelOffset = 2; }
+             if ( $LabelRotation > 0 && $LabelRotation < 190 )		{ $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $YLabelOffset = 5; }
+             if ( $LabelRotation == 180 )				{ $LabelAlign = TEXT_ALIGN_BOTTOMMIDDLE; $YLabelOffset = 5; }
+             if ( $LabelRotation > 180 && $LabelRotation < 360 )	{ $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $YLabelOffset = 2; }
+
+             if ( !$RemoveXAxis )
+              {
+               if ( $Floating )
+                { $FloatingOffset = $YMargin; $this->drawLine($this->GraphAreaX1+$Parameters["Margin"],$AxisPos["B"],$this->GraphAreaX2-$Parameters["Margin"],$AxisPos["B"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+               else
+                { $FloatingOffset = 0; $this->drawLine($this->GraphAreaX1,$AxisPos["B"],$this->GraphAreaX2,$AxisPos["B"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+               if ( $DrawArrows ) { $this->drawArrow($this->GraphAreaX2-$Parameters["Margin"],$AxisPos["B"],$this->GraphAreaX2+($ArrowSize*2),$AxisPos["B"],array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+              }
+
+             $Width = ($this->GraphAreaX2 - $this->GraphAreaX1) - $Parameters["Margin"]*2;
+
+             if ($Parameters["Rows"] == 0 ) { $Step  = $Width; } else { $Step  = $Width / ($Parameters["Rows"]); }
+             
+             $MaxBottom = $AxisPos["B"];
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $XPos  = $this->GraphAreaX1 + $Parameters["Margin"] + $Step*$i;
+               $YPos  = $AxisPos["B"];
+
+               if ( $Abscissa != NULL )
+                { if ( isset($Data["Series"][$Abscissa]["Data"][$i]) ) { $Value = $this->scaleFormat($Data["Series"][$Abscissa]["Data"][$i],$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]); } else { $Value = ""; } }
+               else
+                {
+                 if ( isset($Parameters["ScaleMin"]) && isset ($Parameters["RowHeight"]) )
+                  $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]);
+                 else
+                  $Value = $i;
+                }
+
+               $ID++; $Skipped = TRUE;
+               if ( $this->isValidLabel($Value,$LastValue,$LabelingMethod,$ID,$LabelSkip) && !$RemoveXAxis)
+                {
+                 $Bounds    = $this->drawText($XPos,$YPos+$OuterTickWidth+$YLabelOffset,$Value,array("Angle"=>$LabelRotation,"Align"=>$LabelAlign));
+                 $TxtBottom = $YPos+$OuterTickWidth+2+($Bounds[0]["Y"]-$Bounds[2]["Y"]);
+                 $MaxBottom = max($MaxBottom,$TxtBottom);
+                 $LastValue = $Value;
+                 $Skipped   = FALSE;
+                }
+
+               if ( $RemoveXAxis ) { $Skipped   = FALSE; }
+
+               if ( $Skipped )
+                {
+                 if ( $DrawXLines ) { $this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,$SkippedAxisColor); }
+                 if ( ($SkippedInnerTickWidth !=0 || $SkippedOuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos,$YPos-$SkippedInnerTickWidth,$XPos,$YPos+$SkippedOuterTickWidth,$SkippedTickColor); }
+                }
+               else
+                {
+                 if ( $DrawXLines && ($XPos != $this->GraphAreaX1 && $XPos != $this->GraphAreaX2) ) { $this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+                 if ( ($InnerTickWidth !=0 || $OuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos,$YPos-$InnerTickWidth,$XPos,$YPos+$OuterTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha)); }
+                }
+              }
+
+             if ( isset($Parameters["Name"]) && !$RemoveXAxis)
+              {
+               $YPos   = $MaxBottom+2;
+               $XPos   = $this->GraphAreaX1+($this->GraphAreaX2-$this->GraphAreaX1)/2;
+               $Bounds = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_TOPMIDDLE));
+               $MaxBottom = $Bounds[0]["Y"];
+
+               $this->DataSet->Data["GraphArea"]["Y2"] = $MaxBottom + $this->FontSize;
+              }
+
+             $AxisPos["B"] = $MaxBottom + $ScaleSpacing;
+            }
+           elseif ( $Parameters["Position"] == AXIS_POSITION_TOP )
+            {
+             if ( $LabelRotation == 0 )					{ $LabelAlign = TEXT_ALIGN_BOTTOMMIDDLE; $YLabelOffset = 2; }
+             if ( $LabelRotation > 0 && $LabelRotation < 190 )		{ $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $YLabelOffset = 2; }
+             if ( $LabelRotation == 180 )				{ $LabelAlign = TEXT_ALIGN_TOPMIDDLE; $YLabelOffset = 5; }
+             if ( $LabelRotation > 180 && $LabelRotation < 360 )	{ $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $YLabelOffset = 5; }
+
+             if ( !$RemoveXAxis )
+              {
+               if ( $Floating )
+                { $FloatingOffset = $YMargin; $this->drawLine($this->GraphAreaX1+$Parameters["Margin"],$AxisPos["T"],$this->GraphAreaX2-$Parameters["Margin"],$AxisPos["T"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+               else
+                { $FloatingOffset = 0; $this->drawLine($this->GraphAreaX1,$AxisPos["T"],$this->GraphAreaX2,$AxisPos["T"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+               if ( $DrawArrows ) { $this->drawArrow($this->GraphAreaX2-$Parameters["Margin"],$AxisPos["T"],$this->GraphAreaX2+($ArrowSize*2),$AxisPos["T"],array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+              }
+
+             $Width = ($this->GraphAreaX2 - $this->GraphAreaX1) - $Parameters["Margin"]*2;
+
+             if ($Parameters["Rows"] == 0 ) { $Step  = $Width; } else { $Step  = $Width / $Parameters["Rows"]; }
+             
+             $MinTop = $AxisPos["T"];
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $XPos  = $this->GraphAreaX1 + $Parameters["Margin"] + $Step*$i;
+               $YPos  = $AxisPos["T"];
+
+               if ( $Abscissa != NULL )
+                { if ( isset($Data["Series"][$Abscissa]["Data"][$i]) ) { $Value = $this->scaleFormat($Data["Series"][$Abscissa]["Data"][$i],$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]); } else { $Value = ""; } }
+               else
+                {
+                 if ( isset($Parameters["ScaleMin"]) && isset ($Parameters["RowHeight"]) )
+                  $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]);
+                 else
+                  $Value = $i;
+                }
+
+               $ID++; $Skipped = TRUE;
+               if ( $this->isValidLabel($Value,$LastValue,$LabelingMethod,$ID,$LabelSkip) && !$RemoveXAxis)
+                {
+                 $Bounds = $this->drawText($XPos,$YPos-$OuterTickWidth-$YLabelOffset,$Value,array("Angle"=>$LabelRotation,"Align"=>$LabelAlign));
+                 $TxtBox = $YPos-$OuterTickWidth-2-($Bounds[0]["Y"]-$Bounds[2]["Y"]);
+                 $MinTop = min($MinTop,$TxtBox);
+                 $LastValue = $Value;
+                 $Skipped   = FALSE;
+                }
+
+               if ( $RemoveXAxis ) { $Skipped   = FALSE; }
+
+               if ( $Skipped )
+                {
+                 if ( $DrawXLines ) { $this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,$SkippedAxisColor); }
+                 if ( ($SkippedInnerTickWidth !=0 || $SkippedOuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos,$YPos+$SkippedInnerTickWidth,$XPos,$YPos-$SkippedOuterTickWidth,$SkippedTickColor); }
+                }
+               else
+                {
+                 if ( $DrawXLines ) { $this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+                 if ( ($InnerTickWidth !=0 || $OuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos,$YPos+$InnerTickWidth,$XPos,$YPos-$OuterTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha)); }
+                }
+
+              }
+
+             if ( isset($Parameters["Name"]) && !$RemoveXAxis )
+              {
+               $YPos   = $MinTop-2;
+               $XPos   = $this->GraphAreaX1+($this->GraphAreaX2-$this->GraphAreaX1)/2;
+               $Bounds = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+               $MinTop = $Bounds[2]["Y"];
+
+               $this->DataSet->Data["GraphArea"]["Y1"] = $MinTop;
+              }
+
+             $AxisPos["T"] = $MinTop - $ScaleSpacing;
+            }
+          }
+         elseif ( $Pos == SCALE_POS_TOPBOTTOM )
+          {
+           if ( $Parameters["Position"] == AXIS_POSITION_LEFT )
+            {
+             if ( $LabelRotation == 0 )					{ $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $XLabelOffset = -2; }
+             if ( $LabelRotation > 0 && $LabelRotation < 190 )		{ $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $XLabelOffset = -6; }
+             if ( $LabelRotation == 180 )				{ $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $XLabelOffset = -2; }
+             if ( $LabelRotation > 180 && $LabelRotation < 360 )	{ $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $XLabelOffset = -5; }
+
+             if ( !$RemoveXAxis )
+              {
+               if ( $Floating )
+                { $FloatingOffset = $YMargin; $this->drawLine($AxisPos["L"],$this->GraphAreaY1+$Parameters["Margin"],$AxisPos["L"],$this->GraphAreaY2-$Parameters["Margin"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+               else
+                { $FloatingOffset = 0; $this->drawLine($AxisPos["L"],$this->GraphAreaY1,$AxisPos["L"],$this->GraphAreaY2,array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+               if ( $DrawArrows ) { $this->drawArrow($AxisPos["L"],$this->GraphAreaY2-$Parameters["Margin"],$AxisPos["L"],$this->GraphAreaY2+($ArrowSize*2),array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+              }
+
+             $Height = ($this->GraphAreaY2 - $this->GraphAreaY1) - $Parameters["Margin"]*2;
+
+             if ($Parameters["Rows"] == 0 ) { $Step  = $Height; } else { $Step   = $Height / $Parameters["Rows"]; }
+
+             $MinLeft = $AxisPos["L"];
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $YPos  = $this->GraphAreaY1 + $Parameters["Margin"] + $Step*$i;
+               $XPos  = $AxisPos["L"];
+
+               if ( $Abscissa != NULL )
+                { if ( isset($Data["Series"][$Abscissa]["Data"][$i]) ) { $Value = $this->scaleFormat($Data["Series"][$Abscissa]["Data"][$i],$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]); } else { $Value = ""; } }
+               else
+                {
+                 if ( isset($Parameters["ScaleMin"]) && isset ($Parameters["RowHeight"]) )
+                  $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]);
+                 else
+                  $Value = $i;
+                }
+
+               $ID++; $Skipped = TRUE;
+               if ( $this->isValidLabel($Value,$LastValue,$LabelingMethod,$ID,$LabelSkip) && !$RemoveXAxis)
+                {
+                 $Bounds  = $this->drawText($XPos-$OuterTickWidth+$XLabelOffset,$YPos,$Value,array("Angle"=>$LabelRotation,"Align"=>$LabelAlign));
+                 $TxtBox  = $XPos-$OuterTickWidth-2-($Bounds[1]["X"]-$Bounds[0]["X"]);
+                 $MinLeft = min($MinLeft,$TxtBox);
+                 $LastValue = $Value;
+                 $Skipped   = FALSE;
+                }
+
+               if ( $RemoveXAxis ) { $Skipped   = FALSE; }
+
+               if ( $Skipped )
+                {
+                 if ( $DrawXLines ) { $this->drawLine($this->GraphAreaX1+$FloatingOffset,$YPos,$this->GraphAreaX2-$FloatingOffset,$YPos,$SkippedAxisColor); }
+                 if ( ($SkippedInnerTickWidth !=0 || $SkippedOuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos-$SkippedOuterTickWidth,$YPos,$XPos+$SkippedInnerTickWidth,$YPos,$SkippedTickColor); }
+                }
+               else
+                {
+                 if ( $DrawXLines && ($YPos != $this->GraphAreaY1 && $YPos != $this->GraphAreaY2) ) { $this->drawLine($this->GraphAreaX1+$FloatingOffset,$YPos,$this->GraphAreaX2-$FloatingOffset,$YPos,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+                 if ( ($InnerTickWidth !=0 || $OuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos-$OuterTickWidth,$YPos,$XPos+$InnerTickWidth,$YPos,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha)); }
+                }
+
+              }
+             if ( isset($Parameters["Name"]) && !$RemoveXAxis )
+              {
+               $XPos   = $MinLeft-2;
+               $YPos   = $this->GraphAreaY1+($this->GraphAreaY2-$this->GraphAreaY1)/2;
+               $Bounds = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE,"Angle"=>90));
+               $MinLeft = $Bounds[0]["X"];
+
+               $this->DataSet->Data["GraphArea"]["X1"] = $MinLeft;
+              }
+
+             $AxisPos["L"] = $MinLeft - $ScaleSpacing;
+            }
+           elseif ( $Parameters["Position"] == AXIS_POSITION_RIGHT )
+            {
+             if ( $LabelRotation == 0 )					{ $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $XLabelOffset = 2; }
+             if ( $LabelRotation > 0 && $LabelRotation < 190 )		{ $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $XLabelOffset = 6; }
+             if ( $LabelRotation == 180 )				{ $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $XLabelOffset = 5; }
+             if ( $LabelRotation > 180 && $LabelRotation < 360 )	{ $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $XLabelOffset = 7; }
+
+             if ( !$RemoveXAxis )
+              {
+               if ( $Floating )
+                { $FloatingOffset = $YMargin; $this->drawLine($AxisPos["R"],$this->GraphAreaY1+$Parameters["Margin"],$AxisPos["R"],$this->GraphAreaY2-$Parameters["Margin"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+               else
+                { $FloatingOffset = 0; $this->drawLine($AxisPos["R"],$this->GraphAreaY1,$AxisPos["R"],$this->GraphAreaY2,array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+               if ( $DrawArrows ) { $this->drawArrow($AxisPos["R"],$this->GraphAreaY2-$Parameters["Margin"],$AxisPos["R"],$this->GraphAreaY2+($ArrowSize*2),array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+              }
+
+             $Height = ($this->GraphAreaY2 - $this->GraphAreaY1) - $Parameters["Margin"]*2;
+
+             if ($Parameters["Rows"] == 0 ) { $Step  = $Height; } else { $Step   = $Height / $Parameters["Rows"]; }
+             
+             $MaxRight = $AxisPos["R"];
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $YPos  = $this->GraphAreaY1 + $Parameters["Margin"] + $Step*$i;
+               $XPos  = $AxisPos["R"];
+
+               if ( $Abscissa != NULL )
+                { if ( isset($Data["Series"][$Abscissa]["Data"][$i]) ) { $Value = $this->scaleFormat($Data["Series"][$Abscissa]["Data"][$i],$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]); } else { $Value = ""; } }
+               else
+                {
+                 if ( isset($Parameters["ScaleMin"]) && isset ($Parameters["RowHeight"]) )
+                  $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Data["XAxisDisplay"],$Data["XAxisFormat"],$Data["XAxisUnit"]);
+                 else
+                  $Value = $i;
+                }
+
+               $ID++; $Skipped = TRUE;
+               if ( $this->isValidLabel($Value,$LastValue,$LabelingMethod,$ID,$LabelSkip) && !$RemoveXAxis)
+                {
+                 $Bounds   = $this->drawText($XPos+$OuterTickWidth+$XLabelOffset,$YPos,$Value,array("Angle"=>$LabelRotation,"Align"=>$LabelAlign));
+                 $TxtBox   = $XPos+$OuterTickWidth+2+($Bounds[1]["X"]-$Bounds[0]["X"]);
+                 $MaxRight = max($MaxRight,$TxtBox);
+                 $LastValue = $Value;
+                 $Skipped   = FALSE;
+                }
+
+               if ( $RemoveXAxis ) { $Skipped   = FALSE; }
+
+               if ( $Skipped )
+                {
+                 if ( $DrawXLines ) { $this->drawLine($this->GraphAreaX1+$FloatingOffset,$YPos,$this->GraphAreaX2-$FloatingOffset,$YPos,$SkippedAxisColor); }
+                 if ( ($SkippedInnerTickWidth != 0 || $SkippedOuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos+$SkippedOuterTickWidth,$YPos,$XPos-$SkippedInnerTickWidth,$YPos,$SkippedTickColor); }
+                }
+               else
+                {
+                 if ( $DrawXLines ) { $this->drawLine($this->GraphAreaX1+$FloatingOffset,$YPos,$this->GraphAreaX2-$FloatingOffset,$YPos,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+                 if ( ($InnerTickWidth != 0 || $OuterTickWidth != 0) && !$RemoveXAxis ) { $this->drawLine($XPos+$OuterTickWidth,$YPos,$XPos-$InnerTickWidth,$YPos,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha)); }
+                }
+
+              }
+
+             if ( isset($Parameters["Name"]) && !$RemoveXAxis)
+              {
+               $XPos   = $MaxRight+4;
+               $YPos   = $this->GraphAreaY1+($this->GraphAreaY2-$this->GraphAreaY1)/2;
+               $Bounds = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE,"Angle"=>270));
+               $MaxRight = $Bounds[1]["X"];
+
+               $this->DataSet->Data["GraphArea"]["X2"] = $MaxRight + $this->FontSize;
+              }
+
+             $AxisPos["R"] = $MaxRight + $ScaleSpacing;
+            }
+          }
+        }
+
+
+
+       if ( $Parameters["Identity"] == AXIS_Y )
+        {
+         if ( $Pos == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $Parameters["Position"] == AXIS_POSITION_LEFT )
+            {
+
+             if ( $Floating )
+              { $FloatingOffset = $XMargin; $this->drawLine($AxisPos["L"],$this->GraphAreaY1+$Parameters["Margin"],$AxisPos["L"],$this->GraphAreaY2-$Parameters["Margin"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+             else
+              { $FloatingOffset = 0; $this->drawLine($AxisPos["L"],$this->GraphAreaY1,$AxisPos["L"],$this->GraphAreaY2,array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+             if ( $DrawArrows ) { $this->drawArrow($AxisPos["L"],$this->GraphAreaY1+$Parameters["Margin"],$AxisPos["L"],$this->GraphAreaY1-($ArrowSize*2),array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+             $Height = ($this->GraphAreaY2 - $this->GraphAreaY1) - $Parameters["Margin"]*2;
+             $Step   = $Height / $Parameters["Rows"]; $SubTicksSize = $Step /2; $MinLeft = $AxisPos["L"];
+             $LastY  = NULL;
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $YPos  = $this->GraphAreaY2 - $Parameters["Margin"] - $Step*$i;
+               $XPos  = $AxisPos["L"];
+               $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Parameters["Display"],$Parameters["Format"],$Parameters["Unit"]);
+
+               if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+               if ( $LastY != NULL && $CycleBackground && ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) )) { $this->drawFilledRectangle($this->GraphAreaX1+$FloatingOffset,$LastY,$this->GraphAreaX2-$FloatingOffset,$YPos,$BGColor); }
+
+               if ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) ) { $this->drawLine($this->GraphAreaX1+$FloatingOffset,$YPos,$this->GraphAreaX2-$FloatingOffset,$YPos,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+
+               if ( $DrawSubTicks && $i != $Parameters["Rows"] )
+                $this->drawLine($XPos-$OuterSubTickWidth,$YPos-$SubTicksSize,$XPos+$InnerSubTickWidth,$YPos-$SubTicksSize,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+               $this->drawLine($XPos-$OuterTickWidth,$YPos,$XPos+$InnerTickWidth,$YPos,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+               $Bounds  = $this->drawText($XPos-$OuterTickWidth-2,$YPos,$Value,array("Align"=>TEXT_ALIGN_MIDDLERIGHT));
+               $TxtLeft = $XPos-$OuterTickWidth-2-($Bounds[1]["X"]-$Bounds[0]["X"]);
+               $MinLeft = min($MinLeft,$TxtLeft);
+
+               $LastY = $YPos;
+              }
+
+             if ( isset($Parameters["Name"]) )
+              {
+               $XPos    = $MinLeft-2;
+               $YPos    = $this->GraphAreaY1+($this->GraphAreaY2-$this->GraphAreaY1)/2;
+               $Bounds  = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE,"Angle"=>90));
+               $MinLeft = $Bounds[2]["X"];
+
+               $this->DataSet->Data["GraphArea"]["X1"] = $MinLeft;
+              }
+
+             $AxisPos["L"] = $MinLeft - $ScaleSpacing;
+            }
+           elseif ( $Parameters["Position"] == AXIS_POSITION_RIGHT )
+            {
+             if ( $Floating )
+              { $FloatingOffset = $XMargin; $this->drawLine($AxisPos["R"],$this->GraphAreaY1+$Parameters["Margin"],$AxisPos["R"],$this->GraphAreaY2-$Parameters["Margin"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+             else
+              { $FloatingOffset = 0; $this->drawLine($AxisPos["R"],$this->GraphAreaY1,$AxisPos["R"],$this->GraphAreaY2,array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+             if ( $DrawArrows ) { $this->drawArrow($AxisPos["R"],$this->GraphAreaY1+$Parameters["Margin"],$AxisPos["R"],$this->GraphAreaY1-($ArrowSize*2),array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+             $Height = ($this->GraphAreaY2 - $this->GraphAreaY1) - $Parameters["Margin"]*2;
+             $Step   = $Height / $Parameters["Rows"]; $SubTicksSize = $Step /2; $MaxLeft = $AxisPos["R"];
+             $LastY  = NULL;
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $YPos  = $this->GraphAreaY2 - $Parameters["Margin"] - $Step*$i;
+               $XPos  = $AxisPos["R"];
+               $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Parameters["Display"],$Parameters["Format"],$Parameters["Unit"]);
+
+               if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+               if ( $LastY != NULL && $CycleBackground  && ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) )) { $this->drawFilledRectangle($this->GraphAreaX1+$FloatingOffset,$LastY,$this->GraphAreaX2-$FloatingOffset,$YPos,$BGColor); }
+
+               if ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) ) { $this->drawLine($this->GraphAreaX1+$FloatingOffset,$YPos,$this->GraphAreaX2-$FloatingOffset,$YPos,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+
+               if ( $DrawSubTicks && $i != $Parameters["Rows"] )
+                $this->drawLine($XPos-$OuterSubTickWidth,$YPos-$SubTicksSize,$XPos+$InnerSubTickWidth,$YPos-$SubTicksSize,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+               $this->drawLine($XPos-$InnerTickWidth,$YPos,$XPos+$OuterTickWidth,$YPos,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+               $Bounds  = $this->drawText($XPos+$OuterTickWidth+2,$YPos,$Value,array("Align"=>TEXT_ALIGN_MIDDLELEFT));
+               $TxtLeft = $XPos+$OuterTickWidth+2+($Bounds[1]["X"]-$Bounds[0]["X"]);
+               $MaxLeft = max($MaxLeft,$TxtLeft);
+
+               $LastY = $YPos;
+              }
+
+             if ( isset($Parameters["Name"]) )
+              {
+               $XPos    = $MaxLeft+6;
+               $YPos    = $this->GraphAreaY1+($this->GraphAreaY2-$this->GraphAreaY1)/2;
+               $Bounds  = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE,"Angle"=>270));
+               $MaxLeft = $Bounds[2]["X"];
+
+               $this->DataSet->Data["GraphArea"]["X2"] = $MaxLeft + $this->FontSize;
+              }
+             $AxisPos["R"] = $MaxLeft + $ScaleSpacing;
+            }
+          }
+         elseif ( $Pos == SCALE_POS_TOPBOTTOM )
+          {
+           if ( $Parameters["Position"] == AXIS_POSITION_TOP )
+            {
+             if ( $Floating )
+              { $FloatingOffset = $XMargin; $this->drawLine($this->GraphAreaX1+$Parameters["Margin"],$AxisPos["T"],$this->GraphAreaX2-$Parameters["Margin"],$AxisPos["T"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+             else
+              { $FloatingOffset = 0; $this->drawLine($this->GraphAreaX1,$AxisPos["T"],$this->GraphAreaX2,$AxisPos["T"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+             if ( $DrawArrows ) { $this->drawArrow($this->GraphAreaX2-$Parameters["Margin"],$AxisPos["T"],$this->GraphAreaX2+($ArrowSize*2),$AxisPos["T"],array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+             $Width = ($this->GraphAreaX2 - $this->GraphAreaX1) - $Parameters["Margin"]*2;
+             $Step   = $Width / $Parameters["Rows"]; $SubTicksSize = $Step /2; $MinTop = $AxisPos["T"];
+             $LastX  = NULL;
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $XPos  = $this->GraphAreaX1 + $Parameters["Margin"] + $Step*$i;
+               $YPos  = $AxisPos["T"];
+               $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Parameters["Display"],$Parameters["Format"],$Parameters["Unit"]);
+
+               if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+               if ( $LastX != NULL && $CycleBackground  && ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) )) { $this->drawFilledRectangle($LastX,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,$BGColor); }
+
+               if ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) ) { $this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+
+               if ( $DrawSubTicks && $i != $Parameters["Rows"] )
+                $this->drawLine($XPos+$SubTicksSize,$YPos-$OuterSubTickWidth,$XPos+$SubTicksSize,$YPos+$InnerSubTickWidth,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+               $this->drawLine($XPos,$YPos-$OuterTickWidth,$XPos,$YPos+$InnerTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+               $Bounds    = $this->drawText($XPos,$YPos-$OuterTickWidth-2,$Value,array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+               $TxtHeight = $YPos-$OuterTickWidth-2-($Bounds[1]["Y"]-$Bounds[2]["Y"]);
+               $MinTop    = min($MinTop,$TxtHeight);
+
+               $LastX = $XPos;
+              }
+
+             if ( isset($Parameters["Name"]) )
+              {
+               $YPos   = $MinTop-2;
+               $XPos   = $this->GraphAreaX1+($this->GraphAreaX2-$this->GraphAreaX1)/2;
+               $Bounds = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+               $MinTop = $Bounds[2]["Y"];
+
+               $this->DataSet->Data["GraphArea"]["Y1"] = $MinTop;
+              }
+
+             $AxisPos["T"] = $MinTop - $ScaleSpacing;
+            }
+           elseif ( $Parameters["Position"] == AXIS_POSITION_BOTTOM )
+            {
+             if ( $Floating )
+              { $FloatingOffset = $XMargin; $this->drawLine($this->GraphAreaX1+$Parameters["Margin"],$AxisPos["B"],$this->GraphAreaX2-$Parameters["Margin"],$AxisPos["B"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+             else
+              { $FloatingOffset = 0; $this->drawLine($this->GraphAreaX1,$AxisPos["B"],$this->GraphAreaX2,$AxisPos["B"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+             if ( $DrawArrows ) { $this->drawArrow($this->GraphAreaX2-$Parameters["Margin"],$AxisPos["B"],$this->GraphAreaX2+($ArrowSize*2),$AxisPos["B"],array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+             $Width = ($this->GraphAreaX2 - $this->GraphAreaX1) - $Parameters["Margin"]*2;
+             $Step   = $Width / $Parameters["Rows"]; $SubTicksSize = $Step /2; $MaxBottom = $AxisPos["B"];
+             $LastX  = NULL;
+             for($i=0;$i<=$Parameters["Rows"];$i++)
+              {
+               $XPos  = $this->GraphAreaX1 + $Parameters["Margin"] + $Step*$i;
+               $YPos  = $AxisPos["B"];
+               $Value = $this->scaleFormat($Parameters["ScaleMin"] + $Parameters["RowHeight"]*$i,$Parameters["Display"],$Parameters["Format"],$Parameters["Unit"]);
+
+               if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+               if ( $LastX != NULL && $CycleBackground  && ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) )) { $this->drawFilledRectangle($LastX,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,$BGColor); }
+
+               if ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) ) { $this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+
+               if ( $DrawSubTicks && $i != $Parameters["Rows"] )
+                $this->drawLine($XPos+$SubTicksSize,$YPos-$OuterSubTickWidth,$XPos+$SubTicksSize,$YPos+$InnerSubTickWidth,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+               $this->drawLine($XPos,$YPos-$OuterTickWidth,$XPos,$YPos+$InnerTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+               $Bounds    = $this->drawText($XPos,$YPos+$OuterTickWidth+2,$Value,array("Align"=>TEXT_ALIGN_TOPMIDDLE));
+               $TxtHeight = $YPos+$OuterTickWidth+2+($Bounds[1]["Y"]-$Bounds[2]["Y"]);
+               $MaxBottom = max($MaxBottom,$TxtHeight);
+
+               $LastX = $XPos;
+              }
+
+             if ( isset($Parameters["Name"]) )
+              {
+               $YPos   = $MaxBottom+2;
+               $XPos   = $this->GraphAreaX1+($this->GraphAreaX2-$this->GraphAreaX1)/2;
+               $Bounds = $this->drawText($XPos,$YPos,$Parameters["Name"],array("Align"=>TEXT_ALIGN_TOPMIDDLE));
+               $MaxBottom = $Bounds[0]["Y"];
+
+               $this->DataSet->Data["GraphArea"]["Y2"] = $MaxBottom + $this->FontSize;
+              }
+
+             $AxisPos["B"] = $MaxBottom + $ScaleSpacing;
+            }
+          }
+        }
+      }
+    }
+
+   function isValidLabel($Value,$LastValue,$LabelingMethod,$ID,$LabelSkip)
+    {
+     if ( $LabelingMethod == LABELING_DIFFERENT && $Value != $LastValue ) { return(TRUE); }
+     if ( $LabelingMethod == LABELING_DIFFERENT && $Value == $LastValue ) { return(FALSE); }
+     if ( $LabelingMethod == LABELING_ALL && $LabelSkip == 0 ) { return(TRUE); }
+     if ( $LabelingMethod == LABELING_ALL && ($ID+$LabelSkip) % ($LabelSkip+1) != 1 ) { return(FALSE); }
+
+     return(TRUE);
+    }
+
+   /* Compute the scale, check for the best visual factors */
+   function computeScale($XMin,$XMax,$MaxDivs,$Factors,$AxisID=0)
+    {
+     /* Compute each factors */
+     $Results = "";
+     foreach ($Factors as $Key => $Factor)
+      $Results[$Factor] = $this->processScale($XMin,$XMax,$MaxDivs,array($Factor),$AxisID);
+
+     /* Remove scales that are creating to much decimals */
+     $GoodScaleFactors = "";
+     foreach ($Results as $Key => $Result)
+      {
+       $Decimals = preg_split("/\./",$Result["RowHeight"]);
+       if ( (!isset($Decimals[1])) || (strlen($Decimals[1]) < 6) ) { $GoodScaleFactors[] = $Key; }
+      }
+
+     /* Found no correct scale, shame,... returns the 1st one as default */
+     if ( $GoodScaleFactors == "" ) { return($Results[$Factors[0]]); }
+
+     /* Find the factor that cause the maximum number of Rows */
+     $MaxRows = 0; $BestFactor = 0;
+     foreach($GoodScaleFactors as $Key => $Factor)
+      { if ( $Results[$Factor]["Rows"] > $MaxRows ) { $MaxRows = $Results[$Factor]["Rows"]; $BestFactor = $Factor; } }
+
+     /* Return the best visual scale */
+     return($Results[$BestFactor]);
+    }
+
+   /* Compute the best matching scale based on size & factors */
+   function processScale($XMin,$XMax,$MaxDivs,$Factors,$AxisID)
+    {
+     $ScaleHeight = abs(ceil($XMax)-floor($XMin));
+
+     if ( isset($this->DataSet->Data["Axis"][$AxisID]["Format"]) )
+      $Format = $this->DataSet->Data["Axis"][$AxisID]["Format"];
+     else
+      $Format = NULL;
+
+     if ( isset($this->DataSet->Data["Axis"][$AxisID]["Display"]) )
+      $Mode = $this->DataSet->Data["Axis"][$AxisID]["Display"];
+     else
+      $Mode = AXIS_FORMAT_DEFAULT;
+
+     $Scale = "";
+     if ( $XMin != $XMax )
+      {
+       $Found = FALSE; $Rescaled = FALSE; $Scaled10Factor = .0001; $Result = 0;
+       while(!$Found)
+        {
+         foreach($Factors as $Key => $Factor)
+          {
+           if ( !$Found )
+            {
+             if ( !($this->modulo($XMin,$Factor*$Scaled10Factor) == 0) || ($XMin != floor($XMin))) { $XMinRescaled = floor($XMin/($Factor*$Scaled10Factor))*$Factor*$Scaled10Factor; } else { $XMinRescaled = $XMin; }
+             if ( !($this->modulo($XMax,$Factor*$Scaled10Factor) == 0) || ($XMax != floor($XMax))) { $XMaxRescaled = floor($XMax/($Factor*$Scaled10Factor))*$Factor*$Scaled10Factor+($Factor*$Scaled10Factor); } else { $XMaxRescaled = $XMax; }
+             $ScaleHeightRescaled = abs($XMaxRescaled-$XMinRescaled);
+
+             if ( !$Found && floor($ScaleHeightRescaled/($Factor*$Scaled10Factor)) <= $MaxDivs ) { $Found = TRUE; $Rescaled = TRUE; $Result = $Factor * $Scaled10Factor; }
+            }
+          }
+         $Scaled10Factor = $Scaled10Factor * 10;
+        }
+
+       /* ReCall Min / Max / Height */
+       if ( $Rescaled ) { $XMin = $XMinRescaled; $XMax = $XMaxRescaled; $ScaleHeight = $ScaleHeightRescaled; }
+
+       /* Compute rows size */
+       $Rows      = floor($ScaleHeight / $Result); if ( $Rows == 0 ) { $Rows = 1; }
+       $RowHeight = $ScaleHeight / $Rows;
+
+       /* Return the results */
+       $Scale["Rows"] = $Rows; $Scale["RowHeight"] = $RowHeight; $Scale["XMin"] = $XMin;  $Scale["XMax"] = $XMax;
+
+       /* Compute the needed decimals for the metric view to avoid repetition of the same X Axis labels */
+       if ( $Mode == AXIS_FORMAT_METRIC && $Format == NULL )
+        {
+         $Done = FALSE; $GoodDecimals = 0;
+         for($Decimals=0;$Decimals<=10;$Decimals++)
+          {
+           if ( !$Done )
+            {
+             $LastLabel = "zob"; $ScaleOK = TRUE;
+             for($i=0;$i<=$Rows;$i++)
+              {
+               $Value = $XMin + $i*$RowHeight;
+               $Label = $this->scaleFormat($Value,AXIS_FORMAT_METRIC,$Decimals);
+
+               if ( $LastLabel == $Label ) { $ScaleOK = FALSE; }
+               $LastLabel = $Label;
+              }
+             if ( $ScaleOK ) { $Done = TRUE; $GoodDecimals = $Decimals; }
+            }
+          }
+
+         $Scale["Format"] = $GoodDecimals;
+        }
+      }
+     else
+      {
+       /* If all values are the same we keep a +1/-1 scale */
+       $Rows = 2; $XMin = $XMax-1; $XMax = $XMax+1; $RowHeight = 1;
+
+       /* Return the results */
+       $Scale["Rows"] = $Rows; $Scale["RowHeight"] = $RowHeight; $Scale["XMin"] = $XMin;  $Scale["XMax"] = $XMax;
+      }
+
+     return($Scale);
+    }
+
+   function modulo($Value1,$Value2)
+    {
+     if (floor($Value2) == 0) { return(0); }
+     if (floor($Value2) != 0) { return($Value1 % $Value2); }
+
+     $MinValue = min($Value1,$Value2); $Factor = 10;
+     while ( floor($MinValue*$Factor) == 0 )
+      { $Factor = $Factor * 10; }
+
+     return(($Value1*$Factor) % ($Value2*$Factor));
+    }
+
+   /* Draw an X threshold */
+   function drawXThreshold($Value,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : 255;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 50;
+     $Weight		= isset($Format["Weight"]) ? $Format["Weight"] : NULL;
+     $Ticks		= isset($Format["Ticks"]) ? $Format["Ticks"] : 6;
+     $Wide		= isset($Format["Wide"]) ? $Format["Wide"] : FALSE;
+     $WideFactor	= isset($Format["WideFactor"]) ? $Format["WideFactor"] : 5;
+     $WriteCaption	= isset($Format["WriteCaption"]) ? $Format["WriteCaption"] : FALSE;
+     $Caption		= isset($Format["Caption"]) ? $Format["Caption"] : NULL;
+     $CaptionAlign	= isset($Format["CaptionAlign"]) ? $Format["CaptionAlign"] : CAPTION_LEFT_TOP;
+     $CaptionOffset     = isset($Format["CaptionOffset"]) ? $Format["CaptionOffset"] : 5;
+     $CaptionR		= isset($Format["CaptionR"]) ? $Format["CaptionR"] : 255;
+     $CaptionG		= isset($Format["CaptionG"]) ? $Format["CaptionG"] : 255;
+     $CaptionB		= isset($Format["CaptionB"]) ? $Format["CaptionB"] : 255;
+     $CaptionAlpha	= isset($Format["CaptionAlpha"]) ? $Format["CaptionAlpha"] : 100;
+     $DrawBox		= isset($Format["DrawBox"]) ? $Format["DrawBox"] : TRUE;
+     $DrawBoxBorder	= isset($Format["DrawBoxBorder"]) ? $Format["DrawBoxBorder"] : FALSE;
+     $BorderOffset	= isset($Format["BorderOffset"]) ? $Format["BorderOffset"] : 3;
+     $BoxRounded	= isset($Format["BoxRounded"]) ? $Format["BoxRounded"] : TRUE;
+     $RoundedRadius	= isset($Format["RoundedRadius"]) ? $Format["RoundedRadius"] : 3;
+     $BoxR		= isset($Format["BoxR"]) ? $Format["BoxR"] : 0;
+     $BoxG		= isset($Format["BoxG"]) ? $Format["BoxG"] : 0;
+     $BoxB		= isset($Format["BoxB"]) ? $Format["BoxB"] : 0;
+     $BoxAlpha		= isset($Format["BoxAlpha"]) ? $Format["BoxAlpha"] : 30;
+     $BoxSurrounding	= isset($Format["BoxSurrounding"]) ? $Format["BoxSurrounding"] : "";
+     $BoxBorderR	= isset($Format["BoxBorderR"]) ? $Format["BoxBorderR"] : 255;
+     $BoxBorderG	= isset($Format["BoxBorderG"]) ? $Format["BoxBorderG"] : 255;
+     $BoxBorderB	= isset($Format["BoxBorderB"]) ? $Format["BoxBorderB"] : 255;
+     $BoxBorderAlpha	= isset($Format["BoxBorderAlpha"]) ? $Format["BoxBorderAlpha"] : 100;
+     $ValueIsLabel	= isset($Format["ValueIsLabel"]) ? $Format["ValueIsLabel"] : FALSE;
+
+     $Data           = $this->DataSet->getData();
+     $AbscissaMargin = $this->getAbscissaMargin($Data);
+     $XScale         = $this->scaleGetXSettings();
+
+     if ( is_array($Value) ) { foreach ($Value as $Key => $ID) { $this->drawXThreshold($ID,$Format); } return(0); }
+
+     if ( $ValueIsLabel )
+      {
+       $Format["ValueIsLabel"] = FALSE;
+       foreach($Data["Series"][$Data["Abscissa"]]["Data"] as $Key => $SerieValue)
+        { if ( $SerieValue == $Value ) { $this->drawXThreshold($Key,$Format); } }
+
+       return(0);
+      }
+
+     $CaptionSettings = array("DrawBox"=>$DrawBox,"DrawBoxBorder"=>$DrawBoxBorder,"BorderOffset"=>$BorderOffset,"BoxRounded"=>$BoxRounded,"RoundedRadius"=>$RoundedRadius,
+                              "BoxR"=>$BoxR,"BoxG"=>$BoxG,"BoxB"=>$BoxB,"BoxAlpha"=>$BoxAlpha,"BoxSurrounding"=>$BoxSurrounding,
+                              "BoxBorderR"=>$BoxBorderR,"BoxBorderG"=>$BoxBorderG,"BoxBorderB"=>$BoxBorderB,"BoxBorderAlpha"=>$BoxBorderAlpha,
+                              "R"=>$CaptionR,"G"=>$CaptionG,"B"=>$CaptionB,"Alpha"=>$CaptionAlpha);
+
+     if ( $Caption == NULL )
+      {
+       if ( isset($Data["Abscissa"]) )
+        {
+         if ( isset($Data["Series"][$Data["Abscissa"]]["Data"][$Value]) )
+          $Caption = $Data["Series"][$Data["Abscissa"]]["Data"][$Value];
+         else
+          $Caption = $Value;
+        }
+       else
+        $Caption = $Value;
+      }
+
+     if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+      {
+       $XStep = (($this->GraphAreaX2 - $this->GraphAreaX1) - $XScale[0] *2 ) / $XScale[1];
+       $XPos  = $this->GraphAreaX1 + $XScale[0] + $XStep * $Value;
+       $YPos1 = $this->GraphAreaY1 + $Data["YMargin"];
+       $YPos2 = $this->GraphAreaY2 - $Data["YMargin"];
+
+       if ( $XPos >= $this->GraphAreaX1 + $AbscissaMargin && $XPos <= $this->GraphAreaX2 - $AbscissaMargin )
+        {
+         $this->drawLine($XPos,$YPos1,$XPos,$YPos2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+         if ( $Wide )
+          {
+           $this->drawLine($XPos-1,$YPos1,$XPos-1,$YPos2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+           $this->drawLine($XPos+1,$YPos1,$XPos+1,$YPos2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+          }
+
+         if ( $WriteCaption )
+          {
+           if ( $CaptionAlign == CAPTION_LEFT_TOP )
+            { $Y = $YPos1 + $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_TOPMIDDLE; }
+           else 
+            { $Y = $YPos2 - $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_BOTTOMMIDDLE; }
+           
+           $this->drawText($XPos,$Y,$Caption,$CaptionSettings);
+          }
+
+         return(array("X"=>$XPos));
+        }
+      }
+     elseif( $Data["Orientation"] == SCALE_POS_TOPBOTTOM )
+      {
+       $XStep = (($this->GraphAreaY2 - $this->GraphAreaY1) - $XScale[0] *2 ) / $XScale[1];
+       $XPos  = $this->GraphAreaY1 + $XScale[0] + $XStep * $Value;
+       $YPos1 = $this->GraphAreaX1 + $Data["YMargin"];
+       $YPos2 = $this->GraphAreaX2 - $Data["YMargin"];
+
+       if ( $XPos >= $this->GraphAreaY1 + $AbscissaMargin && $XPos <= $this->GraphAreaY2 - $AbscissaMargin )
+        {
+         $this->drawLine($YPos1,$XPos,$YPos2,$XPos,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+         if ( $Wide )
+          {
+           $this->drawLine($YPos1,$XPos-1,$YPos2,$XPos-1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+           $this->drawLine($YPos1,$XPos+1,$YPos2,$XPos+1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+          }
+
+         if ( $WriteCaption )
+          {
+           if ( $CaptionAlign == CAPTION_LEFT_TOP )
+            { $Y = $YPos1 + $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_MIDDLELEFT; }
+           else 
+            { $Y = $YPos2 - $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_MIDDLERIGHT; }
+           
+           $this->drawText($Y,$XPos,$Caption,$CaptionSettings);
+          }
+
+         return(array("X"=>$XPos));
+        }
+      }
+    }
+
+   /* Draw an X threshold area */
+   function drawXThresholdArea($Value1,$Value2,$Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : 255;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 20;
+     $Border    = isset($Format["Border"]) ? $Format["Border"] : TRUE;
+     $BorderR   = isset($Format["BorderR"]) ? $Format["BorderR"] : $R;
+     $BorderG   = isset($Format["BorderG"]) ? $Format["BorderG"] : $G;
+     $BorderB   = isset($Format["BorderB"]) ? $Format["BorderB"] : $B;
+     $BorderAlpha = isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : $Alpha + 20;
+     $BorderTicks = isset($Format["BorderTicks"]) ? $Format["BorderTicks"] : 2;
+     $AreaName 	= isset($Format["AreaName"]) ? $Format["AreaName"] : NULL;
+     $NameAngle	= isset($Format["NameAngle"]) ? $Format["NameAngle"] : ZONE_NAME_ANGLE_AUTO;
+     $NameR	= isset($Format["NameR"]) ? $Format["NameR"] : 255;
+     $NameG	= isset($Format["NameG"]) ? $Format["NameG"] : 255;
+     $NameB	= isset($Format["NameB"]) ? $Format["NameB"] : 255;
+     $NameAlpha	= isset($Format["NameAlpha"]) ? $Format["NameAlpha"] : 100;
+     $DisableShadowOnArea = isset($Format["DisableShadowOnArea"]) ? $Format["DisableShadowOnArea"] : TRUE;
+
+     $RestoreShadow = $this->Shadow;
+     if ( $DisableShadowOnArea && $this->Shadow ) { $this->Shadow = FALSE; }
+
+     if ($BorderAlpha >100) { $BorderAlpha = 100;}
+
+     $Data           = $this->DataSet->getData();
+     $XScale         = $this->scaleGetXSettings();
+     $AbscissaMargin = $this->getAbscissaMargin($Data);
+
+     if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+      {
+       $XStep = (($this->GraphAreaX2 - $this->GraphAreaX1) - $XScale[0] *2 ) / $XScale[1];
+       $XPos1 = $this->GraphAreaX1 + $XScale[0] + $XStep * $Value1;
+       $XPos2 = $this->GraphAreaX1 + $XScale[0] + $XStep * $Value2;
+       $YPos1 = $this->GraphAreaY1 + $Data["YMargin"];
+       $YPos2 = $this->GraphAreaY2 - $Data["YMargin"];
+
+       if ( $XPos1 < $this->GraphAreaX1 + $XScale[0] ) { $XPos1 = $this->GraphAreaX1 + $XScale[0]; }
+       if ( $XPos1 > $this->GraphAreaX2 - $XScale[0] ) { $XPos1 = $this->GraphAreaX2 - $XScale[0]; }
+       if ( $XPos2 < $this->GraphAreaX1 + $XScale[0] ) { $XPos2 = $this->GraphAreaX1 + $XScale[0]; }
+       if ( $XPos2 > $this->GraphAreaX2 - $XScale[0] ) { $XPos2 = $this->GraphAreaX2 - $XScale[0]; }
+
+       $this->drawFilledRectangle($XPos1,$YPos1,$XPos2,$YPos2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+       if ( $Border )
+        {
+         $this->drawLine($XPos1,$YPos1,$XPos1,$YPos2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+         $this->drawLine($XPos2,$YPos1,$XPos2,$YPos2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+        }
+
+       if ( $AreaName != NULL )
+        {
+         $XPos = ($XPos2-$XPos1)/2 + $XPos1;
+         $YPos = ($YPos2-$YPos1)/2 + $YPos1;
+
+         if ( $NameAngle == ZONE_NAME_ANGLE_AUTO )
+          {
+           $TxtPos   = $this->getTextBox($XPos,$YPos,$this->FontName,$this->FontSize,0,$AreaName);
+           $TxtWidth = $TxtPos[1]["X"] - $TxtPos[0]["X"];
+           if ( abs($XPos2 - $XPos1) > $TxtWidth ) { $NameAngle = 0; } else { $NameAngle = 90; }
+          }
+         $this->Shadow = $RestoreShadow;
+         $this->drawText($XPos,$YPos,$AreaName,array("R"=>$NameR,"G"=>$NameG,"B"=>$NameB,"Alpha"=>$NameAlpha,"Angle"=>$NameAngle,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
+         if ( $DisableShadowOnArea ) { $this->Shadow = FALSE; }
+        }
+
+       $this->Shadow = $RestoreShadow;
+       return(array("X1"=>$XPos1,"X2"=>$XPos2));
+      }
+     elseif ( $Data["Orientation"] == SCALE_POS_TOPBOTTOM )
+      {
+       $XStep = (($this->GraphAreaY2 - $this->GraphAreaY1) - $XScale[0] *2 ) / $XScale[1];
+       $XPos1 = $this->GraphAreaY1 + $XScale[0] + $XStep * $Value1;
+       $XPos2 = $this->GraphAreaY1 + $XScale[0] + $XStep * $Value2;
+       $YPos1 = $this->GraphAreaX1 + $Data["YMargin"];
+       $YPos2 = $this->GraphAreaX2 - $Data["YMargin"];
+
+       if ( $XPos1 < $this->GraphAreaY1 + $XScale[0] ) { $XPos1 = $this->GraphAreaY1 + $XScale[0]; }
+       if ( $XPos1 > $this->GraphAreaY2 - $XScale[0] ) { $XPos1 = $this->GraphAreaY2 - $XScale[0]; }
+       if ( $XPos2 < $this->GraphAreaY1 + $XScale[0] ) { $XPos2 = $this->GraphAreaY1 + $XScale[0]; }
+       if ( $XPos2 > $this->GraphAreaY2 - $XScale[0] ) { $XPos2 = $this->GraphAreaY2 - $XScale[0]; }
+
+       $this->drawFilledRectangle($YPos1,$XPos1,$YPos2,$XPos2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+       if ( $Border )
+        {
+         $this->drawLine($YPos1,$XPos1,$YPos2,$XPos1,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+         $this->drawLine($YPos1,$XPos2,$YPos2,$XPos2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+        }
+
+       if ( $AreaName != NULL )
+        {
+         $XPos = ($XPos2-$XPos1)/2 + $XPos1;
+         $YPos = ($YPos2-$YPos1)/2 + $YPos1;
+
+         $this->Shadow = $RestoreShadow;
+         $this->drawText($YPos,$XPos,$AreaName,array("R"=>$NameR,"G"=>$NameG,"B"=>$NameB,"Alpha"=>$NameAlpha,"Angle"=>0,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
+         if ( $DisableShadowOnArea ) { $this->Shadow = FALSE; }
+        }
+
+       $this->Shadow = $RestoreShadow;
+       return(array("X1"=>$XPos1,"X2"=>$XPos2));
+      }
+    }
+
+   /* Draw an Y threshold with the computed scale */
+   function drawThreshold($Value,$Format="")
+    {
+     $AxisID		= isset($Format["AxisID"]) ? $Format["AxisID"] : 0;
+     $R			= isset($Format["R"]) ? $Format["R"] : 255;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 50;
+     $Weight		= isset($Format["Weight"]) ? $Format["Weight"] : NULL;
+     $Ticks		= isset($Format["Ticks"]) ? $Format["Ticks"] : 6;
+     $Wide		= isset($Format["Wide"]) ? $Format["Wide"] : FALSE;
+     $WideFactor	= isset($Format["WideFactor"]) ? $Format["WideFactor"] : 5;
+     $WriteCaption	= isset($Format["WriteCaption"]) ? $Format["WriteCaption"] : FALSE;
+     $Caption		= isset($Format["Caption"]) ? $Format["Caption"] : NULL;
+     $CaptionAlign	= isset($Format["CaptionAlign"]) ? $Format["CaptionAlign"] : CAPTION_LEFT_TOP;
+     $CaptionOffset     = isset($Format["CaptionOffset"]) ? $Format["CaptionOffset"] : 10;
+     $CaptionR		= isset($Format["CaptionR"]) ? $Format["CaptionR"] : 255;
+     $CaptionG		= isset($Format["CaptionG"]) ? $Format["CaptionG"] : 255;
+     $CaptionB		= isset($Format["CaptionB"]) ? $Format["CaptionB"] : 255;
+     $CaptionAlpha	= isset($Format["CaptionAlpha"]) ? $Format["CaptionAlpha"] : 100;
+     $DrawBox		= isset($Format["DrawBox"]) ? $Format["DrawBox"] : TRUE;
+     $DrawBoxBorder	= isset($Format["DrawBoxBorder"]) ? $Format["DrawBoxBorder"] : FALSE;
+     $BorderOffset	= isset($Format["BorderOffset"]) ? $Format["BorderOffset"] : 5;
+     $BoxRounded	= isset($Format["BoxRounded"]) ? $Format["BoxRounded"] : TRUE;
+     $RoundedRadius	= isset($Format["RoundedRadius"]) ? $Format["RoundedRadius"] : 3;
+     $BoxR		= isset($Format["BoxR"]) ? $Format["BoxR"] : 0;
+     $BoxG		= isset($Format["BoxG"]) ? $Format["BoxG"] : 0;
+     $BoxB		= isset($Format["BoxB"]) ? $Format["BoxB"] : 0;
+     $BoxAlpha		= isset($Format["BoxAlpha"]) ? $Format["BoxAlpha"] : 20;
+     $BoxSurrounding	= isset($Format["BoxSurrounding"]) ? $Format["BoxSurrounding"] : "";
+     $BoxBorderR	= isset($Format["BoxBorderR"]) ? $Format["BoxBorderR"] : 255;
+     $BoxBorderG	= isset($Format["BoxBorderG"]) ? $Format["BoxBorderG"] : 255;
+     $BoxBorderB	= isset($Format["BoxBorderB"]) ? $Format["BoxBorderB"] : 255;
+     $BoxBorderAlpha	= isset($Format["BoxBorderAlpha"]) ? $Format["BoxBorderAlpha"] : 100;
+     $NoMargin		= isset($Format["NoMargin"]) ? $Format["NoMargin"] : FALSE;
+
+     if ( is_array($Value) ) { foreach ($Value as $Key => $ID) { $this->drawThreshold($ID,$Format); } return(0); }
+
+     $CaptionSettings = array("DrawBox"=>$DrawBox,"DrawBoxBorder"=>$DrawBoxBorder,"BorderOffset"=>$BorderOffset,"BoxRounded"=>$BoxRounded,"RoundedRadius"=>$RoundedRadius,
+                              "BoxR"=>$BoxR,"BoxG"=>$BoxG,"BoxB"=>$BoxB,"BoxAlpha"=>$BoxAlpha,"BoxSurrounding"=>$BoxSurrounding,
+                              "BoxBorderR"=>$BoxBorderR,"BoxBorderG"=>$BoxBorderG,"BoxBorderB"=>$BoxBorderB,"BoxBorderAlpha"=>$BoxBorderAlpha,
+                              "R"=>$CaptionR,"G"=>$CaptionG,"B"=>$CaptionB,"Alpha"=>$CaptionAlpha);
+
+     $Data           = $this->DataSet->getData();
+     $AbscissaMargin = $this->getAbscissaMargin($Data);
+
+     if ( $NoMargin ) { $AbscissaMargin = 0; }
+     if ( !isset($Data["Axis"][$AxisID]) ) { return(-1); }
+     if ( $Caption == NULL ) { $Caption = $Value; }
+
+     if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+      {
+       $YPos = $this->scaleComputeY($Value,array("AxisID"=>$AxisID));
+       if ( $YPos >= $this->GraphAreaY1+$Data["Axis"][$AxisID]["Margin"] && $YPos <= $this->GraphAreaY2-$Data["Axis"][$AxisID]["Margin"] )
+        {
+         $X1 = $this->GraphAreaX1 + $AbscissaMargin;
+         $X2 = $this->GraphAreaX2 - $AbscissaMargin;
+
+         $this->drawLine($X1,$YPos,$X2,$YPos,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+         if ( $Wide )
+          {
+           $this->drawLine($X1,$YPos-1,$X2,$YPos-1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+           $this->drawLine($X1,$YPos+1,$X2,$YPos+1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+          }
+
+         if ( $WriteCaption )
+          {
+           if ( $CaptionAlign == CAPTION_LEFT_TOP )
+            { $X = $X1 + $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_MIDDLELEFT; }
+           else 
+            { $X = $X2 - $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_MIDDLERIGHT; }
+           
+           $this->drawText($X,$YPos,$Caption,$CaptionSettings);
+          }
+        }
+
+       return(array("Y"=>$YPos));
+      }
+
+     if ( $Data["Orientation"] == SCALE_POS_TOPBOTTOM )
+      {
+       $XPos = $this->scaleComputeY($Value,array("AxisID"=>$AxisID));
+       if ( $XPos >= $this->GraphAreaX1+$Data["Axis"][$AxisID]["Margin"] && $XPos <= $this->GraphAreaX2-$Data["Axis"][$AxisID]["Margin"] )
+        {
+         $Y1 = $this->GraphAreaY1 + $AbscissaMargin;
+         $Y2 = $this->GraphAreaY2 - $AbscissaMargin;
+
+         $this->drawLine($XPos,$Y1,$XPos,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+         if ( $Wide )
+          {
+           $this->drawLine($XPos-1,$Y1,$XPos-1,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+           $this->drawLine($XPos+1,$Y1,$XPos+1,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+          }
+
+         if ( $WriteCaption )
+          {
+           if ( $CaptionAlign == CAPTION_LEFT_TOP )
+            { $Y = $Y1 + $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_TOPMIDDLE; }
+           else 
+            { $Y = $Y2 - $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_BOTTOMMIDDLE; }
+
+           $CaptionSettings["Align"] = TEXT_ALIGN_TOPMIDDLE;
+           $this->drawText($XPos,$Y,$Caption,$CaptionSettings);
+          }
+        }
+
+       return(array("Y"=>$XPos));
+      }
+    }
+
+   /* Draw a threshold with the computed scale */
+   function drawThresholdArea($Value1,$Value2,$Format="")
+    {
+     $AxisID	= isset($Format["AxisID"]) ? $Format["AxisID"] : 0;
+     $R		= isset($Format["R"]) ? $Format["R"] : 255;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 20;
+     $Border    = isset($Format["Border"]) ? $Format["Border"] : TRUE;
+     $BorderR   = isset($Format["BorderR"]) ? $Format["BorderR"] : $R;
+     $BorderG   = isset($Format["BorderG"]) ? $Format["BorderG"] : $G;
+     $BorderB   = isset($Format["BorderB"]) ? $Format["BorderB"] : $B;
+     $BorderAlpha = isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : $Alpha + 20;
+     $BorderTicks = isset($Format["BorderTicks"]) ? $Format["BorderTicks"] : 2;
+     $AreaName 	= isset($Format["AreaName"]) ? $Format["AreaName"] : NULL;
+     $NameAngle	= isset($Format["NameAngle"]) ? $Format["NameAngle"] : ZONE_NAME_ANGLE_AUTO;
+     $NameR	= isset($Format["NameR"]) ? $Format["NameR"] : 255;
+     $NameG	= isset($Format["NameG"]) ? $Format["NameG"] : 255;
+     $NameB	= isset($Format["NameB"]) ? $Format["NameB"] : 255;
+     $NameAlpha	= isset($Format["NameAlpha"]) ? $Format["NameAlpha"] : 100;
+     $DisableShadowOnArea = isset($Format["DisableShadowOnArea"]) ? $Format["DisableShadowOnArea"] : TRUE;
+     $NoMargin	= isset($Format["NoMargin"]) ? $Format["NoMargin"] : FALSE;
+
+     if ($Value1 > $Value2) { list($Value1, $Value2) = array($Value2, $Value1); }
+
+     $RestoreShadow = $this->Shadow;
+     if ( $DisableShadowOnArea && $this->Shadow ) { $this->Shadow = FALSE; }
+
+     if ($BorderAlpha >100) { $BorderAlpha = 100;}
+
+     $Data           = $this->DataSet->getData();
+     $AbscissaMargin = $this->getAbscissaMargin($Data);
+
+     if ( $NoMargin ) { $AbscissaMargin = 0; }
+     if ( !isset($Data["Axis"][$AxisID]) ) { return(-1); }
+
+     if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+      {
+       $XPos1 = $this->GraphAreaX1 + $AbscissaMargin;
+       $XPos2 = $this->GraphAreaX2 - $AbscissaMargin;
+       $YPos1 = $this->scaleComputeY($Value1,array("AxisID"=>$AxisID));
+       $YPos2 = $this->scaleComputeY($Value2,array("AxisID"=>$AxisID));
+
+       if ( $YPos1 < $this->GraphAreaY1+$Data["Axis"][$AxisID]["Margin"] ) { $YPos1 = $this->GraphAreaY1+$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $YPos1 > $this->GraphAreaY2-$Data["Axis"][$AxisID]["Margin"] ) { $YPos1 = $this->GraphAreaY2-$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $YPos2 < $this->GraphAreaY1+$Data["Axis"][$AxisID]["Margin"] ) { $YPos2 = $this->GraphAreaY1+$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $YPos2 > $this->GraphAreaY2-$Data["Axis"][$AxisID]["Margin"] ) { $YPos2 = $this->GraphAreaY2-$Data["Axis"][$AxisID]["Margin"]; }
+
+       $this->drawFilledRectangle($XPos1,$YPos1,$XPos2,$YPos2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+       if ( $Border )
+        {
+         $this->drawLine($XPos1,$YPos1,$XPos2,$YPos1,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+         $this->drawLine($XPos1,$YPos2,$XPos2,$YPos2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+        }
+
+       if ( $AreaName != NULL )
+        {
+         $XPos = ($XPos2-$XPos1)/2 + $XPos1;
+         $YPos = ($YPos2-$YPos1)/2 + $YPos1;
+         $this->Shadow = $RestoreShadow;
+         $this->drawText($XPos,$YPos,$AreaName,array("R"=>$NameR,"G"=>$NameG,"B"=>$NameB,"Alpha"=>$NameAlpha,"Angle"=>0,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
+         if ( $DisableShadowOnArea ) { $this->Shadow = FALSE; }
+        }
+
+       $this->Shadow = $RestoreShadow;
+       return(array("Y1"=>$YPos1,"Y2"=>$YPos2));
+      }
+     elseif ( $Data["Orientation"] == SCALE_POS_TOPBOTTOM )
+      {
+       $YPos1 = $this->GraphAreaY1 + $AbscissaMargin;
+       $YPos2 = $this->GraphAreaY2 - $AbscissaMargin;
+       $XPos1 = $this->scaleComputeY($Value1,array("AxisID"=>$AxisID));
+       $XPos2 = $this->scaleComputeY($Value2,array("AxisID"=>$AxisID));
+
+       if ( $XPos1 < $this->GraphAreaX1+$Data["Axis"][$AxisID]["Margin"] ) { $XPos1 = $this->GraphAreaX1+$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $XPos1 > $this->GraphAreaX2-$Data["Axis"][$AxisID]["Margin"] ) { $XPos1 = $this->GraphAreaX2-$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $XPos2 < $this->GraphAreaX1+$Data["Axis"][$AxisID]["Margin"] ) { $XPos2 = $this->GraphAreaX1+$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $XPos2 > $this->GraphAreaX2-$Data["Axis"][$AxisID]["Margin"] ) { $XPos2 = $this->GraphAreaX2-$Data["Axis"][$AxisID]["Margin"]; }
+
+       $this->drawFilledRectangle($XPos1,$YPos1,$XPos2,$YPos2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+       if ( $Border )
+        {
+         $this->drawLine($XPos1,$YPos1,$XPos1,$YPos2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+         $this->drawLine($XPos2,$YPos1,$XPos2,$YPos2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+        }
+
+       if ( $AreaName != NULL )
+        {
+         $XPos = ($YPos2-$YPos1)/2 + $YPos1;
+         $YPos = ($XPos2-$XPos1)/2 + $XPos1;
+
+         if ( $NameAngle == ZONE_NAME_ANGLE_AUTO )
+          {
+           $TxtPos   = $this->getTextBox($XPos,$YPos,$this->FontName,$this->FontSize,0,$AreaName);
+           $TxtWidth = $TxtPos[1]["X"] - $TxtPos[0]["X"];
+           if ( abs($XPos2 - $XPos1) > $TxtWidth ) { $NameAngle = 0; } else { $NameAngle = 90; }
+          }
+         $this->Shadow = $RestoreShadow;
+         $this->drawText($YPos,$XPos,$AreaName,array("R"=>$NameR,"G"=>$NameG,"B"=>$NameB,"Alpha"=>$NameAlpha,"Angle"=>$NameAngle,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
+         if ( $DisableShadowOnArea ) { $this->Shadow = FALSE; }
+        }
+
+       $this->Shadow = $RestoreShadow;
+       return(array("Y1"=>$XPos1,"Y2"=>$XPos2));
+      }
+    }
+
+   function scaleGetXSettings()
+    {
+     $Data = $this->DataSet->getData();
+     foreach($Data["Axis"] as $AxisID => $Settings)
+      {
+       if ( $Settings["Identity"] == AXIS_X )
+        {
+         $Rows = $Settings["Rows"];
+
+         return(array($Settings["Margin"],$Rows));
+        }
+      }
+    }
+
+   function scaleComputeY($Values,$Option="",$ReturnOnly0Height=FALSE)
+    {
+     $AxisID	= isset($Option["AxisID"]) ? $Option["AxisID"] : 0;
+     $SerieName	= isset($Option["SerieName"]) ? $Option["SerieName"] : NULL;
+
+     $Data = $this->DataSet->getData();
+     if ( !isset($Data["Axis"][$AxisID]) ) { return(-1); }
+
+     if ( $SerieName != NULL ) { $AxisID = $Data["Series"][$SerieName]["Axis"]; }
+     if ( !is_array($Values) ) { $tmp = $Values; $Values = ""; $Values[0] = $tmp; }
+
+     $Result = "";
+     if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+      {
+       $Height      = ($this->GraphAreaY2 - $this->GraphAreaY1) - $Data["Axis"][$AxisID]["Margin"]*2;
+       $ScaleHeight = $Data["Axis"][$AxisID]["ScaleMax"] - $Data["Axis"][$AxisID]["ScaleMin"];
+       $Step        = $Height / $ScaleHeight;
+
+       if ( $ReturnOnly0Height )
+        { foreach($Values as $Key => $Value) { if ( $Value == VOID ) { $Result[] = VOID; } else { $Result[] = $Step * $Value; } } }
+       else
+        { foreach($Values as $Key => $Value) { if ( $Value == VOID ) { $Result[] = VOID; } else { $Result[] = $this->GraphAreaY2 - $Data["Axis"][$AxisID]["Margin"] - ($Step * ($Value-$Data["Axis"][$AxisID]["ScaleMin"])); } } }
+      }
+     else
+      {
+       $Width      = ($this->GraphAreaX2 - $this->GraphAreaX1) - $Data["Axis"][$AxisID]["Margin"]*2;
+       $ScaleWidth = $Data["Axis"][$AxisID]["ScaleMax"] - $Data["Axis"][$AxisID]["ScaleMin"];
+       $Step       = $Width / $ScaleWidth;
+
+       if ( $ReturnOnly0Height )
+        { foreach($Values as $Key => $Value) { if ( $Value == VOID ) { $Result[] = VOID; } else { $Result[] = $Step * $Value; } } }
+       else
+        { foreach($Values as $Key => $Value) { if ( $Value == VOID ) { $Result[] = VOID; } else { $Result[] = $this->GraphAreaX1 + $Data["Axis"][$AxisID]["Margin"] + ($Step * ($Value-$Data["Axis"][$AxisID]["ScaleMin"])); } } }
+      }
+
+     if ( count($Result) == 1 )
+      return($Result[0]);
+     else
+      return($Result);
+    }
+
+   /* Format the axis values */
+   function scaleFormat($Value,$Mode=NULL,$Format=NULL,$Unit=NULL)
+    {
+     if ( $Value == VOID ) { return(""); }
+
+     if ( $Mode == AXIS_FORMAT_CUSTOM )
+      { if ( function_exists($Format) ) { return(call_user_func($Format,$Value)); } }
+
+     if ( $Mode == AXIS_FORMAT_DATE )
+      { if ( $Format == NULL ) { $Pattern = "d/m/Y"; } else { $Pattern = $Format; } return(date($Pattern,$Value)); }
+
+     if ( $Mode == AXIS_FORMAT_TIME )
+      { if ( $Format == NULL ) { $Pattern = "H:i:s"; } else { $Pattern = $Format; } return(date($Pattern,$Value)); }
+
+     if ( $Mode == AXIS_FORMAT_CURRENCY )
+      { return($Format.number_format($Value,2)); }
+
+     if ( $Mode == AXIS_FORMAT_METRIC )
+      {
+       if (abs($Value) > 1000000000)
+        return(round($Value/1000000000,$Format)."g".$Unit);
+       if (abs($Value) > 1000000)
+        return(round($Value/1000000,$Format)."m".$Unit);
+       elseif (abs($Value) >= 1000)
+        return(round($Value/1000,$Format)."k".$Unit);
+       
+      }
+     return($Value.$Unit);
+    }
+
+   /* Write Max value on a chart */
+   function writeBounds($Type=BOUND_BOTH,$Format=NULL)
+    {
+     $MaxLabelTxt	= isset($Format["MaxLabelTxt"]) ? $Format["MaxLabelTxt"] : "max=";
+     $MinLabelTxt	= isset($Format["MinLabelTxt"]) ? $Format["MinLabelTxt"] : "min=";
+     $Decimals		= isset($Format["Decimals"]) ? $Format["Decimals"] : 1;
+     $ExcludedSeries	= isset($Format["ExcludedSeries"]) ? $Format["ExcludedSeries"] : "";
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 4;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $MaxDisplayR	= isset($Format["MaxDisplayR"]) ? $Format["MaxDisplayR"] : 0;
+     $MaxDisplayG	= isset($Format["MaxDisplayG"]) ? $Format["MaxDisplayG"] : 0;
+     $MaxDisplayB	= isset($Format["MaxDisplayB"]) ? $Format["MaxDisplayB"] : 0;
+     $MinDisplayR	= isset($Format["MinDisplayR"]) ? $Format["MinDisplayR"] : 255;
+     $MinDisplayG	= isset($Format["MinDisplayG"]) ? $Format["MinDisplayG"] : 255;
+     $MinDisplayB	= isset($Format["MinDisplayB"]) ? $Format["MinDisplayB"] : 255;
+     $MinLabelPos	= isset($Format["MinLabelPos"]) ? $Format["MinLabelPos"] : BOUND_LABEL_POS_AUTO;
+     $MaxLabelPos	= isset($Format["MaxLabelPos"]) ? $Format["MaxLabelPos"] : BOUND_LABEL_POS_AUTO;
+     $DrawBox		= isset($Format["DrawBox"]) ? $Format["DrawBox"] : TRUE;
+     $DrawBoxBorder	= isset($Format["DrawBoxBorder"]) ? $Format["DrawBoxBorder"] : FALSE;
+     $BorderOffset	= isset($Format["BorderOffset"]) ? $Format["BorderOffset"] : 5;
+     $BoxRounded	= isset($Format["BoxRounded"]) ? $Format["BoxRounded"] : TRUE;
+     $RoundedRadius	= isset($Format["RoundedRadius"]) ? $Format["RoundedRadius"] : 3;
+     $BoxR		= isset($Format["BoxR"]) ? $Format["BoxR"] : 0;
+     $BoxG		= isset($Format["BoxG"]) ? $Format["BoxG"] : 0;
+     $BoxB		= isset($Format["BoxB"]) ? $Format["BoxB"] : 0;
+     $BoxAlpha		= isset($Format["BoxAlpha"]) ? $Format["BoxAlpha"] : 20;
+     $BoxSurrounding	= isset($Format["BoxSurrounding"]) ? $Format["BoxSurrounding"] : "";
+     $BoxBorderR	= isset($Format["BoxBorderR"]) ? $Format["BoxBorderR"] : 255;
+     $BoxBorderG	= isset($Format["BoxBorderG"]) ? $Format["BoxBorderG"] : 255;
+     $BoxBorderB	= isset($Format["BoxBorderB"]) ? $Format["BoxBorderB"] : 255;
+     $BoxBorderAlpha	= isset($Format["BoxBorderAlpha"]) ? $Format["BoxBorderAlpha"] : 100;
+
+     $CaptionSettings = array("DrawBox"=>$DrawBox,"DrawBoxBorder"=>$DrawBoxBorder,"BorderOffset"=>$BorderOffset,"BoxRounded"=>$BoxRounded,"RoundedRadius"=>$RoundedRadius,
+                              "BoxR"=>$BoxR,"BoxG"=>$BoxG,"BoxB"=>$BoxB,"BoxAlpha"=>$BoxAlpha,"BoxSurrounding"=>$BoxSurrounding,
+                              "BoxBorderR"=>$BoxBorderR,"BoxBorderG"=>$BoxBorderG,"BoxBorderB"=>$BoxBorderB,"BoxBorderAlpha"=>$BoxBorderAlpha);
+
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     $Data = $this->DataSet->getData();
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] && !isset($ExcludedSeries[$SerieName]))
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"];
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $MinValue = $this->DataSet->getMin($SerieName);
+         $MaxValue = $this->DataSet->getMax($SerieName);
+
+         $MinPos = VOID; $MaxPos = VOID;
+         foreach($Serie["Data"] as $Key => $Value)
+          { 
+           if ( $Value == $MinValue && $MinPos == VOID ) { $MinPos = $Key; }
+           if ( $Value == $MaxValue ) { $MaxPos = $Key; }
+          }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           $XStep       = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs;
+           $X           = $this->GraphAreaX1 + $XMargin;
+           $SerieOffset = isset($Serie["XOffset"]) ? $Serie["XOffset"] : 0;
+
+           if ( $Type == BOUND_MAX || $Type == BOUND_BOTH )
+            {
+             if ( $MaxLabelPos == BOUND_LABEL_POS_TOP    || ( $MaxLabelPos ==  BOUND_LABEL_POS_AUTO && $MaxValue >= 0) ) { $YPos  = $PosArray[$MaxPos] - $DisplayOffset + 2; $Align = TEXT_ALIGN_BOTTOMMIDDLE; }
+             if ( $MaxLabelPos == BOUND_LABEL_POS_BOTTOM || ( $MaxLabelPos ==  BOUND_LABEL_POS_AUTO && $MaxValue < 0) ) { $YPos  = $PosArray[$MaxPos] + $DisplayOffset + 2; $Align = TEXT_ALIGN_TOPMIDDLE; }
+
+             $XPos  = $X + $MaxPos*$XStep + $SerieOffset;
+             $Label = $MaxLabelTxt.$this->scaleFormat(round($MaxValue,$Decimals),$Mode,$Format,$Unit);
+
+             $TxtPos  = $this->getTextBox($XPos,$YPos,$this->FontName,$this->FontSize,0,$Label);
+             $XOffset = 0; $YOffset = 0;
+             if ( $TxtPos[0]["X"] < $this->GraphAreaX1 ) { $XOffset = (($this->GraphAreaX1 - $TxtPos[0]["X"])/2); }
+             if ( $TxtPos[1]["X"] > $this->GraphAreaX2 ) { $XOffset = -(($TxtPos[1]["X"] - $this->GraphAreaX2)/2); }
+             if ( $TxtPos[2]["Y"] < $this->GraphAreaY1 ) { $YOffset = $this->GraphAreaY1 - $TxtPos[2]["Y"]; }
+             if ( $TxtPos[0]["Y"] > $this->GraphAreaY2 ) { $YOffset = -($TxtPos[0]["Y"] - $this->GraphAreaY2); }
+
+             $CaptionSettings["R"] = $MaxDisplayR; $CaptionSettings["G"] = $MaxDisplayG;
+             $CaptionSettings["B"] = $MaxDisplayB; $CaptionSettings["Align"] = $Align;
+
+             $this->drawText($XPos+$XOffset,$YPos+$YOffset,$Label,$CaptionSettings);
+            }
+
+           if ( $Type == BOUND_MIN || $Type == BOUND_BOTH )
+            {
+             if ( $MinLabelPos == BOUND_LABEL_POS_TOP    || ( $MinLabelPos ==  BOUND_LABEL_POS_AUTO && $MinValue >= 0) ) { $YPos  = $PosArray[$MinPos] - $DisplayOffset + 2; $Align = TEXT_ALIGN_BOTTOMMIDDLE; }
+             if ( $MinLabelPos == BOUND_LABEL_POS_BOTTOM || ( $MinLabelPos ==  BOUND_LABEL_POS_AUTO && $MinValue < 0) ) { $YPos  = $PosArray[$MinPos] + $DisplayOffset + 2; $Align = TEXT_ALIGN_TOPMIDDLE; }
+
+             $XPos  = $X + $MinPos*$XStep + $SerieOffset;
+             $Label = $MinLabelTxt.$this->scaleFormat(round($MinValue,$Decimals),$Mode,$Format,$Unit);
+
+             $TxtPos  = $this->getTextBox($XPos,$YPos,$this->FontName,$this->FontSize,0,$Label);
+             $XOffset = 0; $YOffset = 0;
+             if ( $TxtPos[0]["X"] < $this->GraphAreaX1 ) { $XOffset = (($this->GraphAreaX1 - $TxtPos[0]["X"])/2); }
+             if ( $TxtPos[1]["X"] > $this->GraphAreaX2 ) { $XOffset = -(($TxtPos[1]["X"] - $this->GraphAreaX2)/2); }
+             if ( $TxtPos[2]["Y"] < $this->GraphAreaY1 ) { $YOffset = $this->GraphAreaY1 - $TxtPos[2]["Y"]; }
+             if ( $TxtPos[0]["Y"] > $this->GraphAreaY2 ) { $YOffset = -($TxtPos[0]["Y"] - $this->GraphAreaY2); }
+
+             $CaptionSettings["R"] = $MinDisplayR; $CaptionSettings["G"] = $MinDisplayG;
+             $CaptionSettings["B"] = $MinDisplayB; $CaptionSettings["Align"] = $Align;
+
+             $this->drawText($XPos+$XOffset,$YPos-$DisplayOffset+$YOffset,$Label,$CaptionSettings);
+            }
+          }
+         else
+          {
+           $XStep       = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs;
+           $X           = $this->GraphAreaY1 + $XMargin;
+           $SerieOffset = isset($Serie["XOffset"]) ? $Serie["XOffset"] : 0;
+
+           if ( $Type == BOUND_MAX || $Type == BOUND_BOTH )
+            {
+             if ( $MaxLabelPos == BOUND_LABEL_POS_TOP    || ( $MaxLabelPos ==  BOUND_LABEL_POS_AUTO && $MaxValue >= 0) ) { $YPos  = $PosArray[$MaxPos] + $DisplayOffset + 2; $Align = TEXT_ALIGN_MIDDLELEFT; }
+             if ( $MaxLabelPos == BOUND_LABEL_POS_BOTTOM || ( $MaxLabelPos ==  BOUND_LABEL_POS_AUTO && $MaxValue < 0) ) { $YPos  = $PosArray[$MaxPos] - $DisplayOffset + 2; $Align = TEXT_ALIGN_MIDDLERIGHT; }
+
+             $XPos  = $X + $MaxPos*$XStep + $SerieOffset;
+             $Label = $MaxLabelTxt.$this->scaleFormat($MaxValue,$Mode,$Format,$Unit);
+
+             $TxtPos  = $this->getTextBox($YPos,$XPos,$this->FontName,$this->FontSize,0,$Label);
+             $XOffset = 0; $YOffset = 0;
+             if ( $TxtPos[0]["X"] < $this->GraphAreaX1 ) { $XOffset = $this->GraphAreaX1 - $TxtPos[0]["X"]; }
+             if ( $TxtPos[1]["X"] > $this->GraphAreaX2 ) { $XOffset = -($TxtPos[1]["X"] - $this->GraphAreaX2); }
+             if ( $TxtPos[2]["Y"] < $this->GraphAreaY1 ) { $YOffset = ($this->GraphAreaY1 - $TxtPos[2]["Y"])/2; }
+             if ( $TxtPos[0]["Y"] > $this->GraphAreaY2 ) { $YOffset = -(($TxtPos[0]["Y"] - $this->GraphAreaY2)/2);}
+
+             $CaptionSettings["R"] = $MaxDisplayR; $CaptionSettings["G"] = $MaxDisplayG;
+             $CaptionSettings["B"] = $MaxDisplayB; $CaptionSettings["Align"] = $Align;
+
+             $this->drawText($YPos+$XOffset,$XPos+$YOffset,$Label,$CaptionSettings);
+            }
+
+           if ( $Type == BOUND_MIN || $Type == BOUND_BOTH )
+            {
+             if ( $MinLabelPos == BOUND_LABEL_POS_TOP    || ( $MinLabelPos ==  BOUND_LABEL_POS_AUTO && $MinValue >= 0) ) { $YPos  = $PosArray[$MinPos] + $DisplayOffset + 2; $Align = TEXT_ALIGN_MIDDLELEFT; }
+             if ( $MinLabelPos == BOUND_LABEL_POS_BOTTOM || ( $MinLabelPos ==  BOUND_LABEL_POS_AUTO && $MinValue < 0) ) { $YPos  = $PosArray[$MinPos] - $DisplayOffset + 2; $Align = TEXT_ALIGN_MIDDLERIGHT; }
+
+             $XPos  = $X + $MinPos*$XStep + $SerieOffset;
+             $Label = $MinLabelTxt.$this->scaleFormat($MinValue,$Mode,$Format,$Unit);
+
+             $TxtPos  = $this->getTextBox($YPos,$XPos,$this->FontName,$this->FontSize,0,$Label);
+             $XOffset = 0; $YOffset = 0;
+             if ( $TxtPos[0]["X"] < $this->GraphAreaX1 ) { $XOffset = $this->GraphAreaX1 - $TxtPos[0]["X"]; }
+             if ( $TxtPos[1]["X"] > $this->GraphAreaX2 ) { $XOffset = -($TxtPos[1]["X"] - $this->GraphAreaX2); }
+             if ( $TxtPos[2]["Y"] < $this->GraphAreaY1 ) { $YOffset = ($this->GraphAreaY1 - $TxtPos[2]["Y"])/2; }
+             if ( $TxtPos[0]["Y"] > $this->GraphAreaY2 ) { $YOffset = -(($TxtPos[0]["Y"] - $this->GraphAreaY2)/2);}
+
+             $CaptionSettings["R"] = $MinDisplayR; $CaptionSettings["G"] = $MinDisplayG;
+             $CaptionSettings["B"] = $MinDisplayB; $CaptionSettings["Align"] = $Align;
+
+             $this->drawText($YPos+$XOffset,$XPos+$YOffset,$Label,$CaptionSettings);
+            }
+          }
+        }
+      }
+    }
+
+   /* Draw a plot chart */
+   function drawPlotChart($Format=NULL)
+    {
+     $PlotSize		= isset($Format["PlotSize"]) ? $Format["PlotSize"] : NULL;
+     $PlotBorder	= isset($Format["PlotBorder"]) ? $Format["PlotBorder"] : FALSE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 50;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 50;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 50;
+     $BorderAlpha	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : 30;
+     $BorderSize	= isset($Format["BorderSize"]) ? $Format["BorderSize"] : 2;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] : FALSE;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 4;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         if ( isset($Serie["Weight"]) ) { $SerieWeight = $Serie["Weight"] + 2; } else { $SerieWeight = 2; }
+         if ( $PlotSize != NULL ) { $SerieWeight = $PlotSize; }
+
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"];
+         if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
+         if ( isset($Serie["Picture"]) )
+          { $Picture = $Serie["Picture"]; list($PicWidth,$PicHeight,$PicType) = $this->getPicInfo($Picture); }
+         else { $Picture = NULL; $PicOffset = 0; }
+
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $AxisID	= $Serie["Axis"];
+         $Shape		= $Serie["Shape"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         if (isset($Serie["Description"])) { $SerieDescription = $Serie["Description"]; } else { $SerieDescription = $SerieName; }
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           if ( $Picture != NULL ) { $PicOffset = $PicHeight / 2; $SerieWeight = 0; }
+           $X = $this->GraphAreaX1 + $XMargin;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $DisplayValues ) 
+              $this->drawText($X,$Y-$DisplayOffset-$SerieWeight-$BorderSize-$PicOffset,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+
+             if ( $Y != VOID )
+              {
+               if ( $RecordImageMap ) { $this->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$SerieWeight,$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+               if ( $Picture != NULL )
+                { $this->drawFromPicture($PicType,$Picture,$X-$PicWidth/2,$Y-$PicHeight/2); }
+               else
+                { $this->drawShape($X,$Y,$Shape,$SerieWeight,$PlotBorder,$BorderSize,$R,$G,$B,$Alpha,$BorderR,$BorderG,$BorderB,$BorderAlpha); }
+              }
+             $X = $X + $XStep;
+            }
+          }
+         else
+          {
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           if ( $Picture != NULL ) { $PicOffset = $PicWidth / 2; $SerieWeight = 0; }
+           $Y = $this->GraphAreaY1 + $XMargin;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $DisplayValues ) 
+              $this->drawText($X+$DisplayOffset+$SerieWeight+$BorderSize+$PicOffset,$Y,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("Angle"=>270,"R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+
+             if ( $X != VOID )
+              {
+               if ( $RecordImageMap ) { $this->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$SerieWeight,$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+               if ( $Picture != NULL )
+                { $this->drawFromPicture($PicType,$Picture,$X-$PicWidth/2,$Y-$PicHeight/2); }
+               else
+                { $this->drawShape($X,$Y,$Shape,$SerieWeight,$PlotBorder,$BorderSize,$R,$G,$B,$Alpha,$BorderR,$BorderG,$BorderB,$BorderAlpha); }
+              }
+             $Y = $Y + $YStep;
+            }
+          }
+        }
+      }
+    }
+
+   /* Draw a spline chart */
+   function drawSplineChart($Format=NULL)
+    {
+     $BreakVoid		= isset($Format["BreakVoid"]) ? $Format["BreakVoid"] : TRUE;
+     $VoidTicks		= isset($Format["VoidTicks"]) ? $Format["VoidTicks"] : 4;
+     $BreakR		= isset($Format["BreakR"]) ? $Format["BreakR"] : NULL; // 234
+     $BreakG		= isset($Format["BreakG"]) ? $Format["BreakG"] : NULL; // 55
+     $BreakB		= isset($Format["BreakB"]) ? $Format["BreakB"] : NULL; // 26
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] : FALSE;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 2;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $ImageMapPlotSize  = isset($Format["ImageMapPlotSize"]) ? $Format["ImageMapPlotSize"] : 5;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"]; $Weight = $Serie["Weight"];
+
+         if ( $BreakR == NULL )
+          $BreakSettings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$VoidTicks);
+         else
+          $BreakSettings = array("R"=>$BreakR,"G"=>$BreakG,"B"=>$BreakB,"Alpha"=>$Alpha,"Ticks"=>$VoidTicks,"Weight"=>$Weight);
+
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         if (isset($Serie["Description"])) { $SerieDescription = $Serie["Description"]; } else { $SerieDescription = $SerieName; }
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X     = $this->GraphAreaX1 + $XMargin; $WayPoints = "";
+           $Force = $XStep / 5;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL; $LastX = 1; $LastY = 1;
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $DisplayValues ) 
+              $this->drawText($X,$Y-$DisplayOffset,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+	
+             if ( $RecordImageMap && $Y != VOID ) { $this->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$ImageMapPlotSize,$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+             if ( $Y == VOID && $LastY != NULL )
+              { $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight)); $WayPoints = ""; }
+
+             if ( $Y != VOID && $LastY == NULL && $LastGoodY != NULL && !$BreakVoid )
+              { $this->drawLine($LastGoodX,$LastGoodY,$X,$Y,$BreakSettings); }
+
+             if ( $Y != VOID )
+              $WayPoints[] = array($X,$Y);
+
+             if ( $Y != VOID ) { $LastGoodY = $Y; $LastGoodX = $X; }
+             if ( $Y == VOID ) { $Y = NULL; }
+
+             $LastX = $X; $LastY = $Y;
+             $X = $X + $XStep;
+            }
+           $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+          }
+         else
+          {
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y     = $this->GraphAreaY1 + $XMargin; $WayPoints = "";
+           $Force = $YStep / 5;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL; $LastX = 1; $LastY = 1;
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $DisplayValues ) 
+              $this->drawText($X+$DisplayOffset,$Y,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("Angle"=>270,"R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+
+             if ( $RecordImageMap && $X != VOID ) { $this->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$ImageMapPlotSize,$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+             if ( $X == VOID && $LastX != NULL )
+              { $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight)); $WayPoints = ""; }
+
+             if ( $X != VOID && $LastX == NULL && $LastGoodX != NULL && !$BreakVoid )
+              { $this->drawLine($LastGoodX,$LastGoodY,$X,$Y,$BreakSettings); }
+
+             if ( $X != VOID )
+              $WayPoints[] = array($X,$Y);
+
+             if ( $X != VOID ) { $LastGoodX = $X; $LastGoodY = $Y; }
+             if ( $X == VOID ) { $X = NULL; }
+
+             $LastX = $X; $LastY = $Y;
+             $Y = $Y + $YStep;
+            }
+           $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+          }
+        }
+      }
+    }
+
+   /* Draw a filled spline chart */
+   function drawFilledSplineChart($Format=NULL)
+    {
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] : FALSE;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 2;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $AroundZero	= isset($Format["AroundZero"]) ? $Format["AroundZero"] : TRUE;
+     $Threshold		= isset($Format["Threshold"]) ? $Format["Threshold"] : NULL;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"];
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+         if ( $AroundZero ) { $YZero = $this->scaleComputeY(0,array("AxisID"=>$Serie["Axis"])); }
+
+         if ( $Threshold != NULL )
+          {
+           foreach($Threshold as $Key => $Params)
+            {
+             $Threshold[$Key]["MinX"] = $this->scaleComputeY($Params["Min"],array("AxisID"=>$Serie["Axis"]));
+             $Threshold[$Key]["MaxX"] = $this->scaleComputeY($Params["Max"],array("AxisID"=>$Serie["Axis"]));
+            }
+          }
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X     = $this->GraphAreaX1 + $XMargin; $WayPoints = "";
+           $Force = $XStep / 5;
+
+           if ( !$AroundZero ) { $YZero = $this->GraphAreaY2-1; }
+           if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+           if ( $YZero < $this->GraphAreaY1+1 ) { $YZero = $this->GraphAreaY1+1; }
+
+           $LastX = ""; $LastY = "";
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $DisplayValues ) 
+              $this->drawText($X,$Y-$DisplayOffset,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+
+             if ( $Y == VOID )
+              {
+               $Area = $this->drawSpline($WayPoints,array("Force"=>$Force,"PathOnly"=>TRUE));
+
+               if ( $Area != "" )
+                {
+                 foreach ($Area as $key => $Points)
+                  {
+                   $Corners = ""; $Corners[] = $Area[$key][0]["X"]; $Corners[] = $YZero;
+                   foreach($Points as $subKey => $Point)
+                    {
+                     if ( $subKey == count($Points)-1) { $Corners[] = $Point["X"]-1; } else { $Corners[] = $Point["X"]; }
+                     $Corners[] = $Point["Y"]+1;
+                    }
+                   $Corners[] = $Points[$subKey]["X"]-1; $Corners[] = $YZero;
+
+                   $this->drawPolygonChart($Corners,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/2,"NoBorder"=>TRUE,"Threshold"=>$Threshold));
+                  }
+                 $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+                }
+
+               $WayPoints = "";
+              }
+             else
+              $WayPoints[] = array($X,$Y-.5); /* -.5 for AA visual fix */
+
+             $X = $X + $XStep;
+            }
+           $Area = $this->drawSpline($WayPoints,array("Force"=>$Force,"PathOnly"=>TRUE));
+
+           if ( $Area != "" )
+            {
+             foreach ($Area as $key => $Points)
+              {
+               $Corners = ""; $Corners[] = $Area[$key][0]["X"]; $Corners[] = $YZero;
+               foreach($Points as $subKey => $Point)
+                {
+                 if ( $subKey == count($Points)-1) { $Corners[] = $Point["X"]-1; } else { $Corners[] = $Point["X"]; }
+                 $Corners[] = $Point["Y"]+1;
+                }
+               $Corners[] = $Points[$subKey]["X"]-1; $Corners[] = $YZero;
+
+               $this->drawPolygonChart($Corners,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/2,"NoBorder"=>TRUE,"Threshold"=>$Threshold));
+              }
+             $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+            }
+          }
+         else
+          {
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y     = $this->GraphAreaY1 + $XMargin; $WayPoints = "";
+           $Force = $YStep / 5;
+
+           if ( !$AroundZero ) { $YZero = $this->GraphAreaX1+1; }
+           if ( $YZero > $this->GraphAreaX2-1 ) { $YZero = $this->GraphAreaX2-1; }
+           if ( $YZero < $this->GraphAreaX1+1 ) { $YZero = $this->GraphAreaX1+1; }
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $DisplayValues ) 
+              $this->drawText($X+$DisplayOffset,$Y,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("Angle"=>270,"R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+
+             if ( $X == VOID )
+              {
+               $Area = $this->drawSpline($WayPoints,array("Force"=>$Force,"PathOnly"=>TRUE));
+
+               if ( $Area != "" )
+                {
+                 foreach ($Area as $key => $Points)
+                  {
+                   $Corners = ""; $Corners[] = $YZero; $Corners[] = $Area[$key][0]["Y"];
+                   foreach($Points as $subKey => $Point)
+                    {
+                     if ( $subKey == count($Points)-1) { $Corners[] = $Point["X"]-1; } else { $Corners[] = $Point["X"]; }
+                     $Corners[] = $Point["Y"];
+                    }
+                   $Corners[] = $YZero; $Corners[] = $Points[$subKey]["Y"]-1;
+
+                   $this->drawPolygonChart($Corners,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/2,"NoBorder"=>TRUE,"Threshold"=>$Threshold));
+                  }
+                 $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+                }
+
+               $WayPoints = "";
+              }
+             else
+              $WayPoints[] = array($X,$Y);
+
+             $Y = $Y + $YStep;
+            }
+           $Area = $this->drawSpline($WayPoints,array("Force"=>$Force,"PathOnly"=>TRUE));
+
+           if ( $Area != "" )
+            {
+             foreach ($Area as $key => $Points)
+              {
+               $Corners = ""; $Corners[] = $YZero; $Corners[] = $Area[$key][0]["Y"];
+               foreach($Points as $subKey => $Point)
+                {
+                 if ( $subKey == count($Points)-1) { $Corners[] = $Point["X"]-1; } else { $Corners[] = $Point["X"]; }
+                 $Corners[] = $Point["Y"];
+                }
+               $Corners[] = $YZero; $Corners[] = $Points[$subKey]["Y"]-1;
+
+               $this->drawPolygonChart($Corners,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/2,"NoBorder"=>TRUE,"Threshold"=>$Threshold));
+              }
+             $this->drawSpline($WayPoints,array("Force"=>$Force,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks));
+            }
+
+          }
+        }
+      }
+    }
+
+   /* Draw a line chart */
+   function drawLineChart($Format=NULL)
+    {
+     $BreakVoid		= isset($Format["BreakVoid"]) ? $Format["BreakVoid"] : TRUE;
+     $VoidTicks		= isset($Format["VoidTicks"]) ? $Format["VoidTicks"] : 4;
+     $BreakR		= isset($Format["BreakR"]) ? $Format["BreakR"] : NULL;
+     $BreakG		= isset($Format["BreakG"]) ? $Format["BreakG"] : NULL;
+     $BreakB		= isset($Format["BreakB"]) ? $Format["BreakB"] : NULL;
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] : FALSE;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 2;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $ImageMapPlotSize  = isset($Format["ImageMapPlotSize"]) ? $Format["ImageMapPlotSize"] : 5;
+     $ForceColor	= isset($Format["ForceColor"]) ? $Format["ForceColor"] : FALSE;
+     $ForceR		= isset($Format["ForceR"]) ? $Format["ForceR"] : 0;
+     $ForceG		= isset($Format["ForceG"]) ? $Format["ForceG"] : 0;
+     $ForceB		= isset($Format["ForceB"]) ? $Format["ForceB"] : 0;
+     $ForceAlpha	= isset($Format["ForceAlpha"]) ? $Format["ForceAlpha"] : 100;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"]; $Weight = $Serie["Weight"];
+
+         if ( $ForceColor )
+          { $R = $ForceR; $G = $ForceG; $B = $ForceB; $Alpha = $ForceAlpha; }
+
+         if ( $BreakR == NULL )
+          $BreakSettings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$VoidTicks,"Weight"=>$Weight);
+         else
+          $BreakSettings = array("R"=>$BreakR,"G"=>$BreakG,"B"=>$BreakB,"Alpha"=>$Alpha,"Ticks"=>$VoidTicks,"Weight"=>$Weight);
+
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         if (isset($Serie["Description"])) { $SerieDescription = $Serie["Description"]; } else { $SerieDescription = $SerieName; }
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL;
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $DisplayValues && $Serie["Data"][$Key] != VOID ) 
+              {
+               if ( $Serie["Data"][$Key] > 0 ) { $Align = TEXT_ALIGN_BOTTOMMIDDLE; $Offset = $DisplayOffset; } else { $Align = TEXT_ALIGN_TOPMIDDLE; $Offset = -$DisplayOffset; }
+               $this->drawText($X,$Y-$Offset-$Weight,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>$Align));
+              }
+
+             if ( $RecordImageMap && $Y != VOID ) { $this->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$ImageMapPlotSize,$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+             if ( $Y != VOID && $LastX != NULL && $LastY != NULL )
+              $this->drawLine($LastX,$LastY,$X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+             if ( $Y != VOID && $LastY == NULL && $LastGoodY != NULL && !$BreakVoid )
+              { $this->drawLine($LastGoodX,$LastGoodY,$X,$Y,$BreakSettings); $LastGoodY = NULL; }
+
+             if ( $Y != VOID ) { $LastGoodY = $Y; $LastGoodX = $X; }
+             if ( $Y == VOID ) { $Y = NULL; }
+
+             $LastX = $X; $LastY = $Y;
+             $X = $X + $XStep;
+            }
+          }
+         else
+          {
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y = $this->GraphAreaY1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL;
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $DisplayValues && $Serie["Data"][$Key] != VOID ) 
+              { $this->drawText($X+$DisplayOffset+$Weight,$Y,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("Angle"=>270,"R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE)); }
+
+             if ( $RecordImageMap && $X != VOID ) { $this->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$ImageMapPlotSize,$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+             if ( $X != VOID && $LastX != NULL && $LastY != NULL )
+              $this->drawLine($LastX,$LastY,$X,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+             if ( $X != VOID && $LastX == NULL && $LastGoodY != NULL && !$BreakVoid )
+              { $this->drawLine($LastGoodX,$LastGoodY,$X,$Y,$BreakSettings); $LastGoodY = NULL; }
+
+             if ( $X != VOID ) { $LastGoodY = $Y; $LastGoodX = $X; }
+             if ( $X == VOID ) { $X = NULL; }
+
+             $LastX = $X; $LastY = $Y;
+             $Y = $Y + $YStep;
+            }
+          }
+        }
+      }
+    }
+
+   /* Draw a line chart */
+   function drawZoneChart($SerieA,$SerieB,$Format=NULL)
+    {
+     $AxisID	= isset($Format["AxisID"]) ? $Format["AxisID"] : 0;
+     $LineR	= isset($Format["LineR"]) ? $Format["LineR"] : 150;
+     $LineG	= isset($Format["LineG"]) ? $Format["LineG"] : 150;
+     $LineB	= isset($Format["LineB"]) ? $Format["LineB"] : 150;
+     $LineAlpha	= isset($Format["LineAlpha"]) ? $Format["LineAlpha"] : 50;
+     $LineTicks	= isset($Format["LineTicks"]) ? $Format["LineTicks"] : 1;
+     $AreaR	= isset($Format["AreaR"]) ? $Format["AreaR"] : 150;
+     $AreaG	= isset($Format["AreaG"]) ? $Format["AreaG"] : 150;
+     $AreaB	= isset($Format["AreaB"]) ? $Format["AreaB"] : 150;
+     $AreaAlpha	= isset($Format["AreaAlpha"]) ? $Format["AreaAlpha"] : 5;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data	 = $this->DataSet->getData();
+     if ( !isset($Data["Series"][$SerieA]["Data"]) || !isset($Data["Series"][$SerieB]["Data"]) ) { return(0); }
+     $SerieAData = $Data["Series"][$SerieA]["Data"];
+     $SerieBData = $Data["Series"][$SerieB]["Data"];
+
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     $Mode	= $Data["Axis"][$AxisID]["Display"];
+     $Format	= $Data["Axis"][$AxisID]["Format"];
+     $Unit	= $Data["Axis"][$AxisID]["Unit"];
+
+     $PosArrayA = $this->scaleComputeY($SerieAData,array("AxisID"=>$AxisID));
+     $PosArrayB = $this->scaleComputeY($SerieBData,array("AxisID"=>$AxisID));
+     if ( count($PosArrayA) != count($PosArrayB) ) { return(0); }
+
+     if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+      {
+       if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+       $X = $this->GraphAreaX1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+       $LastX = NULL; $LastY1 = NULL; $LastY2 = NULL;
+       $BoundsA = ""; $BoundsB = "";
+       foreach($PosArrayA as $Key => $Y1)
+        {
+         $Y2 = $PosArrayB[$Key];
+
+         $BoundsA[] = $X; $BoundsA[] = $Y1;
+         $BoundsB[] = $X; $BoundsB[] = $Y2;
+
+         $LastX = $X;
+         $LastY1 = $Y1; $LastY2 = $Y2;
+
+         $X = $X + $XStep;
+        }
+       $Bounds = array_merge($BoundsA,$this->reversePlots($BoundsB));
+       $this->drawPolygonChart($Bounds,array("R"=>$AreaR,"G"=>$AreaG,"B"=>$AreaB,"Alpha"=>$AreaAlpha));
+
+       for($i=0;$i<=count($BoundsA)-4;$i=$i+2)
+        {
+         $this->drawLine($BoundsA[$i],$BoundsA[$i+1],$BoundsA[$i+2],$BoundsA[$i+3],array("R"=>$LineR,"G"=>$LineG,"B"=>$LineB,"Alpha"=>$LineAlpha,"Ticks"=>$LineTicks));
+         $this->drawLine($BoundsB[$i],$BoundsB[$i+1],$BoundsB[$i+2],$BoundsB[$i+3],array("R"=>$LineR,"G"=>$LineG,"B"=>$LineB,"Alpha"=>$LineAlpha,"Ticks"=>$LineTicks));
+        }
+      }
+     else
+      {
+       if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+       $Y = $this->GraphAreaY1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+       $LastY = NULL; $LastX1 = NULL; $LastX2 = NULL;
+       $BoundsA = ""; $BoundsB = "";
+       foreach($PosArrayA as $Key => $X1)
+        {
+         $X2 = $PosArrayB[$Key];
+
+         $BoundsA[] = $X1; $BoundsA[] = $Y;
+         $BoundsB[] = $X2; $BoundsB[] = $Y;
+
+         $LastY = $Y;
+         $LastX1 = $X1; $LastX2 = $X2;
+
+         $Y = $Y + $YStep;
+        }
+       $Bounds = array_merge($BoundsA,$this->reversePlots($BoundsB));
+       $this->drawPolygonChart($Bounds,array("R"=>$AreaR,"G"=>$AreaG,"B"=>$AreaB,"Alpha"=>$AreaAlpha));
+
+       for($i=0;$i<=count($BoundsA)-4;$i=$i+2)
+        {
+         $this->drawLine($BoundsA[$i],$BoundsA[$i+1],$BoundsA[$i+2],$BoundsA[$i+3],array("R"=>$LineR,"G"=>$LineG,"B"=>$LineB,"Alpha"=>$LineAlpha,"Ticks"=>$LineTicks));
+         $this->drawLine($BoundsB[$i],$BoundsB[$i+1],$BoundsB[$i+2],$BoundsB[$i+3],array("R"=>$LineR,"G"=>$LineG,"B"=>$LineB,"Alpha"=>$LineAlpha,"Ticks"=>$LineTicks));
+        }
+      }
+    }
+
+   /* Draw a step chart */
+   function drawStepChart($Format=NULL)
+    {
+     $BreakVoid		= isset($Format["BreakVoid"]) ? $Format["BreakVoid"] : FALSE;
+     $ReCenter		= isset($Format["ReCenter"]) ? $Format["ReCenter"] : TRUE;
+     $VoidTicks		= isset($Format["VoidTicks"]) ? $Format["VoidTicks"] : 4;
+     $BreakR		= isset($Format["BreakR"]) ? $Format["BreakR"] : NULL;
+     $BreakG		= isset($Format["BreakG"]) ? $Format["BreakG"] : NULL;
+     $BreakB		= isset($Format["BreakB"]) ? $Format["BreakB"] : NULL;
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] :FALSE;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 2;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $ImageMapPlotSize  = isset($Format["ImageMapPlotSize"]) ? $Format["ImageMapPlotSize"] : 5;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"]; $Weight = $Serie["Weight"];
+
+         if (isset($Serie["Description"])) { $SerieDescription = $Serie["Description"]; } else { $SerieDescription = $SerieName; }
+
+         if ( $BreakR == NULL )
+          $BreakSettings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$VoidTicks,"Weight"=>$Weight);
+         else
+          $BreakSettings = array("R"=>$BreakR,"G"=>$BreakG,"B"=>$BreakB,"Alpha"=>$Alpha,"Ticks"=>$VoidTicks,"Weight"=>$Weight);
+
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+         $Color		= array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight);
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL; $Init = FALSE;
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $DisplayValues && $Serie["Data"][$Key] != VOID ) 
+              {
+               if ( $Y <= $LastY ) { $Align = TEXT_ALIGN_BOTTOMMIDDLE; $Offset = $DisplayOffset; } else { $Align = TEXT_ALIGN_TOPMIDDLE; $Offset = -$DisplayOffset; }
+               $this->drawText($X,$Y-$Offset-$Weight,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>$Align));
+              }
+
+             if ( $Y != VOID && $LastX != NULL && $LastY != NULL )
+              {
+               $this->drawLine($LastX,$LastY,$X,$LastY,$Color);
+               $this->drawLine($X,$LastY,$X,$Y,$Color);
+               if ( $ReCenter && $X+$XStep < $this->GraphAreaX2 - $XMargin )
+                {
+                 $this->drawLine($X,$Y,$X+$XStep,$Y,$Color);
+                 if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X-$ImageMapPlotSize).",".floor($Y-$ImageMapPlotSize).",".floor($X+$XStep+$ImageMapPlotSize).",".floor($Y+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+                }
+               else
+                { if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastX-$ImageMapPlotSize).",".floor($LastY-$ImageMapPlotSize).",".floor($X+$ImageMapPlotSize).",".floor($LastY+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); } }
+              }
+
+             if ( $Y != VOID && $LastY == NULL && $LastGoodY != NULL && !$BreakVoid )
+              { 
+               if ( $ReCenter )
+                {
+                 $this->drawLine($LastGoodX+$XStep,$LastGoodY,$X,$LastGoodY,$BreakSettings);
+                 if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastGoodX+$XStep-$ImageMapPlotSize).",".floor($LastGoodY-$ImageMapPlotSize).",".floor($X+$ImageMapPlotSize).",".floor($LastGoodY+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+                }
+               else
+                {
+                 $this->drawLine($LastGoodX,$LastGoodY,$X,$LastGoodY,$BreakSettings);
+                 if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastGoodX-$ImageMapPlotSize).",".floor($LastGoodY-$ImageMapPlotSize).",".floor($X+$ImageMapPlotSize).",".floor($LastGoodY+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+                }
+
+               $this->drawLine($X,$LastGoodY,$X,$Y,$BreakSettings);
+               $LastGoodY = NULL;
+              }
+             elseif( !$BreakVoid && $LastGoodY == NULL && $Y != VOID )
+              {
+              $this->drawLine($this->GraphAreaX1 + $XMargin,$Y,$X,$Y,$BreakSettings);
+               if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($this->GraphAreaX1+$XMargin-$ImageMapPlotSize).",".floor($Y-$ImageMapPlotSize).",".floor($X+$ImageMapPlotSize).",".floor($Y+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+              }
+
+             if ( $Y != VOID ) { $LastGoodY = $Y; $LastGoodX = $X; }
+             if ( $Y == VOID ) { $Y = NULL; }
+
+             if ( !$Init && $ReCenter ) { $X = $X - $XStep/2; $Init = TRUE; }
+             $LastX = $X; $LastY = $Y;
+             if ( $LastX < $this->GraphAreaX1 + $XMargin ) { $LastX = $this->GraphAreaX1 + $XMargin; }
+             $X = $X + $XStep;
+            }
+           if ( $ReCenter )
+            {
+             $this->drawLine($LastX,$LastY,$this->GraphAreaX2 - $XMargin,$LastY,$Color);
+             if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastX-$ImageMapPlotSize).",".floor($LastY-$ImageMapPlotSize).",".floor($this->GraphAreaX2-$XMargin+$ImageMapPlotSize).",".floor($LastY+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+            }
+          }
+         else
+          {
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y = $this->GraphAreaY1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL; $Init = FALSE;
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $DisplayValues && $Serie["Data"][$Key] != VOID ) 
+              {
+               if ( $X >= $LastX ) { $Align = TEXT_ALIGN_MIDDLELEFT; $Offset = $DisplayOffset; } else { $Align = TEXT_ALIGN_MIDDLERIGHT; $Offset = -$DisplayOffset; }
+               $this->drawText($X+$Offset+$Weight,$Y,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>$Align));
+              }
+
+             if ( $X != VOID && $LastX != NULL && $LastY != NULL )
+              {
+               $this->drawLine($LastX,$LastY,$LastX,$Y,$Color);
+               $this->drawLine($LastX,$Y,$X,$Y,$Color);
+
+               if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastX-$ImageMapPlotSize).",".floor($LastY-$ImageMapPlotSize).",".floor($LastX+$XStep+$ImageMapPlotSize).",".floor($Y+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+              }
+
+             if ( $X != VOID && $LastX == NULL && $LastGoodY != NULL && !$BreakVoid )
+              {
+               $this->drawLine($LastGoodX,$LastGoodY,$LastGoodX,$LastGoodY+$YStep,$Color);
+               if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastGoodX-$ImageMapPlotSize).",".floor($LastGoodY-$ImageMapPlotSize).",".floor($LastGoodX+$ImageMapPlotSize).",".floor($LastGoodY+$YStep+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+               $this->drawLine($LastGoodX,$LastGoodY+$YStep,$LastGoodX,$Y,$BreakSettings);
+               if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastGoodX-$ImageMapPlotSize).",".floor($LastGoodY+$YStep-$ImageMapPlotSize).",".floor($LastGoodX+$ImageMapPlotSize).",".floor($YStep+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+               $this->drawLine($LastGoodX,$Y,$X,$Y,$BreakSettings);
+               $LastGoodY = NULL;
+              }
+             elseif ( $X != VOID && $LastGoodY == NULL && !$BreakVoid )
+              {
+               $this->drawLine($X,$this->GraphAreaY1 + $XMargin,$X,$Y,$BreakSettings);
+               if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X-$ImageMapPlotSize).",".floor($this->GraphAreaY1+$XMargin-$ImageMapPlotSize).",".floor($X+$ImageMapPlotSize).",".floor($Y+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+              }
+
+             if ( $X != VOID ) { $LastGoodY = $Y; $LastGoodX = $X; }
+             if ( $X == VOID ) { $X = NULL; }
+
+             if ( !$Init && $ReCenter ) { $Y = $Y - $YStep/2; $Init = TRUE; }
+             $LastX = $X; $LastY = $Y;
+             if ( $LastY < $this->GraphAreaY1 + $XMargin ) { $LastY = $this->GraphAreaY1 + $XMargin; }
+             $Y = $Y + $YStep;
+            }
+           if ( $ReCenter )
+            {
+             $this->drawLine($LastX,$LastY,$LastX,$this->GraphAreaY2 - $XMargin,$Color);
+             if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($LastX-$ImageMapPlotSize).",".floor($LastY-$ImageMapPlotSize).",".floor($LastX+$ImageMapPlotSize).",".floor($this->GraphAreaY2-$XMargin+$ImageMapPlotSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+            }
+          }
+        }
+      }
+    }
+
+   /* Draw a step chart */
+   function drawFilledStepChart($Format=NULL)
+    {
+     $ReCenter		= isset($Format["ReCenter"]) ? $Format["ReCenter"] : TRUE;
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] :FALSE;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 2;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $ForceTransparency	= isset($Format["ForceTransparency"]) ? $Format["ForceTransparency"] : NULL;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $AroundZero	= isset($Format["AroundZero"]) ? $Format["AroundZero"] : TRUE;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"]; $Weight = $Serie["Weight"];
+
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         $Color		= array("R"=>$R,"G"=>$G,"B"=>$B);
+         if ( $ForceTransparency != NULL ) { $Color["Alpha"] = $ForceTransparency; } else { $Color["Alpha"] = $Alpha; }
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+         $YZero    = $this->scaleComputeY(0,array("AxisID"=>$Serie["Axis"]));
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+           if ( $YZero < $this->GraphAreaY1+1 ) { $YZero = $this->GraphAreaY1+1; }
+
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !$AroundZero ) { $YZero = $this->GraphAreaY2-1; }
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL; $Points = ""; $Init = FALSE;
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $Y == VOID && $LastX != NULL && $LastY != NULL && $Points !="" )
+              {
+               $Points[] = $LastX; $Points[] = $LastY;
+               $Points[] = $X; $Points[] = $LastY;
+               $Points[] = $X; $Points[] = $YZero;
+               $this->drawPolygon($Points,$Color);
+               $Points = "";
+              }
+
+             if ( $Y != VOID && $LastX != NULL && $LastY != NULL )
+              {
+               if ( $Points == "") { $Points[] = $LastX; $Points[] = $YZero; }
+               $Points[] = $LastX; $Points[] = $LastY;
+               $Points[] = $X; $Points[] = $LastY;
+               $Points[] = $X; $Points[] = $Y;
+              }
+
+             if ( $Y != VOID ) { $LastGoodY = $Y; $LastGoodX = $X; }
+             if ( $Y == VOID ) { $Y = NULL; }
+
+             if ( !$Init && $ReCenter ) { $X = $X - $XStep/2; $Init = TRUE; }
+             $LastX = $X; $LastY = $Y;
+             if ( $LastX < $this->GraphAreaX1 + $XMargin ) { $LastX = $this->GraphAreaX1 + $XMargin; }
+             $X = $X + $XStep;
+            }
+
+           if ( $ReCenter )
+            {
+             $Points[] = $LastX+$XStep/2; $Points[] = $LastY;
+             $Points[] = $LastX+$XStep/2; $Points[] = $YZero;
+            }
+           else
+            { $Points[] = $LastX; $Points[] = $YZero; }
+
+           $this->drawPolygon($Points,$Color);
+          }
+         else
+          {
+           if ( $YZero < $this->GraphAreaX1+1 ) { $YZero = $this->GraphAreaX1+1; }
+           if ( $YZero > $this->GraphAreaX2-1 ) { $YZero = $this->GraphAreaX2-1; }
+
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y = $this->GraphAreaY1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $LastGoodY = NULL; $LastGoodX = NULL; $Points = "";
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $X == VOID && $LastX != NULL && $LastY != NULL && $Points !="" )
+              {
+               $Points[] = $LastX; $Points[] = $LastY;
+               $Points[] = $LastX; $Points[] = $Y;
+               $Points[] = $YZero; $Points[] = $Y;
+               $this->drawPolygon($Points,$Color);
+               $Points = "";
+              }
+
+             if ( $X != VOID && $LastX != NULL && $LastY != NULL )
+              {
+               if ( $Points == "") { $Points[] = $YZero; $Points[] = $LastY; }
+               $Points[] = $LastX; $Points[] = $LastY;
+               $Points[] = $LastX; $Points[] = $Y;
+               $Points[] = $X; $Points[] = $Y;
+              }
+
+             if ( $X != VOID ) { $LastGoodY = $Y; $LastGoodX = $X; }
+             if ( $X == VOID ) { $X = NULL; }
+
+             if ( $LastX == NULL && $ReCenter ) { $Y = $Y - $YStep/2; }
+             $LastX = $X; $LastY = $Y;
+             if ( $LastY < $this->GraphAreaY1 + $XMargin ) { $LastY = $this->GraphAreaY1 + $XMargin; }
+             $Y = $Y + $YStep;
+            }
+
+           if ( $ReCenter )
+            {
+             $Points[] = $LastX; $Points[] = $LastY+$YStep/2;
+             $Points[] = $YZero; $Points[] = $LastY+$YStep/2;
+            }
+           else
+            { $Points[] = $YZero; $Points[] = $LastY; }
+
+           $this->drawPolygon($Points,$Color);
+          }
+        }
+      }
+    }
+
+   /* Draw an area chart */
+   function drawAreaChart($Format=NULL)
+    {
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] : FALSE;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 2;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $ForceTransparency	= isset($Format["ForceTransparency"]) ? $Format["ForceTransparency"] : 25;
+     $AroundZero	= isset($Format["AroundZero"]) ? $Format["AroundZero"] : TRUE;
+     $Threshold		= isset($Format["Threshold"]) ? $Format["Threshold"] : NULL;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data  = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"];
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+         $YZero    = $this->scaleComputeY(0,array("AxisID"=>$Serie["Axis"]));
+
+         if ( $Threshold != NULL )
+          {
+           foreach($Threshold as $Key => $Params)
+            {
+             $Threshold[$Key]["MinX"] = $this->scaleComputeY($Params["Min"],array("AxisID"=>$Serie["Axis"]));
+             $Threshold[$Key]["MaxX"] = $this->scaleComputeY($Params["Max"],array("AxisID"=>$Serie["Axis"]));
+            }
+          }
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+
+           $Areas = ""; $AreaID = 0; 
+           $Areas[$AreaID][] = $this->GraphAreaX1 + $XMargin;
+           if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaY2-1; }
+
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $DisplayValues && $Serie["Data"][$Key] != VOID )
+              {
+               if ( $Serie["Data"][$Key] > 0 ) { $Align = TEXT_ALIGN_BOTTOMMIDDLE; $Offset = $DisplayOffset; } else { $Align = TEXT_ALIGN_TOPMIDDLE; $Offset = -$DisplayOffset; }
+               $this->drawText($X,$Y-$Offset,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>$Align));
+              }
+
+             if ( $Y == VOID && isset($Areas[$AreaID]) )
+              {
+               if($LastX == NULL)
+                { $Areas[$AreaID][] = $X; }
+               else
+                { $Areas[$AreaID][] = $LastX; }
+
+               if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaY2-1; }
+               $AreaID++;
+              }
+             elseif ($Y != VOID)
+              {
+               if ( !isset($Areas[$AreaID]) )
+                {
+                 $Areas[$AreaID][] = $X;
+                 if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaY2-1; }
+                }
+
+               $Areas[$AreaID][] = $X;
+               $Areas[$AreaID][] = $Y;
+              }
+
+             $LastX = $X;
+             $X = $X + $XStep;
+            }
+           $Areas[$AreaID][] = $LastX;
+           if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaY2-1; }
+
+           /* Handle shadows in the areas */
+           if ( $this->Shadow )
+            {
+             $ShadowArea = "";
+             foreach($Areas as $Key => $Points)
+              {
+               $ShadowArea[$Key] = "";
+               foreach($Points as $Key2 => $Value)
+                {
+                 if ( $Key2 % 2 == 0 )
+                  { $ShadowArea[$Key][] = $Value + $this->ShadowX; }
+                 else
+                  { $ShadowArea[$Key][] = $Value + $this->ShadowY; }
+                }
+              }              
+
+             foreach($ShadowArea as $Key => $Points)
+              $this->drawPolygonChart($Points,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa));
+            }
+
+           $Alpha = $ForceTransparency != NULL ? $ForceTransparency : $Alpha;
+           $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Threshold"=>$Threshold);
+
+           foreach($Areas as $Key => $Points)
+            $this->drawPolygonChart($Points,$Color);
+          }
+         else
+          {
+           if ( $YZero < $this->GraphAreaX1+1 ) { $YZero = $this->GraphAreaX1+1; }
+           if ( $YZero > $this->GraphAreaX2-1 ) { $YZero = $this->GraphAreaX2-1; }
+
+           $Areas = ""; $AreaID = 0; 
+           if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaX1+1; }
+           $Areas[$AreaID][] = $this->GraphAreaY1 + $XMargin;
+
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y     = $this->GraphAreaY1 + $XMargin; $LastX = NULL; $LastY = NULL;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $DisplayValues && $Serie["Data"][$Key] != VOID )
+              {
+               if ( $Serie["Data"][$Key] > 0 ) { $Align = TEXT_ALIGN_BOTTOMMIDDLE; $Offset = $DisplayOffset; } else { $Align = TEXT_ALIGN_TOPMIDDLE; $Offset = -$DisplayOffset; }
+               $this->drawText($X+$Offset,$Y,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("Angle"=>270,"R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>$Align));
+              }
+
+             if ( $X == VOID && isset($Areas[$AreaID]) )
+              {
+               if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaX1+1; }
+
+               if($LastY == NULL)
+                { $Areas[$AreaID][] = $Y; }
+               else
+                { $Areas[$AreaID][] = $LastY; }
+
+               $AreaID++;
+              }
+             elseif ($X != VOID)
+              {
+               if ( !isset($Areas[$AreaID]) )
+                {
+                 if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaX1+1; }
+                 $Areas[$AreaID][] = $Y;
+                }
+
+               $Areas[$AreaID][] = $X;
+               $Areas[$AreaID][] = $Y;
+              }
+
+             $LastX = $X; $LastY = $Y;
+             $Y = $Y + $YStep;
+            }
+           if ( $AroundZero ) { $Areas[$AreaID][] = $YZero; } else { $Areas[$AreaID][] = $this->GraphAreaX1+1; }
+           $Areas[$AreaID][] = $LastY;
+
+           /* Handle shadows in the areas */
+           if ( $this->Shadow )
+            {
+             $ShadowArea = "";
+             foreach($Areas as $Key => $Points)
+              {
+               $ShadowArea[$Key] = "";
+               foreach($Points as $Key2 => $Value)
+                {
+                 if ( $Key2 % 2 == 0 )
+                  { $ShadowArea[$Key][] = $Value + $this->ShadowX; }
+                 else
+                  { $ShadowArea[$Key][] = $Value + $this->ShadowY; }
+                }
+              }              
+
+             foreach($ShadowArea as $Key => $Points)
+              $this->drawPolygonChart($Points,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa));
+            }
+
+           $Alpha = $ForceTransparency != NULL ? $ForceTransparency : $Alpha;
+           $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Threshold"=>$Threshold);
+
+           foreach($Areas as $Key => $Points)
+            $this->drawPolygonChart($Points,$Color);
+          }
+        }
+      }
+    }
+
+
+   /* Draw a bar chart */
+   function drawBarChart($Format=NULL)
+    {
+     $Floating0Serie	= isset($Format["Floating0Serie"]) ? $Format["Floating0Serie"] : NULL;
+     $Floating0Value	= isset($Format["Floating0Value"]) ? $Format["Floating0Value"] : NULL;
+     $Draw0Line		= isset($Format["Draw0Line"]) ? $Format["Draw0Line"] : FALSE;
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] : FALSE;
+     $DisplayOrientation = isset($Format["DisplayOrientation"]) ? $Format["DisplayOrientation"] : ORIENTATION_HORIZONTAL;
+     $DisplayOffset	= isset($Format["DisplayOffset"]) ? $Format["DisplayOffset"] : 2;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayFont	= isset($Format["DisplaySize"]) ? $Format["DisplaySize"] : $this->FontName;
+     $DisplaySize	= isset($Format["DisplaySize"]) ? $Format["DisplaySize"] : $this->FontSize;
+     $DisplayPos	= isset($Format["DisplayPos"]) ? $Format["DisplayPos"] : LABEL_POS_OUTSIDE;
+     $DisplayShadow	= isset($Format["DisplayShadow"]) ? $Format["DisplayShadow"] : TRUE;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $AroundZero	= isset($Format["AroundZero"]) ? $Format["AroundZero"] : TRUE;
+     $Interleave	= isset($Format["Interleave"]) ? $Format["Interleave"] : .5;
+     $Rounded		= isset($Format["Rounded"]) ? $Format["Rounded"] : FALSE;
+     $RoundRadius	= isset($Format["RoundRadius"]) ? $Format["RoundRadius"] : 4;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : -1;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : -1;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : -1;
+     $Gradient		= isset($Format["Gradient"]) ? $Format["Gradient"] : FALSE;
+     $GradientMode	= isset($Format["GradientMode"]) ? $Format["GradientMode"] : GRADIENT_SIMPLE;
+     $GradientAlpha	= isset($Format["GradientAlpha"]) ? $Format["GradientAlpha"] : 20;
+     $GradientStartR	= isset($Format["GradientStartR"]) ? $Format["GradientStartR"] : 255;
+     $GradientStartG	= isset($Format["GradientStartG"]) ? $Format["GradientStartG"] : 255;
+     $GradientStartB	= isset($Format["GradientStartB"]) ? $Format["GradientStartB"] : 255;
+     $GradientEndR	= isset($Format["GradientEndR"]) ? $Format["GradientEndR"] : 0;
+     $GradientEndG	= isset($Format["GradientEndG"]) ? $Format["GradientEndG"] : 0;
+     $GradientEndB	= isset($Format["GradientEndB"]) ? $Format["GradientEndB"] : 0;
+     $TxtMargin		= isset($Format["TxtMargin"]) ? $Format["TxtMargin"] : 6;
+     $OverrideColors	= isset($Format["OverrideColors"]) ? $Format["OverrideColors"] : NULL;
+     $OverrideSurrounding = isset($Format["OverrideSurrounding"]) ? $Format["OverrideSurrounding"] : 30;
+     $InnerSurrounding	= isset($Format["InnerSurrounding"]) ? $Format["InnerSurrounding"] : NULL;
+     $InnerBorderR	= isset($Format["InnerBorderR"]) ? $Format["InnerBorderR"] : -1;
+     $InnerBorderG	= isset($Format["InnerBorderG"]) ? $Format["InnerBorderG"] : -1;
+     $InnerBorderB	= isset($Format["InnerBorderB"]) ? $Format["InnerBorderB"] : -1;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_REGULAR;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     if ( $OverrideColors != NULL )
+      {
+       $OverrideColors = $this->validatePalette($OverrideColors,$OverrideSurrounding);
+       $this->DataSet->saveExtendedData("Palette",$OverrideColors);
+      }
+
+     $RestoreShadow = $this->Shadow;
+
+     $SeriesCount  = $this->countDrawableSeries();
+     $CurrentSerie = 0;
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"];
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = $R; $DisplayG = $G; $DisplayB = $B; }
+         if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+         if ( $InnerSurrounding != NULL ) { $InnerBorderR = $R+$InnerSurrounding; $InnerBorderG = $G+$InnerSurrounding; $InnerBorderB = $B+$InnerSurrounding; }
+         if ( $InnerBorderR == -1 ) { $InnerColor = NULL; } else { $InnerColor = array("R"=>$InnerBorderR,"G"=>$InnerBorderG,"B"=>$InnerBorderB); }
+         $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB);
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         if (isset($Serie["Description"])) { $SerieDescription = $Serie["Description"]; } else { $SerieDescription = $SerieName; }
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         if ( $Floating0Value != NULL )
+          { $YZero = $this->scaleComputeY($Floating0Value,array("AxisID"=>$Serie["Axis"])); }
+         else
+          { $YZero = $this->scaleComputeY(0,array("AxisID"=>$Serie["Axis"])); }
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+           if ( $YZero < $this->GraphAreaY1+1 ) { $YZero = $this->GraphAreaY1+1; }
+
+           if ( $XDivs == 0 ) { $XStep = 0; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin;
+
+           if ( $AroundZero ) { $Y1 = $YZero; } else { $Y1 = $this->GraphAreaY2-1; }
+           if ( $XDivs == 0 ) { $XSize = ($this->GraphAreaX2-$this->GraphAreaX1)/($SeriesCount+$Interleave); } else { $XSize   = ($XStep / ($SeriesCount+$Interleave) ); }
+
+           $XOffset = -($XSize*$SeriesCount)/2 + $CurrentSerie * $XSize;
+           if ( $X + $XOffset <= $this->GraphAreaX1 ) { $XOffset = $this->GraphAreaX1 - $X + 1 ; }
+
+           $this->DataSet->Data["Series"][$SerieName]["XOffset"] = $XOffset + $XSize / 2;
+
+           if ( $Rounded || $BorderR != -1) { $XSpace = 1; } else { $XSpace = 0; }
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+
+           $ID = 0;
+           foreach($PosArray as $Key => $Y2)
+            {
+             if ( $Floating0Serie != NULL )
+              {
+               if ( isset($Data["Series"][$Floating0Serie]["Data"][$Key]) )
+                { $Value = $Data["Series"][$Floating0Serie]["Data"][$Key]; }
+               else
+                { $Value = 0; }
+
+               $YZero = $this->scaleComputeY($Value,array("AxisID"=>$Serie["Axis"]));
+               if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+               if ( $YZero < $this->GraphAreaY1+1 ) { $YZero = $this->GraphAreaY1+1; }
+
+               if ( $AroundZero ) { $Y1 = $YZero; } else { $Y1 = $this->GraphAreaY2-1; }
+              }
+
+             if ( $OverrideColors != NULL )
+              { if ( isset($OverrideColors[$ID]) ) { $Color = array("R"=>$OverrideColors[$ID]["R"],"G"=>$OverrideColors[$ID]["G"],"B"=>$OverrideColors[$ID]["B"],"Alpha"=>$OverrideColors[$ID]["Alpha"],"BorderR"=>$OverrideColors[$ID]["BorderR"],"BorderG"=>$OverrideColors[$ID]["BorderG"],"BorderB"=>$OverrideColors[$ID]["BorderB"]); } else { $Color = $this->getRandomColor(); } }
+
+             if ( $Y2 != VOID )
+              {
+               $BarHeight = $Y1 - $Y2;
+
+               if ( $Serie["Data"][$Key] == 0 )
+                {
+                 $this->drawLine($X+$XOffset+$XSpace,$Y1,$X+$XOffset+$XSize-$XSpace,$Y1,$Color);
+                 if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X+$XOffset+$XSpace).",".floor($Y1-1).",".floor($X+$XOffset+$XSize-$XSpace).",".floor($Y1+1),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+                }
+               else
+                {
+                 if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X+$XOffset+$XSpace).",".floor($Y1).",".floor($X+$XOffset+$XSize-$XSpace).",".floor($Y2),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+                 if ( $Rounded )
+                  $this->drawRoundedFilledRectangle($X+$XOffset+$XSpace,$Y1,$X+$XOffset+$XSize-$XSpace,$Y2,$RoundRadius,$Color);
+                 else
+                  {
+                   $this->drawFilledRectangle($X+$XOffset+$XSpace,$Y1,$X+$XOffset+$XSize-$XSpace,$Y2,$Color);
+
+                   if ( $InnerColor != NULL ) { $this->drawRectangle($X+$XOffset+$XSpace+1,min($Y1,$Y2)+1,$X+$XOffset+$XSize-$XSpace-1,max($Y1,$Y2)-1,$InnerColor); }
+
+                   if ( $Gradient )
+                    {
+                     $this->Shadow  = FALSE;
+
+                     if ( $GradientMode == GRADIENT_SIMPLE )
+                      {
+                       if ( $Serie["Data"][$Key] >= 0 )
+                        $GradienColor = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                       else
+                        $GradienColor = array("StartR"=>$GradientEndR,"StartG"=>$GradientEndG,"StartB"=>$GradientEndB,"EndR"=>$GradientStartR,"EndG"=>$GradientStartG,"EndB"=>$GradientStartB,"Alpha"=>$GradientAlpha);
+
+                       $this->drawGradientArea($X+$XOffset+$XSpace,$Y1,$X+$XOffset+$XSize-$XSpace,$Y2,DIRECTION_VERTICAL,$GradienColor);
+                      }
+                     elseif ( $GradientMode == GRADIENT_EFFECT_CAN )
+                      {
+                       $GradienColor1 = array("StartR"=>$GradientEndR,"StartG"=>$GradientEndG,"StartB"=>$GradientEndB,"EndR"=>$GradientStartR,"EndG"=>$GradientStartG,"EndB"=>$GradientStartB,"Alpha"=>$GradientAlpha);
+                       $GradienColor2 = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                       $XSpan = floor($XSize / 3);
+
+                       $this->drawGradientArea($X+$XOffset+$XSpace,$Y1,$X+$XOffset+$XSpan-$XSpace,$Y2,DIRECTION_HORIZONTAL,$GradienColor1);
+                       $this->drawGradientArea($X+$XOffset+$XSpan+$XSpace,$Y1,$X+$XOffset+$XSize-$XSpace,$Y2,DIRECTION_HORIZONTAL,$GradienColor2);
+                      }
+                     $this->Shadow = $RestoreShadow;
+                    }
+                  }
+
+                 if ( $Draw0Line )
+                  {
+                   $Line0Color = array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20);
+
+                   if ( abs($Y1 - $Y2) > 3 ) { $Line0Width = 3; } else { $Line0Width = 1; }
+                   if ( $Y1 - $Y2 < 0 ) { $Line0Width = -$Line0Width; }
+
+                   $this->drawFilledRectangle($X+$XOffset+$XSpace,floor($Y1),$X+$XOffset+$XSize-$XSpace,floor($Y1)-$Line0Width,$Line0Color);
+                   $this->drawLine($X+$XOffset+$XSpace,floor($Y1),$X+$XOffset+$XSize-$XSpace,floor($Y1),$Line0Color);
+                  }
+                }
+
+               if ( $DisplayValues && $Serie["Data"][$Key] != VOID )
+                {
+                 if ( $DisplayShadow ) { $this->Shadow = TRUE; }
+
+                 $Caption    = $this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit);
+                 $TxtPos     = $this->getTextBox(0,0,$DisplayFont,$DisplaySize,90,$Caption);
+                 $TxtHeight  = $TxtPos[0]["Y"] - $TxtPos[1]["Y"] + $TxtMargin;
+
+                 if ( $DisplayPos == LABEL_POS_INSIDE && abs($TxtHeight) < abs($BarHeight) )
+                  {
+                   $CenterX = (($X+$XOffset+$XSize-$XSpace)-($X+$XOffset+$XSpace))/2 + $X+$XOffset+$XSpace;
+                   $CenterY = ($Y2-$Y1)/2 + $Y1;
+
+                   $this->drawText($CenterX,$CenterY,$Caption,array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontSize"=>$DisplaySize,"Angle"=>90));
+                  }
+                 else
+                  {
+                   if ( $Serie["Data"][$Key] >= 0 ) { $Align = TEXT_ALIGN_BOTTOMMIDDLE; $Offset = $DisplayOffset; } else { $Align = TEXT_ALIGN_TOPMIDDLE; $Offset = -$DisplayOffset; }
+                   $this->drawText($X+$XOffset+$XSize/2,$Y2-$Offset,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>$Align,"FontSize"=>$DisplaySize));
+                  }
+
+                 $this->Shadow = $RestoreShadow;
+                }
+              }
+
+             $X = $X + $XStep;
+             $ID++;
+            }
+          }
+         else
+          {
+           if ( $YZero < $this->GraphAreaX1+1 ) { $YZero = $this->GraphAreaX1+1; }
+           if ( $YZero > $this->GraphAreaX2-1 ) { $YZero = $this->GraphAreaX2-1; }
+
+           if ( $XDivs == 0 ) { $YStep = 0; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           
+           $Y = $this->GraphAreaY1 + $XMargin;
+
+           if ( $AroundZero ) { $X1 = $YZero; } else { $X1 = $this->GraphAreaX1+1; }
+           if ( $XDivs == 0 ) { $YSize = ($this->GraphAreaY2-$this->GraphAreaY1)/($SeriesCount+$Interleave); } else { $YSize   = ($YStep / ($SeriesCount+$Interleave) ); }
+           
+           $YOffset = -($YSize*$SeriesCount)/2 + $CurrentSerie * $YSize;
+           if ( $Y + $YOffset <= $this->GraphAreaY1 ) { $YOffset = $this->GraphAreaY1 - $Y + 1 ; }
+
+           $this->DataSet->Data["Series"][$SerieName]["XOffset"] = $YOffset + $YSize / 2;
+
+           if ( $Rounded || $BorderR != -1 ) { $YSpace = 1; } else { $YSpace = 0; }
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+
+           $ID = 0 ;
+           foreach($PosArray as $Key => $X2)
+            {
+             if ( $Floating0Serie != NULL )
+              {
+               if ( isset($Data["Series"][$Floating0Serie]["Data"][$Key]) )
+                $Value = $Data["Series"][$Floating0Serie]["Data"][$Key];
+               else { $Value = 0; }
+
+               $YZero = $this->scaleComputeY($Value,array("AxisID"=>$Serie["Axis"]));
+               if ( $YZero < $this->GraphAreaX1+1 ) { $YZero = $this->GraphAreaX1+1; }
+               if ( $YZero > $this->GraphAreaX2-1 ) { $YZero = $this->GraphAreaX2-1; }
+               if ( $AroundZero ) { $X1 = $YZero; } else { $X1 = $this->GraphAreaX1+1; }
+              }
+
+             if ( $OverrideColors != NULL )
+              { if ( isset($OverrideColors[$ID]) ) { $Color = array("R"=>$OverrideColors[$ID]["R"],"G"=>$OverrideColors[$ID]["G"],"B"=>$OverrideColors[$ID]["B"],"Alpha"=>$OverrideColors[$ID]["Alpha"],"BorderR"=>$OverrideColors[$ID]["BorderR"],"BorderG"=>$OverrideColors[$ID]["BorderG"],"BorderB"=>$OverrideColors[$ID]["BorderB"]); } else { $Color = $this->getRandomColor(); } }
+
+             if ( $X2 != VOID )
+              {
+               $BarWidth = $X2 - $X1;
+
+               if ( $Serie["Data"][$Key] == 0 )
+                {
+                 $this->drawLine($X1,$Y+$YOffset+$YSpace,$X1,$Y+$YOffset+$YSize-$YSpace,$Color);
+                 if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X1-1).",".floor($Y+$YOffset+$YSpace).",".floor($X1+1).",".floor($Y+$YOffset+$YSize-$YSpace),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+                }
+               else
+                {
+                 if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X1).",".floor($Y+$YOffset+$YSpace).",".floor($X2).",".floor($Y+$YOffset+$YSize-$YSpace),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+                 if ( $Rounded )
+                  $this->drawRoundedFilledRectangle($X1+1,$Y+$YOffset+$YSpace,$X2,$Y+$YOffset+$YSize-$YSpace,$RoundRadius,$Color);
+                 else
+                  {
+                   $this->drawFilledRectangle($X1,$Y+$YOffset+$YSpace,$X2,$Y+$YOffset+$YSize-$YSpace,$Color);
+
+                   if ( $InnerColor != NULL ) { $this->drawRectangle(min($X1,$X2)+1,$Y+$YOffset+$YSpace+1,max($X1,$X2)-1,$Y+$YOffset+$YSize-$YSpace-1,$InnerColor); }
+
+                   if ( $Gradient )
+                    {
+                     $this->Shadow  = FALSE;
+
+                     if ( $GradientMode == GRADIENT_SIMPLE )
+                      {
+                       if ( $Serie["Data"][$Key] >= 0 )
+                        $GradienColor = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                       else
+                        $GradienColor = array("StartR"=>$GradientEndR,"StartG"=>$GradientEndG,"StartB"=>$GradientEndB,"EndR"=>$GradientStartR,"EndG"=>$GradientStartG,"EndB"=>$GradientStartB,"Alpha"=>$GradientAlpha);
+
+                       $this->drawGradientArea($X1,$Y+$YOffset+$YSpace,$X2,$Y+$YOffset+$YSize-$YSpace,DIRECTION_HORIZONTAL,$GradienColor);
+                      }
+                     elseif ( $GradientMode == GRADIENT_EFFECT_CAN )
+                      {
+                       $GradienColor1 = array("StartR"=>$GradientEndR,"StartG"=>$GradientEndG,"StartB"=>$GradientEndB,"EndR"=>$GradientStartR,"EndG"=>$GradientStartG,"EndB"=>$GradientStartB,"Alpha"=>$GradientAlpha);
+                       $GradienColor2 = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                       $YSpan = floor($YSize / 3);
+
+                       $this->drawGradientArea($X1,$Y+$YOffset+$YSpace,$X2,$Y+$YOffset+$YSpan-$YSpace,DIRECTION_VERTICAL,$GradienColor1);
+                       $this->drawGradientArea($X1,$Y+$YOffset+$YSpan,$X2,$Y+$YOffset+$YSize-$YSpace,DIRECTION_VERTICAL,$GradienColor2);
+                      }
+                     $this->Shadow = $RestoreShadow;
+                    }
+                  }
+
+                 if ( $Draw0Line )
+                  {
+                   $Line0Color = array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20);
+
+                   if ( abs($X1 - $X2) > 3 ) { $Line0Width = 3; } else { $Line0Width = 1; }
+                   if ( $X2 - $X1 < 0 ) { $Line0Width = -$Line0Width; }
+
+                   $this->drawFilledRectangle(floor($X1),$Y+$YOffset+$YSpace,floor($X1)+$Line0Width,$Y+$YOffset+$YSize-$YSpace,$Line0Color);
+                   $this->drawLine(floor($X1),$Y+$YOffset+$YSpace,floor($X1),$Y+$YOffset+$YSize-$YSpace,$Line0Color);
+                  }
+                }
+
+               if ( $DisplayValues && $Serie["Data"][$Key] != VOID ) 
+                {
+                 if ( $DisplayShadow ) { $this->Shadow = TRUE; }
+
+                 $Caption   = $this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit);
+                 $TxtPos    = $this->getTextBox(0,0,$DisplayFont,$DisplaySize,0,$Caption);
+                 $TxtWidth  = $TxtPos[1]["X"] - $TxtPos[0]["X"] + $TxtMargin;
+
+                 if ( $DisplayPos == LABEL_POS_INSIDE && abs($TxtWidth) < abs($BarWidth) )
+                  {
+                   $CenterX = ($X2-$X1)/2 + $X1;
+                   $CenterY = (($Y+$YOffset+$YSize-$YSpace)-($Y+$YOffset+$YSpace))/2 + ($Y+$YOffset+$YSpace);
+
+                   $this->drawText($CenterX,$CenterY,$Caption,array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontSize"=>$DisplaySize));
+                  }
+                 else
+                  {
+                   if ( $Serie["Data"][$Key] >= 0 ) { $Align = TEXT_ALIGN_MIDDLELEFT; $Offset = $DisplayOffset; } else { $Align = TEXT_ALIGN_MIDDLERIGHT; $Offset = -$DisplayOffset; }
+                   $this->drawText($X2+$Offset,$Y+$YOffset+$YSize/2,$Caption,array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>$Align,"FontSize"=>$DisplaySize));
+                  }
+
+                 $this->Shadow = $RestoreShadow;
+                }
+              }
+             $Y = $Y + $YStep;
+             $ID++;
+            }
+          }
+         $CurrentSerie++;
+        }
+      }
+    }
+
+   /* Draw a bar chart */
+   function drawStackedBarChart($Format=NULL)
+    {
+     $DisplayValues	= isset($Format["DisplayValues"]) ? $Format["DisplayValues"] : FALSE;
+     $DisplayOrientation = isset($Format["DisplayOrientation"]) ? $Format["DisplayOrientation"] : ORIENTATION_AUTO;
+     $DisplayRound      = isset($Format["DisplayRound"]) ? $Format["DisplayRound"] : 0;
+     $DisplayColor	= isset($Format["DisplayColor"]) ? $Format["DisplayColor"] : DISPLAY_MANUAL;
+     $DisplayFont	= isset($Format["DisplayFont"]) ? $Format["DisplayFont"] : $this->FontName;
+     $DisplaySize	= isset($Format["DisplaySize"]) ? $Format["DisplaySize"] : $this->FontSize;
+     $DisplayR		= isset($Format["DisplayR"]) ? $Format["DisplayR"] : 0;
+     $DisplayG		= isset($Format["DisplayG"]) ? $Format["DisplayG"] : 0;
+     $DisplayB		= isset($Format["DisplayB"]) ? $Format["DisplayB"] : 0;
+     $Interleave	= isset($Format["Interleave"]) ? $Format["Interleave"] : .5;
+     $Rounded		= isset($Format["Rounded"]) ? $Format["Rounded"] : FALSE;
+     $RoundRadius	= isset($Format["RoundRadius"]) ? $Format["RoundRadius"] : 4;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : -1;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : -1;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : -1;
+     $Gradient		= isset($Format["Gradient"]) ? $Format["Gradient"] : FALSE;
+     $GradientMode	= isset($Format["GradientMode"]) ? $Format["GradientMode"] : GRADIENT_SIMPLE;
+     $GradientAlpha	= isset($Format["GradientAlpha"]) ? $Format["GradientAlpha"] : 20;
+     $GradientStartR	= isset($Format["GradientStartR"]) ? $Format["GradientStartR"] : 255;
+     $GradientStartG	= isset($Format["GradientStartG"]) ? $Format["GradientStartG"] : 255;
+     $GradientStartB	= isset($Format["GradientStartB"]) ? $Format["GradientStartB"] : 255;
+     $GradientEndR	= isset($Format["GradientEndR"]) ? $Format["GradientEndR"] : 0;
+     $GradientEndG	= isset($Format["GradientEndG"]) ? $Format["GradientEndG"] : 0;
+     $GradientEndB	= isset($Format["GradientEndB"]) ? $Format["GradientEndB"] : 0;
+     $InnerSurrounding	= isset($Format["InnerSurrounding"]) ? $Format["InnerSurrounding"] : NULL;
+     $InnerBorderR	= isset($Format["InnerBorderR"]) ? $Format["InnerBorderR"] : -1;
+     $InnerBorderG	= isset($Format["InnerBorderG"]) ? $Format["InnerBorderG"] : -1;
+     $InnerBorderB	= isset($Format["InnerBorderB"]) ? $Format["InnerBorderB"] : -1;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $FontFactor	= isset($Format["FontFactor"]) ? $Format["FontFactor"] : 8;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_STACKED;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     $RestoreShadow = $this->Shadow;
+
+     $LastX = ""; $LastY = "";
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"];
+         if ( $DisplayColor == DISPLAY_AUTO ) { $DisplayR = 255; $DisplayG = 255; $DisplayB = 255; }
+         if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+         if ( $InnerSurrounding != NULL ) { $InnerBorderR = $R+$InnerSurrounding; $InnerBorderG = $G+$InnerSurrounding; $InnerBorderB = $B+$InnerSurrounding; }
+         if ( $InnerBorderR == -1 ) { $InnerColor = NULL; } else { $InnerColor = array("R"=>$InnerBorderR,"G"=>$InnerBorderG,"B"=>$InnerBorderB); }
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         if (isset($Serie["Description"])) { $SerieDescription = $Serie["Description"]; } else { $SerieDescription = $SerieName; }
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]),TRUE);
+         $YZero    = $this->scaleComputeY(0,array("AxisID"=>$Serie["Axis"]));
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         $Color = array("TransCorner"=>TRUE,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB);
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+           if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X     = $this->GraphAreaX1 + $XMargin;
+
+           $XSize   = ($XStep / (1+$Interleave) );
+           $XOffset = -($XSize/2);
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $Height)
+            {
+             if ( $Height != VOID && $Serie["Data"][$Key] != 0 )
+              {
+               if ( $Serie["Data"][$Key] > 0 ) { $Pos = "+"; } else { $Pos = "-"; }
+
+               if ( !isset($LastY[$Key] ) ) { $LastY[$Key] = ""; }
+               if ( !isset($LastY[$Key][$Pos] ) ) { $LastY[$Key][$Pos] = $YZero; }
+
+               $Y1 = $LastY[$Key][$Pos];
+               $Y2 = $Y1 - $Height;
+
+               if ( ($Rounded || $BorderR != -1) && ($Pos == "+" && $Y1 != $YZero) ) { $YSpaceUp = 1; } else { $YSpaceUp = 0; }
+               if ( ($Rounded || $BorderR != -1) && ($Pos == "-" && $Y1 != $YZero) ) { $YSpaceDown = 1; } else { $YSpaceDown = 0; }
+
+               if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X+$XOffset).",".floor($Y1-$YSpaceUp+$YSpaceDown).",".floor($X+$XOffset+$XSize).",".floor($Y2),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+               if ( $Rounded )
+                $this->drawRoundedFilledRectangle($X+$XOffset,$Y1-$YSpaceUp+$YSpaceDown,$X+$XOffset+$XSize,$Y2,$RoundRadius,$Color);
+               else
+                {
+                 $this->drawFilledRectangle($X+$XOffset,$Y1-$YSpaceUp+$YSpaceDown,$X+$XOffset+$XSize,$Y2,$Color);
+
+                 if ( $InnerColor != NULL ) { $RestoreShadow = $this->Shadow; $this->Shadow = FALSE; $this->drawRectangle(min($X+$XOffset+1,$X+$XOffset+$XSize),min($Y1-$YSpaceUp+$YSpaceDown,$Y2)+1,max($X+$XOffset+1,$X+$XOffset+$XSize)-1,max($Y1-$YSpaceUp+$YSpaceDown,$Y2)-1,$InnerColor); $this->Shadow = $RestoreShadow;}
+
+                 if ( $Gradient )
+                  {
+                   $this->Shadow  = FALSE;
+
+                   if ( $GradientMode == GRADIENT_SIMPLE )
+                    {
+                     $GradientColor = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                     $this->drawGradientArea($X+$XOffset,$Y1-1-$YSpaceUp+$YSpaceDown,$X+$XOffset+$XSize,$Y2+1,DIRECTION_VERTICAL,$GradientColor);
+                    }
+                   elseif ( $GradientMode == GRADIENT_EFFECT_CAN )
+                    {
+                     $GradientColor1 = array("StartR"=>$GradientEndR,"StartG"=>$GradientEndG,"StartB"=>$GradientEndB,"EndR"=>$GradientStartR,"EndG"=>$GradientStartG,"EndB"=>$GradientStartB,"Alpha"=>$GradientAlpha);
+                     $GradientColor2 = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                     $XSpan = floor($XSize / 3);
+
+                     $this->drawGradientArea($X+$XOffset-.5,$Y1-.5-$YSpaceUp+$YSpaceDown,$X+$XOffset+$XSpan,$Y2+.5,DIRECTION_HORIZONTAL,$GradientColor1);
+                     $this->drawGradientArea($X+$XSpan+$XOffset-.5,$Y1-.5-$YSpaceUp+$YSpaceDown,$X+$XOffset+$XSize,$Y2+.5,DIRECTION_HORIZONTAL,$GradientColor2);
+                    }
+                   $this->Shadow = $RestoreShadow;
+                  }
+                }
+
+               if ( $DisplayValues )
+                {
+                 $BarHeight = abs($Y2-$Y1)-2;
+                 $BarWidth  = $XSize+($XOffset/2)-$FontFactor;
+
+                 $Caption   = $this->scaleFormat(round($Serie["Data"][$Key],$DisplayRound),$Mode,$Format,$Unit);
+                 $TxtPos    = $this->getTextBox(0,0,$DisplayFont,$DisplaySize,0,$Caption);
+                 $TxtHeight = abs($TxtPos[2]["Y"] - $TxtPos[0]["Y"]);
+                 $TxtWidth  = abs($TxtPos[1]["X"] - $TxtPos[0]["X"]);
+
+                 $XCenter = ( ($X+$XOffset+$XSize) - ($X+$XOffset) ) / 2 + $X+$XOffset;
+                 $YCenter = ( ($Y2) - ($Y1-$YSpaceUp+$YSpaceDown) ) / 2 + $Y1-$YSpaceUp+$YSpaceDown;
+
+                 $Done = FALSE;
+                 if ( $DisplayOrientation == ORIENTATION_HORIZONTAL || $DisplayOrientation == ORIENTATION_AUTO )
+                  {
+                   if ( $TxtHeight < $BarHeight && $TxtWidth < $BarWidth  )
+                    {
+                     $this->drawText($XCenter,$YCenter,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontSize"=>$DisplaySize,"FontName"=>$DisplayFont));
+                     $Done = TRUE;
+                    }
+                  }
+
+                 if ( $DisplayOrientation == ORIENTATION_VERTICAL || ( $DisplayOrientation == ORIENTATION_AUTO && !$Done) )
+                  {
+                   if ( $TxtHeight < $BarWidth && $TxtWidth < $BarHeight  )
+                    $this->drawText($XCenter,$YCenter,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Angle"=>90,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontSize"=>$DisplaySize,"FontName"=>$DisplayFont));
+                  }
+                }
+
+               $LastY[$Key][$Pos] = $Y2;
+              }
+
+             $X = $X + $XStep;
+            }
+          }
+         else
+          {
+           if ( $YZero < $this->GraphAreaX1+1 ) { $YZero = $this->GraphAreaX1+1; }
+           if ( $YZero > $this->GraphAreaX2-1 ) { $YZero = $this->GraphAreaX2-1; }
+
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y     = $this->GraphAreaY1 + $XMargin;
+
+           $YSize   = $YStep / (1+$Interleave);
+           $YOffset = -($YSize/2);
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           foreach($PosArray as $Key => $Width)
+            {
+             if ( $Width != VOID && $Serie["Data"][$Key] != 0 )
+              {
+               if ( $Serie["Data"][$Key] > 0 ) { $Pos = "+"; } else { $Pos = "-"; }
+
+               if ( !isset($LastX[$Key] ) ) { $LastX[$Key] = ""; }
+               if ( !isset($LastX[$Key][$Pos] ) ) { $LastX[$Key][$Pos] = $YZero; }
+
+               $X1 = $LastX[$Key][$Pos];
+               $X2 = $X1 + $Width;
+
+               if ( ($Rounded || $BorderR != -1) && ($Pos == "+" && $X1 != $YZero) ) { $XSpaceLeft = 2; } else { $XSpaceLeft = 0; }
+               if ( ($Rounded || $BorderR != -1) && ($Pos == "-" && $X1 != $YZero) ) { $XSpaceRight = 2; } else { $XSpaceRight = 0; }
+
+               if ( $RecordImageMap ) { $this->addToImageMap("RECT",floor($X1+$XSpaceLeft).",".floor($Y+$YOffset).",".floor($X2-$XSpaceRight).",".floor($Y+$YOffset+$YSize),$this->toHTMLColor($R,$G,$B),$SerieDescription,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit)); }
+
+               if ( $Rounded )
+                $this->drawRoundedFilledRectangle($X1+$XSpaceLeft,$Y+$YOffset,$X2-$XSpaceRight,$Y+$YOffset+$YSize,$RoundRadius,$Color);
+               else
+                {
+                 $this->drawFilledRectangle($X1+$XSpaceLeft,$Y+$YOffset,$X2-$XSpaceRight,$Y+$YOffset+$YSize,$Color);
+
+                 if ( $InnerColor != NULL ) { $RestoreShadow = $this->Shadow; $this->Shadow = FALSE; $this->drawRectangle(min($X1+$XSpaceLeft,$X2-$XSpaceRight)+1,min($Y+$YOffset,$Y+$YOffset+$YSize)+1,max($X1+$XSpaceLeft,$X2-$XSpaceRight)-1,max($Y+$YOffset,$Y+$YOffset+$YSize)-1,$InnerColor); $this->Shadow = $RestoreShadow;}
+
+                 if ( $Gradient )
+                  {
+                   $this->Shadow  = FALSE;
+
+                   if ( $GradientMode == GRADIENT_SIMPLE )
+                    {
+                     $GradientColor = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                     $this->drawGradientArea($X1+$XSpaceLeft,$Y+$YOffset,$X2-$XSpaceRight,$Y+$YOffset+$YSize,DIRECTION_HORIZONTAL,$GradientColor);
+                    }
+                   elseif ( $GradientMode == GRADIENT_EFFECT_CAN )
+                    {
+                     $GradientColor1 = array("StartR"=>$GradientEndR,"StartG"=>$GradientEndG,"StartB"=>$GradientEndB,"EndR"=>$GradientStartR,"EndG"=>$GradientStartG,"EndB"=>$GradientStartB,"Alpha"=>$GradientAlpha);
+                     $GradientColor2 = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB,"Alpha"=>$GradientAlpha);
+                     $YSpan = floor($YSize / 3);
+
+                     $this->drawGradientArea($X1+$XSpaceLeft,$Y+$YOffset,$X2-$XSpaceRight,$Y+$YOffset+$YSpan,DIRECTION_VERTICAL,$GradientColor1);
+                     $this->drawGradientArea($X1+$XSpaceLeft,$Y+$YOffset+$YSpan,$X2-$XSpaceRight,$Y+$YOffset+$YSize,DIRECTION_VERTICAL,$GradientColor2);
+                    }
+                   $this->Shadow = $RestoreShadow;
+                  }
+                }
+
+               if ( $DisplayValues )
+                {
+                 $BarWidth = abs($X2-$X1)-$FontFactor;
+                 $BarHeight = $YSize+($YOffset/2)-$FontFactor/2;
+                 $Caption   = $this->scaleFormat(round($Serie["Data"][$Key],$DisplayRound),$Mode,$Format,$Unit);
+                 $TxtPos    = $this->getTextBox(0,0,$DisplayFont,$DisplaySize,0,$Caption);
+                 $TxtHeight = abs($TxtPos[2]["Y"] - $TxtPos[0]["Y"]);
+                 $TxtWidth  = abs($TxtPos[1]["X"] - $TxtPos[0]["X"]);
+
+                 $XCenter  = ( $X2 - $X1 ) / 2 + $X1;
+                 $YCenter  = ( ($Y+$YOffset+$YSize) - ($Y+$YOffset) ) / 2 + $Y+$YOffset;
+
+                 $Done = FALSE;
+                 if ( $DisplayOrientation == ORIENTATION_HORIZONTAL || $DisplayOrientation == ORIENTATION_AUTO )
+                  {
+                   if ( $TxtHeight < $BarHeight && $TxtWidth < $BarWidth  )
+                    {
+                     $this->drawText($XCenter,$YCenter,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontSize"=>$DisplaySize,"FontName"=>$DisplayFont));
+                     $Done = TRUE;
+                    }
+                  }
+
+                 if ( $DisplayOrientation == ORIENTATION_VERTICAL || ( $DisplayOrientation == ORIENTATION_AUTO && !$Done) )
+                  {
+                   if ( $TxtHeight < $BarWidth && $TxtWidth < $BarHeight  )
+                    $this->drawText($XCenter,$YCenter,$this->scaleFormat($Serie["Data"][$Key],$Mode,$Format,$Unit),array("R"=>$DisplayR,"G"=>$DisplayG,"B"=>$DisplayB,"Angle"=>90,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontSize"=>$DisplaySize,"FontName"=>$DisplayFont));
+                  }
+                }
+
+               $LastX[$Key][$Pos] = $X2;
+              }
+
+             $Y = $Y + $YStep;
+            }
+          }
+        }
+      }
+    }
+
+   /* Draw a stacked area chart */
+   function drawStackedAreaChart($Format=NULL)
+    {
+     $DrawLine		= isset($Format["DrawLine"]) ? $Format["DrawLine"] : FALSE;
+     $LineSurrounding	= isset($Format["LineSurrounding"]) ? $Format["LineSurrounding"] : NULL;
+     $LineR		= isset($Format["LineR"]) ? $Format["LineR"] : VOID;
+     $LineG		= isset($Format["LineG"]) ? $Format["LineG"] : VOID;
+     $LineB		= isset($Format["LineB"]) ? $Format["LineB"] : VOID;
+     $LineAlpha		= isset($Format["LineAlpha"]) ? $Format["LineAlpha"] : 100;
+     $DrawPlot		= isset($Format["DrawPlot"]) ? $Format["DrawPlot"] : FALSE;
+     $PlotRadius	= isset($Format["PlotRadius"]) ? $Format["PlotRadius"] : 2;
+     $PlotBorder	= isset($Format["PlotBorder"]) ? $Format["PlotBorder"] : 1;
+     $PlotBorderSurrounding = isset($Format["PlotBorderSurrounding"]) ? $Format["PlotBorderSurrounding"] : NULL;
+     $PlotBorderR	= isset($Format["PlotBorderR"]) ? $Format["PlotBorderR"] : 0;
+     $PlotBorderG	= isset($Format["PlotBorderG"]) ? $Format["PlotBorderG"] : 0;
+     $PlotBorderB	= isset($Format["PlotBorderB"]) ? $Format["PlotBorderB"] : 0;
+     $PlotBorderAlpha	= isset($Format["PlotBorderAlpha"]) ? $Format["PlotBorderAlpha"] : 50;
+     $ForceTransparency	= isset($Format["ForceTransparency"]) ? $Format["ForceTransparency"] : NULL;
+
+     $this->LastChartLayout = CHART_LAST_LAYOUT_STACKED;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     $RestoreShadow = $this->Shadow;
+     $this->Shadow  = FALSE;
+
+     /* Build the offset data series */
+     $OffsetData    = "";
+     $OverallOffset = "";
+     $SerieOrder    = "";
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $SerieOrder[] = $SerieName;
+
+         foreach($Serie["Data"] as $Key => $Value)
+          {
+           if ( $Value == VOID ) { $Value = 0; }
+           if ($Value >= 0) { $Sign = "+"; } else { $Sign = "-"; }
+           if ( !isset($OverallOffset[$Key]) || !isset($OverallOffset[$Key][$Sign]) ) { $OverallOffset[$Key][$Sign] = 0; }
+
+           if ( $Sign == "+" )
+            { $Data["Series"][$SerieName]["Data"][$Key] = $Value + $OverallOffset[$Key][$Sign]; }
+           else
+            { $Data["Series"][$SerieName]["Data"][$Key] = $Value - $OverallOffset[$Key][$Sign]; }
+
+           $OverallOffset[$Key][$Sign] = $OverallOffset[$Key][$Sign] + abs($Value);
+          }
+        } 
+      }
+     $SerieOrder = array_reverse($SerieOrder);
+
+     $LastX = ""; $LastY = "";
+     foreach($SerieOrder as $Key => $SerieName)
+      {
+       $Serie = $Data["Series"][$SerieName];
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"];
+         if ( $ForceTransparency != NULL ) { $Alpha = $ForceTransparency; }
+
+         $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+
+         if ( $LineSurrounding != NULL )
+          $LineColor = array("R"=>$R+$LineSurrounding,"G"=>$G+$LineSurrounding,"B"=>$B+$LineSurrounding,"Alpha"=>$Alpha);
+         elseif ( $LineR != VOID )
+          $LineColor = array("R"=>$LineR,"G"=>$LineG,"B"=>$LineB,"Alpha"=>$LineAlpha);
+         else
+          $LineColor = $Color;
+
+         if ( $PlotBorderSurrounding != NULL )
+          $PlotBorderColor = array("R"=>$R+$PlotBorderSurrounding,"G"=>$G+$PlotBorderSurrounding,"B"=>$B+$PlotBorderSurrounding,"Alpha"=>$PlotBorderAlpha);
+         else
+          $PlotBorderColor = array("R"=>$PlotBorderR,"G"=>$PlotBorderG,"B"=>$PlotBorderB,"Alpha"=>$PlotBorderAlpha);
+
+         $AxisID	= $Serie["Axis"];
+         $Mode		= $Data["Axis"][$AxisID]["Display"];
+         $Format	= $Data["Axis"][$AxisID]["Format"];
+         $Unit		= $Data["Axis"][$AxisID]["Unit"];
+
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]),TRUE);
+         $YZero    = $this->scaleComputeY(0,array("AxisID"=>$Serie["Axis"]));
+
+         $this->DataSet->Data["Series"][$SerieName]["XOffset"] = 0;
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $YZero < $this->GraphAreaY1+1 ) { $YZero = $this->GraphAreaY1+1; }
+           if ( $YZero > $this->GraphAreaY2-1 ) { $YZero = $this->GraphAreaY2-1; }
+
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+
+           $Plots = ""; $Plots[] = $X; $Plots[] = $YZero;
+           foreach($PosArray as $Key => $Height)
+            {
+             if ( $Height != VOID ) { $Plots[] = $X; $Plots[] = $YZero-$Height; }
+             $X = $X + $XStep;
+            }
+           $Plots[] = $X-$XStep; $Plots[] = $YZero;
+
+           $this->drawPolygon($Plots,$Color);
+
+           $this->Shadow = $RestoreShadow;
+           if ( $DrawLine ) { for($i=2; $i<=count($Plots)-6; $i=$i+2) { $this->drawLine($Plots[$i],$Plots[$i+1],$Plots[$i+2],$Plots[$i+3],$LineColor); } }
+           if ( $DrawPlot )
+            {
+             for($i=2; $i<=count($Plots)-4; $i=$i+2)
+              {
+               if ( $PlotBorder != 0 )
+                { $this->drawFilledCircle($Plots[$i],$Plots[$i+1],$PlotRadius+$PlotBorder,$PlotBorderColor); }
+
+               $this->drawFilledCircle($Plots[$i],$Plots[$i+1],$PlotRadius,$Color);
+              }
+            }
+           $this->Shadow = FALSE;
+          }
+         elseif ( $Data["Orientation"] == SCALE_POS_TOPBOTTOM )
+          {
+           if ( $YZero < $this->GraphAreaX1+1 ) { $YZero = $this->GraphAreaX1+1; }
+           if ( $YZero > $this->GraphAreaX2-1 ) { $YZero = $this->GraphAreaX2-1; }
+
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y = $this->GraphAreaY1 + $XMargin;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+
+           $Plots = ""; $Plots[] = $YZero; $Plots[] = $Y;
+           foreach($PosArray as $Key => $Height)
+            {
+             if ( $Height != VOID ) { $Plots[] = $YZero+$Height; $Plots[] = $Y; }
+             $Y = $Y + $YStep;
+            }
+           $Plots[] = $YZero; $Plots[] = $Y-$YStep;
+
+           $this->drawPolygon($Plots,$Color);
+
+           $this->Shadow = $RestoreShadow;
+           if ( $DrawLine ) { for($i=2; $i<=count($Plots)-6; $i=$i+2) { $this->drawLine($Plots[$i],$Plots[$i+1],$Plots[$i+2],$Plots[$i+3],$LineColor); } }
+           if ( $DrawPlot )
+            {
+             for($i=2; $i<=count($Plots)-4; $i=$i+2)
+              {
+               if ( $PlotBorder != 0 )
+                { $this->drawFilledCircle($Plots[$i],$Plots[$i+1],$PlotRadius+$PlotBorder,$PlotBorderColor); }
+
+               $this->drawFilledCircle($Plots[$i],$Plots[$i+1],$PlotRadius,$Color);
+              }
+            }
+           $this->Shadow = FALSE;
+          }
+        }
+      }
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Returns a random color */
+   function getRandomColor($Alpha=100)
+    { return(array("R"=>rand(0,255),"G"=>rand(0,255),"B"=>rand(0,255),"Alpha"=>$Alpha)); }
+ 
+   /* Validate a palette */
+   function validatePalette($Colors,$Surrounding=NULL)
+    {
+     $Result = "";
+
+     if ( !is_array($Colors) ) { return($this->getRandomColor()); }
+
+     foreach($Colors as $Key => $Values)
+      {
+       if ( isset($Values["R"]) ) { $Result[$Key]["R"] = $Values["R"]; } else { $Result[$Key]["R"] = rand(0,255); }
+       if ( isset($Values["G"]) ) { $Result[$Key]["G"] = $Values["G"]; } else { $Result[$Key]["G"] = rand(0,255); }
+       if ( isset($Values["B"]) ) { $Result[$Key]["B"] = $Values["B"]; } else { $Result[$Key]["B"] = rand(0,255); }
+       if ( isset($Values["Alpha"]) ) { $Result[$Key]["Alpha"] = $Values["Alpha"]; } else { $Result[$Key]["Alpha"] = 100; }
+
+       if ( $Surrounding != NULL )
+        {
+         $Result[$Key]["BorderR"] = $Result[$Key]["R"] + $Surrounding;
+         $Result[$Key]["BorderG"] = $Result[$Key]["G"] + $Surrounding;
+         $Result[$Key]["BorderB"] = $Result[$Key]["B"] + $Surrounding;
+        }
+       else
+        {
+         if ( isset($Values["BorderR"]) )     { $Result[$Key]["BorderR"] = $Values["BorderR"]; } else { $Result[$Key]["BorderR"] = $Result[$Key]["R"]; }
+         if ( isset($Values["BorderG"]) )     { $Result[$Key]["BorderG"] = $Values["BorderG"]; } else { $Result[$Key]["BorderG"] = $Result[$Key]["G"]; }
+         if ( isset($Values["BorderB"]) )     { $Result[$Key]["BorderB"] = $Values["BorderB"]; } else { $Result[$Key]["BorderB"] = $Result[$Key]["B"]; }
+         if ( isset($Values["BorderAlpha"]) ) { $Result[$Key]["BorderAlpha"] = $Values["BorderAlpha"]; } else { $Result[$Key]["BorderAlpha"] = $Result[$Key]["Alpha"]; }
+        }
+      }
+
+     return($Result);
+    }
+
+   /* Draw the derivative chart associated to the data series */
+   function drawDerivative($Format=NULL)
+    {
+     $Offset		= isset($Format["Offset"]) ? $Format["Offset"] : 10;
+     $SerieSpacing	= isset($Format["SerieSpacing"]) ? $Format["SerieSpacing"] : 3;
+     $DerivativeHeight	= isset($Format["DerivativeHeight"]) ? $Format["DerivativeHeight"] : 4;
+     $ShadedSlopeBox	= isset($Format["ShadedSlopeBox"]) ? $Format["ShadedSlopeBox"] : FALSE;
+     $DrawBackground	= isset($Format["DrawBackground"]) ? $Format["DrawBackground"] : TRUE;
+     $BackgroundR	= isset($Format["BackgroundR"]) ? $Format["BackgroundR"] : 255;
+     $BackgroundG	= isset($Format["BackgroundG"]) ? $Format["BackgroundG"] : 255;
+     $BackgroundB	= isset($Format["BackgroundB"]) ? $Format["BackgroundB"] : 255;
+     $BackgroundAlpha	= isset($Format["BackgroundAlpha"]) ? $Format["BackgroundAlpha"] : 20;
+     $DrawBorder	= isset($Format["DrawBorder"]) ? $Format["DrawBorder"] : TRUE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 0;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 0;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 0;
+     $BorderAlpha	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : 100;
+     $Caption		= isset($Format["Caption"]) ? $Format["Caption"] : TRUE;
+     $CaptionHeight	= isset($Format["CaptionHeight"]) ? $Format["CaptionHeight"] : 10;
+     $CaptionWidth	= isset($Format["CaptionWidth"]) ? $Format["CaptionWidth"] : 20;
+     $CaptionMargin	= isset($Format["CaptionMargin"]) ? $Format["CaptionMargin"] : 4;
+     $CaptionLine	= isset($Format["CaptionLine"]) ? $Format["CaptionLine"] : FALSE;
+     $CaptionBox	= isset($Format["CaptionBox"]) ? $Format["CaptionBox"] : FALSE;
+     $CaptionBorderR	= isset($Format["CaptionBorderR"]) ? $Format["CaptionBorderR"] : 0;
+     $CaptionBorderG	= isset($Format["CaptionBorderG"]) ? $Format["CaptionBorderG"] : 0;
+     $CaptionBorderB	= isset($Format["CaptionBorderB"]) ? $Format["CaptionBorderB"] : 0;
+     $CaptionFillR	= isset($Format["CaptionFillR"]) ? $Format["CaptionFillR"] : 255;
+     $CaptionFillG	= isset($Format["CaptionFillG"]) ? $Format["CaptionFillG"] : 255;
+     $CaptionFillB	= isset($Format["CaptionFillB"]) ? $Format["CaptionFillB"] : 255;
+     $CaptionFillAlpha	= isset($Format["CaptionFillAlpha"]) ? $Format["CaptionFillAlpha"] : 80;
+     $PositiveSlopeStartR	= isset($Format["PositiveSlopeStartR"]) ? $Format["PositiveSlopeStartR"] : 184;
+     $PositiveSlopeStartG	= isset($Format["PositiveSlopeStartG"]) ? $Format["PositiveSlopeStartG"] : 234;
+     $PositiveSlopeStartB	= isset($Format["PositiveSlopeStartB"]) ? $Format["PositiveSlopeStartB"] : 88;
+     $PositiveSlopeEndR		= isset($Format["PositiveSlopeStartR"]) ? $Format["PositiveSlopeStartR"] : 239;
+     $PositiveSlopeEndG		= isset($Format["PositiveSlopeStartG"]) ? $Format["PositiveSlopeStartG"] : 31;
+     $PositiveSlopeEndB		= isset($Format["PositiveSlopeStartB"]) ? $Format["PositiveSlopeStartB"] : 36;
+     $NegativeSlopeStartR	= isset($Format["NegativeSlopeStartR"]) ? $Format["NegativeSlopeStartR"] : 184;
+     $NegativeSlopeStartG	= isset($Format["NegativeSlopeStartG"]) ? $Format["NegativeSlopeStartG"] : 234;
+     $NegativeSlopeStartB	= isset($Format["NegativeSlopeStartB"]) ? $Format["NegativeSlopeStartB"] : 88;
+     $NegativeSlopeEndR		= isset($Format["NegativeSlopeStartR"]) ? $Format["NegativeSlopeStartR"] : 67;
+     $NegativeSlopeEndG		= isset($Format["NegativeSlopeStartG"]) ? $Format["NegativeSlopeStartG"] : 124;
+     $NegativeSlopeEndB		= isset($Format["NegativeSlopeStartB"]) ? $Format["NegativeSlopeStartB"] : 227;
+
+     $Data = $this->DataSet->getData();
+
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+      $YPos = $this->DataSet->Data["GraphArea"]["Y2"] + $Offset;
+     else
+      $XPos = $this->DataSet->Data["GraphArea"]["X2"] + $Offset;
+
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; $Alpha = $Serie["Color"]["Alpha"]; $Ticks = $Serie["Ticks"]; $Weight = $Serie["Weight"];
+
+         $AxisID   = $Serie["Axis"];
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $Caption )
+            {
+             if ( $CaptionLine ) 
+              {
+               $StartX = floor($this->GraphAreaX1-$CaptionWidth+$XMargin-$CaptionMargin);
+               $EndX   = floor($this->GraphAreaX1-$CaptionMargin+$XMargin);
+
+               $CaptionSettings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight);
+               if ( $CaptionBox ) { $this->drawFilledRectangle($StartX,$YPos,$EndX,$YPos+$CaptionHeight,array("R"=>$CaptionFillR,"G"=>$CaptionFillG,"B"=>$CaptionFillB,"BorderR"=>$CaptionBorderR,"BorderG"=>$CaptionBorderG,"BorderB"=>$CaptionBorderB,"Alpha"=>$CaptionFillAlpha)); }
+               $this->drawLine($StartX+2,$YPos+($CaptionHeight/2),$EndX-2,$YPos+($CaptionHeight/2),$CaptionSettings);
+              }
+             else
+              $this->drawFilledRectangle($this->GraphAreaX1-$CaptionWidth+$XMargin-$CaptionMargin,$YPos,$this->GraphAreaX1-$CaptionMargin+$XMargin,$YPos+$CaptionHeight,array("R"=>$R,"G"=>$G,"B"=>$B,"BorderR"=>$CaptionBorderR,"BorderG"=>$CaptionBorderG,"BorderB"=>$CaptionBorderB));
+            }
+
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin;
+
+           $TopY    = $YPos + ($CaptionHeight/2) - ($DerivativeHeight/2);
+           $BottomY = $YPos + ($CaptionHeight/2) + ($DerivativeHeight/2);
+
+           $StartX  = floor($this->GraphAreaX1+$XMargin);
+           $EndX    = floor($this->GraphAreaX2-$XMargin);
+
+           if ( $DrawBackground ) { $this->drawFilledRectangle($StartX-1,$TopY-1,$EndX+1,$BottomY+1,array("R"=>$BackgroundR,"G"=>$BackgroundG,"B"=>$BackgroundB,"Alpha"=>$BackgroundAlpha)); }
+           if ( $DrawBorder ) { $this->drawRectangle($StartX-1,$TopY-1,$EndX+1,$BottomY+1,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha)); }
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+
+           $RestoreShadow = $this->Shadow;
+           $this->Shadow  = FALSE;
+
+           /* Determine the Max slope index */
+           $LastX = NULL; $LastY = NULL; $MinSlope = 0; $MaxSlope = 1;
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $Y != VOID && $LastX != NULL )
+              { $Slope = ($LastY - $Y); if ( $Slope > $MaxSlope ) { $MaxSlope = $Slope; } if ( $Slope < $MinSlope ) { $MinSlope = $Slope; } }
+
+             if ( $Y == VOID )
+              { $LastX = NULL; $LastY = NULL; }
+             else
+              { $LastX = $X; $LastY = $Y; }
+            }
+
+           $LastX = NULL; $LastY = NULL; $LastColor = NULL;
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $Y != VOID && $LastY != NULL )
+              {
+               $Slope = ($LastY - $Y);
+
+               if ( $Slope >= 0 )
+                {
+                 $SlopeIndex = (100 / $MaxSlope) * $Slope;
+                 $R = (($PositiveSlopeEndR - $PositiveSlopeStartR)/100)*$SlopeIndex+$PositiveSlopeStartR;
+                 $G = (($PositiveSlopeEndG - $PositiveSlopeStartG)/100)*$SlopeIndex+$PositiveSlopeStartG;
+                 $B = (($PositiveSlopeEndB - $PositiveSlopeStartB)/100)*$SlopeIndex+$PositiveSlopeStartB;
+                }
+               elseif ( $Slope < 0 )
+                {
+                 $SlopeIndex = (100 / abs($MinSlope)) * abs($Slope);
+                 $R = (($NegativeSlopeEndR - $NegativeSlopeStartR)/100)*$SlopeIndex+$NegativeSlopeStartR;
+                 $G = (($NegativeSlopeEndG - $NegativeSlopeStartG)/100)*$SlopeIndex+$NegativeSlopeStartG;
+                 $B = (($NegativeSlopeEndB - $NegativeSlopeStartB)/100)*$SlopeIndex+$NegativeSlopeStartB;
+                }
+
+               $Color = array("R"=>$R,"G"=>$G,"B"=>$B);
+
+               if ( $ShadedSlopeBox && $LastColor != NULL ) // && $Slope != 0
+                {
+                 $GradientSettings = array("StartR"=>$LastColor["R"],"StartG"=>$LastColor["G"],"StartB"=>$LastColor["B"],"EndR"=>$R,"EndG"=>$G,"EndB"=>$B);
+                 $this->drawGradientArea($LastX,$TopY,$X,$BottomY,DIRECTION_HORIZONTAL,$GradientSettings);
+                }
+               elseif ( !$ShadedSlopeBox || $LastColor == NULL ) // || $Slope == 0
+                $this->drawFilledRectangle(floor($LastX),$TopY,floor($X),$BottomY,$Color);
+
+               $LastColor = $Color;
+              }
+
+             if ( $Y == VOID )
+              { $LastY = NULL; }
+             else
+              { $LastX = $X; $LastY = $Y; }
+
+             $X = $X + $XStep;
+            }
+
+           $YPos = $YPos + $CaptionHeight + $SerieSpacing;
+          }
+         else
+          {
+           if ( $Caption )
+            {
+             $StartY = floor($this->GraphAreaY1-$CaptionWidth+$XMargin-$CaptionMargin);
+             $EndY   = floor($this->GraphAreaY1-$CaptionMargin+$XMargin);
+             if ( $CaptionLine ) 
+              {
+               $CaptionSettings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight);
+               if ( $CaptionBox ) { $this->drawFilledRectangle($XPos,$StartY,$XPos+$CaptionHeight,$EndY,array("R"=>$CaptionFillR,"G"=>$CaptionFillG,"B"=>$CaptionFillB,"BorderR"=>$CaptionBorderR,"BorderG"=>$CaptionBorderG,"BorderB"=>$CaptionBorderB,"Alpha"=>$CaptionFillAlpha)); }
+               $this->drawLine($XPos+($CaptionHeight/2),$StartY+2,$XPos+($CaptionHeight/2),$EndY-2,$CaptionSettings);
+              }
+             else
+              $this->drawFilledRectangle($XPos,$StartY,$XPos+$CaptionHeight,$EndY,array("R"=>$R,"G"=>$G,"B"=>$B,"BorderR"=>$CaptionBorderR,"BorderG"=>$CaptionBorderG,"BorderB"=>$CaptionBorderB));
+            }
+
+
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $XStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y = $this->GraphAreaY1 + $XMargin;
+
+           $TopX    = $XPos + ($CaptionHeight/2) - ($DerivativeHeight/2);
+           $BottomX = $XPos + ($CaptionHeight/2) + ($DerivativeHeight/2);
+
+           $StartY  = floor($this->GraphAreaY1+$XMargin);
+           $EndY    = floor($this->GraphAreaY2-$XMargin);
+
+           if ( $DrawBackground ) { $this->drawFilledRectangle($TopX-1,$StartY-1,$BottomX+1,$EndY+1,array("R"=>$BackgroundR,"G"=>$BackgroundG,"B"=>$BackgroundB,"Alpha"=>$BackgroundAlpha)); }
+           if ( $DrawBorder ) { $this->drawRectangle($TopX-1,$StartY-1,$BottomX+1,$EndY+1,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha)); }
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+
+           $RestoreShadow = $this->Shadow;
+           $this->Shadow  = FALSE;
+
+           /* Determine the Max slope index */
+           $LastX = NULL; $LastY = NULL; $MinSlope = 0; $MaxSlope = 1;
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $X != VOID && $LastX != NULL )
+              { $Slope = ($X - $LastX); if ( $Slope > $MaxSlope ) { $MaxSlope = $Slope; } if ( $Slope < $MinSlope ) { $MinSlope = $Slope; } }
+
+             if ( $X == VOID )
+              { $LastX = NULL; }
+             else
+              { $LastX = $X; }
+            }
+
+           $LastX = NULL; $LastY = NULL; $LastColor = NULL;
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $X != VOID && $LastX != NULL )
+              {
+               $Slope = ($X - $LastX);
+
+               if ( $Slope >= 0 )
+                {
+                 $SlopeIndex = (100 / $MaxSlope) * $Slope;
+                 $R = (($PositiveSlopeEndR - $PositiveSlopeStartR)/100)*$SlopeIndex+$PositiveSlopeStartR;
+                 $G = (($PositiveSlopeEndG - $PositiveSlopeStartG)/100)*$SlopeIndex+$PositiveSlopeStartG;
+                 $B = (($PositiveSlopeEndB - $PositiveSlopeStartB)/100)*$SlopeIndex+$PositiveSlopeStartB;
+                }
+               elseif ( $Slope < 0 )
+                {
+                 $SlopeIndex = (100 / abs($MinSlope)) * abs($Slope);
+                 $R = (($NegativeSlopeEndR - $NegativeSlopeStartR)/100)*$SlopeIndex+$NegativeSlopeStartR;
+                 $G = (($NegativeSlopeEndG - $NegativeSlopeStartG)/100)*$SlopeIndex+$NegativeSlopeStartG;
+                 $B = (($NegativeSlopeEndB - $NegativeSlopeStartB)/100)*$SlopeIndex+$NegativeSlopeStartB;
+                }
+
+               $Color = array("R"=>$R,"G"=>$G,"B"=>$B);
+
+               if ( $ShadedSlopeBox && $LastColor != NULL )
+                {
+                 $GradientSettings = array("StartR"=>$LastColor["R"],"StartG"=>$LastColor["G"],"StartB"=>$LastColor["B"],"EndR"=>$R,"EndG"=>$G,"EndB"=>$B);
+
+                 $this->drawGradientArea($TopX,$LastY,$BottomX,$Y,DIRECTION_VERTICAL,$GradientSettings);
+                }
+               elseif ( !$ShadedSlopeBox || $LastColor == NULL ) 
+                $this->drawFilledRectangle($TopX,floor($LastY),$BottomX,floor($Y),$Color);
+
+               $LastColor = $Color;
+              }
+
+             if ( $X == VOID )
+              { $LastX = NULL; }
+             else
+              { $LastX = $X; $LastY = $Y; }
+
+             $Y = $Y + $XStep;
+            }
+
+           $XPos = $XPos + $CaptionHeight + $SerieSpacing;
+          }
+
+         $this->Shadow = $RestoreShadow;
+        }
+      }
+    }
+
+   /* Draw the line of best fit */
+   function drawBestFit($Format="")
+    {
+     $OverrideTicks	= isset($Format["Ticks"]) ? $Format["Ticks"] : NULL;
+     $OverrideR		= isset($Format["R"]) ? $Format["R"] : VOID;
+     $OverrideG		= isset($Format["G"]) ? $Format["G"] : VOID;
+     $OverrideB		= isset($Format["B"]) ? $Format["B"] : VOID;
+     $OverrideAlpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : VOID;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     foreach($Data["Series"] as $SerieName => $Serie)
+      {
+       if ( $Serie["isDrawable"] == TRUE && $SerieName != $Data["Abscissa"] )
+        {
+         if ( $OverrideR != VOID && $OverrideG != VOID && $OverrideB != VOID ) { $R = $OverrideR; $G = $OverrideG; $B = $OverrideB; } else { $R = $Serie["Color"]["R"]; $G = $Serie["Color"]["G"]; $B = $Serie["Color"]["B"]; }
+         if ( $OverrideTicks == NULL ) { $Ticks = $Serie["Ticks"]; } else { $Ticks = $OverrideTicks; }
+         if ( $OverrideAlpha == VOID ) { $Alpha = $Serie["Color"]["Alpha"]; } else { $Alpha = $OverrideAlpha; }
+
+         $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks);
+
+         $AxisID   = $Serie["Axis"];
+         $PosArray = $this->scaleComputeY($Serie["Data"],array("AxisID"=>$Serie["Axis"]));
+
+         if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+          {
+           if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+           $X = $this->GraphAreaX1 + $XMargin;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $Sxy = 0; $Sx = 0; $Sy = 0; $Sxx = 0;
+           foreach($PosArray as $Key => $Y)
+            {
+             if ( $Y != VOID )
+              {
+               $Sxy = $Sxy + $X*$Y;
+               $Sx  = $Sx + $X;
+               $Sy  = $Sy + $Y;
+               $Sxx = $Sxx + $X*$X;
+              }
+
+             $X = $X + $XStep;
+            }
+           $n = count($this->DataSet->stripVOID($PosArray)); //$n = count($PosArray);
+           $M = (($n*$Sxy)-($Sx*$Sy)) / (($n*$Sxx)-($Sx*$Sx));
+           $B = (($Sy)-($M*$Sx))/($n);
+
+           $X1 = $this->GraphAreaX1 + $XMargin;
+           $Y1 = $M * $X1 + $B;
+           $X2 = $this->GraphAreaX2 - $XMargin;
+           $Y2 = $M * $X2 + $B;
+
+           if ( $Y1 < $this->GraphAreaY1 ) { $X1 = $X1 + ($this->GraphAreaY1-$Y1); $Y1 = $this->GraphAreaY1; }
+           if ( $Y1 > $this->GraphAreaY2 ) { $X1 = $X1 + ($Y1-$this->GraphAreaY2); $Y1 = $this->GraphAreaY2; }
+           if ( $Y2 < $this->GraphAreaY1 ) { $X2 = $X2 - ($this->GraphAreaY1-$Y2); $Y2 = $this->GraphAreaY1; }
+           if ( $Y2 > $this->GraphAreaY2 ) { $X2 = $X2 - ($Y2-$this->GraphAreaY2); $Y2 = $this->GraphAreaY2; }
+
+           $this->drawLine($X1,$Y1,$X2,$Y2,$Color);
+          }
+         else
+          {
+           if ( $XDivs == 0 ) { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $YStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+           $Y = $this->GraphAreaY1 + $XMargin;
+
+           if ( !is_array($PosArray) ) { $Value = $PosArray; $PosArray = ""; $PosArray[0] = $Value; }
+           $Sxy = 0; $Sx = 0; $Sy = 0; $Sxx = 0;
+           foreach($PosArray as $Key => $X)
+            {
+             if ( $X != VOID )
+              {
+               $Sxy = $Sxy + $X*$Y;
+               $Sx  = $Sx + $Y;
+               $Sy  = $Sy + $X;
+               $Sxx = $Sxx + $Y*$Y;
+              }
+
+             $Y = $Y + $YStep;
+            }
+           $n = count($this->DataSet->stripVOID($PosArray)); //$n = count($PosArray);
+           $M = (($n*$Sxy)-($Sx*$Sy)) / (($n*$Sxx)-($Sx*$Sx));
+           $B = (($Sy)-($M*$Sx))/($n);
+
+           $Y1 = $this->GraphAreaY1 + $XMargin;
+           $X1 = $M * $Y1 + $B;
+           $Y2 = $this->GraphAreaY2 - $XMargin;
+           $X2 = $M * $Y2 + $B;
+
+           if ( $X1 < $this->GraphAreaX1 ) { $Y1 = $Y1 + ($this->GraphAreaX1-$X1); $X1 = $this->GraphAreaX1; }
+           if ( $X1 > $this->GraphAreaX2 ) { $Y1 = $Y1 + ($X1-$this->GraphAreaX2); $X1 = $this->GraphAreaX2; }
+           if ( $X2 < $this->GraphAreaX1 ) { $Y2 = $Y2 - ($this->GraphAreaY1-$X2); $X2 = $this->GraphAreaX1; }
+           if ( $X2 > $this->GraphAreaX2 ) { $Y2 = $Y2 - ($X2-$this->GraphAreaX2); $X2 = $this->GraphAreaX2; }
+
+           $this->drawLine($X1,$Y1,$X2,$Y2,$Color);
+          }
+        }
+      }
+    }
+
+   /* Write labels */
+   function writeLabel($SeriesName,$Indexes,$Format="")
+    {
+     $OverrideTitle	= isset($Format["OverrideTitle"]) ? $Format["OverrideTitle"] : NULL;
+     $ForceLabels	= isset($Format["ForceLabels"]) ? $Format["ForceLabels"] : NULL;
+     $DrawPoint		= isset($Format["DrawPoint"]) ? $Format["DrawPoint"] : LABEL_POINT_BOX;
+     $DrawVerticalLine	= isset($Format["DrawVerticalLine"]) ? $Format["DrawVerticalLine"] : FALSE;
+     $VerticalLineR	= isset($Format["VerticalLineR"]) ? $Format["VerticalLineR"] : 0;
+     $VerticalLineG	= isset($Format["VerticalLineG"]) ? $Format["VerticalLineG"] : 0;
+     $VerticalLineB	= isset($Format["VerticalLineB"]) ? $Format["VerticalLineB"] : 0;
+     $VerticalLineAlpha	= isset($Format["VerticalLineAlpha"]) ? $Format["VerticalLineAlpha"] : 40;
+     $VerticalLineTicks	= isset($Format["VerticalLineTicks"]) ? $Format["VerticalLineTicks"] : 2;
+
+     $Data = $this->DataSet->getData();
+     list($XMargin,$XDivs) = $this->scaleGetXSettings();
+
+     if ( !is_array($Indexes) )    { $Index = $Indexes; $Indexes = ""; $Indexes[] = $Index; }
+     if ( !is_array($SeriesName) ) { $SerieName = $SeriesName; $SeriesName = ""; $SeriesName[] = $SerieName; }
+     if ( $ForceLabels != NULL && !is_array($ForceLabels) ) { $ForceLabel = $ForceLabels; $ForceLabels = ""; $ForceLabels[] = $ForceLabel; }
+
+     foreach ($Indexes as $Key => $Index)
+      {
+       $Series = "";
+
+       if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+        {
+         if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1)/4; } else { $XStep = ($this->GraphAreaX2-$this->GraphAreaX1-$XMargin*2)/$XDivs; }
+         $X = $this->GraphAreaX1 + $XMargin + $Index * $XStep;
+
+         if ( $DrawVerticalLine ) { $this->drawLine($X,$this->GraphAreaY1+$Data["YMargin"],$X,$this->GraphAreaY2-$Data["YMargin"],array("R"=>$VerticalLineR,"G"=>$VerticalLineG,"B"=>$VerticalLineB,"Alpha"=>$VerticalLineAlpha,"Ticks"=>$VerticalLineTicks)); }
+
+         $MinY = $this->GraphAreaY2;
+         foreach ($SeriesName as $iKey => $SerieName)
+          {
+           if ( isset($Data["Series"][$SerieName]["Data"][$Index]) )
+            {
+             $AxisID      = $Data["Series"][$SerieName]["Axis"];
+
+             if ( $OverrideTitle != NULL)
+              $Description = $OverrideTitle;
+             elseif ( count($SeriesName) == 1 )
+              {
+               if ( isset($Data["Abscissa"]) && isset($Data["Series"][$Data["Abscissa"]]["Data"][$Index]) )
+                $Description = $Data["Series"][$SerieName]["Description"]." - ".$Data["Series"][$Data["Abscissa"]]["Data"][$Index];
+               else
+                $Description = $Data["Series"][$SerieName]["Description"];
+              }
+             elseif ( isset($Data["Abscissa"]) && isset($Data["Series"][$Data["Abscissa"]]["Data"][$Index]) )
+              $Description = $Data["Series"][$Data["Abscissa"]]["Data"][$Index];
+
+             $AxisMode     = $Data["Axis"][$AxisID]["Display"];
+             $AxisFormat   = $Data["Axis"][$AxisID]["Format"];
+             $AxisUnit     = $Data["Axis"][$AxisID]["Unit"];
+
+             $Serie = "";
+             $Serie["R"] = $Data["Series"][$SerieName]["Color"]["R"];
+             $Serie["G"] = $Data["Series"][$SerieName]["Color"]["G"];
+             $Serie["B"] = $Data["Series"][$SerieName]["Color"]["B"];
+             $Serie["Alpha"] = $Data["Series"][$SerieName]["Color"]["Alpha"];
+
+             if ( count($SeriesName) == 1 && isset($Data["Series"][$SerieName]["XOffset"]) )
+              $SerieOffset = $Data["Series"][$SerieName]["XOffset"];
+             else
+              $SerieOffset = 0;
+
+             $Value = $Data["Series"][$SerieName]["Data"][$Index];
+             if ( $Value == VOID ) { $Value = "NaN"; }
+
+             if ( $ForceLabels != NULL )
+              $Caption = isset($ForceLabels[$Key]) ? $ForceLabels[$Key] : "Not set";
+             else
+              $Caption = $this->scaleFormat($Value,$AxisMode,$AxisFormat,$AxisUnit);
+
+             if ( $this->LastChartLayout == CHART_LAST_LAYOUT_STACKED )
+              {
+               if ( $Value >=0 ) { $LookFor = "+"; } else { $LookFor = "-"; }
+
+               $Value = 0; $Done = FALSE;
+               foreach($Data["Series"] as $Name => $SerieLookup)
+                {
+                 if ( $SerieLookup["isDrawable"] == TRUE && $Name != $Data["Abscissa"] && !$Done )
+                  {
+                   if ( isset($Data["Series"][$Name]["Data"][$Index]) && $Data["Series"][$Name]["Data"][$Index] != VOID )
+                    {
+                     if ($Data["Series"][$Name]["Data"][$Index] >= 0 && $LookFor == "+" ) { $Value = $Value + $Data["Series"][$Name]["Data"][$Index]; }
+                     if ($Data["Series"][$Name]["Data"][$Index] < 0 && $LookFor == "-" )  { $Value = $Value - $Data["Series"][$Name]["Data"][$Index]; }
+                     if ($Name == $SerieName ) { $Done = TRUE; }
+                    }
+                  }
+                }
+              }
+
+             $X = floor($this->GraphAreaX1 + $XMargin + $Index * $XStep + $SerieOffset);
+             $Y = floor($this->scaleComputeY($Value,array("AxisID"=>$AxisID)));
+
+             if ($Y < $MinY) { $MinY = $Y; }
+
+             if ( $DrawPoint == LABEL_POINT_CIRCLE )
+              $this->drawFilledCircle($X,$Y,3,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+             elseif ( $DrawPoint == LABEL_POINT_BOX )
+              $this->drawFilledRectangle($X-2,$Y-2,$X+2,$Y+2,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+
+             $Series[] = array("Format"=>$Serie,"Caption"=>$Caption);
+            }
+          }
+         $this->drawLabelBox($X,$MinY-3,$Description,$Series,$Format);
+
+        }
+       else
+        {
+         if ( $XDivs == 0 ) { $XStep = ($this->GraphAreaY2-$this->GraphAreaY1)/4; } else { $XStep = ($this->GraphAreaY2-$this->GraphAreaY1-$XMargin*2)/$XDivs; }
+         $Y = $this->GraphAreaY1 + $XMargin + $Index * $XStep;
+
+         if ( $DrawVerticalLine ) { $this->drawLine($this->GraphAreaX1+$Data["YMargin"],$Y,$this->GraphAreaX2-$Data["YMargin"],$Y,array("R"=>$VerticalLineR,"G"=>$VerticalLineG,"B"=>$VerticalLineB,"Alpha"=>$VerticalLineAlpha,"Ticks"=>$VerticalLineTicks)); }
+
+         $MinX = $this->GraphAreaX2;
+         foreach ($SeriesName as $Key => $SerieName)
+          {
+           if ( isset($Data["Series"][$SerieName]["Data"][$Index]) )
+            {
+             $AxisID      = $Data["Series"][$SerieName]["Axis"];
+
+             if ( $OverrideTitle != NULL)
+              $Description = $OverrideTitle;
+             elseif ( count($SeriesName) == 1 )
+              {
+               if ( isset($Data["Abscissa"]) && isset($Data["Series"][$Data["Abscissa"]]["Data"][$Index]) )
+                $Description = $Data["Series"][$SerieName]["Description"]." - ".$Data["Series"][$Data["Abscissa"]]["Data"][$Index];
+               else
+                $Description = $Data["Series"][$SerieName]["Description"];
+              }
+             elseif ( isset($Data["Abscissa"]) && isset($Data["Series"][$Data["Abscissa"]]["Data"][$Index]) )
+              $Description = $Data["Series"][$Data["Abscissa"]]["Data"][$Index];
+
+             $AxisMode     = $Data["Axis"][$AxisID]["Display"];
+             $AxisFormat   = $Data["Axis"][$AxisID]["Format"];
+             $AxisUnit     = $Data["Axis"][$AxisID]["Unit"];
+
+             $Serie = "";
+             if ( isset($Data["Extended"]["Palette"][$Index] ) )
+              {
+               $Serie["R"] = $Data["Extended"]["Palette"][$Index]["R"];
+               $Serie["G"] = $Data["Extended"]["Palette"][$Index]["G"];
+               $Serie["B"] = $Data["Extended"]["Palette"][$Index]["B"];
+               $Serie["Alpha"] = $Data["Extended"]["Palette"][$Index]["Alpha"];
+              }
+             else
+              {
+               $Serie["R"] = $Data["Series"][$SerieName]["Color"]["R"];
+               $Serie["G"] = $Data["Series"][$SerieName]["Color"]["G"];
+               $Serie["B"] = $Data["Series"][$SerieName]["Color"]["B"];
+               $Serie["Alpha"] = $Data["Series"][$SerieName]["Color"]["Alpha"];
+              }
+
+             if ( count($SeriesName) == 1 && isset($Data["Series"][$SerieName]["XOffset"]) )
+              $SerieOffset = $Data["Series"][$SerieName]["XOffset"];
+             else
+              $SerieOffset = 0;
+
+             $Value = $Data["Series"][$SerieName]["Data"][$Index];
+             if ( $ForceLabels != NULL )
+              $Caption = isset($ForceLabels[$Key]) ? $ForceLabels[$Key] : "Not set";
+             else
+              $Caption = $this->scaleFormat($Value,$AxisMode,$AxisFormat,$AxisUnit);
+             if ( $Value == VOID ) { $Value = "NaN"; }
+
+             if ( $this->LastChartLayout == CHART_LAST_LAYOUT_STACKED )
+              {
+               if ( $Value >=0 ) { $LookFor = "+"; } else { $LookFor = "-"; }
+
+               $Value = 0; $Done = FALSE;
+               foreach($Data["Series"] as $Name => $SerieLookup)
+                {
+                 if ( $SerieLookup["isDrawable"] == TRUE && $Name != $Data["Abscissa"] && !$Done )
+                  {
+                   if ( isset($Data["Series"][$Name]["Data"][$Index]) && $Data["Series"][$Name]["Data"][$Index] != VOID )
+                    {
+                     if ($Data["Series"][$Name]["Data"][$Index] >= 0 && $LookFor == "+" ) { $Value = $Value + $Data["Series"][$Name]["Data"][$Index]; }
+                     if ($Data["Series"][$Name]["Data"][$Index] < 0 && $LookFor == "-" )  { $Value = $Value - $Data["Series"][$Name]["Data"][$Index]; }
+                     if ($Name == $SerieName ) { $Done = TRUE; }
+                    }
+                  }
+                }
+              }
+
+             $X = floor($this->scaleComputeY($Value,array("AxisID"=>$AxisID)));
+             $Y = floor($this->GraphAreaY1 + $XMargin + $Index * $XStep + $SerieOffset);
+
+             if ($X < $MinX) { $MinX = $X; }
+
+             if ( $DrawPoint == LABEL_POINT_CIRCLE )
+              $this->drawFilledCircle($X,$Y,3,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+             elseif ( $DrawPoint == LABEL_POINT_BOX )
+              $this->drawFilledRectangle($X-2,$Y-2,$X+2,$Y+2,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+
+             $Series[] = array("Format"=>$Serie,"Caption"=>$Caption);
+            }
+          }
+         $this->drawLabelBox($MinX,$Y-3,$Description,$Series,$Format);
+
+        }
+      }
+    }
+
+   /* Draw a label box */
+   function drawLabelBox($X,$Y,$Title,$Captions,$Format="")
+    {
+     $NoTitle		= isset($Format["NoTitle"]) ? $Format["NoTitle"] : NULL;
+     $BoxWidth		= isset($Format["BoxWidth"]) ? $Format["BoxWidth"] : 50;
+     $DrawSerieColor	= isset($Format["DrawSerieColor"]) ? $Format["DrawSerieColor"] : TRUE;
+     $SerieR		= isset($Format["SerieR"]) ? $Format["SerieR"] : NULL;
+     $SerieG		= isset($Format["SerieG"]) ? $Format["SerieG"] : NULL;
+     $SerieB		= isset($Format["SerieB"]) ? $Format["SerieB"] : NULL;
+     $SerieAlpha	= isset($Format["SerieAlpha"]) ? $Format["SerieAlpha"] : NULL;
+     $SerieBoxSize	= isset($Format["SerieBoxSize"]) ? $Format["SerieBoxSize"] : 6;
+     $SerieBoxSpacing	= isset($Format["SerieBoxSpacing"]) ? $Format["SerieBoxSpacing"] : 4;
+     $VerticalMargin	= isset($Format["VerticalMargin"]) ? $Format["VerticalMargin"] : 10;
+     $HorizontalMargin	= isset($Format["HorizontalMargin"]) ? $Format["HorizontalMargin"] : 8;
+     $R			= isset($Format["R"]) ? $Format["R"] : $this->FontColorR;
+     $G			= isset($Format["G"]) ? $Format["G"] : $this->FontColorG;
+     $B			= isset($Format["B"]) ? $Format["B"] : $this->FontColorB;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : $this->FontColorA;
+     $FontName		= isset($Format["FontName"]) ? $Format["FontName"] : $this->FontName;
+     $FontSize		= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->FontSize;
+     $TitleMode		= isset($Format["TitleMode"]) ? $Format["TitleMode"] : LABEL_TITLE_NOBACKGROUND;
+     $TitleR		= isset($Format["TitleR"]) ? $Format["TitleR"] : $R;
+     $TitleG		= isset($Format["TitleG"]) ? $Format["TitleG"] : $G;
+     $TitleB		= isset($Format["TitleB"]) ? $Format["TitleB"] : $B;
+     $TitleBackgroundR	= isset($Format["TitleBackgroundR"]) ? $Format["TitleBackgroundR"] : 0;
+     $TitleBackgroundG	= isset($Format["TitleBackgroundG"]) ? $Format["TitleBackgroundG"] : 0;
+     $TitleBackgroundB	= isset($Format["TitleBackgroundB"]) ? $Format["TitleBackgroundB"] : 0;
+     $GradientStartR	= isset($Format["GradientStartR"]) ? $Format["GradientStartR"] : 255;
+     $GradientStartG	= isset($Format["GradientStartG"]) ? $Format["GradientStartG"] : 255;
+     $GradientStartB	= isset($Format["GradientStartB"]) ? $Format["GradientStartB"] : 255;
+     $GradientEndR	= isset($Format["GradientEndR"]) ? $Format["GradientEndR"] : 220;
+     $GradientEndG	= isset($Format["GradientEndG"]) ? $Format["GradientEndG"] : 220;
+     $GradientEndB	= isset($Format["GradientEndB"]) ? $Format["GradientEndB"] : 220;
+
+     if ( !$DrawSerieColor ) { $SerieBoxSize = 0; $SerieBoxSpacing = 0; }
+
+     $TxtPos      = $this->getTextBox($X,$Y,$FontName,$FontSize,0,$Title);
+     $TitleWidth  = ($TxtPos[1]["X"] - $TxtPos[0]["X"])+$VerticalMargin*2;
+     $TitleHeight = ($TxtPos[0]["Y"] - $TxtPos[2]["Y"]);
+
+     if ( $NoTitle ) { $TitleWidth = 0; $TitleHeight = 0; }
+
+     $CaptionWidth = 0; $CaptionHeight = -$HorizontalMargin;
+     foreach($Captions as $Key =>$Caption)
+      {
+       $TxtPos        = $this->getTextBox($X,$Y,$FontName,$FontSize,0,$Caption["Caption"]);
+       $CaptionWidth  = max($CaptionWidth,($TxtPos[1]["X"] - $TxtPos[0]["X"])+$VerticalMargin*2);
+       $CaptionHeight = $CaptionHeight + max(($TxtPos[0]["Y"] - $TxtPos[2]["Y"]),($SerieBoxSize+2)) + $HorizontalMargin;
+      }
+
+     if ( $CaptionHeight <= 5 ) { $CaptionHeight = $CaptionHeight + $HorizontalMargin/2; }
+
+     if ( $DrawSerieColor ) { $CaptionWidth = $CaptionWidth + $SerieBoxSize + $SerieBoxSpacing; }
+
+     $BoxWidth = max($BoxWidth,$TitleWidth,$CaptionWidth);
+
+     $XMin = $X - 5 - floor(($BoxWidth-10) / 2);
+     $XMax = $X + 5 + floor(($BoxWidth-10) / 2);
+
+     $RestoreShadow = $this->Shadow;
+     if ( $this->Shadow == TRUE )
+      {
+       $this->Shadow = FALSE;
+
+       $Poly = "";
+       $Poly[] = $X+$this->ShadowX; $Poly[] = $Y+$this->ShadowX;
+       $Poly[] = $X+5+$this->ShadowX; $Poly[] = $Y-5+$this->ShadowX;
+       $Poly[] = $XMax+$this->ShadowX; $Poly[] = $Y-5+$this->ShadowX;
+
+       if ( $NoTitle )
+        {
+         $Poly[] = $XMax+$this->ShadowX; $Poly[] = $Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*2+$this->ShadowX;
+         $Poly[] = $XMin+$this->ShadowX; $Poly[] = $Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*2+$this->ShadowX;
+        }
+       else
+        {
+         $Poly[] = $XMax+$this->ShadowX; $Poly[] = $Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3+$this->ShadowX;
+         $Poly[] = $XMin+$this->ShadowX; $Poly[] = $Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3+$this->ShadowX;
+        }
+
+       $Poly[] = $XMin+$this->ShadowX; $Poly[] = $Y-5+$this->ShadowX;
+       $Poly[] = $X-5+$this->ShadowX; $Poly[] = $Y-5+$this->ShadowX;
+       $this->drawPolygon($Poly,array("R"=>$this->ShadowR,"G"=>$this->ShadowG,"B"=>$this->ShadowB,"Alpha"=>$this->Shadowa));
+      }
+
+     /* Draw the background */
+     $GradientSettings = array("StartR"=>$GradientStartR,"StartG"=>$GradientStartG,"StartB"=>$GradientStartB,"EndR"=>$GradientEndR,"EndG"=>$GradientEndG,"EndB"=>$GradientEndB);
+     if ( $NoTitle )
+      $this->drawGradientArea($XMin,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$XMax,$Y-6,DIRECTION_VERTICAL,$GradientSettings);
+     else
+      $this->drawGradientArea($XMin,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMax,$Y-6,DIRECTION_VERTICAL,$GradientSettings);
+     $Poly = ""; $Poly[] = $X; $Poly[] = $Y; $Poly[] = $X-5; $Poly[] = $Y-5; $Poly[] = $X+5; $Poly[] = $Y-5;
+     $this->drawPolygon($Poly,array("R"=>$GradientEndR,"G"=>$GradientEndG,"B"=>$GradientEndB,"NoBorder"=>TRUE));
+
+     /* Outer border */
+     $OuterBorderColor = $this->allocateColor($this->Picture,100,100,100,100);
+     imageline($this->Picture,$XMin,$Y-5,$X-5,$Y-5,$OuterBorderColor);
+     imageline($this->Picture,$X,$Y,$X-5,$Y-5,$OuterBorderColor);
+     imageline($this->Picture,$X,$Y,$X+5,$Y-5,$OuterBorderColor);
+     imageline($this->Picture,$X+5,$Y-5,$XMax,$Y-5,$OuterBorderColor);
+     if ( $NoTitle )
+      {
+       imageline($this->Picture,$XMin,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$XMin,$Y-5,$OuterBorderColor);
+       imageline($this->Picture,$XMax,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$XMax,$Y-5,$OuterBorderColor);
+       imageline($this->Picture,$XMin,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$XMax,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$OuterBorderColor);
+      }
+     else
+      {
+       imageline($this->Picture,$XMin,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMin,$Y-5,$OuterBorderColor);
+       imageline($this->Picture,$XMax,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMax,$Y-5,$OuterBorderColor);
+       imageline($this->Picture,$XMin,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMax,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$OuterBorderColor);
+      }
+
+     /* Inner border */
+     $InnerBorderColor = $this->allocateColor($this->Picture,255,255,255,100);
+     imageline($this->Picture,$XMin+1,$Y-6,$X-5,$Y-6,$InnerBorderColor);
+     imageline($this->Picture,$X,$Y-1,$X-5,$Y-6,$InnerBorderColor);
+     imageline($this->Picture,$X,$Y-1,$X+5,$Y-6,$InnerBorderColor);
+     imageline($this->Picture,$X+5,$Y-6,$XMax-1,$Y-6,$InnerBorderColor);
+     if ( $NoTitle )
+      {
+       imageline($this->Picture,$XMin+1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$XMin+1,$Y-6,$InnerBorderColor);
+       imageline($this->Picture,$XMax-1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$XMax-1,$Y-6,$InnerBorderColor);
+       imageline($this->Picture,$XMin+1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$XMax-1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*2,$InnerBorderColor);
+      }
+     else
+      {
+       imageline($this->Picture,$XMin+1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMin+1,$Y-6,$InnerBorderColor);
+       imageline($this->Picture,$XMax-1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMax-1,$Y-6,$InnerBorderColor);
+       imageline($this->Picture,$XMin+1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMax-1,$Y-4-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$InnerBorderColor);
+      }
+
+     /* Draw the separator line */
+     if ( $TitleMode == LABEL_TITLE_NOBACKGROUND && !$NoTitle )
+      {
+       $YPos    = $Y-7-$CaptionHeight-$HorizontalMargin-$HorizontalMargin/2;
+       $XMargin = $VerticalMargin / 2;
+       $this->drawLine($XMin+$XMargin,$YPos+1,$XMax-$XMargin,$YPos+1,array("R"=>$GradientEndR,"G"=>$GradientEndG,"B"=>$GradientEndB));
+       $this->drawLine($XMin+$XMargin,$YPos,$XMax-$XMargin,$YPos,array("R"=>$GradientStartR,"G"=>$GradientStartG,"B"=>$GradientStartB));
+      }
+     elseif ( $TitleMode == LABEL_TITLE_BACKGROUND )
+      {
+       $this->drawFilledRectangle($XMin,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin*3,$XMax,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin+$HorizontalMargin/2,array("R"=>$TitleBackgroundR,"G"=>$TitleBackgroundG,"B"=>$TitleBackgroundB));
+       imageline($this->Picture,$XMin+1,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin+$HorizontalMargin/2+1,$XMax-1,$Y-5-$TitleHeight-$CaptionHeight-$HorizontalMargin+$HorizontalMargin/2+1,$InnerBorderColor);
+      }
+
+     /* Write the description */
+     if ( !$NoTitle )
+      $this->drawText($XMin+$VerticalMargin,$Y-7-$CaptionHeight-$HorizontalMargin*2,$Title,array("Align"=>TEXT_ALIGN_BOTTOMLEFT,"R"=>$TitleR,"G"=>$TitleG,"B"=>$TitleB));
+
+     /* Write the value */
+     $YPos = $Y-5-$HorizontalMargin; $XPos = $XMin+$VerticalMargin+$SerieBoxSize+$SerieBoxSpacing;
+     foreach($Captions as $Key => $Caption)
+      {
+       $CaptionTxt    = $Caption["Caption"];
+       $TxtPos        = $this->getTextBox($XPos,$YPos,$FontName,$FontSize,0,$CaptionTxt);
+       $CaptionHeight = ($TxtPos[0]["Y"] - $TxtPos[2]["Y"]);
+
+       /* Write the serie color if needed */
+       if ( $DrawSerieColor )
+        {
+         $BoxSettings = array("R"=>$Caption["Format"]["R"],"G"=>$Caption["Format"]["G"],"B"=>$Caption["Format"]["B"],"Alpha"=>$Caption["Format"]["Alpha"],"BorderR"=>0,"BorderG"=>0,"BorderB"=>0);
+         $this->drawFilledRectangle($XMin+$VerticalMargin,$YPos-$SerieBoxSize,$XMin+$VerticalMargin+$SerieBoxSize,$YPos,$BoxSettings);
+        }
+
+       $this->drawText($XPos,$YPos,$CaptionTxt,array("Align"=>TEXT_ALIGN_BOTTOMLEFT));
+
+       $YPos = $YPos - $CaptionHeight - $HorizontalMargin;
+      }
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Draw a basic shape */
+   function drawShape($X,$Y,$Shape,$PlotSize,$PlotBorder,$BorderSize,$R,$G,$B,$Alpha,$BorderR,$BorderG,$BorderB,$BorderAlpha)
+    {
+     if ( $Shape == SERIE_SHAPE_FILLEDCIRCLE )
+      {
+       if ( $PlotBorder ) { $this->drawFilledCircle($X,$Y,$PlotSize+$BorderSize,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha)); }
+       $this->drawFilledCircle($X,$Y,$PlotSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+      }
+     elseif ( $Shape == SERIE_SHAPE_FILLEDSQUARE )
+      {
+       if ( $PlotBorder ) { $this->drawFilledRectangle($X-$PlotSize-$BorderSize,$Y-$PlotSize-$BorderSize,$X+$PlotSize+$BorderSize,$Y+$PlotSize+$BorderSize,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha)); }
+       $this->drawFilledRectangle($X-$PlotSize,$Y-$PlotSize,$X+$PlotSize,$Y+$PlotSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+      }
+     elseif ( $Shape == SERIE_SHAPE_FILLEDTRIANGLE )
+      {
+       if ( $PlotBorder )
+        {
+         $Pos = ""; $Pos[]=$X; $Pos[]=$Y-$PlotSize-$BorderSize; $Pos[]=$X-$PlotSize-$BorderSize; $Pos[]=$Y+$PlotSize+$BorderSize; $Pos[]=$X+$PlotSize+$BorderSize; $Pos[]=$Y+$PlotSize+$BorderSize;
+         $this->drawPolygon($Pos,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha));
+        }
+
+       $Pos = ""; $Pos[]=$X; $Pos[]=$Y-$PlotSize; $Pos[]=$X-$PlotSize; $Pos[]=$Y+$PlotSize; $Pos[]=$X+$PlotSize; $Pos[]=$Y+$PlotSize;
+       $this->drawPolygon($Pos,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+      }
+     elseif ( $Shape == SERIE_SHAPE_TRIANGLE )
+      {
+       $this->drawLine($X,$Y-$PlotSize,$X-$PlotSize,$Y+$PlotSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+       $this->drawLine($X-$PlotSize,$Y+$PlotSize,$X+$PlotSize,$Y+$PlotSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+       $this->drawLine($X+$PlotSize,$Y+$PlotSize,$X,$Y-$PlotSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+      }
+     elseif ( $Shape == SERIE_SHAPE_SQUARE )
+      $this->drawRectangle($X-$PlotSize,$Y-$PlotSize,$X+$PlotSize,$Y+$PlotSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+     elseif ( $Shape == SERIE_SHAPE_CIRCLE )
+      $this->drawCircle($X,$Y,$PlotSize,$PlotSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+     elseif ( $Shape == SERIE_SHAPE_DIAMOND )
+      {
+       $Pos = ""; $Pos[]=$X-$PlotSize; $Pos[]=$Y; $Pos[]=$X; $Pos[]=$Y-$PlotSize; $Pos[]=$X+$PlotSize; $Pos[]=$Y; $Pos[]=$X; $Pos[]=$Y+$PlotSize;
+       $this->drawPolygon($Pos,array("NoFill"=>TRUE,"BorderR"=>$R,"BorderG"=>$G,"BorderB"=>$B,"BorderAlpha"=>$Alpha));
+      }      
+     elseif ( $Shape == SERIE_SHAPE_FILLEDDIAMOND )
+      {
+       if ( $PlotBorder )
+        {
+         $Pos = ""; $Pos[]=$X-$PlotSize-$BorderSize; $Pos[]=$Y; $Pos[]=$X; $Pos[]=$Y-$PlotSize-$BorderSize; $Pos[]=$X+$PlotSize+$BorderSize; $Pos[]=$Y; $Pos[]=$X; $Pos[]=$Y+$PlotSize+$BorderSize;
+         $this->drawPolygon($Pos,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha));
+        }
+
+       $Pos = ""; $Pos[]=$X-$PlotSize; $Pos[]=$Y; $Pos[]=$X; $Pos[]=$Y-$PlotSize; $Pos[]=$X+$PlotSize; $Pos[]=$Y; $Pos[]=$X; $Pos[]=$Y+$PlotSize;
+       $this->drawPolygon($Pos,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+      }      
+    }
+
+   function drawPolygonChart($Points,$Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : 0;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $NoFill		= isset($Format["NoFill"]) ? $Format["NoFill"] : FALSE;
+     $NoBorder		= isset($Format["NoBorder"]) ? $Format["NoBorder"] : FALSE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : $R;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : $G;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : $B;
+     $BorderAlpha 	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : $Alpha / 2;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $Threshold         = isset($Format["Threshold"]) ? $Format["Threshold"] : NULL;
+
+     if ( $Surrounding != NULL ) { $BorderR = $R+$Surrounding; $BorderG = $G+$Surrounding; $BorderB = $B+$Surrounding; }
+
+     $RestoreShadow = $this->Shadow;
+     $this->Shadow = FALSE;
+
+     $AllIntegers = TRUE;
+     for($i=0;$i<=count($Points)-2;$i=$i+2)
+      { if ( $this->getFirstDecimal($Points[$i+1]) != 0 ) { $AllIntegers = FALSE; } }
+
+     /* Convert polygon to segments */
+     $Segments = "";
+     for($i=2;$i<=count($Points)-2;$i=$i+2)
+      { $Segments[] = array("X1"=>$Points[$i-2],"Y1"=>$Points[$i-1],"X2"=>$Points[$i],"Y2"=>$Points[$i+1]); }
+     $Segments[] = array("X1"=>$Points[$i-2],"Y1"=>$Points[$i-1],"X2"=>$Points[0],"Y2"=>$Points[1]);
+
+     /* Simplify straight lines */
+     $Result = ""; $inHorizon = FALSE; $LastX = VOID;
+     foreach($Segments as $Key => $Pos)
+      {
+       if ( $Pos["Y1"] != $Pos["Y2"] )
+        {
+         if ( $inHorizon ) { $inHorizon = FALSE; $Result[] = array("X1"=>$LastX,"Y1"=>$Pos["Y1"],"X2"=>$Pos["X1"],"Y2"=>$Pos["Y1"]); }
+
+         $Result[] = array("X1"=>$Pos["X1"],"Y1"=>$Pos["Y1"],"X2"=>$Pos["X2"],"Y2"=>$Pos["Y2"]);
+        }
+       else { if ( !$inHorizon ) { $inHorizon = TRUE; $LastX = $Pos["X1"];} }
+      }
+     $Segments = $Result;
+
+     /* Do we have something to draw */
+     if ( $Segments == "" ) { return(0); }
+
+     /* For segments debugging purpose */
+     //foreach($Segments as $Key => $Pos)
+     // echo $Pos["X1"].",".$Pos["Y1"].",".$Pos["X2"].",".$Pos["Y2"]."\r\n";
+
+     /* Find out the min & max Y boundaries */
+     $MinY = OUT_OF_SIGHT; $MaxY = OUT_OF_SIGHT;
+     foreach($Segments as $Key => $Coords)
+      {
+       if ( $MinY == OUT_OF_SIGHT || $MinY > min($Coords["Y1"],$Coords["Y2"]) ) { $MinY = min($Coords["Y1"],$Coords["Y2"]); }
+       if ( $MaxY == OUT_OF_SIGHT || $MaxY < max($Coords["Y1"],$Coords["Y2"]) ) { $MaxY = max($Coords["Y1"],$Coords["Y2"]); }
+      }
+
+     if ( $AllIntegers ) { $YStep = 1; } else { $YStep = .5; }
+
+     $MinY = floor($MinY); $MaxY = floor($MaxY);
+
+     /* Scan each Y lines */
+     $DefaultColor = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+     $DebugLine = 0; $DebugColor = $this->allocateColor($this->Picture,255,0,0,100);
+
+     $MinY = floor($MinY); $MaxY = floor($MaxY); $YStep = 1; 
+
+     if ( !$NoFill )
+      {
+       //if ( $DebugLine ) { $MinY = $DebugLine; $MaxY = $DebugLine; }
+       for($Y=$MinY;$Y<=$MaxY;$Y=$Y+$YStep)
+        {
+         $Intersections = ""; $LastSlope = NULL; $RestoreLast = "-";
+         foreach($Segments as $Key => $Coords)
+          {
+           $X1 = $Coords["X1"]; $X2 = $Coords["X2"]; $Y1 = $Coords["Y1"]; $Y2 = $Coords["Y2"];
+
+           if ( min($Y1,$Y2) <= $Y && max($Y1,$Y2) >= $Y )
+            {
+             if ( $Y1 == $Y2 )
+              { $X = $X1; }
+             else
+              { $X = $X1 + ( ($Y-$Y1)*$X2 - ($Y-$Y1)*$X1 ) / ($Y2-$Y1); }
+
+             $X = floor($X);
+
+             if ( $X2 == $X1 )
+              { $Slope = "!"; }
+             else
+              {
+               $SlopeC = ($Y2 - $Y1) / ($X2 - $X1);
+               if( $SlopeC == 0 )
+                { $Slope = "="; }
+               elseif( $SlopeC > 0 )
+                { $Slope = "+"; }
+               elseif ( $SlopeC < 0 )
+                { $Slope = "-"; }
+              }
+
+             if ( !is_array($Intersections) )
+              { $Intersections[] = $X; }
+             elseif( !in_array($X,$Intersections) )
+              { $Intersections[] = $X; }
+             elseif( in_array($X,$Intersections) )
+              {
+               if ($Y == $DebugLine) { echo $Slope."/".$LastSlope."(".$X.") "; }
+
+               if ( $Slope == "=" && $LastSlope == "-"  )                             { $Intersections[] = $X; }
+               if ( $Slope != $LastSlope && $LastSlope != "!" && $LastSlope != "=" )  { $Intersections[] = $X; }
+               if ( $Slope != $LastSlope && $LastSlope == "!" && $Slope == "+" )      { $Intersections[] = $X; }
+              }
+
+             if ( is_array($Intersections) && in_array($X,$Intersections) && $LastSlope == "=" && ($Slope == "-" )) { $Intersections[] = $X; }
+
+             $LastSlope = $Slope;
+            }
+          }
+         if ( $RestoreLast != "-" ) { $Intersections[] = $RestoreLast; echo "@".$Y."\r\n"; }
+
+         if ( is_array($Intersections) )
+          {
+           sort($Intersections);
+
+           if ($Y == $DebugLine) { print_r($Intersections); }
+
+           /* Remove NULL plots */
+           $Result = "";
+           for($i=0;$i<=count($Intersections)-1;$i=$i+2)
+            {
+             if ( isset($Intersections[$i+1]) )
+              { if ( $Intersections[$i] != $Intersections[$i+1] ) { $Result[] = $Intersections[$i]; $Result[] = $Intersections[$i+1]; } }
+            }
+
+           if ( is_array($Result) )
+            {
+             $Intersections = $Result;
+
+             $LastX = OUT_OF_SIGHT;
+             foreach($Intersections as $Key => $X)
+              {
+               if ( $LastX == OUT_OF_SIGHT )
+                $LastX = $X;
+               elseif ( $LastX != OUT_OF_SIGHT )
+                {
+                 if ( $this->getFirstDecimal($LastX) > 1 ) { $LastX++; }
+
+                 $Color = $DefaultColor;
+                 if ( $Threshold != NULL )
+                  {
+                   foreach($Threshold as $Key => $Parameters)
+                    {
+                     if ( $Y <= $Parameters["MinX"] && $Y >= $Parameters["MaxX"])
+                      {
+                       if ( isset($Parameters["R"]) ) { $R = $Parameters["R"]; } else { $R = 0; }
+                       if ( isset($Parameters["G"]) ) { $G = $Parameters["G"]; } else { $G = 0; }
+                       if ( isset($Parameters["B"]) ) { $B = $Parameters["B"]; } else { $B = 0; }
+                       if ( isset($Parameters["Alpha"]) ) { $Alpha = $Parameters["Alpha"]; } else { $Alpha = 100; }
+                       $Color = $this->allocateColor($this->Picture,$R,$G,$B,$Alpha);
+                      }
+                    }
+                  }
+
+                 imageline($this->Picture,$LastX,$Y,$X,$Y,$Color);
+
+                 if ( $Y == $DebugLine) { imageline($this->Picture,$LastX,$Y,$X,$Y,$DebugColor); }
+
+                 $LastX = OUT_OF_SIGHT;
+                }
+              }
+            }
+          }
+        }
+      }
+
+     /* Draw the polygon border, if required */
+     if ( !$NoBorder)
+      {
+       foreach($Segments as $Key => $Coords)
+        $this->drawLine($Coords["X1"],$Coords["Y1"],$Coords["X2"],$Coords["Y2"],array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Threshold"=>$Threshold));
+      }
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Return the abscissa margin */
+   function getAbscissaMargin($Data)
+    {
+     foreach($Data["Axis"] as $AxisID => $Values) { if ( $Values["Identity"] == AXIS_X ) { return($Values["Margin"]); } }
+     return(0);
+    }
+
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pImage.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pImage.class.php
new file mode 100644
index 0000000..54d1fae
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pImage.class.php
@@ -0,0 +1,472 @@
+<?php
+ /*
+     pDraw - pChart core class
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ /* The GD extension is mandatory */
+ if (!extension_loaded('gd') && !extension_loaded('gd2'))
+  {
+   echo "GD extension must be loaded. \r\n";
+   exit();
+  }
+
+ /* Image map handling */
+ define("IMAGE_MAP_STORAGE_FILE"	, 680001);
+ define("IMAGE_MAP_STORAGE_SESSION"	, 680002);
+
+ /* Last generated chart layout */
+ define("CHART_LAST_LAYOUT_REGULAR"	, 680011);
+ define("CHART_LAST_LAYOUT_STACKED"	, 680012);
+
+ /* ImageMap string delimiter */
+ define("IMAGE_MAP_DELIMITER"		, chr(1));
+
+ class pImage extends pDraw
+  {
+   /* Image settings, size, quality, .. */
+   var $XSize		= NULL;				// Width of the picture
+   var $YSize		= NULL;				// Height of the picture
+   var $Picture		= NULL;				// GD picture object
+   var $Antialias	= TRUE;				// Turn antialias on or off
+   var $AntialiasQuality  = 0;				// Quality of the antialiasing implementation (0-1)
+   var $Mask		= "";				// Already drawn pixels mask (Filled circle implementation)
+   var $TransparentBackground = FALSE;			// Just to know if we need to flush the alpha channels when rendering
+
+   /* Graph area settings */
+   var $GraphAreaX1	= NULL;				// Graph area X origin
+   var $GraphAreaY1	= NULL;				// Graph area Y origin
+   var $GraphAreaX2	= NULL;				// Graph area bottom right X position
+   var $GraphAreaY2	= NULL;				// Graph area bottom right Y position
+
+   /* Scale settings */
+   var $ScaleMinDivHeight = 20;				// Minimum height for scame divs
+
+   /* Font properties */
+   var $FontName	= "sites/all/libraries/fonts/DejaVuSans.ttf";	// Default font file
+   var $FontSize	= 12;				// Default font size
+   var $FontBox		= NULL;				// Return the bounding box of the last written string
+   var $FontColorR	= 0;				// Default color settings
+   var $FontColorG	= 0;				// Default color settings
+   var $FontColorB	= 0;				// Default color settings
+   var $FontColorA	= 100;				// Default transparency
+
+   /* Shadow properties */
+   var $Shadow		= FALSE;			// Turn shadows on or off
+   var $ShadowX		= NULL;				// X Offset of the shadow
+   var $ShadowY		= NULL;				// Y Offset of the shadow
+   var $ShadowR		= NULL;				// R component of the shadow
+   var $ShadowG		= NULL;				// G component of the shadow
+   var $ShadowB		= NULL;				// B component of the shadow
+   var $Shadowa		= NULL;				// Alpha level of the shadow
+
+   /* Image map */
+   var $ImageMap	= NULL;				// Aray containing the image map
+   var $ImageMapIndex	= "pChart";			// Name of the session array
+   var $ImageMapStorageMode = NULL;			// Save the current imagemap storage mode
+   var $ImageMapAutoDelete  = TRUE;			// Automatic deletion of the image map temp files
+
+   /* Data Set */
+   var $DataSet		= NULL;				// Attached dataset
+
+   /* Last generated chart info */
+   var $LastChartLayout	= CHART_LAST_LAYOUT_REGULAR;	// Last layout : regular or stacked
+
+   /* Class constructor */
+   function pImage($XSize,$YSize,$DataSet=NULL,$TransparentBackground=FALSE)
+    {
+     $this->TransparentBackground = $TransparentBackground;
+
+     if ( $DataSet != NULL ) { $this->DataSet = $DataSet; }
+
+     $this->XSize   = $XSize;
+     $this->YSize   = $YSize;
+     $this->Picture = imagecreatetruecolor($XSize,$YSize);
+
+     if ( $this->TransparentBackground )
+      {
+       imagealphablending($this->Picture,FALSE);
+       imagefilledrectangle($this->Picture, 0,0,$XSize, $YSize, imagecolorallocatealpha($this->Picture, 255, 255, 255, 127));
+       imagealphablending($this->Picture,TRUE);
+       imagesavealpha($this->Picture,true); 
+      }
+     else
+      {
+       $C_White = $this->AllocateColor($this->Picture,255,255,255);
+       imagefilledrectangle($this->Picture,0,0,$XSize,$YSize,$C_White);
+      }
+    }
+
+   /* Enable / Disable and set shadow properties */
+   function setShadow($Enabled=TRUE,$Format="")
+    {
+     $X	    = isset($Format["X"]) ? $Format["X"] : 2;
+     $Y	    = isset($Format["Y"]) ? $Format["Y"] : 2;
+     $R	    = isset($Format["R"]) ? $Format["R"] : 0;
+     $G	    = isset($Format["G"]) ? $Format["G"] : 0;
+     $B	    = isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 10;
+
+     $this->Shadow  = $Enabled;
+     $this->ShadowX = $X;
+     $this->ShadowY = $Y;
+     $this->ShadowR = $R;
+     $this->ShadowG = $G;
+     $this->ShadowB = $B;
+     $this->Shadowa = $Alpha;
+    }
+
+   /* Set the graph area position */
+   function setGraphArea($X1,$Y1,$X2,$Y2)
+    {
+     if ( $X2 < $X1 || $X1 == $X2 || $Y2 < $Y1 || $Y1 == $Y2 ) { return(-1); }
+
+     $this->GraphAreaX1 = $X1; $this->DataSet->Data["GraphArea"]["X1"] = $X1;
+     $this->GraphAreaY1 = $Y1; $this->DataSet->Data["GraphArea"]["Y1"] = $Y1;
+     $this->GraphAreaX2 = $X2; $this->DataSet->Data["GraphArea"]["X2"] = $X2;
+     $this->GraphAreaY2 = $Y2; $this->DataSet->Data["GraphArea"]["Y2"] = $Y2;
+    }
+
+   /* Return the width of the picture */
+   function getWidth()
+    { return($this->XSize); }
+
+   /* Return the heigth of the picture */
+   function getHeight()
+    { return($this->YSize); }
+
+   /* Render the picture to a file */
+   function render($FileName)
+    {
+     if ( $this->TransparentBackground ) { imagealphablending($this->Picture,false); imagesavealpha($this->Picture,true); }
+     imagepng($this->Picture,$FileName);
+    }
+
+   /* Render the picture to a web browser stream */
+   function stroke($BrowserExpire=FALSE)
+    {
+     if ( $this->TransparentBackground ) { imagealphablending($this->Picture,false); imagesavealpha($this->Picture,true); }
+
+     if ( $BrowserExpire )
+      {
+       header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+       header("Cache-Control: no-cache");
+       header("Pragma: no-cache");
+      }
+
+     header('Content-type: image/png');
+     imagepng($this->Picture);
+    }
+
+   /* Automatic output method based on the calling interface */
+   function autoOutput($FileName="output.png")
+    {
+     if (php_sapi_name() == "cli")
+      $this->Render($FileName);
+     else
+      $this->Stroke();
+    }
+
+   /* Return the length between two points */
+   function getLength($X1,$Y1,$X2,$Y2)
+    { return(sqrt(pow(max($X1,$X2)-min($X1,$X2),2)+pow(max($Y1,$Y2)-min($Y1,$Y2),2))); }
+
+   /* Return the orientation of a line */
+   function getAngle($X1,$Y1,$X2,$Y2)
+    {
+     $Opposite = $Y2 - $Y1; $Adjacent = $X2 - $X1;$Angle = rad2deg(atan2($Opposite,$Adjacent));
+     if ($Angle > 0) { return($Angle); } else { return(360-abs($Angle)); }
+    }
+
+   /* Return the surrounding box of text area */
+   function getTextBox_deprecated($X,$Y,$FontName,$FontSize,$Angle,$Text)
+    {
+     $Size    = imagettfbbox($FontSize,$Angle,$FontName,$Text);
+     $Width   = $this->getLength($Size[0],$Size[1],$Size[2],$Size[3])+1;
+     $Height  = $this->getLength($Size[2],$Size[3],$Size[4],$Size[5])+1;
+
+     $RealPos[0]["X"] = $X; $RealPos[0]["Y"] = $Y;
+     $RealPos[1]["X"] = cos((360-$Angle)*PI/180)*$Width + $RealPos[0]["X"]; $RealPos[1]["Y"] = sin((360-$Angle)*PI/180)*$Width + $RealPos[0]["Y"];
+     $RealPos[2]["X"] = cos((270-$Angle)*PI/180)*$Height + $RealPos[1]["X"]; $RealPos[2]["Y"] = sin((270-$Angle)*PI/180)*$Height + $RealPos[1]["Y"];
+     $RealPos[3]["X"] = cos((180-$Angle)*PI/180)*$Width + $RealPos[2]["X"]; $RealPos[3]["Y"] = sin((180-$Angle)*PI/180)*$Width + $RealPos[2]["Y"];
+
+     $RealPos[TEXT_ALIGN_BOTTOMLEFT]["X"] = $RealPos[0]["X"];	$RealPos[TEXT_ALIGN_BOTTOMLEFT]["Y"] = $RealPos[0]["Y"];
+     $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["X"] = $RealPos[1]["X"];	$RealPos[TEXT_ALIGN_BOTTOMRIGHT]["Y"] = $RealPos[1]["Y"];
+
+     return($RealPos);
+    }
+
+   /* Return the surrounding box of text area */
+   function getTextBox($X,$Y,$FontName,$FontSize,$Angle,$Text)
+    {
+     $coords = imagettfbbox($FontSize, 0, $FontName, $Text);
+
+     $a = deg2rad($Angle); $ca = cos($a); $sa = sin($a); $RealPos = array();
+     for($i = 0; $i < 7; $i += 2)
+      {
+       $RealPos[$i/2]["X"] = $X + round($coords[$i] * $ca + $coords[$i+1] * $sa);
+       $RealPos[$i/2]["Y"] = $Y + round($coords[$i+1] * $ca - $coords[$i] * $sa);
+      }
+
+     $RealPos[TEXT_ALIGN_BOTTOMLEFT]["X"]	= $RealPos[0]["X"];	$RealPos[TEXT_ALIGN_BOTTOMLEFT]["Y"]	= $RealPos[0]["Y"];
+     $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["X"]	= $RealPos[1]["X"];	$RealPos[TEXT_ALIGN_BOTTOMRIGHT]["Y"]	= $RealPos[1]["Y"];
+     $RealPos[TEXT_ALIGN_TOPLEFT]["X"]		= $RealPos[3]["X"];	$RealPos[TEXT_ALIGN_TOPLEFT]["Y"]	= $RealPos[3]["Y"];
+     $RealPos[TEXT_ALIGN_TOPRIGHT]["X"]		= $RealPos[2]["X"];	$RealPos[TEXT_ALIGN_TOPRIGHT]["Y"]	= $RealPos[2]["Y"];
+     $RealPos[TEXT_ALIGN_BOTTOMMIDDLE]["X"]	= ($RealPos[1]["X"]-$RealPos[0]["X"])/2+$RealPos[0]["X"];	$RealPos[TEXT_ALIGN_BOTTOMMIDDLE]["Y"]	= ($RealPos[0]["Y"]-$RealPos[1]["Y"])/2+$RealPos[1]["Y"];
+     $RealPos[TEXT_ALIGN_TOPMIDDLE]["X"]	= ($RealPos[2]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"];	$RealPos[TEXT_ALIGN_TOPMIDDLE]["Y"]	= ($RealPos[3]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
+     $RealPos[TEXT_ALIGN_MIDDLELEFT]["X"]	= ($RealPos[0]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"];	$RealPos[TEXT_ALIGN_MIDDLELEFT]["Y"]	= ($RealPos[0]["Y"]-$RealPos[3]["Y"])/2+$RealPos[3]["Y"];
+     $RealPos[TEXT_ALIGN_MIDDLERIGHT]["X"]	= ($RealPos[1]["X"]-$RealPos[2]["X"])/2+$RealPos[2]["X"];	$RealPos[TEXT_ALIGN_MIDDLERIGHT]["Y"]	= ($RealPos[1]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
+     $RealPos[TEXT_ALIGN_MIDDLEMIDDLE]["X"]	= ($RealPos[1]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"];	$RealPos[TEXT_ALIGN_MIDDLEMIDDLE]["Y"]	= ($RealPos[0]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
+
+     return($RealPos);
+    }
+
+   /* Set current font properties */
+   function setFontProperties($Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : -1;
+     $G		= isset($Format["G"]) ? $Format["G"] : -1;
+     $B		= isset($Format["B"]) ? $Format["B"] : -1;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $FontName	= isset($Format["FontName"]) ? $Format["FontName"] : NULL;
+     $FontSize	= isset($Format["FontSize"]) ? $Format["FontSize"] : NULL;
+
+     if ( $R != -1)       {  $this->FontColorR = $R; }
+     if ( $G != -1)       {  $this->FontColorG = $G; }
+     if ( $B != -1)       {  $this->FontColorB = $B; }
+     if ( $Alpha != NULL) {  $this->FontColorA = $Alpha; }
+
+     if ( $FontName != NULL  )
+      $this->FontName = $FontName;
+ 
+     if ( $FontSize != NULL  )
+      $this->FontSize = $FontSize;
+    }
+
+   /* Returns the 1st decimal values (used to correct AA bugs) */
+   function getFirstDecimal($Value)
+    {
+     $Values = preg_split("/\./",$Value);
+     if ( isset($Values[1]) ) { return(substr($Values[1],0,1)); } else { return(0); }
+    }
+
+   /* Attach a dataset to your pChart Object */
+   function setDataSet(&$DataSet)
+    { $this->DataSet = $DataSet; }
+
+   /* Print attached dataset contents to STDOUT */
+   function printDataSet()
+    { print_r($this->DataSet); }
+
+   /* Initialise the image map methods */
+   function initialiseImageMap($Name="pChart",$StorageMode=IMAGE_MAP_STORAGE_SESSION,$UniqueID="imageMap",$StorageFolder="tmp")
+    {
+     $this->ImageMapIndex 		= $Name;
+     $this->ImageMapStorageMode		= $StorageMode;
+
+     if ($StorageMode == IMAGE_MAP_STORAGE_SESSION)
+      {
+       if(!isset($_SESSION)) { session_start(); }
+       $_SESSION[$this->ImageMapIndex]    = NULL;
+      }
+     elseif($StorageMode == IMAGE_MAP_STORAGE_FILE)
+      {
+       $this->ImageMapFileName 		= $UniqueID;
+       $this->ImageMapStorageFolder	= $StorageFolder;
+
+       if (file_exists($StorageFolder."/".$UniqueID.".map")) { unlink($StorageFolder."/".$UniqueID.".map"); }
+      }
+    }
+
+   /* Add a zone to the image map */
+   function addToImageMap($Type,$Plots,$Color=NULL,$Title=NULL,$Message=NULL,$HTMLEncode=FALSE)
+    {
+     if ( $this->ImageMapStorageMode == NULL ) { $this->initialiseImageMap(); }
+
+     /* Encode the characters in the imagemap in HTML standards */
+     $Title   = str_replace("€","\u20AC",$Title);
+     $Title   = htmlentities($Title,ENT_QUOTES,"ISO-8859-15");
+     if ( $HTMLEncode )
+      {
+       $Message = htmlentities($Message,ENT_QUOTES,"ISO-8859-15");
+       $Message = str_replace("<","<",$Message);
+       $Message = str_replace(">",">",$Message);
+      }
+
+     if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+      {
+       if(!isset($_SESSION)) { $this->initialiseImageMap(); }
+       $_SESSION[$this->ImageMapIndex][] = array($Type,$Plots,$Color,$Title,$Message);
+      }
+     elseif($this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE)
+      {
+       $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'a');
+       fwrite($Handle, $Type.IMAGE_MAP_DELIMITER.$Plots.IMAGE_MAP_DELIMITER.$Color.IMAGE_MAP_DELIMITER.$Title.IMAGE_MAP_DELIMITER.$Message."\r\n");
+       fclose($Handle);
+      }
+    }
+
+   /* Remove VOID values from an imagemap custom values array */
+   function removeVOIDFromArray($SerieName, $Values)
+    {
+     if ( !isset($this->DataSet->Data["Series"][$SerieName]) ) { return(-1); }
+
+     $Result = "";
+     foreach($this->DataSet->Data["Series"][$SerieName]["Data"] as $Key => $Value)
+      { if ( $Value != VOID && isset($Values[$Key]) ) { $Result[] = $Values[$Key]; } }
+     return($Result);
+    }
+
+   /* Replace the title of one image map serie */
+   function replaceImageMapTitle($OldTitle, $NewTitle)
+    {
+     if ( $this->ImageMapStorageMode == NULL ) { return(-1); }
+
+     if ( is_array($NewTitle) ) { $NewTitle = $this->removeVOIDFromArray($OldTitle, $NewTitle); }
+ 
+     if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+      {
+       if(!isset($_SESSION)) { return(-1); }
+       if ( is_array($NewTitle) )
+        { $ID = 0; foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $OldTitle && isset($NewTitle[$ID])) { $_SESSION[$this->ImageMapIndex][$Key][3] = $NewTitle[$ID]; $ID++; } } }
+       else
+        { foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $OldTitle ) { $_SESSION[$this->ImageMapIndex][$Key][3] = $NewTitle; } } }
+      }
+     elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
+      {
+       $TempArray = "";
+       $Handle    = @fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", "r");
+       if ($Handle)
+        {
+         while (($Buffer = fgets($Handle, 4096)) !== false)
+          {
+           $Fields      = split(IMAGE_MAP_DELIMITER,str_replace(array(chr(10),chr(13)),"",$Buffer));
+           $TempArray[] = array($Fields[0],$Fields[1],$Fields[2],$Fields[3],$Fields[4]);
+          }
+         fclose($Handle);
+
+         if ( is_array($NewTitle) )
+          { $ID = 0; foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $OldTitle && isset($NewTitle[$ID]) ) { $TempArray[$Key][3] = $NewTitle[$ID]; $ID++; } } }
+         else
+          { foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $OldTitle ) { $TempArray[$Key][3] = $NewTitle; } } }
+
+         $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'w');
+         foreach($TempArray as $Key => $Settings)
+          { fwrite($Handle, $Settings[0].IMAGE_MAP_DELIMITER.$Settings[1].IMAGE_MAP_DELIMITER.$Settings[2].IMAGE_MAP_DELIMITER.$Settings[3].IMAGE_MAP_DELIMITER.$Settings[4]."\r\n"); }
+         fclose($Handle);
+        }
+      }
+    }
+
+   /* Replace the values of the image map contents */
+   function replaceImageMapValues($Title, $Values)
+    {
+     if ( $this->ImageMapStorageMode == NULL ) { return(-1); }
+
+     $Values = $this->removeVOIDFromArray($Title, $Values);
+     $ID = 0; 
+     if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+      {
+       if(!isset($_SESSION)) { return(-1); }
+       foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $Title ) { if ( isset($Values[$ID]) ) { $_SESSION[$this->ImageMapIndex][$Key][4] = $Values[$ID]; } $ID++; } }
+      }
+     elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
+      {
+       $TempArray = "";
+       $Handle    = @fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", "r");
+       if ($Handle)
+        {
+         while (($Buffer = fgets($Handle, 4096)) !== false)
+          {
+           $Fields      = split(IMAGE_MAP_DELIMITER,str_replace(array(chr(10),chr(13)),"",$Buffer));
+           $TempArray[] = array($Fields[0],$Fields[1],$Fields[2],$Fields[3],$Fields[4]);
+          }
+         fclose($Handle);
+
+         foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $Title ) { if ( isset($Values[$ID]) ) { $TempArray[$Key][4] = $Values[$ID]; } $ID++; } }
+
+         $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'w');
+         foreach($TempArray as $Key => $Settings)
+          { fwrite($Handle, $Settings[0].IMAGE_MAP_DELIMITER.$Settings[1].IMAGE_MAP_DELIMITER.$Settings[2].IMAGE_MAP_DELIMITER.$Settings[3].IMAGE_MAP_DELIMITER.$Settings[4]."\r\n"); }
+         fclose($Handle);
+        }
+      }
+    }
+
+   /* Dump the image map */
+   function dumpImageMap($Name="pChart",$StorageMode=IMAGE_MAP_STORAGE_SESSION,$UniqueID="imageMap",$StorageFolder="tmp")
+    {
+     $this->ImageMapIndex 		= $Name;
+     $this->ImageMapStorageMode		= $StorageMode;
+
+     if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+      {
+       if(!isset($_SESSION)) { session_start(); }
+       if ( $_SESSION[$Name] != NULL )
+        {
+         foreach($_SESSION[$Name] as $Key => $Params)
+          { echo $Params[0].IMAGE_MAP_DELIMITER.$Params[1].IMAGE_MAP_DELIMITER.$Params[2].IMAGE_MAP_DELIMITER.$Params[3].IMAGE_MAP_DELIMITER.$Params[4]."\r\n"; }
+        }
+      }
+     elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
+      {
+       if (file_exists($StorageFolder."/".$UniqueID.".map"))
+        {
+         $Handle = @fopen($StorageFolder."/".$UniqueID.".map", "r");
+         if ($Handle) { while (($Buffer = fgets($Handle, 4096)) !== false) { echo $Buffer; } }
+         fclose($Handle);
+
+         if ( $this->ImageMapAutoDelete ) { unlink($StorageFolder."/".$UniqueID.".map"); }
+        }
+      }
+
+     /* When the image map is returned to the client, the script ends */
+     exit();
+    }
+
+   /* Return the HTML converted color from the RGB composite values */
+   function toHTMLColor($R,$G,$B)
+    {
+     $R=intval($R); $G=intval($G); $B=intval($B);
+     $R=dechex($R<0?0:($R>255?255:$R)); $G=dechex($G<0?0:($G>255?255:$G));$B=dechex($B<0?0:($B>255?255:$B));
+     $Color="#".(strlen($R) < 2?'0':'').$R; $Color.=(strlen($G) < 2?'0':'').$G; $Color.= (strlen($B) < 2?'0':'').$B;
+     return($Color);
+    }
+
+   /* Reverse an array of points */
+   function reversePlots($Plots)
+    {
+     $Result = "";
+     for($i=count($Plots)-2;$i>=0;$i=$i-2) { $Result[] = $Plots[$i]; $Result[] = $Plots[$i+1]; }
+     return($Result);
+    }
+
+   /* Mirror Effect */
+   function drawAreaMirror($X,$Y,$Width,$Height,$Format="")
+    {
+     $StartAlpha	= isset($Format["StartAlpha"]) ? $Format["StartAlpha"] : 80;
+     $EndAlpha		= isset($Format["EndAlpha"]) ? $Format["EndAlpha"] : 0;
+
+     $AlphaStep = ($StartAlpha-$EndAlpha)/$Height;
+
+     $Picture = imagecreatetruecolor($this->XSize,$this->YSize);
+     imagecopy($Picture,$this->Picture,0,0,0,0,$this->XSize,$this->YSize);
+     
+     for($i=1;$i<=$Height;$i++)
+      {
+       if ( $Y+($i-1) < $this->YSize && $Y-$i > 0 ) { imagecopymerge($Picture,$this->Picture,$X,$Y+($i-1),$X,$Y-$i,$Width,1,$StartAlpha-$AlphaStep*$i); }
+      }
+
+     imagecopy($this->Picture,$Picture,0,0,0,0,$this->XSize,$this->YSize);
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pIndicator.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pIndicator.class.php
new file mode 100644
index 0000000..1e4c7c3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pIndicator.class.php
@@ -0,0 +1,241 @@
+<?php
+ /*
+     pIndicator - class to draw indicators
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("INDICATOR_CAPTION_DEFAULT"	, 700001);
+ define("INDICATOR_CAPTION_EXTENDED"	, 700002);
+
+ define("INDICATOR_CAPTION_INSIDE"	, 700011);
+ define("INDICATOR_CAPTION_BOTTOM"	, 700012);
+
+ define("INDICATOR_VALUE_BUBBLE"	, 700021);
+ define("INDICATOR_VALUE_LABEL"		, 700022);
+
+ /* pIndicator class definition */
+ class pIndicator
+  {
+   var $pChartObject;
+
+   /* Class creator */
+   function pIndicator($pChartObject)
+    {
+     $this->pChartObject = $pChartObject;
+    }
+
+   /* Draw an indicator */
+   function draw($X,$Y,$Width,$Height,$Format="")
+    {
+     $Values			= isset($Format["Values"]) ? $Format["Values"] : VOID;
+     $IndicatorSections		= isset($Format["IndicatorSections"]) ? $Format["IndicatorSections"] : NULL;
+     $ValueDisplay		= isset($Format["ValueDisplay"]) ? $Format["ValueDisplay"] : INDICATOR_VALUE_BUBBLE;
+     $SectionsMargin		= isset($Format["SectionsMargin"]) ? $Format["SectionsMargin"] : 4;
+     $DrawLeftHead		= isset($Format["DrawLeftHead"]) ? $Format["DrawLeftHead"] : TRUE;
+     $DrawRightHead		= isset($Format["DrawRightHead"]) ? $Format["DrawRightHead"] : TRUE;
+     $HeadSize			= isset($Format["HeadSize"]) ? $Format["HeadSize"] : floor($Height/4);
+     $TextPadding		= isset($Format["TextPadding"]) ? $Format["TextPadding"] : 4;
+     $CaptionLayout		= isset($Format["CaptionLayout"]) ? $Format["CaptionLayout"] : INDICATOR_CAPTION_EXTENDED;
+     $CaptionPosition		= isset($Format["CaptionPosition"]) ? $Format["CaptionPosition"] : INDICATOR_CAPTION_INSIDE;
+     $CaptionColorFactor	= isset($Format["CaptionColorFactor"]) ? $Format["CaptionColorFactor"] : NULL;
+     $CaptionR			= isset($Format["CaptionR"]) ? $Format["CaptionR"] : 255;
+     $CaptionG			= isset($Format["CaptionG"]) ? $Format["CaptionG"] : 255;
+     $CaptionB			= isset($Format["CaptionB"]) ? $Format["CaptionB"] : 255;
+     $CaptionAlpha		= isset($Format["CaptionAlpha"]) ? $Format["CaptionAlpha"] : 100;
+     $SubCaptionColorFactor	= isset($Format["SubCaptionColorFactor"]) ? $Format["SubCaptionColorFactor"] : NULL;
+     $SubCaptionR		= isset($Format["SubCaptionR"]) ? $Format["SubCaptionR"] : 50;
+     $SubCaptionG		= isset($Format["SubCaptionG"]) ? $Format["SubCaptionG"] : 50;
+     $SubCaptionB		= isset($Format["SubCaptionB"]) ? $Format["SubCaptionB"] : 50;
+     $SubCaptionAlpha		= isset($Format["SubCaptionAlpha"]) ? $Format["SubCaptionAlpha"] : 100;
+     $ValueFontName		= isset($Format["ValueFontName"]) ? $Format["ValueFontName"] : $this->pChartObject->FontName;
+     $ValueFontSize		= isset($Format["ValueFontSize"]) ? $Format["ValueFontSize"] : $this->pChartObject->FontSize;
+     $CaptionFontName		= isset($Format["CaptionFontName"]) ? $Format["CaptionFontName"] : $this->pChartObject->FontName;
+     $CaptionFontSize		= isset($Format["CaptionFontSize"]) ? $Format["CaptionFontSize"] : $this->pChartObject->FontSize;
+     $Unit			= isset($Format["Unit"]) ? $Format["Unit"] : "";
+
+     /* Convert the Values to display to an array if needed */
+     if ( !is_array($Values) ) { $Value = $Values; $Values = ""; $Values[] = $Value; }
+
+     /* No section, let's die */
+     if ( $IndicatorSections == NULL ) { return(0); }
+
+     /* Determine indicator visual configuration */
+     $OverallMin = $IndicatorSections[0]["End"]; $OverallMax = $IndicatorSections[0]["Start"];
+     foreach ($IndicatorSections as $Key => $Settings)
+      {
+       if ( $Settings["End"] > $OverallMax )   { $OverallMax = $Settings["End"]; }
+       if ( $Settings["Start"] < $OverallMin ) { $OverallMin = $Settings["Start"]; }
+      }
+     $RealWidth = $Width - (count($IndicatorSections)-1)*$SectionsMargin;
+     $XScale    = $RealWidth / ($OverallMax-$OverallMin);
+
+     $X1 = $X; $ValuesPos = "";
+     foreach ($IndicatorSections as $Key => $Settings)
+      {
+       $Color      = array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"]);
+       $Caption    = $Settings["Caption"];
+       $SubCaption = $Settings["Start"]." - ".$Settings["End"];
+
+       $X2 = $X1 + ($Settings["End"] - $Settings["Start"]) * $XScale;
+
+       if ( $Key == 0 && $DrawLeftHead )
+        {
+         $Poly = ""; $Poly[] = $X1-1; $Poly[] = $Y; $Poly[] = $X1-1; $Poly[] = $Y+$Height; $Poly[] = $X1-1-$HeadSize; $Poly[] = $Y+($Height/2);
+         $this->pChartObject->drawPolygon($Poly,$Color);
+         $this->pChartObject->drawLine($X1-2,$Y,$X1-2-$HeadSize,$Y+($Height/2),$Color);
+         $this->pChartObject->drawLine($X1-2,$Y+$Height,$X1-2-$HeadSize,$Y+($Height/2),$Color);
+        }
+
+       /* Determine the position of the breaks */
+       $Break = "";
+       foreach($Values as $iKey => $Value)
+        {
+         if ( $Value >= $Settings["Start"] && $Value <= $Settings["End"] )
+          {
+           $XBreak  = $X1 + ($Value - $Settings["Start"]) * $XScale;
+           $ValuesPos[$Value] = $XBreak;
+           $Break[] = floor($XBreak);
+          }
+        }
+
+       if ( $ValueDisplay == INDICATOR_VALUE_LABEL )
+        {
+         if ( $Break == "" )
+          $this->pChartObject->drawFilledRectangle($X1,$Y,$X2,$Y+$Height,$Color);
+         else
+          {
+           sort($Break);
+           $Poly = ""; $Poly[] = $X1; $Poly[] = $Y; $LastPointWritten = FALSE;
+           foreach($Break as $iKey => $Value)
+            {
+             if ( $Value-5 >= $X1 )
+              { $Poly[] = $Value-5; $Poly[] = $Y; }
+             elseif ($X1 - ($Value-5) > 0 )
+              {
+               $Offset = $X1 - ($Value-5);
+               $Poly = ""; $Poly[] = $X1; $Poly[] = $Y + $Offset;
+              }
+
+             $Poly[] = $Value;   $Poly[] = $Y+5;
+
+             if ( $Value+5 <= $X2 )
+              { $Poly[] = $Value+5; $Poly[] = $Y; }
+             elseif (($Value+5) > $X2 )
+              {
+               $Offset = ($Value+5) - $X2;
+               $Poly[] = $X2; $Poly[] = $Y + $Offset;
+               $LastPointWritten = TRUE;
+              }
+
+            }
+           if ( !$LastPointWritten ) { $Poly[] = $X2; $Poly[] = $Y; }
+           $Poly[] = $X2; $Poly[] = $Y+$Height;
+           $Poly[] = $X1; $Poly[] = $Y+$Height;
+
+           $this->pChartObject->drawPolygon($Poly,$Color);
+          }
+        }
+       else
+        $this->pChartObject->drawFilledRectangle($X1,$Y,$X2,$Y+$Height,$Color);
+
+       if ( $Key == count($IndicatorSections)-1 && $DrawRightHead )
+        {
+         $Poly = ""; $Poly[] = $X2+1; $Poly[] = $Y; $Poly[] = $X2+1; $Poly[] = $Y+$Height; $Poly[] = $X2+1+$HeadSize; $Poly[] = $Y+($Height/2);
+         $this->pChartObject->drawPolygon($Poly,$Color);
+         $this->pChartObject->drawLine($X2+1,$Y,$X2+1+$HeadSize,$Y+($Height/2),$Color);
+         $this->pChartObject->drawLine($X2+1,$Y+$Height,$X2+1+$HeadSize,$Y+($Height/2),$Color);
+        }
+
+       if ( $CaptionPosition == INDICATOR_CAPTION_INSIDE )
+        {
+         $TxtPos  = $this->pChartObject->getTextBox($X1,$Y+$Height+$TextPadding,$CaptionFontName,$CaptionFontSize,0,$Caption);
+         $YOffset = ($TxtPos[0]["Y"] - $TxtPos[2]["Y"]) + $TextPadding;
+
+         if ( $CaptionLayout == INDICATOR_CAPTION_EXTENDED )
+          {
+           $TxtPos  = $this->pChartObject->getTextBox($X1,$Y+$Height+$TextPadding,$CaptionFontName,$CaptionFontSize,0,$SubCaption);
+           $YOffset = $YOffset + ($TxtPos[0]["Y"] - $TxtPos[2]["Y"]) + $TextPadding*2;
+          }
+
+         $XOffset = $TextPadding;
+        }
+       else
+        { $YOffset = 0; $XOffset = 0; }
+
+       if ( $CaptionColorFactor == NULL )
+        { $CaptionColor    = array("Align"=>TEXT_ALIGN_TOPLEFT,"FontName"=>$CaptionFontName,"FontSize"=>$CaptionFontSize,"R"=>$CaptionR,"G"=>$CaptionG,"B"=>$CaptionB,"Alpha"=>$CaptionAlpha); }
+       else
+        { $CaptionColor    = array("Align"=>TEXT_ALIGN_TOPLEFT,"FontName"=>$CaptionFontName,"FontSize"=>$CaptionFontSize,"R"=>$Settings["R"]+$CaptionColorFactor,"G"=>$Settings["G"]+$CaptionColorFactor,"B"=>$Settings["B"]+$CaptionColorFactor); }
+
+       if ( $SubCaptionColorFactor == NULL )
+        $SubCaptionColor = array("Align"=>TEXT_ALIGN_TOPLEFT,"FontName"=>$CaptionFontName,"FontSize"=>$CaptionFontSize,"R"=>$SubCaptionR,"G"=>$SubCaptionG,"B"=>$SubCaptionB,"Alpha"=>$SubCaptionAlpha);
+       else
+        $SubCaptionColor = array("Align"=>TEXT_ALIGN_TOPLEFT,"FontName"=>$CaptionFontName,"FontSize"=>$CaptionFontSize,"R"=>$Settings["R"]+$SubCaptionColorFactor,"G"=>$Settings["G"]+$SubCaptionColorFactor,"B"=>$Settings["B"]+$SubCaptionColorFactor);
+
+       $RestoreShadow = $this->pChartObject->Shadow;
+       $this->pChartObject->Shadow = FALSE;
+
+       if ( $CaptionLayout == INDICATOR_CAPTION_DEFAULT )
+        $this->pChartObject->drawText($X1,$Y+$Height+$TextPadding,$Caption,$CaptionColor);
+       elseif ( $CaptionLayout == INDICATOR_CAPTION_EXTENDED )
+        {
+         $TxtPos        = $this->pChartObject->getTextBox($X1,$Y+$Height+$TextPadding,$CaptionFontName,$CaptionFontSize,0,$Caption);
+         $CaptionHeight = $TxtPos[0]["Y"] - $TxtPos[2]["Y"];
+
+         $this->pChartObject->drawText($X1+$XOffset,$Y+$Height-$YOffset+$TextPadding,$Caption,$CaptionColor);
+         $this->pChartObject->drawText($X1+$XOffset,$Y+$Height-$YOffset+$CaptionHeight+$TextPadding*2,$SubCaption,$SubCaptionColor);
+        }
+
+       $this->pChartObject->Shadow = $RestoreShadow;
+
+       $X1 = $X2 + $SectionsMargin;
+      }
+
+     $RestoreShadow = $this->pChartObject->Shadow;
+     $this->pChartObject->Shadow = FALSE;
+
+     foreach($Values as $Key => $Value)
+      {
+       if ( $Value >= $OverallMin && $Value <= $OverallMax )
+        {
+         foreach ($IndicatorSections as $Key => $Settings)
+          {
+           if ( $Value >= $Settings["Start"] && $Value <= $Settings["End"] )
+            {
+             $X1 = $ValuesPos[$Value]; //$X + $Key*$SectionsMargin + ($Value - $OverallMin) * $XScale;
+
+             if ( $ValueDisplay == INDICATOR_VALUE_BUBBLE )
+              {
+               $TxtPos = $this->pChartObject->getTextBox($X1,$Y,$ValueFontName,$ValueFontSize,0,$Value.$Unit);
+               $Radius = floor(($TxtPos[1]["X"] - $TxtPos[0]["X"] + $TextPadding*4)/2);
+
+               $this->pChartObject->drawFilledCircle($X1,$Y,$Radius+4,array("R"=>$Settings["R"]+20,"G"=>$Settings["G"]+20,"B"=>$Settings["B"]+20));
+               $this->pChartObject->drawFilledCircle($X1,$Y,$Radius,array("R"=>255,"G"=>255,"B"=>255));
+
+               $TextSettings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontName"=>$ValueFontName,"FontSize"=>$ValueFontSize);
+               $this->pChartObject->drawText($X1-1,$Y-1,$Value.$Unit,$TextSettings);
+              }
+             elseif( $ValueDisplay == INDICATOR_VALUE_LABEL )
+              {
+               $Caption = "";
+               $Caption[] = array("Format"=>array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"],"Alpha"=>100),"Caption"=>$Value.$Unit);
+               $this->pChartObject->drawLabelBox(floor($X1),floor($Y)+2,"Value - ".$Settings["Caption"],$Caption);
+              }
+            }
+           $X1 = $X2 + $SectionsMargin;
+          }
+        }
+      }
+     $this->pChartObject->Shadow = $RestoreShadow;
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pPie.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pPie.class.php
new file mode 100644
index 0000000..06db3cf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pPie.class.php
@@ -0,0 +1,1500 @@
+<?php
+ /*
+     pPie - class to draw pie charts
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ /* Class return codes */
+ define("PIE_NO_ABSCISSA"	, 140001);
+ define("PIE_NO_DATASERIE"	, 140002);
+ define("PIE_SUMISNULL"		, 140003);
+ define("PIE_RENDERED"		, 140000);
+
+ define("PIE_LABEL_COLOR_AUTO"	, 140010);
+ define("PIE_LABEL_COLOR_MANUAL", 140011);
+
+ define("PIE_VALUE_NATURAL"	, 140020);
+ define("PIE_VALUE_PERCENTAGE"	, 140021);
+
+ define("PIE_VALUE_INSIDE"      , 140030);
+ define("PIE_VALUE_OUTSIDE"     , 140031);
+
+ /* pPie class definition */
+ class pPie
+  {
+   var $pChartObject;
+   var $pDataObject;
+   var $LabelPos = "" ;
+
+   /* Class creator */
+   function pPie($Object,$pDataObject)
+    {
+     /* Cache the pChart object reference */
+     $this->pChartObject = $Object;
+
+     /* Cache the pData object reference */
+     $this->pDataObject  = $pDataObject;
+    }
+
+   /* Draw a pie chart */
+   function draw2DPie($X,$Y,$Format="")
+    {
+     $Radius		= isset($Format["Radius"]) ? $Format["Radius"] : 60;
+     $Precision		= isset($Format["Precision"]) ? $Format["Precision"] : 0;
+     $DataGapAngle	= isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 0;
+     $DataGapRadius	= isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 0;
+     $SecondPass	= isset($Format["SecondPass"]) ? $Format["SecondPass"] : TRUE;
+     $Border		= isset($Format["Border"]) ? $Format["Border"] : FALSE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+     $Shadow		= isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+     $DrawLabels	= isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+     $LabelStacked	= isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+     $LabelColor	= isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+     $LabelR		= isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+     $LabelG		= isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+     $LabelB		= isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+     $LabelAlpha	= isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+     $WriteValues	= isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL;
+     $ValuePosition	= isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
+     $ValuePadding	= isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 15;
+     $ValueSuffix	= isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+     $ValueR		= isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+     $ValueG		= isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+     $ValueB		= isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+     $ValueAlpha	= isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     /* Data Processing */
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     /* Do we have an abscissa serie defined? */
+     if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+     /* Try to find the data serie */
+     $DataSerie = "";
+     foreach ($Data["Series"] as $SerieName => $SerieData)
+      { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+     /* Do we have data to compute? */
+     if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+     /* Remove unused data */
+     list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+     /* Compute the pie sum */
+     $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+     /* Do we have data to draw? */
+     if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+     /* Dump the real number of data to draw */
+     $Values = "";
+     foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+      { if ($Value != 0) { $Values[] = $Value; } }
+
+     /* Compute the wasted angular space between series */
+     if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
+
+     /* Compute the scale */
+     $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+     $RestoreShadow = $this->pChartObject->Shadow;
+     if ( $this->pChartObject->Shadow )
+      {
+       $this->pChartObject->Shadow = FALSE;
+
+       $ShadowFormat = $Format; $ShadowFormat["Shadow"] = TRUE;
+       $this->draw2DPie($X+$this->pChartObject->ShadowX,$Y+$this->pChartObject->ShadowY,$ShadowFormat);
+      }
+
+     /* Draw the polygon pie elements */
+     $Step = 360 / (2 * PI * $Radius);
+     $Offset = 0; $ID = 0;
+     foreach($Values as $Key => $Value)
+      {
+       if ( $Shadow )
+        $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+       else
+        {
+         if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+         $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+        }
+
+       if ( !$SecondPass && !$Shadow )
+        {
+         if ( !$Border )
+          $Settings["Surrounding"] = 10;
+         else
+          { $Settings["BorderR"] = $BorderR; $Settings["BorderG"] = $BorderG; $Settings["BorderB"] = $BorderB; }
+        }
+
+       $Plots = "";
+       $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
+
+       $Angle = ($EndAngle - $Offset)/2 + $Offset;
+       if ($DataGapAngle == 0)
+        { $X0 = $X; $Y0 = $Y; }
+       else
+        {
+         $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+         $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius + $Y;
+        }
+
+       $Plots[] = $X0; $Plots[] = $Y0;
+
+
+       for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
+        {
+         $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+         $Yc = sin(($i-90)*PI/180) * $Radius + $Y;
+
+         if ( $SecondPass && ( $i<90 )) { $Yc++; }
+         if ( $SecondPass && ( $i>180 && $i<270 )) { $Xc++; }
+         if ( $SecondPass && ( $i>=270 )) { $Xc++; $Yc++; }
+
+         $Plots[] = $Xc; $Plots[] = $Yc;
+        }
+
+       $this->pChartObject->drawPolygon($Plots,$Settings);
+       if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$Key],$Value); }
+
+       if ( $DrawLabels && !$Shadow && !$SecondPass )
+        {
+         if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+          { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+         else
+          { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+         $Angle = ($EndAngle - $Offset)/2 + $Offset;
+         $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+         $Yc = sin(($Angle-90)*PI/180) * $Radius + $Y;
+
+         $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+
+         if ( $LabelStacked )
+          $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius);
+         else
+          $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+        }
+
+       $Offset = $i + $DataGapAngle; $ID++;
+      }
+
+     /* Second pass to smooth the angles */
+     if ( $SecondPass )
+      {
+       $Step = 360 / (2 * PI * $Radius);
+       $Offset = 0; $ID = 0;
+       foreach($Values as $Key => $Value)
+        {
+         $FirstPoint = TRUE;
+         if ( $Shadow )
+          $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+         else
+          {
+           if ( $Border )
+            $Settings = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB);
+           else
+            $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+          }
+
+         $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
+
+         if ($DataGapAngle == 0)
+          { $X0 = $X; $Y0 = $Y; }
+         else
+          {
+           $Angle = ($EndAngle - $Offset)/2 + $Offset;
+           $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+           $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius + $Y;
+          }
+         $Plots[] = $X0; $Plots[] = $Y0;
+
+         for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
+          {
+           $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+           $Yc = sin(($i-90)*PI/180) * $Radius + $Y;
+
+           if ( $FirstPoint ) { $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings); } { $FirstPoint = FALSE; }
+  
+           $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+          }
+         $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings);
+
+         if ( $DrawLabels && !$Shadow )
+          {
+           if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+            { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+           else
+            { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+           $Angle = ($EndAngle - $Offset)/2 + $Offset;
+           $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+           $Yc = sin(($Angle-90)*PI/180) * $Radius + $Y;
+
+           $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+
+           if ( $LabelStacked )
+            $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius);
+           else
+            $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+          }
+  
+         $Offset = $i + $DataGapAngle; $ID++;
+        }
+      }
+
+     if ( $WriteValues != NULL && !$Shadow )
+      {
+       $Step = 360 / (2 * PI * $Radius);
+       $Offset = 0; $ID = count($Values)-1;
+       $Settings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB,"Alpha"=>$ValueAlpha);
+       foreach($Values as $Key => $Value)
+        {
+         $EndAngle = ($Value*$ScaleFactor) + $Offset; if ( $EndAngle > 360 ) { $EndAngle = 0; }
+         $Angle    = ($EndAngle - $Offset)/2 + $Offset;
+
+         if ( $ValuePosition == PIE_VALUE_OUTSIDE )
+          {
+           $Xc = cos(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $X;
+           $Yc = sin(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $Y;
+          }
+         else
+          {
+           $Xc = cos(($Angle-90)*PI/180) * ($Radius)/2 + $X;
+           $Yc = sin(($Angle-90)*PI/180) * ($Radius)/2 + $Y;
+          }
+
+         if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+          $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+         elseif ( $WriteValues == PIE_VALUE_NATURAL )
+          $Display = $Value.$ValueSuffix;
+
+         $this->pChartObject->drawText($Xc,$Yc,$Display,$Settings);
+
+         $Offset = $EndAngle + $DataGapAngle; $ID--;
+        }
+      }
+
+     if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+     $this->pChartObject->Shadow = $RestoreShadow;
+
+     return(PIE_RENDERED);
+    }
+
+   /* Draw a 3D pie chart */
+   function draw3DPie($X,$Y,$Format="")
+    {
+     /* Rendering layout */
+     $Radius		= isset($Format["Radius"]) ? $Format["Radius"] : 80;
+     $Precision		= isset($Format["Precision"]) ? $Format["Precision"] : 0;
+     $SkewFactor	= isset($Format["SkewFactor"]) ? $Format["SkewFactor"] : .5;
+     $SliceHeight	= isset($Format["SliceHeight"]) ? $Format["SliceHeight"] : 20;
+     $DataGapAngle	= isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 0;
+     $DataGapRadius	= isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 0;
+     $SecondPass	= isset($Format["SecondPass"]) ? $Format["SecondPass"] : TRUE;
+     $Border		= isset($Format["Border"]) ? $Format["Border"] : FALSE;
+     $Shadow		= isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+     $DrawLabels	= isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+     $LabelStacked	= isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+     $LabelColor	= isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+     $LabelR		= isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+     $LabelG		= isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+     $LabelB		= isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+     $LabelAlpha	= isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+     $WriteValues	= isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL; //PIE_VALUE_PERCENTAGE
+     $ValuePosition	= isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_INSIDE;
+     $ValuePadding	= isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 15;
+     $ValueSuffix	= isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+     $ValueR		= isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+     $ValueG		= isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+     $ValueB		= isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+     $ValueAlpha	= isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     /* Error correction for overlaying rounded corners */
+     if ( $SkewFactor < .5 ) { $SkewFactor = .5; }
+
+     /* Data Processing */
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     /* Do we have an abscissa serie defined? */
+     if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+     /* Try to find the data serie */
+     $DataSerie = "";
+     foreach ($Data["Series"] as $SerieName => $SerieData)
+      { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+     /* Do we have data to compute? */
+     if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+     /* Remove unused data */
+     list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+     /* Compute the pie sum */
+     $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+     /* Do we have data to draw? */
+     if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+     /* Dump the real number of data to draw */
+     $Values = "";
+     foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+      { if ($Value != 0) { $Values[] = $Value; } }
+
+     /* Compute the wasted angular space between series */
+     if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
+
+     /* Compute the scale */
+     $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+     $RestoreShadow = $this->pChartObject->Shadow;
+     if ( $this->pChartObject->Shadow ) { $this->pChartObject->Shadow = FALSE; }
+
+     /* Draw the polygon pie elements */
+     $Step   = 360 / (2 * PI * $Radius);
+     $Offset = 360; $ID = count($Values)-1;
+     $Values = array_reverse($Values);
+     $Slice  = 0; $Slices = ""; $SliceColors = ""; $Visible = ""; $SliceAngle = "";
+     foreach($Values as $Key => $Value)
+      {
+       if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+       $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+
+       $SliceColors[$Slice] = $Settings;
+
+       $StartAngle = $Offset;
+       $EndAngle   = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+       if ( $StartAngle > 180 ) { $Visible[$Slice]["Start"] = TRUE; } else { $Visible[$Slice]["Start"] = TRUE; }
+       if ( $EndAngle < 180 )   { $Visible[$Slice]["End"] = FALSE; } else { $Visible[$Slice]["End"] = TRUE; }
+
+       if ($DataGapAngle == 0)
+        { $X0 = $X; $Y0 = $Y; }
+       else
+        {
+         $Angle = ($EndAngle - $Offset)/2 + $Offset;
+         $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+         $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius*$SkewFactor + $Y;
+        }
+       $Slices[$Slice][] = $X0; $Slices[$Slice][] = $Y0; $SliceAngle[$Slice][] = 0;
+
+       for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+        {
+         $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+         $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y;
+
+         if ( ($SecondPass || $RestoreShadow ) && ( $i<90 )) { $Yc++; }
+         if ( ($SecondPass || $RestoreShadow ) && ( $i>90 && $i<180 )) { $Xc++; }
+         if ( ($SecondPass || $RestoreShadow ) && ( $i>180 && $i<270 )) { $Xc++; }
+         if ( ($SecondPass || $RestoreShadow ) && ( $i>=270 )) { $Xc++; $Yc++; }
+
+         $Slices[$Slice][] = $Xc; $Slices[$Slice][] = $Yc; $SliceAngle[$Slice][] = $i;
+        }
+
+       $Offset = $i - $DataGapAngle; $ID--; $Slice++;
+      }
+
+     /* Draw the bottom shadow if needed */
+     if ( $RestoreShadow && ($this->pChartObject->ShadowX != 0 || $this->pChartObject->ShadowY !=0 ))
+      {
+       foreach($Slices as $SliceID => $Plots)
+        {
+         $ShadowPie = "";
+         for($i=0;$i<count($Plots);$i=$i+2)
+          { $ShadowPie[] = $Plots[$i]+$this->pChartObject->ShadowX; $ShadowPie[] = $Plots[$i+1]+$this->pChartObject->ShadowY; }
+
+         $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa,"NoBorder"=>TRUE);
+         $this->pChartObject->drawPolygon($ShadowPie,$Settings);
+        }
+
+       $Step = 360 / (2 * PI * $Radius);
+       $Offset = 360;
+       foreach($Values as $Key => $Value)
+        {
+         $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+         for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+          {
+           $Xc = cos(($i-90)*PI/180) * $Radius + $X + $this->pChartObject->ShadowX;
+           $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y + $this->pChartObject->ShadowY;
+
+           $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+          }
+
+         $Offset = $i - $DataGapAngle; $ID--;
+        }
+      }
+
+     /* Draw the bottom pie splice */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $this->pChartObject->drawPolygon($Plots,$Settings);
+
+       if ( $SecondPass )
+        {
+         $Settings = $SliceColors[$SliceID];
+         if ( $Border )
+          { $Settings["R"]+= 30; $Settings["G"]+= 30; $Settings["B"]+= 30;; }
+  
+         if ( isset($SliceAngle[$SliceID][1]) ) /* Empty error handling */
+          {
+           $Angle = $SliceAngle[$SliceID][1];
+           $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+           $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+           $this->pChartObject->drawLine($Plots[0],$Plots[1],$Xc,$Yc,$Settings);
+
+           $Angle = $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1];
+           $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+           $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+           $this->pChartObject->drawLine($Plots[0],$Plots[1],$Xc,$Yc,$Settings);
+          }
+        }
+      }
+
+     /* Draw the two vertical edges */
+     $Slices      = array_reverse($Slices);
+     $SliceColors = array_reverse($SliceColors);
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];
+       $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
+
+       if ( $Visible[$SliceID]["Start"] && isset($Plots[2])) /* Empty error handling */
+        {
+         $this->pChartObject->drawLine($Plots[2],$Plots[3],$Plots[2],$Plots[3]- $SliceHeight,array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"]));
+         $Border = "";
+         $Border[] = $Plots[0]; $Border[] = $Plots[1]; $Border[] = $Plots[0]; $Border[] = $Plots[1] - $SliceHeight;
+         $Border[] = $Plots[2]; $Border[] = $Plots[3] - $SliceHeight; $Border[] = $Plots[2]; $Border[] = $Plots[3]; 
+         $this->pChartObject->drawPolygon($Border,$Settings);
+        }
+      }
+
+     $Slices      = array_reverse($Slices);
+     $SliceColors = array_reverse($SliceColors);
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];
+       $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
+       if ( $Visible[$SliceID]["End"] )
+        {
+         $this->pChartObject->drawLine($Plots[count($Plots)-2],$Plots[count($Plots)-1],$Plots[count($Plots)-2],$Plots[count($Plots)-1]- $SliceHeight,array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"]));
+
+         $Border = "";
+         $Border[] = $Plots[0]; $Border[] = $Plots[1]; $Border[] = $Plots[0]; $Border[] = $Plots[1] - $SliceHeight;
+         $Border[] = $Plots[count($Plots)-2]; $Border[] = $Plots[count($Plots)-1] - $SliceHeight; $Border[] = $Plots[count($Plots)-2]; $Border[] = $Plots[count($Plots)-1]; 
+         $this->pChartObject->drawPolygon($Border,$Settings);
+        }
+      }
+
+     /* Draw the rounded edges */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];
+       $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
+
+       for ($j=2;$j<count($Plots)-2;$j=$j+2)
+        {
+         $Angle = $SliceAngle[$SliceID][$j/2];
+         if ( $Angle < 270 && $Angle > 90 )
+          {
+           $Border = "";
+           $Border[] = $Plots[$j];   $Border[] = $Plots[$j+1];
+           $Border[] = $Plots[$j+2]; $Border[] = $Plots[$j+3];
+           $Border[] = $Plots[$j+2]; $Border[] = $Plots[$j+3] - $SliceHeight;
+           $Border[] = $Plots[$j];   $Border[] = $Plots[$j+1] - $SliceHeight;
+           $this->pChartObject->drawPolygon($Border,$Settings);
+          }
+        }
+
+       if ( $SecondPass )
+        {
+         $Settings = $SliceColors[$SliceID];
+         if ( $Border )
+          { $Settings["R"]+= 30; $Settings["G"]+= 30; $Settings["B"]+= 30; }
+  
+         if ( isset($SliceAngle[$SliceID][1]) ) /* Empty error handling */
+          {
+           $Angle = $SliceAngle[$SliceID][1];
+           if ( $Angle < 270 && $Angle > 90 )
+            {
+             $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+             $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+             $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+            }
+          }
+
+         $Angle = $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1];
+         if ( $Angle < 270 && $Angle > 90 )
+          {
+           $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+           $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+           $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+          }
+
+         if ( isset($SliceAngle[$SliceID][1]) && $SliceAngle[$SliceID][1] > 270 && $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1] < 270 )
+          {
+           $Xc = cos((270-90)*PI/180) * $Radius + $X;
+           $Yc = sin((270-90)*PI/180) * $Radius*$SkewFactor + $Y;
+           $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+          }
+
+         if ( isset($SliceAngle[$SliceID][1]) && $SliceAngle[$SliceID][1] > 90 && $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1] < 90 )
+          {
+           $Xc = cos((0)*PI/180) * $Radius + $X;
+           $Yc = sin((0)*PI/180) * $Radius*$SkewFactor + $Y;
+           $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+          }
+
+        }
+      }
+
+     /* Draw the top splice */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];
+       $Settings["R"]+= 20; $Settings["G"]+= 20; $Settings["B"]+= 20;
+
+       $Top = "";
+       for($j=0;$j<count($Plots);$j=$j+2) { $Top[] = $Plots[$j]; $Top[] = $Plots[$j+1]- $SliceHeight; }
+       $this->pChartObject->drawPolygon($Top,$Settings);
+
+       if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Top),$this->pChartObject->toHTMLColor($Settings["R"],$Settings["G"],$Settings["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][count($Slices)-$SliceID-1],$Values[$SliceID]); }
+      }
+
+
+     /* Second pass to smooth the angles */
+     if ( $SecondPass )
+      {
+       $Step = 360 / (2 * PI * $Radius);
+       $Offset = 360; $ID = count($Values)-1;
+       foreach($Values as $Key => $Value)
+        {
+         $FirstPoint = TRUE;
+         if ( $Shadow )
+          $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+         else
+          {
+           if ( $Border )
+            { $Settings = array("R"=>$Palette[$ID]["R"]+30,"G"=>$Palette[$ID]["G"]+30,"B"=>$Palette[$ID]["B"]+30,"Alpha"=>$Palette[$ID]["Alpha"]); }
+           else
+            $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+          }
+
+         $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+         if ($DataGapAngle == 0)
+          { $X0 = $X; $Y0 = $Y- $SliceHeight; }
+         else
+          {
+           $Angle = ($EndAngle - $Offset)/2 + $Offset;
+           $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+           $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius*$SkewFactor + $Y - $SliceHeight;
+          }
+         $Plots[] = $X0; $Plots[] = $Y0;
+
+         for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+          {
+           $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+           $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y - $SliceHeight;
+
+           if ( $FirstPoint ) { $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings); } { $FirstPoint = FALSE; }
+  
+           $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+           if ($i < 270 && $i > 90 ) { $this->pChartObject->drawAntialiasPixel($Xc,$Yc+$SliceHeight,$Settings); }
+          }
+         $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings);
+
+         $Offset = $i - $DataGapAngle; $ID--;
+        }
+      }
+
+     if ( $WriteValues != NULL )
+      {
+       $Step = 360 / (2 * PI * $Radius);
+       $Offset = 360; $ID = count($Values)-1;
+       $Settings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB,"Alpha"=>$ValueAlpha);
+       foreach($Values as $Key => $Value)
+        {
+         $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+         $Angle = ($EndAngle - $Offset)/2 + $Offset;
+
+         if ( $ValuePosition == PIE_VALUE_OUTSIDE )
+          {
+           $Xc = cos(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $X;
+           $Yc = sin(($Angle-90)*PI/180) * (($Radius*$SkewFactor)+$ValuePadding) + $Y - $SliceHeight;
+          }
+         else
+          {
+           $Xc = cos(($Angle-90)*PI/180) * ($Radius)/2 + $X;
+           $Yc = sin(($Angle-90)*PI/180) * ($Radius*$SkewFactor)/2 + $Y - $SliceHeight;
+          }
+
+         if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+          $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+         elseif ( $WriteValues == PIE_VALUE_NATURAL )
+          $Display = $Value.$ValueSuffix;
+
+         $this->pChartObject->drawText($Xc,$Yc,$Display,$Settings);
+
+         $Offset = $EndAngle - $DataGapAngle; $ID--;
+        }
+      }
+
+     if ( $DrawLabels )
+      {
+       $Step = 360 / (2 * PI * $Radius);
+       $Offset = 360; $ID = count($Values)-1;
+       foreach($Values as $Key => $Value)
+        {
+         if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+          { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+         else
+          { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+         $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+         $Angle = ($EndAngle - $Offset)/2 + $Offset;
+         $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+         $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y - $SliceHeight;
+
+         if ( isset($Data["Series"][$Data["Abscissa"]]["Data"][$ID]) )
+          {
+           $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$ID];
+
+           if ( $LabelStacked )
+            $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius,TRUE);
+           else
+            $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+          }
+
+         $Offset = $EndAngle - $DataGapAngle; $ID--;
+        }
+      }
+
+     if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+     $this->pChartObject->Shadow = $RestoreShadow;
+
+     return(PIE_RENDERED);
+    }
+
+   /* Draw the legend of pie chart */
+   function drawPieLegend($X,$Y,$Format="")
+    {
+     $FontName		= isset($Format["FontName"]) ? $Format["FontName"] : $this->pChartObject->FontName;
+     $FontSize		= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->pChartObject->FontSize;
+     $FontR		= isset($Format["FontR"]) ? $Format["FontR"] : $this->pChartObject->FontColorR;
+     $FontG		= isset($Format["FontG"]) ? $Format["FontG"] : $this->pChartObject->FontColorG;
+     $FontB		= isset($Format["FontB"]) ? $Format["FontB"] : $this->pChartObject->FontColorB;
+     $BoxSize		= isset($Format["BoxSize"]) ? $Format["BoxSize"] : 5;
+     $Margin		= isset($Format["Margin"]) ? $Format["Margin"] : 5;
+     $R			= isset($Format["R"]) ? $Format["R"] : 200;
+     $G			= isset($Format["G"]) ? $Format["G"] : 200;
+     $B			= isset($Format["B"]) ? $Format["B"] : 200;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $Style		= isset($Format["Style"]) ? $Format["Style"] : LEGEND_ROUND;
+     $Mode		= isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
+
+     if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
+
+     $YStep = max($this->pChartObject->FontSize,$BoxSize) + 5;
+     $XStep = $BoxSize + 5;
+
+     /* Data Processing */
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     /* Do we have an abscissa serie defined? */
+     if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+     $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
+     foreach($Data["Series"][$Data["Abscissa"]]["Data"] as $Key => $Value)
+      {
+       $BoxArray = $this->pChartObject->getTextBox($vX+$BoxSize+4,$vY+$BoxSize/2,$FontName,$FontSize,0,$Value);
+
+       if ( $Mode == LEGEND_VERTICAL )
+        {
+         if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxSize/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxSize/2; }
+         if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+         if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxSize/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxSize/2; }
+         $vY=$vY+$YStep;
+        }
+       elseif ( $Mode == LEGEND_HORIZONTAL )
+        {
+         if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxSize/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxSize/2; }
+         if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+         if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxSize/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxSize/2; }
+         $vX=$Boundaries["R"]+$XStep;
+        }
+      }
+     $vY=$vY-$YStep; $vX=$vX-$XStep;
+
+     $TopOffset  = $Y - $Boundaries["T"];
+     if ( $Boundaries["B"]-($vY+$BoxSize) < $TopOffset ) { $Boundaries["B"] = $vY+$BoxSize+$TopOffset; }
+
+     if ( $Style == LEGEND_ROUND )
+      $this->pChartObject->drawRoundedFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+     elseif ( $Style == LEGEND_BOX )
+      $this->pChartObject->drawFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+
+     $RestoreShadow = $this->pChartObject->Shadow; $this->pChartObject->Shadow = FALSE;
+     foreach($Data["Series"][$Data["Abscissa"]]["Data"] as $Key => $Value)
+      {
+       $R = $Palette[$Key]["R"]; $G = $Palette[$Key]["G"]; $B = $Palette[$Key]["B"];
+
+       $this->pChartObject->drawFilledRectangle($X+1,$Y+1,$X+$BoxSize+1,$Y+$BoxSize+1,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
+       $this->pChartObject->drawFilledRectangle($X,$Y,$X+$BoxSize,$Y+$BoxSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Surrounding"=>20));
+       if ( $Mode == LEGEND_VERTICAL )
+        {
+         $this->pChartObject->drawText($X+$BoxSize+4,$Y+$BoxSize/2,$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontName"=>$FontName,"FontSize"=>$FontSize));
+         $Y=$Y+$YStep;
+        }
+       elseif ( $Mode == LEGEND_HORIZONTAL )
+        {
+         $BoxArray = $this->pChartObject->drawText($X+$BoxSize+4,$Y+$BoxSize/2,$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontName"=>$FontName,"FontSize"=>$FontSize));
+         $X=$BoxArray[1]["X"]+2+$XStep;
+        }
+      }
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Set the color of the specified slice */
+   function setSliceColor($SliceID,$Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : 0;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+     $this->pDataObject->Palette[$SliceID]["R"]     = $R;
+     $this->pDataObject->Palette[$SliceID]["G"]     = $G;
+     $this->pDataObject->Palette[$SliceID]["B"]     = $B;
+     $this->pDataObject->Palette[$SliceID]["Alpha"] = $Alpha;
+    }
+
+   /* Internally used compute the label positions */
+   function writePieLabel($X,$Y,$Label,$Angle,$Settings,$Stacked,$Xc=0,$Yc=0,$Radius=0,$Reversed=FALSE)
+    {
+     $LabelOffset	= 30;
+     $FontName		= $this->pChartObject->FontName;
+     $FontSize		= $this->pChartObject->FontSize;
+
+     if ( !$Stacked )
+      {
+       $Settings["Angle"]  = 360-$Angle;
+       $Settings["Length"] = 25;
+       $Settings["Size"]   = 8;
+
+       $this->pChartObject->drawArrowLabel($X,$Y," ".$Label." ",$Settings);
+      }
+     else
+      {
+       $X2 = cos(deg2rad($Angle-90))*20+$X;
+       $Y2 = sin(deg2rad($Angle-90))*20+$Y;
+
+       $TxtPos = $this->pChartObject->getTextBox($X,$Y,$FontName,$FontSize,0,$Label);
+       $Height = $TxtPos[0]["Y"] - $TxtPos[2]["Y"];
+       $YTop    = $Y2 - $Height/2 - 2;
+       $YBottom = $Y2 + $Height/2 + 2;
+
+       if ( $this->LabelPos != "" )
+        {
+         $Done = FALSE;
+         foreach($this->LabelPos as $Key => $Settings)
+          {
+           if ( !$Done )
+            {
+             if ( $Angle <= 90 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+              { $this->shift(0,180,-($Height+2),$Reversed); $Done = TRUE; }
+             if ( $Angle > 90 && $Angle <= 180 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+              { $this->shift(0,180,-($Height+2),$Reversed); $Done = TRUE; }
+             if ( $Angle > 180 && $Angle <= 270 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+              { $this->shift(180,360,($Height+2),$Reversed); $Done = TRUE; }
+             if ( $Angle > 270 && $Angle <= 360 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+              { $this->shift(180,360,($Height+2),$Reversed); $Done = TRUE; }
+            }
+          }
+        }
+
+       $LabelSettings = array("YTop"=>$YTop,"YBottom"=>$YBottom,"Label"=>$Label,"Angle"=>$Angle,"X1"=>$X,"Y1"=>$Y,"X2"=>$X2,"Y2"=>$Y2);
+       if ( $Angle <= 180 ) { $LabelSettings["X3"] = $Xc+$Radius+$LabelOffset; }
+       if ( $Angle > 180 )  { $LabelSettings["X3"] = $Xc-$Radius-$LabelOffset; }
+       $this->LabelPos[] = $LabelSettings;
+      }
+    }
+
+   /* Internally used to shift label positions */
+   function shift($StartAngle,$EndAngle,$Offset,$Reversed)
+    {
+     if ( $Reversed ) { $Offset = -$Offset; }
+     foreach($this->LabelPos as $Key => $Settings)
+      {
+       if ( $Settings["Angle"] > $StartAngle && $Settings["Angle"] <= $EndAngle ) { $this->LabelPos[$Key]["YTop"] = $Settings["YTop"] + $Offset; $this->LabelPos[$Key]["YBottom"] = $Settings["YBottom"] + $Offset; $this->LabelPos[$Key]["Y2"] = $Settings["Y2"] + $Offset; }
+      }
+    }
+
+   /* Internally used to write the re-computed labels */
+   function writeShiftedLabels()
+    {
+     if ( $this->LabelPos == "" ) { return(0); }
+     foreach($this->LabelPos as $Key => $Settings)
+      {
+       $X1 = $Settings["X1"]; $Y1 = $Settings["Y1"];
+       $X2 = $Settings["X2"]; $Y2 = $Settings["Y2"];
+       $X3 = $Settings["X3"];
+       $Angle = $Settings["Angle"];
+       $Label = $Settings["Label"];
+
+       $this->pChartObject->drawArrow($X2,$Y2,$X1,$Y1,array("Size"=>8));
+       if ( $Angle <= 180 )
+        {
+         $this->pChartObject->drawLine($X2,$Y2,$X3,$Y2);
+         $this->pChartObject->drawText($X3+2,$Y2,$Label,array("Align"=>TEXT_ALIGN_MIDDLELEFT));
+        }
+       else
+        {
+         $this->pChartObject->drawLine($X2,$Y2,$X3,$Y2);
+         $this->pChartObject->drawText($X3-2,$Y2,$Label,array("Align"=>TEXT_ALIGN_MIDDLERIGHT));
+        }
+      }
+    }
+
+   /* Draw a ring chart */
+   function draw2DRing($X,$Y,$Format="")
+    {
+     $OuterRadius	= isset($Format["Radius"]) ? $Format["Radius"] : 60;
+     $Precision		= isset($Format["Precision"]) ? $Format["Precision"] : 0;
+     $InnerRadius	= isset($Format["Radius"]) ? $Format["Radius"] : 30;
+     $Border		= isset($Format["Border"]) ? $Format["Border"] : FALSE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+     $BorderAlpha	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : 100;
+     $Shadow		= isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+     $DrawLabels	= isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+     $LabelStacked	= isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+     $LabelColor	= isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+     $LabelR		= isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+     $LabelG		= isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+     $LabelB		= isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+     $LabelAlpha	= isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+     $WriteValues	= isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL; //PIE_VALUE_PERCENTAGE
+     $ValuePadding	= isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 5;
+     $ValuePosition	= isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
+     $ValueSuffix	= isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+     $ValueR		= isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+     $ValueG		= isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+     $ValueB		= isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+     $ValueAlpha	= isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     /* Data Processing */
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     /* Do we have an abscissa serie defined? */
+     if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+     /* Try to find the data serie */
+     $DataSerie = "";
+     foreach ($Data["Series"] as $SerieName => $SerieData)
+      { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+     /* Do we have data to compute? */
+     if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+     /* Remove unused data */
+     list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+     /* Compute the pie sum */
+     $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+     /* Do we have data to draw? */
+     if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+     /* Dump the real number of data to draw */
+     $Values = "";
+     foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+      { if ($Value != 0) { $Values[] = $Value; } }
+
+     /* Compute the wasted angular space between series */
+     if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = 0; } // count($Values)
+
+     /* Compute the scale */
+     $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+     $RestoreShadow = $this->pChartObject->Shadow;
+     if ( $this->pChartObject->Shadow )
+      {
+       $this->pChartObject->Shadow = FALSE;
+
+       $ShadowFormat = $Format; $ShadowFormat["Shadow"] = TRUE;
+       $this->draw2DRing($X+$this->pChartObject->ShadowX,$Y+$this->pChartObject->ShadowY,$ShadowFormat);
+      }
+
+     /* Draw the polygon pie elements */
+     $Step = 360 / (2 * PI * $OuterRadius);
+     $Offset = 0; $ID = 0;
+     foreach($Values as $Key => $Value)
+      {
+       if ( $Shadow )
+        {
+         $Settings    = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+         $BorderColor = $Settings;
+        }
+       else
+        {
+         if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+         $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+
+         if ( $Border )
+          $BorderColor = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha);
+         else
+          $BorderColor = $Settings;
+        }
+
+       $Plots = ""; $Boundaries = ""; $AAPixels = "";
+       $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
+       for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
+        {
+         $Xc = cos(($i-90)*PI/180) * $OuterRadius + $X;
+         $Yc = sin(($i-90)*PI/180) * $OuterRadius + $Y;
+
+         if ( !isset($Boundaries[0]["X1"]) ) { $Boundaries[0]["X1"] = $Xc; $Boundaries[0]["Y1"] = $Yc; }
+         $AAPixels[] = array($Xc,$Yc);
+
+         if ( $i<90 ) { $Yc++; }
+         if ( $i>180 && $i<270 ) { $Xc++; }
+         if ( $i>=270 ) { $Xc++; $Yc++; }
+
+         $Plots[] = $Xc; $Plots[] = $Yc;
+        }
+       $Boundaries[1]["X1"] = $Xc; $Boundaries[1]["Y1"] = $Yc;
+       $Lasti = $EndAngle;
+
+       for($i=$EndAngle;$i>=$Offset;$i=$i-$Step)
+        {
+         $Xc = cos(($i-90)*PI/180) * ($InnerRadius-1) + $X;
+         $Yc = sin(($i-90)*PI/180) * ($InnerRadius-1) + $Y;
+
+         if ( !isset($Boundaries[1]["X2"]) ) { $Boundaries[1]["X2"] = $Xc; $Boundaries[1]["Y2"] = $Yc; }
+         $AAPixels[] = array($Xc,$Yc);
+
+         $Xc = cos(($i-90)*PI/180) * $InnerRadius + $X;
+         $Yc = sin(($i-90)*PI/180) * $InnerRadius + $Y;
+
+         if ( $i<90 ) { $Yc++; }
+         if ( $i>180 && $i<270 ) { $Xc++; }
+         if ( $i>=270 ) { $Xc++; $Yc++; }
+
+         $Plots[] = $Xc; $Plots[] = $Yc;
+        }
+       $Boundaries[0]["X2"] = $Xc; $Boundaries[0]["Y2"] = $Yc;
+
+       /* Draw the polygon */
+       $this->pChartObject->drawPolygon($Plots,$Settings);
+       if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$Key],$Value); }
+
+       /* Smooth the edges using AA */
+       foreach($AAPixels as $iKey => $Pos ) { $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1],$BorderColor); }
+       $this->pChartObject->drawLine($Boundaries[0]["X1"],$Boundaries[0]["Y1"],$Boundaries[0]["X2"],$Boundaries[0]["Y2"],$BorderColor);
+       $this->pChartObject->drawLine($Boundaries[1]["X1"],$Boundaries[1]["Y1"],$Boundaries[1]["X2"],$Boundaries[1]["Y2"],$BorderColor);
+
+       if ( $DrawLabels && !$Shadow )
+        {
+         if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+          { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+         else
+          { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+         $Angle = ($EndAngle - $Offset)/2 + $Offset;
+         $Xc = cos(($Angle-90)*PI/180) * $OuterRadius + $X;
+         $Yc = sin(($Angle-90)*PI/180) * $OuterRadius + $Y;
+
+         $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+
+         if ( $LabelStacked )
+          $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$OuterRadius);
+         else
+          $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+        }
+
+       $Offset = $Lasti; $ID++;
+      }
+
+     if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+     if ( $WriteValues && !$Shadow )
+      {
+       $Step = 360 / (2 * PI * $OuterRadius);
+       $Offset = 0;
+       foreach($Values as $Key => $Value)
+        {
+         $EndAngle = $Offset+($Value*$ScaleFactor);
+         if ( $EndAngle > 360 ) { $EndAngle = 360; }
+
+         $Angle = $Offset+($Value*$ScaleFactor)/2;
+         if ( $ValuePosition == PIE_VALUE_OUTSIDE )
+          {
+           $Xc = cos(($Angle-90)*PI/180) * ($OuterRadius+$ValuePadding) + $X;
+           $Yc = sin(($Angle-90)*PI/180) * ($OuterRadius+$ValuePadding) + $Y;
+           if ( $Angle >=0 && $Angle <= 90 ) { $Align = TEXT_ALIGN_BOTTOMLEFT; }
+           if ( $Angle > 90 && $Angle <= 180 ) { $Align = TEXT_ALIGN_TOPLEFT; }
+           if ( $Angle > 180 && $Angle <= 270 ) { $Align = TEXT_ALIGN_TOPRIGHT; }
+           if ( $Angle > 270 ) { $Align = TEXT_ALIGN_BOTTOMRIGHT; }
+          }
+         else
+          {
+           $Xc = cos(($Angle-90)*PI/180) * (($OuterRadius-$InnerRadius)/2+$InnerRadius) + $X;
+           $Yc = sin(($Angle-90)*PI/180) * (($OuterRadius-$InnerRadius)/2+$InnerRadius) + $Y;
+           $Align = TEXT_ALIGN_MIDDLEMIDDLE;
+          }
+
+         if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+          $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+         elseif ( $WriteValues == PIE_VALUE_NATURAL )
+          $Display = $Value.$ValueSuffix;
+         else
+          $Label = "";
+
+         $this->pChartObject->drawText($Xc,$Yc,$Display,array("Align"=>$Align,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB));
+         $Offset = $EndAngle;
+        }
+      }
+
+     $this->pChartObject->Shadow = $RestoreShadow;
+
+     return(PIE_RENDERED);
+    }
+
+   /* Draw a 3D ring chart */
+   function draw3DRing($X,$Y,$Format="")
+    {
+     $OuterRadius	= isset($Format["OuterRadius"]) ? $Format["OuterRadius"] : 100;
+     $Precision		= isset($Format["Precision"]) ? $Format["Precision"] : 0;
+     $InnerRadius	= isset($Format["InnerRadius"]) ? $Format["InnerRadius"] : 30;
+     $SkewFactor	= isset($Format["SkewFactor"]) ? $Format["SkewFactor"] : .6;
+     $SliceHeight	= isset($Format["SliceHeight"]) ? $Format["SliceHeight"] : 10;
+     $DataGapAngle	= isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 10;
+     $DataGapRadius	= isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 10;
+     $Border		= isset($Format["Border"]) ? $Format["Border"] : FALSE;
+     $Shadow		= isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+     $DrawLabels	= isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+     $LabelStacked	= isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+     $LabelColor	= isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+     $LabelR		= isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+     $LabelG		= isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+     $LabelB		= isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+     $LabelAlpha	= isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+     $Cf		= isset($Format["Cf"]) ? $Format["Cf"] : 20;
+     $WriteValues	= isset($Format["WriteValues"]) ? $Format["WriteValues"] : PIE_VALUE_NATURAL;
+     $ValuePadding	= isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : $SliceHeight + 15;
+     $ValuePosition	= isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
+     $ValueSuffix	= isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+     $ValueR		= isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+     $ValueG		= isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+     $ValueB		= isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+     $ValueAlpha	= isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     /* Error correction for overlaying rounded corners */
+     if ( $SkewFactor < .5 ) { $SkewFactor = .5; }
+
+     /* Data Processing */
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     /* Do we have an abscissa serie defined? */
+     if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+     /* Try to find the data serie */
+     $DataSerie = "";
+     foreach ($Data["Series"] as $SerieName => $SerieData)
+      { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+     /* Do we have data to compute? */
+     if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+     /* Remove unused data */
+     list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+     /* Compute the pie sum */
+     $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+     /* Do we have data to draw? */
+     if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+     /* Dump the real number of data to draw */
+     $Values = "";
+     foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+      { if ($Value != 0) { $Values[] = $Value; } }
+
+     /* Compute the wasted angular space between series */
+     if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
+
+     /* Compute the scale */
+     $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+     $RestoreShadow = $this->pChartObject->Shadow;
+     if ( $this->pChartObject->Shadow ) { $this->pChartObject->Shadow = FALSE; }
+
+     /* Draw the polygon ring elements */
+     $Offset = 360; $ID = count($Values)-1;
+     $Values = array_reverse($Values);
+     $Slice  = 0; $Slices = ""; $SliceColors = ""; $Visible = ""; $SliceAngle = "";
+     foreach($Values as $Key => $Value)
+      {
+       if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+       $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+
+       $SliceColors[$Slice] = $Settings;
+
+       $StartAngle = $Offset;
+       $EndAngle   = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+       if ( $StartAngle > 180 ) { $Visible[$Slice]["Start"] = TRUE; } else { $Visible[$Slice]["Start"] = TRUE; }
+       if ( $EndAngle < 180 )   { $Visible[$Slice]["End"] = FALSE; } else { $Visible[$Slice]["End"] = TRUE; }
+
+       $Step   = (360 / (2 * PI * $OuterRadius))/2;
+       $OutX1 = VOID; $OutY1 = VOID;
+       for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+        {
+         $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-2) + $X;
+         $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-2)*$SkewFactor + $Y;
+         $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+         $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-1) + $X;
+         $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-1)*$SkewFactor + $Y;
+         $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+         $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius) + $X;
+         $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius)*$SkewFactor + $Y;
+         $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+
+         if ( $OutX1 == VOID ) { $OutX1 = $Xc; $OutY1 = $Yc; }
+
+         if ( $i<90 ) { $Yc++; }
+         if ( $i>90 && $i<180 ) { $Xc++; }
+         if ( $i>180 && $i<270 ) { $Xc++; }
+         if ( $i>=270 ) { $Xc++; $Yc++; }
+
+         $Slices[$Slice]["BottomPoly"][] = floor($Xc); $Slices[$Slice]["BottomPoly"][] = floor($Yc);
+         $Slices[$Slice]["TopPoly"][] = floor($Xc); $Slices[$Slice]["TopPoly"][] = floor($Yc)-$SliceHeight;
+         $Slices[$Slice]["Angle"][] = $i;
+        }
+       $OutX2 = $Xc; $OutY2 = $Yc;
+
+       $Slices[$Slice]["Angle"][] = VOID;
+       $Lasti = $i;
+
+       $Step   = (360 / (2 * PI * $InnerRadius))/2;
+       $InX1 = VOID; $InY1 = VOID;
+       for($i=$EndAngle;$i<=$Offset;$i=$i+$Step)
+        {
+         $Xc = cos(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius-1) + $X;
+         $Yc = sin(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius-1)*$SkewFactor + $Y;
+         $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+         $Xc = cos(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius) + $X;
+         $Yc = sin(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius)*$SkewFactor + $Y;
+         $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+         if ( $InX1 == VOID ) { $InX1 = $Xc; $InY1 = $Yc; }
+
+         if ( $i<90 ) { $Yc++; }
+         if ( $i>90 && $i<180 ) { $Xc++; }
+         if ( $i>180 && $i<270 ) { $Xc++; }
+         if ( $i>=270 ) { $Xc++; $Yc++; }
+
+         $Slices[$Slice]["BottomPoly"][] = floor($Xc); $Slices[$Slice]["BottomPoly"][] = floor($Yc);
+         $Slices[$Slice]["TopPoly"][] = floor($Xc); $Slices[$Slice]["TopPoly"][] = floor($Yc)-$SliceHeight;
+         $Slices[$Slice]["Angle"][] = $i;
+        }
+       $InX2 = $Xc; $InY2 = $Yc;
+
+       $Slices[$Slice]["InX1"] = $InX1;   $Slices[$Slice]["InY1"] = $InY1;
+       $Slices[$Slice]["InX2"] = $InX2;   $Slices[$Slice]["InY2"] = $InY2;
+       $Slices[$Slice]["OutX1"] = $OutX1; $Slices[$Slice]["OutY1"] = $OutY1;
+       $Slices[$Slice]["OutX2"] = $OutX2; $Slices[$Slice]["OutY2"] = $OutY2;
+
+       $Offset = $Lasti - $DataGapAngle; $ID--; $Slice++;
+      }
+
+     /* Draw the bottom pie splice */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $this->pChartObject->drawPolygon($Plots["BottomPoly"],$Settings);
+
+       foreach($Plots["AA"] as $Key => $Pos)
+        $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1],$Settings);
+
+       $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"],$Plots["OutX2"],$Plots["OutY2"],$Settings);
+       $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"],$Plots["OutX1"],$Plots["OutY1"],$Settings);
+      }
+
+     $Slices      = array_reverse($Slices);
+     $SliceColors = array_reverse($SliceColors);
+
+     /* Draw the vertical edges (semi-visible) */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+       $StartAngle = $Plots["Angle"][0];
+       foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
+
+       if ( $StartAngle >= 270 || $StartAngle <= 90 )
+        $this->pChartObject->drawLine($Plots["OutX1"],$Plots["OutY1"],$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
+       if ( $StartAngle >= 270 || $StartAngle <= 90 )
+        $this->pChartObject->drawLine($Plots["OutX2"],$Plots["OutY2"],$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
+
+        $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"],$Plots["InX1"],$Plots["InY1"]-$SliceHeight,$Settings);
+        $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"],$Plots["InX2"],$Plots["InY2"]-$SliceHeight,$Settings);
+      }
+
+     /* Draw the inner vertical slices */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+       $Outer = TRUE; $Inner = FALSE;
+       $InnerPlotsA = ""; $InnerPlotsB = "";
+       foreach($Plots["Angle"] as $ID => $Angle)
+        {
+         if ( $Angle == VOID )
+          { $Outer = FALSE; $Inner = TRUE; }
+         elseif( $Inner )
+          {
+           if (( $Angle < 90 || $Angle > 270 ) && isset($Plots["BottomPoly"][$ID*2]) )
+            {
+             $Xo = $Plots["BottomPoly"][$ID*2];
+             $Yo = $Plots["BottomPoly"][$ID*2+1];
+
+             $InnerPlotsA[] = $Xo; $InnerPlotsA[] = $Yo;
+             $InnerPlotsB[] = $Xo; $InnerPlotsB[] = $Yo-$SliceHeight;
+            }
+          }
+        }
+
+       if ( $InnerPlotsA != "" )
+        { $InnerPlots = array_merge($InnerPlotsA,$this->arrayReverse($InnerPlotsB)); $this->pChartObject->drawPolygon($InnerPlots,$Settings); }
+      }
+
+     /* Draw the splice top and left poly */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $Settings["R"] = $Settings["R"]+$Cf*1.5; $Settings["G"] = $Settings["G"]+$Cf*1.5; $Settings["B"] = $Settings["B"]+$Cf*1.5;
+
+       $StartAngle = $Plots["Angle"][0];
+       foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
+
+       if ( $StartAngle < 180 )
+        {
+         $Points = "";
+         $Points[] = $Plots["InX2"];
+         $Points[] = $Plots["InY2"];
+         $Points[] = $Plots["InX2"];
+         $Points[] = $Plots["InY2"]-$SliceHeight;
+         $Points[] = $Plots["OutX1"];
+         $Points[] = $Plots["OutY1"]-$SliceHeight;
+         $Points[] = $Plots["OutX1"];
+         $Points[] = $Plots["OutY1"];
+
+         $this->pChartObject->drawPolygon($Points,$Settings);
+        }
+
+       if ( $EndAngle > 180 )
+        {
+         $Points = "";
+         $Points[] = $Plots["InX1"];
+         $Points[] = $Plots["InY1"];
+         $Points[] = $Plots["InX1"];
+         $Points[] = $Plots["InY1"]-$SliceHeight;
+         $Points[] = $Plots["OutX2"];
+         $Points[] = $Plots["OutY2"]-$SliceHeight;
+         $Points[] = $Plots["OutX2"];
+         $Points[] = $Plots["OutY2"];
+
+         $this->pChartObject->drawPolygon($Points,$Settings);
+        }
+      }
+
+
+     /* Draw the vertical edges (visible) */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+       $StartAngle = $Plots["Angle"][0];
+       foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
+
+       if ( $StartAngle <= 270 && $StartAngle >= 90 )
+        $this->pChartObject->drawLine($Plots["OutX1"],$Plots["OutY1"],$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
+       if ( $EndAngle <= 270 && $EndAngle >= 90 )
+        $this->pChartObject->drawLine($Plots["OutX2"],$Plots["OutY2"],$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
+      }
+
+
+     /* Draw the outer vertical slices */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+       $Outer = TRUE; $Inner = FALSE;
+       $OuterPlotsA = ""; $OuterPlotsB = ""; $InnerPlotsA = ""; $InnerPlotsB = "";
+       foreach($Plots["Angle"] as $ID => $Angle)
+        {
+         if ( $Angle == VOID )
+          { $Outer = FALSE; $Inner = TRUE; }
+         elseif( $Outer )
+          {
+           if ( ( $Angle > 90 && $Angle < 270 ) && isset($Plots["BottomPoly"][$ID*2]) )
+            {
+             $Xo = $Plots["BottomPoly"][$ID*2];
+             $Yo = $Plots["BottomPoly"][$ID*2+1];
+
+             $OuterPlotsA[] = $Xo; $OuterPlotsA[] = $Yo;
+             $OuterPlotsB[] = $Xo; $OuterPlotsB[] = $Yo-$SliceHeight;
+            }
+          }
+        }
+       if ( $OuterPlotsA != "" )
+        { $OuterPlots = array_merge($OuterPlotsA,$this->arrayReverse($OuterPlotsB)); $this->pChartObject->drawPolygon($OuterPlots,$Settings); }
+      }
+
+     $Slices      = array_reverse($Slices);
+     $SliceColors = array_reverse($SliceColors);
+
+
+     /* Draw the top pie splice */
+     foreach($Slices as $SliceID => $Plots)
+      {
+       $Settings = $SliceColors[$SliceID];  $Settings["NoBorder"] = TRUE;
+       $Settings["R"] = $Settings["R"]+$Cf*2; $Settings["G"] = $Settings["G"]+$Cf*2; $Settings["B"] = $Settings["B"]+$Cf*2;
+ 
+       $this->pChartObject->drawPolygon($Plots["TopPoly"],$Settings);
+
+       if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots["TopPoly"]),$this->pChartObject->toHTMLColor($Settings["R"],$Settings["G"],$Settings["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$SliceID],$Data["Series"][$DataSerie]["Data"][count($Slices)-$SliceID-1]); }
+
+       foreach($Plots["AA"] as $Key => $Pos)
+        $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1]-$SliceHeight,$Settings);
+
+       $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"]-$SliceHeight,$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
+       $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"]-$SliceHeight,$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
+      }
+
+     if ( $DrawLabels )
+      {
+       $Offset = 360;
+       foreach($Values as $Key => $Value)
+        {
+         $StartAngle = $Offset;
+         $EndAngle   = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+         if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+          { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+         else
+          { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+         $Angle = ($EndAngle - $Offset)/2 + $Offset;
+         $Xc = cos(($Angle-90)*PI/180) * ($OuterRadius+$DataGapRadius) + $X;
+         $Yc = sin(($Angle-90)*PI/180) * ($OuterRadius+$DataGapRadius)*$SkewFactor + $Y;
+
+         if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+          $Label = $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+         elseif ( $WriteValues == PIE_VALUE_NATURAL )
+          $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+         else
+          $Label = "";
+
+         if ( $LabelStacked )
+          $this->writePieLabel($Xc,$Yc-$SliceHeight,$Label,$Angle,$Settings,TRUE,$X,$Y,$OuterRadius);
+         else
+          $this->writePieLabel($Xc,$Yc-$SliceHeight,$Label,$Angle,$Settings,FALSE);
+
+         $Offset = $EndAngle - $DataGapAngle; $ID--; $Slice++;
+        }
+      }
+     if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+     $this->pChartObject->Shadow = $RestoreShadow;
+
+     return(PIE_RENDERED);
+    }
+
+  /* Serialize an array */
+  function arraySerialize($Data)
+   {
+    $Result = "";
+    foreach($Data as $Key => $Value)
+     { if ($Result == "") { $Result = floor($Value); } else { $Result = $Result.",".floor($Value); } }
+
+    return($Result);
+   }
+
+  /* Reverse an array */
+  function arrayReverse($Plots)
+   {
+    $Result = "";
+
+    for($i=count($Plots)-1;$i>=0;$i=$i-2)
+     { $Result[] = $Plots[$i-1]; $Result[] = $Plots[$i]; }
+
+    return($Result);
+   }
+
+  /* Remove unused series & values */
+  function clean0Values($Data,$Palette,$DataSerie,$AbscissaSerie)
+   {
+    $NewPalette = ""; $NewData = ""; $NewAbscissa = "";
+
+    /* Remove unused series */
+    foreach($Data["Series"] as $SerieName => $SerieSettings)
+     { if ( $SerieName != $DataSerie && $SerieName != $AbscissaSerie ) { unset($Data["Series"][$SerieName]); } }
+
+    /* Remove NULL values */
+    foreach($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+     {
+      if ($Value != 0 )
+       {
+        $NewData[]     = $Value;
+        $NewAbscissa[] = $Data["Series"][$AbscissaSerie]["Data"][$Key];
+        if ( isset($Palette[$Key]) ) { $NewPalette[]  = $Palette[$Key]; }
+       }
+     }
+    $Data["Series"][$DataSerie]["Data"]     = $NewData;
+    $Data["Series"][$AbscissaSerie]["Data"] = $NewAbscissa;
+
+    return(array($Data,$NewPalette));
+   }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pRadar.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pRadar.class.php
new file mode 100644
index 0000000..af15bbf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pRadar.class.php
@@ -0,0 +1,681 @@
+<?php
+ /*
+     pRadar - class to draw radar charts
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("SEGMENT_HEIGHT_AUTO"		, 690001);
+
+ define("RADAR_LAYOUT_STAR"		, 690011);
+ define("RADAR_LAYOUT_CIRCLE"		, 690012);
+
+ define("RADAR_LABELS_ROTATED"		, 690021);
+ define("RADAR_LABELS_HORIZONTAL"	, 690022);
+
+ /* pRadar class definition */
+ class pRadar
+  {
+   var $pChartObject;
+
+   /* Class creator */
+   function pRadar()
+    { }
+
+   /* Draw a radar chart */
+   function drawRadar($Object,$Values,$Format="")
+    {
+     $this->pChartObject = $Object;
+
+     $FixedMax		= isset($Format["FixedMax"]) ? $Format["FixedMax"] : VOID;
+     $AxisR		= isset($Format["AxisR"]) ? $Format["AxisR"] : 60;
+     $AxisG		= isset($Format["AxisG"]) ? $Format["AxisG"] : 60;
+     $AxisB		= isset($Format["AxisB"]) ? $Format["AxisB"] : 60;
+     $AxisAlpha		= isset($Format["AxisAlpha"]) ? $Format["AxisAlpha"] : 50;
+     $AxisRotation      = isset($Format["AxisRotation"]) ? $Format["AxisRotation"] : 0;
+     $DrawTicks		= isset($Format["DrawTicks"]) ? $Format["DrawTicks"] : TRUE;
+     $TicksLength	= isset($Format["TicksLength"]) ? $Format["TicksLength"] : 2;
+     $DrawAxisValues	= isset($Format["DrawAxisValues"]) ? $Format["DrawAxisValues"] : TRUE;
+     $AxisBoxRounded	= isset($Format["AxisBoxRounded"]) ? $Format["AxisBoxRounded"] : TRUE;
+     $AxisFontName	= isset($Format["AxisFontName"]) ? $Format["AxisFontName"] : $this->pChartObject->FontName;
+     $AxisFontSize	= isset($Format["AxisFontSize"]) ? $Format["AxisFontSize"] : $this->pChartObject->FontSize;
+     $WriteValues	= isset($Format["WriteValues"]) ? $Format["WriteValues"] : FALSE;
+     $WriteValuesInBubble = isset($Format["WriteValuesInBubble"]) ? $Format["WriteValuesInBubble"] : TRUE;
+     $ValueFontName	= isset($Format["ValueFontName"]) ? $Format["ValueFontName"] : $this->pChartObject->FontName;
+     $ValueFontSize	= isset($Format["ValueFontSize"]) ? $Format["ValueFontSize"] : $this->pChartObject->FontSize;
+     $ValuePadding	= isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 4;
+     $OuterBubbleRadius	= isset($Format["OuterBubbleRadius"]) ? $Format["OuterBubbleRadius"] : 2;
+     $OuterBubbleR	= isset($Format["OuterBubbleR"]) ? $Format["OuterBubbleR"] : VOID;
+     $OuterBubbleG	= isset($Format["OuterBubbleG"]) ? $Format["OuterBubbleG"] : VOID;
+     $OuterBubbleB	= isset($Format["OuterBubbleB"]) ? $Format["OuterBubbleB"] : VOID;
+     $OuterBubbleAlpha	= isset($Format["OuterBubbleAlpha"]) ? $Format["OuterBubbleAlpha"] : 100;
+     $InnerBubbleR	= isset($Format["InnerBubbleR"]) ? $Format["InnerBubbleR"] : 255;
+     $InnerBubbleG	= isset($Format["InnerBubbleG"]) ? $Format["InnerBubbleG"] : 255;
+     $InnerBubbleB	= isset($Format["InnerBubbleB"]) ? $Format["InnerBubbleB"] : 255;
+     $InnerBubbleAlpha	= isset($Format["InnerBubbleAlpha"]) ? $Format["InnerBubbleAlpha"] : 100;
+     $DrawBackground	= isset($Format["DrawBackground"]) ? $Format["DrawBackground"] : TRUE;
+     $BackgroundR	= isset($Format["BackgroundR"]) ? $Format["BackgroundR"] : 255;
+     $BackgroundG	= isset($Format["BackgroundG"]) ? $Format["BackgroundG"] : 255;
+     $BackgroundB	= isset($Format["BackgroundB"]) ? $Format["BackgroundB"] : 255;
+     $BackgroundAlpha	= isset($Format["BackgroundAlpha"]) ? $Format["BackgroundAlpha"] : 50;
+     $BackgroundGradient= isset($Format["BackgroundGradient"]) ? $Format["BackgroundGradient"] : NULL;
+     $Layout		= isset($Format["Layout"]) ? $Format["Layout"] : RADAR_LAYOUT_STAR;
+     $SegmentHeight	= isset($Format["SegmentHeight"]) ? $Format["SegmentHeight"] : SEGMENT_HEIGHT_AUTO;
+     $Segments		= isset($Format["Segments"]) ? $Format["Segments"] : 4;
+     $WriteLabels	= isset($Format["WriteLabels"]) ? $Format["WriteLabels"] : TRUE;
+     $SkipLabels	= isset($Format["SkipLabels"]) ? $Format["SkipLabels"] : 1;
+     $LabelMiddle	= isset($Format["LabelMiddle"]) ? $Format["LabelMiddle"] : FALSE;
+     $LabelsBackground	= isset($Format["LabelsBackground"]) ? $Format["LabelsBackground"] : TRUE;
+     $LabelsBGR		= isset($Format["LabelsBGR"]) ? $Format["LabelsBGR"] : 255;
+     $LabelsBGG		= isset($Format["LabelsBGR"]) ? $Format["LabelsBGG"] : 255;
+     $LabelsBGB		= isset($Format["LabelsBGR"]) ? $Format["LabelsBGB"] : 255;
+     $LabelsBGAlpha	= isset($Format["LabelsBGAlpha"]) ? $Format["LabelsBGAlpha"] : 50;
+     $LabelPos		= isset($Format["LabelPos"]) ? $Format["LabelPos"] : RADAR_LABELS_ROTATED;
+     $LabelPadding	= isset($Format["LabelPadding"]) ? $Format["LabelPadding"] : 4;
+     $DrawPoints	= isset($Format["DrawPoints"]) ? $Format["DrawPoints"] : TRUE;
+     $PointRadius	= isset($Format["PointRadius"]) ? $Format["PointRadius"] : 4;
+     $PointSurrounding	= isset($Format["PointRadius"]) ? $Format["PointRadius"] : -30;
+     $DrawLines		= isset($Format["DrawLines"]) ? $Format["DrawLines"] : TRUE;
+     $LineLoopStart	= isset($Format["LineLoopStart"]) ? $Format["LineLoopStart"] : TRUE;
+     $DrawPoly		= isset($Format["DrawPoly"]) ? $Format["DrawPoly"] : FALSE;
+     $PolyAlpha		= isset($Format["PolyAlpha"]) ? $Format["PolyAlpha"] : 40;
+     $FontSize		= $Object->FontSize;
+     $X1		= $Object->GraphAreaX1;
+     $Y1		= $Object->GraphAreaY1;
+     $X2		= $Object->GraphAreaX2;
+     $Y2		= $Object->GraphAreaY2;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     /* Cancel default tick length if ticks not enabled */
+     if ( $DrawTicks == FALSE ) { $TicksLength = 0; }
+
+     /* Data Processing */
+     $Data    = $Values->getData();
+     $Palette = $Values->getPalette();
+
+     /* Catch the number of required axis */
+     $LabelSerie = $Data["Abscissa"];
+     if ( $LabelSerie != "" )
+      { $Points = count($Data["Series"][$LabelSerie]["Data"]); }
+     else
+      {
+       $Points = 0;
+       foreach($Data["Series"] as $SerieName => $DataArray)
+        { if ( count($DataArray["Data"]) > $Points ) { $Points = count($DataArray["Data"]); } }
+      }
+
+     /* Draw the axis */
+     $CenterX = ($X2-$X1)/2 + $X1;
+     $CenterY = ($Y2-$Y1)/2 + $Y1;
+
+     $EdgeHeight = min(($X2-$X1)/2,($Y2-$Y1)/2);
+     if ( $WriteLabels )
+      $EdgeHeight = $EdgeHeight - $FontSize - $LabelPadding - $TicksLength;
+
+     /* Determine the scale if set to automatic */
+     if ( $SegmentHeight == SEGMENT_HEIGHT_AUTO)
+      {
+       if ( $FixedMax != VOID )
+        $Max = $FixedMax;
+       else
+        {
+         $Max = 0;
+         foreach($Data["Series"] as $SerieName => $DataArray)
+          {
+           if ( $SerieName != $LabelSerie )
+            {
+             if ( max($DataArray["Data"]) > $Max ) { $Max = max($DataArray["Data"]); }
+            }
+          }
+        }
+       $MaxSegments = $EdgeHeight/20;
+       $Scale = $Object->computeScale(0,$Max,$MaxSegments,array(1,2,5));
+
+       $Segments      = $Scale["Rows"];
+       $SegmentHeight = $Scale["RowHeight"];
+      }
+
+     if ( $LabelMiddle && $SkipLabels == 1 )
+      { $Axisoffset = (360/$Points)/2; }
+     elseif ( $LabelMiddle && $SkipLabels != 1 )
+      { $Axisoffset = (360/($Points/$SkipLabels))/2; }
+     elseif ( !$LabelMiddle )
+      { $Axisoffset = 0; }
+
+     /* Background processing */
+     if ( $DrawBackground )
+      {
+       $RestoreShadow = $Object->Shadow;
+       $Object->Shadow = FALSE;
+
+       if ($BackgroundGradient == NULL)
+        {
+         if ( $Layout == RADAR_LAYOUT_STAR )
+          {
+           $Color      = array("R"=>$BackgroundR,"G"=>$BackgroundG,"B"=>$BackgroundB,"Alpha"=>$BackgroundAlpha);
+           $PointArray = "";
+           for($i=0;$i<=360;$i=$i+(360/$Points))
+            {
+             $PointArray[] = cos(deg2rad($i+$AxisRotation)) * $EdgeHeight + $CenterX;
+             $PointArray[] = sin(deg2rad($i+$AxisRotation)) * $EdgeHeight + $CenterY;
+            }
+           $Object->drawPolygon($PointArray,$Color);
+          }
+         elseif ( $Layout == RADAR_LAYOUT_CIRCLE )
+          {
+           $Color = array("R"=>$BackgroundR,"G"=>$BackgroundG,"B"=>$BackgroundB,"Alpha"=>$BackgroundAlpha);
+           $Object->drawFilledCircle($CenterX,$CenterY,$EdgeHeight,$Color);
+          }
+        }
+       else
+        {
+         $GradientROffset	= ($BackgroundGradient["EndR"] - $BackgroundGradient["StartR"]) / $Segments;
+         $GradientGOffset	= ($BackgroundGradient["EndG"] - $BackgroundGradient["StartG"]) / $Segments;
+         $GradientBOffset	= ($BackgroundGradient["EndB"] - $BackgroundGradient["StartB"]) / $Segments;
+         $GradientAlphaOffset	= ($BackgroundGradient["EndAlpha"] - $BackgroundGradient["StartAlpha"]) / $Segments;
+
+         if ( $Layout == RADAR_LAYOUT_STAR )
+          {
+           for($j=$Segments;$j>=1;$j--)
+            {
+             $Color      = array("R"=>$BackgroundGradient["StartR"]+$GradientROffset*$j,"G"=>$BackgroundGradient["StartG"]+$GradientGOffset*$j,"B"=>$BackgroundGradient["StartB"]+$GradientBOffset*$j,"Alpha"=>$BackgroundGradient["StartAlpha"]+$GradientAlphaOffset*$j);
+             $PointArray = "";
+
+             for($i=0;$i<=360;$i=$i+(360/$Points))
+              {
+               $PointArray[] = cos(deg2rad($i+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterX;
+               $PointArray[] = sin(deg2rad($i+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterY;
+              }
+             $Object->drawPolygon($PointArray,$Color);
+            }
+          }
+         elseif ( $Layout == RADAR_LAYOUT_CIRCLE )
+          {
+           for($j=$Segments;$j>=1;$j--)
+            {
+             $Color = array("R"=>$BackgroundGradient["StartR"]+$GradientROffset*$j,"G"=>$BackgroundGradient["StartG"]+$GradientGOffset*$j,"B"=>$BackgroundGradient["StartB"]+$GradientBOffset*$j,"Alpha"=>$BackgroundGradient["StartAlpha"]+$GradientAlphaOffset*$j);
+             $Object->drawFilledCircle($CenterX,$CenterY,($EdgeHeight/$Segments)*$j,$Color);
+            }
+          }
+        }
+       $Object->Shadow = $RestoreShadow;
+      }
+
+     /* Axis to axis lines */
+     $Color = array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha);
+     $ColorDotted = array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha*.8, "Ticks"=>2);
+     if ( $Layout == RADAR_LAYOUT_STAR )
+      {
+       for($j=1;$j<=$Segments;$j++)
+        {
+         for($i=0;$i<360;$i=$i+(360/$Points))
+          {
+           $EdgeX1 = cos(deg2rad($i+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterX;
+           $EdgeY1 = sin(deg2rad($i+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterY;
+           $EdgeX2 = cos(deg2rad($i+$AxisRotation+(360/$Points))) * ($EdgeHeight/$Segments)*$j + $CenterX;
+           $EdgeY2 = sin(deg2rad($i+$AxisRotation+(360/$Points))) * ($EdgeHeight/$Segments)*$j + $CenterY;
+
+           $Object->drawLine($EdgeX1,$EdgeY1,$EdgeX2,$EdgeY2,$Color);
+          }
+        }
+      }
+     elseif ( $Layout == RADAR_LAYOUT_CIRCLE )
+      {
+       for($j=1;$j<=$Segments;$j++)
+        {
+         $Radius = ($EdgeHeight/$Segments)*$j;
+         $Object->drawCircle($CenterX,$CenterY,$Radius,$Radius,$Color);
+        }
+      }
+
+     if ( $DrawAxisValues )
+      {
+       if ( $LabelsBackground )
+        $Options = array("DrawBox"=>TRUE, "Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"BoxR"=>$LabelsBGR,"BoxG"=>$LabelsBGG,"BoxB"=>$LabelsBGB,"BoxAlpha"=>$LabelsBGAlpha);
+       else
+        $Options = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE);
+
+       if ( $AxisBoxRounded ) { $Options["BoxRounded"] = TRUE; }
+
+       $Options["FontName"] = $AxisFontName;
+       $Options["FontSize"] = $AxisFontSize;
+
+       $Angle  = 360 / ($Points*2);
+       for($j=1;$j<=$Segments;$j++)
+        {
+         $Label  = $j * $SegmentHeight;
+
+         if ( $Layout == RADAR_LAYOUT_CIRCLE )
+          {
+           $EdgeX1 = cos(deg2rad($Angle+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterX;
+           $EdgeY1 = sin(deg2rad($Angle+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterY;
+          }
+         elseif ( $Layout == RADAR_LAYOUT_STAR )
+          {
+           $EdgeX1 = cos(deg2rad($AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterX;
+           $EdgeY1 = sin(deg2rad($AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterY;
+           $EdgeX2 = cos(deg2rad((360 / $Points) + $AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterX;
+           $EdgeY2 = sin(deg2rad((360 / $Points) + $AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterY;
+
+           $EdgeX1 = ($EdgeX2 - $EdgeX1)/2 + $EdgeX1;
+           $EdgeY1 = ($EdgeY2 - $EdgeY1)/2 + $EdgeY1;
+          }
+
+         $Object->drawText($EdgeX1,$EdgeY1,$Label,$Options);
+        }
+      }
+
+     /* Axis lines */
+     $ID = 0;
+     for($i=0;$i<360;$i=$i+(360/$Points))
+      {
+       $EdgeX = cos(deg2rad($i+$AxisRotation)) * ($EdgeHeight+$TicksLength) + $CenterX;
+       $EdgeY = sin(deg2rad($i+$AxisRotation)) * ($EdgeHeight+$TicksLength) + $CenterY;
+
+       if ($ID % $SkipLabels == 0)
+        { $Object->drawLine($CenterX,$CenterY,$EdgeX,$EdgeY,$Color); }
+       else
+        { $Object->drawLine($CenterX,$CenterY,$EdgeX,$EdgeY,$ColorDotted); }
+
+       if ( $WriteLabels )
+        {
+         $LabelX = cos(deg2rad($i+$AxisRotation+$Axisoffset)) * ($EdgeHeight+$LabelPadding+$TicksLength) + $CenterX;
+         $LabelY = sin(deg2rad($i+$AxisRotation+$Axisoffset)) * ($EdgeHeight+$LabelPadding+$TicksLength) + $CenterY;
+
+         if ( $LabelSerie != "" )
+          { $Label = isset($Data["Series"][$LabelSerie]["Data"][$ID]) ? $Data["Series"][$LabelSerie]["Data"][$ID] : ""; }
+         else
+          $Label = $ID;
+
+         if ($ID % $SkipLabels == 0)
+          {
+           if ( $LabelPos == RADAR_LABELS_ROTATED )
+            $Object->drawText($LabelX,$LabelY,$Label,array("Angle"=>(360-($i+$AxisRotation+$Axisoffset))-90,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+           else
+            {
+             if ( (floor($LabelX) == floor($CenterX)) && (floor($LabelY) <  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE)); }
+             if ( (floor($LabelX) >  floor($CenterX)) && (floor($LabelY) <  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_BOTTOMLEFT)); }
+             if ( (floor($LabelX) >  floor($CenterX)) && (floor($LabelY) == floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_MIDDLELEFT)); }
+             if ( (floor($LabelX) >  floor($CenterX)) && (floor($LabelY) >  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_TOPLEFT)); }
+             if ( (floor($LabelX) <  floor($CenterX)) && (floor($LabelY) <  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_BOTTOMRIGHT)); }
+             if ( (floor($LabelX) <  floor($CenterX)) && (floor($LabelY) == floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_MIDDLERIGHT)); }
+             if ( (floor($LabelX) <  floor($CenterX)) && (floor($LabelY) >  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_TOPRIGHT)); }
+             if ( (floor($LabelX) == floor($CenterX)) && (floor($LabelY) >  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_TOPMIDDLE)); }
+            }
+          }
+        }
+       $ID++;
+      }
+
+     /* Compute the plots position */
+     $ID = 0; $Plot = "";
+     foreach($Data["Series"] as $SerieName => $DataS)
+      {
+       if ( $SerieName != $LabelSerie )
+        {
+         $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"],"Surrounding"=>$PointSurrounding);
+         foreach($DataS["Data"] as $Key => $Value)
+          {
+           $Angle  = (360/$Points) * $Key;
+           $Length = ($EdgeHeight/($Segments*$SegmentHeight))*$Value;
+
+           $X = cos(deg2rad($Angle+$AxisRotation)) * $Length  + $CenterX;
+           $Y = sin(deg2rad($Angle+$AxisRotation)) * $Length  + $CenterY;
+
+           $Plot[$ID][] = array($X,$Y,$Value);
+
+           if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".floor($PointRadius),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$DataS["Description"],$Data["Series"][$LabelSerie]["Data"][$Key]." = ".$Value); }
+          }
+         $ID++;
+        }
+      }
+
+     /* Draw all that stuff! */
+     foreach($Plot as $ID => $Points)
+      {
+       $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"],"Surrounding"=>$PointSurrounding);
+
+       /* Draw the polygons */
+       if ( $DrawPoly )
+        {
+         if ($PolyAlpha != NULL)
+          $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$PolyAlpha,"Surrounding"=>$PointSurrounding);
+
+         $PointsArray = "";
+         for($i=0; $i<count($Points);$i++) 
+          { $PointsArray[] = $Points[$i][0]; $PointsArray[] = $Points[$i][1]; }
+         $Object->drawPolygon($PointsArray,$Color);
+        }
+
+       $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"],"Surrounding"=>$PointSurrounding);
+
+       /* Bubble and labels settings */
+       $TextSettings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontName"=>$ValueFontName,"FontSize"=>$ValueFontSize,"R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"]);
+       $InnerColor = array("R"=>$InnerBubbleR,"G"=>$InnerBubbleG,"B"=>$InnerBubbleB,"Alpha"=>$InnerBubbleAlpha);
+       if ( $OuterBubbleR != VOID )
+        $OuterColor = array("R"=>$OuterBubbleR,"G"=>$OuterBubbleG,"B"=>$OuterBubbleB,"Alpha"=>$OuterBubbleAlpha);
+       else
+        $OuterColor = array("R"=>$Palette[$ID]["R"]+20,"G"=>$Palette[$ID]["G"]+20,"B"=>$Palette[$ID]["B"]+20,"Alpha"=>$Palette[$ID]["Alpha"]);
+
+       /* Loop to the starting points if asked */
+       if ( $LineLoopStart && $DrawLines )
+        $Object->drawLine($Points[count($Points)-1][0],$Points[count($Points)-1][1],$Points[0][0],$Points[0][1],$Color);
+
+       /* Draw the lines & points */
+       for($i=0; $i<count($Points);$i++) 
+        {
+         if ( $DrawLines && $i < count($Points)-1)
+          $Object->drawLine($Points[$i][0],$Points[$i][1],$Points[$i+1][0],$Points[$i+1][1],$Color);
+
+         if ( $DrawPoints )
+          $Object->drawFilledCircle($Points[$i][0],$Points[$i][1],$PointRadius,$Color);
+
+         if ( $WriteValuesInBubble && $WriteValues )
+          {
+           $TxtPos = $this->pChartObject->getTextBox($Points[$i][0],$Points[$i][1],$ValueFontName,$ValueFontSize,0,$Points[$i][2]);
+           $Radius = floor(($TxtPos[1]["X"] - $TxtPos[0]["X"] + $ValuePadding*2)/2);
+
+           $this->pChartObject->drawFilledCircle($Points[$i][0],$Points[$i][1],$Radius+$OuterBubbleRadius,$OuterColor);
+           $this->pChartObject->drawFilledCircle($Points[$i][0],$Points[$i][1],$Radius,$InnerColor);
+          }
+
+         if ( $WriteValues )
+          $this->pChartObject->drawText($Points[$i][0]-1,$Points[$i][1]-1,$Points[$i][2],$TextSettings);
+        }
+      }
+    }
+
+
+
+   /* Draw a radar chart */
+   function drawPolar($Object,$Values,$Format="")
+    {
+     $this->pChartObject = $Object;
+
+     $FixedMax		= isset($Format["FixedMax"]) ? $Format["FixedMax"] : VOID;
+     $AxisR		= isset($Format["AxisR"]) ? $Format["AxisR"] : 60;
+     $AxisG		= isset($Format["AxisG"]) ? $Format["AxisG"] : 60;
+     $AxisB		= isset($Format["AxisB"]) ? $Format["AxisB"] : 60;
+     $AxisAlpha		= isset($Format["AxisAlpha"]) ? $Format["AxisAlpha"] : 50;
+     $AxisRotation      = isset($Format["AxisRotation"]) ? $Format["AxisRotation"] : -90;
+     $DrawTicks		= isset($Format["DrawTicks"]) ? $Format["DrawTicks"] : TRUE;
+     $TicksLength	= isset($Format["TicksLength"]) ? $Format["TicksLength"] : 2;
+     $DrawAxisValues	= isset($Format["DrawAxisValues"]) ? $Format["DrawAxisValues"] : TRUE;
+     $AxisBoxRounded	= isset($Format["AxisBoxRounded"]) ? $Format["AxisBoxRounded"] : TRUE;
+     $AxisFontName	= isset($Format["FontName"]) ? $Format["FontName"] : $this->pChartObject->FontName;
+     $AxisFontSize	= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->pChartObject->FontSize;
+     $WriteValues	= isset($Format["WriteValues"]) ? $Format["WriteValues"] : FALSE;
+     $WriteValuesInBubble = isset($Format["WriteValuesInBubble"]) ? $Format["WriteValuesInBubble"] : TRUE;
+     $ValueFontName	= isset($Format["ValueFontName"]) ? $Format["ValueFontName"] : $this->pChartObject->FontName;
+     $ValueFontSize	= isset($Format["ValueFontSize"]) ? $Format["ValueFontSize"] : $this->pChartObject->FontSize;
+     $ValuePadding	= isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 4;
+     $OuterBubbleRadius	= isset($Format["OuterBubbleRadius"]) ? $Format["OuterBubbleRadius"] : 2;
+     $OuterBubbleR	= isset($Format["OuterBubbleR"]) ? $Format["OuterBubbleR"] : VOID;
+     $OuterBubbleG	= isset($Format["OuterBubbleG"]) ? $Format["OuterBubbleG"] : VOID;
+     $OuterBubbleB	= isset($Format["OuterBubbleB"]) ? $Format["OuterBubbleB"] : VOID;
+     $OuterBubbleAlpha	= isset($Format["OuterBubbleAlpha"]) ? $Format["OuterBubbleAlpha"] : 100;
+     $InnerBubbleR	= isset($Format["InnerBubbleR"]) ? $Format["InnerBubbleR"] : 255;
+     $InnerBubbleG	= isset($Format["InnerBubbleG"]) ? $Format["InnerBubbleG"] : 255;
+     $InnerBubbleB	= isset($Format["InnerBubbleB"]) ? $Format["InnerBubbleB"] : 255;
+     $InnerBubbleAlpha	= isset($Format["InnerBubbleAlpha"]) ? $Format["InnerBubbleAlpha"] : 100;
+     $DrawBackground	= isset($Format["DrawBackground"]) ? $Format["DrawBackground"] : TRUE;
+     $BackgroundR	= isset($Format["BackgroundR"]) ? $Format["BackgroundR"] : 255;
+     $BackgroundG	= isset($Format["BackgroundG"]) ? $Format["BackgroundG"] : 255;
+     $BackgroundB	= isset($Format["BackgroundB"]) ? $Format["BackgroundB"] : 255;
+     $BackgroundAlpha	= isset($Format["BackgroundAlpha"]) ? $Format["BackgroundAlpha"] : 50;
+     $BackgroundGradient= isset($Format["BackgroundGradient"]) ? $Format["BackgroundGradient"] : NULL;
+     $AxisSteps		= isset($Format["AxisSteps"]) ? $Format["AxisSteps"] : 20;
+     $SegmentHeight	= isset($Format["SegmentHeight"]) ? $Format["SegmentHeight"] : SEGMENT_HEIGHT_AUTO;
+     $Segments		= isset($Format["Segments"]) ? $Format["Segments"] : 4;
+     $WriteLabels	= isset($Format["WriteLabels"]) ? $Format["WriteLabels"] : TRUE;
+     $LabelsBackground	= isset($Format["LabelsBackground"]) ? $Format["LabelsBackground"] : TRUE;
+     $LabelsBGR		= isset($Format["LabelsBGR"]) ? $Format["LabelsBGR"] : 255;
+     $LabelsBGG		= isset($Format["LabelsBGR"]) ? $Format["LabelsBGG"] : 255;
+     $LabelsBGB		= isset($Format["LabelsBGR"]) ? $Format["LabelsBGB"] : 255;
+     $LabelsBGAlpha	= isset($Format["LabelsBGAlpha"]) ? $Format["LabelsBGAlpha"] : 50;
+     $LabelPos		= isset($Format["LabelPos"]) ? $Format["LabelPos"] : RADAR_LABELS_ROTATED;
+     $LabelPadding	= isset($Format["LabelPadding"]) ? $Format["LabelPadding"] : 4;
+     $DrawPoints	= isset($Format["DrawPoints"]) ? $Format["DrawPoints"] : TRUE;
+     $PointRadius	= isset($Format["PointRadius"]) ? $Format["PointRadius"] : 4;
+     $PointSurrounding	= isset($Format["PointRadius"]) ? $Format["PointRadius"] : -30;
+     $DrawLines		= isset($Format["DrawLines"]) ? $Format["DrawLines"] : TRUE;
+     $LineLoopStart	= isset($Format["LineLoopStart"]) ? $Format["LineLoopStart"] : FALSE;
+     $DrawPoly		= isset($Format["DrawPoly"]) ? $Format["DrawPoly"] : FALSE;
+     $PolyAlpha		= isset($Format["PolyAlpha"]) ? $Format["PolyAlpha"] : NULL;
+     $FontSize		= $Object->FontSize;
+     $X1		= $Object->GraphAreaX1;
+     $Y1		= $Object->GraphAreaY1;
+     $X2		= $Object->GraphAreaX2;
+     $Y2		= $Object->GraphAreaY2;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+     if ( $AxisBoxRounded ) { $DrawAxisValues = TRUE; }
+
+     /* Cancel default tick length if ticks not enabled */
+     if ( $DrawTicks == FALSE ) { $TicksLength = 0; }
+
+     /* Data Processing */
+     $Data    = $Values->getData();
+     $Palette = $Values->getPalette();
+
+     /* Catch the number of required axis */
+     $LabelSerie = $Data["Abscissa"];
+     if ( $LabelSerie != "" )
+      { $Points = count($Data["Series"][$LabelSerie]["Data"]); }
+     else
+      {
+       $Points = 0;
+       foreach($Data["Series"] as $SerieName => $DataArray)
+        { if ( count($DataArray["Data"]) > $Points ) { $Points = count($DataArray["Data"]); } }
+      }
+
+     /* Draw the axis */
+     $CenterX = ($X2-$X1)/2 + $X1;
+     $CenterY = ($Y2-$Y1)/2 + $Y1;
+
+     $EdgeHeight = min(($X2-$X1)/2,($Y2-$Y1)/2);
+     if ( $WriteLabels )
+      $EdgeHeight = $EdgeHeight - $FontSize - $LabelPadding - $TicksLength;
+
+     /* Determine the scale if set to automatic */
+     if ( $SegmentHeight == SEGMENT_HEIGHT_AUTO)
+      {
+       if ( $FixedMax != VOID )
+        $Max = $FixedMax;
+       else
+        {
+         $Max = 0;
+         foreach($Data["Series"] as $SerieName => $DataArray)
+          {
+           if ( $SerieName != $LabelSerie )
+            {
+             if ( max($DataArray["Data"]) > $Max ) { $Max = max($DataArray["Data"]); }
+            }
+          }
+         }
+       $MaxSegments = $EdgeHeight/20;
+       $Scale = $Object->computeScale(0,$Max,$MaxSegments,array(1,2,5));
+
+       $Segments      = $Scale["Rows"];
+       $SegmentHeight = $Scale["RowHeight"];
+      }
+
+
+     /* Background processing */
+     if ( $DrawBackground )
+      {
+       $RestoreShadow = $Object->Shadow;
+       $Object->Shadow = FALSE;
+
+       if ($BackgroundGradient == NULL)
+        {
+         $Color = array("R"=>$BackgroundR,"G"=>$BackgroundG,"B"=>$BackgroundB,"Alpha"=>$BackgroundAlpha);
+         $Object->drawFilledCircle($CenterX,$CenterY,$EdgeHeight,$Color);
+        }
+       else
+        {
+         $GradientROffset	= ($BackgroundGradient["EndR"] - $BackgroundGradient["StartR"]) / $Segments;
+         $GradientGOffset	= ($BackgroundGradient["EndG"] - $BackgroundGradient["StartG"]) / $Segments;
+         $GradientBOffset	= ($BackgroundGradient["EndB"] - $BackgroundGradient["StartB"]) / $Segments;
+         $GradientAlphaOffset	= ($BackgroundGradient["EndAlpha"] - $BackgroundGradient["StartAlpha"]) / $Segments;
+
+         for($j=$Segments;$j>=1;$j--)
+          {
+           $Color      = array("R"=>$BackgroundGradient["StartR"]+$GradientROffset*$j,"G"=>$BackgroundGradient["StartG"]+$GradientGOffset*$j,"B"=>$BackgroundGradient["StartB"]+$GradientBOffset*$j,"Alpha"=>$BackgroundGradient["StartAlpha"]+$GradientAlphaOffset*$j);
+           $Object->drawFilledCircle($CenterX,$CenterY,($EdgeHeight/$Segments)*$j,$Color);
+          }
+        }
+       $Object->Shadow = $RestoreShadow;
+      }
+
+     /* Axis to axis lines */
+     $Color = array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha);
+     for($j=1;$j<=$Segments;$j++)
+      {
+       $Radius = ($EdgeHeight/$Segments)*$j;
+       $Object->drawCircle($CenterX,$CenterY,$Radius,$Radius,$Color);
+      }
+
+     if ( $DrawAxisValues )
+      {
+       if ( $LabelsBackground )
+        $Options = array("DrawBox"=>TRUE, "Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"BoxR"=>$LabelsBGR,"BoxG"=>$LabelsBGG,"BoxB"=>$LabelsBGB,"BoxAlpha"=>$LabelsBGAlpha);
+       else
+        $Options = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE);
+
+       if ( $AxisBoxRounded ) { $Options["BoxRounded"] = TRUE; }
+
+       $Options["FontName"] = $AxisFontName;
+       $Options["FontSize"] = $AxisFontSize;
+
+       $Angle  = 360 / ($Points*2);
+       for($j=1;$j<=$Segments;$j++)
+        {
+         $EdgeX1 = cos(deg2rad($Angle+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterX;
+         $EdgeY1 = sin(deg2rad($Angle+$AxisRotation)) * ($EdgeHeight/$Segments)*$j + $CenterY;
+         $Label  = $j*$SegmentHeight;
+
+         $Object->drawText($EdgeX1,$EdgeY1,$Label,$Options);
+        }
+      }
+
+     /* Axis lines */
+     $ID = 0;
+     for($i=0;$i<=359;$i=$i+$AxisSteps)
+      {
+       $EdgeX = cos(deg2rad($i+$AxisRotation)) * ($EdgeHeight+$TicksLength) + $CenterX;
+       $EdgeY = sin(deg2rad($i+$AxisRotation)) * ($EdgeHeight+$TicksLength) + $CenterY;
+
+       $Object->drawLine($CenterX,$CenterY,$EdgeX,$EdgeY,$Color);
+
+       if ( $WriteLabels )
+        {
+         $LabelX = cos(deg2rad($i+$AxisRotation)) * ($EdgeHeight+$LabelPadding+$TicksLength) + $CenterX;
+         $LabelY = sin(deg2rad($i+$AxisRotation)) * ($EdgeHeight+$LabelPadding+$TicksLength) + $CenterY;
+         $Label = $i."�";
+
+         if ( $LabelPos == RADAR_LABELS_ROTATED )
+          $Object->drawText($LabelX,$LabelY,$Label,array("Angle"=>(360-$i),"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+         else
+          {
+           if ( (floor($LabelX) == floor($CenterX)) && (floor($LabelY) <  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE)); }
+           if ( (floor($LabelX) >  floor($CenterX)) && (floor($LabelY) <  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_BOTTOMLEFT)); }
+           if ( (floor($LabelX) >  floor($CenterX)) && (floor($LabelY) == floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_MIDDLELEFT)); }
+           if ( (floor($LabelX) >  floor($CenterX)) && (floor($LabelY) >  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_TOPLEFT)); }
+           if ( (floor($LabelX) <  floor($CenterX)) && (floor($LabelY) <  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_BOTTOMRIGHT)); }
+           if ( (floor($LabelX) <  floor($CenterX)) && (floor($LabelY) == floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_MIDDLERIGHT)); }
+           if ( (floor($LabelX) <  floor($CenterX)) && (floor($LabelY) >  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_TOPRIGHT)); }
+           if ( (floor($LabelX) == floor($CenterX)) && (floor($LabelY) >  floor($CenterY)) )	{ $Object->drawText($LabelX,$LabelY,$Label,array("Align"=>TEXT_ALIGN_TOPMIDDLE)); }
+          }
+        }
+       $ID++;
+      }
+
+     /* Compute the plots position */
+     $ID = 0; $Plot = "";
+     foreach($Data["Series"] as $SerieName => $DataSet)
+      {
+       if ( $SerieName != $LabelSerie )
+        {
+         $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"],"Surrounding"=>$PointSurrounding);
+         foreach($DataSet["Data"] as $Key => $Value)
+          {
+           $Angle  = $Data["Series"][$LabelSerie]["Data"][$Key];
+           $Length = ($EdgeHeight/($Segments*$SegmentHeight))*$Value;
+
+           $X = cos(deg2rad($Angle+$AxisRotation)) * $Length  + $CenterX;
+           $Y = sin(deg2rad($Angle+$AxisRotation)) * $Length  + $CenterY;
+
+           if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".floor($PointRadius),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$DataSet["Description"],$Data["Series"][$LabelSerie]["Data"][$Key]."&deg = ".$Value); }
+
+           $Plot[$ID][] = array($X,$Y,$Value);
+          }
+         $ID++;
+        }
+      }
+
+     /* Draw all that stuff! */
+     foreach($Plot as $ID => $Points)
+      {
+       $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"],"Surrounding"=>$PointSurrounding);
+
+       /* Draw the polygons */
+       if ( $DrawPoly )
+        {
+         if ($PolyAlpha != NULL)
+          $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$PolyAlpha,"Surrounding"=>$PointSurrounding);
+
+         $PointsArray = "";
+         for($i=0; $i<count($Points);$i++) 
+          { $PointsArray[] = $Points[$i][0]; $PointsArray[] = $Points[$i][1]; }
+
+         $Object->drawPolygon($PointsArray,$Color);
+        }
+
+       $Color = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"],"Surrounding"=>$PointSurrounding);
+
+       /* Bubble and labels settings */
+       $TextSettings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"FontName"=>$ValueFontName,"FontSize"=>$ValueFontSize,"R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"]);
+       $InnerColor = array("R"=>$InnerBubbleR,"G"=>$InnerBubbleG,"B"=>$InnerBubbleB,"Alpha"=>$InnerBubbleAlpha);
+       if ( $OuterBubbleR != VOID )
+        $OuterColor = array("R"=>$OuterBubbleR,"G"=>$OuterBubbleG,"B"=>$OuterBubbleB,"Alpha"=>$OuterBubbleAlpha);
+       else
+        $OuterColor = array("R"=>$Palette[$ID]["R"]+20,"G"=>$Palette[$ID]["G"]+20,"B"=>$Palette[$ID]["B"]+20,"Alpha"=>$Palette[$ID]["Alpha"]);
+
+       /* Loop to the starting points if asked */
+       if ( $LineLoopStart && $DrawLines )
+        $Object->drawLine($Points[count($Points)-1][0],$Points[count($Points)-1][1],$Points[0][0],$Points[0][1],$Color);
+       
+       /* Draw the lines & points */
+       for($i=0; $i<count($Points);$i++) 
+        {
+         if ( $DrawLines && $i < count($Points)-1)
+          $Object->drawLine($Points[$i][0],$Points[$i][1],$Points[$i+1][0],$Points[$i+1][1],$Color);
+
+         if ( $DrawPoints )
+          $Object->drawFilledCircle($Points[$i][0],$Points[$i][1],$PointRadius,$Color);
+
+         if ( $WriteValuesInBubble && $WriteValues )
+          {
+           $TxtPos = $this->pChartObject->getTextBox($Points[$i][0],$Points[$i][1],$ValueFontName,$ValueFontSize,0,$Points[$i][2]);
+           $Radius = floor(($TxtPos[1]["X"] - $TxtPos[0]["X"] + $ValuePadding*2)/2);
+
+           $this->pChartObject->drawFilledCircle($Points[$i][0],$Points[$i][1],$Radius+$OuterBubbleRadius,$OuterColor);
+           $this->pChartObject->drawFilledCircle($Points[$i][0],$Points[$i][1],$Radius,$InnerColor);
+          }
+
+         if ( $WriteValues )
+          $this->pChartObject->drawText($Points[$i][0]-1,$Points[$i][1]-1,$Points[$i][2],$TextSettings);
+        }
+      }
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pScatter.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pScatter.class.php
new file mode 100644
index 0000000..a83ce39
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pScatter.class.php
@@ -0,0 +1,1158 @@
+<?php
+ /*
+     pScatter - class to draw scatter charts
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("SCATTER_MISSING_X_SERIE"	, 190001);
+ define("SCATTER_MISSING_Y_SERIE"	, 190002);
+
+ /* pScatter class definition */
+ class pScatter
+  {
+   var $pChartObject;
+   var $pDataObject;
+
+   /* Class creator */
+   function pScatter($pChartObject,$pDataObject)
+    {
+     $this->pChartObject = $pChartObject;
+     $this->pDataObject  = $pDataObject;
+    }
+
+   /* Prepare the scale */
+   function drawScatterScale($Format="")
+    {
+     $Mode		= isset($Format["Mode"]) ? $Format["Mode"] : SCALE_MODE_FLOATING;
+     $Floating		= isset($Format["Floating"]) ? $Format["Floating"] : FALSE;
+     $XLabelsRotation	= isset($Format["XLabelsRotation"]) ? $Format["XLabelsRotation"] : 90;
+     $MinDivHeight	= isset($Format["MinDivHeight"]) ? $Format["MinDivHeight"] : 20;
+     $Factors		= isset($Format["Factors"]) ? $Format["Factors"] : array(1,2,5);
+     $ManualScale	= isset($Format["ManualScale"]) ? $Format["ManualScale"] : array("0"=>array("Min"=>-100,"Max"=>100));
+     $XMargin		= isset($Format["XMargin"]) ? $Format["XMargin"] : 0;
+     $YMargin		= isset($Format["YMargin"]) ? $Format["YMargin"] : 0;
+     $ScaleSpacing	= isset($Format["ScaleSpacing"]) ? $Format["ScaleSpacing"] : 15;
+     $InnerTickWidth	= isset($Format["InnerTickWidth"]) ? $Format["InnerTickWidth"] : 2;
+     $OuterTickWidth	= isset($Format["OuterTickWidth"]) ? $Format["OuterTickWidth"] : 2;
+     $DrawXLines	= isset($Format["DrawXLines"]) ? $Format["DrawXLines"] : ALL;
+     $DrawYLines	= isset($Format["DrawYLines"]) ? $Format["DrawYLines"] : ALL;
+     $GridTicks		= isset($Format["GridTicks"]) ? $Format["GridTicks"] : 4;
+     $GridR		= isset($Format["GridR"]) ? $Format["GridR"] : 255;
+     $GridG		= isset($Format["GridG"]) ? $Format["GridG"] : 255;
+     $GridB		= isset($Format["GridB"]) ? $Format["GridB"] : 255;
+     $GridAlpha		= isset($Format["GridAlpha"]) ? $Format["GridAlpha"] : 40;
+     $AxisRo		= isset($Format["AxisR"]) ? $Format["AxisR"] : 0;
+     $AxisGo		= isset($Format["AxisG"]) ? $Format["AxisG"] : 0;
+     $AxisBo		= isset($Format["AxisB"]) ? $Format["AxisB"] : 0;
+     $AxisAlpha		= isset($Format["AxisAlpha"]) ? $Format["AxisAlpha"] : 100;
+     $TickRo		= isset($Format["TickR"]) ? $Format["TickR"] : 0;
+     $TickGo		= isset($Format["TickG"]) ? $Format["TickG"] : 0;
+     $TickBo		= isset($Format["TickB"]) ? $Format["TickB"] : 0;
+     $TickAlpha		= isset($Format["TickAlpha"]) ? $Format["TickAlpha"] : 100;
+     $DrawSubTicks	= isset($Format["DrawSubTicks"]) ? $Format["DrawSubTicks"] : FALSE;
+     $InnerSubTickWidth	= isset($Format["InnerSubTickWidth"]) ? $Format["InnerSubTickWidth"] : 0;
+     $OuterSubTickWidth	= isset($Format["OuterSubTickWidth"]) ? $Format["OuterSubTickWidth"] : 2;
+     $SubTickR		= isset($Format["SubTickR"]) ? $Format["SubTickR"] : 255;
+     $SubTickG		= isset($Format["SubTickG"]) ? $Format["SubTickG"] : 0;
+     $SubTickB		= isset($Format["SubTickB"]) ? $Format["SubTickB"] : 0;
+     $SubTickAlpha	= isset($Format["SubTickAlpha"]) ? $Format["SubTickAlpha"] : 100;
+     $XReleasePercent	= isset($Format["XReleasePercent"]) ? $Format["XReleasePercent"] : 1;
+     $DrawArrows	= isset($Format["DrawArrows"]) ? $Format["DrawArrows"] : FALSE;
+     $ArrowSize         = isset($Format["ArrowSize"]) ? $Format["ArrowSize"] : 8;
+     $CycleBackground	= isset($Format["CycleBackground"]) ? $Format["CycleBackground"] : FALSE;
+     $BackgroundR1	= isset($Format["BackgroundR1"]) ? $Format["BackgroundR1"] : 255;
+     $BackgroundG1	= isset($Format["BackgroundG1"]) ? $Format["BackgroundG1"] : 255;
+     $BackgroundB1	= isset($Format["BackgroundB1"]) ? $Format["BackgroundB1"] : 255;
+     $BackgroundAlpha1	= isset($Format["BackgroundAlpha1"]) ? $Format["BackgroundAlpha1"] : 10;
+     $BackgroundR2	= isset($Format["BackgroundR2"]) ? $Format["BackgroundR2"] : 230;
+     $BackgroundG2	= isset($Format["BackgroundG2"]) ? $Format["BackgroundG2"] : 230;
+     $BackgroundB2	= isset($Format["BackgroundB2"]) ? $Format["BackgroundB2"] : 230;
+     $BackgroundAlpha2	= isset($Format["BackgroundAlpha2"]) ? $Format["BackgroundAlpha2"] : 10;
+
+     /* Check if we have at least both one X and Y axis */
+     $GotXAxis = FALSE; $GotYAxis = FALSE;
+     foreach($this->pDataObject->Data["Axis"] as $AxisID => $AxisSettings)
+      {
+       if ( $AxisSettings["Identity"] == AXIS_X ) { $GotXAxis = TRUE; }
+       if ( $AxisSettings["Identity"] == AXIS_Y ) { $GotYAxis = TRUE; }
+      }
+     if ( !$GotXAxis ) { return(SCATTER_MISSING_X_SERIE); }
+     if ( !$GotYAxis ) { return(SCATTER_MISSING_Y_SERIE); }
+
+     /* Skip a NOTICE event in case of an empty array */
+     if ( $DrawYLines == NONE ) { $DrawYLines = array("zarma"=>"31"); }
+
+     $Data = $this->pDataObject->getData();
+
+     foreach($Data["Axis"] as $AxisID => $AxisSettings)
+      {
+       if ( $AxisSettings["Identity"] == AXIS_X)
+        { $Width = $this->pChartObject->GraphAreaX2 - $this->pChartObject->GraphAreaX1 - $XMargin*2; }
+       else
+        { $Width = $this->pChartObject->GraphAreaY2 - $this->pChartObject->GraphAreaY1 - $YMargin*2; }
+
+       $AxisMin = ABSOLUTE_MAX; $AxisMax = OUT_OF_SIGHT;
+       if ( $Mode == SCALE_MODE_FLOATING )
+        {
+         foreach($Data["Series"] as $SerieID => $SerieParameter)
+          {
+           if ( $SerieParameter["Axis"] == $AxisID && $Data["Series"][$SerieID]["isDrawable"] )
+            {
+             $AxisMax = max($AxisMax,$Data["Series"][$SerieID]["Max"]);
+             $AxisMin = min($AxisMin,$Data["Series"][$SerieID]["Min"]);
+            }
+          }
+         $AutoMargin = (($AxisMax-$AxisMin)/100)*$XReleasePercent;
+
+         $Data["Axis"][$AxisID]["Min"] = $AxisMin-$AutoMargin; $Data["Axis"][$AxisID]["Max"] = $AxisMax+$AutoMargin;
+        }
+       elseif ( $Mode == SCALE_MODE_MANUAL )
+        {
+         if ( isset($ManualScale[$AxisID]["Min"]) && isset($ManualScale[$AxisID]["Max"]) )
+          {
+           $Data["Axis"][$AxisID]["Min"] = $ManualScale[$AxisID]["Min"];
+           $Data["Axis"][$AxisID]["Max"] = $ManualScale[$AxisID]["Max"];
+          }
+         else
+          { echo "Manual scale boundaries not set."; exit(); }
+        }
+
+       /* Full manual scale */
+       if ( isset($ManualScale[$AxisID]["Rows"]) && isset($ManualScale[$AxisID]["RowHeight"]) )
+        $Scale = array("Rows"=>$ManualScale[$AxisID]["Rows"],"RowHeight"=>$ManualScale[$AxisID]["RowHeight"],"XMin"=>$ManualScale[$AxisID]["Min"],"XMax"=>$ManualScale[$AxisID]["Max"]);
+       else
+        {
+         $MaxDivs = floor($Width/$MinDivHeight);
+         $Scale   = $this->pChartObject->computeScale($Data["Axis"][$AxisID]["Min"],$Data["Axis"][$AxisID]["Max"],$MaxDivs,$Factors,$AxisID);
+        }
+
+       $Data["Axis"][$AxisID]["Margin"]    = $AxisSettings["Identity"] == AXIS_X ? $XMargin : $YMargin;
+       $Data["Axis"][$AxisID]["ScaleMin"]  = $Scale["XMin"];
+       $Data["Axis"][$AxisID]["ScaleMax"]  = $Scale["XMax"];
+       $Data["Axis"][$AxisID]["Rows"]      = $Scale["Rows"];
+       $Data["Axis"][$AxisID]["RowHeight"] = $Scale["RowHeight"];
+
+       if ( isset($Scale["Format"]) ) { $Data["Axis"][$AxisID]["Format"] = $Scale["Format"]; }
+
+       if ( !isset($Data["Axis"][$AxisID]["Display"]) ) { $Data["Axis"][$AxisID]["Display"] = NULL; }
+       if ( !isset($Data["Axis"][$AxisID]["Format"]) )  { $Data["Axis"][$AxisID]["Format"] = NULL; }
+       if ( !isset($Data["Axis"][$AxisID]["Unit"]) )    { $Data["Axis"][$AxisID]["Unit"] = NULL; }
+      }
+
+     /* Get the default font color */
+     $FontColorRo = $this->pChartObject->FontColorR; $FontColorGo = $this->pChartObject->FontColorG; $FontColorBo = $this->pChartObject->FontColorB;
+
+     /* Set the original boundaries */
+     $AxisPos["L"] = $this->pChartObject->GraphAreaX1; $AxisPos["R"] = $this->pChartObject->GraphAreaX2; $AxisPos["T"] = $this->pChartObject->GraphAreaY1; $AxisPos["B"] = $this->pChartObject->GraphAreaY2;
+
+     foreach($Data["Axis"] as $AxisID => $AxisSettings)
+      {
+       if ( isset($AxisSettings["Color"]) )
+        {
+         $AxisR = $AxisSettings["Color"]["R"]; $AxisG = $AxisSettings["Color"]["G"]; $AxisB = $AxisSettings["Color"]["B"];
+         $TickR = $AxisSettings["Color"]["R"]; $TickG = $AxisSettings["Color"]["G"]; $TickB = $AxisSettings["Color"]["B"];
+         $this->pChartObject->setFontProperties(array("R"=>$AxisSettings["Color"]["R"],"G"=>$AxisSettings["Color"]["G"],"B"=>$AxisSettings["Color"]["B"]));
+        }
+       else
+        {
+         $AxisR = $AxisRo; $AxisG = $AxisGo; $AxisB = $AxisBo;
+         $TickR = $TickRo; $TickG = $TickGo; $TickB = $TickBo;
+         $this->pChartObject->setFontProperties(array("R"=>$FontColorRo,"G"=>$FontColorGo,"B"=>$FontColorBo));
+        }
+
+       $LastValue = "w00t"; $ID = 1;
+       if ( $AxisSettings["Identity"] == AXIS_X )
+        {
+         if ( $AxisSettings["Position"] == AXIS_POSITION_BOTTOM )
+          {
+           if ( $XLabelsRotation == 0 )				   { $LabelAlign = TEXT_ALIGN_TOPMIDDLE; $LabelOffset = 2; }
+           if ( $XLabelsRotation > 0 && $XLabelsRotation < 190 )   { $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $LabelOffset = 5; }
+           if ( $XLabelsRotation == 180 )			   { $LabelAlign = TEXT_ALIGN_BOTTOMMIDDLE; $LabelOffset = 5; }
+           if ( $XLabelsRotation > 180 && $XLabelsRotation < 360 ) { $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $LabelOffset = 2; }
+
+           if ( $Floating )
+            { $FloatingOffset = $YMargin; $this->pChartObject->drawLine($this->pChartObject->GraphAreaX1+$AxisSettings["Margin"],$AxisPos["B"],$this->pChartObject->GraphAreaX2-$AxisSettings["Margin"],$AxisPos["B"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+           else
+            { $FloatingOffset = 0; $this->pChartObject->drawLine($this->pChartObject->GraphAreaX1,$AxisPos["B"],$this->pChartObject->GraphAreaX2,$AxisPos["B"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+           if ( $DrawArrows ) { $this->pChartObject->drawArrow($this->pChartObject->GraphAreaX2-$AxisSettings["Margin"],$AxisPos["B"],$this->pChartObject->GraphAreaX2+($ArrowSize*2),$AxisPos["B"],array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+           $Width = ($this->pChartObject->GraphAreaX2 - $this->pChartObject->GraphAreaX1) - $AxisSettings["Margin"]*2;
+           $Step   = $Width / $AxisSettings["Rows"]; $SubTicksSize = $Step /2; $MaxBottom = $AxisPos["B"];
+           $LastX  = NULL;
+           for($i=0;$i<=$AxisSettings["Rows"];$i++)
+            {
+             $XPos  = $this->pChartObject->GraphAreaX1 + $AxisSettings["Margin"] + $Step*$i;
+             $YPos  = $AxisPos["B"];
+             $Value = $this->pChartObject->scaleFormat($AxisSettings["ScaleMin"] + $AxisSettings["RowHeight"]*$i,$AxisSettings["Display"],$AxisSettings["Format"],$AxisSettings["Unit"]);
+
+             if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+             if ( $LastX != NULL && $CycleBackground  && ( $DrawXLines == ALL || in_array($AxisID,$DrawXLines) )) { $this->pChartObject->drawFilledRectangle($LastX,$this->pChartObject->GraphAreaY1+$FloatingOffset,$XPos,$this->pChartObject->GraphAreaY2-$FloatingOffset,$BGColor); }
+
+             if ( $DrawXLines == ALL || in_array($AxisID,$DrawXLines) ) { $this->pChartObject->drawLine($XPos,$this->pChartObject->GraphAreaY1+$FloatingOffset,$XPos,$this->pChartObject->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+             if ( $DrawSubTicks && $i != $AxisSettings["Rows"] )
+              $this->pChartObject->drawLine($XPos+$SubTicksSize,$YPos-$InnerSubTickWidth,$XPos+$SubTicksSize,$YPos+$OuterSubTickWidth,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+             $this->pChartObject->drawLine($XPos,$YPos-$InnerTickWidth,$XPos,$YPos+$OuterTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+             $Bounds    = $this->pChartObject->drawText($XPos,$YPos+$OuterTickWidth+$LabelOffset,$Value,array("Angle"=>$XLabelsRotation,"Align"=>$LabelAlign));
+             $TxtBottom = $YPos+2+$OuterTickWidth+2+($Bounds[0]["Y"]-$Bounds[2]["Y"]);
+             $MaxBottom = max($MaxBottom,$TxtBottom);
+
+             $LastX = $XPos;
+            }
+
+           if ( isset($AxisSettings["Name"]) )
+            {
+             $YPos   = $MaxBottom+2;
+             $XPos   = $this->pChartObject->GraphAreaX1+($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1)/2;
+             $Bounds = $this->pChartObject->drawText($XPos,$YPos,$AxisSettings["Name"],array("Align"=>TEXT_ALIGN_TOPMIDDLE));
+             $MaxBottom = $Bounds[0]["Y"];
+
+             $this->pDataObject->Data["GraphArea"]["Y2"] = $MaxBottom + $this->pChartObject->FontSize;
+            }
+
+           $AxisPos["B"] = $MaxBottom + $ScaleSpacing;
+          }
+         elseif ( $AxisSettings["Position"] == AXIS_POSITION_TOP )
+          {
+           if ( $XLabelsRotation == 0 )					{ $LabelAlign = TEXT_ALIGN_BOTTOMMIDDLE; $LabelOffset = 2; }
+           if ( $XLabelsRotation > 0 && $XLabelsRotation < 190 )	{ $LabelAlign = TEXT_ALIGN_MIDDLELEFT; $LabelOffset = 2; }
+           if ( $XLabelsRotation == 180 )				{ $LabelAlign = TEXT_ALIGN_TOPMIDDLE; $LabelOffset = 5; }
+           if ( $XLabelsRotation > 180 && $SLabelxRotation < 360 )	{ $LabelAlign = TEXT_ALIGN_MIDDLERIGHT; $LabelOffset = 5; }
+
+           if ( $Floating )
+            { $FloatingOffset = $YMargin; $this->pChartObject->drawLine($this->pChartObject->GraphAreaX1+$AxisSettings["Margin"],$AxisPos["T"],$this->pChartObject->GraphAreaX2-$AxisSettings["Margin"],$AxisPos["T"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+           else
+            { $FloatingOffset = 0; $this->pChartObject->drawLine($this->pChartObject->GraphAreaX1,$AxisPos["T"],$this->pChartObject->GraphAreaX2,$AxisPos["T"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+           if ( $DrawArrows ) { $this->pChartObject->drawArrow($this->pChartObject->GraphAreaX2-$AxisSettings["Margin"],$AxisPos["T"],$this->pChartObject->GraphAreaX2+($ArrowSize*2),$AxisPos["T"],array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+           $Width = ($this->pChartObject->GraphAreaX2 - $this->pChartObject->GraphAreaX1) - $AxisSettings["Margin"]*2;
+           $Step   = $Width / $AxisSettings["Rows"]; $SubTicksSize = $Step /2; $MinTop = $AxisPos["T"];
+           $LastX  = NULL;
+           for($i=0;$i<=$AxisSettings["Rows"];$i++)
+            {
+             $XPos  = $this->pChartObject->GraphAreaX1 + $AxisSettings["Margin"] + $Step*$i;
+             $YPos  = $AxisPos["T"];
+             $Value = $this->pChartObject->scaleFormat($AxisSettings["ScaleMin"] + $AxisSettings["RowHeight"]*$i,$AxisSettings["Display"],$AxisSettings["Format"],$AxisSettings["Unit"]);
+
+             if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+             if ( $LastX != NULL && $CycleBackground  && ( $DrawXLines == ALL || in_array($AxisID,$DrawXLines) )) { $this->pChartObject->drawFilledRectangle($LastX,$this->pChartObject->GraphAreaY1+$FloatingOffset,$XPos,$this->pChartObject->GraphAreaY2-$FloatingOffset,$BGColor); }
+
+             if ( $DrawXLines == ALL || in_array($AxisID,$DrawXLines) ) { $this->pChartObject->drawLine($XPos,$this->pChartObject->GraphAreaY1+$FloatingOffset,$XPos,$this->pChartObject->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+
+             if ( $DrawSubTicks && $i != $AxisSettings["Rows"] )
+              $this->pChartObject->drawLine($XPos+$SubTicksSize,$YPos-$OuterSubTickWidth,$XPos+$SubTicksSize,$YPos+$InnerSubTickWidth,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+             $this->pChartObject->drawLine($XPos,$YPos-$OuterTickWidth,$XPos,$YPos+$InnerTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+             $Bounds = $this->pChartObject->drawText($XPos,$YPos-$OuterTickWidth-$LabelOffset,$Value,array("Angle"=>$XLabelsRotation,"Align"=>$LabelAlign));
+             $TxtBox = $YPos-$OuterTickWidth-4-($Bounds[0]["Y"]-$Bounds[2]["Y"]);
+             $MinTop = min($MinTop,$TxtBox);
+
+             $LastX = $XPos;
+            }
+
+           if ( isset($AxisSettings["Name"]) )
+            {
+             $YPos   = $MinTop-2;
+             $XPos   = $this->pChartObject->GraphAreaX1+($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1)/2;
+             $Bounds = $this->pChartObject->drawText($XPos,$YPos,$AxisSettings["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
+             $MinTop = $Bounds[2]["Y"];
+
+             $this->pDataObject->Data["GraphArea"]["Y1"] = $MinTop;
+            }
+
+           $AxisPos["T"] = $MinTop - $ScaleSpacing;
+          }
+        }
+       elseif ( $AxisSettings["Identity"] == AXIS_Y )
+        {
+         if ( $AxisSettings["Position"] == AXIS_POSITION_LEFT )
+          {
+
+           if ( $Floating )
+            { $FloatingOffset = $XMargin; $this->pChartObject->drawLine($AxisPos["L"],$this->pChartObject->GraphAreaY1+$AxisSettings["Margin"],$AxisPos["L"],$this->pChartObject->GraphAreaY2-$AxisSettings["Margin"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+           else
+            { $FloatingOffset = 0; $this->pChartObject->drawLine($AxisPos["L"],$this->pChartObject->GraphAreaY1,$AxisPos["L"],$this->pChartObject->GraphAreaY2,array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+           if ( $DrawArrows ) { $this->pChartObject->drawArrow($AxisPos["L"],$this->pChartObject->GraphAreaY1+$AxisSettings["Margin"],$AxisPos["L"],$this->pChartObject->GraphAreaY1-($ArrowSize*2),array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+           $Height = ($this->pChartObject->GraphAreaY2 - $this->pChartObject->GraphAreaY1) - $AxisSettings["Margin"]*2;
+           $Step   = $Height / $AxisSettings["Rows"]; $SubTicksSize = $Step /2; $MinLeft = $AxisPos["L"];
+           $LastY  = NULL;
+           for($i=0;$i<=$AxisSettings["Rows"];$i++)
+            {
+             $YPos  = $this->pChartObject->GraphAreaY2 - $AxisSettings["Margin"] - $Step*$i;
+             $XPos  = $AxisPos["L"];
+             $Value = $this->pChartObject->scaleFormat($AxisSettings["ScaleMin"] + $AxisSettings["RowHeight"]*$i,$AxisSettings["Display"],$AxisSettings["Format"],$AxisSettings["Unit"]);
+
+             if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+             if ( $LastY != NULL && $CycleBackground && ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) )) { $this->pChartObject->drawFilledRectangle($this->pChartObject->GraphAreaX1+$FloatingOffset,$LastY,$this->pChartObject->GraphAreaX2-$FloatingOffset,$YPos,$BGColor); }
+
+             if ( ($YPos != $this->pChartObject->GraphAreaY1 && $YPos != $this->pChartObject->GraphAreaY2) && ($DrawYLines == ALL || in_array($AxisID,$DrawYLines) )) { $this->pChartObject->drawLine($this->pChartObject->GraphAreaX1+$FloatingOffset,$YPos,$this->pChartObject->GraphAreaX2-$FloatingOffset,$YPos,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+
+             if ( $DrawSubTicks && $i != $AxisSettings["Rows"] )
+              $this->pChartObject->drawLine($XPos-$OuterSubTickWidth,$YPos-$SubTicksSize,$XPos+$InnerSubTickWidth,$YPos-$SubTicksSize,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+             $this->pChartObject->drawLine($XPos-$OuterTickWidth,$YPos,$XPos+$InnerTickWidth,$YPos,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+             $Bounds  = $this->pChartObject->drawText($XPos-$OuterTickWidth-2,$YPos,$Value,array("Align"=>TEXT_ALIGN_MIDDLERIGHT));
+             $TxtLeft = $XPos-$OuterTickWidth-2-($Bounds[1]["X"]-$Bounds[0]["X"]);
+             $MinLeft = min($MinLeft,$TxtLeft);
+
+             $LastY = $YPos;
+            }
+
+           if ( isset($AxisSettings["Name"]) )
+            {
+             $XPos    = $MinLeft-2;
+             $YPos    = $this->pChartObject->GraphAreaY1+($this->pChartObject->GraphAreaY2-$this->pChartObject->GraphAreaY1)/2;
+             $Bounds  = $this->pChartObject->drawText($XPos,$YPos,$AxisSettings["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE,"Angle"=>90));
+             $MinLeft = $Bounds[2]["X"];
+
+             $this->pDataObject->Data["GraphArea"]["X1"] = $MinLeft;
+            }
+
+           $AxisPos["L"] = $MinLeft - $ScaleSpacing;
+          }
+         elseif ( $AxisSettings["Position"] == AXIS_POSITION_RIGHT )
+          {
+
+           if ( $Floating )
+            { $FloatingOffset = $XMargin; $this->pChartObject->drawLine($AxisPos["R"],$this->pChartObject->GraphAreaY1+$AxisSettings["Margin"],$AxisPos["R"],$this->pChartObject->GraphAreaY2-$AxisSettings["Margin"],array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+           else
+            { $FloatingOffset = 0; $this->pChartObject->drawLine($AxisPos["R"],$this->pChartObject->GraphAreaY1,$AxisPos["R"],$this->pChartObject->GraphAreaY2,array("R"=>$AxisR,"G"=>$AxisG,"B"=>$AxisB,"Alpha"=>$AxisAlpha)); }
+
+           if ( $DrawArrows ) { $this->pChartObject->drawArrow($AxisPos["R"],$this->pChartObject->GraphAreaY1+$AxisSettings["Margin"],$AxisPos["R"],$this->pChartObject->GraphAreaY1-($ArrowSize*2),array("FillR"=>$AxisR,"FillG"=>$AxisG,"FillB"=>$AxisB,"Size"=>$ArrowSize)); }
+
+           $Height = ($this->pChartObject->GraphAreaY2 - $this->pChartObject->GraphAreaY1) - $AxisSettings["Margin"]*2;
+           $Step   = $Height / $AxisSettings["Rows"]; $SubTicksSize = $Step /2; $MaxLeft = $AxisPos["R"];
+           $LastY  = NULL;
+           for($i=0;$i<=$AxisSettings["Rows"];$i++)
+            {
+             $YPos  = $this->pChartObject->GraphAreaY2 - $AxisSettings["Margin"] - $Step*$i;
+             $XPos  = $AxisPos["R"];
+             $Value = $this->pChartObject->scaleFormat($AxisSettings["ScaleMin"] + $AxisSettings["RowHeight"]*$i,$AxisSettings["Display"],$AxisSettings["Format"],$AxisSettings["Unit"]);
+
+             if ( $i%2 == 1 ) { $BGColor = array("R"=>$BackgroundR1,"G"=>$BackgroundG1,"B"=>$BackgroundB1,"Alpha"=>$BackgroundAlpha1); } else { $BGColor = array("R"=>$BackgroundR2,"G"=>$BackgroundG2,"B"=>$BackgroundB2,"Alpha"=>$BackgroundAlpha2); }
+             if ( $LastY != NULL && $CycleBackground  && ( $DrawYLines == ALL || in_array($AxisID,$DrawYLines) )) { $this->pChartObject->drawFilledRectangle($this->pChartObject->GraphAreaX1+$FloatingOffset,$LastY,$this->pChartObject->GraphAreaX2-$FloatingOffset,$YPos,$BGColor); }
+
+             if ( ($YPos != $this->pChartObject->GraphAreaY1 && $YPos != $this->pChartObject->GraphAreaY2) && ($DrawYLines == ALL || in_array($AxisID,$DrawYLines)) ) { $this->pChartObject->drawLine($this->pChartObject->GraphAreaX1+$FloatingOffset,$YPos,$this->pChartObject->GraphAreaX2-$FloatingOffset,$YPos,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
+
+             if ( $DrawSubTicks && $i != $AxisSettings["Rows"] )
+              $this->pChartObject->drawLine($XPos-$InnerSubTickWidth,$YPos-$SubTicksSize,$XPos+$OuterSubTickWidth,$YPos-$SubTicksSize,array("R"=>$SubTickR,"G"=>$SubTickG,"B"=>$SubTickB,"Alpha"=>$SubTickAlpha));
+
+             $this->pChartObject->drawLine($XPos-$InnerTickWidth,$YPos,$XPos+$OuterTickWidth,$YPos,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
+             $Bounds  = $this->pChartObject->drawText($XPos+$OuterTickWidth+2,$YPos,$Value,array("Align"=>TEXT_ALIGN_MIDDLELEFT));
+             $TxtLeft = $XPos+$OuterTickWidth+2+($Bounds[1]["X"]-$Bounds[0]["X"]);
+             $MaxLeft = max($MaxLeft,$TxtLeft);
+
+             $LastY = $YPos;
+            }
+
+           if ( isset($AxisSettings["Name"]) )
+            {
+             $XPos    = $MaxLeft+6;
+             $YPos    = $this->pChartObject->GraphAreaY1+($this->pChartObject->GraphAreaY2-$this->pChartObject->GraphAreaY1)/2;
+             $Bounds  = $this->pChartObject->drawText($XPos,$YPos,$AxisSettings["Name"],array("Align"=>TEXT_ALIGN_BOTTOMMIDDLE,"Angle"=>270));
+             $MaxLeft = $Bounds[2]["X"];
+
+             $this->pDataObject->Data["GraphArea"]["X2"] = $MaxLeft + $this->pChartObject->FontSize;
+            }
+
+           $AxisPos["R"] = $MaxLeft + $ScaleSpacing;
+          }
+        }
+      }
+
+     $this->pDataObject->saveAxisConfig($Data["Axis"]);
+    }
+
+   /* Draw a scatter plot chart */
+   function drawScatterPlotChart($Format=NULL)
+    {
+     $PlotSize		= isset($Format["PlotSize"]) ? $Format["PlotSize"] : 3;
+     $PlotBorder	= isset($Format["PlotBorder"]) ? $Format["PlotBorder"] : FALSE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 250;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 250;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 250;
+     $BorderAlpha	= isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : 30;
+     $BorderSize	= isset($Format["BorderSize"]) ? $Format["BorderSize"] : 1;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $ImageMapTitle	= isset($Format["ImageMapTitle"]) ? $Format["ImageMapTitle"] : NULL;
+     $ImageMapPrecision = isset($Format["ImageMapPrecision"]) ? $Format["ImageMapPrecision"] : 2;
+
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     $BorderColor = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha);
+
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE )
+        {
+         $SerieX = $Series["X"]; $SerieValuesX = $Data["Series"][$SerieX]["Data"]; $SerieXAxis = $Data["Series"][$SerieX]["Axis"];
+         $SerieY = $Series["Y"]; $SerieValuesY = $Data["Series"][$SerieY]["Data"]; $SerieYAxis = $Data["Series"][$SerieY]["Axis"];
+
+         if ( $ImageMapTitle == NULL ) { $Description = $Data["Series"][$Series["X"]]["Description"]." / ".$Data["Series"][$Series["Y"]]["Description"]; } else { $Description = $ImageMapTitle; }
+         
+         if ( isset($Series["Picture"]) && $Series["Picture"] != "" )
+          { $Picture = $Series["Picture"]; list($PicWidth,$PicHeight,$PicType) = $this->pChartObject->getPicInfo($Picture); }
+         else
+          { $Picture = NULL; }
+
+         $PosArrayX = $this->getPosArray($SerieValuesX,$SerieXAxis);
+         if ( !is_array($PosArrayX) ) { $Value = $PosArrayX; $PosArrayX = ""; $PosArrayX[0] = $Value; }
+         $PosArrayY = $this->getPosArray($SerieValuesY,$SerieYAxis);
+         if ( !is_array($PosArrayY) ) { $Value = $PosArrayY; $PosArrayY = ""; $PosArrayY[0] = $Value; }
+
+         $Color = array("R"=>$Series["Color"]["R"],"G"=>$Series["Color"]["G"],"B"=>$Series["Color"]["B"],"Alpha"=>$Series["Color"]["Alpha"]);
+
+         foreach($PosArrayX as $Key => $Value)
+          {
+           $X = $Value; $Y = $PosArrayY[$Key];
+
+           if ( $X != VOID && $Y != VOID )
+            {
+             $RealValue = round($Data["Series"][$Series["X"]]["Data"][$Key],2)." / ".round($Data["Series"][$Series["Y"]]["Data"][$Key],2);
+             if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".floor($PlotSize+$BorderSize),$this->pChartObject->toHTMLColor($Series["Color"]["R"],$Series["Color"]["G"],$Series["Color"]["B"]),$Description,$RealValue); }
+
+             if( isset($Series["Shape"]) )
+              { $this->pChartObject->drawShape($X,$Y,$Series["Shape"],$PlotSize,$PlotBorder,$BorderSize,$Series["Color"]["R"],$Series["Color"]["G"],$Series["Color"]["B"],$Series["Color"]["Alpha"],$BorderR,$BorderG,$BorderB,$BorderAlpha); }
+             elseif ( $Picture == NULL )
+              {
+               if ( $PlotBorder ) { $this->pChartObject->drawFilledCircle($X,$Y,$PlotSize+$BorderSize,$BorderColor); }
+               $this->pChartObject->drawFilledCircle($X,$Y,$PlotSize,$Color);
+              }
+             else
+              { $this->pChartObject->drawFromPicture($PicType,$Picture,$X-$PicWidth/2,$Y-$PicHeight/2); }
+            }
+          }
+        }
+      }
+    }
+
+   /* Draw a scatter line chart */
+   function drawScatterLineChart($Format=NULL)
+    {
+     $Data		= $this->pDataObject->getData();
+     $Palette		= $this->pDataObject->getPalette();
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $ImageMapTitle	= isset($Format["ImageMapTitle"]) ? $Format["ImageMapTitle"] : NULL;
+     $ImageMapPlotSize	= isset($Format["ImageMapPlotSize"]) ? $Format["ImageMapPlotSize"] : 10;
+     $ImageMapPrecision = isset($Format["ImageMapPrecision"]) ? $Format["ImageMapPrecision"] : 2;
+
+     /* Parse all the series to draw */
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE )
+        {
+         $SerieX = $Series["X"]; $SerieValuesX = $Data["Series"][$SerieX]["Data"]; $SerieXAxis = $Data["Series"][$SerieX]["Axis"];
+         $SerieY = $Series["Y"]; $SerieValuesY = $Data["Series"][$SerieY]["Data"]; $SerieYAxis = $Data["Series"][$SerieY]["Axis"];
+         $Ticks  = $Series["Ticks"];
+         $Weight = $Series["Weight"];
+
+         if ( $ImageMapTitle == NULL ) { $Description = $Data["Series"][$Series["X"]]["Description"]." / ".$Data["Series"][$Series["Y"]]["Description"]; } else { $Description = $ImageMapTitle; }
+
+         $PosArrayX = $this->getPosArray($SerieValuesX,$SerieXAxis);
+         if ( !is_array($PosArrayX) ) { $Value = $PosArrayX; $PosArrayX = ""; $PosArrayX[0] = $Value; }
+         $PosArrayY = $this->getPosArray($SerieValuesY,$SerieYAxis);
+         if ( !is_array($PosArrayY) ) { $Value = $PosArrayY; $PosArrayY = ""; $PosArrayY[0] = $Value; }
+
+         $Color = array("R"=>$Series["Color"]["R"],"G"=>$Series["Color"]["G"],"B"=>$Series["Color"]["B"],"Alpha"=>$Series["Color"]["Alpha"]);
+         if ( $Ticks != 0 )  { $Color["Ticks"]  = $Ticks; }
+         if ( $Weight != 0 ) { $Color["Weight"] = $Weight; }
+
+         $LastX = VOID; $LastY = VOID;
+         foreach($PosArrayX as $Key => $Value)
+          {
+           $X = $Value; $Y = $PosArrayY[$Key];
+
+           if ( $X != VOID && $Y != VOID )
+            {
+             $RealValue = round($Data["Series"][$Series["X"]]["Data"][$Key],2)." / ".round($Data["Series"][$Series["Y"]]["Data"][$Key],2);
+             if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$ImageMapPlotSize,$this->pChartObject->toHTMLColor($Series["Color"]["R"],$Series["Color"]["G"],$Series["Color"]["B"]),$Description,$RealValue); }
+            }
+
+           if ( $X != VOID && $Y != VOID && $LastX != VOID && $LastY != VOID)
+            $this->pChartObject->drawLine($LastX,$LastY,$X,$Y,$Color);
+
+           $LastX = $X; $LastY = $Y;
+          }
+        }
+      }
+    }
+
+   /* Draw a scatter spline chart */
+   function drawScatterSplineChart($Format=NULL)
+    {
+     $Data		= $this->pDataObject->getData();
+     $Palette		= $this->pDataObject->getPalette();
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $ImageMapTitle	= isset($Format["ImageMapTitle"]) ? $Format["ImageMapTitle"] : NULL;
+     $ImageMapPlotSize	= isset($Format["ImageMapPlotSize"]) ? $Format["ImageMapPlotSize"] : 10;
+     $ImageMapPrecision = isset($Format["ImageMapPrecision"]) ? $Format["ImageMapPrecision"] : 2;
+
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE )
+        {
+         $SerieX = $Series["X"]; $SerieValuesX = $Data["Series"][$SerieX]["Data"]; $SerieXAxis = $Data["Series"][$SerieX]["Axis"];
+         $SerieY = $Series["Y"]; $SerieValuesY = $Data["Series"][$SerieY]["Data"]; $SerieYAxis = $Data["Series"][$SerieY]["Axis"];
+         $Ticks  = $Series["Ticks"];
+         $Weight = $Series["Weight"];
+
+         if ( $ImageMapTitle == NULL ) { $Description = $Data["Series"][$Series["X"]]["Description"]." / ".$Data["Series"][$Series["Y"]]["Description"]; } else { $Description = $ImageMapTitle; }
+
+         $PosArrayX = $this->getPosArray($SerieValuesX,$SerieXAxis);
+         if ( !is_array($PosArrayX) ) { $Value = $PosArrayX; $PosArrayX = ""; $PosArrayX[0] = $Value; }
+         $PosArrayY = $this->getPosArray($SerieValuesY,$SerieYAxis);
+         if ( !is_array($PosArrayY) ) { $Value = $PosArrayY; $PosArrayY = ""; $PosArrayY[0] = $Value; }
+
+         $SplineSettings = array("R"=>$Series["Color"]["R"],"G"=>$Series["Color"]["G"],"B"=>$Series["Color"]["B"],"Alpha"=>$Series["Color"]["Alpha"]);
+         if ( $Ticks != 0 )  { $SplineSettings["Ticks"]  = $Ticks; }
+         if ( $Weight != 0 ) { $SplineSettings["Weight"] = $Weight; }
+
+         $LastX = VOID; $LastY = VOID; $WayPoints = ""; $Forces = "";
+         foreach($PosArrayX as $Key => $Value)
+          {
+           $X = $Value; $Y = $PosArrayY[$Key];
+           $Force = $this->pChartObject->getLength($LastX,$LastY,$X,$Y)/5;
+
+           if ( $X != VOID && $Y != VOID )
+            {
+             $RealValue = round($Data["Series"][$Series["X"]]["Data"][$Key],2)." / ".round($Data["Series"][$Series["Y"]]["Data"][$Key],2);
+             if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("CIRCLE",floor($X).",".floor($Y).",".$ImageMapPlotSize,$this->pChartObject->toHTMLColor($Series["Color"]["R"],$Series["Color"]["G"],$Series["Color"]["B"]),$Description,$RealValue); }
+            }
+
+           if ( $X != VOID && $Y != VOID )
+            { $WayPoints[] = array($X,$Y); $Forces[] = $Force; }
+
+           if ( $Y == VOID || $X == VOID )
+            { $SplineSettings["Forces"] = $Forces; $this->pChartObject->drawSpline($WayPoints,$SplineSettings); $WayPoints = ""; $Forces = "";}
+
+           $LastX = $X; $LastY = $Y;
+          }
+         $SplineSettings["Forces"] = $Forces; 
+         $this->pChartObject->drawSpline($WayPoints,$SplineSettings);
+        }
+      }
+    }
+
+   /* Return the scaled plot position */
+   function getPosArray($Values,$AxisID)
+    {
+     $Data = $this->pDataObject->getData();
+
+     if ( !is_array($Values) ) { $Values = array($Values); }
+
+     if ( $Data["Axis"][$AxisID]["Identity"] == AXIS_X )
+      {
+       $Height      = ($this->pChartObject->GraphAreaX2 - $this->pChartObject->GraphAreaX1) - $Data["Axis"][$AxisID]["Margin"]*2;
+       $ScaleHeight = $Data["Axis"][$AxisID]["ScaleMax"] - $Data["Axis"][$AxisID]["ScaleMin"];
+       $Step        = $Height / $ScaleHeight;
+
+       $Result = "";
+       foreach($Values as $Key => $Value)
+        {
+         if ( $Value == VOID ) 
+          $Result[] = VOID;
+         else
+          $Result[] = $this->pChartObject->GraphAreaX1 + $Data["Axis"][$AxisID]["Margin"] + ($Step * ($Value-$Data["Axis"][$AxisID]["ScaleMin"]));
+        }
+
+       if ( count($Result) == 1 ) { return($Result[0]); } else { return($Result); }
+      }
+     else
+      {
+       $Height      = ($this->pChartObject->GraphAreaY2 - $this->pChartObject->GraphAreaY1) - $Data["Axis"][$AxisID]["Margin"]*2;
+       $ScaleHeight = $Data["Axis"][$AxisID]["ScaleMax"] - $Data["Axis"][$AxisID]["ScaleMin"];
+       $Step        = $Height / $ScaleHeight;
+
+       $Result = "";
+       foreach($Values as $Key => $Value)
+        {
+         if ( $Value == VOID ) 
+          $Result[] = VOID;
+         else
+          $Result[] = $this->pChartObject->GraphAreaY2 - $Data["Axis"][$AxisID]["Margin"] - ($Step * ($Value-$Data["Axis"][$AxisID]["ScaleMin"]));
+        }
+
+       if ( count($Result) == 1 ) { return($Result[0]); } else { return($Result); }
+      }
+    }
+
+   /* Draw the legend of the active series */
+   function drawScatterLegend($X,$Y,$Format="")
+    {
+     $Family		= isset($Format["Family"]) ? $Format["Family"] : LEGEND_FAMILY_BOX;
+     $FontName		= isset($Format["FontName"]) ? $Format["FontName"] : $this->pChartObject->FontName;
+     $FontSize		= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->pChartObject->FontSize;
+     $FontR		= isset($Format["FontR"]) ? $Format["FontR"] : $this->pChartObject->FontColorR;
+     $FontG		= isset($Format["FontG"]) ? $Format["FontG"] : $this->pChartObject->FontColorG;
+     $FontB		= isset($Format["FontB"]) ? $Format["FontB"] : $this->pChartObject->FontColorB;
+     $BoxWidth		= isset($Format["BoxWidth"]) ? $Format["BoxWidth"] : 5;
+     $BoxHeight		= isset($Format["BoxHeight"]) ? $Format["BoxHeight"] : 5;
+     $IconAreaWidth	= isset($Format["IconAreaWidth"]) ? $Format["IconAreaWidth"] : $BoxWidth;
+     $IconAreaHeight	= isset($Format["IconAreaHeight"]) ? $Format["IconAreaHeight"] : $BoxHeight;
+     $XSpacing		= isset($Format["XSpacing"]) ? $Format["XSpacing"] : 5;
+     $Margin		= isset($Format["Margin"]) ? $Format["Margin"] : 5;
+     $R			= isset($Format["R"]) ? $Format["R"] : 200;
+     $G			= isset($Format["G"]) ? $Format["G"] : 200;
+     $B			= isset($Format["B"]) ? $Format["B"] : 200;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $Style		= isset($Format["Style"]) ? $Format["Style"] : LEGEND_ROUND;
+     $Mode		= isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
+
+     if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
+
+     $Data = $this->pDataObject->getData();
+
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE && isset($Series["Picture"]))
+        {
+         list($PicWidth,$PicHeight) = $this->pChartObject->getPicInfo($Series["Picture"]);
+         if ( $IconAreaWidth < $PicWidth ) { $IconAreaWidth = $PicWidth; }
+         if ( $IconAreaHeight < $PicHeight ) { $IconAreaHeight = $PicHeight; }
+        }
+      }
+
+     $YStep = max($this->pChartObject->FontSize,$IconAreaHeight) + 5;
+     $XStep = $IconAreaWidth + 5;
+     $XStep = $XSpacing;
+
+     $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE )
+        {
+         if ( $Mode == LEGEND_VERTICAL )
+          {
+           $BoxArray = $this->pChartObject->getTextBox($vX+$IconAreaWidth+4,$vY+$IconAreaHeight/2,$FontName,$FontSize,0,$Series["Description"]);
+
+           if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+           if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+           if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+           $Lines = preg_split("/\n/",$Series["Description"]);
+           $vY = $vY + max($this->pChartObject->FontSize*count($Lines),$IconAreaHeight) + 5;
+          }
+         elseif ( $Mode == LEGEND_HORIZONTAL )
+          {
+           $Lines = preg_split("/\n/",$Series["Description"]);
+           $Width = "";
+           foreach($Lines as $Key => $Value)
+            {
+             $BoxArray = $this->pChartObject->getTextBox($vX+$IconAreaWidth+6,$Y+$IconAreaHeight/2+(($this->pChartObject->FontSize+3)*$Key),$FontName,$FontSize,0,$Value);
+
+             if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+             if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+             if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+             $Width[] = $BoxArray[1]["X"];
+            }
+
+           $vX=max($Width)+$XStep;
+          }
+        }
+      }
+     $vY=$vY-$YStep; $vX=$vX-$XStep;
+
+     $TopOffset  = $Y - $Boundaries["T"];
+     if ( $Boundaries["B"]-($vY+$IconAreaHeight) < $TopOffset ) { $Boundaries["B"] = $vY+$IconAreaHeight+$TopOffset; }
+
+     if ( $Style == LEGEND_ROUND )
+      $this->pChartObject->drawRoundedFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+     elseif ( $Style == LEGEND_BOX )
+      $this->pChartObject->drawFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+
+     $RestoreShadow = $this->pChartObject->Shadow; $this->Shadow = FALSE;
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE )
+        {
+         $R = $Series["Color"]["R"]; $G = $Series["Color"]["G"]; $B = $Series["Color"]["B"];
+         $Ticks = $Series["Ticks"]; $Weight = $Series["Weight"];
+
+         if ( isset($Series["Picture"]) )
+          {
+           $Picture = $Series["Picture"];
+           list($PicWidth,$PicHeight) = $this->pChartObject->getPicInfo($Picture);
+           $PicX = $X+$IconAreaWidth/2; $PicY = $Y+$IconAreaHeight/2; 
+
+           $this->pChartObject->drawFromPNG($PicX-$PicWidth/2,$PicY-$PicHeight/2,$Picture);
+          }
+         else
+          {
+           if ( $Family == LEGEND_FAMILY_BOX )
+            {
+             if ( $BoxWidth != $IconAreaWidth ) { $XOffset = floor(($IconAreaWidth-$BoxWidth)/2); } else { $XOffset = 0; }
+             if ( $BoxHeight != $IconAreaHeight ) { $YOffset = floor(($IconAreaHeight-$BoxHeight)/2); } else { $YOffset = 0; }
+
+             $this->pChartObject->drawFilledRectangle($X+1+$XOffset,$Y+1+$YOffset,$X+$BoxWidth+$XOffset+1,$Y+$BoxHeight+1+$YOffset,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
+             $this->pChartObject->drawFilledRectangle($X+$XOffset,$Y+$YOffset,$X+$BoxWidth+$XOffset,$Y+$BoxHeight+$YOffset,array("R"=>$R,"G"=>$G,"B"=>$B,"Surrounding"=>20));
+            }
+           elseif ( $Family == LEGEND_FAMILY_CIRCLE )
+            {
+             $this->pChartObject->drawFilledCircle($X+1+$IconAreaWidth/2,$Y+1+$IconAreaHeight/2,min($IconAreaHeight/2,$IconAreaWidth/2),array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
+             $this->pChartObject->drawFilledCircle($X+$IconAreaWidth/2,$Y+$IconAreaHeight/2,min($IconAreaHeight/2,$IconAreaWidth/2),array("R"=>$R,"G"=>$G,"B"=>$B,"Surrounding"=>20));
+            }
+           elseif ( $Family == LEGEND_FAMILY_LINE )
+            {
+             $this->pChartObject->drawLine($X+1,$Y+1+$IconAreaHeight/2,$X+1+$IconAreaWidth,$Y+1+$IconAreaHeight/2,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20,"Ticks"=>$Ticks,"Weight"=>$Weight));
+             $this->pChartObject->drawLine($X,$Y+$IconAreaHeight/2,$X+$IconAreaWidth,$Y+$IconAreaHeight/2,array("R"=>$R,"G"=>$G,"B"=>$B,"Ticks"=>$Ticks,"Weight"=>$Weight));
+            }
+          }
+
+         if ( $Mode == LEGEND_VERTICAL )
+          {
+           $Lines = preg_split("/\n/",$Series["Description"]);
+           foreach($Lines as $Key => $Value)
+            $this->pChartObject->drawText($X+$IconAreaWidth+4,$Y+$IconAreaHeight/2+(($this->pChartObject->FontSize+3)*$Key),$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT));
+
+           $Y=$Y+max($this->pChartObject->FontSize*count($Lines),$IconAreaHeight) + 5;
+          }
+         elseif ( $Mode == LEGEND_HORIZONTAL )
+          {
+           $Lines = preg_split("/\n/",$Series["Description"]);
+           $Width = "";
+           foreach($Lines as $Key => $Value)
+            {
+             $BoxArray = $this->pChartObject->drawText($X+$IconAreaWidth+4,$Y+$IconAreaHeight/2+(($this->pChartObject->FontSize+3)*$Key),$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT));
+             $Width[] = $BoxArray[1]["X"];
+            }
+           $X=max($Width)+2+$XStep;
+          }
+        }
+      }
+
+     $this->Shadow = $RestoreShadow;
+    }
+
+   /* Get the legend box size */
+   function getScatterLegendSize($Format="")
+    {
+     $FontName	= isset($Format["FontName"]) ? $Format["FontName"] : $this->pChartObject->FontName;
+     $FontSize	= isset($Format["FontSize"]) ? $Format["FontSize"] : $this->pChartObject->FontSize;
+     $BoxSize	= isset($Format["BoxSize"]) ? $Format["BoxSize"] : 5;
+     $Margin	= isset($Format["Margin"]) ? $Format["Margin"] : 5;
+     $Style	= isset($Format["Style"]) ? $Format["Style"] : LEGEND_ROUND;
+     $Mode	= isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
+
+     $YStep = max($this->pChartObject->FontSize,$BoxSize) + 5;
+     $XStep = $BoxSize + 5;
+
+     $X=100; $Y=100;
+
+     $Data = $this->pDataObject->getData();
+
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE && isset($Series["Picture"]))
+        {
+         list($PicWidth,$PicHeight) = $this->pChartObject->getPicInfo($Series["Picture"]);
+         if ( $IconAreaWidth < $PicWidth ) { $IconAreaWidth = $PicWidth; }
+         if ( $IconAreaHeight < $PicHeight ) { $IconAreaHeight = $PicHeight; }
+        }
+      }
+
+     $YStep = max($this->pChartObject->FontSize,$IconAreaHeight) + 5;
+     $XStep = $IconAreaWidth + 5;
+     $XStep = $XSpacing;
+
+     $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE )
+        {
+         if ( $Mode == LEGEND_VERTICAL )
+          {
+           $BoxArray = $this->pChartObject->getTextBox($vX+$IconAreaWidth+4,$vY+$IconAreaHeight/2,$FontName,$FontSize,0,$Series["Description"]);
+
+           if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+           if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+           if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+           $Lines = preg_split("/\n/",$Series["Description"]);
+           $vY = $vY + max($this->pChartObject->FontSize*count($Lines),$IconAreaHeight) + 5;
+          }
+         elseif ( $Mode == LEGEND_HORIZONTAL )
+          {
+           $Lines = preg_split("/\n/",$Series["Description"]);
+           $Width = "";
+           foreach($Lines as $Key => $Value)
+            {
+             $BoxArray = $this->pChartObject->getTextBox($vX+$IconAreaWidth+6,$Y+$IconAreaHeight/2+(($this->pChartObject->FontSize+3)*$Key),$FontName,$FontSize,0,$Value);
+
+             if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$IconAreaHeight/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$IconAreaHeight/2; }
+             if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+             if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$IconAreaHeight/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$IconAreaHeight/2; }
+
+             $Width[] = $BoxArray[1]["X"];
+            }
+
+           $vX=max($Width)+$XStep;
+          }
+        }
+      }
+     $vY=$vY-$YStep; $vX=$vX-$XStep;
+
+     $TopOffset  = $Y - $Boundaries["T"];
+     if ( $Boundaries["B"]-($vY+$BoxSize) < $TopOffset ) { $Boundaries["B"] = $vY+$BoxSize+$TopOffset; }
+
+     $Width  = ($Boundaries["R"]+$Margin) - ($Boundaries["L"]-$Margin);
+     $Height = ($Boundaries["B"]+$Margin) - ($Boundaries["T"]-$Margin);
+
+     return(array("Width"=>$Width,"Height"=>$Height));
+    }
+
+   /* Draw the line of best fit */
+   function drawScatterBestFit($Format="")
+    {
+     $Ticks	= isset($Format["Ticks"]) ? $Format["Ticks"] : 0;
+
+     $Data    = $this->pDataObject->getData();
+
+     foreach($Data["ScatterSeries"] as $Key => $Series)
+      {
+       if ( $Series["isDrawable"] == TRUE )
+        {
+         $SerieX = $Series["X"]; $SerieValuesX = $Data["Series"][$SerieX]["Data"]; $SerieXAxis = $Data["Series"][$SerieX]["Axis"];
+         $SerieY = $Series["Y"]; $SerieValuesY = $Data["Series"][$SerieY]["Data"]; $SerieYAxis = $Data["Series"][$SerieY]["Axis"];
+
+         $Color = array("R"=>$Series["Color"]["R"],"G"=>$Series["Color"]["G"],"B"=>$Series["Color"]["B"],"Alpha"=>$Series["Color"]["Alpha"]);
+         $Color["Ticks"] = $Ticks;
+
+         $PosArrayX = $Data["Series"][$Series["X"]]["Data"];
+         $PosArrayY = $Data["Series"][$Series["Y"]]["Data"];
+
+         $Sxy = 0; $Sx = 0; $Sy = 0; $Sxx = 0;
+         foreach($PosArrayX as $Key => $Value)
+          {
+           $X = $Value; $Y = $PosArrayY[$Key];
+
+           $Sxy = $Sxy + $X*$Y;
+           $Sx  = $Sx + $X;
+           $Sy  = $Sy + $Y;
+           $Sxx = $Sxx + $X*$X;
+          }
+
+         $n = count($PosArrayX);
+
+         if ((($n*$Sxx) == ($Sx*$Sx)))
+          {
+           $X1 = $this->getPosArray($Data["Axis"][$SerieXAxis]["ScaleMin"],$SerieXAxis);
+           $X2 = $X1;
+           $Y1 = $this->pChartObject->GraphAreaY1;
+           $Y2 = $this->pChartObject->GraphAreaY2;
+          }
+         else
+          {
+           $M = (($n*$Sxy)-($Sx*$Sy)) / (($n*$Sxx)-($Sx*$Sx));
+           $B = (($Sy)-($M*$Sx))/($n);
+
+           $X1 = $this->getPosArray($Data["Axis"][$SerieXAxis]["ScaleMin"],$SerieXAxis);
+           $Y1 = $this->getPosArray($M * $Data["Axis"][$SerieXAxis]["ScaleMin"] + $B,$SerieYAxis);
+           $X2 = $this->getPosArray($Data["Axis"][$SerieXAxis]["ScaleMax"],$SerieXAxis);
+           $Y2 = $this->getPosArray($M * $Data["Axis"][$SerieXAxis]["ScaleMax"] + $B,$SerieYAxis);
+
+           $RealM = -($Y2-$Y1)/($X2-$X1);
+
+           if ( $Y1 < $this->pChartObject->GraphAreaY1 ) { $X1 = $X1 + ($this->pChartObject->GraphAreaY1-$Y1/$RealM); $Y1 = $this->pChartObject->GraphAreaY1; }
+           if ( $Y1 > $this->pChartObject->GraphAreaY2 ) { $X1 = $X1 + ($Y1-$this->pChartObject->GraphAreaY2)/$RealM; $Y1 = $this->pChartObject->GraphAreaY2; }
+           if ( $Y2 < $this->pChartObject->GraphAreaY1 ) { $X2 = $X2 - ($this->pChartObject->GraphAreaY1-$Y2)/$RealM; $Y2 = $this->pChartObject->GraphAreaY1; }
+           if ( $Y2 > $this->pChartObject->GraphAreaY2 ) { $X2 = $X2 - ($Y2-$this->pChartObject->GraphAreaY2)/$RealM; $Y2 = $this->pChartObject->GraphAreaY2; }
+          }
+
+         $this->pChartObject->drawLine($X1,$Y1,$X2,$Y2,$Color);
+        }
+      }
+    }
+
+   function writeScatterLabel($ScatterSerieID,$Points,$Format="")
+    {
+     $OverrideTitle	= isset($Format["OverrideTitle"]) ? $Format["OverrideTitle"] : NULL;
+     $DrawPoint		= isset($Format["DrawPoint"]) ? $Format["DrawPoint"] : LABEL_POINT_BOX;
+     $Decimals		= isset($Format["Decimals"]) ? $Format["Decimals"] : NULL;
+
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     if ( !is_array($Points) ) { $Point = $Points; $Points = ""; $Points[0] = $Point; }
+
+     if ( !isset($Data["ScatterSeries"][$ScatterSerieID]) ) 
+      return(0);
+
+     $Series = $Data["ScatterSeries"][$ScatterSerieID];
+     $SerieX = $Series["X"]; $SerieValuesX = $Data["Series"][$SerieX]["Data"]; $SerieXAxis = $Data["Series"][$SerieX]["Axis"];
+     $SerieY = $Series["Y"]; $SerieValuesY = $Data["Series"][$SerieY]["Data"]; $SerieYAxis = $Data["Series"][$SerieY]["Axis"];
+
+     $PosArrayX = $this->getPosArray($SerieValuesX,$SerieXAxis);
+     if ( !is_array($PosArrayX) ) { $Value = $PosArrayX; $PosArrayX = ""; $PosArrayX[0] = $Value; }
+     $PosArrayY = $this->getPosArray($SerieValuesY,$SerieYAxis);
+     if ( !is_array($PosArrayY) ) { $Value = $PosArrayY; $PosArrayY = ""; $PosArrayY[0] = $Value; }
+
+     foreach($Points as $Key => $Point)
+      {
+       if ( isset($PosArrayX[$Point]) && isset($PosArrayY[$Point]) )
+        {
+         $X = floor($PosArrayX[$Point]);
+         $Y = floor($PosArrayY[$Point]);
+
+         if ( $DrawPoint == LABEL_POINT_CIRCLE )
+          $this->pChartObject->drawFilledCircle($X,$Y,3,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+         elseif ( $DrawPoint == LABEL_POINT_BOX )
+          $this->pChartObject->drawFilledRectangle($X-2,$Y-2,$X+2,$Y+2,array("R"=>255,"G"=>255,"B"=>255,"BorderR"=>0,"BorderG"=>0,"BorderB"=>0));
+
+         $Serie = "";
+         $Serie["R"] = $Series["Color"]["R"];
+         $Serie["G"] = $Series["Color"]["G"];
+         $Serie["B"] = $Series["Color"]["B"];
+         $Serie["Alpha"] = $Series["Color"]["Alpha"];
+
+         $XAxisMode   = $Data["Axis"][$SerieXAxis]["Display"];
+         $XAxisFormat = $Data["Axis"][$SerieXAxis]["Format"];
+         $XAxisUnit   = $Data["Axis"][$SerieXAxis]["Unit"];
+         if ( $Decimals == NULL ) { $XValue = $SerieValuesX[$Point]; } else { $XValue = round($SerieValuesX[$Point],$Decimals); }
+         $XValue      = $this->pChartObject->scaleFormat($XValue,$XAxisMode,$XAxisFormat,$XAxisUnit);
+
+         $YAxisMode   = $Data["Axis"][$SerieYAxis]["Display"];
+         $YAxisFormat = $Data["Axis"][$SerieYAxis]["Format"];
+         $YAxisUnit   = $Data["Axis"][$SerieYAxis]["Unit"];
+         if ( $Decimals == NULL ) { $YValue = $SerieValuesY[$Point]; } else { $YValue = round($SerieValuesY[$Point],$Decimals); }
+         $YValue      = $this->pChartObject->scaleFormat($YValue,$YAxisMode,$YAxisFormat,$YAxisUnit);
+
+         $Caption = $XValue." / ".$YValue;
+
+         if ( isset($Series["Description"]) )
+          $Description = $Series["Description"];
+         else
+          $Description = "No description";
+
+         $Series = "";
+         $Series[] = array("Format"=>$Serie,"Caption"=>$Caption);
+
+         $this->pChartObject->drawLabelBox($X,$Y-3,$Description,$Series,$Format);
+        }
+      }
+    }
+
+   /* Draw a Scatter threshold */
+   function drawScatterThreshold($Value,$Format="")
+    {
+     $AxisID		= isset($Format["AxisID"]) ? $Format["AxisID"] : 0;
+     $R			= isset($Format["R"]) ? $Format["R"] : 255;
+     $G			= isset($Format["G"]) ? $Format["G"] : 0;
+     $B			= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : 50;
+     $Weight		= isset($Format["Weight"]) ? $Format["Weight"] : NULL;
+     $Ticks		= isset($Format["Ticks"]) ? $Format["Ticks"] : 3;
+     $Wide		= isset($Format["Wide"]) ? $Format["Wide"] : FALSE;
+     $WideFactor	= isset($Format["WideFactor"]) ? $Format["WideFactor"] : 5;
+     $WriteCaption	= isset($Format["WriteCaption"]) ? $Format["WriteCaption"] : FALSE;
+     $Caption		= isset($Format["Caption"]) ? $Format["Caption"] : NULL;
+     $CaptionAlign	= isset($Format["CaptionAlign"]) ? $Format["CaptionAlign"] : CAPTION_LEFT_TOP;
+     $CaptionOffset     = isset($Format["CaptionOffset"]) ? $Format["CaptionOffset"] : 10;
+     $CaptionR		= isset($Format["CaptionR"]) ? $Format["CaptionR"] : 255;
+     $CaptionG		= isset($Format["CaptionG"]) ? $Format["CaptionG"] : 255;
+     $CaptionB		= isset($Format["CaptionB"]) ? $Format["CaptionB"] : 255;
+     $CaptionAlpha	= isset($Format["CaptionAlpha"]) ? $Format["CaptionAlpha"] : 100;
+     $DrawBox		= isset($Format["DrawBox"]) ? $Format["DrawBox"] : TRUE;
+     $DrawBoxBorder	= isset($Format["DrawBoxBorder"]) ? $Format["DrawBoxBorder"] : FALSE;
+     $BorderOffset	= isset($Format["BorderOffset"]) ? $Format["BorderOffset"] : 5;
+     $BoxRounded	= isset($Format["BoxRounded"]) ? $Format["BoxRounded"] : TRUE;
+     $RoundedRadius	= isset($Format["RoundedRadius"]) ? $Format["RoundedRadius"] : 3;
+     $BoxR		= isset($Format["BoxR"]) ? $Format["BoxR"] : 0;
+     $BoxG		= isset($Format["BoxG"]) ? $Format["BoxG"] : 0;
+     $BoxB		= isset($Format["BoxB"]) ? $Format["BoxB"] : 0;
+     $BoxAlpha		= isset($Format["BoxAlpha"]) ? $Format["BoxAlpha"] : 20;
+     $BoxSurrounding	= isset($Format["BoxSurrounding"]) ? $Format["BoxSurrounding"] : "";
+     $BoxBorderR	= isset($Format["BoxBorderR"]) ? $Format["BoxBorderR"] : 255;
+     $BoxBorderG	= isset($Format["BoxBorderG"]) ? $Format["BoxBorderG"] : 255;
+     $BoxBorderB	= isset($Format["BoxBorderB"]) ? $Format["BoxBorderB"] : 255;
+     $BoxBorderAlpha	= isset($Format["BoxBorderAlpha"]) ? $Format["BoxBorderAlpha"] : 100;
+
+     $CaptionSettings = array("DrawBox"=>$DrawBox,"DrawBoxBorder"=>$DrawBoxBorder,"BorderOffset"=>$BorderOffset,"BoxRounded"=>$BoxRounded,"RoundedRadius"=>$RoundedRadius,
+                              "BoxR"=>$BoxR,"BoxG"=>$BoxG,"BoxB"=>$BoxB,"BoxAlpha"=>$BoxAlpha,"BoxSurrounding"=>$BoxSurrounding,
+                              "BoxBorderR"=>$BoxBorderR,"BoxBorderG"=>$BoxBorderG,"BoxBorderB"=>$BoxBorderB,"BoxBorderAlpha"=>$BoxBorderAlpha,
+                              "R"=>$CaptionR,"G"=>$CaptionG,"B"=>$CaptionB,"Alpha"=>$CaptionAlpha);
+
+     if ( $Caption == NULL ) { $Caption = $Value; }
+
+     $Data = $this->pDataObject->getData();
+
+     if ( !isset($Data["Axis"][$AxisID]) ) { return(-1); }
+ 
+     if ( $Data["Axis"][$AxisID]["Identity"] == AXIS_Y )
+      {
+       $X1 = $this->pChartObject->GraphAreaX1 + $Data["Axis"][$AxisID]["Margin"];
+       $X2 = $this->pChartObject->GraphAreaX2 - $Data["Axis"][$AxisID]["Margin"];
+       $Y  = $this->getPosArray($Value,$AxisID);
+
+       $this->pChartObject->drawLine($X1,$Y,$X2,$Y,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+       if ( $Wide )
+        {
+         $this->pChartObject->drawLine($X1,$Y-1,$X2,$Y-1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+         $this->pChartObject->drawLine($X1,$Y+1,$X2,$Y+1,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+        }
+
+       if ( $WriteCaption )
+        {
+         if ( $CaptionAlign == CAPTION_LEFT_TOP )
+          { $X = $this->pChartObject->GraphAreaX1 + $Data["Axis"][$AxisID]["Margin"] + $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_MIDDLELEFT; }
+         else 
+          { $X = $this->pChartObject->GraphAreaX2 - $Data["Axis"][$AxisID]["Margin"] - $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_MIDDLERIGHT; }
+
+         $this->pChartObject->drawText($X,$Y,$Caption,$CaptionSettings);
+        }
+
+       return(array("Y"=>$Y));
+      }
+     elseif ( $Data["Axis"][$AxisID]["Identity"] == AXIS_X )
+      {
+       $X  = $this->getPosArray($Value,$AxisID);
+       $Y1 = $this->pChartObject->GraphAreaY1 + $Data["Axis"][$AxisID]["Margin"];
+       $Y2 = $this->pChartObject->GraphAreaY2 - $Data["Axis"][$AxisID]["Margin"];
+
+       $this->pChartObject->drawLine($X,$Y1,$X,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks,"Weight"=>$Weight));
+
+       if ( $Wide )
+        {
+         $this->pChartObject->drawLine($X-1,$Y1,$X-1,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+         $this->pChartObject->drawLine($X+1,$Y1,$X+1,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha/$WideFactor,"Ticks"=>$Ticks));
+        }
+
+       if ( $WriteCaption )
+        {
+         if ( $CaptionAlign == CAPTION_LEFT_TOP )
+          { $Y = $this->pChartObject->GraphAreaY1 + $Data["Axis"][$AxisID]["Margin"] + $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_TOPMIDDLE; }
+         else 
+          { $Y = $this->pChartObject->GraphAreaY2 - $Data["Axis"][$AxisID]["Margin"] - $CaptionOffset; $CaptionSettings["Align"] = TEXT_ALIGN_BOTTOMMIDDLE; }
+
+         $CaptionSettings["Align"] = TEXT_ALIGN_TOPMIDDLE;
+         $this->pChartObject->drawText($X,$Y,$Caption,$CaptionSettings);
+        }
+
+       return(array("X"=>$X));
+      }
+    }
+
+   /* Draw a Scatter threshold area */
+   function drawScatterThresholdArea($Value1,$Value2,$Format="")
+    {
+     $AxisID	= isset($Format["AxisID"]) ? $Format["AxisID"] : 0;
+     $R		= isset($Format["R"]) ? $Format["R"] : 255;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 20;
+     $Border    = isset($Format["Border"]) ? $Format["Border"] : TRUE;
+     $BorderR   = isset($Format["BorderR"]) ? $Format["BorderR"] : $R;
+     $BorderG   = isset($Format["BorderG"]) ? $Format["BorderG"] : $G;
+     $BorderB   = isset($Format["BorderB"]) ? $Format["BorderB"] : $B;
+     $BorderAlpha = isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : $Alpha + 20;
+     $BorderTicks = isset($Format["BorderTicks"]) ? $Format["BorderTicks"] : 2;
+     $AreaName 	= isset($Format["AreaName"]) ? $Format["AreaName"] : "La ouate de phoque"; //NULL;
+     $NameAngle	= isset($Format["NameAngle"]) ? $Format["NameAngle"] : ZONE_NAME_ANGLE_AUTO;
+     $NameR	= isset($Format["NameR"]) ? $Format["NameR"] : 255;
+     $NameG	= isset($Format["NameG"]) ? $Format["NameG"] : 255;
+     $NameB	= isset($Format["NameB"]) ? $Format["NameB"] : 255;
+     $NameAlpha	= isset($Format["NameAlpha"]) ? $Format["NameAlpha"] : 100;
+     $DisableShadowOnArea = isset($Format["DisableShadowOnArea"]) ? $Format["DisableShadowOnArea"] : TRUE;
+
+     if ($Value1 > $Value2) { list($Value1, $Value2) = array($Value2, $Value1); }
+
+     $RestoreShadow = $this->pChartObject->Shadow;
+     if ( $DisableShadowOnArea && $this->pChartObject->Shadow ) { $this->pChartObject->Shadow = FALSE; }
+
+     if ($BorderAlpha >100) { $BorderAlpha = 100;}
+
+     $Data = $this->pDataObject->getData();
+
+     if ( !isset($Data["Axis"][$AxisID]) ) { return(-1); }
+ 
+     if ( $Data["Axis"][$AxisID]["Identity"] == AXIS_X )
+      {
+       $Y1 = $this->pChartObject->GraphAreaY1 + $Data["Axis"][$AxisID]["Margin"];
+       $Y2 = $this->pChartObject->GraphAreaY2 - $Data["Axis"][$AxisID]["Margin"];
+       $X1  = $this->getPosArray($Value1,$AxisID);
+       $X2  = $this->getPosArray($Value2,$AxisID);
+
+       if ( $X1 <= $this->pChartObject->GraphAreaX1 ) { $X1 = $this->pChartObject->GraphAreaX1+$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $X2 >= $this->pChartObject->GraphAreaX2 ) { $X2 = $this->pChartObject->GraphAreaX2-$Data["Axis"][$AxisID]["Margin"]; }
+
+       $this->pChartObject->drawFilledRectangle($X1,$Y1,$X2,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+       if ( $Border )
+        {
+         $this->pChartObject->drawLine($X1,$Y1,$X1,$Y2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+         $this->pChartObject->drawLine($X2,$Y1,$X2,$Y2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+        }
+
+       if ( $AreaName != NULL )
+        {
+         $XPos = ($X2-$X1)/2 + $X1;
+         $YPos = ($Y2-$Y1)/2 + $Y1;
+
+         if ( $NameAngle == ZONE_NAME_ANGLE_AUTO )
+          {
+           $TxtPos   = $this->pChartObject->getTextBox($XPos,$YPos,$this->pChartObject->FontName,$this->pChartObject->FontSize,0,$AreaName);
+           $TxtWidth = $TxtPos[1]["X"] - $TxtPos[0]["X"];
+           if ( abs($X2 - $X1) > $TxtWidth ) { $NameAngle = 0; } else { $NameAngle = 90; }
+          }
+         $this->pChartObject->Shadow = $RestoreShadow;
+         $this->pChartObject->drawText($XPos,$YPos,$AreaName,array("R"=>$NameR,"G"=>$NameG,"B"=>$NameB,"Alpha"=>$NameAlpha,"Angle"=>$NameAngle,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
+         if ( $DisableShadowOnArea ) { $this->pChartObject->Shadow = FALSE; }
+        }
+
+       $this->pChartObject->Shadow = $RestoreShadow;
+       return(array("X1"=>$X1,"X2"=>$X2));
+      }
+     elseif ( $Data["Axis"][$AxisID]["Identity"] == AXIS_Y )
+      {
+       $X1 = $this->pChartObject->GraphAreaX1 + $Data["Axis"][$AxisID]["Margin"];
+       $X2 = $this->pChartObject->GraphAreaX2 - $Data["Axis"][$AxisID]["Margin"];
+       $Y1 = $this->getPosArray($Value1,$AxisID);
+       $Y2 = $this->getPosArray($Value2,$AxisID);
+
+       if ( $Y1 >= $this->pChartObject->GraphAreaY2 ) { $Y1 = $this->pChartObject->GraphAreaY2-$Data["Axis"][$AxisID]["Margin"]; }
+       if ( $Y2 <= $this->pChartObject->GraphAreaY1 ) { $Y2 = $this->pChartObject->GraphAreaY1+$Data["Axis"][$AxisID]["Margin"]; }
+
+       $this->pChartObject->drawFilledRectangle($X1,$Y1,$X2,$Y2,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha));
+
+       if ( $Border )
+        {
+         $this->pChartObject->drawLine($X1,$Y1,$X2,$Y1,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+         $this->pChartObject->drawLine($X1,$Y2,$X2,$Y2,array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha,"Ticks"=>$BorderTicks));
+        }
+
+       if ( $AreaName != NULL )
+        {
+         $XPos = ($X2-$X1)/2 + $X1;
+         $YPos = ($Y2-$Y1)/2 + $Y1;
+
+         $this->pChartObject->Shadow = $RestoreShadow;
+         $this->pChartObject->drawText($YPos,$XPos,$AreaName,array("R"=>$NameR,"G"=>$NameG,"B"=>$NameB,"Alpha"=>$NameAlpha,"Angle"=>0,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
+         if ( $DisableShadowOnArea ) { $this->Shadow = FALSE; }
+        }
+
+       $this->pChartObject->Shadow = $RestoreShadow;
+       return(array("Y1"=>$Y1,"Y2"=>$Y2));
+      }
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSplit.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSplit.class.php
new file mode 100644
index 0000000..248ffea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSplit.class.php
@@ -0,0 +1,131 @@
+<?php
+ /*
+     pSplit - class to draw spline splitted charts
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("TEXT_POS_TOP"		, 690001);
+ define("TEXT_POS_RIGHT"	, 690002);
+
+ /* pSplit class definition */
+ class pSplit
+  {
+   var $pChartObject;
+
+   /* Class creator */
+   function pSplit()
+    { }
+
+   /* Create the encoded string */
+   function drawSplitPath($Object,$Values,$Format="")
+    {
+     $this->pChartObject = $Object;
+
+     $Spacing		= isset($Format["Spacing"]) ? $Format["Spacing"] : 20;
+     $TextPadding	= isset($Format["TextPadding"]) ? $Format["TextPadding"] : 2;
+     $TextPos		= isset($Format["TextPos"]) ? $Format["TextPos"] : TEXT_POS_TOP;
+     $Surrounding       = isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+     $Force		= isset($Format["Force"]) ? $Format["Force"] : 70;
+     $Segments		= isset($Format["Segments"]) ? $Format["Segments"] : 15;
+     $FontSize		= $Object->FontSize;
+     $X1		= $Object->GraphAreaX1;
+     $Y1		= $Object->GraphAreaY1;
+     $X2		= $Object->GraphAreaX2;
+     $Y2		= $Object->GraphAreaY2;
+
+     /* Data Processing */
+     $Data    = $Values->getData();
+     $Palette = $Values->getPalette();
+
+     $LabelSerie = $Data["Abscissa"];
+     $DataSerie  = "";
+
+     foreach($Data["Series"] as $SerieName => $Value)
+      { if ( $SerieName != $LabelSerie && $DataSerie == "" ) { $DataSerie = $SerieName; } }
+
+     $DataSerieSum   = array_sum($Data["Series"][$DataSerie]["Data"]);
+     $DataSerieCount = count($Data["Series"][$DataSerie]["Data"]);
+
+     /* Scale Processing */
+     if ( $TextPos == TEXT_POS_RIGHT )
+      $YScale     = (($Y2-$Y1) - (($DataSerieCount+1)*$Spacing)) / $DataSerieSum;
+     else
+      $YScale     = (($Y2-$Y1) - ($DataSerieCount*$Spacing)) / $DataSerieSum;
+     $LeftHeight = $DataSerieSum * $YScale;
+
+     /* Re-compute graph width depending of the text mode choosen */
+     if ( $TextPos == TEXT_POS_RIGHT )
+      {
+       $MaxWidth = 0;
+       foreach($Data["Series"][$LabelSerie]["Data"] as $Key => $Label)
+        {
+         $Boundardies = $Object->getTextBox(0,0,$Object->FontName,$Object->FontSize,0,$Label);
+         if ( $Boundardies[1]["X"] > $MaxWidth ) { $MaxWidth = $Boundardies[1]["X"] + $TextPadding*2; }
+        }
+       $X2 = $X2 - $MaxWidth;
+      }
+
+     /* Drawing */
+     $LeftY    = ((($Y2-$Y1) / 2) + $Y1) - ($LeftHeight/2);
+     $RightY   = $Y1;
+     $VectorX  = (($X2-$X1) / 2);
+
+     foreach($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+      {
+       if ( isset($Data["Series"][$LabelSerie]["Data"][$Key]) )
+        $Label = $Data["Series"][$LabelSerie]["Data"][$Key];
+       else
+        $Label = "-";
+
+       $LeftY1 = $LeftY;
+       $LeftY2 = $LeftY + $Value * $YScale;
+
+       $RightY1 = $RightY + $Spacing;
+       $RightY2 = $RightY + $Spacing + $Value * $YScale;;
+
+       $Settings = array("R"=>$Palette[$Key]["R"],"G"=>$Palette[$Key]["G"],"B"=>$Palette[$Key]["B"],"Alpha"=>$Palette[$Key]["Alpha"],"NoDraw"=>TRUE,"Segments"=>$Segments,"Surrounding"=>$Surrounding);
+
+       $PolyGon = "";
+
+       $Angle    = $Object->getAngle($X2,$RightY1,$X1,$LeftY1);
+       $VectorX1 = cos(deg2rad($Angle+90)) * $Force + ($X2-$X1)/2 + $X1;
+       $VectorY1 = sin(deg2rad($Angle+90)) * $Force + ($RightY1-$LeftY1)/2 + $LeftY1;
+       $VectorX2 = cos(deg2rad($Angle-90)) * $Force + ($X2-$X1)/2 + $X1;
+       $VectorY2 = sin(deg2rad($Angle-90)) * $Force + ($RightY1-$LeftY1)/2 + $LeftY1;
+
+       $Points = $Object->drawBezier($X1,$LeftY1,$X2,$RightY1,$VectorX1,$VectorY1,$VectorX2,$VectorY2,$Settings);
+       foreach($Points as $Key => $Pos) { $PolyGon[] = $Pos["X"]; $PolyGon[] = $Pos["Y"]; }
+
+
+       $Angle    = $Object->getAngle($X2,$RightY2,$X1,$LeftY2);
+       $VectorX1 = cos(deg2rad($Angle+90)) * $Force + ($X2-$X1)/2 +$X1;
+       $VectorY1 = sin(deg2rad($Angle+90)) * $Force + ($RightY2-$LeftY2)/2 + $LeftY2;
+       $VectorX2 = cos(deg2rad($Angle-90)) * $Force + ($X2-$X1)/2 +$X1;
+       $VectorY2 = sin(deg2rad($Angle-90)) * $Force + ($RightY2-$LeftY2)/2 + $LeftY2;
+
+       $Points = $Object->drawBezier($X1,$LeftY2,$X2,$RightY2,$VectorX1,$VectorY1,$VectorX2,$VectorY2,$Settings);
+       $Points = array_reverse($Points);
+       foreach($Points as $Key => $Pos) { $PolyGon[] = $Pos["X"]; $PolyGon[] = $Pos["Y"]; }
+
+       $Object->drawPolygon($PolyGon,$Settings);
+
+       if ( $TextPos == TEXT_POS_RIGHT )
+        $Object->drawText($X2+$TextPadding,($RightY2-$RightY1)/2+$RightY1,$Label,array("Align"=>TEXT_ALIGN_MIDDLELEFT));
+       else
+        $Object->drawText($X2,$RightY1-$TextPadding,$Label,array("Align"=>TEXT_ALIGN_BOTTOMRIGHT));
+
+       $LeftY  = $LeftY2;
+       $RightY = $RightY2;
+      }
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSpring.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSpring.class.php
new file mode 100644
index 0000000..30ea1a6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSpring.class.php
@@ -0,0 +1,868 @@
+<?php
+ /*
+     pSpring - class to draw spring graphs
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("NODE_TYPE_FREE"	, 690001);
+ define("NODE_TYPE_CENTRAL"	, 690002);
+
+ define("NODE_SHAPE_CIRCLE"	, 690011);
+ define("NODE_SHAPE_TRIANGLE"	, 690012);
+ define("NODE_SHAPE_SQUARE"	, 690013);
+
+ define("ALGORITHM_RANDOM"	, 690021);
+ define("ALGORITHM_WEIGHTED"	, 690022);
+ define("ALGORITHM_CIRCULAR"	, 690023);
+ define("ALGORITHM_CENTRAL"	, 690024);
+
+ define("LABEL_CLASSIC"		, 690031);
+ define("LABEL_LIGHT"		, 690032);
+
+ /* pSpring class definition */
+ class pSpring
+  {
+   var $History;
+   var $pChartObject;
+   var $Data;
+   var $Links;
+   var $X1;
+   var $Y1;
+   var $X2;
+   var $Y2;
+   var $AutoComputeFreeZone;
+   var $Labels;
+
+   /* Class creator */
+   function pSpring()
+    {
+     /* Initialise data arrays */
+     $this->Data = "";
+     $this->Links = "";
+
+     /* Set nodes defaults */
+     $this->Default["R"]		= 255;
+     $this->Default["G"]		= 255;
+     $this->Default["B"]		= 255;
+     $this->Default["Alpha"]		= 100;
+     $this->Default["BorderR"]		= 0;
+     $this->Default["BorderG"]		= 0;
+     $this->Default["BorderB"]		= 0;
+     $this->Default["BorderAlpha"]	= 100;
+     $this->Default["Surrounding"]	= NULL;
+     $this->Default["BackgroundR"]	= 255;
+     $this->Default["BackgroundG"]	= 255;
+     $this->Default["BackgroundB"]	= 255;
+     $this->Default["BackgroundAlpha"]	= 0;
+     $this->Default["Force"]		= 1;
+     $this->Default["NodeType"]		= NODE_TYPE_FREE;
+     $this->Default["Size"]		= 5;
+     $this->Default["Shape"]		= NODE_SHAPE_CIRCLE;
+     $this->Default["FreeZone"]		= 40;
+     $this->Default["LinkR"]		= 0;
+     $this->Default["LinkG"]		= 0;
+     $this->Default["LinkB"]		= 0;
+     $this->Default["LinkAlpha"]	= 0;
+
+     $this->Labels["Type"]		= LABEL_CLASSIC;
+     $this->Labels["R"]			= 0;
+     $this->Labels["G"]			= 0;
+     $this->Labels["B"]			= 0;
+     $this->Labels["Alpha"]		= 100;
+
+     $this->AutoComputeFreeZone         = FALSE;
+    }
+
+   /* Set default links options */
+   function setLinkDefaults($Settings="")
+    {
+     if ( isset($Settings["R"]) )     { $this->Default["LinkR"] = $Settings["R"]; }
+     if ( isset($Settings["G"]) )     { $this->Default["LinkG"] = $Settings["G"]; }
+     if ( isset($Settings["B"]) )     { $this->Default["LinkB"] = $Settings["B"]; }
+     if ( isset($Settings["Alpha"]) ) { $this->Default["LinkAlpha"] = $Settings["Alpha"]; }
+    }
+
+   /* Set default links options */
+   function setLabelsSettings($Settings="")
+    {
+     if ( isset($Settings["Type"]) )  { $this->Labels["Type"] = $Settings["Type"]; }
+     if ( isset($Settings["R"]) )     { $this->Labels["R"] = $Settings["R"]; }
+     if ( isset($Settings["G"]) )     { $this->Labels["G"] = $Settings["G"]; }
+     if ( isset($Settings["B"]) )     { $this->Labels["B"] = $Settings["B"]; }
+     if ( isset($Settings["Alpha"]) ) { $this->Labels["Alpha"] = $Settings["Alpha"]; }
+    }
+
+   /* Auto compute the FreeZone size based on the number of connections */
+   function autoFreeZone()
+    {
+     /* Check connections reciprocity */
+     foreach($this->Data as $Key => $Settings)
+      {
+       if ( isset($Settings["Connections"]) )
+        { $this->Data[$Key]["FreeZone"] = count($Settings["Connections"])*10 + 20; }
+       else
+        { $this->Data[$Key]["FreeZone"] = 20; }
+      }
+
+    }
+
+   /* Set link properties */
+   function linkProperties($FromNode,$ToNode,$Settings)
+    {
+     if ( !isset($this->Data[$FromNode]) ) { return(0); }
+     if ( !isset($this->Data[$ToNode]) )   { return(0); }
+
+     $R			= isset($Settings["R"]) ? $Settings["R"] : 0;
+     $G			= isset($Settings["G"]) ? $Settings["G"] : 0;
+     $B			= isset($Settings["B"]) ? $Settings["B"] : 0;
+     $Alpha		= isset($Settings["Alpha"]) ? $Settings["Alpha"] : 100;
+     $Name		= isset($Settings["Name"]) ? $Settings["Name"] : NULL;
+     $Ticks		= isset($Settings["Ticks"]) ? $Settings["Ticks"] : NULL;
+
+     $this->Links[$FromNode][$ToNode]["R"] = $R;         $this->Links[$ToNode][$FromNode]["R"] = $R;
+     $this->Links[$FromNode][$ToNode]["G"] = $G;         $this->Links[$ToNode][$FromNode]["G"] = $G;
+     $this->Links[$FromNode][$ToNode]["B"] = $B;         $this->Links[$ToNode][$FromNode]["B"] = $B;
+     $this->Links[$FromNode][$ToNode]["Alpha"] = $Alpha; $this->Links[$ToNode][$FromNode]["Alpha"] = $Alpha;
+     $this->Links[$FromNode][$ToNode]["Name"] = $Name;   $this->Links[$ToNode][$FromNode]["Name"] = $Name;
+     $this->Links[$FromNode][$ToNode]["Ticks"] = $Ticks; $this->Links[$ToNode][$FromNode]["Ticks"] = $Ticks;
+    }
+
+   function setNodeDefaults($Settings="")
+    {
+     if ( isset($Settings["R"]) ) { $this->Default["R"]					= $Settings["R"]; }
+     if ( isset($Settings["G"]) ) { $this->Default["G"]					= $Settings["G"]; }
+     if ( isset($Settings["B"]) ) { $this->Default["B"]					= $Settings["B"]; }
+     if ( isset($Settings["Alpha"]) ) { $this->Default["Alpha"]				= $Settings["Alpha"]; }
+     if ( isset($Settings["BorderR"]) ) { $this->Default["BorderR"]			= $Settings["BorderR"]; }
+     if ( isset($Settings["BorderG"]) ) { $this->Default["BorderG"]			= $Settings["BorderG"]; }
+     if ( isset($Settings["BorderB"]) ) { $this->Default["BorderB"]			= $Settings["BorderB"]; }
+     if ( isset($Settings["BorderAlpha"]) ) { $this->Default["BorderAlpha"]		= $Settings["BorderAlpha"]; }
+     if ( isset($Settings["Surrounding"]) ) { $this->Default["Surrounding"]		= $Settings["Surrounding"]; }
+     if ( isset($Settings["BackgroundR"]) ) { $this->Default["BackgroundR"]		= $Settings["BackgroundR"]; }
+     if ( isset($Settings["BackgroundG"]) ) { $this->Default["BackgroundG"]		= $Settings["BackgroundG"]; }
+     if ( isset($Settings["BackgroundB"]) ) { $this->Default["BackgroundB"]		= $Settings["BackgroundB"]; }
+     if ( isset($Settings["BackgroundAlpha"]) ) { $this->Default["BackgroundAlpha"]	= $Settings["BackgroundAlpha"]; }
+     if ( isset($Settings["NodeType"]) ) { $this->Default["NodeType"]			= $Settings["NodeType"]; }
+     if ( isset($Settings["Size"]) ) { $this->Default["Size"]				= $Settings["Size"]; }
+     if ( isset($Settings["Shape"]) ) { $this->Default["Shape"]				= $Settings["Shape"]; }
+     if ( isset($Settings["FreeZone"]) ) { $this->Default["FreeZone"]			= $Settings["FreeZone"]; }
+    }
+
+   /* Add a node */
+   function addNode($NodeID,$Settings="")
+    {
+     /* if the node already exists, ignore */
+     if (isset($this->Data[$NodeID])) { return(0); }
+
+     $Name		= isset($Settings["Name"]) ? $Settings["Name"] : "Node ".$NodeID;
+     $Connections	= isset($Settings["Connections"]) ? $Settings["Connections"] : NULL;
+
+     $R			= isset($Settings["R"]) ? $Settings["R"] : $this->Default["R"];
+     $G			= isset($Settings["G"]) ? $Settings["G"] : $this->Default["G"];
+     $B			= isset($Settings["B"]) ? $Settings["B"] : $this->Default["B"];
+     $Alpha		= isset($Settings["Alpha"]) ? $Settings["Alpha"] : $this->Default["Alpha"];
+     $BorderR		= isset($Settings["BorderR"]) ? $Settings["BorderR"] : $this->Default["BorderR"];
+     $BorderG		= isset($Settings["BorderG"]) ? $Settings["BorderG"] : $this->Default["BorderG"];
+     $BorderB		= isset($Settings["BorderB"]) ? $Settings["BorderB"] : $this->Default["BorderB"];
+     $BorderAlpha	= isset($Settings["BorderAlpha"]) ? $Settings["BorderAlpha"] : $this->Default["BorderAlpha"];
+     $Surrounding	= isset($Settings["Surrounding"]) ? $Settings["Surrounding"] : $this->Default["Surrounding"];
+     $BackgroundR	= isset($Settings["BackgroundR"]) ? $Settings["BackgroundR"] : $this->Default["BackgroundR"];
+     $BackgroundG	= isset($Settings["BackgroundG"]) ? $Settings["BackgroundG"] : $this->Default["BackgroundG"];
+     $BackgroundB	= isset($Settings["BackgroundB"]) ? $Settings["BackgroundB"] : $this->Default["BackgroundB"];
+     $BackgroundAlpha	= isset($Settings["BackgroundAlpha"]) ? $Settings["BackgroundAlpha"] : $this->Default["BackgroundAlpha"];
+     $Force		= isset($Settings["Force"]) ? $Settings["Force"] :  $this->Default["Force"];
+     $NodeType		= isset($Settings["NodeType"]) ? $Settings["NodeType"] : $this->Default["NodeType"];
+     $Size		= isset($Settings["Size"]) ? $Settings["Size"] : $this->Default["Size"];
+     $Shape		= isset($Settings["Shape"]) ? $Settings["Shape"] : $this->Default["Shape"];
+     $FreeZone		= isset($Settings["FreeZone"]) ? $Settings["FreeZone"] : $this->Default["FreeZone"];
+
+     if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
+
+     $this->Data[$NodeID]["R"] = $R; $this->Data[$NodeID]["G"] = $G; $this->Data[$NodeID]["B"] = $B; $this->Data[$NodeID]["Alpha"] = $Alpha;
+     $this->Data[$NodeID]["BorderR"] = $BorderR; $this->Data[$NodeID]["BorderG"] = $BorderG; $this->Data[$NodeID]["BorderB"] = $BorderB; $this->Data[$NodeID]["BorderAlpha"] = $BorderAlpha;
+     $this->Data[$NodeID]["BackgroundR"]	= $BackgroundR; $this->Data[$NodeID]["BackgroundG"] = $BackgroundG; $this->Data[$NodeID]["BackgroundB"] = $BackgroundB; $this->Data[$NodeID]["BackgroundAlpha"] = $BackgroundAlpha;
+     $this->Data[$NodeID]["Name"]		= $Name;
+     $this->Data[$NodeID]["Force"]		= $Force;
+     $this->Data[$NodeID]["Type"]		= $NodeType;
+     $this->Data[$NodeID]["Size"]		= $Size;
+     $this->Data[$NodeID]["Shape"]		= $Shape;
+     $this->Data[$NodeID]["FreeZone"]		= $FreeZone;
+     if ( $Connections != NULL )
+      {
+       if ( is_array($Connections ) )
+        {
+         foreach($Connections as $Key => $Value)
+          $this->Data[$NodeID]["Connections"][] = $Value;
+        }
+       else
+        $this->Data[$NodeID]["Connections"][] = $Connections;
+      }
+    }
+
+   /* Set color attribute for a list of nodes */
+   function setNodesColor($Nodes,$Settings="")
+    {
+     if ( is_array($Nodes) )
+      {
+       foreach ($Nodes as $Key => $NodeID)
+        {
+         if (isset($this->Data[$NodeID]) )
+          {
+           if ( isset($Settings["R"]) ) { $this->Data[$NodeID]["R"] = $Settings["R"]; }
+           if ( isset($Settings["G"]) ) { $this->Data[$NodeID]["G"] = $Settings["G"]; }
+           if ( isset($Settings["B"]) ) { $this->Data[$NodeID]["B"] = $Settings["B"]; }
+           if ( isset($Settings["Alpha"]) ) { $this->Data[$NodeID]["Alpha"] = $Settings["Alpha"]; }
+           if ( isset($Settings["BorderR"]) ) { $this->Data[$NodeID]["BorderR"] = $Settings["BorderR"]; }
+           if ( isset($Settings["BorderG"]) ) { $this->Data[$NodeID]["BorderG"] = $Settings["BorderG"]; }
+           if ( isset($Settings["BorderB"]) ) { $this->Data[$NodeID]["BorderB"] = $Settings["BorderB"]; }
+           if ( isset($Settings["BorderAlpha"]) ) { $this->Data[$NodeID]["BorderAlpha"] = $Settings["BorderAlpha"]; }
+           if ( isset($Settings["Surrounding"]) ) { $this->Data[$NodeID]["BorderR"] = $this->Data[$NodeID]["R"] + $Settings["Surrounding"]; $this->Data[$NodeID]["BorderG"] = $this->Data[$NodeID]["G"] + $Settings["Surrounding"]; $this->Data[$NodeID]["BorderB"] = $this->Data[$NodeID]["B"] + $Settings["Surrounding"]; }
+          }
+        }
+      }
+     else
+      {
+       if ( isset($Settings["R"]) ) { $this->Data[$Nodes]["R"] = $Settings["R"]; }
+       if ( isset($Settings["G"]) ) { $this->Data[$Nodes]["G"] = $Settings["G"]; }
+       if ( isset($Settings["B"]) ) { $this->Data[$Nodes]["B"] = $Settings["B"]; }
+       if ( isset($Settings["Alpha"]) ) { $this->Data[$Nodes]["Alpha"] = $Settings["Alpha"]; }
+       if ( isset($Settings["BorderR"]) ) { $this->Data[$Nodes]["BorderR"] = $Settings["BorderR"]; }
+       if ( isset($Settings["BorderG"]) ) { $this->Data[$Nodes]["BorderG"] = $Settings["BorderG"]; }
+       if ( isset($Settings["BorderB"]) ) { $this->Data[$Nodes]["BorderB"] = $Settings["BorderB"]; }
+       if ( isset($Settings["BorderAlpha"]) ) { $this->Data[$Nodes]["BorderAlpha"] = $Settings["BorderAlpha"]; }
+       if ( isset($Settings["Surrounding"]) ) { $this->Data[$Nodes]["BorderR"] = $this->Data[$NodeID]["R"] + $Settings["Surrounding"]; $this->Data[$NodeID]["BorderG"] = $this->Data[$NodeID]["G"] + $Settings["Surrounding"]; $this->Data[$NodeID]["BorderB"] = $this->Data[$NodeID]["B"] + $Settings["Surrounding"]; }
+      }
+    }
+
+   /* Returns all the nodes details */
+   function dumpNodes()
+    { return($this->Data); }
+
+   /* Check if a connection exists and create it if required */
+   function checkConnection($SourceID, $TargetID)
+    {
+     if ( isset($this->Data[$SourceID]["Connections"]) )
+      {
+       foreach ($this->Data[$SourceID]["Connections"] as $Key => $ConnectionID)
+        { if ( $TargetID == $ConnectionID ) { return(TRUE); } }
+      }
+     $this->Data[$SourceID]["Connections"][] = $TargetID;
+    }
+   /* Get the median linked nodes position */
+   function getMedianOffset($Key,$X,$Y)
+    {
+     $Cpt = 1;
+     if ( isset($this->Data[$Key]["Connections"]) )
+      {
+       foreach($this->Data[$Key]["Connections"] as $ID => $NodeID)
+        {
+         if ( isset($this->Data[$NodeID]["X"]) && isset($this->Data[$NodeID]["Y"]) )
+          {
+           $X = $X + $this->Data[$NodeID]["X"];
+           $Y = $Y + $this->Data[$NodeID]["Y"];
+           $Cpt++;
+          }
+        }
+      }
+     return(array("X"=>$X/$Cpt,"Y"=>$Y/$Cpt));
+    }
+
+   /* Return the ID of the attached partner with the biggest weight */
+   function getBiggestPartner($Key)
+    {
+     if ( !isset($this->Data[$Key]["Connections"]) ) { return(""); }
+
+     $MaxWeight = 0; $Result = "";
+     foreach($this->Data[$Key]["Connections"] as $Key => $PeerID)
+      {
+       if ( $this->Data[$PeerID]["Weight"] > $MaxWeight )
+        { $MaxWeight = $this->Data[$PeerID]["Weight"]; $Result = $PeerID; }
+      }
+     return($Result);
+    }
+
+   /* Do the initial node positions computing pass */
+   function firstPass($Algorithm)
+    {
+     $CenterX = ($this->X2 - $this->X1) / 2 + $this->X1;
+     $CenterY = ($this->Y2 - $this->Y1) / 2 + $this->Y1;
+
+     /* Check connections reciprocity */
+     foreach($this->Data as $Key => $Settings)
+      {
+       if ( isset($Settings["Connections"]) )
+        {
+         foreach($Settings["Connections"] as $ID => $ConnectionID)
+          $this->checkConnection($ConnectionID,$Key);
+        }
+      }
+
+     if ( $this->AutoComputeFreeZone ) { $this->autoFreeZone(); }
+
+     /* Get the max number of connections */
+     $MaxConnections = 0;
+     foreach($this->Data as $Key => $Settings)
+      { if ( isset($Settings["Connections"]) ) { if ( $MaxConnections < count($Settings["Connections"] ) ) { $MaxConnections = count($Settings["Connections"]); } } }
+
+     if ( $Algorithm == ALGORITHM_WEIGHTED )
+      {
+       foreach($this->Data as $Key => $Settings)
+        {
+         if ( $Settings["Type"] == NODE_TYPE_CENTRAL ) { $this->Data[$Key]["X"] = $CenterX; $this->Data[$Key]["Y"] = $CenterY; }
+         if ( $Settings["Type"] == NODE_TYPE_FREE )
+          {
+           if ( isset($Settings["Connections"]) )
+            { $Connections = count($Settings["Connections"]); }
+           else
+            { $Connections = 0; }
+
+           $Ring  = $MaxConnections - $Connections;
+           $Angle = rand(0,360);
+           
+           $this->Data[$Key]["X"] = cos(deg2rad($Angle)) * ($Ring*$this->RingSize) + $CenterX;
+           $this->Data[$Key]["Y"] = sin(deg2rad($Angle)) * ($Ring*$this->RingSize) + $CenterY;
+          }
+        }
+      }
+     elseif ( $Algorithm == ALGORITHM_CENTRAL )
+      {
+       /* Put a weight on each nodes */
+       foreach($this->Data as $Key => $Settings)
+        {
+         if ( isset($Settings["Connections"]) )
+          $this->Data[$Key]["Weight"] = count($Settings["Connections"]);
+         else
+          $this->Data[$Key]["Weight"] = 0;
+        }
+
+       $MaxConnections = $MaxConnections + 1;
+       for($i=$MaxConnections;$i>=0;$i--)
+        {
+         foreach($this->Data as $Key => $Settings)
+          {
+           if ( $Settings["Type"] == NODE_TYPE_CENTRAL ) { $this->Data[$Key]["X"] = $CenterX; $this->Data[$Key]["Y"] = $CenterY; }
+           if ( $Settings["Type"] == NODE_TYPE_FREE )
+            {
+             if ( isset($Settings["Connections"]) )
+              { $Connections = count($Settings["Connections"]); }
+             else
+              { $Connections = 0; }
+
+             if ( $Connections == $i )
+              {
+               $BiggestPartner = $this->getBiggestPartner($Key);
+               if ( $BiggestPartner != "" )
+                {
+                 $Ring          = $this->Data[$BiggestPartner]["FreeZone"];
+                 $Weight        = $this->Data[$BiggestPartner]["Weight"];
+                 $AngleDivision = 360 / $this->Data[$BiggestPartner]["Weight"];
+                 $Done          = FALSE; $Tries = 0;
+                 while (!$Done && $Tries <= $Weight*2)
+                  {
+                   $Tries++;
+                   $Angle = floor(rand(0,$Weight)*$AngleDivision);
+                   if ( !isset($this->Data[$BiggestPartner]["Angular"][$Angle]) || !isset($this->Data[$BiggestPartner]["Angular"]) )
+                    {
+                     $this->Data[$BiggestPartner]["Angular"][$Angle] = $Angle;
+                     $Done = TRUE; 
+                    }
+                  }
+                 if ( !$Done )
+                  { $Angle = rand(0,360); $this->Data[$BiggestPartner]["Angular"][$Angle] = $Angle; }
+
+                 $X = cos(deg2rad($Angle)) * ($Ring) + $this->Data[$BiggestPartner]["X"];
+                 $Y = sin(deg2rad($Angle)) * ($Ring) + $this->Data[$BiggestPartner]["Y"];
+
+                 $this->Data[$Key]["X"] = $X;
+                 $this->Data[$Key]["Y"] = $Y;
+                }
+              }
+            }
+          }
+        }
+      }
+     elseif ( $Algorithm == ALGORITHM_CIRCULAR )
+      {
+       $MaxConnections = $MaxConnections + 1;
+       for($i=$MaxConnections;$i>=0;$i--)
+        {
+         foreach($this->Data as $Key => $Settings)
+          {
+           if ( $Settings["Type"] == NODE_TYPE_CENTRAL ) { $this->Data[$Key]["X"] = $CenterX; $this->Data[$Key]["Y"] = $CenterY; }
+           if ( $Settings["Type"] == NODE_TYPE_FREE )
+            {
+             if ( isset($Settings["Connections"]) )
+              { $Connections = count($Settings["Connections"]); }
+             else
+              { $Connections = 0; }
+
+             if ( $Connections == $i )
+              {
+               $Ring  = $MaxConnections - $Connections;
+               $Angle = rand(0,360);
+
+               $X = cos(deg2rad($Angle)) * ($Ring*$this->RingSize) + $CenterX;
+               $Y = sin(deg2rad($Angle)) * ($Ring*$this->RingSize) + $CenterY;
+
+               $MedianOffset = $this->getMedianOffset($Key,$X,$Y);
+
+               $this->Data[$Key]["X"] = $MedianOffset["X"];
+               $this->Data[$Key]["Y"] = $MedianOffset["Y"];
+              }
+            }
+          }
+        }
+      }
+     elseif ( $Algorithm == ALGORITHM_RANDOM )
+      {
+       foreach($this->Data as $Key => $Settings)
+        {
+         if ( $Settings["Type"] == NODE_TYPE_FREE )
+          {
+           $this->Data[$Key]["X"] = $CenterX + rand(-20,20);
+           $this->Data[$Key]["Y"] = $CenterY + rand(-20,20);
+          }
+         if ( $Settings["Type"] == NODE_TYPE_CENTRAL ) { $this->Data[$Key]["X"] = $CenterX; $this->Data[$Key]["Y"] = $CenterY; }
+        }
+      }
+    }
+
+   /* Compute one pass */
+   function doPass()
+    {
+     /* Compute vectors */
+     foreach($this->Data as $Key => $Settings)
+      {
+       if ( $Settings["Type"] != NODE_TYPE_CENTRAL )
+        {
+         unset($this->Data[$Key]["Vectors"]);
+
+         $X1 = $Settings["X"];
+         $Y1 = $Settings["Y"];
+
+         /* Repulsion vectors */
+         foreach($this->Data as $Key2 => $Settings2)
+          {
+           if ( $Key != $Key2 )
+            {
+             $X2 = $this->Data[$Key2]["X"];
+             $Y2 = $this->Data[$Key2]["Y"];
+             $FreeZone = $this->Data[$Key2]["FreeZone"];
+
+             $Distance = $this->getDistance($X1,$Y1,$X2,$Y2);
+             $Angle    = $this->getAngle($X1,$Y1,$X2,$Y2) + 180;
+
+             /* Nodes too close, repulsion occurs */
+             if ( $Distance < $FreeZone )
+              {
+               $Force = log(pow(2,$FreeZone-$Distance));
+               if ( $Force > 1 )
+                { $this->Data[$Key]["Vectors"][] = array("Type"=>"R","Angle"=>$Angle % 360,"Force"=>$Force); }
+              }
+            }
+          }
+
+         /* Attraction vectors */
+         if ( isset($Settings["Connections"]) )
+          {
+           foreach($Settings["Connections"] as $ID => $NodeID)
+            {
+             if ( isset($this->Data[$NodeID]) )
+              {
+               $X2 = $this->Data[$NodeID]["X"];
+               $Y2 = $this->Data[$NodeID]["Y"];
+               $FreeZone = $this->Data[$Key2]["FreeZone"];
+
+               $Distance = $this->getDistance($X1,$Y1,$X2,$Y2);
+               $Angle    = $this->getAngle($X1,$Y1,$X2,$Y2);
+
+               if ( $Distance > $FreeZone )
+                $Force = log(($Distance-$FreeZone)+1);
+               else
+                { $Force = log(($FreeZone-$Distance)+1); ($Angle = $Angle + 180); }
+
+               if ( $Force > 1 )
+                $this->Data[$Key]["Vectors"][] = array("Type"=>"A","Angle"=>$Angle % 360,"Force"=>$Force);
+              }
+            }
+          }
+        }
+      }
+
+     /* Move the nodes accoding to the vectors */
+     foreach($this->Data as $Key => $Settings)
+      {
+       $X = $Settings["X"];
+       $Y = $Settings["Y"];
+
+       if ( isset($Settings["Vectors"]) && $Settings["Type"] != NODE_TYPE_CENTRAL )
+        {
+         foreach($Settings["Vectors"] as $ID => $Vector)
+          {
+           $Type  = $Vector["Type"];
+           $Force = $Vector["Force"];
+           $Angle = $Vector["Angle"];
+           $Factor = $Type == "A" ? $this->MagneticForceA : $this->MagneticForceR;
+
+           $X = cos(deg2rad($Angle)) * $Force * $Factor + $X;
+           $Y = sin(deg2rad($Angle)) * $Force * $Factor + $Y;
+          }
+        }
+
+       $this->Data[$Key]["X"] = $X;
+       $this->Data[$Key]["Y"] = $Y;
+      }
+    }
+
+   function lastPass()
+    {
+     /* Put everything inside the graph area */
+     foreach($this->Data as $Key => $Settings)
+      {
+       $X = $Settings["X"];
+       $Y = $Settings["Y"];
+
+       if ( $X < $this->X1 ) { $X = $this->X1; }
+       if ( $X > $this->X2 ) { $X = $this->X2; }
+       if ( $Y < $this->Y1 ) { $Y = $this->Y1; }
+       if ( $Y > $this->Y2 ) { $Y = $this->Y2; }
+
+       $this->Data[$Key]["X"] = $X;
+       $this->Data[$Key]["Y"] = $Y;
+      }
+
+     /* Dump all links */
+     $Links = "";
+     foreach($this->Data as $Key => $Settings)
+      {
+       $X1 = $Settings["X"];
+       $Y1 = $Settings["Y"];
+
+       if ( isset($Settings["Connections"]) )
+        {
+         foreach ($Settings["Connections"] as $ID => $NodeID)
+          {
+           if ( isset($this->Data[$NodeID]) )
+            {
+             $X2 = $this->Data[$NodeID]["X"];
+             $Y2 = $this->Data[$NodeID]["Y"];
+
+             $Links[] = array("X1"=>$X1,"Y1"=>$Y1,"X2"=>$X2,"Y2"=>$Y2,"Source"=>$Settings["Name"],"Destination"=>$this->Data[$NodeID]["Name"]);
+            }
+          }
+        }
+      }
+
+     /* Check collisions */
+     $Conflicts = 0;
+     foreach($this->Data as $Key => $Settings)
+      {
+       $X1 = $Settings["X"];
+       $Y1 = $Settings["Y"];
+
+       if ( isset($Settings["Connections"]) )
+        {
+         foreach ($Settings["Connections"] as $ID => $NodeID)
+          {
+           if ( isset($this->Data[$NodeID]) )
+            {
+             $X2 = $this->Data[$NodeID]["X"];
+             $Y2 = $this->Data[$NodeID]["Y"];
+
+             foreach($Links as $IDLinks => $Link)
+              {
+               $X3 = $Link["X1"]; $Y3 = $Link["Y1"]; $X4 = $Link["X2"]; $Y4 = $Link["Y2"];
+
+               if ( !($X1 == $X3 && $X2 == $X4 && $Y1 == $Y3 && $Y2 == $Y4 ) )
+                {
+                 if ( $this->intersect($X1,$Y1,$X2,$Y2,$X3,$Y3,$X4,$Y4) )
+                  {
+                   if ( $Link["Source"] != $Settings["Name"] && $Link["Source"] != $this->Data[$NodeID]["Name"] && $Link["Destination"] != $Settings["Name"] && $Link["Destination"] != $this->Data[$NodeID]["Name"] )
+                    { $Conflicts++; }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+     return($Conflicts/2);
+    }
+
+   /* Center the graph */
+   function center()
+    {
+     /* Determine the real center */
+     $TargetCenterX = ($this->X2 - $this->X1) / 2 + $this->X1;
+     $TargetCenterY = ($this->Y2 - $this->Y1) / 2 + $this->Y1;
+
+     /* Get current boundaries */
+     $XMin = $this->X2; $XMax = $this->X1;
+     $YMin = $this->Y2; $YMax = $this->Y1;
+     foreach($this->Data as $Key => $Settings)
+      {
+       $X = $Settings["X"];
+       $Y = $Settings["Y"];
+
+       if ( $X < $XMin) { $XMin = $X; }
+       if ( $X > $XMax) { $XMax = $X; }
+       if ( $Y < $YMin) { $YMin = $Y; }
+       if ( $Y > $YMax) { $YMax = $Y; }
+      }
+     $CurrentCenterX = ($XMax - $XMin) / 2 + $XMin;
+     $CurrentCenterY = ($YMax - $YMin) / 2 + $YMin;
+
+     /* Compute the offset to apply */
+     $XOffset = $TargetCenterX - $CurrentCenterX;
+     $YOffset = $TargetCenterY - $CurrentCenterY;
+
+     /* Correct the points position */
+     foreach($this->Data as $Key => $Settings)
+      {
+       $this->Data[$Key]["X"] = $Settings["X"] + $XOffset;
+       $this->Data[$Key]["Y"] = $Settings["Y"] + $YOffset;
+      }
+    }
+
+   /* Create the encoded string */
+   function drawSpring($Object,$Settings="")
+    {
+     $this->pChartObject = $Object;
+
+     $Pass			= isset($Settings["Pass"]) ? $Settings["Pass"] : 50;
+     $Retries			= isset($Settings["Retry"]) ? $Settings["Retry"] : 10;
+     $this->MagneticForceA	= isset($Settings["MagneticForceA"]) ? $Settings["MagneticForceA"] : 1.5;
+     $this->MagneticForceR	= isset($Settings["MagneticForceR"]) ? $Settings["MagneticForceR"] : 2;
+     $this->RingSize		= isset($Settings["RingSize"]) ? $Settings["RingSize"] : 40;
+     $DrawVectors		= isset($Settings["DrawVectors"]) ? $Settings["DrawVectors"] : FALSE;
+     $DrawQuietZone		= isset($Settings["DrawQuietZone"]) ? $Settings["DrawQuietZone"] : FALSE;
+     $CenterGraph		= isset($Settings["CenterGraph"]) ? $Settings["CenterGraph"] : TRUE;
+     $TextPadding		= isset($Settings["TextPadding"]) ? $Settings["TextPadding"] : 4;
+     $Algorithm			= isset($Settings["Algorithm"]) ? $Settings["Algorithm"] : ALGORITHM_WEIGHTED;
+
+     $FontSize		= $Object->FontSize;
+     $this->X1		= $Object->GraphAreaX1;
+     $this->Y1		= $Object->GraphAreaY1;
+     $this->X2		= $Object->GraphAreaX2;
+     $this->Y2		= $Object->GraphAreaY2;
+
+     $Conflicts = 1; $Jobs = 0; $this->History["MinimumConflicts"] = -1;
+     while ($Conflicts != 0 && $Jobs < $Retries )
+      {
+       $Jobs++;
+
+       /* Compute the initial settings */
+       $this->firstPass($Algorithm);
+
+       /* Apply the vectors */
+       if ( $Pass > 0 ) 
+        {
+         for ($i=0; $i<=$Pass; $i++) { $this->doPass(); }
+        }
+
+       $Conflicts = $this->lastPass();
+       if ( $this->History["MinimumConflicts"] == -1 || $Conflicts < $this->History["MinimumConflicts"] )
+        { $this->History["MinimumConflicts"] = $Conflicts; $this->History["Result"] = $this->Data; }
+      }
+
+     $Conflicts  = $this->History["MinimumConflicts"];
+     $this->Data = $this->History["Result"];
+
+     if ( $CenterGraph ) { $this->center(); }
+
+     /* Draw the connections */
+     $Drawn = "";
+     foreach($this->Data as $Key => $Settings)
+      {
+       $X	= $Settings["X"];
+       $Y	= $Settings["Y"];
+
+       if ( isset($Settings["Connections"]) )
+        {
+         foreach ($Settings["Connections"] as $ID => $NodeID)
+          {
+           if ( !isset($Drawn[$Key]) )    { $Drawn[$Key] = ""; }
+           if ( !isset($Drawn[$NodeID]) ) { $Drawn[$NodeID] = ""; }
+
+           if ( isset($this->Data[$NodeID]) && !isset($Drawn[$Key][$NodeID]) && !isset($Drawn[$NodeID][$Key]) )
+            {
+             $Color = array("R"=>$this->Default["LinkR"],"G"=>$this->Default["LinkG"],"B"=>$this->Default["LinkB"],"Alpha"=>$this->Default["Alpha"]);
+
+             if ( $this->Links != "" )
+              {
+               if ( isset($this->Links[$Key][$NodeID]["R"]) )
+                { $Color = array("R"=>$this->Links[$Key][$NodeID]["R"],"G"=>$this->Links[$Key][$NodeID]["G"],"B"=>$this->Links[$Key][$NodeID]["B"],"Alpha"=>$this->Links[$Key][$NodeID]["Alpha"]); }
+
+               if ( isset($this->Links[$Key][$NodeID]["Ticks"]) )
+                 { $Color["Ticks"] = $this->Links[$Key][$NodeID]["Ticks"]; }
+              }
+
+             $X2 = $this->Data[$NodeID]["X"];
+             $Y2 = $this->Data[$NodeID]["Y"];
+             $this->pChartObject->drawLine($X,$Y,$X2,$Y2,$Color);
+             $Drawn[$Key][$NodeID] = TRUE;
+
+             if ( isset($this->Links) && $this->Links != "" )
+              {
+               if ( isset($this->Links[$Key][$NodeID]["Name"]) || isset($this->Links[$NodeID][$Key]["Name"]) )
+                {
+                 $Name  = isset($this->Links[$Key][$NodeID]["Name"]) ? $this->Links[$Key][$NodeID]["Name"] : $this->Links[$NodeID][$Key]["Name"];
+                 $TxtX  = ($X2 - $X)/2 + $X;
+                 $TxtY  = ($Y2 - $Y)/2 + $Y;
+
+                 if ( $X <= $X2 )
+                  $Angle = (360-$this->getAngle($X,$Y,$X2,$Y2)) % 360;
+                 else
+                  $Angle = (360-$this->getAngle($X2,$Y2,$X,$Y)) % 360;
+
+                 $Settings          = $Color;
+                 $Settings["Angle"] = $Angle;
+                 $Settings["Align"] = TEXT_ALIGN_BOTTOMMIDDLE;
+                 $this->pChartObject->drawText($TxtX,$TxtY,$Name,$Settings);
+                }
+              }
+            }
+          }
+        }
+      }
+
+     /* Draw the quiet zones */
+     if ( $DrawQuietZone )
+      {
+       foreach($this->Data as $Key => $Settings)
+        {
+         $X	 = $Settings["X"];
+         $Y	 = $Settings["Y"];
+         $FreeZone = $Settings["FreeZone"];
+
+         $this->pChartObject->drawFilledCircle($X,$Y,$FreeZone,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>2));
+        }
+      }
+
+
+     /* Draw the nodes */
+     foreach($this->Data as $Key => $Settings)
+      {
+       $X	 = $Settings["X"];
+       $Y	 = $Settings["Y"];
+       $Name	 = $Settings["Name"];
+       $FreeZone = $Settings["FreeZone"];
+       $Shape    = $Settings["Shape"];
+       $Size     = $Settings["Size"];
+
+       $Color	 = array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"],"Alpha"=>$Settings["Alpha"],"BorderR"=>$Settings["BorderR"],"BorderG"=>$Settings["BorderG"],"BorderB"=>$Settings["BorderB"],"BorderApha"=>$Settings["BorderAlpha"]);
+
+       if ( $Shape == NODE_SHAPE_CIRCLE )
+        {
+         $this->pChartObject->drawFilledCircle($X,$Y,$Size,$Color);
+        }
+       elseif ( $Shape == NODE_SHAPE_TRIANGLE )
+        {
+         $Points = "";
+         $Points[] = cos(deg2rad(270)) * $Size + $X; $Points[] = sin(deg2rad(270)) * $Size + $Y;
+         $Points[] = cos(deg2rad(45)) * $Size + $X;  $Points[] = sin(deg2rad(45)) * $Size + $Y;
+         $Points[] = cos(deg2rad(135)) * $Size + $X; $Points[] = sin(deg2rad(135)) * $Size + $Y;
+         $this->pChartObject->drawPolygon($Points,$Color);
+        }
+       elseif ( $Shape == NODE_SHAPE_SQUARE )
+        {
+         $Offset = $Size/2; $Size = $Size / 2;
+         $this->pChartObject->drawFilledRectangle($X-$Offset,$Y-$Offset,$X+$Offset,$Y+$Offset,$Color);
+        }
+
+       if ( $Name != "" )
+        {
+         $LabelOptions = array("R"=>$this->Labels["R"],"G"=>$this->Labels["G"],"B"=>$this->Labels["B"],"Alpha"=>$this->Labels["Alpha"]);
+
+         if ( $this->Labels["Type"] == LABEL_LIGHT )
+          {
+           $LabelOptions["Align"] = TEXT_ALIGN_BOTTOMLEFT;
+           $this->pChartObject->drawText($X,$Y,$Name,$LabelOptions);
+          }
+         elseif ( $this->Labels["Type"] == LABEL_CLASSIC )
+          {
+           $LabelOptions["Align"]         = TEXT_ALIGN_TOPMIDDLE;
+           $LabelOptions["DrawBox"]       = TRUE;
+           $LabelOptions["BoxAlpha"]      = 50;
+           $LabelOptions["BorderOffset"]  = 4;
+           $LabelOptions["RoundedRadius"] = 3;
+           $LabelOptions["BoxRounded"]    = TRUE;
+           $LabelOptions["NoShadow"]      = TRUE;
+
+           $this->pChartObject->drawText($X,$Y+$Size+$TextPadding,$Name,$LabelOptions);
+          }
+        }
+      }
+
+     /* Draw the vectors */
+     if ( $DrawVectors )
+      {
+       foreach($this->Data as $Key => $Settings)
+        {
+         $X1 = $Settings["X"];
+         $Y1 = $Settings["Y"];
+
+         if ( isset($Settings["Vectors"]) && $Settings["Type"] != NODE_TYPE_CENTRAL )
+          {
+           foreach($Settings["Vectors"] as $ID => $Vector)
+            {
+             $Type  = $Vector["Type"];
+             $Force = $Vector["Force"];
+             $Angle = $Vector["Angle"];
+             $Factor = $Type == "A" ? $this->MagneticForceA : $this->MagneticForceR;
+             $Color  = $Type == "A" ? array("FillR"=>255,"FillG"=>0,"FillB"=>0) : array("FillR"=>0,"FillG"=>255,"FillB"=>0);
+
+             $X2 = cos(deg2rad($Angle)) * $Force * $Factor + $X1;
+             $Y2 = sin(deg2rad($Angle)) * $Force * $Factor + $Y1;
+
+             $this->pChartObject->drawArrow($X1,$Y1,$X2,$Y2,$Color);
+            }
+          }
+        }
+      }
+
+     return(array("Pass"=>$Jobs,"Conflicts"=>$Conflicts));
+    }
+
+   /* Return the distance between two points */
+   function getDistance($X1,$Y1,$X2,$Y2)
+    { return (sqrt(($X2-$X1)*($X2-$X1)+($Y2-$Y1)*($Y2-$Y1))); }
+
+   /* Return the angle made by a line and the X axis */
+   function getAngle($X1,$Y1,$X2,$Y2)
+    {
+     $Opposite = $Y2 - $Y1; $Adjacent = $X2 - $X1;$Angle = rad2deg(atan2($Opposite,$Adjacent));
+     if ($Angle > 0) { return($Angle); } else { return(360-abs($Angle)); }
+    }
+
+   function intersect($X1,$Y1,$X2,$Y2,$X3,$Y3,$X4,$Y4)
+    {
+     $A = (($X3 * $Y4 - $X4 * $Y3) * ($X1 - $X2) - ($X1 * $Y2 - $X2 * $Y1) * ($X3 - $X4));
+     $B = (($Y1 - $Y2) * ($X3 - $X4) - ($Y3 - $Y4) * ($X1 - $X2));
+
+     if ( $B == 0 ) { return(FALSE); }
+     $Xi = $A / $B;
+
+     $C = ($X1 - $X2);
+     if ( $C == 0 ) { return(FALSE); }
+     $Yi = $Xi * (($Y1 - $Y2)/$C) + (($X1 * $Y2 - $X2 * $Y1)/$C);
+
+     if ( $Xi >= min($X1,$X2) && $Xi >= min($X3,$X4) && $Xi <= max($X1,$X2) && $Xi <= max($X3,$X4))
+      {
+       if ( $Yi >= min($Y1,$Y2) && $Yi >= min($Y3,$Y4) && $Yi <= max($Y1,$Y2) && $Yi <= max($Y3,$Y4))
+        { return(TRUE); }
+      }
+
+      return(FALSE);   
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pStock.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pStock.class.php
new file mode 100644
index 0000000..9b59488
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pStock.class.php
@@ -0,0 +1,216 @@
+<?php
+ /*
+     pStock - class to draw stock charts
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("STOCK_MISSING_SERIE"	, 180001);
+
+ /* pStock class definition */
+ class pStock
+  {
+   var $pChartObject;
+   var $pDataObject;
+
+   /* Class creator */
+   function pStock($pChartObject,$pDataObject)
+    {
+     $this->pChartObject = $pChartObject;
+     $this->pDataObject  = $pDataObject;
+    }
+
+   /* Draw a stock chart */
+   function drawStockChart($Format="")
+    {
+     $SerieOpen		= isset($Format["SerieOpen"]) ? $Format["SerieOpen"] : "Open";
+     $SerieClose	= isset($Format["SerieClose"]) ? $Format["SerieClose"] : "Close";
+     $SerieMin		= isset($Format["SerieMin"]) ? $Format["SerieMin"] : "Min";
+     $SerieMax		= isset($Format["SerieMax"]) ? $Format["SerieMax"] : "Max";
+     $SerieMedian	= isset($Format["SerieMedian"]) ? $Format["SerieMedian"] : NULL;
+     $LineWidth		= isset($Format["LineWidth"]) ? $Format["LineWidth"] : 1;
+     $LineR		= isset($Format["LineR"]) ? $Format["LineR"] : 0;
+     $LineG		= isset($Format["LineG"]) ? $Format["LineG"] : 0;
+     $LineB		= isset($Format["LineB"]) ? $Format["LineB"] : 0;
+     $LineAlpha		= isset($Format["LineAlpha"]) ? $Format["LineAlpha"] : 100;
+     $ExtremityWidth	= isset($Format["ExtremityWidth"]) ? $Format["ExtremityWidth"] : 1;
+     $ExtremityLength	= isset($Format["ExtremityLength"]) ? $Format["ExtremityLength"] : 3;
+     $ExtremityR	= isset($Format["ExtremityR"]) ? $Format["ExtremityR"] : 0;
+     $ExtremityG	= isset($Format["ExtremityG"]) ? $Format["ExtremityG"] : 0;
+     $ExtremityB	= isset($Format["ExtremityB"]) ? $Format["ExtremityB"] : 0;
+     $ExtremityAlpha	= isset($Format["ExtremityAlpha"]) ? $Format["ExtremityAlpha"] : 100;
+     $BoxWidth		= isset($Format["BoxWidth"]) ? $Format["BoxWidth"] : 8;
+     $BoxUpR		= isset($Format["BoxUpR"]) ? $Format["BoxUpR"] : 188;
+     $BoxUpG		= isset($Format["BoxUpG"]) ? $Format["BoxUpG"] : 224;
+     $BoxUpB		= isset($Format["BoxUpB"]) ? $Format["BoxUpB"] : 46;
+     $BoxUpAlpha	= isset($Format["BoxUpAlpha"]) ? $Format["BoxUpAlpha"] : 100;
+     $BoxUpSurrounding	= isset($Format["BoxUpSurrounding"]) ? $Format["BoxUpSurrounding"] : NULL;
+     $BoxUpBorderR	= isset($Format["BoxUpBorderR"]) ? $Format["BoxUpBorderR"] : $BoxUpR-20;
+     $BoxUpBorderG	= isset($Format["BoxUpBorderG"]) ? $Format["BoxUpBorderG"] : $BoxUpG-20;
+     $BoxUpBorderB	= isset($Format["BoxUpBorderB"]) ? $Format["BoxUpBorderB"] : $BoxUpB-20;
+     $BoxUpBorderAlpha	= isset($Format["BoxUpBorderAlpha"]) ? $Format["BoxUpBorderAlpha"] : 100;
+     $BoxDownR		= isset($Format["BoxDownR"]) ? $Format["BoxDownR"] : 224;
+     $BoxDownG		= isset($Format["BoxDownG"]) ? $Format["BoxDownG"] : 100;
+     $BoxDownB		= isset($Format["BoxDownB"]) ? $Format["BoxDownB"] : 46;
+     $BoxDownAlpha	= isset($Format["BoxDownAlpha"]) ? $Format["BoxDownAlpha"] : 100;
+     $BoxDownSurrounding= isset($Format["BoxDownSurrounding"]) ? $Format["BoxDownSurrounding"] : NULL;
+     $BoxDownBorderR	= isset($Format["BoxDownBorderR"]) ? $Format["BoxDownBorderR"] : $BoxDownR-20;
+     $BoxDownBorderG	= isset($Format["BoxDownBorderG"]) ? $Format["BoxDownBorderG"] : $BoxDownG-20;
+     $BoxDownBorderB	= isset($Format["BoxDownBorderB"]) ? $Format["BoxDownBorderB"] : $BoxDownB-20;
+     $BoxDownBorderAlpha= isset($Format["BoxDownBorderAlpha"]) ? $Format["BoxDownBorderAlpha"] : 100;
+     $ShadowOnBoxesOnly	= isset($Format["ShadowOnBoxesOnly"]) ? $Format["ShadowOnBoxesOnly"] : TRUE;
+     $MedianR		= isset($Format["MedianR"]) ? $Format["MedianR"] : 255;
+     $MedianG		= isset($Format["MedianG"]) ? $Format["MedianG"] : 0;
+     $MedianB		= isset($Format["MedianB"]) ? $Format["MedianB"] : 0;
+     $MedianAlpha	= isset($Format["MedianAlpha"]) ? $Format["MedianAlpha"] : 100;
+     $RecordImageMap	= isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+     $ImageMapTitle	= isset($Format["ImageMapTitle"]) ? $Format["ImageMapTitle"] : "Stock Chart";
+
+
+     /* Data Processing */
+     $Data    = $this->pDataObject->getData();
+     $Palette = $this->pDataObject->getPalette();
+
+     if ( $BoxUpSurrounding != NULL )	{ $BoxUpBorderR = $BoxUpR + $BoxUpSurrounding; $BoxUpBorderG = $BoxUpG + $BoxUpSurrounding; $BoxUpBorderB = $BoxUpB + $BoxUpSurrounding; }
+     if ( $BoxDownSurrounding != NULL )	{ $BoxDownBorderR = $BoxDownR + $BoxDownSurrounding; $BoxDownBorderG = $BoxDownG + $BoxDownSurrounding; $BoxDownBorderB = $BoxDownB + $BoxDownSurrounding; }
+
+     if ( $LineWidth != 1 ) { $LineOffset = $LineWidth / 2; }
+     $BoxOffset = $BoxWidth / 2;
+
+     $Data = $this->pChartObject->DataSet->getData();
+     list($XMargin,$XDivs) = $this->pChartObject->scaleGetXSettings();
+
+     if ( !isset($Data["Series"][$SerieOpen]) || !isset($Data["Series"][$SerieClose]) || !isset($Data["Series"][$SerieMin]) || !isset($Data["Series"][$SerieMax]) )
+      return(STOCK_MISSING_SERIE);
+
+     $Plots = "";
+     foreach($Data["Series"][$SerieOpen]["Data"] as $Key => $Value)
+      {
+       $Point = "";
+       if ( isset($Data["Series"][$SerieClose]["Data"][$Key]) || isset($Data["Series"][$SerieMin]["Data"][$Key]) || isset($Data["Series"][$SerieMax]["Data"][$Key]) )
+        $Point = array($Value,$Data["Series"][$SerieClose]["Data"][$Key],$Data["Series"][$SerieMin]["Data"][$Key],$Data["Series"][$SerieMax]["Data"][$Key]);
+       if ( $SerieMedian != NULL && isset($Data["Series"][$SerieMedian]["Data"][$Key]) )
+        $Point[] = $Data["Series"][$SerieMedian]["Data"][$Key];
+
+       $Plots[] = $Point;
+      }
+
+     $AxisID	= $Data["Series"][$SerieOpen]["Axis"];
+     $Mode	= $Data["Axis"][$AxisID]["Display"];
+     $Format	= $Data["Axis"][$AxisID]["Format"];
+     $Unit	= $Data["Axis"][$AxisID]["Unit"];
+
+     $YZero	= $this->pChartObject->scaleComputeY(0,array("AxisID"=>$AxisID));
+     $XStep	= ($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1-$XMargin*2)/$XDivs;
+
+     $X = $this->pChartObject->GraphAreaX1 + $XMargin;
+     $Y = $this->pChartObject->GraphAreaY1 + $XMargin;
+
+     $LineSettings	= array("R"=>$LineR,"G"=>$LineG,"B"=>$LineB,"Alpha"=>$LineAlpha);
+     $ExtremitySettings	= array("R"=>$ExtremityR,"G"=>$ExtremityG,"B"=>$ExtremityB,"Alpha"=>$ExtremityAlpha);
+     $BoxUpSettings	= array("R"=>$BoxUpR,"G"=>$BoxUpG,"B"=>$BoxUpB,"Alpha"=>$BoxUpAlpha,"BorderR"=>$BoxUpBorderR,"BorderG"=>$BoxUpBorderG,"BorderB"=>$BoxUpBorderB,"BorderAlpha"=>$BoxUpBorderAlpha);
+     $BoxDownSettings	= array("R"=>$BoxDownR,"G"=>$BoxDownG,"B"=>$BoxDownB,"Alpha"=>$BoxDownAlpha,"BorderR"=>$BoxDownBorderR,"BorderG"=>$BoxDownBorderG,"BorderB"=>$BoxDownBorderB,"BorderAlpha"=>$BoxDownBorderAlpha);
+     $MedianSettings	= array("R"=>$MedianR,"G"=>$MedianG,"B"=>$MedianB,"Alpha"=>$MedianAlpha);
+
+     foreach($Plots as $Key =>$Points)
+      {
+       $PosArray = $this->pChartObject->scaleComputeY($Points,array("AxisID"=>$AxisID));
+
+       $Values = "Open :".$Data["Series"][$SerieOpen]["Data"][$Key]."<BR>Close : ".$Data["Series"][$SerieClose]["Data"][$Key]."<BR>Min : ".$Data["Series"][$SerieMin]["Data"][$Key]."<BR>Max : ".$Data["Series"][$SerieMax]["Data"][$Key]."<BR>";
+       if ( $SerieMedian != NULL ) { $Values = $Values."Median : ".$Data["Series"][$SerieMedian]["Data"][$Key]."<BR>"; }
+       if ( $PosArray[0] > $PosArray[1] ) { $ImageMapColor = $this->pChartObject->toHTMLColor($BoxUpR,$BoxUpG,$BoxUpB); } else { $ImageMapColor = $this->pChartObject->toHTMLColor($BoxDownR,$BoxDownG,$BoxDownB); } 
+
+       if ( $Data["Orientation"] == SCALE_POS_LEFTRIGHT )
+        {
+         if ( $YZero > $this->pChartObject->GraphAreaY2-1 ) { $YZero = $this->pChartObject->GraphAreaY2-1; }
+         if ( $YZero < $this->pChartObject->GraphAreaY1+1 ) { $YZero = $this->pChartObject->GraphAreaY1+1; }
+
+         if ( $XDivs == 0 ) { $XStep = 0; } else { $XStep = ($this->pChartObject->GraphAreaX2-$this->pChartObject->GraphAreaX1-$XMargin*2)/$XDivs; }
+
+         if ( $ShadowOnBoxesOnly ) { $RestoreShadow = $this->pChartObject->Shadow; $this->pChartObject->Shadow = FALSE; }
+
+         if ( $LineWidth == 1 )
+          $this->pChartObject->drawLine($X,$PosArray[2],$X,$PosArray[3],$LineSettings);
+         else
+          $this->pChartObject->drawFilledRectangle($X-$LineOffset,$PosArray[2],$X+$LineOffset,$PosArray[3],$LineSettings);
+
+         if ( $ExtremityWidth == 1 )
+          {
+           $this->pChartObject->drawLine($X-$ExtremityLength,$PosArray[2],$X+$ExtremityLength,$PosArray[2],$ExtremitySettings);
+           $this->pChartObject->drawLine($X-$ExtremityLength,$PosArray[3],$X+$ExtremityLength,$PosArray[3],$ExtremitySettings);
+
+           if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("RECT",floor($X-$ExtremityLength).",".floor($PosArray[2]).",".floor($X+$ExtremityLength).",".floor($PosArray[3]),$ImageMapColor,$ImageMapTitle,$Values); }
+          }
+         else
+          {
+           $this->pChartObject->drawFilledRectangle($X-$ExtremityLength,$PosArray[2],$X+$ExtremityLength,$PosArray[2]-$ExtremityWidth,$ExtremitySettings);
+           $this->pChartObject->drawFilledRectangle($X-$ExtremityLength,$PosArray[3],$X+$ExtremityLength,$PosArray[3]+$ExtremityWidth,$ExtremitySettings);
+
+           if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("RECT",floor($X-$ExtremityLength).",".floor($PosArray[2]-$ExtremityWidth).",".floor($X+$ExtremityLength).",".floor($PosArray[3]+$ExtremityWidth),$ImageMapColor,$ImageMapTitle,$Values); }
+          }
+
+         if ( $ShadowOnBoxesOnly ) { $this->pChartObject->Shadow = $RestoreShadow; }
+
+         if ( $PosArray[0] > $PosArray[1] )
+          $this->pChartObject->drawFilledRectangle($X-$BoxOffset,$PosArray[0],$X+$BoxOffset,$PosArray[1],$BoxUpSettings);
+         else
+          $this->pChartObject->drawFilledRectangle($X-$BoxOffset,$PosArray[0],$X+$BoxOffset,$PosArray[1],$BoxDownSettings);
+
+         if ( isset($PosArray[4]) )
+          $this->pChartObject->drawLine($X-$ExtremityLength,$PosArray[4],$X+$ExtremityLength,$PosArray[4],$MedianSettings);
+
+         $X = $X + $XStep;
+        }
+       elseif ( $Data["Orientation"] == SCALE_POS_TOPBOTTOM )
+        {
+         if ( $YZero > $this->pChartObject->GraphAreaX2-1 ) { $YZero = $this->pChartObject->GraphAreaX2-1; }
+         if ( $YZero < $this->pChartObject->GraphAreaX1+1 ) { $YZero = $this->pChartObject->GraphAreaX1+1; }
+
+         if ( $XDivs == 0 ) { $XStep = 0; } else { $XStep = ($this->pChartObject->GraphAreaY2-$this->pChartObject->GraphAreaY1-$XMargin*2)/$XDivs; }
+
+         if ( $LineWidth == 1 )
+          $this->pChartObject->drawLine($PosArray[2],$Y,$PosArray[3],$Y,$LineSettings);
+         else
+          $this->pChartObject->drawFilledRectangle($PosArray[2],$Y-$LineOffset,$PosArray[3],$Y+$LineOffset,$LineSettings);
+
+         if ( $ShadowOnBoxesOnly ) { $RestoreShadow = $this->pChartObject->Shadow; $this->pChartObject->Shadow = FALSE; }
+
+         if ( $ExtremityWidth == 1 )
+          {
+           $this->pChartObject->drawLine($PosArray[2],$Y-$ExtremityLength,$PosArray[2],$Y+$ExtremityLength,$ExtremitySettings);
+           $this->pChartObject->drawLine($PosArray[3],$Y-$ExtremityLength,$PosArray[3],$Y+$ExtremityLength,$ExtremitySettings);
+
+           if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("RECT",floor($PosArray[2]).",".floor($Y-$ExtremityLength).",".floor($PosArray[3]).",".floor($Y+$ExtremityLength),$ImageMapColor,$ImageMapTitle,$Values); }
+          }
+         else
+          {
+           $this->pChartObject->drawFilledRectangle($PosArray[2],$Y-$ExtremityLength,$PosArray[2]-$ExtremityWidth,$Y+$ExtremityLength,$ExtremitySettings);
+           $this->pChartObject->drawFilledRectangle($PosArray[3],$Y-$ExtremityLength,$PosArray[3]+$ExtremityWidth,$Y+$ExtremityLength,$ExtremitySettings);
+
+           if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("RECT",floor($PosArray[2]-$ExtremityWidth).",".floor($Y-$ExtremityLength).",".floor($PosArray[3]+$ExtremityWidth).",".floor($Y+$ExtremityLength),$ImageMapColor,$ImageMapTitle,$Values); }
+          }
+
+         if ( $ShadowOnBoxesOnly ) { $this->pChartObject->Shadow = $RestoreShadow; }
+
+         if ( $PosArray[0] < $PosArray[1] )
+          $this->pChartObject->drawFilledRectangle($PosArray[0],$Y-$BoxOffset,$PosArray[1],$Y+$BoxOffset,$BoxUpSettings);
+         else
+          $this->pChartObject->drawFilledRectangle($PosArray[0],$Y-$BoxOffset,$PosArray[1],$Y+$BoxOffset,$BoxDownSettings);
+
+         if ( isset($PosArray[4]) )
+          $this->pChartObject->drawLine($PosArray[4],$Y-$ExtremityLength,$PosArray[4],$Y+$ExtremityLength,$MedianSettings);
+
+         $Y = $Y + $XStep;
+        }
+      }
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSurface.class.php b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSurface.class.php
new file mode 100644
index 0000000..0aeb9b9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincstats/includes/pchart/class/pSurface.class.php
@@ -0,0 +1,315 @@
+<?php
+ /*
+     pSurface - class to draw surface charts
+
+     Version     : 2.1.3
+     Made by     : Jean-Damien POGOLOTTI
+     Last Update : 09/09/11
+
+     This file can be distributed under the license you can find at :
+
+                       http://www.pchart.net/license
+
+     You can find the whole class documentation on the pChart web site.
+ */
+
+ define("UNKNOWN"		, 0.123456789);
+ define("IGNORED"		, -1);
+
+ define("LABEL_POSITION_LEFT"	, 880001);
+ define("LABEL_POSITION_RIGHT"	, 880002);
+ define("LABEL_POSITION_TOP"	, 880003);
+ define("LABEL_POSITION_BOTTOM"	, 880004);
+
+ /* pStock class definition */
+ class pSurface
+  {
+   var $pChartObject;
+   var $GridSizeX;
+   var $GridSizeY;
+   var $Points;
+
+   /* Class creator */
+   function pSurface($pChartObject)
+    {
+     $this->pChartObject = $pChartObject;
+     $this->GridSize     = 10;
+     $this->Points       = "";
+    }
+
+   /* Define the grid size and initialise the 2D matrix */
+   function setGrid($XSize=10,$YSize=10)
+    {
+     for($X=0; $X<=$XSize; $X++) { for($Y=0; $Y<=$YSize; $Y++) { $this->Points[$X][$Y]=UNKNOWN; } } 
+
+     $this->GridSizeX = $XSize;
+     $this->GridSizeY = $YSize;
+    }
+
+   /* Add a point on the grid */
+   function addPoint($X,$Y,$Value,$Force=TRUE)
+    {
+     if ( $X < 0 || $X >$this->GridSizeX ) { return(0); }
+     if ( $Y < 0 || $Y >$this->GridSizeY ) { return(0); }
+
+     if ( $this->Points[$X][$Y] == UNKNOWN || $Force )
+      $this->Points[$X][$Y] = $Value;
+     elseif ( $this->Points[$X][$Y] == UNKNOWN )
+      $this->Points[$X][$Y] = $Value;
+     else
+      $this->Points[$X][$Y] = ($this->Points[$X][$Y] + $Value)/2;
+    }
+
+   /* Write the X labels */
+   function writeXLabels($Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : $this->pChartObject->FontColorR;
+     $G			= isset($Format["G"]) ? $Format["G"] : $this->pChartObject->FontColorG;
+     $B			= isset($Format["B"]) ? $Format["B"] : $this->pChartObject->FontColorB;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : $this->pChartObject->FontColorA;
+     $Angle		= isset($Format["Angle"]) ? $Format["Angle"] : 0;
+     $Padding		= isset($Format["Padding"]) ? $Format["Padding"] : 5;
+     $Position		= isset($Format["Position"]) ? $Format["Position"] : LABEL_POSITION_TOP;
+     $Labels		= isset($Format["Labels"]) ? $Format["Labels"] : NULL;
+     $CountOffset	= isset($Format["CountOffset"]) ? $Format["CountOffset"] : 0;
+
+     if ( $Labels != NULL && !is_array($Labels) ) { $Label = $Labels; $Labels = ""; $Labels[] = $Label; }
+
+     $X0    = $this->pChartObject->GraphAreaX1;
+     $XSize = ($this->pChartObject->GraphAreaX2 - $this->pChartObject->GraphAreaX1) / ($this->GridSizeX+1);
+
+     $Settings = array("Angle"=>$Angle,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+     if ( $Position == LABEL_POSITION_TOP )
+      {
+       $YPos  = $this->pChartObject->GraphAreaY1 - $Padding;
+       if ($Angle == 0 ) { $Settings["Align"] = TEXT_ALIGN_BOTTOMMIDDLE; }
+       if ($Angle != 0 ) { $Settings["Align"] = TEXT_ALIGN_MIDDLELEFT; }
+      }
+     elseif ( $Position == LABEL_POSITION_BOTTOM )
+      {
+       $YPos  = $this->pChartObject->GraphAreaY2 + $Padding;
+       if ($Angle == 0 ) { $Settings["Align"] = TEXT_ALIGN_TOPMIDDLE; }
+       if ($Angle != 0 ) { $Settings["Align"] = TEXT_ALIGN_MIDDLERIGHT; }
+      }
+     else
+      return(-1);
+
+     for($X=0;$X<=$this->GridSizeX;$X++)
+      {
+       $XPos = floor($X0+$X*$XSize + $XSize/2);
+
+       if( $Labels == NULL || !isset($Labels[$X]) )
+        $Value = $X+$CountOffset;
+       else
+        $Value = $Labels[$X];
+
+       $this->pChartObject->drawText($XPos,$YPos,$Value,$Settings);
+      }
+    }
+
+   /* Write the Y labels */
+   function writeYLabels($Format="")
+    {
+     $R			= isset($Format["R"]) ? $Format["R"] : $this->pChartObject->FontColorR;
+     $G			= isset($Format["G"]) ? $Format["G"] : $this->pChartObject->FontColorG;
+     $B			= isset($Format["B"]) ? $Format["B"] : $this->pChartObject->FontColorB;
+     $Alpha		= isset($Format["Alpha"]) ? $Format["Alpha"] : $this->pChartObject->FontColorA;
+     $Angle		= isset($Format["Angle"]) ? $Format["Angle"] : 0;
+     $Padding		= isset($Format["Padding"]) ? $Format["Padding"] : 5;
+     $Position		= isset($Format["Position"]) ? $Format["Position"] : LABEL_POSITION_LEFT;
+     $Labels		= isset($Format["Labels"]) ? $Format["Labels"] : NULL;
+     $CountOffset	= isset($Format["CountOffset"]) ? $Format["CountOffset"] : 0;
+
+     if ( $Labels != NULL && !is_array($Labels) ) { $Label = $Labels; $Labels = ""; $Labels[] = $Label; }
+
+     $Y0    = $this->pChartObject->GraphAreaY1;
+     $YSize = ($this->pChartObject->GraphAreaY2 - $this->pChartObject->GraphAreaY1) / ($this->GridSizeY+1);
+
+     $Settings = array("Angle"=>$Angle,"R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+     if ( $Position == LABEL_POSITION_LEFT )
+      { $XPos  = $this->pChartObject->GraphAreaX1 - $Padding; $Settings["Align"] = TEXT_ALIGN_MIDDLERIGHT; }
+     elseif ( $Position == LABEL_POSITION_RIGHT )
+      { $XPos  = $this->pChartObject->GraphAreaX2 + $Padding; $Settings["Align"] = TEXT_ALIGN_MIDDLELEFT; }
+     else
+      return(-1);
+
+     for($Y=0;$Y<=$this->GridSizeY;$Y++)
+      {
+       $YPos = floor($Y0+$Y*$YSize + $YSize/2);
+
+       if( $Labels == NULL || !isset($Labels[$Y]) )
+        $Value = $Y+$CountOffset;
+       else
+        $Value = $Labels[$Y];
+
+       $this->pChartObject->drawText($XPos,$YPos,$Value,$Settings);
+      }
+    }
+
+   /* Draw the area arround the specified Threshold */
+   function drawContour($Threshold,$Format="")
+    {
+     $R		= isset($Format["R"]) ? $Format["R"] : 0;
+     $G		= isset($Format["G"]) ? $Format["G"] : 0;
+     $B		= isset($Format["B"]) ? $Format["B"] : 0;
+     $Alpha	= isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+     $Ticks	= isset($Format["Ticks"]) ? $Format["Ticks"] : 3;
+     $Padding	= isset($Format["Padding"]) ? $Format["Padding"] : 0;
+
+     $X0    = $this->pChartObject->GraphAreaX1;
+     $Y0    = $this->pChartObject->GraphAreaY1;
+     $XSize = ($this->pChartObject->GraphAreaX2 - $this->pChartObject->GraphAreaX1) / ($this->GridSizeX+1);
+     $YSize = ($this->pChartObject->GraphAreaY2 - $this->pChartObject->GraphAreaY1) / ($this->GridSizeY+1);
+
+     $Color = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"Ticks"=>$Ticks);
+
+     for($X=0;$X<=$this->GridSizeX;$X++)
+      {
+       for($Y=0;$Y<=$this->GridSizeY;$Y++)
+        {
+         $Value = $this->Points[$X][$Y];
+
+         if ( $Value != UNKNOWN && $Value != IGNORED && $Value >= $Threshold)
+          {
+           $X1 = floor($X0+$X*$XSize)+$Padding;
+           $Y1 = floor($Y0+$Y*$YSize)+$Padding;
+           $X2 = floor($X0+$X*$XSize+$XSize);
+           $Y2 = floor($Y0+$Y*$YSize+$YSize);
+
+           if ( $X > 0 && $this->Points[$X-1][$Y] != UNKNOWN && $this->Points[$X-1][$Y] != IGNORED && $this->Points[$X-1][$Y] < $Threshold)
+            $this->pChartObject->drawLine($X1,$Y1,$X1,$Y2,$Color);
+           if ( $Y > 0 && $this->Points[$X][$Y-1] != UNKNOWN && $this->Points[$X][$Y-1] != IGNORED && $this->Points[$X][$Y-1] < $Threshold)
+            $this->pChartObject->drawLine($X1,$Y1,$X2,$Y1,$Color);
+           if ( $X < $this->GridSizeX && $this->Points[$X+1][$Y] != UNKNOWN && $this->Points[$X+1][$Y] != IGNORED && $this->Points[$X+1][$Y] < $Threshold)
+            $this->pChartObject->drawLine($X2,$Y1,$X2,$Y2,$Color);
+           if ( $Y < $this->GridSizeY && $this->Points[$X][$Y+1] != UNKNOWN && $this->Points[$X][$Y+1] != IGNORED && $this->Points[$X][$Y+1] < $Threshold)
+            $this->pChartObject->drawLine($X1,$Y2,$X2,$Y2,$Color);
+          }
+        }
+      }
+    }
+
+   /* Draw the surface chart */
+   function drawSurface($Format="")
+    {
+     $Palette		= isset($Format["Palette"]) ? $Format["Palette"] : NULL;
+     $ShadeR1		= isset($Format["ShadeR1"]) ? $Format["ShadeR1"] : 77;
+     $ShadeG1		= isset($Format["ShadeG1"]) ? $Format["ShadeG1"] : 205;
+     $ShadeB1		= isset($Format["ShadeB1"]) ? $Format["ShadeB1"] : 21;
+     $ShadeA1		= isset($Format["ShadeA1"]) ? $Format["ShadeA1"] : 40;
+     $ShadeR2		= isset($Format["ShadeR2"]) ? $Format["ShadeR2"] : 227;
+     $ShadeG2		= isset($Format["ShadeG2"]) ? $Format["ShadeG2"] : 135;
+     $ShadeB2		= isset($Format["ShadeB2"]) ? $Format["ShadeB2"] : 61;
+     $ShadeA2		= isset($Format["ShadeA2"]) ? $Format["ShadeA2"] : 100;
+     $Border		= isset($Format["Border"]) ? $Format["Border"] : FALSE;
+     $BorderR		= isset($Format["BorderR"]) ? $Format["BorderR"] : 0;
+     $BorderG		= isset($Format["BorderG"]) ? $Format["BorderG"] : 0;
+     $BorderB		= isset($Format["BorderB"]) ? $Format["BorderB"] : 0;
+     $Surrounding	= isset($Format["Surrounding"]) ? $Format["Surrounding"] : -1;
+     $Padding		= isset($Format["Padding"]) ? $Format["Padding"] : 1;
+
+     $X0    = $this->pChartObject->GraphAreaX1;
+     $Y0    = $this->pChartObject->GraphAreaY1;
+     $XSize = ($this->pChartObject->GraphAreaX2 - $this->pChartObject->GraphAreaX1) / ($this->GridSizeX+1);
+     $YSize = ($this->pChartObject->GraphAreaY2 - $this->pChartObject->GraphAreaY1) / ($this->GridSizeY+1);
+
+     for($X=0;$X<=$this->GridSizeX;$X++)
+      {
+       for($Y=0;$Y<=$this->GridSizeY;$Y++)
+        {
+         $Value = $this->Points[$X][$Y];
+
+         if ( $Value != UNKNOWN && $Value != IGNORED )
+          {
+           $X1 = floor($X0+$X*$XSize)+$Padding;
+           $Y1 = floor($Y0+$Y*$YSize)+$Padding;
+           $X2 = floor($X0+$X*$XSize+$XSize);
+           $Y2 = floor($Y0+$Y*$YSize+$YSize);
+
+           if ( $Palette != NULL )
+            {
+             if ( isset($Palette[$Value]) && isset($Palette[$Value]["R"]) ) { $R = $Palette[$Value]["R"]; } else { $R = 0; }
+             if ( isset($Palette[$Value]) && isset($Palette[$Value]["G"]) ) { $G = $Palette[$Value]["G"]; } else { $G = 0; }
+             if ( isset($Palette[$Value]) && isset($Palette[$Value]["B"]) ) { $B = $Palette[$Value]["B"]; } else { $B = 0; }
+             if ( isset($Palette[$Value]) && isset($Palette[$Value]["Alpha"]) ) { $Alpha = $Palette[$Value]["Alpha"]; } else { $Alpha = 1000; }
+            }
+           else
+            {
+             $R = (($ShadeR2-$ShadeR1)/100)*$Value + $ShadeR1;
+             $G = (($ShadeG2-$ShadeG1)/100)*$Value + $ShadeG1;
+             $B = (($ShadeB2-$ShadeB1)/100)*$Value + $ShadeB1;
+             $Alpha = (($ShadeA2-$ShadeA1)/100)*$Value + $ShadeA1;
+            }
+
+           $Settings = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+           if ( $Border ) { $Settings["BorderR"] = $BorderR; $Settings["BorderG"] = $BorderG; $Settings["BorderB"] = $BorderB; }
+           if ( $Surrounding != -1 ) { $Settings["BorderR"] = $R+$Surrounding; $Settings["BorderG"] = $G+$Surrounding; $Settings["BorderB"] = $B+$Surrounding; }
+
+           $this->pChartObject->drawFilledRectangle($X1,$Y1,$X2-1,$Y2-1,$Settings);
+          }
+        }
+      }
+    }
+
+   /* Compute the missing points */
+   function computeMissing()
+    {
+     $Missing = "";
+     for($X=0;$X<=$this->GridSizeX;$X++)
+      {
+       for($Y=0;$Y<=$this->GridSizeY;$Y++)
+        {
+         if ( $this->Points[$X][$Y] == UNKNOWN )
+          $Missing[] = $X.",".$Y;
+        }
+      }
+     shuffle($Missing);
+     
+     foreach($Missing as $Key => $Pos)
+      {
+       $Pos = preg_split("/,/",$Pos);
+       $X   = $Pos[0];
+       $Y   = $Pos[1];
+
+       if ( $this->Points[$X][$Y] == UNKNOWN )
+        {
+         $NearestNeighbor = $this->getNearestNeighbor($X,$Y);
+
+         $Value = 0; $Points = 0;
+         for($Xi=$X-$NearestNeighbor;$Xi<=$X+$NearestNeighbor;$Xi++)
+          {
+           for($Yi=$Y-$NearestNeighbor;$Yi<=$Y+$NearestNeighbor;$Yi++)
+            {
+             if ($Xi >=0 && $Yi >= 0 && $Xi <= $this->GridSizeX && $Yi <= $this->GridSizeY && $this->Points[$Xi][$Yi] != UNKNOWN && $this->Points[$Xi][$Yi] != IGNORED)
+              {
+               $Value = $Value + $this->Points[$Xi][$Yi]; $Points++;
+              }
+            }
+          }
+
+         if ( $Points != 0 ) { $this->Points[$X][$Y] = $Value / $Points; }
+        }
+      }
+    }
+
+   /* Return the nearest Neighbor distance of a point */
+   function getNearestNeighbor($Xp,$Yp)
+    {
+     $Nearest = UNKNOWN;
+     for($X=0;$X<=$this->GridSizeX;$X++)
+      {
+       for($Y=0;$Y<=$this->GridSizeY;$Y++)
+        {
+         if ( $this->Points[$X][$Y] != UNKNOWN && $this->Points[$X][$Y] != IGNORED )
+          {
+           $DistanceX = max($Xp,$X)-min($Xp,$X);
+           $DistanceY = max($Yp,$Y)-min($Yp,$Y);
+           $Distance  = max($DistanceX,$DistanceY);
+           if ( $Distance < $Nearest || $Nearest == UNKNOWN ) { $Nearest = $Distance; }
+          }
+        }
+      }
+     return($Nearest);
+    }
+  }
+?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam.info b/drupal/sites/default/boinc/modules/boincteam/boincteam.info
new file mode 100644
index 0000000..4f6fa9c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam.info
@@ -0,0 +1,9 @@
+; $Id$
+name = BOINC team
+description = Enable users to create and join teams.
+core = 6.x
+dependencies[] = boincuser
+dependencies[] = user
+dependencies[] = node
+dependencies[] = taxonomy
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam.install b/drupal/sites/default/boinc/modules/boincteam/boincteam.install
new file mode 100644
index 0000000..e990ef9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam.install
@@ -0,0 +1,23 @@
+<?php
+// $Id$
+function boincteam_schema() {
+  $schema['boincteam'] = array(
+    'description' => t('Maps BOINC teams to Drupal organic groups.'),
+    'fields' => array(
+         'team_id' => array('type' => 'int', 'unsigned' => TRUE, 'size' => 'small', 'not null' => TRUE, 'default' => 0, 'disp-width' => '5'),
+         'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'disp-width' => '10'),
+    ),
+    'primary key' => array('team_id')
+  );
+  return $schema;
+}
+
+function boincteam_install() {
+  // Create tables.
+  drupal_install_schema('boincteam');
+}
+
+function boincteam_uninstall() {
+  // Drop tables.
+  drupal_uninstall_schema('boincteam');
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam.module b/drupal/sites/default/boinc/modules/boincteam/boincteam.module
new file mode 100644
index 0000000..901d748
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam.module
@@ -0,0 +1,1309 @@
+<?php
+// ; $Id$
+
+/**
+ * @file
+ * Enables BOINC team functionality.
+ *
+ * Integrates team data and features of the existing
+ * BOINC platorm with the Drupal concept of a team.
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+require_once('includes/boincteam.forms.inc');
+require_once('includes/boincteam.helpers.inc');
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Implementation of hook_menu()
+ */
+function boincteam_menu() {
+  $items = array();
+  $items['community/teams/%/assume-foundership'] = array(
+    'page callback' => 'boincteam_assume_foundership',
+    'page arguments' => array(2),
+    'access callback' => 'boincteam_is_member',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/join'] = array(
+    'page callback' => 'boincteam_join',
+    'page arguments' => array(2),
+    'access arguments' => array('join boincteam'),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/leave'] = array(
+    'page callback' => 'boincteam_leave',
+    'page arguments' => array(2),
+    'access arguments' => array('join boincteam'),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/delete'] = array(
+    'page callback' => 'boincteam_delete',
+    'page arguments' => array(2),
+    'access callback' => 'boincteam_is_founder',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/deny-foundership-request'] = array(
+    'page callback' => 'boincteam_deny_foundership_request',
+    'page arguments' => array(2),
+    'access callback' => 'boincteam_is_founder',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/edit/admins/remove/%'] = array(
+    'page callback' => 'boincteam_remove_admin',
+    'page arguments' => array(2,6),
+    'access callback' => 'boincteam_is_founder',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/edit/founder/set/%'] = array(
+    'page callback' => 'boincteam_set_founder',
+    'page arguments' => array(2,6),
+    'access callback' => 'boincteam_is_founder',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/edit/members/remove/%'] = array(
+    'page callback' => 'boincteam_remove_member',
+    'page arguments' => array(2,6),
+    'access callback' => 'boincteam_is_founder',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/history/xml'] = array(
+    'page callback' => 'boincteam_history_xml',
+    'page arguments' => array(2),
+    'access callback' => 'boincteam_is_admin',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/members/email'] = array(
+    'page callback' => 'boincteam_members_email_list',
+    'page arguments' => array(2),
+    'access callback' => 'boincteam_is_admin',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  $items['community/teams/%/request-foundership'] = array(
+    'page callback' => 'boincteam_request_foundership',
+    'page arguments' => array(2),
+    'access callback' => 'boincteam_is_member',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+   
+  return $items;
+}
+
+/**
+* Implementation of hook_views_api().
+*/
+function boincteam_views_api() {
+  return array(
+    'api' => 2.0,
+    'path' => drupal_get_path('module', 'boincteam')
+  );
+}
+
+/**
+ * Implementation of hook_perm()
+ */
+function boincteam_perm() {
+  return array('join boincteam', 'create boincteam', 'manage boincteam');
+}
+
+/**
+ * Implementation of hook_cron()
+ */
+function boincteam_cron() {
+  // Sync teams from BOINC DB every day to catch BOINC-wide team updates
+  $last_sync = variable_get('boincteam_last_sync', 0);
+  if ($last_sync < time() - 24*60*60) {
+    boincteam_sync();
+    variable_set('boincteam_last_sync', time());
+  }
+}
+
+/**
+ * Callback ...
+ */
+function boincteam_top_teams() {
+  
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * BOINC team functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * If there has been no response to a transfer request, the requestor can
+ * assume the role of founder
+ */
+function boincteam_assume_foundership($team_id) {
+  global $user;
+  $account = user_load($user->uid);
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  $boincuser_id = $account->boincuser_id;
+  
+  if (boincteam_foundership_transfer_ok($boincteam)) {
+    if ($boincuser_id == $boincteam->ping_user) {
+      db_set_active('boinc');
+      db_query("
+        UPDATE {team}
+        SET userid = '%d', ping_user = '0', ping_time = '0'
+        WHERE id = '%d'",
+        $boincuser_id, $boincteam_id
+      );
+      db_set_active('default');
+      drupal_set_message(t('You are now the founder of @team', array(
+        '@team' => $team->title
+      )));
+      watchdog('boincteam', 'User @user assumed foundership of team @nid',
+        array(
+          '@current_user' => $account->uid,
+          '@nid' => $team_id
+        ), WATCHDOG_NOTICE
+      );
+    }
+  }
+  else {
+    drupal_set_message(t('You are not allowed to assume foundership of this
+      team.'
+    ));
+  }
+  drupal_goto("community/teams/{$team_id}");
+}
+
+/**
+ * Delete the team, if empty
+ */
+function boincteam_delete($team_id) {
+  $team = node_load($team_id);
+  $boincteam = boincteam_load(boincteam_lookup_id($team_id), TRUE);
+  if ($boincteam->nusers == 1) {
+    require_boinc('team');
+    $boincuser = boincuser_load();
+    user_quit_team($boincuser);
+    $boincteam->delete();
+    node_unpublish_action($team);
+    $team->uid = 0;
+    node_save($team);
+    drupal_set_message(t('@team has been removed.',
+      array('@team' => $boincteam->name)));
+    drupal_goto('community/teams');
+  }
+  else {
+    drupal_set_message(t('All members must be removed from @team before the
+      team can be deleted.', array('@team' => $boincteam->name)), 'error');
+    drupal_goto(strstr($_GET['q'], '/delete', TRUE));
+  }
+}
+
+/**
+ * Deny a foundership transfer request
+ */
+function boincteam_deny_foundership_request($team_id) {
+  $boincteam_id = boincteam_lookup_id($team_id);
+  // Remove the request from the BOINC database
+  db_set_active('boinc');
+  db_query("
+    UPDATE {team}
+    SET ping_user=0
+    WHERE id = '%d'",
+    $boincteam_id
+  );
+  db_set_active('default');
+  
+  drupal_set_message(t('The transfer request has been denied. No additional
+    requests will be allowed until 90 days have passed since this request was
+    made.'));
+  drupal_goto("community/teams/{$team_id}/edit/founder");
+}
+  
+
+/**
+ * Get the join date of a user
+ */
+function boincteam_get_member_join_date($boincteam_id, $boincuser_id = NULL) {
+  if (!$boincuser_id) {
+    global $user;
+    $account = user_load($user->uid);
+    $boincuser_id = $account->boincuser_id;
+  }
+  db_set_active('boinc');
+  $timestamp = db_result(db_query("
+    SELECT timestamp FROM {team_delta} WHERE
+    userid = %d AND teamid = %d AND joining = 1
+    ORDER BY timestamp DESC LIMIT 1",
+    $boincuser_id, $boincteam_id
+  ));
+  db_set_active('default');
+  return $timestamp;
+}
+
+/**
+ * Get the team type for display
+ */
+function boincteam_get_type($team_id) {
+  //$vid = boincteam_get_vocabulary_by_name('Teams'); $team->vid = $vid;
+  $team = node_load($team_id);
+  $terms = taxonomy_node_get_terms($team);
+  if ($terms) {
+    $term = reset($terms);
+    return $term->name;
+  } else {
+    return null;
+  }
+}
+
+/**
+ * Access a vocabulary of terms by name
+ */ 
+function boincteam_get_vocabulary_by_name($name) {
+  $vocabs = taxonomy_get_vocabularies('team');
+  foreach ($vocabs as $vocab) {
+    if ($vocab->name == $name) return $vocab->vid;
+  }
+  return null;
+}
+
+/**
+ * Output the XML of the team history
+ */
+function boincteam_history_xml($team_id) {
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $team_history = array(
+    'actions' => array(
+      'action' => array(),
+    ),
+  );
+  
+  db_set_active('boinc');
+  $result = db_query("
+    SELECT 
+      td.userid AS id,
+      u.name,
+      IF (td.joining, 'joined', 'left') AS action,
+      td.total_credit,
+      FROM_UNIXTIME(td.timestamp, '%%e %%b %%Y | %%T UTC') AS `when`
+    FROM {team_delta} td
+    JOIN {user} u ON u.id = td.userid
+    WHERE td.teamid = %d
+    ORDER BY timestamp ASC",
+    $boincteam_id
+  );
+  db_set_active('default');
+  
+  while ($record = db_fetch_array($result)) {
+    $team_history['actions']['action'][] = $record;
+  }
+  
+  header('Content-type: text/xml');
+  echo xml_to_text(array_to_xml($team_history));
+}
+
+/**
+ * Convert a BOINC team ID to a Drupal team ID
+ */
+function boincteam_lookup_nid($boinc_id) {
+  $drupal_id = db_result(db_query("SELECT nid FROM {boincteam} WHERE team_id='%d'", $boinc_id));
+  return $drupal_id;
+}
+
+/**
+ * Convert a Drupal team ID to a BOINC team ID
+ */
+function boincteam_lookup_id($nid) {
+  $boinc_id = db_result(db_query("SELECT team_id FROM {boincteam} WHERE nid = '%d'", $nid));
+  return $boinc_id;
+}
+
+/**
+ * Get a BOINC team object
+ */
+function boincteam_load($boincteam_id, $full_object = FALSE) {
+  require_boinc(array('team'));
+  $team = BoincTeam::lookup_id($boincteam_id);
+  if ($team AND $full_object) {
+    $team->nusers = BoincUser::count("teamid={$team->id}");
+    $team->nusers_worked = BoincUser::count("teamid={$team->id} and total_credit>0");
+    $team->nusers_active = BoincUser::count("teamid={$team->id} and expavg_credit>0.1");
+    $team->forum = BoincForum::lookup("parent_type=1 and category={$team->id}");
+    $team->new_members = new_member_list($boincteam_id);
+    $team->admins = admin_list($boincteam_id);
+    $team->founder = BoincUser::lookup_id($team->userid);
+  }
+  return $team;
+}
+
+/**
+ * Check if a user is the team founder
+ */
+function boincteam_is_founder($nid, $uid = NULL) {
+  if (!$uid) {
+    global $user;
+    $uid = $user->uid;
+  }
+  if (!boincteam_is_member($nid, $uid)) {
+    return FALSE;
+  }
+  $team_id = boincteam_lookup_id($nid);
+  require_boinc('team');
+  return is_team_founder(boincuser_load($uid, TRUE), boincteam_load($team_id));
+}
+
+/**
+ * Check if a user is a team admin
+ */
+function boincteam_is_admin($nid, $uid = NULL) {
+  if (!$uid) {
+    global $user;
+    $uid = $user->uid;
+  }
+  if (!boincteam_is_member($nid, $uid)) {
+    return FALSE;
+  }
+  $team_id = boincteam_lookup_id($nid);
+  require_boinc('team');
+  return is_team_admin(boincuser_load($uid, TRUE), boincteam_load($team_id));
+}
+
+/**
+ * Check if a user is a team member
+ */
+function boincteam_is_member($nid, $uid = NULL) {
+  if (!$uid) {
+    global $user;
+    $uid = $user->uid;
+  }
+  $account = user_load($uid);
+  return ($account->team == $nid);
+}
+
+/**
+ * Display any persistent team messages
+ */
+function boincteam_show_messages() {
+  global $user;
+  $uid = $user->uid;
+  $account = user_load($uid);
+  if ($account->team) {
+    if (boincteam_is_founder($account->team, $account->uid)) {
+      // Set a notice of any pending foundership requests
+      $boincteam_id = boincteam_lookup_id($account->team);
+      $boincteam = boincteam_load($boincteam_id);
+      if ($boincteam->ping_user > 0) {
+        $foundership_url = "community/teams/{$account->team}/edit/founder";
+        if (substr($_GET['q'], 0, strlen($foundership_url)) != $foundership_url) {
+          drupal_set_message(
+            bts(
+              'A foundership transfer request has been made for your team. Please !respond.',
+              array('!respond' => l(bts('respond to the request', array(), NULL, 'boinc:team-founder-change'), $foundership_url)),
+              NULL, 'boinc:team-founder-change'),
+            'warning', FALSE
+          );
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Add a user to a team
+ */
+function boincteam_join($team_id) {
+  global $user;
+  $account = user_load($user->uid);
+  
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  if ($boincteam->joinable AND $account->team != $team_id) {
+    require_boinc('team');
+    $boincuser = boincuser_load();
+    if (user_join_team($boincteam, $boincuser)) {
+      drupal_set_message(t('You are now a member of @team!',
+        array('@team' => $boincteam->name)));
+      watchdog('boincteam', 'added user @uid to team @nid',
+        array('@uid' => $user->uid, '@nid' => $team_id), WATCHDOG_NOTICE);
+    }
+    else {
+      drupal_set_message(t('There was a problem joining @team, please try again
+        later', array('@team' => $boincteam->name)));
+      watchdog('boincteam', 'error adding user @uid to team @nid',
+        array('@uid' => $user->uid, '@nid' => $team_id), WATCHDOG_ERROR);
+    }
+  }
+  drupal_goto("community/teams/{$team_id}");
+}
+
+/**
+ * Leave a team
+ */
+function boincteam_leave($team_id) {
+  global $user;
+  $account = user_load($user->uid);
+  
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  if ($account->team == $team_id) {
+    require_boinc('team');
+    $boincuser = boincuser_load();
+    user_quit_team($boincuser);
+    drupal_set_message(t('You are no longer a member of @team.',
+      array('@team' => $boincteam->name)));
+    watchdog('boincteam', 'removed user @uid from team @nid',
+      array('@uid' => $user->uid, '@nid' => $team_id), WATCHDOG_NOTICE);
+  }
+  else {
+      drupal_set_message(t('You are not a member of @team, so you cannot revoke
+        your membership to it.', array('@team' => $boincteam->name)));
+  }
+  drupal_goto("community/teams/{$team_id}");
+}
+
+/**
+ * Output a plain text list of member email addresses
+ */
+function boincteam_members_email_list($team_id) {
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $output = '';
+  
+  db_set_active('boinc');
+  $result = db_query("
+    SELECT 
+      u.name, u.email_addr
+    FROM {user} u
+    WHERE u.teamid = %d
+    ORDER BY u.email_addr ASC",
+    $boincteam_id
+  );
+  db_set_active('default');
+  
+  while ($member = db_fetch_object($result)) {
+    $output .= "{$member->name} <{$member->email_addr}>\n";
+  }
+  
+  header('Content-type: text/plain');
+  print $output;
+}
+
+/**
+ * Remove team admin status from a user
+ */
+function boincteam_remove_admin($team_id, $user_id) {
+  global $user;
+  $account = user_load($user_id);
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincuser_id = $account->boincuser_id;
+  
+  if (boincteam_is_admin($team_id, $account->uid)) {
+    // Update the team in the BOINC db
+    db_set_active('boinc');
+    db_query("
+      DELETE FROM {team_admin} WHERE
+        teamid = '%d' AND userid = '%d'",
+      $boincteam_id,
+      $boincuser_id
+    );
+    db_set_active('default');
+    drupal_set_message(t('@user is no longer an admin of @team.',
+      array(
+        '@user' => $account->boincuser_name,
+        '@team' => $team->title
+      )
+    ));
+    watchdog('boincteam', 'User @current_user removed admin status for user
+      @uid from team @nid',
+      array(
+        '@current_user' => $user->uid,
+        '@uid' => $account->uid, 
+        '@nid' => $team_id
+      ), WATCHDOG_NOTICE);
+  }
+  drupal_goto("community/teams/{$team_id}/edit/admins");
+}
+
+/**
+ * Remove a user from a team
+ */
+function boincteam_remove_member($team_id, $user_id) {
+  global $user;
+  $account = user_load($user_id);
+  
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  if ($account->team == $team_id) {
+    require_boinc('team');
+    $boincuser = boincuser_load($user_id, TRUE);
+    user_quit_team($boincuser);
+    drupal_set_message(t('@user has been removed from @team.',
+      array(
+        '@user' => $account->boincuser_name,
+        '@team' => $boincteam->name
+      )
+    ));
+    watchdog('boincteam', 'User @current_user removed user @uid from team @nid',
+      array(
+        '@current_user' => $user->uid,
+        '@uid' => $account->uid, 
+        '@nid' => $team_id
+      ), WATCHDOG_NOTICE);
+  }
+  else {
+      drupal_set_message(t('@user is not a member of @team, so you cannot
+        revoke the membership.', array(
+          '@user' => $account->boincuser_name,
+          '@team' => $boincteam->name
+        )
+      ));
+  }
+  drupal_goto("community/teams/{$team_id}/edit/members");
+}
+
+/**
+ * Request a foundership transfer
+ */
+function boincteam_request_foundership($team_id) {
+  global $user;
+  $account = user_load($user->uid);
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  $boincuser_id = $account->boincuser_id;
+  
+  if (boincteam_is_founder($team_id, $account->uid)) {
+    // Shouldn't even be here...
+    drupal_set_message(t('@user is already the team founder.',
+      array(
+        '@user' => $account->boincuser_name
+      )
+    ), 'warning');
+  }
+  elseif (!boincteam_new_foundership_transfer_request_ok($team_id)) {
+    // It hasn't been long enough since the last transfer request
+    drupal_set_message(t('A foundership change was requested during the last 90
+      days, so new requests are not allowed. Please try again later.'
+    ), 'warning');
+  }
+  elseif (boincteam_is_member($team_id, $account->uid)) {
+    // Log the transfer request
+    db_set_active('boinc');
+    db_query("
+      UPDATE {team}
+      SET ping_user = '%d', ping_time='%d'
+      WHERE id = '%d'",
+      $boincuser_id, time(), $boincteam_id
+    );
+    db_set_active('default');
+    drupal_set_message(t('You have requested foundership of @team. The current
+      founder has 60 days to respond to this request.',
+      array(
+        '@team' => $team->title
+      )
+    ));
+    watchdog('boincteam', 'User @user requested foundership of team @nid',
+      array(
+        '@current_user' => $account->uid,
+        '@nid' => $team_id
+      ), WATCHDOG_NOTICE);
+  }
+  drupal_goto("community/teams/{$team_id}");
+}
+
+/**
+ * Transfer foundership to another team member
+ */
+function boincteam_set_founder($team_id, $user_id) {
+  global $user;
+  $account = user_load($user_id);
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincuser_id = $account->boincuser_id;
+  
+  if (boincteam_is_member($team_id, $account->uid)) {
+    // Update the team in the BOINC db
+    db_set_active('boinc');
+    db_query("
+      UPDATE {team}
+      SET userid = '%d', ping_user=0
+      WHERE id = '%d'",
+      $boincuser_id, $boincteam_id
+    );
+    db_set_active('default');
+    drupal_set_message(t('Foundership of @team has been transfered to @user.',
+      array(
+        '@user' => $account->boincuser_name,
+        '@team' => $team->title
+      )
+    ));
+    watchdog('boincteam', 'User @current_user transferred foundership of team
+      @nid to user @uid',
+      array(
+        '@current_user' => $user->uid,
+        '@uid' => $account->uid, 
+        '@nid' => $team_id
+      ), WATCHDOG_NOTICE);
+  }
+  drupal_goto("community/teams/{$team_id}");
+}
+
+/**
+ * See if a new foundership transfer request is allowed
+ */
+function boincteam_new_foundership_transfer_request_ok($team_id) {
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  $now = time();
+  if ($boincteam->ping_user <= 0) {
+    if ($boincteam->ping_time < $now - 60 * (24*60*60)) {
+      return TRUE;
+    }
+    return FALSE;
+  }
+  if ($boincteam->ping_time < $now - 90 * (24*60*60)) {
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/** 
+ * The time at which foundership can be transferred if the founder has not
+ * responded to the request
+ */
+function boincteam_foundership_transfer_ok_time($boincteam) {
+    return $boincteam->ping_time + 60 * (24*60*60);
+}
+
+/**
+ * Check if foundership can now be transferred
+ */
+function boincteam_foundership_transfer_ok($boincteam) {
+    return (time() > boincteam_foundership_transfer_ok_time($boincteam));
+}
+
+/**
+ * Check if a user has an active foundership request with a team
+ */
+function boincteam_user_requested_foundership($team_id, $user_id = NULL) {
+  if (!$user_id) {
+    global $user;
+    $user_id = $user->uid;
+  }
+  $account = user_load($user_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  
+  if ($boincteam->ping_user == $account->boincuser_id) {
+    // Be sure the request is still active
+    return !boincteam_new_foundership_transfer_request_ok($team_id);
+  }
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Pane content for panels
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * General info about team admins
+ */                                         
+function boincteam_about_admins_panel() {
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('About team admins', array(), NULL, 'boinc:team-admins-panel') . '</h2>';
+  $output .= '<div>';
+  $output .= '<p>' . bts('Team admins can:', array(), NULL, 'boinc:team-admins-panel') . '</p>';
+  $output .= '<ul>';
+  $output .= '  <li>' . bts('Edit team information', array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '  <li>' . bts("View the team's join / quit history", array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '  <li>' . bts('Moderate the team forum', array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '  <li>' . bts('Remove members from the team', array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '  <li>' . bts('Disband a team if it has no members', array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  $output .= '<div>';
+  $output .= '<p>' . bts('Team admins cannot:', array(), NULL, 'boinc:team-admins-panel') . '</p>';
+  $output .= '<ul>';
+  $output .= '  <li>' . bts('Change the team founder', array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '  <li>' . bts('Remove members', array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '  <li>' . bts('Add / Remove team admins', array(), NULL, 'boinc:team-admins-panel') . '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  $output .= '<p>' . bts('If a team admin quits the team, they cease to be a'
+    . ' team admin. We recommend only selecting people you know and trust', array(), NULL, 'boinc:team-admins-panel')
+    . '</p>';
+  return $output;
+}
+
+/**
+ * General info about changing the team founder
+ */                                         
+function boincteam_about_founder_panel() {
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Changing the team founder', array(), NULL, 'boinc:team-founder-panel')
+    . '</h2>';
+  $output .= '<div>';
+  $output .= '<p>' . bts('Notes about changes in foundership:', array(), NULL, 'boinc:team-founder-panel') . '</p>';
+  $output .= '<ul>';
+  $output .= '  <li>' . bts('Any member of the team is eligible', array(), NULL, 'boinc:team-founder-panel') . '</li>';
+  $output .= '  <li>' . bts('Current founder becomes a normal user', array(), NULL, 'boinc:team-founder-panel') . '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  $output .= '<div>';
+  $output .= '<p>' . bts('Foundership can be requested by team members:', array(), NULL, 'boinc:team-founder-panel')
+    . '</p>';
+  $output .= '<ul>';
+  $output .= '  <li>' . bts('One request is allowed at a time', array(), NULL, 'boinc:team-founder-panel') . '</li>';
+  $output .= '  <li>' . bts('It must be 60 days since any previous request', array(), NULL, 'boinc:team-founder-panel')
+    . '</li>';
+  $output .= '  <li>' . bts('Any active request must be older than 90 days', array(), NULL, 'boinc:team-founder-panel')
+    . '</li>';
+  $output .= '  <li>' . bts('Current founder has 60 days to respond to a'
+    . ' request', array(), NULL, 'boinc:team-founder-panel') . '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+ * Link to create a new team
+ */
+function boincteam_create_team_link_panel() {
+  global $user;
+  $account = user_load($user->uid);
+  $unrestricted_role = array_search('verified contributor', user_roles(true));
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Create a new team', array(), NULL, 'boinc:create-team-panel') . '</h2>';
+  $output .= '<p>' . bts('If you cannot find a team that is right for you, you'
+    . ' can create a team.', array(), NULL, 'boinc:create-team-panel') . '</p>';
+  $output .= '<ul class="tab-list">';
+  $output .= '  <li class="first last tab">';
+  if (isset($account->roles[$unrestricted_role])) {
+    $output .= l(bts('Create new team', array(), NULL, 'boinc:create-team-panel'), 'community/teams/add');
+  } elseif ($account->uid <= 0) {
+    $output .= l(
+      bts('Login to create a new team', array(), NULL, 'boinc:create-team-panel'),
+      'user/login',
+      array('query' => drupal_get_destination())
+    );
+  } else {
+    $min_credit_needed = variable_get('boinc_comment_min_credit', 0);
+    $credit_needed = $min_credit_needed - $account->boincuser_total_credit;
+    $output .= '[';
+    if ($credit_needed == 1) {
+      $output .= bts('You must earn 1 more credit!', array(), NULL, 'boinc:create-team-panel');
+    }
+    else {
+      $output .= bts('You must earn @count more credits!',
+        array('@count' => $credit_needed),
+	NULL, 'boinc:create-team-panel'
+      );
+    }
+    $output .= ']';
+  }
+  $output .= '  </li>';
+  $output .= '</ul>';
+  return $output;
+}
+
+/**
+ * Create team form
+ */
+function boincteam_create_team_panel() {
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Create a team', array(), NULL, 'boinc:create-team-panel') . '</h2>';
+  $output .= drupal_get_form('boincteam_create_form');
+  
+  return $output;
+}
+
+/**
+ * Link to user's team
+ */
+function boincteam_dashboard_panel($uid = NULL) {
+  if (!$uid) {
+    global $user;
+    $uid = $user->uid;
+  }
+  $output = '';
+  $account = user_load($uid);
+  if ($account->team) {
+    $team = boincteam_load(boincteam_lookup_id($account->team));
+    $output .= '<h2 class="pane-title">' . bts('Team', array(), NULL, 'boinc:team-dashboard') . '</h2>';
+    $output .= '<div class="stats">';
+    $output .= '  <label>' . bts('Name', array(), NULL, 'boinc:user-or-team-name') . ': </label>';
+    $output .= '  <span>' . l($team->name, "community/teams/{$account->team}") . '</span>';
+    $output .= '</div>' . "\n";
+    $output .= '<div class="stats">';
+    $output .= '  <label>' . bts('Member since', array(), NULL, 'boinc:user-info') . ': </label>';
+    $output .= '  <span>' . date('j F Y', boincteam_get_member_join_date($team->id, $account->boincuser_id)) . '</span>';
+    $output .= '</div>' . "\n";
+    $output .= '<div class="stats">';
+    $output .= '  <label>' . bts('Country', array(), NULL, 'boinc:country-of-origin') . ': </label>';
+    $output .= '  <span>' . $team->country . '</span>';
+    $output .= '</div>' . "\n";
+    $output .= '<div class="stats">';
+    $output .= '  <label>' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . ': </label>';
+    $output .= '  <span>' . number_format($team->total_credit, 2) . '</span>';
+    $output .= '</div>' . "\n";
+  }
+  return $output;
+}
+
+/**
+ * Edit team form
+ */
+function boincteam_edit_team_panel($team_id) {
+  $team = node_load($team_id);
+  $output = '';
+  $output .= '<h2 class="pane-title">' . $team->title . '</h2>';
+  $output .= drupal_get_form('boincteam_edit_form', $team_id);
+  
+  return $output;
+}
+
+/**
+ * Link to join a team
+ */
+function boincteam_join_team_panel($team_id) {
+  $team = node_load($team_id);
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Join team', array(), NULL, 'boinc:join-team-panel') . '</h2>';
+  $output .= '<p>' . bts('Click here to become a member of @this_team',
+    array('@this_team' =>$team->title), NULL, 'boinc:join-team-panel') . '</p>';
+  $output .= '<ul class="tab-list">';
+  $output .= '  <li class="first last tab">' . 
+    l(bts('Join this team', array(), NULL, 'boinc:join-team-panel'), "community/teams/{$team_id}/join") . '</li>';
+  $output .= '</ul>';
+  return $output;
+}
+
+/**
+ * Link to leave a team
+ */
+function boincteam_leave_team_panel($team_id) {
+  $team = node_load($team_id);
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Leave team', array(), NULL, 'boinc:leave-team-panel') . '</h2>';
+  $output .= '<p>' . bts('Click here to revoke your membership with'
+    . ' @this_team', array('@this_team' =>$team->title), NULL, 'boinc:leave-team-panel') . '</p>';
+  $output .= '<ul class="tab-list">';
+  $output .= '  <li class="first last tab">' . 
+    l(bts('Leave this team', array(), NULL, 'boinc:leave-team-panel'), "community/teams/{$team_id}/leave") . '</li>';
+  $output .= '</ul>';
+  return $output;
+}
+
+/**
+ * General info about team admins
+ */                                         
+function boincteam_manage_admins_panel_header($team_id) {
+  $output = '';
+  $output .= '<h4>' . bts('Add team admin', array(), NULL, 'boinc:team-manage-admins') . '</h4>';
+  $output .= drupal_get_form('boincteam_add_admin_form', $team_id);
+  $output .= '<div class="clearfix"></div>';
+  $output .= '<h4>' . bts('Current team admins', array(), NULL, 'boinc:team-manage-admins') . '</h4>';
+  
+  return $output;
+}
+
+/**
+ * Team management tools
+ */
+function boincteam_management_panel($team_id) {
+  $is_founder = boincteam_is_founder($team_id);
+  $team = node_load($team_id);
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Manage team', array(), NULL, 'boinc:team-manage') . '</h2>';
+  
+  // Member list
+  $output .= '<div class="form-item">';
+  $output .= '  <label>' . bts('View member list', array(), NULL, 'boinc:team-manage') . '</label>';
+  $output .= '  <ul class="tab-list">';
+  $output .= '    <li class="first tab primary">' . 
+    l('HTML', "community/teams/{$team_id}/members") . '</li>';
+  $output .= '    <li class="last tab primary">' .
+    l('text', "community/teams/{$team_id}/members/email") . '</li>';
+  $output .= '  </ul>';
+  $output .= '  <div class="description">';
+  $output .=   bts('Member names and emails', array(), NULL, 'boinc:team-manage');
+  $output .= '  </div>';
+  $output .= '</div>'; 
+  
+  // Team history
+  $output .= '<div class="form-item">';
+  $output .= '  <label>' . bts('View change history', array(), NULL, 'boinc:team-manage') . '</label>';
+  $output .= '  <ul class="tab-list">';
+  $output .= '    <li class="first tab primary">' . 
+    l('HTML', "community/teams/{$team_id}/history") . '</li>';
+  $output .= '    <li class="last tab primary">' .
+    l('XML', "community/teams/{$team_id}/history/xml") . '</li>';
+  $output .= '  </ul>';
+  $output .= '  <div class="description">';
+  $output .=   bts('See member activity', array(), NULL, 'boinc:team-manage');
+  $output .= '  </div>';
+  $output .= '</div>';
+  
+  // Team forum
+  if (module_exists('boincteam_forum')) {
+    if ($is_founder) {
+      // Determine whether to create a forum or edit the existing forum
+      // (multiple forums per team could be supported in the future)
+      $team_forum_link_path = 'add';
+      $team_forums = boincteam_forum_list();
+      if ($team_forums) {
+        $team_forum = reset($team_forums);
+        $team_forum_link_path = "{$team_forum->tfid}/edit";
+      }
+      $output .= '<div class="form-item">';
+      $output .= '  <ul class="tab-list action-list">';
+      $output .= '    <li class="first tab primary">' .   
+        l(bts('Manage team message board', array(), NULL, 'boinc:team-manage'),
+          "community/teams/{$team_id}/forum/{$team_forum_link_path}"
+        );
+      $output .= '    </li>';
+      $output .= '  <div class="description">';
+      $output .=   bts('Create or manage message board', array(), NULL, 'boinc:team-manage');
+      $output .= '  </div>';
+      $output .= '</div>';
+    }
+  }
+  
+  // Remove members
+  $output .= '<div class="form-item">';
+  $output .= '  <ul class="tab-list action-list">';
+  $output .= '    <li class="first tab primary">' . 
+    l(bts('Remove members', array(), NULL, 'boinc:team-admins-panel'), "community/teams/{$team_id}/edit/members") . '</li>';
+  
+  if ($is_founder) {
+    
+    // Change founder
+    $output .= '    <li class="tab primary">' . 
+      l(bts('Change founder', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/founder") . '</li>';
+      
+      // Manage admins
+    $output .= '    <li class="tab primary">' . 
+      l(bts('Manage team admins', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/admins") . '</li>';
+  }
+  
+  // Edit team information
+  $output .= '    <li class="tab primary">' . 
+    l(bts('Edit team info', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/info") . '</li>';
+    
+  if ($is_founder) {
+    
+    // Delete the team
+    $output .= '    <li class="last tab primary">' . 
+      l(bts('Remove team', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/delete") . '</li>';
+  }
+  
+  $output .= '  </ul>';
+  $output .= '</div>';
+  
+  return $output;
+}
+
+/**
+ * Link to user's team
+ */
+function boincteam_member_link_panel() {
+  global $user;
+  $account = user_load($user->uid);
+  $team = node_load($account->team);
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('My team', array(), NULL, 'boinc:account-team-panel') . '</h2>';
+  $output .= '<p>' . bts('You are a member of @team.', 
+    array('@team' => $team->title), NULL, 'boinc:account-team-panel') . '</p>';
+  $output .= '<ul class="tab-list">';
+  $output .= '  <li class="first last tab">' . 
+    l(bts('View my team', array(), NULL, 'boinc:account-team-panel'), "community/teams/{$account->team}") . '</li>';
+  $output .= '</ul>';
+  return $output;
+}
+
+/**
+ * Link to request foundership transfer of a team
+ */
+function boincteam_request_foundership_panel($team_id) {
+  global $user;
+  $account = user_load($user->uid);
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  $boincuser_id = $account->boincuser_id;
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Request foundership', array(), NULL, 'boinc:team-request-foundership') . '</h2>';
+  
+  if (boincteam_user_requested_foundership($team_id)) {
+    $deadline = boincteam_foundership_transfer_ok_time($boincteam);
+    $days_to_deadline = ceil(($deadline - time()) / (24*60*60));
+    $request_age = 60 - $days_to_deadline;
+    $days_to_respond = 30 + $days_to_deadline;
+    if (time() > $deadline) {
+      $output .= '<p>';
+      if ($request_age == 1) {
+        $output .= bts('1 day has elapsed since your request and'
+          . ' the founder has not responded.', array(), NULL, 'boinc:team-request-foundership');
+      }
+      else {
+        $output .= bts('@count days have elapsed since your request and'
+          . ' the founder has not responded.',
+          array('@count' => $request_age),
+          NULL, 'boinc:team-request-foundership');
+      }
+      $output .= ' ';
+      if ($days_to_respond == 1) {
+        $output .= bts('You now have 1 day to assume foundership before'
+          . ' another team member may submit a request.', array(), NULL, 'boinc:team-request-foundership');
+      }
+      else {
+        $output .= bts('You now have @count days to assume foundership before'
+          . ' another team member may submit a request.',
+          array('@count' => $days_to_respond),
+          NULL, 'boinc:team-request-foundership');
+      }
+      $output .= '</p>';
+      $output .= '<ul class="tab-list">';
+      $output .= '  <li class="first last tab">' . 
+        l(bts('Assume foundership', array(), NULL, 'boinc:team-request-foundership'), "community/teams/{$team_id}/assume-foundership") . '</li>';
+      $output .= '</ul>';
+    }
+    else {
+      $output .= '<p>';
+      if ($days_to_deadline == 1) {
+        $output .= bts('The team founder has 1 day to respond to your'
+          . ' transfer request.',
+          NULL, 'boinc:team-request-foundership');
+      }
+      else {
+        $output .= bts('The team founder has @count days to respond to your'
+          . ' transfer request.', array('@count' => $days_to_deadline),
+          NULL, 'boinc:team-request-foundership');
+      }
+      $output .= '</p>';
+    }
+  }
+  elseif (!boincteam_new_foundership_transfer_request_ok($team_id)) {
+    // If this user does not have a transfer request pending, but new requests
+    // are not allowed, set the deadline to 90 days instead of 60 (as the user
+    // who made the request has 30 additional days to assume foundership if 
+    // there is no response to the request)
+    $deadline = boincteam_foundership_transfer_ok_time($boincteam);
+    $days_to_deadline = ceil(($deadline - time()) / (24*60*60)) + 30;
+    $output .= '<p>';
+    $output .= bts('A team foundership change was already requested recently.'
+      . ' Only one request is allowed within a period of 90 days.',
+      NULL, 'boinc:team-request-foundership');
+    if ($days_to_deadline == 1) {
+      $output .= ' (' . bts('1 day remaining', array(), NULL, 'boinc:team-request-foundership') . ')';
+    }
+    else {
+      $output .= ' (' . bts('@count days remaining',
+        array('@count' => $days_to_deadline),
+        NULL, 'boinc:team-request-foundership') . ')';
+    }
+    $output .= '</p>';
+  }
+  else {
+    $output .= '<p>' . bts('If the team founder is not active and you want to'
+      . ' assume the role of founder, click below to request foundership of'
+      . ' @this_team.',
+      array('@this_team' =>$team->title), NULL, 'boinc:team-request-foundership') . '</p>';
+    $output .= '<ul class="tab-list">';
+    $output .= '  <li class="first last tab">' . 
+      l(bts('Initiate request', array(), NULL, 'boinc:team-request-foundership'), "community/teams/{$team_id}/request-foundership") . '</li>';
+    $output .= '</ul>';
+  }
+  return $output;
+}
+
+/**
+ * Respond to foundership transfer requests for a team
+ */
+function boincteam_request_foundership_response_panel($team_id) {
+  global $user;
+  $account = user_load($user->uid);
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  $boincteam = boincteam_load($boincteam_id);
+  $boincuser_id = $account->boincuser_id;
+  $output = '';
+  
+  if ($boincteam->ping_user) {
+    if ($boincteam->ping_user < 0) {
+      $member = user_load(boincuser_lookup_uid(-$boincteam->ping_user));
+      $output .= '<h2 class="pane-title">' . bts('Obsolete transfer request', array(), NULL, 'boinc:team-request-foundership-response')
+        . '</h2>';
+      $output .= '<p>' . bts('Team member @name requested team foundership on'
+        . ' @date, but then left the team. This request is now canceled.',
+        array(
+          '@name' => $member->boincuser_name,
+          '@date' => date('j M Y', $boincteam->ping_time),
+        ),
+        NULL, 'boinc:team-request-foundership-response') . '</p>';
+      // Automatically cancel the request
+      db_set_active('boinc');
+      db_query("
+        UPDATE {team}
+        SET ping_user=0
+        WHERE id = '%d'",
+        $boincteam_id
+      );
+      db_set_active('default');
+    }
+    else {
+      $member = user_load(boincuser_lookup_uid($boincteam->ping_user));
+      $output .= '<h2 class="pane-title">' . bts('Respond to transfer request', array(), NULL, 'boinc:team-request-foundership-response')
+        . '</h2>';
+      $output .= '<p>' . bts('Team member @name has requested team foundership.'
+        . ' This may be because you left the team or have not had contact with'
+        . ' the team for a long time.', array(
+          '@name' => $member->boincuser_name,
+        )
+      , array(), NULL, 'boinc:team-request-foundership-response') . '</p>';
+      $output .= '<p>' . bts("If you don't decline the request by @date, @name"
+        . ' will have the option of assuming team foundership. (note: To'
+        . ' accept the request, assign foundership to @name using the form'
+        . ' below)',
+        array(
+          '@name' => $member->boincuser_name,
+          '@date' => date('j M Y', boincteam_foundership_transfer_ok_time($boincteam)),
+        ),
+        NULL, 'boinc:team-request-foundership-response') . '</p>';
+      $output .= '<ul class="tab-list">';
+      $output .= '  <li class="first last tab">' . 
+        l(bts('Deny request', array(), NULL, 'boinc:team-request-foundership-response'), "community/teams/{$team_id}/deny-foundership-request") . '</li>';
+      $output .= '</ul>';
+    }
+  }
+  return $output;
+}
+
+function boincteam_search_panel() {
+  $output = '';
+  if (module_exists('global_search_teams_solr')) {
+    $output .= '<h2 class="pane-title">' . bts('Search teams', array(), NULL, 'boinc:search-team') . '</h2>';
+    //$output .= '<p>' . bts('Render a search form here.', array(), NULL, 'boinc:search-team') . '</p>';
+    $output .= '<p>' . boincteam_search_view() . '</p>';
+  }
+  return $output;
+}
+
+function boincteam_search_view($type = 'team') {
+  // Get the team search form
+  $search_page = apachesolr_search_page_load('team_search');
+  module_load_include('inc', 'apachesolr_search', 'apachesolr_search.pages');
+  return drupal_get_form('apachesolr_search_custom_page_search_form', $search_page);
+}
+
+/**
+ * General info about the concept of teams
+ */                                         
+function boincteam_topic_overview_panel() {
+  $site_name =  variable_get('site_name', 'Drupal-BOINC');
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Teams', array(), NULL, 'boinc:team-general-info') . '</h2>';
+  $output .= '<div class="">';
+  $output .= '<p>' . bts('@project participants may form teams. You may belong'
+    . ' to only one team. You can join or quit a team at any time. To join a'
+    . ' team, visit its team page and click "Join this team". Each team has a'
+    . ' founder who may:', array('@project' => $site_name), NULL, 'boinc:team-general-info') . '</p>';
+  $output .= '<ul>';
+  $output .= '  <li>' . bts("access team members' email addresses", array(), NULL, 'boinc:team-general-info') . '</li>';
+  $output .= '  <li>' . bts("edit the team's name and description", array(), NULL, 'boinc:team-general-info') . '</li>';
+  $output .= '  <li>' . bts('add or remove team admins', array(), NULL, 'boinc:team-general-info') . '</li>';
+  $output .= '  <li>' . bts('remove members from the team', array(), NULL, 'boinc:team-general-info') . '</li>';
+  $output .= '  <li>' . bts('disband a team if it has no members', array(), NULL, 'boinc:team-general-info') . '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+ * Link to view the member list for a team
+ *//*
+function boincteam_view_member_list_panel($team_id) {
+  $team = boincteam_load(boincteam_lookup_id($team_id), TRUE);
+  $founder = user_load(get_drupal_id($team->userid));
+  $new_members = array();
+  if ($team->new_members) {
+    foreach ($team->new_members as $member) {
+      $account = user_load(get_drupal_id($member->id));
+      $new_members[] = l($account->boincuser_name, "account/{$account->uid}");
+    }
+  }
+  $output = '';
+  $output .= '<h2 class="pane-title">' . $team->name . '</h2>';
+  $output .= '<div>' . l($team->name, "community/teams/{$team_id}") . '</div>';
+  $output .= '<div>';
+  $output .= '</div>';
+  return $output;
+}*/
+
+/**
+ * Link to view a team
+ */
+function boincteam_view_team_panel($team_id) {
+  $team = node_load($team_id);
+  if ($team->type != "team") {
+    return;
+  }
+  $boincteam = boincteam_load(boincteam_lookup_id($team_id), TRUE);
+  $founder = user_load(get_drupal_id($boincteam->userid));
+  $new_members = array();
+  if ($boincteam->new_members) {
+    foreach ($boincteam->new_members as $member) {
+      $account = user_load(get_drupal_id($member->id));
+      $new_members[] = l($account->boincuser_name, "account/{$account->uid}");
+    }
+  }
+  $output = '';
+  $output .= '<h2 class="pane-title">' . $boincteam->name . '</h2>';
+  $output .= '<div>';
+  $output .= '<div class="left-column">';
+  $output .= '<ul class="stats">';
+  $output .= '  <li>' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . ': ' . number_format($boincteam->total_credit, 2) . '</li>';
+  $output .= '  <li>' . bts('Recent average credit', array(), NULL, 'boinc:user-or-team-RAC') . ': ' . number_format($boincteam->expavg_credit, 2) . '</li>';
+  $output .= '  <li>' . bts('Country', array(), NULL, 'boinc:country-of-origin') . ': ' . $boincteam->country . '</li>';
+  $output .= '  <li>' . bts('Type', array(), NULL, 'boinc:view-team-info') . ': ' . boincteam_get_type($team_id) . '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  $output .= '<div class="right-column">';
+  $output .= '<ul class="stats">';
+  $output .= '  <li>' . bts('Founder', array(), NULL, 'boinc:view-team-info') . ': ' . l($founder->boincuser_name, "account/{$founder->uid}") . '</li>';
+  $output .= '  <li>' . bts('New members in last day', array(), NULL, 'boinc:view-team-info') . ': ' . implode('·', $new_members) . '</li>';
+  $output .= '  <li>' . bts('Total members', array(), NULL, 'boinc:view-team-info') . ': ' . l($boincteam->nusers, "community/teams/{$team_id}/members") . '</li>';
+  $output .= '  <li>' . bts('Active members', array(), NULL, 'boinc:view-team-info') . ': ' . $boincteam->nusers_active . '</li>';
+  $output .= '  <li>' . bts('Members with credit', array(), NULL, 'boinc:view-team-info') . ': ' . $boincteam->nusers_worked . '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  $output .= '</div>';
+  $output .= '<div class="clearfix"></div>';
+  if ($boincteam->url) {
+    $output .= '<div class="stats">';
+    $output .= bts('Website', array(), NULL, 'boinc:website-of-user-or-team') . ': ' . l("http://{$boincteam->url}", "http://{$boincteam->url}");
+    $output .= '</div>';
+  }
+  if ($team->body) {
+    $output .= '<h3>' . bts('Description', array(), NULL, 'boinc:team-description') . '</h3>';
+    $output .= check_markup($team->body, $team->format);
+    $output .= '</div>';
+  }
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam.views.inc b/drupal/sites/default/boinc/modules/boincteam/boincteam.views.inc
new file mode 100644
index 0000000..b3fd6c9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam.views.inc
@@ -0,0 +1,455 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Exposes BOINC team data to Views.
+ */
+
+/**
+ * Implementation of hook_views_data().
+ * Defines the structure of data and how Views should handle it (i.e. which
+ * relationships exist; is data text, integer, float; what sort options exist).
+ */
+function boincteam_views_data() {
+  
+  // -----------------------------------------------------------------------------------------------
+  // Definition for team table
+  // -----------------------------------------------------------------------------------------------
+  
+  $data['team']['table']['group'] = t('BOINC');
+  
+  $data['team']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC team'),
+      'help' => t('BOINC data for a team'),
+      'database' => 'boinc'
+  );
+  
+  // This table references the {user} table.
+  // This join creates an 'implicit' relationship to the user table, so that when
+  // "User" is the base table, the fields are automatically available.
+  
+  // Index this array by the table name to which this table refers.
+  // 'left_field' is the primary key in the referenced table.
+  // 'field' is the foreign key in this table.
+  
+  $data['team']['table']['join'] = array(
+    'user' => array(
+      'left_field' => 'id',
+      'field' => 'userid',
+    ),
+  );
+
+  // Describe each of the individual fields in this table to Views. For
+  // each field, you may define what field, sort, argument, and/or filter
+  // handlers it supports. This will determine where in the Views interface you
+  // may use the field.
+  
+  // Primary keys allowed as arguments
+  
+  $data['team']['id'] = array(
+    'title' => bts('Team ID', array(), NULL, 'boinc:team-id'),
+    'help' => t('The BOINC ID of the team.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincteam_id', // custom handler
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'team_delta',
+      'field' => 'id',
+      'base field' => 'teamid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Team History')
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['team']['userid'] = array(
+    'title' => bts('Founder', array(), NULL, 'boinc:view-team-info'),
+    'help' => t('The founder of this team.'),
+    // This is a foreign key to the {user} table. When the view is configured
+    // with this relationship, all the fields for the related user node will be 
+    // available.
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincuser_id',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'user',
+      'field' => 'userid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('User')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of general fields (alphabetized)
+  /*
+  $data['team']['create_time'] = array(
+    'title' => bts('Team established', array(), NULL, 'boinc:date-team-established'),
+    'help' => t('When the BOINC team was created.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['team']['url'] = array(
+    'title' => bts('Website', array(), NULL, 'boinc:website-of-user-or-team'),
+    'help' => t('The URL of a team.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  */
+   
+  $data['team']['country'] = array(
+    'title' => bts('Country', array(), NULL, 'boinc:country-of-origin'),
+    'help' => t('The country of a team.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['team']['expavg_credit'] = array(
+    'title' => bts('Recent average credit', array(), NULL, 'boinc:user-or-team-RAC'),
+    'help' => t('A decaying average of team credit per day.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['team']['name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:user-or-team-name'),
+    'help' => t('The name of the team.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['team']['nusers'] = array(
+    'title' => bts('Members', array(), NULL, 'boinc:team-members'),
+    'help' => t('Count of team members.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['team']['total_credit'] = array(
+    'title' => bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits'),
+    'help' => t('The total team accumulated BOINC credit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // -----------------------------------------------------------------------------------------------
+  // Definition for team_admin table
+  // -----------------------------------------------------------------------------------------------
+  
+  $data['team_admin']['table']['group'] = t('BOINC');
+  
+  $data['team_admin']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC team admins'),
+      'help' => t('BOINC admins for a team'),
+      'database' => 'boinc'
+  );
+  
+  // This table references the {team} table.
+  // This join creates an 'implicit' relationship to the team table, so that when
+  // "Team" is the base table, the fields are automatically available.
+  
+  // Index this array by the table name to which this table refers.
+  // 'left_field' is the primary key in the referenced table.
+  // 'field' is the foreign key in this table.
+  
+  $data['team_admin']['table']['join'] = array(
+    'team' => array(
+      'left_field' => 'id',
+      'field' => 'teamid',
+    ),
+  );
+
+  // Describe each of the individual fields in this table to Views. For
+  // each field, you may define what field, sort, argument, and/or filter
+  // handlers it supports. This will determine where in the Views interface you
+  // may use the field.
+  
+  // Primary keys allowed as arguments
+  
+  $data['team_admin']['teamid'] = array(
+    'title' => bts('Team ID', array(), NULL, 'boinc:team-id'),
+    'help' => t('The BOINC ID of the team on which this user is an admin.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincteam_id', // custom handler
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'team',
+      'field' => 'teamid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Team')
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['team_admin']['userid'] = array(
+    'title' => bts('User ID', array(), NULL, 'boinc:user-details'),
+    'help' => t('The user that is a team admin.'),
+    // This is a foreign key to the {user} table. When the view is configured
+    // with this relationship, all the fields for the related user node will be 
+    // available.
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincteam_id',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'user',
+      'field' => 'userid',
+      'handler' => 'views_handler_relationship',
+      'label' => bts('User', array(), NULL, 'boinc:user-on-team')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of general fields (alphabetized)
+  
+  $data['team_admin']['create_time'] = array(
+    'title' => bts('Admin since', array(), NULL, 'boinc:team-when-user-became-an-admin'),
+    'help' => t('When the BOINC user became a team admin.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  
+  // -----------------------------------------------------------------------------------------------
+  // Definition for team_delta table
+  // -----------------------------------------------------------------------------------------------
+  
+  $data['team_delta']['table']['group'] = t('BOINC');
+
+  // Describe each of the individual fields in this table to Views. For
+  // each field, you may define what field, sort, argument, and/or filter
+  // handlers it supports. This will determine where in the Views interface you
+  // may use the field.
+  
+  // Primary keys allowed as arguments
+  
+  $data['team_delta']['teamid'] = array(
+    'title' => bts('Team ID', array(), NULL, 'boinc:team-id'),
+    'help' => t('The team ID for this team history event.'),
+    // This is a foreign key to the {team} table. When the view is configured
+    // with this relationship, all the fields for the related user node will be 
+    // available.
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincteam_id',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['team_delta']['userid'] = array(
+    'title' => bts('User ID', array(), NULL, 'boinc:user-details'),
+    'help' => t('The user for this team history event.'),
+    'relationship' => array(
+      'base' => 'user',
+      'field' => 'userid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('User')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of general fields (alphabetized)
+  
+  $data['team_delta']['joining'] = array(
+    'title' => bts('User joined', array(), NULL, 'boinc:user-joined-or-leaving-team'),
+    'help' => t('Whether the event is the user joining the team or leaving.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['team_delta']['timestamp'] = array(
+    'title' => bts('Timestamp', array(), NULL, 'boinc:team-history-timestamp'),
+    'help' => t('When the BOINC team history event took place.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['team_delta']['total_credit'] = array(
+    'title' => bts('Total credit', array(), NULL, 'user-or-team-total-credits'),
+    'help' => t('The total accumulated BOINC credit of the user when the
+      history event took place.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  ); 
+  
+  return $data;
+}
+
+/*
+ * hook_views_handlers(): Reference custom handlers for data.
+ * Custom handlers can manipulate data in useful ways. The boincteam_id
+ * argument takes a Drupal user ID and converts it to BOINC ID via a
+ * reference table for seamless access of user data in the BOINC database.
+ */
+
+function boincteam_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'boincteam') . '/views',
+    ),
+    'handlers' => array(
+      'views_handler_argument_boincteam_id' => array(
+        'parent' => 'views_handler_argument_numeric'
+      )
+    )
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.info b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.info
new file mode 100644
index 0000000..42d371f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.info
@@ -0,0 +1,6 @@
+; $Id$
+name = BOINC team forum
+description = Enable team specific message boards
+core = 6.x
+dependencies[] = boincteam
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.install b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.install
new file mode 100644
index 0000000..71c6dd2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.install
@@ -0,0 +1,118 @@
+<?php
+// $Id$
+function boincteam_forum_schema() {
+  $schema['boincteam_forum'] = array(
+    'description' => t('Stores custom forums for BOINC teams.'),
+    'fields' => array(
+      'tfid' => array(
+        'description' => 'The primary identifier for a boincteam_forum.',
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'boinc_id' => array(
+        'description' => 'The {forum}.id from the BOINC database.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'nid' => array(
+        'description' => 'The {node}.nid for the associated team.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'title' => array(
+        'description' => 'The title of this forum, always plain text.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'description' => array(
+        'description' => 'A description of this forum.',
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big',
+      ),
+      'created' => array(
+        'description' => 'The Unix timestamp when the forum was created.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'updated' => array(
+        'description' => 'The Unix timestamp when the forum was last saved.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'public' => array(
+        'description' => 'Whether the forum is public or private.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'min_time_between_posts' => array(
+        'description' => 'The minimum number of seconds between posts by a user.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'min_total_credit_to_post' => array(
+        'description' => 'The minimum credit required to post.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'min_avg_credit_to_post' => array(
+        'description' => 'The minimum average credit required to post.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+    ),
+    'indexes' => array(
+      'boincteam_boinc_id' => array('boinc_id'),
+      'boincteam_nid' => array('nid'),
+    ),
+    'primary key' => array('tfid')
+  );
+  
+  $schema['boincteam_forum_node'] = array(
+    'description' => t('Maps topic nodes to team forums.'),
+    'fields' => array(
+      'nid' => array(
+        'description' => 'The {node}.nid for the team forum topic.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'tfid' => array(
+        'description' => 'The boincteam_forum in which this topic belongs.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+    ),
+    'indexes' => array(
+      'boincteam_forum_id' => array('tfid'),
+    ),
+    'primary key' => array('nid')
+  );
+  
+  return $schema;
+}
+
+function boincteam_forum_install() {
+  // Create tables.
+  drupal_install_schema('boincteam_forum');
+  drupal_install_schema('boincteam_forum_topic');
+}
+
+function boincteam_forum_uninstall() {
+  // Drop tables.
+  drupal_uninstall_schema('boincteam_forum');
+  drupal_uninstall_schema('boincteam_forum_topic');
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.module b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.module
new file mode 100644
index 0000000..749cff5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.module
@@ -0,0 +1,402 @@
+<?php
+// ; $Id$
+
+/**
+ * @file
+ * Enables BOINC team forum functionality.
+ *
+ * Allows forums to be created for any BOINC team
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+require_once('includes/boincteam_forum.forms.inc');
+//require_once('includes/boincteam_forum.helpers.inc');
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Implementation of hook_menu()
+ */
+function boincteam_forum_menu() {
+  $items = array();
+
+  return $items;
+}
+
+/**
+* Implementation of hook_form_alter()
+*/
+function boincteam_forum_form_alter(&$form, $form_state, $form_id) {
+  switch ($form_id) {
+  // Team forum node edit form
+  case 'team_forum_node_form':
+    
+    // Internal fields to indicate where these changes are taking place
+    array_unshift($form, array(
+      'tfid' => array(
+        '#type' => 'hidden',
+        '#value' => arg(3),
+      ),
+    ));
+    break;
+  
+  default:
+  }
+}
+
+/**
+ * Implementation of hook_nodeapi(); add custom actions to node operations
+ * Obsolete in Drupal 7...
+ */
+function boincteam_forum_nodeapi(&$node, $op, $a3 = null, $a4 = null) {
+  // In Drupal 7, these operation cases will all exist as their own hooks,
+  // so let's approximate that here so that this function can simply be removed
+  // upon migration to 7
+  switch($op) {
+  case 'insert':
+    boincteam_forum_node_insert($node);
+    break;
+  case 'load':
+    boincteam_forum_node_load($node);
+    break;
+  case 'update':
+    boincteam_forum_node_update($node);
+    break;
+  case 'validate':
+    boincteam_forum_node_validate($node);
+    break;
+  case 'view':
+    boincteam_forum_node_view($node);
+    break;
+  default:
+  }
+}
+
+/**
+ * Implementation of hook_node_insert(); add custom actions when a node
+ * is inserted (forward compatible to Drupal 7)
+ */
+function boincteam_forum_node_insert($node) {
+  switch($node->type) {
+  case 'team_forum':
+    $account = user_load($node->uid);
+    $team_id = boincteam_forum_lookup_nid($node->tfid);
+    if ($account->team == $team_id) {
+      db_query("
+        INSERT INTO {boincteam_forum_node} SET
+          nid = %d,
+          tfid = %d",
+        $node->nid, $node->tfid
+      );
+    }
+    unset($node->tfid);
+    break;
+  default:
+  }
+}
+
+/**
+ * Implementation of hook_node_load(); add custom actions when a node
+ * is loaded (forward compatible to Drupal 7)
+ */
+function boincteam_forum_node_load($node) {
+  switch($node->type) {
+  case 'team_forum':
+    $node->tfid = db_result(db_query("
+      SELECT tfid FROM {boincteam_forum_node}
+      WHERE nid = %d", $node->nid
+    ));
+    break;
+    
+  default:
+    
+  }
+}
+
+/**
+ * Implementation of hook_node_update(); add custom actions when a node
+ * is updated (forward compatible to Drupal 7)
+ */
+function boincteam_forum_node_update($node) {
+  switch($node->type) {
+  case 'team_forum':
+    
+    break;
+    
+  default:
+    
+  }
+}
+
+/**
+ * Implementation of hook_node_validate(); add custom actions when a node
+ * is validated (forward compatible to Drupal 7)
+ */
+function boincteam_forum_node_validate($node) {
+  switch($node->type) {
+  case 'team_forum':
+    $account = user_load($node->uid);
+    // Get tfid from node, but if empty/null, get it from the database
+    if (!($node->tfid)) {
+        $tfid = db_result(db_query("
+      SELECT tfid FROM {boincteam_forum_node}
+      WHERE nid = %d", $node->nid
+        ));
+    } else {
+        $tfid = $node->tfid;
+    }
+    $team_id = boincteam_forum_lookup_nid($tfid);
+    if (!$account->team OR $account->team != $team_id) {
+      drupal_set_message(t('Failed to add team forum topic.'), 'error');
+      drupal_goto('community/forum');
+    }
+    break;
+  default:
+  }
+}
+
+/**
+ * Implementation of hook_node_view(); add custom actions when a node
+ * is viewed (forward compatible to Drupal 7)
+ */
+function boincteam_forum_node_view($node) {
+  switch($node->type) {
+  case 'team_forum':
+    $team_id = boincteam_forum_lookup_nid($node->tfid);
+    $public_forum = boincteam_forum_is_public($node->tfid);
+    $is_member = boincteam_is_member($team_id);
+    $is_global_moderator = boincteam_forum_is_global_moderator();
+    if (!$public_forum AND !$is_member AND !$is_global_moderator) {
+      drupal_not_found();
+      module_invoke_all('exit');
+      exit();
+    }
+    break;
+  default:
+  }
+}
+
+/**
+* Implementation of hook_views_api().
+*/
+function boincteam_forum_views_api() {
+  return array(
+    'api' => 2.0,
+    'path' => drupal_get_path('module', 'boincteam_forum')
+  );
+}
+
+/**
+ * Implementation of hook_perm()
+ */
+function boincteam_forum_perm() {
+  return array('manage boincteam forum');
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * BOINC team forum functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/*
+ * Check if the user has global access to moderate team forums
+ */
+function boincteam_forum_is_global_moderator() {
+  global $user;
+  return user_access('manage boincteam forum');
+}
+
+/*
+ * Check if any forums for a team are public
+ */
+function boincteam_forum_is_any_public($team_id) {
+  $forums = boincteam_forum_list($team_id);
+  foreach ($forums as $forum) {
+    if ($forum->public) {
+      return TRUE;
+    }
+  }
+  return FALSE;
+}
+
+/*
+ * Check if a team forum should be visible to everyone
+ */
+function boincteam_forum_is_public($tfid) {
+  return db_result(db_query("
+    SELECT public FROM {boincteam_forum} WHERE tfid=%d", $tfid
+  ));
+}
+
+/*
+ * Load the forums for a team, if any exist
+ */
+function boincteam_forum_list($team_id = NULL) {
+  if (!$team_id) {
+    global $user;
+    $account = user_load($user->uid);
+    $team_id = $account->team;
+  }
+  $team_forums = array();
+  if ($team_id) {
+    // Load any team forum objects for the user's team
+    $result = db_query("
+      SELECT tfid, nid, title, description, created, updated, public,
+        min_time_between_posts, min_total_credit_to_post, min_avg_credit_to_post
+      FROM {boincteam_forum} WHERE nid=%d", $team_id
+    );
+    $row = 0;
+    while ($team_forum = db_fetch_object($result)) {
+      
+      $team_forum->link = url("community/teams/{$team_id}/forum/{$team_forum->tfid}");
+      $team_forum->zebra = $row % 2 ? 'even' : 'odd';
+      $team_forum->new_topics = 0; // TODO: Track user views of team topics
+      $team_forum->new_text = '';
+      $team_forum->new_url = '';
+      $team_forum->num_topics = db_result(db_query("
+        SELECT COUNT(nid) FROM {boincteam_forum_node}
+        WHERE tfid = %d",
+        $team_forum->tfid
+      ));
+      $team_forum->num_posts = db_result(db_query("
+        SELECT COALESCE(SUM(ncs.comment_count),0) + COUNT(ncs.nid)
+        FROM {boincteam_forum_node} bfn
+        JOIN {node_comment_statistics} ncs ON ncs.nid = bfn.nid
+        JOIN {node} n ON n.nid = ncs.nid
+        WHERE bfn.tfid = %d AND n.status = 1",
+        $team_forum->tfid
+      ));
+      $last_post = new stdClass();
+      $last_post->timestamp = db_result(db_query("
+        SELECT ncs.last_comment_timestamp FROM {node} n
+        INNER JOIN {boincteam_forum_node} bfn
+        INNER JOIN {node_comment_statistics} ncs ON n.nid = bfn.nid AND n.nid = ncs.nid
+        WHERE n.status = 1 AND bfn.tfid = %d
+        ORDER BY ncs.last_comment_timestamp DESC
+        LIMIT 1",
+        $team_forum->tfid
+      ));
+      $team_forum->last_reply = theme('forum_submitted', ($last_post->timestamp) ? $last_post : NULL);
+      $team_forums[$team_forum->tfid] = $team_forum;
+      $row++;
+    }
+  }
+  return $team_forums;
+}
+
+/*
+ * Load a team forum by ID
+ */
+function boincteam_forum_load($tfid) {
+  // Load any team forum objects for the user's team
+  $result = db_query("
+    SELECT tfid, nid, title, description, created, updated, public,
+      min_time_between_posts, min_total_credit_to_post, min_avg_credit_to_post
+    FROM {boincteam_forum} WHERE tfid=%d", $tfid
+  );
+  return db_fetch_object($result);
+}
+
+/*
+ * Look up the team ID for a given team forum
+ */
+function boincteam_forum_lookup_nid($tfid) {
+  return db_result(db_query("
+    SELECT nid FROM {boincteam_forum}
+    WHERE tfid=%d", $tfid
+  ));
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Pane content for panels
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Create team forum form
+ */
+function boincteam_forum_create_form_panel() {
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Create team message board', array(), NULL, 'boinc:team-forum')
+    . '</h2>';
+  $output .= drupal_get_form('boincteam_forum_create_form');
+  
+  return $output;
+}
+
+/**
+ * Edit team forum form
+ */
+function boincteam_forum_edit_form_panel($tfid) {
+  $team_forum = boincteam_forum_load($tfid);
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Edit message board', array(), NULL, 'boinc:team-forum') . ': ' . 
+    $team_forum->title . '</h2>';
+  $output .= drupal_get_form('boincteam_forum_edit_form', $tfid);
+  
+  return $output;
+}
+
+/**
+ * Link to team forums
+ */
+function boincteam_forum_link_panel($team_id) {
+  $show_public_only = (
+    !boincteam_is_member($team_id) AND
+    !boincteam_forum_is_global_moderator()
+  );
+  $forums = boincteam_forum_list($team_id);
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('Team forum', array(), NULL, 'boinc:team-forum') . '</h2>';
+  $output .= '<p>'
+    . bts('A discussion forum has been set up for team members.', array(), NULL, 'boinc:team-forum')
+    . '</p>';
+  $output .= '<ul class="tab-list action-list">';
+  foreach ($forums as $forum) {
+    if (!$show_public_only OR $forum->public) {
+      $output .= '  <li class="tab primary">' . 
+        l(
+          //$forum->title,
+          bts('Enter forum', array(), NULL, 'boinc:team-forum'),
+          "community/teams/{$team_id}/forum/{$forum->tfid}"
+        ) . '</li>';
+      // Since we're only supporting one team forum for now, we've labeled the
+      // link in a generic way above and will now just break out of the loop
+      break;
+    }
+  }
+  $output .= '</ul>';
+  return $output;
+}
+
+/**
+ * General info about team forums
+ */                                         
+function boincteam_forum_topic_overview_panel($nid = NULL) {
+  $output = '';
+  $output .= '<h2 class="pane-title">' . bts('About message boards', array(), NULL, 'boinc:team-forum') . '</h2>';
+  $output .= '<div>';
+  if ($nid) {
+    $team = node_load($nid);
+    $output .= '<p>' . bts('You may create a message board for use by @team',
+      array('@team' => $team->title), array(), NULL, 'boinc:team-forum') . ':</p>';
+  }
+  else {
+    $output .= '<p>' . bts('This is a team-only message board', array(), NULL, 'boinc:team-forum') . ':</p>';
+  }
+  $output .= '<ul>';
+  $output .= '  <li>' . bts('Only members may post', array(), NULL, 'boinc:team-forum') . '</li>';
+  $output .= '  <li>' . bts('Only members may read (optional)', array(), NULL, 'boinc:team-forum') . '</li>';
+  $output .= '  <li>' . bts('Founder & Team Admins have moderator privileges', array(), NULL, 'boinc:team-forum') .
+    '</li>';
+  $output .= '</ul>';
+  $output .= '</div>';
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.views.inc b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.views.inc
new file mode 100644
index 0000000..d88c99e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/boincteam_forum.views.inc
@@ -0,0 +1,92 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Exposes BOINC team forum data to Views.
+ */
+
+/**
+ * Implementation of hook_views_data().
+ * Defines the structure of data and how Views should handle it (i.e. which
+ * relationships exist; is data text, integer, float; what sort options exist).
+ */
+function boincteam_forum_views_data() {
+  
+  // -----------------------------------------------------------------------------------------------
+  // Definition for team table
+  // -----------------------------------------------------------------------------------------------
+  
+  $data['boincteam_forum_node']['table']['group'] = t('BOINC');
+  
+  $data['boincteam_forum_node']['table']['base'] = array(
+      'field' => 'nid',
+      'title' => t('BOINC team forum topic'),
+      'help' => t('Forum topics for a team'),
+  );
+
+  // Describe each of the individual fields in this table to Views. For
+  // each field, you may define what field, sort, argument, and/or filter
+  // handlers it supports. This will determine where in the Views interface you
+  // may use the field.
+  
+  // Primary keys allowed as arguments
+  
+  $data['boincteam_forum_node']['tfid'] = array(
+    'title' => t('Team forum ID'),
+    'help' => t('The ID of the team forum containing this topic.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'boincteam_forum',
+      'field' => 'tfid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Team Forum')
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['boincteam_forum_node']['nid'] = array(
+    'title' => t('Team forum node'),
+    'help' => t('The node containing the content of this team forum topic.'),
+    // This is a foreign key to the {node} table. When the view is configured
+    // with this relationship, all the fields for the related user node will be 
+    // available.
+    'relationship' => array(
+      'base' => 'node',
+      'field' => 'nid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Team Forum Topic Node')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of general fields (alphabetized)
+  // ...
+  
+  return $data;
+}
diff --git a/drupal/sites/default/boinc/modules/boincteam/includes/boincteam.forms.inc b/drupal/sites/default/boinc/modules/boincteam/includes/boincteam.forms.inc
new file mode 100644
index 0000000..3d80ea1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/includes/boincteam.forms.inc
@@ -0,0 +1,624 @@
+<?php
+// $Id$
+
+/**
+ * Form submission handlers and data processing functions are contained
+ * herein to prevent littering of the main module file.
+ */
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * New team form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * The definition of the create team form
+ */
+function boincteam_create_form(&$form_state) {
+  $form = array();
+  
+  $default = array(
+    'name' => '',
+    'name_html' => '',
+    'website' => '',
+    'type' => 0,
+    'country' => 0,
+    'joinable' => TRUE,
+    'description' => '',
+  );
+  
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')),
+  );
+  
+  // Vocabulary based option sets
+  $form['type_options'] = array(
+    '#type' => 'value',
+    '#value' => array(0 => bts('Choose type', array(), NULL, 'boinc:form-choose'))
+  );
+  $vocabs = taxonomy_get_vocabularies(NULL);
+  foreach ($vocabs as $vocab) {
+    switch ($vocab->name) {
+    case 'Teams':
+      $team_types = taxonomy_get_tree($vocab->vid);
+      if (module_exists('internationalization')) {
+        $team_types = i18ntaxonomy_localize_terms($team_types);
+      }
+      foreach ($team_types as $team_type) {
+        $form['type_options']['#value'][$team_type->tid] = $team_type->name;
+      }
+      break;
+    default:
+    }
+  }
+  $form['country_options'] = array(
+    '#type' => 'value',
+    '#value' => boinccore_get_country_list(),
+  );
+  
+  // Form elements
+  $form['name'] = array(
+    '#title' => bts('Team name', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['name'],
+    '#size' => 34,
+    '#description' => bts('Text only, no HTML tags', array(), NULL, 'boinc:team-form-help'),
+  );
+  $form['name_html'] = array(
+    '#title' => bts('Team name -- HTML version (optional)', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['name_html'],
+    '#size' => 34,
+    '#description' => bts('You may use limited HTML tags', array(), NULL, 'boinc:team-form-help'),
+  );
+  $form['website'] = array(
+    '#title' => bts('Team website (optional)', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['website'],
+    '#size' => 34,
+    '#description' => bts("Displayed on the team's page", array(), NULL, 'boinc:team-create/edit'),
+  );
+  $form['type'] = array(
+    '#title' => bts('Type of team', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'select',
+    '#options' => $form['type_options']['#value'],
+    '#default_value' => $default['type'],
+  );
+  $form['country'] = array(
+    '#title' => bts('Country', array(), NULL, 'boinc:country-of-origin'),
+    '#type' => 'select',
+    '#options' => $form['country_options']['#value'],
+    '#default_value' => $default['country'],
+  );
+  $form['joinable'] = array(
+    '#title' => bts('Accept new members?', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['joinable'],
+    '#size' => 34,
+  );
+  $form['description'] = array(
+    '#title' => bts('Description of team', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'textarea',
+    '#default_value' => $default['description'],
+    '#size' => 5,
+    '#description' => NULL,
+  );
+  $form['format'] = filter_form();
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Save team', array(), NULL, 'boinc:team-form-save'),
+    '#suffix' => '</li>',
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>'
+  );
+  
+  return $form;
+}
+
+/**
+ * The create team validation handler
+ */
+function boincteam_create_form_validate($form, &$form_state) {
+
+  $values = $form_state['values'];
+  $name = $values['name'];
+  
+  if (!$name) {
+    form_set_error('name', bts('Team name is required.', array(), NULL, 'boinc:team-create/edit'));
+  }
+  else {
+    require_boinc('boinc_db');
+    if (BoincTeam::lookup_name($name)) {
+      form_set_error('name', bts('A team named "@name" already exists.',
+        array('@name' => $name), array(), NULL, 'boinc:team-create/edit'));
+    }
+  }
+  
+  if (!$values['type'] OR !isset($values['type_options'][$values['type']])) {
+    form_set_error('type', bts('Please select a team type.', array(), NULL, 'boinc:team-create/edit'));
+  }
+}
+
+/**
+ * The create team submit handler
+ */
+function boincteam_create_form_submit($form, &$form_state) {
+  global $user;
+  $account = user_load($user->uid);
+  $values = $form_state['values'];
+  //drupal_set_message('<pre>' . print_r($values,true) . '</pre>');
+  
+  $input_format = !empty($values['format']) ? $values['format'] : 4;
+  $values['description'] = check_markup($values['description'], $input_format);
+  
+  // Create the team in the BOINC db
+  
+  require_boinc(array('user','team'));
+  $boinc_team = make_team(
+    $account->boincuser_id,
+    $values['name'],
+    $values['website'],
+    $values['type'],
+    $values['name_html'],
+    $values['description'],
+    $values['country']
+  );
+
+  if ($boinc_team) {
+    $boinc_user = BoincUser::lookup_id($account->boincuser_id);
+    user_join_team($boinc_team, $boinc_user);
+  }
+  else {
+    drupal_set_message(t('Teams cannot be created at this time. Please 
+      contact the @project administrators!', array('@project' => PROJECT)));
+    watchdog('BOINC team', 'BOINC teams cannot be created for an unknown
+      reason.', 'error');
+    return FALSE;
+  }
+  
+  // Create the team node in Drupal
+  
+  $teaser = node_teaser($values['description']);
+  $created_time = time();
+  $input_format = variable_get('filter_default_format', 1);
+  
+  $node = array(
+    'type' => 'team',
+    'title' => $values['name'],
+    'body' => $values['description'],
+    'teaser' => $teaser,
+    'uid' => $user->uid,
+    'path' => null,
+    'status' => 1,  // published or not - always publish
+    'promote' => 0,
+    'created' => $created_time,
+    'comment' => 0,  // comments disabled
+    'moderate' => 0,
+    'sticky' => 0,
+    'format' => $input_format
+  );
+  
+  // Use pathauto function, if available, to clean up the path
+  if (module_exists('pathauto')) {
+    module_load_include('inc', 'pathauto', 'pathauto');
+    $node['path'] = pathauto_cleanstring($values['name']);
+  }
+  else {
+    drupal_set_message(t('Teams cannot be created at this time. Please 
+      contact the @project administrators!', array('@project' => PROJECT)));
+    watchdog('BOINC team', 'BOINC teams require the Pathauto module. Teams
+      cannot be created.', 'error');
+  }
+  
+  /*
+  // Add special organic group properties
+  $node['og_description'] = strip_tags($boincteam->description);
+  $node['og_selective'] = OG_OPEN;
+  $node['og_register'] = OG_REGISTRATION_NEVER;
+  $node['og_directory'] = OG_DIRECTORY_CHOOSE_FALSE;
+  $node['og_private'] = 0;
+  */
+  
+  $node = (object) $node; // node_save requires an object form
+  
+  /*
+  $node->field_description[]['value'] = $boincteam->description;
+  $node->field_url[]['value'] = $boincteam->url;
+  $node->field_country[]['value'] = $boincteam->country;
+  */
+  
+  $node->taxonomy[] = taxonomy_get_term($values['type']);
+  
+  // Save the team node
+  node_save($node);
+  
+  // Save the team IDs to a BOINC <--> Drupal reference table.
+  db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boinc_team->id, $node->nid);
+  
+  drupal_set_message(t('Team "@name" has been created.', 
+    array('@name' => $values['name'])));
+  
+  $form_state['redirect'] = "community/teams/{$node->nid}";
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Edit team form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * The definition of the edit team form
+ */
+function boincteam_edit_form(&$form_state, $team_id) {
+  $form = array();
+  
+  $team = node_load($team_id);
+  $boincteam = boincteam_load(boincteam_lookup_id($team_id));
+  
+  $is_boinc_wide = ($boincteam->seti_id > 0) ? TRUE : FALSE;
+  
+  $form_state['storage']['team_id'] = $team_id;
+  $form_state['storage']['is_boinc_wide'] = $is_boinc_wide;
+  
+  $default = array(
+    'name' => $boincteam->name,
+    'name_html' => $boincteam->name_html,
+    'website' => $boincteam->url,
+    'type' => $boincteam->type,
+    'country' => $boincteam->country,
+    'joinable' => $boincteam->joinable,
+    'description' => $boincteam->description,
+  );
+  
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')),
+  );
+  
+  // Vocabulary based option sets
+  $form['type_options'] = array(
+    '#type' => 'value',
+    '#value' => array(0 => bts('Choose type', array(), NULL, 'boinc:form-choose'))
+  );
+  $vocabs = taxonomy_get_vocabularies(NULL);
+  foreach ($vocabs as $vocab) {
+    switch ($vocab->name) {
+    case 'Teams':
+      $team_types = taxonomy_get_tree($vocab->vid);
+      if (module_exists('internationalization')) {
+        $team_types = i18ntaxonomy_localize_terms($team_types);
+      }
+      foreach ($team_types as $team_type) {
+        $form['type_options']['#value'][$team_type->tid] = $team_type->name;
+      }
+      break;
+    default:
+    }
+  }
+  $form['country_options'] = array(
+    '#type' => 'value',
+    '#value' => boinccore_get_country_list(),
+  );
+  
+  // Form elements
+  $form['name'] = array(
+    '#title' => bts('Team name', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['name'],
+    '#size' => 34,
+    '#description' => bts('Text only, no HTML tags', array(), NULL, 'boinc:team-form-help'),
+    '#disabled' => $is_boinc_wide,
+  );
+  $form['name_html'] = array(
+    '#title' => bts('Team name -- HTML version (optional)', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['name_html'],
+    '#size' => 34,
+    '#description' => bts('You may use limited HTML tags', array(), NULL, 'boinc:team-form-help'),
+    '#disabled' => $is_boinc_wide,
+  );
+  $form['website'] = array(
+    '#title' => bts('Team website (optional)', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['website'],
+    '#size' => 34,
+    '#description' => bts("Displayed on the team's page", array(), NULL, 'boinc:team-create/edit'),
+    '#disabled' => $is_boinc_wide,
+  );
+  $form['type'] = array(
+    '#title' => bts('Type of team', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'select',
+    '#options' => $form['type_options']['#value'],
+    '#default_value' => $default['type'],
+    '#disabled' => $is_boinc_wide,
+  );
+  $form['country'] = array(
+    '#title' => bts('Country', array(), NULL, 'boinc:country-of-origin'),
+    '#type' => 'select',
+    '#options' => $form['country_options']['#value'],
+    '#default_value' => $default['country'],
+    '#disabled' => $is_boinc_wide,
+  );
+  $form['joinable'] = array(
+    '#title' => bts('Accept new members?', array(), NULL, 'boinc:team-create/edit'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['joinable'],
+    '#size' => 34,
+    '#disabled' => $is_boinc_wide,
+  );
+  if (!$is_boinc_wide) {
+    $form['description'] = array(
+      '#title' => bts('Description of team', array(), NULL, 'boinc:team-create/edit'),
+      '#type' => 'textarea',
+      '#default_value' => $default['description'],
+      '#size' => 5,
+      '#description' => NULL,
+    );
+    $form['format'] = filter_form();
+    
+    // Form control
+    $form['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">'
+    );
+    $form['submit'] = array(
+      '#prefix' => '<li class="first tab">',
+      '#type' => 'submit',
+      '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
+      '#suffix' => '</li>',
+    );
+    $form['form control tabs'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), strstr($_GET['q'], '/edit', TRUE)) . '</li>'
+    );
+  }
+  else {
+    $form['description'] = array(
+      '#prefix' => '<div class="form-item"><label>' . bts('Description', array(), NULL, 'boinc:team-description') . ':</label></div><div class="form-item">',
+      '#value' => $default['description'],
+      '#suffix' => '</div>',
+    );
+    drupal_set_message(
+      bts('This is a BOINC-wide team. Changes can be made at the !site.',
+        array('!site' => l(bts('BOINC-wide teams site', array(), NULL, 'boinc:link-to-BOINC-wide-teams-Website'),
+          'http://boinc.berkeley.edu/teams/'
+        )),
+        NULL, 'boinc:team-edit-warning-message'),
+      'warning');
+  }
+  
+  $form['#redirect'] = "community/teams/{$team_id}";
+  
+  return $form;
+}
+
+/**
+ * The edit team validation handler
+ */
+function boincteam_edit_form_validate($form, &$form_state) {
+
+  $values = $form_state['values'];
+  $name = $values['name'];
+  
+  if ($form_state['storage']['is_boinc_wide']) {
+    form_set_error('none', bts('This team is managed by the BOINC-wide teams system and cannot be updated here.', array(), NULL, 'boinc:team-create/edit'));
+  }
+  else {
+    if (!$name) {
+      form_set_error('name', bts('Team name is required.', array(), NULL, 'boinc:team-create/edit'));
+    }
+    else {
+      $team = node_load($form_state['storage']['team_id']);
+      if ($name != $team->title) {
+        // If changing the name ("title" in Drupal terms), check that the new name is available
+        require_boinc('boinc_db');
+        if (BoincTeam::lookup_name($name)) {
+          form_set_error('name', bts('A team named "@name" already exists.',
+            array('@name' => $name), array(), NULL, 'boinc:team-create/edit'));
+        }
+      }
+    }
+  
+    if (!$values['type'] OR !isset($values['type_options'][$values['type']])) {
+      form_set_error('type', bts('Please select a team type.', array(), NULL, 'boinc:team-create/edit'));
+    }
+  }
+}
+
+/**
+ * The edit team submit handler
+ */
+function boincteam_edit_form_submit($form, &$form_state) {
+  
+  $team_id = $form_state['storage']['team_id'];
+  $values = $form_state['values'];
+  
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  
+  $input_format = !empty($values['format']) ? $values['format'] : 4;
+  $values['description'] = check_markup($values['description'], $input_format);
+  
+  // Update the team in the BOINC db
+  db_set_active('boinc');
+  db_query("
+    UPDATE {team} SET
+      name = '%s',
+      name_lc = '%s',
+      name_html = '%s',
+      url = '%s',
+      description = '%s',
+      type = %d,
+      country='%s',
+      joinable=%d
+    WHERE id='%d'",
+    $values['name'],
+    strtolower($values['name']),
+    $values['name_html'],
+    $values['website'],
+    $values['description'],
+    $values['type'],
+    $values['country'],
+    $values['joinable'],
+    $boincteam_id
+  );
+  db_set_active('default');
+  
+  // Update the team node in Drupal
+  
+  $team->title = $values['name'];
+  $team->body = $values['description'];
+  $team->teaser = node_teaser($values['description']);
+  
+  /*
+  $node->field_description[]['value'] = $boincteam->description;
+  $node->field_url[]['value'] = $boincteam->url;
+  $node->field_country[]['value'] = $boincteam->country;
+  */
+  
+  // Replace any existing taxonomy with the new one
+  $team->taxonomy = array(taxonomy_get_term($values['type']));
+  
+  // Save the team node
+  node_save($team);
+  
+  drupal_set_message(t('Details for "@team" have been updated.', 
+    array('@team' => $values['name'])));
+    
+  // The storage variable quietly kills redirection for some reason... unset it
+  unset($form_state['storage']);
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Add team admin handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * The definition of the add team admin form
+ */
+function boincteam_add_admin_form(&$form_state, $team_id) {
+  $form = array();
+  
+  $team = node_load($team_id);
+  $boincteam = boincteam_load(boincteam_lookup_id($team_id));
+  
+  $form_state['storage']['team_id'] = $team_id;
+  
+  $default = array(
+    'email' => '',
+  );
+  
+  // Form elements
+  $form['email'] = array(
+    '#title' => bts('Enter email address', array(), NULL, 'boinc:team--add-admin'),
+    '#type' => 'textfield',
+    '#default_value' => $default['email'],
+    '#size' => 34,
+  );
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Add', array(), NULL, 'boinc:form-add'),
+    '#suffix' => '</li>',
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), strstr($_GET['q'], '/edit', TRUE)) . '</li>'
+  );
+  
+  //$form['#redirect'] = "community/teams/{$team_id}";
+  
+  return $form;
+}
+
+/**
+ * The add team admin validation handler
+ */
+function boincteam_add_admin_form_validate($form, &$form_state) {
+
+  $team_id = $form_state['storage']['team_id'];
+  $values = $form_state['values'];
+  
+  $team = node_load($team_id);
+  
+  if (!$values['email']) {
+    form_set_error('email', bts('Email address is required.', array(), NULL, 'boinc:team-add-admin'));
+  }
+  else {
+    $account = user_load(array('mail' => $values['email']));
+    if ((!$account) OR ($account->team != $team_id)) {
+      form_set_error('email', bts('There is no user on your team with that email address.', array(), NULL, 'boinc:team-add-admin'));
+    }
+    elseif (boincteam_is_founder($team_id, $account->uid)) {
+      form_set_error('email', bts('@user is the founder of @team!',
+        array(
+          '@user' => $account->boincuser_name,
+          '@team' => $team->title,
+        ),
+        NULL, 'boinc:team-add-admin'));
+    }
+    elseif (boincteam_is_admin($team_id, $account->uid)) {
+      form_set_error('email', bts('@user is already an admin of @team.',
+        array(
+          '@user' => $account->boincuser_name,
+          '@team' => $team->title,
+        ),
+        NULL, 'boinc:team-add-admin'));
+    }
+    else {
+      $form_state['storage']['boincuser_id'] = $account->boincuser_id;
+      $form_state['storage']['boincuser_name'] = $account->boincuser_name;
+    }
+  }
+}
+
+/**
+ * The add team admin submit handler
+ */
+function boincteam_add_admin_form_submit($form, &$form_state) {
+  
+  $team_id = $form_state['storage']['team_id'];
+  $boincuser_id = $form_state['storage']['boincuser_id'];
+  $user_name = $form_state['storage']['boincuser_name'];
+  $values = $form_state['values'];
+  
+  $team = node_load($team_id);
+  $boincteam_id = boincteam_lookup_id($team_id);
+  
+  // Update the team in the BOINC db
+  db_set_active('boinc');
+  db_query("
+    INSERT INTO {team_admin} SET
+      teamid = '%d',
+      userid = '%d',
+      create_time = '%d'",
+    $boincteam_id,
+    $boincuser_id,
+    time()
+  );
+  db_set_active('default');
+  
+  // Could assign a role in Drupal here, as needed
+  
+  
+  drupal_set_message(t('@user has been added as an admin.', 
+    array('@user' => $user_name)));
+    
+  // The storage variable quietly kills redirection for some reason... unset it
+  unset($form_state['storage']);
+}
diff --git a/drupal/sites/default/boinc/modules/boincteam/includes/boincteam.helpers.inc b/drupal/sites/default/boinc/modules/boincteam/includes/boincteam.helpers.inc
new file mode 100644
index 0000000..b46524c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/includes/boincteam.helpers.inc
@@ -0,0 +1,113 @@
+<?php
+// $Id$
+
+/**
+ * 
+ */
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Import functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Import new teams and update BOINC-wide teams to pull in any changes from
+ * the BOINC database
+ */
+function boincteam_sync() {
+  
+  // Get the list of teams to import
+  db_set_active('boinc');
+  $boinc_teams = db_query('
+    SELECT id, name, description, userid, create_time, seti_id
+    FROM team
+    WHERE mod_time > FROM_UNIXTIME(%d)',
+    variable_get('boincteam_last_sync', 0)
+  );
+  db_set_active('default');
+  
+  $existing_teams = array();
+  
+  // Get the list of teams already in Drupal to be sure we're not importing
+  // any twice
+  $result = db_query('
+    SELECT nid, team_id FROM {boincteam}'
+  );
+  while ($row = db_fetch_object($result)) {
+    $existing_teams[$row->team_id] = $row->nid;
+  }
+  
+  while ($boinc_team = db_fetch_object($boinc_teams)) {
+    $success = NULL;
+    if (isset($existing_teams[$boinc_team->id])) {
+      if ($boinc_team->seti_id > 0) {
+        // Sync BOINC-wide teams
+        $nid = $existing_teams[$boinc_team->id];
+        $success = boincteam_import($boinc_team, $nid);
+      }
+    }
+    else {
+      // Import new teams created by RPC or ops/team_import.php
+      $success = boincteam_import($boinc_team);
+    }
+  }
+}
+
+
+/**
+ * Import a given BOINC team object into Drupal
+ */
+function boincteam_import($boincteam, $nid = NULL) {
+  
+  $input_format = variable_get('boincimport_input_format', 0);
+  $team_type_map = variable_get('boincimport_team_types', array()); 
+  
+  // Save the team type affiliation
+  $team_type_tid = $team_type_map[$boincteam->type];
+  
+  $boincteam->description = html_entity_decode($boincteam->description, ENT_QUOTES, 'utf-8');
+  // Be sure the text is filtered for the default input format
+  $boincteam->description = check_markup($boincteam->description, $input_format);
+  
+  $teaser = node_teaser($boincteam->description);
+  
+  if ($nid) {
+    // Update an existing node
+    $node = node_load($nid);
+    $node->title = $boincteam->name;
+    $node->body = $boincteam->description;
+    $node->teaser = $teaser;
+    $node->uid = boincuser_lookup_uid($boincteam->userid);
+  }
+  else {
+    // Construct the team as a new node
+    $node = array(
+      'type' => 'team',
+      'title' => $boincteam->name,
+      'body' => $boincteam->description,
+      'teaser' => $teaser,
+      'uid' => boincuser_lookup_uid($boincteam->userid),
+      'path' => null,
+      'status' => 1,  // published or not - always publish
+      'promote' => 0,
+      'created' => $boincteam->create_time,
+      'comment' => 0,  // comments disabled
+      'moderate' => 0,
+      'sticky' => 0,
+      'format' => $input_format
+    );
+    $node = (object) $node; // node_save requires an object form
+  }
+  
+  $node->taxonomy[] = taxonomy_get_term($team_type_tid);
+  
+  // Save the team node
+  node_save($node);
+  $success = ($node->nid) ? TRUE : FALSE;
+  
+  if (!$nid) {
+    // Save the team IDs to a BOINC <--> Drupal reference table, if needed
+    db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boincteam->id, $node->nid);
+  }
+  
+  return $success;
+}
diff --git a/drupal/sites/default/boinc/modules/boincteam/includes/boincteam_forum.forms.inc b/drupal/sites/default/boinc/modules/boincteam/includes/boincteam_forum.forms.inc
new file mode 100644
index 0000000..cbe1e94
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/includes/boincteam_forum.forms.inc
@@ -0,0 +1,321 @@
+<?php
+// $Id$
+
+/**
+ * Form submission handlers and data processing functions are contained
+ * herein to prevent littering of the main module file.
+ */
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * New team forum form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * The definition of the create team form
+ */
+function boincteam_forum_create_form(&$form_state) {
+  $form = array();
+  
+  global $user;
+  $account = user_load($user->uid);
+  
+  $default = array(
+    'title' => '',
+    'min_time_between_posts' => '',
+    'min_total_credit_to_post' => '',
+    'min_avg_credit_to_post' => '',
+    'public' => 0,
+    'description' => '',
+  );
+  
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')),
+  );
+  
+  // Form elements
+  $form['title'] = array(
+    '#title' => bts('Message board title', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['title'],
+    '#size' => 34,
+    '#description' => bts('Text only, no HTML tags', array(), NULL, 'boinc:team-form-help'),
+  );
+  $form['min_time_between_posts'] = array(
+    '#title' => bts('Minimum time between posts', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['min_time_between_posts'],
+    '#size' => 12,
+    '#description' => bts('seconds', array(), NULL, 'boinc:unit-of-time'),
+  );
+  $form['min_total_credit_to_post'] = array(
+    '#title' => bts('Minimum total credit to post', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['min_total_credit_to_post'],
+    '#size' => 12,
+  );
+  $form['min_avg_credit_to_post'] = array(
+    '#title' => bts('Minimum avg credit to post', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['min_avg_credit_to_post'],
+    '#size' => 12,
+  );
+  $form['public'] = array(
+    '#title' => bts('Allow public to read board?', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['public'],
+  );
+  $form['description'] = array(
+    '#title' => bts('Description', array(), NULL, 'boinc:team-forum-create/edit:-1:ignoreoverwrite'),
+    '#type' => 'textarea',
+    '#default_value' => $default['description'],
+    '#size' => 5,
+  );
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Create message board', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#suffix' => '</li>',
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), strstr($_GET['q'], '/forum/add', TRUE)) . '</li>'
+  );
+  
+  $form['#redirect'] = "community/teams/{$account->team}";
+  
+  return $form;
+}
+
+/**
+ * The create team forum validation handler
+ */
+function boincteam_forum_create_form_validate($form, &$form_state) {
+
+  $values = $form_state['values'];
+  
+  if (!$values['title']) {
+    form_set_error('name', bts('Message board title is required.', array(), NULL, 'boinc:team-forum-create/edit'));
+  }
+  if (!is_numeric($values['min_time_between_posts']) OR
+      $values['min_time_between_posts'] < 0) {
+    form_set_error('min_time_between_posts',
+      bts('Please set the minimum time required between posts.', array(), NULL, 'boinc:team-forum-create/edit')
+    );
+  }
+  if (!is_numeric($values['min_total_credit_to_post']) OR
+      $values['min_total_credit_to_post'] < 0) {
+    form_set_error('min_total_credit_to_post',
+      bts('Please set the minimum total credit that a user'
+        . ' must earn in order to post to this message board.',
+        array(), NULL, 'boinc:team-forum-create/edit')
+    );
+  }
+  if (!is_numeric($values['min_avg_credit_to_post']) OR
+      $values['min_avg_credit_to_post'] < 0) {
+    form_set_error('min_avg_credit_to_post',
+      bts('Please set the minimum average credit that a user'
+        . ' is required to have in order to post to this message board.',
+        array(), NULL, 'boinc:team-forum-create/edit')
+    );
+  }
+}
+
+/**
+ * The create team forum submit handler
+ */
+function boincteam_forum_create_form_submit($form, &$form_state) {
+  
+  $values = $form_state['values'];
+  
+  global $user;
+  $account = user_load($user->uid);
+  
+  // Add the team forum to the db
+  db_query("
+    INSERT INTO {boincteam_forum} SET
+      nid = %d,
+      title = '%s',
+      min_time_between_posts = '%d',
+      min_total_credit_to_post = '%d',
+      min_avg_credit_to_post = '%d',
+      public = %d,
+      description = '%s',
+      created = UNIX_TIMESTAMP(),
+      updated = UNIX_TIMESTAMP()",
+    $account->team,
+    $values['title'],
+    (int) $values['min_time_between_posts'],
+    (int) $values['min_total_credit_to_post'],
+    (int) $values['min_avg_credit_to_post'],
+    ($values['public']) ? 1 : 0,
+    $values['description']
+  );
+  
+  drupal_set_message(t('Message board "@forum" has been created.',
+    array('@forum' => $values['title'])));
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Edit team form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * The definition of the edit team forum form
+ */
+function boincteam_forum_edit_form(&$form_state, $tfid) {
+  $form = array();
+  $boincteam_forum = boincteam_forum_load($tfid);
+  
+  $form_state['storage']['tfid'] = $tfid;
+  
+  $default = array(
+    'title' => $boincteam_forum->title,
+    'min_time_between_posts' => $boincteam_forum->min_time_between_posts,
+    'min_total_credit_to_post' => $boincteam_forum->min_total_credit_to_post,
+    'min_avg_credit_to_post' => $boincteam_forum->min_avg_credit_to_post,
+    'public' => ($boincteam_forum->public) ? 1 : 0,
+    'description' => $boincteam_forum->description,
+  );
+  
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')),
+  );
+  
+  // Form elements
+  $form['title'] = array(
+    '#title' => bts('Message board title', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['title'],
+    '#size' => 34,
+    '#description' => bts('Text only, no HTML tags', array(), NULL, 'boinc:team-form-help'),
+  );
+  $form['min_time_between_posts'] = array(
+    '#title' => bts('Minimum time between posts', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['min_time_between_posts'],
+    '#size' => 12,
+    '#description' => bts('seconds', array(), NULL, 'boinc:unit-of-time'),
+  );
+  $form['min_total_credit_to_post'] = array(
+    '#title' => bts('Minimum total credit to post', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['min_total_credit_to_post'],
+    '#size' => 12,
+  );
+  $form['min_avg_credit_to_post'] = array(
+    '#title' => bts('Minimum avg credit to post', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'textfield',
+    '#default_value' => $default['min_avg_credit_to_post'],
+    '#size' => 12,
+  );
+  $form['public'] = array(
+    '#title' => bts('Allow public to read board?', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['public'],
+  );
+  $form['description'] = array(
+    '#title' => bts('Description', array(), NULL, 'boinc:team-forum-create/edit:-1:ignoreoverwrite'),
+    '#type' => 'textarea',
+    '#default_value' => $default['description'],
+    '#size' => 5,
+  );
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Save message board', array(), NULL, 'boinc:team-forum-create/edit'),
+    '#suffix' => '</li>',
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), strstr($_GET['q'], '/forum', TRUE)) . '</li>'
+  );
+  
+  $form['#redirect'] = "community/teams/{$boincteam_forum->nid}";
+  
+  return $form;
+}
+
+/**
+ * The edit team forum validation handler
+ */
+function boincteam_forum_edit_form_validate($form, &$form_state) {
+
+  $values = $form_state['values'];
+  
+  if (!$values['title']) {
+    form_set_error('name', bts('Message board title is required.', array(), NULL, 'boinc:team-forum-create/edit'));
+  }
+  if (!is_numeric($values['min_time_between_posts']) OR
+      $values['min_time_between_posts'] < 0) {
+    form_set_error('min_time_between_posts', 
+      bts('Please set the minimum time required between posts.', array(), NULL, 'boinc:team-forum-create/edit')
+    );
+  }
+  if (!is_numeric($values['min_total_credit_to_post']) OR
+      $values['min_total_credit_to_post'] < 0) {
+    form_set_error('min_total_credit_to_post',
+      bts('Please set the minimum total credit that a user'
+        . ' must earn in order to post to this message board.',
+        array(), NULL, 'boinc:team-forum-create/edit')
+    );
+  }
+  if (!is_numeric($values['min_avg_credit_to_post']) OR
+      $values['min_avg_credit_to_post'] < 0) {
+    form_set_error('min_avg_credit_to_post', 
+      bts('Please set the minimum average credit that a user'
+        . ' is required to have in order to post to this message board.',
+        array(), NULL, 'boinc:team-forum-create/edit')
+    );
+  }
+}
+
+/**
+ * The edit team forum submit handler
+ */
+function boincteam_forum_edit_form_submit($form, &$form_state) {
+  
+  $tfid = $form_state['storage']['tfid'];
+  $values = $form_state['values'];
+  
+  // Update the team forum in the db
+  db_query("
+    UPDATE {boincteam_forum} SET
+      title = '%s',
+      min_time_between_posts = '%d',
+      min_total_credit_to_post = '%d',
+      min_avg_credit_to_post = '%d',
+      public = %d,
+      description = '%s',
+      updated = UNIX_TIMESTAMP()
+    WHERE tfid='%d'",
+    $values['title'],
+    (int) $values['min_time_between_posts'],
+    (int) $values['min_total_credit_to_post'],
+    (int) $values['min_avg_credit_to_post'],
+    ($values['public']) ? 1 : 0,
+    $values['description'],
+    $tfid
+  );
+  
+  drupal_set_message(t('Details for message board "@forum" have been updated.',
+    array('@forum' => $values['title'])));
+  
+  // The storage variable quietly kills redirection for some reason... unset it
+  unset($form_state['storage']);
+}
diff --git a/drupal/sites/default/boinc/modules/boincteam/includes/views_handler_argument_boincteam_id.inc b/drupal/sites/default/boinc/modules/boincteam/includes/views_handler_argument_boincteam_id.inc
new file mode 100644
index 0000000..e66c784
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincteam/includes/views_handler_argument_boincteam_id.inc
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * views_handler_argument_boincteam_id: This handler is used to convert
+ * the Drupal group ID passed as a URL argument into a BOINC team ID
+ * for accessing data in the BOINC database.
+ */
+
+class views_handler_argument_boincteam_id extends views_handler_argument_numeric {
+  function construct() {
+    parent::construct();
+  }
+
+  function set_argument($arg) {
+    // When setting the ID argument, convert to BOINC ID
+    $id = is_numeric($arg) ? $arg : 0;
+    $boinc_id = db_result(db_query("SELECT team_id FROM {boincteam} WHERE nid = %d", $id));
+    $this->argument = $boinc_id;
+    return $this->validate_arg($boinc_id);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.admin.inc b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.admin.inc
new file mode 100644
index 0000000..eae5dfd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.admin.inc
@@ -0,0 +1,356 @@
+<?php
+// $Id$
+
+/**
+* @file
+* Administration page callbacks for the boinctranslate module.
+*/
+
+/**
+  * The BOINC translation settings form allows configuration of BTS integration
+  * (and other translation related settings)
+  */
+function boinctranslate_admin_settings(&$form_state) {
+  $form = array();
+  $initialized = FALSE;
+  $import_enabled = FALSE;
+  $default = array(
+    'transifex_user' => variable_get('boinc_translate_transifex_user', ''),
+    'transifex_pass' => variable_get('boinc_translate_transifex_pass', ''),
+    'transifex_boinc_name' => variable_get(
+      'boinc_translate_transifex_standard_name', 'boinc'
+    ),
+    'transifex_boinc_resources' => variable_get(
+      'boinc_translate_transifex_standard_resources',
+      "project-generic\nweb"
+    ),
+    'transifex_boinc_drupal_resource' => variable_get(
+      'boinc_translate_transifex_boinc_drupal_resource',
+      'drupal'
+    ), 
+    'transifex_project_name' => variable_get(
+      'boinc_translate_transifex_project_name', ''
+    ),
+    'transifex_project_resources' => variable_get(
+      'boinc_translate_transifex_project_resources', ''
+    ), 
+  );
+  
+  if ($default['transifex_user'] AND $default['transifex_pass']) {
+    if (trim($default['transifex_boinc_resources'])
+    OR trim($default['transifex_project_resources'])) {
+      $import_enabled = TRUE;
+    }
+    if ($default['transifex_boinc_name']
+    AND $default['transifex_project_name']
+    AND trim($default['transifex_boinc_resources'])
+    AND trim($default['transifex_project_resources'])) {
+      $initialized = TRUE;
+    }
+  }
+  
+  // Define the form
+  
+  $form['transifex'] = array(
+    '#title' => t('Transifex settings'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => TRUE,
+    '#collapsed' => $initialized,
+    '#attributes' => array('class' => '')
+  );
+  $form['transifex']['boinc_translate_transifex_user'] = array(
+    '#type' => 'textfield',
+    '#title' => t('User name'),
+    '#default_value' => $default['transifex_user'],
+  );
+  $form['transifex']['boinc_translate_transifex_pass'] = array(
+    '#type' => 'password',
+    '#title' => t('Password'),
+    '#attributes' => array(
+      'placeholder' => $default['transifex_pass'] ? '********' : '',
+    ),
+  );
+  $form['transifex']['boinc_translate_transifex_standard_name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC Transifex project'),
+    '#default_value' => $default['transifex_boinc_name'],
+    '#description' => t('The portion of the Transifex URL that identifies BOINC.'),
+  );
+  $form['transifex']['boinc_translate_transifex_boinc_drupal_resource'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Official BOINC Drupal Resource'),
+    '#default_value' => $default['transifex_boinc_drupal_resource'],
+    '#description' => t('The portion of the Transifex URL that identifies
+      the standard BOINC Resource to use for translation of the public
+      content defined in the Drupal system.'),
+  );
+  $form['transifex']['boinc_translate_transifex_standard_resources'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Additional BOINC Resources'),
+    '#default_value' => $default['transifex_boinc_resources'],
+    '#description' => t('List additional BOINC Transifex Resources to be used
+      for translating strings on this site (one Resource string per line).
+      Resources will be imported in the order they are given, so
+      translations from the Resources at the top of the list will be overridden
+      by any matching translations found in Resources further down the list.
+      Note that strings from the Official BOINC Drupal Resource will override
+      any strings from these additional Resources.'),
+  );
+  $form['transifex']['boinc_translate_transifex_project_name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Project-specific Transifex project'),
+    '#default_value' => $default['transifex_project_name'],
+    '#description' => t('The portion of the Transifex URL that identifies this project.'),
+  );
+  $form['transifex']['boinc_translate_transifex_project_resources'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Project-specific Resources'),
+    '#default_value' => $default['transifex_project_resources'],
+    '#description' => t('List project-specific Transifex Resources to be used
+      for translating strings on this site (one Resource string per line).
+      Resources will be imported in the order they are given, so
+      translations from the Resources at the top of the list will be overridden
+      by any matching translations found in Resources further down the list.
+      <br/>
+      NOTE: The first Resource listed here is considered the primary Resource
+      for project-specific translations and will be updated by the "Update
+      project-specific Resources" button below!'),
+  );
+  $form['transifex']['buttons']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save configuration'),
+  );
+  
+  $form['tools'] = array(
+    '#title' => t('Tools'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+    '#attributes' => array('class' => '')
+  );
+  $form['tools']['initialize_languages_text'] = array(
+    '#type' => 'item',
+    '#title' => t('Install official BOINC languages'),
+    '#value' => t('Installs all languages from the BOINC Transifex project. Also installs missing languages in Drupal. <br>Languages must be enabled manually in Administer > Site configuration > Languages.'),
+  );
+  $form['tools']['initialize_languages'] = array(
+    '#type' => 'button',
+    '#value' => t('Install official BOINC languages'),
+    '#executes_submit_callback' => TRUE,
+    '#submit' => array('boinctranslate_admin_settings_initialize_languages'),
+    '#disabled' => !$initialized,
+  );
+  $form['tools']['import_now_text'] = array(
+    '#type' => 'item',
+    '#title' => t('Import all translations'),
+    '#value' => t('Imports from Tranifex all configured Resources into their respective text groups.'),
+  );
+  $form['tools']['import_now'] = array(
+    '#type' => 'button',
+    '#value' => t('Import all translations'),
+    '#executes_submit_callback' => TRUE,
+    '#submit' => array('boinctranslate_admin_settings_import_now'),
+    '#disabled' => !$import_enabled,
+  );
+  $form['tools']['download_boinc_pot_text'] = array(
+    '#type' => 'item',
+    '#title' => t('Download official BOINC-Drupal .pot'),
+    '#value' => t('Downloads the generic BOINC-Drupal .pot file. This is the template file for the boinc text group.'),
+  );
+  $form['tools']['download_boinc_pot'] = array(
+    '#type' => 'button',
+    '#value' => t('Download official BOINC-Drupal .pot'),
+    '#executes_submit_callback' => TRUE,
+    '#submit' => array('boinctranslate_admin_settings_download_boinc_pot'),
+    '#disabled' => !$import_enabled,
+  );
+  $form['tools']['download_project_pot_text'] = array(
+    '#type' => 'item',
+    '#title' => t('Download project-specific .pot'),
+    '#value' => t('Downloads the project-specific .pot file. This is the template file for the project text group.'),
+  );
+  $form['tools']['download_project_pot'] = array(
+    '#type' => 'button',
+    '#value' => t('Download project-specific .pot'),
+    '#executes_submit_callback' => TRUE,
+    '#submit' => array('boinctranslate_admin_settings_download_project_pot'),
+    '#disabled' => !$import_enabled,
+  );
+  if (user_access('update official BOINC translations')) {
+    $form['tools']['update_official_boinc_text'] = array(
+      '#type' => 'item',
+      '#title' => t('Update official BOINC translations'),
+      '#value' => t('Updates the official BOINC-Drupal Resource (translatable strings templates) to the BOINC Transifex project, based on the consolidated imported translations.<br><b>WARNING: Do not use unless you have write-access to the BOINC Transifex project.</b>'),
+    );
+    $form['tools']['update_official_boinc'] = array(
+      '#type' => 'button',
+      '#value' => t('Update official BOINC translations'),
+      '#executes_submit_callback' => TRUE,
+      '#submit' => array('boinctranslate_admin_settings_update_official_boinc'),
+      '#disabled' => !$import_enabled,
+    );
+  }
+  $form['tools']['export_now_text'] = array(
+    '#type' => 'item',
+    '#title' => t('Update project-specific Resources'),
+    '#value' => t('Updates the configured Resources (translatable strings templates) to the project\'s Transifex project.<br><b>WARNING: Do not use unless you have write-access to your project\'s Transifex project.</b>'),
+  );
+  $form['tools']['export_now'] = array(
+    '#type' => 'button',
+    '#value' => t('Update project-specific Resources'),
+    '#executes_submit_callback' => TRUE,
+    '#submit' => array('boinctranslate_admin_settings_export_now'),
+    '#disabled' => !$import_enabled,
+  );
+  
+  $form['#submit'][] = 'system_settings_form_submit';
+  $form['#theme'] = 'system_settings_form'; 
+  
+  return $form;
+}
+
+function boinctranslate_admin_settings_export_now() {
+  drupal_goto('admin/boinc/translation/export');
+}
+
+function boinctranslate_admin_settings_import_now() {
+  drupal_goto('admin/boinc/translation/import');
+}
+
+function boinctranslate_admin_settings_initialize_languages() {
+  drupal_goto('admin/boinc/translation/initialize-languages');
+}
+
+function boinctranslate_admin_settings_update_official_boinc() {
+  drupal_goto('admin/boinc/translation/update-official-boinc');
+}
+
+function boinctranslate_admin_settings_download_boinc_pot() {
+  drupal_goto('admin/boinc/translation/download-pot/boinc');
+}
+
+function boinctranslate_admin_settings_download_project_pot() {
+  drupal_goto('admin/boinc/translation/download-pot/project');
+}
+
+
+/**
+  * Validate the BOINC translation settings form.
+  */
+function boinctranslate_admin_settings_validate($form, &$form_state) {
+  $values = $form_state['values'];
+  $errors = array();
+  $api_base_url = 'https://www.transifex.com/api/2';
+  
+  if (!$values['boinc_translate_transifex_user']) {
+    form_set_error('boinc_translate_transifex_user', t('User name is required.'));
+  }
+  if (!$values['boinc_translate_transifex_pass']) {
+    if (!variable_get('boinc_translate_transifex_pass', '')) {
+      form_set_error('boinc_translate_transifex_pass', t('Password is required.'));
+    }
+    else {
+      unset($form_state['values']['boinc_translate_transifex_pass']);
+    }
+  }
+  if (!$values['boinc_translate_transifex_standard_name']) {
+    form_set_error('boinc_translate_transifex_standard_name', 
+      t('BOINC Transifex project name is required.')
+    );
+  }
+  if (!$values['boinc_translate_transifex_standard_resources']) {
+    form_set_error('boinc_translate_transifex_standard_resources',
+      t('At least one BOINC Transifex project Resource is required.')
+    );
+  }
+  if (!$values['boinc_translate_transifex_project_resources']) {
+    form_set_error('boinc_translate_transifex_project_resources',
+      t('At least one project-specific Transifex Resource is required.')
+    );
+  }
+  
+  $username = $values['boinc_translate_transifex_user'];
+  $password = ($values['boinc_translate_transifex_pass']) ? $values['boinc_translate_transifex_pass'] : variable_get('boinc_translate_transifex_pass', '');
+  $boinc_name = $values['boinc_translate_transifex_standard_name'];
+  $boinc_resources = boinctranslate_parse_resources(
+    $values['boinc_translate_transifex_standard_resources']
+  );
+  
+  if ($username AND $password AND $boinc_name AND $boinc_resources) {
+    // Test authentication
+    $authenticated = FALSE;
+    $path = "project/{$boinc_name}/resource/{$boinc_resources[0]}/translation/en";
+    $response = boinctranslate_transifex_request($path, NULL, TRUE, FALSE, $username, $password);
+    
+    if ($response) {
+      if ($response == '401 UNAUTHORIZED') {
+        form_set_error(
+          'boinc_translate_transifex_pass',
+          t('Transifex authentication failed.')
+        );
+      }
+      else {
+        $authenticated = TRUE;
+      }
+    }
+    
+    if ($authenticated) {
+      // Prepare list of resources to validate
+      $transifex_resources = array(
+        'boinc' => $boinc_resources,
+      );
+      // Parse project-specific resources
+      $project_name = trim($values['boinc_translate_transifex_project_name']);
+      $project_resources = boinctranslate_parse_resources(
+        $values['boinc_translate_transifex_project_resources']
+      );
+      if ($project_name AND $project_resources) {
+        $transifex_resources[$project_name] = $project_resources;
+      }
+      elseif ($project_name AND !$project_resources) {
+        drupal_set_message(
+          t('No project-specific resources were provided'),
+          'warning'
+        );
+      }
+      elseif ($project_resources AND !$project_name) {
+        drupal_set_message(
+          t('No project-specific Transifex project name was provided'),
+          'warning'
+        );
+      }
+      
+      // Try to access the given resources
+      foreach ($transifex_resources as $project => $resources) {
+        foreach ($resources as $resource) {
+          
+          $path = "project/{$project}/resource/{$resource}/translation/en";
+          $response = boinctranslate_transifex_request($path);
+          
+          if ($response == '404 NOT FOUND') {
+            form_set_error(
+              'boinc_translate_transifex_' . ($project == $boinc_name ? 'standard' : 'project') . '_resources',
+              t('Resource %name not found in %project.',
+                array(
+                  '%name' => $resource,
+                  '%project' => $project,
+                )
+              )
+            );
+          }
+        }
+      }
+    }
+  }
+}
+
+/**
+  * Handle post-validation submission of BOINC translation settings form.
+  */
+function boinctranslate_admin_settings_submit($form, &$form_state) {
+  drupal_set_message(t('BOINC translation settings have been updated.'));
+}
+
+
diff --git a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.info b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.info
new file mode 100644
index 0000000..b8a912f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.info
@@ -0,0 +1,8 @@
+; $Id$
+name = BOINC translate
+description = Functions for integration with BOINC translation services
+core = 6.x
+dependencies[] = i18n
+dependencies[] = locale
+dependencies[] = translation
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.install b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.install
new file mode 100644
index 0000000..f07dda4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.install
@@ -0,0 +1,53 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_install()
+ */
+function boinctranslate_install() {
+  // Use schema API to create database table
+  //drupal_install_schema('boinctranslate');
+  
+  // Alter the formula field in the languages table to increase length from 128
+  // to 1024 characters (longer formulas were being truncated)
+  $ret = array();
+  db_change_field(
+    $ret,
+    'languages',
+    'formula',
+    'formula',
+    array(
+      'type' => 'varchar',
+      'length' => 1024,
+      'not null' => TRUE,
+      'default' => '',
+    )
+  );
+}
+
+/**
+* Implementation of hook_uninstall().
+*/
+function boinctranslate_uninstall() {
+  // Use schema API to delete database table.
+  //drupal_uninstall_schema('boinctranslate');
+  // Delete our module's variable from the variables table.
+  //variable_del('boinctranslate_');
+}
+
+/**
+* Implementation of hook_schema().
+*/ /*
+function boinctranslate_schema() {
+  $schema['boinctranslate'] = array();
+  return $schema;
+}*/
+
+/**
+ * Implementation of hook_schema_alter().
+ */
+function boinctranslate_schema_alter(&$schema) {
+  // Notify the schema system that the length of languages.formula has been
+  // increased to 1024 (was 128)
+  $schema['languages']['fields']['formula']['length'] = 1024;
+}
diff --git a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.module b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.module
new file mode 100644
index 0000000..be7bde4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.module
@@ -0,0 +1,1583 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provides common BOINC module functionality.
+ *
+ * In general, any custom feature or function required independently by
+ * multiple BOINC modules should be in this module.
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+//require_once('includes/boinctranslate.forms.inc');
+//require_once('includes/boinctranslate.helpers.inc');
+require_once('boinctranslate.admin.inc');
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+ * Implementation of hook_menu(); determine the actions that correspond
+ * with defined URL paths
+ */
+function boinctranslate_menu() {
+  $items['admin/boinc/translation'] = array(
+    'title' => 'Environment: Translation',
+    'description' => 'Configure URLs for translation files (i.e. integration
+      with BOINC Translation Services).',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boinctranslate_admin_settings'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boinctranslate.admin.inc'
+  );
+  $items['admin/boinc/translation/export'] = array(
+    'title' => 'Export translations',
+    'page callback' => 'boinctranslate_export_translations',
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/translation/import'] = array(
+    'title' => 'Import translations',
+    'page callback' => 'boinctranslate_refresh_translations',
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/translation/initialize-languages'] = array(
+    'title' => 'Install official BOINC languages',
+    'page callback' => 'boinctranslate_initialize_languages',
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/translation/update-official-boinc'] = array(
+    'title' => 'Update official BOINC translations',
+    'page callback' => 'boinctranslate_update_official_boinc_translations',
+    'access arguments' => array('update official BOINC translations'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/boinc/translation/download-pot'] = array(
+    'title' => 'Download translation template',
+    'page callback' => 'boinctranslate_download_pot',
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_CALLBACK,
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_nodeapi(); add custom actions to node operations
+ * Obsolete in Drupal 7...
+ */
+function boinctranslate_nodeapi(&$node, $op, $a3 = null, $a4 = null) {
+  // In Drupal 7, these operation cases will all exist as their own hooks,
+  // so let's approximate that here so that this function can simply be removed
+  // upon migration to 7
+  switch($op) {
+  case 'update':
+    boinctranslate_node_update($node);
+    break;
+  case 'view':
+    global $language;
+    boinctranslate_node_view($node, 'full', $language->language);
+    break;
+  default:
+  }
+}
+
+/**
+ * Implementation of hook_node_update(); add custom actions when a node
+ * is updated (forward compatible to Drupal 7)
+ */
+function boinctranslate_node_update($node) {
+  switch($node->type) {
+  case 'page':
+    // Add page content to translation table
+    $textgroup = 'project';
+    $location = "node:{$node->nid}:body";
+    $status = NULL;
+    $lid = db_result(db_query("
+      SELECT lid FROM {locales_source}
+      WHERE location = '%s' AND textgroup = '%s'",
+      $location, $textgroup
+    ));
+    if ($lid) {
+      $result = db_query("
+        UPDATE {locales_source}
+        SET source = '%s'
+        WHERE lid = %d",
+        $node->body, $lid
+      );
+      if ($result) {
+        watchdog(
+          'boinctranslate',
+          'Updated translation source strings for node @nid.',
+          array('@nid' => $node->nid)
+        );
+      }
+      else {
+        drupal_set_message(
+          t('Unable to update translation source strings.'), 'error'
+        );
+        watchdog(
+          'boinctranslate',
+          'Unable to update translation source strings for node @nid.',
+          array('@nid' => $node->nid),
+          WATCHDOG_ERROR
+        );
+      }
+    }
+    else {
+      $result = db_query("
+        INSERT INTO {locales_source}
+        SET location = '%s', textgroup = '%s', source = '%s'",
+        $location, $textgroup, $node->body
+      );
+      if ($result) {
+        watchdog(
+          'boinctranslate',
+          'Added translation source strings for node @nid.',
+          array('@nid' => $node->nid)
+        );
+      }
+      else {
+        drupal_set_message(
+          t('Unable to add translation source strings.'), 'error'
+        );
+        watchdog(
+          'boinctranslate',
+          'Unable to add translation source strings for node @nid.',
+          array('@nid' => $node->nid),
+          WATCHDOG_ERROR
+        );
+      }
+    }
+    break;
+    
+  default:
+    
+  }
+}
+
+/**
+ * Implementation of hook_node_view(); add custom actions when a node
+ * is viewed (forward compatible to Drupal 7)
+ */
+function boinctranslate_node_view($node, $view_mode, $langcode) {
+  switch($node->type) {
+  case 'page':
+    // Replace the node body with translated content, if available
+    $node->content['body']['#value'] = bts(
+      $node->body, array(), $langcode, "project:node:{$node->nid}:body", FALSE
+    );
+    break;
+  default:
+  }
+}
+
+
+/**
+ * Implementation of hook_panels_pane_content_alter()
+ * This workaround makes panel page titles and pane titles translatable
+ */
+function boinctranslate_panels_pane_content_alter($content, $pane, $args, $context) {
+  if ($content->title) {
+    $content->title = t($content->title);
+  }
+  return $content;
+}
+
+/**
+ * Implementation of hook_perm()
+ */
+function boinctranslate_perm() {
+  return array('update official BOINC translations');
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Page callbacks from hook_menu()
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * 
+ */
+function boinctranslate_initialize_languages() {
+
+  require_once(getcwd() . '/includes/locale.inc');
+  
+  $api_base_url = 'https://www.transifex.com/api/2';
+  $project_name = variable_get(
+    'boinc_translate_transifex_project_name', ''
+  );
+  $operations = array();
+  
+  if ($project_name) {
+    // Get all languages configured for this project at Transifex
+    $path = "project/{$project_name}/languages";
+    $response = boinctranslate_transifex_request($path);
+    
+    if ($response == '404 NOT FOUND') {
+      drupal_set_message(
+        t('Unable to get languages for %project.',
+          array(
+            '%project' => $project_name,
+          )
+        ), 'warning'
+      );
+    }
+    elseif ($response) {
+      if (is_array($response)) {
+      
+        $installed_languages = language_list();
+        $available_languages = _locale_get_predefined_list();
+        $transifex_languages = array();
+        $disabled_languages = array();
+        $process_batches = FALSE;
+        
+        // Set up Transifex languages in Drupal
+        foreach ($response as $language) {
+          $posix_code = $language['language_code'];
+          $rfc_code = strtolower(str_replace('_', '-', $posix_code));
+          $transifex_languages[$rfc_code] = $language;
+          if (!isset($installed_languages[$rfc_code])) {
+            // See if this language can be installed from a predefined list
+            if (isset($available_languages[$rfc_code])) {
+              locale_add_language(
+                $rfc_code,
+                NULL,
+                NULL,
+                NULL,
+                NULL,
+                NULL,
+                FALSE
+              );
+              drupal_set_message(
+                'Added predefined language: '.$available_languages[$rfc_code][0]
+              );
+              db_query("UPDATE {languages} SET enabled = 1 WHERE language = '%s'", $rfc_code);
+            }
+            else {
+              // Retrieve language details from Transifex
+              $path = "language/{$posix_code}";
+              $response = boinctranslate_transifex_request($path);
+              
+              if ($response == '404 NOT FOUND') {
+                drupal_set_message(
+                  t('Unable to get details for language %code.',
+                    array(
+                      '%code' => $posix_code,
+                    )
+                  ), 'warning'
+                );
+              }
+              elseif ($response) {
+                if (!empty($response['name'])) {
+                  // Add a custom language to Drupal and enable
+                  locale_add_language(
+                    $rfc_code,
+                    $response['name'],
+                    $response['name'],
+                    $response['rtl'],
+                    NULL,
+                    NULL,
+                    TRUE
+                  );
+                  drupal_set_message(
+                    'Added new language: '.$response['name']
+                  );
+                }
+                else {
+                  $variables = array(
+                    '%code' => $posix_code,
+                  );
+                  drupal_set_message(
+                    t('Unable to get details for language %code.', $variables),
+                    'error'
+                  );
+                  watchdog(
+                    'boinctranslate',
+                    'Unable to get details for language %code.',
+                    $variables,
+                    WATCHDOG_ERROR
+                  );
+                }
+              }
+              else {
+               $variables = array(
+                  '%code' => $posix_code,
+                );
+                drupal_set_message(
+                  t('Invalid response while getting details for language %code.', $variables),
+                  'error'
+                );
+                watchdog(
+                  'boinctranslate',
+                  'Invalid response while getting details for language %code.',
+                  $variables,
+                  WATCHDOG_ERROR
+                );
+              }
+            }
+            // Import any language files for the newly added language
+            if ($batch = locale_batch_by_language($rfc_code, '_locale_batch_language_finished')) {
+              $operations = array_merge($operations, $batch['operations']);
+              $process_batches = TRUE;
+            }
+          }
+        }
+        drupal_set_message('Finished installing official BOINC languages.');
+        // Disable languages that are not in Transifex
+        foreach ($installed_languages as $langcode => $language) {
+          if (!isset($transifex_languages[$langcode])) {
+            $disabled_languages[$langcode] = $langcode;
+            db_query("UPDATE {languages} SET enabled = 0 WHERE language = '%s'", $langcode);
+          }
+        }
+        if ($disabled_languages) {
+          drupal_set_message('The following languages were not found in Transifex and were disabled: ' . implode(' ', $disabled_languages));
+        }
+        if ($process_batches) {
+          $batch = array(
+            'operations' => $operations,
+          );
+          batch_set($batch);
+          batch_process('admin/boinc/translation');
+        }
+      }
+      else {
+        $variables = array(
+          '%project' => $project_name,
+        );
+        drupal_set_message(
+          t('No languages found for %project. (Does the configured account have sufficient privileges at Transifex?)', $variables),
+          'error'
+        );
+        watchdog(
+          'boinctranslate',
+          'No languages found for %project. (Does the configured account have sufficient privileges at Transifex?)',
+          $variables,
+          WATCHDOG_ERROR
+        );
+      }
+    }
+    else {
+     $variables = array(
+        '%project' => $project_name,
+      );
+      drupal_set_message(
+        t('Invalid response while getting languages for %project.', $variables),
+        'error'
+      );
+      watchdog(
+        'boinctranslate',
+        'Invalid response while getting languages for %project.',
+        $variables,
+        WATCHDOG_ERROR
+      );
+    }
+  }
+  drupal_goto('admin/boinc/translation');
+}
+
+/**
+ *
+ */
+function boinctranslate_export_translations() {
+  require_once(getcwd() . '/includes/locale.inc');
+  $project_name = variable_get(
+    'boinc_translate_transifex_project_name', ''
+  );
+  // Get resource names from local config
+  $resource_config = (variable_get(
+    'boinc_translate_transifex_project_resources', ''
+  ));
+  $resource_names = boinctranslate_parse_resources($resource_config);
+  $primary_resource = reset($resource_names);
+  
+  if ($project_name AND $primary_resource) {
+    // Create or update the translation source, if needed
+    $source_exists = FALSE;
+    $path = "project/{$project_name}/resources";
+    $resources = boinctranslate_transifex_request($path);
+    if ($resources AND is_array($resources)) {
+      foreach ($resources as $resource) {
+        if ($resource['slug'] == $primary_resource) {
+          $source_exists = TRUE;
+          break;
+        }
+      }
+      if (!$source_exists) {
+        // Create the source
+        $path = "project/{$project_name}/resources";
+        $post = array(
+          'slug' => $primary_resource,
+          'name' => 'Drupal-Project',
+          'i18n_type' => 'PO',
+          'category' => 'Drupal',
+          'content' => boinctranslate_get_po('en', 'project'),
+        );
+        $result = boinctranslate_transifex_request($path, $post);
+      }
+      else {
+        // Update the source
+        $path = "project/{$project_name}/resource/{$primary_resource}/content";
+        $post = array(
+          'content' => boinctranslate_get_po('en', 'project')
+        );
+        $result = boinctranslate_transifex_request($path, $post, TRUE, TRUE);
+      }
+    }
+    
+    if (is_array($result) OR substr($result, 0, 6) != 'ERROR:') {
+      $enabled_languages = locale_language_list();
+      if ($source_exists) {
+        drupal_set_message('Updated source translation strings at Transifex');
+      }
+      else {
+        drupal_set_message('Established new translation resource at Transifex');
+      }
+      // Try to export translations for all enabled languages
+      foreach ($enabled_languages as $langcode => $language_name) {
+        if ($langcode == 'en') {
+          continue;
+        }
+        $po_file = boinctranslate_get_po($langcode, 'project');
+        if ($po_file) {
+          $path = "project/{$project_name}/resource/{$primary_resource}/translation/{$langcode}";
+          $post = array(
+            'content' => $po_file,
+          );
+          $result = boinctranslate_transifex_request($path, $post, TRUE, TRUE);
+          if (!is_array($result)
+          AND substr($result, 0, 6) == 'ERROR:') {
+            drupal_set_message(
+              "Unable to update {$language_name} translations: {$result}",
+              'warning'
+            );
+          }
+          else {
+            drupal_set_message("Updated {$language_name} translations");
+            //drupal_set_message('DEBUG: <pre>'.print_r($result,1).'</pre>');
+          }
+        }
+        else {
+          drupal_set_message("No translations to export for {$language_name}");
+        }
+      }
+    }
+    else {
+      drupal_set_message(
+        "Unable to update the translation source: {$result}",
+        'warning'
+      );
+    }
+  }
+  else {
+    drupal_set_message(
+      'Failed to export translations: Transifex settings are not intiailized.',
+      'error'
+    );
+  }
+  drupal_goto('admin/boinc/translation');
+}
+
+/**
+ *
+ */
+function boinctranslate_update_official_boinc_translations() {
+  require_once(getcwd() . '/includes/locale.inc');
+  $project_name = variable_get(
+    'boinc_translate_transifex_standard_name', ''
+  );
+  $drupal_resource = variable_get(
+    'boinc_translate_transifex_boinc_drupal_resource', ''
+  );
+  
+  if ($project_name AND $drupal_resource) {
+    // Create or update the translation source, if needed
+    $source_exists = FALSE;
+    $path = "project/{$project_name}/resources";
+    $resources = boinctranslate_transifex_request($path);
+    if ($resources AND is_array($resources)) {
+      foreach ($resources as $resource) {
+        if ($resource['slug'] == $drupal_resource) {
+          $source_exists = TRUE;
+          break;
+        }
+      }
+    }
+    
+    if ($source_exists) {
+      $enabled_languages = locale_language_list();
+      // Try to export translations for all enabled languages
+      foreach ($enabled_languages as $langcode => $language_name) {
+        if ($langcode == 'en') {
+          continue;
+        }
+        $po_file = boinctranslate_get_po($langcode, 'boinc');
+        if ($po_file) {
+          $path = "project/{$project_name}/resource/{$drupal_resource}/translation/{$langcode}";
+          $post = array(
+            'content' => $po_file,
+          );
+          $result = boinctranslate_transifex_request($path, $post, TRUE, TRUE);
+          
+          if (!is_array($result)) {
+            if (substr($result, 0, 6) == 'ERROR:') {
+              drupal_set_message(
+                "Unable to update {$language_name} official BOINC translations: {$result}",
+                'warning'
+              );
+            }
+            elseif ($result == '401 UNAUTHORIZED') {
+              drupal_set_message(
+                'Not authorized to update official BOINC translations',
+                'warning'
+              );
+              break;
+            }
+            elseif ($result == 'success') {
+              drupal_set_message("Updated {$language_name} official BOINC translations");
+            }
+            else {
+              drupal_set_message(
+                "Unexpected response for {$language_name}: {$result}",
+                'warning'
+              );
+            }
+          }
+          else {
+            drupal_set_message("Updated {$language_name} official BOINC translations");
+            //drupal_set_message('DEBUG: <pre>'.print_r($result,1).'</pre>');
+          }
+        }
+        else {
+          drupal_set_message("No official BOINC translations to export for {$language_name}");
+        }
+      }
+    }
+    else {
+      drupal_set_message(
+        "The {$drupal_resource} resource does not exist in the {$project_name} project at Transifex",
+        'warning'
+      );
+    }
+  }
+  else {
+    drupal_set_message(
+      'Failed to export official BOINC translations: Transifex settings are not intiailized.',
+      'error'
+    );
+  }
+  drupal_goto('admin/boinc/translation');
+}
+
+/**
+ *
+ */
+function boinctranslate_download_pot($type = 'boinc') {
+  $po = boinctranslate_get_po(NULL, $type);
+  _locale_export_po(NULL, $po);
+}
+
+/**
+ *
+ */
+function boinctranslate_transifex_request($path, $post = NULL, $json = TRUE, $use_put = FALSE, $username = '', $password = '') {
+  $debug_mode = variable_get('boinc_debug_mode', 0);
+  
+  // Transifex details
+  $api_base_url = 'https://www.transifex.com/api/2';
+  if (!$username) $username = variable_get('boinc_translate_transifex_user', '');
+  if (!$password) $password = variable_get('boinc_translate_transifex_pass', '');
+  
+  $url = "{$api_base_url}/{$path}";
+  $headers = array(
+    'Authorization' => 'Basic ' . base64_encode($username . ":" . $password),
+  );
+  $data = NULL;
+  
+  if ($post) {
+    if ($json) {
+      $headers['Content-Type'] = 'application/json';
+      $data = json_encode($post);
+    }
+    else {
+      $data = drupal_query_string_encode($post);
+    }
+    $method = ($use_put) ? 'PUT' : 'POST';
+  }
+  else {
+    $method = 'GET';
+  }
+  
+  $response = drupal_http_request($url, $headers, $method, $data, 1, 10);
+  
+  switch ($response->code) {
+  case 200:
+  case 304:
+    if ($json) {
+      // Process as JSON
+      return json_decode($response->data, TRUE);
+    }
+    else {
+      return (string) $response->data;
+    }
+    break;
+  case 404:
+    return '404 NOT FOUND';
+  case 401:
+    return '401 UNAUTHORIZED';
+  case 400:
+    if ($debug_mode) watchdog('boinctranslate', "The following response was received when trying to communicate with the Transifex system: \n{$response}", array(), WATCHDOG_WARNING);
+    return "ERROR: {$response->data}";
+  case 405:
+    if ($debug_mode) watchdog('boinctranslate', "The following response was received when trying to communicate with the Transifex system: \n{$response}", array(), WATCHDOG_WARNING);
+    return "ERROR: User not allowed to perform this action";
+  }
+  
+  return NULL;
+}
+
+/**
+ *
+ */
+function boinctranslate_get_po($langcode, $type = 'standard') {
+
+  require_once(getcwd() . '/includes/locale.inc');
+  
+  $all_languages = language_list();
+  $language = $langcode ? $all_languages[$langcode] : NULL;
+  $textgroups = array();
+  $strings = array();
+  
+  switch ($type) {
+  case 'standard':
+    $textgroups = array(
+      'default',
+      'taxonomy',
+      'views',
+    );
+    break;
+  case 'boinc':
+    $textgroups = array(
+      'boinc',
+    );
+    break;
+  case 'project':
+    $textgroups = array(
+      'blocks',
+      'menu',
+      'project',
+    );
+    break;
+  default:
+  }
+  
+  // Merge textgroup strings together for export as one file
+  foreach ($textgroups as $textgroup) {
+    $strings += _locale_export_get_strings($language, $textgroup);
+  }
+  ksort($strings);
+  foreach ($strings as $id => $string) {
+    // Set the string context
+    $strings[$id]['context'] = trim($string['comment']);
+  }
+  if ($langcode AND $langcode != 'en') {
+    // If not the source language, remove untranslated strings from the ouput
+    foreach ($strings as $i => $string) {
+      if (!$string['translation']) {
+        unset($strings[$i]);
+      }
+    }
+  }
+  if ($strings) {
+    return boinctranslate_export_po_generate($language, $strings, NULL, $type);
+  }
+  
+  return NULL;
+}
+
+/**
+ *
+ */
+function boinctranslate_export_po_generate($language = NULL, $strings = array(), $header = NULL, $type = NULL) {
+
+  require_once(getcwd() . '/includes/locale.inc');
+  global $user;
+
+  // unset $language to indicate template creation
+  if (isset($language) && $language->language == "en") {
+    $language = NULL;
+  }
+
+  if (!isset($header)) {
+    if (isset($type) && $type == "project") {
+      $header = "# ".variable_get('site_name', 'Drupal')." drupal localization template\n";
+      $header .= "# Copyright (C) ".date("Y")." ".variable_get('site_name', 'Drupal')."\n";
+    } else {
+      $header = "# BOINC drupal localization template\n";
+      $header .= "# Copyright (C) ".date("Y")." University of California\n";
+    }
+    $header .= '# Generated by ' . $user->name . ' <' . $user->mail . ">\n";
+    $header .= "#\n";
+    $header .= "# This file is distributed under the same license as BOINC.\n";
+    $header .= "#\n";
+    $header .= "msgid \"\"\n";
+    $header .= "msgstr \"\"\n";
+    if (isset($type) && $type == "project") {
+      $header .= "\"Project-Id-Version: ".variable_get('site_name', 'Drupal')." ".date("Y-m-d-H:iO")."\\n\"\n";
+    } else {
+      $header .= "\"Project-Id-Version: BOINC unknown\\n\"\n"; // TODO: add SHA1 of source checkout here
+    }
+    $header .= "\"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\\n\"\n";
+    $header .= "\"POT-Creation-Date: " . date("Y-m-d H:iO") . "\\n\"\n";
+    if (isset($language)) {
+      $header .= "\"PO-Revision-Date: " . date("Y-m-d H:iO") . "\\n\"\n";
+    }
+    $header .= "\"Last-Translator: Generated automatically from Drupal translate interface\\n\"\n";
+    $header .= "\"MIME-Version: 1.0\\n\"\n";
+    $header .= "\"Content-Type: text/plain; charset=utf-8\\n\"\n";
+    $header .= "\"Content-Transfer-Encoding: 8bit\\n\"\n";
+    if (isset($language)) {
+      $header .= "\"Language: ".$language->language."\\n\"";
+      if ($language->formula && $language->plurals) {
+        $header .= "\"Plural-Forms: nplurals=" . $language->plurals . "; plural=" . strtr($language->formula, array('$' => '')) . ";\\n\"\n";
+      }
+    }
+    $header .= "\"X-Poedit-SourceCharset: utf-8\\n\"\n";
+  }
+
+  $output = $header . "\n";
+
+  foreach ($strings as $lid => $string) {
+    // Only process non-children, children are output below their parent.
+    if (!isset($string['child'])) {
+      if ($string['comment']) {
+        $output .= '#: ' . $string['comment'] . "\n";
+      }
+      if ($string['context']) {
+        $output .= 'msgctxt "' . $string['context'] . "\"\n";
+      }
+      $output .= 'msgid ' . _locale_export_string($string['source']);
+      if (!empty($string['plural'])) {
+        $plural = $string['plural'];
+        $output .= 'msgid_plural ' . _locale_export_string($strings[$plural]['source']);
+        if (isset($language)) {
+          $translation = $string['translation'];
+          for ($i = 0; $i < $language->plurals; $i++) {
+            $output .= 'msgstr[' . $i . '] ' . _locale_export_string($translation);
+            if ($plural) {
+              $translation = _locale_export_remove_plural($strings[$plural]['translation']);
+              $plural = isset($strings[$plural]['plural']) ? $strings[$plural]['plural'] : 0;
+            }
+            else {
+              $translation = '';
+            }
+          }
+        }
+        else {
+          $output .= 'msgstr[0] ""' . "\n";
+          $output .= 'msgstr[1] ""' . "\n";
+        }
+      }
+      else {
+        $output .= 'msgstr ' . _locale_export_string($string['translation']);
+      }
+      $output .= "\n";
+    }
+  }
+  return $output;
+}
+
+/**
+ *
+ */
+function boinctranslate_refresh_translations() {
+  require_once(getcwd() . '/includes/locale.inc');
+  $errors = array();
+  $languages = locale_language_list();
+  $translation_resources = array();
+  $operations = array();
+  $debug_mode = variable_get('boinc_debug_mode', 0);
+  
+  $boinc_name = variable_get(
+    'boinc_translate_transifex_standard_name', ''
+  );
+  $boinc_resources = boinctranslate_parse_resources(
+    variable_get('boinc_translate_transifex_standard_resources', array())
+  );
+  // Add the Official BOINC resource to the list of BOINC resources;
+  // The official resource overrides any additional resources provided, so it
+  // should be added to the end so as to be processed last
+  $drupal_resource = variable_get(
+    'boinc_translate_transifex_boinc_drupal_resource', ''
+  );
+  $boinc_resources[] = $drupal_resource;
+  if ($boinc_name AND $boinc_resources) {
+    $translation_resources[$boinc_name] = array(
+      'resources' => $boinc_resources,
+      'textgroups' => array(
+        'boinc',
+        'default',
+        'taxonomy',
+        'views',
+      ),
+    );
+  }
+  $project_name = variable_get(
+    'boinc_translate_transifex_project_name', ''
+  );
+  $project_resources = boinctranslate_parse_resources(
+    variable_get('boinc_translate_transifex_project_resources', array())
+  );
+  if ($project_name AND $project_resources) {
+    $translation_resources[$project_name] = array(
+      'resources' => $project_resources,
+      'textgroups' => array(
+        'blocks',
+        'menu',
+        'project',
+      ),
+    );
+    // Be sure any strings from the override file are added to the boinc group
+    $override_file = './' . drupal_get_path('module', 'boinctranslate') . '/includes/other-boinc-translation-strings.txt';
+    $other_strings = file($override_file);
+    if ($other_strings) {
+      foreach ($other_strings as $string) {
+        $string = trim($string);
+        if ($string) {
+          // Ignore lines starting with '#' i.e., comments.
+          if ($string[0] === "#")
+            continue;
+
+          // Use '|' as delimiter to split string and context info.
+          $line = explode("|", $string);
+          if ($line) {
+            if (count($line)==1) {
+              $tl0 = trim($line[0]);
+              if ($tl0) {
+                bts($tl0);
+              }
+            }
+            elseif (count($line)>1) {
+              $tl0 = trim($line[0]);
+              $tl1 = trim($line[1]);
+              if ($tl0 and $tl1) {
+                bts($tl0, array(), NULL, $tl1);
+              }
+            }
+          }// if ($line)
+
+        }// if ($string)
+      }// foreach
+    }// if ($other_strings)
+  }
+  
+  foreach ($languages as $langcode => $language) {
+    if ($langcode == 'en') {
+      continue;
+    }
+    
+    $import_stats = array(
+      'new' => 0,
+      'updated' => 0,
+      'deleted' => 0,
+      'skipped' => 0,
+    );
+  
+    foreach ($translation_resources as $project => $translation) {
+      foreach ($translation['resources'] as $resource) {
+        
+        // Add this language to the batch operations
+        $operations[] = array(
+          'boinctranslate_refresh_translations_op',
+          array(
+            $project, $resource, $langcode, $language, $translation['textgroups'], $debug_mode
+          ),
+        );
+      }
+    }
+    if ($batch = locale_batch_by_language($langcode)) {
+      foreach ($batch['operations'] as $op) {
+        $operations[] = array(
+          'boinctranslate_refresh_translations_op',
+          array(
+            NULL, $op[1][0], $langcode, $language, array('default'), $debug_mode
+          ),
+        );
+      }
+    }
+  }
+  
+  $batch = array(
+    'operations' => $operations,
+    'finished' => 'boinctranslate_refresh_translations_finished',
+    'title' => t('Importing translations'),
+    'init_message' => t('Beginning translation import...'),
+    'progress_message' => t('Applied @current out of @total translation updates.'),
+    'error_message' => t('Translation import has encountered an error.'),
+  );
+  
+  batch_set($batch);
+  batch_process();
+}
+
+
+/**
+ * Batch operation for importing translations
+ */
+function boinctranslate_refresh_translations_op($project, $resource, $langcode, $language, $textgroups, $debug_mode, &$context) {
+  
+  require_once(getcwd() . '/includes/locale.inc');
+  
+  if ($debug_mode) {
+    watchdog(
+      'boinctranslate',
+      'Checking for @language updates in @project:@resource',
+      array('@language' => $language, '@project' => $project, '@resource' => $resource),
+      WATCHDOG_INFO
+    );
+  }
+  
+  if ($project) {
+    // Import the configured resources
+    $success = FALSE;
+    $message = '';
+    $path = "project/{$project}/resource/{$resource}/translation/{$langcode}";
+    $response = boinctranslate_transifex_request($path);
+    
+    if ($response == '404 NOT FOUND') {
+      $message = "Project resource {$project}:{$resource} not found in {$language}.";
+    }
+    elseif ($response) {
+      if (!empty($response['content'])) {
+        $po_text = $response['content'];
+        
+        // Write the translation file to a temporary location
+        $file = new stdClass();
+        $file->filepath = file_save_data($po_text, NULL);
+        $file->filename = basename($file->filepath);
+        if (!$file->filepath) {
+          $message = 'Unable to create temporary file in '
+            . file_directory_temp() . " for {$language} translation "
+            . "resource {$project}:{$resource}";
+        }
+        
+        foreach ($textgroups as $textgroup) {
+          // Import the translations from the file to each related textgroup
+          if (!$results = _boinctranslate_locale_import_po($file, $langcode, LOCALE_IMPORT_OVERWRITE, $textgroup)) {
+            $message = "The {$language} translation import of"
+              . " {$project}:{$resource} failed.";
+            $success = FALSE;
+            break;
+          }
+          else {
+            $success = TRUE;
+          }
+        }
+      }
+      else {
+        $message = "Unable to read response for {$language} translation import"
+          . " of {$project}:{$resource}.";
+      }
+    }
+    else {
+      $message = "Translation data not found in response for {$language}"
+        . " translation import of {$project}:{$resource}.";
+    }
+  }
+  else {
+    // If project isn't specified, import as a local Drupal resource
+    $project = 'drupal.local';
+    $file = new stdClass();
+    $file->filepath = $resource;
+    $file->filename = basename($file->filepath);
+    if (!$results = _boinctranslate_locale_import_po($file, $langcode, LOCALE_IMPORT_OVERWRITE, $textgroup)) {
+      $message = "The {$language} translation import of"
+        . " local file {$resource} failed.";
+      $success = FALSE;
+    }
+    else {
+      $success = TRUE;
+    }
+  }
+  
+  if ($success) {
+    // Store some result for post-processing in the finished callback.
+    $context['results']['success'][] = "{$langcode}:{$textgroup}";
+    $message = "Imported {$language} translations in {$project}:{$resource} ({$results['new']} added, {$results['updated']} refreshed, {$results['deleted']} removed)";
+    
+    if ($debug_mode) {
+      watchdog(
+        'boinctranslate',
+        $message,
+        array(),
+        WATCHDOG_INFO
+      );
+    }
+  }
+  else {
+    $context['results']['failure'][] = "{$langcode}:{$textgroup}";
+    watchdog(
+      'boinctranslate',
+      $message,
+      array(),
+      WATCHDOG_WARNING
+    );
+  }
+  
+  // Update our progress information.
+  $context['sandbox']['progress']++;
+  $context['sandbox']['language'] = $langcode;
+  $context['message'] = $message;
+
+  // Update the progress for the batch engine
+  if ($context['sandbox']['progress'] >= $context['sandbox']['max']) {
+    $context['finished'] = 1;
+  }
+  else {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Batch 'finished' callback
+ */
+function boinctranslate_refresh_translations_finished($success, $results, $operations) {
+  if ($success) {
+    // Let's count our successes
+    $count = count($results['success']);
+    $message = "Successfully completed {$count} import operations";
+    watchdog(
+      'boinctranslate',
+      'Successfully completed @count import operations.',
+      array('@count' => $count),
+      WATCHDOG_INFO
+    ); 
+  }
+  else {
+    // An error occurred.
+    // $operations contains the operations that remained unprocessed.
+    $error_operation = reset($operations);
+    $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
+    watchdog(
+      'boinctranslate',
+      $message,
+      array(),
+      WATCHDOG_WARNING
+    );
+  }
+  drupal_set_message($message);
+  drupal_goto('admin/boinc/translation');
+}
+
+/**
+ *
+ */
+function _boinctranslate_locale_import_po($file, $langcode, $mode, $group = NULL) {
+  // Try to allocate enough time to parse and import the data.
+  if (function_exists('set_time_limit')) {
+    @set_time_limit(240);
+  }
+
+  require_once(getcwd() . '/includes/locale.inc');
+  
+  // Check if we have the language already in the database.
+  if (!db_fetch_object(db_query("SELECT language FROM {languages} WHERE language = '%s'", $langcode))) {
+    drupal_set_message(t('The language selected for import is not supported.'), 'error');
+    return FALSE;
+  }
+
+  // Get strings from file (returns on failure after a partial import, or on success)
+  $status = _boinctranslate_locale_import_read_po('db-store', $file, $mode, $langcode, $group);
+  if ($status === FALSE) {
+    // Error messages are set in _locale_import_read_po().
+    return FALSE;
+  }
+
+  // Get status information on import process.
+  list($headerdone, $additions, $updates, $deletes, $skips) = _boinctranslate_locale_import_one_string('db-report');
+  
+  if (!$headerdone) {
+    drupal_set_message(t('The translation file %filename appears to have a missing or malformed header.', array('%filename' => $file->filename)), 'error');
+  }
+  
+  // Clear cache and force refresh of JavaScript translations.
+  _locale_invalidate_js($langcode);
+  cache_clear_all('locale:', 'cache', TRUE);
+
+  // Rebuild the menu, strings may have changed.
+  menu_rebuild();
+  
+  return array(
+    'new' => $additions,
+    'updated' => $updates,
+    'deleted' => $deletes,
+    'skipped' => $skips,
+  );
+}
+
+/**
+ *
+ */
+function _boinctranslate_locale_import_read_po($op, $file, $mode = NULL, $lang = NULL, $group = 'default') {
+
+  require_once(getcwd() . '/includes/locale.inc');
+  
+  $fd = fopen($file->filepath, "rb"); // File will get closed by PHP on return
+  if (!$fd) {
+    watchdog(
+      'boinctranslate',
+      'The translation import for %lang failed, because %filename could not be read.',
+      array('%lang' => $lang, '%filename' => $file->filename),
+      WATCHDOG_WARNING
+    );
+    _locale_import_message('The translation import failed, because the file %filename could not be read.', $file);
+    return FALSE;
+  }
+
+  $context = "COMMENT"; // Parser context: COMMENT, MSGID, MSGID_PLURAL, MSGSTR and MSGSTR_ARR
+  $current = array(); // Current entry being read
+  $plural = 0; // Current plural form
+  $lineno = 0; // Current line
+
+  while (!feof($fd)) {
+    $line = fgets($fd, 10 * 1024); // A line should not be this long
+    if ($lineno == 0) {
+      // The first line might come with a UTF-8 BOM, which should be removed.
+      $line = str_replace("\xEF\xBB\xBF", '', $line);
+    }
+    $lineno++;
+    $line = trim(strtr($line, array("\\\n" => "")));
+
+    if (!strncmp("#", $line, 1)) { // A comment
+      if ($context == "COMMENT") { // Already in comment context: add
+        $current["#"][] = substr($line, 1);
+      }
+      elseif (($context == "MSGSTR") || ($context == "MSGSTR_ARR")) { // End current entry, start a new one
+        _boinctranslate_locale_import_one_string($op, $current, $mode, $lang, $file, $group);
+        $current = array();
+        $current["#"][] = substr($line, 1);
+        $context = "COMMENT";
+      }
+      else { // Parse error
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for %lang contains an error: "msgstr" was expected but not found on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains an error: "msgstr" was expected but not found on line %line.', $file, $lineno);
+        return FALSE;
+      }
+    }
+    elseif (!strncmp("msgctxt", $line, 7)) {
+      if (($context == "MSGSTR") || ($context == "MSGSTR_ARR")) { // End current entry, start a new one
+        _boinctranslate_locale_import_one_string($op, $current, $mode, $lang, $file, $group);
+        $current = array();
+      }
+      elseif (($context == "MSGID") || ($context == "MSGCTXT")) { // Already in this context? Parse error
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for %lang contains an error: "msgctxt" is unexpected on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains an error: "msgid" is unexpected on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $line = trim(substr($line, 7));
+      $quoted = _locale_import_parse_quoted($line);
+      if ($quoted === FALSE) {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for language %lang contains a syntax error on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains a syntax error on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $current["msgctxt"] = $quoted;
+      $context = "MSGCTXT";
+    }
+    elseif (!strncmp("msgid_plural", $line, 12)) {
+      if ($context != "MSGID") { // Must be plural form for current entry
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for %lang contains an error: "msgid_plural" was expected but not found on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains an error: "msgid_plural" was expected but not found on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $line = trim(substr($line, 12));
+      $quoted = _locale_import_parse_quoted($line);
+      if ($quoted === FALSE) {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for language %lang contains a syntax error on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains a syntax error on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $current["msgid"] = $current["msgid"] . "\0" . $quoted;
+      $context = "MSGID_PLURAL";
+    }
+    elseif (!strncmp("msgid", $line, 5)) {
+      if (($context == "MSGSTR") || ($context == "MSGSTR_ARR")) { // End current entry, start a new one
+        _boinctranslate_locale_import_one_string($op, $current, $mode, $lang, $file, $group);
+        $current = array();
+      }
+      elseif ($context == "MSGID") { // Already in this context? Parse error
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for %lang contains an error: "msgid" is unexpected on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains an error: "msgid" is unexpected on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $line = trim(substr($line, 5));
+      $quoted = _locale_import_parse_quoted($line);
+      if ($quoted === FALSE) {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for language %lang contains a syntax error on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains a syntax error on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $current["msgid"] = $quoted;
+      $context = "MSGID";
+    }
+    elseif (!strncmp("msgstr[", $line, 7)) {
+      if (($context != "MSGID") && ($context != "MSGID_PLURAL") && ($context != "MSGSTR_ARR")) { // Must come after msgid, msgid_plural, or msgstr[]
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for %lang contains an error: "msgstr[]" is unexpected on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains an error: "msgstr[]" is unexpected on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      if (strpos($line, "]") === FALSE) {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for language %lang contains a syntax error on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains a syntax error on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $frombracket = strstr($line, "[");
+      $plural = substr($frombracket, 1, strpos($frombracket, "]") - 1);
+      $line = trim(strstr($line, " "));
+      $quoted = _locale_import_parse_quoted($line);
+      if ($quoted === FALSE) {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for language %lang contains a syntax error on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains a syntax error on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $current["msgstr"][$plural] = $quoted;
+      $context = "MSGSTR_ARR";
+    }
+    elseif (!strncmp("msgstr", $line, 6)) {
+      if ($context != "MSGID") { // Should come just after a msgid block
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for %lang contains an error: "msgstr" is unexpected on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains an error: "msgstr" is unexpected on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $line = trim(substr($line, 6));
+      $quoted = _locale_import_parse_quoted($line);
+      if ($quoted === FALSE) {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for language %lang contains a syntax error on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains a syntax error on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      $current["msgstr"] = $quoted;
+      $context = "MSGSTR";
+    }
+    elseif ($line != "") {
+      $quoted = _locale_import_parse_quoted($line);
+      if ($quoted === FALSE) {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for language %lang contains a syntax error on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains a syntax error on line %line.', $file, $lineno);
+        return FALSE;
+      }
+      if (($context == "MSGID") || ($context == "MSGID_PLURAL")) {
+        $current["msgid"] .= $quoted;
+      }
+      elseif ($context == "MSGSTR") {
+        $current["msgstr"] .= $quoted;
+      }
+      elseif ($context == "MSGSTR_ARR") {
+        $current["msgstr"][$plural] .= $quoted;
+      }
+      else {
+        watchdog(
+          'boinctranslate',
+          'The translation file %filename for %lang contains an error: there is an unexpected string on line %line.',
+          array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+          WATCHDOG_WARNING
+        );
+        _locale_import_message('The translation file %filename contains an error: there is an unexpected string on line %line.', $file, $lineno);
+        return FALSE;
+      }
+    }
+  }
+
+  // End of PO file, flush last entry
+  if (($context == "MSGSTR") || ($context == "MSGSTR_ARR")) {
+    _boinctranslate_locale_import_one_string($op, $current, $mode, $lang, $file, $group);
+  }
+  elseif ($context != "COMMENT") {
+    watchdog(
+      'boinctranslate',
+      'The translation file %filename for %lang ended unexpectedly at line %line.',
+      array('%filename' => $file->filename, '%lang' => $lang, '%line' => $lineno),
+      WATCHDOG_WARNING
+    );
+    _locale_import_message('The translation file %filename ended unexpectedly at line %line.', $file, $lineno);
+    return FALSE;
+  }
+
+}
+
+/**
+ *
+ */
+function _boinctranslate_locale_import_one_string($op, $value = NULL, $mode = NULL, $lang = NULL, $file = NULL, $group = 'default') {
+  
+  require_once(getcwd() . '/includes/locale.inc');
+  
+  static $report = array(
+    'additions' => 0,
+    'updates' => 0,
+    'deletes' => 0,
+    'skips' => 0,
+  );
+  static $headerdone = FALSE;
+  static $strings = array();
+
+  switch ($op) {
+    // Return stored strings
+    case 'mem-report':
+      return $strings;
+
+      // Store string in memory (only supports single strings)
+    case 'mem-store':
+      $strings[$value['msgid']] = $value['msgstr'];
+      return;
+
+      // Called at end of import to inform the user
+    case 'db-report':
+      return array(
+        $headerdone,
+        $report['additions'],
+        $report['updates'],
+        $report['deletes'],
+        $report['skips'],
+      );
+
+      // Store the string we got in the database.
+    case 'db-store':
+      // We got header information.
+      if ($value['msgid'] == '') {
+        $languages = language_list();
+        if (($mode != LOCALE_IMPORT_KEEP) || empty($languages[$lang]->plurals)) {
+          // Since we only need to parse the header if we ought to update the
+          // plural formula, only run this if we don't need to keep existing
+          // data untouched or if we don't have an existing plural formula.
+          $header = _locale_import_parse_header($value['msgstr']);
+
+          // Get and store the plural formula if available.
+          if (isset($header["Plural-Forms"]) && $p = _locale_import_parse_plural_forms($header["Plural-Forms"], $file->filename)) {
+            list($nplurals, $plural) = $p;
+            db_query("UPDATE {languages} SET plurals = %d, formula = '%s' WHERE language = '%s'", $nplurals, $plural, $lang);
+          }
+        }
+        $headerdone = TRUE;
+      }
+
+      else {
+        // Some real string to import.
+        $comments = _locale_import_shorten_comments(empty($value['#']) ? array() : $value['#']);
+
+        if (strpos($value['msgid'], "\0")) {
+          // This string has plural versions.
+          $english = explode("\0", $value['msgid'], 2);
+          $entries = array_keys($value['msgstr']);
+          for ($i = 3; $i <= count($entries); $i++) {
+            $english[] = $english[1];
+          }
+          $translation = array_map('_locale_import_append_plural', $value['msgstr'], $entries);
+          $english = array_map('_locale_import_append_plural', $english, $entries);
+          foreach ($translation as $key => $trans) {
+            if ($key == 0) {
+              $plid = 0;
+            }
+            $plid = _boinctranslate_locale_import_one_string_db($report, $lang, $english[$key], $trans, $group, $comments, $mode, $plid, $key);
+          }
+        }
+
+        else {
+          // A simple string to import.
+          $english = $value['msgid'];
+          $translation = $value['msgstr'];
+          _boinctranslate_locale_import_one_string_db($report, $lang, $english, $translation, $group, $comments, $mode);
+        }
+      }
+  } // end of db-store operation
+}
+
+/**
+ * Modify the _locale_import_one_string_db() function so that it does not add
+ * translation strings that do not exist on the site.
+ *
+ * Function will attempt t overwrite strings in textgroups other than
+ * 'boinc' or 'project', without using the location field as a search
+ * parameter. All found rows in locales_source are overwritten by the
+ * translations. 
+ *
+ * Textgroups 'boinc' and 'project' use the location string to
+ * uniquely identify rows in the locales_source database.
+ */
+function _boinctranslate_locale_import_one_string_db(&$report, $langcode, $source, $translation, $textgroup, $location, $mode, $plid = NULL, $plural = NULL) {
+
+  $ignoreoverwrite = FALSE;
+  $lid = 0;
+
+  // Use different DB query depending on the textgroup.
+  $uselocation = array("boinc", "project");
+  if (in_array($textgroup, $uselocation)) {
+    $resource = db_query("SELECT lid FROM {locales_source} WHERE location = '%s' AND source = '%s' AND textgroup = '%s'", $location, $source, $textgroup);
+  }
+  else {
+    $resource = db_query("SELECT lid FROM {locales_source} WHERE source = '%s' AND textgroup = '%s'", $source, $textgroup);
+
+    // Parse the location string for the string ignoreoverwrite, which
+    // ignores the LOCAL_IMPORT_OVERWRITE directive below. $parts[2]
+    // is hardcoded, it is the third field, separated by ':' in the
+    // location string.
+    $parts = explode(':', $location);
+    if (!empty($parts[2])) {
+      if (preg_match('/(ignoreoverwrite)/', $parts[2])) {
+        $ignoreoverwrite = TRUE;
+      }
+    }
+  }// if (in_array($textgroup, $uselocation))
+
+  if (!empty($translation)) {
+    // Skip this string unless it passes a check for dangerous code.
+    // Text groups other than default still can contain HTML tags
+    // (i.e. translatable blocks).
+    if ($textgroup == "default" && !locale_string_is_safe($translation)) {
+      $report['skips']++;
+      $lid = 0;
+    }
+    elseif ($resource) {
+      // We have this source string saved already. Loop over the db results from locales_source table.
+      while ($row = db_fetch_array($resource)) {
+
+        $lid = $row['lid'];
+        // Check of if one or more translations exist for this lid in locales_target table.
+        $exists = (bool) db_result(db_query("SELECT lid FROM {locales_target} WHERE lid = %d AND language = '%s'", $lid, $langcode));
+        if (!$exists) {
+          // No translation in this language, insert translation into locales_target table.
+          db_query("INSERT INTO {locales_target} (lid, language, translation, plid, plural) VALUES (%d, '%s', '%s', %d, %d)", $lid, $langcode, $translation, $plid, $plural);
+          $report['additions']++;
+        }
+        else if ( ($mode == LOCALE_IMPORT_OVERWRITE) and (!$ignoreoverwrite) ) {
+          // Translation exists, only overwrite if instructed.
+          db_query("UPDATE {locales_target} SET translation = '%s', plid = %d, plural = %d WHERE language = '%s' AND lid = %d", $translation, $plid, $plural, $langcode, $lid);
+          $report['updates']++;
+        }
+        else {
+          $report['skips']++;
+        }// end if !$exists
+
+      }// while
+    }
+  }
+  elseif ($mode == LOCALE_IMPORT_OVERWRITE AND $resource) {
+    // Loop over db results from locales_source table.
+    while ($row = db_fetch_array($resource)) {
+      $lid = $row['lid'];
+      $exists = (bool) db_result(db_query("SELECT lid FROM {locales_target} WHERE lid = %d AND language = '%s'", $lid, $langcode));
+      if ($exists) {
+        // Empty translation, remove existing if instructed.
+        db_query("DELETE FROM {locales_target} WHERE language = '%s' AND lid = %d AND plid = %d AND plural = %d", $langcode, $lid, $plid, $plural);
+        $report['deletes']++;
+      }// if $exists
+    }// while
+  }
+  else {
+    $report['skips']++;
+  }
+
+  return $lid;
+}
+
+
+
+/**
+ * Parse valid resources out of configuration
+ */
+function boinctranslate_parse_resources($resource_text) {
+  $resources = array();
+  $resource_array = explode(
+    "\n", $resource_text
+  );
+  foreach ($resource_array as $resource) {
+    $resource = trim($resource);
+    if ($resource AND $resource[0] != '#') {
+      $resources[] = $resource;
+    }
+  }
+  return $resources;
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Implementation of hooks for l10n_update
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+function boinctranslate_l10n_update_projects_alter(&$projects) {
+  foreach ($projects as &$proj) {
+    $proj['info']['l10n path'] = 'https://ftp-origin.drupal.org/files/translations/%core/%project/%project-%release.%language.po';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boinctranslate/includes/other-boinc-translation-strings.txt b/drupal/sites/default/boinc/modules/boinctranslate/includes/other-boinc-translation-strings.txt
new file mode 100644
index 0000000..3df754a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boinctranslate/includes/other-boinc-translation-strings.txt
@@ -0,0 +1,42 @@
+# Format: Each line should one one string and (optionally) one context detail.
+# Lines starting with '#' are ignored as comments.
+# STRING|CONTEXT
+#
+# Use the pipe '|' character as the delimiter to separate the two items. You
+# cannot use the '|' pipe character in your string. If the '|' delimiter is not
+# present, no context details will be passed. If additional '|' delimiters are
+# found, they and the subsequent text will be ignored.
+#
+# Context details are of the format textgroup:type:objectid:property.
+#
+# The textgroup determines the category of the string and the type is where
+# the string originates. You can further denote a specific object ID (e.g. node
+# ID), if appropriate, and then the final property item can be used if more
+# specificity is still required. Generally, a simple textgroup:type context is
+# sufficient.
+#
+Password|boinc:account-password
+Enter the password that accompanies your username.|boinc:login-page
+Request new password|boinc:login-page
+Mark all topics read|boinc:forum
+Mark all forums read|boinc:forum
+CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site administrator if this problem persists.|boinc:account-profile-edit
+The answer you entered for the CAPTCHA was not correct.|boinc:account-profile-edit
+Access denied. You must login to view this page.|boinc:general-access-error
+You are not authorized to access this page.|boinc:general-access-error
+Disable rich-text|boinc:forum
+Enable rich-text|boinc:forum
+subscribe|boinc:forum-thread-subscribe
+unsubscribe|boinc:forum-thread-subscribe
+Report|boinc:forum
+Cancel report|boinc:forum
+Reset flags|boinc:forum
+Ignore user|boinc:forum
+All tasks|boinc:workunit-and-host-lists
+Time reported or deadline|boinc:workunit-and-host-lists
+Run time (sec)|boinc:task-details
+CPU time (sec)|boinc:task-details
+Canonical result|boinc:workunit-details
+Minimum quorum|boinc:workunit-details
+Initial replication|boinc:workunit-details
+Max # of error/total/success tasks|boinc:workunit-details
diff --git a/drupal/sites/default/boinc/modules/boincuser/boincuser.admin.inc b/drupal/sites/default/boinc/modules/boincuser/boincuser.admin.inc
new file mode 100644
index 0000000..f2c01b6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/boincuser.admin.inc
@@ -0,0 +1,349 @@
+<?php
+// $Id$
+
+/**
+* @file
+* Administration page callbacks for the boincuser module.
+*/
+
+/**
+* Form builder. Configure annotations.
+*
+* @ingroup forms
+* @see system_settings_form().
+*//*
+function boincuser_admin_settings() {
+  // Get an array of node types with internal names as keys and
+  // "friendly names" as values. E.g.,
+  // array('page' => 'Page', 'story' => 'Story')
+  $options = node_get_types('names');
+  $form['boincuser_integration'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Integrate BOINC user data with Drupal user data'),
+    '#options' => array('boincuser_integration' => 'Enabled'),
+    '#default_value' => variable_get('boincuser_integration', array()),
+    '#description' => t('A placeholder for BOINC user settings.'),
+  );
+  return system_settings_form($form);
+}*/
+
+/**
+  * The BOINC environment form allows paths to be set to connect Drupal to an
+  * existing BOINC web interface.
+  */
+function boincuser_admin_environment(&$form_state) {
+  global $base_url;
+  $form = array();
+  $default = array(
+    'boinc_root_dir' => variable_get('boinc_root_dir', ''),
+    'boinc_config_xml_dir' => variable_get('boinc_config_xml_dir', ''),
+    'boinc_html_inc_dir' => variable_get('boinc_html_inc_dir', ''),
+    'boinc_project_config_dir' => variable_get('boinc_project_config_dir', ''),
+    'boinc_user_image_dir' => variable_get('boinc_user_image_dir', ''),
+    'boinc_host_sched_logs_dir' => variable_get('boinc_host_sched_logs_dir', ''),
+    'boinc_server_status_url' => variable_get('boinc_server_status_url', ''),
+    'boinc_app_list_url' => variable_get('boinc_app_list_url', ''),
+    'boinc_debug_mode' => variable_get('boinc_debug_mode', 0),
+  );
+  //drupal_set_message(print_r($default, true));
+  //drupal_set_message(print_r($form_state, true));
+  // Show overrides if the root dir is set and others have not been detected
+  $show_overrides = FALSE;
+  if ($default['boinc_root_dir']) {
+    foreach ($default as $key => $dir) {
+      switch ($key) {
+      case 'boinc_config_xml_dir':
+      case 'boinc_html_inc_dir':
+      case 'boinc_project_config_dir':
+      case 'boinc_user_image_dir':
+        // If any of these values are not set, show the overrides section
+        if (!$dir) {
+          $default[$key] = $form_state['values'][$key];
+          $show_overrides = TRUE;
+          break;
+        }
+        break;
+      default:
+      }
+      if ($show_overrides) {
+        break;
+      }
+    }
+  }
+  // Define the form
+  $form['boinc_root_dir'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC project root directory'),
+    '#default_value' => $default['boinc_root_dir'], 
+    '#description' => t('The filesystem path to the BOINC project root. This
+      directory should contain config.xml as well as the html subdirectory,
+      which itself contains inc/, project/, and user_profile/.'),
+  );
+  $form['overrides'] = array(
+    '#title' => t('Overrides'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => TRUE,
+    '#collapsed' => !$show_overrides,
+    '#attributes' => array('class' => 'advanced-settings')
+  );
+  $form['overrides']['boinc_config_xml_dir'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC config.xml directory'),
+    '#default_value' => $default['boinc_config_xml_dir'],
+    '#description' => t('The filesystem path that contains config.xml'),
+  );
+  $form['overrides']['boinc_html_inc_dir'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC web includes directory'),
+    '#default_value' => $default['boinc_html_inc_dir'],
+    '#description' => t('The filesystem path to the html/inc/ directory that
+      contains util.inc'),
+  );
+  $form['overrides']['boinc_project_config_dir'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC project config directory'),
+    '#default_value' => $default['boinc_project_config_dir'],
+    '#description' => t('The filesystem path to the project/ directory that
+      contains project.inc'),
+  );
+  $form['overrides']['boinc_user_image_dir'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC user profile image directory'),
+    '#default_value' => $default['boinc_user_image_dir'],
+    '#description' => t('The filesystem directory that contains user images'),
+  );
+  $form['boinc_server_status_url'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC server status page URL (optional)'),
+    '#default_value' => $default['boinc_server_status_url'],
+    '#description' => t('An absolute URL or path relative to the site base to the server status page (e.g. %full_url or just %relative_url).',
+      array(
+        '%full_url' => $base_url . '/server_status.php',
+        '%relative_url' => 'server_status.php',
+      )
+    ),
+  );
+  $form['boinc_app_list_url'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC applications page URL (optional)'),
+    '#default_value' => $default['boinc_app_list_url'],
+    '#description' => t('An absolute URL or path relative to the site base to the applications page (e.g. %full_url or just %relative_url).',
+      array(
+        '%full_url' => $base_url . '/apps.php',
+        '%relative_url' => 'apps.php',
+      )
+    ),
+  );
+  $form['boinc_host_sched_logs_dir'] = array(
+    '#type' => 'textfield',
+    '#title' => t('BOINC host scheduler log directory (optional)'),
+    '#default_value' => $default['boinc_host_sched_logs_dir'],
+    '#description' => t('The filesystem directory that contains host scheduler logs'),
+  );
+  $form['boinc_debug_mode'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show debug messages in system log'),
+    '#default_value' => $default['boinc_debug_mode']
+  );
+  return system_settings_form($form);
+}
+
+/**
+  * Validate the BOINC environment form.
+  */
+function boincuser_admin_environment_validate($form, &$form_state) {
+  $values = $form_state['values'];
+  if (!$values['boinc_root_dir']) {
+    form_set_error('boinc_root_dir', t('BOINC project root directory must be
+      defined!'));
+  }
+  elseif (!is_dir($values['boinc_root_dir'])) {
+    form_set_error('boinc_root_dir', t('BOINC project root not found at %directory',
+      array('%directory' => $values['boinc_root_dir'])
+    ));
+  }
+  else {
+    // By default, try to automatically set specific directories from the root
+    if (!$values['boinc_config_xml_dir']) {
+      $values['boinc_config_xml_dir'] = $values['boinc_root_dir'];
+      form_set_value($form['overrides']['boinc_config_xml_dir'], $values['boinc_config_xml_dir'], $form_state);
+    }
+    if (!$values['boinc_html_inc_dir']) {
+      $values['boinc_html_inc_dir'] = "{$values['boinc_root_dir']}/html/inc";
+      form_set_value($form['overrides']['boinc_html_inc_dir'], $values['boinc_html_inc_dir'], $form_state);
+    }
+    if (!$values['boinc_project_config_dir']) {
+      $values['boinc_project_config_dir'] = "{$values['boinc_root_dir']}/html/project";
+      form_set_value($form['overrides']['boinc_project_config_dir'], $values['boinc_project_config_dir'], $form_state);
+    }
+    if (!$values['boinc_user_image_dir']) {
+      $values['boinc_user_image_dir'] = "{$values['boinc_root_dir']}/html/user_profile/images";
+      form_set_value($form['overrides']['boinc_user_image_dir'], $values['boinc_user_image_dir'], $form_state);
+    }
+    // Validate that required BOINC content is found
+    if (!is_readable("{$values['boinc_config_xml_dir']}/config.xml")) {
+      form_set_error('boinc_config_xml_dir', t('@file not found in %directory',
+        array(
+          '@file' => 'config.xml',
+          '%directory' => "{$values['boinc_config_xml_dir']}/"
+        )
+      ));
+    }
+    if (!is_readable("{$values['boinc_html_inc_dir']}/util.inc")) {
+      form_set_error('boinc_html_inc_dir', t('@file not found in %directory',
+        array(
+          '@file' => 'util.inc',
+          '%directory' => "{$values['boinc_html_inc_dir']}/"
+        )
+      ));
+    }
+    if (!is_readable("{$values['boinc_project_config_dir']}/project.inc")) {
+      form_set_error('boinc_project_config_dir', t('@file not found in %directory',
+        array(
+          '@file' => 'project.inc',
+          '%directory' => "{$values['boinc_project_config_dir']}/"
+        )
+      ));
+    }
+    if (!is_dir($values['boinc_user_image_dir'])) {
+      form_set_error('boinc_user_image_dir', t('Profile image directory not found
+        at %directory', array('%directory' => $values['boinc_user_image_dir'])
+      ));
+    }
+    if ($values['boinc_host_sched_logs_dir']
+        AND !is_dir($values['boinc_host_sched_logs_dir'])
+      ) {
+      form_set_error('boinc_host_sched_logs_dir', t('Host scheduler log
+        directory not found at %directory',
+        array('%directory' => $values['boinc_host_sched_logs_dir'])
+      ));
+    }
+  }
+}
+
+/**
+  * Handle post-validation submission of BOINC environment form.
+  */
+function boincuser_admin_environment_submit($form, &$form_state) {
+  unset($_SESSION['boinc_env']);
+  drupal_set_message(t('BOINC environment settings have been updated.'));
+}
+
+/**
+  * The BOINC scheduler form provides options for how scheduler tags are
+  * inserted into the front page
+  */
+function boincuser_admin_scheduler(&$form_state) {
+  $form = array();
+  $config_cgi_url = '';
+  if ($config_xml_dir = variable_get('boinc_config_xml_dir', '')) {
+    // Get the cgi_url option from the config file as the default scheduler URL
+    $xml = new DOMDocument();
+    if ($xml->load("{$config_xml_dir}/config.xml")) {
+      $config = xml_to_array($xml);
+      if (isset($config['boinc']['config']['cgi_url']['@value'])) {
+        $config_cgi_url = rtrim(trim($config['boinc']['config']['cgi_url']['@value']), '/');
+        $config_cgi_url .= '/cgi';
+      }
+    }
+  }
+  $default = array(
+    'boinc_scheduler_urls' => variable_get('boinc_scheduler_urls', $config_cgi_url),
+    'boinc_scheduler_tag_format_old' => variable_get('boinc_scheduler_tag_format_old', 1),
+    'boinc_scheduler_tag_format_new' => variable_get('boinc_scheduler_tag_format_new', 1)
+  );
+  
+  // Define the form
+  $form['boinc_scheduler_urls'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Scheduling server URLs'),
+    '#default_value' => $default['boinc_scheduler_urls'],
+    '#cols' => 60,
+    '#rows' => 5,
+    '#description' => t('If there are multiple URLs, please enter one per line.'),
+  );
+  $form['boinc_scheduler_tag_format_old'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Old format (@scheduler tag)', array('@scheduler' => '<scheduler>')),
+    '#default_value' => $default['boinc_scheduler_tag_format_old']
+  );
+  $form['boinc_scheduler_tag_format_new'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('New format (@link tag)', array('@link' => '<link>')),
+    '#default_value' => $default['boinc_scheduler_tag_format_new']
+  );
+  
+  return system_settings_form($form);
+}
+
+/**
+  * Validate the BOINC scheduler form.
+  */
+function boincuser_admin_scheduler_validate($form, &$form_state) {
+  $values = $form_state['values'];
+  if (!$values['boinc_scheduler_urls']) {
+    form_set_error('boinc_scheduler_urls', t('At least one scheduling server
+      URL must be specified.'));
+  }
+  else {
+    $urls = explode("\r\n", $values['boinc_scheduler_urls']);
+    foreach ($urls as $key => $url) {
+      if (!$url) {
+        unset($urls[$key]);
+        continue;
+      }
+      if (!filter_var($url, FILTER_VALIDATE_URL)) {
+        form_set_error('boinc_scheduler_urls', t('@url is not a valid URL
+          format.', array('@url' => $url)));
+        break;
+      }
+    }
+    $form_state['values']['boinc_scheduler_urls'] = implode("\r\n", $urls);
+  }
+}
+
+/**
+  * Handle post-validation submission of BOINC scheduler form.
+  */
+function boincuser_admin_scheduler_submit($form, &$form_state) {
+  drupal_set_message(t('BOINC scheduling server settings have been updated.'));
+}
+
+
+/**
+  * Other BOINC options that don't fit elsewhere
+  */
+function boincuser_admin_other(&$form_state) {
+  $form = array();
+
+  //form defaults
+  $default = array(
+      'boinc_other_frontpage' => variable_get('boinc_other_frontpage', ''),
+  );
+  
+  // Define the form
+  $form['boinc_other_frontpage'] = array (
+    '#type' => 'textarea',
+    '#title' => bts('Message for site\'s Home Page', array(), NULL, 'boinc:admin-boinc-other-options'),
+    '#default_value' => $default['boinc_other_frontpage'],
+    '#cols' => 60,
+    '#rows' => 8,
+    '#description' => bts('Text to be displayed on the site\'s Home landing page.', array(), NULL, 'boinc:admin-boinc-other-options'),
+  );
+    
+  return system_settings_form($form);
+}
+
+/**
+  * Validate BOINC other form
+  */
+function boincuser_admin_other_validate($form, &$form_state) {
+}
+
+/**
+  * Submit BOINC other form
+  */
+function boincuser_admin_other_submit($form, &$form_state) {
+  drupal_set_message( bts("Status: BOINC other settings have been updated", array(), NULL, 'boinc:admin-boinc-other-options') );
+}
diff --git a/drupal/sites/default/boinc/modules/boincuser/boincuser.info b/drupal/sites/default/boinc/modules/boincuser/boincuser.info
new file mode 100644
index 0000000..88330e6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/boincuser.info
@@ -0,0 +1,6 @@
+; $Id$
+name = BOINC user
+description = Enable BOINC user functionality.
+core = 6.x
+dependencies[] = boinccore
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boincuser/boincuser.install b/drupal/sites/default/boinc/modules/boincuser/boincuser.install
new file mode 100644
index 0000000..a9d41e2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/boincuser.install
@@ -0,0 +1,117 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_install()
+ */
+function boincuser_install() {
+  // Use schema API to create database table
+  drupal_install_schema('boincuser');
+  // Add aliases for account pages 
+  if (module_exists('path')) {
+    path_set_alias('dashboard', 'account');
+    path_set_alias('dashboard', 'account/dashboard');
+    path_set_alias('user/me/edit', 'account/info/edit');
+    path_set_alias('user/me/edit/profile', 'account/info/edit/profile');
+  }
+}
+
+/**
+* Implementation of hook_uninstall().
+*/
+function boincuser_uninstall() {
+  // Use schema API to delete database table.
+  drupal_uninstall_schema('boincuser');
+  // Delete our module's variable from the variables table.
+  variable_del('boincuser_integration');
+  // Remove relevant aliases
+  if (module_exists('path')) {
+    path_set_alias(NULL, 'account');
+    path_set_alias(NULL, 'account/dashboard');
+    path_set_alias(NULL, 'account/info/edit');
+    path_set_alias(NULL, 'account/info/edit/profile');
+  }
+}
+
+/**
+* Implementation of hook_schema().
+*/
+function boincuser_schema() {
+  $schema['boincuser'] = array(
+    'description' => t('Cross references user accounts in Drupal with BOINC user accounts.'),
+    'fields' => array(
+      'uid' => array(               
+        'description' => t('The {user}.uid of the Drupal user.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'boinc_id' => array(
+        'description' => t('The uid of the user in the BOINC database.'),
+        'type' => 'int',      
+        'unsigned' => TRUE,
+        'not null' => TRUE,       
+        'default' => 0,
+      ),
+      'penalty_expiration' => array(
+        'description' => t('A timestamp at which point any penalty period will
+          expire (i.e. restrictions on posting or community participation)'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'uotd_time' => array(
+        'description' => t('A timestamp of the last time this user was deemed
+          user of the day'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+    ),
+    'primary key' => array(
+      'uid', 'boinc_id'
+    ),
+    'unique keys' => array(
+      'uid' => array('uid'),
+      'boinc_id' => array('boinc_id')
+    )
+  );
+  return $schema;
+}
+
+/**
+ * Add penalty_expiration field to boincuser table
+ */
+function boincuser_update_6100() {
+  $result = array();
+  $spec = array(
+    'description' => 'A timestamp at which point any penalty period will
+          expire (i.e. restrictions on posting or community participation)',
+    'type' => 'int',
+    'unsigned' => TRUE,
+    'not null' => TRUE,
+    'default' => 0,
+  );
+  db_add_field($result, 'boincuser', 'penalty_expiration', $spec);
+  return $result;
+}
+
+/**
+ * Add uotd_time field to boincuser table
+ */
+function boincuser_update_6101() {
+  $result = array();
+  $spec = array(
+    'description' => 'A timestamp of the last time this user was deemed
+          user of the day',
+    'type' => 'int',
+    'unsigned' => TRUE,
+    'not null' => TRUE,
+    'default' => 0,
+  );
+  db_add_field($result, 'boincuser', 'uotd_time', $spec);
+  return $result;
+}
diff --git a/drupal/sites/default/boinc/modules/boincuser/boincuser.module b/drupal/sites/default/boinc/modules/boincuser/boincuser.module
new file mode 100644
index 0000000..4c02d46
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/boincuser.module
@@ -0,0 +1,1858 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Enables BOINC user functionality.
+ *
+ * Integrates user data and features of the existing
+ * BOINC platorm with the Drupal concept of a user.
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+require_once('includes/boincuser.forms.inc');
+require_once('includes/boincuser.helpers.inc');
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+ * Implementation of hook_menu(); determine the actions that correspond
+ * with defined URL paths
+ */
+function boincuser_menu() {
+  $items['account/posts'] = array(
+    'title' => 'Recent posts',
+    'description' => '',
+    'page callback' => 'boincuser_goto_recent_posts',
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_CALLBACK,
+  );
+  $items['account/profile'] = array(
+    'title' => '',
+    'description' => '',
+    'page callback' => 'boincuser_view_profile',
+    'access arguments' => array('access content'),
+    'type' => MENU_NORMAL_ITEM
+  );
+  $items['account/profile/view'] = array(
+    'title' => 'View',
+    'description' => 'Show a user profile',
+    'page callback' => 'boincuser_view_profile',
+    'access arguments' => array('access content'),
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => 0
+  );
+  $items['account/profile/edit'] = array(
+    'title' => 'Edit',
+    'description' => 'Edit a user profile',
+    'page callback' => 'boincuser_edit_profile',
+    'access arguments' => array('access content'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 5
+  );
+  $items['account/team'] = array(
+    'title' => 'User team',
+    'description' => '',
+    'page callback' => 'boincuser_goto_team',
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_CALLBACK,
+  );
+  $items['moderate/profile/%user/approve'] = array(
+    'title' => 'Profile approval',
+    'description' => 'Approve profile content',
+    'page callback' => 'boincuser_moderate_profile_approve',
+    'page arguments' => array(2),
+    'access arguments' => array('edit any profile content'),
+    'type' => MENU_CALLBACK,
+    'weight' => 5
+  );
+  $items['moderate/profile/%user/edit'] = array(
+    'title' => 'Profile editor',
+    'description' => 'Edit a user profile',
+    'page callback' => 'boincuser_edit_profile',
+    'page arguments' => array(2),
+    'access arguments' => array('edit any profile content'),
+    'type' => MENU_CALLBACK,
+    'weight' => 5
+  );
+  $items['moderate/profile/%/reject'] = array(
+    'title' => bts('Reject profile', array(), NULL, 'boinc:moderate-user'),
+    'description' => 'Reject profile content',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincuser_moderate_profile_reject_form', 2),
+    'access arguments' => array('edit any profile content'),
+    'type' => MENU_CALLBACK,
+    'weight' => 5
+  );
+  $items['moderate/user/%/ban'] = array(
+    'title' => bts('Ban user', array(), NULL, 'boinc:moderate-ban-user'),
+    'description' => 'Ban a user from using community features',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincuser_moderate_user_ban_form', 2),
+    'access callback' => 'boincuser_moderate_community_access',
+    'type' => MENU_CALLBACK,
+  );
+  $items['join'] = array(
+    'title' => '',
+    'description' => '',
+    'page callback' => 'join_page',
+    'access arguments' => array('access content'),
+    'type' => MENU_NORMAL_ITEM
+  );
+  $items['join/new'] = array(
+    'title' => bts("I'm new"),
+    'page callback' => 'join_page',
+    'page arguments' => array(1),
+    'access arguments' => array('access content'),
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => 0
+  );
+  $items['join/boinc'] = array(
+    'title' => bts("I'm a BOINC user"),
+    'page callback' => 'join_page',
+    'page arguments' => array(1),
+    'access arguments' => array('access content'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 5
+  );
+  $items['user/login/auth'] = array(
+    'title' => bts('Authenticator login', array(), NULL, 'boinc:authenticator-login-page'),
+    'description' => 'Log in using a user authenticator',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincuser_authloginform'),
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['user_control'] = array(
+    'page callback' => 'boincuser_control',
+    'access arguments' => array('access user profiles'),
+    'type' => MENU_CALLBACK
+  );
+  $items['admin/boinc'] = array(
+    'title' => 'BOINC configuration',
+    'position' => 'right',
+    'weight' => -8,
+    'page callback' => 'system_admin_menu_block_page',
+    'access arguments' => array('administer site configuration'),
+    'file' => 'system.admin.inc',
+    'file path' => drupal_get_path('module', 'system'),
+  );
+  $items['admin/boinc/environment'] = array(
+    'title' => 'Environment: General',
+    'description' => 'Set paths to BOINC functions and any other necessary
+      variables that establish a BOINC environment.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincuser_admin_environment'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boincuser.admin.inc'
+  );
+  $items['admin/boinc/scheduler'] = array(
+    'title' => 'Environment: Scheduling server URLs',
+    'description' => 'Set BOINC scheduler options.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincuser_admin_scheduler'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boincuser.admin.inc'
+  );
+  $items['admin/boinc/other'] = array(
+    'title' => 'Other Options',
+    'description' => 'Set other BOINC options.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincuser_admin_other'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boincuser.admin.inc'
+  );
+  
+  $items['create_account.php'] = array(
+    'title' => 'Create Account RPC',
+    'description' => 'RPC for creating user accounts.',
+    'page callback' => 'boincuser_create_account',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK
+  );
+  return $items;
+}
+
+/**
+ *
+ */
+function boincuser_init() {
+  // Skip this check for charts, which are loaded separately
+  // (may get duplicate or unexpected messages otherwise)
+  if (substr($_GET['q'], 0, 7) == 'charts/') {
+    return;
+  }
+
+  // If admin user, do some basic site functionality checks
+  if (user_access('administer site configuration')) {
+    // Ensure we have a configured BOINC environment
+    boinc_get_path();
+    boinc_get_scheduler_tags();
+  }
+  
+  // Check credits for the verified contributor role
+  boincuser_check_credit_requirements();
+  
+  if (module_exists('boincteam')) {
+    // Display any persistent team messages
+    boincteam_show_messages();
+  }
+}
+
+/**
+ * Implementation of hook_user(); add custom actions to standard
+ * Drupal user operations
+ */
+function boincuser_user($op, &$edit, &$account, $category = NULL) {
+  // Handle BOINC integration for users with UID > 1 (skip anonymous and admin)
+  if ($account->uid > 1) {
+    switch($op) {
+    case 'load':
+      // User loading; insert BOINC data into the user object
+      $drupal_user = db_fetch_object(db_query("
+        SELECT boinc_id, penalty_expiration
+        FROM {boincuser} WHERE uid = %d",
+        $account->uid
+      ));
+      $account->boincuser_id = $drupal_user->boinc_id;
+      $account->boincuser_penalty_expiration = $drupal_user->penalty_expiration;
+      db_set_active('boinc');
+      $boinc_user = db_fetch_object(db_query("
+        SELECT
+          name,
+          authenticator,
+          passwd_hash,
+          total_credit, 
+          expavg_credit,
+          expavg_time,
+          cross_project_id,
+          teamid,
+          venue
+        FROM {user}
+        WHERE id = %d",
+        $account->boincuser_id
+      ));
+      $account->boincuser_name = $boinc_user->name;
+      $account->boincuser_account_key = $boinc_user->authenticator;
+      $account->boincuser_weak_auth = md5($boinc_user->authenticator . $boinc_user->passwd_hash);
+      $account->boincuser_total_credit = round($boinc_user->total_credit);
+      $account->boincuser_expavg_credit = round($boinc_user->expavg_credit);
+      $account->boincuser_expavg_time = round($boinc_user->expavg_time);
+      $account->boincuser_cpid = md5($boinc_user->cross_project_id . $account->mail);
+      $account->boincuser_default_pref_set = $boinc_user->venue;
+      $account->boincteam_id = $boinc_user->teamid;
+      db_set_active('default');
+      // Set Drupal team ID
+      $account->team = NULL;
+      if ($account->boincteam_id) {
+        $account->team = db_result(db_query("
+          SELECT nid FROM {boincteam} WHERE team_id = %d",
+          $account->boincteam_id
+        ));
+      }
+      // Set post count
+      $account->post_count = db_result(db_query("
+        SELECT COUNT(*) +
+        (
+          SELECT COUNT(*) FROM {node}
+          WHERE uid = '%d'
+          AND type IN('page','story','forum','news')
+          AND status = 1
+        ) AS total_posts
+        FROM {comments}
+        INNER JOIN node ON comments.nid = node.nid
+        WHERE comments.uid = '%d'
+        AND node.status = 1",
+        $account->uid, $account->uid
+      ));
+      break;
+      
+    case 'view':
+      // SAMPLE: Add BOINC data to the user profile
+      /*$account->content['summary']['boinc_id'] = array(
+        '#type' => 'user_profile_item',
+        '#title' => bts('BIONC ID'),
+        '#value' => $account->boincuser_id,
+        '#attributes' => array('class' => 'boinc-data'),
+        '#weight' => 10
+      );
+      $account->content['summary']['total_credit'] = array(
+        '#type' => 'user_profile_item',
+        '#title' => bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits'),
+        '#value' => $account->boincuser_total_credit,
+        '#attributes' => array('class' => 'boinc-data'),
+        '#weight' => 10
+      );*/
+      break;
+      
+    case 'validate':
+      if (isset($edit['validation_source'])) {
+        switch ($edit['validation_source']) {
+        case 'user_register':
+          // Information being checked before adding a user
+          if (!boincuser_register_validate($edit)) {
+            // BOINC user validation failed for registration; set an error accordingly
+            form_set_error('mail', bts('An account already exists for @email. Log in or request password assistance to access your @project account.', array('@email' => $edit['mail'], '@project' => PROJECT), NULL, 'boinc:add-new-user'));
+          }
+          else {
+            // Save profile information for use during Insert
+            $_SESSION['profileInfo'] = array(
+              'country' => $edit['field_country'][0]['value'],
+              'zip' => $edit['field_zip'][0]['value'],                  
+              'url' => $edit['field_url'][0]['value'],
+              'background' => $edit['field_background'][0]['value'],
+              'opinions' => $edit['field_opinions'][0]['value']
+            );
+            // With BOINC validation passed, make sure name is unique
+            $edit['name'] = find_unique_name($edit['boincuser_name']);
+          }
+          break;
+          
+        case 'user_account':
+          // Validate data before updating user account info
+          boincuser_account_validate($edit, $account);
+          break;
+        
+        default:
+          
+        }
+        // We don't want to save validation source, so remove it
+        $edit['validation_source'] = null;
+      }
+      break;
+      
+    case 'insert':
+      // New user being added to the system
+      $profile_info = $_SESSION['profileInfo'];
+      $imported = $_SESSION['importedUser'];
+      unset($_SESSION['profileInfo']);
+      unset($_SESSION['importedUser']);
+      
+      watchdog(
+        'boincuser',
+        'Creating user account for %email_addr',
+        array('%email_addr' => $edit['mail']),
+        WATCHDOG_NOTICE
+      );
+      
+      // NOTE: Registrations are normally handled via the create_account RPC,
+      // so the following will not run (kept in case form registration is used)
+      
+      // If from the registration form, create a BOINC user and relationships
+      
+      if ($profile_info and !$imported) {
+        // Create a BOINC account unless importing from BOINC
+        $user_params = array(
+          'email_addr' => $edit['mail'],
+          'name' => $edit['boincuser_name'],
+          'passwd_hash' => md5($edit['pass'].$edit['mail']),
+          'country' => $profile_info['country'],
+          'postal_code' => $profile_info['zip']
+        );
+        $boinc_user = boincuser_register_make_user($user_params);
+        if (!$boinc_user) {
+          // Account exists with this email addr
+          form_set_error('email', bts('Error creating BOINC account.', array(), NULL, 'boinc:add-new-user'));
+          return;
+        }
+        // Add user to community role by default (not banned)
+        $unrestricted_role = array_search('community member', user_roles(true)); 
+        $edit['roles'] = array(
+          $unrestricted_role => ''
+        );
+        // Set profile data in BOINC db
+        db_set_active('boinc');
+        // TODO: add language, image support; error handling
+        $reference = db_query("INSERT INTO {profile} SET userid='%d', response1='%s', response2='%s', verification=0", $boinc_user->id, $profile_info['background'], $profile_info['opinions']);
+        if (!$reference) {
+          drupal_set_message(t('Error creating BOINC profile.'), 'error');
+        }
+        $reference = db_query("UPDATE {user} SET url='%s' WHERE id='%d'", $profile_info['url'], $boinc_user->id);
+        if (!$reference) {
+          drupal_set_message(t('Error updating BOINC account.'), 'error');
+        }
+        db_set_active('default');
+        // Cross reference Drupal account with BOINC
+        $reference = db_query("INSERT INTO {boincuser} SET uid='%d', boinc_id='%d'", $account->uid, $boinc_user->id);
+        if (!$reference) {
+          drupal_set_message(t('Error connecting BOINC account.'), 'error');
+          return;
+        }
+        // Don't save custom fields to the Drupal user object
+        $edit['boincuser_name'] = null;
+      }
+      break;
+      
+    case 'update':
+      if (isset($edit['update_source'])) {
+        require_boinc('boinc_db');
+        $boinc_user = BoincUser::lookup_id($account->boincuser_id);
+        switch ($edit['update_source']) {
+        case 'user_account':
+          // Ensure that BOINC data is altered
+          $boinc_user = BoincUser::lookup_id($account->boincuser_id);
+          $changing_email = ($edit['mail'] AND $edit['mail'] != $boinc_user->email_addr) ? true : false;
+          $changing_pass = ($edit['pass']) ? true : false;
+          if ($changing_email OR $changing_pass) {
+            // Set password hash appropriately
+            $passwd = ($edit['pass']) ? $edit['pass'] : $edit['current_pass'];
+            $passwd_hash = md5($passwd.$edit['mail']);
+            $email_addr = $edit['mail'];
+            // Update user account information
+            $result = $boinc_user->update(
+                "email_addr='{$email_addr}', passwd_hash='{$passwd_hash}'"
+            );
+          }
+          break;
+        case 'user_profile':
+          if ($edit['boincuser_name'] != $boinc_user->name) {
+            $boincuser_name = $edit['boincuser_name'];
+            $result = $boinc_user->update(
+                "name='{$boincuser_name}'"
+            );
+          }
+          break;
+        default:
+        }
+        // We don't want to save update source or duplicate custom fields, so
+        // remove them before continuing to core Drupal routines
+        $edit['update_source'] = null;
+        $edit['boincuser_name'] = null;
+      }
+      break;
+      
+    default:
+      
+    }
+  }
+}
+
+/**
+ * Implementation of hook_nodeapi(); add custom actions to node operations
+ * Obsolete in Drupal 7...
+ */
+function boincuser_nodeapi(&$node, $op, $a3 = null, $a4 = null) {
+  // In Drupal 7, these operation cases will all exist as their own hooks,
+  // so let's approximate that here so that this function can simply be removed
+  // upon migration to 7
+  switch($op) {
+  case 'update':
+    boincuser_node_update($node);
+  }
+}
+
+/**
+ * Implementation of hook_node_update(); add custom actions when a node
+ * is updated (forward compatible to Drupal 7)
+ */
+function boincuser_node_update($node) {
+  switch($node->type) {
+  case 'profile':
+    // Update the BOINC database directly
+    $account = user_load($node->uid);
+    // Save user account data
+    $country = $node->field_country[0]['value'];
+    $postal_code = $node->field_zip[0]['value'];
+    $url = $node->field_url[0]['value'];
+    db_set_active('boinc');
+    $account_updated = db_query("
+      UPDATE user
+      SET country = '%s', postal_code = '%s', url = '%s', has_profile = 1
+      WHERE id = %d",
+      $country, $postal_code, $url, $account->boincuser_id
+    );
+    db_set_active('default');
+    if (!$account_updated) {
+      drupal_set_message(t('Error saving BOINC account info.'), 'error');
+    }
+    // Save profile data
+    $response1 = $node->field_background[0]['value'];
+    $response2 = $node->field_opinions[0]['value'];
+    db_set_active('boinc');
+    $profile_updated = db_query("
+      INSERT INTO profile
+      SET userid = %d, response1 = '%s', response2 = '%s'
+      ON DUPLICATE KEY UPDATE
+        response1 = '%s', response2 = '%s'",
+      $account->boincuser_id, $response1, $response2,
+      $response1, $response2
+    );
+    db_set_active('default');
+    if (!$profile_updated) {
+      drupal_set_message(t('Error saving BOINC profile.'), 'error');
+    }
+    break;
+    
+  default:
+    
+  }
+}
+
+/**
+* Implementation of hook_views_api()
+*/
+function boincuser_views_api() {
+  return array(
+    'api' => 2.0,
+    'path' => drupal_get_path('module', 'boincuser')
+  );
+}
+
+/**
+* Implementation of hook_form_alter()
+*/
+function boincuser_form_alter(&$form, $form_state, $form_id) {
+  global $user;
+  switch ($form_id) {
+  case 'flag_confirm':
+    // The URL seems to be the only way to put any kind of context to this
+    // request!
+    $action = arg(2);
+    $flag_type = arg(3);
+    $cancel_dest = isset($_REQUEST['destination']) ? $_REQUEST['destination'] : '';
+    
+    // Wrap action buttons for styling consistency
+    $form['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    
+    switch ($flag_type) {
+    case 'friend':
+      $friend_id = $form['content_id']['#value'];
+      $flag = flag_get_flag('friend');
+      $friend_status = flag_friend_determine_friend_status($flag, $friend_id, $user->uid);
+      
+      // General friend form overrides
+      $form['flag_friend_submit']['#prefix'] = '<li class="first tab">';
+      $form['flag_friend_submit']['#value'] = bts('Send request', array(), NULL, 'boinc:friends-page');
+      $form['flag_friend_submit']['#type'] = 'submit';
+      $form['flag_friend_submit']['#suffix'] = '</li>';
+      $form['flag_friend_submit']['#weight'] = 1002;
+      
+      switch ($friend_status) {
+      case FLAG_FRIEND_BOTH:
+      case FLAG_FRIEND_FLAGGED:
+        unset($form['actions']);
+        $form['flag_friend_submit']['#value'] = bts('Remove friend', array(), NULL, 'boinc:friends-remove');
+        // Add in our hack handler to fix the flag_friend module
+        $final_handler = array_pop($form['#submit']);
+        $form['#submit'][] = 'boincuser_fix_unfriend_form_submit';
+        $form['#submit'][] = $final_handler;
+        break;
+      case FLAG_FRIEND_PENDING:
+        unset($form['actions']);
+        $form['flag_friend_submit']['#value'] = bts('Remove request', array(), NULL, 'boinc:friends-page');
+        break;
+      case FLAG_FRIEND_APPROVAL:
+        if ($action == 'flag') {
+          $form['flag_friend_submit']['#value'] = bts('Approve request', array(), NULL, 'boinc:friends-page');
+        }
+        elseif ($action == 'unflag') {
+          unset($form['actions']);
+          $form['flag_friend_submit']['#value'] = bts('Deny request', array(), NULL, 'boinc:friends-page');
+        }
+        break;
+      case FLAG_FRIEND_UNFLAGGED:
+      default:
+        $user_links[] = array(
+          'title' => bts('Add as friend', array(), NULL, 'boinc:friends-add'),
+          'href' => "flag/confirm/flag/friend/{$account->uid}"
+        );
+      }
+      break;
+      
+    default:
+    }
+    
+    $form['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $cancel_dest) . '</li>',
+      '#weight' => 1004,
+    );
+    $form['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    
+    break;
+    
+  // General node edit form
+  case 'news_node_form':
+    $form['separator_bottom'] = array(
+      '#value' => '<div class="separator buttons"></div>',
+      '#weight' => 999,
+    );
+    
+    // Wrap action buttons for styling consistency
+    $form['buttons']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
+    $form['buttons']['submit']['#value'] = bts('Save changes', array(), NULL, 'boinc:form-save');
+    $form['buttons']['submit']['#suffix'] = '</li>';
+    $form['buttons']['submit']['#weight'] = 1002;
+    $form['buttons']['preview']['#prefix'] = '<li class="tab">';
+    $form['buttons']['preview']['#suffix'] = '</li>';
+    $form['buttons']['preview']['#weight'] = 1003;
+    $form['buttons']['preview_changes']['#prefix'] = '<li class="tab">';
+    $form['buttons']['preview_changes']['#suffix'] = '</li>';
+    $form['buttons']['preview_changes']['#weight'] = 1004;
+    $form['buttons']['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "node/{$form['nid']['#value']}") . '</li>',
+      '#weight' => 1005,
+    );
+    $form['buttons']['delete']['#prefix'] = '<li class="tab">';
+    $form['buttons']['delete']['#suffix'] = '</li>';
+    $form['buttons']['delete']['#weight'] = 1006;
+    $form['buttons']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    
+    // Preview is ugly, unset until it works
+    unset($form['buttons']['preview']);
+
+    break;
+  
+  case 'node_delete_confirm':
+    $form['separator_bottom'] = array(
+      '#value' => '<div class="separator buttons"></div>',
+      '#weight' => 999,
+    );
+    
+    // Wrap action buttons for styling consistency
+    $form['actions']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['actions']['submit']['#prefix'] = '<li class="first tab">';
+    $form['actions']['submit']['#value'] = bts('Delete', array(), NULL, 'boinc:form-delete');
+    $form['actions']['submit']['#suffix'] = '</li>';
+    $form['actions']['submit']['#weight'] = 1002;
+    $form['actions']['cancel'] = array(
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "node/{$form['nid']['#value']}") . '</li>',
+      '#weight' => 1005,
+    );
+    $form['actions']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    $form['#redirect'] = 'account/profile';
+    break;
+    
+  case 'privatemsg_new':
+    
+    $form['privatemsg']['body']['#title'] = '';
+    
+    // Wrap action buttons for styling consistency
+    $form['privatemsg']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['privatemsg']['submit']['#prefix'] = '<li class="first tab">';
+    $form['privatemsg']['submit']['#value'] = bts('Send message', array(), NULL, 'boinc:private-message');
+    $form['privatemsg']['submit']['#suffix'] = '</li>';
+    $form['privatemsg']['submit']['#weight'] = 1002;
+    $form['privatemsg']['preview']['#prefix'] = '<li class="tab">';
+    $form['privatemsg']['preview']['#suffix'] = '</li>';
+    $form['privatemsg']['preview']['#weight'] = 1003;
+    $form['privatemsg']['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
+      '#weight' => 1004,
+    );
+    $form['privatemsg']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    
+    unset($form['privatemsg']['recipient_display']);
+    
+    break;
+    
+  // Login form
+  case 'user_login':
+  case 'user_login_block':
+      drupal_set_title(bts('Login', array(), NULL, 'boinc:menu-link'));
+    // Replace name with email in login form
+    unset($form['name']);
+    array_unshift($form, array(
+      'email' => array(
+        '#type' => 'textfield',
+        '#title' => bts('Email address', array(), NULL, 'boinc:email-address-to-login'),
+        '#size' => ($form_id == 'user_login_block') ? 15 : 60,
+        '#maxlength' => EMAIL_MAX_LENGTH,
+        '#required' => TRUE,
+        '#attributes' => array('tabindex' => '1'),
+        '#description' => bts('Enter your @s email address.', array('@s' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:standard-login-page')
+      ),
+      'validation_source' => array(
+        '#type' => 'hidden',
+        '#value' => 'user_login'
+      )
+    ));
+    $form['#redirect'] = 'home';
+    
+    // Wrap action buttons for styling consistency
+    $form['buttons']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['buttons']['submit'] = $form['submit'];
+    $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
+    $form['buttons']['submit']['#value'] = bts('Log in', array(), NULL, 'boinc:standard-login-page');
+    $form['buttons']['submit']['#suffix'] = '</li>';
+    $form['buttons']['submit']['#weight'] = 1002;
+    $form['buttons']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    unset($form['submit']);
+    
+    // Set the tab indices to follow a logical procession...
+    isset($form['pass']['#attributes']) ? array_push($form['pass']['#attributes'], array('tabindex' => '2')) : $form['pass']['#attributes'] = array('tabindex' => '2');
+    isset($form['buttons']['submit']['#attributes']) ? array_push($form['buttons']['submit']['#attributes'], array('tabindex' => '3')) : $form['buttons']['submit']['#attributes'] = array('tabindex' => '3');
+    // If the user login form is being submitted, use BOINC validation handler.
+    if (isset($form_state['post']['email']) and isset($form_state['post']['pass'])) {
+      // Find the local validation function's entry so we can replace it.
+      $array_key = array_search('user_login_authenticate_validate', $form['#validate']);
+      if ($array_key === FALSE) {
+        // Could not find it. Some other module must have run form_alter().
+        // We will simply add our validation just before the final validator.
+        $final_validator = array_pop($form['#validate']);
+        $form['#validate'][] = 'boincuser_login_validate';
+        $form['#validate'][] = $final_validator;
+      } else {
+        // Replace the local validation function with BOINC validation
+        $form['#validate'][$array_key] = 'boincuser_login_validate';
+      }
+    }
+    break;
+    
+  // User credentials form
+  case 'user_profile_form':
+    
+    // Use the displaly name as the title, not the username
+    $account = user_load($form['#uid']);
+    drupal_set_title($account->boincuser_name);
+    
+    // A bit hackish... but don't require the user to enter his password if
+    // coming from the password reset function
+    $reset_pass = (strpos($_SERVER['HTTP_REFERER'], "/user/reset/{$form['#uid']}") === FALSE) ? 0 : 1;
+    if ($reset_pass) {
+      $_SESSION['reset_pass'] = 1;
+    }
+    
+    $form['account']['name']['#size'] = 40;
+    $form['account']['name']['#attributes']['autocomplete'] = 'off';
+    $form['account']['mail']['#size'] = 40;
+    $form['account']['pass']['#size'] = 17;
+    
+    if (!$reset_pass AND ($user->uid == $account->uid OR !user_access('administer users'))) {
+      // Add a password authenticator, required to change email or pw
+      $form['account']['current_pass'] = array(
+        '#type' => 'password',
+        '#title' => bts('Enter your password to save changes', array(), NULL, 'boinc:account-credentials-change'),
+        '#description' => bts('Enter your current password if changing your email
+          address or password.', array(), NULL, 'boinc:account-credentials-change'),
+        '#size' => 17,
+        '#attributes' => array(
+          'autocomplete' => 'off',
+        ),
+      );
+    }
+    
+    // Add account keys, CPID, etc
+    $form['account']['boincuser_id'] = array(
+      '#value' => '
+        <div class="form-item">
+          <label>' . bts('BOINC user ID', array(), NULL, 'boinc:account-credentials-change') . '</label>
+          <span>' . $account->boincuser_id . '</span>
+        </div>',
+    );
+    $form['account']['user_id'] = array(
+      '#value' => '
+        <div class="form-item">
+          <label>' . bts('Drupal user ID', array(), NULL, 'boinc:account-credentials-change') . '</label>
+          <span>' . $account->uid . '</span>
+        </div>',
+    );
+    $form['account']['account_key'] = array(
+      '#value' => '
+        <div class="form-item">
+          <label>' . bts('Account key', array(), NULL, 'boinc:account-credentials-change') . '</label>
+          <span>' . $account->boincuser_account_key . '</span>
+        </div>',
+    );
+    $form['account']['weak_account_key'] = array(
+      '#value' => '
+        <div class="form-item">
+          <label>' . bts('Weak account key', array(), NULL, 'boinc:account-credentials-change') . '</label>
+          <span>' . "{$account->boincuser_id}_{$account->boincuser_weak_auth}" . '</span>
+        </div>',
+    );
+    $form['account']['cpid'] = array(
+      '#value' => '
+        <div class="form-item">
+          <label>' . bts('Cross-project ID', array(), NULL, 'boinc:account-credentials-change') . '</label>
+          <span>' . $account->boincuser_cpid . '</span>
+        </div>',
+    );
+    
+    $form['account']['separator_bottom'] = array(
+      '#value' => '<div class="separator buttons"></div>'
+    );
+    
+    // Wrap action buttons for styling consistency
+    $form['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['submit']['#prefix'] = '<li class="first tab">';
+    $form['submit']['#value'] = bts('Save changes', array(), NULL, 'boinc:form-save');
+    $form['submit']['#suffix'] = '</li>';
+    $form['submit']['#weight'] = 1002;
+    if (isset($form['delete']) AND is_array($form['delete'])) {
+      $form['delete']['#prefix'] = '<li class="tab">';
+      $form['delete']['#suffix'] = '</li>';
+      $form['delete']['#weight'] = 1003;
+    }
+    $form['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
+      '#weight' => 1004,
+    );
+    $form['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    
+    // Rearrange form elements
+    $form['account']['mail']['#weight'] = 5;
+    $form['account']['pass']['#weight'] = 15;
+    $form['account']['boincuser_id']['#weight'] = 45;
+    $form['account']['user_id']['#weight'] = 50;
+    $form['account']['account_key']['#weight'] = 55;
+    $form['account']['weak_account_key']['#weight'] = 60;
+    $form['account']['cpid']['#weight'] = 65;
+    $form['account']['separator_bottom']['#weight'] = 1000;
+    $form['account']['current_pass']['#weight'] = 1001;
+    
+    // Remove redundant / unnecessary form elements
+    unset($form['theme_select']);
+    unset($form['delete']);
+    
+    // These are on the Community preferences form (boincwork module)
+    unset($form['enable_pm_mail']);
+    unset($form['friend_notification']);
+    unset($form['locale']);
+    unset($form['signature_settings']);
+    unset($form['timezone']);
+    unset($form['wysiwyg']);
+    
+    // Built-in picture support is not used
+    unset($form['picture']);
+    
+    // Internal fields to indicate where these user changes are taking place
+    array_unshift($form, array(
+      'validation_source' => array(
+        '#type' => 'hidden',
+        '#value' => 'user_account'
+      ),
+      'update_source' => array(
+        '#type' => 'hidden',
+        '#value' => 'user_account'
+      )
+    ));
+    
+    break;
+    
+  case 'profile_node_form':
+    
+    // Use the display name as the title, not the username
+    $account = user_load($form['uid']['#value']);
+    drupal_set_title($account->boincuser_name);
+    
+    $form['separator_bottom'] = array(
+      '#value' => '<div class="separator buttons"></div>',
+      '#weight' => 999,
+    );
+    
+    if (module_exists('captcha')) {
+      // Add an optional captcha
+      $form['profile_captcha'] = array(
+        '#type' => 'captcha',
+        '#weight' => 1000,
+      );
+    }
+    
+    // Wrap action buttons for styling consistency
+    $form['buttons']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
+    $form['buttons']['submit']['#value'] = bts('Save changes', array(), NULL, 'boinc:form-save');
+    $form['buttons']['submit']['#suffix'] = '</li>';
+    $form['buttons']['submit']['#weight'] = 1002;
+    $form['buttons']['preview']['#prefix'] = '<li class="tab">';
+    $form['buttons']['preview']['#suffix'] = '</li>';
+    $form['buttons']['preview']['#weight'] = 1003;
+    $form['buttons']['preview_changes']['#prefix'] = '<li class="tab">';
+    $form['buttons']['preview_changes']['#suffix'] = '</li>';
+    $form['buttons']['preview_changes']['#weight'] = 1004;
+    $form['buttons']['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
+      '#weight' => 1005,
+    );
+    $form['buttons']['delete']['#prefix'] = '<li class="tab">';
+    $form['buttons']['delete']['#suffix'] = '</li>';
+    $form['buttons']['delete']['#weight'] = 1006;
+    $form['buttons']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    
+    $form['#after_build'][] = 'boincuser_profile_node_form_after_build';
+    
+    // Preview is ugly, unset until it works
+    unset($form['buttons']['preview']);
+    
+    // Delete doesn't work, be rid of it
+    unset($form['buttons']['delete']);
+    
+    unset($form['title']);
+    unset($form['body_field']);
+    $form['#redirect'] = 'account/profile';
+    
+    // Internal fields to indicate where these user changes are taking place
+    array_unshift($form, array(
+      'validation_source' => array(
+        '#type' => 'hidden',
+        '#value' => 'user_profile'
+      ),
+      'update_source' => array(
+        '#type' => 'hidden',
+        '#value' => 'user_profile'
+      )
+    ));
+    break;
+  
+  // Registration form
+  case 'user_register':
+    array_unshift($form, array(
+      'boincuser_name' => array(
+        '#type' => 'textfield', 
+        '#title' => bts('Name', array(), NULL, 'boinc:user-or-team-name'), 
+        '#default_value' => $edit['boincuser_name'], 
+        '#maxlength' => USERNAME_MAX_LENGTH, 
+        '#description' => bts('Spaces are allowed; punctuation is not allowed except for periods, hyphens, and underscores.', array(), NULL, 'boinc:user-register'), 
+        '#required' => TRUE
+      ),
+      'validation_source' => array(
+        '#type' => 'hidden',
+        '#value' => 'user_register'
+      )
+    ));
+    // Set name temporarily to dummy value to beat validation
+    $form['name'] = array(
+      '#type' => 'hidden',
+      '#value' => rand() . '.' . time()
+    );
+    
+    if (module_exists('captcha')) {
+      // Add an optional captcha
+      $form['register_captcha'] = array(
+        '#type' => 'captcha',
+        '#weight' => 1000,
+      );
+    }
+    
+    $form['submit']['#weight'] = 1001;
+    break;
+    
+  // Request new password form
+  case 'user_pass':
+    drupal_set_title(bts('Forgot password', array(), NULL, 'boinc:forgot-password'));
+    // Replace name/email text box with email only; retain "name" label
+    // for compatibility with standard Drupal submit function
+    unset($form['name']);
+    array_unshift($form, array(
+      'name' => array(
+        '#type' => 'textfield',
+        '#title' => bts('Email address', array(), NULL, 'boinc:email-address-to-login'),
+        '#size' => 60,
+        '#maxlength' => EMAIL_MAX_LENGTH,
+        '#required' => TRUE,
+        '#description' => bts(
+          'Enter your email address to receive instructions for resetting your password (or use the !authenticator_login).',
+          array(
+            '!authenticator_login' => l(
+              bts('authenticator-based login', array(), NULL, 'boinc:forgot-password'),
+              'user/login/auth'
+            )
+          )
+        , NULL, 'boinc:forgot-password'),
+      ),
+    ));
+    
+    // Wrap action buttons for styling consistency
+    $form['buttons']['form control tabs prefix'] = array(
+      '#value' => '<ul class="form-control tab-list">',
+      '#weight' => 1001,
+    );
+    $form['buttons']['submit'] = $form['submit'];
+    $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
+    $form['buttons']['submit']['#value'] = bts('Send', array(), NULL, 'boinc:form-send');
+    $form['buttons']['submit']['#suffix'] = '</li>';
+    $form['buttons']['submit']['#weight'] = 1002;
+    $form['buttons']['cancel'] = array(
+      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/login') . '</li>',
+      '#weight' => 1005,
+    );
+    $form['buttons']['form control tabs suffix'] = array(
+      '#value' => '</ul>',
+      '#weight' => 1010,
+    );
+    unset($form['submit']);
+    
+    // If the form is being submitted, use BOINC validation handler.
+    if (isset($form_state['post']['name'])) {
+      // Prepend the BOINC validation function to local validation
+      array_unshift($form['#validate'], 'boincuser_request_pass_validate');
+    }
+    break;
+    
+  case 'views_exposed_form':
+      $form['submit']['#value'] = bts('Search', array(), NULL, 'boinc:search-user');
+    break;
+  }
+}
+
+/**
+ * Some form alterations (CCK fields) cannot be done until after the form is
+ * built; this is called from boincuser_form_alter()
+ */
+function boincuser_profile_node_form_after_build($form, &$form_state) {
+  // Move to community prefs form
+  $form_state['storage']['avatar'] = $form['field_image'];
+  unset($form['field_image']);
+  return $form;
+}
+
+/**
+ * Implementation of hook_elements()
+ * @see http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_elements/6
+ */
+function boincuser_elements() {
+  $type['password_confirm']['#process'][] = 'boincuser_process_password_confirm';
+  return $type;
+}
+
+/**
+ * This madness is required to change the password field label on the user
+ * profile form
+ */
+function boincuser_process_password_confirm($element) {
+  // Check if parent element is "account".
+  if ($element['#array_parents'][0] == 'account') {
+    $element['pass1']['#title'] = bts('Change password', array(), NULL, 'boinc:forgot-password');
+  }
+  return $element;
+}
+
+/**
+ * Implementation of hook_theme()
+ * Register theme functions for use in this module.
+ */
+function boincuser_theme($existing, $type, $theme, $path) {
+  return array(
+    'boincuser_user_pass' => array(
+      'arguments' => array()
+    )
+  );
+}
+
+/**
+ * Implementation of hook_token_values
+ */
+function boincuser_token_values($type, $object = NULL, $options = array()) {
+  if ($type == 'user') {
+    $account = user_load($object->uid);
+    $tokens['display-name'] = $account->boincuser_name;
+    return $tokens;
+  }
+}
+
+/**
+ * Implementation of hook_token_list
+ */
+function boincuser_token_list($type = 'all') {
+  if ($type == 'user' || $type == 'all') {
+    $tokens['user']['display-name']      = t("The user's name that should be displayed");
+    return $tokens;
+  }
+}
+
+/**
+ * Implementation of hook_views_pre_execute()
+ */
+function boincuser_views_pre_execute(&$view) {
+  $account_id = $view->args[0];
+  if ($view->name=="user_activity") {
+    // Run the following custom query for the user_activity view
+    $view->build_info['query']= "
+      SELECT node_revisions.vid AS vid,
+        node.nid AS node_nid,
+        node.uid AS users_node_uid,
+        node.type AS node_type,
+        node.title AS node_title,
+        node_revisions.body AS node_revisions_body,
+        node_revisions.timestamp AS node_revisions_timestamp
+      FROM node_revisions node_revisions 
+      LEFT JOIN node node ON node_revisions.nid = node.nid
+      INNER JOIN users users ON node.uid = users.uid
+      WHERE (node.type in ('forum', 'news', 'page', 'story')) AND (node.status = 1) AND (node.uid = {$account_id} )
+      
+      UNION
+      
+      SELECT comments.cid AS cid,
+        node_comments.nid AS node_comments_nid,
+        users_comments.uid AS users_comments_uid,
+        'comment' AS node_comments_type,
+        node_comments.title AS node_comments_title,
+        comments.comment AS comments_comment,
+        comments.timestamp AS comments_timestamp
+      FROM comments comments
+      INNER JOIN node node_comments ON comments.nid = node_comments.nid
+      INNER JOIN users users_comments ON comments.uid = users_comments.uid
+      WHERE (node_comments.status = 1) AND (users_comments.uid = {$account_id} )
+      ORDER BY node_revisions_timestamp DESC";
+    
+    // count_query determines the pager.  Do this so the right item count is returned.
+    $view->build_info['count_query'] = $view->build_info['query'];
+  }
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Page callbacks from hook_menu()
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Page callback shortcut to recent posts for the logged in user
+ */
+function boincuser_goto_recent_posts() {
+  global $user;
+  drupal_goto("account/{$user->uid}/posts");
+}
+
+/**
+ * Page callback shortcut to the team of the logged in user
+ */
+function boincuser_goto_team() {
+  global $user;
+  $account = user_load($user->uid);
+  drupal_goto("community/teams/{$account->team}");
+}
+
+/**
+ * Page callback for displaying a user profile
+ * For some reason, menu context cannot be configured as expected for
+ * user profile pages, so use a wrapper for display
+ */
+function boincuser_view_profile($account = null) {
+  // Create the user profile page
+  if (!$account) {
+    global $user;
+    $account = $user;
+  }
+  // For now, just call the user module profile view function
+  user_build_content($account);
+  return theme('user_profile', $account);
+}
+
+/**
+ * Page callback for editing a user profile
+ */
+function boincuser_edit_profile($account = null) {
+  // Create the user profile form
+  if (!$account) {
+    global $user;
+    $account = $user;
+  }
+  // Render the form
+  module_load_include('pages.inc', 'node', 'node');
+  return content_profile_page_edit('profile', $account);
+}
+
+/**
+  * Join page menu callback.
+  * Display instructions on joining for new or existing BOINC users
+  */
+function join_page($type = null) {
+  global $base_url;
+  $registration_enabled = variable_get('user_register', 0);
+  $output = '<div class="join">';
+  switch ($type) {
+  case 'boinc':
+    $output .= '<p>' . bts("If you're already running BOINC, select <i>Add
+      Project</i>.", array(), NULL, 'boinc:join-page') . '</p>';
+    if ($registration_enabled) {
+      $output .= '<p>' . bts("If you're running a command-line or pre-5.0 version
+        of BOINC, !create_an_account first.", array('!create_an_account' => 
+        l(bts('create an account'), 'user/registration')), array(), NULL, 'boinc:join-page') . '</p>';
+    }
+    else {
+      $output .= '<p>' . bts("If you're running a command-line version of BOINC,
+        first use the BOINC Manager software (elsewhere if necessary) to create an
+        an account at this project, then use that account to connect with the
+        command-line version.", array(), NULL, 'boinc:join-page') . '</p>';
+      $output .= '<p>' . bts("If you're running a pre-5.0 version of BOINC, please
+        upgrade to a more recent version to create an account
+        at this project.", array(), NULL, 'boinc:join-page') . '</p>';
+    }
+    break;
+  case 'new':
+  default:
+    $output .= '<ol>';
+    $output .= '  <li>' . bts('Download the desktop software', array(), NULL, 'boinc:join-page');
+    $output .= '    <p>';
+    $output .= '      <a class="button" href="http://boinc.berkeley.edu/download.php">Download</a>';
+    $output .= '    </p>';
+    //$output .= '    <p class="platforms">';
+    //$output .= '      <a href="files/boinc_windows_intelx86.exe" class="platform windows">Windows</a>';
+    //$output .= '      <a href="files/boinc_macOSX_universal.zip" class="platform mac">Mac</a>';
+    //$output .= '      <a href="files/boinc_i686-pc-linux-gnu.sh" class="platform linux">Linux</a>';
+    //$output .= '    </p>';
+    $output .= '  </li>';
+    $output .= '  <li>' . bts('Run the installer', array(), NULL, 'boinc:join-page') . '</li>';
+    $output .= '  <li>' . bts('When prompted enter @siteurl', array(
+        '@siteurl' => $base_url), NULL, 'boinc:join-page') . '</li>';
+    $output .=  '</ol>';
+  }
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+  * Home page content for embedding in Panels page
+  */
+function boincuser_home_page() {
+  global $user;
+  $site_name = variable_get('site_name', 'Drupal-BOINC');
+  // get the front page message from database; this is set in the admin interface under BOINC Other
+  $site_message = variable_get('boinc_other_frontpage','');
+
+  // Determine the user of the day
+  $current_uotd = db_fetch_object(db_query("
+    SELECT
+      uid,
+      uotd_time
+    FROM {boincuser}
+    ORDER BY uotd_time DESC
+    LIMIT 1"
+  ));
+  if ($current_uotd->uotd_time < strtotime('today midnight')) {
+    $uotd = boincuser_select_user_of_the_day();
+  }
+  else {
+    $uotd = user_load($current_uotd->uid);
+  }
+  $uotd_image = boincuser_get_user_profile_image($uotd->uid, FALSE);
+  $output = '<h2 class="pane-title">';
+  $output .= ($user->uid) ? bts('Welcome back!', array(), NULL, 'boinc:front-page') : ($site_name ? bts('What is @this_project?', array('@this_project' => $site_name)) : bts('Welcome!', array(), NULL, 'boinc:front-page'));
+  $output .= '</h2>';
+  $output .= '<div class="boinc-overview balance-height-front">';
+  $output .= '  <div>' . bts($site_message, array(), NULL, "project:front page") . ' ' . l(bts('Learn more', array(), NULL, 'boinc:front-page'), 'about') . '</div>';
+  if ($user->uid) {
+    $output .= '  <div>' . l(bts('View account', array(), NULL, 'boinc:front-page'), 'dashboard', array('attributes' => array('class' => 'join button'))) . '</div>';
+  }
+  else {
+    $output .= '  <div>' . l(bts('Join now', array(), NULL, 'boinc:front-page'), 'join', array('attributes' => array('class' => 'join button'))) . '</div>';
+  }
+  $output .= '</div>';
+  $output .= '<div class="boinc-overview-details">';
+  $output .= '  <div class="detail-container">';
+  $output .= '    <a class="user-of-the-day" href="account/' . $uotd->uid . '">';
+  $output .= '      <div class="picture">';
+  $output .= theme('imagefield_image', $uotd_image['image'], $uotd_image['alt'],
+    $uotd_image['alt'], array(), FALSE);
+  $output .= '      </div>';
+  $output .= '      <div class="text">' . bts('User of the day', array(), NULL, 'boinc:front-page') . '</div>';
+  $output .= '      <div class="detail">' . $uotd->boincuser_name . '</div>';
+  $output .= '    </a>';
+  $output .= '    <div class="volunteers">';
+  $output .= '      <div class="text">' . bts('Over 500,000 volunteers and counting.', array(), NULL, 'boinc:front-page') . '</div>';
+  $output .= '      <div class="platforms">';
+  $output .= '        <div class="detail platform windows">' . bts('Windows', array(), NULL, 'boinc:front-page') . '</div>';
+  $output .= '        <div class="detail platform mac">' .  bts('Mac', array(), NULL, 'boinc:front-page') . '</div>';
+  $output .= '        <div class="detail platform linux">' . bts('Linux', array(), NULL, 'boinc:front-page') . '</div>';
+  $output .= '      </div>';
+  $output .= '    </div>';
+  $output .= '  </div>';
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+ * Page callback for the create account RPC (create_account.php).
+ * Create a new user account based on supplied parameters.
+ */
+function boincuser_create_account() {
+  require_boinc('boinc_db');
+  require_boinc('user');
+  require_boinc('xml');
+  $params = array(
+    'email_addr' => isset($_GET['email_addr']) ? $_GET['email_addr'] : '',
+    'user_name' => isset($_GET['user_name']) ? $_GET['user_name'] : '',
+    'passwd_hash' => isset($_GET['passwd_hash']) ? $_GET['passwd_hash'] : ''
+  );
+  
+  // Begin output
+  xml_header();
+  
+  // Account creation disabled
+  
+  // Invalid invite code
+  
+  // Validate input
+  if (user_validate_mail($params['email_addr']) or !is_valid_email_addr($params['email_addr'])) {
+    xml_error(-205);
+  }
+  if ($error = user_validate_name($params['user_name'])) {
+    xml_error(-205, $error);
+  }
+  if (strlen($params['passwd_hash']) != 32) {
+    xml_error(-1, 'password hash length not 32');
+  }
+  
+  // Process input
+  $boinc_user = BoincUser::lookup_email_addr($params['email_addr']);
+  if ($boinc_user) {
+    // Return authenticator for existing users
+    if ($params['passwd_hash'] == $boinc_user->passwd_hash) {
+      $output = array('authenticator' => $boinc_user->authenticator);
+    } else {
+      xml_error(-137);
+    }
+  }
+  else {
+    // Verify that there isn't somehow a Drupal user already (not possible with proper function)
+    if ($existing_user = user_load(array('mail' => $params['email_addr']))) {
+      xml_error(-137, 'account error');
+    }
+    // Create new account
+    $unrestricted_role = array_search('community member', user_roles(true));
+
+    // Make sure user_name is unique
+    $unique_name = find_unique_name($params['user_name']);
+
+    $newUser = array(
+      'name' => $unique_name,
+      'pass' => null, // $params['passwd_hash'], // note: passing a hash here requires ALL passwords to be hashed via hook prior to interacting with the hash stored in the db
+      'mail' => $params['email_addr'],
+      'status' => 1,
+      'init' => $params['email_addr'],
+      'roles' => array($unrestricted_role => ''),
+    );
+
+    // Create the drupal user. If the drupal user cannot be created, then stop with error message.
+    $user = user_save(null, $newUser);
+    if ($user) {
+      // Create the BOINC user.
+      $boinc_user = make_user($params['email_addr'], $params['user_name'], $params['passwd_hash'], 'International');
+      if ($boinc_user) {
+        // Cross reference Drupal account with BOINC.
+        $reference = db_query("INSERT INTO {boincuser} SET uid=%d, boinc_id=%d", $user->uid, $boinc_user->id);
+        if (!$reference) {
+          xml_error(-1, 'error connecting BOINC account to Drupal');
+        }
+      }
+      else {
+        xml_error(-137);
+      }// if boinc user created.
+    }
+    else {
+      watchdog('boincuser', 'create_accout: Failed to create Drupal user account for @email', array('@email' => $params['email_addr']), WATCHDOG_WARNING);
+      xml_error(-1, 'error creating Drupal user account');
+    }// if drupal user created.
+  }// if existing user found.
+  echo " <account_out>\n";
+  echo "   <authenticator>{$boinc_user->authenticator}</authenticator>\n";
+  echo "</account_out>\n";
+}
+
+/**
+ * Determine if the user has permission to control community access
+ */
+function boincuser_moderate_community_access() {
+  if (user_access('assign community member role')
+  OR user_access('assign all roles')) {
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * Get the count of items in the moderation queue
+ */
+function boincuser_moderation_queue_count($caller = 'user') {
+  $allowed = FALSE;
+  switch ($caller) {
+  case 'cron':
+    $allowed = TRUE;
+    break;
+  case 'user':
+  default:
+    $allowed = user_access('edit any profile content');
+  }
+  if ($allowed) {
+    return db_result(db_query("
+      SELECT COUNT(*)
+      FROM {node}
+      WHERE type = 'profile'
+      AND moderate = 1"
+    ));
+  }
+  return NULL;
+}
+
+/**
+ * Controller for handling simple user account status configuration.
+ * Allow community membership status to be set for users by direct link rather
+ * than through the user account info form.
+ */
+function boincuser_control($uid = NULL, $action = NULL) {
+  if (!$uid OR !$account = user_load($uid)) {
+    // What are you even doing here...
+    return FALSE;
+  }
+  switch ($action) {
+  case 'ban':
+    if (boincuser_moderate_community_access()) {
+      $penalty_period = variable_get('boinc_penalty_period', 7*24*60*60);
+      $boincuser_record = array(
+        'uid' => $uid,
+        'penalty_expiration' => time() + $penalty_period,
+      );
+      drupal_write_record('boincuser', $boincuser_record, 'uid');
+      $community_role = array_search('community member', user_roles(true));
+      if (isset($account->roles[$community_role])) {
+        unset($account->roles[$community_role]);
+        user_save($account, array('roles' => $account->roles));
+      }
+    }
+    break;
+  case 'lift-ban':
+    if (boincuser_moderate_community_access()) {
+      $boincuser_record = array(
+        'uid' => $uid,
+        'penalty_expiration' => 0,
+      );
+      drupal_write_record('boincuser', $boincuser_record, 'uid');
+      $community_role = array_search('community member', user_roles(true));
+      if (!isset($account->roles[$community_role])) {
+        $account->roles[$community_role] = 'community member';
+        user_save($account, array('roles' => $account->roles));
+      }
+    }
+    break;
+  default:
+  }
+  drupal_goto("account/{$account->uid}");
+}
+
+/**
+ * Mark a user profile as approved by publishing it and turning off the
+ * moderation flag.
+ */
+function boincuser_moderate_profile_approve($account) {
+  $node = new stdClass;
+  $node->type = 'profile';
+  $node->language = '';
+  $nid = content_profile_profile_exists($node, $account->uid);
+  $profile = node_load($nid);
+  $profile->moderate = 0;
+  $profile->status = 1;
+  node_save($profile);
+  drupal_set_message('This profile has been marked as approved.');
+  drupal_goto();
+}
+
+/**
+ * Mark a user profile as rejected and notify the user of the reason.
+ */
+function boincuser_moderate_profile_reject($uid, $reason = '') {
+  $account = user_load($uid);
+  $node = new stdClass;
+  $node->type = 'profile';
+  $node->language = '';
+  $nid = content_profile_profile_exists($node, $uid);
+  $profile = node_load($nid);
+  if ($profile->nid) {
+    global $user;
+    global $base_url;
+    global $base_path;
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
+    $site_url = $base_url . $base_path;
+    $moderator = user_load($user->uid);
+    $profile->moderate = 0;
+    $profile->status = 0;
+    node_save($profile);
+    $settings = array(
+      'from' => '',
+      'subject' => "Profile moderation at {$site_name}",
+      'message' => ''
+      . "{$account->boincuser_name},\n"
+      . "\n"
+      . "{$moderator->boincuser_name} has rejected your profile at"
+      . " {$site_name} for the following reason: \n"
+      . "\n"
+      . "{$reason}\n"
+      . "\n"
+      . "\n"
+      . "Since it has not been approved, your profile is not visible to other"
+      . " {$site_name} users. Please make the needed changes here:\n"
+      . "\n"
+      . "{$site_url}account/profile \n"
+      . "\n"
+      . "Thanks, \n"
+      . "\n"
+      . "{$site_name} support team",
+    );
+    rules_action_mail_to_user($account, $settings);
+    drupal_set_message('This profile has been marked as rejected.');
+  }
+  drupal_goto();
+}
+
+/**
+ * Ban a user and send a notification of the reason.
+ */
+function boincuser_moderate_user_ban($uid, $reason = '', $duration = '') {
+  if (user_access('assign community member role')
+  OR user_access('assign all roles')) {
+    $account = user_load($uid);
+    if ($account->uid) {
+      module_load_include('inc', 'rules', 'modules/system.rules');
+      if ($duration === '') {
+        $duration = variable_get('boinc_penalty_period', 7*24*60*60);
+      }
+      $penalty_expiration = ($duration > 0) ? time() + $duration : 4294967295;
+      $boincuser_record = array(
+        'uid' => $uid,
+        'penalty_expiration' => $penalty_expiration,
+      );
+      drupal_write_record('boincuser', $boincuser_record, 'uid');
+      
+      $community_role = array_search('community member', user_roles(true));
+      if (isset($account->roles[$community_role])) {
+        unset($account->roles[$community_role]);
+        user_save($account, array('roles' => $account->roles));
+      }
+      
+      global $user;
+      global $base_url;
+      global $base_path;
+      $site_name = variable_get('site_name',  'Drupal-BOINC');
+      $site_url = $base_url . $base_path;
+      $moderator = user_load($user->uid);
+      $settings = array(
+        'from' => '',
+        'subject' => "User moderation at {$site_name}",
+        'message' => ''
+        . "{$account->boincuser_name},\n"
+        . "\n"
+        . "You have been banned from using community features at"
+        . " {$site_name} for the following reason: \n"
+        . "\n"
+        . "{$reason}\n"
+        . "\n"
+        . "The duration of this ban can be found on your account page: \n"
+        . "\n"
+        . "{$site_url}account \n"
+        . "\n"
+        . "If you feel that this decision was made in error, please send a"
+        . " private message to {$moderator->boincuser_name}. \n"
+        . "\n"
+        . "Thanks, \n"
+        . "\n"
+        . "{$site_name} support team",
+      );
+      rules_action_mail_to_user($account, $settings);
+      drupal_set_message('This user has been banned.');
+    }
+  }
+  drupal_goto();
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * User data access support functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ *
+ */
+function boincuser_get_weak_auth($boinc_id = null) {
+  if (!$boinc_id) {
+    global $user;
+    $account = user_load($user->uid);
+    $boinc_id = $account->boincuser_id;
+  }
+  
+  $boinc_user = boincuser_load($account->boincuser_id);
+  
+  return weak_auth($boinc_user);
+}
+
+/**
+ * Retrieve the profile image for a user account
+ * User profile image is managed by the content_profile module rather than core
+ * Drupal User so must be inserted into comments, etc. (not so by default)
+ */
+function boincuser_get_user_profile_image($uid, $avatar = TRUE) {
+  // Though the function name implies otherwise, get the avatar by default
+  $image_field = ($avatar) ? 'field_image_fid' : 'field_profile_image_fid';
+  $image_fid = db_result(db_query("
+    SELECT ctp.%s
+    FROM {content_type_profile} ctp
+    INNER JOIN {node} n ON ctp.nid = n.nid
+    WHERE n.uid = %d AND n.type = '%s'",
+    $image_field, $uid, 'profile'));
+  $user_image['image'] = field_file_load($image_fid);
+  if (!$user_image['image']['filepath']) {
+    // Load the default image if one does not exist
+    $account = user_load($uid);
+    if ($avatar AND module_exists('gravatar') AND user_access('use gravatar', $account) AND $account->gravatar) {
+      // Use a Gravatar rather than the system default image
+      $options = array(
+        'size' => 100,
+        'rating' => 'G',
+      );
+      // Get the Gravatar URL and see if the image exists
+      $url = gravatar_get_gravatar($account->mail, $options);
+      $headers = @get_headers($url);
+      if (preg_match("|200|", $headers[0])) {
+        return $url;
+      }
+    }
+    // Get default image if nothing else works
+    $content_node_widget_settings = db_result(db_query("SELECT widget_settings FROM {content_node_field_instance} WHERE field_name = '%s'", ($avatar ? 'field_image' : 'field_profile_image')));
+    $content_node_widget_settings = unserialize($content_node_widget_settings);
+    $user_image['image'] = $content_node_widget_settings['default_image'];
+  }
+  $user = user_load($uid);
+  $user_image['alt'] = $user->name;
+  return $user_image;
+}
+
+/**
+ * Generate a table of a user's projects
+ */
+function boincuser_get_projects_table($account = null) {
+  if ($account AND is_numeric($account)) {
+    $account = user_load($account);
+  }
+  $projects = boincuser_get_projects($account);
+  if (!$projects) return bts('no projects...', array(), NULL, 'boinc:account-dashboard');
+  
+  $output = '';
+  $output .= '<table class="user-projects">' . "\n";
+  $output .= '<thead>' . "\n";
+  $output .= '  <tr>' . "\n";
+  $output .= '    <th>' . bts('Name', array(), NULL, 'boinc:project-name:-1:ignoreoverwrite') . '</th>' . "\n";
+  $output .= '    <th class="numeric">' . bts('Avg credit', array(), NULL, 'boinc:account-dashboard') . '</th>' . "\n";
+  $output .= '    <th class="numeric">' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . '</th>' . "\n";
+  $output .= '  </tr>' . "\n";
+  $output .= '</thead>' . "\n";
+  $output .= '<tbody>' . "\n";
+  foreach ($projects AS $project) {
+    $url = rtrim($project->url, '/') . '/show_user.php?userid=' . $project->id;
+    $output .= '  <tr>' . "\n";
+    $output .= '    <td>' . l($project->name, $url) . '</td>' . "\n";
+    $output .= '    <td class="numeric">' . boincwork_format_stats((float) $project->expavg_credit) . '</td>' . "\n"; 
+    $output .= '    <td class="numeric">' . boincwork_format_stats((float) $project->total_credit) . '</td>' . "\n";
+    $output .= '  </tr>' . "\n";
+  }
+  $output .= '</tbody>' . "\n";
+  $output .= '</table>' . "\n";
+  $more_link = ($account) ? "user/{$account->uid}/stats" : 'account/stats';
+  //$output .= "<div class=\"more-link\"><a href=\"{$more_link}\">More stats</a></div>" . "\n";
+  return $output;
+}
+
+/**
+ * Make an RPC call to the stats server and retreive user data
+ */
+function boincuser_get_stats_user_data($cpid = null) {
+  
+  // [TODO] Set this stuff in site config!
+  $stats_server = 'stats.gridrepublic.org';
+  $stats_rpc = 'rpc/get_user.php';
+  
+  // Construct query string
+  $get = array(
+    'cpid' => $cpid
+  );
+  $args = array();
+  foreach ($get as $arg => $value) $args[] = "{$arg}=" . rawurlencode($value);
+  $query = '?' . implode('&', $args);
+  
+  // Load XML from RPC
+  $target_url = "http://{$stats_server}/{$stats_rpc}{$query}";
+  $result = drupal_http_request($target_url);
+  if (in_array($result->code, array(200, 304))) {
+    return simplexml_load_string($result->data);
+  }
+  return NULL;
+}
+
+/**
+ * Get the list of all BOINC projects of a user
+ */
+function boincuser_get_projects($account = null) {
+  
+  // Use the current user by default
+  if (!$account) {
+    global $user;
+    $account = user_load($user->uid);
+  }
+  
+  $account_stats = boincuser_get_stats_user_data($account->boincuser_cpid);
+  
+  return ($account_stats AND isset($account_stats->project)) ? $account_stats->project : null;
+}
+
+
+/**
+ * Get the links to display under the user profile
+ */
+function boincuser_get_profile_links($uid) {
+  global $user;
+  $account = user_load($uid);
+  $profile = content_profile_load('profile', $account->uid);
+  $output = '';
+  if ($profile) {
+    $profile_is_approved = ($profile->status AND !$profile->moderate);
+    $user_is_moderator = user_access('edit any profile content');
+    $is_own_profile = ($user->uid == $account->uid);
+    $profile_moderation_path = "moderate/profile/{$account->uid}";
+    $links = array();
+    
+    if ($profile->moderate AND $user_is_moderator) {
+      $links['approve_profile'] = array(
+        'title' => bts('Approve profile', array(), NULL, 'boinc:moderate-user'),
+        'href' => "{$profile_moderation_path}/approve",
+        'attributes' => array(
+          'title' => bts('Approve this profile content', array(), NULL, 'boinc:moderate-user'),
+          'class' => 'first primary tab',
+        )
+      );
+      /*$links['edit_profile'] = array(
+        'title' => bts('Edit profile', array(), NULL, 'boinc:moderate-user'),
+        'href' => "{$profile_moderation_path}/edit",
+        'attributes' => array(
+          'title' => bts('Edit the content of this profile', array(), NULL, 'boinc:moderate-user'),
+          'class' => 'tab',
+        )
+      );*/
+      $links['reject_profile'] = array(
+        'title' => bts('Reject profile', array(), NULL, 'boinc:moderate-user'),
+        'href' => "{$profile_moderation_path}/reject",
+        'attributes' => array(
+          'title' => bts('Reject this profile content', array(), NULL, 'boinc:moderate-user'),
+          'class' => 'tab',
+        )
+      );
+    }
+    $output .= '<ul class="tab-list">';
+    $count = 0;
+    foreach ($links as $key => $link) {
+      $output .= '<li class="' . (($count == 0) ? 'first primary ' : '') . 'tab">';
+      $output .= l($link['title'], $link['href'], array('query' => drupal_get_destination()));
+      $output .= '</li>';
+      $count++;
+    }
+    $output .= '<li class="' . (($count) ? '' : 'first ') . 'last tab">' . flag_create_link('abuse_user', $account->uid) . '</li>';
+    $output .= '</ul>';
+  }
+  return $output;
+/*
+<ul class="tab-list">
+  <li class="primary first tab">
+    <?php print l(bts('Approve profile'), 'moderate/profile/%user:uid/approve'); ?>
+  </li>
+  <li class="tab">
+    <?php print l(bts('Remove profile'), 'moderate/profile/%user:uid/remove'); ?>
+  </li>
+  <li class="last tab">
+    <?php print flag_create_link('abuse_user', %user:uid); ?>
+  </li>
+</ul>
+*/
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * 
+ * Call backs for apachesolr
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Implementation of hook_apachesolr_index_documents_alter()
+ *
+ * This function modifies the Apache Solr Document to use the user's
+ * join date as the "ds_create" timestamp.
+ * 
+ * @param array $documents
+ *   Array of ApacheSolrDocument which are to be indexed
+ * @param string $entity
+ *   The entity object, typically a node object.
+ * @param string $entity_type
+ *   The entity's type, typically 'node'.
+ * @param $env_id
+ *   Environment ID for apache solr.
+ */
+function boincuser_apachesolr_index_documents_alter(array &$documents, $entity, $entity_type, $env_id) {
+
+  foreach ($documents as $document) {
+    if ( $document->entity_type=='node' AND $document->bundle=='profile' ) {
+      // Node information.
+      $nid = $document->entity_id;
+      $node = node_load($nid);
+      $account = user_load($node->uid);
+
+      // Use boincuser name and not drupal user name
+      $document->label = apachesolr_clean_text($account->boincuser_name);
+      // Author information
+      if ($node->uid == 0 || strlen($node->name) == 0) {
+        // @see user_validate_name(). !'0' === TRUE.
+        $document->ss_name = '0';
+      }
+      else {
+        $document->ss_name = $account->boincuser_name;
+        // We want the name to be searchable for keywords.
+        $document->tos_name = $account->boincuser_name;
+      }
+
+      // Rename "Profle" to "User"
+      $document->bundle = "User";
+      $document->bundle_name = "User";
+
+      // Replace the Solr document's created field with the date the user 
+      // account was created. This replaces the node creation date typically 
+      // used for indexing nodes.
+      $document->ds_created = apachesolr_date_iso($account->created);
+    }
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/boincuser/boincuser.views.inc b/drupal/sites/default/boinc/modules/boincuser/boincuser.views.inc
new file mode 100644
index 0000000..592de5a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/boincuser.views.inc
@@ -0,0 +1,288 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Exposes BOINC user data to Views.
+ */
+
+/**
+ * Implementation of hook_views_data().
+ * Defines the structure of data and how Views should handle it (i.e. which
+ * relationships exist; is data text, integer, float; what sort options exist).
+ */
+function boincuser_views_data() {
+  
+  // -----------------------------------------------------------------------------------------------
+  // Definition for user table
+  // -----------------------------------------------------------------------------------------------
+  
+  $data['user']['table']['group'] = t('BOINC');
+  
+  $data['user']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC user'),
+      'help' => t('BOINC account data for a user'),
+      'database' => 'boinc'
+  );
+
+  // Describe each of the individual fields in this table to Views. For
+  // each field, you may define what field, sort, argument, and/or filter
+  // handlers it supports. This will determine where in the Views interface you
+  // may use the field.
+  
+  // Primary keys allowed as arguments
+  
+  $data['user']['id'] = array(
+    'title' => bts('Id', array(), NULL, 'boinc:user-id'),
+    'help' => t('The BOINC ID of the user account.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincuser_id', // custom handler
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['user']['teamid'] = array(
+    'title' => bts('Team ID', array(), NULL, 'boinc:team-id'),
+    'help' => t('The ID of the user\'s team.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincteam_id', // custom handler
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of general host fields (alphabetized)
+  
+  $data['user']['authenticator'] = array(
+    'title' => bts('Account Key', array(), NULL, 'boinc:user-info'),
+    'help' => t('The BOINC account key of the user.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['user']['country'] = array(
+    'title' => bts('Country', array(), NULL, 'boinc:country-of-origin'),
+    'help' => t('The country of the user.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['user']['create_time'] = array(
+    'title' => bts('Member since', array(), NULL, 'boinc:user-info'),
+    'help' => t('When the BOINC account was created.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['user']['cross_project_id'] = array(
+    'title' => bts('CPID', array(), NULL, 'boinc:user-info'),
+    'help' => t('The cross project user identifier.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['user']['email_addr'] = array(
+      'title' => bts('Email Address', array(), NULL, 'boinc:user-info'),
+    'help' => t('The BOINC account email address.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['user']['expavg_credit'] = array(
+    'title' => bts('Recent average credit', array(), NULL, 'boinc:user-or-team-RAC'),
+    'help' => t('A decaying average of credit per day for the user.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['user']['name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:user-or-team-name'),
+    'help' => t('The BOINC account user name.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )                           
+  );
+  $data['user']['passwd_hash'] = array(
+    'title' => bts('Password Hash', array(), NULL, 'boinc:user-info'),
+    'help' => t('The user password hash'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['user']['postal_code'] = array(
+    'title' => bts('Postal Code', array(), NULL, 'boinc:user-info'),
+    'help' => t('The postal code of the user.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['user']['send_email'] = array(
+    'title' => bts('Send Email', array(), NULL, 'boinc:user-info'),
+    'help' => t('User preference to allow email communications.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['user']['show_hosts'] = array(
+    'title' => bts('Show Hosts', array(), NULL, 'boinc:user-info'),
+    'help' => t('User preference to display owned computers.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['user']['total_credit'] = array(
+    'title' => bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits'),
+    'help' => t('The total accumulated BOINC credit for the user.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['user']['url'] = array(
+    'title' => bts('URL', array(), NULL, 'boinc:website-of-user-or-team'),
+    'help' => t('The URL provided by the user'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  
+  return $data;
+}
+
+/*
+ * hook_views_handlers(): Reference custom handlers for data.
+ * Custom handlers can manipulate data in useful ways. The boincuser_id
+ * argument takes a Drupal user ID and converts it to BOINC ID via a
+ * reference table for seamless access of user data in the BOINC database.
+ */
+
+function boincuser_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'boincuser') . '/views',
+    ),
+    'handlers' => array(
+      'views_handler_argument_boincuser_id' => array(
+        'parent' => 'views_handler_argument_numeric'
+      ),
+      'views_handler_argument_boincteam_id' => array(
+        'parent' => 'views_handler_argument_numeric'
+      ),
+    )
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/boincuser/includes/boincuser.forms.inc b/drupal/sites/default/boinc/modules/boincuser/includes/boincuser.forms.inc
new file mode 100644
index 0000000..3cddf23
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/includes/boincuser.forms.inc
@@ -0,0 +1,618 @@
+<?php
+// $Id$
+
+/**
+ * Form submission handlers and data processing functions are contained
+ * herein to prevent littering of the main module file.
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Login form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+ * Form validation handler for login
+ */
+function boincuser_login_validate($form, &$form_state) {
+  /* // SAMPLE: To try validation with Drupal first...
+  global $user;
+  if (!empty($user->uid)) {
+    // Authentication with Drupal was successful
+    return;
+  }*/
+  
+  // Set name for logging purposes
+  $form_state['values']['name'] = $form_state['values']['email'];
+  
+  // Bypass BOINC validation if passed the name of user 1
+  $user_1 = user_load(1);
+  if ($form_state['values']['email'] == $user_1->name) {
+    user_authenticate($form_state['values']);
+    return;
+  }
+  
+  // Call our custom authentication function to check for an existing BOINC user
+  if (!boincuser_login_authenticate($form_state['values'])) {
+    // Authentication failed; set an error accordingly
+    form_set_error('name', bts('Sorry, unrecognized email address or password.', array(), NULL, 'boinc:forgot-password') . ' ' . l(bts('Have you forgotten your password?', array(), NULL, 'boinc:forgot-password'), 'user/password'));
+  }
+}
+
+/**
+ * Custom authentication function to check BOINC account information
+ */
+function boincuser_login_authenticate($form_values) {
+  global $boincuser_authenticated;
+  $email_addr = strtolower($form_values['email']);
+  $passwd = $form_values['pass'];
+  $passwd_hash = md5($passwd.$email_addr);
+  
+  // Include BOINC user library
+  require_boinc('boinc_db');
+  
+  // Get the BOINC user and check credentials
+  $boinc_user = BoincUser::lookup_email_addr($email_addr);
+  if (!$boinc_user) return false;
+  if ($passwd_hash != $boinc_user->passwd_hash) return false;
+  
+  // BOINC authentication successful; log in and synchronize accounts
+  boincuser_login_register($boinc_user);
+  // Write session, update timestamp, run user 'login' hook.
+  user_authenticate_finalize($form_values);
+  // Use a global variable to save the fact that we did authentication.
+  $boincuser_authenticated = true;
+  return true;
+}
+
+/**
+ * Allow pre-existing BOINC users to login and automatically create 
+ * Drupal accounts
+ */
+function boincuser_login_register($boinc_user) {
+  global $user;
+  require_boinc('boinc_db');
+  // If a Drupal account already exists, log in
+  $existing_user = user_load(array('mail' => $boinc_user->email_addr));
+  if (!empty($existing_user->uid)) {
+    $user = $existing_user;
+  } else {
+    // Create a Drupal user from the BOINC user
+    if ($user = boincuser_register_make_drupal_user($boinc_user)) {
+      watchdog('user', 'New external user: %email using module %module.', array('%email' => $email_addr, '%module' => $module), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
+    }
+  }
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Registration form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * New user registration validation handler.
+ */
+function boincuser_register_validate($form_values) {            
+  // Include BOINC database objects library
+  require_boinc('boinc_db');
+  // Check for an existing BOINC user
+  $boinc_user = BoincUser::lookup_email_addr($form_values['mail']);
+  if ($boinc_user) return false;
+  return true;
+}
+
+/**
+ * Create BOINC account
+ */
+function boincuser_register_make_user($params) {    
+  // Include BOINC user library
+  require_boinc('user');
+  // Create the BOINC user
+  $boinc_user = make_user($params['email_addr'], $params['name'], $params['passwd_hash'], $params['country'], $params['postal_code']);
+  return $boinc_user;
+}
+
+/**
+ * Create Drupal account from existing BOINC account
+ */
+function boincuser_register_make_drupal_user($boinc_user) {
+  $account = null;
+  if (is_numeric($boinc_user)) {
+    $boinc_user = boincuser_load($boinc_user);
+  }
+  if ($boinc_user) {
+    $account = boincuser_create_drupal_user($boinc_user);
+    if ($account) {
+      boincuser_create_drupal_profile($account, $boinc_user);
+    }
+  }
+  return $account;
+}
+
+function boincuser_create_drupal_user($boinc_user) {
+  require_boinc('forum_db');
+  BoincForumPrefs::lookup($boinc_user);
+  $account = NULL;
+  $module = 'boincuser';
+  
+  // Verify that this account has not already been imported
+  $already_imported = db_result(db_query('
+    SELECT COUNT(*) FROM {boincuser} WHERE boinc_id = %d',
+    $boinc_user->id)
+  );
+  if ($already_imported) {
+    return NULL;
+  }
+  
+  // Email is limited to 64 characters...
+  $boinc_email = substr($boinc_user->email_addr, 0, 64);
+  
+  // Email should be unique
+  $already_imported = db_result(db_query("
+    SELECT COUNT(*) FROM {users} WHERE mail = '%s'",
+    $boinc_email)
+  );
+  if ($already_imported) {
+    drupal_set_message(t('An account for @email already exists', array('@email' => $boinc_email)), 'warning');
+    watchdog('boincimport', 'An account for @email already exists', array('@email' => $boinc_email), WATCHDOG_WARNING); 
+    return NULL;
+  }
+  
+  // Make sure name is unique
+  $unique_name = find_unique_name($boinc_user->name);
+  
+  $userinfo = array(
+    'name' => $unique_name,
+    'pass' => $boinc_user->passwd_hash,
+    'mail' => $boinc_email,
+    'signature' => $boinc_user->prefs->signature,
+    'created' => $boinc_user->create_time,
+    'init' => $boinc_email,
+    'status' => 1,
+    "authname_{$module}" => $boinc_email,
+    'access' => time()
+  );
+  
+  $in_penalty = ($boinc_user->prefs->banished_until > time());
+  
+  // Add user to community member role (if no current penalty)
+  if (!$in_penalty) {
+    $community_role = array_search('community member', user_roles(true)); 
+    $userinfo['roles'] = array(
+      $community_role => ''
+    );
+  }
+  
+  // Mark account as imported so a BOINC account is not created on Insert (i.e. user_save)
+  $_SESSION['importedUser'] = true;
+  $account = user_save('', $userinfo);
+  
+  // Drupal overrides the original registration date, so update to the correct date
+  $account = user_save($account, array('created' => $userinfo['created']));
+  
+  // Terminate if an error occured during user_save().
+  if (!$account) {
+    drupal_set_message(t("Error saving user account."), 'error');
+    return NULL;
+  }
+  
+  // Cross reference the Drupal and BOINC accounts
+  boincuser_account_cross_reference($account->uid, $boinc_user->id);
+  
+  if ($in_penalty) {
+    // Import the timestamp of when the penalty period will be over
+    $boincuser_record = array(
+      'uid' => $account->uid,
+      'penalty_expiration' => $boinc_user->prefs->banished_until,
+    );
+    drupal_write_record('boincuser', $boincuser_record, 'uid');
+  }
+  
+  return $account;
+}
+
+function boincuser_create_drupal_profile($account, $boinc_user) {
+  
+  require_boinc('forum_db');
+  BoincForumPrefs::lookup($boinc_user);
+  
+  $image_dir = boinc_get_path('user_image');
+  
+  // Automatically create a content profile
+  $now = time();
+  $profile_background = null;
+  $profile_opinions = null;
+  $profile_image = null;
+  $avatar_image = null;
+  $profile_approved = NULL;
+  
+  // Load the BOINC profile, if available
+  if ($boinc_user->has_profile) {
+    $boinc_profile = BoincProfile::lookup("userid={$boinc_user->id}");
+    $profile_background = $boinc_profile->response1;
+    $profile_opinions = $boinc_profile->response2;
+    if ($boinc_profile->has_picture) {
+      // Load picture; load validators; determine where to store it in Drupal
+      $image_path = "{$image_dir}/{$boinc_user->id}.jpg";
+      $profile_image = get_cck_image_object($image_path, 'field_profile_image', 'profile', TRUE);
+      // If the user does not have a different image as an avatar, use this one
+      if (!$boinc_user->prefs->avatar) {
+        $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE);
+      }
+    }
+    if ($boinc_user->prefs->avatar) {
+      $image_path = "{$image_dir}/{$boinc_user->id}_avatar.jpg";
+      $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE);
+    }
+    $profile_approved = $boinc_profile->verification ? TRUE : FALSE;
+  }
+  $default_input_format = db_result(db_query("
+    SELECT format FROM {filter_formats} WHERE name = '%s'", 'Rich text'));
+  if (!$default_input_format) $default_input_format = 1;
+  
+  // Populate the profile object
+  $profile_node = new stdClass();
+  $profile_node->title = $boinc_user->name;
+  $profile_node->uid = $account->uid;
+  $profile_node->body = '';
+  $profile_node->type = 'profile'; 
+  $profile_node->created = $now;
+  $profile_node->changed = $now;
+  $profile_node->status = 1;
+  $profile_node->promote = 0;
+  $profile_node->sticky = 0;
+  $profile_node->format = $default_input_format;
+  $profile_node->name = $account->name; // Set to link profile to account uid!
+  $profile_node->field_country[]['value'] = $boinc_user->country;
+  $profile_node->field_zip[]['value'] = $boinc_user->postal_code;
+  $profile_node->field_url[]['value'] = $boinc_user->url;
+  $profile_node->field_background[]['value'] = $profile_background;
+  $profile_node->field_opinions[]['value'] = $profile_opinions;
+  $profile_node->field_image[] = $avatar_image;
+  $profile_node->field_profile_image[] = $profile_image;
+  
+  // Save the profile object to the database
+  // This will automatically set the author uid if node->name has been set
+  $profile_node = node_submit($profile_node);
+  node_save($profile_node);
+  
+  // Mark profile as approved if it has already been vetted somehow
+  if ($profile_approved OR !$boinc_user->has_profile) {
+    $profile_node->moderate = 0;
+    node_save($profile_node);
+  }
+  
+  return;
+}
+
+function boincuser_account_cross_reference($uid, $boinc_id) {
+    // Cross reference Drupal account with BOINC
+    $reference = db_query("INSERT INTO {boincuser} SET uid=%d, boinc_id=%d", $uid, $boinc_id);
+    if (!$reference) {
+      drupal_set_message(t("Error connecting BOINC account."), 'error');
+      return false;
+    }
+    return true;
+}
+
+/**
+ * Convert any BOINC forum thread subscriptions to Drupal flag subscriptions
+ */
+function boincuser_pull_subscriptions($account = NULL) {
+  if (!$account) {
+    global $user;
+    $account = user_load($user->id);
+  }
+  elseif (is_numeric($account)) {
+    $account = user_load($account);
+  }
+  
+  // Get any subscriptions for this user
+  db_set_active('boinc');
+  $subscriptions = db_query('
+    SELECT threadid FROM {subscriptions}
+    WHERE userid = %d', $account->boincuser_id);
+  db_set_active('default');
+  
+  $flag = flag_get_flag('subscriptions') or die('no "subscriptions" flag defined');
+  $count = 0;
+  while ($thread_id = db_result($subscriptions)) {
+    // For each BOINC thread ID subscribed, look up the corresponding node ID
+    $nid = db_result(db_query('
+      SELECT nid FROM {boincimport_temp_topic}
+      WHERE topic_id = %d', $thread_id));
+    // Flag this node for the user
+    if ($nid > 0) {
+      $flag->flag('flag', $nid, $account);
+      $count++;
+    }
+  }
+  return $count;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Account form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * User account update validation handler.
+ */
+function boincuser_account_validate($edit, $account) {
+  // Include BOINC database objects library, load BOINC account data
+  require_boinc('boinc_db');
+  $boinc_user = BoincUser::lookup_email_addr($account->mail);
+  $changing_email = ($edit['mail'] AND $edit['mail'] != $account->mail) ? true : false;
+  $changing_pass = ($edit['pass']) ? true : false;
+  if ($changing_email) {
+    // E-mail address is set to change; check for an existing BOINC user
+    $boinc_user_already_exists = BoincUser::lookup_email_addr($edit['mail']);
+    if ($boinc_user_already_exists) {
+      form_set_error('mail', bts('A BOINC account already exists for @email.', array('@email' => $edit['mail']), NULL, 'boinc:add-new-user'));
+    }
+  }
+
+  // If user is changing email or password, require that the current
+  // password has been given as well.
+  if (($changing_email OR $changing_pass) AND !user_access('administer users')) {
+    // If changing email or password, require current password
+    // (except in cases where password is being reset)
+    if (isset($_SESSION['reset_pass'])) {
+      unset($_SESSION['reset_pass']);
+    }
+    else {
+      $given_hash = md5($edit['current_pass'] . $account->mail);
+      if (!$edit['current_pass']) {
+        form_set_error('current_pass', bts('Authentication is required when changing E-mail address or setting new password.', array(), NULL, 'boinc:account-credentials-change'));
+      }
+      elseif ($given_hash != $boinc_user->passwd_hash) {
+        form_set_error('current_pass', bts('Password entered is not valid. Please verify that it is correct.', array(), NULL, 'boinc:account-credentials-change'));
+      }
+    }
+  }
+
+  // If an admin tries to change the email and NOT the password, show
+  // error message. BOINC requires both to be changed together.
+  if ($changing_email AND !$changing_pass AND user_access('administer users')) {
+    form_set_error('pass', bts('If changing a user\'s email, you must also change the password simultaneously.', array(), NULL, 'boinc:account-credentials-change'));
+  }
+  
+  // Expansion required to allow account key in place of passwd...?
+  
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Request new password form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Password request validation handler.
+ */
+function boincuser_request_pass_validate($form, &$form_state) {
+  $edit = $form_state['values'];
+  // The Drupal submit function expects a "name" field, even though
+  // it contains an email address and we will not allow a user name
+  if (!$edit['name']) form_set_error('name', bts('Please enter your email address', array(), NULL, 'boinc:forgot-password'));
+  elseif (!valid_email_address($edit['name'])) form_set_error('name', bts('@email is not a well formed email address, please verify', array('@email' => $edit['name']), NULL, 'boinc:forgot-password'));
+  else {
+    // First look for an existing Drupal account
+    if ($account = user_load_by_mail($edit['name'])) return;
+    // Otherwise, check the BOINC db for this email address
+    require_boinc('boinc_db');
+    $boinc_user = BoincUser::lookup_email_addr($edit['name']);
+    if ($boinc_user) {
+      // If the user is in BOINC but not Drupal, bring them over...
+      boincuser_register_make_drupal_user($boinc_user);
+    } else {
+      // If there is no existing BOINC user either, show an error
+      form_set_error('name', bts('No account exists for @email -- please create an account using a BOINC client -- !instructions',
+      array(
+          '@email' => $edit['name'],
+          '!instructions' => l(bts('Instructions', array(), NULL, 'boinc:forgot-password'), 'join')
+      ), NULL, 'boinc:forgot-password'));
+    }
+  }
+}
+
+/**
+ * The definition of the authenticator login form.
+ */
+function boincuser_authloginform() {
+  $headers = apache_request_headers();
+  $project_name = variable_get('site_name', 'Drupal-BOINC');
+  $project_domain = $headers['Host'];
+  $form['heading'] = array(
+    '#type' => 'markup',
+    '#value' => '<h3>' . bts("If you forgot your account's email address, or you can't receive email there:", array(), NULL, 'boinc:authenticator-login-page') . '</h3>'
+  );
+  $form['instructions'] = array(
+    '#type' => 'markup',
+    '#value' => '' .
+      '<p>' . bts("If you have run BOINC under the account, you can still access it. Here's how:", array(), NULL, 'boinc:authenticator-login-page') .
+      '  <ul>' .
+      '    <li>' . bts('Go to the BOINC data directory on your computer (see !boinc_wiki for help finding this).', array('!boinc_wiki' => l(bts('BOINC documentation', array(), NULL, 'boinc:authenticator-login-page'), 'http://boinc.berkeley.edu/wiki/BOINC_Data_directory')), NULL, 'boinc:authenticator-login-page') . '</li>' .
+      '    <li>' . bts('Find your account file for this project; it will have a name like %file (where the project URL is %url).', array('%file' => "account_{$project_domain}.xml", '%url' => "http://{$project_domain}"), NULL, 'boinc:authenticator-login-page') . '</li>' .
+      '    <li>' . bts("Open the file in a text editor like Notepad. You'll see something like:", array(), NULL, 'boinc:authenticator-login-page') .
+      '      <pre>' .
+      '<account>' . "\n" .
+      "  <master_url>http://{$project_domain}/</master_url>" . "\n" .
+      '  <authenticator>8b8496fdd26df7dc0423ecd43c09a56b</authenticator>' . "\n" .
+      "  <project_name>{$project_name}</project_name>" . "\n" .
+      '  ...' . "\n" .
+      '</account>' .
+      '      </pre>' .
+      '    </li>' .
+      '    <li>' . bts('Select and Copy the string between <authenticator> and </authenticator> (%auth in the above example).', array('%auth' => '8b8496fdd26df7dc0423ecd43c09a56b'), NULL, 'boinc:authenticator-login-page') . '</li>' .
+      '    <li>' . bts('Paste the string into the field below, and click OK.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' .
+      '    <li>' . bts('You will now be logged in to your account; update the email and password of your account.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' .
+      '  </ul>' .
+      '</p>'
+  );
+  $form['authenticator'] = array(
+    '#title' => bts('Log in with authenticator', array(), NULL, 'boinc:authenticator-login-page'),
+    '#type' => 'textfield',
+    '#size' => 60,
+    '#maxlength' => 32,
+    '#required' => TRUE,
+    '#description' => null
+  );
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">',
+    '#weight' => 1001,
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('OK', array(), NULL, 'boinc:form-ok'),
+    '#suffix' => '</li>',
+    '#weight' => 1002,
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/password') . '</li>',
+    '#weight' => 1003,
+  );
+  $form['form control tabs suffix'] = array(
+    '#value' => '</ul>',
+    '#weight' => 1004,
+  );
+  return $form;
+}
+
+/**
+ * The authenticator login validation handler
+ */
+function boincuser_authloginform_validate($form, &$form_state) {
+  $authenticator = $form_state['values']['authenticator'];
+  if (strlen($authenticator) != 32) {
+    // We notify the form API that this field has failed validation.
+    form_set_error('authenticator', bts('That authenticator is not valid.', array(), NULL, 'boinc:authenticator-login-page'));
+  } else {
+    require_boinc('boinc_db');
+    $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'");
+    if (!$boinc_user) form_set_error('authenticator', bts('There is no account with that authenticator.', array(), NULL, 'boinc:authenticator-login-page'));
+  }
+}
+
+/**
+ * The authenticator login submit handler
+ */
+function boincuser_authloginform_submit($form, &$form_state) {
+  global $user;
+  $authenticator = $form_state['values']['authenticator'];
+  require_boinc('boinc_db');
+  $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'");
+  if (!$user = user_load(get_drupal_id($boinc_user->id))) drupal_set_message(t('An unresolved error occurred while logging into this account.'));
+  else $form_state['redirect'] = 'account/info/edit';
+}
+
+
+/**
+ * The definition of the moderator reject user profile form.
+ */
+function boincuser_moderate_profile_reject_form(&$form_state, $uid) {
+  $form_state['storage']['reject_profile_uid'] = $uid;
+  $form['reason'] = array(
+    '#title' => bts('Reason for rejecting this profile', array(), NULL, 'boinc:moderate-user'),
+    '#type' => 'textarea',
+    '#description' => bts('This reason will be included in an email to the user. Please write a brief explanation of the problem and how to fix it.', array(), NULL, 'boinc:moderate-user'),
+    '#default_value' => '',
+  );
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">',
+    '#weight' => 1001,
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'),
+    '#suffix' => '</li>',
+    '#weight' => 1002,
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/{$uid}") . '</li>',
+    '#weight' => 1003,
+  );
+  $form['form control tabs suffix'] = array(
+    '#value' => '</ul>',
+    '#weight' => 1004,
+  );
+  return $form;
+}
+
+/**
+ * The moderator reject user profile submit handler
+ */
+function boincuser_moderate_profile_reject_form_submit($form, &$form_state) {
+  $uid = $form_state['storage']['reject_profile_uid'];
+  $reason = $form_state['values']['reason'];
+  boincuser_moderate_profile_reject($uid, $reason);
+}
+
+
+/**
+ * The definition of the ban user form.
+ */
+function boincuser_moderate_user_ban_form(&$form_state, $uid) {
+  $form_state['storage']['ban_user_uid'] = $uid;
+  $form['reason'] = array(
+    '#title' => bts('Reason for banning this user', array(), NULL, 'boinc:moderate-user'),
+    '#type' => 'textarea',
+    '#description' => bts('This reason will be included in an email to the user. Please write a brief explanation of why the user is being banned.', array(), NULL, 'boinc:moderate-user'),
+    '#default_value' => '',
+  );
+  $form['duration'] = array(
+    '#title' => bts('Duration of the ban', array(), NULL, 'boinc:moderate-user'),
+    '#type' => 'textfield',
+    '#description' => bts('The number of days until the ban expires. Set to 0 to ban permanently.', array(), NULL, 'boinc:moderate-user'),
+    '#default_value' => '',
+  );
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">',
+    '#weight' => 1001,
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'),
+    '#suffix' => '</li>',
+    '#weight' => 1002,
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/{$uid}") . '</li>',
+    '#weight' => 1003,
+  );
+  $form['form control tabs suffix'] = array(
+    '#value' => '</ul>',
+    '#weight' => 1004,
+  );
+  return $form;
+}
+
+/**
+ * The ban user submit handler
+ */
+function boincuser_moderate_user_ban_form_submit($form, &$form_state) {
+  $uid = $form_state['storage']['ban_user_uid'];
+  $reason = $form_state['values']['reason'];
+  $duration = $form_state['values']['duration'];
+  if ($duration) $duration = $duration * 24*60*60;
+  boincuser_moderate_user_ban($uid, $reason, $duration);
+}
+
+
+/**
+ * Hack to fix submission of the flag friend unfriend form
+ */
+function boincuser_fix_unfriend_form_submit($form, &$form_state) {
+  // Leaving action as "unfriend" causes problems
+  if ($form_state['values']['action'] == 'unfriend') {
+    $form_state['values']['action'] = 'unflag';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincuser/includes/boincuser.helpers.inc b/drupal/sites/default/boinc/modules/boincuser/includes/boincuser.helpers.inc
new file mode 100644
index 0000000..6b48648
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/includes/boincuser.helpers.inc
@@ -0,0 +1,404 @@
+<?php
+// $Id$
+
+/**
+ * Functions that are shared amongst files and dependent modules go
+ * here to keep the clutter down in the main module file.
+ */ 
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Drupal 7 forward compatibility functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+if (!function_exists('user_load_by_mail')) {
+  /**
+   * user_load_by_mail will be broken out of user_load
+   */
+  function user_load_by_mail($mail) {
+    return user_load(array('mail' => $mail));
+  }
+}
+ 
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * General utility functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Get an image object from a given file and cck field
+ */ 
+function get_cck_image_object($image_path, $field_name, $content_type, $ignore_resolution = FALSE) {
+  $field = content_fields($field_name, $content_type); 
+  $validators = array_merge(filefield_widget_upload_validators($field), imagefield_widget_upload_validators($field));
+  if ($ignore_resolution) {
+    unset($validators['filefield_validate_image_resolution']);
+  }
+  $target_path = filefield_widget_file_path($field);
+  // Create the image object
+  return field_file_save_file($image_path, $validators, $target_path, FILE_EXISTS_REPLACE);
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * General user functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * 
+ */
+function boincuser_check_credit_requirements() {
+  global $user;
+  if (!$user->uid) {
+    return FALSE;
+  }
+  $account = user_load($user->uid);
+  $min_credit_to_post = variable_get('boinc_comment_min_credit', 0);
+  $community_role = array_search('community member', user_roles(true));
+  $unrestricted_role = array_search('verified contributor', user_roles(true));
+  
+  // Set user roles based on current penalty status and total credit
+  if ($account->boincuser_penalty_expiration > time()) {
+    drupal_set_message(bts(
+      'You are banned from community participation until @date',
+      array('@date' => format_date($account->boincuser_penalty_expiration))
+    ), 'warning', FALSE);
+    if (isset($account->roles[$community_role])) {
+      // Remove from the community role, if not already
+      unset($account->roles[$community_role]);
+    }
+    if (isset($account->roles[$unrestricted_role])) {
+      // Likewise, revoke extra privileges
+      unset($account->roles[$unrestricted_role]);
+    }
+    user_save($account, array('roles' => $account->roles));
+  }
+  elseif ($account->boincuser_total_credit >= $min_credit_to_post) {
+    if (!isset($account->roles[$unrestricted_role])) {
+      // This user is now above the credit threshold and is allowed full
+      // privileges
+      $account->roles[$unrestricted_role] = 'verified contributor';
+      user_save($account, array('roles' => $account->roles));
+    }
+  }
+  else {
+    drupal_set_message(bts(
+      'You must earn @count more credits to be able to post comments on this site.',
+      array('@count' => $min_credit_to_post - $account->boincuser_total_credit)
+    ), 'warning', FALSE);
+    if (isset($account->roles[$unrestricted_role])) {
+      // Either the threshold has been raised or credits have been revoked;
+      // this user no longer qualifies for full privileges
+      unset($account->roles[$unrestricted_role]);
+      user_save($account, array('roles' => $account->roles));
+    }
+  }
+}
+
+/**
+ * Get the cid of the first comment the user has not seen on a given node
+ */
+function boincuser_get_first_unread_comment_id($nid, $uid = NULL) {
+  if (!$uid) {
+    global $user;
+    $uid = $user->uid;
+  }
+  return db_result(db_query("
+    SELECT c.cid
+    FROM {node} n
+    INNER JOIN {comments} c ON c.nid = n.nid
+    LEFT JOIN {history} h ON n.nid = h.nid AND h.uid = %d
+    WHERE n.nid = %d
+    AND n.status = 1
+    AND c.timestamp > h.timestamp
+    ORDER BY c.timestamp ASC
+    LIMIT 1",
+    $uid, $nid
+  ));
+}
+
+/**
+ * Choose and set the user of the day
+ */
+function boincuser_select_user_of_the_day() {
+  // First get a list of users with recent credit
+  db_set_active('boinc');
+  $users_with_credit = db_query("
+    SELECT
+      id
+    FROM {user} u
+    JOIN {profile} p ON p.userid = u.id
+    WHERE expavg_credit > 1
+    ORDER BY uotd_time ASC, RAND()"
+  );
+  db_set_active('default');
+  $active_users = array();
+  while ($user_with_credit = db_fetch_object($users_with_credit)) {
+    $active_users[] = $user_with_credit->id;
+  }
+  $active_users = implode(',', $active_users);
+  // Limit to users who have never been user of the day, if there are any
+  $never_been_picked = db_result(db_query("
+    SELECT COUNT(*)
+    FROM {boincuser} bu
+    WHERE bu.uotd_time = 0
+    " . ($active_users ? " AND bu.boinc_id IN ({$active_users}) " : '')
+  ));
+  $new_uotd_uid = 0;
+  while (!$new_uotd_uid) {
+    // Select a user of the day randomly from the pool
+      $new_uotd_uid = db_result(db_query("
+      SELECT
+        n.uid
+      FROM {node} n
+      JOIN {boincuser} bu ON bu.uid = n.uid
+      WHERE n.type = 'profile'
+      AND n.status = 1
+      AND n.moderate = 0
+      " . ($never_been_picked ? " AND bu.uotd_time = 0 " : '') . "
+      " . ($active_users ? " AND bu.boinc_id IN ({$active_users}) " : '') . "
+      ORDER BY RAND()
+      LIMIT 1"
+    ));
+    if (!$new_uotd_uid) {
+      // Can't find a user with a profile; remove constraints on the pool
+      if ($never_been_picked) {
+        // Allow users who have been previously selected
+        $never_been_picked = FALSE;
+      }
+      elseif ($active_users) {
+        // Allow users who are not even active (getting desperate)
+        $active_users = FALSE;
+      }
+      else {
+        // Process failed...
+        return FALSE;
+      }
+    }
+  }
+  $uotd = user_load($new_uotd_uid);
+  if ($uotd->uid) {
+    db_query("
+      UPDATE {boincuser}
+      SET uotd_time = '%d'
+      WHERE uid = '%d'",
+      time(), $uotd->uid
+    );
+  }
+  return $uotd;
+}
+
+/**
+ * Determine the first unique name from a given base
+ */
+function find_unique_name($requested_name) {
+  if (!$requested_name) {
+    // If the name is empty, set it
+    $requested_name = 'anonymous';
+  }
+  $same_name_tally = 1;
+  $cleaned_name = preg_replace('/[^a-zA-Z0-9_ \.-]/s', '_', $requested_name);
+  $name_length = strlen($cleaned_name);
+  if ($name_length > 56) {
+    // Name is limited to 60 characters, but we want to leave space to add a
+    // tally if needed (for users with duplicate names); Limit to 56 chars and
+    // replace the middle of the string with "..." if too long
+    $cleaned_name = substr_replace($cleaned_name, '...', 28, ($name_length-56)+3);
+  }
+  $unique_name = $cleaned_name;
+  while (db_result(db_query("SELECT uid FROM {users} WHERE name = '{$unique_name}' LIMIT 1"))) {
+    $same_name_tally++;
+    $unique_name = "{$cleaned_name}_{$same_name_tally}";
+  }
+  return $unique_name;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * General BOINC functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Require BOINC library
+ */
+function require_boinc($libraries) {
+  if ($include_dir = boinc_get_path('html_inc')) {
+    $working_dir = getcwd();
+    chdir($include_dir);
+    if (!is_array($libraries)) {
+      $libraries = array($libraries);
+    }
+    foreach ($libraries as $library) {
+      require_once("{$library}.inc");
+    }
+    chdir($working_dir);
+  }
+}
+
+/**
+ * Include BOINC code
+ * The path from the BOINC html root must be included (e.g. user/file.php)
+ */
+function include_boinc($file) {
+  if ($include_dir = boinc_get_path()) {
+    $include_dir .= '/html';
+    $workingDir = getcwd();
+    $path = dirname($file);
+    $file = basename($file);
+    chdir("{$include_dir}/{$path}");
+    include($file);
+    chdir($workingDir);
+  }
+}
+
+/**
+ * Get the BOINC include path
+ */
+function boinc_get_path($type = 'root') {
+  $dir = "boinc_{$type}_dir";
+  if ($include_dir = variable_get("boinc_{$type}_dir", '')) {
+    return $include_dir;
+  }
+  else {
+    // Don't show errors on blacklisted pages
+    $page_blacklist = array(
+      'admin/boinc/environment'
+    );
+    if (!in_array($_GET['q'], $page_blacklist)) {
+      watchdog('boincuser', 'The BOINC environment is not configured. Please
+          !configure_it', array('!configure_it' => l(t('configure it now'),
+            'admin/boinc/environment')), WATCHDOG_WARNING);
+      if (user_access('administer site configuration')) {
+        drupal_set_message(t('The BOINC environment is not configured. Please
+          !configure_it', array('!configure_it' => l(t('configure it now'),
+            'admin/boinc/environment'))), 'warning', FALSE);
+      }
+      else {
+        drupal_set_message(t('There is a problem with the site. Please contact
+          the system administrator.'), 'error', FALSE);
+      }
+      // Redirect home to display the error message and avoid fatal errors
+      // (unless on a blacklisted page)
+      $redirect_blacklist = array(
+        'admin/settings/performance',
+        'admin/boinc/environment',
+        'home',
+        ''
+      );
+      if (!in_array($_GET['q'], $redirect_blacklist)) {
+        drupal_goto('');
+      }
+    }
+    else {
+      // Clear the messages on the environment config page
+      drupal_get_messages();
+    }
+  }
+  return FALSE;
+}
+
+/**
+ * Get the configured scheduler tags
+ */
+function boinc_get_scheduler_tags() {
+  // Don't generate messages for blacklisted pages
+  $page_blacklist = array(
+    'admin/boinc/environment',
+    'admin/boinc/scheduler'
+  );
+  if ($url_config = variable_get('boinc_scheduler_urls', '')) {
+    return explode("\r\n", $url_config);
+  }
+  elseif (!in_array($_GET['q'], $page_blacklist)) {
+    watchdog('boincuser', 'The BOINC scheduling server settings are not yet
+        configured. Please !verify for the settings to become effective.',
+          array('!verify' => l(t('verify the default values') . ' <strong>' . 
+            t('and') . '</strong> ' . t('save the configuration'),
+            'admin/boinc/scheduler', array('html' => TRUE))
+          ), WATCHDOG_WARNING);
+    if (user_access('administer site configuration')) {
+      drupal_set_message(t('The BOINC scheduling server settings are not yet
+          configured. Please !verify for the settings to become effective',
+            array('!verify' => l(t('verify the default values') . ' <strong>' . 
+              t('and') . '</strong> ' . t('save the configuration'),
+              'admin/boinc/scheduler', array('html' => TRUE))
+            )), 'warning', FALSE);
+    }
+  }
+  return array();
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * BOINC user account functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Test if logged in user
+ * Determine if a BOINC ID matches the logged in user
+ */
+function is_current_boinc_user($boinc_id) {
+  global $user;
+  if (!$user->uid) {
+    return FALSE;
+  }
+  // boincuser_id is not stored in the global user, so load a new instance
+  $drupuser = user_load($user->uid);
+  return ($boinc_id == $drupuser->boincuser_id);
+}
+
+/**
+ * Convert a BOINC ID to a Drupal ID
+ */
+function boincuser_lookup_uid($boinc_id) {
+  $drupal_id = db_result(db_query("SELECT uid FROM {boincuser} WHERE boinc_id='%d'", $boinc_id));
+  return $drupal_id;
+}
+function get_drupal_id($boinc_id) {
+  return boincuser_lookup_uid($boinc_id);
+}
+
+/**
+ * Get a BOINC user object
+ */
+function boincuser_load($user_id = NULL, $is_drupal_id = FALSE) {
+  if (!$user_id) {
+    global $user;
+    $user_id = $user->uid;
+    $is_drupal_id = TRUE;
+  }
+  if ($is_drupal_id) {
+    $account = user_load($user_id);
+    $user_id = $account->boincuser_id;
+  }
+  require_boinc('boinc_db');
+  return BoincUser::lookup_id($user_id);
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * BOINC function wrappers
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Wrapper for boinc_version() function
+ */
+function get_boinc_version($x) {
+  require_boinc('host');
+  return function_exists('boinc_version') ? boinc_version($x) : 'err!';
+}
+  
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Functions for use in displaying special case text in views
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+  * Generate the friend block header
+  */
+function boincuser_views_friends_block_header($context = null) {
+  // Get the friend count for the user being viewed
+  $view = views_get_current_view();
+  $account_id = $view->args[0];
+  $friend_count = flag_friend_get_friend_count($account_id);
+  return '<h2 class="pane-title">' . bts('Friends (@count)', 
+    array('@count' => $friend_count)) . '</h2>';
+}
diff --git a/drupal/sites/default/boinc/modules/boincuser/views/views_handler_argument_boincteam_id.inc b/drupal/sites/default/boinc/modules/boincuser/views/views_handler_argument_boincteam_id.inc
new file mode 100644
index 0000000..5f014af
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/views/views_handler_argument_boincteam_id.inc
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * views_handler_argument_boincteam_id: This handler is used to convert
+ * the Drupal node ID passed as a URL argument into a BOINC team ID
+ * for accessing data in the BOINC database.
+ */
+
+class views_handler_argument_boincteam_id extends views_handler_argument_numeric {
+  function construct() {
+    parent::construct();
+  }
+
+  function set_argument($arg) {
+    // When setting the ID argument, convert to BOINC ID
+    $id = is_numeric($arg) ? $arg : 0;
+    $boinc_id = db_result(db_query("SELECT team_id FROM {boincteam} WHERE nid = %d", $id));
+    $this->argument = $boinc_id;
+    return $this->validate_arg($boinc_id);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincuser/views/views_handler_argument_boincuser_id.inc b/drupal/sites/default/boinc/modules/boincuser/views/views_handler_argument_boincuser_id.inc
new file mode 100644
index 0000000..0cda578
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincuser/views/views_handler_argument_boincuser_id.inc
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * views_handler_argument_boincuser_id: This handler is used to convert
+ * the Drupal user ID passed as a URL argument into a BOINC user ID
+ * for accessing data in the BOINC database.
+ */
+
+class views_handler_argument_boincuser_id extends views_handler_argument_numeric {
+  function construct() {
+    parent::construct();
+  }
+
+  function set_argument($arg) {
+    // When setting the ID argument, convert to BOINC ID
+    $id = is_numeric($arg) ? $arg : 0;
+    $boinc_id = db_result(db_query("SELECT boinc_id FROM {boincuser} WHERE uid = %d", $id));
+    $this->argument = $boinc_id;
+    return $this->validate_arg($boinc_id);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincwork/boincwork.admin.inc b/drupal/sites/default/boinc/modules/boincwork/boincwork.admin.inc
new file mode 100644
index 0000000..eee4f7d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/boincwork.admin.inc
@@ -0,0 +1,304 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Administration page callbacks for the boincwork module.
+ */
+
+/**
+ * Allow configuration of general options for preference pages
+ */
+function boincwork_admin_prefs_options_form(&$form_state) {
+  $form = array(); 
+  $form['beta'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Allow users to opt in to test beta applications'),
+    '#default_value' => variable_get('boinc_prefs_options_beta', 0),
+    '#required' => TRUE
+  );
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Submit')
+  );
+  // Add the official mechanical things and return
+  //drupal_prepare_form('boincwork_admin_prefs_upload_form', $form, $form_state);
+  return $form;
+} 
+
+/**
+  * Handle validation of preference general settings form.
+  */
+function boincwork_admin_prefs_options_form_validate($form, &$form_state) {
+}
+
+/**
+  * Handle submission of preference general settings form.
+  */
+function boincwork_admin_prefs_options_form_submit($form, &$form_state) {
+  variable_set('boinc_prefs_options_beta', $form_state['values']['beta']);
+  drupal_set_message('Preference options have been updated.');
+}
+
+/**
+ * 
+ */
+function boincwork_admin_prefs_upload_form(&$form_state) {
+  $form = array(); 
+  $form['prefs_xml'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Project specific preferences XML'),
+    '#default_value' => variable_get('boinc_project_specific_prefs_config', "<project_specific_preferences>\n\n</project_specific_preferences>"),
+    '#required' => TRUE
+  );
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Submit')
+  );
+  // Add the official mechanical things and return
+  //drupal_prepare_form('boincwork_admin_prefs_upload_form', $form, $form_state);
+  return $form;
+} 
+
+/**
+  * Handle validation of preference upload form.
+  */
+function boincwork_admin_prefs_upload_form_validate($form, &$form_state) {
+  
+  $xsd = './' . drupal_get_path('module', 'boincwork') . '/includes/projectprefs.xsd';
+  libxml_use_internal_errors(true);
+  $xml = new DomDocument();
+  $xml->loadXML($form_state['values']['prefs_xml'], LIBXML_NOBLANKS);
+  if (!$xml->schemaValidate($xsd)) {
+    $errors = libxml_get_errors();
+    $lines = explode("\r", $form_state['values']['prefs_xml']);
+    drupal_set_message("{$errors[0]->message} at line {$errors[0]->line}" .
+      ': <br/>' . htmlentities($lines[$errors[0]->line - 1]), 'error');
+    form_set_error('upload', t('XML file failed validation'));
+  }
+}
+
+/**
+  * Handle submission of preference upload form.
+  */
+function boincwork_admin_prefs_upload_form_submit($form, &$form_state) {
+  variable_set('boinc_project_specific_prefs_config', $form_state['values']['prefs_xml']);
+  drupal_set_message('The XML has been validated and any changes to
+      preferences are now in place.');
+}
+
+/**
+ * 
+ */
+function boincwork_admin_prefs_presets_page($preset = 'standard') {
+  // Configure preference presets
+  if (function_exists('jump_quickly')) {
+    $path = 'admin/boinc/prefs/presets';
+    $preset_options = array(
+      "{$path}/standard" => t('Standard'),
+      "{$path}/maximum" => t('Maximum'),
+      "{$path}/green" => t('Green'),
+      "{$path}/minimum" => t('Minimum')
+    );
+    variable_set('jump_use_js_presets-Array', 1);
+    drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js');
+    $output .= '<div class="simple-form-controls"><div class="form-item venue">';
+    $output .= '<label>Preset:</label>';
+    $output .= jump_quickly($preset_options, 'presets');
+    $output .= '</div></div>';
+  }
+  $output .= drupal_get_form('boincwork_admin_prefs_presets_form', $preset);
+
+  $output .= '<div>';
+  $output .= bts('Usage: \'Save configuration\' will save the above preferences into the drupal database. These will be the preset computing (global) preferences that will fill in the preferences form once a user loads the Account Preferences page.', array(), NULL, 'boinc:admin-boinc-preference-presets');
+  $output .= '<p>';
+  $output .= bts('\'Save configuration with disk usage settings from config.xml\' will save the above preferences into the drupal database, but also load disk usage settings from the BOINC project\'s config.xml file. These will overwrite any disk usage settings you have placed above. Caution: A user\'s personal preferences will not change if you load the disk usage settings from config.xml here into the drupal database. They must change their preference settings manually.', array(), NULL [...]
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+ * 
+ */
+function boincwork_admin_prefs_presets_form(&$form_state, $preset = 'standard') {
+
+  // Check database for preset prefs
+  if (!variable_get('boincwork_preset_prefs', null))
+    drupal_set_message(bts('No presets found in database, loading a default set of preferences for each preset. These will be saved to the database once you click \'Save configuration\'.', array(), NULL, 'boinc:admin-boinc-preference-presets'), 'status');
+
+  // Load a copy of the general prefs form
+  $form = boincwork_generalprefs_form($form_state, NULL, $preset);
+  if ($key = array_search('boincwork_generalprefs_form_submit', $form['#submit'])) {
+    unset($form['#submit'][$key]);
+  }
+  $form['#submit'][] = 'boincwork_admin_prefs_presets_form_submit';
+  
+  // Just keep the necessary items
+  $form['processor'] = $form['prefs']['advanced']['processor'];
+  $form['storage'] = $form['prefs']['advanced']['storage'];
+  $form['network'] = $form['prefs']['advanced']['network'];
+  unset($form['prefs']);
+  
+  // Tweak some things so it behaves a little better
+  $form['#tree'] = TRUE;
+  $form['processor']['#collapsible'] = TRUE;
+  $form['storage']['#collapsible'] = TRUE;
+  $form['network']['#collapsible'] = TRUE;
+  
+  // Add a submit button and a hidden field to pass the preset
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save configuration')
+  );
+  $form['saveuseconfigxml'] = array (
+      '#type' => 'submit',
+      '#value' => t('Save configuration with disk usage settings from config.xml'),
+      '#validate' => array('boincwork_admin_prefs_preset_saveuseconfigxml'),
+  );
+  $form['preset'] = array(
+    '#type' => 'hidden',
+    '#value' => $preset
+  );
+  
+  // Add the official mechanical things and return
+  drupal_prepare_form('boincwork_admin_prefs_presets_form', $form, $form_state);
+  return $form;
+}
+
+/**
+  * Validate the preference presets form.
+  */
+function boincwork_admin_prefs_presets_form_validate($form, &$form_state) {
+  require_boinc('util');
+  $values = $form_state['values'];
+  
+  // Verify all non-boolean user input values and notify form API of failures
+  
+  // Processing preferences
+  if (!verify_numeric($values['processor']['idle_time_to_run'], 1, 9999)) form_set_error('idle_time_to_run', t('Invalid setting for') . " \"{$form['processor']['idle_time_to_run']['#title']} [x] {$form['processor']['idle_time_to_run']['#field_suffix']}\"");
+  if (!verify_numeric($values['processor']['suspend_if_no_recent_input'], 0, 9999)) form_set_error('suspend_if_no_recent_input', t('Invalid setting for') . " \"{$form['processor']['suspend_if_no_recent_input']['#title']} [x] {$form['processor']['suspend_if_no_recent_input']['#field_suffix']}\"");
+  if (!verify_numeric($values['processor']['suspend_cpu_usage'], 0, 100)) form_set_error('suspend_cpu_usage', t('Invalid setting for') . " \"{$form['processor']['suspend_cpu_usage']['#title']} [x] {$form['processor']['suspend_cpu_usage']['#field_suffix']}\"");
+  if (!verify_numeric($values['processor']['start_hour'], 0, 23)) form_set_error('start_hour', t('Invalid setting for') . " \"{$form['processor']['start_hour']['#title']} [x] {$form['processor']['start_hour']['#field_suffix']}\"");
+  if (!verify_numeric($values['processor']['end_hour'], 0, 23)) form_set_error('end_hour', t('Invalid setting for') . " \"{$form['processor']['end_hour']['#title']} [x] {$form['processor']['end_hour']['#field_suffix']}\"");
+  if (!verify_numeric($values['processor']['cpu_scheduling_period_minutes'], 1, 9999)) form_set_error('cpu_scheduling_period_minutes', t('Invalid setting for') . " \"{$form['processor']['cpu_scheduling_period_minutes']['#title']} [x] {$form['processor']['cpu_scheduling_period_minutes']['#field_suffix']}\"");
+  if (!verify_numeric($values['processor']['max_ncpus_pct'], 0, 100)) form_set_error('max_ncpus_pct', t('Invalid setting for') . " \"{$form['processor']['max_ncpus_pct']['#title']} [x] {$form['processor']['max_ncpus_pct']['#field_suffix']}\"");
+  if (!verify_numeric($values['processor']['cpu_usage_limit'], 0, 100)) form_set_error('cpu_usage_limit', t('Invalid setting for') . " \"{$form['processor']['cpu_usage_limit']['#title']} [x] {$form['processor']['cpu_usage_limit']['#field_suffix']}\"");
+
+  // Storage preferences
+  if (!verify_numeric($values['storage']['disk_max_used_gb'], 0, 9999999)) form_set_error('disk_max_used_gb', t('Invalid setting for') . " \"{$form['storage']['disk_max_used_gb']['#title']} [x] {$form['storage']['disk_max_used_gb']['#field_suffix']}\"");
+  if (!verify_numeric($values['storage']['disk_min_free_gb'], 0.001, 9999999)) form_set_error('disk_min_free_gb', t('Invalid setting for') . " \"{$form['storage']['disk_min_free_gb']['#title']} [x] {$form['storage']['disk_min_free_gb']['#field_suffix']}\"");
+  if (!verify_numeric($values['storage']['disk_max_used_pct'], 0, 100)) form_set_error('disk_max_used_pct', t('Invalid setting for') . " \"{$form['storage']['disk_max_used_pct']['#title']} [x] {$form['storage']['disk_max_used_pct']['#field_suffix']}\"");
+  if (!verify_numeric($values['storage']['disk_interval'], 0, 9999999)) form_set_error('disk_interval', t('Invalid setting for') . " \"{$form['storage']['disk_interval']['#title']} [x] {$form['storage']['disk_interval']['#field_suffix']}\"");
+  if (!verify_numeric($values['storage']['vm_max_used_pct'], 0, 100)) form_set_error('vm_max_used_pct', t('Invalid setting for') . " \"{$form['storage']['vm_max_used_pct']['#title']} [x] {$form['storage']['vm_max_used_pct']['#field_suffix']}\"");
+  if (!verify_numeric($values['storage']['ram_max_used_busy_pct'], 0, 100)) form_set_error('ram_max_used_busy_pct', t('Invalid setting for') . " \"{$form['storage']['ram_max_used_busy_pct']['#title']} [x] {$form['storage']['ram_max_used_busy_pct']['#field_suffix']}\"");
+  if (!verify_numeric($values['storage']['ram_max_used_idle_pct'], 0, 100)) form_set_error('ram_max_used_idle_pct', t('Invalid setting for') . " \"{$form['storage']['ram_max_used_idle_pct']['#title']} [x] {$form['storage']['ram_max_used_idle_pct']['#field_suffix']}\"");
+
+  // Network preferences
+  if (!verify_numeric($values['network']['work_buf_min_days'], 0, 10)) form_set_error('work_buf_min_days', t('Invalid setting for') . " \"{$form['network']['work_buf_min_days']['#title']} [x] {$form['network']['work_buf_min_days']['#field_suffix']}\"");
+  if (!verify_numeric($values['network']['work_buf_additional_days'], 0, 10)) form_set_error('work_buf_additional_days', t('Invalid setting for') . " \"{$form['network']['work_buf_additional_days']['#title']} [x] {$form['network']['work_buf_additional_days']['#field_suffix']}\"");
+  if (!verify_numeric($values['network']['max_bytes_sec_down'], 0, 9999.999)) form_set_error('max_bytes_sec_down', t('Invalid setting for') . " \"{$form['network']['max_bytes_sec_down']['#title']} [x] {$form['network']['max_bytes_sec_down']['#field_suffix']}\"");
+  if (!verify_numeric($values['network']['max_bytes_sec_up'], 0, 9999.999)) form_set_error('max_bytes_sec_up', t('Invalid setting for') . " \"{$form['network']['max_bytes_sec_up']['#title']} [x] {$form['network']['max_bytes_sec_up']['#field_suffix']}\"");
+  if (!verify_numeric($values['network']['net_start_hour'], 0, 23)) form_set_error('net_start_hour', t('Invalid setting for') . " \"{$form['network']['net_start_hour']['#title']} [x] {$form['network']['net_start_hour']['#field_suffix']}\"");
+  if (!verify_numeric($values['network']['net_end_hour'], 0, 23)) form_set_error('net_end_hour', t('Invalid setting for') . " \"{$form['network']['net_end_hour']['#title']} [x] {$form['network']['net_end_hour']['#field_suffix']}\"");
+  if (!verify_numeric($values['network']['daily_xfer_limit_mb'], 0, 9999999)) form_set_error('daily_xfer_limit_mb', t('Invalid setting for') . " \"{$form['network']['daily_xfer_limit_mb']['#title']} [x] {$form['network']['daily_xfer_limit_mb']['#field_suffix']}\"");
+  if (!verify_numeric($values['network']['daily_xfer_period_days'], 0, 9999999)) form_set_error('daily_xfer_period_days', t('Invalid setting for') . " \"{$form['network']['daily_xfer_limit_mb']['#title']} [x] {$form['network']['daily_xfer_limit_mb']['#field_suffix']}\"");
+}
+
+/**
+  * Handle post-validation submission of preference presets form.
+  */
+function boincwork_admin_prefs_presets_form_submit($form, &$form_state) {
+  $values = $form_state['values'];
+  $preset = $form_state['values']['preset'];
+  
+  // Load baseline settings from configuration
+  $prefs = boincwork_get_preset_prefs($preset);
+  
+  // Processing preferences
+  $prefs['run_on_batteries'] = ($values['processor']['run_on_batteries']) ? 0 : 1;
+  $prefs['run_if_user_active'] = ($values['processor']['run_if_user_active']) ? 0 : 1;
+  $prefs['run_gpu_if_user_active'] = ($values['processor']['run_gpu_if_user_active']) ? 0: 1;
+  $prefs['idle_time_to_run'] = $values['processor']['idle_time_to_run'];
+  $prefs['suspend_if_no_recent_input'] = $values['processor']['suspend_if_no_recent_input'];
+  $prefs['suspend_cpu_usage'] = $values['processor']['suspend_cpu_usage'];
+  $prefs['start_hour'] = $values['processor']['start_hour'];
+  $prefs['end_hour'] = $values['processor']['end_hour'];
+  $prefs['leave_apps_in_memory'] = ($values['processor']['leave_apps_in_memory']) ? 1 : 0;
+  $prefs['cpu_scheduling_period_minutes'] = $values['processor']['cpu_scheduling_period_minutes'];
+  $prefs['max_ncpus_pct'] = $values['processor']['max_ncpus_pct'];
+  $prefs['cpu_usage_limit'] = $values['processor']['cpu_usage_limit'];
+  
+  // Storage preferences
+  $prefs['disk_max_used_gb'] = $values['storage']['disk_max_used_gb'];
+  $prefs['disk_min_free_gb'] = $values['storage']['disk_min_free_gb'];
+  $prefs['disk_max_used_pct'] = $values['storage']['disk_max_used_pct'];
+  $prefs['disk_interval'] = $values['storage']['disk_interval'];
+  $prefs['vm_max_used_pct'] = $values['storage']['vm_max_used_pct'];
+  $prefs['ram_max_used_busy_pct'] = $values['storage']['ram_max_used_busy_pct'];
+  $prefs['ram_max_used_idle_pct'] = $values['storage']['ram_max_used_idle_pct'];
+  
+  // Network preferences
+  $prefs['work_buf_min_days'] = $values['network']['work_buf_min_days'];
+  $prefs['work_buf_additional_days'] = $values['network']['work_buf_additional_days'];
+  $prefs['confirm_before_connecting'] = ($values['network']['confirm_before_connecting']) ? 1 : 0;
+  $prefs['hangup_if_dialed'] = ($values['network']['hangup_if_dialed']) ? 1 : 0;
+  $prefs['max_bytes_sec_down'] = $values['network']['max_bytes_sec_down']*1000;
+  $prefs['max_bytes_sec_up'] = $values['network']['max_bytes_sec_up']*1000;
+  $prefs['net_start_hour'] = $values['network']['net_start_hour'];
+  $prefs['net_end_hour'] = $values['network']['net_end_hour'];
+  $prefs['daily_xfer_limit_mb'] = $values['network']['daily_xfer_limit_mb'];
+  $prefs['daily_xfer_period_days'] = $values['network']['daily_xfer_period_days'];
+  $prefs['dont_verify_images'] = ($values['network']['dont_verify_images']) ? 1 : 0;
+  
+  //Remove @attributes to match new format (see boincwork.forms.inc
+  //function boincwork_generalprefs_form)
+  unset($prefs['@attributes']['preset']);
+  
+  // Update the configuration
+  boincwork_save_preset_prefs($prefs, $preset);
+  drupal_set_message(t('The "@name" preset has been updated.',
+    array('@name' => $preset)));
+}
+
+/**
+ * Save preset preferences configuration
+ */
+function boincwork_save_preset_prefs($updated_prefs, $preset = 'standard') {
+  
+  // Get the full configuration
+  $all_presets = boincwork_get_preset_prefs();
+  $all_presets = (array) $all_presets['general_preferences'];
+  
+  // Check for sane config
+  if (isset($all_presets['preset'])) {
+    if (!is_numeric(key($all_presets['preset']))) {
+      $all_presets['preset'] = array($all_presets['preset']);
+    }
+    foreach ($all_presets['preset'] as $key => $old_preset) {
+      // Find the preset being updated and... update it
+      if (isset($old_preset['@attributes']['name']) AND $old_preset['@attributes']['name'] == $preset) {
+        $all_presets['preset'][$key] = $updated_prefs + $old_preset;
+      }
+    }
+  }
+  
+  // Convert prefs back to XML and save to database
+  $all_presets = array('general_preferences' => $all_presets);
+  variable_set('boincwork_preset_prefs', save_configuration($all_presets));
+}
+
+/**
+ * Saves but also loads disk usage settings from config.xml, and
+ * overwrites whatever values are is in form.
+ */
+function boincwork_admin_prefs_preset_saveuseconfigxml($form, &$form_state) {
+    require_boinc(array('db', 'prefs'));
+    $disk_space_config = get_disk_space_config();
+
+    $form_state['values']['storage']['disk_max_used_gb']  = $disk_space_config->disk_max_used_gb;
+    $form_state['values']['storage']['disk_min_free_gb']  = $disk_space_config->disk_min_free_gb;
+    $form_state['values']['storage']['disk_max_used_pct'] = $disk_space_config->disk_max_used_pct;
+
+    //Run the form validate function
+    boincwork_admin_prefs_presets_form_validate($form, $form_state);
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincwork/boincwork.info b/drupal/sites/default/boinc/modules/boincwork/boincwork.info
new file mode 100644
index 0000000..4ee674d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/boincwork.info
@@ -0,0 +1,8 @@
+; $Id$
+name = BOINC work
+description = Enable BOINC features related to processing work and credit.
+core = 6.x
+dependencies[] = boincuser
+dependencies[] = elements
+dependencies[] = jump
+package = BOINC
diff --git a/drupal/sites/default/boinc/modules/boincwork/boincwork.module b/drupal/sites/default/boinc/modules/boincwork/boincwork.module
new file mode 100644
index 0000000..a23983d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/boincwork.module
@@ -0,0 +1,1006 @@
+<?php
+// $Id$
+
+/**
+  * @file
+  * Enable BOINC features related to processing work and credit.
+  */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+require_once('includes/boincwork.forms.inc');
+require_once('includes/boincwork.helpers.inc');
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+  * Implementation of hook_menu().
+  */
+function boincwork_menu() {
+  require_boinc('util');
+  $items['account/prefs'] = array(
+    'title' => 'Computing',
+    'description' => '',
+    'page callback' => 'generalprefs_page', 
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_NORMAL_ITEM
+  );
+  $items['account/prefs/computing'] = array(
+    'title' => 'Computing',
+    'page callback' => 'generalprefs_page',
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => 0
+  );
+  $items['account/prefs/project'] = array(
+    'title' => 'Project',
+    'page callback' => 'projectprefs_page',
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 5
+  );
+  $items['account/prefs/community'] = array(
+    'title' => 'Community',
+    'page callback' => 'communityprefs_page',
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 10
+  );
+  $items['account/prefs/privacy'] = array(
+    'title' => 'Privacy',
+    'page callback' => 'privacyprefs_page',
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 15
+  );
+  $items['account/certs'] = array(
+    'title' =>'Account certificate',
+    'page callback' => 'boincwork_certificates',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['admin/boinc/prefs/general'] = array(
+    'title' => 'Preferences: General',
+    'description' => 'Set options for BOINC preference set pages',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincwork_admin_prefs_options_form'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boincwork.admin.inc'
+  );
+  $items['admin/boinc/prefs/presets'] = array(
+    'title' => 'Preferences: Presets',
+    'description' => 'Set values for BOINC preference set presets.',
+    'page callback' => 'boincwork_admin_prefs_presets_page',
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boincwork.admin.inc'
+  );
+  $items['admin/boinc/prefs/upload'] = array(
+    'title' => 'Preferences: Project-specific XML upload',
+    'description' => 'Upload XML configuration for project specific preferences.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincwork_admin_prefs_upload_form'),
+    'access arguments' => array('administer site configuration'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'boincwork.admin.inc'
+  );
+  $items['host/%/delete'] = array(
+    'title' => 'Delete host',
+    'page callback' => 'boincwork_host_delete',
+    'page arguments' => array(1),
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_CALLBACK,
+  );
+  $items['host/%/log'] = array(
+    'title' => 'Host log',
+    'page callback' => 'boincwork_host_log',
+    'page arguments' => array(1),
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_CALLBACK,
+  );
+  $items['host/%/merge'] = array(
+    'title' => 'Merge computer',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('boincwork_host_merge_form', 1),
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_CALLBACK,
+  );
+  $items['host/%/set-venue/%'] = array(
+    'title' => 'Set host venue',
+    'page callback' => 'boincwork_host_set_venue',
+    'page arguments' => array(1,3),
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_CALLBACK,
+  );
+  $items['user/%/mobile'] = array(
+    'title' => 'Mobile stats',
+    'page callback' => 'boincwork_mobile_stats',
+    'page arguments' => array(1),
+    'access callback' => 'user_is_logged_in',
+    'type' => MENU_CALLBACK
+  );
+  $items['server_status.php'] = array(
+    'title' => 'Server status',
+    'page callback' => 'boincwork_server_status',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['job_file.php'] = array(
+    'title' => 'Job file input',
+    'page callback' => 'boincwork_job_file',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['get_output.php'] = array(
+    'title' => 'Get output file',
+    'page callback' => 'boincwork_get_output',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['get_project_config.php'] = array(
+    'title' => 'Project config',
+    'page callback' => 'boincwork_get_project_config',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['submit_rpc_handler.php'] = array(
+    'title' => 'Remote job submission',
+    'page callback' => 'boincwork_submit_rpc_handler',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  $items['userw.php'] = array(
+    'title' => 'User WAP',
+    'page callback' => 'boincwork_user_wap',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  return $items;
+}
+
+/**
+* Implementation of hook_views_api().
+*/
+function boincwork_views_api() {
+  return array(
+    'api' => 2.0,
+    'path' => drupal_get_path('module', 'boincwork')
+  );
+}
+
+/**
+ * Implementation of hook_locale().
+ */
+function boincwork_locale($op = 'groups', $group = NULL) {
+  switch ($op) {
+    case 'groups':
+      return array('project' => bts('Project'));
+    case 'info':
+      $info['project']['refresh callback'] = 'boincwork_locale_refresh';
+      $info['project']['format'] = FALSE;
+      return $info;
+  }
+}
+
+/**
+ * Refresh strings.
+ */
+function boincwork_locale_refresh() {
+  // Mimic process of adding project specific prefs to the project preferences
+  // form -- this parses the prefs XML and calls i18nstrings_update()
+  $form = array();
+  $prefs = array(
+    'project_specific' => array(),
+  );
+  boincwork_add_project_specific_prefs($form, $prefs);
+  return TRUE; // Meaning it completed with no issues
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Page callbacks from hook_menu()
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+  * General preferences menu callback.
+  * Called when user goes to edit preferences page
+  */
+function generalprefs_page($action = null, $venue = null, $advanced = FALSE) {
+  
+  // Keep the venue selected across preference pages
+  boincwork_select_venue($venue);
+  
+  $pref_sets = array('generic', 'home', 'school', 'work');
+  $output = null;
+  // Set the page title
+  $title = 'Computing';
+  drupal_set_title($title);
+  
+  switch ($action) {
+  
+  case 'clear':
+    // Remove settings from this preference set
+    if ($venue AND $venue != 'generic') {
+      boincwork_save_prefs(NULL, 'general', $venue);
+      drupal_set_message(t('Settings for the "@name" preference set have been
+        cleared', array('@name' => ucfirst($venue))));
+      // Set the generic preference set as active
+      $_SESSION['prefs venue'] = 'generic';
+    }
+    drupal_goto();
+    break;
+    
+  case 'combined':
+    // Compare preference sets; tabular view
+    
+    foreach ($pref_sets as $pref_set) {
+      $form_state = array();
+      $prefs[$pref_set] = drupal_retrieve_form('boincwork_generalprefs_form', $form_state, $pref_set);
+      drupal_prepare_form('boincwork_generalprefs_form', $prefs[$pref_set], $form_state);
+    }
+
+    $output .= '<p>' . bts('These apply to all BOINC projects in which you participate.', array(), NULL, 'boinc:account-preferences-computing') . '<br/>';
+    $output .= bts('On computers attached to multiple projects, the most recently modified preferences will be used.', array(), NULL, 'boinc:account-preferences-computing') . '</p>';
+    $output .= '<p>' . bts('Preferences last modified: @mod_time', array('@mod_time' => pretty_time_str($prefs['generic']['prefs']['modified']['#value'])), NULL, 'boinc:account-preferences-computing') . '</p>';
+    $output .= '<h2>' . bts('Combined preferences', array(), NULL, 'boinc:account-preferences') . ' ' . l('(' . bts('Switch View', array(), NULL, 'boinc:account-preferences') . ')', 'account/prefs/computing') . '</h2>';
+    
+    $output .= '<table class="preferences combined">';
+    
+    $prefs_table = boincwork_make_prefs_table($prefs['generic']['prefs']['advanced']);
+    
+    foreach ($prefs_table as $category => $section) {
+      $output .= '<tr class="section-heading">';
+      $output .= "<td>{$section['name']}</td>";
+      foreach ($pref_sets as $pref_set) {
+        $output .= '<td>' . $pref_set . '</td>';
+      }
+      $output .= '</tr>';
+      foreach ($section['elements'] as $name => $setting) {
+        // Output the setting name and description, with an ugly exception
+        // made for preferences with special formatting
+        $special_map = array(
+          'start_hour' => 'end_hour',
+          'net_start_hour'=> 'net_end_hour',
+          'daily_xfer_limit_mb' => 'daily_xfer_period_days',
+        );
+        $special_delimiter = array(
+          'start_hour' => bts('and', array(), NULL, 'boinc:account-preference'),
+          'net_start_hour'=> bts('and', array(), NULL, 'boinc:account-preference'),
+          'daily_xfer_limit_mb' => bts('every', array(), NULL, 'boinc:account-preference'),
+        );
+        $special = isset($special_map[$name]);
+        $very_special = in_array($name, $special_map);
+        if ($very_special) {
+          continue;
+        }
+        $output .= '<tr>';
+        $output .= '<td>';
+        $output .= "<div class=\"title\">{$setting['name']}</div>";
+        $output .= "<div class=\"description\">{$setting['description']}</div>";
+        $output .= '</td>';
+        // Output values for each preference set, again with ugly hacks for
+        // time range preferences
+        foreach ($pref_sets as $pref_set) {
+          if (($prefs[$pref_set]) AND 
+              $prefs[$pref_set]['#established'] AND
+              isset($prefs[$pref_set]['prefs']['advanced'][$category])) {
+            $pref_setting = $prefs[$pref_set]['prefs']['advanced'][$category][$name];
+            $value = isset($pref_setting['#options']) ? $pref_setting['#options'][$pref_setting['#default_value']] : $pref_setting['#default_value'];
+            if ($value == '') {
+              $value = '---';
+            }
+            if (!isset($pref_setting['#field_suffix'])) {
+              $pref_setting['#field_suffix'] = '';
+            }
+            if (!$special) {
+              $output .= "<td>{$value} {$pref_setting['#field_suffix']}</td>";
+            }
+            else {
+              // The "very special" case where we merge two prefs
+              $second_pref = $special_map[$name];
+              $second_pref_setting = $prefs[$pref_set]['prefs']['advanced'][$category][$second_pref];
+              $second_value = isset($second_pref_setting['#options']) ? $second_pref_setting['#options'][$second_pref_setting['#default_value']] : $second_pref_setting['#default_value'];
+              $output .= "<td>{$value} {$pref_setting['#field_suffix']} {$special_delimiter[$name]}" .
+                " {$second_value} {$second_pref_setting['#field_suffix']} </td>";
+            }
+          }
+          else  {
+            $output .= '<td>---</td>';
+          }
+        }
+        $output .= '</tr>';
+      }
+    }
+    
+    // Empty line above action links... :/
+    $output .= '<tr>';
+    $output .= '<td> </td>';
+    $output .= '<td></td>';
+    $output .= '<td></td>';
+    $output .= '<td></td>';
+    $output .= '<td></td>';
+    $output .= '</td>';
+    
+    // Show Add / Edit links for each preference set
+    $output .= '<tr>';
+    $output .= '<td></td>';
+    foreach ($pref_sets as $pref_set) {
+      $action_text = ($prefs[$pref_set]['#established']) ? bts('Edit', array(), NULL, 'boinc:form-edit') : bts('Add', array(), NULL, 'boinc:form-add');
+      $output .= '<td><ul class="tab-list"><li class="first tab">';
+      $output .= l($action_text, "account/prefs/computing/edit/{$pref_set}/1",
+        array('fragment' => "")
+      );
+      // Show Clear links for established preference sets
+      if ($pref_set != 'generic' AND $prefs[$pref_set]['#established']) {
+        $output .= ' </li><li class="tab"> ' . l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/computing/clear/{$pref_set}",
+          array(
+            'query' => drupal_get_destination(),
+            'attributes' => array(
+              'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the "@name" preference set. Are you sure?',
+                array('@name' => ucfirst($pref_set)), array(), NULL, 'boinc:account-computing-preferences') . '\')'
+            )
+          )
+        );
+      }
+      $output .= '</li></ul></td>';
+    }
+    $output .= '</tr>';
+    
+    $output .= '</table>';
+    
+    break;
+    
+  case 'edit':
+  default:
+  
+    // Return the HTML generated from the $form data structure.
+    if (function_exists('jump_quickly')) {
+      $path = 'account/prefs/computing/edit';
+      $venues = array(
+        "{$path}/generic" => bts('Generic', array(), NULL, 'boinc:account-preferences-location'),
+        "{$path}/home" => bts('Home', array(), NULL, 'boinc:account-preferences-location:-1:ignoreoverwrite'),
+        "{$path}/school" => bts('School', array(), NULL, 'boinc:account-preferences-location'),
+        "{$path}/work" => bts('Work', array(), NULL, 'boinc:account-preferences-location')
+      );
+      variable_set('jump_use_js_venues-Array', 1);
+      drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js');
+      drupal_add_js(drupal_get_path('theme', 'boinc') . '/js/prefs.js', 'theme');
+      
+      $output .= '<div id="venue-selector" class="simple-form-controls">';
+      $output .= '  <div class="form-item venue">';
+      $output .= '    <label>Preference set:</label>';
+      $output .= jump_quickly($venues, 'venues', 1, "{$path}/{$venue}");
+      $output .= '  </div>';
+      $output .= '</div>';
+    }
+    $output .= drupal_get_form('boincwork_generalprefs_form', $venue, NULL, $advanced);
+    
+    // If viewing the edit page for a preference set that doesn't
+    // exist, inform the user that preferences are not set.
+    $form_state = array();
+    $current_set = drupal_retrieve_form('boincwork_generalprefs_form', $form_state, $venue);
+    drupal_prepare_form('boincwork_generalprefs_form', $current_set, $form_state);
+
+    if (!$current_set['#established']) {
+      drupal_set_message(bts(
+          "No preferences found for set '@venue'. Click SAVE CHANGES below to save the following preferences to your account.",
+          array( '@venue' => $venue, ),
+          NULL, 'boinc:account-preferences'), 'status');
+    }
+    
+    break;
+  }
+  
+  return $output;
+}
+
+/**
+  * Project preferences menu callback
+  * Called when user goes to edit project preferences page.
+  */
+function projectprefs_page($action = null, $venue = null) {
+  
+  // Keep the venue selected across preference pages
+  boincwork_select_venue($venue);
+  
+  require_boinc(array('util', 'prefs'));
+  global $project_has_beta;
+  $pref_sets = array('generic', 'home', 'school', 'work');
+  $output = null;
+  
+  $title = 'Project';
+  drupal_set_title($title);
+  
+  switch ($action) {
+  
+  case 'clear':
+    // Remove settings from this preference set
+    if ($venue AND $venue != 'generic') {
+      boincwork_save_prefs(NULL, 'project', $venue);
+      drupal_set_message(t('Settings for the "@name" preference set have been
+        cleared', array('@name' => ucfirst($venue))));
+      
+      // Set the generic preference set as active
+      $_SESSION['prefs venue'] = 'generic';
+      
+      // If the user has removed their default preference set, make it generic
+      boincwork_set_default_venue();
+    }
+    drupal_goto();
+    break;
+    
+  case 'combined':
+  
+    // Compare preference sets; tabular view
+    
+    global $user;
+    $account = user_load($user->uid);
+    $boincuser = BoincUser::lookup_id($account->boincuser_id);
+    
+    foreach ($pref_sets as $pref_set) {
+      $form_state = array();
+      $prefs[$pref_set] = drupal_retrieve_form('boincwork_projectprefs_form', $form_state, $pref_set);
+      drupal_prepare_form('boincwork_projectprefs_form', $prefs[$pref_set], $form_state);
+    }
+    
+    $output .= '<h2>' . bts('Combined preferences', array(), NULL, 'boinc:account-preferences') . ' ' . l('(' . bts('Switch View', array(), NULL, 'boinc:account-preferences') . ')', 'account/prefs/project') . '</h2>';
+    
+    $output .= '<table class="preferences combined">';
+    
+    $prefs_table = boincwork_make_prefs_table($prefs['generic']);
+    
+    foreach ($prefs_table as $category => $section) {
+      $output .= '<tr class="section-heading">';
+      $output .= "<td>{$section['name']}</td>";
+      foreach ($pref_sets as $pref_set) {
+        $output .= '<td>' . $pref_set . '</td>';
+      }
+      $output .= '</tr>';
+      foreach ($section['elements'] as $name => $setting) {
+        $output .= '<tr>';
+        $output .= '<td>';
+        $output .= "<div class=\"title\">{$setting['name']}</div>";
+        $output .= "<div class=\"description\">{$setting['description']}</div>";
+        $output .= '</td>';
+        foreach ($pref_sets as $pref_set) {
+          if (($prefs[$pref_set]) AND
+              $prefs[$pref_set]['#established'] AND
+              isset($prefs[$pref_set][$category])) {
+            $pref_setting = $prefs[$pref_set][$category][$name];
+            $value = isset($pref_setting['#options']) ? $pref_setting['#options'][$pref_setting['#default_value']] : $pref_setting['#default_value'];
+            if ($value == '') $value = '---';
+            if (!isset($pref_setting['#field_suffix'])) $pref_setting['#field_suffix'] = '';
+            $output .= "<td>{$value} {$pref_setting['#field_suffix']}</td>";
+          } else $output .= '<td>---</td>';
+        }
+        $output .= '</tr>';
+      }
+    }
+    
+    // Empty line above action links... :/
+    $output .= '<tr>';
+    $output .= '<td> </td>';
+    $output .= '<td></td>';
+    $output .= '<td></td>';
+    $output .= '<td></td>';
+    $output .= '<td></td>';
+    $output .= '</td>';
+    
+    // Show Add / Edit links for each preference set
+    $output .= '<tr>';
+    $output .= '<td></td>';
+    foreach ($pref_sets as $pref_set) {
+      $action_text = ($prefs[$pref_set]['#established']) ? bts('Edit', array(), NULL, 'boinc:form-edit') : bts('Add', array(), NULL, 'boinc:form-add');
+      $output .= '<td><ul class="tab-list"><li class="first tab">';
+      $output .= l($action_text, "account/prefs/project/edit/{$pref_set}");
+      // Show Clear links for established preference sets
+      if ($pref_set != 'generic' AND $prefs[$pref_set]['#established']) {
+        $output .= ' </li><li class="tab"> ' . l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/project/clear/{$pref_set}",
+          array(
+            'query' => drupal_get_destination(),
+            'attributes' => array(
+              'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the "@name" preference set. Are you sure?',
+                array('@name' => ucfirst($pref_set)), array(), NULL, 'boinc:account-preferences-project') . '\')'
+            )
+          )
+        );
+      }
+      $output .= '</li></ul></td>';
+    }
+    
+    $output .= '</table>';
+    
+    break;
+    
+  case 'set-default':
+    // Set this preference set as the one to use for any new hosts attached
+    // to the user account
+    boincwork_set_default_venue($venue);
+    drupal_set_message( bts('The primary preference set has been changed to "@set"', array('@set' => $venue), NULL, 'boinc:account-preferences-project') );
+    drupal_goto('account/prefs/project/combined');
+    break;
+    
+  case 'edit':
+  default:
+    
+    // Return the HTML generated from the $form data structure.
+    require_boinc('util');
+    
+    if (function_exists('jump_quickly')) {
+      $path = 'account/prefs/project/edit';
+      $venues = array(
+        "{$path}/generic" => bts('Generic', array(), NULL, 'boinc:account-preferences-location'),
+        "{$path}/home" => bts('Home', array(), NULL, 'boinc:account-preferences-location:-1:ignoreoverwrite'),
+        "{$path}/school" => bts('School', array(), NULL, 'boinc:account-preferences-location'),
+        "{$path}/work" => bts('Work', array(), NULL, 'boinc:account-preferences-location')
+      );
+      variable_set('jump_use_js_venues-Array', 1);
+      drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js');
+      drupal_add_js(drupal_get_path('theme', 'boinc') . '/js/prefs.js', 'theme');
+      
+      $output .= '<div id="venue-selector" class="simple-form-controls">';
+      $output .= '  <div class="form-item venue">';
+      $output .= '    <label>Preference set:</label>';
+      $output .= jump_quickly($venues, 'venues', 1, "{$path}/{$venue}");
+      $output .= '  </div>';
+      $output .= '</div>';
+    }
+    $output .= drupal_get_form('boincwork_projectprefs_form', $venue);
+    
+    // If viewing the edit page for a preference set that doesn't
+    // exist, inform the user that preferences are not set.
+    $form_state = array();
+    $current_set = drupal_retrieve_form('boincwork_projectprefs_form', $form_state, $venue);
+    drupal_prepare_form('boincwork_projectprefs_form', $current_set, $form_state);
+    
+    if (!$current_set['#established']) {
+      drupal_set_message(bts(
+          "No preferences found for set '@venue'. Click SAVE CHANGES below to save the following preferences to your account.",
+          array( '@venue' => $venue, ),
+          NULL, 'boinc:account-preferences'), 'status');
+    }
+    
+    break;
+    
+  }
+  return $output;
+}
+
+/**
+  * Community preferences menu callback
+  * Called when user goes to edit community preferences page.
+  */
+function communityprefs_page($action = null) {
+  
+  require_boinc(array('util', 'prefs'));
+  $output = null;
+  
+  $title = 'Community';
+  drupal_set_title($title);
+  
+  //$output .= '<h2>Community preferences</h2>';
+  
+  $output .= drupal_get_form('communityprefs_form');
+  
+  return $output;
+}
+
+/**
+  * Privacy preferences menu callback
+  * Called when user goes to edit privacy preferences page.
+  */
+function privacyprefs_page($action = null) {
+  
+  require_boinc(array('util', 'prefs'));
+  $output = null;
+  $title = 'Privacy';
+  drupal_set_title($title);
+  
+  switch ($action) {
+  case 'view':
+    $form_state = array();
+    $prefs = drupal_retrieve_form('boincwork_privacyprefs_form', $form_state);
+    drupal_prepare_form('boincwork_privacyprefs_form', $prefs, $form_state);
+    $output .= '<table>';
+    
+    $sections = array(
+      'privacy' => $prefs['privacy']
+    );
+    
+    foreach ($sections as $section) {
+      $output .= '<tr class="section-heading">';
+      $output .= "<td>{$section['#title']}</td></tr>";
+      foreach ($section as $name => $setting) {
+        if ($name{0} == '#') continue;
+        $value = isset($setting['#default_value']) ? $setting['#default_value'] : '';
+        if ($value AND isset($setting['#options'])) $value = $setting['#options'][$value];
+        elseif ($value == '') $value = '---';
+        if (!isset($setting['#title'])) $setting['#title'] = '';
+        if (!isset($setting['#description'])) $setting['#description'] = '';
+        if (!isset($setting['#field_suffix'])) $setting['#field_suffix'] = '';
+        $output .= '<tr>';
+        $output .= "<td>{$setting['#title']}<br/>{$setting['#description']}</td>";
+        $output .= "<td>{$value} {$setting['#field_suffix']}</td>";
+        $output .= '</tr>';
+      }
+    }
+    
+    // Edit preferences link
+    $output .= '<tr>';
+    $output .= '<td></td>';
+    $output .= '<td>' . l(bts('Edit privacy preferences', array('@project' => PROJECT), NULL, 'boinc:account-preferences-privacy'), "account/prefs/privacy/edit") . '</td>';
+    $output .= '</tr>';
+    
+    $output .= '</table>';
+    
+    break;
+    
+  case 'edit':
+  default:
+    require_boinc('util');
+    // Return the HTML generated from the $form data structure.
+    $output .= drupal_get_form('boincwork_privacyprefs_form');
+    break;
+    
+  }
+  
+  return $output;
+}
+
+/**
+  * Certificates menu callback
+  * Called when user goes to account certificate pages
+  */
+function boincwork_certificates($type = null, $border = null) {
+  global $user;
+  $drupuser = user_load($user->uid);
+  // Load BOINC account and pre-authenticate with BOINC code
+  require_boinc(array('util', 'cert'));
+  $boincuser = BoincUser::lookup_id($drupuser->boincuser_id);
+  //global $g_logged_in_user;
+  //$g_logged_in_user = $boincuser;
+  //print_r($boincuser); exit;
+  switch ($type) {
+  case 'all':
+    //include_boinc('user/cert_all.php');
+    require_boinc(array('util','cert','user'));
+
+    $join = date('j F Y', $boincuser->create_time);
+    $today = date('j F Y', time(0));
+
+    if ($border=="no") {
+        $border = 0;
+    } else {
+        $border=8;
+    }
+
+    $title_font = "\"Optima,ZapfChancery\"";
+    $font = "\"Optima,Lucida Bright,Times New Roman\"";
+
+    $boincuser = get_other_projects($boincuser);
+    $total_credit = 0;
+    foreach ($boincuser->projects as $p) {
+        $total_credit += $p->total_credit;
+    }
+
+    $credit = credit_string($total_credit, false);
+
+    function show_proj($p) {
+        $join = date('j F Y', $p->create_time);
+        echo "<tr> <td>$p->name</td><td> $p->total_credit</td><td>$join</td></tr>
+        ";
+    }
+
+    echo "
+        <table width=900 height=650 border=$border cellpadding=20><tr><td>
+        <center>
+        <table width=700 border=0><tr><td style=\"background-position:center; background-repeat:no-repeat\" background=http://boinc.berkeley.edu/logo/boinc_fade_600.png>
+        <center>
+        <font style=\"font-size: 52\" face=$title_font>Certificate of Computation
+
+        <font face=$font style=\"font-size:28\">
+        <br><br>
+        This certifies that
+        <p>
+        <font face=$font style=\"font-size:32\">
+        $boincuser->name
+
+        <font face=$font style=\"font-size:18\">
+        <p>
+        has contributed $credit
+        to the following scientific research projects:
+
+        <center>
+        <table width=80%>
+        <tr><th align=left>Project</th><th align=left>Cobblestones</th><th align=left>Joined</th></tr>
+    ";
+    foreach ($boincuser->projects as $p) {
+        if ($p->total_credit<100) continue;
+        show_proj($p);
+    }
+    echo "
+        </table>
+        </center>
+    ";
+
+    echo "
+        </td>
+    ";
+    echo "
+    </td><tr></table>
+    ";
+    break;
+    
+  case 'account':
+  default:
+    //include_boinc('user/cert1.php');
+    require_boinc(array('util','cert'));
+
+    $join = date('j F Y', $boincuser->create_time);
+    $today = date('j F Y', time(0));
+
+    if ($border=="no") {
+        $border = 0;
+    } else {
+        $border=8;
+    }
+
+    $credit = credit_string($boincuser->total_credit, false);
+
+    $title_font = "\"Optima,ZapfChancery\"";
+    $font = "\"Optima,Lucida Bright,Times New Roman\"";
+
+    echo "
+        <table width=900 height=650 border=$border cellpadding=20><tr><td>
+        <center>
+        <table width=700 border=0><tr><td>
+        <center>
+        <font style=\"font-size: 52\" face=$title_font>Certificate of Computation
+
+
+        <font face=$font style=\"font-size:28\">
+        <br><br><br>
+        This certifies that
+        <p>
+        <font face=$font style=\"font-size:32\">
+        $boincuser->name
+
+        <font face=$font style=\"font-size:18\">
+        <p>
+        has participated in ".PROJECT." since $join,
+        and has contributed $credit
+        to ".PROJECT.".
+
+        <br><br><br>
+        </td><tr></table>
+        <table width=100%><tr>
+        <td width=40><br></td>
+        <td align=left>
+        <font face=$font style=\"font-size:16\">
+    ";
+    if (defined("CERT_SIGNATURE")) {
+        echo "
+            <img src=".CERT_SIGNATURE.">
+            <br>
+        ";
+    }
+    if (defined("CERT_DIRECTOR_NAME")) {
+        echo CERT_DIRECTOR_NAME." <br>Director, ".PROJECT."
+            <br>
+        ";
+    }
+    echo "
+        <br>
+        $today
+        </td>
+    ";
+    if (defined("CERT_PROJECT_LOGO")) {
+        echo "
+            <td align=center valign=center> <img src=".CERT_PROJECT_LOGO."> </td>
+        ";
+    }
+    if (defined("CERT_INSTITUTION_LOGO")) {
+        echo "
+            <td align=center width=30% valign=center><img src=".CERT_INSTITUTION_LOGO."></td>
+        ";
+    }
+    echo "
+    </td><tr></table>
+    ";
+  }
+}
+
+/**
+ * Delete host menu callback
+ * Called when user selects to delete a host
+ */
+function boincwork_host_delete($host_id) {
+  // Verify that host has no tasks
+  if (boincwork_host_user_is_owner($host_id)) {
+    if (!boincwork_host_get_task_count($host_id)) {
+      // Delete the host record
+      db_set_active('boinc');
+      $host_deleted = db_query(
+        "DELETE FROM {host} WHERE id = '%d'",
+        $host_id
+      );
+      db_set_active('default');
+      if ($host_deleted) {
+        drupal_set_message(t('Host @id has been removed from your account.',
+          array('@id' => $host_id)));
+        drupal_goto('account/computers');
+      }
+      else {
+        drupal_set_message(t('Host @id could not be deleted. Not sure why...',
+          array('@id' => $host_id)), 'error'
+        );
+      }
+    }
+    else {
+      drupal_set_message(t('Host @id cannot be deleted because it still has
+        tasks associated with it. These tasks should be processed within the
+        next few days, after which the host can be deleted.', 
+        array('@id' => $host_id)), 'warning'
+      );
+    }
+  }
+  else {
+    drupal_set_message(t('You are not the owner of host @id, so you cannot
+      delete it.', 
+      array('@id' => $host_id)), 'error'
+    );
+  }
+  drupal_goto("host/{$host_id}");
+}
+
+/**
+ * Host log menu callback
+ * Called when user accesses the log for a host
+ */
+function boincwork_host_log($host_id = null) {
+  $root_log_dir = variable_get('boinc_host_sched_logs_dir', '');
+  $log = '';
+  if ($root_log_dir AND $host_id) {
+    $subdir = substr($host_id, 0, -3) OR $subdir = 0;
+    $log = implode('/', array($root_log_dir, $subdir, $host_id));
+  }
+  if ($log AND file_exists($log)) {
+    header('Content-type: text/plain');
+    include($log);
+  }
+}
+
+function boincwork_host_set_venue($host_id = NULL, $venue = NULL) {
+  global $user;
+  $account = user_load($user->uid);
+  db_set_active('boinc');
+  // Verify that this is my host
+  $host_owner = db_result(db_query(
+    "SELECT userid FROM {host} WHERE id = '%d'",
+    $host_id
+  ));
+  if ($host_owner AND $host_owner == $account->boincuser_id) {
+    $updated = db_query(
+      "UPDATE {host} SET venue = '%s' WHERE id = '%d'",
+      $venue, $host_id
+    );
+    if ($updated) {
+      drupal_set_message(
+        bts('The location for this host has been updated.', array(), NULL, 'boinc:account-host-details')
+        . bts('This will take effect next time the host contacts the project.', array(), NULL, 'boinc:account-host-details')
+      );
+    }
+    else {
+      drupal_set_message(
+        bts('Unable to save changes to this host for some reason!', array(), NULL, 'boinc:account-host-details'),
+        'error'
+      );
+    }
+  }
+  else {
+    drupal_set_message(
+      bts('You are not allowed to make changes to this host.', array(), NULL, 'boinc:account-host-details'),
+      'warning'
+    );
+  }
+  db_set_active('default');
+  drupal_goto("host/{$host_id}");
+}
+
+/**
+ * Mobile stats menu callback
+ * Called when user accesses cell phone stats
+ */
+function boincwork_mobile_stats($userid = null) {
+  $_GET['id'] = $userid;
+  include_boinc('user/userw.php');
+}
+
+/**
+ * Server status menu callback
+ * Called to build the server status page
+ */
+function boincwork_server_status() {
+  include_boinc('user/server_status.php');
+}
+
+/**
+ * Page callback for the job input file RPC (job_file.php).
+ * RPC for managing job input files
+ */
+function boincwork_job_file() {
+  include_boinc('user/job_file.php');
+}
+
+/**
+ * Page callback for the output file request RPC (get_output.php).
+ * Get output file from remote job submission
+ */
+function boincwork_get_output() {
+  include_boinc('user/get_output.php');
+}
+
+/**
+ * Page callback for the project config RPC (get_project_config.php).
+ * Get the project configuration XML; used by client software
+ */
+function boincwork_get_project_config() {
+  include_boinc('user/get_project_config.php');
+}
+
+/**
+ * Page callback for the remote job submission RPC (submit_rpc_handler.php).
+ */
+function boincwork_submit_rpc_handler() {
+  include_boinc('user/submit_rpc_handler.php');
+}
+
+/**
+ * Page callback for user WAP (userw.php).
+ */
+function boincwork_user_wap() {
+  // Remove q from the GET request or BOINC will panic
+  unset($_GET['q']);
+  include_boinc('user/userw.php');
+}
+
+
+/**
+ * Generic page callback
+ * Take a node ID and render that node as a page
+ */
+function boincwork_view_page($nid) {
+  $node = node_load($nid);
+  return node_page_view($node);
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Local supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Determine which venue should be selected
+ */
+function boincwork_select_venue(&$venue) {
+  if (!$venue) {
+    $active_venue = isset($_SESSION['prefs venue']) ? $_SESSION['prefs venue'] : NULL;
+    if ($active_venue) {
+      $venue = $active_venue;
+      //unset($_SESSION['prefs venue']);
+    }
+  }
+  else {
+    // Set the active venue to keep it selected between computing and project
+    // preference pages
+    $_SESSION['prefs venue'] = $venue;
+  }
+}
+  
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/boincwork/boincwork.views.inc b/drupal/sites/default/boinc/modules/boincwork/boincwork.views.inc
new file mode 100644
index 0000000..ced6f01
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/boincwork.views.inc
@@ -0,0 +1,1700 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Exposes BOINC work data to Views.
+ */
+
+/**
+ * Implementation of hook_views_data().
+ * Defines the structure of data and how Views should handle it (i.e. which
+ * relationships exist; is data text, integer, float; what sort options exist).
+ */
+function boincwork_views_data() {
+  
+  // -----------------------------------------------------------------------------------------------
+  // Definition for host table
+  // -----------------------------------------------------------------------------------------------
+  
+  $data['host']['table']['group'] = t('BOINC');
+  
+  $data['host']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC host'),
+      'help' => t('Computers attached to BOINC'),
+      'database' => 'boinc'
+  );
+  
+  // This table references the {user} table.
+  // This join creates an 'implicit' relationship to the user table, so that when
+  // "User" is the base table, the fields are automatically available.
+  
+  // Index this array by the table name to which this table refers.
+  // 'left_field' is the primary key in the referenced table.
+  // 'field' is the foreign key in this table.
+  
+  $data['host']['table']['join'] = array(
+    'user' => array(
+      'left_field' => 'id',
+      'field' => 'userid',
+    )
+  );
+
+  // Describe each of the individual fields in this table to Views. For
+  // each field, you may define what field, sort, argument, and/or filter
+  // handlers it supports. This will determine where in the Views interface you
+  // may use the field.
+  
+  // Primary keys allowed as arguments
+  
+  $data['host']['id'] = array(
+    'title' => bts('Computer ID', array(), NULL, 'boinc:host-list'),
+    'help' => t('The ID number of this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['venue'] = array(
+    'title' => bts('Location', array(), NULL, 'boinc:host-list'),
+    'help' => t('The name of the preference set assigned to this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['host']['userid'] = array(
+    'title' => bts('User ID', array(), NULL, 'boinc:user-details'),
+    'help' => t('The owner of this host.'),
+    // Because this is a foreign key to the {user} table. This allows us to
+    // have, when the view is configured with this relationship, all the fields
+    // for the related node available.
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincuser_id',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'user',
+      'field' => 'userid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('User')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of general host fields (alphabetized)
+  
+  $data['host']['active_frac'] = array(
+    'title' => bts('While BOINC running, % of time work is allowed', array(), NULL, 'boinc:host-details'),
+    'help' => t('The percentage of time that work is allowed.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['avg_turnaround'] = array(
+    'title' => bts('Average turnaround time', array(), NULL, 'boinc:host-details'),
+    'help' => t('The average time required for work to be completed.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['create_time'] = array(
+    'title' => bts('Created', array(), NULL, 'boinc:host-details'),
+    'help' => t('The time the host record was created.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['host']['connected_frac'] = array(
+    'title' => bts('While BOINC running, % of time host has an Internet connection', array(), NULL, 'boinc:host-details'),
+    'help' => t('The percentage of time that the host has an Internet connection.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['cpu_efficiency'] = array(
+    'title' => bts('Average CPU efficiency', array(), NULL, 'boinc:host-details'),
+    'help' => t('The average efficiency of the host CPU.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['d_free'] = array(
+    'title' => bts('Free disk space', array(), NULL, 'boinc:host-details'),
+    'help' => t('The amount of disk space that is not in use.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['d_total'] = array(
+    'title' => bts('Total disk space', array(), NULL, 'boinc:host-details'),
+    'help' => t('The size of the disk on which BOINC is installed.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['domain_name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'),
+    'help' => t('The name of the host.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['duration_correction_factor'] = array(
+    'title' => bts('Task duration correction factor', array(), NULL, 'boinc:host-details'),
+    'help' => t('Task duration correction factor.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['expavg_credit'] = array(
+    'title' => bts('Avg. credit', array(), NULL, 'boinc:host-details'),
+    'help' => t('A decaying average of credit per day.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['external_ip_addr'] = array(
+    'title' => bts('External IP address', array(), NULL, 'boinc:host-details'),
+    'help' => t('The IP address from which the host last communicated.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['host_cpid'] = array(
+    'title' => bts('Cross project ID', array(), NULL, 'boinc:host-details'),
+    'help' => t('The consistent identifier of the host across projects.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['last_ip_addr'] = array(
+    'title' => bts('Last IP address', array(), NULL, 'boinc:host-details'),
+    'help' => t('The IP address of the host at last communication.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['m_cache'] = array(
+    'title' => bts('Cache', array(), NULL, 'boinc:host-details'),
+    'help' => t('The amount of cache on the processor(s).'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['m_nbytes'] = array(
+    'title' => bts('Memory', array(), NULL, 'boinc:host-details'),
+    'help' => t('The amount of memory installed.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['m_swap'] = array(
+    'title' => bts('Swap space', array(), NULL, 'boinc:host-details'),
+    'help' => t('The amount of swap space configured.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['max_results_day'] = array(
+    'title' => bts('Maximum daily WU quota per CPU', array(), NULL, 'boinc:host-details'),
+    'help' => t('The maximum number of workunits to be allocated per CPU.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['n_bwdown'] = array(
+    'title' => bts('Average download rate', array(), NULL, 'boinc:host-details'),
+    'help' => t('The average rate at which new work is downloaded.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['n_bwup'] = array(
+    'title' => bts('Average upload rate', array(), NULL, 'boinc:host-details'),
+    'help' => t('The average rate at which completed work is uploaded.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['nsame_ip_addr'] = array(
+    'title' => bts('Same IP address count', array(), NULL, 'boinc:host-details'),
+    'help' => t('The number of times the last IP address.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['on_frac'] = array(
+    'title' => bts('% of time BOINC client is running', array(), NULL, 'boinc:host-details'),
+    'help' => t('The percentage of time that the BOINC client is running.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['os_name'] = array(
+    'title' => bts('Operating system', array(), NULL, 'boinc:host-details'),
+    'help' => t('The name of the host operating system.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );  
+  $data['host']['os_version'] = array(
+    'title' => bts('Operating system version', array(), NULL, 'boinc:host-details'),
+    'help' => t('The version of the host operating system.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['p_fpops'] = array(
+    'title' => bts('Measured floating point speed', array(), NULL, 'boinc:host-details'),
+    'help' => t('The capability of the host in floating point operations per second.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['p_iops'] = array(
+    'title' => bts('Measured integer speed', array(), NULL, 'boinc:host-details'),
+    'help' => t('The capability of the host in integer operations per second.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['p_model'] = array(
+    'title' => bts('CPU model', array(), NULL, 'boinc:host-details'),
+    'help' => t('The model of the CPU in the host.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['p_ncpus'] = array(
+    'title' => bts('Number of processors', array(), NULL, 'boinc:host-details'),
+    'help' => t('The count of CPU cores in the system.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['p_vendor'] = array(
+    'title' => bts('CPU', array(), NULL, 'boinc:host-details'),
+    'help' => t('The manufacturer of the CPU in the host.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['rpc_seqno'] = array(
+    'title' => bts('Number of times client has contacted server', array(), NULL, 'boinc:host-details'),
+    'help' => t('The number of times the client has contacted the server.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['rpc_time'] = array(
+    'title' => bts('Last contact', array(), NULL, 'boinc:host-details'),
+    'help' => t('The time of the last RPC contact with the host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['host']['serialnum'] = array(
+    'title' => bts('Serial number', array(), NULL, 'boinc:host-details'),
+    'help' => t('Contains the release number of the BOINC application in use and the GPU of the host.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['host']['timezone'] = array(
+    'title' => bts('Timezone', array(), NULL, 'boinc:host-details'),
+    'help' => t('The UTC offset of the local time.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host']['total_credit'] = array(
+    'title' => bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits'),
+    'help' => t('The total accumulated BOINC credit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // ------------------------------------------------------------------------------------------------
+  // Definition for platform table
+  // ------------------------------------------------------------------------------------------------
+  
+  $data['platform']['table']['group'] = t('BOINC');
+  $data['platform']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC platform'),
+      'help' => t('Operating system platforms'),
+      'database' => 'boinc'
+  );
+  
+  // Primary keys allowed as arguments
+
+  $data['platform']['id'] = array(
+    'title' => bts('Platform ID', array(), NULL, 'boinc:platform-details'),
+    'help' => t('The ID number of the platform.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of app fields (alphabetized)
+  
+  $data['platform']['name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'),
+    'help' => t('The name of the platform.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  
+  // ------------------------------------------------------------------------------------------------
+  // Definition for result (task) table
+  // ------------------------------------------------------------------------------------------------
+  
+  $data['result']['table']['group'] = t('BOINC');
+  $data['result']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC result'),
+      'help' => t('Results produced by BOINC'),
+      'database' => 'boinc'
+  );
+  
+  // Create implicit relationships to the user, workunit, and host tables
+  
+  $data['result']['table']['join'] = array(
+    'user' => array(
+      'left_field' => 'id',
+      'field' => 'userid'
+    ),
+    'workunit' => array(
+      'left_field' => 'id',
+      'field' => 'workunitid'
+    ),
+    'host' => array(
+      'left_field' => 'id',
+      'field' => 'hostid'
+    )
+  );
+  
+  // Primary keys allowed as arguments
+
+  $data['result']['id'] = array(
+    'title' => bts('Task ID', array(), NULL, 'boinc:task-details'),
+    'help' => t('The ID number of this result.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['result']['userid'] = array(
+    'title' => bts('User ID', array(), NULL, 'boinc:user-details'),
+    'help' => t('The owner of this result.'),
+    // Foreign key to the {user} table
+    'argument' => array(
+      'handler' => 'views_handler_argument_boincuser_id',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'user',
+      'field' => 'userid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('User')
+    )
+  );
+  $data['result']['workunitid'] = array(
+    'title' => bts('Workunit ID', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The workunit associated with this result.'),
+    // Foreign key to the {workunit} table
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'workunit',
+      'field' => 'workunitid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Workunit')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['hostid'] = array(
+    'title' => bts('Host ID', array(), NULL, 'boinc:task-details'),
+    'help' => t('The host associated with this result.'),
+    // Foreign key to the {host} table
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'host',
+      'field' => 'hostid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Host')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of result fields (alphabetized)
+  
+  $data['result']['appid'] = array(
+    'title' => bts('Application ID', array(), NULL, 'boinc:application-details'),
+    'help' => t('The ID number of the application.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['app_version_id'] = array(
+    'title' => bts('Application version', array(), NULL, 'boinc:task-details'),
+    'help' => t('The version number of the application.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['claimed_credit'] = array(
+    'title' => bts('Claimed credit', array(), NULL, 'boinc:task-details'),
+    'help' => t('The credit claimed for this result.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['client_state'] = array(
+    'title' => bts('Client state', array(), NULL, 'boinc:task-details'),
+    'help' => t('The state of the task on the client side.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['cpu_time'] = array(
+    'title' => bts('CPU time', array(), NULL, 'boinc:task-details'),
+    'help' => t('The CPU time spent on the task.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['create_time'] = array(
+    'title' => bts('Created', array(), NULL, 'boinc:task-details:-1:ignoreoverwrite'),
+    'help' => t('The time that the task was created.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['result']['elapsed_time'] = array(
+    'title' => bts('Run time', array(), NULL, 'boinc:task-details'),
+    'help' => t('The run time of the task.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['exit_status'] = array(
+    'title' => bts('Exit status', array(), NULL, 'boinc:task-details'),
+    'help' => t('The exit code of the task.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['granted_credit'] = array(
+    'title' => bts('Granted credit', array(), NULL, 'boinc:task-details'),
+    'help' => t('The credit granted for this result.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'),
+    'help' => t('The name of the task.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['result']['outcome'] = array(
+    'title' => bts('Outcome', array(), NULL, 'boinc:task-details'),
+    'help' => t('The outcome of the task.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['received_time'] = array(
+    'title' => bts('Received time', array(), NULL, 'boinc:task-details'),
+    'help' => t('The time that the result was received.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['result']['report_deadline'] = array(
+    'title' => bts('Report deadline', array(), NULL, 'boinc:task-details'),
+    'help' => t('The deadline for the task.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['result']['sent_time'] = array(
+    'title' => bts('Sent', array(), NULL, 'boinc:task-details'),
+    'help' => t('The time that the task was sent.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['result']['server_state'] = array(
+    'title' => bts('Server state', array(), NULL, 'boinc:task-details'),
+    'help' => t('The state of task on the server side.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['stderr_out'] = array(
+    'title' => bts('Stderr out', array(), NULL, 'boinc:task-details'),
+    'help' => t('The output to standard error.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['result']['validate_state'] = array(
+    'title' => bts('Validation state', array(), NULL, 'boinc:task-details'),
+    'help' => t('The state of validation of this result.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['peak_working_set_size'] = array(
+    'title' => bts('Peak working set size', array(), NULL, 'boinc:task-details'),
+    'help' => t('Peak working set size.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['result']['peak_swap_size'] = array(
+    'title' => bts('Peak swap size', array(), NULL, 'boinc:task-details'),
+    'help' => t('Peak swap size.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+    $data['result']['peak_disk_usage'] = array(
+    'title' => bts('Peak disk usage', array(), NULL, 'boinc:task-details'),
+    'help' => t('Peak disk usage.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+
+  
+  // ------------------------------------------------------------------------------------------------
+  // Definition for workunit table
+  // ------------------------------------------------------------------------------------------------
+  
+  $data['workunit']['table']['group'] = t('BOINC');
+  $data['workunit']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC workunit'),
+      'help' => t('Workunits produced by BOINC'),
+      'database' => 'boinc'
+  );
+  
+  // Create implicit relationship to the app table
+  
+  $data['workunit']['table']['join'] = array(
+    'app' => array(
+      'left_field' => 'id',
+      'field' => 'appid'
+    )
+  );
+  
+  // Primary keys allowed as arguments
+  
+  $data['workunit']['id'] = array(
+    'title' => bts('Workunit ID', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The ID number of this workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['workunit']['appid'] = array(
+    'title' => bts('Application ID', array(), NULL, 'boinc:application-details'),
+    'help' => t('The application associated with this workunit.'), 
+    'argument' => array( // foreign key to the {app} table
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'app',
+      'field' => 'appid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Application')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of workunit fields (alphabetized)
+  
+  $data['workunit']['canonical_credit'] = array(
+    'title' => bts('Canonical credit', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The canonical credit of the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+      'float' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['canonical_resultid'] = array(
+    'title' => bts('Canonical result ID', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The ID of the canonical result associated with the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['create_time'] = array(
+    'title' => bts('Created time', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The time that the workunit was created.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date'
+    )
+  );
+  $data['workunit']['error_mask'] = array(
+    'title' => bts('Error mask', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('Error mask of the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['min_quorum'] = array(
+    'title' => bts('Minimum quorum', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('Minimum quorum of the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreovewrite'),
+    'help' => t('The name of the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['workunit']['max_error_results'] = array(
+    'title' => bts('Max error tasks', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The maximum number of error tasks in the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['max_success_results'] = array(
+    'title' => bts('Max success tasks', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The maximum number of successful tasks in the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['max_total_results'] = array(
+    'title' => bts('Max total tasks', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The maximum number of total tasks in the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['need_validate'] = array(
+    'title' => bts('Needs validation', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('Whether or not a workunit needs validation.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['workunit']['target_nresults'] = array(
+    'title' => bts('Initial replication', array(), NULL, 'boinc:workunit-details'),
+    'help' => t('The target number of results for the workunit.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // ------------------------------------------------------------------------------------------------
+  // Definition for app table
+  // ------------------------------------------------------------------------------------------------
+  
+  $data['app']['table']['group'] = t('BOINC');
+  $data['app']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC app'),
+      'help' => t('Research applications run by BOINC'),
+      'database' => 'boinc'
+  );
+  
+  // Primary keys allowed as arguments
+
+  $data['app']['id'] = array(
+    'title' => bts('Application ID', array(), NULL, 'boinc:application-details'),
+    'help' => t('The ID number of this application.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of app fields (alphabetized)
+  
+  $data['app']['target_nresults'] = array(
+    'title' => bts('Target number of results', array(), NULL, 'boinc:application-details'),
+    'help' => t('The number of times to replicate tasks in this application.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['app']['user_friendly_name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'),
+    'help' => t('The user friendly name of the application.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  
+  // ------------------------------------------------------------------------------------------------
+  // Definition for app_version table
+  // ------------------------------------------------------------------------------------------------
+  
+  $data['app_version']['table']['group'] = t('BOINC');
+  $data['app_version']['table']['base'] = array(
+      'field' => 'id',
+      'title' => t('BOINC app version'),
+      'help' => t('Versions of research applications run by BOINC'),
+      'database' => 'boinc'
+  );
+  
+  // Primary keys allowed as arguments
+
+  $data['app_version']['id'] = array(
+    'title' => bts('Application version ID', array(), NULL, 'boinc:application-details'),
+    'help' => t('The ID number of this application version.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['app_version']['appid'] = array(
+    'title' => bts('Application ID', array(), NULL, 'boinc:application-details'),
+    'help' => t('The application ID associated with this app version.'),
+    // Because this is a foreign key to the {app} table. This allows us to
+    // have, when the view is configured with this relationship, all the fields
+    // for the related node available.
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'app',
+      'field' => 'id',
+      'handler' => 'views_handler_relationship',
+      'label' => t('App ID')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  $data['app_version']['platformid'] = array(
+    'title' => bts('Platform ID', array(), NULL, 'boinc:platform-details'),
+    'help' => t('The platform ID associated with this app version.'),
+    // Because this is a foreign key to the {platform} table. This allows us to
+    // have, when the view is configured with this relationship, all the fields
+    // for the related node available.
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'platform',
+      'field' => 'id',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Platform ID')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of app fields (alphabetized)
+  
+  $data['app_version']['plan_class'] = array(
+    'title' => bts('Plan class', array(), NULL, 'boinc:application-details'),
+    'help' => t('App version plan class.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  $data['app_version']['version_num'] = array(
+    'title' => bts('Version number', array(), NULL, 'boinc:application-details'),
+    'help' => t('The application version number.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boincwork_app_version_number',
+      'click sortable' => TRUE,
+      'float' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // ------------------------------------------------------------------------------------------------
+  // Definition for host_app_version table
+  // ------------------------------------------------------------------------------------------------
+  
+  $data['host_app_version']['table']['group'] = t('BOINC');
+  
+  // This table references the {host} table.
+  // This join creates an 'implicit' relationship to the host table, so that when
+  // "Host" is the base table, the fields are automatically available.
+  
+  // Index this array by the table name to which this table refers.
+  // 'left_field' is the primary key in the referenced table.
+  // 'field' is the foreign key in this table.
+  
+  $data['host_app_version']['table']['join'] = array(
+    'host' => array(
+      'left_field' => 'id',
+      'field' => 'host_id',
+    )
+  );
+  
+  // Primary keys allowed as arguments
+
+  $data['host_app_version']['host_id'] = array(
+    'title' => bts('Computer', array(), NULL, 'boinc:host-details'),
+    'help' => t('The host ID connected to this app version data.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Foreign key fields
+  
+  $data['host_app_version']['app_version_id'] = array(
+    'title' => bts('App version ID', array(), NULL, 'boinc:application-details'),
+    'help' => t('The app version ID connected to this host data.'),
+    // Because this is a foreign key to the {host} table. This allows us to
+    // have, when the view is configured with this relationship, all the fields
+    // for the related node available.
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'name field' => 'title',
+      'numeric' => TRUE,
+      'validate type' => 'id'
+    ),
+    'relationship' => array(
+      'base' => 'app_version',
+      'field' => 'id',
+      'handler' => 'views_handler_relationship',
+      'label' => t('App version')
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  
+  // Descriptions of host_app_version fields (alphabetized)
+  
+  $data['host_app_version']['consecutive_valid'] = array(
+    'title' => bts('Consecutive valid tasks', array(), NULL, 'boinc:application-details'),
+    'help' => t('The number of consecutive valid tasks for this app and by this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host_app_version']['et_avg'] = array(
+    'title' => t('Average processing rate'),
+    'help' => t('The "et_avg" for this app and by this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boincwork_host_app_et_avg',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host_app_version']['et_n'] = array(
+    'title' => bts('Number of tasks completed', array(), NULL, 'boinc:application-details'),
+    'help' => t('The tasks completed for this app and by this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host_app_version']['max_jobs_per_day'] = array(
+    'title' => bts('Max tasks per day', array(), NULL, 'boinc:application-details'),
+    'help' => t('The maximum tasks per day for this app and by this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host_app_version']['n_jobs_today'] = array(
+    'title' => bts('Number of tasks today', array(), NULL, 'boinc:application-details'),
+    'help' => t('The number of tasks today for this app and by this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host_app_version']['turnaround_avg'] = array(
+    'title' => bts('Average turnaround time', array(), NULL, 'boinc:application-details:-1:ignoreoverwrite'),
+    'help' => t('The average turnaround time per task for this app and by this host.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boincwork_host_app_turnaround_avg',
+      'click sortable' => TRUE,
+      'float' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_numeric'
+    )
+  );
+  $data['host_app_version']['user_friendly_name'] = array(
+    'title' => bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'),
+    'help' => t('The user friendly name of the application.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_string'
+    )
+  );
+  
+  return $data;
+}
+
+/*
+ * hook_views_handlers(): Reference custom handlers for data.
+ * Custom handlers can manipulate data in useful ways. The boincuser_id
+ * argument takes a Drupal user ID and converts it to BOINC ID via a
+ * reference table for seamless access of user data in the BOINC database.
+ */
+
+function boincwork_views_handlers() {
+  
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'boincwork') . '/views',
+    ),
+    'handlers' => array(
+      'views_handler_argument_boincuser_id' => array(
+        'parent' => 'views_handler_argument_numeric'
+      ),
+      'views_handler_field_boincwork_app_version_number' => array(
+        'parent' => 'views_handler_field_numeric'
+      ),
+      'views_handler_field_boincwork_host_app_et_avg' => array(
+        'parent' => 'views_handler_field_numeric'
+      ),
+      'views_handler_field_boincwork_host_app_turnaround_avg' => array(
+        'parent' => 'views_handler_field_numeric'
+      ),
+    )
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/boincwork/includes/boincwork.forms.inc b/drupal/sites/default/boinc/modules/boincwork/includes/boincwork.forms.inc
new file mode 100644
index 0000000..e15749d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/includes/boincwork.forms.inc
@@ -0,0 +1,1794 @@
+<?php
+// $Id$
+
+/**
+ * Form submission handlers and data processing functions are contained
+ * herein to prevent littering of the main module file.
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * General preferences form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * The structure of the general preferences form
+ */
+function boincwork_generalprefs_form(&$form_state, $venue, $prefs_preset = null, $advanced = FALSE) {
+  $form = array();
+  $prefs = null;
+  $established = TRUE;
+  
+  // Enable AHAH form support for dynamically updating content based on preset
+  ahah_helper_register($form, $form_state);
+  
+  if (!$prefs_preset) {
+    if (isset($form_state['storage']['prefs']['preset'])) {
+      $prefs_preset = $form_state['storage']['prefs']['preset'];
+    }
+    
+    // Load preferences from BOINC account
+    $prefs = boincwork_load_prefs('general', $venue);
+    
+    // Take note if this is not an established preference set on the account
+    if (isset($prefs['@attributes']['cleared'])) {
+      $established = FALSE;
+    }
+    
+    // Determine if a preset is selected or if these are custom settings
+    // transform old way to store the preset into new way
+    if (isset($prefs['@attributes']['preset'])) {
+        $prefs['preset'] = $prefs['@attributes']['preset'];
+        unset($prefs['@attributes']['preset']);
+    }
+    // Set $prefs_preset if preset tag is present in database.
+    if (!$prefs_preset) {
+        if (isset($prefs['preset'])) {
+            $prefs_preset = $prefs['preset']['@value'];
+        }
+    }// if !$prefs_preset
+  }
+  // Extract mod_time tag if present, because it will be erased with
+  // boincwork_get_preset_prefs() below.
+  $mod_time = null;
+  if (isset($prefs['mod_time']['@value'])) {
+      $mod_time = $prefs['mod_time']['@value'];
+  }
+
+  if (isset($form_state['storage']['wip'])) {
+      switch ($prefs_preset) {
+      case 'standard':
+      case 'maximum':
+      case 'green':
+      case 'minimum':
+          $prefs = boincwork_get_preset_prefs($prefs_preset);
+          break;
+      case 'custom':
+      default:
+          // Just keeps prefs as they are
+          unset($prefs['preset']);
+          break;
+      }// switch
+  } else {
+      $form_state['storage']['wip'] = TRUE;
+      if ( !in_array($prefs_preset, array('standard','maximum','green','minimum','custom')) ) {
+          if ($established) {
+              $prefs_preset = 'custom';
+          } else {
+              $prefs_preset = 'standard';
+              $prefs = boincwork_get_preset_prefs($prefs_preset);
+          }// if $established
+      }// if $prefs_preset
+  }// if WIP
+  
+  // This set of preferences is used in the form if no preferences
+  // have been set above, in variable $prefs.
+  require_boinc(array('db', 'prefs'));
+  $disk_space_config = get_disk_space_config();
+  $default = array(
+    'preset' => $prefs_preset,
+    // Processing...
+    'run_on_batteries' => 0,
+    'run_if_user_active' => 0,
+    'run_gpu_if_user_active' => 1,
+    'idle_time_to_run' => 3,
+    'suspend_if_no_recent_input' => 0,
+    'suspend_cpu_usage' => 0,
+    'start_hour' => 0,
+    'end_hour' => 0,
+    'leave_apps_in_memory' => 0,
+    'cpu_scheduling_period_minutes' => 60,
+    'max_ncpus_pct' => 100,
+    'cpu_usage_limit' => 100,
+    // Storage...
+    'disk_max_used_gb' => $disk_space_config->disk_max_used_gb,
+    'disk_min_free_gb' => $disk_space_config->disk_min_free_gb,
+    'disk_max_used_pct' => $disk_space_config->disk_max_used_pct,
+    'disk_interval' => 60,
+    'vm_max_used_pct' => 75,
+    'ram_max_used_busy_pct' => 50,
+    'ram_max_used_idle_pct' => 90,
+    // Network...
+    'work_buf_min_days' => 0,
+    'work_buf_additional_days' => 0.25,
+    'confirm_before_connecting' => 0,
+    'hangup_if_dialed' => 0,
+    'max_bytes_sec_down' => 0,
+    'max_bytes_sec_up' => 0,
+    'net_start_hour' => 0,
+    'net_end_hour' => 0,
+    'daily_xfer_limit_mb' => 0,
+    'daily_xfer_period_days' => 0,
+    'dont_verify_images' => 0
+  );
+  foreach ($default as $name => $value) {
+    if (isset($prefs[$name])) {
+      if (is_array($prefs[$name])) {
+        if (isset($prefs[$name]['@value'])) {
+          $default[$name] = $prefs[$name]['@value'];
+        }
+      }
+      else {
+        $default[$name] = $prefs[$name];
+      }
+    }
+  }
+
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
+  );
+  $form['hour_options'] = array(
+    '#type' => 'value',
+    '#value' => array('0:00','1:00','2:00','3:00','4:00', 
+     '5:00','6:00','7:00','8:00','9:00','10:00','11:00', 
+     '12:00','13:00','14:00','15:00','16:00','17:00',
+     '18:00','19:00','20:00','21:00','22:00','23:00')
+  );
+  
+  // Identify preference sets that are established to distinguish what has been
+  // saved to the database from what is just showing default values
+  $form['#established'] = $established;
+   
+  // Set up the preference container for AHAH
+  $form['prefs'] = array(
+    '#title' => '',
+    '#type' => 'fieldset',
+    '#prefix' => '<div id="prefs-wrapper">', // This is our wrapper div.
+    '#attributes' => array('class' => 'ahah-container'),
+    '#suffix' => '</div>',
+    '#tree'   => TRUE
+  );
+  //$form['prefs']['debug'] = array('#value' => '<pre>' . print_r($form_state, true) . '</pre>');
+  
+  // Hidden elements
+  $form['prefs']['modified'] = array(
+    '#type' => 'hidden',
+    '#value' => $mod_time
+  );
+  $form['prefs']['venue'] = array(
+    '#type' => 'hidden',
+    '#value' => $venue
+  );
+  
+  $form['prefs']['separator_top'] = array(
+    '#value' => '<div class="separator"></div>'
+  );
+  
+  // Simplified selectors
+  $form['prefs']['preset'] = array(
+      '#title' => bts('Presets', array(), NULL, 'boinc:account-preferences-preset:-1:for a user to choose a computing or project preference preset.'),
+    '#type' => 'radios',
+    '#description' => ' ',
+    '#options' => array(
+      'standard' => bts('Standard', array(), NULL, 'boinc:account-preferences-preset'),
+      'maximum' => bts('Maximum', array(), NULL, 'boinc:account-preferences-preset'),
+      'green' => bts('Green', array(), NULL, 'boinc:account-preferences-preset'),
+      'minimum' => bts('Minimum', array(), NULL, 'boinc:account-preferences-preset'),
+      'custom' => bts('Custom', array(), NULL, 'boinc:account-preferences-preset')
+    ),
+    '#prefix' => '<div class="simple-form-controls">',
+    '#suffix' => '</div>',
+    '#default_value' => $default['preset'],
+    '#ahah' => array(
+      'event' => 'change',
+      'path' => ahah_helper_path(array('prefs')),
+      'wrapper' => 'prefs-wrapper'
+    )
+  );
+  $form['prefs']['select preset'] = array(
+    '#type'  => 'submit',
+    '#value' => bts('Update preset', array(), NULL, 'boinc:account-preferences-preset'),
+    '#submit' => array('ahah_helper_generic_submit'),
+    // The 'no-js' class only displays this button if javascript is disabled
+    '#attributes' => array('class' => 'no-js'),
+  );
+  
+  // Advanced preferences
+  $form['prefs']['advanced'] = array(
+    '#title' => bts('Advanced settings', array(), NULL, 'boinc:account-preferences-option'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => TRUE,
+    '#collapsed' => !$advanced,
+    '#attributes' => array('class' => 'advanced-settings'),
+  );
+  
+  // Processing preferences
+  
+  $form['prefs']['advanced']['anchor'] = array(
+    '#value' => '<a name="advanced"></a>'
+  );
+  
+  $form['prefs']['advanced']['separator_top'] = array(
+    '#value' => '<div class="separator"></div>'
+  );
+  
+  $form['prefs']['advanced']['processor'] = array(
+    '#title' => bts('Processor usage', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => FALSE,
+    '#collapsed' => FALSE
+  );
+  $form['prefs']['advanced']['processor']['run_on_batteries'] = array(
+    '#title' => bts('Suspend when computer is on battery?', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'radios',
+    '#description' => bts('Suspends computing on portables when running on battery power.', array(), NULL, 'boinc:account-preferences-computing'),
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => ($default['run_on_batteries']) ? 0 : 1 // intentional inversion of setting
+  );
+  $form['prefs']['advanced']['processor']['run_if_user_active'] = array(
+    '#title' => bts('Suspend when computer is in use?', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'radios',
+    '#description' => bts("Suspends computing and file transfers when you're using the computer.", array(), NULL, 'boinc:account-preferences-computing'),
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => ($default['run_if_user_active']) ? 0 : 1 // intentional inversion of setting
+  );
+  $form['prefs']['advanced']['processor']['run_gpu_if_user_active'] = array(
+    '#title' => bts('Suspend GPU computing when computer is in use?', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'radios',
+    '#description' => bts("Suspends GPU computing when you're using the computer.", array(), NULL, 'boinc:account-preferences-computing'),
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => ($default['run_gpu_if_user_active']) ? 0 : 1 // intentional inversion of setting
+  );
+  $form['prefs']['advanced']['processor']['idle_time_to_run'] = array(
+      '#title' => bts('"In use" means mouse/keyboard input in last', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('minutes', array(), NULL, 'boinc:unit-of-time'),
+    '#default_value' => $default['idle_time_to_run'],
+    '#size' => 1,
+    '#description' => bts('This determines when the computer is considered "in use".', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['processor']['suspend_if_no_recent_input'] = array(
+    '#title' => bts('Suspend when no mouse/keyboard input in last', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('minutes', array(), NULL, 'boinc:unit-of-time'),
+    '#default_value' => $default['suspend_if_no_recent_input'],
+    '#size' => 1,
+    '#description' => bts('This allows some computers to enter low-power mode when not in use.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['processor']['suspend_cpu_usage'] = array(
+    '#title' => bts('Suspend when non-BOINC CPU usage is above', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => '%',
+    '#default_value' => $default['suspend_cpu_usage'],
+    '#size' => 1,
+    '#description' => bts('Suspend computing when your computer is busy running other programs.', array(), NULL, 'boinc:account-preferences-computing'),
+  );
+  $form['prefs']['advanced']['processor']['hour_label'] = array(
+    '#value' => '<div class="form-item"><label>' . bts('Compute only between:', array(), NULL, 'boinc:account-preferences-computing') . '</label></div>'
+  );
+  $form['prefs']['advanced']['processor']['start_hour'] = array(
+    '#type' => 'select',
+    '#options' => $form['hour_options']['#value'],
+    '#default_value' => $default['start_hour']
+  );
+  $form['prefs']['advanced']['processor']['hour_delimiter'] = array(
+    '#value' => '<span>' . bts('and', array(), NULL, 'boinc:account-preference') . '</span>'
+  );
+  $form['prefs']['advanced']['processor']['end_hour'] = array(
+    '#type' => 'select',
+    '#options' => $form['hour_options']['#value'],
+    '#default_value' => $default['end_hour']
+  );
+  $form['prefs']['advanced']['processor']['hour_description'] = array(
+    '#value' => '<div class="form-item slim"><div class="description">' . bts('Compute only during a particular period each day.', array(), NULL, 'boinc:account-preferences-computing') . '</div></div>'
+  );
+  $form['prefs']['advanced']['processor']['leave_apps_in_memory'] = array(
+    '#title' => bts('Leave non-GPU tasks in memory while suspended?', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['leave_apps_in_memory'],
+    '#description' => bts('If "Yes", suspended tasks stay in memory, and resume with no work lost. If "No", suspended tasks are removed from memory, and resume from their last checkpoint.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes'] = array(
+    '#title' => bts('Switch between tasks every', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('minutes', array(), NULL, 'boinc:unit-of-time'),
+    '#default_value' => $default['cpu_scheduling_period_minutes'],
+    '#size' => 1,
+    '#description' => bts('If you run several projects, BOINC may switch between them this often.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['processor']['max_ncpus_pct'] = array(
+    '#title' => bts('Use at most', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('% of the processors', array(), NULL, 'boinc:account-preferences-computing'),
+    '#default_value' => $default['max_ncpus_pct'],
+    '#size' => 1,
+    '#description' => bts('Keep some CPUs free for other applications. Example: 75% means use 6 cores on an 8-core CPU.', array(), NULL, 'boinc:account-preferences-computing'),
+  );
+  $form['prefs']['advanced']['processor']['cpu_usage_limit'] = array(
+    '#title' => bts('Use at most', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('% of the CPU time', array(), NULL, 'boinc:account-preferences-computing'),
+    '#default_value' => $default['cpu_usage_limit'],
+    '#size' => 1,
+    '#description' => bts('Suspend/resume computing every few seconds to reduce CPU temperature and energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, and repeat.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  
+  // Disk and memory preferences
+  $form['prefs']['advanced']['storage'] = array(
+    '#title' => bts('Disk and memory usage', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => FALSE,
+    '#collapsed' => FALSE
+  );
+  $form['prefs']['advanced']['storage']['disk_max_used_gb'] = array(
+    '#title' => bts('Disk: use no more than', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => 'GB',
+    '#default_value' => $default['disk_max_used_gb'],
+    '#size' => 1,
+    '#description' => bts('Limit the total amount of disk space used by BOINC.', array(), NULL, 'boinc:account-preferences-computing'),
+  ); 
+  $form['prefs']['advanced']['storage']['disk_min_free_gb'] = array(
+    '#title' => bts('Disk: leave at least', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => 'GB free',
+    '#default_value' => $default['disk_min_free_gb'],
+    '#size' => 1,
+    '#description' => bts('Limit disk usage to leave this much free space on the volume where BOINC stores data.', array(), NULL, 'boinc:account-preferences-computing'),
+  );
+  $form['prefs']['advanced']['storage']['disk_max_used_pct'] = array(
+    '#title' => bts('Disk: use no more than', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
+    '#default_value' => $default['disk_max_used_pct'],
+    '#size' => 1,
+    '#description' => bts('Limit the percentage of disk space used by BOINC on the volume where it stores data.', array(), NULL, 'boinc:account-preferences-computing')
+  ); 
+  $form['prefs']['advanced']['storage']['disk_interval'] = array(
+    '#title' => bts('Request tasks to checkpoint at most every', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('seconds', array(), NULL, 'boinc:unit-of-time'),
+    '#default_value' => $default['disk_interval'],
+    '#size' => 1,
+    '#description' => bts('This controls how often tasks save their state to disk, so that later they can be continued from that point.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['storage']['vm_max_used_pct'] = array(
+    '#title' => bts('Page/swap file: use at most', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
+    '#default_value' => $default['vm_max_used_pct'],
+    '#size' => 1,
+    '#description' => bts('Limit the swap space (page file) used by BOINC.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['storage']['ram_max_used_busy_pct'] = array(
+    '#title' => bts('Memory: when computer is in use, use at most', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
+    '#default_value' => $default['ram_max_used_busy_pct'],
+    '#size' => 1,
+    '#description' => bts("Limit the memory used by BOINC when you're using the computer.", array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['storage']['ram_max_used_idle_pct'] = array(
+    '#title' => bts('Memory: when computer is not in use, use at most', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
+    '#default_value' => $default['ram_max_used_idle_pct'],
+    '#size' => 1,
+    '#description' => bts("Limit the memory used by BOINC when you're not using the computer.", array(), NULL, 'boinc:account-preferences-computing')
+  );
+  
+  // Network preferences
+  $form['prefs']['advanced']['network'] = array(
+    '#title' => bts('Network usage', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'fieldset',
+    '#description' => '',
+    '#collapsible' => FALSE,
+    '#collapsed' => FALSE
+  );
+  $form['prefs']['advanced']['network']['work_buf_min_days'] = array(
+    '#title' => bts('Store at least', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('days of work', array(), NULL, 'boinc:account-preferences-computing'),
+    '#default_value' => $default['work_buf_min_days'],
+    '#size' => 1,
+    '#description' => bts('Store at least enough tasks to keep the computer busy for this long.', array(), NULL, 'boinc:account-preferences-computing')
+  ); 
+  $form['prefs']['advanced']['network']['work_buf_additional_days'] = array(
+    '#title' => bts('Store up to an additional', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => bts('days', array(), NULL, 'boinc:unit-of-time'),
+    '#default_value' => $default['work_buf_additional_days'],
+    '#size' => 1,
+    '#description' => bts('Store additional tasks above the minimum level.  Determines how much work is requested when contacting a project.', array(), NULL, 'boinc:account-preferences-computing')
+  ); 
+  $form['prefs']['advanced']['network']['confirm_before_connecting'] = array(
+    '#title' => bts('Confirm before connecting to Internet?', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['confirm_before_connecting'],
+    '#description' => bts('Useful only if you have a modem, ISDN or VPN connection.', array(), NULL, 'boinc:account-preferences-computing')
+  ); 
+  $form['prefs']['advanced']['network']['hangup_if_dialed'] = array(
+    '#title' => bts('Disconnect when done?', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['hangup_if_dialed'],
+    '#description' => bts('Useful only if you have a modem, ISDN or VPN connection.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['network']['max_bytes_sec_down'] = array(
+    '#title' => bts('Limit download rate to', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => 'Kbytes/sec',
+    '#default_value' => $default['max_bytes_sec_down']/1000,
+    '#size' => 1,
+    '#description' => bts('Limit the download rate of file transfers.', array(), NULL, 'boinc:account-preferences-computing')
+  ); 
+  $form['prefs']['advanced']['network']['max_bytes_sec_up'] = array(
+    '#title' => bts('Limit upload rate to', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => 'Kbytes/sec',
+    '#default_value' => $default['max_bytes_sec_up']/1000,
+    '#size' => 1,
+    '#description' => bts('Limit the upload rate of file transfers.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  $form['prefs']['advanced']['network']['hour_label'] = array(
+    '#value' => '<div class="form-item"><label>' . bts('Transfer files only between', array(), NULL, 'boinc:account-preferences-computing') . '</label></div>'
+  );
+  $form['prefs']['advanced']['network']['net_start_hour'] = array(
+    '#type' => 'select',
+    '#options' => $form['hour_options']['#value'],
+    '#default_value' => $default['net_start_hour']
+  );
+  $form['prefs']['advanced']['network']['hour_delimiter'] = array(
+    '#value' => '<span>' . bts('and', array(), NULL, 'boinc:account-preference') . '</span>'
+  );
+  $form['prefs']['advanced']['network']['net_end_hour'] = array(
+    '#type' => 'select',
+    '#options' => $form['hour_options']['#value'],
+    '#default_value' => $default['net_end_hour']
+  );
+  $form['prefs']['advanced']['network']['hour_description'] = array(
+    '#value' => '<div class="form-item slim"><div class="description">' . bts('Transfer files only during a particular period each day.', array(), NULL, 'boinc:account-preferences-computing') . '</div></div>'
+  ); 
+  $form['prefs']['advanced']['network']['daily_xfer_limit_mb'] = array(
+    '#title' => bts('Limit usage to', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'textfield',
+    '#field_suffix' => 'Mbytes',
+    '#default_value' => $default['daily_xfer_limit_mb'],
+    '#size' => 1
+  ); 
+  $form['prefs']['advanced']['network']['daily_xfer_period_days'] = array(
+    '#field_prefix' => 'every',
+    '#type' => 'textfield',
+    '#field_suffix' => bts('days', array(), NULL, 'boinc:unit-of-time'),
+    '#default_value' => $default['daily_xfer_period_days'],
+    '#size' => 1,
+    '#description' => bts('Example: BOINC should transfer at most 2000 MB of data every 30 days.', array(), NULL, 'boinc:account-preferences-computing'),
+  ); 
+  $form['prefs']['advanced']['network']['dont_verify_images'] = array(
+    '#title' => bts('Skip data verification for image files?', array(), NULL, 'boinc:account-preferences-computing'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['dont_verify_images'],
+    '#description' => bts('Only select "Yes" if your Internet provider modifies image files. Skipping verification reduces the security of BOINC.', array(), NULL, 'boinc:account-preferences-computing')
+  );
+  
+  // The "fancy radios" are made via javascript on document load. In order for
+  // these to work with AHAH, we need this crazy setTimeout() call.
+  $form['prefs']['fancy-radios'] = array(
+    '#value' => '
+      <script>
+        setTimeout(
+          function() {
+            fancyRadiosInit();
+            customPrefsListener();
+          },
+          300
+        )
+      </script>'
+  );
+  $form['prefs']['view advanced'] = array(
+    '#type' => 'hidden',
+    '#value' => 1
+  );
+  
+  $form['prefs']['separator_bottom'] = array(
+    '#value' => '<div class="separator buttons"></div>'
+  );
+  
+  // Form control
+  $form['prefs']['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['prefs']['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
+    '#suffix' => '</li>'
+  );
+  $form['prefs']['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), drupal_get_path_alias("account/prefs/computing/edit")) . '</li>'
+  );
+  if ($venue AND $venue != 'generic') {
+    global $base_path;
+    $form['prefs']['form control tabs']['#value'] .= '<li class="tab">' . 
+      l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/computing/clear/{$venue}",
+        array(
+          'query' => 'destination=' . urlencode(drupal_get_path_alias('account/prefs/computing/combined')),
+          'attributes' => array(
+            'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the @name preference set. Are you sure?',
+              array('@name' => $venue), array(), NULL, 'boinc:account-preferences') . '\')'
+          )
+        )
+      ) . '</li>';
+  }
+  $form['prefs']['view control'] = array(
+    '#value' => '<li class="first alt tab">' . l('(' . bts('Show comparison view', array(), NULL, 'boinc:account-preferences') . ')', 'account/prefs/computing/combined') . '</li>'
+  );
+  $form['prefs']['form control tabs suffix'] = array(
+    '#value' => '</ul>'
+  );
+  $form['#submit'][] = 'boincwork_generalprefs_form_submit';
+  
+  return $form;
+}
+
+/**
+  * Validate the general preferences form.
+  */
+function boincwork_generalprefs_form_validate($form, &$form_state) {
+  require_boinc('util');
+  $values = $form_state['values']['prefs']['advanced'];
+  
+  //drupal_set_message('<pre>' . print_r($form_state['values'], true) . '</pre>');
+  // Verify all non-boolean user input values and notify form API of failures
+  
+  // Processing preferences
+  if (!verify_numeric($values['processor']['idle_time_to_run'], 1, 9999)) form_set_error('idle_time_to_run', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['idle_time_to_run']['#title']} [x] {$form['prefs']['advanced']['processor']['idle_time_to_run']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['processor']['suspend_if_no_recent_input'], 0, 9999)) form_set_error('suspend_if_no_recent_input', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['suspend_if_no_recent_input']['#title']} [x] {$form['prefs']['advanced']['processor']['suspend_if_no_recent_input']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['processor']['suspend_cpu_usage'], 0, 100)) form_set_error('suspend_cpu_usage', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['suspend_cpu_usage']['#title']} [x] {$form['prefs']['advanced']['processor']['suspend_cpu_usage']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['processor']['start_hour'], 0, 23)) form_set_error('start_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['start_hour']['#title']} [x] {$form['prefs']['advanced']['processor']['start_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['processor']['end_hour'], 0, 23)) form_set_error('end_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['end_hour']['#title']} [x] {$form['prefs']['advanced']['processor']['end_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['processor']['cpu_scheduling_period_minutes'], 1, 9999)) form_set_error('cpu_scheduling_period_minutes', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes']['#title']} [x] {$form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['processor']['max_ncpus_pct'], 0, 100)) form_set_error('max_ncpus_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['max_ncpus_pct']['#title']} [x] {$form['prefs']['advanced']['processor']['max_ncpus_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['processor']['cpu_usage_limit'], 0, 100)) form_set_error('cpu_usage_limit', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['cpu_usage_limit']['#title']} [x] {$form['prefs']['advanced']['processor']['cpu_usage_limit']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+
+  // Storage preferences
+  if (!verify_numeric($values['storage']['disk_max_used_gb'], 0, 9999999)) form_set_error('disk_max_used_gb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_max_used_gb']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_max_used_gb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['storage']['disk_min_free_gb'], 0.001, 9999999)) form_set_error('disk_min_free_gb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_min_free_gb']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_min_free_gb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['storage']['disk_max_used_pct'], 0, 100)) form_set_error('disk_max_used_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_max_used_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_max_used_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['storage']['disk_interval'], 0, 9999999)) form_set_error('disk_interval', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_interval']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_interval']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['storage']['vm_max_used_pct'], 0, 100)) form_set_error('vm_max_used_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['vm_max_used_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['vm_max_used_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['storage']['ram_max_used_busy_pct'], 0, 100)) form_set_error('ram_max_used_busy_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['ram_max_used_busy_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['ram_max_used_busy_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['storage']['ram_max_used_idle_pct'], 0, 100)) form_set_error('ram_max_used_idle_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['ram_max_used_idle_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['ram_max_used_idle_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+
+  // Network preferences
+  if (!verify_numeric($values['network']['work_buf_min_days'], 0, 10)) form_set_error('work_buf_min_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['work_buf_min_days']['#title']} [x] {$form['prefs']['advanced']['network']['work_buf_min_days']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['network']['work_buf_additional_days'], 0, 10)) form_set_error('work_buf_additional_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['work_buf_additional_days']['#title']} [x] {$form['prefs']['advanced']['network']['work_buf_additional_days']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['network']['max_bytes_sec_down'], 0, 9999.999)) form_set_error('max_bytes_sec_down', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['max_bytes_sec_down']['#title']} [x] {$form['prefs']['advanced']['network']['max_bytes_sec_down']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['network']['max_bytes_sec_up'], 0, 9999.999)) form_set_error('max_bytes_sec_up', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['max_bytes_sec_up']['#title']} [x] {$form['prefs']['advanced']['network']['max_bytes_sec_up']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['network']['net_start_hour'], 0, 23)) form_set_error('net_start_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['net_start_hour']['#title']} [x] {$form['prefs']['advanced']['network']['net_start_hour']['#field_suffix']}"), NULL, 'boinc:account-prefrences-computing'));
+  if (!verify_numeric($values['network']['net_end_hour'], 0, 23)) form_set_error('net_end_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['net_end_hour']['#title']} [x] {$form['prefs']['advanced']['network']['net_end_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['network']['daily_xfer_limit_mb'], 0, 9999999)) form_set_error('daily_xfer_limit_mb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#title']} [x] {$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+  if (!verify_numeric($values['network']['daily_xfer_period_days'], 0, 9999999)) form_set_error('daily_xfer_period_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#title']} [x] {$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
+}
+
+/**
+  * Handle post-validation submission of general preferences form.
+  */
+function boincwork_generalprefs_form_submit($form, &$form_state) {
+  global $user;
+  $account = user_load($user->uid);
+  
+  $values = $form_state['values']['prefs']['advanced'];
+  $venue = $form_state['values']['prefs']['venue'];
+  $preset = $form_state['values']['prefs']['preset'];
+  
+  // Load preferences from BOINC account
+  $prefs = boincwork_load_prefs('general', $venue);
+  
+  // Processing preferences
+  $prefs['run_on_batteries'] = ($values['processor']['run_on_batteries']) ? 0 : 1;
+  $prefs['run_if_user_active'] = ($values['processor']['run_if_user_active']) ? 0 : 1;
+  $prefs['run_gpu_if_user_active'] = ($values['processor']['run_gpu_if_user_active']) ? 0 : 1;
+  $prefs['idle_time_to_run'] = $values['processor']['idle_time_to_run'];
+  $prefs['suspend_if_no_recent_input'] = $values['processor']['suspend_if_no_recent_input'];
+  $prefs['suspend_cpu_usage'] = $values['processor']['suspend_cpu_usage'];
+  $prefs['start_hour'] = $values['processor']['start_hour'];
+  $prefs['end_hour'] = $values['processor']['end_hour'];
+  $prefs['leave_apps_in_memory'] = ($values['processor']['leave_apps_in_memory']) ? 1 : 0;
+  $prefs['cpu_scheduling_period_minutes'] = $values['processor']['cpu_scheduling_period_minutes'];
+  $prefs['max_ncpus_pct'] = $values['processor']['max_ncpus_pct'];
+  $prefs['cpu_usage_limit'] = $values['processor']['cpu_usage_limit'];
+  
+  // Storage preferences
+  $prefs['disk_max_used_gb'] = $values['storage']['disk_max_used_gb'];
+  $prefs['disk_min_free_gb'] = $values['storage']['disk_min_free_gb'];
+  $prefs['disk_max_used_pct'] = $values['storage']['disk_max_used_pct'];
+  $prefs['disk_interval'] = $values['storage']['disk_interval'];
+  $prefs['vm_max_used_pct'] = $values['storage']['vm_max_used_pct'];
+  $prefs['ram_max_used_busy_pct'] = $values['storage']['ram_max_used_busy_pct'];
+  $prefs['ram_max_used_idle_pct'] = $values['storage']['ram_max_used_idle_pct'];
+  
+  // Network preferences
+  $prefs['work_buf_min_days'] = $values['network']['work_buf_min_days'];
+  $prefs['work_buf_additional_days'] = $values['network']['work_buf_additional_days'];
+  $prefs['confirm_before_connecting'] = ($values['network']['confirm_before_connecting']) ? 1 : 0;
+  $prefs['hangup_if_dialed'] = ($values['network']['hangup_if_dialed']) ? 1 : 0;
+  $prefs['max_bytes_sec_down'] = $values['network']['max_bytes_sec_down']*1000;
+  $prefs['max_bytes_sec_up'] = $values['network']['max_bytes_sec_up']*1000;
+  $prefs['net_start_hour'] = $values['network']['net_start_hour'];
+  $prefs['net_end_hour'] = $values['network']['net_end_hour'];
+  $prefs['daily_xfer_limit_mb'] = $values['network']['daily_xfer_limit_mb'];
+  $prefs['daily_xfer_period_days'] = $values['network']['daily_xfer_period_days'];
+  $prefs['dont_verify_images'] = ($values['network']['dont_verify_images']) ? 1 : 0;
+
+  // transform old way to store the preset into new way
+  // ideally this should already have happened in boincwork_generalprefs_form()
+  if (isset($prefs['@attributes']['preset'])) {
+    $prefs['preset'] = $prefs['@attributes']['preset'];
+    unset($prefs['@attributes']['preset']);
+  }
+  // Save the preset selection (or lack thereof)
+  if (!$preset OR $preset == 'custom') {
+    $prefs['preset'] = 'custom';
+  }
+  else {
+    $prefs['preset'] = $preset;
+  }
+  
+  // If this is a new preference set, be sure to unset the "cleared" attribute
+  if (isset($prefs['@attributes']['cleared'])) {
+    unset($prefs['@attributes']['cleared']);
+  }
+  
+  // Update database
+  $result = boincwork_save_prefs($prefs, 'general', $venue);
+  
+  if (!$result) {
+    watchdog('boincwork', 'Error updating global prefs for user @id: @message', array('@id' => $account->id, '@message' => mysql_error()), WATCHDOG_ERROR);
+    drupal_set_message(t('Your changes could not be saved. Please contact support!'), 'error');
+  }
+  elseif (!drupal_get_messages('status', FALSE)) {
+    // Show this message if the set wasn't created automatically (in which case
+    // there is a message tailored to that) {
+    drupal_set_message(t('Your preferences have been updated.
+      Client-related preferences will take effect when your computer 
+      communicates with @project or you issue the "Update"
+      command from the BOINC client.', array('@project' => PROJECT)));
+  }
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Merge host form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */ 
+
+/**
+ * Find compatible hosts for merging
+ */
+function boincwork_host_get_compatible_hosts($host_id) {
+  require_boinc('host');
+  global $user;
+  $account = user_load($user->uid);
+  $compatible_hosts = array();
+  $host_count = 0;
+  db_set_active('boinc');
+  $current_host = db_fetch_object(db_query("
+    SELECT id, domain_name, create_time, total_credit, rpc_time, os_name,
+      p_vendor, p_model
+    FROM {host}
+    WHERE userid = '%d' AND id = '%d'",
+    $account->boincuser_id, $host_id
+  ));
+  db_set_active('default');
+  $current_host->task_count = boincwork_host_get_task_count($current_host->id);
+  $current_host->is_new = !$current_host->total_credit AND !$current_host->task_count;
+  // Get the list of all other hosts owned by this user for comparison
+  db_set_active('boinc');
+  $all_other_hosts = db_query("
+    SELECT id, domain_name, create_time, total_credit, rpc_time, os_name,
+      p_vendor, p_model
+    FROM {host}
+    WHERE userid = '%d' AND id <> '%d'",
+    $account->boincuser_id, $host_id
+  );
+  db_set_active('default');
+  // Compare all hosts to see if any are plausible duplicates
+  while ($other_host = db_fetch_object($all_other_hosts)) {
+    // First, disqualify if hosts were active at the same time
+    if (!$current_host->is_new) {
+      $other_host->task_count = boincwork_host_get_task_count($other_host->id);
+      $other_host->is_new = !$other_host->total_credit AND !$other_host->task_count;
+      if (!$other_host->is_new) {
+        // If both hosts being compared are not new, see if times overlap
+        if (!times_disjoint($current_host, $other_host)) {
+          // Hosts were active at the same time; can't be a duplicate
+          continue;
+        }
+      }
+    }
+    // Next, disqualify if hosts have different OS platforms
+    if (!os_compatible($current_host, $other_host)) {
+      // Hosts have different OS platforms; not really a duplicate
+      continue;
+    }
+    // Finally, disqualify if hosts have different CPUs
+    if (!cpus_compatible($current_host, $other_host)) {
+      // CPUs don't match; not a duplicate
+      continue;
+    }
+    // If not disqualified, this host is available for merging
+    $hosts[] = $other_host;
+    $host_count++;
+    if ($host_count == 500) {
+      // This is enough!
+      break;
+    }
+  }
+  return $hosts;
+}
+
+/**
+ * Perform the database updates to merge the old host into the new host
+ */
+function boincwork_host_merge($old_host, $new_host, &$message = NULL) {
+  // Decay the average credit of the two hosts
+  require_boinc('credit');
+  $now = time();
+  update_average($now, 0, 0, $old_host->expavg_credit, $old_host->expavg_time);
+  update_average($now, 0, 0, $new_host->expavg_credit, $new_host->expavg_time);
+  
+  // Update the database:
+  // - add credit from old host to new host
+  // - change results to refer to the new host
+  // - put old host in "zombie" state (userid=0, rpc_seqno=[new_host_id])
+  
+  $total_credit = $old_host->total_credit + $new_host->total_credit;
+  $recent_credit = $old_host->expavg_credit + $new_host->expavg_credit;
+  
+  // Move credit from the old host to the new host
+  db_set_active('boinc');
+  $credit_updated = db_query("
+    UPDATE {host}
+    SET
+      total_credit = '%d',
+      expavg_credit = '%d',
+      expavg_time = '%d'
+    WHERE id = '%d'",
+    $total_credit, $recent_credit, $now, $new_host->id
+  );
+  db_set_active('default');
+  if (!$credit_updated) {
+    if ($message !== NULL) {
+      $message = bts('Could not update credit', array(), NULL, 'boinc:account-host-merge');
+    }
+    return FALSE;
+  }
+  
+  // Move results from the old host to the new host
+  db_set_active('boinc');
+  $results_updated = db_query("
+    UPDATE {result}
+    SET hostid = '%d'
+    WHERE hostid = '%d'",
+    $new_host->id, $old_host->id
+  );
+  db_set_active('default');
+  if (!$results_updated) {
+    if ($message !== NULL) {
+      $message = bts('Could not update results', array(), NULL, 'boinc:account-host-merge');
+    }
+    return FALSE;
+  }
+  
+  // Retire the old host
+  db_set_active('boinc');
+  $old_host_retired = db_query("
+    UPDATE {host}
+    SET
+      total_credit = '0',
+      expavg_credit = '0',
+      userid = '0',
+      rpc_seqno = '%d'
+    WHERE id = '%d'",
+    $new_host->id, $old_host->id
+  );
+  db_set_active('default');
+  if (!$old_host_retired) {
+    if ($message !== NULL) {
+      $message = bts('Could not retire old computer', array(), NULL, 'boinc:account-host-merge');
+    }
+    return FALSE;
+  }
+  
+  return TRUE;
+}
+
+/**
+ * Merge host form
+ */
+function boincwork_host_merge_form(&$form_state, $host_id) {
+
+  if (!boincwork_host_user_is_owner($host_id)) {
+    drupal_goto("host/{$host_id}");
+  }
+  
+  $form = array();
+  $form_state['storage']['current_host_id'] = $host_id;
+  $current_host = boincwork_host_get_info($host_id);
+  
+  // Get hosts that could be merged with this one
+  $hosts = boincwork_host_get_compatible_hosts($host_id);
+  
+  if (!$hosts) {
+    drupal_set_message(t('There are no computers eligible for merging with this
+      one'), 'warning'
+    );
+    drupal_goto("host/{$host_id}");
+  }
+  
+  $form['overview'] = array(
+    '#value' => '<p>' . bts('Sometimes BOINC assigns separate identities to'
+      . ' the same computer by mistake. You can correct this by merging old'
+      . ' identities with the newest one.', array(), NULL, 'boinc:account-host-merge') . '</p>'
+      . '<p>'
+      . bts('Check the computers that are the same as @name'
+      . ' (created on @date at @time with computer ID @id)',
+        array(
+          '@name' => $current_host->domain_name,
+          '@date' => date('j M Y', $current_host->create_time),
+          '@time' => date('H:i:s T', $current_host->create_time),
+          '@id' => $current_host->id,
+        ),
+        NULL, 'boinc:account-host-merge') . '</p>',
+  );
+  
+  $options = array();
+  foreach ($hosts as $host) {
+    $options[$host->id] = array(
+      $host->domain_name,
+      date('j M Y H:i:s T', $host->create_time),
+      $host->id,
+    );
+  }
+  
+  $form['merge'] = array(
+    '#title' => '',
+    '#type' => 'tableselect',
+    '#header' => array(bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'), bts('Created', array(), NULL, 'boinc:host-details'), bts('Computer ID', array(), NULL, 'boinc:host-list')),
+    '#options' => $options,
+  );
+  
+  $form['prefs']['separator_bottom'] = array(
+  //  '#value' => '<div class="separator buttons"></div>'
+  );
+  
+  // Form control
+  $form['prefs']['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['prefs']['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Merge', array(), NULL, 'boinc:form-merge'),
+    '#suffix' => '</li>'
+  );
+  $form['prefs']['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "host/{$host_id}") . '</li>'
+  );
+  
+  return $form;
+}
+
+/**
+ * Validate the merge host form
+ */
+function boincwork_host_merge_form_validate($form, &$form_state) {
+}
+
+/**
+ * Handle submission of the merge host form
+ */
+function boincwork_host_merge_form_submit($form, &$form_state) {
+  $merged = array();
+  $errors = array();
+  $current_host_id = $form_state['storage']['current_host_id'];
+  $current_host = boincwork_host_get_info($current_host_id);
+  $selected_hosts = array_filter($form_state['values']['merge']);
+  
+  foreach ($selected_hosts as $host_id) {
+    // Attempt to merge each host, noting the results
+    $message = '';
+    $old_host = boincwork_host_get_info($host_id);
+    if (boincwork_host_merge($old_host, $current_host, $message)) {
+      $merged[$old_host->id] = $old_host->id;
+      $current_host = boincwork_host_get_info($current_host_id);
+    }
+    else {
+      $errors[$old_host->id] = $message;
+    }
+  }
+  
+  if ($merged) {
+    // Generate a natural language list of IDs that were merged
+    $oxford_comma = ',';
+    $conjunction = bts('and', array(), NULL, 'boinc:account-preference');
+    $list = array_keys($merged);
+    $last = array_pop($list);
+    if ($list) {
+      if (count($merged) == 2) {
+        $oxford_comma = '';
+      }
+      $list = implode(', ', $list) . $oxford_comma . ' ' . $conjunction . ' ' . $last;
+    }
+    else {
+      $list = $last;
+    }
+    if (count($merged) == 1) {
+      drupal_set_message(bts(
+        'Computer @old_id has been merged successfully into @id.',
+        array(
+          '@old_id' => $list,
+          '@id' => $current_host_id
+        ),
+        NULL, 'boinc:account-host-merge'));
+    }
+    else {
+      drupal_set_message(bts(
+        'Computers @old_ids have been merged successfully into @id.',
+        array(
+          '@old_ids' => $list,
+          '@id' => $current_host_id
+        ),
+        NULL, 'boinc:account-host-merge'));
+    }
+  }
+  
+  if ($errors) {
+    // Report any hosts that failed to merge
+    foreach ($errors as $id => $error) {
+      drupal_set_message(
+        bts('Computer @old_id failed to merge: @message',
+          array(
+            '@old_id' => $id,
+            '@message' => $error,
+          ),
+          NULL, 'boinc:account-host-merge'),
+        'warning'
+      );
+    }
+  }
+  
+  drupal_goto("host/{$current_host_id}");
+}
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Project preferences form handlers and functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */ 
+
+/**
+ * The structure of the project preferences form
+ */
+function boincwork_projectprefs_form(&$form_state, $venue) {
+  
+  global $user;
+  $account = user_load($user->uid);
+  
+  $established = TRUE;
+  
+  // Get availability of special BOINC preferences
+  require_boinc(array('util'));
+  $app_types = get_app_types();
+  
+  // Load any existing preferences from BOINC account
+  $prefs = boincwork_load_prefs('project', $venue);
+  
+  // Take note if this is not an established preference set on the account
+  if (isset($prefs['@attributes']['cleared'])) {
+    $established = FALSE;
+  }
+  
+  $venue_is_default = FALSE;
+  if ($account->boincuser_default_pref_set) {
+    if ($account->boincuser_default_pref_set == $venue) {
+      $venue_is_default = TRUE;
+    }
+  }
+  elseif (!$venue OR $venue == 'generic') {
+    $venue_is_default = TRUE;
+  }
+  else {
+    $venue_is_default = FALSE;
+  }
+  
+  // Define form defaults
+  $default = array(
+    'resource_share' => 100,
+    'no_cpu' => 0,
+    'no_cuda' => 0,
+    'no_ati' => 0,
+    'no_intel_gpu' => 0,
+    'default_venue' => $venue_is_default,
+    'allow_beta_work' => $prefs['allow_beta_work'],
+  );
+  foreach ($default as $name => $value) {
+    if (isset($prefs[$name])) {
+      if (is_array($prefs[$name])) {
+        if (isset($prefs[$name]['@value'])) {
+          $default[$name] = $prefs[$name]['@value'];
+        }
+      }
+      else {
+        $default[$name] = $prefs[$name];
+      }
+    }
+  }
+  
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
+  );
+  
+  // Identify preference sets that are established to distinguish what has been
+  // saved to the database from what is just showing default values
+  $form['#established'] = $established;
+  
+  // Top level form options
+  $form['#tree'] = TRUE;
+  
+  // Hidden elements
+  $form['venue'] = array(
+    '#type' => 'hidden',
+    '#value' => $venue
+  );
+  
+  $form['separator_top'] = array(
+    '#value' => '<div class="separator"></div>'
+  );
+  
+  // Common project preferences  
+  $form['resource'] = array(
+    '#title' => bts('Resource settings', array(), NULL, 'boinc:account-preferences-project'),
+    '#type' => 'fieldset',
+    '#description' => null,
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE
+  );
+  $form['resource']['resource_share'] = array(
+    '#title' => bts('Resource share', array(), NULL, 'boinc:account-preferences-project'),
+    '#type' => 'textfield',
+    '#default_value' => $default['resource_share'],
+    '#size' => 5,
+    '#description' => bts("Determines the proportion of your computer's resources allocated to this project. Example: if you participate in two BOINC projects with resource shares of 100 and 200, the first will get 1/3 of your resources and the second will get 2/3.", array(), NULL, 'boinc:account-preferences-project')
+  );
+  if ($app_types->count > 1) {
+    if ($app_types->cpu) {
+      $form['resource']['no_cpu'] = array(
+        '#title' => bts('Use CPU', array(), NULL, 'boinc:account-preferences-project'),
+        '#type' => 'radios',
+        '#options' => $form['boolean_options']['#value'],
+        '#attributes' => array('class' => 'fancy'),
+        '#default_value' => $default['no_cpu'] ? 0 : 1,
+        '#description' => bts('Request CPU-only tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
+      );
+    }
+    if ($app_types->cuda) {
+      $form['resource']['no_cuda'] = array(
+        '#title' => bts('Use NVIDIA GPU', array(), NULL, 'boinc:account-preferences-project'),
+        '#type' => 'radios',
+        '#options' => $form['boolean_options']['#value'],
+        '#attributes' => array('class' => 'fancy'),
+        '#default_value' => $default['no_cuda'] ? 0 : 1,
+        '#description' => bts('Request NVIDIA GPU tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
+      );
+    }
+    if ($app_types->ati) {
+      $form['resource']['no_ati'] = array(
+        '#title' => bts('Use ATI GPU', array(), NULL, 'boinc:account-preferences-project'),
+        '#type' => 'radios',
+        '#options' => $form['boolean_options']['#value'],
+        '#attributes' => array('class' => 'fancy'),
+        '#default_value' => $default['no_ati'] ? 0 : 1,
+        '#description' => bts('Request ATI GPU tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
+      );
+    }
+    if ($app_types->intel_gpu) {
+      $form['resource']['no_intel_gpu'] = array(
+        '#title' => bts('Use INTEL GPU', array(), NULL, 'boinc:account-preferences-project'),
+        '#type' => 'radios',
+        '#options' => $form['boolean_options']['#value'],
+        '#attributes' => array('class' => 'fancy'),
+        '#default_value' => $default['no_intel_gpu'] ? 0 : 1,
+        '#description' => bts('Request Intel GPU tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
+      );
+    }
+  }
+  
+  if (variable_get('boinc_prefs_options_beta', FALSE)) {
+    $form['beta'] = array(
+      '#title' => bts('Beta settings', array(), NULL, 'boinc:account-preferences-project'),
+      '#type' => 'fieldset',
+      '#description' => null,
+      '#collapsible' => TRUE,
+      '#collapsed' => FALSE
+    );
+    $form['beta']['allow_beta_work'] = array(
+      '#title' => bts('Run test applications?', array(), NULL, 'boinc:account-preferences-project'),
+      '#type' => 'radios',
+      '#options' => $form['boolean_options']['#value'],
+      '#attributes' => array('class' => 'fancy'),
+      '#default_value' => ($default['allow_beta_work']) ? 1 : 0,
+      '#description' => bts('This helps us develop applications, but may cause jobs to fail on your computer', array(), NULL, 'boinc:account-preferences-project')
+    );
+  }
+  
+  // Add project specific prefs to the form
+  boincwork_add_project_specific_prefs($form, $prefs);
+  
+  // Set whether to use this preference set by default for new computers
+  $form['default_set'] = array(
+    '#title' => bts('Default set', array(), NULL, 'boinc:account-preferences-project'),
+    '#type' => 'fieldset',
+    '#description' => null,
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE
+  );
+  $form['default_set']['default_venue'] = array(
+    '#title' => bts('Set used for new computers', array(), NULL, 'boinc:account-preferences-project'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['default_venue'] ? 1 : 0,
+    '#description' => ''
+  );
+  
+  $form['prefs']['separator_bottom'] = array(
+    '#value' => '<div class="separator buttons"></div>'
+  );
+  
+  // Form control
+  $form['prefs']['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['prefs']['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
+    '#suffix' => '</li>'
+  );
+  $form['prefs']['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>'
+  );
+  if ($venue AND $venue != 'generic') {
+    global $base_path;
+    $form['prefs']['form control tabs']['#value'] .= '<li class="tab">' . 
+      l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/project/clear/{$venue}",
+        array(
+          'query' => 'destination=' . urlencode(drupal_get_path_alias('account/prefs/project/combined')),
+          'attributes' => array(
+            'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the @name preference set. Are you sure?',
+              array('@name' => $venue), NULL, 'boinc:account-preferences') . '\')'
+          )
+        )
+      ) . '</li>';
+  }
+  $form['prefs']['view control'] = array(
+      '#value' => '<li class="first alt tab">' . l('(' . bts('Show comparison view', array(), NULL, 'boinc:account-preferences') . ')', 'account/prefs/project/combined') . '</li>'
+  );
+  $form['prefs']['form control tabs suffix'] = array(
+    '#value' => '</ul>'
+  );
+  
+  return $form;
+}
+
+/**
+ * Add project specific preferences to the project preferences form
+ */
+function boincwork_add_project_specific_prefs(&$form, $prefs) {
+  // Load project specific preferences from XML config
+  $xml = boincwork_get_project_specific_config();
+  
+  // Respect the order of the top level elements
+  $ordered_array = array();
+  $unordered_array = array();
+  foreach ($xml['project_specific_preferences'] as $type => $element) {
+    if (is_array($element) AND is_numeric(key($element))) {
+      foreach ($element as $ordered_element) {
+        if (isset($ordered_element['@position'])) {
+          $ordered_array[$ordered_element['@position']] = array($type => $ordered_element);
+        }
+        else {
+          $unordered_array[] = array($type => $ordered_element);
+        }
+      }
+    }
+    elseif (isset($element['@position'])) {
+      $ordered_array[$element['@position']] = array($type => $element);
+    }
+    else {
+      $unordered_array[] = array($type => $element);
+    }
+  }
+  ksort($ordered_array);
+  $primed_array = array_merge($ordered_array, $unordered_array);
+  $xml = array('project_specific_preferences' => $primed_array);
+    
+  foreach ($xml['project_specific_preferences'] as $wrapped_element) {
+    $type = key($wrapped_element);
+    $element= reset($wrapped_element);
+    boincwork_generate_prefs_element($form, $type, $element, $prefs['project_specific']);
+  }
+}
+
+/**
+  * Validate the project preferences form.
+  */
+function boincwork_projectprefs_form_validate($form, &$form_state) {
+  
+  // Verify all text user input values and notify form API of failures
+  $validation_rules = array(
+    'resource' => array(
+      'resource_share' => array(
+        'datatype' => 'integer',
+        'min' => 0
+      ),
+    ),
+  );
+  
+  // Add validation rules for project specific settings
+  $validation_rules += boincwork_get_project_specific_config_validation_rules();
+  
+  // Perform validation
+  boincwork_validate_form($validation_rules, $form_state['values']);
+  
+  // Check for app validation
+  if (isset($validation_rules['apps'])) {
+    if (isset($validation_rules['apps']['minimum selected'])
+        AND $validation_rules['apps']['minimum selected'] > 0) {
+      $apps_selected = 0;
+      foreach ($validation_rules['apps']['list'] as $app) {
+        if ($form_state['values']['applications'][$app]) $apps_selected++;
+      }
+      if ($apps_selected < $validation_rules['apps']['minimum selected']) {
+        form_set_error(
+          'applications',
+          bts('At least one application must be selected', array(), NULL, 'boinc:account-preferences-project')
+        );
+      }
+      if ($apps_selected == count($validation_rules['apps']['list'])) {
+        foreach ($validation_rules['apps']['list'] as $app) {
+          unset($form_state['values']['applications'][$app]);
+        }
+        $form_state['storage']['all apps selected'] = TRUE;
+      }
+    }
+  }
+}
+
+/**
+  * Handle post-validation submission of project preferences form.
+  */
+function boincwork_projectprefs_form_submit($form, &$form_state) {
+  global $user;
+  global $site_name;
+  
+  require_boinc(array('util'));
+  $app_types = get_app_types();
+  
+  $account = user_load($user->uid);
+  $edit = $form_state['values'];
+  $venue = $edit['venue'];
+  
+  // Load preferences from BOINC account
+  $prefs = boincwork_load_prefs('project', $venue);
+  
+  // Resource preferences
+  $prefs['resource_share'] = $edit['resource']['resource_share'];
+  if ($app_types->count > 1) {
+    if ($app_types->cpu) $prefs['no_cpu'] = ($edit['resource']['no_cpu']) ? 0 : 1;
+    if ($app_types->cuda) $prefs['no_cuda'] = ($edit['resource']['no_cuda']) ? 0 : 1;
+    if ($app_types->ati) $prefs['no_ati'] = ($edit['resource']['no_ati']) ? 0 : 1;
+    if ($app_types->intel_gpu) $prefs['no_intel_gpu'] = ($edit['resource']['no_intel_gpu']) ? 0 : 1;
+  }
+  
+  // Beta preferences
+  if (variable_get('boinc_prefs_options_beta', FALSE)) {
+    $prefs['allow_beta_work'] = ($edit['beta']['allow_beta_work']) ? 1 : 0;
+  }
+  
+  // Load project specific preferences from XML config
+  $xml = boincwork_get_project_specific_config();
+  $updated_prefs = array(
+    'project_specific' => boincwork_format_project_specific_prefs_data($edit)
+  );
+  $prefs = $updated_prefs + $prefs;
+  
+  // Don't specify apps if all are selected
+  if (isset($form_state['storage']['all apps selected'])) {
+    unset($prefs['project_specific']['app_id']);
+    unset($form_state['storage']['all apps selected']);
+  }
+  
+  // If this is a new preference set, be sure to unset the "cleared" attribute
+  if (isset($prefs['@attributes']['cleared'])) {
+    unset($prefs['@attributes']['cleared']);
+  }
+  
+  // Save preferences back to the BOINC account
+  $result = boincwork_save_prefs($prefs, 'project', $venue);
+  
+  // Update the user's default preference set
+  if ($edit['default_set']['default_venue']) {
+    boincwork_set_default_venue($venue);
+  }
+  elseif ($venue == $account->boincuser_default_pref_set) {
+    // User has cleared out the default venue setting
+    boincwork_set_default_venue();
+  }
+  
+  if (!$result) {
+    watchdog('boincwork', 'Error updating project prefs for user @id: @message', array('@id' => $user->id, '@message' => mysql_error()), WATCHDOG_ERROR);
+    drupal_set_message(t('Your changes could not be saved. Please contact support!'), 'error');
+  }
+  elseif (!drupal_get_messages('status', FALSE)) {
+    // Show this message if the set wasn't created automatically (in which case
+    // there is a message tailored to that)
+    drupal_set_message(t('Your preferences have been updated.
+        Client-related preferences will take effect when your computer 
+        communicates with @project or you issue the "Update"
+        command from the BOINC client.', 
+        array('@project' => $site_name)));
+  }
+}
+
+/**
+ * The structure of the community preferences form
+ */
+function communityprefs_form(&$form_state) {
+  global $user;
+  $account = user_load($user->uid);
+  $form = array();
+  
+  // Pull in some elements from the profile form
+  $profile_form_state = array();
+  $profile = new stdClass();
+  $profile->type = 'profile';
+  $profile->language = '';
+  if ($profile_nid = content_profile_profile_exists($profile, $account->uid)) {
+    $profile_node = node_load($profile_nid);
+    $form_state['storage']['profile_node'] = $profile_node;
+    module_load_include('inc', 'node', 'node.pages');    
+    $profile_form = drupal_retrieve_form('profile_node_form', $profile_form_state, $profile_node);
+    drupal_prepare_form('profile_node_form', $profile_form, $profile_form_state);
+  }
+  
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
+  );
+  
+  $default = array(
+    'pm_send_notification' => '', // This is set already in pm_email_notify_user
+    'friend_notification' => isset($account->friend_notification) ? $account->friend_notification : 0,
+    'comments_per_page' => (isset($account->comments_per_page) AND $account->comments_per_page) ? $account->comments_per_page : variable_get('comment_default_per_page_forum', 50),
+    'comments_order' => (isset($account->sort) AND $account->sort) ? $account->sort : variable_get('comment_default_order_forum', COMMENT_ORDER_OLDEST_FIRST),
+  );
+  
+  // General options
+  $form['general'] = array(
+    '#type' => 'fieldset',
+    '#title' => bts('General settings', array(), NULL, 'boinc:account-preferences-community'),
+    '#weight' => 0,
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE
+  );
+  // Add the BOINC user name (non-unique, user editable)
+  $form['general']['boincuser_name'] = array(
+    '#type' => 'textfield',
+    '#title' => bts('Name', array(), NULL, 'boinc:user-or-team-name'),
+    '#default_value' => $account->boincuser_name,
+    '#maxlength' => USERNAME_MAX_LENGTH,
+    '#required' => TRUE,
+    '#description' => '',
+    '#size' => 40
+  );
+  // Time zone
+  if (variable_get('configurable_timezones', 1)) {
+    $zones = _system_zonelist();
+    $form['general']['timezone'] = array(
+      '#type' => 'select',
+      '#title' => bts('Time zone', array(), NULL, 'boinc:account-preferences-community'),
+      '#default_value' => ($account->timezone !== NULL) ? $account->timezone : variable_get('date_default_timezone', 0),
+      '#options' => $zones,
+      '#description' => '',
+    );
+  }
+  
+  // Notification options
+  $form['notifications'] = array(
+    '#type' => 'fieldset',
+    '#title' => bts('Notification settings', array(), NULL, 'boinc:account-preferences-community'),
+    '#weight' => 5,
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE
+  );
+  // Pull in private message notification handling and tweak the form
+  $pm_notify = pm_email_notify_user('form', $edit, $account, 'account');
+  $form['notifications']['pm_send_notifications'] = array_replace(
+    $pm_notify['enable_pm_mail']['pm_send_notifications'],
+    array(
+      '#type' => 'radios',
+      '#title' => bts('Receive email notification for private messages?', array(), NULL, 'boinc:account-preferences-community'),
+      '#description' => ' ',
+      '#options' => $form['boolean_options']['#value'],
+      '#attributes' => array('class' => 'fancy')
+    )
+  );
+  $form['notifications']['friend_notification'] = array(
+    '#type' => 'radios',
+    '#title' => bts('Receive email notification for friend requests?', array(), NULL, 'boinc:account-preferences-community'),
+    '#description' => ' ',
+    '#options' => array(0 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), -1 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')),
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['friend_notification']
+  );
+  
+  // Internationalization options
+  if (module_exists('internationalization')) {
+    $languages = language_list('enabled');
+    $languages = $languages[1];
+    $names = array();
+    foreach ($languages as $langcode => $item) {
+      $name = t($item->name);
+      $names[check_plain($langcode)] = check_plain($name . ($item->native != $name ? ' ('. $item->native .')' : ''));
+    }
+    $form['locale'] = array(
+      '#type' => 'fieldset',
+      '#title' => bts('Language settings', array(), NULL, 'boinc:account-preferences-community'),
+      '#weight' => 10,
+      '#collapsible' => TRUE,
+      '#collapsed' => FALSE,
+    );
+
+    // Get language negotiation settings.
+    $mode = variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE);
+    $user_preferred_language = user_preferred_language($account);
+    $form['locale']['language'] = array(
+      '#type' => 'select',
+      '#title' => bts('Language', array(), NULL, 'boinc:account-preferences-community'),
+      '#default_value' => check_plain($user_preferred_language->language),
+      '#options' => $names,
+      '#description' => ($mode == LANGUAGE_NEGOTIATION_PATH) ? bts("This account's default language for e-mails and preferred language for site presentation.", array(), NULL, 'boinc:account-preferences-community') : bts("This account's default language for e-mails.", array(), NULL, 'boinc:account-preferences-community'),
+    );
+  }
+  
+  // Avatar options
+  $form['gravatar'] = array(
+    '#type' => 'item',
+    '#value' => bts('If you have a <a href="@gravatar-check">valid Gravatar</a> associated with your e-mail address, it will be used for your user picture.', array('@gravatar-check' => 'http://en.gravatar.com/site/check/' . $account->mail), NULL, 'boinc:account-preferences-community'),
+    '#description' => bts('Your Gravatar will not be shown if you upload a user picture.', array(), NULL, 'boinc:account-preferences-community'),
+  );
+  if (user_access('disable own gravatar', $account)) {
+    $form['gravatar'] = array(
+      '#type' => 'checkbox',
+      '#title' => bts('If you have a <a href="@gravatar-check">valid Gravatar</a> associated with your e-mail address, use it for your user picture.', array('@gravatar-check' => 'http://en.gravatar.com/site/check/' . $account->mail), NULL, 'boinc:account-preferences-community'),
+      '#description' => bts('Gravatar will not be shown if an avatar is uploaded.', array(), NULL, 'boinc:account-preferences-community'),
+      '#default_value' => isset($account->gravatar) ? $account->gravatar : 0,
+      '#disabled' => !empty($account->picture),
+    );
+  }
+  $form['gravatar']['#weight'] = 15;
+  $form['gravatar']['#prefix'] = '<fieldset class="collapsible"><legend><a href="#">' . bts('Avatar settings', array(), NULL, 'boinc:account-preferences-community') . '</a></legend>';
+  // Upload an avatar (pulled from profile_node_form):
+  if (!empty($profile_form['field_image'])) {
+    $form['field_image'] = $profile_form['field_image'];
+  }
+  else {
+    $form['field_image'] = array(
+      '#value' => '<div class="form-item">'
+        . '<label class="placeholder">'
+        . bts('This is not available until your profile is set up.', array(), NULL, 'boinc:account-preferences-community')
+        . '</label>'
+        . l(bts('Create a profile', array(), NULL, 'boinc:account-preferences-community'), 'account/profile/edit', array('attributes' => array('class' => 'form-link')))
+        . '</div>',
+    );
+  }
+  $form['field_image'][0]['#title'] = bts('Upload an avatar', array(), NULL, 'boinc:account-preferences-community');
+  $form['field_image']['#weight'] = 20;
+  $form['field_image']['#suffix'] = '</fieldset>';
+  
+  // Forum options
+  $form['forums'] = array(
+    '#type' => 'fieldset',
+    '#title' => bts('Forum settings', array(), NULL, 'boinc:account-preferences-community'),
+    '#weight' => 25,
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE
+  );
+  $form['forums']['comments_per_page'] = array(
+    '#type' => 'select',
+    '#title' => bts('In discussion topics, show at most @comments_per_page', array('@comments_per_page' => ''), NULL, 'boinc:account-preferences-community'),
+    '#options' => array(10 => 10, 20 => 20, 30 => 30, 50 => 50, 100 => 100),
+    '#default_value' => $default['comments_per_page']
+  );
+  // Can't have a typical Drupal form suffix on a select box?
+  $form['forums']['comments_per_page_suffix'] = array(
+    '#value' => '<span>' . bts('comments per page', array(), NULL, 'boinc:account-preferences-community') . '</span>'
+  );
+  $form['forums']['comments_order'] = array(
+    '#type' => 'select',
+    '#title' => bts('Sort comments in discussions', array(), NULL, 'boinc:account-preferences-community'),
+    '#options' => array(1 => bts('Newest post first', array(), NULL, 'boinc:account-preferences-community'), 2 => bts('Oldest post first', array(), NULL, 'boinc:account-preferences-community')),
+    '#default_value' => $default['comments_order']
+  );
+  // Signature (pulled from user_edit_form):
+  if (variable_get('user_signatures', 0) && module_exists('comment')) {
+    $form['forums']['signature'] = array(
+      '#type' => 'textarea',
+      '#title' => bts('Signature', array(), NULL, 'boinc:account-preferences-community'),
+      '#description' => bts('Your signature will be publicly displayed at the end of your comments.', array(), NULL, 'boinc:account-preferences-community'),
+      '#default_value' => $account->signature
+      );
+    // Prevent a "validation error" message when the user attempts to save with a default value they
+    // do not have access to.
+    if (!filter_access($account->signature_format) && empty($_POST)) {
+      drupal_set_message(t("The signature input format has been set to a format you don't have access to. It will be changed to a format you have access to when you save this page."));
+      $edit['signature_format'] = FILTER_FORMAT_DEFAULT;
+    }
+    $form['forums']['signature_format'] = filter_form($account->signature_format, NULL, array('signature_format'));
+    // Optionally hide signatures from comments
+    $form['forums']['hide_signatures'] = array(
+      '#type' => 'radios',
+      '#title' => bts('Hide signatures in forums', array(), NULL, 'boinc:account-preferences-community'),
+      '#description' => ' ',
+      '#options' => $form['boolean_options']['#value'],
+      '#attributes' => array('class' => 'fancy'),
+      '#default_value' => isset($account->hide_signatures) ? $account->hide_signatures : 0,
+    );
+  }
+
+  //Ignored users list
+  if (module_exists('ignore_user')) {
+    $form['forums']['ignored_users'] = array(
+      '#value' => '<div class="form-item">'
+        . '<label>'
+	. bts('Ignore Users in forums:', array(), NULL, 'boinc:account-preferences-community')
+	. '</label>'
+        . bts('<a href="@ignore-user-list">View/Edit</a> your ignored users list.',
+	    array(
+	      '@ignore-user-list' => url('ignore_user/list'),
+	      array(
+            'attributes' => array('class' => 'form-link')
+          )
+	    ),
+        NULL, 'boinc:account-preferences-community')
+	. '</div>',
+    );
+  }//endif module_exists('ignore_user')
+
+  //Bottom separator
+  $form['separator_bottom'] = array(
+    '#value' => '<div class="separator buttons"></div>',
+    '#weight' => 999,
+  );
+  
+  // Form control
+  $form['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">',
+    '#weight' => 1001,
+  );
+  $form['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
+    '#suffix' => '</li>',
+    '#weight' => 1002,
+  );
+  $form['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
+    '#weight' => 1003,
+  );
+  $form['form control tabs suffix'] = array(
+    '#value' => '</ul>',
+    '#weight' => 1004,
+  );
+  return $form;
+}
+
+/**
+  * Handle post-validation submission of community preferences form.
+  */
+function communityprefs_form_submit($form, &$form_state) {
+  require_boinc('boinc_db');
+  global $user;
+  $account = user_load($user->uid);
+  $boinc_user = BoincUser::lookup_id($account->boincuser_id);
+  $edit = $form_state['values'];
+  $profile_node = $form_state['storage']['profile_node'];
+  
+  // Display name
+  if ($edit['boincuser_name'] != $boinc_user->name) {
+    $boincuser_name = $edit['boincuser_name'];
+    $result = $boinc_user->update(
+        "name='{$boincuser_name}'"
+    );
+  }
+  
+  // Private message settings
+  pm_email_notify_user('submit', $edit, $user);
+  
+  // Avatar settings
+  if (!$edit['field_image']) $edit['field_image'] = array();
+  $profile_node->field_image = $edit['field_image'];
+  node_save($profile_node);
+  // Flush this from the node cache or changes won't show up immediately!
+  $profile_node = node_load($profile_node->nid, NULL, TRUE);
+  
+  // All other settings
+  $settings = array(
+    'signature' => $edit['signature'],
+    'signature_format' => $edit['signature_format'],
+    'timezone' => $edit['timezone'],
+    'friend_notification' => $edit['friend_notification'],
+    'comments_per_page' => $edit['comments_per_page'],
+    'hide_signatures' => $edit['hide_signatures'],
+    'sort' => $edit['comments_order'],
+    'gravatar' => $edit['gravatar'],
+  );
+  if (module_exists('internationalization')) {
+    $settings['language'] = $edit['language'];
+    global $language;
+    if ($user->language != $edit['language']) {
+      global $base_url;
+      if ($edit['language'] != language_default('language')) {
+        $form_state['redirect'] = $base_url . '/' . $edit['language'] . '/' . $_GET['q'];
+      }
+      else {
+        $form_state['redirect'] = $base_url . '/' . $_GET['q'];
+      }
+    }
+  }
+  user_save($user, $settings);
+  
+  drupal_set_message(bts('Your community preferences have been updated.', array(), NULL, 'boinc:account-preferences-community'));
+  
+  // Form will not redirect if storage is set; not good if language changes
+  unset($form_state['storage']);
+}
+
+/**
+ * The structure of the privacy preferences form
+ */
+function boincwork_privacyprefs_form(&$form_state) {
+  require_boinc(array('user', 'prefs', 'util'));
+  
+  global $user;
+  $account = user_load($user->uid);
+  $boincuser = BoincUser::lookup_id($account->boincuser_id);
+  
+  // Load preferences from BOINC account
+  $prefs = boincwork_load_prefs('project');
+  
+  //if (!$prefs AND !$initialize_if_empty) return null;
+  
+  // Define form defaults
+  $default = array(
+    'privacy' => array(
+      'send_email' => ($boincuser->send_email) ? 1 : 0,
+      'show_hosts' => ($boincuser->show_hosts) ? 1 : 0
+    )
+  );
+  
+  // Standard option sets
+  $form['boolean_options'] = array(
+    '#type' => 'value',
+    '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
+  );
+  
+  $form['privacy'] = array(
+    '#title' => bts('Privacy settings', array(), NULL, 'boinc:account-preferences-privacy'),
+    '#type' => 'fieldset',
+    '#description' => null,
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE
+  );
+  $form['privacy']['send_email'] = array(
+    '#title' => bts('Is it OK for @project and your team (if any) to email you?', array('@project' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:account-preferences-privacy'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['privacy']['send_email']
+  );
+  $form['privacy']['show_hosts'] = array(
+    '#title' => bts('Should @project show your computers on its web site?', array('@project' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:account-preferences-privacy'),
+    '#type' => 'radios',
+    '#options' => $form['boolean_options']['#value'],
+    '#attributes' => array('class' => 'fancy'),
+    '#default_value' => $default['privacy']['show_hosts']
+  );
+  
+  $form['prefs']['separator_bottom'] = array(
+    '#value' => '<div class="separator buttons"></div>'
+  );
+  
+  // Form control
+  $form['prefs']['form control tabs prefix'] = array(
+    '#value' => '<ul class="form-control tab-list">'
+  );
+  $form['prefs']['submit'] = array(
+    '#prefix' => '<li class="first tab">',
+    '#type' => 'submit',
+    '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
+    '#suffix' => '</li>'
+  );
+  $form['prefs']['form control tabs'] = array(
+    '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>'
+  );
+  $form['prefs']['form control tabs suffix'] = array(
+    '#value' => '</ul>'
+  );
+  
+  return $form;
+}
+
+/**
+  * Validate the privacy preferences form.
+  */
+function boincwork_privacyprefs_form_validate($form, &$form_state) {
+  require_boinc('util');
+  
+  // Verify all non-boolean user input values and notify form API of failures
+  // ... currently there are no non-boolean values!
+}
+
+/**
+  * Handle post-validation submission of privacy preferences form.
+  */
+function boincwork_privacyprefs_form_submit($form, &$form_state) {
+  require_boinc(array('user', 'prefs'));
+  
+  global $user;
+  $account = user_load($user->uid);
+  
+  // Load BOINC account
+  $boincuser = BoincUser::lookup_id($account->boincuser_id);
+  
+  // Privacy preferences
+  $boincuser->send_email = ($form_state['values']['send_email']) ? true : false;
+  $boincuser->show_hosts = ($form_state['values']['show_hosts']) ? true : false;
+  
+  //project_prefs_update($boincuser, $main_prefs);
+  
+  db_set_active('boinc');
+  db_query("UPDATE user SET send_email = '{$boincuser->send_email}', show_hosts = '{$boincuser->show_hosts}' WHERE id = '{$boincuser->id}'");
+  db_set_active('default');
+  
+  drupal_set_message(t('Your privacy preferences have been updated.'));
+}
diff --git a/drupal/sites/default/boinc/modules/boincwork/includes/boincwork.helpers.inc b/drupal/sites/default/boinc/modules/boincwork/includes/boincwork.helpers.inc
new file mode 100644
index 0000000..9a0f1c4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/includes/boincwork.helpers.inc
@@ -0,0 +1,1472 @@
+<?php
+// $Id$
+
+/**
+ * Functions that are shared amongst files and dependent modules go
+ * here to keep the clutter down in the main module file.
+ */ 
+
+/**
+ * When a venue is changed in preference forms, don't carry over the preset
+ * that was selected
+ */
+function boincwork_ahah_helper_venue_submit($form, &$form_state) {
+  $form_state['storage']['prefs']['preset'] = null;
+  ahah_helper_generic_submit($form, $form_state);
+}
+
+/**
+ * Get a predetermined set of preferences
+ */
+function boincwork_get_preset_prefs($preset = null) {
+  $saved_state = variable_get('boincwork_preset_prefs', null);
+  
+  // If not configured yet, use these values as for inital
+  // computing/general preferences.
+  if (!$saved_state) {
+    // Get BOINC project disk space configurations from config.xml to
+    // fill in initial preference values.
+    require_boinc(array('db', 'prefs'));
+    $disk_space_config = get_disk_space_config();
+
+    $saved_state = '
+      <general_preferences>
+        <preset name="standard">
+          <run_on_batteries>0</run_on_batteries>
+          <run_if_user_active>0</run_if_user_active>
+          <run_gpu_if_user_active>1</run_gpu_if_user_active>
+          <idle_time_to_run>3</idle_time_to_run>
+          <suspend_if_no_recent_input>0</suspend_if_no_recent_input>
+          <suspend_cpu_usage>25</suspend_cpu_usage>
+          <start_hour>0</start_hour>
+          <end_hour>0</end_hour>
+          <leave_apps_in_memory>1</leave_apps_in_memory>
+          <cpu_scheduling_period_minutes>60</cpu_scheduling_period_minutes>
+          <max_ncpus_pct>100</max_ncpus_pct>
+          <cpu_usage_limit>80</cpu_usage_limit>
+          <disk_max_used_gb>'.$disk_space_config->disk_max_used_gb.'</disk_max_used_gb>
+          <disk_min_free_gb>'.$disk_space_config->disk_min_free_gb.'</disk_min_free_gb>
+          <disk_max_used_pct>'.$disk_space_config->disk_max_used_pct.'</disk_max_used_pct>
+          <disk_interval>60</disk_interval>
+          <vm_max_used_pct>0</vm_max_used_pct>
+          <ram_max_used_busy_pct>15</ram_max_used_busy_pct>
+          <ram_max_used_idle_pct>50</ram_max_used_idle_pct>
+          <work_buf_min_days>0.1</work_buf_min_days>
+          <work_buf_additional_days>0.25</work_buf_additional_days>
+          <confirm_before_connecting>1</confirm_before_connecting>
+          <hangup_if_dialed>0</hangup_if_dialed>
+          <max_bytes_sec_down>0</max_bytes_sec_down>
+          <max_bytes_sec_up>0</max_bytes_sec_up>
+          <net_start_hour>0</net_start_hour>
+          <net_end_hour>0</net_end_hour>
+          <daily_xfer_limit_mb>0</daily_xfer_limit_mb>
+          <daily_xfer_period_days>0</daily_xfer_period_days>
+          <dont_verify_images>0</dont_verify_images>
+        </preset>
+        <preset name="maximum">
+          <run_on_batteries>1</run_on_batteries>
+          <run_if_user_active>1</run_if_user_active>
+          <run_gpu_if_user_active>1</run_gpu_if_user_active>
+          <idle_time_to_run>3</idle_time_to_run>
+          <suspend_if_no_recent_input>0</suspend_if_no_recent_input>
+          <suspend_cpu_usage>0</suspend_cpu_usage>
+          <start_hour>0</start_hour>
+          <end_hour>0</end_hour>
+          <leave_apps_in_memory>1</leave_apps_in_memory>
+          <cpu_scheduling_period_minutes>60</cpu_scheduling_period_minutes>
+          <max_ncpus_pct>100</max_ncpus_pct>
+          <cpu_usage_limit>100</cpu_usage_limit>
+          <disk_max_used_gb>100</disk_max_used_gb>
+          <disk_min_free_gb>2</disk_min_free_gb>
+          <disk_max_used_pct>100</disk_max_used_pct>
+          <disk_interval>60</disk_interval>
+          <vm_max_used_pct>50</vm_max_used_pct>
+          <ram_max_used_busy_pct>80</ram_max_used_busy_pct>
+          <ram_max_used_idle_pct>90</ram_max_used_idle_pct>
+          <work_buf_min_days>0.1</work_buf_min_days>
+          <work_buf_additional_days>0.25</work_buf_additional_days>
+          <confirm_before_connecting>1</confirm_before_connecting>
+          <hangup_if_dialed>0</hangup_if_dialed>
+          <max_bytes_sec_down>0</max_bytes_sec_down>
+          <max_bytes_sec_up>0</max_bytes_sec_up>
+          <net_start_hour>0</net_start_hour>
+          <net_end_hour>0</net_end_hour>
+          <daily_xfer_limit_mb>0</daily_xfer_limit_mb>
+          <daily_xfer_period_days>0</daily_xfer_period_days>
+          <dont_verify_images>0</dont_verify_images>
+        </preset>
+        <preset name="green">
+          <run_on_batteries>0</run_on_batteries>
+          <run_if_user_active>1</run_if_user_active>
+          <run_gpu_if_user_active>1</run_gpu_if_user_active>
+          <idle_time_to_run>3</idle_time_to_run>
+          <suspend_if_no_recent_input>1</suspend_if_no_recent_input>
+          <suspend_cpu_usage>75</suspend_cpu_usage>
+          <start_hour>0</start_hour>
+          <end_hour>0</end_hour>
+          <leave_apps_in_memory>1</leave_apps_in_memory>
+          <cpu_scheduling_period_minutes>60</cpu_scheduling_period_minutes>
+          <max_ncpus_pct>100</max_ncpus_pct>
+          <cpu_usage_limit>80</cpu_usage_limit>
+          <disk_max_used_gb>8</disk_max_used_gb>
+          <disk_min_free_gb>4</disk_min_free_gb>
+          <disk_max_used_pct>10</disk_max_used_pct>
+          <disk_interval>60</disk_interval>
+          <vm_max_used_pct>0</vm_max_used_pct>
+          <ram_max_used_busy_pct>50</ram_max_used_busy_pct>
+          <ram_max_used_idle_pct>75</ram_max_used_idle_pct>
+          <work_buf_min_days>0.1</work_buf_min_days>
+          <work_buf_additional_days>0.25</work_buf_additional_days>
+          <confirm_before_connecting>1</confirm_before_connecting>
+          <hangup_if_dialed>0</hangup_if_dialed>
+          <max_bytes_sec_down>100000</max_bytes_sec_down>
+          <max_bytes_sec_up>10000</max_bytes_sec_up>
+          <net_start_hour>0</net_start_hour>
+          <net_end_hour>0</net_end_hour>
+          <daily_xfer_limit_mb>100</daily_xfer_limit_mb>
+          <daily_xfer_period_days>2</daily_xfer_period_days>
+          <dont_verify_images>1</dont_verify_images>
+        </preset>
+        <preset name="minimum">
+          <run_on_batteries>0</run_on_batteries>
+          <run_if_user_active>0</run_if_user_active>
+          <run_gpu_if_user_active>0</run_gpu_if_user_active>
+          <idle_time_to_run>5</idle_time_to_run>
+          <suspend_if_no_recent_input>1</suspend_if_no_recent_input>
+          <suspend_cpu_usage>25</suspend_cpu_usage>
+          <start_hour>0</start_hour>
+          <end_hour>8</end_hour>
+          <leave_apps_in_memory>0</leave_apps_in_memory>
+          <cpu_scheduling_period_minutes>120</cpu_scheduling_period_minutes>
+          <max_ncpus_pct>25</max_ncpus_pct>
+          <cpu_usage_limit>40</cpu_usage_limit>
+          <disk_max_used_gb>2</disk_max_used_gb>
+          <disk_min_free_gb>4</disk_min_free_gb>
+          <disk_max_used_pct>5</disk_max_used_pct>
+          <disk_interval>120</disk_interval>
+          <vm_max_used_pct>0</vm_max_used_pct>
+          <ram_max_used_busy_pct>5</ram_max_used_busy_pct>
+          <ram_max_used_idle_pct>20</ram_max_used_idle_pct>
+          <work_buf_min_days>0.1</work_buf_min_days>
+          <work_buf_additional_days>0.25</work_buf_additional_days>
+          <confirm_before_connecting>1</confirm_before_connecting>
+          <hangup_if_dialed>0</hangup_if_dialed>
+          <max_bytes_sec_down>15000</max_bytes_sec_down>
+          <max_bytes_sec_up>5000</max_bytes_sec_up>
+          <net_start_hour>0</net_start_hour>
+          <net_end_hour>8</net_end_hour>
+          <daily_xfer_limit_mb>1000</daily_xfer_limit_mb>
+          <daily_xfer_period_days>30</daily_xfer_period_days>
+          <dont_verify_images>0</dont_verify_images>
+        </preset>
+      </general_preferences>';
+  }
+  
+  // Convert XML data to array format
+  $preset_prefs = load_configuration($saved_state);
+  
+  if ($preset) {
+    // Load preset from configuration
+    $preset_prefs = (array) $preset_prefs['general_preferences'];
+    if (isset($preset_prefs['preset'])) {
+      if (!is_numeric(key($preset_prefs['preset']))) {
+        $preset_prefs['preset'] = array($preset_prefs['preset']);
+      }
+      foreach ($preset_prefs['preset'] as $key => $prefs) {
+        if (isset($prefs['@attributes']['name']) AND $prefs['@attributes']['name'] == $preset) {
+          return $preset_prefs['preset'][$key];
+        }
+      }
+    }
+  }
+  return $preset_prefs;
+}
+
+/**
+ * Load (and validate) the project specific configuration XML
+ */
+function boincwork_get_project_specific_config() {
+  $raw_config_data = variable_get('boinc_project_specific_prefs_config', '');
+  
+  $xsd = './' . drupal_get_path('module', 'boincwork') . '/includes/projectprefs.xsd';
+  libxml_use_internal_errors(true);
+  
+  $xml = new DomDocument();
+  $xml->loadXML($raw_config_data, LIBXML_NOBLANKS);
+  if (!$xml->schemaValidate($xsd)) {
+    $errors = libxml_get_errors();
+    $lines = explode("\r", $raw_config_data);
+    drupal_set_message("{$errors[0]->message} at line {$errors[0]->line}" .
+      ': <br/>' . htmlentities($lines[$errors[0]->line - 1]), 'error');
+    return NULL;
+  }
+  
+  // Convert XML to array for validation
+  $xml = load_configuration($raw_config_data);
+  return $xml;
+}
+
+/**
+ * Get rules by which to validate project specific data
+ */
+function boincwork_get_project_specific_config_validation_rules($xml = array()) {
+  $rules = array();
+  if (!$xml) {
+    // Read the config XML
+    $xml = boincwork_get_project_specific_config();
+    $xml = $xml['project_specific_preferences'];
+  }
+  foreach ($xml as $type => $elements) {
+    if (is_array($elements) AND !is_numeric(key($elements))) {
+      $elements = array($elements);
+    }
+    switch ($type) {
+    case 'compound':
+      foreach ($elements as $element) {
+        $name = $element['@attributes']['name'];
+        $rules[$name] = boincwork_get_project_specific_config_validation_rules($element['attributes']);
+      }
+      break;
+      
+    case 'text':
+      foreach ($elements as $element) {
+        $name = $element['@attributes']['name'];
+        $rules[$name] = array(
+          'datatype' => $element['@attributes']['datatype']
+        );
+        if (isset($element['@attributes']['min'])) {
+          $rules[$name]['min'] = $element['@attributes']['min'];
+        }
+        if (isset($element['@attributes']['max'])) {
+          $rules[$name]['max'] = $element['@attributes']['max'];
+        }
+      }
+      break;
+    /*
+    case 'radio':
+    case 'dropdown':
+      foreach ($elements as $element) {
+        $name = $element['@attributes']['name'];
+        $options = array();
+        foreach ($element['items']['item'] as $option) {
+          if (is_array($option) AND isset($option['@value'])) {
+            $option = $option['@value'];
+          }
+          $options[] = $option;
+        }
+        $rules[$name] = array(
+          'options' => $options
+        );
+      }
+      break;
+    */
+    case 'apps':
+      // At least one app needs to be selected
+      $rules['apps'] = array(
+        'minimum selected' => 1,
+        'list' => array()
+      );
+      foreach ($elements as $element) {
+        foreach ($element['app'] as $app) {
+          $name = "app_{$app['@attributes']['id']}";
+          $rules['apps']['list'][] = $name;
+          //$rules[$name] = array(
+          //  'options' => $options
+          //);
+        }
+      }
+      break;
+      
+    case 'group':
+      foreach ($elements as $element) {
+        $name = $element['@attributes']['name'];
+        $rules += boincwork_get_project_specific_config_validation_rules($element);
+      }
+      break;
+    /*
+    case 'boolean':
+      // Shouldn't need to validate boolean...
+      break;
+      */
+    default:
+    }
+  }
+  return $rules;
+}
+
+/**
+ * Define how project specific settings should be saved
+ */
+function boincwork_format_project_specific_prefs_data($values, $xml = array()) {
+  $defaults = array();
+  if (!$xml) {
+    // Read the config XML
+    $xml = boincwork_get_project_specific_config();
+    $xml = $xml['project_specific_preferences'];
+  }
+  foreach ($xml as $type => $elements) {
+    $structure_data = array();
+    if (is_array($elements) AND !is_numeric(key($elements))) {
+      $elements = array($elements);
+    }
+    switch ($type) {
+    case 'compound':
+      foreach ($elements as $element) {
+        $name = $element['@attributes']['name'];
+        $default[$name]['@attributes'] = boincwork_format_project_specific_prefs_data($values[$name], $element['attributes']);
+      }
+      $defaults += $default;
+      break;
+      
+    case 'group':
+      foreach ($elements as $element) {
+        $defaults += boincwork_format_project_specific_prefs_data($values, $element);
+      }
+      break;
+      
+    case 'text':
+    case 'radio':
+    case 'dropdown':
+    case 'boolean':
+      foreach ($elements as $element) {
+        $name = $element['@attributes']['name'];
+        if (isset($element['@attributes']['entitytype']) AND $element['@attributes']['entitytype'] == 'attribute') {
+          $defaults['@attributes'][$name] = $values[$name];
+        }
+        else {
+          $defaults[$name] = $values[$name];
+        }
+      }
+      break;
+    
+    case 'apps':
+      foreach ($elements as $element) {
+        $defaults['app_id'] = array();
+        foreach ($element['app'] as $app) {
+          $app_id = $app['@attributes']['id'];
+          if ($values['applications']["app_{$app_id}"]) {
+            $defaults['app_id'][] = $app_id;
+          }
+        }
+      }
+      break;
+      
+    default:
+    }
+  }
+  return $defaults;
+}
+
+/**
+ * Add an element to the form based on its definition
+ */
+function boincwork_generate_prefs_element(&$form, $type, $elements, $user_prefs = null) {
+  switch ($type) {
+  case 'text':
+    if (!is_numeric(key($elements))) {
+      $elements = array($elements);
+    }
+    foreach ($elements as $element) {
+      $name = $element['@attributes']['name'];
+      $default = $element['@attributes']['default'];
+      $title = is_array($element['title']) ? $element['title']['@value'] : $element['title'];
+      $description = '';
+      if (isset($element['description'])) {
+        $description = is_array($element['description']) ? $element['description']['@value'] : $element['description'];
+      }
+      
+      $value = $default;
+      $user_pref = $user_prefs;
+      $entitytype = isset($element['@attributes']['entitytype']) ? $element['@attributes']['entitytype'] : 'element';
+      if ($entitytype == 'attribute') {
+        $user_pref = $user_prefs['@attributes'];
+      }
+      if (isset($user_pref[$name])) {
+        if (is_array($user_pref[$name]) AND isset($user_pref[$name]['@value'])) {
+          $value = $user_pref[$name]['@value'];
+        }
+        else {
+          $value = $user_pref[$name];
+        }
+      }
+      
+      // Use appropriate datatype
+      if (isset($element['@attributes']['datatype'])) {
+        switch($element['@attributes']['datatype']) {
+        case 'integer':
+          $value = (int) $value;
+          break;
+          
+        case 'float':
+          $value = number_format((float) $value, 2);
+          break;
+        
+        default:
+        }
+      }
+      
+      // Translate elements as appropriate
+      if ($title) {
+        i18nstrings_update('project:prefs_xml', $title);
+        $title = i18nstrings('project:prefs_xml', $title);
+      }
+      if ($description) {
+        i18nstrings_update('project:prefs_xml', $description);
+        $description = i18nstrings('project:prefs_xml', $description);
+      }
+      
+      $form[$name] = array(
+        '#title' => $title,
+        '#type' => 'textfield',
+        '#default_value' => $value,
+        '#size' => 5,
+        '#description' => $description . bts(' Default value: @default', array('@default' => $default), NULL, 'boinc:account-preferences-project')
+      );
+    }
+    break;
+    
+  case 'boolean':
+    if (!is_numeric(key($elements))) {
+      $elements = array($elements);
+    }
+    foreach ($elements as $element) {
+      $name = $element['@attributes']['name'];
+      $title = is_array($element['title']) ? $element['title']['@value'] : $element['title'];
+      $default = (isset($element['@attributes']['selected']) AND $element['@attributes']['selected'] == 'true') ? 1 : 0;
+      $description = '';
+      if (isset($element['description'])) {
+        $description = is_array($element['description']) ? $element['description']['@value'] : $element['description'];
+      }
+      
+      $value = $default;
+      $user_pref = $user_prefs;
+      $entitytype = isset($element['@attributes']['entitytype']) ? $element['@attributes']['entitytype'] : 'element';
+      if ($entitytype == 'attribute') {
+        $user_pref = $user_prefs['@attributes'];
+      }
+      if (isset($user_pref[$name])) {
+        if (is_array($user_pref[$name]) AND isset($user_pref[$name]['@value'])) {
+          $value = $user_pref[$name]['@value'];
+        }
+        else {
+          $value = $user_pref[$name];
+        }
+      }
+      
+      // Translate elements as appropriate
+      if ($title) {
+        i18nstrings_update('project:prefs_xml', $title);
+        $title = i18nstrings('project:prefs_xml', $title);
+      }
+      if ($description) {
+        i18nstrings_update('project:prefs_xml', $description);
+        $description = i18nstrings('project:prefs_xml', $description);
+      }
+      
+      $form[$name] = array(
+        '#title' => $title,
+        '#type' => 'radios',
+        '#options' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')),
+        '#attributes' => array('class' => 'fancy'),
+        '#default_value' => $value,
+        '#description' => $description
+      );
+    }
+    break;
+    
+  case 'radio':
+  case 'dropdown':
+    
+    if (!is_numeric(key($elements))) {
+      $elements = array($elements);
+    }
+    foreach ($elements as $element) {
+      $name = $element['@attributes']['name'];
+      $default = null;
+      $options = array();
+      foreach($element['items']['item'] as $item) {
+        if (is_array($item)) {
+          $value = $item['@value'];
+          if ($default === NULL AND
+              isset($item['@attributes']) AND
+              isset($item['@attributes']['selected'])) {
+            $default = ($item['@attributes']['selected'] == 'true') ? $item['@value'] : null;
+          }
+        }
+        else {
+          $value = $item;
+        }
+        $options[$value] = $value;
+      }
+      $title = is_array($element['title']) ? $element['title']['@value'] : $element['title'];
+      $description = '';
+      if (isset($element['description'])) {
+        $description = is_array($element['description']) ? $element['description']['@value'] : $element['description'];
+      }
+      $user_pref = $user_prefs;
+      $entitytype = isset($element['@attributes']['entitytype']) ? $element['@attributes']['entitytype'] : 'element';
+      if ($entitytype == 'attribute') {
+        $user_pref = $user_prefs['@attributes'];
+      }
+      $value = isset($user_pref[$name]) ? $user_pref[$name] : $default;
+      
+      // Translate elements as appropriate
+      if ($title) {
+        i18nstrings_update('project:prefs_xml', $title);
+        $title = i18nstrings('project:prefs_xml', $title);
+      }
+      if ($description) {
+        i18nstrings_update('project:prefs_xml', $description);
+        $description = i18nstrings('project:prefs_xml', $description);
+      }
+      
+      $form[$name] = array(
+        '#title' => $title,
+        '#type' => ($type == 'radio') ? 'radios' : 'select',
+        '#options' => $options,
+        '#attributes' => array('class' => 'fancy'),
+        '#default_value' => $value,
+        '#description' => $description . bts(' Default value: @default', array('@default' =>$default), NULL, 'boinc:account-preferences-project')
+      );
+    }
+    break;
+    
+  case 'apps':
+    $title = is_array($elements['title']) ? $elements['title']['@value'] : $elements['title'];
+    
+      // Translate elements as appropriate
+      if ($title) {
+        i18nstrings_update('project:prefs_xml', $title);
+        $title = i18nstrings('project:prefs_xml', $title);
+      }
+    
+    $form['applications'] = array(
+      '#title' => bts('Applications', array(), NULL, 'boinc:account-preferences'),
+      '#type' => 'fieldset',
+      '#description' => $title,
+      '#collapsible' => TRUE,
+      '#collapsed' => FALSE
+    );
+    $applications = array();
+    if (!is_array($user_prefs['app_id'])) {
+      $user_prefs['app_id'] = array($user_prefs['app_id']);
+    }
+    foreach ($user_prefs['app_id'] as $app) {
+      if (!$app) continue;
+      if (is_array($app) AND isset($app['@value'])) {
+        $app = $app['@value'];
+      }
+      $applications[] = $app;
+    }
+    foreach ($elements['app'] as $app) {
+      $app_id = $app['@attributes']['id'];
+      $app_name = $app['@value'];
+      $app_enabled = TRUE;
+      if (isset($app['@attributes']['enabled']) AND
+          $app['@attributes']['enabled'] == 'false') {
+        $app_enabled = FALSE;
+      }
+      if ($applications) {
+        $checked = in_array($app_id, $applications);
+      } else {
+        $checked = TRUE;
+        if (isset($app['@attributes']['selected']) AND
+            $app['@attributes']['selected'] == 'false') {
+          $checked = FALSE;
+        }
+      }
+      $form['applications']["app_{$app_id}"] = array(
+        '#title' => $app_name,
+        '#type' => 'checkbox',
+        '#default_value' => ($checked) ? 'x' : false,
+        '#disabled' => !$app_enabled
+      );
+    }
+    
+    break;
+    
+  case 'group':
+    if (!is_numeric(key($elements))) {
+      $elements = array($elements);
+    }
+    foreach ($elements as $key => $element) {
+      $title = is_array($element['title']) ? $element['title']['@value'] : $element['title'];
+      $name = str_replace(' ','_',strtolower($title));
+      $name = "group_{$name}";
+      
+      // Translate elements as appropriate
+      if ($title) {
+        i18nstrings_update('project:prefs_xml', $title);
+        $title = i18nstrings('project:prefs_xml', $title);
+      }
+      
+      $form[$name] = array(
+          '#title' => $title,
+          '#type' => 'fieldset',
+          '#tree' => FALSE,
+          //'#description' => t('Notes about this group of fields'),
+          '#collapsible' => TRUE,
+          '#collapsed' => FALSE
+      );
+      // Recursively populate the compound element
+      foreach ($element as $child_type => $child) {
+        boincwork_generate_prefs_element($form[$name], $child_type, $child, $user_prefs);
+      }
+    }
+    break;
+    
+  case 'compound':
+    if (!is_numeric(key($elements))) {
+      $elements = array($elements);
+    }
+    foreach ($elements as $element) {
+      $name = $element['@attributes']['name'];
+      $title = is_array($element['title']) ? $element['title']['@value'] : $element['title'];
+      
+      // Translate elements as appropriate
+      if ($title) {
+        i18nstrings_update('project:prefs_xml', $title);
+        $title = i18nstrings('project:prefs_xml', $title);
+      }
+      
+      $form[$name] = array(
+          '#title' => $title,
+          '#type' => 'fieldset',
+          //'#description' => t('Notes about this group of fields'),
+          '#collapsible' => TRUE,
+          '#collapsed' => FALSE
+      );
+      // Recursively populate the compound element
+      foreach ($element['attributes'] as $child_type => $child) {
+        boincwork_generate_prefs_element($form[$name], $child_type, $child, $user_prefs[$name]['@attributes']);
+      }
+    }
+    break;
+    
+    default:
+      // Don't generate form elements for things that aren't explicitly form
+      // elements (i.e. 'title', '@attributes' keys, and the like)
+  }
+}
+
+/**
+ * Generate a tabular structure out of preferences for use in comparison
+ * views of preference sets
+ */
+function boincwork_make_prefs_table($prefs, $top_level = TRUE) {
+
+  $prefs_table = array();
+  $uncategorized = array();
+  
+  // Parse the project preferences form
+  foreach ($prefs as $key => $element) {
+    
+    // Determine which type of element this is and act accordingly
+    $element_type = NULL;
+    if (is_array($element) AND isset($element['#type'])) {
+      $element_type = $element['#type'];
+    }
+    switch ($element_type) {
+    case 'fieldset':
+      $prefs_table[$key] = array(
+        'name' => $element['#title'],
+        'elements' => boincwork_make_prefs_table($element, FALSE),
+      );
+      break;
+    case 'textfield':
+    case 'radios':
+    case 'checkbox':
+    case 'select':
+      // Special hack for time range preferences...
+      if (in_array($key, array('start_hour', 'net_start_hour'))) {
+        switch ($key) {
+        case 'start_hour':
+          $element['#title'] = bts('Compute only between:', array(), NULL, 'boinc:account-preferences-computing');
+          break;
+        case 'net_start_hour':
+          $element['#title'] = bts('Transfer files only between:', array(), NULL, 'boinc:account-preferences-comuting');
+          break;
+        default:
+        }
+      }
+      $prefs_element = array(
+        'name' => (isset($element['#title'])) ? $element['#title'] : '',
+        'description' => (isset($element['#description'])) ? $element['#description'] : '',
+        'default_value' => (isset($element['#default_value'])) ? $element['#default_value'] : NULL,
+      );
+      if ($top_level) {
+        $uncategorized[$key] = $prefs_element;
+      }
+      else {
+        $prefs_table[$key] = $prefs_element;
+      }
+      break;
+    default:
+    }
+  }
+  
+  if ($prefs_table AND $uncategorized) {
+    // Throw any settings that don't fit elsewhere into "other"
+    $prefs_table['other'] = array(
+      'name' => bts('Other settings', array(), NULL, 'boinc:account-preferences'),
+      'elements' => $uncategorized,
+    );
+  }
+  elseif ($uncategorized) {
+    // If nothing is categorized, output all prefs under a general "settings"
+    $prefs_table['settings'] = array(
+      'name' => bts('Settings', array(), NULL, 'boinc:account-preferences'),
+      'elements' => $uncategorized,
+    );
+  }
+  
+  return $prefs_table;
+}
+ 
+/**
+ * Load general or project preferences from BOINC account
+ */
+function boincwork_load_prefs($type = 'general', $venue = null, $account = null) {
+  
+  require_boinc(array('user'));
+  
+  // Load the BOINC user object
+  if (!$account) {
+    global $user;
+    $account = $user;
+  }
+  $account = user_load($account->uid);
+  $boincuser = BoincUser::lookup_id($account->boincuser_id);
+  
+  // Load the desired preferences for the user
+  $main_prefs = array();
+  if ($type == 'project') {
+    if ($boincuser->project_prefs) {
+      $main_prefs = load_configuration($boincuser->project_prefs);
+      $main_prefs = (array) $main_prefs['project_preferences'];
+    }
+  }
+  else {
+    if ($boincuser->global_prefs) {
+      $main_prefs = load_configuration($boincuser->global_prefs);
+      $main_prefs = (array) $main_prefs['global_preferences'];
+    }
+  }
+  
+  // Return general preferences or a subset based on venue
+  if (!$venue OR $venue == 'generic') {
+    unset($main_prefs['venue']);
+    // Use the length of the $main_prefs array as a condition as to
+    // whether the preferences have already been set. This is
+    // HARDCODED here.
+    if (count($main_prefs) < 3)
+        $main_prefs['@attributes'] = array('cleared' => 1);
+    return $main_prefs;
+  }
+  else {
+    if (isset($main_prefs['venue'])) {
+      if (!is_numeric(key($main_prefs['venue']))) {
+        $main_prefs['venue'] = array($main_prefs['venue']);
+      }
+      foreach ($main_prefs['venue'] as $key => $prefs_venue) {
+        if (isset($prefs_venue['@attributes']['name']) AND $prefs_venue['@attributes']['name'] == $venue) {
+          return $main_prefs['venue'][$key];
+        }
+      }
+    }
+  }
+
+  return array(
+    '@attributes' => array('name' => $venue, 'cleared' => 1)
+  );
+}
+
+/**
+ * Save project preferences to BOINC account
+ */
+function boincwork_save_prefs($prefs, $type = 'general', $venue = null, $account = null) {
+  
+  require_boinc(array('user'));
+  
+  // Load existing project prefs from the BOINC user object
+  if (!$account) {
+    global $user;
+    $account = $user;
+  }
+  $account = user_load($account->uid);
+  $boincuser = BoincUser::lookup_id($account->boincuser_id);
+  
+  // Load the specified preferences for the user
+  $main_prefs = array();
+  if ($type == 'project') {
+    if ($boincuser->project_prefs) {
+      $main_prefs = load_configuration($boincuser->project_prefs);
+      $main_prefs = (array) $main_prefs['project_preferences'];
+    }
+  }
+  else {
+    if ($boincuser->global_prefs) {
+      $main_prefs = load_configuration($boincuser->global_prefs);
+      $main_prefs = (array) $main_prefs['global_preferences'];
+    }
+  }
+  
+  // Save all preferences or a subset based on venue
+  //drupal_set_message('<pre>' . print_r($main_prefs, true) . '</pre>');
+  $new_venue = true;
+  if (!$venue OR $venue == 'generic') {
+    //$main_prefs = $prefs;
+    $main_prefs = $prefs + $main_prefs;
+  }
+  else {
+    if (isset($main_prefs['venue'])) {
+      if (!is_numeric(key($main_prefs['venue']))) {
+        $main_prefs['venue'] = array($main_prefs['venue']);
+      }
+      foreach ($main_prefs['venue'] as $key => $prefs_venue) {
+        if (isset($prefs_venue['@attributes']['name']) AND $prefs_venue['@attributes']['name'] == $venue) {
+          if ($prefs) {
+            $main_prefs['venue'][$key] = $prefs;
+          }
+          else {
+            // If prefs is null, clear out this preference set
+            unset($main_prefs['venue'][$key]);
+            if (count($main_prefs['venue']) == 0) {
+              // If that was the only preference set configured, unset the
+              // venue tag altogether
+              unset($main_prefs['venue']);
+            }
+          }
+          $new_venue = false;
+          break;
+        }
+      }
+    }
+    if ($new_venue) {
+      $main_prefs['venue'][] = $prefs;
+    }
+  }
+  
+  // Set modified time
+  if ($type == 'general') {
+    if (!isset($main_prefs['mod_time'])) {
+      $main_prefs = array_merge(array('mod_time' => 0), $main_prefs);
+    }
+    $main_prefs['mod_time'] = time();
+    // unset source information, the Client will fill this in again
+    if (isset($main_prefs['source_project'])) {
+      unset($main_prefs['source_project']);
+    }
+    if (isset($main_prefs['source_scheduler'])) {
+      unset($main_prefs['source_scheduler']);
+    }
+  }
+  
+  // Convert prefs back to XML and save to database
+  $result = null;
+  if ($type == 'project') {
+    $main_prefs = array('project_preferences' => $main_prefs);
+    $boincuser->project_prefs = save_configuration($main_prefs);
+    db_set_active('boinc');
+    $result = db_query("UPDATE user SET project_prefs = '{$boincuser->project_prefs}' WHERE id = '{$boincuser->id}'");
+    db_set_active('default');
+  }
+  else {
+    $main_prefs = array('global_preferences' => $main_prefs);
+    $boincuser->global_prefs = save_configuration($main_prefs);
+    db_set_active('boinc');
+    $result = db_query("UPDATE user SET global_prefs = '{$boincuser->global_prefs}' WHERE id = '{$boincuser->id}'");
+    db_set_active('default');
+  }
+  return $result;
+}
+
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Utility functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+ * Set the default preference set for the user
+ */ 
+function boincwork_set_default_venue($venue = '') {
+  
+  global $user;
+  $account = user_load($user->uid);
+  
+  if ($venue == 'generic') {
+    $venue = '';
+  }
+  
+  db_set_active('boinc');
+  db_query("
+    UPDATE user
+    SET venue = '%s'
+    WHERE id = %d",
+    $venue, $account->boincuser_id
+  );
+  db_set_active('default');
+}
+
+/**
+ * Recursively validate submitted form values against a set of rules
+ */ 
+function boincwork_validate_form($validation_rules, $values, $path = array()) {
+  foreach ($validation_rules as $field => $rules) {
+    $parents = $path;
+    if (is_array($values[$field])) {
+      // Process nested form elements
+      $parents[] = $field;
+      boincwork_validate_form($rules, $values[$field], $parents);
+    }
+    else {
+      if ($parents) {
+        // form_set_error() identifies nested form elements with '][' as a
+        // delimiter between each parent and child element
+        $parents[] = $field;
+        $form_field = implode('][', $parents);
+      }
+      else {
+        $form_field = $field;
+      }
+      if (isset($rules['datatype']) AND !boincwork_validate_datatype($values[$field], $rules['datatype'])) {
+        form_set_error($form_field, bts('Invalid data type for @field', array('@field' => $field), NULL, 'boinc:account-preferences'));
+      }
+      if (isset($rules['min']) AND $values[$field] < $rules['min']) {
+        form_set_error($form_field, bts('Minimum value not met for @field', array('@field' => $field), NULL, 'boinc:account-preferences'));
+      }
+      if (isset($rules['max']) AND $values[$field] > $rules['max']) {
+        form_set_error($form_field, bts('Maximum value exceeded for @field', array('@field' => $field), NULL, 'boinc:account-preferences'));
+      }
+    }
+  }
+}
+
+/**
+ * Check that numeric data conforms to specifications
+ */
+function boincwork_validate_datatype($data, $datatype = NULL) {
+  switch ($datatype) {
+  case 'float':
+    if (!is_numeric($data)) {
+      return FALSE;
+    }
+    $data += 0;
+    if (!is_float($data)) {
+      return FALSE;
+    }
+    break;
+    
+  case 'integer':
+    if (!is_numeric($data)) {
+      return FALSE;
+    }
+    $data += 0;
+    if (!is_int($data)) {
+      return FALSE;
+    }
+    break;
+  
+  case 'text':
+  default:
+    
+  }
+  return TRUE;
+}
+
+/**
+ * Format a number to be displayed using a maximum number of digits
+ */ 
+function boincwork_format_stats($number, $max_digits = 4) {
+  $suffix = array(
+    0 => '',
+    1 => 'k',
+    2 => 'M',
+    3 => 'G',
+    4 => 'T',
+    5 => 'P',
+    6 => 'E',
+    7 => 'Z',
+    8 => 'Y'
+  );
+  if (!is_numeric($number)) $number = 0;
+  
+  $digits = floor(log($number, 10)) + 1;
+  $magnitude = 0;
+  $precision = 0;
+  if ($digits > $max_digits) {
+    $magnitude = floor(($digits - ($max_digits - 3)) / 3);
+    $precision = $max_digits - ($digits - ($magnitude * 3) + 1);
+    $number = round($number / pow(1000, $magnitude), $precision);
+  }
+  $number = number_format($number, $precision) . (($magnitude) ? "{$suffix[$magnitude]}" : '');
+  
+  return $number;
+}
+
+
+  //------------------------------------------------------------------------------------------------
+  //  load_configuration(): Convert structured text/xml to array
+  //------------------------------------------------------------------------------------------------
+  
+  function load_configuration($text)
+  {
+      if (preg_match('/^\<\?xml .*\?\>$/i', $text)) return null;
+      if ($xml = text_to_xml($text)) return xml_to_array($xml);
+      return false;
+  }
+  
+  //------------------------------------------------------------------------------------------------
+  //  save_configuration(): Convert array to structured text/xml
+  //------------------------------------------------------------------------------------------------
+  
+  function save_configuration($array)
+  {
+      if ($xml = array_to_xml($array)) return xml_to_text($xml, false, true);
+      return false;
+  }
+  
+  //------------------------------------------------------------------------------------------------
+  //  array_to_xml(): Take a multidimensional array and convert it to a structured
+  //  DOM XML object
+  //------------------------------------------------------------------------------------------------
+  
+  function array_to_xml($array, $dom = false, $parent_node = false) {
+    $is_root = false;
+    if (!$dom) $dom = new DomDocument('1.0');
+    if (!$parent_node) {
+      $parent_node = $dom;
+      $is_root = true;
+    }
+    // Created an intermediate array to attempt to sort by @position
+    $ordered_array = array();
+    $unordered_array = array();
+    foreach ($array as $name => $value) {
+      if ($is_root) {
+        $unordered_array[] = $array;
+        break;
+      }
+      if (is_array($value)) {
+        if (is_numeric(key($value))) {
+          foreach ($value as $item) {
+            if (is_array($item) AND isset($item['@position'])) {
+              $ordered_array[$item['@position']] = array(
+                $name => $item
+              );
+            }
+            else {
+              $unordered_array[] = array(
+                $name => $item
+              );
+            }
+          }
+        }
+        elseif (isset($value['@position'])) {
+          $ordered_array[$value['@position']] = array(
+            $name => $value
+          );
+        }
+        else {
+          $unordered_array[] = array(
+            $name => $value
+          );
+        }
+      }
+      else {
+        $unordered_array[] = array(
+          $name => $value
+        );
+      }
+    }
+    
+    // Now append items without explicit positions at the end
+    $primed_array = array_merge($ordered_array, $unordered_array);
+    
+    // Convert to XML...
+    foreach ($primed_array as $item) {
+      list($name, $value) = each($item);
+      if (strcmp($name, '@attributes') == 0) {
+        if (!is_array($value)) continue;
+        foreach ($value as $attributeName => $attributeValue) {
+          $parent_node->setAttribute($attributeName, $attributeValue);
+        }
+      } elseif (strcmp($name, '@value') == 0) {
+        if (isset($value)) $parent_node->nodeValue = $value;
+      } elseif (strcmp($name, '@position') == 0) {
+        continue;
+      } else {
+        if (is_numeric($name)) {
+          $name = $parent_node->tagName;
+        }
+        $current_item = $dom->createElement($name);
+        if (is_array($value)) {
+          if (is_numeric(key($value))) {
+            $current_node = $parent_node->appendChild($current_item);
+            $current_node = array_to_xml($value, $dom, $current_node);
+            $child_count = $current_node->childNodes->length;
+            for ($i = 0; $i < $child_count; $i++) {
+              $parent_node->appendChild($current_node->childNodes->item(0));
+            }
+            $parent_node->removeChild($current_node);
+          } else {
+            $current_node = $dom->appendChild($current_item);
+            $parent_node->appendChild(array_to_xml($value, $dom, $current_node));
+          }
+        } else {
+          if (isset($value)) $current_item->nodeValue = $value;
+          $parent_node->appendChild($current_item);
+        }
+      }
+    }
+    /*
+    foreach ($array as $name => $value) {
+      if (strcmp($name, '@attributes') == 0) {
+        if (!is_array($value)) continue;
+        foreach ($value as $attributeName => $attributeValue) {
+          $parent_node->setAttribute($attributeName, $attributeValue);
+        }
+      } elseif (strcmp($name, '@value') == 0) {
+        if (isset($value)) $parent_node->nodeValue = $value;
+      } else {
+        if (is_numeric($name)) {
+          $name = $parent_node->tagName;
+        }
+        $current_item = $dom->createElement($name);
+        if (is_array($value)) {
+          if (is_numeric(key($value))) {
+            $current_node = $parent_node->appendChild($current_item);
+            $current_node = array_to_xml($value, $dom, $current_node);
+            $child_count = $current_node->childNodes->length;
+            for ($i = 0; $i < $child_count; $i++) {
+              $parent_node->appendChild($current_node->childNodes->item(0));
+            }
+            $parent_node->removeChild($current_node);
+          } else {
+            $current_node = $dom->appendChild($current_item);
+            $parent_node->appendChild(array_to_xml($value, $dom, $current_node));
+          }
+        } else {
+          if (isset($value)) $current_item->nodeValue = $value;
+          $parent_node->appendChild($current_item);
+        }
+      }
+    }*/
+    return $parent_node;
+  }
+  
+  //------------------------------------------------------------------------------------------------
+  //  xml_to_text(): Convert an XML DOM object to string format
+  //------------------------------------------------------------------------------------------------
+  
+  function xml_to_text($xml, $include_xml_declaration = true, $add_carriage_returns = false)
+  {
+      $xml->formatOutput = true;
+      $text = $xml->saveXML();
+      if (!$include_xml_declaration) {
+        $text = preg_replace('/<\?xml version=.*\?>\s*/i', '', $text, 1);
+      }
+      if ($add_carriage_returns) {;
+        $text = preg_replace('/\n/i', "\r\n", $text);
+      }
+      return trim($text);
+  }
+  
+  //------------------------------------------------------------------------------------------------
+  //  text_to_xml(): Convert an XML DOM object to string format
+  //------------------------------------------------------------------------------------------------
+  
+  function text_to_xml($text) {
+    $xml = new DomDocument();
+    if ( !($xml->loadXML($text)) ) return false;
+    return $xml;
+  }
+  
+  
+  //------------------------------------------------------------------------------------------------
+  //  xml_to_array(): Convert an XML DOM object to array format
+  //------------------------------------------------------------------------------------------------
+  
+  function xml_to_array($xml) {
+      $node = $xml->firstChild; //$xml->first_child();
+      $result = '';
+      $index = 1;
+      $position = 0;
+      while (!is_null($node)) {
+          switch ($node->nodeType) {
+          case XML_TEXT_NODE:
+              if (trim($node->nodeValue)  != '') $result = $node->nodeValue;
+              break;
+          case XML_ELEMENT_NODE:
+              $node_name = $node->nodeName;
+              $parent = $node->parentNode;
+              $sibling = $node->nextSibling;
+              
+              // Determine if this node forms a set with siblings (share a node name)
+              while (($sibling) AND (($sibling->nodeType != XML_ELEMENT_NODE) OR ($sibling->nodeName != $node->nodeName))) $sibling = $sibling->nextSibling;
+              if (!$sibling) {
+                  $sibling = $node->previousSibling;
+                  while (($sibling) AND (($sibling->nodeType != XML_ELEMENT_NODE) OR ($sibling->nodeName != $node->nodeName))) $sibling = $sibling->previousSibling;
+              }
+              
+              if ($sibling) {
+                  $result[$node_name][$index] = '';
+                  if ($node->childNodes) {
+                      $result[$node_name][$index] = xml_to_array($node) ;
+                  }
+                  if ($node->hasAttributes()) {
+                      $attributes = $node->attributes;
+                      if ($result[$node_name][$index] !== '' AND !is_array($result[$node_name][$index])) {
+                          $result[$node_name][$index] = array('@value' => $result[$node_name][$index]);
+                      }
+                      foreach ($attributes as $key => $attribute) {
+                          $result[$node_name][$index]['@attributes'][$attribute->name] = $attribute->value;
+                      }
+                  }
+                  // Retain the position of the element
+                  if (!is_array($result[$node_name][$index])) {
+                    $result[$node_name][$index] = array(
+                      '@value' => $result[$node_name][$index]
+                    );
+                  }
+                  $result[$node_name][$index]['@position'] = $position;
+                  $position++;
+                  $index++;
+              } else {
+                  $result[$node_name] = '';
+                  if ($node->childNodes) {
+                      $result[$node_name] = xml_to_array($node) ;
+                  }
+                  if ($node->hasAttributes()) {
+                      $attributes = $node->attributes;
+                      if ($result[$node_name] !== '' AND !is_array($result[$node_name])) {
+                          $result[$node_name] = array('@value' => $result[$node_name]);
+                      }
+                      foreach($attributes as $key => $attribute) {
+                          $result[$node_name]['@attributes'][$attribute->name] = $attribute->value;
+                      }
+                  }
+                  // Retain the position of the element
+                  if (!is_array($result[$node_name])) {
+                    $result[$node_name] = array(
+                      '@value' => $result[$node_name]
+                    );
+                  }
+                  $result[$node_name]['@position'] = $position;
+                  $position++;
+              }
+              break;
+          }
+          $node = $node->nextSibling;
+      }
+      return $result;
+  }
+  
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Functions for use in displaying special case text in views
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+/**
+  * Determine output for host list views when no hosts are found.
+  */
+function boincwork_views_host_list_empty_text($context = NULL) {
+  
+  // Pull the BOINC user ID from the view arguments to get show_hosts 
+  // preference for that user
+  require_boinc('boinc_db');
+  $view = views_get_current_view();
+  $account = user_load($view->args[0]);
+  $boincuser = BoincUser::lookup_id($account->boincuser_id);
+  
+  // Determine if hosts are associated at all or just hidden
+  $output = '';
+  if ($boincuser->show_hosts) {
+    switch($context) {
+    case 'active':
+      $output .=  '<h2>' . bts('No active computers', array(), NULL, 'boinc:host-list') . '</h2>';
+      $output .=  '<p>' . bts('This user has no computers that have been'
+      . ' active in the last 30 days.', array(), NULL, 'boinc:host-list') . '</p>';
+      break;
+      
+    case 'preferences':
+      $output .=  '<h2>' . bts('No computers', array(), NULL, 'boinc:host-list') . '</h2>';
+      $output .=  '<p>' . bts('There are no computers assigned to this'
+      . ' preference set.', array(), NULL, 'boinc:host-list') . '</p>';
+      break;
+    
+    default:
+      $output .=  '<h2>' . bts('Computers pending', array(), NULL, 'boinc:host-list') . '</h2>';
+      $output .=  '<p>' . bts('This user does not yet have any associated'
+      . ' computers. Computers will be displayed when they have earned their'
+      . ' first credits.', array(), NULL, 'boinc:host-list') . '</p>';
+    }
+  }
+  else {
+    $output .=  '<h2>' . bts('Computers hidden', array(), NULL, 'boinc:host-list') . '</h2>';
+    $output .=  '<p>' . bts('This user has chosen not to show information'
+    . ' about their computers.', array(), NULL, 'boinc:host-list') . '</p>';
+  }
+  return $output;
+}
+
+/**
+  * Determine output for task list views when no tasks are found.
+  */
+function boincwork_views_task_list_empty_text($context = NULL) {
+  
+  // 
+  $output = '';
+  switch($context) {
+  default:
+    $output .=  '<h2>' . bts('No @type tasks', array('@type' => $context), NULL, 'boinc:task-list')
+    . '</h2>';
+    $output .=  '<p>' . bts('There are no tasks of this type on record', array(), NULL, 'boinc:task-list')
+    . '</p>';
+  }
+  return $output;
+}
+
+/**
+  * Output links to perform host actions
+  */
+function boincwork_host_action_links($host_id) {
+  $output = '';
+  if (boincwork_host_user_is_owner($host_id)) {
+    // Show merge hosts option
+    $output = '<ul class="tab-list"><li class="first tab">';
+    $output .= l(bts('Merge', array(), NULL, 'boinc:form-merge'), "host/{$host_id}/merge");
+    $output .= '</li>';
+    // If host has no tasks, allow the host to be deleted
+    if (!boincwork_host_get_task_count($host_id)) {
+      $output .= '<li class="tab">';
+      $output .= l(bts('Delete', array(), NULL, 'boinc:form-delete'), "host/{$host_id}/delete",
+        array(
+          'attributes' => array(
+            'onclick' => 'return confirm(\'' . bts('This will delete host @id'
+              . ' from your account forever. Are you sure this is OK?',
+              array('@id' => $host_id),
+              NULL, 'boinc:account-host-delete') . '\')'
+          )
+        )
+      );
+      $output .= '</li>';
+    }
+    $output .= '</ul>';
+  }
+  return $output;
+}
+
+/**
+ * Get details for a given host
+ */
+function boincwork_host_get_info($host_id) {
+  db_set_active('boinc');
+  $host = db_fetch_object(db_query(
+    "SELECT * FROM {host} WHERE id = '%d'",
+    $host_id
+  ));
+  db_set_active('default');
+  return $host;
+}
+
+/**
+ * Get the number of tasks associated with a given host
+ */
+function boincwork_host_get_task_count($host_id) {
+  db_set_active('boinc');
+  $count = db_result(db_query(
+    "SELECT COUNT(*) FROM {result} WHERE hostid = '%d'",
+    $host_id
+  ));
+  db_set_active('default');
+  return $count;
+}
+
+/**
+ * Check whether a user is the owner of a host
+ */
+function boincwork_host_user_is_owner($host_id, $uid = NULL) {
+  if (!$uid) {
+    global $user;
+    $uid = $user->uid;
+  }
+  $account = user_load($uid);
+  // Get host owner
+  db_set_active('boinc');
+  $owner = db_result(db_query(
+    "SELECT userid FROM {host} WHERE id = '%d'",
+    $host_id
+  ));
+  db_set_active('default');
+  return ($account->boincuser_id === $owner);
+}
+
+/**
+  * Determine output for host last contact time
+  */
+function boincwork_host_last_contact($timestamp, $host_id = NULL, $context = NULL) {
+  $output = '---';
+  $root_log_dir = variable_get('boinc_host_sched_logs_dir', '');
+  $log = '';
+  if ($timestamp) {
+    $output = gmdate('j M Y | G:i:s', $timestamp) . ' UTC';
+  }
+  if ($root_log_dir AND $host_id) {
+    $subdir = substr($host_id, 0, -3) OR $subdir = 0;
+    $log = implode('/', array($root_log_dir, $subdir, $host_id));
+  }
+  if ($log AND file_exists($log)) {
+    $output = l($output, "host/{$host_id}/log");
+  }
+  return $output;
+}
+
+/**
+ * 
+ */
+function boincwork_host_venue_selector($host_id) {
+  $output = '';
+  if (function_exists('jump_quickly')) {
+    $path = "host/{$host_id}/set-venue";
+    $venues = array(
+      "{$path}/generic" => bts('Generic', array(), NULL, 'boinc:account-preferences-location'),
+      "{$path}/home" => bts('Home', array(), NULL, 'boinc:account-preferences-location:-1:ignoreoverwrite'),
+      "{$path}/work" => bts('Work', array(), NULL, 'boinc:account-preferences-location'),
+      "{$path}/school" => bts('School', array(), NULL, 'boinc:account-preferences-location')
+    );
+    variable_set('jump_use_js_venues-Array', 1);
+    drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js');
+    drupal_add_js(drupal_get_path('theme', 'boinc') . '/js/prefs.js', 'theme');
+    // Get current venue
+    db_set_active('boinc');
+    $venue = db_result(db_query(
+      "SELECT venue FROM {host} WHERE id = '%d'",
+      $host_id
+    ));
+    db_set_active('default');
+    $output .= jump_quickly($venues, 'venues', 1, "{$path}/{$venue}");
+  }
+  return $output;
+}
+
+/**
+  * Determine output for task reported time / deadline
+  */
+function boincwork_task_time_reported($received_time = NULL, $deadline = NULL, $context = NULL) {
+  $output = '---';
+  if ($received_time OR $deadline) {
+    $timestamp = ($received_time) ? $received_time : $deadline;
+    $output = gmdate('j M Y, G:i:s', $timestamp) . ' UTC';
+    // Add a wrapper to deadline text
+    if (!$received_time) {
+      if (time() < $deadline) {
+        $output = '<span class="on-time">' . $output . '</span>';
+      }
+      else {
+        $output = '<span class="past-due">' . $output . '</span>';
+      }
+    }
+  }
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/boincwork/includes/projectprefs.xsd b/drupal/sites/default/boinc/modules/boincwork/includes/projectprefs.xsd
new file mode 100644
index 0000000..b55bbea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/includes/projectprefs.xsd
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           targetNamespace="http://boinc.berkeley.edu/drupal-psp.xsd"
+           xmlns="http://boinc.berkeley.edu/drupal-psp.xsd"
+           xmlns:psp="http://boinc.berkeley.edu/drupal-psp.xsd"
+           elementFormDefault="qualified"
+           version="0.4">
+
+    <!-- simple types -->
+
+    <xs:simpleType name="datatype">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="text" />
+            <xs:enumeration value="integer" />
+            <xs:enumeration value="float" />
+        </xs:restriction>
+    </xs:simpleType>
+
+    <!-- elementary complex types -->
+
+    <xs:complexType name="item">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute name="selected" type="xs:boolean" />
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+
+    <xs:complexType name="app">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute name="id" type="xs:positiveInteger" use="required" />
+                <xs:attribute name="selected" type="xs:boolean" />
+                <xs:attribute name="enabled" type="xs:boolean" />
+                <xs:attribute name="rank" type="xs:nonNegativeInteger" />
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+
+    <!-- collection types -->
+
+    <xs:element name="items">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="item" type="item" minOccurs="1" maxOccurs="unbounded" />
+            </xs:sequence>
+        </xs:complexType>
+        <xs:unique name="unique-items-list-entry">
+            <xs:selector xpath="psp:item"/>
+            <xs:field xpath="."/>
+        </xs:unique>
+        <xs:unique name="only-one-item-can-be-selected">
+            <xs:selector xpath="psp:item"/>
+            <xs:field xpath="@selected"/>
+        </xs:unique>
+    </xs:element>
+
+    <xs:element name="attributes">
+        <xs:complexType>
+            <xs:choice minOccurs="1" maxOccurs="unbounded">
+                <xs:element name="text" type="text" />
+                <xs:element name="boolean" type="boolean" />
+                <xs:element name="radio" type="radio" />
+                <xs:element name="dropdown" type="dropdown" />
+            </xs:choice>
+        </xs:complexType>
+        <xs:unique name="unique-preference-attributes-per-tag">
+            <xs:selector xpath=".//*"/>
+            <xs:field xpath="@name"/>
+        </xs:unique>
+    </xs:element>
+
+    <!-- complex base types -->
+
+    <xs:complexType name="component">
+        <xs:sequence>
+            <xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1" />
+            <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
+        </xs:sequence>
+        <xs:attribute name="name" type="xs:string" use="required" />
+    </xs:complexType>
+
+    <!-- GUI component types (available preference settings) -->
+
+    <xs:complexType name="text">
+        <xs:complexContent>
+            <xs:extension base="component">
+                <xs:attribute name="datatype" type="datatype" use="required" />
+                <xs:attribute name="min" type="xs:decimal" />
+                <xs:attribute name="max" type="xs:decimal" />
+                <xs:attribute name="default" type="xs:string" use="required" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="boolean">
+        <xs:complexContent>
+            <xs:extension base="component">
+                <xs:attribute name="selected" type="xs:boolean" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="radio">
+        <xs:complexContent>
+            <xs:extension base="component">
+                <xs:sequence>
+                    <xs:element ref="items" minOccurs="1" maxOccurs="1" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="dropdown">
+        <xs:complexContent>
+            <xs:extension base="component">
+                <xs:sequence>
+                    <xs:element ref="items" minOccurs="1" maxOccurs="1" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="compound">
+        <xs:complexContent>
+            <xs:extension base="component">
+                <xs:sequence>
+                    <xs:element ref="attributes" minOccurs="1" maxOccurs="1" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <!-- grouping types -->
+
+    <xs:element name="apps">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1" />
+                <xs:element name="app" type="app" minOccurs="0" maxOccurs="unbounded" />
+            </xs:sequence>
+        </xs:complexType>
+        <xs:unique name="unique-app-ids">
+            <xs:selector xpath="psp:app"/>
+            <xs:field xpath="@id"/>
+        </xs:unique>
+        <xs:unique name="unique-app-names">
+            <xs:selector xpath="psp:app"/>
+            <xs:field xpath="."/>
+        </xs:unique>
+    </xs:element>
+
+    <xs:complexType name="group">
+        <xs:sequence>
+            <xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1" />
+            <xs:choice minOccurs="1" maxOccurs="unbounded">
+                <xs:element name="text" type="text" />
+                <xs:element name="boolean" type="boolean" />
+                <xs:element name="radio" type="radio" />
+                <xs:element name="dropdown" type="dropdown" />
+            </xs:choice>
+        </xs:sequence>
+    </xs:complexType>
+
+    <!-- root element -->
+
+    <xs:element name="project_specific_preferences">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:choice minOccurs="1" maxOccurs="unbounded">
+                    <xs:element ref="apps" />
+                    <xs:element name="group" type="group" />
+                    <xs:element name="compound" type="compound" />
+                </xs:choice>
+            </xs:sequence>
+        </xs:complexType>
+        <xs:unique name="unique-preference-tags-per-venue">
+            <xs:selector xpath=".//psp:group/*|psp:compound"/>
+            <xs:field xpath="@name"/>
+        </xs:unique>
+    </xs:element>
+
+</xs:schema>
diff --git a/drupal/sites/default/boinc/modules/boincwork/views/views_handler_argument_boincuser_id.inc b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_argument_boincuser_id.inc
new file mode 100644
index 0000000..0cda578
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_argument_boincuser_id.inc
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * views_handler_argument_boincuser_id: This handler is used to convert
+ * the Drupal user ID passed as a URL argument into a BOINC user ID
+ * for accessing data in the BOINC database.
+ */
+
+class views_handler_argument_boincuser_id extends views_handler_argument_numeric {
+  function construct() {
+    parent::construct();
+  }
+
+  function set_argument($arg) {
+    // When setting the ID argument, convert to BOINC ID
+    $id = is_numeric($arg) ? $arg : 0;
+    $boinc_id = db_result(db_query("SELECT boinc_id FROM {boincuser} WHERE uid = %d", $id));
+    $this->argument = $boinc_id;
+    return $this->validate_arg($boinc_id);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_app_version_number.inc b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_app_version_number.inc
new file mode 100644
index 0000000..0638219
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_app_version_number.inc
@@ -0,0 +1,16 @@
+<?php
+
+/*
+ * views_handler_field_boincwork_app_version_number: This handler converts a
+ * application version number to decimal form.
+ */
+
+class views_handler_field_boincwork_app_version_number extends views_handler_field {
+  function construct() {
+    parent::construct();
+  }
+
+  function render($values) {
+    return sprintf("%01.2f", $values->app_version_host_app_version_version_num / 100);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_host_app_et_avg.inc b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_host_app_et_avg.inc
new file mode 100644
index 0000000..0c2e69e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_host_app_et_avg.inc
@@ -0,0 +1,20 @@
+<?php
+
+/*
+ * views_handler_field_boincwork_host_app_et_avg: This handler converts
+ * et_avg to gigaflops.
+ */
+
+class views_handler_field_boincwork_host_app_et_avg extends views_handler_field {
+  function construct() {
+    parent::construct();
+  }
+
+  function render($values) {
+    $gflops = 0;
+    if ($values->host_app_version_et_avg) {
+      $gflops = 1e-9 / $values->host_app_version_et_avg;
+    }
+    return round($gflops, 2) . ' GFLOPS';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_host_app_turnaround_avg.inc b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_host_app_turnaround_avg.inc
new file mode 100644
index 0000000..ed1fc7c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/boincwork/views/views_handler_field_boincwork_host_app_turnaround_avg.inc
@@ -0,0 +1,17 @@
+<?php
+
+/*
+ * views_handler_field_boincwork_host_app_turnaround_avg: This handler converts
+ * a number of seconds to days.
+ */
+
+class views_handler_field_boincwork_host_app_turnaround_avg extends views_handler_field {
+  function construct() {
+    parent::construct();
+  }
+
+  function render($values) {
+    $time_in_days = $values->host_app_version_turnaround_avg / (24*60*60);
+    return round($time_in_days, 2) . ' ' . t('days');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/comment_form_block/comment_form_block.info b/drupal/sites/default/boinc/modules/comment_form_block/comment_form_block.info
new file mode 100644
index 0000000..f08e7ec
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/comment_form_block/comment_form_block.info
@@ -0,0 +1,5 @@
+name = Comment Form Block
+description = Moves the comment form for a node into a block.
+core = 6.x
+dependencies[] = block
+dependencies[] = comment
diff --git a/drupal/sites/default/boinc/modules/comment_form_block/comment_form_block.module b/drupal/sites/default/boinc/modules/comment_form_block/comment_form_block.module
new file mode 100644
index 0000000..8325ed3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/comment_form_block/comment_form_block.module
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * @file
+ * Moves the comment form for a node into a block.
+ */
+
+/**
+ * Implements hook_block() for Drupal 6 compatibility
+ */
+function comment_form_block_block($op = 'list', $delta = 0, $edit = array()) {
+  switch ($op) {
+  case 'view':
+    //$block = node_comment_block_block_view($delta);
+    $block = array();
+    if ($delta == 'comment_form') {
+      if (arg(0) == 'node' && is_numeric($nid = arg(1)) && !arg(2)) {
+        global $user;
+        $node = node_load($nid);
+        if ($node->comment !== 0 AND user_access('post comments', $user)) {
+          $block['subject'] = NULL; // This should be NULL otherwise there will be duplicate h2 elements.
+          $block['content'] = '<h2>' . bts('Post new comment', array(), NULL, 'boinc:forum-post-new-comment') . '</h2>';
+          $block['content'] .= drupal_get_form('comment_form', array('nid' => $nid)); 
+        }
+      }
+    }
+    break;
+  case 'list':
+    $blocks = comment_form_block_block_info();
+    return $blocks;
+    break;
+  default:
+  }
+  return $block;
+}
+
+/**
+ * Implements hook_block_info().
+ */
+function comment_form_block_block_info() {
+  $blocks['comment_form'] = array(
+    'info' => bts('Comment form', array(), NULL, 'boinc:forum-comment-form'),
+  );
+
+  return $blocks;
+}
+
+/**
+ * Implements hook_block_view().
+ */ /*
+function comment_form_block_block_view($delta = '') {
+  $block = array();
+
+  if ($delta == 'node_comments') {
+    if (arg(0) == 'node' && is_numeric($nid = arg(1)) && !arg(2)) {
+      $node = node_load($nid);
+
+      if ($node->comment !== 0) {
+        $block['subject'] = NULL; // This should be NULL otherwise there will be duplicate h2 elements.
+        $block['content'] = '';
+
+        $node = node_view($node);
+
+        if ($node['comments']) {
+          $block['content'] .= render($node['comments']);
+        }
+      }
+    }
+  }
+
+  return $block;
+} */
+
+/**
+ * Implements hook_preprocess_HOOK() for nodes.
+ */
+function comment_form_block_preprocess_node(&$variables) {
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter() for block_admin_configure.
+ */
+function comment_form_block_form_block_admin_configure_alter(&$form, &$form_state) {
+  if (isset($form['delta'])) {
+    if ($form['delta']['#value'] == 'comment_form') {
+      $form['settings']['title']['#disabled'] = TRUE;
+      $form['settings']['title']['#description'] = t('The title for this block cannot be overridden.');
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/bbcode/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/README.txt b/drupal/sites/default/boinc/modules/contrib/bbcode/README.txt
new file mode 100644
index 0000000..d0bf6f5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/README.txt
@@ -0,0 +1,100 @@
+Drupal bbcode.module README.txt
+==============================================================================
+
+The Drupal bbcode.module adds a BBCode filter to Drupal. This allows you
+to use HTML-like tags as an alternative to HTML itself for adding markup
+to your posts. BBCode is easier to use than HTML and helps to prevent
+malicious users from disrupting your site's formatting.
+
+See the help screen of the module (or the code) for information on which
+tags and variants are supported. This implementation is not necessarily the
+same as the original BBCode implementaion.
+ 
+Note that this filter also recognizes and converts URLs and email addresses
+to links automatically.
+
+Installation
+------------------------------------------------------------------------------
+ 
+  - Download the BBCode module from http://drupal.org/project/bbcode
+
+  - Create a .../modules/bbcode/ subdirectory and copy the files into it.
+
+  - Enable the module as usual from Drupal's admin pages 
+    (Administer » Modules)
+ 
+Configuration
+------------------------------------------------------------------------------
+
+  - Before using BBCode you need to enable the BBCode filter in an input
+    format (see Administer » Input formats » add input format)
+
+  - You can enable/ disable the following features in the configuration page
+    of the input format in which BBCode is enabled:
+
+    * Convert web and email addresses to links
+    * Javascript encoding of emails
+    * Smart paragraph and line breaks
+    * Print debugging info
+
+  - If you've disabled "smart paragraph and line breaks", you need to enable
+    Drupal's "Line break converter" with the BBCode filter. Don't use both
+    together!
+
+  - If you would like to use BBCode as a replacement for HTML, you could
+    enable Drupal's "HTML filter" to remove or escape user entered HTML tags.
+
+  - If you've enabled multiple filters, you may need to rearrange them to
+    ensure they execute in the correct order. For example, if HTML filtering 
+    is enabled, it is essential that BBCode be sorted AFTER the HTML filter. 
+    If not this module will change the BBCode into HTML, and the HTML filter 
+    will disallow and remove the code again.
+
+Complementing Modules
+------------------------------------------------------------------------------
+
+The following optional modules may be used to enhance your BBCode 
+installation:
+
+  - Quicktags - http://drupal.org/project/quicktags
+    Adds a BBCode formatting bar above all your textareas. 
+
+  - Smileys module - http://drupal.org/project/smileys
+
+Note: these are independent projects. Please do not report issues with them 
+as BBCode problems!
+
+Additional tags:
+------------------------------------------------------------------------------
+
+Here are some tags that's not part of the official BBCode implementation. 
+You may want to add them to your bbcode-filter.inc file:
+
+  - '#\[move(?::\w+)?\](.*?)\[/move(?::\w+)?\]#si' => '<marquee>\\1</marquee>',
+  - '#\[mp3\](.*?)\[/mp3(?::\w+)?\]#si' => '<swf file="\\1">',
+
+Credits / Contacts
+------------------------------------------------------------------------------
+
+  - The original author of this module is Alastair Maw, who can be reached at
+    drupal-bbcode[at]almaw.com. 
+
+  - Gabor Hojtsy (goba[at]php.net) also contributed to the module.
+
+  - Javascript encoding of emails by László Bácsi (lackac[at]math.bme.hu).
+
+  - Frank Naude converted this module to Drupal 4.7 and 5.0, added several
+    BBCode tags, a linebreak converter, quicktags integration, etc.
+
+TODO List
+------------------------------------------------------------------------------
+
+ - Translate this module into other languages.
+
+ - Fix non-compliant HTML when "Smart paragraph and line breaks:" is set to 
+   "Line and paragraph breaks". If HTML validation is important to you, use 
+   one of the other options or submit a patch.
+
+ - Configuration of which BBCode tags are allowed 
+   (will require a complete rewrite).
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-filter.inc b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-filter.inc
new file mode 100644
index 0000000..2e6d29f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-filter.inc
@@ -0,0 +1,368 @@
+<?php
+// $Id: bbcode-filter.inc,v 1.66 2008/11/30 08:50:08 naudefj Exp $
+
+function _bbcode_filter_process(&$body, $format = -1) {
+
+  $quote_text = t('Quote:');
+  $quote_user = t('\\1 wrote:');
+
+  // Encode all script tags to prevent XSS html injection attacks
+  $body = preg_replace(array('#<script([^>]*)>#i', '#</script([^>]*)>#i'), array('<script\\1>', '</script\\1>'), $body);
+
+  // Find all [code] tags and check if they contain a newline. If we find a newline, 
+  // that [code] should be rendered as a block, otherwise it will still be inline
+  $mode = variable_get("bbcode_paragraph_breaks_$format", 2);
+  $pre = array(); $i = 0;
+  if (preg_match_all('#\[code(?::\w+)?\](.*?)\[/code(?::\w+)?\]#si', $body, $code_tags, PREG_SET_ORDER)) {
+    foreach ($code_tags as $code_tag) {
+      $code_tag[1] = str_replace(array('<', '>'), array('<', '>'), $code_tag[1]);
+      if (strpos($code_tag[1], "\n") === FALSE)
+        $body = str_replace($code_tag[0], '<code class="bb-code">'. $code_tag[1] .'</code>', $body);
+      elseif ($mode) {
+        // Strip preformatted code blocks from text during line break processing, replaced below
+        $body = str_replace($code_tag[0], "***pRe_sTrInG$i***", $body);
+        $pre[$i++] = '<pre class="bb-code-block">'. $code_tag[1] .'</pre>';
+      }
+      else
+        $body = str_replace($code_tag[0], '<pre class="bb-code-block">'. $code_tag[1] .'</pre>', $body);
+    }
+  }
+
+  // Apply line and paragraph breaks (skipping preformatted code)
+  if ($mode) {
+
+    if ($mode == 1) 	// Line breaks only (starting with PHP 4.0.5, nl2br() is XHTML compliant)
+      $body = nl2br($body);
+
+    if ($mode == 2) {	// Line and paragraph breaks (may not always be XHTML compliant)
+      $body  = preg_replace("/(\r\n|\n|\r)/", "\n", $body);
+      $body  = preg_replace("/\n\n+/", "\n\n", $body);
+      $parts = explode("\n\n", $body);
+      for ($i=0; $i<sizeof($parts); $i++) {
+         // No linebreaks if paragraph starts with an HTML tag
+         if ( !preg_match('/^<.*>/', $parts[$i]) ) 
+           $parts[$i] = nl2br($parts[$i]);
+
+         // Some tags should not be in paragraph blocks
+         if ( !preg_match('/^(?:<|\[)(?:table|list|ol|ul|pre|select|form|blockquote|hr)/i', $parts[$i]) ) 
+           $parts[$i] = '<p>'. $parts[$i] .'</p>';
+      }
+      $body = implode("\n\n", $parts);
+    }
+
+    // Reinsert preformatted code blocks
+    foreach ($pre as $i => $code_tag) 
+       $body = str_replace("***pRe_sTrInG$i***", $code_tag, $body);
+  }
+  
+  // Replace any improper quote tags with proper quote tags
+  $body = str_replace('[quote/]', '[/quote]', $body);
+  
+  // Add closing tags to prevent users from disruping your site's HTML
+  // (required for nestable tags only: [list] and [quote])
+  preg_match_all('/\[quote/i', $body, $matches);
+  $opentags = count($matches['0']);
+  preg_match_all('/\[\/quote\]/i', $body, $matches);
+  $unclosed = $opentags - count($matches['0']);
+  for ($i = 0; $i < $unclosed; $i++) {
+    $body .= '[/quote]';
+  }
+  // Also add opening tags, if needed
+  for ($i = $unclosed; $i < 0; $i++) {
+    $body = '[quote]' . $body;
+  }
+  preg_match_all('/\[list/i', $body, $matches);
+  $opentags = count($matches['0']);
+  preg_match_all('/\[\/list\]/i', $body, $matches);
+  $unclosed = $opentags - count($matches['0']);
+  for ($i = 0; $i < $unclosed; $i++) {
+    $body .= '[/list]';
+  }
+  for ($i = $unclosed; $i < 0; $i++) {
+    $body = '[list]' . $body;
+  }
+
+  // begin processing for [size] 
+  if (stristr($body, '[size=') !== FALSE) { // prevent useless processing
+    $arr = array(
+      'tag'         => 'size',
+      'pattern'     => '#\[\x07=([\d]+)(?::\w+)?\]([^\x07]*)\[/\x07(?::\w+)?\]#esi',
+      'replacement' => '"<span style=\"font-size:". _bbcode_round_size_val(\'$1\') ."px\">". str_replace(\'\"\', \'"\', \'$2\') ."</span>"',
+      'text'        => $body);
+    $body = _bbcode_replace_nest_tag($arr);
+  } // end processing for [size]
+
+  // begin processing for [color]
+  if (stristr($body, '[color=') !== FALSE) { // prevent useless processing
+    $arr = array(
+      'tag'         => 'color',
+      'pattern'     => '#\[\x07=([\#\w]+)(?::\w+)?\]([^\x07]*)\[/\x07(?::\w+)?\]#si',
+      'replacement' => '<span style="color:$1">$2</span>',
+      'text'        => $body);
+    $body = _bbcode_replace_nest_tag($arr);
+  } // end processing for [color]
+
+  // begin processing for [font]
+  if (stristr($body, '[font=') !== FALSE) { // prevent useless processing
+    $arr = array(
+      'tag'         => 'font',
+      'pattern'     => '#\[\x07=([\w\s]+)(?::\w+)?\]([^\x07]*)\[/\x07(?::\w+)?\]#si',
+      'replacement' => '<span style="font-family:$1">$2</span>',
+      'text'        => $body);
+    $body = _bbcode_replace_nest_tag($arr);
+  } // end processing for [font]
+
+  // begin processing for [list] and [*]
+  if (stristr($body, '[list') !== FALSE) { // prevent useless processing
+    $l_type = array(
+      NULL   => array('style' => 'circle', 'tag' => 'ul'),
+      'c'    => array('style' => 'circle', 'tag' => 'ul'),
+      'd'    => array('style' => 'disc', 'tag' => 'ul'),
+      's'    => array('style' => 'square', 'tag' => 'ul'),
+      '1'    => array('style' => 'decimal', 'tag' => 'ol'),
+      'a'    => array('style' => 'lower-alpha', 'tag' => 'ol'),
+      'A'    => array('style' => 'upper-alpha', 'tag' => 'ol'),
+      'i'    => array('style' => 'lower-roman', 'tag' => 'ol'),
+      'I'    => array('style' => 'upper-roman', 'tag' => 'ol')
+      );
+    $body = preg_replace('#(\[[/]*)list(.*?\])#si', "$1\x07$2", $body);
+
+    // replace to <li> tags - [*]..[*]|[*]..[/list]
+    $body = preg_replace('#\[\*(?::\w+)?\]([^\x07]*?)(?=\s*?(\[\*(?::\w+)?\]|\[/\x07(?::\w+)?\]))#si', '<li>$1</li>', $body);
+    // add </li> tags to nested <li> - [/list]..[/list]
+    $body = preg_replace('#(\[/\x07(?::\w+)?\])(?=[^\x07]*?\[/\x07(?::\w+)?\])#si', '$1</li>', $body);
+    // add </li> tags to nested <li> - [/list]..[*]..[list]
+    $body = preg_replace('#(\[/\x07(?::\w+)?\])(?=[^\x07]*?\[\*(?::\w+)?\][^\x07]*?\[\x07.*(?::\w+)?\])#si', '$1</li>', $body);
+    // replace to <li> tags for nested <li> - [*]..[list]
+    $body = preg_replace('#\[\*(?::\w+)?\]([^\x07]*)?(?=\[\x07.*(?::\w+)?\])#si', '<li>$1', $body);
+
+    // replace to <ol>/<ul> and </ol>/</ul> tags
+    // It will be better to use &count and do-while, if php 5 or higher.
+    while (preg_match("#\[\x07[=]*((?-i)[cds1aAiI])*(?::\w+)?\]([^\x07]*)\[/\x07(?::\w+)?\]#si", $body)) {
+      $body = preg_replace("#\[\x07[=]*((?-i)[cds1aAiI])*(?::\w+)?\]([^\x07]*)\[/\x07(?::\w+)?\]#esi", '"<". $l_type[\'$1\']["tag"] ." class=\"bb-list\" style=\"list-style-type:". $l_type[\'$1\']["style"] .";\">". str_replace(\'\"\', \'"\', \'$2\') ."</". $l_type[\'$1\']["tag"] .">"', $body);
+    }
+
+    // remove <br /> tags
+    $body = preg_replace('#(<[/]*([uo]l|li).*>.*)<br />#i', '$1', $body);
+  } // end processing for [list] and [*]
+
+  // Define BBCode tags
+  $preg = array(
+    // Implement [notag]
+    '#\[notag(?::\w+)?\](.*?)\[/notag(?::\w+)?\]#sie'        => '_bbcode_notag_tag(\'\\1\')',
+
+    // Headings and indexes - articles will almost always need them
+    '#\[h([1-6])(?::\w+)?\](.*?)\[/h[1-6](?::\w+)?\]#sie'    => '_bbcode_generate_heading(\\1, \'\\2\')',
+    '#\[index\s*/?\]#sie'                                    => '_bbcode_generate_index($body)',
+    '#\[index style=(ol|ul)\]#sie'                           => '_bbcode_generate_index($body, \'\\1\')',
+
+    // Font, text and alignment
+    '#\[align=(\w+)(?::\w+)?\](.*?)\[/align(?::\w+)?\]#si'   => '<span style="text-align:\\1">\\2</span>',
+    '#\[float=(left|right)(?::\w+)?\](.*?)\[/float(?::\w+)?\]#si' => '<span style="float:\\1">\\2</span>',
+    '#\[justify(?::\w+)?\](.*?)\[/justify(?::\w+)?\]#si'     => '<div style="text-align:justify;">\\1</div>',
+    '#\[(b|strong)(?::\w+)?\](.*?)\[/(b|strong)(?::\w+)?\]#si' => '<span style="font-weight:bold">\\2</span>',
+    '#\[(i|em)(?::\w+)?\](.*?)\[/(i|em)(?::\w+)?\]#si'       => '<span style="font-style:italic">\\2</span>',
+    '#\[u(?::\w+)?\](.*?)\[/u(?::\w+)?\]#si'                 => '<span style="text-decoration:underline">\\1</span>',
+    '#\[s(?::\w+)?\](.*?)\[/s(?::\w+)?\]#si'                 => '<s>\\1</s>',
+    '#\[sup(?::\w+)?\](.*?)\[/sup(?::\w+)?\]#si'             => '<sup>\\1</sup>',
+    '#\[sub(?::\w+)?\](.*?)\[/sub(?::\w+)?\]#si'             => '<sub>\\1</sub>',
+    '#\[center(?::\w+)?\](.*?)\[/center(?::\w+)?\]#si'       => '<div style="text-align:center">\\1</div>',
+    '#\[left(?::\w+)?\](.*?)\[/left(?::\w+)?\]#si'           => '<div style="text-align:left">\\1</div>',
+    '#\[right(?::\w+)?\](.*?)\[/right(?::\w+)?\]#si'         => '<div style="text-align:right">\\1</div>',
+
+    // Links without a protocol, with a protocol, and with good looking text
+    '#\[url(?::\w+)?\]www\.([\w:;&,%+~!=@\/\.\-\#\?]+?)\[/url(?::\w+)?\]#si' => '<a href="http://www.\\1" class="bb-url">\\1</a>',
+    '#\[url(?::\w+)?\]([\w:;&,%+~!=@\/\.\-\#\?]+?)\[/url(?::\w+)?\]#si'   => '<a href="\\1" class="bb-url">\\1</a>',
+    '#\[url=www\.([\w:;&,%+~!=@\/\.\-\#\?]+?)\](.*?)\[/url(?::\w+)?\]#si' => '<a href="http://www.\\1" class="bb-url">\\2</a>',
+    '#\[url=([\w:;&,%+~!=@\/\.\-\#\?]+?)\](.*?)\[/url(?::\w+)?\]#si'      => '<a href="\\1" class="bb-url">\\2</a>',
+
+    // Anchor tags for linking within documents
+    '#\[anchor=(\w+)(?::\w+)?\](.*?)\[/anchor(?::\w+)?\]#si' => '<a name="\\1">\\2</a>',
+ 
+    // Images without or with client-side sizing
+    '#\[img(?::\w+)?\]([\w:;&,~%+!=@\/\.\-\#\?]+)\[/img(?::\w+)?\]#si' => '<img src="\\1" alt="" class="bb-image" />',
+    '#\[img=(\d+)x(\d+)(?::\w+)?\]([\w:;&,~%+!=@\/\.\-\#\?]+)\[/img(?::\w+)?\]#si' => '<img width="\\1" height="\\2" alt="" src="\\3" class="bb-image" />',
+    '#\[img=([\w\s:;,\.\-\'\(\)]+)(?::\w+)?\]([\w:;&,~%+!=@\/\.\-\#\?]+)\[/img(?::\w+)?\]#si' => '<img alt="\\1" src="\\2" class="bb-image" />',
+    '#\[img align=(left|right|center)(?::\w+)?\]([\w:;&,~%+!=@\/\.\-\#\?]+)\[/img(?::\w+)?\]#si' => '<img src="\\2" alt="" align="\\1" class="bb-image" />',
+
+    // Flash animations and other special effects
+    '#\[flash=(\d+)x(\d+)(?::\w+)?\]([\w:;&,~%+!=@\/\.\-\#\?]+)\[/flash(?::\w+)?\]#si' => '<object type="application/x-shockwave-flash" data="\\3" width="\\1" height="\\2"><param name="movie" value="\\3" /></object>', 
+
+    // Acronyms & abbreviations - show description when mouse moves over tag
+    '#\[acronym=([\w\s-,\.]+)(?::\w+)?\](.*?)\[/acronym(?::\w+)?\]#si' => '<acronym title="\\1">\\2</acronym>',
+    '#\[abbr=([\w\s-,\.]+)(?::\w+)?\](.*?)\[/abbr(?::\w+)?\]#si'       => '<abbr title="\\1">\\2</abbr>',
+
+    // Quoting with or without specifying the source
+    '#\[quote(?::\w+)?\]#i'                                    => '<div class="bb-quote">'.$quote_text.'<blockquote class="bb-quote-body">',
+    '#\[quote=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\]#i' => '<div class="bb-quote"><b>'.$quote_user.'</b><blockquote class="bb-quote-body">',
+    '#\[/quote(?::\w+)?\]#si'                                  => '</blockquote></div>',
+
+    // PHP code blocks (syntax highlighted)
+    '#\[php(?::\w+)?\](?:[\r\n])*(.*?)\[/php(?::\w+)?\]#sie' => '_bbcode_php_tag(\'\\1\')',
+
+    // Links to popular sites
+    '#\[google(?::\w+)?\]([\w\s-]+?)\[/google(?::\w+)?\]#si'       => '<a href="http://www.google.com/search?q=\\1">\\1</a>',
+    '#\[wikipedia(?::\w+)?\]([\w\s-]+?)\[/wikipedia(?::\w+)?\]#si' => '<a href="http://www.wikipedia.org/wiki/\\1">\\1</a>',
+    '#\[youtube\]([0-9a-zA-Z_\-]+)\[/youtube\]#si'                 => '<object width="425" height="366"><param name="movie" value="http://www.youtube.com/v/\\1"></param><embed src="http://www.youtube.com/v/\\1" type="application/x-shockwave-flash" width="425" height="366"></embed></object>',
+
+    // Table tags
+    '#\[table\](.+?)\[/table\]#si'                           => '<table class="bb-table">\\1</table>', 
+    '#\[(row|r|tr)\](.+?)\[/(row|r|tr)\]#si'                 => '<tr>\\2</tr>', 
+    '#\[(row|r|tr) color=([\#\w]+)\](.+?)\[/(row|r|tr)\]#si' => '<tr bgcolor=\\2>\\3</tr>', 
+    '#\[(header|head|h)\](.+?)\[/(header|head|h)\]#si'       => '<th>\\2</th>',
+    '#\[(col|c|td)\](.+?)\[/(col|c|td)\]#si'                 => '<td valign="top">\\2</td>',
+
+    // Cleanup table output (td, th and tr tags)
+    '#<([\/]?)t([dhr])><br />#si'                           => '<\\1t\\2>',
+    '#<table(.+?)><br />#si'                                => '<table\\1>',
+  );
+  $body = preg_replace(array_keys($preg), array_values($preg), $body);
+
+  // Simple replacements (str_replace is faster than preg_replace)
+  $str = array(
+    // Horizontal delimiter
+    '[hr]'   => '<hr class="bb-hr" />',
+    // Force line break
+    '[br]'   => '<br class="bb-br" />',
+    // Force space
+    '[sp]'   => ' ',
+  );
+  $body = str_replace(array_keys($str), array_values($str), $body);
+
+  // We cannot evaluate the variable in callback function because 
+  // there is no way to pass the $format variable
+  if (variable_get("bbcode_encode_mailto_$format", 1)) {
+    // Replacing email addresses with encoded html
+    $body = preg_replace_callback('#\[email(?::\w+)?\]([\w\.\-\+~@]+)\[/email(?::\w+)?\]#si', '_bbcode_encode_mailto', $body);
+    $body = preg_replace_callback('#\[email=(.*?)(?::\w+)?\](.*?)\[/email(?::\w+)?\]#si', '_bbcode_encode_mailto', $body);
+  }
+  else {
+    $body = preg_replace(
+      array('#\[email(?::\w+)?\](.*?)\[/email(?::\w+)?\]#si','#\[email=(.*?)(?::\w+)?\]([\w\s]+)\[/email(?::\w+)?\]#si'),
+      array('<a href="mailto:\\1" class="bb-email">\\1</a>', '<a href="mailto:\\1" class="bb-email">\\2</a>'),
+      $body);
+  }
+
+  // Turns web and e-mail addresses into clickable links
+  if (variable_get("bbcode_make_links_$format", 1)) {
+
+    // pad with a space so we can match things at the start of the 1st line
+    $ret = ' ' . $body;
+    // padding to already filtered links
+    $ret = preg_replace('#(<a.+>)(.+</a>)#i', "$1\x07$2", $ret);
+
+    // matches an "xxx://yyyy" URL at the start of a line, or after a space.
+    // xxxx can only be alpha characters.
+    // yyyy is anything up to the first space, newline, comma, double quote or <
+    $ret = preg_replace('#(?<=^|[\t\r\n >\(\[\]\|])([a-z]+?://[\w\-]+\.([\w\-]+\.)*\w+(:[0-9]+)?(/[^ "\'\(\n\r\t<\)\[\]\|]*)?)((?<![,\.])|(?!\s))#i', '<a href="\1">\1</a>', $ret);
+
+    // matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
+    // Must contain at least 2 dots. xxxx contains either alphanum, or "-"
+    // zzzz is optional.. will contain everything up to the first space, newline,
+    // comma, double quote or <.
+     $ret = preg_replace('#([\t\r\n >\(\[\|])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\'\(\n\r\t<\)\[\]\|]*)?)#i', '\1<a href="http://\2.\3">\2.\3</a>', $ret);
+
+    // matches an email at domain type address at the start of a line, or after a space.
+    // Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
+    if (variable_get("bbcode_encode_mailto_$format", 1))
+      $ret = preg_replace_callback("#([\t\r\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", '_bbcode_encode_mailto', $ret);
+    else 
+      $ret = preg_replace('#([\t\r\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i', '\\1<a href="mailto:\\2@\\3">\\2@\\3</a>', $ret);
+
+    // Remove our padding
+    $ret = str_replace("\x07", '', $ret);
+    $body = substr($ret, 1);
+  }
+
+  if (variable_get("bbcode_filter_nofollow_$format", 0)) {
+    $body = preg_replace('#<a([^>]+)>#i', '<a\\1 rel="nofollow">', $body);
+  }
+
+  return $body;
+}
+
+function _bbcode_generate_heading($level, $text) {
+  $anchor = preg_replace('/([\s]+)/', '_', $text);
+  $anchor = preg_replace('/([\W]+)/', '',  $anchor);
+  return '<h'. $level .'><a name="'. $anchor .'">'. $text .'</a></h'. $level .'>';
+}
+
+function _bbcode_generate_index($body, $tag = 'ol') {
+  $level = 0;
+  $index = '<'. $tag .">\n";
+  $close_tags = 0;
+
+  if (preg_match_all('#\[h([1-6]).*?\](.*?)\[/h([1-6]).*?\]#si', $body, $head_tags, PREG_SET_ORDER)) {
+    foreach ($head_tags as $head_tag) {
+      if ($level == 0) $level = $head_tag[1];
+      $anchor = preg_replace('/([\s]+)/', '_', $head_tag[2]);
+      $anchor = preg_replace('/([\W]+)/', '',  $anchor);
+
+      if ($head_tag[1] > $level) {
+        $index .= '<'. $tag .">\n";
+        $index .= '<li><a href="#'. $anchor .'">'. $head_tag[2] ."</a>\n";
+        $close_tags++;
+        $level = $head_tag[1];
+      } else if ($head_tag[1] < $level) {
+        while ($close_tags > 0) {
+           $index .= '</'. $tag .">\n";
+           $close_tags--;
+        }
+        $index .= '<li><a href="#'. $anchor .'">'. $head_tag[2] ."</a>\n";
+        $level = $head_tag[1];
+      } else {
+        $index .= '<li><a href="#'. $anchor .'">'. $head_tag[2] ."</a>\n";
+        $level = $head_tag[1];
+      }
+    }
+  }
+  while ($close_tags >= 0) {
+    $index .= '</'. $tag .">\n";
+    $close_tags--;
+  }
+  return $index;
+}
+
+function _bbcode_encode_mailto($matches) {
+  if (isset($matches[3])) 
+    $link = 'document.write(\'<a href="mailto:' . $matches[2].'@'.$matches[3] . '">' . $matches[2].'@'.$matches[3] . '</a>\');';
+  else 
+    $link = 'document.write(\'<a href="mailto:' . $matches[1] . '" class="bb-email">' . (isset($matches[2]) ? $matches[2] : $matches[1]) . '</a>\');';
+
+  $js_encode = '';
+  for ($x = 0; $x < strlen($link); $x++) 
+    $js_encode .= '%' . bin2hex($link{$x});
+
+  $link = '<script type="text/javascript">eval(unescape(\''.$js_encode.'\'))</script>';
+  if (isset($matches[3]))
+    $link = $matches[1] . $link;
+
+  return $link;
+}
+
+function _bbcode_notag_tag($text = NULL) {
+  return str_replace( array('[', ']', '@'), array('[', ']', '@'), stripslashes($text));
+}
+
+function _bbcode_php_tag($text = NULL) {
+  return '<pre>'. highlight_string( str_replace('<br />', '', stripslashes($text)), true) .'</pre>';
+}
+
+function _bbcode_round_size_val($size) {
+  if ($size < 6)
+      return 6;
+  elseif ($size > 48)
+      return 48;
+  else
+     return $size;
+}
+
+function _bbcode_replace_nest_tag($arr = NULL) {
+  $text = preg_replace('#(\[[/]*)'. $arr['tag'] .'(.*?\])#si', "$1\x07$2", $arr['text']);
+  // It will be better to use &count and do-while, if php 5 or higher.
+  while (preg_match($arr['pattern'], $text)) {
+    $text = preg_replace($arr['pattern'], $arr['replacement'], $text);
+  }
+  return $text;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-help.inc b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-help.inc
new file mode 100644
index 0000000..5cf4327
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-help.inc
@@ -0,0 +1,364 @@
+<?php
+// $Id: bbcode-help.inc,v 1.8 2007/01/28 21:18:45 naudefj Exp $
+
+function _bbcode_filter_tip() {
+  return t("<a id=\"filter-bbcode\"></a><h2>BBCode Guide</h2>
+
+<p>
+ BBCode allows you to specify formatting rules for your text,
+ even if you are not allowed to use HTML in your posts. BBCode
+ originated from the forum software named PHPBB, and this site
+ has a special implementation of it.
+</p>
+<p>
+ In BBCode terms, you use \"tags\" to add formatting to your text. Every
+ tag is enclosed in <strong>[</strong> and <strong>]</strong> brackets. 
+ If you want to mark some region in your text, you need to use an opening 
+ tag and a closing tag. Closing tags start with <strong>[/</strong>, as
+ you will see in the examples below. If you mistype a tag or forget to 
+ close it, you will not get the desired formatting.
+</p>
+<p>
+When using the Rich-text editor, loaded by default, ENTER will place a
+new paragraph and SHIFT-ENTER will place a new line. There are some
+BBCode tags that will not work with ENTER (new paragraph), e.g., the
+[list] tag. In general, when entering a line break within a BBCode
+tag, please use SHIFT-ENTER.
+</p>
+
+<h3>Simple text formatting</h3>
+
+<p>
+ BBCode allows you to make some parts of your texts stand out from the
+ context by adding <strong>[b]</strong>old, <strong>[i]</strong>talic,
+ <strong>[u]</strong>nderlined and <strong>[s]</strong>trikeout formatting 
+ to them. The <strong>[color]</strong>, <strong>[size]</strong> and 
+ <strong>[font]</strong> tags allow you to change the color, size and font 
+ of portions of the text you enclose with these tags. Both require a 
+ parameter (which colour, how big, what font) that is suffixed to the name 
+ of the tag by an equals sign (example below).  You should not repeat the 
+ parameter in the closing tag!
+</p>
+
+<p>
+ You can specify any recognized color name (red, blue, green, white, etc.)
+ or a hexadecimal color value (#CDCDCD, #FFFFFF, etc.) as the parameter of
+ a <strong>[color]</strong> tag. The <strong>[size]</strong> tag allows you
+ to set the font size between 6 and 48, 6 being the smallest size.
+ Note that using very large text is considered by many to be annoying, and
+ it is seldom a good idea to try to attract more attention to your post in
+ this way. The <strong>[font]</strong> tag can be set to any valid font face,
+ such as Arial, Arial Black, Courier, Courier New, Helvetica, Impact, 
+ Times New Roman, Verdana, etc.
+</p>
+
+<table width=\"98%\">
+ <tr>
+  <th>usage</th><th>display</th>
+ </tr>
+ <tr>
+  <td>I [b]need to do[/b] this by the weekend</td>
+  <td>I <strong>need to do</strong> this by the weekend</td>
+ </tr>
+ <tr>
+  <td>John said that [i]we should[/i] ask her</td>
+  <td>John said that <em>we should</em> ask her</td>
+ </tr>
+ <tr>
+  <td>I [u]would not like to[/u] offend you</td>
+  <td>I <span style=\"text-decoration: underline;\">would not like to</span> offend you</td>
+ </tr>
+ <tr>
+  <td>Let's correct this [s]mispelled[/s] misspelled word</td>
+  <td>Let's correct this <s>mispelled</s> misspelled word</td>
+ </tr>
+ <tr>
+  <td>Jane was at [color=blue]the coast[/color]</td>
+  <td>Jane was at <span style=\"color: blue;\">the coast</span></td>
+ </tr>
+ <tr>
+  <td>Joe was in [color=#FF0000]the forest[/color]</td>
+  <td>Joe was in <span style=\"color: #FF0000;\">the forest</span></td>
+ </tr>
+ <tr>
+  <td>You said: [size=30]HEY![/size]</td>
+  <td>You said: <span style=\"font-size: 30px;\">HEY!</span></td>
+ </tr>
+ <tr>
+  <td>She said: [font=Courier]What?[/font]</td>
+  <td>She said: <span style=\"font-family: Courier;\">What?</span></td>
+ </tr>
+</table>
+
+<h3>Creating links</h3>
+
+<p>
+ You have multiple options to specify links to other destinations in
+ your posts.
+</p>
+
+<p>
+ URLs (Uniform Resource Locators) starting with \"www\" or \"ftp\" (eg.
+ www.example.com) are automatically recognized and replaced with links. 
+ You can also use the <strong>[url]</strong> tag with a parameter to 
+ specify a link with meaningful text to click on. If you use the url 
+ tag without the parameter, the enclosed text is assumed to be a URL,
+ and a link is created to that destination.
+</p>
+<p>
+ Email addresses in posts are also automatically converted to email links. 
+ For compatibility with common BBCode implementations, an 
+ <strong>[email]</strong> tag is provided. 
+</p>
+
+<table width=\"98%\">
+ <tr>
+  <th>usage</th><th>display</th>
+ </tr>
+ <tr>
+  <td>For more examples, visit www.example.com</td>
+  <td>For more examples, visit <a href=\"http://www.example.com\" target=\"_blank\">www.example.com</a></td>
+ </tr>
+ <tr>
+  <td>For more examples, visit http://example.com</td>
+  <td>For more examples, visit <a href=\"http://example.com\" target=\"_blank\">http://example.com</a></td>
+ </tr>
+ <tr>
+  <td>If you have questions ask me at joe at example.com</td>
+  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>
+ </tr>
+ <tr>
+  <td>If you have questions ask me at [email]joe at example.com[/email]</td>
+  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>
+ </tr>
+ <tr>
+  <td>We use [url=http://example.com/]the example site[/url] in these examples</td>
+  <td>We use <a href=\"http://example.com/\" target=\"_blank\">the example site</a> in these examples</td>
+ </tr>
+ <tr>
+  <td>We use [url]http://example.com/[/url] in these examples</td>
+  <td>We use <a href=\"http://example.com/\" target=\"_blank\">http://example.com/</a> in these examples</td>
+ </tr>
+</table>
+
+<h3>Displaying images</h3>
+
+<p>
+ The <strong>[img]</strong> tag allows you to display an image in your
+ post. You need to specify a URL to the image, so it needs to be
+ accessible somewhere on the internet. Beware of adding very large
+ images to your text, or the page will load very slowly!
+</p>
+
+<p>
+ If you enclose a URL in an <strong>[img]</strong> tag, then it will
+ be replaced with code to display the image. For example <code>A good
+ screenshot: [img]http://example.com/screenshot.png[/img]</code>
+ will show you the screenshot (if it exists). 
+</p>
+<p>
+ You can also specify the desired display dimensions of the image by
+ adding a dimension parameter to the <strong>[img]</strong> tag. <code>A
+ good screenshot: [img=640x480]http://example.com/screenshot.png[/img]</code>
+ will display the image in 640x480 (though the full image will be
+ downloaded). Do not use this to show a thumbnail of an image!
+</p>
+
+<p>
+ You are free to link an image to an external destination by enclosing
+ the <strong>[img]</strong> tag with a <strong>[url]</strong> tag: <code>See
+ [url=http://example.com][img]http://example.com/screenshot.png[/img][/url]</code>.
+</p>
+
+<h3>Ordered and unordered lists</h3>
+
+<p>
+ The simplest list type is the unordered list, which means that there is
+ no numbering applied to the elements. You can make such a list by enclosing
+ the list elements in <strong>[list]</strong> opening and closing tags.
+ Specify the start of one element with the <strong>[*]</strong> list element
+ marker, which has no closing tag pair.
+</p>
+
+<p>
+ To create an ordered list, you should add a parameter to the 
+ <strong>[list]</strong> list tag specifying what type of ordered list 
+ you would like to see. The possible parameters are \"i\", \"I\", \"1\", 
+ \"a\", \"A\", \"c\", \"d\" and \"s\" which all correspond to the display 
+ of the first list element.
+</p>
+
+<table width=\"98%\">
+ <tr>
+  <th>usage</th><th>display</th>
+ </tr>
+ <tr>
+  <td><pre>
+I love
+ [list]
+  [*]Oranges
+  [*]Apples
+  [*]Bananas
+ [/list]
+</pre></td>
+  <td>
+   I love 
+   <ul>
+    <li>Oranges</li>
+    <li>Apples</li>
+    <li>Bananas</li>
+   </ul>
+  </td>
+ </tr>
+ <tr>
+  <td><pre>
+I love
+ [list=I]
+  [*]Oranges
+  [*]Apples
+  [*]Bananas
+ [/list]
+</pre></td>
+  <td>
+   I love 
+   <ol style=\"list-style-type: upper-roman;\">
+    <li>Oranges</li>
+    <li>Apples</li>
+    <li>Bananas</li>
+   </ol>
+  </td>
+ </tr>
+ <tr>
+  <td><pre>
+I love
+ [list=1]
+  [*]Oranges
+  [*]Apples
+  [*]Bananas
+ [/list]
+</pre></td>
+  <td>
+   I love 
+   <ol style=\"list-style-type: decimal;\">
+    <li>Oranges</li>
+    <li>Apples</li>
+    <li>Bananas</li>
+   </ol>
+  </td>
+ </tr>
+</table>
+
+<h3>Fixed-width text and block formatting</h3>
+
+<p>
+ You can use the <strong>[code]</strong> tag to add an inline fixed-width
+ formatted part or to add a block of (usually program) code. If there is
+ any newline present between the opening and closing tags, then a block
+ will be displayed.
+</p>
+
+<table width=\"98%\">
+ <tr>
+  <th>usage</th><th>display</th>
+ </tr>
+ <tr>
+  <td>Edit your [code]robots.txt[/code] file</td>
+  <td>Edit your <code>robots.txt</code> file</td>
+ </tr>
+ <tr>
+ </tr>
+ <tr>
+  <td>
+An HTML title example:<br />
+[code]<br />
+<head><br />
+ <title>Page Title</title><br />
+</head><br />
+[/code]
+  </td>
+  <td>
+An HTML title example:<br />
+<div class=\"codeblock\"><code>
+<head><br />
+ <title>Page Title</title><br />
+</head><br />
+</code>
+  </td>
+ </tr>
+ <tr>
+ </tr>
+</table>
+
+<h3>Text and block alignment</h3>
+
+<p>
+ You can also set the alignment of the text by using <strong>[left]</strong>,
+ <strong>[right]</strong> and <strong>[center]</strong> tags. The 
+ <strong>[float]</strong> tag can be used to place floating boxes in the text 
+ (especially handy for images). You can specify the direction of the floating with
+ <strong>[float=left]</strong> and <strong>[float=right]</strong>. The 
+ <strong>[justify]</strong> tag can be used justify text on both sides of 
+ the page.
+</p>
+
+<h3>Other supported tags</h3>
+
+<p>
+ It is possible to quote something that has already been posted, by just 
+ putting <strong>[quote][/quote]</strong> tags around it. To quote a 
+ specific person, use something like [quote=John]. Quote tags can 
+ be nested.
+</p>
+
+<p>
+  The <strong>[sub]</strong> and <strong>[sup]</strong> tags can be used 
+  to add subscript and superscript text. For example,
+  H[sub]2[/sub]O gives H<sub>2</sub>O, while 
+  X[sup]3[/sup] gives X<sup>3</sup>.
+</p>
+
+<p>
+ The <strong>[acronym]</strong> tag allow you to identify text as 
+ an acronym and provide a description when users move their mouse 
+ over the tag. For example,
+ [acronym=Structured Query Language]SQL[/acronym] produces 
+ <acronym title=\"Structured Query Language\">SQL</acronym>.
+</p>
+
+<p>
+ The <strong>[abbr]</strong> tag allow you to identify text as 
+ an abbreviation and provide a description when users move their mouse 
+ over the tag. For example,
+ [abbr=World Wide Web]WWW[/abbr] produces 
+ <abbr title=\"World Wide Web\">WWW</abbr>.
+</p>
+
+<p>
+ The <strong>[notag]</strong> tags prevent text inside the tags from being 
+ parsed. This allows you to give examples of BBcode and not have it 
+ converted to HTML. For example: [notag]These [b]tags[/b] are not 
+ rendered[/notag] will produce \"These [b]tags[/b] are not rendered\".
+</p>
+
+<p>
+ The <strong>[hr]</strong> tag draws a horizontal line across the page. Handy
+ for separating chunks of text.
+</p>
+
+<h3>Using multiple formatting tags</h3>
+
+<p>
+ You can apply more than one formatting specification to a portion of some
+ text. <code>I was at [b][i]the coast[/i][/b]</code> will be
+ rendered as <code>I was at <strong><em>the coast</em></strong></code>.
+</p>
+
+<p>
+ Make sure that you take care of the proper order of the opening and closing
+ tags. You should close the tags in the opposite order in which you opened
+ them. Otherwise you might get very strange rendering results. Also check
+ your post with the preview function before submitting it, in case there are
+ formatting errors due to improper BBCode usage.
+</p>");
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-test.css b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-test.css
new file mode 100644
index 0000000..747629d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-test.css
@@ -0,0 +1,25 @@
+/* Test CSS file to show what CSS attributes can be changed.
+ *
+ * This CSS file is not automatically included in your HTML, you
+ * need to copy the required properties to your site's CSS file.
+ */
+
+.bb-code {
+  width: 100%;
+  border: 1px solid #bfd0d9;
+  border-left: 4px solid #bfd0d9; 666699;
+}
+.bb-code-block {}
+.bb-list {}
+.bb-url {}
+.bb-email {}
+.bb-image {
+  max-width: 100%;
+  width: expression(this.width > 500 ? "500px" : this.width);
+}
+.bb-quote {}
+.bb-table {
+  border: 1px solid #660000;
+}
+.bb-hr {}
+.bb-br {}
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-test.txt b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-test.txt
new file mode 100644
index 0000000..785f20d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode-test.txt
@@ -0,0 +1,298 @@
+This document uses (almost) all BBCode tags supported by Drupal's BBCode module. You can cut and paste this document into a node to test Drupal's BBCode implementation or to perform some benchmarks.
+
+[index]
+[hr]
+
+[h3]Normal text formatting[/h3]
+Test [b]bold[/b] / [strong]strong[/strong] text
+Test [i]italic[/i] / [em]emphasised[/em] text
+Test [u]underlined[/u] text
+Test [s]strikeout[/s] text
+Test subscript text - H[sub]2[/sub]O
+Test superscript text - X[sup]3[/sup]
+
+[h3]Font colors[/h3]
+Test [color=blue]blue[/color] text
+Test [color=red]red[/color] text
+Test [color=green]green[/color] text
+Test [color=#eeff00]#eeff00[/color] text
+
+[h3]Font sizes[/h3]
+Test [size=1]1px[/size] - too small, normalized to 6px
+Test [size=12]12px[/size] text
+Test [size=24]24px[/size] text
+Test [size=100]100px[/size] - too big, normalized to 48px
+[size=10] $_SERVER[PHP_SELF] "quoted" \\e\s\c\aped\" [/size] - watch out for eval
+
+[h3]Font faces[/h3]
+Test [font=arial]Arial typeface[/font] text
+Test [font=Arial Black]Arial typeface[/font] text
+Test [font=Courier]Courier typeface[/font] text
+Test [font=Courier New]Courier New typeface[/font] text
+Test [font=Impact]Impact typeface[/font] text
+Test [font=Helvetica]Helvetica typeface[/font] text
+Test [font=Times New Roman]Times New Roman typeface[/font] text
+Test [font=verdana]Verdana typeface[/font] text
+
+[h3]Text alignment[/h3]
+[left]Left hand side of the screen[/left]
+[right]Right hand side of the screen[/right]
+[center]Centered[/center]
+[justify]This paragraph is justified on both sided on the page. By default most browsers render text with a jagged right edge. If you want all text rendered like in a book with an even right edge - use the justify tag.[/justify]
+
+[h3]Images[/h3]
+
+Normal image:
+[img]http://drupal.org/themes/bluebeach/logos/drupal.org.png[/img]
+
+Align image right:
+[img align=right]http://drupal.org/themes/bluebeach/logos/drupal.org.png[/img]
+
+Image with ALT description:
+[img=The Dripal Logo]http://drupal.org/themes/bluebeach/logos/drupal.org.png[/img]
+
+Re-sized image:
+[img=100x50]http://drupal.org/themes/bluebeach/logos/drupal.org.png[/img]
+
+[h3]URL's[/h3]
+www.test-url.com
+ftp.test-url.com
+http://test-url.com/~user/,part,of,url
+ftp://test-url.com:8080/
+[url]http://test-url.com/[/url]
+[url=http://test-url.com/?q=a+b&z=c]Test URL[/url]
+
+Anchor (bookmark you can link to):
+[anchor=TEST]URL Anchor[/anchor]
+
+Some URL's within a sentence: http://url1.com; www.url2.com, (www.url3.com) and www.url4.com. And some more: ftp://url5.com/, (ftp.url6.com/) and ftp.url7.com.
+
+Google link: [google]BBCode[/google]
+Wikipedia link: [wikipedia]BBCode[/wikipedia]
+Youtube video: [youtube]0Q2aPi9ZEgs[/youtube]
+
+[h3]E-mail addresses[/h3]
+Test at Mail.com
+drupal.user at server1.drupal.org
+[email]joe at example.com[/email]
+[email=joe at smith.co.za]Joe Smith[/email]
+
+[h3]Headings[/h3]
+[h1]Level 1 Heading[/h1]
+[h2]Level 2 Heading[/h2]
+[h3]Level 3 Heading[/h3]
+[h4]Level 4 Heading[/h4]
+
+[h3]Acronyms and abbreviations[/h3]
+Abbreviations:
+[abbr=Application Programming Interface]API[/abbr]
+[abbr=Content Management System]CMS[/abbr]
+[abbr=World Wide Web]WWW[/abbr]
+[abbr=2.54cm]1 inch[/abbr]
+
+Acronyms:
+[acronym=Structured Query Language]SQL[/acronym]
+[acronym=Graphics Interchange Format]GIF[/acronym]
+[acronym=Radio Detecting and Ranging]radar[/acronym]
+
+[h3]Code blocks[/h3]
+
+Normal code block:
+[code]x := y + z;
+y := a - b;[/code]
+
+An [code]inline code[/code] block
+
+Color highlighted PHP code block:
+[php]
+<?php
+  echo "Sample PHP code";
+?>
+[/php]
+
+Test notag:
+[notag]These BBCode tags are [b]not[/b] converted to HTML![/notag]
+[notag][size=20]I'm happy[/size][/notag]
+
+[h3]Quoting[/h3]
+
+A simple quote:
+[quote]This is a quoted message[/quote]
+
+Quote with source:
+[quote=Frank]This is a quoted message[/quote]
+
+Nested quotes:
+[quote=Gabor]This is a quoted message
+   [quote=Alastair]This is a nested quote[/quote]
+[/quote]
+
+[h3]Lists[/h3]
+
+A normal list (circular bullets, same as list=c):
+[list][*]foo[*]bar[*]baz[/list]
+
+List with circular buttets (list=c):
+[list=c]
+[*]x
+[*]y
+[*]z
+[/list]
+
+List with discs (list=d):
+[list=d]
+[*]x
+[*]y
+[*]z
+[/list]
+
+List with squares (list=s):
+[list=s]
+[*]x
+[*]y
+[*]z
+[/list]
+
+Numeric list (list=1):
+[list=1]
+[*]x
+[*]y
+[*]z
+[/list]
+
+Roman lowercase list (list=i):
+[list=i]
+[*]x
+[*]y
+[*]z
+[/list]
+
+Roman uppercase list (list=I):
+[list=I]
+[*]x
+[*]y
+[*]z
+[/list]
+
+Alpha lowercase list (list=a):
+[list=a]
+[*]x
+[*]y
+[*]z
+[/list]
+
+Alpha uppercase list (list=A):
+[list=A]
+[*]x
+[*]y
+[*]z
+[/list]
+
+Simple nested lists:
+[list][*]foo[list][*]bar[/list][*]baz[/list]
+
+Complex nexted list:
+[list=1]
+  [*]list=foo
+    [list=s]
+      [*]list=s
+      [*]list=s
+    [/list]
+    [list=a]
+      [*]list=a
+        [list=I]
+          [*]list=I
+          [*]list=I
+        [/list]
+      [*]list=a
+    [/list]
+  [*]list=bar
+    [list=A]
+      [*]list=A
+      [*]list=A
+      [*]list=A
+    [/list]
+  [*]list=baz
+    [list=d]
+      [*]list=d
+      [*]list=d
+    [/list]
+[/list]
+
+List with php content (watch out for eval):
+[list][*] {$var $_SERVER[PHP_SELF] "quoted" \\e\s\c\aped\" [/list]
+
+[h3]Table tags[/h3]
+
+[table]
+[row]
+  [col]row1col1[/col]
+  [col]row1col2[/col]
+[/row]
+[row]
+  [col]row2col1[/col]
+  [col]row2col2[/col]
+[/row]
+[/table]
+ 
+[table]
+[r color=grey]
+  [h]Header1[/h]
+  [h]Header2[/h]
+[/r]
+[r color=lightyellow]
+  [c]row1col1[/c]
+  [c]row1col2[/c]
+[/r]
+[r color=yellow]
+  [c]row2col1[/col]
+  [c]row2col2[/col]
+[/r]
+[/table]
+
+[h3]Other tags[/h3]
+
+Horizontal delimiter:
+[hr]
+
+Force line break:
+-->[br]<--
+
+Force space:
+-->[sp]<--
+
+[h3]Tag nesting[/h3]
+[size=10]10px [size=20]20px [size=30]30px [/size]20px [/size]10px[/size]
+[size=20][color=blue]BLUE [color=red]RED [/color][color=green]GREEN [/color]BLUE[/color] [/size]
+[size=20][font=Arial]Arial [font=Century]Century [/font][font=Comic sans MS]Comic sans MS [/font]Arial [font=Arial Bold Italic]Arial Bold Italic [/font]Arial [/font][/size]
+
+[h3]Test multi-line tags:[/h3]
+[size=20]
+  [color=red]
+    test
+  [/color]
+[/size]
+
+[h3]Cross site scripting (XSS) vulnerabilities[/h3]
+User-entered text with embedded script tags <script>alert(document.cookie);</script> will be encoded.
+
+Some other exploits:
+[size=expression(alert(document.cookie));]Size tag[/size]
+[font=expression(alert(document.cookie));]Font tag[/font]
+[float=expression(alert(document.cookie));]Float tag[/float]
+[url=javascript:alert(document.cookie)]Click here to see cookie[/url]
+[anchor=javascript:alert(document.cookie)]Anchor[/anchor]
+[img]javascript:document.location='http://www.albinoblacksheep.com/flash/you.html'[/img]
+[img]javascript:al&#x65rt('XSS')[/img]
+http://host.com/?act=SR&f='><script>alert(document.cookie)</script>
+
+[h3]Broken tags[/h3]
+We need to ensure that bad formating will not disrupt your site's HTML.
+
+Broken [b]bold text...
+
+[list]
+[*]A broken list...
+
+[quote]A broken quote...
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode.info b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode.info
new file mode 100644
index 0000000..23c7507
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode.info
@@ -0,0 +1,11 @@
+name = BBCode
+description = Allow the use of BBCode in your posts.
+package = "Input filters"
+core = 6.x
+
+; Information added by drupal.org packaging script on 2008-11-30
+version = "6.x-1.2-boinc-1-dev"
+core = "6.x"
+project = "bbcode"
+datestamp = "1393530079"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode.module b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode.module
new file mode 100644
index 0000000..6f5e76f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/bbcode.module
@@ -0,0 +1,148 @@
+<?php
+// $Id: bbcode.module,v 1.50 2008/02/07 14:05:30 naudefj Exp $
+
+function bbcode_help($section) {
+  if ($section == 'admin/modules#description')
+    return t('Allow the use of BBCode in your posts.');
+}
+
+function bbcode_filter_tips($delta, $format, $long = false) {
+  if ($long) {
+    include_once(drupal_get_path('module', 'bbcode') .'/bbcode-help.inc');
+    return _bbcode_filter_tip();
+  }
+  else {
+    # D5: $output = t('You can use !BBCode tags in the text.', array('!BBCode' =>  l(t('BBCode'), "filter/tips/$format", NULL, NULL, 'filter-bbcode-' . $delta)));
+    $output = t('You can use !BBCode (opens in new window) tags in the text.',
+      array(
+        '!BBCode' =>  l(t('BBCode'), "filter/tips/$format",
+        array(
+          'fragment' => 'filter-bbcode-' . $delta,
+	  'attributes' =>
+	    array(
+	      'target'=>'_blank',
+	      'rel'=>'noopener noreferrer',
+	    ),
+        ))
+      ));
+    if (variable_get("bbcode_make_links_$format", FALSE)) {
+      $output .= ' '. t('URLs will automatically be converted to links.');
+    }
+    return $output;
+  }
+}
+
+function bbcode_filter($op, $delta = 0, $format = -1, $text = '') {
+  switch ($op) {
+    case 'list':
+      return array(0 => t('BBCode'));
+
+    case 'description':
+      return t('Converts BBCode to HTML.');
+
+    case 'process':
+      include_once(drupal_get_path('module', 'bbcode') .'/bbcode-filter.inc');
+      if (variable_get("bbcode_debug_$format", 0)) {
+        $timing_start = explode(' ', microtime());
+        $ret = _bbcode_filter_process($text, $format);
+        $timing_stop = explode(' ', microtime());
+        $elapsed = $timing_stop[1] - $timing_start[1];
+        $elapsed += $timing_stop[0] - $timing_start[0];
+        $ret .= '<hr />'. l('BBCode', "filter/tips/$format") .' parsed on '.date('r').'<br />Execution time: '.$elapsed.' seconds.<hr />';
+        return $ret;
+      }
+      else 
+        return _bbcode_filter_process($text, $format);
+
+    case 'settings':
+      $form = array();
+      $form['bbcode_filter'] = array(
+        '#type' => 'fieldset', 
+        '#title' => t('BBCode filter'), 
+        '#collapsible' => TRUE, 
+        '#collapsed' => FALSE);
+      $form['bbcode_filter']["bbcode_make_links_$format"] = array(
+        '#type' => 'select', 
+        '#title' => t('Convert addresses to links'), 
+        '#default_value' => variable_get("bbcode_make_links_$format", 1), 
+        '#options' => array(t('Disabled'), t('Enabled')), 
+        '#description' => t('Turn web and e-mail addresses into clickable links. This is useful if content authors do not explicitly mark addresses as links with [url] and [email] tags.'));
+      $form['bbcode_filter']["bbcode_filter_nofollow_$format"] = array(
+        '#type' => 'select', 
+        '#title' => t('Spam link deterrent'),
+        '#default_value' => variable_get("bbcode_filter_nofollow_$format", 0),
+        '#options' => array(t('Disabled'), t('Enabled')), 
+        '#description' => t('If enabled, BBCode will add rel="nofollow" to all links, as a measure to reduce the effectiveness of spam links. Note: this will also prevent valid links from being followed by search engines, therefore it is likely most effective when enabled for anonymous users.'));
+      $form['bbcode_filter']["bbcode_encode_mailto_$format"] = array(
+        '#type' => 'select', 
+        '#title' => t('Email address encoding'), 
+        '#default_value' => variable_get("bbcode_encode_mailto_$format", 1), 
+        '#options' => array(t('Disabled'), t('Enabled')), 
+        '#description' => t('Whether to encode email addresses with javascript. With this method you will have clickable mailto links, but it will be a bit harder for spam robots to collect them.'));
+      $form['bbcode_filter']["bbcode_paragraph_breaks_$format"] = array(
+        '#type' => 'select',
+        '#title' => t('Smart paragraph and line breaks'),
+        '#default_value' => variable_get("bbcode_paragraph_breaks_$format", 2),
+        '#options' => array(t('Disabled'), t('Line breaks only'), t('Line and paragraph breaks')),
+        '#description' => t('Add line and paragraph breaks to text, excluding text in preformatted code blocks. If you disable this option, you need to enable Drupal\'s "Line break converter". Don\'t use both together!'));
+      $form['bbcode_filter']["bbcode_debug_$format"] = array(
+        '#type' => 'select', 
+        '#title' => t('Print debugging info'), 
+        '#default_value' => variable_get("bbcode_debug_$format", 0), 
+        '#options' => array(t('Disabled'), t('Enabled')), 
+        '#description' => t('Print BBCode parse date and execution time. This option should be disabled on production sites. You may need to clear the cache after changing this option.'));
+      return $form;
+
+    default:
+      return $text;
+  }
+}
+
+/* hook_quicktags_alter
+ * Alter icons if the quicktags module is enabled
+ */
+function bbcode_quicktags_alter($items) {
+  $path = base_path() . drupal_get_path('module','quicktags') .'/';
+  $items['ed_italic'] = array(
+      'name' => 'italic',
+      'prefix' => '[i]',
+      'suffix' => '[/i]',
+      'accesskey' => 'i',
+      'weight' => 10,
+      'icon' => $path .'ed_italic.png',
+    );
+  $items['ed_bold'] = array(
+      'name' => 'bold',
+      'prefix' => '[b]',
+      'suffix' => '[/b]',
+      'accesskey' => 'b',
+      'weight' => 20,
+      'icon' => $path .'ed_bold.png',
+    );
+  $items['ed_code'] = array(
+      'name' => 'code',
+      'prefix' =>'[code]',
+      'suffix' => '[/code]',
+      'accesskey' => 'c',
+      'weight' => 30,
+      'icon' => $path .'ed_code.png',
+    );
+  $items['ed_block'] = array(
+      'name' => 'quote',
+      'prefix' =>'[quote]',
+      'suffix' => '[/quote]',
+      'accesskey' => 'q',
+      'weight' => 40,
+      'icon' => $path .'ed_block.png',
+    );
+  $items['ed_link'] = array(
+      'name' => 'link',
+      'prefix' =>'[url=http://]',
+      'suffix' => '[/url]',
+      'accesskey' => 'l',
+      'weight' => 50,
+      'icon' => $path .'ed_link.png',
+    );
+  return $items;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/po/de/de.po b/drupal/sites/default/boinc/modules/contrib/bbcode/po/de/de.po
new file mode 100644
index 0000000..25eb61d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/po/de/de.po
@@ -0,0 +1,504 @@
+# $Id: de.po,v 1.1 2008/04/07 20:33:44 naudefj Exp $
+# -----------------------------------------------------------------------------
+# Japanese translation of Drupal (bbcode.module)
+#
+# Copyright (c) 2006-2007  Drupal Japan  ( http://drupal.jp/ )  /
+#                          Drupal Nippon ( http://drupon.org/ ) /
+#                          Takafumi      ( jp.drupal at imagine **reverse order**)
+#
+# Generated from file:
+#  bbcode.module,v 1.44 2007/04/28 12:12:03 naudefj
+#  bbcode-filter.inc,v 1.56 2007/04/29 07:39:06 naudefj
+#  bbcode-help.inc,v 1.8 2007/01/28 21:18:45 naudefj
+#
+# -----------------------------------------------------------------------------
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2007-05-23 23:01+0900\n"
+"Last-Translator: Mario Perabo <mario at einfach-trainieren.de>\n"
+"Language-Team: Drupal Japan / Drupal Nippon\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: \n"
+
+#: bbcode.module:15
+msgid "You can use !BBCode tags in the text."
+msgstr "In diesem Textfeld kann !BBCodeverwendet werden."
+
+#: bbcode.module:17
+msgid "URLs will automatically be converted to links."
+msgstr "URLs werden automatisch in Links umgewandelt."
+
+#: bbcode.module:15;21
+#: bbcode.info:0
+msgid "BBCode"
+msgstr "BBCode"
+
+#: bbcode.module:24
+msgid "Converts BBCode to HTML."
+msgstr "Wandelt BBCode in HTML um."
+
+#: bbcode.module:44
+msgid "BBCode filter"
+msgstr "BBCode Filter"
+
+#: bbcode.module:49
+msgid "Convert addresses to links"
+msgstr "Adressen in Links umwandeln"
+
+# ----------
+#: bbcode.module:51;57;63;69
+msgid "Disabled"
+msgstr "Deaktiviert"
+
+# ----------
+#: bbcode.module:51;57;69
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: bbcode.module:52
+msgid "Turn web and e-mail addresses into clickable links. This is useful if content authors do not explicitly mark addresses as links with [url] and [email] tags."
+msgstr "Web- und Emailadressen in anklickbare Links umwandeln. Dies ist nützlich, wenn Redakteure Adressen nicht explizit durch [URL] und [email] als Links markieren."
+
+#: bbcode.module:55
+msgid "Email address encoding"
+msgstr "Email Adressen verschlüsseln"
+
+#: bbcode.module:58
+msgid "Whether to encode email addresses with javascript. With this method you will have clickable mailto links, but it will be a bit harder for spam robots to collect them."
+msgstr "Email Adressen werden mit Javascript verschlüsselt. Dadurch werden immer noch anklickbare mailto-Links erzeugt, aber es wird für Spambots etwas schwieriger, sie aufzuspüren."
+
+#: bbcode.module:60
+msgid "Spam link deterrent"
+msgstr "Spam Link Abwehr"
+
+#: bbcode.module:63
+msgid "If enabled, BBCode will add rel=\"nofollow\" to all links, as a measure to reduce the effectiveness of spam links. Note: this will also prevent valid links from being followed by search engines, therefore it is likely most effective when enabled for anonymous users."
+msgstr "Wenn diese Option aktiviert wurde, werden alle Links auf \"nofollow\" gesetzt, wodurch die Effektivität von Spamlinks reduziert wird. Hinweis: Dies verhindert auch die Nachverfolgung von legitimen Links durch die Robots von Suchmaschinen. Ein effektiver Weg um beides zu haben, ist, diese Option für Gäste zu aktivieren und Robotern einen Benutzer zuzuweisen."
+
+#: bbcode.module:61
+msgid "Smart paragraph and line breaks"
+msgstr "Intelligente Absätze und Zeilenumbrüche"
+
+#: bbcode.module:63
+msgid "Line breaks only"
+msgstr "Nur Zeilenumbrüche"
+
+#: bbcode.module:63
+msgid "Line and paragraph breaks"
+msgstr "Zeilen- und Absatzumbrüche"
+
+#: bbcode.module:64
+msgid "Add line and paragraph breaks to text, excluding text in preformatted code blocks. If you disable this option, you need to enable Drupal's \"Line break converter\". Don't use both together!"
+msgstr "Zeilen- und Absatzumbrüche hinzufügen, ausgenommen bei vorformatierten Code-Blöcken. Wenn diese Option deaktiviert wird, sollte Drupals \"Zeilenumbruchkonverter\" aktiviert werden. Es dürfen niemals beide aktiviert werden!"
+
+#: bbcode.module:67
+msgid "Print debugging info"
+msgstr "Debug INfos ausgeben"
+
+#: bbcode.module:70
+msgid "Print BBCode parse date and execution time. This option should be disabled on production sites. You may need to clear the cache after changing this option."
+msgstr "BBCode Umwandlungsdatum und Ausführungszeit ausgeben. Diese Option sollte auf Produktionsseiten deaktiviert sein. Der Cache muss evtl. nach der Änderung dieser Option geleert werden."
+
+#: bbcode.module:0
+#: bbcode.info:0
+msgid "bbcode"
+msgstr "bbcode"
+
+#: bbcode-filter.inc:6
+msgid "Quote:"
+msgstr "Zitat:"
+
+#: bbcode-filter.inc:7
+msgid "\\1 wrote:"
+msgstr "\\1 schrieb:"
+
+#: bbcode-help.inc:5
+msgid ""
+"<a id=\"filter-bbcode\"></a><h2>BBCode Guide</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to specify formatting rules for your text,\n"
+" even if you are not allowed to use HTML in your posts. BBCode\n"
+" originated from the forum software named PHPBB, and this site\n"
+" has a special implementation of it.\n"
+"</p>\n"
+"<p>\n"
+" In BBCode terms, you use \"tags\" to add formatting to your text. Every\n"
+" tag is enclosed in <strong>[</strong> and <strong>]</strong> brackets. \n"
+" If you want to mark some region in your text, you need to use an opening \n"
+" tag and a closing tag. Closing tags start with <strong>[/</strong>, as\n"
+" you will see in the examples below. If you mistype a tag or forget to \n"
+" close it, you will not get the desired formatting.\n"
+"</p>\n"
+"\n"
+"<h3>Simple text formatting</h3>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to make some parts of your texts stand out from the\n"
+" context by adding <strong>[b]</strong>old, <strong>[i]</strong>talic,\n"
+" <strong>[u]</strong>nderlined and <strong>[s]</strong>trikeout formatting \n"
+" to them. The <strong>[color]</strong>, <strong>[size]</strong> and \n"
+" <strong>[font]</strong> tags allow you to change the color, size and font \n"
+" of portions of the text you enclose with these tags. Both require a \n"
+" parameter (which colour, how big, what font) that is suffixed to the name \n"
+" of the tag by an equals sign (example below).  You should not repeat the \n"
+" parameter in the closing tag!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You can specify any recognized color name (red, blue, green, white, etc.)\n"
+" or a hexadecimal color value (#CDCDCD, #FFFFFF, etc.) as the parameter of\n"
+" a <strong>[color]</strong> tag. The <strong>[size]</strong> tag allows you\n"
+" to set the font size between 6 and 48, 6 being the smallest size.\n"
+" Note that using very large text is considered by many to be annoying, and\n"
+" it is seldom a good idea to try to attract more attention to your post in\n"
+" this way. The <strong>[font]</strong> tag can be set to any valid font face,\n"
+" such as Arial, Arial Black, Courier, Courier New, Helvetica, Impact, \n"
+" Times New Roman, Verdana, etc.\n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [b]need to do[/b] this by the weekend</td>\n"
+"  <td>I <strong>need to do</strong> this by the weekend</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>John said that [i]we should[/i] ask her</td>\n"
+"  <td>John said that <em>we should</em> ask her</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [u]would not like to[/u] offend you</td>\n"
+"  <td>I <span style=\"text-decoration: underline;\">would not like to</span> offend you</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Let's correct this [s]mispelled[/s] misspelled word</td>\n"
+"  <td>Let's correct this <s>mispelled</s> misspelled word</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Jane was at [color=blue]the coast[/color]</td>\n"
+"  <td>Jane was at <span style=\"color: blue;\">the coast</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Joe was in [color=#FF0000]the forest[/color]</td>\n"
+"  <td>Joe was in <span style=\"color: #FF0000;\">the forest</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>You said: [size=30]HEY![/size]</td>\n"
+"  <td>You said: <span style=\"font-size: 30px;\">HEY!</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>She said: [font=Courier]What?[/font]</td>\n"
+"  <td>She said: <span style=\"font-family: Courier;\">What?</span></td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Creating links</h3>\n"
+"\n"
+"<p>\n"
+" You have multiple options to specify links to other destinations in\n"
+" your posts.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" URLs (Uniform Resource Locators) starting with \"www\" or \"ftp\" (eg.\n"
+" www.example.com) are automatically recognized and replaced with links. \n"
+" You can also use the <strong>[url]</strong> tag with a parameter to \n"
+" specify a link with meaningful text to click on. If you use the url \n"
+" tag without the parameter, the enclosed text is assumed to be a URL,\n"
+" and a link is created to that destination.\n"
+"</p>\n"
+"<p>\n"
+" Email addresses in posts are also automatically converted to email links. \n"
+" For compatibility with common BBCode implementations, an \n"
+" <strong>[email]</strong> tag is provided. \n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit www.example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://www.example.com\" target=\"_blank\">www.example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit http://example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://example.com\" target=\"_blank\">http://example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at joe at example.com</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at [email]joe at example.com[/email]</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url=http://example.com/]the example site[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">the example site</a> in these examples</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url]http://example.com/[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">http://example.com/</a> in these examples</td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Displaying images</h3>\n"
+"\n"
+"<p>\n"
+" The <strong>[img]</strong> tag allows you to display an image in your\n"
+" post. You need to specify a URL to the image, so it needs to be\n"
+" accessible somewhere on the internet. Beware of adding very large\n"
+" images to your text, or the page will load very slowly!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" If you enclose a URL in an <strong>[img]</strong> tag, then it will\n"
+" be replaced with code to display the image. For example <code>A good\n"
+" screenshot: [img]http://example.com/screenshot.png[/img]</code>\n"
+" will show you the screenshot (if it exists). \n"
+"</p>\n"
+"<p>\n"
+" You can also specify the desired display dimensions of the image by\n"
+" adding a dimension parameter to the <strong>[img]</strong> tag. <code>A\n"
+" good screenshot: [img=640x480]http://example.com/screenshot.png[/img]</code>\n"
+" will display the image in 640x480 (though the full image will be\n"
+" downloaded). Do not use this to show a thumbnail of an image!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You are free to link an image to an external destination by enclosing\n"
+" the <strong>[img]</strong> tag with a <strong>[url]</strong> tag: <code>See\n"
+" [url=http://example.com][img]http://example.com/screenshot.png[/img][/url]</code>.\n"
+"</p>\n"
+"\n"
+"<h3>Ordered and unordered lists</h3>\n"
+"\n"
+"<p>\n"
+" The simplest list type is the unordered list, which means that there is\n"
+" no numbering applied to the elements. You can make such a list by enclosing\n"
+" the list elements in <strong>[list]</strong> opening and closing tags.\n"
+" Specify the start of one element with the <strong>[*]</strong> list element\n"
+" marker, which has no closing tag pair.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" To create an ordered list, you should add a parameter to the \n"
+" <strong>[list]</strong> list tag specifying what type of ordered list \n"
+" you would like to see. The possible parameters are \"i\", \"I\", \"1\", \n"
+" \"a\", \"A\", \"c\", \"d\" and \"s\" which all correspond to the display \n"
+" of the first list element.\n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ul>\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ul>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=I]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: upper-roman;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=1]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: decimal;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Fixed-width text and block formatting</h3>\n"
+"\n"
+"<p>\n"
+" You can use the <strong>[code]</strong> tag to add an inline fixed-width\n"
+" formatted part or to add a block of (usually program) code. If there is\n"
+" any newline present between the opening and closing tags, then a block\n"
+" will be displayed.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Similarly, the <strong>[php]</strong> tag can be used to post PHP code. \n"
+" PHP code will automatically be syntax highlighted for easier readability.\n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Edit your [code]robots.txt[/code] file</td>\n"
+"  <td>Edit your <code>robots.txt</code> file</td>\n"
+" </tr>\n"
+" <tr>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"[code]<br />\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"[/code]\n"
+"  </td>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"Some PHP code:<br />\n"
+"[php]<br />\n"
+"<?php<br />\n"
+"function hello()<br />\n"
+"{<br />\n"
+"  echo \"Hello World!\";<br />\n"
+"}<br />\n"
+"?><br />\n"
+"[/php]\n"
+"  </td>\n"
+"  <td valign=top>\n"
+"Some PHP code:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<font color=\"#000000\">\n"
+"<font color=\"#0000BB\"><?php<br /></font><font color=\"#007700\">function </font><font color=\"#0000BB\">hello</font><font color=\"#007700\">()<br />{<br />  echo </font><font color=\"#DD0000\">\"Hello World!\"</font><font color=\"#007700\">;<br />}<br /><font color=\"#0000BB\">?></font>\n"
+"</font>\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Text and block alignment</h3>\n"
+"\n"
+"<p>\n"
+" You can also set the alignment of the text by using <strong>[left]</strong>,\n"
+" <strong>[right]</strong> and <strong>[center]</strong> tags. The \n"
+" <strong>[float]</strong> tag can be used to place floating boxes in the text \n"
+" (especially handy for images). You can specify the direction of the floating with\n"
+" <strong>[float=left]</strong> and <strong>[float=right]</strong>. The \n"
+" <strong>[justify]</strong> tag can be used justify text on both sides of \n"
+" the page.\n"
+"</p>\n"
+"\n"
+"<h3>Other supported tags</h3>\n"
+"\n"
+"<p>\n"
+" It is possible to quote something that has already been posted, by just \n"
+" putting <strong>[quote][/quote]</strong> tags around it. To quote a \n"
+" specific person, use something like [quote=John]. Quote tags can \n"
+" be nested.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"  The <strong>[sub]</strong> and <strong>[sup]</strong> tags can be used \n"
+"  to add subscript and superscript text. For example,\n"
+"  H[sub]2[/sub]O gives H<sub>2</sub>O, while \n"
+"  X[sup]3[/sup] gives X<sup>3</sup>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[acronym]</strong> tag allow you to identify text as \n"
+" an acronym and provide a description when users move their mouse \n"
+" over the tag. For example,\n"
+" [acronym=Structured Query Language]SQL[/acronym] produces \n"
+" <acronym title=\"Structured Query Language\">SQL</acronym>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[abbr]</strong> tag allow you to identify text as \n"
+" an abbreviation and provide a description when users move their mouse \n"
+" over the tag. For example,\n"
+" [abbr=World Wide Web]WWW[/abbr] produces \n"
+" <abbr title=\"World Wide Web\">WWW</abbr>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[notag]</strong> tags prevent text inside the tags from being \n"
+" parsed. This allows you to give examples of BBcode and not have it \n"
+" converted to HTML. For example: [notag]These [b]tags[/b] are not \n"
+" rendered[/notag] will produce \"These [b]tags[/b] are not rendered\".\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[hr]</strong> tag draws a horizontal line across the page. Handy\n"
+" for separating chunks of text.\n"
+"</p>\n"
+"\n"
+"<h3>Using multiple formatting tags</h3>\n"
+"\n"
+"<p>\n"
+" You can apply more than one formatting specification to a portion of some\n"
+" text. <code>I was at [b][i]the coast[/i][/b]</code> will be\n"
+" rendered as <code>I was at <strong><em>the coast</em></strong></code>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Make sure that you take care of the proper order of the opening and closing\n"
+" tags. You should close the tags in the opposite order in which you opened\n"
+" them. Otherwise you might get very strange rendering results. Also check\n"
+" your post with the preview function before submitting it, in case there are\n"
+" formatting errors due to improper BBCode usage.\n"
+"</p>"
+msgstr ""
+
+#: bbcode.module:6
+#: bbcode.info:0
+msgid "Allow the use of BBCode in your posts."
+msgstr "Erlaubt BBCode in Beiträgen."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/po/es/es-general.po b/drupal/sites/default/boinc/modules/contrib/bbcode/po/es/es-general.po
new file mode 100644
index 0000000..186b6de
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/po/es/es-general.po
@@ -0,0 +1,643 @@
+# SPANISH translation of DRUPAL bbcode.module
+# Copyright 2005 Eduin Yezid Carrillo Vega <webmaster at scoutsace.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bbcode.module $Id\n"
+"POT-Creation-Date: 2005-01-08 19:20+0000\n"
+"PO-Revision-Date: 2005-07-22 10:27-0500\n"
+"Last-Translator: Eduin Yezid Carrillo Vega <webmaster at scoutsace.org>\n"
+"Language-Team: Spanish <webmaster at scoutsace.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Basepath: C:/projects/drupal/contributions/modules/bbcode\n"
+"X-Poedit-KeywordsList: t\n"
+"X-Poedit-SearchPath-0: .\n"
+
+#: bbcode-filter.inc:6
+msgid "Quote"
+msgstr "Citar"
+
+#: bbcode-filter.inc:7
+msgid "Quote \\1"
+msgstr "Citar \\1"
+
+#: bbcode-help.inc:5
+msgid ""
+"<h1>BBCode Guide</h1>\n"
+"\n"
+"<h2>Introduction</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to specify formatting rules for your text,\n"
+" even if you are not allowed to use HTML in your posts. BBCode\n"
+" originated from the forum software named PHPBB, and Drupal has a\n"
+" special implementation of it.\n"
+"</p>\n"
+"<p>\n"
+" In BBCode terms, you use \"tags\" to add formatting to your text. Every\n"
+" tag is enclosed in [ and ]. If you want to mark some region in\n"
+" your text, you need to use an opening tag and a closing tag. Closing\n"
+" tags start with [/, as you will see in the examples below. If you\n"
+" mistype a tag or forget to close it, you will not get the desired\n"
+" formatting.\n"
+"</p>\n"
+"\n"
+"<h2>Simple text formatting</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to make some parts of your texts stand out from the\n"
+" context by adding <strong>[b]</strong>old, <strong>[i]</strong>talic\n"
+" and <strong>[u]</strong>nderlined formatting to them. The\n"
+" <strong>[color]</strong> and <strong>[size]</strong> tags allow you to\n"
+" change the color and size of portions of the text you enclose with\n"
+" these tags. Both require a parameter (which colour or how big) that is\n"
+" suffixed to the name of the tag by an equals sign (example below).\n"
+" You should not repeat the parameter in the closing tag!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You can specify any recognized color name (red, blue, green, white, etc.)\n"
+" or a hexadecimal color value (#CDCDCD, #FFFFFF, etc.) as the parameter of\n"
+" a <strong>[color]</strong> tag. The <strong>[size]</strong> tag allows you\n"
+" to set the font size between 10 and 30, 10 being the smallest size.\n"
+" Note that using very large text is considered by many to be annoying, and\n"
+" it is seldom a good idea to try to drive more attention to your post in\n"
+" this way.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [b]need to do[/b] this by the weekend</td>\n"
+"  <td>I <strong>need to do</strong> this by the weekend</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>John said, that [i]we should[/i] ask her</td>\n"
+"  <td>John said, that <em>we should</em> ask her</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [u]would not like to[/u] offend you</td>\n"
+"  <td>I <span style=\"text-decoration: underline;\">would not like to</span> offend you</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Jane was at [color=blue]the coast[/color]</td>\n"
+"  <td>Jane was at <span style=\"color: blue;\">the coast</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Joe was in [color=#00FF00]the forest[/color]</td>\n"
+"  <td>Joe was in <span style=\"color: #00FF00;\">the forest</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>You said: [size=20]HEY![/size]</td>\n"
+"  <td>You said: <span style=\"font-size: 20px;\">HEY!</span></td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Creating Links</h2>\n"
+"\n"
+"<p>\n"
+" You have multiple options to specify links to other destinations in\n"
+" your posts.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Drupal recognizes URLs (Uniform Resource Locators) used in your posts, and\n"
+" automatically replaces them with links. For URLs starting with \"www\" or\n"
+" \"ftp\" (eg. www.example.com) there is no need for a protocol specification,\n"
+" but you need to specify a protocol for other types of addresses\n"
+" (eg. example.com).\n"
+"</p>\n"
+"<p>\n"
+" Drupal also recognizes email addresses in posts automatically, but for compatibility\n"
+" with the common BBCode implementations, also provides the <strong>[email]</strong> tag\n"
+" to mark email addresses. There is no spam protection applied to the email addresses!\n"
+"</p>\n"
+"<p>\n"
+" You can use the <strong>[url]</strong> tag with a parameter to specify a link with\n"
+" meaningful text to click on. If you use the url tag without the parameter,\n"
+" then the enclosed text is assumed to be an URL, and a link is created to that\n"
+" destination.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit www.example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://www.example.com\" target=\"_blank\">www.example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit http://example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://example.com\" target=\"_blank\">http://example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at joe at example.com</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at [email]joe at example.com[/email]</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url=http://example.com/]the example site[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">the example site</a> in these examples</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url]http://example.com/[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">http://example.com/</a> in these examples</td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Displaying images</h2>\n"
+"\n"
+"<p>\n"
+" The <strong>[img]</strong> tag allows you to display an image in your\n"
+" post. You need to specify a URL to the image, so it needs to be\n"
+" accessible somewhere on the internet. Beware of adding very large\n"
+" images to your text, or otherwise the page will load very slowly!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" If you enclose a URL in an <strong>[img]</strong> tag, then it will\n"
+" be replaced with code to display the image. For example <code>A good\n"
+" screenshot: [img]http://example.com/screenshot.png[/img]</code>\n"
+" will show you the screenshot (if it exists). \n"
+"</p>\n"
+"<p>\n"
+" You can also specify the desired display dimensions of the image by\n"
+" adding a dimension parameter to the <strong>[img]</strong> tag. <code>A\n"
+" good screenshot: [img=640x480]http://example.com/screenshot.png[/img]</code>\n"
+" will display the image in 640x480 (though the full image will be\n"
+" downloaded). Do not use this to show a thumbnail of an image!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You are free to link an image to an external destination by enclosing\n"
+" the <strong>[img]</strong> tag with an <strong>[url]</strong> tag: <code>See\n"
+" [url=http://example.com][img]http://example.com/screenshot.png[/img][/url]</code>.\n"
+"</p>\n"
+"\n"
+"<h2>Ordered and unordered lists</h2>\n"
+"\n"
+"<p>\n"
+" The simplest list type is the unordered list, which means that there is\n"
+" no numbering applied to the elements. You can make such a list by enclosing\n"
+" the list elements in <strong>[list]</strong> opening and closing tags.\n"
+" Specify the start of one element with the <strong>[*]</strong> list element\n"
+" marker, which has no closing tag pair.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" To create an ordered list, you should add a parameter to the [list]\n"
+" list tag specifying what type of ordered list you would like to see.\n"
+" The possible parameters are \"i\", \"I\", \"1\", \"a\", and \"A\" which all\n"
+" correspond to the display of the first list element.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ul>\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ul>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=I]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: upper-roman;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=1]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: decimal;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Fixed-width text and block formatting</h2>\n"
+"\n"
+"<p>\n"
+" You can use the <strong>[code]</strong> tag to add an inline fixed-width\n"
+" formatted part or to add a block of (usually program) code. If there is\n"
+" any newline present between the opening and closing tags, then a block\n"
+" will be displayed.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Edit your [code]robots.txt[/code] file</td>\n"
+"  <td>Edit your <code>robots.txt</code> file</td>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"[code]<br />\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"[/code]\n"
+"  </td>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Text and block alignment</h2>\n"
+"\n"
+"<p>\n"
+" You can also set the alignment of the text by using <code>[left]</code>,\n"
+" <code>[right]</code> and <code>[center]</code> tags. The <code>[float]</code>\n"
+" tag can be used to place floating boxes in the text (especially handy for\n"
+" images). You can specify the direction of the floating with\n"
+" <code>[float=left]</code> and <code>[float=right]</code>.\n"
+"</p>\n"
+"\n"
+"<h2>Using multiple formatting tags</h2>\n"
+"\n"
+"<p>\n"
+" You can apply more than one formatting specification to a portion of some\n"
+" text. <code>I was at [b][i]the coast[/i][/b]</code> will be\n"
+" rendered as <code>I was at <strong><em>the coast</em></strong></code> for\n"
+" example.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Make sure that you take care of the proper order of the opening and closing\n"
+" tags. You should close the tags in the opposite order in which you opened\n"
+" them. Otherwise you might get very strange rendering results. Also check\n"
+" your post with the preview function before submiting it to discover possible\n"
+" formatting errors due to improper BBCode usage.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" There are some exceptions where you cannot add more BBCode tags. Examples\n"
+" of these include the contents of the <strong>[img]</strong> tag, which by\n"
+" definition should contain an URL only. BBCode tags are also disallowed\n"
+" inside <strong>[code]</strong> tags, and you cannot apply some formatting\n"
+" to all list items by wrapping the list with that formatting tag.\n"
+"</p>"
+msgstr ""
+"<h1>BBCode Guide</h1>\n"
+"\n"
+"<h2>Introduction</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to specify formatting rules for your text,\n"
+" even if you are not allowed to use HTML in your posts. BBCode\n"
+" originated from the forum software named PHPBB, and Drupal has a\n"
+" special implementation of it.\n"
+"</p>\n"
+"<p>\n"
+" In BBCode terms, you use \"tags\" to add formatting to your text. Every\n"
+" tag is enclosed in [ and ]. If you want to mark some region in\n"
+" your text, you need to use an opening tag and a closing tag. Closing\n"
+" tags start with [/, as you will see in the examples below. If you\n"
+" mistype a tag or forget to close it, you will not get the desired\n"
+" formatting.\n"
+"</p>\n"
+"\n"
+"<h2>Simple text formatting</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to make some parts of your texts stand out from the\n"
+" context by adding <strong>[b]</strong>old, <strong>[i]</strong>talic\n"
+" and <strong>[u]</strong>nderlined formatting to them. The\n"
+" <strong>[color]</strong> and <strong>[size]</strong> tags allow you to\n"
+" change the color and size of portions of the text you enclose with\n"
+" these tags. Both require a parameter (which colour or how big) that is\n"
+" suffixed to the name of the tag by an equals sign (example below).\n"
+" You should not repeat the parameter in the closing tag!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You can specify any recognized color name (red, blue, green, white, etc.)\n"
+" or a hexadecimal color value (#CDCDCD, #FFFFFF, etc.) as the parameter of\n"
+" a <strong>[color]</strong> tag. The <strong>[size]</strong> tag allows you\n"
+" to set the font size between 10 and 30, 10 being the smallest size.\n"
+" Note that using very large text is considered by many to be annoying, and\n"
+" it is seldom a good idea to try to drive more attention to your post in\n"
+" this way.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [b]need to do[/b] this by the weekend</td>\n"
+"  <td>I <strong>need to do</strong> this by the weekend</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>John said, that [i]we should[/i] ask her</td>\n"
+"  <td>John said, that <em>we should</em> ask her</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [u]would not like to[/u] offend you</td>\n"
+"  <td>I <span style=\"text-decoration: underline;\">would not like to</span> offend you</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Jane was at [color=blue]the coast[/color]</td>\n"
+"  <td>Jane was at <span style=\"color: blue;\">the coast</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Joe was in [color=#00FF00]the forest[/color]</td>\n"
+"  <td>Joe was in <span style=\"color: #00FF00;\">the forest</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>You said: [size=20]HEY![/size]</td>\n"
+"  <td>You said: <span style=\"font-size: 20px;\">HEY!</span></td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Creating Links</h2>\n"
+"\n"
+"<p>\n"
+" You have multiple options to specify links to other destinations in\n"
+" your posts.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Drupal recognizes URLs (Uniform Resource Locators) used in your posts, and\n"
+" automatically replaces them with links. For URLs starting with \"www\" or\n"
+" \"ftp\" (eg. www.example.com) there is no need for a protocol specification,\n"
+" but you need to specify a protocol for other types of addresses\n"
+" (eg. example.com).\n"
+"</p>\n"
+"<p>\n"
+" Drupal also recognizes email addresses in posts automatically, but for compatibility\n"
+" with the common BBCode implementations, also provides the <strong>[email]</strong> tag\n"
+" to mark email addresses. There is no spam protection applied to the email addresses!\n"
+"</p>\n"
+"<p>\n"
+" You can use the <strong>[url]</strong> tag with a parameter to specify a link with\n"
+" meaningful text to click on. If you use the url tag without the parameter,\n"
+" then the enclosed text is assumed to be an URL, and a link is created to that\n"
+" destination.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit www.example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://www.example.com\" target=\"_blank\">www.example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit http://example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://example.com\" target=\"_blank\">http://example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at joe at example.com</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at [email]joe at example.com[/email]</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url=http://example.com/]the example site[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">the example site</a> in these examples</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url]http://example.com/[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">http://example.com/</a> in these examples</td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Displaying images</h2>\n"
+"\n"
+"<p>\n"
+" The <strong>[img]</strong> tag allows you to display an image in your\n"
+" post. You need to specify a URL to the image, so it needs to be\n"
+" accessible somewhere on the internet. Beware of adding very large\n"
+" images to your text, or otherwise the page will load very slowly!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" If you enclose a URL in an <strong>[img]</strong> tag, then it will\n"
+" be replaced with code to display the image. For example <code>A good\n"
+" screenshot: [img]http://example.com/screenshot.png[/img]</code>\n"
+" will show you the screenshot (if it exists). \n"
+"</p>\n"
+"<p>\n"
+" You can also specify the desired display dimensions of the image by\n"
+" adding a dimension parameter to the <strong>[img]</strong> tag. <code>A\n"
+" good screenshot: [img=640x480]http://example.com/screenshot.png[/img]</code>\n"
+" will display the image in 640x480 (though the full image will be\n"
+" downloaded). Do not use this to show a thumbnail of an image!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You are free to link an image to an external destination by enclosing\n"
+" the <strong>[img]</strong> tag with an <strong>[url]</strong> tag: <code>See\n"
+" [url=http://example.com][img]http://example.com/screenshot.png[/img][/url]</code>.\n"
+"</p>\n"
+"\n"
+"<h2>Ordered and unordered lists</h2>\n"
+"\n"
+"<p>\n"
+" The simplest list type is the unordered list, which means that there is\n"
+" no numbering applied to the elements. You can make such a list by enclosing\n"
+" the list elements in <strong>[list]</strong> opening and closing tags.\n"
+" Specify the start of one element with the <strong>[*]</strong> list element\n"
+" marker, which has no closing tag pair.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" To create an ordered list, you should add a parameter to the [list]\n"
+" list tag specifying what type of ordered list you would like to see.\n"
+" The possible parameters are \"i\", \"I\", \"1\", \"a\", and \"A\" which all\n"
+" correspond to the display of the first list element.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ul>\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ul>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=I]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: upper-roman;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=1]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: decimal;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Fixed-width text and block formatting</h2>\n"
+"\n"
+"<p>\n"
+" You can use the <strong>[code]</strong> tag to add an inline fixed-width\n"
+" formatted part or to add a block of (usually program) code. If there is\n"
+" any newline present between the opening and closing tags, then a block\n"
+" will be displayed.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Edit your [code]robots.txt[/code] file</td>\n"
+"  <td>Edit your <code>robots.txt</code> file</td>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"[code]<br />\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"[/code]\n"
+"  </td>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Text and block alignment</h2>\n"
+"\n"
+"<p>\n"
+" You can also set the alignment of the text by using <code>[left]</code>,\n"
+" <code>[right]</code> and <code>[center]</code> tags. The <code>[float]</code>\n"
+" tag can be used to place floating boxes in the text (especially handy for\n"
+" images). You can specify the direction of the floating with\n"
+" <code>[float=left]</code> and <code>[float=right]</code>.\n"
+"</p>\n"
+"\n"
+"<h2>Using multiple formatting tags</h2>\n"
+"\n"
+"<p>\n"
+" You can apply more than one formatting specification to a portion of some\n"
+" text. <code>I was at [b][i]the coast[/i][/b]</code> will be\n"
+" rendered as <code>I was at <strong><em>the coast</em></strong></code> for\n"
+" example.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Make sure that you take care of the proper order of the opening and closing\n"
+" tags. You should close the tags in the opposite order in which you opened\n"
+" them. Otherwise you might get very strange rendering results. Also check\n"
+" your post with the preview function before submiting it to discover possible\n"
+" formatting errors due to improper BBCode usage.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" There are some exceptions where you cannot add more BBCode tags. Examples\n"
+" of these include the contents of the <strong>[img]</strong> tag, which by\n"
+" definition should contain an URL only. BBCode tags are also disallowed\n"
+" inside <strong>[code]</strong> tags, and you cannot apply some formatting\n"
+" to all list items by wrapping the list with that formatting tag.\n"
+"</p>"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/po/es/es.po b/drupal/sites/default/boinc/modules/contrib/bbcode/po/es/es.po
new file mode 100644
index 0000000..74688ca
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/po/es/es.po
@@ -0,0 +1,59 @@
+# SPANISH translation of DRUPAL bbcode.module
+# Copyright 2005 Eduin Yezid Carrillo Vega <webmaster at scoutsace.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bbcode.module $Id\n"
+"POT-Creation-Date: 2005-01-08 19:20+0000\n"
+"PO-Revision-Date: 2005-07-22 10:25-0500\n"
+"Last-Translator: Eduin Yezid Carrillo Vega <webmaster at scoutsace.org>\n"
+"Language-Team: Spanish <webmaster at scoutsace.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Basepath: C:/projects/drupal/contributions/modules/bbcode\n"
+"X-Poedit-KeywordsList: t\n"
+"X-Poedit-SearchPath-0: .\n"
+
+#: bbcode.module:6
+msgid "Allow the use of bbcode in your posts."
+msgstr "Permite el uso de código bb en sus envíos."
+
+#: bbcode.module:16
+msgid "You can use <a href=\"%bbcode_help\">BBCode tags</a> in the text, URLs will be automatically converted to links"
+msgstr "Puede usar <a href=\"%bbcode_help\">etiquetas de código BB</a> en el texto, las URLs serán convertitas automáticamente en enlaces"
+
+#: bbcode.module:23
+msgid "BBCode"
+msgstr "BBCode"
+
+#: bbcode.module:26
+msgid "Converts BBCode to html."
+msgstr "Convierte código BB en html."
+
+#: bbcode.module:33
+msgid "BBCode filter"
+msgstr "Fïltro de Código BB"
+
+#: bbcode.module:34
+msgid "Email address encoding"
+msgstr "Codificación de Dirección de Correo"
+
+#: bbcode.module:36
+msgid "Disabled"
+msgstr "Deshabilitado"
+
+#: bbcode.module:36
+msgid "Enabled"
+msgstr "Habilitado"
+
+#: bbcode.module:37
+msgid "Whether to encode email addresses with javascript. With this method you will have clickable mailto links, but it will be a bit harder for spam robots to collect them."
+msgstr "Le permite codificar direcciones de correo electrónico con JavaScript. De esta forma, podrá tener enlaces a direcciones de correo, pero a los robots que colectan spam les será mas difícil encontrar las direcciones."
+
+#: bbcode.module:0
+msgid "bbcode"
+msgstr "bbcode"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/po/hu/bbcode-module.po b/drupal/sites/default/boinc/modules/contrib/bbcode/po/hu/bbcode-module.po
new file mode 100644
index 0000000..c739e49
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/po/hu/bbcode-module.po
@@ -0,0 +1,66 @@
+# Hungarian translation of Drupal (bbcode.module)
+# Copyright Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>
+# Generated from file: bbcode.module,v 1.31 2004/09/12 15:48:55 goba
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 4.5.0\n"
+"POT-Creation-Date: 2005-01-08 19:20+0000\n"
+"PO-Revision-Date: 2005-01-08 20:32+0100\n"
+"Last-Translator: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: bbcode.module:6
+msgid "Allow the use of bbcode in your posts."
+msgstr "BBcode formázás használatát teszi lehetővé."
+
+#: bbcode.module:16
+msgid ""
+"You can use <a href=\"%bbcode_help\">BBCode tags</a> in the text, URLs will "
+"be automatically converted to links"
+msgstr ""
+"<a href=\"%bbcode_help\">BBCode jelölők</a> használata engedélyezett, az URL-"
+"ek automatikusan linkké alakulnak"
+
+#: bbcode.module:23
+msgid "BBCode"
+msgstr "BBCode"
+
+#: bbcode.module:26
+msgid "Converts BBCode to html."
+msgstr "A BBCode formázást HTML kóddá alakítja."
+
+#: bbcode.module:33
+msgid "BBCode filter"
+msgstr "BBCode szűrő"
+
+#: bbcode.module:34
+msgid "Email address encoding"
+msgstr "Emailcím kódolás"
+
+#: bbcode.module:36
+msgid "Disabled"
+msgstr "Tiltott"
+
+#: bbcode.module:36
+msgid "Enabled"
+msgstr "Engedélyezett"
+
+#: bbcode.module:37
+msgid ""
+"Whether to encode email addresses with javascript. With this method you will "
+"have clickable mailto links, but it will be a bit harder for spam robots to "
+"collect them."
+msgstr ""
+"Szükséges-e az email címek elrejtése JavaScript segítségével. Ezzel a módszerrel "
+"az email linkek kattinthatóak maradnak, de a kéretlen levelek küldéséhez címeket "
+"gyűtő robotok számára jelentősen nehezebb lesz összegyűjteni az email címet, mintha "
+"csak egyszerűen szerepelne a kimeneten az emailcím."
+
+#: bbcode.module:0
+msgid "bbcode"
+msgstr "bbcode"
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/po/hu/general.po b/drupal/sites/default/boinc/modules/contrib/bbcode/po/hu/general.po
new file mode 100644
index 0000000..046ba6a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/po/hu/general.po
@@ -0,0 +1,688 @@
+# Hungarian translation of Drupal
+# Copyright Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>
+# Generated from files:
+#  bbcode-filter.inc,v 1.6 2004/08/31 20:49:14 LacKac
+#  bbcode-help.inc,v 1.3 2004/09/12 15:48:55 goba
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 4.5.0\n"
+"POT-Creation-Date: 2005-01-08 19:20+0000\n"
+"PO-Revision-Date: 2005-01-08 20:32+0100\n"
+"Last-Translator: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: bbcode-filter.inc:6
+msgid "Quote"
+msgstr "Idézet"
+
+#: bbcode-filter.inc:7
+msgid "Quote \\1"
+msgstr "Idézet (\\1)"
+
+#: bbcode-help.inc:5
+msgid ""
+"<h1>BBCode Guide</h1>\n"
+"\n"
+"<h2>Introduction</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to specify formatting rules for your text,\n"
+" even if you are not allowed to use HTML in your posts. BBCode\n"
+" originated from the forum software named PHPBB, and Drupal has a\n"
+" special implementation of it.\n"
+"</p>\n"
+"<p>\n"
+" In BBCode terms, you use \"tags\" to add formatting to your text. Every\n"
+" tag is enclosed in [ and ]. If you want to mark some region in\n"
+" your text, you need to use an opening tag and a closing tag. Closing\n"
+" tags start with [/, as you will see in the examples below. If you\n"
+" mistype a tag or forget to close it, you will not get the desired\n"
+" formatting.\n"
+"</p>\n"
+"\n"
+"<h2>Simple text formatting</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to make some parts of your texts stand out from the\n"
+" context by adding <strong>[b]</strong>old, <strong>[i]</strong>talic\n"
+" and <strong>[u]</strong>nderlined formatting to them. The\n"
+" <strong>[color]</strong> and <strong>[size]</strong> tags allow you to\n"
+" change the color and size of portions of the text you enclose with\n"
+" these tags. Both require a parameter (which colour or how big) that is\n"
+" suffixed to the name of the tag by an equals sign (example below).\n"
+" You should not repeat the parameter in the closing tag!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You can specify any recognized color name (red, blue, green, white, etc.)\n"
+" or a hexadecimal color value (#CDCDCD, #FFFFFF, etc.) as the parameter of\n"
+" a <strong>[color]</strong> tag. The <strong>[size]</strong> tag allows you\n"
+" to set the font size between 10 and 30, 10 being the smallest size.\n"
+" Note that using very large text is considered by many to be annoying, and\n"
+" it is seldom a good idea to try to drive more attention to your post in\n"
+" this way.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [b]need to do[/b] this by the weekend</td>\n"
+"  <td>I <strong>need to do</strong> this by the weekend</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>John said, that [i]we should[/i] ask her</td>\n"
+"  <td>John said, that <em>we should</em> ask her</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [u]would not like to[/u] offend you</td>\n"
+"  <td>I <span style=\"text-decoration: underline;\">would not like to</span> "
+"offend you</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Jane was at [color=blue]the coast[/color]</td>\n"
+"  <td>Jane was at <span style=\"color: blue;\">the coast</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Joe was in [color=#00FF00]the forest[/color]</td>\n"
+"  <td>Joe was in <span style=\"color: #00FF00;\">the forest</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>You said: [size=20]HEY![/size]</td>\n"
+"  <td>You said: <span style=\"font-size: 20px;\">HEY!</span></td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Creating Links</h2>\n"
+"\n"
+"<p>\n"
+" You have multiple options to specify links to other destinations in\n"
+" your posts.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Drupal recognizes URLs (Uniform Resource Locators) used in your posts, and\n"
+" automatically replaces them with links. For URLs starting with \"www\" or\n"
+" \"ftp\" (eg. www.example.com) there is no need for a protocol "
+"specification,\n"
+" but you need to specify a protocol for other types of addresses\n"
+" (eg. example.com).\n"
+"</p>\n"
+"<p>\n"
+" Drupal also recognizes email addresses in posts automatically, but for "
+"compatibility\n"
+" with the common BBCode implementations, also provides the <strong>[email]</"
+"strong> tag\n"
+" to mark email addresses. There is no spam protection applied to the email "
+"addresses!\n"
+"</p>\n"
+"<p>\n"
+" You can use the <strong>[url]</strong> tag with a parameter to specify a "
+"link with\n"
+" meaningful text to click on. If you use the url tag without the parameter,\n"
+" then the enclosed text is assumed to be an URL, and a link is created to "
+"that\n"
+" destination.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit www.example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://www.example.com\" target="
+"\"_blank\">www.example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit http://example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://example.com\" target=\"_blank"
+"\">http://example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at joe at example.com</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com"
+"\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at [email]joe at example.com[/email]</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com"
+"\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url=http://example.com/]the example site[/url] in these "
+"examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">the example "
+"site</a> in these examples</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url]http://example.com/[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">http://"
+"example.com/</a> in these examples</td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Displaying images</h2>\n"
+"\n"
+"<p>\n"
+" The <strong>[img]</strong> tag allows you to display an image in your\n"
+" post. You need to specify a URL to the image, so it needs to be\n"
+" accessible somewhere on the internet. Beware of adding very large\n"
+" images to your text, or otherwise the page will load very slowly!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" If you enclose a URL in an <strong>[img]</strong> tag, then it will\n"
+" be replaced with code to display the image. For example <code>A good\n"
+" screenshot: [img]http://example.com/screenshot.png[/img]</code>\n"
+" will show you the screenshot (if it exists). \n"
+"</p>\n"
+"<p>\n"
+" You can also specify the desired display dimensions of the image by\n"
+" adding a dimension parameter to the <strong>[img]</strong> tag. <code>A\n"
+" good screenshot: [img=640x480]http://example.com/screenshot.png[/img]</"
+"code>\n"
+" will display the image in 640x480 (though the full image will be\n"
+" downloaded). Do not use this to show a thumbnail of an image!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You are free to link an image to an external destination by enclosing\n"
+" the <strong>[img]</strong> tag with an <strong>[url]</strong> tag: "
+"<code>See\n"
+" [url=http://example.com][img]http://example.com/screenshot.png[/img][/url]</"
+"code>.\n"
+"</p>\n"
+"\n"
+"<h2>Ordered and unordered lists</h2>\n"
+"\n"
+"<p>\n"
+" The simplest list type is the unordered list, which means that there is\n"
+" no numbering applied to the elements. You can make such a list by "
+"enclosing\n"
+" the list elements in <strong>[list]</strong> opening and closing tags.\n"
+" Specify the start of one element with the <strong>[*]</strong> list "
+"element\n"
+" marker, which has no closing tag pair.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" To create an ordered list, you should add a parameter to the [list]\n"
+" list tag specifying what type of ordered list you would like to see.\n"
+" The possible parameters are \"i\", \"I\", \"1\", \"a\", and \"A\" which "
+"all\n"
+" correspond to the display of the first list element.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ul>\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ul>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=I]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: upper-roman;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=1]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: decimal;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Fixed-width text and block formatting</h2>\n"
+"\n"
+"<p>\n"
+" You can use the <strong>[code]</strong> tag to add an inline fixed-width\n"
+" formatted part or to add a block of (usually program) code. If there is\n"
+" any newline present between the opening and closing tags, then a block\n"
+" will be displayed.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Edit your [code]robots.txt[/code] file</td>\n"
+"  <td>Edit your <code>robots.txt</code> file</td>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"[code]<br />\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"[/code]\n"
+"  </td>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Text and block alignment</h2>\n"
+"\n"
+"<p>\n"
+" You can also set the alignment of the text by using <code>[left]</code>,\n"
+" <code>[right]</code> and <code>[center]</code> tags. The <code>[float]</"
+"code>\n"
+" tag can be used to place floating boxes in the text (especially handy for\n"
+" images). You can specify the direction of the floating with\n"
+" <code>[float=left]</code> and <code>[float=right]</code>.\n"
+"</p>\n"
+"\n"
+"<h2>Using multiple formatting tags</h2>\n"
+"\n"
+"<p>\n"
+" You can apply more than one formatting specification to a portion of some\n"
+" text. <code>I was at [b][i]the coast[/i][/b]</code> will be\n"
+" rendered as <code>I was at <strong><em>the coast</em></strong></code> for\n"
+" example.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Make sure that you take care of the proper order of the opening and "
+"closing\n"
+" tags. You should close the tags in the opposite order in which you opened\n"
+" them. Otherwise you might get very strange rendering results. Also check\n"
+" your post with the preview function before submiting it to discover "
+"possible\n"
+" formatting errors due to improper BBCode usage.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" There are some exceptions where you cannot add more BBCode tags. Examples\n"
+" of these include the contents of the <strong>[img]</strong> tag, which by\n"
+" definition should contain an URL only. BBCode tags are also disallowed\n"
+" inside <strong>[code]</strong> tags, and you cannot apply some formatting\n"
+" to all list items by wrapping the list with that formatting tag.\n"
+"</p>"
+msgstr ""
+"<h1>BBCode Útmutató</h1>\n"
+"\n"
+"<h2>Bevezetés</h2>\n"
+"\n"
+"<p>\n"
+" A BBCode segítségével formázni tudod a szövegedet, abban az\n"
+" esetben is, ha nincs engedélyezve számodra HTML formátum használata\n"
+" a beküldéseknél. A BBCode a PHPBB fórumszoftverből származik, a\n"
+" Drupal ennek egy egyedi megvalósítását használja.\n"
+"</p>\n"
+"<p>\n"
+" BBCode terminust használva, \"elemek\" segítségével formázhatod a\n"
+" szöveget. Minden elemet [ és ] közé kell tenni. Amennyiben a szöveg\n"
+" egy részét szeretnéd megjelölni, akkor kezdő és záró elemeket kell\n"
+" használni. A záró elem [/-el kezdődik, ahogy azt mindjárt látni is\n"
+" fogjuk. Figyelj arra, hogy ha elírsz egy elemet vagy elfelejted lezárni,\n"
+" akkor nem a várt megjelenést fogod kapni!\n"
+"</p>\n"
+"\n"
+"<h2>Egyszerű szövegformázás</h2>\n"
+"\n"
+"<p>\n"
+" A BBCode lehetővé teszi számodra, hogy kiemelj pár részt a szövegedből,\n"
+" erre a célra a következő elemeket használhatod: <strong>[b]</strong> "
+"(félkövér),\n"
+" <strong>[i]</strong> (döntött) és <strong>[u]</strong> (aláhúzott). A\n"
+" <strong>[color]</strong> (szín) és a <strong>[size]</strong> (méret) "
+"elemek\n"
+" segítségével a színét és a méretét szabályozhatod a szövegednek. Mindkét\n"
+" esetben egy paraméter megadása is szükséges (milyen színű és milyen\n"
+" méretű legyen), a szögleteszárójelen belül a color és a size szavak\n"
+" után egy egyenlőségjelet követően tudod beírni ezeket (példát lásd\n"
+" lenn). Ezt a paramétert a lezáró elembe nem szabad beleírni!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Bármelyik, a HTML-ben is használható szín a rendelkezésedre áll (red, "
+"blue,\n"
+" green, white, stb.), vagy hexadecimális számokkal (#CDCDCD, #FFFFFF, stb.)\n"
+" is megadhatod a [color] elem esetén a paramétert. A [size] elemmel 10\n"
+" és 30 pixel között adhatod meg a méretet, a 10 a legkisebb. Megjegyzendő,\n"
+" hogy nagy méretű szöveg használata sokak szerint tolakodó, így ritkán jó\n"
+" ötlet ezt az utat választani a figyelemfelhívásra. \n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>használat</th><th>megjelenés</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Ezt [b]kell[/b] tennem a hétvégén.</td>\n"
+"  <td>Ezt <strong>kell</strong> tennem a hétvégén.</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Jani szerint [i]meg kellene[/i] kérdeznünk a csajt.</td>\n"
+"  <td>Jani szerint <em>meg kellene</em> kérdeznünk a csajt.</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>[u]Nem szeretnélek[/u] megbántani.</td>\n"
+"  <td><span style=\"text-decoration: underline;\">Nem szeretnélek</span> "
+"megbántani.</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Marit a [color=blue]parton[/color] láttam.</td>\n"
+"  <td>Marit a <span style=\"color: blue;\">parton</span> láttam.</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Karcsi az [color=#00FF00]erdőben[/color] lakik.</td>\n"
+"  <td>Karcsi az <span style=\"color: #00FF00;\">erdőben</span> lakik.</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Azt mondtad, hogy [size=20]HALIHÓ![/size]</td>\n"
+"  <td>Azt mondtad, hogy <span style=\"font-size: 20px;\">HALIHÓ!</span></"
+"td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Linkek létrehozása</h2>\n"
+"\n"
+"<p>\n"
+" A szövegeidben több módon is létrehozhatsz linkeket más oldalakra.\n"
+" Tekintsük át ezeket!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" A Drupal magától felismeri az URL-eket (Uniform Resource Locators - vagyis\n"
+" az egységesített erőforrás leírókat) a szövegeidben, és automatikusan\n"
+" linkekre cseréli őket. A \"www\"-vel és \"ftp\"-vel kezdődő címek esetén\n"
+" (pl. www.pelda.hu) elhagyhatod a protokollt (pl. http://), bármely más\n"
+" esetben viszont szükséges odaírni (pl. pelda.hu -> http://pelda.hu).\n"
+"</p>\n"
+"<p>\n"
+" A Drupal az e-mail címeket is felismeri automatikusan, de az általános\n"
+" BBCode megvalósításokkal való kompatibilitási okokból lehetőséget ad az\n"
+" [email] elem segítségével történő megjelölésre is. Nincs spam védelem\n"
+" az e-mail címekre!\n"
+"</p>\n"
+"<p>\n"
+" Használhatod az <strong>[url]</strong> elemet is egy paraméterrel,\n"
+" segítségével egy linket adhatsz meg szöveggel. Ha nem adsz meg\n"
+" paramétert, az url elemek által bezárt szöveg lesz URL-ként értelmezve,\n"
+" és egy arra a címre mutató link jön létre.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>használat</th><th>megjelenés</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>További példákat a www.pelda.hu címen találsz!</td>\n"
+"  <td>További példákat a <a href=\"http://www.pelda.hu\" target=\"_blank"
+"\">www.pelda.hu</a> címen találsz!</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>További példákért látogass el a http://pelda.hu címre!</td>\n"
+"  <td>További példákért látogass el a <a href=\"http://pelda.hu\" target="
+"\"_blank\">http://pelda.hu</a> címre!</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Bármilyen kérdésed van, küldj egy levelet a jani at pelda.hu címre!</td>\n"
+"  <td>Bármilyen kérdésed van, küldj egy levelet a <a href=\"mailto:"
+"jani at pelda.hu\">jani at pelda.hu</a> címre!</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Ha kérdéseid vannak, kérdezz a [email]jani at pelda.hu[/email] címen!</"
+"td>\n"
+"  <td>Ha kérdéseid vannak, kérdezz a <a href=\"mailto:jani at pelda.hu"
+"\">jani at pelda.hu</a> címen!</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Mi a [url=http://pelda.hu/]példa oldalt[/url] használjuk ezekben a "
+"példákban.</td>\n"
+"  <td>Mi a <a href=\"http://pelda.hu/\" target=\"_blank\">példa oldalt</a> "
+"használjuk ezekben a példákban.</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Mi a [url]http://pelda.hu/[/url]-t használjuk ezekben a példákban.</"
+"td>\n"
+"  <td>Mi a <a href=\"http://pelda.hu/\" target=\"_blank\">http://pelda.hu/</"
+"a>-t használjuk ezekben a példákban.</td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Képek megjelenítése</h2>\n"
+"\n"
+"<p>\n"
+" Az <strong>[img]</strong> elem teszi lehetővé számodra képek használatát.\n"
+" Meg kell adnod a kép elérhetőségét, azaz valahol már fenn\n"
+" kell lennie az interneten. Vigyázz arra, hogy ne hivatkozz a szövegeidben\n"
+" nagyon nagy képekre, különben nagyon lassan fog megjelenni az oldal!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Ha egy URL-t az <strong>[img]</strong> elemek közé helyezel, akkor\n"
+" egy a képet megjelenítő kódra fog lecserélődni. Például az <code>Egy jó\n"
+" képernyőkép: [img]http://pelda.hu/kepernyokep.png[/img]</code> meg fogja\n"
+" neked jeleníteni a képernyőképet (már ha létezik).\n"
+"</p>\n"
+"<p>\n"
+" Megadhatsz egy kívánt méretet is a képhez, hozzáírva a dimenzióit\n"
+" paraméterként az <strong>[img]</strong> elemhez. Az <code>Egy jó\n"
+" képernyőkép: [img=640x480]http://pelda.hu/kepernyokep.png[/img]</code>\n"
+" 640x480 méretben jeleníti meg a képet (de az egész kép letöltődik!).\n"
+" Ne használd ezt a módszert előnézeti képek készítésére!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Szabadon linkelheted a képedet egy külső címre, az <strong>[img]</strong>\n"
+" elem köré kell csak elhelyezned egy <strong>[url]</strong> elemet:\n"
+" <code>Lásd: [url=http://pelda.hu][img]http://pelda.hu/kepernyokep.png[/img]"
+"[/url]</code>.\n"
+"</p>\n"
+"\n"
+"<h2>Számozott lista és felsorolások</h2>\n"
+"\n"
+"<p>\n"
+" A legegyszerűbb listatípus a felsorolás, vagyis ahol nincsenek megszámozva\n"
+" az elemei a listának. Egy ilyen listát a listaelemeket a <strong>[list]</"
+"strong>\n"
+" nyitó és záró elemek közé írva készíthetsz. Egy elem kezdetét a <strong>[*]"
+"</strong>\n"
+" jellel kell jelölnöd, melynek nincsen záró párja.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Egy sorszámozott lista létrehozására a [list] elemhez egy paramétert\n"
+" kell rendelned, mely megmondja, hogy milyen jelekkel szeretnéd\n"
+" jelölni a listaelemeket. A lehetséges értékek \"i\", \"I\", \"1\", \"a\" és "
+"\"A\",\n"
+" melyek mind az első elem megjelenítését határozzák meg.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>használat</th><th>megjelenés</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"Szeretem a\n"
+" [list]\n"
+"  [*]narancsot\n"
+"  [*]almát\n"
+"  [*]banánt\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   Szeretem a\n"
+"   <ul>\n"
+"    <li>narancsot</li>\n"
+"    <li>almát</li>\n"
+"    <li>banánt</li>\n"
+"   </ul>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"Szeretem a\n"
+" [list=I]\n"
+"  [*]narancsot\n"
+"  [*]almát\n"
+"  [*]banánt\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   Szeretem a \n"
+"   <ol style=\"list-style-type: upper-roman;\">\n"
+"    <li>narancsot</li>\n"
+"    <li>almát</li>\n"
+"    <li>banánt</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"Szeretem a\n"
+" [list=1]\n"
+"  [*]narancsot\n"
+"  [*]almát\n"
+"  [*]banánt\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   Szeretem a\n"
+"   <ol style=\"list-style-type: decimal;\">\n"
+"    <li>narancsot</li>\n"
+"    <li>almát</li>\n"
+"    <li>banánt</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Fix szélességű szöveg és blokk formázás</h2>\n"
+"\n"
+"<p>\n"
+" A <strong>[code]</strong> elemet bekezdésen belüli fix szélességű\n"
+" betűkészlettel való megjelenéshez lehet használni, vagy egy blokk\n"
+" megjelenítéséhez (általában programkód). Ha legalább egy, bármilyen\n"
+" soremelés karakter szerepel a két elem között, akkor egy blokkban,\n"
+" ellenkező esetben pedig bekezdésen belül jelenik meg.\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>használat</th><th>megjelenés</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Szerkeszd a [code]robots.txt[/code] állományt!</td>\n"
+"  <td>Szerkeszd a <code>robots.txt</code> állományt!</td>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"Egy HTML title példa:<br />\n"
+"[code]<br />\n"
+"<head><br />\n"
+" <title>Az oldal címe</title><br />\n"
+"</head><br />\n"
+"[/code]\n"
+"  </td>\n"
+"  <td>\n"
+"Egy HTML title példa:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<head><br />\n"
+" <title>Az oldal címe</title><br />\n"
+"</head><br />\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h2>Szöveg és blokk igazítás</h2>\n"
+"\n"
+"<p>\n"
+" Lehetőség van a szöveg igazításának beállítására a <code>[left]</code>,\n"
+" <code>[right]</code> és <code>[center]</code> jelölőkkel. A <code>[float]</"
+"code>\n"
+" használható lebegő dobozok szövegbe helyezésére (különösen hasznos képek\n"
+" esetén). A lebegés iránya meghatározható a megadott paraméterrel, úgymint\n"
+" <code>[float=left]</code> vagy <code>[float=right]</code>.\n"
+"</p>\n"
+"\n"
+"<h2>Több formázó elem használata</h2>\n"
+"\n"
+"<p>\n"
+" Több formázó elemet is rendelhetsz egy adott szövegrészhez, például az "
+"<code>\n"
+" Én a [b][i]parton[i][/b] voltam</code>, <code>Én a <strong><em>parton</em></"
+"strong>\n"
+" voltam</code>-ként jelenik meg.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Ellenőrizd, hogy figyeltél-e a helyes sorrendjére a nyitó és a záró "
+"elemeknek!\n"
+" Az elemeket fordított sorrendben kell becsuknod, mint ahogy megnyitottad,\n"
+" ellenkező esetben elég furcsa megjelenéssel is találkozhatsz. Mielőtt "
+"elküldöd,\n"
+" ellenőrizd a szövegeidet mindig az előnézet funkcióval, így felfedezheted\n"
+" a BBCode-ok rossz használatából eredő formázási hibákat.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Van pár kivétel, ahol nem használhatsz több BBCode elemet egyszerre.\n"
+" Egy ilyen példa az <strong>[img]</strong> elem, mely definíció szerint\n"
+" csak URL-t tartalmazhat. A BBCode elemek szintén tiltottak a \n"
+" <strong>[code]</strong> elemeken belül, illetve nem tudsz formázási\n"
+" szabályt beállítani globálisan az összes elemére egy listának sem\n"
+" (körbevéve formázó elemekkel).\n"
+"</p>"
diff --git a/drupal/sites/default/boinc/modules/contrib/bbcode/po/ja/ja.po b/drupal/sites/default/boinc/modules/contrib/bbcode/po/ja/ja.po
new file mode 100644
index 0000000..7d86b84
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/bbcode/po/ja/ja.po
@@ -0,0 +1,711 @@
+# $Id: ja.po,v 1.1 2008/04/07 20:46:02 naudefj Exp $
+# -----------------------------------------------------------------------------
+# Japanese translation of Drupal (bbcode.module)
+#
+# Copyright (c) 2006-2007  Drupal Japan  ( http://drupal.jp/ )  /
+#                          Drupal Nippon ( http://drupon.org/ ) /
+#                          Takafumi      ( jp.drupal at imagine **reverse order**)
+#
+# Generated from file:
+#  bbcode.module,v 1.44 2007/04/28 12:12:03 naudefj
+#  bbcode-filter.inc,v 1.56 2007/04/29 07:39:06 naudefj
+#  bbcode-help.inc,v 1.8 2007/01/28 21:18:45 naudefj
+#
+# -----------------------------------------------------------------------------
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2007-05-23 23:01+0900\n"
+"Last-Translator: Takafumi <jp.drupal at imagine **reverse order**>\n"
+"Language-Team: Drupal Japan / Drupal Nippon\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: bbcode.module:15
+msgid "You can use !BBCode tags in the text."
+msgstr "テキストに !BBCode タグを使用できます。"
+
+#: bbcode.module:17
+msgid "URLs will automatically be converted to links."
+msgstr "URLは自動的にリンクに変換されます。"
+
+#: bbcode.module:15;21 bbcode.info:0
+msgid "BBCode"
+msgstr "BBCode"
+
+#: bbcode.module:24
+msgid "Converts BBCode to HTML."
+msgstr "BBCode を HTML に変換します。"
+
+#: bbcode.module:44
+msgid "BBCode filter"
+msgstr "BBCode フィルタ"
+
+#: bbcode.module:49
+msgid "Convert addresses to links"
+msgstr "アドレスをリンクに変換"
+
+# ----------
+#: bbcode.module:51;57;63;69
+msgid "Disabled"
+msgstr "無効"
+
+# ----------
+#: bbcode.module:51;57;69
+msgid "Enabled"
+msgstr "有効"
+
+#: bbcode.module:52
+msgid "Turn web and e-mail addresses into clickable links. This is useful if content authors do not explicitly mark addresses as links with [url] and [email] tags."
+msgstr "URL とメールアドレスを、自動的にリンクに変換するかどうかを指定してください。 有効にすると、明示的に [url] や [email] タグを入力しなくても、URL やメールアドレスと見なされる文字列がリンクに変換されます。"
+
+#: bbcode.module:55
+msgid "Email address encoding"
+msgstr "メールアドレスのエンコード"
+
+#: bbcode.module:58
+msgid "Whether to encode email addresses with javascript. With this method you will have clickable mailto links, but it will be a bit harder for spam robots to collect them."
+msgstr "javascript による、メールアドレスのエンコードを行うかどうかを指定してください。 有効にすると、スパムロボットによるメールアドレスの収集は多少困難になります。 ただし、閲覧する側で javascript が無効になっていると、そのメールアドレスが表示されないことに留意してください。"
+
+#: bbcode.module:60
+msgid "Spam link deterrent"
+msgstr "検索エンジンに対するリンク効果の抑止"
+
+#: bbcode.module:63
+msgid "If enabled, BBCode will add rel=\"nofollow\" to all links, as a measure to reduce the effectiveness of spam links. Note: this will also prevent valid links from being followed by search engines, therefore it is likely most effective when enabled for anonymous users."
+msgstr "リンクに <b>rel=\"nofollow\"</b> を追加するかどうかを指定してください。 チェックを入れると、以下のようにリンクのためのアンカータグに rel=\"nofollow\" が追加されます。<pre><a href=\"http://drupal.jp/\" rel=\"nofollow\">≡ Drupal Japan ≡</a></pre>これは、Google をはじめとする多くの検索サイトでの、検索結果の上位にリストアップされる条件の1つを抑止する働きがあり、主にスパムリンクの効果を減少させるために利用されます。 これは同時に、登録ユーザが投稿したコンテンツ内の正当なリンクに対しても働くことになりますので、匿名ユーザのみが使用できる入力書式に適用することが、おそらく最も効果的です。"
+
+#: bbcode.module:61
+msgid "Smart paragraph and line breaks"
+msgstr "改行と段落の自動変換"
+
+#: bbcode.module:63
+msgid "Line breaks only"
+msgstr "改行のみ"
+
+#: bbcode.module:63
+msgid "Line and paragraph breaks"
+msgstr "改行と段落"
+
+#: bbcode.module:64
+msgid "Add line and paragraph breaks to text, excluding text in preformatted code blocks. If you disable this option, you need to enable Drupal's \"Line break converter\". Don't use both together!"
+msgstr "改行や段落を、自動的に HTML に変換するかどうかを指定してください。 有効にすると、code ブロック以外での改行や段落に、自動的に HTML タグが挿入されます。 なお、この機能は、Drupal に標準で装備されている「改行コンバータ」とは同時に使用できませんので、どちらか一方のみを使用してください。"
+
+#: bbcode.module:67
+msgid "Print debugging info"
+msgstr "デバグ情報の表示"
+
+#: bbcode.module:70
+msgid "Print BBCode parse date and execution time. This option should be disabled on production sites. You may need to clear the cache after changing this option."
+msgstr "BBCode の実行に関する情報を、表示するかどうかを指定してください。 有効にすると、投稿の最下部に、BBCode の解析にかかった時間と日付が表示されます。 この機能は、稼働中のサイトでは無効にするようにしてください。 なお、このオプションを変更した場合、キャッシュのクリアが必要になることがありますので留意してください。"
+
+#: bbcode.module:0 bbcode.info:0
+msgid "bbcode"
+msgstr "bbcode"
+
+#: bbcode-filter.inc:6
+msgid "Quote:"
+msgstr "引用:"
+
+#: bbcode-filter.inc:7
+msgid "\\1 wrote:"
+msgstr "\\1 さんの書き込み:"
+
+#: bbcode-help.inc:5
+msgid ""
+"<a id=\"filter-bbcode\"></a><h2>BBCode Guide</h2>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to specify formatting rules for your text,\n"
+" even if you are not allowed to use HTML in your posts. BBCode\n"
+" originated from the forum software named PHPBB, and this site\n"
+" has a special implementation of it.\n"
+"</p>\n"
+"<p>\n"
+" In BBCode terms, you use \"tags\" to add formatting to your text. Every\n"
+" tag is enclosed in <strong>[</strong> and <strong>]</strong> brackets. \n"
+" If you want to mark some region in your text, you need to use an opening \n"
+" tag and a closing tag. Closing tags start with <strong>[/</strong>, as\n"
+" you will see in the examples below. If you mistype a tag or forget to \n"
+" close it, you will not get the desired formatting.\n"
+"</p>\n"
+"\n"
+"<h3>Simple text formatting</h3>\n"
+"\n"
+"<p>\n"
+" BBCode allows you to make some parts of your texts stand out from the\n"
+" context by adding <strong>[b]</strong>old, <strong>[i]</strong>talic,\n"
+" <strong>[u]</strong>nderlined and <strong>[s]</strong>trikeout formatting \n"
+" to them. The <strong>[color]</strong>, <strong>[size]</strong> and \n"
+" <strong>[font]</strong> tags allow you to change the color, size and font \n"
+" of portions of the text you enclose with these tags. Both require a \n"
+" parameter (which colour, how big, what font) that is suffixed to the name \n"
+" of the tag by an equals sign (example below).  You should not repeat the \n"
+" parameter in the closing tag!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You can specify any recognized color name (red, blue, green, white, etc.)\n"
+" or a hexadecimal color value (#CDCDCD, #FFFFFF, etc.) as the parameter of\n"
+" a <strong>[color]</strong> tag. The <strong>[size]</strong> tag allows you\n"
+" to set the font size between 6 and 48, 6 being the smallest size.\n"
+" Note that using very large text is considered by many to be annoying, and\n"
+" it is seldom a good idea to try to attract more attention to your post in\n"
+" this way. The <strong>[font]</strong> tag can be set to any valid font face,\n"
+" such as Arial, Arial Black, Courier, Courier New, Helvetica, Impact, \n"
+" Times New Roman, Verdana, etc.\n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [b]need to do[/b] this by the weekend</td>\n"
+"  <td>I <strong>need to do</strong> this by the weekend</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>John said that [i]we should[/i] ask her</td>\n"
+"  <td>John said that <em>we should</em> ask her</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>I [u]would not like to[/u] offend you</td>\n"
+"  <td>I <span style=\"text-decoration: underline;\">would not like to</span> offend you</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Let's correct this [s]mispelled[/s] misspelled word</td>\n"
+"  <td>Let's correct this <s>mispelled</s> misspelled word</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Jane was at [color=blue]the coast[/color]</td>\n"
+"  <td>Jane was at <span style=\"color: blue;\">the coast</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Joe was in [color=#FF0000]the forest[/color]</td>\n"
+"  <td>Joe was in <span style=\"color: #FF0000;\">the forest</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>You said: [size=30]HEY![/size]</td>\n"
+"  <td>You said: <span style=\"font-size: 30px;\">HEY!</span></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>She said: [font=Courier]What?[/font]</td>\n"
+"  <td>She said: <span style=\"font-family: Courier;\">What?</span></td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Creating links</h3>\n"
+"\n"
+"<p>\n"
+" You have multiple options to specify links to other destinations in\n"
+" your posts.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" URLs (Uniform Resource Locators) starting with \"www\" or \"ftp\" (eg.\n"
+" www.example.com) are automatically recognized and replaced with links. \n"
+" You can also use the <strong>[url]</strong> tag with a parameter to \n"
+" specify a link with meaningful text to click on. If you use the url \n"
+" tag without the parameter, the enclosed text is assumed to be a URL,\n"
+" and a link is created to that destination.\n"
+"</p>\n"
+"<p>\n"
+" Email addresses in posts are also automatically converted to email links. \n"
+" For compatibility with common BBCode implementations, an \n"
+" <strong>[email]</strong> tag is provided. \n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit www.example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://www.example.com\" target=\"_blank\">www.example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>For more examples, visit http://example.com</td>\n"
+"  <td>For more examples, visit <a href=\"http://example.com\" target=\"_blank\">http://example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at joe at example.com</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>If you have questions ask me at [email]joe at example.com[/email]</td>\n"
+"  <td>If you have questions ask me at <a href=\"mailto:joe at example.com\">joe at example.com</a></td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url=http://example.com/]the example site[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">the example site</a> in these examples</td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>We use [url]http://example.com/[/url] in these examples</td>\n"
+"  <td>We use <a href=\"http://example.com/\" target=\"_blank\">http://example.com/</a> in these examples</td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Displaying images</h3>\n"
+"\n"
+"<p>\n"
+" The <strong>[img]</strong> tag allows you to display an image in your\n"
+" post. You need to specify a URL to the image, so it needs to be\n"
+" accessible somewhere on the internet. Beware of adding very large\n"
+" images to your text, or the page will load very slowly!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" If you enclose a URL in an <strong>[img]</strong> tag, then it will\n"
+" be replaced with code to display the image. For example <code>A good\n"
+" screenshot: [img]http://example.com/screenshot.png[/img]</code>\n"
+" will show you the screenshot (if it exists). \n"
+"</p>\n"
+"<p>\n"
+" You can also specify the desired display dimensions of the image by\n"
+" adding a dimension parameter to the <strong>[img]</strong> tag. <code>A\n"
+" good screenshot: [img=640x480]http://example.com/screenshot.png[/img]</code>\n"
+" will display the image in 640x480 (though the full image will be\n"
+" downloaded). Do not use this to show a thumbnail of an image!\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" You are free to link an image to an external destination by enclosing\n"
+" the <strong>[img]</strong> tag with a <strong>[url]</strong> tag: <code>See\n"
+" [url=http://example.com][img]http://example.com/screenshot.png[/img][/url]</code>.\n"
+"</p>\n"
+"\n"
+"<h3>Ordered and unordered lists</h3>\n"
+"\n"
+"<p>\n"
+" The simplest list type is the unordered list, which means that there is\n"
+" no numbering applied to the elements. You can make such a list by enclosing\n"
+" the list elements in <strong>[list]</strong> opening and closing tags.\n"
+" Specify the start of one element with the <strong>[*]</strong> list element\n"
+" marker, which has no closing tag pair.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" To create an ordered list, you should add a parameter to the \n"
+" <strong>[list]</strong> list tag specifying what type of ordered list \n"
+" you would like to see. The possible parameters are \"i\", \"I\", \"1\", \n"
+" \"a\", \"A\", \"c\", \"d\" and \"s\" which all correspond to the display \n"
+" of the first list element.\n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ul>\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ul>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=I]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: upper-roman;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td><pre>\n"
+"I love\n"
+" [list=1]\n"
+"  [*]Oranges\n"
+"  [*]Apples\n"
+"  [*]Bananas\n"
+" [/list]\n"
+"</pre></td>\n"
+"  <td>\n"
+"   I love \n"
+"   <ol style=\"list-style-type: decimal;\">\n"
+"    <li>Oranges</li>\n"
+"    <li>Apples</li>\n"
+"    <li>Bananas</li>\n"
+"   </ol>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Fixed-width text and block formatting</h3>\n"
+"\n"
+"<p>\n"
+" You can use the <strong>[code]</strong> tag to add an inline fixed-width\n"
+" formatted part or to add a block of (usually program) code. If there is\n"
+" any newline present between the opening and closing tags, then a block\n"
+" will be displayed.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Similarly, the <strong>[php]</strong> tag can be used to post PHP code. \n"
+" PHP code will automatically be syntax highlighted for easier readability.\n"
+"</p>\n"
+"\n"
+"<table width=\"98%\">\n"
+" <tr>\n"
+"  <th>usage</th><th>display</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>Edit your [code]robots.txt[/code] file</td>\n"
+"  <td>Edit your <code>robots.txt</code> file</td>\n"
+" </tr>\n"
+" <tr>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"[code]<br />\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"[/code]\n"
+"  </td>\n"
+"  <td>\n"
+"An HTML title example:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<head><br />\n"
+" <title>Page Title</title><br />\n"
+"</head><br />\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+" <tr>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>\n"
+"Some PHP code:<br />\n"
+"[php]<br />\n"
+"<?php<br />\n"
+"function hello()<br />\n"
+"{<br />\n"
+"  echo \"Hello World!\";<br />\n"
+"}<br />\n"
+"?><br />\n"
+"[/php]\n"
+"  </td>\n"
+"  <td valign=top>\n"
+"Some PHP code:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<font color=\"#000000\">\n"
+"<font color=\"#0000BB\"><?php<br /></font><font color=\"#007700\">function </font><font color=\"#0000BB\">hello</font><font color=\"#007700\">()<br />{<br />  echo </font><font color=\"#DD0000\">\"Hello World!\"</font><font color=\"#007700\">;<br />}<br /><font color=\"#0000BB\">?></font>\n"
+"</font>\n"
+"</code>\n"
+"  </td>\n"
+" </tr>\n"
+"</table>\n"
+"\n"
+"<h3>Text and block alignment</h3>\n"
+"\n"
+"<p>\n"
+" You can also set the alignment of the text by using <strong>[left]</strong>,\n"
+" <strong>[right]</strong> and <strong>[center]</strong> tags. The \n"
+" <strong>[float]</strong> tag can be used to place floating boxes in the text \n"
+" (especially handy for images). You can specify the direction of the floating with\n"
+" <strong>[float=left]</strong> and <strong>[float=right]</strong>. The \n"
+" <strong>[justify]</strong> tag can be used justify text on both sides of \n"
+" the page.\n"
+"</p>\n"
+"\n"
+"<h3>Other supported tags</h3>\n"
+"\n"
+"<p>\n"
+" It is possible to quote something that has already been posted, by just \n"
+" putting <strong>[quote][/quote]</strong> tags around it. To quote a \n"
+" specific person, use something like [quote=John]. Quote tags can \n"
+" be nested.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"  The <strong>[sub]</strong> and <strong>[sup]</strong> tags can be used \n"
+"  to add subscript and superscript text. For example,\n"
+"  H[sub]2[/sub]O gives H<sub>2</sub>O, while \n"
+"  X[sup]3[/sup] gives X<sup>3</sup>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[acronym]</strong> tag allow you to identify text as \n"
+" an acronym and provide a description when users move their mouse \n"
+" over the tag. For example,\n"
+" [acronym=Structured Query Language]SQL[/acronym] produces \n"
+" <acronym title=\"Structured Query Language\">SQL</acronym>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[abbr]</strong> tag allow you to identify text as \n"
+" an abbreviation and provide a description when users move their mouse \n"
+" over the tag. For example,\n"
+" [abbr=World Wide Web]WWW[/abbr] produces \n"
+" <abbr title=\"World Wide Web\">WWW</abbr>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[notag]</strong> tags prevent text inside the tags from being \n"
+" parsed. This allows you to give examples of BBcode and not have it \n"
+" converted to HTML. For example: [notag]These [b]tags[/b] are not \n"
+" rendered[/notag] will produce \"These [b]tags[/b] are not rendered\".\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" The <strong>[hr]</strong> tag draws a horizontal line across the page. Handy\n"
+" for separating chunks of text.\n"
+"</p>\n"
+"\n"
+"<h3>Using multiple formatting tags</h3>\n"
+"\n"
+"<p>\n"
+" You can apply more than one formatting specification to a portion of some\n"
+" text. <code>I was at [b][i]the coast[/i][/b]</code> will be\n"
+" rendered as <code>I was at <strong><em>the coast</em></strong></code>.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" Make sure that you take care of the proper order of the opening and closing\n"
+" tags. You should close the tags in the opposite order in which you opened\n"
+" them. Otherwise you might get very strange rendering results. Also check\n"
+" your post with the preview function before submitting it, in case there are\n"
+" formatting errors due to improper BBCode usage.\n"
+"</p>"
+msgstr ""
+"<a id=\"filter-bbcode\"></a><h2>BBCode ガイド</h2>\n"
+"\n"
+"<p>\n"
+"BBCode は、HTML タグの使用が禁止されている場合でも、投稿するテキストに HTML と同じような書式指定をできるようにします。\n"
+" BBCode とは、元々は PHPBB というフォーラム用ソフトウェアの ために作られた入力書式で、このサイトでは、それを基に独自の実装を行ったものを使用しています。\n"
+"</p>\n"
+"<p>\n"
+"BBCode でテキストに書式を指定するためには、<strong>[</strong> と <strong>]</strong> で囲まれた「タグ」を使用します。 ある部分のテキストに書式を指定したい場合、下記のサンプルにあるように、その範囲を「開始タグ」と、<strong>[/</strong> で始まる「終了タグ」で指定する必要があります。 もし、タグをタイプミスしたり、終了タグで閉じることを忘れた場合は、正しい書式指定が行われませんので注意してください。\n"
+"</p>\n"
+"\n"
+"<h3>シンプルなテキストの装飾</h3>\n"
+"\n"
+"<p>\n"
+"BBCodeでは、<strong>[b]</strong>(太字)、<strong>[i]</strong>(斜体)、<strong>[u]</strong>(下線)、<strong>[s]</strong>(打ち消し線)のタグを指定することで、テキスト中の一部分を目立たせることができます。 <strong>[color]</strong> と <strong>[size]</strong> 、<strong>[font]</strong> は、タグで囲まれたテキストに色をつけたり、サイズやフォントを変えることができます。 どちらのタグも開始タグの中で、<strong>=</strong>(イコール)に続けて色やサイズを指定する引数が必要です(下記参照)。 なお、終了タグに引数は必要ありませんので、繰り返し指定しないように注意してください。\n"
+"</p>\n"
+"\n"
+"<p><strong>[color]</strong> タグの引数には、既定のカラーネーム(red, blue, green, white など)か、16進数でのカラー値(#CDCDCD, #FFFFFF など)を指定します。 <strong>[size]</strong> タグの引数には、6(最小)~ 48(最大)の範囲でフォントサイズを指定します。<br />\n"
+"非常に大きな文字ばかりを使ったテキストは、多くの場合、迷惑だと見なされます。 そのため、この方法で自分の投稿を目立たせようとするのは、あまり得策ではないことに留意してください。\n"
+"<strong>[font]</strong> タグを使うと、フォントフェイスを指定することができます。 引数には、「Arial」「Arial Black」「Courier」「Courier New」「Helvetica」「Impact」「Times New Roman」「Verdana」などのような、有効なフォントを指定することができます。</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"  <th>記述例</th><th>表示例</th>\n"
+" </tr>\n"
+" <tr>\n"
+"  <td>週末までにこれを[b]やらなければ[/b]ならない。</td><td>週末までにこれを<strong>やらなければ</strong>ならない。</td></tr><tr><td>ジョンは「[i]想像してごらん……[/i]」と歌った。</td><td>ジョンは「<em>想像してごらん</em>……」と歌った。</td></tr><tr><td>私はあなたを[u]怒らせたくない[/u]。</td><td>私はあなたを<span style=\"text-decoration: underline;\">怒らせたくない</span>。</td></tr><tr>\n"
+"<td>Drupal は [s]Perl[/s] PHP で書かれています。</td>\n"
+"<td>Drupal は <s>Perl</s> PHP で書かれています。</td>\n"
+"</tr>\n"
+"<tr><td>チャコは[color=blue]海岸[/color]にいました。</td><td>チャコは<span style=\"color: blue;\">海岸</span>にいました。</td></tr><tr><td>[color=#00FF00]森[/color]の中でクマさんに出会った。</td><td><span style=\"color: #00FF00;\">森</span>の中でクマさんに出会った。</td></tr><tr><td>世界の中心で[size=20]愛[/size]を叫んだ!</td><td>世界の中心で<span style=\"font-size: 20px;\">愛</span>を叫んだ!</td></tr>\n"
+"<tr>\n"
+"<td>壊れかけの[font=Courier]radio[/font]</td>\n"
+"<td>壊れかけの<span style=\"font-family: Courier;\">radio</span></td>\n"
+"</tr>\n"
+"</table>\n"
+"\n"
+"<h3>リンクの作成</h3>\n"
+"\n"
+"<p>\n"
+"投稿の中で他の場所へのリンクを張るためには、いくつかの方法があります。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"<b>http://example.com/foo/bar</b> や <b>ftp://example.com</b> など、ホスト名とパス名にスキームを付加した典型的な URL(Uniform Resource Locators) は、自動的に認識されてリンクへ変換されます(※1)。\n"
+" また、<b>www</b> か <b>ftp</b> (例: www.example.com)で始まるホスト名は、スキームが無くても URL と認識されリンクへ変換されます(ただし、<b>ftp.</b> で始まっても、スキームは <b>ftp://~</b> にはならずに <b>http://~</b> となります)(※2)。 任意の文字列をクリック可能なリンクにしたい場合は、リンク先の引数を付けた <strong>[url]</strong> タグで文字列を囲います。 もし、引数を付けないでこのタグを使った場合は、囲まれた文字列が URL と見なされ、その文字列をリンク先としたリンクが作成されます。</p>\n"
+"<p>\n"
+"投稿の中でのメールアドレスは、自動的にメールリンク(例:mailto:foo at example.com)に変換されます(※3)。 ただし、一般的な BBCode の実装と互換性を持たせるために <strong>[email]</strong> タグも提供されています。<br />\n"
+"(※1~3)は、このサイトでの設定に依存しますので、場合によっては無効となります。</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"<th>記述例</th><th>表示例</th></tr><tr><td>詳しくはこちら www.example.com</td><td>詳しくはこちら <a href=\"http://www.example.com\" target=\"_blank\">www.example.com</a></td></tr><tr><td>詳しくはこちら http://example.com</td><td>詳しくはこちら <a href=\"http://example.com\" target=\"_blank\">http://example.com</a></td></tr><tr><td>お問い合わせはこちら joe at example.com</td><td>お問い合わせはこちら <a href=\"mailto:joe at example.com\">joe at example.com</a></td></tr><tr><td>お問い合わせはこちら [email]joe at example.com[/email]</td><td>お問い合わせはこちら <a href=\"mai [...]
+"</table>\n"
+"\n"
+"<h3>画像の表示</h3>\n"
+"\n"
+"<p>\n"
+"インターネット上でアクセス可能な画像の URL に <strong>[img]</strong> タグを使うと、投稿の中でその画像を表示することができます。 ただし、あまり大きな画像を表示させようとすると、ページの読み込みに時間がかかるようになりますので、その点には十分に注意してください。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"画像を表示するには <strong>[img]</strong> タグで画像の URL を囲みます。 すると、ページを表示する際に、画像を表示するための HTML コードに置き換えられます。 例えば、<br /><code>スクリーンショット: [img]http://example.com/screenshot.png[/img]</code><br />と指定すると、その画像が存在すれば、それが表示されます。\n"
+"</p>\n"
+"<p>\n"
+"<strong>[img]</strong> タグに、<b>幅x高さ</b> の画像サイズを指定する引数を加えると、希望するサイズで画像を表示することができます。 例えば、<br /><code>スクリーンショット:[img=640x480]http://example.com/screenshot.png[/img]</code><br />と指定すると、画像が 640x480 のサイズで表示されます。 ただし、サイズを指定しても画像自体はフルサイズでダウンロードされますので、この機能を画像のサムネイル表示のためには使わないでください。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"<strong>[img]</strong> タグを <strong>[url]</strong> タグで囲むことで、画像をリンクにすることができます。<br />例: <code>[url=http://example.com][img]http://example.com/screenshot.png[/img][/url]</code>\n"
+"</p>\n"
+"\n"
+"<h3>順序付きリストと順序無しリスト</h3>\n"
+"\n"
+"<p>\n"
+"最もシンプルなリストタイプは、リストの各要素に番号の付かない順序無しリストです。\n"
+" このタイプのリストは、各要素の先頭に <strong>[*]</strong> マーカーを指定したリストを、<strong>[list]</strong> タグで囲むことで作成します。 なお、<strong>[*]</strong> マーカーには終了タグはありません(下記参照)。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"順序付きリストを作成するには、どのタイプの順序付けリストにしたいのかを指定する引数を <strong>[list]</strong> タグに加えます。\n"
+" 指定できる引数は、最初のリスト要素の番号を表す、「i」「I」「1」「a」「A」「c」「d」「s」です。\n"
+"詳しくは下記の例を参照してください。\n"
+"</p>\n"
+"\n"
+"<table>\n"
+" <tr>\n"
+"<th>記述例</th><th>表示例</th></tr>\n"
+"<tr><td><pre>私の好物\n"
+"[list]\n"
+"[*]オレンジ\n"
+"[*]リンゴ\n"
+"[*]バナナ\n"
+"[/list]\n"
+"</pre></td><td>私の好物<ul><li>オレンジ</li><li>リンゴ</li><li>バナナ</li></ul></td></tr><tr><td><pre>私の好物\n"
+"[list=I]\n"
+"[*]オレンジ\n"
+"[*]リンゴ\n"
+"[*]バナナ\n"
+"[/list]\n"
+"</pre></td><td>私の好物<ol style=\"list-style-type: upper-roman;\"><li>オレンジ</li><li>リンゴ</li><li>バナナ</li></ol></td></tr><tr><td><pre>私の好物\n"
+"[list=1]\n"
+"[*]オレンジ\n"
+"[*]リンゴ\n"
+"[*]バナナ\n"
+"[/list]\n"
+"</pre></td><td>私の好物<ol style=\"list-style-type: decimal;\"><li>オレンジ</li><li>リンゴ</li><li>バナナ</li></ol></td></tr></table>\n"
+"\n"
+"<h3>固定幅フォントでのテキストとブロック</h3>\n"
+"\n"
+"<p>\n"
+"行中の一部を <strong>[code]</strong> タグで囲むと、その部分が固定幅フォントで表示されます。 また、開始タグと終了タグの間に改行がある場合はブロックとして表示されます。 固定幅フォントでのブロック表示は、主にプログラムコードや HTML コードなどを表示するのに適しています。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"同様に、<strong>[php]</strong> タグで囲むと、その部分が PHP コードとして\n"
+"認識され、見やすいように構文がハイライト表示されます。\n"
+"</p>\n"
+"<table width=\"98%\">\n"
+"<tr><th>記述例</th><th>表示例</th></tr><tr><td>同梱の [code]readme.txt[/code] を読んでください。</td><td>同梱の <code>readme.txt</code> を読んでください。</td></tr><tr><td>HTMLのタイトルの記述例:<br />[code]<br /><head><br /> <title>Page Title</title><br /></head><br />[/code]</td><td>HTMLのタイトルの記述例:<br /><div class=\"bb-code-block\"><code><head><br /> <title>Page Title</title><br /></head><br /></code></td></tr>\n"
+"<tr>\n"
+"<td>PHP コードの記述例:<br />\n"
+"[php]<br />\n"
+"<?php<br />\n"
+"function hello()<br />\n"
+"{<br />\n"
+"  echo \"Hello World!\";<br />\n"
+"}<br />\n"
+"?><br />\n"
+"[/php]\n"
+"</td>\n"
+"<td valign=top>\n"
+"Some PHP code:<br />\n"
+"<div class=\"codeblock\"><code>\n"
+"<font color=\"#000000\">\n"
+"<font color=\"#0000BB\"><?php<br /></font><font color=\"#007700\">function </font><font color=\"#0000BB\">hello</font><font color=\"#007700\">()<br />{<br />  echo </font><font color=\"#DD0000\">\"Hello World!\"</font><font color=\"#007700\">;<br />}<br /><font color=\"#0000BB\">?></font>\n"
+"</font>\n"
+"</code>\n"
+"</td>\n"
+"</tr>\n"
+"</table>\n"
+"\n"
+"<h3>テキストとブロックの配置</h3>\n"
+"\n"
+"<p>\n"
+"テキストの配置を指定するには、<strong>[left]</strong>(左揃え)、<strong>[right]</strong>(右揃え)、<strong>[center]</strong>(中央揃え)、<strong>[justify]</strong>(均等割り付け)の各タグでテキストを囲みます。\n"
+" また、<strong>[float=left]</strong> や <strong>[float=right]</strong> のように、左右どちらかを指定する引数を加えた <strong>[float]</strong> タグで囲うと、ボックス領域を作成できます。 これは、特に画像へのテキストの回り込みを指定するのに便利です。\n"
+"(これらは、それぞれ、スタイルシートの text-align と float に対応します)\n"
+"</p><h3>その他のタグ</h3>\n"
+"\n"
+"<p>\n"
+"何かを引用する場合に、<strong>[quote][/quote]</strong> タグが使えます。\n"
+" 特定の人の投稿を引用する場合は、<b>[quote=taro] </b> のように引数を指定することもできます。\n"
+" また、<strong>[quote]</strong> タグは入れ子にして使うこともできます。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+" <strong>[sub]</strong> と <strong>[sup]</strong> タグは、上付き文字や\n"
+"下付き文字を指定するために使用できます。\n"
+" 例えば、H[sub]2[/sub]O は H<sub>2</sub>O となり、\n"
+"X[sup]3[/sup] は X<sup>3</sup> となります。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"<strong>[acronym]</strong> タグは「頭字語」を表すために使用でき、タグで囲まれた\n"
+"文字にマウスカーソルを乗せると、引数で指定された文字列がポップアップ表示されます。\n"
+" 例えば、\n"
+" [acronym=Structured Query Language]SQL[/acronym] と記述すると、\n"
+" <acronym title=\"Structured Query Language\">SQL</acronym> のように表示され、\n"
+"「SQL」にマウスカーソルを乗せると「Structured Query Language」とポップアップ表示されます。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"<strong>[abbr]</strong> タグは「略語」を表すために使用でき、タグで囲まれた\n"
+"文字にマウスカーソルを乗せると、引数で指定された文字列がポップアップ表示されます。\n"
+" 例えば、\n"
+" [abbr=World Wide Web]WWW[/abbr] と記述すると、 \n"
+" <abbr title=\"World Wide Web\">WWW</abbr> のように表示され、\n"
+"「WWW」にマウスカーソルを乗せると「World Wide Web」とポップアップ表示されます。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"<strong>[notag]</strong> タグは、テキスト中のタグが HTML へ変換されない\n"
+"ようにします。\n"
+" このタグを使うことで、BBcode の例を提示することができます。\n"
+" 例えば、[notag]These [b]tags[/b] are not rendered[/notag] と記述すると、\n"
+"「These [b]tags[/b] are not rendered」と表示されます。\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"<strong>[hr]</strong> タグは、ページを横切る水平線を引くことができます。\n"
+" これはテキストを区切るのに手ごろです。\n"
+"</p>\n"
+"\n"
+"<h3>書式タグの多重使用</h3>\n"
+"\n"
+"<p>\n"
+"書式タグは複数を組み合わせて、テキストの一部に指定することもできます。<br />\n"
+"<b>記述例:</b> <code>チャコは[b][i]海岸[/i][/b]にいました。</code><br />\n"
+"<b>表示例:</b> <code>チャコは<strong><em>海岸</em></strong>にいました。</code>\n"
+"\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"複数のタグを組み合わせる際には、必ず最後に指定したタグから閉じてゆき、それぞれのタグが入れ子になるようにしてください(要するに HTML タグと同じです)。 これを誤ると正しい表示結果は得られません。<br />\n"
+"また、BBCode の間違った使い方による書式指定の誤りを見つけるために、投稿をする前にプレビュー機能を使ってよく確認をしてください。<br />\n"
+"\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"これらのタグの組み合わせには若干の例外があり、タグの内側で別のタグを指定できないものもあります。 例えば <strong>[img]</strong> タグには、本質的に画像の URL のみしか指定することはできません。\n"
+" また、リストを書式タグで囲んでも、各リスト項目を装飾することはできません。\n"
+"</p>"
+
+#: bbcode.module:6 bbcode.info:0
+msgid "Allow the use of BBCode in your posts."
+msgstr "投稿で BBCode 書式が使えるようにします。"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/CHANGELOG.txt b/drupal/sites/default/boinc/modules/contrib/cck/CHANGELOG.txt
new file mode 100644
index 0000000..5a1a791
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/CHANGELOG.txt
@@ -0,0 +1,624 @@
+//$Id$
+
+CCK 6.x-2.10
+============
+
+Security: Open Redirect - SA-CONTRIB-2015-126
+
+CCK 6.x-2.9
+===========
+
+Features
+- #932680 by Dave Reid: Token integration - allow using of Token API's new $options param
+- #1008184 by merlinofchaos, bojanz, dereine, yched: Adapt to Views 3 "semantic views" feature (backwards compatible with Views 2)
+
+Bugfixes:
+- #863226 by KarenS: make sure we have a function that will return inactive instances when other instances of the same field are still active.
+- #887742 by yched: fix notices in _content_get_formatter() in some Views
+- #736440 by yched, dhthwy: fix memory leaks on long running migration scripts (e.g. migrate.module)
+- #705512 by cha0s, roderick: 'add more' button - fix PHP 5.3 compatibility
+- #894880 by yched: fix notices in check_plain() when rendering empty 'plain text' values
+- #728472 by Darren Oh: Ensure the module's preprocess functions run first
+- #986612 by Dave Reid: Token integration - fix variable name clash (harmless in normal cases)
+- #435520 by yched, sun: Fix text fields rendered as 'n/a' in some cases
+- #739490 by foripepe: Token integration - fix notices during token generation
+
+CCK 6.x-2.8
+===========
+
+Bugfixes:
+- SA-CONTRIB-2010-088 follow up fix for nodereference_autocomplete_access() and content_access().
+
+CCK 6.x-2.7
+===========
+
+Features:
+- #692822 by Dave Reid, add authoring info and publishing options to CCK extra fields.
+- #670344 by dagmar: Make CCK compatible with both, views 2 and views 3.
+
+Bugfixes:
+- #470470 by neilnz, use iLIKE for postgres selects.
+- #769592 by vkareh, add default values to nodeapi.
+- #714762 by Robbert, make diff module integration PHP5 compliant.
+- Add db_rewrite_sql() check to nodereference formatters.
+- #625768 CCK 6.x-2.6, got fatal error on update.php while running userreference_update_6002().
+- #649106 by thekevinday: Fix content_copy_form_alter(), where $form_state argument is not passed by reference.
+- #446390 by mani.atico and fago: improve rules condition to be more robust when checking for empty values.
+
+CCK 6.x-2.6
+===========
+
+Please visit update.php apply pending updates after uploading the new files.
+
+This release:
+- The main reason to pack this release is to keep CCK in sync with recent changes in Views 2.7 that broke the advanced views feature in Node reference fields.
+
+Features:
+- #244896 by stella, canaryMason - Add incremental classes for multiple value fields in views.
+- #227129 by igor.ro - Expose "delta" column in multiple value fields to Views.
+- #531662 by neochief - i18n support. Allow external modules to translate field labels, descriptions and allowed values list as typed in the field settings form.
+- #531662 i18n support for fieldgroups.
+- #558420 Accept trimmed titles in nodereference autocomplete validation to prevent title mismatch errors when title ends with space.
+- #596428 by NancyDru - Allow external modules alter the content type list.
+
+Bugfixes:
+- #416134 Userreference, impossible to filter allowed values by blocked users. Requires update.php.
+- #545942 warning: array_filter() [function.array-filter]: The first argument should be an array in userreference_update_6002().
+- #521002 Fix validation errors when using optgroups in allowed values for select elements.
+- #550252 by GuyPaddock - content_db_index_exists produces SQL errors when creating node reference fields for MySQL 4 (related to #231453).
+- #551280 by xurizaemon - Typo fix for "this field cannot hold more that 3 values" error message.
+- #558744 by chellomere - Fix one of the swedish translation strings to be correct, and much clearer.
+- #562260 by przadka - content_db_index_exists() has wrong syntax for PostgreSQL.
+- #567168 by jcmarco - Checkbox required not defined for on/off widgets.
+- #568430 by Jody Lynn - Bad @see in content-field.tpl.php.
+- #572672 by Jan van Diepen - Remove redundant (and bad) inclusion of node/content_types.inc in content_copy_import_form_submit().
+- #585048 Setting "All users" in "User status that can be referenced" option reverts to "Blocked users".
+- #589306 warning: Invalid argument supplied for foreach() in includes/panels/content_types/content_field.inc on line 166.
+- #605152 by pokurek - Missing number formatter fr_2.
+- #604830 by mattyoung - 32 characters limit on field and group identifiers in "Manage fields" screen.
+- #464030 by eojthebrave - Typo in content_copy.module help.
+- #614292 by DeFr - Fix CCK Reference fields based on views broken by recent change in views_plugin_style Views 2.7 (#502348).
+
+CCK 6.x-2.5
+===========
+
+A few files have been added and/or removed in this package. It is recommended to replace the whole CCK directory with the new one.
+Please visit update.php apply pending updates after installing the new files.
+It also worths to mention that Panels 3 integration has been reviewed and enhanced with display options for fiels and field groups.
+IMPORTANT: All sites using Diff module with CCK for Drupal 6 are strongly encouraged to upgrade to CCK 2.5 (see #538872 below).
+
+Features:
+- #428650 Conditional cache/menu rebuild for content CRUD methods.
+- #334945 Save default values when field is hidden because of access permissions.
+- #503258 by eaton: allow 'extra fields' to provide 'configure' and 'remove' links.
+- #505278 Panels 3 and multiple node type fields.
+- #495582 Reviewed Panels 3 integration (prep work for combo / multigroups).
+  Implementation of fieldgroup_view_group() that can be used to render field groups.
+- #417122 by quicksketch: allow drupal_alter on field and widget settings.
+- #514452 Add new argument $node to content_access() to enhance the context for hook_field_access().
+- #523072 by merlinofchaos - Have nodereference relationships limit CCK field availability as well.
+- #519870 by joachim - Add a note to say offset starts from 0 in grouping options for views handler for multiple values fields.
+- #231453 Allow fields index their columns. Implemented for reference value column in node and user reference fields. Needs update.php.
+- #521002 by mh86 - Support for optgroups in allowed values for select elements.
+
+Bugfixes:
+- #499696 by DeFr - Noderefernce / Userreference: fix Views mode when the view has exposed filters.
+- #498924 #multiple FAPI attribute is used for a radios and checkboxes in content export forms.
+- #409144 Review extra elements for node edit form provided by core modules.
+- #361473 CCK fieldgroup panels doesn't respect CCK field privacy settings.
+- #515984 Multiple field delta ORDER BY incorrect.
+- #414298 by Michelle, merlinofchaos - Follow up to remove fieldgroup.panels.inc (it was moved to panels/content_types).
+- #522112 by hefox, prevent malformed condition for vid IN () in views handler for multiple values fields.
+- #505278 by Michelle, merlinofchaos - Provide backward compatibility with previous method to build Panels 3 subtype names for fields.
+- #523864 Minor coding style issues in Panels 3 relationships implementations.
+- #481568 by merlinofchaos - Empty property error when attempting to save a user reference in Panels.
+- #510396 by yched - Use field/type definition to render fields in views.
+- #393020 by auth - Fieldgroup data is lost when importing to module provided content type with group info for existing fields.
+- #538872 Diff does not respect field permissions.
+
+CCK 6.x-2.4
+===========
+
+Hotfix release for 2.3:
+- #482774 Update breaks when CCK is disabled.
+
+CCK 6.x-2.3
+===========
+
+Please visit update.php apply pending updates after uploading the new files.
+
+This release:
+- fixes a few bugs,
+- adss initial Panels 3 support (Panels 2 not supported),
+- removes the unfinished Multigroup feature (work on this will continue in an experimental branch)
+
+Features:
+- #414298 by Michelle, merlinofchaos - Add Panels 3 integration for fields and fieldgroups.
+- #419678 Views integration: expose CCK fields to 'Node revision' Views.
+- #399778 by Benjamin Melençon - Nodereference / Userreference: Add 'size' setting to autocomplete widgets.
+- #479044 by merlinofchaos - Add Panels 3 relatioships for nodereference and userreference fields.
+
+Bugfixes:
+- #407446 by quicksketch: prevent double serialization during per-field to per-type migration.
+  Followup: update function to fix potentially existing corrupted data.
+- #407344 fix html appearing in selects in Views filters.
+- #409320 by bengtan: Nodereference / Userreference - fix 'this post cannot be referenced' for views-defined referenceable nodes/users, when the view definition has a 'limit'.
+- #409398 by markus_petrux - fix handling of fieldgroup_types() (prep work for combo / multigroups)
+- #356908 Number : Correclty filter 'prefix' and 'suffix' properties.
+- #412058 by fago - Rules integration: Fixed condition 'field has value' when operating on viewed nodes.
+- #413792 Views integration: fix fields using 'multiple formatters' and not 'group multiple fields'. Thanks Crell and quicksketch for the detective work.
+- #421126 Views integration: Use value aliases in argument title replacements for text / number fields.
+- #397358 by Darren Oh, yched, markus_petrux - Views integration: Use node title / user name in argument title replacements for nodereference and userreference argument fields.
+- #428400 Views integration: Fix fatal error with Views 2.4 (views_handler_filter_float has moved). Preserved compatibility with Views 2.3.
+- #447562 by markus_petrux: fix non-XHTML markup on 'Manage fields' screen.
+- #369364 Views integration: fix non-XHTML markup when displaying fields with the 'group multiple values' option.
+- #441412 by jcnventura - Add 'Print' display context on 'Display fields' pages when book.module is enabled.
+- #458952 Let different modules defined the same build_mode information.
+- #383038 by markDrupal - Userreference: fix broken 'reverse links' with fields in per-type table.
+- #479074 by rickward: prevent minor XSS vulnerability when displaying user-submitted 'Body field' labels.
+- #479994 by quicksketch: fix "add more' button with devel.module's query logging.
+
+CCK 6.x-2.2
+===========
+
+IMPORTANT:
+This release fixes a security issue (XSS vulnerability) in nodereference and userreference modules.
+All sites are using CCK for Drupal 6 are strongly encouraged to upgrade to CCK 2.2.
+Note that the Drupal 5 versions are not affected.
+See the Security Annoucement on http://drupal.org/node/406520 for more informations.
+
+
+Features:
+- #361311 Add poll settings forms to Manage fields screen.
+- Add book form to Manage fields screen.
+- #131953 by markus_petrux - Views integration: expose additional db columns.
+- #349987 by Michelle - Panels integration for fieldgroups.
+- #362216 by markus_petrux - sort the admin/content/types/fields overview by field name.
+- #242583 by jmiccolis - Number: Push maximum 'scale' setting up to 10 for decimal fields.
+- Correct RTL display.
+- #405452 - Views integration: Update to Views 2.3 API ('link to node'), with 2.2 compatibility preserved.
+
+Bugfixes:
+- #392476 Make sure CCK textarea fields in a View don't have a span wrapped around a block-level element.
+- Fix devel_generate for decimal and float values.
+- #358700 Can't use array_slice() on assoc array in PHP4.
+- #196421 Prefixed tables weren't getting queried correctly.
+- Don't assume display_settings[$context] always exists, newly enabled modules may add new contexts that weren't there when the field was last edited.
+- #339537 by markus_petrux: fix orphan fields in {content_group_fields} table when fields are removed.
+- Views integration: use shorter titles in Views admin summaries (see http://drupal.org/node/326034).
+- #334290 by drewish - Userreference: user names not displayed in Views summaries.
+- #343138 by duellj - Fix tokens for empty noderef / userref fields.
+- #343306 Validate text 'max length' to be a positive integer
+- #344004 by markus_petrux - Diff integration : fix error on non-'core CCK' field types.
+- Diff integration: limit the number of additional queries for noderef/userref.
+- Diff integration: refactored around a new hook_content_diff_values() to save contrib field modules the
+burden of implementing hook_diff. For most field types, the default content_field_content_diff_values()
+should be enough, though.
+- #344216 by dbabbage: Fix incorrect url to Schema module in tests descriptions.
+- #336174 Move actual field access check in content.module, with content_permission.module providing one permission-based implementation.
+- #336174 (followup) Make sure content_view_field() and content_format() both respect field access rules.
+- #351929 by lyricnz - Views integration: make sure formatters get a pseudo-node with enough info.
+- #355712 by fractile81 - Fieldgroup: fix extraneous cache clears.
+- #356666 by flobruit - fix 'exclude' display setting wrongly set across shared instances of a field.
+- Fix 'undefined variable' notice when submitting field settings form with 'php code for default value.
+- #353012 User reference - fix duplicate 'reverse links' on user profile pages when the same user is referenced by several userref fields in a node. Also improves performance.
+- #342427 Views integration - fix summaries for nodereference and userreference fields.
+- #363456 by dww - Fix some cases of bogus d-n-d reordering of 'pseudo-fields'.
+- #366935 by drewish - Make the 'Views mode' feature in noderef / ueserref visible even if no usable View exists yet.
+- #371306 fix duplicate HTML when using the JS-'add more' button.
+- #370004 by dopry - Fix JS-'add more' button breaking fielfield's AHAH upload.
+- #374213 by rpanna - Fieldgroup: All field instances removed their groups when one instance is deleted from a content type.
+- #356158 by markus_petrux - Fix more (hopefully all ?) cases of bogus d-n-d reordering of 'pseudo-fields'.
+- #381876 by DamienMcKenna - Content Copy: Fix formatting glitch in exported type definitions.
+- #346202 Fieldgroup: let the 'simple' template be overridable (thks fiskit) + allow template variants.
+- #382004 by elcuco - Field name and group name fields should stay LTR for RTL languages.
+- #360712 by tombigel - CSS tweaks for RTL languages.
+- #375316 Nodereference/Userreference: Ensure allowed values always return at least an empty array.
+- #368155 Nodereference/Userreference: Fix performance issue on large sites when validating empty noderef/userref fields.
+- #319778 Optionwidgets: Fix double encoding issues for &, >, <,... chars in select lists.
+
+CCK 6.x-2.1
+===========
+
+This release fixes two critical issues:
+- #331293 by Timo.Kissing - Content copy: no fields proposed for export (#320632 followup).
+- #331033 Views integration: Fix fatal error in content_handler_field.inc in some circumstances.
+
+Other fixes:
+- #331179 Userreference: 'reverse link' checkbox stayed unchecked.
+- Uninstall forgot to remove some variables.
+- #331794 Fix false positives for "The default value is invalid" error message.
+- #331995 Fix 'invalid argument for foreach' warning on nodes with inexistent type.
+- Views integration: make sure our own render_link doesn't output empty links (see #332679).
+
+CCK 6.x-2.0
+===========
+
+IMPORTANT : this release fixes (minor) cross-site scripting (XSS) vulnerabilities
+in nodereference.module, userreference.module, content_copy.module, and CCK's Views integration
+See the Security Annoucement on http://drupal.org/node/330546 for more information.
+
+Note: Filters available for CCK fields in Views have changed slightly since the RC releases.
+If upgrading from a RC release, you might need to check your views, and if needed.
+This only applies to filters defined on Text or Number fields that specify a list of 'Allowed values'.
+Filters on other CCK fields are not affected.
+
+Main new features since RC10:
+- #300368 Add option on Display fields screen to omit fields or groups from the $content value passed to the node template.
+- #298651 by smk-ka, yched - Nodereference/Userreference: Enhance performance on large sites.
+  This also adds 'autocomplete mode' widget settings (full string / beginning of string).
+- #329447 add content_view_field() API function to display a single field, fully themed with label and multiple values, to be used by 3rd party code.
+
+Other changes:
+- Content_generate should be passing field info and updating $items.
+- Fix bug in content_generate that was adding fully formatted textarea values to textfield fields.
+- #329037 Fix small bug in content_generate function method of calling fields that handle their own multiple values.
+- #324826 Change Advanced help path and topic to use & prefix per latest change in Advanced help.
+- #324610 Add Advanced help files for basic fields and hooks so they'll show up in the CCK advanced help documentation. Intended to be used as examples by other field modules for a way to add more field documentation.
+- #321024 Add content_associate_fields() to the content_check_update() function because it can get skipped when updates are aborted or the content module is not yet updated.
+- Fix bad logic in testing content version variable to prevent warning messages before content module is updated.
+- Get rid of t() around Views field label since Views already has it marked as a translatable option.
+- #285470 by jhuckabee, store field label in the view in all cases, previously only custom labels were stored.
+- #266309 by abbasmousavi, change silent fix to error message for invalid input into number fields.
+- #318224 by brmassa, error in Content Copy handling of fieldgroups.
+- #198508 Add messages to Manage fields screen about inactive fields.
+- #320743 Revert group names uniqueness rules as per D5 behavior (group names unique only inside content types).
+- #310219 followup : numeric (core) rendering modes were not preserved in some cases.
+- Fix 'unknown index' warnings on fieldgroups settings pages.
+- #320139 by Moonshine - Noderef / Userref: Fix single-quotes encoding in 'Views' mode with option widgets.
+- #318143 by Douggreen - Panels integration: make widget label translatable.
+- #321147 Views integration: float/decimal filters round values to integers.
+- #321702 Views integration: fix rendering of multiple-values formatters.
+- #322917 Upgrade path: Missing information text on update 6000 when content.module not enabled.
+- Replaced theming instructions in theme/README.txt with advanced_help pages.
+- #323436 by hass: fix a few strings + translation bugs.
+- #323745 by robertgarrigos: Fix performance issue when submitting 'display fields' form.
+- #316292 by fractile81: Turn potentially time-consuming updates into multi-pass updates.
+- Remove unwanted 'N/A' option on noderef/userref fields using checkboxes.
+- #319131 by Moonshine - Add 'title-raw' token for noderef fields.
+- #324300 Views integration: fix sorting for multiple fields by allowing the sort to act on one specific delta.
+  Also disable tablesorting for multiple fields with 'group multiple values' option.
+- Views integration: fix broken query for fields retrieved through relationships when relation is empty.
+- #325262 Fix flawed logic in filtering out empty values.
+- #297322 Views integration: display node title / user name for argument summaries with noderef / userref fields.
+- #324301 Optionwidgets: check for maximum number of values.
+- #320632 Content Copy: Make fields/groups checked for export by default + display the list in an overview table.
+- Content Copy: Import / export weights of dnd-enabled non-CCK fields.
+- #327715 Babysit 'invalid foreach' warnings caused by invalid incoming $node objects.
+- #328763 Adjust weight of non-cck fields even if there are no CCK fields for the content type.
+- Views integration: fixed a few non-relationship safe areas.
+- Views integration: fix 'link this field to its node'+'group multiple'+relationships.
+- #323681 Panels integration: make 'field as pane' work again.
+- #311912 Views integration: The many_to_one filters for fields with 'allowed values' gain should not replace the regular 'starts with'/'greater than' filters.
+
+CCK 6.x-2.0-rc10
+================
+
+- Get rid of helper function content_is_updated(), we can do it better using the content version variable.
+- #318224 by brmassa, fix several errors in Content Copy.
+- #318387 Make sure old fieldgroup updates don't run if tables were never created.
+- #318227 Clean up update abort logic to more clearly explain what still needs to be done, add a helper function to prevent dangerous database operations until database is updated.
+- #317232 Change css file name from content.css to content-module.css to avoid namespace collisions.
+- #316656 Default weight must be zero, not NULL, or form ordering will be incorrect.
+- #107407 by dopry, optimization patch, do nothing in hook_form_alter() and hook_nodeapi() if there are no fields.
+- #317932 Fix userreference documentation typo.
+
+CCK 6.x-2.0-rc9
+===============
+
+- Change update instructions to recommend leaving CCK modules out of the modules folder until they're enabled.
+- #317036 by hass, context-sensitive translation fixes.
+- #316354 by fago, hass, fix translation issues in rules.inc files.
+- #312546 by stella, code cleanup.
+- #311146 by Brian294, dheffron, yched, and others, fix critical javascript problem in new Manage fields UI screen in some themes.
+- #317032 by hass, code cleanup.
+
+CCK 6.x-2.0-rc8
+===============
+
+Be sure to visit update.php after uploading this release.
+
+- #314986 by moshe weitzman, remove hook_devel_caches(), deprecated in favor of content_flush_caches().
+- Clean up inconsistencies in unsetting _error_element, sometimes not unsetting it, sometimes not testing before unsetting it causing undefined index errors.
+- Add more documentation of how nested nodereference and userreference items work.
+- #119102 Combo field prep, Use === in userreference and nodereference validation to be sure we get right results if parent is a zero (delta) value instead of a string name.
+- #119102, #314843 Make sure module process code doesn't override #element_validate set by other modules.
+- #119102 Combo field prep, rework fieldgroup name validation into API to be used by other modules.
+- #312546 by stella - Change some links to make translation easier.
+- Added the #delta value to the wrong place in the element, it was inaccessible to the formatter theme.
+- #119102 Combo field prep, rework the field overview form so it can hanle other kinds of groups.
+- #119102 Combo field prep, add hooks to the fieldgroup module so other modules can alter group info.
+- #119102 Combo field prep, add group_type information to the Manage fields screen.
+- #119102 Combo field prep, add group_type column to content_group table.
+- #310420 Make sure fields created by disabled modules get marked inactive in the database.
+- #119102 Combo field prep, allow way to override multiple values settings for optionwidgets.
+- #119102 Combo field prep, add prev_parent and group info to display fields overview.
+- #119102 Combo field prep, add a helper function that can determine if a field is in use and the max delta value in use.
+- #309667 Add Panels integration in. This is still experimental since Panels for D6 is still experimental.
+- #307909 Don't create Views tables for fields that don't create db columns.
+- Make incompatibility with older Views releases stand out more.
+- Fix errors when rendering fieldgroups in 'advanced' contexts (RSS, search...).
+- Do not insert field and group labels in search index.
+- Fix drag-n-drop order lost when node form is redisplayed after node preview or failed validation.
+- Fix drag-n-drop order not accounted for in node previews.
+- #306572 Number: Incorrect validation of allowed values for Float and Decimal fields.
+- #306963 by p.brouwers - Number : fix missing formatter for '9.999,99' (be_2).
+- Views integration : Add default label for userref and noderef relationships.
+- #234774 Nifty new UI to add fields and groups (requires a cache clear) + initial integration with advanced_help module.
+- #281749 by asimmonds: fix '0' not parsed as an alias for allowed values.
+- #309365 Views integration: Consider relationships when force-adding the 'Node: Type' field - thks jhuckabee.
+- #308215 by Reg - Nodereference: Do not filter on empty string when querying for referenceable nodes.
+- #308778 Fix $item['view'] element missing for tokens and contemplate.
+- #310414 Fix broken redirects when adding fields to content types with an underscore in their machine names.
+- #310484 by merlinofchaos - Views integration: Allow relationships to work nicely with multiple values.
+- Views integration: reorder elements in the field's settings to ba a little more logical.
+- #306604 Views integration: fix relationships with 'group multiple values' option. Thx merlinofchaos for the help.
+- Add a message on the 'Manage fields' screen about the benefits of advanced_help module.
+- #311883 by hass : Fix a string to give translators better context.
+- #310873 Upgrade path : abort updates if content.module and/or field modules are disabled, and fix existing sites possibly affected.
+- #310219 Let modules expose additional display modes iunder the 'Display fields' tab : hook_content_build_modes().
+
+CCK 6.x-2.0-rc7
+===============
+
+Note:
+- There has been a few files moved around since RC6, so be sure to *delete* the previous contents
+of your cck/ folder before uploading the new files, in order to avoid duplicates.
+- The admin forms (field creation, field edition...) have been renamed to comply with usual form
+naming conventions. Modules and custom code that rely on those form ids through hook_form_alter() or
+drupal_execute() will need to be updated.
+- The final 6.x-2.0 release is currently targetted for the second half of September.
+
+Main bugs fixed since RC6:
+- Content Copy: Fix multiple bugs when importing/exporting content types :
+exporting field definition can alter the actual field's settings
+'this post cannot be referenced' error when exporting nodereference fields
+no export of default values
+- #198502 D5 upgrade path: Prevent field module upgrades from running before content.module upgrades.
+- #293698 Views integration: make 'show n values starting from m' actually work.
+- #292872 Data loss issue: fields and field data deleted for content types defined by disabled modules.
+IMPORTANT: Since disabling all contrib modules is a recommended step prior to upgrading a D5 site to D6,
+it is highly advised that D5 sites using CCK are updated to CCK 5.x-1.8 (which contains the same fix)
+before starting the D6 upgrade process.
+
+Main new features since RC6:
+- Updated to latest Views 2 API. Views integration requires Views 6.x-2.x-dev newer than Sep 3, 2008.
+- #295556 by CPyle - Userreference: let referenceable users be defined by a View.
+- Userreference: Add 'Radios / checkboxes' widget.
+- #294797 New $FIELD_NAME_rendered and $GROUP_NAME_rendered variables for node.tpl.php.
+- Nodereference: Allow specific node templates for nodes displayed as values of a noderef field.
+- #301736 by nedjo - Nodereference: Multilingual support; if available, propose translations of referenced nodes when creating a new translation.
+- #196468 by Nedjo - Content copy: Provide a link to automatically import a file into Content Copy.
+
+Other changes:
+- Avoid undefined index error in Content Copy when fieldgroup is enabled but there are no groups.
+- #296077 Add delta to formatter information.
+- #128038 Alter _content_admin_form() to provide the raw widget default values as well as the default value widget so programmed forms will have those values available. You can't tell when you construct the form if it's a programmed form or not, so we will always have to create the default value widget, but we don't always have to use it. This will also get the default values into the Content Copy export in a way that Content Copy import can pick them up, and alter validation to unset th [...]
+- #128038 Use content_field_instance_collapse() to send form values in the Content Copy export to be sure we get the original field values for checkboxes instead of the true/false values we will get otherwise.
+- #300108 Add group value back to field settings form so it will appear in the Content Copy export.
+- #283985 Force Content Copy export to use current field values to avoid storing mangled data back to field.
+- #298440 by Moonshine and KarenS: move form permission checking to content_field_form() and don't call hook_widget for users w/out permission.
+- #294726 by profix898 and yched: _content_type_info() does not reset on content type changes.
+- #293273 Nodereference: update 'referenceable types' when type name changes.
+- #295914 Fix additional problems when installing CCK in install profiles.
+- #295664 Views integration: let summaries display 'allowed values' aliases if any.
+- Views integration: prevent empty links for the 'no value' items in summaries.
+- #296748 Text: Fix PHP warning when $node->build_mode not set.
+- #297915 Fix content_copy.
+- #298674 Content copy doesn't import all type properties.
+- #293471 Remove fieldgroup selection on field settings form.
+- Userref / Noderef : Add a 'none' choice for non-required, single fields with 'Radios / checkboxes' widget.
+- #298823 Views integration: do not step into views_* namespace.
+- #299698 Userreference: autocompletion query when typed string is '0'.
+- #300236 Fix inconsistent schema for 'locked' column between install and updates.
+- Do not display 'label' settings on 'advanced' subtab of 'Display fields'.
+- #266205 by sun: add zebra classes for field items.
+- #299870 Incorrect handling of custom weight for 'Language' node form element.
+- Fieldgroups: display options were not supported for 'advanced' contexts (RSS, search index...).
+- Fieldgroups: do not display group label when building the search index.
+- Fieldgroups: Remove tinyint (127) limitation on group weights.
+- #301984 by joetsuihk - Views Integration: do not display empty divs on empty fields.
+- Views integration : prevent possible 'invalid argument for foreach' warnings with 'group multiple values'.
+- Fix tests to work with simpletest 2.x.
+- #296301 by Moonshine - Fieldgroups: fix call_user_func_array() error on add / configure / remove pages.
+- #118364 Number (decimal): fix unneeded information message when using comma as a separator ("150,00 was changed to 150.00").
+- Fieldgroup: New groups are not styled on node view until 'display fields' form is submitted.
+- #303664 Views integration: update to new Views API for handler / plugins.
+- #303475 by wrunt - Optionwidgets : unchecked 'single on/off checkbox' stores 0/'0' instead of the 'off' value.
+- #304450 Userreference - fix broken autocomplete for 'simple' mode / fix broken 'advanced - views' mode after Views API changes.
+- Fix PHP warnings on node display for hidden fields inside fieldgroups.
+- #305048 by asimmonds: fix incorrect link on 'start update' page when updates were aborted.
+- Content copy: Fix broken group export as a result of #296301.
+- #304828 Clean up function names in content.admin.inc.
+- #285557 Added 'img' to the list of allowed tags in fields descriptions.
+- Content copy: wrong page title after export code has been generated.
+- Fieldgroup: fix broken node preview.
+
+CCK 6.x-2.0-rc6
+===============
+
+Hotfix release for:
+- #295537 fix warnings in update 6004 when site has no actual cck fields.
+Those errors were harmless, no need to worry or run update.php again if you had them.
+
+Minor fix:
+- #265795 by smk-ka: formatter labels go through t() twice in Views exposed data.
+
+CCK 6.x-2.0-rc5
+===============
+
+Main bugs fixed :
+- #281388 Optionwidgets: Unselect values doesn't take.
+- #286457 Fix menu not being always rebuilt when needed.
+- #285138 by quicksketch and yched: Allow CCK to be installed in install profiles.
+
+Main new features :
+- #282183 by chx: Nodereference - 'Checkboxes/radios' widget.
+- #289138 by dopry: Add support for 'locked' fields (for module-defined fields).
+
+Other changes :
+- #273502 Add descriptions to the non-CCK form elements on the Manage fields screen.
+- Fix PHP warnings when field display is set to 'hidden' and field is in a fieldgroup.
+- Re-introduce '<none>' choice for multiselect widgets (optionwidgets, noderef/userref select).
+- #281449 Text: maxlength on textfield widget is 128 even when the field has no maximum length.
+- Add tests for optionwidgets.
+- #282175: Don't mention 'add more' button when the widget opts out of it.
+- Optionwidgets: use '- None -' for 'no selection' option (like core's taxonomy.module).
+- #286637 by poiu: clearer example for default value with php-code.
+- #93436 Add $form parameter to content_validate.
+- #277310 by fractile81: update node object by reference in content_load().
+- #285771 Views integration: use the new 'float' filter handler where applicable.
+- Fix PHP warnings when renaming a content type.
+- #280410 Number: Fix prefix / suffix displayed when field is empty.
+- #282937 Fix warnings on uninstall.
+- #287540 Add index on nid in data tables, to optimize node deletion (requires update.php)
+- #288578 Text: Fix max length to use utf8 length.
+- #222214 by aaron, deviantintegral : support tokens for nodererf / userref paths aliases.
+- #211306 by asimmonds: Fix error in D5 update with SQL strict mode.
+- #292338 by mh89: Set fieldgroup.module's weight to 9 (missing for new D6 installs).
+- #292463 Fieldgroup: missing update for fieldgroup table names (didn't actually break anything).
+- #292855 by Tgr - Fieldgroup: missing } in query on field instance deletion.
+- #292925 by greggles - Text: Fix PHP notice under some circumstances with textarea widget.
+- #292675 Support d-n-d reordering of non-cck "fields" for types that have no cck fields.
+- #289888 Nodereference: Fix 'full node' and 'teaser' formatters.
+- Display field type human names instead of machine names on 'Manage Fields' and 'Fields' overview pages.
+- #292884 Better help text for field template suggestions.
+- #293163 Use FAPI validation instead of field|widget_settings($op 'validate').
+          (the 'validate' op is still supported, though)
+- #75423 by mh89 - Text: 'size' setting for textfield widget.
+
+
+CCK 6.x-2.0-rc4
+===============
+
+This RC Mainly fixes a critical bug :
+http://www.drupal.org/node/277968 - Saving 'Display Fields' wipes widget settings.
+
+- #278325 Nodereference/Userreference - autocomplete widget does not check nodes/users are 'referenceable'.
+- #278325 followup: Unify the mechanism used to assign hook_field('validate') errors to form elements across fields and widgets.
+- Userreference - Turn the 'Reverse link' radios into a checkbox in the field settings.
+- Nodereference - Only list 'node' Views in the 'advanced mode', and differenciate default views as in D5.
+- Optionwidgets - fix PHP warning when creating a new 'on/off checkbox' and no allowed values could be set yet.
+- Optionwidgets - fix PHP warning on 'on/off checkbox' only one 'allowed value'.
+- Optionwidgets - add a 'warning' message to remind the admins they need to set allowed values.
+- #278676 by hass: fix untranslated field and widget type names.
+- Do not validate the fields settings form when the 'change label / widget' submits the form.
+- #273502 Let the 'menu settings' node-form fieldset on node forms be repositioned.
+- #273502 followup: add a description for non-CCK 'fields' on 'Manage fields' tab.
+- #278793 by hass: fix untranslated PHP code example.
+- Nodereference/Userreference - There were two 'no selection' choices on 'select list' widget for non-required fields.
+- #277486 Nodereference/Userreference - no selection with 'select list' widget stores 0 instead of NULL.
+- #278789 better wording for the 'PHP default value invalid' error message.
+- #267771 orignal patch by quicksketch: Richer label settings for views fields.
+- #279204 by eMPee584: fix edit paths inconsistency.
+- #276990 Nodereference - error message when no valid node with that title (autocomplete widget).
+- Widget (FAPI-)validation messages do not display the field 'label' when the error is on a nth value (n > 1).
+- Unify field validation error messages.
+- #269319 Reintroduce field template variants; add theme instructions text file.
+- #179419 by smk-ka: Content Copy - Import fails when language not English.
+- #278899 Nodereference - Refactor 'advanced (Views-defined referenceable nodes)' to use views rendering.
+- #279190 content_crud_instance_update wiped existing widget settings in some cases.
+  Also added a tests for a few basic properties of the CRUD API.
+
+CCK 6.x-2.0-rc3
+===============
+
+- #278116 by Damien Tournoud: Make some strings easier to translate in views intergration forms.
+- #278135 fix some translation quirks + fix french typography for ':' :-)
+- Nodereference: 'Title mismatch. Please check your selection' error should break validation (+ fix typo).
+- #277968 by jpetso: Fix fatal error when cck folder lives in the main /modules folder.
+
+CCK 6.x-2.0-rc2
+===============
+
+- #276994 Follow up, remove conditional loading for content.views.inc, Views handles it.
+
+CCK 6.x-2.0-rc1
+===============
+
+- #276994 Remove views_include_handlers() from content.views.inc, no longer needed.
+- Change 'allow_empty' to 'allow empty' so that Views filters work correctly.
+- #272871 Pass #node to formatters to be consistent with the values that were available in the D5 version.
+- #271294 Add TODO to get rid of content_write_record() once drupal_write_record() is patched.
+- #271294 Add documentation for the reason for having a custom version of drupal_write_record.
+- Avoid E_All error when prefixes and suffixes are not defined in number module.
+- Avoid E_All error, don't try to return $item[0] if there are no items.
+- #266590 Make sure a view is valid before trying to use it in the nodereference module to fix upgrade errors when the view has not been updated to Views 2.
+- #258127 Get rid of content_menu_needs_rebuild() in remaining places and only rebuild the menu when absolutely needed.
+- Alter content_types_install() to make sure it picks up all the regular field and widget values out of the database. Some of the field values were missing, which caused some of the other values to get set incorrectly during updates and when modules are enabled.
+- #235063 Fix jumbled multiple values when hitting the 'add-more' button with more than 10 values.
+          Keep 'add more' button text consistent.
+- #270014 by yang_yi_cn: form for multiple values didn't call the right hook_widget
+- fix 'Undefined index: #access' notice when content_permissions.module is disabled
+- #270315 Mention dependency on schema.module in the desciptions of the CRUD tests.
+- #227951 by pwolanin: Add a permission for PHP 'default values' and 'allowed values'
+- #271682 by pwolanin: Make simpletests easier by not duplicating field name in same form.
+- #270315 by pwolanin: Update simpletest to use DrupalWebTestCase.
+- #227951 by pwolanin: Add permission for ability to use php code for default values and allowed values.
+- #270827 by pwolanin: Validity checks for the AHAH-'add more' request.
+- #271087 Properly handle values '0' for text and number fields.
+- #258407 Fix field template name to allow for easy overridability.
+- #274038 by jpetso: Fix non-JS mode for 'add more' button.
+- #275192 by jpetso: Attach AHAH behaviors to newly inserted widgets on JS 'add more'.
+- #271710 by pwolanin: tests for UI field CRUD, and node form generation.
+- #266696 by pwolanin: Unable to change the label or widget type for a field.
+- #201329 by pwolanin and yched: Fix content_field_instance_delete() not cleaning tables.
+- #271577 by pwolanin: Fix unsanitized text (optionwidgets, number, text, field labels, field descriptions)
+- #273539 by jpetso: Fix JS-'add more' for complex widgets (e.g. filefield)
+- #227435 by pwolanin: Usability - Put fields links on content type overview page
+- #277101: Hide fieldset-based fieldgroups when all fields empty
+- #198508: Prevent data loss for disabled fields.
+
+CCK 6.2.beta
+============
+
+Content Generate (new feature)
+- #257874 and #187599 provide a way to auto-generate field content for the devel module.
+- #261633 E_All fix for content_generate.
+
+Usability
+- #227439, #227437, #227945 Rework field and widget type handling to simplify the intial screen when choosing a field and widget type by making it a two-step process where you see only the widgets that apply to the field. Move the setting of the field label to the same place where you set the field name. Change the field edit screen to keep it from showing all the different widgets again and instead just display the current widget. Then add a button to change the widget which will take y [...]
+
+Update processing
+- #256141 Add old updates back to fieldgroup.install for situations where the module was briefly enabled and then disabled and never used so the update process doesn't throw an error for the missing updates.
+- Fix potential E_All error in userreference after update.
+- Fix E_All error that can come up after update if text module is using format column.
+- Change the check in _content_type_info to be sure the new 'active' column exists before trying to query the table during installation and updates. Also fix E_All notice for non-existant db_columns during install and update.
+- #237585 Try to avoid foreach errors on missing content type information by creating empty arrays in content_info.
+
+Optionwidgets
+- #224391 Get default values working again for optionwidgets.
+- #251157 Make sure optionwidgets selections are not lost when previewing node.
+- #253038 Make sure empty optionwidget values are always arrays.
+
+Nodereference
+- #264345 Create a nodereference wrapper for setting and rendering a view and store the rendered view in a static variable to ensure the same view is not rendered over and over in the same session.
+- #263936 Make sure nodereference select views do not try to use paging and do not limit the items per page.
+- Clean up autocomplete handling that uses Views as a selector.
+- #262112 Add missing hook_theme definition for the plain formatter.
+- #256440 Nodereference was passing wrong object to Views for the Views node selection option. Also need to limit available views to those that have fields defined so we can add the title to the view and so there is something meaningful to display in the select list.
+
+Views Integration
+- #264479 Make sure we don't try to init() a view for fields that don't have one selected.
+- #263936 Set arguments in execute_display. Also make sure to pass $string and $exact_string to the view.
+- #257566 Move all content fields into a single group in the Views UI.
+- #242856 Make sure the node.nid is aliased when creating our grouped fields query so the parent node isn't confused with nodereference's nid column.
+- #261528 Add in missing code to create the link to the node if that option is requested.
+
+Content Copy
+- #225664 Make sure groups get imported as well as fields.
+
+Formatters
+- #264768 Make sure handling for all possible states of #single is properly set up.
+- #260253 $node->type isn't always set, and if missing the formatters that use $fields($field_name, $type_name) to retrieve the field array end up with an empty value. Add the node type to all content fields views so we can be sure it's available and alter the content_format logic to look for the node type both at $node->type and at $node->node_type, where Views will put it, to properly set the content type.
+
+General
+- #256116 Add a TODO to reconsider handling of CCK data when a content type is deleted.
+- Small fix to content_generate to get auto-generation of number values working.
+- #265334 Avoid format error messages in the unusual case where you have created CCK content and then delete the content type without deleting the node, since core does not delete the nodes in that case.
+- #227256 Add an additional check when creating a new field that the length is no more than 32 characters.
+- #260253 When content_type is set but empty, nothing is returned from content_fields(). Fix that by checking for empty() instead of isset(). This is a more general problem that should be fixed in content_fields().
+- #258127 Eliminate need to defer the rebuild of the menu, also adding TODO to see if content_menu_needs_rebuild() can be eliminated.
+- #257304 Make sure the widget description is never NULL to avoid problems when a NULL value gets wrapped with t().
+- #259704 Make sure help text always appears.
+- #255113 Make sure empty filtered text fields don't pick up unintended values from check_plain().
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/DEVELOPER.txt b/drupal/sites/default/boinc/modules/contrib/cck/DEVELOPER.txt
new file mode 100644
index 0000000..251d586
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/DEVELOPER.txt
@@ -0,0 +1,6 @@
+// $Id$
+
+DEVELOPER DOCUMENTATION
+UPDATING FROM 5.x TO 6.x
+
+See http://drupal.org/node/191796 for a guide to updating field modules.
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/cck/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/README.txt b/drupal/sites/default/boinc/modules/contrib/cck/README.txt
new file mode 100644
index 0000000..edf51ee
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/README.txt
@@ -0,0 +1,48 @@
+// $Id$
+
+Content Construction Kit
+------------------------
+
+NOTE: Install the advanced_help module (http://drupal.org/project/advanced_help)
+to access more help (writing still in progress...)
+
+To install, place the entire CCK folder into your modules directory.
+Go to Administer -> Site building -> Modules and enable the Content module and one or
+more field type modules:
+
+- text.module
+- number.module
+- userreference.module
+- nodereference.module
+
+Now go to Administer -> Content management -> Content types. Create a new
+content type and edit it to add some fields. Then test by creating
+a new node of your new type using the Create content menu link.
+
+The included optionswidget.module provides radio and check box selectors
+for the various field types.
+
+The included fieldgroup.module allows you to group fields together
+in fieldsets to help organize them.
+
+A comprehensive guide to using CCK is available as a CCK Handbook
+at http://drupal.org/node/101723.
+
+Known incompatibilitie
+----------------------
+
+The Devel Themer module that ships with Devel is known to mess with CCK admin pages.
+As a general rule, Devel Themer should only be switched on intermittently when doing
+theme work on a specific page, and switched off immediately after that, for it adds
+massive processing overhead.
+
+Maintainers
+-----------
+The Content Construction Kit was originally developped by:
+John Van Dyk
+Jonathan Chaffer
+
+Current maintainers:
+Karen Stevenson
+Yves Chedemois
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/UPGRADE.txt b/drupal/sites/default/boinc/modules/contrib/cck/UPGRADE.txt
new file mode 100644
index 0000000..1cb5b61
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/UPGRADE.txt
@@ -0,0 +1,87 @@
+// $Id$
+
+================================================================
+UPDATING FROM VERSION 4.7 to 6.x
+================================================================
+
+THERE IS NO DIRECT UPGRADE PATH FROM 4.7 TO 6.x!! FIRST UPGRADE
+YOUR DATABASE FROM 4.7 TO THE LATEST 5.x VERSION, THEN UPGRADE
+TO 6.x.
+
+ALWAYS BACKUP YOUR DATABASE BEFORE UPGRADING!
+
+1) While 4.7 is still installed, upload the latest 4.7 version of
+   all the CCK files, go to update.php, and run all possible
+   updates for the Content module and all field modules.
+
+2) Install Drupal version 5. Once it is running, upload and install
+   the latest 5.x versions of all CCK modules, go to update.php and
+   run all possible updates.
+
+Jump to the instructions for updating from version 5.x to 6.x.
+
+================================================================
+UPDATING FROM VERSION 5.x to 6.x
+================================================================
+
+YOU MUST RUN ALL POSSIBLE UPDATES TO YOUR DATABASE IN 5.x USING
+THE LATEST 5.x CODE, BEFORE UPGRADING FROM 5.x to 6.x.
+
+ALWAYS BACKUP YOUR DATABASE BEFORE UPGRADING!
+
+1) Before upgrading to 6.x, upload the latest 5.x versions of all
+   CCK modules, go to update.php and run all possible updates.
+
+2) Disable all CCK modules and remove them from the modules folder
+   before upgrading.
+
+3) Install Drupal version 6. Leave all contributed modules out of
+   the modules folder until core modules are up and running.
+   Set your administration theme to a core theme like Garland until
+   everything has been updated to help ensure you don't encounter
+   theme-related problems accessing the administration area.
+
+4) Once core is running, upload and install the latest 6.x versions 
+   of ONLY CCK CORE FILES (the ones in the tarball on the CCK
+   project page). Enable them, then go to update.php and run all 
+   possible updates. DO NOT add any other CCK modules to the 
+   modules folder until the core CCK files are updated and working 
+   correctly.
+
+5) After updating CCK core modules, you may get messages saying that
+   some updates failed and that you need to run update.php again.
+   If you get messages like that, keep re-running update.php until
+   you get no more messages.
+
+6) Once the core CCK modules are updated and working correctly,
+   add other CCK modules to the modules folder, enable them,
+   and run update.php. For best results, do this one module at a
+   time so you can tell immediately if any of them create problems
+   without letting those problems interfere with other updates.
+
+
+Your database should now be ready to run in CCK version 6.x
+
+================================================================
+
+The 4.7 to 5.x steps are necessary because of significant changes 
+in the database structure between the 4.7 and 6.x versions. These changes
+make it extremely difficult to create an automatic upgrade path that
+will work reliably in every possible situation.
+
+The extra steps in the 5.x to 6.x upgrade are because all modules
+in the modules folder are automatically updated in Drupal 6, even if they
+are not enabled. That means that modules that rely on core CCK may try
+to run their updates even if core CCK is not enabled, and contributed
+CCK modules that have broken updates will have their broken updates
+run even if they are not enabled.
+
+A number of updates are dependent on other updates and won't work
+until previous updates are finished or specific modules are enabled,
+so you may get messages that other modules need to be enabled or that
+update.php needs to be re-run, and you need to follow those instructions
+until all the updates complete.
+
+Taking extra time during the upgrade by leaving modules out of the
+modules folder altogether until you are ready to enable and update them
+should reduce or eliminate update problems.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/content.info b/drupal/sites/default/boinc/modules/contrib/cck/content.info
new file mode 100644
index 0000000..6f398eb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/content.info
@@ -0,0 +1,11 @@
+; $Id$
+name = Content
+description = Allows administrators to define new content types.
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/content.install b/drupal/sites/default/boinc/modules/contrib/cck/content.install
new file mode 100644
index 0000000..9faaac4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/content.install
@@ -0,0 +1,621 @@
+<?php
+// $Id$
+
+function content_requirements($phase) {
+  $requirements = array();
+  // Ensure translations don't break at install time
+  $t = get_t();
+  if (module_exists('views') && (!function_exists('views_api_version') || views_api_version() < 2.0)) {
+    $requirements['cck_views'] = array(
+      'title' => $t('CCK - No Views integration'),
+      'description' => $t("CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."),
+      'severity' => REQUIREMENT_ERROR,
+    );
+  }
+  return $requirements;
+}
+
+/**
+ * 'Safe' version of content_types() to use in updates and installs.
+ *
+ * Can't safely use content_fields() or content_types() in an update to get
+ * a fields array, especially without knowing what field modules are enabled,
+ * or the current state of the database and cache, so create a fields array
+ * from database info that is limited to fields from modules that are
+ * currently enabled.
+ */
+function content_types_install() {
+  drupal_load('module', 'content');
+  module_load_include('inc', 'content', '/includes/content.crud');
+  $module_field_types = $module_widgets = array();
+  foreach (module_list() as $module) {
+    if ($field_type = module_invoke($module, 'field_info')) {
+      $module_field_types[$module] = $field_type;
+    }
+    if ($widget_type = module_invoke($module, 'widget_info')) {
+      $module_widgets[$module] = $widget_type;
+    }
+  }
+  $fields = array();
+  $db_result = db_query("SELECT * FROM {". content_instance_tablename() ."} nfi ".
+    " LEFT JOIN {". content_field_tablename() ."} nf ON nf.field_name = nfi.field_name");
+  while ($row = db_fetch_array($db_result)) {
+    $field = array_merge($row, unserialize($row['global_settings']));
+    unset($field['global_settings']);
+
+    // There may be module data available for currently disabled modules,
+    // or missing module data for currently enabled modules, so start over
+    // to get only field info for enabled modules.
+    unset($field['module']);
+    unset($field['widget_module']);
+    // 'columns' is a reserved word in MySQL4, so our column is named 'db_columns'.
+    $field['columns'] = isset($field['db_columns']) ? $field['db_columns'] : array();
+    unset($field['db_columns']);
+
+    foreach ($module_field_types as $module => $types) {
+      foreach ($types as $type_name => $type) {
+        if ($field['type'] == $type_name) {
+          $field['module'] = $module;
+        }
+      }
+    }
+    foreach ($module_widgets as $module => $types) {
+      foreach ($types as $type_name => $type) {
+        if ($field['widget_type'] == $type_name) {
+          $field['widget_module'] = $module;
+        }
+      }
+    }
+    if (!empty($field['module']) && !empty($field['widget_module'])) {
+      $field['widget_settings'] = unserialize($field['widget_settings']);
+      $field['display_settings'] = unserialize($field['display_settings']);
+      $field['columns'] = (array) module_invoke($field['module'], 'field_settings', 'database columns', $field);
+      $field = content_field_instance_expand($field);
+      $fields[$field['type_name']][$field['field_name']] = $field;
+    }
+  }
+  return $fields;
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function content_install() {
+  variable_set('content_schema_version', 6009);
+  drupal_install_schema('content');
+}
+
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function content_uninstall() {
+  drupal_uninstall_schema('content');
+  // The variable is used during the uninstall process,
+  // so we removed it at the very end.
+  variable_del('content_schema_version');
+  // Remove extra weights.
+  foreach (node_get_types('names') as $type_name) {
+    variable_del("content_extra_weights_$type_name");
+  }
+}
+
+/**
+ * Implementation of hook_enable().
+ */
+function content_enable() {
+  // Make sure old data is emptied out of the caches, since it
+  // may no longer be valid since the module was last enabled,
+  // especially if not all the same field modules are enabled
+  // as before. Especially needed during updates.
+  cache_clear_all('*', 'cache_content', TRUE);
+  content_clear_type_cache(TRUE);
+}
+
+/**
+ * Implementation of hook_disable().
+ */
+function content_disable() {
+  // Make sure old data is emptied out of the caches, since it
+  // may no longer be valid when the module is re-enabled.
+  cache_clear_all('*', 'cache_content', TRUE);
+  content_clear_type_cache(TRUE);
+}
+
+/**
+ * Implementation of hook_schema.
+ */
+function content_schema() {
+
+  // Static (meta) tables.
+
+  $schema['content_node_field'] = array(
+    'fields' => array(
+      'field_name'      => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'type'            => array('type' => 'varchar', 'length' => 127, 'not null' => TRUE, 'default' => ''),
+      'global_settings' => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE, 'serialize' => TRUE),
+      'required'        => array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0),
+      'multiple'        => array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0),
+      'db_storage'      => array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 1),
+      'module'          => array('type' => 'varchar', 'length' => 127, 'not null' => TRUE, 'default' => ''),
+      'db_columns'      => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE, 'serialize' => TRUE),
+      'active'          => array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0),
+      'locked'          => array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0),
+    ),
+    'primary key' => array('field_name'),
+  );
+  $schema['content_node_field_instance'] = array(
+    'fields' => array(
+      'field_name'       => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'type_name'        => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'weight'           => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+      'label'            => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+      'widget_type'      => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'widget_settings'  => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE, 'serialize' => TRUE),
+      'display_settings' => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE, 'serialize' => TRUE),
+      'description'      => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE),
+      'widget_module'    => array('type' => 'varchar', 'length' => 127, 'not null' => TRUE, 'default' => ''),
+      'widget_active'    => array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0),
+    ),
+    'primary key' => array('field_name', 'type_name'),
+  );
+  $schema['cache_content'] = drupal_get_schema_unprocessed('system', 'cache');
+
+  // When the module is first installed, the remaining code in the schema
+  // will create errors, since these tables have not yet been created.
+  // We don't need to create data tables on initial installation anyway
+  // since no fields have been created yet, so just return with this much
+  // of the schema.
+
+  if (!db_table_exists('content_node_field') || !db_table_exists('content_node_field_instance')) {
+    return $schema;
+  }
+
+  // Dynamic (data) tables.
+
+  drupal_load('module', 'content');
+
+  // We can't use many helper functions here, like content_fields() or
+  // content_types() or we risk creating a fatal loop from circular
+  // logic when they call other functions that use this schema, so create
+  // the schema directly from a fresh query of the database.
+
+  // content_table_schema() and content_database_info() have no
+  // circular logic and are safe to use here.
+
+  $db_result = db_query("SELECT * FROM {". content_instance_tablename() ."} nfi ".
+    " LEFT JOIN {". content_field_tablename() ."} nf ON nf.field_name = nfi.field_name WHERE nf.active = 1 AND nfi.widget_active = 1");
+  while ($field = db_fetch_array($db_result)) {
+    // 'columns' is a reserved word in MySQL4, so our db column is named 'db_columns'.
+    $field['columns'] = unserialize($field['db_columns']);
+    unset($field['db_columns']);
+
+    $content_table = _content_tablename($field['type_name'], CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+    $field_table = _content_tablename($field['field_name'], CONTENT_DB_STORAGE_PER_FIELD);
+
+
+    // We always add a 'per content type' table for each content type that
+    // has fields.
+    if (!isset($schema[$content_table])) {
+      $schema[$content_table] = content_table_schema();
+    }
+
+    $base_schema = content_table_schema($field);
+    if ($field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD) {
+      // Per-field storage: add the 'per field' table if needed.
+      if (!isset($schema[$field_table])) {
+        $schema[$field_table] = $base_schema;
+      }
+    }
+    else {
+      // Per-type storage: merge the information for the field
+      // in the existing table.
+      $schema[$content_table]['fields'] = array_merge($schema[$content_table]['fields'], $base_schema['fields']);
+      $schema[$content_table]['content fields'] = array_merge($schema[$content_table]['content fields'], $base_schema['content fields']);
+    }
+  }
+  return $schema;
+}
+
+function content_update_last_removed() {
+  return 1008;
+}
+
+/**
+ * Helper function for module updates :
+ * - checks no updates are pending for content.module
+ * - checks content module and the module being updated are both enabled.
+ *
+ * @param $module
+ *   The name of the module being updated.
+ */
+function content_check_update($module = NULL) {
+  $ret = array();
+  // Check that modules are enabled before running their updates.
+  if (!module_exists('content') || ($module && !module_exists($module))) {
+    drupal_set_message(t("Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates.", array('@admin-modules-path' => url('admin/build/modules'), '@update-php' => base_path() .'update.php?op=selection')), 'warning', FALSE);
+    // The content module is not enabled, nothing else can happen.
+    if ($module && !module_exists('content') && module_exists($module)) {
+      $query_message = t('!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run.', array('!module' => $module));
+    }
+    // The requested module is not enabled, which may be intentional.
+    // Just let the user know there are updates to be processed if enabled later.
+    else {
+      $query_message = t('!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run.', array('!module' => $module ? $module : 'content'));
+    }
+    $ret['#abort'] = array('success' => FALSE, 'query' => $query_message);
+    return $ret;
+  }
+  // Check that content.module is up-to-date before running field module updates.
+  if ($module && (drupal_get_installed_schema_version('content', TRUE) < max(drupal_get_schema_versions('content')))) {
+    drupal_set_message(t('Some updates are still pending. Please return to <a href="@update-php">update.php</a> and run the remaining updates.', array('@update-php' => base_path() .'update.php?op=selection')), 'warning', FALSE);
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('Some updates are still pending.<br/>Please re-run the update script.'));
+    return $ret;
+  }
+  // If everything is OK and updates are not aborted, make sure
+  // content_associate_fields() gets run. With all the complexity of
+  // the dependent updates, it can get missed when an update is aborted.
+  // It won't hurt anything to do this more than once in order to be sure
+  // it doesn't get skipped. Without this step, we can end up with
+  // field modules that are enabled and updated, but not marked as active
+  // in the content_node_field table.
+  if ($module and module_exists($module)) {
+    content_associate_fields($module);
+  }
+}
+
+/**
+ * Add module name to fields table to make it easier to identify the fields to delete when a module
+ * is uninstalled.
+ *
+ * Needed because the value drops out of content_info() when module is disabled, so there
+ * is no other way to find the associated fields.
+ */
+function content_update_6000() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+
+  drupal_load('module', 'content');
+  if (db_column_exists(content_field_tablename(), 'active')) {
+    return $ret;
+  }
+  db_add_field($ret, content_field_tablename(), 'module', array('type' => 'varchar', 'length' => 127, 'not null' => TRUE, 'default' => ''));
+  db_add_field($ret, content_field_tablename(), 'db_columns', array('type' => 'text', 'size' => 'medium', 'not null' => TRUE, 'initial' => ''));
+  db_add_field($ret, content_field_tablename(), 'active', array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0));
+  db_add_field($ret, content_instance_tablename(), 'widget_module', array('type' => 'varchar', 'length' => 127, 'not null' => TRUE, 'default' => ''));
+  db_add_field($ret, content_instance_tablename(), 'widget_active', array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0));
+
+  // This will update the table for any modules enabled at this time.
+  foreach (module_list() as $module) {
+    content_associate_fields($module);
+  }
+
+  // Fix the cache_content schema
+  if (db_table_exists('cache_content')) {
+    db_drop_table($ret, 'cache_content');
+  }
+  db_create_table($ret, 'cache_content', drupal_get_schema_unprocessed('system', 'cache'));
+  variable_set('content_schema_version', 6000);
+
+  // The cache table had to be used to store data until this update ran,
+  // so clear cache out now that we're switching back to the cache_content table.
+  $ret[] = update_sql('DELETE FROM {cache}');
+
+  return $ret;
+}
+
+/**
+ * Rename node_field and node_field_instance tables.
+ *
+ * This is a carryover from when the data tables were renamed,
+ * postponed so we wouldn't create any more havoc than necessary
+ * until a major version change.
+ *
+ * Using 'content_node_field' instead of 'content_field'
+ * to avoid conflicts with field tables that will be prefixed
+ * with 'content_field'.
+ */
+function content_update_6001() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+  drupal_load('module', 'content');
+  if (db_table_exists('content_node_field')) {
+    return $ret;
+  }
+  db_rename_table($ret, 'node_field', 'content_node_field');
+  db_rename_table($ret, 'node_field_instance', 'content_node_field_instance');
+  variable_set('content_schema_version', 6001);
+  content_clear_type_cache(TRUE);
+  return $ret;
+}
+
+/**
+ * Get rid of automatic per content tables for content types that have no fields.
+ * Switching to adding those tables only when needed.
+ */
+function content_update_6002() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+
+  drupal_load('module', 'content');
+  $db_types = content_types_install();
+  $field_types = array();
+
+  $result = db_query("SELECT DISTINCT type_name FROM {". content_instance_tablename() ."}");
+  while ($type = db_fetch_array($result)) {
+    $field_types[] = $type['type_name'];
+  }
+
+  foreach ($db_types as $content_type => $content_info) {
+    if (!in_array($content_type, $field_types)) {
+      $table = _content_tablename($content_type, CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+      if (db_table_exists($table)) {
+        db_drop_table($ret, $table);
+      }
+    }
+  }
+  variable_set('content_schema_version', 6002);
+  content_clear_type_cache(TRUE);
+  return $ret;
+}
+
+/**
+ * 'db_columns' column 1st got introduced as 'columns', which is forbidden in MySQL 4.
+ * This update function will only be useful for early D6 testers...
+ */
+function content_update_6003() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+  if (db_column_exists('content_node_field', 'columns')) {
+    db_change_field($ret, 'content_node_field', 'columns', 'db_columns', array('type' => 'text', 'size' => 'medium', 'not null' => TRUE));
+  }
+  variable_set('content_schema_version', 6003);
+  return $ret;
+}
+
+/**
+ * Index the 'nid' column on data tables to optimize node deletion.
+ * Large tables might deserve a multipass update.
+ */
+function content_update_6004(&$sandbox) {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+
+  // Do nothing if the indexes were already created by D5's content_update_1009.
+  if (variable_get('content_update_1009', FALSE)) {
+    return $ret;
+  }
+
+  // Gather list of tables.
+  if (!isset($sandbox['tables'])) {
+    drupal_load('module', 'content');
+    $sandbox['tables'] = array();
+    $result = db_query('SELECT * FROM {'. content_instance_tablename() .'} nfi '.
+      ' LEFT JOIN {'. content_field_tablename() .'} nf ON nf.field_name = nfi.field_name');
+    while ($field = db_fetch_array($result)) {
+      if ($field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD) {
+        $table = _content_tablename($field['field_name'], CONTENT_DB_STORAGE_PER_FIELD);
+      }
+      else {
+        $table = _content_tablename($field['type_name'], CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+      }
+      $sandbox['tables'][$table] = $table;
+    }
+    $sandbox['count'] = count($sandbox['tables']);
+  }
+
+  // One pass : add index on one table.
+  if ($table = array_shift($sandbox['tables'])) {
+    db_add_index($ret, $table, 'nid', array('nid'));
+  }
+
+  if ($sandbox['count']) {
+    $ret['#finished'] = 1 - count($sandbox['tables']) / $sandbox['count'];
+  }
+  variable_set('content_schema_version', 6004);
+  return $ret;
+}
+
+/**
+ * Add 'locked' property for fields.
+ */
+function content_update_6005() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+  drupal_load('module', 'content');
+  db_add_field($ret, content_field_tablename(), 'locked', array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0));
+  variable_set('content_schema_version', 6005);
+  return $ret;
+}
+
+/**
+ * Make sure the 'locked' column is NOT NULL (error in previous content_update_6005().
+ */
+function content_update_6006() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+  drupal_load('module', 'content');
+  db_change_field($ret, content_field_tablename(), 'locked', 'locked', array('type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0));
+  variable_set('content_schema_version', 6006);
+  return $ret;
+}
+
+/**
+ * Dummy update function to make sure the theme registry and css / JS aggregated files
+ * are updated.
+ */
+function content_update_6007() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  variable_set('content_schema_version', 6007);
+  return array();
+}
+
+/**
+ * Dummy update function to make sure schema version gets updated.
+ */
+function content_update_6008() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  variable_set('content_schema_version', 6008);
+  return array();
+}
+
+/**
+ * Add the 'exclude from $content' display setting to all existing field instances.
+ */
+function content_update_6009() {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+
+  $ret = array();
+  $result = db_query("SELECT *  FROM {content_node_field_instance}");
+  while ($type = db_fetch_array($result)) {
+    $new_settings = array();
+    $display_settings = unserialize($type['display_settings']);
+    if (!empty($display_settings)) {
+      foreach ($display_settings as $key => $val) {
+        $new_settings[$key] = $val;
+        if ($key !== 'label' && is_array($val)) {
+          $new_settings[$key]['exclude'] = 0;
+        }
+      }
+    }
+    else {
+      $new_settings = array(
+        'label' => array('format' => 'above'),
+        'full' => array('format' => 'default', 'exclude' => 0),
+        'teaser' => array('format' => 'default', 'exclude' => 0),
+        );
+    }
+    db_query("UPDATE {content_node_field_instance} SET display_settings='%s' WHERE field_name='%s' AND type_name='%s'", serialize($new_settings), $type['field_name'], $type['type_name']);
+  }
+  variable_set('content_schema_version', 6009);
+  return $ret;
+}
+
+/**
+ * Fix multiple serialization caused by per-field to per-type migration.
+ * See http://drupal.org/node/407446.
+ */
+function content_update_6010(&$sandbox) {
+  if ($abort = content_check_update()) {
+    return $abort;
+  }
+  $ret = array();
+
+  drupal_load('module', 'content');
+
+  // Gather list of tables and columns that need to be updated.
+  if (!isset($sandbox['tables'])) {
+    $sandbox['tables'] = array();
+    $fields = content_fields();
+    foreach ($fields as $name => $field) {
+      $db_info = content_database_info($field);
+      foreach ($db_info['columns'] as $column => $attributes) {
+        if (isset($attributes['serialize']) && $attributes['serialize']) {
+          $sandbox['tables'][$db_info['table']]['table'] = $db_info['table'];
+          $sandbox['tables'][$db_info['table']]['columns'][] = $attributes['column'];
+          $sandbox['tables'][$db_info['table']]['multiple'] = $field['multiple'];
+        }
+      }
+    }
+    $sandbox['count'] = count($sandbox['tables']);
+    $sandbox['current_vid'] = 0;
+    $sandbox['current_delta'] = 0;
+  }
+
+  // Number of rows to fix in one pass.
+  $limit = 500;
+  // Start correcting data.
+  if ($table_info = array_shift($sandbox['tables'])) {
+    $table = $table_info['table'];
+    $columns = $table_info['columns'];
+
+    if ($table_info['multiple']) {
+      $query = "SELECT * FROM {" . $table . "} WHERE (vid = %d AND delta > %d) OR (vid > %d) ORDER BY vid ASC, delta ASC";
+      $args = array($sandbox['current_vid'], $sandbox['current_delta'], $sandbox['current_vid']);
+    }
+    else {
+      $query = "SELECT * FROM {" . $table . "} WHERE vid > %d ORDER BY vid ASC";
+      $args = array($sandbox['current_vid']);
+    }
+    $result = db_query_range($query, $args, 0, $limit);
+    $count = 0;
+    while ($row = db_fetch_array($result)) {
+      $update_query = $update_args = array();
+      foreach ($columns as $column) {
+        $data = $row[$column];
+        // No need to do anything if the data is NULL.
+        if (!empty($data)) {
+          // Unserialize until we get something that is not a string
+          while (is_string($data)) {
+            $unserialized = @unserialize($data);
+            if ($unserialized !== FALSE) {
+              $data = $unserialized;
+            }
+            else {
+              // TODO : test with a serialized string, just in case...
+              break;
+            }
+          }
+          // Re-serialize once.
+          $data = serialize($data);
+          // If we end up with something different than what we started with, update.
+          if ($data !== $row[$column]) {
+            $update_query[] = "$column = '%s'";
+            $update_args[] = $data;
+          }
+        }
+      }
+      if ($update_query) {
+        $update_args[] = $row['vid'];
+        db_query("UPDATE {" . $table . "} SET ". implode(', ', $update_query) ." WHERE vid = %d", $update_args);
+      }
+      $sandbox['current_vid'] = $row['vid'];
+      $sandbox['current_delta'] = isset($row['delta']) ? $row['delta'] : 0;
+      $count++;
+    }
+    if ($count == $limit) {
+      // Add the table back into the list of tables to be processed if rows remain.
+      array_unshift($sandbox['tables'], $table_info);
+    }
+    else {
+      // Done with this table: reset vid and delta markers.
+      $sandbox['current_vid'] = 0;
+      $sandbox['current_delta'] = 0;
+      $ret[] = array('success' => TRUE, 'query' => "Fixed serialized values in table $table");
+    }
+  }
+
+  if ($sandbox['count']) {
+    $ret['#finished'] = 1 - count($sandbox['tables']) / $sandbox['count'];
+  }
+  return $ret;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/content.js b/drupal/sites/default/boinc/modules/contrib/cck/content.js
new file mode 100644
index 0000000..72a2f2a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/content.js
@@ -0,0 +1,80 @@
+// $Id$
+
+Drupal.behaviors.cckManageFields = function(context) {
+  attachUpdateSelects(context);
+};
+
+function attachUpdateSelects(context) {
+  var widgetTypes = Drupal.settings.contentWidgetTypes;
+  var fields = Drupal.settings.contentFields;
+
+  // Store the default text of widget selects.
+  $('#content-field-overview .content-widget-type-select', context).each(function() {
+    this.initialValue = this.options[0].text;
+  });
+
+  // 'Field type' select updates its 'Widget' select.
+  $('#content-field-overview .content-field-type-select', context).each(function() {
+    this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
+
+    $(this).change(function() {
+      var selectedFieldType = this.options[this.selectedIndex].value;
+      var options = (selectedFieldType in widgetTypes) ? widgetTypes[selectedFieldType] : [ ];
+      this.targetSelect.contentPopulateOptions(options);
+    });
+
+    // Trigger change on initial pageload to get the right widget options
+    // when field type comes pre-selected (on failed validation).
+    $(this).trigger('change');
+  });
+
+  // 'Existing field' select updates its 'Widget' select and 'Label' textfield.
+  $('#content-field-overview .content-field-select', context).each(function() {
+    this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
+    this.targetTextfield = $('.content-label-textfield', $(this).parents('tr').eq(0));
+
+    $(this).change(function(e, updateText) {
+      var updateText = (typeof(updateText) == 'undefined') ? true : updateText;
+      var selectedField = this.options[this.selectedIndex].value;
+      var selectedFieldType = (selectedField in fields) ? fields[selectedField].type : null;
+      var selectedFieldWidget = (selectedField in fields) ? fields[selectedField].widget : null
+      var options = (selectedFieldType && (selectedFieldType in widgetTypes)) ? widgetTypes[selectedFieldType] : [ ];
+      this.targetSelect.contentPopulateOptions(options, selectedFieldWidget);
+
+      if (updateText) {
+        $(this.targetTextfield).attr('value', (selectedField in fields) ? fields[selectedField].label : '');
+      }
+    });
+
+    // Trigger change on initial pageload to get the right widget options
+    // and label when field type comes pre-selected (on failed validation).
+    $(this).trigger('change', false);
+  });
+}
+
+jQuery.fn.contentPopulateOptions = function(options, selected) {
+  return this.each(function() {
+    var disabled = false;
+    if (options.length == 0) {
+      options = [this.initialValue];
+      disabled = true;
+    }
+
+    // If possible, keep the same widget selected when changing field type.
+    // This is based on textual value, since the internal value might be
+    // different (optionwidgets_buttons vs. nodereference_buttons).
+    var previousSelectedText = this.options[this.selectedIndex].text;
+
+    var html = '';
+    jQuery.each(options, function(value, text) {
+      // Figure out which value should be selected. The 'selected' param
+      // takes precedence.
+      var is_selected = ((typeof(selected) !== 'undefined' && value == selected) || (typeof(selected) == 'undefined' && text == previousSelectedText));
+      html += '<option value="' + value + '"' + (is_selected ? ' selected="selected"' : '') +'>' + text + '</option>';
+    });
+
+    $(this)
+      .html(html)
+      .attr('disabled', disabled ? 'disabled' : '');
+  });
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/content.module b/drupal/sites/default/boinc/modules/contrib/cck/content.module
new file mode 100644
index 0000000..b679339
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/content.module
@@ -0,0 +1,2709 @@
+<?php
+// $Id$
+/**
+ * @file
+ * Allows administrators to associate custom fields to content types.
+ */
+
+define('CONTENT_DB_STORAGE_PER_FIELD', 0);
+define('CONTENT_DB_STORAGE_PER_CONTENT_TYPE', 1);
+
+define('CONTENT_CALLBACK_NONE', 0x0001);
+define('CONTENT_CALLBACK_DEFAULT', 0x0002);
+define('CONTENT_CALLBACK_CUSTOM', 0x0004);
+
+define('CONTENT_HANDLE_CORE', 0x0001);
+define('CONTENT_HANDLE_MODULE', 0x0002);
+
+function content_help($path, $arg) {
+  switch ($path) {
+    case 'admin/help#content':
+      $output = '<p>'. t('The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default "Title" and "Body" may be added. CCK features are [...]
+      $output .= '<p>'. t('When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a "person" may have multiple e-mail addresses) or a single value (i.e., an "employee" has a single employee identification number). As you add and edit fields [...]
+      $output .= '<p>'. t('Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href="@modules">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:', array('@modules' => url('admin/build/modules'))) .'</p>';
+      $output .= '<ul>';
+      $output .= '<li>'. t('<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available.') .'</li>';
+      $output .= '<li>'. t("<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values.") .'</li>';
+      $output .= '<li>'. t('<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple "employee" nodes may contain a <em>nodereference</em> field linking to an "employer" node).') .'</li>';
+      $output .= '<li>'. t('<em>userreference</em>, which creates custom references to your sites\' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site\'s users and posts. To track user involvement in a post beyond Drupal\'s standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named "Edited by" to a content type to store a link to an editor\'s user account page.') .'</li>';
+      $output .= '<li>'. t('<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module.') .'</li>';
+      $output .= '</ul>';
+      $output .= '<p>'. t('For more information, see the online handbook entry for <a href="@handbook-cck">CCK</a> or the <a href="@project-cck">CCK project page</a>.', array('@handbook-cck' => 'http://drupal.org/handbook/modules/cck', '@project-cck' => 'http://drupal.org/project/cck')) .'</p>';
+      return $output;
+  }
+}
+
+/**
+ * Implementation of hook_flush_caches.
+ */
+function content_flush_caches() {
+  return array(content_cache_tablename());
+}
+
+/**
+ * Implementation of hook_init().
+ */
+function content_init() {
+  drupal_add_css(drupal_get_path('module', 'content') .'/theme/content-module.css');
+  if (module_exists('token') && !function_exists('content_token_values')) {
+    module_load_include('inc', 'content', 'includes/content.token');
+  }
+  if (module_exists('diff') && !function_exists('content_diff')) {
+    module_load_include('inc', 'content', 'includes/content.diff');
+  }
+}
+
+/**
+ * Implementation of hook_perm().
+ */
+function content_perm() {
+  return array('Use PHP input for field settings (dangerous - grant with care)');
+}
+
+/**
+ * Implementation of hook_menu_alter().
+ */
+function content_menu_alter(&$items) {
+  // Customize the content types page with our own callback
+  $items['admin/content/types']['page callback'] = 'content_types_overview';
+  $items['admin/content/types']['file'] = 'content.admin.inc';
+  $items['admin/content/types']['file path'] = drupal_get_path('module', 'content') .'/includes';
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function content_menu() {
+  $items = array();
+  $items['admin/content/types/fields'] = array(
+    'title' => 'Fields',
+    'page callback' => 'content_fields_list',
+    'access arguments' => array('administer content types'),
+    'file' => 'includes/content.admin.inc',
+    'type' => MENU_LOCAL_TASK,
+  );
+  // Callback for AHAH add more buttons.
+  $items['content/js_add_more'] = array(
+    'page callback' => 'content_add_more_js',
+    'access arguments' => array('access content'),
+    'file' => 'includes/content.node_form.inc',
+    'type' => MENU_CALLBACK,
+  );
+
+  // Make sure this doesn't fire until content_types is working,
+  // and tables are updated, needed to avoid errors on initial installation.
+  if (!defined('MAINTENANCE_MODE') && variable_get('content_schema_version', -1) >= 6007) {
+    foreach (node_get_types() as $type) {
+      $type_name = $type->type;
+      $content_type = content_types($type_name);
+      $type_url_str = $content_type['url_str'];
+      $items['admin/content/node-type/'. $type_url_str .'/fields'] = array(
+        'title' => 'Manage fields',
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('content_field_overview_form', $type_name),
+        'access arguments' => array('administer content types'),
+        'file' => 'includes/content.admin.inc',
+        'type' => MENU_LOCAL_TASK,
+        'weight' => 1,
+      );
+      $items['admin/content/node-type/'. $type_url_str .'/display'] = array(
+        'title' => 'Display fields',
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('content_display_overview_form', $type_name),
+        'access arguments' => array('administer content types'),
+        'file' => 'includes/content.admin.inc',
+        'type' => MENU_LOCAL_TASK,
+        'weight' => 2,
+      );
+      $contexts = content_build_modes('_tabs');
+      foreach ($contexts as $key => $tab) {
+        $items['admin/content/node-type/'. $type_url_str .'/display/'. $key] = array(
+          'title' => $tab['title'],
+          'page arguments' => array('content_display_overview_form', $type_name, $key),
+          'access arguments' => array('administer content types'),
+          'type' => $key == 'basic' ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,
+          'weight' => $key == 'basic' ? 0 : 1,
+        );
+      }
+      // Cast as an array in case this is called before any fields have
+      // been added, like when a new content type is created.
+      foreach ((array) $content_type['fields'] as $field) {
+        $field_name = $field['field_name'];
+        $items['admin/content/node-type/'. $type_url_str .'/fields/'. $field_name] = array(
+          'title' => $field['widget']['label'],
+          'page callback' => 'drupal_get_form',
+          'page arguments' => array('content_field_edit_form', $type_name, $field_name),
+          'access arguments' => array('administer content types'),
+          'file' => 'includes/content.admin.inc',
+          'type' => MENU_LOCAL_TASK,
+        );
+        $items['admin/content/node-type/'. $type_url_str .'/fields/'. $field_name .'/remove'] = array(
+          'title' => 'Remove field',
+          'page callback' => 'drupal_get_form',
+          'page arguments' => array('content_field_remove_form', $type_name, $field_name),
+          'access arguments' => array('administer content types'),
+          'file' => 'includes/content.admin.inc',
+          'type' => MENU_CALLBACK,
+        );
+      }
+    }
+  }
+  return $items;
+}
+
+/**
+ * Hook elements().
+ *
+ * Used to add multiple value processing, validation, and themes.
+ *
+ * FAPI callbacks can be declared here, and the element will be
+ * passed to those callbacks.
+ *
+ * Drupal will automatically theme the element using a theme with
+ * the same name as the hook_elements key.
+ */
+function content_elements() {
+  return array(
+    'content_multiple_values' => array(),
+    'content_field' => array(),
+  );
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function content_theme() {
+  $path = drupal_get_path('module', 'content') .'/theme';
+  require_once "./$path/theme.inc";
+
+  return array(
+    'content_field' => array(
+      'template' => 'content-field',
+      'arguments' => array('element' => NULL),
+      'path' => $path,
+    ),
+    'content_overview_links' => array(
+      'arguments' => array(),
+    ),
+    'content_field_overview_form' => array(
+      'template' => 'content-admin-field-overview-form',
+      'file' => 'theme.inc',
+      'path' => $path,
+      'arguments' => array('form' => NULL),
+    ),
+    'content_display_overview_form' => array(
+      'template' => 'content-admin-display-overview-form',
+      'file' => 'theme.inc',
+      'path' => $path,
+      'arguments' => array('form' => NULL),
+    ),
+    'content_exclude' => array(
+      'arguments' => array('content' => NULL, 'object' => array(), 'context' => NULL),
+    ),
+    'content_view_multiple_field' => array(
+      'arguments' => array('items' => NULL, 'field' => NULL, 'data' => NULL),
+    ),
+    'content_multiple_values' => array(
+      'arguments' => array('element' => NULL),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function content_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'content') . '/includes/views',
+  );
+}
+
+/**
+ * Implementation of hook_ctools_plugin_directory().
+ */
+function content_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && $plugin == 'content_types') {
+    return 'includes/panels/' . $plugin;
+  }
+}
+
+/**
+ * Load data for a node type's fields.
+ * Implementation of hook_nodeapi 'load' op.
+ *
+ * When loading one of the content.module nodes, we need to let each field handle
+ * its own loading. This can make for a number of queries in some cases, so we
+ * cache the loaded object structure and invalidate it during the update process.
+ */
+function content_load(&$node) {
+  $cid = 'content:'. $node->nid .':'. $node->vid;
+  if ($cached = cache_get($cid, content_cache_tablename())) {
+    foreach ($cached->data as $key => $value) {
+      $node->$key = $value;
+    }
+  }
+  else {
+    $default_additions = _content_field_invoke_default('load', $node);
+    if ($default_additions) {
+      foreach ($default_additions as $key => $value) {
+        $node->$key = $value;
+      }
+    }
+    $additions = _content_field_invoke('load', $node);
+    if ($additions) {
+      foreach ($additions as $key => $value) {
+        $node->$key = $value;
+        $default_additions[$key] = $value;
+      }
+    }
+    cache_set($cid, $default_additions, content_cache_tablename());
+  }
+}
+
+/**
+ * Implementation of hook_nodeapi 'validate' op.
+ *
+ */
+function content_validate(&$node, $form = NULL) {
+  _content_field_invoke('validate', $node, $form);
+  _content_field_invoke_default('validate', $node, $form);
+}
+
+/**
+ * Implementation of hook_nodeapi 'presave' op.
+ *
+ */
+function content_presave(&$node) {
+  _content_field_invoke('presave', $node);
+  _content_field_invoke_default('presave', $node);
+}
+
+/**
+ * Implementation of hook_nodeapi 'insert' op.
+ *
+ * Insert node type fields.
+ */
+function content_insert(&$node) {
+  _content_field_invoke('insert', $node);
+  _content_field_invoke_default('insert', $node);
+}
+
+/**
+ * Implementation of hook_nodeapi 'update' op.
+ *
+ * Update node type fields.
+ */
+function content_update(&$node) {
+  _content_field_invoke('update', $node);
+  _content_field_invoke_default('update', $node);
+  cache_clear_all('content:'. $node->nid .':'. $node->vid, content_cache_tablename());
+}
+
+/**
+ * Implementation of hook_nodeapi 'delete' op.
+ *
+ * Delete node type fields.
+ */
+function content_delete(&$node) {
+  _content_field_invoke('delete', $node);
+  _content_field_invoke_default('delete', $node);
+  cache_clear_all('content:'. $node->nid .':', content_cache_tablename(), TRUE);
+}
+
+/**
+ * Implementation of hook_nodeapi 'delete_revision' op.
+ *
+ * Delete node type fields for a revision.
+ */
+function content_delete_revision(&$node) {
+  _content_field_invoke('delete revision', $node);
+  _content_field_invoke_default('delete revision', $node);
+  cache_clear_all('content:'. $node->nid .':'. $node->vid, content_cache_tablename());
+}
+
+/**
+ * Implementation of hook_nodeapi 'view' op.
+ *
+ * Generate field render arrays.
+ */
+function content_view(&$node, $teaser = FALSE, $page = FALSE) {
+  // Let field modules sanitize their data for output.
+  _content_field_invoke('sanitize', $node, $teaser, $page);
+
+  // Merge fields.
+  $additions = _content_field_invoke_default('view', $node, $teaser, $page);
+  $node->content = array_merge((array) $node->content, $additions);
+}
+
+/**
+ * Render a single field, fully themed with label and multiple values.
+ *
+ * To be used by third-party code (Views, Panels...) that needs to output
+ * an isolated field. Do *not* use inside node templates, use the
+ * $FIELD_NAME_rendered variables instead.
+ *
+ * By default, the field is displayed using the settings defined for the
+ * 'full node' or 'teaser' contexts (depending on the value of the $teaser param).
+ * Set $node->build_mode to a different value to use a different context.
+ *
+ * Different settings can be specified by adjusting $field['display_settings'].
+ *
+ * @param $field
+ *   The field definition.
+ * @param $node
+ *   The node containing the field to display. Can be a 'pseudo-node', containing
+ *   at least 'type', 'nid', 'vid', and the field data.
+ * @param $teaser
+ * @param $page
+ *   Similar to hook_nodeapi('view')
+ * @return
+ *   The themed output for the field.
+ */
+function content_view_field($field, $node, $teaser = FALSE, $page = FALSE) {
+  $output = '';
+  if (isset($node->$field['field_name'])) {
+    $items = $node->$field['field_name'];
+
+    // Use 'full'/'teaser' if not specified otherwise.
+    $node->build_mode = isset($node->build_mode) ? $node->build_mode : NODE_BUILD_NORMAL;
+
+    // One-field equivalent to _content_field_invoke('sanitize').
+    $field_types = _content_field_types();
+    $module = $field_types[$field['type']]['module'];
+    $function = $module .'_field';
+    if (function_exists($function)) {
+      $function('sanitize', $node, $field, $items, $teaser, $page);
+      $node->$field['field_name'] = $items;
+    }
+
+    $view = content_field('view', $node, $field, $items, $teaser, $page);
+    // content_field('view') adds a wrapper to handle variables and 'excluded'
+    // fields for node templates. We bypass it and render the actual field.
+    $output = drupal_render($view[$field['field_name']]['field']);
+  }
+  return $output;
+}
+
+/**
+ * Implementation of hook_nodeapi 'alter' op.
+ *
+ * Add back the formatted values in the 'view' element for all fields,
+ * so that node templates can use it.
+ */
+function content_alter(&$node, $teaser = FALSE, $page = FALSE) {
+  _content_field_invoke_default('alter', $node, $teaser, $page);
+}
+
+/**
+ * Implementation of hook_nodeapi 'prepare translation' op.
+ *
+ * Generate field render arrays.
+ */
+function content_prepare_translation(&$node) {
+  $default_additions = _content_field_invoke_default('prepare translation', $node);
+  $additions = _content_field_invoke('prepare translation', $node);
+  // Merge module additions after the default ones to enable overriding
+  // of field values.
+  $node = (object) array_merge((array) $node, $default_additions, $additions);
+}
+
+/**
+ * Implementation of hook_nodeapi().
+ */
+function content_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
+  // Prevent against invalid 'nodes' built by broken 3rd party code.
+  if (isset($node->type)) {
+    $type = content_types($node->type);
+    // Save cycles if the type has no CCK fields.
+    if (!empty($type['fields'])) {
+      $callback = 'content_'. str_replace(' ', '_', $op);
+      if (function_exists($callback)) {
+        $callback($node, $a3, $a4);
+      }
+    }
+
+    // Special case for 'view' op, we want to adjust weights of non-cck fields
+    // even if there are no actual fields for this type.
+    if ($op == 'view') {
+      $node->content['#pre_render'][] = 'content_alter_extra_weights';
+      $node->content['#content_extra_fields'] = $type['extra'];
+    }
+  }
+}
+
+/**
+ *  Implementation of hook_form_alter().
+ */
+function content_form_alter(&$form, $form_state, $form_id) {
+  if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] .'_node_form' == $form_id) {
+    $type = content_types($form['#node']->type);
+    if (!empty($type['fields'])) {
+      module_load_include('inc', 'content', 'includes/content.node_form');
+      // Merge field widgets.
+      $form = array_merge($form, content_form($form, $form_state));
+    }
+    $form['#pre_render'][] = 'content_alter_extra_weights';
+    $form['#content_extra_fields'] = $type['extra'];
+  }
+}
+
+/**
+ * Pre-render callback to adjust weights of non-CCK fields.
+ */
+function content_alter_extra_weights($elements) {
+  if (isset($elements['#content_extra_fields'])) {
+    foreach ($elements['#content_extra_fields'] as $key => $value) {
+      // Some core 'fields' use a different key in node forms and in 'view'
+      // render arrays. Check we're not on a form first.
+      if (!isset($elements['#build_id']) && isset($value['view']) && isset($elements[$value['view']])) {
+        $elements[$value['view']]['#weight'] = $value['weight'];
+      }
+      elseif (isset($elements[$key])) {
+        $elements[$key]['#weight'] = $value['weight'];
+      }
+    }
+  }
+  return $elements;
+}
+
+/**
+ * Proxy function to call content_add_more_submit(), because it might not be
+ * included yet when the form is processed and invokes the callback.
+ */
+function content_add_more_submit_proxy($form, &$form_state) {
+  module_load_include('inc', 'content', 'includes/content.node_form');
+  content_add_more_submit($form, $form_state);
+}
+
+/**
+ * Theme an individual form element.
+ *
+ * Combine multiple values into a table with drag-n-drop reordering.
+ */
+function theme_content_multiple_values($element) {
+  $field_name = $element['#field_name'];
+  $field = content_fields($field_name);
+  $output = '';
+
+  if ($field['multiple'] >= 1) {
+    $table_id = $element['#field_name'] .'_values';
+    $order_class = $element['#field_name'] .'-delta-order';
+    $required = !empty($element['#required']) ? '<span class="form-required" title="'. t('This field is required.') .'">*</span>' : '';
+
+    $header = array(
+      array(
+        'data' => t('!title: !required', array('!title' => $element['#title'], '!required' => $required)),
+        'colspan' => 2
+      ),
+      t('Order'),
+    );
+    $rows = array();
+
+    // Sort items according to '_weight' (needed when the form comes back after
+    // preview or failed validation)
+    $items = array();
+    foreach (element_children($element) as $key) {
+      if ($key !== $element['#field_name'] .'_add_more') {
+        $items[] = &$element[$key];
+      }
+    }
+    usort($items, '_content_sort_items_value_helper');
+
+    // Add the items as table rows.
+    foreach ($items as $key => $item) {
+      $item['_weight']['#attributes']['class'] = $order_class;
+      $delta_element = drupal_render($item['_weight']);
+      $cells = array(
+        array('data' => '', 'class' => 'content-multiple-drag'),
+        drupal_render($item),
+        array('data' => $delta_element, 'class' => 'delta-order'),
+      );
+      $rows[] = array(
+        'data' => $cells,
+        'class' => 'draggable',
+      );
+    }
+
+    $output .= theme('table', $header, $rows, array('id' => $table_id, 'class' => 'content-multiple-table'));
+    $output .= $element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '';
+    $output .= drupal_render($element[$element['#field_name'] .'_add_more']);
+
+    drupal_add_tabledrag($table_id, 'order', 'sibling', $order_class);
+  }
+  else {
+    foreach (element_children($element) as $key) {
+      $output .= drupal_render($element[$key]);
+    }
+  }
+
+  return $output;
+}
+
+/**
+ * Modules notify Content module when uninstalled, disabled, etc.
+ *
+ * @param string $op
+ *   the module operation: uninstall, install, enable, disable
+ * @param string $module
+ *   the name of the affected module.
+ * @TODO
+ *   figure out exactly what needs to be done by content module when
+ *   field modules are installed, uninstalled, enabled or disabled.
+ */
+function content_notify($op, $module) {
+  switch ($op) {
+    case 'install':
+      content_clear_type_cache();
+      break;
+    case 'uninstall':
+      module_load_include('inc', 'content', 'includes/content.crud');
+      content_module_delete($module);
+      break;
+    case 'enable':
+      content_associate_fields($module);
+      content_clear_type_cache();
+      break;
+    case 'disable':
+      // When CCK modules are disabled before content module's update is run
+      // to add the active column, we can't do this.
+      if (variable_get('content_schema_version', -1) < 6007) {
+        return FALSE;
+      }
+      db_query("UPDATE {". content_field_tablename() ."} SET active=0 WHERE module='%s'", $module);
+      db_query("UPDATE {". content_instance_tablename() ."} SET widget_active=0 WHERE widget_module='%s'", $module);
+      content_clear_type_cache(TRUE);
+      break;
+  }
+}
+
+/**
+ * Allows a module to update the database for fields and columns it controls.
+ *
+ * @param string $module
+ *   The name of the module to update on.
+ */
+function content_associate_fields($module) {
+  // When CCK modules are enabled before content module's update is run,
+  // to add module and active columns, we can't do this.
+  if (variable_get('content_schema_version', -1) < 6007) {
+    return FALSE;
+  }
+  $module_fields = module_invoke($module, 'field_info');
+  if ($module_fields) {
+    foreach ($module_fields as $name => $field_info) {
+      watchdog('content', 'Updating field type %type with module %module.', array('%type' => $name, '%module' => $module));
+      db_query("UPDATE {". content_field_tablename() ."} SET module = '%s', active = %d WHERE type = '%s'", $module, 1, $name);
+    }
+  }
+  $module_widgets = module_invoke($module, 'widget_info');
+  if ($module_widgets) {
+    foreach ($module_widgets as $name => $widget_info) {
+      watchdog('content', 'Updating widget type %type with module %module.', array('%type' => $name, '%module' => $module));
+      db_query("UPDATE {". content_instance_tablename() ."} SET widget_module = '%s', widget_active = %d WHERE widget_type = '%s'", $module, 1, $name);
+    }
+  }
+  // This is called from updates and installs, so get the install-safe
+  // version of a fields array.
+  $fields_set = array();
+  module_load_include('install', 'content');
+  $types = content_types_install();
+  foreach ($types as $type_name => $fields) {
+    foreach ($fields as $field) {
+      if ($field['module'] == $module && !in_array($field['field_name'], $fields_set)) {
+        $columns = (array) module_invoke($field['module'], 'field_settings', 'database columns', $field);
+        db_query("UPDATE {". content_field_tablename() ."} SET db_columns = '%s' WHERE field_name = '%s'", serialize($columns), $field['field_name']);
+        $fields_set[] = $field['field_name'];
+      }
+    }
+  }
+}
+
+/**
+ * Implementation of hook_field(). Handles common field housekeeping.
+ *
+ * This implementation is special, as content.module does not define any field
+ * types. Instead, this function gets called after the type-specific hook, and
+ * takes care of default stuff common to all field types.
+ *
+ * Db-storage ops ('load', 'insert', 'update', 'delete', 'delete revisions')
+ * are not executed field by field, and are thus handled separately in
+ * content_storage.
+ *
+ * The 'view' operation constructs the $node in a way that you can use
+ * drupal_render() to display the formatted output for an individual field.
+ * i.e. print drupal_render($node->countent['field_foo']);
+ *
+ * The code now supports both single value formatters, which theme an
+ * individual item value as has been done in previous version of CCK,
+ * and multiple value formatters, which theme all values for the field
+ * in a single theme. The multiple value formatters could be used, for
+ * instance, to plot field values on a single map or display them
+ * in a graph. Single value formatters are the default, multiple value
+ * formatters can be designated as such in formatter_info().
+ *
+ * The node array will look like:
+ *   $node->content['field_foo']['wrapper'] = array(
+ *     '#type' => 'content_field',
+ *     '#title' => 'label'
+ *     '#field_name' => 'field_name',
+ *     '#node' => $node,
+ *     // Value of the $teaser param of hook_nodeapi('view').
+ *     '#teaser' => $teaser,
+ *     // Value of the $page param of hook_nodeapi('view').
+ *     '#page' => $page,
+ *     // The curent rendering context ('teaser', 'full', NODE_BUILD_SEARCH_INDEX...).
+ *     '#context' => $context,
+ *     'items' =>
+ *       0 => array(
+ *         '#item' => $items[0],
+ *         // Only for 'single-value' formatters
+ *         '#theme' => $theme,
+ *         '#field_name' => 'field_name',
+ *         '#type_name' => $node->type,
+ *         '#formatter' => $formatter_name,
+ *         '#node' => $node,
+ *         '#delta' => 0,
+ *       ),
+ *       1 => array(
+ *         '#item' => $items[1],
+ *         // Only for 'single-value' formatters
+ *         '#theme' => $theme,
+ *         '#field_name' => 'field_name',
+ *         '#type_name' => $node->type,
+ *         '#formatter' => $formatter_name,
+ *         '#node' => $node,
+ *         '#delta' => 1,
+ *       ),
+ *       // Only for 'multiple-value' formatters
+ *       '#theme' => $theme,
+ *       '#field_name' => 'field_name',
+ *       '#type_name' => $node->type,
+ *       '#formatter' => $formatter_name,
+ *     ),
+ *   );
+ */
+function content_field($op, &$node, $field, &$items, $teaser, $page) {
+  switch ($op) {
+    case 'validate':
+      // TODO: here we could validate that the number of multiple data is correct ?
+      // We're controlling the number of fields to fill out and saving empty
+      // ones if a specified number is requested, so no reason to do any validation
+      // here right now, but if later create a method to indicate whether
+      // 'required' means all values must be filled out, we can come back
+      // here and check that they're not empty.
+      break;
+
+    case 'presave':
+      if (!empty($node->devel_generate)) {
+        include_once('./'. drupal_get_path('module', 'content') .'/includes/content.devel.inc');
+        content_generate_fields($node, $field);
+        $items = $node->{$field['field_name']};
+      }
+
+      // Manual node_save calls might not have all fields filled in.
+      // On node insert, we need to make sure all tables get at least an empty
+      // record, or subsequent edits, using drupal_write_record() in update mode,
+      // won't insert any data.
+      // Missing fields on node update are handled in content_storage().
+      if (empty($items) && !isset($node->nid)) {
+        foreach (array_keys($field['columns']) as $column) {
+          $items[0][$column] = NULL;
+        }
+        $node->$field['field_name'] = $items;
+      }
+
+      // If there was an AHAH add more button in this field, don't save it.
+      // TODO: is it still needed ?
+      unset($items[$field['field_name'] .'_add_more']);
+
+      if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+        // Reorder items to account for drag-n-drop reordering.
+        $items = _content_sort_items($field, $items);
+      }
+
+      // Filter out empty values.
+      $items = content_set_empty($field, $items);
+
+      break;
+
+    case 'view':
+      $addition = array();
+
+      // Previewed nodes bypass the 'presave' op, so we need to some massaging.
+      if ($node->build_mode == NODE_BUILD_PREVIEW && content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+        if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+          // Reorder items to account for drag-n-drop reordering.
+          $items = _content_sort_items($field, $items);
+        }
+
+        // Filter out empty values.
+        $items = content_set_empty($field, $items);
+      }
+
+      // NODE_BUILD_NORMAL is 0, and ('whatever' == 0) is TRUE, so we need a ===.
+      if ($node->build_mode === NODE_BUILD_NORMAL || $node->build_mode == NODE_BUILD_PREVIEW) {
+        $context = $teaser ? 'teaser' : 'full';
+      }
+      else {
+        $context = $node->build_mode;
+      }
+      // The field may be missing info for $contexts added by modules
+      // enabled after the field was last edited.
+      $formatter_name = isset($field['display_settings'][$context]) && isset($field['display_settings'][$context]['format']) ? $field['display_settings'][$context]['format'] : 'default';
+      if ($formatter = _content_get_formatter($formatter_name, $field['type'])) {
+        $theme = $formatter['module'] .'_formatter_'. $formatter_name;
+        $single = (content_handle('formatter', 'multiple values', $formatter) == CONTENT_HANDLE_CORE);
+
+        $label_display = isset($field['display_settings']['label']['format']) ? $field['display_settings']['label']['format'] : 'above';
+        // Do not include field labels when indexing content.
+        if ($context == NODE_BUILD_SEARCH_INDEX) {
+          $label_display = 'hidden';
+        }
+
+        $element = array(
+          '#type' => 'content_field',
+          '#title' => check_plain(t($field['widget']['label'])),
+          '#field_name' => $field['field_name'],
+          '#access' => $formatter_name != 'hidden' && content_access('view', $field, NULL, $node),
+          '#label_display' => $label_display,
+          '#node' => $node,
+          '#teaser' => $teaser,
+          '#page' => $page,
+          '#context' => $context,
+          '#single' => $single,
+          'items' => array(),
+        );
+
+        // Fill-in items.
+        foreach ($items as $delta => $item) {
+          $element['items'][$delta] = array(
+            '#item' => $item,
+            '#weight' => $delta,
+          );
+        }
+
+        // Append formatter information either on each item ('single-value' formatter)
+        // or at the upper 'items' level ('multiple-value' formatter)
+        $format_info = array(
+          '#theme' => $theme,
+          '#field_name' => $field['field_name'],
+          '#type_name' => $node->type,
+          '#formatter' => $formatter_name,
+          '#node' => $node,
+        );
+        if ($single) {
+          foreach ($items as $delta => $item) {
+            $element['items'][$delta] += $format_info;
+            $element['items'][$delta]['#item']['#delta'] = $delta;
+          }
+        }
+        else {
+          $element['items'] += $format_info;
+        }
+
+        // The wrapper lets us get the themed output for the whole field
+        // to populate the $FIELD_NAME_rendered variable for node templates,
+        // and hide it from the $content variable if needed.
+        // See 'preprocess_node' op and theme_content_field_wrapper()?
+        $wrapper = array(
+          'field' => $element,
+          '#weight' => $field['widget']['weight'],
+          '#post_render' => array('content_field_wrapper_post_render'),
+          '#field_name' => $field['field_name'],
+          '#type_name' => $node->type,
+          '#context' => $context,
+        );
+
+        $addition = array($field['field_name'] => $wrapper);
+      }
+      return $addition;
+
+    case 'alter':
+      // Add back the formatted values in the 'view' element,
+      // so that tokens and node templates can use it.
+      // Note: Doing this in 'preprocess_node' breaks token integration.
+
+      // The location of the field's rendered output depends on whether the
+      // field is in a fieldgroup or not.
+      $wrapper = NULL;
+      if (isset($node->content[$field['field_name']])) {
+        $wrapper = $node->content[$field['field_name']];
+      }
+      elseif (module_exists('fieldgroup') && ($group_name = fieldgroup_get_group($node->type, $field['field_name'])) && isset($node->content[$group_name]['group'][$field['field_name']])) {
+        $wrapper = $node->content[$group_name]['group'][$field['field_name']];
+      }
+
+      if ($wrapper) {
+        $element = $wrapper['field'];
+        // '#single' is not set if the field is hidden or inaccessible.
+        if (isset($element['#single'])) {
+          if (!empty($element['#single'])) {
+            // Single value formatter.
+            foreach (element_children($element['items']) as $delta) {
+              // '#chilren' is not set if the field is empty.
+              $items[$delta]['view'] = isset($element['items'][$delta]['#children']) ? $element['items'][$delta]['#children'] : '';
+            }
+          }
+          elseif (isset($element['items']['#children']))  {
+            // Multiple values formatter.
+            $items[0]['view'] = $element['items']['#children'];
+          }
+        }
+        else {
+          // Hidden or inaccessible field.
+          $items[0]['view'] = '';
+        }
+      }
+      break;
+
+    case 'preprocess_node':
+      // Add $FIELD_NAME_rendered variables.
+      $addition = array();
+
+      // The location of the field's rendered output depends on whether the
+      // field is in a fieldgroup or not.
+      $wrapper = NULL;
+      if (isset($node->content[$field['field_name']])) {
+        $wrapper = $node->content[$field['field_name']];
+      }
+      elseif (module_exists('fieldgroup') && ($group_name = fieldgroup_get_group($node->type, $field['field_name'])) && isset($node->content[$group_name]['group'][$field['field_name']])) {
+        $wrapper = $node->content[$group_name]['group'][$field['field_name']];
+      }
+
+      if ($wrapper) {
+        // '#chilren' is not set if the field is empty.
+        $addition[$field['field_name'] .'_rendered'] = isset($wrapper['#children']) ? $wrapper['#children'] : '';
+      }
+
+      return $addition;
+
+    case 'prepare translation':
+      $addition = array();
+      if (isset($node->translation_source->$field['field_name'])) {
+        $addition[$field['field_name']] = $node->translation_source->$field['field_name'];
+      }
+      return $addition;
+  }
+}
+
+/**
+ * Helper function to filter out empty values.
+ *
+ * On order to keep marker rows in the database, the function ensures
+ * that the right number of 'all columns NULL' values is kept.
+ *
+ * @param array $field
+ * @param array $items
+ * @return array
+ *   returns filtered and adjusted item array
+ */
+function content_set_empty($field, $items) {
+  // Filter out empty values.
+  $filtered = array();
+  $function = $field['module'] .'_content_is_empty';
+  foreach ((array) $items as $delta => $item) {
+    if (!$function($item, $field)) {
+      $filtered[] = $item;
+    }
+  }
+
+  // Make sure we store the right number of 'empty' values.
+  $empty = array();
+  foreach (array_keys($field['columns']) as $column) {
+    $empty[$column] = NULL;
+  }
+  $pad = $field['multiple'] > 1 ? $field['multiple'] : 1;
+  $filtered = array_pad($filtered, $pad, $empty);
+
+  return $filtered;
+}
+
+/**
+ * Helper function to sort items in a field according to
+ * user drag-n-drop reordering.
+ */
+function _content_sort_items($field, $items) {
+  if ($field['multiple'] >= 1 && isset($items[0]['_weight'])) {
+    usort($items, '_content_sort_items_helper');
+    foreach ($items as $delta => $item) {
+      if (is_array($items[$delta])) {
+        unset($items[$delta]['_weight']);
+      }
+    }
+  }
+  return $items;
+}
+
+/**
+ * Sort function for items order.
+ * (copied form element_sort(), which acts on #weight keys)
+ */
+function _content_sort_items_helper($a, $b) {
+  $a_weight = (is_array($a) && isset($a['_weight'])) ? $a['_weight'] : 0;
+  $b_weight = (is_array($b) && isset($b['_weight'])) ? $b['_weight'] : 0;
+  if ($a_weight == $b_weight) {
+    return 0;
+  }
+  return ($a_weight < $b_weight) ? -1 : 1;
+}
+
+/**
+ * Same as above, using ['_weight']['#value']
+ */
+function _content_sort_items_value_helper($a, $b) {
+  $a_weight = (is_array($a) && isset($a['_weight']['#value'])) ? $a['_weight']['#value'] : 0;
+  $b_weight = (is_array($b) && isset($b['_weight']['#value'])) ? $b['_weight']['#value'] : 0;
+  if ($a_weight == $b_weight) {
+    return 0;
+  }
+  return ($a_weight < $b_weight) ? -1 : 1;
+}
+
+/**
+ * Handle storage ops for _content_field_invoke_default().
+ */
+function content_storage($op, $node) {
+  // Don't try this before content module's update is run to add
+  // the active and module columns.
+  if (variable_get('content_schema_version', -1) < 6007) {
+    return FALSE;
+  }
+
+  $type_name = $node->type;
+  $type = content_types($type_name);
+
+  switch ($op) {
+    case 'load':
+      // OPTIMIZE: load all non multiple fields in a single JOIN query ?
+      // warning: 61-join limit in MySQL ?
+      $additions = array();
+      // For each table used by this content type,
+      foreach ($type['tables'] as $table) {
+        $schema = drupal_get_schema($table);
+        // The per-type table might not have any fields actually stored in it.
+        if (!$schema['content fields']) {
+          continue;
+        }
+        $query = 'SELECT * FROM {'. $table .'} WHERE vid = %d';
+
+        // If we're loading a table for a multiple field,
+        // we fetch all rows (values) ordered by delta,
+        // else we only fetch one row.
+        $result = isset($schema['fields']['delta']) ? db_query($query .' ORDER BY delta', $node->vid) : db_query_range($query, $node->vid, 0, 1);
+
+        // For each table row, populate the fields.
+        while ($row = db_fetch_array($result)) {
+          // For each field stored in the table, add the field item.
+          foreach ($schema['content fields'] as $field_name) {
+            $item = array();
+            $field = content_fields($field_name, $type_name);
+            $db_info = content_database_info($field);
+            // For each column declared by the field, populate the item.
+            foreach ($db_info['columns'] as $column => $attributes) {
+              $item[$column] = $row[$attributes['column']];
+            }
+
+            // Add the item to the field values for the node.
+            if (!isset($additions[$field_name])) {
+              $additions[$field_name] = array();
+            }
+            $additions[$field_name][] = $item;
+          }
+        }
+      }
+      return $additions;
+
+    case 'insert':
+    case 'update':
+      foreach ($type['tables'] as $table) {
+        $schema = drupal_get_schema($table);
+        $record = array();
+        foreach ($schema['content fields'] as $field_name) {
+          if (isset($node->$field_name)) {
+            $field = content_fields($field_name, $type_name);
+            // Multiple fields need specific handling, we'll deal with them later on.
+            if ($field['multiple']) {
+              continue;
+            }
+            $db_info = content_database_info($field);
+            foreach ($db_info['columns'] as $column => $attributes) {
+              $record[$attributes['column']] = $node->{$field_name}[0][$column];
+            }
+          }
+        }
+        // $record might be empty because
+        // - the table stores a multiple field :
+        //   we do nothing, this is handled later on
+        // - this is the per-type table and no field is actually stored in it :
+        //   we still store the nid and vid
+        if (count($record) || empty($schema['content fields'])) {
+          $record['nid'] = $node->nid;
+          $record['vid'] = $node->vid;
+          // Can't rely on the insert/update op of the node to decide if this
+          // is an insert or an update, a node or revision may have existed
+          // before any fields were created, so there may not be an entry here.
+
+          // TODO - should we auto create an entry for all existing nodes when
+          // fields are added to content types -- either a NULL value
+          // or the default value? May need to offer the user an option of
+          // how to handle that.
+          if (db_result(db_query("SELECT COUNT(*) FROM {". $table ."} WHERE vid = %d", $node->vid))) {
+            content_write_record($table, $record, array('vid'));
+          }
+          else {
+            content_write_record($table, $record);
+          }
+        }
+      }
+
+      // Handle multiple fields.
+      foreach ($type['fields'] as $field) {
+        if ($field['multiple'] && isset($node->$field['field_name'])) {
+          $db_info = content_database_info($field);
+          // Delete and insert, rather than update, in case a value was added.
+          if ($op == 'update') {
+            db_query('DELETE FROM {'. $db_info['table'] .'} WHERE vid = %d', $node->vid);
+          }
+          foreach ($node->$field['field_name'] as $delta => $item) {
+            $record = array();
+            foreach ($db_info['columns'] as $column => $attributes) {
+              $record[$attributes['column']] = $item[$column];
+            }
+            $record['nid'] = $node->nid;
+            $record['vid'] = $node->vid;
+            $record['delta'] = $delta;
+            content_write_record($db_info['table'], $record);
+          }
+        }
+      }
+      break;
+
+    case 'delete':
+      foreach ($type['tables'] as $table) {
+        db_query('DELETE FROM {'. $table .'} WHERE nid = %d', $node->nid);
+      }
+      break;
+
+    case 'delete revision':
+      foreach ($type['tables'] as $table) {
+        db_query('DELETE FROM {'. $table .'} WHERE vid = %d', $node->vid);
+      }
+      break;
+  }
+}
+
+/**
+ * Save a record to the database based upon the schema.
+ *
+ * Directly copied from core's drupal_write_record, which can't update a
+ * column to NULL. See http://drupal.org/node/227677 and
+ * http://drupal.org/node/226264 for more details about that problem.
+ *
+ * TODO - get rid of this function and change references back to
+ * drupal_write_record() if the patch gets into core. Will need a method
+ * of protecting people on older versions, though.
+ *
+ * Default values are filled in for missing items, and 'serial' (auto increment)
+ * types are filled in with IDs.
+ *
+ * @param $table
+ *   The name of the table; this must exist in schema API.
+ * @param $object
+ *   The object to write. This is a reference, as defaults according to
+ *   the schema may be filled in on the object, as well as ID on the serial
+ *   type(s). Both array an object types may be passed.
+ * @param $update
+ *   If this is an update, specify the primary keys' field names. It is the
+ *   caller's responsibility to know if a record for this object already
+ *   exists in the database. If there is only 1 key, you may pass a simple string.
+ * @return
+ *   Failure to write a record will return FALSE. Otherwise SAVED_NEW or
+ *   SAVED_UPDATED is returned depending on the operation performed. The
+ *   $object parameter contains values for any serial fields defined by
+ *   the $table. For example, $object->nid will be populated after inserting
+ *   a new node.
+ */
+function content_write_record($table, &$object, $update = array()) {
+  // Standardize $update to an array.
+  if (is_string($update)) {
+    $update = array($update);
+  }
+
+  // Convert to an object if needed.
+  if (is_array($object)) {
+    $object = (object) $object;
+    $array = TRUE;
+  }
+  else {
+    $array = FALSE;
+  }
+
+  $schema = drupal_get_schema($table);
+  if (empty($schema)) {
+    return FALSE;
+  }
+
+  $fields = $defs = $values = $serials = $placeholders = array();
+
+  // Go through our schema, build SQL, and when inserting, fill in defaults for
+  // fields that are not set.
+  foreach ($schema['fields'] as $field => $info) {
+    // Special case -- skip serial types if we are updating.
+    if ($info['type'] == 'serial' && count($update)) {
+      continue;
+    }
+
+    // For inserts, populate defaults from Schema if not already provided
+    if (!isset($object->$field) && !count($update) && isset($info['default'])) {
+      $object->$field = $info['default'];
+    }
+
+    // Track serial fields so we can helpfully populate them after the query.
+    if ($info['type'] == 'serial') {
+      $serials[] = $field;
+      // Ignore values for serials when inserting data. Unsupported.
+      unset($object->$field);
+    }
+
+    // Build arrays for the fields, placeholders, and values in our query.
+    if (isset($object->$field) || array_key_exists($field, $object)) {
+      $fields[] = $field;
+      if (isset($object->$field)) {
+        $placeholders[] = db_type_placeholder($info['type']);
+
+        if (empty($info['serialize'])) {
+          $values[] = $object->$field;
+        }
+        else {
+          $values[] = serialize($object->$field);
+        }
+      }
+      else {
+        $placeholders[] = 'NULL';
+      }
+    }
+  }
+
+  // Build the SQL.
+  $query = '';
+  if (!count($update)) {
+    $query = "INSERT INTO {". $table ."} (". implode(', ', $fields) .') VALUES ('. implode(', ', $placeholders) .')';
+    $return = SAVED_NEW;
+  }
+  else {
+    $query = '';
+    foreach ($fields as $id => $field) {
+      if ($query) {
+        $query .= ', ';
+      }
+      $query .= $field .' = '. $placeholders[$id];
+    }
+
+    foreach ($update as $key) {
+      $conditions[] = "$key = ". db_type_placeholder($schema['fields'][$key]['type']);
+      $values[] = $object->$key;
+    }
+
+    $query = "UPDATE {". $table ."} SET $query WHERE ". implode(' AND ', $conditions);
+    $return = SAVED_UPDATED;
+  }
+
+  // Execute the SQL.
+  if (db_query($query, $values)) {
+    if ($serials) {
+      // Get last insert ids and fill them in.
+      foreach ($serials as $field) {
+        $object->$field = db_last_insert_id($table, $field);
+      }
+    }
+
+    // If we began with an array, convert back so we don't surprise the caller.
+    if ($array) {
+      $object = (array) $object;
+    }
+
+    return $return;
+  }
+
+  return FALSE;
+}
+
+/**
+ * Invoke a field hook.
+ *
+ * For each operation, both this function and _content_field_invoke_default() are
+ * called so that the default database handling can occur.
+ */
+function _content_field_invoke($op, &$node, $teaser = NULL, $page = NULL) {
+  $type_name = is_string($node) ? $node : (is_array($node) ? $node['type'] : $node->type);
+  $type = content_types($type_name);
+  $field_types = _content_field_types();
+
+  $return = array();
+  foreach ($type['fields'] as $field) {
+    $items = isset($node->$field['field_name']) ? $node->$field['field_name'] : array();
+
+    // Make sure AHAH 'add more' button isn't sent to the fields for processing.
+    unset($items[$field['field_name'] .'_add_more']);
+
+    $module = $field_types[$field['type']]['module'];
+    $function = $module .'_field';
+    if (function_exists($function)) {
+      $result = $function($op, $node, $field, $items, $teaser, $page);
+      if (is_array($result)) {
+        $return = array_merge($return, $result);
+      }
+      else if (isset($result)) {
+        $return[] = $result;
+      }
+    }
+    // test for values in $items in case modules added items on insert
+    if (isset($node->$field['field_name']) || count($items)) {
+      $node->$field['field_name'] = $items;
+    }
+  }
+  return $return;
+}
+
+/**
+ * Invoke content.module's version of a field hook.
+ */
+function _content_field_invoke_default($op, &$node, $teaser = NULL, $page = NULL) {
+  $type_name = is_string($node) ? $node : (is_array($node) ? $node['type'] : $node->type);
+  $type = content_types($type_name);
+  $field_types = _content_field_types();
+
+  $return = array();
+  // The operations involving database queries are better off handled by table
+  // rather than by field.
+  if (in_array($op, array('load', 'insert', 'update', 'delete', 'delete revision'))) {
+    return content_storage($op, $node);
+  }
+  else {
+    foreach ($type['fields'] as $field) {
+      $items = isset($node->$field['field_name']) ? $node->$field['field_name'] : array();
+      $result = content_field($op, $node, $field, $items, $teaser, $page);
+      if (is_array($result)) {
+        $return = array_merge($return, $result);
+      }
+      else if (isset($result)) {
+        $return[] = $result;
+      }
+      if (isset($node->$field['field_name'])) {
+        $node->$field['field_name'] = $items;
+      }
+    }
+  }
+  return $return;
+}
+
+/**
+ * Return a list of all content types.
+ *
+ * @param $content_type_name
+ *   If set, return information on just this type.
+ *
+ * Do some type checking and set up empty arrays for missing
+ * info to avoid foreach errors elsewhere in the code.
+ */
+function content_types($type_name = NULL) {
+  // handle type name with either an underscore or a dash
+  $type_name = !empty($type_name) ? str_replace('-', '_', $type_name) : NULL;
+
+  $info = _content_type_info();
+  if (isset($info['content types'])) {
+    if (!isset($type_name)) {
+      return $info['content types'];
+    }
+    if (isset($info['content types'][$type_name])) {
+      return $info['content types'][$type_name];
+    }
+  }
+  return array('tables' => array(), 'fields' => array(), 'extra' => array());
+}
+
+/**
+ * Return a list of all fields.
+ *
+ * @param $field_name
+ *   If not empty, return information on just this field.
+ * @param $content_type_name
+ *   If not empty, return information of the field within the context of this content
+ *   type.
+ *
+ * Be sure to check empty() instead of isset() on field_name and
+ * content_type_name to avoid bad results when the value is set
+ * but empty, as sometimes happens in the formatter.
+ */
+function content_fields($field_name = NULL, $content_type_name = NULL) {
+  $info = _content_type_info();
+  if (isset($info['fields'])) {
+    if (empty($field_name)) {
+      return $info['fields'];
+    }
+    if (isset($info['fields'][$field_name])) {
+      if (empty($content_type_name)) {
+        return $info['fields'][$field_name];
+      }
+      if (isset($info['content types'][$content_type_name]['fields'][$field_name])) {
+        return $info['content types'][$content_type_name]['fields'][$field_name];
+      }
+    }
+  }
+}
+
+/**
+ * Return a list of field types.
+ */
+function _content_field_types() {
+  $info = _content_type_info();
+  return isset($info['field types']) ? $info['field types'] : array();
+}
+
+/**
+ * Return a list of widget types.
+ */
+function _content_widget_types() {
+  $info = _content_type_info();
+  return isset($info['widget types']) ? $info['widget types'] : array();
+}
+
+/**
+ * Return the formatter description corresponding to a formatter name,
+ * defaulting to 'default' if none is found.
+ */
+function _content_get_formatter($formatter_name, $field_type) {
+  $field_types = _content_field_types();
+  $formatters = $field_types[$field_type]['formatters'];
+
+  if (!isset($formatters[$formatter_name]) && $formatter_name != 'hidden') {
+    // This might happen when the selected formatter has been renamed in the
+    // module, or if the module has been disabled since then.
+    $formatter_name = 'default';
+  }
+
+  return isset($formatters[$formatter_name]) ? $formatters[$formatter_name] : FALSE;
+}
+
+/**
+ * Collate all information on content types, fields, and related structures.
+ *
+ * @param $reset
+ *   If TRUE, clear the cache and fetch the information from the database again.
+ */
+function _content_type_info($reset = FALSE) {
+  global $language;
+  static $info;
+
+  if ($reset || !isset($info)) {
+    // Make sure this function doesn't run until the tables have been created,
+    // For instance: when first enabled and called from content_menu(),
+    // or when uninstalled and some subsequent field module uninstall
+    // attempts to refresh the data.
+
+    // Don't try this before content module's update is run
+    // to add module and active columns to the table.
+    if (variable_get('content_schema_version', -1) < 6007) {
+      return array();
+    }
+
+    if (!$reset && $cached = cache_get('content_type_info:'. $language->language, content_cache_tablename())) {
+      $info = $cached->data;
+    }
+    else {
+      $info = array(
+        'field types' => array(),
+        'widget types' => array(),
+        'fields' => array(),
+        'content types' => array(),
+      );
+
+      // Populate field types.
+      foreach (module_list() as $module) {
+        $module_field_types = module_invoke($module, 'field_info');
+        if ($module_field_types) {
+          foreach ($module_field_types as $name => $field_info) {
+            // Truncate names to match the value that is stored in the database.
+            $db_name = substr($name, 0, 32);
+            $info['field types'][$db_name] = $field_info;
+            $info['field types'][$db_name]['module'] = $module;
+            $info['field types'][$db_name]['formatters'] = array();
+          }
+        }
+      }
+
+      // Populate widget types and formatters for known field types.
+      foreach (module_list() as $module) {
+        if ($module_widgets = module_invoke($module, 'widget_info')) {
+          foreach ($module_widgets as $name => $widget_info) {
+            // Truncate names to match the value that is stored in the database.
+            $db_name = substr($name, 0, 32);
+            $info['widget types'][$db_name] = $widget_info;
+            $info['widget types'][$db_name]['module'] = $module;
+            // Replace field types with db_compatible version of known field types.
+            $info['widget types'][$db_name]['field types'] = array();
+            foreach ($widget_info['field types'] as $field_type) {
+              $field_type_db_name = substr($field_type, 0, 32);
+              if (isset($info['field types'][$field_type_db_name])) {
+                $info['widget types'][$db_name]['field types'][] = $field_type_db_name;
+              }
+            }
+          }
+        }
+
+        if ($module_formatters = module_invoke($module, 'field_formatter_info')) {
+          foreach ($module_formatters as $name => $formatter_info) {
+            foreach ($formatter_info['field types'] as $field_type) {
+              // Truncate names to match the value that is stored in the database.
+              $db_name = substr($field_type, 0, 32);
+              if (isset($info['field types'][$db_name])) {
+                $info['field types'][$db_name]['formatters'][$name] = $formatter_info;
+                $info['field types'][$db_name]['formatters'][$name]['module'] = $module;
+              }
+            }
+          }
+        }
+      }
+
+      // Populate actual field instances.
+      module_load_include('inc', 'content', 'includes/content.crud');
+      foreach (node_get_types('types', NULL, TRUE) as $type_name => $data) {
+        $type = (array) $data;
+        $type['url_str'] = str_replace('_', '-', $type['type']);
+        $type['fields'] = array();
+        $type['tables'] = array();
+        if ($fields = content_field_instance_read(array('type_name' => $type_name))) {
+          foreach ($fields as $field) {
+            $db_info = content_database_info($field);
+            $type['tables'][$db_info['table']] = $db_info['table'];
+
+            // Allow external modules to translate field strings.
+            $field_strings = array(
+              'widget_label' => $field['widget']['label'],
+              'widget_description' => $field['widget']['description'],
+            );
+            drupal_alter('content_field_strings', $field_strings, $field['type_name'], $field['field_name']);
+            $field['widget']['label'] = $field_strings['widget_label'];
+            $field['widget']['description'] = $field_strings['widget_description'];
+
+            $type['fields'][$field['field_name']] = $field;
+            // This means that content_fields($field_name) (no type name)
+            // returns the last instance loaded.
+            $info['fields'][$field['field_name']] = $field;
+          }
+          // Make sure the per-type table is added, even if no field is actually
+          // stored in it.
+          $table = _content_tablename($type['type'], CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+          $type['tables'][$table] = $table;
+        }
+
+        // Gather information about non-CCK 'fields'.
+        $extra = module_invoke_all('content_extra_fields', $type_name);
+        drupal_alter('content_extra_fields', $extra, $type_name);
+        // Add saved weights.
+        foreach (variable_get('content_extra_weights_'. $type_name, array()) as $key => $value) {
+          // Some stored entries might not exist anymore, for instance if uploads
+          // have been disabled, or vocabularies removed...
+          if (isset($extra[$key])) {
+            $extra[$key]['weight'] = $value;
+          }
+        }
+        $type['extra'] = $extra;
+
+        $info['content types'][$type_name] = $type;
+      }
+
+      cache_set('content_type_info:'. $language->language, $info, content_cache_tablename());
+    }
+  }
+  return $info;
+}
+
+/**
+ *  Implementation of hook_node_type()
+ *  React to change in node types
+ */
+function content_node_type($op, $info) {
+  switch ($op) {
+    case 'insert':
+      module_load_include('inc', 'content', 'includes/content.crud');
+      content_type_create($info);
+      break;
+    case 'update':
+      module_load_include('inc', 'content', 'includes/content.crud');
+      content_type_update($info);
+      break;
+    case 'delete':
+      module_load_include('inc', 'content', 'includes/content.crud');
+      content_type_delete($info);
+      break;
+  }
+}
+
+/**
+ * Clear the cache of content_types; called in several places when content
+ * information is changed.
+ */
+function content_clear_type_cache($rebuild_schema = FALSE) {
+  cache_clear_all('*', content_cache_tablename(), TRUE);
+  _content_type_info(TRUE);
+
+  // Refresh the schema to pick up new information.
+  if ($rebuild_schema) {
+    $schema = drupal_get_schema(NULL, TRUE);
+  }
+
+  if (module_exists('views')) {
+    // Needed because this can be called from .install files
+    module_load_include('module', 'views');
+    views_invalidate_cache();
+  }
+}
+
+/**
+ * Retrieve the database storage location(s) for a field.
+ *
+ * TODO: add a word about why it's not included in the global _content_type_info array.
+ *
+ * @param $field
+ *   The field whose database information is requested.
+ * @return
+ *   An array with the keys:
+ *     "table": The name of the database table where the field data is stored.
+ *     "columns": An array of columns stored for this field. Each is a collection
+ *       of information returned from hook_field_settings('database columns'),
+ *       with the addition of a "column" attribute which holds the name of the
+ *       database column that stores the data.
+ */
+function content_database_info($field) {
+  $db_info = array();
+  if ($field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD) {
+    $db_info['table'] = _content_tablename($field['field_name'], CONTENT_DB_STORAGE_PER_FIELD);
+  }
+  else {
+    $db_info['table'] = _content_tablename($field['type_name'], CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+  }
+
+  $db_info['columns'] = (array) $field['columns'];
+  // Generate column names for this field from generic column names.
+  foreach ($db_info['columns'] as $column_name => $attributes) {
+    $db_info['columns'][$column_name]['column'] = $field['field_name'] .'_'. $column_name;
+  }
+
+  return $db_info;
+}
+
+/**
+ * Helper function for identifying the storage type for a field.
+ */
+function content_storage_type($field) {
+  if ($field['multiple'] > 0) {
+    return CONTENT_DB_STORAGE_PER_FIELD;
+  }
+  else {
+    module_load_include('inc', 'content', 'includes/content.crud');
+    $instances = content_field_instance_read(array('field_name' => $field['field_name']));
+    if (count($instances) > 1) {
+      return CONTENT_DB_STORAGE_PER_FIELD;
+    }
+  }
+  return CONTENT_DB_STORAGE_PER_CONTENT_TYPE;
+}
+
+/**
+ * Manipulate a 2D array to reverse rows and columns.
+ *
+ * The default data storage for fields is delta first, column names second.
+ * This is sometimes inconvenient for field modules, so this function can be
+ * used to present the data in an alternate format.
+ *
+ * @param $array
+ *   The array to be transposed. It must be at least two-dimensional, and
+ *   the subarrays must all have the same keys or behavior is undefined.
+ * @return
+ *   The transposed array.
+ */
+function content_transpose_array_rows_cols($array) {
+  $result = array();
+  if (is_array($array)) {
+    foreach ($array as $key1 => $value1) {
+      if (is_array($value1)) {
+        foreach ($value1 as $key2 => $value2) {
+          if (!isset($result[$key2])) {
+            $result[$key2] = array();
+          }
+          $result[$key2][$key1] = $value2;
+        }
+      }
+    }
+  }
+  return $result;
+}
+
+/**
+ * Helper function to flatten an array of allowed values.
+ *
+ * @param $array
+ *   A single or multidimensional array.
+ * @return
+ *   A flattened array.
+ */
+function content_array_flatten($array) {
+  $result = array();
+  if (is_array($array)) {
+    foreach ($array as $key => $value) {
+      if (is_array($value)) {
+        $result += content_array_flatten($value);
+      }
+      else {
+        $result[$key] = $value;
+      }
+    }
+  }
+  return $result;
+}
+
+/**
+ *  Create an array of the allowed values for this field.
+ *
+ *  Used by number and text fields, expects to find either
+ *  PHP code that will return the correct value, or a string
+ *  with keys and labels separated with '|' and with each
+ *  new value on its own line.
+ *
+ * @param $field
+ *   The field whose allowed values are requested.
+ * @param $flatten
+ *   Optional. Use TRUE to return a flattened array (default).
+ *   FALSE can be used to support optgroups for select widgets
+ *   when allowed values list is generated using PHP code.
+ */
+function content_allowed_values($field, $flatten = TRUE) {
+  static $allowed_values;
+
+  $cid = $field['field_name'] .':'. ($flatten ? '1' : '0');
+  if (isset($allowed_values[$cid])) {
+    return $allowed_values[$cid];
+  }
+
+  $allowed_values[$cid] = array();
+
+  if (isset($field['allowed_values_php'])) {
+    ob_start();
+    $result = eval($field['allowed_values_php']);
+    if (is_array($result)) {
+      if ($flatten) {
+        $result = content_array_flatten($result);
+      }
+      $allowed_values[$cid] = $result;
+    }
+    ob_end_clean();
+  }
+
+  if (empty($allowed_values[$cid]) && isset($field['allowed_values'])) {
+    $list = explode("\n", $field['allowed_values']);
+    $list = array_map('trim', $list);
+    $list = array_filter($list, 'strlen');
+    foreach ($list as $opt) {
+      // Sanitize the user input with a permissive filter.
+      $opt = content_filter_xss($opt);
+      if (strpos($opt, '|') !== FALSE) {
+        list($key, $value) = explode('|', $opt);
+        $allowed_values[$cid][$key] = (isset($value) && $value !=='') ? $value : $key;
+      }
+      else {
+        $allowed_values[$cid][$opt] = $opt;
+      }
+    }
+    // Allow external modules to translate allowed values list.
+    drupal_alter('content_allowed_values', $allowed_values[$cid], $field);
+  }
+  return $allowed_values[$cid];
+}
+
+/**
+ * Filter out HTML from allowed values array while leaving entities unencoded.
+ *
+ * @see content_allowed_values()
+ * @see optionwidgets_select_process()
+ * @see content_handler_filter_many_to_one::allowed_values()
+ */
+function content_allowed_values_filter_html(&$options) {
+  foreach ($options as $key => $opt) {
+    if (is_array($opt)) {
+      content_allowed_values_filter_html($options[$key]);
+    }
+    else {
+      $options[$key] = html_entity_decode(strip_tags($opt), ENT_QUOTES);
+    }
+  }
+}
+
+/**
+ * Like filter_xss_admin(), but with a shorter list of allowed tags.
+ *
+ * Used for items entered by administrators, like field descriptions,
+ * allowed values, where some (mainly inline) mark-up may be desired
+ * (so check_plain() is not acceptable).
+ */
+function content_filter_xss($string) {
+  return filter_xss($string, _content_filter_xss_allowed_tags());
+}
+
+/**
+ * List of tags allowed by content_filter_xss().
+ */
+function _content_filter_xss_allowed_tags() {
+  return array('a', 'b', 'big',  'code', 'del', 'em', 'i', 'ins',  'pre', 'q', 'small', 'span', 'strong', 'sub', 'sup', 'tt', 'ol', 'ul', 'li', 'p', 'br', 'img');
+}
+
+/**
+ * Human-readable list of allowed tags, for display in help texts.
+ */
+function _content_filter_xss_display_allowed_tags() {
+  return '<'. implode('> <', _content_filter_xss_allowed_tags()) .'>';
+}
+
+/**
+ * Format a field item for display.
+ *
+ * Used to display a field's values outside the context of the $node, as
+ * when fields are displayed in Views, or to display a field in a template
+ * using a different formatter than the one set up on the Display Fields tab
+ * for the node's context.
+ *
+ * @param $field
+ *   Either a field array or the name of the field.
+ * @param $item
+ *   The field item(s) to be formatted (such as $node->field_foo[0],
+ *   or $node->field_foo if the formatter handles multiple values itself)
+ * @param $formatter_name
+ *   The name of the formatter to use.
+ * @param $node
+ *   Optionally, the containing node object for context purposes and
+ *   field-instance options.
+ *
+ * @return
+ *   A string containing the contents of the field item(s) sanitized for display.
+ *   It will have been passed through the necessary check_plain() or check_markup()
+ *   functions as necessary.
+ */
+function content_format($field, $item, $formatter_name = 'default', $node = NULL) {
+  if (!is_array($field)) {
+    $field = content_fields($field);
+  }
+
+  if (content_access('view', $field, NULL, $node) && $formatter = _content_get_formatter($formatter_name, $field['type'])) {
+    $theme = $formatter['module'] .'_formatter_'. $formatter_name;
+
+    $element = array(
+      '#theme' => $theme,
+      '#field_name' => $field['field_name'],
+      '#type_name' => isset($node->type) ? $node->type :'',
+      '#formatter' => $formatter_name,
+      '#node' => $node,
+      '#delta' => isset($item['#delta']) ? $item['#delta'] : NULL,
+    );
+
+    if (content_handle('formatter', 'multiple values', $formatter) == CONTENT_HANDLE_CORE) {
+      // Single value formatter.
+
+      // hook_field('sanitize') expects an array of items, so we build one.
+      $items = array($item);
+      $function = $field['module'] .'_field';
+      if (function_exists($function)) {
+        $function('sanitize', $node, $field, $items, FALSE, FALSE);
+      }
+
+      $element['#item'] = $items[0];
+    }
+    else {
+      // Multiple values formatter.
+      $items = $item;
+      $function = $field['module'] .'_field';
+      if (function_exists($function)) {
+        $function('sanitize', $node, $field, $items, FALSE, FALSE);
+      }
+
+      foreach ($items as $delta => $item) {
+        $element[$delta] = array(
+          '#item' => $item,
+          '#weight' => $delta,
+        );
+      }
+    }
+
+    return theme($theme, $element);
+  }
+}
+
+/**
+ * Registry of available node build modes.
+ *
+ * @param $selector
+ *   Determines what information should be returned.
+ * @return
+ *   Depending on the value of the $selector parameter:
+ *   - NULL: a flat list of all available build modes.
+ *   The other two options are mainly used internally by CCK's UI:
+ *   - '_tabs': the list of tabs to be shown on the 'Display fields' screens.
+ *   - a string tab id: the build modes in this tab.
+ */
+function content_build_modes($selector = NULL) {
+  static $info;
+
+  if (!isset($info)) {
+    $data = array();
+    foreach (module_implements('content_build_modes') as $module) {
+      $function = $module .'_content_build_modes';
+      $data = array_merge($data, (array) $function());
+    }
+    $flat = array();
+    foreach ($data as $tab) {
+      // Use the + operator to preserve numeric indexes (core build modes).
+      $flat += (array) $tab['build modes'];
+    }
+    $info = array('tabs' => $data, 'build modes' => $flat);
+  }
+
+  if ($selector === '_tabs') {
+    return $info['tabs'];
+  }
+  elseif (isset($selector) && isset($info['tabs'][$selector])) {
+    return isset($info['tabs'][$selector]) ? $info['tabs'][$selector]['build modes'] : array();
+  }
+  else {
+    return $info['build modes'];
+  }
+}
+
+/**
+ * Implementations of hook_content_build_modes
+ * on behalf of core modules.
+ *
+ * @return
+ * An array describing the build modes used by the module.
+ * They are grouped by secondary tabs on CCK's 'Display fields' screens.
+ *
+ * Expected format:
+ * array(
+ *   // The first level keys (tab1_url, tab2_url) will be used to generate
+ *   // the url of the tab: admin/content/node-type/[type_name]/display/[tab1_url]
+ *   // A module can add its render modes to a tab defined by another module.
+ *   // In this case, there's no need to provide a 'title' for this tab.
+ *   'tab1_url' => array(
+ *     'title' => t('The human-readable title of the tab'),
+ *     'build modes' => array(
+ *       // The keys of the 'context' array are the values used in $node->build_mode.
+ *       'mymodule_mode1' => array(
+ *         'title' => t('The human-readable name of the build mode'),
+ *        // The 'views style' property determines if the render mode should be
+ *        // available as an option in Views' 'node' row style (not implemented yet).
+ *        'views style' => TRUE,
+ *       ),
+ *       'mymodule_mode2' => array(
+ *         'title' => t('Mode 2'),
+ *         'views style' => TRUE,
+ *       ),
+ *     ),
+ *   ),
+ *   'tab2_url' => array(
+ *     // ...
+ *   ),
+ * );
+ */
+function node_content_build_modes() {
+  return array(
+    'basic' => array(
+      'title' => t('Basic'),
+      'build modes' => array(
+        'teaser' => array(
+          'title' => t('Teaser'),
+          'views style' => TRUE,
+        ),
+        'full' => array(
+          'title' => t('Full node'),
+          'views style' => TRUE,
+        ),
+      ),
+    ),
+    'rss' => array(
+      'title' => t('RSS'),
+      'build modes' => array(
+        NODE_BUILD_RSS => array(
+          'title' => t('RSS'),
+          'views style' => FALSE,
+        ),
+      ),
+    ),
+  );
+}
+function search_content_build_modes() {
+  return array(
+    'search' => array(
+      'title' => t('Search'),
+      'build modes' => array(
+        NODE_BUILD_SEARCH_INDEX => array(
+          'title' => t('Search Index'),
+          'views style' => FALSE,
+        ),
+        NODE_BUILD_SEARCH_RESULT => array(
+          'title' => t('Search Result'),
+          'views style' => FALSE,
+        ),
+      ),
+    ),
+  );
+}
+function book_content_build_modes() {
+  return array(
+    'print' => array(
+      'title' => t('Print'),
+      'build modes' => array(
+        NODE_BUILD_PRINT => array(
+          'title' => t('Print'),
+          'views style' => TRUE,
+        ),
+      ),
+    ),
+  );
+}
+
+/**
+ * Generate a table name for a field or a content type.
+ *
+ * @param $name
+ *   The name of the content type or content field
+ * @param $storage
+ *   CONTENT_DB_STORAGE_PER_FIELD or CONTENT_DB_STORAGE_PER_CONTENT_TYPE
+ * @return
+ *   A string containing the generated name for the database table
+ */
+function _content_tablename($name, $storage, $version = NULL) {
+  if (is_null($version)) {
+    $version = variable_get('content_schema_version', 0);
+  }
+
+  if ($version < 1003) {
+    $version = 0;
+  }
+  else {
+    $version = 1003;
+  }
+
+  $name = str_replace('-', '_', $name);
+  switch ("$version-$storage") {
+    case '0-'. CONTENT_DB_STORAGE_PER_CONTENT_TYPE :
+      return "node_$name";
+    case '0-'. CONTENT_DB_STORAGE_PER_FIELD :
+      return "node_data_$name";
+    case '1003-'. CONTENT_DB_STORAGE_PER_CONTENT_TYPE :
+      return "content_type_$name";
+    case '1003-'. CONTENT_DB_STORAGE_PER_FIELD :
+      return "content_$name";
+  }
+}
+
+/**
+ * Generate table name for the content field table.
+ *
+ * Needed because the table name changes depending on version.
+ * Using 'content_node_field' instead of 'content_field'
+ * to avoid conflicts with field tables that will be prefixed
+ * with 'content_field'.
+ */
+function content_field_tablename($version = NULL) {
+  if (is_null($version)) {
+    $version = variable_get('content_schema_version', 0);
+  }
+  return $version < 6001 ? 'node_field' : 'content_node_field';
+}
+
+/**
+ * Generate table name for the content field instance table.
+ *
+ * Needed because the table name changes depending on version.
+ */
+function content_instance_tablename($version = NULL) {
+  if (is_null($version)) {
+    $version = variable_get('content_schema_version', 0);
+  }
+  return $version < 6001 ? 'node_field_instance' : 'content_node_field_instance';
+}
+
+/**
+ * Generate table name for the content cache table.
+ *
+ * Needed because the table name changes depending on version. Because of
+ * a new database column, the content_cache table will be unusable until
+ * update 6000 runs, so the cache table will be used instead.
+ */
+function content_cache_tablename() {
+  if (variable_get('content_schema_version', -1) < 6000) {
+    return 'cache';
+  }
+  else {
+    return 'cache_content';
+  }
+}
+
+/**
+ * A basic schema used by all field and type tables.
+ *
+ * This will only add the columns relevant for the specified field.
+ * Leave $field['columns'] empty to get only the base schema,
+ * otherwise the function will return the whole thing.
+ */
+function content_table_schema($field = NULL) {
+  $schema = array(
+    'fields' => array(
+      'vid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+      'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
+    ),
+    'primary key' => array('vid'),
+    'indexes' => array(
+      'nid'    => array('nid'),
+    ),
+  );
+
+  // Add delta column if needed.
+  if (!empty($field['multiple'])) {
+    $schema['fields']['delta'] = array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0);
+    $schema['primary key'][] = 'delta';
+  }
+  $schema['content fields'] = array();
+
+  // Add field columns column if needed.
+  // This function is called from install files where it is not safe
+  // to use content_fields() or content_database_info(), so we
+  // just used the column values stored in the $field.
+  // We also need the schema to include fields from disabled modules
+  // or there will be no way to delete those fields.
+
+  if (!empty($field['columns'])) {
+    foreach ($field['columns'] as $column => $attributes) {
+      $column_name =  $field['field_name'] .'_'. $column;
+      if (isset($attributes['index']) && $attributes['index']) {
+        $schema['indexes'][$column_name] = array($column_name);
+        unset($attributes['index']);
+      }
+      unset($attributes['column']);
+      unset($attributes['sortable']);
+      $schema['fields'][$column_name] = $attributes;
+    }
+    $schema['content fields'][] = $field['field_name'];
+  }
+  return $schema;
+}
+
+/**
+ * Checks if an index exists.
+ *
+ * @todo: May we remove this funcion when implemented by Drupal core itself?
+ * @link http://drupal.org/node/360854
+ * @link http://dev.mysql.com/doc/refman/5.0/en/extended-show.html
+ *
+ * @param $table
+ *   Name of the table.
+ * @param $name
+ *   Name of the index.
+ * @return
+ *   TRUE if the table exists. Otherwise FALSE.
+ */
+function content_db_index_exists($table, $name) {
+  global $db_type;
+  if ($db_type == 'mysql' || $db_type == 'mysqli') {
+    if (version_compare(db_version(), '5.0.3') < 0) {
+      // Earlier versions of MySQL don't support a WHERE clause for SHOW.
+      $result = db_query('SHOW INDEX FROM {'. $table .'}');
+      while ($row = db_fetch_array($result)) {
+        if ($row['Key_name'] == $name) {
+          return TRUE;
+        }
+      }
+      return FALSE;
+    }
+    return (bool)db_result(db_query("SHOW INDEX FROM {". $table ."} WHERE key_name = '$name'"));
+  }
+  elseif ($db_type == 'pgsql') {
+    // Note that the index names in Schema API for PostgreSQL are prefixed by
+    // the table name and suffixed by '_idx'.
+    return (bool)db_result(db_query("SELECT COUNT(indexname) FROM pg_indexes WHERE indexname = '{". $table ."}_{$name}_idx'"));
+  }
+  return FALSE;
+}
+
+/**
+ *  Helper function for determining the behavior of a field or a widget
+ *  with respect to a given operation. (currently used for field 'view',
+ *  and widget 'default values' and 'multiple values')
+ *
+ *  @param $entity
+ *    'field' or 'widget'
+ *  @param $op
+ *    the name of the operation ('view', 'default value'...)
+ *  @param $field
+ *    The field array, including widget info.
+ *  @return
+ *    CONTENT_CALLBACK_NONE    - do nothing for this operation
+ *    CONTENT_CALLBACK_CUSTOM  - use the module's callback function.
+ *    CONTENT_CALLBACK_DEFAULT - use content module default behavior
+ *
+ */
+function content_callback($entity, $op, $field) {
+  switch ($entity) {
+    case 'field':
+      $info = module_invoke($field['module'], "field_info");
+      return isset($info[$field['type']]['callbacks'][$op]) ? $info[$field['type']]['callbacks'][$op] : CONTENT_CALLBACK_DEFAULT;
+
+    case 'widget':
+      $info = module_invoke($field['widget']['module'], "widget_info");
+      return isset($info[$field['widget']['type']]['callbacks'][$op]) ? $info[$field['widget']['type']]['callbacks'][$op] : CONTENT_CALLBACK_DEFAULT;
+  }
+}
+
+/**
+ *  Helper function for determining the handling of a field, widget or
+ *  formatter with respect to a given operation.
+ *
+ *  Currently used for widgets and formatters 'multiple values'.
+ *
+ *  @param $entity
+ *    'field', 'widget' or 'formatter'
+ *  @param $op
+ *    the name of the operation ('default values'...)
+ *  @param $object
+ *    - if $entity is 'field' or 'widget': the field array,
+ *      including widget info.
+ *    - if $entity is 'formater': the formatter array.
+ *  @return
+ *    CONTENT_HANDLE_CORE    - the content module handles this operation.
+ *    CONTENT_HANDLE_MODULE  - the implementing module handles this operation.
+ */
+function content_handle($entity, $op, $object) {
+  switch ($entity) {
+    case 'field':
+      $info = module_invoke($object['module'], "field_info");
+      return isset($info[$object['type']][$op]) ? $info[$object['type']][$op] : CONTENT_HANDLE_CORE;
+
+    case 'widget':
+      $info = module_invoke($object['widget']['module'], "widget_info");
+      return isset($info[$object['widget']['type']][$op]) ? $info[$object['widget']['type']][$op] : CONTENT_HANDLE_CORE;
+
+    case 'formatter':
+      // Much simpler, formatters arrays *are* the 'formatter_info' itself.
+      // We let content_handle deal with them only for code consistency.
+      return isset($object[$op]) ? $object[$op] : CONTENT_HANDLE_CORE;
+  }
+}
+
+/**
+ *  Helper function to return the correct default value for a field.
+ *
+ *  @param $node
+ *    The node.
+ *  @param $field
+ *    The field array.
+ *  @param $items
+ *    The value of the field in the node.
+ *  @return
+ *    The default value for that field.
+ */
+function content_default_value(&$form, &$form_state, $field, $delta) {
+  $widget_types = _content_widget_types();
+  $module = $widget_types[$field['widget']['type']]['module'];
+
+  $default_value = array();
+  if (!empty($field['widget']['default_value_php'])) {
+    ob_start();
+    $result = eval($field['widget']['default_value_php']);
+    ob_end_clean();
+    if (is_array($result)) {
+      $default_value = $result;
+    }
+  }
+  elseif (!empty($field['widget']['default_value'])) {
+    $default_value = $field['widget']['default_value'];
+  }
+  return (array) $default_value;
+}
+
+/**
+ * Determine whether the user has access to a given field.
+ *
+ * @param $op
+ *   The operation to be performed. Possible values:
+ *   - "edit"
+ *   - "view"
+ * @param $field
+ *   The field on which the operation is to be performed.
+ * @param $account
+ *   (optional) The account to check, if not given use currently logged in user.
+ * @param $node
+ *   (optional) The node on which the operation is to be performed.
+ * @return
+ *   TRUE if the operation is allowed;
+ *   FALSE if the operation is denied.
+ */
+function content_access($op, $field, $account = NULL, $node = NULL) {
+  global $user;
+
+  if (is_null($account)) {
+    $account = $user;
+  }
+  // Check for valid field data.
+  if (!isset($field['field_name'])) {
+    return FALSE;
+  }
+  $access = module_invoke_all('field_access', $op, $field, $account, $node);
+  foreach ($access as $value) {
+    if ($value === FALSE) {
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
+
+ /**
+ * Hide specified fields from the $content variable in node templates.
+ */
+function content_field_wrapper_post_render($content, $element) {
+  $field = content_fields($element['#field_name'], $element['#type_name']);
+  if (theme('content_exclude', $content, $field, $element['#context'])) {
+    return '';
+  }
+  return $content;
+}
+
+
+/**
+ * 'Theme' function for a field's addition to $content.
+ *
+ * Adapts the all-inclusive $content variable in node templates to allow
+ * some field content to be excluded. This is a theme function, so it can be
+ * overridden in different themes to produce different results.
+ *
+ * The html for individual fields and groups are available in the
+ * $FIELD_NAME_rendered and $GROUP_NAME_rendered variables.
+ *
+ * This allows more flexibility in node templates : you can use custom markup
+ * around a few specific fields, and print the rest of the node with $content.
+ *
+ * @param $content
+ *    The themed content for this field or group.
+ *
+ * @param $object
+ *    The field or group array for this item.
+ *    $object['#type_name'] holds the content type.
+ *    $object['#field_name'] holds the field name (if a field).
+ *    $object['#group_name'] holds the group name (if a group).
+ *    $object['display_settings'] holds the display settings
+ *    for all contexts, in an array like:
+ *      $object['display_settings'] => array(
+ *        'full' => array(
+ *          'format' => 'default',
+ *          'exclude' => 0,
+ *         ),
+ *        'teaser' => array(
+ *          'format' => 'default',
+ *          'exclude' => 1,
+ *         ),
+ *      );
+ *
+ * @param $context
+ *    The context for which the node is being rendered.
+ *    Can be one of the following values :
+ *    - 'teaser'
+ *    - 'full'
+ *    - NODE_BUILD_SEARCH_INDEX
+ *    - NODE_BUILD_SEARCH_RESULT
+ *    - NODE_BUILD_RSS
+ *    - NODE_BUILD_PRINT
+ *    - ... any other custom build mode exposed by 3rd party modules using
+ *      hook_content_build_modes().
+ *
+ * @return
+ *   Whether or not content is to be added to $content in this context.
+ *   Uses the value of the 'Exclude' checkbox for this field
+ *   as set on the Manage fields screen.
+ */
+function theme_content_exclude($content, $object, $context) {
+  // The field may be missing info for $contexts added by modules
+  // enabled after the field was last edited.
+  if (empty($object['display_settings'])
+    || empty($object['display_settings'][$context])
+    || !is_array($object['display_settings'][$context])
+    || empty($object['display_settings'][$context]['exclude'])) {
+    return FALSE;
+  }
+  else {
+    return TRUE;
+  }
+}
+
+/**
+ * Theme preprocess function for field.tpl.php.
+ *
+ * The $variables array contains the following arguments:
+ * - $node
+ * - $field
+ * - $items
+ * - $teaser
+ * - $page
+ *
+ * @see field.tpl.php
+ *
+ * TODO : this should live in theme/theme.inc, but then the preprocessor
+ * doesn't get called when the theme overrides the template. Bug in theme layer ?
+ */
+function template_preprocess_content_field(&$variables) {
+  $element = $variables['element'];
+  $field = content_fields($element['#field_name'], $element['#node']->type);
+
+  $variables['node'] = $element['#node'];
+  $variables['field'] = $field;
+  $variables['items'] = array();
+
+  if ($element['#single']) {
+    // Single value formatter.
+    foreach (element_children($element['items']) as $delta) {
+      $variables['items'][$delta] = $element['items'][$delta]['#item'];
+      // Use isset() to avoid undefined index message on #children when field values are empty.
+      $variables['items'][$delta]['view'] = isset($element['items'][$delta]['#children']) ? $element['items'][$delta]['#children'] : '';
+    }
+  }
+  else  {
+    // Multiple values formatter.
+    // We display the 'all items' output as $items[0], as if it was the
+    // output of a single valued field.
+    // Raw values are still exposed for all items.
+    foreach (element_children($element['items']) as $delta) {
+      $variables['items'][$delta] = $element['items'][$delta]['#item'];
+    }
+    $variables['items'][0]['view'] = $element['items']['#children'];
+  }
+
+  $variables['teaser'] = $element['#teaser'];
+  $variables['page'] = $element['#page'];
+
+  $field_empty = TRUE;
+
+  foreach ($variables['items'] as $delta => $item) {
+    if (!isset($item['view']) || (empty($item['view']) && (string)$item['view'] !== '0')) {
+      $variables['items'][$delta]['empty'] = TRUE;
+    }
+    else {
+      $field_empty = FALSE;
+      $variables['items'][$delta]['empty'] = FALSE;
+    }
+  }
+
+  $additions = array(
+    'field_type' => $field['type'],
+    'field_name' => $field['field_name'],
+    'field_type_css' => strtr($field['type'], '_', '-'),
+    'field_name_css' => strtr($field['field_name'], '_', '-'),
+    'label' => check_plain(t($field['widget']['label'])),
+    'label_display' => $element['#label_display'],
+    'field_empty' => $field_empty,
+    'template_files' => array(
+      'content-field',
+      'content-field-'. $element['#field_name'],
+      'content-field-'. $element['#node']->type,
+      'content-field-'. $element['#field_name'] .'-'. $element['#node']->type,
+    ),
+  );
+  $variables = array_merge($variables, $additions);
+}
+
+/**
+ * Theme preprocess function for node.
+ *
+ * - Adds $FIELD_NAME_rendered variables
+ *   containing the themed output for the whole field.
+ * - Adds the formatted values in the 'view' key of the items.
+ */
+function content_preprocess_node(&$vars) {
+  $additions = _content_field_invoke_default('preprocess_node', $vars['node']);
+  $vars = array_merge($vars, $additions);
+}
+
+/**
+ * Debugging using hook_content_fieldapi.
+ *
+ * @TODO remove later
+ *
+ * @param $op
+ * @param $field
+ */
+function content_content_fieldapi($op, $field) {
+  if (module_exists('devel')) {
+    //dsm($op);
+    //dsm($field);
+  }
+}
+
+/**
+ * Implementation of hook_content_extra_fields.
+ *
+ * Informations for non-CCK 'node fields' defined in core.
+ */
+function content_content_extra_fields($type_name) {
+  $type = node_get_types('type', $type_name);
+  $extra = array();
+
+  if ($type->has_title) {
+    $extra['title'] = array(
+      'label' => $type->title_label,
+      'description' => t('Node module form.'),
+      'weight' => -5
+    );
+  }
+  if ($type->has_body) {
+    $extra['body_field'] = array(
+      'label' => $type->body_label,
+      'description' => t('Node module form.'),
+      'weight' => 0,
+      'view' => 'body'
+    );
+  }
+  $extra['revision_information'] = array(
+    'label' => t('Revision information'),
+    'description' => t('Node module form.'),
+    'weight' => 20
+  );
+  $extra['author'] = array(
+    'label' => t('Authoring information'),
+    'description' => t('Node module form.'),
+    'weight' => 20,
+  );
+  $extra['options'] = array(
+    'label' => t('Publishing options'),
+    'description' => t('Node module form.'),
+    'weight' => 25,
+   );
+  if (module_exists('comment')) {
+    $extra['comment_settings'] = array(
+      'label' => t('Comment settings'),
+      'description' => t('Comment module form.'),
+      'weight' => 30
+    );
+  }
+  if (module_exists('locale') && variable_get("language_content_type_$type_name", 0)) {
+    $extra['language'] = array(
+      'label' => t('Language'),
+      'description' => t('Locale module form.'),
+      'weight' => 0
+    );
+  }
+  if (module_exists('translation') && translation_supported_type($type_name)) {
+    $extra['translation'] = array(
+      'label' => t('Translation settings'),
+      'description' => t('Translation module form.'),
+      'weight' => 30
+    );
+  }
+  if (module_exists('menu')) {
+    $extra['menu'] = array(
+      'label' => t('Menu settings'),
+      'description' => t('Menu module form.'),
+      'weight' => -2
+    );
+  }
+  if (module_exists('taxonomy') && taxonomy_get_vocabularies($type_name)) {
+    $extra['taxonomy'] = array(
+      'label' => t('Taxonomy'),
+      'description' => t('Taxonomy module form.'),
+      'weight' => -3
+    );
+  }
+  if (module_exists('book')) {
+    $extra['book'] = array(
+      'label' => t('Book'),
+      'description' => t('Book module form.'),
+      'weight' => 10
+    );
+  }
+  if (module_exists('path')) {
+    $extra['path'] = array(
+      'label' => t('Path settings'),
+      'description' => t('Path module form.'),
+      'weight' => 30
+    );
+  }
+  if ($type_name == 'poll' && module_exists('poll')) {
+    $extra['title'] = array(
+      'label' => t('Poll title'),
+      'description' => t('Poll module title.'),
+      'weight' => -5
+    );
+    $extra['choice_wrapper'] = array(
+      'label' => t('Poll choices'),
+      'description' => t('Poll module choices.'),
+      'weight' => -4
+    );
+    $extra['settings'] = array(
+      'label' => t('Poll settings'),
+      'description' => t('Poll module settings.'),
+      'weight' => -3
+    );
+  }
+  if (module_exists('upload') && variable_get("upload_$type_name", TRUE)) {
+    $extra['attachments'] = array(
+      'label' => t('File attachments'),
+      'description' => t('Upload module form.'),
+      'weight' => 30,
+      'view' => 'files'
+    );
+  }
+
+  return $extra;
+}
+
+/**
+ * Retrieve the user-defined weight for non-CCK node 'fields'.
+ *
+ * CCK's 'Manage fields' page lets users reorder node fields, including non-CCK
+ * items (body, taxonomy, other hook_nodeapi-added elements by contrib modules...).
+ * Contrib modules that want to have their 'fields' supported need to expose
+ * them with hook_content_extra_fields, and use this function to retrieve the
+ * user-defined weight.
+ *
+ * @param $type_name
+ *   The content type name.
+ * @param $pseudo_field_name
+ *   The name of the 'field'.
+ * @return
+ *   The weight for the 'field', respecting the user settings stored
+ *   by content.module.
+ */
+function content_extra_field_weight($type_name, $pseudo_field_name) {
+  $type = content_types($type_name);
+
+  // If we don't have the requested item, this may be because the cached
+  // information for 'extra' fields hasn't been refreshed yet.
+  if (!isset($type['extra'][$pseudo_field_name])) {
+    content_clear_type_cache();
+    $type = content_types($type_name);
+  }
+
+  if (isset($type['extra'][$pseudo_field_name])) {
+    return $type['extra'][$pseudo_field_name]['weight'];
+  }
+}
+
+/**
+ * Find max delta value actually in use for a field.
+ *
+ * Helper function to do things like tell when we should prevent a
+ * change in multiple value settings that would result in data loss,
+ * or know if content actually exists for a field.
+ *
+ * @param $field_name
+ *   The field name to examine.
+ * @param $type_name
+ *   If provided, search only for existing data in that type,
+ *   otherwise search for all instances of field data in all types.
+ * @return
+ *   NULL if field is not in use, or the maximum delta value in use.
+ *
+ * TODO
+ * Go back to the field settings validation and use this function
+ * to prevent (or confirm) changes in multiple values that
+ * would destroy data.
+ *
+ * Fields with only NULL data will show up as being in use.
+ * Do we want to eliminate them from the results?
+ */
+function content_max_delta($field_name, $type_name = NULL) {
+  $fields = content_fields();
+  $field = $fields[$field_name];
+
+  // Non-multiple value fields don't use the delta column,
+  // but could exist in multiple databases. If any value
+  // exists in any examined table, the max delta will be zero.
+  if (empty($field['multiple'])) {
+    $content_types = content_types();
+    foreach ($content_types as $content_type) {
+      if (empty($type_name) || $content_type['type'] == $type_name) {
+        foreach ($content_type['fields'] as $field) {
+          $db_info = content_database_info($field);
+          if (db_result(db_query("SELECT COUNT(*) FROM {". $db_info['table'] ."}")) >= 1) {
+            return 0;
+          }
+        }
+      }
+    }
+  }
+  // Multiple value fields always share the same table and use the delta.
+  // If we want to find delta values for a particular type, we join
+  // in the node table to limit the type.
+  else {
+    $db_info = content_database_info($field);
+    if (!empty($type_name)) {
+      $delta = db_result(db_query("SELECT MAX(delta) FROM {". $db_info['table'] ."} f LEFT JOIN {node} n ON f.vid = n.vid WHERE n.type = '%s'", $type_name));
+    }
+    else {
+      $delta = db_result(db_query("SELECT MAX(delta) FROM {". $db_info['table'] ."}"));
+    }
+    if ($delta >= 0) {
+      return $delta;
+    }
+  }
+  // If we got this far, there is no data for this field.
+  return NULL;
+}
+
+/**
+ * Helper function to identify inactive fields.
+ */
+function content_inactive_fields($type_name = NULL) {
+  module_load_include('inc', 'content', 'includes/content.crud');
+  if (!empty($type_name)) {
+    $param = array('type_name' => $type_name);
+    $inactive = array($type_name => array());
+  }
+  else {
+    $param = array();
+    $inactive = array();
+  }
+  $all = content_field_instance_read($param, TRUE);
+  $active = array_keys(content_fields());
+  foreach ($all as $field) {
+    if (!in_array($field['field_name'], $active)) {
+      $inactive[$field['type_name']][$field['field_name']] = content_field_instance_expand($field);
+    }
+  }
+  if (!empty($type_name)) {
+    return $inactive[$type_name];
+  }
+  return $inactive;
+}
+
+ 
+/**
+ * Helper function to identify inactive instances.
+ * This will be the same results as content_inactive_fields(),
+ * EXCEPT that his function will return inactive instances even 
+ * if the fields have other (shared) instances that are still active.
+ */
+function content_inactive_instances($type_name = NULL) {
+  module_load_include('inc', 'content', 'includes/content.crud');
+  if (!empty($type_name)) {
+    $param = array('type_name' => $type_name);
+    $inactive = array($type_name => array());
+  }
+  else {
+    $param = array();
+    $inactive = array();
+  }
+  $all = content_field_instance_read($param, TRUE);
+  foreach ($all as $field) {
+    $inactive[$field['type_name']][$field['field_name']] = content_field_instance_expand($field);
+  }
+  if (!empty($type_name)) {
+    return $inactive[$type_name];
+  }
+  return $inactive;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add-existing-field.html b/drupal/sites/default/boinc/modules/contrib/cck/help/add-existing-field.html
new file mode 100644
index 0000000..024007c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/add-existing-field.html
@@ -0,0 +1,47 @@
+<!-- $Id$ -->
+<p>Using a field across several content type can be handy if a piece of data
+is relevant for several content types. A typical use case is a 'Phone number'
+field, used in both 'Restaurant' and 'Hotel' content types, even if hotels
+and restaurants are different enough to deserve their own specific set of
+fields and thus their own dedicated content types.</p>
+
+<p>When a field has been added to more than one content type, we also say it is
+"shared", and that it as "several instances".</p>
+
+<p>At the bottom of the <strong>Manage fields</strong> page for a content type,
+you'll find this:</p>
+
+<img src="&path&add-existing-field.png">
+
+<p>In order to add a new instance of an existing field to a content type, you
+need to provide the following information:</p>
+<dl>
+  <dt><strong>Label:</strong></dt>
+  <dd>
+    A human-readable name for the field. It will be used in input forms and
+    on displayed content.<br/>
+    All characters are allowed, including spaces, accentuated or non-european
+    characters.<br/>
+  </dd>
+
+  <dt><strong>Field:</strong></dt>
+  <dd>
+    The field to be shared.<br/>
+    A field cannot appear more than once in each content type. Thus, only
+    fields that are not already present in the current content type will be
+    proposed as "shareable". If none, the <strong>Add existing field</strong>
+    option is not available on the <strong>Manage fields</strong> page for
+    this content type.<br/>
+    Selecting a field automatically populates the <strong>Label</strong> and
+    <strong>Widget</strong> values with the ones used by the previous field
+    instance, but you can change them if needed before submitting the form.
+  </dd>
+
+  <dt><strong>Widget:</strong></dt>
+  <dd>
+    The form element that will be used to input data for this field on
+    content forms : text input, select list, etc...<br/>
+    Each field type has its own list of available widgets. When selecting a
+    field to share, the list of widgets you can select is automatically updated.
+  </dd>
+</dl>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add-existing-field.png b/drupal/sites/default/boinc/modules/contrib/cck/help/add-existing-field.png
new file mode 100644
index 0000000..4b12665
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/add-existing-field.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-field.html b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-field.html
new file mode 100644
index 0000000..7c9de37
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-field.html
@@ -0,0 +1,58 @@
+<!-- $Id$ -->
+<p>At the bottom of the <strong>Manage fields</strong> page for a content type,
+you'll find this:</p>
+
+<img src="&path&add-new-field.png">
+
+<p>In order to add a new field to a content type, you need to provide the
+following information:</p>
+<dl>
+  <dt>Label:</dt>
+  <dd>
+    A human-readable name for the field. It will be used in input forms and
+    on displayed content.<br/>
+    All characters are allowed, including spaces, accentuated or non-european
+    characters.
+  </dd>
+
+  <dt>Field name:</dt>
+  <dd>
+    A machine-readable name for the field. It is used internally to identify
+    the field and handle database storage. When doing custom theming, it is
+    this identifier that you'll use to refer to that field.<br/>
+    <strong>Important:</strong> The field name cannot be changed once the field has been
+    created.<br/>
+    Allowed characters: a-z (unaccentuated), 0-9 and the underscore (_).<br/>
+    The length of the field name cannot exceed 32 characters (including the
+    'field_' prefix that gets added automatically - that is, 26 free characters)<br/>
+  </dd>
+
+  <dt>Field type:</dt>
+  <dd>
+    The type of data to be stored in that field.<br/>
+    <strong>Important:</strong> The field type cannot be changed once the field has been
+    created.<br/>
+    The available field types depend on the modules you have enabled on your site. CCK comes with 6
+    basic field types :
+    <ul>
+      <li>Text</li>
+      <li>Integer</li>
+      <li>Float</li>
+      <li>Decimal</li>
+      <li>Node reference</li>
+      <li>User reference</li>
+    </ul>
+    Additional modules can be downloaded to handle other field types such as
+    dates, files, images... Look at the
+    <a href="http://www.drupal.org/project/cck" target="_blank"> CCK project page</a>
+    and the <a href="http://drupal.org/project/Modules/category/88" target="_blank">complete list of CCK-related modules</a>.
+  </dd>
+
+  <dt>Widget:</dt>
+  <dd>
+    The form element that will be used to input data for this field on
+    content forms : text input, select list, etc...<br/>
+    Each field type has its own list of available widgets. When selecting a
+    field type, the list of widgets you can select is automatically updated.
+  </dd>
+</dl>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-field.png b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-field.png
new file mode 100644
index 0000000..a729044
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-field.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-group.html b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-group.html
new file mode 100644
index 0000000..0e3a61b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-group.html
@@ -0,0 +1,40 @@
+<!-- $Id$ -->
+<p>Field groups are used to visually gather several fields that are associated
+by some sort of logic, for instance several text fields that hold the different
+parts of an 'Address'. On input forms and displayed content, the corresponding
+fields are enclosed inside an HTML fieldset.</p>
+
+<img style="vertical-align:top" src="&path&group-node-edit-form.png">
+<img style="vertical-align:top" src="&path&group-node-display.png">
+
+<p>At the bottom of the <strong>Manage fields</strong> page for a content type,
+you'll find this:</p>
+
+<img src="&path&add-new-group.png">
+
+<p>In order to add a new group to a content type, you need to provide the
+following information:</p>
+<dl>
+  <dt><strong>Label:</strong></dt>
+  <dd>
+    A human-readable name for the group. It will be used in input forms and
+    on displayed content.<br/>
+    All characters are allowed, including spaces, accentuated or non-european
+    characters.<br/>
+  </dd>
+
+  <dt>Group name:</dt>
+  <dd>
+    A machine-readable name for the group. It is used internally to identify
+    the group. When doing custom theming, it is this identifier that you'll use
+    to refer to that group.<br/>
+    <strong>Important:</strong> The group name cannot be changed once the group has been
+    created.<br/>
+    Allowed characters: a-z (unaccentuated), 0-9 and the underscore (_).<br/>
+    The length of the group name cannot exceed 32 characters (including the
+    'group_' prefix that gets added automatically - that is, 26 free characters)<br/>
+  </dd>
+</dl>
+
+<p>Once a group has been created, you can define what fields it will enclose by
+<a href="topic:content/rearrange">rearranging fields and groups</a>.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-group.png b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-group.png
new file mode 100644
index 0000000..cedbe44
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new-group.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add-new.png b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new.png
new file mode 100644
index 0000000..bda9a22
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/add-new.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/add.html b/drupal/sites/default/boinc/modules/contrib/cck/help/add.html
new file mode 100644
index 0000000..91ff3a6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/add.html
@@ -0,0 +1,16 @@
+<!-- $Id$ -->
+<p>The form elements at the bottom of the <strong>Manage fields</strong> page
+let you add fields and groups to your content types.</p>
+
+<img src="&path&add-new.png">
+
+<p style="font-size:smaller">(The <strong>Add existing field</strong> row is
+displayed only if there are fields available in other content types.
+The <strong>Add new group</strong> rows is displayed only if Fieldgroup module
+is enabled.)</p>
+<p>Your fields and groups will be created after you click the <strong>Save</strong>
+button at the bottom of the page. In subsequent pages you will be presented
+with the settings form for each field you added.</p>
+
+<p>You will find more details on the required informations in the
+following pages:</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/content.help.ini b/drupal/sites/default/boinc/modules/contrib/cck/help/content.help.ini
new file mode 100644
index 0000000..89120a9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/content.help.ini
@@ -0,0 +1,60 @@
+; $Id$
+
+[advanced help settings]
+name = CCK
+index name = "CCK (Content Construction Kit)"
+
+[fields]
+title = Fields and Widgets
+weight = -10
+
+[manage-fields]
+title = 'Manage fields' tab
+
+[add]
+title = Add fields and groups
+parent = manage-fields
+weight = 1
+
+[add-new-field]
+title = Add a new field
+parent = add
+weight = 1
+
+[add-existing-field]
+title = Add an existing field : share a field across content types
+parent = add
+weight = 2
+
+[add-new-group]
+title = Add a new group
+parent = add
+weight = 3
+
+[rearrange]
+title = Rearrange fields and groups
+parent = manage-fields
+weight = 2
+
+[remove]
+title = Remove fields and groups
+parent = manage-fields
+weight = 3
+
+[theme]
+title = Theming CCK data in nodes
+
+[theme-node-templates]
+title = Node templates
+parent = theme
+weight = 1
+
+[theme-field-templates]
+title = Field templates
+parent = theme
+weight = 2
+
+[theme-formatters]
+title = Formatter theme functions
+parent = theme
+weight = 3
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/drag-groups.png b/drupal/sites/default/boinc/modules/contrib/cck/help/drag-groups.png
new file mode 100644
index 0000000..8d13dc8
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/drag-groups.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/drag-new.png b/drupal/sites/default/boinc/modules/contrib/cck/help/drag-new.png
new file mode 100644
index 0000000..05c2c69
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/drag-new.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/draggable.png b/drupal/sites/default/boinc/modules/contrib/cck/help/draggable.png
new file mode 100644
index 0000000..3ab0bb8
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/draggable.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/fields.html b/drupal/sites/default/boinc/modules/contrib/cck/help/fields.html
new file mode 100644
index 0000000..789fa5f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/fields.html
@@ -0,0 +1 @@
+<p>The Content Construction Kit (CCK) is composed of numerous field and widget modules that can be used to add fields to any content type.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/group-node-display.png b/drupal/sites/default/boinc/modules/contrib/cck/help/group-node-display.png
new file mode 100644
index 0000000..78ce35b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/group-node-display.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/group-node-edit-form.png b/drupal/sites/default/boinc/modules/contrib/cck/help/group-node-edit-form.png
new file mode 100644
index 0000000..831dd76
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/group-node-edit-form.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/manage-fields.html b/drupal/sites/default/boinc/modules/contrib/cck/help/manage-fields.html
new file mode 100644
index 0000000..73eba4c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/manage-fields.html
@@ -0,0 +1,4 @@
+<!-- $Id$ -->
+<p>This page lets you manage the CCK fields in your content type : add fields and
+groups, rearrange them, access their configuration pages, remove them from the
+content type.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/rearrange.html b/drupal/sites/default/boinc/modules/contrib/cck/help/rearrange.html
new file mode 100644
index 0000000..fc9fe8b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/rearrange.html
@@ -0,0 +1,25 @@
+<!-- $Id$ -->
+<p>To change the order of fields, grab a drag-and-drop handle
+<img src="&path&draggable.png"> and drag the field to a new location in the list
+(grab a handle by clicking and holding the mouse while hovering over a handle
+icon). Remember that your changes will not be saved until you click the
+<strong>Save</strong> button at the bottom of the page.</p>
+
+<p>The order you define will be used both on input forms (when creating or
+editing a post), and on content display (teasers, content page, RSS items...)</p>
+<p>You can also change the order of non-CCK 'fields' like <strong>Title</strong>
+or <strong>File attachments</strong>. Depending on the 'field', this will
+affect input forms and/or content display (some of those 'fields' are not
+displayed in both contexts).</p>
+<p>If your content type has groups (requires the Fieldgroup module), you can
+move a field inside a group by dragging it below the row of the group, and
+then slightly to the right before dropping it. Note that groups can also be
+reordered, but can currently not be nested inside other groups.</p>
+
+<img src="&path&drag-groups.png">
+
+<p>When adding a field or a group, you can drag them directly to the
+intended spot in the list of fields and groups that are already present in your
+content type, before clicking <strong>Save</strong>:</p>
+
+<img src="&path&drag-new.png">
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/remove.html b/drupal/sites/default/boinc/modules/contrib/cck/help/remove.html
new file mode 100644
index 0000000..d0c7b31
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/remove.html
@@ -0,0 +1,17 @@
+<!-- $Id$ -->
+<h3>Removing a field</h3>
+
+<p>When you remove a field from a content type, the data it holds are
+<strong>permanently</strong> erased. You will be asked to confirm this action</p>
+
+<p>You will have to manually update your Views, pathauto settings, etc... if
+needed.</p>
+
+<p>Note : if the field is shared across several content types, removing it from
+one content type does <strong>not</strong> affect the data for the other content
+types.</p>
+
+<h3>Removing a group</h3>
+
+<p>Removing a group from a content type does <strong>not</strong> remove the fields
+it contains, and therefore erases no field data.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/theme-field-templates.html b/drupal/sites/default/boinc/modules/contrib/cck/help/theme-field-templates.html
new file mode 100644
index 0000000..63be7a3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/theme-field-templates.html
@@ -0,0 +1,76 @@
+<!-- $Id$ -->
+<p>Field-level theming determines how the values of a given field are
+displayed. The resulting output ends up in the <span class="code">$content</span>
+and <span class="code">$<FIELD_NAME>_rendered</span> variables in the node
+templates.</p>
+
+<h3>Template files</h3>
+
+<p>In order to customize field themeing:</p>
+
+<ul>
+  <li>
+    Copy the <span class="code">content-field.tpl.php</span> template file into
+    your theme's root folder (please keep the contents of the
+    <span class="code">cck/theme</span> folder untouched. For the same reason,
+     need to copy the file instead of just moving it).
+  </li>
+  <li>
+    Edit that copy to your liking. See the comments in
+    <span class="code">cck/theme/content/content-field.tpl.php</span> for a list
+    of all variables available in this template.
+  </li>
+</ul>
+
+<h3>Template suggestions</h3>
+
+<p>In addition, the theme layer will also look for field-specific variants
+(suggestions), in the following order of precedence:</p>
+
+<dl>
+  <dt>content-field-<FIELD_NAME>-<CONTENT_TYPE_NAME>.tpl.php</dt>
+  <dd>
+    ex: <span class="code">content-field-field_myfield-story.tpl.php</span> -
+    If present, will be used to theme the 'field_myfield' field when displaying
+    a 'story' node.
+  </dd>
+
+  <dt>content-field-<CONTENT_TYPE_NAME>.tpl.php</dt>
+  <dd>
+    ex: <span class="code">content-field-story.tpl.php</span> - If present,
+    will be used to theme all fields of 'story' nodes.
+  </dd>
+
+  <dt>content-field-<FIELD_NAME>.tpl.php</dt>
+  <dd>
+    ex: <span class="code">content-field-field_myfield.tpl.php</span> -
+    If present, will be used to theme all 'field_myfield' field in all the
+    content types it appears in.
+  </dd>
+
+  <dt>content-field.tpl.php</dt>
+  <dd>
+    If none of the above is present, the base template will be used.
+  </dd>
+</dl>
+
+<strong>Important:</strong>
+<ul>
+  <li>
+    Suggestions work only if the theme also has the base template file.
+    If your theme has <span class="code">content-field-*.tpl.php</span> files,
+    it must also have a <span class="code">content-field.tpl.php</span> file.
+  </li>
+  <li>
+    Whenever you add new template files in your theme, you need to
+    rebuild the theme registry, or the theme engine won't see them.<br/>
+    You can do that by :<br/>
+    - visiting the <a href="&base_url&admin/build/modules">Administer modules</a> page<br/>
+    - or using <a href="http://www.drupal.org/project/devel">Devel module</a>'s
+    'clear cache' link.
+  </li>
+</ul>
+
+<p>See the <a href="http://drupal.org/node/223440">Working with template suggestions</a>
+section of the <a href="http://drupal.org/theme-guide">Theme guide for Drupal 6</a>
+for more informations about templates and template suggestions.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/theme-formatters.html b/drupal/sites/default/boinc/modules/contrib/cck/help/theme-formatters.html
new file mode 100644
index 0000000..efbe6e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/theme-formatters.html
@@ -0,0 +1,14 @@
+<!-- $Id$ -->
+<p>Formatters are used to turn the raw data for a single field value into html.
+The <strong>Display Fields</strong> tab lets you chose which formatter you want to use
+for each of your fields.</p>
+
+<p>In CCK 2.0 for Drupal 6, all formatters now go through the theme layer.
+Therefore, overriding a formatter's theme is another way you can alter how your
+values are displayed (whereas changing <span class="code">content-field.tpl.php</span>
+lets you change the html that "wraps" the values).</p>
+
+<p>Most formatters come as theme functions, but some might use templates instead.
+Either way, you can override them using the usual Drupal 6 theme override
+practices. For more informations, see the <a href="http://drupal.org/theme-guide">Theme guide for Drupal 6</a>,
+and more specifically the <a href="http://drupal.org/node/173880">Overriding themable output</a> section.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/theme-node-templates.html b/drupal/sites/default/boinc/modules/contrib/cck/help/theme-node-templates.html
new file mode 100644
index 0000000..8118da0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/theme-node-templates.html
@@ -0,0 +1,131 @@
+<!-- $Id$ -->
+<h3>Template files</h3>
+
+<p>All themes usually come with a default <span class="code">node.tpl.php</span>
+template. Drupal core lets you use the following variant (suggestion):</p>
+
+<dl>
+  <dt>node-<CONTENT_TYPE_NAME>.tpl.php</dt>
+  <dd>
+    ex: <span class="code">node-story.tpl.php</span> - If present, will be used
+    to theme a 'story' node.
+  </dd>
+</dl>
+
+<p><strong>Important:</strong> whenever you add new template files in your theme, you
+need to rebuild the theme registry, or the theme engine won't see them.<br/>
+You can do that by :<br/>
+- visiting the <a href="&base_url&admin/build/modules">Administer modules</a> page<br/>
+- or using <a href="http://www.drupal.org/project/devel">Devel module</a>'s
+'clear cache' link.</p>
+
+<h3>Template variables</h3>
+
+<p>CCK makes the following variables available in your theme's node templates:</p>
+
+<dl>
+  <dt>$<FIELD_NAME>_rendered</dt>
+  <dd>
+    Contains the rendered html for the field, including the label and all the
+    field's values, with the settings defined on the <strong>Display fields</strong> tab.
+  </dd>
+
+  <dt>$<GROUP_NAME>_rendered</dt>
+  <dd>
+    Contains the rendered html for the fieldgroup (if any), including the label
+    and all the group's fields, with the settings defined on the <strong>Display
+    fields</strong> tab.<br/>
+    This variable therefore includes the html contained in all the
+    <span class="code">$<FIELD_NAME>_rendered</span> variables for the
+    group's fields.
+  </dd>
+
+  <dt>$FIELD_NAME</dt>
+  <dd>
+    Contains the raw values of the fields, in the usual array-format used
+    internally by CCK. What you find in there depends on the field type.<br/>
+    Each value also contains a <span class="code">'view'</span> element, that
+    holds the ready-to-display value as rendered by the formatter. For instance:
+    <pre>
+array(
+  0 => array(
+    'nid' => 5,
+    'view' => '<a href="node/5">Title of node 5</a>',
+  ),
+);</pre>
+    <strong>Raw data are not sanitized for output, it is therefore not
+    advised to use them directly</strong>. Use the <span class="code">'view'</span>
+    value, or run the values through <span class="code">content_format()</span>.
+  </dd>
+</dl>
+
+<h3>Excluding fields from the $content variable</h3>
+
+<p>By default, the <span class="code">$content</span> variable used in node
+templates contains the rendered html for the whole node : CCK fields and
+fieldgroups, but also body, file attachments, fivestar widgets, ...</p>
+
+<p>If for some fields you want to use the more fine-grained variables described
+above, you might want to use the <strong>Exclude</strong> checkboxes on the <strong>Display
+fields</strong> screen, so that the output of those fields is excluded from the
+<span class="code">$content</span> variable.</p>
+
+<p>You can then customize the display and layout of some CCK fields or groups
+using the <span class="code">$<FIELD_NAME>_rendered</span> /
+<span class="code">$<GROUP_NAME>_rendered</span> variables, and trust
+<span class="code">$content</span> to display 'the rest' without getting
+duplicate information.</p>
+
+<h5>Advanced trick</h5>
+<p>The <strong>Exclude</strong> checkboxes affect all active themes. On sites with multiple
+themes, however, the list of fields to exclude from <span class="code">$content</span>
+might need to be different across the themes, depending on how their respective
+node templates are structured.</p>
+
+<p>A theme can bypass those settings by overriding the <span class="code">theme_content_exclude()</span>
+function to specify the list of fields to exclude for this theme (see the
+PHPDoc of the function for more information).</p>
+
+
+<h3>Special case : nodes in nodereference fields</h3>
+
+<p>In addition to the above, the following suggestions will be looked for
+in priority for nodes that are displayed as values of a nodereference field using
+the 'teaser' or 'full node' formatters:</p>
+
+<dl>
+  <dt>node-nodereference-<REFERRING_FIELD_NAME>-<TYPE_NAME>.tpl.php</dt>
+  <dd>
+    ex: <span class="code">node-nodereference-field_noderef-story.tpl.php</span> -
+    If present, will be used to theme a 'story' node when refererenced in the
+    'field_noderef' field.
+  </dd>
+
+  <dt>node-nodereference-<TYPE_NAME>.tpl.php</dt>
+  <dd>
+    ex: <span class="code">node-nodereference-story.tpl.php</span> - If present,
+    will be used to theme a 'story' node when refererenced in any nodereference
+    field.
+  </dd>
+
+  <dt>node-nodereference-<REFERRING_FIELD_NAME>.tpl.php</dt>
+  <dd>
+    ex: <span class="code">node-nodereference-field_noderef.tpl.php</span> - If
+    present, will be used to a node refererenced in the 'field_noderef' field.
+  </dd>
+
+  <dt>node-nodereference.tpl.php</dt>
+  <dd>
+    If present, will be used to theme nodes referenced in nodereference fields.
+  </dd>
+</dl>
+
+<p>The following additional variables are available in templates for referenced nodes:</p>
+
+<dl>
+  <dt>$referring_field</dt>
+  <dd>The nodereference field that references the current node.</dd>
+
+  <dt>$referring_node</dt>
+  <dd>The node referencing the current node.</dd>
+</dl>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/theme.html b/drupal/sites/default/boinc/modules/contrib/cck/help/theme.html
new file mode 100644
index 0000000..e2f60fa
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/help/theme.html
@@ -0,0 +1,10 @@
+<!-- $Id$ -->
+<p><strong>Note:</strong> these instructions assume you are familiar with the basic concepts
+of Drupal 6 theming. For more informations, see the <a href="http://drupal.org/theme-guide">Theme guide for Drupal 6</a>,
+and more specifically the <a href="http://drupal.org/node/173880">Overriding themable output</a>
+section.</p>
+
+<p>There are 3 levels where you can customize how the data in CCK fields
+is displayed in nodes:</p>
+
+<img src="&path&theme.png" class="content-border">
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/help/theme.png b/drupal/sites/default/boinc/modules/contrib/cck/help/theme.png
new file mode 100644
index 0000000..d928100
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/help/theme.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/content.admin.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.admin.inc
new file mode 100644
index 0000000..e0050f5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.admin.inc
@@ -0,0 +1,1916 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Administrative interface for content type creation.
+ */
+
+
+/**
+ * Menu callback; replacement for node_overview_types().
+ */
+function content_types_overview() {
+  $types = node_get_types();
+  $names = node_get_types('names');
+  $header = array(t('Name'), t('Type'), t('Description'), array('data' => t('Operations'), 'colspan' => '4'),);
+  $rows = array();
+
+  foreach ($names as $key => $name) {
+    $type = $types[$key];
+    if (node_hook($type, 'form')) {
+      $type_url_str = str_replace('_', '-', $type->type);
+      $row = array(
+        check_plain($name),
+        check_plain($type->type),
+      );
+      // Make the description smaller
+      $row[] = array('data' => filter_xss_admin($type->description), 'class' => 'description');
+      // Set the edit column.
+      $row[] = array('data' => l(t('edit'), 'admin/content/node-type/'. $type_url_str));
+      // Set links for managing fields.
+      // TODO: a hook to allow other content modules to add more stuff?
+      $row[] = array('data' => l(t('manage fields'), 'admin/content/node-type/'. $type_url_str .'/fields'));
+      // Set the delete column.
+      if ($type->custom) {
+        $row[] = array('data' => l(t('delete'), 'admin/content/node-type/'. $type_url_str .'/delete'));
+      }
+      else {
+        $row[] = array('data' => '');
+      }
+
+      $rows[] = $row;
+    }
+  }
+
+  // Allow external modules alter the table headers and rows.
+  foreach (module_implements('content_types_overview_alter') as $module) {
+    $function = $module .'_content_types_overview_alter';
+    $function($header, $rows);
+  }
+
+  if (empty($rows)) {
+    $rows[] = array(array('data' => t('No content types available.'), 'colspan' => '7', 'class' => 'message'));
+  }
+
+  return theme('table', $header, $rows) .theme('content_overview_links');
+}
+
+function theme_content_overview_links() {
+  return '<div class="content-overview-links">'. l(t('» Add a new content type'), 'admin/content/types/add') .'</div>';
+}
+
+/**
+ * Menu callback; lists all defined fields for quick reference.
+ */
+function content_fields_list() {
+  $fields = content_fields();
+  $field_types = _content_field_types();
+
+  // Sort fields by field name.
+  ksort($fields);
+
+  $header = array(t('Field name'), t('Field type'), t('Used in'));
+  $rows = array();
+  foreach ($fields as $field) {
+    $row = array();
+    $row[] = $field['locked'] ? t('@field_name (Locked)', array('@field_name' => $field['field_name'])) : $field['field_name'];
+    $row[] = t($field_types[$field['type']]['label']);
+
+    $types = array();
+    $result = db_query("SELECT nt.name, nt.type FROM {". content_instance_tablename() ."} nfi ".
+    "LEFT JOIN {node_type} nt ON nt.type = nfi.type_name ".
+    "WHERE nfi.field_name = '%s' ".
+    // Keep disabled modules out of table.
+    "AND nfi.widget_active = 1 ".
+    "ORDER BY nt.name ASC", $field['field_name']);
+    while ($type = db_fetch_array($result)) {
+      $content_type = content_types($type['type']);
+      $types[] = l($type['name'], 'admin/content/node-type/'. $content_type['url_str'] .'/fields');
+    }
+    $row[] = implode(', ', $types);
+
+    $rows[] = array('data' => $row, 'class' => $field['locked'] ? 'menu-disabled' : '');
+  }
+  if (empty($rows)) {
+    $output = t('No fields have been defined for any content type yet.');
+  }
+  else {
+    $output = theme('table', $header, $rows);
+  }
+  return $output;
+}
+
+/**
+ * Helper function to display a message about inactive fields.
+ */
+function content_inactive_message($type_name) {
+  $inactive_fields = content_inactive_fields($type_name);
+  if (!empty($inactive_fields)) {
+    $field_types = _content_field_types();
+    $widget_types = _content_widget_types($type_name);
+    drupal_set_message(t('This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled.'), 'error');
+    foreach ($inactive_fields as $field_name => $field) {
+      drupal_set_message(t('!field (!field_name) is an inactive !field_type field that uses a !widget_type widget.', array(
+      '!field' => $field['widget']['label'],
+      '!field_name' => $field['field_name'],
+      '!field_type' => array_key_exists($field['type'], $field_types) ? $field_types[$field['type']]['label'] : $field['type'],
+      '!widget_type' => array_key_exists($field['widget']['type'], $widget_types) ? $widget_types[$field['widget']['type']]['label'] : $field['widget']['type'],
+      )));
+    }
+  }
+}
+
+/**
+ * Menu callback; listing of fields for a content type.
+ *
+ * Allows fields to be reordered and nested in fieldgroups using
+ * JS drag-n-drop. Non-CCK form elements can also be moved around.
+ */
+function content_field_overview_form(&$form_state, $type_name) {
+
+  content_inactive_message($type_name);
+
+  // When displaying the form, make sure the list of fields
+  // is up-to-date.
+  if (empty($form_state['post'])) {
+    content_clear_type_cache();
+  }
+
+  // Gather type information.
+  $type = content_types($type_name);
+  $fields = $type['fields'];
+  $field_types = _content_field_types();
+
+  $extra = $type['extra'];
+  $groups = $group_options = $group_types = array();
+  if (module_exists('fieldgroup')) {
+    $groups = fieldgroup_groups($type['type']);
+    $group_types = fieldgroup_types();
+    $group_options = _fieldgroup_groups_label($type['type']);
+    // Add the ability to group under the newly created row.
+    $group_options['_add_new_group'] = '_add_new_group';
+  }
+
+  // Store the default weights as we meet them, to be able to put the
+  //'add new' rows after them.
+  $weights = array();
+
+  $form = array(
+    '#tree' => TRUE,
+    '#type_name' => $type['type'],
+    '#fields' => array_keys($fields),
+    '#groups' => array_keys($groups),
+    '#extra' => array_keys($extra),
+    '#field_rows' => array(),
+    '#group_rows' => array(),
+  );
+
+  // Fields.
+  foreach ($fields as $name => $field) {
+    $weight = $field['widget']['weight'];
+    $form[$name] = array(
+      'label' => array('#value' => check_plain($field['widget']['label'])),
+      'field_name' => array('#value' => $field['field_name']),
+      'type' => array('#value' => t($field_types[$field['type']]['label'])),
+      'configure' => array('#value' => l(t('Configure'), 'admin/content/node-type/'. $type['url_str'] .'/fields/'. $field['field_name'])),
+      'remove' => array('#value' => l(t('Remove'), 'admin/content/node-type/'. $type['url_str'] .'/fields/'. $field['field_name'] .'/remove')),
+      'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
+      'parent' => array('#type' => 'select', '#options' => $group_options, '#default_value' => ''),
+      'prev_parent' => array('#type' => 'hidden', '#value' => ''),
+      'hidden_name' => array('#type' => 'hidden', '#default_value' => $field['field_name']),
+      '#leaf' => TRUE,
+      '#row_type' => 'field',
+      'field' =>  array('#type' => 'value', '#value' => $field),
+    );
+    if ($field['locked']) {
+      $form[$name]['configure'] = array('#value' => t('Locked'));
+      $form[$name]['remove'] = array();
+      $form[$name]['#disabled_row'] = TRUE;
+    }
+    $form['#field_rows'][] = $name;
+    $weights[] = $weight;
+  }
+
+  // Groups.
+  foreach ($groups as $name => $group) {
+    $weight = $group['weight'];
+    $form[$name] = array(
+      'label' => array('#value' => check_plain($group['label'])),
+      'group_name' => array('#value' => $group['group_name']),
+      'group_type' => array('#value' => t($group_types[$group['group_type']])),
+      'configure' => array('#value' => l(t('Configure'), 'admin/content/node-type/'. $type['url_str'] .'/groups/'. $group['group_name'])),
+      'remove' => array('#value' => l(t('Remove'), 'admin/content/node-type/'. $type['url_str'] .'/groups/'. $group['group_name'] .'/remove')),
+      'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
+      'parent' => array('#type' => 'hidden', '#default_value' => ''),
+      'hidden_name' => array('#type' => 'hidden', '#default_value' => $group['group_name']),
+      '#root' => TRUE,
+      '#row_type' => 'group',
+      'group' => array('#type' => 'value', '#value' => $group),
+    );
+    // Adjust child fields rows.
+    foreach ($group['fields'] as $field_name => $field) {
+      $form[$field_name]['parent']['#default_value'] = $name;
+      $form[$field_name]['prev_parent']['#value'] = $name;
+    }
+    $form['#group_rows'][] = $name;
+    $weights[] = $weight;
+  }
+
+  // Non-CCK 'fields'.
+  foreach ($extra as $name => $label) {
+    $weight = $extra[$name]['weight'];
+    $form[$name] = array(
+      'label' => array('#value' => check_plain(t($extra[$name]['label']))),
+      'description' => array('#value' => isset($extra[$name]['description']) ? $extra[$name]['description'] : ''),
+      'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
+      'parent' => array('#type' => 'hidden', '#default_value' => ''),
+      'configure' => array('#value' => isset($extra[$name]['configure']) ? $extra[$name]['configure'] : ''),
+      'remove' => array('#value' => isset($extra[$name]['remove']) ? $extra[$name]['remove'] : ''),
+      'hidden_name' => array('#type' => 'hidden', '#default_value' => $name),
+      '#leaf' => TRUE,
+      '#root' => TRUE,
+      '#disabled_row' => TRUE,
+      '#row_type' => 'extra',
+    );
+    $form['#field_rows'][] = $name;
+    $weights[] = $weight;
+  }
+
+  // Additional row : add new field.
+  $weight = max($weights) + 1;
+  $field_type_options = content_field_type_options();
+  $widget_type_options = content_widget_type_options(NULL, TRUE);
+  if ($field_type_options && $widget_type_options) {
+    array_unshift($field_type_options, t('- Select a field type -'));
+    array_unshift($widget_type_options, t('- Select a widget -'));
+    $name = '_add_new_field';
+    $form[$name] = array(
+      'label' => array(
+        '#type' => 'textfield',
+        '#size' => 15,
+        '#description' => t('Label'),
+      ),
+      'field_name' => array(
+        '#type' => 'textfield',
+        // This field should stay LTR even for RTL languages.
+        '#field_prefix' => '<span dir="ltr">field_',
+        '#field_suffix' => '</span>‎',
+        '#attributes' => array('dir'=>'ltr'),
+        '#size' => 15,
+        // Field names are limited to 32 characters including the 'field_'
+        // prefix which is 6 characters long.
+        '#maxlength' => 26,
+        '#description' => t('Field name (a-z, 0-9, _)'),
+      ),
+      'type' => array(
+        '#type' => 'select',
+        '#options' => $field_type_options,
+        '#description' => theme('advanced_help_topic', 'content', 'fields') . t('Type of data to store.'),
+      ),
+      'widget_type' => array(
+        '#type' => 'select',
+        '#options' => $widget_type_options,
+        '#description' => t('Form element to edit the data.'),
+      ),
+      'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
+      'parent' => array('#type' => 'select', '#options' => $group_options, '#default_value' => ''),
+      'hidden_name' => array('#type' => 'hidden', '#default_value' => $name),
+      '#leaf' => TRUE,
+      '#add_new' => TRUE,
+      '#row_type' => 'add_new_field',
+    );
+    $form['#field_rows'][] = $name;
+  }
+
+  // Additional row : add existing field.
+  $existing_field_options = content_existing_field_options($type_name);
+  if ($existing_field_options && $widget_type_options) {
+    $weight++;
+    array_unshift($existing_field_options, t('- Select an existing field -'));
+    $name = '_add_existing_field';
+    $form[$name] = array(
+      'label' => array(
+        '#type' => 'textfield',
+        '#size' => 15,
+        '#description' => t('Label'),
+      ),
+      'field_name' => array(
+        '#type' => 'select',
+        '#options' => $existing_field_options,
+        '#description' => t('Field to share'),
+      ),
+      'widget_type' => array(
+        '#type' => 'select',
+        '#options' => $widget_type_options,
+        '#description' => t('Form element to edit the data.'),
+      ),
+      'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
+      'parent' => array('#type' => 'select', '#options' => $group_options, '#default_value' => ''),
+      'hidden_name' => array('#type' => 'hidden', '#default_value' => $name),
+      '#leaf' => TRUE,
+      '#add_new' => TRUE,
+      '#row_type' => 'add_existing_field',
+    );
+    $form['#field_rows'][] = $name;
+  }
+
+  // Additional row : add new group.
+  if (!empty($group_types)) {
+    $weight++;
+    $name = '_add_new_group';
+    $form[$name] = array(
+      'label' => array(
+        '#type' => 'textfield',
+        '#size' => 15,
+        '#description' => t('Label'),
+      ),
+      'group_name' => array(
+        '#type' => 'textfield',
+        // This field should stay LTR even for RTL languages.
+        '#field_prefix' => '<span dir="ltr">group_',
+        '#field_suffix' => '</span>‎',
+        '#attributes' => array('dir'=>'ltr'),
+        '#size' => 15,
+        // Group names are limited to 32 characters including the 'group_'
+        // prefix which is 6 characters long.
+        '#maxlength' => 26,
+        '#description' => t('Group name (a-z, 0-9, _)'),
+      ),
+      'group_option' => array(
+        '#type' => 'hidden',
+        '#value' => '',
+      ),
+      'group_type' => array(
+        '#type' => 'hidden',
+        '#value' => 'standard',
+      ),
+      'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
+      'parent' => array('#type' => 'hidden', '#default_value' => ''),
+      'hidden_name' => array('#type' => 'hidden', '#default_value' => $name),
+      '#root' => TRUE,
+      '#add_new' => TRUE,
+      '#row_type' => 'add_new_group',
+    );
+    if (count($group_types) > 1) {
+      $form[$name]['group_type'] = array(
+        '#type' => 'select',
+        '#description' => t('Type of group.'),
+        '#options' => $group_types,
+        '#default_value' => 'standard',
+      );
+    }
+    $form['#group_rows'][] = $name;
+  }
+
+  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  return $form;
+}
+
+function content_field_overview_form_validate($form, &$form_state) {
+  _content_field_overview_form_validate_add_new($form, $form_state);
+  _content_field_overview_form_validate_add_existing($form, $form_state);
+}
+
+/**
+ * Helper function for content_field_overview_form_validate.
+ *
+ * Validate the 'add new field' row.
+ */
+function _content_field_overview_form_validate_add_new($form, &$form_state) {
+  $field = $form_state['values']['_add_new_field'];
+
+  // Validate if any information was provided in the 'add new field' row.
+  if (array_filter(array($field['label'], $field['field_name'], $field['type'], $field['widget_type']))) {
+    // No label.
+    if (!$field['label']) {
+      form_set_error('_add_new_field][label', t('Add new field: you need to provide a label.'));
+    }
+
+    // No field name.
+    if (!$field['field_name']) {
+      form_set_error('_add_new_field][field_name', t('Add new field: you need to provide a field name.'));
+    }
+    // Field name validation.
+    else {
+      $field_name = $field['field_name'];
+
+      // Add the 'field_' prefix.
+      if (substr($field_name, 0, 6) != 'field_') {
+        $field_name = 'field_'. $field_name;
+        form_set_value($form['_add_new_field']['field_name'], $field_name, $form_state);
+      }
+
+      // Invalid field name.
+      if (!preg_match('!^field_[a-z0-9_]+$!', $field_name)) {
+        form_set_error('_add_new_field][field_name', t('Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores.', array('%field_name' => $field_name)));
+      }
+      if (strlen($field_name) > 32) {
+        form_set_error('_add_new_field][field_name', t('Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the \'field_\' prefix.', array('%field_name' => $field_name)));
+      }
+      // A field named 'field_instance' would cause a tablename clash with {content_field_instance}
+      if ($field_name == 'field_instance') {
+        form_set_error('_add_new_field][field_name', t("Add new field: the name 'field_instance' is a reserved name."));
+      }
+
+      // Field name already exists.
+      // We need to check inactive fields as well, so we can't use content_fields().
+      module_load_include('inc', 'content', 'includes/content.crud');
+      $fields = content_field_instance_read(array(), TRUE);
+      $used = FALSE;
+      foreach ($fields as $existing_field) {
+        $used |= ($existing_field['field_name'] == $field_name);
+      }
+      if ($used) {
+        form_set_error('_add_new_field][field_name', t('Add new field: the field name %field_name already exists.', array('%field_name' => $field_name)));
+      }
+    }
+
+    // No field type.
+    if (!$field['type']) {
+      form_set_error('_add_new_field][type', t('Add new field: you need to select a field type.'));
+    }
+
+    // No widget type.
+    if (!$field['widget_type']) {
+      form_set_error('_add_new_field][widget_type', t('Add new field: you need to select a widget.'));
+    }
+    // Wrong widget type.
+    elseif ($field['type']) {
+      $widget_types = content_widget_type_options($field['type']);
+      if (!isset($widget_types[$field['widget_type']])) {
+        form_set_error('_add_new_field][widget_type', t('Add new field: invalid widget.'));
+      }
+    }
+  }
+}
+
+/**
+ * Helper function for content_field_overview_form_validate.
+ *
+ * Validate the 'add existing field' row.
+ */
+function _content_field_overview_form_validate_add_existing($form, &$form_state) {
+  // The form element might be absent if no existing fields can be added to
+  // this content type
+  if (isset($form_state['values']['_add_existing_field'])) {
+    $field = $form_state['values']['_add_existing_field'];
+
+    // Validate if any information was provided in the 'add existing field' row.
+    if (array_filter(array($field['label'], $field['field_name'], $field['widget_type']))) {
+      // No label.
+      if (!$field['label']) {
+        form_set_error('_add_existing_field][label', t('Add existing field: you need to provide a label.'));
+      }
+
+      // No existing field.
+      if (!$field['field_name']) {
+        form_set_error('_add_existing_field][field_name', t('Add existing field: you need to select a field.'));
+      }
+
+      // No widget type.
+      if (!$field['widget_type']) {
+        form_set_error('_add_existing_field][widget_type', t('Add existing field: you need to select a widget.'));
+      }
+      // Wrong widget type.
+      elseif ($field['field_name'] && ($existing_field = content_fields($field['field_name']))) {
+        $widget_types = content_widget_type_options($existing_field['type']);
+        if (!isset($widget_types[$field['widget_type']])) {
+          form_set_error('_add_existing_field][widget_type', t('Add existing field: invalid widget.'));
+        }
+      }
+    }
+  }
+}
+
+function content_field_overview_form_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+
+  $type_name = $form['#type_name'];
+  $type = content_types($type_name);
+
+  // Update field weights.
+  $extra = array();
+  foreach ($form_values as $key => $values) {
+    // Groups are handled in fieldgroup_content_overview_form_submit().
+    if (in_array($key, $form['#fields'])) {
+      db_query("UPDATE {". content_instance_tablename() ."} SET weight = %d WHERE type_name = '%s' AND field_name = '%s'",
+        $values['weight'], $type_name, $key);
+    }
+    elseif (in_array($key, $form['#extra'])) {
+      $extra[$key] = $values['weight'];
+    }
+  }
+
+  if ($extra) {
+    variable_set('content_extra_weights_'. $type_name, $extra);
+  }
+  else {
+    variable_del('content_extra_weights_'. $type_name);
+  }
+
+  content_clear_type_cache();
+
+  $destinations = array();
+
+  // Create new field.
+  if (!empty($form_values['_add_new_field']['field_name'])) {
+    $field = $form_values['_add_new_field'];
+    $field['type_name'] = $type_name;
+
+    module_load_include('inc', 'content', 'includes/content.crud');
+    if (content_field_instance_create($field)) {
+      // Store new field information for fieldgroup submit handler.
+      $form_state['fields_added']['_add_new_field'] = $field['field_name'];
+      $destinations[] = 'admin/content/node-type/'. $type['url_str'] .'/fields/'. $field['field_name'];
+    }
+    else {
+      drupal_set_message(t('There was a problem creating field %label.', array(
+        '%label' => $field['label'])));
+    }
+  }
+
+  // Add existing field.
+  if (!empty($form_values['_add_existing_field']['field_name'])) {
+    $field = $form_values['_add_existing_field'];
+    $field['type_name'] = $type_name;
+    $existing_field = content_fields($field['field_name']);
+
+    if ($existing_field['locked']) {
+      drupal_set_message(t('The field %label cannot be added to a content type because it is locked.', array('%label' => $field['field_name'])));
+    }
+    else {
+      module_load_include('inc', 'content', 'includes/content.crud');
+      if (content_field_instance_create($field)) {
+        // Store new field information for fieldgroup submit handler.
+        $form_state['fields_added']['_add_existing_field'] = $field['field_name'];
+        $destinations[] = 'admin/content/node-type/'. $type['url_str'] .'/fields/'. $field['field_name'];
+      }
+      else {
+        drupal_set_message(t('There was a problem adding field %label.', array('%label' => $field['field_name'])));
+      }
+    }
+  }
+
+  if ($destinations) {
+    $destinations[] = urldecode(substr(drupal_get_destination(), 12));
+    unset($_REQUEST['destination']);
+    $form_state['redirect'] = content_get_destinations($destinations);
+  }
+
+}
+
+/**
+ * Menu callback; presents a listing of fields display settings for a content type.
+ *
+ * Form includes form widgets to select which fields appear for teaser, full node
+ * and how the field labels should be rendered.
+ */
+function content_display_overview_form(&$form_state, $type_name, $contexts_selector = 'basic') {
+  content_inactive_message($type_name);
+
+  // Gather type information.
+  $type = content_types($type_name);
+  $field_types = _content_field_types();
+  $fields = $type['fields'];
+
+  $groups = array();
+  if (module_exists('fieldgroup')) {
+    $groups = fieldgroup_groups($type['type']);
+  }
+  $contexts = content_build_modes($contexts_selector);
+
+  $form = array(
+    '#tree' => TRUE,
+    '#type_name' => $type['type'],
+    '#fields' => array_keys($fields),
+    '#groups' => array_keys($groups),
+    '#contexts' => $contexts_selector,
+  );
+
+  if (empty($fields)) {
+    drupal_set_message(t('There are no fields configured for this content type. You can add new fields on the <a href="@link">Manage fields</a> page.', array(
+      '@link' => url('admin/content/node-type/'. $type['url_str'] .'/fields'))), 'warning');
+    return $form;
+  }
+
+  // Fields.
+  $label_options = array(
+    'above' => t('Above'),
+    'inline' => t('Inline'),
+    'hidden' => t('<Hidden>'),
+  );
+  foreach ($fields as $name => $field) {
+    $field_type = $field_types[$field['type']];
+    $defaults = $field['display_settings'];
+    $weight = $field['widget']['weight'];
+
+    $form[$name] = array(
+      'human_name' => array('#value' => check_plain($field['widget']['label'])),
+      'weight' => array('#type' => 'value', '#value' => $weight),
+      'parent' => array('#type' => 'value', '#value' => ''),
+    );
+
+    // Label
+    if ($contexts_selector == 'basic') {
+      $form[$name]['label']['format'] = array(
+        '#type' => 'select',
+        '#options' => $label_options,
+        '#default_value' => isset($defaults['label']['format']) ? $defaults['label']['format'] : 'above',
+      );
+    }
+
+    // Formatters.
+    $options = array();
+    foreach ($field_type['formatters'] as $formatter_name => $formatter_info) {
+      $options[$formatter_name] = $formatter_info['label'];
+    }
+    $options['hidden'] = t('<Hidden>');
+
+    foreach ($contexts as $key => $value) {
+      $form[$name][$key]['format'] = array(
+        '#type' => 'select',
+        '#options' => $options,
+        '#default_value' => isset($defaults[$key]['format']) ? $defaults[$key]['format'] : 'default',
+      );
+      // exclude from $content
+      $form[$name][$key]['exclude'] = array(
+        '#type' => 'checkbox',
+        '#options' => array(0 => t('Include'), 1 => t('Exclude')),
+        '#default_value' => isset($defaults[$key]['exclude']) ? $defaults[$key]['exclude'] : 0,
+      );
+    }
+  }
+
+  // Groups.
+  $label_options = array(
+    'above' => t('Above'),
+    'hidden' => t('<Hidden>'),
+  );
+  $options = array(
+    'no_style' => t('no styling'),
+    'simple' => t('simple'),
+    'fieldset' => t('fieldset'),
+    'fieldset_collapsible' => t('fieldset - collapsible'),
+    'fieldset_collapsed' => t('fieldset - collapsed'),
+    'hidden' => t('<Hidden>'),
+  );
+  foreach ($groups as $name => $group) {
+    $defaults = $group['settings']['display'];
+    $weight = $group['weight'];
+
+    $form[$name] = array(
+      'human_name' => array('#value' => check_plain($group['label'])),
+      'weight' => array('#type' => 'value', '#value' => $weight),
+    );
+    if ($contexts_selector == 'basic') {
+      $form[$name]['label'] = array(
+        '#type' => 'select',
+        '#options' => $label_options,
+        '#default_value' => isset($defaults['label']) ? $defaults['label'] : 'above',
+      );
+    }
+    foreach ($contexts as $key => $title) {
+      $form[$name][$key]['format'] = array(
+        '#type' => 'select',
+        '#options' => $options,
+        '#default_value' => isset($defaults[$key]['format']) ? $defaults[$key]['format'] : 'fieldset',
+      );
+      // exclude in $content
+      $form[$name][$key]['exclude'] = array(
+        '#type' => 'checkbox',
+        '#options' => array(0 => t('Include'), 1 => t('Exclude')),
+        '#default_value' => isset($defaults[$key]['exclude']) ? $defaults[$key]['exclude'] : 0,
+      );
+    }
+    foreach ($group['fields'] as $field_name => $field) {
+      $form[$field_name]['parent']['#value'] = $name;
+    }
+  }
+
+  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  return $form;
+}
+
+/**
+ * Submit handler for the display overview form.
+ */
+function content_display_overview_form_submit($form, &$form_state) {
+  module_load_include('inc', 'content', 'includes/content.crud');
+  $form_values = $form_state['values'];
+  foreach ($form_values as $key => $values) {
+    // Groups are handled in fieldgroup_display_overview_form_submit().
+    if (in_array($key, $form['#fields'])) {
+      $field = content_fields($key, $form['#type_name']);
+      // We have some numeric keys here, so we can't use array_merge.
+      $field['display_settings'] = $values + $field['display_settings'];
+      content_field_instance_update($field, FALSE);
+    }
+  }
+
+  // Clear caches and rebuild menu.
+  content_clear_type_cache(TRUE);
+  menu_rebuild();
+
+  drupal_set_message(t('Your settings have been saved.'));
+}
+
+/**
+ * Return an array of field_type options.
+ */
+function content_field_type_options() {
+  static $options;
+
+  if (!isset($options)) {
+    $options = array();
+    $field_types = _content_field_types();
+    $field_type_options = array();
+    foreach ($field_types as $field_type_name => $field_type) {
+      // skip field types which have no widget types.
+      if (content_widget_type_options($field_type_name)) {
+        $options[$field_type_name] = t($field_type['label']);
+      }
+    }
+    asort($options);
+  }
+  return $options;
+}
+
+/**
+ * Return an array of widget type options for a field type.
+ *
+ * If no field type is provided, returns a nested array of
+ * all widget types, keyed by field type human name
+ */
+function content_widget_type_options($field_type = NULL, $by_label = FALSE) {
+  static $options;
+
+  if (!isset($options)) {
+    $options = array();
+    foreach (_content_widget_types() as $widget_type_name => $widget_type) {
+      foreach ($widget_type['field types'] as $widget_field_type) {
+        $options[$widget_field_type][$widget_type_name] = t($widget_type['label']);
+      }
+    }
+  }
+
+  if ($field_type) {
+    return !empty($options[$field_type]) ? $options[$field_type] : array();
+  }
+  elseif ($by_label) {
+    $field_types = _content_field_types();
+    $options_by_label = array();
+    foreach ($options as $field_type => $widgets) {
+      $options_by_label[t($field_types[$field_type]['label'])] = $widgets;
+    }
+    return $options_by_label;
+  }
+  else {
+    return $options;
+  }
+}
+
+/**
+ * Return an array of existing field to be added to a node type.
+ */
+function content_existing_field_options($type_name) {
+  $type = content_types($type_name);
+  $fields = content_fields();
+  $field_types = _content_field_types();
+
+  $options = array();
+  foreach ($fields as $field) {
+    if (!isset($type['fields'][$field['field_name']]) && !$field['locked']) {
+      $field_type = $field_types[$field['type']];
+      $text = t('@type: @field (@label)', array('@type' => t($field_type['label']), '@label' => t($field['widget']['label']), '@field' => $field['field_name']));
+      $options[$field['field_name']] = (drupal_strlen($text) > 80) ? truncate_utf8($text, 77) . '...' : $text;
+    }
+  }
+  // Sort the list by type, then by field name, then by label.
+  asort($options);
+
+  return $options;
+}
+
+/**
+ * A form element for selecting field, widget, and label.
+ */
+function content_field_basic_form(&$form_state, $form_values) {
+  module_load_include('inc', 'content', 'includes/content.crud');
+
+  $type_name = $form_values['type_name'];
+  $type = content_types($form_values['type_name']);
+  $field_name = $form_values['field_name'];
+  $field_type = $form_values['type'];
+  $label = $form_values['label'];
+
+  $form = array();
+
+  $form['basic'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Edit basic information'),
+  );
+  $form['basic']['field_name'] = array(
+    '#title' => t('Field name'),
+    '#type' => 'textfield',
+    '#value' => $field_name,
+    '#description' => t("The machine-readable name of the field. This name cannot be changed."),
+    '#disabled' => TRUE,
+  );
+  $form['basic']['label'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Label'),
+    '#default_value' => $label,
+    '#required' => TRUE,
+    '#description' => t('A human-readable name to be used as the label for this field in the %type content type.', array('%type' => $type['name'])),
+  );
+  $form['basic']['type'] = array(
+    '#type' => 'select',
+    '#title' => t('Field type'),
+    '#options' => content_field_type_options(),
+    '#default_value' => $field_type,
+    '#description' => t('The type of data you would like to store in the database with this field. This option cannot be changed.'),
+    '#disabled' => TRUE,
+  );
+  $form['basic']['widget_type'] = array(
+    '#type' => 'select',
+    '#title' => t('Widget type'),
+    '#required' => TRUE,
+    '#options' => content_widget_type_options($field_type),
+    '#default_value' => $form_values['widget_type'],
+    '#description' => t('The type of form element you would like to present to the user when creating this field in the %type content type.', array('%type' => $type['name'])),
+  );
+
+  $form['type_name'] = array(
+    '#type' => 'value',
+    '#value' => $type_name,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Continue'),
+  );
+
+  $form['#validate'] = array();
+  $form['#submit'] = array('content_field_basic_form_submit');
+
+  return $form;
+}
+
+/**
+ * Create a new field for a content type.
+ */
+function content_field_basic_form_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+
+  $label = $form_values['label'];
+
+  // Set the right module information
+  $field_types = _content_field_types();
+  $widget_types = _content_widget_types();
+  $form_values['module'] = $field_types[$form_values['type']]['module'];
+  $form_values['widget_module'] = $widget_types[$form_values['widget_type']]['module'];
+
+  // Make sure we retain previous values and only over-write changed values.
+  module_load_include('inc', 'content', 'includes/content.crud');
+  $instances = content_field_instance_read(array('field_name' => $form_values['field_name'], 'type_name' => $form_values['type_name']));
+  $field = array_merge(content_field_instance_collapse($instances[0]), $form_values);
+  if (content_field_instance_update($field)) {
+    drupal_set_message(t('Updated basic settings for field %label.', array(
+      '%label' => $label)));
+  }
+  else {
+    drupal_set_message(t('There was a problem updating the basic settings for field %label.', array(
+      '%label' => $label)));
+  }
+
+  $type = content_types($form_values['type_name']);
+  $form_state['redirect'] = 'admin/content/node-type/'. $type['url_str'] .'/fields/'. $form_values['field_name'];
+  $form_state['rebuild'] = FALSE;
+}
+
+/**
+ * Menu callback; present a form for removing a field from a content type.
+ */
+function content_field_remove_form(&$form_state, $type_name, $field_name) {
+  $type = content_types($type_name);
+  $field = $type['fields'][$field_name];
+
+  $form = array();
+  $form['type_name'] = array(
+    '#type' => 'value',
+    '#value' => $type_name,
+  );
+  $form['field_name'] = array(
+    '#type' => 'value',
+    '#value' => $field_name,
+  );
+
+  $output = confirm_form($form,
+    t('Are you sure you want to remove the field %field?', array('%field' => $field['widget']['label'])),
+    'admin/content/node-type/'. $type['url_str'] .'/fields',
+    t('If you have any content left in this field, it will be lost. This action cannot be undone.'),
+    t('Remove'), t('Cancel'),
+    'confirm'
+  );
+
+  if ($field['locked']) {
+    unset($output['actions']['submit']);
+    $output['description']['#value'] = t('This field is <strong>locked</strong> and cannot be removed.');
+  }
+
+  return $output;
+}
+
+/**
+ * Remove a field from a content type.
+ */
+function content_field_remove_form_submit($form, &$form_state) {
+  module_load_include('inc', 'content', 'includes/content.crud');
+  $form_values = $form_state['values'];
+
+  $type = content_types($form_values['type_name']);
+  $field = $type['fields'][$form_values['field_name']];
+  if ($field['locked']) {
+    return;
+  }
+
+  if ($type && $field && $form_values['confirm']) {
+    if (content_field_instance_delete($form_values['field_name'], $form_values['type_name'])) {
+      drupal_set_message(t('Removed field %field from %type.', array(
+        '%field' => $field['widget']['label'],
+        '%type' => $type['name'])));
+    }
+    else {
+      drupal_set_message(t('There was a problem deleting %field from %type.', array(
+        '%field' => $field['widget']['label'],
+        '%type' => $type['name'])));
+    }
+    $form_state['redirect'] = 'admin/content/node-type/'. $type['url_str'] .'/fields';
+  }
+}
+
+/**
+ * Menu callback; presents the field editing page.
+ */
+function content_field_edit_form(&$form_state, $type_name, $field_name) {
+  $output = '';
+  $type = content_types($type_name);
+  $field = $type['fields'][$field_name];
+
+  if ($field['locked']) {
+    $output = array();
+    $output['locked'] = array(
+       '#value' => t('The field %field is locked and cannot be edited.', array('%field' => $field['widget']['label'])),
+    );
+    return $output;
+  }
+
+  $field_types = _content_field_types();
+  $field_type = $field_types[$field['type']];
+  $widget_types = _content_widget_types();
+  $widget_type = $widget_types[$field['widget']['type']];
+
+  $title = isset($field['widget']['label']) ? $field['widget']['label'] : $field['field_name'];
+  drupal_set_title(check_plain($title));
+
+  // See if we need to change the widget type or label.
+  if (isset($form_state['change_basic'])) {
+    module_load_include('inc', 'content', 'includes/content.crud');
+    $field_values = content_field_instance_collapse($field);
+    return content_field_basic_form($form_state, $field_values);
+  }
+
+  $add_new_sequence = isset($_REQUEST['destinations']);
+
+  // Remove menu tabs when we are in an 'add new' sequence.
+  if ($add_new_sequence) {
+    menu_set_item(NULL, menu_get_item('node'));
+  }
+
+  $form = array();
+  $form['#field'] = $field;
+  $form['#type'] = $type;
+
+  // Basic iformation : hide when we are in an 'add new' sequence.
+  $form['basic'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('%type basic information', array('%type' => $type['name'])),
+    '#access' => !$add_new_sequence,
+  );
+  $form['basic']['label'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Label'),
+    '#value' => $field['widget']['label'],
+    '#disabled' => TRUE,
+  );
+  $form['basic']['field_name'] = array(
+    '#type' => 'hidden',
+    '#title' => t('Field name'),
+    '#value' => $field['field_name'],
+    '#disabled' => TRUE,
+  );
+  $form['basic']['type'] = array(
+    '#type' => 'hidden',
+    '#title' => t('Field type'),
+    '#value' => $field['type'],
+    '#disabled' => TRUE,
+  );
+  $widget_options = content_widget_type_options($field['type']);
+  $form['basic']['widget_type'] = array(
+    '#type' => 'select',
+    '#title' => t('Widget type'),
+    '#options' => $widget_options,
+    '#default_value' => $field['widget']['type'] ? $field['widget']['type'] : key($widget_options),
+    '#disabled' => TRUE,
+  );
+  $form['basic']['change'] = array(
+    '#type' => 'submit',
+    '#value' => t('Change basic information'),
+    '#submit' => array('content_field_edit_form_submit_update_basic'),
+  );
+
+  $form['widget'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('%type settings', array('%type' => $type['name'])),
+    '#description' => t('These settings apply only to the %field field as it appears in the %type content type.', array(
+      '%field' => $field['widget']['label'],
+      '%type' => $type['name'])),
+  );
+  $form['widget']['weight'] = array(
+    '#type' => 'hidden',
+    '#default_value' => $field['widget']['weight'],
+  );
+
+  $additions = (array) module_invoke($widget_type['module'], 'widget_settings', 'form', $field['widget']);
+  drupal_alter('widget_settings', $additions, 'form', $field['widget']);
+  $form['widget'] = array_merge($form['widget'], $additions);
+
+  $form['widget']['description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Help text'),
+    '#default_value' => $field['widget']['description'],
+    '#rows' => 5,
+    '#description' => t('Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags', array('@tags' => _content_filter_xss_display_allowed_tags())),
+    '#required' => FALSE,
+  );
+
+  // Add handling for default value if not provided by field.
+  if (content_callback('widget', 'default value', $field) == CONTENT_CALLBACK_DEFAULT) {
+
+    // Store the original default value for use in programmed forms.
+    // Set '#default_value' instead of '#value' so programmed values
+    // can override whatever we set here.
+    $default_value = isset($field['widget']['default_value']) ? $field['widget']['default_value'] : array();
+    $default_value_php = isset($field['widget']['default_value_php']) ? $field['widget']['default_value_php'] : '';
+    $form['widget']['default_value'] = array(
+      '#type' => 'value',
+      '#default_value' => $default_value,
+    );
+    $form['widget']['default_value_php'] = array(
+      '#type' => 'value',
+      '#default_value' => $default_value_php,
+    );
+
+    // We can't tell at the time we build the form if this is a programmed
+    // form or not, so we always end up adding the default value widget
+    // even if we won't use it.
+    $form['widget']['default_value_fieldset'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Default value'),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+
+    // Default value widget.
+    $widget_form = array('#node' => (object) array('type' => $type_name));
+    $widget_form_state = array('values' => array($field['field_name'] => $default_value));
+    // Make sure the default value is not a required field.
+    $widget_field = $field;
+    $widget_field['required'] = FALSE;
+    module_load_include('inc', 'content', 'includes/content.node_form');
+    $form_element = content_field_form($widget_form, $widget_form_state, $widget_field, 0);
+    $form['widget']['default_value_fieldset']['default_value_widget'] = $form_element;
+    $form['widget']['default_value_fieldset']['default_value_widget']['#tree'] = TRUE;
+    // Set up form info that the default value widget will need to find in the form.
+    $form['#field_info'] = array($widget_field['field_name'] => $widget_field);
+
+    // Advanced: PHP code.
+    $form['widget']['default_value_fieldset']['advanced_options'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('PHP code'),
+      '#collapsible' => TRUE,
+      '#collapsed' => empty($field['widget']['default_value_php']),
+    );
+
+    if (user_access('Use PHP input for field settings (dangerous - grant with care)')) {
+      $db_info = content_database_info($field);
+      $columns = array_keys($db_info['columns']);
+      foreach ($columns as $key => $column) {
+        $columns[$key] = t("'@column' => value for @column", array('@column' => $column));
+      }
+      $sample = t("return array(\n  0 => array(@columns),\n  // You'll usually want to stop here. Provide more values\n  // if you want your 'default value' to be multi-valued:\n  1 => array(@columns),\n  2 => ...\n);", array('@columns' => implode(', ', $columns)));
+
+      $form['widget']['default_value_fieldset']['advanced_options']['default_value_php'] = array(
+        '#type' => 'textarea',
+        '#title' => t('Code'),
+        '#default_value' => isset($field['widget']['default_value_php']) ? $field['widget']['default_value_php'] : '',
+        '#rows' => 6,
+        '#tree' => TRUE,
+        '#description' => t('Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href="@link_devel">devel module</a> on a %type content page.', array(
+          '!sample' => $sample,
+          '@link_devel' => 'http://www.drupal.org/project/devel',
+          '%type' => $type_name)),
+      );
+    }
+    else {
+      $form['widget']['default_value_fieldset']['advanced_options']['markup_default_value_php'] = array(
+        '#type' => 'item',
+        '#title' => t('Code'),
+        '#value' => !empty($field['widget']['default_value_php']) ? '<code>'. check_plain($field['widget']['default_value_php']) .'</code>' : t('<none>'),
+        '#description' => empty($field['widget']['default_value_php']) ? t("You're not allowed to input PHP code.") : t('This PHP code was set by an administrator and will override any value specified above.'),
+      );
+    }
+  }
+
+  $form['field'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Global settings'),
+    '#description' => t('These settings apply to the %field field in every content type in which it appears.', array('%field' => $field['widget']['label'])),
+  );
+  $form['field']['required'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Required'),
+    '#default_value' => $field['required'],
+  );
+  $description = t('Maximum number of values users can enter for this field.');
+  if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+    $description .= '<br/>'. t("'Unlimited' will provide an 'Add more' button so the users can add as many values as they like.");
+  }
+  $description .= '<br/><strong>'. t('Warning! Changing this setting after data has been created could result in the loss of data!') .'</strong>';
+  $form['field']['multiple'] = array(
+    '#type' => 'select',
+    '#title' => t('Number of values'),
+    '#options' => array(1 => t('Unlimited'), 0 => 1) + drupal_map_assoc(range(2, 10)),
+    '#default_value' => $field['multiple'],
+    '#description' => $description,
+  );
+
+  $form['field']['previous_field'] = array(
+    '#type' => 'hidden',
+    '#value' => serialize($field),
+  );
+
+  $additions = (array) module_invoke($field_type['module'], 'field_settings', 'form', $field);
+  drupal_alter('field_settings', $additions, 'form', $field);
+  $form['field'] = array_merge($form['field'], $additions);
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save field settings'),
+  );
+  $form['type_name'] = array(
+    '#type' => 'value',
+    '#value' => $type_name,
+  );
+  $form['field_name'] = array(
+    '#type' => 'value',
+    '#value' => $field_name,
+  );
+  $form['type'] = array(
+    '#type' => 'value',
+    '#value' => $field['type'],
+  );
+  $form['module'] = array(
+    '#type' => 'value',
+    '#value' => $field['module'],
+  );
+  $form['widget']['label'] = array(
+    '#type' => 'value',
+    '#value' => $field['widget']['label'],
+  );
+  $form['widget_module'] = array(
+    '#type' => 'value',
+    '#value' => $field['widget']['module'],
+  );
+  $form['columns'] = array(
+    '#type' => 'value',
+    '#value' => $field['columns'],
+  );
+  return $form;
+}
+
+/**
+ * Validate a field's settings.
+ */
+function content_field_edit_form_validate($form, &$form_state) {
+  $form_values = $form_state['values'];
+  if (isset($form_state['change_basic']) || $form_values['op'] == t('Change basic information')) {
+    return;
+  }
+
+  module_load_include('inc', 'content', 'includes/content.crud');
+  $previous_field = unserialize($form_values['previous_field']);
+  $field = content_field_instance_expand($form_values);
+  $field['db_storage'] = content_storage_type($field);
+
+  $field_types = _content_field_types();
+  $field_type = $field_types[$field['type']];
+  $widget_types = _content_widget_types();
+  $widget_type = $widget_types[$field['widget']['type']];
+
+  if ($dropped_data = content_alter_db_analyze($previous_field, $field)) {
+    // @TODO
+    // This is a change that might result in loss of data.
+    // Add a confirmation form here.
+    // dsm($dropped_data);
+  }
+
+  module_invoke($widget_type['module'], 'widget_settings', 'validate', array_merge($field, $form_values));
+  module_invoke($field_type['module'], 'field_settings', 'validate', array_merge($field, $form_values));
+
+  // If content.module is handling the default value,
+  // validate the result using the field validation.
+  if (content_callback('widget', 'default value', $field) == CONTENT_CALLBACK_DEFAULT) {
+
+    // If this is a programmed form, get rid of the default value widget,
+    // we have the default values already.
+    if ($form['#programmed']) {
+      form_set_value(array('#parents' => array('default_value_widget')), NULL, $form_state);
+      return;
+    }
+
+    if (isset($form_values['default_value_php']) &&
+    ($php = trim($form_values['default_value_php']))) {
+      $error = FALSE;
+      ob_start();
+      $return = eval($php);
+      ob_end_clean();
+      if (!is_array($return)) {
+        $error = TRUE;
+      }
+      else {
+        foreach ($return as $item) {
+          if (!is_array($item)) {
+            $error = TRUE;
+            break;
+          }
+        }
+      }
+      if ($error) {
+        $db_info = content_database_info($field);
+        $columns = array_keys($db_info['columns']);
+        foreach ($columns as $key => $column) {
+          $columns[$key] = t("'@column' => value for @column", array('@column' => $column));
+        }
+        $sample = t("return array(\n  0 => array(@columns),\n  // You'll usually want to stop here. Provide more values\n  // if you want your 'default value' to be multi-valued:\n  1 => array(@columns),\n  2 => ...\n);", array('@columns' => implode(', ', $columns)));
+
+        form_set_error('default_value_php', t('The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value', array(
+          '!sample' => $sample,
+          '@value' => print_r($return, TRUE))));
+        return;
+      }
+      else {
+        $default_value = $return;
+        $is_code = TRUE;
+        form_set_value(array('#parents' => array('default_value_php')), $php, $form_state);
+        form_set_value(array('#parents' => array('default_value')), array(), $form_state);
+      }
+    }
+    elseif (!empty($form_values['default_value_widget'])) {
+      // Fields that handle their own multiple values may use an expected
+      // value as the top-level key, so just pop off the top element.
+      $key = array_shift(array_keys($form_values['default_value_widget']));
+      $default_value = $form_values['default_value_widget'][$key];
+      $is_code = FALSE;
+      form_set_value(array('#parents' => array('default_value_php')), '', $form_state);
+      form_set_value(array('#parents' => array('default_value')), $default_value, $form_state);
+    }
+    if (isset($default_value)) {
+      $node = array();
+      $node[$form_values['field_name']] = $default_value;
+      $field['required'] = FALSE;
+      $field_function = $field_type['module'] .'_field';
+
+      $errors_before = form_get_errors();
+
+      // Widget now does its own validation, should be no need
+      // to add anything for widget validation here.
+      if (function_exists($field_function)) {
+        $field_function('validate', $node, $field, $default_value, $form, NULL);
+      }
+      // The field validation routine won't set an error on the right field,
+      // so set it here.
+      $errors_after = form_get_errors();
+      if (count($errors_after) > count($errors_before)) {
+        if (trim($form_values['default_value_php'])) {
+          form_set_error('default_value_php', t("The PHP code for 'default value' returned @value, which is invalid.", array(
+            '@value' => print_r($default_value, TRUE))));
+        }
+        else {
+          form_set_error('default_value', t('The default value is invalid.'));
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Button submit handler.
+ */
+function content_field_edit_form_submit_update_basic($form, &$form_state) {
+  $form_state['change_basic'] = TRUE;
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Save a field's settings after editing.
+ */
+function content_field_edit_form_submit($form, &$form_state) {
+  module_load_include('inc', 'content', 'includes/content.crud');
+  $form_values = $form_state['values'];
+  content_field_instance_update($form_values);
+
+  $destinations = !empty($_REQUEST['destinations']) ? $_REQUEST['destinations'] : array();
+  // Remove any external URLs.
+  $destinations = array_diff($destinations, array_filter($destinations, 'menu_path_is_external'));
+  if ($destinations) {
+    drupal_set_message(t('Added field %label.', array('%label' => $form_values['label'])));
+    $form_state['redirect'] = content_get_destinations($destinations);
+  }
+  else {
+    drupal_set_message(t('Saved field %label.', array('%label' => $form_values['label'])));
+    $type = content_types($form_values['type_name']);
+    $form_state['redirect'] = 'admin/content/node-type/'. $type['url_str'] .'/fields';
+  }
+}
+
+/**
+ * Helper function to handle multipage redirects.
+ */
+function content_get_destinations($destinations) {
+  $query = array();
+  $path = array_shift($destinations);
+  if ($destinations) {
+    $query['destinations'] = $destinations;
+  }
+  return array($path, $query);
+}
+
+/**
+ * Content Schema Alter
+ *
+ * Alter the database schema.
+ *
+ * TODO figure out an API-safe way to use batching to update the nodes that
+ * will be affected by this change so the node_save() hooks will fire.
+ *
+ */
+function content_alter_schema($previous_field, $new_field) {
+  content_alter_db($previous_field, $new_field);
+}
+
+/**
+ * Schema Alter Analyze
+ *
+ * Analyze if changes will remove columns or delta values, thus losing data.
+ * Do this so we can delete the data and fire the necessary hooks, before
+ * we actually alter the schema.
+ */
+function content_alter_db_analyze($previous_field, $new_field) {
+  $dropped = array();
+  // There is no loss of data if there was no previous data.
+  if (empty($previous_field)) {
+    return $dropped;
+  }
+
+  // Analyze possible data loss from changes in storage type.
+  if (!empty($previous_field) && !empty($new_field)) {
+    // Changing from multiple to not multiple data, will cause loss of all
+    // values greater than zero.
+    if ($previous_field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD &&
+    $new_field['db_storage'] == CONTENT_DB_STORAGE_PER_CONTENT_TYPE) {
+      $dropped['delta'] = 0;
+    }
+    // Changing from one multiple value to another will cause loss of all
+    // values for deltas greater than or equal to the new multiple value.
+    elseif (isset($previous_field['multiple']) && isset($new_field['multiple'])) {
+      if ($previous_field['multiple'] > $new_field['multiple'] &&
+      $new_field['multiple'] > 1) {
+        $dropped['delta'] = $new_field['multiple'];
+      }
+    }
+  }
+
+  // Analyze possible data loss from changes in field columns.
+  $previous_schema = !empty($previous_field) ? content_table_schema($previous_field) : array('fields' => array());
+  $new_schema = !empty($new_field) ? content_table_schema($new_field) : array('fields' => array());
+  $dropped_columns = array_diff(array_keys($previous_schema['fields']), array_keys($new_schema['fields']));
+  if ($dropped_columns) {
+    $dropped['columns'] = $dropped_columns;
+  }
+//  if (empty($new_schema['fields'])) {
+//    // No new columns, will lose all columns for a field.
+//    foreach ($previous_schema['fields'] as $column => $attributes) {
+//      $dropped['columns'][] = $column;
+//    }
+//  }
+//  else {
+//    // Check both old and new columns to see if we are deleting some columns for a field.
+//    foreach ($previous_schema['fields'] as $column => $attributes) {
+//      if (!isset($new_schema['fields'][$column])) {
+//        $dropped['columns'][] = $column;
+//      }
+//    }
+//  }
+
+  return $dropped;
+}
+
+/**
+ * Perform adds, alters, and drops as needed to synchronize the database with
+ * new field definitions.
+ */
+function content_alter_db($previous_field, $new_field) {
+  $ret = array();
+
+  // One or the other of these must be valid.
+  if (empty($previous_field) && empty($new_field)) {
+    return $ret;
+  }
+
+  // Gather relevant information : schema, table name...
+  $previous_schema = !empty($previous_field) ? content_table_schema($previous_field) : array();
+  $new_schema = !empty($new_field) ? content_table_schema($new_field) : array();
+  if (!empty($previous_field)) {
+    $previous_db_info = content_database_info($previous_field);
+    $previous_table = $previous_db_info['table'];
+  }
+  if (!empty($new_field)) {
+    $new_db_info = content_database_info($new_field);
+    $new_table = $new_db_info['table'];
+  }
+
+  // Deletion of a field instance: drop relevant columns and tables and return.
+  if (empty($new_field)) {
+    if ($previous_field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD) {
+      db_drop_table($ret, $previous_table);
+    }
+    else {
+      foreach ($previous_schema['fields'] as $column => $attributes) {
+        if (!in_array($column, array('nid', 'vid', 'delta'))) {
+          db_drop_field($ret, $previous_table, $column);
+        }
+      }
+    }
+    content_alter_db_cleanup();
+    return $ret;
+  }
+
+  // Check that content types that have fields do have a per-type table.
+  if (!empty($new_field)) {
+    $base_tablename = _content_tablename($new_field['type_name'], CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+    if (!db_table_exists($base_tablename)) {
+      db_create_table($ret, $base_tablename, content_table_schema());
+    }
+  }
+
+  // Create new table and columns, if not already created.
+  if (!db_table_exists($new_table)) {
+    db_create_table($ret, $new_table, $new_schema);
+  }
+  else {
+    // Or add fields and/or indexes to an existing table.
+    foreach ($new_schema['fields'] as $column => $attributes) {
+      if (!in_array($column, array('nid', 'vid', 'delta'))) {
+        // Create the column if it does not exist.
+        if (!db_column_exists($new_table, $column)) {
+          db_add_field($ret, $new_table, $column, $attributes);
+        }
+        // Create the index if requested to, and it does not exist.
+        if (isset($new_schema['indexes'][$column]) && !content_db_index_exists($new_table, $column)) {
+          db_add_index($ret, $new_table, $column, $new_schema['indexes'][$column]);
+        }
+      }
+    }
+  }
+
+  // If this is a new field, we're done.
+  if (empty($previous_field)) {
+    content_alter_db_cleanup();
+    return $ret;
+  }
+
+  // If the previous table doesn't exist, we're done.
+  // Could happen if someone tries to run a schema update from an
+  // content.install update function more than once.
+  if (!db_table_exists($previous_table)) {
+    content_alter_db_cleanup();
+    return $ret;
+  }
+
+  // If changing data from one schema to another, see if changes require that
+  // we drop multiple values or migrate data from one storage type to another.
+  $migrate_columns = array_intersect_assoc($new_schema['fields'], $previous_schema['fields']);
+  unset($migrate_columns['nid'], $migrate_columns['vid'], $migrate_columns['delta']);
+
+  // If we're going from one multiple value a smaller one or to single,
+  // drop all delta values higher than the new maximum delta value.
+  // Not needed if the new multiple is unlimited or if the new table is the content table.
+  if ($new_table != $base_tablename && $new_field['multiple'] < $previous_field['multiple'] && $new_field['multiple'] != 1) {
+    db_query("DELETE FROM {". $new_table ."} WHERE delta >= ". max(1, $new_field['multiple']));
+  }
+
+  // If going from multiple to non-multiple, make sure the field tables have
+  // the right database structure to accept migrated data.
+  if ($new_field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD) {
+    if ($previous_field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD && count($previous_schema['fields'])) {
+      // Already using per-field storage; change multiplicity if needed.
+      if ($previous_field['multiple'] > 0 && $new_field['multiple'] == 0) {
+        db_drop_field($ret, $new_table, 'delta');
+        db_drop_primary_key($ret, $new_table);
+        db_add_primary_key($ret, $new_table, array('vid'));
+      }
+      else if ($previous_field['multiple'] == 0 && $new_field['multiple'] > 0) {
+        db_add_field($ret, $new_table, 'delta', array(
+          'type' => 'int',
+          'unsigned' => TRUE,
+          'not null' => TRUE,
+          'default' => 0));
+        db_drop_primary_key($ret, $new_table);
+        db_add_primary_key($ret, $new_table, array('vid', 'delta'));
+      }
+    }
+  }
+
+  // Migrate data from per-content-type storage.
+  if ($previous_field['db_storage'] == CONTENT_DB_STORAGE_PER_CONTENT_TYPE &&
+  $new_field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD) {
+    $columns = array_keys($migrate_columns);
+    if ($new_field['multiple']) {
+      db_query('INSERT INTO {'. $new_table .'} (vid, nid, delta, '. implode(', ', $columns) .') '.
+        ' SELECT vid, nid, 0, '. implode(', ', $columns) .' FROM {'. $previous_table .'}');
+    }
+    else {
+      db_query('INSERT INTO {'. $new_table .'} (vid, nid, '. implode(', ', $columns) .') '.
+        ' SELECT vid, nid, '. implode(', ', $columns) .' FROM {'. $previous_table .'}');
+    }
+    foreach ($columns as $column_name) {
+      db_drop_field($ret, $previous_table, $column_name);
+    }
+  }
+
+  // Migrate data from per-field storage, and drop per-field table.
+  if ($previous_field['db_storage'] == CONTENT_DB_STORAGE_PER_FIELD &&
+  $new_field['db_storage'] == CONTENT_DB_STORAGE_PER_CONTENT_TYPE) {
+    // In order to be able to use drupal_write_record, we need to
+    // rebuild the schema now.
+    content_alter_db_cleanup();
+    if ($previous_field['multiple']) {
+      $result = db_query("SELECT * FROM {". $previous_table ."} c JOIN {node} n ON c.nid = n.nid WHERE delta = 0 AND n.type = '%s'", $new_field['type_name']);
+    }
+    else {
+      $result = db_query("SELECT * FROM {". $previous_table ."} c JOIN {node} n ON c.nid = n.nid WHERE n.type = '%s'", $new_field['type_name']);
+    }
+    $record = array();
+    while ($data = db_fetch_array($result)) {
+      $record['nid'] = $data['nid'];
+      $record['vid'] = $data['vid'];
+      if ($previous_field['multiple']) {
+        $record['delta'] = $data['delta'];
+      }
+      foreach ($migrate_columns as $column => $attributes) {
+        if (is_null($data[$column])) {
+          $record[$column] = NULL;
+        }
+        else {
+          $record[$column] = $data[$column];
+          // Prevent double serializtion in drupal_write_record.
+          if (isset($attributes['serialize']) && $attributes['serialize']) {
+            $record[$column] = unserialize($record[$column]);
+          }
+        }
+      }
+      if (db_result(db_query('SELECT COUNT(*) FROM {'. $new_table .
+      '} WHERE vid = %d AND nid = %d', $data['vid'], $data['nid']))) {
+        $keys = $new_field['multiple'] ? array('vid', 'delta') : array('vid');
+        drupal_write_record($new_table, $record, $keys);
+      }
+      else {
+        drupal_write_record($new_table, $record);
+      }
+    }
+    db_drop_table($ret, $previous_table);
+  }
+
+  // Change modified columns that don't involve storage changes.
+  foreach ($new_schema['fields'] as $column => $attributes) {
+    if (isset($previous_schema['fields'][$column]) &&
+    $previous_field['db_storage'] == $new_field['db_storage']) {
+      if ($attributes != $previous_schema['fields'][$column]) {
+        if (!in_array($column, array('nid', 'vid', 'delta'))) {
+          db_change_field($ret, $new_table, $column, $column, $attributes);
+        }
+      }
+    }
+  }
+
+  // Remove obsolete columns.
+  foreach ($previous_schema['fields'] as $column => $attributes) {
+    if (!isset($new_schema['fields'][$column])) {
+      if (!in_array($column, array('nid', 'vid', 'delta'))) {
+        db_drop_field($ret, $previous_table, $column);
+      }
+    }
+  }
+
+  // TODO: debugging stuff - should be removed
+  if (module_exists('devel')) {
+    //dsm($ret);
+  }
+  return $ret;
+}
+
+/**
+ * Helper function for handling cleanup operations when schema changes are made.
+ */
+function content_alter_db_cleanup() {
+  // Rebuild the whole database schema.
+  // TODO: this could be optimized. We don't need to rebuild in *every case*...
+  // Or do we? This affects the schema and menu and may have unfortunate
+  // delayed effects if we don't clear everything out at this point.
+  content_clear_type_cache(TRUE);
+}
+
+/**
+ * Helper function to order fields and groups when theming (preprocessing)
+ * overview forms.
+ *
+ * The $form is passed by reference because we assign depths as parenting
+ * relationships are sorted out.
+ */
+function _content_overview_order(&$form, $field_rows, $group_rows) {
+  // Put weight and parenting values into a $dummy render structure
+  // and let drupal_render figure out the corresponding row order.
+  $dummy = array();
+  // Group rows: account for weight.
+  if (module_exists('fieldgroup')) {
+    foreach ($group_rows as $name) {
+      $dummy[$name] = array('#weight' => $form[$name]['weight']['#value'], '#value' => $name .' ');
+    }
+  }
+  // Field rows : account for weight and parenting.
+  foreach ($field_rows as $name) {
+    $dummy[$name] = array('#weight' => $form[$name]['weight']['#value'], '#value' => $name .' ');
+    if (module_exists('fieldgroup')) {
+      if ($parent = $form[$name]['parent']['#value']) {
+        $form[$name]['#depth'] = 1;
+        $dummy[$parent][$name] = $dummy[$name];
+        unset($dummy[$name]);
+      }
+    }
+  }
+  return $dummy ? explode(' ', trim(drupal_render($dummy))) : array();
+}
+
+/**
+ * Batching process for changing the field schema,
+ * running each affected node through node_save() first, to
+ * fire all hooks.
+ *
+ * TODO This is just a placeholder for now because batching can't be safely
+ * used with API hooks. Need to come back and figure out how to incorporate
+ * this and get it working properly when the fields are altered via the API.
+ */
+function content_alter_fields($previous_field, $new_field) {
+  // See what values need to be updated in the field data.
+  $mask = content_alter_db_mask($previous_field, $new_field);
+
+  // We use batch processing to prevent timeout when updating a large number
+  // of nodes. If there is no previous data to adjust, we can just go straight
+  // to altering the schema, otherwise use batch processing to update
+  // the database one node at a time, then update the schema.
+  if (empty($mask)) {
+    return content_alter_db($previous_field, $new_field);
+  }
+  $updates = array(
+    'mask' => $mask['mask'],
+    'alt_mask' => $mask['alt_mask'],
+    'delta' => $mask['delta'],
+    );
+  $batch = array(
+    'operations' => array(
+      array('content_field_batch_update', array($previous_field['field_name'] => $updates)),
+      array('content_alter_db', array($previous_field, $new_field))
+    ),
+    'finished' => '_content_alter_fields_finished',
+    'title' => t('Processing'),
+    'error_message' => t('The update has encountered an error.'),
+    'file' => './'. drupal_get_path('module', 'content') .'/includes/content.admin.inc',
+  );
+  batch_set($batch);
+  if (!empty($url)) {
+    batch_process($url, $url);
+  }
+}
+
+/**
+ * Content Replace Fields 'finished' callback.
+ */
+function _content_alter_fields_finished($success, $results, $operations) {
+  if ($success) {
+    drupal_set_message(t('The database has been altered and data has been migrated or deleted.'));
+  }
+  else {
+    drupal_set_message(t('An error occurred and database alteration did not complete.'), 'error');
+    $message = format_plural(count($results), '1 item successfully processed:', '@count items successfully processed:');
+    $message .= theme('item_list', $results);
+    drupal_set_message($message);
+  }
+}
+
+/**
+ * Create a mask for the column data that should be deleted in each field.
+ *
+ * This is a bit tricky. We could theoretically have some columns
+ * that should be set to empty and others with valid info that should
+ * not be emptied out. But if delta values > X are to be wiped out, they
+ * need to wipe out even columns that still have values. And the NULL
+ * values in these columns after the alteration may be enough to make
+ * the item 'empty', as defined by hook_content_is_empty(), even if
+ * some columns still have values, so all these things need to be tested.
+ */
+function content_alter_db_mask($previous_field, $new_field) {
+  // Get an array of column values that will be dropped by this
+  // schema change and create a mask to feed to content_batch_update.
+
+  $dropped = content_alter_db_analyze($previous_field, $new_field);
+  if (empty($dropped)) {
+    return array();
+  }
+  $mask = array('mask' => array());
+  foreach (array_keys($previous_field['columns']) as $column_name) {
+    // The basic mask will empty the dropped columns.
+    if (isset($dropped['columns']) && in_array($column_name, $dropped['columns'])) {
+      $mask['mask'][$column_name] = NULL;
+    }
+    // Over the delta we'll empty all columns.
+    if (isset($dropped['delta'])) {
+      $mask['alt_mask'][$column_name] = NULL;
+    }
+  }
+  if (isset($dropped['delta'])) {
+    $mask['delta'] = $dropped['delta'];
+  }
+  return $mask;
+}
+
+/**
+ * Content Field Batch Update Operation
+ *
+ * Find all nodes that contain a field and update their values.
+ *
+ * @param $updates
+ *   an array like:
+ *   'field_name' => array(
+ *     'mask' => array()
+ *       // Keyed array of column names and replacement values for use
+ *       // below delta, or for all values if no delta is supplied.
+ *     'alt_mask' => array()
+ *       // Optional, keyed array of column names and replacement values for use
+ *       // at or above delta, if a delta is supplied.
+ *     'delta' => #
+ *       // Optional, the number to use as the delta value where you switch from
+ *       // one mask to the other.
+ *     ),
+ */
+function content_field_batch_update($updates, &$context) {
+  if (empty($field)) {
+    $context['finished'] = 1;
+    return;
+  }
+  $field_name = $updates['field_name'];
+  $field = content_fields($field_name);
+
+  if (!isset($context['sandbox']['progress'])) {
+    $db_info = content_database_info($field);
+
+    // Might run into non-existent tables when cleaning up a corrupted
+    // database, like some of the old content storage changes in the
+    // .install files.
+    if (!db_table_exists($db_info['table'])) {
+      return $context['finished'] = 1;
+    }
+    $nodes = array();
+    $result = db_query("SELECT nid FROM {". $db_info['table'] ."}");
+    while ($node = db_fetch_array($result)) {
+      $nodes[] = $node['nid'];
+    }
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['max'] = count($nodes);
+    $context['sandbox']['nodes'] = $nodes;
+  }
+
+  // Process nodes by groups of 5.
+  $count = min(5, count($context['sandbox']['nodes']));
+
+  for ($i = 1; $i <= $count; $i++) {
+    // For each nid, load the node, empty the column values
+    // or the whole field, and re-save it.
+    $nid = array_shift($context['sandbox']['nodes']);
+    $node = content_field_replace($nid, array($updates));
+
+    // Store result for post-processing in the finished callback.
+    $context['results'][] = l($node->title, 'node/'. $node->nid);
+
+    // Update our progress information.
+    $context['sandbox']['progress']++;
+    $context['message'] = t('Processing %title', array('%title' => $node->title));
+  }
+
+  // Inform the batch engine that we are not finished,
+  // and provide an estimation of the completion level we reached.
+  if ($context['sandbox']['progress'] != $context['sandbox']['max']) {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Content Field Replace
+ *
+ * Replace field values in a node from an array of update values.
+ *
+ * Supply an array of one or more fields and masks of field column values
+ * to be replaced into field values, one mask for basic values and an optional
+ * different mask for values in field items equal to or higher than a
+ * specified delta.
+ *
+ * The masks should contain only the column values to be substituted in.
+ * The supplied values will be merged into the existing values to replace
+ * only the values in the mask, leaving all other values unchanged.
+ *
+ * The ability to set different masks starting at a delta allows the
+ * possibility of setting values above a certain delta to NULL prior
+ * to altering the database schema.
+ *
+ * @param $nid
+ * @param $updates
+ *   an array like:
+ *   'field_name' => array(
+ *     'mask' => array()
+ *       // Keyed array of column names and replacement values for use
+ *       // below delta, or for all values if no delta is supplied.
+ *     'alt_mask' => array()
+ *       // Optional, keyed array of column names and replacement values for use
+ *       // at or above delta, if a delta is supplied.
+ *     'delta' => #
+ *       // Optional, the number to use as the delta value where you switch from
+ *       // one mask to the other.
+ *     ),
+ */
+function content_field_replace($nid, $updates) {
+  $node = node_load($nid, NULL, TRUE);
+  foreach ($updates as $field_name => $update) {
+    $items = isset($node->$field_name) ? $node->$field_name : array();
+    foreach ($items as $delta => $value) {
+      $field_mask = (isset($update['delta']) && isset($update['alt_mask']) && $delta >= $update['delta']) ? $update['alt_mask'] : $mask['mask'];
+      // Merge the mask into the field values to do the replacements.
+      $items[$delta] = array_merge($items[$delta], $field_mask);
+    }
+    // Test if the new values will make items qualify as empty.
+    $items = content_set_empty($field, $items);
+    $node->$field_name = $items;
+  }
+  node_save($node);
+  return $node;
+}
+
+/**
+ * Helper form element validator : integer.
+ */
+function _element_validate_integer($element, &$form_state) {
+  $value = $element['#value'];
+  if ($value !== '' && (!is_numeric($value) || intval($value) != $value)) {
+    form_error($element, t('%name must be an integer.', array('%name' => $element['#title'])));
+  }
+}
+
+/**
+ * Helper form element validator : integer > 0.
+ */
+function _element_validate_integer_positive($element, &$form_state) {
+  $value = $element['#value'];
+  if ($value !== '' && (!is_numeric($value) || intval($value) != $value || $value <= 0)) {
+    form_error($element, t('%name must be a positive integer.', array('%name' => $element['#title'])));
+  }
+}
+
+/**
+ * Helper form element validator : number.
+ */
+function _element_validate_number($element, &$form_state) {
+  $value = $element['#value'];
+  if ($value != '' && !is_numeric($value)) {
+    form_error($element, t('%name must be a number.', array('%name' => $element['#title'])));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/content.crud.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.crud.inc
new file mode 100644
index 0000000..2942940
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.crud.inc
@@ -0,0 +1,695 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Create/Read/Update/Delete functions for CCK-defined object types.
+ *
+ * The content module field API will allow $field arguments to
+ * be input either in the field => widget nested array that is used
+ * by the content module, or in flattened $form_values arrays, by
+ * converting flattened arrays to the nested format.
+ *
+ * A hook_content_fieldapi() is available for each field instance action,
+ * and each hook receives the nested field => widget array as an argument.
+ *
+ * The hook_content_fieldapi() $ops include:
+ *
+ *   - create instance
+ *   - read instance
+ *   - update instance
+ *   - delete instance
+ *
+ * Another function, content_module_delete($module) will clean up
+ * after a module that has been deleted by removing all data and
+ * settings information that was created by that module.
+ */
+
+/**
+ * Create an array of default values for a field type.
+ */
+function content_field_default_values($field_type) {
+  $field_types = _content_field_types();
+  $module = $field_types[$field_type]['module'];
+
+  $field = array(
+    'module' => $module,
+    'type' => $field_type,
+    'active' => 0,
+  );
+
+  if (module_exists($module)) {
+    $field['active'] = 1;
+  }
+
+  $field['columns'] = (array) module_invoke($module, 'field_settings', 'database columns', $field);
+  // Ensure columns always default to NULL values.
+  foreach ($field['columns'] as $column_name => $column) {
+    $field['columns'][$column_name]['not null'] = FALSE;
+  }
+
+  $field['required'] = 0;
+  $field['multiple'] = 0;
+  $field['db_storage'] = CONTENT_DB_STORAGE_PER_CONTENT_TYPE;
+
+  // Make sure field settings all have an index in the array.
+  $setting_names = (array) module_invoke($module, 'field_settings', 'save', $field);
+  drupal_alter('field_settings', $setting_names, 'save', $field);
+  foreach ($setting_names as $setting) {
+    $field[$setting] = NULL;
+  }
+  return $field;
+}
+
+/**
+ * Create an array of default values for a field instance.
+ */
+function content_instance_default_values($field_name, $type_name, $widget_type) {
+  $widget_types = _content_widget_types();
+  $module = $widget_types[$widget_type]['module'];
+
+  $widget = array(
+    'field_name' => $field_name,
+    'type_name' => $type_name,
+    'weight' => 0,
+    'label' => $field_name,
+    'description' => '',
+    'widget_type' => $widget_type,
+    'widget_module' => $module,
+    'display_settings' => array(),
+    'widget_settings' => array(),
+  );
+
+  if (module_exists($module)) {
+    $widget['widget_active'] = 1;
+  }
+
+  $settings_names = array_merge(array('label'), array_keys(content_build_modes()));
+  $widget['display_settings'] = array();
+  foreach ($settings_names as $name) {
+    $widget['display_settings'][$name]['format'] = ($name == 'label') ? 'above' : 'default';
+    $widget['display_settings'][$name]['exclude'] = 0;
+  }
+
+  // Make sure widget settings all have an index in the array.
+  $settings_names = (array) module_invoke($module, 'widget_settings', 'save', $widget);
+  drupal_alter('widget_settings', $settings_names, 'save', $widget);
+  $widget['widget_settings'] = array();
+  foreach ($settings_names as $name) {
+    $widget['widget_settings'][$name] = NULL;
+  }
+  return $widget;
+}
+
+/**
+ * Expand field info to create field => widget info.
+ */
+function content_field_instance_expand($field) {
+  if (isset($field['widget'])) {
+    return $field;
+  }
+  $field['widget'] = !empty($field['widget_settings']) ? $field['widget_settings'] : array();
+  $field['widget']['label'] = !empty($field['label']) ? $field['label'] : $field['field_name'];
+  $field['widget']['weight'] = !empty($field['weight']) ? $field['weight'] : 0;
+  $field['widget']['description'] = !empty($field['description']) ? $field['description'] : '';
+
+  if (!empty($field['widget_type'])) {
+    $field['widget']['type'] = $field['widget_type'];
+    $widget_types = _content_widget_types();
+    $field['widget']['module'] = isset($widget_types[$field['widget_type']]['module']) ? $widget_types[$field['widget_type']]['module'] : $field['widget_module'];
+  }
+  elseif (!empty($field['widget_module'])) {
+    $field['widget']['module'] = $field['widget_module'];
+  }
+
+  unset($field['widget_type']);
+  unset($field['weight']);
+  unset($field['label']);
+  unset($field['description']);
+  unset($field['widget_module']);
+  unset($field['widget_settings']);
+
+  // If content.module is handling the default value,
+  // initialize $widget_settings with default values,
+  if (isset($field['default_value']) && isset($field['default_value_php']) &&
+      content_callback('widget', 'default value', $field) == CONTENT_CALLBACK_DEFAULT) {
+    $field['widget']['default_value'] = !empty($field['default_value']) ? $field['default_value']  : NULL;
+    $field['widget']['default_value_php'] = !empty($field['default_value_php']) ? $field['default_value_php'] : NULL;
+    unset($field['default_value']);
+    unset($field['default_value_php']);
+  }
+  return $field;
+}
+
+/**
+ * Collapse field info from field => widget to flattened form values.
+ */
+function content_field_instance_collapse($field) {
+  if (!isset($field['widget'])) {
+    return $field;
+  }
+  $field['widget_settings'] = !empty($field['widget']) ? $field['widget'] : array();
+  $field['widget_type'] = !empty($field['widget']['type']) ? $field['widget']['type'] : '';
+  $field['weight'] = !empty($field['widget']['weight']) ? $field['widget']['weight'] : 0;
+  $field['label'] = !empty($field['widget']['label']) ? $field['widget']['label'] : $field['field_name'];
+  $field['description'] = !empty($field['widget']['description']) ? $field['widget']['description'] : '';
+  $field['type_name'] = !empty($field['type_name']) ? $field['type_name'] : '';
+
+  if (!empty($field['widget']['module'])) {
+    $widget_module = $field['widget']['module'];
+  }
+  elseif (!empty($field['widget']['type'])) {
+    $widget_types = _content_widget_types();
+    $widget_module = $widget_types[$field['widget']['type']]['module'];
+  }
+  else {
+    $widget_module = '';
+  }
+  $field['widget_module'] = $widget_module;
+  unset($field['widget_settings']['type']);
+  unset($field['widget_settings']['weight']);
+  unset($field['widget_settings']['label']);
+  unset($field['widget_settings']['description']);
+  unset($field['widget_settings']['module']);
+  unset($field['widget']);
+  return $field;
+}
+
+/**
+ * Create a new field instance.
+ *
+ * @param $field
+ *   An array of properties to create the field with, input either in
+ *   the field => widget format used by the content module or as an
+ *   array of form values.
+ *
+ *   Required values:
+ *   - field_name, the name of the field to be created
+ *   - type_name, the content type of the instance to be created
+ *
+ *   If there is no prior instance to create this from, we also need:
+ *   - type, the type of field to create
+ *   - widget_type, the type of widget to use
+ * @param $rebuild
+ *   TRUE to clear content type caches and rebuild menu (default).
+ *   FALSE allows the caller to process several fields at a time quickly, but then
+ *   the caller is reponsible to clear content type caches and rebuild menu as soon
+ *   as all fields have been processed. For example:
+ *   @code
+ *     // Create several fields at a time.
+ *     foreach ($fields as $field) {
+ *       content_field_instance_create($field, FALSE);
+ *     }
+ *     // Clear caches and rebuild menu.
+ *     content_clear_type_cache(TRUE);
+ *     menu_rebuild();
+ *   @endcode
+ * @see content_clear_type_cache()
+ * @see menu_rebuild()
+ */
+function content_field_instance_create($field, $rebuild = TRUE) {
+  include_once('./'. drupal_get_path('module', 'content') .'/includes/content.admin.inc');
+
+  $form_values = $field;
+  $field = content_field_instance_expand($field);
+
+  // If there are prior instances, fill out missing values from the prior values,
+  // otherwise get missing values from default values.
+  $prior_instances = content_field_instance_read(array('field_name' => $field['field_name']));
+  if (!empty($prior_instances) && is_array($prior_instances)) {
+    $prev_field = content_field_instance_expand($prior_instances[0]);
+
+    // Weight, label, and description may have been forced into the $field
+    // by content_field_instance_expand(). If there is a previous instance to
+    // get these values from and there was no value supplied originally, use
+    // the previous value.
+    $field['widget']['weight'] = isset($form_values['weight']) ? $form_values['weight'] : $prev_field['widget']['weight'];
+    $field['widget']['label']  = isset($form_values['label']) ? $form_values['label'] : $prev_field['widget']['label'];
+    $field['widget']['description'] = isset($form_values['description']) ? $form_values['description'] : $prev_field['widget']['description'];
+  }
+  else {
+    $prev_field = array('widget' => array());
+  }
+
+  // If we have a field type, we can build default values for this field type.
+  $default_values = array('widget' => array());
+  if (isset($field['type'])) {
+    $default_values = content_field_default_values($field['type']);
+    $default_instance_values = content_instance_default_values($field['field_name'], $field['type_name'], $field['widget']['type']);
+    $default_values = content_field_instance_expand(array_merge($default_values, $default_instance_values));
+  }
+
+  // Merge default values, previous values, and current values to create
+  // a complete field array.
+  $widget = array_merge($default_values['widget'], $prev_field['widget'], $field['widget']);
+  $field = array_merge($default_values, $prev_field, $field);
+  $field['widget'] = $widget;
+
+  // Make sure we know what module to invoke for field info.
+  if (empty($field['module']) && !empty($field['type'])) {
+    $field_types = _content_field_types();
+    $field['module'] = $field_types[$field['type']]['module'];
+  }
+
+  // The storage type may need to be updated.
+  $field['db_storage'] = content_storage_type($field);
+
+  // Get a fresh copy of the column information whenever a field is created.
+  $field['columns'] = (array) module_invoke($field['module'], 'field_settings', 'database columns', $field);
+
+  if (empty($prev_field['widget']) || $prior_instances < 1) {
+    // If this is the first instance, create the field.
+    $field['db_storage'] = $field['multiple'] > 0 ? CONTENT_DB_STORAGE_PER_FIELD : CONTENT_DB_STORAGE_PER_CONTENT_TYPE;
+    _content_field_write($field, 'create');
+  }
+  elseif (!empty($prev_field['widget']) && $prev_field['db_storage'] == CONTENT_DB_STORAGE_PER_CONTENT_TYPE && count($prior_instances) > 0) {
+    // If the database storage has changed, update the field and previous instances.
+    $field['db_storage'] = CONTENT_DB_STORAGE_PER_FIELD;
+
+    foreach ($prior_instances as $instance) {
+      $new_instance = $instance;
+      $new_instance['db_storage'] = CONTENT_DB_STORAGE_PER_FIELD;
+
+      // Invoke hook_content_fieldapi().
+      module_invoke_all('content_fieldapi', 'update instance', $new_instance);
+
+      content_alter_schema($instance, $new_instance);
+    }
+  }
+
+  // Invoke hook_content_fieldapi().
+  module_invoke_all('content_fieldapi', 'create instance', $field);
+
+  // Update the field and the instance with the latest values.
+  _content_field_write($field, 'update');
+  _content_field_instance_write($field, 'create');
+
+  content_alter_schema(array(), $field);
+
+  if ($rebuild) {
+    content_clear_type_cache(TRUE);
+    menu_rebuild();
+  }
+
+  return $field;
+}
+
+/**
+ * Update an existing field instance.
+ *
+ * @param $field
+ *   An array of properties to update the field with, input either in
+ *   the field => widget format used by the content module or as an
+ *   array of form values.
+ * @param $rebuild
+ *   TRUE to clear content type caches and rebuild menu (default).
+ *   FALSE allows the caller to process several fields at a time quickly, but then
+ *   the caller is reponsible to clear content type caches and rebuild menu as soon
+ *   as all fields have been processed. For example:
+ *   @code
+ *     // Update several fields at a time.
+ *     foreach ($fields as $field) {
+ *       content_field_instance_update($field, FALSE);
+ *     }
+ *     // Clear caches and rebuild menu.
+ *     content_clear_type_cache(TRUE);
+ *     menu_rebuild();
+ *   @endcode
+ * @see content_clear_type_cache()
+ * @see menu_rebuild()
+ */
+function content_field_instance_update($field, $rebuild = TRUE) {
+  include_once('./'. drupal_get_path('module', 'content') .'/includes/content.admin.inc');
+
+  // Ensure the field description is in the 'expanded' form.
+  $field = content_field_instance_expand($field);
+
+  // Get the previous value from the table.
+  $previous = content_field_instance_read(array('field_name' => $field['field_name'], 'type_name' => $field['type_name']));
+  $prev_field = array_pop($previous);
+
+  // Create a complete field array by merging the previous and current values,
+  // letting the current values overwrite the previous ones.
+  $widget = array_merge($prev_field['widget'], $field['widget']);
+  $field = array_merge($prev_field, $field);
+  $field['widget'] = $widget;
+
+  // Make sure we know what module to invoke for field info.
+  if (empty($field['module']) && !empty($field['type'])) {
+    $field_types = _content_field_types();
+    $field['module'] = $field_types[$field['type']]['module'];
+  }
+
+  // The storage type may need to be updated.
+  $field['db_storage'] = content_storage_type($field);
+
+  // Changes in field values may affect columns, or column
+  // information may have changed, get a fresh copy.
+  $field['columns'] = (array) module_invoke($field['module'], 'field_settings', 'database columns', $field);
+
+  // If the database storage has changed, update the field and previous instances.
+  $prior_instances = content_field_instance_read(array('field_name' => $field['field_name']));
+
+  if ($prev_field['db_storage'] == CONTENT_DB_STORAGE_PER_CONTENT_TYPE && count($prior_instances) > 1) {
+    // Update the field's data storage.
+    $field['db_storage'] = CONTENT_DB_STORAGE_PER_FIELD;
+
+    // Update the schema for prior instances to adapt to the change in db storage.
+    foreach ($prior_instances as $instance) {
+      if ($instance['type_name'] != $field['type_name']) {
+        $new_instance = $instance;
+        $new_instance['db_storage'] = CONTENT_DB_STORAGE_PER_FIELD;
+
+        // Invoke hook_content_fieldapi().
+        module_invoke_all('content_fieldapi', 'update instance', $new_instance);
+
+        content_alter_schema($instance, $new_instance);
+      }
+    }
+  }
+
+  // Invoke hook_content_fieldapi().
+  module_invoke_all('content_fieldapi', 'update instance', $field);
+
+  // Update the field and the instance with the latest values.
+  _content_field_write($field, 'update');
+  _content_field_instance_write($field, 'update');
+
+  content_alter_schema($prev_field, $field);
+
+  if ($rebuild) {
+    content_clear_type_cache(TRUE);
+
+    // The label is in the menu tree, so we need a menu rebuild
+    // if the label changes.
+    if ($prev_field['widget']['label'] != $field['widget']['label']) {
+      menu_rebuild();
+    }
+  }
+
+  return $field;
+}
+
+/**
+ * Write a field record.
+ *
+ * @param $field
+ *   The field array to process.
+ */
+function _content_field_write($field, $op = 'update') {
+  // Rearrange the data to create the global_settings array.
+  $field['global_settings'] = array();
+  $setting_names = (array) module_invoke($field['module'], 'field_settings', 'save', $field);
+  drupal_alter('field_settings', $setting_names, 'save', $field);
+
+  foreach ($setting_names as $setting) {
+    // Unlike _content_field_instance_write() and 'widget_settings', 'global_settings'
+    // is never preexisting, so we take no particular precautions here.
+    $field['global_settings'][$setting] = isset($field[$setting]) ? $field[$setting] : '';
+    unset($field[$setting]);
+  }
+  // 'columns' is a reserved word in MySQL4, so our column is named 'db_columns'.
+  $field['db_columns'] = $field['columns'];
+
+  switch ($op) {
+    case 'create':
+      drupal_write_record(content_field_tablename(), $field);
+      break;
+    case 'update':
+      drupal_write_record(content_field_tablename(), $field, 'field_name');
+      break;
+  }
+  unset($field['db_columns']);
+  return $field;
+}
+
+/**
+ * Write a field instance record.
+ *
+ * @param $field
+ *   The field array to process.
+ */
+function _content_field_instance_write($field, $op = 'update') {
+  // Collapse the field => widget format, so that the values to be saved by
+  // drupal_write_record are on top-level.
+  $field = content_field_instance_collapse($field);
+
+  // Rearrange the data to create the widget_settings array.
+  $setting_names = (array) module_invoke($field['widget_module'], 'widget_settings', 'save', $field);
+  drupal_alter('widget_settings', $setting_names, 'save', $field);
+  foreach ($setting_names as $setting) {
+    // In some cases (when the updated $field was originally read from
+    // the db, as opposed to gathered from the values of a form), the values
+    // are already in the right place, we take care to not wipe them.
+    if (isset($field[$setting])) {
+      $field['widget_settings'][$setting] = $field[$setting];
+      unset($field[$setting]);
+    }
+  }
+
+  switch ($op) {
+    case 'create':
+      drupal_write_record(content_instance_tablename(), $field);
+      break;
+    case 'update':
+      drupal_write_record(content_instance_tablename(), $field, array('field_name', 'type_name'));
+      break;
+  }
+  return $field;
+}
+
+/**
+ * Load a field instance.
+ *
+ * @param $param
+ *   An array of properties to use in selecting a field instance. Valid keys:
+ *   - 'type_name' - The name of the content type in which the instance exists.
+ *   - 'field_name' - The name of the field whose instance is to be loaded.
+ *   if NULL, all instances will be returned.
+ * @param $include_inactive
+ *   TRUE will return field instances that are 'inactive', because their field
+ *   module or widget module is currently disabled.
+ * @return
+ *   The field arrays.
+ */
+function content_field_instance_read($param = NULL, $include_inactive = FALSE) {
+  $cond = array();
+  $args = array();
+  if (is_array($param)) {
+    // Turn the conditions into a query.
+    foreach ($param as $key => $value) {
+      $cond[] = 'nfi.'. db_escape_string($key) ." = '%s'";
+      $args[] = $value;
+    }
+  }
+  if (!$include_inactive) {
+    $cond[] = 'nf.active = 1';
+    $cond[] = 'nfi.widget_active = 1';
+  }
+  $where = $cond ? ' WHERE '. implode(' AND ', $cond) : '';
+
+  $db_result = db_query("SELECT * FROM {". content_instance_tablename() ."} nfi ".
+    " JOIN {". content_field_tablename() ."} nf ON nfi.field_name = nf.field_name ".
+    "$where ORDER BY nfi.weight ASC, nfi.label ASC", $args);
+
+  $fields = array();
+  while ($instance = db_fetch_array($db_result)) {
+    // Unserialize arrays.
+    foreach (array('widget_settings', 'display_settings', 'global_settings', 'db_columns') as $key) {
+      $instance[$key] = (!empty($instance[$key])) ? (array) unserialize($instance[$key]) : array();
+    }
+    // 'columns' is a reserved word in MySQL4, so our column is named 'db_columns'.
+    $instance['columns'] = $instance['db_columns'];
+    unset($instance['db_columns']);
+
+    // Unfold 'global_settings'.
+    foreach ($instance['global_settings'] as $key => $value) {
+      $instance[$key] = $value;
+    }
+    unset($instance['global_settings']);
+
+    // Put the field in the $field => 'widget' structure that is used
+    // all around content.module.
+    $field = content_field_instance_expand($instance);
+
+    // Invoke hook_content_fieldapi().
+    module_invoke_all('content_fieldapi', 'read instance', $field);
+    $fields[] = $field;
+  }
+  return $fields;
+}
+
+/**
+ * Delete an existing field instance.
+ *
+ * @param $field_name
+ *   The field name to delete.
+ * @param $type_name
+ *   The content type where the field instance is going to be deleted.
+ * @param $rebuild
+ *   TRUE to clear content type caches and rebuild menu (default).
+ *   FALSE allows the caller to process several fields at a time quickly, but then
+ *   the caller is reponsible to clear content type caches and rebuild menu as soon
+ *   as all fields have been processed. For example:
+ *   @code
+ *     // Delete several fields at a time.
+ *     foreach ($fields as $field) {
+ *       content_field_instance_delete($field['field_name'], $type_name, FALSE);
+ *     }
+ *     // Clear caches and rebuild menu.
+ *     content_clear_type_cache(TRUE);
+ *     menu_rebuild();
+ *   @endcode
+ * @see content_clear_type_cache()
+ * @see menu_rebuild()
+ */
+function content_field_instance_delete($field_name, $type_name, $rebuild = TRUE) {
+  include_once('./'. drupal_get_path('module', 'content') .'/includes/content.admin.inc');
+
+  // Get the previous field value.
+  $field = array_pop(content_field_instance_read(array('field_name' => $field_name, 'type_name' => $type_name)));
+
+  // Invoke hook_content_fieldapi().
+  module_invoke_all('content_fieldapi', 'delete instance', $field);
+
+  db_query("DELETE FROM {". content_instance_tablename() .
+    "} WHERE field_name = '%s' AND type_name = '%s'", $field['field_name'], $field['type_name']);
+
+  // If no instances remain, delete the field entirely.
+  $instances = content_field_instance_read(array('field_name' => $field_name));
+  if (sizeof($instances) < 1) {
+    db_query("DELETE FROM {". content_field_tablename() ."} WHERE field_name = '%s'", $field['field_name']);
+    content_alter_schema($field, array());
+  }
+  // If only one instance remains, we may need to change the database
+  // representation for this field.
+  elseif (sizeof($instances) == 1 && !($field['multiple'])) {
+    // Multiple-valued fields are always stored per-field-type.
+    $instance = $instances[0];
+    $new_instance = $instance;
+    $new_instance['db_storage'] = CONTENT_DB_STORAGE_PER_CONTENT_TYPE;
+    _content_field_write($new_instance, 'update');
+
+    content_alter_schema($instance, $new_instance);
+  }
+
+  // If the deleted instance was the last field for the content type,
+  // we drop the per-type table. We also consider possibly inactive fields.
+  if (!content_field_instance_read(array('type_name' => $field['type_name']), TRUE)) {
+    $base_tablename = _content_tablename($field['type_name'], CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+    if (db_table_exists($base_tablename)) {
+      db_drop_table($ret, $base_tablename);
+    }
+  }
+
+  if ($rebuild) {
+    content_clear_type_cache(TRUE);
+    menu_rebuild();
+  }
+
+  return $field;
+}
+
+/**
+ * Delete all data related to a module.
+ *
+ * @param string $module
+ */
+function content_module_delete($module) {
+  // Delete the field data.
+  // If content module has been uninstalled first, all tables
+  // have already been dropped, and running that code will raise errors.
+  if (db_table_exists(content_instance_tablename())) {
+    $results = db_query("SELECT field_name, type_name FROM {". content_instance_tablename() ."} WHERE widget_module = '%s'", $module);
+    while ($field = db_fetch_array($results)) {
+      content_field_instance_delete($field['field_name'], $field['type_name'], FALSE);
+    }
+    // Force the caches and static arrays to update to the new info.
+    content_clear_type_cache(TRUE);
+    menu_rebuild();
+  }
+}
+
+/**
+ * Make changes needed when a content type is created.
+ *
+ * @param $info
+ *   value supplied by hook_node_type()
+ *
+ * node_get_types() is still missing the new type at this point due to
+ * a static caching bug. We ask it to rebuild its cache so that
+ * content_clear_type_cache() can do its job properly.
+ */
+function content_type_create($info) {
+  node_get_types(NULL, NULL, TRUE);
+  content_clear_type_cache(TRUE);
+}
+
+/**
+ * Make changes needed when an existing content type is updated.
+ *
+ * @param $info
+ *   value supplied by hook_node_type()
+ */
+function content_type_update($info) {
+  if (!empty($info->old_type) && $info->old_type != $info->type) {
+    // Rename the content type in all fields that use changed content type.
+    db_query("UPDATE {". content_instance_tablename() ."} SET type_name='%s' WHERE type_name='%s'", array($info->type, $info->old_type));
+
+    // Rename the content fields table to match new content type name.
+    $old_type = content_types($info->old_type);
+    $old_name = _content_tablename($old_type['type'], CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+    $new_name = _content_tablename($info->type, CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+    if (db_table_exists($old_name)) {
+      $ret = array();
+      db_rename_table($ret, $old_name, $new_name);
+      watchdog('content', 'Content fields table %old_name has been renamed to %new_name and field instances have been updated.', array(
+        '%old_name' => $old_name, '%new_name' => $new_name));
+    }
+
+    // Rename the variable storing weights for non-CCK fields.
+    if ($extra = variable_get('content_extra_weights_'. $info->old_type, array())) {
+      variable_set('content_extra_weights_'. $info->type, $extra);
+      variable_del('content_extra_weights_'. $info->old_type);
+    }
+  }
+
+  // Reset all content type info.
+  // Menu needs to be rebuilt as well, but node types need to be rebuilt first.
+  // node_type_form_submit() takes care of this.
+  content_clear_type_cache(TRUE);
+}
+
+/**
+ * Make changes needed when a content type is deleted.
+ *
+ * @param $info
+ *   value supplied by hook_node_type()
+ *
+ * TODO should we skip doing this entirely since core leaves the
+ * nodes in the database as orphans and wait until the nodes are
+ * deleted to respond?
+ *
+ */
+function content_type_delete($info) {
+  // Don't delete data for content-types defined by disabled modules.
+  if (!empty($info->disabled)) {
+    return;
+  }
+
+  // TODO : What about inactive fields ?
+  // Currently, content_field_instance_delete doesn't work on those...
+  $fields = content_field_instance_read(array('type_name' => $info->type));
+  foreach ($fields as $field) {
+    content_field_instance_delete($field['field_name'], $info->type, FALSE);
+  }
+  $table = _content_tablename($info->type, CONTENT_DB_STORAGE_PER_CONTENT_TYPE);
+  if (db_table_exists($table)) {
+    $ret = array();
+    db_drop_table($ret, $table);
+    watchdog('content', 'The content fields table %name has been deleted.', array('%name' => $table));
+  }
+  // Menu needs to be rebuilt as well, but node types need to be rebuilt first.
+  // node_type_form_submit() takes care of this.
+  content_clear_type_cache(TRUE);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/content.devel.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.devel.inc
new file mode 100644
index 0000000..985813a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.devel.inc
@@ -0,0 +1,218 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Functions needed for Devel module integration.
+ * 
+ * TODO
+ * This is not really working correctly yet. It is getting called once
+ * for every field and then generating every field each time. But if
+ * you only process one field at a time the earlier ones lose their values.
+ * The current method works to create values, but is overly processor-
+ * intensive and needs to be reworked in a way that each field is 
+ * only processed once and all values are retained.
+ */
+
+/**
+ * Enrich the $node that is about to be saved with arbitrary
+ * information in each of its CCK fields.
+ **/
+function content_generate_fields(&$node, $field) {
+  $type_name = $node->type;
+  $type = content_types($type_name);
+  $field_types = _content_field_types();
+
+  if (!empty($type['fields'])) {
+    foreach ($type['fields'] as $field) {
+      $node_field = array();
+      // If module handles own multiples, then only call its hook once.
+      if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_MODULE) {
+        $max = 0;
+      }
+      else {
+        switch ($field['multiple']) {
+          case 0:
+            $max = 0;
+            break;
+          case 1:
+            $max = rand(0, 3); //just an arbitrary number for 'unlimited'
+            break;
+          default:
+            $max = $field['multiple'];
+            break;
+        }
+      }
+      for ($i = 0; $i <= $max; $i++) {
+        $module = $field_types[$field['type']]['module'];
+        $function = $module .'_content_generate';
+        if (function_exists($function)) {
+          $result = $function($node, $field); // $items, $teaser, $page
+          if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_MODULE) {
+            // Fields that handle their own multiples will add their own deltas.
+            $node_field = $result;
+          }
+          else {
+            // When multiples are handled by the content module, add a delta for each result.
+            $node_field[$i] = $result;
+          }
+        }
+      }
+      $node->{$field['field_name']} = $node_field;
+    }
+  }
+}
+
+/**
+ * A simple function to return multiple values for fields that use
+ * custom multiple value widgets but don't need any other special multiple
+ * values handling. This will call the field generation function
+ * a random number of times and compile the results into a node array.
+ */
+function content_devel_multiple($function, $node, $field) {
+  $node_field = array();
+  if (function_exists($function)) {
+    switch ($field['multiple']) {
+      case 0:
+        $max = 0;
+        break;
+      case 1:
+        $max = rand(0, 3); //just an arbitrary number for 'unlimited'
+        break;
+      default:
+        $max = $field['multiple'];
+        break;
+    }
+    for ($i = 0; $i <= $max; $i++) {
+      $node_field[$i] = $function($node, $field);
+    }
+  }
+  return $node_field;
+}
+
+if (module_exists('text')) {
+  function text_content_generate($node, $field) {
+    if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_MODULE) {
+      return content_devel_multiple('_text_content_generate', $node, $field);
+    }
+    else {
+      return _text_content_generate($node, $field);
+    }
+  }
+
+  function _text_content_generate($node, $field) {
+    $node_field = array();
+    if ($field['widget']['type'] == 'text_textarea') {
+      $format = $field['text_processing'] ? rand(0, 3) : 0;
+      $node_field['value'] = devel_create_content($format);
+      $node_field['format'] = $format;
+    }
+    else {
+      $allowed_values = content_allowed_values($field);
+      if (!empty($allowed_values)) {
+        // Just pick one of the specified allowed values.
+        $node_field['value'] = array_rand($allowed_values);
+      }
+      else {
+        // Generate a value that respects max_length.
+        if (empty($field['max_length'])) {
+          $field['max_length'] = 12;
+        }
+        $node_field['value'] = user_password($field['max_length']);
+      }
+    }
+    return $node_field;
+  }
+}
+
+if (module_exists('number')) {
+  function number_content_generate($node, $field) {
+    if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_MODULE) {
+      return content_devel_multiple('_number_content_generate', $node, $field);
+    }
+    else {
+      return _number_content_generate($node, $field);
+    }
+  }
+
+  function _number_content_generate($node, $field) {
+    $node_field = array();
+    $allowed_values = content_allowed_values($field);
+    if (!empty($allowed_values)) {
+      // Just pick one of the specified allowed values.
+      $node_field['value'] = array_rand($allowed_values);
+    }
+    else {
+      $min = is_numeric($field['min']) ? $field['min'] : 0;
+      switch ($field['type']) {
+        case 'number_integer':
+          $max = is_numeric($field['max']) ? $field['max'] : 10000;
+          $decimal = 0;
+          $scale = 0;
+          break;
+
+        case 'number_decimal':
+          $precision = is_numeric($field['precision']) ? $field['precision'] : 10;
+          $scale = is_numeric($field['scale']) ? $field['scale'] : 2;
+          $max = is_numeric($field['max']) ? $field['max'] : pow(10, ($precision - $scale));
+          $decimal = rand(0, (10 * $scale)) / 100;
+          break;
+
+        case 'number_float':
+          $precision = rand(10, 32);
+          $scale = rand(0, 2);
+          $decimal = rand(0, (10 * $scale)) / 100;
+          $max = is_numeric($field['max']) ? $field['max'] : pow(10, ($precision - $scale));
+          break;
+      }
+      $node_field['value'] = round((rand($min, $max) + $decimal), $scale);
+    }
+    return $node_field;
+  }
+}
+
+if (module_exists('nodereference')) {
+  function nodereference_content_generate($node, $field) {
+    if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_MODULE) {
+      return content_devel_multiple('_nodereference_content_generate', $node, $field);
+    }
+    else {
+      return _nodereference_content_generate($node, $field);
+    }
+  }
+
+  function _nodereference_content_generate($node, $field) {
+    $node_field = array();
+    $allowed_values = nodereference_allowed_values($field);
+    unset($allowed_values[0]);
+    if (!empty($allowed_values)) {
+      // Just pick one of the specified allowed values.
+      $node_field['nid'] = array_rand($allowed_values);
+    }
+    return $node_field;
+  }
+}
+
+if (module_exists('userreference')) {
+  function userreference_content_generate($node, $field) {
+    if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_MODULE) {
+      return content_devel_multiple('_userreference_content_generate', $node, $field);
+    }
+    else {
+      return _userreference_content_generate($node, $field);
+    }
+  }
+
+  function _userreference_content_generate($node, $field) {
+    $node_field = array();
+    $allowed_values = userreference_allowed_values($field);
+    if (isset($allowed_values['none'])) {
+      unset($allowed_values['none']);
+    }
+    if (!empty($allowed_values)) {
+      // Just pick one of the specified allowed values.
+      $node_field['uid'] = array_rand($allowed_values);
+    }
+    return $node_field;
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/content.diff.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.diff.inc
new file mode 100644
index 0000000..42a3634
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.diff.inc
@@ -0,0 +1,128 @@
+<?php
+// $Id$
+
+/**
+ * @file hook_diff() implementations for CCK (especially fields).
+ *
+ * These should use a field-hook so the data for the diff is
+ * field-type specific.
+ */
+
+/**
+ * Implementation of hook_diff()
+ */
+function content_diff($old_node, $new_node) {
+  $result = array();
+  // Prevent against invalid 'nodes' built by broken 3rd party code.
+  if (isset($new_node->type)) {
+    $type = content_types($new_node->type);
+    $field_types = _content_field_types();
+    foreach ($type['fields'] as $field) {
+      // Ignore fields the current user is not allowed to view.
+      if (!content_access('view', $field, NULL, $new_node)) {
+        continue;
+      }
+      $function = $field_types[$field['type']]['module'] . '_content_diff_values';
+      $function = function_exists($function) ? $function : 'content_content_diff_values';
+      $old_values = array();
+      $new_values = array();
+      if (isset($old_node->$field['field_name'])) {
+        $old_values = $function($old_node, $field, $old_node->$field['field_name']);
+      }
+      if (isset($new_node->$field['field_name'])) {
+        $new_values = $function($new_node, $field, $new_node->$field['field_name']);
+      }
+      if ($old_values || $new_values) {
+        $result[$field['field_name']] = array(
+          '#name' => $field['widget']['label'],
+          '#old' => $old_values,
+          '#new' => $new_values,
+          '#weight' => $field['widget']['weight'],
+          '#format' => array(
+            'show_header' => FALSE,
+          ),
+        );
+      }
+    }
+  }
+  return $result;
+}
+
+/**
+ * Default 'implementation' of hook_content_diff_values.
+ *
+ * Note that diff.module takes care of running check_plain on the output.
+ */
+function content_content_diff_values($node, $field, $items) {
+  $return = array();
+  foreach ($items as $item) {
+    foreach (explode("\n", $item['value']) as $i) {
+      $return[] = $i;
+    }
+  }
+  return $return;
+}
+
+if (module_exists('userreference')) {
+  /**
+   * Implementation of hook_content_diff_values.
+   */
+  function userreference_content_diff_values($node, $field, $items) {
+    static $titles = array();
+    // Gather ids.
+    $ids = array();
+    foreach ($items as $item) {
+      if ($item['uid'] && is_numeric($item['uid'])) {
+        $ids[] = $item['uid'];
+      }
+    }
+    // Fetch titles we don't know yet.
+    $queried_ids = array_diff($ids, array_keys($titles));
+    if ($queried_ids) {
+      $result = db_query('SELECT uid, name FROM {users} WHERE uid IN ('. db_placeholders($queried_ids) .')', $queried_ids);
+      while ($row = db_fetch_array($result)) {
+        $titles[$row['uid']] = $row['name'];
+      }
+    }
+    // Return result.
+    $return = array();
+    foreach ($items as $item) {
+      if ($item['uid'] && isset($titles[$item['uid']])) {
+        $return[] = $titles[$item['uid']];
+      }
+    }
+    return $return;
+  }
+}
+
+if (module_exists('nodereference')) {
+  /**
+   * Implementation of hook_content_diff_values.
+   */
+  function nodereference_content_diff_values($node, $field, $items) {
+    static $titles = array();
+    // Gather ids.
+    $ids = array();
+    foreach ($items as $item) {
+      if ($item['nid'] && is_numeric($item['nid'])) {
+        $ids[] = $item['nid'];
+      }
+    }
+    // Fetch titles we don't know yet.
+    $queried_ids = array_diff($ids, array_keys($titles));
+    if ($queried_ids) {
+      $result = db_query('SELECT nid, title FROM {node} WHERE nid IN ('. db_placeholders($queried_ids) .')', $queried_ids);
+      while ($row = db_fetch_array($result)) {
+        $titles[$row['nid']] = $row['title'];
+      }
+    }
+    // Return result.
+    $return = array();
+    foreach ($items as $item) {
+      if ($item['nid'] && isset($titles[$item['nid']])) {
+        $return[] = $titles[$item['nid']];
+      }
+    }
+    return $return;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/content.node_form.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.node_form.inc
new file mode 100644
index 0000000..681a340
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.node_form.inc
@@ -0,0 +1,380 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Create fields' form for a content type.
+ *
+ * Each field defines its own component of the content entry form, via its
+ * chosen widget.
+ */
+function content_form(&$form, &$form_state) {
+  $type = content_types($form['type']['#value']);
+  foreach ($type['fields'] as $field_name => $field) {
+    $form['#field_info'][$field['field_name']] = $field;
+    $form += (array) content_field_form($form, $form_state, $field);
+  }
+  return $form;
+}
+
+/**
+ * Create a separate form element for each field.
+ *
+ * // TODO: $count param ? not used anymore ?
+ * Hook_widget() picks up two new values, $count and $delta, to help
+ * widgets know what information to return since multiple values are
+ * sometimes controlled by the content module.
+ *
+ * @param $form
+ *   the form to add this field element to
+ * @param $form_state
+ *   the form_state for the above form
+ * @param $field
+ *   the field array to use to create the form element
+ * @param $get_delta
+ *   use to get only a specific delta value of a multiple value field, otherwise
+ *   function will return the entire $field form element.
+ */
+function content_field_form(&$form, &$form_state, $field, $get_delta = NULL) {
+  $form['#cache'] = FALSE;
+  $node = $form['#node'];
+  $addition = array();
+  $form_element = array();
+  $field_name = $field['field_name'];
+
+  $items = array();
+
+  // TODO: is the "if (function_exists($function)) {" needed ?
+  // defining the $function here makes it unclear where it is actually called
+  $function = $field['widget']['module'] .'_widget';
+  if (function_exists($function)) {
+    // Prepare the values to be filled in the widget.
+    // We look in the following places:
+    // - Form submitted values
+    // - Node values (when editing an existing node), or pre-filled values (when
+    //   creating a new node translation)
+    // - Default values set for the field (when creating a new node).
+    if (!empty($form_state['values'][$field['field_name']])) {
+      $items = $form_state['values'][$field['field_name']];
+      // If there was an AHAH add more button in this field, don't save it.
+      unset($items[$field['field_name'] .'_add_more']);
+    }
+    elseif (!empty($node->$field['field_name'])) {
+      $items = $node->$field['field_name'];
+    }
+    elseif (empty($node->nid)) {
+      if (content_callback('widget', 'default value', $field) != CONTENT_CALLBACK_NONE) {
+        // If a module wants to insert custom default values here,
+        // it should provide a hook_default_value() function to call,
+        // otherwise the content module's content_default_value() function
+        // will be used.
+        $callback = content_callback('widget', 'default value', $field) == CONTENT_CALLBACK_CUSTOM ? $field['widget']['module'] .'_default_value' : 'content_default_value';
+        if (function_exists($callback)) {
+          $items = $callback($form, $form_state, $field, 0);
+        }
+      }
+    }
+
+    // See if access to this form element is restricted,
+    // if so, skip widget processing and just set the value.
+    $access = content_access('edit', $field, NULL, $node);
+    if (!$access) {
+      $addition[$field_name] = array(
+        '#access' => $access,
+        '#type' => 'value',
+        '#value' => $items,
+      );
+      return $addition;
+    }
+
+    // If content module handles multiple values for this form element,
+    // and not selecting an individual $delta, process the multiple value form.
+    if (!isset($get_delta) && content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+      $form_element = content_multiple_value_form($form, $form_state, $field, $items);
+    }
+    // If the widget is handling multiple values (e.g optionwidgets),
+    // or selecting an individual element, just get a single form
+    // element and make it the $delta value.
+    else {
+      $delta = isset($get_delta) ? $get_delta : 0;
+      if ($element = $function($form, $form_state, $field, $items, $delta)) {
+        $title = check_plain(t($field['widget']['label']));
+        $description = content_filter_xss(t($field['widget']['description']));
+        $defaults = array(
+          '#required' => $get_delta > 0 ? FALSE : $field['required'],
+          '#columns'  => array_keys($field['columns']),
+          '#title' => $title,
+          '#description' => $description,
+          '#delta' => $delta,
+          '#field_name' => $field['field_name'],
+          '#type_name' => $field['type_name'],
+        );
+        // If we're processing a specific delta value for a field where the
+        // content module handles multiples, set the delta in the result.
+        // For fields that handle their own processing, we can't make assumptions
+        // about how the field is structured, just merge in the returned value.
+        if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+          $form_element[$delta] = array_merge($element, $defaults);
+        }
+        else {
+          $form_element = array_merge($element, $defaults);
+        }
+      }
+    }
+
+    // Field name is needed at top level as well as the individual elements
+    // so the multiple values or other field level theme or processing can find it.
+    if ($form_element) {
+      $defaults = array(
+        '#field_name' => $field['field_name'],
+        '#tree' => TRUE,
+        '#weight' => $field['widget']['weight'],
+        '#access' => $access,
+        // TODO: what's the need for #count ? does not seem to be used anywhere ?
+        '#count' => count($form_element),
+      );
+      $addition[$field['field_name']] = array_merge($form_element, $defaults);
+    }
+  }
+  return $addition;
+}
+
+/**
+ * Special handling to create form elements for multiple values.
+ *
+ * Handles generic features for multiple fields:
+ * - number of widgets
+ * - AHAH-'add more' button
+ * - drag-n-drop value reordering
+ */
+function content_multiple_value_form(&$form, &$form_state, $field, $items) {
+  $field_name = $field['field_name'];
+
+  switch ($field['multiple']) {
+    case 0:
+      $max = 0;
+      break;
+    case 1:
+      $filled_items = content_set_empty($field, $items);
+      $current_item_count = isset($form_state['item_count'][$field_name])
+                            ? $form_state['item_count'][$field_name]
+                            : count($items);
+      // We always want at least one empty icon for the user to fill in.
+      $max = ($current_item_count > count($filled_items))
+              ? $current_item_count - 1
+              : $current_item_count;
+
+      break;
+    default:
+      $max = $field['multiple'] - 1;
+      break;
+  }
+
+  $title = check_plain(t($field['widget']['label']));
+  $description = content_filter_xss(t($field['widget']['description']));
+
+  $form_element = array(
+    '#theme' => 'content_multiple_values',
+    '#title' => $title,
+    '#required' => $field['required'],
+    '#description' => $description,
+  );
+  $function = $field['widget']['module'] .'_widget';
+
+  for ($delta = 0; $delta <= $max; $delta++) {
+    if ($element = $function($form, $form_state, $field, $items, $delta)) {
+      $defaults = array(
+        '#title' => ($field['multiple'] >= 1) ? '' : $title,
+        '#description' => ($field['multiple'] >= 1) ? '' : $description,
+        '#required' => $delta == 0 && $field['required'],
+        '#weight' => $delta,
+        '#delta' => $delta,
+        '#columns' => array_keys($field['columns']),
+        '#field_name' => $field_name,
+        '#type_name' => $field['type_name'],
+      );
+
+      // Add an input field for the delta (drag-n-drop reordering), which will
+      // be hidden by tabledrag js behavior.
+      if ($field['multiple'] >= 1) {
+        // We name the element '_weight' to avoid clashing with column names
+        // defined by field modules.
+        $element['_weight'] = array(
+          '#type' => 'weight',
+          '#delta' => $max, // this 'delta' is the 'weight' element's property
+          '#default_value' => isset($items[$delta]['_weight']) ? $items[$delta]['_weight'] : $delta,
+          '#weight' => 100,
+        );
+      }
+
+      $form_element[$delta] = array_merge($element, $defaults);
+    }
+  }
+
+  // Add AHAH add more button, if not working with a programmed form.
+  if ($field['multiple'] == 1 && empty($form['#programmed'])) {
+    // Make sure the form is cached so ahah can work.
+    $form['#cache'] = TRUE;
+    $content_type = content_types($field['type_name']);
+    $field_name_css = str_replace('_', '-', $field_name);
+
+    $form_element[$field_name .'_add_more'] = array(
+      '#type' => 'submit',
+      '#name' => $field_name .'_add_more',
+      '#value' => t('Add another item'),
+      '#weight' => $field['widget']['weight'] + $max + 1,
+      // Submit callback for disabled JavaScript. drupal_get_form() might get
+      // the form from the cache, so we can't rely on content_form_alter()
+      // including this file. Therefore, call a proxy function to do this.
+      '#submit' => array('content_add_more_submit_proxy'),
+      '#ahah' => array(
+        'path' => 'content/js_add_more/'. $content_type['url_str'] .'/'. $field_name,
+        'wrapper' => $field_name_css .'-items',
+        'method' => 'replace',
+        'effect' => 'fade',
+      ),
+      // When JS is disabled, the content_add_more_submit handler will find
+      // the relevant field using these entries.
+      '#field_name' => $field_name,
+      '#type_name' => $field['type_name'],
+    );
+
+    // Add wrappers for the fields and 'more' button.
+    $form_element['#prefix'] = '<div id="'. $field_name_css .'-items">';
+    $form_element['#suffix'] = '</div>';
+    $form_element[$field_name .'_add_more']['#prefix'] = '<div class="content-add-more clear-block">';
+    $form_element[$field_name .'_add_more']['#suffix'] = '</div>';
+  }
+  return $form_element;
+}
+
+/**
+ * Submit handler to add more choices to a content form. This handler is used when
+ * JavaScript is not available. It makes changes to the form state and the
+ * entire form is rebuilt during the page reload.
+ */
+function content_add_more_submit($form, &$form_state) {
+  // Set the form to rebuild and run submit handlers.
+  node_form_submit_build_node($form, $form_state);
+  $field_name = $form_state['clicked_button']['#field_name'];
+  $type_name = $form_state['clicked_button']['#type_name'];
+
+  // Make the changes we want to the form state.
+  if ($form_state['values'][$field_name][$field_name .'_add_more']) {
+    $form_state['item_count'][$field_name] = count($form_state['values'][$field_name]);
+  }
+}
+
+/**
+ * Menu callback for AHAH addition of new empty widgets.
+ */
+function content_add_more_js($type_name_url, $field_name) {
+  $type = content_types($type_name_url);
+  $field = content_fields($field_name, $type['type']);
+
+  if (($field['multiple'] != 1) || empty($_POST['form_build_id'])) {
+    // Invalid request.
+    drupal_json(array('data' => ''));
+    exit;
+  }
+
+  // Retrieve the cached form.
+  $form_state = array('submitted' => FALSE);
+  $form_build_id = $_POST['form_build_id'];
+  $form = form_get_cache($form_build_id, $form_state);
+  if (!$form) {
+    // Invalid form_build_id.
+    drupal_json(array('data' => ''));
+    exit;
+  }
+
+  // We don't simply return a new empty widget to append to existing ones, because
+  // - ahah.js won't simply let us add a new row to a table
+  // - attaching the 'draggable' behavior won't be easy
+  // So we resort to rebuilding the whole table of widgets including the existing ones,
+  // which makes us jump through a few hoops.
+
+  // The form that we get from the cache is unbuilt. We need to build it so that
+  // _value callbacks can be executed and $form_state['values'] populated.
+  // We only want to affect $form_state['values'], not the $form itself
+  // (built forms aren't supposed to enter the cache) nor the rest of $form_data,
+  // so we use copies of $form and $form_data.
+  $form_copy = $form;
+  $form_state_copy = $form_state;
+  $form_copy['#post'] = array();
+  form_builder($_POST['form_id'], $form_copy, $form_state_copy);
+  // Just grab the data we need.
+  $form_state['values'] = $form_state_copy['values'];
+  // Reset cached ids, so that they don't affect the actual form we output.
+  form_clean_id(NULL, TRUE);
+
+  // Sort the $form_state['values'] we just built *and* the incoming $_POST data
+  // according to d-n-d reordering.
+  unset($form_state['values'][$field_name][$field['field_name'] .'_add_more']);
+  foreach ($_POST[$field_name] as $delta => $item) {
+    $form_state['values'][$field_name][$delta]['_weight'] = $item['_weight'];
+  }
+  $form_state['values'][$field_name] = _content_sort_items($field, $form_state['values'][$field_name]);
+  $_POST[$field_name] = _content_sort_items($field, $_POST[$field_name]);
+
+  // Build our new form element for the whole field, asking for one more element.
+  $form_state['item_count'] = array($field_name => count($_POST[$field_name]) + 1);
+  $form_element = content_field_form($form, $form_state, $field);
+  // Let other modules alter it.
+  // We pass an empty array as hook_form_alter's usual 'form_state' parameter,
+  // instead of $form_state (for reasons we may never remember).
+  // However, this argument is still expected to be passed by-reference
+  // (and PHP5.3 will throw an error if it isn't.) This leads to:
+  $data = &$form_element;
+  $empty_form_state = array();
+  $data['__drupal_alter_by_ref'] = array(&$empty_form_state);
+  drupal_alter('form', $data, 'content_add_more_js');
+
+  // Add the new element at the right place in the (original, unbuilt) form.
+  if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type['type'], $field_name))) {
+    $form[$group_name][$field_name] = $form_element[$field_name];
+  }
+  else {
+    $form[$field_name] = $form_element[$field_name];
+  }
+
+  // Save the new definition of the form.
+  $form_state['values'] = array();
+  form_set_cache($form_build_id, $form, $form_state);
+
+  // Build the new form against the incoming $_POST values so that we can
+  // render the new element.
+  $delta = max(array_keys($_POST[$field_name])) + 1;
+  $_POST[$field_name][$delta]['_weight'] = $delta;
+  $form_state = array('submitted' => FALSE);
+  $form += array(
+    '#post' => $_POST,
+    '#programmed' => FALSE,
+  );
+  $form = form_builder($_POST['form_id'], $form, $form_state);
+
+  // Render the new output.
+  $field_form = (!empty($group_name)) ? $form[$group_name][$field_name] : $form[$field_name];
+  // We add a div around the new content to receive the ahah effect.
+  $field_form[$delta]['#prefix'] = '<div class="ahah-new-content">'. (isset($field_form[$delta]['#prefix']) ? $field_form[$delta]['#prefix'] : '');
+  $field_form[$delta]['#suffix'] = (isset($field_form[$delta]['#suffix']) ? $field_form[$delta]['#suffix'] : '') .'</div>';
+  // Prevent duplicate wrapper.
+  unset($field_form['#prefix'], $field_form['#suffix']);
+
+  // If a newly inserted widget contains AHAH behaviors, they normally won't
+  // work because AHAH doesn't know about those - it just attaches to the exact
+  // form elements that were initially specified in the Drupal.settings object.
+  // The new ones didn't exist then, so we need to update Drupal.settings
+  // by ourselves in order to let AHAH know about those new form elements.
+  $javascript = drupal_add_js(NULL, NULL);
+  $output_js = isset($javascript['setting']) ? '<script type="text/javascript">jQuery.extend(Drupal.settings, '. drupal_to_js(call_user_func_array('array_merge_recursive', $javascript['setting'])) .');</script>' : '';
+
+  $output = theme('status_messages') . drupal_render($field_form) . $output_js;
+
+  // Using drupal_json() breaks filefield's file upload, because the jQuery
+  // Form plugin handles file uploads in a way that is not compatible with
+  // 'text/javascript' response type.
+  $GLOBALS['devel_shutdown'] =  FALSE;
+  print drupal_to_js(array('status' => TRUE, 'data' => $output));
+  exit;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/content.rules.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.rules.inc
new file mode 100644
index 0000000..9ebcb87
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.rules.inc
@@ -0,0 +1,348 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provides basic rules module support.
+ */
+
+/**
+ * Implementation of hook_rules_action_info().
+ */
+function content_rules_action_info() {
+  $info = array();
+  $info['content_rules_action_populate_field'] = array(
+    'label' => t('Populate a field'),
+    'arguments' => array(
+      'node' => array(
+        'type' => 'node',
+        'label' => t('Content'),
+      ),
+    ),
+    'eval input' => array('code'),
+    'help' => t('You should make sure that the used field exists in the given content type.'),
+    'module' => 'CCK',
+  );
+  return $info;
+}
+
+/**
+ * Action: populate a field.
+ */
+function content_rules_action_populate_field($node, $settings, $element, &$state) {
+  // Get information about the field.
+  $field = content_fields($settings['field_name'], $node->type);
+  $value = _content_rules_get_field_value($settings, $state);
+
+  if (!empty($field) && is_array($value)) {
+    $node->$settings['field_name'] = $value;
+    return array('node' => $node);
+  }
+}
+
+
+/**
+ * Action "populate a field" configuration form.
+ * This is a multistep form!
+ */
+function content_rules_action_populate_field_form($settings, &$form, &$form_state) {
+  $settings += array('field_name' => '', 'code' => '', 'value' => NULL);
+  if (empty($settings['field_name'])) {
+    $form['settings']['field_name'] = array(
+      '#type' => 'select',
+      '#title' => t('Field'),
+      '#options' => content_rules_get_field_names_by_type(),
+      '#default_value' => $settings['field_name'],
+      '#description' => t('Select the machine-name of the field.'),
+      '#required' => TRUE,
+    );
+    // Hide some form elements in the first step.
+    $form['negate']['#access'] = FALSE;
+    $form['input_help']['#access'] = FALSE;
+    $form['weight']['#access'] = FALSE;
+
+    // Replace the usual submit handlers with a own handler.
+    $form['submit']['#submit'] = array('content_rules_action_populate_field_form_step_submit');
+    $form['submit']['#value'] = t('Continue');
+  }
+  else {
+    // Show the fields form here.
+    module_load_include('inc', 'content', 'includes/content.node_form');
+    $field = content_fields($settings['field_name']);
+
+    $form['#node'] = (object)array('type' => '', $settings['field_name'] => $settings['value']);
+    $form['#field_info'][$field['field_name']] = $field;
+    // We can't put it into $form['settings'] as this would break AHAH callbacks
+    $form += (array) content_field_form($form, $form_state, $field);
+    $form[ $settings['field_name'] ]['#weight'] = 4;
+
+    unset($form['#cache']);
+
+      // Advanced: PHP code.
+    $form['advanced_options'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Advanced: Specify the fields value with PHP code'),
+      '#collapsible' => TRUE,
+      '#collapsed' => empty($settings['code']),
+      '#weight' => 5,
+    );
+
+    $db_info = content_database_info($field);
+    $columns = array_keys($db_info['columns']);
+    foreach ($columns as $key => $column) {
+      $columns[$key] = t("'@column' => value for @column", array('@column' => $column));
+    }
+    $sample = t("return array(\n  0 => array(@columns),\n  // You'll usually want to stop here. Provide more values\n  // if you want your 'default value' to be multi-valued:\n  1 => array(@columns),\n  2 => ...\n);", array('@columns' => implode(', ', $columns)));
+
+    $form['advanced_options']['code'] = array(
+      '#type' => 'textarea',
+      '#title' => t('Code'),
+      '#default_value' => $settings['code'],
+      '#rows' => 6,
+      '#description' => t('Advanced usage only: PHP code that returns the value to set. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href="@link_devel">devel.module\'s</a> \'devel load\' tab on a content page might help you figure out the expected format.', array(
+        '!sample' => $sample,
+        '@link_devel' => 'http://www.drupal.org/project/devel',
+      )),
+    );
+
+    // Add this file to be included when the form is built by rules
+    // as it's needed by CCKs add more button.
+    // See rules_after_build_include_files().
+    $form['#includes'][] = './'. drupal_get_path('module', 'node') .'/node.pages.inc';
+  }
+}
+
+function content_rules_action_populate_field_form_step_submit($form, &$form_state) {
+  $form_state['element']['#settings']['field_name'] = $form_state['values']['settings']['field_name'];
+}
+
+/**
+ * Validate the chosen value or php code.
+ */
+function content_rules_action_populate_field_validate($form, &$form_state) {
+  if (!isset($form_state['element']['#settings']['field_name'])) {
+    //Just validate the last step.
+    return;
+  }
+
+  if (isset($form_state['values']['code']) && ($php = $form_state['values']['code'])) {
+    if (strpos($php, 'return') === FALSE) {
+      form_set_error('code', t('You have to return the default value in the expected format.'));
+    }
+  }
+  else {
+    // Validate the field.
+    $settings = $form_state['element']['#settings'];
+    $field = content_fields($settings['field_name']);
+    $field_types = _content_field_types();
+    $function = $field_types[$field['type']]['module'] .'_field';
+    if (function_exists($function)) {
+      $form['#node'] = (object)array('type' => '', $settings['field_name'] => $form_state['values'][$settings['field_name']]);
+      $items = isset($form['#node']->$field['field_name']) ? $form['#node']->$field['field_name'] : array();
+
+      //Make sure AHAH 'add more' button isn't sent to the fields
+      // for processing.
+      unset($items[$field['field_name'] .'_add_more']);
+
+      $function('validate', $form['#node'], $field, $items, $form, NULL);
+      content_field('validate', $form['#node'], $field, $items, $form, NULL);
+    }
+  }
+}
+
+function content_rules_action_populate_field_submit(&$settings, $form, &$form_state) {
+  // Take over field values and filter out private properties added by CCK
+  $settings['value'] = array_filter($form_state['values'][$settings['field_name']], 'is_array');
+
+  foreach ($settings['value'] as $key => $data) {
+    foreach (array_filter(array_keys($data)) as $col) {
+      if ($col[0] == '_') {
+        unset($settings['value'][$key][$col]);
+      }
+    }
+    if ($key && count(array_filter($settings['value'][$key])) == 0) {
+      // For multi-valued fields don't check for any additional empty values.
+      unset($settings['value'][$key]);
+    }
+  }
+
+  $settings['code'] = $form_state['values']['code'];
+
+  if (function_exists('rules_action_custom_php_submit')) {
+    // Support adding variables to the php code, if php module is present.
+    rules_action_custom_php_submit($settings, $form, $form_state);
+  }
+
+  // Add all values to the input evaluator, so that textfields / textares can
+  // make use of it.
+  $names = array('code');
+
+  foreach ($settings['value'] as $key => $data) {
+    foreach (array_filter($data, 'is_string') as $col => $value) {
+      $names[] = "value|$key|$col";
+    }
+  }
+  $form_state['element']['#info']['eval input'] = $names;
+}
+
+
+/**
+ * Label callback: Improve the label of the action.
+ */
+function content_rules_action_populate_field_label($settings, $argument_labels) {
+  return t("Populate @node's field '@field'", array('@field' => $settings['field_name']) + $argument_labels);
+}
+
+function workflow_ng_action_populate_field_upgrade(&$element) {
+  $element['#name'] = 'content_rules_action_populate_field';
+  $element['#settings']['code'] = $element['#settings']['default_value_php'];
+  $element['#settings'][$element['#settings']['field_name']] = array();
+  unset($element['#settings']['default_value_php']);
+}
+
+
+/**
+ * Implementation of hook_rules_condition_info().
+ */
+function content_rules_condition_info() {
+  $info = array();
+  $info['content_rules_field_has_value'] = array(
+    'label' => t('Field has value'),
+    'arguments' => array(
+      'node' => array('type' => 'node', 'label' => t('Content')),
+    ),
+    'eval input' => array('code'),
+    'help' => t('You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value.'),
+    'module' => 'CCK',
+  );
+  $info['content_rules_field_changed'] = array(
+    'label' => t('Field has changed'),
+    'arguments' => array(
+      'node' => array('type' => 'node', 'label' => t('Content containing changes')),
+      'node_unchanged' => array('type' => 'node', 'label' => t('Content not containing changes')),
+    ),
+    'help' => t('You should make sure that the used field exists in the given content type.'),
+    'module' => 'CCK',
+  );
+  return $info;
+}
+
+/**
+ * Condition: Check the value of a field.
+ */
+function content_rules_field_has_value($node, $settings) {
+  // Get information about the field.
+  $field = content_fields($settings['field_name'], $node->type);
+  $value = _content_rules_get_field_value($settings, $state);
+
+  if (empty($field) || !is_array($value)) {
+    return FALSE;
+  }
+
+  return _content_rules_field_has_value($node->$settings['field_name'], $value);
+}
+
+/**
+ * Use the same configuration form as the "populate field" action.
+ */
+function content_rules_field_has_value_form($settings, &$form, &$form_state) {
+  content_rules_action_populate_field_form($settings, $form, $form_state);
+}
+function content_rules_field_has_value_validate($form, &$form_state) {
+  content_rules_action_populate_field_validate($form, $form_state);
+}
+function content_rules_field_has_value_submit(&$settings, $form, &$form_state) {
+  content_rules_action_populate_field_submit($settings, $form, $form_state);
+}
+
+function content_rules_field_has_value_label($settings, $argument_labels) {
+  return t("@node's field '@field' has value", array('@field' => $settings['field_name']) + $argument_labels);
+}
+
+/**
+ * Condition: Check if the field has changed.
+ */
+function content_rules_field_changed($node1, $node2, $settings) {
+  // Get information about the field.
+  $field = content_fields($settings['field_name'], $node1->type);
+
+  return !empty($field) && !_content_rules_field_has_value($node1->$settings['field_name'], $node2->$settings['field_name']);
+}
+
+function content_rules_field_changed_form($settings, &$form, &$form_state) {
+  $settings += array('field_name' => '');
+  $form['settings']['field_name'] = array(
+    '#type' => 'select',
+    '#title' => t('Field'),
+    '#options' => content_rules_get_field_names_by_type(),
+    '#default_value' => $settings['field_name'],
+    '#description' => t('Select the machine-name of the field to look at.'),
+    '#required' => TRUE,
+  );
+}
+
+function content_rules_field_changed_label($settings, $argument_labels) {
+  return t("@node's field '@field' has been changed", array('@field' => $settings['field_name']) + $argument_labels);
+}
+
+
+/**
+ * Returns the fields of a given field type only.
+ * Suitable for using it with #options.
+ */
+function content_rules_get_field_names_by_type($type = NULL) {
+  $fields = array();
+  foreach (content_fields() as $field) {
+    if (!isset($type) || $field['type'] == $type) {
+      $fields[$field['field_name']] = $field['field_name'];
+    }
+  }
+  asort($fields);
+  return $fields;
+}
+
+function _content_rules_get_field_value($settings, &$state) {
+  if ($settings['code']) {
+    if (function_exists('rules_input_evaluator_php_apply')) {
+      // Support adding variables to the php code, if php module is present.
+      $value = rules_input_evaluator_php_apply($settings['code'], $settings['vars'], $state, FALSE);
+    }
+    else {
+      ob_start();
+      $value = eval($settings['code']);
+      ob_end_clean();
+    }
+  }
+  else {
+    $value = $settings['value'];
+  }
+  return $value;
+}
+
+/**
+ * Checks whether both field values match in a robust way.
+ *
+ * It returns TRUE, only if the number of multiple values matches and
+ * each property of the cck field's value is the same in the node.
+ *
+ * @param $node_value The value present in the node.
+ * @param $value The value to check for.
+ */
+function _content_rules_field_has_value($node_value, $value) {
+  if (count($value) != count($node_value)) {
+    return FALSE;
+  }
+  // Loop over multiple fields
+  foreach ($value as $delta => $sub_value) {
+    // Check if all properties of the value are there in the node value too
+    if (is_array($sub_value) && is_array($node_value[$delta])) {
+      if (count(array_diff_assoc($sub_value, $node_value[$delta])) != 0) {
+        return FALSE;
+      }
+    }
+    elseif ($sub_value !== $node_value[$delta]) {
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/content.token.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.token.inc
new file mode 100644
index 0000000..0ff71b3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/content.token.inc
@@ -0,0 +1,187 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_content_build_modes
+ * (on behalf of token.module)
+ */
+function token_content_build_modes() {
+  return array(
+    'token' => array(
+      'title' => t('Token'),
+      'build modes' => array(
+        'token' => array(
+          'title' => t('Token'),
+          'views style' => FALSE,
+        ),
+      ),
+    ),
+  );
+}
+
+// Two helper functions that generate appropriate tokens for CCK-added fields.
+function content_token_values($type, $object = NULL, $options = array()) {
+  $tokens = array();
+  if ($type == 'node') {
+    // Prevent against invalid 'nodes' built by broken 3rd party code.
+    if (isset($object->type)) {
+      // Let PHP free the $node object when we are done. Working directly on the
+      // incoming $object causes memory leak issues on long-running scripts such
+      // as migrations. See http://drupal.org/node/736440.
+      $node = drupal_clone($object);
+      $content_type = content_types($node->type);
+      $node->build_mode = 'token';
+      $node->content = array();
+      content_view($node);
+      // The formatted values will only be known after the content has been rendered.
+      drupal_render($node->content);
+      content_alter($node);
+
+      $field_types = _content_field_types();
+      foreach ($content_type['fields'] as $field_name => $field) {
+        $items = isset($node->{$field_name}) ? $node->{$field_name} : array();
+        $function = $field_types[$field['type']]['module'] . '_token_values';
+        if (!empty($items) && function_exists($function)) {
+          $token_values = (array) $function('field', $items, $options);
+          foreach ($token_values as $token => $value) {
+            $tokens[$field_name .'-'. $token] = $value;
+          }
+        }
+      }
+    }
+  }
+  return $tokens;
+}
+
+function content_token_list($type = 'all') {
+  if ($type == 'node' || $type == 'all') {
+    $list = array();
+    $field_types = _content_field_types();
+
+    foreach (content_fields() as $field) {
+      $sub_list = array();
+      $function = $field_types[$field['type']]['module'] . '_token_list';
+      if (function_exists($function)) {
+        $sub_list = $function('field');
+        foreach ($sub_list as $category => $token_list) {
+          foreach ($token_list as $token => $description) {
+            $list['CCK '. $category][$field['field_name'] .'-'. $token] = $description;
+          }
+        }
+      }
+    }
+
+    return $list;
+  }
+}
+
+if (module_exists('nodereference')) {
+  function nodereference_token_list($type = 'all') {
+    if ($type == 'field' || $type == 'all') {
+      $tokens = array();
+
+      $tokens['node reference']['nid']   = t('Referenced node ID');
+      $tokens['node reference']['title'] = t('Referenced node title');
+      $tokens['node reference']['title-raw'] = t('Referenced node unfiltered title. WARNING - raw user input.');
+      $tokens['node reference']['link']  = t("Formatted html link to the referenced node.");
+      $tokens['node reference']['path']  = t("Relative path alias to the referenced node.");
+      $tokens['node reference']['url']  = t("Absolute path alias to the referenced node.");
+
+      return $tokens;
+    }
+  }
+
+  function nodereference_token_values($type, $object = NULL, $options = array()) {
+    if ($type == 'field') {
+      $item = $object[0];
+
+      $title = is_numeric($item['nid']) ? _nodereference_titles($item['nid']) : '';
+      $tokens['nid']   = $item['nid'];
+      $tokens['title'] = $title ? check_plain($title) : '';
+      $tokens['title-raw'] = $title;
+      $tokens['link']  = isset($item['view']) ? $item['view'] : '';
+      $tokens['path'] = is_numeric($item['nid']) ? url('node/' . $item['nid']) : '';
+      $tokens['url'] = is_numeric($item['nid']) ? url('node/' . $item['nid'], array('absolute' => TRUE)) : '';
+
+      return $tokens;
+    }
+  }
+}
+
+if (module_exists('number')) {
+  function number_token_list($type = 'all') {
+    if ($type == 'field' || $type == 'all') {
+      $tokens = array();
+
+      $tokens['number']['raw']       = t('Raw number value');
+      $tokens['number']['formatted'] = t('Formatted number value');
+
+      return $tokens;
+    }
+  }
+
+  function number_token_values($type, $object = NULL, $options = array()) {
+    if ($type == 'field') {
+      $item = $object[0];
+
+      $tokens['raw']       = $item['value'];
+      $tokens['formatted'] = isset($item['view']) ? $item['view'] : '';
+
+      return $tokens;
+    }
+  }
+}
+
+if (module_exists('text')) {
+  function text_token_list($type = 'all') {
+    if ($type == 'field' || $type == 'all') {
+      $tokens = array();
+
+      $tokens['text']['raw']       = t('Raw, unfiltered text');
+      $tokens['text']['formatted'] = t('Formatted and filtered text');
+
+      return $tokens;
+    }
+  }
+
+  function text_token_values($type, $object = NULL, $options = array()) {
+    if ($type == 'field') {
+      $item = $object[0];
+
+      $tokens['raw']  = $item['value'];
+      $tokens['formatted'] = isset($item['view']) ? $item['view'] : '';
+      return $tokens;
+    }
+  }
+}
+
+if (module_exists('userreference')) {
+  function userreference_token_list($type = 'all') {
+    if ($type == 'field' || $type == 'all') {
+      $tokens = array();
+
+      $tokens['user reference']['uid']   = t('Referenced user ID');
+      $tokens['user reference']['name']  = t('Referenced user name');
+      $tokens['user reference']['link']  = t('Formatted HTML link to referenced user');
+      $tokens['user reference']['path']  = t("Relative path alias to the referenced user.");
+      $tokens['user reference']['url']  = t("Absolute path alias to the referenced user.");
+
+      return $tokens;
+    }
+  }
+
+  function userreference_token_values($type, $object = NULL, $options = array()) {
+    if ($type == 'field') {
+      $item = $object[0];
+
+      $tokens['uid']   = $item['uid'];
+      $tokens['name']  = isset($item['view']) ? strip_tags($item['view']) : '';
+      $tokens['link']  = isset($item['view']) ? $item['view'] : '';
+      $tokens['path'] = is_numeric($item['uid']) ? url('user/' . $item['uid']) : '';
+      $tokens['url'] = is_numeric($item['uid']) ? url('user/' . $item['uid'], array('absolute' => TRUE)) : '';
+
+      return $tokens;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/panels/content_types/content_field.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/panels/content_types/content_field.inc
new file mode 100644
index 0000000..58888e9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/panels/content_types/content_field.inc
@@ -0,0 +1,215 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * This file provides a CTools content type for fields.
+ */
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function content_content_field_ctools_content_types() {
+  return array(
+    'title' => t('Content field'),
+    'defaults' => array('label' => '', 'formatter' => ''),
+    'content type' => 'content_content_field_content_type_content_type',
+  );
+}
+
+/**
+ * Return all field content types available.
+ */
+function content_content_field_content_type_content_types() {
+  // This will hold all the individual field content types.
+  $types = array();
+
+  // Get all fields on the site.
+  $field_types = _content_field_types();
+
+  foreach (content_types() as $type_name => $type) {
+    foreach ($type['fields'] as $field_name => $field) {
+      if (!isset($types[$field_name])) {
+        $types[$field_name] = array(
+          'category' => t('Node'),
+          'icon' => 'icon_cck_field.png',
+          'title' => t('Field: @widget_label (@field_name) - @field_type', array(
+            '@widget_label' => t($field['widget']['label']),
+            '@field_name' => $field_name,
+            '@field_type' => t($field_types[$field['type']]['label']),
+          )),
+          'description' => t('Field on the referenced node.'),
+          'types' => array(),
+        );
+        if (isset($field_types[$field['type']]['content_icon'])) {
+          $types[$field_name]['icon'] = $field_types[$field['type']]['content_icon'];
+        }
+      }
+      $types[$field_name]['types'][$type_name] = $type['name'];
+    }
+  }
+
+  // Create the required context for each field related to the content types.
+  foreach ($types as $field_name => $field_content_type) {
+    $types[$field_name]['required context'] = new ctools_context_required(t('Node'), 'node', array(
+      'type' => array_keys($types[$field_name]['types']),
+    ));
+    unset($types[$field_name]['types']);
+  }
+
+  return $types;
+}
+
+/**
+ * Just one subtype.
+ *
+ * Ordinarily this function is meant to get just one subtype. However, we are
+ * using it to deal with the fact that we have changed the subtype names. This
+ * lets us translate the name properly.
+ */
+function content_content_field_content_type_content_type($subtype) {
+  // Previous versions of CCK included the content type as part of the subtype.
+  // This allows those to continue to sort of work, at least during render.
+  if (strpos($subtype, ':') !== FALSE) {
+    list($content_type, $subtype) = explode(':', $subtype, 2);
+  }
+
+  $types = content_content_field_content_type_content_types();
+  if (isset($types[$subtype])) {
+    return $types[$subtype];
+  }
+}
+
+/**
+ * Output function for the 'field' content type.
+ */
+function content_content_field_content_type_render($subtype, $conf, $panel_args, $context) {
+  // Previous versions of CCK included the content type as part of the subtype.
+  // This allows those to continue to sort of work, at least during render.
+  if (strpos($subtype, ':') !== FALSE) {
+    list($content_type, $subtype) = explode(':', $subtype, 2);
+  }
+
+  if (is_array($context)) {
+    $context = array_pop($context);
+  }
+  // If we do not have a node, then we cannot generate output.
+  if (!isset($context->data)) {
+    return;
+  }
+  $node = drupal_clone($context->data);
+
+  // Extract the node type from the node in context, the field name from the
+  // panels content type subtype, and get the content field structure.
+  $field_name = $subtype;
+  $field = content_fields($field_name, $node->type);
+
+  // Get the formatter that was selected in the settings dialog.
+  $formatter = $conf['formatter'];
+
+  // Check view access to the field.
+  if (!content_access('view', $field, NULL, $node)) {
+    return;
+  }
+
+  // Force panel settings into the field's display settings.
+  $field['display_settings']['label']['format'] = $conf['label'] == 'normal' || !empty($conf['override_title']) ? 'hidden' : $conf['label'];
+  $field['display_settings']['full']['format'] = $formatter;
+  $node->build_mode = NODE_BUILD_NORMAL;
+  // TODO : allow panel-specific template suggestions for content-field.tpl.php ?
+
+  $output = content_view_field($field, $node);
+
+  $block = new stdClass();
+  $block->module = 'content';
+  $block->delta = $field_name;
+  if ($conf['label'] == 'normal') {
+    $block->title = t($field['widget']['label']);
+  }
+  $block->content = $output;
+
+  return $block;
+}
+
+/**
+ * Returns a settings form for the custom type.
+ */
+function content_content_field_content_type_edit_form(&$form, &$form_state) {
+  $conf = $form_state['conf'];
+
+  $form['label'] = array(
+    '#type' => 'select',
+    '#title' => t('Field label'),
+    '#default_value' => isset($conf['label']) ? $conf['label'] : '',
+    '#options' => array(
+      'normal' => t('Block title'),
+      'above' => t('Above'),
+      'inline' => t('Inline'),
+    ),
+    '#description' => t('Configure how the label is going to be displayed. This option takes no effect when "Override title" option is enabled, the specified block title is displayed instead.'),
+  );
+
+  // Extract the field name from the panels content type subtype.
+  $field_name = $form_state['subtype_name'];
+
+  // Previous versions of CCK included the content type as part of the subtype.
+  // This allows those to continue to sort of work.
+  if (strpos($field_name, ':') !== FALSE) {
+    list($content_type, $field_name) = explode(':', $field_name, 2);
+  }
+
+  // Get all the information about our field.
+  $field = content_fields($field_name);
+
+  // Get information about all the field types on the site.
+  $field_types = _content_field_types();
+
+  // Get the information about the type that our field is.
+  $type_info = $field_types[$field['type']];
+
+  // Put the possible formatters for our type into an array.
+  $options = array();
+  foreach ($type_info['formatters'] as $formatter_name => $formatter) {
+    $options[$formatter_name] = $formatter['label'];
+  }
+
+  $form['formatter'] = array(
+    '#type' => 'select',
+    '#title' => t('Field formatter'),
+    '#default_value' => isset($conf['formatter']) ? $conf['formatter'] : 'default',
+    '#options' => $options,
+    '#description' => t('Select a formatter.'),
+    '#required' => TRUE,
+  );
+}
+
+function content_content_field_content_type_edit_form_submit(&$form, &$form_state) {
+  // Copy everything from our defaults.
+  foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+    $form_state['conf'][$key] = $form_state['values'][$key];
+  }
+}
+
+/**
+ * Admin title for field content type.
+ */
+function content_content_field_content_type_admin_title($subtype, $conf, $context) {
+  // Previous versions of CCK included the content type as part of the subtype.
+  // This allows those to continue to sort of work, at least during render.
+  if (strpos($subtype, ':') !== FALSE) {
+    list($content_type, $subtype) = explode(':', $subtype, 2);
+  }
+
+  // Get all fields on the site.
+  $field_types = _content_field_types();
+
+  // Get all the information about our field.
+  $field = content_fields($subtype);
+
+  return t('"@s" field: @widget_label (@field_name) - @field_type', array(
+    '@s' => $context->identifier,
+    '@widget_label' => t($field['widget']['label']),
+    '@field_name' => $subtype,
+    '@field_type' => t($field_types[$field['type']]['label']),
+  ));
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/panels/content_types/icon_cck_field.png b/drupal/sites/default/boinc/modules/contrib/cck/includes/panels/content_types/icon_cck_field.png
new file mode 100644
index 0000000..d33aae5
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/includes/panels/content_types/icon_cck_field.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/content.views.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/content.views.inc
new file mode 100644
index 0000000..071930f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/content.views.inc
@@ -0,0 +1,375 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Interface between content.module and views.module.
+ */
+
+// Include the files defining the classes we extend.
+// This is needed in case the /cck folder lives in the main
+// /modules folder (views_module_include() will then load
+// content.views.inc before node.views.inc)
+module_load_include('inc', 'views', 'modules/node.views');
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function content_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'content') . '/includes/views/handlers',
+    ),
+    'handlers' => array(
+
+      // argument handlers
+      'content_handler_argument' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'content_handler_argument_string' => array(
+        'parent' => 'views_handler_argument_string',
+      ),
+      'content_handler_argument_numeric' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+      'content_handler_argument_reference' => array(
+        'parent' => 'content_handler_argument_numeric',
+      ),
+      'content_handler_argument_many_to_one' => array(
+        'parent' => 'views_handler_argument_many_to_one',
+      ),
+
+      // field handlers
+      'content_handler_field' => array(
+        'parent' => 'views_handler_field_node',
+      ),
+      'content_handler_field_multiple' => array(
+        'parent' => 'content_handler_field',
+      ),
+
+      // filter handlers
+      'content_handler_filter_string' => array(
+        'parent' => 'views_handler_filter_string',
+      ),
+      'content_handler_filter_numeric' => array(
+        'parent' => 'views_handler_filter_numeric',
+      ),
+      'content_handler_filter_float' => array(
+        'parent' => 'views_handler_filter_float',
+      ),
+      'content_handler_filter_many_to_one' => array(
+        'parent' => 'views_handler_filter_many_to_one',
+      ),
+
+      // relationship handlers
+      'content_handler_relationship' => array(
+        'parent' => 'views_handler_relationship',
+      ),
+
+      // sort handlers
+      'content_handler_sort' => array(
+        'parent' => 'views_handler_sort',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_plugins.
+ *
+ * Defines some plugins used by the Views modes for
+ * nodereference and userreference.
+ */
+function content_views_plugins() {
+  $plugins = array(
+    'module' => 'content', // This just tells our themes are elsewhere.
+    'display' => array(
+      'content_simple' => array(
+        'path' => drupal_get_path('module', 'content') . '/includes/views/handlers',
+        // Those strings are not translated for now.
+        // We'll need to change that if / when we remove 'no ui'
+        'title' => 'Simple', // TODO: better name ? (currently not displayed anyway)
+        'help' => 'Destination-agnostic display. Mostly useful for programmatic views.',
+        'handler' => 'content_plugin_display_simple',
+        'no ui' => TRUE, // Programmatic use only.
+        'uses hook menu' => FALSE,
+        'use ajax' => FALSE,
+        'use pager' => FALSE,
+        'accept attachments' => FALSE,
+      ),
+      'content_references' => array(
+        'path' => drupal_get_path('module', 'content') . '/includes/views/handlers',
+        // Those strings are not translated for now.
+        // We'll need to change that if / when we remove 'no ui'
+        'title' => 'Simple - for reference fields', // TODO: better name ? (currently not displayed anyway)
+        'help' => 'Destination-agnostic display. Mostly useful for programmatic views.',
+        'parent' => 'content_simple',
+        'handler' => 'content_plugin_display_references',
+        'no ui' => TRUE, // Programmatic use only.
+        'uses hook menu' => FALSE,
+        'use ajax' => FALSE,
+        'use pager' => FALSE,
+        'accept attachments' => FALSE,
+      ),
+    ),
+    'style' => array(
+      'content_php_array_autocomplete' => array(
+        'path' => drupal_get_path('module', 'content') . '/includes/views/handlers',
+        // Those strings are not translated for now.
+        // We'll need to change that if / when we remove 'no ui'
+        'title' => 'Results array (with title)',
+        'help' => 'Returns the view as a PHP array of names + rendered rows.',
+        'handler' => 'content_plugin_style_php_array_ac',
+        'no ui' => TRUE, // Programmatic use only.
+        'uses row plugin' => TRUE,
+        'uses fields' => TRUE,
+        'type' => 'content_simple',
+        'even empty' => TRUE,
+      ),
+    ),
+  );
+  return $plugins;
+}
+
+/**
+ * Implementation of hook_views_data().
+ *
+ * Exposes all fields to the views system.
+ */
+function content_views_data() {
+  $data = array();
+  foreach (content_fields() as $field) {
+    $module = $field['module'];
+    $result = (array) module_invoke($module, 'field_settings', 'views data', $field);
+    drupal_alter('field_settings', $result, 'views data', $field);
+    if (empty($result)) {
+      $result = content_views_field_views_data($field);
+    }
+    if (is_array($result)) {
+      $data = array_merge($data, $result);
+    }
+  }
+  return $data;
+}
+
+
+function content_views_field_views_data($field) {
+  $field_types = _content_field_types();
+
+  // Check the field module is available.
+  // TODO: is this really how we should do it ?
+  if (isset($field_types[$field['type']])) {
+    $db_info = content_database_info($field);
+
+    // Field modules that do not store data in the database
+    // should not create views data tables.
+    if (empty($db_info['columns'])) {
+      return;
+    }
+
+    $table_alias = content_views_tablename($field);
+
+    $types = array();
+    foreach (content_types() as $type) {
+      if (isset($type['fields'][$field['field_name']])) {
+        // TODO : run check_plain here instead of on the imploded string below ?
+        $types[] = $type['name'];
+      }
+    }
+
+    $data = array();
+    $data['table']['group']  = t('Content');
+    $data['table']['join']['node'] = array(
+      'table' => $db_info['table'],
+      'left_field' => 'vid',
+      'field' => 'vid',
+    );
+    $data['table']['join']['node_revisions'] = array(
+      'table' => $db_info['table'],
+      'left_field' => 'vid',
+      'field' => 'vid',
+    );
+
+    // Build the list of columns enabled for default views integration.
+    $db_columns = array();
+    $additional_fields = array();
+    foreach ($db_info['columns'] as $column => $attributes) {
+      // Select explicitly enabled field columns.
+      if (!empty($attributes['views'])) {
+        $db_columns[$column] = $attributes;
+      }
+      // Ensure all columns are retrieved.
+      $additional_fields[$attributes['column']] = $attributes['column'];
+    }
+    // Pick up the first column when none has been explicitly enabled
+    // (pre CCK 2.2 backwards compatibility).
+    if (empty($db_columns)) {
+      // Can't use array_slice(), it won't work in PHP4 for assoc array.
+      foreach ($db_info['columns'] as $column => $attributes) {
+        $db_columns[$column] = $attributes;
+        break;
+      }
+    }
+    $columns = array();
+    $db_fields = array();
+    $arguments = array();
+    $filters = array();
+    foreach ($db_columns as $column => $attributes) {
+      $columns[] = $column;
+      $db_fields[] = $attributes['column'];
+      $sorts[] = !empty($attributes['sortable']) ? TRUE : FALSE;
+
+      // Identify likely filters and arguments for each column based on field type.
+      switch ($attributes['type']) {
+        case 'int':
+        case 'mediumint':
+        case 'tinyint':
+        case 'bigint':
+        case 'serial':
+          $filters[] = 'content_handler_filter_numeric';
+          $arguments[] = 'content_handler_argument_numeric';
+          break;
+        case 'numeric':
+        case 'float':
+          $filters[] = 'content_handler_filter_float';
+          $arguments[] = 'content_handler_argument_numeric';
+          break;
+
+        case 'text':
+        case 'blob':
+          // TODO add markup handlers for these types
+        default:
+          $filters[] = 'content_handler_filter_string';
+          $arguments[] = 'content_handler_argument_string';
+          break;
+      }
+    }
+
+    // Provide automatic filters, sorts, and arguments for each column, not just the first.
+    $db_fields_count = count($db_fields);
+    foreach ($db_fields as $i => $db_field) {
+      $label_truncated = truncate_utf8(t($field['widget']['label']), 10, TRUE);
+      if ($db_fields_count == 1) {
+        $title = t('@label (!name)', array('@label' => t($field['widget']['label']), '!name' => $field['field_name']));
+        $title_short = check_plain($label_truncated);
+      }
+      else {
+        $title = t('@label (!name) - !column', array('@label' => t($field['widget']['label']), '!name' => $field['field_name'], '!column' => $columns[$i]));
+        $title_short = t('@label-truncated - !column', array('@label-truncated' => $label_truncated, '!column' => $columns[$i]));
+      }
+
+      $data[$db_field] = array(
+        'group' => t('Content'),
+        'title' => $title,
+        'title short' => $title_short,
+        'help' =>  t($field_types[$field['type']]['label']) .' - '. t('Appears in: @types', array('@types' => implode(', ', $types))),
+      );
+      if ($i == 0) {
+        $data[$db_field]['field'] = array(
+          'title' => t('@label (!name)', array('@label' => t($field['widget']['label']), '!name' => $field['field_name'])),
+          'title short' => check_plain($label_truncated),
+          'field' => $db_field,
+          'table' => $db_info['table'],
+          'handler' => 'content_handler_field_multiple',
+          'click sortable' => $sorts[$i],
+          'additional fields' => $additional_fields,
+          'content_field_name' => $field['field_name'],
+          'access callback' => 'content_access',
+          'access arguments' => array('view', $field),
+        );
+      }
+      $data[$db_field]['argument'] = array(
+        'field' => $db_field,
+        'table' => $db_info['table'],
+        'handler' => $arguments[$i],
+        'additional fields' => $additional_fields,
+        'content_field_name' => $field['field_name'],
+        'empty field name' => t('<No value>'),
+      );
+      $data[$db_field]['filter'] = array(
+        'field' => $db_field,
+        'table' => $db_info['table'],
+        'handler' => $filters[$i],
+        'additional fields' => $additional_fields,
+        'content_field_name' => $field['field_name'],
+        'allow empty' => TRUE,
+      );
+      if (!empty($sorts[$i])) {
+        $data[$db_field]['sort'] = array(
+          'field' => $db_field,
+          'table' => $db_info['table'],
+          'handler' => 'content_handler_sort',
+          'additional fields' => $additional_fields,
+          'content_field_name' => $field['field_name'],
+        );
+      }
+    }
+
+    // Expose additional delta column for multiple value fields.
+    if ($field['multiple']) {
+      $title = t('@label (!name) - delta', array('@label' => t($field['widget']['label']), '!name' => $field['field_name']));
+      $title_short = t('@label-truncated - delta', array('@label-truncated' => $label_truncated));
+
+      $db_field = 'delta';
+      $data[$db_field] = array(
+        'group' => t('Content'),
+        'title' => $title,
+        'title short' => $title_short,
+        'help' => t('Delta - Appears in: @types', array('@types' => implode(', ', $types))),
+      );
+      $data[$db_field]['field'] = array(
+        'title' => $title,
+        'title short' => $title_short,
+        'field' => $db_field,
+        'table' => $db_info['table'],
+        'handler' => 'views_handler_field_numeric',
+        'click sortable' => TRUE,
+        'additional fields' => $additional_fields,
+        'access callback' => 'content_access',
+        'access arguments' => array('view', $field),
+      );
+      $data[$db_field]['argument'] = array(
+        'field' => $db_field,
+        'table' => $db_info['table'],
+        'handler' => 'views_handler_argument_numeric',
+        'additional fields' => $additional_fields,
+        'empty field name' => t('<No value>'),
+      );
+      $data[$db_field]['filter'] = array(
+        'field' => $db_field,
+        'table' => $db_info['table'],
+        'handler' => 'views_handler_filter_numeric',
+        'additional fields' => $additional_fields,
+        'allow empty' => TRUE,
+      );
+      $data[$db_field]['sort'] = array(
+        'field' => $db_field,
+        'table' => $db_info['table'],
+        'handler' => 'views_handler_sort',
+        'additional fields' => $additional_fields,
+      );
+    }
+
+    return array($table_alias => $data);
+  }
+}
+
+/**
+ * Helper function so it is possible to change the Views tablename
+ * in the future without re-writing code.
+ */
+function content_views_tablename($field) {
+  return 'node_data_'. $field['field_name'];
+}
+
+function theme_content_view_multiple_field($items, $field, $values) {
+  $output = '';
+  $i = 0;
+  foreach ($items as $item) {
+    if (!empty($item) || $item == '0') {
+      $output .= '<div class="field-item field-item-'. $i .'">'. $item .'</div>';
+      $i++;
+    }
+  }
+  return $output;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/content.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/content.views_convert.inc
new file mode 100644
index 0000000..aaa94f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/content.views_convert.inc
@@ -0,0 +1,72 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function content_views_convert($display, $type, &$view, $views_field) {
+  static $views_fields;
+
+  if (empty($views_fields)) {
+    $views_fields = array();
+    $types = content_types();
+    foreach ($types as $ctype) {
+      foreach ($ctype['fields'] as $field) {
+        $module = $field['module'];
+        $result = (array) module_invoke($module, 'field_settings', 'views data', $field);
+        drupal_alter('field_settings', $result, 'views data', $field);
+        if (empty($result)) {
+          // The views field name had the column name appended,
+          // like field_name_value or field_username_uid.
+          $column = array_shift(array_keys($field['columns']));
+          $views_fields[$field['field_name'] .'_'. $column] = $field;
+        }
+      }
+    }
+  }
+
+  // Is this a field that CCK should handle? If not, return.
+  if (!in_array($views_field['field'], array_keys($views_fields))) {
+    return;
+  }
+
+  // Now update values, options, etc. to those selected in the imported view.
+  switch ($type) {
+    case 'field':
+      $view->display[$display]->display_options['fields'][$views_field['field']]['format'] = $views_field['options'];
+      if ($views_field['handler'] == 'content_views_field_handler_group') {
+        $view->display[$display]->display_options['fields'][$views_field['field']]['multiple']['group'] = 1;
+      }
+      else {
+        $view->display[$display]->display_options['fields'][$views_field['field']]['multiple']['group'] = 0;
+      }
+      return;
+
+    case 'filter':
+      // TODO
+      return;
+
+    case 'exposed_filter':
+      // TODO
+      return;
+
+    case 'argument':
+      // TODO
+      return;
+
+    case 'sort':
+      // TODO
+      break;
+
+  }
+  return;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument.inc
new file mode 100644
index 0000000..98e3eb8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument.inc
@@ -0,0 +1,18 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass simply adds properties,
+ * for field-specific subclasses to use if they need to.
+ */
+class content_handler_argument extends views_handler_argument {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_many_to_one.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_many_to_one.inc
new file mode 100644
index 0000000..09e4893
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_many_to_one.inc
@@ -0,0 +1,48 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Handler for 'content_handler_argument_many_to_one' style.
+ */
+class content_handler_argument_many_to_one extends views_handler_argument_many_to_one {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+
+  function summary_name($data) {
+    $options = $this->allowed_values();
+    $value = $data->{$this->name_alias};
+    if (isset($options[$value])) {
+      $value = $options[$value];
+    }
+    else {
+      $value = parent::summary_name($data);
+    }
+
+    return $value;
+  }
+
+  function title_query() {
+    $options = $this->allowed_values();
+    $values = $this->value;
+    foreach ($values as $key => $value) {
+      if (isset($options[$value])) {
+        $values[$key] = $options[$value];
+      }
+    }
+    return $values;
+  }
+
+  function allowed_values() {
+    $field = $this->content_field;
+    $function = $field['module'] .'_allowed_values';
+    $options = function_exists($function) ? $function($field) : content_allowed_values($field);
+    return (array) $options;
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_numeric.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_numeric.inc
new file mode 100644
index 0000000..9a50b95
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_numeric.inc
@@ -0,0 +1,18 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass simply adds properties,
+ * for field-specific subclasses to use if they need to.
+ */
+class content_handler_argument_numeric extends views_handler_argument_numeric {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_reference.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_reference.inc
new file mode 100644
index 0000000..96473bb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_reference.inc
@@ -0,0 +1,25 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provide handler to replace reference with title.
+ */
+class content_handler_argument_reference extends content_handler_argument_numeric {
+  /**
+   * Override the behavior of title().
+   */
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $table_data = views_fetch_data($this->name_table);
+    $table = array_shift($table_data['table']['join']);
+
+    $result = db_query("SELECT $this->name_field AS title FROM {". $table['table'] ."} WHERE ". $table['field'] ." IN ($placeholders)", $this->value);
+    while ($row = db_fetch_object($result)) {
+      $titles[] = check_plain($row->title);
+    }
+    return $titles;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_string.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_string.inc
new file mode 100644
index 0000000..b17ade0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_argument_string.inc
@@ -0,0 +1,18 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass simply adds properties,
+ * for field-specific subclasses to use if they need to.
+ */
+class content_handler_argument_string extends views_handler_argument_string {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_field.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_field.inc
new file mode 100644
index 0000000..f8dfc2f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_field.inc
@@ -0,0 +1,229 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass adds basic field and formatter info,
+ * for field-specific subclasses to use if they need to.
+ *
+ * Fields could extend this class if they want field and formatter handling
+ * but don't want the multiple value grouping options created by
+ * content_handler_field_multiple.
+ */
+class content_handler_field extends views_handler_field_node {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+    $this->content_field = content_fields($this->definition['content_field_name']);
+  }
+
+  function init(&$view, $options) {
+    $field = $this->content_field;
+    parent::init($view, $options);
+    if ($field['multiple']) {
+      $this->additional_fields['delta'] = 'delta';
+    }
+    // Make sure we grab enough information to build a pseudo-node with enough
+    // credentials at render-time.
+    $this->additional_fields['type'] = array('table' => 'node', 'field' => 'type');
+    $this->additional_fields['nid'] = array('table' => 'node', 'field' => 'nid');
+    $this->additional_fields['vid'] = array('table' => 'node', 'field' => 'vid');
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $field = $this->content_field;
+
+    // Override views_handler_field_node's default label
+    $options['label'] = array('default' => '', 'translatable' => TRUE);
+    $options['label_type'] = array('default' => 'widget');
+    $options['format'] = array('default' => 'default');
+
+    return $options;
+  }
+
+  /**
+   * Provide formatter option.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    // TODO: do we want the 'link to node' checkbox ?
+    // That's usually formatters business...
+
+    $field = $this->content_field;
+    $options = $this->options;
+
+    $form['label_type'] = array(
+      '#title' => t('Label'),
+      '#type' => 'radios',
+      '#options' => array(
+        'none' => t('None'),
+        'widget' => t('Widget label (@label)', array('@label' => $field['widget']['label'])),
+        'custom' => t('Custom'),
+      ),
+      '#default_value' => $options['label_type'],
+      '#weight' => 2,
+    );
+    $form['label'] = array(
+      '#title' => t('Custom label'),
+      '#type' => 'textfield',
+      '#default_value' => $options['label'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('radio:options[label_type]' => array('custom')),
+      '#weight' => 3,
+     );
+
+    $field_types = _content_field_types();
+    $formatters = array();
+    if (is_array($field_types[$field['type']]['formatters'])) {
+      foreach ($field_types[$field['type']]['formatters'] as $name => $info) {
+        $formatters[$name] = $info['label'];
+      }
+    }
+    $form['format'] = array(
+      '#title' => t('Format'),
+      '#type' => 'select',
+      '#options' => $formatters,
+      '#required' => TRUE,
+      '#default_value' => $options['format'],
+      '#weight' => 4,
+    );
+  }
+
+
+  /**
+   * Make sure some value is stored as a label.
+   *
+   * Don't use t(), since Views' views_handler_field already has
+   * $this->options['label'] marked as a translatable field.
+   *
+   * @see http://drupal.org/node/285470
+   */
+  function options_submit($form, &$form_state) {
+    switch ($form_state['values']['options']['label_type']) {
+      case 'none':
+        $form_state['values']['options']['label'] = '';
+        break;
+      case 'widget':
+        $form_state['values']['options']['label'] = $this->content_field['widget']['label'];
+        break;
+    }
+  }
+
+  /**
+   * @TODO
+   * Now that we save the label in the submit process above we could
+   * get rid of this function. Leave it here for now to be sure the
+   * label works for fields that haven't been updated since this
+   * change was made, since $this->options['label'] will be missing a
+   * value until it is updated in the view.
+   *
+   * Don't use t(), since Views' views_handler_field already has
+   * $this->options['label'] marked as a translatable field.
+   */
+  function label() {
+    $field = $this->content_field;
+    switch ($this->options['label_type']) {
+      case 'none':
+        return '';
+      case 'widget':
+        return $field['widget']['label'];
+      default:
+        return $this->options['label'];
+    }
+  }
+
+  /**
+   * Return DIV or SPAN based upon the field's element type.
+   */
+  function element_type($none_supported = FALSE, $default_empty = FALSE) {
+    // The 'element_type' property denotes Views 3.x ('semantic views'
+    // functionnality). If the property is set, and not set to '' ("default"),
+    // let the generic method handle the output.
+    if (isset($this->options['element_type']) && $this->options['element_type'] !== '') {
+      return parent::element_type($none_supported, $default_empty);
+    }
+
+    if ($default_empty) {
+      return '';
+    }
+
+    if (isset($this->definition['element type'])) {
+      return $this->definition['element type'];
+    }
+
+    // TODO Figure out exactly when to return a div or a <span>. Any field
+    // that ever needs to be shown inline in Views UI. It needs to return
+    // a div for textareas to prevent wrapping a <span> around a <p>.
+    // Earl says we need to be sure that other fields we don't know
+    // about won't end up wrapping a span around a block-level element.
+    if ($this->content_field['widget']['type'] == 'text_textarea') {
+      return 'div';
+    }
+    else {
+      return 'span';
+    }
+  }
+
+  function options_validate($form, &$form_state) { }
+
+  /**
+   * Provide text for the administrative summary
+   */
+  function admin_summary() {
+    // Display the formatter name.
+    $field = $this->content_field;
+    $field_types = _content_field_types();
+    if (isset($field_types[$field['type']]['formatters'][$this->options['format']])) {
+      return t($field_types[$field['type']]['formatters'][$this->options['format']]['label']);
+    }
+  }
+
+  function render($values) {
+    // We're down to a single node here, so we can retrieve the actual field
+    // definition for the node type being considered.
+    $field = content_fields($this->content_field['field_name'], $values->{$this->aliases['type']});
+
+    // If the field does not appear in the node type, then we have no value
+    // to display, and can just return.
+    if (empty($field)) {
+      return '';
+    }
+
+    $options = $this->options;
+    $db_info = content_database_info($field);
+
+    // Build a pseudo-node from the retrieved values.
+    $node = drupal_clone($values);
+    $node->type = $values->{$this->aliases['type']};
+    $node->nid = $values->{$this->aliases['nid']};
+    $node->vid = $values->{$this->aliases['vid']};
+    // Some formatters need to behave differently depending on the build_mode
+    // (for instance: preview), so we provide one.
+    $node->build_mode = NODE_BUILD_NORMAL;
+
+    $item = array();
+    foreach ($db_info['columns'] as $column => $attributes) {
+      $item[$column] = $values->{$this->aliases[$attributes['column']]};
+    }
+
+    $item['#delta'] = $field['multiple'] ?  $values->{$this->aliases['delta']} : 0;
+
+    // Render items.
+    $formatter_name = $options['format'];
+    if ($formatter = _content_get_formatter($formatter_name, $field['type'])) {
+      if (content_handle('formatter', 'multiple values', $formatter) == CONTENT_HANDLE_CORE) {
+        // Single-value formatter.
+        $output = content_format($field, $item, $formatter_name, $node);
+      }
+      else {
+        // Multiple values formatter - we actually have only one value to display.
+        $output = content_format($field, array($item), $formatter_name, $node);
+      }
+      return $this->render_link($output, $values);
+    }
+    return '';
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_field_multiple.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_field_multiple.inc
new file mode 100644
index 0000000..f388d66
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_field_multiple.inc
@@ -0,0 +1,322 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * An extended subclass for field handling that adds multiple field grouping.
+ *
+ * Fields that want multiple value grouping options in addition to basic
+ * field and formatter handling can extend this class.
+ */
+class content_handler_field_multiple extends content_handler_field {
+  var $defer_query;
+
+  function init(&$view, $options) {
+    $field = $this->content_field;
+    parent::init($view, $options);
+
+    $this->defer_query = !empty($options['multiple']['group']) && $field['multiple'];
+
+    if ($this->defer_query) {
+      // Grouped field: ditch the existing additional_fields (field columns + delta).
+      // In the main query we'll only need:
+      // - vid, which will be used to retrieve the actual values in pre_render,
+      // - node type and nid, which wil be used in the pseudo-node used when
+      // rendering.
+      $this->additional_fields = array(
+        'type' => array('table' => 'node', 'field' => 'type'),
+        'nid' => array('table' => 'node', 'field' => 'nid'),
+      );
+      if ($view->base_table == 'node_revisions') {
+        $this->additional_fields['vid'] = array('table' => 'node_revisions', 'field' => 'vid');
+      }
+      else {
+        $this->additional_fields['vid'] = array('table' => 'node', 'field' => 'vid');
+      }
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['multiple'] = array(
+      'contains' => array(
+        'group' => array('default' => TRUE),
+        'multiple_number' => array('default' => ''),
+        'multiple_from' => array('default' => ''),
+        'multiple_reversed' => array('default' => FALSE),
+      ),
+    );
+
+    return $options;
+  }
+
+  /**
+   * Provide 'group multiple values' option.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $field = $this->content_field;
+    $options = $this->options;
+
+    $form['multiple'] = array(
+      '#access' => $field['multiple'],
+      '#weight' => 1,
+    );
+    $form['multiple']['group'] = array(
+      '#title' => t('Group multiple values'),
+      '#type' => 'checkbox',
+      '#default_value' => $options['multiple']['group'],
+      '#description' => t('If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays.'),
+    );
+    // Make the string translatable by keeping it as a whole rather than
+    // translating prefix and suffix separately.
+    list($prefix, $suffix) = explode('@count', t('Show @count value(s)'));
+    $form['multiple']['multiple_number'] = array(
+      '#type' => 'textfield',
+      '#size' => 5,
+      '#field_prefix' => $prefix,
+      '#field_suffix' => $suffix,
+      '#default_value' => $options['multiple']['multiple_number'],
+      '#prefix' => '<div class="container-inline">',
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-multiple-group' => array(TRUE)),
+    );
+    list($prefix, $suffix) = explode('@count', t('starting from @count'));
+    $form['multiple']['multiple_from'] = array(
+      '#type' => 'textfield',
+      '#size' => 5,
+      '#field_prefix' => $prefix,
+      '#field_suffix' => $suffix,
+      '#default_value' => $options['multiple']['multiple_from'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-multiple-group' => array(TRUE)),
+      '#description' => t('(first item is 0)'),
+    );
+    $form['multiple']['multiple_reversed'] = array(
+      '#title' => t('Reversed'),
+      '#type' => 'checkbox',
+      '#default_value' => $options['multiple']['multiple_reversed'],
+      '#suffix' => '</div>',
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-multiple-group' => array(TRUE)),
+      '#description' => t('(start from last values)'),
+    );
+  }
+
+  /**
+   * Determine if this field is click sortable.
+   */
+  function click_sortable() {
+    $field = $this->content_field;
+    $options = $this->options;
+
+    // Grouped fields are not click-sortable.
+    return !empty($this->definition['click sortable']) && !$this->defer_query;
+  }
+
+  function query() {
+    // If this is not a grouped field, use the generic query().
+    if (!$this->defer_query) {
+      return parent::query();
+    }
+
+    // Grouped field: do NOT call ensure_my_table, only add additional fields.
+    $this->add_additional_fields();
+    $this->field_alias = $this->aliases['vid'];
+  }
+
+  function pre_render(&$values) {
+    // If there are no values to render (displaying a summary, or query returned no results),
+    // or if this is not a grouped field, do nothing specific.
+    if (isset($this->view->build_info['summary']) || empty($values) || !$this->defer_query) {
+      return parent::pre_render($values);
+    }
+
+    $field = $this->content_field;
+    $db_info = content_database_info($field);
+    $options = $this->options;
+
+    // Build the list of vids to retrieve.
+    // TODO: try fetching from cache_content first ??
+    $vids = array();
+    $this->field_values = array();
+    foreach ($values as $result) {
+      if (isset($result->{$this->field_alias})) {
+        $vids[] = $result->{$this->field_alias};
+      }
+    }
+
+    // It may happend that the multiple values field is related to a non
+    // required relation for which no node data related to the field being
+    // processed here is available.
+    if (empty($vids)) {
+      return parent::pre_render($values);
+    }
+
+    // List columns to retrieve.
+    $alias = content_views_tablename($field);
+    // Prefix aliases with '_' to avoid clashing with field columns names.
+    $query_columns = array(
+      'vid AS _vid',
+      "delta as _delta",
+      // nid is needed to generate the links for 'link to node' option.
+      'nid AS _nid',
+    );
+    // The actual field columns.
+    foreach ($db_info['columns'] as $column => $attributes) {
+      $query_columns[] = "$attributes[column] AS $column";
+    }
+    $query = 'SELECT '. implode(', ', $query_columns) .
+             ' FROM {'. $db_info['table'] ."}".
+             " WHERE vid IN (". implode(',', $vids) .')'.
+             " ORDER BY _nid ASC, _delta ". ($options['multiple']['multiple_reversed'] ? 'DESC' : 'ASC');
+    $result = db_query($query);
+
+    while ($item = db_fetch_array($result)) {
+      // Clean up the $item from vid and delta. We keep nid for now.
+      $vid = $item['_vid'];
+      unset($item['_vid']);
+      $delta = !empty($item['_delta']) ? $item['_delta'] : 0;
+      $item['#delta'] = $item['_delta'];
+      unset($item['_delta']);
+      $this->field_values[$vid][$delta] = $item;
+    }
+  }
+
+  /**
+   * Return DIV or SPAN based upon the field's element type.
+   *
+   * Fields rendered with the 'group multiple' option use <div> markers,
+   * and thus shouldn't be wrapped in a <span>.
+   */
+  function element_type($none_supported = FALSE, $default_empty = FALSE) {
+    // If this is not a grouped field, use the parent method.
+    if (!$this->defer_query) {
+      return parent::element_type($none_supported, $default_empty);
+    }
+
+    // The 'element_type' property denotes Views 3.x ('semantic views'
+    // functionnality). If the property is set, and not set to '' ("default"),
+    // let the generic method handle the output.
+    if (isset($this->options['element_type']) && $this->options['element_type'] !== '') {
+      return parent::element_type($none_supported, $default_empty);
+    }
+
+    if ($default_empty) {
+      return '';
+    }
+
+    if (isset($this->definition['element type'])) {
+      return $this->definition['element type'];
+    }
+
+    return 'div';
+  }
+
+  function render($values) {
+    // If this is not a grouped field, use content_handler_field::render().
+    if (!$this->defer_query) {
+      return parent::render($values);
+    }
+
+    // We're down to a single node here, so we can retrieve the actual field
+    // definition for the node type being considered.
+    $field = content_fields($this->content_field['field_name'], $values->{$this->aliases['type']});
+
+    // If the field does not appear in the node type, then we have no value
+    // to display, and can just return.
+    if (empty($field)) {
+      return '';
+    }
+
+    $options = $this->options;
+
+    $vid = $values->{$this->field_alias};
+    if (isset($this->field_values[$vid])) {
+      // Gather items, respecting the 'Display n values starting from m' settings.
+      $count_skipped = 0;
+      $items = array();
+      foreach ($this->field_values[$vid] as $item) {
+        if (empty($options['multiple']['multiple_from']) || ($count_skipped >= $options['multiple']['multiple_from'])) {
+          if (empty($options['multiple']['multiple_number']) || (count($items) < $options['multiple']['multiple_number'])) {
+            // Grab the nid - needed for render_link().
+            $nid = $item['_nid'];
+            unset($item['_nid']);
+            $items[] = $item;
+          }
+          else {
+            break;
+          }
+        }
+        $count_skipped++;
+      }
+
+      // Build a pseudo-node from the retrieved values.
+      $node = drupal_clone($values);
+      // content_format and formatters will need a 'type'.
+      $node->type = $values->{$this->aliases['type']};
+      $node->nid = $values->{$this->aliases['nid']};
+      $node->vid = $values->{$this->aliases['vid']};
+
+      // Some formatters need to behave differently depending on the build_mode
+      // (for instance: preview), so we provide one.
+      $node->build_mode = NODE_BUILD_NORMAL;
+
+      // Render items.
+      $formatter_name = $options['format'];
+      if ($items && ($formatter = _content_get_formatter($formatter_name, $field['type']))) {
+        $rendered = array();
+        if (content_handle('formatter', 'multiple values', $formatter) == CONTENT_HANDLE_CORE) {
+          // Single-value formatter.
+          foreach ($items as $item) {
+            $output = content_format($field, $item, $formatter_name, $node);
+            if (!empty($output)) {
+              $rendered[] = $this->render_link($output, (object) array('nid' => $nid));
+            }
+          }
+        }
+        else {
+          // Multiple values formatter.
+          $output = content_format($field, $items, $formatter_name, $values);
+          if (!empty($output)) {
+            $rendered[] = $this->render_link($output, (object) array('nid' => $nid));
+          }
+        }
+
+        if (count($rendered) > 1) {
+          // TODO: could we use generic field display ?
+          return theme('content_view_multiple_field', $rendered, $field, $values);
+        }
+        elseif ($rendered) {
+          return $rendered[0];
+        }
+      }
+    }
+
+    return '';
+  }
+
+  function render_link($data, $values) {
+    if (!$this->defer_query) {
+      return parent::render_link($data, $values);
+    }
+
+    if (!empty($this->options['link_to_node']) && $data !== NULL && $data !== '') {
+      if (method_exists('render_as_link', 'views_handler_field')) {
+        // Views 2.3+
+        $this->options['alter']['make_link'] = TRUE;
+        $this->options['alter']['path'] = "node/" . $values->{$this->aliases['nid']};
+      }
+      else {
+        // Views up to 2.2
+        return l($data, "node/" . $values->nid, array('html' => TRUE));
+      }
+    }
+    else {
+      return $data;
+    }
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_float.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_float.inc
new file mode 100644
index 0000000..bf9f3c4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_float.inc
@@ -0,0 +1,26 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass simply adds properties,
+ * for field-specific subclasses to use if they need to.
+ */
+
+// Ensure compatibility with Views pre 2.4, where the
+// views_handler_filter_float class lived in views_handler_filter_numeric.inc.
+if (!class_exists('views_handler_filter_float')) {
+  // Manually include the parent class.
+  $definition = views_fetch_handler_data('views_handler_filter_numeric');
+  views_include_handler($definition, 'handler');
+}
+
+class content_handler_filter_float extends views_handler_filter_float {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_many_to_one.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_many_to_one.inc
new file mode 100644
index 0000000..74b5348
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_many_to_one.inc
@@ -0,0 +1,42 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass simply adds properties,
+ * for field-specific subclasses to use if they need to.
+ */
+class content_handler_filter_many_to_one extends views_handler_filter_many_to_one {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+    $field = $this->content_field;
+    $this->value_title = $field['widget']['label'];
+  }
+
+  function get_value_options() {
+    $this->value_options = $this->allowed_values();
+  }
+
+  // Get allowed values from hook_allowed_values(), if any,
+  // or from content_allowed_values();
+  function allowed_values() {
+    $field = $this->content_field;
+    $function = $field['module'] .'_allowed_values';
+    if ($this->value_form_type == 'select') {
+      // Select elements accept multidimensional arrays to support optgroups.
+      $options = function_exists($function) ? $function($field) : content_allowed_values($field, FALSE);
+      // For selects, HTML should be filtered out and entities left unencoded.
+      // See content_allowed_values / content_filter_xss / filter_xss.
+      content_allowed_values_filter_html($options);
+    }
+    else {
+      $options = function_exists($function) ? $function($field) : content_allowed_values($field);
+    }
+    return (array) $options;
+  }
+
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_numeric.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_numeric.inc
new file mode 100644
index 0000000..1c4a23a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_numeric.inc
@@ -0,0 +1,17 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass simply adds properties,
+ * for field-specific subclasses to use if they need to.
+ */
+class content_handler_filter_numeric extends views_handler_filter_numeric {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_string.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_string.inc
new file mode 100644
index 0000000..9901e91
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_filter_string.inc
@@ -0,0 +1,17 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * The subclass simply adds properties,
+ * for field-specific subclasses to use if they need to.
+ */
+class content_handler_filter_string extends views_handler_filter_string {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_relationship.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_relationship.inc
new file mode 100644
index 0000000..136e193
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_relationship.inc
@@ -0,0 +1,73 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Handles content relationships and deals properly with multiple
+ * values by allowing the views administrator to select deltas.
+ */
+class content_handler_relationship extends views_handler_relationship {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+
+    $this->content_field = content_fields($this->definition['content_field_name']);
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['delta'] = array('default' => -1);
+
+    return $options;
+  }
+
+  /**
+   * Add a delta selector for multiple fields.
+   */
+  function options_form(&$form, &$form_state) {
+    $field = $this->content_field;
+    parent::options_form($form, $form_state);
+
+    // Only add the form gadget if the field is multiple.
+    if ($field['multiple']) {
+      $max_delta = $field['multiple'];
+      // 1 means unlimited.
+      if ($max_delta == 1) {
+        $max_delta = 10;
+      }
+
+      $options = array('-1' => t('All'));
+      for ($i = 0; $i < $max_delta; $i++) {
+        $options[$i] = $i + 1;
+      }
+      $form['delta'] = array(
+        '#type' => 'select',
+        '#options' => $options,
+        '#default_value' => $this->options['delta'],
+        '#title' => t('Delta'),
+        '#description' => t('The delta allows you to select which item in a multiple value field to key the relationship off of. Select "1" to use the first item, "2" for the second item, and so on. If you select "All", each item in the field will create a new row, which may appear to cause duplicates.'),
+      );
+    }
+  }
+
+  function ensure_my_table() {
+    if (!isset($this->table_alias)) {
+      $join = $this->get_join();
+      if (!isset($join->extra)) {
+        $join->extra = array();
+      }
+      $delta = isset($this->options['delta']) ? $this->options['delta'] : -1;
+      if ($delta != -1) {
+        $join->extra[] = array(
+          'field' => 'delta',
+          'value' => $delta,
+          'numeric' => TRUE,
+        );
+      }
+
+      $this->table_alias = $this->query->add_table($this->table, $this->relationship, $join);
+    }
+    return $this->table_alias;
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_sort.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_sort.inc
new file mode 100644
index 0000000..1a3ad7c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_handler_sort.inc
@@ -0,0 +1,74 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Handles sorts and deals properly with multiple
+ * values by allowing the views administrator to select deltas.
+ */
+class content_handler_sort extends views_handler_sort {
+  var $content_field;
+
+  function construct() {
+    parent::construct();
+
+    $this->content_field = content_fields($this->definition['content_field_name']);
+    $this->additional_fields = $this->definition['additional fields'];
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['delta'] = array('default' => -1);
+
+    return $options;
+  }
+
+  /**
+   * Add a delta selector for multiple fields.
+   */
+  function options_form(&$form, &$form_state) {
+    $field = $this->content_field;
+    parent::options_form($form, $form_state);
+
+    // Only add the form gadget if the field is multiple.
+    if ($field['multiple']) {
+      $max_delta = $field['multiple'];
+      // 1 means unlimited.
+      if ($max_delta == 1) {
+        $max_delta = 10;
+      }
+
+      $options = array('-1' => t('All'));
+      for ($i = 0; $i < $max_delta; $i++) {
+        $options[$i] = $i + 1;
+      }
+      $form['delta'] = array(
+        '#type' => 'select',
+        '#options' => $options,
+        '#default_value' => $this->options['delta'],
+        '#title' => t('Delta'),
+        '#description' => t('The delta allows you to select which item in a multiple value field will be used for sorting. Select "1" to use the first item, "2" for the second item, and so on. If you select "All", each item in the field will create a new row, which may appear to cause duplicates.'),
+      );
+    }
+  }
+
+  function ensure_my_table() {
+    if (!isset($this->table_alias)) {
+      $join = $this->get_join();
+      if (!isset($join->extra)) {
+        $join->extra = array();
+      }
+      $delta = isset($this->options['delta']) ? $this->options['delta'] : -1;
+      if ($delta != -1) {
+        $join->extra[] = array(
+          'field' => 'delta',
+          'value' => $delta,
+          'numeric' => TRUE,
+        );
+      }
+
+      $this->table_alias = $this->query->ensure_table($this->table, $this->relationship, $join);
+    }
+    return $this->table_alias;
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_plugin_display_simple.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_plugin_display_simple.inc
new file mode 100644
index 0000000..e825316
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_plugin_display_simple.inc
@@ -0,0 +1,43 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Handler for 'content_simple' display.
+ */
+class content_plugin_display_simple extends views_plugin_display {
+  function execute() {
+    return $this->view->render($this->display->id);
+  }
+
+  function render() {
+    return !empty($this->view->result) || !empty($this->view->style_plugin->definition['even empty']) ? $this->view->style_plugin->render($this->view->result) : '';
+  }
+
+  function uses_exposed() {
+    return FALSE;
+  }
+}
+
+class content_plugin_display_references extends content_plugin_display_simple {
+  function query() {
+    $options = $this->get_option('content_options');
+
+    if ($options['string'] !== '') {
+      $like = $GLOBALS["db_type"] == 'pgsql' ? "ILIKE" : "LIKE";
+      $match_clauses = array(
+        'contains' => "$like '%%%s%%'",
+        'equals' => "= '%s'",
+        'starts_with' => "$like '%s%%'",
+      );
+      $clause = isset($match_clauses[$options['match']]) ? $match_clauses[$options['match']] : $match_clauses['contains'];
+      $alias = $this->view->query->ensure_table($options['table']);
+      $this->view->query->add_where(NULL, "$alias.$options[field_string] $clause", $options['string']);
+    }
+    elseif ($options['ids']) {
+      $alias = $this->view->query->ensure_table($options['table']);
+      $this->view->query->add_where(NULL, "$alias.$options[field_id] IN (" . db_placeholders($options['ids']) . ')', $options['ids']);
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_plugin_style_php_array_ac.inc b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_plugin_style_php_array_ac.inc
new file mode 100644
index 0000000..abff82d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/includes/views/handlers/content_plugin_style_php_array_ac.inc
@@ -0,0 +1,34 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Handler for 'content_php_array_autocomplete' style.
+ */
+class content_plugin_style_php_array_ac extends views_plugin_style {
+  function render() {
+    $results = array();
+
+    // Group the rows according to the grouping field, if specified.
+    $sets = $this->render_grouping($this->view->result, $this->options['grouping']);
+
+    $base_field = $this->view->base_field;
+    $title_field = $this->display->display_options['content_title_field'];
+    $title_field_alias = $this->view->field[$title_field]->field_alias;
+
+    // TODO : We don't display grouping info for now.
+    // Could be useful for select widget, though.
+    $this->view->row_index = 0;
+    foreach ($sets as $title => $records) {
+      foreach ($records as $label => $row) {
+        $results[$row->{$base_field}] = array(
+          'title' => $row->{$title_field_alias},
+          'rendered' => $this->row_plugin->render($row),
+        );
+        $this->view->row_index++;
+      }
+    }
+    unset($this->view->row_index);
+    return $results;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy.info
new file mode 100644
index 0000000..693101c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy.info
@@ -0,0 +1,12 @@
+; $Id$
+name = Content Copy
+description = Enables ability to import/export field definitions.
+dependencies[] = content
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy.module
new file mode 100644
index 0000000..d015470
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy.module
@@ -0,0 +1,649 @@
+<?php
+// $Id$
+
+/**
+ *  @file
+ *  Adds capability to import/export CCK field data definitions.
+ *
+ *  Emulates the import/export process introduced in Views to export the field settings arrays as text
+ *  them copy and paste text to import the field settings back into another content type.
+ *
+ *  Functions to create and playback macros borrowed from moshe weitzman's macro module.
+ *  Macros created using drupal_execute() on the field settings form for each of the requested forms.
+ *  Multi-part forms built using examples from Jeff Eaton's example at
+ *  http://jeff.viapositiva.net/drupal/dynamic-forms.
+ *
+ *  You can export one or two fields and/or groups from one content type and import them into
+ *  another content type in the same or a different installation,
+ *  or export a complete content type with all groups and fields and create it
+ *  as an exact copy in another installation.
+ *
+ *  Content type, group and field names will be imported exactly as exported.
+ *  If the names are already in use, no import will be performed.
+ *
+ *
+ *  Note: The "display fields" information is being handled a little differently than the rest of the
+ *  data that's imported and exported.  Instead of calling through the create and playback macros,
+ *  we get and set the data directly from/into the database.  the reason for this is that the
+ *  playback macro method does not lend itself well to the display fields.
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function content_copy_menu() {
+  $items = array();
+
+  $items['admin/content/types/export'] = array(
+    'title' => 'Export',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('content_copy_export_form'),
+    'access arguments' => array('administer content types'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 3,
+  );
+  $items['admin/content/types/import'] = array(
+    'title' => 'Import',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('content_copy_import_form'),
+    'access arguments' => array('administer content types'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 4,
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function content_copy_theme() {
+  return array(
+    'content_copy_export_form' => array(
+      'template' => 'content_copy_export_form',
+      'arguments' => array('form' => NULL),
+    ),
+  );
+}
+
+/**
+ *  A form to export field definitions.
+ */
+function content_copy_export_form(&$form_state) {
+  include_once('./'. drupal_get_path('module', 'content') .'/includes/content.admin.inc');
+  include_once('./'. drupal_get_path('module', 'node') .'/content_types.inc');
+
+  $form_values = isset($form_state['values']) ? $form_state['values'] : array();
+  $step = isset($form_state['storage']['step']) ? $form_state['storage']['step'] + 1 : 1;
+
+  $exportable_fields = array();
+  $groups = array();
+
+  $type_name = isset($form_values['type_name']) ? $form_values['type_name'] : '';
+  if ($type_name) {
+    $type = content_types($type_name);
+    $exportable_fields = content_copy_fields($type_name);
+    if (module_exists('fieldgroup')) {
+      $groups = fieldgroup_groups($type_name);
+    }
+  }
+
+  // If a content type has been selected and there are no fields or groups to select,
+  // jump straight to export.
+  if ($step == 2 && !($groups) && !($exportable_fields)) {
+    $step = 3;
+  }
+
+  $form['#step'] = $step;
+  $form['#prefix'] = t('This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to an existing content type or create a new content type that includes the selected fields.');
+
+  switch ($step) {
+    case 1: // Select a content type.
+      $types  = content_copy_types();
+      $form['type_name'] = array(
+        '#title' => t('Types'),
+        '#type' => 'radios',
+        '#options' => $types,
+        '#description' => t('Select the content type to export.'),
+      );
+      break;
+
+    case 2: // Select groups and fields.
+      $form['type_name'] = array(
+        '#type' => 'hidden',
+        '#value' => $type_name,
+      );
+
+      $form += array(
+        '#fields' => $exportable_fields,
+        '#groups' => array_keys($groups),
+      );
+
+      $fields_options = $groups_options = array();
+
+      // Fields.
+      foreach ($exportable_fields as $field_name) {
+        $field = content_fields($field_name, $type_name);
+        $fields_options[$field_name] = '';
+        $weight = $field['widget']['weight'];
+        $form[$field_name] = array(
+          'human_name' => array('#value' => check_plain($field['widget']['label'])),
+          'field_name' => array('#value' => $field['field_name']),
+          'type' => array('#value' => $field['type']),
+          'weight' => array('#type' => 'value', '#value' => $weight),
+          'parent' => array('#type' => 'value', '#value' => ''),
+          '#row_type' => 'field',
+        );
+      }
+      $form['fields'] = array(
+        '#type' => 'checkboxes',
+        '#options' => $fields_options,
+        '#default_value' => array_keys($fields_options),
+      );
+
+      // Groups.
+      foreach ($groups as $name => $group) {
+        $groups_options[$name] = '';
+        $weight = $group['weight'];
+        $form[$name] = array(
+          'human_name' => array('#value' => check_plain($group['label'])),
+          'group_name' => array('#value' => $group['group_name']),
+          'weight' => array('#type' => 'value', '#value' => $weight),
+          '#row_type' => 'group',
+        );
+        foreach ($group['fields'] as $field_name => $field) {
+          // Do nothing for non-exportable (inactive) fields.
+          if (isset($form[$field_name])) {
+            $form[$field_name]['parent']['#value'] = $name;
+          }
+        }
+      }
+      if ($groups) {
+        $form['groups'] = array(
+          '#type' => 'checkboxes',
+          '#options' => $groups_options,
+          '#default_value' => array_keys($groups_options),
+        );
+      }
+      break;
+
+    case 3: // Display the export macro.
+      $GLOBALS['content_copy']['count'] = 0;
+      $form['export'] = array(
+        '#title' => t('Export data'),
+        '#type' => 'textarea',
+        '#cols' => 60,
+        '#value' => content_copy_export($form_values),
+        '#rows' => max(40, $GLOBALS['content_copy']['count']),
+        '#description' => t('Copy the export text and paste it into another content type using the import function.'),
+      );
+      // The calls to drupal_execute('content_field_edit_form') in
+      // content_copy_export() affect the page title,
+      drupal_set_title(t('Content types'));
+      break;
+  }
+
+  if ($step < 3) {  // Omit submit button on the textarea block to display the export data.
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Export'),
+    );
+  }
+
+  $form['step'] = array(
+    '#type' => 'value',
+    '#value' => $step,
+  );
+
+  return $form;
+}
+
+function content_copy_export_form_submit($form, &$form_state) {
+  $form_state['rebuild'] = TRUE;
+  $form_state['storage']['step'] = $form_state['values']['step'];
+}
+
+
+/**
+ *  Process the export, get field admin forms for all requested fields
+ *   and save the form values as formatted text.
+ */
+function content_copy_export($form_values) {
+  // Set a global variable to tell when to intervene with form_alter().
+  $GLOBALS['content_copy']['status'] = 'export';
+
+  // Get the content type info by submitting the content type form.
+  $node_state = array('values' => array('type_name' => $form_values['type_name']));
+  module_load_include('inc', 'node', 'content_types');
+  drupal_execute('node_type_form', $node_state, node_get_types('type', $form_values['type_name']));
+
+  module_load_include('inc', 'content', 'includes/content.admin');
+  module_load_include('inc', 'content', 'includes/content.crud');
+
+  // Get an array of groups to export.
+  // Record a macro for each group by submitting the group edit form.
+  $groups = array();
+  if (!empty($form_values['groups']) && module_exists('fieldgroup')) {
+    $groups = array_filter($form_values['groups']);
+    foreach ($groups as $group) {
+      $group_state = array('values' => array('group_name' => $group));
+      drupal_execute('fieldgroup_group_edit_form', $group_state, $form_values['type_name'], $group, 'edit');
+    }
+  }
+
+  // Get an array of fields to export
+  // Record a macro for each field by submitting the field settings form.
+  // Omit fields from the export if their module is not currently installed
+  // otherwise the system will generate errors when the macro tries to execute their forms.
+  if (!empty($form_values['fields'])) {
+    $type = content_types($form_values['type_name']);
+    $fields = array_filter($form_values['fields']);
+    foreach ($fields as $field_name) {
+      $field = $type['fields'][$field_name];
+      $field_types = _content_field_types();
+      $field_module = $field_types[$field['type']]['module'];
+      $widget_types = _content_widget_types();
+      $widget_module = $widget_types[$field['widget']['type']]['module'];
+      if (!empty($field_module) && module_exists($field_module) && !empty($widget_module) && module_exists($widget_module)) {
+        $field_state = array('values' => content_field_instance_collapse($field));
+        $field_state['values']['op'] = t('Save field settings');
+        if (module_exists('fieldgroup')) {
+          // Avoid undefined index error by always creating this.
+          $field_state['values']['group'] = '';
+          $group_name = fieldgroup_get_group($form_values['type_name'], $field_name);
+          if (in_array($group_name, $groups)) {
+            $field_state['values']['group'] = $group_name;
+          }
+        }
+        drupal_execute('content_field_edit_form', $field_state, $form_values['type_name'], $field_name);
+      }
+    }
+  }
+
+  // Convert the macro array into formatted text.
+  $output = content_copy_get_macro();
+
+  // Add weights of non-CCK fields.
+  if ($extra = variable_get('content_extra_weights_'. $form_values['type_name'], array())) {
+    $output .= "\$content['extra']  = ". var_export((array) $extra, TRUE) .";\n";
+  }
+
+  return $output;
+}
+
+/**
+ *  A form to import formatted text created with export.
+ *
+ * The macro can be filled from a file, if provided.
+ * Provide a type_name to force the fields to be added to a specific
+ * type, or leave out type_name to create a new content type.
+ *
+ * Example:
+ * // If Content Copy is enabled, offer an import link.
+ * if (module_exists('content_copy')) {
+ *   $form['macro'] = array(
+ *     '#type' => 'fieldset',
+ *     '#title' => t('Create a content type'),
+ *     '#description' => t('Follow this link to create automatically a content type and import preconfigured fields.'),
+ *     '#collapsible' => TRUE,
+ *     '#collapsed' => FALSE,
+ *   );
+ *   $form['macro']['link'] = array(
+ *     '#type' => 'markup',
+ *     '#value' => l(t('import'), 'admin/content/types/import', array(), 'type_name=event&macro_file='. drupal_get_path('module', 'my_module') .'/my_content_type.txt'),
+ *   );
+ * }
+ */
+function content_copy_import_form(&$form_state, $type_name = '') {
+  include_once('./'. drupal_get_path('module', 'content') .'/includes/content.admin.inc');
+  include_once('./'. drupal_get_path('module', 'node') .'/content_types.inc');
+
+  $form['#prefix'] = t('This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type.');
+  $form['type_name'] = array(
+    '#type' => 'select',
+    '#options' => array('<create>' => t('<Create>')) + content_copy_types(),
+    '#default_value' => $type_name,
+    '#title' => t('Content type'),
+    '#description' => t('Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields.'),
+  );
+  $form['macro'] = array(
+    '#type' => 'textarea',
+    '#rows' => 40,
+    '#title' => t('Import data'),
+    '#required' => TRUE,
+    '#description' => t('Paste the text created by a content export into this field.'),
+  );
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Import'),
+  );
+  // Read in a file if there is one and set it as the default macro value.
+  if (isset($_REQUEST['macro_file']) && $file = file_get_contents($_REQUEST['macro_file'])) {
+    $form['macro']['#default_value'] = $file;
+    if (isset($_REQUEST['type_name'])) {
+      $form['type_name']['#default_value'] = $_REQUEST['type_name'];
+    }
+    $form['#prefix'] .= '<p class="error">'. t('A file has been pre-loaded for import.') .'</p>';
+  }
+  return $form;
+}
+
+/**
+ *  Submit handler for import form.
+ *   For each submitted field:
+ *     1) add new field to the database
+ *     2) execute the imported field macro to update the settings to the imported values
+ */
+function content_copy_import_form_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+
+  // Get the content type we are importing into.
+  $type_name = $form_values['type_name'];
+  $type_label = node_get_types('name', $type_name);
+
+  $content = NULL;
+  // Convert the import formatted text back into a $content array.
+  // Return if errors generated or not an array.
+  // Use '@' to suppress errors about undefined constants in the macro.
+  @eval($form_values['macro']);
+
+  // Preliminary error trapping, must have valid arrays to work with.
+  if (!isset($content) || !isset($content['type']) || !is_array($content) || !is_array($content['type'])) {
+    form_set_error('macro', t('The import data is not valid import text.'));
+    return;
+  }
+
+  module_load_include('inc', 'content', 'includes/content.crud');
+
+  // Get all type and field info for this database.
+  $content_info = _content_type_info();
+
+  $imported_type = $content['type'];
+  $imported_type_name = $imported_type['type'];
+  $imported_type_label = $imported_type['name'];
+
+  // It is allowed to import a type with no fields,
+  // so the fields array could be empty and must be cast as an array.
+  $imported_fields = isset($content['fields']) ? $content['fields'] : array();
+
+  // Perform more pre-import error trapping.
+  // If there are potential problems, exit without doing the import.
+  $not_enabled = array();
+
+  // The groups array could be empty and still valid, make sure to cast it as an array.
+  // If there are groups in the import, make sure the fieldgroup module is enabled.
+  $imported_groups = array();
+  if (isset($content['groups']) && module_exists('fieldgroup')) {
+    $imported_groups = (array) $content['groups'];
+  }
+  elseif (isset($content['groups']) && is_array($content['groups'])) {
+    $not_enabled[] = 'fieldgroup';
+  }
+
+  // Make sure that all the field and widget modules in the import are enabled in this database.
+  foreach ($imported_fields as $import) {
+    $field = content_field_instance_collapse($import);
+    if (empty($field['module']) || empty($field['widget_module'])) {
+      $not_enabled[] = $field['field_name'];
+    }
+    else {
+      if (!module_exists($field['module'])) {
+        $not_enabled[] = $field['module'];
+      }
+      if (!module_exists($field['widget_module'])) {
+        $not_enabled[] = $field['widget_module'];
+      }
+    }
+  }
+
+  // If any required module is not enabled, set an error message and exit.
+  if ($not_enabled) {
+    form_set_error('macro', t('The following modules must be enabled for this import to work: %modules.', array(
+        '%modules' => implode(', ', array_unique($not_enabled))
+        )));
+  }
+
+  // Make sure the imported content type doesn't already exist in the database.
+  if ($form_values['type_name'] == '<create>') {
+    if (in_array($imported_type_name, array_keys($content_info['content types']))) {
+      form_set_error('macro', t('The content type %type already exists in this database.', array(
+            '%type' => $imported_type_name
+            )));
+    }
+  }
+
+  if (form_get_errors()) {
+    drupal_set_message(t('Exiting. No import performed.'), 'error');
+    return;
+  }
+
+  // Create the content type, if requested.
+  if ($form_values['type_name'] == '<create>') {
+
+    $type = (object) $imported_type;
+    $values = $imported_type;
+    // Prevent a warning in node/content_types.inc
+    $type->has_title = TRUE;
+    $type_form_state = array('values' => $values);
+
+    // There's no API for creating node types, we still have to use drupal_execute().
+    drupal_execute('node_type_form', $type_form_state, $type);
+
+    // Reset type and database values once new type has been added.
+    $type_name  = $imported_type_name;
+    $type_label = node_get_types('name', $type_name);
+    content_clear_type_cache();
+    $content_info = _content_type_info();
+
+    if (form_get_errors() || !isset($content_info['content types']) || !is_array($content_info['content types'][$type_name])) {
+       drupal_set_message(t('An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details.', array(
+            '%type' => $imported_type_name
+            )));
+       return;
+    }
+  }
+
+  // Create the groups for this type, if they don't already exist.
+  if (module_exists('fieldgroup') && $imported_groups) {
+    foreach ($imported_groups as $group) {
+      $group_name = $group['group_name'];
+      fieldgroup_save_group($type_name, $group);
+    }
+    // Reset the static variable in fieldgroup_groups() with new data.
+    fieldgroup_groups('', FALSE, TRUE);
+  }
+
+  // Iterate through the field forms in the import and execute each.
+  $rebuild = FALSE;
+  foreach ($imported_fields as $field) {
+
+    // Make sure the field doesn't already exist in the type.
+    // If so, do nothing, fields can't be duplicated within a content type.
+    $field_name   = $field['field_name'];
+
+    // Might need to overwrite the content type name if a new type was created.
+    $field['type_name'] = $type_name;
+
+    if (!empty($field['field_name']) && isset($content_info['content types'][$type_name]['fields'][$field_name])) {
+      drupal_set_message(t('The imported field %field_label (%field_name) was not added to %type because that field already exists in %type.', array(
+        '%field_label' => $field['label'], '%field_name' => $field_name, '%type' => $type_label)));
+    }
+    else {
+      $field = content_field_instance_create($field, FALSE);
+      $rebuild = TRUE;
+      drupal_set_message(t('The field %field_label (%field_name) was added to the content type %type.', array(
+        '%field_label' => $field['widget']['label'], '%field_name' => $field_name, '%type' => $type_label)));
+    }
+
+    // Fieldgroup module erases all group related data when a module that
+    // provides a content type is disabled, but CCK does not remove the fields.
+    // In this case, we should ensure group data related to fields is properly
+    // restored. Hence, we need to update field group data for newly imported
+    // field, but also for fields that already exist.
+    if (module_exists('fieldgroup') && isset($imported_groups)) {
+      fieldgroup_update_fields($field);
+    }
+  }
+
+  // Clear caches and rebuild menu only if any field has been created.
+  if ($rebuild) {
+    content_clear_type_cache(TRUE);
+    menu_rebuild();
+  }
+
+  // Import weights of non-CCK fields.
+  if (isset($content['extra'])) {
+    variable_set('content_extra_weights_'. $type_name, $content['extra']);
+  }
+}
+
+/**
+ * Implementation of hook_form_alter().
+ * Intervene to run form through macro when doing export
+ */
+function content_copy_form_alter(&$form, $form_state, $form_id) {
+  $alter_forms = array('node_type_form', 'content_field_edit_form', 'fieldgroup_group_edit_form');
+  if (isset($GLOBALS['content_copy']) && isset($GLOBALS['content_copy']['status']) && $GLOBALS['content_copy']['status'] == 'export' && in_array($form_id, $alter_forms)) {
+    $form['#submit'][] = 'content_copy_record_macro';
+  }
+}
+
+/**
+ * Get all the *active* fields for a content type.
+ */
+function content_copy_fields($type_name) {
+  $fields = array();
+  if (!$type_name) {
+    return $fields;
+  }
+  $content_info = _content_type_info();
+  foreach ($content_info['content types'][$type_name]['fields'] as $field_name => $field) {
+    // Omit fields from the export if their module is not currently installed
+    // otherwise the system will generate errors when the macro tries to execute their forms.
+    $field_types = _content_field_types();
+    $field_module = $field_types[$field['type']]['module'];
+    $widget_types = _content_widget_types();
+    $widget_module = $widget_types[$field['widget']['type']]['module'];
+
+    if (!$field['locked'] && !empty($field_module) && module_exists($field_module) && !empty($widget_module) && module_exists($widget_module)) {
+      $fields[] = $field_name;
+    }
+  }
+  return $fields;
+}
+
+/**
+ *  Get all content types.
+ */
+function content_copy_types() {
+  $types = array();
+  $content_info = _content_type_info();
+  foreach ($content_info['content types'] as $type_name => $val) {
+    $types[$type_name] = check_plain($val['name']) .' ('. $type_name .')';
+  }
+  return $types;
+}
+
+/**
+ * A handler that stores the form submissions into a $GLOBALS array
+ */
+function content_copy_record_macro($form, &$form_state) {
+  $edit = $form_state['values'];
+  $subs = isset($GLOBALS['content_copy']['submissions']) ? $GLOBALS['content_copy']['submissions'] : array();
+
+  // Get the form values and store them in a $GLOBALS['content_copy']['submissions'] array.
+  // Update $GLOBALS['content_copy']['count'] with an approximation of the number of rows in this item.
+  // Count is used to approximate necessary size of textarea in form.
+
+  $form_id = $form_state['values']['form_id'];
+  if (isset($edit['type_name']) || isset($edit['submit']) || isset($edit['delete']) || isset($edit['form_id'])) {
+    unset($edit['type_name'], $edit['submit'], $edit['delete'], $edit['form_id'], $edit['previous_field']);
+  }
+  switch ($form_id) {
+    case 'node_type_form':
+      $subs['type'] = $edit;
+      $GLOBALS['content_copy']['count'] += sizeof($edit) + 5;
+      break;
+
+    case 'fieldgroup_group_edit_form':
+      $subs['groups'][] = $edit;
+      $GLOBALS['content_copy']['count'] += sizeof($edit) + 5;
+      break;
+
+    default:
+      if (isset($edit['field_widget_type'])) {
+        $tmp = explode('-', $edit['field_widget_type']);
+        $field_name = $tmp[0];
+      }
+      else {
+        $field_name = isset($edit['field_name']) ? $edit['field_name'] : '';
+      }
+
+      // The display settings are being fetched directly from the DB. During import,
+      // we'll re-insert the data directly as well.
+      //
+      $query = 'SELECT display_settings FROM {'. content_instance_tablename() .'} WHERE field_name = \'%s\'';
+      $row_info = db_fetch_array(db_query($query, $field_name));
+
+      // If an error occurs, notify the user.
+      if ($db_err = db_error()) {
+        drupal_set_message(t("An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'.", array(
+             '%field_name' => $field_name,
+             '%db_err' => $db_err
+        )));
+      }
+      else {
+        // The db fetch occurred successfully, unserialize the data blob and
+        // insert it into a new "display_settings" field of the data.
+        if ($display_settings = unserialize($row_info['display_settings'])) {
+          $edit['display_settings'] = $display_settings;
+        }
+      }
+      $subs['fields'][] = $edit;
+      $GLOBALS['content_copy']['count'] += sizeof($edit) + 5;
+      break;
+  }
+
+  $GLOBALS['content_copy']['submissions'] = $subs;
+}
+
+/**
+ * @return a code representation of the recorded macro.
+ */
+function content_copy_get_macro() {
+  // Define the indexes for the evaluated code.
+  $string = "";
+  if (array_key_exists('submissions', $GLOBALS['content_copy'])) {
+    foreach ($GLOBALS['content_copy']['submissions'] as $form_type => $form) {
+      $string .= "\$content['$form_type']  = ". var_export((array) $form, TRUE) .";\n";
+    }
+    return $string;
+  }
+}
+
+function template_preprocess_content_copy_export_form($vars) {
+  $form = &$vars['form'];
+
+  if ($form['#step'] == 2) {
+    $order = _content_overview_order($form, $form['#fields'], $form['#groups']);
+
+    $rows = array();
+    foreach ($order as $key) {
+      $element = &$form[$key];
+      $row = new stdClass();
+
+      $row->row_type = $element['#row_type'];
+      $checkbox_key = $element['#row_type'] == 'field' ? 'fields' : 'groups';
+      $row->checkbox = drupal_render($form[$checkbox_key][$key]);
+      foreach (element_children($element) as $child) {
+        $row->{$child} = drupal_render($element[$child]);
+      }
+      $row->label_class = in_array($key, $form['#groups']) ? 'label-group' : 'label-field';
+      $row->indentation = theme('indentation', isset($element['#depth']) ? $element['#depth'] : 0);
+
+      $rows[] = $row;
+    }
+    $vars['rows'] = $rows;
+  }
+
+  $vars['submit'] = drupal_render($form);
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy_export_form.tpl.php b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy_export_form.tpl.php
new file mode 100644
index 0000000..54b0de6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/content_copy_export_form.tpl.php
@@ -0,0 +1,42 @@
+<?php
+// $Id$
+
+if ($form['#step'] == 2):
+  if ($rows): ?>
+    <table id="content-copy-export" class="sticky-enabled">
+      <thead>
+        <tr>
+          <th><?php print t('Export'); ?></th>
+          <th><?php print t('Label'); ?></th>
+          <th><?php print t('Name'); ?></th>
+          <th><?php print t('Type'); ?></th>
+        </tr>
+      </thead>
+      <tbody>
+        <?php
+        $count = 0;
+        foreach ($rows as $row): ?>
+          <tr class="<?php print $count % 2 == 0 ? 'odd' : 'even'; ?>">
+          <?php
+          switch ($row->row_type):
+            case 'field': ?>
+              <td><?php print $row->checkbox; ?></td>
+              <td><?php print $row->indentation; ?><span class="<?php print $row->label_class; ?>"><?php print $row->human_name; ?></span></td>
+              <td><?php print $row->field_name; ?></td>
+              <td><?php print $row->type; ?></td>
+            <?php break;
+            case 'group': ?>
+              <td><?php print $row->checkbox; ?></td>
+              <td><?php print $row->indentation; ?><span class="<?php print $row->label_class; ?>"><?php print $row->human_name; ?></span></td>
+              <td colspan="2"><?php print $row->group_name; ?></td>
+              <?php break;
+            endswitch; ?>
+          </tr>
+          <?php $count++;
+        endforeach; ?>
+      </tbody>
+    </table>
+  <?php endif;
+  endif;
+print $submit; ?>
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.de.po
new file mode 100644
index 0000000..fd1917e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.de.po
@@ -0,0 +1,137 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2008-11-05 12:54+0100\n"
+"PO-Revision-Date: 2008-11-05 13:17+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/content_copy/content_copy_export_form.tpl.php:9
+#: modules/content_copy/content_copy.module:187;38
+msgid "Export"
+msgstr "Exportieren"
+
+#: modules/content_copy/content_copy.module:97
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Dieses Formular verarbeitet einen Inhaltstyp, ein oder mehrere Felder von diesem Typ und exportiert die Einstellungen. Der von diesem Prozess erstellte Export kann kopiert und als Import in die Aktuelle oder jede andere Datenbank eingefügt werden. Der Import wird die Felder zu einem vorhandenen Inhaltstyp hinzufügen oder einen neuen Inhaltstyp mit den ausgewählten Feldern erstellen."
+
+#: modules/content_copy/content_copy.module:103
+msgid "Types"
+msgstr "Typen"
+
+#: modules/content_copy/content_copy.module:107
+msgid "Select the content type to export."
+msgstr "Wählen Sie einen Inhaltstyp für den Export."
+
+#: modules/content_copy/content_copy.module:171
+msgid "Export data"
+msgstr "Daten exportieren"
+
+#: modules/content_copy/content_copy.module:176
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Kopieren Sie den exportierten Text und fügen Sie ihn mit der Importfunktion in einen anderen Inhaltstyp ein."
+
+#: modules/content_copy/content_copy.module:180
+msgid "Content types"
+msgstr "Inhaltstypen"
+
+#: modules/content_copy/content_copy.module:299
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Dieses Formular wird Felddefinitionen importieren, die von einem anderen Inhaltstyp oder anderen Datenbank exportiert wurden.<br />Dabei ist zu beachten, dass die Felder nicht innerhalb des gleichen Inhalttyps dupliziert werden können, deshalb werden importierte Felder nur hinzugefügt, wenn diese im ausgewählten Typ noch nicht vorhanden sind."
+
+#: modules/content_copy/content_copy.module:302
+msgid "<Create>"
+msgstr "<Erstellen>"
+
+#: modules/content_copy/content_copy.module:304
+msgid "Content type"
+msgstr "Inhaltstyp"
+
+#: modules/content_copy/content_copy.module:305
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Wählen Sie den Inhaltstyp zum Aufnehmen der importierten Felder aus.<br/>Wählen Sie &ltErstellen> zum Erstellen eines neuen Inhaltstyps für die zu importierenden Felder."
+
+#: modules/content_copy/content_copy.module:310
+msgid "Import data"
+msgstr "Daten importieren"
+
+#: modules/content_copy/content_copy.module:312
+msgid "Paste the text created by a content export into this field."
+msgstr "Fügen Sie den Text aus einem Inhaltsexport in dieses Feld ein."
+
+#: modules/content_copy/content_copy.module:316;46
+msgid "Import"
+msgstr "Importieren"
+
+# "vorgeladen" sounds strange
+#: modules/content_copy/content_copy.module:324
+#, fuzzy
+msgid "A file has been pre-loaded for import."
+msgstr "Eine Datei wurde für den Import vorgeladen."
+
+#: modules/content_copy/content_copy.module:350
+msgid "The import data is not valid import text."
+msgstr "Die importierten Daten sind kein gültiger Importtext."
+
+#: modules/content_copy/content_copy.module:399
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "Die folgenden Module müssen eingeschaltet sein, damit dieser Import erfolgreich durchgeführt werden kann: %modules."
+
+#: modules/content_copy/content_copy.module:407
+msgid "The content type %type already exists in this database."
+msgstr "Der Inhaltstyp %type existiert bereits in dieser Datenbank."
+
+#: modules/content_copy/content_copy.module:414
+msgid "Exiting. No import performed."
+msgstr "Abbruch. Kein Import durchgeführt."
+
+#: modules/content_copy/content_copy.module:438
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Beim Hinzufügen des Inhaltstyps %type trat ein Fehler auf.<br/>Bitte überprüfen Sie die angezeigten Fehler für weitere Details."
+
+#: modules/content_copy/content_copy.module:463
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Das importierte Feld %field_label (%field_name) wurde nicht zu %type hinzugefügt, weil dieses Feld bereits in %type existiert."
+
+#: modules/content_copy/content_copy.module:472
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr "Das Feld %field_label (%field_name) wurde zu dem Inhaltstyp %type hinzugefügt."
+
+#: modules/content_copy/content_copy.module:553
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr "Beim Exportieren der ‚Anzeige-Einstellungs‘-Daten für das Feld %field_name ist ein Fehler aufgetreten.<br />Der DB-Fehler ist: ‚%db_err‘."
+
+#: modules/content_copy/content_copy.module:0
+msgid "content_copy"
+msgstr "Inhaltskopie"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Content Copy"
+msgstr "Inhaltskopie"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Aktiviert die Möglichkeit zum Importieren und Exportieren von Felddefinitionen."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.fr.po
new file mode 100644
index 0000000..6c54ab5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.fr.po
@@ -0,0 +1,177 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:52+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: modules/content_copy/content_copy.module:80
+msgid ""
+"This form will process a content type and one or more fields from that type "
+"and export the settings. The export created by this process can be copied "
+"and pasted as an import into the current or any other database. The import "
+"will add the fields to into an existing content type or create a new content "
+"type that includes the selected fields."
+msgstr ""
+"Ce formulaire traitera un type de contenu et un ou plusieurs champs de ce "
+"type, pour en exporter les paramètres. Le code d'export ainsi généré peut "
+"être copié et collé dans la page d'import, vers la base de données courante "
+"ou vers une autre base de données. L'opération d'import ajoutera les champs "
+"à un type de contenu existant ou créera un nouveau type de contenu intégrant "
+"les champs sélectionnés."
+
+#: modules/content_copy/content_copy.module:86
+msgid "Types"
+msgstr "Types"
+
+#: modules/content_copy/content_copy.module:90
+msgid "Select the content type to export."
+msgstr "Sélectionner le type de contenu à exporter."
+
+#: modules/content_copy/content_copy.module:115
+msgid "Groups"
+msgstr "Groupes"
+
+#: modules/content_copy/content_copy.module:119
+msgid "Select the group definitions to export from %type."
+msgstr "Sélectionnez les définitions de groupes à exporter depuis '%type'."
+
+#: modules/content_copy/content_copy.module:129
+msgid "Select the field definitions to export from %type."
+msgstr "Sélectionnez les définitions de champs à exporter depuis '%type'."
+
+#: modules/content_copy/content_copy.module:139
+msgid "Export data"
+msgstr "Données exportée"
+
+#: modules/content_copy/content_copy.module:144
+msgid ""
+"Copy the export text and paste it into another content type using the import "
+"function."
+msgstr ""
+"Copiez le texte exporté et collez-le dans le type de contenu de votre choix, "
+"à l'aide de la fonction d'import."
+
+#: modules/content_copy/content_copy.module:154;38
+msgid "Export"
+msgstr "Exporter"
+
+#: modules/content_copy/content_copy.module:227
+msgid ""
+"This form will import field definitions exported from another content type "
+"or another database.<br/>Note that fields cannot be duplicated within the "
+"same content type, so imported fields will be added only if they do not "
+"already exist in the selected type."
+msgstr ""
+"Ce formulaire permet d'importer les définitions de champs exportées depuis "
+"un autre type de contenu ou depuis une autre base de données.<br/>Notez que "
+"les champs ne peuvent être dupliqués au sein d'un même type de contenu : les "
+"champs importés ne peuvent donc être ajoutés que s'ils n'existent pas encore "
+"dans le type sélectionné."
+
+#: modules/content_copy/content_copy.module:230
+msgid "<Create>"
+msgstr "<Créer>"
+
+#: modules/content_copy/content_copy.module:232
+msgid "Content type"
+msgstr "Type de contenu"
+
+#: modules/content_copy/content_copy.module:233
+msgid ""
+"Select the content type to import these fields into.<br/>Select <"
+"Create> to create a new content type to contain the fields."
+msgstr ""
+"Choisissez le type de contenu vers lequel vous voulez importer ces champs."
+"<br/>Sélectionnez <Create> pour créer un nouveau type de contenu "
+"comportant ces champs."
+
+#: modules/content_copy/content_copy.module:238
+msgid "Import data"
+msgstr "Données à importer"
+
+#: modules/content_copy/content_copy.module:240
+msgid "Paste the text created by a content export into this field."
+msgstr "Collez dans ce champ le texte créé par un export de contenu."
+
+#: modules/content_copy/content_copy.module:244;46
+msgid "Import"
+msgstr "Importer"
+
+#: modules/content_copy/content_copy.module:270
+msgid "The import data is not valid import text."
+msgstr "Les données d'import ne sont valides."
+
+#: modules/content_copy/content_copy.module:318
+msgid ""
+"The following modules must be enabled for this import to work: %modules."
+msgstr ""
+"Les modules suivants doivent être activés pour que l'import fonctionne : '%"
+"modules'."
+
+#: modules/content_copy/content_copy.module:324;338
+msgid "<create>"
+msgstr "<créer>"
+
+#: modules/content_copy/content_copy.module:326
+msgid "The content type %type already exists in this database."
+msgstr "Le type de contenu '%type' existe déjà dans cette base de données."
+
+#: modules/content_copy/content_copy.module:333
+msgid "Exiting. No import performed."
+msgstr "Abandon. L'import n'a pas été réalisé."
+
+#: modules/content_copy/content_copy.module:355
+msgid ""
+"An error has occurred adding the content type %type.<br/>Please check the "
+"errors displayed for more details."
+msgstr ""
+"Une erreur s'est produite à l'ajout du type de contenu '%type'.<br/"
+">Consultez les erreurs affichées à l'écran pour plus de détails."
+
+#: modules/content_copy/content_copy.module:380
+msgid ""
+"The imported field %field_label (%field_name) was not added to %type because "
+"that field already exists in %type."
+msgstr ""
+"Le champ importé '%field_label' (%field_name) n'a pas été ajouté à '%type' "
+"car ce champ existe déjà."
+
+#: modules/content_copy/content_copy.module:389
+msgid ""
+"The field %field_label (%field_name) was added to the content type %type."
+msgstr ""
+"Le champ importé '%field_label' (%field_name) a été ajouté au type de "
+"contenu '%type'."
+
+#: modules/content_copy/content_copy.module:503
+msgid ""
+"An error occurred when exporting the 'display settings' data for the field %"
+"field_name.<br/>The db error is: '%db_err'."
+msgstr ""
+"Une erreur s'est produite à l'export des données 'paramètres d'affichage' "
+"pour le champ '%field_name'.<br/>L'erreur renvoyée par la base de données "
+"est : '%db_err'."
+
+#: modules/content_copy/content_copy.module:0
+msgid "content_copy"
+msgstr "content_copy"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Content Copy"
+msgstr "Content Copy"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Permet d'importer et d'exporter des définitions de champs."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.hu.po
new file mode 100644
index 0000000..12c9d4a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.hu.po
@@ -0,0 +1,193 @@
+# Hungarian translation of cck (6.x-2.0-rc10)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  content_copy.module,v 1.27.2.13 2008/10/08 12:55:54 karens
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck (6.x-2.0-rc10)\n"
+"POT-Creation-Date: 2008-10-31 12:16-0500\n"
+"PO-Revision-Date: 2008-10-26 11:48-0500\n"
+"Last-Translator: Balogh Zoltán\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: modules/content_copy/content_copy.module:262,46
+msgid "Import"
+msgstr "Import"
+
+#: modules/content_copy/content_copy.module:139,38
+msgid "Export"
+msgstr "Export"
+
+#: modules/content_copy/content_copy.module:132
+msgid "Content types"
+msgstr "Tartalom típusok"
+
+#: modules/content_copy/content_copy.module:100
+msgid "Groups"
+msgstr "Csoportok"
+
+#: modules/content_copy/content_copy.module:250
+msgid "Content type"
+msgstr "Tartalomtípus"
+
+#: modules/content_copy/content_copy.module:85
+msgid "Types"
+msgstr "Típusok"
+
+#: modules/content_copy/content_copy.module:80
+msgid ""
+"This form will process a content type and one or more fields from that "
+"type and export the settings. The export created by this process can "
+"be copied and pasted as an import into the current or any other "
+"database. The import will add the fields to into an existing content "
+"type or create a new content type that includes the selected fields."
+msgstr ""
+"Ez az űrlap készíti el a tartalomtípus és a típusból egy vagy "
+"több mező beállításainak exportálását. A folyamat által "
+"készített exportot lehet lemásolni és mint importot beilleszteni "
+"az aktuális, vagy bármely más adatbázisba. Az import hozzá fogja "
+"adni a mezőket egy létező tartalom típushoz, vagy létre fog hozni "
+"egy új tartalomtípust, mely tartalmazni fogja a kiválasztott "
+"mezőket."
+
+#: modules/content_copy/content_copy.module:89
+msgid "Select the content type to export."
+msgstr "Tartalomtípus kiválasztása az exporthoz."
+
+#: modules/content_copy/content_copy.module:104
+msgid "Select the group definitions to export from %type."
+msgstr ""
+"Csoport meghatározások kiválasztása az exporthoz a következő "
+"tartalomtípusból: %type."
+
+#: modules/content_copy/content_copy.module:114
+msgid "Select the field definitions to export from %type."
+msgstr ""
+"Mező meghatározások kiválasztása az exporthoz a következő "
+"tartalom típusból: %type."
+
+#: modules/content_copy/content_copy.module:123
+msgid "Export data"
+msgstr "Adatok exportálása"
+
+#: modules/content_copy/content_copy.module:128
+msgid ""
+"Copy the export text and paste it into another content type using the "
+"import function."
+msgstr ""
+"Az export által előállított szöveget át lehet másolni egy "
+"másik tartalomtípusba az import művelet segítségével."
+
+#: modules/content_copy/content_copy.module:245
+msgid ""
+"This form will import field definitions exported from another content "
+"type or another database.<br/>Note that fields cannot be duplicated "
+"within the same content type, so imported fields will be added only if "
+"they do not already exist in the selected type."
+msgstr ""
+"Ez az űrlap importálja a mező meghatározásokat, melyek egy másik "
+"tartalom típusból, vagy egy másik adatbázisból lettek "
+"exportálva.<br/>Megjegyzés: Egy tartalom típuson belül a mezőket "
+"nem lehet többszörözni, így csak azok a mezők lesznek hozzáadva, "
+"melyek még nem szerepelnek a kiválasztott tartalom típusban."
+
+#: modules/content_copy/content_copy.module:248
+msgid "<Create>"
+msgstr "<Létrehozás>"
+
+#: modules/content_copy/content_copy.module:251
+msgid ""
+"Select the content type to import these fields into.<br/>Select "
+"<Create> to create a new content type to contain the fields."
+msgstr ""
+"Tartalom típus kiválasztása a mezők importálásához.<br/>A "
+"<Létrehozás> segítségével új tartalom típus jön létre, "
+"mely tartalmazni fogja a mezőket."
+
+#: modules/content_copy/content_copy.module:256
+msgid "Import data"
+msgstr "Adatok importálása"
+
+#: modules/content_copy/content_copy.module:258
+msgid "Paste the text created by a content export into this field."
+msgstr ""
+"A tartalom exportnál keletkezett szöveget kell ebbe a mezőbe "
+"illeszteni."
+
+#: modules/content_copy/content_copy.module:270
+msgid "A file has been pre-loaded for import."
+msgstr "A fájl előzetesen be lett töltve az importhoz."
+
+#: modules/content_copy/content_copy.module:296
+msgid "The import data is not valid import text."
+msgstr "Az adat nem értelmezhető import szövegként."
+
+#: modules/content_copy/content_copy.module:344
+msgid ""
+"The following modules must be enabled for this import to work: "
+"%modules."
+msgstr ""
+"A következő modulokat engedélyezni kell, hogy ez az import "
+"működjön: %modules."
+
+#: modules/content_copy/content_copy.module:352
+msgid "The content type %type already exists in this database."
+msgstr "%type tartalomtípus már szerepel az adatbázisban."
+
+#: modules/content_copy/content_copy.module:359
+msgid "Exiting. No import performed."
+msgstr "Kilépés. Az importálás nem lett végrehajtva."
+
+#: modules/content_copy/content_copy.module:383
+msgid ""
+"An error has occurred adding the content type %type.<br/>Please check "
+"the errors displayed for more details."
+msgstr ""
+"Hiba történt a következő tartalomtípus hozzáadása közben: "
+"%type.<br />További részletek a megjelenített hibaüzenetekben."
+
+#: modules/content_copy/content_copy.module:409
+msgid ""
+"The imported field %field_label (%field_name) was not added to %type "
+"because that field already exists in %type."
+msgstr ""
+"%field_label (%field_name) mező már létezik, ezért az import "
+"során nem lett hozzáadva a következő tartalomtípushoz: %type."
+
+#: modules/content_copy/content_copy.module:418
+msgid ""
+"The field %field_label (%field_name) was added to the content type "
+"%type."
+msgstr ""
+"%field_label (%field_name) mező hozzá lett adva a következő "
+"tartalomtípushoz: %type."
+
+#: modules/content_copy/content_copy.module:532
+msgid ""
+"An error occurred when exporting the 'display settings' data for the "
+"field %field_name.<br/>The db error is: '%db_err'."
+msgstr ""
+"%field_name mező „Megjelenítési beállítás” adatainak "
+"exportálása közben egy hiba keletkezett. <br />Az adatbázis hiba: "
+"„%db_err”."
+
+#: modules/content_copy/content_copy.module:0
+msgid "content_copy"
+msgstr "content_copy"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Content Copy"
+msgstr "Content Copy"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr ""
+"Lehetővé teszi a meződefiníciók importálását és "
+"exportálását."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.nl.po
new file mode 100644
index 0000000..4ae4308
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.nl.po
@@ -0,0 +1,146 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
+#  content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:25+0200\n"
+"PO-Revision-Date: 2009-06-03 14:27+0100\n"
+"Last-Translator: L.B. Cohn <lichai at 999games.nl>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: content_copy_export_form.tpl.php:9
+#: content_copy.module:191;38
+msgid "Export"
+msgstr "Exporteren"
+
+#: content_copy_export_form.tpl.php:10
+msgid "Label"
+msgstr "Label"
+
+#: content_copy_export_form.tpl.php:11
+msgid "Name"
+msgstr "Naam"
+
+#: content_copy_export_form.tpl.php:12
+msgid "Type"
+msgstr "Type"
+
+#: content_copy.module:97
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Dit formulier zal een inhoudstype en één of meerdere velden van dat type exporteren. Dit kan worden gekopieerd en geplakt in deze of een andere database. Importeren zal deze velden aan een bestanden inhoudstype toevoegen of een nieuw inhoudstype maken met de geselecteerde velden."
+
+#: content_copy.module:103
+msgid "Types"
+msgstr "Typen"
+
+#: content_copy.module:107
+msgid "Select the content type to export."
+msgstr "Selecteer de inhoudstypes om te exporteren"
+
+#: content_copy.module:175
+msgid "Export data"
+msgstr "Exporteer data"
+
+#: content_copy.module:180
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Kopieer de geexporteerde tekst en plak het in een ander inhoudstype of gebruik de importeerfunctie."
+
+#: content_copy.module:184
+msgid "Content types"
+msgstr "Inhoudstypen"
+
+#: content_copy.module:251
+msgid "Save field settings"
+msgstr "Veldinstellingen indienen"
+
+#: content_copy.module:303
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Dit formulier zal veldinformatie importeren die zijn geexporteerd uit een ander inhoudstype of database.<br />Merk op dat velden niet kunnen worden gedupliceerd in hetzelfde inhoudstype, dus geimporteerde velden zullen alleen worden toegevoegd als ze nog niet bestaan in het geselecteerde inhoudstype."
+
+#: content_copy.module:306
+msgid "<Create>"
+msgstr "<Maak>"
+
+#: content_copy.module:308
+msgid "Content type"
+msgstr "Inhoudstype"
+
+#: content_copy.module:309
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Selecteer het inhoudstype waarin deze velden moeten worden geimporteerd.<br />Selecteer <Maak> om een nieuw inhoudstype te maken waarin de velden komen."
+
+#: content_copy.module:314
+msgid "Import data"
+msgstr "Importeer data"
+
+#: content_copy.module:316
+msgid "Paste the text created by a content export into this field."
+msgstr "Plak de tekst die is geexporteerd in dit veld."
+
+#: content_copy.module:320;46
+msgid "Import"
+msgstr "Importeren"
+
+#: content_copy.module:328
+msgid "A file has been pre-loaded for import."
+msgstr "Een bestand is voorgeladen voor het importeren."
+
+#: content_copy.module:354
+msgid "The import data is not valid import text."
+msgstr "De geimporteerde data is geen valide importeertekst."
+
+#: content_copy.module:403
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "De volgende modules moeten worden aangezet om te kunnen importeren: %modules."
+
+#: content_copy.module:411
+msgid "The content type %type already exists in this database."
+msgstr "Het inhoudstype %type bestaat al in de database."
+
+#: content_copy.module:418
+msgid "Exiting. No import performed."
+msgstr "Gestopt, er is niks geimporteerd."
+
+#: content_copy.module:442
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Er is een fout opgetreden tijden het toevoegen van het inhoudstype %type.<br />Bekijk de foutmeldingen voor meer informatie."
+
+#: content_copy.module:467
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Het geimporteerde veld %field_label (%field_name) is niet toegevoegd aan %type omdat het veld al bestaat in %type."
+
+#: content_copy.module:476
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr "Het veld %field_label (%field_name) is toegevoegd aan het inhoudstype %type."
+
+#: content_copy.module:581
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr "Er is een fout opgetreden tijdens het exporteren van de weergaveinstellingendata voor het veld %field_name.<br />De databasefoutmelding is: '%db_err'."
+
+#: content_copy.module:0
+msgid "content_copy"
+msgstr "content_copy"
+
+#: content_copy.info:0
+msgid "Content Copy"
+msgstr "Kopieer inhoud"
+
+#: content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Laat velddefinities geimporteerd en geexporteerd worden."
+
+#: content_copy.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.pot
new file mode 100644
index 0000000..c1c4192
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.pot
@@ -0,0 +1,126 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-content_copy)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
+#  content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/content_copy/content_copy_export_form.tpl.php:9 modules/content_copy/content_copy.module:191;38
+msgid "Export"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:97
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:103
+msgid "Types"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:107
+msgid "Select the content type to export."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:175
+msgid "Export data"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:180
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:184
+msgid "Content types"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:303
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:306
+msgid "<Create>"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:308
+msgid "Content type"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:309
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:314
+msgid "Import data"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:316
+msgid "Paste the text created by a content export into this field."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:320;46
+msgid "Import"
+msgstr ""
+
+#: modules/content_copy/content_copy.module:328
+msgid "A file has been pre-loaded for import."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:354
+msgid "The import data is not valid import text."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:403
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:411
+msgid "The content type %type already exists in this database."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:418
+msgid "Exiting. No import performed."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:442
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:467
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:476
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:581
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr ""
+
+#: modules/content_copy/content_copy.module:0
+msgid "content_copy"
+msgstr ""
+
+#: modules/content_copy/content_copy.info:0
+msgid "Content Copy"
+msgstr ""
+
+#: modules/content_copy/content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.sv.po
new file mode 100644
index 0000000..cddae94
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_copy/translations/modules-content_copy.sv.po
@@ -0,0 +1,148 @@
+# $Id$
+#
+# Swedish translation of Drupal (content_copy)
+# Generated from files:
+#  content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
+#  content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Content Copy 6.x\n"
+"POT-Creation-Date: 2009-05-27 12:42+0200\n"
+"PO-Revision-Date: 2009-05-27 13:04+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: content_copy_export_form.tpl.php:9
+#: content_copy.module:191;38
+msgid "Export"
+msgstr "Exportera"
+
+#: content_copy_export_form.tpl.php:10
+msgid "Label"
+msgstr "Etikett"
+
+#: content_copy_export_form.tpl.php:11
+msgid "Name"
+msgstr "Namn"
+
+#: content_copy_export_form.tpl.php:12
+msgid "Type"
+msgstr "Typ"
+
+#: content_copy.module:97
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Detta formulär kommer att bearbeta en innehållstyp och ett eller flera fält från den typen och exportera inställningarna. Exporten skapad av denna bearbetning kan kopieras och klistras in som en import till den nuvarande, eller annan databas. Importen kommer att lägga till fält till den existerande innehållstypen eller skapa en ny innehållstyp som inkluderade valda fält."
+
+#: content_copy.module:103
+msgid "Types"
+msgstr "Typer"
+
+#: content_copy.module:107
+msgid "Select the content type to export."
+msgstr "Välj innehållstyp att exportera."
+
+#: content_copy.module:175
+msgid "Export data"
+msgstr "Exportera data"
+
+#: content_copy.module:180
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Kopiera den exporterade texten och klistra in den till en annan innehållstyp genom att använda funktionen för import."
+
+#: content_copy.module:184
+msgid "Content types"
+msgstr "Innehållstyper"
+
+#: content_copy.module:251
+msgid "Save field settings"
+msgstr "Spara inställningar för fält"
+
+#: content_copy.module:303
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Detta formulär kommer att importera definitioner på fält exporterade från annan innehållstyp eller annan databas.<br />Observera att detta fält inte kan vara en dublett inom samma innehållstp, så importerade fält kommer enbart att läggas till om de inte redan existerar i den valda typen."
+
+#: content_copy.module:306
+msgid "<Create>"
+msgstr "<Skapa>"
+
+#: content_copy.module:308
+msgid "Content type"
+msgstr "Innehållstyp"
+
+#: content_copy.module:309
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Välj innehållstyp att importera dessa fält till.<br />Välj <Skapa> för att skapa en ny innehållstyp som skall innehålla fälten."
+
+#: content_copy.module:314
+msgid "Import data"
+msgstr "Importera data"
+
+#: content_copy.module:316
+msgid "Paste the text created by a content export into this field."
+msgstr "Klistra in texten skapad av en export av innehåll till detta fält."
+
+#: content_copy.module:320;46
+msgid "Import"
+msgstr "Importera"
+
+#: content_copy.module:328
+msgid "A file has been pre-loaded for import."
+msgstr "En fil har förladdats för import."
+
+#: content_copy.module:354
+msgid "The import data is not valid import text."
+msgstr "Det importerade datat är inte giltig text för import."
+
+#: content_copy.module:403
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "Följande moduler måste aktiveras för att denna import skall fungera: %modules."
+
+#: content_copy.module:411
+msgid "The content type %type already exists in this database."
+msgstr "Innehållstypen %type finns redan i databasen."
+
+#: content_copy.module:418
+msgid "Exiting. No import performed."
+msgstr "Avslutar. Ingen import genomförd."
+
+#: content_copy.module:442
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Ett fel inträffade när innehållstypen %type lades till.<br />Var vänlig se de visade felmeddelandena för mer detaljer."
+
+#: content_copy.module:467
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Det importerade fältet %field_label (%field_name) lades inte till %type eftersom det fältet redan existerar i %type."
+
+#: content_copy.module:476
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr "Fältet %field_label (%field_name) lades till innehållstypen %type."
+
+#: content_copy.module:581
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr "Ett fel inträffade "
+
+#: content_copy.module:0
+msgid "content_copy"
+msgstr "content_copy"
+
+#: content_copy.info:0
+msgid "Content Copy"
+msgstr "Kopiera innehåll"
+
+#: content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Aktiverar förmågan att importera/exportera definitioner av fält."
+
+#: content_copy.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_multigroup/README.txt b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_multigroup/README.txt
new file mode 100644
index 0000000..1b15aad
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_multigroup/README.txt
@@ -0,0 +1,4 @@
+; $Id$
+
+Ongoing work on the multigroup module has moved to the experimental
+CCK 3.0 branch.
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.info
new file mode 100644
index 0000000..3c0e4d4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.info
@@ -0,0 +1,12 @@
+; $Id$
+name = Content Permissions
+description = Set field-level permissions for CCK fields.
+package = CCK
+core = 6.x
+dependencies[] = content
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.install b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.install
new file mode 100644
index 0000000..a499833
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.install
@@ -0,0 +1,10 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_install().
+ */
+function content_permissions_install() {
+  drupal_set_message(t('Please <a href="!url">configure your field permissions</a> immediately. All fields are inaccessible by default.', array('!url' => url('admin/user/permissions', array('fragment' => 'content_permissions')))));
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.module
new file mode 100644
index 0000000..7c81d5d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/content_permissions.module
@@ -0,0 +1,28 @@
+<?php
+// $Id$
+
+/**
+ *  Implementation of hook_perm().
+ */
+function content_permissions_perm() {
+  $perms = array();
+  foreach (content_fields() as $field) {
+    $perms[] = 'edit '. $field['field_name'];
+    $perms[] = 'view '. $field['field_name'];
+  }
+  return $perms;
+}
+
+/**
+ * Implementation of hook_field_access().
+ *
+ * @see content_access().
+ */
+function content_permissions_field_access($op, $field, $account, $node = NULL) {
+  switch ($op) {
+    case 'view':
+    case 'edit':
+      return user_access($op .' '. $field['field_name'], $account);
+  }
+  return TRUE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.de.po
new file mode 100644
index 0000000..ba962aa
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.de.po
@@ -0,0 +1,61 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2008-11-05 12:54+0100\n"
+"PO-Revision-Date: 2008-11-05 13:18+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
+#: modules/content_permissions/content_permissions.module:9
+msgid "edit "
+msgstr ""
+
+# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
+#: modules/content_permissions/content_permissions.module:9;10
+msgid "field_name"
+msgstr ""
+
+# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
+#: modules/content_permissions/content_permissions.module:10
+msgid "view "
+msgstr ""
+
+#: modules/content_permissions/content_permissions.module:0
+msgid "content_permissions"
+msgstr "Inhaltsberechtigungen"
+
+#: modules/content_permissions/content_permissions.install:9
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr "Bitte umgehend die <a href=\"!url\">Feldberechtigungen konfigurieren</a>. Alle Felder sind standardmäßig gesperrt."
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Content Permissions"
+msgstr "Inhaltsberechtigungen"
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr "Konfiguriert Berechtigungen für CCK-Felder auf Feldebene."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.fr.po
new file mode 100644
index 0000000..7db1655
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.fr.po
@@ -0,0 +1,49 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-10-19 18:01+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
+#: modules/content_permissions/content_permissions.module:9
+msgid "edit "
+msgstr ""
+
+# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
+#: modules/content_permissions/content_permissions.module:9;10
+msgid "field_name"
+msgstr ""
+
+# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
+#: modules/content_permissions/content_permissions.module:10
+msgid "view "
+msgstr ""
+
+#: modules/content_permissions/content_permissions.module:0
+msgid "content_permissions"
+msgstr "content_permissions"
+
+#: modules/content_permissions/content_permissions.install:7
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr "Merci de <a href=\"!url\">configurer vos droits relatifs aux champs</a> immédiatement. Par défaut, tous les champs sont inaccessibles."
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Content Permissions"
+msgstr "Droits sur le contenu"
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr "Configurer les droits d'accès au niveau des champs pour les champs CCK."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.hu.po
new file mode 100644
index 0000000..35e1496
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.hu.po
@@ -0,0 +1,52 @@
+# Hungarian translation of cck (6.x-2.0-rc10)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  content_permissions.module,v 1.5.2.2 2008/10/06 15:11:39 karens
+#  content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck (6.x-2.0-rc10)\n"
+"POT-Creation-Date: 2008-10-31 12:16-0500\n"
+"PO-Revision-Date: 2008-10-26 11:49-0500\n"
+"Last-Translator: Balogh Zoltán\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: modules/content_permissions/content_permissions.module:9
+msgid "edit "
+msgstr "szerkesztés "
+
+#: modules/content_permissions/content_permissions.module:9,10
+msgid "field_name"
+msgstr "field_name"
+
+#: modules/content_permissions/content_permissions.module:10
+msgid "view "
+msgstr "nézet "
+
+#: modules/content_permissions/content_permissions.module:0
+msgid "content_permissions"
+msgstr "content_permissions"
+
+#: modules/content_permissions/content_permissions.install:9
+msgid ""
+"Please <a href=\"!url\">configure your field permissions</a> "
+"immediately. All fields are inaccessible by default."
+msgstr ""
+"Érdemes azonnal <a href=\"!url\">beállítani a mezők "
+"jogosultságait</a>. Alapértelmezés szerint egyik mező sem érhető "
+"el."
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Content Permissions"
+msgstr "Tartalom Jogosultságok"
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr "Mezőszintű jogosultságok beállítása."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.nl.po
new file mode 100644
index 0000000..d1023df
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.nl.po
@@ -0,0 +1,56 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
+#  content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:25+0200\n"
+"PO-Revision-Date: 2009-06-03 14:25+0200\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: content_permissions.module:10
+msgid "edit "
+msgstr "bewerk"
+
+#: content_permissions.module:10;11
+msgid "field_name"
+msgstr "field_name"
+
+#: content_permissions.module:11
+msgid "view "
+msgstr "bekijk"
+
+#: content_permissions.module:0
+msgid "content_permissions"
+msgstr "content_permissions"
+
+#: content_permissions.install:9
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr ""
+"Stel <a href=\"!url\">je veldpermissies</a> direct in. Alle velden "
+"zijn standaard niet te bekijken."
+
+#: content_permissions.info:0
+msgid "Content Permissions"
+msgstr "Inhoudpermissies"
+
+#: content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr "Stel veldpermissies in voor CCK-velden."
+
+#: content_permissions.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.pot
new file mode 100644
index 0000000..1cdfa63
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.pot
@@ -0,0 +1,50 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-content_permissions)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
+#  content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/content_permissions/content_permissions.module:10
+msgid "edit "
+msgstr ""
+
+#: modules/content_permissions/content_permissions.module:10;11
+msgid "field_name"
+msgstr ""
+
+#: modules/content_permissions/content_permissions.module:11
+msgid "view "
+msgstr ""
+
+#: modules/content_permissions/content_permissions.module:0
+msgid "content_permissions"
+msgstr ""
+
+#: modules/content_permissions/content_permissions.install:9
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr ""
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Content Permissions"
+msgstr ""
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.sv.po
new file mode 100644
index 0000000..4c2371b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/content_permissions/translations/modules-content_permissions.sv.po
@@ -0,0 +1,55 @@
+# $Id$
+#
+# Swedish translation of Drupal (content_permissions)
+# Generated from files:
+#  content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
+#  content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Content Permissions 6.x\n"
+"POT-Creation-Date: 2009-05-27 13:07+0200\n"
+"PO-Revision-Date: 2009-05-27 13:15+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: content_permissions.module:10
+msgid "edit "
+msgstr "redigera"
+
+#: content_permissions.module:10;11
+msgid "field_name"
+msgstr "fält_namn"
+
+#: content_permissions.module:11
+msgid "view "
+msgstr "visa"
+
+#: content_permissions.module:0
+msgid "content_permissions"
+msgstr "content_permissions"
+
+#: content_permissions.install:9
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr "Var vänlig <a href=\"!url\">konfigurera dina rättigheter för fält</a> omedelbart. Alla fält är som standard ej tillgängliga."
+
+#: content_permissions.info:0
+msgid "Content Permissions"
+msgstr "Rättigheter för innehåll"
+
+#: content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr "Ange rättigheter per fältnivå för fält av typen CCK."
+
+#: content_permissions.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup-rtl.css b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup-rtl.css
new file mode 100644
index 0000000..0953e79
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup-rtl.css
@@ -0,0 +1,6 @@
+/* $Id$ */
+
+div.fieldgroup .content {
+  padding-left:0;
+  padding-right:1em;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup-simple.tpl.php b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup-simple.tpl.php
new file mode 100644
index 0000000..bf24fc3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup-simple.tpl.php
@@ -0,0 +1,33 @@
+<?php
+// $Id$
+
+/**
+ * @file fieldgroup-simple.tpl.php
+ * Default theme implementation to display the a 'simple-styled' fieldgroup.
+ *
+ * Available variables:
+ * - $group_name - The group name
+ * - $group_name_css - The css-compatible group name.
+ * - $label - The group label
+ * - $description - The group description
+ * - $content - The group content
+ *
+ * @see template_preprocess_fieldgroup_simple()
+ */
+?>
+<?php if ($content) : ?>
+<div class="fieldgroup <?php print $group_name_css; ?>">
+
+  <?php if ($label): ?>
+    <h2><?php print $label; ?></h2>
+
+    <?php if ($description): ?>
+      <div class="description"><?php print $description; ?></div>
+    <?php endif; ?>
+
+  <?php endif; ?>
+
+  <div class="content"><?php print $content; ?></div>
+
+</div>
+<?php endif; ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.css b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.css
new file mode 100644
index 0000000..bc86173
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.css
@@ -0,0 +1,8 @@
+/* $Id$ */
+
+div.fieldgroup {
+  margin:.5em 0 1em 0;
+}
+div.fieldgroup .content {
+  padding-left:1em;/*LTR*/
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.info
new file mode 100644
index 0000000..260520b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.info
@@ -0,0 +1,12 @@
+; $Id$
+name = Fieldgroup
+description = Create display groups for CCK fields.
+dependencies[] = content
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.install b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.install
new file mode 100644
index 0000000..da4b71f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.install
@@ -0,0 +1,316 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_install().
+ */
+function fieldgroup_install() {
+  drupal_load('module', 'content');
+  db_query("UPDATE {system} SET weight = 9 WHERE name = 'fieldgroup'");
+  drupal_install_schema('fieldgroup');
+  content_notify('install', 'fieldgroup');
+  variable_set('fieldgroup_schema_version', 6000);
+}
+
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function fieldgroup_uninstall() {
+  drupal_load('module', 'content');
+  drupal_uninstall_schema('fieldgroup');
+  content_notify('uninstall', 'fieldgroup');
+}
+
+/**
+ * Implementation of hook_enable().
+ *
+ * Notify content module when this module is enabled.
+ */
+function fieldgroup_enable() {
+  drupal_load('module', 'content');
+  content_notify('enable', 'fieldgroup');
+}
+
+/**
+ * Implementation of hook_disable().
+ *
+ * Notify content module when this module is disabled.
+ */
+function fieldgroup_disable() {
+  drupal_load('module', 'content');
+  content_notify('disable', 'fieldgroup');
+}
+
+/**
+ * Implementation of hook_schema.
+ */
+function fieldgroup_schema() {
+  $schema['content_group'] = array(
+    'fields' => array(
+      'group_type' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => 'standard'),
+      'type_name'  => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'group_name' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'label'      => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+      'settings'   => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE),
+      'weight'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+    ),
+    'primary key' => array('type_name', 'group_name'),
+  );
+
+  $schema['content_group_fields'] = array(
+    'fields' => array(
+      'type_name'  => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'group_name' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'field_name' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+    ),
+    'primary key' => array('type_name', 'group_name', 'field_name'),
+  );
+
+  return $schema;
+}
+
+/**
+ *  rename groups form "group-*" to "group_*"
+ */
+function fieldgroup_update_1() {
+  $ret = array();
+  if (!db_table_exists('node_group')) {
+    return $ret;
+  }
+  switch ($GLOBALS['db_type']) {
+    case 'pgsql':
+      $ret[] = update_sql("UPDATE {node_group} SET group_name = 'group_'||SUBSTRING(group_name FROM 7)");
+      $ret[] = update_sql("UPDATE {node_group_fields} SET group_name = 'group_'||SUBSTRING(group_name FROM 7)");
+      break;
+
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("UPDATE {node_group} SET group_name = CONCAT('group_', SUBSTRING(group_name FROM 7))");
+      $ret[] = update_sql("UPDATE {node_group_fields} SET group_name = CONCAT('group_', SUBSTRING(group_name FROM 7))");
+      break;
+  }
+  return $ret;
+}
+
+/**
+ * add display settings for the group
+ */
+function fieldgroup_update_2() {
+  $ret = array();
+  if (!db_table_exists('node_group')) {
+    return $ret;
+  }
+
+  // set settings column to accept larger values
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {node_group} CHANGE settings settings mediumtext NOT NULL');
+      break;
+
+    case 'pgsql':
+      db_change_column($ret, 'node_group', 'settings', 'settings', 'text', array('not null' => TRUE));
+      break;
+  }
+
+  // move description into the settings array, and add new settings
+  $result = db_query("SELECT * FROM {node_group}");
+  while ($group = db_fetch_array($result)) {
+    $settings = array();
+    $settings['form'] = unserialize($group['settings']);
+    $settings['form']['description'] = $group['description'];
+    $settings['display'] = array('collapsible' => 0, 'collapsed' => 0, 'description' => '');
+    $ret[] = update_sql("UPDATE {node_group} SET settings = '". db_escape_string(serialize($settings)) ."', description = '' WHERE group_name = '". $group['group_name'] ."'");
+  }
+
+  // drop description column
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {node_group} DROP description');
+      break;
+
+    case 'pgsql':
+      // Postgres only supports dropping of columns since 7.4
+      break;
+  }
+
+  return $ret;
+}
+
+
+/**
+ * converts group settings collapsible/collapsed => style
+ */
+function fieldgroup_update_3() {
+  $ret = array();
+  if (!db_table_exists('node_group')) {
+    return $ret;
+  }
+  $result = db_query("SELECT * FROM {node_group}");
+  while ($group = db_fetch_array($result)) {
+    $group['settings'] = unserialize($group['settings']);
+
+    if (!isset($group['settings']['form']['style'])) {
+      foreach (array('form', 'display') as $context) {
+        if (isset($group['settings'][$context]['collapsible']) && $group['settings'][$context]['collapsible']) {
+          if (isset($group['settings'][$context]['collapsed']) && $group['settings'][$context]['collapsed']) {
+            $group['settings'][$context]['style'] = 'fieldset_collapsed';
+          }
+          else {
+            $group['settings'][$context]['style'] = 'fieldset_collapsible';
+          }
+        }
+        else {
+          $group['settings'][$context]['style'] = 'fieldset';
+        }
+      }
+
+      $ret[] = update_sql("UPDATE {node_group} SET settings = '". db_escape_string(serialize($group['settings'])) ."' WHERE group_name = '". $group['group_name'] ."'");
+    }
+  }
+
+  return $ret;
+}
+
+/*
+ * Increases module weight, so that other modules can form_alter() cck forms before the fields
+ * are moved in groups
+ */
+function fieldgroup_update_4() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {system} SET weight = 9 WHERE name = 'fieldgroup'");
+  return $ret;
+}
+
+
+/**
+ * Start D6 upgrades
+ */
+
+/**
+ * Move fieldgroup tables to the content_* namespace.
+ */
+function fieldgroup_update_6000() {
+  if ($abort = content_check_update('fieldgroup')) {
+    return $abort;
+  }
+
+  $ret = array();
+
+  db_rename_table($ret, 'node_group', 'content_group');
+  db_rename_table($ret, 'node_group_fields', 'content_group_fields');
+  variable_set('fieldgroup_schema_version', 6000);
+  return $ret;
+}
+
+/*
+ * Increases module weight, so that other modules can form_alter() cck forms before the fields
+ * are moved in groups.
+ *
+ * Sites upgraded from D5 should have this already set.
+ * New D6 installs earlier than RC5 need this, as it was missing in fieldgroup_install.
+ */
+function fieldgroup_update_6001() {
+  if ($abort = content_check_update('fieldgroup')) {
+    return $abort;
+  }
+
+  $ret = array();
+  $ret[] = update_sql("UPDATE {system} SET weight = 9 WHERE name = 'fieldgroup'");
+  return $ret;
+}
+
+/**
+ * Same as 6000 : Move fieldgroup tables to the content_* namespace.
+ * This was missing in D6 releases earlier than RC5. Ensure we don't run this twice.
+ */
+function fieldgroup_update_6002() {
+  if ($abort = content_check_update('fieldgroup')) {
+    return $abort;
+  }
+
+  $ret = array();
+  if (db_table_exists('node_group')) {
+    db_rename_table($ret, 'node_group', 'content_group');
+    db_rename_table($ret, 'node_group_fields', 'content_group_fields');
+    variable_set('fieldgroup_schema_version', 6000);
+  }
+  return $ret;
+}
+
+/**
+ * Remove tinyint (127) limitation on group weights.
+ */
+function fieldgroup_update_6003() {
+  if ($abort = content_check_update('fieldgroup')) {
+    return $abort;
+  }
+
+  $ret = array();
+  db_change_field($ret, 'content_group', 'weight', 'weight', array('type' => 'int', 'not null' => TRUE, 'default' => 0));
+  return $ret;
+}
+
+/**
+ * Add 'type' property for fieldgroups.
+ */
+function fieldgroup_update_6004() {
+  if ($abort = content_check_update('fieldgroup')) {
+    return $abort;
+  }
+
+  $ret = array();
+  db_add_field($ret, 'content_group', 'group_type', array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => 'standard'));
+  $ret[] = update_sql("DELETE FROM {cache_content} WHERE cid='fieldgroup_data'");
+  return $ret;
+}
+
+/**
+ * Add the 'exclude from $content' display setting to all existing groups.
+ */
+function fieldgroup_update_6005() {
+  $ret = array();
+  $result = db_query("SELECT *  FROM {content_group}");
+  while ($type = db_fetch_array($result)) {
+    $new_settings = array();
+    $settings = unserialize($type['settings']);
+    $new_settings = $settings;
+    $display_settings = !empty($settings['display']) ? $settings['display'] : array();
+    if (!empty($display_settings)) {
+      foreach ($display_settings as $key => $val) {
+        $new_settings['display'][$key] = $val;
+        if ($key !== 'label' && is_array($val)) {
+          $new_settings['display'][$key]['exclude'] = 0;
+        }
+      }
+    }
+    else {
+      $new_settings['display'] = array(
+        'label' => array('format' => 'above'),
+        'full' => array('format' => 'default', 'exclude' => 0),
+        'teaser' => array('format' => 'default', 'exclude' => 0),
+        );
+    }
+    db_query("UPDATE {content_group} SET settings='%s' WHERE group_name='%s' AND type_name='%s'", serialize($new_settings), $type['group_name'], $type['type_name']);
+  }
+  return $ret;
+}
+
+/**
+ * Removed a previous version of "Remove orphaned fields" (6007), broken for db prefixes.
+ */
+function fieldgroup_update_6006() {
+  return array();
+}
+
+/**
+ * Remove orphaned fields (see http://drupal.org/node/339537).
+ */
+function fieldgroup_update_6007() {
+  $ret = array();
+  $ret[] = update_sql("DELETE FROM {content_group_fields} WHERE (field_name, type_name) NOT IN (SELECT field_name, type_name FROM {content_node_field_instance})");
+  return $ret;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.module
new file mode 100644
index 0000000..3e0fdec
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/fieldgroup.module
@@ -0,0 +1,913 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Create field groups for CCK fields.
+ *
+ * Hooks for other modules to intervene include:
+ * - hook_fieldgroup_view: Alter the group $element added to $node->content.
+ * - hook_fieldgroup_form: Alter the group portion of the node form.
+ * - hook_fieldgroup_types: Add additional fieldgroup group_types.
+ * - hook_fieldgroup_default_settings: Add additional fieldgroup default settings.
+ * - hook_fieldgroup_save: Do additional processing when a fieldgroup is saved.
+ */
+/**
+ * Implementation of hook_init().
+ */
+function fieldgroup_init() {
+  drupal_add_css(drupal_get_path('module', 'fieldgroup') .'/fieldgroup.css');
+}
+
+/**
+ * Implementation of hook_ctools_plugin_directory().
+ */
+function fieldgroup_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && $plugin == 'content_types') {
+    return 'panels/' . $plugin;
+  }
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function fieldgroup_menu() {
+  $items = array();
+
+  // Make sure this doesn't fire until content_types is working,
+  // needed to avoid errors on initial installation.
+  if (!defined('MAINTENANCE_MODE')) {
+    foreach (node_get_types() as $type) {
+      $type_name = $type->type;
+      $content_type = content_types($type_name);
+      $type_url_str = $content_type['url_str'];
+      $items['admin/content/node-type/'. $type_url_str .'/groups/%'] = array(
+        'title' => 'Edit group',
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('fieldgroup_group_edit_form', $type_name, 5),
+        'access arguments' => array('administer content types'),
+        'type' => MENU_CALLBACK,
+      );
+      $items['admin/content/node-type/'. $type_url_str .'/groups/%/remove'] = array(
+        'title' => 'Edit group',
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('fieldgroup_remove_group', $type_name, 5),
+        'access arguments' => array('administer content types'),
+        'type' => MENU_CALLBACK,
+      );
+    }
+  }
+  return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function fieldgroup_theme() {
+  return array(
+    'fieldgroup_simple' => array(
+      'template' => 'fieldgroup-simple',
+      'arguments' => array('element' => NULL),
+    ),
+    'fieldgroup_fieldset' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'fieldgroup_display_overview_form' => array(
+      'arguments' => array('form' => NULL),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_elements().
+ */
+function fieldgroup_elements() {
+  return array(
+    'fieldgroup_simple' => array(),
+    'fieldgroup_fieldset' => array('#collapsible' => FALSE, '#collapsed' => FALSE, '#value' => NULL,),
+  );
+}
+
+/**
+ * Implementation of hook_fieldapi().
+ */
+function fieldgroup_content_fieldapi($op, $field) {
+  switch ($op) {
+    case 'delete instance':
+      db_query("DELETE FROM {". fieldgroup_fields_tablename() ."} WHERE field_name = '%s' AND type_name = '%s'", $field['field_name'], $field['type_name']);
+      cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+      break;
+  }
+}
+
+function fieldgroup_group_edit_form(&$form_state, $type_name, $group_name) {
+  $content_type = content_types($type_name);
+  $groups = fieldgroup_groups($content_type['type']);
+
+  if (!$group = $groups[$group_name]) {
+    drupal_not_found();
+    exit;
+  }
+
+  $form['label'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Label'),
+    '#default_value' => $group['label'],
+    '#required' => TRUE,
+  );
+
+  // Set a default value for group type early in the form so it
+  // can be overridden by subsequent form elements added by other modules.
+  $group_type = !empty($group['group_type']) ? $group['group_type'] : 'standard';
+  $form['group_type'] = array('#type' => 'hidden', '#default_value' => $group_type);
+
+  $form['settings']['#tree'] = TRUE;
+  $form['settings']['form'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Form settings'),
+    '#description' => t('These settings apply to the group in the node editing form.'),
+  );
+  $form['settings']['form']['style'] = array(
+    '#type' => 'radios',
+    '#title' => t('Style'),
+    '#default_value' => $group['settings']['form']['style'],
+    '#options' => array(
+      'fieldset' => t('always open'),
+      'fieldset_collapsible' => t('collapsible'),
+      'fieldset_collapsed' => t('collapsed'),
+    )
+  );
+  $form['settings']['form']['description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Help text'),
+    '#default_value' => $group['settings']['form']['description'],
+    '#rows' => 5,
+    '#description' => t('Instructions to present to the user on the editing form.'),
+    '#required' => FALSE,
+  );
+  $form['settings']['display'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Display settings'),
+    '#description' => t('These settings apply to the group on node display.'),
+  );
+  $form['settings']['display']['description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Description'),
+    '#default_value' => $group['settings']['display']['description'],
+    '#rows' => 5,
+    '#description' => t('A description of the group.'),
+    '#required' => FALSE,
+  );
+
+  foreach (array_keys(content_build_modes()) as $key) {
+    $form['settings']['display'][$key]['format'] = array('#type' => 'value', '#value' => isset($group['settings']['display'][$key]['format']) ? $group['settings']['display'][$key]['format'] : 'fieldset');
+    $form['settings']['display'][$key]['exclude'] = array('#type' => 'value', '#value' => isset($group['settings']['display'][$key]['exclude']) ? $group['settings']['display'][$key]['exclude'] : 0);
+  }
+  $form['settings']['display']['label'] = array('#type' => 'value', '#value' => $group['settings']['display']['label']);
+  $form['weight'] = array('#type' => 'hidden', '#default_value' => $group['weight']);
+  $form['group_name'] = array('#type' => 'hidden', '#default_value' => $group_name);
+
+  $form['#content_type'] = $content_type;
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+    '#weight' => 10,
+  );
+
+  return $form;
+}
+
+function fieldgroup_group_edit_form_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+  $content_type = $form['#content_type'];
+  fieldgroup_save_group($content_type['type'], $form_values);
+  $form_state['redirect'] = 'admin/content/node-type/'. $content_type['url_str'] .'/fields';
+}
+
+function fieldgroup_remove_group(&$form_state, $type_name, $group_name) {
+  $content_type = content_types($type_name);
+  $groups = fieldgroup_groups($content_type['type']);
+  $group = isset($groups[$group_name]) ? $groups[$group_name] : '';
+
+  if (empty($group)) {
+    drupal_not_found();
+    exit;
+  }
+
+  $form['#submit'][] = 'fieldgroup_remove_group_submit';
+  $form['#content_type'] = $content_type;
+  $form['#group_name'] = $group_name;
+
+  return confirm_form($form,
+                  t('Are you sure you want to remove the group %label?',
+                  array('%label' => t($group['label']))),
+                  'admin/content/node-type/'. $content_type['url_str'] .'/fields', t('This action cannot be undone.'),
+                  t('Remove'), t('Cancel'));
+}
+
+function fieldgroup_remove_group_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+  $content_type = $form['#content_type'];
+  $group_name = $form['#group_name'];
+  fieldgroup_delete($content_type['type'], $group_name);
+  drupal_set_message(t('The group %group_name has been removed.', array('%group_name' => $group_name)));
+  $form_state['redirect'] = 'admin/content/node-type/'. $content_type['url_str'] .'/fields';
+}
+
+/**
+ * Returns all groups for a content type
+ */
+function fieldgroup_groups($content_type = '', $sorted = FALSE, $reset = FALSE) {
+  global $language;
+  static $groups, $groups_sorted;
+  if (!isset($groups) || $reset) {
+    if ($cached = cache_get('fieldgroup_data:'. $language->language, content_cache_tablename())) {
+      $data = $cached->data;
+      $groups = $data['groups'];
+      $groups_sorted = $data['groups_sorted'];
+    }
+    else {
+      $result = db_query("SELECT * FROM {". fieldgroup_tablename() ."} ORDER BY weight, group_name");
+      $groups = array();
+      $groups_sorted = array();
+      while ($group = db_fetch_array($result)) {
+        $group['settings'] = unserialize($group['settings']);
+        $group['fields'] = array();
+
+        // Allow external modules to translate field group strings.
+        $group_strings = array(
+          'label' => $group['label'],
+          'form_description' => $group['settings']['form']['description'],
+          'display_description' => $group['settings']['display']['description'],
+        );
+        drupal_alter('content_fieldgroup_strings', $group_strings, $group['type_name'], $group['group_name']);
+        $group['label'] = $group_strings['label'];
+        $group['settings']['form']['description'] = $group_strings['form_description'];
+        $group['settings']['display']['description'] = $group_strings['display_description'];
+
+        $groups[$group['type_name']][$group['group_name']] = $group;
+        $groups_sorted[$group['type_name']][] = &$groups[$group['type_name']][$group['group_name']];
+      }
+      //load fields
+      $result = db_query("SELECT nfi.*, ng.group_name FROM {". fieldgroup_tablename() ."} ng ".
+ "INNER JOIN {". fieldgroup_fields_tablename() ."} ngf ON ngf.type_name = ng.type_name AND ngf.group_name = ng.group_name ".
+ "INNER JOIN {". content_instance_tablename() ."} nfi ON nfi.field_name = ngf.field_name AND nfi.type_name = ngf.type_name ".
+ "WHERE nfi.widget_active = 1 ORDER BY nfi.weight");
+      while ($field = db_fetch_array($result)) {
+        // Allow external modules to translate field strings.
+        $field_strings = array(
+          'widget_label' => $field['label'],
+          'widget_description' => $field['description'],
+        );
+        drupal_alter('content_field_strings', $field_strings, $field['type_name'], $field['field_name']);
+        $field['label'] = $field_strings['widget_label'];
+        $field['description'] = $field_strings['widget_description'];
+
+        $groups[$field['type_name']][$field['group_name']]['fields'][$field['field_name']] = $field;
+      }
+      cache_set('fieldgroup_data:'. $language->language, array('groups' => $groups, 'groups_sorted' => $groups_sorted), content_cache_tablename());
+    }
+  }
+  if (empty($content_type)) {
+    return $groups;
+  }
+  elseif (empty($groups) || empty($groups[$content_type])) {
+    return array();
+  }
+  return $sorted ? $groups_sorted[$content_type] : $groups[$content_type];
+}
+
+
+function _fieldgroup_groups_label($content_type) {
+  $groups = fieldgroup_groups($content_type);
+
+  $labels[''] = '<'. t('none') .'>';
+  foreach ($groups as $group_name => $group) {
+    $labels[$group_name] = t($group['label']);
+  }
+  return $labels;
+}
+
+function _fieldgroup_field_get_group($content_type, $field_name) {
+  return db_result(db_query("SELECT group_name FROM {". fieldgroup_fields_tablename() ."} WHERE type_name = '%s' AND field_name = '%s'", $content_type, $field_name));
+}
+
+/**
+ * Implementation of hook_form_alter()
+ */
+function fieldgroup_form_alter(&$form, $form_state, $form_id) {
+  if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] .'_node_form' == $form_id) {
+    foreach (fieldgroup_groups($form['type']['#value']) as $group_name => $group) {
+      $form[$group_name] = array(
+        '#type' => 'fieldset',
+        '#title' => check_plain(t($group['label'])),
+        '#collapsed' => $group['settings']['form']['style'] == 'fieldset_collapsed',
+        '#collapsible' => in_array($group['settings']['form']['style'], array('fieldset_collapsed', 'fieldset_collapsible')),
+        '#weight' => $group['weight'],
+        '#description' => content_filter_xss(t($group['settings']['form']['description'])),
+        '#attributes' => array('class' => strtr($group['group_name'], '_', '-')),
+      );
+
+      $has_accessible_field = FALSE;
+      foreach ($group['fields'] as $field_name => $field) {
+        if (isset($form[$field_name])) {
+          $form[$group_name][$field_name] = $form[$field_name];
+          // Track whether this group has any accessible fields within it.
+          if (!isset($form[$field_name]['#access']) || $form[$field_name]['#access'] !== FALSE) {
+            $has_accessible_field = TRUE;
+          }
+          unset($form[$field_name]);
+        }
+      }
+      if (!empty($group['fields']) && !element_children($form[$group_name])) {
+        //hide the fieldgroup, because the fields are hidden too
+        unset($form[$group_name]);
+      }
+
+      if (!$has_accessible_field) {
+        // Hide the fieldgroup, because the fields are inaccessible.
+        $form[$group_name]['#access'] = FALSE;
+      }
+
+      // Allow other modules to alter the form.
+      // Can't use module_invoke_all because we want
+      // to be able to use a reference to $form and $form_state.
+      foreach (module_implements('fieldgroup_form') as $module) {
+        $function = $module .'_fieldgroup_form';
+        $function($form, $form_state, $form_id, $group);
+      }
+
+    }
+
+  }
+  // The group is only added here so it will appear in the export
+  // when using Content Copy.
+  elseif ($form_id == 'content_field_edit_form' && isset($form['widget'])) {
+    $content_type = content_types($form['type_name']['#value']);
+    $form['widget']['group'] = array(
+      '#type' => 'value',
+      '#value' => _fieldgroup_field_get_group($content_type['type'], $form['field_name']['#value']),
+    );
+  }
+  elseif ($form_id == 'content_field_overview_form') {
+    $form['#validate'][] = 'fieldgroup_field_overview_form_validate';
+    $form['#submit'][] = 'fieldgroup_field_overview_form_submit';
+  }
+  elseif ($form_id == 'content_display_overview_form' && !empty($form['#groups'])) {
+    $form['#submit'][] = 'fieldgroup_display_overview_form_submit';
+    if (!isset($form['submit'])) {
+      $form['submit'] = array('#type' => 'submit', '#value' => t('Save'), '#weight' => 10);
+    }
+  }
+  elseif ($form_id == 'content_field_remove_form') {
+    $form['#submit'][] = 'fieldgroup_field_remove_form_submit';
+  }
+}
+
+/**
+ * API for group name validation.
+ *
+ * Pulled into separate function to be re-usable.
+ */
+function fieldgroup_validate_name($group, $type_name) {
+  $errors = array();
+
+  // No label.
+  if (!$group['label']) {
+    $errors['label'][] = t('You need to provide a label.');
+  }
+
+  // No group name.
+  if (!$group['group_name']) {
+    $errors['group_name'][] = t('You need to provide a group name.');
+  }
+  // Group name validation.
+  else {
+    $group_name = $group['group_name'];
+    $group['group_type'] = !empty($group['group_type']) ? $group['group_type'] : 'standard';
+
+    // Add the 'group_' prefix.
+    if (substr($group_name, 0, 6) != 'group_') {
+      $group_name = 'group_'. $group_name;
+    }
+
+    // Invalid field name.
+    if (!preg_match('!^group_[a-z0-9_]+$!', $group_name)) {
+      $errors['group_name'][] = t('The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores.', array('%group_name' => $group_name));
+    }
+    if (strlen($group_name) > 32) {
+      $errors['group_name'][] = t('The group name %group_name is too long. The name is limited to 32 characters, including the \'group_\' prefix.', array('%group_name' => $group_name));
+    }
+
+    // Group name already exists.
+    $groups = fieldgroup_groups($type_name);
+    if (isset($groups[$group_name])) {
+      $errors['group_name'][] = t('The group name %group_name already exists.', array('%group_name' => $group_name));
+    }
+    if (empty($errors['group_name'])) {
+      $group['group_name'] = $group_name;
+    }
+  }
+  return array('group_name' => $group['group_name'], 'errors' => $errors);
+}
+
+function fieldgroup_field_overview_form_validate($form, &$form_state) {
+  $form_values = $form_state['values'];
+  $group = $form_values['_add_new_group'];
+
+  if (array_filter(array($group['label'], $group['group_name']))) {
+    $validation = fieldgroup_validate_name($group, $form['#type_name']);
+    if (!empty($validation['errors'])) {
+      foreach ($validation['errors'] as $type => $messages) {
+        foreach ($messages as $message) {
+          if ($type == 'label') {
+            form_set_error('_add_new_group][label', t('Add new group:') .' '. $message);
+          }
+          else {
+            form_set_error('_add_new_group][group_name', t('Add new group:') .' '. $message);
+          }
+        }
+      }
+    }
+    $group_name = $validation['group_name'];
+    form_set_value($form['_add_new_group']['group_name'], $group_name, $form_state);
+  }
+  else {
+    // Fail validation if attempt to nest fields under a new group without the
+    // proper information. Not raising an error would cause the nested fields
+    // to get weights the user doesn't expect.
+
+    foreach ($form_values as $key => $values) {
+      if ($values['parent'] == '_add_new_group') {
+        form_set_error('_add_new_group][label', t('Add new group: you need to provide a label.'));
+        form_set_error('_add_new_group][group_name', t('Add new group: you need to provide a group name.'));
+        break;
+      }
+    }
+  }
+}
+
+function fieldgroup_field_overview_form_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+  $type_name = $form['#type_name'];
+
+  // Create new group if needed.
+  if (!empty($form_values['_add_new_group']['label'])) {
+    $group = $form_values['_add_new_group'];
+    $group['settings'] = field_group_default_settings($group['group_type']);
+    fieldgroup_save_group($type_name, $group);
+    $new_group_name = $group['group_name'];
+  }
+
+  // Parse incoming rows.
+  $add_field_rows = array('_add_new_field', '_add_existing_field');
+  $field_rows = array_merge($form['#fields'], $add_field_rows);
+  foreach ($form_values as $key => $values) {
+    // If 'field' row: update field parenting.
+    if (in_array($key, $field_rows)) {
+      // If newly added fields were added to a group:
+      if (in_array($key, $add_field_rows)) {
+        // We replace the '_add_*_field' key with the actual name of
+        // the field that got added.
+        // content_field_overview_form_submit() placed those
+        // in $form_state['fields_added'] for us.
+        if (isset($form_state['fields_added'][$key])) {
+          $key = $form_state['fields_added'][$key];
+        }
+        else {
+          // No field was actually created : skip to next row.
+          continue;
+        }
+      }
+      // If the field was added to the newly created group, replace the
+      // '_add_new_group' value with the actual name of the group.
+      $parent = ($values['parent'] == '_add_new_group' && isset($new_group_name)) ? $new_group_name : $values['parent'];
+      // TODO: check the parent group does exist ?
+      fieldgroup_update_fields(array('field_name' => $key, 'group' => $parent, 'type_name' => $type_name));
+    }
+
+    // If 'group' row:  update groups weights
+    // (possible newly created group has already been taken care of).
+    elseif (in_array($key, $form['#groups'])) {
+      db_query("UPDATE {". fieldgroup_tablename() ."} SET weight = %d WHERE type_name = '%s' AND group_name = '%s'",
+        $values['weight'], $type_name, $key);
+    }
+  }
+
+  cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+}
+
+function field_group_default_settings($group_type) {
+  $settings = array(
+    'form' => array('style' => 'fieldset', 'description' => ''),
+    'display' => array('description' => '', 'label' => 'above'),
+  );
+  module_load_include('inc', 'content', 'includes/content.admin');
+  foreach (array_keys(content_build_modes()) as $key) {
+    $settings['display'][$key]['format'] = 'fieldset';
+    $settings['display'][$key]['exclude'] = 0;
+  }
+  // Allow other modules to add new default settings.
+  $settings = array_merge($settings, module_invoke_all('fieldgroup_default_settings', $group_type));
+  return $settings;
+}
+
+function fieldgroup_display_overview_form_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+  $groups = fieldgroup_groups($form['#type_name']);
+  foreach ($form_values as $key => $values) {
+    if (in_array($key, $form['#groups'])) {
+      $group = $groups[$key];
+      // We have some numeric keys here, so we can't use array_merge.
+      $group['settings']['display'] = $values + $group['settings']['display'];
+      fieldgroup_save_group($form['#type_name'], $group);
+    }
+  }
+}
+
+function fieldgroup_field_remove_form_submit($form, &$form_state) {
+  $form_values = $form_state['values'];
+  // TODO:
+  // - when a (non last) field is removed from a group, a 'ghost row' remains in the fields overview
+  // - when the last field is removed, the group disappears
+  // seems to be fixed when emptying the cache.
+  db_query("DELETE FROM {". fieldgroup_fields_tablename() ."} WHERE type_name = '%s' AND field_name = '%s'", $form_values['type_name'], $form_values['field_name']);
+}
+
+/**
+ * Implementation of hook_nodeapi().
+ */
+function fieldgroup_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
+  switch ($op) {
+    case 'view':
+      // Prevent against invalid 'nodes' built by broken 3rd party code.
+      if (isset($node->type)) {
+        // Build the node content element needed to render each fieldgroup.
+        foreach (fieldgroup_groups($node->type) as $group) {
+          fieldgroup_build_content($group, $node, $teaser, $page);
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * Build the node content element needed to render a fieldgroup.
+ *
+ * @param $group
+ *   The field group definition.
+ * @param $node
+ *   The node containing the field group to display. Can be a 'pseudo-node',
+ *   containing at least 'type', 'nid', 'vid', and the content for fields
+ *   required for the group.
+ * @param $teaser
+ * @param $page
+ *   Similar to hook_nodeapi('view').
+ *
+ * @see fieldgroup_nodeapi()
+ * @see fieldgroup_view_group()
+ */
+function fieldgroup_build_content($group, &$node, $teaser, $page) {
+  // NODE_BUILD_NORMAL is 0, and ('whatever' == 0) is TRUE, so we need a ===.
+  if ($node->build_mode === NODE_BUILD_NORMAL || $node->build_mode == NODE_BUILD_PREVIEW) {
+    $context = $teaser ? 'teaser' : 'full';
+  }
+  else {
+    $context = $node->build_mode;
+  }
+
+  $group_name = $group['group_name'];
+
+  // Do not include group labels when indexing content.
+  if ($context == NODE_BUILD_SEARCH_INDEX) {
+    $group['settings']['display']['label'] = 'hidden';
+  }
+  $label = $group['settings']['display']['label'] == 'above';
+  $element = array(
+    '#title' => $label ? check_plain(t($group['label'])) : '',
+    '#description' => $label ? content_filter_xss(t($group['settings']['display']['description'])) : '',
+  );
+  $format = isset($group['settings']['display'][$context]['format']) ? $group['settings']['display'][$context]['format'] : 'fieldset';
+
+  switch ($format) {
+    case 'simple':
+      $element['#type'] = 'fieldgroup_simple';
+      $element['#group_name'] = $group_name;
+      $element['#node'] = $node;
+      break;
+    case 'hidden':
+      $element['#access'] = FALSE;
+      break;
+    case 'fieldset_collapsed':
+      $element['#collapsed'] = TRUE;
+    case 'fieldset_collapsible':
+      $element['#collapsible'] = TRUE;
+    case 'fieldset':
+      $element['#type'] = 'fieldgroup_fieldset';
+      $element['#attributes'] = array('class' => 'fieldgroup '. strtr($group['group_name'], '_', '-'));
+      break;
+  }
+  foreach ($group['fields'] as $field_name => $field) {
+    if (isset($node->content[$field_name])) {
+      $element[$field_name] = $node->content[$field_name];
+    }
+  }
+
+  // Allow other modules to alter the group view.
+  // Can't use module_invoke_all because we want
+  // to be able to use a reference to $node and $element.
+  foreach (module_implements('fieldgroup_view') as $module) {
+    $function = $module .'_fieldgroup_view';
+    $function($node, $element, $group, $context);
+  }
+
+  // Unset the original field values now that we've moved them.
+  foreach ($group['fields'] as $field_name => $field) {
+    if (isset($node->content[$field_name])) {
+      unset($node->content[$field_name]);
+    }
+  }
+
+  // The wrapper lets us get the themed output for the group
+  // to populate the $GROUP_NAME_rendered variable for node templates,
+  // and hide it from the $content variable if needed.
+  // See fieldgroup_preprocess_node(), theme_fieldgroup_wrapper().
+  $wrapper = array(
+    'group' => $element,
+    '#weight' => $group['weight'],
+    '#post_render' => array('fieldgroup_wrapper_post_render'),
+    '#group_name' => $group_name,
+    '#type_name' => $node->type,
+    '#context' => $context,
+  );
+
+  $node->content[$group_name] = $wrapper;
+}
+
+/**
+ * Render a single field group, fully themed with label.
+ *
+ * To be used by third-party code (Panels, ...) that needs to output an
+ * isolated field group. Do *not* use inside node templates, use the
+ * $GROUP_NAME_rendered variables instead. You can also use the 'simple'
+ * style format and override the template fieldgroup-simple.tpl.php.
+ *
+ * By default, the field group is displayed using the settings defined for the
+ * 'full node' or 'teaser' contexts (depending on the value of the $teaser param).
+ * Set $node->build_mode to a different value to use a different context.
+ *
+ * Different settings can be specified by adjusting $group['settings']['display'].
+ *
+ * @param $group
+ *   The field group definition.
+ * @param $node
+ *   The node containing the field group to display. Can be a 'pseudo-node',
+ *   containing at least 'type', 'nid', 'vid', and the field data required
+ *   for the group.
+ * @param $teaser
+ * @param $page
+ *   Similar to hook_nodeapi('view').
+ * @return
+ *   The themed output for the field group.
+ *
+ * @see content_view_field()
+ */
+function fieldgroup_view_group($group, &$node, $teaser = FALSE, $page = FALSE) {
+  $group_name = $group['group_name'];
+  $field_types = _content_field_types();
+
+  // Clone the node to prevent from altering the original.
+  $node_copy = drupal_clone($node);
+
+  // Use 'full'/'teaser' if not specified otherwise.
+  $node_copy->build_mode = isset($node_copy->build_mode) ? $node_copy->build_mode : NODE_BUILD_NORMAL;
+
+  // Build the content element for individual fields in the field group.
+  if (!isset($node_copy->content)) {
+    $node_copy->content = array();
+  }
+  foreach (array_keys($group['fields']) as $field_name) {
+    $field = content_fields($field_name, $node_copy->type);
+
+    if (isset($node_copy->{$field_name})) {
+      $items = $node_copy->{$field_name};
+
+      // One-field equivalent to _content_field_invoke('sanitize').
+      $module = $field_types[$field['type']]['module'];
+      $function = $module .'_field';
+      if (function_exists($function)) {
+        $function('sanitize', $node_copy, $field, $items, $teaser, $page);
+        $node_copy->{$field_name} = $items;
+      }
+
+      $field_view = content_field('view', $node_copy, $field, $items, $teaser, $page);
+      // content_field('view') adds a wrapper to handle variables and 'excluded'
+      // fields for node templates. We bypass it and get the actual field.
+      $node_copy->content[$field_name] = $field_view[$field_name];
+    }
+  }
+
+  // Build the content element of the field group itself.
+  fieldgroup_build_content($group, $node_copy, $teaser, $page);
+
+  // fieldgroup_build_content() adds a wrapper to handle variables and 'excluded'
+  // groups for node templates. We bypass it and render the actual field group.
+  $output = drupal_render($node_copy->content[$group_name]['group']);
+
+  return $output;
+}
+
+/**
+ * Hide specified fields from the $content variable in node templates.
+ */
+function fieldgroup_wrapper_post_render($content, $element) {
+  $groups = fieldgroup_groups($element['#type_name']);
+  $group = $groups[$element['#group_name']];
+
+  // The display settings are not in quite the same place in the
+  // group and the field, so create the value the theme will expect.
+  $group['display_settings'] = $group['settings']['display'];
+  if (theme('content_exclude', $content, $group, $element['#context'])) {
+    return '';
+  }
+  return $content;
+}
+
+/*
+ * Get the group name for a field.
+ * If the field isn't in a group, FALSE will be returned.
+ * @return The name of the group, or FALSE.
+ */
+function fieldgroup_get_group($content_type, $field_name) {
+  foreach (fieldgroup_groups($content_type) as $group_name => $group) {
+    if (in_array($field_name, array_keys($group['fields']))) {
+      return $group_name;
+    }
+  }
+  return FALSE;
+}
+
+/**
+ *  Implementation of hook_node_type()
+ *  React to change in node types
+ */
+function fieldgroup_node_type($op, $info) {
+  if ($op == 'update' && !empty($info->old_type) && $info->type != $info->old_type) {
+    // update the tables
+    db_query("UPDATE {". fieldgroup_tablename() ."} SET type_name='%s' WHERE type_name='%s'", array($info->type, $info->old_type));
+    db_query("UPDATE {". fieldgroup_fields_tablename() ."} SET type_name='%s' WHERE type_name='%s'", array($info->type, $info->old_type));
+    cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+  }
+  elseif ($op == 'delete') {
+    db_query("DELETE FROM {". fieldgroup_tablename() ."} WHERE type_name = '%s'", $info->type);
+    db_query("DELETE FROM {". fieldgroup_fields_tablename() ."} WHERE type_name = '%s'", $info->type);
+  }
+}
+
+function fieldgroup_types() {
+  $types = array('standard' => t('Standard group'));
+  // Allow other modules to add new group_types.
+  $types = array_merge($types, module_invoke_all('fieldgroup_types'));
+  return $types;
+}
+
+function fieldgroup_tablename($version = NULL) {
+  if (is_null($version)) {
+    $version = variable_get('fieldgroup_schema_version', 0);
+  }
+  return $version < 6000 ? 'node_group' : 'content_group';
+}
+
+function fieldgroup_fields_tablename($version = NULL) {
+  if (is_null($version)) {
+    $version = variable_get('fieldgroup_schema_version', 0);
+  }
+  return $version < 6000 ? 'node_group_fields' : 'content_group_fields';
+}
+
+/**
+ * CRUD API for fieldgroup module.
+ *
+ * @todo
+ * Make this into more of a real API for groups.
+ */
+/*
+ * Saves the given group for this content-type
+ */
+function fieldgroup_save_group($type_name, $group) {
+  $groups = fieldgroup_groups($type_name);
+
+  // Allow other modules to intervene when the group is saved.
+  foreach (module_implements('fieldgroup_save_group') as $module) {
+    $function = $module .'_fieldgroup_save_group';
+    $function($group);
+  }
+
+  if (!isset($groups[$group['group_name']])) {
+    // Accept group name from programmed submissions if valid.
+    db_query("INSERT INTO {". fieldgroup_tablename() ."} (group_type, type_name, group_name, label, settings, weight)".
+      " VALUES ('%s', '%s', '%s', '%s', '%s', %d)", $group['group_type'], $type_name, $group['group_name'], $group['label'], serialize($group['settings']), $group['weight']);
+    cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+    return SAVED_NEW;
+  }
+  else {
+    db_query("UPDATE {". fieldgroup_tablename() ."} SET group_type = '%s', label = '%s', settings = '%s', weight = %d ".
+             "WHERE type_name = '%s' AND group_name = '%s'",
+             $group['group_type'], $group['label'], serialize($group['settings']), $group['weight'], $type_name, $group['group_name']);
+    cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+    return SAVED_UPDATED;
+  }
+}
+
+function fieldgroup_update_fields($form_values) {
+  $default = _fieldgroup_field_get_group($form_values['type_name'], $form_values['field_name']);
+
+  if ($default != $form_values['group']) {
+    if ($form_values['group'] && !$default) {
+      db_query("INSERT INTO {". fieldgroup_fields_tablename() ."} (type_name, group_name, field_name) VALUES ('%s', '%s', '%s')", $form_values['type_name'], $form_values['group'], $form_values['field_name']);
+    }
+    elseif ($form_values['group']) {
+      db_query("UPDATE {". fieldgroup_fields_tablename() ."} SET group_name = '%s' WHERE type_name = '%s' AND field_name = '%s'", $form_values['group'], $form_values['type_name'], $form_values['field_name']);
+    }
+    else {
+      db_query("DELETE FROM {". fieldgroup_fields_tablename() ."} WHERE type_name = '%s' AND field_name = '%s'", $form_values['type_name'], $form_values['field_name']);
+    }
+    cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+  }
+}
+
+function fieldgroup_delete($content_type, $group_name) {
+  db_query("DELETE FROM {". fieldgroup_tablename() ."} WHERE  type_name = '%s' AND group_name = '%s'", $content_type, $group_name);
+  db_query("DELETE FROM {". fieldgroup_fields_tablename() ."} WHERE  type_name = '%s' AND group_name = '%s'", $content_type, $group_name);
+  cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+}
+
+/**
+ * Format a fieldgroup using a 'fieldset'.
+ *
+ * Derived from core's theme_fieldset, with no output if the content is empty.
+ */
+function theme_fieldgroup_fieldset($element) {
+  if (empty($element['#children']) && empty($element['#value'])) {
+    return '';
+  }
+
+  if ($element['#collapsible']) {
+    drupal_add_js('misc/collapse.js');
+
+    if (!isset($element['#attributes']['class'])) {
+      $element['#attributes']['class'] = '';
+    }
+
+    $element['#attributes']['class'] .= ' collapsible';
+    if ($element['#collapsed']) {
+      $element['#attributes']['class'] .= ' collapsed';
+    }
+  }
+  return '<fieldset'. drupal_attributes($element['#attributes']) .'>'. ($element['#title'] ? '<legend>'. $element['#title'] .'</legend>' : '') . (isset($element['#description']) && $element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '') . (!empty($element['#children']) ? $element['#children'] : '') . (isset($element['#value']) ? $element['#value'] : '') ."</fieldset>\n";
+}
+
+
+/**
+ * Process variables for fieldgroup.tpl.php.
+ *
+ * The $variables array contains the following arguments:
+ * - $group_name
+ * - $group_name_css
+ * - $label
+ * - $description
+ * - $content
+ *
+ * @see fieldgroup-simple.tpl.php
+ */
+function template_preprocess_fieldgroup_simple(&$vars) {
+  $element = $vars['element'];
+
+  $vars['group_name'] = $element['#group_name'];
+  $vars['group_name_css'] = strtr($element['#group_name'], '_', '-');
+  $vars['label'] = isset($element['#title']) ? $element['#title'] : '';;
+  $vars['description'] = isset($element['#description']) ? $element['#description'] : '';;
+  $vars['content'] = isset($element['#children']) ? $element['#children'] : '';
+  $vars['template_files'] = array(
+    'fieldgroup-simple-',
+    'fieldgroup-simple-'. $element['#group_name'],
+    'fieldgroup-simple-'. $element['#node']->type,
+    'fieldgroup-simple-'. $element['#group_name'] .'-'. $element['#node']->type,
+  );
+}
+
+/**
+ * Theme preprocess function for node.
+ *
+ * Adds $GROUP_NAME_rendered variables,
+ * containing the themed output for the whole group.
+ */
+function fieldgroup_preprocess_node(&$vars) {
+  $node = $vars['node'];
+
+  foreach (fieldgroup_groups($node->type) as $group_name => $group) {
+    // '#chilren' might not be set if the group is empty.
+    $vars[$group_name .'_rendered'] = isset($node->content[$group_name]['#children']) ? $node->content[$group_name]['#children'] : '';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/panels/content_types/content_fieldgroup.inc b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/panels/content_types/content_fieldgroup.inc
new file mode 100644
index 0000000..dc462c5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/panels/content_types/content_fieldgroup.inc
@@ -0,0 +1,164 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * This file provides a CTools content type for fieldgroups.
+ */
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function fieldgroup_content_fieldgroup_ctools_content_types() {
+  return array(
+    'title' => t('Content fieldgroup'),
+    'defaults' => array('label' => 'hidden', 'format' => 'simple', 'empty' => ''),
+  );
+}
+
+/**
+ * Return all fieldgroup content types available.
+ */
+function fieldgroup_content_fieldgroup_content_type_content_types() {
+  // This will hold all the individual fieldgroup content types.
+  $types = array();
+
+  // The outer loop goes through each node type with groups.
+  foreach (fieldgroup_groups() as $node_type_groups) {
+    // The inner loop gives us each fieldgroup on each node type with groups.
+    foreach ($node_type_groups as $group) {
+      // Skip field groups that are not of standard type.
+      if ($group['group_type'] != 'standard') {
+        continue;
+      }
+
+      // Name the content type a combination of fieldgroup and node type names.
+      $content_type_name = $group['type_name'] . ':' . $group['group_name'];
+
+      // Assemble the information about the content type.
+      $info = array(
+        'category' => t('Node'),
+        'icon' => 'icon_cck_field_group.png',
+        'title' => t('Field group: @group in @type', array(
+          '@group' => t($group['label']),
+          '@type' => node_get_types('name', $group['type_name']),
+        )),
+        'description' => t('All fields from this field group on the referenced node.'),
+        'required context' => new ctools_context_required(t('Node'), 'node', array('type' => array($group['type_name']))),
+      );
+
+      $types[$content_type_name] = $info;
+    }
+  }
+
+  return $types;
+}
+
+/**
+ * Output function for the 'fieldgroup' content type.
+ */
+function fieldgroup_content_fieldgroup_content_type_render($subtype, $conf, $panel_args, $context) {
+  if (!isset($context->data)) {
+    return;
+  }
+  $node = drupal_clone($context->data);
+
+  // Make sure old data doesn't cause problems:
+  if (empty($conf['label'])) {
+    $conf['label'] = 'hidden';
+  }
+  if (empty($conf['format'])) {
+    $conf['format'] = 'simple';
+  }
+
+  // Extract the node type and fieldgroup name from the subtype.
+  list($node_type, $group_name) = explode(':', $subtype, 2);
+
+  // Get a list of all fieldgroups for this node type.
+  $groups = fieldgroup_groups($node_type);
+
+  if (!isset($groups[$group_name])) {
+    return;
+  }
+  $group = $groups[$group_name];
+
+  // Render the field group.
+  $node->build_mode = NODE_BUILD_NORMAL;
+  $group['settings']['display']['label'] = $conf['label'] == 'normal' || !empty($conf['override_title']) ? 'hidden' : $conf['label'];
+  $group['settings']['display']['full']['format'] = $conf['format'];
+  $group['settings']['display']['full']['exclude'] = 0;
+  $output = fieldgroup_view_group($group, $node);
+
+  $block = new stdClass();
+  if ($conf['label'] == 'normal') {
+    $block->title = t($group['label']);
+  }
+  $block->content = !empty($output) ? $output : $conf['empty'];
+  return $block;
+}
+
+/**
+ * Returns a settings form for the custom type.
+ */
+function fieldgroup_content_fieldgroup_content_type_edit_form(&$form, &$form_state) {
+  $conf = $form_state['conf'];
+
+  $label_options = array(
+    'normal' => t('Block title'),
+    'above' => t('Above'),
+  );
+  $form['label'] = array(
+    '#type' => 'select',
+    '#title' => t('Field group label'),
+    '#default_value' => !empty($conf['label']) && isset($label_options[$conf['label']]) ? $conf['label'] : 'hidden',
+    '#options' => $label_options,
+    '#description' => t('Configure how the field group label is going to be displayed. This option takes no effect when "Override title" option is enabled, the specified block title is displayed instead.'),
+  );
+
+  $format_options = array(
+    'simple' => t('Simple'),
+    'fieldset' => t('Fieldset'),
+    'fieldset_collapsible' => t('Fieldset - Collapsible'),
+    'fieldset_collapsed' => t('Fieldset - Collapsed'),
+  );
+  $form['format'] = array(
+    '#type' => 'select',
+    '#title' => t('Field group format'),
+    '#default_value' => !empty($conf['format']) && isset($format_options[$conf['format']]) ? $conf['format'] : 'simple',
+    '#options' => $format_options,
+    '#description' => t('This option allows you to configure the field group format.'),
+  );
+
+  $form['empty'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Empty text'),
+    '#description' => t('Text to display if group has no data. Note that title will not display unless overridden.'),
+    '#rows' => 5,
+    '#default_value' => $conf['empty'],
+  );
+}
+
+function fieldgroup_content_fieldgroup_content_type_edit_form_submit(&$form, &$form_state) {
+  // Copy everything from our defaults.
+  foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+    $form_state['conf'][$key] = $form_state['values'][$key];
+  }
+}
+
+/**
+ * Admin title for fieldgroup content type.
+ */
+function fieldgroup_content_fieldgroup_content_type_admin_title($subtype, $conf, $context) {
+  // Extract the node type and fieldgroup name from the subtype.
+  list($node_type, $group_name) = explode(':', $subtype, 2);
+
+  // Get information about this field group for this node type.
+  $groups = fieldgroup_groups($node_type);
+  $group = $groups[$group_name];
+
+  return t('"@s" field group: @group in @type', array(
+    '@s' => $context->identifier,
+    '@group' => t($group['label']),
+    '@type' => node_get_types('name', $node_type),
+  ));
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/panels/content_types/icon_cck_field_group.png b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/panels/content_types/icon_cck_field_group.png
new file mode 100644
index 0000000..8459443
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/panels/content_types/icon_cck_field_group.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.de.po
new file mode 100644
index 0000000..3f6a582
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.de.po
@@ -0,0 +1,42 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:08+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:39
+msgid "@type: (fieldgroup) @fieldgroup"
+msgstr "@type: (Feldgruppe) @fieldgroup"
+
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:42
+msgid "All fields from this fieldgroup on the referenced node."
+msgstr "Alle Felder einer Feldgruppe auf dem referenzierten Beitrag."
+
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:119
+msgid "\"@s\" fieldgroup (@name)"
+msgstr "„@s“ Feldgruppe (@name)"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.pot
new file mode 100644
index 0000000..d97357a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.pot
@@ -0,0 +1,31 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-fieldgroup-panels-content_types)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from file: content_fieldgroup.inc,v 1.1.2.1 2009/04/29 18:34:46 karens
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:39
+msgid "@type: (fieldgroup) @fieldgroup"
+msgstr ""
+
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:42
+msgid "All fields from this fieldgroup on the referenced node."
+msgstr ""
+
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:119
+msgid "\"@s\" fieldgroup (@name)"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.de.po
new file mode 100644
index 0000000..b9af710
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.de.po
@@ -0,0 +1,151 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:06+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:30
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr "Alle Felder einer Feldgruppe auf dem referenzierten Beitrag."
+
+#: modules/fieldgroup/fieldgroup.panels.inc:32
+msgid "Node context"
+msgstr "Beitragskontext"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:91
+msgid "@group_label (@group_type_name)"
+msgstr "@group_label (@group_type_name)"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:102
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "Feldgruppe"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:128
+msgid "\"@s\" fieldgroup @name"
+msgstr "„@s“ Feldgruppe @name"
+
+#: modules/fieldgroup/fieldgroup.module:130
+msgid "Form settings"
+msgstr "Formulareinstellungen"
+
+#: modules/fieldgroup/fieldgroup.module:131
+msgid "These settings apply to the group in the node editing form."
+msgstr "Diese Einstellungen gelten für die Gruppe im Bearbeitungsformular des Beitrages."
+
+#: modules/fieldgroup/fieldgroup.module:135
+msgid "Style"
+msgstr "Darstellung"
+
+#: modules/fieldgroup/fieldgroup.module:138
+msgid "always open"
+msgstr "Immer geöffnet"
+
+#: modules/fieldgroup/fieldgroup.module:139
+msgid "collapsible"
+msgstr "Zusammenklappbar"
+
+#: modules/fieldgroup/fieldgroup.module:140
+msgid "collapsed"
+msgstr "Zusammengeklappt"
+
+#: modules/fieldgroup/fieldgroup.module:148
+msgid "Instructions to present to the user on the editing form."
+msgstr "Eine Hilfestellung, die dem Benutzer im Bearbeitungsformular angezeigt wird."
+
+#: modules/fieldgroup/fieldgroup.module:153
+msgid "Display settings"
+msgstr "Anzeigeeinstellungen"
+
+#: modules/fieldgroup/fieldgroup.module:154
+msgid "These settings apply to the group on node display."
+msgstr "Diese Einstellungen gelten bei der Beitragsanzeige für die Gruppe."
+
+#: modules/fieldgroup/fieldgroup.module:161
+msgid "A description of the group."
+msgstr "Eine Beschreibung der Gruppe."
+
+#: modules/fieldgroup/fieldgroup.module:206
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Soll die Gruppe %label wirklich gelöscht werden?"
+
+#: modules/fieldgroup/fieldgroup.module:208
+msgid "This action cannot be undone."
+msgstr "Dieser Vorgang kann nicht rückgängig gemacht werden."
+
+#: modules/fieldgroup/fieldgroup.module:217
+msgid "The group %group_name has been removed."
+msgstr "Die Gruppe %group_name wurde gelöscht."
+
+#: modules/fieldgroup/fieldgroup.module:359
+msgid "You need to provide a label."
+msgstr "Eine Bezeichnung muss angegeben werden."
+
+#: modules/fieldgroup/fieldgroup.module:364
+msgid "You need to provide a group name."
+msgstr "Ein Gruppenname muss angegeben werden."
+
+#: modules/fieldgroup/fieldgroup.module:378
+msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Der Gruppenname %group_name ist ungültig. Der Name darf nur nicht-akzentuierte Kleinbuchstaben, Zahlen und Unterstriche enthalten."
+
+#: modules/fieldgroup/fieldgroup.module:381
+msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
+msgstr "Der Gruppenname %group_name ist zu lang. Der Name ist inklusive dem Präfix ‚group_‘ auf 32 Zeichen begrenzt."
+
+#: modules/fieldgroup/fieldgroup.module:387
+msgid "The group name %group_name already exists."
+msgstr "Der Gruppenname %group_name ist schon vorhanden."
+
+#: modules/fieldgroup/fieldgroup.module:406;409
+msgid "Add new group:"
+msgstr "Neue Gruppe hinzufügen:"
+
+#: modules/fieldgroup/fieldgroup.module:424
+msgid "Add new group: you need to provide a label."
+msgstr "Neue Gruppe hinzufügen: Eine Bezeichnung muss angegeben werden."
+
+#: modules/fieldgroup/fieldgroup.module:425
+msgid "Add new group: you need to provide a group name."
+msgstr "Neue Gruppe hinzufügen: Ein Gruppenname muss angegeben werden."
+
+#: modules/fieldgroup/fieldgroup.module:654
+msgid "Standard group"
+msgstr "Standard-Gruppe"
+
+#: modules/fieldgroup/fieldgroup.module:45;52
+msgid "Edit group"
+msgstr "Gruppe bearbeiten"
+
+#: modules/fieldgroup/fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "Feldgruppe"
+
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Create display groups for CCK fields."
+msgstr "Anzeigegruppen für CCK-Felder erstellen."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.fr.po
new file mode 100644
index 0000000..04ad703
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.fr.po
@@ -0,0 +1,110 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 19:20+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: modules/fieldgroup/fieldgroup.module:103
+msgid "Add"
+msgstr "Ajouter"
+
+#: modules/fieldgroup/fieldgroup.module:128
+msgid "Form settings"
+msgstr "Paramètres du formulaire"
+
+#: modules/fieldgroup/fieldgroup.module:129
+msgid "These settings apply to the group in the node editing form."
+msgstr "Ces paramètres s'appliquent au groupe dans le formulaire d'édition de nœud."
+
+#: modules/fieldgroup/fieldgroup.module:133
+msgid "Style"
+msgstr "Style"
+
+#: modules/fieldgroup/fieldgroup.module:136
+msgid "always open"
+msgstr "toujours déplié"
+
+#: modules/fieldgroup/fieldgroup.module:137
+msgid "collapsible"
+msgstr "repliable"
+
+#: modules/fieldgroup/fieldgroup.module:138
+msgid "collapsed"
+msgstr "replié"
+
+#: modules/fieldgroup/fieldgroup.module:146
+msgid "Instructions to present to the user on the editing form."
+msgstr "Instructions à présenter à l'utilisateur dans le formulaire d'édition."
+
+#: modules/fieldgroup/fieldgroup.module:151
+msgid "Display settings"
+msgstr "Paramètres d'affichage"
+
+#: modules/fieldgroup/fieldgroup.module:152
+msgid "These settings apply to the group on node display."
+msgstr "Ces paramètres s'appliquent au groupe à l'affichage du nœud."
+
+#: modules/fieldgroup/fieldgroup.module:159
+msgid "A description of the group."
+msgstr "Description du groupe."
+
+#: modules/fieldgroup/fieldgroup.module:194
+msgid "The group name %name already exists."
+msgstr "Le nom de groupe '%name' existe déjà."
+
+#: modules/fieldgroup/fieldgroup.module:198
+msgid "The group name %name is invalid."
+msgstr "Le nom de groupe '%name' est invalide."
+
+#: modules/fieldgroup/fieldgroup.module:233
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Êtes-vous sûr(e) de vouloir supprimer le groupe '%label' ?"
+
+#: modules/fieldgroup/fieldgroup.module:235
+msgid "This action cannot be undone."
+msgstr "Cette action est irréversible."
+
+#: modules/fieldgroup/fieldgroup.module:244
+msgid "The group %group_name has been removed."
+msgstr "Le groupe '%group_name' a été supprimé."
+
+#: modules/fieldgroup/fieldgroup.module:347
+msgid "Display in group"
+msgstr "Afficher dans le groupe"
+
+#: modules/fieldgroup/fieldgroup.module:350
+msgid "Select a group, in which the field will be displayed on the editing form."
+msgstr "Choisissez un groupe dans lequel apparaîtra le champ dans le formulaire d'édition."
+
+#: modules/fieldgroup/fieldgroup.module:29
+msgid "Add group"
+msgstr "Ajouter un groupe"
+
+#: modules/fieldgroup/fieldgroup.module:37;44
+msgid "Edit group"
+msgstr "Éditer le groupe"
+
+#: modules/fieldgroup/fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "fieldgroup"
+
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "Fieldgroup"
+
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Create field groups for CCK fields."
+msgstr "Créer des groupes de champs pour des champs CCK."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.hu.po
new file mode 100644
index 0000000..551dfbc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.hu.po
@@ -0,0 +1,163 @@
+# Hungarian translation of cck (6.x-2.0-rc10)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  fieldgroup.module,v 1.79.2.34 2008/10/06 15:11:39 karens
+#  fieldgroup.panels.inc,v 1.1.2.4 2008/10/06 17:21:51 karens
+#  fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck (6.x-2.0-rc10)\n"
+"POT-Creation-Date: 2008-10-31 12:16-0500\n"
+"PO-Revision-Date: 2008-10-26 16:40-0500\n"
+"Last-Translator: Balogh Zoltán\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: modules/fieldgroup/fieldgroup.module:196
+msgid "This action cannot be undone."
+msgstr "Ez a művelet nem visszavonható."
+
+#: modules/fieldgroup/fieldgroup.module:254
+msgid "none"
+msgstr "nincs"
+
+#: modules/fieldgroup/fieldgroup.module:126
+msgid "Style"
+msgstr "Stílus"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:10,66
+msgid "Content fieldgroup"
+msgstr "Tartalom mezőcsoport"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:47
+msgid "Content fieldgroup content goes here."
+msgstr "Tartalom mezőcsoport tartalma jön ide."
+
+#: modules/fieldgroup/fieldgroup.panels.inc:69
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr "Minden mező a mezőcsoportból a hivatkozott tartalmon."
+
+#: modules/fieldgroup/fieldgroup.panels.inc:90
+msgid "@group_label (@group_type_name)"
+msgstr "@group_label (@group_type_name)"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:108
+msgid ""
+"Text to display if group has no data. Note that title will not display "
+"unless overridden."
+msgstr ""
+"Megjelenítendő szöveg, ha a csoportnak nincs adata. A cím nem "
+"jelenik meg, ha nincs felülírva."
+
+#: modules/fieldgroup/fieldgroup.panels.inc:123
+msgid "\"@s\" fieldgroup @name"
+msgstr "„@s” mezőcsoport @name"
+
+#: modules/fieldgroup/fieldgroup.module:121
+msgid "Form settings"
+msgstr "Űrlap beállításai"
+
+#: modules/fieldgroup/fieldgroup.module:122
+msgid "These settings apply to the group in the node editing form."
+msgstr ""
+"Ezek a beállítások lesznek értelmezve a csoportra a "
+"tartalomszerkesztő űrlapon."
+
+#: modules/fieldgroup/fieldgroup.module:129
+msgid "always open"
+msgstr "mindig nyitott"
+
+#: modules/fieldgroup/fieldgroup.module:130
+msgid "collapsible"
+msgstr "összecsukható"
+
+#: modules/fieldgroup/fieldgroup.module:131
+msgid "collapsed"
+msgstr "összecsukott"
+
+#: modules/fieldgroup/fieldgroup.module:139
+msgid "Instructions to present to the user on the editing form."
+msgstr "Az űrlap szerkesztésekor megjelenő útmutató."
+
+#: modules/fieldgroup/fieldgroup.module:144
+msgid "Display settings"
+msgstr "Megjelenítési beállítások"
+
+#: modules/fieldgroup/fieldgroup.module:145
+msgid "These settings apply to the group on node display."
+msgstr ""
+"Ezek a beállítások lesznek értelmezve a csoportra a tartalom "
+"megjelenítésekor."
+
+#: modules/fieldgroup/fieldgroup.module:152
+msgid "A description of the group."
+msgstr "A csoport leírása."
+
+#: modules/fieldgroup/fieldgroup.module:194
+msgid "Are you sure you want to remove the group %label?"
+msgstr "%label csoport biztosan törölhető?"
+
+#: modules/fieldgroup/fieldgroup.module:205
+msgid "The group %group_name has been removed."
+msgstr "%group_name csoport törölve lett."
+
+#: modules/fieldgroup/fieldgroup.module:347
+msgid "You need to provide a label."
+msgstr "Meg kell adni egy címkét."
+
+#: modules/fieldgroup/fieldgroup.module:352
+msgid "You need to provide a group name."
+msgstr "Meg kell adni a csoport nevét."
+
+#: modules/fieldgroup/fieldgroup.module:366
+msgid ""
+"The group name %group_name is invalid. The name must include only "
+"lowercase unaccentuated letters, numbers, and underscores."
+msgstr ""
+"%group_name csoportnév érvénytelen. A név csak ékezet nélküli "
+"kisbetűket, számokat és aláhúzásjeleket tartalmazhat."
+
+#: modules/fieldgroup/fieldgroup.module:369
+msgid ""
+"The group name %group_name is too long. The name is limited to 32 "
+"characters, including the 'group_' prefix."
+msgstr ""
+"%group_name csoportnév túl hosszú. A név csak 32 karakter hosszú "
+"lehet, beleértve a „group_” előtagot is."
+
+#: modules/fieldgroup/fieldgroup.module:381
+msgid "The group name %group_name already exists."
+msgstr "%group_name nevű csoport már létezik."
+
+#: modules/fieldgroup/fieldgroup.module:400,403
+msgid "Add new group:"
+msgstr "Új csoport hozzáadása:"
+
+#: modules/fieldgroup/fieldgroup.module:418
+msgid "Add new group: you need to provide a label."
+msgstr "Új csoport hozzáadása: meg kell adni egy címkét."
+
+#: modules/fieldgroup/fieldgroup.module:419
+msgid "Add new group: you need to provide a group name."
+msgstr "Új csoport hozzáadása: meg kell adni a csoport nevét."
+
+#: modules/fieldgroup/fieldgroup.module:622
+msgid "Standard group"
+msgstr "Alapvető csoport"
+
+#: modules/fieldgroup/fieldgroup.module:39,46
+msgid "Edit group"
+msgstr "Csoport szerkesztése"
+
+#: modules/fieldgroup/fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "mezőcsoport"
+
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Create display groups for CCK fields."
+msgstr "Csoportokat hoz létre a CCK mezők számára."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.nl.po
new file mode 100644
index 0000000..51f892d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.nl.po
@@ -0,0 +1,192 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
+#  fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
+#  fieldgroup.module,v 1.79.2.45 2009/02/28 23:56:17 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:25+0200\n"
+"PO-Revision-Date: 2009-06-03 14:25+0200\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: fieldgroup.panels.inc:10;27
+msgid "Content fieldgroup"
+msgstr "Inhoudveldgroep"
+
+#: fieldgroup.panels.inc:30
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr "Alle velden van een veldgroep op de gerefereerde node."
+
+#: fieldgroup.panels.inc:31
+msgid "Node"
+msgstr "Node"
+
+#: fieldgroup.panels.inc:32
+msgid "Node context"
+msgstr "Node context"
+
+#: fieldgroup.panels.inc:91
+msgid "@group_label (@group_type_name)"
+msgstr "@group_label (@group_type_name)"
+
+#: fieldgroup.panels.inc:102 fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "Veldgroep"
+
+#: fieldgroup.panels.inc:112
+msgid "Text to display if group has no data. Note that title will not display unless overridden."
+msgstr ""
+"Tekst om weer te geven als de groep geen data heeft. Merk op dat de "
+"titel niet zal worden getoond tenzij anders ingesteld."
+
+#: fieldgroup.panels.inc:128
+msgid "\"@s\" fieldgroup @name"
+msgstr "\"@s\" veldgroep @name"
+
+#: fieldgroup.module:111
+msgid "Label"
+msgstr "Label"
+
+#: fieldgroup.module:124
+msgid "Form settings"
+msgstr "Formulierinstellingen"
+
+#: fieldgroup.module:125
+msgid "These settings apply to the group in the node editing form."
+msgstr "Deze instellingen zijn voor de groep in het node-bewerkformulier."
+
+#: fieldgroup.module:129
+msgid "Style"
+msgstr "Stijl"
+
+#: fieldgroup.module:132
+msgid "always open"
+msgstr "altijd open"
+
+#: fieldgroup.module:133
+msgid "collapsible"
+msgstr "uitklapbaar"
+
+#: fieldgroup.module:134
+msgid "collapsed"
+msgstr "uitgeklapt"
+
+#: fieldgroup.module:139
+msgid "Help text"
+msgstr "Helptekst"
+
+#: fieldgroup.module:142
+msgid "Instructions to present to the user on the editing form."
+msgstr "Instructies om aan de gebruiker te tonen bij het bewerkformulier."
+
+#: fieldgroup.module:147
+msgid "Display settings"
+msgstr "Weergaveinstellingen"
+
+#: fieldgroup.module:148
+msgid "These settings apply to the group on node display."
+msgstr "Deze instellingen zijn voor de groep van de node-weergave."
+
+#: fieldgroup.module:152
+msgid "Description"
+msgstr "Beschrijving"
+
+#: fieldgroup.module:155
+msgid "A description of the group."
+msgstr "Een beschrijving van de groep"
+
+#: fieldgroup.module:171;335
+msgid "Save"
+msgstr "Opslaan"
+
+#: fieldgroup.module:200
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Weet je zeker dat je de groep %label wilt verwijderen?"
+
+#: fieldgroup.module:202
+msgid "This action cannot be undone."
+msgstr "Deze actie kan niet ongedaan worden gemaakt."
+
+#: fieldgroup.module:203
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: fieldgroup.module:203
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: fieldgroup.module:211
+msgid "The group %group_name has been removed."
+msgstr "De groep %group is verwijderd."
+
+#: fieldgroup.module:260
+msgid "none"
+msgstr "geen"
+
+#: fieldgroup.module:353
+msgid "You need to provide a label."
+msgstr "Je moet een label opgeven."
+
+#: fieldgroup.module:358
+msgid "You need to provide a group name."
+msgstr "Je moet een groepnaam opgeven."
+
+#: fieldgroup.module:372
+msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr ""
+"De groepnaam %group_name in niet toegestaan. De naam mag alleen kleine "
+"alfanumerieke karakters en underscores bevatten."
+
+#: fieldgroup.module:375
+msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
+msgstr ""
+"De groepnaam %group_name is te lang. De naam mag niet langer zijn dan "
+"32 karakters inclusief 'group_'-voorvoegsel."
+
+#: fieldgroup.module:381
+msgid "The group name %group_name already exists."
+msgstr "De groepnaam %group_name bestaat al."
+
+#: fieldgroup.module:400;403
+msgid "Add new group:"
+msgstr "Voeg nieuwe groep toe:"
+
+#: fieldgroup.module:418
+msgid "Add new group: you need to provide a label."
+msgstr "Voeg een nieuwe groep toe: je moet een label opgeven."
+
+#: fieldgroup.module:419
+msgid "Add new group: you need to provide a group name."
+msgstr "Voeg nieuwe groep toe: je moet een groepnaam opgeven."
+
+#: fieldgroup.module:648
+msgid "Standard group"
+msgstr "Standaardgroep"
+
+#: fieldgroup.module:39;46
+msgid "Edit group"
+msgstr "Bewerk groep"
+
+#: fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "veldgroep"
+
+#: fieldgroup.info:0
+msgid "Create display groups for CCK fields."
+msgstr "Maak weergavegroepen voor CCK-velden."
+
+#: fieldgroup.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.pot
new file mode 100644
index 0000000..167a0ed
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.pot
@@ -0,0 +1,142 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-fieldgroup)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
+#  fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
+#  fieldgroup.module,v 1.79.2.48 2009/04/29 20:51:52 karens
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:30
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.panels.inc:32
+msgid "Node context"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.panels.inc:91
+msgid "@group_label (@group_type_name)"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.panels.inc:102 modules/fieldgroup/fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.panels.inc:128
+msgid "\"@s\" fieldgroup @name"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:130
+msgid "Form settings"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:131
+msgid "These settings apply to the group in the node editing form."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:135
+msgid "Style"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:138
+msgid "always open"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:139
+msgid "collapsible"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:140
+msgid "collapsed"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:148
+msgid "Instructions to present to the user on the editing form."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:153
+msgid "Display settings"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:154
+msgid "These settings apply to the group on node display."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:161
+msgid "A description of the group."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:206
+msgid "Are you sure you want to remove the group %label?"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:208
+msgid "This action cannot be undone."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:217
+msgid "The group %group_name has been removed."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:359
+msgid "You need to provide a label."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:364
+msgid "You need to provide a group name."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:378
+msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:381
+msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:387
+msgid "The group name %group_name already exists."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:406;409
+msgid "Add new group:"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:424
+msgid "Add new group: you need to provide a label."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:425
+msgid "Add new group: you need to provide a group name."
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:654
+msgid "Standard group"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:45;52
+msgid "Edit group"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.module:0
+msgid "fieldgroup"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Create display groups for CCK fields."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.sv.po
new file mode 100644
index 0000000..c2fb9c3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/fieldgroup/translations/modules-fieldgroup.sv.po
@@ -0,0 +1,204 @@
+# $Id$
+#
+# Swedish translation of Drupal (fieldgroup)
+# Generated from files:
+#  fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
+#  content_fieldgroup.inc,v 1.1.2.1 2009/04/29 18:34:46 karens
+#  fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
+#  fieldgroup.module,v 1.79.2.48 2009/04/29 20:51:52 karens
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Fieldgroup 6.x\n"
+"POT-Creation-Date: 2009-05-27 13:16+0200\n"
+"PO-Revision-Date: 2009-05-27 13:39+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: fieldgroup.panels.inc:10;27
+#: panels/content_types/content_fieldgroup.inc:14
+msgid "Content fieldgroup"
+msgstr "Fältgrupp för innehåll"
+
+#: fieldgroup.panels.inc:30
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr "Alla fält från en fältgrupp på den hänvisade noden."
+
+#: fieldgroup.panels.inc:31
+#: panels/content_types/content_fieldgroup.inc:43
+msgid "Node"
+msgstr "Nod"
+
+#: fieldgroup.panels.inc:32
+msgid "Node context"
+msgstr "Sammanhang för nod"
+
+#: fieldgroup.panels.inc:91
+msgid "@group_label (@group_type_name)"
+msgstr "@group_label (@group_type_name)"
+
+#: fieldgroup.panels.inc:102
+#: fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "Fältgrupp"
+
+#: fieldgroup.panels.inc:112
+#: panels/content_types/content_fieldgroup.inc:102
+msgid "Text to display if group has no data. Note that title will not display unless overridden."
+msgstr "Text att visa om gruppen inte har något innehåll. Observera att titel inte kommer att visas om det inte åsidosätts."
+
+#: fieldgroup.panels.inc:128
+msgid "\"@s\" fieldgroup @name"
+msgstr "\"@s\" fältgrupp @name"
+
+#: fieldgroup.module:117
+msgid "Label"
+msgstr "Etikett"
+
+#: fieldgroup.module:130
+msgid "Form settings"
+msgstr "Inställningar för formulär"
+
+#: fieldgroup.module:131
+msgid "These settings apply to the group in the node editing form."
+msgstr "Dessa inställningar gäller för gruppen i redigeringsformuläret för noden."
+
+#: fieldgroup.module:135
+msgid "Style"
+msgstr "Stil"
+
+#: fieldgroup.module:138
+msgid "always open"
+msgstr "alltid utfälld"
+
+#: fieldgroup.module:139
+msgid "collapsible"
+msgstr "hopfällbar"
+
+#: fieldgroup.module:140
+msgid "collapsed"
+msgstr "hopfälld"
+
+#: fieldgroup.module:145
+msgid "Help text"
+msgstr "Hjälptext"
+
+#: fieldgroup.module:148
+msgid "Instructions to present to the user on the editing form."
+msgstr "Instruktioner som visas för användaren på redigeringsformuläret."
+
+#: fieldgroup.module:153
+msgid "Display settings"
+msgstr "Inställningar för visning"
+
+#: fieldgroup.module:154
+msgid "These settings apply to the group on node display."
+msgstr "Dessa inställningar gäller för gruppen på visningen av noden."
+
+#: fieldgroup.module:158
+msgid "Description"
+msgstr "Beskrivning"
+
+#: fieldgroup.module:161
+msgid "A description of the group."
+msgstr "En beskrivning av gruppen."
+
+#: fieldgroup.module:177;341
+msgid "Save"
+msgstr "Spara"
+
+#: fieldgroup.module:206
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Är du säker på att du vill ta bort gruppen %label?"
+
+#: fieldgroup.module:208
+msgid "This action cannot be undone."
+msgstr "Denna åtgärd kan inte ångras."
+
+#: fieldgroup.module:209
+msgid "Remove"
+msgstr "Ta bort"
+
+#: fieldgroup.module:209
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: fieldgroup.module:217
+msgid "The group %group_name has been removed."
+msgstr "Gruppen %group_name har tagits bort."
+
+#: fieldgroup.module:266
+msgid "none"
+msgstr "ingen"
+
+#: fieldgroup.module:359
+msgid "You need to provide a label."
+msgstr "Du måste ange en etikett."
+
+#: fieldgroup.module:364
+msgid "You need to provide a group name."
+msgstr "Du måste ange ett gruppnamn."
+
+#: fieldgroup.module:378
+msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Gruppnamnet %group_name är inte giltigt. Namnet får enbart bestå av små bokstäver som inte är accentuerade, siffor och understreck."
+
+#: fieldgroup.module:381
+msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
+msgstr "Gruppnamnet %group_name är för långt. Namnet får bestå av max 32 tecken, inklusive prefixet 'group_'."
+
+#: fieldgroup.module:387
+msgid "The group name %group_name already exists."
+msgstr "Gruppnamnet %group_name existerar redan."
+
+#: fieldgroup.module:406;409
+msgid "Add new group:"
+msgstr "Lägg till ny grupp:"
+
+#: fieldgroup.module:424
+msgid "Add new group: you need to provide a label."
+msgstr "Lägg till ny grupp: du måste ange en etikett."
+
+#: fieldgroup.module:425
+msgid "Add new group: you need to provide a group name."
+msgstr "Lägg till ny grupp: du måste ange ett gruppnamn."
+
+#: fieldgroup.module:654
+msgid "Standard group"
+msgstr "Standardgrupp"
+
+#: fieldgroup.module:45;52
+msgid "Edit group"
+msgstr "Redigera grupp"
+
+#: fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "fältgrupp"
+
+#: fieldgroup.info:0
+msgid "Create display groups for CCK fields."
+msgstr "Skapa visningsgrupper för fält av typen CCK."
+
+#: fieldgroup.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: panels/content_types/content_fieldgroup.inc:39
+msgid "@type: (fieldgroup) @fieldgroup"
+msgstr "@type: (fältgrupp) @fieldgroup"
+
+#: panels/content_types/content_fieldgroup.inc:42
+msgid "All fields from this fieldgroup on the referenced node."
+msgstr "Alla fält från denna fältgrup på den hänvisade noden."
+
+#: panels/content_types/content_fieldgroup.inc:119
+msgid "\"@s\" fieldgroup (@name)"
+msgstr "\"@s\" fältgrupp (@name)"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/help/nodereference.help.ini b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/help/nodereference.help.ini
new file mode 100644
index 0000000..fae42f8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/help/nodereference.help.ini
@@ -0,0 +1,8 @@
+; $Id$
+
+[advanced help settings]
+hide = TRUE
+
+[nodereference]
+title = Nodereference field
+parent = content%fields
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/help/nodereference.html b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/help/nodereference.html
new file mode 100644
index 0000000..a62e885
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/help/nodereference.html
@@ -0,0 +1,3 @@
+<p>The Nodereference field stores the nid of a related node. The title of the related node is usually displayed as the value of this field.</p>
+<p>The Nodereference field can use an autocomplete widget, or, when used with <a href="&topic:optionwidgets/optionwidgets&">Optionwidgets</a>, the available values can be presented to the end user in a drop-down select list, checkboxes, or radios.</p>
+<p>A Nodereference field can be used in Views to create a <a href="&topic:views/relationship&">Relationship</a> to another node, to allow you to use any field, argument, or filter from the related node in your view. </p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.info
new file mode 100644
index 0000000..fa38e36
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.info
@@ -0,0 +1,14 @@
+; $Id$
+name = Node Reference
+description = Defines a field type for referencing one node from another.
+dependencies[] = content
+dependencies[] = text
+dependencies[] = optionwidgets
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.install b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.install
new file mode 100644
index 0000000..aad591c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.install
@@ -0,0 +1,165 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_install().
+ */
+function nodereference_install() {
+  drupal_load('module', 'content');
+  content_notify('install', 'nodereference');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function nodereference_uninstall() {
+  drupal_load('module', 'content');
+  content_notify('uninstall', 'nodereference');
+}
+
+/**
+ * Implementation of hook_enable().
+ *
+ * Notify content module when this module is enabled.
+ */
+function nodereference_enable() {
+  drupal_load('module', 'content');
+  content_notify('enable', 'nodereference');
+}
+
+/**
+ * Implementation of hook_disable().
+ *
+ * Notify content module when this module is disabled.
+ */
+function nodereference_disable() {
+  drupal_load('module', 'content');
+  content_notify('disable', 'nodereference');
+}
+
+function nodereference_update_last_removed() {
+  return 3;
+}
+
+/**
+ * All fields must allow NULL values to indicate empty fields.
+ */
+function nodereference_update_6000(&$sandbox) {
+  include_once('./'. drupal_get_path('module', 'content') .'/content.install');
+  drupal_load('module', 'content');
+
+  $ret = array();
+
+  if (!isset($sandbox['progress'])) {
+    if ($abort = content_check_update('nodereference')) {
+      return $abort;
+    }
+
+    // Get the latest cache values and schema.
+    content_clear_type_cache(TRUE, TRUE);
+    $types = content_types_install();
+
+    if (empty($types)) {
+      return $ret;
+    }
+
+    $sandbox['fields'] = array();
+    foreach ($types as $type_name => $fields) {
+      foreach ($fields as $field) {
+        if ($field['type'] == 'nodereference') {
+          $sandbox['fields'][] = $field;
+        }
+      }
+    }
+
+    if (empty($sandbox['fields'])) {
+      return $ret;
+    }
+
+    $sandbox['progress'] = 0;
+    $sandbox['visited'] = array();
+  }
+
+  $field = $sandbox['fields'][$sandbox['progress']];
+
+  // We only want to process a field once -- if we hit it a second time,
+  // that means it's its own table and it should have already been updated.
+  if (!in_array($field['field_name'], $sandbox['visited'])) {
+    $db_info = content_database_info($field);
+    $table = $db_info['table'];
+    $attributes = $db_info['columns']['nid'];
+    $column = $attributes['column'];
+    $attributes['not null'] = FALSE;
+    db_change_field($ret, $table, $column, $column, array('type' => 'int', 'not null' => FALSE));
+    db_field_set_no_default($ret, $db_info['table'], $column);
+    $ret[] = update_sql("UPDATE {". $db_info['table'] ."} SET ". $column ." = NULL WHERE ". $column ." = 0");
+
+    $sandbox['visited'][] = $field['field_name'];
+  }
+
+  $sandbox['progress']++;
+  $ret['#finished'] = $sandbox['progress'] / count($sandbox['fields']);
+
+  return $ret;
+}
+
+/**
+ * Create an index by node reference column for all fields.
+ */
+function nodereference_update_6001(&$sandbox) {
+  include_once('./'. drupal_get_path('module', 'content') .'/content.install');
+  drupal_load('module', 'content');
+
+  $ret = array();
+
+  if (!isset($sandbox['progress'])) {
+    if ($abort = content_check_update('nodereference')) {
+      return $abort;
+    }
+
+    // Get the latest cache values and schema.
+    content_clear_type_cache(TRUE, TRUE);
+    $types = content_types_install();
+
+    if (empty($types)) {
+      return $ret;
+    }
+
+    $sandbox['fields'] = array();
+    foreach ($types as $type_name => $fields) {
+      foreach ($fields as $field) {
+        if ($field['type'] == 'nodereference') {
+          $sandbox['fields'][] = $field;
+        }
+      }
+    }
+
+    if (empty($sandbox['fields'])) {
+      return $ret;
+    }
+
+    $sandbox['progress'] = 0;
+    $sandbox['visited'] = array();
+  }
+
+  $field = $sandbox['fields'][$sandbox['progress']];
+
+  // We only want to process a field once -- if we hit it a second time,
+  // that means it's its own table and it should have already been updated.
+  if (!in_array($field['field_name'], $sandbox['visited'])) {
+    $db_info = content_database_info($field);
+    $table = $db_info['table'];
+    $attributes = $db_info['columns']['nid'];
+    $column = $attributes['column'];
+    if (!content_db_index_exists($table, $column)) {
+      db_add_index($ret, $table, $column, array($column));
+    }
+    $sandbox['visited'][] = $field['field_name'];
+  }
+
+  $sandbox['progress']++;
+  $ret['#finished'] = $sandbox['progress'] / count($sandbox['fields']);
+
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.module
new file mode 100644
index 0000000..1deda51
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.module
@@ -0,0 +1,1054 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Defines a field type for referencing one node from another.
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function nodereference_menu() {
+  $items = array();
+  $items['nodereference/autocomplete'] = array(
+    'title' => 'Nodereference autocomplete',
+    'page callback' => 'nodereference_autocomplete',
+    'access callback' => 'nodereference_autocomplete_access',
+    'access arguments' => array(2),
+    'type' => MENU_CALLBACK
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function nodereference_theme() {
+  return array(
+    'nodereference_select' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'nodereference_buttons' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'nodereference_autocomplete' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'nodereference_formatter_default' => array(
+      'arguments' => array('element'),
+    ),
+    'nodereference_formatter_plain' => array(
+      'arguments' => array('element'),
+    ),
+    'nodereference_formatter_full' => array(
+      'arguments' => array('element'),
+      'function' => 'theme_nodereference_formatter_full_teaser',
+    ),
+    'nodereference_formatter_teaser' => array(
+      'arguments' => array('element'),
+      'function' => 'theme_nodereference_formatter_full_teaser',
+    ),
+  );
+}
+
+/**
+ * Implementaion of hook_ctools_plugin_directory().
+ */
+function nodereference_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && $plugin == 'relationships') {
+    return 'panels/' . $plugin;
+  }
+}
+
+/**
+ * Implementation of hook_field_info().
+ */
+function nodereference_field_info() {
+  return array(
+    'nodereference' => array(
+      'label' => t('Node reference'),
+      'description' => t('Store the ID of a related node as an integer value.'),
+//      'content_icon' => 'icon_content_noderef.png',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_field_settings().
+ */
+function nodereference_field_settings($op, $field) {
+  switch ($op) {
+    case 'form':
+      $form = array();
+      $form['referenceable_types'] = array(
+        '#type' => 'checkboxes',
+        '#title' => t('Content types that can be referenced'),
+        '#multiple' => TRUE,
+        '#default_value' => is_array($field['referenceable_types']) ? $field['referenceable_types'] : array(),
+        '#options' => array_map('check_plain', node_get_types('names')),
+      );
+      if (module_exists('views')) {
+        $views = array('--' => '--');
+        $all_views = views_get_all_views();
+        foreach ($all_views as $view) {
+          // Only 'node' views that have fields will work for our purpose.
+          if ($view->base_table == 'node' && !empty($view->display['default']->display_options['fields'])) {
+            if ($view->type == 'Default') {
+              $views[t('Default Views')][$view->name] = $view->name;
+            }
+            else {
+              $views[t('Existing Views')][$view->name] = $view->name;
+            }
+          }
+        }
+
+        $form['advanced'] = array(
+           '#type' => 'fieldset',
+           '#title' => t('Advanced - Nodes that can be referenced (View)'),
+           '#collapsible' => TRUE,
+           '#collapsed' => !isset($field['advanced_view']) || $field['advanced_view'] == '--',
+         );
+        if (count($views) > 1) {
+          $form['advanced']['advanced_view'] = array(
+            '#type' => 'select',
+            '#title' => t('View used to select the nodes'),
+            '#options' => $views,
+            '#default_value' => isset($field['advanced_view']) ? $field['advanced_view'] : '--',
+            '#description' => t('<p>Choose the "Views module" view that selects the nodes that can be referenced.<br />Note:</p>') .
+              t('<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the "Content types" settings above. Use the view\'s "filters" section instead.</li><li>Use the view\'s "fields" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view\'s "sort criteria" section to determine the order in which candidate nodes will be displayed.</li></ul>'),
+          );
+          $form['advanced']['advanced_view_args'] = array(
+            '#type' => 'textfield',
+            '#title' => t('View arguments'),
+            '#default_value' => isset($field['advanced_view_args']) ? $field['advanced_view_args'] : '',
+            '#required' => FALSE,
+            '#description' => t('Provide a comma separated list of arguments to pass to the view.'),
+          );
+        }
+        else {
+          $form['advanced']['no_view_help'] = array(
+            '#value' => t('<p>The list of nodes that can be referenced can be based on a "Views module" view but no appropriate views were found. <br />Note:</p>') .
+              t('<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the "Content types" settings above. Use the view\'s "filters" section instead.</li><li>Use the view\'s "fields" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view\'s "sort criteria" section to determine the order in which candidate nodes will be displayed.</li></ul>'),
+          );
+        }
+      }
+      return $form;
+
+    case 'save':
+      $settings = array('referenceable_types');
+      if (module_exists('views')) {
+        $settings[] = 'advanced_view';
+        $settings[] = 'advanced_view_args';
+      }
+      return $settings;
+
+    case 'database columns':
+      $columns = array(
+        'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'index' => TRUE),
+      );
+      return $columns;
+
+    case 'views data':
+      $data = content_views_field_views_data($field);
+      $db_info = content_database_info($field);
+      $table_alias = content_views_tablename($field);
+
+      // Filter: swap the handler to the 'in' operator.
+      $data[$table_alias][$field['field_name'] .'_nid']['filter']['handler'] = 'content_handler_filter_many_to_one';
+      // Argument: use node.title for summaries.
+      $data["node_$table_alias"]['table']['join']['node'] = array(
+        'table' => 'node',
+        'field' => 'nid',
+        'left_table' => $table_alias,
+        'left_field' => $field['field_name'] .'_nid',
+      );
+      $data[$table_alias][$field['field_name'] .'_nid']['argument']['handler'] = 'content_handler_argument_reference';
+      $data[$table_alias][$field['field_name'] .'_nid']['argument']['name table'] = "node_$table_alias";
+      $data[$table_alias][$field['field_name'] .'_nid']['argument']['name field'] = 'title';
+      // Relationship: add a relationship for related node.
+      $data[$table_alias][$field['field_name'] .'_nid']['relationship'] = array(
+        'base' => 'node',
+        'field' => $db_info['columns']['nid']['column'],
+        'handler' => 'content_handler_relationship',
+        'label' => t($field['widget']['label']),
+        'content_field_name' => $field['field_name'],
+      );
+      return $data;
+  }
+}
+
+/**
+ * Implementation of hook_field().
+ */
+function nodereference_field($op, &$node, $field, &$items, $teaser, $page) {
+  static $sanitized_nodes = array();
+  
+  switch ($op) {
+    // When preparing a translation, load any translations of existing references.
+    case 'prepare translation':
+      $addition = array();
+      $addition[$field['field_name']] = array();
+      if (isset($node->translation_source->$field['field_name']) && is_array($node->translation_source->$field['field_name'])) {
+        foreach ($node->translation_source->$field['field_name'] as $key => $reference) {
+          $reference_node = node_load($reference['nid']);
+          // Test if the referenced node type is translatable and, if so,
+          // load translations if the reference is not for the current language.
+          // We can assume the translation module is present because it invokes 'prepare translation'.
+          if (translation_supported_type($reference_node->type) && !empty($reference_node->language) && $reference_node->language != $node->language && $translations = translation_node_get_translations($reference_node->tnid)) {
+            // If there is a translation for the current language, use it.
+            $addition[$field['field_name']][] = array(
+              'nid' => isset($translations[$node->language]) ? $translations[$node->language]->nid : $reference['nid'],
+            );
+          }
+        }
+      }
+      return $addition;
+
+    case 'validate':
+      // Extract nids to check.
+      $ids = array();
+      foreach ($items as $delta => $item) {
+        if (is_array($item) && !empty($item['nid'])) {
+          if (is_numeric($item['nid'])) {
+            $ids[] = $item['nid'];
+          }
+          else {
+            $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+            if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+            form_set_error($error_element, t("%name: invalid input.", array('%name' => t($field['widget']['label']))));
+          }
+        }
+      }
+      // Prevent performance hog if there are no ids to check.
+      if ($ids) {
+        $refs = _nodereference_potential_references($field, '', NULL, $ids);
+        foreach ($items as $delta => $item) {
+          if (is_array($item)) {
+            $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+            if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+            if (!empty($item['nid']) && !isset($refs[$item['nid']])) {
+              form_set_error($error_element, t("%name: this post can't be referenced.", array('%name' => t($field['widget']['label']))));
+            }
+          }
+        }
+      }
+      return $items;
+
+    case 'sanitize':
+      // We can't just check the node is 'referenceable', because Views-mode
+      // could rely on 'current user' (at edit time).
+
+      // Extract nids to check.
+      $ids = array();
+      foreach ($items as $delta => $item) {
+        if (is_array($item)) {
+          // Default to 'non accessible'.
+          $items[$delta]['safe'] = array();
+          if (!empty($item['nid']) && is_numeric($item['nid'])) {
+            $ids[] = $item['nid'];
+          }
+        }
+      }
+      if ($ids) {
+        // Load information about nids that we haven't already loaded during
+        // this page request.
+        $missing_ids = array_diff($ids, array_keys($sanitized_nodes));
+        if (!empty($missing_ids)) {
+          $where = array('n.nid in ('. db_placeholders($missing_ids) . ')');
+          if (!user_access('administer nodes')) {
+            $where[] = 'n.status = 1';
+          }
+          $result = db_query(db_rewrite_sql('SELECT n.nid, n.title, n.status FROM {node} n WHERE '. implode(' AND ', $where)), $missing_ids);
+          while ($row = db_fetch_array($result)) {
+            $sanitized_nodes[$row['nid']] = $row;
+          }
+        }
+        foreach ($items as $delta => $item) {
+          if (is_array($item) && !empty($item['nid']) && isset($sanitized_nodes[$item['nid']])) {
+            $items[$delta]['safe'] = $sanitized_nodes[$item['nid']];
+          }
+        }
+      }
+      return $items;
+  }
+}
+
+/**
+ * Implementation of hook_content_is_empty().
+ */
+function nodereference_content_is_empty($item, $field) {
+  if (empty($item['nid'])) {
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * Implementation of hook_field_formatter_info().
+ */
+function nodereference_field_formatter_info() {
+  return array(
+    'default' => array(
+      'label' => t('Title (link)'),
+      'field types' => array('nodereference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+    'plain' => array(
+      'label' => t('Title (no link)'),
+      'field types' => array('nodereference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+    'full' => array(
+      'label' => t('Full node'),
+      'field types' => array('nodereference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+    'teaser' => array(
+      'label' => t('Teaser'),
+      'field types' => array('nodereference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+  );
+}
+
+/**
+ * Theme function for 'default' nodereference field formatter.
+ */
+function theme_nodereference_formatter_default($element) {
+  $output = '';
+  if (!empty($element['#item']['safe']['nid'])) {
+    $output = l($element['#item']['safe']['title'], 'node/'. $element['#item']['safe']['nid']);
+    if (!$element['#item']['safe']['status']) {
+      $output = '<span class="node-unpublished"> '. t('(Unpublished)') ." $output</span>";
+    }
+  }
+  return $output;
+}
+
+/**
+ * Theme function for 'plain' nodereference field formatter.
+ */
+function theme_nodereference_formatter_plain($element) {
+  $output = '';
+  if (!empty($element['#item']['safe']['nid'])) {
+    $output = check_plain($element['#item']['safe']['title']);
+    if (!$element['#item']['safe']['status']) {
+      $output = '<span class="node-unpublished"> '. t('(Unpublished)') ." $output</span>";
+    }
+  }
+  return $output;
+}
+
+/**
+ * Proxy theme function for 'full' and 'teaser' nodereference field formatters.
+ */
+function theme_nodereference_formatter_full_teaser($element) {
+  static $recursion_queue = array();
+  $output = '';
+  if (!empty($element['#item']['safe']['nid'])) {
+    $nid = $element['#item']['safe']['nid'];
+    $node = $element['#node'];
+    $field = content_fields($element['#field_name'], $element['#type_name']);
+    // If no 'referencing node' is set, we are starting a new 'reference thread'
+    if (!isset($node->referencing_node)) {
+      $recursion_queue = array();
+    }
+    $recursion_queue[] = $node->nid;
+    if (in_array($nid, $recursion_queue)) {
+      // Prevent infinite recursion caused by reference cycles:
+      // if the node has already been rendered earlier in this 'thread',
+      // we fall back to 'default' (node title) formatter.
+      return theme('nodereference_formatter_default', $element);
+    }
+    if ($referenced_node = node_load($nid)) {
+      $referenced_node->referencing_node = $node;
+      $referenced_node->referencing_field = $field;
+      $output = node_view($referenced_node, $element['#formatter'] == 'teaser');
+    }
+  }
+  return $output;
+}
+
+/**
+ * Helper function for formatters.
+ *
+ * Store node titles collected in the curent request.
+ */
+function _nodereference_titles($nid, $known_title = NULL) {
+  static $titles = array();
+  if (!isset($titles[$nid])) {
+    $title = $known_title ? $known_title : db_result(db_query(db_rewrite_sql("SELECT n.title FROM {node} n WHERE n.nid=%d"), $nid));
+    $titles[$nid] = $title ? $title : '';
+  }
+  return $titles[$nid];
+}
+
+/**
+ * Implementation of hook_widget_info().
+ *
+ * We need custom handling of multiple values for the nodereference_select
+ * widget because we need to combine them into a options list rather
+ * than display multiple elements.
+ *
+ * We will use the content module's default handling for default value.
+ *
+ * Callbacks can be omitted if default handing is used.
+ * They're included here just so this module can be used
+ * as an example for custom modules that might do things
+ * differently.
+ */
+function nodereference_widget_info() {
+  return array(
+    'nodereference_select' => array(
+      'label' => t('Select list'),
+      'field types' => array('nodereference'),
+      'multiple values' => CONTENT_HANDLE_MODULE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+    'nodereference_buttons' => array(
+      'label' => t('Check boxes/radio buttons'),
+      'field types' => array('nodereference'),
+      'multiple values' => CONTENT_HANDLE_MODULE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+    'nodereference_autocomplete' => array(
+      'label' => t('Autocomplete text field'),
+      'field types' => array('nodereference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of FAPI hook_elements().
+ *
+ * Any FAPI callbacks needed for individual widgets can be declared here,
+ * and the element will be passed to those callbacks for processing.
+ *
+ * Drupal will automatically theme the element using a theme with
+ * the same name as the hook_elements key.
+ *
+ * Autocomplete_path is not used by text_widget but other widgets can use it
+ * (see nodereference and userreference).
+ */
+function nodereference_elements() {
+  return array(
+    'nodereference_select' => array(
+      '#input' => TRUE,
+      '#columns' => array('uid'), '#delta' => 0,
+      '#process' => array('nodereference_select_process'),
+    ),
+    'nodereference_buttons' => array(
+      '#input' => TRUE,
+      '#columns' => array('uid'), '#delta' => 0,
+      '#process' => array('nodereference_buttons_process'),
+    ),
+    'nodereference_autocomplete' => array(
+      '#input' => TRUE,
+      '#columns' => array('name'), '#delta' => 0,
+      '#process' => array('nodereference_autocomplete_process'),
+      '#autocomplete_path' => FALSE,
+      ),
+    );
+}
+
+/**
+ * Implementation of hook_widget_settings().
+ */
+function nodereference_widget_settings($op, $widget) {
+  switch ($op) {
+    case 'form':
+      $form = array();
+      $match = isset($widget['autocomplete_match']) ? $widget['autocomplete_match'] : 'contains';
+      $size = (isset($widget['size']) && is_numeric($widget['size'])) ? $widget['size'] : 60;
+      if ($widget['type'] == 'nodereference_autocomplete') {
+        $form['autocomplete_match'] = array(
+          '#type' => 'select',
+          '#title' => t('Autocomplete matching'),
+          '#default_value' => $match,
+          '#options' => array(
+            'starts_with' => t('Starts with'),
+            'contains' => t('Contains'),
+          ),
+          '#description' => t('Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes.'),
+        );
+        $form['size'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Size of textfield'),
+          '#default_value' => $size,
+          '#element_validate' => array('_element_validate_integer_positive'),
+          '#required' => TRUE,
+        );
+      }
+      else {
+        $form['autocomplete_match'] = array('#type' => 'hidden', '#value' => $match);
+        $form['size'] = array('#type' => 'hidden', '#value' => $size);
+      }
+      return $form;
+
+    case 'save':
+      return array('autocomplete_match', 'size');
+  }
+}
+
+/**
+ * Implementation of hook_widget().
+ *
+ * Attach a single form element to the form. It will be built out and
+ * validated in the callback(s) listed in hook_elements. We build it
+ * out in the callbacks rather than here in hook_widget so it can be
+ * plugged into any module that can provide it with valid
+ * $field information.
+ *
+ * Content module will set the weight, field name and delta values
+ * for each form element. This is a change from earlier CCK versions
+ * where the widget managed its own multiple values.
+ *
+ * If there are multiple values for this field, the content module will
+ * call this function as many times as needed.
+ *
+ * @param $form
+ *   the entire form array, $form['#node'] holds node information
+ * @param $form_state
+ *   the form_state, $form_state['values'][$field['field_name']]
+ *   holds the field's form values.
+ * @param $field
+ *   the field array
+ * @param $items
+ *   array of default values for this field
+ * @param $delta
+ *   the order of this item in the array of subelements (0, 1, 2, etc)
+ *
+ * @return
+ *   the form item for a single element for this field
+ */
+function nodereference_widget(&$form, &$form_state, $field, $items, $delta = 0) {
+  switch ($field['widget']['type']) {
+    case 'nodereference_select':
+      $element = array(
+        '#type' => 'nodereference_select',
+        '#default_value' => $items,
+      );
+      break;
+
+    case 'nodereference_buttons':
+      $element = array(
+        '#type' => 'nodereference_buttons',
+        '#default_value' => $items,
+      );
+      break;
+
+    case 'nodereference_autocomplete':
+      $element = array(
+        '#type' => 'nodereference_autocomplete',
+        '#default_value' => isset($items[$delta]) ? $items[$delta] : NULL,
+        '#value_callback' => 'nodereference_autocomplete_value',
+      );
+      break;
+  }
+  return $element;
+}
+
+/**
+ * Value for a nodereference autocomplete element.
+ *
+ * Substitute in the node title for the node nid.
+ */
+function nodereference_autocomplete_value($element, $edit = FALSE) {
+  $field_key  = $element['#columns'][0];
+  if (!empty($element['#default_value'][$field_key])) {
+    $nid = $element['#default_value'][$field_key];
+    $value = db_result(db_query(db_rewrite_sql('SELECT n.title FROM {node} n WHERE n.nid = %d'), $nid));
+    $value .= ' [nid:'. $nid .']';
+    return array($field_key => $value);
+  }
+  return array($field_key => NULL);
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function nodereference_select_process($element, $edit, $form_state, $form) {
+  // The nodereference_select widget doesn't need to create its own
+  // element, it can wrap around the optionwidgets_select element.
+  // This will create a new, nested instance of the field.
+  // Add a validation step where the value can be unwrapped.
+  $field_key  = $element['#columns'][0];
+  $element[$field_key] = array(
+    '#type' => 'optionwidgets_select',
+    '#default_value' => isset($element['#value']) ? $element['#value'] : '',
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#required' => $element['#required'],
+    '#description' => $element['#description'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+  if (empty($element[$field_key]['#element_validate'])) {
+    $element[$field_key]['#element_validate'] = array();
+  }
+  array_unshift($element[$field_key]['#element_validate'], 'nodereference_optionwidgets_validate');
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function nodereference_buttons_process($element, $edit, $form_state, $form) {
+  // The nodereference_select widget doesn't need to create its own
+  // element, it can wrap around the optionwidgets_select element.
+  // This will create a new, nested instance of the field.
+  // Add a validation step where the value can be unwrapped.
+  $field_key  = $element['#columns'][0];
+  $element[$field_key] = array(
+    '#type' => 'optionwidgets_buttons',
+    '#default_value' => isset($element['#value']) ? $element['#value'] : '',
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#required' => $element['#required'],
+    '#description' => $element['#description'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+  if (empty($element[$field_key]['#element_validate'])) {
+    $element[$field_key]['#element_validate'] = array();
+  }
+  array_unshift($element[$field_key]['#element_validate'], 'nodereference_optionwidgets_validate');
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ */
+function nodereference_autocomplete_process($element, $edit, $form_state, $form) {
+
+  // The nodereference autocomplete widget doesn't need to create its own
+  // element, it can wrap around the text_textfield element and add an autocomplete
+  // path and some extra processing to it.
+  // Add a validation step where the value can be unwrapped.
+  $field_key  = $element['#columns'][0];
+
+  $element[$field_key] = array(
+    '#type' => 'text_textfield',
+    '#default_value' => isset($element['#value']) ? $element['#value'] : '',
+    '#autocomplete_path' => 'nodereference/autocomplete/'. $element['#field_name'],
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#required' => $element['#required'],
+    '#description' => $element['#description'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+  if (empty($element[$field_key]['#element_validate'])) {
+    $element[$field_key]['#element_validate'] = array();
+  }
+  array_unshift($element[$field_key]['#element_validate'], 'nodereference_autocomplete_validate');
+
+  // Used so that hook_field('validate') knows where to flag an error.
+  $element['_error_element'] = array(
+    '#type' => 'value',
+    // Wrapping the element around a text_textfield element creates a
+    // nested element, so the final id will look like 'field-name-0-nid-nid'.
+    '#value' => implode('][', array_merge($element['#parents'], array($field_key, $field_key))),
+  );
+  return $element;
+}
+
+/**
+ * Validate a select/buttons element.
+ *
+ * Remove the wrapper layer and set the right element's value.
+ * We don't know exactly where this element is, so we drill down
+ * through the element until we get to our key.
+ *
+ * We use $form_state['values'] instead of $element['#value']
+ * to be sure we have the most accurate value when other modules
+ * like optionwidgets are using #element_validate to alter the value.
+ */
+function nodereference_optionwidgets_validate($element, &$form_state) {
+  $field_key  = $element['#columns'][0];
+
+  $value = $form_state['values'];
+  $new_parents = array();
+  foreach ($element['#parents'] as $parent) {
+    $value = $value[$parent];
+    // Use === to be sure we get right results if parent is a zero (delta) value.
+    if ($parent === $field_key) {
+      $element['#parents'] = $new_parents;
+      form_set_value($element, $value, $form_state);
+      break;
+    }
+    $new_parents[] = $parent;
+  }
+}
+
+/**
+ * Validate an autocomplete element.
+ *
+ * Remove the wrapper layer and set the right element's value.
+ * This will move the nested value at 'field-name-0-nid-nid'
+ * back to its original location, 'field-name-0-nid'.
+ */
+function nodereference_autocomplete_validate($element, &$form_state) {
+  $field_name = $element['#field_name'];
+  $type_name = $element['#type_name'];
+  $field = content_fields($field_name, $type_name);
+  $field_key  = $element['#columns'][0];
+  $delta = $element['#delta'];
+  $value = $element['#value'][$field_key];
+  $nid = NULL;
+  if (!empty($value)) {
+    preg_match('/^(?:\s*|(.*) )?\[\s*nid\s*:\s*(\d+)\s*\]$/', $value, $matches);
+    if (!empty($matches)) {
+      // Explicit [nid:n].
+      list(, $title, $nid) = $matches;
+      if (!empty($title) && ($n = node_load($nid)) && trim($title) != trim($n->title)) {
+        form_error($element[$field_key], t('%name: title mismatch. Please check your selection.', array('%name' => t($field['widget']['label']))));
+      }
+    }
+    else {
+      // No explicit nid.
+      $reference = _nodereference_potential_references($field, $value, 'equals', NULL, 1);
+      if (empty($reference)) {
+        form_error($element[$field_key], t('%name: found no valid post with that title.', array('%name' => t($field['widget']['label']))));
+      }
+      else {
+        // TODO:
+        // the best thing would be to present the user with an additional form,
+        // allowing the user to choose between valid candidates with the same title
+        // ATM, we pick the first matching candidate...
+        $nid = key($reference);
+      }
+    }
+  }
+  form_set_value($element, $nid, $form_state);
+}
+
+/**
+ * Implementation of hook_allowed_values().
+ */
+function nodereference_allowed_values($field) {
+  $references = _nodereference_potential_references($field);
+
+  $options = array();
+  foreach ($references as $key => $value) {
+    $options[$key] = $value['rendered'];
+  }
+
+  return $options;
+}
+
+/**
+ * Fetch an array of all candidate referenced nodes.
+ *
+ * This info is used in various places (allowed values, autocomplete results,
+ * input validation...). Some of them only need the nids, others nid + titles,
+ * others yet nid + titles + rendered row (for display in widgets).
+ * The array we return contains all the potentially needed information, and lets
+ * consumers use the parts they actually need.
+ *
+ * @param $field
+ *   The field description.
+ * @param $string
+ *   Optional string to filter titles on (used by autocomplete).
+ * @param $match
+ *   Operator to match filtered name against, can be any of:
+ *   'contains', 'equals', 'starts_with'
+ * @param $ids
+ *   Optional node ids to lookup (the $string and $match arguments will be
+ *   ignored).
+ * @param $limit
+ *   If non-zero, limit the size of the result set.
+ *
+ * @return
+ *   An array of valid nodes in the form:
+ *   array(
+ *     nid => array(
+ *       'title' => The node title,
+ *       'rendered' => The text to display in widgets (can be HTML)
+ *     ),
+ *     ...
+ *   )
+ */
+function _nodereference_potential_references($field, $string = '', $match = 'contains', $ids = array(), $limit = NULL) {
+  static $results = array();
+
+  // Create unique id for static cache.
+  $cid = $field['field_name'] .':'. $match .':'. ($string !== '' ? $string : implode('-', $ids)) .':'. $limit;
+  if (!isset($results[$cid])) {
+    $references = FALSE;
+    if (module_exists('views') && !empty($field['advanced_view']) && $field['advanced_view'] != '--') {
+      $references = _nodereference_potential_references_views($field, $string, $match, $ids, $limit);
+    }
+    // If the view doesn't exist, we got FALSE, and fallback to the regular 'standard mode'.
+
+    if ($references === FALSE) {
+      $references = _nodereference_potential_references_standard($field, $string, $match, $ids, $limit);
+    }
+
+    // Store the results.
+    $results[$cid] = !empty($references) ? $references : array();
+  }
+
+  return $results[$cid];
+}
+
+/**
+ * Helper function for _nodereference_potential_references():
+ * case of Views-defined referenceable nodes.
+ */
+function _nodereference_potential_references_views($field, $string = '', $match = 'contains', $ids = array(), $limit = NULL) {
+  $view_name = $field['advanced_view'];
+
+  if ($view = views_get_view($view_name)) {
+    // We add a display, and let it derive from the 'default' display.
+    // TODO: We should let the user pick a display in the fields settings - sort of requires AHAH...
+    $display = $view->add_display('content_references');
+    $view->set_display($display);
+
+    // TODO from merlinofchaos on IRC : arguments using summary view can defeat the style setting.
+    // We might also need to check if there's an argument, and set *its* style_plugin as well.
+    $view->display_handler->set_option('style_plugin', 'content_php_array_autocomplete');
+    $view->display_handler->set_option('row_plugin', 'fields');
+    // Used in content_plugin_style_php_array::render(), to get
+    // the 'field' to be used as title.
+    $view->display_handler->set_option('content_title_field', 'title');
+
+    // Additional options to let content_plugin_display_references::query()
+    // narrow the results.
+    $options = array(
+      'table' => 'node',
+      'field_string' => 'title',
+      'string' => $string,
+      'match' => $match,
+      'field_id' => 'nid',
+      'ids' => $ids,
+    );
+    $view->display_handler->set_option('content_options', $options);
+
+    // TODO : for consistency, a fair amount of what's below
+    // should be moved to content_plugin_display_references
+
+    // Limit result set size.
+    $limit = isset($limit) ? $limit : 0;
+    $view->display_handler->set_option('items_per_page', $limit);
+
+    // Get arguments for the view.
+    if (!empty($field['advanced_view_args'])) {
+      // TODO: Support Tokens using token.module ?
+      $view_args = array_map('trim', explode(',', $field['advanced_view_args']));
+    }
+    else {
+      $view_args = array();
+    }
+
+    // We do need title field, so add it if not present (unlikely, but...)
+    $fields = $view->get_items('field', $display);
+    if (!isset($fields['title'])) {
+      $view->add_item($display, 'field', 'node', 'title');
+    }
+
+    // If not set, make all fields inline and define a separator.
+    $options = $view->display_handler->get_option('row_options');
+    if (empty($options['inline'])) {
+      $options['inline'] = drupal_map_assoc(array_keys($view->get_items('field', $display)));
+    }
+    if (empty($options['separator'])) {
+      $options['separator'] = '-';
+    }
+    $view->display_handler->set_option('row_options', $options);
+
+    // Make sure the query is not cached
+    $view->is_cacheable = FALSE;
+
+    // Get the results.
+    $result = $view->execute_display($display, $view_args);
+  }
+  else {
+    $result = FALSE;
+  }
+
+  return $result;
+}
+
+/**
+ * Helper function for _nodereference_potential_references():
+ * referenceable nodes defined by content types.
+ */
+function _nodereference_potential_references_standard($field, $string = '', $match = 'contains', $ids = array(), $limit = NULL) {
+  $related_types = array();
+  $where = array();
+  $args = array();
+
+  if (is_array($field['referenceable_types'])) {
+    foreach (array_filter($field['referenceable_types']) as $related_type) {
+      $related_types[] = "n.type = '%s'";
+      $args[] = $related_type;
+    }
+  }
+
+  $where[] = implode(' OR ', $related_types);
+
+  if (!count($related_types)) {
+    return array();
+  }
+
+  if ($string !== '') {
+    $like = $GLOBALS["db_type"] == 'pgsql' ? "ILIKE" : "LIKE";
+    $match_clauses = array(
+      'contains' => "$like '%%%s%%'",
+      'equals' => "= '%s'",
+      'starts_with' => "$like '%s%%'",
+    );
+    $where[] = 'n.title '. (isset($match_clauses[$match]) ? $match_clauses[$match] : $match_clauses['contains']);
+    $args[] = $string;
+  }
+  elseif ($ids) {
+    $where[] = 'n.nid IN (' . db_placeholders($ids) . ')';
+    $args = array_merge($args, $ids);
+  }
+
+  $where_clause = $where ? 'WHERE ('. implode(') AND (', $where) .')' : '';
+  $sql = db_rewrite_sql("SELECT n.nid, n.title AS node_title, n.type AS node_type FROM {node} n $where_clause ORDER BY n.title, n.type");
+  $result = $limit ? db_query_range($sql, $args, 0, $limit) : db_query($sql, $args);
+  $references = array();
+  while ($node = db_fetch_object($result)) {
+    $references[$node->nid] = array(
+      'title' => $node->node_title,
+      'rendered' => check_plain($node->node_title),
+    );
+  }
+
+  return $references;
+}
+
+/**
+ * Check access to the menu callback of the autocomplete widget.
+ *
+ * Check for both 'edit' and 'view' access in the unlikely event
+ * a user has edit but not view access.
+ */
+function nodereference_autocomplete_access($field_name) {
+  return user_access('access content') && ($field = content_fields($field_name)) && isset($field['field_name']) && content_access('view', $field) && content_access('edit', $field);
+}
+
+/**
+ * Menu callback; Retrieve a pipe delimited string of autocomplete suggestions for existing users
+ */
+function nodereference_autocomplete($field_name, $string = '') {
+  $fields = content_fields();
+  $field = $fields[$field_name];
+  $match = isset($field['widget']['autocomplete_match']) ? $field['widget']['autocomplete_match'] : 'contains';
+  $matches = array();
+
+  $references = _nodereference_potential_references($field, $string, $match, array(), 10);
+  foreach ($references as $id => $row) {
+    // Add a class wrapper for a few required CSS overrides.
+    $matches[$row['title'] ." [nid:$id]"] = '<div class="reference-autocomplete">'. $row['rendered'] . '</div>';
+  }
+  drupal_json($matches);
+}
+
+/**
+ * Implementation of hook_node_types.
+ */
+function nodereference_node_type($op, $info) {
+  switch ($op) {
+    case 'update':
+      // Reflect type name changes to the 'referenceable types' settings.
+      if (!empty($info->old_type) && $info->old_type != $info->type) {
+        // content.module's implementaion of hook_node_type() has already
+        // refreshed _content_type_info().
+        $fields = content_fields();
+        $rebuild = FALSE;
+        foreach ($fields as $field_name => $field) {
+          if ($field['type'] == 'nodereference' && isset($field['referenceable_types'][$info->old_type])) {
+            $field['referenceable_types'][$info->type] = empty($field['referenceable_types'][$info->old_type]) ? 0 : $info->type;
+            unset($field['referenceable_types'][$info->old_type]);
+            content_field_instance_update($field, FALSE);
+            $rebuild = TRUE;
+          }
+        }
+
+        // Clear caches and rebuild menu only if any field has been updated.
+        if ($rebuild) {
+          content_clear_type_cache(TRUE);
+          menu_rebuild();
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * Theme preprocess function.
+ *
+ * Allows specific node templates for nodes displayed as values of a
+ * nodereference field with the 'full node' / 'teaser' formatters.
+ */
+function nodereference_preprocess_node(&$vars) {
+  // The 'referencing_field' attribute of the node is added by the 'teaser'
+  // and 'full node' formatters.
+  if (!empty($vars['node']->referencing_field)) {
+    $node = $vars['node'];
+    $field = $node->referencing_field;
+    $vars['template_files'][] = 'node-nodereference';
+    $vars['template_files'][] = 'node-nodereference-'. $field['field_name'];
+    $vars['template_files'][] = 'node-nodereference-'. $node->type;
+    $vars['template_files'][] = 'node-nodereference-'. $field['field_name'] .'-'. $node->type;
+  }
+}
+
+/**
+ * FAPI theme for an individual elements.
+ *
+ * The textfield or select is already rendered by the
+ * textfield or select themes and the html output
+ * lives in $element['#children']. Override this theme to
+ * make custom changes to the output.
+ *
+ * $element['#field_name'] contains the field name
+ * $element['#delta]  is the position of this element in the group
+ */
+function theme_nodereference_select($element) {
+  return $element['#children'];
+}
+
+function theme_nodereference_buttons($element) {
+  return $element['#children'];
+}
+
+function theme_nodereference_autocomplete($element) {
+  return $element['#children'];
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.rules.inc b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.rules.inc
new file mode 100644
index 0000000..7a9d4d5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/nodereference.rules.inc
@@ -0,0 +1,60 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provides additional rules support for nodereference fields.
+ */
+
+/**
+ * Implementation of hook_rules_action_info().
+ */
+function nodereference_rules_action_info() {
+  $info = array();
+  $info['nodereference_rules_action_load'] = array(
+    'label' => t('Load a referenced node'),
+    'arguments' => array(
+      'node' => array(
+        'type' => 'node',
+        'label' => t('Content containing the node reference field'),
+      ),
+    ),
+    'new variables' => array(
+      'referenced_node' => array(
+        'type' => 'node',
+        'label' => t('Referenced content'),
+      ),
+    ),
+    'module' => 'CCK',
+    'help' => t('Note that if the field has multiple values, only the first content node will be loaded.'),
+  );
+  return $info;
+}
+
+function nodereference_rules_action_load($node, $settings) {
+  if ($nid = $node->{$settings['field']}[0]['nid']) {
+    return array('referenced_node' => node_load(array('nid' => $nid)));
+  }
+}
+
+function nodereference_rules_action_load_form($settings, &$form) {
+  $settings += array('field' => '');
+  $options = content_rules_get_field_names_by_type('nodereference');
+  $form['settings']['field'] = array(
+    '#type' => 'select',
+    '#title' => t('Field'),
+    '#default_value' => $settings['field'],
+    '#options' => $options,
+    '#required' => TRUE,
+    '#disabled' => empty($options),
+    '#description' => empty($options) ? t('There are no nodereference fields defined.') : '',
+  );
+}
+
+/**
+ * Helps upgrading from the workflow-ng action
+ * "workflow_ng_action_load_referenced_node" to the equivalent rules action.
+ */
+function workflow_ng_action_load_referenced_node_upgrade(&$element) {
+  $element['#name'] = 'nodereference_rules_action_load';
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/panels/relationships/node_from_noderef.inc b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/panels/relationships/node_from_noderef.inc
new file mode 100644
index 0000000..74d47f5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/panels/relationships/node_from_noderef.inc
@@ -0,0 +1,76 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implements the node reference relationship for Panels.
+ */
+
+/**
+ * Implementation of hook_ctools_relationships().
+ */
+function nodereference_node_from_noderef_ctools_relationships() {
+  return array(
+    'title' => t('Node from reference'),
+    'keyword' => 'nodereference',
+    'description' => t('Adds a node from a node reference in a node context; if multiple nodes are referenced, this will get the first referenced node only.'),
+    'required context' => new ctools_context_required(t('Node'), 'node'),
+    'context' => 'nodereference_node_from_noderef_context',
+    'settings form' => 'nodereference_node_from_noderef_settings_form',
+    'settings form validate' => 'nodereference_node_from_noderef_settings_form_validate',
+  );
+}
+
+/**
+ * Return a new ctools context based on an existing context.
+ */
+function nodereference_node_from_noderef_context($context, $conf) {
+  $field = content_fields($conf['field_name']);
+
+  // If unset it wants a generic, unfilled context, which is just NULL.
+  if (empty($context->data)) {
+    $new_context = ctools_context_create_empty('node', NULL);
+  }
+  else if (isset($context->data->{$conf['field_name']}[0]['nid']) && ($nid = $context->data->{$conf['field_name']}[0]['nid'])) {
+    if ($node = node_load($nid)) {
+      $new_context = ctools_context_create('node', $node);
+    }
+  }
+
+  if (!empty($new_context)) {
+    // Have nodereference relationships limit CCK field availability as well.
+    $restrictions = array_keys(array_filter($field['referenceable_types']));
+    if ($restrictions) {
+      if (isset($new_context->restrictions['type'])) {
+        $new_context->restrictions['type'] = array_unique(array_merge($new_context->restrictions['type'], $restrictions));
+      }
+      else {
+        $new_context->restrictions['type'] = $restrictions;
+      }
+    }
+
+    return $new_context;
+  }
+}
+
+/**
+ * Settings form for the ctools relationship.
+ */
+function nodereference_node_from_noderef_settings_form($conf) {
+  $options = array();
+  foreach (content_fields() as $field) {
+    if ($field['type'] == 'nodereference') {
+      $options[$field['field_name']] = t($field['widget']['label']);
+    }
+  }
+  $form['field_name'] = array(
+    '#title' => t('Node reference field'),
+    '#type' => 'select',
+    '#options' => $options,
+    '#default_value' => isset($conf['field_name']) ? $conf['field_name'] : '',
+    '#prefix' => '<div class="clear-block">',
+    '#suffix' => '</div>',
+  );
+
+  return $form;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference-panels-relationships.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference-panels-relationships.de.po
new file mode 100644
index 0000000..310bd8c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference-panels-relationships.de.po
@@ -0,0 +1,42 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:10+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/nodereference/panels/relationships/node_from_noderef.inc:14
+msgid "Node from reference"
+msgstr "Beitrag der Referenz"
+
+#: modules/nodereference/panels/relationships/node_from_noderef.inc:16
+msgid "Adds a node from a node reference in a node context; if multiple nodes are referenced, this will get the first referenced node only."
+msgstr ""
+
+#: modules/nodereference/panels/relationships/node_from_noderef.inc:50
+msgid "Node reference field"
+msgstr "Beitragsreferenzfeld"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference-panels-relationships.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference-panels-relationships.pot
new file mode 100644
index 0000000..1232695
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference-panels-relationships.pot
@@ -0,0 +1,31 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-nodereference-panels-relationships)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from file: node_from_noderef.inc,v 1.1.2.1 2009/06/02 12:24:03 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/nodereference/panels/relationships/node_from_noderef.inc:14
+msgid "Node from reference"
+msgstr ""
+
+#: modules/nodereference/panels/relationships/node_from_noderef.inc:16
+msgid "Adds a node from a node reference in a node context; if multiple nodes are referenced, this will get the first referenced node only."
+msgstr ""
+
+#: modules/nodereference/panels/relationships/node_from_noderef.inc:50
+msgid "Node reference field"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.de.po
new file mode 100644
index 0000000..c8df9d5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.de.po
@@ -0,0 +1,124 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-03-09 22:59+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/nodereference/nodereference.rules.inc:15
+msgid "Load a referenced node"
+msgstr "Referenzierten Beitrag laden"
+
+#: modules/nodereference/nodereference.rules.inc:19
+msgid "Content containing the node reference field"
+msgstr "Der Inhalt der das Beitragsreferenzfeld enthält"
+
+#: modules/nodereference/nodereference.rules.inc:25
+msgid "Referenced content"
+msgstr "Referenzierter Inhalt"
+
+#: modules/nodereference/nodereference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first content node will be loaded."
+msgstr "Sollte ein Feld mehrere Werte enthalten, wird nur der erste Beitrag geladen."
+
+#: modules/nodereference/nodereference.rules.inc:50
+msgid "There are no nodereference fields defined."
+msgstr "Es sind keine Beitragsreferenzfelder vorhanden."
+
+#: modules/nodereference/nodereference.module:60
+msgid "Node reference"
+msgstr "Beitragsreferenz"
+
+#: modules/nodereference/nodereference.module:61
+msgid "Store the ID of a related node as an integer value."
+msgstr "Speichert die ID des zugehörigen Beitrages als ganzzahligen Wert."
+
+#: modules/nodereference/nodereference.module:75
+msgid "Content types that can be referenced"
+msgstr "Inhaltstypen, auf die referenziert werden kann"
+
+#: modules/nodereference/nodereference.module:97
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Erweitert - Beiträge, auf die referenziert werden kann (Ansicht)"
+
+#: modules/nodereference/nodereference.module:104
+msgid "View used to select the nodes"
+msgstr "Die zur Auswahl von Beiträgen verwendete Ansicht"
+
+#: modules/nodereference/nodereference.module:107
+#, fuzzy
+msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
+msgstr "<p>Wähle die „Views-Modul“-Ansicht das die Beiträge auswählt, die Referenziert werden können.<br />Hinweis:</p>"
+
+#: modules/nodereference/nodereference.module:108;121
+#, fuzzy
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr "<ul><li>Nur Ansichten mit Feldern werden für diesen Zweck nutzbar sein.</li><li>Dies wird die obigen Einstellungen der „Inhaltsttypen“ verwerfen. Stattdessen sollte hierfür der „Filter“-Bereich der Ansicht verwendet werden.</li><li>Um weitere Informationen über Beitragskandidaten für das Erstellungs-/Bearbeitungsformular anzuzeigen, kann das Ansichten-Feld verwendet werden.</li><li>Um die Reihenfolge der Beitragskandidaten festzulegen sollte das „Sortierkriterium“ von Ansichten v [...]
+
+#: modules/nodereference/nodereference.module:120
+msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:217
+msgid "%name: this post can't be referenced."
+msgstr "%name: Dieser Beitrag kann nicht referenziert werden."
+
+#: modules/nodereference/nodereference.module:242
+msgid "Title (link)"
+msgstr "Titel (Link)"
+
+#: modules/nodereference/nodereference.module:247
+msgid "Title (no link)"
+msgstr "Titel (kein Link)"
+
+#: modules/nodereference/nodereference.module:423
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
+msgstr "Die Methode zur Sammlung von Autovervollständigungsvorschlägen auswählen. Dabei ist zu beachten, dass <em>Enthält</em> auf Websites mit tausenden von Beiträgen große Performanceprobleme verursachen kann."
+
+#: modules/nodereference/nodereference.module:671
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: Der Titel ist ungültig. Bitte die Auswahl überprüfen."
+
+#: modules/nodereference/nodereference.module:678
+msgid "%name: found no valid post with that title."
+msgstr "%name: Kein gültiger Beitrag mit diesem Titel gefunden."
+
+#: modules/nodereference/nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr "Autovervollständigung der Beitragsreferenz"
+
+#: modules/nodereference/nodereference.module:0
+msgid "nodereference"
+msgstr "Beitragsreferenz"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Node Reference"
+msgstr "Beitragsreferenz"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Definiert einen Feldtyp, um einen Beitrag von einem anderen zu referenzieren."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.fr.po
new file mode 100644
index 0000000..8afec36
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.fr.po
@@ -0,0 +1,86 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 18:05+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: modules/nodereference/nodereference.module:71
+msgid "Node reference"
+msgstr "Référence de nœud"
+
+#: modules/nodereference/nodereference.module:72
+msgid "Store the ID of a related node as an integer value."
+msgstr "Enregistre l'identifiant d'un nœud associé, sous la forme d'une valeur entière."
+
+#: modules/nodereference/nodereference.module:90
+msgid "Content types that can be referenced"
+msgstr "Types de contenu pouvant être référencés"
+
+#: modules/nodereference/nodereference.module:101
+msgid "Existing Views"
+msgstr "Vues existantes"
+
+#: modules/nodereference/nodereference.module:108
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Avancé - Nœuds pouvant être référencés (Vue)"
+
+#: modules/nodereference/nodereference.module:114
+msgid "View used to select the nodes"
+msgstr "Vue utilisée pour choisir les nœuds"
+
+#: modules/nodereference/nodereference.module:117
+msgid "Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate no [...]
+msgstr "Choisissez la vue du module Views qui sélectionne les nœuds pouvant être référencés.<br />Notez que :<ul><li>seules les vues présentant des champs fonctionneront dans ce cadre </li><li>ceci effacera les paramètres de \"Types de contenus\" figurant ci-dessus. Utilisez à la place la section \"filtres\" de la vue ;</li><li>utilisez la section \"champs\" de la vue pour afficher des informations supplémentaires sur les nœuds candidats dans le formulaire de création/édition de nœud ;</ [...]
+
+#: modules/nodereference/nodereference.module:121
+msgid "View arguments"
+msgstr "Arguments de la vue"
+
+#: modules/nodereference/nodereference.module:124
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Fournit une liste d'arguments, séparés par des virgules, à transmettre à la vue."
+
+#: modules/nodereference/nodereference.module:175
+msgid "%name: This post can't be referenced."
+msgstr "Champ '%name' : cette publication ne peut être référencée."
+
+#: modules/nodereference/nodereference.module:200
+msgid "Title (link)"
+msgstr "Titre (avec lien)"
+
+#: modules/nodereference/nodereference.module:205
+msgid "Title (no link)"
+msgstr "Titre (sans lien)"
+
+#: modules/nodereference/nodereference.module:518
+msgid "%name: Title mismatch. Please check your selection."
+msgstr "Champ '%name' : incohérence au niveau du titre. Merci de vérifier votre sélection."
+
+#: modules/nodereference/nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr "Auto-complètement de la référence de nœud"
+
+#: modules/nodereference/nodereference.module:0
+msgid "nodereference"
+msgstr "nodereference"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Node Reference"
+msgstr "Node Reference"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Définit un type de champ qui permet d'établir des liens entre les nœuds."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.hu.po
new file mode 100644
index 0000000..17625b2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.hu.po
@@ -0,0 +1,123 @@
+# Hungarian translation of cck (6.x-2.0-rc10)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  nodereference.module,v 1.138.2.38 2008/10/06 15:11:39 karens
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck (6.x-2.0-rc10)\n"
+"POT-Creation-Date: 2008-10-31 12:16-0500\n"
+"PO-Revision-Date: 2008-10-26 16:40-0500\n"
+"Last-Translator: Balogh Zoltán\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: modules/nodereference/nodereference.rules.inc:15
+msgid "Load a referenced node"
+msgstr "Egy hivatkozott tartalom betöltése"
+
+#: modules/nodereference/nodereference.rules.inc:19
+msgid "Content containing the node reference field"
+msgstr "A tartalom, amely a hivatkozó mezőt tartalmazza"
+
+#: modules/nodereference/nodereference.rules.inc:25
+msgid "Referenced content"
+msgstr "Hivatkozott tartalom"
+
+#: modules/nodereference/nodereference.rules.inc:29
+msgid ""
+"Note that if the field has multiple values, only the first content "
+"node will be loaded."
+msgstr ""
+"Megjegyzés: Ha a mezőnek több értéke is lehet, akkor csak az "
+"első tartalom fog betöltődni."
+
+#: modules/nodereference/nodereference.rules.inc:50
+msgid "There are no nodereference fields defined."
+msgstr "Nincsenek tartalomra hivatkozó mezők meghatározva."
+
+#: modules/nodereference/nodereference.module:68
+msgid "Node reference"
+msgstr "Tartalomra hivatkozás"
+
+#: modules/nodereference/nodereference.module:69
+msgid "Store the ID of a related node as an integer value."
+msgstr "A hivatkozott tartalom azonosítójának tárolása egész számként."
+
+#: modules/nodereference/nodereference.module:87
+msgid "Content types that can be referenced"
+msgstr "Tartalomtípusok, melyekre hivatkozni lehet"
+
+#: modules/nodereference/nodereference.module:110
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Haladó - tartalmak, melyekre hivatkozni lehet (Nézet)"
+
+#: modules/nodereference/nodereference.module:116
+msgid "View used to select the nodes"
+msgstr "Nézet használata a tartalmak kiválasztásához"
+
+#: modules/nodereference/nodereference.module:119
+msgid ""
+"Choose the \"Views module\" view that selects the nodes that can be "
+"referenced.<br />Note:<ul><li>Only views that have fields will work "
+"for this purpose.</li><li>This will discard the \"Content types\" "
+"settings above. Use the view's \"filters\" section "
+"instead.</li><li>Use the view's \"fields\" section to display "
+"additional informations about candidate nodes on node creation/edition "
+"form.</li><li>Use the view's \"sort criteria\" section to determine "
+"the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+"A „Nézet modul” egyik nézetének kiválasztása, mely azokat a "
+"tartalmakat mutatja, melyekre hivatkozni "
+"lehet.<br>Megjegyzés:<ul><li>Itt csak olyan nézet működik, melynek "
+"vannak mezői.</li><li>Ez felülírja a fenti „Tartalomtípusok” "
+"beállítást. A nézet „szűrő” feltétele használható e "
+"helyett.</li><li>A nézet „mezők” része használható arra, hogy "
+"bővebb információkat jelenítsen meg a lehetséges tartalmakról a "
+"szerkesztő űrlapon.</li><li>A nézet „sorrend” része "
+"befolyásolja a lehetséges tartalmak megjelenítési "
+"sorrendjét.</li></ul>"
+
+#: modules/nodereference/nodereference.module:199
+msgid "%name: this post can't be referenced."
+msgstr "%name: erre a tartalomra nem lehet hivatkozni."
+
+#: modules/nodereference/nodereference.module:224
+msgid "Title (link)"
+msgstr "Cím (hivatkozással)"
+
+#: modules/nodereference/nodereference.module:229
+msgid "Title (no link)"
+msgstr "Cím (hivatkozás nélkül)"
+
+#: modules/nodereference/nodereference.module:624
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: a cím nem egyezik."
+
+#: modules/nodereference/nodereference.module:631
+msgid "%name: found no valid post with that title."
+msgstr "%name: nincs érvényes tartalom ezzel a címmel."
+
+#: modules/nodereference/nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr "Automatikusan kiegészülő tartalomhivatkozás"
+
+#: modules/nodereference/nodereference.module:0
+msgid "nodereference"
+msgstr "tartalomhivatozás"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Node Reference"
+msgstr "Tartalomra hivatkozás"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr ""
+"Olyan mezőtípust ad, amely a tartalomban egy másik tartalomra "
+"hivatkozik."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.nl.po
new file mode 100644
index 0000000..514ff86
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.nl.po
@@ -0,0 +1,193 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  nodereference.module,v 1.138.2.50 2009/03/18 21:00:58 yched
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:25+0200\n"
+"PO-Revision-Date: 2009-06-03 14:25+0200\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: nodereference.rules.inc:15
+msgid "Load a referenced node"
+msgstr "Laad een gerefereerde node"
+
+#: nodereference.rules.inc:19
+msgid "Content containing the node reference field"
+msgstr "Inhoud met het nodereferentieveld"
+
+#: nodereference.rules.inc:25
+msgid "Referenced content"
+msgstr "Gerefereerde inhoud"
+
+#: nodereference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first content node will be loaded."
+msgstr ""
+"Merk op dat als het veld meerdere waardes heeft, alleen de eerste "
+"inhoudnode zal worden geladen."
+
+#: nodereference.rules.inc:45
+msgid "Field"
+msgstr "Veld"
+
+#: nodereference.rules.inc:50
+msgid "There are no nodereference fields defined."
+msgstr "Er zijn geen nodereferentie velden."
+
+#: nodereference.module:60
+msgid "Node reference"
+msgstr "Nodereferentie"
+
+#: nodereference.module:61
+msgid "Store the ID of a related node as an integer value."
+msgstr "Bewaar de ID van een gerelateerde node als een integer-waarde."
+
+#: nodereference.module:75
+msgid "Content types that can be referenced"
+msgstr "Inhoudstypes waarnaar een referentie geplaatst kan worden"
+
+#: nodereference.module:87
+msgid "Default Views"
+msgstr "Standaard views"
+
+#: nodereference.module:90
+msgid "Existing Views"
+msgstr "Bestaande Views"
+
+#: nodereference.module:97
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Geavanceerd - Nodes die kunnen worden gerefereerd (View)"
+
+#: nodereference.module:104
+msgid "View used to select the nodes"
+msgstr "View die gebruikt wordt voor het selecteren van nodes"
+
+#: nodereference.module:107
+msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
+msgstr ""
+"<p>Kies de \"Views module\"-view die selecteert welke nodes kunnen "
+"worden gerefereerd.<br />Merk op:</p>"
+
+#: nodereference.module:108;121
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+"<ul><li>Alleen Views met velden zullen werken voor dit "
+"doel.</li><li>Dit zal de  \"Inhoudstypes-\"-instellingen boven "
+"negeren. Gebruik anders de view z'n \"filters\" "
+"sectie.</li><li>Gebruik de view z'n \"velden\"-sectie om extra "
+"informatie over gebruikers op het bewerkformulier weer te "
+"geven.</li><li>Gebruik de view z'n \"sorteercriteria\"-sectie om de "
+"volgorde te bepalen waarin gebruikers worden weergegeven.</li></ul>"
+
+#: nodereference.module:112
+msgid "View arguments"
+msgstr "Bekijk argumenten"
+
+#: nodereference.module:115
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr ""
+"Geef een door komma's gescheiden lijst met argumenten op om naar de "
+"view te sturen."
+
+#: nodereference.module:120
+msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+"<p>De lijst met nodes die kunnen worden gerefereerd, gebaseerd op een  "
+"\"Views module\"-view, maar geen passende views gevonden. <br />Merk "
+"op:</p>"
+
+#: nodereference.module:205
+msgid "%name: invalid input."
+msgstr "%name: geen toegestane waarde."
+
+#: nodereference.module:217
+msgid "%name: this post can't be referenced."
+msgstr "%name: dit bericht kan niet worden gerefereerd."
+
+#: nodereference.module:242
+msgid "Title (link)"
+msgstr "Titel (link)"
+
+#: nodereference.module:247
+msgid "Title (no link)"
+msgstr "Titel (geen link)"
+
+#: nodereference.module:252
+msgid "Full node"
+msgstr "Volledige node"
+
+#: nodereference.module:257
+msgid "Teaser"
+msgstr "Voorbeeldweergave"
+
+#: nodereference.module:347
+msgid "Select list"
+msgstr "Selectielijst"
+
+#: nodereference.module:355
+msgid "Check boxes/radio buttons"
+msgstr "Vinkje/radio buttons"
+
+#: nodereference.module:363
+msgid "Autocomplete text field"
+msgstr "Automatisch aanvullend tekstveld"
+
+#: nodereference.module:417
+msgid "Autocomplete matching"
+msgstr "Automatisch aanvullende overeenkomst"
+
+#: nodereference.module:420
+msgid "Starts with"
+msgstr "Begint met"
+
+#: nodereference.module:421
+msgid "Contains"
+msgstr "Bevat"
+
+#: nodereference.module:423
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
+msgstr ""
+"Selecteer de methode die wordt gebruikt om automatisch aangevulde "
+"suggesties te geven. Merk op <em>Bevat</em> prestatieproblemen kan "
+"veroorzaken op sites met vele duizenden gebruikers."
+
+#: nodereference.module:671
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: titel niet gevonden. Controleer je selectie."
+
+#: nodereference.module:678
+msgid "%name: found no valid post with that title."
+msgstr "%name: geen bericht gevonden met die titel."
+
+#: nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr "Nodereferentie automatisch aanvullen"
+
+#: nodereference.module:0
+msgid "nodereference"
+msgstr "nodereferentie"
+
+#: nodereference.info:0
+msgid "Node Reference"
+msgstr "Nodereferentie"
+
+#: nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Levert een veldtype for het refereren van een node naar een ander."
+
+#: nodereference.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.pot
new file mode 100644
index 0000000..cc8eeb9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.pot
@@ -0,0 +1,114 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-nodereference)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  nodereference.module,v 1.138.2.55 2009/06/02 12:24:04 yched
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/nodereference/nodereference.rules.inc:15
+msgid "Load a referenced node"
+msgstr ""
+
+#: modules/nodereference/nodereference.rules.inc:19
+msgid "Content containing the node reference field"
+msgstr ""
+
+#: modules/nodereference/nodereference.rules.inc:25
+msgid "Referenced content"
+msgstr ""
+
+#: modules/nodereference/nodereference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first content node will be loaded."
+msgstr ""
+
+#: modules/nodereference/nodereference.rules.inc:50
+msgid "There are no nodereference fields defined."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:69
+msgid "Node reference"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:70
+msgid "Store the ID of a related node as an integer value."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:85
+msgid "Content types that can be referenced"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:107
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:114
+msgid "View used to select the nodes"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:117
+msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:118;131
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:130
+msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:228
+msgid "%name: this post can't be referenced."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:253
+msgid "Title (link)"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:258
+msgid "Title (no link)"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:435
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:691
+msgid "%name: title mismatch. Please check your selection."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:698
+msgid "%name: found no valid post with that title."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:0
+msgid "nodereference"
+msgstr ""
+
+#: modules/nodereference/nodereference.info:0
+msgid "Node Reference"
+msgstr ""
+
+#: modules/nodereference/nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.sv.po
new file mode 100644
index 0000000..5372263
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/nodereference/translations/modules-nodereference.sv.po
@@ -0,0 +1,179 @@
+# $Id$
+#
+# Swedish translation of Drupal (nodereference)
+# Generated from files:
+#  nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  nodereference.module,v 1.138.2.54 2009/04/29 20:51:53 karens
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Nodereference 6.x\n"
+"POT-Creation-Date: 2009-05-27 13:40+0200\n"
+"PO-Revision-Date: 2009-05-27 14:40+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: nodereference.rules.inc:15
+msgid "Load a referenced node"
+msgstr "Ladda en hänvisad nod"
+
+#: nodereference.rules.inc:19
+msgid "Content containing the node reference field"
+msgstr "Innehåll som innehåller det hänvisade nodfältet"
+
+#: nodereference.rules.inc:25
+msgid "Referenced content"
+msgstr "Hänvisat innehåll"
+
+#: nodereference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first content node will be loaded."
+msgstr "Observera att om fält har flera värden, så kommer enbart den första innehållsnoden att laddas."
+
+#: nodereference.rules.inc:45
+msgid "Field"
+msgstr "Fält"
+
+#: nodereference.rules.inc:50
+msgid "There are no nodereference fields defined."
+msgstr "Det finns inga hänvisade nodfält definierade."
+
+#: nodereference.module:60
+msgid "Node reference"
+msgstr "Hänvisad nod"
+
+#: nodereference.module:61
+msgid "Store the ID of a related node as an integer value."
+msgstr "Lagra ID för en relaterad nod som ett heltalsvärde."
+
+#: nodereference.module:76
+msgid "Content types that can be referenced"
+msgstr "Innehållstyper som kan hänvisas"
+
+#: nodereference.module:88
+msgid "Default Views"
+msgstr "Förvald vy"
+
+#: nodereference.module:91
+msgid "Existing Views"
+msgstr "Existerande vyer"
+
+#: nodereference.module:98
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Avancerat - Noder som kan hänvisas (Vyer)"
+
+#: nodereference.module:105
+msgid "View used to select the nodes"
+msgstr "Vy som används för att välja noder"
+
+#: nodereference.module:108
+msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
+msgstr "<p>Välj \"modulen Views\" vy som väljer noden som kan hänvisas.<br />Observera:</p>"
+
+#: nodereference.module:109;122
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr "<ul><li>Enbart vyer som har fält kommer att fungera för detta ändamål.</li><li>Detta kommer att bryta mot inställningarna för \"Innehållstyper\" ovan. Använd vyns \"filtrering\" istället.</li><li>Använd vyns \"fält\" för att visa ytterligare information om kandiderande noder på formuläret för att skapa/redigera nod</li><li>Använd vyns \"sorteringskriterier\" för att bestämma ordningen på vilken de kandiderande noder kommer att visas</li></ul>"
+
+#: nodereference.module:113
+msgid "View arguments"
+msgstr "Argument för vy"
+
+#: nodereference.module:116
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Tillhandahåll en kommaseparerad lista av argument att skicka till vyn."
+
+#: nodereference.module:121
+msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr "<p>Listan av noder som kan hänvisas kan baseras på en vy från \"modulen Views\", men inga lämpliga vyer hittades. <br />Observera</p>"
+
+#: nodereference.module:207
+msgid "%name: invalid input."
+msgstr "%name: ogiltig inmatning."
+
+#: nodereference.module:219
+msgid "%name: this post can't be referenced."
+msgstr "%name: denna post kan inte hänvisas."
+
+#: nodereference.module:244
+msgid "Title (link)"
+msgstr "Titel (länk)"
+
+#: nodereference.module:249
+msgid "Title (no link)"
+msgstr "Titel (ingen länk)"
+
+#: nodereference.module:254
+msgid "Full node"
+msgstr "Fullständig nod"
+
+#: nodereference.module:259
+msgid "Teaser"
+msgstr "Förhandstitt"
+
+#: nodereference.module:349
+msgid "Select list"
+msgstr "Listval"
+
+#: nodereference.module:357
+msgid "Check boxes/radio buttons"
+msgstr "Kryssrutor/radioknappar"
+
+#: nodereference.module:365
+msgid "Autocomplete text field"
+msgstr "Automatiskt kompletterande textfält"
+
+#: nodereference.module:420
+msgid "Autocomplete matching"
+msgstr "Automatiskt kompletterande som överensstämmer"
+
+#: nodereference.module:423
+msgid "Starts with"
+msgstr "Börjar med"
+
+#: nodereference.module:424
+msgid "Contains"
+msgstr "Innehåller"
+
+#: nodereference.module:426
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
+msgstr "Välj metod att använda för att samla in automatiskt kompletterande förslag. Observera att <em>Innehåller</em> kan orsaka prestandaproblem med webbplatser som har tusentals noder."
+
+#: nodereference.module:430
+msgid "Size of textfield"
+msgstr "Storlek på textfält"
+
+#: nodereference.module:682
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: titel stämmer inte. Var vänlig kontrollera ditt urval."
+
+#: nodereference.module:689
+msgid "%name: found no valid post with that title."
+msgstr "%name: hittade ingen giltig post med denna titel."
+
+#: nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr "Automatiskt kompletterande nodhänvisning"
+
+#: nodereference.module:0
+msgid "nodereference"
+msgstr "nodereference"
+
+#: nodereference.info:0
+msgid "Node Reference"
+msgstr "Hänvisning av nod"
+
+#: nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Definierar en fälttyp för att hänvisa en nod till en annan."
+
+#: nodereference.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/help/number.help.ini b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/help/number.help.ini
new file mode 100644
index 0000000..205c225
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/help/number.help.ini
@@ -0,0 +1,8 @@
+; $Id$
+
+[advanced help settings]
+hide = TRUE
+
+[number]
+title = Number field
+parent = content%fields
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/help/number.html b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/help/number.html
new file mode 100644
index 0000000..8725d75
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/help/number.html
@@ -0,0 +1,2 @@
+<p>The Number field stores numeric data in the database. It can either be an integer value, a decimal value, or a float value.</p>
+<p>The Number field provides a place for the administrator to create a list of 'Allowed values' for the field. When used with <a href="&topic:optionwidgets/optionwidgets&">Optionwidgets</a>, the allowed values are presented to the end user in a drop-down select list, checkboxes, or radios.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.info
new file mode 100644
index 0000000..4b00d32
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.info
@@ -0,0 +1,12 @@
+; $Id$
+name = Number
+description = Defines numeric field types.
+dependencies[] = content
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.install b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.install
new file mode 100644
index 0000000..f9e794e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.install
@@ -0,0 +1,60 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_install().
+ */
+function number_install() {
+  drupal_load('module', 'content');
+  content_notify('install', 'number');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function number_uninstall() {
+  drupal_load('module', 'content');
+  content_notify('uninstall', 'number');
+}
+
+/**
+ * Implementation of hook_enable().
+ *
+ * Notify content module when this module is enabled.
+ */
+function number_enable() {
+  drupal_load('module', 'content');
+  content_notify('enable', 'number');
+}
+
+/**
+ * Implementation of hook_disable().
+ *
+ * Notify content module when this module is disabled.
+ */
+function number_disable() {
+  drupal_load('module', 'content');
+  content_notify('disable', 'number');
+}
+
+function number_update_last_removed() {
+  return 5;
+}
+
+/**
+ * Rename old decimal fields, which were really floats, to float
+ */
+function number_update_6000() {
+  if ($abort = content_check_update('number')) {
+    return $abort;
+  }
+
+  $ret = array();
+
+  drupal_load('module', 'content');
+  $ret[] = update_sql("UPDATE {". content_field_tablename() ."} SET type='number_float' WHERE type = 'number_decimal'");
+
+  content_clear_type_cache();
+  return $ret;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.module
new file mode 100644
index 0000000..108e589
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/number.module
@@ -0,0 +1,585 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Defines numeric field types.
+ */
+
+/**
+ * Implementation of hook_theme().
+ */
+function number_theme() {
+  return array(
+    'number' => array('arguments' => array('element' => NULL)),
+    'number_formatter_default' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_us_0' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_us_1' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_us_2' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_be_0' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_be_1' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_be_2' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_fr_0' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_fr_1' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_fr_2' => array('arguments' => array('element' => NULL), 'function' => 'theme_number_formatter_generic'),
+    'number_formatter_unformatted' => array('arguments' => array('element' => NULL)),
+  );
+}
+
+/**
+ * Implementation of hook_field_info().
+ */
+function number_field_info() {
+  return array(
+    'number_integer' => array(
+      'label' => t('Integer'),
+      'description' => t('Store a number in the database as an integer.'),
+//      'content_icon' => 'icon_content_number.png',
+    ),
+    'number_decimal' => array(
+      'label' => t('Decimal'),
+      'description' => t('Store a number in the database in a fixed decimal format.'),
+//      'content_icon' => 'icon_content_number.png',
+    ),
+    'number_float' => array(
+      'label' => t('Float'),
+      'description' => t('Store a number in the database in a floating point format.'),
+//      'content_icon' => 'icon_content_number.png',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_field_settings().
+ */
+function number_field_settings($op, $field) {
+  switch ($op) {
+    case 'form':
+      $form = array();
+      $form['min'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Minimum'),
+        '#element_validate' => array('_element_validate_number'),
+        '#default_value' => is_numeric($field['min']) ? $field['min'] : '',
+      );
+      $form['max'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Maximum'),
+        '#element_validate' => array('_element_validate_number'),
+        '#default_value' => is_numeric($field['max']) ? $field['max'] : '',
+      );
+      if ($field['type'] == 'number_decimal') {
+        $form['precision'] = array(
+          '#type' => 'select',
+          '#options' => drupal_map_assoc(range(10, 32)),
+          '#title' => t('Precision'),
+          '#description' => t('The total number of digits to store in the database, including those to the right of the decimal.'),
+          '#default_value' => is_numeric($field['precision']) ? $field['precision'] : 10,
+        );
+        $form['scale'] = array(
+          '#type' => 'select',
+          '#options' => drupal_map_assoc(range(0, 10)),
+          '#title' => t('Scale'),
+          '#description' => t('The number of digits to the right of the decimal.'),
+          '#default_value' => is_numeric($field['scale']) ? $field['scale'] : 2,
+        );
+        $form['decimal'] = array(
+          '#type' => 'select',
+          '#options' => array('.' => 'decimal point', ',' => 'comma', ' ' => 'space'),
+          '#title' => t('Decimal marker'),
+          '#description' => t('The character users will input to mark the decimal point in forms.'),
+          '#default_value' => !empty($field['decimal']) ? $field['decimal'] : '.',
+        );
+      }
+      $form['append']['prefix'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Prefix'),
+        '#size' => 60,
+        '#default_value' => !empty($field['prefix']) ? $field['prefix'] : '',
+        '#description' => t('Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds).'),
+      );
+      $form['append']['suffix'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Suffix'),
+        '#size' => 60,
+        '#default_value' => !empty($field['suffix']) ? $field['suffix'] : '',
+        '#description' => t('Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds).'),
+      );
+      $form['allowed_values_fieldset'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('Allowed values'),
+        '#collapsible' => TRUE,
+        '#collapsed' => TRUE,
+      );
+      $form['allowed_values_fieldset']['allowed_values'] = array(
+        '#type' => 'textarea',
+        '#title' => t('Allowed values list'),
+        '#default_value' => !empty($field['allowed_values']) ? $field['allowed_values'] : '',
+        '#required' => FALSE,
+        '#rows' => 10,
+        '#description' => t('The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags', array('%type' => $field['type'], '@tags' => _content_filter_xss_display_allowed_tags())),
+      );
+      $form['allowed_values_fieldset']['advanced_options'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('PHP code'),
+        '#collapsible' => TRUE,
+        '#collapsed' => empty($field['allowed_values_php']),
+      );
+      if (user_access('Use PHP input for field settings (dangerous - grant with care)')) {
+        $form['allowed_values_fieldset']['advanced_options']['allowed_values_php'] = array(
+          '#type' => 'textarea',
+          '#title' => t('Code'),
+          '#default_value' => !empty($field['allowed_values_php']) ? $field['allowed_values_php'] : '',
+          '#rows' => 6,
+          '#description' => t('Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above.'),
+        );
+      }
+      else {
+        $form['allowed_values_fieldset']['advanced_options']['markup_allowed_values_php'] = array(
+          '#type' => 'item',
+          '#title' => t('Code'),
+          '#value' => !empty($field['allowed_values_php']) ? '<code>'. check_plain($field['allowed_values_php']) .'</code>' : t('<none>'),
+          '#description' => empty($field['allowed_values_php']) ? t("You're not allowed to input PHP code.") : t('This PHP code was set by an administrator and will override the allowed values list above.'),
+        );
+      }
+      return $form;
+
+    case 'save':
+      $values = array('prefix', 'suffix', 'min', 'max', 'allowed_values', 'allowed_values_php');
+      if ($field['type'] == 'number_decimal') {
+        $values = array_merge($values, array('precision', 'scale', 'decimal'));
+      }
+      return $values;
+
+    case 'database columns':
+      if ($field['type'] == 'number_integer') {
+        return array(
+          'value' => array('type' => 'int', 'not null' => FALSE, 'sortable' => TRUE),
+        );
+      }
+      if ($field['type'] == 'number_float') {
+        return array(
+          'value' => array('type' => 'float', 'not null' => FALSE, 'sortable' => TRUE),
+        );
+      }
+      if ($field['type'] == 'number_decimal') {
+        $precision = isset($field['precision']) ? $field['precision'] : 10;
+        $scale = isset($field['scale']) ? $field['scale'] : 2;
+        return array(
+          'value' => array('type' => 'numeric', 'precision' => $precision, 'scale' => $scale, 'not null' => FALSE, 'sortable' => TRUE),
+        );
+      }
+
+    case 'views data':
+      $allowed_values = content_allowed_values($field);
+      if (count($allowed_values)) {
+        $data = content_views_field_views_data($field);
+        $db_info = content_database_info($field);
+        $table_alias = content_views_tablename($field);
+
+        // Filter: Add a 'many to one' filter.
+        $copy = $data[$table_alias][$field['field_name'] .'_value'];
+        $copy['title'] = t('@label (!name) - Allowed values', array('@label' => t($field['widget']['label']), '!name' => $field['field_name']));
+        $copy['filter']['handler'] = 'content_handler_filter_many_to_one';
+        $copy['filter']['numeric'] = TRUE;
+        unset($copy['field'], $copy['argument'], $copy['sort']);
+        $data[$table_alias][$field['field_name'] .'_value_many_to_one'] = $copy;
+        // Argument: swap the handler to the 'many to one' operator
+        $data[$table_alias][$field['field_name'] .'_value']['argument']['handler'] = 'content_handler_argument_many_to_one';
+        $data[$table_alias][$field['field_name'] .'_value']['argument']['numeric'] = TRUE;
+        return $data;
+      }
+      break;
+  }
+}
+
+function _number_widget_settings_min_validate($element, &$form_state) {
+  $value = $form_state['values']['min'];
+  if ($value && !is_numeric($value)) {
+    form_set_error('min', t('"Minimum" must be a number.'));
+  }
+}
+
+function _number_widget_settings_max_validate($element, &$form_state) {
+  $value = $form_state['values']['max'];
+  if ($value && !is_numeric($value)) {
+    form_set_error('max', t('"Maximum" must be a number.'));
+  }
+}
+
+/**
+ * Implementation of hook_field().
+ */
+function number_field($op, &$node, $field, &$items, $teaser, $page) {
+  switch ($op) {
+    case 'validate':
+      $allowed_values = content_allowed_values($field);
+      if (is_array($items)) {
+        foreach ($items as $delta => $item) {
+          $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+          if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+          if ($item['value'] != '') {
+            if (is_numeric($field['min']) && $item['value'] < $field['min']) {
+              form_set_error($error_element, t('%name: the value may be no smaller than %min.', array('%name' => t($field['widget']['label']), '%min' => $field['min'])));
+            }
+            if (is_numeric($field['max']) && $item['value'] > $field['max']) {
+              form_set_error($error_element, t('%name: the value may be no larger than %max.', array('%name' => t($field['widget']['label']), '%max' => $field['max'])));
+            }
+            if (count($allowed_values)) {
+              // We cannot use array_key_exists() because allowed values are
+              // stored as strings, and we need to compare numeric equality.
+              $valid = FALSE;
+              foreach ($allowed_values as $kay => $value) {
+                if ((float) $item['value'] == (float) $kay) {
+                  $valid = TRUE;
+                  break;
+                }
+              }
+              if (!$valid) {
+                form_set_error($error_element, t('%name: illegal value.', array('%name' => t($field['widget']['label']))));
+              }
+            }
+          }
+        }
+      }
+      return $items;
+  }
+}
+
+/**
+ * Implementation of hook_content_is_empty().
+ */
+function number_content_is_empty($item, $field) {
+  if (empty($item['value']) && (string)$item['value'] !== '0') {
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * Implementation of hook_field_formatter_info().
+ */
+function number_field_formatter_info() {
+  return array(
+    'default' => array('label' => '9999',            'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_integer', 'number_decimal', 'number_float')),
+    'us_0'    => array('label' => '9,999',           'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_integer', 'number_decimal', 'number_float')),
+    'us_1'    => array('label' => '9,999.9',         'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_decimal', 'number_float')),
+    'us_2'    => array('label' => '9,999.99',        'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_decimal', 'number_float')),
+    'be_0'    => array('label' => '9.999',           'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_integer', 'number_decimal', 'number_float')),
+    'be_1'    => array('label' => '9.999,9',         'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_decimal', 'number_float')),
+    'be_2'    => array('label' => '9.999,99',        'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_decimal', 'number_float')),
+    'fr_0'    => array('label' => '9 999',           'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_integer', 'number_decimal', 'number_float')),
+    'fr_1'    => array('label' => '9 999, 9',        'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_decimal', 'number_float')),
+    'fr_2'    => array('label' => '9 999, 99',       'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_decimal', 'number_float')),
+    'unformatted' => array('label' => t('unformatted'), 'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('number_integer', 'number_decimal', 'number_float')),
+  );
+}
+
+/**
+ * Proxy theme function for 'unformatted' number field formatter.
+ */
+function theme_number_formatter_unformatted($element) {
+  return $element['#item']['value'];
+}
+
+/**
+ * Proxy theme function for number field formatters.
+ */
+function theme_number_formatter_generic($element) {
+  $field = content_fields($element['#field_name'], $element['#type_name']);
+  $value = $element['#item']['value'];
+
+  if (($allowed_values = content_allowed_values($field))) {
+    if (isset($allowed_values[$value]) && $allowed_values[$value] != $value) {
+      return $allowed_values[$value];
+    }
+  }
+
+  if (empty($value) && $value !== '0') {
+    return '';
+  }
+
+  switch ($element['#formatter']) {
+    case 'us_0':
+      $output = number_format($value, 0, '.', ',');
+      break;
+    case 'us_1':
+      $output = number_format($value, 1, '.', ',');
+      break;
+    case 'us_2':
+      $output = number_format($value, 2, '.', ',');
+      break;
+    case 'be_0':
+      $output = number_format($value, 0, ',', '.');
+      break;
+    case 'be_1':
+      $output = number_format($value, 1, ',', '.');
+      break;
+    case 'be_2':
+      $output = number_format($value, 2, ',', '.');
+      break;
+    case 'fr_0':
+      $output = number_format($value, 0, ', ', ' ');
+      break;
+    case 'fr_1':
+      $output = number_format($value, 1, ', ', ' ');
+      break;
+    case 'fr_2':
+      $output = number_format($value, 2, ', ', ' ');
+      break;
+    default:
+      $output = $value;
+      break;
+  }
+
+  $prefixes = isset($field['prefix']) ? array_map('content_filter_xss', explode('|', $field['prefix'])) : array('');
+  $suffixes = isset($field['suffix']) ? array_map('content_filter_xss', explode('|', $field['suffix'])) : array('');
+  $prefix = (count($prefixes) > 1) ? format_plural($value, $prefixes[0], $prefixes[1]) : $prefixes[0];
+  $suffix = (count($suffixes) > 1) ? format_plural($value, $suffixes[0], $suffixes[1]) : $suffixes[0];
+
+  return $prefix . $output . $suffix;
+}
+
+/**
+ * Implementation of hook_widget_info().
+ *
+ * Here we indicate that the content module will handle
+ * the default value and multiple values for these widgets.
+ *
+ * Callbacks can be omitted if default handing is used.
+ * They're included here just so this module can be used
+ * as an example for custom modules that might do things
+ * differently.
+ */
+function number_widget_info() {
+  return array(
+    'number' => array(
+      'label' => t('Text field'),
+      'field types' => array('number_integer', 'number_decimal', 'number_float'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of FAPI hook_elements().
+ *
+ * Any FAPI callbacks needed for individual widgets can be declared here,
+ * and the element will be passed to those callbacks for processing.
+ *
+ * Drupal will automatically theme the element using a theme with
+ * the same name as the hook_elements key.
+ *
+ * Includes a regex to check for valid values as an additional parameter
+ * the validator can use. The regex can be overridden if necessary.
+ */
+function number_elements() {
+  return array(
+    'number' => array(
+      '#input' => TRUE,
+      '#columns' => array('value'), '#delta' => 0,
+      '#process' => array('number_process'),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_widget().
+ *
+ * Attach a single form element to the form. It will be built out and
+ * validated in the callback(s) listed in hook_elements. We build it
+ * out in the callbacks rather than here in hook_widget so it can be
+ * plugged into any module that can provide it with valid
+ * $field information.
+ *
+ * Content module will set the weight, field name and delta values
+ * for each form element. This is a change from earlier CCK versions
+ * where the widget managed its own multiple values.
+ *
+ * If there are multiple values for this field, the content module will
+ * call this function as many times as needed.
+ *
+ * @param $form
+ *   the entire form array, $form['#node'] holds node information
+ * @param $form_state
+ *   the form_state, $form_state['values'][$field['field_name']]
+ *   holds the field's form values.
+ * @param $field
+ *   the field array
+ * @param $items
+ *   array of default values for this field
+ * @param $delta
+ *   the order of this item in the array of subelements (0, 1, 2, etc)
+ *
+ * @return
+ *   the form item for a single element for this field
+ */
+function number_widget(&$form, &$form_state, $field, $items, $delta = 0) {
+  $element = array(
+    '#type' => $field['widget']['type'],
+    '#default_value' => isset($items[$delta]) ? $items[$delta] : NULL,
+  );
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function number_process($element, $edit, $form_state, $form) {
+  $field_name = $element['#field_name'];
+  $field = $form['#field_info'][$field_name];
+  $field_key  = $element['#columns'][0];
+
+  $value = isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : '';
+  $value = isset($field['decimal']) ? str_replace('.', $field['decimal'], $value) : $value;
+  $element[$field_key] = array(
+    '#type' => 'textfield',
+    '#default_value' => $value,
+    // Need to allow a slightly larger size that the field length to allow
+    // for some configurations where all characters won't fit in input field.
+    '#size' => isset($field['precision']) ? $field['precision'] + 2 : 12,
+    '#maxlength' => isset($field['precision']) ? $field['precision'] : 10,
+    '#attributes' => array('class' => 'number'),
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#description' => $element['#description'],
+    '#required' => $element['#required'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+
+  $prefixes = array();
+  $suffixes = array();
+
+  // Make sure we don't wipe out element validation added elsewhere.
+  if (empty($element['#element_validate'])) {
+    $element['#element_validate'] = array();
+  }
+  if (!empty($field['prefix'])) {
+    $prefixes = explode('|', $field['prefix']);
+    $element[$field_key]['#field_prefix'] = content_filter_xss(array_pop($prefixes));
+  }
+  if (!empty($field['suffix'])) {
+    $suffixes = explode('|', $field['suffix']);
+    $element[$field_key]['#field_suffix'] = content_filter_xss(array_pop($suffixes));
+  }
+  switch ($field['type']) {
+    case 'number_float':
+      $element['#element_validate'][] = 'number_float_validate';
+      break;
+    case 'number_integer':
+      $element['#element_validate'][] = 'number_integer_validate';
+      break;
+    case 'number_decimal':
+      $element['#element_validate'][] = 'number_decimal_validate';
+      $element['#decimal'] = isset($field['decimal']) ? $field['decimal'] : '.';
+      $element['#precision'] = isset($field['precision']) ? $field['precision'] : 10;
+      $element['#scale'] = isset($field['scale']) ? $field['scale'] : 2;
+      break;
+  }
+
+  // Used so that hook_field('validate') knows where to flag an error.
+  $element['_error_element'] = array(
+    '#type' => 'value',
+    '#value' => implode('][', array_merge($element['#parents'], array($field_key))),
+  );
+
+  return $element;
+}
+
+/**
+ * FAPI validation of an individual float element.
+ */
+function number_float_validate($element, &$form_state) {
+  $field_name = $element['#field_name'];
+  $type_name = $element['#type_name'];
+  $field = content_fields($field_name, $type_name);
+  $field_key = $element['#columns'][0];
+  $value = $element['#value'][$field_key];
+
+  if (($element[$field_key]['#required'] || !empty($value))) {
+    $start = $value;
+    $value = preg_replace('@[^-0-9\.]@', '', $value);
+    if ($start != $value) {
+      $error_field = implode('][', $element['#parents']) .']['. $field_key;
+      form_set_error($error_field, t('Only numbers and decimals are allowed in %field.', array('%field' => t($field['widget']['label']))));
+    }
+    else {
+      form_set_value($element[$field_key], $value, $form_state);
+    }
+  }
+}
+
+/**
+ * FAPI validation of an individual integer element.
+ */
+function number_integer_validate($element, &$form_state) {
+  $field_name = $element['#field_name'];
+  $type_name = $element['#type_name'];
+  $field = content_fields($field_name, $type_name);
+  $field_key = $element['#columns'][0];
+  $value = $element['#value'][$field_key];
+
+  if (($element[$field_key]['#required'] || !empty($value))) {
+    $start = $value;
+    $value = preg_replace('@[^-0-9]@', '', $value);
+    if ($start != $value) {
+      $error_field = implode('][', $element['#parents']) .']['. $field_key;
+      form_set_error($error_field, t('Only numbers are allowed in %field.', array('%field' => t($field['widget']['label']))));
+    }
+    else {
+      form_set_value($element[$field_key], $value, $form_state);
+    }
+  }
+}
+
+/**
+ * FAPI validation of an individual decimal element.
+ */
+function number_decimal_validate($element, &$form_state) {
+  $field_name = $element['#field_name'];
+  $type_name = $element['#type_name'];
+  $field = content_fields($field_name, $type_name);
+  $field_key = $element['#columns'][0];
+  $value = $element['#value'][$field_key];
+
+  if (($element[$field_key]['#required'] || !empty($value))) {
+    $decimal = $element['#decimal'] ? $element['#decimal'] : '.';
+    $start = $value;
+    $value = preg_replace('@[^-0-9\\'. $decimal .']@', '', $value);
+    if ($start != $value) {
+      $error_field = implode('][', $element['#parents']) .']['. $field_key;
+      form_set_error($error_field, t('Only numbers and the decimal character (%decimal) are allowed in %field.', array('%decimal' => $element['#decimal'], '%field' => t($field['widget']['label']))));
+    }
+    else {
+      $value = str_replace($element['#decimal'], '.', $value);
+      $value = round($value, $element['#scale']);
+      form_set_value($element[$field_key], $value, $form_state);
+    }
+  }
+}
+
+/**
+ * FAPI theme for an individual number element.
+ *
+ * The textfield is already rendered by the textfield
+ * theme and the HTML output lives in $element['#children'].
+ * Override this theme to make custom changes to the output.
+ *
+ * $element['#field_name'] contains the field name
+ * $element['#delta]  is the position of this element in the group
+ */
+function theme_number($element) {
+  return $element['#children'];
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.de.po
new file mode 100644
index 0000000..b9ed3f5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.de.po
@@ -0,0 +1,152 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2008-11-05 12:54+0100\n"
+"PO-Revision-Date: 2008-11-05 13:18+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/number/number.module:34
+msgid "Integer"
+msgstr "Ganzzahl"
+
+#: modules/number/number.module:35
+msgid "Store a number in the database as an integer."
+msgstr "Speichert die Zahl in der Datenbank als Ganzzahl."
+
+#: modules/number/number.module:38
+msgid "Decimal"
+msgstr "Dezimalzahl"
+
+#: modules/number/number.module:39
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Speichert die Zahl in der Datenbank in einem festen Dezimalformat."
+
+#: modules/number/number.module:42
+msgid "Float"
+msgstr "Fließkommazahl"
+
+#: modules/number/number.module:43
+msgid "Store a number in the database in a floating point format."
+msgstr "Speichert die Zahl in der Datenbank in einem Fließkommaformat."
+
+#: modules/number/number.module:57
+msgid "Minimum"
+msgstr "Minimum"
+
+#: modules/number/number.module:63
+msgid "Maximum"
+msgstr "Maximum"
+
+#: modules/number/number.module:71
+msgid "Precision"
+msgstr "Präzision"
+
+#: modules/number/number.module:72
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr "Die gesamte Anzahl der in der Datenbank zu speichernden Stellen, inclusive der rechts vom Dezimaltrennzeichen angegebenen."
+
+#: modules/number/number.module:78
+msgid "Scale"
+msgstr "Skalierung"
+
+#: modules/number/number.module:79
+msgid "The number of digits to the right of the decimal."
+msgstr "Die Anzahl der rechts vom Dezimaltrennzeichen angegebenen Stellen."
+
+#: modules/number/number.module:85
+msgid "Decimal marker"
+msgstr "Dezimalzeichen"
+
+#: modules/number/number.module:86
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "Das von Benutzern in Formularen als Dezimalzeichen zu verwendende Symbol."
+
+#: modules/number/number.module:92
+msgid "Prefix"
+msgstr "Präfix"
+
+#: modules/number/number.module:95
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Eine Zeichenkette angeben, welche dem Wert vorrangestellt werden soll, z.b. $ oder €. Ansonsten freilassen. Werte für Einzahl und Mehrzahl mit einer Pipe trennen (Pfund|Pfunde)."
+
+#: modules/number/number.module:99
+msgid "Suffix"
+msgstr "Suffix"
+
+#: modules/number/number.module:102
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Eine Zeichenkette angeben, welche dem Wert angehängt werden soll, z.b. m², m/s², kb/s. Ansonsten freilassen. Werte für Einzahl und Mehrzahl mit einer Pipe trennen (Pfund|Pfunde)."
+
+#: modules/number/number.module:195
+msgid "\"Minimum\" must be a number."
+msgstr "„Minimum“ muss eine Zahl sein."
+
+#: modules/number/number.module:202
+msgid "\"Maximum\" must be a number."
+msgstr "„Maximum“ muss eine Zahl sein."
+
+#: modules/number/number.module:219
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: Der Wert darf nicht kleiner als %min sein."
+
+#: modules/number/number.module:222
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: Der Wert darf nicht grösser als %max sein."
+
+#: modules/number/number.module:270
+msgid "unformatted"
+msgstr "unformatiert"
+
+# Float validation: English needs work
+#: modules/number/number.module:509
+#, fuzzy
+msgid "Only numbers and decimals are allowed in %field."
+msgstr "Im Feld %field sind nur Ganzzahlen und Fließkommazahlen zulässig."
+
+# Integer validation: English needs work
+#: modules/number/number.module:532
+#, fuzzy
+msgid "Only numbers are allowed in %field."
+msgstr "Im Feld %field sind nur Ganzzahlen zulässig."
+
+# Decimal validation with decimal character: English needs work
+#: modules/number/number.module:556
+#, fuzzy
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
+msgstr "Im Feld %field sind nur Dezimalzahlen und das Dezimaltrennzeichen (%decimal) zulässig."
+
+#: modules/number/number.module:0
+msgid "number"
+msgstr "Zahl"
+
+#: modules/number/number.info:0
+msgid "Number"
+msgstr "Zahl"
+
+#: modules/number/number.info:0
+msgid "Defines numeric field types."
+msgstr "Definiert einen numerischen Feldtyp."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.fr.po
new file mode 100644
index 0000000..b1b913f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.fr.po
@@ -0,0 +1,163 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:24+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: modules/number/number.module:41
+msgid "Integer"
+msgstr "Entier"
+
+#: modules/number/number.module:42
+msgid "Store a number in the database as an integer."
+msgstr "Enregistre un nombre dans la base de données en tant qu'entier."
+
+#: modules/number/number.module:49
+msgid "Decimal"
+msgstr "Décimal"
+
+#: modules/number/number.module:50
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Enregistre un nombre dans la base de données en format décimal fixe."
+
+#: modules/number/number.module:57
+msgid "Float"
+msgstr "Réel à virgule flottante"
+
+#: modules/number/number.module:58
+msgid "Store a number in the database in a floating point format."
+msgstr ""
+"Enregistre un nombre dans la base de données en format réel à virgule "
+"flottante."
+
+#: modules/number/number.module:76
+msgid "Minimum"
+msgstr "Minimum"
+
+#: modules/number/number.module:81
+msgid "Maximum"
+msgstr "Maximum"
+
+#: modules/number/number.module:88
+msgid "Precision"
+msgstr "Précision"
+
+#: modules/number/number.module:89
+msgid ""
+"The total number of digits to store in the database, including those to the "
+"right of the decimal."
+msgstr ""
+"Nombre total de chiffres à enregistrer dans la base de données, y compris "
+"ceux à droite du marqueur décimal."
+
+#: modules/number/number.module:95
+msgid "Scale"
+msgstr "Échelle"
+
+#: modules/number/number.module:96
+msgid "The number of digits to the right of the decimal."
+msgstr "Nombre de chiffres à la droite du marqueur décimal."
+
+#: modules/number/number.module:102
+msgid "Decimal marker"
+msgstr "Marqueur décimal"
+
+#: modules/number/number.module:103
+msgid "The character users will input to mark the decimal point in forms."
+msgstr ""
+"Caractère employé par les utilisateurs dans les formulaires pour signaler la "
+"partie décimale des nombres."
+
+#: modules/number/number.module:109
+msgid "Prefix"
+msgstr "Préfixe"
+
+#: modules/number/number.module:112
+msgid ""
+"Define a string that should be prefixed to the value, like $ or €. Leave "
+"blank for none. Separate singular and plural values with a pipe (pound|"
+"pounds)."
+msgstr ""
+"Définissez une chaîne de caractères à utiliser pour préfixer la valeur, par "
+"exemple $ ou €. Laissez vide pour ne rien afficher de plus. Séparez les "
+"valeurs singulier et pluriel par une barre verticale (euro|euros)."
+
+#: modules/number/number.module:116
+msgid "Suffix"
+msgstr "Suffixe"
+
+#: modules/number/number.module:119
+msgid ""
+"Define a string that should suffixed to the value, like m², m/s², kb/s. "
+"Leave blank for none. Separate singular and plural values with a pipe (pound|"
+"pounds)."
+msgstr ""
+"Définissez une chaîne de caractères à utiliser pour suffixerla valeur, par "
+"exemple m², m/s², ko/s. Laissez vide pour ne rien afficher de plus. Séparez "
+"les valeurs singulier et pluriel par une barre verticale (euro|euros)."
+
+#: modules/number/number.module:162
+msgid "\"Minimum\" must be a number."
+msgstr "'Minimum' doit être un nombre."
+
+#: modules/number/number.module:165
+msgid "\"Maximum\" must be a number."
+msgstr "'Maximum' doit être un nombre."
+
+#: modules/number/number.module:222
+msgid "The value of %name may be no smaller than %min."
+msgstr "La valeur de '%name 'ne peut être plus petite que %min."
+
+#: modules/number/number.module:225
+msgid "The value of %name may be no larger than %max."
+msgstr "La valeur de '%name' ne peut pas être plus grande que %max."
+
+#: modules/number/number.module:263
+msgid "unformatted"
+msgstr "non mis en forme"
+
+#: modules/number/number.module:476
+msgid ""
+"Only numbers and decimals are allowed in %field. %start was changed to %"
+"value."
+msgstr ""
+"Seuls des nombres et des décimaux sont autorisés dans '%field'. La valeur "
+"saisie, '%start', a été modifié en '%value'."
+
+#: modules/number/number.module:494
+msgid "Only numbers are allowed in %field. %start was changed to %value."
+msgstr ""
+"Seuls des nombres sont autorisés dans '%field'. La valeur saisie, '%start', "
+"a été modifié en '%value'."
+
+#: modules/number/number.module:513
+msgid ""
+"Only numbers and the decimal character (%decimal) are allowed in %field. %"
+"start was changed to %value."
+msgstr ""
+"Seuls des nombres et le marqueur décimal (%decimal) sont autorisés dans '%"
+"field'. La valeur saisie, '%start', a été modifié en '%value'."
+
+#: modules/number/number.module:0
+msgid "number"
+msgstr "number"
+
+#: modules/number/number.info:0
+msgid "Number"
+msgstr "Number"
+
+#: modules/number/number.info:0
+msgid "Defines numeric field types."
+msgstr "Permet de définir des champs numériques"
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.hu.po
new file mode 100644
index 0000000..8e81838
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.hu.po
@@ -0,0 +1,228 @@
+# Hungarian translation of number (all releases)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  number.module,v 1.91.2.23 2008/10/06 15:11:39 karens
+#  number.info,v 1.7 2008/04/23 18:02:16 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: number (all releases)\n"
+"POT-Creation-Date: 2008-10-26 11:25-0500\n"
+"PO-Revision-Date: 2008-10-26 09:39-0500\n"
+"Last-Translator: Fehér János <feher.janos _at- mindworks.hu>\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: number.module:147,156
+msgid "Code"
+msgstr "Kód"
+
+#: number.info:0
+msgid "Number"
+msgstr "Szám"
+
+#: number.module:91
+msgid "Precision"
+msgstr "Helyiértékek"
+
+#: number.module:112
+msgid "Prefix"
+msgstr "Előtag"
+
+#: number.module:119
+msgid "Suffix"
+msgstr "Toldalék"
+
+#: number.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: number.module:140
+msgid "PHP code"
+msgstr "PHP kód"
+
+#: number.module:157
+msgid "<none>"
+msgstr "<nincs>"
+
+#: number.module:158
+msgid "You're not allowed to input PHP code."
+msgstr "Nem engedélyezett a PHP kód bevitele."
+
+#: number.module:42
+msgid "Integer"
+msgstr "Egész szám"
+
+#: number.module:43
+msgid "Store a number in the database as an integer."
+msgstr "Egészként tárol számot az adatbázisban."
+
+#: number.module:50
+msgid "Decimal"
+msgstr "Decimális"
+
+#: number.module:51
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Rögzített tízes számot tárol az adatbázisban"
+
+#: number.module:58
+msgid "Float"
+msgstr "Lebegőpontos"
+
+#: number.module:59
+msgid "Store a number in the database in a floating point format."
+msgstr "Lebegőpontos számot tárol az adatbázisban."
+
+#: number.module:77
+msgid "Minimum"
+msgstr "Minimum"
+
+#: number.module:83
+msgid "Maximum"
+msgstr "Maximum"
+
+#: number.module:92
+msgid ""
+"The total number of digits to store in the database, including those "
+"to the right of the decimal."
+msgstr ""
+"Az adatbázisban tárolt számjegyek teljes száma, beleértve a "
+"tizedesponttól jobbra lévő számjegyeket is."
+
+#: number.module:98
+msgid "Scale"
+msgstr "Felbontás"
+
+#: number.module:99
+msgid "The number of digits to the right of the decimal."
+msgstr "A számjegyek száma."
+
+#: number.module:105
+msgid "Decimal marker"
+msgstr "Decimális jelölő"
+
+#: number.module:106
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "Az űrlapokon a tizedespont jelölésére használt karakter."
+
+#: number.module:115
+msgid ""
+"Define a string that should be prefixed to the value, like $ or €. "
+"Leave blank for none. Separate singular and plural values with a pipe "
+"(pound|pounds)."
+msgstr ""
+"Egy karaktersorozat, ami az érték előtagja lehet, mint például a "
+"$ vagy az €. Ha nincs előtag, akkor üresen kell hagyni. "
+"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
+"többes számú alakot (font|fontok)."
+
+#: number.module:122
+msgid ""
+"Define a string that should suffixed to the value, like m², m/s², "
+"kb/s. Leave blank for none. Separate singular and plural values with a "
+"pipe (pound|pounds)."
+msgstr ""
+"Egy karaktersorozat, ami az érték toldaléka lehet, mint például "
+"m², m/s², kb/s. Ha nincs toldalék, akkor üresen kell hagyni. "
+"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
+"többes számú alakot (font|fontok)."
+
+#: number.module:126
+msgid "Allowed values"
+msgstr "Megengedett értékek"
+
+#: number.module:132
+msgid "Allowed values list"
+msgstr "Megengedett értékek"
+
+#: number.module:136
+msgid ""
+"The possible values this field can contain. Enter one value per line, "
+"in the format key|label. The key is the value that will be stored in "
+"the database, and it must match the field storage type (%type). The "
+"label is optional, and the key will be used as the label if no label "
+"is specified.<br />Allowed HTML tags: @tags"
+msgstr ""
+"A mező lehetséges értékei. Egy sorban egy értéket lehet megadni "
+"kulcs|címke formában. A kulcs értéke kerül az adatbázisba, és "
+"ennek meg kell felelnie az adatbázisban tárolt típussal (%type). A "
+"címke nem kötelező, ha nincs megadva, akkor a kulcs kerül "
+"felhasználásra, mint címke.<br />Engedélyezett HTML elemek: @tags"
+
+#: number.module:150
+msgid ""
+"Advanced usage only: PHP code that returns a keyed array of allowed "
+"values. Should not include <?php ?> delimiters. If this field is "
+"filled out, the array returned by this code will override the allowed "
+"values list above."
+msgstr ""
+"Csak haladóknak: PHP kód, ami visszaadja a megengedett értékek "
+"tömbjét. Nem szükséges <?php ?> elemek közé zárni. Ha ez "
+"a mező ki van töltve, a kód által visszaadott tömb felülír "
+"minden fentebb megadott értéket."
+
+#: number.module:158
+msgid ""
+"This PHP code was set by an administrator and will override the "
+"allowed values list above."
+msgstr ""
+"Ezt a PHP kódot egy adminisztrátor állította be, és felül fogja "
+"írni a fentebb megadott elfogadható értékek listáját."
+
+#: number.module:210
+msgid "\"Minimum\" must be a number."
+msgstr "„Minimum”-nak számot kell megadni."
+
+#: number.module:217
+msgid "\"Maximum\" must be a number."
+msgstr "„Maximum”-nak számot kell megadni."
+
+#: number.module:234
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: az érték nem lehet kisebb ennél: %min."
+
+#: number.module:237
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: az érték nem lehet nagyobb ennél: %max."
+
+#: number.module:250
+msgid "%name: illegal value."
+msgstr "%name: érvénytelen érték."
+
+#: number.module:285
+msgid "unformatted"
+msgstr "formázatlan"
+
+#: number.module:368
+msgid "Text field"
+msgstr "Szöveg mező"
+
+#: number.module:524
+msgid ""
+"Only numbers and decimals are allowed in %field. %start was changed to "
+"%value."
+msgstr ""
+"%field: csak számok és tizedesek bevitele megengedett. %start új "
+"értéke: %value."
+
+#: number.module:546
+msgid "Only numbers are allowed in %field. %start was changed to %value."
+msgstr ""
+"%field: csak számok bevitele megengedett. %start új értéke: "
+"%value."
+
+#: number.module:569
+msgid ""
+"Only numbers and the decimal character (%decimal) are allowed in "
+"%field. %start was changed to %value."
+msgstr ""
+"%field: csak számok és a tizedespont (%decimal) bevitele "
+"megengedett. %start új értéke: %value."
+
+#: number.module:0
+msgid "number"
+msgstr "szám"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.nl.po
new file mode 100644
index 0000000..c44a4e8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.nl.po
@@ -0,0 +1,214 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  number.module,v 1.91.2.33 2009/03/16 22:04:07 yched
+#  number.info,v 1.7 2008/04/23 18:02:16 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:26+0200\n"
+"PO-Revision-Date: 2009-06-03 14:26+0200\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: number.module:34
+msgid "Integer"
+msgstr "Integer"
+
+#: number.module:35
+msgid "Store a number in the database as an integer."
+msgstr "Sla een waarde in de database op als integer."
+
+#: number.module:38
+msgid "Decimal"
+msgstr "Decimaal"
+
+#: number.module:39
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Sla een waarde in de database op in een decimaal formaat."
+
+#: number.module:42
+msgid "Float"
+msgstr "Float"
+
+#: number.module:43
+msgid "Store a number in the database in a floating point format."
+msgstr "Sla een waarde in de database op als floating point getal."
+
+#: number.module:57
+msgid "Minimum"
+msgstr "Minimum"
+
+#: number.module:63
+msgid "Maximum"
+msgstr "Maximum"
+
+#: number.module:71
+msgid "Precision"
+msgstr "Precisie"
+
+#: number.module:72
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr ""
+"Het totale aantal cijfers om op te slaan in de database, inclusief de "
+"waardes achter de komma."
+
+#: number.module:78
+msgid "Scale"
+msgstr "Schaal"
+
+#: number.module:79
+msgid "The number of digits to the right of the decimal."
+msgstr "Het aantal waardes achter de komma."
+
+#: number.module:85
+msgid "Decimal marker"
+msgstr "Decimaal scheidingsteken"
+
+#: number.module:86
+msgid "The character users will input to mark the decimal point in forms."
+msgstr ""
+"Het karakter dat gebruikers zullen gebruiken om de waardes achter de "
+"komma aan te geven in formulieren."
+
+#: number.module:92
+msgid "Prefix"
+msgstr "Voorvoegsel"
+
+#: number.module:95
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr ""
+"Geef op wat als voorvoegsel moet worden gebruikt zoals: $ of €. Laat "
+"leeg als er geen voorvoegsel moet worden gebruikt. Maak onderscheid "
+"tussen enkelvoud en meervoud met een pipe, bijvoorbeeld: euro|euro's."
+
+#: number.module:99
+msgid "Suffix"
+msgstr "Achtervoegsel"
+
+#: number.module:102
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr ""
+"Geef op wat als achtervoegsel moet worden gebruikt zoals: m², m/s², "
+"kb/s. Laat leeg als er geen achtervoegsel moet worden gebruikt. Maak "
+"onderscheid tussen enkelvoud en meervoud met een pipe, bijvoorbeeld: "
+"kilo|kilo's."
+
+#: number.module:106
+msgid "Allowed values"
+msgstr "Toegestane waardes"
+
+#: number.module:112
+msgid "Allowed values list"
+msgstr "Lijst met toegestane waardes"
+
+#: number.module:116
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr ""
+"De mogelijke waardes die in dit veld kunnen staan. Voer één waarde "
+"per regel in, in het formaat sleutel|label. De sleutel wordt in de "
+"database opgeslagen en moet overeen komen met het veldopslagtype "
+"(%type). Het label is optioneel. Als geen label wordt ingevoerd zal de "
+"sleutel ook worden gebruikt als label. <br />Toegestane HTML-tags: "
+"@tags"
+
+#: number.module:120
+msgid "PHP code"
+msgstr "PHP code"
+
+#: number.module:127;136
+msgid "Code"
+msgstr "Code"
+
+#: number.module:130
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr ""
+"Alleen voor geavanceerd gebruik: PHP-code die een array met sleutels "
+"geeft van de toegestane waardes. Moet niet beginnen en eindigen met "
+"<?php ?>. Als dit veld in ingevuld zullen de bovenstaande "
+"toegestane waardes worden genegeerd."
+
+#: number.module:137
+msgid "<none>"
+msgstr "<geen>"
+
+#: number.module:138
+msgid "You're not allowed to input PHP code."
+msgstr "Je mag geen PHP-code gebruiken."
+
+#: number.module:138
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr ""
+"Deze PHP-code is door een beheerder ingesteld en zal worden uitgevoerd "
+"in plaats van de toegestane waardeslijst hierboven."
+
+#: number.module:178
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Toegestane waardes"
+
+#: number.module:195
+msgid "\"Minimum\" must be a number."
+msgstr "\"Minimum\" moet een nummer zijn."
+
+#: number.module:202
+msgid "\"Maximum\" must be a number."
+msgstr "\"Maximum\" moet een nummer zijn."
+
+#: number.module:219
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: de waarde mag niet kleiner zijn dan %min."
+
+#: number.module:222
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: de waarde mag niet groter zijn dan %max."
+
+#: number.module:235
+msgid "%name: illegal value."
+msgstr "%name: niet toegestane waarde."
+
+#: number.module:270
+msgid "unformatted"
+msgstr "ongeformatteerd"
+
+#: number.module:353
+msgid "Text field"
+msgstr "Tekstveld"
+
+#: number.module:512
+msgid "Only numbers and decimals are allowed in %field."
+msgstr "Alleen nummers en decimalen zijn toegestaan in %field."
+
+#: number.module:535
+msgid "Only numbers are allowed in %field."
+msgstr "Alleen nummers zijn toegestaan in %field."
+
+#: number.module:559
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
+msgstr ""
+"Alleen nummers en het decimalenkarakter (%decimal) zijn toegestaan in "
+"%field."
+
+#: number.module:0
+msgid "number"
+msgstr "getal"
+
+#: number.info:0
+msgid "Number"
+msgstr "Nummer"
+
+#: number.info:0
+msgid "Defines numeric field types."
+msgstr "Levert numerieke veldtypes."
+
+#: number.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.pot
new file mode 100644
index 0000000..a9c136e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.pot
@@ -0,0 +1,137 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-number)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  number.module,v 1.91.2.35 2009/04/29 20:51:53 karens
+#  number.info,v 1.7 2008/04/23 18:02:16 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/number/number.module:34
+msgid "Integer"
+msgstr ""
+
+#: modules/number/number.module:35
+msgid "Store a number in the database as an integer."
+msgstr ""
+
+#: modules/number/number.module:39
+msgid "Decimal"
+msgstr ""
+
+#: modules/number/number.module:40
+msgid "Store a number in the database in a fixed decimal format."
+msgstr ""
+
+#: modules/number/number.module:44
+msgid "Float"
+msgstr ""
+
+#: modules/number/number.module:45
+msgid "Store a number in the database in a floating point format."
+msgstr ""
+
+#: modules/number/number.module:60
+msgid "Minimum"
+msgstr ""
+
+#: modules/number/number.module:66
+msgid "Maximum"
+msgstr ""
+
+#: modules/number/number.module:74
+msgid "Precision"
+msgstr ""
+
+#: modules/number/number.module:75
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr ""
+
+#: modules/number/number.module:81
+msgid "Scale"
+msgstr ""
+
+#: modules/number/number.module:82
+msgid "The number of digits to the right of the decimal."
+msgstr ""
+
+#: modules/number/number.module:88
+msgid "Decimal marker"
+msgstr ""
+
+#: modules/number/number.module:89
+msgid "The character users will input to mark the decimal point in forms."
+msgstr ""
+
+#: modules/number/number.module:95
+msgid "Prefix"
+msgstr ""
+
+#: modules/number/number.module:98
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr ""
+
+#: modules/number/number.module:102
+msgid "Suffix"
+msgstr ""
+
+#: modules/number/number.module:105
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr ""
+
+#: modules/number/number.module:198
+msgid "\"Minimum\" must be a number."
+msgstr ""
+
+#: modules/number/number.module:205
+msgid "\"Maximum\" must be a number."
+msgstr ""
+
+#: modules/number/number.module:222
+msgid "%name: the value may be no smaller than %min."
+msgstr ""
+
+#: modules/number/number.module:225
+msgid "%name: the value may be no larger than %max."
+msgstr ""
+
+#: modules/number/number.module:273
+msgid "unformatted"
+msgstr ""
+
+#: modules/number/number.module:515
+msgid "Only numbers and decimals are allowed in %field."
+msgstr ""
+
+#: modules/number/number.module:538
+msgid "Only numbers are allowed in %field."
+msgstr ""
+
+#: modules/number/number.module:562
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
+msgstr ""
+
+#: modules/number/number.module:0
+msgid "number"
+msgstr ""
+
+#: modules/number/number.info:0
+msgid "Number"
+msgstr ""
+
+#: modules/number/number.info:0
+msgid "Defines numeric field types."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.sv.po
new file mode 100644
index 0000000..46dc779
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/number/translations/modules-number.sv.po
@@ -0,0 +1,190 @@
+# $Id$
+#
+# Swedish translation of Drupal (number)
+# Generated from files:
+#  number.module,v 1.91.2.35 2009/04/29 20:51:53 karens
+#  number.info,v 1.7 2008/04/23 18:02:16 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Number 6.x\n"
+"POT-Creation-Date: 2009-05-27 13:47+0200\n"
+"PO-Revision-Date: 2009-05-27 14:20+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: number.module:34
+msgid "Integer"
+msgstr "Heltal"
+
+#: number.module:35
+msgid "Store a number in the database as an integer."
+msgstr "Lagra ett tal i databasen som ett heltal."
+
+#: number.module:39
+msgid "Decimal"
+msgstr "Decimaltal"
+
+#: number.module:40
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Lagra ett tal i databasen som ett bestämt format för decimaltal."
+
+#: number.module:44
+msgid "Float"
+msgstr "Flyttal"
+
+#: number.module:45
+msgid "Store a number in the database in a floating point format."
+msgstr "Lagra ett tal i databasen som ett flytande format för tal."
+
+#: number.module:60
+msgid "Minimum"
+msgstr "Lägsta"
+
+#: number.module:66
+msgid "Maximum"
+msgstr "Högsta"
+
+#: number.module:74
+msgid "Precision"
+msgstr "Precision"
+
+#: number.module:75
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr "Det totala antalet siffror att lagra i databasen, inklusive de till höger om decimalkommat."
+
+#: number.module:81
+msgid "Scale"
+msgstr "Skala"
+
+#: number.module:82
+msgid "The number of digits to the right of the decimal."
+msgstr "Antalet siffror till höger om decimalkommat."
+
+#: number.module:88
+msgid "Decimal marker"
+msgstr "Decimalmärke"
+
+#: number.module:89
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "Tecken användare kommer att mata in för att markera decimalpunkten i formulär."
+
+#: number.module:95
+msgid "Prefix"
+msgstr "Prefix"
+
+#: number.module:98
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Definiera en sträng som skall sättas in före värdet, till exempel $ eller €. Utelämna för tomt värde. Separera enstaka och flerfaldiga värden med en stående streck (krona|kronor)."
+
+#: number.module:102
+msgid "Suffix"
+msgstr "Suffix"
+
+#: number.module:105
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Definiera en sträng som skall sättas in efter värdet, såsom m², m/s², kb/s. Utelämna för tomt värde. Separera enstaka och flervärdiga värden med ett stående streck (krona|kronor)."
+
+#: number.module:109
+msgid "Allowed values"
+msgstr "Tillåtna värden"
+
+#: number.module:115
+msgid "Allowed values list"
+msgstr "Tillåtna listvärden"
+
+#: number.module:119
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr "De möjliga värdena detta fält kan innehålla. Ange ett värde per rad i formatet nyckel/etikett. Denna nyckel är värdet som kommer att lagras i databasen och måste överensstämma typen för fältlagring (%type). Etikett är valfritt, och nyckeln som kommer att användas är etiketten om ingen etikett är specificerad.<br />Tillåtna HTML-taggar: @tags"
+
+#: number.module:123
+msgid "PHP code"
+msgstr "PHP-kod"
+
+#: number.module:130;139
+msgid "Code"
+msgstr "Kod"
+
+#: number.module:133
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Enbart avancerat användande: PHP-kod som skall returnera en spärrad lista av tillåtna värden. Skall inte inkludera avgränsarna <?php ?>. Om detta fält är ifyllt kommer listan som returneras av denna kod att åsidosätta det tillåtna värdet i listan ovan."
+
+#: number.module:140
+msgid "<none>"
+msgstr "<ingen>"
+
+#: number.module:141
+msgid "You're not allowed to input PHP code."
+msgstr "Du har inte tillåtelse att mata in PHP-kod."
+
+#: number.module:141
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr "Denna PHP-kod angavs av en administratör och kommer att åsidosätta det tillåtna värdet ovan."
+
+#: number.module:181
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Tillåtna värden"
+
+#: number.module:198
+msgid "\"Minimum\" must be a number."
+msgstr "\"Lägsta\" måste vara ett tal."
+
+#: number.module:205
+msgid "\"Maximum\" must be a number."
+msgstr "\"Högsta\" måste vara ett tal."
+
+#: number.module:222
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: värdet får inte vara mindre än %min."
+
+#: number.module:225
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: värdet får inte större än %max."
+
+#: number.module:238
+msgid "%name: illegal value."
+msgstr "%name: otillåtet värde."
+
+#: number.module:273
+msgid "unformatted"
+msgstr "oformaterad"
+
+#: number.module:356
+msgid "Text field"
+msgstr "Textfält"
+
+#: number.module:515
+msgid "Only numbers and decimals are allowed in %field."
+msgstr "Enbart sifror och decimaltal är tillåtna i %field."
+
+#: number.module:538
+msgid "Only numbers are allowed in %field."
+msgstr "Enbart siffror är tillåtna i %field."
+
+#: number.module:562
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
+msgstr "Enbart siffror och decimaltalstecken (%decimal) är tillåtna i %field."
+
+#: number.module:0
+msgid "number"
+msgstr "number"
+
+#: number.info:0
+msgid "Number"
+msgstr "Nummer"
+
+#: number.info:0
+msgid "Defines numeric field types."
+msgstr "Definierar numeriska fälttyper."
+
+#: number.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/help/optionwidgets.help.ini b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/help/optionwidgets.help.ini
new file mode 100644
index 0000000..d758d55
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/help/optionwidgets.help.ini
@@ -0,0 +1,11 @@
+; $Id$
+
+[advanced help settings]
+hide = TRUE
+
+[overview]
+title = Overview
+
+[optionwidgets]
+title = Optionwidgets
+parent = content%fields
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/help/optionwidgets.html b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/help/optionwidgets.html
new file mode 100644
index 0000000..c7f444f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/help/optionwidgets.html
@@ -0,0 +1,2 @@
+<p>Optionwidgets creates drop-down select lists, checkboxes, and radio widgets that can be used with fields that have specific allowed values.</p>
+<p>The <a href="&topic:number/number&">Number</a> and <a href="&topic:text/text&">Text</a> fields have settings for creating lists of allowed values that can be used in Optionwidgets. The <a href="&topic:nodereference/nodereference&">Nodereference</a> and <a href="&topic:userreference/userreference&">Userreference</a> fields use Optionwidgets to present the possible values in select lists or checkboxes.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.info
new file mode 100644
index 0000000..aac00fd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.info
@@ -0,0 +1,12 @@
+; $Id$
+name = Option Widgets
+description = Defines selection, check box and radio button widgets for text and numeric fields.
+dependencies[] = content
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.install b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.install
new file mode 100644
index 0000000..5b90564
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.install
@@ -0,0 +1,76 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_install().
+ */
+function optionwidgets_install() {
+  drupal_load('module', 'content');
+  content_notify('install', 'optionwidgets');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function optionwidgets_uninstall() {
+  drupal_load('module', 'content');
+  content_notify('uninstall', 'optionwidgets');
+}
+
+/**
+ * Implementation of hook_enable().
+ *
+ * Notify content module when this module is enabled.
+ */
+function optionwidgets_enable() {
+  drupal_load('module', 'content');
+  content_notify('enable', 'optionwidgets');
+}
+
+/**
+ * Implementation of hook_disable().
+ *
+ * Notify content module when this module is disabled.
+ */
+function optionwidgets_disable() {
+  drupal_load('module', 'content');
+  content_notify('disable', 'optionwidgets');
+}
+
+function optionwidgets_update_last_removed() {
+  return 1;
+}
+
+/**
+ * Rename widgets from 'options_xxx' to 'optionwidgets_xxx' so hook_elements
+ * and hook_themes items are prefixed with module name as they should be.
+ *
+ * The change in widget types will keep content_update_6000() from correctly updating
+ * the module names in the field and instance tables, so do it here.
+ */
+function optionwidgets_update_6000() {
+  if ($abort = content_check_update('optionwidgets')) {
+    return $abort;
+  }
+
+  $ret = array();
+
+  drupal_load('module', 'content');
+  $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_type = 'optionwidgets_select' WHERE widget_type = 'options_select'");
+  $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_type = 'optionwidgets_onoff' WHERE widget_type = 'options_onoff'");
+  $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_type = 'optionwidgets_buttons' WHERE widget_type = 'options_buttons'");
+
+  content_associate_fields('optionwidgets');
+  return $ret;
+}
+
+/**
+ * Update 6000 was possibly broken if it was executed while
+ * the modules were still disabled, so we re-run it.
+ * Having it run a second time on sites that got updated correctly has no
+ * side-effect (see http://drupal.org/node/310873).
+ */
+function optionwidgets_update_6001() {
+  return optionwidgets_update_6000();
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.module
new file mode 100644
index 0000000..6ddddef
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/optionwidgets.module
@@ -0,0 +1,456 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Defines selection, check box and radio button widgets for text and numeric fields.
+ */
+
+/**
+ * Implementation of hook_form_alter.
+ */
+function optionwidgets_form_alter(&$form, $form_state, $form_id) {
+  // Provide additional help for the field settings form.
+  if ($form_id == 'content_field_edit_form' && isset($form['widget'])) {
+    $widget_type = $form['#field']['widget']['type'];
+    $field_type = $form['#field']['type'];
+    $label = $form['#field']['widget']['label'];
+
+    $output = '<p>'. t('Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types.', array('%field' => $label)) .'</p>';
+
+    if ($widget_type == 'optionwidgets_onoff') {
+      $output .= '<p>'. t("For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value.") .'</p>';
+    }
+    elseif ($widget_type == 'optionwidgets_buttons') {
+      $output .= '<p>'. t("The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed.") .'</p>';
+    }
+
+    if (in_array($field_type, array('text', 'number_integer', 'number_float', 'number_decimal'))
+    && in_array($widget_type, array('optionwidgets_onoff', 'optionwidgets_buttons', 'optionwidgets_select'))) {
+      $form['field']['allowed_values_fieldset']['#collapsed'] = FALSE;
+      $form['field']['allowed_values_fieldset']['#description'] = $output;
+
+      // If no 'allowed values' were set yet, add a remainder in the messages area.
+      if (empty($form_state['post'])
+      && empty($form['field']['allowed_values_fieldset']['allowed_values']['#default_value'])
+      && empty($form['field']['allowed_values_fieldset']['advanced_options']['allowed_values_php']['#default_value'])) {
+        drupal_set_message(t("You need to specify the 'allowed values' for this field."), 'warning');
+      }
+    }
+  }
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function optionwidgets_theme() {
+  return array(
+    'optionwidgets_select' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'optionwidgets_buttons' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'optionwidgets_onoff' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'optionwidgets_none' => array(
+      'arguments' => array('widget_type' => NULL, 'field_name' => NULL, 'node_type' => NULL),
+      ),
+  );
+}
+
+/**
+ * Implementation of hook_widget_info().
+ *
+ * We need custom handling of multiple values because we need
+ * to combine them into a options list rather than display
+ * multiple elements. We will use the content module's default
+ * handling for default values.
+ *
+ * Callbacks can be omitted if default handing is used.
+ * They're included here just so this module can be used
+ * as an example for custom modules that might do things
+ * differently.
+ */
+function optionwidgets_widget_info() {
+
+  return array(
+    'optionwidgets_select' => array(
+      'label' => t('Select list'),
+      'field types' => array('text', 'number_integer', 'number_decimal', 'number_float'),
+      'multiple values' => CONTENT_HANDLE_MODULE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+    'optionwidgets_buttons' => array(
+      'label' => t('Check boxes/radio buttons'),
+      'field types' => array('text', 'number_integer', 'number_decimal', 'number_float'),
+      'multiple values' => CONTENT_HANDLE_MODULE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+    'optionwidgets_onoff' => array(
+      'label' => t('Single on/off checkbox'),
+      'field types' => array('text', 'number_integer', 'number_decimal', 'number_float'),
+      'multiple values' => CONTENT_HANDLE_MODULE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of FAPI hook_elements().
+ *
+ * Any FAPI callbacks needed for individual widgets can be declared here,
+ * and the element will be passed to those callbacks for processing.
+ *
+ * Drupal will automatically theme the element using a theme with
+ * the same name as the hook_elements key.
+ */
+function optionwidgets_elements() {
+  return array(
+    'optionwidgets_select' => array(
+      '#input' => TRUE,
+      '#columns' => array('value'), '#delta' => 0,
+      '#process' => array('optionwidgets_select_process'),
+      ),
+    'optionwidgets_buttons' => array(
+      '#input' => TRUE,
+      '#columns' => array('value'), '#delta' => 0,
+      '#process' => array('optionwidgets_buttons_process'),
+      ),
+    'optionwidgets_onoff' => array(
+      '#input' => TRUE,
+      '#columns' => array('value'), '#delta' => 0,
+      '#process' => array('optionwidgets_onoff_process'),
+      ),
+    );
+}
+
+/**
+ * Implementation of hook_widget().
+ *
+ * Attach a single form element to the form. It will be built out and
+ * validated in the callback(s) listed in hook_elements. We build it
+ * out in the callbacks rather than here in hook_widget so it can be
+ * plugged into any module that can provide it with valid
+ * $field information.
+ *
+ * Content module will set the weight, field name and delta values
+ * for each form element. This is a change from earlier CCK versions
+ * where the widget managed its own multiple values.
+ *
+ * If there are multiple values for this field, the content module will
+ * call this function as many times as needed.
+ *
+ * @param $form
+ *   the entire form array, $form['#node'] holds node information
+ * @param $form_state
+ *   the form_state, $form_state['values'][$field['field_name']]
+ *   holds the field's form values.
+ * @param $field
+ *   the field array
+ * @param $items
+ *   an array of default values for this element
+ * @param $delta
+ *   the order of this item in the array of subelements (0, 1, 2, etc)
+ *
+ * @return
+ *   the form item for a single element for this field
+ */
+function optionwidgets_widget(&$form, &$form_state, $field, $items, $delta = NULL) {
+  $element = array(
+    '#type' => $field['widget']['type'],
+    '#default_value' => !empty($items) ? $items : array(),
+  );
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function optionwidgets_buttons_process($element, $edit, &$form_state, $form) {
+  $field_name = $element['#field_name'];
+  $field = $form['#field_info'][$field_name];
+  $field_key  = $element['#columns'][0];
+
+  // See if this element is in the database format or the transformed format,
+  // and transform it if necessary.
+  if (is_array($element['#value']) && !array_key_exists($field_key, $element['#value'])) {
+    $element['#value'] = optionwidgets_data2form($element, $element['#default_value'], $field);
+  }
+  $options = optionwidgets_options($field);
+  $element[$field_key] = array(
+    '#type' => $field['multiple'] ? 'checkboxes' : 'radios',
+    '#title' => $element['#title'],
+    '#description' => $element['#description'],
+    '#required' => isset($element['#required']) ? $element['#required'] : $field['required'],
+    '#multiple' => isset($element['#multiple']) ? $element['#multiple'] : $field['multiple'],
+    '#options' => $options,
+    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL,
+  );
+
+  // Set #element_validate in a way that it will not wipe out other
+  // validation functions already set by other modules.
+  if (empty($element['#element_validate'])) {
+    $element['#element_validate'] = array();
+  }
+  array_unshift($element['#element_validate'], 'optionwidgets_validate');
+
+  // Make sure field info will be available to the validator which
+  // does not get the values in $form.
+  $form_state['#field_info'][$field['field_name']] = $field;
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function optionwidgets_select_process($element, $edit, &$form_state, $form) {
+  $field_name = $element['#field_name'];
+  $field = $form['#field_info'][$field_name];
+  $field_key  = $element['#columns'][0];
+
+  // See if this element is in the database format or the transformed format,
+  // and transform it if necessary.
+  if (is_array($element['#value']) && !array_key_exists($field_key, $element['#value'])) {
+    $element['#value'] = optionwidgets_data2form($element, $element['#default_value'], $field);
+  }
+
+  $options = optionwidgets_options($field, FALSE);
+
+  // For this specific widget, HTML should be filtered out and entities left unencoded.
+  // See content_allowed_values / content_filter_xss / filter_xss.
+  content_allowed_values_filter_html($options);
+
+  $element[$field_key] = array(
+    '#type' => 'select',
+    '#title' => $element['#title'],
+    '#description' => $element['#description'],
+    '#required' => isset($element['#required']) ? $element['#required'] : $field['required'],
+    '#multiple' => isset($element['#multiple']) ? $element['#multiple'] : $field['multiple'],
+    '#options' => $options,
+    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL,
+  );
+
+  // Set #element_validate in a way that it will not wipe out other
+  // validation functions already set by other modules.
+  if (empty($element['#element_validate'])) {
+    $element['#element_validate'] = array();
+  }
+  array_unshift($element['#element_validate'], 'optionwidgets_validate');
+
+  // Make sure field info will be available to the validator which
+  // does not get the values in $form.
+
+  // TODO for some reason putting the $field array into $form_state['storage']
+  // causes the node's hook_form_alter to be invoked twice, garbling the
+  // results. Need to investigate why that is happening (a core bug?), but
+  // in the meantime avoid using $form_state['storage'] to store anything.
+  $form_state['#field_info'][$field['field_name']] = $field;
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function optionwidgets_onoff_process($element, $edit, &$form_state, $form) {
+  $field_name = $element['#field_name'];
+  $field = $form['#field_info'][$field_name];
+  $field_key  = $element['#columns'][0];
+
+  // See if this element is in the database format or the transformed format,
+  // and transform it if necessary.
+  if (is_array($element['#value']) && !array_key_exists($field_key, $element['#value'])) {
+    $element['#value'] = optionwidgets_data2form($element, $element['#default_value'], $field);
+  }
+  $options = optionwidgets_options($field);
+  $keys = array_keys($options);
+  $on_value = (!empty($keys) && isset($keys[1])) ? $keys[1] : NULL;
+  $element[$field_key] = array(
+    '#type' => 'checkbox',
+    '#title' => isset($options[$on_value]) ? $options[$on_value] : '',
+    '#description' => $element['#description'],
+    '#required' => isset($element['#required']) ? $element['#required'] : $field['required'],
+    '#default_value' => isset($element['#value'][$field_key][0]) ? $element['#value'][$field_key][0] == $on_value : FALSE,
+    '#return_value' => $on_value,
+  );
+
+  // Set #element_validate in a way that it will not wipe out other
+  // validation functions already set by other modules.
+  if (empty($element['#element_validate'])) {
+    $element['#element_validate'] = array();
+  }
+  array_unshift($element['#element_validate'], 'optionwidgets_validate');
+
+  // Make sure field info will be available to the validator which
+  // does not get the values in $form.
+  $form_state['#field_info'][$field['field_name']] = $field;
+  return $element;
+}
+
+/**
+ * FAPI function to validate optionwidgets element.
+ */
+function optionwidgets_validate($element, &$form_state) {
+  // Transpose selections from field => delta to delta => field,
+  // turning multiple selected options into multiple parent elements.
+  // Immediate parent is the delta, need to get back to parent's parent
+  // to create multiple elements.
+  $field = $form_state['#field_info'][$element['#field_name']];
+  $items = optionwidgets_form2data($element, $field);
+  form_set_value($element, $items, $form_state);
+
+  // Check we don't exceed the allowed number of values.
+  if ($field['multiple'] >= 2) {
+    // Filter out 'none' value (if present, will always be in key 0)
+    $field_key = $element['#columns'][0];
+    if (isset($items[0][$field_key]) && $items[0][$field_key] === '') {
+      unset($items[0]);
+    }
+    if (count($items) > $field['multiple']) {
+      $field_key  = $element['#columns'][0];
+      form_error($element[$field_key], t('%name: this field cannot hold more than @count values.', array('%name' => t($field['widget']['label']), '@count' => $field['multiple'])));
+    }
+  }
+}
+
+/**
+ * Helper function to transpose the values as stored in the database
+ * to the format the widget needs. Can be called anywhere this
+ * transformation is needed.
+ */
+function optionwidgets_data2form($element, $items, $field) {
+  $field_key  = $element['#columns'][0];
+  $options    = optionwidgets_options($field);
+
+  $items_transposed = content_transpose_array_rows_cols($items);
+  $values = (isset($items_transposed[$field_key]) && is_array($items_transposed[$field_key])) ? $items_transposed[$field_key] : array();
+  $keys = array();
+  foreach ($values as $value) {
+    $key = array_search($value, array_keys($options));
+    if (isset($key)) {
+      $keys[] = $value;
+    }
+  }
+  if ($field['multiple'] || $element['#type'] == 'optionwidgets_onoff') {
+    return array($field_key => $keys);
+  }
+  else {
+    return !empty($keys) ? array($field_key => $value) : array();
+  }
+}
+
+/**
+ * Helper function to transpose the values returned by submitting the widget
+ * to the format to be stored in the field. Can be called anywhere this
+ * transformation is needed.
+ */
+function optionwidgets_form2data($element, $field) {
+  $field_key = $element['#columns'][0];
+  $items = (array) $element[$field_key]['#value'];
+  $options = optionwidgets_options($field);
+
+  $values = array_values($items);
+
+  if ($element['#type'] == 'optionwidgets_onoff' && ($values[0] === 0)) {
+    $keys = array_keys($options);
+    $values = array(array_key_exists(0, $keys) ? $keys[0] : NULL);
+  }
+
+  if (empty($values)) {
+    $values[] = NULL;
+  }
+  $result = content_transpose_array_rows_cols(array($field_key => $values));
+  return $result;
+}
+
+/**
+ * Helper function for finding the allowed values list for a field.
+ *
+ * See if there is a module hook for the option values.
+ * Otherwise, try content_allowed_values() for an options list.
+ *
+ * @param $field
+ *   The field whose allowed values are requested.
+ * @param $flatten
+ *   Optional. Use TRUE to return a flattened array (default).
+ *   FALSE can be used to support optgroups for select widgets
+ *   when allowed values list is generated using PHP code.
+ */
+function optionwidgets_options($field, $flatten = TRUE) {
+  $function = $field['module'] .'_allowed_values';
+  $options = function_exists($function) ? $function($field) : (array) content_allowed_values($field, $flatten);
+  // Add an empty choice for :
+  // - non required radios
+  // - non required selects
+  if (!$field['required']) {
+    if ((in_array($field['widget']['type'], array('optionwidgets_buttons', 'nodereference_buttons', 'userreference_buttons')) && !$field['multiple'])
+      || (in_array($field['widget']['type'], array('optionwidgets_select', 'nodereference_select', 'userreference_select')))) {
+      $options = array('' => theme('optionwidgets_none', $field)) + $options;
+    }
+  }
+  return $options;
+}
+
+/**
+ *  Theme the label for the empty value for options that are not required.
+ *  The default theme will display N/A for a radio list and blank for a select.
+ */
+function theme_optionwidgets_none($field) {
+  switch ($field['widget']['type']) {
+    case 'optionwidgets_buttons':
+    case 'nodereference_buttons':
+    case 'userreference_buttons':
+      return t('N/A');
+    case 'optionwidgets_select':
+    case 'nodereference_select':
+    case 'userreference_select':
+      return t('- None -');
+    default :
+      return '';
+  }
+}
+
+/**
+ * FAPI themes for optionwidgets.
+ *
+ * The select, checkboxes or radios are already rendered by the
+ * select, checkboxes, or radios themes and the HTML output
+ * lives in $element['#children']. Override this theme to
+ * make custom changes to the output.
+ *
+ * $element['#field_name'] contains the field name
+ * $element['#delta]  is the position of this element in the group
+ */
+function theme_optionwidgets_select($element) {
+  return $element['#children'];
+}
+
+function theme_optionwidgets_onoff($element) {
+  return $element['#children'];
+}
+
+function theme_optionwidgets_buttons($element) {
+  return $element['#children'];
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.de.po
new file mode 100644
index 0000000..43ae44c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.de.po
@@ -0,0 +1,79 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2008-11-05 12:54+0100\n"
+"PO-Revision-Date: 2008-11-05 13:34+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/optionwidgets/optionwidgets.module:19
+msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr "Eine Liste von Optionen als Liste in der <strong>zulässigen Werteliste</strong> oder als ein Array in PHP-Code erstellen. Diese Werte werden für %field in allen Inhaltsstypen gleich sein."
+
+#: modules/optionwidgets/optionwidgets.module:22
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr "Für ein einzelnes „an/aus“ Ankreuzfeld-Steuerelement sollte zuerst der ‚aus‘ Wert und dann der ‚an‘ Wert im Bereich der <strong>gültigen Werte</strong> angegeben werden. Das Ankreuzfeld wird mit der Beschriftung des ‚an‘ Wertes beschriftet."
+
+#: modules/optionwidgets/optionwidgets.module:25
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "Das ‚Ankreuzfeld/Auswahlknöpfe‘-Steuerelement wird Ankreuzfelder anzeigen, wenn die Option für mehrere Werte bei diesem Feld ausgewählt wurde, ansonsten werden Auswahlknöpfe anzeigt."
+
+#: modules/optionwidgets/optionwidgets.module:37
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Für dieses Feld müssen die „zulässigen Werte“ angegeben werden."
+
+#: modules/optionwidgets/optionwidgets.module:96
+msgid "Single on/off checkbox"
+msgstr "Einzelnes an/aus Ankreuzfeld"
+
+#: modules/optionwidgets/optionwidgets.module:326
+msgid "%name: this field cannot hold more than @count values."
+msgstr "%name: Dieses Feld kann nicht mehr als @count Werte enthalten."
+
+#: modules/optionwidgets/optionwidgets.module:411
+msgid "N/A"
+msgstr "k.A."
+
+#: modules/optionwidgets/optionwidgets.module:415
+msgid "- None -"
+msgstr "- Keine -"
+
+#: modules/optionwidgets/optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "Options-Steuerelemente"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Options-Steuerelemente"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Definiert Auswahlfeld-, Ankreuzfeld- und Auswahlknopf-Steuerelemente für Texte und numerische Felder."
+
+#: modules/text/text.module:41
+#: modules/text/text.info:0
+msgid "Text"
+msgstr "Text"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.fr.po
new file mode 100644
index 0000000..c02d63b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.fr.po
@@ -0,0 +1,75 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:24+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: modules/optionwidgets/optionwidgets.module:10
+msgid ""
+"Create a list of options as a list in <strong>Allowed values</strong> or as "
+"an array in PHP code. These values will be the same for %field in all "
+"content types."
+msgstr ""
+"Créez une liste d'options en tant que liste dans les <strong>Valeurs "
+"permises</strong> ou en tant que tableau dans le code PHP. Ces valeurs "
+"seront identiques pour '%field' dans tous les types de contenus."
+
+#: modules/optionwidgets/optionwidgets.module:12
+msgid ""
+"For a 'single on/off checkbox' widget, define the 'off' value first, then "
+"the 'on' value in the <strong>Allowed values</strong> section. Note that the "
+"checkbox will be labeled with the label of the 'on' value."
+msgstr ""
+"Pour un widget 'case à cocher on/off unique', définissez d'abord la valeur "
+"'off' puis la valeur 'on' dans la section <strong>Valeurs permises</strong>. "
+"Notez que l'intitulé de la case à cocher sera celui de la valeur 'on'."
+
+#: modules/optionwidgets/optionwidgets.module:15
+msgid ""
+"The 'checkboxes/radio buttons' widget will display checkboxes if the "
+"multiple values option is selected for this field, otherwise radios will be "
+"displayed."
+msgstr ""
+"Le widget 'cases à cocher/bouton radio' fera apparaître des cases à cocher "
+"si l'option 'valeurs multiples' est sélectionnée pour ce champ ; dans le cas "
+"contraire, ce seront des boutons radio."
+
+#: modules/optionwidgets/optionwidgets.module:70
+msgid "Check boxes/radio buttons"
+msgstr "Cases à cocher/boutons radio"
+
+#: modules/optionwidgets/optionwidgets.module:78
+msgid "Single on/off checkbox"
+msgstr "Case à cocher on/off unique"
+
+#: modules/optionwidgets/optionwidgets.module:364
+msgid "N/A"
+msgstr "Non disponible"
+
+#: modules/optionwidgets/optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "optionwidgets"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Option Widgets"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid ""
+"Defines selection, check box and radio button widgets for text and numeric "
+"fields."
+msgstr ""
+"Permet de créer des widgets de sélection, cases à cocher et boutons radio "
+"pour les champs de texte et numériques."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.hu.po
new file mode 100644
index 0000000..f4e15e8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.hu.po
@@ -0,0 +1,84 @@
+# Hungarian translation of cck (6.x-2.0-rc10)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  optionwidgets.module,v 1.69.2.18 2008/10/06 15:11:39 karens
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck (6.x-2.0-rc10)\n"
+"POT-Creation-Date: 2008-10-31 12:16-0500\n"
+"PO-Revision-Date: 2008-10-26 11:40-0500\n"
+"Last-Translator: Balogh Zoltán\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: modules/optionwidgets/optionwidgets.module:401
+msgid "- None -"
+msgstr "- Nincs -"
+
+#: modules/optionwidgets/optionwidgets.module:397
+msgid "N/A"
+msgstr "N/A"
+
+#: modules/optionwidgets/optionwidgets.module:19
+msgid ""
+"Create a list of options as a list in <strong>Allowed values "
+"list</strong> or as an array in PHP code. These values will be the "
+"same for %field in all content types."
+msgstr ""
+"A választható értékek megadása az <strong>Engedélyezett "
+"értékek</strong> mezőben, vagy egy PHP kóddal előállított "
+"tömbben. Erre a mezőre (%field) vonatkozóan ezek az értékek "
+"minden tartalomtípusnál megegyeznek."
+
+#: modules/optionwidgets/optionwidgets.module:22
+msgid ""
+"For a 'single on/off checkbox' widget, define the 'off' value first, "
+"then the 'on' value in the <strong>Allowed values</strong> section. "
+"Note that the checkbox will be labeled with the label of the 'on' "
+"value."
+msgstr ""
+"Az „egyszerű jelölőnégyzet” felületi elemnél először a "
+"„ki”, majd a „be” állapothoz tartozó értéket kell megadni "
+"az <strong>Engedélyezett értékek</strong> részben. A "
+"jelölőnégyzet címkéje a „be” állapothoz tartozó érték "
+"címkéje lesz."
+
+#: modules/optionwidgets/optionwidgets.module:25
+msgid ""
+"The 'checkboxes/radio buttons' widget will display checkboxes if the "
+"multiple values option is selected for this field, otherwise radios "
+"will be displayed."
+msgstr ""
+"A „Jelölőnégyzetek/választógombok” felületi elem "
+"jelölőnégyzeteket jelenít meg, ha a mezőnek több értéke is "
+"lehet, különben választógombok jelennek meg."
+
+#: modules/optionwidgets/optionwidgets.module:37
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Ki kell tölteni a „Megengedett értékek”-et ennél a mezőnél."
+
+#: modules/optionwidgets/optionwidgets.module:96
+msgid "Single on/off checkbox"
+msgstr "Egyszerű be/ki jelölőnégyzet"
+
+#: modules/optionwidgets/optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "optionwidgets"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Kapcsoló felületi elemek"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid ""
+"Defines selection, check box and radio button widgets for text and "
+"numeric fields."
+msgstr ""
+"A szöveg és szám mezőtípushoz legördülő lista, "
+"jelölőnégyzet és választógomb típusú felületi elemeket ad."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.nl.po
new file mode 100644
index 0000000..be13b61
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.nl.po
@@ -0,0 +1,89 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:26+0200\n"
+"PO-Revision-Date: 2009-06-03 14:26+0200\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: optionwidgets.module:19
+msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr ""
+"Maak een lijst met opties als in <strong>Toegestane "
+"waardeslijst</strong> of als een array in PHP. Deze waarde zullen "
+"hetzelfde zijn in %field in alle inhoudstypes."
+
+#: optionwidgets.module:22
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr ""
+"Voor een aan/uit vinkjewidget moet je eerst de 'uit'-waarde opgeven en "
+"daarna de 'aan'-waarde in de <strong>Toegestane "
+"waarde</strong>-sectie. Merk op dat het vinkje zal worden gelabeled "
+"met de waarde van 'aan'."
+
+#: optionwidgets.module:25
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr ""
+"De 'vinkje-/radio button'widget zal een vinkje tonen als de meerdere "
+"toegestane waardes is geselecteerd voor dit veld, anders zullen radio "
+"buttons worden gebruikt."
+
+#: optionwidgets.module:37
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Je moet de toegestane waardes voor dit veld opgeven."
+
+#: optionwidgets.module:80
+msgid "Select list"
+msgstr "Selectielijst"
+
+#: optionwidgets.module:88
+msgid "Check boxes/radio buttons"
+msgstr "Vinkje/radio buttons"
+
+#: optionwidgets.module:96
+msgid "Single on/off checkbox"
+msgstr "Een aan/uit vinkje"
+
+#: optionwidgets.module:331
+msgid "%name: this field cannot hold more than @count values."
+msgstr "%name: dit veld kan niet meer dan @count waardes bevatten."
+
+#: optionwidgets.module:416
+msgid "N/A"
+msgstr "Niet beschikbaar"
+
+#: optionwidgets.module:420
+msgid "- None -"
+msgstr "- Geen -"
+
+#: optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "optiewidgets"
+
+#: optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Optiewidgets"
+
+#: optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr ""
+"Levert selectie-, vinkje- en radio buttonwidgets voor tekst- en "
+"numerieke velden."
+
+#: optionwidgets.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.pot
new file mode 100644
index 0000000..06a7059
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.pot
@@ -0,0 +1,71 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-optionwidgets)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
+#  text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/optionwidgets/optionwidgets.module:19
+msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:22
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:25
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:37
+msgid "You need to specify the 'allowed values' for this field."
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:96
+msgid "Single on/off checkbox"
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:331
+msgid "%name: this field cannot hold more than @count values."
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:416
+msgid "N/A"
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:420
+msgid "- None -"
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.module:0
+msgid "optionwidgets"
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Option Widgets"
+msgstr ""
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr ""
+
+#: modules/text/text.module:41 modules/text/text.info:0
+msgid "Text"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.sv.po
new file mode 100644
index 0000000..99e0dd4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/optionwidgets/translations/modules-optionwidgets.sv.po
@@ -0,0 +1,78 @@
+# $Id$
+#
+# Swedish translation of Drupal (optionwidgets)
+# Generated from files:
+#  optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Optionwidgets 6.x\n"
+"POT-Creation-Date: 2009-05-27 13:47+0200\n"
+"PO-Revision-Date: 2009-05-27 14:01+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: optionwidgets.module:19
+msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr "Skapa en lista av alternativ som en lista i <strong>Tillåtna värden</strong> eller som en lista i PHP-kod. Dessa värden kommer att vara likadana för %field i alla innehållstyper."
+
+#: optionwidgets.module:22
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr "För en gränssnittskomponent \"enstaka kryssruta för av/på\", definiera värdet för \"av\" först, sedan värdet för \"på\" i <strong>Tillåtna värden</strong. Observera att kryssrutan kommer att namnges efter etiketten på värdet för \"på\"."
+
+#: optionwidgets.module:25
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "Gränssnittskomponenten för \"kryssrutor/radioknappar\" kommer att visa kryssrutor om flera alternativet flera värden är valt för detta vält, annars kommer radioknappar att visas."
+
+#: optionwidgets.module:37
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Du måste ange \"tillåtna värden\" för detta fält."
+
+#: optionwidgets.module:80
+msgid "Select list"
+msgstr "Listval"
+
+#: optionwidgets.module:88
+msgid "Check boxes/radio buttons"
+msgstr "Kryssrutor/radioknappar"
+
+#: optionwidgets.module:96
+msgid "Single on/off checkbox"
+msgstr "Enstaka kryssruta för av/på"
+
+#: optionwidgets.module:331
+msgid "%name: this field cannot hold more than @count values."
+msgstr "%name: detta fält kan inte innehålla mer än @count värden."
+
+#: optionwidgets.module:416
+msgid "N/A"
+msgstr "Ej tillgänglig"
+
+#: optionwidgets.module:420
+msgid "- None -"
+msgstr "- Ingen -"
+
+#: optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "optionwidgets"
+
+#: optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Alternativ för gränssnittskomponent"
+
+#: optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Definierar urval, gränssnittskomponenter för kryssrutor och radioknappar för text- och numeriska fält."
+
+#: optionwidgets.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/help/text.help.ini b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/help/text.help.ini
new file mode 100644
index 0000000..464c3f7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/help/text.help.ini
@@ -0,0 +1,8 @@
+; $Id$
+
+[advanced help settings]
+hide = TRUE
+
+[text]
+title = Text field
+parent = content%fields
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/help/text.html b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/help/text.html
new file mode 100644
index 0000000..e5a1f6a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/help/text.html
@@ -0,0 +1,2 @@
+<p>The Text field stores textual data in the database. It can either be a simple textfield to hold up to 255 characters, or a textarea of an unlimited size that can be combined with input filters to store lengthy descriptions and HTML code.</p>
+<p>The Text field provides a place for the administrator to create a list of 'Allowed values' for the field. When used with <a href="&topic:optionwidgets/optionwidgets&">Optionwidgets</a>, the allowed values are presented to the end user in a drop-down select list, checkboxes, or radios.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.info
new file mode 100644
index 0000000..526f53a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.info
@@ -0,0 +1,12 @@
+; $Id$
+name = Text
+description = Defines simple text field types.
+dependencies[] = content
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.install b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.install
new file mode 100644
index 0000000..a6569c5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.install
@@ -0,0 +1,156 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_install().
+ */
+function text_install() {
+  drupal_load('module', 'content');
+  content_notify('install', 'text');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function text_uninstall() {
+  drupal_load('module', 'content');
+  content_notify('uninstall', 'text');
+}
+
+/**
+ * Implementation of hook_enable().
+ *
+ * Notify content module when this module is enabled.
+ */
+function text_enable() {
+  drupal_load('module', 'content');
+  content_notify('enable', 'text');
+}
+
+/**
+ * Implementation of hook_disable().
+ *
+ * Notify content module when this module is disabled.
+ */
+function text_disable() {
+  drupal_load('module', 'content');
+  content_notify('disable', 'text');
+}
+
+function text_update_last_removed() {
+  return 5;
+}
+
+/**
+ * Rename widgets to match hook_elements values.
+ *
+ * The change in field_types will keep content_update_6000() from correctly updating
+ * the module names in the field and instance tables, so do it here.
+ *
+ */
+function text_update_6000() {
+  if ($abort = content_check_update('text')) {
+    return $abort;
+  }
+
+  $ret = array();
+
+  drupal_load('module', 'content');
+  $result = db_query("SELECT * FROM {". content_instance_tablename() ."} WHERE widget_type = 'text'");
+  while ($field_instance = db_fetch_array($result)) {
+    $widget_settings = unserialize($field_instance['widget_settings']);
+    $new_widget_type = ($widget_settings['rows'] > 1) ? 'text_textarea' : 'text_textfield';
+    $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_module = 'text', widget_type = '". $new_widget_type ."' WHERE field_name = '{$field_instance['field_name']}' AND type_name = '{$field_instance['type_name']}'");
+  }
+  content_associate_fields('text');
+  return $ret;
+}
+
+/**
+ * Set all columns to accept NULL values and set empty string values in the
+ * database to NULL.
+ *
+ * Leaving it up to module developers to handle conversion of numbers to
+ * NULL values, since there are times when zeros are valid data and times
+ * when they should be NULL.
+ *
+ */
+function text_update_6001(&$sandbox) {
+  include_once('./'. drupal_get_path('module', 'content') .'/content.install');
+  drupal_load('module', 'content');
+
+  $ret = array();
+
+  if (!isset($sandbox['progress'])) {
+    if ($abort = content_check_update('text')) {
+      return $abort;
+    }
+
+    // Get the latest cache values and schema.
+    content_clear_type_cache(TRUE, TRUE);
+    $types = content_types_install();
+
+    if (empty($types)) {
+      return $ret;
+    }
+
+    $sandbox['fields'] = array();
+    foreach ($types as $type_name => $fields) {
+      foreach ($fields as $field) {
+        if ($field['type'] == 'text') {
+          $sandbox['fields'][] = $field;
+        }
+      }
+    }
+
+    if (empty($sandbox['fields'])) {
+      return $ret;
+    }
+
+    $sandbox['progress'] = 0;
+    $sandbox['visited'] = array();
+  }
+
+  $field = $sandbox['fields'][$sandbox['progress']];
+
+  // We only want to process a field once -- if we hit it a second time,
+  // that means it's its own table and it should have already been updated.
+  if (!in_array($field['field_name'], $sandbox['visited'])) {
+    $db_info = content_database_info($field);
+    $table = $db_info['table'];
+    foreach ($db_info['columns'] as $column => $attributes) {
+      $attributes['not null'] = FALSE;
+      $column = $attributes['column'];
+      db_change_field($ret, $table, $column, $column, $attributes);
+      // TODO: errors on text/blob columns: no default value allowed (!)
+      db_field_set_no_default($ret, $table, $column);
+      if ($attributes['type'] == 'varchar' || $attributes['type'] == 'text') {
+        $ret[] = update_sql("UPDATE {". $table ."} SET ". $column ." = NULL WHERE ". $column ." = ''");
+      }
+      else {
+        // TODO: replace format = 0 with format = NULL ?? Is this right ?
+        $ret[] = update_sql("UPDATE {". $table ."} SET ". $column ." = NULL WHERE ". $column ." = 0");
+      }
+    }
+    $sandbox['visited'][] = $field['field_name'];
+  }
+
+  $sandbox['progress']++;
+  $ret['#finished'] = $sandbox['progress'] / count($sandbox['fields']);
+
+  return $ret;
+}
+
+/**
+ * Update 6000 and 6001 were possibly broken if they were executed while
+ * the modules were still disabled, so we re-run them.
+ * Having them run a second time on sites that got updated correctly has no
+ * side-effect (see http://drupal.org/node/310873).
+ */
+function text_update_6002() {
+  return text_update_6000();
+}
+function text_update_6003(&$sandbox) {
+  return text_update_6001($sandbox);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.module
new file mode 100644
index 0000000..48585f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/text.module
@@ -0,0 +1,485 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Defines simple text field types.
+ */
+
+/**
+ * Implementation of hook_theme().
+ */
+function text_theme() {
+  return array(
+    'text_textarea' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'text_textfield' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'text_formatter_default' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'text_formatter_plain' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'text_formatter_trimmed' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'text_formatter_foo' => array(
+      'arguments' => array('element' => NULL),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_field_info().
+ */
+function text_field_info() {
+  return array(
+    'text' => array(
+      'label' => t('Text'),
+      'description' => t('Store text in the database.'),
+//      'content_icon' => 'icon_content_text.png',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_field_settings().
+ */
+function text_field_settings($op, $field) {
+  switch ($op) {
+    case 'form':
+      $form = array();
+      $options = array(0 => t('Plain text'), 1 => t('Filtered text (user selects input format)'));
+      $form['text_processing'] = array(
+        '#type' => 'radios',
+        '#title' => t('Text processing'),
+        '#default_value' => is_numeric($field['text_processing']) ? $field['text_processing'] : 0,
+        '#options' => $options,
+      );
+      $form['max_length'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Maximum length'),
+        '#default_value' => is_numeric($field['max_length']) ? $field['max_length'] : '',
+        '#required' => FALSE,
+        '#element_validate' => array('_element_validate_integer_positive'),
+        '#description' => t('The maximum length of the field in characters. Leave blank for an unlimited size.'),
+      );
+      $form['allowed_values_fieldset'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('Allowed values'),
+        '#collapsible' => TRUE,
+        '#collapsed' => TRUE,
+      );
+      $form['allowed_values_fieldset']['allowed_values'] = array(
+        '#type' => 'textarea',
+        '#title' => t('Allowed values list'),
+        '#default_value' => !empty($field['allowed_values']) ? $field['allowed_values'] : '',
+        '#required' => FALSE,
+        '#rows' => 10,
+        '#description' => t('The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags', array('%type' => $field['type'], '@tags' => _content_filter_xss_display_allowed_tags())),
+      );
+      $form['allowed_values_fieldset']['advanced_options'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('PHP code'),
+        '#collapsible' => TRUE,
+        '#collapsed' => empty($field['allowed_values_php']),
+      );
+      if (user_access('Use PHP input for field settings (dangerous - grant with care)')) {
+        $form['allowed_values_fieldset']['advanced_options']['allowed_values_php'] = array(
+          '#type' => 'textarea',
+          '#title' => t('Code'),
+          '#default_value' => !empty($field['allowed_values_php']) ? $field['allowed_values_php'] : '',
+          '#rows' => 6,
+          '#description' => t('Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above.'),
+        );
+      }
+      else {
+        $form['allowed_values_fieldset']['advanced_options']['markup_allowed_values_php'] = array(
+          '#type' => 'item',
+          '#title' => t('Code'),
+          '#value' => !empty($field['allowed_values_php']) ? '<code>'. check_plain($field['allowed_values_php']) .'</code>' : t('<none>'),
+          '#description' => empty($field['allowed_values_php']) ? t("You're not allowed to input PHP code.") : t('This PHP code was set by an administrator and will override the allowed values list above.'),
+        );
+      }
+      return $form;
+
+    case 'save':
+      return array('text_processing', 'max_length', 'allowed_values', 'allowed_values_php');
+
+    case 'database columns':
+      if (empty($field['max_length']) || $field['max_length'] > 255) {
+        $columns['value'] = array('type' => 'text', 'size' => 'big', 'not null' => FALSE, 'sortable' => TRUE, 'views' => TRUE);
+      }
+      else {
+        $columns['value'] = array('type' => 'varchar', 'length' => $field['max_length'], 'not null' => FALSE, 'sortable' => TRUE, 'views' => TRUE);
+      }
+      if (!empty($field['text_processing'])) {
+        $columns['format'] = array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'views' => FALSE);
+      }
+      return $columns;
+
+    case 'views data':
+      $allowed_values = content_allowed_values($field);
+      if (count($allowed_values)) {
+        $data = content_views_field_views_data($field);
+        $db_info = content_database_info($field);
+        $table_alias = content_views_tablename($field);
+
+        // Filter: Add a 'many to one' filter.
+        $copy = $data[$table_alias][$field['field_name'] .'_value'];
+        $copy['title'] = t('@label (!name) - Allowed values', array('@label' => t($field['widget']['label']), '!name' => $field['field_name']));
+        $copy['filter']['handler'] = 'content_handler_filter_many_to_one';
+        unset($copy['field'], $copy['argument'], $copy['sort']);
+        $data[$table_alias][$field['field_name'] .'_value_many_to_one'] = $copy;
+        // Argument : swap the handler to the 'many to one' operator.
+        $data[$table_alias][$field['field_name'] .'_value']['argument']['handler'] = 'content_handler_argument_many_to_one';
+        return $data;
+      }
+  }
+}
+
+/**
+ * Implementation of hook_field().
+ */
+function text_field($op, &$node, $field, &$items, $teaser, $page) {
+  switch ($op) {
+    case 'validate':
+      $allowed_values = content_allowed_values($field);
+      if (is_array($items)) {
+        foreach ($items as $delta => $item) {
+          $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+          if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+          if (!empty($item['value'])) {
+            if (count($allowed_values) && !array_key_exists($item['value'], $allowed_values)) {
+              form_set_error($error_element, t('%name: illegal value.', array('%name' => t($field['widget']['label']))));
+            }
+            if (!empty($field['max_length']) && drupal_strlen($item['value']) > $field['max_length']) {
+              form_set_error($error_element, t('%name: the value may not be longer than %max characters.', array('%name' => $field['widget']['label'], '%max' => $field['max_length'])));
+            }
+          }
+        }
+      }
+      return $items;
+
+    case 'sanitize':
+      foreach ($items as $delta => $item) {
+        if (!empty($field['text_processing'])) {
+          $text = isset($item['value']) ? check_markup($item['value'], $item['format'], FALSE) : '';
+        }
+        else {
+          $text = isset($item['value']) ? check_plain($item['value']) : '';
+        }
+        $items[$delta]['safe'] = $text;
+      }
+  }
+}
+
+/**
+ * Implementation of hook_content_is_empty().
+ */
+function text_content_is_empty($item, $field) {
+  if (empty($item['value']) && (string)$item['value'] !== '0') {
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * Implementation of hook_field_formatter_info().
+ */
+function text_field_formatter_info() {
+  return array(
+    'default' => array(
+      'label' => t('Default'),
+      'field types' => array('text'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+    'plain' => array(
+      'label' => t('Plain text'),
+      'field types' => array('text'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+    'trimmed' => array(
+      'label' => t('Trimmed'),
+      'field types' => array('text'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+  );
+}
+
+/**
+ * Theme function for 'default' text field formatter.
+ */
+function theme_text_formatter_default($element) {
+  return ($allowed =_text_allowed_values($element)) ? $allowed : $element['#item']['safe'];
+}
+
+/**
+ * Theme function for 'plain' text field formatter.
+ */
+function theme_text_formatter_plain($element) {
+  return ($allowed =_text_allowed_values($element)) ? $allowed : strip_tags($element['#item']['safe']);
+}
+
+/**
+ * Theme function for 'trimmed' text field formatter.
+ */
+function theme_text_formatter_trimmed($element) {
+  $field = content_fields($element['#field_name'], $element['#type_name']);
+  return ($allowed =_text_allowed_values($element)) ? $allowed : node_teaser($element['#item']['safe'], $field['text_processing'] ? $element['#item']['format'] : NULL);
+}
+
+function _text_allowed_values($element) {
+  $field = content_fields($element['#field_name'], $element['#type_name']);
+  if (($allowed_values = content_allowed_values($field)) && isset($allowed_values[$element['#item']['value']])) {
+    return $allowed_values[$element['#item']['value']];
+  }
+}
+
+/**
+ * Implementation of hook_widget_info().
+ *
+ * Here we indicate that the content module will handle
+ * the default value and multiple values for these widgets.
+ *
+ * Callbacks can be omitted if default handing is used.
+ * They're included here just so this module can be used
+ * as an example for custom modules that might do things
+ * differently.
+ */
+function text_widget_info() {
+  return array(
+    'text_textfield' => array(
+      'label' => t('Text field'),
+      'field types' => array('text'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+    'text_textarea' => array(
+      'label' => t('Text area (multiple rows)'),
+      'field types' => array('text'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of FAPI hook_elements().
+ *
+ * Any FAPI callbacks needed for individual widgets can be declared here,
+ * and the element will be passed to those callbacks for processing.
+ *
+ * Drupal will automatically theme the element using a theme with
+ * the same name as the hook_elements key.
+ *
+ * Autocomplete_path is not used by text_widget but other widgets can use it
+ * (see nodereference and userreference).
+ */
+function text_elements() {
+  return array(
+    'text_textfield' => array(
+      '#input' => TRUE,
+      '#columns' => array('value'), '#delta' => 0,
+      '#process' => array('text_textfield_process'),
+      '#autocomplete_path' => FALSE,
+    ),
+    'text_textarea' => array(
+      '#input' => TRUE,
+      '#columns' => array('value', 'format'), '#delta' => 0,
+      '#process' => array('text_textarea_process'),
+      '#filter_value' => FILTER_FORMAT_DEFAULT,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_widget_settings().
+ */
+function text_widget_settings($op, $widget) {
+  switch ($op) {
+    case 'form':
+      $form = array();
+      $rows = (isset($widget['rows']) && is_numeric($widget['rows'])) ? $widget['rows'] : 5;
+      $size = (isset($widget['size']) && is_numeric($widget['size'])) ? $widget['size'] : 60;
+      if ($widget['type'] == 'text_textfield') {
+        $form['rows'] = array('#type' => 'hidden', '#value' => $rows);
+        $form['size'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Size of textfield'),
+          '#default_value' => $size,
+          '#element_validate' => array('_element_validate_integer_positive'),
+          '#required' => TRUE,
+        );
+      }
+      else {
+        $form['rows'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Rows'),
+          '#default_value' => $rows,
+          '#element_validate' => array('_element_validate_integer_positive'),
+          '#required' => TRUE,
+        );
+        $form['size'] = array('#type' => 'hidden', '#value' => $size);
+      }
+      return $form;
+
+    case 'save':
+      return array('rows', 'size');
+  }
+}
+
+/**
+ * Implementation of hook_widget().
+ *
+ * Attach a single form element to the form. It will be built out and
+ * validated in the callback(s) listed in hook_elements. We build it
+ * out in the callbacks rather than here in hook_widget so it can be
+ * plugged into any module that can provide it with valid
+ * $field information.
+ *
+ * Content module will set the weight, field name and delta values
+ * for each form element. This is a change from earlier CCK versions
+ * where the widget managed its own multiple values.
+ *
+ * If there are multiple values for this field, the content module will
+ * call this function as many times as needed.
+ *
+ * @param $form
+ *   the entire form array, $form['#node'] holds node information
+ * @param $form_state
+ *   the form_state, $form_state['values'][$field['field_name']]
+ *   holds the field's form values.
+ * @param $field
+ *   the field array
+ * @param $items
+ *   array of default values for this field
+ * @param $delta
+ *   the order of this item in the array of subelements (0, 1, 2, etc)
+ *
+ * @return
+ *   the form item for a single element for this field
+ */
+function text_widget(&$form, &$form_state, $field, $items, $delta = 0) {
+  $element = array(
+    '#type' => $field['widget']['type'],
+    '#default_value' => isset($items[$delta]) ? $items[$delta] : '',
+  );
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function text_textfield_process($element, $edit, $form_state, $form) {
+  $field = $form['#field_info'][$element['#field_name']];
+  $field_key = $element['#columns'][0];
+  $delta = $element['#delta'];
+  $element[$field_key] = array(
+    '#type' => 'textfield',
+    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL,
+    '#autocomplete_path' => $element['#autocomplete_path'],
+    '#size' => !empty($field['widget']['size']) ? $field['widget']['size'] : 60,
+    '#attributes' => array('class' => 'text'),
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#description' => $element['#description'],
+    '#required' => $element['#required'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+
+  $element[$field_key]['#maxlength'] = !empty($field['max_length']) ? $field['max_length'] : NULL;
+
+  if (!empty($field['text_processing'])) {
+    $filter_key = $element['#columns'][1];
+    $format = isset($element['#value'][$filter_key]) ? $element['#value'][$filter_key] : FILTER_FORMAT_DEFAULT;
+    $parents = array_merge($element['#parents'] , array($filter_key));
+    $element[$filter_key] = filter_form($format, 1, $parents);
+  }
+
+  // Used so that hook_field('validate') knows where to flag an error.
+  $element['_error_element'] = array(
+    '#type' => 'value',
+    '#value' => implode('][', array_merge($element['#parents'], array($field_key))),
+  );
+
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function text_textarea_process($element, $edit, $form_state, $form) {
+  $field = $form['#field_info'][$element['#field_name']];
+  $field_key   = $element['#columns'][0];
+  $element[$field_key] = array(
+    '#type' => 'textarea',
+    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL,
+    '#rows' => !empty($field['widget']['rows']) ? $field['widget']['rows'] : 10,
+    '#weight' => 0,
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#description' => $element['#description'],
+    '#required' => $element['#required'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+
+  if (!empty($field['text_processing'])) {
+    $filter_key  = (count($element['#columns']) == 2) ? $element['#columns'][1] : 'format';
+    $format = isset($element['#value'][$filter_key]) ? $element['#value'][$filter_key] : FILTER_FORMAT_DEFAULT;
+    $parents = array_merge($element['#parents'] , array($filter_key));
+    $element[$filter_key] = filter_form($format, 1, $parents);
+  }
+
+  // Used so that hook_field('validate') knows where to flag an error.
+  $element['_error_element'] = array(
+    '#type' => 'value',
+    '#value' => implode('][', array_merge($element['#parents'], array($field_key))),
+  );
+
+  return $element;
+}
+
+/**
+ * FAPI theme for an individual text elements.
+ *
+ * The textfield or textarea is already rendered by the
+ * textfield or textarea themes and the html output
+ * lives in $element['#children']. Override this theme to
+ * make custom changes to the output.
+ *
+ * $element['#field_name'] contains the field name
+ * $element['#delta]  is the position of this element in the group
+ */
+function theme_text_textfield($element) {
+  return $element['#children'];
+}
+
+function theme_text_textarea($element) {
+  return $element['#children'];
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.de.po
new file mode 100644
index 0000000..6f71b7f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.de.po
@@ -0,0 +1,74 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:10+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/text/text.module:42
+msgid "Store text in the database."
+msgstr "Text in der Datenbank speichern."
+
+#: modules/text/text.module:55
+msgid "Filtered text (user selects input format)"
+msgstr "Gefilterter Text (Benutzer wählt Eingabeformat aus)"
+
+#: modules/text/text.module:58
+msgid "Text processing"
+msgstr "Textverarbeitung"
+
+#: modules/text/text.module:64
+msgid "Maximum length"
+msgstr "Maximallänge"
+
+#: modules/text/text.module:68
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "Die maximale Zeichenlänge des Feldes. Für eine unbegrenzte Länge freilassen."
+
+#: modules/text/text.module:160
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: Der Wert darf nicht länger als %max Zeichen sein."
+
+#: modules/text/text.module:207
+msgid "Trimmed"
+msgstr "Getrimmt"
+
+#: modules/text/text.module:265
+msgid "Text area (multiple rows)"
+msgstr "Textfeld (mehrere Zeilen)"
+
+#: modules/text/text.module:326
+msgid "Rows"
+msgstr "Zeilen"
+
+#: modules/text/text.module:0
+msgid "text"
+msgstr "Text"
+
+#: modules/text/text.info:0
+msgid "Defines simple text field types."
+msgstr "Definiert einfache Typen von Textfeldern."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.fr.po
new file mode 100644
index 0000000..29e611c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.fr.po
@@ -0,0 +1,33 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:24+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: modules/text/text.module:50
+msgid "Store text in the database."
+msgstr "Enregistre le texte dans la base de données."
+
+#: modules/text/text.module:272
+msgid "Text area (multiple rows)"
+msgstr "Zone de texte (plusieurs lignes)"
+
+#: modules/text/text.module:0
+msgid "text"
+msgstr "texte"
+
+#: modules/text/text.info:0
+msgid "Defines simple text field types."
+msgstr "Définit les types de champs en texte simple."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.hu.po
new file mode 100644
index 0000000..5e74893
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.hu.po
@@ -0,0 +1,156 @@
+# Hungarian translation of text (all releases)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  text.module,v 1.95.2.20 2008/10/01 17:04:31 karens
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: text (all releases)\n"
+"POT-Creation-Date: 2008-10-26 11:32-0500\n"
+"PO-Revision-Date: 2008-10-26 09:41-0500\n"
+"Last-Translator: Fehér János <feher.janos _at- mindworks.hu>\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: text.module:103,112
+msgid "Code"
+msgstr "Kód"
+
+#: text.module:202
+msgid "Default"
+msgstr "Alapértelmezett"
+
+#: text.module:66,207
+msgid "Plain text"
+msgstr "Egyszerű szöveg"
+
+#: text.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: text.module:96
+msgid "PHP code"
+msgstr "PHP kód"
+
+#: text.module:113
+msgid "<none>"
+msgstr "<nincs>"
+
+#: text.module:114
+msgid "You're not allowed to input PHP code."
+msgstr "Nem engedélyezett a PHP kód bevitele."
+
+#: text.module:82
+msgid "Allowed values"
+msgstr "Megengedett értékek"
+
+#: text.module:88
+msgid "Allowed values list"
+msgstr "Megengedett értékek"
+
+#: text.module:92
+msgid ""
+"The possible values this field can contain. Enter one value per line, "
+"in the format key|label. The key is the value that will be stored in "
+"the database, and it must match the field storage type (%type). The "
+"label is optional, and the key will be used as the label if no label "
+"is specified.<br />Allowed HTML tags: @tags"
+msgstr ""
+"A mező lehetséges értékei. Egy sorban egy értéket lehet megadni "
+"kulcs|címke formában. A kulcs értéke kerül az adatbázisba, és "
+"ennek meg kell felelnie az adatbázisban tárolt típussal (%type). A "
+"címke nem kötelező, ha nincs megadva, akkor a kulcs kerül "
+"felhasználásra, mint címke.<br />Engedélyezett HTML elemek: @tags"
+
+#: text.module:106
+msgid ""
+"Advanced usage only: PHP code that returns a keyed array of allowed "
+"values. Should not include <?php ?> delimiters. If this field is "
+"filled out, the array returned by this code will override the allowed "
+"values list above."
+msgstr ""
+"Csak haladóknak: PHP kód, ami visszaadja a megengedett értékek "
+"tömbjét. Nem szükséges <?php ?> elemek közé zárni. Ha ez "
+"a mező ki van töltve, a kód által visszaadott tömb felülír "
+"minden fentebb megadott értéket."
+
+#: text.module:114
+msgid ""
+"This PHP code was set by an administrator and will override the "
+"allowed values list above."
+msgstr ""
+"Ezt a PHP kódot egy adminisztrátor állította be, és felül fogja "
+"írni a fentebb megadott elfogadható értékek listáját."
+
+#: text.module:162
+msgid "%name: illegal value."
+msgstr "%name: érvénytelen érték."
+
+#: text.module:262
+msgid "Text field"
+msgstr "Szöveg mező"
+
+#: text.module:50
+msgid "Store text in the database."
+msgstr "Szöveget tárol az adatbázisban."
+
+#: text.module:66
+msgid "Filtered text (user selects input format)"
+msgstr "Formázott szöveg (a felhasználó választja ki a beviteli formát)"
+
+#: text.module:69
+msgid "Text processing"
+msgstr "Szövegfeldolgozás"
+
+#: text.module:75
+msgid "Maximum length"
+msgstr "Maximális hossz"
+
+#: text.module:78
+msgid ""
+"The maximum length of the field in characters. Leave blank for an "
+"unlimited size."
+msgstr ""
+"A mező karakterben mért maximális hossza. Üresen hagyva nincs "
+"korlátozva."
+
+#: text.module:165
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: az érték nem lehet hosszabb %max karakternél."
+
+#: text.module:212
+msgid "Trimmed"
+msgstr "Levágva"
+
+#: text.module:270
+msgid "Text area (multiple rows)"
+msgstr "Szövegdoboz (többsoros)"
+
+#: text.module:322
+msgid "Size of textfield"
+msgstr "A szövegmező mérete"
+
+#: text.module:331
+msgid "Rows"
+msgstr "Sorok"
+
+#: text.module:348
+msgid "\"Rows\" must be a positive integer."
+msgstr "A „Sorok” számának pozitív egész számot lehet megadni."
+
+#: text.module:355
+msgid "\"Size\" must be a positive integer."
+msgstr "A méret csak pozitív egész szám lehet."
+
+#: text.module:0
+msgid "text"
+msgstr "szöveg"
+
+#: text.module:49; text.info:0
+msgid "Text"
+msgstr "Szöveg"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.nl.po
new file mode 100644
index 0000000..670ce83
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.nl.po
@@ -0,0 +1,147 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  text.module,v 1.95.2.28 2008/12/30 00:00:54 yched
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:26+0200\n"
+"PO-Revision-Date: 2009-06-03 14:26+0200\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: text.module:41 text.info:0
+msgid "Text"
+msgstr "Tekst"
+
+#: text.module:42
+msgid "Store text in the database."
+msgstr "Bewaar tekst in de database."
+
+#: text.module:54;201
+msgid "Plain text"
+msgstr "Platte tekst"
+
+#: text.module:54
+msgid "Filtered text (user selects input format)"
+msgstr "Gefilterede tekst (gebruiker geeft invoerformaat op)"
+
+#: text.module:57
+msgid "Text processing"
+msgstr "Tekstverwerking"
+
+#: text.module:63
+msgid "Maximum length"
+msgstr "Maximum lengte"
+
+#: text.module:67
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr ""
+"De maximum lengte van het veld in karakters. Laat leeg voor "
+"ongelimiteerde grootte."
+
+#: text.module:71
+msgid "Allowed values"
+msgstr "Toegestane waardes"
+
+#: text.module:77
+msgid "Allowed values list"
+msgstr "Lijst met toegestane waardes"
+
+#: text.module:81
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr ""
+"De mogelijke waardes die in dit veld kunnen staan. Voer één waarde "
+"per regel in, in het formaat sleutel|label. De sleutel wordt in de "
+"database opgeslagen en moet overeen komen met het veldopslagtype "
+"(%type). Het label is optioneel. Als geen label wordt ingevoerd zal de "
+"sleutel ook worden gebruikt als label. <br />Toegestane HTML-tags: "
+"@tags"
+
+#: text.module:85
+msgid "PHP code"
+msgstr "PHP code"
+
+#: text.module:92;101
+msgid "Code"
+msgstr "Code"
+
+#: text.module:95
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr ""
+"Alleen voor geavanceerd gebruik: PHP-code die een array met sleutels "
+"geeft van de toegestane waardes. Moet niet beginnen en eindigen met "
+"<?php ?>. Als dit veld in ingevuld zullen de bovenstaande "
+"toegestane waardes worden genegeerd."
+
+#: text.module:102
+msgid "<none>"
+msgstr "<geen>"
+
+#: text.module:103
+msgid "You're not allowed to input PHP code."
+msgstr "Je mag geen PHP-code gebruiken."
+
+#: text.module:103
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr ""
+"Deze PHP-code is door een beheerder ingesteld en zal worden uitgevoerd "
+"in plaats van de toegestane waardeslijst hierboven."
+
+#: text.module:132
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Toegestane waardes"
+
+#: text.module:156
+msgid "%name: illegal value."
+msgstr "%name: niet toegestane waarde."
+
+#: text.module:159
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: de waarde mag niet langer zijn dan %max karakters."
+
+#: text.module:196
+msgid "Default"
+msgstr "Standaard"
+
+#: text.module:206
+msgid "Trimmed"
+msgstr "Ingekort"
+
+#: text.module:256
+msgid "Text field"
+msgstr "Tekstveld"
+
+#: text.module:264
+msgid "Text area (multiple rows)"
+msgstr "Tekstveld (meerdere rijen)"
+
+#: text.module:316
+msgid "Size of textfield"
+msgstr "Maat van het tekstveld"
+
+#: text.module:325
+msgid "Rows"
+msgstr "Rijen"
+
+#: text.module:0
+msgid "text"
+msgstr "tekst"
+
+#: text.info:0
+msgid "Defines simple text field types."
+msgstr "Levert simpele tekstveldtypes."
+
+#: text.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.pot
new file mode 100644
index 0000000..0313ebd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.pot
@@ -0,0 +1,65 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-text)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/text/text.module:42
+msgid "Store text in the database."
+msgstr ""
+
+#: modules/text/text.module:55
+msgid "Filtered text (user selects input format)"
+msgstr ""
+
+#: modules/text/text.module:58
+msgid "Text processing"
+msgstr ""
+
+#: modules/text/text.module:64
+msgid "Maximum length"
+msgstr ""
+
+#: modules/text/text.module:68
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr ""
+
+#: modules/text/text.module:160
+msgid "%name: the value may not be longer than %max characters."
+msgstr ""
+
+#: modules/text/text.module:207
+msgid "Trimmed"
+msgstr ""
+
+#: modules/text/text.module:265
+msgid "Text area (multiple rows)"
+msgstr ""
+
+#: modules/text/text.module:326
+msgid "Rows"
+msgstr ""
+
+#: modules/text/text.module:0
+msgid "text"
+msgstr ""
+
+#: modules/text/text.info:0
+msgid "Defines simple text field types."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.sv.po
new file mode 100644
index 0000000..54756ea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/text/translations/modules-text.sv.po
@@ -0,0 +1,135 @@
+# $Id$
+#
+# Swedish translation of Drupal (text)
+# Generated from files:
+#  text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Text 6.x\n"
+"POT-Creation-Date: 2009-05-27 13:47+0200\n"
+"PO-Revision-Date: 2009-05-27 14:27+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: text.module:41
+#: text.info:0
+msgid "Text"
+msgstr "Text"
+
+#: text.module:42
+msgid "Store text in the database."
+msgstr "Lagra text i databasen."
+
+#: text.module:55;202
+msgid "Plain text"
+msgstr "Ren text"
+
+#: text.module:55
+msgid "Filtered text (user selects input format)"
+msgstr "Filtrerade text (användare väljer inmatningsformat)"
+
+#: text.module:58
+msgid "Text processing"
+msgstr "Bearbetning av text"
+
+#: text.module:64
+msgid "Maximum length"
+msgstr "Maximal längd"
+
+#: text.module:68
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "Maximalt antal tecken för fältet. Lämna blankt för oändlig storlek."
+
+#: text.module:72
+msgid "Allowed values"
+msgstr "Tillåtna värden"
+
+#: text.module:78
+msgid "Allowed values list"
+msgstr "Tillåtna listvärden"
+
+#: text.module:82
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr "De möjliga värdena detta fält kan innehålla. Ange ett värde per rad i formatet nyckel/etikett. Denna nyckel är värdet som kommer att lagras i databasen och måste överensstämma typen för fältlagring (%type). Etikett är valfritt, och nyckeln som kommer att användas är etiketten om ingen etikett är specificerad.<br />Tillåtna HTML-taggar: @tags"
+
+#: text.module:86
+msgid "PHP code"
+msgstr "PHP-kod"
+
+#: text.module:93;102
+msgid "Code"
+msgstr "Kod"
+
+#: text.module:96
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Enbart avancerat användande: PHP-kod som skall returnera en spärrad lista av tillåtna värden. Skall inte inkludera avgränsarna <?php ?>. Om detta fält är ifyllt kommer listan som returneras av denna kod att åsidosätta det tillåtna värdet i listan ovan."
+
+#: text.module:103
+msgid "<none>"
+msgstr "<ingen>"
+
+#: text.module:104
+msgid "You're not allowed to input PHP code."
+msgstr "Du har inte tillåtelse att mata in PHP-kod."
+
+#: text.module:104
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr "Denna PHP-kod angavs av en administratör och kommer att åsidosätta det tillåtna värdet ovan."
+
+#: text.module:133
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Tillåtna värden"
+
+#: text.module:157
+msgid "%name: illegal value."
+msgstr "%name: otillåtet värde."
+
+#: text.module:160
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: värdet får inte vara längre än %max tecken."
+
+#: text.module:197
+msgid "Default"
+msgstr "Standard"
+
+#: text.module:207
+msgid "Trimmed"
+msgstr "Avkortad"
+
+#: text.module:257
+msgid "Text field"
+msgstr "Textfält"
+
+#: text.module:265
+msgid "Text area (multiple rows)"
+msgstr "Textområde (flera rader)"
+
+#: text.module:317
+msgid "Size of textfield"
+msgstr "Storlek på textfält"
+
+#: text.module:326
+msgid "Rows"
+msgstr "Rader"
+
+#: text.module:0
+msgid "text"
+msgstr "text"
+
+#: text.info:0
+msgid "Defines simple text field types."
+msgstr "Definierar enkla typer av textfält."
+
+#: text.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/help/userreference.help.ini b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/help/userreference.help.ini
new file mode 100644
index 0000000..4b4cb95
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/help/userreference.help.ini
@@ -0,0 +1,8 @@
+; $Id$
+
+[advanced help settings]
+hide = TRUE
+
+[userreference]
+title = Userreference field
+parent = content%fields
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/help/userreference.html b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/help/userreference.html
new file mode 100644
index 0000000..ef81251
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/help/userreference.html
@@ -0,0 +1,3 @@
+<p>The Userreference field stores the uid of a related user. The name of the related user is usually displayed as the value of this field.</p>
+<p>The Userreference field can use an autocomplete widget, or, when used with <a href="&topic:optionwidgets/optionwidgets&">Optionwidgets</a>, the available values can be presented to the end user in a drop-down select list, checkboxes, or radios.</p>
+<p>A Userreference field can be used in Views to create a <a href="&topic:views/relationship&">Relationship</a> to a user, to allow you to use any field, argument, or filter from the related user in your view. </p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/panels/relationships/user_from_userref.inc b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/panels/relationships/user_from_userref.inc
new file mode 100644
index 0000000..4af22ad
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/panels/relationships/user_from_userref.inc
@@ -0,0 +1,65 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implements the user reference relationship for Panels.
+ */
+
+/**
+ * Implementation of hook_ctools_relationships().
+ */
+function userreference_user_from_userref_ctools_relationships() {
+  return array(
+    'title' => t('User from reference'),
+    'keyword' => 'userreference',
+    'description' => t('Adds a user from a user reference in a node context; if multiple users are referenced, this will get the first referenced user only.'),
+    'required context' => new ctools_context_required(t('Node'), 'node'),
+    'context' => 'userreference_user_from_userref_context',
+    'settings form' => 'userreference_user_from_userref_settings_form',
+    'settings form validate' => 'userreference_user_from_userref_settings_form_validate',
+  );
+}
+
+/**
+ * Return a new ctools context based on an existing context.
+ */
+function userreference_user_from_userref_context($context, $conf) {
+  // If unset it wants a generic, unfilled context, which is just NULL.
+  if (empty($context->data)) {
+    return ctools_context_create_empty('user', NULL);
+  }
+
+  // Prevent whitescreens on stale data.
+  if (empty($conf)) {
+    return ctools_context_create_empty('user', NULL);
+  }
+
+  if (isset($context->data->{$conf['field_name']}[0]['uid']) && ($uid = $context->data->{$conf['field_name']}[0]['uid'])) {
+    if ($account = user_load(array('uid' => $uid))) {
+      return ctools_context_create('user', $account);
+    }
+  }
+}
+
+/**
+ * Settings form for the ctools relationship.
+ */
+function userreference_user_from_userref_settings_form($conf) {
+  $options = array();
+  foreach (content_fields() as $field) {
+    if ($field['type'] == 'userreference') {
+      $options[$field['field_name']] = t($field['widget']['label']);
+    }
+  }
+  $form['field_name'] = array(
+    '#title' => t('User reference field'),
+    '#type' => 'select',
+    '#options' => $options,
+    '#default_value' => isset($conf['field_name']) ? $conf['field_name'] : '',
+    '#prefix' => '<div class="clear-block">',
+    '#suffix' => '</div>',
+  );
+
+  return $form;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference-panels-relationships.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference-panels-relationships.de.po
new file mode 100644
index 0000000..9e46e5d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference-panels-relationships.de.po
@@ -0,0 +1,42 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:12+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/userreference/panels/relationships/user_from_userref.inc:14
+msgid "User from reference"
+msgstr "Benutzer der Referenz"
+
+#: modules/userreference/panels/relationships/user_from_userref.inc:16
+msgid "Adds a user from a user reference in a node context; if multiple users are referenced, this will get the first referenced user only."
+msgstr ""
+
+#: modules/userreference/panels/relationships/user_from_userref.inc:50
+msgid "User reference field"
+msgstr "Benutzerreferenzfeld"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference-panels-relationships.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference-panels-relationships.pot
new file mode 100644
index 0000000..37a78d6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference-panels-relationships.pot
@@ -0,0 +1,31 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-userreference-panels-relationships)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from file: user_from_userref.inc,v 1.1.2.1 2009/06/02 12:24:04 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/userreference/panels/relationships/user_from_userref.inc:14
+msgid "User from reference"
+msgstr ""
+
+#: modules/userreference/panels/relationships/user_from_userref.inc:16
+msgid "Adds a user from a user reference in a node context; if multiple users are referenced, this will get the first referenced user only."
+msgstr ""
+
+#: modules/userreference/panels/relationships/user_from_userref.inc:50
+msgid "User reference field"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.de.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.de.po
new file mode 100644
index 0000000..3d7837a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.de.po
@@ -0,0 +1,136 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-03-09 23:01+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: modules/userreference/userreference.rules.inc:15
+msgid "Load a referenced user"
+msgstr "Einen referenzierten Benutzer laden"
+
+#: modules/userreference/userreference.rules.inc:19
+msgid "Content containing the user reference field"
+msgstr "Der Inhalt der das Benutzerreferenzfeld enthält"
+
+#: modules/userreference/userreference.rules.inc:25
+msgid "Referenced user"
+msgstr "Referenzierter Benutzer"
+
+#: modules/userreference/userreference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first user will be loaded."
+msgstr "Sollte ein Feld mehrere Werte enthalten, wird nur der erste Benutzer geladen."
+
+#: modules/userreference/userreference.rules.inc:52
+msgid "There are no userreference fields defined."
+msgstr "Es sind keine Benutzerreferenzfelder vorhanden."
+
+#: modules/userreference/userreference.module:52
+msgid "User reference"
+msgstr "Benutzerreferenz"
+
+#: modules/userreference/userreference.module:53
+msgid "Store the ID of a related user as an integer value."
+msgstr "Speichert die ID eines zugehörigen Benutzers als ganzzahligen Wert."
+
+#: modules/userreference/userreference.module:67
+msgid "User roles that can be referenced"
+msgstr "Benutzerrollen auf die referenziert werden kann"
+
+#: modules/userreference/userreference.module:73
+msgid "User status that can be referenced"
+msgstr "Benutzerstatus der referenziert werden kann"
+
+#: modules/userreference/userreference.module:75
+msgid "Active"
+msgstr "Aktiv"
+
+#: modules/userreference/userreference.module:75
+msgid "Blocked"
+msgstr "Gesperrt"
+
+#: modules/userreference/userreference.module:94
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Erweitert - Benutzer die referenziert werden können (Ansicht)"
+
+#: modules/userreference/userreference.module:101
+msgid "View used to select the users"
+msgstr "Die zur Auswahl von Benutzern verwendete Ansicht"
+
+#: modules/userreference/userreference.module:104
+#, fuzzy
+msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
+msgstr "<p>Wähle die „Views-Modul“-Ansicht das die Beiträge auswählt, die Referenziert werden können.<br />Hinweis:</p>"
+
+#: modules/userreference/userreference.module:105;118
+#, fuzzy
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
+msgstr "<ul><li>Nur Ansichten mit Feldern werden für diesen Zweck nutzbar sein.</li><li>Dies wird die obigen Einstellungen der „referenzierbaren Rollen“ und „referenzierbaren Status“ verwerfen. Stattdessen sollte hierfür der „Filter“-Bereich der Ansicht verwendet werden.</li><li>Um weitere Informationen über Beitragskandidaten für das Erstellungs-/Bearbeitungsformular anzuzeigen, kann das Ansichten-Feld verwendet werden.</li><li>Um die Reihenfolge der Beitragskandidaten festzulegen sollt [...]
+
+#: modules/userreference/userreference.module:117
+msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+#: modules/userreference/userreference.module:196
+msgid "%name: invalid user."
+msgstr "%name: Der Benutzer ist ungültig."
+
+#: modules/userreference/userreference.module:349
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
+msgstr "Die Methode zur Sammlung von Autovervollständigungsvorschlägen auswählen. Dabei ist zu beachten, dass <em>Enthält</em> auf Websites mit tausenden von Benutzern große Performanceprobleme verursachen kann."
+
+#: modules/userreference/userreference.module:357
+msgid "Reverse link"
+msgstr "‚Zurück‘-Link"
+
+#: modules/userreference/userreference.module:359
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr "Sobald ausgewählt, wird auf dem referenzierten Benutzerdatensatz ein ‚Zurück‘-Link zu dem referenzierten Beitrag angezeigt."
+
+#: modules/userreference/userreference.module:594
+msgid "%name: found no valid user with that name."
+msgstr "%name: Kein Benutzer mit diesem Namen gefunden."
+
+#: modules/userreference/userreference.module:889
+msgid "Related content"
+msgstr "Zugehöriger Inhalt"
+
+#: modules/userreference/userreference.module:15
+msgid "Userreference autocomplete"
+msgstr "Autovervollständigung der Benutzerreferenzen"
+
+#: modules/userreference/userreference.module:0
+msgid "userreference"
+msgstr "Benutzerreferenz"
+
+#: modules/userreference/userreference.info:0
+msgid "User Reference"
+msgstr "Benutzerreferenz"
+
+#: modules/userreference/userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Definiert einen Feldtyp mit dem von einem Beitrag auf einen Benutzer verwiesen werden kann."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.fr.po
new file mode 100644
index 0000000..3a9c8e6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.fr.po
@@ -0,0 +1,89 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:24+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: modules/userreference/userreference.module:52
+msgid "User reference"
+msgstr "Référence utilisateur"
+
+#: modules/userreference/userreference.module:53
+msgid "Store the ID of a related user as an integer value."
+msgstr ""
+"Enregistre l'identifiant d'un utilisateur associé, sous la forme d'une "
+"valeur entière."
+
+#: modules/userreference/userreference.module:71
+msgid "User roles that can be referenced"
+msgstr "Rôles utilisateur pouvant être référencés"
+
+#: modules/userreference/userreference.module:77
+msgid "User status that can be referenced"
+msgstr "Statuts utilisateur pouvant être référencés"
+
+#: modules/userreference/userreference.module:79
+msgid "Active"
+msgstr "Actif"
+
+#: modules/userreference/userreference.module:79
+msgid "Blocked"
+msgstr "Bloqué"
+
+#: modules/userreference/userreference.module:122
+msgid "%name: Invalid user."
+msgstr "Champ '%name' : utilisateur invalide."
+
+#: modules/userreference/userreference.module:253
+msgid "Reverse link"
+msgstr "Lien réciproque"
+
+#: modules/userreference/userreference.module:255
+msgid "No"
+msgstr "Non"
+
+#: modules/userreference/userreference.module:255
+msgid "Yes"
+msgstr "Oui"
+
+#: modules/userreference/userreference.module:257
+msgid ""
+"If selected, a reverse link back to the referencing node will displayed on "
+"the referenced user record."
+msgstr ""
+"Si cette option est sélectionnée, un lien réciproque vers le nœud "
+"référençant sera affiché dans l'enregistrement utilisateur référencé."
+
+#: modules/userreference/userreference.module:586
+msgid "Related content"
+msgstr "Contenus liés"
+
+#: modules/userreference/userreference.module:15
+msgid "Userreference autocomplete"
+msgstr "Autocomplètement de la référence utilisateur"
+
+#: modules/userreference/userreference.module:0
+msgid "userreference"
+msgstr "userreference"
+
+#: modules/userreference/userreference.info:0
+msgid "User Reference"
+msgstr "User Reference"
+
+#: modules/userreference/userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr ""
+"Définit un type de champ qui permet d'établir des liens entre les nœuds et "
+"les utilisateurs."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.hu.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.hu.po
new file mode 100644
index 0000000..1e1c86d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.hu.po
@@ -0,0 +1,137 @@
+# Hungarian translation of cck (6.x-2.0-rc10)
+# Copyright (c) 2008 by the Hungarian translation team
+# Generated from files:
+#  userreference.module,v 1.106.2.21 2008/10/07 10:17:51 karens
+#  userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck (6.x-2.0-rc10)\n"
+"POT-Creation-Date: 2008-10-31 12:16-0500\n"
+"PO-Revision-Date: 2008-10-26 16:42-0500\n"
+"Last-Translator: Balogh Zoltán\n"
+"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: modules/userreference/userreference.module:97
+msgid "Active"
+msgstr "Aktív"
+
+#: modules/userreference/userreference.module:97
+msgid "Blocked"
+msgstr "Blokkolt"
+
+#: modules/userreference/userreference.rules.inc:15
+msgid "Load a referenced user"
+msgstr "Egy hivatkozott felhasználó betöltése"
+
+#: modules/userreference/userreference.rules.inc:19
+msgid "Content containing the user reference field"
+msgstr "A felhasználóhivatkozás mező tartalma"
+
+#: modules/userreference/userreference.rules.inc:25
+msgid "Referenced user"
+msgstr "Hivatkozott felhasználó"
+
+#: modules/userreference/userreference.rules.inc:29
+msgid ""
+"Note that if the field has multiple values, only the first user will "
+"be loaded."
+msgstr ""
+"Megjegyzés: Ha a mezőnek több értéke is lehet, akkor csak az "
+"első felhasználó lesz betöltve."
+
+#: modules/userreference/userreference.rules.inc:52
+msgid "There are no userreference fields defined."
+msgstr "Nincsenek felhasználóhivatkozás mezők meghatározva."
+
+#: modules/userreference/userreference.module:70
+msgid "User reference"
+msgstr "Hivatkozás felhasználóra"
+
+#: modules/userreference/userreference.module:71
+msgid "Store the ID of a related user as an integer value."
+msgstr ""
+"A hivatkozott felhasználó azonosítójának tárolása egész "
+"számként."
+
+#: modules/userreference/userreference.module:89
+msgid "User roles that can be referenced"
+msgstr "Felhasználói csoport, amelyre hivatkozni lehet"
+
+#: modules/userreference/userreference.module:95
+msgid "User status that can be referenced"
+msgstr "Felhasználói állapot, amelyre hivatkozni lehet"
+
+#: modules/userreference/userreference.module:117
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Haladó - Felhasználók, akikre hivatkozni lehet (Nézet)"
+
+#: modules/userreference/userreference.module:123
+msgid "View used to select the users"
+msgstr "A felhasználók kiválasztásához használt nézet"
+
+#: modules/userreference/userreference.module:126
+msgid ""
+"Choose the \"Views module\" view that selects the users that can be "
+"referenced.<br />Note:<ul><li>Only views that have fields will work "
+"for this purpose.</li><li>This will discard the \"Referenceable "
+"Roles\" and \"Referenceable Status\" settings above. Use the view's "
+"\"filters\" section instead.</li><li>Use the view's \"fields\" section "
+"to display additional informations about candidate users on user "
+"creation/edition form.</li><li>Use the view's \"sort criteria\" "
+"section to determine the order in which candidate users will be "
+"displayed.</li></ul>"
+msgstr ""
+"A „Nézet modul” egyik nézetének kiválasztása, mely azokat a "
+"felhasználókat mutatja, akikre hivatkozni "
+"lehet.<br>Megjegyzés:<ul><li>Itt csak olyan nézet működik, melynek "
+"vannak mezői.</li><li>Ez felülírja a fenti „Hivatkozható "
+"csoportok” és „Hivatkozható állapotok” beállításokat. A "
+"nézet „szűrő” feltétele használható e helyett.</li><li>A "
+"nézet „mezők” része használható arra, hogy bővebb "
+"információkat jelenítsen meg a lehetséges felhasználókról a "
+"szerkesztő űrlapon.</li><li>A nézet „sorrend” része "
+"befolyásolja a lehetséges felhasználók megjelenítési "
+"sorrendjét.</li></ul>"
+
+#: modules/userreference/userreference.module:185
+msgid "%name: invalid user."
+msgstr "%name: érvénytelen felhasználó."
+
+#: modules/userreference/userreference.module:329
+msgid "Reverse link"
+msgstr "Visszamutató hivatkozás"
+
+#: modules/userreference/userreference.module:331
+msgid ""
+"If selected, a reverse link back to the referencing node will "
+"displayed on the referenced user record."
+msgstr ""
+"Ha be van jelölve, akkor a felhasználó adatlapján egy hivatkozás "
+"visszamutat a hivatkozó tartalomra."
+
+#: modules/userreference/userreference.module:830
+msgid "Related content"
+msgstr "Kapcsolódó tartalom"
+
+#: modules/userreference/userreference.module:15
+msgid "Userreference autocomplete"
+msgstr "Felhasználóhivatkozás automatikus kiegészítéssel"
+
+#: modules/userreference/userreference.module:0
+msgid "userreference"
+msgstr "felhasználóhivatkozás"
+
+#: modules/userreference/userreference.info:0
+msgid "User Reference"
+msgstr "Felhasználói hivatkozás"
+
+#: modules/userreference/userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Olyan mezőtípus, amely a tartalomban egy felhasználóra hivatkozik."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.nl.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.nl.po
new file mode 100644
index 0000000..efdea01
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.nl.po
@@ -0,0 +1,209 @@
+# $Id$
+#
+# Dutch translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.module,v 1.106.2.36 2009/03/18 21:00:58 yched
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-03 14:26+0200\n"
+"PO-Revision-Date: 2009-06-03 14:26+0200\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Dutch <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: userreference.rules.inc:15
+msgid "Load a referenced user"
+msgstr "Laad een gerefereerde gebruiker"
+
+#: userreference.rules.inc:19
+msgid "Content containing the user reference field"
+msgstr "Inhoud dat het gebruikersreferentieveld bevat"
+
+#: userreference.rules.inc:25
+msgid "Referenced user"
+msgstr "Gerefereerde gebruiker"
+
+#: userreference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first user will be loaded."
+msgstr ""
+"Merk op dat als het veld meerdere waardes heeft, alleen de eerste "
+"gebruiker zal worden geladen."
+
+#: userreference.rules.inc:47
+msgid "Field"
+msgstr "Veld"
+
+#: userreference.rules.inc:52
+msgid "There are no userreference fields defined."
+msgstr "Er zijn geen gebruikersreferentievelden ingesteld."
+
+#: userreference.module:52
+msgid "User reference"
+msgstr "Gebruikersreferentie"
+
+#: userreference.module:53
+msgid "Store the ID of a related user as an integer value."
+msgstr "Bewaar de ID van een gerelateerde gebruiker als een integer-waarde"
+
+#: userreference.module:67
+msgid "User roles that can be referenced"
+msgstr "Gebruikersrollen die kunnen worden gerefereerd"
+
+#: userreference.module:73
+msgid "User status that can be referenced"
+msgstr "Gebruikersstatus die kan worden gerefereerd"
+
+#: userreference.module:75
+msgid "Active"
+msgstr "Actief"
+
+#: userreference.module:75
+msgid "Blocked"
+msgstr "Geblokkeerd"
+
+#: userreference.module:84
+msgid "Default Views"
+msgstr "Standaard views"
+
+#: userreference.module:87
+msgid "Existing Views"
+msgstr "Bestaande Views"
+
+#: userreference.module:94
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Geavanceerd - Gebruikers die kunnen worden gerefereerd (View)"
+
+#: userreference.module:101
+msgid "View used to select the users"
+msgstr "View die gebruikt wordt om gebruikers te selecteren"
+
+#: userreference.module:104
+msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
+msgstr ""
+"<p>Kies de \"Views module\"-view die de gebruikers selecteert die "
+"kunnen worden gerefereerd.<br />Merk op:</p>"
+
+#: userreference.module:105;118
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
+msgstr ""
+"<ul><li>Alleen Views met velden zullen werken voor dit "
+"doel.</li><li>Dit zal de  \"Refereerbare Rollen-\" en \"Refereerbare "
+"Status\"-instellingen boven negeren. Gebruik anders de view z'n "
+"\"filters\" sectie.</li><li>Gebruik de view z'n \"velden\"-sectie om "
+"extra informatie over gebruikers op het bewerkformulier weer te "
+"geven.</li><li>Gebruik de view z'n \"sorteercriteria\"-sectie om de "
+"volgorde te bepalen waarin gebruikers worden weergegeven.</li></ul>"
+
+#: userreference.module:109
+msgid "View arguments"
+msgstr "Bekijk argumenten"
+
+#: userreference.module:112
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr ""
+"Geef een door komma's gescheiden lijst met argumenten op om naar de "
+"view te sturen."
+
+#: userreference.module:117
+msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+"<p>De lijst met gebruikers die kunnen worden gerefereerd op basis van "
+"een \"Views module\"-view, maar geen passende views gevonden. <br "
+"/>Merk op:</p>"
+
+#: userreference.module:184
+msgid "%name: invalid input."
+msgstr "%name: geen toegestane waarde."
+
+#: userreference.module:196
+msgid "%name: invalid user."
+msgstr "%name: geen toegestane gebruiker."
+
+#: userreference.module:221
+msgid "Default"
+msgstr "Standaard"
+
+#: userreference.module:226
+msgid "Plain text"
+msgstr "Platte tekst"
+
+#: userreference.module:273
+msgid "Select list"
+msgstr "Selectielijst"
+
+#: userreference.module:281
+msgid "Check boxes/radio buttons"
+msgstr "Vinkje/radio buttons"
+
+#: userreference.module:289
+msgid "Autocomplete text field"
+msgstr "Automatisch aanvullend tekstveld"
+
+#: userreference.module:343
+msgid "Autocomplete matching"
+msgstr "Automatisch aanvullende overeenkomst"
+
+#: userreference.module:346
+msgid "Starts with"
+msgstr "Begint met"
+
+#: userreference.module:347
+msgid "Contains"
+msgstr "Bevat"
+
+#: userreference.module:349
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
+msgstr ""
+"Selecteer de methode die wordt gebruikt om automatisch aangevulde "
+"suggesties te geven. Merk op <em>Bevat</em> prestatieproblemen kan "
+"veroorzaken op sites met vele duizenden gebruikers."
+
+#: userreference.module:357
+msgid "Reverse link"
+msgstr "Link terug"
+
+#: userreference.module:359
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr ""
+"Als geselecteerd zal een links terug worden geplaatst naar de "
+"gerefereerde node in de gerefereerde gebruiker."
+
+#: userreference.module:594
+msgid "%name: found no valid user with that name."
+msgstr "%name: geen toegestane gebruiker gevonden met die naam."
+
+#: userreference.module:887
+msgid "Related content"
+msgstr "Gerelateerde inhoud"
+
+#: userreference.module:15
+msgid "Userreference autocomplete"
+msgstr "Gebruikersreferentie automatische aanvulling"
+
+#: userreference.module:0
+msgid "userreference"
+msgstr "gebruikersreferentie"
+
+#: userreference.info:0
+msgid "User Reference"
+msgstr "Gebruikersreferentie"
+
+#: userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr ""
+"Levert een veldtype for het refereren van een gebruiker vanuit een "
+"node."
+
+#: userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.pot b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.pot
new file mode 100644
index 0000000..38eaf2a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.pot
@@ -0,0 +1,126 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (modules-userreference)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.module,v 1.106.2.43 2009/06/02 12:24:04 yched
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: modules/userreference/userreference.rules.inc:15
+msgid "Load a referenced user"
+msgstr ""
+
+#: modules/userreference/userreference.rules.inc:19
+msgid "Content containing the user reference field"
+msgstr ""
+
+#: modules/userreference/userreference.rules.inc:25
+msgid "Referenced user"
+msgstr ""
+
+#: modules/userreference/userreference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first user will be loaded."
+msgstr ""
+
+#: modules/userreference/userreference.rules.inc:52
+msgid "There are no userreference fields defined."
+msgstr ""
+
+#: modules/userreference/userreference.module:61
+msgid "User reference"
+msgstr ""
+
+#: modules/userreference/userreference.module:62
+msgid "Store the ID of a related user as an integer value."
+msgstr ""
+
+#: modules/userreference/userreference.module:77
+msgid "User roles that can be referenced"
+msgstr ""
+
+#: modules/userreference/userreference.module:83
+msgid "User status that can be referenced"
+msgstr ""
+
+#: modules/userreference/userreference.module:85
+msgid "Active"
+msgstr ""
+
+#: modules/userreference/userreference.module:85
+msgid "Blocked"
+msgstr ""
+
+#: modules/userreference/userreference.module:104
+msgid "Advanced - Users that can be referenced (View)"
+msgstr ""
+
+#: modules/userreference/userreference.module:111
+msgid "View used to select the users"
+msgstr ""
+
+#: modules/userreference/userreference.module:114
+msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
+msgstr ""
+
+#: modules/userreference/userreference.module:115;128
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
+msgstr ""
+
+#: modules/userreference/userreference.module:127
+msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+#: modules/userreference/userreference.module:207
+msgid "%name: invalid user."
+msgstr ""
+
+#: modules/userreference/userreference.module:361
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
+msgstr ""
+
+#: modules/userreference/userreference.module:377
+msgid "Reverse link"
+msgstr ""
+
+#: modules/userreference/userreference.module:379
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr ""
+
+#: modules/userreference/userreference.module:614
+msgid "%name: found no valid user with that name."
+msgstr ""
+
+#: modules/userreference/userreference.module:908
+msgid "Related content"
+msgstr ""
+
+#: modules/userreference/userreference.module:15
+msgid "Userreference autocomplete"
+msgstr ""
+
+#: modules/userreference/userreference.module:0
+msgid "userreference"
+msgstr ""
+
+#: modules/userreference/userreference.info:0
+msgid "User Reference"
+msgstr ""
+
+#: modules/userreference/userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.sv.po
new file mode 100644
index 0000000..cd3c5ca
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/translations/modules-userreference.sv.po
@@ -0,0 +1,191 @@
+# $Id$
+#
+# Swedish translation of Drupal (userreference)
+# Generated from files:
+#  userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.module,v 1.106.2.42 2009/05/16 16:41:30 yched
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Userreference\n"
+"POT-Creation-Date: 2009-05-27 13:47+0200\n"
+"PO-Revision-Date: 2009-05-27 13:48+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: userreference.rules.inc:15
+msgid "Load a referenced user"
+msgstr ""
+
+#: userreference.rules.inc:19
+msgid "Content containing the user reference field"
+msgstr ""
+
+#: userreference.rules.inc:25
+msgid "Referenced user"
+msgstr ""
+
+#: userreference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first user will be loaded."
+msgstr ""
+
+#: userreference.rules.inc:47
+msgid "Field"
+msgstr "Fält"
+
+#: userreference.rules.inc:52
+msgid "There are no userreference fields defined."
+msgstr ""
+
+#: userreference.module:52
+msgid "User reference"
+msgstr ""
+
+#: userreference.module:53
+msgid "Store the ID of a related user as an integer value."
+msgstr ""
+
+#: userreference.module:68
+msgid "User roles that can be referenced"
+msgstr ""
+
+#: userreference.module:74
+msgid "User status that can be referenced"
+msgstr ""
+
+#: userreference.module:76
+msgid "Active"
+msgstr "Aktiv"
+
+#: userreference.module:76
+msgid "Blocked"
+msgstr "Spärrad"
+
+#: userreference.module:85
+msgid "Default Views"
+msgstr "Förvald vy"
+
+#: userreference.module:88
+msgid "Existing Views"
+msgstr "Existerande vyer"
+
+#: userreference.module:95
+msgid "Advanced - Users that can be referenced (View)"
+msgstr ""
+
+#: userreference.module:102
+msgid "View used to select the users"
+msgstr ""
+
+#: userreference.module:105
+msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
+msgstr ""
+
+#: userreference.module:106;119
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
+msgstr ""
+
+#: userreference.module:110
+msgid "View arguments"
+msgstr "Argument för vy"
+
+#: userreference.module:113
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Tillhandahåll en kommaseparerad lista av argument att skicka till vyn."
+
+#: userreference.module:118
+msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+#: userreference.module:186
+msgid "%name: invalid input."
+msgstr "%name: ogiltig inmatning."
+
+#: userreference.module:198
+msgid "%name: invalid user."
+msgstr ""
+
+#: userreference.module:223
+msgid "Default"
+msgstr "Standard"
+
+#: userreference.module:228
+msgid "Plain text"
+msgstr "Ren text"
+
+#: userreference.module:275
+msgid "Select list"
+msgstr "Listval"
+
+#: userreference.module:283
+msgid "Check boxes/radio buttons"
+msgstr "Kryssrutor/radioknappar"
+
+#: userreference.module:291
+msgid "Autocomplete text field"
+msgstr "Automatiskt kompletterande textfält"
+
+#: userreference.module:346
+msgid "Autocomplete matching"
+msgstr "Automatiskt kompletterande som överensstämmer"
+
+#: userreference.module:349
+msgid "Starts with"
+msgstr "Börjar med"
+
+#: userreference.module:350
+msgid "Contains"
+msgstr "Innehåller"
+
+#: userreference.module:352
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
+msgstr ""
+
+#: userreference.module:356
+msgid "Size of textfield"
+msgstr ""
+
+#: userreference.module:368
+msgid "Reverse link"
+msgstr ""
+
+#: userreference.module:370
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr ""
+
+#: userreference.module:605
+msgid "%name: found no valid user with that name."
+msgstr ""
+
+#: userreference.module:899
+msgid "Related content"
+msgstr ""
+
+#: userreference.module:15
+msgid "Userreference autocomplete"
+msgstr ""
+
+#: userreference.module:0
+msgid "userreference"
+msgstr ""
+
+#: userreference.info:0
+msgid "User Reference"
+msgstr ""
+
+#: userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr ""
+
+#: userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.info b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.info
new file mode 100644
index 0000000..b128a00
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.info
@@ -0,0 +1,14 @@
+; $Id$
+name = User Reference
+description = Defines a field type for referencing a user from a node.
+dependencies[] = content
+dependencies[] = text
+dependencies[] = optionwidgets
+package = CCK
+core = 6.x
+; Information added by Drupal.org packaging script on 2015-06-17
+version = "6.x-2.10"
+core = "6.x"
+project = "cck"
+datestamp = "1434568159"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.install b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.install
new file mode 100644
index 0000000..2e0d3b1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.install
@@ -0,0 +1,153 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Implementation of hook_install().
+ */
+function userreference_install() {
+  drupal_load('module', 'content');
+  content_notify('install', 'userreference');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function userreference_uninstall() {
+  drupal_load('module', 'content');
+  content_notify('uninstall', 'userreference');
+}
+
+/**
+ * Implementation of hook_enable().
+ *
+ * Notify content module when this module is enabled.
+ */
+function userreference_enable() {
+  drupal_load('module', 'content');
+  content_notify('enable', 'userreference');
+}
+
+/**
+ * Implementation of hook_disable().
+ *
+ * Notify content module when this module is disabled.
+ */
+function userreference_disable() {
+  drupal_load('module', 'content');
+  content_notify('disable', 'userreference');
+}
+
+function userreference_update_last_removed() {
+  return 4;
+}
+
+/**
+ * Placeholder update to set newly installed versions to the latest update number.
+ */
+function userreference_update_6000() {
+  if ($abort = content_check_update('userreference')) {
+    return $abort;
+  }
+
+  $ret = array();
+  return $ret;
+}
+
+/**
+ * Create an index by user reference column for all fields.
+ */
+function userreference_update_6001(&$sandbox) {
+  include_once('./'. drupal_get_path('module', 'content') .'/content.install');
+  drupal_load('module', 'content');
+
+  $ret = array();
+
+  if (!isset($sandbox['progress'])) {
+    if ($abort = content_check_update('userreference')) {
+      return $abort;
+    }
+
+    // Get the latest cache values and schema.
+    content_clear_type_cache(TRUE, TRUE);
+    $types = content_types_install();
+
+    if (empty($types)) {
+      return $ret;
+    }
+
+    $sandbox['fields'] = array();
+    foreach ($types as $type_name => $fields) {
+      foreach ($fields as $field) {
+        if ($field['type'] == 'userreference') {
+          $sandbox['fields'][] = $field;
+        }
+      }
+    }
+
+    if (empty($sandbox['fields'])) {
+      return $ret;
+    }
+
+    $sandbox['progress'] = 0;
+    $sandbox['visited'] = array();
+  }
+
+  $field = $sandbox['fields'][$sandbox['progress']];
+
+  // We only want to process a field once -- if we hit it a second time,
+  // that means it's its own table and it should have already been updated.
+  if (!in_array($field['field_name'], $sandbox['visited'])) {
+    $db_info = content_database_info($field);
+    $table = $db_info['table'];
+    $attributes = $db_info['columns']['uid'];
+    $column = $attributes['column'];
+    if (!content_db_index_exists($table, $column)) {
+      db_add_index($ret, $table, $column, array($column));
+    }
+    $sandbox['visited'][] = $field['field_name'];
+  }
+
+  $sandbox['progress']++;
+  $ret['#finished'] = $sandbox['progress'] / count($sandbox['fields']);
+
+  return $ret;
+}
+
+/**
+ * Convert 'referenceable_status' option from array to integer to match the
+ * change in the field settings form where the element has been changed from
+ * a checkboxes element (array) to a radios element (integer).
+ *
+ * Reference: @link http://drupal.org/node/416134 @endlink
+ */
+function userreference_update_6002() {
+  $ret = array();
+
+  drupal_load('module', 'content');
+
+  $result = db_query("SELECT field_name, global_settings FROM {". content_field_tablename() ."} WHERE type = 'userreference'");
+  while ($userreference = db_fetch_object($result)) {
+    $global_settings = unserialize($userreference->global_settings);
+
+    if (isset($global_settings['referenceable_status']) && is_array($global_settings['referenceable_status'])) {
+      $referenceable_status = array_filter($global_settings['referenceable_status']);
+      $global_settings['referenceable_status'] = (!empty($referenceable_status) ? 1 : '');
+
+      // We can't use update_sql() here because of curly braces in serialized
+      // array.
+      db_query("UPDATE {". content_field_tablename() ."} SET global_settings = '%s' WHERE field_name = '%s'", serialize($global_settings), $userreference->field_name);
+      $ret[] = array(
+        'success' => TRUE,
+        'query' => t("The 'referenceable_status' option for %field has been fixed.", array('%field' => $userreference->field_name)),
+      );
+    }
+  }
+
+  // Rebuild content caches only if necessary.
+  if (!empty($ret)) {
+    content_clear_type_cache();
+  }
+
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.module b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.module
new file mode 100644
index 0000000..daf2b50
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.module
@@ -0,0 +1,933 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Defines a field type for referencing a user from a node.
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function userreference_menu() {
+  $items = array();
+  $items['userreference/autocomplete'] = array(
+    'title' => 'Userreference autocomplete',
+    'page callback' => 'userreference_autocomplete',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function userreference_theme() {
+  return array(
+    'userreference_select' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'userreference_buttons' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'userreference_autocomplete' => array(
+      'arguments' => array('element' => NULL),
+    ),
+    'userreference_formatter_default' => array(
+      'arguments' => array('element'),
+    ),
+    'userreference_formatter_plain' => array(
+      'arguments' => array('element'),
+    ),
+  );
+}
+
+/**
+ * Implementaion of hook_ctools_plugin_directory().
+ */
+function userreference_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && $plugin == 'relationships') {
+    return 'panels/' . $plugin;
+  }
+}
+
+/**
+ * Implementation of hook_field_info().
+ */
+function userreference_field_info() {
+  return array(
+    'userreference' => array(
+      'label' => t('User reference'),
+      'description' => t('Store the ID of a related user as an integer value.'),
+//      'content_icon' => 'icon_content_noderef.png',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_field_settings().
+ */
+function userreference_field_settings($op, $field) {
+  switch ($op) {
+    case 'form':
+      $form = array();
+      $form['referenceable_roles'] = array(
+        '#type' => 'checkboxes',
+        '#title' => t('User roles that can be referenced'),
+        '#default_value' => isset($field['referenceable_roles']) && is_array($field['referenceable_roles']) ? array_filter($field['referenceable_roles']) : array(),
+        '#options' => user_roles(1),
+      );
+      $form['referenceable_status'] = array(
+        '#type' => 'radios',
+        '#title' => t('User status that can be referenced'),
+        '#default_value' => isset($field['referenceable_status']) ? $field['referenceable_status'] : '',
+        '#options' => array('' => t('All users'), 1 => t('Active users'), 0 => t('Blocked users')),
+      );
+      if (module_exists('views')) {
+        $views = array('--' => '--');
+        $all_views = views_get_all_views();
+        foreach ($all_views as $view) {
+          // Only 'users' views that have fields will work for our purpose.
+          if ($view->base_table == 'users' && !empty($view->display['default']->display_options['fields'])) {
+            if ($view->type == 'Default') {
+              $views[t('Default Views')][$view->name] = $view->name;
+            }
+            else {
+              $views[t('Existing Views')][$view->name] = $view->name;
+            }
+          }
+        }
+
+        $form['advanced'] = array(
+           '#type' => 'fieldset',
+           '#title' => t('Advanced - Users that can be referenced (View)'),
+           '#collapsible' => TRUE,
+           '#collapsed' => !isset($field['advanced_view']) || $field['advanced_view'] == '--',
+         );
+        if (count($views) > 1) {
+          $form['advanced']['advanced_view'] = array(
+            '#type' => 'select',
+            '#title' => t('View used to select the users'),
+            '#options' => $views,
+            '#default_value' => isset($field['advanced_view']) ? $field['advanced_view'] : '--',
+            '#description' =>  t('<p>Choose the "Views module" view that selects the users that can be referenced.<br />Note:</p>') .
+              t('<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the "Referenceable Roles" and "Referenceable Status" settings above. Use the view\'s "filters" section instead.</li><li>Use the view\'s "fields" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view\'s "sort criteria" section to determine the order in which candidate users will be displayed.</li></ul>'),
+          );
+          $form['advanced']['advanced_view_args'] = array(
+            '#type' => 'textfield',
+            '#title' => t('View arguments'),
+            '#default_value' => isset($field['advanced_view_args']) ? $field['advanced_view_args'] : '',
+            '#required' => FALSE,
+            '#description' => t('Provide a comma separated list of arguments to pass to the view.'),
+          );
+        }
+        else {
+          $form['advanced']['no_view_help'] = array(
+            '#value' => t('<p>The list of user that can be referenced can be based on a "Views module" view but no appropriate views were found. <br />Note:</p>') .
+              t('<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the "Referenceable Roles" and "Referenceable Status" settings above. Use the view\'s "filters" section instead.</li><li>Use the view\'s "fields" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view\'s "sort criteria" section to determine the order in which candidate users will be displayed.</li></ul>'),
+          );
+        }
+      }
+      return $form;
+
+    case 'save':
+      $settings = array('referenceable_roles', 'referenceable_status');
+      if (module_exists('views')) {
+        $settings[] = 'advanced_view';
+        $settings[] = 'advanced_view_args';
+      }
+      return $settings;
+
+    case 'database columns':
+      $columns = array(
+        'uid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'index' => TRUE),
+      );
+      return $columns;
+
+    case 'views data':
+      $data = content_views_field_views_data($field);
+      $db_info = content_database_info($field);
+      $table_alias = content_views_tablename($field);
+
+      // Filter : swap the handler to the 'in' operator.
+      $data[$table_alias][$field['field_name'] .'_uid']['filter']['handler'] = 'content_handler_filter_many_to_one';
+      // Argument: get the user name for summaries.
+      // We need to join a new instance of the users table.
+      $data["users_$table_alias"]['table']['join']['node'] = array(
+        'table' => 'users',
+        'field' => 'uid',
+        'left_table' => $table_alias,
+        'left_field' => $field['field_name'] .'_uid',
+      );
+      $data[$table_alias][$field['field_name'] .'_uid']['argument']['handler'] = 'content_handler_argument_reference';
+      $data[$table_alias][$field['field_name'] .'_uid']['argument']['name table'] = "users_$table_alias";
+      $data[$table_alias][$field['field_name'] .'_uid']['argument']['name field'] = 'name';
+      // Relationship: Add a relationship for related user.
+      $data[$table_alias][$field['field_name'] .'_uid']['relationship'] = array(
+        'base' => 'users',
+        'field' => $db_info['columns']['uid']['column'],
+        'handler' => 'content_handler_relationship',
+        'label' => t($field['widget']['label']),
+        'content_field_name' => $field['field_name'],
+      );
+      return $data;
+
+  }
+}
+
+/**
+ * Implementation of hook_field().
+ */
+function userreference_field($op, &$node, $field, &$items, $teaser, $page) {
+  switch ($op) {
+    case 'validate':
+      // Extract uids to check.
+      $ids = array();
+      foreach ($items as $delta => $item) {
+        if (is_array($item) && !empty($item['uid'])) {
+          if (is_numeric($item['uid'])) {
+            $ids[] = $item['uid'];
+          }
+          else {
+            $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+            if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+            form_set_error($error_element, t('%name: invalid input.', array('%name' => t($field['widget']['label']))));
+          }
+        }
+      }
+      // Prevent performance hog if there are no ids to check.
+      if ($ids) {
+        $refs = _userreference_potential_references($field, '', NULL, $ids);
+        foreach ($items as $delta => $item) {
+          if (is_array($item)) {
+            $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+            if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+            if (!empty($item['uid']) && !isset($refs[$item['uid']])) {
+              form_set_error($error_element, t('%name: invalid user.', array('%name' => t($field['widget']['label']))));
+            }
+          }
+        }
+      }
+      return $items;
+  }
+}
+
+/**
+ * Implementation of hook_content_is_empty().
+ */
+function userreference_content_is_empty($item, $field) {
+  if (empty($item['uid'])) {
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * Implementation of hook_field_formatter_info().
+ */
+function userreference_field_formatter_info() {
+  return array(
+    'default' => array(
+      'label' => t('Default'),
+      'field types' => array('userreference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+    'plain' => array(
+      'label' => t('Plain text'),
+      'field types' => array('userreference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
+  );
+}
+
+/**
+ * Theme function for 'default' userreference field formatter.
+ */
+function theme_userreference_formatter_default($element) {
+  $output = '';
+
+  if (isset($element['#item']['uid']) && $account = user_load(array('uid' => $element['#item']['uid']))) {
+    $output = theme('username', $account);
+  }
+  return $output;
+}
+
+/**
+ * Theme function for 'plain' userreference field formatter.
+ */
+function theme_userreference_formatter_plain($element) {
+  $output = '';
+  if (isset($element['#item']['uid']) && $account = user_load(array('uid' => $element['#item']['uid']))) {
+    $output = $account->name;
+  }
+  return $output;
+}
+
+/**
+ * Implementation of hook_widget_info().
+ *
+ * We need custom handling of multiple values for the userreference_select
+ * widget because we need to combine them into a options list rather
+ * than display multiple elements.
+ *
+ * We will use the content module's default handling for default value.
+ *
+ * Callbacks can be omitted if default handing is used.
+ * They're included here just so this module can be used
+ * as an example for custom modules that might do things
+ * differently.
+ */
+function userreference_widget_info() {
+  return array(
+    'userreference_select' => array(
+      'label' => t('Select list'),
+      'field types' => array('userreference'),
+      'multiple values' => CONTENT_HANDLE_MODULE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+    'userreference_buttons' => array(
+      'label' => t('Check boxes/radio buttons'),
+      'field types' => array('userreference'),
+      'multiple values' => CONTENT_HANDLE_MODULE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+    'userreference_autocomplete' => array(
+      'label' => t('Autocomplete text field'),
+      'field types' => array('userreference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+      'callbacks' => array(
+        'default value' => CONTENT_CALLBACK_DEFAULT,
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of FAPI hook_elements().
+ *
+ * Any FAPI callbacks needed for individual widgets can be declared here,
+ * and the element will be passed to those callbacks for processing.
+ *
+ * Drupal will automatically theme the element using a theme with
+ * the same name as the hook_elements key.
+ *
+ * Autocomplete_path is not used by text_widget but other widgets can use it
+ * (see nodereference and userreference).
+ */
+function userreference_elements() {
+  return array(
+    'userreference_select' => array(
+      '#input' => TRUE,
+      '#columns' => array('uid'), '#delta' => 0,
+      '#process' => array('userreference_select_process'),
+    ),
+    'userreference_buttons' => array(
+      '#input' => TRUE,
+      '#columns' => array('uid'), '#delta' => 0,
+      '#process' => array('userreference_buttons_process'),
+    ),
+    'userreference_autocomplete' => array(
+      '#input' => TRUE,
+      '#columns' => array('name'), '#delta' => 0,
+      '#process' => array('userreference_autocomplete_process'),
+      '#autocomplete_path' => FALSE,
+      ),
+    );
+}
+
+/**
+ * Implementation of hook_widget_settings().
+ */
+function userreference_widget_settings($op, $widget) {
+  switch ($op) {
+    case 'form':
+      $form = array();
+      $match = isset($widget['autocomplete_match']) ? $widget['autocomplete_match'] : 'contains';
+      $size = (isset($widget['size']) && is_numeric($widget['size'])) ? $widget['size'] : 60;
+      if ($widget['type'] == 'userreference_autocomplete') {
+        $form['autocomplete_match'] = array(
+          '#type' => 'select',
+          '#title' => t('Autocomplete matching'),
+          '#default_value' => $match,
+          '#options' => array(
+            'starts_with' => t('Starts with'),
+            'contains' => t('Contains'),
+          ),
+          '#description' => t('Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users.'),
+        );
+        $form['size'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Size of textfield'),
+          '#default_value' => $size,
+          '#element_validate' => array('_element_validate_integer_positive'),
+          '#required' => TRUE,
+        );
+      }
+      else {
+        $form['autocomplete_match'] = array('#type' => 'hidden', '#value' => $match);
+        $form['size'] = array('#type' => 'hidden', '#value' => $size);
+      }
+      $form['reverse_link'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Reverse link'),
+        '#default_value' => isset($widget['reverse_link']) ? $widget['reverse_link'] : 0,
+        '#description' => t('If selected, a reverse link back to the referencing node will displayed on the referenced user record.'),
+      );
+      return $form;
+
+    case 'save':
+      return array('autocomplete_match', 'size', 'reverse_link');
+  }
+}
+
+/**
+ * Implementation of hook_widget().
+ *
+ * Attach a single form element to the form. It will be built out and
+ * validated in the callback(s) listed in hook_elements. We build it
+ * out in the callbacks rather than here in hook_widget so it can be
+ * plugged into any module that can provide it with valid
+ * $field information.
+ *
+ * Content module will set the weight, field name and delta values
+ * for each form element. This is a change from earlier CCK versions
+ * where the widget managed its own multiple values.
+ *
+ * If there are multiple values for this field, the content module will
+ * call this function as many times as needed.
+ *
+ * @param $form
+ *   the entire form array, $form['#node'] holds node information
+ * @param $form_state
+ *   the form_state, $form_state['values'][$field['field_name']]
+ *   holds the field's form values.
+ * @param $field
+ *   the field array
+ * @param $items
+ *   array of default values for this field
+ * @param $delta
+ *   the order of this item in the array of subelements (0, 1, 2, etc)
+ *
+ * @return
+ *   the form item for a single element for this field
+ */
+function userreference_widget(&$form, &$form_state, $field, $items, $delta = 0) {
+  switch ($field['widget']['type']) {
+    case 'userreference_select':
+      $element = array(
+        '#type' => 'userreference_select',
+        '#default_value' => $items,
+      );
+      break;
+
+    case 'userreference_buttons':
+      $element = array(
+        '#type' => 'userreference_buttons',
+        '#default_value' => $items,
+      );
+      break;
+
+    case 'userreference_autocomplete':
+      $element = array(
+        '#type' => 'userreference_autocomplete',
+        '#default_value' => isset($items[$delta]) ? $items[$delta] : NULL,
+        '#value_callback' => 'userreference_autocomplete_value',
+      );
+      break;
+  }
+  return $element;
+}
+
+/**
+ * Value for a userreference autocomplete element.
+ *
+ * Substitute in the user name for the uid.
+ */
+function userreference_autocomplete_value($element, $edit = FALSE) {
+  $field_key  = $element['#columns'][0];
+  if (!empty($element['#default_value'][$field_key])) {
+    $value = db_result(db_query("SELECT name FROM {users} WHERE uid = '%d'", $element['#default_value'][$field_key]));
+    return array($field_key => $value);
+  }
+  return array($field_key => NULL);
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function userreference_select_process($element, $edit, $form_state, $form) {
+  // The userreference_select widget doesn't need to create its own
+  // element, it can wrap around the optionwidgets_select element.
+  // Add a validation step where the value can be unwrapped.
+  $field_key  = $element['#columns'][0];
+  $element[$field_key] = array(
+    '#type' => 'optionwidgets_select',
+    '#default_value' => isset($element['#value']) ? $element['#value'] : '',
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#required' => $element['#required'],
+    '#description' => $element['#description'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+  if (empty($element[$field_key]['#element_validate'])) {
+    $element[$field_key]['#element_validate'] = array();
+  }
+  array_unshift($element[$field_key]['#element_validate'], 'userreference_optionwidgets_validate');
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ * The $fields array is in $form['#field_info'][$element['#field_name']].
+ */
+function userreference_buttons_process($element, $edit, $form_state, $form) {
+  // The userreference_select widget doesn't need to create its own
+  // element, it can wrap around the optionwidgets_select element.
+  // Add a validation step where the value can be unwrapped.
+  $field_key  = $element['#columns'][0];
+  $element[$field_key] = array(
+    '#type' => 'optionwidgets_buttons',
+    '#default_value' => isset($element['#value']) ? $element['#value'] : '',
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#required' => $element['#required'],
+    '#description' => $element['#description'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+  if (empty($element[$field_key]['#element_validate'])) {
+    $element[$field_key]['#element_validate'] = array();
+  }
+  array_unshift($element[$field_key]['#element_validate'], 'userreference_optionwidgets_validate');
+  return $element;
+}
+
+/**
+ * Process an individual element.
+ *
+ * Build the form element. When creating a form using FAPI #process,
+ * note that $element['#value'] is already set.
+ *
+ */
+function userreference_autocomplete_process($element, $edit, $form_state, $form) {
+  // The userreference autocomplete widget doesn't need to create its own
+  // element, it can wrap around the text_textfield element and add an autocomplete
+  // path and some extra processing to it.
+  // Add a validation step where the value can be unwrapped.
+  $field_key  = $element['#columns'][0];
+
+  $element[$field_key] = array(
+    '#type' => 'text_textfield',
+    '#default_value' => isset($element['#value']) ? $element['#value'] : '',
+    '#autocomplete_path' => 'userreference/autocomplete/'. $element['#field_name'],
+    // The following values were set by the content module and need
+    // to be passed down to the nested element.
+    '#title' => $element['#title'],
+    '#required' => $element['#required'],
+    '#description' => $element['#description'],
+    '#field_name' => $element['#field_name'],
+    '#type_name' => $element['#type_name'],
+    '#delta' => $element['#delta'],
+    '#columns' => $element['#columns'],
+  );
+  if (empty($element[$field_key]['#element_validate'])) {
+    $element[$field_key]['#element_validate'] = array();
+  }
+  array_unshift($element[$field_key]['#element_validate'], 'userreference_autocomplete_validate');
+
+  // Used so that hook_field('validate') knows where to flag an error.
+  $element['_error_element'] = array(
+    '#type' => 'value',
+    // Wrapping the element around a text_textfield element creates a
+    // nested element, so the final id will look like 'field-name-0-uid-uid'.
+    '#value' => implode('][', array_merge($element['#parents'], array($field_key, $field_key))),
+  );
+  return $element;
+}
+
+/**
+ * Validate a select/buttons element.
+ *
+ * Remove the wrapper layer and set the right element's value.
+ * We don't know exactly where this element is, so we drill down
+ * through the element until we get to our key.
+ *
+ * We use $form_state['values'] instead of $element['#value']
+ * to be sure we have the most accurate value when other modules
+ * like optionwidgets are using #element_validate to alter the value.
+ */
+function userreference_optionwidgets_validate($element, &$form_state) {
+  $field_key  = $element['#columns'][0];
+
+  $value = $form_state['values'];
+  $new_parents = array();
+  foreach ($element['#parents'] as $parent) {
+    $value = $value[$parent];
+    // Use === to be sure we get right results if parent is a zero (delta) value.
+    if ($parent === $field_key) {
+      $element['#parents'] = $new_parents;
+      form_set_value($element, $value, $form_state);
+      break;
+    }
+    $new_parents[] = $parent;
+  }
+}
+
+/**
+ * Validate an autocomplete element.
+ *
+ * Remove the wrapper layer and set the right element's value.
+ * This will move the nested value at 'field-name-0-uid-uid'
+ * back to its original location, 'field-name-0-uid'.
+ */
+function userreference_autocomplete_validate($element, &$form_state) {
+  $field_name = $element['#field_name'];
+  $type_name = $element['#type_name'];
+  $field = content_fields($field_name, $type_name);
+  $field_key = $element['#columns'][0];
+  $value = $element['#value'][$field_key];
+  $uid = NULL;
+  if (!empty($value)) {
+    $reference = _userreference_potential_references($field, $value, 'equals', NULL, 1);
+    if (empty($reference)) {
+      form_error($element[$field_key], t('%name: found no valid user with that name.', array('%name' => t($field['widget']['label']))));
+    }
+    else {
+      $uid = key($reference);
+    }
+  }
+  form_set_value($element, $uid, $form_state);
+}
+
+/**
+ * Implementation of hook_allowed_values().
+ */
+function userreference_allowed_values($field) {
+  $references = _userreference_potential_references($field);
+
+  $options = array();
+  foreach ($references as $key => $value) {
+    $options[$key] = $value['rendered'];
+  }
+
+  return $options;
+}
+
+/**
+ * Fetch an array of all candidate referenced users.
+ *
+ * This info is used in various places (aloowed values, autocomplete results,
+ * input validation...). Some of them only need the uids, others nid + names,
+ * others yet uid + names + rendered row (for display in widgets).
+ * The array we return contains all the potentially needed information, and lets
+ * consumers use the parts they actually need.
+ *
+ * @param $field
+ *   The field description.
+ * @param $string
+ *   Optional string to filter usernames on (used by autocomplete)
+ * @param $match
+ *   Operator to match filtered name against, can be any of:
+ *   'contains', 'equals', 'starts_with'
+ * @param $ids
+ *   Optional user ids to lookup (the $string and $match arguments will be
+ *   ignored).
+ * @param $limit
+ *   If non-zero, limit the size of the result set.
+ *
+ * @return
+ *   An array of valid users in the form:
+ *   array(
+ *     uid => array(
+ *       'title' => The user name,
+ *       'rendered' => The text to display in widgets (can be HTML)
+ *     ),
+ *     ...
+ *   )
+ */
+function _userreference_potential_references($field, $string = '', $match = 'contains', $ids = array(), $limit = NULL) {
+  static $results = array();
+
+  // Create unique id for static cache.
+  $cid = $field['field_name'] .':'. $match .':'. ($string !== '' ? $string : implode('-', $ids)) .':'. $limit;
+  if (!isset($results[$cid])) {
+    $references = FALSE;
+    if (module_exists('views') && !empty($field['advanced_view']) && $field['advanced_view'] != '--') {
+      $references = _userreference_potential_references_views($field, $string, $match, $ids, $limit);
+    }
+    // If the view doesn't exist, we got FALSE, and fallback to the regular 'standard mode'.
+
+    if ($references === FALSE) {
+      $references = _userreference_potential_references_standard($field, $string, $match, $ids, $limit);
+    }
+
+    // Store the results.
+    $results[$cid] = !empty($references) ? $references : array();
+  }
+
+  return $results[$cid];
+}
+
+/**
+ * Helper function for _userreference_potential_references():
+ * case of Views-defined referenceable users.
+ */
+function _userreference_potential_references_views($field, $string = '', $match = 'contains', $ids = array(), $limit = NULL) {
+  $view_name = $field['advanced_view'];
+
+  if ($view = views_get_view($view_name)) {
+    // We add a display, and let it derive from the 'default' display.
+    // TODO: We should let the user pick a display in the fields settings - sort of requires AHAH...
+    $display = $view->add_display('content_references');
+    $view->set_display($display);
+
+    // TODO from merlinofchaos on IRC : arguments using summary view can defeat the style setting.
+    // We might also need to check if there's an argument, and set *its* style_plugin as well.
+    $view->display_handler->set_option('style_plugin', 'content_php_array_autocomplete');
+    $view->display_handler->set_option('row_plugin', 'fields');
+    // Used in content_plugin_style_php_array::render(), to get
+    // the 'field' to be used as title.
+    $view->display_handler->set_option('content_title_field', 'name');
+
+    // Additional options to let content_plugin_display_references::query()
+    // narrow the results.
+    $options = array(
+      'table' => 'users',
+      'field_string' => 'name',
+      'string' => $string,
+      'match' => $match,
+      'field_id' => 'uid',
+      'ids' => $ids,
+    );
+    $view->display_handler->set_option('content_options', $options);
+
+    // TODO : for consistency, a fair amount of what's below
+    // should be moved to content_plugin_display_references
+
+    // Limit result set size.
+    $limit = isset($limit) ? $limit : 0;
+    $view->display_handler->set_option('items_per_page', $limit);
+
+    // Get arguments for the view.
+    if (!empty($field['advanced_view_args'])) {
+      // TODO: Support Tokens using token.module ?
+      $view_args = array_map('trim', explode(',', $field['advanced_view_args']));
+    }
+    else {
+      $view_args = array();
+    }
+
+    // We do need name field, so add it if not present (unlikely, but...)
+    $fields = $view->get_items('field', $display);
+    if (!isset($fields['name'])) {
+      $view->add_item($display, 'field', 'users', 'name');
+    }
+
+    // If not set, make all fields inline and define a separator.
+    $options = $view->display_handler->get_option('row_options');
+    if (empty($options['inline'])) {
+      $options['inline'] = drupal_map_assoc(array_keys($view->get_items('field', $display)));
+    }
+    if (empty($options['separator'])) {
+      $options['separator'] = '-';
+    }
+    $view->display_handler->set_option('row_options', $options);
+
+    // Make sure the query is not cached
+    $view->is_cacheable = FALSE;
+
+    // Get the results.
+    $result = $view->execute_display($display, $view_args);
+  }
+  else {
+    $result = FALSE;
+  }
+
+  return $result;
+}
+
+/**
+ * Helper function for _userreference_potential_references():
+ * referenceable users defined by user role and status
+ */
+function _userreference_potential_references_standard($field, $string = '', $match = 'contains', $ids = array(), $limit = NULL) {
+  $where = array();
+  $args = array();
+  $join = array();
+
+  if ($string !== '') {
+    $like = $GLOBALS["db_type"] == 'pgsql' ? "ILIKE" : "LIKE";
+    $match_clauses = array(
+      'contains' => "$like '%%%s%%'",
+      'equals' => "= '%s'",
+      'starts_with' => "$like '%s%%'",
+    );
+    $where[] = 'u.name '. (isset($match_clauses[$match]) ? $match_clauses[$match] : $match_clauses['contains']);
+    $args[] = $string;
+  }
+  elseif ($ids) {
+    $where[] = 'u.uid IN (' . db_placeholders($ids) . ')';
+    $args = array_merge($args, $ids);
+  }
+  else {
+    $where[] = "u.uid > 0";
+  }
+
+  $roles = array();
+  if (isset($field['referenceable_roles']) && is_array($field['referenceable_roles'])) {
+    // keep only selected checkboxes
+    $roles = array_filter($field['referenceable_roles']);
+    // filter invalid values that seems to get through sometimes ??
+    $roles = array_intersect(array_keys(user_roles(1)), $roles);
+  }
+  if (!empty($roles) && !in_array(DRUPAL_AUTHENTICATED_RID, $roles)) {
+    $where[] = "r.rid IN (". implode($roles, ',') .")";
+    $join[] = 'LEFT JOIN {users_roles} r ON u.uid = r.uid';
+  }
+
+  if (isset($field['referenceable_status']) && is_numeric($field['referenceable_status'])) {
+    $where[] = 'u.status = %d';
+    $args[] = $field['referenceable_status'];
+  }
+
+  $users = array();
+  $where_clause = $where ? 'WHERE ('. implode(') AND (', $where) .')' : '';
+  $result = db_query('SELECT u.name, u.uid FROM {users} u '. implode(' ', $join) ." $where_clause ORDER BY u.name ASC", $args);
+  while ($user = db_fetch_object($result)) {
+    $users[$user->uid] = array(
+      'title' => $user->name,
+      'rendered' => check_plain($user->name),
+    );
+  }
+  return $users;
+}
+
+/**
+ * Menu callback; Retrieve a pipe delimited string of autocomplete suggestions for existing users
+ */
+function userreference_autocomplete($field_name, $string = '') {
+  $fields = content_fields();
+  $field = $fields[$field_name];
+  $match = isset($field['widget']['autocomplete_match']) ? $field['widget']['autocomplete_match'] : 'contains';
+  $matches = array();
+
+  $references = _userreference_potential_references($field, $string, $match, array(), 10);
+  foreach ($references as $id => $row) {
+    // Add a class wrapper for a few required CSS overrides.
+    $matches[$row['title']] = '<div class="reference-autocomplete">'. $row['rendered'] . '</div>';
+  }
+  drupal_json($matches);
+}
+
+/**
+ * Implementation of hook_user().
+ */
+function userreference_user($type, &$edit, &$account) {
+  switch ($type) {
+    case 'load':
+      // Only add links if we are on the user 'view' page.
+      if (arg(0) != 'user' || arg(2)) {
+        return;
+      }
+      // find CCK userreference field tables
+      // search through them for matching user ids and load those nodes
+      $additions = array();
+      $types = content_types();
+
+      // Find the table and columns to search through, if the same
+      // table comes up in more than one content type, we only need
+      // to search it once.
+      $search_tables = array();
+      foreach ($types as $type_name => $type) {
+        foreach ($type['fields'] as $field) {
+          // Only add tables when reverse link has been selected.
+          if ($field['type'] == 'userreference' && !empty($field['widget']['reverse_link'])) {
+            $db_info = content_database_info($field);
+            $search_tables[$db_info['table']][] = $db_info['columns']['uid']['column'];
+          }
+        }
+      }
+      foreach ($search_tables as $table => $columns) {
+        foreach ($columns as $column) {
+          $ids = db_query(db_rewrite_sql("SELECT DISTINCT(n.nid), n.title, n.type FROM {node} n LEFT JOIN {". $table ."} f ON n.vid = f.vid WHERE f.". $column ."=". $account->uid. " AND n.status = 1"));
+          while ($data = db_fetch_object($ids)) {
+            $additions[$data->type][$data->nid] = $data->title;
+          }
+        }
+      }
+      $account->userreference = $additions;
+      break;
+
+    case 'view':
+      if (!empty($account->userreference)) {
+        $node_types = content_types();
+        $additions = array();
+        $values = array();
+        foreach ($account->userreference as $node_type => $nodes) {
+          foreach ($nodes as $nid => $title) {
+            $values[$node_type][] = l($title, 'node/'. $nid);
+          }
+          if (isset($values[$node_type])) {
+            $additions[] = array(
+              '#type' => 'user_profile_item',
+              '#title' => check_plain($node_types[$node_type]['name']),
+              '#value' => theme('item_list', $values[$node_type]),
+            );
+          }
+        }
+        if ($additions) {
+          $account->content['userreference'] = $additions + array(
+            '#type' => 'user_profile_category',
+            '#attributes' => array('class' => 'user-member'),
+            '#title' => t('Related content'),
+            '#weight' => 10,
+          );
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * FAPI theme for an individual elements.
+ *
+ * The textfield or select is already rendered by the
+ * textfield or select themes and the html output
+ * lives in $element['#children']. Override this theme to
+ * make custom changes to the output.
+ *
+ * $element['#field_name'] contains the field name
+ * $element['#delta]  is the position of this element in the group
+ */
+function theme_userreference_select($element) {
+  return $element['#children'];
+}
+
+function theme_userreference_buttons($element) {
+  return $element['#children'];
+}
+
+function theme_userreference_autocomplete($element) {
+  return $element['#children'];
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.rules.inc b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.rules.inc
new file mode 100644
index 0000000..454df99
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/modules/userreference/userreference.rules.inc
@@ -0,0 +1,62 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provides additional rules support for userreference fields.
+ */
+
+/**
+ * Implementation of hook_rules_action_info()
+ */
+function userreference_rules_action_info() {
+  $info = array();
+  $info['userreference_rules_action_load'] = array(
+    'label' => t('Load a referenced user'),
+    'arguments' => array(
+      'node' => array(
+        'type' => 'node',
+        'label' => t('Content containing the user reference field'),
+      ),
+    ),
+    'new variables' => array(
+      'referenced_user' => array(
+        'type' => 'user',
+        'label' => t('Referenced user'),
+      ),
+    ),
+    'module' => 'CCK',
+    'help' => t('Note that if the field has multiple values, only the first user will be loaded.'),
+  );
+  return $info;
+}
+
+function userreference_rules_action_load($node, $settings) {
+  $uid = $node->{$settings['field']}[0]['uid'];
+  if (isset($uid)) {
+    $user = user_load(array('uid' => $uid));
+    return array('referenced_user' => $user);
+  }
+}
+
+function userreference_rules_action_load_form($settings, &$form) {
+  $settings += array('field' => '');
+  $options = content_rules_get_field_names_by_type('userreference');
+  $form['settings']['field'] = array(
+    '#type' => 'select',
+    '#title' => t('Field'),
+    '#default_value' => $settings['field'],
+    '#options' => $options,
+    '#required' => TRUE,
+    '#disabled' => empty($options),
+    '#description' => empty($options) ? t('There are no userreference fields defined.') : '',
+  );
+}
+
+/**
+ * Helps upgrading from the workflow-ng action.
+ * "workflow_ng_action_load_referenced_user" to the equivalent rules action.
+ */
+function workflow_ng_action_load_referenced_user_upgrade(&$element) {
+  $element['#name'] = 'userreference_rules_action_load';
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/tests/content.crud.test b/drupal/sites/default/boinc/modules/contrib/cck/tests/content.crud.test
new file mode 100644
index 0000000..070a3d0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/tests/content.crud.test
@@ -0,0 +1,1236 @@
+<?php
+// $Id$
+
+// TODO:
+// - Test search indexing
+// - Test values reordering with preview and failed validation
+
+/**
+ * Base class for CCK CRUD tests.
+ * Defines many helper functions useful for writing CCK CRUD tests.
+ */
+class ContentCrudTestCase extends DrupalWebTestCase {
+  var $enabled_schema = FALSE;
+  var $content_types  = array();
+  var $nodes          = array();
+  var $last_field     = NULL;
+  var $next_field_n   = 1;
+
+  /**
+   * Enable CCK, Text, and Schema modules.
+   */
+  function setUp() {
+    $args = func_get_args();
+    $modules = array_merge(array('content', 'schema', 'text'), $args);
+    call_user_func_array(array('parent','setUp'), $modules);
+    module_load_include('inc', 'content', 'includes/content.crud');
+  }
+
+  // Database schema related helper functions
+
+  /**
+   * Checks that the database itself and the reported database schema match the
+   * expected columns for the given tables.
+   * @param $tables An array containing the key 'per_field' and/or the key 'per_type'.
+   *  These keys should have array values with table names as the keys (without the 'content_' / 'content_type_' prefix)
+   *  These keys should have either NULL value to indicate the table should be absent, or
+   *  array values containing column names. The column names can themselves be arrays, in
+   *  which case the contents of the array are treated as column names and prefixed with
+   *  the array key.
+   *
+   * For example, if called with the following as an argument:
+   * array(
+   *   'per_field' => array(
+   *     'st_f1' => array('delta', 'field_f1' => array('value, 'format')),
+   *     'st_f2' => NULL,    // no content_field_f2 table
+   *   ),
+   *   'per_type' => array(
+   *     'st_t1' => array('field_f2' => array('value'), 'field_f3' => array('value', 'format')),
+   *     'st_t2' => array(), // only 'nid' and 'vid' columns
+   *     'st_t3' => NULL,    // no content_type_t3 table
+   *   ),
+   * )
+   * Then the database and schema will be checked to ensure that:
+   *   content_st_f1 table contains fields nid, vid, delta, field_f1_value, field_f1_format
+   *   content_st_f2 table is absent
+   *   content_type_st_t1 table contains fields nid, vid, field_f2_value, field_f3_value, field_f3_format
+   *   content_type_st_t2 table contains fields nid, vid
+   *   content_type_st_t3 table is absent
+   */
+  function assertSchemaMatchesTables($tables) {
+    $groups = array('per_field' => 'content_', 'per_type' => 'content_type_');
+
+    foreach ($groups as $group => $table_prefix) {
+      if (isset($tables[$group])) {
+        foreach ($tables[$group] as $entity => $columns) {
+          if (isset($columns)) {
+            $db_columns = array('nid', 'vid');
+            foreach ($columns as $prefix => $items) {
+              if (is_array($items)) {
+                foreach ($items as $item) {
+                  $db_columns[] = $prefix .'_'. $item;
+                }
+              }
+              else {
+                $db_columns[] = $items;
+              }
+            }
+            $this->_assertSchemaMatches($table_prefix . $entity, $db_columns);
+          }
+          else {
+            $this->_assertTableNotExists($table_prefix . $entity);
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * Helper function for assertSchemaMatchesTables
+   * Checks that the given database table does NOT exist
+   * @param $table Name of the table to check
+   */
+  function _assertTableNotExists($table) {
+    $this->assertFalse(db_table_exists($table), t('Table !table is absent', array('!table' => $table)));
+  }
+
+  /**
+   * Helper function for assertSchemaMatchesTables
+   * Checks that the database and schema for the given table contain only the expected fields.
+   * @param $table Name of the table to check
+   * @param $columns Array of column names
+   */
+  function _assertSchemaMatches($table, $columns) {
+    // First test: check the expected structure matches the stored schema.
+    $schema = drupal_get_schema($table, TRUE);
+    $mismatches = array();
+    if ($schema === FALSE) {
+      $mismatches[] = t('table does not exist');
+    }
+    else {
+      $fields = $schema['fields'];
+      foreach ($columns as $field) {
+        if (!isset($fields[$field])) {
+          $mismatches[] = t('field !field is missing from table', array('!field' => $field));
+        }
+      }
+      $columns_reverse = array_flip($columns);
+      foreach ($fields as $name => $info) {
+        if(!isset($columns_reverse[$name])) {
+          $mismatches[] = t('table contains unexpected field !field', array('!field' => $name));
+        }
+      }
+    }
+    $this->assertEqual(count($mismatches), 0, t('Table !table matches schema: !details',
+      array('!table' => $table, '!details' => implode($mismatches, ', '))));
+
+    // Second test: check the schema matches the actual db structure.
+    // This is the part that relies on schema.module.
+    if (!$this->enabled_schema) {
+      $this->enabled_schema = module_exists('schema');
+    }
+    if ($this->enabled_schema) {
+      // Clunky workaround for http://drupal.org/node/215198
+      $prefixed_table = db_prefix_tables('{'. $table .'}');
+      $inspect = schema_invoke('inspect', $prefixed_table);
+      $inspect = isset($inspect[$table]) ? $inspect[$table] : NULL;
+      $compare = schema_compare_table($schema, $inspect);
+      if ($compare['status'] == 'missing') {
+        $compare['reasons'] = array(t('table does not exist'));
+      }
+    }
+    else {
+      $compare = array('status' => 'unknown', 'reasons' => array(t('cannot enable schema module')));
+    }
+    $this->assertEqual($compare['status'], 'same', t('Table schema for !table matches database: !details',
+      array('!table' => $table, '!details' => implode($compare['reasons'], ', '))));
+  }
+
+  // Node data helper functions
+
+  /**
+   * Helper function for assertNodeSaveValues. Recursively checks that
+   * all the keys of a table are present in a second and have the same value.
+   */
+  function _compareArrayForChanges($fields, $data, $message, $prefix = '') {
+    foreach ($fields as $key => $value) {
+      $newprefix = ($prefix == '') ? $key : $prefix .']['. $key;
+      if (is_array($value)) {
+        $compare_to = isset($data[$key]) ? $data[$key] : array();
+        $this->_compareArrayForChanges($value, $compare_to, $message, $newprefix);
+      }
+      else {
+        $this->assertEqual($value, $data[$key], t($message, array('!key' => $newprefix)));
+      }
+    }
+  }
+
+  /**
+   * Checks that after a node is saved using node_save, the values to be saved
+   * match up with the output from node_load.
+   * @param $node Either a node object, or the index of an acquired node
+   * @param $values Array of values to be merged with the node and passed to node_save
+   * @return The values array
+   */
+  function assertNodeSaveValues($node, $values) {
+    if (is_numeric($node) && isset($this->nodes[$node])) {
+      $node = $this->nodes[$node];
+    }
+    $node = $values + (array)$node;
+    $node = (object)$node;
+    node_save($node);
+    $this->assertNodeValues($node, $values);
+    return $values;
+  }
+
+  /**
+   * Checks that the output from node_load matches the expected values.
+   * @param $node Either a node object, or the index of an acquired node (only the nid field is used)
+   * @param $values Array of values to check against node_load. The node object must contain the keys in the array,
+   *  and the values must be equal, but the node object may also contain other keys.
+   */
+  function assertNodeValues($node, $values) {
+    if (is_numeric($node) && isset($this->nodes[$node])) {
+      $node = $this->nodes[$node];
+    }
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->_compareArrayForChanges($values, (array)$node, 'Node data [!key] is correct');
+  }
+
+  /**
+   * Checks that the output from node_load is missing certain fields
+   * @param $node Either a node object, or the index of an acquired node (only the nid field is used)
+   * @param $fields Array containing a list of field names
+   */
+  function assertNodeMissingFields($node, $fields) {
+    if (is_numeric($node) && isset($this->nodes[$node])) {
+      $node = $this->nodes[$node];
+    }
+    $node = (array)node_load($node->nid, NULL, TRUE);
+    foreach ($fields as $field) {
+      $this->assertFalse(isset($node[$field]), t('Node should be lacking field !key', array('!key' => $field)));
+    }
+  }
+
+  /**
+   * Creates random values for a text field
+   * @return An array containing a value key and a format key
+   */
+  function createRandomTextFieldData() {
+    return array(
+      'value' => '!SimpleTest! test value' . $this->randomName(60),
+      'format' => 2,
+    );
+  }
+
+  // Login/user helper functions
+
+  /**
+   * Creates a user / role with certain permissions and then logs in as that user
+   * @param $permissions Array containing list of permissions. If not given, defaults to
+   *  access content, administer content types, administer nodes and administer filters.
+   */
+  function loginWithPermissions($permissions = NULL) {
+    if (!isset($permissions)) {
+      $permissions = array(
+        'access content',
+        'administer content types',
+        'administer nodes',
+        'administer filters',
+      );
+    }
+    $user = $this->drupalCreateUser($permissions);
+    $this->drupalLogin($user);
+  }
+
+  // Creation helper functions
+
+  /**
+   * Creates a number of content types with predictable names (simpletest_t1 ... simpletest_tN)
+   * These content types can later be accessed via $this->content_types[0 ... N-1]
+   * @param $count Number of content types to create
+   */
+  function acquireContentTypes($count) {
+    $this->content_types = array();
+    for ($i = 0; $i < $count; $i++) {
+      $name = 'simpletest_t'. ($i + 1);
+      $this->content_types[$i] = $this->drupalCreateContentType(array(
+        'name' => $name,
+        'type' => $name,
+      ));
+    }
+    content_clear_type_cache();
+  }
+
+  /**
+   * Creates a number of nodes of each acquired content type.
+   * Remember to call acquireContentTypes() before calling this, else the content types won't exist.
+   * @param $count Number of nodes to create per acquired content type (defaults to 1)
+   */
+  function acquireNodes($count = 1) {
+    $this->nodes = array();
+    foreach ($this->content_types as $content_type) {
+      for ($i = 0; $i < $count; $i++) {
+        $this->nodes[] = $this->drupalCreateNode(array('type' => $content_type->type));
+      }
+    }
+  }
+
+  /**
+   * Creates a field instance with a predictable name. Also makes all future calls to functions
+   * which take an optional field use this one as the default.
+   * @param $settings Array to be passed to content_field_instance_create. If the field_name
+   *  or type_name keys are missing, then they will be added. The default field name is
+   *  simpletest_fN, where N is 1 for the first created field, and increments. The default
+   *  type name is type name of the $content_type argument.
+   * @param $content_type Either a content type object, or the index of an acquired content type
+   * @return The newly created field instance.
+   */
+  function createField($settings, $content_type = 0) {
+    if (is_numeric($content_type) && isset($this->content_types[$content_type])) {
+      $content_type = $this->content_types[$content_type];
+    }
+    $defaults = array(
+      'field_name' => 'simpletest_f'. $this->next_field_n++,
+      'type_name' => $content_type->type,
+    );
+    $settings = $settings + $defaults;
+    $this->last_field = content_field_instance_create($settings);
+    return $this->last_field;
+  }
+
+  /**
+   * Creates a textfield instance. Identical to createField() except it ensures that the text module
+   * is enabled, and adds default settings of type (text) and widget_type (text_textfield) if they
+   * are not given in $settings.
+   * @sa createField()
+   */
+  function createFieldText($settings, $content_type = 0) {
+    $defaults = array(
+      'type' => 'text',
+      'widget_type' => 'text_textfield',
+    );
+    $settings = $settings + $defaults;
+    return $this->createField($settings, $content_type);
+  }
+
+  // Field manipulation helper functions
+
+  /**
+   * Updates a field instance. Also makes all future calls to functions which take an optional
+   * field use the updated one as the default.
+   * @param $settings New settings for the field instance. If the field_name or type_name keys
+   *  are missing, then they will be taken from $field.
+   * @param $field The field instance to update (defaults to the last worked upon field)
+   * @return The updated field instance.
+   */
+  function updateField($settings, $field = NULL) {
+    if (!isset($field)) {
+      $field = $this->last_field;
+    }
+    $defaults = array(
+      'field_name' => $field['field_name'],
+      'type_name'  => $field['type_name'] ,
+    );
+    $settings = $settings + $defaults;
+    $this->last_field = content_field_instance_update($settings);
+    return $this->last_field;
+  }
+
+  /**
+   * Makes a copy of a field instance on a different content type, effectively sharing the field with a new
+   * content type. Also makes all future calls to functions which take an optional field use the shared one
+   * as the default.
+   * @param $new_content_type Either a content type object, or the index of an acquired content type
+   * @param $field The field instance to share (defaults to the last worked upon field)
+   * @return The shared (newly created) field instance.
+   */
+  function shareField($new_content_type, $field = NULL) {
+    if (!isset($field)) {
+      $field = $this->last_field;
+    }
+    if (is_numeric($new_content_type) && isset($this->content_types[$new_content_type])) {
+      $new_content_type = $this->content_types[$new_content_type];
+    }
+    $field['type_name'] = $new_content_type->type;
+    $this->last_field = content_field_instance_create($field);
+    return $this->last_field;
+  }
+
+  /**
+   * Deletes an instance of a field.
+   * @param $content_type Either a content type object, or the index of an acquired content type (used only
+   *  to get field instance type name).
+   * @param $field The field instance to delete (defaults to the last worked upon field, used only to get
+   *  field instance field name).
+   */
+  function deleteField($content_type, $field = NULL) {
+    if (!isset($field)) {
+      $field = $this->last_field;
+    }
+    if (is_numeric($content_type) && isset($this->content_types[$content_type])) {
+      $content_type = $this->content_types[$content_type];
+    }
+    content_field_instance_delete($field['field_name'], $content_type->type);
+  }
+}
+
+class ContentCrudBasicTest extends ContentCrudTestCase {
+  function getInfo() {
+    return array(
+      'name' => t('CRUD - Basic API tests'),
+      'description' => t('Tests the field CRUD (create, read, update, delete) API. <strong>Requires <a href="@schema_link">Schema module</a>.</strong>', array('@schema_link' => 'http://www.drupal.org/project/schema')),
+      'group' => t('CCK'),
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+    $this->acquireContentTypes(1);
+  }
+
+  function testBasic() {
+    // Create a field with both field and instance settings.
+    $field = $this->createFieldText(array('widget_type' => 'text_textarea', 'text_processing' => 1, 'rows' => 5), 0);
+
+
+    // Check that collapse and expand are inverse.
+    $fields = content_field_instance_read(array('field_name' => $field['field_name'], 'type_name' => $this->content_types[0]->type));
+    $field1 = array_pop($fields);
+
+    $field2 = content_field_instance_collapse($field1);
+    $field3 = content_field_instance_expand($field2);
+    $field4 = content_field_instance_collapse($field3);
+
+    $this->assertIdentical($field1, $field3, 'collapse then expand is identity');
+    $this->assertIdentical($field2, $field4, 'expand then collapse is identity');
+
+
+    // Check that collapse and expand are both final
+    // (e.g. do not further alter the data when called multiple times).
+    $fields = content_field_instance_read(array('field_name' => $field['field_name'], 'type_name' => $this->content_types[0]->type));
+    $field1 = array_pop($fields);
+
+    $field2 = content_field_instance_collapse($field1);
+    $field3 = content_field_instance_collapse($field2);
+    $this->assertIdentical($field2, $field3, 'collapse is final');
+
+    $field2 = content_field_instance_expand($field1);
+    $field3 = content_field_instance_expand($field2);
+    $this->assertIdentical($field2, $field3, 'expand is final');
+
+
+    // Check that updating a field as is leaves it unchanged.
+    $fields = content_field_instance_read(array('field_name' => $field['field_name'], 'type_name' => $this->content_types[0]->type));
+    $field1 = array_pop($fields);
+    $field2 = content_field_instance_update($field1);
+    $fields = content_field_instance_read(array('field_name' => $field['field_name'], 'type_name' => $this->content_types[0]->type));
+    $field3 = array_pop($fields);
+
+    $this->assertIdentical($field1, $field3, 'read, update, read is identity');
+  }
+}
+
+class ContentCrudSingleToMultipleTest extends ContentCrudTestCase {
+  function getInfo() {
+    return array(
+      'name' => t('CRUD - Single to multiple'),
+      'description' => t('Tests the field CRUD (create, read, update, delete) API by creating a single value field and changing it to a multivalue field, sharing it between several content types. <strong>Requires <a href="@schema_link">Schema module</a>.</strong>', array('@schema_link' => 'http://www.drupal.org/project/schema')),
+      'group' => t('CCK'),
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+    $this->loginWithPermissions();
+    $this->acquireContentTypes(3);
+    $this->acquireNodes();
+  }
+
+  function testSingleToMultiple() {
+    // Create a simple text field
+    $this->createFieldText(array('text_processing' => 1));
+    $target_schema = array(
+      'per_type' => array(
+        'simpletest_t1' => array('simpletest_f1' => array('value', 'format'))
+      ),
+      'per_field' => array(),
+    );
+    $this->assertSchemaMatchesTables($target_schema);
+    $node0values = $this->assertNodeSaveValues(0, array(
+      'simpletest_f1' => array(
+        0 => $this->createRandomTextFieldData(),
+      )
+    ));
+
+    // Change the text field to allow multiple values
+    $this->updateField(array('multiple' => 1));
+    $target_schema = array(
+      'per_type' => array(
+        'simpletest_t1' => array(),
+      ),
+      'per_field' => array(
+        'simpletest_f1' => array('delta', 'simpletest_f1' => array('value', 'format')),
+      ),
+    );
+    $this->assertSchemaMatchesTables($target_schema);
+    $this->assertNodeValues(0, $node0values);
+
+    // Share the text field with 2 additional types t2 and t3.
+    for ($share_with_content_type = 1; $share_with_content_type <= 2; $share_with_content_type++) {
+      $this->shareField($share_with_content_type);
+      // There should be a new 'empty' per-type table for each content type that has fields.
+      $target_schema['per_type']['simpletest_t'. ($share_with_content_type + 1)] = array();
+      $this->assertSchemaMatchesTables($target_schema);
+      // The acquired node index will match the content type index as exactly one node is acquired per content type
+      $this->assertNodeSaveValues($share_with_content_type, array(
+        'simpletest_f1' => array(
+          0 => $this->createRandomTextFieldData(),
+        )
+      ));
+    }
+
+    // Delete the text field from all content types
+    for ($delete_from_content_type = 2; $delete_from_content_type >= 0; $delete_from_content_type--) {
+      $this->deleteField($delete_from_content_type);
+      // Content types that don't have fields any more shouldn't have any per-type table.
+      $target_schema['per_type']['simpletest_t'. ($delete_from_content_type + 1)] = NULL;
+      // After removing the last instance, there should be no table for the field either.
+      if ($delete_from_content_type == 0) {
+        $target_schema['per_field']['simpletest_f1'] = NULL;
+      }
+      $this->assertSchemaMatchesTables($target_schema);
+      // The acquired node index will match the content type index as exactly one node is acquired per content type
+      $this->assertNodeMissingFields($this->nodes[$delete_from_content_type], array('simpletest_f1'));
+    }
+  }
+}
+
+class ContentCrudMultipleToSingleTest extends ContentCrudTestCase {
+  function getInfo() {
+    return array(
+      'name' => t('CRUD - Multiple to single'),
+      'description' => t('Tests the field CRUD (create, read, update, delete) API by creating a multivalue field and changing it to a single value field, sharing it between several content types. <strong>Requires <a href="@schema_link">Schema module</a>.</strong>', array('@schema_link' => 'http://www.drupal.org/project/schema')),
+      'group' => t('CCK'),
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+    $this->loginWithPermissions();
+    $this->acquireContentTypes(3);
+    $this->acquireNodes();
+  }
+
+  function testMultipleToSingle() {
+    // Create a multivalue text field
+    $this->createFieldText(array('text_processing' => 1, 'multiple' => 1));
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        'simpletest_t1' => array(),
+      ),
+      'per_field' => array(
+        'simpletest_f1' => array('delta', 'simpletest_f1' => array('value', 'format')),
+      ),
+    ));
+    $this->assertNodeSaveValues(0, array(
+      'simpletest_f1' => array(
+        0 => $this->createRandomTextFieldData(),
+        1 => $this->createRandomTextFieldData(),
+        2 => $this->createRandomTextFieldData(),
+      )
+    ));
+
+    // Change to a simple text field
+    $this->updateField(array('multiple' => 0));
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        'simpletest_t1' => array('simpletest_f1' => array('value', 'format')),
+      ),
+      'per_field' => array(
+        'simpletest_f1' => NULL,
+      ),
+    ));
+    $node0values = $this->assertNodeSaveValues(0, array(
+      'simpletest_f1' => array(
+        0 => $this->createRandomTextFieldData(),
+      )
+    ));
+
+    // Share the text field with other content type
+    $this->shareField(1);
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        'simpletest_t1' => array(),
+        'simpletest_t2' => array(),
+      ),
+      'per_field' => array(
+        'simpletest_f1' => array('simpletest_f1' => array('value', 'format')),
+      ),
+    ));
+    $node1values = $this->assertNodeSaveValues(1, array(
+      'simpletest_f1' => array(
+        0 => $this->createRandomTextFieldData(),
+      )
+    ));
+    $this->assertNodeValues(0, $node0values);
+
+    // Share the text field with a 3rd type
+    $this->shareField(2);
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        'simpletest_t1' => array(),
+        'simpletest_t2' => array(),
+        'simpletest_t3' => array(),
+      ),
+      'per_field' => array(
+        'simpletest_f1' => array('simpletest_f1' => array('value', 'format')),
+      ),
+    ));
+    $this->assertNodeSaveValues(2, array(
+      'simpletest_f1' => array(
+        0 => $this->createRandomTextFieldData(),
+      )
+    ));
+    $this->assertNodeValues(1, $node1values);
+    $this->assertNodeValues(0, $node0values);
+
+    // Remove text field from 3rd type
+    $this->deleteField(2);
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        'simpletest_t1' => array(),
+        'simpletest_t2' => array(),
+        'simpletest_t3' => NULL,
+      ),
+      'per_field' => array(
+        'simpletest_f1' => array('simpletest_f1' => array('value', 'format')),
+      ),
+    ));
+    $this->assertNodeMissingFields($this->nodes[2], array('simpletest_f1'));
+
+    // Remove text field from 2nd type (field isn't shared anymore)
+    $this->deleteField(1);
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        'simpletest_t1' => array('simpletest_f1' => array('value', 'format')),
+        'simpletest_t2' => NULL,
+        'simpletest_t3' => NULL,
+      ),
+      'per_field' => array(
+        'simpletest_f1' => NULL,
+      ),
+    ));
+    $this->assertNodeMissingFields(1, array('simpletest_f1'));
+    $this->assertNodeValues(0, $node0values);
+
+    // Remove text field from original type
+    $this->deleteField(0);
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        'simpletest_t1' => NULL,
+        'simpletest_t2' => NULL,
+        'simpletest_t3' => NULL,
+      ),
+      'per_field' => array(
+        'simpletest_f1' => NULL,
+      ),
+    ));
+    $this->assertNodeMissingFields(0, array('simpletest_f1'));
+  }
+}
+
+class ContentUICrud extends ContentCrudTestCase {
+  function getInfo() {
+    return array(
+      'name' => t('Admin UI'),
+      'description' => t('Tests the CRUD (create, read, update, delete) operations for content fields via the UI. <strong>Requires <a href="@schema_link">Schema module</a>.</strong>', array('@schema_link' => 'http://www.drupal.org/project/schema')),
+      'group' => t('CCK'),
+    );
+  }
+
+  function setUp() {
+    parent::setUp('fieldgroup');
+    $this->loginWithPermissions();
+  }
+
+  function testAddFieldUI() {
+    // Add a content type with a random name (to avoid schema module problems).
+    $type1 = 'simpletest'. mt_rand();
+    $type1_name = $this->randomName(10);
+    $edit = array(
+      'type' => $type1,
+      'name' => $type1_name,
+    );
+    $this->drupalPost('admin/content/types/add', $edit, 'Save content type');
+    $admin_type1_url = 'admin/content/node-type/'. $type1;
+
+    // Create a text field via the UI.
+    $field_name = strtolower($this->randomName(10));
+    $field_label = $this->randomName(10);
+    $edit = array(
+      '_add_new_field[label]' => $field_label,
+      '_add_new_field[field_name]' => $field_name,
+      '_add_new_field[type]' => 'text',
+      '_add_new_field[widget_type]' => 'text_textfield',
+    );
+    $this->drupalPost($admin_type1_url .'/fields', $edit, 'Save');
+    $this->assertRaw('These settings apply only to the <em>'. $field_label .'</em> field', 'Field settings page displayed');
+    $this->assertRaw('Size of textfield', 'Field and widget types correct.');
+    $this->assertNoRaw('Change basic information', 'No basic information displayed');
+    $field_name = 'field_'. $field_name;
+
+    $edit = array();
+    // POST to the page without reloading.
+    $this->drupalPost(NULL, $edit, 'Save field settings');
+    $this->assertRaw('Added field <em>'. $field_label .'</em>.', 'Field settings saved');
+    $field_type1_url = $admin_type1_url .'/fields/'. $field_name;
+    $this->assertRaw($field_type1_url, 'Field displayed on overview.');
+
+    // Check the schema - the values should be in the per-type table.
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        $type1 => array($field_name => array('value')),
+      ),
+    ));
+
+
+    // Add a second content type.
+    $type2 = 'simpletest'. mt_rand();
+    $type2_name = $this->randomName(10);
+    $edit = array(
+      'type' => $type2,
+      'name' => $type2_name,
+    );
+    $this->drupalPost('admin/content/types/add', $edit, 'Save content type');
+    $admin_type2_url = 'admin/content/node-type/'. $type2;
+
+    // Add the same field to the second content type.
+    $edit = array(
+      '_add_existing_field[label]' => $field_label,
+      '_add_existing_field[field_name]' => $field_name,
+      '_add_existing_field[widget_type]' => 'text_textarea',
+    );
+    $this->drupalPost($admin_type2_url .'/fields', $edit, 'Save');
+    $this->assertRaw('These settings apply only to the <em>'. $field_label .'</em> field', 'Field settings page displayed');
+    $this->assertRaw('Rows', 'Field and widget types correct.');
+    $this->assertNoRaw('Change basic information', 'No basic information displayed');
+
+    $edit = array();
+    $this->drupalPost(NULL, $edit, 'Save field settings');
+    $this->assertRaw('Added field <em>'. $field_label .'</em>.', 'Field settings saved');
+    $field_type2_url = $admin_type2_url .'/fields/'. $field_name;
+    $this->assertRaw($field_type2_url, 'Field displayed on overview.');
+
+    // Check that a separate table is created for the shared field, and
+    // that it's values are no longer in the per-type tables.
+    $this->assertSchemaMatchesTables(array(
+      'per_field' => array(
+        $field_name => array($field_name => array('value')),
+      ),
+      'per_type' => array(
+        $type1 => array(),
+        $type2 => array(),
+      ),
+    ));
+
+
+    // Chancge the basic settings for this field.
+    $edit = array();
+    $this->drupalPost($field_type2_url, $edit, 'Change basic information');
+    $this->assertRaw('Edit basic information', 'Basic information form displayed');
+
+    $field_label2 = $this->randomName(10);
+    $edit = array(
+      'label' => $field_label2,
+      'widget_type' => 'text_textfield',
+    );
+    $this->drupalPost(NULL, $edit, 'Continue');
+    $this->assertRaw('These settings apply only to the <em>'. $field_label2 .'</em> field', 'Label changed');
+    $this->assertRaw('Size of textfield', 'Widget changed');
+
+    $edit = array();
+    // POST to the page without reloading.
+    $this->drupalPost(NULL, $edit, 'Save field settings');
+    $this->assertRaw('Saved field <em>'. $field_label2 .'</em>.', 'Field settings saved');
+
+
+    // Add a group to the second content type.
+    $group1_name = strtolower($this->randomName(10));
+    $group1_label = $this->randomName(10);
+    $edit = array(
+      '_add_new_group[label]' => $group1_label,
+      '_add_new_group[group_name]' => $group1_name,
+    );
+    $this->drupalPost($admin_type2_url .'/fields', $edit, 'Save');
+    $group1_name = 'group_'. $group1_name;
+    $this->assertRaw($admin_type2_url .'/groups/'. $group1_name, 'Group created');
+
+
+    // Remove the field from the second type.
+    $edit = array();
+    $this->drupalPost($field_type2_url .'/remove', $edit, 'Remove');
+    $this->assertRaw('Removed field <em>'. $field_label2 .'</em> from <em>'. $type2_name .'</em>', 'Field removed');
+    $this->assertNoRaw($field_type2_url, 'Field not displayed on overview.');
+
+    // Check the schema - the values should be in the per-type table.
+    $this->assertSchemaMatchesTables(array(
+      'per_type' => array(
+        $type1 => array($field_name => array('value')),
+      ),
+    ));
+
+    // Add a new field, an existing field, and a group in the same submit.
+    $field2_label = $this->randomName(10);
+    $field2_name = strtolower($this->randomName(10));
+    $group2_label = $this->randomName(10);
+    $group2_name = strtolower($this->randomName(10));
+    $edit = array(
+      '_add_new_field[label]' => $field2_label,
+      '_add_new_field[field_name]' => $field2_name,
+      '_add_new_field[type]' => 'text',
+      '_add_new_field[widget_type]' => 'text_textfield',
+      '_add_new_field[parent]' => $group1_name,
+      '_add_existing_field[label]' => $field_label,
+      '_add_existing_field[field_name]' => $field_name,
+      '_add_existing_field[widget_type]' => 'text_textarea',
+      '_add_existing_field[parent]' => '_add_new_group',
+      '_add_new_group[label]' => $group2_label,
+      '_add_new_group[group_name]' => $group2_name,
+    );
+    $this->drupalPost($admin_type2_url .'/fields', $edit, 'Save');
+    $this->assertRaw('These settings apply only to the <em>'. $field2_label .'</em> field', 'Field settings page for new field displayed');
+    // Submit new field settings
+    $edit = array();
+    $this->drupalPost(NULL, $edit, 'Save field settings');
+    $this->assertRaw('Added field <em>'. $field2_label .'</em>.', 'Field settings for new field saved');
+    $this->assertRaw('These settings apply only to the <em>'. $field_label .'</em> field', 'Field settings page for existing field displayed');
+    // Submit existing field settings
+    $edit = array();
+    $this->drupalPost(NULL, $edit, 'Save field settings');
+    $this->assertRaw('Added field <em>'. $field_label .'</em>.', 'Field settings for existing field saved');
+    $field2_name = 'field_'. $field2_name;
+    $field2_type2_url = $admin_type2_url .'/fields/'. $field2_name;
+    $this->assertRaw($field2_type2_url, 'New field displayed in overview');
+    $this->assertRaw($field_type2_url, 'Existing field displayed in overview');
+    $group2_name = 'group_'. $group2_name;
+    $this->assertRaw($admin_type2_url .'/groups/'. $group2_name, 'New group displayed in overview');
+
+    // Check Parenting
+    $groups = fieldgroup_groups($type2, FALSE, TRUE);
+    $this->assertTrue(isset($groups[$group1_name]['fields'][$field2_name]), 'New field in correct group');
+    $this->assertTrue(isset($groups[$group2_name]['fields'][$field_name]), 'Existing field in correct group');
+    $this->assertFieldByXPath('//select[@id="edit-'. strtr($field2_name, '_', '-') .'-parent"]//option[@selected]', $group1_name, 'Parenting for new field correct in overview');
+    $this->assertFieldByXPath('//select[@id="edit-'. strtr($field_name, '_', '-') .'-parent"]//option[@selected]', $group2_name, 'Parenting for existing field correct in overview');
+
+    // Check the schema : field1 is shared, field2 is in the per-type table.
+    $this->assertSchemaMatchesTables(array(
+      'per_field' => array(
+        $field_name => array($field_name => array('value')),
+      ),
+      'per_type' => array(
+        $type1 => array(),
+        $type2 => array($field2_name => array('value')),
+      ),
+    ));
+
+    // TODO : test validation failures...
+    // TODO : test ordering and extra fields...
+  }
+
+  function testFieldContentUI() {
+    // Create a content type with a field
+    $type1 = 'simpletest'. mt_rand();
+    $type1_obj = $this->drupalCreateContentType(array('type' => $type1));
+    $admin_type1_url = 'admin/content/node-type/'. $type1;
+    $field_name  = strtolower($this->randomName(10));
+    $field_url = 'field_'. $field_name;
+    $field = $this->createFieldText(array('text_processing' => 1, 'multiple' => 0, 'field_name' => $field_url), $type1_obj);
+
+    // Save a node with content in the text field
+    $edit = array();
+    $edit['title'] = $this->randomName(20);
+    $edit['body'] = $this->randomName(20);
+    $value = $this->randomName(20);
+    $edit[$field_url.'[0][value]'] = $value;
+    $this->drupalPost('node/add/'. $type1, $edit, 'Save');
+    $node = node_load(array('title' => $edit['title']));
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value, 'Textfield value saved and displayed');
+
+    // Alter the field to have unlimited values
+    $edit = array();
+    $edit['multiple']  = '1';
+    $this->drupalPost($admin_type1_url .'/fields/'. $field_url, $edit, 'Save field settings');
+
+    // Save a node with content in multiple text fields
+    $edit = array();
+    $edit['title'] = $this->randomName(20);
+    $edit['body'] = $this->randomName(20);
+    // Add more textfields (non-JS).
+    $this->drupalPost('node/add/'. $type1, $edit, "Add another item");
+    $this->drupalPost(NULL, $edit, "Add another item");
+    $value1 = $this->randomName(20);
+    $value2 = $this->randomName(20);
+    $value3 = $this->randomName(20);
+    $edit[$field_url.'[0][value]'] = $value1;
+    $edit[$field_url.'[1][value]'] = $value2;
+    $edit[$field_url.'[2][value]'] = $value3;
+
+    // This will fail if we don't have at least 3 textfields.
+    $this->drupalPost(NULL, $edit, 'Save');
+    $node = node_load(array('title' => $edit['title']));
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value3, '3rd textfield value saved and displayed');
+  }
+}
+
+class ContentOptionWidgetTest extends ContentCrudTestCase {
+  function getInfo() {
+    return array(
+      'name' => t('Option widgets'),
+      'description' => t('Tests the optionwidgets.'),
+      'group' => t('CCK'),
+    );
+  }
+
+  function setUp() {
+    parent::setUp('optionwidgets');
+    $this->loginWithPermissions();
+    $this->acquireContentTypes(1);
+  }
+
+  // TODO: test a number field with optionwidgets stores 0 correctly ?
+  // TODO: test the case where aliases and values overlap ? (http://drupal.org/node/281749)
+  // TODO: test noderef select widget...
+
+  /**
+   * On/Off Checkbox, not required:
+   * - Create a node with the value checked.
+   * - FAILS: Edit the node and uncheck the value.
+   *
+   * On/Off Checkbox, required:
+   * - TODO: what behavior do we want ?
+   */
+  function testOnOffCheckbox() {
+    $type = $this->content_types[0];
+    $type_url = str_replace('_', '-', $type->type);
+
+    // Create the field.
+    $on_text = $this->randomName(5);
+    $on_value = $this->randomName(5);
+    $off_text = $on_text. '_off';
+    $off_value = $on_value. '_off';
+
+    $settings = array(
+      'type' => 'text',
+      'widget_type' => 'optionwidgets_onoff',
+      'allowed_values' => "$off_value|$off_text\r\n$on_value|$on_text",
+    );
+    $field = $this->createField($settings, 0);
+    $field_name = $field['field_name'];
+
+    // Create a node with the checkbox on.
+    $edit = array(
+      'title' => $this->randomName(20),
+      'body' => $this->randomName(20),
+      $field_name.'[value]' => $on_value,
+    );
+    $this->drupalPost('node/add/'. $type_url, $edit, 'Save');
+    $node = node_load(array('title' => $edit['title']));
+    $this->assertEqual($node->{$field_name}[0]['value'], $on_value, 'Checkbox: checked (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($on_text, 'Checkbox: checked (displayed)');
+
+    // Edit the node and uncheck the box.
+    $edit = array(
+      $field_name.'[value]' => FALSE,
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertEqual($node->{$field_name}[0]['value'], $off_value, 'Checkbox: unchecked (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($off_text, 'Checkbox: unchecked (displayed)');
+  }
+
+  /**
+   * Single select, not required:
+   * - TODO: check there's a 'none' choice in the form.
+   * - Create a node with one value selected.
+   * - Edit the node and unselect the value (selecting '- None -').
+   *
+   * Single select, required:
+   * - TODO: check there's no 'none' choice in the form.
+   *
+   * Multiple select, not required:
+   * - TODO: check there's a 'none' choice in the form.
+   * - Edit the node and select multiple values.
+   * - Edit the node and unselect one value.
+   * - Edit the node and unselect the values (selecting '- None -').
+   * - Edit the node and unselect the values (selecting nothing).
+   *
+   * Multiple select, required:
+   * - TODO: check there's no 'none' choice in the form.
+   * - Check the form doesn't submit when nothing is selected.
+   */
+  function testSelect() {
+    $type = $this->content_types[0];
+    $type_url = str_replace('_', '-', $type->type);
+
+    // Create the field - start with 'single'.
+    $value1 = $this->randomName(5);
+    $value1_alias = $value1 .'_alias';
+    $value2 = $this->randomName(5);
+    $value2_alias = $value2 .'_alias';
+
+    $settings = array(
+      'type' => 'text',
+      'widget_type' => 'optionwidgets_select',
+      'allowed_values' => "$value1|$value1_alias\r\n$value2|$value2_alias",
+    );
+    $field = $this->createField($settings, 0);
+    $field_name = $field['field_name'];
+
+    // Create a node with one value selected
+    $edit = array(
+      'title' => $this->randomName(20),
+      'body' => $this->randomName(20),
+    );
+    $edit[$field_name.'[value]'] = $value1;
+    $this->drupalPost('node/add/'. $type_url, $edit, 'Save');
+    $node = node_load(array('title' => $edit['title']));
+    $this->assertEqual($node->{$field_name}[0]['value'], $value1, 'Select: selected (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value1_alias, 'Select: selected (displayed)');
+
+    // Edit the node and unselect the value (selecting '- None -').
+    $edit = array(
+      $field_name.'[value]' => '',
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertIdentical($node->{$field_name}[0]['value'], NULL, 'Select: unselected (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertNoText($value1_alias, 'Select: unselected (displayed)');
+
+    // Change to a multiple field
+    $field = $this->updateField(array('multiple' => '1', 'required' => '0'));
+
+    // Edit the node and select multiple values.
+    $edit = array(
+      $field_name.'[value][]' => array($value1 => $value1, $value2 => $value2),
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertEqual($node->{$field_name}[0]['value'], $value1, 'Multiple Select: selected 1 (saved)');
+    $this->assertEqual($node->{$field_name}[1]['value'], $value2, 'Multiple Select: selected 2 (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value1_alias, 'Multiple Select: selected 1 (displayed)');
+    $this->assertText($value2_alias, 'Multiple Select: selected 2 (displayed)');
+
+    // Edit the node and unselect one value.
+    $edit = array(
+      $field_name.'[value][]' => array($value1 => $value1),
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertEqual($node->{$field_name}[0]['value'], $value1, 'Multiple Select: selected 1 (saved)');
+    $this->assertTrue(!isset($node->{$field_name}[1]), 'Multiple Select: unselected 2 (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value1_alias, 'Multiple Select: selected 1 (displayed)');
+    $this->assertNoText($value2_alias, 'Multiple Select: unselected 2 (displayed)');
+
+    // Edit the node and unselect the values (selecting '- None -').
+    $edit = array(
+      $field_name.'[value][]' => array('' => ''),
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertIdentical($node->{$field_name}[0]['value'], NULL, 'Multiple Select: unselected 1 ("-none-" selected) (saved)');
+    $this->assertTrue(!isset($node->{$field_name}[1]), 'Multiple Select: unselected 2 ("-none-" selected) (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertNoText($value1_alias, 'Multiple Select: unselected 1 ("-none-" selected) (displayed)');
+    $this->assertNoText($value2_alias, 'Multiple Select: unselected 2 ("-none-" selected) (displayed)');
+
+    // Edit the node and unselect the values (selecting nothing).
+    // We first need to put values back in (no test needed).
+    $edit = array();
+    $edit[$field_name.'[value][]'] = array($value1 => FALSE, $value2 => FALSE);
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $edit = array();
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertIdentical($node->{$field_name}[0]['value'], NULL, 'Multiple Select: unselected 1 (no selection) (saved)');
+    $this->assertTrue(!isset($node->{$field_name}[1]), 'Multiple Select: unselected 2 (no selection) (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertNoText($value1_alias, 'Multiple Select: unselected 1 (no selection) (displayed)');
+    $this->assertNoText($value2_alias, 'Multiple Select: unselected 2 (no selection) (displayed)');
+
+    // Change the field to 'required'.
+    $field = $this->updateField(array('required' => '1'));
+
+    // Check the form doesn't submit when nothing is selected.
+    $edit = array();
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $this->assertRaw(t('!name field is required.', array('!name' => t($field['widget']['label']))), 'Multiple Select: "required" property is respected');
+
+    $edit = array(
+      'title' => $this->randomName(20),
+      'body' => $this->randomName(20),
+    );
+    $this->drupalPost('node/add/'. $type_url, $edit, 'Save');
+    $this->assertRaw(t('!name field is required.', array('!name' => t($field['widget']['label']))), 'Multiple Select: "required" property is respected');
+
+  }
+
+  /**
+   * Single (radios), not required:
+   * - TODO: check there's a 'none' choice in the form.
+   * - Create a node with one value selected.
+   * - Edit the node and unselect the value (selecting '- None -').
+   *
+   * Single (radios), required:
+   * - TODO: check there's no 'none' choice in the form.
+   * - Check the form doesn't submit when nothing is selected.
+   */
+  function testRadios() {
+    $type = $this->content_types[0];
+    $type_url = str_replace('_', '-', $type->type);
+
+    // Create the field - 'single' (radios).
+    $value1 = $this->randomName(5);
+    $value1_alias = $value1 .'_alias';
+    $value2 = $this->randomName(5);
+    $value2_alias = $value2 .'_alias';
+    $settings = array(
+      'type' => 'text',
+      'widget_type' => 'optionwidgets_buttons',
+      'allowed_values' => "$value1|$value1_alias\r\n$value2|$value2_alias",
+    );
+    $field = $this->createField($settings, 0);
+    $field_name = $field['field_name'];
+
+    // Create a node with one value selected
+    $edit = array();
+    $edit['title'] = $this->randomName(20);
+    $edit['body'] = $this->randomName(20);
+    $edit[$field_name.'[value]'] = $value1;
+    $this->drupalPost('node/add/'. $type_url, $edit, 'Save');
+    $node = node_load(array('title' => $edit['title']));
+    $this->assertEqual($node->{$field_name}[0]['value'], $value1, 'Radios: checked (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value1_alias, 'Radios: checked (displayed)');
+
+    // Edit the node and unselect the value (selecting '- None -').
+    $edit = array();
+    $edit[$field_name.'[value]'] = '';
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertIdentical($node->{$field_name}[0]['value'], NULL, 'Radios: unchecked (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertNoText($value1_alias, 'Radios: unchecked (displayed)');
+
+    // Change field to required.
+    $field = $this->updateField(array('required' => '1'));
+
+    // Check the form doesn't submit when nothing is selected.
+    // Doing this on the pre-filled node doesn't take, so we test that on a new node.
+    $edit = array();
+    $edit['title'] = $this->randomName(20);
+    $edit['body'] = $this->randomName(20);
+    $this->drupalPost('node/add/'. $type_url, $edit, 'Save');
+    $this->assertRaw(t('!name field is required.', array('!name' => t($field['widget']['label']))), 'Radios: "required" property is respected');
+  }
+
+  /**
+   * Multiple (checkboxes), not required:
+   * - TODO: check there's no 'none' choice in the form.
+   * - Create a node with two values.
+   * - Edit the node and select only one value.
+   * - Edit the node and unselect the values (selecting nothing).
+   *
+   * Multiple (checkboxes), required:
+   * - TODO: check there's no 'none' choice in the form.
+   * - Check the form doesn't submit when nothing is selected.
+   */
+  function testChecboxes() {
+    $type = $this->content_types[0];
+    $type_url = str_replace('_', '-', $type->type);
+
+    // Create the field -  'multiple' (checkboxes).
+    $value1 = $this->randomName(5);
+    $value1_alias = $value1 .'_alias';
+    $value2 = $this->randomName(5);
+    $value2_alias = $value2 .'_alias';
+    $settings = array(
+      'type' => 'text',
+      'multiple' => '1',
+      'widget_type' => 'optionwidgets_buttons',
+      'allowed_values' => "$value1|$value1_alias\r\n$value2|$value2_alias",
+    );
+    $field = $this->createField($settings, 0);
+    $field_name = $field['field_name'];
+
+    // Create a node with two values selected
+    $edit = array(
+      'title' => $this->randomName(20),
+      'body' => $this->randomName(20),
+      $field_name.'[value]['. $value1 .']' => $value1,
+      $field_name.'[value]['. $value2 .']' => $value2,
+    );
+    $this->drupalPost('node/add/'. $type_url, $edit, 'Save');
+    $node = node_load(array('title' => $edit['title']));
+    $this->assertEqual($node->{$field_name}[0]['value'], $value1, 'Checkboxes: selected 1 (saved)');
+    $this->assertEqual($node->{$field_name}[1]['value'], $value2, 'Checkboxes: selected 2 (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value1_alias, 'Checkboxes: selected 1 (displayed)');
+    $this->assertText($value2_alias, 'Checkboxes: selected 2 (displayed)');
+
+    // Edit the node and unselect the values (selecting nothing -
+    // there is no 'none' choice for checkboxes).
+    $edit = array(
+      $field_name.'[value]['. $value1 .']' => $value1,
+      $field_name.'[value]['. $value2 .']' => FALSE,
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertEqual($node->{$field_name}[0]['value'], $value1, 'Checkboxes: selected 1 (saved)');
+    $this->assertTrue(!isset($node->{$field_name}[1]), 'Checkboxes: unselected 2 (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertText($value1_alias, 'Checkboxes: selected 1 (displayed)');
+    $this->assertNoText($value2_alias, 'Checkboxes: unselected 2 (displayed)');
+
+    // Edit the node and unselect the values (selecting nothing -
+    // there is no 'none' choice for checkboxes).
+    $edit = array(
+      $field_name.'[value]['. $value1 .']' => FALSE,
+      $field_name.'[value]['. $value2 .']' => FALSE,
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $node = node_load($node->nid, NULL, TRUE);
+    $this->assertIdentical($node->{$field_name}[0]['value'], NULL, 'Checkboxes: unselected 1 (no selection) (saved)');
+    $this->assertTrue(!isset($node->{$field_name}[1]), 'Checkboxes: unselected 2 (no selection) (saved)');
+    $this->drupalGet('node/'. $node->nid);
+    $this->assertNoText($value1_alias, 'Checkboxes: unselected 1 (no selection) (displayed)');
+    $this->assertNoText($value2_alias, 'Checkboxes: unselected 2 (no selection) (displayed)');
+
+    // Change field to required.
+    $field = $this->updateField(array('required' => '1'));
+
+    // Check the form doesn't submit when nothing is selected.
+    $edit = array(
+      $field_name.'[value]['. $value1 .']' => FALSE,
+      $field_name.'[value]['. $value2 .']' => FALSE,
+    );
+    $this->drupalPost('node/'. $node->nid .'/edit', $edit, 'Save');
+    $this->assertRaw(t('!name field is required.', array('!name' => t($field['widget']['label']))), 'Checkboxes: "required" property is respected');
+
+    $edit = array();
+    $edit['title'] = $this->randomName(20);
+    $edit['body'] = $this->randomName(20);
+    $this->drupalPost('node/add/'. $type_url, $edit, 'Save');
+    $this->assertRaw(t('!name field is required.', array('!name' => t($field['widget']['label']))), 'Checkboxes: "required" property is respected');
+  }
+
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/theme/content-admin-display-overview-form.tpl.php b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-admin-display-overview-form.tpl.php
new file mode 100644
index 0000000..3658ac5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-admin-display-overview-form.tpl.php
@@ -0,0 +1,40 @@
+<?php
+// $Id$
+?>
+<div>
+  <?php print $help; ?>
+</div>
+<?php if ($rows): ?>
+  <table id="content-display-overview" class="sticky-enabled">
+    <thead>
+      <tr>
+        <th><?php print t('Field'); ?></th>
+        <?php if ($basic): ?>
+          <th><?php print t('Label'); ?></th>
+        <?php endif; ?>
+        <?php foreach ($contexts as $key => $value): ?>
+          <th><?php print $value['title']; ?></th>
+          <th><?php print t('Exclude'); ?></th>
+        <?php endforeach; ?>
+      </tr>
+    </thead>
+    <tbody>
+      <?php
+      $count = 0;
+      foreach ($rows as $row): ?>
+        <tr class="<?php print $count % 2 == 0 ? 'odd' : 'even'; ?>">
+          <td><?php print $row->indentation; ?><span class="<?php print $row->label_class; ?>"><?php print $row->human_name; ?></span></td>
+          <?php if ($basic): ?>
+            <td><?php print $row->label; ?></td>
+          <?php endif; ?>
+          <?php foreach ($contexts as $context => $title): ?>
+            <td><?php print $row->{$context}->format; ?></td>
+            <td><?php print $row->{$context}->exclude; ?></td>
+          <?php endforeach; ?>
+        </tr>
+        <?php $count++;
+      endforeach; ?>
+    </tbody>
+  </table>
+  <?php print $submit; ?>
+<?php endif; ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/theme/content-admin-field-overview-form.tpl.php b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-admin-field-overview-form.tpl.php
new file mode 100644
index 0000000..0eab64c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-admin-field-overview-form.tpl.php
@@ -0,0 +1,102 @@
+<?php
+// $Id$
+?>
+<div>
+  <?php print $help; ?>
+</div>
+<table id="content-field-overview" class="sticky-enabled">
+  <thead>
+    <tr>
+      <th><?php print t('Label'); ?></th>
+      <th><?php print t('Weight'); ?></th>
+      <th><?php print t('Name'); ?></th>
+      <th><?php print t('Type'); ?></th>
+      <th><?php print t('Operations'); ?></th>
+    </tr>
+  </thead>
+  <tbody>
+    <?php
+    $count = 0;
+    foreach ($rows as $row): ?>
+      <tr class="<?php print $count % 2 == 0 ? 'odd' : 'even'; ?> <?php print $row->class ?>">
+      <?php
+      switch ($row->row_type):
+        case 'field': ?>
+          <td>
+            <?php print $row->indentation; ?>
+            <span class="<?php print $row->label_class; ?>"><?php print $row->label; ?></span>
+          </td>
+          <td><?php print $row->weight . $row->parent . $row->hidden_name; ?></td>
+          <td><?php print $row->field_name; ?></td>
+          <td><?php print $row->type; ?></td>
+          <td><?php print $row->configure; ?>  <?php print $row->remove; ?></td>
+          <?php break;
+        case 'group': ?>
+          <td>
+            <?php print $row->indentation; ?>
+            <span class="<?php print $row->label_class; ?>"><?php print $row->label; ?></span>
+          </td>
+          <td><?php print $row->weight . $row->parent . $row->hidden_name; ?></td>
+          <td><?php print $row->group_name; ?></td>
+          <td><?php print $row->group_type; ?></td>
+          <td><?php print $row->configure; ?>  <?php print $row->remove; ?></td>
+          <?php break;
+        case 'extra': ?>
+          <td>
+            <?php print $row->indentation; ?>
+            <span class="<?php print $row->label_class; ?>"><?php print $row->label; ?></span>
+          </td>
+          <td><?php print $row->weight . $row->parent . $row->hidden_name; ?></td>
+          <td colspan="2"><?php print $row->description; ?></td>
+          <td><?php print $row->configure; ?>  <?php print $row->remove; ?></td>
+          <?php break;
+        case 'separator': ?>
+          <td colspan="5" class="region"><?php print t('Add'); ?></td>
+          <?php break;
+        case 'add_new_field': ?>
+          <td>
+            <?php print $row->indentation; ?>
+            <div class="<?php print $row->label_class; ?>">
+              <div class="content-new"><?php print theme('advanced_help_topic', 'content', 'add-new-field') . t('New field'); ?></div>
+              <?php print $row->label; ?>
+            </div>
+          </td>
+          <td><div class="content-new"> </div><?php print $row->weight . $row->parent . $row->hidden_name; ?></td>
+          <td><div class="content-new"> </div><?php print $row->field_name; ?></td>
+          <td><div class="content-new"> </div><?php print $row->type; ?></td>
+          <td><div class="content-new"> </div><?php print $row->widget_type; ?></td>
+          <?php break;
+        case 'add_existing_field': ?>
+          <td>
+            <?php print $row->indentation; ?>
+            <div class="<?php print $row->label_class; ?>">
+              <div class="content-new"><?php print theme('advanced_help_topic', 'content', 'add-existing-field') . t('Existing field'); ?></div>
+              <?php print $row->label; ?>
+            </div>
+          </td>
+          <td><div class="content-new"> </div><?php print $row->weight . $row->parent . $row->hidden_name; ?></td>
+          <td colspan="2"><div class="content-new"> </div><?php print $row->field_name; ?></td>
+          <td><div class="content-new"> </div><?php print $row->widget_type; ?></td>
+          <?php break;
+       case 'add_new_group': ?>
+          <td>
+            <?php print $row->indentation; ?>
+            <div class="<?php print $row->label_class; ?>">
+              <div class="content-new"><?php print theme('advanced_help_topic', 'content', 'add-new-group') . t('New group'); ?></div>
+              <?php print $row->label; ?>
+            </div>
+          </td>
+          <td><div class="content-new"> </div><?php print $row->weight . $row->parent . $row->hidden_name; ?></td>
+          <td><div class="content-new"> </div><?php print $row->group_name; ?></td>
+          <td><div class="content-new"> </div><?php print $row->group_type; ?></td>
+          <td><div class="content-new"> </div><?php print $row->group_option; ?></td>
+        <?php break;
+      endswitch; ?>
+      </tr>
+      <?php $count++;
+    endforeach; ?>
+  </tbody>
+</table>
+
+<?php print $submit; ?>
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/theme/content-field.tpl.php b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-field.tpl.php
new file mode 100644
index 0000000..e3538e4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-field.tpl.php
@@ -0,0 +1,49 @@
+<?php
+// $Id$
+
+/**
+ * @file content-field.tpl.php
+ * Default theme implementation to display the value of a field.
+ *
+ * Available variables:
+ * - $node: The node object.
+ * - $field: The field array.
+ * - $items: An array of values for each item in the field array.
+ * - $teaser: Whether this is displayed as a teaser.
+ * - $page: Whether this is displayed as a page.
+ * - $field_name: The field name.
+ * - $field_type: The field type.
+ * - $field_name_css: The css-compatible field name.
+ * - $field_type_css: The css-compatible field type.
+ * - $label: The item label.
+ * - $label_display: Position of label display, inline, above, or hidden.
+ * - $field_empty: Whether the field has any valid value.
+ *
+ * Each $item in $items contains:
+ * - 'view' - the themed view for that item
+ *
+ * @see template_preprocess_content_field()
+ */
+?>
+<?php if (!$field_empty) : ?>
+<div class="field field-type-<?php print $field_type_css ?> field-<?php print $field_name_css ?>">
+  <?php if ($label_display == 'above') : ?>
+    <div class="field-label"><?php print t($label) ?>: </div>
+  <?php endif;?>
+  <div class="field-items">
+    <?php $count = 1;
+    foreach ($items as $delta => $item) :
+      if (!$item['empty']) : ?>
+        <div class="field-item <?php print ($count % 2 ? 'odd' : 'even') ?>">
+          <?php if ($label_display == 'inline') { ?>
+            <div class="field-label-inline<?php print($delta ? '' : '-first')?>">
+              <?php print t($label) ?>: </div>
+          <?php } ?>
+          <?php print $item['view'] ?>
+        </div>
+      <?php $count++;
+      endif;
+    endforeach;?>
+  </div>
+</div>
+<?php endif; ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/theme/content-module-rtl.css b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-module-rtl.css
new file mode 100644
index 0000000..f1236e1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-module-rtl.css
@@ -0,0 +1,22 @@
+/* $Id$ */
+
+/* Node form display */
+.node-form .content-multiple-table td.content-multiple-drag {
+  padding-left:0;
+  padding-right:0.5em;
+}
+.node-form .content-multiple-table td.content-multiple-drag a.tabledrag-handle{
+  padding-left:.5em;
+}
+
+/* 'Manage fields' overview */
+#content-field-overview-form .advanced-help-link,
+#content-display-overview-form .advanced-help-link {
+  margin: 4px 0 0 4px;
+}
+
+table#content-field-overview .label-add-new-field,
+table#content-field-overview .label-add-existing-field,
+table#content-field-overview .label-add-new-group {
+  float: right;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/theme/content-module.css b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-module.css
new file mode 100644
index 0000000..8888ae5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/theme/content-module.css
@@ -0,0 +1,97 @@
+/* $Id$ */
+
+/* Node display */
+.field .field-label,
+.field .field-label-inline,
+.field .field-label-inline-first {
+  font-weight:bold;
+}
+.field .field-label-inline,
+.field .field-label-inline-first {
+  display:inline;
+}
+.field .field-label-inline {
+  visibility:hidden;
+}
+
+/* Node form display */
+.node-form .content-multiple-table td.content-multiple-drag {
+  width:30px;
+  padding-right:0;/*LTR*/
+}
+.node-form .content-multiple-table td.content-multiple-drag a.tabledrag-handle{
+  padding-right:.5em;/*LTR*/
+}
+
+.node-form .content-add-more .form-submit{
+  margin:0;
+}
+
+.node-form .number {
+  display:inline;
+  width:auto;
+}
+.node-form .text {
+  width:auto;
+}
+
+/* CSS overrides for Views-based autocomplete results.
+  - #autocomplete uses "white-space:pre", which is no good with
+    Views' template-based rendering
+  - Field titles are rendered with <label> in default templates,
+    but we don't want the 'form' styling it gets under .form-item
+*/
+.form-item #autocomplete .reference-autocomplete {
+  white-space:normal;
+}
+
+.form-item #autocomplete .reference-autocomplete label {
+  display:inline;
+  font-weight:normal;
+}
+
+/* 'Manage fields' overview */
+#content-field-overview-form .advanced-help-link,
+#content-display-overview-form .advanced-help-link {
+  margin: 4px 4px 0 0;/*LTR*/
+}
+#content-field-overview-form .label-group,
+#content-display-overview-form .label-group,
+#content-copy-export-form .label-group {
+  font-weight: bold;
+}
+table#content-field-overview .label-add-new-field,
+table#content-field-overview .label-add-existing-field,
+table#content-field-overview .label-add-new-group {
+  float: left;/*LTR*/
+}
+table#content-field-overview tr.content-add-new .tabledrag-changed {
+  display: none;
+}
+table#content-field-overview tr.content-add-new .description {
+  margin-bottom: 0;
+}
+table#content-field-overview .content-new {
+  font-weight: bold;
+  padding-bottom: .5em;
+}
+
+/* 'Advanced help' pages */
+.advanced-help-topic h3,
+.advanced-help-topic h4,
+.advanced-help-topic h5,
+.advanced-help-topic h6  {
+  margin:1em 0 .5em 0;
+}
+.advanced-help-topic dd {
+  margin-bottom: .5em;
+}
+.advanced-help-topic span.code {
+  background-color:#EDF1F3;
+  font-family:"Bitstream Vera Sans Mono",Monaco,"Lucida Console",monospace;
+  font-size:0.9em;
+  padding:1px;
+}
+.advanced-help-topic .content-border {
+  border:1px solid #AAA
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/theme/theme.inc b/drupal/sites/default/boinc/modules/contrib/cck/theme/theme.inc
new file mode 100644
index 0000000..517a25f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/theme/theme.inc
@@ -0,0 +1,145 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Theme preprocess function for content-admin-field-overview-form.tpl.php.
+ */
+function template_preprocess_content_field_overview_form(&$vars) {
+  $form = &$vars['form'];
+
+  $vars['help'] = theme('advanced_help_topic', 'content', 'manage-fields') . t('Add fields and groups to the content type, and arrange them on content display and input forms.');
+  if (module_exists('fieldgroup')) {
+    $vars['help'] .= '<br/>'. t('You can add a field to a group by dragging it below and to the right of the group.');
+  }
+  if (!module_exists('advanced_help')) {
+    $vars['help'] .= '<br/>' . t('Note: Installing the <a href="!adv_help">Advanced help</a> module will let you access more and better help.', array('!adv_help' => 'http://drupal.org/project/advanced_help'));
+  }
+
+  $order = _content_overview_order($form, $form['#field_rows'], $form['#group_rows']);
+  $rows = array();
+
+  // Identify the 'new item' keys in the form, they look like
+  // _add_new_field, add_new_group.
+  $keys = array_keys($form);
+  $add_rows = array();
+  foreach ($keys as $key) {
+    if (substr($key, 0, 4) == '_add') {
+      $add_rows[] = $key;
+    }
+  }
+  while ($order) {
+    $key = reset($order);
+    $element = &$form[$key];
+
+    // Only display the 'Add' separator if the 'add' rows are still
+    // at the end of the table.
+    if (!isset($added_separator)) {
+      $remaining_rows = array_diff($order, $add_rows);
+      if (empty($remaining_rows) && empty($element['#depth'])) {
+        $row = new stdClass();
+        $row->row_type = 'separator';
+        $row->class = 'tabledrag-leaf region';
+        $rows[] = $row;
+        $added_separator = TRUE;
+      }
+    }
+
+    $row = new stdClass();
+
+    // Add target classes for the tabledrag behavior.
+    $element['weight']['#attributes']['class'] = 'field-weight';
+    $element['parent']['#attributes']['class'] = 'group-parent';
+    $element['hidden_name']['#attributes']['class'] = 'field-name';
+    // Add target classes for the update selects behavior.
+    switch ($element['#row_type']) {
+      case 'add_new_field':
+        $element['type']['#attributes']['class'] = 'content-field-type-select';
+        $element['widget_type']['#attributes']['class'] = 'content-widget-type-select';
+        break;
+      case 'add_existing_field':
+        $element['field_name']['#attributes']['class'] = 'content-field-select';
+        $element['widget_type']['#attributes']['class'] = 'content-widget-type-select';
+        $element['label']['#attributes']['class'] = 'content-label-textfield';
+        break;
+    }
+    foreach (element_children($element) as $child) {
+      $row->{$child} = drupal_render($element[$child]);
+    }
+    $row->label_class = 'label-'. strtr($element['#row_type'], '_', '-');
+    $row->row_type = $element['#row_type'];
+    $row->indentation = theme('indentation', isset($element['#depth']) ? $element['#depth'] : 0);
+    $row->class = 'draggable';
+    $row->class .= isset($element['#disabled_row']) ? ' menu-disabled' : '';
+    $row->class .= isset($element['#add_new']) ? ' content-add-new' : '';
+    $row->class .= isset($element['#leaf']) ? ' tabledrag-leaf' : '';
+    $row->class .= isset($element['#root']) ? ' tabledrag-root' : '';
+
+    $rows[] = $row;
+    array_shift($order);
+  }
+  $vars['rows'] = $rows;
+  $vars['submit'] = drupal_render($form);
+
+  // Add tabledrag behavior.
+//  drupal_add_tabledrag('content-field-overview', 'match', 'parent', 'group-parent', 'group-parent', 'field-name', FALSE, 1);
+  drupal_add_tabledrag('content-field-overview', 'match', 'parent', 'group-parent', 'group-parent', 'field-name', TRUE, 1);
+//  drupal_add_tabledrag('content-field-overview', 'order', 'sibling', 'field-weight', NULL, NULL, FALSE);
+  drupal_add_tabledrag('content-field-overview', 'order', 'sibling', 'field-weight');
+
+  // Add settings for the update selects behavior.
+  $js_fields = array();
+  foreach (array_keys(content_existing_field_options($form['#type_name'])) as $field_name) {
+    $field = content_fields($field_name);
+    $js_fields[$field_name] = array('label' => $field['widget']['label'], 'type' => $field['type'], 'widget' => $field['widget']['type']);
+  }
+  drupal_add_js(array('contentWidgetTypes' => content_widget_type_options(), 'contentFields' => $js_fields), 'setting');
+  drupal_add_js(drupal_get_path('module', 'content') .'/content.js');
+}
+
+/**
+ * Theme preprocess function for content-admin-display-overview-form.tpl.php.
+ */
+function template_preprocess_content_display_overview_form(&$vars) {
+  $form = &$vars['form'];
+
+  $contexts_selector = $form['#contexts'];
+  $vars['basic'] = $contexts_selector == 'basic';
+  $vars['contexts'] = content_build_modes($contexts_selector);
+
+  if ($contexts_selector == 'basic') {
+    $help = t("Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode.");
+  }
+  else {
+    $help = t("Configure how this content type's fields should be displayed when it's rendered in the following contexts.");
+  }
+  $help .= ' '. t("Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template.", array('!content' => '$content'));
+  $vars['help'] = $help;
+
+  $order = _content_overview_order($form, $form['#fields'], $form['#groups']);
+  if (empty($order)) {
+    $vars['rows'] = array();
+    $vars['submit'] = '';
+    return;
+  }
+
+  $rows = array();
+  foreach ($order as $key) {
+    $element = &$form[$key];
+    $row = new stdClass();
+    foreach (element_children($element) as $child) {
+      if (!array_key_exists('exclude', $element[$child])) {
+        $row->{$child} = drupal_render($element[$child]);
+      }
+      else {
+        $row->{$child}->format = drupal_render($element[$child]['format']);
+        $row->{$child}->exclude = drupal_render($element[$child]['exclude']);
+      }
+    }
+    $row->label_class = in_array($key, $form['#groups']) ? 'label-group' : 'label-field';
+    $row->indentation = theme('indentation', isset($element['#depth']) ? $element['#depth'] : 0);
+    $rows[] = $row;
+  }
+  $vars['rows'] = $rows;
+  $vars['submit'] = drupal_render($form);
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/content.de.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.de.po
new file mode 100644
index 0000000..897b2aa
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.de.po
@@ -0,0 +1,245 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:14+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: content.module:21
+msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible thr [...]
+msgstr "Das Content-Modul ist eine erforderliche Komponente des Content Construction Kit (CCK) und ermöglicht Administratoren benutzerdefinierte Felder mit Inhaltstypen zu verknüpfen. In Drupal werden Inhaltstypen dazu verwendet, die Eigenschaften eines Beitrags inklusive dem Titel und der Beschreibung von Feldern festzulegen, die auf deren „Hinzufügen“ und „Bearbeiten“-Seiten angezeigt werden. Die Verwendung des Content-Moduls (und der anderen in CCK enthaltenen Hilfsmodule) können benu [...]
+
+#: content.module:22
+msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatica [...]
+msgstr "Beim Hinzufügen eines benutzerdefiniertes Feldes zu einem Inhaltstyp, wird der Typ festgelegt (ob dieser Text enthält, Zahlen oder Referenzen auf andere Objekte) und wie dieser Angezeigt wird (entweder als Textfeld oder -bereich, Auswahlfeld, Ankreuzfeld, Auswahlknopf oder Autovervollständigungsfeld). Ein Feld kann mehrere Werte enthalten (d.h., eine „Person“ kann mehrere E-Mail-Adressen haben) oder ein einfacher Wert (d.h., ein „Mitarbeiter“ hat eine Mitarbeiteridentifikationsnu [...]
+
+#: content.module:23
+msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
+msgstr "Benutzerdefinierte Feldtypen werden von einer Reihe an optionalen Modulen zu Verfügung gestellt, die in CCK enthalten sind (jedes Modul stellt einen anderen Typ zu Verfügung). Die <a href=\"@modules\">Modulseite</a> ermöglicht die Aktivierung oder Deaktivierung von CCK-Komponenten. Eine standardmäßige Installation von CCK enthält:"
+
+#: content.module:25
+msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
+msgstr "<em>Zahl</em>, welches numerische Feldtypen in Form von Ganzzahl, Dezimalzahl oder Fließkommazahl hinzufügt. Die zulässigen Eingaben oder ein zulässiger Bereich von Werten kann festgelegt werden. Eine Auswahl von Standardformaten für die Anzeige numerischer Daten ist vorhanden."
+
+#: content.module:26
+msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
+msgstr "<em>Text</em>, welches Textfeldtypen hinzufügt. Ein Textfeld kann nur Klartext oder optional die Eingabefilterformate von Drupal verwenden, um Texteingaben sicher zu verwalten. Texteingabefelder können eine einfache Zeile (Textfeld), mehrere Zeilen (Textbereich) oder für größere Eingabekontrolle aus einem Auswahlfeld, Ankreuzfeld oder Auswahlknopf bestehen. Auf Wunsch kann CCK die Eingaben gegen einer Reihe von zulässigen Werten überprüfen."
+
+#: content.module:27
+msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
+msgstr "<em>Beitragsreferenz</em>, welches benutzerdefinierte Referenzen zwischen Drupal-Beiträgen erstellt. Durch Hinzufügen eines <em>Beitragsreferenz</em>-Feldes und zwei unterschiedlichen Inhaltstypen können Beispielsweise auf einfachem Weg komplexe Übergeordnet/Untergeordnet-Beziehungen zwischen Daten erstellt werden (mehrere „Mitarbeiterbeiträge“ können ein <em>Beitragsreferenz</em>-Feld enthalten, das auf einen „Arbeitgeberbeitrag“ verweist)."
+
+#: content.module:28
+msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
+msgstr "<em>Benutzerreferenz</em>, welche benutzerdefinierte Referenzen zu den Benutzerkonten der Website erstellt. Durch Hinzufügen eines <em>Benutzerreferenz</em>-Feldes können komplexe Beziehungen zwischen den Benutzern der Website und Beiträgen erstellt werden. Um an einem Beitrag beteiligte Benutzer, über das standardmäßige Drupal-Feld <em>geschrieben von</em> hinaus zu tracken, kann Beispielsweise ein <em>Benutzerreferenz</em>-Feld mit dem Namen „Bearbeitet von“ zu einem Inhaltstyp [...]
+
+#: content.module:29
+msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
+msgstr "<em>Feldgruppe</em>, welches zusammenklappbare Feldgruppen erstellt, die eine Gruppe von zugehörigen Feldern enthält. Eine Feldgruppe kann standardmäßig offen oder geschlossen sein. Die Reihenfolge der Feldgruppe und die Reihenfolge der Felder innerhalb der Feldgruppe, wird mit einer vom Content-Modul zu Verfügung gestellten Drag-und-Drop-Oberfläche verwaltet."
+
+#: content.module:31
+msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr "Nähere Informationen bezüglich der Konfiguration und Anpassung gibt es auf der Handbuch-Seite zum <a href=\"@handbook-cck\">CCK-Modul</a> oder auf der <a href=\"@project-cck\">CCK-Projektseite</a>."
+
+#: content.module:492
+msgid "This field is required."
+msgstr "Dieses Feld wird benötigt."
+
+#: content.module:496
+msgid "!title: !required"
+msgstr "!title: !required"
+
+#: content.module:1854
+msgid "Basic"
+msgstr "Basis"
+
+#: content.module:1867;1870
+msgid "RSS"
+msgstr "RSS"
+
+#: content.module:1880
+msgid "Search"
+msgstr "Suchen"
+
+#: content.module:1883
+msgid "Search Index"
+msgstr "Suchindex"
+
+#: content.module:1887
+msgid "Search Result"
+msgstr "Suchergebnis"
+
+#: content.module:1897;1900
+#, fuzzy
+msgid "Print"
+msgstr "Drucken"
+
+#: content.module:2348;2355
+msgid "Node module form."
+msgstr "Formular des Beitrag-Moduls."
+
+#: content.module:2362
+msgid "Language"
+msgstr "Sprache"
+
+#: content.module:2363
+msgid "Locale module form."
+msgstr "Formular des Locale-Moduls."
+
+#: content.module:2369
+msgid "Menu settings"
+msgstr "Menüeinstellungen"
+
+#: content.module:2370
+msgid "Menu module form."
+msgstr "Formular des Menü-Moduls."
+
+#: content.module:2376
+msgid "Taxonomy"
+msgstr "Taxonomie"
+
+#: content.module:2377
+msgid "Taxonomy module form."
+msgstr "Formular des Taxonomie-Moduls."
+
+#: content.module:2383
+msgid "Book"
+msgstr "Buch"
+
+#: content.module:2384
+msgid "Book module form."
+msgstr "Formular des Buch-Moduls."
+
+#: content.module:2390
+msgid "Poll title"
+msgstr "Umfragetitel"
+
+#: content.module:2391
+msgid "Poll module title."
+msgstr "Umfragemodultitel"
+
+#: content.module:2395
+msgid "Poll choices"
+msgstr ""
+
+#: content.module:2396
+msgid "Poll module choices."
+msgstr ""
+
+#: content.module:2400
+msgid "Poll settings"
+msgstr "Umfrageeinstellungen"
+
+#: content.module:2401
+msgid "Poll module settings."
+msgstr "Umfragemoduleinstellungen"
+
+#: content.module:2407
+msgid "File attachments"
+msgstr "Dateianhänge"
+
+#: content.module:2408
+msgid "Upload module form."
+msgstr "Formular des Upload-Moduls."
+
+#: content.module:595
+msgid "Updating field type %type with module %module."
+msgstr "Feldtyp %type wird mit Modul %module aktualisiert."
+
+#: content.module:602
+msgid "Updating widget type %type with module %module."
+msgstr "Widget %type wird mit Modul %module aktualisiert."
+
+#: content.module:60
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr "PHP-Eingabe für Feldeinstellungen verwenden (Gefährlich - mit Vorsicht zu gewähren)"
+
+#: content.module:79
+msgid "Fields"
+msgstr "Felder"
+
+#: content.module:101
+msgid "Manage fields"
+msgstr "Felder verwalten"
+
+#: content.module:110
+msgid "Display fields"
+msgstr "Felder anzeigen"
+
+#: content.module:141
+msgid "Remove field"
+msgstr "Feld löschen"
+
+#: content.install:236
+msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Aktualisierungen für CCK verwandte Module werden nicht ausgeführt, bis die Module auf der <a href=\"@admin-modules-path\">Verwaltungsseite für Module</a> aktiviert wurden. Sobald diese aktiviert werden, müssen die ausstehenden Aktualisierungen auf der <a href=\"@update-php\">update.php</a>-Seite ausgeführt werden."
+
+#: content.install:239
+msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "Für !module.module liegen Aktualisierungen vor. Dieses kann aber nicht aktualisiert werden, da das content.module nicht aktiviert ist.<br />Wenn das content.module aktiviert wird, muss das Aktualisierungsskript noch einmal ausgeführt werden. Diese Nachricht erscheint so lange, bis das Modul aktiviert und die Aktualisierungen ausgeführt wurden."
+
+#: content.install:244
+msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "Für !module.module liegen Aktualisierungen vor. Dieses Modul befindet sich im Modulverzeichnis, ist aber nicht aktiviert.<br />Wenn es aktiviert wird, muss das Aktualisierungsskript noch einmal ausgeführt werden. Diese Nachricht erscheint so lange, bis das Modul aktiviert und die Aktualisierungen ausgeführt wurden."
+
+#: content.install:251
+msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Einige Aktualisierungen stehen noch aus. Bitte zur <a href=\"@update-php\">update.php</a> zurückkehren und die ausstehenden Aktualisierungen ausführen."
+
+#: content.install:252
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr "Einige Aktualisierungen stehen noch aus.<br/>Bitte das Aktualisierungsskript noch einmal ausführen."
+
+#: (duplicate) content.install:10
+msgid "CCK - No Views integration"
+msgstr "CCK - Keine Integration von Ansichten"
+
+#: (duplicate) content.install:11
+msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
+msgstr "Die CCK-Integration mit dem Views-Modul erfordert Views 6.x-2.0-rc2 oder höher."
+
+#: content.info:0
+#: includes/content.rules.inc:19;212
+#: includes/views/content.views.inc:180;261
+msgid "Content"
+msgstr "Inhalt"
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "Erlaubt dem Administrator, neue Inhaltstypen zu definieren."
+
+#: content.info:0
+#: modules/content_copy/content_copy.info:0
+#: modules/content_permissions/content_permissions.info:0
+#: modules/fieldgroup/fieldgroup.info:0
+#: modules/nodereference/nodereference.info:0
+#: modules/number/number.info:0
+#: modules/optionwidgets/optionwidgets.info:0
+#: modules/text/text.info:0
+#: modules/userreference/userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/content.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.fr.po
new file mode 100644
index 0000000..11bbdb0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.fr.po
@@ -0,0 +1,280 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:24+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: content.module:25
+msgid ""
+"The content module, a required component of the Content Construction Kit "
+"(CCK), allows administrators to associate custom fields with content types. "
+"In Drupal, content types are used to define the characteristics of a post, "
+"including the title and description of the fields displayed on its add and "
+"edit pages. Using the content module (and the other helper modules included "
+"in CCK), custom fields beyond the default \"Title\" and \"Body\" may be "
+"added. CCK features are accessible through tabs on the <a href=\"@content-"
+"types\">content types administration page</a>. (See the <a href=\"@node-help"
+"\">node module help page</a> for more information about content types.)"
+msgstr ""
+"Le module Content, composant obligatoire du kit CCK (Content Construction "
+"Kit) permet aux administrateurs d'associer des champs personnalisés à des "
+"types de contenus. Au sein de Drupal, les types de contenus servent à "
+"définir les caractéristiques d'une publication, y compris le titre et la "
+"description des champs affichés sur ses pages \"ajouter\" et \"éditer\". Le "
+"module Content (et les modules auxiliaires inclus dans CCK) permet d'ajouter "
+"des champs personnalisés en plus des champs par défaut \"Titre\" et \"Corps"
+"\". Les fonctionnalités de CCK sont accessible via différents onglets sur la "
+"<a href=\"@content-types\">page d'administration des types de contenus</a>. "
+"(Voir la <a href=\"@node-help\">page d'aide du module Node</a> pour plus "
+"d'informations sur les types de contenus)."
+
+#: content.module:26
+msgid ""
+"When adding a custom field to a content type, you determine its type "
+"(whether it will contain text, numbers, or references to other objects) and "
+"how it will be displayed (either as a text field or area, a select box, "
+"checkbox, radio button, or autocompleting field). A field may have multiple "
+"values (i.e., a \"person\" may have multiple e-mail addresses) or a single "
+"value (i.e., an \"employee\" has a single employee identification number). "
+"As you add and edit fields, CCK automatically adjusts the structure of the "
+"database as necessary. CCK also provides a number of other features, "
+"including intelligent caching for your custom data, an import and export "
+"facility for content type definitions, and integration with other "
+"contributed modules."
+msgstr ""
+"Lorsque vous ajoutez un champ personnalisé à un type de contenu, vous "
+"déterminez son type (c'est-à-dire s'il doit contenir du texte, des nombres "
+"ou des références à d'autres objets) et la façon dont il doit être affiché "
+"(en tant que champ ou zone de texte, liste de sélection, case à cocher, "
+"bouton radio, ou champ à auto-complètement). Un champ peut présenter "
+"plusieurs valeurs (par exemple, une \"personne\" peut disposer de plusieurs "
+"adresses courriel) ou une seule (par exemple, un \"employé\" possède un "
+"numéro d'identification unique). À mesure que vous ajoutez et modifiez des "
+"champs, CCK ajuste automatiquement la structure de la base de données en "
+"fonction. CCK propose également un certain nombre d'autres fonctionnalités, "
+"par exemple un cache intelligent pour vos données personnalisées, des "
+"fonctionnalités d'import et d'export pour les définitions de types de "
+"contenus, ainsi qu'une intégration à d'autres modules provenant des "
+"contributions."
+
+#: content.module:27
+msgid ""
+"Custom field types are provided by a set of optional modules included with "
+"CCK (each module provides a different type). The <a href=\"@modules"
+"\">modules page</a> allows you to enable or disable CCK components. A "
+"default installation of CCK includes:"
+msgstr ""
+"Des types de champs personnalisés sont proposés par plusieurs modules "
+"optionnels inclus dans CCK (chaque module fournissant un type différent). La "
+"<a href=\"@modules\">page des modules</a> vous permet d'activer ou de "
+"désactiver des composants CCK. Une installation par défaut de CCK inclut :"
+
+#: content.module:29
+msgid ""
+"<em>number</em>, which adds numeric field types, in integer, decimal or "
+"floating point form. You may define a set of allowed inputs, or specify an "
+"allowable range of values. A variety of common formats for displaying "
+"numeric data are available."
+msgstr ""
+"<em>Number</em>, qui ajoute des types de champs numériques (formats entier, "
+"décimal ou réel à virgule flottante). Vous pouvez définir un jeu ou un "
+"intervalle de valeurs autorisées. Divers formats sont disponibles pour "
+"l'affichage des données numériques."
+
+#: content.module:30
+msgid ""
+"<em>text</em>, which adds text field types. A text field may contain plain "
+"text only, or optionally, may use Drupal's input format filters to securely "
+"manage rich text input. Text input fields may be either a single line (text "
+"field), multiple lines (text area), or for greater input control, a select "
+"box, checkbox, or radio buttons. If desired, CCK can validate the input to a "
+"set of allowed values."
+msgstr ""
+"<em>Text</em>, qui ajoute des types de champs de texte. Un champ texte peut "
+"contenir du texte brut uniquement ou, optionnellement, utiliser les filtres "
+"des formats d'entrée que propose Drupal pour gérer en toute sécurité des "
+"textes enrichis. Les champs de saisie de texte peuvent être constitués d'une "
+"seule ligne (champ texte), de plusieurs lignes (zone de texte) ou, pour un "
+"meilleur contrôle des valeurs saisies, une liste de sélection, des cases à "
+"cocher ou des boutons radio. Si besoin, CCK peut valider les saisies sur la "
+"base d'un ensemble de valeurs autorisées."
+
+#: content.module:31
+msgid ""
+"<em>nodereference</em>, which creates custom references between Drupal "
+"nodes. By adding a <em>nodereference</em> field and two different content "
+"types, for instance, you can easily create complex parent/child "
+"relationships between data (multiple \"employee\" nodes may contain a "
+"<em>nodereference</em> field linking to an \"employer\" node)."
+msgstr ""
+"<em>Node Reference</em>, qui crée des références personnalisées entre nœuds "
+"de Drupal. En ajoutant, par exemple, un champ <em>nodereference</em> et deux "
+"types de contenus différents, vous pouvez facilement créer des relations "
+"complexes de type parent/enfant entre données (par exemple plusieurs nœuds "
+"\"employé\" peuvent présenter un champ <em>nodereference</em> pointant vers "
+"un même nœud \"employeur\")."
+
+#: content.module:32
+msgid ""
+"<em>userreference</em>, which creates custom references to your sites' user "
+"accounts. By adding a <em>userreference</em> field, you can create complex "
+"relationships between your site's users and posts. To track user involvement "
+"in a post beyond Drupal's standard <em>Authored by</em> field, for instance, "
+"add a <em>userreference</em> field named \"Edited by\" to a content type to "
+"store a link to an editor's user account page."
+msgstr ""
+"<em>User reference</em>, qui crée des références personnalisées vers les "
+"comptes des utilisateurs de votre site. En ajoutant un champ "
+"<em>userreference</em>, vous pouvez créer des relations complexes entre les "
+"utilisateurs de votre site et des publications. Ainsi, pour tracer "
+"l'implication d'un utilisateur dans une publication (au delà du champ Drupal "
+"standard <em>Écrit par</em>), vous pouvez ajouter à un type de contenu un "
+"champ <em>userreference</em> intitulé \"Édité par\" pour enregistrer un lien "
+"vers la page du compte utilisateur ayant édité la publication."
+
+#: content.module:33
+msgid ""
+"<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of "
+"related fields. A fieldset may either be open or closed by default. The "
+"order of your fieldsets, and the order of fields within a fieldset, is "
+"managed via a drag-and-drop interface provided by content module."
+msgstr ""
+"<em>Fieldgroup</em>, qui crée des groupes de champs liés. Les groupe de "
+"champ peuvent être repliés, et vous pouvez choisir qu'ils soient dépliés ou "
+"repliés par défaut. L'ordre des groupes de champs, ainsi que l'ordre des "
+"champs au sein d'un groupe, est géré grâce à l'interface par glisser-déposer "
+"fournie par le module Content."
+
+#: content.module:35
+msgid ""
+"For more information, see the online handbook entry for <a href=\"@handbook-"
+"cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr ""
+"Pour plus d'informations, reportez-vous à l'entrée de manuel en ligne "
+"relative à <a href=\"@handbook-cck\">CCK</a> ou à la <a href=\"@project-cck"
+"\">page du projet CCK</a>."
+
+#: content.module:41
+msgid ""
+"Configure how this content type's fields and field labels should be "
+"displayed when it's viewed in teaser and full-page mode."
+msgstr ""
+"Configurez ici la manière dont les champs et étiquettes de champs de ce type "
+"de contenu doivent être affichées, lorsque le contenu est vu en mode résumé "
+"ou en pleine page."
+
+#: content.module:44
+msgid ""
+"Configure how this content type's fields should be displayed when it's "
+"rendered in the following contexts."
+msgstr ""
+"Configurez ici la façon dont les champs de ce type de contenu doivent être "
+"affichés lorsqu'il est rendu dans les contextes suivants."
+
+#: content.module:48
+msgid "Control the order of fields in the input form."
+msgstr "Contrôlez ici l'ordre des champs dans le formulaire de saisie."
+
+#: content.module:474
+msgid "This field is required."
+msgstr "Ce champ est obligatoire."
+
+#: content.module:478
+msgid "!title: !required"
+msgstr "!title : !required"
+
+#: content.module:481
+msgid "Order"
+msgstr "Ordre"
+
+#: content.module:1640
+msgid "RSS Item"
+msgstr "Élément de flux RSS"
+
+#: content.module:1642
+msgid "Search Index"
+msgstr "Index de recherche"
+
+#: content.module:1643
+msgid "Search Result"
+msgstr "Résultat de recherche"
+
+#: content.module:1981
+msgid "Language"
+msgstr "Langue"
+
+#: content.module:1984
+msgid "Taxonomy"
+msgstr "Taxonomie"
+
+#: content.module:1987
+msgid "File attachments"
+msgstr "Fichiers attachés"
+
+#: content.module:557
+msgid "Updating field type %type with module %module."
+msgstr "Mise à jour du type de champ %type avec le module %module."
+
+#: content.module:564
+msgid "Updating widget type %type with module %module."
+msgstr "Mise à jour du type de widget %widget avec le module %module."
+
+#: content.module:84
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr ""
+"Utiliser du code PHP pour le paramétrage des champs (dangereux - à "
+"n'autoriser qu'avec précautions)"
+
+#: content.module:125
+msgid "Manage fields"
+msgstr "Gérer les champs"
+
+#: content.module:134
+msgid "Display fields"
+msgstr "Afficher les champs"
+
+#: content.module:143
+msgid "General"
+msgstr "Général"
+
+#: content.module:149
+msgid "Advanced"
+msgstr "Avancé"
+
+#: content.module:177
+msgid "Remove field"
+msgstr "Supprimer un champ"
+
+#: content.info:0 includes/content.views.inc:54;91
+msgid "Content"
+msgstr "Content"
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "Permet aux administrateurs de définir des nouveaux types de contenu."
+
+#: content.info:0 modules/content_copy/content_copy.info:0
+#: modules/content_permissions/content_permissions.info:0
+#: modules/fieldgroup/fieldgroup.info:0
+#: modules/nodereference/nodereference.info:0 modules/number/number.info:0
+#: modules/optionwidgets/optionwidgets.info:0 modules/text/text.info:0
+#: modules/userreference/userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: examples/example_field.php:107 examples/simple_field.php:115
+#: modules/text/text.module:49 modules/text/text.info:0
+msgid "Text"
+msgstr "Texte"
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/content.pot b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.pot
new file mode 100644
index 0000000..86bafd2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.pot
@@ -0,0 +1,236 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (root)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content.module,v 1.301.2.106 2009/06/02 12:24:04 yched
+#  content.install,v 1.85.2.31 2009/04/23 18:37:10 yched
+#  content.info,v 1.6 2007/07/04 23:46:29 yched
+#  content.rules.inc,v 1.1.2.6 2009/04/30 09:56:07 fago
+#  content.views.inc,v 1.1.2.25 2009/04/11 14:50:53 yched
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
+#  fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww
+#  number.info,v 1.7 2008/04/23 18:02:16 dww
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: content.module:21
+msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible thr [...]
+msgstr ""
+
+#: content.module:22
+msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatica [...]
+msgstr ""
+
+#: content.module:23
+msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
+msgstr ""
+
+#: content.module:25
+msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
+msgstr ""
+
+#: content.module:26
+msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
+msgstr ""
+
+#: content.module:27
+msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
+msgstr ""
+
+#: content.module:28
+msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
+msgstr ""
+
+#: content.module:29
+msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
+msgstr ""
+
+#: content.module:31
+msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr ""
+
+#: content.module:492
+msgid "This field is required."
+msgstr ""
+
+#: content.module:496
+msgid "!title: !required"
+msgstr ""
+
+#: content.module:1854
+msgid "Basic"
+msgstr ""
+
+#: content.module:1867;1870
+msgid "RSS"
+msgstr ""
+
+#: content.module:1880
+msgid "Search"
+msgstr ""
+
+#: content.module:1883
+msgid "Search Index"
+msgstr ""
+
+#: content.module:1887
+msgid "Search Result"
+msgstr ""
+
+#: content.module:1897;1900
+msgid "Print"
+msgstr ""
+
+#: content.module:2348;2355
+msgid "Node module form."
+msgstr ""
+
+#: content.module:2362
+msgid "Language"
+msgstr ""
+
+#: content.module:2363
+msgid "Locale module form."
+msgstr ""
+
+#: content.module:2369
+msgid "Menu settings"
+msgstr ""
+
+#: content.module:2370
+msgid "Menu module form."
+msgstr ""
+
+#: content.module:2376
+msgid "Taxonomy"
+msgstr ""
+
+#: content.module:2377
+msgid "Taxonomy module form."
+msgstr ""
+
+#: content.module:2383
+msgid "Book"
+msgstr ""
+
+#: content.module:2384
+msgid "Book module form."
+msgstr ""
+
+#: content.module:2390
+msgid "Poll title"
+msgstr ""
+
+#: content.module:2391
+msgid "Poll module title."
+msgstr ""
+
+#: content.module:2395
+msgid "Poll choices"
+msgstr ""
+
+#: content.module:2396
+msgid "Poll module choices."
+msgstr ""
+
+#: content.module:2400
+msgid "Poll settings"
+msgstr ""
+
+#: content.module:2401
+msgid "Poll module settings."
+msgstr ""
+
+#: content.module:2407
+msgid "File attachments"
+msgstr ""
+
+#: content.module:2408
+msgid "Upload module form."
+msgstr ""
+
+#: content.module:595
+msgid "Updating field type %type with module %module."
+msgstr ""
+
+#: content.module:602
+msgid "Updating widget type %type with module %module."
+msgstr ""
+
+#: content.module:60
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr ""
+
+#: content.module:79
+msgid "Fields"
+msgstr ""
+
+#: content.module:101
+msgid "Manage fields"
+msgstr ""
+
+#: content.module:110
+msgid "Display fields"
+msgstr ""
+
+#: content.module:141
+msgid "Remove field"
+msgstr ""
+
+#: content.install:236
+msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr ""
+
+#: content.install:239
+msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr ""
+
+#: content.install:244
+msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr ""
+
+#: content.install:251
+msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr ""
+
+#: content.install:252
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr ""
+
+#: (duplicate) content.install:10 
+msgid "CCK - No Views integration"
+msgstr ""
+
+#: (duplicate) content.install:11 
+msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
+msgstr ""
+
+#: content.info:0 includes/content.rules.inc:19;212 includes/views/content.views.inc:180;261
+msgid "Content"
+msgstr ""
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr ""
+
+#: content.info:0 modules/content_copy/content_copy.info:0 modules/content_permissions/content_permissions.info:0 modules/fieldgroup/fieldgroup.info:0 modules/nodereference/nodereference.info:0 modules/number/number.info:0 modules/optionwidgets/optionwidgets.info:0 modules/text/text.info:0 modules/userreference/userreference.info:0
+msgid "CCK"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/content.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.sv.po
new file mode 100644
index 0000000..65e71c2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/content.sv.po
@@ -0,0 +1,243 @@
+# $Id$
+#
+# Swedish translation of Drupal (content)
+# Generated from files:
+#  content.module,v 1.301.2.99 2009/03/05 22:58:57 karens
+#  content.install,v 1.85.2.30 2008/11/07 16:24:58 yched
+#  content.info,v 1.6 2007/07/04 23:46:29 yched
+#  content.rules.inc,v 1.1.2.4 2008/10/24 11:11:48 fago
+#  content.views.inc,v 1.1.2.22 2009/01/14 13:19:47 karens
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
+#  fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww
+#  number.info,v 1.7 2008/04/23 18:02:16 dww
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Content 6.x\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-05-27 15:37+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: content.module:21
+msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible thr [...]
+msgstr "Modulen Content, en obligatorisk komponent till Content Construction Kit (CCK), gör det möjligt för administratörer att associera anpassade fält med innehållstyper. I Drupal används innehållstyper för att definiera ett inläggs karaktäristik, såsom titel och beskrivning för fälten som visas på dess sidor för att lägga till redigera. Genom att använda modulen Content (och de andra hjälpmodulerna inkluderade i CCK), kan egna fält utöver standardfälten \"Titel\" och \"Brödtext\" lägg [...]
+
+#: content.module:22
+msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatica [...]
+msgstr "När du lägger till ett anpassat fält till en innehållstyp, bestämmer du dess typ (om det ska innehålla text, nummer eller referera till andra objekt) och hur det ska visas (antingen som ett textfält, flerradigt textfält, listval, kryssruta, radioknapp eller autokomatiskt kompletterande fält). Ett fält kan ha flera värden (till exempel kan en \"person\" ha flera e-postadresser) eller ett värda (till exempel kan en \"anställd\" ha ett anställnings-ID). När du lägger till och redige [...]
+
+#: content.module:23
+msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
+msgstr "Anpassade fälttyper är tillgängliga genom ett antal valfria moduler som är inkluderade med CCK (varje modul tillhandahåller en egen typ). Sidan <a href=\"@modules\">moduler</a> låter dig aktivera eller eller inaktivera komponenter för CCK. En standardinstallation av CCK inkluderar:"
+
+#: content.module:25
+msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
+msgstr "<em>tal</em>, som lägger till numeriska fälttyper som heltal, decimaltal eller flyttal. Du kan definiera en uppsättning av tillåtna värden eller specificera en tillåten spännvidd av värden. Ett antal vanliga format för att visa numerisk data finns tillgängliga."
+
+#: content.module:26
+msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
+msgstr "<em>text</em>, som lägger till typer av sorten textfält. Ett textfält kan innehålla enbart ren text, eller använda Drupals inmatningsformat för att säkert hantera formaterad text. Textfält kan vara antingen en rad (textfält), flera rader (textområde), eller för större kontroll av det som matas in, ett listval, kryssruta eller radioknapp. Om så önskas kan CCK validera den inmatade datan enligt en uppsättning tillåtna värden."
+
+#: content.module:27
+msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
+msgstr "<em>hänvisning av nod</em>, som skapar hänvisningar mellan noder i Drupal. Genom att lägga till en fält av typen <em>nodreferens</em> och två olika innehållstyper, till exempel, kan du enkelt skapa komplexa ovan- eller underliggande relationer mellan data (flera noder med \"anställda\" kan innehålla ett fält av typen <em>nodreferens</em> som länkar till en nod för \"arbetsgivare\")."
+
+#: content.module:28
+msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
+msgstr "<em>hänvisning av användare</em>, som skapar anpassade hänvisningar till användarkonton på din webbplats. Genom att lägga till ett fält av typen <em>användarreferens</em> kan du skapa komplexa relationer mellan din webbplats användare och inlägg. Till exempel: för att spåra användares inblandning i ett inlägg utöver Drupals standardfält <em>Författad av</em>, lägg till ett fält av typen <em>användarreferens</em> med namnet \"Redigerad av\" till en innehållstyp för att lagra en lä [...]
+
+#: content.module:29
+msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
+msgstr "<em>fältgrupp</em>, som skapar hopfällbara fältgrupp för att innehålla en grupp av relaterade fält. En fältgrupp kan antingen vara öppen eller hopfälld som standard. Sorteringen av fältgrupper, och sorteringen av fält inom en fältgrupp, hanteras genom ett drag-och-släpp-gränssnitt via modulen Content."
+
+#: content.module:31
+msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr "För mer information, <a href=\"@handbook-cck\">läs onlinehandboken för CCK</a> eller besök <a href=\"@project-cck\">CCK:s projektsida</a>."
+
+#: content.module:486
+msgid "This field is required."
+msgstr "Detta fält är obligatoriskt."
+
+#: content.module:490
+msgid "!title: !required"
+msgstr "!title: !required"
+
+#: content.module:1843
+msgid "Basic"
+msgstr "Grundläggande"
+
+#: content.module:1856;1859
+msgid "RSS"
+msgstr "RSS"
+
+#: content.module:1869
+msgid "Search"
+msgstr "Sök"
+
+#: content.module:1872
+msgid "Search Index"
+msgstr "Sökindex"
+
+#: content.module:1876
+msgid "Search Result"
+msgstr "Sökresultat"
+
+#: content.module:2324;2331
+msgid "Node module form."
+msgstr "Formulär för modulen Nod."
+
+#: content.module:2338
+msgid "Language"
+msgstr "Språk"
+
+#: content.module:2339
+msgid "Locale module form."
+msgstr "Formulär för modulen Språkanpassning.."
+
+#: content.module:2345
+msgid "Menu settings"
+msgstr "Menyinställningar"
+
+#: content.module:2346
+msgid "Menu module form."
+msgstr "Formulär för modulen Meny."
+
+#: content.module:2352
+msgid "Taxonomy"
+msgstr "Taxonomi"
+
+#: content.module:2353
+msgid "Taxonomy module form."
+msgstr "Formulär för modulen Taxonomi."
+
+#: content.module:2359
+msgid "Book"
+msgstr "Bok"
+
+#: content.module:2360
+msgid "Book module form."
+msgstr "Formulär för modulen Bok."
+
+#: content.module:2366
+msgid "Poll title"
+msgstr "Titel för omröstning"
+
+#: content.module:2367
+msgid "Poll module title."
+msgstr "Titel för modulen Omröstning."
+
+#: content.module:2371
+msgid "Poll choices"
+msgstr "Val för omröstning"
+
+#: content.module:2372
+msgid "Poll module choices."
+msgstr "Val för modulen Omröstning."
+
+#: content.module:2376
+msgid "Poll settings"
+msgstr "Inställningar för omröstning"
+
+#: content.module:2377
+msgid "Poll module settings."
+msgstr "Inställningar för modulen Omröstning."
+
+#: content.module:2383
+msgid "File attachments"
+msgstr "Bifogade filer"
+
+#: content.module:2384
+msgid "Upload module form."
+msgstr "Formulär för modulen Uppladdning."
+
+#: content.module:589
+msgid "Updating field type %type with module %module."
+msgstr "Uppdaterar fälttypen %type med modulen %module."
+
+#: content.module:596
+msgid "Updating widget type %type with module %module."
+msgstr "Uppdaterar gränssnittskomponenten %type med modulen %module."
+
+#: content.module:63
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr "Använd PHP-inmatning för fältinställningarna (farligt - använd med försiktighet)"
+
+#: content.module:82
+msgid "Fields"
+msgstr "Fält"
+
+#: content.module:104
+msgid "Manage fields"
+msgstr "Hantera fält"
+
+#: content.module:113
+msgid "Display fields"
+msgstr "Visa fält"
+
+#: content.module:144
+msgid "Remove field"
+msgstr "Ta bort fält"
+
+#: content.install:236
+msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Uppdateringar för relaterade moduler till CCK körs inte förrän modulerna är aktiverade på sidan <a href=\"@admin-modules-path\">administrera moduler</a>. När du aktiverar dem kommer du att behöva återvända till <a href=\"@update-php\">update.php</a> och köra de kvarvarande uppdateringarna."
+
+#: content.install:239
+msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module har uppdateringar men kan inte uppdateras eftersom content.module inte är aktiverad.<br />Om och när content.module är aktiverad kommer du att behöva köra uppdateringsskriptet igen. Du kommer att fortsätta se detta meddelande tills modulen är aktiverad och uppdateringarna är genomförda."
+
+#: content.install:244
+msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module har uppdateringar och är tillgänglig i katalogen för moduler men är inte aktiverad.<br /> Om och när den är aktiverad kommer du att behöva köra uppdateringsskriptet igen. Du kommer att fortsätta se detta meddelande tills modulen är aktiverad och uppdateringarna är genomförda."
+
+#: content.install:251
+msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Några uppdateringar är fortfarande kvar. Vänligen återvänd till <a href=\"@update-php\">update.php</a> och kör de kvarvarande uppdateringarna."
+
+#: content.install:252
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr "Några uppdateringar är fortfarande kvar.<br/>Var vänlig kör uppdateringsskriptet igen."
+
+#: (duplicate) content.install:10
+msgid "CCK - No Views integration"
+msgstr "CCK - Ingen integration med Views"
+
+#: (duplicate) content.install:11
+msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
+msgstr "Integration av CCK med modulen Views kräver Views 6.x-2.0-rc2 eller senare."
+
+#: content.info:0
+#: includes/content.rules.inc:19;200
+#: includes/views/content.views.inc:178;254
+msgid "Content"
+msgstr "Innehåll"
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "Tillåter administratörer att definiera nya innehållstyper."
+
+#: content.info:0
+#: modules/content_copy/content_copy.info:0
+#: modules/content_permissions/content_permissions.info:0
+#: modules/fieldgroup/fieldgroup.info:0
+#: modules/nodereference/nodereference.info:0
+#: modules/number/number.info:0
+#: modules/optionwidgets/optionwidgets.info:0
+#: modules/text/text.info:0
+#: modules/userreference/userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/es.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/es.po
new file mode 100644
index 0000000..4681c61
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/es.po
@@ -0,0 +1,403 @@
+# $Id$
+# LANGUAGE translation of Drupal (general)
+# Copyright 2006 NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 JonBob
+#  text.module,v 1.34 2006/06/12 19:59:53 JonBob
+#  number.module,v 1.28 2006/05/02 13:52:16 JonBob
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 JonBob
+#  content.module,v 1.64 2006/06/12 19:36:54 JonBob
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 JonBob
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 JonBob
+#  userreference.module,v 1.24 2006/05/05 14:10:44 JonBob
+#  weburl.module,v 1.8 2006/06/12 19:36:54 JonBob
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck.module 4.7\n"
+"POT-Creation-Date: 2006-07-05 13:23-0400\n"
+"PO-Revision-Date: 2006-07-17 08:30-0300\n"
+"Last-Translator: Guillermo Acedo <guillermo.acedo at gmail.com>\n"
+"Language-Team: Spanish <es at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\\n\n"
+
+#: field.php:77
+#: text.module:44
+msgid "Maximum length"
+msgstr "Longitud máxima"
+
+#: field.php:80
+#: text.module:47
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "La longitud máxima del campo en caracteres. Déjalo en blanco para un tamaño ilimitado."
+
+#: field.php:102
+#: number.module:82
+#: text.module:80
+msgid "is equal to"
+msgstr "es igual a"
+
+#: field.php:103
+#: number.module:83
+#: text.module:81
+msgid "is not equal to"
+msgstr "no es igual a"
+
+#: field.php:104
+#: text.module:82
+msgid "matches the pattern"
+msgstr "coincide con el patrón"
+
+#: field.php:180;190
+#: number.module:119
+#: text.module:107
+msgid "Illegal value for %name."
+msgstr "Valor ilegal para %name."
+
+#: field.php:265
+#: text.module:159
+msgid "Rows"
+msgstr "Filas"
+
+#: field.php:273
+#: text.module:167
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"Filas\" debe ser un valor positivo entero."
+
+#: content_admin.inc:25
+#: content.module:119
+msgid "duplicate"
+msgstr "duplicar"
+
+#: number.module:48
+#: text.module:51
+msgid "Allowed values"
+msgstr "Valores permitidos"
+
+#: number.module:52
+#: text.module:55
+msgid "The possible values this field can contain. Any other values will result in an error. Enter one value per line."
+msgstr "Los valores posibles que este campo puede contener. Cualquier otro valor puede dará error. Ingresar un valor por linea."
+
+#: content.module:18
+msgid "Allows administrators to define new content types."
+msgstr "Permitir a los administradores definir nuevos tipos de contenidos."
+
+#: content.module:73
+msgid "add content type"
+msgstr "añadir un tipo de contenido"
+
+#: content.module:80
+msgid "fields"
+msgstr "los campos"
+
+#: content.module:135
+msgid "manage fields"
+msgstr "configurar los campos"
+
+#: content.module:164
+msgid "remove field"
+msgstr "borrar el campo"
+
+#: nodereference.module:15
+msgid "Defines a field type for referencing one node from another. <em>Note: Requires content.module.</em>"
+msgstr "Define un tipo de campo para referenciar un nodo de otro. <em>Nota: Requiere content.module.</em>"
+
+#: nodereference.module:26
+msgid "node reference autocomplete"
+msgstr "autocompletar nodo de referencia"
+
+#: nodereference.module:51
+msgid "Content types that can be referenced"
+msgstr "Tipos de contenido que pueden ser referenciados"
+
+#: nodereference.module:204
+msgid "No post with that title exists."
+msgstr "No existe ninguna publicación con ese título."
+
+#: nodereference.module:0
+msgid "nodereference"
+msgstr "nodo de referencia"
+
+#: number.module:15
+msgid "Defines numeric field types. <em>Note: Requires content.module.</em>"
+msgstr "Define los tipos de campo numéricos. <em>Nota: Requiere content.module.</em>"
+
+#: number.module:38
+msgid "Minimum"
+msgstr "Mínimo"
+
+#: number.module:43
+msgid "Maximum"
+msgstr "Máximo"
+
+#: number.module:58
+msgid "\"Minimum\" must be a number."
+msgstr "\"Mínimo\" debe ser un número."
+
+#: number.module:61
+msgid "\"Maximum\" must be a number."
+msgstr "\"Máximo\"debe ser un número."
+
+#: number.module:113
+msgid "The value of %name may be no smaller than %min."
+msgstr "El valor de %name no debe ser menor que %min."
+
+#: number.module:116
+msgid "The value of %name may be no larger than %max."
+msgstr "El valor de %name no debe ser mayor que %max."
+
+#: number.module:0
+msgid "number"
+msgstr "número"
+
+#: optionwidgets.module:15
+msgid "Defines selection, check box and radio button widgets for text and numeric fields. <em>Note: Requires content.module, text.module and number.module.</em>"
+msgstr "Define controles de selección, check box y radio button para campos de texto y numéricos. <em>Nota: Requiere content.module, text.module y number.module.</em>"
+
+#: optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "optionwidgets"
+
+#: text.module:15
+msgid "Defines simple text field types. <em>Note: Requires content.module.</em>"
+msgstr "Define tipos de campo de texto simple. <em>Nota: Requiere content.module.</em>"
+
+#: text.module:35
+msgid "Plain text"
+msgstr "Sólo texto"
+
+#: text.module:35
+msgid "Filtered text (user selects input format)"
+msgstr "Texto filtrado (los usuarios seleccionan el formato de entrada)"
+
+#: text.module:38
+msgid "Text processing"
+msgstr "Procesando texto"
+
+#: text.module:0
+msgid "text"
+msgstr "texto"
+
+#: userreference.module:15
+msgid "Defines a field type for referencing a user from a node. <em>Note: Requires content.module.</em>"
+msgstr "Define un tipo de campo para referenciar un usuario desde un nodo. <em>Nota: Requiere content.module.</em>"
+
+#: userreference.module:176
+msgid "Invalid user name."
+msgstr "Nombre de usuario no válido"
+
+#: userreference.module:0
+msgid "userreference"
+msgstr "userreference"
+
+#: weburl.module:15
+msgid "Defines simple weburl field types. <em>Note: Requires content.module.</em>"
+msgstr "Define tipo de campo para dirección de Web. <em>Nota: Requiere content.module.</em>"
+
+#: weburl.module:164;172
+msgid "Not a valid Web URL."
+msgstr "No es una dirección de pagina Web válida"
+
+#: weburl.module:0
+msgid "weburl"
+msgstr "weburl"
+
+#: content_admin.inc:16;87;232;310;533
+msgid "Label"
+msgstr "Etiqueta"
+
+#: content_admin.inc:42
+msgid "Content types"
+msgstr "Tipo de contenido"
+
+#: content_admin.inc:90
+msgid "The human-readable name of this content type."
+msgstr "El nombre legible de este tipo de contenido."
+
+#: content_admin.inc:98
+msgid "A brief description of the content type."
+msgstr "Una breve descripción del tipo de contenido."
+
+#: content_admin.inc:106
+msgid "Instructions to present to the user when adding new content of this type."
+msgstr "Instrucciones a presentar al usuario cuando agrega este tipo de contenido."
+
+#: content_admin.inc:110
+msgid "Title field label"
+msgstr "Etiqueta del campo Título"
+
+#: content_admin.inc:113
+msgid "The label for the title field."
+msgstr "La etiqueta para el campo del título."
+
+#: content_admin.inc:118
+msgid "Save content type"
+msgstr "Guardar este tipo de contenido"
+
+#: content_admin.inc:182
+msgid "Saved content type %type."
+msgstr "Tipo de contenido %type guardado."
+
+#: content_admin.inc:198
+msgid "Are you sure you want to delete the content type %type?"
+msgstr "¿Está seguro que quiere borrar el tipo de contenido %type?"
+
+#: content_admin.inc:198
+msgid "If you have any content left in this content type, it will be permanently deleted. This action cannot be undone."
+msgstr "Si existe contenido de este tipo en la base de datos, será borrado de forma permanente. Esta acción no se puede deshacer."
+
+#: content_admin.inc:218
+msgid "Deleted content type %type."
+msgstr "Tipo de contenido %type borrado."
+
+#: content_admin.inc:248
+msgid "remove"
+msgstr "borrar"
+
+#: content_admin.inc:277
+msgid "Add existing field"
+msgstr "Añadir un campo existente"
+
+#: content_admin.inc:286
+msgid "Add field"
+msgstr "Añadir un campo"
+
+#: content_admin.inc:307
+msgid "Create new field"
+msgstr "Crear un nuevo campo"
+
+#: content_admin.inc:313
+msgid "The human-readable name of this field."
+msgstr "El nombre leíble-por-humanos de este campo."
+
+#: content_admin.inc:318
+msgid "Field type"
+msgstr "Tipo de campo"
+
+#: content_admin.inc:326
+msgid "Create field"
+msgstr "Crear un campo"
+
+#: content_admin.inc:335
+msgid "No field modules are enabled. You need to <a href=\"%modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr "No hay ningún módulo de definición de campos habilitados. Usted debe <a href=\"%modules_url\">habilitar uno</a>, por ejemplo como text.module, antes que pueda añadir nuevos campos."
+
+#: content_admin.inc:389
+msgid "Added field %label."
+msgstr "Campo %label agregado."
+
+#: content_admin.inc:432
+msgid "Created field %label."
+msgstr "campo %label creado."
+
+#: content_admin.inc:452
+msgid "Are you sure you want to remove the field %field?"
+msgstr "¿Está seguro que quiere borrar el campo %field?"
+
+#: content_admin.inc:452
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Si tiene algún contenido en este campo, va a ser permanentemente borrado. Esta acción no podrá deshacerse."
+
+#: content_admin.inc:452
+msgid "Remove"
+msgstr "Borrar"
+
+#: content_admin.inc:468
+msgid "Removed field %field from %type."
+msgstr "Campo %field de %type borrado."
+
+#: content_admin.inc:487
+msgid "The field %field no longer exists in any content type, so it was deleted."
+msgstr "El campo %field no existe mas en ningún tupo de contenido, ha sido borrado."
+
+#: content_admin.inc:511
+msgid "Widget settings"
+msgstr "Opciones del control"
+
+#: content_admin.inc:512
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Estas configuraciónes se aplican solamente al campo %field como aparece en el tipo de contenido %type. "
+
+#: content_admin.inc:526
+msgid "Widget"
+msgstr "Control"
+
+#: content_admin.inc:541
+msgid "In the node editing form, the heavier fields will sink and the lighter fields will be positioned nearer the top."
+msgstr "En el formulario de edición de nodo, los campos más pesado se posicionarán más hacia abajo y los campos más livianos hacia más arriba."
+
+#: content_admin.inc:552
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr "Las instrucciones a presentan al usuario debajo este campo en el formulario de edición."
+
+#: content_admin.inc:558
+msgid "Data settings"
+msgstr "Configuraciónes de datos"
+
+#: content_admin.inc:559
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Estas configuraciones se aplica al campo %field en cada tipo de contenido que este aparezca."
+
+#: content_admin.inc:568
+msgid "Multiple values"
+msgstr "Valores múltiples"
+
+#: content_admin.inc:579
+msgid "Save field settings"
+msgstr "Guardar configuraciones del campo"
+
+#: content_admin.inc:652
+msgid "Saved field %field."
+msgstr "campo %field guardado."
+
+#: content_admin.inc:882;971
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr "El mapeo PostgreSQL no se ha encontrado para el tipo de datos  %type."
+
+#: content_admin.inc:882;971
+msgid "database"
+msgstr "base de datos"
+
+#: date.module:15
+msgid "Defines a date/time field type. <em>Note: Requires content.module.</em>"
+msgstr "Definir un tipo de campo de fecha/hora. <em>Note: Requiere content.module.</em>"
+
+#: date.module:36
+msgid "Year"
+msgstr "Año"
+
+#: date.module:37
+msgid "Year and month"
+msgstr "Año y mes"
+
+#: date.module:39
+msgid "Date and time"
+msgstr "Día y hora"
+
+#: date.module:40
+msgid "Time only"
+msgstr "Sólo hora"
+
+#: date.module:44
+msgid "Granularity"
+msgstr "Granularity"
+
+#: date.module:102
+msgid "Times are entered and displayed with site's time zone"
+msgstr "El horario debe ser ingresado y visualizado a partir de la zona horaria del sitio"
+
+#: date.module:103
+msgid "Times are entered and displayed with user's time zone"
+msgstr "El horario debe ser ingresado y visualizado a partir de la zona horaria del usuario"
+
+#: date.module:107
+msgid "Time zone handling"
+msgstr "Configurar zona horaria"
+
+#: date.module:153
+msgid "%name must be entered in ISO 8601 format (YYYYMMDDThh:mm:ss)."
+msgstr "%name debe ser ingresado en formato  ISO 8601 t (AAAMMDDThh:mm:ss)."
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/examples.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/examples.fr.po
new file mode 100644
index 0000000..55c5f31
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/examples.fr.po
@@ -0,0 +1,34 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:24+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: examples/example_field.php:178
+msgid ""
+"The possible values this field can contain. Enter one value per line, in the "
+"format key|label. The key is the value that will be stored in the database "
+"and it must match the field storage type, %type. The label is optional and "
+"the key will be used as the label if no label is specified."
+msgstr ""
+"Les valeurs possibles pour ce champ. Saisissez une valeur par ligne, sous la "
+"forme <em>clé|libellé</em>. La clé est la valeur enregistrée dans la base de "
+"données, et elle doit correspondre au type de stockage du champ, %type. Le "
+"libellé est optionnel et, s'il n'est pas spécifié, la clé sera utilisée "
+"comme libellé."
+
+#: examples/example_field.php:484
+msgid "Text area"
+msgstr "Zone de texte"
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/fr.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/fr.po
new file mode 100644
index 0000000..ef8b240
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/fr.po
@@ -0,0 +1,2020 @@
+# $Id$
+#
+# French translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content.module,v 1.301.2.100 2009/03/18 19:20:52 yched
+#  content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched
+#  content.admin.inc,v 1.181.2.64 2009/03/01 13:48:44 yched
+#  fieldgroup.module,v 1.79.2.45 2009/02/28 23:56:17 yched
+#  nodereference.module,v 1.138.2.50 2009/03/18 21:00:58 yched
+#  content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
+#  content.install,v 1.85.2.30 2008/11/07 16:24:58 yched
+#  content.info,v 1.6 2007/07/04 23:46:29 yched
+#  content.rules.inc,v 1.1.2.4 2008/10/24 11:11:48 fago
+#  content.views.inc,v 1.1.2.22 2009/01/14 13:19:47 karens
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww
+#  modules/content_multigroup/content_multigroup.info: n/a
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
+#  fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww
+#  number.info,v 1.7 2008/04/23 18:02:16 dww
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
+#  text.info,v 1.9 2008/04/23 18:02:31 dww
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww
+#  content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
+#  content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
+#  content.panels.inc,v 1.1.2.6 2008/11/03 14:12:41 yched
+#  content_handler_field.inc,v 1.1.2.14 2009/03/18 19:20:52 yched
+#  content-admin-display-overview-form.tpl.php,v 1.1.2.3 2008/10/09 20:58:26 karens
+#  number.module,v 1.91.2.33 2009/03/16 22:04:07 yched
+#  text.module,v 1.95.2.28 2008/12/30 00:00:54 yched
+#  content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
+#  content.node_form.inc,v 1.7.2.18 2009/02/10 22:53:04 yched
+#  fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
+#  nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  content.token.inc,v 1.5.2.8 2008/12/05 14:59:22 yched
+#  content_handler_field_multiple.inc,v 1.1.2.16 2009/03/17 22:58:06 yched
+#  content_handler_relationship.inc,v 1.1.2.3 2008/10/24 12:31:58 yched
+#  content_handler_sort.inc,v 1.1.2.6 2008/10/25 00:36:41 yched
+#  content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
+#  content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
+#  userreference.module,v 1.106.2.36 2009/03/18 21:00:58 yched
+#  optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
+#  theme.inc,v 1.1.2.12 2008/10/28 22:12:09 yched
+#  theme/content-edit.js: n/a
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: French Translation for drupal cck module\n"
+"POT-Creation-Date: 2009-03-26 16:52+0100\n"
+"PO-Revision-Date: 2009-03-26 18:09+0100\n"
+"Last-Translator: Sylvain Moreau <sylvain.moreau at ows.fr>\n"
+"Language-Team: Sylvain Moreau, OWS <sylvain.moreau at ows.fr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n>1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: FRANCE\n"
+
+#: content.module:21
+msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible thr [...]
+msgstr "Le module Content, composant obligatoire du kit CCK (Content Construction Kit) permet aux administrateurs d'associer des champs personnalisés à des types de contenus. Au sein de Drupal, les types de contenus servent à définir les caractéristiques d'une publication, y compris le titre et la description des champs affichés sur ses pages \"ajouter\" et \"éditer\". Le module Content (et les modules auxiliaires inclus dans CCK) permet d'ajouter des champs personnalisés en plus des cha [...]
+
+#: content.module:22
+msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatica [...]
+msgstr "Lorsque vous ajoutez un champ personnalisé à un type de contenu, vous déterminez son type (c'est-à-dire s'il doit contenir du texte, des nombres ou des références à d'autres objets) et la façon dont il doit être affiché (en tant que champ ou zone de texte, liste de sélection, case à cocher, bouton radio, ou champ à auto-complètement). Un champ peut présenter plusieurs valeurs (par exemple, une \"personne\" peut disposer de plusieurs adresses e-mail) ou une seule (par exemple, un  [...]
+
+#: content.module:23
+msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
+msgstr "Des types de champs personnalisés sont proposés par plusieurs modules optionnels inclus dans CCK (chaque module fournissant un type différent). La <a href=\"@modules\">page des modules</a> vous permet d'activer ou de désactiver des composants CCK. Une installation par défaut de CCK inclut :"
+
+#: content.module:25
+msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
+msgstr "<em>Number</em>, qui ajoute des types de champs numériques (formats entier, décimal ou réel à virgule flottante). Vous pouvez définir un jeu ou un intervalle de valeurs autorisées. Divers formats sont disponibles pour l'affichage des données numériques."
+
+#: content.module:26
+msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
+msgstr "<em>Text</em>, qui ajoute des types de champs de texte. Un champ texte peut contenir du texte brut uniquement ou, optionnellement, utiliser les filtres des formats d'entrée que propose Drupal pour gérer en toute sécurité des textes enrichis. Les champs de saisie de texte peuvent être constitués d'une seule ligne (champ texte), de plusieurs lignes (zone de texte) ou, pour un meilleur contrôle des valeurs saisies, une liste de sélection, des cases à cocher ou des boutons radio. Si  [...]
+
+#: content.module:27
+msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
+msgstr "<em>Node Reference</em>, qui crée des références personnalisées entre nœuds de Drupal. En ajoutant, par exemple, un champ <em>nodereference</em> et deux types de contenus différents, vous pouvez facilement créer des relations complexes de type parent/enfant entre données (par exemple plusieurs nœuds \"employé\" peuvent présenter un champ <em>nodereference</em> pointant vers un même nœud \"employeur\")."
+
+#: content.module:28
+msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
+msgstr "<em>User reference</em>, qui crée des références personnalisées vers les comptes des utilisateurs de votre site. En ajoutant un champ <em>userreference</em>, vous pouvez créer des relations complexes entre les utilisateurs de votre site et des publications. Ainsi, pour tracer l'implication d'un utilisateur dans une publication (au delà du champ Drupal standard <em>Écrit par</em>), vous pouvez ajouter à un type de contenu un champ <em>userreference</em> intitulé \"Édité par\" pour [...]
+
+#: content.module:29
+msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
+msgstr "<em>Fieldgroup</em>, qui crée des groupes de champs liés. Les groupes de champ peuvent être repliés, et vous pouvez choisir qu'ils soient dépliés ou repliés par défaut. L'ordre des groupes de champs, ainsi que l'ordre des champs au sein d'un groupe, est géré grâce à l'interface par glisser-déposer fournie par le module Content."
+
+#: content.module:31
+msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr "Pour plus d'informations, reportez-vous à l'entrée de manuel en ligne relative à <a href=\"@handbook-cck\">CCK</a> ou à la <a href=\"@project-cck\">page du projet CCK</a>."
+
+#: content.module:486
+#: modules/content_multigroup/content_multigroup.module:1422
+msgid "This field is required."
+msgstr "Ce champ est obligatoire."
+
+#: content.module:490
+msgid "!title: !required"
+msgstr "!title : !required"
+
+#: content.module:493
+#: modules/content_multigroup/content_multigroup.module:1434
+msgid "Order"
+msgstr "Ordre"
+
+#: content.module:496
+#: includes/content.admin.inc:171;197;888
+#: modules/content_multigroup/content_multigroup.module:1436
+#: modules/fieldgroup/fieldgroup.module:203
+msgid "Remove"
+msgstr "Ôter"
+
+#: content.module:1868
+msgid "Basic"
+msgstr "Basique"
+
+#: content.module:1871
+#: modules/nodereference/nodereference.module:257
+msgid "Teaser"
+msgstr "Résumé"
+
+#: content.module:1875
+#: modules/nodereference/nodereference.module:252
+msgid "Full node"
+msgstr "Nœud complet"
+
+#: content.module:1881;1884
+msgid "RSS"
+msgstr "RSS"
+
+#: content.module:1894
+msgid "Search"
+msgstr "Recherche"
+
+#: content.module:1897
+msgid "Search Index"
+msgstr "Index de recherche"
+
+#: content.module:1901
+msgid "Search Result"
+msgstr "Résultat de recherche"
+
+#: content.module:2349;2356
+msgid "Node module form."
+msgstr "Formulaire du module node."
+
+#: content.module:2363
+msgid "Language"
+msgstr "Langue"
+
+#: content.module:2364
+msgid "Locale module form."
+msgstr "Formulaire du module locale."
+
+#: content.module:2370
+msgid "Menu settings"
+msgstr "Paramètres du menu"
+
+#: content.module:2371
+msgid "Menu module form."
+msgstr "Formulaire du module menu."
+
+#: content.module:2377
+msgid "Taxonomy"
+msgstr "Taxonomie"
+
+#: content.module:2378
+msgid "Taxonomy module form."
+msgstr "Formulaire du module taxonomy."
+
+#: content.module:2384
+msgid "Book"
+msgstr "Livre"
+
+#: content.module:2385
+msgid "Book module form."
+msgstr "Formulaire du module livre (book)."
+
+#: content.module:2391
+msgid "Poll title"
+msgstr "Titre du sondage"
+
+#: content.module:2392
+msgid "Poll module title."
+msgstr "Titre du module sondage (Poll)"
+
+#: content.module:2396
+msgid "Poll choices"
+msgstr "Choix du sondage"
+
+#: content.module:2397
+msgid "Poll module choices."
+msgstr "Choix du module sondage (poll)."
+
+#: content.module:2401
+msgid "Poll settings"
+msgstr "Paramètrage du sondage"
+
+#: content.module:2402
+msgid "Poll module settings."
+msgstr "Paramètres du module sondage (poll)."
+
+#: content.module:2408
+msgid "File attachments"
+msgstr "Fichiers attachés"
+
+#: content.module:2409
+msgid "Upload module form."
+msgstr "Formulaire du module upload."
+
+#: content.module:600;607;0
+#: includes/content.crud.inc:589;633
+msgid "content"
+msgstr "contenu"
+
+#: content.module:600
+msgid "Updating field type %type with module %module."
+msgstr "Mise à jour du type de champ %type avec le module %module."
+
+#: content.module:607
+msgid "Updating widget type %type with module %module."
+msgstr "Mise à jour du type de widget %widget avec le module %module."
+
+#: content.module:63
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr "Utiliser du code PHP pour le paramétrage des champs (dangereux - à n'autoriser qu'avec précautions)"
+
+#: content.module:82
+msgid "Fields"
+msgstr "Champs"
+
+#: content.module:104
+msgid "Manage fields"
+msgstr "Gérer les champs"
+
+#: content.module:113
+msgid "Display fields"
+msgstr "Afficher les champs"
+
+#: content.module:144
+msgid "Remove field"
+msgstr "Supprimer un champ"
+
+#: content.install:236
+msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Les mises à jour des modules liés à CCK ne sont pas exécutées tant que les modules ne sont pas activés sur la  <a href=\"@admin-modules-path\">page d'administration des modules</a>. Lorsque vous les activerez, vous devrez retourner sur la page <a href=\"@update-php\">update.php</a> et exécuter les mises à jour restantes."
+
+#: content.install:239
+msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module possède des mises à jour mais ne peut pas être mis à jour car content.module n'est pas activé.<br /> Le cas échéant, lors de l'activation de content.module, vous devrez exécuter à nouveau le script de mise à jour. Vous continuerez à voir ce message jusqu'à ce que le module soit activé et les mises à jour exécutées."
+
+#: content.install:244
+msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module possède des mises à jour et est disponible dans le répertoire des modules, mais n'est pas activé.<br /> Le cas échéant, lorsque vous l'aurez activé, vous devrez ré-exécuter le script de mise à jour. Vous continuerez à voir ce message jusqu'à l'activation du module et l'exécution des mises à jour. "
+
+#: content.install:251
+msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Des mises à jour sont toujours en attente. Veuillez retourner sur <a href=\"@update-php\">update.php</a> et exécuter les mises à jour restarntes."
+
+#: content.install:252
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr "Des mises à jour sont toujours en attente.<br/>Veuillez ré-exécuter le script de mise à jour."
+
+#: (duplicate) content.install:10
+msgid "CCK - No Views integration"
+msgstr "CCK - Aucune Intégration aux Vues"
+
+#: (duplicate) content.install:11
+msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
+msgstr "L\"intégration de CCK avec le module Views requiert Views 6.x-2.0-rc2 ou une version supérieure."
+
+#: content.info:0
+#: includes/content.rules.inc:19;200
+#: includes/views/content.views.inc:178;254
+msgid "Content"
+msgstr "Contenu"
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "Permet aux administrateurs de définir des nouveaux types de contenu."
+
+#: content.info:0
+#: modules/content_copy/content_copy.info:0
+#: modules/content_multigroup/content_multigroup.info:0
+#: modules/content_permissions/content_permissions.info:0
+#: modules/fieldgroup/fieldgroup.info:0
+#: modules/nodereference/nodereference.info:0
+#: modules/number/number.info:0
+#: modules/optionwidgets/optionwidgets.info:0
+#: modules/text/text.info:0
+#: modules/userreference/userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: includes/content.admin.inc:16
+#: modules/content_copy/content_copy_export_form.tpl.php:11
+#: theme/content-admin-field-overview-form.tpl.php:12
+msgid "Name"
+msgstr "Nom"
+
+#: includes/content.admin.inc:16
+#: modules/content_copy/content_copy_export_form.tpl.php:12
+#: theme/content-admin-field-overview-form.tpl.php:13
+msgid "Type"
+msgstr "Type"
+
+#: includes/content.admin.inc:16
+#: modules/fieldgroup/fieldgroup.module:152
+msgid "Description"
+msgstr "Description"
+
+#: includes/content.admin.inc:16
+#: theme/content-admin-field-overview-form.tpl.php:14
+msgid "Operations"
+msgstr "Opérations"
+
+#: includes/content.admin.inc:30
+msgid "edit"
+msgstr "éditer"
+
+#: includes/content.admin.inc:33
+msgid "manage fields"
+msgstr "gérer les champs"
+
+#: includes/content.admin.inc:36
+msgid "delete"
+msgstr "supprimer"
+
+#: includes/content.admin.inc:47
+msgid "No content types available."
+msgstr "Aucun type de contenu disponible."
+
+#: includes/content.admin.inc:54
+msgid "» Add a new content type"
+msgstr "» Ajouter un nouveau type de contenu"
+
+#: includes/content.admin.inc:67;789;984
+msgid "Field name"
+msgstr "Nom du champ"
+
+#: includes/content.admin.inc:67;804;990
+msgid "Field type"
+msgstr "Type de champ"
+
+#: includes/content.admin.inc:67
+msgid "Used in"
+msgstr "Utilisé dans"
+
+#: includes/content.admin.inc:71
+msgid "@field_name (Locked)"
+msgstr "@field_name (Verrouillé)"
+
+#: includes/content.admin.inc:90
+msgid "No fields have been defined for any content type yet."
+msgstr "Aucun champ n'est pour l'instant défini sur l'ensemble des types de contenu."
+
+#: includes/content.admin.inc:106
+msgid "This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled."
+msgstr "Ce type de contenu possède des champs inactifs. Les champs inactifs ne sont pas inclus dans la liste de champs disponibles, jusqu'à l'activation des modules correspondants."
+
+#: includes/content.admin.inc:108
+msgid "!field (!field_name) is an inactive !field_type field that uses a !widget_type widget."
+msgstr "!field (!field_name) est un champ inactif de type !field_type, qui utilise un widget de type !widget_type."
+
+#: includes/content.admin.inc:170;196
+msgid "Configure"
+msgstr "Configurer"
+
+#: includes/content.admin.inc:181
+msgid "Locked"
+msgstr "Verrouillé"
+
+#: includes/content.admin.inc:237
+msgid "- Select a field type -"
+msgstr "- Sélectionnez un type de champ -"
+
+#: includes/content.admin.inc:238
+msgid "- Select a widget -"
+msgstr "- Sélectionnez un widget -"
+
+#: includes/content.admin.inc:244;285;315;797;978
+#: includes/content.panels.inc:49
+#: includes/views/handlers/content_handler_field.inc:56
+#: modules/content_copy/content_copy_export_form.tpl.php:10
+#: modules/fieldgroup/fieldgroup.module:111
+#: theme/content-admin-display-overview-form.tpl.php:13
+#: theme/content-admin-field-overview-form.tpl.php:10
+msgid "Label"
+msgstr "Étiquette"
+
+#: includes/content.admin.inc:253
+msgid "Field name (a-z, 0-9, _)"
+msgstr "Nom du champ (a-z, 0-9, _)"
+
+#: includes/content.admin.inc:258
+msgid "Type of data to store."
+msgstr "Type de données à stocker."
+
+#: includes/content.admin.inc:263;295
+msgid "Form element to edit the data."
+msgstr "Elément du formulaire pour l'édition des données."
+
+#: includes/content.admin.inc:279
+msgid "- Select an existing field -"
+msgstr "- Sélectionnez un champ existant -"
+
+#: includes/content.admin.inc:290
+msgid "Field to share"
+msgstr "Champ à partager"
+
+#: includes/content.admin.inc:324
+msgid "Group name (a-z, 0-9, _)"
+msgstr "Nom du groupe (a-z, 0-9, _)"
+
+#: includes/content.admin.inc:344;670
+#: modules/fieldgroup/fieldgroup.module:171;335
+msgid "Save"
+msgstr "Enregistrer"
+
+#: includes/content.admin.inc:365
+msgid "Add new field: you need to provide a label."
+msgstr "Ajouter un nouveau champ : vous devez fournir une étiquette."
+
+#: includes/content.admin.inc:370
+msgid "Add new field: you need to provide a field name."
+msgstr "Ajouter un nouveau champ : vous devez fournir un nom de champ."
+
+#: includes/content.admin.inc:384
+msgid "Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Ajouter un nouveau champ : le nom de champ %field_name n'est pas valide. Le nom doit seulement contenir des lettre minuscules non accentuées, des nombres, et des underscores. "
+
+#: includes/content.admin.inc:387
+msgid "Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr "Ajouter un nouveau champ : le nom de champ %field_name est trop long. Le nom est limité à 32 caractères, en comptant le préfixe 'field_'."
+
+#: includes/content.admin.inc:391
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr "Ajouter un nouveau champ : le nom 'field_instance' est un nom réservé."
+
+#: includes/content.admin.inc:403
+msgid "Add new field: the field name %field_name already exists."
+msgstr "Ajouter un nouveau champ : le nom du champ %field_name existe déjà."
+
+#: includes/content.admin.inc:409
+msgid "Add new field: you need to select a field type."
+msgstr "Ajouter un nouveau champ : vous devez sélectionner un type de champ."
+
+#: includes/content.admin.inc:414
+msgid "Add new field: you need to select a widget."
+msgstr "Ajouter un nouveau champ : vous devez sélectionner un widget."
+
+#: includes/content.admin.inc:420
+msgid "Add new field: invalid widget."
+msgstr "Ajouter un nouveau champ : widget non valide."
+
+#: includes/content.admin.inc:441
+msgid "Add existing field: you need to provide a label."
+msgstr "Ajouter un champ existant : vous devez fournir une étiquette."
+
+#: includes/content.admin.inc:446
+msgid "Add existing field: you need to select a field."
+msgstr "Ajouter un champ existant : vous devez sélectionner un champ."
+
+#: includes/content.admin.inc:451
+msgid "Add existing field: you need to select a widget."
+msgstr "Ajouter un champ existant: vous devez sélectionner un widget."
+
+#: includes/content.admin.inc:457
+msgid "Add existing field: invalid widget."
+msgstr "Ajouter un champ existant : widget non valide."
+
+#: includes/content.admin.inc:506
+msgid "There was a problem creating field %label."
+msgstr "Un problème est survenu à la création du champ '%label'."
+
+#: includes/content.admin.inc:518
+msgid "The field %label cannot be added to a content type because it is locked."
+msgstr "Le champ %label n'a pas pu être ajouté au type de contenu car il est verrouillé."
+
+#: includes/content.admin.inc:528
+msgid "There was a problem adding field %label."
+msgstr "Un problème est survenu lors de l'ajout du champ '%label'."
+
+#: includes/content.admin.inc:571
+msgid "There are no fields configured for this content type. You can add new fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr "Il n'y a aucun champ configuré pour ce type de contenu. Vous pouvez ajouter de nouveaux champs sur la page <a href=\"@link\">Gérer les champs</a>."
+
+#: includes/content.admin.inc:578;626
+#: includes/content.panels.inc:53
+#: modules/content_multigroup/content_multigroup.module:365
+msgid "Above"
+msgstr "Au dessus"
+
+#: includes/content.admin.inc:579
+#: includes/content.panels.inc:54
+msgid "Inline"
+msgstr "Sur la même ligne"
+
+#: includes/content.admin.inc:580;607;627;635
+#: modules/content_multigroup/content_multigroup.module:366
+msgid "<Hidden>"
+msgstr "<Caché>"
+
+#: includes/content.admin.inc:618;661
+msgid "Include"
+msgstr "Inclure"
+
+#: includes/content.admin.inc:618;661
+#: theme/content-admin-display-overview-form.tpl.php:17
+msgid "Exclude"
+msgstr "Exclure"
+
+#: includes/content.admin.inc:630
+msgid "no styling"
+msgstr "aucune mise en forme"
+
+#: includes/content.admin.inc:631
+msgid "simple"
+msgstr "simple"
+
+#: includes/content.admin.inc:632
+msgid "fieldset"
+msgstr "groupe de champs"
+
+#: includes/content.admin.inc:633
+msgid "fieldset - collapsible"
+msgstr "groupe de champs - repliable"
+
+#: includes/content.admin.inc:634
+msgid "fieldset - collapsed"
+msgstr "groupe de champs - replié"
+
+#: includes/content.admin.inc:690
+msgid "Your settings have been saved."
+msgstr "Vos paramètres ont été enregistrés."
+
+#: includes/content.admin.inc:760
+msgid "@type: @field (@label)"
+msgstr "@type : @field (@label)"
+
+#: includes/content.admin.inc:786
+msgid "Edit basic information"
+msgstr "Éditer les informations de base"
+
+#: includes/content.admin.inc:792
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr "Le nom lisible par une machine du champ. Ce nom ne peut être changé."
+
+#: includes/content.admin.inc:800
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr "Nom lisible par une personne, destiné à servir d'étiquette pour ce champ au sein du type de contenu '%type'."
+
+#: includes/content.admin.inc:807
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr "Type de données que vous souhaitez enregistrer, par le biais de ce champ, dans la base de données. Cette option ne peut être modifiée."
+
+#: includes/content.admin.inc:812;996
+msgid "Widget type"
+msgstr "Type de widget"
+
+#: includes/content.admin.inc:816
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr "Type d'élément de formulaire que vous souhaitez présenter à l'utilisateur lorsqu'il renseigne ce champ dans le type de contenu '%type'."
+
+#: includes/content.admin.inc:826
+#: includes/content.rules.inc:66
+msgid "Continue"
+msgstr "Continuer"
+
+#: includes/content.admin.inc:854
+msgid "Updated basic settings for field %label."
+msgstr "Les paramètres basiques du champ %label ont été mis à jour."
+
+#: includes/content.admin.inc:858
+msgid "There was a problem updating the basic settings for field %label."
+msgstr "Un problème a été rencontré lors de la mise à jour des paramètres basiques du champ %label."
+
+#: includes/content.admin.inc:885
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Êtes-vous certain de vouloir enlever le champ '%field' ?"
+
+#: includes/content.admin.inc:887
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Si vous avez encore du contenu dans ce champ, il sera perdu. Cette action est irréversible."
+
+#: includes/content.admin.inc:888
+#: modules/fieldgroup/fieldgroup.module:203
+msgid "Cancel"
+msgstr "Annuler"
+
+#: includes/content.admin.inc:894
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr "Ce champ est <strong>verrouillé</strong> et ne peut être supprimé."
+
+#: includes/content.admin.inc:915
+msgid "Removed field %field from %type."
+msgstr "Le champ '%field' de '%type' a été enlevé."
+
+#: includes/content.admin.inc:920
+msgid "There was a problem deleting %field from %type."
+msgstr "Un problème est survenu à la suppression du champ '%field' du type '%type'."
+
+#: includes/content.admin.inc:939
+msgid "The field %field is locked and cannot be edited."
+msgstr "Le champ %field est verouillé et ne peut être édité."
+
+#: includes/content.admin.inc:973
+msgid "%type basic information"
+msgstr "Informations de base pour '%type'"
+
+#: includes/content.admin.inc:1003;1182
+msgid "Change basic information"
+msgstr "Modifier les informations de base"
+
+#: includes/content.admin.inc:1009
+msgid "%type settings"
+msgstr "Paramètres de '%type'"
+
+#: includes/content.admin.inc:1010
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Ces paramètres ne s'applique qu'au champ '%field' tel qu'il apparaît dans le type contenu '%type'."
+
+#: includes/content.admin.inc:1024
+#: modules/fieldgroup/fieldgroup.module:139
+msgid "Help text"
+msgstr "Texte d'aide"
+
+#: includes/content.admin.inc:1027
+msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
+msgstr "Instructions à présenter à l'utilisateur sous ce champ, dans le formulaire d'édition.<br />Balises HTML autorisées : @tags"
+
+#: includes/content.admin.inc:1053
+msgid "Default value"
+msgstr "Valeur par défaut"
+
+#: includes/content.admin.inc:1074
+#: modules/number/number.module:120
+#: modules/text/text.module:85
+msgid "PHP code"
+msgstr "Code PHP"
+
+#: includes/content.admin.inc:1083;1238
+#: includes/content.rules.inc:93
+msgid "'@column' => value for @column"
+msgstr "'@column' => valeur de @column"
+
+#: includes/content.admin.inc:1085;1240
+#: includes/content.rules.inc:95
+msgid ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgstr ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // Vous voudrez vous arrêter là dans la plupart des cas. Fournir plus de valeurs\n"
+"  // si vous souhaitez que votre 'valeur par défaut' ait des valeurs multiples :\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+
+#: includes/content.admin.inc:1089;1102
+#: includes/content.rules.inc:99
+#: modules/number/number.module:127;136
+#: modules/text/text.module:92;101
+msgid "Code"
+msgstr "Code"
+
+#: includes/content.admin.inc:1093
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr "Usage avancé seulement : code PHP retournant une valeur par défaut. Ne doit pas contenir les délimiteurs <?php ?>. Si ce champ est rempli, la valeur retournée par ce code écrasera toute valeur spécifiée ci-dessus. Format attendu : <pre>!sample</pre>. Pour vous faire une idée du format attendu, vous pouvez utiliser l'onglet <em>devel load</em> fourni par <a href=\"@link_devel\">le module devel</a> sur une page de contenu de type  %type."
+
+#: includes/content.admin.inc:1103
+#: modules/number/number.module:137
+#: modules/text/text.module:102
+msgid "<none>"
+msgstr "<aucun>"
+
+#: includes/content.admin.inc:1104
+#: modules/number/number.module:138
+#: modules/text/text.module:103
+msgid "You're not allowed to input PHP code."
+msgstr "Vous n'êtes pas autorisé à saisir du code PHP."
+
+#: includes/content.admin.inc:1104
+msgid "This PHP code was set by an administrator and will override any value specified above."
+msgstr "Ce code PHP a été inséré par un administrateur et supplantera toute valeur spécifiée ci-dessus."
+
+#: includes/content.admin.inc:1111
+msgid "Global settings"
+msgstr "Paramètres globaux"
+
+#: includes/content.admin.inc:1112
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Ces paramètres s'appliquent au champ '%field' dans tous les types de contenu où il apparaît."
+
+#: includes/content.admin.inc:1116
+#: modules/content_multigroup/content_multigroup.module:483
+msgid "Required"
+msgstr "Obligatoire"
+
+#: includes/content.admin.inc:1119
+msgid "Maximum number of values users can enter for this field."
+msgstr "Le nombre maximum de valeurs qu'un utilisateur peut entrer pour ce champ."
+
+#: includes/content.admin.inc:1121
+msgid "'Unlimited' will provide an 'Add more' button so the users can add as many values as they like."
+msgstr "'Illimité' fournira un bouton 'Ajouter plus' pour que les utilisateurs puissent ajouter autant de valeurs qu'ils le souhaitent."
+
+#: includes/content.admin.inc:1123
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr "Attention ! Changer ce paramètre alors que des données ont déjà été créées peut conduire à perdre des données !"
+
+#: includes/content.admin.inc:1126
+msgid "Number of values"
+msgstr "Nombre de valeurs"
+
+#: includes/content.admin.inc:1127
+#: modules/content_multigroup/content_multigroup.module:85
+msgid "Unlimited"
+msgstr "Illimité"
+
+#: includes/content.admin.inc:1144
+#: modules/content_copy/content_copy.module:251
+msgid "Save field settings"
+msgstr "Enregistrer les paramètres du champ"
+
+#: includes/content.admin.inc:1242
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr "Le code PHP de valeur par défaut a renvoyé une valeur incorrecte.<br/>Format attendu : <pre>!sample</pre> Valeur renvoyée : @value"
+
+#: includes/content.admin.inc:1281
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr "Le code PHP pour la 'valeur par défaut' a retourné @value, qui n'est pas valide."
+
+#: includes/content.admin.inc:1285
+msgid "The default value is invalid."
+msgstr "La valeur par défaut est invalide."
+
+#: includes/content.admin.inc:1309
+msgid "Added field %label."
+msgstr "Le champ '%label' a été ajouté."
+
+#: includes/content.admin.inc:1313
+msgid "Saved field %label."
+msgstr "Champ '%label' enregistré."
+
+#: includes/content.admin.inc:1662
+msgid "Processing"
+msgstr "Exécution"
+
+#: includes/content.admin.inc:1663
+msgid "The update has encountered an error."
+msgstr "La mise à jour a échoué."
+
+#: includes/content.admin.inc:1677
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "La base de données a été modifiée et des données ont été déplacées ou supprimées."
+
+#: includes/content.admin.inc:1680
+msgid "An error occurred and database alteration did not complete."
+msgstr "Une erreur est survenue et a interrompu la modification de la base de données."
+
+#: includes/content.admin.inc:1783
+msgid "Processing %title"
+msgstr "'%title' en cours de traitement"
+
+#: includes/content.admin.inc:1849
+msgid "%name must be an integer."
+msgstr "%name doit être un entier."
+
+#: includes/content.admin.inc:1859
+msgid "%name must be a positive integer."
+msgstr "%name doit être un entier positif."
+
+#: includes/content.admin.inc:1869
+msgid "%name must be a number."
+msgstr "%name doit être un nombre."
+
+#: includes/content.admin.inc:1681
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "1 élément traité avec succès&nbsp:"
+msgstr[1] "@count éléments traités avec succès&nbsp:"
+
+#: includes/content.crud.inc:589
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "La table de champs a été renommée de '%old_name' à '%new_name' et les instances des champs ont été mises à jour."
+
+#: includes/content.crud.inc:633
+msgid "The content fields table %name has been deleted."
+msgstr "La table de champs '%name' a été supprimée."
+
+#: includes/content.node_form.inc:240
+msgid "Add another item"
+msgstr "Ajouter un autre élément"
+
+#: includes/content.panels.inc:21;35
+msgid "Content field"
+msgstr "Contenu du champ"
+
+#: includes/content.panels.inc:38
+msgid "A content field from the referenced node."
+msgstr "Un champ de contenu du node référencé."
+
+#: includes/content.panels.inc:39
+#: modules/fieldgroup/fieldgroup.panels.inc:31
+msgid "Node"
+msgstr "Noeud"
+
+#: includes/content.panels.inc:40
+#: modules/fieldgroup/fieldgroup.panels.inc:32
+msgid "Node context"
+msgstr "Contexte du noeud"
+
+#: includes/content.panels.inc:52
+msgid "Block title"
+msgstr "Titre du bloc"
+
+#: includes/content.panels.inc:55
+msgid "Hidden"
+msgstr "Caché"
+
+#: includes/content.panels.inc:57
+msgid "Configure how the label is going to be displayed."
+msgstr "Configurer la manière dont l'étiquette est affichée."
+
+#: includes/content.panels.inc:73
+msgid "Field / Formatter"
+msgstr "Champ / Formateur"
+
+#: includes/content.panels.inc:76
+msgid "Select a field and formatter."
+msgstr "Sélectionner un champ et un formateur."
+
+#: includes/content.panels.inc:92
+msgid "\"@s\" field @name"
+msgstr "\"@s\" champ @name"
+
+#: includes/content.rules.inc:15
+msgid "Populate a field"
+msgstr "Remplir un champ"
+
+#: includes/content.rules.inc:23;212
+msgid "You should make sure that the used field exists in the given content type."
+msgstr "Vous devez vous assurer que le champ existe pour le type de contenu donné."
+
+#: includes/content.rules.inc:53;266
+#: modules/nodereference/nodereference.rules.inc:45
+#: modules/userreference/userreference.rules.inc:47
+#: theme/content-admin-display-overview-form.tpl.php:11
+msgid "Field"
+msgstr "Champ"
+
+#: includes/content.rules.inc:56
+msgid "Select the machine-name of the field."
+msgstr "Sélectionnez le nom-machine du champ."
+
+#: includes/content.rules.inc:84
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr "Avancé : Préciser les valeurs des champs avec du code PHP"
+
+#: includes/content.rules.inc:102
+msgid "Advanced usage only: PHP code that returns the value to set. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content page might help you figure out the expected format."
+msgstr "Usage avancé seulement : code PHP retournant la valeur à définir. Ne doit pas contenir les délimiteurs <?php ?>. Si ce champ est rempli, la valeur retournée par ce code écrasera toute valeur spécifiée ci-dessus. Format attendu : <pre>!sample</pre>. Pour vous faire une idée du format attendu, vous pouvez utiliser l'onglet <em>devel load</em> fourni par <a href=\"@link_devel\">le module devel</a> sur une page de contenu de type  %type."
+
+#: includes/content.rules.inc:130
+msgid "You have to return the default value in the expected format."
+msgstr "Vous devez retourner la valeur par défaut dans le format attendu."
+
+#: includes/content.rules.inc:181
+msgid "Populate @node's field '@field'"
+msgstr "Remplir le champ '@field' de @node"
+
+#: includes/content.rules.inc:198
+msgid "Field has value"
+msgstr "Le champ possède une valeur"
+
+#: includes/content.rules.inc:203
+msgid "You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value."
+msgstr "Vous devez vous assurer que le champ utilisé existe dans le type de contenu donné. La condition retourne TRUE, si le champ sélectionné possède la valeur donnée."
+
+#: includes/content.rules.inc:207
+msgid "Field has changed"
+msgstr "Le champ a été modifié"
+
+#: includes/content.rules.inc:209
+msgid "Content containing changes"
+msgstr "Contenu contenant des modifications"
+
+#: includes/content.rules.inc:210
+msgid "Content not containing changes"
+msgstr "Contenu ne contenant pas de modification"
+
+#: includes/content.rules.inc:249
+msgid "@node's field '@field' has value"
+msgstr "Le champ '@field' de @node possède une valeur"
+
+#: includes/content.rules.inc:269
+msgid "Select the machine-name of the field to look at."
+msgstr "Sélectionnez le nom-machine du champ à voir."
+
+#: includes/content.rules.inc:275
+msgid "@node's field '@field' has been changed"
+msgstr "Le champ '@field' de @node a été modifié"
+
+#: includes/content.token.inc:12;15
+msgid "Token"
+msgstr "Jeton (Token)"
+
+#: includes/content.token.inc:81
+msgid "Referenced node ID"
+msgstr "Identifiant du nœud référencé"
+
+#: includes/content.token.inc:82
+msgid "Referenced node title"
+msgstr "Titre du nœud référencé"
+
+#: includes/content.token.inc:83
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr "Titre non filtré du noeud référencé. ATTENTION - saisie brute utilisateur."
+
+#: includes/content.token.inc:84
+msgid "Formatted html link to the referenced node."
+msgstr "Lien html formaté vers le noeud référencé."
+
+#: includes/content.token.inc:85
+msgid "Relative path alias to the referenced node."
+msgstr "Alias de chemin relatif vers le noeud référencé."
+
+#: includes/content.token.inc:86
+msgid "Absolute path alias to the referenced node."
+msgstr "Alias de chemin absolu vers le noeud référencé."
+
+#: includes/content.token.inc:114
+msgid "Raw number value"
+msgstr "Valeur numérique brute"
+
+#: includes/content.token.inc:115
+msgid "Formatted number value"
+msgstr "Valeur numérique mise en forme"
+
+#: includes/content.token.inc:138
+msgid "Raw, unfiltered text"
+msgstr "Texte brut, non filtré"
+
+#: includes/content.token.inc:139
+msgid "Formatted and filtered text"
+msgstr "Texte filtré et mis en forme"
+
+#: includes/content.token.inc:161
+msgid "Referenced user ID"
+msgstr "Identifiant de l'utilisateur référencé"
+
+#: includes/content.token.inc:162
+msgid "Referenced user name"
+msgstr "Nom de l'utilisateur référencé"
+
+#: includes/content.token.inc:163
+msgid "Formatted HTML link to referenced user"
+msgstr "Lien HTML mis en forme vers l'utilisateur référencé"
+
+#: includes/content.token.inc:164
+msgid "Relative path alias to the referenced user."
+msgstr "Alias de chemin relatif vers l'utilisateur référencé."
+
+#: includes/content.token.inc:165
+msgid "Absolute path alias to the referenced user."
+msgstr "Alias de chemin absolu vers l'utilisateur référencé."
+
+#: includes/views/content.views.inc:245;261
+msgid "@label (!name)"
+msgstr "@label (!name)"
+
+#: includes/views/content.views.inc:249
+msgid "@label (!name) - !column"
+msgstr "@label (!name) - !column"
+
+#: includes/views/content.views.inc:250
+msgid "@label-truncated - !column"
+msgstr "@label-truncated - !column"
+
+#: includes/views/content.views.inc:257
+msgid "Appears in: @types"
+msgstr "Apparaît dans : @types"
+
+#: includes/views/content.views.inc:279
+msgid "<No value>"
+msgstr "<Aucune valeur>"
+
+#: includes/views/handlers/content_handler_field.inc:59
+msgid "None"
+msgstr "Aucun"
+
+#: includes/views/handlers/content_handler_field.inc:60
+msgid "Widget label (@label)"
+msgstr "Étiquette du widget (@label)"
+
+#: includes/views/handlers/content_handler_field.inc:61
+msgid "Custom"
+msgstr "Personnalisé"
+
+#: includes/views/handlers/content_handler_field.inc:67
+msgid "Custom label"
+msgstr "Étiquette personnalisée"
+
+#: includes/views/handlers/content_handler_field.inc:83
+msgid "Format"
+msgstr "Format"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:58
+msgid "Group multiple values"
+msgstr "Grouper plusieurs valeurs"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:61
+msgid "If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays."
+msgstr "Si non coché, chaque élément du champ créera une nouvelle ligne, ce qui pourrait apparemment entraîner des doublons. Ce paramètre n'est pas compatible avec le tri par clic dans l'affichage du tableau. "
+
+#: includes/views/handlers/content_handler_field_multiple.inc:65
+msgid "Show @count value(s)"
+msgstr "Afficher @count valeur(s)"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:76
+msgid "starting from @count"
+msgstr "en commençant à @count"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:87
+msgid "Reversed (start from last values)"
+msgstr "Inversé (commencer à partir des dernières valeurs)"
+
+#: includes/views/handlers/content_handler_relationship.inc:40
+#: includes/views/handlers/content_handler_sort.inc:41
+msgid "All"
+msgstr "Tous / Toutes"
+
+#: includes/views/handlers/content_handler_relationship.inc:48
+#: includes/views/handlers/content_handler_sort.inc:49
+msgid "Delta"
+msgstr "Delta"
+
+#: includes/views/handlers/content_handler_relationship.inc:49
+msgid "The delta allows you to select which item in a multiple value field to key the relationship off of. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Le delta vous permet de sélectionner quel élément d'un champ à valeur multiple sera la clé de la relation. Sélectionnez \"1\" pour utiliser le premier élément, \"2\" pour le second et ainsi de suite. Si vous sélectionnez \"Tous\", chaque élément du champ créera une nouvelle ligne, ce qui pourrait causer des doublons."
+
+#: includes/views/handlers/content_handler_sort.inc:50
+msgid "The delta allows you to select which item in a multiple value field will be used for sorting. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Le delta vous permet de sélectionner quel élément d'un champ à valeur multiple sera utilisé pour les tris. Sélectionnez \"1\" pour utiliser le premier élément, \"2\" pour le second et ainsi de suite. Si vous sélectionnez \"Tous\", chaque élément du champ créera une nouvelle ligne, ce qui pourrait causer des doublons."
+
+#: modules/content_copy/content_copy_export_form.tpl.php:9
+#: modules/content_copy/content_copy.module:191;38
+msgid "Export"
+msgstr "Exporter"
+
+#: modules/content_copy/content_copy.module:97
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Ce formulaire traitera un type de contenu et un ou plusieurs champs de ce type, pour en exporter les paramètres. Le code d'export ainsi généré peut être copié et collé dans la page d'import, vers la base de données courante ou vers une autre base de données. L'opération d'import ajoutera les champs à un type de contenu existant ou créera un nouveau type de contenu intégrant les champs sélectionnés."
+
+#: modules/content_copy/content_copy.module:103
+msgid "Types"
+msgstr "Types"
+
+#: modules/content_copy/content_copy.module:107
+msgid "Select the content type to export."
+msgstr "Sélectionner le type de contenu à exporter."
+
+#: modules/content_copy/content_copy.module:175
+msgid "Export data"
+msgstr "Données exportée"
+
+#: modules/content_copy/content_copy.module:180
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Copiez le texte exporté et collez-le dans le type de contenu de votre choix, à l'aide de la fonction d'import."
+
+#: modules/content_copy/content_copy.module:184
+msgid "Content types"
+msgstr "Types de contenu"
+
+#: modules/content_copy/content_copy.module:303
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Ce formulaire importera les définitions de champs exportées depuis un autre type de contenu, ou une autre base de données.<br/> Veuillez noter que les champs ne peuvent pas être dupliqués au sein d'un même type de contenu, si bien que les champs importés ne seront ajoutés que si ils n'existent pas déjà dans le type sélectionné."
+
+#: modules/content_copy/content_copy.module:306
+msgid "<Create>"
+msgstr "<Créer>"
+
+#: modules/content_copy/content_copy.module:308
+msgid "Content type"
+msgstr "Type de contenu"
+
+#: modules/content_copy/content_copy.module:309
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Séléctionnez le type de contenu dans lequel importer ces champs.<br />Sélectionnez <Créer> pour créer un nouveau type de contenu qui contiendra ces champs."
+
+#: modules/content_copy/content_copy.module:314
+msgid "Import data"
+msgstr "Données à importer"
+
+#: modules/content_copy/content_copy.module:316
+msgid "Paste the text created by a content export into this field."
+msgstr "Collez dans ce champ le texte créé par un export de contenu."
+
+#: modules/content_copy/content_copy.module:320;46
+msgid "Import"
+msgstr "Importer"
+
+#: modules/content_copy/content_copy.module:328
+msgid "A file has been pre-loaded for import."
+msgstr "Un fichier a été préchargé pour l'import."
+
+#: modules/content_copy/content_copy.module:354
+msgid "The import data is not valid import text."
+msgstr "Les données d'import ne sont valides."
+
+#: modules/content_copy/content_copy.module:403
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "Les modules suivants doivent être activés pour que l'import fonctionne : '%modules'."
+
+#: modules/content_copy/content_copy.module:411
+msgid "The content type %type already exists in this database."
+msgstr "Le type de contenu '%type' existe déjà dans cette base de données."
+
+#: modules/content_copy/content_copy.module:418
+msgid "Exiting. No import performed."
+msgstr "Abandon. L'import n'a pas été réalisé."
+
+#: modules/content_copy/content_copy.module:442
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Une erreur s'est produite lors de l'ajout du nouveau type de contenu %type.<br> Veuillez vérifier les erreurs affichées pour plus de détails."
+
+#: modules/content_copy/content_copy.module:467
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Le champ importé '%field_label' (%field_name) n'a pas été ajouté à '%type' car ce champ existe déjà."
+
+#: modules/content_copy/content_copy.module:476
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr "Le champ importé '%field_label' (%field_name) a été ajouté au type de contenu '%type'."
+
+#: modules/content_copy/content_copy.module:581
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr "Une erreur s'est produite lors de l'export des données des 'paramètres d'affichage' du champ %field_name.<br/> L'erreur de base de données est : '%db_err'."
+
+#: modules/content_copy/content_copy.module:0
+msgid "content_copy"
+msgstr "content_copy"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Content Copy"
+msgstr "Content Copy"
+
+#: modules/content_copy/content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Permet d'importer et d'exporter des définitions de champs."
+
+#: modules/content_multigroup/content_multigroup.module:12
+msgid "The fields in a Standard group are independent of each other and each can have either single or multiple values. The fields in a Multigroup are treated as a repeating collection of single value fields."
+msgstr "Les champs d'un groupe Standard sont indépendants les uns des autres, et chacun peut soit avoir une valeur unique, soit des valeurs multiples. Les champs d'un Multigroupe sont traités comme une ensemble répétable de champs à valeurs uniques."
+
+#: modules/content_multigroup/content_multigroup.module:65;135
+msgid "Multigroup"
+msgstr "Multigroupe"
+
+#: modules/content_multigroup/content_multigroup.module:134
+msgid "Standard"
+msgstr "Standard"
+
+#: modules/content_multigroup/content_multigroup.module:138
+msgid "Type of group."
+msgstr "Type de groupe."
+
+#: modules/content_multigroup/content_multigroup.module:215
+msgid "The field %field has been updated to use %multiple values, to match the multiple value setting of the Multigroup %group."
+msgstr "Le champ %field a été mis à jour pour l'utilisation de valeurs %multiple, afin de correspondre au paramètre de valeur multipe du Multigroup %group."
+
+#: modules/content_multigroup/content_multigroup.module:248
+msgid "This change is not allowed. The field %field already has %multiple values in the database but the group %group only allows %group_max. Making this change would result in the loss of data."
+msgstr "Cette modification n'est pas autorisée. Le champ %field possède déjà des valeurs multiples dans la base de données, mais le groupe %group en autorise seulement %group_max. Effectuer cette modification pourrait entraîner la perte de données. "
+
+#: modules/content_multigroup/content_multigroup.module:272
+msgid "This change is not allowed. The field %field handles multiple values differently than the Content module. Making this change could result in the loss of data."
+msgstr "Cette modification n'est pas autorisée. Le champ %field manipule les valeurs multiples différemment du module Content. Effectuer cette modification pourrait entraîner la perte de données. "
+
+#: modules/content_multigroup/content_multigroup.module:287
+msgid "You are moving the field %field into a Multigroup."
+msgstr "Vous êtes en train d'inclure le champ %field dans un Multigroupe"
+
+#: modules/content_multigroup/content_multigroup.module:320
+msgid "This change is not allowed. The field %field already has data created and uses a widget that stores data differently in a Standard group than in a Multigroup. Making this change could result in the loss of data."
+msgstr "Cette modification n'est pas autorisée. Le champ %field possède déjà des données créées, et utilise un widget qui stocke les données différemment dans un groupe Standard que dans un Multigroupe. Effectuer ce changement pourrait entraîner la perte de données."
+
+#: modules/content_multigroup/content_multigroup.module:334
+msgid "You are moving the field %field out of a Multigroup."
+msgstr "Vous êtes en train de retirer le champ %field d'un Multigroupe"
+
+#: modules/content_multigroup/content_multigroup.module:369
+msgid "Simple"
+msgstr "Simple"
+
+#: modules/content_multigroup/content_multigroup.module:370
+msgid "Fieldset"
+msgstr "Groupe de champs"
+
+#: modules/content_multigroup/content_multigroup.module:371
+msgid "Horizontal line"
+msgstr "Ligne horizontale"
+
+#: modules/content_multigroup/content_multigroup.module:372
+msgid "Table - Single column"
+msgstr "Tableau - Colonne unique"
+
+#: modules/content_multigroup/content_multigroup.module:373
+msgid "Table - Multiple columns"
+msgstr "Tableau - Colonnes multiples"
+
+#: modules/content_multigroup/content_multigroup.module:384
+msgid "[Subgroup format]"
+msgstr "[Format du sous-groupe]"
+
+#: modules/content_multigroup/content_multigroup.module:461
+msgid "Multigroup settings"
+msgstr "Paramètres multigroupe"
+
+#: modules/content_multigroup/content_multigroup.module:476
+msgid "Multiple columns"
+msgstr "Colonnes multiples"
+
+#: modules/content_multigroup/content_multigroup.module:478
+msgid "Enable this option to render each field on a separate column on the node edit form."
+msgstr "Activez cette option pour rendre chaque champs dans une colonne disctincte sur le formulaire d'édition de noeud."
+
+#: modules/content_multigroup/content_multigroup.module:485
+msgid "Enable this option to require a minimum of one collection of fields in this Multigroup."
+msgstr "Activez cette option pour rendre obligatoire un minimum d'une collection de champs dans ce Multigroupe."
+
+#: modules/content_multigroup/content_multigroup.module:488
+msgid "Number of times to repeat the collection of Multigroup fields."
+msgstr "Nombre de fois où répéter l'ensemble Multigroupe de champs."
+
+#: modules/content_multigroup/content_multigroup.module:489
+msgid "'Unlimited' will provide an 'Add more' button so the users can add items as many times as they like."
+msgstr "'Illimité' fournira un bouton 'Ajouter plus' pour que les utilisateurs puissent ajouter des éléments autant de fois qu'ils le souhaitent."
+
+#: modules/content_multigroup/content_multigroup.module:490
+msgid "All fields in this group will automatically be set to allow this number of values."
+msgstr "Tous les champs de ce groupe seront automatiquement paramétrés pour autoriser ce nombre de valeurs."
+
+#: modules/content_multigroup/content_multigroup.module:495
+msgid "Number of repeats"
+msgstr "Nombre de répétitions"
+
+#: modules/content_multigroup/content_multigroup.module:503
+msgid "Labels"
+msgstr "Etiquettes"
+
+#: modules/content_multigroup/content_multigroup.module:504
+msgid "Labels for each subgroup of fields. Labels can be hidden or shown in various contexts using the 'Display fields' screen."
+msgstr "Etiquettes pour chaque sous-groupe de champs. Les étiquettes peuvent être cachées ou affichées dans des contextes divers en utilisant l'écran 'Afficher les champs'."
+
+#: modules/content_multigroup/content_multigroup.module:512
+msgid "Subgroup %number label"
+msgstr "Etiquette du sous-groupe %number"
+
+#: modules/content_multigroup/content_multigroup.module:539
+msgid "The field %field in this group already has %multiple values in the database. To prevent the loss of data you cannot set the number of Multigroup values to less than this."
+msgstr "Le champ %field dans ce groupe possède déjà %multiple valeurs dans la base de données. Pour éviter la perte de données, vous ne pouvez définir le nombre de valeurs du Multigroupe à une valeur inférieure."
+
+#: modules/content_multigroup/content_multigroup.module:932
+msgid "!name field is required in group @group."
+msgstr "Le champ !name est obligatoire dans le groupe @group."
+
+#: modules/content_multigroup/content_multigroup.module:946
+msgid "Group @name requires one collection of fields minimum."
+msgstr "Le groupe @name requiert au minimum un groupe de champs."
+
+#: modules/content_multigroup/content_multigroup.module:1145
+msgid "Add more values"
+msgstr "Ajouter plus de valeurs"
+
+#: modules/content_multigroup/content_multigroup.module:0
+msgid "content_multigroup"
+msgstr "content_multigroup"
+
+#: modules/content_multigroup/content_multigroup.info:0
+msgid "Content Multigroup"
+msgstr "Contenu Multigroupe"
+
+#: modules/content_multigroup/content_multigroup.info:0
+msgid "Combine multiple CCK fields into repeating field collections that work in unison."
+msgstr "Combinez de multiples champs CCK au sein de collections de champs qui fonctionnent à l'unisson."
+
+#: modules/content_permissions/content_permissions.module:10
+msgid "edit "
+msgstr "éditer"
+
+#: modules/content_permissions/content_permissions.module:10;11
+msgid "field_name"
+msgstr "field_name"
+
+#: modules/content_permissions/content_permissions.module:11
+msgid "view "
+msgstr "voir"
+
+#: modules/content_permissions/content_permissions.module:0
+msgid "content_permissions"
+msgstr "content_permissions"
+
+#: modules/content_permissions/content_permissions.install:9
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr "Veuillez <a href=\"!url\">configurer vos permissions sur les champs</a> immédiatement. Tous les champs sont inaccessibles par défaut."
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Content Permissions"
+msgstr "Permissions sur les Contenus"
+
+#: modules/content_permissions/content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr "Définit un niveau de permission par champ pour les champs CCK."
+
+#: modules/fieldgroup/fieldgroup.panels.inc:10;27
+msgid "Content fieldgroup"
+msgstr "Contenu du groupe de champ"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:30
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr "Tous les champs d'un groupe de champs sur le node référencé."
+
+#: modules/fieldgroup/fieldgroup.panels.inc:91
+msgid "@group_label (@group_type_name)"
+msgstr "@group_label (@group_type_name)"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:102
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "Fieldgroup"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:112
+msgid "Text to display if group has no data. Note that title will not display unless overridden."
+msgstr "Texte à afficher si un groupe n'a pas de données. Notez que le titre ne s'affichera pas sauf s'il est surclassé."
+
+#: modules/fieldgroup/fieldgroup.panels.inc:128
+msgid "\"@s\" fieldgroup @name"
+msgstr "\"@s\" groupe de champs @name"
+
+#: modules/fieldgroup/fieldgroup.module:124
+msgid "Form settings"
+msgstr "Paramètres du formulaire"
+
+#: modules/fieldgroup/fieldgroup.module:125
+msgid "These settings apply to the group in the node editing form."
+msgstr "Ces paramètres s'appliquent au groupe dans le formulaire d'édition de nœud."
+
+#: modules/fieldgroup/fieldgroup.module:129
+msgid "Style"
+msgstr "Style"
+
+#: modules/fieldgroup/fieldgroup.module:132
+msgid "always open"
+msgstr "toujours déplié"
+
+#: modules/fieldgroup/fieldgroup.module:133
+msgid "collapsible"
+msgstr "repliable"
+
+#: modules/fieldgroup/fieldgroup.module:134
+msgid "collapsed"
+msgstr "replié"
+
+#: modules/fieldgroup/fieldgroup.module:142
+msgid "Instructions to present to the user on the editing form."
+msgstr "Instructions à présenter à l'utilisateur dans le formulaire d'édition."
+
+#: modules/fieldgroup/fieldgroup.module:147
+msgid "Display settings"
+msgstr "Paramètres d'affichage"
+
+#: modules/fieldgroup/fieldgroup.module:148
+msgid "These settings apply to the group on node display."
+msgstr "Ces paramètres s'appliquent au groupe à l'affichage du nœud."
+
+#: modules/fieldgroup/fieldgroup.module:155
+msgid "A description of the group."
+msgstr "Description du groupe."
+
+#: modules/fieldgroup/fieldgroup.module:200
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Êtes-vous sûr(e) de vouloir supprimer le groupe '%label' ?"
+
+#: modules/fieldgroup/fieldgroup.module:202
+msgid "This action cannot be undone."
+msgstr "Cette action est irréversible."
+
+#: modules/fieldgroup/fieldgroup.module:211
+msgid "The group %group_name has been removed."
+msgstr "Le groupe '%group_name' a été supprimé."
+
+#: modules/fieldgroup/fieldgroup.module:260
+msgid "none"
+msgstr "aucun"
+
+#: modules/fieldgroup/fieldgroup.module:353
+msgid "You need to provide a label."
+msgstr "Vous devez fournir une étiquette."
+
+#: modules/fieldgroup/fieldgroup.module:358
+msgid "You need to provide a group name."
+msgstr "Vous devez fournir un nom de groupe"
+
+#: modules/fieldgroup/fieldgroup.module:372
+msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Le nom de groupe %group_name n'est pas valide. Le nom ne doit contenir que des lettres sans accents, des nombres, et des underscores."
+
+#: modules/fieldgroup/fieldgroup.module:375
+msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
+msgstr "Le nom de groupe %group_name est trop long. Le nom est limité à 32 caractères, le préfixe 'group_' compris."
+
+#: modules/fieldgroup/fieldgroup.module:381
+msgid "The group name %group_name already exists."
+msgstr "Le nom de groupe %group_name existe déjà."
+
+#: modules/fieldgroup/fieldgroup.module:400;403
+msgid "Add new group:"
+msgstr "Ajouter un nouveau groupe :"
+
+#: modules/fieldgroup/fieldgroup.module:418
+msgid "Add new group: you need to provide a label."
+msgstr "Ajouter un nouveau groupe : vous devez fournir une étiquette."
+
+#: modules/fieldgroup/fieldgroup.module:419
+msgid "Add new group: you need to provide a group name."
+msgstr "Ajouter un nouveau groupe : vous devez fournir un nom de groupe."
+
+#: modules/fieldgroup/fieldgroup.module:648
+msgid "Standard group"
+msgstr "Groupe standard"
+
+#: modules/fieldgroup/fieldgroup.module:39;46
+msgid "Edit group"
+msgstr "Éditer le groupe"
+
+#: modules/fieldgroup/fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "fieldgroup"
+
+#: modules/fieldgroup/fieldgroup.info:0
+msgid "Create display groups for CCK fields."
+msgstr "Créée des groupes d'affichage pour les champs CCK."
+
+#: modules/nodereference/nodereference.rules.inc:15
+msgid "Load a referenced node"
+msgstr "Charge un noeud référencé"
+
+#: modules/nodereference/nodereference.rules.inc:19
+msgid "Content containing the node reference field"
+msgstr "Contenu contenant le champ node reference"
+
+#: modules/nodereference/nodereference.rules.inc:25
+msgid "Referenced content"
+msgstr "Contenu référencé"
+
+#: modules/nodereference/nodereference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first content node will be loaded."
+msgstr "Notez que si le champs possède des valeurs multiples, seul le premier contenu sera chargé."
+
+#: modules/nodereference/nodereference.rules.inc:50
+msgid "There are no nodereference fields defined."
+msgstr "Il n'y a aucun champ  nodereference défini."
+
+#: modules/nodereference/nodereference.module:60
+msgid "Node reference"
+msgstr "Node référence"
+
+#: modules/nodereference/nodereference.module:61
+msgid "Store the ID of a related node as an integer value."
+msgstr "Stocker l'ID du noeud lié en tant que valeur entière."
+
+#: modules/nodereference/nodereference.module:75
+msgid "Content types that can be referenced"
+msgstr "Types de contenu pouvant être référencés"
+
+#: modules/nodereference/nodereference.module:87
+#: modules/userreference/userreference.module:84
+msgid "Default Views"
+msgstr "Vues par défaut"
+
+#: modules/nodereference/nodereference.module:90
+#: modules/userreference/userreference.module:87
+msgid "Existing Views"
+msgstr "Vues éxistantes"
+
+#: modules/nodereference/nodereference.module:97
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Avancé - Nœuds pouvant être référencés (Vue)"
+
+#: modules/nodereference/nodereference.module:104
+msgid "View used to select the nodes"
+msgstr "Vue utilisée pour sélectionner les noeuds"
+
+#: modules/nodereference/nodereference.module:107
+msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
+msgstr "<p>Choisissez la vue du \"module Views\" qui sélectionne les noeuds pouvant être référencés.<br />Note :</p>"
+
+#: modules/nodereference/nodereference.module:108;121
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr "<ul><li>Seules les vues qui possèdent des champs fonctionneront à cet effet.</li><li>Ceci annulera les paramètres \"Types de contenu\" ci-dessus. Utilisez la section \"filtres\" de la vue à la place.</li><li>Utilisez la section \"champs\" de la vue pour afficher des informations supplémentaires à propos des noeuds candidats sur le formulaire de création/édition.</li><li>Utilisez la section \"critère de tri\" de la vue pour déterminer l'ordre dans lequel les noeuds candidats seron [...]
+
+#: modules/nodereference/nodereference.module:112
+#: modules/userreference/userreference.module:109
+msgid "View arguments"
+msgstr "Arguments de la vue"
+
+#: modules/nodereference/nodereference.module:115
+#: modules/userreference/userreference.module:112
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Fournit une liste d'arguments, séparés par des virgules, à transmettre à la vue."
+
+#: modules/nodereference/nodereference.module:120
+msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr "<p>La liste des noeuds pouvant être référencés peut s'appuyer sur une vue du \"module Views\" mais aucune vue appropriée n'a été trouvée. <br />Note :</p>"
+
+#: modules/nodereference/nodereference.module:205
+#: modules/userreference/userreference.module:184
+msgid "%name: invalid input."
+msgstr "%name : saisie non valide."
+
+#: modules/nodereference/nodereference.module:217
+msgid "%name: this post can't be referenced."
+msgstr "%name : ce contenu ne peut être référencé."
+
+#: modules/nodereference/nodereference.module:242
+msgid "Title (link)"
+msgstr "Titre (avec lien)"
+
+#: modules/nodereference/nodereference.module:247
+msgid "Title (no link)"
+msgstr "Titre (sans lien)"
+
+#: modules/nodereference/nodereference.module:347
+#: modules/optionwidgets/optionwidgets.module:80
+#: modules/userreference/userreference.module:273
+msgid "Select list"
+msgstr "Liste de sélection"
+
+#: modules/nodereference/nodereference.module:355
+#: modules/optionwidgets/optionwidgets.module:88
+#: modules/userreference/userreference.module:281
+msgid "Check boxes/radio buttons"
+msgstr "Cases à cocher/boutons radio"
+
+#: modules/nodereference/nodereference.module:363
+#: modules/userreference/userreference.module:289
+msgid "Autocomplete text field"
+msgstr "Champ texte à auto-complètement"
+
+#: modules/nodereference/nodereference.module:417
+#: modules/userreference/userreference.module:343
+msgid "Autocomplete matching"
+msgstr "Correspondance de l'autocomplétion"
+
+#: modules/nodereference/nodereference.module:420
+#: modules/userreference/userreference.module:346
+msgid "Starts with"
+msgstr "Commence par"
+
+#: modules/nodereference/nodereference.module:421
+#: modules/userreference/userreference.module:347
+msgid "Contains"
+msgstr "Contient"
+
+#: modules/nodereference/nodereference.module:423
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
+msgstr "Séléctionnez la méthode utilisée pour collecter les suggestions de l'autocomplétion. Notez que <em>Contient</em> peut engendrer des problèmes de performances sur des sites avec des milliers de noeuds"
+
+#: modules/nodereference/nodereference.module:671
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name : différence de titre. Veuillez vérifier votre sélection."
+
+#: modules/nodereference/nodereference.module:678
+msgid "%name: found no valid post with that title."
+msgstr "%name : aucun contenu valide n'a été trouvé pour ce titre."
+
+#: modules/nodereference/nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr "Autocomplétion de nodereference"
+
+#: modules/nodereference/nodereference.module:0
+msgid "nodereference"
+msgstr "nodereference"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Node Reference"
+msgstr "Node Reference"
+
+#: modules/nodereference/nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Définit un type de champ pour référencer un noeud depuis un autre noeud."
+
+#: modules/number/number.module:34
+msgid "Integer"
+msgstr "Entier"
+
+#: modules/number/number.module:35
+msgid "Store a number in the database as an integer."
+msgstr "Stocke un nombre dans la base de données en format entier."
+
+#: modules/number/number.module:38
+msgid "Decimal"
+msgstr "Décimal"
+
+#: modules/number/number.module:39
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Stocke un nombre dans la base de données en format décimal fixe."
+
+#: modules/number/number.module:42
+msgid "Float"
+msgstr "Réel (Float)"
+
+#: modules/number/number.module:43
+msgid "Store a number in the database in a floating point format."
+msgstr "Stocke un nombre dans la base de données en format réel."
+
+#: modules/number/number.module:57
+msgid "Minimum"
+msgstr "Minimum"
+
+#: modules/number/number.module:63
+msgid "Maximum"
+msgstr "Maximum"
+
+#: modules/number/number.module:71
+msgid "Precision"
+msgstr "Précision"
+
+#: modules/number/number.module:72
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr "Le nombre total de chiffres à stocker dans la base de données, en incluant ceux à droite de la virgule."
+
+#: modules/number/number.module:78
+msgid "Scale"
+msgstr "Echelle"
+
+#: modules/number/number.module:79
+msgid "The number of digits to the right of the decimal."
+msgstr "Le nombre de chiffres à droite de la virgule"
+
+#: modules/number/number.module:85
+msgid "Decimal marker"
+msgstr "Séparateur de décimales"
+
+#: modules/number/number.module:86
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "Le caractère que les utilisateurs saisiront pour séparer les décimales dans les formulaires."
+
+#: modules/number/number.module:92
+msgid "Prefix"
+msgstr "Préfixe"
+
+#: modules/number/number.module:95
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Définissez une chaîne de caractères à utiliser pour préfixer la valeur, par exemple $ ou €. Laissez vide pour ne rien afficher de plus. Séparez les valeurs singulier et pluriel par une barre verticale (euro|euros)."
+
+#: modules/number/number.module:99
+msgid "Suffix"
+msgstr "Suffixe"
+
+#: modules/number/number.module:102
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Définissez une chaîne qui sera ajoutée en suffixe à la valeur, comme m², m/s², kb/s. Laisser vide pour aucun suffixe. Séparez les singulier et pluriel avec un pipe (mètre|mètres)."
+
+#: modules/number/number.module:106
+#: modules/text/text.module:71
+msgid "Allowed values"
+msgstr "Valeurs autorisées"
+
+#: modules/number/number.module:112
+#: modules/text/text.module:77
+msgid "Allowed values list"
+msgstr "Liste des valeurs autorisées"
+
+#: modules/number/number.module:116
+#: modules/text/text.module:81
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr "Les valeurs possibles que ce champ peut contenir. Entrez une valeur par ligne, sous la forme clé|étiquette. La clé est une valeur qui sera stocker dans la base de données, elle doit correspondre au type de champ défini (%type). L'étiquette est optionnelle, si elle n'est pas précisée, la clé sera utilisée également comme étiquette.<br />Balises HTML autorisées : @tags"
+
+#: modules/number/number.module:130
+#: modules/text/text.module:95
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Pour usage avancé seulement : code PHP fournissant un tableau par clé des valeurs autorisées. Ne doit pas inclure les délimiteurs <?php ?>. Si ce champ est rempli, le tableau renvoyé par le code prendra le pas sur la liste des valeurs autorisées apparaissant ci-dessus."
+
+#: modules/number/number.module:138
+#: modules/text/text.module:103
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr "Ce code PHP a été saisi par un administrateur et supplantera la liste des valeurs permises ci-dessus."
+
+#: modules/number/number.module:178
+#: modules/text/text.module:132
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Valeurs autorisées"
+
+#: modules/number/number.module:195
+msgid "\"Minimum\" must be a number."
+msgstr "\"Minimum\" doit être un nombre."
+
+#: modules/number/number.module:202
+msgid "\"Maximum\" must be a number."
+msgstr "\"Maximum\" doit être un nombre."
+
+#: modules/number/number.module:219
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name : la valeur ne peut être inférieure à %min."
+
+#: modules/number/number.module:222
+msgid "%name: the value may be no larger than %max."
+msgstr "%name : la valeur ne peut être supérieure à %max."
+
+#: modules/number/number.module:235
+#: modules/text/text.module:156
+msgid "%name: illegal value."
+msgstr "%name : valeur illégale."
+
+#: modules/number/number.module:270
+msgid "unformatted"
+msgstr "non mis en forme"
+
+#: modules/number/number.module:353
+#: modules/text/text.module:256
+msgid "Text field"
+msgstr "Champ texte"
+
+#: modules/number/number.module:512
+msgid "Only numbers and decimals are allowed in %field."
+msgstr "Seuls les nombres et les décimaux sont autorisés dans %field."
+
+#: modules/number/number.module:535
+msgid "Only numbers are allowed in %field."
+msgstr "Seuls les nombres sont autorisés dans %field."
+
+#: modules/number/number.module:559
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
+msgstr "Seuls les nombres et le caractère décimal (%decimal) sont autorisés dans %field."
+
+#: modules/number/number.module:0
+msgid "number"
+msgstr "nombre"
+
+#: modules/number/number.info:0
+msgid "Number"
+msgstr "Nombre"
+
+#: modules/number/number.info:0
+msgid "Defines numeric field types."
+msgstr "Définit des types de champs numériques."
+
+#: modules/optionwidgets/optionwidgets.module:19
+msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr "Créez une liste d'options en tant que liste dans la <strong>Liste des valeurs autorisées</strong>, ou en tant que tableau en code PHP. Ces valeurs seront les mêmes pour le champ %field au sein de tous les types de contenu."
+
+#: modules/optionwidgets/optionwidgets.module:22
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr "Pour un widget 'case à cocher oui/non', définissez la valeur 'non' en premier, puis la valeur 'oui', dans la section <strong>Valeurs autorisées</strong>. Notez que la case à cocher sera étiquetée avec l'étiquette de la valeur du 'oui'."
+
+#: modules/optionwidgets/optionwidgets.module:25
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "Le widget 'cases à cocher/boutons radio' affichera des cases à cocher si l'option valeurs multiples est sélectionnées pour ce champ, autrement, des boutons radio seront affichés."
+
+#: modules/optionwidgets/optionwidgets.module:37
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Vous devez préciser les 'valeurs autorisées' pour ce champ."
+
+#: modules/optionwidgets/optionwidgets.module:96
+msgid "Single on/off checkbox"
+msgstr "Case à cocher on/off unique"
+
+#: modules/optionwidgets/optionwidgets.module:331
+msgid "%name: this field cannot hold more that @count values."
+msgstr "%name : ce champ ne peut contenir plus de @count valeurs."
+
+#: modules/optionwidgets/optionwidgets.module:416
+msgid "N/A"
+msgstr "N/A"
+
+#: modules/optionwidgets/optionwidgets.module:420
+msgid "- None -"
+msgstr "- Aucun -"
+
+#: modules/optionwidgets/optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "optionwidgets"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Option Widgets"
+
+#: modules/optionwidgets/optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Définit des widgets de liste déroulante, case à cocher et bouton radio pour des champs texte et numériques."
+
+#: modules/text/text.module:41
+#: modules/text/text.info:0
+msgid "Text"
+msgstr "Texte"
+
+#: modules/text/text.module:42
+msgid "Store text in the database."
+msgstr "Enregistre le texte dans la base de données."
+
+#: modules/text/text.module:54;201
+#: modules/userreference/userreference.module:226
+msgid "Plain text"
+msgstr "Texte simple"
+
+#: modules/text/text.module:54
+msgid "Filtered text (user selects input format)"
+msgstr "Texte filtré (l'utilisateur choisit le format d'entrée)"
+
+#: modules/text/text.module:57
+msgid "Text processing"
+msgstr "Traitement du texte"
+
+#: modules/text/text.module:63
+msgid "Maximum length"
+msgstr "Taille maximale"
+
+#: modules/text/text.module:67
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "La taille maximale des champs, en caractères. Laisser vide pour ne pas limiter la taille."
+
+#: modules/text/text.module:159
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name : la valeur ne doit pas dépasser %max caractères."
+
+#: modules/text/text.module:196
+#: modules/userreference/userreference.module:221
+msgid "Default"
+msgstr "Par défaut"
+
+#: modules/text/text.module:206
+msgid "Trimmed"
+msgstr "Coupé"
+
+#: modules/text/text.module:264
+msgid "Text area (multiple rows)"
+msgstr "Zone de texte (plusieurs lignes)"
+
+#: modules/text/text.module:316
+msgid "Size of textfield"
+msgstr "Taille du champ texte"
+
+#: modules/text/text.module:325
+msgid "Rows"
+msgstr "Rangées"
+
+#: modules/text/text.module:0
+msgid "text"
+msgstr "texte"
+
+#: modules/text/text.info:0
+msgid "Defines simple text field types."
+msgstr "Définit les types de champs en texte simple."
+
+#: modules/userreference/userreference.rules.inc:15
+msgid "Load a referenced user"
+msgstr "Charge un utilisateur référencé"
+
+#: modules/userreference/userreference.rules.inc:19
+msgid "Content containing the user reference field"
+msgstr "Contenu contenant le champ userrefernece"
+
+#: modules/userreference/userreference.rules.inc:25
+msgid "Referenced user"
+msgstr "Utilisateur référencé"
+
+#: modules/userreference/userreference.rules.inc:29
+msgid "Note that if the field has multiple values, only the first user will be loaded."
+msgstr "Noter que si le champ possède des valeurs multiples, seul le premier utilisateur sera chargé"
+
+#: modules/userreference/userreference.rules.inc:52
+msgid "There are no userreference fields defined."
+msgstr "Il n'y a aucun champ userreference défini"
+
+#: modules/userreference/userreference.module:52
+msgid "User reference"
+msgstr "User reference"
+
+#: modules/userreference/userreference.module:53
+msgid "Store the ID of a related user as an integer value."
+msgstr "Stocke l'ID d'un utilisateur lié sous forme d'entier"
+
+#: modules/userreference/userreference.module:67
+msgid "User roles that can be referenced"
+msgstr "Rôles utilisateur pouvant être référencés"
+
+#: modules/userreference/userreference.module:73
+msgid "User status that can be referenced"
+msgstr "Statuts utilisateur pouvant être référencés"
+
+#: modules/userreference/userreference.module:75
+msgid "Active"
+msgstr "Actif"
+
+#: modules/userreference/userreference.module:75
+msgid "Blocked"
+msgstr "Bloqué"
+
+#: modules/userreference/userreference.module:94
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Avancé - Utilisateurs pouvant être référencés (Vue)"
+
+#: modules/userreference/userreference.module:101
+msgid "View used to select the users"
+msgstr "Vue utilisée pour sélectionner les utilisateurs"
+
+#: modules/userreference/userreference.module:104
+msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
+msgstr "<p>Choisissez la vue du \"module Views\" qui sélectionne les utilisateurs pouvant être référencés.<br />Note :</p>"
+
+#: modules/userreference/userreference.module:105;118
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
+msgstr "<ul><li>Seules les vues qui possèdent des champs fonctionneront à cet effet.</li><li>Ceci annulera les paramètres \"Rôles Référençables\" et \"Statut Référençable\" ci-dessus. Utilisez la section \"filtres\" de la vue à la place.</li><li>Utilisez la section \"champs\" de la vue pour afficher des informations supplémentaires à propos des utilisateurs candidats sur le formulaire de création/édition.</li><li>Utilisez la section \"critère de tri\" de la vue pour déterminer l'ordre da [...]
+
+#: modules/userreference/userreference.module:117
+msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr "<p>La liste d'utilisateurs pouvant être référencés peut s'appueyr sur une vue du \"module Views\", mais aucune vue appropriée n'a été trouvée. <br />Note :</p>"
+
+#: modules/userreference/userreference.module:196
+msgid "%name: invalid user."
+msgstr "%name : utilisateur invalide."
+
+#: modules/userreference/userreference.module:349
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
+msgstr "Séléctionnez la méthode utilisée pour collecter les suggestions de l'autocomplétion. Notez que <em>Contient</em> peut engendrer des problèmes de performances sur des sites avec des milliers d'utilisateurs."
+
+#: modules/userreference/userreference.module:357
+msgid "Reverse link"
+msgstr "Lien retour"
+
+#: modules/userreference/userreference.module:359
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr "Si cette option est sélectionnée, un lien réciproque vers le nœud référençant sera affiché dans l'enregistrement utilisateur référencé."
+
+#: modules/userreference/userreference.module:594
+msgid "%name: found no valid user with that name."
+msgstr "%name : nous n'avons pas trouvé d'utilisateur valide pour ce nom."
+
+#: modules/userreference/userreference.module:887
+msgid "Related content"
+msgstr "Contenu lié"
+
+#: modules/userreference/userreference.module:15
+msgid "Userreference autocomplete"
+msgstr "Autocomplétion Userreference"
+
+#: modules/userreference/userreference.module:0
+msgid "userreference"
+msgstr "userreference"
+
+#: modules/userreference/userreference.info:0
+msgid "User Reference"
+msgstr "User Reference"
+
+#: modules/userreference/userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Définit un type de champ pour référencer un utilisateur depuis un noeud."
+
+#: theme/content-admin-field-overview-form.tpl.php:11
+msgid "Weight"
+msgstr "Poids"
+
+#: theme/content-admin-field-overview-form.tpl.php:53
+msgid "Add"
+msgstr "Ajouter"
+
+#: theme/content-admin-field-overview-form.tpl.php:59
+msgid "New field"
+msgstr "Nouveau champ"
+
+#: theme/content-admin-field-overview-form.tpl.php:72
+msgid "Existing field"
+msgstr "Champ existant"
+
+#: theme/content-admin-field-overview-form.tpl.php:84
+msgid "New group"
+msgstr "Nouveau groupe"
+
+#: theme/theme.inc:11
+msgid "Add fields and groups to the content type, and arrange them on content display and input forms."
+msgstr "Ajouter des champs et des groupes au type de contenu, et les paramétrer pour l'affichage du contenu et les formulaires de saisie."
+
+#: theme/theme.inc:13
+msgid "You can add a field to a group by dragging it below and to the right of the group."
+msgstr "Vous pouvez ajouter un champ à un groupe en le faisant glisser ci-dessous et à la droite du groupe."
+
+#: theme/theme.inc:16
+msgid "Note: Installing the <a href=\"!adv_help\">Advanced help</a> module will let you access more and better help."
+msgstr "Note : l'installation du module <a href=\"!adv_help\">Aide avancée (Advanced help)</a> vous permettra d'accéder à plus d'aide, et de meilleure qualité."
+
+#: theme/theme.inc:111
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "Configurez ici la manière dont les champs et étiquettes de champs de ce type de contenu doivent être affichées, lorsque le contenu est vu en mode accroche ou en pleine page."
+
+#: theme/theme.inc:114
+msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
+msgstr "Configurez ici la façon dont les champs de ce type de contenu doivent être affichés lorsqu'il est rendu dans les contextes suivants."
+
+#: theme/theme.inc:116
+msgid "Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template."
+msgstr "Utiliser la case à cocher 'Exclure' pour exclure un élément de la valeur de !content transmis au gabarit du node."
+
+#: theme/content-edit.js:0
+msgid "Remove this item"
+msgstr "Supprimer cet élément"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/general.de.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.de.po
new file mode 100644
index 0000000..d1618b7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.de.po
@@ -0,0 +1,308 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content.module,v 1.301.2.3 2008/06/14 02:24:00 yched
+#  nodereference.module,v 1.138.2.1 2008/06/04 12:56:58 karens
+#  content.crud.inc,v 1.76.2.1 2008/06/04 11:53:57 karens
+#  content_copy.module,v 1.27 2008/05/29 22:27:04 karens
+#  content.admin.inc,v 1.181.2.2 2008/06/14 02:50:08 yched
+#  example_field.php,v 1.5 2008/04/23 08:24:06 karens
+#  simple_field.php,v 1.5 2008/04/23 08:24:06 karens
+#  text.module,v 1.95.2.2 2008/06/14 02:50:08 yched
+#  userreference.module,v 1.106 2008/06/01 22:00:36 karens
+#  number.module,v 1.91.2.3 2008/06/14 02:50:08 yched
+#  fieldgroup.module,v 1.79.2.1 2008/06/13 21:41:06 yched
+#  optionwidgets.module,v 1.69 2008/06/03 12:25:45 karens
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:15+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+
+#: content.module:499
+#: modules/content_multigroup/content_multigroup.module:903
+msgid "Order"
+msgstr "Reihenfolge"
+
+#: content.module:1857
+#: modules/nodereference/nodereference.module:268
+msgid "Teaser"
+msgstr "Anrisstext"
+
+#: content.module:1861
+#: modules/nodereference/nodereference.module:263
+msgid "Full node"
+msgstr "Vollständiger Beitrag"
+
+#: content.module:595;602;0
+#: includes/content.crud.inc:589;633
+msgid "content"
+msgstr "Inhalt"
+
+#: includes/content.admin.inc:16
+#: modules/content_copy/content_copy_export_form.tpl.php:11
+#: theme/content-admin-field-overview-form.tpl.php:12
+msgid "Name"
+msgstr "Name"
+
+#: includes/content.admin.inc:16
+#: modules/content_copy/content_copy_export_form.tpl.php:12
+#: theme/content-admin-field-overview-form.tpl.php:13
+msgid "Type"
+msgstr "Typ"
+
+#: includes/content.admin.inc:16
+#: modules/fieldgroup/fieldgroup.module:158
+msgid "Description"
+msgstr "Beschreibung"
+
+#: includes/content.admin.inc:16
+#: theme/content-admin-field-overview-form.tpl.php:14
+msgid "Operations"
+msgstr "Operationen"
+
+#: includes/content.admin.inc:171;197;895
+#: modules/fieldgroup/fieldgroup.module:209
+msgid "Remove"
+msgstr "Entfernen"
+
+#: includes/content.admin.inc:244;285;315;804;985
+#: includes/panels/content_types/content_field.inc:97
+#: includes/views/handlers/content_handler_field.inc:56
+#: modules/content_copy/content_copy_export_form.tpl.php:10
+#: modules/fieldgroup/fieldgroup.module:117
+#: theme/content-admin-display-overview-form.tpl.php:13
+#: theme/content-admin-field-overview-form.tpl.php:10
+msgid "Label"
+msgstr "Bezeichnung"
+
+#: includes/content.admin.inc:344
+#: modules/content_multigroup/content_multigroup.module:126
+msgid "Type of group."
+msgstr "Typ der Gruppe."
+
+#: includes/content.admin.inc:352;677
+#: modules/fieldgroup/fieldgroup.module:177;341
+msgid "Save"
+msgstr "Speichern"
+
+#: includes/content.admin.inc:585;633
+#: includes/panels/content_types/content_field.inc:101
+#: modules/content_multigroup/content_multigroup.module:352
+msgid "Above"
+msgstr "Oberhalb"
+
+#: includes/content.admin.inc:586
+#: includes/panels/content_types/content_field.inc:102
+msgid "Inline"
+msgstr "Inline"
+
+#: includes/content.admin.inc:587;614;634;642
+#: modules/content_multigroup/content_multigroup.module:353;360
+msgid "<Hidden>"
+msgstr "<Versteckt>"
+
+#: includes/content.admin.inc:625;668
+#: theme/content-admin-display-overview-form.tpl.php:17
+msgid "Exclude"
+msgstr "Ausschließen"
+
+#: includes/content.admin.inc:895
+#: modules/fieldgroup/fieldgroup.module:209
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: includes/content.admin.inc:1031
+#: modules/fieldgroup/fieldgroup.module:145
+msgid "Help text"
+msgstr "Hilfetext"
+
+#: includes/content.admin.inc:1081
+#: modules/number/number.module:123
+#: modules/text/text.module:86
+msgid "PHP code"
+msgstr "PHP-Code"
+
+#: includes/content.admin.inc:1096;1109
+#: includes/content.rules.inc:99
+#: modules/number/number.module:130;139
+#: modules/text/text.module:93;102
+msgid "Code"
+msgstr "Kürzel"
+
+#: includes/content.admin.inc:1110
+#: modules/number/number.module:140
+#: modules/text/text.module:103
+msgid "<none>"
+msgstr "<Keine>"
+
+#: includes/content.admin.inc:1111
+#: modules/number/number.module:141
+#: modules/text/text.module:104
+msgid "You're not allowed to input PHP code."
+msgstr "Keine Berechtigung zur Eingabe von PHP-Code vorhanden."
+
+#: includes/content.admin.inc:1134
+#: modules/content_multigroup/content_multigroup.module:73
+msgid "Unlimited"
+msgstr "Unbegrenzt"
+
+#: includes/content.admin.inc:1151
+#: modules/content_copy/content_copy.module:251
+msgid "Save field settings"
+msgstr "Feldeinstellungen speichern"
+
+#: includes/content.rules.inc:53;276
+#: modules/nodereference/nodereference.rules.inc:45
+#: modules/userreference/userreference.rules.inc:47
+#: theme/content-admin-display-overview-form.tpl.php:11
+msgid "Field"
+msgstr "Feld"
+
+#: includes/panels/content_types/content_field.inc:45
+#: modules/fieldgroup/fieldgroup.panels.inc:31
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:43
+#: modules/nodereference/panels/relationships/node_from_noderef.inc:17
+#: modules/userreference/panels/relationships/user_from_userref.inc:17
+msgid "Node"
+msgstr "Beitrag"
+
+#: modules/content_multigroup/content_multigroup.module:356
+#: modules/fieldgroup/fieldgroup.module:266
+msgid "none"
+msgstr "Keine"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:10;27
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:14
+msgid "Content fieldgroup"
+msgstr "Inhaltsfeldgruppe"
+
+#: modules/fieldgroup/fieldgroup.panels.inc:112
+#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:102
+msgid "Text to display if group has no data. Note that title will not display unless overridden."
+msgstr "Der bei einer Gruppe ohne Daten anzuzeigende Text. Der Titel wird nur angezeigt, wenn dieser Übersteuert wird."
+
+#: modules/nodereference/nodereference.module:97
+#: modules/userreference/userreference.module:94
+msgid "Default Views"
+msgstr "Standardansichten"
+
+#: modules/nodereference/nodereference.module:100
+#: modules/userreference/userreference.module:97
+msgid "Existing Views"
+msgstr "Vorhandene Ansichten"
+
+#: modules/nodereference/nodereference.module:122
+#: modules/userreference/userreference.module:119
+msgid "View arguments"
+msgstr "Argumente anzeigen"
+
+#: modules/nodereference/nodereference.module:125
+#: modules/userreference/userreference.module:122
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Eine kommagetrennte Liste von Argumenten angeben, welche an die Ansicht übergeben werden."
+
+#: modules/nodereference/nodereference.module:216
+#: modules/userreference/userreference.module:195
+msgid "%name: invalid input."
+msgstr "%name: ungültige Eingabe."
+
+#: modules/nodereference/nodereference.module:358
+#: modules/optionwidgets/optionwidgets.module:80
+#: modules/userreference/userreference.module:284
+msgid "Select list"
+msgstr "Auswahlliste"
+
+#: modules/nodereference/nodereference.module:366
+#: modules/optionwidgets/optionwidgets.module:88
+#: modules/userreference/userreference.module:292
+msgid "Check boxes/radio buttons"
+msgstr "Ankreuzfelder/Auswahlknöpfe"
+
+#: modules/nodereference/nodereference.module:374
+#: modules/userreference/userreference.module:300
+msgid "Autocomplete text field"
+msgstr "Textfeld mit Autovervollständigung"
+
+#: modules/nodereference/nodereference.module:429
+#: modules/userreference/userreference.module:355
+msgid "Autocomplete matching"
+msgstr "Autovervollständigungsvergleich"
+
+#: modules/nodereference/nodereference.module:432
+#: modules/userreference/userreference.module:358
+msgid "Starts with"
+msgstr "Beginnt mit"
+
+#: modules/nodereference/nodereference.module:433
+#: modules/userreference/userreference.module:359
+msgid "Contains"
+msgstr "Enthält"
+
+#: modules/nodereference/nodereference.module:439
+#: modules/text/text.module:317
+#: modules/userreference/userreference.module:365
+msgid "Size of textfield"
+msgstr "Größe des Textfeldes"
+
+#: modules/number/number.module:109
+#: modules/text/text.module:72
+msgid "Allowed values"
+msgstr "Zulässige Werte"
+
+#: modules/number/number.module:115
+#: modules/text/text.module:78
+msgid "Allowed values list"
+msgstr "Zulässige Werteliste"
+
+#: modules/number/number.module:119
+#: modules/text/text.module:82
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr "Die möglichen Werte, die dieses Feld enthalten kann. Geben Sie pro Zeile einen Wert im Format „Schlüssel|Bezeichnung“ ein. Der Schüssel ist der Wert, welcher in der Datenbank gespeichert wird und muss dem Datentyp (%type) des Feldes entsprechen. Der Schlüssel wird als Bezeichnung verwendet, wenn die optionale Bezeichnung nicht angegeben wird.<br />Zulässige HTML-Tags: @tags"
+
+#: modules/number/number.module:133
+#: modules/text/text.module:96
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Nur erweiterte Verwendung: PHP-Code der ein Array mit Schlüsseln der zulässigen Werte zurückliefert. Dieser sollte keine <?php ?> Trennzeichen enthalten. Sollte dieses Feld ausgefüllt werden, wird das von diesem Code zurückgegebene Array die zulässige Werteliste oberhalb übersteuern."
+
+#: modules/number/number.module:141
+#: modules/text/text.module:104
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr "Dieser PHP-Code wurde von einem Administrator festgelegt und wird die obige zulässige Werteliste übersteuern."
+
+#: modules/number/number.module:181
+#: modules/text/text.module:133
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Zulässige Werte"
+
+#: modules/number/number.module:238
+#: modules/text/text.module:157
+msgid "%name: illegal value."
+msgstr "%name: ungültiger Wert."
+
+#: modules/number/number.module:356
+#: modules/text/text.module:257
+msgid "Text field"
+msgstr "Textfeld"
+
+#: modules/text/text.module:55;202
+#: modules/userreference/userreference.module:237
+msgid "Plain text"
+msgstr "Einfacher Text"
+
+#: modules/text/text.module:197
+#: modules/userreference/userreference.module:232
+msgid "Default"
+msgstr "Standard"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/general.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.fr.po
new file mode 100644
index 0000000..047c85f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.fr.po
@@ -0,0 +1,207 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 13:24+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: content.module:1635 modules/nodereference/nodereference.module:215
+msgid "Teaser"
+msgstr "Résumé"
+
+#: content.module:1636 modules/nodereference/nodereference.module:210
+msgid "Full node"
+msgstr "Nœud complet"
+
+#: content.module:557;564;0 includes/content.crud.inc:591;629
+msgid "content"
+msgstr "contenu"
+
+#: content.module:103 modules/content_copy/content_copy.module:125
+msgid "Fields"
+msgstr "Champs"
+
+#: content.module:156 includes/content.admin.inc:528
+msgid "Add field"
+msgstr "Ajouter un champ"
+
+#: examples/example_field.php:158;388 examples/simple_field.php:332
+#: modules/text/text.module:66;209
+#: modules/userreference/userreference.module:151
+msgid "Plain text"
+msgstr "Texte simple"
+
+#: examples/example_field.php:158 modules/text/text.module:66
+msgid "Filtered text (user selects input format)"
+msgstr "Texte filtré (l'utilisateur choisit le format d'entrée)"
+
+#: examples/example_field.php:161 modules/text/text.module:69
+msgid "Text processing"
+msgstr "Traitement du texte"
+
+#: examples/example_field.php:167 examples/simple_field.php:164
+#: modules/text/text.module:75
+msgid "Maximum length"
+msgstr "Taille maximale"
+
+#: examples/example_field.php:170 examples/simple_field.php:167
+#: modules/text/text.module:78
+msgid ""
+"The maximum length of the field in characters. Leave blank for an unlimited "
+"size."
+msgstr ""
+"La taille maximale des champs, en caractères. Laisser vide pour ne pas "
+"limiter la taille."
+
+#: examples/example_field.php:174 modules/number/number.module:129
+#: modules/text/text.module:88
+msgid "Allowed values list"
+msgstr "Liste des valeurs autorisées"
+
+#: examples/example_field.php:182 includes/content.admin.inc:930
+#: modules/number/number.module:137 modules/text/text.module:96
+msgid "PHP code"
+msgstr "Code PHP"
+
+#: examples/example_field.php:188 includes/content.admin.inc:951;964
+#: modules/number/number.module:144;153 modules/text/text.module:103;112
+msgid "Code"
+msgstr "Code"
+
+#: examples/example_field.php:191 modules/number/number.module:147
+#: modules/text/text.module:106
+msgid ""
+"Advanced usage only: PHP code that returns a keyed array of allowed values. "
+"Should not include <?php ?> delimiters. If this field is filled out, "
+"the array returned by this code will override the allowed values list above."
+msgstr ""
+"Pour usage avancé seulement : code PHP fournissant un tableau par clé des "
+"valeurs autorisées. Ne doit pas inclure les délimiteurs <?php ?>. Si "
+"ce champ est rempli, le tableau renvoyé par le code prendra le pas sur la "
+"liste des valeurs autorisées apparaissant ci-dessus."
+
+#: examples/example_field.php:278 modules/number/number.module:228
+#: modules/text/text.module:160
+msgid "Illegal value for %name."
+msgstr "Valeur illégale pour le champ '%name'."
+
+#: examples/example_field.php:287 examples/simple_field.php:231
+#: modules/text/text.module:169
+msgid "%label is longer than %max characters."
+msgstr "La longueur de '%label' dépasse %max caractères."
+
+#: examples/example_field.php:383 examples/simple_field.php:327
+#: modules/text/text.module:204 modules/userreference/userreference.module:146
+msgid "Default"
+msgstr "Par défaut"
+
+#: examples/example_field.php:393 modules/text/text.module:214
+msgid "Trimmed"
+msgstr "Coupé"
+
+#: examples/example_field.php:476 examples/simple_field.php:400
+#: modules/number/number.module:342 modules/text/text.module:264
+msgid "Text field"
+msgstr "Champ texte"
+
+#: examples/example_field.php:551 examples/simple_field.php:430
+#: modules/text/text.module:324
+msgid "Rows"
+msgstr "Rangées"
+
+#: examples/example_field.php:560 examples/simple_field.php:438
+#: modules/text/text.module:333
+msgid "\"Rows\" must be a positive integer."
+msgstr "Le champ 'Rangées' doit être un entier positif."
+
+#: includes/content.admin.inc:16 modules/fieldgroup/fieldgroup.module:156
+msgid "Description"
+msgstr "Description"
+
+#: includes/content.admin.inc:148;164;790
+#: modules/fieldgroup/fieldgroup.module:236
+msgid "Remove"
+msgstr "Ôter"
+
+#: includes/content.admin.inc:201;402
+#: modules/fieldgroup/fieldgroup.module:110;363
+msgid "Save"
+msgstr "Enregistrer"
+
+#: includes/content.admin.inc:212;413;623;850
+#: modules/fieldgroup/fieldgroup.module:121
+msgid "Label"
+msgstr "Étiquette"
+
+#: includes/content.admin.inc:790 modules/fieldgroup/fieldgroup.module:236
+msgid "Cancel"
+msgstr "Annuler"
+
+#: includes/content.admin.inc:897 modules/fieldgroup/fieldgroup.module:143
+msgid "Help text"
+msgstr "Texte d'aide"
+
+#: includes/content.admin.inc:965 modules/number/number.module:154
+#: modules/text/text.module:113
+msgid "<none>"
+msgstr "<aucun>"
+
+#: includes/content.admin.inc:966 modules/number/number.module:155
+#: modules/text/text.module:114
+msgid "You're not allowed to input PHP code."
+msgstr "Vous n'êtes pas autorisé à saisir du code PHP."
+
+#: modules/fieldgroup/fieldgroup.module:293
+#: modules/nodereference/nodereference.module:544
+#: modules/userreference/userreference.module:439
+msgid "none"
+msgstr "aucun"
+
+#: modules/nodereference/nodereference.module:303
+#: modules/optionwidgets/optionwidgets.module:62
+#: modules/userreference/userreference.module:198
+msgid "Select list"
+msgstr "Liste de sélection"
+
+#: modules/nodereference/nodereference.module:311
+#: modules/userreference/userreference.module:206
+msgid "Autocomplete text field"
+msgstr "Champ texte à auto-complètement"
+
+#: modules/number/number.module:123 modules/text/text.module:82
+msgid "Allowed values"
+msgstr "Valeurs permises"
+
+#: modules/number/number.module:133 modules/text/text.module:92
+msgid ""
+"The possible values this field can contain. Enter one value per line, in the "
+"format key|label. The key is the value that will be stored in the database "
+"and it must match the field storage type, %type. The label is optional and "
+"the key will be used as the label if no label is specified.<br />Allowed "
+"HTML tags: @tags"
+msgstr ""
+"Les valeurs que ce champ peut contenir. Saisissez une valeur par ligne, au "
+"format clé|libellé. La clé est la valeur qui sera enregistrée dans la base "
+"de données et elle doit correspondre au type définit pour le champ dans la "
+"base, '%type'. Le libellé est optionnel et, si aucune valeur n'est "
+"spécifiée, la clé sera utilisée comme libellé.<br />Balises HTML "
+"autorisées : @tags"
+
+#: modules/number/number.module:155 modules/text/text.module:114
+msgid ""
+"This PHP code was set by an administrator and will override the allowed "
+"values list above."
+msgstr ""
+"Ce code PHP a été saisi par un administrateur et supplantera la liste des "
+"valeurs permises ci-dessus."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/general.pot b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.pot
new file mode 100644
index 0000000..49518c9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.pot
@@ -0,0 +1,246 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content.module,v 1.301.2.106 2009/06/02 12:24:04 yched
+#  content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched
+#  nodereference.module,v 1.138.2.55 2009/06/02 12:24:04 yched
+#  content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
+#  content.admin.inc,v 1.181.2.68 2009/06/02 14:49:07 yched
+#  content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
+#  content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
+#  fieldgroup.module,v 1.79.2.48 2009/04/29 20:51:52 karens
+#  content_field.inc,v 1.1.2.4 2009/06/02 15:05:27 yched
+#  content_handler_field.inc,v 1.1.2.15 2009/03/30 22:54:16 yched
+#  content-admin-display-overview-form.tpl.php,v 1.1.2.3 2008/10/09 20:58:26 karens
+#  number.module,v 1.91.2.35 2009/04/29 20:51:53 karens
+#  text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
+#  content.rules.inc,v 1.1.2.6 2009/04/30 09:56:07 fago
+#  content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
+#  nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
+#  content_fieldgroup.inc,v 1.1.2.1 2009/04/29 18:34:46 karens
+#  node_from_noderef.inc,v 1.1.2.1 2009/06/02 12:24:03 yched
+#  user_from_userref.inc,v 1.1.2.1 2009/06/02 12:24:04 yched
+#  userreference.module,v 1.106.2.43 2009/06/02 12:24:04 yched
+#  optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: content.module:499 modules/content_multigroup/content_multigroup.module:903
+msgid "Order"
+msgstr ""
+
+#: content.module:1857 modules/nodereference/nodereference.module:268
+msgid "Teaser"
+msgstr ""
+
+#: content.module:1861 modules/nodereference/nodereference.module:263
+msgid "Full node"
+msgstr ""
+
+#: content.module:595;602;0 includes/content.crud.inc:589;633
+msgid "content"
+msgstr ""
+
+#: includes/content.admin.inc:16 modules/content_copy/content_copy_export_form.tpl.php:11 theme/content-admin-field-overview-form.tpl.php:12
+msgid "Name"
+msgstr ""
+
+#: includes/content.admin.inc:16 modules/content_copy/content_copy_export_form.tpl.php:12 theme/content-admin-field-overview-form.tpl.php:13
+msgid "Type"
+msgstr ""
+
+#: includes/content.admin.inc:16 modules/fieldgroup/fieldgroup.module:158
+msgid "Description"
+msgstr ""
+
+#: includes/content.admin.inc:16 theme/content-admin-field-overview-form.tpl.php:14
+msgid "Operations"
+msgstr ""
+
+#: includes/content.admin.inc:171;197;895 modules/fieldgroup/fieldgroup.module:209
+msgid "Remove"
+msgstr ""
+
+#: includes/content.admin.inc:244;285;315;804;985 includes/panels/content_types/content_field.inc:97 includes/views/handlers/content_handler_field.inc:56 modules/content_copy/content_copy_export_form.tpl.php:10 modules/fieldgroup/fieldgroup.module:117 theme/content-admin-display-overview-form.tpl.php:13 theme/content-admin-field-overview-form.tpl.php:10
+msgid "Label"
+msgstr ""
+
+#: includes/content.admin.inc:344 modules/content_multigroup/content_multigroup.module:126
+msgid "Type of group."
+msgstr ""
+
+#: includes/content.admin.inc:352;677 modules/fieldgroup/fieldgroup.module:177;341
+msgid "Save"
+msgstr ""
+
+#: includes/content.admin.inc:585;633 includes/panels/content_types/content_field.inc:101 modules/content_multigroup/content_multigroup.module:352
+msgid "Above"
+msgstr ""
+
+#: includes/content.admin.inc:586 includes/panels/content_types/content_field.inc:102
+msgid "Inline"
+msgstr ""
+
+#: includes/content.admin.inc:587;614;634;642 modules/content_multigroup/content_multigroup.module:353;360
+msgid "<Hidden>"
+msgstr ""
+
+#: includes/content.admin.inc:625;668 theme/content-admin-display-overview-form.tpl.php:17
+msgid "Exclude"
+msgstr ""
+
+#: includes/content.admin.inc:895 modules/fieldgroup/fieldgroup.module:209
+msgid "Cancel"
+msgstr ""
+
+#: includes/content.admin.inc:1031 modules/fieldgroup/fieldgroup.module:145
+msgid "Help text"
+msgstr ""
+
+#: includes/content.admin.inc:1081 modules/number/number.module:123 modules/text/text.module:86
+msgid "PHP code"
+msgstr ""
+
+#: includes/content.admin.inc:1096;1109 includes/content.rules.inc:99 modules/number/number.module:130;139 modules/text/text.module:93;102
+msgid "Code"
+msgstr ""
+
+#: includes/content.admin.inc:1110 modules/number/number.module:140 modules/text/text.module:103
+msgid "<none>"
+msgstr ""
+
+#: includes/content.admin.inc:1111 modules/number/number.module:141 modules/text/text.module:104
+msgid "You're not allowed to input PHP code."
+msgstr ""
+
+#: includes/content.admin.inc:1134 modules/content_multigroup/content_multigroup.module:73
+msgid "Unlimited"
+msgstr ""
+
+#: includes/content.admin.inc:1151 modules/content_copy/content_copy.module:251
+msgid "Save field settings"
+msgstr ""
+
+#: includes/content.rules.inc:53;276 modules/nodereference/nodereference.rules.inc:45 modules/userreference/userreference.rules.inc:47 theme/content-admin-display-overview-form.tpl.php:11
+msgid "Field"
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:45 modules/fieldgroup/fieldgroup.panels.inc:31 modules/fieldgroup/panels/content_types/content_fieldgroup.inc:43 modules/nodereference/panels/relationships/node_from_noderef.inc:17 modules/userreference/panels/relationships/user_from_userref.inc:17
+msgid "Node"
+msgstr ""
+
+#: modules/content_multigroup/content_multigroup.module:356 modules/fieldgroup/fieldgroup.module:266
+msgid "none"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.panels.inc:10;27 modules/fieldgroup/panels/content_types/content_fieldgroup.inc:14
+msgid "Content fieldgroup"
+msgstr ""
+
+#: modules/fieldgroup/fieldgroup.panels.inc:112 modules/fieldgroup/panels/content_types/content_fieldgroup.inc:102
+msgid "Text to display if group has no data. Note that title will not display unless overridden."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:97 modules/userreference/userreference.module:94
+msgid "Default Views"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:100 modules/userreference/userreference.module:97
+msgid "Existing Views"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:122 modules/userreference/userreference.module:119
+msgid "View arguments"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:125 modules/userreference/userreference.module:122
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:216 modules/userreference/userreference.module:195
+msgid "%name: invalid input."
+msgstr ""
+
+#: modules/nodereference/nodereference.module:358 modules/optionwidgets/optionwidgets.module:80 modules/userreference/userreference.module:284
+msgid "Select list"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:366 modules/optionwidgets/optionwidgets.module:88 modules/userreference/userreference.module:292
+msgid "Check boxes/radio buttons"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:374 modules/userreference/userreference.module:300
+msgid "Autocomplete text field"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:429 modules/userreference/userreference.module:355
+msgid "Autocomplete matching"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:432 modules/userreference/userreference.module:358
+msgid "Starts with"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:433 modules/userreference/userreference.module:359
+msgid "Contains"
+msgstr ""
+
+#: modules/nodereference/nodereference.module:439 modules/text/text.module:317 modules/userreference/userreference.module:365
+msgid "Size of textfield"
+msgstr ""
+
+#: modules/number/number.module:109 modules/text/text.module:72
+msgid "Allowed values"
+msgstr ""
+
+#: modules/number/number.module:115 modules/text/text.module:78
+msgid "Allowed values list"
+msgstr ""
+
+#: modules/number/number.module:119 modules/text/text.module:82
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr ""
+
+#: modules/number/number.module:133 modules/text/text.module:96
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr ""
+
+#: modules/number/number.module:141 modules/text/text.module:104
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr ""
+
+#: modules/number/number.module:181 modules/text/text.module:133
+msgid "@label (!name) - Allowed values"
+msgstr ""
+
+#: modules/number/number.module:238 modules/text/text.module:157
+msgid "%name: illegal value."
+msgstr ""
+
+#: modules/number/number.module:356 modules/text/text.module:257
+msgid "Text field"
+msgstr ""
+
+#: modules/text/text.module:55;202 modules/userreference/userreference.module:237
+msgid "Plain text"
+msgstr ""
+
+#: modules/text/text.module:197 modules/userreference/userreference.module:232
+msgid "Default"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/general.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.sv.po
new file mode 100644
index 0000000..4216e68
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/general.sv.po
@@ -0,0 +1,292 @@
+# $Id$
+#
+# Swedish translation of Drupal (general)
+# Generated from files:
+#  content.module,v 1.301.2.99 2009/03/05 22:58:57 karens
+#  content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched
+#  nodereference.module,v 1.138.2.49 2009/03/01 14:40:35 yched
+#  content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
+#  content.admin.inc,v 1.181.2.64 2009/03/01 13:48:44 yched
+#  content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
+#  content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
+#  fieldgroup.module,v 1.79.2.45 2009/02/28 23:56:17 yched
+#  content.panels.inc,v 1.1.2.6 2008/11/03 14:12:41 yched
+#  content_handler_field.inc,v 1.1.2.13 2009/03/06 15:29:34 karens
+#  content-admin-display-overview-form.tpl.php,v 1.1.2.3 2008/10/09 20:58:26 karens
+#  number.module,v 1.91.2.31 2008/12/05 23:27:56 yched
+#  text.module,v 1.95.2.28 2008/12/30 00:00:54 yched
+#  content.rules.inc,v 1.1.2.4 2008/10/24 11:11:48 fago
+#  content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
+#  fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
+#  nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
+#  userreference.module,v 1.106.2.35 2009/03/01 14:40:35 yched
+#  optionwidgets.module,v 1.69.2.21 2008/10/25 02:04:44 yched
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - General 6.x\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-04-20 22:18+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: content.module:493
+#: modules/content_multigroup/content_multigroup.module:903
+msgid "Order"
+msgstr "Ordning"
+
+#: content.module:1846
+#: modules/nodereference/nodereference.module:257
+msgid "Teaser"
+msgstr "Förhandstitt"
+
+#: content.module:1850
+#: modules/nodereference/nodereference.module:252
+msgid "Full node"
+msgstr "Fullständig nod"
+
+#: content.module:589;596;0
+#: includes/content.crud.inc:589;633
+msgid "content"
+msgstr "innehåll"
+
+#: includes/content.admin.inc:16
+#: modules/content_copy/content_copy_export_form.tpl.php:11
+#: theme/content-admin-field-overview-form.tpl.php:12
+msgid "Name"
+msgstr "Namn"
+
+#: includes/content.admin.inc:16
+#: modules/content_copy/content_copy_export_form.tpl.php:12
+#: theme/content-admin-field-overview-form.tpl.php:13
+msgid "Type"
+msgstr "Typ"
+
+#: includes/content.admin.inc:16
+#: modules/fieldgroup/fieldgroup.module:152
+msgid "Description"
+msgstr "Beskrivning"
+
+#: includes/content.admin.inc:16
+#: theme/content-admin-field-overview-form.tpl.php:14
+msgid "Operations"
+msgstr "Funktioner"
+
+#: includes/content.admin.inc:171;197;888
+#: modules/fieldgroup/fieldgroup.module:203
+msgid "Remove"
+msgstr "Ta bort"
+
+#: includes/content.admin.inc:244;285;315;797;978
+#: includes/content.panels.inc:49
+#: includes/views/handlers/content_handler_field.inc:56
+#: modules/content_copy/content_copy_export_form.tpl.php:10
+#: modules/fieldgroup/fieldgroup.module:111
+#: theme/content-admin-display-overview-form.tpl.php:13
+#: theme/content-admin-field-overview-form.tpl.php:10
+msgid "Label"
+msgstr "Etikett"
+
+#: includes/content.admin.inc:344;670
+#: modules/fieldgroup/fieldgroup.module:171;335
+msgid "Save"
+msgstr "Spara"
+
+#: includes/content.admin.inc:578;626
+#: includes/content.panels.inc:53
+#: modules/content_multigroup/content_multigroup.module:352
+msgid "Above"
+msgstr "Ovanför"
+
+#: includes/content.admin.inc:580;607;627;635
+#: modules/content_multigroup/content_multigroup.module:353;360
+msgid "<Hidden>"
+msgstr "<Gömd>"
+
+#: includes/content.admin.inc:618;661
+#: theme/content-admin-display-overview-form.tpl.php:17
+msgid "Exclude"
+msgstr "Uteslut"
+
+#: includes/content.admin.inc:888
+#: modules/fieldgroup/fieldgroup.module:203
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: includes/content.admin.inc:1024
+#: modules/fieldgroup/fieldgroup.module:139
+msgid "Help text"
+msgstr "Hjälptext"
+
+#: includes/content.admin.inc:1074
+#: modules/number/number.module:120
+#: modules/text/text.module:85
+msgid "PHP code"
+msgstr "PHP-kod"
+
+#: includes/content.admin.inc:1089;1102
+#: includes/content.rules.inc:99
+#: modules/number/number.module:127;136
+#: modules/text/text.module:92;101
+msgid "Code"
+msgstr "Kod"
+
+#: includes/content.admin.inc:1103
+#: modules/number/number.module:137
+#: modules/text/text.module:102
+msgid "<none>"
+msgstr "<ingen>"
+
+#: includes/content.admin.inc:1104
+#: modules/number/number.module:138
+#: modules/text/text.module:103
+msgid "You're not allowed to input PHP code."
+msgstr "Du har inte tillåtelse att mata in PHP-kod."
+
+#: includes/content.admin.inc:1127
+#: modules/content_multigroup/content_multigroup.module:73
+msgid "Unlimited"
+msgstr "Obegränsad"
+
+#: includes/content.admin.inc:1144
+#: modules/content_copy/content_copy.module:251
+msgid "Save field settings"
+msgstr "Spara inställningar för fält"
+
+#: includes/content.panels.inc:39
+#: modules/fieldgroup/fieldgroup.panels.inc:31
+msgid "Node"
+msgstr "Nod"
+
+#: includes/content.panels.inc:40
+#: modules/fieldgroup/fieldgroup.panels.inc:32
+msgid "Node context"
+msgstr "Sammanhang för nod"
+
+#: includes/content.rules.inc:53;266
+#: modules/nodereference/nodereference.rules.inc:45
+#: modules/userreference/userreference.rules.inc:47
+#: theme/content-admin-display-overview-form.tpl.php:11
+msgid "Field"
+msgstr "Fält"
+
+#: modules/content_multigroup/content_multigroup.module:356
+#: modules/fieldgroup/fieldgroup.module:260
+msgid "none"
+msgstr "ingen"
+
+#: modules/nodereference/nodereference.module:87
+#: modules/userreference/userreference.module:84
+msgid "Default Views"
+msgstr "Förvald vy"
+
+#: modules/nodereference/nodereference.module:90
+#: modules/userreference/userreference.module:87
+msgid "Existing Views"
+msgstr "Existerande vyer"
+
+#: modules/nodereference/nodereference.module:112
+#: modules/userreference/userreference.module:109
+msgid "View arguments"
+msgstr "Argument för vy"
+
+#: modules/nodereference/nodereference.module:115
+#: modules/userreference/userreference.module:112
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Tillhandahåll en kommaseparerad lista av argument att skicka till vyn."
+
+#: modules/nodereference/nodereference.module:205
+#: modules/userreference/userreference.module:184
+msgid "%name: invalid input."
+msgstr "%name: ogiltig inmatning."
+
+#: modules/nodereference/nodereference.module:347
+#: modules/optionwidgets/optionwidgets.module:80
+#: modules/userreference/userreference.module:273
+msgid "Select list"
+msgstr "Listval"
+
+#: modules/nodereference/nodereference.module:355
+#: modules/optionwidgets/optionwidgets.module:88
+#: modules/userreference/userreference.module:281
+msgid "Check boxes/radio buttons"
+msgstr "Kryssrutor/radioknappar"
+
+#: modules/nodereference/nodereference.module:363
+#: modules/userreference/userreference.module:289
+msgid "Autocomplete text field"
+msgstr "Automatiskt kompletterande textfält"
+
+#: modules/nodereference/nodereference.module:417
+#: modules/userreference/userreference.module:343
+msgid "Autocomplete matching"
+msgstr "Automatiskt kompletterande som överensstämmer"
+
+#: modules/nodereference/nodereference.module:420
+#: modules/userreference/userreference.module:346
+msgid "Starts with"
+msgstr "Börjar med"
+
+#: modules/nodereference/nodereference.module:421
+#: modules/userreference/userreference.module:347
+msgid "Contains"
+msgstr "Innehåller"
+
+#: modules/number/number.module:106
+#: modules/text/text.module:71
+msgid "Allowed values"
+msgstr "Tillåtna värden"
+
+#: modules/number/number.module:112
+#: modules/text/text.module:77
+msgid "Allowed values list"
+msgstr "Tillåtna listvärden"
+
+#: modules/number/number.module:116
+#: modules/text/text.module:81
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr "De möjliga värdena detta fält kan innehålla. Ange ett värde per rad i formatet nyckel|etikett. Nyckeln är värdet som kommer att lagras i databasen och måste överensstämma med typen på fältet  (%type). Etiketten är valfri, och om den inte anges kommer nyckeln att anges.<br />Tillåtna HTML-taggar: @tags"
+
+#: modules/number/number.module:130
+#: modules/text/text.module:95
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Enbart avancerat användande: PHP-kod som skall returnera en spärrad lista av tillåtna värden. Skall inte inkludera avgränsarna <?php ?>. Om detta fält är ifyllt kommer listan som returneras av denna kod att åsidosätta det tillåtna värdet i listan ovan."
+
+#: modules/number/number.module:138
+#: modules/text/text.module:103
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr "Denna PHP-kod angavs av en administratör och kommer att åsidosätta det tillåtna värdet ovan."
+
+#: modules/number/number.module:178
+#: modules/text/text.module:132
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Tillåtna värden"
+
+#: modules/number/number.module:235
+#: modules/text/text.module:156
+msgid "%name: illegal value."
+msgstr "%name: otillåtet värde."
+
+#: modules/number/number.module:353
+#: modules/text/text.module:256
+msgid "Text field"
+msgstr "Textfält"
+
+#: modules/text/text.module:54;201
+#: modules/userreference/userreference.module:226
+msgid "Plain text"
+msgstr "Ren text"
+
+#: modules/text/text.module:196
+#: modules/userreference/userreference.module:221
+msgid "Default"
+msgstr "Standard"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-existing-field.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-existing-field.html
new file mode 100644
index 0000000..f12fa40
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-existing-field.html
@@ -0,0 +1,51 @@
+<!-- $Id$ -->
+<p>Die Verwendung eines Feldes über mehrere Inhaltstypen hinweg kann praktisch 
+sein, wenn ein Teil der Daten für mehrere Inhaltstypen relevant ist. Ein
+typischer Verwendungszweck ist ein ‚Telefonnummer‘-Feld, das sowohl in den 
+Inhaltstypen ‚Restaurant‘ und ‚Hotel‘ verwendet wird, auch wenn Hotels und
+Restaurants unterschiedlich genug sind eine eigene Feldliste zu verdienen und 
+damit auch ihren eigenen dedizierten Inhaltstypen.</p>
+
+<p>Sollte ein Feld zu mehr wie einem Inhaltstyp hinzugefügt worden sein, wird 
+dieses als „gemeinsam“ bezeichnet und wie „mehrere Instanzen“ betrachtet.</p>
+
+<p>Unten auf der <strong>Felder verwalten</strong>-Seite eines Inhaltstypen 
+befindet sich folgendes:</p>
+
+<img src="trans_path:add-existing-field.png">
+
+<p>Damit eine neue Instanz eines vorhandenen Feldes zu einem Inhaltstypen 
+hinzugefügt werden kann, muss die folgende Information bereitgestellt 
+werden:</p>
+<dl>
+  <dt><strong>Beschriftung:</strong></dt>
+  <dd>
+    Ein Name für das Feld. Diese wird in Eingabeformularen und bei der 
+    Anzeige von Inhalten verwendet.<br/>
+    Alle Zeichen sind zulässig, inklusive Leerzeichen, akzentuierte und 
+    nicht-europäische Zeichen.
+  </dd>
+
+  <dt><strong>Feld:</strong></dt>
+  <dd>
+    Das gemeinsame Feld.<br/>
+    Ein Feld kann nicht mehr als einmal in jedem Inhaltstypen erscheinen.
+    Deshalb werden nur Felder, die im aktuellen Inhaltstyp nicht vorhanden 
+    sind als „gemeinsam nutzbar“ vorgeschlagen. Sollte keins vorhanden sein,
+    erscheint die <strong>Vorhandes Feld hinzufügen</strong>-Option auf der 
+    <strong>Felder verwalten</strong>-Seite dieses Inhaltstypen nicht.<br/>
+    Die Auswahl eines Feldes bestückt automatisch die 
+    <strong>Beschriftung</strong> und <strong>Steuerelement</strong>-Werte mit 
+    denen der bisherigen Feldinstanz, ermöglicht aber eine Änderung vor dem 
+    Speichern des Formulars.
+  </dd>
+
+  <dt><strong>Steuerelement:</strong></dt>
+  <dd>
+    Das Formularelement das auf Inhaltsformularen zur Eingabe von Daten in 
+    dieses Feld verwendet wird: Texteingabe, Auswahlliste, etc...<br/>
+    Jeder Feldtyp hat seine eigene Liste von verfügbaren Steuerelementen. Bei 
+    der Auswahl eines gemeinsamen Feldes, wird die Liste der auszuwählenden 
+    Steuerelemente automatisch aktualisiert.
+  </dd>
+</dl>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-existing-field.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-existing-field.png
new file mode 100644
index 0000000..3c5548e
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-existing-field.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-field.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-field.html
new file mode 100644
index 0000000..1aad218
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-field.html
@@ -0,0 +1,61 @@
+<!-- $Id$ -->
+<p>Am Ende der <strong>Felder verwalten</strong>-Seite eines Inhaltstypen 
+befindet sich folgendes:</p>
+
+<img src="trans_path:add-new-field.png">
+
+<p>Um ein neues Feld zu einem Inhaltstypen hinzuzufügen, müssen die folgenden 
+Informationen angegeben werden:</p>
+<dl>
+  <dt>Beschriftung:</dt>
+  <dd>
+    Ein Name für das Feld. Diese wird in Eingabeformularen und bei der 
+    Anzeige von Inhalten verwendet.<br/>
+    Alle Zeichen sind zulässig, inklusive Leerzeichen, akzentuierte und 
+    nicht-europäische Zeichen.
+  </dd>
+
+  <dt>Feldname:</dt>
+  <dd>
+    Ein maschinenlesbarer Name für das Feld. Dieser wird intern zur 
+    Identifizierung des Feldes und Speicherung in der Datenbank verwendet.
+    Bei benutzerdefinierten Theming ist dies der zu verwendende Identifikator, 
+    um sich auf dieses Feld zu beziehen.<br/>
+    <strong>Wichtig:</strong> Der Feldname kann nicht mehr geändert werden 
+    sobald das Feld erstellt wurde.<br/>
+    Zulässige Zeichen: a-z (nicht-akzentuiert), 0-9 und der Unterstrich (_).<br/>
+    Die Länge des Feldnamen darf 32 Zeichen nicht überschreiten (inklusive dem 
+    ‚field_‘-Präfix, der automatisch hinzugefügt wird - d.h. 26 verbleibende 
+    Zeichen.
+  </dd>
+
+  <dt>Feldtyp:</dt>
+  <dd>
+    Der Datentyp der in diesem Feld gespeichert werden soll.<br/>
+    <strong>Wichtig:</strong> Der Feldtyp kann nicht mehr geändert werden 
+    sobald das Feld erstellt wurde.<br/>
+    Die verfügbaren Feldtypen hängen von den aktivierten Modulen auf der 
+    Website ab. CCK verfügt über 6 Basis-Feldtypen:
+    <ul>
+      <li>Text</li>
+      <li>Ganzzahl</li>
+      <li>Fließkommazahl</li>
+      <li>Dezimalzahl</li>
+      <li>Beitragsreferenz</li>
+      <li>Benutzerreferenz</li>
+    </ul>
+    Weitere Module können zur Verwendung anderer Feldtypen wie Datum, Dateien, 
+    Bilder... heruntergeladen werden. Nähere Information befindet sich auf der 
+    <a href="http://www.drupal.org/project/cck" target="_blank">CCK-Projekt-Seite</a> 
+    und in der <a href="http://drupal.org/project/Modules/category/88" target="_blank">vollständigen Liste der mit CCK verwandten Module</a>.
+  </dd>
+
+  <dt>Steuerelement:</dt>
+  <dd>
+    Das Formularelement das auf Inhaltsformularen zur Eingabe von Daten in 
+    dieses Feld verwendet wird: Texteingabe, Auswahlliste, etc...<br/>
+    Jeder Feldtyp hat seine eigene Liste von verfügbaren Steuerelementen. Bei 
+    der Auswahl eines Feldtyps, wird die Liste der auszuwählenden Steuerelemente 
+    automatisch aktualisiert.
+  </dd>
+</dl>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-field.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-field.png
new file mode 100644
index 0000000..82d1fa5
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-field.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-group.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-group.html
new file mode 100644
index 0000000..f17e90d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-group.html
@@ -0,0 +1,44 @@
+<!-- $Id$ -->
+<p>Feldgruppen werden verwendet, um mehrere logisch zusammenhängende Felder 
+visuell zusammenzufassen. Dies können beispielsweise mehrere Textfelder sein, 
+die unterschiedliche Teile einer ‚Adresse‘ zusammenfassen. Auf 
+Eingabeformularen und bei der Inhaltsanzeige, werden die entsprechenden Felder 
+von einem HTML-Fieldset umschlossen.</p>
+
+<img style="vertical-align:top" src="trans_path:group-node-edit-form.png">
+<img style="vertical-align:top" src="trans_path:group-node-display.png">
+
+<p>Am Ende der <strong>Felder verwalten</strong>-Seite eines Inhaltstypen 
+befindet sich folgendes:</p>
+
+<img src="trans_path:add-new-group.png">
+
+<p>Um eine neue Gruppe zu einem Inhaltstypen hinzuzufügen, müssen die folgenden 
+Informationen angegeben werden:</p>
+<dl>
+  <dt><strong>Beschriftung:</strong></dt>
+  <dd>
+    Ein Name für die Gruppe. Diese wird in Eingabeformularen und bei der 
+    Anzeige von Inhalten verwendet.<br/>
+    Alle Zeichen sind zulässig, inklusive Leerzeichen, akzentuierte und 
+    nicht-europäische Zeichen.
+  </dd>
+
+  <dt>Gruppenname:</dt>
+  <dd>
+    Ein maschinenlesbarer Name für die Gruppe. Dieser wird intern zur 
+    Identifizierung der Gruppe verwendet. Bei benutzerdefinierten Theming 
+    ist dies der zu verwendende Identifikator, um sich auf diese Gruppe zu 
+    beziehen.<br/>
+    <strong>Wichtig:</strong> Der Gruppenname kann nicht mehr geändert werden 
+    sobald die Gruppe erstellt wurde.<br/>
+    Zulässige Zeichen: a-z (nicht-akzentuiert), 0-9 und der Unterstrich (_).<br/>
+    Die Länge des Gruppennamen darf 32 Zeichen nicht überschreiten (inklusive dem 
+    ‚group_‘-Präfix, der automatisch hinzugefügt wird - d.h. 26 verbleibende 
+    Zeichen.
+  </dd>
+</dl>
+
+<p>Sobald eine Gruppe erstellt wurde, können die davon umschlossenen Felder durch die 
+<a href="topic:content/rearrange">Umordnung der Felder und Gruppen</a> 
+festgelegt werden.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-group.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-group.png
new file mode 100644
index 0000000..99ad282
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new-group.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new.png
new file mode 100644
index 0000000..fbacfe2
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add-new.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add.html
new file mode 100644
index 0000000..eed2342
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/add.html
@@ -0,0 +1,16 @@
+<!-- $Id$ -->
+<p>Mit den Formularelementen am Ende der <strong>Felder verwalten</strong>-
+Seite können Felder und Gruppen zu Inhaltstypen hinzugefügt werden.</p>
+
+<img src="trans_path:add-new.png">
+
+<p style="font-size:smaller">(Die <strong>Vorhandenes Feld hinzufügen</strong>-
+Zeile wird nur angezeigt, wenn Felder in anderen Inhaltstypen zur Verfügung
+stehen. Die <strong>Neue Gruppe hinzufügen</strong> Zeile wird nur angezeigt, 
+wenn das Feldgruppen-Modul aktiviert ist.)</p>
+<p>Die Felder und Gruppen werden durch Anklicken des <strong>Speichern</strong>-
+Buttons am Ende der Seite erstellt. Auf den nachfolgenden Seiten wird das 
+Formular mit den Einstellungen jedes hinzugefügten Feldes angezeigt.</p>
+
+<p>Weitere Details zu den erforderlichen Informationen befinden sich auf den
+folgenden Seiten:</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/content.help.ini b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/content.help.ini
new file mode 100644
index 0000000..049006f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/content.help.ini
@@ -0,0 +1,56 @@
+; $Id$
+
+[advanced help settings]
+name = CCK
+index name = "CCK (Content Construction Kit)"
+
+[manage-fields]
+title = ‚Felder verwalten‘-Reiter
+
+[add]
+title = Felder und Gruppen hinzufügen
+parent = manage-fields
+weight = 1
+
+[add-new-field]
+title = Neues Feld hinzufügen
+parent = add
+weight = 1
+
+[add-existing-field]
+title = Vorhandenes Feld hinzufügen: Ein Feld über Inhaltstypen hinweg gemeinsam nutzen
+parent = add
+weight = 2
+
+[add-new-group]
+title = Neue Gruppe hinzufügen
+parent = add
+weight = 3
+
+[rearrange]
+title = Felder und Gruppen neu anordnen
+parent = manage-fields
+weight = 2
+
+[remove]
+title = Feld aus einem Inhaltstyp entfernen
+parent = manage-fields
+weight = 3
+
+[theme]
+title = Theming von CCK-Daten in Beiträgen
+
+[theme-node-templates]
+title = Beitragsvorlagen
+parent = theme
+weight = 1
+
+[theme-field-templates]
+title = Feldvorlagen
+parent = theme
+weight = 2
+
+[theme-formatters]
+title = Theme-Funktionen für Formatierer
+parent = theme
+weight = 3
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/drag-groups.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/drag-groups.png
new file mode 100644
index 0000000..c1ba440
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/drag-groups.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/drag-new.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/drag-new.png
new file mode 100644
index 0000000..42e8b61
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/drag-new.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/group-node-display.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/group-node-display.png
new file mode 100644
index 0000000..df4eb86
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/group-node-display.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/group-node-edit-form.png b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/group-node-edit-form.png
new file mode 100644
index 0000000..0cdd2f8
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/group-node-edit-form.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/manage-fields.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/manage-fields.html
new file mode 100644
index 0000000..6a6347e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/manage-fields.html
@@ -0,0 +1,4 @@
+<!-- $Id$ -->
+<p>Diese Seite ermöglicht die Verwaltung der CCK-Felder in dem Inhaltstyp: 
+Felder und Gruppen hinzufügen, Neuanordnung der Felder, Zugriff auf ihre 
+Konfigurationsseiten und das Entfernen aus dem Inhaltstyp.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/rearrange.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/rearrange.html
new file mode 100644
index 0000000..24d41b4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/rearrange.html
@@ -0,0 +1,29 @@
+<!-- $Id$ -->
+<p>Um die Reihenfolge von einem Feld zu ändern, das Drag-and-Drop-Kreuz 
+<img src="path:draggable.png"> in der Bezeichnungsspalte anfassen und das Feld 
+an einen neuen Ort in der Liste ziehen. (Ein Drag-and-Drop-Kreuz wird 
+angefasst, indem das Kreuz-Icon angeklickt und festgehalten wird.) Die 
+Änderungen werden nicht gespeichert bis am Ende der Seite der 
+<strong>Speichern</strong>-Button gedrückt wird.</p>
+
+<p>Die festgelegte Reihenfolge wird sowohl auf Eingabeformularen (beim 
+Erstellen oder Bearbeiten eines Beitrages) als auch bei der Inhaltsanzeige
+(Anrisstext, Inhaltsseite, RSS-Einträge...) verwendet.</p>
+<p>Die Reihenfolge von nicht-CCK ‚Feldern‘ wie <strong>Titel</strong> oder 
+<strong>Dateianhängen</strong> kann auch geändert werden. In Abhängigkeit 
+des ‚Feldes‘ wird dies das Eingabeformular und/oder die Inhaltsanzeige (einige 
+dieser ‚Felder‘ werden nicht in beiden Kontexten angezeigt) beeinflussen.</p>
+<p>Sollten Gruppen in dem Inhaltstyp vorhanden sein (erfordert das Feldgruppen-
+Modul), kann ein Feld in eine Gruppe verschoben werden, indem es unterhalb der 
+Zeile dieser Gruppe gezogen wird und dann leicht nach rechts, bevor es 
+losgelassen wird. Dabei ist zu beachten, dass auch Gruppen neu angeordnet 
+aber derzeit nicht in andere Gruppen verschachtelt werden können.</p>
+
+<img src="trans_path:drag-groups.png">
+
+<p>Beim Hinzufügen eines Feldes oder einer Gruppe, können diese in der 
+angezeigten Liste von Feldern und Gruppen schon vor dem 
+<strong>Speichern</strong> an den gewünschten Ort im Inhaltstyp gezogen 
+werden:</p>
+
+<img src="trans_path:drag-new.png">
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/remove.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/remove.html
new file mode 100644
index 0000000..d640164
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/remove.html
@@ -0,0 +1,11 @@
+<!-- $Id$ -->
+<p>Sollte ein Feld aus einem Inhaltstyp entfernt werden, werden alle darin 
+enthaltenen Daten <strong>permanent</strong> gelöscht. Für diese Aktion 
+erscheint eine Rückfrage.</p>
+
+<p>Danach müssen möglicherweise die Ansichten, Pathauto-Einstellungen, etc. 
+manuell aktualisiert werden.</p>
+
+<p>Hinweis: Bei gemeinsammer Nutzung des Feldes über mehrere Inhaltstypen 
+hinweg, wird das Entfernen aus einem Inhaltstyp die Daten der anderen 
+Inhaltstypen <strong>nicht</strong> beeinflussen.</p>
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/theme-formatters.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/theme-formatters.html
new file mode 100644
index 0000000..3571bec
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/theme-formatters.html
@@ -0,0 +1,17 @@
+<!-- $Id$ -->
+<p>Formatierer werden verwendet, um die Rohdaten eines einzelnen Feldwertes in 
+HTML umzuwandeln. Der <strong>Felder anzeigen</strong>-Reiter erlaubt die 
+Auswahl eines gewünschten Formatierers für jedes der Felder.</p>
+
+<p>In CCK 2.0 für Drupal 6 durchlaufen alle Formatierer den Theme-Layer. 
+Deshalb ist das Übersteuern eines Formatierer-Themes eine weitere Möglichkeit 
+zur Anpassung der Anzeige von Werten (wobei die Änderung der 
+<span class="code">content-field.tpl.php</span> die Möglichkeit bietet das 
+HTML, dass die Werte „umschließt“ zu ändern).</p>
+
+<p>Die meisten Formatierer sind als Theme-Funktion implementiert aber einige 
+verwenden stattdessen auch Templates. Auf die eine oder andere Art können 
+diese durch die Verwendung der entsprechenden Drupal 6 Theme-Übersteuerungsmethode 
+übersteuert werden. Nähere Informationen gibt es auf der Handbuch-Seite zum 
+<a href="http://drupal.org/theme-guide">Theme-Guide für Drupal 6</a> und etwas 
+spezieller im Bereich zum <a href="http://drupal.org/node/173880">Überschreiben von themebarer Ausgabe</a>.</p>
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/theme.html b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/theme.html
new file mode 100644
index 0000000..a8312b8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/help/de/theme.html
@@ -0,0 +1,11 @@
+<!-- $Id$ -->
+<p><strong>Hinweis:</strong> Diese Anleitungen gehen davon aus, dass eine 
+gewisse Vertrautheit mit den Basis-Konzepten des Drupal6-Theming vorhanden ist.
+Nähere Informationen gibt es auf der Handbuch-Seite zum 
+<a href="http://drupal.org/theme-guide">Theme-Guide für Drupal 6</a> und etwas spezieller im 
+Bereich zum <a href="http://drupal.org/node/173880">Überschreiben von themebarer Ausgabe</a>.</p>
+
+<p>Es gibt 3 Ebenen auf denen die Daten in CCK-Feldern für die Anzeige in 
+Beiträgen angepasst werden können:</p>
+
+<img src="path:theme.png" style="border:1px solid #AAA">
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/hu.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/hu.po
new file mode 100644
index 0000000..09ef51a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/hu.po
@@ -0,0 +1,1541 @@
+# Hungarian translation of Content Construction Kit (CCK) (6.x-2.6)
+# Copyright (c) 2009 by the Hungarian translation team
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Content Construction Kit (CCK) (6.x-2.6)\n"
+"POT-Creation-Date: 2009-11-19 19:52+0000\n"
+"PO-Revision-Date: 2009-11-19 18:53+0000\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+msgid "CCK"
+msgstr "CCK"
+msgid "delete"
+msgstr "törlés"
+msgid "Prefix"
+msgstr "Előtag"
+msgid "Suffix"
+msgstr "Toldalék"
+msgid "Operations"
+msgstr "Műveletek"
+msgid "Content"
+msgstr "Tartalom"
+msgid "content"
+msgstr "tartalom"
+msgid "Type"
+msgstr "Típus"
+msgid "Cancel"
+msgstr "Mégsem"
+msgid "Remove"
+msgstr "Eltávolítás"
+msgid "Description"
+msgstr "Leírás"
+msgid "Language"
+msgstr "Nyelv"
+msgid "Block title"
+msgstr "Blokk címe"
+msgid "Taxonomy"
+msgstr "Taxonómia"
+msgid "Content types"
+msgstr "Tartalomtípusok"
+msgid "Search"
+msgstr "Keresés"
+msgid "None"
+msgstr "Nincs"
+msgid "Display settings"
+msgstr "Megjelenítési beállítások"
+msgid "This action cannot be undone."
+msgstr "A művelet nem vonható vissza."
+msgid "Number"
+msgstr "Szám"
+msgid "- None -"
+msgstr "- Nincs -"
+msgid "Weight"
+msgstr "Súly"
+msgid "Help text"
+msgstr "Súgó szöveg"
+msgid "Types"
+msgstr "Típusok"
+msgid "Required"
+msgstr "Szükséges"
+msgid "none"
+msgstr "nincs"
+msgid "Name"
+msgstr "Név"
+msgid "edit"
+msgstr "szerkesztés"
+msgid "Import"
+msgstr "Import"
+msgid "Book"
+msgstr "Könyv"
+msgid "Export"
+msgstr "Export"
+msgid "Field"
+msgstr "Mező"
+msgid "Label"
+msgstr "Címke"
+msgid "Save"
+msgstr "Mentés"
+msgid "Default"
+msgstr "Alapértelmezés"
+msgid "Add"
+msgstr "Hozzáadás"
+msgid "Format"
+msgstr "Formátum"
+msgid "Teaser"
+msgstr "Bevezető"
+msgid "Text"
+msgstr "Szöveg"
+msgid "Content type"
+msgstr "Tartalomtípus"
+msgid "Continue"
+msgstr "Folytatás"
+msgid "Configure"
+msgstr "Beállítás"
+msgid "Node"
+msgstr "Tartalom"
+msgid "Include"
+msgstr "Befoglalás"
+msgid "Exclude"
+msgstr "Kizárás"
+msgid "All"
+msgstr "Minden"
+msgid "View arguments"
+msgstr "A nézet paraméterei"
+msgid "RSS"
+msgstr "RSS"
+msgid "Inline"
+msgstr "Beágyazó"
+msgid "Delta"
+msgstr "Delta"
+msgid "Custom"
+msgstr "Egyedi"
+msgid "Poll choices"
+msgstr "Poll válaszok"
+msgid "Content field"
+msgstr "Tartalom mező"
+msgid "Field name"
+msgstr "Mező neve"
+msgid "Field type"
+msgstr "Mező típusa"
+msgid "Global settings"
+msgstr "Általános beállítások"
+msgid "Fields"
+msgstr "Mezők"
+msgid "Widget type"
+msgstr "Felületi elem típusa"
+msgid "Contains"
+msgstr "Tartalmazza"
+msgid "N/A"
+msgstr "Nincs adat"
+msgid "This field is required."
+msgstr "Szükséges mező."
+msgid "Maximum"
+msgstr "Maximum"
+msgid "Scale"
+msgstr "Felbontás"
+msgid "Plain text"
+msgstr "Egyszerű szöveg"
+msgid "Unlimited"
+msgstr "Korlátlan"
+msgid "Code"
+msgstr "Kód"
+msgid "Basic"
+msgstr "Alap"
+msgid "Filtered text (user selects input format)"
+msgstr "Formázott szöveg (a felhasználó választja ki a beviteli formát)"
+msgid "Text processing"
+msgstr "Szövegfeldolgozás"
+msgid "Maximum length"
+msgstr "Maximális hossz"
+msgid ""
+"The maximum length of the field in characters. Leave blank for an "
+"unlimited size."
+msgstr ""
+"A mező karakterben mért maximális hossza. Üresen hagyva nincs "
+"korlátozva."
+msgid "Rows"
+msgstr "Sorok"
+msgid "Existing Views"
+msgstr "Létező nézetek"
+msgid "Default Views"
+msgstr "Alapértelmezett nézetek"
+msgid "Empty text"
+msgstr "Üres szöveg"
+msgid "Order"
+msgstr "Sorrend"
+msgid "Integer"
+msgstr "Egész szám"
+msgid "Edit group"
+msgstr "Csoport szerkesztése"
+msgid "Size of textfield"
+msgstr "A szövegmező mérete"
+msgid "File attachments"
+msgstr "Csatolmányok"
+msgid "Token"
+msgstr "Vezérjel"
+msgid "Allowed values list"
+msgstr "Megengedett értékek"
+msgid "Select list"
+msgstr "Legördülő lista"
+msgid "Text field"
+msgstr "Szövegmező"
+msgid "PHP code"
+msgstr "PHP kód"
+msgid "Display fields"
+msgstr "Mezők megjelenítése"
+msgid "Poll settings"
+msgstr "Szavazás beállításai"
+msgid "Style"
+msgstr "Stílus"
+msgid "Your settings have been saved."
+msgstr "A beállítások el lettek mentve."
+msgid "Reversed"
+msgstr "Fordított"
+msgid "%type settings"
+msgstr "%type beállításai"
+msgid "Menu settings"
+msgstr "Menübeállítások"
+msgid "edit "
+msgstr "szerkesztés "
+msgid "<Hidden>"
+msgstr "< Rejtett >"
+msgid "Comment settings"
+msgstr "Hozzászólás-beküldési beállítások"
+msgid "Related content"
+msgstr "Kapcsolódó tartalom"
+msgid "Processing"
+msgstr "Feldolgozás"
+msgid "Default value"
+msgstr "Alapértelmezés szerinti érték"
+msgid "No content types available."
+msgstr "Nincs elérhető tartalomtípus."
+msgid "Simple"
+msgstr "Egyszerű"
+msgid "Above"
+msgstr "Felette"
+msgid "Number of values"
+msgstr "Értékek száma"
+msgid ""
+"Warning! Changing this setting after data has been created could "
+"result in the loss of data!"
+msgstr ""
+"Figyelem! Már létrehozott adatok esetén ezeknek a beállításoknak "
+"a megváltoztatása az adatok elvesztésével jár!"
+msgid ""
+"The content module, a required component of the Content Construction "
+"Kit (CCK), allows administrators to associate custom fields with "
+"content types. In Drupal, content types are used to define the "
+"characteristics of a post, including the title and description of the "
+"fields displayed on its add and edit pages. Using the content module "
+"(and the other helper modules included in CCK), custom fields beyond "
+"the default \"Title\" and \"Body\" may be added. CCK features are "
+"accessible through tabs on the <a href=\"@content-types\">content "
+"types administration page</a>. (See the <a href=\"@node-help\">node "
+"module help page</a> for more information about content types.)"
+msgstr ""
+"A content modul, amely egy szükséges eleme a Content Construction "
+"Kitnek (CCK), lehetővé teszi az adminisztrátorok számára, hogy "
+"egyedi mezőket rendeljenek a tartalomtípusokhoz. A Drupalban a "
+"tartalomtípus határozza meg az oldalak jellemzőit, beleértve a "
+"megjelenített mezők címét és leírását a feltöltő és "
+"szerkesztő oldalakon. A content modult (és az egyéb, CCK-ba "
+"ágyazott segítő modulokat) használva egyedi mezőket lehet adni az "
+"alapértelmezett „Cím” és „Törzs” mezők mellé. A CCK "
+"lehetőségei a <a href=\"@content-types\">tartalomtípusok "
+"adminisztrációja oldalon</a> lévő füleken elérhetők el. "
+"(További információk a tartalomtípusokról a <a "
+"href=\"@node-help\">node modul súgó oldalán</a>.)"
+msgid ""
+"When adding a custom field to a content type, you determine its type "
+"(whether it will contain text, numbers, or references to other "
+"objects) and how it will be displayed (either as a text field or area, "
+"a select box, checkbox, radio button, or autocompleting field). A "
+"field may have multiple values (i.e., a \"person\" may have multiple "
+"e-mail addresses) or a single value (i.e., an \"employee\" has a "
+"single employee identification number). As you add and edit fields, "
+"CCK automatically adjusts the structure of the database as necessary. "
+"CCK also provides a number of other features, including intelligent "
+"caching for your custom data, an import and export facility for "
+"content type definitions, and integration with other contributed "
+"modules."
+msgstr ""
+"Egy egyedi mező tartalomtípushoz adásakor meghatározható annak "
+"típusa (attól függően, hogy mit fog tartalmazni, szöveget, "
+"számot, vagy hivatkozást egyéb objektumokhoz), illetve hogyan fog "
+"megjelenni (szöveges mező vagy terület, legördülő menü, "
+"jelölő vagy kiválasztó négyzet, avagy automatikusan kiegészülő "
+"mező). Egy mezőnek lehet több értéke is (például egy "
+"„személy”-nek lehet több email címe), illetve csak egyetlen "
+"értéke (például egy „dolgozó”-nak csak egy dolgozói "
+"azonosítója van). A mező hozzáadásakor és szerkesztésekor a CCK "
+"automatikusan elkészíti az adat tárolásához szükséges "
+"szerkezetet az adatbázisban. A CCK számos egyéb lehetőséget "
+"biztosít, például az egyedi adatok intelligens gyorstárazását, a "
+"tartalomtípus meghatározások importálását és exportálását, "
+"valamint együttműködést egyéb közösségi modulokkal."
+msgid ""
+"Custom field types are provided by a set of optional modules included "
+"with CCK (each module provides a different type). The <a "
+"href=\"@modules\">modules page</a> allows you to enable or disable CCK "
+"components. A default installation of CCK includes:"
+msgstr ""
+"Az egyedi mező típusokat a CCK-ba ágyazott egyéb, kiegészítő "
+"modulok biztosítják (minden modul más típust tesz elérhetővé). "
+"A <a href=\"@modules\">modulok oldal</a> segítségével lehet be-, "
+"illetve kikapcsolni a CCK összetevőit. Egy alapértelmezett "
+"telepítés esetén a CCK az alábbiakat tartalmazza:"
+msgid ""
+"<em>number</em>, which adds numeric field types, in integer, decimal "
+"or floating point form. You may define a set of allowed inputs, or "
+"specify an allowable range of values. A variety of common formats for "
+"displaying numeric data are available."
+msgstr ""
+"<em>szám</em>, amely egy numerikus mezőtípust ad, egész, "
+"decimális, vagy lebegőpontos formában. Beállítható a megengedett "
+"értékek csoportja, vagy megadható az elfogadott érték "
+"tartományok köre. Elérhető számos közös formátum a számok "
+"megjelenítéséhez."
+msgid ""
+"<em>text</em>, which adds text field types. A text field may contain "
+"plain text only, or optionally, may use Drupal's input format filters "
+"to securely manage rich text input. Text input fields may be either a "
+"single line (text field), multiple lines (text area), or for greater "
+"input control, a select box, checkbox, or radio buttons. If desired, "
+"CCK can validate the input to a set of allowed values."
+msgstr ""
+"<em>szöveg</em>, amely szöveges mezőtípus ad. A szöveges mező "
+"tartalmazhat csak sima szöveget, vagy beállíthatóan lehet "
+"használni a Drupal bemeneti formátum szűrőit is a szövegek "
+"biztonságos kezeléséhez. A szöveges mezők lehetnek egy vagy több "
+"sorosak, illetve nagyobb bemeneti ellenőrzéshez legördülő menü, "
+"jelölő vagy kiválasztó négyzet. Ha szükséges, a CCK tudja "
+"ellenőrizni a bevitelt a megengedett értékek alapján."
+msgid ""
+"<em>nodereference</em>, which creates custom references between Drupal "
+"nodes. By adding a <em>nodereference</em> field and two different "
+"content types, for instance, you can easily create complex "
+"parent/child relationships between data (multiple \"employee\" nodes "
+"may contain a <em>nodereference</em> field linking to an \"employer\" "
+"node)."
+msgstr ""
+"<em>tartalomlhivatkozás</em>, amely egyedi hivatkozásokat hoz létre "
+"a Drupal oldalak között. Két különböző tartalomtípus között "
+"egy <em>tartalomhivatkozás</em> mező hozzáadásával könnyedén "
+"létrehozható összetett szülő-gyermek kapcsolat az adatok között "
+"(több „dolgozó” oldal tartalmaz egy <em>tartalomhivatkozás</em> "
+"mezőt, hivatkozva a „munkaadó” oldalra."
+msgid ""
+"<em>userreference</em>, which creates custom references to your sites' "
+"user accounts. By adding a <em>userreference</em> field, you can "
+"create complex relationships between your site's users and posts. To "
+"track user involvement in a post beyond Drupal's standard <em>Authored "
+"by</em> field, for instance, add a <em>userreference</em> field named "
+"\"Edited by\" to a content type to store a link to an editor's user "
+"account page."
+msgstr ""
+"<em>felhasználó hivatkozás</em>, amely egyedi hivatkozásokat hoz "
+"létre a honlap felhasználóihoz. Egy <em>felhasználó "
+"hivatkozás</em> mező hozzáadásával létrehozható összetett "
+"szülő-gyermek kapcsolat a felhasználók és az oldalak között. A "
+"tartalomtípushoz egy „Szerkesztette” <em>felhasználó "
+"hivatkozás</em> mezőt adva egy hivatkozás keletkezik a szerkesztő "
+"felhasználó profiljához, így követni lehet a felhasználó "
+"részvételét a tartalomban a Drupal alapértelmezett <em>Írta</em> "
+"mezőjén kívül is."
+msgid ""
+"<em>fieldgroup</em>, which creates collapsible fieldsets to hold a "
+"group of related fields. A fieldset may either be open or closed by "
+"default. The order of your fieldsets, and the order of fields within a "
+"fieldset, is managed via a drag-and-drop interface provided by content "
+"module."
+msgstr ""
+"<em>mezőcsoport</em>, amely egy összecsukható mezőkészletet hoz "
+"létre, és egy csoportba foglalja az összetartozó mezőket. A "
+"mezőkészlet alapértelmezése lehet nyitott, vagy zárt is. A "
+"mezőcsoportok sorrendje, valamint a csoportokon belüli mezők "
+"sorrendje fogd-és-vidd módszerrel állítható be a content "
+"modulban."
+msgid ""
+"For more information, see the online handbook entry for <a "
+"href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK "
+"project page</a>."
+msgstr ""
+"További információ a beállítási és testreszabási kézikönyv "
+"<a href=\"@handbook-cck\">CCK</a> oldalán, vagy a <a "
+"href=\"@project-cck\">CCK projekt oldalán</a> érhető el."
+msgid ""
+"Configure how this content type's fields and field labels should be "
+"displayed when it's viewed in teaser and full-page mode."
+msgstr ""
+"A tartalomtípus mezőinek és címkéinek megjelenítési "
+"beállítása, amikor megtekintik előnézeti és teljes oldal "
+"módban."
+msgid ""
+"Configure how this content type's fields should be displayed when it's "
+"rendered in the following contexts."
+msgstr ""
+"A tartalomtípus mezőinek megjelenítési beállítása, amikor meg "
+"kell jelenniük a következő környezetben."
+msgid "!title: !required"
+msgstr "!title: !required"
+msgid "Add another item"
+msgstr "Újabb elem hozzáadása"
+msgid "Full node"
+msgstr "Teljes tartalom"
+msgid "Search Index"
+msgstr "Keresés index"
+msgid "Search Result"
+msgstr "Keresés eredménye"
+msgid "Updating field type %type with module %module."
+msgstr "%type mezőtípus módosítása %module modulnál."
+msgid "Updating widget type %type with module %module."
+msgstr "%type felületi elemtípus módosítása %module modulnál."
+msgid "Manage fields"
+msgstr "Mezők kezelése"
+msgid "Remove field"
+msgstr "Mező törlése"
+msgid "Allows administrators to define new content types."
+msgstr ""
+"Lehetőséget ad az adminisztrátorok számára új tartalomtípusok "
+"meghatározására."
+msgid ""
+"Advanced usage only: PHP code that returns a keyed array of allowed "
+"values. Should not include <?php ?> delimiters. If this field is "
+"filled out, the array returned by this code will override the allowed "
+"values list above."
+msgstr ""
+"Csak haladóknak: PHP kód, ami visszaadja a megengedett értékek "
+"tömbjét. Nem szükséges <?php ?> elemek közé zárni. Ha ez "
+"a mező ki van töltve, a kód által visszaadott tömb felülír "
+"minden fentebb megadott értéket."
+msgid "Trimmed"
+msgstr "Levágva"
+msgid "Used in"
+msgstr "Ez használja"
+msgid "No fields have been defined for any content type yet."
+msgstr "Egyetlen tartalomtípushoz sincs még mező hozzárendelve."
+msgid "no styling"
+msgstr "formázás nélkül"
+msgid "simple"
+msgstr "egyszerű"
+msgid "fieldset"
+msgstr "mezőcsoport"
+msgid "fieldset - collapsible"
+msgstr "mezőcsoport - összecsukható"
+msgid "fieldset - collapsed"
+msgstr "mezőcsoport - összecsukva"
+msgid "Added field %label."
+msgstr "%label mező hozzáadva."
+msgid "There was a problem adding field %label."
+msgstr "A mező hozzáadásánál hiba történt: %label."
+msgid "There was a problem creating field %label."
+msgstr "Hiba történt a mező létrehozásakor: %label."
+msgid "Are you sure you want to remove the field %field?"
+msgstr "„%field” mező biztosan eltávolítható?"
+msgid ""
+"If you have any content left in this field, it will be lost. This "
+"action cannot be undone."
+msgstr ""
+"Ha bármilyen adatot tartalmaz ez a mező, az el fog veszni. Ezt a "
+"műveletet nem lehet visszavonni."
+msgid "Removed field %field from %type."
+msgstr "A mező törölve lett: %field (%type tartalomtípusból)."
+msgid "There was a problem deleting %field from %type."
+msgstr ""
+"Hiba történt a mező (%label) %type tartalomtípusból való "
+"törlése közben."
+msgid ""
+"These settings apply only to the %field field as it appears in the "
+"%type content type."
+msgstr ""
+"Ezek a mezőn (%field) végzett beállítások csak ebben a "
+"tartalomtípusban jelennek meg: %type."
+msgid ""
+"These settings apply to the %field field in every content type in "
+"which it appears."
+msgstr ""
+"Ezek a mezőn (%field) végzett beállítások minden olyan "
+"tartalomtípusban megjelennek, amelyben a mező megjelenik."
+msgid "Save field settings"
+msgstr "Mező beállításainak mentése"
+msgid ""
+"The default value PHP code returned an incorrect value.<br/>Expected "
+"format: <pre>!sample</pre> Returned value: @value"
+msgstr ""
+"Az alapértelmezett értéket adó PHP kód érvénytelen értéket ad "
+"vissza.<br />Elvárt formátum: <pre>!sample</pre> Visszaadott "
+"érték: @value"
+msgid "The default value is invalid."
+msgstr "Az alapértelmezett érték érvénytelen"
+msgid "Saved field %label."
+msgstr "%label mező el lett mentve."
+msgid "The update has encountered an error."
+msgstr "A frissítés során hiba történt."
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr ""
+"Az adatbázis megváltozott és az adatok átemelve vagy törölve "
+"lettek."
+msgid "An error occurred and database alteration did not complete."
+msgstr ""
+"Hiba történt és az adatbázis megváltoztatása nem fejeződött "
+"be."
+msgid "Processing %title"
+msgstr "%title feldolgozása"
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "1 elem sikeresen fel lett dolgozva:"
+msgstr[1] "@count elem sikeresen fel lett dolgozva:"
+msgid ""
+"Content fields table %old_name has been renamed to %new_name and field "
+"instances have been updated."
+msgstr ""
+"%old_name új neve %new_name a tartalom mezők táblában, és a mező "
+"előfordulási helyei frissítve lettek."
+msgid "The content fields table %name has been deleted."
+msgstr "A tartalom mezők %name táblája törölve lett."
+msgid "Referenced node ID"
+msgstr "Hivatkozott tartalom azonosítója"
+msgid "Referenced node title"
+msgstr "Hivatkozott tartalom cím"
+msgid "Raw number value"
+msgstr "Nyers szám érték"
+msgid "Formatted number value"
+msgstr "Formázott szám"
+msgid "Raw, unfiltered text"
+msgstr "Nyers, formázatlan szöveg"
+msgid "Formatted and filtered text"
+msgstr "Formázott és szűrt szöveg"
+msgid "Referenced user ID"
+msgstr "A hivatkozott felhasználó azonosítója."
+msgid "Referenced user name"
+msgstr "A hivatkozott felhasználó neve."
+msgid "Formatted HTML link to referenced user"
+msgstr "HTML hivatkozás a hivatkozott felhasználóra"
+msgid "Group multiple values"
+msgstr "Többszörös értékek csoportosítása"
+msgid "Select the content type to export."
+msgstr "Tartalomtípus kiválasztása az exporthoz."
+msgid "Export data"
+msgstr "Adatok exportálása"
+msgid ""
+"Copy the export text and paste it into another content type using the "
+"import function."
+msgstr ""
+"Az export által előállított szöveget át lehet másolni egy "
+"másik tartalomtípusba az import művelet segítségével."
+msgid ""
+"This form will import field definitions exported from another content "
+"type or another database.<br/>Note that fields cannot be duplicated "
+"within the same content type, so imported fields will be added only if "
+"they do not already exist in the selected type."
+msgstr ""
+"Ez az űrlap importálja a mező meghatározásokat, melyek egy másik "
+"tartalomtípusból, vagy egy másik adatbázisból lettek "
+"exportálva.<br>Megjegyzés: Egy tartalomtípuson belül a mezőket "
+"nem lehet többszörözni, így csak azok a mezők lesznek hozzáadva, "
+"melyek még nem szerepelnek a kiválasztott tartalomtípusban."
+msgid "<Create>"
+msgstr "< Létrehozás >"
+msgid ""
+"Select the content type to import these fields into.<br/>Select "
+"<Create> to create a new content type to contain the fields."
+msgstr ""
+"Tartalomtípus kiválasztása a mezők importálásához.<br>A "
+"<Létrehozás> segítségével új tartalomtípus jön létre, "
+"mely tartalmazni fogja a mezőket."
+msgid "Import data"
+msgstr "Adatok importálása"
+msgid "Paste the text created by a content export into this field."
+msgstr ""
+"A tartalom exportnál keletkezett szöveget kell ebbe a mezőbe "
+"illeszteni."
+msgid "The import data is not valid import text."
+msgstr "Az adat nem értelmezhető import szövegként."
+msgid ""
+"The following modules must be enabled for this import to work: "
+"%modules."
+msgstr ""
+"A következő modulokat engedélyezni kell, hogy ez az import "
+"működjön: %modules."
+msgid "The content type %type already exists in this database."
+msgstr "%type tartalomtípus már szerepel az adatbázisban."
+msgid "Exiting. No import performed."
+msgstr "Kilépés. Az importálás nem lett végrehajtva."
+msgid ""
+"An error has occurred adding the content type %type.<br/>Please check "
+"the errors displayed for more details."
+msgstr ""
+"Hiba történt a következő tartalomtípus hozzáadása közben: "
+"%type.<br />További részletek a megjelenített hibaüzenetekben."
+msgid ""
+"The imported field %field_label (%field_name) was not added to %type "
+"because that field already exists in %type."
+msgstr ""
+"%field_label (%field_name) mező már létezik, ezért az import "
+"során nem lett hozzáadva a következő tartalomtípushoz: %type."
+msgid ""
+"The field %field_label (%field_name) was added to the content type "
+"%type."
+msgstr ""
+"%field_label (%field_name) mező hozzá lett adva a következő "
+"tartalomtípushoz: %type."
+msgid ""
+"An error occurred when exporting the 'display settings' data for the "
+"field %field_name.<br/>The db error is: '%db_err'."
+msgstr ""
+"%field_name mező „Megjelenítési beállítás” adatainak "
+"exportálása közben egy hiba keletkezett. <br />Az adatbázis hiba: "
+"„%db_err”."
+msgid "Content Copy"
+msgstr "Content Copy"
+msgid "Enables ability to import/export field definitions."
+msgstr ""
+"Lehetővé teszi a meződefiníciók importálását és "
+"exportálását."
+msgid "field_name"
+msgstr "field_name"
+msgid "view "
+msgstr "nézet "
+msgid ""
+"Please <a href=\"!url\">configure your field permissions</a> "
+"immediately. All fields are inaccessible by default."
+msgstr ""
+"Érdemes azonnal <a href=\"!url\">beállítani a mezők "
+"jogosultságait</a>. Alapértelmezés szerint egyik mező sem érhető "
+"el."
+msgid "Content Permissions"
+msgstr "Content Permissions"
+msgid "Set field-level permissions for CCK fields."
+msgstr "Mezőszintű jogosultságok beállítása."
+msgid "These settings apply to the group in the node editing form."
+msgstr ""
+"Ezek a beállítások lesznek értelmezve a csoportra a "
+"tartalomszerkesztő űrlapon."
+msgid "always open"
+msgstr "mindig nyitott"
+msgid "collapsible"
+msgstr "összecsukható"
+msgid "collapsed"
+msgstr "összecsukott"
+msgid "Instructions to present to the user on the editing form."
+msgstr "Az űrlap szerkesztésekor megjelenő útmutató."
+msgid "These settings apply to the group on node display."
+msgstr ""
+"Ezek a beállítások lesznek értelmezve a csoportra a tartalom "
+"megjelenítésekor."
+msgid "A description of the group."
+msgstr "A csoport leírása."
+msgid "Are you sure you want to remove the group %label?"
+msgstr "%label csoport biztosan törölhető?"
+msgid "The group %group_name has been removed."
+msgstr "%group_name csoport törölve lett."
+msgid "Fieldgroup"
+msgstr "Mezőcsoport"
+msgid "Node reference"
+msgstr "Tartalomra hivatkozás"
+msgid "Store the ID of a related node as an integer value."
+msgstr "A hivatkozott tartalom azonosítójának tárolása egész számként."
+msgid "Content types that can be referenced"
+msgstr "Tartalomtípusok, melyekre hivatkozni lehet"
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Haladó - tartalmak, melyekre hivatkozni lehet (Nézet)"
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr ""
+"Vesszővel elválasztott lista, amely a nézetnek küldendő "
+"paramétereket tartalmazza."
+msgid "Title (link)"
+msgstr "Cím (hivatkozással)"
+msgid "Title (no link)"
+msgstr "Cím (hivatkozás nélkül)"
+msgid "Autocomplete text field"
+msgstr "Automatikusan kiegészülő szöveges mező"
+msgid "Nodereference autocomplete"
+msgstr "Automatikusan kiegészülő tartalomhivatkozás"
+msgid "Node Reference"
+msgstr "Node Reference"
+msgid "Defines a field type for referencing one node from another."
+msgstr ""
+"Olyan mezőtípust ad, amely a tartalomban egy másik tartalomra "
+"hivatkozik."
+msgid "Store a number in the database as an integer."
+msgstr "Egészként tárol számot az adatbázisban."
+msgid "Decimal"
+msgstr "Decimális"
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Rögzített tízes számot tárol az adatbázisban"
+msgid "Float"
+msgstr "Lebegőpontos"
+msgid "Store a number in the database in a floating point format."
+msgstr "Lebegőpontos számot tárol az adatbázisban."
+msgid "Minimum"
+msgstr "Minimum"
+msgid "Precision"
+msgstr "Pontosság"
+msgid ""
+"The total number of digits to store in the database, including those "
+"to the right of the decimal."
+msgstr ""
+"Az adatbázisban tárolt számjegyek teljes száma, beleértve a "
+"tizedesponttól jobbra lévő számjegyeket is."
+msgid "The number of digits to the right of the decimal."
+msgstr "A számjegyek száma."
+msgid "Decimal marker"
+msgstr "Decimális jelölő"
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "Az űrlapokon a tizedespont jelölésére használt karakter."
+msgid ""
+"Define a string that should be prefixed to the value, like $ or €. "
+"Leave blank for none. Separate singular and plural values with a pipe "
+"(pound|pounds)."
+msgstr ""
+"Egy karaktersorozat, ami az érték előtagja lehet, mint például a "
+"$ vagy az €. Ha nincs előtag, akkor üresen kell hagyni. "
+"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
+"többes számú alakot (font|fontok)."
+msgid ""
+"Define a string that should suffixed to the value, like m², m/s², "
+"kb/s. Leave blank for none. Separate singular and plural values with a "
+"pipe (pound|pounds)."
+msgstr ""
+"Egy karaktersorozat, ami az érték toldaléka lehet, mint például "
+"m², m/s², kb/s. Ha nincs toldalék, akkor üresen kell hagyni. "
+"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
+"többes számú alakot (font|fontok)."
+msgid "Allowed values"
+msgstr "Megengedett értékek"
+msgid "\"Minimum\" must be a number."
+msgstr "„Minimum”-nak számot kell megadni."
+msgid "\"Maximum\" must be a number."
+msgstr "„Maximum”-nak számot kell megadni."
+msgid "unformatted"
+msgstr "formázatlan"
+msgid "Defines numeric field types."
+msgstr "Numerikus mezőtípusokat határoz meg."
+msgid ""
+"For a 'single on/off checkbox' widget, define the 'off' value first, "
+"then the 'on' value in the <strong>Allowed values</strong> section. "
+"Note that the checkbox will be labeled with the label of the 'on' "
+"value."
+msgstr ""
+"Az „egyszerű jelölőnégyzet” felületi elemnél először a "
+"„ki”, majd a „be” állapothoz tartozó értéket kell megadni "
+"az <strong>Engedélyezett értékek</strong> részben. A "
+"jelölőnégyzet címkéje a „be” állapothoz tartozó érték "
+"címkéje lesz."
+msgid ""
+"The 'checkboxes/radio buttons' widget will display checkboxes if the "
+"multiple values option is selected for this field, otherwise radios "
+"will be displayed."
+msgstr ""
+"A „Jelölőnégyzetek/választógombok” felületi elem "
+"jelölőnégyzeteket jelenít meg, ha a mezőnek több értéke is "
+"lehet, különben választógombok jelennek meg."
+msgid "Check boxes/radio buttons"
+msgstr "Jelölőnégyzetek/választógombok"
+msgid "Single on/off checkbox"
+msgstr "Egyszerű be/ki jelölőnégyzet"
+msgid "Option Widgets"
+msgstr "Option Widgets"
+msgid ""
+"Defines selection, check box and radio button widgets for text and "
+"numeric fields."
+msgstr ""
+"A szöveg és szám mezőtípushoz legördülő lista, "
+"jelölőnégyzet és választógomb típusú felületi elemeket ad."
+msgid "Store text in the database."
+msgstr "Szöveget tárol az adatbázisban."
+msgid "Text area (multiple rows)"
+msgstr "Szövegdoboz (többsoros)"
+msgid "Defines simple text field types."
+msgstr "Egyszerű szöveges mező típusokat határoz meg."
+msgid "User reference"
+msgstr "Hivatkozás felhasználóra"
+msgid "Store the ID of a related user as an integer value."
+msgstr ""
+"A hivatkozott felhasználó azonosítójának tárolása egész "
+"számként."
+msgid "User roles that can be referenced"
+msgstr "Felhasználói csoport, amelyre hivatkozni lehet"
+msgid "User status that can be referenced"
+msgstr "Felhasználói állapot, amelyre hivatkozni lehet"
+msgid "Reverse link"
+msgstr "Visszamutató hivatkozás"
+msgid ""
+"If selected, a reverse link back to the referencing node will "
+"displayed on the referenced user record."
+msgstr ""
+"Ha be van jelölve, akkor a felhasználó adatlapján egy hivatkozás "
+"visszamutat a hivatkozó tartalomra."
+msgid "Userreference autocomplete"
+msgstr "Felhasználóhivatkozás automatikus kiegészítéssel"
+msgid "User Reference"
+msgstr "User Reference"
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Olyan mezőtípus, amely a tartalomban egy felhasználóra hivatkozik."
+msgid "All users"
+msgstr "Minden felhasználó"
+msgid "Active users"
+msgstr "Aktív felhasználók"
+msgid "Print"
+msgstr "Nyomtatás"
+msgid "Locked"
+msgstr "Zárolt"
+msgid ""
+"Instructions to present to the user below this field on the editing "
+"form.<br />Allowed HTML tags: @tags"
+msgstr ""
+"A felhasználók számára az űrlap szerkesztéskor a mező alatt "
+"megjelenő útmutató.<br />Megengedett HTML elemek: @tags"
+msgid "<none>"
+msgstr "<nincs>"
+msgid "You're not allowed to input PHP code."
+msgstr "Nem engedélyezett a PHP kód bevitele."
+msgid ""
+"This PHP code was set by an administrator and will override any value "
+"specified above."
+msgstr ""
+"Ezt a PHP kódot egy adminisztrátor állította be, és ez felül fog "
+"írni minden fentebb megadott értéket."
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr ""
+"PHP alapú bevitel használata a mező beállításaihoz. (Veszélyes "
+"– engedélyezésével körültekintően kell eljárni!)"
+msgid "A file has been pre-loaded for import."
+msgstr "A fájl előzetesen be lett töltve az importhoz."
+msgid "Content fieldgroup"
+msgstr "Tartalom mezőcsoport"
+msgid ""
+"Text to display if group has no data. Note that title will not display "
+"unless overridden."
+msgstr ""
+"Megjelenítendő szöveg, ha a csoportnak nincs adata. A cím nem "
+"jelenik meg, ha nincs felülírva."
+msgid "Node from reference"
+msgstr "Tartalom a hivatkozásból"
+msgid ""
+"Adds a node from a node reference in a node context; if multiple nodes "
+"are referenced, this will get the first referenced node only."
+msgstr ""
+"Hozzáad egy tartalmat a tartalom hivatkozásból a tartalom "
+"környezetben. Ha több tartalom van hivatkozva, csak az első "
+"hivatkozott tartalmat fogja venni."
+msgid "Node reference field"
+msgstr "Tartalom hivatkozás mező"
+msgid ""
+"The possible values this field can contain. Enter one value per line, "
+"in the format key|label. The key is the value that will be stored in "
+"the database, and it must match the field storage type (%type). The "
+"label is optional, and the key will be used as the label if no label "
+"is specified.<br />Allowed HTML tags: @tags"
+msgstr ""
+"A mező lehetséges értékei. Egy sorban egy értéket lehet megadni "
+"kulcs|címke formában. A kulcs értéke kerül az adatbázisba, és "
+"ennek meg kell felelnie az adatbázisban tárolt típussal (%type). A "
+"címke megadása nem kötelező, ha nincs megadva, akkor a kulcs lesz "
+"a címke.<br />Az engedélyezett HTML elemek: @tags"
+msgid ""
+"This PHP code was set by an administrator and will override the "
+"allowed values list above."
+msgstr ""
+"Ezt a PHP kódot egy adminisztrátor állította be, és felül fogja "
+"írni a fentebb megadott elfogadható értékek listáját."
+msgid "User from reference"
+msgstr "Felhasználó a hivatkozásból"
+msgid ""
+"Adds a user from a user reference in a node context; if multiple users "
+"are referenced, this will get the first referenced user only."
+msgstr ""
+"Hozzáad egy felhasználót a felhasználó hivatkozásból a tartalom "
+"környezetben. Ha több felhasználó van hivatkozva, csak az első "
+"hivatkozott felhasználót fogja venni."
+msgid "User reference field"
+msgstr "Felhasználó hivatkozás mező"
+msgid "Show @count value(s)"
+msgstr "@count értéket mutat"
+msgid "starting from @count"
+msgstr "@count értékről kezdve"
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - engedélyezett értékek"
+msgid "%name: illegal value."
+msgstr "%name: érvénytelen érték."
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: az érték nem lehet hosszabb %max karakternél."
+msgid "Autocomplete matching"
+msgstr "Automatikus kiegészítés módja"
+msgid "Starts with"
+msgstr "Ezzel kezdődik"
+msgid "Load a referenced user"
+msgstr "Egy hivatkozott felhasználó betöltése"
+msgid "Content containing the user reference field"
+msgstr "A felhasználóhivatkozás mező tartalma"
+msgid "Referenced user"
+msgstr "Hivatkozott felhasználó"
+msgid "Load a referenced node"
+msgstr "Egy hivatkozott tartalom betöltése"
+msgid "Content containing the node reference field"
+msgstr "A tartalom, amely a hivatkozó mezőt tartalmazza"
+msgid "Referenced content"
+msgstr "Hivatkozott tartalom"
+msgid "Populate a field"
+msgstr "Egy mező feltöltése"
+msgid "Select the machine-name of the field."
+msgstr "A mező programok által kezelt nevének kiválasztása."
+msgid "Revision information"
+msgstr "Változatinformáció"
+msgid ""
+"Select the method used to collect autocomplete suggestions. Note that "
+"<em>Contains</em> can cause performance issues on sites with thousands "
+"of users."
+msgstr ""
+"Az automatikus kiegészítés ajánlási módjának kiválasztása. "
+"Megjegyzendő, hogy a <em>Tartalmazza</em> lehetőség kiválasztása "
+"teljesítmény problémákat okozhat olyan webhelyeken, melyek sokezer "
+"tartalommal rendelkeznek."
+msgid "View used to select the nodes"
+msgstr "Nézet használata a tartalmak kiválasztásához"
+msgid "%name: this post can't be referenced."
+msgstr "%name: erre a tartalomra nem lehet hivatkozni."
+msgid "Node module form."
+msgstr "<em>Node</em> modul űrlapja."
+msgid "Locale module form."
+msgstr "<em>Locale</em> modul űrlapja."
+msgid "Taxonomy module form."
+msgstr "<em>Taxonomy</em> modul űrlapja."
+msgid "Poll title"
+msgstr "Poll cím"
+msgid "%name: this field cannot hold more than @count values."
+msgstr "%name: ez a mező nem tartalmazhat több, mint @count értéket."
+msgid "'@column' => value for @column"
+msgstr "„@column” => @column értéke"
+msgid ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgstr ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // Itt gyakran vége is van. Több értéket is meg lehet adni\n"
+"  // ha az „alapértelmezett értéknek” több értéke is "
+"lehet:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgid ""
+"Create a list of options as a list in <strong>Allowed values "
+"list</strong> or as an array in PHP code. These values will be the "
+"same for %field in all content types."
+msgstr ""
+"A választható értékek megadása az <strong>Engedélyezett "
+"értékek</strong> mezőben, vagy egy PHP kóddal előállított "
+"tömbben. Erre a mezőre (%field) vonatkozóan ezek az értékek "
+"minden tartalomtípusnál megegyeznek."
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Ki kell tölteni a „Megengedett értékek”-et ennél a mezőnél."
+msgid "Change basic information"
+msgstr "Alapadatok megváltoztatása"
+msgid "Fieldset"
+msgstr "Mezőcsoport"
+msgid "Translation settings"
+msgstr "Fordítási beállítások"
+msgid ""
+"Select the method used to collect autocomplete suggestions. Note that "
+"<em>Contains</em> can cause performance issues on sites with thousands "
+"of nodes."
+msgstr ""
+"Az automatikus kiegészítés ajánlási módjának kiválasztása. "
+"Megjegyzendő, hogy a <em>Tartalmazza</em> lehetőség kiválasztása "
+"teljesítmény problémákat okozhat olyan webhelyeken, melyek sokezer "
+"tartalommal rendelkeznek."
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: a cím nem egyezik."
+msgid "Path settings"
+msgstr "Útvonal beállítások"
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: az érték nem lehet kisebb ennél: %min."
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: az érték nem lehet nagyobb ennél: %max."
+msgid "%name: found no valid user with that name."
+msgstr "%name: nincs érvényes felhasználó evvel a névvel."
+msgid "Field label"
+msgstr "Mező cimkéje"
+msgid "Form settings"
+msgstr "Űrlap beállításai"
+msgid "Type of group."
+msgstr "A csoport típusa."
+msgid ""
+"If unchecked, each item in the field will create a new row, which may "
+"appear to cause duplicates. This setting is not compatible with "
+"click-sorting in table displays."
+msgstr ""
+"Ha nincs bejelölve, akkor minden elem a mezőben új sort hoz létre, "
+"mely duplikációk megjelenését okozhatja. Ez a beállítás nem "
+"fér össze a kattintásos rendezéssel a táblázatos megjelenésben."
+msgid ""
+"Some updates are still pending. Please return to <a "
+"href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr ""
+"Néhány frissítés még függőben van. Vissza kell térni az <a "
+"href=\"@update-php\">update.php</a> oldalra és a fennmaradó "
+"frissítéseket le kell futtatni."
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr ""
+"Néhány frissítés még függőben van.<br />A frissítő programot "
+"újra kell futtatni."
+msgid "Comment module form."
+msgstr "<em>Comment</em> modul űrlapja."
+msgid "Translation module form."
+msgstr "<em>Translation</em> modul űrlapja."
+msgid "Menu module form."
+msgstr "<em>Menu</em> modul űrlapja."
+msgid "Book module form."
+msgstr "<em>Book</em> modul űrlapja."
+msgid "Path module form."
+msgstr "<em>Path</em> modul űrlapja."
+msgid "Poll module title."
+msgstr "Poll modul cím."
+msgid "Poll module choices."
+msgstr "Poll modul válaszok"
+msgid "Poll module settings."
+msgstr "Poll modul beállítások"
+msgid "Upload module form."
+msgstr "<em>Upload</em> modul űrlapja."
+msgid ""
+"Updates for CCK-related modules are not run until the modules are "
+"enabled on the <a href=\"@admin-modules-path\">administer modules "
+"page</a>. When you enable them, you'll need to return to <a "
+"href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr ""
+"A <em>CCK</em> modulokhoz kapcsolódó frissítések addig nem futnak, "
+"amíg a modulok nincsenek engedélyezve a <a "
+"href=\"@admin-modules-path\">modulok adminisztrációs oldalán</a>. "
+"Az engedélyezés után vissza kell térni az <a "
+"href=\"@update-php\">update.php</a> oldalra és a maradék "
+"frissítéseket le kell futtatni."
+msgid ""
+"!module.module has updates but cannot be updated because "
+"content.module is not enabled.<br />If and when content.module is "
+"enabled, you will need to re-run the update script. You will continue "
+"to see this message until the module is enabled and updates are run."
+msgstr ""
+"!module modulnak vannak frissítései, de nem lehet frissíteni mert a "
+"content modul nincs engedélyezve.<br />Ha a content modul "
+"engedélyezetté válik, akkor újra kell futtatni a frissítési "
+"programot. Folyamatosan ez az üzenet fog megjelenni, amíg a modul "
+"nem engedélyezett, és a frissítések futnak."
+msgid ""
+"!module.module has updates and is available in the modules folder but "
+"is not enabled.<br />If and when it is enabled, you will need to "
+"re-run the update script. You will continue to see this message until "
+"the module is enabled and updates are run."
+msgstr ""
+"!module modulnak vannak frissítései, mely elérhető a modul "
+"könytárában, de az nem engedélyezett.<br />Ha a modul "
+"engedélyezetté válik, akkor újra kell futtatni a frissítési "
+"programot. Folyamatosan ez az üzenet fog megjelenni, amíg a modul "
+"nem engedélyezett, és a frissítések futnak."
+msgid "CCK - No Views integration"
+msgstr "CCK - Views-illesztés nélkül"
+msgid ""
+"CCK integration with Views module requires Views 6.x-2.0-rc2 or "
+"greater."
+msgstr ""
+"CCK-Views illesztéssel, mely annak 6.x-2.0-rc2 vagy újabb "
+"változatát igényli."
+msgid "manage fields"
+msgstr "mezők szerkesztése"
+msgid "» Add a new content type"
+msgstr "» Új tartalomtípus hozzáadása"
+msgid "@field_name (Locked)"
+msgstr "@field_name (Zárolt)"
+msgid ""
+"This content type has inactive fields. Inactive fields are not "
+"included in lists of available fields until their modules are enabled."
+msgstr ""
+"Ebben a tartalomtípusban inaktív mezők vannak. Az inaktív mezők "
+"nem lesznek benne az elérhető mezők listájában mindaddig, amíg a "
+"számukra szükséges modulok nincsenek engedélyezve."
+msgid ""
+"!field (!field_name) is an inactive !field_type field that uses a "
+"!widget_type widget."
+msgstr ""
+"!field (!field_name) egy inaktív !field_type mező, ami !widget_type "
+"felületi elemet használ."
+msgid "- Select a field type -"
+msgstr "- Mezőtípus kiválasztása -"
+msgid "- Select a widget -"
+msgstr "- Felületi elem kiválasztása -"
+msgid "Field name (a-z, 0-9, _)"
+msgstr "Mező neve (a-z, 0-9, _)"
+msgid "Type of data to store."
+msgstr "A tárolandó adat típusa."
+msgid "Form element to edit the data."
+msgstr "Ürlap elem az adat szerkesztéséhez."
+msgid "- Select an existing field -"
+msgstr "- Létező mező kiválasztása -"
+msgid "Field to share"
+msgstr "Mező megosztása"
+msgid "Group name (a-z, 0-9, _)"
+msgstr "Csoport neve (a-z, 0-9, _)"
+msgid "Add new field: you need to provide a label."
+msgstr "Új mező hozzáadása: meg kell adni egy címkét."
+msgid "Add new field: you need to provide a field name."
+msgstr "Új mező hozzáadása: meg kell adni egy mezőnevet."
+msgid ""
+"Add new field: the field name %field_name is invalid. The name must "
+"include only lowercase unaccentuated letters, numbers, and "
+"underscores."
+msgstr ""
+"Új mező hozzáadása: %field_name mezőnév érvénytelen. A név "
+"csak ékezet nélküli kisbetűket, számokat és aláhúzásjeleket "
+"tartalmazhat."
+msgid ""
+"Add new field: the field name %field_name is too long. The name is "
+"limited to 32 characters, including the 'field_' prefix."
+msgstr ""
+"Új mező hozzáadása: a %field_name mezőnév túl hosszú. A név "
+"csak 32 karakter hosszú lehet, beleértve a „field_” előtagot "
+"is."
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr "Új mező hozzáadása: a „field_instance” egy fenntartott név."
+msgid "Add new field: the field name %field_name already exists."
+msgstr "Új mező hozzáadása: %field_name nevű mező már létezik."
+msgid "Add new field: you need to select a field type."
+msgstr "Új mező hozzáadása: ki kell választani egy mezőtípust."
+msgid "Add new field: you need to select a widget."
+msgstr "Új mező hozzáadása: ki kell választani egy felületi elemet."
+msgid "Add new field: invalid widget."
+msgstr "Új mező hozzáadása: érvénytelen felületi elem."
+msgid "Add existing field: you need to provide a label."
+msgstr "Létező mező hozzáadása: meg kell adni egy címkét."
+msgid "Add existing field: you need to select a field."
+msgstr "Létező mező hozzáadása: ki kell választani egy mezőt."
+msgid "Add existing field: you need to select a widget."
+msgstr "Létező mező hozzáadása: ki kell választani egy felületi elemet."
+msgid "Add existing field: invalid widget."
+msgstr "Létező mező hozzáadása: érvénytelen felületi elem."
+msgid ""
+"The field %label cannot be added to a content type because it is "
+"locked."
+msgstr "%label mezőt nem lehet egy tartalomtípushoz sem adni, mert zárolt."
+msgid ""
+"There are no fields configured for this content type. You can add new "
+"fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr ""
+"Nincsenek mezők beállítva ebben a tartalomtípusban. Új mezőket "
+"hozzáadni a <a href=\"@link\">Mezők kezelése</a> oldalon lehet."
+msgid "@type: @field (@label)"
+msgstr "@type: @field (@label)"
+msgid "Edit basic information"
+msgstr "Alapadatok szerkesztése"
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr ""
+"A mező programok által kezelt neve. Ezt a nevet nem lehet "
+"megváltoztatni."
+msgid ""
+"A human-readable name to be used as the label for this field in the "
+"%type content type."
+msgstr ""
+"Az emberek számára olvasható név, mint a mező címkéje lesz "
+"felhasználva a %type tartalomtípusban."
+msgid ""
+"The type of data you would like to store in the database with this "
+"field. This option cannot be changed."
+msgstr ""
+"A mezőben megadott adat tárolásához szükséges típus az "
+"adatbázisban. Ezt a beállítást nem lehet megváltoztatni."
+msgid ""
+"The type of form element you would like to present to the user when "
+"creating this field in the %type content type."
+msgstr ""
+"Az űrlapelem típusa, amely megjeleníti ezt a mezőt a felhasználó "
+"számára ebben a tartalomtípusban: %type."
+msgid "Updated basic settings for field %label."
+msgstr "%label mező alapvető értékei módosultak."
+msgid "There was a problem updating the basic settings for field %label."
+msgstr ""
+"Hiba történt a mező (%label) alapvető értékeinek módosítása "
+"közben."
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr "Ez a mező <strong>zárolva van</strong>, és nem lehet törölni."
+msgid "The field %field is locked and cannot be edited."
+msgstr "%field mező zárolva van és nem szerkeszthető."
+msgid "%type basic information"
+msgstr "%type alapvető információ"
+msgid ""
+"Advanced usage only: PHP code that returns a default value. Should not "
+"include <?php ?> delimiters. If this field is filled out, the "
+"value returned by this code will override any value specified above. "
+"Expected format: <pre>!sample</pre>To figure out the expected format, "
+"you can use the <em>devel load</em> tab provided by <a "
+"href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr ""
+"Csak haladóknak: PHP kód, ami visszaadja az alapértelmezett "
+"értéket. Nem szükséges <?php ?> elemek közé zárni. Ha ez "
+"a mező ki van töltve, a kód által visszaadott érték felülír "
+"minden fentebb megadott értéket. Az elvárt formátum: "
+"<pre>!sample</pre>Az elvárt formátum megértéséhez használható a "
+"<em>devel betöltés</em> fül, melyet a <a href=\"@link_devel\">devel "
+"modul</a> szolgáltat az ilyen típusú oldalakon: %type."
+msgid "Maximum number of values users can enter for this field."
+msgstr ""
+"A felhasználók által a mezőbe írható értékek maximális "
+"száma."
+msgid ""
+"'Unlimited' will provide an 'Add more' button so the users can add as "
+"many values as they like."
+msgstr ""
+"„Korlátlan” esetén a felhasználóknak megjelenik egy „Újabb "
+"elem hozzáadása” nyomógomb, amellyel annyi értéket adhatnak "
+"hozzá, amennyit csak akarnak."
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr ""
+"Az „alapértelmezett értéket” adó PHP kód ezt az értéket "
+"adta vissza, ami érvénytelen: @value."
+msgid "%name must be an integer."
+msgstr "%name értékének egésznek kell lennie."
+msgid "%name must be a positive integer."
+msgstr "%name értékének pozitív egésznek kell lennie."
+msgid "%name must be a number."
+msgstr "%name értékének számnak kell lennie."
+msgid ""
+"You should make sure that the used field exists in the given content "
+"type."
+msgstr ""
+"Meg kell győződni arról, hogy a használt mező létezik-e már az "
+"adott tartalomtípusban."
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr "Haladó: a mezők értékének beállítása PHP kóddal"
+msgid ""
+"Advanced usage only: PHP code that returns the value to set. Should "
+"not include <?php ?> delimiters. If this field is filled out, "
+"the value returned by this code will override any value specified "
+"above. Expected format: <pre>!sample</pre>Using <a "
+"href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content "
+"page might help you figure out the expected format."
+msgstr ""
+"Csak haladóknak: PHP kód, ami visszaadja a beállítandó értéket. "
+"Nem szükséges <?php ?> elemek közé zárni. Ha ez a mező ki "
+"van töltve, a kód által visszaadott érték felülír minden "
+"fentebb megadott értéket. Az elvárt formátum: <pre>!sample</pre>Az "
+"elvárt formátum megértéséhez használható a <em>devel "
+"betöltés</em> fül, melyet a <a href=\"@link_devel\">devel modul</a> "
+"szolgáltat a tartalom oldalakon."
+msgid "You have to return the default value in the expected format."
+msgstr ""
+"Vissza kell adni az alapértelmezett értéket az elvárt "
+"formátumban."
+msgid "Populate @node's field '@field'"
+msgstr "@node @field mezejének felhasználása"
+msgid "Field has value"
+msgstr "A mezőnek van értéke"
+msgid ""
+"You should make sure that the used field exists in the given content "
+"type. The condition returns TRUE, if the selected field has the given "
+"value."
+msgstr ""
+"Meg kell győződni arról, hogy a használt mező létezik az adott "
+"tartalomtípusban. A feltétel igaz értéket ad vissza, ha a "
+"kiválasztott mezőnek az értéke egyezik a megadott értékkel."
+msgid "Field has changed"
+msgstr "A mező megváltozott"
+msgid "Content containing changes"
+msgstr "A tartalom változásokat tartalmaz"
+msgid "Content not containing changes"
+msgstr "A tartalom nem tartalmaz változásokat"
+msgid "@node's field '@field' has value"
+msgstr "@node @field mezejének van értéke"
+msgid "Select the machine-name of the field to look at."
+msgstr ""
+"A programok által kezelt név kiválasztása a mezőhöz, melyet "
+"figyel."
+msgid "@node's field '@field' has been changed"
+msgstr "@node @field mezeje megváltozott"
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr ""
+"A hivatkozott tartalom szűretlen címe. Figyelem - nyers "
+"felhasználói bevitel."
+msgid "Formatted html link to the referenced node."
+msgstr "Formázott html hivatkozás a hivatkozott tartalomhoz."
+msgid "Relative path alias to the referenced node."
+msgstr "Relatív útvonal álnév a hivatkozott tartalomhoz."
+msgid "Absolute path alias to the referenced node."
+msgstr "Teljes útvonal álnév a hivatkozott tartalomhoz."
+msgid "Relative path alias to the referenced user."
+msgstr "Relatív útvonal álnév a hivatkozott felhasználóhoz."
+msgid "Absolute path alias to the referenced user."
+msgstr "Teljes útvonal álnév a hivatkozott felhasználóhoz."
+msgid "Field: @widget_label (@field_name) - @field_type"
+msgstr "Mező: @widget_label (@field_name) - @field_type"
+msgid "Field on the referenced node."
+msgstr "Mező a hivatkozott tartalmon."
+msgid ""
+"Configure how the label is going to be displayed. This option takes no "
+"effect when \"Override title\" option is enabled, the specified block "
+"title is displayed instead."
+msgstr ""
+"A címke megjelenítési módjának beállítása. A beállítás "
+"hatástalan, ha a „Cím felülírása” engedélyezett, helyette a "
+"megadott blokk címe lesz megjelenítve."
+msgid "Field formatter"
+msgstr "Mező formázó"
+msgid "Select a formatter."
+msgstr "Formázó kiválasztása."
+msgid "\"@s\" field: @widget_label (@field_name) - @field_type"
+msgstr "„@s” mező: @widget_label (@field_name) - @field_type"
+msgid "@label (!name)"
+msgstr "@label (!name)"
+msgid "@label (!name) - !column"
+msgstr "@label (!name) - !column"
+msgid "@label-truncated - !column"
+msgstr "@label-truncated - !column"
+msgid "Appears in: @types"
+msgstr "Ez használja: @types"
+msgid "<No value>"
+msgstr "< Nincs érték >"
+msgid "Widget label (@label)"
+msgstr "Felületi elem cimke (@label)"
+msgid "Custom label"
+msgstr "Egyedi cimke"
+msgid "(first item is 0)"
+msgstr "(az első elem 0)"
+msgid "(start from last values)"
+msgstr "(kezdés az utolsó értéktől)"
+msgid ""
+"The delta allows you to select which item in a multiple value field to "
+"key the relationship off of. Select \"1\" to use the first item, \"2\" "
+"for the second item, and so on. If you select \"All\", each item in "
+"the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+"A delta lehetőséget ad annak kiválasztására, hogy a több "
+"értékű mező melyik eleme legyen a kulcs a kapcsolatban. Az „1” "
+"kiválasztása az első használja, a „2” a másodikat, és így "
+"tovább. Ha a „Mind” van kiválasztva, akkor a mező minden eleme "
+"új sort hoz létre, mely többszörös megjelenést okozhat."
+msgid ""
+"The delta allows you to select which item in a multiple value field "
+"will be used for sorting. Select \"1\" to use the first item, \"2\" "
+"for the second item, and so on. If you select \"All\", each item in "
+"the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+"A delta lehetőséget ad annak kiválasztására, hogy a több "
+"értékű mező melyik eleme legyen a kulcs a kapcsolatban. Az „1” "
+"kiválasztása az első használja, a „2” a másodikat, és így "
+"tovább. Ha a „Mind” van kiválasztva, akkor a mező minden eleme "
+"új sort hoz létre, mely többszörös megjelenést okozhat."
+msgid "You need to provide a label."
+msgstr "Meg kell adni egy címkét."
+msgid "You need to provide a group name."
+msgstr "Meg kell adni a csoport nevét."
+msgid ""
+"The group name %group_name is invalid. The name must include only "
+"lowercase unaccentuated letters, numbers, and underscores."
+msgstr ""
+"%group_name csoportnév érvénytelen. A név csak ékezet nélküli "
+"kisbetűket, számokat és aláhúzásjeleket tartalmazhat."
+msgid ""
+"The group name %group_name is too long. The name is limited to 32 "
+"characters, including the 'group_' prefix."
+msgstr ""
+"%group_name csoportnév túl hosszú. A név csak 32 karakter hosszú "
+"lehet, beleértve a „group_” előtagot is."
+msgid "The group name %group_name already exists."
+msgstr "%group_name nevű csoport már létezik."
+msgid "Add new group:"
+msgstr "Új csoport hozzáadása:"
+msgid "Add new group: you need to provide a label."
+msgstr "Új csoport hozzáadása: meg kell adni egy címkét."
+msgid "Add new group: you need to provide a group name."
+msgstr "Új csoport hozzáadása: meg kell adni a csoport nevét."
+msgid "Standard group"
+msgstr "Egyszerű csoport"
+msgid "Create display groups for CCK fields."
+msgstr "Csoportokat hoz létre a CCK mezők számára."
+msgid "Field group: @group in @type"
+msgstr "Mezőcsoport: @group @type típusban"
+msgid "All fields from this field group on the referenced node."
+msgstr ""
+"A hivatkozott tartalom ezen mezőcsoportjában található összes "
+"mező."
+msgid "Field group label"
+msgstr "Mezőcsoport címkéje"
+msgid ""
+"Configure how the field group label is going to be displayed. This "
+"option takes no effect when \"Override title\" option is enabled, the "
+"specified block title is displayed instead."
+msgstr ""
+"A mezőcsoport címke megjelenítési módjának beállítása. A "
+"beállítás hatástalan, ha a „Cím felülírása” "
+"engedélyezett, helyette a megadott blokk címe lesz látható."
+msgid "Fieldset - Collapsible"
+msgstr "Mezőcsoport - Összecsukható"
+msgid "Fieldset - Collapsed"
+msgstr "Mezőcsoport - Összecsukott"
+msgid "Field group format"
+msgstr "Mezőcsoport formátum"
+msgid "This option allows you to configure the field group format."
+msgstr "Lehetővé teszi a mezőcsoport formátumának beállítását."
+msgid "\"@s\" field group: @group in @type"
+msgstr "„@s” mezőcsoport: @group @type típusban"
+msgid ""
+"Note that if the field has multiple values, only the first content "
+"node will be loaded."
+msgstr ""
+"Megjegyzés: Ha a mezőnek több értéke is lehet, akkor csak az "
+"első tartalom fog betöltődni."
+msgid "There are no nodereference fields defined."
+msgstr "Nincsenek tartalomra hivatkozó mezők meghatározva."
+msgid ""
+"<p>Choose the \"Views module\" view that selects the nodes that can be "
+"referenced.<br />Note:</p>"
+msgstr ""
+"<p>Meg kell adni azt a <em>Views</em> nézetet, amely kiválasztja "
+"azokat a tartalmakat, melyekre hivatkozni lehet.<br />Megjegyzés:</p>"
+msgid ""
+"<ul><li>Only views that have fields will work for this "
+"purpose.</li><li>This will discard the \"Content types\" settings "
+"above. Use the view's \"filters\" section instead.</li><li>Use the "
+"view's \"fields\" section to display additional informations about "
+"candidate nodes on node creation/edition form.</li><li>Use the view's "
+"\"sort criteria\" section to determine the order in which candidate "
+"nodes will be displayed.</li></ul>"
+msgstr ""
+"<ul><li>Ebben az esetben csak azok a nézetek működnek, melyek "
+"mezőkkel rendelkeznek.</li><li>Ez felülbírálja a fentebb megadott "
+"„tartalomtípus” beállításokat. A nézet „szűrők” része "
+"használható helyette.</li><li>A nézet „mezők” részének "
+"használatával további információkat lehet megjeleníteni a "
+"lehetséges tartalmakról a tartalom létrehozó/szerkesztő "
+"űrlapon.</li><li>A nézet „rendezési szempont” részének "
+"használatával befolyásolható a lehetséges tartalmak "
+"megjelenítési sorrendje.</li></ul>"
+msgid ""
+"<p>The list of nodes that can be referenced can be based on a \"Views "
+"module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+"<p>A hivatkozható tartalmak listája egy <em>Views</em> nézeten "
+"alapul, de a megfelelő nézet nem található. <br />Megjegyzés:</p>"
+msgid "%name: invalid input."
+msgstr "%name: érvénytelen bevitel."
+msgid "%name: found no valid post with that title."
+msgstr "%name: nincs érvényes tartalom ezzel a címmel."
+msgid "Only numbers and decimals are allowed in %field."
+msgstr ""
+"%field mezőben csak számok és tizedeselválasztó van "
+"engedélyezve."
+msgid "Only numbers are allowed in %field."
+msgstr "%field mező csak számokat tartalmazhat."
+msgid ""
+"Only numbers and the decimal character (%decimal) are allowed in "
+"%field."
+msgstr ""
+"%field mezőben csak számok és tizedeselválasztó (%decimal) van "
+"engedélyezve."
+msgid ""
+"Note that if the field has multiple values, only the first user will "
+"be loaded."
+msgstr ""
+"Megjegyzés: Ha a mezőnek több értéke is lehet, akkor csak az "
+"első felhasználó lesz betöltve."
+msgid "There are no userreference fields defined."
+msgstr "Nincsenek felhasználóhivatkozás mezők meghatározva."
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Haladó - Felhasználók, akikre hivatkozni lehet (Nézet)"
+msgid "View used to select the users"
+msgstr "A felhasználók kiválasztásához használt nézet"
+msgid ""
+"<p>Choose the \"Views module\" view that selects the users that can be "
+"referenced.<br />Note:</p>"
+msgstr ""
+"<p>Meg kell adni azt a <em>Views</em> nézetet, amely kiválasztja "
+"azokat a felhasználókat, melyekre hivatkozni lehet.<br "
+"/>Megjegyzés:</p>"
+msgid ""
+"<ul><li>Only views that have fields will work for this "
+"purpose.</li><li>This will discard the \"Referenceable Roles\" and "
+"\"Referenceable Status\" settings above. Use the view's \"filters\" "
+"section instead.</li><li>Use the view's \"fields\" section to display "
+"additional informations about candidate users on user creation/edition "
+"form.</li><li>Use the view's \"sort criteria\" section to determine "
+"the order in which candidate users will be displayed.</li></ul>"
+msgstr ""
+"<ul><li>Ebben az esetben csak azok a nézetek működnek, melyek "
+"mezőkkel rendelkeznek.</li><li>Ez felülbírálja a fentebb megadott "
+"„hivatkozható csoportok” és „hivatkozható állapot” "
+"beállításokat. A nézet „szűrők” része használható "
+"helyette.</li><li>A nézet „mezők” részének használatával "
+"további információkat lehet megjeleníteni a lehetséges "
+"felhasználókról a felhasználók létrehozó/szerkesztő "
+"űrlapon.</li><li>A nézet „rendezési szempont” részének "
+"használatával befolyásolható a lehetséges felhasználók "
+"megjelenítési sorrendje.</li></ul>"
+msgid ""
+"<p>The list of user that can be referenced can be based on a \"Views "
+"module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+"<p>A hivatkozható felhasználók listája egy <em>Views</em> nézeten "
+"alapul, de a megfelelő nézet nem található. <br />Megjegyzés:</p>"
+msgid "%name: invalid user."
+msgstr "%name: érvénytelen felhasználó."
+msgid "New field"
+msgstr "Új mező"
+msgid "Existing field"
+msgstr "Létező mező"
+msgid "New group"
+msgstr "Új csoport"
+msgid ""
+"Add fields and groups to the content type, and arrange them on content "
+"display and input forms."
+msgstr ""
+"Mezők és csoportok hozzáadása a tartalomtípushoz, valamint a "
+"tartalom megjelenésének és szerkesztő űrlapjának elrendezése."
+msgid ""
+"You can add a field to a group by dragging it below and to the right "
+"of the group."
+msgstr ""
+"A mezőt úgy lehet egy csoporthoz adni, hogy a csoport neve alá, "
+"majd egy kicsit jobbra kell húzni."
+msgid ""
+"Note: Installing the <a href=\"!adv_help\">Advanced help</a> module "
+"will let you access more and better help."
+msgstr ""
+"Megjegyzés: az <a href=\"%21adv_help\">Advanced help</a> modul "
+"telepítésével több és jobb segítség érhető el."
+msgid ""
+"Use the 'Exclude' checkbox to exclude an item from the !content value "
+"passed to the node template."
+msgstr ""
+"A „Kizárás” jelölőnégyzet használatával az elem kizárható "
+"a tartalom sablonnak átadott !content értékből."
+msgid "@label (!name) - delta"
+msgstr "@label (!name) - delta"
+msgid "@label-truncated - delta"
+msgstr "@label-truncated - delta"
+msgid "Delta - Appears in: @types"
+msgstr "Delta - Megjelenik ebben: @types"
+msgid ""
+"This form will process a content type and one or more fields from that "
+"type and export the settings. The export created by this process can "
+"be copied and pasted as an import into the current or any other "
+"database. The import will add the fields to an existing content type "
+"or create a new content type that includes the selected fields."
+msgstr ""
+"Ez az űrlap egy tartalomtípust vagy a típus egy vagy több "
+"mezőjét fogja feldolgozni, valamint a beállításokat exportálni. "
+"A feldolgozás által létrehozott export másolható és importként "
+"beilleszthető az aktuális, vagy bármilyen más adatbázisba. Az "
+"import hozzáadja a mezőket egy létező tartalomtípushoz, vagy "
+"létrehoz egy új tartalomtípust, ami tartalmazza a kiválasztott "
+"mezőket."
+msgid "Blocked users"
+msgstr "Blokkolt felhasználók"
+msgid "The 'referenceable_status' option for %field has been fixed."
+msgstr "%field mező „referenceable_status” beállítása javítva lett."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-panels-content_types.de.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-panels-content_types.de.po
new file mode 100644
index 0000000..ab5812b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-panels-content_types.de.po
@@ -0,0 +1,66 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:18+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: includes/panels/content_types/content_field.inc:14
+msgid "Content field"
+msgstr "Inhaltsfeld"
+
+#: includes/panels/content_types/content_field.inc:37
+msgid "@type: (@field_type) @field"
+msgstr "@type: (@field_type) @field"
+
+#: includes/panels/content_types/content_field.inc:44
+msgid "Field on the referenced node."
+msgstr "Feld auf dem referenzierten Beitrag."
+
+#: includes/panels/content_types/content_field.inc:100
+msgid "Block title"
+msgstr "Blocktitel"
+
+#: includes/panels/content_types/content_field.inc:103
+msgid "Hidden"
+msgstr "Versteckt"
+
+#: includes/panels/content_types/content_field.inc:105
+msgid "Configure how the label is going to be displayed."
+msgstr "Die Darstellung der Beschreibung konfigurieren."
+
+#: includes/panels/content_types/content_field.inc:128
+msgid "Formatter"
+msgstr "Formatierer"
+
+#: includes/panels/content_types/content_field.inc:131
+msgid "Select a formatter."
+msgstr "Einen Formatierer auswählen."
+
+#: includes/panels/content_types/content_field.inc:147
+msgid "\"@s\" field (@name)"
+msgstr "„@s“ Feld (@name)"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-panels-content_types.pot b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-panels-content_types.pot
new file mode 100644
index 0000000..a0f260a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-panels-content_types.pot
@@ -0,0 +1,55 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (includes-panels-content_types)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from file: content_field.inc,v 1.1.2.4 2009/06/02 15:05:27 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: includes/panels/content_types/content_field.inc:14
+msgid "Content field"
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:37
+msgid "@type: (@field_type) @field"
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:44
+msgid "Field on the referenced node."
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:100
+msgid "Block title"
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:103
+msgid "Hidden"
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:105
+msgid "Configure how the label is going to be displayed."
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:128
+msgid "Formatter"
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:131
+msgid "Select a formatter."
+msgstr ""
+
+#: includes/panels/content_types/content_field.inc:147
+msgid "\"@s\" field (@name)"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.de.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.de.po
new file mode 100644
index 0000000..d11d2ea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.de.po
@@ -0,0 +1,88 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2008-11-05 12:54+0100\n"
+"PO-Revision-Date: 2008-11-05 13:23+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: includes/views/handlers/content_handler_field.inc:56
+msgid "None"
+msgstr "Keines"
+
+#: includes/views/handlers/content_handler_field.inc:57
+msgid "Widget label (@label)"
+msgstr "Steuerelement (@label)"
+
+#: includes/views/handlers/content_handler_field.inc:58
+msgid "Custom"
+msgstr "Benutzerdefiniert"
+
+#: includes/views/handlers/content_handler_field.inc:64
+msgid "Custom label"
+msgstr "Benutzerdefinierte Bezeichnung"
+
+#: includes/views/handlers/content_handler_field.inc:80
+msgid "Format"
+msgstr "Format"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:56
+msgid "Group multiple values"
+msgstr "Mehrfachwerte gruppieren"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:59
+msgid "If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays."
+msgstr ""
+
+#: includes/views/handlers/content_handler_field_multiple.inc:63
+msgid "Show @count value(s)"
+msgstr "@count Werte anzeigen"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:74
+msgid "starting from @count"
+msgstr "Beginnt bei @count"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:85
+msgid "Reversed (start from last values)"
+msgstr "Umgedreht (Beginnt bei den letzten Werten)"
+
+#: includes/views/handlers/content_handler_relationship.inc:40
+#: includes/views/handlers/content_handler_sort.inc:41
+msgid "All"
+msgstr "Alle"
+
+#: includes/views/handlers/content_handler_relationship.inc:48
+#: includes/views/handlers/content_handler_sort.inc:49
+msgid "Delta"
+msgstr "Delta"
+
+#: includes/views/handlers/content_handler_relationship.inc:49
+msgid "The delta allows you to select which item in a multiple value field to key the relationship off of. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+
+#: includes/views/handlers/content_handler_sort.inc:50
+msgid "The delta allows you to select which item in a multiple value field will be used for sorting. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.pot b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.pot
new file mode 100644
index 0000000..b4be87b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.pot
@@ -0,0 +1,79 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (includes-views-handlers)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content_handler_field.inc,v 1.1.2.15 2009/03/30 22:54:16 yched
+#  content_handler_field_multiple.inc,v 1.1.2.18 2009/05/07 15:06:36 yched
+#  content_handler_relationship.inc,v 1.1.2.3 2008/10/24 12:31:58 yched
+#  content_handler_sort.inc,v 1.1.2.6 2008/10/25 00:36:41 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: includes/views/handlers/content_handler_field.inc:59
+msgid "None"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field.inc:60
+msgid "Widget label (@label)"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field.inc:61
+msgid "Custom"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field.inc:67
+msgid "Custom label"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field.inc:83
+msgid "Format"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field_multiple.inc:63
+msgid "Group multiple values"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field_multiple.inc:66
+msgid "If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays."
+msgstr ""
+
+#: includes/views/handlers/content_handler_field_multiple.inc:70
+msgid "Show @count value(s)"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field_multiple.inc:81
+msgid "starting from @count"
+msgstr ""
+
+#: includes/views/handlers/content_handler_field_multiple.inc:92
+msgid "Reversed (start from last values)"
+msgstr ""
+
+#: includes/views/handlers/content_handler_relationship.inc:40 includes/views/handlers/content_handler_sort.inc:41
+msgid "All"
+msgstr ""
+
+#: includes/views/handlers/content_handler_relationship.inc:48 includes/views/handlers/content_handler_sort.inc:49
+msgid "Delta"
+msgstr ""
+
+#: includes/views/handlers/content_handler_relationship.inc:49
+msgid "The delta allows you to select which item in a multiple value field to key the relationship off of. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+
+#: includes/views/handlers/content_handler_sort.inc:50
+msgid "The delta allows you to select which item in a multiple value field will be used for sorting. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.sv.po
new file mode 100644
index 0000000..71178a0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views-handlers.sv.po
@@ -0,0 +1,82 @@
+# $Id$
+#
+# Swedish translation of Drupal (includes_views_handlers)
+# Generated from files:
+#  content_handler_field.inc,v 1.1.2.13 2009/03/06 15:29:34 karens
+#  content_handler_field_multiple.inc,v 1.1.2.15 2008/12/29 23:34:35 yched
+#  content_handler_relationship.inc,v 1.1.2.3 2008/10/24 12:31:58 yched
+#  content_handler_sort.inc,v 1.1.2.6 2008/10/25 00:36:41 yched
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Includes Views Handlers 6.x\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-04-20 21:28+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: includes/views/handlers/content_handler_field.inc:59
+msgid "None"
+msgstr "Ingen"
+
+#: includes/views/handlers/content_handler_field.inc:60
+msgid "Widget label (@label)"
+msgstr "Etikett för gränssnittskomponent (@label)"
+
+#: includes/views/handlers/content_handler_field.inc:61
+msgid "Custom"
+msgstr "Anpassad"
+
+#: includes/views/handlers/content_handler_field.inc:67
+msgid "Custom label"
+msgstr "Anpassad etikett"
+
+#: includes/views/handlers/content_handler_field.inc:83
+msgid "Format"
+msgstr "Format"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:58
+msgid "Group multiple values"
+msgstr "Gruppera multipla värden"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:61
+msgid "If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays."
+msgstr "Om ikryssat kommer varje alternativ i fältet att skapa en ny rad, vilket kan orsaka dubletter. Denna inställning är inte kompatibel med klickvis sortering i tabellvisning."
+
+#: includes/views/handlers/content_handler_field_multiple.inc:65
+msgid "Show @count value(s)"
+msgstr "Visa @count värde(n)"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:76
+msgid "starting from @count"
+msgstr "med början från @count"
+
+#: includes/views/handlers/content_handler_field_multiple.inc:87
+msgid "Reversed (start from last values)"
+msgstr "Omvänd (börja från sista värdet)"
+
+#: includes/views/handlers/content_handler_relationship.inc:40
+#: includes/views/handlers/content_handler_sort.inc:41
+msgid "All"
+msgstr "Alla"
+
+#: includes/views/handlers/content_handler_relationship.inc:48
+#: includes/views/handlers/content_handler_sort.inc:49
+msgid "Delta"
+msgstr "Delta"
+
+#: includes/views/handlers/content_handler_relationship.inc:49
+msgid "The delta allows you to select which item in a multiple value field to key the relationship off of. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Delta låter dig välja vilka alternativ i ett fält med flera värden som inte släktskapet stämmer in för. Välj \"1\" för att använda det första alternativet, \"2\" för det andra alternativet, och så vidare. Om du väljer \"Alla\", kommer varje alternativ i fältet att skapa en ny rad, vilket kan orsaka dubletter."
+
+#: includes/views/handlers/content_handler_sort.inc:50
+msgid "The delta allows you to select which item in a multiple value field will be used for sorting. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Delta låter dig välja vilka alternativ i ett fält med flera värden som kommer att användas för sortering. Välj \"1\" för att använda det första alternativet, \"2\" för det andra alternativet, och så vidare. Om du väljer \"Alla\", kommer varje alternativ i fältet att skapa en ny rad, vilket kan orsaka dubletter."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.de.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.de.po
new file mode 100644
index 0000000..0aa4553
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.de.po
@@ -0,0 +1,40 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (includes-views)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from file: content.views.inc,v 1.1.2.10 2008/10/17 14:29:34 yched
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German Translation of CCK\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-03-09 22:56+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+
+#: includes/views/content.views.inc:245;261
+msgid "@label (!name)"
+msgstr "@label (!name)"
+
+#: includes/views/content.views.inc:249
+msgid "@label (!name) - !column"
+msgstr "@label (!name) - !column"
+
+#: includes/views/content.views.inc:250
+msgid "@label-truncated - !column"
+msgstr "@label-truncated - !column"
+
+#: includes/views/content.views.inc:257
+msgid "Appears in: @types"
+msgstr "Erscheint in: @types"
+
+#: includes/views/content.views.inc:279
+msgid "<No value>"
+msgstr "<kein Wert>"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.pot b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.pot
new file mode 100644
index 0000000..52c0e34
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.pot
@@ -0,0 +1,39 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (includes-views)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from file: content.views.inc,v 1.1.2.25 2009/04/11 14:50:53 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: includes/views/content.views.inc:252;268
+msgid "@label (!name)"
+msgstr ""
+
+#: includes/views/content.views.inc:256
+msgid "@label (!name) - !column"
+msgstr ""
+
+#: includes/views/content.views.inc:257
+msgid "@label-truncated - !column"
+msgstr ""
+
+#: includes/views/content.views.inc:264
+msgid "Appears in: @types"
+msgstr ""
+
+#: includes/views/content.views.inc:286
+msgid "<No value>"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.sv.po
new file mode 100644
index 0000000..3194f33
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes-views.sv.po
@@ -0,0 +1,40 @@
+# $Id$
+#
+# Swedish translation of Drupal (includes-views)
+# Generated from file: content.views.inc,v 1.1.2.22 2009/01/14 13:19:47 karens
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Includes Views 6.x\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-04-20 21:13+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: includes/views/content.views.inc:245;261
+msgid "@label (!name)"
+msgstr "@label (!name)"
+
+#: includes/views/content.views.inc:249
+msgid "@label (!name) - !column"
+msgstr "@label (!name) - !column"
+
+#: includes/views/content.views.inc:250
+msgid "@label-truncated - !column"
+msgstr "@label-truncated - !column"
+
+#: includes/views/content.views.inc:257
+msgid "Appears in: @types"
+msgstr "Förekommer i: @types"
+
+#: includes/views/content.views.inc:279
+msgid "<No value>"
+msgstr "<Inget värde>"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.de.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.de.po
new file mode 100644
index 0000000..6d57229
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.de.po
@@ -0,0 +1,583 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: 2009-06-16 19:15+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: includes/content.admin.inc:30
+msgid "edit"
+msgstr "Bearbeiten"
+
+#: includes/content.admin.inc:33
+msgid "manage fields"
+msgstr "Felder verwalten"
+
+#: includes/content.admin.inc:36
+msgid "delete"
+msgstr "Löschen"
+
+#: includes/content.admin.inc:47
+msgid "No content types available."
+msgstr "Keine Inhaltstypen vorhanden."
+
+#: includes/content.admin.inc:54
+msgid "» Add a new content type"
+msgstr "» Neuen Inhaltstyp hinzufügen"
+
+#: includes/content.admin.inc:67;796;991
+msgid "Field name"
+msgstr "Feldname"
+
+#: includes/content.admin.inc:67;811;997
+msgid "Field type"
+msgstr "Feldtyp"
+
+#: includes/content.admin.inc:67
+msgid "Used in"
+msgstr "Verwendet in"
+
+#: includes/content.admin.inc:71
+msgid "@field_name (Locked)"
+msgstr "@field_name (Gesperrt)"
+
+#: includes/content.admin.inc:90
+msgid "No fields have been defined for any content type yet."
+msgstr "Es wurden noch keine Felder für einen Inhaltstypen festgelegt."
+
+# not literally, English needs work
+#: includes/content.admin.inc:106
+#, fuzzy
+msgid "This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled."
+msgstr "Dieser Inhaltstyp enthält inaktive Felder. Inaktive Felder werden nicht in den Listen der verfügbaren Felder angezeigt, bis die Module aktiviert werden."
+
+#: includes/content.admin.inc:108
+msgid "!field (!field_name) is an inactive !field_type field that uses a !widget_type widget."
+msgstr "!field (!field_name) ist ein inaktives !field_type-Feld, das ein !widget_type-Steuerelement verwendet."
+
+#: includes/content.admin.inc:170;196
+msgid "Configure"
+msgstr "Konfigurieren"
+
+# Schreibgeschützt
+#: includes/content.admin.inc:181
+msgid "Locked"
+msgstr "Gesperrt"
+
+#: includes/content.admin.inc:237
+msgid "- Select a field type -"
+msgstr "- Feldtyp auswählen -"
+
+#: includes/content.admin.inc:238
+msgid "- Select a widget -"
+msgstr "- Steuerelement auswählen -"
+
+#: includes/content.admin.inc:253
+msgid "Field name (a-z, 0-9, _)"
+msgstr "Feldname (a-z, 0-9, _)"
+
+#: includes/content.admin.inc:258
+msgid "Type of data to store."
+msgstr "Der zu speichernde Datentyp."
+
+#: includes/content.admin.inc:263;295
+msgid "Form element to edit the data."
+msgstr "Formularelement zum Bearbeiten der Daten."
+
+#: includes/content.admin.inc:279
+msgid "- Select an existing field -"
+msgstr "- Vorhandenes Feld auswählen -"
+
+#: includes/content.admin.inc:290
+msgid "Field to share"
+msgstr "Feld für gemeinsame Nutzung"
+
+#: includes/content.admin.inc:324
+msgid "Group name (a-z, 0-9, _)"
+msgstr "Gruppenname (a-z, 0-9, _)"
+
+#: includes/content.admin.inc:373
+msgid "Add new field: you need to provide a label."
+msgstr "Neues Feld hinzufügen: Eine Beschriftung muss angegeben werden."
+
+#: includes/content.admin.inc:378
+msgid "Add new field: you need to provide a field name."
+msgstr "Neues Feld hinzufügen: Ein Feldname muss angegeben werden."
+
+#: includes/content.admin.inc:392
+msgid "Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Neues Feld hinzufügen: Der Feldname %field ist ungültig. Der Name darf nur nicht-akzentuierte Kleinbuchstaben, Zahlen und Unterstriche enthalten."
+
+#: includes/content.admin.inc:395
+msgid "Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr "Neues Feld hinzufügen: Der Feldname %field_name ist zu lang. Der Name ist inklusive dem Präfix ‚field_‘ auf 32 Zeichen begrenzt."
+
+#: includes/content.admin.inc:399
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr "Neues Feld hinzufügen: Der Name ‚field_instance‘ ist ein reservierter Name."
+
+#: includes/content.admin.inc:411
+msgid "Add new field: the field name %field_name already exists."
+msgstr "Neues Feld hinzufügen: Der Feldname %field_name ist bereits vorhanden."
+
+#: includes/content.admin.inc:417
+msgid "Add new field: you need to select a field type."
+msgstr "Neues Feld hinzufügen: Ein Feldtyp muss ausgewählt werden."
+
+#: includes/content.admin.inc:422
+msgid "Add new field: you need to select a widget."
+msgstr "Neues Feld hinzufügen: Ein Steuerelement muss ausgewählt werden."
+
+#: includes/content.admin.inc:428
+msgid "Add new field: invalid widget."
+msgstr "Neues Feld hinzufügen: Ungültiges Steuerelement."
+
+#: includes/content.admin.inc:449
+msgid "Add existing field: you need to provide a label."
+msgstr "Vorhandenes Feld hinzufügen: Eine Beschriftung muss angegeben werden."
+
+#: includes/content.admin.inc:454
+msgid "Add existing field: you need to select a field."
+msgstr "Vorhandenes Feld hinzufügen: Ein Feld muss ausgewählt werden."
+
+#: includes/content.admin.inc:459
+msgid "Add existing field: you need to select a widget."
+msgstr "Vorhandenes Feld hinzufügen: Ein Steuerelement muss ausgewählt werden."
+
+#: includes/content.admin.inc:465
+msgid "Add existing field: invalid widget."
+msgstr "Vorhandenes Feld hinzufügen: Ungültiges Steuerelement."
+
+#: includes/content.admin.inc:514
+msgid "There was a problem creating field %label."
+msgstr "Beim Erstellen des Feldes %label ist ein Fehler aufgetreten."
+
+#: includes/content.admin.inc:526
+msgid "The field %label cannot be added to a content type because it is locked."
+msgstr "Das Feld %label ist gesperrt und kann deshalb zu keinem Inhaltstyp hinzugefügt werden."
+
+#: includes/content.admin.inc:536
+msgid "There was a problem adding field %label."
+msgstr "Beim Hinzufügen des Feldes %label ist ein Fehler aufgetreten."
+
+#: includes/content.admin.inc:578
+msgid "There are no fields configured for this content type. You can add new fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr "Für diesen Inhaltstyp sind keine Felder konfiguriert. Neue Felder können auf der <a href=\"@link\">Felder verwalten</a>-Seite hinzugefügt werden."
+
+#: includes/content.admin.inc:625;668
+msgid "Include"
+msgstr "Einschließen"
+
+#: includes/content.admin.inc:637
+msgid "no styling"
+msgstr "kein Design"
+
+#: includes/content.admin.inc:638
+msgid "simple"
+msgstr "einfach"
+
+#: includes/content.admin.inc:639
+msgid "fieldset"
+msgstr "Feldgruppe"
+
+#: includes/content.admin.inc:640
+msgid "fieldset - collapsible"
+msgstr "Feldgruppe - Zusammenklappbar"
+
+#: includes/content.admin.inc:641
+msgid "fieldset - collapsed"
+msgstr "Feldgruppe - Zusammengeklappt"
+
+#: includes/content.admin.inc:697
+msgid "Your settings have been saved."
+msgstr "Die Einstellungen wurden gespeichert."
+
+#: includes/content.admin.inc:767
+msgid "@type: @field (@label)"
+msgstr "@type: @field (@label)"
+
+#: includes/content.admin.inc:793
+msgid "Edit basic information"
+msgstr "Basisinformation bearbeiten"
+
+#: includes/content.admin.inc:799
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr "Der maschinenlesbare Name des Feldes. Der Name kann nicht geändert werden."
+
+#: includes/content.admin.inc:807
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr "Ein Name der im Inhaltstyp %type als Beschriftung für dieses Feld verwendet werden soll."
+
+#: includes/content.admin.inc:814
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr "Der Datentyp der mit diesem Feld in der Datenbank gespeichert werden soll. Diese Option kann nicht geändert werden."
+
+#: includes/content.admin.inc:819;1003
+msgid "Widget type"
+msgstr "Steuerelement"
+
+#: includes/content.admin.inc:823
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr "Der Formularelementtyp der dem Benutzer angezeigt wird, wenn dieses Feld im Inhaltstyp %type erstellt wird."
+
+#: includes/content.admin.inc:833
+#: includes/content.rules.inc:66
+msgid "Continue"
+msgstr "Fortfahren"
+
+#: includes/content.admin.inc:861
+msgid "Updated basic settings for field %label."
+msgstr "Die Basiseinstellungen für das Feld %label wurden aktualisiert."
+
+#: includes/content.admin.inc:865
+msgid "There was a problem updating the basic settings for field %label."
+msgstr "Beim Aktualsisieren der Basiseinstellungen des Feldes %label trat ein Problem auf."
+
+#: includes/content.admin.inc:892
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Soll das Feld %field wirklich gelöscht werden?"
+
+#: includes/content.admin.inc:894
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Falls sich Daten in diesem Feld befinden, gehen diese verloren. Diese Aktion kann nicht rückgängig gemacht werden."
+
+#: includes/content.admin.inc:901
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr "Das Feld ist <strong>gesperrt</strong> und kann nicht entfernt werden."
+
+#: includes/content.admin.inc:922
+msgid "Removed field %field from %type."
+msgstr "Das Feld %field von %type wurde gelöscht."
+
+#: includes/content.admin.inc:927
+msgid "There was a problem deleting %field from %type."
+msgstr "Beim Löschen von %field in %type ist ein Fehler aufgetreten."
+
+#: includes/content.admin.inc:946
+msgid "The field %field is locked and cannot be edited."
+msgstr "Das Feld %field ist gesperrt und kann nicht bearbeitet werden."
+
+#: includes/content.admin.inc:980
+msgid "%type basic information"
+msgstr "Basisinformation für %type"
+
+#: includes/content.admin.inc:1010;1189
+msgid "Change basic information"
+msgstr "Basisinformation ändern"
+
+#: includes/content.admin.inc:1016
+msgid "%type settings"
+msgstr "Einstellungen für %type"
+
+#: includes/content.admin.inc:1017
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Diese Einstellungen gelten nur für das Feld %field, wie es im Inhaltstyp %type vorkommt."
+
+#: includes/content.admin.inc:1034
+msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
+msgstr "Eine Hilfestellung, die dem Benutzer unter diesem Feld im Eingabeformular angezeigt wird.<br />Zulässige HTML-Tags: @tags"
+
+#: includes/content.admin.inc:1060
+msgid "Default value"
+msgstr "Standardwert"
+
+#: includes/content.admin.inc:1090;1245
+#: includes/content.rules.inc:93
+msgid "'@column' => value for @column"
+msgstr "'@column' => Wert für @column"
+
+#: includes/content.admin.inc:1092;1247
+#: includes/content.rules.inc:95
+msgid ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgstr ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // Normalerweise würde man hier aufhören. Soll der ‚Standardwert‘\n"
+"  // mehrwertig sein, können weitere Werte eingetragen werden:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+
+#: includes/content.admin.inc:1100
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr "Nur erweiterte Verwendung: PHP-Code der einen Standardwert zurückliefert. Dieser sollte keine <?php ?> Trennzeichen enthalten. Sollte dieses Feld ausgefüllt werden, wird der von diesem Code zurückgegebene Wert jeden oberhalb angegebenen Wert übersteuern. Das erwartete Format lautet: <pre>!sample</pre>Um das erwartete Format herauszufinden, kann der vom <a href=\"@link_devel\">Devel-Modul</a> auf einer %type-Inhaltsseite zu Verfügung gestellte <em>Devel laden</em>-Reiter ver [...]
+
+#: includes/content.admin.inc:1111
+msgid "This PHP code was set by an administrator and will override any value specified above."
+msgstr "Dieser PHP-Code wurde vom Administrator eingestellt und wird jeden oben angegeben Wert übersteuern."
+
+#: includes/content.admin.inc:1118
+msgid "Global settings"
+msgstr "Globale Einstellungen"
+
+#: includes/content.admin.inc:1119
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Diese Einstellungen gelten für das Feld %field in jedem Inhaltstyp, indem das Feld erscheint."
+
+#: includes/content.admin.inc:1123
+msgid "Required"
+msgstr "Erforderlich"
+
+#: includes/content.admin.inc:1126
+msgid "Maximum number of values users can enter for this field."
+msgstr "Die maximale Anzahl an Werten, die Benutzer für dieses Feld eingeben können."
+
+#: includes/content.admin.inc:1128
+msgid "'Unlimited' will provide an 'Add more' button so the users can add as many values as they like."
+msgstr "„Unbegrenzt“ stellt Benutzern einen „Weitere hinzufügen“-Schaltknopf zu Verfügung, damit diese so viele Werte hinzufügen können wie sie möchten."
+
+#: includes/content.admin.inc:1130
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr "Warnung! Die Änderung dieser Einstellung kann nach Erstellung von Daten zu Datenverlust führen!"
+
+#: includes/content.admin.inc:1133
+msgid "Number of values"
+msgstr "Anzahl von Werten"
+
+#: includes/content.admin.inc:1249
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr "Der Standardwert den PHP-Code bei ungültigen Werten zurückliefert.<br/>Erwartetes Format: <pre>!sample</pre>zurückgegebener Wert: @value"
+
+#: includes/content.admin.inc:1288
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr "Der PHP-Code für den „Standardwert“ lieferte den ungültigen Wert „@value“ zurück."
+
+#: includes/content.admin.inc:1292
+msgid "The default value is invalid."
+msgstr "Der Standardwert ist ungültig."
+
+#: includes/content.admin.inc:1316
+msgid "Added field %label."
+msgstr "Das Feld %label wurde hinzugefügt."
+
+#: includes/content.admin.inc:1320
+msgid "Saved field %label."
+msgstr "Das Feld %label wurde gespeichert."
+
+#: includes/content.admin.inc:1678
+msgid "Processing"
+msgstr "Verarbeitung läuft"
+
+#: includes/content.admin.inc:1679
+msgid "The update has encountered an error."
+msgstr "Die Aktualisierung ist auf einen Fehler gestoßen."
+
+#: includes/content.admin.inc:1693
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "Die Datenbank wurde geändert und die Daten wurden migriert oder gelöscht."
+
+#: includes/content.admin.inc:1696
+msgid "An error occurred and database alteration did not complete."
+msgstr "Ein Fehler ist aufgetreten und die Datenbankänderung konnte nicht abgeschlossen werden."
+
+#: includes/content.admin.inc:1799
+msgid "Processing %title"
+msgstr "%title wird verarbeitet"
+
+#: includes/content.admin.inc:1865
+msgid "%name must be an integer."
+msgstr "%name muss eine Ganzzahl sein."
+
+#: includes/content.admin.inc:1875
+msgid "%name must be a positive integer."
+msgstr "%name muss eine positive Ganzzahl sein."
+
+#: includes/content.admin.inc:1885
+msgid "%name must be a number."
+msgstr "%name muss eine Zahl sein."
+
+#: includes/content.admin.inc:1697
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "1 Eintrag wurde erfolgreich verarbeitet:"
+msgstr[1] "@count Einträge wurden erfolgreich verarbeitet:"
+
+#: includes/content.crud.inc:589
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "Die Inhaltsfeldtabelle %old_name wurde in %new_name umbenannt und die Feldinstanzen wurden aktualisiert."
+
+#: includes/content.crud.inc:633
+msgid "The content fields table %name has been deleted."
+msgstr "Die Inhaltsfeldtabelle %name wurde gelöscht."
+
+#: includes/content.node_form.inc:223
+msgid "Add another item"
+msgstr "Weiteren Eintrag hinzufügen"
+
+#: includes/content.rules.inc:15
+msgid "Populate a field"
+msgstr "Ein Feld füllen"
+
+#: includes/content.rules.inc:23;224
+msgid "You should make sure that the used field exists in the given content type."
+msgstr "Das verwendete Feld sollte in dem angegebenen Inhaltstyp vorhanden sein."
+
+#: includes/content.rules.inc:56
+msgid "Select the machine-name of the field."
+msgstr "Den maschinenlesbaren Namen des Feldes auswählen."
+
+#: includes/content.rules.inc:84
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr "Erweitert: Die Feldwerte mit PHP-Code festlegen"
+
+# not literally
+#: includes/content.rules.inc:102
+msgid "Advanced usage only: PHP code that returns the value to set. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content page might help you figure out the expected format."
+msgstr "Nur erweiterte Verwendung: PHP-Code der den einzustellenden Wert zurückliefert. Dieser sollte keine <?php ?> Trennzeichen enthalten. Sollte dieses Feld ausgefüllt werden, wird der von diesem Code zurückgegebene Wert jeden oberhalb angegebenen Wert übersteuern. Das erwartete Format lautet: <pre>!sample</pre>Um das erwartete Format herauszufinden, kann der vom <a href=\"@link_devel\">Devel-Modul</a> auf einer Inhaltsseite zu Verfügung gestellte <em>Devel laden</em>-Reiter mög [...]
+
+#: includes/content.rules.inc:130
+msgid "You have to return the default value in the expected format."
+msgstr "Der standardmäßige Wert muss im erwarteten Format zurückgegeben werden."
+
+#: includes/content.rules.inc:193
+msgid "Populate @node's field '@field'"
+msgstr "Das Feld ‚@field‘ von @node füllen"
+
+#: includes/content.rules.inc:210
+msgid "Field has value"
+msgstr "Das Feld enthält einen Wert"
+
+#: includes/content.rules.inc:215
+msgid "You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value."
+msgstr "Das verwendete Feld sollte in dem angegebenen Inhaltstyp vorhanden sein. Die Bedingung gibt TRUE zurück, wenn das ausgewählte Feld den Sollwert enthält."
+
+#: includes/content.rules.inc:219
+msgid "Field has changed"
+msgstr "Feld wurde geändert"
+
+#: includes/content.rules.inc:221
+msgid "Content containing changes"
+msgstr "Der Inhalt enthält Änderungen"
+
+#: includes/content.rules.inc:222
+msgid "Content not containing changes"
+msgstr "Der Inhalt enthält keine Änderungen"
+
+#: includes/content.rules.inc:259
+msgid "@node's field '@field' has value"
+msgstr "Das Feld ‚@field‘ von @node enthät einen Wert"
+
+# not literally
+#: includes/content.rules.inc:279
+#, fuzzy
+msgid "Select the machine-name of the field to look at."
+msgstr "Den maschinenlesbaren Name des Feldes auswählen, indem nachgeschaut werden soll."
+
+# @node?
+#: includes/content.rules.inc:285
+msgid "@node's field '@field' has been changed"
+msgstr "Das Feld ‚@field‘ von @node wurde geändert"
+
+#: includes/content.token.inc:12;15
+msgid "Token"
+msgstr "Token"
+
+#: includes/content.token.inc:81
+msgid "Referenced node ID"
+msgstr "Referenzierte Beitrags-ID"
+
+#: includes/content.token.inc:82
+msgid "Referenced node title"
+msgstr "Referenzierter Beitragstitel"
+
+#: includes/content.token.inc:83
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr "Ungefilterter referenzierter Beitragstitel. WARNUNG: Original Benutzereingabe."
+
+#: includes/content.token.inc:84
+msgid "Formatted html link to the referenced node."
+msgstr "Formatierter HTML-Link zu dem referenzierten Beitrag."
+
+#: includes/content.token.inc:85
+msgid "Relative path alias to the referenced node."
+msgstr "Relativer Pfadalias zu dem referenzierten Beitrag."
+
+#: includes/content.token.inc:86
+msgid "Absolute path alias to the referenced node."
+msgstr "Absoluter Pfadalias zu dem referenzierten Beitrag."
+
+#: includes/content.token.inc:114
+msgid "Raw number value"
+msgstr "Unbearbeiteter Zahlenwert"
+
+#: includes/content.token.inc:115
+msgid "Formatted number value"
+msgstr "Formatierter Zahlenwert"
+
+#: includes/content.token.inc:138
+msgid "Raw, unfiltered text"
+msgstr "Unbearbeiteter, ungefilterter Text"
+
+#: includes/content.token.inc:139
+msgid "Formatted and filtered text"
+msgstr "Formatierter und gefilterter Text"
+
+#: includes/content.token.inc:161
+msgid "Referenced user ID"
+msgstr "Referenzierte Benutzer-ID"
+
+#: includes/content.token.inc:162
+msgid "Referenced user name"
+msgstr "Referenzierter Benutzername"
+
+#: includes/content.token.inc:163
+msgid "Formatted HTML link to referenced user"
+msgstr "Formatierter HTML-Link zu dem referenzierten Benutzer."
+
+#: includes/content.token.inc:164
+msgid "Relative path alias to the referenced user."
+msgstr "Relativer Pfadalias zu dem referenzierten Benutzer."
+
+#: includes/content.token.inc:165
+msgid "Absolute path alias to the referenced user."
+msgstr "Absoluter Pfadalias zu dem referenzierten Benutzer."
+
+#~ msgid "Inline"
+#~ msgstr "Inline"
+#~ msgid "Content field"
+#~ msgstr "Inhaltsfeld"
+#~ msgid "A content field from the referenced node."
+#~ msgstr "Ein Inhaltsfeld von dem referenzierten Beitrag."
+#~ msgid "Block title"
+#~ msgstr "Blocktitel"
+#~ msgid "Hidden"
+#~ msgstr "Versteckt"
+#~ msgid "Configure how the label is going to be displayed."
+#~ msgstr "Die Darstellung der Beschreibung konfigurieren."
+#~ msgid "Field / Formatter"
+#~ msgstr "Feld / Formatierer"
+#~ msgid "Select a field and formatter."
+#~ msgstr "Ein Feld und Formatierer auswählen."
+#~ msgid "\"@s\" field @name"
+#~ msgstr "„@s“ Feld @name"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.fr.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.fr.po
new file mode 100644
index 0000000..87380fa
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.fr.po
@@ -0,0 +1,420 @@
+# translation of SB-cck-6.x-2.x-dev.po to
+# translation of cck-6.x-2.x-dev.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
+"POT-Creation-Date: 2008-07-03 07:41+0200\n"
+"PO-Revision-Date: 2008-07-03 18:04+0100\n"
+"Last-Translator: Damien Tournoud <damz at prealable.org>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: France\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: includes/content.admin.inc:16;212
+msgid "Name"
+msgstr "Nom"
+
+#: includes/content.admin.inc:16;212
+msgid "Type"
+msgstr "Type"
+
+#: includes/content.admin.inc:16;212
+msgid "Operations"
+msgstr "Opérations"
+
+#: includes/content.admin.inc:30
+msgid "edit"
+msgstr "éditer"
+
+#: includes/content.admin.inc:33
+msgid "add field"
+msgstr "ajouter un champ"
+
+#: includes/content.admin.inc:34
+msgid "manage fields"
+msgstr "gérer les champs"
+
+#: includes/content.admin.inc:37
+msgid "delete"
+msgstr "supprimer"
+
+#: includes/content.admin.inc:48
+msgid "No content types available."
+msgstr "Aucun type de contenu disponible."
+
+#: includes/content.admin.inc:55
+msgid "» Add a new content type"
+msgstr "» Ajouter un nouveau type de contenu"
+
+#: includes/content.admin.inc:64;602;856
+msgid "Field name"
+msgstr "Nom du champ"
+
+#: includes/content.admin.inc:64;632;643;862
+msgid "Field type"
+msgstr "Type de champ"
+
+#: includes/content.admin.inc:64
+msgid "Used in"
+msgstr "Utilisé dans"
+
+#: includes/content.admin.inc:87
+msgid "No fields have been defined for any content type yet."
+msgstr "Aucun champ n'est pour l'instant défini sur l'ensemble des types de contenu."
+
+#: includes/content.admin.inc:112;291
+msgid "There are no fields configured for this content type. You can !link."
+msgstr "Il n'y a aucun champ configuré pour ce type de contenu. Vous pouvez néanmoins dès maintenant !link."
+
+#: includes/content.admin.inc:113;292
+msgid "Add a new field"
+msgstr "ajouter un nouveau champ"
+
+#: includes/content.admin.inc:137
+msgid "To change the order of a field, grab a drag-and-drop handle under the Label column and drag the field to a new location in the list. (Grab a handle by clicking and holding the mouse while hovering over a handle icon.) Remember that your changes will not be saved until you click the Save button at the bottom of the page."
+msgstr "Pour changer l'ordre d'un champ, utilisez la poignée qui figure sous la colonne Étiquette et faites glisser le champ jusqu'à l'emplacement désiré. Pour manipuler la poignée (l'icône en forme de croix), cliquez sur l'icône et maintenez enfoncé le bouton de la souris. N'oubliez pas que vos modifications ne seront prises en compte que lorsque vous aurez cliqué sur le bouton <em>Enregistrer</em> qui figure en base de page."
+
+#: includes/content.admin.inc:147;163
+msgid "Configure"
+msgstr "Configurer"
+
+#: includes/content.admin.inc:212
+msgid "Weight"
+msgstr "Poids"
+
+#: includes/content.admin.inc:319;360
+msgid "Above"
+msgstr "Au dessus"
+
+#: includes/content.admin.inc:320
+msgid "Inline"
+msgstr "Sur la même ligne"
+
+#: includes/content.admin.inc:321;346;361;369
+msgid "<Hidden>"
+msgstr "<Caché>"
+
+#: includes/content.admin.inc:364
+msgid "no styling"
+msgstr "aucune mise en forme"
+
+#: includes/content.admin.inc:365
+msgid "simple"
+msgstr "simple"
+
+#: includes/content.admin.inc:366
+msgid "fieldset"
+msgstr "groupe de champs"
+
+#: includes/content.admin.inc:367
+msgid "fieldset - collapsible"
+msgstr "groupe de champs - repliable"
+
+#: includes/content.admin.inc:368
+msgid "fieldset - collapsed"
+msgstr "groupe de champs - replié"
+
+#: includes/content.admin.inc:413
+msgid "Field"
+msgstr "Champ"
+
+#: includes/content.admin.inc:460
+msgid "Your settings have been saved."
+msgstr "Vos paramètres ont été enregistrés."
+
+#: includes/content.admin.inc:477
+msgid "No field modules are enabled. You need to <a href=\"!modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr "Aucun module de champs n'est activé. Vous devez en <a href=\"!modules_url\">activer un</a>, par exemple le module Text, avant de pouvoir ajouter des champs."
+
+#: includes/content.admin.inc:519
+msgid "Add existing field"
+msgstr "Ajouter un champ existant"
+
+#: includes/content.admin.inc:547
+msgid "Added field %label."
+msgstr "Le champ '%label' a été ajouté."
+
+#: includes/content.admin.inc:550
+msgid "There was a problem adding field %label."
+msgstr "Un problème est survenu lors de l'ajout du champ '%label'."
+
+#: includes/content.admin.inc:590
+msgid "Create new field"
+msgstr "Créer un nouveau champ"
+
+#: includes/content.admin.inc:597
+msgid "Edit basic information"
+msgstr "Éditer les informations de base"
+
+#: includes/content.admin.inc:606
+msgid "The machine-readable name of the field."
+msgstr "Nom du champ, lisible par une machine."
+
+#: includes/content.admin.inc:610
+msgid "This name cannot be changed."
+msgstr " Ce nom ne peut être modifié."
+
+#: includes/content.admin.inc:618
+msgid "This name cannot be changed later! The name will be prefixed with 'field_' and can include lowercase unaccented letters, numbers, and underscores. The length of the name, including the prefix, is limited to no more than 32 letters."
+msgstr " Ce nom ne pourra pas être modifié par la suite ! Le nom sera préfixé par 'field_' et peut inclure des lettres minuscules non accentués, des nombres et des caractères \"espace souligné\". La longueur du nom, y compris le préfixe, est limitée à un total de 32 caractères."
+
+#: includes/content.admin.inc:626
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr "Nom lisible par une personne, destiné à servir d'étiquette pour ce champ au sein du type de contenu '%type'."
+
+#: includes/content.admin.inc:636
+msgid "The type of data you would like to store in the database with this field."
+msgstr "Type de données que vous souhaitez enregistrer, par le biais de ce champ, dans la base de données."
+
+#: includes/content.admin.inc:646
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr "Type de données que vous souhaitez enregistrer, par le biais de ce champ, dans la base de données. Cette option ne peut être modifiée."
+
+#: includes/content.admin.inc:651;869
+msgid "Widget type"
+msgstr "Type de widget"
+
+#: includes/content.admin.inc:655
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr "Type d'élément de formulaire que vous souhaitez présenter à l'utilisateur lorsqu'il renseigne ce champ dans le type de contenu '%type'."
+
+#: includes/content.admin.inc:669
+msgid "Continue"
+msgstr "Continuer"
+
+#: includes/content.admin.inc:692
+msgid "The field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Le nom de champ '%field_name' est invalide. Le nom ne doit comporter que des lettres minuscules non accentuées, des nombres ou des espaces soulignés."
+
+#: includes/content.admin.inc:695
+msgid "The field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr "Le nom de champ '%field_name' est trop long. La longueur du nom est limitée à 32 caractères, y compris le préfixe 'field_'."
+
+#: includes/content.admin.inc:706
+msgid "The field name %field_name already exists."
+msgstr "Le nom de champ '%field_name' existe déjà."
+
+#: includes/content.admin.inc:709
+msgid "The name 'field_instance' is a reserved name."
+msgstr "Le nom 'field_instance' est un nom réservé."
+
+#: includes/content.admin.inc:741
+msgid "Created field %label."
+msgstr "Le champ '%label' a été créé."
+
+#: includes/content.admin.inc:745
+msgid "There was a problem creating field %label."
+msgstr "Un problème est survenu à la création du champ '%label'."
+
+#: includes/content.admin.inc:754
+msgid "Update field %label."
+msgstr "Mettre à jour le champ '%label'."
+
+#: includes/content.admin.inc:758
+msgid "There was a problem updating field %label."
+msgstr "Un problème est survenu à la mise à jour du champ '%label'."
+
+#: includes/content.admin.inc:786
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Êtes-vous certain de vouloir enlever le champ '%field' ?"
+
+#: includes/content.admin.inc:789
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Si vous avez encore du contenu dans ce champ, il sera perdu. Cette action est irréversible."
+
+#: includes/content.admin.inc:808
+msgid "Removed field %field from %type."
+msgstr "Le champ '%field' de '%type' a été enlevé."
+
+#: includes/content.admin.inc:813
+msgid "There was a problem deleting %field from %type."
+msgstr "Un problème est survenu à la suppression du champ '%field' du type '%type'."
+
+#: includes/content.admin.inc:846
+msgid "%type basic information"
+msgstr "Informations de base pour '%type'"
+
+#: includes/content.admin.inc:876
+msgid "Change basic information"
+msgstr "Modifier les informations de base"
+
+#: includes/content.admin.inc:882
+msgid "%type settings"
+msgstr "Paramètres de '%type'"
+
+#: includes/content.admin.inc:883
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Ces paramètres ne s'applique qu'au champ '%field' tel qu'il apparaît dans le type contenu '%type'."
+
+#: includes/content.admin.inc:900
+msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
+msgstr "Instructions à présenter à l'utilisateur sous ce champ, dans le formulaire d'édition.<br />Balises HTML autorisées : @tags"
+
+#: includes/content.admin.inc:908
+msgid "Default value"
+msgstr "Valeur par défaut"
+
+#: includes/content.admin.inc:955
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using !link_devel's 'devel load' tab on a %type content page might help you figure out the expected format."
+msgstr "Réservé à une utilisation avancée : code PHP renvoyant la valeur par défaut du champ. Ne doit pas inclure les délimiteurs <?php ?>. Si ce champ est renseigné, la valeur renvoyée par le code supplante toute valeur indiquée ci-desus. Format attendu : <pre>!sample</pre> Vous pouvez utiliser l'onglet 'devel load' du module !link_devel sur un nœud de type '%type' pour mieux comprendre le format attendu."
+
+#: includes/content.admin.inc:966
+msgid "This PHP code was set by an administrator and will override any value specified above."
+msgstr "Ce code PHP a été inséré par un administrateur et supplantera toute valeur spécifiée ci-dessus."
+
+#: includes/content.admin.inc:973
+msgid "Global settings"
+msgstr "Paramètres globaux"
+
+#: includes/content.admin.inc:974
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Ces paramètres s'appliquent au champ '%field' dans tous les types de contenu où il apparaît."
+
+#: includes/content.admin.inc:978
+msgid "Required"
+msgstr "Obligatoire"
+
+#: includes/content.admin.inc:983
+msgid "Number of values"
+msgstr "Nombre de valeurs"
+
+#: includes/content.admin.inc:984
+msgid "Unlimited"
+msgstr "Illimité"
+
+#: includes/content.admin.inc:986
+msgid "Select a specific number of values for this field, or 'Unlimited' to provide an 'Add more' button so the users can add as many values as they like."
+msgstr "Choisissez un nombre de valeurs pour ce champ, ou 'Illimité' pour proposer un bouton 'Ajouter' aux utilisateurs, de sorte qu'ils peuvent insérer autant de valeurs qu'ils le souhaitent."
+
+#: includes/content.admin.inc:986
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr "Attention ! Changer ce paramètre alors que des données ont déjà été créées peut conduire à perdre des données !"
+
+#: includes/content.admin.inc:1001
+msgid "Save field settings"
+msgstr "Enregistrer les paramètres du champ"
+
+#: includes/content.admin.inc:1094
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr "Le code PHP de valeur par défaut a renvoyé une valeur incorrecte.<br/>Format attendu : <pre>!sample</pre> Valeur renvoyée : @value"
+
+#: includes/content.admin.inc:1131
+msgid "The default value PHP code created @value which is invalid."
+msgstr "Le code PHP de valeur par défaut a créé @value, qui est invalide."
+
+#: includes/content.admin.inc:1135
+msgid "The default value is invalid."
+msgstr "La valeur par défaut est invalide."
+
+#: includes/content.admin.inc:1158
+msgid "Saved field %label."
+msgstr "Champ '%label' enregistré."
+
+#: includes/content.admin.inc:1463
+msgid "Processing"
+msgstr "Exécution"
+
+#: includes/content.admin.inc:1464
+msgid "The update has encountered an error."
+msgstr "La mise à jour a échoué."
+
+#: includes/content.admin.inc:1478
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "La base de données a été modifiée et des données ont été déplacées ou supprimées."
+
+#: includes/content.admin.inc:1481
+msgid "An error occurred and database alteration did not complete."
+msgstr "Une erreur est survenue et a interrompu la modification de la base de données."
+
+#: includes/content.admin.inc:1584
+msgid "Processing %title"
+msgstr "'%title' en cours de traitement"
+
+#: includes/content.admin.inc:1482
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "1 élément traité avec succès&nbsp:"
+msgstr[1] "@count éléments traités avec succès&nbsp:"
+
+#: includes/content.crud.inc:591
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "La table de champs a été renommée de '%old_name' à '%new_name' et les instances des champs ont été mises à jour."
+
+#: includes/content.crud.inc:629
+msgid "The content fields table %name has been deleted."
+msgstr "La table de champs '%name' a été supprimée."
+
+#: includes/content.node_form.inc:206
+msgid "Add another item"
+msgstr "Ajouter un autre élément"
+
+#: includes/content.token.inc:60
+msgid "Referenced node ID"
+msgstr "Identifiant du nœud référencé"
+
+#: includes/content.token.inc:61
+msgid "Referenced node title"
+msgstr "Titre du nœud référencé"
+
+#: includes/content.token.inc:62
+msgid "Formatted HTML link to the node"
+msgstr "Lien HTML mis en forme vers le nœud"
+
+#: includes/content.token.inc:86
+msgid "Raw number value"
+msgstr "Valeur numérique brute"
+
+#: includes/content.token.inc:87
+msgid "Formatted number value"
+msgstr "Valeur numérique mise en forme"
+
+#: includes/content.token.inc:110
+msgid "Raw, unfiltered text"
+msgstr "Texte brut, non filtré"
+
+#: includes/content.token.inc:111
+msgid "Formatted and filtered text"
+msgstr "Texte filtré et mis en forme"
+
+#: includes/content.token.inc:133
+msgid "Referenced user ID"
+msgstr "Identifiant de l'utilisateur référencé"
+
+#: includes/content.token.inc:134
+msgid "Referenced user name"
+msgstr "Nom de l'utilisateur référencé"
+
+#: includes/content.token.inc:135
+msgid "Formatted HTML link to referenced user"
+msgstr "Lien HTML mis en forme vers l'utilisateur référencé"
+
+#: includes/content.views.inc:93
+msgid "Appears in: @types"
+msgstr "Apparaît dans : @types"
+
+#: includes/content.views.inc:291
+msgid "Format"
+msgstr "Format"
+
+#: includes/content.views.inc:372
+msgid "Group multiple values"
+msgstr "Grouper plusieurs valeurs"
+
+#: includes/content.views.inc:378
+msgid "Show @count value(s)"
+msgstr "Afficher @count valeur(s)"
+
+#: includes/content.views.inc:387
+msgid "starting from @count"
+msgstr "en commençant à @count"
+
+#: includes/content.views.inc:396
+msgid "Reversed (start from last values)"
+msgstr "Inversé (commencer à partir des dernières valeurs)"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.pot b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.pot
new file mode 100644
index 0000000..9bb5e12
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.pot
@@ -0,0 +1,534 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (includes)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content.admin.inc,v 1.181.2.68 2009/06/02 14:49:07 yched
+#  content.rules.inc,v 1.1.2.6 2009/04/30 09:56:07 fago
+#  content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
+#  content.node_form.inc,v 1.7.2.19 2009/06/02 20:18:27 yched
+#  content.token.inc,v 1.5.2.8 2008/12/05 14:59:22 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: includes/content.admin.inc:30
+msgid "edit"
+msgstr ""
+
+#: includes/content.admin.inc:33
+msgid "manage fields"
+msgstr ""
+
+#: includes/content.admin.inc:36
+msgid "delete"
+msgstr ""
+
+#: includes/content.admin.inc:47
+msgid "No content types available."
+msgstr ""
+
+#: includes/content.admin.inc:54
+msgid "» Add a new content type"
+msgstr ""
+
+#: includes/content.admin.inc:67;796;991
+msgid "Field name"
+msgstr ""
+
+#: includes/content.admin.inc:67;811;997
+msgid "Field type"
+msgstr ""
+
+#: includes/content.admin.inc:67
+msgid "Used in"
+msgstr ""
+
+#: includes/content.admin.inc:71
+msgid "@field_name (Locked)"
+msgstr ""
+
+#: includes/content.admin.inc:90
+msgid "No fields have been defined for any content type yet."
+msgstr ""
+
+#: includes/content.admin.inc:106
+msgid "This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled."
+msgstr ""
+
+#: includes/content.admin.inc:108
+msgid "!field (!field_name) is an inactive !field_type field that uses a !widget_type widget."
+msgstr ""
+
+#: includes/content.admin.inc:170;196
+msgid "Configure"
+msgstr ""
+
+#: includes/content.admin.inc:181
+msgid "Locked"
+msgstr ""
+
+#: includes/content.admin.inc:237
+msgid "- Select a field type -"
+msgstr ""
+
+#: includes/content.admin.inc:238
+msgid "- Select a widget -"
+msgstr ""
+
+#: includes/content.admin.inc:253
+msgid "Field name (a-z, 0-9, _)"
+msgstr ""
+
+#: includes/content.admin.inc:258
+msgid "Type of data to store."
+msgstr ""
+
+#: includes/content.admin.inc:263;295
+msgid "Form element to edit the data."
+msgstr ""
+
+#: includes/content.admin.inc:279
+msgid "- Select an existing field -"
+msgstr ""
+
+#: includes/content.admin.inc:290
+msgid "Field to share"
+msgstr ""
+
+#: includes/content.admin.inc:324
+msgid "Group name (a-z, 0-9, _)"
+msgstr ""
+
+#: includes/content.admin.inc:373
+msgid "Add new field: you need to provide a label."
+msgstr ""
+
+#: includes/content.admin.inc:378
+msgid "Add new field: you need to provide a field name."
+msgstr ""
+
+#: includes/content.admin.inc:392
+msgid "Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr ""
+
+#: includes/content.admin.inc:395
+msgid "Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr ""
+
+#: includes/content.admin.inc:399
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr ""
+
+#: includes/content.admin.inc:411
+msgid "Add new field: the field name %field_name already exists."
+msgstr ""
+
+#: includes/content.admin.inc:417
+msgid "Add new field: you need to select a field type."
+msgstr ""
+
+#: includes/content.admin.inc:422
+msgid "Add new field: you need to select a widget."
+msgstr ""
+
+#: includes/content.admin.inc:428
+msgid "Add new field: invalid widget."
+msgstr ""
+
+#: includes/content.admin.inc:449
+msgid "Add existing field: you need to provide a label."
+msgstr ""
+
+#: includes/content.admin.inc:454
+msgid "Add existing field: you need to select a field."
+msgstr ""
+
+#: includes/content.admin.inc:459
+msgid "Add existing field: you need to select a widget."
+msgstr ""
+
+#: includes/content.admin.inc:465
+msgid "Add existing field: invalid widget."
+msgstr ""
+
+#: includes/content.admin.inc:514
+msgid "There was a problem creating field %label."
+msgstr ""
+
+#: includes/content.admin.inc:526
+msgid "The field %label cannot be added to a content type because it is locked."
+msgstr ""
+
+#: includes/content.admin.inc:536
+msgid "There was a problem adding field %label."
+msgstr ""
+
+#: includes/content.admin.inc:578
+msgid "There are no fields configured for this content type. You can add new fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr ""
+
+#: includes/content.admin.inc:625;668
+msgid "Include"
+msgstr ""
+
+#: includes/content.admin.inc:637
+msgid "no styling"
+msgstr ""
+
+#: includes/content.admin.inc:638
+msgid "simple"
+msgstr ""
+
+#: includes/content.admin.inc:639
+msgid "fieldset"
+msgstr ""
+
+#: includes/content.admin.inc:640
+msgid "fieldset - collapsible"
+msgstr ""
+
+#: includes/content.admin.inc:641
+msgid "fieldset - collapsed"
+msgstr ""
+
+#: includes/content.admin.inc:697
+msgid "Your settings have been saved."
+msgstr ""
+
+#: includes/content.admin.inc:767
+msgid "@type: @field (@label)"
+msgstr ""
+
+#: includes/content.admin.inc:793
+msgid "Edit basic information"
+msgstr ""
+
+#: includes/content.admin.inc:799
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr ""
+
+#: includes/content.admin.inc:807
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr ""
+
+#: includes/content.admin.inc:814
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr ""
+
+#: includes/content.admin.inc:819;1003
+msgid "Widget type"
+msgstr ""
+
+#: includes/content.admin.inc:823
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr ""
+
+#: includes/content.admin.inc:833 includes/content.rules.inc:66
+msgid "Continue"
+msgstr ""
+
+#: includes/content.admin.inc:861
+msgid "Updated basic settings for field %label."
+msgstr ""
+
+#: includes/content.admin.inc:865
+msgid "There was a problem updating the basic settings for field %label."
+msgstr ""
+
+#: includes/content.admin.inc:892
+msgid "Are you sure you want to remove the field %field?"
+msgstr ""
+
+#: includes/content.admin.inc:894
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr ""
+
+#: includes/content.admin.inc:901
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr ""
+
+#: includes/content.admin.inc:922
+msgid "Removed field %field from %type."
+msgstr ""
+
+#: includes/content.admin.inc:927
+msgid "There was a problem deleting %field from %type."
+msgstr ""
+
+#: includes/content.admin.inc:946
+msgid "The field %field is locked and cannot be edited."
+msgstr ""
+
+#: includes/content.admin.inc:980
+msgid "%type basic information"
+msgstr ""
+
+#: includes/content.admin.inc:1010;1189
+msgid "Change basic information"
+msgstr ""
+
+#: includes/content.admin.inc:1016
+msgid "%type settings"
+msgstr ""
+
+#: includes/content.admin.inc:1017
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr ""
+
+#: includes/content.admin.inc:1034
+msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
+msgstr ""
+
+#: includes/content.admin.inc:1060
+msgid "Default value"
+msgstr ""
+
+#: includes/content.admin.inc:1090;1245 includes/content.rules.inc:93
+msgid "'@column' => value for @column"
+msgstr ""
+
+#: includes/content.admin.inc:1092;1247 includes/content.rules.inc:95
+msgid "return array(\n  0 => array(@columns),\n  // You'll usually want to stop here. Provide more values\n  // if you want your 'default value' to be multi-valued:\n  1 => array(@columns),\n  2 => ...\n);"
+msgstr ""
+
+#: includes/content.admin.inc:1100
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr ""
+
+#: includes/content.admin.inc:1111
+msgid "This PHP code was set by an administrator and will override any value specified above."
+msgstr ""
+
+#: includes/content.admin.inc:1118
+msgid "Global settings"
+msgstr ""
+
+#: includes/content.admin.inc:1119
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr ""
+
+#: includes/content.admin.inc:1123
+msgid "Required"
+msgstr ""
+
+#: includes/content.admin.inc:1126
+msgid "Maximum number of values users can enter for this field."
+msgstr ""
+
+#: includes/content.admin.inc:1128
+msgid "'Unlimited' will provide an 'Add more' button so the users can add as many values as they like."
+msgstr ""
+
+#: includes/content.admin.inc:1130
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr ""
+
+#: includes/content.admin.inc:1133
+msgid "Number of values"
+msgstr ""
+
+#: includes/content.admin.inc:1249
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr ""
+
+#: includes/content.admin.inc:1288
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr ""
+
+#: includes/content.admin.inc:1292
+msgid "The default value is invalid."
+msgstr ""
+
+#: includes/content.admin.inc:1316
+msgid "Added field %label."
+msgstr ""
+
+#: includes/content.admin.inc:1320
+msgid "Saved field %label."
+msgstr ""
+
+#: includes/content.admin.inc:1678
+msgid "Processing"
+msgstr ""
+
+#: includes/content.admin.inc:1679
+msgid "The update has encountered an error."
+msgstr ""
+
+#: includes/content.admin.inc:1693
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr ""
+
+#: includes/content.admin.inc:1696
+msgid "An error occurred and database alteration did not complete."
+msgstr ""
+
+#: includes/content.admin.inc:1799
+msgid "Processing %title"
+msgstr ""
+
+#: includes/content.admin.inc:1865
+msgid "%name must be an integer."
+msgstr ""
+
+#: includes/content.admin.inc:1875
+msgid "%name must be a positive integer."
+msgstr ""
+
+#: includes/content.admin.inc:1885
+msgid "%name must be a number."
+msgstr ""
+
+#: includes/content.admin.inc:1697
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: includes/content.crud.inc:589
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr ""
+
+#: includes/content.crud.inc:633
+msgid "The content fields table %name has been deleted."
+msgstr ""
+
+#: includes/content.node_form.inc:223
+msgid "Add another item"
+msgstr ""
+
+#: includes/content.rules.inc:15
+msgid "Populate a field"
+msgstr ""
+
+#: includes/content.rules.inc:23;224
+msgid "You should make sure that the used field exists in the given content type."
+msgstr ""
+
+#: includes/content.rules.inc:56
+msgid "Select the machine-name of the field."
+msgstr ""
+
+#: includes/content.rules.inc:84
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr ""
+
+#: includes/content.rules.inc:102
+msgid "Advanced usage only: PHP code that returns the value to set. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content page might help you figure out the expected format."
+msgstr ""
+
+#: includes/content.rules.inc:130
+msgid "You have to return the default value in the expected format."
+msgstr ""
+
+#: includes/content.rules.inc:193
+msgid "Populate @node's field '@field'"
+msgstr ""
+
+#: includes/content.rules.inc:210
+msgid "Field has value"
+msgstr ""
+
+#: includes/content.rules.inc:215
+msgid "You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value."
+msgstr ""
+
+#: includes/content.rules.inc:219
+msgid "Field has changed"
+msgstr ""
+
+#: includes/content.rules.inc:221
+msgid "Content containing changes"
+msgstr ""
+
+#: includes/content.rules.inc:222
+msgid "Content not containing changes"
+msgstr ""
+
+#: includes/content.rules.inc:259
+msgid "@node's field '@field' has value"
+msgstr ""
+
+#: includes/content.rules.inc:279
+msgid "Select the machine-name of the field to look at."
+msgstr ""
+
+#: includes/content.rules.inc:285
+msgid "@node's field '@field' has been changed"
+msgstr ""
+
+#: includes/content.token.inc:12;15
+msgid "Token"
+msgstr ""
+
+#: includes/content.token.inc:81
+msgid "Referenced node ID"
+msgstr ""
+
+#: includes/content.token.inc:82
+msgid "Referenced node title"
+msgstr ""
+
+#: includes/content.token.inc:83
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr ""
+
+#: includes/content.token.inc:84
+msgid "Formatted html link to the referenced node."
+msgstr ""
+
+#: includes/content.token.inc:85
+msgid "Relative path alias to the referenced node."
+msgstr ""
+
+#: includes/content.token.inc:86
+msgid "Absolute path alias to the referenced node."
+msgstr ""
+
+#: includes/content.token.inc:114
+msgid "Raw number value"
+msgstr ""
+
+#: includes/content.token.inc:115
+msgid "Formatted number value"
+msgstr ""
+
+#: includes/content.token.inc:138
+msgid "Raw, unfiltered text"
+msgstr ""
+
+#: includes/content.token.inc:139
+msgid "Formatted and filtered text"
+msgstr ""
+
+#: includes/content.token.inc:161
+msgid "Referenced user ID"
+msgstr ""
+
+#: includes/content.token.inc:162
+msgid "Referenced user name"
+msgstr ""
+
+#: includes/content.token.inc:163
+msgid "Formatted HTML link to referenced user"
+msgstr ""
+
+#: includes/content.token.inc:164
+msgid "Relative path alias to the referenced user."
+msgstr ""
+
+#: includes/content.token.inc:165
+msgid "Absolute path alias to the referenced user."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.sv.po
new file mode 100644
index 0000000..31eede5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/includes.sv.po
@@ -0,0 +1,590 @@
+# $Id$
+#
+# Swedish translation of Drupal (includes)
+# Generated from files:
+#  content.admin.inc,v 1.181.2.64 2009/03/01 13:48:44 yched
+#  content.panels.inc,v 1.1.2.6 2008/11/03 14:12:41 yched
+#  content.rules.inc,v 1.1.2.4 2008/10/24 11:11:48 fago
+#  content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
+#  content.node_form.inc,v 1.7.2.18 2009/02/10 22:53:04 yched
+#  content.token.inc,v 1.5.2.8 2008/12/05 14:59:22 yched
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Includes 6.x\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-04-20 22:52+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: includes/content.admin.inc:30
+msgid "edit"
+msgstr "redigera"
+
+#: includes/content.admin.inc:33
+msgid "manage fields"
+msgstr "hantera fält"
+
+#: includes/content.admin.inc:36
+msgid "delete"
+msgstr "radera"
+
+#: includes/content.admin.inc:47
+msgid "No content types available."
+msgstr "Inga innehållstyper tillgängliga."
+
+#: includes/content.admin.inc:54
+msgid "» Add a new content type"
+msgstr "» Lägg till en ny innehållstyp"
+
+#: includes/content.admin.inc:67;789;984
+msgid "Field name"
+msgstr "Fältnamn"
+
+#: includes/content.admin.inc:67;804;990
+msgid "Field type"
+msgstr "Fälttyp"
+
+#: includes/content.admin.inc:67
+msgid "Used in"
+msgstr "Används i"
+
+#: includes/content.admin.inc:71
+msgid "@field_name (Locked)"
+msgstr "@field_name (Låst)"
+
+#: includes/content.admin.inc:90
+msgid "No fields have been defined for any content type yet."
+msgstr "Inga fält har definierat för någon innehållstyp ännu."
+
+#: includes/content.admin.inc:106
+msgid "This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled."
+msgstr "Denna innehållstyp har inaktiva fält. Inaktiva fält inkluderas ej i listan av tillgängliga fält förrän deras moduler aktiverats."
+
+#: includes/content.admin.inc:108
+msgid "!field (!field_name) is an inactive !field_type field that uses a !widget_type widget."
+msgstr "!field (!field_name) är ett inaktivt !field_type fält som använder en !widget_type gränssnittskomponent."
+
+#: includes/content.admin.inc:170;196
+msgid "Configure"
+msgstr "Konfigurera"
+
+#: includes/content.admin.inc:181
+msgid "Locked"
+msgstr "Låst"
+
+#: includes/content.admin.inc:237
+msgid "- Select a field type -"
+msgstr "- Välj en fälttyp -"
+
+#: includes/content.admin.inc:238
+msgid "- Select a widget -"
+msgstr "- Välj en gränssnittskomponent -"
+
+#: includes/content.admin.inc:253
+msgid "Field name (a-z, 0-9, _)"
+msgstr "Fältnamn (a-z, 0-9, _)"
+
+#: includes/content.admin.inc:258
+msgid "Type of data to store."
+msgstr "Typ av data att lagra."
+
+#: includes/content.admin.inc:263;295
+msgid "Form element to edit the data."
+msgstr "Formulärbeståndsdel för att redigera datan."
+
+#: includes/content.admin.inc:279
+msgid "- Select an existing field -"
+msgstr "- Välj ett befintligt fält -"
+
+#: includes/content.admin.inc:290
+msgid "Field to share"
+msgstr "Fält att dela"
+
+#: includes/content.admin.inc:324
+msgid "Group name (a-z, 0-9, _)"
+msgstr "Gruppnamn (a-z, 0-9, _)"
+
+#: includes/content.admin.inc:365
+msgid "Add new field: you need to provide a label."
+msgstr "Lägg till nytt fält: du måste ange en etikett."
+
+#: includes/content.admin.inc:370
+msgid "Add new field: you need to provide a field name."
+msgstr "Lägg till nytt fält: du måste ange ett fältnamn."
+
+#: includes/content.admin.inc:384
+msgid "Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Lägg till nytt fält: fältnamnet %field_name är ogiltigt. Namnet kan bara innehålla gemena tecken som inte är accentuerade, nummer och understreck."
+
+#: includes/content.admin.inc:387
+msgid "Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr "Lägg till nytt fält: fältnamnet %field_name är för långt. Namnet är begränsat till 32 tecken, inkluderat prefixet 'field_'."
+
+#: includes/content.admin.inc:391
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr "Lägg till nytt fält: namnet 'field_instance' är ett reserverat namn."
+
+#: includes/content.admin.inc:403
+msgid "Add new field: the field name %field_name already exists."
+msgstr "Lägg till nytt fält: fältnamnet %field_name existerar redan."
+
+#: includes/content.admin.inc:409
+msgid "Add new field: you need to select a field type."
+msgstr "Lägg till nytt fält: du måste välja en fälttyp."
+
+#: includes/content.admin.inc:414
+msgid "Add new field: you need to select a widget."
+msgstr "Lägg till nytt fält: du måste välja en gränssnittskomponent."
+
+#: includes/content.admin.inc:420
+msgid "Add new field: invalid widget."
+msgstr "Lägg till nytt fält: ogiltig gränssnittskomponent."
+
+#: includes/content.admin.inc:441
+msgid "Add existing field: you need to provide a label."
+msgstr "Lägg till existerande fält: du måste ange en etikett."
+
+#: includes/content.admin.inc:446
+msgid "Add existing field: you need to select a field."
+msgstr "Lägg till existerande fält: du måste välja ett fält."
+
+#: includes/content.admin.inc:451
+msgid "Add existing field: you need to select a widget."
+msgstr "Lägg till existerande fält: du måste välja en gränssnittskomponent."
+
+#: includes/content.admin.inc:457
+msgid "Add existing field: invalid widget."
+msgstr "Lägg till existerande fält: ogiltig gränssnittskomponent."
+
+#: includes/content.admin.inc:506
+msgid "There was a problem creating field %label."
+msgstr "Det uppstod ett problem med att skapa fältet %label."
+
+#: includes/content.admin.inc:518
+msgid "The field %label cannot be added to a content type because it is locked."
+msgstr "Fältet %label kan inte läggas till en innehållstyp därför att det är låst."
+
+#: includes/content.admin.inc:528
+msgid "There was a problem adding field %label."
+msgstr "Det uppstod ett problem med att lägga till fältet %label."
+
+#: includes/content.admin.inc:571
+msgid "There are no fields configured for this content type. You can add new fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr "Det finns inga fält konfigurerade för denna innehållstyp. Du kan lägga till nya fält på sidan <a href=\"@link\">Hantera fält</a>."
+
+#: includes/content.admin.inc:579
+#: includes/content.panels.inc:54
+msgid "Inline"
+msgstr "Löpande"
+
+#: includes/content.admin.inc:618;661
+msgid "Include"
+msgstr "Inkludera"
+
+#: includes/content.admin.inc:630
+msgid "no styling"
+msgstr "ingen stil"
+
+#: includes/content.admin.inc:631
+msgid "simple"
+msgstr "enkel"
+
+#: includes/content.admin.inc:632
+msgid "fieldset"
+msgstr "fältgrupp"
+
+#: includes/content.admin.inc:633
+msgid "fieldset - collapsible"
+msgstr "fältgrupp - hopfällbar"
+
+#: includes/content.admin.inc:634
+msgid "fieldset - collapsed"
+msgstr "fältgrupp - hopfälld"
+
+#: includes/content.admin.inc:690
+msgid "Your settings have been saved."
+msgstr "Dina inställningar har sparats."
+
+#: includes/content.admin.inc:760
+msgid "@type: @field (@label)"
+msgstr "@type: @field (@label)"
+
+#: includes/content.admin.inc:786
+msgid "Edit basic information"
+msgstr "Redigera grundläggande information."
+
+#: includes/content.admin.inc:792
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr "Det maskinläsbara namnet på fältet. Detta namn kan inte ändras."
+
+#: includes/content.admin.inc:800
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr "Det synliga namnet som skall användas som etikett för detta fält i innehållstypen %type."
+
+#: includes/content.admin.inc:807
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr "Den typ av data som du vill lagra i databasen med detta fält. Detta val kan inte ändras."
+
+#: includes/content.admin.inc:812;996
+msgid "Widget type"
+msgstr "Typ av gränssnittskomponent"
+
+#: includes/content.admin.inc:816
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr "Typ av formulärbeståndsdel som du vill presentera för användaren när detta fält skapas i innehållstypen %type."
+
+#: includes/content.admin.inc:826
+#: includes/content.rules.inc:66
+msgid "Continue"
+msgstr "Fortsätt"
+
+#: includes/content.admin.inc:854
+msgid "Updated basic settings for field %label."
+msgstr "Uppdaterade grundläggande inställningar för fältet %label."
+
+#: includes/content.admin.inc:858
+msgid "There was a problem updating the basic settings for field %label."
+msgstr "Det uppstod ett problem vid uppdateringen av de grundläggande inställningarna för fältet %label."
+
+#: includes/content.admin.inc:885
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Är du säker på att du vill ta bort fältet %field?"
+
+#: includes/content.admin.inc:887
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Om du har något innehåll kvar i detta fält kommer det att förloras. Denna åtgärd kan ångras."
+
+#: includes/content.admin.inc:894
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr "Det här fältet är <strong>låst</strong> och kan inte tas bort."
+
+#: includes/content.admin.inc:915
+msgid "Removed field %field from %type."
+msgstr "Tog bort fältet %field från %type."
+
+#: includes/content.admin.inc:920
+msgid "There was a problem deleting %field from %type."
+msgstr "Det uppstod ett problem vid borttagningen av %field från %type."
+
+#: includes/content.admin.inc:939
+msgid "The field %field is locked and cannot be edited."
+msgstr "Fältet %field är låst och kan inte redigeras."
+
+#: includes/content.admin.inc:973
+msgid "%type basic information"
+msgstr "Grundläggande information för %type"
+
+#: includes/content.admin.inc:1003;1182
+msgid "Change basic information"
+msgstr "Ändra grundläggande information"
+
+#: includes/content.admin.inc:1009
+msgid "%type settings"
+msgstr "Inställningar för %type"
+
+#: includes/content.admin.inc:1010
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Dessa inställningar gäller enbart för fältet %field så som det visas i innehållstypen %type."
+
+#: includes/content.admin.inc:1027
+msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
+msgstr "Instruktioner att visa för användaren nedanför detta fält för redigeringsformuläret.<br />Tillåtna HTML-taggar: @tags"
+
+#: includes/content.admin.inc:1053
+msgid "Default value"
+msgstr "Förvalt värde"
+
+#: includes/content.admin.inc:1083;1238
+#: includes/content.rules.inc:93
+msgid "'@column' => value for @column"
+msgstr "'@column' => värde för @column"
+
+#: includes/content.admin.inc:1085;1240
+#: includes/content.rules.inc:95
+msgid ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgstr ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // Vanligtvis vill du avsluta här. Tillhandahåll fler värden\n"
+"  // om du vill att ditt 'förvalda värde' skall innehålla flera värden:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+
+#: includes/content.admin.inc:1093
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr "Enbart avancerat användande: PHP-kod som returnerar ett förvalt värde. Skall inte inkludera avgränsarna <?php ?>. Om detta fält är ifyllt, kommer värdet som returneras av denna kod att åsidosätta värden specificerade ovan. Förväntat format: <pre>!sample</pre>För att komma underfund med det förväntade formatet kan du använda fliken <em>devel load</em> tillhandahållen av <a href=\"@link_devel\">modulen Devel</a> på en innehållssida av typen %type."
+
+#: includes/content.admin.inc:1104
+msgid "This PHP code was set by an administrator and will override any value specified above."
+msgstr "Denna PHP-kod angavs av en administratör och kommer att åsidosätta värden specificerade ovan."
+
+#: includes/content.admin.inc:1111
+msgid "Global settings"
+msgstr "Globala inställningar"
+
+#: includes/content.admin.inc:1112
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Dessa inställningar gäller för fältet %field på varje innehållstyp som det förekommer i."
+
+#: includes/content.admin.inc:1116
+msgid "Required"
+msgstr "Krävd"
+
+#: includes/content.admin.inc:1119
+msgid "Maximum number of values users can enter for this field."
+msgstr "Maximalt antal av värden som användare kan ange för detta fält."
+
+#: includes/content.admin.inc:1121
+msgid "'Unlimited' will provide an 'Add more' button so the users can add as many values as they like."
+msgstr "\"Obegränsad\" kommer att tillhandahålla en knapp \"Lägg till fler\" så att användaren kan lägga till så många värden de vill."
+
+#: includes/content.admin.inc:1123
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr "Varning! Ändras denna inställning efter att data har skapats kan resultera i förlust av data!"
+
+#: includes/content.admin.inc:1126
+msgid "Number of values"
+msgstr "Antal värden"
+
+#: includes/content.admin.inc:1242
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr "PHP-kodens förvalda värde returnerade ett otillåtet värde.<br />Förväntat format: <pre>!sample</pre> Returnerat värde: @value"
+
+#: includes/content.admin.inc:1281
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr "PHP-kod för \"förvalt värde\" returnerade @value, som inte är giltigt."
+
+#: includes/content.admin.inc:1285
+msgid "The default value is invalid."
+msgstr "Det förvalta värdet är inte giltigt."
+
+#: includes/content.admin.inc:1309
+msgid "Added field %label."
+msgstr "Lade till fält %label."
+
+#: includes/content.admin.inc:1313
+msgid "Saved field %label."
+msgstr "Sparade fält %label."
+
+#: includes/content.admin.inc:1662
+msgid "Processing"
+msgstr "Bearbetar"
+
+#: includes/content.admin.inc:1663
+msgid "The update has encountered an error."
+msgstr "Uppdateringen stötte på ett fel."
+
+#: includes/content.admin.inc:1677
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "Databasen har ändrats och data har flyttats eller raderats."
+
+#: includes/content.admin.inc:1680
+msgid "An error occurred and database alteration did not complete."
+msgstr "Ett fel inträffade och ändringen av databasen slutfördes inte."
+
+#: includes/content.admin.inc:1783
+msgid "Processing %title"
+msgstr "Bearbetar %title"
+
+#: includes/content.admin.inc:1849
+msgid "%name must be an integer."
+msgstr "%name måste vara ett heltal."
+
+#: includes/content.admin.inc:1859
+msgid "%name must be a positive integer."
+msgstr "%name måste vara ett positivt heltal."
+
+#: includes/content.admin.inc:1869
+msgid "%name must be a number."
+msgstr "%name måste vara ett nummer."
+
+#: includes/content.admin.inc:1681
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "1 alternativ bearbetades utan problem:"
+msgstr[1] "@count alternativ bearbetades utan problem:"
+
+#: includes/content.crud.inc:589
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "Tabellen för innehållets fält %old_name har döpts om till %new_name och förekomsten av fälten har uppdaterats."
+
+#: includes/content.crud.inc:633
+msgid "The content fields table %name has been deleted."
+msgstr "Tabellen för innehållets fält %name har raderats."
+
+#: includes/content.node_form.inc:223
+msgid "Add another item"
+msgstr "Lägg till ytterligare alternativ"
+
+#: includes/content.panels.inc:21;35
+msgid "Content field"
+msgstr "Fält för innehåll"
+
+#: includes/content.panels.inc:38
+msgid "A content field from the referenced node."
+msgstr "Ett fält för innehåll från den refererande noden."
+
+#: includes/content.panels.inc:52
+msgid "Block title"
+msgstr "Titel på block"
+
+#: includes/content.panels.inc:55
+msgid "Hidden"
+msgstr "Gömd"
+
+#: includes/content.panels.inc:57
+msgid "Configure how the label is going to be displayed."
+msgstr "Konfigurera hur etiketten skall visas."
+
+#: includes/content.panels.inc:73
+msgid "Field / Formatter"
+msgstr "Fält / Formaterare"
+
+#: includes/content.panels.inc:76
+msgid "Select a field and formatter."
+msgstr "Välj ett fält och formaterare"
+
+#: includes/content.panels.inc:92
+msgid "\"@s\" field @name"
+msgstr "fältet \"@s\" för @name"
+
+#: includes/content.rules.inc:15
+msgid "Populate a field"
+msgstr "Befolka ett fält"
+
+#: includes/content.rules.inc:23;212
+msgid "You should make sure that the used field exists in the given content type."
+msgstr "Du måste säkerställa att det använda fältet existerar i den givna innehållstypen."
+
+#: includes/content.rules.inc:56
+msgid "Select the machine-name of the field."
+msgstr "Vält maskinnamnet för fältet."
+
+#: includes/content.rules.inc:84
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr "Avancerat: Specificera fältets värde med PHP-kod"
+
+#: includes/content.rules.inc:102
+msgid "Advanced usage only: PHP code that returns the value to set. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content page might help you figure out the expected format."
+msgstr "Enbart avancerat användande: PHP-kod som returnerar värdet som skall anges. Skall inte inkludera avgränsarna <?php ?>. Om detta fält är ifyllt, kommer värdet som returneras av denna kod att åsidosätta värden specificerade ovan. Förväntat format: <pre>!sample</pre>För att komma underfund med det förväntade formatet kan du använda fliken <em>devel load</em> tillhandahållen av <a href=\"@link_devel\">modulen Devel</a>."
+
+#: includes/content.rules.inc:130
+msgid "You have to return the default value in the expected format."
+msgstr "Du måste returnera det förvalda värdet i det förväntade formatet."
+
+#: includes/content.rules.inc:181
+msgid "Populate @node's field '@field'"
+msgstr "Befolka fältet \"@field\" för @node"
+
+#: includes/content.rules.inc:198
+msgid "Field has value"
+msgstr "Fält har värde"
+
+#: includes/content.rules.inc:203
+msgid "You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value."
+msgstr "Du måste säkerställa att det använda fältet existerar i den givna innehållstypen. Villkoret returnerar SANT, om det valda fältet har det givna värdet."
+
+#: includes/content.rules.inc:207
+msgid "Field has changed"
+msgstr "Fält har ändrats"
+
+#: includes/content.rules.inc:209
+msgid "Content containing changes"
+msgstr "Innehåll innehåller ändringar"
+
+#: includes/content.rules.inc:210
+msgid "Content not containing changes"
+msgstr "Innehåll innehåller inte ändringar"
+
+#: includes/content.rules.inc:249
+msgid "@node's field '@field' has value"
+msgstr "Fältet \"@field\" för @node har värde"
+
+#: includes/content.rules.inc:269
+msgid "Select the machine-name of the field to look at."
+msgstr "Välj maskinnamnet för fältet att titta på."
+
+#: includes/content.rules.inc:275
+msgid "@node's field '@field' has been changed"
+msgstr "Fältet \"@field\" för @node har ändrats"
+
+#: includes/content.token.inc:12;15
+msgid "Token"
+msgstr "Tecken"
+
+#: includes/content.token.inc:81
+msgid "Referenced node ID"
+msgstr "ID för hänvisad nod"
+
+#: includes/content.token.inc:82
+msgid "Referenced node title"
+msgstr "Titel för hänvisad nod"
+
+#: includes/content.token.inc:83
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr "Ofiltrerad titel för hänvisad nod. VARNING - obearbetad användarinmatning."
+
+#: includes/content.token.inc:84
+msgid "Formatted html link to the referenced node."
+msgstr "Formatterad HTML-länk till den hänvisade noden."
+
+#: includes/content.token.inc:85
+msgid "Relative path alias to the referenced node."
+msgstr "Relativ sökvägsalias till den hänvisade noden."
+
+#: includes/content.token.inc:86
+msgid "Absolute path alias to the referenced node."
+msgstr "Absolut sökvägsalias till den hänvisade noden."
+
+#: includes/content.token.inc:114
+msgid "Raw number value"
+msgstr "Obearbetat numervärde"
+
+#: includes/content.token.inc:115
+msgid "Formatted number value"
+msgstr "Formaterat nummervärde"
+
+#: includes/content.token.inc:138
+msgid "Raw, unfiltered text"
+msgstr "Obearbetat, ofiltrerad text"
+
+#: includes/content.token.inc:139
+msgid "Formatted and filtered text"
+msgstr "Formatterad och filtrerad text"
+
+#: includes/content.token.inc:161
+msgid "Referenced user ID"
+msgstr "ID för hänvisad användare"
+
+#: includes/content.token.inc:162
+msgid "Referenced user name"
+msgstr "Namn för hänvisad användare"
+
+#: includes/content.token.inc:163
+msgid "Formatted HTML link to referenced user"
+msgstr "Formatterad HTML-klnk till hänvisad användare"
+
+#: includes/content.token.inc:164
+msgid "Relative path alias to the referenced user."
+msgstr "Relativt sökvägsalias till den hänvisade användaren."
+
+#: includes/content.token.inc:165
+msgid "Absolute path alias to the referenced user."
+msgstr "Absolut sökvägsalias till den hänvisade användaren."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/it.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/it.po
new file mode 100644
index 0000000..395415d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/it.po
@@ -0,0 +1,846 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+# field.php,v 1.7.2.8 2007/03/01 00:20:35 yched
+# text.module,v 1.41.2.12 2007/03/12 00:50:34 yched
+# number.module,v 1.34.2.20 2007/03/01 04:51:54 yched
+# content_admin.inc,v 1.28.2.35 2007/04/09 14:12:47 yched
+# fieldgroup.module,v 1.1.4.31 2007/03/27 12:27:42 fago
+# content_copy.module,v 1.1.2.7 2007/03/11 23:39:49 yched
+# content.module,v 1.90.2.39 2007/03/11 23:39:49 yched
+# content_crud.inc,v 1.4.2.11 2007/01/26 12:34:56 karens
+# content_views.inc,v 1.2.2.14 2007/04/09 14:12:47 yched
+# nodereference.module,v 1.39.2.17 2007/03/05 21:58:47 yched
+# userreference.module,v 1.30.2.16 2007/03/05 21:58:47 yched
+# optionwidgets.module,v 1.10.2.8 2007/03/29 12:52:13 yched
+# optionwidgets.install,v 1.1.4.5 2007/01/25 17:23:26 yched
+# content.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+# content_copy.info,v 1.1.2.4 2007/01/08 13:29:21 karens
+# fieldgroup.info,v 1.1.2.2 2007/01/05 11:57:46 yched
+# nodereference.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+# number.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+# optionwidgets.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+# text.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+# userreference.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#
+msgid ""
+""
+msgstr "Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2007-07-08 16:34+0200\n"
+"PO-Revision-Date: 2007-07-09 16:36+0100\n"
+"Last-Translator: Alberto G. <alby115 at tiscali.it>\n"
+"Language-Team: Italian <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: field.php:106
+#: text.module:34
+msgid "Maximum length"
+msgstr "Lunghezza massima"
+
+#: field.php:109
+#: text.module:37
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "Numero massimo di caratteri del campo. Lascialo vuoto per mantenerlo illimitato."
+
+#: field.php:217
+#: number.module:144
+#: text.module:118
+msgid "Illegal value for %name."
+msgstr "Parametro %name non corretto."
+
+#: field.php:352
+#: text.module:213
+msgid "Rows"
+msgstr "Righe"
+
+#: field.php:360
+#: text.module:221
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"Righe\" deve essere un intero positivo."
+
+#: content_admin.inc:15
+msgid "Field name"
+msgstr "Nome del campo"
+
+#: content_admin.inc:15
+msgid "Field type"
+msgstr "Tipo di campo"
+
+#: content_admin.inc:15
+msgid "Used in"
+msgstr "Usato in"
+
+#: content_admin.inc:68
+msgid "There are no groups configured for this content type."
+msgstr "Non ci sono gruppi impostati per questo tipo di contenuto."
+
+#: content_admin.inc:78
+msgid "There are no fields configured for this content type."
+msgstr "Non ci sono campi impostati per questo tipo di contenuto."
+
+#: content_admin.inc:103
+msgid "group"
+msgstr "gruppo"
+
+#: content_admin.inc:106
+msgid "configure"
+msgstr "configura"
+
+#: content_admin.inc:107
+msgid "remove"
+msgstr "rimuovi"
+
+#: content_admin.inc:158
+msgid "body"
+msgstr "corpo"
+
+#: content_admin.inc:179
+msgid "Update"
+msgstr "Aggiorna"
+
+#: content_admin.inc:203
+#: fieldgroup.module:84
+msgid "Label"
+msgstr "Etichetta"
+
+#: content_admin.inc:203
+msgid "Name"
+msgstr "Nome"
+
+#: content_admin.inc:203
+msgid "Type"
+msgstr "Tipo"
+
+#: content_admin.inc:203
+msgid "Weight"
+msgstr "Peso"
+
+#: content_admin.inc:203
+#: fieldgroup.module:512
+msgid "Group"
+msgstr "Gruppo"
+
+#: content_admin.inc:203
+msgid "Operations"
+msgstr "Operazioni"
+
+#: content_admin.inc:271
+msgid "No fields have been added to this group."
+msgstr "Nessun campo è stato aggiunto a questo gruppo."
+
+#: content_admin.inc:276
+msgid "!label (!name)"
+msgstr "!label (!nome)"
+
+#: content_admin.inc:311
+msgid "Updated field groups."
+msgstr "Il campo dei gruppi è stato aggiornato."
+
+#: content_admin.inc:322
+msgid "Updated group weights."
+msgstr "I pesi del gruppo sono stati aggiornati."
+
+#: content_admin.inc:333
+msgid "Updated field weights."
+msgstr "I pesi del campo sono stati aggiornati."
+
+#: content_admin.inc:362
+#: content_copy.module:158
+#: fieldgroup.module:335
+msgid "Submit"
+msgstr "Inoltra"
+
+#: content_admin.inc:367
+msgid "Field"
+msgstr "Campo"
+
+#: content_admin.inc:402
+msgid "Your settings have been saved."
+msgstr "Le tue impostazioni sono state salvate."
+
+#: content_admin.inc:412
+#: fieldgroup.module:479
+msgid "<Hidden>"
+msgstr "<Nascosto>"
+
+#: content_admin.inc:415
+#: fieldgroup.module:478
+msgid "Above"
+msgstr "Sopra"
+
+#: content_admin.inc:416
+msgid "Inline"
+msgstr "Inlinea"
+
+#: content_admin.inc:442
+msgid "Teaser"
+msgstr "Anteprima"
+
+#: content_admin.inc:443
+msgid "Full"
+msgstr "Pieno"
+
+#: content_admin.inc:474
+msgid "Add existing field"
+msgstr "Aggiungi un campo esistente"
+
+#: content_admin.inc:483
+#: content.module:108
+msgid "Add field"
+msgstr "Aggiungi campo"
+
+#: content_admin.inc:509
+msgid "Create new field"
+msgstr "Crea un nuovo campo"
+
+#: content_admin.inc:515
+msgid "The machine-readable name of the field.<br/>Allowed characters : unaccentuated a-z, numbers and _. All other characters will be discarded.<br/>You'll be able to choose a human-readable label for the field on next page"
+msgstr "Il nome del campo leggibile dal calcolatore.<br/>Caratteri ammessi : a-z senza accenti, numeri e _. Tutti gli altri caratteri verranno scartati.<br/>Potrai scegliere una etichetta leggibile dall'utente nella prossima pagina."
+
+#: content_admin.inc:528
+msgid "Create field"
+msgstr "Crea campo"
+
+#: content_admin.inc:540
+msgid "No field modules are enabled. You need to <a href=\"!modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr "Non ci sono moduli di campo abilitati. Devi <a href=\"!modules_url\">abilitarne uno</a>, come il text.module, prima di poter aggiungere nuovi campi."
+
+#: content_admin.inc:596
+msgid "Added field %label."
+msgstr "Aggiunto il campo %label"
+
+#: content_admin.inc:608
+msgid "The field name %field_name already exists."
+msgstr "Il nome del campo %field_name esiste già."
+
+#: content_admin.inc:612
+msgid "The field name %field_name is invalid."
+msgstr "Il nome del campo %field_name non è valido."
+
+#: content_admin.inc:663
+msgid "Created field %label."
+msgstr "Il campo %label è stato creato"
+
+#: content_admin.inc:685
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Sei sicuro di voler eliminare il campo %field?"
+
+#: content_admin.inc:687
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Se hai lasciato dei dati in questo campo, li perderai. Questa azione non può essere annullata."
+
+#: content_admin.inc:688
+#: fieldgroup.module:216
+msgid "Remove"
+msgstr "Elimina"
+
+#: content_admin.inc:688
+#: fieldgroup.module:216
+msgid "Cancel"
+msgstr "Cancella"
+
+#: content_admin.inc:706
+msgid "Removed field %field from %type."
+msgstr "Elimina il campo %field da %$type."
+
+#: content_admin.inc:729
+msgid "Widget settings"
+msgstr "Impostazioni widget"
+
+#: content_admin.inc:730
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Queste impostazioni sono applicate solo al campo %field in quanto appartiene al tipo di contenuto %type."
+
+#: content_admin.inc:744
+msgid "Widget"
+msgstr "Widget"
+
+#: content_admin.inc:765
+#: fieldgroup.module:106
+msgid "Help text"
+msgstr "Testo di aiuto"
+
+#: content_admin.inc:768
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr "Istruzioni da presentare all'utente sotto questo campo nel form di editing"
+
+#: content_admin.inc:777
+msgid "Default value"
+msgstr "Valore di default"
+
+#: content_admin.inc:800
+#: number.module:65
+#: text.module:49
+msgid "Php code"
+msgstr "Codice PHP"
+
+#: content_admin.inc:812
+#: number.module:71
+#: text.module:55
+msgid "Code"
+msgstr "Codice"
+
+#: content_admin.inc:816
+msgid "Advanced Usage Only: PHP code that returns a default value. Should not include <?php ?> delimiters.<br/>If this field is filled out, the value returned by this code will override any value in the textfield above.<br/>Expected format : @sample."
+msgstr "Esclusivo per l'uso avanzato: il codice PHP che restituisce un valore di default non dovrebbe includere i delimitatori <?php ?>.<br/>Se questo campo venisse riempito, il valore restituito dal codice sovrascriverà tutti i valori inseriti nei campi di testo precedenti.<br/> Formattazione attesa : @sample"
+
+#: content_admin.inc:822
+msgid "Data settings"
+msgstr "Impostazioni della data"
+
+#: content_admin.inc:823
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Queste impostazioni verranno applicate al campo %field in ogni tipo di contenuto in cui esso appare."
+
+#: content_admin.inc:827
+msgid "Required"
+msgstr "Richiesto"
+
+#: content_admin.inc:832
+msgid "Multiple values"
+msgstr "Valori multipli"
+
+#: content_admin.inc:843
+msgid "Save field settings"
+msgstr "Salva le impostazioni del campo"
+
+#: content_admin.inc:903
+msgid "The default value php code returned an incorrect value<br/>Expected format : @sample<br/>Returned value : @value"
+msgstr "Il codice PHP per il valore di default ha restituito un valore errato<br/>Formato atteso : @sample<br/>Valore restituito : @value"
+
+#: content_admin.inc:941
+msgid "The default value php code created @value which is invalid."
+msgstr "Il codice PHP per il valore di default ha creato @value che non è valido."
+
+#: content_admin.inc:944
+msgid "The default value is invalid."
+msgstr "Il valore di default è invalido."
+
+#: content_admin.inc:1001
+msgid "Saved field %field."
+msgstr "Il campo %field è stato salvato."
+
+#: content_admin.inc:1292
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr "Non è stato trovato alcun mapping PostgreSQL per il tipo di dato %type."
+
+#: content_admin.inc:1292
+msgid "database"
+msgstr "database"
+
+#: content_crud.inc:59
+msgid "The content fields table %name has been created."
+msgstr "La tabella dei contenuti dei campi %name è stata creata."
+
+#: content_crud.inc:89
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "La tabella dei contenuti dei campi %old_name è stata rinominata in %new_name e le istanze dei campi sono state aggiornate."
+
+#: content_crud.inc:111
+msgid "The content fields table %name has been deleted."
+msgstr "La tabella dei contenuti dei campi %name è stata eliminata."
+
+#: content_views.inc:70
+msgid "Group multiple values"
+msgstr "Raggruppa i valori multipli"
+
+#: content_views.inc:71
+msgid "Do not group multiple values"
+msgstr "Non raggruppare i valori multipli."
+
+#: content.module:18
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "Imposta come il tipo di contenuto del campo e la sua etichetta vengono visualizzati quando sono visualizzati nell'anteprima e a pagina piena."
+
+#: content.module:67
+#: content_copy.module:129
+msgid "Fields"
+msgstr "Campi"
+
+#: content.module:83
+msgid "Edit"
+msgstr "Modifica"
+
+#: content.module:90
+msgid "Manage fields"
+msgstr "Gestisci campi"
+
+#: content.module:99
+msgid "Display fields"
+msgstr "Visualizza campi"
+
+#: content.module:127
+msgid "Remove field"
+msgstr "Rimuovi campi"
+
+#: content.module:0
+msgid "content"
+msgstr "contenuto"
+
+#: content_copy.module:35
+msgid "Export"
+msgstr "Esporta"
+
+#: content_copy.module:44
+msgid "Import"
+msgstr "Importa"
+
+#: content_copy.module:81
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Questo modulo analizzerà un tipo di contenuto ed uno o più campi dello stesso tipo esportandone le impostazioni. L'esportazione così creata può essere copiata ed incollata, come importazione, nel database corrente o in qualsiasi altro. L'importazione aggiungerà i campi in un tipo di contenuto esistente oppure creerà un nuovo tipo di contenuto includente i campi selezionati."
+
+#: content_copy.module:90
+msgid "Types"
+msgstr "Tipi"
+
+#: content_copy.module:94
+msgid "Select the content type to export."
+msgstr "Seleziona il tipo di contenuto da esportare."
+
+#: content_copy.module:119
+msgid "Groups"
+msgstr "Gruppi"
+
+#: content_copy.module:123
+msgid "Select the group definitions to export from %type."
+msgstr "Seleziona le definizioni del gruppo da esportare da %type."
+
+#: content_copy.module:133
+msgid "Select the field definitions to export from %type."
+msgstr "Seleziona le definizioni del campo da esportare da %type."
+
+#: content_copy.module:143
+msgid "Export data"
+msgstr "Esporta dati"
+
+#: content_copy.module:148
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Copia il testo esportato ed incollalo in un altro tipo di contenuto usanto la funzione importa."
+
+#: content_copy.module:214
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Questo modulo importerà le definizioni del campo esportate da un altro tipo di contenuto o da un altro database.<br/>Ricorda che i campi non possono essere duplicati con lo stesso tipo di contenuto, quindi i campi importati verranno aggiunti solo se non esistenti nel tipo selezionato."
+
+#: content_copy.module:217
+msgid "<Create>"
+msgstr "<Crea>"
+
+#: content_copy.module:219
+msgid "Content type"
+msgstr "Tipo di contenuto"
+
+#: content_copy.module:220
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Seleziona il tipo di contenuto nel quale importare i campi.<br/>Seleziona <Crea> per creare un nuovo tipo di contenuto per i campi."
+
+#: content_copy.module:225
+msgid "Import data"
+msgstr "Importa dati"
+
+#: content_copy.module:227
+msgid "Paste the text created by a content export into this field."
+msgstr "Incolla il testo esportato da un contenuto in questo campo."
+
+#: content_copy.module:255
+msgid "The import data is not valid import text."
+msgstr "I dati dell'importazione non sono validi."
+
+#: content_copy.module:300
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "I seguenti moduli devono essere abilitati per permettere l'importazione: %modules."
+
+#: content_copy.module:306
+msgid "<create>"
+msgstr "<crea>"
+
+#: content_copy.module:308
+msgid "The content type %type already exists in this database."
+msgstr "Il tipo di contenuto %type esiste già in questo database."
+
+#: content_copy.module:315
+msgid "Exiting. No import performed."
+msgstr "Chiusura in corso. Nessun dato importato."
+
+#: content_copy.module:332
+msgid "An error has occured adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Errore nell'aggiunta del tipo di contenuto %type.<br/>Controlla gli errori mostrati per maggiori informazioni."
+
+#: content_copy.module:367
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Il campo %field_label importato non è stato aggiunto a %type perché è già presente."
+
+#: content_copy.module:388
+msgid "An error has occured adding the field %field_label (%field_name).<br/>Please check the errors displayed for more details."
+msgstr "Errore nell'aggiunta del campo %field_label (%field_name).<br/>Controlla gli errori mostrati per maggiori informazioni."
+
+#: content_copy.module:421
+msgid "The field %field_label (%field_name) was added to the content type %type, but an error has occured updating the field settings.<br/>Please check the errors displayed for more details."
+msgstr "Il campo %field_label (%field_name) è stato aggiunto al tipo di contenuto %type, ma c'è stato un errore aggiornando le impostazioni del campo.<br/>Controlla gli errori mostrati per maggiori informazioni."
+
+#: content_copy.module:0
+msgid "content_copy"
+msgstr "copia_contenuto"
+
+#: fieldgroup.module:18
+msgid "Add group"
+msgstr "Aggiungi gruppo"
+
+#: fieldgroup.module:28
+msgid "Edit group"
+msgstr "Modifica gruppo"
+
+#: fieldgroup.module:66
+msgid "Add"
+msgstr "Aggiungi"
+
+#: fieldgroup.module:73
+msgid "Save"
+msgstr "Salva"
+
+#: fieldgroup.module:92
+msgid "These settings apply to the group in the node editing form"
+msgstr "Queste impostazioni sono applicate al gruppo nella scheda di modifica dei nodi."
+
+#: fieldgroup.module:96
+msgid "style"
+msgstr "stile"
+
+#: fieldgroup.module:99
+msgid "always open"
+msgstr "sempre aperto"
+
+#: fieldgroup.module:100
+msgid "collapsible"
+msgstr "espandibile"
+
+#: fieldgroup.module:101
+msgid "collapsed"
+msgstr "espanso"
+
+#: fieldgroup.module:109
+msgid "Instructions to present to the user on the editing form."
+msgstr "Istruzioni da mostrare all'utente nella scheda di modifica."
+
+#: fieldgroup.module:115
+msgid "These settings apply to the group on node display."
+msgstr "Queste impostazioni sono applicate al gruppo nel visualizza nodi."
+
+#: fieldgroup.module:119
+msgid "Description"
+msgstr "Descrizione"
+
+#: fieldgroup.module:122
+msgid "A description of the group."
+msgstr "Descrizione del gruppo."
+
+#: fieldgroup.module:144
+msgid "The group name %name already exists."
+msgstr "Il nome del gruppo %name esiste già."
+
+#: fieldgroup.module:148
+msgid "The group name %name is invalid."
+msgstr "Il nome del gruppo %name non è valido."
+
+#: fieldgroup.module:213
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Sei sicuro di voler rimuovere il gruppo %label?"
+
+#: fieldgroup.module:215
+msgid "This action cannot be undone."
+msgstr "Questa azione non può essere annullata."
+
+#: fieldgroup.module:277
+msgid "No group"
+msgstr "Nessun gruppo"
+
+#: fieldgroup.module:320
+msgid "Display in group"
+msgstr "Visualizza in gruppi"
+
+#: fieldgroup.module:323
+msgid "Select a group, in which the field will be displayed on the editing form."
+msgstr "Seleziona un gruppo, del quale verrà mostrato il campo nella scheda di modifica."
+
+#: fieldgroup.module:482
+msgid "no styling"
+msgstr "nessuno stile"
+
+#: fieldgroup.module:483
+msgid "simple"
+msgstr "semplice"
+
+#: fieldgroup.module:484
+msgid "fieldset"
+msgstr "impostacampo"
+
+#: fieldgroup.module:485
+msgid "fieldset - collapsible"
+msgstr "impostacampo - espandibile"
+
+#: fieldgroup.module:486
+msgid "fieldset - collapsed"
+msgstr "impostacampo - espanso"
+
+#: fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "gruppocampo"
+
+#: nodereference.module:17
+msgid "node reference autocomplete"
+msgstr "autocompletamento referenza nodo"
+
+#: nodereference.module:42
+msgid "Content types that can be referenced"
+msgstr "Tipi di contenuto che possono essere usati come riferimento"
+
+#: nodereference.module:51
+msgid "Existing Views"
+msgstr "Viste Attuali"
+
+#: nodereference.module:56
+msgid "Default Views"
+msgstr "Viste di default"
+
+#: nodereference.module:61
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Avanzato - Nodi che possono venir usati come riferimento (Visualizza)"
+
+#: nodereference.module:67
+msgid "View"
+msgstr "Vista"
+
+#: nodereference.module:70
+msgid "Choose the \"Views module\" view that selects the nodes that can be referenced.<br>Note :<ul><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr "Scegli la vista del \"modulo Views\" che seleziona i tipi di nodo che possono essere riferiti.<br>Nota:<ul><li>Questo escludera' le precedenti impostazioni riguardanti i \"tipi di Contenuto\". Utilizza piuttosto i \"filtri\" del modulo vista.</li><li>Utilizza i \"campi\" vista per visualizzare informazioni addizionali sui nodi candidati nella form per la creazione/modifica dei nodi.</li><li>Utilizza i \"criteri di ordinazione\" per determinare l'ordine in cui i nodi candidati ver [...]
+
+#: nodereference.module:74
+msgid "View arguments"
+msgstr "Argomenti vista"
+
+#: nodereference.module:77
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Inserisci una lista di argomenti separati da virgola da passare alla vista."
+
+#: nodereference.module:122
+msgid "%name : This post can't be referenced."
+msgstr "%name : Questo post non può venir usato come riferimento."
+
+#: nodereference.module:202
+#: userreference.module:142
+msgid "<none>"
+msgstr "<nulla>"
+
+#: nodereference.module:304
+msgid "%name : Title mismatch. Please check your selection."
+msgstr "%name : Titolo non adatto. Ricontrolla la tua selezione."
+
+#: nodereference.module:483
+msgid "<empty>"
+msgstr "<vuoto>"
+
+#: nodereference.module:0
+msgid "nodereference"
+msgstr "riferimento nodo"
+
+#: number.module:33
+msgid "Minimum"
+msgstr "Minimo"
+
+#: number.module:38
+msgid "Maximum"
+msgstr "Massimo"
+
+#: number.module:43
+msgid "Prefix"
+msgstr "Prefisso"
+
+#: number.module:46
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Definisci una stringa che può essere anteposta al valore, come $ o €. Altrimenti lascia vuoto. Separa i valori singolari e plurali con un pipe (lira|lire)."
+
+#: number.module:50
+msgid "Suffix"
+msgstr "Suffisso"
+
+#: number.module:53
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds). "
+msgstr "Definisci una stringa che può essere posposta al valore, come $ o €. Altrimenti lascia vuoto. Separa i valori singolari e plurali con un pipe (lira|lire)."
+
+#: number.module:57
+#: text.module:41
+msgid "Allowed values list"
+msgstr "Lista di valori ammessi"
+
+#: number.module:61
+#: text.module:45
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database and it must match the field storage type, %type. The label is optional and the key will be used as the label if no label is specified."
+msgstr "I possibili valori che questo campo può contenere. Inserisci un valore per linea, nella forma chiave|etichetta. La chiave è il valore che verrà memorizzato nel database e deve corrispondere al tipo di campo salvato, %type. L'etichetta è un optional e la chiave sarà usata al suo posto se non verrà specificata."
+
+#: number.module:74
+#: text.module:58
+msgid "Advanced Usage Only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Solamente per l'Utilizzo Avanzato: il codice PHP che ritorna un array con chiavi di valori permessi. Non dovrebbe includere i delimitatori <?php ?>. Se questo campo viene riempito, l'array in ritorno da questo codice annullera' i valori elencati sopra."
+
+#: number.module:80
+msgid "\"Minimum\" must be a number."
+msgstr "\"Minimo\" deve essere un numero."
+
+#: number.module:83
+msgid "\"Maximum\" must be a number."
+msgstr "\"Massimo\" deve essere un numero."
+
+#: number.module:138
+msgid "The value of %name may be no smaller than %min."
+msgstr "Il valore di %name non dovrebbe essere minore di %min."
+
+#: number.module:141
+msgid "The value of %name may be no larger than %max."
+msgstr "Il valore di %name non dovrebbe essere maggiore di %max."
+
+#: number.module:0
+msgid "number"
+msgstr "numero"
+
+#: optionwidgets.module:38
+msgid "Create a list of options as a list in <strong>Allowed values</strong> or as an array in Php code at the bottom of this page. These values will be the same for the %field in all content types. "
+msgstr "Crea una lista di opzioni come lista in <strong>Valori validi</strong> o come array in codice PHP alla fine della pagina. Questi valori saranno gli stessi per il campo %field in tutti i tipi di contenuto."
+
+#: optionwidgets.module:40
+msgid " For a single on/off checkbox, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section."
+msgstr "Per una singola checkbox on/off, definisci prima il valore 'off' e successivamente il valore 'on' nella sezione <strong>Valori validi</strong>."
+
+#: optionwidgets.module:43
+msgid " The Check boxes/radio buttons widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "I pulsanti delle Check/Radio boxes all'interno delle widget visualizzeranno delle checkboxes se l'opzione \"valori multipli\" e' attiva, altrimenti, verranno visualizzate delle radioboxes."
+
+#: optionwidgets.module:206
+msgid "N/A"
+msgstr "N/A"
+
+#: optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "widgetopzioni"
+
+#: text.module:25
+msgid "Plain text"
+msgstr "Testo normale"
+
+#: text.module:25
+msgid "Filtered text (user selects input format)"
+msgstr "Testo filtrato (l'utente seleziona il formato di ingresso)"
+
+#: text.module:28
+msgid "Text processing"
+msgstr "Analisi del testo"
+
+#: text.module:127
+msgid "%label is longer than %max characters."
+msgstr "%label supera i %max caratteri."
+
+#: text.module:0
+msgid "text"
+msgstr "testo"
+
+#: userreference.module:27
+msgid "User roles that can be referenced"
+msgstr "Regole utente che possono venir usate come riferimento."
+
+#: userreference.module:65
+msgid "%name : Invalid user."
+msgstr "%name : utente non valido."
+
+#: userreference.module:0
+msgid "userreference"
+msgstr "riferimento utente"
+
+#: optionwidgets.install:77
+msgid "<div>The allowed values list for %field was updated from </div><pre>%start</pre><div> to </div><pre>%end</pre><div>You can go to the field settings page to give each option a more user-friendly label."
+msgstr "<div>La lista sei valori ammessi per %field è stata aggiornata dal </div><pre>%start</pre><div> al </div><pre>%end</pre><div>Puoi andare nella pagina delle impostazioni del campo per assegnare a ciascuna opzione una miglior etichetta."
+
+#: optionwidgets.install:80
+msgid "<div>The allowed values list for %field was not changed from </div><pre>%start</pre>"
+msgstr "<div>La lista sei valori ammessi per %field non è stata cambiata dal </div><pre>%start</pre><div> "
+
+#: content.info:0
+msgid "Content"
+msgstr "Contenuto"
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "Permetti agli amministratori di definire nuovi tipi di contenuto."
+
+#: content.info:0
+#: content_copy.info:0
+#: fieldgroup.info:0
+#: nodereference.info:0
+#: number.info:0
+#: optionwidgets.info:0
+#: text.info:0
+#: userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: content_copy.info:0
+msgid "Content Copy"
+msgstr "Copia contenuto"
+
+#: content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Abilita la possibilità di importare/esportare le definizioni del campo."
+
+#: fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "CampoGruppo"
+
+#: fieldgroup.info:0
+msgid "Create field groups for CCK fields."
+msgstr "Crea un campo di gruppi per i campi CCK"
+
+#: nodereference.info:0
+msgid "Node Reference"
+msgstr "Riferimento Nodo"
+
+#: nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Definisce un tipo di campo come riferimento da un nodo ad un altro."
+
+#: number.info:0
+msgid "Number"
+msgstr "Numero"
+
+#: number.info:0
+msgid "Defines numeric field types."
+msgstr "Definisce i tipi di campo numerici."
+
+#: optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Opzioni Widgets"
+
+#: optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Definisce la selezione, i widgets check box e radio button per il testo e per i campi numerici."
+
+#: text.info:0
+msgid "Text"
+msgstr "Testo"
+
+#: text.info:0
+msgid "Defines simple text field types."
+msgstr "Definisce dei semplici tipi di campo testo."
+
+#: userreference.info:0
+msgid "User Reference"
+msgstr "Riferimento Utente"
+
+#: userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Definisce un tipo di campo come riferimento per un utente da un nodo."
+
+#: theme/node-content_example.tpl.php:10
+msgid "!date — !username"
+msgstr "!date — !username"
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/ja.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/ja.po
new file mode 100644
index 0000000..a7679c3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/ja.po
@@ -0,0 +1,1278 @@
+# $Id$
+#
+# Japanese translation of Drupal (cck)
+# Copyright 2008 0829 <hixarg+0829 at gmail.com>
+# Generated from files:
+#  userreference.info,v 1.8 2008/04/23 18:02:38 dww Exp
+#  userreference.module,v 1.106 2008/06/01 22:00:36 karens Exp
+#  text.info,v 1.9 2008/04/23 18:02:31 dww Exp
+#  text.module,v 1.95 2008/06/01 21:59:56 karens Exp
+#  optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww Exp
+#  optionwidgets.module,v 1.69 2008/06/03 12:25:45 karens Exp
+#  number.info,v 1.7 2008/04/23 18:02:16 dww Exp
+#  number.module,v 1.91 2008/05/13 16:40:00 karens Exp
+#  nodereference.info,v 1.8 2008/04/23 18:02:07 dww Exp
+#  nodereference.module,v 1.138 2008/05/31 18:12:50 karens Exp
+#  fieldgroup.info,v 1.6 2008/04/23 18:01:58 dww Exp
+#  fieldgroup.module,v 1.79 2008/06/02 16:33:20 karens Exp
+#  content_permissions.info,v 1.2 2008/04/23 18:01:52 dww Exp
+#  content_permissions.install,v 1.1 2008/04/25 02:03:14 karens Exp
+#  content_permissions.module,v 1.5 2008/05/11 19:20:09 dopry Exp
+#  content_copy.info,v 1.6 2008/04/23 18:01:48 dww Exp
+#  content_copy.module,v 1.27 2008/05/29 22:27:04 karens Exp
+#  content.admin.inc,v 1.181 2008/06/03 12:25:44 karens Exp
+#  content.crud.inc,v 1.76 2008/06/03 14:16:55 karens Exp
+#  content.node_form.inc,v 1.7 2008/05/28 20:40:45 karens Exp
+#  content.token.inc,v 1.5 2008/04/25 01:24:40 karens Exp
+#  content.views.inc,v 1.68 2008/05/29 11:16:14 karens Exp
+#  example_field.php,v 1.5 2008/04/23 08:24:06 karens Exp
+#  simple_field.php,v 1.5 2008/04/23 08:24:06 karens Exp
+#  content.info,v 1.6 2007/07/04 23:46:29 yched Exp
+#  content.module,v 1.301 2008/06/03 12:52:23 karens Exp
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 6.x\n"
+"POT-Creation-Date: 2008-06-06 11:21+0900\n"
+"PO-Revision-Date: 2008-06-13 11:29+0900\n"
+"Last-Translator: 0829 <hixarg+0829 at gmail.com>\n"
+"Language-Team: DRUPAL*DRUPAL <hixarg+0829 at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: modules/cck/modules/userreference/userreference.info:0
+msgid "User Reference"
+msgstr "ユーザ参照"
+
+#: modules/cck/modules/userreference/userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr "ユーザを参照するためのフィールドタイプを定義します。"
+
+#: modules/cck/modules/userreference/userreference.info:0
+#: modules/cck/modules/text/text.info:0
+#: modules/cck/modules/optionwidgets/optionwidgets.info:0
+#: modules/cck/modules/number/number.info:0
+#: modules/cck/modules/nodereference/nodereference.info:0
+#: modules/cck/modules/fieldgroup/fieldgroup.info:0
+#: modules/cck/modules/content_permissions/content_permissions.info:0
+#: modules/cck/modules/content_copy/content_copy.info:0
+#: modules/cck/content.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: modules/cck/modules/userreference/userreference.module:52
+msgid "User reference"
+msgstr "ユーザ参照"
+
+#: modules/cck/modules/userreference/userreference.module:53
+msgid "Store the ID of a related user as an integer value."
+msgstr "参照ユーザの ID を整数の値としてデータベースに保存します。"
+
+#: modules/cck/modules/userreference/userreference.module:71
+msgid "User roles that can be referenced"
+msgstr "参照するロール"
+
+#: modules/cck/modules/userreference/userreference.module:77
+msgid "User status that can be referenced"
+msgstr "参照を可能とするユーザの状態"
+
+#: modules/cck/modules/userreference/userreference.module:79
+msgid "Active"
+msgstr "アクティブ"
+
+#: modules/cck/modules/userreference/userreference.module:79
+msgid "Blocked"
+msgstr "ブロック"
+
+#: modules/cck/modules/userreference/userreference.module:122
+msgid "%name: Invalid user."
+msgstr "%name: 無効なユーザです。"
+
+#: modules/cck/modules/userreference/userreference.module:146
+#: modules/cck/modules/text/text.module:194
+#: modules/cck/examples/example_field.php:383
+#: modules/cck/examples/simple_field.php:327
+msgid "Default"
+msgstr "デフォルト"
+
+#: modules/cck/modules/userreference/userreference.module:151
+#: modules/cck/modules/text/text.module:66;199
+#: modules/cck/examples/example_field.php:158;388
+#: modules/cck/examples/simple_field.php:332
+msgid "Plain text"
+msgstr "プレーンテキスト"
+
+#: modules/cck/modules/userreference/userreference.module:198
+#: modules/cck/modules/optionwidgets/optionwidgets.module:62
+#: modules/cck/modules/nodereference/nodereference.module:303
+msgid "Select list"
+msgstr "選択リスト"
+
+#: modules/cck/modules/userreference/userreference.module:206
+#: modules/cck/modules/nodereference/nodereference.module:311
+msgid "Autocomplete text field"
+msgstr "オートコンプリートテキストフィールド"
+
+#: modules/cck/modules/userreference/userreference.module:253
+msgid "Reverse link"
+msgstr "バックリンク"
+
+#: modules/cck/modules/userreference/userreference.module:255
+msgid "No"
+msgstr "いいえ"
+
+#: modules/cck/modules/userreference/userreference.module:255
+msgid "Yes"
+msgstr "はい"
+
+#: modules/cck/modules/userreference/userreference.module:257
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr "有効にした場合、ノードから参照されたユーザのアカウントページに参照元ノードへのバックリンクが表示されます。"
+
+#: modules/cck/modules/userreference/userreference.module:439
+#: modules/cck/modules/nodereference/nodereference.module:544
+#: modules/cck/modules/fieldgroup/fieldgroup.module:289
+msgid "none"
+msgstr "なし"
+
+#: modules/cck/modules/userreference/userreference.module:586
+msgid "Related content"
+msgstr "関連するコンテンツ"
+
+#: modules/cck/modules/userreference/userreference.module:15
+msgid "Userreference autocomplete"
+msgstr "ユーザ参照オートコンプリート"
+
+#: modules/cck/modules/userreference/userreference.module:0
+msgid "userreference"
+msgstr "ユーザ参照"
+
+#: modules/cck/modules/text/text.info:0
+#: modules/cck/modules/text/text.module:49
+#: modules/cck/examples/example_field.php:107
+#: modules/cck/examples/simple_field.php:115
+msgid "Text"
+msgstr "テキスト"
+
+#: modules/cck/modules/text/text.info:0
+msgid "Defines simple text field types."
+msgstr "シンプルなテキストのフィールドタイプを定義します。"
+
+#: modules/cck/modules/text/text.module:50
+msgid "Store text in the database."
+msgstr "テキストをデータベースに保存します。"
+
+#: modules/cck/modules/text/text.module:66
+#: modules/cck/examples/example_field.php:158
+msgid "Filtered text (user selects input format)"
+msgstr "フィルタされたテキスト(選択した入力書式)"
+
+#: modules/cck/modules/text/text.module:69
+#: modules/cck/examples/example_field.php:161
+msgid "Text processing"
+msgstr "テキストの処理"
+
+#: modules/cck/modules/text/text.module:75
+#: modules/cck/examples/example_field.php:167
+#: modules/cck/examples/simple_field.php:164
+msgid "Maximum length"
+msgstr "最大文字長"
+
+#: modules/cck/modules/text/text.module:78
+#: modules/cck/examples/example_field.php:170
+#: modules/cck/examples/simple_field.php:167
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "フィールドで使用可能な文字列の最大の長さです。 入力できる文字数を無制限にしたい場合は空欄にしてください。"
+
+#: modules/cck/modules/text/text.module:82
+#: modules/cck/modules/number/number.module:123
+msgid "Allowed values"
+msgstr "使用する値"
+
+#: modules/cck/modules/text/text.module:88
+#: modules/cck/modules/number/number.module:129
+#: modules/cck/examples/example_field.php:174
+msgid "Allowed values list"
+msgstr "使用する値のリスト"
+
+#: modules/cck/modules/text/text.module:92
+#: modules/cck/modules/number/number.module:133
+#: modules/cck/examples/example_field.php:178
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database and it must match the field storage type, %type. The label is optional and the key will be used as the label if no label is specified."
+msgstr "このフィールドで使用する値のリストを、1行あたり 1つの値として \"キー|ラベル\" という形式で入力してください。 キーはデータベースに格納される値になりますのでフィールドの型が %type と一致していなければなりません。 また、ラベルはオプションの設定項目ですので、ラベルを指定しない場合はキーがラベルとして利用されます。"
+
+#: modules/cck/modules/text/text.module:96
+#: modules/cck/modules/number/number.module:137
+#: modules/cck/includes/content.admin.inc:879
+#: modules/cck/examples/example_field.php:182
+msgid "PHP code"
+msgstr "PHP コード"
+
+#: modules/cck/modules/text/text.module:102
+#: modules/cck/modules/number/number.module:143
+#: modules/cck/includes/content.admin.inc:897
+#: modules/cck/examples/example_field.php:188
+msgid "Code"
+msgstr "コード"
+
+#: modules/cck/modules/text/text.module:105
+#: modules/cck/modules/number/number.module:146
+#: modules/cck/examples/example_field.php:191
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "PHP に精通した方専用: 使用する値のキー配列として返す PHP コードを <?php ?> を含めずに記入してください。 このフィールドが入力されている場合、このコードによって返される値は上記で設定した使用する値のリストを上書きします。"
+
+#: modules/cck/modules/text/text.module:150
+#: modules/cck/modules/number/number.module:218
+#: modules/cck/examples/example_field.php:278
+msgid "Illegal value for %name."
+msgstr "%name の規則に反している値です。"
+
+#: modules/cck/modules/text/text.module:159
+#: modules/cck/examples/example_field.php:287
+#: modules/cck/examples/simple_field.php:231
+msgid "%label is longer than %max characters."
+msgstr "%label が %max 文字を超えています。"
+
+#: modules/cck/modules/text/text.module:204
+#: modules/cck/examples/example_field.php:393
+msgid "Trimmed"
+msgstr "トリミング"
+
+#: modules/cck/modules/text/text.module:254
+#: modules/cck/modules/number/number.module:332
+#: modules/cck/examples/example_field.php:476
+#: modules/cck/examples/simple_field.php:400
+msgid "Text field"
+msgstr "テキストフィールド"
+
+#: modules/cck/modules/text/text.module:262
+msgid "Text area (multiple rows)"
+msgstr "テキストエリア(複数行)"
+
+#: modules/cck/modules/text/text.module:314
+#: modules/cck/examples/example_field.php:551
+#: modules/cck/examples/simple_field.php:430
+msgid "Rows"
+msgstr "行数"
+
+#: modules/cck/modules/text/text.module:323
+#: modules/cck/examples/example_field.php:560
+#: modules/cck/examples/simple_field.php:438
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"行数\" は正の整数でなければなりません。"
+
+#: modules/cck/modules/text/text.module:0
+msgid "text"
+msgstr "テキスト"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "オプションウィジェット"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "テキストと数値のフィールドタイプにチェックボックスやラジオボタンの選択ウィジェットを定義します。"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.module:10
+msgid "Create a list of options as a list in <strong>Allowed values</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr "<strong>使用する値のリスト</strong> または PHP コードを利用してオプションのリストを作成してください。 設定したリストの値は %field フィールドが表示されるすべてのコンテンツタイプで適用されます。"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.module:12
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr "'シングル ON/OFF チェックボックス' ウィジェットを利用する場合は、最初に 'OFF' の値、次に 'ON' の値の順で、<strong>使用する値のリスト</strong>セクションに定義します。 このチェックボックスでは、'ON' の値のラベルがラベルとして使用されることに注意してください。"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.module:15
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "'チェックボックス/ラジオボタン' ウィジェットでは、複数選択のオプションが設定されている場合はチェックボックスが、そうでない場合にはラジオボタンが表示されます。"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.module:70
+msgid "Check boxes/radio buttons"
+msgstr "チェックボックス/ラジオボタン"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.module:78
+msgid "Single on/off checkbox"
+msgstr "シングル ON/OFF チェックボックス"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.module:364
+msgid "N/A"
+msgstr "N/A"
+
+#: modules/cck/modules/optionwidgets/optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "オプションウィジェット"
+
+#: modules/cck/modules/number/number.info:0
+msgid "Number"
+msgstr "数値"
+
+#: modules/cck/modules/number/number.info:0
+msgid "Defines numeric field types."
+msgstr "数値のフィールドタイプを定義します。"
+
+#: modules/cck/modules/number/number.module:41
+msgid "Integer"
+msgstr "整数"
+
+#: modules/cck/modules/number/number.module:42
+msgid "Store a number in the database as an integer."
+msgstr "数字を整数の値としてデータベースに保存します。"
+
+#: modules/cck/modules/number/number.module:49
+msgid "Decimal"
+msgstr "小数"
+
+#: modules/cck/modules/number/number.module:50
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "数字を小数の値としてデータベースに保存します。"
+
+#: modules/cck/modules/number/number.module:57
+msgid "Float"
+msgstr "浮動小数点数"
+
+#: modules/cck/modules/number/number.module:58
+msgid "Store a number in the database in a floating point format."
+msgstr "数字を浮動小数点数の値としてデータベースに保存します。"
+
+#: modules/cck/modules/number/number.module:76
+msgid "Minimum"
+msgstr "最小値"
+
+#: modules/cck/modules/number/number.module:81
+msgid "Maximum"
+msgstr "最大値"
+
+#: modules/cck/modules/number/number.module:88
+msgid "Precision"
+msgstr "精度"
+
+#: modules/cck/modules/number/number.module:89
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr "データベースに保存する桁数の総数(小数点以下の桁数と小数点記号を含む)を選択してください。"
+
+#: modules/cck/modules/number/number.module:95
+msgid "Scale"
+msgstr "スケール"
+
+#: modules/cck/modules/number/number.module:96
+msgid "The number of digits to the right of the decimal."
+msgstr "小数点以下の桁数を選択してください。"
+
+#: modules/cck/modules/number/number.module:102
+msgid "Decimal marker"
+msgstr "小数点記号"
+
+#: modules/cck/modules/number/number.module:103
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "フォーム内に入力された内容の小数点を評価するために利用する記号を選択してください。"
+
+#: modules/cck/modules/number/number.module:109
+msgid "Prefix"
+msgstr "接頭語"
+
+#: modules/cck/modules/number/number.module:112
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "値に接頭語として付記する $ や € のような記号を定義してください。 接頭語を付記しない場合は空欄にしてください。 単数形と複数形は、'pound|pounds' のようにパイプ(|)で区切って入力します。"
+
+#: modules/cck/modules/number/number.module:116
+msgid "Suffix"
+msgstr "接尾語"
+
+#: modules/cck/modules/number/number.module:119
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "値に接尾語として付記する m², m/s², kb/s のような記号を定義してください。 接尾語を付記しない場合は空欄にしてください。 単数形と複数形は、'pound|pounds' のようにパイプ(|)で区切って入力します。"
+
+#: modules/cck/modules/number/number.module:152
+msgid "\"Minimum\" must be a number."
+msgstr "\"最小値\" は数値でなければなりません。"
+
+#: modules/cck/modules/number/number.module:155
+msgid "\"Maximum\" must be a number."
+msgstr "\"最大値\" は数値でなければなりません。"
+
+#: modules/cck/modules/number/number.module:212
+msgid "The value of %name may be no smaller than %min."
+msgstr "%name には %min 未満の値を入力することはできません。"
+
+#: modules/cck/modules/number/number.module:215
+msgid "The value of %name may be no larger than %max."
+msgstr "%name には %max より大きい値を入力することはできません。"
+
+#: modules/cck/modules/number/number.module:253
+msgid "unformatted"
+msgstr "フォーマットなし"
+
+#: modules/cck/modules/number/number.module:466
+msgid "Only numbers and decimals are allowed in %field. %start was changed to %value."
+msgstr "%field フィールドには、数字(小数を含む)のみが入力できます。 %start は %value に変更されました。"
+
+#: modules/cck/modules/number/number.module:484
+msgid "Only numbers are allowed in %field. %start was changed to %value."
+msgstr "%field フィールドには、数字のみが入力できます。 %start は %value に変更されました。"
+
+#: modules/cck/modules/number/number.module:503
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field. %start was changed to %value."
+msgstr "%field フィールドには、数字と小数点記号(%decimal)のみが入力できます。 %start は %value に変更されました。"
+
+#: modules/cck/modules/number/number.module:0
+msgid "number"
+msgstr "数値"
+
+#: modules/cck/modules/nodereference/nodereference.info:0
+msgid "Node Reference"
+msgstr "ノード参照"
+
+#: modules/cck/modules/nodereference/nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "他のノードを参照するためのフィールドタイプを定義します。"
+
+#: modules/cck/modules/nodereference/nodereference.module:71
+msgid "Node reference"
+msgstr "ノード参照"
+
+#: modules/cck/modules/nodereference/nodereference.module:72
+msgid "Store the ID of a related node as an integer value."
+msgstr "参照ノードの ID を整数の値としてデータベースに保存します。"
+
+#: modules/cck/modules/nodereference/nodereference.module:90
+msgid "Content types that can be referenced"
+msgstr "参照するコンテンツタイプ"
+
+#: modules/cck/modules/nodereference/nodereference.module:101
+msgid "Existing Views"
+msgstr "既存のビュー"
+
+#: modules/cck/modules/nodereference/nodereference.module:108
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "高度な設定 - 参照するノード(ビュー)"
+
+#: modules/cck/modules/nodereference/nodereference.module:114
+msgid "View"
+msgstr "表示"
+
+#: modules/cck/modules/nodereference/nodereference.module:117
+msgid "Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note :<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate n [...]
+msgstr "\"ビューモジュール\" で定義されたビューの中から、参照するノードとして表示するものを選択してください。<br />注意 :<ul><li>ノード参照として機能するフィールドを持つビューのみが選択できます。</li><li>ここで設定を行なった場合、上記の \"コンテンツタイプ\" は適用されません。 ビューの \"フィルタ\" セクションで代替となる設定を行ってください。</li><li>コンテンツの作成・編集フォームに参照するノードの追加説明を表示する場合にはビューの \"フィールド\" セクションで設定を行ってください。</li><li>参照するノードの順序を決定する場合にはビューの \"並べ替えの基準\" セクションで設定を行ってください。</li></ul>"
+
+#: modules/cck/modules/nodereference/nodereference.module:121
+msgid "View arguments"
+msgstr "ビューのアーギュメント"
+
+#: modules/cck/modules/nodereference/nodereference.module:124
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "ビューへ渡すアーギュメントのリストをコンマ(,)で区切って設定してください。"
+
+#: modules/cck/modules/nodereference/nodereference.module:175
+msgid "%name : This post can't be referenced."
+msgstr "%name: この投稿は参照できませんでした。"
+
+#: modules/cck/modules/nodereference/nodereference.module:200
+msgid "Title (link)"
+msgstr "タイトル(リンクあり)"
+
+#: modules/cck/modules/nodereference/nodereference.module:205
+msgid "Title (no link)"
+msgstr "タイトル(リンクなし)"
+
+#: modules/cck/modules/nodereference/nodereference.module:210
+#: modules/cck/content.module:1612
+msgid "Full node"
+msgstr "完全なノード"
+
+#: modules/cck/modules/nodereference/nodereference.module:215
+#: modules/cck/content.module:1611
+msgid "Teaser"
+msgstr "ティーザー"
+
+#: modules/cck/modules/nodereference/nodereference.module:518
+msgid "%name: Title mismatch. Please check your selection."
+msgstr "%name: タイトルが不適当です。 選択内容を確認してください。"
+
+#: modules/cck/modules/nodereference/nodereference.module:15
+msgid "Nodereference autocomplete"
+msgstr "ノード参照オートコンプリート"
+
+#: modules/cck/modules/nodereference/nodereference.module:0
+msgid "nodereference"
+msgstr "ノード参照"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "フィールドグループ"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.info:0
+msgid "Create field groups for CCK fields."
+msgstr "CCK フィールドにフィールドグループを作成します。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:99
+msgid "Add"
+msgstr "追加"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:106;359
+#: modules/cck/includes/content.admin.inc:152;353
+msgid "Save"
+msgstr "保存"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:117
+#: modules/cck/includes/content.admin.inc:163;364;573;798
+msgid "Label"
+msgstr "ラベル"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:125
+msgid "These settings apply to the group in the node editing form."
+msgstr "これらの設定は、コンテンツの編集フォームのグループ構成として適用されます。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:129
+msgid "Style"
+msgstr "スタイル"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:132
+msgid "always open"
+msgstr "常に開く"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:133
+msgid "collapsible"
+msgstr "折りたたみ(開)"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:134
+msgid "collapsed"
+msgstr "折りたたみ(閉)"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:139
+#: modules/cck/includes/content.admin.inc:846
+msgid "Help text"
+msgstr "ヘルプテキスト"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:142
+msgid "Instructions to present to the user on the editing form."
+msgstr "フォームの編集時にユーザに表示する説明です。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:148
+msgid "These settings apply to the group on node display."
+msgstr "これらの設定は、ノードに表示されるフォームのグループ構成として適用されます。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:152
+msgid "Description"
+msgstr "説明"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:155
+msgid "A description of the group."
+msgstr "このグループについての説明です。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:190
+msgid "The group name %name already exists."
+msgstr "グループ名 %name は既に存在します。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:194
+msgid "The group name %name is invalid."
+msgstr "グループ名 %name は無効です。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:229
+msgid "Are you sure you want to remove the group %label?"
+msgstr "本当に、%label グループを取り外してよろしいですか?"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:231
+msgid "This action cannot be undone."
+msgstr "この操作は元に戻すことができませんので、十分に注意して実行してください。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:232
+#: modules/cck/includes/content.admin.inc:99;115;733
+msgid "Remove"
+msgstr "取り外す"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:232
+#: modules/cck/includes/content.admin.inc:733
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:240
+msgid "The group %group_name has been removed."
+msgstr "%group_name グループを取り外しました。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:343
+msgid "Display in group"
+msgstr "表示するグループ"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:346
+msgid "Select a group, in which the field will be displayed on the editing form."
+msgstr "コンテンツの追加・編集フォームでフィールドをグループ化して表示する場合、そのグループ名を選択してください。"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:29
+msgid "Add group"
+msgstr "グループの追加"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:37;44
+msgid "Edit group"
+msgstr "グループの編集"
+
+#: modules/cck/modules/fieldgroup/fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "フィールドグループ"
+
+#: modules/cck/modules/content_permissions/content_permissions.info:0
+msgid "Content Permissions"
+msgstr "コンテンツ権限"
+
+#: modules/cck/modules/content_permissions/content_permissions.info:0
+msgid "Set field-level permissions for CCK fields."
+msgstr "CCK フィールドにフィールドレベルの権限を設定します。"
+
+#: modules/cck/modules/content_permissions/content_permissions.install:7
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr "直ちに<a href=\"!url\">フィールド権限の構成</a>を行ってください。 デフォルトですべてのフィールドがアクセス不可に設定されています。"
+
+#: modules/cck/modules/content_permissions/content_permissions.module:9
+msgid "edit "
+msgstr "編集"
+
+#: modules/cck/modules/content_permissions/content_permissions.module:9;10
+msgid "field_name"
+msgstr "フィールド名"
+
+#: modules/cck/modules/content_permissions/content_permissions.module:10
+msgid "view "
+msgstr "表示"
+
+#: modules/cck/modules/content_permissions/content_permissions.module:0
+msgid "content_permissions"
+msgstr "コンテンツ権限"
+
+#: modules/cck/modules/content_copy/content_copy.info:0
+msgid "Content Copy"
+msgstr "コンテンツコピー"
+
+#: modules/cck/modules/content_copy/content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "フィールド定義をインポートまたはエクスポートできるようにします。"
+
+#: modules/cck/modules/content_copy/content_copy.module:80
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "このフォームでは、コンテンツタイプとフィールドの設定をエクスポートするための処理を行います。 ここでエクスポートされたものを、現在のデータベースまたはその他のデータベースへコピーすることでインポートができます。 インポートでは既存のコンテンツタイプにフィールドを追加したり、選択したフィールドを含む新しいコンテンツタイプを作成したりすることができます。"
+
+#: modules/cck/modules/content_copy/content_copy.module:86
+msgid "Types"
+msgstr "タイプ"
+
+#: modules/cck/modules/content_copy/content_copy.module:90
+msgid "Select the content type to export."
+msgstr "エクスポートするコンテンツタイプを選択してください。"
+
+#: modules/cck/modules/content_copy/content_copy.module:115
+msgid "Groups"
+msgstr "グループ"
+
+#: modules/cck/modules/content_copy/content_copy.module:119
+msgid "Select the group definitions to export from %type."
+msgstr "%type からエクスポートするグループの定義を選択してください。"
+
+#: modules/cck/modules/content_copy/content_copy.module:125
+#: modules/cck/content.module:119
+msgid "Fields"
+msgstr "フィールド"
+
+#: modules/cck/modules/content_copy/content_copy.module:129
+msgid "Select the field definitions to export from %type."
+msgstr "%type からエクスポートするフィールドの定義を選択してください。"
+
+#: modules/cck/modules/content_copy/content_copy.module:139
+msgid "Export data"
+msgstr "エクスポートデータ"
+
+#: modules/cck/modules/content_copy/content_copy.module:144
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "エクスポートされたテキストをコピーして、インポート機能を利用した他のコンテンツタイプへ貼り付けてください。"
+
+#: modules/cck/modules/content_copy/content_copy.module:154;38
+msgid "Export"
+msgstr "エクスポート"
+
+#: modules/cck/modules/content_copy/content_copy.module:227
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "このフォームでは、他のコンテンツタイプやデータベースからエクスポートされたフィールド定義をインポートします。<br />同一のコンテンツタイプ内では重複するフィールドを作成できないため、インポートされたフィールドのうち、選択したコンテンツタイプ内にまだ作成されていないフィールドのみが追加されるということに注意してください。"
+
+#: modules/cck/modules/content_copy/content_copy.module:230
+msgid "<Create>"
+msgstr "<新規作成>"
+
+#: modules/cck/modules/content_copy/content_copy.module:232
+msgid "Content type"
+msgstr "コンテンツタイプ"
+
+#: modules/cck/modules/content_copy/content_copy.module:233
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "フィールドをインポートするコンテンツタイプを選択してください。<br /><新規作成> を選択した場合、フィールドを含む新しいコンテンツタイプが作成されます。"
+
+#: modules/cck/modules/content_copy/content_copy.module:238
+msgid "Import data"
+msgstr "インポートデータ"
+
+#: modules/cck/modules/content_copy/content_copy.module:240
+msgid "Paste the text created by a content export into this field."
+msgstr "エクスポートされた内容をこのフィールド内にコピーしてください。"
+
+#: modules/cck/modules/content_copy/content_copy.module:244;46
+msgid "Import"
+msgstr "インポート"
+
+#: modules/cck/modules/content_copy/content_copy.module:270
+msgid "The import data is not valid import text."
+msgstr "入力したインポートデータは有効なインポートテキストではありません。"
+
+#: modules/cck/modules/content_copy/content_copy.module:318
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "インポートした内容を動作させるためには次のモジュールを有効にする必要があります。: %modules"
+
+#: modules/cck/modules/content_copy/content_copy.module:324;338
+msgid "<create>"
+msgstr "<新規作成>"
+
+#: modules/cck/modules/content_copy/content_copy.module:326
+msgid "The content type %type already exists in this database."
+msgstr "%type コンテンツタイプは既にデータベースに存在しています。"
+
+#: modules/cck/modules/content_copy/content_copy.module:333
+msgid "Exiting. No import performed."
+msgstr "インポートを終了します。 インポートは実行されませんでした。"
+
+#: modules/cck/modules/content_copy/content_copy.module:355
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "%type コンテンツタイプの追加でエラーが発生しました。<br />詳細については、表示されたエラーを確認してください。"
+
+#: modules/cck/modules/content_copy/content_copy.module:380
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "インポートした %field_label (%field_name) フィールドは %type 内に既に存在しているため追加されませんでした。"
+
+#: modules/cck/modules/content_copy/content_copy.module:389
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr "%field_label (%field_name) フィールドが %type コンテンツタイプに追加されました。"
+
+#: modules/cck/modules/content_copy/content_copy.module:503
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr "%field_name フィールドの 'フィールドの表示' データのエクスポート時にエラーが発生しました。<br />データベースエラー: '%db_err'"
+
+#: modules/cck/modules/content_copy/content_copy.module:0
+msgid "content_copy"
+msgstr "コンテンツコピー"
+
+#: modules/cck/includes/content.admin.inc:15;552;804
+msgid "Field name"
+msgstr "フィールド名"
+
+#: modules/cck/includes/content.admin.inc:15;582;593;810
+msgid "Field type"
+msgstr "フィールドタイプ"
+
+#: modules/cck/includes/content.admin.inc:15
+msgid "Used in"
+msgstr "利用"
+
+#: modules/cck/includes/content.admin.inc:38
+msgid "No fields have been defined for any content type yet."
+msgstr "すべてのコンテンツタイプでフィールドが定義されていません。"
+
+#: modules/cck/includes/content.admin.inc:63;242
+msgid "There are no fields configured for this content type. You can !link."
+msgstr "このコンテンツタイプで設定されたフィールドはありません。 !link を行うことができます。"
+
+#: modules/cck/includes/content.admin.inc:64;243
+msgid "Add a new field"
+msgstr "新しいフィールドの追加"
+
+#: modules/cck/includes/content.admin.inc:88
+msgid "To change the order of a field, grab a drag-and-drop handle under the Label column and drag the field to a new location in the list. (Grab a handle by clicking and holding the mouse while hovering over a handle icon.) Remember that your changes will not be saved until you click the Save button at the bottom of the page."
+msgstr "フィールドの順序を変更するには、ラベル部分にあるドラッグ&ドロップハンドルをつかんでリスト内の新しい場所までドラッグしてください。(ハンドルアイコンの上でマウスボタンを押したままの状態にすることでハンドルをつかむことができます。) ページ下部の保存ボタンをクリックするまでは、行った変更が保存されないことに注意してください。"
+
+#: modules/cck/includes/content.admin.inc:98;114
+msgid "Configure"
+msgstr "設定"
+
+#: modules/cck/includes/content.admin.inc:163
+msgid "Name"
+msgstr "名前"
+
+#: modules/cck/includes/content.admin.inc:163
+msgid "Type"
+msgstr "タイプ"
+
+#: modules/cck/includes/content.admin.inc:163
+msgid "Weight"
+msgstr "ウェイト"
+
+#: modules/cck/includes/content.admin.inc:163
+msgid "Operations"
+msgstr "操作"
+
+#: modules/cck/includes/content.admin.inc:270;311
+msgid "Above"
+msgstr "上部"
+
+#: modules/cck/includes/content.admin.inc:271
+msgid "Inline"
+msgstr "インライン"
+
+#: modules/cck/includes/content.admin.inc:272;297;312;320
+msgid "<Hidden>"
+msgstr "<非表示>"
+
+#: modules/cck/includes/content.admin.inc:315
+msgid "no styling"
+msgstr "スタイルなし"
+
+#: modules/cck/includes/content.admin.inc:316
+msgid "simple"
+msgstr "シンプル"
+
+#: modules/cck/includes/content.admin.inc:317
+msgid "fieldset"
+msgstr "フィールドセット"
+
+#: modules/cck/includes/content.admin.inc:318
+msgid "fieldset - collapsible"
+msgstr "フィールドセット - 折りたたみ(開)"
+
+#: modules/cck/includes/content.admin.inc:319
+msgid "fieldset - collapsed"
+msgstr "フィールドセット - 折りたたみ(閉)"
+
+#: modules/cck/includes/content.admin.inc:364
+msgid "Field"
+msgstr "フィールド"
+
+#: modules/cck/includes/content.admin.inc:411
+msgid "Your settings have been saved."
+msgstr "設定が保存されました。"
+
+#: modules/cck/includes/content.admin.inc:428
+msgid "No field modules are enabled. You need to <a href=\"!modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr "フィールドを追加するためのモジュールが有効になっていません。 新しいフィールドを追加する前に、Text モジュール等の <a href=\"!modules_url\">モジュールを有効化</a> する必要があります。"
+
+#: modules/cck/includes/content.admin.inc:470
+msgid "Add existing field"
+msgstr "既存のフィールドを追加"
+
+#: modules/cck/includes/content.admin.inc:479
+#: modules/cck/content.module:173
+msgid "Add field"
+msgstr "フィールドの追加"
+
+#: modules/cck/includes/content.admin.inc:497
+msgid "Added field %label."
+msgstr "%label フィールドを追加しました。"
+
+#: modules/cck/includes/content.admin.inc:500
+msgid "There was a problem adding field %label."
+msgstr "%label フィールドの追加中に問題が発生しました。"
+
+#: modules/cck/includes/content.admin.inc:540
+msgid "Create new field"
+msgstr "フィールドの新規作成"
+
+#: modules/cck/includes/content.admin.inc:547
+msgid "Edit basic information"
+msgstr "基本情報の編集"
+
+#: modules/cck/includes/content.admin.inc:556
+msgid "The machine-readable name of the field."
+msgstr "コンピュータが扱うことのできる、このフィールドの名前を入力してください。"
+
+#: modules/cck/includes/content.admin.inc:560
+msgid " This name cannot be changed."
+msgstr " この名前は変更できません。"
+
+#: modules/cck/includes/content.admin.inc:568
+msgid " This name cannot be changed later! The name will be prefixed with 'field_' and can include lowercase unaccented letters, numbers, and underscores. The length of the name, including the prefix, is limited to no more than 32 letters."
+msgstr " この名前は後から変更することができません! フィールド名には 'field_' という接頭語が追加されます。 名前に使用できる文字はアクセント記号のない英小文字、数字、アンダースコア(_)のみです。 フィールド名は接頭語を含んで 32 文字以内にしてください。"
+
+#: modules/cck/includes/content.admin.inc:576
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr "人が読むことのできる、このフィールドの名前を入力してください。 この名前は %type コンテンツタイプのラベルとして使用されます。"
+
+#: modules/cck/includes/content.admin.inc:586
+msgid "The type of data you would like to store in the database with this field."
+msgstr "データベースに保存する、このフィールドのデータ型を選択してください。"
+
+#: modules/cck/includes/content.admin.inc:596
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr "データベースに保存する、このフィールドのデータ型を選択してください。 このオプションは変更できません。"
+
+#: modules/cck/includes/content.admin.inc:601;817
+msgid "Widget type"
+msgstr "ウィジェットタイプ"
+
+#: modules/cck/includes/content.admin.inc:605
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr "使用したいフォームエレメントのタイプを選択してください。 選択したウィジェットタイプは %type コンテンツタイプのフィールドに適用されます。"
+
+#: modules/cck/includes/content.admin.inc:619
+msgid "Continue"
+msgstr "継続"
+
+#: modules/cck/includes/content.admin.inc:640
+msgid "The field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "フィールド名 %field_name は無効です。 フィールド名に使用できる文字は、アクセント記号のない英小文字、数字、アンダースコア(_)のみです。"
+
+#: modules/cck/includes/content.admin.inc:644
+msgid "The field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr "フィールド名 %field_name は最大文字数を超えています。 フィールド名は 'field_' 接頭語を含む 32 文字までに制限されています。"
+
+#: modules/cck/includes/content.admin.inc:648
+msgid "The field name %field_name already exists."
+msgstr "フィールド名 %field_name は既に存在します。"
+
+#: modules/cck/includes/content.admin.inc:652
+msgid "The name 'field_instance' is a reserved name."
+msgstr "フィールド名 'field_instance' は予約語です。"
+
+#: modules/cck/includes/content.admin.inc:684
+msgid "Created field %label."
+msgstr "%label フィールドを作成しました。"
+
+#: modules/cck/includes/content.admin.inc:688
+msgid "There was a problem creating field %label."
+msgstr "%label フィールドの作成中に問題が発生しました。"
+
+#: modules/cck/includes/content.admin.inc:697
+msgid "Update field %label."
+msgstr "%label フィールドをアップデートしました。"
+
+#: modules/cck/includes/content.admin.inc:701
+msgid "There was a problem updating field %label."
+msgstr "%label フィールドの更新中に問題が発生しました。"
+
+#: modules/cck/includes/content.admin.inc:729
+msgid "Are you sure you want to remove the field %field?"
+msgstr "本当に、%field フィールドを取り外してよろしいですか?"
+
+#: modules/cck/includes/content.admin.inc:732
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "このフィールドに含まれるすべての内容を削除します。 この操作は元に戻すことができません。"
+
+#: modules/cck/includes/content.admin.inc:751
+msgid "Removed field %field from %type."
+msgstr "%type から %field フィールドを取り外しました。"
+
+#: modules/cck/includes/content.admin.inc:756
+msgid "There was a problem deleting %field from %type."
+msgstr "%label フィールドの削除中に問題が発生しました。"
+
+#: modules/cck/includes/content.admin.inc:782;824
+msgid "Change basic information"
+msgstr "基本情報の変更"
+
+#: modules/cck/includes/content.admin.inc:794
+msgid "%type basic information"
+msgstr "%type 基本情報"
+
+#: modules/cck/includes/content.admin.inc:831
+msgid "%type settings"
+msgstr "%type 設定"
+
+#: modules/cck/includes/content.admin.inc:832
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "これらの設定は %type コンテンツタイプの %field フィールドのみに適用されます。"
+
+#: modules/cck/includes/content.admin.inc:849
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr "コンテンツの追加・編集フォームで、このフィールドの下部に表示するユーザへの説明です。"
+
+#: modules/cck/includes/content.admin.inc:857
+msgid "Default value"
+msgstr "デフォルト値"
+
+#: modules/cck/includes/content.admin.inc:901
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format :<pre>!sample</pre>Using !link_devel's 'devel load' tab on a %type content page might help you figure out the expected format."
+msgstr "PHP に精通した方専用: デフォルト値として返す PHP コードを <?php ?> を含めずに記入してください。 このフィールドが入力されている場合、このコードによって返される値は上記で指定したすべての値を上書きします。<br />期待されるフォーマット: <pre>!sample</pre>%type コンテンツページで !link_devel の 'Devel ロード' タブを使用することが、予想フォーマットの理解を助けるかもしれません。"
+
+#: modules/cck/includes/content.admin.inc:910
+msgid "Global settings"
+msgstr "全般の設定"
+
+#: modules/cck/includes/content.admin.inc:911
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "これらの設定は %field フィールドが表示されるすべてのコンテンツタイプで適用されます。"
+
+#: modules/cck/includes/content.admin.inc:915
+msgid "Required"
+msgstr "必須"
+
+#: modules/cck/includes/content.admin.inc:920
+msgid "Number of values"
+msgstr "値の数"
+
+#: modules/cck/includes/content.admin.inc:921
+msgid "Unlimited"
+msgstr "無制限"
+
+#: modules/cck/includes/content.admin.inc:923
+msgid "Select a specific number of values for this field, or 'Unlimited' to provide an 'Add more' button so the users can add as many values as they like."
+msgstr "このフィールドが持つことのできる値の数を選択してください。 'アイテムの追加' ボタンを表示し自由に多くの値を追加できるようにしたい場合は、'無制限' を選択してください。"
+
+#: modules/cck/includes/content.admin.inc:923
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr "警告!データ入力後にこの設定を変更すると、データの損失を招く可能性があります!"
+
+#: modules/cck/includes/content.admin.inc:938
+msgid "Save field settings"
+msgstr "フィールド設定の保存"
+
+#: modules/cck/includes/content.admin.inc:1031
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr "デフォルト値として返される PHP コードの値に誤った値が返されました。<br />期待されるフォーマット: <pre>!sample</pre>返された値: @value"
+
+#: modules/cck/includes/content.admin.inc:1068
+msgid "The default value PHP code created @value which is invalid."
+msgstr "デフォルト値として返された PHP コードの値 @value は無効です。"
+
+#: modules/cck/includes/content.admin.inc:1072
+msgid "The default value is invalid."
+msgstr "デフォルト値は無効です。"
+
+#: modules/cck/includes/content.admin.inc:1090
+msgid "Saved field %label."
+msgstr "%label フィールドを保存しました。"
+
+#: modules/cck/includes/content.admin.inc:1398
+msgid "Processing"
+msgstr "処理中"
+
+#: modules/cck/includes/content.admin.inc:1399
+msgid "The update has encountered an error."
+msgstr "アップデートはエラーに遭遇しました。"
+
+#: modules/cck/includes/content.admin.inc:1413
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "データベースが変更され、データは移動または削除されました。"
+
+#: modules/cck/includes/content.admin.inc:1416
+msgid "An error occurred and database alteration did not complete."
+msgstr "エラーが発生したため、データベースの変更は完了しませんでした。"
+
+#: modules/cck/includes/content.admin.inc:1519
+msgid "Processing %title"
+msgstr "%title を処理しています。"
+
+#: modules/cck/includes/content.admin.inc:1417
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "1 アイテムが正常に処理されました:"
+msgstr[1] "@count アイテムが正常に処理されました:"
+
+#: modules/cck/includes/content.crud.inc:563;600
+#: modules/cck/content.module:568;575;0
+msgid "content"
+msgstr "コンテンツ"
+
+#: modules/cck/includes/content.crud.inc:563
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "コンテンツフィールドテーブル %old_name の名前が %new_name に変更され、フィールドのインスタンスもアップデートされました。"
+
+#: modules/cck/includes/content.crud.inc:600
+msgid "The content fields table %name has been deleted."
+msgstr "コンテンツフィールドテーブル %name が削除されました。"
+
+#: modules/cck/includes/content.node_form.inc:195
+msgid "Add another !field value"
+msgstr "!field フィールドの値の追加"
+
+#: modules/cck/includes/content.node_form.inc:196
+msgid "If the amount of boxes above isn't enough, click here to add more items."
+msgstr "上の内容量が不足した場合は、ここをクリックしてアイテムを追加できます。"
+
+#: modules/cck/includes/content.token.inc:60
+msgid "Referenced node ID"
+msgstr "参照ノード ID"
+
+#: modules/cck/includes/content.token.inc:61
+msgid "Referenced node title"
+msgstr "参照ノードタイトル"
+
+#: modules/cck/includes/content.token.inc:62
+msgid "Formatted HTML link to the node"
+msgstr "HTML フォーマットのノードへのリンク"
+
+#: modules/cck/includes/content.token.inc:86
+msgid "Raw number value"
+msgstr "数値(RAW データ)"
+
+#: modules/cck/includes/content.token.inc:87
+msgid "Formatted number value"
+msgstr "フォーマットされた数値"
+
+#: modules/cck/includes/content.token.inc:110
+msgid "Raw, unfiltered text"
+msgstr "フィルタを通していないテキスト(RAW データ)"
+
+#: modules/cck/includes/content.token.inc:111
+msgid "Formatted and filtered text"
+msgstr "フォーマットおよびフィルタされたテキスト"
+
+#: modules/cck/includes/content.token.inc:133
+msgid "Referenced user ID"
+msgstr "参照ユーザの ID"
+
+#: modules/cck/includes/content.token.inc:134
+msgid "Referenced user name"
+msgstr "参照ユーザの名前"
+
+#: modules/cck/includes/content.token.inc:135
+msgid "Formatted HTML link to referenced user"
+msgstr "HTML フォーマットの参照ユーザへのリンク"
+
+#: modules/cck/includes/content.views.inc:57;94
+#: modules/cck/content.info:0
+msgid "Content"
+msgstr "コンテンツ"
+
+#: modules/cck/includes/content.views.inc:96
+msgid "Appears in : @types"
+msgstr "発行: @types"
+
+#: modules/cck/includes/content.views.inc:294
+msgid "Format"
+msgstr "フォーマット"
+
+#: modules/cck/includes/content.views.inc:375
+msgid "Group multiple values"
+msgstr "値をグループ化する"
+
+#: modules/cck/includes/content.views.inc:382
+msgid "Show"
+msgstr "表示"
+
+#: modules/cck/includes/content.views.inc:383
+msgid " values,"
+msgstr " 個の値、"
+
+#: modules/cck/includes/content.views.inc:390
+msgid "Starting from"
+msgstr "開始する値"
+
+#: modules/cck/includes/content.views.inc:394
+msgid "Start from last values"
+msgstr "最後の値から開始する"
+
+#: modules/cck/examples/example_field.php:484
+msgid "Text area"
+msgstr "テキストエリア"
+
+#: modules/cck/content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "管理者が新しいコンテンツタイプを定義できるようにします。"
+
+#: modules/cck/content.module:25
+msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible thr [...]
+msgstr "コンテンツモジュールは、Content Construction Kit (CCK) の必須のコンポーネントであり、管理者がコンテンツタイプにカスタムフィールドを追加するための機能を提供します。 Drupal では、コンテンツの追加および編集時に、コンテンツの入力フィールドにタイトルや説明を表示することによって、投稿するコンテンツに異なる特徴を定義するために、コンテンツタイプが使用されます。 コンテンツモジュール(および CCK に含まれる他のヘルパーモジュール)を使用して、デフォルトの \"タイトル\" や \"本文\" 以外のカスタムフィールドを追加することができます。 CCK の機能へは、<a href=\"@content-types\">コンテンツタイプの管理ページ</a> のタブメニューからアクセスできます。 (コンテンツタイプについての詳細は <a href=\"@node-help\">Node モジュールのヘルプページ</a> を参照してください。 )"
+
+#: modules/cck/content.module:26
+msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatica [...]
+msgstr "カスタムフィールドをコンテンツタイプに追加する場合、追加するフィールドのタイプ(テキスト、数字、他のオブジェクトの参照の何れか)と、フィールドの表示スタイル(テキストフィールド、テキストエリア、選択ボックス、チェックボックス、ラジオボタン、オートコンプリートフィールドの何れか)を決定します。 フィールドは複数の値(例: \"個人\" は複数の E-mail アドレスを持つかもしれません)もしくは、ひとつの値(例:  \"従業員\" は固有の社員番号を持ちます)を持つことができます。 フィールドの追加や編集を行うと、CCK は必要に応じて自動的にデータベースの構造を調節します。 また CCK は他にも、カスタムデータのためのインテリジェント・キャッシング、コンテンツタイプ定義のためのインポート/エクスポート機能、他の寄与モジュールの統合などを含む多くの特徴も提供します。"
+
+#: modules/cck/content.module:27
+msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
+msgstr "カスタムフィールドのタイプは CCK に含まれるオプションモジュールから、それぞれ別のタイプとして提供します。 <a href=\"@modules\">モジュールページ</a> から CCK コンポーネントの有効/無効を切り替えることができます。 CCK のデフォルトインストールは次を含みます。:"
+
+#: modules/cck/content.module:29
+msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
+msgstr "<storng>数字</storng>は、数値形式のフィールドタイプとして、整数、小数、浮動小数点のデータ型フィールドを追加します。 入力値として、使用する値のリストを定義するか、もしくは、入力可能な値の範囲を指定することができます。 数値データのデータの表示に関して、多様な共通フォーマットを利用できます。"
+
+#: modules/cck/content.module:30
+msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
+msgstr "<storng>テキスト</storng>は、テキストフィールドタイプのフィールドを追加します。 テキストフィールドにはプレーンテキストのみを含むことができますが、オプションとして、安全なリッチテキストの入力のために Drupal の入力書式を使用することもできます。 テキストの入力フィールドには、一般的なテキストフィールドのような 1行の入力フォームやテキストエリアのような複数行の入力フォームが使用できます。 また、入力内容をコントロールしたい場合などのために、選択ボックス、チェックボックス、ラジオボタンも使用できます。 必要に応じて、入力値に使用する値のリストを設定することも可能です。"
+
+#: modules/cck/content.module:31
+msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
+msgstr "<storng>ノード参照</storng>は、サイト内の他のノードを参照するためのフィールドを追加します。 <storng>ノード参照</storng>フィールドを使うことで、2つの異なるコンテンツタイプ間での複雑な親子関係を簡単に作成することができます。 例えば、複数の \"従業員\" ノードに 1つの  \"雇用主\" ノードを参照する<storng>ノード参照</storng>フィールドを持たせることができます。"
+
+#: modules/cck/content.module:32
+msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
+msgstr "<storng>ユーザ参照</storng>は、サイト内のユーザアカウントを参照するためのフィールドを追加します。 <storng>ユーザ参照</storng>フィールドを使うことで、サイトユーザと投稿間での複雑な親子関係を作成することができます。 例えば、\"編集者\" という<storng>ユーザ参照</storng>フィールドによって、Drupal 標準の<storng>投稿者</storng>フィールドを使用するだけでは軌跡に表示されないノードへのリンクを、それぞれの編集者のユーザアカウントページに追加することができます。"
+
+#: modules/cck/content.module:33
+msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
+msgstr "<storng>フィールドグループ</storng>は、関連するフィールドをグループ化するための折りたたみ可能なフィールドセットを追加します。 フィールドセットのデフォルトの状態として、開いている状態または閉じている状態のどちらかを選択できます。 フィールドセットおよびフィールドセット内のフィールドの順序は、コンテンツモジュールが提供するドラッグ&ドロップインターフェイスによって管理されます。"
+
+#: modules/cck/content.module:35
+msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr "詳細については、Drupal handbook の <a href=\"@handbook-cck\">CCK</a> ページまたは <a href=\"@project-cck\">CCK プロジェクト</a>ページで確認できます。"
+
+#: modules/cck/content.module:41
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "このコンテンツタイプで作成されたノードが要約ページや全文ページとして表示されたときの、フィールドやラベルの表示方法について設定します。"
+
+#: modules/cck/content.module:44
+msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
+msgstr "このコンテンツタイプのフィールドについて、以下の場面で表示される時の表示方法を設定してください。"
+
+#: modules/cck/content.module:48
+msgid "Control the order of fields in the input form."
+msgstr "入力フォームに表示するフィールドの順序をコントロールします。"
+
+#: modules/cck/content.module:479
+msgid "This field is required."
+msgstr "このフィールドの入力は必須です。"
+
+#: modules/cck/content.module:483
+msgid "!title: !required"
+msgstr "!title: !required"
+
+#: modules/cck/content.module:486
+msgid "Order"
+msgstr "並べ替え順"
+
+#: modules/cck/content.module:516
+msgid "Add another item"
+msgstr "アイテムの追加"
+
+#: modules/cck/content.module:1616
+msgid "RSS Item"
+msgstr "RSS アイテム"
+
+#: modules/cck/content.module:1618
+msgid "Search Index"
+msgstr "検索インデックス"
+
+#: modules/cck/content.module:1619
+msgid "Search Result"
+msgstr "検索結果"
+
+#: modules/cck/content.module:1957
+msgid "Language"
+msgstr "言語"
+
+#: modules/cck/content.module:1960
+msgid "Taxonomy"
+msgstr "タクソノミー"
+
+#: modules/cck/content.module:1963
+msgid "File attachments"
+msgstr "ファイルの添付"
+
+#: modules/cck/content.module:568
+msgid "Updating field type %type with module %module."
+msgstr "%module モジュールによって %type タイプフィールドが更新されました。"
+
+#: modules/cck/content.module:575
+msgid "Updating widget type %type with module %module."
+msgstr "%module モジュールによって %type タイプウィジェットが更新されました。"
+
+#: modules/cck/content.module:142
+msgid "Manage fields"
+msgstr "フィールドの管理"
+
+#: modules/cck/content.module:151
+msgid "Display fields"
+msgstr "フィールドの表示"
+
+#: modules/cck/content.module:160
+msgid "General"
+msgstr "全般"
+
+#: modules/cck/content.module:166
+msgid "Advanced"
+msgstr "高度な設定"
+
+#: modules/cck/content.module:194
+msgid "Remove field"
+msgstr "フィールドの取り外し"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/nl.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/nl.po
new file mode 100644
index 0000000..d01dcc9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/nl.po
@@ -0,0 +1,406 @@
+# $Id$
+# translation of nl.po to
+# translation of cck.po to
+# LANGUAGE translation of Drupal (cck)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 JonBob
+#  text.module,v 1.32.2.2 2006/05/03 12:56:52 JonBob
+#  number.module,v 1.27.2.2 2006/05/03 12:56:52 JonBob
+#  content_admin.inc,v 1.12.2.2 2006/05/03 12:56:52 JonBob
+#  content.module,v 1.56.2.3 2006/05/03 12:56:52 JonBob
+#  nodereference.module,v 1.25.2.3 2006/05/05 14:22:41 JonBob
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 JonBob
+#  userreference.module,v 1.22.2.3 2006/05/05 14:22:41 JonBob
+#  content_admin.inc,v 1.12.2.2 2006/05/03 12:56:52 JonBob
+#
+# Bèr Kessels <ber at webschuur.com>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: nl\n"
+"POT-Creation-Date: 2006-05-20 04:11+0100\n"
+"PO-Revision-Date: 2006-06-12 13:24+0200\n"
+"Last-Translator: Bèr Kessels <ber at webschuur.com>\n"
+"Language-Team:  <nl at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Generator: KBabel 1.11.2\n"
+
+#: field.php:77 text.module:44
+msgid "Maximum length"
+msgstr "Maximum lengte"
+
+#: field.php:80 text.module:47
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr ""
+
+#: field.php:102 number.module:82 text.module:80
+msgid "is equal to"
+msgstr "is gelijk aan"
+
+#: field.php:103 number.module:83 text.module:81
+msgid "is not equal to"
+msgstr "is niet gelijk aan"
+
+#: field.php:104 text.module:82
+msgid "matches the pattern"
+msgstr "komt overeen met patroon"
+
+#: field.php:180;190 number.module:119 text.module:107
+msgid "Illegal value for %name."
+msgstr ""
+
+#: field.php:265 text.module:159
+msgid "Rows"
+msgstr "Rijen"
+
+#: field.php:273 text.module:167
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"Rijen\" moet een positief geheel getal zijn."
+
+#: content_admin.inc:24 content.module:128
+msgid "edit"
+msgstr "bewerken"
+
+#: content_admin.inc:25 content.module:119
+msgid "duplicate"
+msgstr "duplicaat"
+
+#: content_admin.inc:26 content.module:111
+msgid "delete"
+msgstr "verwijderen"
+
+#: number.module:48 text.module:51
+msgid "Allowed values"
+msgstr ""
+
+#: number.module:52 text.module:55
+msgid "The possible values this field can contain. Any other values will result in an error. Enter one value per line."
+msgstr ""
+
+#: content.module:18
+msgid "Allows administrators to define new content types."
+msgstr ""
+
+#: content.module:61
+msgid "content types"
+msgstr "inhoudstypen"
+
+#: content.module:67
+msgid "list"
+msgstr "lijst"
+
+#: content.module:73
+msgid "add content type"
+msgstr ""
+
+#: content.module:80
+msgid "fields"
+msgstr "velden"
+
+#: content.module:135
+msgid "manage fields"
+msgstr ""
+
+#: content.module:144
+msgid "add field"
+msgstr "veld toevoegen"
+
+#: content.module:164
+msgid "remove field"
+msgstr "veld verwijderen"
+
+#: content.module:0
+msgid "content"
+msgstr "inhoud"
+
+#: nodereference.module:15
+msgid "Defines a field type for referencing one node from another. <em>Note: Requires content.module.</em>"
+msgstr ""
+
+#: nodereference.module:26
+msgid "node reference autocomplete"
+msgstr "node verwijzing auto-aanvullen"
+
+#: nodereference.module:51
+msgid "Content types that can be referenced"
+msgstr ""
+
+#: nodereference.module:204
+msgid "No post with that title exists."
+msgstr ""
+
+#: nodereference.module:0
+msgid "nodereference"
+msgstr ""
+
+#: number.module:15
+msgid "Defines numeric field types. <em>Note: Requires content.module.</em>"
+msgstr ""
+
+#: number.module:38
+msgid "Minimum"
+msgstr ""
+
+#: number.module:43
+msgid "Maximum"
+msgstr ""
+
+#: number.module:58
+msgid "\"Minimum\" must be a number."
+msgstr ""
+
+#: number.module:61
+msgid "\"Maximum\" must be a number."
+msgstr ""
+
+#: number.module:113
+msgid "The value of %name may be no smaller than %min."
+msgstr ""
+
+#: number.module:116
+msgid "The value of %name may be no larger than %max."
+msgstr ""
+
+#: number.module:0
+msgid "number"
+msgstr "getal"
+
+#: optionwidgets.module:15
+msgid "Defines selection, check box and radio button widgets for text and numeric fields. <em>Note: Requires content.module, text.module and number.module.</em>"
+msgstr ""
+
+#: optionwidgets.module:0
+msgid "optionwidgets"
+msgstr ""
+
+#: text.module:15
+msgid "Defines simple text field types. <em>Note: Requires content.module.</em>"
+msgstr ""
+
+#: text.module:35
+msgid "Plain text"
+msgstr "Platte tekst"
+
+#: text.module:35
+msgid "Filtered text (user selects input format)"
+msgstr "Gefilterede tekst (gebruiker geeft invoerformaat op)"
+
+#: text.module:38
+msgid "Text processing"
+msgstr ""
+
+#: text.module:0
+msgid "text"
+msgstr "tekst"
+
+#: userreference.module:15
+msgid "Defines a field type for referencing a user from a node. <em>Note: Requires content.module.</em>"
+msgstr ""
+
+#: userreference.module:176
+msgid "Invalid user name."
+msgstr "ongeldige gebruikersnaam."
+
+#: userreference.module:0
+msgid "userreference"
+msgstr ""
+
+#: content_admin.inc:16;87;235;314;544
+msgid "Label"
+msgstr ""
+
+#: content_admin.inc:16;42;235
+msgid "Name"
+msgstr "Naam"
+
+#: content_admin.inc:16;94
+msgid "Description"
+msgstr "Beschrijving"
+
+#: content_admin.inc:16;235
+msgid "Operations"
+msgstr "Handelingen"
+
+#: content_admin.inc:42;235
+msgid "Type"
+msgstr "Type"
+
+#: content_admin.inc:42
+msgid "Content types"
+msgstr "Inoudstypen"
+
+#: content_admin.inc:90
+msgid "The human-readable name of this content type."
+msgstr "De leesbare naam van dit inhoudstype."
+
+#: content_admin.inc:98
+msgid "A brief description of the content type."
+msgstr ""
+
+#: content_admin.inc:102;560
+msgid "Help text"
+msgstr "Helptekst"
+
+#: content_admin.inc:106
+msgid "Instructions to present to the user when adding new content of this type."
+msgstr ""
+
+#: content_admin.inc:110
+msgid "Title field label"
+msgstr "Titel veld label"
+
+#: content_admin.inc:113
+msgid "The label for the title field."
+msgstr ""
+
+#: content_admin.inc:118
+msgid "Save content type"
+msgstr "Indienen inhoud type"
+
+#: content_admin.inc:182
+msgid "Saved content type %type."
+msgstr ""
+
+#: content_admin.inc:199
+msgid "Are you sure you want to delete the content type %type?"
+msgstr ""
+
+#: content_admin.inc:199
+msgid "If you have any content left in this content type, it will be permanently deleted. This action cannot be undone."
+msgstr ""
+
+#: content_admin.inc:199
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: content_admin.inc:199;462
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: content_admin.inc:220
+msgid "Deleted content type %type."
+msgstr "Verwijderd inhoud type %type."
+
+#: content_admin.inc:250
+msgid "configure"
+msgstr "configureren"
+
+#: content_admin.inc:251
+msgid "remove"
+msgstr "verwijderen"
+
+#: content_admin.inc:281
+msgid "Add existing field"
+msgstr ""
+
+#: content_admin.inc:290
+msgid "Add field"
+msgstr "Veld toeveogen"
+
+#: content_admin.inc:311
+msgid "Create new field"
+msgstr "Nieuw veld aanmaken"
+
+#: content_admin.inc:317
+msgid "The human-readable name of this field."
+msgstr ""
+
+#: content_admin.inc:322
+msgid "Field type"
+msgstr "Veldtype"
+
+#: content_admin.inc:330
+msgid "Create field"
+msgstr ""
+
+#: content_admin.inc:339
+msgid "No field modules are enabled. You need to <a href=\"%modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr ""
+
+#: content_admin.inc:396
+msgid "Added field %label."
+msgstr ""
+
+#: content_admin.inc:441
+msgid "Created field %label."
+msgstr ""
+
+#: content_admin.inc:462
+msgid "Are you sure you want to remove the field %field?"
+msgstr ""
+
+#: content_admin.inc:462
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr ""
+
+#: content_admin.inc:462
+msgid "Remove"
+msgstr ""
+
+#: content_admin.inc:479
+msgid "Removed field %field from %type."
+msgstr ""
+
+#: content_admin.inc:498
+msgid "The field %field no longer exists in any content type, so it was deleted."
+msgstr ""
+
+#: content_admin.inc:522
+msgid "Widget settings"
+msgstr "Widget instellingen"
+
+#: content_admin.inc:523
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr ""
+
+#: content_admin.inc:537
+msgid "Widget"
+msgstr ""
+
+#: content_admin.inc:550
+msgid "Weight"
+msgstr "Gewicht"
+
+#: content_admin.inc:552
+msgid "In the node editing form, the heavier fields will sink and the lighter fields will be positioned nearer the top."
+msgstr ""
+
+#: content_admin.inc:563
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr ""
+
+#: content_admin.inc:569
+msgid "Data settings"
+msgstr "Data instellingen"
+
+#: content_admin.inc:570
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr ""
+
+#: content_admin.inc:574
+msgid "Required"
+msgstr "Vereist"
+
+#: content_admin.inc:579
+msgid "Multiple values"
+msgstr "Meerdere waarden"
+
+#: content_admin.inc:590
+msgid "Save field settings"
+msgstr "Veldinstellingen indienen"
+
+#: content_admin.inc:665
+msgid "Saved field %field."
+msgstr ""
+
+#: content_admin.inc:896;985
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr ""
+
+#: content_admin.inc:896;985
+msgid "database"
+msgstr "database"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/pt-br.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/pt-br.po
new file mode 100644
index 0000000..9d7bbc0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/pt-br.po
@@ -0,0 +1,1523 @@
+# Portuguese, Brazil translation of Content Construction Kit (CCK) (6.x-2.6)
+# Copyright (c) 2010 by the Portuguese, Brazil translation team
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Content Construction Kit (CCK) (6.x-2.6)\n"
+"POT-Creation-Date: 2010-05-28 15:21+0000\n"
+"PO-Revision-Date: 2010-05-28 15:18+0000\n"
+"Language-Team: Portuguese, Brazil\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+msgid "CCK"
+msgstr "CCK"
+msgid "delete"
+msgstr "apagar"
+msgid "Prefix"
+msgstr "Prefixo"
+msgid "Suffix"
+msgstr "Sufixo"
+msgid "Operations"
+msgstr "Operações"
+msgid "Content"
+msgstr "Conteúdo"
+msgid "content"
+msgstr "conteúdo"
+msgid "Type"
+msgstr "Tipo"
+msgid "Cancel"
+msgstr "Cancelar"
+msgid "Remove"
+msgstr "Remover"
+msgid "Description"
+msgstr "Descrição"
+msgid "Language"
+msgstr "Língua"
+msgid "Block title"
+msgstr "Título do bloco"
+msgid "Taxonomy"
+msgstr "Taxonomia"
+msgid "Content types"
+msgstr "Tipos de conteúdo"
+msgid "Search"
+msgstr "Buscar"
+msgid "None"
+msgstr "Nenhum"
+msgid "Display settings"
+msgstr "Opções de exibição"
+msgid "This action cannot be undone."
+msgstr "Esta operação não poderá ser desfeita."
+msgid "Number"
+msgstr "Número"
+msgid "- None -"
+msgstr "- Nenhum -"
+msgid "Weight"
+msgstr "Peso"
+msgid "Help text"
+msgstr "Texto de ajuda"
+msgid "Types"
+msgstr "Tipos"
+msgid "Required"
+msgstr "Obrigatório"
+msgid "none"
+msgstr "nenhum"
+msgid "Name"
+msgstr "Nome"
+msgid "edit"
+msgstr "editar"
+msgid "Import"
+msgstr "Importar"
+msgid "Book"
+msgstr "Livro"
+msgid "Export"
+msgstr "Exportar"
+msgid "Field"
+msgstr "Campo"
+msgid "Label"
+msgstr "Rótulo"
+msgid "Save"
+msgstr "Salvar"
+msgid "Default"
+msgstr "Padrão"
+msgid "Add"
+msgstr "Adicionar"
+msgid "Format"
+msgstr "Formato"
+msgid "Teaser"
+msgstr "Chamada"
+msgid "Text"
+msgstr "Texto"
+msgid "Content type"
+msgstr "Tipo de conteúdo"
+msgid "Continue"
+msgstr "Continuar"
+msgid "Configure"
+msgstr "Configurar"
+msgid "Node"
+msgstr "Node"
+msgid "Include"
+msgstr "Incluir"
+msgid "Exclude"
+msgstr "Excluir"
+msgid "All"
+msgstr "Tudo"
+msgid "View arguments"
+msgstr "Argumentos de View"
+msgid "RSS"
+msgstr "RSS"
+msgid "Inline"
+msgstr "Mesma linha"
+msgid "Delta"
+msgstr "Delta"
+msgid "Custom"
+msgstr "Personalizado"
+msgid "Poll choices"
+msgstr "Opções da enquete"
+msgid "Content field"
+msgstr "Campo do conteúdo"
+msgid "Field name"
+msgstr "Nome do campo"
+msgid "Field type"
+msgstr "Tipo do campo"
+msgid "Global settings"
+msgstr "Opções globais"
+msgid "Fields"
+msgstr "Campos"
+msgid "Widget type"
+msgstr "Tipo de widget"
+msgid "Contains"
+msgstr "Contendo"
+msgid "N/A"
+msgstr "-"
+msgid "This field is required."
+msgstr "Este campo é obrigatório."
+msgid "Maximum"
+msgstr "Máximo"
+msgid "Scale"
+msgstr "Escala"
+msgid "Plain text"
+msgstr "Texto puro"
+msgid "Unlimited"
+msgstr "Ilimitado"
+msgid "Code"
+msgstr "Código"
+msgid "Basic"
+msgstr "Básico"
+msgid "Filtered text (user selects input format)"
+msgstr "Texto filtrado (o usuário seleciona o formato de entrada)"
+msgid "Text processing"
+msgstr "Processamento de texto"
+msgid "Maximum length"
+msgstr "Comprimento máximo"
+msgid ""
+"The maximum length of the field in characters. Leave blank for an "
+"unlimited size."
+msgstr ""
+"Número máximo de caracteres no campo. Deixe em branco para não "
+"impor um limite."
+msgid "Rows"
+msgstr "Linhas"
+msgid "Existing Views"
+msgstr "Views existentes"
+msgid "Default Views"
+msgstr "Views padrão"
+msgid "Empty text"
+msgstr "Mensagem \"Não há resultados\""
+msgid "Order"
+msgstr "Ordem"
+msgid "Integer"
+msgstr "Inteiro"
+msgid "Edit group"
+msgstr "Editar grupo"
+msgid "Size of textfield"
+msgstr "Tamanho do campo de texto"
+msgid "File attachments"
+msgstr "Arquivos anexados"
+msgid "Token"
+msgstr "Token"
+msgid "Allowed values list"
+msgstr "Lista dos valores permitidos"
+msgid "Select list"
+msgstr "Lista de seleção"
+msgid "Text field"
+msgstr "Campo de texto"
+msgid "PHP code"
+msgstr "Código PHP"
+msgid "Display fields"
+msgstr "Exibir campos"
+msgid "Poll settings"
+msgstr "Configurações de enquete"
+msgid "Style"
+msgstr "Estilo"
+msgid "Your settings have been saved."
+msgstr "Suas configurações foram salvas."
+msgid "Reversed"
+msgstr "Revertido"
+msgid "%type settings"
+msgstr "Configurações de %type"
+msgid "Menu settings"
+msgstr "Configurações de menu"
+msgid "edit "
+msgstr "editar "
+msgid "<Hidden>"
+msgstr "<Oculto>"
+msgid "Comment settings"
+msgstr "Configurações dos comentários"
+msgid "Related content"
+msgstr "Conteúdo relacionado"
+msgid "Processing"
+msgstr "Processando"
+msgid "Default value"
+msgstr "Valor padrão"
+msgid "No content types available."
+msgstr "Não há nenhum tipo de conteúdo disponível."
+msgid "Simple"
+msgstr "Simples"
+msgid "Above"
+msgstr "Acima"
+msgid "Number of values"
+msgstr "Quantidade de valores"
+msgid ""
+"Warning! Changing this setting after data has been created could "
+"result in the loss of data!"
+msgstr ""
+"Atenção! Mudar esta configuração após os dados terem sido "
+"cadastrados poderá resultar em perda de dados!"
+msgid ""
+"The content module, a required component of the Content Construction "
+"Kit (CCK), allows administrators to associate custom fields with "
+"content types. In Drupal, content types are used to define the "
+"characteristics of a post, including the title and description of the "
+"fields displayed on its add and edit pages. Using the content module "
+"(and the other helper modules included in CCK), custom fields beyond "
+"the default \"Title\" and \"Body\" may be added. CCK features are "
+"accessible through tabs on the <a href=\"@content-types\">content "
+"types administration page</a>. (See the <a href=\"@node-help\">node "
+"module help page</a> for more information about content types.)"
+msgstr ""
+"O módulo Content, um componente exigido do Content Construction Kit "
+"(CCK), permite que um administrador associe campos personalizados a "
+"tipos de conteúdos. No Drupal, tipos de conteúdos são usados para "
+"definir características de um node, incluíndo o título e a "
+"descrição dos campos exibidos nas páginas de criação e de "
+"edição do conteúdo. Usando o módulo Content (e os outros módulos "
+"úteis incluídos no CCK), campos personalizados, muito além do "
+"\"Título\" e \"Corpo\", poderão ser adicionados. Os recursos do CCK "
+"estão acessíveis pelas abas na <a href=\"@content-types\">página de "
+"administração de tipos de conteúdo</a>. (Consulte a <a "
+"href=\"@node-help\">página de ajuda do módulo</a> para mais "
+"informações sobre tipos de conteúdo)."
+msgid ""
+"When adding a custom field to a content type, you determine its type "
+"(whether it will contain text, numbers, or references to other "
+"objects) and how it will be displayed (either as a text field or area, "
+"a select box, checkbox, radio button, or autocompleting field). A "
+"field may have multiple values (i.e., a \"person\" may have multiple "
+"e-mail addresses) or a single value (i.e., an \"employee\" has a "
+"single employee identification number). As you add and edit fields, "
+"CCK automatically adjusts the structure of the database as necessary. "
+"CCK also provides a number of other features, including intelligent "
+"caching for your custom data, an import and export facility for "
+"content type definitions, and integration with other contributed "
+"modules."
+msgstr ""
+"Quando você adiciona um campo personalizado a um tipo de conteúdo, "
+"você deve determinar o tipo do campo (se ele irá conter texto, "
+"números ou referência a outros nodes) e como ele deverá ser exibido "
+"(seja como um campo ou uma caixa de texto, uma seleção em lista, uma "
+"caixa de seleção, botões rádio, um campo de texto com "
+"autocompletar, etc). Um campo pode ter múltiplos valores (por exemplo "
+"uma pessoa pode ter vários endereços de e-mail), ou um único valor "
+"(por exemplo, um empregado só pode ter um único número de registro "
+"em uma empresa). Quando você adiciona e edita campos, o CCK ajusta "
+"automaticamente a estrutura do banco de dados necessária para "
+"armazená-los. O CCK também oferece vários recursos, como cache "
+"inteligente para campos personalizados, um sistema de "
+"importação/exportação dos formulários criados, além de um "
+"sistema de integração com vários outros módulos."
+msgid ""
+"Custom field types are provided by a set of optional modules included "
+"with CCK (each module provides a different type). The <a "
+"href=\"@modules\">modules page</a> allows you to enable or disable CCK "
+"components. A default installation of CCK includes:"
+msgstr ""
+"Tipos personalizados de campo são gerados por uma série de módulos "
+"incluídos com o CCK. Cada módulo gera um tipo diferente de campo. A "
+"<a href=\"@modules\">página de módulos</a> permite que você "
+"habilite ou desabilite componentes do CCK. Uma instalação padrão do "
+"CCK inclui:"
+msgid ""
+"<em>number</em>, which adds numeric field types, in integer, decimal "
+"or floating point form. You may define a set of allowed inputs, or "
+"specify an allowable range of values. A variety of common formats for "
+"displaying numeric data are available."
+msgstr ""
+"<em>número</em>, que permite adicionar campos numéricos, no formato "
+"inteiro, decimal ou ponto flutuante. Você pode definir o conjunto de "
+"entradas permitidas, ou especificar um intervalo de valores "
+"permitidos. Vários formatos comuns para exibir dados numéricos "
+"também estão disponiveis."
+msgid ""
+"<em>text</em>, which adds text field types. A text field may contain "
+"plain text only, or optionally, may use Drupal's input format filters "
+"to securely manage rich text input. Text input fields may be either a "
+"single line (text field), multiple lines (text area), or for greater "
+"input control, a select box, checkbox, or radio buttons. If desired, "
+"CCK can validate the input to a set of allowed values."
+msgstr ""
+"<em>texto</em>, que permite adicionar campos de texto. Um campo de "
+"texto pode conter texto puro ou, se você quiser, usar os filtros de "
+"formato de entrada do Drupal para gerenciar de maneira segura a "
+"entrada dos dados. A entrada de texto pode ser por um campo de texto "
+"de uma linha, uma caixa de texto com várias linhas, ou, para maior "
+"controle de entrada, uma seleção em lista suspensa, uma caixa de "
+"seleção ou botões rádio. Caso você desejar, o CCK pode restringir "
+"a entrada a uma série de valores  permitidos que você "
+"pré-configure."
+msgid ""
+"<em>nodereference</em>, which creates custom references between Drupal "
+"nodes. By adding a <em>nodereference</em> field and two different "
+"content types, for instance, you can easily create complex "
+"parent/child relationships between data (multiple \"employee\" nodes "
+"may contain a <em>nodereference</em> field linking to an \"employer\" "
+"node)."
+msgstr ""
+"<em>referência a nodes</em>, que permite criar campos que referenciam "
+"outros nodes no site. Ao adicionar um campo de <em>referência a "
+"nodes</em> e dois tipos de conteúdo, você pode criar relações "
+"complexas de itens principais e secundários entre os dados (por "
+"exemplo, nodes de \"empregados\" podem ter um campo de referência que "
+"os liga a um mesmo node \"empregador\")."
+msgid ""
+"<em>userreference</em>, which creates custom references to your sites' "
+"user accounts. By adding a <em>userreference</em> field, you can "
+"create complex relationships between your site's users and posts. To "
+"track user involvement in a post beyond Drupal's standard <em>Authored "
+"by</em> field, for instance, add a <em>userreference</em> field named "
+"\"Edited by\" to a content type to store a link to an editor's user "
+"account page."
+msgstr ""
+"<em>userreference</em>, que permite criar campos que referenciam "
+"contas de usuários de site. Ao adicionar um campo de <em>referência "
+"a usuários</em>, você pode criar relacões complexas entre os "
+"usuários do site e os nodes. Por exemplo, se você quiser acompanhar "
+"o envolvimento do usuário em um node, além do campo padrão do "
+"Drupal <em>criado por</em>, é possível adicionar um campo de "
+"referência chamado \"Monitorado por\" a um tipo de conteúdo e "
+"armazenar um link para a página da de perfil de um usuário."
+msgid ""
+"<em>fieldgroup</em>, which creates collapsible fieldsets to hold a "
+"group of related fields. A fieldset may either be open or closed by "
+"default. The order of your fieldsets, and the order of fields within a "
+"fieldset, is managed via a drag-and-drop interface provided by content "
+"module."
+msgstr ""
+"<em>grupo de campos</em>, que permite adicionar conjuntos expansíveis "
+"para manter um grupo de campos relacionados. Um grupo também pode "
+"estar aberto ou fechado por padrão. A ordem dos seus grupos, e a "
+"ordem dos campos dentro deles é gerenciável através de uma "
+"interface arrastar-e-soltar oriunda do módulo Content."
+msgid ""
+"For more information, see the online handbook entry for <a "
+"href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK "
+"project page</a>."
+msgstr ""
+"Para mais informações, consulte a ajuda online sobre o <a href=\"@ "
+"handbook-cck\">CCK</a> ou a <a href=\"@project-cck\">página do "
+"projeto</a>."
+msgid ""
+"Configure how this content type's fields and field labels should be "
+"displayed when it's viewed in teaser and full-page mode."
+msgstr ""
+"Configurar como os campos e rótulos de campos devem ser exibidos em "
+"nodes deste tipo de conteúdo."
+msgid ""
+"Configure how this content type's fields should be displayed when it's "
+"rendered in the following contexts."
+msgstr ""
+"Configurar como este tipo de conteúdo deve ser exibido nos seguintes "
+"contextos."
+msgid "!title: !required"
+msgstr "!title: !required"
+msgid "Add another item"
+msgstr "Novo item"
+msgid "Full node"
+msgstr "Node completo"
+msgid "Search Index"
+msgstr "Índice de busca"
+msgid "Search Result"
+msgstr "Resultado da busca"
+msgid "Updating field type %type with module %module."
+msgstr "Atualizando o tipo de campo %type com o módulo %module."
+msgid "Updating widget type %type with module %module."
+msgstr "Atualizando o tipo de widget %type com o módulo %module."
+msgid "Manage fields"
+msgstr "Gerenciar campos"
+msgid "Remove field"
+msgstr "Remover campo"
+msgid "Allows administrators to define new content types."
+msgstr "Permite que administradores definam novos tipos de conteúdo."
+msgid ""
+"Advanced usage only: PHP code that returns a keyed array of allowed "
+"values. Should not include <?php ?> delimiters. If this field is "
+"filled out, the array returned by this code will override the allowed "
+"values list above."
+msgstr ""
+"Uso avançado apenas: código PHP que deverá retornar um array "
+"chaveado com os valores permitidos. Não inclua os delimitadores "
+"<?php ?> Se o campo estiver preenchido, o array retornado pelo "
+"código vai sobrescrever os valores da lista acima."
+msgid "Trimmed"
+msgstr "Cortado"
+msgid "Used in"
+msgstr "Usado em"
+msgid "No fields have been defined for any content type yet."
+msgstr "Ainda não há nenhum campo definido em nenhum tipo de conteúdo."
+msgid "no styling"
+msgstr "sem estilo"
+msgid "simple"
+msgstr "simples"
+msgid "fieldset"
+msgstr "conjunto de campos"
+msgid "fieldset - collapsible"
+msgstr "conjunto de campos - colapsável"
+msgid "fieldset - collapsed"
+msgstr "conjunto de campos - colapsado"
+msgid "Added field %label."
+msgstr "O campo %label foi adicionado."
+msgid "There was a problem adding field %label."
+msgstr "Ocorreu um problema ao adicionar o campo %label."
+msgid "There was a problem creating field %label."
+msgstr "Ocorreu um problema na criação do campo %label."
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Você tem certeza de que deseja remover o campo %field?"
+msgid ""
+"If you have any content left in this field, it will be lost. This "
+"action cannot be undone."
+msgstr ""
+"Caso você tenha algum conteúdo armazenado neste campo, ele será "
+"perdido. Esta ação não pode ser desfeita."
+msgid "Removed field %field from %type."
+msgstr "O campo %field foi removido de %type."
+msgid "There was a problem deleting %field from %type."
+msgstr "Ocorreu um problema ao remover %field de %type."
+msgid ""
+"These settings apply only to the %field field as it appears in the "
+"%type content type."
+msgstr ""
+"Essas configurações se aplicam ao campo %field apenas no tipo de "
+"conteúdo %type."
+msgid ""
+"These settings apply to the %field field in every content type in "
+"which it appears."
+msgstr ""
+"Essas configurações se aplicam ao campo %field em todos os tipos de "
+"conteúdo em que ele apareça."
+msgid "Save field settings"
+msgstr "Salvar as configurações do campo"
+msgid ""
+"The default value PHP code returned an incorrect value.<br/>Expected "
+"format: <pre>!sample</pre> Returned value: @value"
+msgstr ""
+"O valor que o código PHP retornou é inválido.<br/>Formato esperado: "
+"<pre>!sample</pre>. Valor retornado: @value"
+msgid "The default value is invalid."
+msgstr "O valor padrão é inválido."
+msgid "Saved field %label."
+msgstr "O campo %label foi salvo."
+msgid "The update has encountered an error."
+msgstr "Foi encontrado um erro na atualização."
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "O banco de dados foi alterado e dados foram migrados ou apagados."
+msgid "An error occurred and database alteration did not complete."
+msgstr "Ocorreu um erro e a alteração do banco de dados não foi completada."
+msgid "Processing %title"
+msgstr "Processando %title"
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "1 item for processado com sucesso:"
+msgstr[1] "@count itens foram processados com sucesso:"
+msgid ""
+"Content fields table %old_name has been renamed to %new_name and field "
+"instances have been updated."
+msgstr ""
+"A tabela de campos de conteúdo %old_name foi renomeada para %new_name "
+"e as instâncias do campo foram atualizadas."
+msgid "The content fields table %name has been deleted."
+msgstr "A tabela de campos de conteúdo %name foi apagada."
+msgid "Referenced node ID"
+msgstr "Identificador do referenciado"
+msgid "Referenced node title"
+msgstr "Título do node referenciado"
+msgid "Raw number value"
+msgstr "Valor numérico não filtrado"
+msgid "Formatted number value"
+msgstr "Valor numérico formatado"
+msgid "Raw, unfiltered text"
+msgstr "Texto original, não filtrado"
+msgid "Formatted and filtered text"
+msgstr "Texto formatado e filtrado"
+msgid "Referenced user ID"
+msgstr "Identificador do usuário referenciado"
+msgid "Referenced user name"
+msgstr "Nome do usuário referenciado"
+msgid "Formatted HTML link to referenced user"
+msgstr "Link para o usuário referenciado, em formato HTML"
+msgid "Group multiple values"
+msgstr "Agrupar múltiplos valores"
+msgid "Select the content type to export."
+msgstr "Selecione o tipo de conteúdo que deseja exportar."
+msgid "Export data"
+msgstr "Exportar dados"
+msgid ""
+"Copy the export text and paste it into another content type using the "
+"import function."
+msgstr ""
+"Copie o texto exportado e cole-o em outro tipo de conteúdo usando a "
+"função importar."
+msgid ""
+"This form will import field definitions exported from another content "
+"type or another database.<br/>Note that fields cannot be duplicated "
+"within the same content type, so imported fields will be added only if "
+"they do not already exist in the selected type."
+msgstr ""
+"Esse formulário irá importar as definições importadas de outro "
+"tipo de conteúdo ou outro banco de dados.<br />Note que campos não "
+"podem ser duplicados em um mesmo tipo de conteúdo, então campos "
+"importados serão adicionados apenas se eles não existirem no tipo de "
+"conteúdo selecionado."
+msgid "<Create>"
+msgstr "<Criar>"
+msgid ""
+"Select the content type to import these fields into.<br/>Select "
+"<Create> to create a new content type to contain the fields."
+msgstr ""
+"Selecione o tipo de conteúdo para o qual você deseja importar esses "
+"campos.<br /> Selecione <?Criar> para criar um novo tipo de "
+"conteúdo e inserir esses campos."
+msgid "Import data"
+msgstr "Importar dados"
+msgid "Paste the text created by a content export into this field."
+msgstr ""
+"Cole neste campo o texto criado pela exportação de um tipo de "
+"conteúdo."
+msgid "The import data is not valid import text."
+msgstr "Os dados de importação não são válidos."
+msgid ""
+"The following modules must be enabled for this import to work: "
+"%modules."
+msgstr ""
+"Os seguintes módulos devem ser habilitados para que a importação "
+"funcione: %modules."
+msgid "The content type %type already exists in this database."
+msgstr "O tipo de conteúdo %type já existe no banco de dados."
+msgid "Exiting. No import performed."
+msgstr "Saindo. Nada foi importado."
+msgid ""
+"An error has occurred adding the content type %type.<br/>Please check "
+"the errors displayed for more details."
+msgstr ""
+"Ocorreu um erro ao tentar adicionar o tipo de conteúdo %type.<br "
+"/>Por favor verifique os erros exibidos para mais informações."
+msgid ""
+"The imported field %field_label (%field_name) was not added to %type "
+"because that field already exists in %type."
+msgstr ""
+"O campo importado %field_label (%field_name) não foi adicionado a "
+"%type porque esse campo já existe em %type."
+msgid ""
+"The field %field_label (%field_name) was added to the content type "
+"%type."
+msgstr ""
+"O campo %field_label (%field_name) foi adicionado ao tipo de conteúdo "
+"%type."
+msgid ""
+"An error occurred when exporting the 'display settings' data for the "
+"field %field_name.<br/>The db error is: '%db_err'."
+msgstr ""
+"Ocorreu um erro ao tentar exportar os dados das \"configurações de "
+"exibição\" do campo %field_name.<br />O erro no banco de dados foi: "
+"\"%db_err\"."
+msgid "Content Copy"
+msgstr "Copiar conteúdo"
+msgid "Enables ability to import/export field definitions."
+msgstr ""
+"Habilita a função de importar/exportar definições de campos e "
+"tipos de conteúdo."
+msgid "field_name"
+msgstr "field_name"
+msgid "view "
+msgstr "ver "
+msgid ""
+"Please <a href=\"!url\">configure your field permissions</a> "
+"immediately. All fields are inaccessible by default."
+msgstr ""
+"Por favor <a href=\"!url\">configure imediatamente as permissões para "
+"seus campos</a>! Todos os campos ficam inacessíveis por padrão."
+msgid "Content Permissions"
+msgstr "Permissões ao conteúdo"
+msgid "Set field-level permissions for CCK fields."
+msgstr "Configurar permissões por campo para campos CCK"
+msgid "These settings apply to the group in the node editing form."
+msgstr ""
+"Essas configurações se aplicam ao grupo no formulário de edição "
+"do node."
+msgid "always open"
+msgstr "sempre aberto"
+msgid "collapsible"
+msgstr "dobrável"
+msgid "collapsed"
+msgstr "dobrado"
+msgid "Instructions to present to the user on the editing form."
+msgstr "Instruções a serem exibidas ao usuário no formulário de edição."
+msgid "These settings apply to the group on node display."
+msgstr "Essas configurações se aplicam a um grupo na exibição de node."
+msgid "A description of the group."
+msgstr "Uma descrição do grupo."
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Você tem certeza de que deseja remover o grupo %label?"
+msgid "The group %group_name has been removed."
+msgstr "O grupo %group_name foi removido."
+msgid "Fieldgroup"
+msgstr "Grupo de campos"
+msgid "Node reference"
+msgstr "Referência a um node"
+msgid "Store the ID of a related node as an integer value."
+msgstr ""
+"Armazena o identificador de um node relacionado como um número "
+"inteiro."
+msgid "Content types that can be referenced"
+msgstr "Tipos de conteúdos que podem ser referenciados"
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Avançado - nodes que podem ser referenciados (View)"
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr ""
+"Forneça uma lista de argumentos a serem passados à view, "
+"separando-os por vírgulas."
+msgid "Title (link)"
+msgstr "Título (link)"
+msgid "Title (no link)"
+msgstr "Título (sem link)"
+msgid "Autocomplete text field"
+msgstr "Campo de texto com autocompletar"
+msgid "Nodereference autocomplete"
+msgstr "Autocompletar referência a nodes"
+msgid "Node Reference"
+msgstr "Referência a nodes"
+msgid "Defines a field type for referencing one node from another."
+msgstr "Define um tipo de campo para um node referenciar outro."
+msgid "Store a number in the database as an integer."
+msgstr "Armazenar um número no banco de dados no formato \"inteiro\"."
+msgid "Decimal"
+msgstr "Decimal"
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Armazenar um número no banco de dados no formato \"decimal\"."
+msgid "Float"
+msgstr "Ponto flutuante"
+msgid "Store a number in the database in a floating point format."
+msgstr "Armazenar um número no banco de dados no formato \"ponto flutuante\"."
+msgid "Minimum"
+msgstr "Mínimo"
+msgid "Precision"
+msgstr "Precisão"
+msgid ""
+"The total number of digits to store in the database, including those "
+"to the right of the decimal."
+msgstr ""
+"O quantidade total de dígitos armazenados no banco de dados, "
+"incluindo aqueles à direita da casa decimal."
+msgid "The number of digits to the right of the decimal."
+msgstr "O número de dígitos à direita da casa decimal."
+msgid "Decimal marker"
+msgstr "Marcador decimal"
+msgid "The character users will input to mark the decimal point in forms."
+msgstr ""
+"O caractere que os usuários vão usar  nos formulários para marcar o "
+"decimal."
+msgid ""
+"Define a string that should be prefixed to the value, like $ or €. "
+"Leave blank for none. Separate singular and plural values with a pipe "
+"(pound|pounds)."
+msgstr ""
+"Defina um texto a ser prefixada ao valor. Por exemplo, $, R$ ou €. "
+"Deixe em branco para não usar nada. Se quiser, separe sufixos para "
+"singular e plural com um pipe (quilo|quilos)."
+msgid ""
+"Define a string that should suffixed to the value, like m², m/s², "
+"kb/s. Leave blank for none. Separate singular and plural values with a "
+"pipe (pound|pounds)."
+msgstr ""
+"Defina um texto a ser sufixado ao valor. Por exemplo, m², m/s², "
+"kb/s. Deixe em branco para não usar nada. Se quiser, separe sufixos "
+"para singular e plural com um pipe (quilo|quilos)."
+msgid "Allowed values"
+msgstr "Valores permitidos"
+msgid "\"Minimum\" must be a number."
+msgstr "O \"Mínimo\" deve ser um número."
+msgid "\"Maximum\" must be a number."
+msgstr "O \"Máximo\" deve ser um número."
+msgid "unformatted"
+msgstr "não formatado"
+msgid "Defines numeric field types."
+msgstr "Define campos numéricos."
+msgid ""
+"For a 'single on/off checkbox' widget, define the 'off' value first, "
+"then the 'on' value in the <strong>Allowed values</strong> section. "
+"Note that the checkbox will be labeled with the label of the 'on' "
+"value."
+msgstr ""
+"Para um dispositivo no formato de checkbox de 'liga/desliga', defina o "
+"valor de 'desligado' primeiro e então o valor 'ligado' na seção dos "
+"<strong>Valores permitidos</strong>. Note que o checkbox irá ter o "
+"label do valor 'ligado'."
+msgid ""
+"The 'checkboxes/radio buttons' widget will display checkboxes if the "
+"multiple values option is selected for this field, otherwise radios "
+"will be displayed."
+msgstr ""
+"O widget 'caixas de seleção/botões de opção' irá mostrar as "
+"caixas de seleção se a opção de valores múltiplos estiver "
+"selecionada para este campo, caso contrário serão mostrados botões "
+"de opção."
+msgid "Check boxes/radio buttons"
+msgstr "Caixas de seleção/botões de opção"
+msgid "Single on/off checkbox"
+msgstr "Checkbox simples de liga/desliga"
+msgid "Option Widgets"
+msgstr "Widgets opcionais"
+msgid ""
+"Defines selection, check box and radio button widgets for text and "
+"numeric fields."
+msgstr ""
+"Define widgets de seleção em lista, caixa de seleção e botões de "
+"rádio para os campos de texto e numéricos."
+msgid "Store text in the database."
+msgstr "Armazena texto no banco de dados."
+msgid "Text area (multiple rows)"
+msgstr "Caixa de texto (várias linhas)"
+msgid "Defines simple text field types."
+msgstr "Define tipos simples de campos de texto."
+msgid "User reference"
+msgstr "Referência a usuários"
+msgid "Store the ID of a related user as an integer value."
+msgstr ""
+"Armazena o identificador de um usuário referenciado no formato de um "
+"número inteiro."
+msgid "User roles that can be referenced"
+msgstr "Papéis de usuários que podem ser selecionados"
+msgid "User status that can be referenced"
+msgstr "Status dos usuários que podem ser referenciados"
+msgid "Reverse link"
+msgstr "Link reverso"
+msgid ""
+"If selected, a reverse link back to the referencing node will "
+"displayed on the referenced user record."
+msgstr ""
+"Se esta opção for selecionada, um link para o node referenciador "
+"será exibido na página do usuário."
+msgid "Userreference autocomplete"
+msgstr "Autocompletar da referência aos usuários"
+msgid "User Reference"
+msgstr "Referência a usuários"
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Define um tipo de campo para um node referenciar um usuário."
+msgid "All users"
+msgstr "Todos os usuários"
+msgid "Active users"
+msgstr "Usuários ativos"
+msgid "Print"
+msgstr "Imprimir"
+msgid "Locked"
+msgstr "Travado"
+msgid ""
+"Instructions to present to the user below this field on the editing "
+"form.<br />Allowed HTML tags: @tags"
+msgstr ""
+"Instruções para apresentar ao usuário abaixo deste campo, no "
+"formulário de edição.<br/>Tags HTML permitidas: @tags"
+msgid "<none>"
+msgstr "<nenhum>"
+msgid "You're not allowed to input PHP code."
+msgstr "Você não tem premissão para inserir código PHP."
+msgid ""
+"This PHP code was set by an administrator and will override any value "
+"specified above."
+msgstr ""
+"Este código PHP foi definido pelo administrador e irá sobrescrever "
+"qualquer valor especificado anteriormente."
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr ""
+"Usar código PHP nas configurações do campo (perigoso - conceda com "
+"cuidado)"
+msgid "A file has been pre-loaded for import."
+msgstr "Um arquivo foi pré-carregado para ser importado."
+msgid "Content fieldgroup"
+msgstr "Conteúdo do grupo de campos"
+msgid ""
+"Text to display if group has no data. Note that title will not display "
+"unless overridden."
+msgstr ""
+"Texto exibido se o grupo não tiver nenhum dado. Note que o título "
+"não será exibido a não ser que esteja sobrescrito."
+msgid "Node from reference"
+msgstr "Node da referência"
+msgid ""
+"Adds a node from a node reference in a node context; if multiple nodes "
+"are referenced, this will get the first referenced node only."
+msgstr ""
+"Adiciona um node a partir de um node reference em um contexto de node; "
+"se múltiplos nodes forem referenciados, isto irá pegar apenas o "
+"primeiro node referenciado."
+msgid "Node reference field"
+msgstr "Campo de referência a nodes"
+msgid ""
+"The possible values this field can contain. Enter one value per line, "
+"in the format key|label. The key is the value that will be stored in "
+"the database, and it must match the field storage type (%type). The "
+"label is optional, and the key will be used as the label if no label "
+"is specified.<br />Allowed HTML tags: @tags"
+msgstr ""
+"Os valores que este campo pode conter. Insira um valor por linha, no "
+"formato chave|rótulo. A chave é o valor que será armazenado no "
+"banco de dados, e deve ser compatível com o tipo de armazenamento do "
+"campo (%type). O rótulo é opcional e a chave será usada como o "
+"rótulo se nenhum rótulo for especificado.<br />Tags HTML permitidas: "
+"@tags"
+msgid ""
+"This PHP code was set by an administrator and will override the "
+"allowed values list above."
+msgstr ""
+"O código PHP foi configurado por um administrador e irá sobrescrever "
+"os valores inseridos acima."
+msgid "User from reference"
+msgstr "Usuário referenciado"
+msgid ""
+"Adds a user from a user reference in a node context; if multiple users "
+"are referenced, this will get the first referenced user only."
+msgstr ""
+"Adiciona um usuário a partir de uma referência em um contexto de "
+"node. Se múltiplos usuários forem referenciados apenas o primeiro "
+"será usado."
+msgid "User reference field"
+msgstr "Campo de referência a usuários"
+msgid "Show @count value(s)"
+msgstr "Exibir @count valor(es)"
+msgid "starting from @count"
+msgstr "começando de @count"
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Valores permitidos"
+msgid "%name: illegal value."
+msgstr "%name: valor ilegal."
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: você não pode digitar mais do que %max caracteres."
+msgid "Autocomplete matching"
+msgstr "Busca do autocompletar"
+msgid "Starts with"
+msgstr "Começa com"
+msgid "Load a referenced user"
+msgstr "Carregar uma referência a um usuário"
+msgid "Content containing the user reference field"
+msgstr "Conteúdo com o campo de referência a usuário"
+msgid "Referenced user"
+msgstr "Usuário referenciado"
+msgid "Load a referenced node"
+msgstr "Carrega um node referenciado"
+msgid "Content containing the node reference field"
+msgstr "O conteúdo que contém o campo de referencia a nodes"
+msgid "Referenced content"
+msgstr "Conteúdo referenciado"
+msgid "Populate a field"
+msgstr "Preencher um campo"
+msgid "Select the machine-name of the field."
+msgstr "Selecione o nome de máquina do campo"
+msgid "Revision information"
+msgstr "Informações da revisão"
+msgid ""
+"Select the method used to collect autocomplete suggestions. Note that "
+"<em>Contains</em> can cause performance issues on sites with thousands "
+"of users."
+msgstr ""
+"Selecione o método para coletar sugestões do autocompletar. Note que "
+"<em>Contém</em> pode ficar um pouco lento em sites com centenas de "
+"nodes."
+msgid "View used to select the nodes"
+msgstr "View usada para selecionar os nodes"
+msgid "%name: this post can't be referenced."
+msgstr "%name: este post não pode ser referenciado."
+msgid "Node module form."
+msgstr "Formulário do módulo Node."
+msgid "Locale module form."
+msgstr "Formulário do módulo Locale."
+msgid "Taxonomy module form."
+msgstr "Formulário do módulo Taxonomia."
+msgid "Poll title"
+msgstr "Título da Enquete"
+msgid "%name: this field cannot hold more than @count values."
+msgstr "%name: este campo não aceita mais de @count valores."
+msgid "'@column' => value for @column"
+msgstr "'@column' => valor para @column"
+msgid ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgstr ""
+"return array(\r\n"
+"  0 => array(@columns),\r\n"
+"  // Talvez você deseje parar aqui.\r\n"
+"  // Informe mais valores se quiser que o \"valor padrão\" "
+"múltiplo:\r\n"
+"  1 => array(@columns),\r\n"
+"  2 => ...\r\n"
+");"
+msgid ""
+"Create a list of options as a list in <strong>Allowed values "
+"list</strong> or as an array in PHP code. These values will be the "
+"same for %field in all content types."
+msgstr ""
+"Criar uma lista de opções como uma lista em <strong>Lista dos "
+"valores permitidos</strong> ou como um array no código PHP. Estes "
+"valores serão os mesmos para o %field em todos os tipos de conteúdo."
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Você deve especificar os \"valores permitidos\" para este campo."
+msgid "Change basic information"
+msgstr "Alterar as informações básicas"
+msgid "Fieldset"
+msgstr "Conjunto de campos"
+msgid "Translation settings"
+msgstr "Configurações da tradução"
+msgid ""
+"Select the method used to collect autocomplete suggestions. Note that "
+"<em>Contains</em> can cause performance issues on sites with thousands "
+"of nodes."
+msgstr ""
+"Selecione o método usado para coletar as sugestões do autocompletar. "
+"Note que <em>Contém</em> pode acarretar em problemas de desempenho em "
+"um site com milhares de nodes."
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: título errado. Por favor confira sua seleção."
+msgid "Path settings"
+msgstr "Configurações do endereço"
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: o valor não pode ser menor que %min."
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: o valor não pode ser mais que %max."
+msgid "%name: found no valid user with that name."
+msgstr "%name: não há um usuário com esse nome."
+msgid "Field label"
+msgstr "Rótulo do campo"
+msgid "Form settings"
+msgstr "Configurações do formulário"
+msgid "Type of group."
+msgstr "Tipo de grupo."
+msgid ""
+"If unchecked, each item in the field will create a new row, which may "
+"appear to cause duplicates. This setting is not compatible with "
+"click-sorting in table displays."
+msgstr ""
+"Se você não selecionar esta opção, cada item no campo será criado "
+"como uma nova linha, o que pode ocasionar resultados duplicados. Esta "
+"configuração não é compatível com tabelas que tenham a opção de "
+"reordenar com um clique."
+msgid ""
+"Some updates are still pending. Please return to <a "
+"href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr ""
+"Algumas atualizações ainda estão pendentes. Por favor, retorne para "
+"<a href=\"@update-php\">update.php</a> e execute as atualizações "
+"restantes."
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr ""
+"Algumas atualizações estão pendentes.<br/>Por favor, rode novamente "
+"o script de atualização."
+msgid "Comment module form."
+msgstr "Formulário do módulo Comentário."
+msgid "Translation module form."
+msgstr "Formulário do módulo Tradução."
+msgid "Menu module form."
+msgstr "Formulário do módulo Menu."
+msgid "Book module form."
+msgstr "Formulário do módulo Livro."
+msgid "Path module form."
+msgstr "Formulário do módulo Caminho."
+msgid "Poll module title."
+msgstr "Título do módulo Enquete."
+msgid "Poll module choices."
+msgstr "Opções do módulo enquete"
+msgid "Poll module settings."
+msgstr "Configurações do módulo Enquete."
+msgid "Upload module form."
+msgstr "Formulário do módulo Upload."
+msgid ""
+"Updates for CCK-related modules are not run until the modules are "
+"enabled on the <a href=\"@admin-modules-path\">administer modules "
+"page</a>. When you enable them, you'll need to return to <a "
+"href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr ""
+"Atualizações para módulo relacionados ao CCK não são rodadas até "
+"que os módulos sejam ativados na <a "
+"href=\"@admin-modules-path\">área de administração de módulos</a>. "
+"Após habilitá-los, você deve retornar ao script <a "
+"href=\"@update-php\">update.php</a> e rodar as atualizações "
+"faltantes."
+msgid ""
+"!module.module has updates but cannot be updated because "
+"content.module is not enabled.<br />If and when content.module is "
+"enabled, you will need to re-run the update script. You will continue "
+"to see this message until the module is enabled and updates are run."
+msgstr ""
+"O módulo !module tem atualizações disponíveis, mas não foi "
+"possível executá-las porque o módulo content.module não está "
+"habilitado.<br />Quando (ou se) o módulo Content for ativado, você "
+"deverá executar o script de atualização novamente. Você "
+"continuará a ver esta mensagem até que o módulo seja ativado e "
+"todas as atualizações, rodadas."
+msgid ""
+"!module.module has updates and is available in the modules folder but "
+"is not enabled.<br />If and when it is enabled, you will need to "
+"re-run the update script. You will continue to see this message until "
+"the module is enabled and updates are run."
+msgstr ""
+"O módulo !module tem atualizações disponíveis no diretório de "
+"módulos, mas ele não está ativo.<br />Quando (ou se) ele for "
+"ativado, você deverá executar o script de atualização novamente. "
+"Você continuará a ver esta mensagem até que o módulo seja ativado "
+"e todas as atualizações, rodadas."
+msgid "CCK - No Views integration"
+msgstr "CCK - Sem integração com Views"
+msgid ""
+"CCK integration with Views module requires Views 6.x-2.0-rc2 or "
+"greater."
+msgstr ""
+"Integração do CCK com o módulo Views requer Views 6.x-2.0-rc2 ou "
+"superior."
+msgid "manage fields"
+msgstr "gerenciar campos"
+msgid "» Add a new content type"
+msgstr "» Adicionar novo tipo de conteúdo"
+msgid "@field_name (Locked)"
+msgstr "@field_name (Travado)"
+msgid ""
+"This content type has inactive fields. Inactive fields are not "
+"included in lists of available fields until their modules are enabled."
+msgstr ""
+"Este tipo de conteúdo possui campos inativos. Um campo inativo não "
+"será incluído na lista de campos disponíveis enquanto o seu módulo "
+"não for ativado."
+msgid ""
+"!field (!field_name) is an inactive !field_type field that uses a "
+"!widget_type widget."
+msgstr ""
+"!field (!field_name) é um campo inativo !field_type que usa um widget "
+"!widget_type."
+msgid "- Select a field type -"
+msgstr "- Selecione um tipo de campo -"
+msgid "- Select a widget -"
+msgstr "- Selecione um widget -"
+msgid "Field name (a-z, 0-9, _)"
+msgstr "Nome do campo (a-z, 0-9, _)"
+msgid "Type of data to store."
+msgstr "Tipo de dados a armazenar."
+msgid "Form element to edit the data."
+msgstr "Elemento de formulário para editar os dados."
+msgid "- Select an existing field -"
+msgstr "- Selecione um campo existente -"
+msgid "Field to share"
+msgstr "Campo para compartilhar"
+msgid "Group name (a-z, 0-9, _)"
+msgstr "Nome do grupo (a-z, 0-9, _)"
+msgid "Add new field: you need to provide a label."
+msgstr "Adicionar um novo campo: você precisa escolher um rótulo."
+msgid "Add new field: you need to provide a field name."
+msgstr "Adicionar novo campo: você precisa escolher nome para o campo."
+msgid ""
+"Add new field: the field name %field_name is invalid. The name must "
+"include only lowercase unaccentuated letters, numbers, and "
+"underscores."
+msgstr ""
+"Adicionar novo campo: o nome do campo %field_name é inválido. O nome "
+"tem não pode ter nada além de letras minúsculas não acentuadas, "
+"números e underscores (_)."
+msgid ""
+"Add new field: the field name %field_name is too long. The name is "
+"limited to 32 characters, including the 'field_' prefix."
+msgstr ""
+"Adicionar novo campo: o nome do campo %field_name é longo demais. O "
+"nome não pode ter mais de 32 caracteres, incluindo o prefixo "
+"\"field_\"."
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr ""
+"Adicionar novo campo: \"field_instance\" é um nome reservado pelo "
+"sistema."
+msgid "Add new field: the field name %field_name already exists."
+msgstr "Adicionar novo campo: já existe um campo chamado %field_name."
+msgid "Add new field: you need to select a field type."
+msgstr "Adicionar novo campo: você precisa selecionar um tipo para o campo."
+msgid "Add new field: you need to select a widget."
+msgstr "Adicionar novo campo: você precisa selecionar um widget."
+msgid "Add new field: invalid widget."
+msgstr "Adicionar novo campo: widget inválido."
+msgid "Add existing field: you need to provide a label."
+msgstr "Adicionar campo existente: você precisa escolher um rótulo."
+msgid "Add existing field: you need to select a field."
+msgstr "Adicionar campo existente: você precisa selecionar um campo."
+msgid "Add existing field: you need to select a widget."
+msgstr "Adicionar campo existente: você precisa selecionar um widget."
+msgid "Add existing field: invalid widget."
+msgstr "Adicionar campo existente: widget inválido."
+msgid ""
+"The field %label cannot be added to a content type because it is "
+"locked."
+msgstr ""
+"O campo %label não pôde ser adicionado ao tipo de conteúdo porque "
+"ele está travado."
+msgid ""
+"There are no fields configured for this content type. You can add new "
+"fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr ""
+"Não há nenhum campo configurado para este tipo de conteúdo. Você "
+"pode adicionar novos campos no página de <a href=\"@link\">gerenciar "
+"campos</a>."
+msgid "@type: @field (@label)"
+msgstr "@type: @field (@label)"
+msgid "Edit basic information"
+msgstr "Editar informações básicas"
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr ""
+"O nome-identificador para o campo. Esse identificador não pode ser "
+"alterado."
+msgid ""
+"A human-readable name to be used as the label for this field in the "
+"%type content type."
+msgstr ""
+"O nome do campo, usado como rótulo do campo no tipo de conteúdo "
+"%type."
+msgid ""
+"The type of data you would like to store in the database with this "
+"field. This option cannot be changed."
+msgstr ""
+"O tipo de dado que você gostaria de armazenar no banco de dados com "
+"esse campo. Essa opção não pode ser alterada."
+msgid ""
+"The type of form element you would like to present to the user when "
+"creating this field in the %type content type."
+msgstr ""
+"O tipo de elemento do formulário que você gostaria de apresentar ao "
+"usuário quando criar este campo no tipo de conteúdo %type."
+msgid "Updated basic settings for field %label."
+msgstr "As configurações básicas para o campo %label foram atualizadas."
+msgid "There was a problem updating the basic settings for field %label."
+msgstr ""
+"Houve um problema ao tentar atualizar as configurações básicas do "
+"campo %label."
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr "Este campo está <strong>travado</strong> e não pode ser removido."
+msgid "The field %field is locked and cannot be edited."
+msgstr "O campo %field está travado e não pode ser editado."
+msgid "%type basic information"
+msgstr "Informações básicas de %type"
+msgid ""
+"Advanced usage only: PHP code that returns a default value. Should not "
+"include <?php ?> delimiters. If this field is filled out, the "
+"value returned by this code will override any value specified above. "
+"Expected format: <pre>!sample</pre>To figure out the expected format, "
+"you can use the <em>devel load</em> tab provided by <a "
+"href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr ""
+"Apenas para uso avançado: Código PHP que retorne um valor padrão. "
+"Não deve incluir os delimitadores <?php ?>. Caso este campo "
+"esteja preenchido, o valor retornado por este código irá "
+"sobrescrever qualquer valor especificado acima. Formato esperado: "
+"<pre>!sample</pre>. Para ter uma idéia do resultado esperado, você "
+"pode utilizar a aba <em>devel load</em>, fornecida pelo <a "
+"href=\"@link_devel\">módulo devel</a> em uma página de conteúdo do "
+"%type."
+msgid "Maximum number of values users can enter for this field."
+msgstr ""
+"Quantidade máxima de valores que os usuários podem digitar neste "
+"campo."
+msgid ""
+"'Unlimited' will provide an 'Add more' button so the users can add as "
+"many values as they like."
+msgstr ""
+"Se você escolher \"ilimitado\", o formulário terá um botão "
+"\"Adicionar mais\" para que o usuário possa inserir quantos valores "
+"ele quiser."
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr ""
+"O código PHP para o 'valor padrão' retornou o valor @value, que é "
+"inválido."
+msgid "%name must be an integer."
+msgstr "%name deve ser um número inteiro."
+msgid "%name must be a positive integer."
+msgstr "%name tem que ser um número inteiro e positivo."
+msgid "%name must be a number."
+msgstr "%name deve ser um número."
+msgid ""
+"You should make sure that the used field exists in the given content "
+"type."
+msgstr ""
+"Você deve se certificar que o campo em uso existe no tipo de "
+"conteúdo fornecido."
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr "Avançado: Especificar o valor dos campos com código PHP."
+msgid ""
+"Advanced usage only: PHP code that returns the value to set. Should "
+"not include <?php ?> delimiters. If this field is filled out, "
+"the value returned by this code will override any value specified "
+"above. Expected format: <pre>!sample</pre>Using <a "
+"href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content "
+"page might help you figure out the expected format."
+msgstr ""
+"Somente para uso avançado: um código PHP que retorna o valor para o "
+"conjunto. Não use os delimitadores & lt;?php ?> Se o campo "
+"retornado por esse código vai sobrescrever qualquer valor inserido "
+"acima. Formato esperado: <pre>!sample</pre> A aba \"dev load\", do <a "
+"href=\"@link_devel\">módulo Devel</a>, pode ajudar você a saber o "
+"formato esperado."
+msgid "You have to return the default value in the expected format."
+msgstr "Você tem que retornar o valor padrão no formato especificado."
+msgid "Populate @node's field '@field'"
+msgstr "Preencher o campo \"@field\" de @node"
+msgid "Field has value"
+msgstr "O campo tem um valor"
+msgid ""
+"You should make sure that the used field exists in the given content "
+"type. The condition returns TRUE, if the selected field has the given "
+"value."
+msgstr ""
+"Você deve se certificar que o campo existe no tipo de conteúdo "
+"especificado. O condicional retorna TRUE se o campo selecionado "
+"possuir o valor fornecido."
+msgid "Field has changed"
+msgstr "O campo foi alterado"
+msgid "Content containing changes"
+msgstr "Conteúdo com mudanças"
+msgid "Content not containing changes"
+msgstr "Conteúdo sem mudanças"
+msgid "@node's field '@field' has value"
+msgstr "O campo \"@field\" de @node tem um valor"
+msgid "Select the machine-name of the field to look at."
+msgstr "Selecione o identificador do campo a ser analisado."
+msgid "@node's field '@field' has been changed"
+msgstr "O campo \"@field\" de @node foi alterado"
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr ""
+"Título não filtrado do node referenciado. ATENÇÃO - usará a "
+"entrada não filtrada de um usuário."
+msgid "Formatted html link to the referenced node."
+msgstr "Link para o node referenciado, em formato HTML"
+msgid "Relative path alias to the referenced node."
+msgstr "URL relativa para o node referenciado."
+msgid "Absolute path alias to the referenced node."
+msgstr "URL absoluta para o node referenciado."
+msgid "Relative path alias to the referenced user."
+msgstr "URL relativa para o usuário referenciado."
+msgid "Absolute path alias to the referenced user."
+msgstr "URL absoluta para o usuário referenciado."
+msgid "Field: @widget_label (@field_name) - @field_type"
+msgstr "Campo: @widget_label (@field_name) - @field_type"
+msgid "Field on the referenced node."
+msgstr "Campo no conteúdo referenciado."
+msgid ""
+"Configure how the label is going to be displayed. This option takes no "
+"effect when \"Override title\" option is enabled, the specified block "
+"title is displayed instead."
+msgstr ""
+"Configure como o rótulo do campo será exibido. Esta opção não tem "
+"efeito se a opção \"Sobrescrever título\" estiver marcada."
+msgid "Field formatter"
+msgstr "Formatador do campo"
+msgid "Select a formatter."
+msgstr "Selecione um formatador."
+msgid "\"@s\" field: @widget_label (@field_name) - @field_type"
+msgstr "Campo \"@s\": @widget_label (@field_name) - @field_type"
+msgid "@label (!name)"
+msgstr "@label (!name)"
+msgid "@label (!name) - !column"
+msgstr "@label (!name) - !column"
+msgid "@label-truncated - !column"
+msgstr "@label-truncated - !column"
+msgid "Appears in: @types"
+msgstr "Aparece em: @types"
+msgid "<No value>"
+msgstr "<nenhum valor>"
+msgid "Widget label (@label)"
+msgstr "Rótulo do widget (@label)"
+msgid "Custom label"
+msgstr "Rótulo personalizado"
+msgid "(first item is 0)"
+msgstr "(o primeiro item é 0)"
+msgid "(start from last values)"
+msgstr "(começar dos últimos valores)"
+msgid ""
+"The delta allows you to select which item in a multiple value field to "
+"key the relationship off of. Select \"1\" to use the first item, \"2\" "
+"for the second item, and so on. If you select \"All\", each item in "
+"the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+"O delta permite que você selecione qual item, em um campo de "
+"múltiplos valores, será a chave do relacionamento. Selecione \"1\" "
+"para usar o primeiro item, \"2\" para o segundo, e assim por diante. "
+"Caso você selecione \"Todos\", cada um dos itens criará uma nova "
+"linha, e poderão surgir resultados duplicados."
+msgid ""
+"The delta allows you to select which item in a multiple value field "
+"will be used for sorting. Select \"1\" to use the first item, \"2\" "
+"for the second item, and so on. If you select \"All\", each item in "
+"the field will create a new row, which may appear to cause duplicates."
+msgstr ""
+"O delta permite que você selecione que item, em um campo com mais de "
+"um valor, será usado para ordenação. Selecione \"1\" para ordenar "
+"pelo primeiro valor, \"2\" para ordenar pelo segundo, etc. Se você "
+"selecionar \"Todos\", cada item no campo vai gerar uma nova linha, "
+"criando, aparentemente, duplicatas."
+msgid "You need to provide a label."
+msgstr "Você precisa escolher um rótulo."
+msgid "You need to provide a group name."
+msgstr "Você deve escolher um nome para o grupo."
+msgid ""
+"The group name %group_name is invalid. The name must include only "
+"lowercase unaccentuated letters, numbers, and underscores."
+msgstr ""
+"O nome do grupo %group_name é inválido. O nome não deve ter além "
+"de letras minúsculas sem acento, espaços, números e underscores "
+"(_)."
+msgid ""
+"The group name %group_name is too long. The name is limited to 32 "
+"characters, including the 'group_' prefix."
+msgstr ""
+"O nome do grupo %group_name é longo demais O nome não deve ter mais "
+"que 32 caracteres, incluindo o prefixo 'group_'."
+msgid "The group name %group_name already exists."
+msgstr "Já existe um grupo com o nome %group_name."
+msgid "Add new group:"
+msgstr "Adicionar um novo grupo:"
+msgid "Add new group: you need to provide a label."
+msgstr "Adicionar um novo gupo: você precisa escolher um rótulo."
+msgid "Add new group: you need to provide a group name."
+msgstr "Adicionar um novo grupo: você deve escolher um nome para o grupo."
+msgid "Standard group"
+msgstr "Grupo normal"
+msgid "Create display groups for CCK fields."
+msgstr "Criar grupos para exibir os campos CCK."
+msgid "Field group: @group in @type"
+msgstr "Grupo de campos: @group em @type"
+msgid "All fields from this field group on the referenced node."
+msgstr "Todos os campos desse grupo de campos no node referenciado."
+msgid "Field group label"
+msgstr "Rótulo do grupo de campos"
+msgid ""
+"Configure how the field group label is going to be displayed. This "
+"option takes no effect when \"Override title\" option is enabled, the "
+"specified block title is displayed instead."
+msgstr ""
+"Configura a visualização do rótulo do grupo de campos. Essa opção "
+"não tem efeito quando a opção \"Sobrescrever Título\" está "
+"ativada. O título especificado no bloco será usado no lugar."
+msgid "Fieldset - Collapsible"
+msgstr "Conjunto de campos - Fechável"
+msgid "Fieldset - Collapsed"
+msgstr "Conjunto de campos - Fechado"
+msgid "Field group format"
+msgstr "Formato do grupo de campos"
+msgid "This option allows you to configure the field group format."
+msgstr "Esta opção permite configurar o formato do grupo de campos."
+msgid "\"@s\" field group: @group in @type"
+msgstr "Conjunto de campos \"@s\": @group em @type"
+msgid ""
+"Note that if the field has multiple values, only the first content "
+"node will be loaded."
+msgstr ""
+"Note que, se o campo tiver múltiplos valores, apenas o conteúdo do "
+"primeiro node será carregado."
+msgid "There are no nodereference fields defined."
+msgstr "Não há nenhum campo de referência a nodes."
+msgid ""
+"<p>Choose the \"Views module\" view that selects the nodes that can be "
+"referenced.<br />Note:</p>"
+msgstr ""
+"<p>Escolha a view (do módulo Views) que seleciona os nodes que podem "
+"ser referenciados.<br />Nota:</p>"
+msgid ""
+"<ul><li>Only views that have fields will work for this "
+"purpose.</li><li>This will discard the \"Content types\" settings "
+"above. Use the view's \"filters\" section instead.</li><li>Use the "
+"view's \"fields\" section to display additional informations about "
+"candidate nodes on node creation/edition form.</li><li>Use the view's "
+"\"sort criteria\" section to determine the order in which candidate "
+"nodes will be displayed.</li></ul>"
+msgstr ""
+"<ul><li>Apenas views que tenham campos vão funcionar aqui.</li><li>Ao "
+"selecionar esta opção, as configurações do \"Tipos de conteúdo\" "
+"acima serão descartadas. Use um filtro na view para substituir essa "
+"função.</li><li>Use a seção de campos da view para exibir "
+"informações adicionais sobre os nodes no formulário de "
+"criação/edição do node.</li><li>Use o \"Critério de ordenamento\" "
+"da view para determinar em que ordem os nodes candidatos serão "
+"exibidos.</li></ul>"
+msgid ""
+"<p>The list of nodes that can be referenced can be based on a \"Views "
+"module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+"<p>A lista de nodes que podem ser referenciados pode ser gerada por "
+"uma view. No entanto, nenhuma view adequada foi encontrada.<br "
+"/>Nota:</p>"
+msgid "%name: invalid input."
+msgstr "%name: entrada inválida."
+msgid "%name: found no valid post with that title."
+msgstr "%name: não foi encontrado nenhum node válido com esse título."
+msgid "Only numbers and decimals are allowed in %field."
+msgstr "Apenas números decimais são permitidos em %field."
+msgid "Only numbers are allowed in %field."
+msgstr "Você só pode digitar números em %field."
+msgid ""
+"Only numbers and the decimal character (%decimal) are allowed in "
+"%field."
+msgstr ""
+"Você pode digitar apenas números e o caractere decimal (%decimal) no "
+"campo %field."
+msgid ""
+"Note that if the field has multiple values, only the first user will "
+"be loaded."
+msgstr ""
+"Note que, se este campo tiver múltiplos valores, apenas o primeiro "
+"será carregado."
+msgid "There are no userreference fields defined."
+msgstr "Não há nenhum campo definido para referenciar usuários."
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Avançado - Usuários que podem ser referenciados (View)"
+msgid "View used to select the users"
+msgstr "View usada para selecionar os usuários"
+msgid ""
+"<p>Choose the \"Views module\" view that selects the users that can be "
+"referenced.<br />Note:</p>"
+msgstr ""
+"<p>Escolha a view (do módulo \"Views\") para selecionar os usuários "
+"que podem ser referenciados.<br />Nota:</p>"
+msgid ""
+"<ul><li>Only views that have fields will work for this "
+"purpose.</li><li>This will discard the \"Referenceable Roles\" and "
+"\"Referenceable Status\" settings above. Use the view's \"filters\" "
+"section instead.</li><li>Use the view's \"fields\" section to display "
+"additional informations about candidate users on user creation/edition "
+"form.</li><li>Use the view's \"sort criteria\" section to determine "
+"the order in which candidate users will be displayed.</li></ul>"
+msgstr ""
+"<ul><li>Apenas views que contenham campos irão funcionar para este "
+"propósito.</li><li>Com isso serão descartados as configurações "
+"acima para os \"Papéis referenciáveis\" e \"Status "
+"referenciáveis\". Então, utilize a seção dos \"filtros\" do "
+"módulo Views.</li><li>Utilize os \"campos\" do módulo Views para "
+"exibir informações adicionais sobre os usuários candidatos no "
+"ofrmulário de criação/edição.</li><li>Utilize o \"critério de "
+"ordenação\" do módulo Views para determinar a ordem na qual os "
+"usuários candidatos serão exibidos.</li></ul>"
+msgid ""
+"<p>The list of user that can be referenced can be based on a \"Views "
+"module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+"<p>A lista de usuários que podem ser referenciados pode ser gerada "
+"por uma view do módulo \"Views\". No entanto, nenhuma view apropriada "
+"foi encontrada.<br />Nota:</p>"
+msgid "%name: invalid user."
+msgstr "%name: usuário inválido."
+msgid "New field"
+msgstr "Novo campo"
+msgid "Existing field"
+msgstr "Campo existente"
+msgid "New group"
+msgstr "Novo grupo"
+msgid ""
+"Add fields and groups to the content type, and arrange them on content "
+"display and input forms."
+msgstr ""
+"Adicionar campos e grupos para o tipo de conteúdo e organizar a na "
+"exibição do conteúdo e no formulário de cadastro."
+msgid ""
+"You can add a field to a group by dragging it below and to the right "
+"of the group."
+msgstr ""
+"Se você quiser adicionar um campo a um grupo, basta clicar e "
+"arrastá-lo diretamente para o grupo desejado."
+msgid ""
+"Note: Installing the <a href=\"!adv_help\">Advanced help</a> module "
+"will let you access more and better help."
+msgstr ""
+"Nota: se você instalar o módulo <a href=\"!adv_help\">Advanced "
+"help</a>, você terá acesso a mais textos de ajuda, mais detalhados."
+msgid ""
+"Use the 'Exclude' checkbox to exclude an item from the !content value "
+"passed to the node template."
+msgstr ""
+"Use a caixa de seleção \"Excluir\" se quiser remover um item do "
+"valor !content passado ao template do node."
+msgid "@label (!name) - delta"
+msgstr "@label (!name) - delta"
+msgid "@label-truncated - delta"
+msgstr "@label-truncated - delta"
+msgid "Delta - Appears in: @types"
+msgstr "Delta - Aparece em: @types"
+msgid ""
+"This form will process a content type and one or more fields from that "
+"type and export the settings. The export created by this process can "
+"be copied and pasted as an import into the current or any other "
+"database. The import will add the fields to an existing content type "
+"or create a new content type that includes the selected fields."
+msgstr ""
+"Este formulário irá processar um tipo de conteúdo e um ou mais "
+"campos deste tipo e exportar as configurações. A exportação criada "
+"neste processo pode ser copiada e colada como uma importação no "
+"banco de dados atual ou em qualquer outro. A importação irá "
+"adicionar os campos a um tipo de conteúdo existente ou irá criar um "
+"novo tipo de conteúdo que inclua os campos selecionados."
+msgid "Blocked users"
+msgstr "Usuários bloqueados"
+msgid "The 'referenceable_status' option for %field has been fixed."
+msgstr "A opção \"referenceable_status\" para %field foi corrigida."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/pt.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/pt.po
new file mode 100644
index 0000000..d740eed
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/pt.po
@@ -0,0 +1,822 @@
+# $Id$
+# Portuguese translation of Drupal (general)
+# Copyright 2007 Fernando Silva <fernando.silva at openquest.pt>
+# Generated from files:
+#  text.module,v 1.41.2.11 2007/02/25 23:57:55 yched
+#  number.module,v 1.34.2.20 2007/03/01 04:51:54 yched
+#  content_admin.inc,v 1.28.2.29 2007/02/24 03:06:45 yched
+#  fieldgroup.module,v 1.1.4.26 2007/02/27 02:45:37 yched
+#  content_copy.module,v 1.1.2.6 2007/03/01 00:28:01 yched
+#  content.module,v 1.90.2.38 2007/03/05 22:09:33 yched
+#  nodereference.module,v 1.39.2.17 2007/03/05 21:58:47 yched
+#  userreference.module,v 1.30.2.16 2007/03/05 21:58:47 yched
+#  content.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  content_copy.info,v 1.1.2.4 2007/01/08 13:29:21 karens
+#  fieldgroup.info,v 1.1.2.2 2007/01/05 11:57:46 yched
+#  nodereference.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  number.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  optionwidgets.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  text.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  userreference.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  content_crud.inc,v 1.4.2.11 2007/01/26 12:34:56 karens
+#  content_views.inc,v 1.2.2.11 2007/02/26 13:52:04 yched
+#  optionwidgets.module,v 1.10.2.7 2007/02/09 19:36:39 yched
+#  optionwidgets.install,v 1.1.4.5 2007/01/25 17:23:26 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: content.module\n"
+"POT-Creation-Date: 2007-03-05 23:30+0100\n"
+"PO-Revision-Date: 2007-07-13 19:05+0100\n"
+"Last-Translator: Fernando Silva <fernando.silva at openquest.pt>\n"
+"Language-Team: Fernando Silva <fernando.silva at openquest.pt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: content_admin.inc:203;207;368;749 fieldgroup.module:84;510
+msgid "Label"
+msgstr "Denominação"
+
+#: content_admin.inc:203 fieldgroup.module:510
+msgid "Group"
+msgstr "Grupo"
+
+#: content_admin.inc:362 content_copy.module:158;231
+msgid "Submit"
+msgstr "Submeter"
+
+#: content_admin.inc:410;415 fieldgroup.module:477;485
+msgid "<Hidden>"
+msgstr "<Escondido>"
+
+#: content_admin.inc:413 fieldgroup.module:476
+msgid "Above"
+msgstr "Acima"
+
+#: content_admin.inc:481 content.module:100
+msgid "Add field"
+msgstr "Adicionar campo"
+
+#: content_admin.inc:686 fieldgroup.module:216
+msgid "Remove"
+msgstr "Remover"
+
+#: content_admin.inc:686 fieldgroup.module:216
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: content_admin.inc:763 fieldgroup.module:106
+msgid "Help text"
+msgstr "Texto de ajuda"
+
+#: content_admin.inc:797 number.module:65 text.module:49
+msgid "Php code"
+msgstr "Código PHP"
+
+#: content_admin.inc:803 number.module:71 text.module:55
+msgid "Code"
+msgstr "Código"
+
+#: content.module:59 content_copy.module:129
+msgid "Fields"
+msgstr "Campos"
+
+#: nodereference.module:202 userreference.module:142
+msgid "<none>"
+msgstr "<nenhum>"
+
+#: number.module:57 text.module:41
+msgid "Allowed values list"
+msgstr "Lista de valores permitidos"
+
+#: number.module:61 text.module:45
+msgid ""
+"The possible values this field can contain. Enter one value per line, in the "
+"format key|label. The key is the value that will be stored in the database and "
+"it must match the field storage type, %type. The label is optional and the key "
+"will be used as the label if no label is specified."
+msgstr ""
+"Os valores possíveis que este campo pode conter. Insira um valor por linha, "
+"no formato chave|denominação. A chave é o valor que irá ser guardado na base "
+"de dados e tem de coincidir com o tipo de dados, %type. A denominação é "
+"opcional e a chave será usada como denominação se nenhuma for específicada."
+
+#: number.module:74 text.module:58
+msgid ""
+"Advanced Usage Only: PHP code that returns a keyed array of allowed values. "
+"Should not include <?php ?> delimiters. If this field is filled out, the "
+"array returned by this code will override the allowed values list above."
+msgstr ""
+
+#: content.info:0 content_copy.info:0 fieldgroup.info:0 nodereference.info:0 number.info:0 optionwidgets.info:0 text.info:0 userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: content_crud.inc:59
+msgid "The content fields table %name has been created."
+msgstr "A tabela de conteúdos de campos %name foi criada."
+
+#: content_crud.inc:89
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "A tabela %old_name foi renomeada para %new_name e os campos foram actualizados."
+
+#: content_crud.inc:111
+msgid "The content fields table %name has been deleted."
+msgstr "A tabela de conteúdos de campos %name foi eliminada."
+
+#: content_views.inc:70
+msgid "Group multiple values"
+msgstr "Agrupar múltiplos valores"
+
+#: content_views.inc:71
+msgid "Do not group multiple values"
+msgstr "Não agrupar múltipos valores"
+
+#: content.module:18
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "Configurar como deverão ser mostrados os campos deste tipo de conteúdo e as denominações de cada campo, quando é visualizado num resumo e página inteira."
+
+#: content.module:75
+msgid "Edit"
+msgstr "Editar"
+
+#: content.module:82
+msgid "Manage fields"
+msgstr "Gerir campos"
+
+#: content.module:91
+msgid "Display fields"
+msgstr "Mostrar campos"
+
+#: content.module:119
+msgid "Remove field"
+msgstr "Remover campo"
+
+#: content.module:0
+msgid "content"
+msgstr "conteúdo"
+
+#: content.info:0
+msgid "Content"
+msgstr "Conteúdo"
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "Permite aos administradores definir novos tipos de conteúdo."
+
+#: optionwidgets.module:38
+msgid ""
+"Create a list of options as a list in <strong>Allowed values</strong> or as an "
+"array in Php code at the bottom of this page. These values will be the same "
+"for the %field in all content types. "
+msgstr ""
+"Criar uma lista de opções como uma lista de <strong>Valores permitidos</strong> ou "
+"como um <em>array</em> em código PHP no fim desta página. Estes valores serão os mesmos "
+"para o %field em todos os tipos de conteúdo."
+
+#: optionwidgets.module:40
+msgid " For a single on/off checkbox, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section."
+msgstr "Para uma única caixa de selecção, defina o valor 'off' primeiro, e em seguida o valor 'on' na secção <strong>Valores permitidos</strong>."
+
+#: optionwidgets.module:43
+msgid " The Check boxes/radio buttons widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "O mecanismo de selecção mostrará caixas de selecção se a opção de múltiplos valores estiver seleccionada para este campo, de outra forma <em>radios</em> serão mostrados."
+
+#: optionwidgets.module:200
+msgid "N/A"
+msgstr "N/A"
+
+#: optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Mecanismos de Opção"
+
+#: optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Define selecção, caixa de selecção e radio para campos numéricos e de texto."
+
+#: text.module:25
+msgid "Plain text"
+msgstr "Texto simples"
+
+#: text.module:25
+msgid "Filtered text (user selects input format)"
+msgstr "Texto filtrado (o utilizador selecciona o formato de introdução de conteúdos)"
+
+#: text.module:28
+msgid "Text processing"
+msgstr "Processamento de texto"
+
+#: text.module:127
+msgid "%label is longer than %max characters."
+msgstr "%label é maior que %max caracteres."
+
+#: text.info:0
+msgid "Text"
+msgstr "Texto"
+
+#: text.info:0
+msgid "Defines simple text field types."
+msgstr "Define campos simples de texto."
+
+#: userreference.module:27
+msgid "User roles that can be referenced"
+msgstr "Grupos de utilizador que podem ser referenciados"
+
+#: userreference.module:65
+msgid "%name : Invalid user."
+msgstr "Utilizador inválido: %name."
+
+#: userreference.info:0
+msgid "User Reference"
+msgstr "Referência a utilizador"
+
+#: userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Define um campo para referenciar um utilizador a partir de um nó."
+
+#: optionwidgets.install:77
+msgid ""
+"<div>The allowed values list for %field was updated from </div>"
+"<pre>%start</pre><div> to </div><pre>%end</pre><div>You can go to the "
+"field settings page to give each option a more user-friendly label."
+msgstr ""
+"<div>A lista de valores permitidos para %field foi actualizada de </div>"
+"<pre>%start</pre><div> a </div><pre>%end</pre><div>Pode ir à página de "
+"configurações do campo para dar uma denominação mais amiga do utilizador a cada opção."
+
+#: optionwidgets.install:80
+msgid "<div>The allowed values list for %field was not changed from </div><pre>%start</pre>"
+msgstr "<div>A lista de valores permitidos para %field não foi alterada de </div><pre>%start</pre>"
+
+#: content_admin.inc:15
+msgid "Field name"
+msgstr "Nome do campo"
+
+#: content_admin.inc:15;518
+msgid "Field type"
+msgstr "Tipo do campo"
+
+#: content_admin.inc:15
+msgid "Used in"
+msgstr "Usado em"
+
+#: content_admin.inc:68
+msgid "There are no groups configured for this content type."
+msgstr "Não existe grupos configurados para este tipo de conteúdo."
+
+#: content_admin.inc:78;352
+msgid "There are no fields configured for this content type."
+msgstr "Não existem campos configurados para este tipo de conteúdo."
+
+#: content_admin.inc:103
+msgid "group"
+msgstr "grupo"
+
+#: content_admin.inc:106;119;144
+msgid "configure"
+msgstr "configurar"
+
+#: content_admin.inc:107;120;145
+msgid "remove"
+msgstr "remover"
+
+#: content_admin.inc:158
+msgid "body"
+msgstr "corpo"
+
+#: content_admin.inc:179
+msgid "Update"
+msgstr "Actualizar"
+
+#: content_admin.inc:203;207;510
+msgid "Name"
+msgstr "Nome"
+
+#: content_admin.inc:203;207;368
+msgid "Type"
+msgstr "Tipo"
+
+#: content_admin.inc:203;207
+msgid "Weight"
+msgstr "Peso"
+
+#: content_admin.inc:203;207
+msgid "Operations"
+msgstr "Operações"
+
+#: content_admin.inc:271
+msgid "No fields have been added to this group."
+msgstr "Nenhum campo foi adicionado a este grupo."
+
+#: content_admin.inc:276
+msgid "!label (!name)"
+msgstr ""
+
+#: content_admin.inc:311
+msgid "Updated field groups."
+msgstr "Grupos de campos actualizados."
+
+#: content_admin.inc:322
+msgid "Updated group weights."
+msgstr "Pesos do grupo actualizados."
+
+#: content_admin.inc:333
+msgid "Updated field weights."
+msgstr "Pesos do campo actualizados."
+
+#: content_admin.inc:368
+msgid "Field"
+msgstr "Campo"
+
+#: content_admin.inc:399
+msgid "Your settings have been saved."
+msgstr "As suas configurações foram gravadas."
+
+#: content_admin.inc:414
+msgid "Inline"
+msgstr "Em linha"
+
+#: content_admin.inc:440
+msgid "Teaser"
+msgstr "Resumo"
+
+#: content_admin.inc:441
+msgid "Full"
+msgstr "Completo"
+
+#: content_admin.inc:472
+msgid "Add existing field"
+msgstr "Adicionar campo existente"
+
+#: content_admin.inc:507
+msgid "Create new field"
+msgstr "Criar novo campo"
+
+#: content_admin.inc:513
+msgid ""
+"The machine-readable name of the field.<br/>Allowed characters : "
+"unaccentuated a-z, numbers and _. All other characters will be discarded.<br/>"
+"You'll be able to choose a human-readable label for the field on next page"
+msgstr ""
+"O nome de sistema do campo.<br />Caracteres permitidos: caracteres não acentuados a-z, "
+"números e _. Todos os outros caracteres serão eliminados.<br />"
+"Poderá escolher uma denominação amigável para este campo na próxima página"
+
+#: content_admin.inc:526
+msgid "Create field"
+msgstr "Criar campo"
+
+#: content_admin.inc:538
+msgid "No field modules are enabled. You need to <a href=\"!modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr "Nenhum módulo de campos está activo. Tem de <a href=\"!modules_url\">activar um</a>, como <em>text.module</em>, antes de poder adicionar novos campos."
+
+#: content_admin.inc:594
+msgid "Added field %label."
+msgstr "Adicionado campo %label."
+
+#: content_admin.inc:606
+msgid "The field name %field_name already exists."
+msgstr "O nome do campo %field_name já existe."
+
+#: content_admin.inc:610
+msgid "The field name %field_name is invalid."
+msgstr "O nome do campo %field_name é inválido."
+
+#: content_admin.inc:661
+msgid "Created field %label."
+msgstr "Criado o campo %label."
+
+#: content_admin.inc:683
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Tem a certeza que pretende eliminar o campo %field?"
+
+#: content_admin.inc:685
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Se este campo tem algum conteúdo, ele será perdido. Esta acção é irreverssível."
+
+#: content_admin.inc:704
+msgid "Removed field %field from %type."
+msgstr "Remover o campo %field do %type."
+
+#: content_admin.inc:727
+msgid "Widget settings"
+msgstr "Configurações do mecanismo"
+
+#: content_admin.inc:728
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Estas configurações aplicam-se apenas ao campo %field quando aparece no tipo de conteúdo %type."
+
+#: content_admin.inc:742
+msgid "Widget"
+msgstr "Mecanismo"
+
+#: content_admin.inc:766
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr "Instruções para apresentar ao utilizador abaixo deste campo no formulário de edição."
+
+#: content_admin.inc:775
+msgid "Default value"
+msgstr "Valor por omissão"
+
+#: content_admin.inc:807
+msgid ""
+"Advanced Usage Only: PHP code that returns a default value. Should not "
+"include <?php ?> delimiters.<br/>If this field is filled out, the value "
+"returned by this code will override any value in the textfield above."
+msgstr ""
+"Apenas para utilização avançada: código PHP que devolve um valor por omissão. "
+"Não deve conter os delimitadores <?php ?>.<br /> Se este campo for preenchido, "
+"o valor devolvido por este código vai re-escrever o valor acima especificado."
+
+#: content_admin.inc:813
+msgid "Data settings"
+msgstr "Configurações de dados"
+
+#: content_admin.inc:814
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Estas configurações aplicam-se ao campo %field em qualquer tipo de conteúdo onde apareça."
+
+#: content_admin.inc:818
+msgid "Required"
+msgstr "Obrigatório"
+
+#: content_admin.inc:823
+msgid "Multiple values"
+msgstr "Valores múltiplos"
+
+#: content_admin.inc:834
+msgid "Save field settings"
+msgstr "Gravar as configurações do campo"
+
+#: content_admin.inc:888
+msgid "The default value php code must return an array like array(0 => array('value' => 'myvalue')) but returned @value."
+msgstr "o código PHP do valor por omissão tem de devolver um <em>array</em> como <em>array(0 => array('valor' => 'meuvalor'))</em>, no entanto devolveu @value."
+
+#: content_admin.inc:926
+msgid "The default value php code created @value which is invalid."
+msgstr "O valor por omissão @value do código PHP é inválido."
+
+#: content_admin.inc:929
+msgid "The default value is invalid."
+msgstr "O valor por omissão é inválido."
+
+#: content_admin.inc:986
+msgid "Saved field %field."
+msgstr "Campo %field guardado."
+
+#: content_admin.inc:1284;1381
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr "Nenhum mapeamento PostgreSQL encontrado para o tipo de dados %type."
+
+#: content_admin.inc:1284;1381
+msgid "database"
+msgstr "base de dados"
+
+#: content_copy.module:35
+msgid "Export"
+msgstr "Exportar"
+
+#: content_copy.module:44
+msgid "Import"
+msgstr "Importar"
+
+#: content_copy.module:81
+msgid ""
+"This form will process a content type and one or more fields from that type "
+"and export the settings. The export created by this process can be copied and "
+"pasted as an import into the current or any other database. The import will add "
+"the fields to into an existing content type or create a new content type that "
+"includes the selected fields."
+msgstr ""
+"Este formulário processará o tipo de conteúdo e um ou mais campos desse tipo, "
+"exportando as suas configurações. A exportação criada por este processo pode ser "
+"copiada e colada como uma importação na base de dados actual ou noutra. A importação "
+"adicionará os campos dentro de um tipo de conteúdo existente ou cria um novo tipo "
+"de conteúdo para incluir os campos seleccionados."
+
+#: content_copy.module:90
+msgid "Types"
+msgstr "Tipos"
+
+#: content_copy.module:94
+msgid "Select the content type to export."
+msgstr "Seleccione o tipo de conteúdo para exportar."
+
+#: content_copy.module:119
+msgid "Groups"
+msgstr "Grupos"
+
+#: content_copy.module:123
+msgid "Select the group definitions to export from %type."
+msgstr "Seleccione as definições de grupo para exportar do %type."
+
+#: content_copy.module:133
+msgid "Select the field definitions to export from %type."
+msgstr "Seleccione as definições de campo para exportar de %type."
+
+#: content_copy.module:143
+msgid "Export data"
+msgstr "Exportar dados"
+
+#: content_copy.module:148
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Copie o texto de exportação e cole-o noutro tipo de conteúdo utilizando a função de importação."
+
+#: content_copy.module:214
+msgid ""
+"This form will import field definitions exported from another content type or "
+"another database.<br/>Note that fields cannot be duplicated within the same "
+"content type, so imported fields will be added only if they do not already "
+"exist in the selected type."
+msgstr ""
+"Este formulário importa definições de campo exportadas de outro tipo de conteúdo ou "
+"de outra base de dados.<br />Note que os campos não podem ser duplicados dentro do mesmo "
+"tipo de conteúdo, assim os campos importados apenas serão adicionados se eles ainda "
+"não existirem no tipo seleccionado."
+
+#: content_copy.module:217
+msgid "<Create>"
+msgstr "<Criar>"
+
+#: content_copy.module:219
+msgid "Content type"
+msgstr "Tipo de conteúdo"
+
+#: content_copy.module:220
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Seleccione o tipo de conteúdo para onde pretende importar estes campos.<br />Seleccione <Criar> para criar um novo tipo de conteúdo para conter os campos."
+
+#: content_copy.module:225
+msgid "Import data"
+msgstr "Importar dados"
+
+#: content_copy.module:227
+msgid "Paste the text created by a content export into this field."
+msgstr "Cole o texto, criado por uma exportação de conteúdo, neste campo."
+
+#: content_copy.module:255
+msgid "The import data is not valid import text."
+msgstr "Os dados de importação não são um texto válido de importação."
+
+#: content_copy.module:300
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "Os módulos seguintes tem de estar activos para que esta importação funcione: %modules."
+
+#: content_copy.module:306;320
+msgid "<create>"
+msgstr "<criar>"
+
+#: content_copy.module:308
+msgid "The content type %type already exists in this database."
+msgstr "O tipo de conteúdo %type já existe nesta base de dados."
+
+#: content_copy.module:315
+msgid "Exiting. No import performed."
+msgstr "Nenhuma importação realizada."
+
+#: content_copy.module:332
+msgid "An error has occured adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Ocorreu um erro ao adicionar o tipo de conteúdo%type.<br/>Por favor verifique os erros mostrados para mais detalhes."
+
+#: content_copy.module:367
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "O campo importado %field_label (%field_name) não foi adicionado ao %type porque esse campo já existe no %type."
+
+#: content_copy.module:388;407
+msgid "An error has occured adding the field %field_label (%field_name).<br/>Please check the errors displayed for more details."
+msgstr "Ocorreu um erro ao adicionar o campo %field_label (%field_name).<br/>Por favor verifique os erros mostrados para mais detalhes."
+
+#: content_copy.module:421
+msgid "The field %field_label (%field_name) was added to the content type %type, but an error has occured updating the field settings.<br/>Please check the errors displayed for more details."
+msgstr "O campo %field_label (%field_name) foi adicionado ao tipo de conteúdo %type, no entanto ocorreu um erro ao actualizar as configurações do campo.<br />Por favor verifique os erros mostrados para mais detalhes."
+
+#: content_copy.info:0
+msgid "Content Copy"
+msgstr "Cópia de Conteúdo"
+
+#: content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Activa a funcionalidade de importar/exportar definições de campo."
+
+#: fieldgroup.module:18
+msgid "Add group"
+msgstr "Adicionar grupo"
+
+#: fieldgroup.module:28;36
+msgid "Edit group"
+msgstr "Editar grupo"
+
+#: fieldgroup.module:66
+msgid "Add"
+msgstr "Adicionar"
+
+#: fieldgroup.module:73
+msgid "Save"
+msgstr "Guardar"
+
+#: fieldgroup.module:92
+msgid "These settings apply to the group in the node editing form"
+msgstr "Esta configurações aplicam-se ao grupo no formulário de edição do nó"
+
+#: fieldgroup.module:96
+msgid "style"
+msgstr "estilo"
+
+#: fieldgroup.module:99
+msgid "always open"
+msgstr "sempre aberto"
+
+#: fieldgroup.module:100
+msgid "collapsible"
+msgstr "dobrável"
+
+#: fieldgroup.module:101
+msgid "collapsed"
+msgstr "dobrado"
+
+#: fieldgroup.module:109
+msgid "Instructions to present to the user on the editing form."
+msgstr "Instruções a apresentar ao utilizador no formulário de edição."
+
+#: fieldgroup.module:115
+msgid "These settings apply to the group on node display."
+msgstr "Estas configurações aplicam-se ao grupo na visualização do nó."
+
+#: fieldgroup.module:119
+msgid "Description"
+msgstr "Descrição"
+
+#: fieldgroup.module:122
+msgid "A description of the group."
+msgstr "Uma descrição do grupo."
+
+#: fieldgroup.module:144
+msgid "The group name %name already exists."
+msgstr "O nome do grupo %name já existe."
+
+#: fieldgroup.module:148
+msgid "The group name %name is invalid."
+msgstr "O nome do grupo %name é inválido."
+
+#: fieldgroup.module:213
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Tem a certeza que pretende remover o grupo %label?"
+
+#: fieldgroup.module:215
+msgid "This action cannot be undone."
+msgstr "Esta acção não pode ser desfeita."
+
+#: fieldgroup.module:277
+msgid "No group"
+msgstr "Nenhum grupo"
+
+#: fieldgroup.module:319
+msgid "Display in group"
+msgstr "Mostrar no grupo"
+
+#: fieldgroup.module:322
+msgid "Select a group, in which the field will be displayed on the editing form."
+msgstr "Seleccione um grupo, no qual o campo será mostrado no formulário de edição."
+
+#: fieldgroup.module:480
+msgid "no styling"
+msgstr "nenhum estilo"
+
+#: fieldgroup.module:481
+msgid "simple"
+msgstr "simples"
+
+#: fieldgroup.module:482
+msgid "fieldset"
+msgstr "conjunto de campos"
+
+#: fieldgroup.module:483
+msgid "fieldset - collapsible"
+msgstr "conjunto de campos - dobrável"
+
+#: fieldgroup.module:484
+msgid "fieldset - collapsed"
+msgstr "conjunto de campos - dobrado"
+
+#: fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "Grupo de campos"
+
+#: fieldgroup.info:0
+msgid "Create field groups for CCK fields."
+msgstr "Criar grupos de campos para campos CCK."
+
+#: nodereference.module:17
+msgid "node reference autocomplete"
+msgstr "completar automaticamente referência a nós"
+
+#: nodereference.module:42
+msgid "Content types that can be referenced"
+msgstr "Tipos de conteúdo que podem ser referenciados"
+
+#: nodereference.module:51
+msgid "Existing Views"
+msgstr "Vistas existentes"
+
+#: nodereference.module:56
+msgid "Default Views"
+msgstr "Vistas por omissão"
+
+#: nodereference.module:61
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Avançado - Nós que podem ser referenciados (Vista)"
+
+#: nodereference.module:67
+msgid "View"
+msgstr "Vista"
+
+#: nodereference.module:70
+msgid ""
+"Choose the \"Views module\" view that selects the nodes that can be referenced.<br>Note :"
+"<ul><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li>"
+"<li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li>"
+"<li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+"Escolha a vista do \"módulo Vistas\" que selecciona os nós que podem ser referenciados.<br />Nota :<ul>"
+"<ul><li>Esta opção vai descartar as configurações \"Tipos de conteúdo\" acima. Em vez disso, utilize a secção \"filtros\" da vista.</li>"
+"<li>Utilize a secção \"campos\" da vista para mostrar informação adicional sobre nós candidatos no formulário de criação/edição.</li>"
+"<li>Utilize a secção \"critérios de ordenação\" da vista para determinar a ordem na qual os nós candidatos serão mostrados.</li></ul>"
+
+#: nodereference.module:74
+msgid "View arguments"
+msgstr "Argumentos da vista"
+
+#: nodereference.module:77
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Disponibiliza uma lista de argumentos separados por vírgula para passar à vista."
+
+#: nodereference.module:122
+msgid "%name : This post can't be referenced."
+msgstr "%name : Esta entrada não pode ser referenciada."
+
+#: nodereference.module:304
+msgid "%name : Title mismatch. Please check your selection."
+msgstr "%name : Título não concidente. Por favor verifique a sua selecção."
+
+#: nodereference.module:483
+msgid "<empty>"
+msgstr "<vazio>"
+
+#: nodereference.info:0
+msgid "Node Reference"
+msgstr "Referência a Nós"
+
+#: nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Define um tipo de campo para referir um nó a partir de outro."
+
+#: number.module:33
+msgid "Minimum"
+msgstr "Mínimo"
+
+#: number.module:38
+msgid "Maximum"
+msgstr "Máximo"
+
+#: number.module:43
+msgid "Prefix"
+msgstr "Prefixo"
+
+#: number.module:46
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Defina uma frase que deve ser prefixada ao valor, como $ ou €. Deixe vazio para nenhum. Separe os valores singular e plural com uma barra vertical (peso|pesos)."
+
+#: number.module:50
+msgid "Suffix"
+msgstr "Sufixo"
+
+#: number.module:53
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds). "
+msgstr "Defina uma frase que deve ser sufixada ao valor, como m², m/s², kb/s. Deixe vazio para nenhum. Separe os valores singular e plural com uma barra vertical (peso|pesos)."
+
+#: number.module:80
+msgid "\"Minimum\" must be a number."
+msgstr "\"Mínimo\" tem de ser um número."
+
+#: number.module:83
+msgid "\"Maximum\" must be a number."
+msgstr "\"Máximo\" tem de ser um número."
+
+#: number.module:138
+msgid "The value of %name may be no smaller than %min."
+msgstr "O valor de %name não pode ser menor que %min."
+
+#: number.module:141
+msgid "The value of %name may be no larger than %max."
+msgstr "O valor de %name não pode ser maior que %max."
+
+#: number.info:0
+msgid "Number"
+msgstr "Número"
+
+#: number.info:0
+msgid "Defines numeric field types."
+msgstr "Define campos do tipo numérico."
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/ru.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/ru.po
new file mode 100644
index 0000000..a4d5b28
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/ru.po
@@ -0,0 +1,748 @@
+# $Id$
+#
+# Russian translation of Drupal (content_admin.inc)
+# Copyright 2007 vadbars <vadbars at mail.ru>
+# Generated from file: content_admin.inc,v 1.28.2.14 2007/01/07 03:00:33 yched
+#
+# Russian translation of Drupal (content_copy.module)
+# Copyright 2007 vadbars <vadbars at mail.ru>
+# Generated from file: content_copy.module,v 1.1.2.5 2007/01/07 14:43:32 yched
+#
+# Russian translation of Drupal (fieldgroup.module)
+# Copyright 2007 vadbars <vadbars at mail.ru>
+# Generated from file: fieldgroup.module,v 1.1.4.12 2007/01/09 15:25:03 karens
+#
+# Russian translation of Drupal (general)
+# Copyright 2007 vadbars <vadbars at mail.ru>
+# Generated from files:
+#  field.php,v 1.7.2.3 2007/01/06 16:22:53 yched
+#  text.module,v 1.41.2.7 2007/01/07 16:21:11 yched
+#  number.module,v 1.34.2.6 2007/01/07 14:43:32 yched
+#  content_admin.inc,v 1.28.2.14 2007/01/07 03:00:33 yched
+#  fieldgroup.module,v 1.1.4.12 2007/01/09 15:25:03 karens
+#  content.module,v 1.90.2.25 2007/01/09 14:54:10 karens
+#  content_copy.module,v 1.1.2.5 2007/01/07 14:43:32 yched
+#  nodereference.module,v 1.39.2.3 2007/01/07 14:43:32 yched
+#  userreference.module,v 1.30.2.6 2007/01/07 14:43:32 yched
+#  content.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  content_copy.info,v 1.1.2.4 2007/01/08 13:29:21 karens
+#  fieldgroup.info,v 1.1.2.2 2007/01/05 11:57:46 yched
+#  nodereference.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  number.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  optionwidgets.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  text.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  userreference.info,v 1.2.2.2 2007/01/05 11:57:46 yched
+#  extractor.php,v 1.24 2007/01/10 21:45:47 goba
+#  content_crud.inc,v 1.4.2.7 2007/01/07 00:06:36 yched
+#  content_views.inc,v 1.2.2.5 2007/01/05 11:57:46 yched
+#  optionwidgets.module,v 1.10.2.3 2007/01/07 14:43:32 yched
+#  optionwidgets.install,v 1.1.4.3 2007/01/05 11:57:46 yched
+#
+# Russian translation of Drupal (nodereference.module)
+# Copyright 2007 vadbars <vadbars at mail.ru>
+# Generated from file: nodereference.module,v 1.39.2.3 2007/01/07 14:43:32 yched
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cck\n"
+"POT-Creation-Date: 2007-01-27 19:44+0500\n"
+"PO-Revision-Date: 2007-01-28 12:56+0600\n"
+"Last-Translator: Maynichev <maynich at gmail.com>\n"
+"Language-Team: Russian Drupal Translation Team (RDTT) <translators at drupal.ru>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Russian\n"
+"X-Poedit-Country: RUSSIAN FEDERATION\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: content_admin.inc:15
+msgid "Field name"
+msgstr "Название поля"
+
+#: content_admin.inc:15;413
+msgid "Field type"
+msgstr "Тип поля"
+
+#: content_admin.inc:15
+msgid "Used in"
+msgstr "Используется в"
+
+#: content_admin.inc:68
+msgid "There are no groups configured for this content type."
+msgstr "Нет групп, настроенных для этого типа содержимого."
+
+#: content_admin.inc:78
+msgid "There are no fields configured for this content type."
+msgstr "Нет полей, настроенных для этого типа содержимого."
+
+#: content_admin.inc:101
+msgid "group"
+msgstr "группа"
+
+#: content_admin.inc:104;117;142
+msgid "configure"
+msgstr "настроить"
+
+#: content_admin.inc:105;118;143
+msgid "remove"
+msgstr "удалить"
+
+#: content_admin.inc:156
+msgid "body"
+msgstr "текст"
+
+#: content_admin.inc:177
+msgid "Update"
+msgstr "Обновить"
+
+#: content_admin.inc:202;206
+msgid "Name"
+msgstr "Название"
+
+#: content_admin.inc:202;206
+msgid "Type"
+msgstr "Тип"
+
+#: content_admin.inc:202
+msgid "Group"
+msgstr "Группа"
+
+#: content_admin.inc:202;206
+msgid "Operations"
+msgstr "Действия"
+
+#: content_admin.inc:270
+msgid "No fields have been added to this group."
+msgstr "Нет полей, добавленных в эту группу."
+
+#: content_admin.inc:275
+msgid "!label (!name)"
+msgstr "!label (!name)"
+
+#: content_admin.inc:311
+msgid "Updated field groups."
+msgstr "Обновлены группы полей."
+
+#: content_admin.inc:322
+msgid "Updated group weights."
+msgstr "Обновлены веса групп."
+
+#: content_admin.inc:333
+msgid "Updated field weights."
+msgstr "Обновлены веса полей."
+
+#: content_admin.inc:367
+msgid "Add existing field"
+msgstr "Добавить существующее поле"
+
+#: content_admin.inc:402
+msgid "Create new field"
+msgstr "Создать новое поле"
+
+#: content_admin.inc:408
+msgid "The human-readable name of this field."
+msgstr "Понятное человеку имя этого поля."
+
+#: content_admin.inc:421
+msgid "Create field"
+msgstr "Создать поле"
+
+#: content_admin.inc:433
+msgid "No field modules are enabled. You need to <a href=\"%modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr "Не включены модули полей. Вам надо <a href=\"%modules_url\">включить их</a>, например, text.module, чтобы иметь возможность добавлять новые поля."
+
+#: content_admin.inc:488
+msgid "Added field %label."
+msgstr "Добавлено поле %label."
+
+#: content_admin.inc:500
+msgid "The field name %field_name already exists."
+msgstr "Имя поля %field_name уже существует."
+
+#: content_admin.inc:504
+msgid "The field name %field_name is invalid."
+msgstr "Название поля %field_name неправильное."
+
+#: content_admin.inc:555
+msgid "Created field %label."
+msgstr "Создано поле %label."
+
+#: content_admin.inc:577
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Вы действительно хотите удалить поле %field?"
+
+#: content_admin.inc:579
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Имеющееся содержание этого поля будет утрачено. Это действие нельзя отменить."
+
+#: content_admin.inc:598
+msgid "Removed field %field from %type."
+msgstr "Поле %field удалено из %type."
+
+#: content_admin.inc:621
+msgid "Widget settings"
+msgstr "Установки элементов выбора"
+
+#: content_admin.inc:622
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Эти настройки относятся только к полю %field, каким оно появляется в типе содержимого %type."
+
+#: content_admin.inc:636
+msgid "Widget"
+msgstr "Элемент"
+
+#: content_admin.inc:660
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr "Инструкции для пользователя, которые будут показаны в форме редактирования."
+
+#: content_admin.inc:666
+msgid "Data settings"
+msgstr "Настройки данных"
+
+#: content_admin.inc:667
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Эти настройки относятся к полю %field в каждом типе содержимого, в котором оно появляется."
+
+#: content_admin.inc:671
+msgid "Required"
+msgstr "Обязательно"
+
+#: content_admin.inc:676
+msgid "Multiple values"
+msgstr "Множественный выбор"
+
+#: content_admin.inc:687
+msgid "Save field settings"
+msgstr "Сохранить настройки поля"
+
+#: content_admin.inc:765
+msgid "Saved field %field."
+msgstr "Поле %field записано."
+
+#: content_admin.inc:1060;1153
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr "PostgreSQL mapping не найден для типа %type."
+
+#: content_admin.inc:1060;1153
+msgid "database"
+msgstr "база данных"
+
+#: content_copy.module:35
+msgid "Export"
+msgstr "Экспорт"
+
+#: content_copy.module:44
+msgid "Import"
+msgstr "Импорт"
+
+#: content_copy.module:81
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Эта форма обрабатывает тип содержимого и одно или более поле этого типа и экспортирует настройки. Созданные данные экспорта можно скопировать и вставить в текущую или любую другую базу данных. Импорт добавляет поля в существующий тип содержимого или создает новый тип содержимого, который включает выбранные поля."
+
+#: content_copy.module:90
+msgid "Types"
+msgstr "Типы"
+
+#: content_copy.module:94
+msgid "Select the content type to export."
+msgstr "Выберите тип содержимого для экспорта."
+
+#: content_copy.module:119
+msgid "Groups"
+msgstr "Группы"
+
+#: content_copy.module:123
+msgid "Select the group definitions to export from %type."
+msgstr "Выберите определения групп для экспорта из %type."
+
+#: content_copy.module:133
+msgid "Select the field definitions to export from %type."
+msgstr "Выберите определения полей для экспорта из %type."
+
+#: content_copy.module:143
+msgid "Export data"
+msgstr "Экспортировать данные"
+
+#: content_copy.module:148
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Копировать экспортируемый текст и вставить его в другой тип содержимого используя функцию импорта."
+
+#: content_copy.module:158;231
+msgid "Submit"
+msgstr "Отправить"
+
+#: content_copy.module:214
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Эта форма позволяет импортировать определения полей из другого типа содержимого или другой базы данных. <br />Обратите внимание, что не должно быть одинаковых полей в одном и том же типе содержимого, поскольку инпортируемые поля добавляются только, если такие не существуют в выбранном типе содержимого."
+
+#: content_copy.module:217
+msgid "<Create>"
+msgstr "<Создать>"
+
+#: content_copy.module:219
+msgid "Content type"
+msgstr "Тип содержимого"
+
+#: content_copy.module:220
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Выберите типы содержимого для импорта в эти поля.<br/>Выберите <Создать> для создания нового типа содержимого, в котором будут использоваться эти поля."
+
+#: content_copy.module:225
+msgid "Import data"
+msgstr "Импорт данных"
+
+#: content_copy.module:227
+msgid "Paste the text created by a content export into this field."
+msgstr "Вставить в это поле текст, созданный с помощью экспорта."
+
+#: content_copy.module:254
+msgid "The import data is not valid import text."
+msgstr "Импортируемые данные содержат неправильный текст для импорта."
+
+#: content_copy.module:299
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "Следующие модули должны быть включены, чтобы работал импорт: %modules."
+
+#: content_copy.module:305;319
+msgid "<create>"
+msgstr "<создать>"
+
+#: content_copy.module:307
+msgid "The content type %type already exists in this database."
+msgstr "Тип содержимого %type уже есть в базе данных."
+
+#: content_copy.module:314
+msgid "Exiting. No import performed."
+msgstr "Выход. Импорт не произведен."
+
+#: content_copy.module:331
+msgid "An error has occured adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Была обнаружена ошибка при добавлении типа содержимого %type.<br/>Подробности в сообщениях об ошибках."
+
+#: content_copy.module:366
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Импортируемое поле %field_label (%field_name) не было добавлено в %type, поскольку оно уже существует в  %type."
+
+#: content_copy.module:387;406
+msgid "An error has occured adding the field %field_label (%field_name).<br/>Please check the errors displayed for more details."
+msgstr "Была обнаружена ошибка при добавлении поля %field_label (%field_name).<br/>Подробности в сообщениях об ошибках."
+
+#: content_copy.module:420
+msgid "The field %field_label (%field_name) was added to the content type %type, but an error has occured updating the field settings.<br/>Please check the errors displayed for more details."
+msgstr "Импортируемое поле %field_label (%field_name) было добавлено в %type, но при обновлении поля была обнаружена ошибка.<br/>Подробности в сообщениях об ошибках."
+
+#: fieldgroup.module:19
+msgid "Create and order your groups first. Then assign fields to a group by editing the fields."
+msgstr "Сначала создайте и упорядочите свои группы. Затем распределите поля по группам, путем редактирования полей."
+
+#: fieldgroup.module:33
+msgid "Add group"
+msgstr "Добавить группу"
+
+#: fieldgroup.module:43;51
+msgid "Edit group"
+msgstr "Изменить группу"
+
+#: fieldgroup.module:79
+msgid "Add"
+msgstr "Добавить"
+
+#: fieldgroup.module:86
+msgid "Save"
+msgstr "Сохранить"
+
+#: fieldgroup.module:103
+msgid "Collapsible"
+msgstr "Сворачиваемая"
+
+#: fieldgroup.module:108
+msgid "Collapsed"
+msgstr "Показывать свернутой"
+
+#: fieldgroup.module:117
+msgid "Instructions to present to the user on the editing form."
+msgstr "Инструкции для пользователя, показываемые в форме редактирования."
+
+#: fieldgroup.module:124
+msgid "In the node editing form, the heavier groups will sink and the lighter groups will be positioned nearer the top."
+msgstr "Более легкие группы в форме изменения материала будут всплывать наверх, а тяжелые - опускаться вниз."
+
+#: fieldgroup.module:144
+msgid "The group name %name already exists."
+msgstr "Имя группы %name уже существует."
+
+#: fieldgroup.module:148
+msgid "The group name %name is invalid."
+msgstr "Имя группы %name неверное."
+
+#: fieldgroup.module:202
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Вы уверены, что хотите отменить удаление группы %label?"
+
+#: fieldgroup.module:204
+msgid "This action cannot be undone."
+msgstr "Это действие нельзя отменить."
+
+#: fieldgroup.module:266
+msgid "No group."
+msgstr "Групп нет."
+
+#: fieldgroup.module:308
+msgid "Display in group"
+msgstr "Показывать в группе"
+
+#: fieldgroup.module:311
+msgid "Select a group, in which the field will be displayed on the editing form."
+msgstr "Выберите группу, в которой поле будет показываться в форме редактирования."
+
+#: fieldgroup.module:0
+msgid "fieldgroup"
+msgstr "группа полей"
+
+#: field.php:80
+#: text.module:34
+msgid "Maximum length"
+msgstr "Максимальная длина"
+
+#: field.php:83
+#: text.module:37
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "Максимальная длина поля (количество знаков). Оставьте поле пустым для неограниченной длины."
+
+#: field.php:189;199
+#: number.module:131
+#: text.module:124
+msgid "Illegal value for %name."
+msgstr "Неправильное значение для %name."
+
+#: field.php:326
+#: text.module:209
+msgid "Rows"
+msgstr "Колонки"
+
+#: field.php:334
+#: text.module:217
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"Колонок\"должно быть положительным числом."
+
+#: content_admin.inc:202;206;405;643
+#: fieldgroup.module:97
+msgid "Label"
+msgstr "Заголовок"
+
+#: content_admin.inc:202;206
+#: fieldgroup.module:122
+msgid "Weight"
+msgstr "Вес"
+
+#: content_admin.inc:376
+#: content.module:81
+msgid "Add field"
+msgstr "Добавить поле"
+
+#: content_admin.inc:580
+#: fieldgroup.module:205
+msgid "Remove"
+msgstr "Удалить"
+
+#: content_admin.inc:580
+#: fieldgroup.module:205
+msgid "Cancel"
+msgstr "Отменить"
+
+#: content_admin.inc:657
+#: fieldgroup.module:114
+msgid "Help text"
+msgstr "Справочный текст"
+
+#: content.module:49
+#: content_copy.module:129
+msgid "Fields"
+msgstr "Поля"
+
+#: nodereference.module:181
+#: userreference.module:256
+msgid "<none>"
+msgstr "нет"
+
+#: number.module:38
+#: text.module:41
+msgid "Allowed values list"
+msgstr "Список допустимых значений."
+
+#: number.module:42
+#: text.module:45
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database and it must match the field storage type, %type. The label is optional and the key will be used as the label if no label is specified."
+msgstr "Значения, которые может принимать полеn. Введите по одному полю на строку в виде key|label. key это значение, которое записывается в базу данных и должно быть типа %type. label - необязательное поле, если его не будет, используется значение key."
+
+#: number.module:46
+#: text.module:49
+msgid "Php code"
+msgstr "Код PHP"
+
+#: number.module:52
+#: text.module:55
+msgid "Code"
+msgstr "Код"
+
+#: number.module:55
+#: text.module:58
+msgid "Advanced Usage Only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Только для экспертов: код PHP, который возвращает массив (keyed array) разрешенных значений.  Можно не включать ограничители <?php ?>. Если поле заполнено, то массив, возвращаемый этим кодом, перекроет список разрешенных значений, указанный выше."
+
+#: content.info:0
+msgid "Content"
+msgstr "Содержание"
+
+#: content.info:0
+msgid "Allows administrators to define new content types."
+msgstr "Позволяет администраторам определять новые типы данных."
+
+#: content.info:0
+#: content_copy.info:0
+#: fieldgroup.info:0
+#: nodereference.info:0
+#: number.info:0
+#: optionwidgets.info:0
+#: text.info:0
+#: userreference.info:0
+msgid "CCK"
+msgstr "CCK"
+
+#: content.info:0
+#: content_copy.info:0
+#: fieldgroup.info:0
+#: nodereference.info:0
+#: number.info:0
+#: optionwidgets.info:0
+#: text.info:0
+#: userreference.info:0
+msgid "cck"
+msgstr "cck"
+
+#: content_copy.info:0
+msgid "Content Copy"
+msgstr "Копия содержимого"
+
+#: content_copy.info:0
+msgid "Enables ability to import/export field definitions."
+msgstr "Включает возможность импорта/экспорта определений полей."
+
+#: fieldgroup.info:0
+msgid "Fieldgroup"
+msgstr "Группа полей"
+
+#: fieldgroup.info:0
+msgid "Create field groups for CCK fields."
+msgstr "Создать группу из полей CCK."
+
+#: nodereference.info:0
+msgid "Node Reference"
+msgstr "Связь материала"
+
+#: nodereference.info:0
+msgid "Defines a field type for referencing one node from another."
+msgstr "Определяет тип поля для связи одного материала с другим."
+
+#: number.info:0
+msgid "Number"
+msgstr "Число"
+
+#: number.info:0
+msgid "Defines numeric field types."
+msgstr "Определяет типы числового поля."
+
+#: optionwidgets.info:0
+msgid "Option Widgets"
+msgstr "Выбор опций"
+
+#: optionwidgets.info:0
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Определяет выбор, выбор опций или радиокнопки для текстовых и числовых полей."
+
+#: text.info:0
+msgid "Text"
+msgstr "Текст"
+
+#: text.info:0
+msgid "Defines simple text field types."
+msgstr "Определяет типы полец для простого текста."
+
+#: userreference.info:0
+msgid "User Reference"
+msgstr "Ссылка на пользователя"
+
+#: userreference.info:0
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Определяет тип поля для ссылок на пользователя из материала."
+
+#: my_extractor.php:664
+msgid "Help called"
+msgstr "Справочный текст"
+
+#: my_extractor.php:665
+msgid "This is some help"
+msgstr "Здесь какая-нибудь справка"
+
+#: my_extractor.php:664
+msgid "help"
+msgstr "справка"
+
+#: my_extractor.php:660
+msgid "access extrator data"
+msgstr "иметь доступ к данным экстрактора"
+
+#: my_extractor.php:660
+msgid "administer extractor data"
+msgstr "управлять данными экстрактора"
+
+#: my_extractor.php:669
+msgid "extractor-cooltype"
+msgstr "extractor-cooltype"
+
+#: my_extractor.php:669
+msgid "extractor-evencooler"
+msgstr "extractor-evencooler"
+
+#: my_extractor.php:0
+msgid "extractor"
+msgstr "экстрактор"
+
+#: content_crud.inc:60
+msgid "The content fields table %name has been created."
+msgstr "Таблица полей содержания %name создана."
+
+#: content_crud.inc:90
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "Поля таблицы %old_name переименованы в  %new_name и значения полей обновлены."
+
+#: content_crud.inc:112
+msgid "The content fields table %name has been deleted."
+msgstr "Поля таблицы %name удалены."
+
+#: content_views.inc:57
+msgid "Group multiple values"
+msgstr "Группировать множественные значения"
+
+#: content_views.inc:58
+msgid "Do not group multiple values"
+msgstr "Не группировать множественные значения"
+
+#: content.module:65
+msgid "Edit"
+msgstr "Изменить"
+
+#: content.module:72
+msgid "Manage fields"
+msgstr "Управлять полями"
+
+#: content.module:100
+msgid "Remove field"
+msgstr "Удалить поле"
+
+#: number.module:28
+msgid "Minimum"
+msgstr "Минимум"
+
+#: number.module:33
+msgid "Maximum"
+msgstr "Максимум"
+
+#: number.module:61
+msgid "\"Minimum\" must be a number."
+msgstr "\"Минимум\" должен быть числом."
+
+#: number.module:64
+msgid "\"Maximum\" must be a number."
+msgstr "\"Максимум\" должен быть числом."
+
+#: number.module:125
+msgid "The value of %name may be no smaller than %min."
+msgstr "Значение %name должно быть не меньше, чем %min."
+
+#: number.module:128
+msgid "The value of %name may be no larger than %max."
+msgstr "Значение %name должно быть не больше, чем %min."
+
+#: optionwidgets.module:34
+msgid "Create a list of options as a list in Allowed values or as an array in Php code at the bottom of this page. These values will be the same for the %field in all content types. The Check boxes/radio buttons widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "Создает список опций, например, как список (типа \"Разрешенные значения\") или как массив в коде PHP внизу данной страницы. Эти значения долджны быть тем же, что %field во всех типах содержимого. Выбор опций/Радиокнопки покажет выбор опций, если для этого поля выбрана опция множественные значения, иначе будут показаны радиокнопки."
+
+#: optionwidgets.module:171
+msgid "N/A"
+msgstr "нет"
+
+#: text.module:25
+msgid "Plain text"
+msgstr "Простой текст"
+
+#: text.module:25
+msgid "Filtered text (user selects input format)"
+msgstr "Фильтрованный текст (пользователь выбирает формат входа)"
+
+#: text.module:28
+msgid "Text processing"
+msgstr "Обработка текста"
+
+#: text.module:329
+msgid "%label is longer than %max characters."
+msgstr "%label не длиннее %max знаков."
+
+#: userreference.module:27
+msgid "User roles that can be referenced"
+msgstr "Роли пользователей, которые могут ссылаться"
+
+#: userreference.module:228
+msgid "Invalid user name."
+msgstr "Неправильное имя пользователя."
+
+#: optionwidgets.install:77
+msgid "<div>The allowed values list for %field was updated from </div><pre>%start</pre><div> to </div><pre>%end</pre><div>You can go to the field settings page to give each option a more user-friendly label."
+msgstr "<div>Список разрешенных значений для поля %field обновлен от </div><pre>%start</pre><div> до </div><pre>%end</pre><div>Вы можете перейти к странице настроек, чтобы задать для каждой опции более понятные человеку названия."
+
+#: optionwidgets.install:80
+msgid "<div>The allowed values list for %field was not changed from </div><pre>%start</pre>"
+msgstr "<div>Список разрешенных значений для поля %field не обновлен от </div><pre>%start</pre><div> до </div><pre>%end</pre><div>"
+
+#: nodereference.module:17
+msgid "node reference autocomplete"
+msgstr "автозаполнение ссылок на материал"
+
+#: nodereference.module:42
+msgid "Content types that can be referenced"
+msgstr "Типы содержимого, на которые можно ссылаться"
+
+#: nodereference.module:51
+msgid "Existing Views"
+msgstr "Существующие виды"
+
+#: nodereference.module:56
+msgid "Default Views"
+msgstr "Виды по умолчанию"
+
+#: nodereference.module:61
+msgid "Advanced - Nodes that can be referenced"
+msgstr "Дополнительно - Материалы, на которые можно ссылаться"
+
+#: nodereference.module:64
+msgid "Choose the \"Views module\" view that selects the nodes that can be referenced.<br>Note :<ul><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr "Выберите \"Модуль Виды (Views)\" показывает, на какие материалы можно ссылаться.<br>Обратите внимание:<ul><li>Это отменит  настройки \"Типы содержимого\" выше. Вместо этого используйте раздел \"фильтры\" видов.</li><li>Используйте раздел \"поля\" для показа дополнительной информации о материалах в форме создания/изменения материалов.</li><li>Используйте раздел \"критерии сортировки\" для определения порядка, в каком материалы будут показаны.</li></ul>"
+
+#: nodereference.module:280
+msgid "This post can't be referenced."
+msgstr "На это сообщение нельзя сослаться."
+
+#: nodereference.module:283
+msgid "Title mismatch. Please reiterate your selection."
+msgstr "Несовпадение названия. Пожалуйста, повторите ваш выбор."
+
+#: nodereference.module:290
+msgid "No post with that title can be referenced."
+msgstr "Нет сообщений с таким название, на которые можно сослаться."
+
+#: nodereference.module:461
+msgid "<empty>"
+msgstr "<пусто>"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.de.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.de.po
new file mode 100644
index 0000000..8d8e593
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.de.po
@@ -0,0 +1,97 @@
+# $Id$
+# German translation of CCK
+# Copyright 2006 Lukas Gangoly <lukas.gangoly at univie.ac.at>
+# Copyright 2006 Jakob Petsovits <jpetso at gmx.at>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 luke
+#  text.module,v 1.34 2006/06/12 19:59:53 luke
+#  number.module,v 1.28 2006/05/02 13:52:16 luke
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
+#  content.module,v 1.64 2006/06/12 19:36:54 luke
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 luke
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
+#  userreference.module,v 1.24 2006/05/05 14:10:44 luke
+#  weburl.module,v 1.8 2006/06/12 19:36:54 luke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of CCK\n"
+"POT-Creation-Date: 2008-11-05 12:54+0100\n"
+"PO-Revision-Date: 2008-11-05 13:08+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: theme/content-admin-field-overview-form.tpl.php:11
+msgid "Weight"
+msgstr "Reihenfolge"
+
+#: theme/content-admin-field-overview-form.tpl.php:53
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: theme/content-admin-field-overview-form.tpl.php:59
+msgid "New field"
+msgstr "Neues Feld"
+
+#: theme/content-admin-field-overview-form.tpl.php:72
+msgid "Existing field"
+msgstr "Vorhandenes Feld"
+
+#: theme/content-admin-field-overview-form.tpl.php:84
+msgid "New group"
+msgstr "Neue Gruppe"
+
+#: theme/theme.inc:11
+msgid "Add fields and groups to the content type, and arrange them on content display and input forms."
+msgstr "Fügt Felder und Gruppen zu dem Inhaltstyp hinzu und ordnet diese auf der Inhaltsansicht und den Eingabeformularen an."
+
+#: theme/theme.inc:13
+msgid "You can add a field to a group by dragging it below and to the right of the group."
+msgstr "Ein Feld kann einer Gruppe hinzugefügt werden, indem es unterhalb der Zeile dieser Gruppe leicht nach rechts gezogen wird."
+
+#: theme/theme.inc:16
+msgid "Note: Installing the <a href=\"!adv_help\">Advanced help</a> module will let you access more and better help."
+msgstr "Hinweis: Die Installation des <a href=\"!adv_help\">Erweiterte Hilfe</a>-Modul ermöglicht den Zugriff auf weitere und bessere Hilfe."
+
+#: theme/theme.inc:111
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "Die Anzeige von Feldern und Bezeichnungen dieses Inhaltstyps konfigurieren, wenn dieser im Anrisstext und ganzseiten Modus angezeigt wird."
+
+#: theme/theme.inc:114
+msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
+msgstr "Die Anzeige von Feldern dieses Inhaltstyps konfigurieren, wenn dieser im folgenden Kontext angezeigt wird."
+
+#: theme/theme.inc:116
+msgid "Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template."
+msgstr "Das ‚Ausschließen‘-Ankreuzfeld kann verwendet werden, um einen Eintrag aus dem an die Beitragsvorlage übergebenen !content-Wert zu entfernen."
+
+#~ msgid "Name"
+#~ msgstr "Name"
+#~ msgid "Type"
+#~ msgstr "Typ"
+#~ msgid "Operations"
+#~ msgstr "Operationen"
+#~ msgid "edit"
+#~ msgstr "Bearbeiten"
+#~ msgid "manage fields"
+#~ msgstr "Felder verwalten"
+#~ msgid "delete"
+#~ msgstr "Löschen"
+#~ msgid "No content types available."
+#~ msgstr "Keine Inhaltstypen vorhanden."
+#~ msgid "» Add a new content type"
+#~ msgstr "» Neuen Inhaltstyp hinzufügen"
+#~ msgid "Field name"
+#~ msgstr "Feldname"
+#~ msgid "Field type"
+#~ msgstr "Feldtyp"
+#~ msgid "Used in"
+#~ msgstr "Verwendet in"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.pot b/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.pot
new file mode 100644
index 0000000..25c7f55
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.pot
@@ -0,0 +1,65 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (theme)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
+#  theme.inc,v 1.1.2.13 2009/04/28 23:06:37 yched
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-16 19:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: theme/content-admin-field-overview-form.tpl.php:11
+msgid "Weight"
+msgstr ""
+
+#: theme/content-admin-field-overview-form.tpl.php:53
+msgid "Add"
+msgstr ""
+
+#: theme/content-admin-field-overview-form.tpl.php:59
+msgid "New field"
+msgstr ""
+
+#: theme/content-admin-field-overview-form.tpl.php:72
+msgid "Existing field"
+msgstr ""
+
+#: theme/content-admin-field-overview-form.tpl.php:84
+msgid "New group"
+msgstr ""
+
+#: theme/theme.inc:11
+msgid "Add fields and groups to the content type, and arrange them on content display and input forms."
+msgstr ""
+
+#: theme/theme.inc:13
+msgid "You can add a field to a group by dragging it below and to the right of the group."
+msgstr ""
+
+#: theme/theme.inc:16
+msgid "Note: Installing the <a href=\"!adv_help\">Advanced help</a> module will let you access more and better help."
+msgstr ""
+
+#: theme/theme.inc:111
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr ""
+
+#: theme/theme.inc:114
+msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
+msgstr ""
+
+#: theme/theme.inc:116
+msgid "Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template."
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.sv.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.sv.po
new file mode 100644
index 0000000..4fa1138
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/theme.sv.po
@@ -0,0 +1,66 @@
+# $Id
+#
+# Swedish translation of Drupal (theme)
+# Generated from files:
+#  content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
+#  theme.inc,v 1.1.2.12 2008/10/28 22:12:09 yched
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CCK - Theme 6.x\n"
+"POT-Creation-Date: 2009-03-09 22:08+0100\n"
+"PO-Revision-Date: 2009-04-20 21:33+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: theme/content-admin-field-overview-form.tpl.php:11
+msgid "Weight"
+msgstr "Vikt"
+
+#: theme/content-admin-field-overview-form.tpl.php:53
+msgid "Add"
+msgstr "Lägg till"
+
+#: theme/content-admin-field-overview-form.tpl.php:59
+msgid "New field"
+msgstr "Nytt fält"
+
+#: theme/content-admin-field-overview-form.tpl.php:72
+msgid "Existing field"
+msgstr "Existerande fält"
+
+#: theme/content-admin-field-overview-form.tpl.php:84
+msgid "New group"
+msgstr "Ny grupp"
+
+#: theme/theme.inc:11
+msgid "Add fields and groups to the content type, and arrange them on content display and input forms."
+msgstr "Lägg till fält och grupper till innehållstypen, och ändra deras disposition vid visning och inmatningsformulär."
+
+#: theme/theme.inc:13
+msgid "You can add a field to a group by dragging it below and to the right of the group."
+msgstr "Du kan lägga till fält till en grupp genom att dra det till platsen under och till höger om gruppen."
+
+#: theme/theme.inc:16
+msgid "Note: Installing the <a href=\"!adv_help\">Advanced help</a> module will let you access more and better help."
+msgstr "Observera: Genom att installera modulen <a href=\"!adv_help\">Advanced help</a> får du tillgång till bättre och mer omfattande hjälp."
+
+#: theme/theme.inc:111
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "Ändra inställningarna för hur den här innehållstypens fält och fältetiketter skall visas i sammanfattnings- och fullsidesläge."
+
+#: theme/theme.inc:114
+msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
+msgstr "Ändra inställningarna för hur den här innehållstypens fält skall visas i följande sammanhang."
+
+#: theme/theme.inc:116
+msgid "Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template."
+msgstr "Använd kryssrutan \"Uteslut\" för att utesluta ett alternativ från värdet !content som skickas till nodmallen."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/uk-ua.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/uk-ua.po
new file mode 100644
index 0000000..4999083
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/uk-ua.po
@@ -0,0 +1,1754 @@
+# Ukrainian translation of Content Construction Kit (CCK) (all releases)
+# Copyright (c) 2009 by the Ukrainian translation team
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Content Construction Kit (CCK) (all releases)\n"
+"POT-Creation-Date: 2009-10-08 19:18+0000\n"
+"PO-Revision-Date: 2009-10-08 22:19+0200\n"
+"Language-Team: Ukrainian <podarok at ua.fm>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"
+"Last-Translator: podarok <podarok at ua.fm>\n"
+"X-Poedit-Language: Ukrainian\n"
+"X-Poedit-Country: UKRAINE\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "CCK"
+msgstr "CCK"
+
+msgid "delete"
+msgstr "видалити"
+
+msgid "Prefix"
+msgstr "Префікс"
+
+msgid "Suffix"
+msgstr "Суфікс"
+
+msgid "Submit"
+msgstr "Надіслати"
+
+msgid "Operations"
+msgstr "Дії"
+
+msgid "Content"
+msgstr "Вміст"
+
+msgid "content"
+msgstr "вміст"
+
+msgid "Groups"
+msgstr "Групи"
+
+msgid "Group"
+msgstr "Група"
+
+msgid "Type"
+msgstr "Тип"
+
+msgid "Cancel"
+msgstr "Скасувати"
+
+msgid "Remove"
+msgstr "Вилучити"
+
+msgid "Description"
+msgstr "Опис"
+
+msgid "Language"
+msgstr "Мова"
+
+msgid "Block title"
+msgstr "Назва блоку"
+
+msgid "Taxonomy"
+msgstr "Таксономія"
+
+msgid "Yes"
+msgstr "Так"
+
+msgid "No"
+msgstr "Ні"
+
+msgid "!date — !username"
+msgstr "!date — !username"
+
+msgid "Content types"
+msgstr "Типи матеріалів"
+
+msgid "Edit"
+msgstr "Редагувати"
+
+msgid "Search"
+msgstr "Пошук"
+
+msgid "None"
+msgstr "Жодного"
+
+msgid "Display settings"
+msgstr "Параметри відображення"
+
+msgid "This action cannot be undone."
+msgstr "Цю дію не можна буде скасувати."
+
+msgid "Number"
+msgstr "Число"
+
+msgid "- None -"
+msgstr "- Немає -"
+
+msgid "Weight"
+msgstr "Вага"
+
+msgid "Help text"
+msgstr "Довідковий текст"
+
+msgid "Types"
+msgstr "Типи"
+
+msgid "Required"
+msgstr "Необхідний"
+
+msgid "none"
+msgstr "нічого"
+
+msgid "Name"
+msgstr "Назва"
+
+msgid "edit"
+msgstr "редагувати"
+
+msgid "Import"
+msgstr "Імпорт"
+
+msgid "Book"
+msgstr "Книга"
+
+msgid "Export"
+msgstr "Експорт"
+
+msgid "Field"
+msgstr "Поле"
+
+msgid "Label"
+msgstr "Заголовок"
+
+msgid "Save"
+msgstr "Зберегти"
+
+msgid "Default"
+msgstr "Типовий"
+
+msgid "Update"
+msgstr "Оновити"
+
+msgid "Add"
+msgstr "Додати"
+
+msgid "remove"
+msgstr "видалити"
+
+msgid "View"
+msgstr "Перегляд"
+
+msgid "Format"
+msgstr "Формат"
+
+msgid "hidden"
+msgstr "сховане"
+
+msgid "Teaser"
+msgstr "Анонс"
+
+msgid "Text"
+msgstr "Текст"
+
+msgid "<none>"
+msgstr "<немає>"
+
+msgid "Content type"
+msgstr "Тип вмісту"
+
+msgid "Continue"
+msgstr "Продовжити"
+
+msgid "Configure"
+msgstr "Управління"
+
+msgid "Node"
+msgstr "Матеріал"
+
+msgid "Include"
+msgstr "Включення"
+
+msgid "Exclude"
+msgstr "Виключення"
+
+msgid "All"
+msgstr "Все"
+
+msgid "Active"
+msgstr "Діючий"
+
+msgid "View arguments"
+msgstr "Аргументи вигляду"
+
+msgid "RSS"
+msgstr "RSS"
+
+msgid "Inline"
+msgstr "Вбудоване"
+
+msgid "Delta"
+msgstr "Різниця"
+
+msgid "Custom"
+msgstr "Власний"
+
+msgid "Poll choices"
+msgstr "Варіанти голосів"
+
+msgid "Content field"
+msgstr "Поле матеріалу"
+
+msgid "Field name"
+msgstr "Ім'я поля"
+
+msgid "Field type"
+msgstr "Тип поля"
+
+msgid "Global settings"
+msgstr "Глобальні настройки"
+
+msgid "Multiple values"
+msgstr ""
+
+msgid "Fields"
+msgstr "Поля"
+
+msgid "Widget type"
+msgstr "Тип Візитки"
+
+msgid "Widget settings"
+msgstr ""
+
+msgid "Contains"
+msgstr "Містить"
+
+msgid "N/A"
+msgstr "н/п"
+
+msgid "configure"
+msgstr "налаштувати"
+
+msgid "Advanced"
+msgstr "Додатково"
+
+msgid "This field is required."
+msgstr "Це поле - обов'язкове."
+
+msgid "Maximum"
+msgstr "Найбільше"
+
+msgid "Scale"
+msgstr "Маштаб"
+
+msgid "Plain text"
+msgstr "Чистий текст"
+
+msgid "Widget"
+msgstr "Віджет"
+
+msgid "Unlimited"
+msgstr "Необмежено"
+
+msgid "Code"
+msgstr "Код"
+
+msgid "General"
+msgstr "Загальне"
+
+msgid "group"
+msgstr "група"
+
+msgid "Basic"
+msgstr "Базовий"
+
+msgid "Filtered text (user selects input format)"
+msgstr "Фільтрований текст (користувач обирає вхідний формат)"
+
+msgid "Text processing"
+msgstr "Обробка тексту"
+
+msgid "Maximum length"
+msgstr "Максимальна довжина"
+
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "Максимальне значення поля в знаках. Залишіть пустим для необмеженого розміру."
+
+msgid "%label is longer than %max characters."
+msgstr "%label містить більше ніж %max дозволених символів."
+
+msgid "Rows"
+msgstr "Рядки"
+
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"Рядки\" повинні бути додатнім цілим числом."
+
+msgid "Existing Views"
+msgstr "Доступні види"
+
+msgid "Default Views"
+msgstr "Базові види"
+
+msgid "Empty text"
+msgstr "Пустий текст"
+
+msgid "Order"
+msgstr "Замовлення"
+
+msgid "Integer"
+msgstr "Ціле"
+
+msgid "Edit group"
+msgstr "Змінити групу"
+
+msgid "Add group"
+msgstr "Додати групу"
+
+msgid "Full"
+msgstr "Повністю"
+
+msgid "Size of textfield"
+msgstr "Розмір текстового поля"
+
+msgid "File attachments"
+msgstr "Приєднані файли"
+
+msgid "Show"
+msgstr "Показати"
+
+msgid "Token"
+msgstr "Токен"
+
+msgid "Allowed values list"
+msgstr "Список допустимих значень"
+
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database and it must match the field storage type, %type. The label is optional and the key will be used as the label if no label is specified."
+msgstr ""
+
+msgid "Select List"
+msgstr "Список"
+
+msgid "Select list"
+msgstr "Список"
+
+msgid "Text field"
+msgstr "Текстове поле"
+
+msgid "body"
+msgstr "тіло"
+
+msgid "PHP code"
+msgstr "код PHP"
+
+msgid "Display fields"
+msgstr "Відображення полів"
+
+msgid "Blocked"
+msgstr "Заблоковано"
+
+msgid "Poll settings"
+msgstr "Параметри голосування"
+
+msgid "Style"
+msgstr "Стиль"
+
+msgid "Your settings have been saved."
+msgstr "Ваші параметри збережено"
+
+msgid "Reversed"
+msgstr ""
+
+msgid "%type settings"
+msgstr "Параметри для %type"
+
+msgid "Menu settings"
+msgstr "Налаштування меню"
+
+msgid "edit "
+msgstr "редагування "
+
+msgid "Illegal value for %name."
+msgstr "Недозволене значення %name."
+
+msgid "<Hidden>"
+msgstr "<Приховано>"
+
+msgid "Comment settings"
+msgstr "Налаштування коментарів"
+
+msgid "Related content"
+msgstr "Схожий матеріал"
+
+msgid "Processing"
+msgstr "Обробка"
+
+msgid "Default value"
+msgstr "Базове значення"
+
+msgid "No content types available."
+msgstr "Немає доступних типів матеріалів."
+
+msgid "Simple"
+msgstr "Просте"
+
+msgid "Above"
+msgstr "Над"
+
+msgid "Number of values"
+msgstr "Кількість значень"
+
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr "Попередження! Зміна цих значень після створення даних можуть призвести до втрат даних!"
+
+msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible thr [...]
+msgstr "Модуль контенту, обов'язковий компонент Набору побудови контенту (CCK), дозволяє адміністраторам пов'язувати користувацькі поля з типами контенту. В Друпал, типи контенту використовуються для визначення характеристик повідомлення, включаючи заголовок і опис полей, вказаних на сторінках редагування та додавання. Використовуючи модуль контенту (та інші допоміжні модулі в CCK), можна додавати інші користувацькі поля крім полей \"Title\" and \"Body\" за замовчуванням. Можливості CCK  [...]
+
+msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatica [...]
+msgstr "При доданні користувацького поля до типу контенту ви визначаєте його тип (чи воно буде містити текст, числа чи посилання на інші об'єкти) і те, як воно буде показане (або у вигляді текстового поля, прямокутника з варіантами, відмітками багатозначного чи однозначного вибору, чи автозаповнювальним полем). Поле може мати декілька значень (наприклад, \"person\"  може містити декілька адрес електронної пошти) або єдине значення (наприклад, \"employee\" містить один ідентифікаційний но [...]
+
+msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
+msgstr "Користувацькі типи полів надаються набором додаткових модулів, включених з CCK (кожен модуль підтримує різний тип). <a href=\"@modules\">modules page</a> дозволяє вам вмикати та вимикати складові CCK. Стандартне встановлення CCK включає в себе:"
+
+msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
+msgstr "<em>number</em>, що додає числові типи полей, у цілій, дробній чи з плаваючою комою формі чисел. Ви можете визначити набір дозволених даних для введення, або вказати допустимий окіл значень. В асортименті є набір звичайних форматів для показу числових даних."
+
+msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
+msgstr "<em>text</em>, що додає текстові типи полей. Текстове поле може містити лише простий текст, або, за бажанням, може використовувати фільтри формату вводу Drupal'у для безпечної роботи з введенням збагаченого тексту. Поля введення текту можуть бути у вигляді одної строки, декількох строк (текстового поля), або для більшого контролю,  прямокутника з варіантами, відмітками багатозначного чи однозначного вибору. За бажанням, CCK може звірювати введене з набором дозволених значень"
+
+msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
+msgstr "<em>nodereference</em>, що створює користувацькі посилання між вузлами Drupal. Наприклад, додаючи поле <em>nodereference</em> і два різних типа контенту, ви можете з легкістю створювати складні спадкові стосунки між даними (декілька вузлів \"employee\" можуть містити поле <em>nodereference</em>, що пов'язує їх з вузлом \"employer\")."
+
+msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
+msgstr "<em>userreference</em>, що створює користувацькі посилання на рахунки користувачів вашого сайту. Додаючи поле <em>userreference</em>, ви можете створювати складні взаємозв'зки між користувачами та повідомленнями вашого сайту. Наприклад, для відслідковування участі користувачів у повідомленні понад стандартного поля Drupal <em>Authored by</em>, додайте поле <em>userreference</em> з назвою \"Edited by\" до типу контенту, щоб зберегти посилання на сторінку рахунку редактора повідомлення."
+
+msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
+msgstr "<em>fieldgroup</em>, що створює розбірні набори полів для фіксування групи пов'язаних полів. Набір полів може бути відкритим чи закритим за замовчуванням. Порядок ваших наборів полів, а також порядок полів в наборі, управляється через перетягування у інтерфейсі, наданому модулем контенту."
+
+msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr "Для додаткової інформації читайте розділ довідника <a href=\"@handbook-cck\">CCK</a> на сторінці <a href=\"@project-cck\">CCK проекту</a>."
+
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "Налаштувати те, як поля цього типу контенту та мітки полів повинні бути показані в режимах короткого та повного перегляду."
+
+msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
+msgstr "Налаштувати те, як поля цього типу контенту повинні бути показані під час обробки в наступних контекстах."
+
+msgid "Control the order of fields in the input form."
+msgstr "Налаштування послідовності полів у формі вводу."
+
+msgid "!title: !required"
+msgstr "!title: !required"
+
+msgid "Add another item"
+msgstr "Додати інший елемент"
+
+msgid "Full node"
+msgstr "Повний матеріал"
+
+msgid "RSS Item"
+msgstr ""
+
+msgid "Search Index"
+msgstr "База пошуку"
+
+msgid "Search Result"
+msgstr "Результат пошуку"
+
+msgid "Updating field type %type with module %module."
+msgstr "Оновлення типу поля %type модулем %module."
+
+msgid "Updating widget type %type with module %module."
+msgstr "Оновлення типу Візитки %type модулем %module."
+
+msgid "Manage fields"
+msgstr "Керувати полями"
+
+msgid "Add field"
+msgstr "Додати поле"
+
+msgid "Remove field"
+msgstr "Видалення поля"
+
+msgid "Allows administrators to define new content types."
+msgstr "Дозволяє адміністраторам задавати новий тип матеріалу"
+
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Лише для досвідчених користувачів: код PHP, що видає відповідний набір дозволених значень. Не повинен включати розмежовувачів <?php ?&gt. Якщо це поле заповнене, набір, виданий цім кодом, замістить вищевказаний перелік дозволених значень."
+
+msgid "Trimmed"
+msgstr "Скорочене"
+
+msgid "Text area"
+msgstr "Текстове поле"
+
+msgid "Used in"
+msgstr "Використано в"
+
+msgid "No fields have been defined for any content type yet."
+msgstr "Жодних полів ще не задано для жодного типу матеріалів"
+
+msgid "There are no fields configured for this content type. You can !link."
+msgstr "Немає полів налаштованих на використання в цьому типі контенту. Ви можете !link."
+
+msgid "Add a new field"
+msgstr "Додати нове поле"
+
+msgid "To change the order of a field, grab a drag-and-drop handle under the Label column and drag the field to a new location in the list. (Grab a handle by clicking and holding the mouse while hovering over a handle icon.) Remember that your changes will not be saved until you click the Save button at the bottom of the page."
+msgstr ""
+
+msgid "no styling"
+msgstr "без стилю"
+
+msgid "simple"
+msgstr "просто"
+
+msgid "fieldset"
+msgstr "група полів"
+
+msgid "fieldset - collapsible"
+msgstr "група полів - здатна звертатись"
+
+msgid "fieldset - collapsed"
+msgstr "група полів - звернута"
+
+msgid "Add existing field"
+msgstr ""
+
+msgid "Create new field"
+msgstr "Створити нове поле"
+
+msgid "The machine-readable name of the field. This name cannot be changed later! The name will be prefixed with 'field_' and can include lowercase unaccented letters, numbers, and underscores. You'll be able to choose a human-readable label for the field on next page."
+msgstr "Системна назва поля. Цю назву <strong>неможна</strong> буде змінити згодом! До назви буде додано префікс 'field_'. Назва може містити прописні ненаголошені букви латинського алфавіту, цифри та символи нижнього підкреслення. Ви будете мати можливість ввести назву поля, яка буде відображатися для користувачів, на наступній сторінці."
+
+msgid "No field modules are enabled. You need to <a href=\"!modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr ""
+
+msgid "Choose the type of value to store and an input method from the list below."
+msgstr ""
+
+msgid "Added field %label."
+msgstr "Додано поле %label"
+
+msgid "There was a problem adding field %label."
+msgstr "Виникла проблема додавання поля %label."
+
+msgid "The field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Назва поля %field_name неправильна. Назва може містити прописні ненаголошені букви латинського алфавіту, цифри та символи нижнього підкреслення."
+
+msgid "The field name %field_name already exists."
+msgstr "Назва поля %field_name вже існує."
+
+msgid "The name 'field_instance' is a reserved name."
+msgstr "Назва 'field_instance' зарезервована."
+
+msgid "Created field %label."
+msgstr "Створити поле %label."
+
+msgid "There was a problem creating field %label."
+msgstr "Виникла проблема створення поля %label."
+
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Ви впевнені, що хочете видалити поле %field?"
+
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Якщо в даному полі знаходиться якийсь матеріал - він буде втрачений. Це незворотня операція"
+
+msgid "Removed field %field from %type."
+msgstr "Видалено поле %field із %type."
+
+msgid "There was a problem deleting %field from %type."
+msgstr "Виникла проблема видалення %field із %type."
+
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Ці параметри застосовуються тільки до поля %field так як знаходиться в типі матеріалу %type"
+
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr ""
+
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format :<pre>!sample</pre>Using !link_devel's 'devel load' tab on a %type content page might help you figure out the expected format."
+msgstr ""
+
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Ці параметри застосовуються до поля %field в кожному типі матеріалів, в якому воно використовуються."
+
+msgid "Select a specific number of values for this field, or 'Unlimited' to provide an 'Add more' button so the users can add as many values as they like."
+msgstr ""
+
+msgid "Save field settings"
+msgstr "Збереження параметрів поля"
+
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr "Код PHP значення за замовчуванням видав неправильне значення.<br/>Очікуваний формат: <pre>!sample</pre> Видане значення: @value"
+
+msgid "The default value PHP code created @value which is invalid."
+msgstr ""
+
+msgid "The default value is invalid."
+msgstr "Базове значення некоректне"
+
+msgid "Saved field %label."
+msgstr "Збережено поле %label"
+
+msgid "The update has encountered an error."
+msgstr "Оновлення викликало помилку"
+
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "База даних змінена і дані переміщено або видалено."
+
+msgid "An error occurred and database alteration did not complete."
+msgstr "Виникла помилка і зміни в базі даних незавершені."
+
+msgid "Processing %title"
+msgstr "Обробка %title"
+
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "вдало оброблено @count елемент:"
+msgstr[1] "вдало оброблено @count елементи:"
+msgstr[2] "вдало оброблено @count елементів:"
+
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "Таблиця %old_name полей матеріалу була перейменована в %new_name і елементи полей були оновлені"
+
+msgid "The content fields table %name has been deleted."
+msgstr "Таблиця %name полей матеріалу була видалена"
+
+msgid "Add another !field value"
+msgstr "Додати інше значення !field"
+
+msgid "If the amount of boxes above isn't enough, click here to add more items."
+msgstr ""
+
+msgid "Referenced node ID"
+msgstr "ID пов'язаного матеріалу"
+
+msgid "Referenced node title"
+msgstr "Заголовок пов'язаного матеріалу"
+
+msgid "Formatted HTML link to the node"
+msgstr ""
+
+msgid "Raw number value"
+msgstr "Чисте значення номера"
+
+msgid "Formatted number value"
+msgstr "Форматоване значення номера"
+
+msgid "Raw, unfiltered text"
+msgstr "Чистий, нефільтрований текст"
+
+msgid "Formatted and filtered text"
+msgstr "Форматований і фільтрований текст"
+
+msgid "Referenced user ID"
+msgstr "ID пов'язаного користувача"
+
+msgid "Referenced user name"
+msgstr "Ім'я пов'язаного користувача"
+
+msgid "Formatted HTML link to referenced user"
+msgstr "Форматоване HTML посилання до пов'язаного користувача"
+
+msgid "Appears in : @types"
+msgstr "З'являється в : @types"
+
+msgid "Group multiple values"
+msgstr "Багато значень групи"
+
+msgid " values,"
+msgstr " значення,"
+
+msgid "Starting from"
+msgstr "Починати з"
+
+msgid "Start from last values"
+msgstr "Починати з останнього значення"
+
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Ця форма обробить тип контенту та одне або декілька полів цього типу, та експортує налаштування. Експортування, створене цим процесом, можна копіювати та вставляти як імпортування у поточну або будь-яку іншу базу даних. Імпортування додасть поля в існуючий тип контенту або створить новий тип контенту, що включає обрані поля."
+
+msgid "Select the content type to export."
+msgstr "Вибір типу матеріалу для вивантаження"
+
+msgid "Select the group definitions to export from %type."
+msgstr ""
+
+msgid "Select the field definitions to export from %type."
+msgstr ""
+
+msgid "Export data"
+msgstr "Вивантаження даних"
+
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Скопіюйте текст експорту та вставте його в інший тип контенту, використовуючи функцію імпорту."
+
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Ця форма імпортує визначення полів, експортовані з іншого типу контенту або іншої бази даних. <br/>Зверніть увагу, що поля не можна копіювати всередині одного типу контенту, так що імпортовані поля будуть додані лише у тому випадку, якщо вони ще не існують в обраному типу."
+
+msgid "<Create>"
+msgstr "<Створення>"
+
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Оберіть тип контенту для імпортування вказаних полів. <br/>Оберіть <Create> для створення нового типу контенту для вміщення полів."
+
+msgid "Import data"
+msgstr "Втягування даних"
+
+msgid "Paste the text created by a content export into this field."
+msgstr "Вставте текст, створений експортуванням контенту, у це поле."
+
+msgid "The import data is not valid import text."
+msgstr "Дані для втягування не є коректними"
+
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "Наступні модулі слід включити для роботи цього імпортування: %modules."
+
+msgid "<create>"
+msgstr "<Створення>"
+
+msgid "The content type %type already exists in this database."
+msgstr "Тип матеріалу %type вже міститься в базі даних."
+
+msgid "Exiting. No import performed."
+msgstr "Вихід. Не виконано втягування;"
+
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Трапилась помилка при доданні типу контенту %type.<br/>Будь ласка, прогляньте вказані помилки для докладних деталей."
+
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Втягнуте поле %field_label (%field_name) не було додано до %type через те, що поле вже існує в %type."
+
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr "Поле %field_label (%field_name) додано до типу матеріалів %type."
+
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr "Трапилась помилка при експортуванні даних 'показу налаштувань' для поля %field_name.<br/> Помилка бази даних наступна: '%db_err'."
+
+msgid "Content Copy"
+msgstr "Копіювання матеріалів"
+
+msgid "Enables ability to import/export field definitions."
+msgstr "Включає здатність імпортувати/експортувати визначення полей."
+
+msgid "field_name"
+msgstr "ім'я поля"
+
+msgid "view "
+msgstr "вигляд "
+
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr "Будь ласка негайно <a href=\"!url\">configure your field permissions</a>. Всі поля за замовчуванням недоступні."
+
+msgid "Content Permissions"
+msgstr "Доступи до матеріалів"
+
+msgid "Set field-level permissions for CCK fields."
+msgstr "Встановіть дозволи рівнів полей для полей CCK."
+
+msgid "These settings apply to the group in the node editing form."
+msgstr "Ці параметри використовувати до групи в формі редагування матеріалу"
+
+msgid "always open"
+msgstr "завжди відкрите"
+
+msgid "collapsible"
+msgstr "можливість звертання"
+
+msgid "collapsed"
+msgstr "звернуто"
+
+msgid "Instructions to present to the user on the editing form."
+msgstr "Інструкції, що відображаються користувачу на формі редагування"
+
+msgid "These settings apply to the group on node display."
+msgstr "Ці налаштування стосуються групи на екрані вузлів."
+
+msgid "A description of the group."
+msgstr "Опис групи"
+
+msgid "The group name %name already exists."
+msgstr "Назва групи %name вже існує."
+
+msgid "The group name %name is invalid."
+msgstr "Назва групи %name неправильна."
+
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Ви впевнені, що хочете видалити групу %label?"
+
+msgid "The group %group_name has been removed."
+msgstr "Групу %label видалено"
+
+msgid "Display in group"
+msgstr "Відображати в групі"
+
+msgid "Select a group, in which the field will be displayed on the editing form."
+msgstr ""
+
+msgid "Fieldgroup"
+msgstr "Група полів"
+
+msgid "Create field groups for CCK fields."
+msgstr "Створити групи для для CCK полів"
+
+msgid "Node reference"
+msgstr "Посилання на матеріал"
+
+msgid "Store the ID of a related node as an integer value."
+msgstr "Зберегти ІН пов'язаного вузлу цілим числом."
+
+msgid "Content types that can be referenced"
+msgstr "Типи контенту, що мона ввести в довідку"
+
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Розширене - вузли, що можна внести в довідку (Переглянути)"
+
+msgid "Choose the \"Views module\" view that selects the nodes that can be referenced.<br>Note :<ul><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Надайте перелік аргументів, розділений комами, для передачи на перегляд."
+
+msgid "%name : This post can't be referenced."
+msgstr ""
+
+msgid "Title (link)"
+msgstr "Назва(посилання)"
+
+msgid "Title (no link)"
+msgstr "Назва(без посилання)"
+
+msgid "Autocomplete text field"
+msgstr "Текстове поле автозаповнення"
+
+msgid "%name: Title mismatch. Please check your selection."
+msgstr ""
+
+msgid "Nodereference autocomplete"
+msgstr "Автодоповнення посилання на матеріал"
+
+msgid "Node Reference"
+msgstr "Посилання на матеріал"
+
+msgid "Defines a field type for referencing one node from another."
+msgstr "визначає тип поля для відрізняння одного вузла від іншого."
+
+msgid "Store a number in the database as an integer."
+msgstr "Зберегти як ціле число в базі даних."
+
+msgid "Decimal"
+msgstr "Десяткове"
+
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Зберегти як фіксоване дробне число в базі даних."
+
+msgid "Float"
+msgstr "Плаваюче"
+
+msgid "Store a number in the database in a floating point format."
+msgstr "Зберегти як число з плаваючою комою в базі даних."
+
+msgid "Minimum"
+msgstr "Найменше"
+
+msgid "Precision"
+msgstr "Точність"
+
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr "Загальне число цифр для збереження в базі даних, включаючи ті, що справа від знаку дробу."
+
+msgid "The number of digits to the right of the decimal."
+msgstr "Кількість цифр справа від знаку дробу."
+
+msgid "Decimal marker"
+msgstr "Десятковий розділювач"
+
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "Знак, який користувачі введуть для відмічення знаку дробу у формах."
+
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Визначіть строку-префікс для значення, наприклад $ або €. Залишіть пустим для нічого. Розділіть значення однини та множини знаком | (фунт|фунти)."
+
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Визначіть строку-суфікс для значення, наприклад m², m/s², kb/s. Залишіть пустим для нічого. Розділіть значення однини та множини знаком | (фунт|фунти)."
+
+msgid "Allowed values"
+msgstr "Дозволені значення"
+
+msgid "\"Minimum\" must be a number."
+msgstr "\"Найменше\" повинно бути числом."
+
+msgid "\"Maximum\" must be a number."
+msgstr "\"Найбільше\" повинно бути числом"
+
+msgid "The value of %name may be no smaller than %min."
+msgstr "%name: значення повинно бути не меншим чим %min."
+
+msgid "The value of %name may be no larger than %max."
+msgstr "%name: значення повинно бути не більшим чим %max."
+
+msgid "unformatted"
+msgstr "неформатоване"
+
+msgid "Only numbers and decimals are allowed in %field. %start was changed to %value."
+msgstr ""
+
+msgid "Only numbers are allowed in %field. %start was changed to %value."
+msgstr ""
+
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field. %start was changed to %value."
+msgstr ""
+
+msgid "Defines numeric field types."
+msgstr "Зазначення числових типів полей"
+
+msgid "Create a list of options as a list in <strong>Allowed values</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr ""
+
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr "Для віджету 'один прямокутник з варіантами ввімнути/вимкнути' визначіть спочатку значення 'вимкнути', а потім значення 'ввімкнути' у розділі <strong>Allowed values</strong>. Зверніт увагу, прямокутник буде помічено міткою значення  'ввімкнути'."
+
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "Віджет 'прямокутники з варіантами' буде показувати багатоваріантний вибір, якщо ця опція обрана для цього поля, інакше буде вказано одноваріантний вибір."
+
+msgid "Check boxes/radio buttons"
+msgstr "Відмітьте квадратики/кнопки"
+
+msgid "Single on/off checkbox"
+msgstr "Одиночна опція так/ні"
+
+msgid "Option Widgets"
+msgstr "Спецдодатки"
+
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Визначає віджети вибору та прямокутників з варіантами для текстових та числових полей."
+
+msgid "Store text in the database."
+msgstr "Збереження тексту в базі даних"
+
+msgid "Text area (multiple rows)"
+msgstr "Текстове поле (багаторядкове)"
+
+msgid "Defines simple text field types."
+msgstr "Надання простих текстових типів полів"
+
+msgid "User reference"
+msgstr "Посилання на користувача"
+
+msgid "Store the ID of a related user as an integer value."
+msgstr "Збереження ID пов'язаного користувача як ціле значення"
+
+msgid "User roles that can be referenced"
+msgstr "Ролі користувачів можуть бути пов'язані"
+
+msgid "User status that can be referenced"
+msgstr "Статус користувача може бути пов'язаний"
+
+msgid "%name: Invalid user."
+msgstr ""
+
+msgid "Reverse link"
+msgstr "Зворотнє посилання"
+
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr "При обранні, буде показано обернене посилання на вузол довідки на запису внесеного користувача."
+
+msgid "Userreference autocomplete"
+msgstr "Автозаповнення довідки користувачів"
+
+msgid "User Reference"
+msgstr "Посилання на користувача"
+
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Визначає тип поля для знаходження користувача з вузла."
+
+msgid "node reference autocomplete"
+msgstr ""
+
+msgid "Autocomplete Text Field"
+msgstr ""
+
+msgid "%name : Title mismatch. Please check your selection."
+msgstr ""
+
+msgid "<empty>"
+msgstr "<пусто>"
+
+msgid "Text Field"
+msgstr ""
+
+msgid "Node context"
+msgstr "Вміст матеріалу"
+
+msgid "Print"
+msgstr "Друк"
+
+msgid "Locked"
+msgstr "Заблоковано"
+
+msgid "Create field"
+msgstr ""
+
+msgid "No group"
+msgstr ""
+
+msgid "No fields have been added to this group."
+msgstr ""
+
+msgid "!label (!name)"
+msgstr "!label (!name)"
+
+msgid "Updated field groups."
+msgstr ""
+
+msgid "Updated field weights."
+msgstr ""
+
+msgid "Data settings"
+msgstr ""
+
+msgid "There are no groups configured for this content type."
+msgstr ""
+
+msgid "There are no fields configured for this content type."
+msgstr ""
+
+msgid "Updated group weights."
+msgstr ""
+
+msgid "The machine-readable name of the field.<br/>Allowed characters : unaccentuated a-z, numbers and _. All other characters will be discarded.<br/>You'll be able to choose a human-readable label for the field on next page"
+msgstr ""
+
+msgid "The field name %field_name is invalid."
+msgstr ""
+
+msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
+msgstr "Інструкції, що відобразяться користувачу нижче цього поля на формі редагування. <br />Дозволені HTML теги: @tags"
+
+msgid "Advanced Usage Only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format :<pre>!sample</pre>Using !link_devel 'devel load' tab on a %type content page might help you figure out the expected format."
+msgstr ""
+
+msgid "<none>"
+msgstr "<нема>"
+
+msgid "You're not allowed to input PHP code."
+msgstr "Вам недозволено ввожити PHP код"
+
+msgid "This PHP code was set by an administrator and will override any value specified above."
+msgstr "Код PHP був встановлений адміністратором і буде перезаписувати будь-які значенн, вказані вище"
+
+msgid "The default value PHP code returned an incorrect value<br/>Expected format : <pre>!sample</pre>Returned value : @value"
+msgstr ""
+
+msgid "Saved field %field."
+msgstr ""
+
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr ""
+
+msgid "database"
+msgstr ""
+
+msgid "The content fields table %name has been created."
+msgstr ""
+
+msgid "A content field from the referenced node."
+msgstr "Поле матеріалу з пов'язаного матеріалу"
+
+msgid "Configure how the label is going to be displayed"
+msgstr ""
+
+msgid "Field / Formatter"
+msgstr "Поле / Форматувальник"
+
+msgid "Select a field and formatter."
+msgstr "Оберіть поле і форматувальник"
+
+msgid "\"@s\" field @name"
+msgstr "\"@s\" поле @name"
+
+msgid "Do not group multiple values"
+msgstr ""
+
+msgid "Show first value only"
+msgstr ""
+
+msgid "Show last value only"
+msgstr ""
+
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr "Використання PHP для параметрів поля (небезпечно - використовуйте з обережністю)"
+
+msgid "A file has been pre-loaded for import."
+msgstr "Файл для втягування завантажено"
+
+msgid "An error has occured adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr ""
+
+msgid "An error has occured adding the field %field_label (%field_name).<br/>Please check the errors displayed for more details."
+msgstr ""
+
+msgid "The field %field_label (%field_name) was added to the content type %type, but an error has occured updating the field settings.<br/>Please check the errors displayed for more details."
+msgstr ""
+
+msgid "The field %field_label (%field_name) was added to the content type %type, but an error has occured updating the field's 'display_settings'.<br/>The db error is: '%db_err'."
+msgstr ""
+
+msgid "These settings apply to the group in the node editing form"
+msgstr ""
+
+msgid "Content fieldgroup"
+msgstr "Група полей матеріалу"
+
+msgid "Content fieldgroup content goes here."
+msgstr ""
+
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr "Всі поля з групи полей на вказаному вузлі."
+
+msgid "Text to display if group has no data. Note that title will not display unless overridden."
+msgstr "Текст для показу у випадку, коли у групі нема даних. Відмітьте, що заголовок не буде показано, хіба що не відбудетья відміна."
+
+msgid "\"@s\" fieldgroup @name"
+msgstr "\"@s\" група полей @name"
+
+msgid "%name: Found no valid post with that title."
+msgstr ""
+
+msgid "Node from reference"
+msgstr ""
+
+msgid "Adds a node from a node reference in a node context; if multiple nodes are referenced, this will get the first referenced node only."
+msgstr ""
+
+msgid "Node reference field"
+msgstr ""
+
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds). "
+msgstr ""
+
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr "Можливі значення цього поля. Введіть по одному значенню на строку, в форматі ключ|мітка. Ключ - значення, що буде збережене в базі даних, і воно має співпадати з типом збереження поля (%type). Мітка необов'язкова, і ключ буде використано замість неї, якщо вона не вказана.<br /> Дозволені мітки HTML: @tags"
+
+msgid "Advanced Usage Only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr ""
+
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr "Цей код PHP був встановлений адміністратором і замістить вищевказаний перелік дозволених значень."
+
+msgid "Create a list of options as a list in <strong>Allowed values</strong> or as an array in PHP code at the bottom of this page. These values will be the same for the %field in all content types. "
+msgstr ""
+
+msgid "For a 'Single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr ""
+
+msgid "The 'Checkboxes / radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr ""
+
+msgid "Set the option to the number of initial characters to filter by. Leave empty for full term; use 1 for an A/B/C style glossary."
+msgstr ""
+
+msgid "user reference autocomplete"
+msgstr ""
+
+msgid "%name : Invalid user."
+msgstr ""
+
+msgid "Reverse Link"
+msgstr ""
+
+msgid "Related Content"
+msgstr ""
+
+msgid "User from reference"
+msgstr ""
+
+msgid "Adds a user from a user reference in a node context; if multiple users are referenced, this will get the first referenced user only."
+msgstr ""
+
+msgid "User reference field"
+msgstr ""
+
+msgid "<div>The allowed values list for %field was updated from </div><pre>%start</pre><div> to </div><pre>%end</pre><div>You can go to the field settings page to give each option a more user-friendly label."
+msgstr ""
+
+msgid "<div>The allowed values list for %field was not changed from </div><pre>%start</pre>"
+msgstr ""
+
+msgid "Show @count value(s)"
+msgstr "Відображення @count значень"
+
+msgid "starting from @count"
+msgstr "починаючи з @count"
+
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Дозволені значення"
+
+msgid "%name: illegal value."
+msgstr "%name: значення некоректне."
+
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: значення не може бути довшим чим %max символів"
+
+msgid "Autocomplete matching"
+msgstr "Порівняння автозаповнення"
+
+msgid "Starts with"
+msgstr "Починається з"
+
+msgid "Load a referenced user"
+msgstr "Завантажити згаданого користувача"
+
+msgid "Content containing the user reference field"
+msgstr "Матеріал містить поле пов'язаного користувача"
+
+msgid "Referenced user"
+msgstr "Згаданий користувач"
+
+msgid "Load a referenced node"
+msgstr "Завантаження пов'язаного матеріалу"
+
+msgid "Content containing the node reference field"
+msgstr "Контент, що містить поле довідки вузлу"
+
+msgid "Referenced content"
+msgstr "Пов'язаний матеріал"
+
+msgid "Populate a field"
+msgstr "Заповнення поля"
+
+msgid "Select the machine-name of the field."
+msgstr "Вибір комп'ютерного імені поля"
+
+msgid "Revision information"
+msgstr "Інформація про зміни"
+
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
+msgstr "Оберіть метод збору підказок щодо автозаповнення. Зверніть увагу, що <em>Contains</em> може призвести до проблем з продуктивністю на сайтах з тисячами вузлів."
+
+msgid "View used to select the nodes"
+msgstr "Перегляд для вибору вузлів"
+
+msgid "%name: this post can't be referenced."
+msgstr "%name: Це повідомлення не можна внести в довідку."
+
+msgid "Node module form."
+msgstr "Форма модуля матеріалу"
+
+msgid "Locale module form."
+msgstr "Форма модуля перекладів"
+
+msgid "Taxonomy module form."
+msgstr "Форма модуля таксономії"
+
+msgid "Poll title"
+msgstr "Назва Голосування"
+
+msgid "'@column' => value for @column"
+msgstr "'@column' => значення для @column"
+
+msgid ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgstr ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+
+msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr "Створіть перелік опцій в формі <strong>Allowed values list</strong> або як набір в коді PHP. Ці значення будуть однаковими для %field у всіх типах контенту."
+
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Необхідно задавати 'дозвроені значення' для цього поля"
+
+msgid "Change basic information"
+msgstr "Зміна базової інформації"
+
+msgid "Fieldset"
+msgstr "Набір полей"
+
+msgid "Translation settings"
+msgstr "Параметри Перекладу"
+
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
+msgstr "Оберіть метод пошуку підказок автозаповнення. Зверніть увагу, що <em>Contains</em> може призвести до проблем з продуктивністю на сайтах з тисячами вузлів."
+
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: неспівпадіння заголовку. Будь ласка, провірте ваш вибір."
+
+msgid "Path settings"
+msgstr ""
+
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: значення повинно бути не меншим чим %min."
+
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: значення повинно бути не більшим чим %max."
+
+msgid "%name: found no valid user with that name."
+msgstr "%name: не знайдено дійсного користувача з таким ім'ям."
+
+msgid "Field label"
+msgstr ""
+
+msgid "Form settings"
+msgstr "Параметри форми"
+
+msgid "Type of group."
+msgstr "Тип групи"
+
+msgid "%name: this field cannot hold more that @count values."
+msgstr "%name: це поле не може отримати більше чим @count значень."
+
+msgid "If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays."
+msgstr "Якщо не обрано, кожен елемент поля буде створювати новий рядок, що може привести до дублів. Ці параметри несумісні з сортуванням таблиць при кліках на відображенні."
+
+msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Деякі оновлення все ще в черзі. Прохання повернутись до <a href=\"@update-php\">update.php</a> і запустити необхідні оновлення"
+
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr "Деякі оновлення ще знаходяться в черзі. <br/>Будь ласка, заново запустіть скрипт оновлення."
+
+msgid "Comment module form."
+msgstr ""
+
+msgid "Translation module form."
+msgstr ""
+
+msgid "Menu module form."
+msgstr "Форма модуля меню"
+
+msgid "Book module form."
+msgstr "Форма модуля Книг"
+
+msgid "Path module form."
+msgstr ""
+
+msgid "Poll module title."
+msgstr "Назва модуля голосувань"
+
+msgid "Poll module choices."
+msgstr "Варіанти модуля голосувань"
+
+msgid "Poll module settings."
+msgstr "Параметри модуля голосувань"
+
+msgid "Upload module form."
+msgstr "форма модуля Завантажень"
+
+msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Оновлення для модулів, пов'язаних з CCK, не відбуваються до включення модулів на <a href=\"@admin-modules-path\">administer modules page</a>. Коли ви включите їх, вам слід повернутись до <a href=\"@update-php\">update.php</a> і провести оновлення, що залишились."
+
+msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module має оновлення, але не може їх розпочати з-за відключення content.module. <br />Якщо і коли content.module буде включено, вам потрібно буде повторно запустити скрипт оновлення. Ви будете й надалі бачити це повідомлення, аж поки модуль не буде включено і оновлення пройдені."
+
+msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module має оновлення і доступний в папці модулів, але він не включений. <br />Якщо і коли його буде включено, вам потрібно буде повторно запустити скрипт оновлення. Ви будете й надалі бачити це повідомлення, аж поки модуль не буде включено і оновлення пройдені."
+
+msgid "CCK - No Views integration"
+msgstr "CCK - без інтеграції з Виглядама"
+
+msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
+msgstr "CCK - інтеграція з Виглядама потребує Views 6.x-2.0-rc2 або новіше"
+
+msgid "manage fields"
+msgstr "керування полями"
+
+msgid "» Add a new content type"
+msgstr "» Додавання нового типу матеріалу"
+
+msgid "@field_name (Locked)"
+msgstr "@field_name (Заблоковано)"
+
+msgid "This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled."
+msgstr "Цей тип матеріалу має неактивні поля. Неактивні поля не включені в список доступних до моменту вмикання їхніх модулів"
+
+msgid "!field (!field_name) is an inactive !field_type field that uses a !widget_type widget."
+msgstr "!field (!field_name) неактивне поле !field_type що використовує Візитку !widget_type."
+
+msgid "- Select a field type -"
+msgstr "- Вибір типу поля -"
+
+msgid "- Select a widget -"
+msgstr "- Вибір widget -"
+
+msgid "Field name (a-z, 0-9, _)"
+msgstr "Ім'я поля (a-z, 0-9, _)"
+
+msgid "Type of data to store."
+msgstr "Тип даних для збереження"
+
+msgid "Form element to edit the data."
+msgstr "Елемент форми для зміни даних"
+
+msgid "- Select an existing field -"
+msgstr "- Вибір наявного поля -"
+
+msgid "Field to share"
+msgstr "Поле для відображення"
+
+msgid "Group name (a-z, 0-9, _)"
+msgstr "Ім'я групи (a-z, 0-9, _)"
+
+msgid "Add new field: you need to provide a label."
+msgstr "Додавання нового поля: Вам потрібно вказати мітку"
+
+msgid "Add new field: you need to provide a field name."
+msgstr "Додавання нового поля: Вам потрібно вказати ім'я поля"
+
+msgid "Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Додавання нового поля: ім'я поля %field_name - некоректне. Ім'я повинно включати лише латинські символи, цифри і підкреслення"
+
+msgid "Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr "Додавання нового поля: ім'я поля %field_name надто довге. Ім'я обмежено 32 символами, включаючи префікс 'field_'"
+
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr "Додавання нового поля: ім'я 'field_instance' - зарезервовано"
+
+msgid "Add new field: the field name %field_name already exists."
+msgstr "Додавання нового поля: ім'я поля %field_name зайняте"
+
+msgid "Add new field: you need to select a field type."
+msgstr "Додавання нового поля: потрібно обрати тип поля"
+
+msgid "Add new field: you need to select a widget."
+msgstr "Додавання нового поля: вам потрібно обрати візитку"
+
+msgid "Add new field: invalid widget."
+msgstr "Додавання нового поля: некоректна візитка"
+
+msgid "Add existing field: you need to provide a label."
+msgstr "Існуюче поле: Вам потрібно вказати мітку"
+
+msgid "Add existing field: you need to select a field."
+msgstr "Існуюче поле: Вам потрібно обрати поле"
+
+msgid "Add existing field: you need to select a widget."
+msgstr "Існуюче поле: Вам потрібно обрати візитку"
+
+msgid "Add existing field: invalid widget."
+msgstr "Існуюче поле: некоректна візитка"
+
+msgid "The field %label cannot be added to a content type because it is locked."
+msgstr "Поле %label неможливо додати бо тип матеріалу заблокований"
+
+msgid "There are no fields configured for this content type. You can add new fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr "Відсутні поля для даного типу матеріалів. Ви можете додавати нові поля на сторінці <a href=\"@link\">Керування полями</a>"
+
+msgid "@type: @field (@label)"
+msgstr "@type: @field (@label)"
+
+msgid "Edit basic information"
+msgstr "Зміна базової інформації"
+
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr "Комп'ютерне ім'я поля. Змінити неможливо"
+
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr "Людиноподібне ім'я, що буде використано як мітка для цього поля в типі матеріалу %type"
+
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr "Тип даних, що бажаєте зберігати в базі даних з допомогою цього поля. Дана операція не може бути змінена."
+
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr "Тип елемента форми, що хочете відобразити користувачу, коли створюється це поле в типі матеріалу %type"
+
+msgid "Updated basic settings for field %label."
+msgstr "Оновлено базові параметри для поля %label."
+
+msgid "There was a problem updating the basic settings for field %label."
+msgstr "Виникла проблема оновлення базових параметрів для поля %label."
+
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr "Поле <strong>заблоковане</strong> і не може бути видалене"
+
+msgid "The field %field is locked and cannot be edited."
+msgstr "Поле %field заблоковане і не може бути зміненим"
+
+msgid "%type basic information"
+msgstr "%type базова інформація"
+
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr "Лише для досвідчених користувачів: код PHP, що надає значення за замовчуванням. Не повинен містити розмежовувачів <?php ?&gt. Якщо це поле заповнене, значення, надане цим кодом замістить будь-яке значення, вказане вгорі. Очікуваний формат: <pre>!sample</pre>Для визначення очікуваного формату ви можете скористатись закладкою <em>devel load</em>, наданою <a href=\"@link_devel\">devel module</a> на сторінці контенту %type."
+
+msgid "Maximum number of values users can enter for this field."
+msgstr "Максимальна кількість значень, що користувачі можуть вносити для цього поля"
+
+msgid "'Unlimited' will provide an 'Add more' button so the users can add as many values as they like."
+msgstr "'Необмежено' створить кнопку 'Додати ще', а отже користувачі зможуть додати скільки завгожно власних значенб"
+
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr "Код PHP для 'базового значення' повернув @value, що є некоректним"
+
+msgid "%name must be an integer."
+msgstr "%name повинно бути цілим"
+
+msgid "%name must be a positive integer."
+msgstr "%name повинно бути позитивним цілим"
+
+msgid "%name must be a number."
+msgstr "%name повинно бути номером"
+
+msgid "You should make sure that the used field exists in the given content type."
+msgstr "Вам потрібно впевнитись, що використовуване поле наявне в даному типі матеріалу"
+
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr "Розширене: Вкажіть значення полей кодом PHP"
+
+msgid "Advanced usage only: PHP code that returns the value to set. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content page might help you figure out the expected format."
+msgstr "Лише для досвідчених користувачів: код PHP, що надає значення для встановлення. Не повинен містити <?php ?> розмежовувачів. Якщо це поле заповнене, значення, надане цим кодом замістить будь-яке значення, вказане вгорі. Очікуваний формат: <pre>!sample</pre>Використання закладки <a href=\"@link_devel\">devel.module's</a> 'devel load'  на сторінці контенту може допомогти вам зрозуміти очікуваний формат."
+
+msgid "You have to return the default value in the expected format."
+msgstr "Потрібно повертати базове значення в передбаченому форматі"
+
+msgid "Populate @node's field '@field'"
+msgstr "Заповнення поля '@field' матеріалу @node"
+
+msgid "Field has value"
+msgstr "Поле має значення"
+
+msgid "You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value."
+msgstr "Вам потрібно переконатись, що дані поля наявні в вказаному типі матеріалу. Повертається TRUE, якщо обрані поля мають вказане значення."
+
+msgid "Field has changed"
+msgstr "Поле змінено"
+
+msgid "Content containing changes"
+msgstr "Матеріал містить зміни"
+
+msgid "Content not containing changes"
+msgstr "Матеріал без змін"
+
+msgid "@node's field '@field' has value"
+msgstr "поле @node '@field' має значення"
+
+msgid "Select the machine-name of the field to look at."
+msgstr "Вибір комп'ютерного імені показаному полю"
+
+msgid "@node's field '@field' has been changed"
+msgstr "Змінено поле '@field' матеріалу @node"
+
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr "Нефільтрований заголовок пов'язаного матеріалу. Увага - чистий ввід вмд користувача!"
+
+msgid "Formatted html link to the referenced node."
+msgstr "Форматоване HTML посилання до пов'язаного матеріалу"
+
+msgid "Relative path alias to the referenced node."
+msgstr "Відносна адреса до пов'язаного матеріалу"
+
+msgid "Absolute path alias to the referenced node."
+msgstr "Абсолютна адреса до пов'язаного матеріалу"
+
+msgid "Relative path alias to the referenced user."
+msgstr "ВІдносна адреса до пов'язаного користувача"
+
+msgid "Absolute path alias to the referenced user."
+msgstr "Абсолютна адреса до пов'язаного користувача"
+
+msgid "Field: @widget_label (@field_name) - @field_type"
+msgstr ""
+
+msgid "Field on the referenced node."
+msgstr ""
+
+msgid "Configure how the label is going to be displayed. This option takes no effect when \"Override title\" option is enabled, the specified block title is displayed instead."
+msgstr ""
+
+msgid "Field formatter"
+msgstr ""
+
+msgid "Select a formatter."
+msgstr ""
+
+msgid "\"@s\" field: @widget_label (@field_name) - @field_type"
+msgstr ""
+
+msgid "@label (!name)"
+msgstr "@label (!name)"
+
+msgid "@label (!name) - !column"
+msgstr "@label (!name) - !column"
+
+msgid "@label-truncated - !column"
+msgstr "@label-скорочена - !column"
+
+msgid "Appears in: @types"
+msgstr "Використана в: @types"
+
+msgid "<No value>"
+msgstr "<Без значення>"
+
+msgid "Widget label (@label)"
+msgstr "Мітка Візитки (@label)"
+
+msgid "Custom label"
+msgstr "Своя мітка"
+
+msgid "(first item is 0)"
+msgstr ""
+
+msgid "(start from last values)"
+msgstr ""
+
+msgid "The delta allows you to select which item in a multiple value field to key the relationship off of. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Допустима похибка дозволяє вам обрати, який елемент в полі з декількома значеннями буде відмикати взаємозв'язок. Оберіть \"1\"  для використання першого елемента, \"2\" для другого елемента, і так далі. Якщо ви оберете \"All\", кожен елемент у полі створить новий рядок, що, можливо, створить копії."
+
+msgid "The delta allows you to select which item in a multiple value field will be used for sorting. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Допустима похибка дозволяє вам обрати, який елемент в полі з декількома значеннями буде використовуватись для сортування. Оберіть \"1\"  для використання першого елемента, \"2\" для другого елемента, і так далі. Якщо ви оберете \"All\", кожен елемент у полі створить новий рядок, що, можливо, створить копії."
+
+msgid "You need to provide a label."
+msgstr "Необхідно вказати мітку"
+
+msgid "You need to provide a group name."
+msgstr "Необхідно вказати ім'я групи"
+
+msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Назва групи %group_name недійсна. Назва має містити лише малі ненаголошені літери, цифри та підкреслення."
+
+msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
+msgstr "Назва групи %group_name занадто довга. Назва обмежена 32 символами, включаючи префікс 'group_'."
+
+msgid "The group name %group_name already exists."
+msgstr "Назва групи %group_name вже існує."
+
+msgid "Add new group:"
+msgstr "Додати нову групу:"
+
+msgid "Add new group: you need to provide a label."
+msgstr "Додати нову групу: потрібно вказати мітку."
+
+msgid "Add new group: you need to provide a group name."
+msgstr "Додати нову групу: потрібно вказати ім'я групи"
+
+msgid "Standard group"
+msgstr "Стандартна група"
+
+msgid "Create display groups for CCK fields."
+msgstr "Створення групи відображення полів CCK"
+
+msgid "Field group: @group in @type"
+msgstr ""
+
+msgid "All fields from this field group on the referenced node."
+msgstr ""
+
+msgid "Field group label"
+msgstr ""
+
+msgid "Configure how the field group label is going to be displayed. This option takes no effect when \"Override title\" option is enabled, the specified block title is displayed instead."
+msgstr ""
+
+msgid "Fieldset - Collapsible"
+msgstr ""
+
+msgid "Fieldset - Collapsed"
+msgstr ""
+
+msgid "Field group format"
+msgstr ""
+
+msgid "This option allows you to configure the field group format."
+msgstr ""
+
+msgid "\"@s\" field group: @group in @type"
+msgstr ""
+
+msgid "Note that if the field has multiple values, only the first content node will be loaded."
+msgstr "Відмітьте, що якщо поле містить численні значення, лише перший вузол контенту буде завантажено."
+
+msgid "There are no nodereference fields defined."
+msgstr "Не визначено жодного поля довідки вузлів."
+
+msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
+msgstr ""
+
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+
+msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+msgid "%name: invalid input."
+msgstr "%name: неправильне введення"
+
+msgid "%name: found no valid post with that title."
+msgstr "%name: не знайдено дійсного повідомлення з таким заголовком."
+
+msgid "Only numbers and decimals are allowed in %field."
+msgstr "Тільки числа і десяткові значення дозволені в полі %field."
+
+msgid "Only numbers are allowed in %field."
+msgstr "Тільки числа дозволені в полі %field."
+
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
+msgstr "Лише цифри та знак дробу (%decimal) дозволені в %field."
+
+msgid "Note that if the field has multiple values, only the first user will be loaded."
+msgstr "Відмітьте, що якщо у поля є численні значення, завантажиться лише перший користувач."
+
+msgid "There are no userreference fields defined."
+msgstr "Немає зазначених полей пов'язаного користувача"
+
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Розширено - Користувачі, що можуть бути пов'язані (Вигляд)"
+
+msgid "View used to select the users"
+msgstr "Вигляд використано для вибору користувачів"
+
+msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
+msgstr ""
+
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
+msgstr ""
+
+msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+msgid "%name: invalid user."
+msgstr "%name: некоректний користувач."
+
+msgid "New field"
+msgstr "Нове поле"
+
+msgid "Existing field"
+msgstr "Існуюче поле"
+
+msgid "New group"
+msgstr "Нова група"
+
+msgid "Add fields and groups to the content type, and arrange them on content display and input forms."
+msgstr "Додати поля та групи до типу контенту, і впорядкувати їх на єкранах контенту та формах введення."
+
+msgid "You can add a field to a group by dragging it below and to the right of the group."
+msgstr "Ви можете додати поле до групи, перетянувши його вниз і вправо від групи."
+
+msgid "Note: Installing the <a href=\"!adv_help\">Advanced help</a> module will let you access more and better help."
+msgstr "Зверніть увагу: Встановлення модуля <a href=\"!adv_help\">Advanced help</a> дозволить вам звертатись за більш обсяжною та точнішою допомогою."
+
+msgid "Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template."
+msgstr "Користуйтесь відміткою 'виключити' для виключення елемента з значення !content, переданого до шаблону вузла."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/uk.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/uk.po
new file mode 100644
index 0000000..4999083
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/uk.po
@@ -0,0 +1,1754 @@
+# Ukrainian translation of Content Construction Kit (CCK) (all releases)
+# Copyright (c) 2009 by the Ukrainian translation team
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Content Construction Kit (CCK) (all releases)\n"
+"POT-Creation-Date: 2009-10-08 19:18+0000\n"
+"PO-Revision-Date: 2009-10-08 22:19+0200\n"
+"Language-Team: Ukrainian <podarok at ua.fm>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"
+"Last-Translator: podarok <podarok at ua.fm>\n"
+"X-Poedit-Language: Ukrainian\n"
+"X-Poedit-Country: UKRAINE\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "CCK"
+msgstr "CCK"
+
+msgid "delete"
+msgstr "видалити"
+
+msgid "Prefix"
+msgstr "Префікс"
+
+msgid "Suffix"
+msgstr "Суфікс"
+
+msgid "Submit"
+msgstr "Надіслати"
+
+msgid "Operations"
+msgstr "Дії"
+
+msgid "Content"
+msgstr "Вміст"
+
+msgid "content"
+msgstr "вміст"
+
+msgid "Groups"
+msgstr "Групи"
+
+msgid "Group"
+msgstr "Група"
+
+msgid "Type"
+msgstr "Тип"
+
+msgid "Cancel"
+msgstr "Скасувати"
+
+msgid "Remove"
+msgstr "Вилучити"
+
+msgid "Description"
+msgstr "Опис"
+
+msgid "Language"
+msgstr "Мова"
+
+msgid "Block title"
+msgstr "Назва блоку"
+
+msgid "Taxonomy"
+msgstr "Таксономія"
+
+msgid "Yes"
+msgstr "Так"
+
+msgid "No"
+msgstr "Ні"
+
+msgid "!date — !username"
+msgstr "!date — !username"
+
+msgid "Content types"
+msgstr "Типи матеріалів"
+
+msgid "Edit"
+msgstr "Редагувати"
+
+msgid "Search"
+msgstr "Пошук"
+
+msgid "None"
+msgstr "Жодного"
+
+msgid "Display settings"
+msgstr "Параметри відображення"
+
+msgid "This action cannot be undone."
+msgstr "Цю дію не можна буде скасувати."
+
+msgid "Number"
+msgstr "Число"
+
+msgid "- None -"
+msgstr "- Немає -"
+
+msgid "Weight"
+msgstr "Вага"
+
+msgid "Help text"
+msgstr "Довідковий текст"
+
+msgid "Types"
+msgstr "Типи"
+
+msgid "Required"
+msgstr "Необхідний"
+
+msgid "none"
+msgstr "нічого"
+
+msgid "Name"
+msgstr "Назва"
+
+msgid "edit"
+msgstr "редагувати"
+
+msgid "Import"
+msgstr "Імпорт"
+
+msgid "Book"
+msgstr "Книга"
+
+msgid "Export"
+msgstr "Експорт"
+
+msgid "Field"
+msgstr "Поле"
+
+msgid "Label"
+msgstr "Заголовок"
+
+msgid "Save"
+msgstr "Зберегти"
+
+msgid "Default"
+msgstr "Типовий"
+
+msgid "Update"
+msgstr "Оновити"
+
+msgid "Add"
+msgstr "Додати"
+
+msgid "remove"
+msgstr "видалити"
+
+msgid "View"
+msgstr "Перегляд"
+
+msgid "Format"
+msgstr "Формат"
+
+msgid "hidden"
+msgstr "сховане"
+
+msgid "Teaser"
+msgstr "Анонс"
+
+msgid "Text"
+msgstr "Текст"
+
+msgid "<none>"
+msgstr "<немає>"
+
+msgid "Content type"
+msgstr "Тип вмісту"
+
+msgid "Continue"
+msgstr "Продовжити"
+
+msgid "Configure"
+msgstr "Управління"
+
+msgid "Node"
+msgstr "Матеріал"
+
+msgid "Include"
+msgstr "Включення"
+
+msgid "Exclude"
+msgstr "Виключення"
+
+msgid "All"
+msgstr "Все"
+
+msgid "Active"
+msgstr "Діючий"
+
+msgid "View arguments"
+msgstr "Аргументи вигляду"
+
+msgid "RSS"
+msgstr "RSS"
+
+msgid "Inline"
+msgstr "Вбудоване"
+
+msgid "Delta"
+msgstr "Різниця"
+
+msgid "Custom"
+msgstr "Власний"
+
+msgid "Poll choices"
+msgstr "Варіанти голосів"
+
+msgid "Content field"
+msgstr "Поле матеріалу"
+
+msgid "Field name"
+msgstr "Ім'я поля"
+
+msgid "Field type"
+msgstr "Тип поля"
+
+msgid "Global settings"
+msgstr "Глобальні настройки"
+
+msgid "Multiple values"
+msgstr ""
+
+msgid "Fields"
+msgstr "Поля"
+
+msgid "Widget type"
+msgstr "Тип Візитки"
+
+msgid "Widget settings"
+msgstr ""
+
+msgid "Contains"
+msgstr "Містить"
+
+msgid "N/A"
+msgstr "н/п"
+
+msgid "configure"
+msgstr "налаштувати"
+
+msgid "Advanced"
+msgstr "Додатково"
+
+msgid "This field is required."
+msgstr "Це поле - обов'язкове."
+
+msgid "Maximum"
+msgstr "Найбільше"
+
+msgid "Scale"
+msgstr "Маштаб"
+
+msgid "Plain text"
+msgstr "Чистий текст"
+
+msgid "Widget"
+msgstr "Віджет"
+
+msgid "Unlimited"
+msgstr "Необмежено"
+
+msgid "Code"
+msgstr "Код"
+
+msgid "General"
+msgstr "Загальне"
+
+msgid "group"
+msgstr "група"
+
+msgid "Basic"
+msgstr "Базовий"
+
+msgid "Filtered text (user selects input format)"
+msgstr "Фільтрований текст (користувач обирає вхідний формат)"
+
+msgid "Text processing"
+msgstr "Обробка тексту"
+
+msgid "Maximum length"
+msgstr "Максимальна довжина"
+
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "Максимальне значення поля в знаках. Залишіть пустим для необмеженого розміру."
+
+msgid "%label is longer than %max characters."
+msgstr "%label містить більше ніж %max дозволених символів."
+
+msgid "Rows"
+msgstr "Рядки"
+
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"Рядки\" повинні бути додатнім цілим числом."
+
+msgid "Existing Views"
+msgstr "Доступні види"
+
+msgid "Default Views"
+msgstr "Базові види"
+
+msgid "Empty text"
+msgstr "Пустий текст"
+
+msgid "Order"
+msgstr "Замовлення"
+
+msgid "Integer"
+msgstr "Ціле"
+
+msgid "Edit group"
+msgstr "Змінити групу"
+
+msgid "Add group"
+msgstr "Додати групу"
+
+msgid "Full"
+msgstr "Повністю"
+
+msgid "Size of textfield"
+msgstr "Розмір текстового поля"
+
+msgid "File attachments"
+msgstr "Приєднані файли"
+
+msgid "Show"
+msgstr "Показати"
+
+msgid "Token"
+msgstr "Токен"
+
+msgid "Allowed values list"
+msgstr "Список допустимих значень"
+
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database and it must match the field storage type, %type. The label is optional and the key will be used as the label if no label is specified."
+msgstr ""
+
+msgid "Select List"
+msgstr "Список"
+
+msgid "Select list"
+msgstr "Список"
+
+msgid "Text field"
+msgstr "Текстове поле"
+
+msgid "body"
+msgstr "тіло"
+
+msgid "PHP code"
+msgstr "код PHP"
+
+msgid "Display fields"
+msgstr "Відображення полів"
+
+msgid "Blocked"
+msgstr "Заблоковано"
+
+msgid "Poll settings"
+msgstr "Параметри голосування"
+
+msgid "Style"
+msgstr "Стиль"
+
+msgid "Your settings have been saved."
+msgstr "Ваші параметри збережено"
+
+msgid "Reversed"
+msgstr ""
+
+msgid "%type settings"
+msgstr "Параметри для %type"
+
+msgid "Menu settings"
+msgstr "Налаштування меню"
+
+msgid "edit "
+msgstr "редагування "
+
+msgid "Illegal value for %name."
+msgstr "Недозволене значення %name."
+
+msgid "<Hidden>"
+msgstr "<Приховано>"
+
+msgid "Comment settings"
+msgstr "Налаштування коментарів"
+
+msgid "Related content"
+msgstr "Схожий матеріал"
+
+msgid "Processing"
+msgstr "Обробка"
+
+msgid "Default value"
+msgstr "Базове значення"
+
+msgid "No content types available."
+msgstr "Немає доступних типів матеріалів."
+
+msgid "Simple"
+msgstr "Просте"
+
+msgid "Above"
+msgstr "Над"
+
+msgid "Number of values"
+msgstr "Кількість значень"
+
+msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
+msgstr "Попередження! Зміна цих значень після створення даних можуть призвести до втрат даних!"
+
+msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible thr [...]
+msgstr "Модуль контенту, обов'язковий компонент Набору побудови контенту (CCK), дозволяє адміністраторам пов'язувати користувацькі поля з типами контенту. В Друпал, типи контенту використовуються для визначення характеристик повідомлення, включаючи заголовок і опис полей, вказаних на сторінках редагування та додавання. Використовуючи модуль контенту (та інші допоміжні модулі в CCK), можна додавати інші користувацькі поля крім полей \"Title\" and \"Body\" за замовчуванням. Можливості CCK  [...]
+
+msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatica [...]
+msgstr "При доданні користувацького поля до типу контенту ви визначаєте його тип (чи воно буде містити текст, числа чи посилання на інші об'єкти) і те, як воно буде показане (або у вигляді текстового поля, прямокутника з варіантами, відмітками багатозначного чи однозначного вибору, чи автозаповнювальним полем). Поле може мати декілька значень (наприклад, \"person\"  може містити декілька адрес електронної пошти) або єдине значення (наприклад, \"employee\" містить один ідентифікаційний но [...]
+
+msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
+msgstr "Користувацькі типи полів надаються набором додаткових модулів, включених з CCK (кожен модуль підтримує різний тип). <a href=\"@modules\">modules page</a> дозволяє вам вмикати та вимикати складові CCK. Стандартне встановлення CCK включає в себе:"
+
+msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
+msgstr "<em>number</em>, що додає числові типи полей, у цілій, дробній чи з плаваючою комою формі чисел. Ви можете визначити набір дозволених даних для введення, або вказати допустимий окіл значень. В асортименті є набір звичайних форматів для показу числових даних."
+
+msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
+msgstr "<em>text</em>, що додає текстові типи полей. Текстове поле може містити лише простий текст, або, за бажанням, може використовувати фільтри формату вводу Drupal'у для безпечної роботи з введенням збагаченого тексту. Поля введення текту можуть бути у вигляді одної строки, декількох строк (текстового поля), або для більшого контролю,  прямокутника з варіантами, відмітками багатозначного чи однозначного вибору. За бажанням, CCK може звірювати введене з набором дозволених значень"
+
+msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
+msgstr "<em>nodereference</em>, що створює користувацькі посилання між вузлами Drupal. Наприклад, додаючи поле <em>nodereference</em> і два різних типа контенту, ви можете з легкістю створювати складні спадкові стосунки між даними (декілька вузлів \"employee\" можуть містити поле <em>nodereference</em>, що пов'язує їх з вузлом \"employer\")."
+
+msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
+msgstr "<em>userreference</em>, що створює користувацькі посилання на рахунки користувачів вашого сайту. Додаючи поле <em>userreference</em>, ви можете створювати складні взаємозв'зки між користувачами та повідомленнями вашого сайту. Наприклад, для відслідковування участі користувачів у повідомленні понад стандартного поля Drupal <em>Authored by</em>, додайте поле <em>userreference</em> з назвою \"Edited by\" до типу контенту, щоб зберегти посилання на сторінку рахунку редактора повідомлення."
+
+msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
+msgstr "<em>fieldgroup</em>, що створює розбірні набори полів для фіксування групи пов'язаних полів. Набір полів може бути відкритим чи закритим за замовчуванням. Порядок ваших наборів полів, а також порядок полів в наборі, управляється через перетягування у інтерфейсі, наданому модулем контенту."
+
+msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
+msgstr "Для додаткової інформації читайте розділ довідника <a href=\"@handbook-cck\">CCK</a> на сторінці <a href=\"@project-cck\">CCK проекту</a>."
+
+msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
+msgstr "Налаштувати те, як поля цього типу контенту та мітки полів повинні бути показані в режимах короткого та повного перегляду."
+
+msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
+msgstr "Налаштувати те, як поля цього типу контенту повинні бути показані під час обробки в наступних контекстах."
+
+msgid "Control the order of fields in the input form."
+msgstr "Налаштування послідовності полів у формі вводу."
+
+msgid "!title: !required"
+msgstr "!title: !required"
+
+msgid "Add another item"
+msgstr "Додати інший елемент"
+
+msgid "Full node"
+msgstr "Повний матеріал"
+
+msgid "RSS Item"
+msgstr ""
+
+msgid "Search Index"
+msgstr "База пошуку"
+
+msgid "Search Result"
+msgstr "Результат пошуку"
+
+msgid "Updating field type %type with module %module."
+msgstr "Оновлення типу поля %type модулем %module."
+
+msgid "Updating widget type %type with module %module."
+msgstr "Оновлення типу Візитки %type модулем %module."
+
+msgid "Manage fields"
+msgstr "Керувати полями"
+
+msgid "Add field"
+msgstr "Додати поле"
+
+msgid "Remove field"
+msgstr "Видалення поля"
+
+msgid "Allows administrators to define new content types."
+msgstr "Дозволяє адміністраторам задавати новий тип матеріалу"
+
+msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr "Лише для досвідчених користувачів: код PHP, що видає відповідний набір дозволених значень. Не повинен включати розмежовувачів <?php ?&gt. Якщо це поле заповнене, набір, виданий цім кодом, замістить вищевказаний перелік дозволених значень."
+
+msgid "Trimmed"
+msgstr "Скорочене"
+
+msgid "Text area"
+msgstr "Текстове поле"
+
+msgid "Used in"
+msgstr "Використано в"
+
+msgid "No fields have been defined for any content type yet."
+msgstr "Жодних полів ще не задано для жодного типу матеріалів"
+
+msgid "There are no fields configured for this content type. You can !link."
+msgstr "Немає полів налаштованих на використання в цьому типі контенту. Ви можете !link."
+
+msgid "Add a new field"
+msgstr "Додати нове поле"
+
+msgid "To change the order of a field, grab a drag-and-drop handle under the Label column and drag the field to a new location in the list. (Grab a handle by clicking and holding the mouse while hovering over a handle icon.) Remember that your changes will not be saved until you click the Save button at the bottom of the page."
+msgstr ""
+
+msgid "no styling"
+msgstr "без стилю"
+
+msgid "simple"
+msgstr "просто"
+
+msgid "fieldset"
+msgstr "група полів"
+
+msgid "fieldset - collapsible"
+msgstr "група полів - здатна звертатись"
+
+msgid "fieldset - collapsed"
+msgstr "група полів - звернута"
+
+msgid "Add existing field"
+msgstr ""
+
+msgid "Create new field"
+msgstr "Створити нове поле"
+
+msgid "The machine-readable name of the field. This name cannot be changed later! The name will be prefixed with 'field_' and can include lowercase unaccented letters, numbers, and underscores. You'll be able to choose a human-readable label for the field on next page."
+msgstr "Системна назва поля. Цю назву <strong>неможна</strong> буде змінити згодом! До назви буде додано префікс 'field_'. Назва може містити прописні ненаголошені букви латинського алфавіту, цифри та символи нижнього підкреслення. Ви будете мати можливість ввести назву поля, яка буде відображатися для користувачів, на наступній сторінці."
+
+msgid "No field modules are enabled. You need to <a href=\"!modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr ""
+
+msgid "Choose the type of value to store and an input method from the list below."
+msgstr ""
+
+msgid "Added field %label."
+msgstr "Додано поле %label"
+
+msgid "There was a problem adding field %label."
+msgstr "Виникла проблема додавання поля %label."
+
+msgid "The field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Назва поля %field_name неправильна. Назва може містити прописні ненаголошені букви латинського алфавіту, цифри та символи нижнього підкреслення."
+
+msgid "The field name %field_name already exists."
+msgstr "Назва поля %field_name вже існує."
+
+msgid "The name 'field_instance' is a reserved name."
+msgstr "Назва 'field_instance' зарезервована."
+
+msgid "Created field %label."
+msgstr "Створити поле %label."
+
+msgid "There was a problem creating field %label."
+msgstr "Виникла проблема створення поля %label."
+
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Ви впевнені, що хочете видалити поле %field?"
+
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Якщо в даному полі знаходиться якийсь матеріал - він буде втрачений. Це незворотня операція"
+
+msgid "Removed field %field from %type."
+msgstr "Видалено поле %field із %type."
+
+msgid "There was a problem deleting %field from %type."
+msgstr "Виникла проблема видалення %field із %type."
+
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Ці параметри застосовуються тільки до поля %field так як знаходиться в типі матеріалу %type"
+
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr ""
+
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format :<pre>!sample</pre>Using !link_devel's 'devel load' tab on a %type content page might help you figure out the expected format."
+msgstr ""
+
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Ці параметри застосовуються до поля %field в кожному типі матеріалів, в якому воно використовуються."
+
+msgid "Select a specific number of values for this field, or 'Unlimited' to provide an 'Add more' button so the users can add as many values as they like."
+msgstr ""
+
+msgid "Save field settings"
+msgstr "Збереження параметрів поля"
+
+msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
+msgstr "Код PHP значення за замовчуванням видав неправильне значення.<br/>Очікуваний формат: <pre>!sample</pre> Видане значення: @value"
+
+msgid "The default value PHP code created @value which is invalid."
+msgstr ""
+
+msgid "The default value is invalid."
+msgstr "Базове значення некоректне"
+
+msgid "Saved field %label."
+msgstr "Збережено поле %label"
+
+msgid "The update has encountered an error."
+msgstr "Оновлення викликало помилку"
+
+msgid "The database has been altered and data has been migrated or deleted."
+msgstr "База даних змінена і дані переміщено або видалено."
+
+msgid "An error occurred and database alteration did not complete."
+msgstr "Виникла помилка і зміни в базі даних незавершені."
+
+msgid "Processing %title"
+msgstr "Обробка %title"
+
+msgid "1 item successfully processed:"
+msgid_plural "@count items successfully processed:"
+msgstr[0] "вдало оброблено @count елемент:"
+msgstr[1] "вдало оброблено @count елементи:"
+msgstr[2] "вдало оброблено @count елементів:"
+
+msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
+msgstr "Таблиця %old_name полей матеріалу була перейменована в %new_name і елементи полей були оновлені"
+
+msgid "The content fields table %name has been deleted."
+msgstr "Таблиця %name полей матеріалу була видалена"
+
+msgid "Add another !field value"
+msgstr "Додати інше значення !field"
+
+msgid "If the amount of boxes above isn't enough, click here to add more items."
+msgstr ""
+
+msgid "Referenced node ID"
+msgstr "ID пов'язаного матеріалу"
+
+msgid "Referenced node title"
+msgstr "Заголовок пов'язаного матеріалу"
+
+msgid "Formatted HTML link to the node"
+msgstr ""
+
+msgid "Raw number value"
+msgstr "Чисте значення номера"
+
+msgid "Formatted number value"
+msgstr "Форматоване значення номера"
+
+msgid "Raw, unfiltered text"
+msgstr "Чистий, нефільтрований текст"
+
+msgid "Formatted and filtered text"
+msgstr "Форматований і фільтрований текст"
+
+msgid "Referenced user ID"
+msgstr "ID пов'язаного користувача"
+
+msgid "Referenced user name"
+msgstr "Ім'я пов'язаного користувача"
+
+msgid "Formatted HTML link to referenced user"
+msgstr "Форматоване HTML посилання до пов'язаного користувача"
+
+msgid "Appears in : @types"
+msgstr "З'являється в : @types"
+
+msgid "Group multiple values"
+msgstr "Багато значень групи"
+
+msgid " values,"
+msgstr " значення,"
+
+msgid "Starting from"
+msgstr "Починати з"
+
+msgid "Start from last values"
+msgstr "Починати з останнього значення"
+
+msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
+msgstr "Ця форма обробить тип контенту та одне або декілька полів цього типу, та експортує налаштування. Експортування, створене цим процесом, можна копіювати та вставляти як імпортування у поточну або будь-яку іншу базу даних. Імпортування додасть поля в існуючий тип контенту або створить новий тип контенту, що включає обрані поля."
+
+msgid "Select the content type to export."
+msgstr "Вибір типу матеріалу для вивантаження"
+
+msgid "Select the group definitions to export from %type."
+msgstr ""
+
+msgid "Select the field definitions to export from %type."
+msgstr ""
+
+msgid "Export data"
+msgstr "Вивантаження даних"
+
+msgid "Copy the export text and paste it into another content type using the import function."
+msgstr "Скопіюйте текст експорту та вставте його в інший тип контенту, використовуючи функцію імпорту."
+
+msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
+msgstr "Ця форма імпортує визначення полів, експортовані з іншого типу контенту або іншої бази даних. <br/>Зверніть увагу, що поля не можна копіювати всередині одного типу контенту, так що імпортовані поля будуть додані лише у тому випадку, якщо вони ще не існують в обраному типу."
+
+msgid "<Create>"
+msgstr "<Створення>"
+
+msgid "Select the content type to import these fields into.<br/>Select <Create> to create a new content type to contain the fields."
+msgstr "Оберіть тип контенту для імпортування вказаних полів. <br/>Оберіть <Create> для створення нового типу контенту для вміщення полів."
+
+msgid "Import data"
+msgstr "Втягування даних"
+
+msgid "Paste the text created by a content export into this field."
+msgstr "Вставте текст, створений експортуванням контенту, у це поле."
+
+msgid "The import data is not valid import text."
+msgstr "Дані для втягування не є коректними"
+
+msgid "The following modules must be enabled for this import to work: %modules."
+msgstr "Наступні модулі слід включити для роботи цього імпортування: %modules."
+
+msgid "<create>"
+msgstr "<Створення>"
+
+msgid "The content type %type already exists in this database."
+msgstr "Тип матеріалу %type вже міститься в базі даних."
+
+msgid "Exiting. No import performed."
+msgstr "Вихід. Не виконано втягування;"
+
+msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr "Трапилась помилка при доданні типу контенту %type.<br/>Будь ласка, прогляньте вказані помилки для докладних деталей."
+
+msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
+msgstr "Втягнуте поле %field_label (%field_name) не було додано до %type через те, що поле вже існує в %type."
+
+msgid "The field %field_label (%field_name) was added to the content type %type."
+msgstr "Поле %field_label (%field_name) додано до типу матеріалів %type."
+
+msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
+msgstr "Трапилась помилка при експортуванні даних 'показу налаштувань' для поля %field_name.<br/> Помилка бази даних наступна: '%db_err'."
+
+msgid "Content Copy"
+msgstr "Копіювання матеріалів"
+
+msgid "Enables ability to import/export field definitions."
+msgstr "Включає здатність імпортувати/експортувати визначення полей."
+
+msgid "field_name"
+msgstr "ім'я поля"
+
+msgid "view "
+msgstr "вигляд "
+
+msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
+msgstr "Будь ласка негайно <a href=\"!url\">configure your field permissions</a>. Всі поля за замовчуванням недоступні."
+
+msgid "Content Permissions"
+msgstr "Доступи до матеріалів"
+
+msgid "Set field-level permissions for CCK fields."
+msgstr "Встановіть дозволи рівнів полей для полей CCK."
+
+msgid "These settings apply to the group in the node editing form."
+msgstr "Ці параметри використовувати до групи в формі редагування матеріалу"
+
+msgid "always open"
+msgstr "завжди відкрите"
+
+msgid "collapsible"
+msgstr "можливість звертання"
+
+msgid "collapsed"
+msgstr "звернуто"
+
+msgid "Instructions to present to the user on the editing form."
+msgstr "Інструкції, що відображаються користувачу на формі редагування"
+
+msgid "These settings apply to the group on node display."
+msgstr "Ці налаштування стосуються групи на екрані вузлів."
+
+msgid "A description of the group."
+msgstr "Опис групи"
+
+msgid "The group name %name already exists."
+msgstr "Назва групи %name вже існує."
+
+msgid "The group name %name is invalid."
+msgstr "Назва групи %name неправильна."
+
+msgid "Are you sure you want to remove the group %label?"
+msgstr "Ви впевнені, що хочете видалити групу %label?"
+
+msgid "The group %group_name has been removed."
+msgstr "Групу %label видалено"
+
+msgid "Display in group"
+msgstr "Відображати в групі"
+
+msgid "Select a group, in which the field will be displayed on the editing form."
+msgstr ""
+
+msgid "Fieldgroup"
+msgstr "Група полів"
+
+msgid "Create field groups for CCK fields."
+msgstr "Створити групи для для CCK полів"
+
+msgid "Node reference"
+msgstr "Посилання на матеріал"
+
+msgid "Store the ID of a related node as an integer value."
+msgstr "Зберегти ІН пов'язаного вузлу цілим числом."
+
+msgid "Content types that can be referenced"
+msgstr "Типи контенту, що мона ввести в довідку"
+
+msgid "Advanced - Nodes that can be referenced (View)"
+msgstr "Розширене - вузли, що можна внести в довідку (Переглянути)"
+
+msgid "Choose the \"Views module\" view that selects the nodes that can be referenced.<br>Note :<ul><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+
+msgid "Provide a comma separated list of arguments to pass to the view."
+msgstr "Надайте перелік аргументів, розділений комами, для передачи на перегляд."
+
+msgid "%name : This post can't be referenced."
+msgstr ""
+
+msgid "Title (link)"
+msgstr "Назва(посилання)"
+
+msgid "Title (no link)"
+msgstr "Назва(без посилання)"
+
+msgid "Autocomplete text field"
+msgstr "Текстове поле автозаповнення"
+
+msgid "%name: Title mismatch. Please check your selection."
+msgstr ""
+
+msgid "Nodereference autocomplete"
+msgstr "Автодоповнення посилання на матеріал"
+
+msgid "Node Reference"
+msgstr "Посилання на матеріал"
+
+msgid "Defines a field type for referencing one node from another."
+msgstr "визначає тип поля для відрізняння одного вузла від іншого."
+
+msgid "Store a number in the database as an integer."
+msgstr "Зберегти як ціле число в базі даних."
+
+msgid "Decimal"
+msgstr "Десяткове"
+
+msgid "Store a number in the database in a fixed decimal format."
+msgstr "Зберегти як фіксоване дробне число в базі даних."
+
+msgid "Float"
+msgstr "Плаваюче"
+
+msgid "Store a number in the database in a floating point format."
+msgstr "Зберегти як число з плаваючою комою в базі даних."
+
+msgid "Minimum"
+msgstr "Найменше"
+
+msgid "Precision"
+msgstr "Точність"
+
+msgid "The total number of digits to store in the database, including those to the right of the decimal."
+msgstr "Загальне число цифр для збереження в базі даних, включаючи ті, що справа від знаку дробу."
+
+msgid "The number of digits to the right of the decimal."
+msgstr "Кількість цифр справа від знаку дробу."
+
+msgid "Decimal marker"
+msgstr "Десятковий розділювач"
+
+msgid "The character users will input to mark the decimal point in forms."
+msgstr "Знак, який користувачі введуть для відмічення знаку дробу у формах."
+
+msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Визначіть строку-префікс для значення, наприклад $ або €. Залишіть пустим для нічого. Розділіть значення однини та множини знаком | (фунт|фунти)."
+
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
+msgstr "Визначіть строку-суфікс для значення, наприклад m², m/s², kb/s. Залишіть пустим для нічого. Розділіть значення однини та множини знаком | (фунт|фунти)."
+
+msgid "Allowed values"
+msgstr "Дозволені значення"
+
+msgid "\"Minimum\" must be a number."
+msgstr "\"Найменше\" повинно бути числом."
+
+msgid "\"Maximum\" must be a number."
+msgstr "\"Найбільше\" повинно бути числом"
+
+msgid "The value of %name may be no smaller than %min."
+msgstr "%name: значення повинно бути не меншим чим %min."
+
+msgid "The value of %name may be no larger than %max."
+msgstr "%name: значення повинно бути не більшим чим %max."
+
+msgid "unformatted"
+msgstr "неформатоване"
+
+msgid "Only numbers and decimals are allowed in %field. %start was changed to %value."
+msgstr ""
+
+msgid "Only numbers are allowed in %field. %start was changed to %value."
+msgstr ""
+
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field. %start was changed to %value."
+msgstr ""
+
+msgid "Defines numeric field types."
+msgstr "Зазначення числових типів полей"
+
+msgid "Create a list of options as a list in <strong>Allowed values</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr ""
+
+msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr "Для віджету 'один прямокутник з варіантами ввімнути/вимкнути' визначіть спочатку значення 'вимкнути', а потім значення 'ввімкнути' у розділі <strong>Allowed values</strong>. Зверніт увагу, прямокутник буде помічено міткою значення  'ввімкнути'."
+
+msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr "Віджет 'прямокутники з варіантами' буде показувати багатоваріантний вибір, якщо ця опція обрана для цього поля, інакше буде вказано одноваріантний вибір."
+
+msgid "Check boxes/radio buttons"
+msgstr "Відмітьте квадратики/кнопки"
+
+msgid "Single on/off checkbox"
+msgstr "Одиночна опція так/ні"
+
+msgid "Option Widgets"
+msgstr "Спецдодатки"
+
+msgid "Defines selection, check box and radio button widgets for text and numeric fields."
+msgstr "Визначає віджети вибору та прямокутників з варіантами для текстових та числових полей."
+
+msgid "Store text in the database."
+msgstr "Збереження тексту в базі даних"
+
+msgid "Text area (multiple rows)"
+msgstr "Текстове поле (багаторядкове)"
+
+msgid "Defines simple text field types."
+msgstr "Надання простих текстових типів полів"
+
+msgid "User reference"
+msgstr "Посилання на користувача"
+
+msgid "Store the ID of a related user as an integer value."
+msgstr "Збереження ID пов'язаного користувача як ціле значення"
+
+msgid "User roles that can be referenced"
+msgstr "Ролі користувачів можуть бути пов'язані"
+
+msgid "User status that can be referenced"
+msgstr "Статус користувача може бути пов'язаний"
+
+msgid "%name: Invalid user."
+msgstr ""
+
+msgid "Reverse link"
+msgstr "Зворотнє посилання"
+
+msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
+msgstr "При обранні, буде показано обернене посилання на вузол довідки на запису внесеного користувача."
+
+msgid "Userreference autocomplete"
+msgstr "Автозаповнення довідки користувачів"
+
+msgid "User Reference"
+msgstr "Посилання на користувача"
+
+msgid "Defines a field type for referencing a user from a node."
+msgstr "Визначає тип поля для знаходження користувача з вузла."
+
+msgid "node reference autocomplete"
+msgstr ""
+
+msgid "Autocomplete Text Field"
+msgstr ""
+
+msgid "%name : Title mismatch. Please check your selection."
+msgstr ""
+
+msgid "<empty>"
+msgstr "<пусто>"
+
+msgid "Text Field"
+msgstr ""
+
+msgid "Node context"
+msgstr "Вміст матеріалу"
+
+msgid "Print"
+msgstr "Друк"
+
+msgid "Locked"
+msgstr "Заблоковано"
+
+msgid "Create field"
+msgstr ""
+
+msgid "No group"
+msgstr ""
+
+msgid "No fields have been added to this group."
+msgstr ""
+
+msgid "!label (!name)"
+msgstr "!label (!name)"
+
+msgid "Updated field groups."
+msgstr ""
+
+msgid "Updated field weights."
+msgstr ""
+
+msgid "Data settings"
+msgstr ""
+
+msgid "There are no groups configured for this content type."
+msgstr ""
+
+msgid "There are no fields configured for this content type."
+msgstr ""
+
+msgid "Updated group weights."
+msgstr ""
+
+msgid "The machine-readable name of the field.<br/>Allowed characters : unaccentuated a-z, numbers and _. All other characters will be discarded.<br/>You'll be able to choose a human-readable label for the field on next page"
+msgstr ""
+
+msgid "The field name %field_name is invalid."
+msgstr ""
+
+msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
+msgstr "Інструкції, що відобразяться користувачу нижче цього поля на формі редагування. <br />Дозволені HTML теги: @tags"
+
+msgid "Advanced Usage Only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format :<pre>!sample</pre>Using !link_devel 'devel load' tab on a %type content page might help you figure out the expected format."
+msgstr ""
+
+msgid "<none>"
+msgstr "<нема>"
+
+msgid "You're not allowed to input PHP code."
+msgstr "Вам недозволено ввожити PHP код"
+
+msgid "This PHP code was set by an administrator and will override any value specified above."
+msgstr "Код PHP був встановлений адміністратором і буде перезаписувати будь-які значенн, вказані вище"
+
+msgid "The default value PHP code returned an incorrect value<br/>Expected format : <pre>!sample</pre>Returned value : @value"
+msgstr ""
+
+msgid "Saved field %field."
+msgstr ""
+
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr ""
+
+msgid "database"
+msgstr ""
+
+msgid "The content fields table %name has been created."
+msgstr ""
+
+msgid "A content field from the referenced node."
+msgstr "Поле матеріалу з пов'язаного матеріалу"
+
+msgid "Configure how the label is going to be displayed"
+msgstr ""
+
+msgid "Field / Formatter"
+msgstr "Поле / Форматувальник"
+
+msgid "Select a field and formatter."
+msgstr "Оберіть поле і форматувальник"
+
+msgid "\"@s\" field @name"
+msgstr "\"@s\" поле @name"
+
+msgid "Do not group multiple values"
+msgstr ""
+
+msgid "Show first value only"
+msgstr ""
+
+msgid "Show last value only"
+msgstr ""
+
+msgid "Use PHP input for field settings (dangerous - grant with care)"
+msgstr "Використання PHP для параметрів поля (небезпечно - використовуйте з обережністю)"
+
+msgid "A file has been pre-loaded for import."
+msgstr "Файл для втягування завантажено"
+
+msgid "An error has occured adding the content type %type.<br/>Please check the errors displayed for more details."
+msgstr ""
+
+msgid "An error has occured adding the field %field_label (%field_name).<br/>Please check the errors displayed for more details."
+msgstr ""
+
+msgid "The field %field_label (%field_name) was added to the content type %type, but an error has occured updating the field settings.<br/>Please check the errors displayed for more details."
+msgstr ""
+
+msgid "The field %field_label (%field_name) was added to the content type %type, but an error has occured updating the field's 'display_settings'.<br/>The db error is: '%db_err'."
+msgstr ""
+
+msgid "These settings apply to the group in the node editing form"
+msgstr ""
+
+msgid "Content fieldgroup"
+msgstr "Група полей матеріалу"
+
+msgid "Content fieldgroup content goes here."
+msgstr ""
+
+msgid "All fields from a fieldgroup on the referenced node."
+msgstr "Всі поля з групи полей на вказаному вузлі."
+
+msgid "Text to display if group has no data. Note that title will not display unless overridden."
+msgstr "Текст для показу у випадку, коли у групі нема даних. Відмітьте, що заголовок не буде показано, хіба що не відбудетья відміна."
+
+msgid "\"@s\" fieldgroup @name"
+msgstr "\"@s\" група полей @name"
+
+msgid "%name: Found no valid post with that title."
+msgstr ""
+
+msgid "Node from reference"
+msgstr ""
+
+msgid "Adds a node from a node reference in a node context; if multiple nodes are referenced, this will get the first referenced node only."
+msgstr ""
+
+msgid "Node reference field"
+msgstr ""
+
+msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds). "
+msgstr ""
+
+msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
+msgstr "Можливі значення цього поля. Введіть по одному значенню на строку, в форматі ключ|мітка. Ключ - значення, що буде збережене в базі даних, і воно має співпадати з типом збереження поля (%type). Мітка необов'язкова, і ключ буде використано замість неї, якщо вона не вказана.<br /> Дозволені мітки HTML: @tags"
+
+msgid "Advanced Usage Only: PHP code that returns a keyed array of allowed values. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
+msgstr ""
+
+msgid "This PHP code was set by an administrator and will override the allowed values list above."
+msgstr "Цей код PHP був встановлений адміністратором і замістить вищевказаний перелік дозволених значень."
+
+msgid "Create a list of options as a list in <strong>Allowed values</strong> or as an array in PHP code at the bottom of this page. These values will be the same for the %field in all content types. "
+msgstr ""
+
+msgid "For a 'Single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
+msgstr ""
+
+msgid "The 'Checkboxes / radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
+msgstr ""
+
+msgid "Set the option to the number of initial characters to filter by. Leave empty for full term; use 1 for an A/B/C style glossary."
+msgstr ""
+
+msgid "user reference autocomplete"
+msgstr ""
+
+msgid "%name : Invalid user."
+msgstr ""
+
+msgid "Reverse Link"
+msgstr ""
+
+msgid "Related Content"
+msgstr ""
+
+msgid "User from reference"
+msgstr ""
+
+msgid "Adds a user from a user reference in a node context; if multiple users are referenced, this will get the first referenced user only."
+msgstr ""
+
+msgid "User reference field"
+msgstr ""
+
+msgid "<div>The allowed values list for %field was updated from </div><pre>%start</pre><div> to </div><pre>%end</pre><div>You can go to the field settings page to give each option a more user-friendly label."
+msgstr ""
+
+msgid "<div>The allowed values list for %field was not changed from </div><pre>%start</pre>"
+msgstr ""
+
+msgid "Show @count value(s)"
+msgstr "Відображення @count значень"
+
+msgid "starting from @count"
+msgstr "починаючи з @count"
+
+msgid "@label (!name) - Allowed values"
+msgstr "@label (!name) - Дозволені значення"
+
+msgid "%name: illegal value."
+msgstr "%name: значення некоректне."
+
+msgid "%name: the value may not be longer than %max characters."
+msgstr "%name: значення не може бути довшим чим %max символів"
+
+msgid "Autocomplete matching"
+msgstr "Порівняння автозаповнення"
+
+msgid "Starts with"
+msgstr "Починається з"
+
+msgid "Load a referenced user"
+msgstr "Завантажити згаданого користувача"
+
+msgid "Content containing the user reference field"
+msgstr "Матеріал містить поле пов'язаного користувача"
+
+msgid "Referenced user"
+msgstr "Згаданий користувач"
+
+msgid "Load a referenced node"
+msgstr "Завантаження пов'язаного матеріалу"
+
+msgid "Content containing the node reference field"
+msgstr "Контент, що містить поле довідки вузлу"
+
+msgid "Referenced content"
+msgstr "Пов'язаний матеріал"
+
+msgid "Populate a field"
+msgstr "Заповнення поля"
+
+msgid "Select the machine-name of the field."
+msgstr "Вибір комп'ютерного імені поля"
+
+msgid "Revision information"
+msgstr "Інформація про зміни"
+
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
+msgstr "Оберіть метод збору підказок щодо автозаповнення. Зверніть увагу, що <em>Contains</em> може призвести до проблем з продуктивністю на сайтах з тисячами вузлів."
+
+msgid "View used to select the nodes"
+msgstr "Перегляд для вибору вузлів"
+
+msgid "%name: this post can't be referenced."
+msgstr "%name: Це повідомлення не можна внести в довідку."
+
+msgid "Node module form."
+msgstr "Форма модуля матеріалу"
+
+msgid "Locale module form."
+msgstr "Форма модуля перекладів"
+
+msgid "Taxonomy module form."
+msgstr "Форма модуля таксономії"
+
+msgid "Poll title"
+msgstr "Назва Голосування"
+
+msgid "'@column' => value for @column"
+msgstr "'@column' => значення для @column"
+
+msgid ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+msgstr ""
+"return array(\n"
+"  0 => array(@columns),\n"
+"  // You'll usually want to stop here. Provide more values\n"
+"  // if you want your 'default value' to be multi-valued:\n"
+"  1 => array(@columns),\n"
+"  2 => ...\n"
+");"
+
+msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
+msgstr "Створіть перелік опцій в формі <strong>Allowed values list</strong> або як набір в коді PHP. Ці значення будуть однаковими для %field у всіх типах контенту."
+
+msgid "You need to specify the 'allowed values' for this field."
+msgstr "Необхідно задавати 'дозвроені значення' для цього поля"
+
+msgid "Change basic information"
+msgstr "Зміна базової інформації"
+
+msgid "Fieldset"
+msgstr "Набір полей"
+
+msgid "Translation settings"
+msgstr "Параметри Перекладу"
+
+msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
+msgstr "Оберіть метод пошуку підказок автозаповнення. Зверніть увагу, що <em>Contains</em> може призвести до проблем з продуктивністю на сайтах з тисячами вузлів."
+
+msgid "%name: title mismatch. Please check your selection."
+msgstr "%name: неспівпадіння заголовку. Будь ласка, провірте ваш вибір."
+
+msgid "Path settings"
+msgstr ""
+
+msgid "%name: the value may be no smaller than %min."
+msgstr "%name: значення повинно бути не меншим чим %min."
+
+msgid "%name: the value may be no larger than %max."
+msgstr "%name: значення повинно бути не більшим чим %max."
+
+msgid "%name: found no valid user with that name."
+msgstr "%name: не знайдено дійсного користувача з таким ім'ям."
+
+msgid "Field label"
+msgstr ""
+
+msgid "Form settings"
+msgstr "Параметри форми"
+
+msgid "Type of group."
+msgstr "Тип групи"
+
+msgid "%name: this field cannot hold more that @count values."
+msgstr "%name: це поле не може отримати більше чим @count значень."
+
+msgid "If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays."
+msgstr "Якщо не обрано, кожен елемент поля буде створювати новий рядок, що може привести до дублів. Ці параметри несумісні з сортуванням таблиць при кліках на відображенні."
+
+msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Деякі оновлення все ще в черзі. Прохання повернутись до <a href=\"@update-php\">update.php</a> і запустити необхідні оновлення"
+
+msgid "Some updates are still pending.<br/>Please re-run the update script."
+msgstr "Деякі оновлення ще знаходяться в черзі. <br/>Будь ласка, заново запустіть скрипт оновлення."
+
+msgid "Comment module form."
+msgstr ""
+
+msgid "Translation module form."
+msgstr ""
+
+msgid "Menu module form."
+msgstr "Форма модуля меню"
+
+msgid "Book module form."
+msgstr "Форма модуля Книг"
+
+msgid "Path module form."
+msgstr ""
+
+msgid "Poll module title."
+msgstr "Назва модуля голосувань"
+
+msgid "Poll module choices."
+msgstr "Варіанти модуля голосувань"
+
+msgid "Poll module settings."
+msgstr "Параметри модуля голосувань"
+
+msgid "Upload module form."
+msgstr "форма модуля Завантажень"
+
+msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
+msgstr "Оновлення для модулів, пов'язаних з CCK, не відбуваються до включення модулів на <a href=\"@admin-modules-path\">administer modules page</a>. Коли ви включите їх, вам слід повернутись до <a href=\"@update-php\">update.php</a> і провести оновлення, що залишились."
+
+msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module має оновлення, але не може їх розпочати з-за відключення content.module. <br />Якщо і коли content.module буде включено, вам потрібно буде повторно запустити скрипт оновлення. Ви будете й надалі бачити це повідомлення, аж поки модуль не буде включено і оновлення пройдені."
+
+msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
+msgstr "!module.module має оновлення і доступний в папці модулів, але він не включений. <br />Якщо і коли його буде включено, вам потрібно буде повторно запустити скрипт оновлення. Ви будете й надалі бачити це повідомлення, аж поки модуль не буде включено і оновлення пройдені."
+
+msgid "CCK - No Views integration"
+msgstr "CCK - без інтеграції з Виглядама"
+
+msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
+msgstr "CCK - інтеграція з Виглядама потребує Views 6.x-2.0-rc2 або новіше"
+
+msgid "manage fields"
+msgstr "керування полями"
+
+msgid "» Add a new content type"
+msgstr "» Додавання нового типу матеріалу"
+
+msgid "@field_name (Locked)"
+msgstr "@field_name (Заблоковано)"
+
+msgid "This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled."
+msgstr "Цей тип матеріалу має неактивні поля. Неактивні поля не включені в список доступних до моменту вмикання їхніх модулів"
+
+msgid "!field (!field_name) is an inactive !field_type field that uses a !widget_type widget."
+msgstr "!field (!field_name) неактивне поле !field_type що використовує Візитку !widget_type."
+
+msgid "- Select a field type -"
+msgstr "- Вибір типу поля -"
+
+msgid "- Select a widget -"
+msgstr "- Вибір widget -"
+
+msgid "Field name (a-z, 0-9, _)"
+msgstr "Ім'я поля (a-z, 0-9, _)"
+
+msgid "Type of data to store."
+msgstr "Тип даних для збереження"
+
+msgid "Form element to edit the data."
+msgstr "Елемент форми для зміни даних"
+
+msgid "- Select an existing field -"
+msgstr "- Вибір наявного поля -"
+
+msgid "Field to share"
+msgstr "Поле для відображення"
+
+msgid "Group name (a-z, 0-9, _)"
+msgstr "Ім'я групи (a-z, 0-9, _)"
+
+msgid "Add new field: you need to provide a label."
+msgstr "Додавання нового поля: Вам потрібно вказати мітку"
+
+msgid "Add new field: you need to provide a field name."
+msgstr "Додавання нового поля: Вам потрібно вказати ім'я поля"
+
+msgid "Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Додавання нового поля: ім'я поля %field_name - некоректне. Ім'я повинно включати лише латинські символи, цифри і підкреслення"
+
+msgid "Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
+msgstr "Додавання нового поля: ім'я поля %field_name надто довге. Ім'я обмежено 32 символами, включаючи префікс 'field_'"
+
+msgid "Add new field: the name 'field_instance' is a reserved name."
+msgstr "Додавання нового поля: ім'я 'field_instance' - зарезервовано"
+
+msgid "Add new field: the field name %field_name already exists."
+msgstr "Додавання нового поля: ім'я поля %field_name зайняте"
+
+msgid "Add new field: you need to select a field type."
+msgstr "Додавання нового поля: потрібно обрати тип поля"
+
+msgid "Add new field: you need to select a widget."
+msgstr "Додавання нового поля: вам потрібно обрати візитку"
+
+msgid "Add new field: invalid widget."
+msgstr "Додавання нового поля: некоректна візитка"
+
+msgid "Add existing field: you need to provide a label."
+msgstr "Існуюче поле: Вам потрібно вказати мітку"
+
+msgid "Add existing field: you need to select a field."
+msgstr "Існуюче поле: Вам потрібно обрати поле"
+
+msgid "Add existing field: you need to select a widget."
+msgstr "Існуюче поле: Вам потрібно обрати візитку"
+
+msgid "Add existing field: invalid widget."
+msgstr "Існуюче поле: некоректна візитка"
+
+msgid "The field %label cannot be added to a content type because it is locked."
+msgstr "Поле %label неможливо додати бо тип матеріалу заблокований"
+
+msgid "There are no fields configured for this content type. You can add new fields on the <a href=\"@link\">Manage fields</a> page."
+msgstr "Відсутні поля для даного типу матеріалів. Ви можете додавати нові поля на сторінці <a href=\"@link\">Керування полями</a>"
+
+msgid "@type: @field (@label)"
+msgstr "@type: @field (@label)"
+
+msgid "Edit basic information"
+msgstr "Зміна базової інформації"
+
+msgid "The machine-readable name of the field. This name cannot be changed."
+msgstr "Комп'ютерне ім'я поля. Змінити неможливо"
+
+msgid "A human-readable name to be used as the label for this field in the %type content type."
+msgstr "Людиноподібне ім'я, що буде використано як мітка для цього поля в типі матеріалу %type"
+
+msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
+msgstr "Тип даних, що бажаєте зберігати в базі даних з допомогою цього поля. Дана операція не може бути змінена."
+
+msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
+msgstr "Тип елемента форми, що хочете відобразити користувачу, коли створюється це поле в типі матеріалу %type"
+
+msgid "Updated basic settings for field %label."
+msgstr "Оновлено базові параметри для поля %label."
+
+msgid "There was a problem updating the basic settings for field %label."
+msgstr "Виникла проблема оновлення базових параметрів для поля %label."
+
+msgid "This field is <strong>locked</strong> and cannot be removed."
+msgstr "Поле <strong>заблоковане</strong> і не може бути видалене"
+
+msgid "The field %field is locked and cannot be edited."
+msgstr "Поле %field заблоковане і не може бути зміненим"
+
+msgid "%type basic information"
+msgstr "%type базова інформація"
+
+msgid "Advanced usage only: PHP code that returns a default value. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href=\"@link_devel\">devel module</a> on a %type content page."
+msgstr "Лише для досвідчених користувачів: код PHP, що надає значення за замовчуванням. Не повинен містити розмежовувачів <?php ?&gt. Якщо це поле заповнене, значення, надане цим кодом замістить будь-яке значення, вказане вгорі. Очікуваний формат: <pre>!sample</pre>Для визначення очікуваного формату ви можете скористатись закладкою <em>devel load</em>, наданою <a href=\"@link_devel\">devel module</a> на сторінці контенту %type."
+
+msgid "Maximum number of values users can enter for this field."
+msgstr "Максимальна кількість значень, що користувачі можуть вносити для цього поля"
+
+msgid "'Unlimited' will provide an 'Add more' button so the users can add as many values as they like."
+msgstr "'Необмежено' створить кнопку 'Додати ще', а отже користувачі зможуть додати скільки завгожно власних значенб"
+
+msgid "The PHP code for 'default value' returned @value, which is invalid."
+msgstr "Код PHP для 'базового значення' повернув @value, що є некоректним"
+
+msgid "%name must be an integer."
+msgstr "%name повинно бути цілим"
+
+msgid "%name must be a positive integer."
+msgstr "%name повинно бути позитивним цілим"
+
+msgid "%name must be a number."
+msgstr "%name повинно бути номером"
+
+msgid "You should make sure that the used field exists in the given content type."
+msgstr "Вам потрібно впевнитись, що використовуване поле наявне в даному типі матеріалу"
+
+msgid "Advanced: Specify the fields value with PHP code"
+msgstr "Розширене: Вкажіть значення полей кодом PHP"
+
+msgid "Advanced usage only: PHP code that returns the value to set. Should not include <?php ?> delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content page might help you figure out the expected format."
+msgstr "Лише для досвідчених користувачів: код PHP, що надає значення для встановлення. Не повинен містити <?php ?> розмежовувачів. Якщо це поле заповнене, значення, надане цим кодом замістить будь-яке значення, вказане вгорі. Очікуваний формат: <pre>!sample</pre>Використання закладки <a href=\"@link_devel\">devel.module's</a> 'devel load'  на сторінці контенту може допомогти вам зрозуміти очікуваний формат."
+
+msgid "You have to return the default value in the expected format."
+msgstr "Потрібно повертати базове значення в передбаченому форматі"
+
+msgid "Populate @node's field '@field'"
+msgstr "Заповнення поля '@field' матеріалу @node"
+
+msgid "Field has value"
+msgstr "Поле має значення"
+
+msgid "You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value."
+msgstr "Вам потрібно переконатись, що дані поля наявні в вказаному типі матеріалу. Повертається TRUE, якщо обрані поля мають вказане значення."
+
+msgid "Field has changed"
+msgstr "Поле змінено"
+
+msgid "Content containing changes"
+msgstr "Матеріал містить зміни"
+
+msgid "Content not containing changes"
+msgstr "Матеріал без змін"
+
+msgid "@node's field '@field' has value"
+msgstr "поле @node '@field' має значення"
+
+msgid "Select the machine-name of the field to look at."
+msgstr "Вибір комп'ютерного імені показаному полю"
+
+msgid "@node's field '@field' has been changed"
+msgstr "Змінено поле '@field' матеріалу @node"
+
+msgid "Referenced node unfiltered title. WARNING - raw user input."
+msgstr "Нефільтрований заголовок пов'язаного матеріалу. Увага - чистий ввід вмд користувача!"
+
+msgid "Formatted html link to the referenced node."
+msgstr "Форматоване HTML посилання до пов'язаного матеріалу"
+
+msgid "Relative path alias to the referenced node."
+msgstr "Відносна адреса до пов'язаного матеріалу"
+
+msgid "Absolute path alias to the referenced node."
+msgstr "Абсолютна адреса до пов'язаного матеріалу"
+
+msgid "Relative path alias to the referenced user."
+msgstr "ВІдносна адреса до пов'язаного користувача"
+
+msgid "Absolute path alias to the referenced user."
+msgstr "Абсолютна адреса до пов'язаного користувача"
+
+msgid "Field: @widget_label (@field_name) - @field_type"
+msgstr ""
+
+msgid "Field on the referenced node."
+msgstr ""
+
+msgid "Configure how the label is going to be displayed. This option takes no effect when \"Override title\" option is enabled, the specified block title is displayed instead."
+msgstr ""
+
+msgid "Field formatter"
+msgstr ""
+
+msgid "Select a formatter."
+msgstr ""
+
+msgid "\"@s\" field: @widget_label (@field_name) - @field_type"
+msgstr ""
+
+msgid "@label (!name)"
+msgstr "@label (!name)"
+
+msgid "@label (!name) - !column"
+msgstr "@label (!name) - !column"
+
+msgid "@label-truncated - !column"
+msgstr "@label-скорочена - !column"
+
+msgid "Appears in: @types"
+msgstr "Використана в: @types"
+
+msgid "<No value>"
+msgstr "<Без значення>"
+
+msgid "Widget label (@label)"
+msgstr "Мітка Візитки (@label)"
+
+msgid "Custom label"
+msgstr "Своя мітка"
+
+msgid "(first item is 0)"
+msgstr ""
+
+msgid "(start from last values)"
+msgstr ""
+
+msgid "The delta allows you to select which item in a multiple value field to key the relationship off of. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Допустима похибка дозволяє вам обрати, який елемент в полі з декількома значеннями буде відмикати взаємозв'язок. Оберіть \"1\"  для використання першого елемента, \"2\" для другого елемента, і так далі. Якщо ви оберете \"All\", кожен елемент у полі створить новий рядок, що, можливо, створить копії."
+
+msgid "The delta allows you to select which item in a multiple value field will be used for sorting. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
+msgstr "Допустима похибка дозволяє вам обрати, який елемент в полі з декількома значеннями буде використовуватись для сортування. Оберіть \"1\"  для використання першого елемента, \"2\" для другого елемента, і так далі. Якщо ви оберете \"All\", кожен елемент у полі створить новий рядок, що, можливо, створить копії."
+
+msgid "You need to provide a label."
+msgstr "Необхідно вказати мітку"
+
+msgid "You need to provide a group name."
+msgstr "Необхідно вказати ім'я групи"
+
+msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
+msgstr "Назва групи %group_name недійсна. Назва має містити лише малі ненаголошені літери, цифри та підкреслення."
+
+msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
+msgstr "Назва групи %group_name занадто довга. Назва обмежена 32 символами, включаючи префікс 'group_'."
+
+msgid "The group name %group_name already exists."
+msgstr "Назва групи %group_name вже існує."
+
+msgid "Add new group:"
+msgstr "Додати нову групу:"
+
+msgid "Add new group: you need to provide a label."
+msgstr "Додати нову групу: потрібно вказати мітку."
+
+msgid "Add new group: you need to provide a group name."
+msgstr "Додати нову групу: потрібно вказати ім'я групи"
+
+msgid "Standard group"
+msgstr "Стандартна група"
+
+msgid "Create display groups for CCK fields."
+msgstr "Створення групи відображення полів CCK"
+
+msgid "Field group: @group in @type"
+msgstr ""
+
+msgid "All fields from this field group on the referenced node."
+msgstr ""
+
+msgid "Field group label"
+msgstr ""
+
+msgid "Configure how the field group label is going to be displayed. This option takes no effect when \"Override title\" option is enabled, the specified block title is displayed instead."
+msgstr ""
+
+msgid "Fieldset - Collapsible"
+msgstr ""
+
+msgid "Fieldset - Collapsed"
+msgstr ""
+
+msgid "Field group format"
+msgstr ""
+
+msgid "This option allows you to configure the field group format."
+msgstr ""
+
+msgid "\"@s\" field group: @group in @type"
+msgstr ""
+
+msgid "Note that if the field has multiple values, only the first content node will be loaded."
+msgstr "Відмітьте, що якщо поле містить численні значення, лише перший вузол контенту буде завантажено."
+
+msgid "There are no nodereference fields defined."
+msgstr "Не визначено жодного поля довідки вузлів."
+
+msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
+msgstr ""
+
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
+msgstr ""
+
+msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+msgid "%name: invalid input."
+msgstr "%name: неправильне введення"
+
+msgid "%name: found no valid post with that title."
+msgstr "%name: не знайдено дійсного повідомлення з таким заголовком."
+
+msgid "Only numbers and decimals are allowed in %field."
+msgstr "Тільки числа і десяткові значення дозволені в полі %field."
+
+msgid "Only numbers are allowed in %field."
+msgstr "Тільки числа дозволені в полі %field."
+
+msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
+msgstr "Лише цифри та знак дробу (%decimal) дозволені в %field."
+
+msgid "Note that if the field has multiple values, only the first user will be loaded."
+msgstr "Відмітьте, що якщо у поля є численні значення, завантажиться лише перший користувач."
+
+msgid "There are no userreference fields defined."
+msgstr "Немає зазначених полей пов'язаного користувача"
+
+msgid "Advanced - Users that can be referenced (View)"
+msgstr "Розширено - Користувачі, що можуть бути пов'язані (Вигляд)"
+
+msgid "View used to select the users"
+msgstr "Вигляд використано для вибору користувачів"
+
+msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
+msgstr ""
+
+msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
+msgstr ""
+
+msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
+msgstr ""
+
+msgid "%name: invalid user."
+msgstr "%name: некоректний користувач."
+
+msgid "New field"
+msgstr "Нове поле"
+
+msgid "Existing field"
+msgstr "Існуюче поле"
+
+msgid "New group"
+msgstr "Нова група"
+
+msgid "Add fields and groups to the content type, and arrange them on content display and input forms."
+msgstr "Додати поля та групи до типу контенту, і впорядкувати їх на єкранах контенту та формах введення."
+
+msgid "You can add a field to a group by dragging it below and to the right of the group."
+msgstr "Ви можете додати поле до групи, перетянувши його вниз і вправо від групи."
+
+msgid "Note: Installing the <a href=\"!adv_help\">Advanced help</a> module will let you access more and better help."
+msgstr "Зверніть увагу: Встановлення модуля <a href=\"!adv_help\">Advanced help</a> дозволить вам звертатись за більш обсяжною та точнішою допомогою."
+
+msgid "Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template."
+msgstr "Користуйтесь відміткою 'виключити' для виключення елемента з значення !content, переданого до шаблону вузла."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/cck/translations/vi.po b/drupal/sites/default/boinc/modules/contrib/cck/translations/vi.po
new file mode 100644
index 0000000..084ec6d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/cck/translations/vi.po
@@ -0,0 +1,417 @@
+# $Id$
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  field.php,v 1.3 2006/04/16 13:47:13 JonBob
+#  text.module,v 1.34 2006/06/12 19:59:53 JonBob
+#  number.module,v 1.29 2006/07/11 00:15:06 JonBob
+#  content_admin.inc,v 1.16 2006/06/12 19:36:54 JonBob
+#  content.module,v 1.65 2006/07/11 00:18:20 JonBob
+#  nodereference.module,v 1.28 2006/06/12 19:36:54 JonBob
+#  optionwidgets.module,v 1.8 2006/05/01 15:45:29 JonBob
+#  userreference.module,v 1.24 2006/05/05 14:10:44 JonBob
+#  weburl.module,v 1.8 2006/06/12 19:36:54 JonBob
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2006-07-27 08:09-0400\n"
+"PO-Revision-Date: 2007-01-03 00:19+0700\n"
+"Last-Translator: thehongtt <thehongtt at yahoo.com>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: content.module:18
+msgid "Allows administrators to define new content types."
+msgstr "Cho phép người điều h`nh định nghĩa các kiểu nội dung mới."
+
+#: content.module:73
+msgid "add content type"
+msgstr "thêm kiểu dữ liệu"
+
+#: content.module:80
+msgid "fields"
+msgstr "các trường"
+
+#: content.module:119
+#: content_admin.inc:25
+msgid "duplicate"
+msgstr "tạo bản sao"
+
+#: content.module:135
+msgid "manage fields"
+msgstr "quản lý các trường"
+
+#: content.module:164
+msgid "remove field"
+msgstr "xóa trường"
+
+#: content_admin.inc:42
+msgid "Content types"
+msgstr "Các kiểu nội dung"
+
+#: content_admin.inc:90
+msgid "The human-readable name of this content type."
+msgstr "Tên của kiểu nội dung có thể đọc được."
+
+#: content_admin.inc:98
+msgid "A brief description of the content type."
+msgstr "Mô tả ngắn cho kiểu nội dung."
+
+#: content_admin.inc:106
+msgid "Instructions to present to the user when adding new content of this type."
+msgstr "Lời hướng dẫn được hiển thị cho người dùng khi họ thêm một nội dung mới với kiểu nội dung n`y."
+
+#: content_admin.inc:110
+msgid "Title field label"
+msgstr "Title field label"
+
+#: content_admin.inc:113
+msgid "The label for the title field."
+msgstr "Nhãn cho tiêu đề của trường."
+
+#: content_admin.inc:118
+msgid "Save content type"
+msgstr "Lưu kiểu nội dung"
+
+#: content_admin.inc:182
+msgid "Saved content type %type."
+msgstr "Đã lưu kiểu nội dung %type"
+
+#: content_admin.inc:198
+msgid "Are you sure you want to delete the content type %type?"
+msgstr "Bạn thật sự muốn xóa kiểu nội dung %type?"
+
+#: content_admin.inc:198
+msgid "If you have any content left in this content type, it will be permanently deleted. This action cannot be undone."
+msgstr "Nếu bạn có nội dung n`o không xuất hiện trong kiểu nội dung n`y, nó sẽ bị xóa. Thao tác n`y không thể được ho`n lại."
+
+#: content_admin.inc:218
+msgid "Deleted content type %type."
+msgstr "Đã xóa kiểu nội dung %type"
+
+#: content_admin.inc:248
+msgid "remove"
+msgstr "xóa"
+
+#: content_admin.inc:277
+msgid "Add existing field"
+msgstr "Thêm trường đã tồn tại"
+
+#: content_admin.inc:286
+msgid "Add field"
+msgstr "Thêm trường"
+
+#: content_admin.inc:307
+msgid "Create new field"
+msgstr "Tạo trường mới"
+
+#: content_admin.inc:313
+msgid "The human-readable name of this field."
+msgstr "Tên có thể đọc cho trường n`y."
+
+#: content_admin.inc:318
+msgid "Field type"
+msgstr "Kiểu trường"
+
+#: content_admin.inc:326
+msgid "Create field"
+msgstr "Tạo trường"
+
+#: content_admin.inc:335
+msgid "No field modules are enabled. You need to <a href=\"%modules_url\">enable one</a>, such as text.module, before you can add new fields."
+msgstr "Không có module tạo ra trường n`o. Bạn cần <a href=\"%modules_url\">kích hoạt một</a>, như l` text.module, trước khi bạn có thể thêm v`o các trường."
+
+#: content_admin.inc:389
+msgid "Added field %label."
+msgstr "Đã thêm trường %label."
+
+#: content_admin.inc:432
+msgid "Created field %label."
+msgstr "Đã tạo trường %label."
+
+#: content_admin.inc:452
+msgid "Are you sure you want to remove the field %field?"
+msgstr "Bạn thật sự muốn xóa trường $field?"
+
+#: content_admin.inc:452
+msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
+msgstr "Nếu bạn có nội dung n`o không có ở trong trường n`y, nó sẽ bị mất đi. Thao tác n`y không thể ho`n lại."
+
+#: content_admin.inc:452
+msgid "Remove"
+msgstr "Xóa"
+
+#: content_admin.inc:468
+msgid "Removed field %field from %type."
+msgstr "Đã xóa trường %field khỏi %type"
+
+#: content_admin.inc:487
+msgid "The field %field no longer exists in any content type, so it was deleted."
+msgstr "Trường %field không còn tồn tại trong kiểu nội dung n`o, vì thế nó đã bị xóa."
+
+#: content_admin.inc:511
+msgid "Widget settings"
+msgstr "Các thiết lập widget"
+
+#: content_admin.inc:512
+msgid "These settings apply only to the %field field as it appears in the %type content type."
+msgstr "Những thiết lập chỉ áp dụng cho trường %field khi nó hiển thị ở kiểu nội dung %type."
+
+#: content_admin.inc:526
+msgid "Widget"
+msgstr "Widget"
+
+#: content_admin.inc:541
+msgid "In the node editing form, the heavier fields will sink and the lighter fields will be positioned nearer the top."
+msgstr "Trong form soạn thảo node, những trường nặng hơn sẽ chìm xuống v` những trường nhẹ hơn sẽ nổi lên phía trên."
+
+#: content_admin.inc:552
+msgid "Instructions to present to the user below this field on the editing form."
+msgstr "Lời hướng dẫn cho người dùng sẽ được hiển thị ở phía dưới trường trong trang biên soạn."
+
+#: content_admin.inc:558
+msgid "Data settings"
+msgstr "Các thiết lập dữ liệu"
+
+#: content_admin.inc:559
+msgid "These settings apply to the %field field in every content type in which it appears."
+msgstr "Các thiết lập n`y áp dụng v`o trường %field trong mỗi kiểu nội dung m` nó xuất hiện."
+
+#: content_admin.inc:568
+msgid "Multiple values"
+msgstr "Nhiều giá trị"
+
+#: content_admin.inc:579
+msgid "Save field settings"
+msgstr "Lưu các thiết lập của trường"
+
+#: content_admin.inc:652
+msgid "Saved field %field."
+msgstr "Đã lưu trường %field"
+
+#: content_admin.inc:16;87;232;310;533
+msgid "Label"
+msgstr "Nhãn"
+
+#: content_admin.inc:882;971
+msgid "No PostgreSQL mapping found for %type data type."
+msgstr "Không tìm thấy PostgreSQL mapping cho kiểu dữ liệu %type."
+
+#: content_admin.inc:882;971
+msgid "database"
+msgstr "cơ sở dữ liệu"
+
+#: date.module:15
+msgid "Defines a date/time field type. <em>Note: Requires content.module.</em>"
+msgstr "Định nghĩa một kiểu trường ng`y/giờ. <em>Chú ý: Yêu cầu content.module.</em>"
+
+#: date.module:36
+msgid "Year"
+msgstr "Năm"
+
+#: date.module:37
+msgid "Year and month"
+msgstr "Năm v` tháng"
+
+#: date.module:39
+msgid "Date and time"
+msgstr "Ng`y v` giờ"
+
+#: date.module:43
+msgid "Granularity"
+msgstr "Granularity"
+
+#: date.module:101
+msgid "Times are entered and displayed with site's time zone"
+msgstr "Thời gian được gán v`o v` trình b`y ứng với muối giờ của người dùng."
+
+#: date.module:102
+msgid "Times are entered and displayed with user's time zone"
+msgstr "Thời gian được gán v`o v` trình b`y ứng với muối giờ của người dùng."
+
+#: date.module:106
+msgid "Time zone handling"
+msgstr "Thao tác với các muối giờ."
+
+#: date.module:154
+msgid "%name must be entered in ISO 8601 format (YYYY)."
+msgstr "%name phải được gán với định dạng ISO 8601 (YYYY-MM-DD)."
+
+#: date.module:159
+msgid "%name must be entered in ISO 8601 format (YYYY-MM)."
+msgstr "%name phải được gán với định dạng ISO 8601 (YYYY-MM-DD)."
+
+#: date.module:164
+msgid "%name must be entered in ISO 8601 format (YYYY-MM-DD)."
+msgstr "%name phải được gán với định dạng ISO 8601 (YYYY-MM-DD)."
+
+#: date.module:169
+msgid "%name must be entered in ISO 8601 format (YYYY-MM-DDThh:mm:ss)."
+msgstr "%name phải được gán với định dạng ISO 8601 (YYY-MM-DD)."
+
+#: field.php:77
+#: text.module:44
+msgid "Maximum length"
+msgstr "Độ d`i tối đa"
+
+#: field.php:80
+#: text.module:47
+msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
+msgstr "Số ký tự tối đa cho trường. Để trống nếu muốn độ d`i l` vô hạn."
+
+#: field.php:102
+#: number.module:82
+#: text.module:80
+msgid "is equal to"
+msgstr "bằng với"
+
+#: field.php:103
+#: number.module:83
+#: text.module:81
+msgid "is not equal to"
+msgstr "không bằng với"
+
+#: field.php:104
+#: text.module:82
+msgid "matches the pattern"
+msgstr "khớp với mẫu"
+
+#: field.php:265
+#: text.module:159
+msgid "Rows"
+msgstr "Số dòng"
+
+#: field.php:273
+#: text.module:167
+msgid "\"Rows\" must be a positive integer."
+msgstr "\"Số dòng\" phải l` một số nguyên dương."
+
+#: field.php:180;190
+#: number.module:119
+#: text.module:107
+msgid "Illegal value for %name."
+msgstr "Giá trị cho %name không hợp lệ."
+
+#: nodereference.module:0
+msgid "nodereference"
+msgstr "nodereference"
+
+#: nodereference.module:15
+msgid "Defines a field type for referencing one node from another. <em>Note: Requires content.module.</em>"
+msgstr "Định nghĩa một kiểu trường để tham khảo đến một node từ một node khác. <em>Chú ý: yêu cầu content.module.</em>"
+
+#: nodereference.module:26
+msgid "node reference autocomplete"
+msgstr "tham khảo node tự động ho`n th`nh"
+
+#: nodereference.module:51
+msgid "Content types that can be referenced"
+msgstr "Những kiểu nội dung có thể được tham khảo đến"
+
+#: nodereference.module:204
+msgid "No post with that title exists."
+msgstr "Không tồn tại b`i viết n`o với tiêu đề đó."
+
+#: number.module:0
+msgid "number"
+msgstr "số"
+
+#: number.module:15
+msgid "Defines numeric field types. <em>Note: Requires content.module.</em>"
+msgstr "Định nghĩa các kiểu trường số. <em>Chú ý: Yêu cầu content.module.</em>"
+
+#: number.module:38
+msgid "Minimum"
+msgstr "Tối thiểu"
+
+#: number.module:43
+msgid "Maximum"
+msgstr "Tối đa"
+
+#: number.module:48
+#: text.module:51
+msgid "Allowed values"
+msgstr "Các giá trị cho phép"
+
+#: number.module:52
+#: text.module:55
+msgid "The possible values this field can contain. Any other values will result in an error. Enter one value per line."
+msgstr "Những giá trị m` trường n`y có thể mang. Những giá trị khác sẽ trả về lỗi. Điền mỗi giá trị v`o mỗi dòng."
+
+#: number.module:58
+msgid "\"Minimum\" must be a number."
+msgstr "\"Tối thiểu\" phải l` một con số."
+
+#: number.module:61
+msgid "\"Maximum\" must be a number."
+msgstr "\"Tối đa\" phải l` một con số."
+
+#: number.module:113
+msgid "The value of %name may be no smaller than %min."
+msgstr "Giá trị của %name không thể nhỏ hơn %min."
+
+#: number.module:116
+msgid "The value of %name may be no larger than %max."
+msgstr "Giá trị của %name không thể lớn hớn %max."
+
+#: optionwidgets.module:0
+msgid "optionwidgets"
+msgstr "optionwidgets"
+
+#: optionwidgets.module:15
+msgid "Defines selection, check box and radio button widgets for text and numeric fields. <em>Note: Requires content.module, text.module and number.module.</em>"
+msgstr "Định nghĩa hộp select, checkbox v` nút radio cho văn bản v` các trường số. <em>Chú ý: Yêu cầu content.module, text.module v` number.module.</em>"
+
+#: text.module:0
+msgid "text"
+msgstr "ký tự"
+
+#: text.module:15
+msgid "Defines simple text field types. <em>Note: Requires content.module.</em>"
+msgstr "Định nghĩa kiểu trường văn bản đơn giản. <em>Chú ý: Yêu cầu content.module.</em>"
+
+#: text.module:35
+msgid "Filtered text (user selects input format)"
+msgstr "Văn bản được lọc (người dùng chọn định dạng dữ liệu v`o)"
+
+#: text.module:35
+msgid "Plain text"
+msgstr "Ký tự đơn giản"
+
+#: text.module:38
+msgid "Text processing"
+msgstr "Xử lý văn bản"
+
+#: text.module:144
+msgid "Text Field"
+msgstr "Trường ký tự"
+
+#: userreference.module:0
+msgid "userreference"
+msgstr "userreference"
+
+#: userreference.module:15
+msgid "Defines a field type for referencing a user from a node. <em>Note: Requires content.module.</em>"
+msgstr "Định nghĩa kiểu trường để tham khảo một người dùng từ một node. <em>Chú ý: Yêu cầu content.module.</em>"
+
+#: userreference.module:176
+msgid "Invalid user name."
+msgstr "Tên người dùng không hợp lệ."
+
+#: weburl.module:0
+msgid "weburl"
+msgstr "weburl"
+
+#: weburl.module:15
+msgid "Defines simple weburl field types. <em>Note: Requires content.module.</em>"
+msgstr "Định nghĩa các kiểu đường dẫn web đơn giản. <em>Chú ý: Yêu cầu content.module</em>"
+
+#: weburl.module:164;172
+msgid "Not a valid Web URL."
+msgstr "Đường dẫn web không hợp lệ."
+
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/content_profile/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/README.txt b/drupal/sites/default/boinc/modules/contrib/content_profile/README.txt
new file mode 100644
index 0000000..dc4d97c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/README.txt
@@ -0,0 +1,244 @@
+$Id: README.txt,v 1.1.2.11 2010/01/12 12:08:49 fago Exp $
+
+
+-----------------------
+Content Profile Module
+-----------------------
+by Wolfgang Ziegler, nuppla at zites.net
+
+With this module you can build user profiles with drupal's content types.
+
+
+Installation 
+------------
+ * Copy the module's directory to your modules directory and activate the module.
+ 
+ Usage:
+--------
+ * There will be a new content type "profile". Customize its settings at
+   admin/content/types.
+ * At the bottom of each content type edit form, there is a checkbox, which allows
+   you to mark a content type as profile.
+ * When you edit a profile content type there will be a further tab "Content profile",
+   which provides content profile specific settings.
+   
+
+ Warning:
+---------
+ The module uses drupal's content or "nodes" for user profiles, so the access
+ permissions applied to view the content profiles are the regular node related
+ permissions.
+ That means the "access user profiles" permission of the user module still
+ applies only to the user account pages at "user/UID" but not to content profiles,
+ which can be viewed at node/NID too. Still you can use any regular node access
+ module to restrict access to your content profiles, e.g. you may use the Content
+ Access module for that (http://drupal.org/project/content_access).
+
+
+
+Content profiles per role:
+--------------------------
+You may, but you need not, mark multiple content types as profile. By customizing 
+the permissions of a content type, this allows you to create different profiles for
+different roles.
+
+
+Hints:
+------
+
+ * When using content profiles the "title" field is sometimes annoying. You can rename
+   it at the content types settings or hide it in the form and auto generate a title by
+   using the auto nodetitle module http://drupal.org/project/auto_nodetitle.
+   
+ * If you want to link to a content profile of a user, you can always link to the path
+   "user/UID/profile/TYPE" where UID is the users id and TYPE the machine readable content
+   type name, an example path would be "user/1/profile/profile".
+   This path is working regardless the user has already profile content created or not.
+
+ * If you want to theme your content profile, you can do it like with any other content.
+   Read http://drupal.org/node/266817.
+   
+ * If you want a content profile to be private while your site content should be available
+   to the public, you need a module that allows configuring more fine grained access control
+   permissions, e.g. the module Content Access (http://drupal.org/project/content_access)
+   allows you to that.
+   
+ * There is also rules integration which is useful for customizing the behaviour of the
+   module. See below for more.
+
+
+
+Theming: Easily use profile information in your templates! 
+-----------------------------------------------------------
+Content Profile adds a new variable $content_profile to most templates related to users.
+So this variable allows easy access to the data contained in the users' profiles.
+Furthermore it does its job fast by lazy-loading and caching the needed content profile
+nodes.
+
+The $content_profile variable is available in the page, node, comment, user_name,
+user_profile, user_signature, search_result and some other templates. 
+
+$content_profile lets you access all variables of a profile, which are you used to
+have in a common node template. See http://drupal.org/node/11816.
+
+So in any of these templates you may use the $content_profile like this:
+
+<?php
+ // Just output the title of the content profile of type 'profile'
+ // If there is no such profile, it will output nothing.
+ echo $content_profile->get_variable('profile', 'title');
+
+ // Get all variables of the content profile of type 'profile'
+ $variables = $content_profile->get_variables('profile');
+ 
+ // Print out a list of all available variables
+ // If the user has no profile created yet, $variables will be FALSE.
+ print_r($variables);
+
+ if ($variables) {
+   // Print the title and the content.
+   echo $variables['title'];
+   echo $variables['content'];
+ }
+ else {
+   // No profile created yet.
+ }
+ 
+ // $content_profile also allows you to easily display the usual content profile's view
+ // supporting the same parameters as node_view().
+ echo $content_profile->get_view('profile');
+
+?>
+
+ Check the source of content_profile.theme_vars.inc to see what methods $content_profile
+ supports else.
+
+
+Adding $content_profile to further templates
+--------------------------------------------
+
+If you miss $content_profile in some templates containing user information (id), just
+fill a issue in content profile's queue so we can add it to the module.
+Furthermore you may let content_profile its variable to your custom templates by specifying
+the setting 'content_profile_extra_templates' in your site's settings.php.
+
+E.g. you may add:
+  $conf['content_profile_extra_templates'] = array('my_template');
+
+Where 'my_template' has to be the key of your template's entry in the theme_registry (hook_theme()).
+
+
+
+Rules integration
+------------------
+
+There is some integration to the rules module (http://drupal.org/project/rules), which offers
+a condition to check whether a user has already created a profile of a certain type. Then it
+offers an action for loading the content profile of a user, which makes it available to token
+replacements as well as to all other existing rules actions which deal with content.
+
+So this integration allows one to build some profile related rules with the rules module. As
+example the module ships with one deactivated default rule:
+
+  "Redirect to profile creation page, if users have no profile."
+  
+If you activate it at the rules "Triggered rules" page, it's going to be evaluated when a user
+logs in. Of course you can also alter the default rule and customize it so that it fits your needs,
+e.g. you could remove the redirect action so that only a message is displayed.
+
+
+
+
+---------------------------------------------
+Content Profile User Registration Integration
+----------------------------------------------
+
+There is a small extension module shipping with the main module, which allows one to enable
+registration integration per content profile. 
+
+
+This module builds upon the main content profile module. It allows to integrate
+the form of one or more content profile into the user registration page.
+
+
+Installation 
+------------
+ * Activiate the module.
+ * Be sure to read the usage notes below!
+ 
+ 
+ Usage:
+--------
+ * When you edit a profile content type there will be a further tab "Content profile",
+   which provides content profile specific settings. There is now a new field group
+   called "User Registration" which allows you to enable this feature for a content profile.
+   
+ * You need not grant anonymous users access to create the content profile. If you would do so,
+   anonymous users would be able to create anonymous profiles even without registering.
+   
+ * If you use the "Content permissions" module, which comes with CCK, make sure you grant access
+   to fields that should appear for anonymous users.
+   
+ * The weight of the profile (configurable at the content profile settings) controls the position
+   of the form elements on the registration page. 
+
+ * You may also hide some form elements at the settings. Basically it allows you to hide non-required
+   CCK fields as well as the title. If the title is hidden, it is set to the user's name.
+    
+ * For more control over the title use the "Automatic Nodetitles" module, which can be found
+   at http://drupal.org/project/auto_nodetitle. It integrates fine with this module. 
+
+ * Hiding required CCK fields is not supported, as the created content node would have empty
+   required fields afterwards, which in affect would make it impossible even for admins to edit
+   the content node.
+  
+ * So the "Hide other form elements" option allows you to hide all form elements not listed there,
+   but required CCK fields always stay.
+   
+   However, you can still hide required CCK fields by restricting anonymous access to them by using the 
+   "Content permissions" module of CCK. But be aware of this issue - maybe also restrict access for
+   other roles accordingly.
+
+ * If you want to hide the "body" field, just remove it from the content type in general at the content
+   type's settings page. Then instead of this, just create a CCK textfield, which can be hidden.  
+
+ * You can enable the registration integration for multiple profiles - however be aware that
+   shared form elements like the title only appear once and all created profile nodes get the same
+   values assigned.
+   
+ * For multiple registration paths for different roles, the AutoAssignRole module might help you:
+   http://drupal.org/project/autoassignrole. It comes with Content Profile Registration Integration,
+   so that you can select the profiles which should appear on each AutoAssignRole path (configurable
+   at the content profile settings). You'll need a version of AutoAssignRole released later than 
+   June 4, 2009. 
+
+ * If you want to prepopulate some other form elements, maybe hidden CCK fields you can use the rules
+   module for that. See http://drupal.org/project/rules.
+   Just configure a rule, that reacts on the creation of the content profile (event) and populates
+   your fields value (action).
+
+ * Putting file uploads on the registration form is not supported and probably won't work right.
+ 
+ * The CCK "Add more fields" feature is only working for users with javascript turned on in the
+   registration form. Users without javascript won't be able to add more fields. Interested developers
+   can find the related issue (in drupal itself) here: http://drupal.org/node/634984
+ 
+ 
+  
+-----------------------
+Content Profile Tokens
+-----------------------
+
+Original author: @author Ádám Lippai - Oghma ltd. (lippai.adam at oghma.hu)
+
+
+This is a small module that adds content profile tokens for textfields and number CCK fields for
+a user as well as to the 'flag friend' modules' requester and requestee.
+
+Warning: This module slows down the generation of users tokens, thus it might have some performance
+         implications for your site. Use it with caution. 
+
+Installation 
+------------
+ * Activiate the module.
+ 
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile-display-view.tpl.php b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile-display-view.tpl.php
new file mode 100644
index 0000000..8fb095e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile-display-view.tpl.php
@@ -0,0 +1,28 @@
+<?php
+// $Id: content_profile-display-view.tpl.php,v 1.1.2.2 2009/01/04 11:46:29 fago Exp $
+
+/**
+ * @file content-profile-display-view.tpl.php
+ *
+ * Theme implementation to display a content-profile.
+ */
+?>
+<?php if (isset($title)): ?>
+  <h3 class="content-profile-title" id="content-profile-title-<?php print $type; ?>">
+  <?php print $title; ?>
+  </h3>
+<?php endif; ?>
+<div class="content-profile-display" id="content-profile-display-<?php print $type; ?>">
+  <?php if (isset($tabs)) : ?>
+    <ul class="tabs content-profile">
+      <?php foreach ($tabs as $tab) : ?>
+        <?php if ($tab): ?>
+          <li><?php print $tab; ?></li>
+        <?php endif; ?>
+      <?php endforeach; ?>
+    </ul>
+  <?php endif; ?>
+  <?php if (isset($node->nid) && isset($content)): ?>
+    <?php print $content ?>
+  <?php endif; ?>
+</div>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.css b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.css
new file mode 100644
index 0000000..19b2e01
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.css
@@ -0,0 +1,21 @@
+ at CHARSET "UTF-8";
+
+div.content-profile-display {
+  border: 1px solid #DDD;
+  margin: 1em 0em;
+  padding: 0em 1em 1em 1em;
+}
+
+ul.content-profile {
+  border-bottom: 1px solid #bbb;
+  padding: 0.5em 1em;
+}
+
+ul.content-profile li {
+  display: inline;
+  padding: 0 2em;
+  border-right: 1px solid #ccc;
+  position: relative;
+  left: -1em;
+  background: none;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.info b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.info
new file mode 100644
index 0000000..36cbcd2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.info
@@ -0,0 +1,11 @@
+; $Id: content_profile.info,v 1.1.2.1 2008/02/01 16:00:24 fago Exp $
+name = "Content Profile"
+description = "Use content types for user profiles."
+package = "Content Profile"
+core = 6.x
+; Information added by drupal.org packaging script on 2010-04-07
+version = "6.x-1.0"
+core = "6.x"
+project = "content_profile"
+datestamp = "1270662007"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.install b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.install
new file mode 100644
index 0000000..9cfabe1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.install
@@ -0,0 +1,139 @@
+<?php
+// $Id: content_profile.install,v 1.1.2.7 2009/01/09 15:55:07 fago Exp $
+/**
+ * @file
+ * Content profile installation file.
+ */
+
+/**
+ * Implementation of hook_enable().
+ */
+function content_profile_enable() {
+  //enable the default content type 'profile' to be a content profile
+  $setting = variable_get('content_profile_profile', FALSE);
+  if (!$setting && $setting !== array()) {
+    variable_set('content_profile_profile', array());
+  }
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function content_profile_install() {
+  // Set the module weight to -1, so content_profile_user() gets called before
+  // node_user(), so that one can't set a node's uid to 0 on user deletion
+  // before the profile nodes are deleted.
+  db_query("UPDATE {system} SET weight = -1 WHERE name = 'content_profile'");
+
+  content_profile_import();
+
+  //create a profile type, if it doesn't exist yet
+  if (!node_get_types('type', 'profile')) {
+    $info = array(
+      'type' => 'profile',
+      'name' => t('Profile'),
+      'module' => 'node',
+      'description' => t('A user profile built as content.'),
+      'locked' => FALSE,
+      'custom' => TRUE,
+    );
+    $info = _node_type_set_defaults($info);
+    node_type_save((object)$info);
+  }
+}
+
+/**
+ * Import settings from nodeprofile / bio.
+ */
+function content_profile_import() {
+  //nodeprofile
+  if ($settings = variable_get('nodeprofile_settings', array())) {
+    $cp_setting = array();
+    foreach ($settings as $setting => $data) {
+      foreach ($data as $type => $value) {
+        $cp_settings[$type][$setting] = $value;
+      }
+    }
+    foreach ($cp_settings as $type => $data) {
+      variable_set('content_profile_use_'. $type, 1);
+      $data['edit_tab'] = $data['user_edit'] ? 'sub' : 0;
+      unset($data['user_edit']);
+      variable_set('content_profile_'. $type, $data);
+    }
+    variable_del('nodeprofile_settings');
+  }
+  //bio
+  if ($type = variable_get('bio_nodetype', FALSE)) {
+    variable_set('content_profile_use_'. $type, 1);
+    variable_del('bio_nodetype');
+  }
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function content_profile_uninstall() {
+  foreach (node_get_types('names') as $typename => $visiblename) {
+    if (variable_get('content_profile_use'. $typename, 0)) {
+      variable_del('content_profile_use_'. $typename);
+      variable_del('content_profile_'. $typename);
+    }
+  }
+}
+
+/**
+ * Set module weight to -1, as explained in content_profile_install().
+ */
+function content_profile_update_6001() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {system} SET weight = -1 WHERE name = 'content_profile'");
+  return $ret;
+}
+
+
+/**
+ * Make the profile type to be "custom", so it can be deleted.
+ */
+function content_profile_update_6002() {
+  $ret = array();
+  if (($type = node_get_types('type', 'profile')) && !$type->custom) {
+    $type->custom = TRUE;
+    node_type_save($type);
+  }
+  return $ret;
+}
+
+/**
+ * Update the settings to reflect the changes of the format
+ * ('edit_link_sub' has been removed in favour of 'edit_tab')
+ */
+function content_profile_update_6003() {
+  $ret = array();
+  drupal_load('module', 'content_profile');
+  foreach (content_profile_get_types('names') as $type => $type_name) {
+    $settings = content_profile_get_settings($type);
+    if (!empty($settings['edit_link_sub'])) {
+      unset($settings['edit_link_sub']);
+      $settings['edit_tab'] = 'sub';
+      content_profile_set_settings($type, $settings);
+    }
+  }
+  return $ret;
+}
+
+/**
+ * Due to an old bug it may be that the $settings of a content type
+ * are '0'. As it should be an array this generates errors.
+ * This update fixes up those scrambled settings.
+ */
+function content_profile_update_6004() {
+  $ret = array();
+  drupal_load('module', 'content_profile');
+  foreach (node_get_types('names') as $type => $type_name) {
+    $settings = variable_get('content_profile_'. $type, array());
+    if (!is_array($settings)) {
+      content_profile_set_settings($type, array());
+    }
+  }
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.module b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.module
new file mode 100644
index 0000000..48bc9d2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.module
@@ -0,0 +1,649 @@
+<?php
+// $Id: content_profile.module,v 1.1.2.48 2010/04/07 15:09:17 fago Exp $
+
+/**
+ * @file
+ * Marks content types as profiles.
+ */
+
+
+/**
+ * Implementation of hook_init().
+ */
+function content_profile_init() {
+  module_load_include('inc', 'content_profile', 'content_profile.theme_vars');
+}
+
+/**
+ * Implementation of hook_ctools_plugin_directory().
+ */
+function content_profile_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && $plugin == 'relationships') {
+    return 'panels/' . $plugin;
+  }
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function content_profile_menu() {
+  $items = array();
+
+  //Register a path for each content profile type
+  foreach (content_profile_get_types('names') as $type => $typename) {
+    $items['admin/content/node-type/'. str_replace('_', '-', $type) .'/edit'] = array(
+      'title' => 'Edit',
+      'type' => MENU_DEFAULT_LOCAL_TASK,
+    );
+    $items['admin/content/node-type/'. str_replace('_', '-', $type) .'/profile'] = array(
+      'title' => 'Content profile',
+      'description' => 'Configure the display and management of this content profile.',
+      'page callback' => 'drupal_get_form',
+      'page arguments' => array('content_profile_admin_settings', $type),
+      'access callback' => 'user_access',
+      'access arguments' => array('administer nodes'),
+      'type' => MENU_LOCAL_TASK,
+      'weight' => 1,
+    );
+  }
+  foreach (content_profile_get_types('names') as $type => $type_name) {
+    $items['user/%user/profile/'. $type] = array(
+      'title callback' => 'check_plain',
+      'title' => drupal_ucfirst($type_name),
+      'page callback' => 'content_profile_page_edit',
+      'page arguments' => array($type, 1),
+      'access callback' => 'content_profile_page_access',
+      'access arguments' => array($type, 1),
+      'weight' => content_profile_get_settings($type, 'weight'),
+      'file' => 'node.pages.inc',
+      'file path' => drupal_get_path('module', 'node'),
+      'type' => content_profile_get_settings($type, 'edit_tab') == 'top' ? MENU_LOCAL_TASK : MENU_CALLBACK,
+    );
+  }
+  return $items;
+}
+
+/**
+ * Implementation of hook_menu_alter().
+ * Take over menu items generated by the user module for our categories.
+ */
+function content_profile_menu_alter(&$items) {
+  foreach (content_profile_get_types('names', 'edit_tab', 'sub') as $type => $type_name) {
+    if (!empty($items['user/%user_category/edit/'. $type])) {
+      $item = &$items['user/%user_category/edit/'. $type];
+      $item = array(
+        'page callback' => 'content_profile_page_edit',
+        'page arguments' => array($type, 1),
+        'access callback' => 'content_profile_page_access',
+        'access arguments' => array($type, 1),
+        'file' => 'node.pages.inc',
+        'file path' => drupal_get_path('module', 'node'),
+      ) + $item;
+    }
+  }
+}
+
+
+function content_profile_page_access($type, $account) {
+  if ($node = content_profile_load($type, $account->uid)) {
+    return node_access('update', $node);
+  }
+  // Else user may view the page when they are going to create their own profile
+  // or have permission to create it for others.
+  global $user;
+  if ($user->uid == $account->uid || user_access('administer nodes') ){
+    return node_access('create', $type);
+  }
+  return FALSE;
+}
+
+/**
+ * Presents a node editing or adding form for the given content profile.
+ */
+function content_profile_page_edit($type, $account) {
+  drupal_set_title(check_plain($account->name));
+  $node = content_profile_load($type, $account->uid);
+  if (!$node) {
+    $node = array('uid' => $account->uid, 'name' => (isset($account->name) ? $account->name : ''), 'type' => $type, 'language' => '');
+  }
+  return drupal_get_form($type .'_node_form', $node);
+}
+
+
+/**
+ * Implementation of hook_views_api().
+ */
+function content_profile_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'content_profile') .'/views',
+  );
+}
+
+
+/**
+ * Menu callback; content profile settings.
+ */
+function content_profile_admin_settings(&$form_state, $type) {
+  $form_state['type'] = $type;
+
+  $form['weight'] = array(
+    '#type' => 'weight',
+    '#title' => t("Weight"),
+    '#default_value' => content_profile_get_settings($type, 'weight'),
+    '#description' => t('The weight of content of this content type where ever they appear - this applies to the input form integration as well to the display integration.'),
+    '#weight' => 5,
+  );
+  $form['display'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Display settings'),
+    '#description' => t('Customize the display of this content profile.'),
+    '#collapsible' => TRUE,
+  );
+  $form['display']['user_display'] = array(
+    '#type' => 'radios',
+    '#title' => t("User page display style"),
+    '#default_value' => content_profile_get_settings($type, 'user_display'),
+    '#options' => array(
+      0 => t("Don't display this content profile on the user account page"),
+      'link' => t('Display it as link to the profile content'),
+      'full' => t('Display the full content'),
+      'teaser' => t("Display the content's teaser"),
+    ),
+  );
+  $form['display']['edit_link'] = array(
+    '#type' => 'checkbox',
+    '#title' => t("Include an edit link to the display"),
+    '#default_value' => content_profile_get_settings($type, 'edit_link'),
+  );
+  $form['display']['add_link'] = array(
+    '#type' => 'checkbox',
+    '#title' => t("Show a link to the content profile creation page, if there is no profile."),
+    '#default_value' => content_profile_get_settings($type, 'add_link'),
+    '#description' => t("If selected and the user has no profile of this type yet, a link to add one is shown on the user page."),
+  );
+  $form['display']['edit_tab'] = array(
+    '#type' => 'radios',
+    '#title' => t("Profile edit tab"),
+    '#default_value' => content_profile_get_settings($type, 'edit_tab'),
+    '#options' => array(
+      0 => t('None'),
+      'top' => t("Show a tab at the user's page"),
+      'sub' => t("Show a secondary tab below the user's edit tab"),
+    ),
+  );
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Submit'),
+    '#weight' => 10,
+  );
+  return $form;
+}
+
+function content_profile_admin_settings_submit($form, &$form_state) {
+  $settings = content_profile_get_settings($form_state['type']);
+  foreach (content_profile_settings_info() as $setting => $default) {
+    if (isset($form_state['values'][$setting])) {
+      $settings[$setting] = $form_state['values'][$setting];
+    }
+  }
+  content_profile_set_settings($form_state['type'], $settings);
+  drupal_set_message('Your changes have been saved.');
+  menu_rebuild();
+}
+
+/**
+ * Determine if a given node is a content_profile.
+ * @param $type
+ *   The node object or the node's type
+ */
+function is_content_profile($type) {
+  if (is_object($type)) {
+    $type = $type->type;
+  }
+  return variable_get('content_profile_use_'. $type, FALSE);
+}
+
+/**
+ * Builds a list of available content types that are marked as content_profiles,
+ * and returns an array of content profile content types in the specified format.
+ *
+ * @param $op
+ *   When set to 'types', content profile content types are returned
+ *   as type objects. When set to 'names', only their type names are returned.
+ * @param $setting
+ *   If set, only content types that have this setting activated are returned.
+ *   Leave it NULL to get all content profile types.
+ * @param $value
+ *   The value to compare the given setting too.
+ */
+function content_profile_get_types($op = 'types', $setting = NULL , $value = TRUE) {
+  $types = array();
+
+  foreach (node_get_types($op) as $type => $info) {
+    if (is_content_profile($type) && (!isset($setting) || content_profile_get_settings($type, $setting) == $value)) {
+      $types[$type] = $info;
+    }
+  }
+  return $types;
+}
+
+/**
+ * Implementation of hook_node_type().
+ * Rename or delete the settings variable if a type changes.
+ */
+function content_profile_node_type($op, $info) {
+  switch ($op) {
+    case 'delete':
+      variable_del('content_profile_use_'. $info->type);
+      variable_del('content_profile_'. $info->type);
+      break;
+    case 'update':
+      if (!empty($info->old_type) && $info->old_type != $info->type) {
+        if (is_content_profile($info->old_type)) {
+          $settings = variable_get('content_profile_'. $info->old_type, array());
+          variable_del('content_profile_use_'. $info->old_type);
+          variable_del('content_profile_'. $info->old_type);
+          variable_set('content_profile_use_'. $info->type, 1);
+          variable_set('content_profile_'. $info->type, $settings);
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_form_alter().
+ */
+function content_profile_form_alter(&$form, $form_state, $form_id) {
+  if ($form_id == 'node_type_form') {
+    $form['content_profile'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Content Profile'),
+      '#group' => 'additional_settings',
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+      '#weight' => 32,
+    );
+    $form['content_profile']['content_profile_use'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use this content type as a content profile for users'),
+      '#default_value' => variable_get('content_profile_use_'. $form['#node_type']->type, FALSE),
+    );
+  }
+  elseif (isset($form['#node']) && $form['#node']->type .'_node_form' == $form_id && is_content_profile($form['#node'])) {
+    // Customize the redirect target and buttons of our own node forms.
+    if (arg(0) == 'user' && is_numeric(arg(1)) && arg(2) == 'edit' || arg(2) == 'profile') {
+      $form['buttons']['preview']['#access'] = FALSE;
+      $form['buttons']['delete']['#access'] = FALSE;
+      $form['#redirect'] = arg(2) == 'profile' ? 'user/'. $form['#node']->uid : $_GET['q'];
+    }
+    // Set the author value - note that this works only for admins.
+    if (!empty($_GET['uid']) && ($uid = intval($_GET['uid'])) && ($user = user_load($uid))) {
+      $form['author']['name']['#default_value'] = $user->name;
+    }
+  }
+}
+
+/**
+ * Implementation of hook_user().
+ */
+function content_profile_user($op, &$edit, &$account, $category = NULL) {
+  global $user;
+
+  switch ($op) {
+    case 'categories':
+      $data = array();
+      foreach (content_profile_get_types('names', 'edit_tab', 'sub') as $type => $type_name) {
+        $data[] = array(
+          'name' => $type,
+          'title' => drupal_ucfirst($type_name),
+          'weight' => content_profile_get_settings($type, 'weight') + 1,
+        );
+      }
+      return $data;
+
+    case 'view':
+      $account->content['content_profile'] = content_profile_show_profiles($account->uid);
+      break;
+
+    case 'delete':
+      // Retrieve all profile nodes (in any language) for this user by issueing an SQL query.
+      if ($types = content_profile_get_types()) {
+        $condition = array_fill(0, count($types), "type = '%s'");
+        $arguments = array_merge(array_keys($types), array($account->uid));
+
+        $result = db_query("SELECT * FROM {node} WHERE (". implode(' OR ', $condition) .") AND uid = %d", $arguments);
+        while ($node = db_fetch_object($result)) {
+          _content_profile_node_delete($node);
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * The original node_delete() function uses node_load() to get the $node object.
+ * Unfortunately, when a hook_user('delete') is called, node_load() doesn't
+ * work anymore because the user has already been deleted, and node_load()
+ * still expects the user to exist in the {user} table.
+ *
+ * So this is a modified copy of node_delete() that deletes a node without
+ * calling node_load(), taking the full $node object (as retrieved by a simple
+ * "SELECT * FROM {node}" query) instead of just the $nid.
+ */
+function _content_profile_node_delete($node) {
+  // Copied over from node_load(), so that node_invoke('delete') gets
+  // the fully extended node object, like modules would expect:
+
+  if ($node->nid) {
+    // Call the node specific callback (if any) and piggy-back the
+    // results to the node or overwrite some values.
+    if ($extra = node_invoke($node, 'load')) {
+      foreach ($extra as $key => $value) {
+        $node->$key = $value;
+      }
+    }
+    if ($extra = node_invoke_nodeapi($node, 'load')) {
+      foreach ($extra as $key => $value) {
+        $node->$key = $value;
+      }
+    }
+  }
+
+  // Copied over from node_delete():
+
+  db_query('DELETE FROM {node} WHERE nid = %d', $node->nid);
+  db_query('DELETE FROM {node_revisions} WHERE nid = %d', $node->nid);
+
+  // Call the node-specific callback (if any):
+  node_invoke($node, 'delete');
+  node_invoke_nodeapi($node, 'delete');
+
+  // Clear the cache so an anonymous poster can see the node being deleted.
+  cache_clear_all();
+
+  // Remove this node from the search index if needed.
+  if (function_exists('search_wipe')) {
+    search_wipe($node->nid, 'node');
+  }
+  watchdog('content', '@type: deleted %title.', array('@type' => $node->type, '%title' => $node->title));
+  drupal_set_message(t('@type %title has been deleted.', array('@type' => node_get_types('name', $node), '%title' => $node->title)));
+}
+
+/**
+ * Implementation of hook_nodeapi().
+ */
+function content_profile_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
+
+  if ($op == 'prepare' && is_content_profile($node) && !isset($node->nid) && $node->uid && !user_access('administer nodes') && arg(0) != 'admin') {
+    // Check if this nodetype already exists
+    if ($nid = content_profile_profile_exists($node, $node->uid)) {
+      // This node already exists, redirect to edit page
+      drupal_goto('node/'. $nid .'/edit', 'destination=user/'. $node->uid);
+    }
+  }
+  elseif ($op == 'validate' && is_content_profile($node) && user_access('administer nodes')) {
+    $form = $a3;
+    // Only validate if the user-name changed or we add a new node
+    if (!empty($node->nid) && $form['author']['name']['#default_value'] == $node->name) {
+      return;
+    }
+    //check whether the selected user has already a profile
+    $uid = db_result(db_query("SELECT uid FROM {users} WHERE name = '%s'", $node->name));
+    if ($uid && content_profile_profile_exists($node, $uid)) {
+      form_set_error('name', t('This user already has a content profile of this type. You can only create one profile per user.'));
+    }
+  }
+  elseif ($op == 'prepare translation' && is_content_profile($node->translation_source)) {
+    // Make sure the translated profile belongs to the same user.
+    $node->uid = $node->translation_source->uid;
+    $node->name = $node->translation_source->name;
+  }
+}
+
+/**
+ * Checks whether a node of this type exists already for the author
+ *
+ * @param $node
+ *   The node, which is to be created.
+ * @param $uid
+ *   The user to check for.
+ * @return If a node exists, the node id, FALSE else.
+ */
+function content_profile_profile_exists($node, $uid) {
+  $query = "SELECT n.nid AS nid FROM {node} n WHERE n.type = '%s' AND n.uid = %d ";
+  if (module_exists('translation') && translation_supported_type($node->type)) {
+    $query .= "AND n.language = '%s'";
+  }
+  return db_result(db_query($query, $node->type, $uid, $node->language));
+}
+
+/**
+ * Returns the content_profiles' settings.
+ * @param $type
+ *   The content type to return settings for.
+ * @param $return
+ *   'all' or one of the content_profile_available_settings(),
+ *   e.g. user_edit, register or weight.
+ */
+function content_profile_get_settings($type, $return = 'all') {
+  $settings = variable_get('content_profile_'. $type, array());
+  $settings += content_profile_settings_info();
+  if ($return == 'all') {
+    return $settings;
+  }
+  return $settings[$return];
+}
+
+/**
+ * Saves the content_profile settings of a content type.
+ */
+function content_profile_set_settings($type, $settings) {
+  variable_set('content_profile_'. $type, $settings);
+}
+
+/**
+ * Returns an array, which defines the available settings
+ * and their default value.
+ */
+function content_profile_settings_info() {
+  return module_invoke_all('content_profile_settings');
+}
+
+/**
+ * Implementation of hook_content_profile_settings().
+ *
+ * Defines content profile settings and their default value.
+ */
+function content_profile_content_profile_settings() {
+  return array(
+    'weight' => 0,
+    'user_display' => 'full',
+    'edit_link' => 0,
+    'edit_tab' => 'sub',
+    'add_link' => 1,
+  );
+}
+
+/**
+ * Loads the node, like node_load but makes sure the results are cached.
+ *
+ * @param $type
+ *   The content profile's type.
+ * @param $uid
+ *   The profile owner's user id.
+ * @param $lang
+ *   Optional. If translation is enabled, the language of the profile to return.
+ * @param $reset
+ *   Optional. If set, the cache is reset.
+ */
+function content_profile_load($type, $uid, $lang = '', $reset = NULL) {
+  static $cache = array();
+
+  if (!isset($cache[$type][$uid][$lang]) || $reset) {
+    $cache[$type][$uid][$lang] = FALSE;
+    $params = array('type' => $type, 'uid' => $uid);
+    if ($node = node_load($lang ? $params + array('language' => $lang) : $params, NULL, $reset)) {
+      $cache[$type][$uid][$lang] = $node->nid;
+    }
+    return $node;
+  }
+  return !empty($cache[$type][$uid][$lang]) ? node_load($cache[$type][$uid][$lang]) : FALSE;
+}
+
+/**
+ * Implementation of hook_help().
+ *
+ * Show node submission guidelines for content profile node forms.
+ */
+function content_profile_help($path, $arg) {
+  if (preg_match('/user\/\%\/(profile|edit)\/(.*)/', $path, $matches)) {
+    foreach (content_profile_get_types('names') as $type => $typename) {
+      if ($type == $matches[2]) {
+        $node = content_profile_load($type, $arg[1]);
+        if ($node) {
+          return node_help('node/%/edit', array(1 => $node->nid));
+        }
+        else {
+          return node_help('node/add/'. $type, array('node', 'add', $type));
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Returns an array suitable for use with drupal_render,
+ * that shows all content_profiles as configured by the admin.
+ */
+function content_profile_show_profiles($uid) {
+  global $user;
+
+  $content = array();
+  foreach (content_profile_get_types('names') as $type => $type_name) {
+    $node = content_profile_load($type, $uid);
+
+    if (($style = content_profile_get_settings($type, 'user_display')) && $node && node_access('view', $node)) {
+      $content['content_profile_'. $type] = array(
+        '#theme' => ($style == 'link') ? 'content_profile_display_link' : 'content_profile_display_view',
+        '#edit_link' => content_profile_get_settings($type, 'edit_link'),
+        '#uid' => $uid,
+        '#style' => $style,
+        '#content_type' => $type,
+        '#weight' => content_profile_get_settings($type, 'weight'),
+        '#suffix' => '<br />',
+      );
+
+      // Working around the bug described at http://drupal.org/node/302873
+      module_load_include('inc', 'content_profile', 'content_profile.theme');
+    }
+    elseif (user_access('create '. $type .' content') && content_profile_get_settings($type, 'add_link') && !$node && ($uid == $user->uid || user_access('administer nodes'))) {
+      $content['content_profile_'. $type] = array(
+        '#admin' => $uid != $user->uid,
+        '#theme' => 'content_profile_display_add_link',
+        '#uid' => $uid,
+        '#content_type' => $type,
+        '#weight' => content_profile_get_settings($type, 'weight'),
+        '#suffix' => '<br />',
+      );
+    }
+  }
+  if ($content) {
+    $content['#prefix'] = '<p id="content-profile-view">';
+    $content['#suffix'] = '</p>';
+  }
+  return $content;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function content_profile_theme() {
+  $return = array(
+    'content_profile_display_view' => array(
+      'template'  => 'content_profile-display-view',
+      'arguments' => array('element' => NULL),
+      'file' => 'content_profile.theme.inc',
+    ),
+    'content_profile_display_add_link' => array(
+      'file' => 'content_profile.theme.inc',
+    ),
+    'content_profile_display_link' => array(
+      'file' => 'content_profile.theme.inc',
+    ),
+    'content_profile_display_tab_view' => array(
+      'file' => 'content_profile.theme.inc',
+    ),
+    'content_profile_display_tab_edit' => array(
+      'file' => 'content_profile.theme.inc',
+    ),
+  );
+  if (module_exists('pageroute')) {
+    $return['content_profile_pageroute_empty']  = array(
+      'arguments' => array('type_name' => NULL),
+    	'file' => 'content_profile.pageroute.inc',
+    );
+  }
+  return $return;
+}
+
+/**
+ * Implementation of hook_theme_registry_alter().
+ * Adds our own preprocess functions to some templates. Further templates can be set in
+ * $conf['content_profile_extra_templates'] in settings.php.
+ */
+function content_profile_theme_registry_alter(&$items) {
+  $templates = array_merge(array(
+    'author_pane',
+    'comment',
+    'node',
+    'page',
+    'search_result',
+    'username',
+    'user_profile',
+    'user_signature',
+  ), variable_get('content_profile_extra_templates', array()));
+
+  foreach ($templates as $key) {
+    if (isset($items[$key])) {
+      $items[$key] += array('preprocess functions' => array());
+      $items[$key]['preprocess functions'][] = 'content_profile_template_preprocess';
+    }
+  }
+}
+
+/**
+ * Adds $content_profile variable if we can find a $uid.
+ */
+function content_profile_template_preprocess(&$variables, $hook) {
+  // Search the uid
+  foreach (array('account_id', 'uid', 'account', 'node', 'comment', 'user') as $name) {
+    if (isset($variables[$name])) {
+      $uid = is_object($variables[$name]) ? $variables[$name]->uid : $variables[$name];
+      $variables['content_profile'] = new content_profile_theme_variables($uid);
+      break;
+    }
+  }
+}
+
+/**
+ * Implementation of hook_simpletest().
+ */
+function content_profile_simpletest() {
+  // Scan through content_profile/tests directory for any .test files to tell SimpleTest module.
+  $tests = file_scan_directory(drupal_get_path('module', 'content_profile') .'/tests', '\.test');
+  return array_keys($tests);
+}
+
+/**
+ * Implementation of hook_pageroute_info() for Pageroute integration.
+ */
+function content_profile_pageroute_info() {
+  return array(
+    'content_profile' => array(
+      'viewprofile' => 'content_profile.pageroute',
+      'editprofile' => 'content_profile.pageroute',
+    )
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.pageroute.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.pageroute.inc
new file mode 100644
index 0000000..ffc193f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.pageroute.inc
@@ -0,0 +1,130 @@
+<?php
+// $Id: content_profile.pageroute.inc,v 1.1.2.1 2010/01/12 13:50:39 fago Exp $
+
+/**
+ * @file
+ * Pageroute intergration classes
+ */
+
+include_once(drupal_get_path('module', 'pageroute') . '/pageroute.page_edit.inc');
+include_once(drupal_get_path('module', 'pageroute') . '/pageroute.page_view.inc');
+
+/**
+ * theme_content_profile_pageroute_empty generates a message, if there is no content profile for the user.
+ */
+function theme_content_profile_pageroute_empty($type_name) {
+  return '<div class="content-profile-empty">'.
+    t('You have not created a @type yet. Go ahead and create one!', array('@type' => $type_name)) .'</div>';
+}
+
+/**
+ * ContentProfilePageEditProfile displays a form that allows users to edit content profiles.
+ */
+class ContentProfilePageEditProfile extends PageroutePageEdit {
+
+  public function getForm(&$form, &$form_state, &$args) {
+    $args['hide_pageroute_buttons'] = FALSE;
+    $args['default_target'] = PAGEROUTE_CURRENT;
+    $page = &$form_state['page'];
+
+    if (isset($form_state['node']) && $form_state['node']['type'] == $this->options['content-type']) {
+      $node = $form_state['node'];
+    }
+    else {
+      if (isset($page)) {
+        $node = node_load(array(
+        	'type' => $this->options['content-type'],
+        	'uid' => pageroute_page_get_uid($page),
+        ));
+      }
+    }
+    if (empty($node)) {
+      PageroutePageAdd::setNodeAddForm($form, $form_state, $page);
+    }
+    else {
+      $this->setNodeEditForm($form, $form_state, $page, $args, $node);
+    }
+    parent::unsetForm($form);
+  }
+
+  public function getAdminForm($page, &$form) {
+
+    $form['options']['content-type'] = array(
+      '#type' => 'select',
+      '#title' => t('Profile content type'),
+      '#options' => content_profile_get_types('names'),
+      '#default_value' => $page->options['content-type'],
+      '#weight' => 2,
+      '#description' => t('Select a content profile type.'),
+    );
+
+    PageroutePage::nodeUi($page, $form, TRUE);
+  }
+
+  public static function help() {
+    return t('A page of this type will present a content profile node editing form of a configurable content-profile-type. It will edit the node with the id taken from the first argument of the pageroute. Furthermore this type can be configured to show a node adding form if the content profile is not existing. So you can build a pageroute that manages the creation and editing of content profiles.');
+  }
+
+  public static function info() {
+    return array('name' => t('Content profile editing form'));
+  }
+
+  public function setUp() {}
+
+  public static function getDefaultSubmitHandler($form) {
+    return 'node_form_submit';
+  }
+
+}
+
+/**
+ * ContentProfilePageViewProfile displays a content profile.
+ */
+class ContentProfilePageViewProfile extends PageroutePageView {
+  /*
+   * Returns the page display for the configured node
+   */
+  public function getForm(&$form, &$form_state, &$args) {
+    $page = &$form_state['page'];
+
+    $args['hide_pageroute_buttons'] = FALSE;
+    $args['default_target'] = PAGEROUTE_CURRENT;
+
+    $node = node_load(array(
+      'type' => $page->options['content-type'],
+      'uid' => pageroute_page_get_uid($page),
+    ));
+
+    if ($node->nid && node_access('view', $node)) {
+      if (empty($this->title)) {
+        drupal_set_title(check_plain($node->title));
+      }
+      node_tag_new($node->nid);
+      $form += array('pageroute-view' => array('#value' => node_view($node, FALSE, TRUE, FALSE)));
+    }
+    else {
+      $type_name = node_get_types('name', $page->options['content-type']);
+      $form += array('pageroute-view' => array('#value' => theme('content_profile_pageroute_empty', $type_name)));
+    }
+  }
+
+  public function getAdminForm($page, &$form) {
+    $form['options']['content-type'] = array(
+      '#type' => 'select',
+      '#title' => t('Profile content type'),
+      '#options' => content_profile_get_types('names'),
+      '#required' => TRUE,
+      '#default_value' => $page->options['content-type'],
+      '#weight' => 2,
+      '#description' => t('You can only use content types marked as \'content profile\''),
+    );
+  }
+
+  public static function help() {
+    return t('The lonely node display page can be used to view this lonely node. This might be useful for displaying the lonely node aftercreation or update. There will be a (themeable) message if there is no node that can be displayed.');
+  }
+
+  public static function info() {
+    return array('name' => t('Content profile display'));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.rules.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.rules.inc
new file mode 100644
index 0000000..8894a2c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.rules.inc
@@ -0,0 +1,97 @@
+<?php
+// $Id: content_profile.rules.inc,v 1.1.2.2 2009/03/30 10:20:01 fago Exp $
+
+/**
+ * @file
+ * Some rules conditions/actions
+ */
+
+/**
+ * Implementation of hook_rules_condition_info().
+ */
+function content_profile_rules_condition_info() {
+  return array(
+    'content_profile_user_has_profile_condition' => array(
+      'label' => t('User has content profile'),
+      'arguments' => array(
+        'user' => array('type' => 'user', 'label' => t('User')),
+      ),
+      'module' => 'Content Profile',
+    ),
+  );
+}
+
+function content_profile_user_has_profile_condition($user, $settings) {
+  $node = content_profile_load($settings['type'], $user->uid);
+  return (bool)$node;
+}
+
+function content_profile_user_has_profile_condition_form($settings, &$form) {
+  $settings += array('type' => array());
+  $form['settings']['type'] = array(
+    '#type' => 'select',
+    '#title' => t('Content Profile Content Type'),
+    '#options' => content_profile_get_types('names'),
+    '#default_value' => $settings['type'],
+    '#description' => t('Select the Content Profile content type to check for.'),
+    '#required' => TRUE,
+  );
+}
+
+function content_profile_user_has_profile_condition_label($settings, $argument_labels) {
+  return t('@user has his @type created', $argument_labels + array('@type' => node_get_types('name', $settings['type'])));
+}
+
+/**
+ * Implementation of hook_rules_action_info().
+ */
+function content_profile_rules_action_info() {
+  return array(
+    'content_profile_action_load' => array(
+      'label' => t('Load Content Profile'),
+      'arguments' => array(
+        'user' => array('type' => 'user', 'label' => t('User, whose profile should be loaded')),
+      ),
+      'new variables' => array(
+        'profile_node' => array('type' => 'node', 'label' => t('Content Profile')),
+      ),
+      'module' => 'Content Profile',
+    ),
+  );
+}
+
+/**
+ * Loads a Content Profile
+ */
+function content_profile_action_load($user, $settings) {
+  if ($node = content_profile_load($settings['type'], $user->uid)) {
+    return array('profile_node' => $node);
+  }
+}
+
+function content_profile_action_load_form($settings, &$form) {
+  $settings += array('type' => array());
+  $form['settings']['type'] = array(
+    '#type' => 'select',
+    '#title' => t('Content Profile Content Type'),
+    '#options' => content_profile_get_types('names'),
+    '#default_value' => $settings['type'],
+    '#description' => t('Select the Content Profile content type to load.'),
+    '#required' => TRUE,
+  );
+}
+
+function content_profile_action_load_label($settings, $argument_labels) {
+  return t("Load @user's @type", $argument_labels + array('@type' => node_get_types('name', $settings['type'])));
+}
+
+
+/**
+ * Support upgrading from nodeprofile-workflow-ng integration.
+ */
+function nodeprofile_user_has_profile_condition_upgrade(&$element) {
+  $element['#name'] = 'content_profile_user_has_profile_condition';
+}
+function nodeprofile_action_load_upgrade(&$element) {
+  $element['#name'] = 'content_profile_action_load';
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.rules_defaults.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.rules_defaults.inc
new file mode 100644
index 0000000..7c10ca0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.rules_defaults.inc
@@ -0,0 +1,112 @@
+<?php
+// $Id: content_profile.rules_defaults.inc,v 1.1.2.2 2009/01/26 15:33:00 fago Exp $
+/**
+ * @file Rules default rules
+ */
+
+/**
+ * Implementation of hook_rules_defaults().
+ * Add a disabled default rule which redirects to the profile creation page, if users have
+ * no profile.
+ */
+function content_profile_rules_defaults() {
+  $types = array_keys(content_profile_get_types('names'));
+  $type = array_shift($types);
+  $config =
+array (
+  'rules' =>
+  array (
+    'content_profile_rule_1' =>
+    array (
+      '#type' => 'rule',
+      '#set' => 'event_user_login',
+      '#label' => 'Redirect to profile creation page, if users have no profile.',
+      '#active' => 0,
+      '#weight' => '0',
+      '#conditions' =>
+      array (
+        0 =>
+        array (
+          '#negate' => 1,
+          '#weight' => 0,
+          '#info' =>
+          array (
+            'label' => 'Logged in user has his Profile created',
+            'arguments' =>
+            array (
+              'user' =>
+              array (
+                'type' => 'user',
+                'label' => 'User',
+              ),
+            ),
+            'module' => 'Content Profile',
+          ),
+          '#name' => 'content_profile_user_has_profile_condition',
+          '#settings' =>
+          array (
+            'type' => $type,
+            '#argument map' =>
+            array (
+              'account' => 'user',
+            ),
+          ),
+          '#type' => 'condition',
+        ),
+      ),
+      '#actions' =>
+      array (
+        0 =>
+        array (
+          '#type' => 'action',
+          '#settings' =>
+          array (
+            'path' => 'node/add/'. str_replace('_', '-', $type),
+            'query' => '',
+            'fragment' => '',
+            'force' => 1,
+            'override' => 1,
+          ),
+          '#name' => 'rules_action_drupal_goto',
+          '#info' =>
+          array (
+            'label' => 'Redirect to profile creation page',
+            'label callback' => false,
+            'module' => 'System',
+            'eval input' =>
+            array (
+              0 => 'path',
+              1 => 'query',
+              2 => 'fragment',
+            ),
+          ),
+          '#weight' => 0,
+        ),
+        1 =>
+        array (
+          '#weight' => 0,
+          '#info' =>
+          array (
+            'label' => 'Show a message',
+            'label callback' => false,
+            'module' => 'System',
+            'eval input' =>
+            array (
+              0 => 'message',
+            ),
+          ),
+          '#name' => 'rules_action_drupal_message',
+          '#settings' =>
+          array (
+            'message' => 'You haven\'t filled out your profile information yet. Please do so now!',
+            'error' => 1,
+          ),
+          '#type' => 'action',
+        ),
+      ),
+    ),
+  ),
+);
+
+  return $config;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.theme.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.theme.inc
new file mode 100644
index 0000000..ab9b2e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.theme.inc
@@ -0,0 +1,113 @@
+<?php
+// $Id: content_profile.theme.inc,v 1.1.2.9 2009/09/15 15:35:47 fago Exp $
+
+/**
+ * @file
+ * Theme and template preprocessing code
+ */
+
+/**
+ * Themes the add link.
+ */
+function theme_content_profile_display_add_link($element) {
+  $type = $element['#content_type'];
+  $uid = $element['#admin'] ? 'uid='. intval($element['#uid']) .'&' : '';
+  $text = t($element['#admin'] ? "Create the user's @profile_node." : "Create your @profile_node.", array('@profile_node' => node_get_types('name', $type)));
+  return l($text, content_profile_get_add_path($type, $element['#uid']), array('query' => $uid . drupal_get_destination(), 'html' => TRUE));
+}
+
+/**
+ * Theme function for the content_profile display as link
+ */
+function theme_content_profile_display_link($element) {
+  if ($node = content_profile_load($element['#content_type'], $element['#uid'])) {
+    if (node_access('view', $node)) {
+      $output = l(node_get_types('name', $node->type), 'node/'. $node->nid);
+      if ($element['#edit_link'] && node_access('update', $node)) {
+        $output .= ' '. l('['. t('edit') .']', content_profile_get_edit_path($node), array('query' => drupal_get_destination()));
+      }
+      return $output;
+    }
+  }
+}
+
+/**
+ * Implementation of content_profile_preprocess_HOOK()
+ */
+function content_profile_preprocess_content_profile_display_view(&$variables) {
+  $element = $variables['element'];
+  $node = content_profile_load($element['#content_type'], $element['#uid']);
+  $variables['node'] = &$node;
+  $variables['uid'] = $element['#uid'];
+  $variables['type'] = $element['#content_type'];
+
+  $path = drupal_get_path('module', 'content_profile') .'/content_profile.css';
+  drupal_add_css($path, 'module', 'all', FALSE);
+
+  $variables['title'] = check_plain(node_get_types('name', $node->type));
+
+  $tabs = array();
+  if ($element['#edit_link']) {
+    $tabs[] = theme('content_profile_display_tab_view', $node);
+    $tabs[] = theme('content_profile_display_tab_edit', $node);
+  }
+  if (count($tabs) > 0) {
+    $variables['tabs'] = $tabs;
+  }
+  $variables['content'] = node_view($node, ($element['#style'] == 'teaser'), TRUE, TRUE);
+}
+
+/**
+ * Themes the view tab
+ */
+function theme_content_profile_display_tab_view($node) {
+  return l(t('View'), 'node/'. $node->nid);
+}
+
+/**
+ * Themes the edit tab
+ */
+function theme_content_profile_display_tab_edit($node) {
+  if (node_access('update', $node)) {
+    return l(t('Edit'), content_profile_get_edit_path($node), array('query' => drupal_get_destination()));
+  }
+}
+
+/**
+ * Gets the edit path for a content_profile
+ */
+function content_profile_get_edit_path($node) {
+  $handler = variable_get('content_profile_path_handler', 'content_profile_default_path_handler');
+  return $handler('edit', $node, $node->uid);
+}
+
+/**
+ * Gets the add path for a content_profile of the active user
+ */
+function content_profile_get_add_path($type, $uid) {
+  $handler = variable_get('content_profile_path_handler', 'content_profile_default_path_handler');
+  return $handler('add', $type, $uid);
+}
+
+/**
+ * Default path handler for content profile, which uses the default system paths
+ *
+ * @param $action 'add' or 'edit
+ * @param $arg For 'add' the content type, for 'edit' the node to be edited
+ * @param $uid the uid of the profile's owner.
+ */
+function content_profile_default_path_handler($action, $arg, $uid) {
+  $type = $action == 'add' ? $arg : $arg->type;
+  if (content_profile_get_settings($type, 'edit_tab') == 'top') {
+    return 'user/'. $uid . '/profile/'. $type;
+  }
+  elseif (content_profile_get_settings($type, 'edit_tab') == 'sub') {
+    return 'user/'. $uid . '/edit/'. $type;
+  }
+  elseif ($action == 'add') {
+    return 'node/add/'. str_replace('_', '-', $arg);
+  }
+  else {
+    return 'node/'. $arg->nid .'/edit';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.theme_vars.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.theme_vars.inc
new file mode 100644
index 0000000..38511b1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/content_profile.theme_vars.inc
@@ -0,0 +1,119 @@
+<?php
+// $Id: content_profile.theme_vars.inc,v 1.1.2.6 2009/07/31 16:41:15 fago Exp $
+
+/**
+ * @file
+ * Provides a helper class for lazy loading of variables for themes.
+ */
+
+/**
+ * A helper class, which offers lazy loading of variables for themes.
+ */
+class content_profile_theme_variables {
+
+  var $uid;
+  var $_cache = array();
+
+  function content_profile_theme_variables($uid) {
+    $this->uid = $uid;
+  }
+
+  /**
+   * Gets the user id of the profiles owner.
+   */
+  function get_uid() {
+    return $uid;
+  }
+
+  /**
+   * Gets all type names keyed with their machine readable names.
+   */
+  function get_profile_types() {
+    return content_profile_get_types('names');
+  }
+
+  /**
+   * Gets all template variables for the content profile of this type.
+   *
+   * @param $type
+   *   The type of the user's content profile
+   * @param $teaser
+   *   Whether the value is to be generated for the teaser.
+   * @param $page
+   *   Whether the value is to be generated for the page view.
+   *
+   * @return
+   *   An array of variables available for the profile node
+   *   or FALSE if there has been no profile created yet.
+   */
+  function get_variables($type, $teaser = FALSE, $page = FALSE) {
+    if (!isset($this->_cache[$type][$teaser][$page])) {
+      $this->_cache[$type][$teaser][$page] = FALSE;
+
+      if ($node = content_profile_load($type, $this->uid)) {
+        // Make sure the node is prepared for viewing
+        $node = node_build_content($node, $teaser, $page);
+        $vars = array('node' => $node, 'teaser' => $teaser, 'page' => $page);
+
+        // Apply all node template preprocessors
+        foreach ($this->_get_node_preprocessors() as $function) {
+          if (function_exists($function)) {
+            $function($vars, 'node');
+          }
+        }
+        $this->_cache[$type][$teaser][$page] = $vars;
+      }
+    }
+    return $this->_cache[$type][$teaser][$page];
+  }
+
+  /**
+   * Gets a single template variable for the content profile of this type.
+   *
+   * @param $type
+   *   The type of the user's content profile
+   * @param $name
+   *   The name of the variable to get.
+   *
+   * @return
+   *   The variable or FALSE if there has been no profile created yet.
+   */
+  function get_variable($type, $name) {
+    if ($vars = $this->get_variables($type)) {
+      return $vars[$name];
+    }
+    return FALSE;
+  }
+
+
+  /**
+   * Generate a display of the given node.
+   *
+   * @param $type
+   *   The type of the user's content profile
+   * @param $teaser
+   *   Whether to display the teaser only or the full form.
+   * @param $page
+   *   Whether the node is being displayed by itself as a page.
+   * @param $links
+   *   Whether or not to display node links. Links are omitted for node previews.
+   *
+   * @return
+   *   An HTML representation of the themed node or FALSE if there has been no profile created yet.
+   */
+  function get_view($type, $teaser = FALSE, $page = FALSE, $links = TRUE) {
+    if ($node = content_profile_load($type, $this->uid)) {
+      return node_view($node, $teaser, $page, $links);
+    }
+    return FALSE;
+  }
+
+
+  function _get_node_preprocessors() {
+    $hooks = theme_get_registry();
+    $functions = $hooks['node']['preprocess functions'];
+    // We don't need 'template_preprocess'
+    unset($functions[0]);
+    return $functions;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.info b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.info
new file mode 100644
index 0000000..95a0ba7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.info
@@ -0,0 +1,12 @@
+; $Id: content_profile_registration.info,v 1.1.2.4 2009/04/21 13:59:38 fago Exp $
+name = "Content Profile User Registration"
+description = "Enable content profile features during user registration"
+package = "Content Profile"
+core = 6.x
+dependencies[] = content_profile
+; Information added by drupal.org packaging script on 2010-04-07
+version = "6.x-1.0"
+core = "6.x"
+project = "content_profile"
+datestamp = "1270662007"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.install b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.install
new file mode 100644
index 0000000..2ca379e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.install
@@ -0,0 +1,23 @@
+<?php
+// $Id: content_profile_registration.install,v 1.1.2.1 2009/05/31 11:56:50 fago Exp $
+
+/**
+ * @file Content Profile Registration - Installation file.
+ */
+
+/**
+ * Implementation of hook_install().
+ */
+function content_profile_registration_install() {
+  // Set the weight to 1, so we are the last one altering the form.
+  db_query("UPDATE {system} SET weight = 1 WHERE name = 'content_profile_registration'");
+}
+
+/**
+ * Update the modules weight to 1.
+ */
+function content_profile_registration_update_6001() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {system} SET weight = 1 WHERE name = 'content_profile_registration'");
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.module b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.module
new file mode 100644
index 0000000..537f6d7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_registration.module
@@ -0,0 +1,277 @@
+<?php
+// $Id: content_profile_registration.module,v 1.1.2.36 2010/03/26 16:32:28 fago Exp $
+
+/**
+ * @file
+ * Allows exposure and processing of content_profile node fields at user registration
+ */
+
+/**
+ * Implementation of hook_form_alter().
+ */
+function content_profile_registration_form_alter(&$form, &$form_state, $form_id) {
+  if ($form_id == 'user_register') {
+    require_once drupal_get_path('module', 'node') .'/node.pages.inc';
+
+    // Allow other modules to customize the used profile types, so modules
+    // can easily customize the registration form.
+    $default_types = content_profile_get_types('names', (arg(0) == 'admin' ? 'admin_user_create_use' : 'registration_use'));
+    $form += array('#content_profile_registration_use_types' => $default_types);
+
+    foreach ($form['#content_profile_registration_use_types'] as $type => $typename) {
+      content_profile_registration_add_profile_form($type, $form, $form_state);
+    }
+  }
+  elseif ($form_id == 'content_profile_admin_settings') {
+    $type = $form_state['type'];
+    // Let other modules add registration child elements before us!
+    $form += array('registration' => array());
+    $form['registration'] += array(
+      '#type' => 'fieldset',
+      '#title' => t('User Registration'),
+      '#description' => t('Customize how this content profile shows up on the user registration page.'),
+      '#collapsible' => TRUE,
+    );
+    $form['registration']['registration_use'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use on Registration'),
+      '#description' => t('Use this content type on the user registration page'),
+      '#default_value' => content_profile_get_settings($type, 'registration_use'),
+    );
+    $form['registration']['admin_user_create_use'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use on administrative user creation form'),
+      '#description' => t('Use this content type when an administrative user creates a new user'),
+      '#default_value' => content_profile_get_settings($type, 'admin_user_create_use'),
+    );
+    $form['registration']['registration_hide'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Hide form fields'),
+      '#description' => t('Hide fields from the user registration form. Required fields cannot be hidden and are not shown here.'),
+      '#options' => _content_profile_registration_get_field_select($type),
+      '#default_value' => content_profile_get_settings($type, 'registration_hide'),
+    );
+    array_unshift($form['#submit'], 'content_profile_registration_admin_form_submit');
+  }
+}
+
+function content_profile_registration_admin_form_submit($form, &$form_state) {
+  $form_state['values']['registration_hide'] = array_keys(array_filter($form_state['values']['registration_hide']));
+}
+
+/**
+ * Helper function to return all available fields for a particular content type.
+ *
+ * @param string $type
+ *   The content type to return fields for.
+ * @return array
+ *   Associated fields for the given content type.
+ */
+function _content_profile_registration_get_fields($type) {
+  $typeinfo = content_types($type);
+  return $typeinfo['fields'];
+}
+
+/**
+ * Returns an array of selectable form elements that may be hidden, mostly containing CCK fields.
+ *
+ * @param string $type
+ *   A content type to get the select elements for.
+ * @return Array
+ *   An array of fields suitable for use in a select field.
+*/
+function _content_profile_registration_get_field_select($type) {
+  $fields = module_exists('content') ? _content_profile_registration_get_fields($type) : array();
+  $return = array();
+  if (!module_exists('auto_nodetitle') || auto_nodetitle_get_setting($type) != AUTO_NODETITLE_ENABLED) {
+    $return['title'] = t('Title');
+  }
+  foreach ($fields as $fieldname => $info) {
+    if (!$info['required']) {
+      $return[$fieldname] = drupal_ucfirst($info['widget']['label']);
+    }
+  }
+  $return['other'] = t('Other form elements (except for required CCK fields)');
+  
+  return $return;
+}
+
+/**
+ * Adds in the profile form of the given content type to the registration form
+ *
+ * @see content_profile_registration_alter_weights()
+ * @see content_profile_registration_user_register_validate()
+ * @see content_profile_registration_user_register_submit()
+ */
+function content_profile_registration_add_profile_form($type, &$form, &$form_state) {
+  // Initialize new node and add in its form.
+  $node = array('uid' => 0, 'name' => '', 'type' => $type);
+  // Get the original node form.
+  $node_form = drupal_retrieve_form($type .'_node_form', $form_state, $node);
+  drupal_prepare_form($type .'_node_form', $node_form, $form_state);
+
+  $node_form += array('#field_info' => array());
+  $form_add = array();
+
+  // If non-CCK form elements are hidden, only copy over the CCK stuff
+  if (in_array('other', content_profile_get_settings($type, 'registration_hide'))) {
+    foreach ($node_form['#field_info'] as $field_name => $info) {
+      if (isset($node_form[$field_name])) {
+        $form_add[$field_name] = $node_form[$field_name];
+      }
+    }
+    // Copy over any fieldgroups
+    $keys = array_keys($node_form);
+    foreach ($keys as $key) {
+      if (stristr($key, 'group_')) {
+        $form_add[$key] = $node_form[$key];
+      }
+    }
+    // Add the title
+    $form_add['title'] = $node_form['title'];
+
+    // Set this to the values of one node, as it might be need by some #ahah callbacks
+    $form_add['#node'] = $node_form['#node'];
+    $form_add['type'] = $node_form['type'];
+  }
+  else {
+    foreach (array('uid', 'name', 'author', 'buttons', 'language', '#theme', 'options') as $key) {
+      unset($node_form[$key]);
+    }
+    $form_add = $node_form;
+  }
+
+  // Hide fields as configured
+  foreach (content_profile_get_settings($type, 'registration_hide') as $field_name) {
+    if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type, $field_name))) {
+      unset($form_add[$group_name][$field_name]);
+      if (count(element_children($form_add[$group_name])) == 0) {
+        unset($form_add[$group_name]);
+      }
+    }
+    else {
+      unset($form_add[$field_name]);
+    }
+  }
+  
+  // Add in the new form elements into $form.
+  $form += array('#field_info' => array());
+  $form['#field_info'] += $node_form['#field_info'];
+  $form += $form_add;
+  
+  // Add in further callbacks needed, if not yet done.
+  if (!isset($form['#content_profile_weights'])) {
+    $form['#submit'][] = 'content_profile_registration_user_register_submit';
+    $form['#validate'][] = 'content_profile_registration_user_register_validate';
+    $form['#pre_render'][] = 'content_profile_registration_alter_weights';
+  }
+
+  // Care for the weights: Make use of the content types weight and sort the fields in behalf
+  // The weights will be applied by the pre_render callback.
+  $form += array('#content_profile_weights' => array());
+  $weight = content_profile_get_settings($type, 'weight') + 1;
+  foreach (element_children($form_add) as $key) {
+    $form['#content_profile_weights'] += array($key => $weight);
+  }
+
+  // Set the enctype, if necessary.
+  if (isset($node_form['#attributes']['enctype'])){
+    $form['#attributes']['enctype'] = $node_form['#attributes']['enctype'];
+  }
+}
+
+/**
+ * Pre render callback that makes sure our elements are grouped together.
+ * The ordering in between the single elements is kept.
+ *
+ * @see content_profile_registration_add_profile_form().
+ */
+function content_profile_registration_alter_weights($elements) {
+  foreach ($elements['#content_profile_weights'] as $key => $weight) {
+    if (isset($elements[$key]) && is_array($elements[$key])) {
+      $elements[$key] += array('#weight' => 0);
+      $elements[$key]['#weight'] = $weight + $elements[$key]['#weight'] / 1000;
+    }
+  }
+  return $elements;
+}
+
+
+/**
+ * Validates the user registration form
+ */
+function content_profile_registration_user_register_validate($form, &$form_state) {
+  require_once drupal_get_path('module', 'node') .'/node.pages.inc';
+
+  foreach ($form['#content_profile_registration_use_types'] as $type => $typename) {
+    $node = (object)$form_state['values'];
+    $node->type = $type;
+    node_object_prepare($node);
+
+    // Make sure there is no user name so we can node_validate
+    unset($node->name);
+
+    if (!in_array('other', content_profile_get_settings($type, 'registration_hide'))) {
+      node_validate($node, $form);
+    }
+    elseif (module_exists('content')) {
+      content_validate($node);
+    }
+
+    $form_state['content_profile_registration'][$type]['node'] = $node;
+  }
+  // Remove our added values
+  foreach ($form['#content_profile_weights'] as $key => $weight) {
+    _content_profile_registration_remove_values($key, $form[$key], $form_state);
+  }
+}
+
+/**
+ * Recursivly removes all form values created by this element or its children.
+ */
+function _content_profile_registration_remove_values($key, $element, &$form_state) {
+  if ((isset($element['#input']) || !empty($element['#tree'])) && isset($form_state['values'][$key])) {
+    unset($form_state['values'][$key]);
+  }
+  elseif (empty($element['#input']) && empty($element['#tree'])) {
+    foreach (element_children($element) as $key) {
+      _content_profile_registration_remove_values($key, $element[$key], $form_state);
+    }
+  }
+}
+
+
+/**
+ * Submits the user registration form
+ */
+function content_profile_registration_user_register_submit($form, &$form_state) {
+  foreach ($form['#content_profile_registration_use_types'] as $type => $typename) {
+    if ($node = &$form_state['content_profile_registration'][$type]['node']) {
+      // Set user's information for the node.
+      if (empty($node->title) && (!module_exists('auto_nodetitle') || auto_nodetitle_get_setting($type) != AUTO_NODETITLE_OPTIONAL)) {
+        $node->title = $form_state['user']->name;
+      }
+      $node->uid = $form_state['user']->uid;
+      $node->name = $form_state['user']->name;
+
+      // Create the node.
+      $node = node_submit($node);
+      node_save($node);
+      // Give us a nice log message.
+      if ($node->nid) {
+        watchdog('content', 'Content Profile: added %user %type upon registration.', array('%user' => $node->name, '%type' => $type), WATCHDOG_NOTICE, l(t('view'), "node/$node->nid"));
+      }
+    }
+  }
+}
+
+/**
+ * Implementation of hook_content_profile_settings().
+ */
+function content_profile_registration_content_profile_settings() {
+  return array(
+    'registration_use' => FALSE,
+    'admin_user_create_use' => FALSE,
+    'registration_hide' => array(),
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_tokens.info b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_tokens.info
new file mode 100644
index 0000000..61b049e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_tokens.info
@@ -0,0 +1,15 @@
+; $Id: content_profile_tokens.info,v 1.1.2.1 2009/11/03 14:20:17 fago Exp $
+name = Content Profile Tokens
+description = Add user tokens for content profiles.
+package = "Content Profile"
+dependencies[] = content_profile
+dependencies[] = token
+dependencies[] = content
+core = 6.x
+
+; Information added by drupal.org packaging script on 2010-04-07
+version = "6.x-1.0"
+core = "6.x"
+project = "content_profile"
+datestamp = "1270662007"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_tokens.module b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_tokens.module
new file mode 100644
index 0000000..47fb0f3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/modules/content_profile_tokens.module
@@ -0,0 +1,94 @@
+<?php
+// $Id: content_profile_tokens.module,v 1.1.2.1 2009/11/03 14:20:17 fago Exp $
+
+/**
+ * @file
+ * Implementations of token module hooks for the content profile module.
+ *
+ * @ingroup token
+ */
+
+/**
+ * Implementation of hook_token_values().
+ */
+function content_profile_tokens_token_values($type, $object = NULL, $options = array()) {
+  $values = array();
+  $types = content_profile_get_types('types');
+  switch ($type) {
+    case 'user':
+      foreach($types as $type_name => $type) {
+        if (isset($object)) {
+          $profile = content_profile_load($type_name, $object->uid);
+        }
+        else {
+          global $user;
+          $profile = content_profile_load($type_name, $user->uid);
+        }
+        $fields = content_types($type_name);
+        foreach ($fields['fields'] as $field_name => $field) {
+          if (!$field['multiple'] && ($field['widget']['type'] == 'text_textfield' || $field['widget']['type'] == 'number')) {
+              $values['content-profile-'. $type_name .'-'. substr($field_name, 6)] = check_plain($profile->{$field_name}[0]['value']);
+              $values['content-profile-'. $type_name .'-'. substr($field_name, 6) .'-raw'] = $profile->{$field_name}[0]['value'];
+          }
+        }
+      }
+      break;
+
+    case 'flag_friend':
+      if(!empty($object)) {
+        foreach($types as $type_name => $type) {
+          $profile_requestor = content_profile_load($type_name, $object->friend->uid);
+          $profile_requestee = content_profile_load($type_name, $object->uid);
+          
+          $fields = content_types($type_name);
+          foreach ($fields['fields'] as $field_name => $field) {
+            if (!$field['multiple'] && ($field['widget']['type'] == 'text_textfield' || $field['widget']['type'] == 'number')) {
+              $values['requestor-'. $type_name .'-'. substr($field_name, 6)] = check_plain($profile_requestor->{$field_name}[0]['value']);
+              $values['requestor-'. $type_name .'-'. substr($field_name, 6) .'-raw'] = $profile_requestor->{$field_name}[0]['value'];
+              
+              $values['requestee-'. $type_name .'-'. substr($field_name, 6)] = check_plain($profile_requestee->{$field_name}[0]['value']);
+              $values['requestee-'. $type_name .'-'. substr($field_name, 6) .'-raw'] = $profile_requestee->{$field_name}[0]['value'];
+            }
+          }
+        }
+      }
+      break;
+  }
+  return $values;
+}
+
+/**
+ * Implementation of hook_token_list().
+ */
+function content_profile_tokens_token_list($type = 'all') {
+  $tokens = array();
+  if ($type == 'user' || $type == 'all') {
+    $types = content_profile_get_types('types');
+    foreach ($types as $type_name => $type) {
+    
+      $fields = content_types($type_name);
+      foreach ($fields['fields'] as $field_name => $field) {
+        if (!$field['multiple'] && ($field['widget']['type'] == 'text_textfield' || $field['widget']['type'] == 'number')) {
+          $tokens['user']['content-profile-'. $type_name .'-'. substr($field_name, 6)] = t($fields['description']) .'-'. t($field['widget']['label']);
+          $tokens['user']['content-profile-'. $type_name .'-'. substr($field_name, 6) .'-raw'] = t($fields['description']) .'-'. t($field['widget']['label']) .' '. t('WARNING - raw user input');
+        }
+      }
+    }
+  }
+  
+  if ($type == 'flag_friend' && module_exists('flag_friend')) {
+    foreach($types as $type_name => $type) {
+      $fields = content_types($type_name);
+      foreach ($fields['fields'] as $field_name => $field) {
+        if (!$field['multiple'] && ($field['widget']['type'] == 'text_textfield' || $field['widget']['type'] == 'number')) {
+          $tokens['content_profile_flag_friend']['requestor-'. $type_name .'-'. substr($field_name, 6)] = t('Requestor:') . t($fields['description']) .'-'. t($field['widget']['label']);
+          $tokens['content_profile_flag_friend']['requestor-'. $type_name .'-'. substr($field_name, 6) .'-raw'] = t('Requestor:') . t($fields['description']) .'-'. t($field['widget']['label']) .' '. t('WARNING - raw user input');
+
+          $tokens['content_profile_flag_friend']['requestee-'. $type_name .'-'. substr($field_name, 6)] = t('Requestee:') . t($fields['description']) .'-'. t($field['widget']['label']);
+          $tokens['content_profile_flag_friend']['requestee-'. $type_name .'-'. substr($field_name, 6) .'-raw'] = t('Requestee:') .t($fields['description']) .'-'. t($field['widget']['label']) .' '. t('WARNING - raw user input');
+        }
+      }
+    }
+  }
+  return $tokens;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/panels/relationships/node_from_user.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/panels/relationships/node_from_user.inc
new file mode 100644
index 0000000..e6f1618
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/panels/relationships/node_from_user.inc
@@ -0,0 +1,67 @@
+<?php
+// $Id: node_from_user.inc,v 1.1.2.2 2009/08/05 13:41:06 fago Exp $
+
+/**
+ * @file
+ * Provides a CTools (Panels) relationship that gets a node context from the
+ * user context based on nodes marked as content profiles.
+ */
+
+/**
+ * Implementation of specially named hook_ctools_relationships().
+ */
+function content_profile_node_from_user_ctools_relationships() {
+  $args['node_from_user'] = array(
+    'title' => t("Profile Node"),
+    'keyword' => 'content_profile',
+    'description' => t('Adds a Content Profile from user context'),
+    'required context' => new ctools_context_required(t('User'), 'user'),
+    'context' => 'content_profile_node_from_user_ctools_context',
+    'settings form' => 'content_profile_node_from_user_ctools_settings_form',
+    'settings form validate' => 'content_profile_node_from_user_ctools_settings_form_validate',
+  );
+  
+  return $args;
+}
+
+/**
+ * Return a new context based on an existing context.
+ */
+function content_profile_node_from_user_ctools_context($context, $conf) {
+  // If unset it wants a generic, unfilled context, which is just NULL.
+  if (empty($context->data) || !isset($context->data->uid)) {
+    $new_context = ctools_context_create_empty('node', NULL);
+  }
+  else {
+    // Load the node for the requested type
+    $uid = $context->data->uid;
+    $content_profile_node = content_profile_load($conf['type'], $uid);
+
+    // Send it to ctools.
+    $new_context = ctools_context_create('node', $content_profile_node);
+  }
+
+  // Have content profile relationships limit CCK field availability.
+  if (isset($new_context->restrictions['type'])) {
+    $new_context->restrictions['type'][] = $conf['type'];
+  }
+  else {
+    $new_context->restrictions['type'] = array($conf['type']);
+  }
+  return $new_context;
+}
+
+/**
+ * Settings form for the relationship
+ */
+function content_profile_node_from_user_ctools_settings_form($conf) {
+  $options = content_profile_get_types('names');
+  $form['type'] = array(
+    '#type' => 'select',
+    '#title' => t('Relationship type'),
+    '#options' => $options,
+    '#default_value' => $conf['type']
+  );
+
+  return $form;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/tests/content_profile.test b/drupal/sites/default/boinc/modules/contrib/content_profile/tests/content_profile.test
new file mode 100644
index 0000000..38d90fc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/tests/content_profile.test
@@ -0,0 +1,55 @@
+<?php
+// $Id: content_profile.test,v 1.1.2.2 2008/07/24 09:57:57 fago Exp $
+
+/**
+ * @file
+ * Some basic tests for content profile.
+ */
+
+class ContentProfileTest extends DrupalTestCase {
+  function get_info() {
+    return array(
+      'name'  => 'One content profile per user',
+      'desc'  => t('Assure that only one content profile per user is allowed.'),
+      'group' => 'Content Profile',
+    );
+  }
+
+  function testOneProfilePerUser() {
+    // create a content_profile node
+    $user1 = $this->drupalCreateUserRolePerm(array('administer content types'));
+    $this->drupalLoginUser($user1);
+
+    $content_profile_name = $this->randomName();
+    $content_profile_type = strtolower($this->randomName());
+
+    $edit = array(
+      'name' => $content_profile_name,
+      'type' => $content_profile_type,
+      'content_profile' => 'Array',
+    );
+    $this->drupalPost('admin/content/types/add', $edit, t('Save content type'));
+    $this->assertText('The content type '. $content_profile_name .' has been added.');
+    $this->clickLink(t('Log out'));
+
+    // create new user who is allowed to create a content_profile node
+    $user2 = $this->drupalCreateUserRolePerm(array('create '. $content_profile_type .' content', 'edit own '. $content_profile_type .' content'));
+    $this->drupalLoginUser($user2);
+
+    // create a content_profile node
+    $edit = array(
+      'title' => $this->randomName(),
+      'body'  => $this->randomName(),
+    );
+    $this->drupalPost('node/add/'. str_replace('_', '-', $content_profile_type), $edit, t('Save'));
+
+    $this->assertText($content_profile_name .' '. $edit['title'] .' has been created.');
+
+    // test if the user can create another content_profile node
+    $url = url('node/add/'. str_replace('_', '-', $content_profile_type), array('absolute' => TRUE));
+    $this->get($url);
+    $this->assertResponse(200);
+    $this->assertText('Edit');
+    $this->assertText($edit['title']);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/translations/content_profile.pot b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/content_profile.pot
new file mode 100644
index 0000000..d3c8e41
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/content_profile.pot
@@ -0,0 +1,265 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content_profile.rules.inc,v 1.1.2.2 2009/03/30 10:20:01 fago
+#  node_from_user.inc,v 1.1.2.1 2009/06/15 10:55:24 fago
+#  content_profile.module,v 1.1.2.39 2009/06/15 10:55:24 fago
+#  content_profile.info,v 1.1.2.1 2008/02/01 16:00:24 fago
+#  content_profile_registration.info,v 1.1.2.4 2009/04/21 13:59:38 fago
+#  content_profile.views.inc,v 1.1.2.1 2008/09/26 16:09:43 fago
+#  content_profile.theme.inc,v 1.1.2.8 2009/01/07 10:58:05 fago
+#  content_profile_registration.module,v 1.1.2.32 2009/05/31 11:56:50 fago
+#  content_profile.install,v 1.1.2.7 2009/01/09 15:55:07 fago
+#  content_profile_views_handler_relationship.inc,v 1.1.2.3 2009/06/11 15:14:21 fago
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-10-22 00:41+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: content_profile.rules.inc:15
+msgid "User has content profile"
+msgstr ""
+
+#: content_profile.rules.inc:17 panels/relationships/node_from_user.inc:18
+msgid "User"
+msgstr ""
+
+#: content_profile.rules.inc:33;76
+msgid "Content Profile Content Type"
+msgstr ""
+
+#: content_profile.rules.inc:36
+msgid "Select the Content Profile content type to check for."
+msgstr ""
+
+#: content_profile.rules.inc:42
+msgid "@user has his @type created"
+msgstr ""
+
+#: content_profile.rules.inc:51
+msgid "Load Content Profile"
+msgstr ""
+
+#: content_profile.rules.inc:53
+msgid "User, whose profile should be loaded"
+msgstr ""
+
+#: content_profile.rules.inc:56 content_profile.module:260 content_profile.info:0;0 modules/content_profile_registration.info:0 views/content_profile.views.inc:16;22
+msgid "Content Profile"
+msgstr ""
+
+#: content_profile.rules.inc:79
+msgid "Select the Content Profile content type to load."
+msgstr ""
+
+#: content_profile.rules.inc:85
+msgid "Load @user's @type"
+msgstr ""
+
+#: content_profile.theme.inc:27
+msgid "edit"
+msgstr ""
+
+#: content_profile.theme.inc:64
+msgid "View"
+msgstr ""
+
+#: content_profile.theme.inc:72 content_profile.module:35
+msgid "Edit"
+msgstr ""
+
+#: content_profile.module:130
+msgid "Weight"
+msgstr ""
+
+#: content_profile.module:132
+msgid "The weight of content of this content type where ever they appear - this applies to the input form integration as well to the display integration."
+msgstr ""
+
+#: content_profile.module:137
+msgid "Display settings"
+msgstr ""
+
+#: content_profile.module:138
+msgid "Customize the display of this content profile."
+msgstr ""
+
+#: content_profile.module:143
+msgid "User page display style"
+msgstr ""
+
+#: content_profile.module:146
+msgid "Don't display this content profile on the user account page"
+msgstr ""
+
+#: content_profile.module:147
+msgid "Display it as link to the profile content"
+msgstr ""
+
+#: content_profile.module:148
+msgid "Display the full content"
+msgstr ""
+
+#: content_profile.module:149
+msgid "Display the content's teaser"
+msgstr ""
+
+#: content_profile.module:154
+msgid "Include an edit link to the display"
+msgstr ""
+
+#: content_profile.module:159
+msgid "Show a link to the content profile creation page, if there is no profile."
+msgstr ""
+
+#: content_profile.module:161
+msgid "If selected and the user has no profile of this type yet, a link to add one is shown on the user page."
+msgstr ""
+
+#: content_profile.module:165
+msgid "Profile edit tab"
+msgstr ""
+
+#: content_profile.module:168
+msgid "None"
+msgstr ""
+
+#: content_profile.module:169
+msgid "Show a tab at the user's page"
+msgstr ""
+
+#: content_profile.module:170
+msgid "Show a secondary tab below the user's edit tab"
+msgstr ""
+
+#: content_profile.module:175
+msgid "Submit"
+msgstr ""
+
+#: content_profile.module:267
+msgid "Use this content type as a content profile for users"
+msgstr ""
+
+#: content_profile.module:368
+msgid "@type %title has been deleted."
+msgstr ""
+
+#: content_profile.module:393
+msgid "This user already has a content profile of this type. You can only create one profile per user."
+msgstr ""
+
+#: content_profile.module:367 modules/content_profile_registration.module:254
+msgid "content"
+msgstr ""
+
+#: content_profile.module:367
+msgid "@type: deleted %title."
+msgstr ""
+
+#: content_profile.module:39
+msgid "Content profile"
+msgstr ""
+
+#: content_profile.module:40
+msgid "Configure the display and management of this content profile."
+msgstr ""
+
+#: content_profile.install:34
+msgid "Profile"
+msgstr ""
+
+#: content_profile.install:36
+msgid "A user profile built as content."
+msgstr ""
+
+#: content_profile.info:0
+msgid "Use content types for user profiles."
+msgstr ""
+
+#: modules/content_profile_registration.module:31
+msgid "User Registration"
+msgstr ""
+
+#: modules/content_profile_registration.module:32
+msgid "Customize how this content profile shows up on the user registration page."
+msgstr ""
+
+#: modules/content_profile_registration.module:37
+msgid "Use on Registration"
+msgstr ""
+
+#: modules/content_profile_registration.module:38
+msgid "Use this content type on the user registration page"
+msgstr ""
+
+#: modules/content_profile_registration.module:43
+msgid "Use on administrative user creation form"
+msgstr ""
+
+#: modules/content_profile_registration.module:44
+msgid "Use this content type when an administrative user creates a new user"
+msgstr ""
+
+#: modules/content_profile_registration.module:49
+msgid "Hide form fields"
+msgstr ""
+
+#: modules/content_profile_registration.module:86
+msgid "Title"
+msgstr ""
+
+#: modules/content_profile_registration.module:93
+msgid "Other form elements (except for required CCK fields)"
+msgstr ""
+
+#: modules/content_profile_registration.module:254
+msgid "view"
+msgstr ""
+
+#: modules/content_profile_registration.module:254
+msgid "Content Profile: added %user %type upon registration."
+msgstr ""
+
+#: modules/content_profile_registration.info:0
+msgid "Content Profile User Registration"
+msgstr ""
+
+#: modules/content_profile_registration.info:0
+msgid "Enable content profile features during user registration"
+msgstr ""
+
+#: panels/relationships/node_from_user.inc:15
+msgid "Profile Node"
+msgstr ""
+
+#: panels/relationships/node_from_user.inc:17
+msgid "Adds a Content Profile from user context"
+msgstr ""
+
+#: panels/relationships/node_from_user.inc:56
+msgid "Relationship type"
+msgstr ""
+
+#: views/content_profile.views.inc:15
+msgid "Node"
+msgstr ""
+
+#: views/content_profile.views.inc:17
+msgid "Create a relationship to a content profile of the user."
+msgstr ""
+
+#: views/content_profile_views_handler_relationship.inc:23
+msgid "Content type"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/translations/da.po b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/da.po
new file mode 100644
index 0000000..22d7dfc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/da.po
@@ -0,0 +1,271 @@
+# Dansk translation of content_profile (6.x-1.0-beta3)
+# Copyright (c) 2009 by the Dansk translation team
+# Generated from files:
+#  content_profile.theme.inc,v 1.1.2.8 2009/01/07 10:58:05 fago
+#  content_profile.module,v 1.1.2.32 2009/01/07 10:58:05 fago
+#  content_profile_registration.module,v 1.1.2.25 2009/01/07 11:02:28 fago
+#  content_profile.panels.inc,v 1.1.2.1 2009/01/04 12:02:19 fago
+#  content_profile.rules.inc,v 1.1.2.1 2009/01/07 11:36:36 fago
+#  content_profile.views.inc,v 1.1.2.1 2008/09/26 16:09:43 fago
+#  content_profile.install,v 1.1.2.6 2009/01/04 11:30:28 fago
+#  content_profile_views_handler_relationship.inc,v 1.1.2.2 2008/11/04 03:57:08 jgraham
+#  content_profile.info,v 1.1.2.1 2008/02/01 16:00:24 fago
+#  content_profile_registration.info,v 1.1.2.3 2008/07/24 10:16:40 fago
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: content_profile (6.x-1.0-beta3)\n"
+"POT-Creation-Date: 2009-05-29 12:14-0700\n"
+"PO-Revision-Date: 2009-05-29 21:14+0100\n"
+"Language-Team: Dansk <dansk at klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Last-Translator: Morten Wulff <wulff at ratatosk.net>\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+
+#: content_profile.theme.inc:27
+msgid "edit"
+msgstr "redigér"
+
+#: content_profile.module:119
+msgid "Weight"
+msgstr "Vægt"
+
+#: modules/content_profile_registration.module:161
+msgid "view"
+msgstr "vis"
+
+#: content_profile.theme.inc:64
+msgid "View"
+msgstr "Oversigt"
+
+#: content_profile.module:356;
+#: modules/content_profile_registration.module:161
+msgid "content"
+msgstr "indhold"
+
+#: content_profile.panels.inc:17;
+#: content_profile.rules.inc:17
+msgid "User"
+msgstr "Bruger"
+
+#: content_profile.theme.inc:72;
+#: content_profile.module:30
+msgid "Edit"
+msgstr "Redigér"
+
+#: content_profile.module:357
+msgid "@type %title has been deleted."
+msgstr "@type %title slettet."
+
+#: content_profile.module:356
+msgid "@type: deleted %title."
+msgstr "@type: %title slettet."
+
+#: views/content_profile.views.inc:15
+msgid "Node"
+msgstr "Indholdselement"
+
+#: content_profile.install:34
+msgid "Profile"
+msgstr "Profil"
+
+#: content_profile.module:164
+msgid "Submit"
+msgstr "Indsend"
+
+#: content_profile.module:126
+msgid "Display settings"
+msgstr "Indstillinger for visning"
+
+#: views/content_profile_views_handler_relationship.inc:23
+msgid "Content type"
+msgstr "Indholdstype"
+
+#: content_profile.module:157
+msgid "None"
+msgstr "Ingen"
+
+#: content_profile.panels.inc:54
+msgid "Relationship type"
+msgstr "Forbindelsestype"
+
+#: content_profile.panels.inc:14
+msgid "Profile Node from user"
+msgstr "Profil-indholdselement fra bruger"
+
+#: content_profile.panels.inc:16
+msgid "Adds a Content Profile from user context"
+msgstr "Tilbføjer en Content Profile fra brugerkontekst"
+
+#: content_profile.rules.inc:15
+msgid "User has content_profile"
+msgstr "Bruger har content_profile"
+
+#: content_profile.rules.inc:33,76
+msgid "Content Profile Content Type"
+msgstr "Content Profile indholdstype"
+
+#: content_profile.rules.inc:36
+msgid "Select the Content Profile content type to check for."
+msgstr "Vælg Content Profile indholdstypen der skal kigges efter."
+
+#: content_profile.rules.inc:42
+msgid "@user has his @type created"
+msgstr "@user har oprettet sin @type"
+
+#: content_profile.rules.inc:51
+msgid "Load Content Profile"
+msgstr "Indlæs Content Profile"
+
+#: content_profile.rules.inc:53
+msgid "User, whose profile should be loaded"
+msgstr "Bruger hvis profil skal indlæses"
+
+#: content_profile.rules.inc:56;
+#: content_profile.module:249;
+#: content_profile.info:0;
+#: modules/content_profile_registration.info:0;
+#: views/content_profile.views.inc:16,22
+msgid "Content Profile"
+msgstr "Content Profile"
+
+#: content_profile.rules.inc:79
+msgid "Select the Content Profile content type to load."
+msgstr "Vælg Content Profile indholdstype som skal indlæses."
+
+#: content_profile.rules.inc:85
+msgid "Load @user's @type"
+msgstr "Indlæs @users @type"
+
+#: content_profile.module:121
+msgid "The weight of content of this content type where ever they appear - this applies to the input form integration as well to the display integration."
+msgstr "Vægten af denne indholdstype uanset hvor den optræder - det gælder både for integration i formularer og visning."
+
+#: content_profile.module:127
+msgid "Customize the display of this content profile."
+msgstr "Tilpas visningen af denne Content Profile."
+
+#: content_profile.module:132
+msgid "User page display style"
+msgstr "Brugerside udseende"
+
+#: content_profile.module:135
+msgid "Don't display this content profile on the user account page"
+msgstr "Vis ikke denne Content Profile på profilsiden"
+
+#: content_profile.module:136
+msgid "Display it as link to the profile content"
+msgstr "Vis den som et link til profilindholdet"
+
+#: content_profile.module:137
+msgid "Display the full content"
+msgstr "Vis det fulde indhold"
+
+#: content_profile.module:138
+msgid "Display the content's teaser"
+msgstr "Vis indholdets resumé"
+
+#: content_profile.module:143
+msgid "Include an edit link to the display"
+msgstr "Inkludér et link til visningen"
+
+#: content_profile.module:148
+msgid "Show a link to the content profile creation page, if there is no profile."
+msgstr "Vis et link til oprettelse af en Content Profile hvis der ikke er en profil."
+
+#: content_profile.module:150
+msgid "If selected and the user has no profile of this type yet, a link to add one is shown on the user page."
+msgstr "Hvis brugeren endnu ikke har en profil af denne type, vises der et link til at oprette én på profilsiden."
+
+#: content_profile.module:154
+msgid "Profile edit tab"
+msgstr "Profil redigeringsfane"
+
+#: content_profile.module:158
+msgid "Show a tab at the user's page"
+msgstr "Vis en fane på brugerens profil"
+
+#: content_profile.module:159
+msgid "Show a secondary tab below the user's edit tab"
+msgstr "Vis en sekundær fane under brugerens redigeringsfane"
+
+#: content_profile.module:256
+msgid "Use this content type as a content profile for users"
+msgstr "Brug denne indholdstype som Content Profile for brugere"
+
+#: content_profile.module:377
+msgid "This user has already a content profile of this type. You can only create one profile per user."
+msgstr "Denne bruger har allerede en Content Profile af denne type. Du kan kun oprette én profil pr. bruger."
+
+#: content_profile.module:34
+msgid "Content profile"
+msgstr "Content Profile"
+
+#: content_profile.module:35
+msgid "Configure the display and management of this content profile."
+msgstr "Konfigurér visning og håndtering af denne Content Profile."
+
+#: content_profile.module:0
+msgid "content_profile"
+msgstr "content_profile"
+
+#: content_profile.install:36
+msgid "A user profile built as content."
+msgstr "En brugerprofil bygget som indhold."
+
+#: content_profile.info:0
+msgid "Use content types for user profiles."
+msgstr "Brug indholdstyper som brugerprofiler."
+
+#: modules/content_profile_registration.module:56
+msgid "User Registration"
+msgstr "Brugeroprettelse"
+
+#: modules/content_profile_registration.module:57
+msgid "Customize how this content profile shows up on the user registration page."
+msgstr "Tilpas hvordan denne Content Profile vises på brugeroprettelsessiden."
+
+#: modules/content_profile_registration.module:64
+msgid "Use on Registration"
+msgstr "Brug ved oprettelse"
+
+#: modules/content_profile_registration.module:65
+msgid "Use this content type on the user registration page"
+msgstr "Brug denne indholdstype på brugeroprettelsessiden"
+
+#: modules/content_profile_registration.module:72
+msgid "Hide these fields during registration"
+msgstr "Skjul disse felter under brugeroprettelse"
+
+#: modules/content_profile_registration.module:79
+msgid "There are no fields defined, so registration integration is disabled."
+msgstr "Der er ikke defineret nogen felter, så integration med brugeroprettelse er deaktiveret."
+
+#: modules/content_profile_registration.module:122
+msgid "Field Group: "
+msgstr "Feltgruppe: "
+
+#: modules/content_profile_registration.module:161
+msgid "Content Profile: added %user %type upon registration."
+msgstr "Content Profile: tilføjede %user %type ved oprettelse."
+
+#: modules/content_profile_registration.module:0
+msgid "content_profile_registration"
+msgstr "content_profile_registration"
+
+#: modules/content_profile_registration.info:0
+msgid "Content Profile User Registration"
+msgstr "Content Profile Brugeroprettelse"
+
+#: modules/content_profile_registration.info:0
+msgid "Enable content profile features during user registration"
+msgstr "Aktivér Content Profile funktioner under brugeroprettelse"
+
+#: views/content_profile.views.inc:17
+msgid "Create a relationship to a content profile of the user."
+msgstr "Opret en forbindelse til brugerens Content Profile."
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/translations/de.po b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/de.po
new file mode 100644
index 0000000..3e5f00b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/de.po
@@ -0,0 +1,270 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright 2009 NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  content_profile.rules.inc,v 1.1.2.2 2009/03/30 10:20:01 fago
+#  node_from_user.inc,v 1.1.2.1 2009/06/15 10:55:24 fago
+#  content_profile.module,v 1.1.2.39 2009/06/15 10:55:24 fago
+#  content_profile.info,v 1.1.2.1 2008/02/01 16:00:24 fago
+#  content_profile_registration.info,v 1.1.2.4 2009/04/21 13:59:38 fago
+#  content_profile.views.inc,v 1.1.2.1 2008/09/26 16:09:43 fago
+#  content_profile.theme.inc,v 1.1.2.8 2009/01/07 10:58:05 fago
+#  content_profile_registration.module,v 1.1.2.32 2009/05/31 11:56:50 fago
+#  content_profile.install,v 1.1.2.7 2009/01/09 15:55:07 fago
+#  content_profile_views_handler_relationship.inc,v 1.1.2.3 2009/06/11 15:14:21 fago
+#
+msgid ""
+msgstr "Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-10-22 00:41+0200\n"
+"PO-Revision-Date: 2009-10-22 00:45+0100\n"
+"Last-Translator: Thomas Zahreddin <thomas at voicehero.com>\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: content_profile.rules.inc:15
+msgid "User has content profile"
+msgstr "Der Benutzer hat ein Profil."
+
+#: content_profile.rules.inc:17
+#: panels/relationships/node_from_user.inc:18
+msgid "User"
+msgstr "Benutzer"
+
+#: content_profile.rules.inc:33;76
+msgid "Content Profile Content Type"
+msgstr "Inhaltstyp Benutzerprofil"
+
+#: content_profile.rules.inc:36
+msgid "Select the Content Profile content type to check for."
+msgstr "Wählen Sie einen Inhaltstyp zur Verwendung für das Benutzerprofil aus."
+
+#: content_profile.rules.inc:42
+msgid "@user has his @type created"
+msgstr "@user hat @type erstellt"
+
+#: content_profile.rules.inc:51
+msgid "Load Content Profile"
+msgstr "Benuterprofil laden"
+
+#: content_profile.rules.inc:53
+msgid "User, whose profile should be loaded"
+msgstr "Benutzer, dessen Profil geladen werden soll"
+
+#: content_profile.rules.inc:56
+#: content_profile.module:260
+#: content_profile.info:0;0
+#: modules/content_profile_registration.info:0
+#: views/content_profile.views.inc:16;22
+msgid "Content Profile"
+msgstr "Content Profile"
+
+#: content_profile.rules.inc:79
+msgid "Select the Content Profile content type to load."
+msgstr "Wählen Sie den Inhaltstyp der mit dem Benutzerprofil geladen wird aus."
+
+#: content_profile.rules.inc:85
+msgid "Load @user's @type"
+msgstr "@type für @user laden"
+
+#: content_profile.theme.inc:27
+msgid "edit"
+msgstr "Bearbeiten"
+
+#: content_profile.theme.inc:64
+msgid "View"
+msgstr "Ansicht"
+
+#: content_profile.theme.inc:72
+#: content_profile.module:35
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: content_profile.module:130
+msgid "Weight"
+msgstr "Gewichtung"
+
+#: content_profile.module:132
+msgid "The weight of content of this content type where ever they appear - this applies to the input form integration as well to the display integration."
+msgstr "Die Gewichtung zur Positionierung des Inhalts für diesen Inhaltstyp, wo immer sie auftreten - das gilt für das Eingabeformular und die Ausgabe."
+
+#: content_profile.module:137
+msgid "Display settings"
+msgstr "Anzeigeeinstellungen"
+
+#: content_profile.module:138
+msgid "Customize the display of this content profile."
+msgstr "Die Anzeige des Benutzerprofiles anpassen"
+
+#: content_profile.module:143
+msgid "User page display style"
+msgstr "Stil zur Anzeige der Benutzerprofil-Seiten"
+
+#: content_profile.module:146
+msgid "Don't display this content profile on the user account page"
+msgstr "Das Benutzerprofil nicht auf der Seite des Benutzerkontos anzeigen"
+
+#: content_profile.module:147
+msgid "Display it as link to the profile content"
+msgstr "Einen Link zum Benutzerprofil anzeigen"
+
+#: content_profile.module:148
+msgid "Display the full content"
+msgstr "Den gesamten Inhalt anzeigen"
+
+#: content_profile.module:149
+msgid "Display the content's teaser"
+msgstr "Den Anrißtext anzeigen"
+
+#: content_profile.module:154
+msgid "Include an edit link to the display"
+msgstr "Eines Links zum Bearbeiten anzeigen"
+
+#: content_profile.module:159
+msgid "Show a link to the content profile creation page, if there is no profile."
+msgstr "Eines Links zum Erstellen eines Benutzerprofil anzeigen, wenn keines vorhanden ist."
+
+#: content_profile.module:161
+msgid "If selected and the user has no profile of this type yet, a link to add one is shown on the user page."
+msgstr "Eines Links zum Erstellen eines Benutzerprofil anzeigen, wenn keines vorhanden ist."
+
+#: content_profile.module:165
+msgid "Profile edit tab"
+msgstr "Registerkarte zum Bearbeiten des Benutzerprofils"
+
+#: content_profile.module:168
+msgid "None"
+msgstr "Keine"
+
+#: content_profile.module:169
+msgid "Show a tab at the user's page"
+msgstr "Eine Registerkarte auf der Seite des Benutzerkontos anzeigen"
+
+#: content_profile.module:170
+msgid "Show a secondary tab below the user's edit tab"
+msgstr "Eine zweite Registerkarte unterhalb des Reiters Benutzerkonto bearbeiten"
+
+#: content_profile.module:175
+msgid "Submit"
+msgstr "Speichern"
+
+#: content_profile.module:267
+msgid "Use this content type as a content profile for users"
+msgstr "Diesen Inhaltstyp für das Benutzerprofil verwenden"
+
+#: content_profile.module:368
+msgid "@type %title has been deleted."
+msgstr "@type %title wurde gelöscht."
+
+#: content_profile.module:393
+msgid "This user already has a content profile of this type. You can only create one profile per user."
+msgstr "Der Benutzer hat ein Profil dieses Inhaltstyps. Pro Benutzer kann nur ein Profil erstellt werden"
+
+#: content_profile.module:367
+#: modules/content_profile_registration.module:254
+msgid "content"
+msgstr "Inhalt"
+
+#: content_profile.module:367
+msgid "@type: deleted %title."
+msgstr "@type: gelöscht %title."
+
+#: content_profile.module:39
+msgid "Content profile"
+msgstr "Content Profile / Benutzerprofil"
+
+#: content_profile.module:40
+msgid "Configure the display and management of this content profile."
+msgstr "Anpassen der Anzeige und Verwaltung dieses Benutzerprofils"
+
+#: content_profile.install:34
+msgid "Profile"
+msgstr "Profil"
+
+#: content_profile.install:36
+msgid "A user profile built as content."
+msgstr "Ein Benutzerprofil als Eintrag erstellen."
+
+#: content_profile.info:0
+msgid "Use content types for user profiles."
+msgstr "Verwenden Sie Inhaltstypen für Benutzerprofile."
+
+#: modules/content_profile_registration.module:31
+msgid "User Registration"
+msgstr "Benutzerregistrierung"
+
+#: modules/content_profile_registration.module:32
+msgid "Customize how this content profile shows up on the user registration page."
+msgstr "Anpassen des Benutzerprofils auf der Seite für die Registrierung von Benutzern"
+
+#: modules/content_profile_registration.module:37
+msgid "Use on Registration"
+msgstr "Verwenden für die Registrierung"
+
+#: modules/content_profile_registration.module:38
+msgid "Use this content type on the user registration page"
+msgstr "Diesen Inhaltstyp auf der Seite Benutzer-Registrierung verwenden"
+
+#: modules/content_profile_registration.module:43
+msgid "Use on administrative user creation form"
+msgstr "[fuzzy] Auf den administrativen Seiten der Benutzerverwaltung verwenden"
+
+#: modules/content_profile_registration.module:44
+msgid "Use this content type when an administrative user creates a new user"
+msgstr "Diesen Inhaltstyp auf der Seite Benutzer-Registrierung verwenden, wenn ein neuer Benutzer angelegt wird"
+
+#: modules/content_profile_registration.module:49
+msgid "Hide form fields"
+msgstr "Formularfelder verbergen"
+
+#: modules/content_profile_registration.module:86
+msgid "Title"
+msgstr "Titel"
+
+#: modules/content_profile_registration.module:93
+msgid "Other form elements (except for required CCK fields)"
+msgstr "Andere Formular Elemente (mit Ausnahme von erforderlichen CCK-Feldern)"
+
+#: modules/content_profile_registration.module:254
+msgid "view"
+msgstr "[fuzzy] Anzeige"
+
+#: modules/content_profile_registration.module:254
+msgid "Content Profile: added %user %type upon registration."
+msgstr "Benutzerprofil: %user %type für die Registierung hinzugefügt."
+
+#: modules/content_profile_registration.info:0
+msgid "Content Profile User Registration"
+msgstr "Benutzerprofil für die Benutzer-Registierung"
+
+#: modules/content_profile_registration.info:0
+msgid "Enable content profile features during user registration"
+msgstr "Benutzerprofil für die Benutzer-Registierung aktivieren"
+
+#: panels/relationships/node_from_user.inc:15
+msgid "Profile Node"
+msgstr "Eintrag für das Benutzerprofil"
+
+#: panels/relationships/node_from_user.inc:17
+msgid "Adds a Content Profile from user context"
+msgstr "Das Benutzerprofil zum Kontext des Benutzers hinzufügen"
+
+#: panels/relationships/node_from_user.inc:56
+msgid "Relationship type"
+msgstr "Beziehungstyp"
+
+#: views/content_profile.views.inc:15
+msgid "Node"
+msgstr "Eintrag"
+
+#: views/content_profile.views.inc:17
+msgid "Create a relationship to a content profile of the user."
+msgstr "Eine Relation zum Benutzerprofil erstellen"
+
+#: views/content_profile_views_handler_relationship.inc:23
+msgid "Content type"
+msgstr "Inhaltstyp"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/translations/hu.po b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/hu.po
new file mode 100644
index 0000000..14679c1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/hu.po
@@ -0,0 +1,169 @@
+# Hungarian translation of Content Profile (6.x-1.0-beta4)
+# Copyright (c) 2010 by the Hungarian translation team
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Content Profile (6.x-1.0-beta4)\n"
+"POT-Creation-Date: 2010-03-25 17:02+0000\n"
+"PO-Revision-Date: 2010-03-25 17:01+0000\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+msgid "Title"
+msgstr "Cím"
+msgid "Submit"
+msgstr "Beküldés"
+msgid "content"
+msgstr "tartalom"
+msgid "view"
+msgstr "megtekintés"
+msgid "Edit"
+msgstr "Szerkesztés"
+msgid "None"
+msgstr "Nincs"
+msgid "Display settings"
+msgstr "Megjelenítési beállítások"
+msgid "Weight"
+msgstr "Súly"
+msgid "edit"
+msgstr "szerkesztés"
+msgid "View"
+msgstr "Megtekintés"
+msgid "User"
+msgstr "Felhasználó"
+msgid "Content type"
+msgstr "Tartalomtípus"
+msgid "Node"
+msgstr "Tartalom"
+msgid "Profile"
+msgstr "Profil"
+msgid "@type: deleted %title."
+msgstr "@type: %title törölve lett."
+msgid "Relationship type"
+msgstr "Kapcsolattípus"
+msgid "User, whose profile should be loaded"
+msgstr "Felhasználó, akinek a profilja betöltésre kerüljön"
+msgid "User page display style"
+msgstr "A felhasználó oldalának stílusa"
+msgid "Include an edit link to the display"
+msgstr "A „szerkesztés” hivatkozás megjelenítése"
+msgid ""
+"If selected and the user has no profile of this type yet, a link to "
+"add one is shown on the user page."
+msgstr ""
+"Kiválasztása esetén, ha a felhasználó még nem rendelkezik "
+"profillal, akkor megjelenik egy profil hozzáadása hivatkozás a "
+"felhasználó oldalán."
+msgid "User Registration"
+msgstr "Felhasználó regisztráció"
+msgid "@type %title has been deleted."
+msgstr "%title @type törölve lett."
+msgid "User has content profile"
+msgstr "A felhasználónak már van profilja"
+msgid "Content Profile Content Type"
+msgstr "Tartalomprofil tartalomtípus"
+msgid "Select the Content Profile content type to check for."
+msgstr "Ki kell választani a tartalomprofilt az ellenőrzéshez."
+msgid "@user has his @type created"
+msgstr "@user már készített @type típusú elemet"
+msgid "Load Content Profile"
+msgstr "A tartalomprofil betöltése"
+msgid "Content Profile"
+msgstr "Tartalomprofil"
+msgid "Select the Content Profile content type to load."
+msgstr "Ki kell választani a tartalomprofilt a betöltéshez."
+msgid "Load @user's @type"
+msgstr "@user felhasználó @type típusának betöltése"
+msgid ""
+"The weight of content of this content type where ever they appear - "
+"this applies to the input form integration as well to the display "
+"integration."
+msgstr ""
+"A tartalomprofil tartalom súlya, ahol csak megjelenhet. Ez a "
+"beállítás érvényes lesz a beviteli űrlappal és a "
+"megjelenítéssel történő együttműködésre is."
+msgid "Customize the display of this content profile."
+msgstr "A tartalomprofil egyedi megjelenítésének beállításai."
+msgid "Don't display this content profile on the user account page"
+msgstr "Nem kell megmutatni ezt a tartalomprofilt a felhasználó oldalán"
+msgid "Display it as link to the profile content"
+msgstr "Csak egy hivatkozás megjelenítése a profil tartalmára"
+msgid "Display the full content"
+msgstr "A teljes tartalom megjelenítése"
+msgid "Display the content's teaser"
+msgstr "A tartalom bevezető megjelenítése"
+msgid ""
+"Show a link to the content profile creation page, if there is no "
+"profile."
+msgstr ""
+"Egy hivatkozás megjelenítése a tartalomprofil készítés oldalra, "
+"ha nincs még beküldött profil."
+msgid "Profile edit tab"
+msgstr "Profil szerkesztése fül"
+msgid "Show a tab at the user's page"
+msgstr "Menüfül megjelenítése a felhasználó oldalán"
+msgid "Show a secondary tab below the user's edit tab"
+msgstr ""
+"A felhasználó szerkesztés oldalán egy másodlagos menüfül "
+"megjelenítése a menüfülek alatt"
+msgid "Use this content type as a content profile for users"
+msgstr ""
+"Ennek a tartalomtípusnak a használata, mint felhasználói "
+"tartalomprofil"
+msgid ""
+"This user already has a content profile of this type. You can only "
+"create one profile per user."
+msgstr ""
+"Ennek a felhasználónak már van ilyen típusú tartalomprofilja. "
+"Csak egy profil készíthető felhasználónként."
+msgid "Content profile"
+msgstr "Tartalomprofil"
+msgid "Configure the display and management of this content profile."
+msgstr ""
+"A tartalomprofil megjelenítésének beállításai és "
+"adminisztrációja"
+msgid "A user profile built as content."
+msgstr "A felhasználó profil felépült, mint tartalom."
+msgid "Use content types for user profiles."
+msgstr "A tartalomtípus használata felhasználó profilban."
+msgid ""
+"Customize how this content profile shows up on the user registration "
+"page."
+msgstr ""
+"A tartalomprofil beállítása a felhasználó regisztráció oldalon "
+"megjelenéshez"
+msgid "Use on Registration"
+msgstr "Használat regisztráció során"
+msgid "Use this content type on the user registration page"
+msgstr ""
+"Ennek a tartalomtípusnak a használata a felhasználó regisztráció "
+"oldalon"
+msgid "Use on administrative user creation form"
+msgstr ""
+"Használat az adminisztrációs „felhasználó hozzáadása” "
+"űrlapon"
+msgid "Use this content type when an administrative user creates a new user"
+msgstr ""
+"Használja ezt a tartalomtípust, ha az adminisztrátor létrehoz egy "
+"felhasználót"
+msgid "Hide form fields"
+msgstr "Űrlapmezők elrejtése"
+msgid "Other form elements (except for required CCK fields)"
+msgstr "Egyéb űrlapelemek (kivéve a kitöltendő <em>CCK</em> mezők)"
+msgid "Content Profile: added %user %type upon registration."
+msgstr ""
+"Tartalomprofil: %user felhasználóhoz %type típus a regisztráció "
+"során hozzá lett adva."
+msgid "Content Profile User Registration"
+msgstr "Tartalomprofil felhasználó regisztráció"
+msgid "Enable content profile features during user registration"
+msgstr "A tartalomprofil engedélyezése a felhasználó regisztráció során"
+msgid "Profile Node"
+msgstr "Profil tartalom"
+msgid "Adds a Content Profile from user context"
+msgstr "Tartalomprofil hozzáadása a felhasználó környezetből"
+msgid "Create a relationship to a content profile of the user."
+msgstr "Hivatkozás készítése a felhasználó tartalomprofiljához"
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/translations/ja.po b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/ja.po
new file mode 100644
index 0000000..b5ad413
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/ja.po
@@ -0,0 +1,298 @@
+# $Id: ja.po,v 1.1.2.1 2009/12/02 05:07:04 pineray Exp $
+#
+# Japanese translation of Drupal (general)
+# Copyright PineRay <com.gmail at matsudaterutaka **reverse order**>
+# Generated from files:
+#  content_profile.rules.inc,v 1.1.2.2 2009/03/30 10:20:01 fago
+#  node_from_user.inc,v 1.1.2.2 2009/08/05 13:41:06 fago
+#  content_profile.module,v 1.1.2.41 2009/08/05 14:08:34 fago
+#  content_profile.info,v 1.1.2.1 2008/02/01 16:00:24 fago
+#  content_profile_registration.info,v 1.1.2.4 2009/04/21 13:59:38 fago
+#  content_profile_tokens.info,v 1.1.2.1 2009/11/03 14:20:17 fago
+#  content_profile.views.inc,v 1.1.2.1 2008/09/26 16:09:43 fago
+#  content_profile.theme.inc,v 1.1.2.9 2009/09/15 15:35:47 fago
+#  content_profile_registration.module,v 1.1.2.35 2009/09/15 14:27:01 fago
+#  content_profile.install,v 1.1.2.7 2009/01/09 15:55:07 fago
+#  content_profile_tokens.module,v 1.1.2.1 2009/11/03 14:20:17 fago
+#  content_profile_views_handler_relationship.inc,v 1.1.2.3 2009/06/11 15:14:21 fago
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-11-12 17:46+0900\n"
+"PO-Revision-Date: 2009-12-02 14:04+0900\n"
+"Last-Translator: PineRay <com.gmail at matsudaterutaka **reverse order**>\n"
+"Language-Team: Japanese <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: content_profile.rules.inc:15
+msgid "User has content profile"
+msgstr "ユーザーにコンテンツプロフィールが存在する"
+
+#: content_profile.rules.inc:17
+#: panels/relationships/node_from_user.inc:18
+msgid "User"
+msgstr "ユーザ"
+
+#: content_profile.rules.inc:33;76
+msgid "Content Profile Content Type"
+msgstr "コンテンツプロフィールのコンテンツタイプ"
+
+#: content_profile.rules.inc:36
+msgid "Select the Content Profile content type to check for."
+msgstr "チェックするコンテンツプロフィールのコンテンツタイプを選択してください。"
+
+#: content_profile.rules.inc:42
+msgid "@user has his @type created"
+msgstr "@user は @type を作成済み"
+
+#: content_profile.rules.inc:51
+msgid "Load Content Profile"
+msgstr "コンテンツプロフィールをロード"
+
+#: content_profile.rules.inc:53
+msgid "User, whose profile should be loaded"
+msgstr "プロフィールをロードするユーザー"
+
+#: content_profile.rules.inc:56
+#: content_profile.module:260
+#: content_profile.info:0;0
+#: modules/content_profile_registration.info:0
+#: modules/content_profile_tokens.info:0
+#: views/content_profile.views.inc:16;22
+msgid "Content Profile"
+msgstr "コンテンツプロフィール"
+
+#: content_profile.rules.inc:79
+msgid "Select the Content Profile content type to load."
+msgstr "ロードするコンテンツプロフィールのコンテンツタイプを選択してください。"
+
+#: content_profile.rules.inc:85
+msgid "Load @user's @type"
+msgstr "@userの@typeをロード"
+
+#: content_profile.theme.inc:27
+msgid "edit"
+msgstr "編集"
+
+#: content_profile.theme.inc:64
+msgid "View"
+msgstr "表示"
+
+#: content_profile.theme.inc:72
+#: content_profile.module:35
+msgid "Edit"
+msgstr "編集"
+
+#: content_profile.module:130
+msgid "Weight"
+msgstr "ウェイト"
+
+#: content_profile.module:132
+msgid "The weight of content of this content type where ever they appear - this applies to the input form integration as well to the display integration."
+msgstr "このコンテンツタイプのコンテンツに使用されるウェイト。表示と同じく入力フォームにも適用されます。"
+
+#: content_profile.module:137
+msgid "Display settings"
+msgstr "表示設定"
+
+#: content_profile.module:138
+msgid "Customize the display of this content profile."
+msgstr "このコンテンツタイプの表示をカスタマイズ。"
+
+#: content_profile.module:143
+msgid "User page display style"
+msgstr "ユーザーページでの表示スタイル"
+
+#: content_profile.module:146
+msgid "Don't display this content profile on the user account page"
+msgstr "このコンテンツプロフィールをユーザーアカウントページで表示しない"
+
+#: content_profile.module:147
+msgid "Display it as link to the profile content"
+msgstr "プロフィールコンテンツへのリンクとして表示"
+
+#: content_profile.module:148
+msgid "Display the full content"
+msgstr "完全なコンテンツを表示"
+
+#: content_profile.module:149
+msgid "Display the content's teaser"
+msgstr "コンテンツのティーザーを表示"
+
+#: content_profile.module:154
+msgid "Include an edit link to the display"
+msgstr "編集リンクを表示に含める"
+
+#: content_profile.module:159
+msgid "Show a link to the content profile creation page, if there is no profile."
+msgstr "プロフィールがなければ、コンテンツプロフィールの作成ページへのリンクを表示。"
+
+#: content_profile.module:161
+msgid "If selected and the user has no profile of this type yet, a link to add one is shown on the user page."
+msgstr "選択されていて、ユーザーにこのタイプのプロフィールがまだ存在していなければ、プロフィールを追加するためのリンクをユーザーページに表示します。"
+
+#: content_profile.module:165
+msgid "Profile edit tab"
+msgstr "プロフィール編集タブ"
+
+#: content_profile.module:168
+msgid "None"
+msgstr "無し"
+
+#: content_profile.module:169
+msgid "Show a tab at the user's page"
+msgstr "ユーザーページにタブを表示"
+
+#: content_profile.module:170
+msgid "Show a secondary tab below the user's edit tab"
+msgstr "ユーザーの編集タブの下にセカンダリータブを表示"
+
+#: content_profile.module:175
+msgid "Submit"
+msgstr "送信"
+
+#: content_profile.module:267
+msgid "Use this content type as a content profile for users"
+msgstr "このコンテンツタイプをユーザーのコンテンツプロフィールとして使用"
+
+#: content_profile.module:368
+msgid "@type %title has been deleted."
+msgstr "@type %title が削除されました。"
+
+#: content_profile.module:392
+msgid "This user already has a content profile of this type. You can only create one profile per user."
+msgstr "このタイプのコンテンツプロフィールがすでに存在します。ひとりのユーザーにつきひとつのプロフィールしか作成できません。"
+
+#: content_profile.module:367
+#: modules/content_profile_registration.module:262
+msgid "content"
+msgstr "コンテンツ"
+
+#: content_profile.module:367
+msgid "@type: deleted %title."
+msgstr "@type: %title が削除されました。"
+
+#: content_profile.module:39
+msgid "Content profile"
+msgstr "コンテンツプロフィール"
+
+#: content_profile.module:40
+msgid "Configure the display and management of this content profile."
+msgstr "コンテンツプロフィールの表示と管理を設定します。"
+
+#: content_profile.install:34
+msgid "Profile"
+msgstr "プロフィール"
+
+#: content_profile.install:36
+msgid "A user profile built as content."
+msgstr "コンテンツとして作成するユーザープロフィール。"
+
+#: content_profile.info:0
+msgid "Use content types for user profiles."
+msgstr "ユーザープロフィールにコンテンツタイプを使用します。"
+
+#: modules/content_profile_registration.module:31
+msgid "User Registration"
+msgstr "ユーザー登録"
+
+#: modules/content_profile_registration.module:32
+msgid "Customize how this content profile shows up on the user registration page."
+msgstr "このコンテンツプロフィールをユーザー登録ページでどのように表示するかカスタマイズします。"
+
+#: modules/content_profile_registration.module:37
+msgid "Use on Registration"
+msgstr "ユーザー登録で使用"
+
+#: modules/content_profile_registration.module:38
+msgid "Use this content type on the user registration page"
+msgstr "このコンテンツタイプをユーザー登録ページで使用します。"
+
+#: modules/content_profile_registration.module:43
+msgid "Use on administrative user creation form"
+msgstr "管理画面のユーザー追加フォームで使用"
+
+#: modules/content_profile_registration.module:44
+msgid "Use this content type when an administrative user creates a new user"
+msgstr "このコンテンツタイプを管理者が新しいユーザーを作成する際に使用します。"
+
+#: modules/content_profile_registration.module:49
+msgid "Hide form fields"
+msgstr "フォームフィールドを非表示"
+
+#: modules/content_profile_registration.module:50
+msgid "Hide fields from the user registration form. Required fields cannot be hidden and are not shown here."
+msgstr "ユーザー登録フォームでフィールドを非表示にします。必須のフィールドは非表示にできず、ここには表示されていません。"
+
+#: modules/content_profile_registration.module:87
+msgid "Title"
+msgstr "タイトル"
+
+#: modules/content_profile_registration.module:94
+msgid "Other form elements (except for required CCK fields)"
+msgstr "その他のフォーム要素(必須のCCKフィールドを除く)"
+
+#: modules/content_profile_registration.module:262
+msgid "view"
+msgstr "表示"
+
+#: modules/content_profile_registration.module:262
+msgid "Content Profile: added %user %type upon registration."
+msgstr "コンテンツプロフィール: %user の %type をユーザー登録で追加しました。"
+
+#: modules/content_profile_tokens.module:73;85;88
+msgid "WARNING - raw user input"
+msgstr "注: ユーザーが入力した RAW データ"
+
+#: modules/content_profile_tokens.module:84;85
+msgid "Requestor:"
+msgstr "要求する側:"
+
+#: modules/content_profile_tokens.module:87;88
+msgid "Requestee:"
+msgstr "要求される側:"
+
+#: modules/content_profile_registration.info:0
+msgid "Content Profile User Registration"
+msgstr "コンテンツプロフィールでユーザー登録"
+
+#: modules/content_profile_registration.info:0
+msgid "Enable content profile features during user registration"
+msgstr "コンテンツプロフィールの機能をユーザー登録で有効にします"
+
+#: modules/content_profile_tokens.info:0
+msgid "Content Profile Tokens"
+msgstr ""
+
+#: modules/content_profile_tokens.info:0
+msgid "Add user tokens for content profiles."
+msgstr "コンテンツプロフィールにユーザートークンを追加します。"
+
+#: panels/relationships/node_from_user.inc:15
+msgid "Profile Node"
+msgstr "プロフィールノード"
+
+#: panels/relationships/node_from_user.inc:17
+msgid "Adds a Content Profile from user context"
+msgstr "ユーザーコンテクストからコンテンツプロフィールを追加"
+
+#: panels/relationships/node_from_user.inc:61
+msgid "Relationship type"
+msgstr "リレーションシップのタイプ"
+
+#: views/content_profile.views.inc:15
+msgid "Node"
+msgstr "ノード"
+
+#: views/content_profile.views.inc:17
+msgid "Create a relationship to a content profile of the user."
+msgstr "ユーザーのコンテンツプロフィールにリレーションシップを作成。"
+
+#: views/content_profile_views_handler_relationship.inc:23
+msgid "Content type"
+msgstr "コンテンツタイプ"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/translations/sv.po b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/sv.po
new file mode 100644
index 0000000..db59fd4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/translations/sv.po
@@ -0,0 +1,273 @@
+# $Id: sv.po,v 1.1.2.1 2009/04/21 00:11:57 seals Exp $
+#
+# Swedish translation of Drupal (content_profile)
+# Generated from files:
+#  content_profile.panels.inc,v 1.1.2.1 2009/01/04 12:02:19 fago
+#  content_profile.rules.inc,v 1.1.2.1 2009/01/07 11:36:36 fago
+#  content_profile.module,v 1.1.2.32 2009/01/07 10:58:05 fago
+#  content_profile.info,v 1.1.2.1 2008/02/01 16:00:24 fago
+#  content_profile_registration.info,v 1.1.2.3 2008/07/24 10:16:40 fago
+#  content_profile.views.inc,v 1.1.2.1 2008/09/26 16:09:43 fago
+#  content_profile.theme.inc,v 1.1.2.8 2009/01/07 10:58:05 fago
+#  content_profile_registration.module,v 1.1.2.25 2009/01/07 11:02:28 fago
+#  content_profile.install,v 1.1.2.6 2009/01/04 11:30:28 fago
+#  content_profile_views_handler_relationship.inc,v 1.1.2.2 2008/11/04 03:57:08 jgraham
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Content Profile 6.x\n"
+"POT-Creation-Date: 2009-04-21 01:45+0200\n"
+"PO-Revision-Date: 2009-04-21 02:07+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals at passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: content_profile.panels.inc:14
+msgid "Profile Node from user"
+msgstr "Nodprofil från användare"
+
+#: content_profile.panels.inc:16
+msgid "Adds a Content Profile from user context"
+msgstr "Lägger till en innehållsprofl från användares sammanhang"
+
+#: content_profile.panels.inc:17
+#: content_profile.rules.inc:17
+msgid "User"
+msgstr "Användare"
+
+#: content_profile.panels.inc:54
+msgid "Relationship type"
+msgstr "Typ av släktskap"
+
+#: content_profile.rules.inc:15
+msgid "User has content_profile"
+msgstr "Användare har content_profile"
+
+#: content_profile.rules.inc:33;76
+msgid "Content Profile Content Type"
+msgstr "Innehållstyp för innehållsprofil"
+
+#: content_profile.rules.inc:36
+msgid "Select the Content Profile content type to check for."
+msgstr "Välj innehållstyp att kontrollera för innehållsprofil."
+
+#: content_profile.rules.inc:42
+msgid "@user has his @type created"
+msgstr "@user har skapat sin @type"
+
+#: content_profile.rules.inc:51
+msgid "Load Content Profile"
+msgstr "Ladda innehållsprofil"
+
+#: content_profile.rules.inc:53
+msgid "User, whose profile should be loaded"
+msgstr "Användare vars profil skall laddas"
+
+#: content_profile.rules.inc:56
+#: content_profile.module:249
+#: content_profile.info:0;0
+#: modules/content_profile_registration.info:0
+#: views/content_profile.views.inc:16;22
+msgid "Content Profile"
+msgstr "Innehållsprofil"
+
+#: content_profile.rules.inc:79
+msgid "Select the Content Profile content type to load."
+msgstr "Välj innehållstyp att ladda för innehållsprofilen"
+
+#: content_profile.rules.inc:85
+msgid "Load @user's @type"
+msgstr "Ladda @type för @user"
+
+#: content_profile.theme.inc:27
+msgid "edit"
+msgstr "redigera"
+
+#: content_profile.theme.inc:64
+msgid "View"
+msgstr "Visa"
+
+#: content_profile.theme.inc:72
+#: content_profile.module:30
+msgid "Edit"
+msgstr "Redigera"
+
+#: content_profile.module:119
+msgid "Weight"
+msgstr "Vikt"
+
+#: content_profile.module:121
+msgid "The weight of content of this content type where ever they appear - this applies to the input form integration as well to the display integration."
+msgstr "Vikten för innehållet för denna innehållstyp där de återfinns - detta gäller integrationen med inmatningsformuläret såväl som integrationen med visningen."
+
+#: content_profile.module:126
+msgid "Display settings"
+msgstr "Inställningar för visning"
+
+#: content_profile.module:127
+msgid "Customize the display of this content profile."
+msgstr "Anpassa visningen för denna innehållsprofil."
+
+#: content_profile.module:132
+msgid "User page display style"
+msgstr "Stil för visning av användarsida"
+
+#: content_profile.module:135
+msgid "Don't display this content profile on the user account page"
+msgstr "Visa inte denna innehållsprofil på sidan för användarens konto"
+
+#: content_profile.module:136
+msgid "Display it as link to the profile content"
+msgstr "Visa det som en länk till profilens innehåll"
+
+#: content_profile.module:137
+msgid "Display the full content"
+msgstr "Visa det fullständiga innehållet"
+
+#: content_profile.module:138
+msgid "Display the content's teaser"
+msgstr "Visa innehållets sammanfattning"
+
+#: content_profile.module:143
+msgid "Include an edit link to the display"
+msgstr "Inkludera en redigeringslänk till visningen"
+
+#: content_profile.module:148
+msgid "Show a link to the content profile creation page, if there is no profile."
+msgstr "Visa en länk till sidan för att skapa en innehållsprofil, om det inte finns någon profil."
+
+#: content_profile.module:150
+msgid "If selected and the user has no profile of this type yet, a link to add one is shown on the user page."
+msgstr "Om vald och användaren inte har någon profil av denna typ ännu visas en länk för att lägga till en på användarens sida."
+
+#: content_profile.module:154
+msgid "Profile edit tab"
+msgstr "Flik för redigering av profil"
+
+#: content_profile.module:157
+msgid "None"
+msgstr "Ingen"
+
+#: content_profile.module:158
+msgid "Show a tab at the user's page"
+msgstr "visa en flik på användarens sida"
+
+#: content_profile.module:159
+msgid "Show a secondary tab below the user's edit tab"
+msgstr "Visa en sekundär flik under användarens redigeringsflik"
+
+#: content_profile.module:164
+msgid "Submit"
+msgstr "Skicka"
+
+#: content_profile.module:256
+msgid "Use this content type as a content profile for users"
+msgstr "Använd denna innehållstyp som innehållsprofil för användare"
+
+#: content_profile.module:357
+msgid "@type %title has been deleted."
+msgstr "%title (@type) har raderats."
+
+#: content_profile.module:377
+msgid "This user has already a content profile of this type. You can only create one profile per user."
+msgstr "Denna användare har redan en innehållsprofil av denna typ. Du kan enbart skaåa en profil per användare."
+
+#: content_profile.module:356
+#: modules/content_profile_registration.module:161
+msgid "content"
+msgstr "innehåll"
+
+#: content_profile.module:356
+msgid "@type: deleted %title."
+msgstr "@type: raderade %title."
+
+#: content_profile.module:34
+msgid "Content profile"
+msgstr "Innehållsprofil"
+
+#: content_profile.module:35
+msgid "Configure the display and management of this content profile."
+msgstr "Konfigurera visningen och hanteringen av denna innehållsprofil."
+
+#: content_profile.module:0
+msgid "content_profile"
+msgstr "content_profile"
+
+#: content_profile.install:34
+msgid "Profile"
+msgstr "Profil"
+
+#: content_profile.install:36
+msgid "A user profile built as content."
+msgstr "En användarprofil uppbyggd som innehåll."
+
+#: content_profile.info:0
+msgid "Use content types for user profiles."
+msgstr "Använd innehållstyp för användareprofiler."
+
+#: modules/content_profile_registration.module:56
+msgid "User Registration"
+msgstr "Användarregistrering"
+
+#: modules/content_profile_registration.module:57
+msgid "Customize how this content profile shows up on the user registration page."
+msgstr "Anpassa hur denna innehållsprofil skall visas på sidan för användarens registrering."
+
+#: modules/content_profile_registration.module:64
+msgid "Use on Registration"
+msgstr "Använd under registrering"
+
+#: modules/content_profile_registration.module:65
+msgid "Use this content type on the user registration page"
+msgstr "Använd denna innehållstyp på användarens sida för registrering"
+
+#: modules/content_profile_registration.module:72
+msgid "Hide these fields during registration"
+msgstr "Göm dessa fält under registrering"
+
+#: modules/content_profile_registration.module:79
+msgid "There are no fields defined, so registration integration is disabled."
+msgstr "Det finns inga fält definierade, så integrering under registrering är inaktiverad."
+
+#: modules/content_profile_registration.module:122
+msgid "Field Group: "
+msgstr "Fältgrupp: "
+
+#: modules/content_profile_registration.module:161
+msgid "view"
+msgstr "visa"
+
+#: modules/content_profile_registration.module:161
+msgid "Content Profile: added %user %type upon registration."
+msgstr "Innehållsprofil: lade till %user %type under registrering."
+
+#: modules/content_profile_registration.module:0
+msgid "content_profile_registration"
+msgstr "content_profile_registration"
+
+#: modules/content_profile_registration.info:0
+msgid "Content Profile User Registration"
+msgstr "Registrering av användares innehållsprofiler"
+
+#: modules/content_profile_registration.info:0
+msgid "Enable content profile features during user registration"
+msgstr "Aktivera innehållsprofils funktioner under användarregistrering"
+
+#: views/content_profile.views.inc:15
+msgid "Node"
+msgstr "Nod"
+
+#: views/content_profile.views.inc:17
+msgid "Create a relationship to a content profile of the user."
+msgstr "Skapa ett släktskap till en innehållsprofil för användaren."
+
+#: views/content_profile_views_handler_relationship.inc:23
+msgid "Content type"
+msgstr "Innehållstyp"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/views/content_profile.views.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/views/content_profile.views.inc
new file mode 100644
index 0000000..263a807
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/views/content_profile.views.inc
@@ -0,0 +1,42 @@
+<?php
+// $Id: content_profile.views.inc,v 1.1.2.1 2008/09/26 16:09:43 fago Exp $
+
+/**
+ * @file content_profile.views.inc
+ * Provides support for the Views module.
+ */
+
+/**
+ * Implementation of hook_views_data_alter().
+ */
+function content_profile_views_data_alter(&$data) {
+  // node relationship for profiles
+  $data['users']['content_profile_rel'] = array(
+    'group' => t('Node'),
+    'title' => t('Content Profile'),
+    'help' => t('Create a relationship to a content profile of the user.'),
+    'relationship' => array(
+      'handler' => 'content_profile_views_handler_relationship',
+      'base' => 'node',
+      'base field' => 'uid',
+      'label' => t('Content Profile'),
+    ),
+  );
+}
+
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function content_profile_views_handlers() {
+  return array(
+  'info' => array(
+    'path' => drupal_get_path('module', 'content_profile') .'/views',
+    ),
+  'handlers' => array(
+    'content_profile_views_handler_relationship' => array(
+     'parent' => 'views_handler_relationship',
+     ),
+    ),
+  );
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/content_profile/views/content_profile_views_handler_relationship.inc b/drupal/sites/default/boinc/modules/contrib/content_profile/views/content_profile_views_handler_relationship.inc
new file mode 100644
index 0000000..800bc32
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/content_profile/views/content_profile_views_handler_relationship.inc
@@ -0,0 +1,57 @@
+<?php
+// $Id: content_profile_views_handler_relationship.inc,v 1.1.2.4 2010/01/12 10:05:01 fago Exp $
+// @file
+
+/**
+ * Specialized relationship handler to adding content profiles.
+ */
+class content_profile_views_handler_relationship extends views_handler_relationship {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['type'] = array('default' => '');
+    return $options;
+  }
+
+  /**
+   * Adds a form element for choosing the right content type.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['type'] = array(
+      '#type' => 'radios',
+      '#title' => t('Content type'),
+      '#default_value' => $this->options['type'],
+      '#options' => content_profile_get_types('names'),
+      '#required' => TRUE,
+    );
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    // Figure out what base table this relationship brings to the party.
+    $join = new views_join();
+    $join->definition = array(
+      'table' => 'node',
+      'field' => 'uid',
+      'left_table' => !empty($this->relationship) ? $this->relationship : 'users',
+      'left_field' => 'uid',
+      'extra' => array(
+        array('field' => 'type', 'value' => $this->options['type']),
+      ),
+    );
+
+    if (!empty($this->options['required'])) {
+      $join->definition['type'] = 'INNER';
+    }
+
+    $join->construct();
+    $this->ensure_my_table();
+
+    $alias = $join->definition['table'] .'_'. $join->definition['left_table'];
+    $this->alias = $this->query->add_relationship($alias, $join, $this->definition['base'], $this->relationship);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/API.txt b/drupal/sites/default/boinc/modules/contrib/elysia_cron/API.txt
new file mode 100644
index 0000000..8eebf38
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/API.txt
@@ -0,0 +1,243 @@
+You can extend cron functionality in you modules by using elysia_cron api.
+With it you can:
+- have more than one cron job per module
+- have a different schedule rule for each cron job defined
+- set a description for each cron job
+
+To do this you should add in you module a new hook. This is the syntax:
+
+function hook_cronapi($op, $job = NULL) {
+  $items['key'] = array(
+    'description' => 'string',
+    'rule' => 'string',
+    'weight' => 1234,
+    'callback' => 'function_name', 
+    'arguments' => array(...),
+    'file' => 'string', // External file, like hook_menu
+    'file path' => 'string'
+  );
+  $items['key2'] = ...
+  ...
+  return $items;
+}
+
+- 'key' is the identifier for the task you are defining. 
+  You can define a timing for the standard cron hook of the module by using
+  the "MODULENAME_cron" key. (See examples).
+
+- description: a textual description of the job, used in elysia cron's status
+  page. Use the untranslated string, without the "t()" wrapper (elysia_cron
+  will apply it)
+
+- rule: the crontab rule. For example: "*/30 * * * *" to execute the task every
+  30 minutes.
+
+- weight (optional): a numerical value to define order of execution. (Default:0)
+
+- callback (optional): you can define here a name of a PHP function that should
+  by called to execute the task. This is not mandatory: if you don't specify
+  it Elysia cron will search for a function called like the task KEY.
+  If this function is not found, Elysia cron will call the "hook_cronapi" 
+  function with $op = 'execute' and $job = 'KEY' (the key of the task).
+  (See examples)
+
+- arguments (optional): an array of arguments passed to callback (only if 
+  callback is defined)
+
+- file/file path: the PHP file that contains the callback (hook_menu's syntax)
+
+
+-----------------------------------------------------------------------------
+EXAMPLES
+-----------------------------------------------------------------------------
+
+Some examples...
+
+Example 1: Basic
+-----------------
+
+example.module:
+
+function example_cronapi($op, $job = NULL) {
+
+  $items['example_sendmail_cron'] = array(
+    'description' => 'Send mail with news',
+    'rule' => '0 */2 * * *', // Every 2 hours
+    // Note: i don't need to define a callback, i'll use "example_sendmail_cron"
+    // function
+  );
+
+  $items['example_news_cron'] = array(
+    'description' => 'Send mail with news',
+    'rule' => '*/5 * * * *', // Every 5 minutes
+    // i must call: example_news_fetch('all')
+    'callback' => 'example_news_fetch',
+    'arguments' => array('all'),
+  );
+
+  return $items;
+}
+
+function example_sendmail_cron() {
+  // ...
+}
+
+function example_news_fetch($what) {
+  // ...
+}
+
+Example 2: Embedded code
+-------------------------
+
+function example_cronapi($op, $job = NULL) {
+  if ($op == 'list') {
+    $items['job1'] = array(
+      'description' => 'Send mail with news',
+      'rule' => '0 */2 * * *', // Every 2 hours
+    );
+
+    $items['job2'] = array(
+      'description' => 'Send mail with news',
+      'rule' => '*/5 * * * *', // Every 5 minutes
+    );
+
+  }
+  elseif ($op == 'execute') {
+    switch ($job) {
+      case 'job1':
+        // ... job1 code
+        break;
+
+      case 'job2':
+        // ... job2 code
+        break;
+    }
+  }
+
+  return $items;
+}
+
+
+-----------------------------------------------------------------------------
+ALTERING HOOK CRON DEFINITION
+-----------------------------------------------------------------------------
+
+You can use the "hook_cron_alter" function to edit cronapi data of other
+modules.
+
+Example:
+function module_cron_alter($data) {
+  $data['key']['rule'] = '0 */6 * * *';
+}
+
+
+-----------------------------------------------------------------------------
+HANDLING DEFAULT MODULE_CRON FUNCTION
+-----------------------------------------------------------------------------
+
+To support standard drupal cron, all cron hooks (*_cron function) are
+automatically added to supported jobs, even if you don't declare them
+on cronapi hook (or if you don't implement the hook at all).
+However you can define job description and job rule in the same way as
+above (considering the job as an external function).
+
+Example:
+
+function module_cronapi($op, $job = NULL) {
+  $items['module_cron'] = array(
+    'description' => 'Standard cron process',
+    'rule' => '*/15 * * * *',
+  )
+  return $items;
+}
+
+function module_cron() {
+  ... 
+  // this is the standard cron hook, but with cronapi above
+  // it has a default rule (execution every 15 minutes) and
+  // a description
+  ...
+}
+
+
+-----------------------------------------------------------------------------
+THEMING & JOB DESCRIPTION
+-----------------------------------------------------------------------------
+
+If you want to have a nicer cron administration page with all modules
+description, and assuming only a few modules supports cronapi hooks,
+you can add your own description by script (see above) or by 
+'elysia_cron_description' theme function.
+
+For example, in your phptemplate theme, you can declare:
+
+function phptemplate_elysia_cron_description($job) {
+  switch($job) {
+    case 'job 1': return 'First job';
+    case 'job 2': return 'Second job';
+    default: return theme_elysia_cron_description($job);
+  }
+}
+
+Note: module default theme_elysia_cron_description($job) already contains
+some common tasks descriptions.
+
+
+-----------------------------------------------------------------------------
+OLD 1.x MODULE API (OBSOLETE)
+-----------------------------------------------------------------------------
+
+Elysia Cron 2.0 defines the totally new module API you see above. However the
+compatibility with old API is mantained.
+This is the old format for reference.
+
+function module_cronapi($op, $job = NULL) {
+  ...
+}
+
+$op can have 3 values:
+- 'list': you should return the list of available jobs, in the form
+  array(
+    array( 'job' => 'description' ),
+    array( 'job' => 'description' ),
+    ...
+  )
+  'job' could be the name of a real function or an identifier used with
+  $op = 'execute' (see below).
+  Warn: 'job' should be a unique identified, even if it's not a function 
+  name.
+- 'rule' : when called with this method, $job variable will contain the 
+  job name you should return the crun rule of. 
+  The rule you return is the default/module preferred schedule rule. 
+  An administrator can always override it to fit his needs.
+- 'execute' : when the system needs to call the job task, if no function 
+  with the same of the job exists, it will call the cronapi with this
+  value and with $job filled with the name of the task to execute.
+  
+Example:
+Assume your module needs 2 cron tasks: one executed every hour (process_queue)
+and one executed once a day (send_summary_mail).
+You can do this with this cronapi:
+
+function module_cronapi($op, $job = NULL) {
+  switch ($op) {
+    case 'list':
+      return array(
+        'module_process_queue' => 'Process queue of new data',
+        'module_send_summary_mail' => 'Send summary of data processed'
+      );
+    case 'rule':
+      if ($job == 'module_process_queue') return '0 * * * *';
+      else return '0 1 * * *';
+    case 'execute':
+      if ($job == 'module_process_queue') {
+        ... do the job ...
+      }
+      // Just for example, module_send_summary_mail is on a separate
+      // function (see below)
+  }
+}
+
+function module_send_summary_mail() {
+  ... do the job ...
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/INSTALL.txt b/drupal/sites/default/boinc/modules/contrib/elysia_cron/INSTALL.txt
new file mode 100644
index 0000000..dac0861
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/INSTALL.txt
@@ -0,0 +1,83 @@
+UPGRADE A NEW VERSION
+----------------------
+
+If you are upgrading from an old version of elysia_cron you should simply 
+replace module files. You don't even need to execute the "update.php" drupal
+process: Elysia cron will detect the new version on its first run and updates
+itself automatically.
+
+
+INSTALLATION 
+-------------
+
+For the basic install you only need to enable the module and Elysia Cron will be
+up and running.
+
+You can stop here if you don't need a great precision over task execution and
+you don't have to execute a task more often than once an hour.  
+For example, if you need only the "Once a day", "Once a week" or "Once a month" 
+schedule rules the basic install is fine. (For D6 users that want to stop here: 
+you should have installed Drupal crontab as described in Drupal INSTALL guide).
+
+Instead, if you need:
+- to run some tasks more often than once an hour (eg: you have a function that
+  should be executed every 5 minutes)
+- to execute a task at an exact time (eg:you must run a function at exactly 
+  "17:23") 
+... you must follow Step B
+
+
+STEP B: CHANGE SYSTEM CRONTAB (OPTIONAL)
+-----------------------------------------
+
+To get the full potential out of elysia cron and have the full control over you
+tasks a further step is needed: you need to configure the system crontab to
+execute drupal cron every minute.
+
+To do this refer to the section "Configuring cron jobs" of drupal documentation:
+http://drupal.org/cron
+
+The only difference is that you should use the "* * * * *" rule part instead of
+"0 * * * *" or "45 * * * *" as described in the guide.
+
+While you're editing the system crontab, it's also recommended to replace the
+"/cron.php" part with "/sites/modules/elysia_cron/cron.php" (if you have
+installed elysia_cron in "sites/modules" directory).
+This is an optional step (you can leave "/cron.php" if you want), doing it will 
+result in a better performance in bigger sites (elysia_cron's cron.php handles 
+cache in a better way).
+
+For example: 
+* * * * * wget -O - -q -t 1 http://www.example.com/sites/all/modules/elysia_cron/cron.php
+
+IF YOU WANT TO ENABLE CRON KEY SECURITY...
+
+... you should also add the choosen cron key (from elysia_cron setup) to the
+call.
+
+Example: 
+* * * * * wget -O - -q -t 1 http://www.example.com/sites/all/modules/elysia_cron/cron.php?cron_key=12345678
+
+That's all, now you can go the the cron administration page to configure your
+tasks.
+(NOTE: In D7, having a system crontab defined, you can set the "Run cron on 
+visitor's requests, every" setting to "Never")
+
+By default elysia_cron will run all standard cron jobs sequentially (in a
+single channel) once an hour. You can change this behavious with elysia_cron
+setup.
+
+To access elysia_cron setup, and change the scheduling of your jobs or view
+execution stats, go to cron page from administration menu.
+
+Note: to better see warnings on administration page you should consider adding
+a rule for "warn" class to theme CSS stylesheet, like this one: .warn { color:
+red; font-weight: bold; }
+
+
+PERMISSIONS
+------------
+
+You can also give 'administer elysia_cron' permission to all user roles that
+needs to administer cron jobs. You can do this with standard drupal users
+administration.
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/elysia_cron/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/README.txt b/drupal/sites/default/boinc/modules/contrib/elysia_cron/README.txt
new file mode 100644
index 0000000..30e7878
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/README.txt
@@ -0,0 +1,247 @@
+ELYSIA_CRON
+by Eric Berdondini (gotheric)
+<eric at void.it>
+
+For installation instructions read INSTALL.TXT
+For module developers API documetation read API.TXT
+
+-----------------------------------------------------------------------------
+FEATURES
+-----------------------------------------------------------------------------
+
+Elysia Cron extends Drupal standard cron, allowing a fine grain control over 
+each task and several ways to add custom cron jobs to your site.
+
+- Set the timings and frequencies of each cron task (you can run some jobs every
+  day at a specified hour, other only monthly and so on...).
+  For each task you can simply choose between some frequently used options 
+  ("once a day", "once a month" ...), or use a powerful "linux crontab"-like 
+  syntax to set the accurate timings. You can even define your frequently used 
+  options to speed up site configuration.
+- Parallel execution of cron task: you can group jobs in channels and execute 
+  then simultaneously: so a task that takes a lot of time to execute won't block
+  other tasks that need to be executed every 5 minutes...
+- You can disable all tasks, an entire channel or a single task.
+- Change the priority/order of task execution.
+- Manual force the execution of a cron tasks.
+- Detailed overview of cron status with time statistics for single tasks and 
+  channels.
+
+- Powerful API for module developers: you can define extra cron tasks for your 
+  modules, each one with own default timings (site administrators can override 
+  them by configuration, other modules via hook_alter). Elysia Cron 2.0 gives a 
+  brand new API support (compatible with 1.0 version) with a lot of features.
+- Administrators can define custom jobs (call to functions with parameters), via
+  the "script" option.
+- Several optimization for frequent cron calls and error handling.
+- Protection from external cron calling by cron_key or allowed host list.
+
+Elysia has no dependencies with contributed modules, and doesn't need to patch
+the core: it can be used in minimal Drupal installation with only core modules.
+It also can be used in a Drupal install profile.
+
+3rd party integration:
+- Ping feature, for external tracking services like host-tracker to tell whether
+  cron is functioning properly on your site.
+- Drush support: you can call "drush elysia-cron" to manually run extended cron.
+- CTools support for exports/backup of task settings.
+- Features support.
+
+-----------------------------------------------------------------------------
+USAGE EXAMPLES
+-----------------------------------------------------------------------------
+
+Elysia cron is usually used in large sites that needs performance optimization.
+
+- Avoid drupal peak loads by distributing heavy load tasks during quiet periods 
+  of the day: for example you may want to rebuild the XML Sitemap of your site 
+  at 2:00AM in the morning, where usually only a few people are visiting your 
+  site. You can even move some tasks to be executed only once a month (log 
+  rotation, old records expiry...).
+
+- If you have tasks that should be executed very often, but don't want to 
+  execute ALL drupal cron tasks that often! For example, you may want to check 
+  for emails that needs to be sent to your users every 2 minutes. Standard cron 
+  is managed in a "monolithic" way, so even if you find out how to execute it 
+  every 2 minutes, you will end in having all cron tasks executed so often, with
+  a lot of performance problems.
+
+- Fine tune cron cache management : drupal cron will invalidate variable cache 
+  every cron run, and this is a great performance problem if you have a 
+  frequently called task. Elysia cron optimize cache management, and doesn't 
+  need to invalidate cache.
+
+- Setup tasks that should be run at a precise time: for example if you want to 
+  send a SimpleNews newsletter every monday at 9:00AM, you can do it.
+
+- Parallel execution: if you have a task that takes a lot of time to execute, 
+  you can setup a different channel for it so it won't block other tasks that 
+  need to be executed every 5 minutes.
+
+- Turn off (disable) a cron task/feature you don't need.
+
+- Debug system cron problems. If your cron does not terminate correctly you can
+  use extended logging, see at each cron timings and disable task to track down 
+  the problem.
+
+-----------------------------------------------------------------------------
+CHANNELS
+-----------------------------------------------------------------------------
+
+Channels are groups of tasks. Each channel is a "parallel line" of execution
+(= multiple channels can be executed simultaneously).
+Tasks inside a channel will be executed sequentially (if they should).
+
+WARNING: It's not recommended to create more than 2 or 3 channels.
+Every channel will increase the delay between each cron check (of the same 
+channel), because each cron call will cycle between all channels.
+So, for example:
+If you have 1 channel it will be checked once a minute.
+If you have 2 channel each one will be checked every 2 minutes (almost usually, 
+when the other one is running it will be checked once a minute).
+It you have 10 channels there will be a check every 10 minutes... if you have
+a job that should be executed every 5 minutes it won't do so!
+
+-----------------------------------------------------------------------------
+EXPORT VIA CTOOLS/FEATURES MODULE
+-----------------------------------------------------------------------------
+
+With 2.0 version of Elysia Cron you can use "Bulk Export" functionality of 
+"Chaos Tools Suite" to export cron settings.
+To use it simply enable all modules, go to Structure > Bulk Exporter and
+select the tasks you want to export settings. You can also select all 
+"elysia_cron" prefixed variables to export global options.
+Than generate the module.
+
+The generated code will set the new defaults of elysia cron settings. This way
+you can simply enable it to use them, but you are free to override them in
+the future using the normal settings page.
+Note that if you want to delete all overrides, and return to exported settings,
+you should do a "reset to defaults" from elysia cron settings page. 
+
+You can also use "Features" module to create a Feature module will the settings
+you need.
+Note that if you want to delete the overridden settings it's preferable to use
+the "reset to defaults" elysia cron's button.
+You can use the "Revert components" Features's button, but this will reset also
+all cron statistics (if you are not interested in them you can freely use that
+button).
+
+-----------------------------------------------------------------------------
+DRUSH SUPPORT
+-----------------------------------------------------------------------------
+
+Elysia Cron 2.0 adds a simple support for Drush module.
+
+You can execute the "elysia-cron" command to run cron.
+
+-----------------------------------------------------------------------------
+RULES AND SCRIPT SYNTAX
+-----------------------------------------------------------------------------
+
+1. FIELDS ORDER
+---------------------------------
+
+ +---------------- minute (0 - 59)
+ |  +------------- hour (0 - 23)
+ |  |  +---------- day of month (1 - 31)
+ |  |  |  +------- month (1 - 12)
+ |  |  |  |  +---- day of week (0 - 6) (Sunday=0)
+ |  |  |  |  |
+ *  *  *  *  *
+
+Each of the patterns from the first five fields may be either * (an asterisk), 
+which matches all legal values, or a list of elements separated by commas 
+(see below).
+
+For "day of the week" (field 5), 0 is considered Sunday, 6 is Saturday (7 is 
+an illegal value)
+
+A job is executed when the time/date specification fields all match the current 
+time and date. There is one exception: if both "day of month" and "day of week" 
+are restricted (not "*"), then either the "day of month" field (3) or the "day 
+of week" field (5) must match the current day (even though the other of the two 
+fields need not match the current day).
+
+2. FIELDS OPERATOR
+---------------------------------
+
+There are several ways of specifying multiple date/time values in a field:
+
+* The comma (',') operator specifies a list of values, for example: "1,3,4,7,8"
+* The dash ('-') operator specifies a range of values, for example: "1-6", which 
+  is equivalent to "1,2,3,4,5,6"
+* The asterisk ('*') operator specifies all possible values for a field. For 
+  example, an asterisk in the hour time field would be equivalent to 'every hour' 
+  (subject to matching other specified fields).
+* The slash ('/') operator (called "step") can be used to skip a given number of 
+  values. For example, "*/3" in the hour time field is equivalent to 
+  "0,3,6,9,12,15,18,21".
+
+3. EXAMPLES
+---------------------------------
+
+ */15 * * * : Execute job every 15 minutes
+ 0 2,14 * * *: Execute job every day at 2:00 and 14:00
+ 0 2 * * 1-5: Execute job at 2:00 of every working day
+ 0 12 1 */2 1: Execute job every 2 month, at 12:00 of first day of the month OR
+ at every monday.
+
+4. SCRIPTS
+---------------------------------
+
+You can use the script section to easily create new jobs (by calling a php 
+function) or to change the scheduling of an existing job.
+
+Every line of the script can be a comment (if it starts with #) or a job 
+definition.
+
+The syntax of a job definition is:
+<-> [rule] <ctx:CONTEXT> [job]
+
+(Tokens betweens [] are mandatory)
+
+* <->: a line starting with "-" means that the job is DISABLED.
+* [rule]: a crontab schedule rule. See above.
+* <ctx:CHANNEL>: set the channel of the task.
+* [job]: could be the name of a supported job (for example: 'search_cron') or a
+  function call, ending with ; (for example: 'process_queue();').
+
+A comment on the line just preceding a job definition is considered the job 
+description.
+
+Remember that script OVERRIDES all settings on single jobs sections or channel 
+sections of the configuration
+
+5. EXAMPLE OF SCRIPT
+---------------------------------
+
+# Search indexing every 2 hours (i'm setting this as the job description)
+0 */2 * * * search_cron
+
+# I'll check for module status only on sunday nights 
+# (and this is will not be the job description, see the empty line below)
+
+0 2 * * 0 update_status_cron
+
+# Trackback ping process every 15min and on a channel called "net"
+*/15 * * * * ctx:net trackback_cron
+
+# Disable node_cron (i must set the cron rule even if disabled)
+- */15 * * * * node_cron
+
+# Launch function send_summary_mail('test at test.com', false); every night
+# And set its description to "Send daily summary"
+# Send daily summary
+0 1 * * *  send_summary_mail('test at test.com', false);
+
+-----------------------------------------------------------------------------
+CREDITS
+-----------------------------------------------------------------------------
+
+Elysia cron is a part of the Elysia project (but could be used stand alone
+with no limitation).
+
+Developing is sponsored by :
+Void Labs s.n.c
+http://www.void.it
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/cron.php b/drupal/sites/default/boinc/modules/contrib/elysia_cron/cron.php
new file mode 100644
index 0000000..6ba8540
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/cron.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @file
+ * Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).
+ */
+
+if (!file_exists('includes/bootstrap.inc')) {
+  if (!empty($_SERVER['DOCUMENT_ROOT']) && file_exists($_SERVER['DOCUMENT_ROOT'] . '/includes/bootstrap.inc')) {
+    chdir($_SERVER['DOCUMENT_ROOT']);
+  } elseif (preg_match('@^(.*)[\\\\/]sites[\\\\/][^\\\\/]+[\\\\/]modules[\\\\/]([^\\\\/]+[\\\\/])?elysia(_cron)?$@', getcwd(), $r) && file_exists($r[1] . '/includes/bootstrap.inc')) {
+    chdir($r[1]);
+  } else {
+    die("Cron Fatal Error: Can't locate bootstrap.inc. Check cron.php position.");
+  }
+}
+
+include_once './includes/bootstrap.inc';
+$_SERVER['SCRIPT_NAME'] = '/cron.php';
+drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+
+if (function_exists('elysia_cron_run')) {
+  elysia_cron_run();
+}
+else {
+  drupal_cron_run();
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.admin.inc b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.admin.inc
new file mode 100644
index 0000000..a58d855
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.admin.inc
@@ -0,0 +1,811 @@
+<?php
+
+/*******************************************************************************
+ * INTERFACE
+ *
+ * WARN: Below this point the word "context" should be avoided (use channel)
+ *   Disabled should always be referenced as "disabled" (in db is "disable" for 
+ *   compatibility with Ctools )
+ ******************************************************************************/
+
+function elysia_cron_admin_page() {
+  $aoutput = array();
+  $aoutput[] = drupal_get_form('elysia_cron_run_form');
+
+  $output = '';
+
+  elysia_cron_initialize();
+
+  global $elysia_cron_settings, $elysia_cron_settings_by_channel, $elysia_cron_current_channel, $cron_completed, $cron_completed_time;
+
+  $v = variable_get('elysia_cron_disabled', false);
+  $output .= '<p>' . t('Global disable') . ': <i>' . ($v ? '<span class="warn">' . t('YES') . '</span>' : 'no') . '</i></p>';
+  $output .= '<p>' . t('Last channel executed') . ': <i>' . (($c = elysia_cron_last_channel()) ? $c : t('n/a')) . '</i></p>';
+
+  if (EC_DRUPAL_VERSION < 7) {
+    if (_ec_variable_get('elysia_cron_semaphore', 0)) {
+      $output .= '<p><span class="warn">' . t('Global semaphore active since !date', array('!date' => elysia_cron_date(_ec_variable_get('elysia_cron_semaphore', 0)))) . '</span></p>';
+    }
+  }
+
+  $running = '';
+  foreach ($elysia_cron_settings_by_channel as $channel => $data) {
+    if (elysia_cron_is_channel_running($channel)) {
+      $running .= $channel . ' ';
+    }
+  }
+  if ($running) {
+    $output .= '<p>' . t('Running channels') . ': <span class="warn">' . $running . '</span></p>';
+  }
+
+  $output .= '<p>' . t('Last run') . ': ' . elysia_cron_date(_ec_variable_get('elysia_cron_last_run', 0)) . '</p>';
+
+  foreach ($elysia_cron_settings_by_channel as $channel => $data) {
+    $running = elysia_cron_is_channel_running($channel);
+    $output .= '<h3>' . t('Channel') . ': ' . $channel . ($running ? ' (' . t('Running since !date', array('!date' => elysia_cron_date($running))) . ')' : '') . ($data['#data']['disabled'] ? ' <span class="warn">(' . t('DISABLED') . ')</span>' : '') . '</h3>';
+    $output .= '<p>' . t('Last run') . ': ' . elysia_cron_date($data['#data']['last_run']) . '</p>';
+    $output .= '<p>' . t('Last execution time') . ': ' . $data['#data']['last_execution_time'] . 's ' . t('(Shutdown: !shutdown) (Avg total: !avgtotal, Max total: !maxtotal)', array('!shutdown' => $data['#data']['last_shutdown_time'] . 's', '!avgtotal' => $data['#data']['avg_execution_time'] . 's', '!maxtotal' => $data['#data']['max_execution_time'] . 's')) . '</p>';
+    $output .= '<p>' . t('Execution count') . ': ' . $data['#data']['execution_count'] . '</p>';
+    if ($data['#data']['last_aborted']) {
+      $output .= '<p>' . t('Last aborted') . ': <span class="warn">' . t('On function !function', array('!function' => $data['#data']['last_abort_function'])) . '</span></p>';
+    }
+    if ($data['#data']['abort_count']) {
+      $output .= '<p>' . t('Abort count') . ': <span class="warn">' . $data['#data']['abort_count'] . '</span></p>';
+    }
+
+    $rows = array();
+    foreach ($data as $job => $conf) {
+      if ($job != '#data') {
+        $rows[] = array(
+          (!empty($conf['disabled']) ? '<strike>' . $job . '</strike>' : (empty($conf['running']) ? '<b>' . $job . '</b>' : '<b><u>' . $job . '</u></b> <small title="' . t('Running') . '">(R)</small>')) . (elysia_cron_should_run($conf) ? ' <small title="' . t('Waiting for execution') . '">(w)</small>' : ''),
+          array(
+            'data' => '<i>' . elysia_cron_description($job) . '</i> ' .
+          '[' . _dco_l(t('run'), _dcf_internal_path('admin/config/system/cron/execute/') . $job, array('attributes' => array('onclick' => 'return confirm("' . t('Force execution of !job?', array('!job' => $job)) . '");'))) . ']',
+            'colspan' => 4,
+          ),
+        );
+        $rows[] = array(
+          check_plain($conf['rule']) . (!empty($conf['weight']) ? ' <small>(' . t('Weight') . ': ' . $conf['weight'] . ')</small>' : ''),
+          elysia_cron_date($conf['last_run']),
+          $conf['last_execution_time'] . 's',
+          $conf['execution_count'],
+          $conf['avg_execution_time'] . 's / ' . $conf['max_execution_time'] . 's',
+        );
+      }
+    }
+    $output .= _dco_theme('table', array('header' => array(t('Job / Rule'), t('Last run'), t('Last exec time'), t('Exec count'), t('Avg/Max Exec time')), 'rows' => $rows));
+  }
+
+  $output .= '<p>' . t('Notes: job times don\'t include shutdown times (only shown on channel times).') . '</p>';
+  $output .= '<p>' . t('If an abort occours usually the job is not properly terminated, and so job timings can be inaccurate or wrong.') . '</p>';
+
+  $aoutput[] = array(
+    '#type' => 'markup',
+    '#markup' => $output,
+  );
+
+  return _dcr_render_array($aoutput);
+}
+
+function elysia_cron_settings_form() {
+  global $elysia_cron_settings, $elysia_cron_settings_by_channel;
+  elysia_cron_initialize();
+
+  $form = array();
+
+  $form['prefix_1'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Click for help and cron rules and script syntax'),
+    '#collapsible' => true,
+    '#collapsed' => true,
+    '#description' => t(<<<EOT
+<h3>Fields order</h3>
+<pre>
+ +---------------- minute (0 - 59)
+ |  +------------- hour (0 - 23)
+ |  |  +---------- day of month (1 - 31)
+ |  |  |  +------- month (1 - 12)
+ |  |  |  |  +---- day of week (0 - 6) (Sunday=0)
+ |  |  |  |  |
+ *  *  *  *  *
+</pre>
+<p>Each of the patterns from the first five fields may be either * (an asterisk),
+which matches all legal values, or a list of elements separated by commas (see below).</p>
+<p>For "day of the week" (field 5), 0 is considered Sunday, 6 is Saturday
+(7 is an illegal value)</p>
+<p>A job is executed when the time/date specification fields all match the current
+time and date. There is one exception: if both "day of month" and "day of week"
+are restricted (not "*"), then either the "day of month" field (3) or the "day of week"
+field (5) must match the current day (even though the other of the two fields
+need not match the current day).</p>
+
+<h3>Fields operators</h3>
+<p>There are several ways of specifying multiple date/time values in a field:</p>
+<ul>
+<li>The comma (',') operator specifies a list of values, for example: "1,3,4,7,8"</li>
+<li>The dash ('-') operator specifies a range of values, for example: "1-6", which is equivalent to "1,2,3,4,5,6"</li>
+<li>The asterisk ('*') operator specifies all possible values for a field. For example, an asterisk in the hour time field would be equivalent to 'every hour' (subject to matching other specified fields).</li>
+<li>The slash ('/') operator (called "step") can be used to skip a given number of values. For example, "*/3" in the hour time field is equivalent to "0,3,6,9,12,15,18,21".</li>
+</ul>
+
+<h3>Examples</h3>
+<pre>
+ */15 * * * * : Execute job every 15 minutes
+ 0 2,14 * * *: Execute job every day at 2:00 and 14:00
+ 0 2 * * 1-5: Execute job at 2:00 of every working day
+ 0 12 1 */2 1: Execute job every 2 month, at 12:00 of first day of the month OR at every monday.
+</pre>
+
+<h3>Script</h3>
+<p>You can use the script section to easily create new jobs (by calling a php function)
+or to change the scheduling of an existing job.</p>
+<p>Every line of the script can be a comment (if it starts with #) or a job definition.</p>
+<p>The syntax of a job definition is:</p>
+<code>
+<-> [rule] <ch:CHANNEL> [job]
+</code>
+<p>(Tokens betweens [] are mandatory)</p>
+<ul>
+<li><->: a line starting with "-" means that the job is DISABLED.</li>
+<li>[rule]: a crontab schedule rule. See above.</li>
+<li><ch:CHANNEL>: set the channel of the job.</li>
+<li>[job]: could be the name of a supported job (for example: 'search_cron') or a function call, ending with ; (for example: 'process_queue();').</li>
+</ul>
+<p>A comment on the line just preceding a job definition is considered the job description.</p>
+<p>Remember that script OVERRIDES all settings on single jobs sections or channel sections of the configuration</p>
+
+<h3>Examples of script</h3>
+<pre>
+# Search indexing every 2 hours (i'm setting this as the job description)
+0 */2 * * * search_cron
+
+# I'll check for module status only on sunday nights
+# (and this is will not be the job description, see the empty line below)
+
+0 2 * * 0 update_status_cron
+
+# Trackback ping process every 15min and on a channel called "net"
+*/15 * * * * ch:net trackback_cron
+
+# Disable node_cron (i must set the cron rule even if disabled)
+- */15 * * * * node_cron
+
+# Launch function send_summary_mail('test at test.com', false); every night
+# And set its description to "Send daily summary"
+# Send daily summary
+0 1 * * *  send_summary_mail('test at test.com', false);
+</pre>
+EOT
+),
+  );
+
+  $form['prefix_2'] = array(
+    '#markup' => '<hr>',
+  );
+
+  $form['main'] = array(
+    '#title' => t('Main'),
+    '#type' => 'fieldset',
+    '#collapsible' => false,
+    '#collapsed' => false,
+  );
+  $form['main']['elysia_cron_disabled'] = array(
+    '#title' => t('Global disable'),
+    '#type' => 'checkbox',
+    '#default_value' => variable_get('elysia_cron_disabled', false),
+  );
+
+  $form['installation'] = array(
+    '#title' => t('Installation settings'),
+    '#type' => 'fieldset',
+    '#collapsible' => true,
+    '#collapsed' => true,
+  );
+
+  if (EC_DRUPAL_VERSION >= 7) {
+    $form['installation']['cron_safe_threshold'] = array(
+      '#type' => 'select',
+      '#title' => t('Run cron on visitor\'s requests, every'),
+      '#default_value' => variable_get('cron_safe_threshold', DRUPAL_CRON_DEFAULT_THRESHOLD),
+      '#description' => t('Setting a time here will enable the "poormanscron" method, which runs the Drupal cron operation using normal browser/page requests instead of having to set up a crontab to request the cron.php script. This approach requires that your site gets regular traffic/visitors in order to trigger the cron request.') . '<br />' .
+        t('This way is fine if you don\'t need a great control over job starting times and execution frequency.') . '<br />' .
+        t('If you need a fine grained control over cron timings use the crontab metod, as <a href="!cron_url">described in Drupal installation guide</a>.', array('!cron_url' => url('http://drupal.org/cron'))) . '<br />' .
+        t('If you have a very large site, or you need to execute some jobs very often (more than once an hour) refer to Elysia cron\'s INSTALL.TXT to improve main cron setup.'),
+      '#options' => array(0 => t('Never / Use external crontab')) + drupal_map_assoc(array(3600, 10800, 21600, 43200, 86400, 604800), 'format_interval'),
+    );
+  }
+
+  $form['installation']['cron_key'] = array(
+    '#title' => t('Cron key'),
+    '#type' => 'textfield',
+    '#default_value' => variable_get('cron_key', ''),
+    '#description' => t('This is used to avoid external cron calling. If you set this cron will by accessible only by calling http://site/cron.php?cron_key=XXX, so you\'ll need to modify system crontab to support this (Logged user with [administer elysia_cron] permission avoid this check).'),
+  );
+
+  $form['installation']['elysia_cron_allowed_hosts'] = array(
+    '#title' => t('Allowed hosts'),
+    '#type' => 'textfield',
+    '#default_value' => variable_get('elysia_cron_allowed_hosts', ''),
+    '#description' => t('Insert a list of ip addresses separated by , that can run cron.php (Logged user with [administer elysia_cron] permission avoid this check).'),
+  );
+
+  $form['installation']['elysia_cron_default_rule'] = array(
+    '#title' => t('Default schedule rule'),
+    '#type' => 'textfield',
+    '#default_value' => variable_get('elysia_cron_default_rule', false),
+    '#description' => t('If you don\'t specify a rule for a process, and if it has not a module specified one, this rule will apply'),
+  );
+
+  if (!ini_get('safe_mode')) {
+    $form['installation']['elysia_cron_time_limit'] = array(
+      '#title' => t('Time limit'),
+      '#type' => 'textfield',
+      '#default_value' => variable_get('elysia_cron_time_limit', 240),
+      '#description' => t('Set the number of seconds a channel is allowed to run. If you have some jobs that needs more time to execute increase it or set to 0 to disable the limit (WARN: that way a stuck job will block the channel forever!).'),
+    );
+  }
+
+  $form['installation']['elysia_cron_stuck_time'] = array(
+    '#title' => t('Stuck time'),
+    '#type' => 'textfield',
+    '#default_value' => variable_get('elysia_cron_stuck_time', 3600),
+    '#description' => t('How many seconds the process should wait to consider the job as stuck (so the channel can run again)'),
+  );
+
+  $form['installation']['elysia_cron_debug_messages'] = array(
+    '#title' => t('Debug'),
+    '#type' => 'select',
+    '#default_value' => variable_get('elysia_cron_debug_messages', 0),
+    '#options' => array(
+      0 => t('Disabled'),
+      1 => t('Enabled'),
+    ),
+    '#description' => t('Enable extended logging (in watchdog)'),
+  );
+
+  $default_ruless = '';
+  $default_rules = variable_get('elysia_cron_default_rules', $GLOBALS['elysia_cron_default_rules']);
+  foreach ($default_rules as $dk => $dr) {
+    $default_ruless .= $dr . ' = ' . $dk . "\n";
+  }
+
+  $form['installation']['elysia_cron_default_rules'] = array(
+    '#title' => t('Predefined rules'),
+    '#type' => 'textarea',
+    '#rows' => 5,
+    '#default_value' => $default_ruless,
+    '#description' => t('You can put here standard rules used in your system, each one with its own caption. Put each rule in a separate line, in the form "caption = rule". For example: <i>"every 15 minutes = */15 * * * *"</i>.'),
+  );
+
+  $form['installation']['elysia_cron_alert_fieldset'] = array(
+    '#title' => t('External cron tracking'),
+    '#type' => 'fieldset',
+    '#collapsible' => true,
+    '#collapsed' => true,
+    '#description' => t('This lets you use an external tracking system like <a href="http://www.host-tracker.com/">Host Tracker</a> to be used to monitor the health of cron on your site. Point the tracking service to <a href="!cron-ping-url">!cron-ping-url</a>. If Elysia cron has been called within the time interval specified below, the ping page will return HTTP 200.  If not, the ping page will throw a 404 (page not found).', array('!cron-ping-url' => url('admin/build/cron/ping'))),
+  );
+  $form['installation']['elysia_cron_alert_fieldset']['elysia_cron_alert_interval'] = array(
+    '#title' => t('Lapse interval (minutes)'),
+    '#type' => 'textfield',
+    '#size' => 20,
+    '#default_value' => variable_get('elysia_cron_alert_interval', 60),
+    '#description' => t('Specify the number of minutes to allow to lapse before the cron ping page returns a 404 (page not found).'),
+  );
+
+  $form['elysia_cron_script_fieldset'] = array(
+    '#title' => t('Script'),
+    '#type' => 'fieldset',
+    '#collapsible' => true,
+    '#collapsed' => !variable_get('elysia_cron_script', ''),
+  );
+  $form['elysia_cron_script_fieldset']['elysia_cron_script'] = array(
+    '#type' => 'textarea',
+    '#rows' => 20,
+    '#default_value' => variable_get('elysia_cron_script', ''),
+    '#description' => t('You can specify new cron jobs or modify existing schedules by adding lines to the script.<br>' .
+      '<b>Warning</b> All rules specified in the script will OVERRIDE single job settings and channel settings (sections below).'),
+  );
+  
+  $form['single_job'] = array(
+    '#title' => t('Single job settings'),
+    '#description' => 
+      '<b>'.t('Disabled').'</b>: '.t('Flag this to disable job execution').'<br />'.
+      '<b>'.t('Schedule rule').'</b>: '.t('Timing rule for the job. Leave empty to use default rule (shown after the field in parenthesis)').'<br />'.
+      '<b>'.t('Weight').'</b>: '.t('Use this to specify execution order: low weights are executed before high weights. Default value shown in parenthesis').'<br />'.
+      '<b>'.t('Channel').'</b>: '.t('Specify a channel for the job (create the channel if not exists)').'<br /><br />',
+    '#type' => 'fieldset',
+    '#collapsible' => true,
+    //'#collapsed' => true,
+  );
+  
+  $jobchannels = array(
+    '#title' => t('Job channel associations'),
+    '#description' => t('Leave empty for default channel'),
+    '#type' => 'fieldset',
+    '#collapsible' => true,
+    '#collapsed' => true,
+  );
+
+  foreach ($elysia_cron_settings_by_channel as $channel => $cconf) {
+    foreach ($cconf as $job => $conf) {
+      if ($job != '#data' && empty($conf['expression'])) {
+        $form['single_job']['elysia_cron_' . $job] = array(
+          '#title' => $job, // t('Job !job', array('!job' => $job)),
+          '#description' => elysia_cron_description($job),
+          '#type' => 'fieldset',
+          '#collapsible' => true,
+          '#collapsed' => !elysia_cron_get_job_rule($job) && !elysia_cron_get_job_weight($job) && !elysia_cron_is_job_disabled($job) && !elysia_cron_get_job_channel($job),
+        );
+        //if (!$form['single_job']['elysia_cron_'.$job]['#collapsed'])
+        //  $form['single_job']['#collapsed'] = false;
+
+        $rule = elysia_cron_get_job_rule($job);
+        $options = array_merge(array('default' => t('Default') . ' (' . (!empty($default_rules[$conf['default_rule']]) ? $default_rules[$conf['default_rule']] : $conf['default_rule']) . ')'), $default_rules);
+        if ($rule && !isset($options[$rule])) {
+          $options[$rule] = $rule;
+        }
+        $options['custom'] = t('Custom') . ' ...';
+
+        $form['single_job']['elysia_cron_' . $job]['_elysia_cron_seljob_rule_' . $job] = array(
+          '#title' => t('Schedule rule'),
+          '#type' => 'select',
+          '#options' => $options,
+          '#default_value' => $rule ? $rule : 'default',
+        );
+
+        $form['single_job']['elysia_cron_' . $job]['_elysia_cron_job_rule_' . $job] = array(
+          '#title' => t('Schedule rule'),
+          '#type' => 'textfield',
+          '#size' => 20,
+          '#default_value' => $rule ? $rule : $conf['default_rule'],
+        );
+
+        $form['single_job']['elysia_cron_' . $job]['_elysia_cron_job_weight_' . $job] = array(
+          '#title' => t('Weight'),
+          '#type' => 'textfield',
+          '#size' => 4,
+          '#default_value' => elysia_cron_get_job_weight($job),
+          '#description' => '(' . $conf['default_weight'] . ')',
+        );
+
+        //$form['single_job']['elysia_cron_'.$job]['elysia_cron_'.$job.'_disabled'] = array(
+        $form['single_job']['elysia_cron_' . $job]['_elysia_cron_job_disabled_' . $job] = array(
+          '#title' => t('Disabled'),
+          '#type' => 'checkbox',
+          '#default_value' => elysia_cron_is_job_disabled($job, false),
+        );
+
+        //$jobchannels['elysia_cron_'.$job.'_channel'] = array(
+        $form['single_job']['elysia_cron_' . $job]['_elysia_cron_job_channel_' . $job] = array(
+          '#title' => t('Channel'), // t('Channel for !job', array('!job' => $job)),
+          '#type' => 'textfield',
+          '#size' => 20,
+          '#default_value' => elysia_cron_get_job_channel($job),
+        );
+
+        //if (elysia_cron_get_job_channel($job))
+        //  $jobchannels['#collapsed'] = false;
+      }
+    }
+  }
+
+  $form['channels'] = array(
+    '#title' => t('Channels settings'),
+    '#type' => 'fieldset',
+    '#collapsible' => true,
+    //'#collapsed' => $jobchannels['#collapsed'],
+  );
+
+  foreach ($elysia_cron_settings_by_channel as $channel => $conf) {
+    $form['channels']['elysia_cron_ch_' . $channel] = array(
+      '#title' => $channel, // t('Channel !channel', array('!channel' => $channel)),
+      '#type' => 'fieldset',
+    );
+    $form['channels']['elysia_cron_ch_' . $channel]['_elysia_cron_ch_disabled_' . $channel] = array(
+      '#title' => t('Disabled'),
+      '#type' => 'checkbox',
+      '#default_value' => elysia_cron_is_channel_disabled($channel, ''),
+    );
+    $form['channels']['elysia_cron_ch_' . $channel]['_elysia_cron_ch_rule_' . $channel] = array(
+      '#title' => t('Default schedule rule'),
+      '#type' => 'textfield',
+      '#size' => 20,
+      '#default_value' => elysia_cron_get_channel_rule($channel),
+    );
+    //if (elysia_cron_is_channel_disabled($channel))
+    //  $form['channels']['#collapsed'] = false;
+  }
+
+  //$form['channels']['jobchannels'] = $jobchannels;
+
+  $form['buttons'] = array('#type' => 'actions');
+  $form['buttons']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save configuration'),
+  );
+  $form['buttons']['reset'] = array(
+    '#type' => 'submit',
+    '#value' => t('Reset to defaults'),
+  );
+
+  if (!empty($_POST) && form_get_errors()) {
+    drupal_set_message(t('The settings have not been saved because of the errors.'), 'error');
+  }
+
+  return _dcr_form($form);
+}
+
+function theme_elysia_cron_settings_form($_dco_variables) {
+  extract(_dcf_theme_form($_dco_variables));
+  $form = &$variables['form'];
+
+  $output = '<script type="text/javascript"><!--' . "\n" .
+    /*'function _ec_select(editid, select) { if (select.value == \'custom\') {'.
+      '$ = jQuery; $(select).hide();$("#"+editid).show();$("#"+editid).focus();'.
+    '}}'.*/
+    'function _ec_select(key, select) { if (select.value == \'custom\') {' .
+      '$ = jQuery; $("#_ec_select_"+key).hide();$("#_ec_custom_"+key).show();$("#_ec_custom_"+key).focus();' .
+    '}}' .
+    "\n" . '--></script>';
+
+  $coutput = '<table>';
+
+  $i = 0;
+  foreach (element_children($form['single_job']) as $c) {
+    $key = substr($c, 12);
+    //print_r($form['single_job'][$c]);
+    if ($i++ == 0) {
+      $coutput .= '<tr>' .
+        '<th>' . $form['single_job'][$c]['_elysia_cron_job_disabled_' . $key]['#title'] . '</th>' .
+        '<th>' . $form['single_job'][$c]['_elysia_cron_job_rule_' . $key]['#title'] . '</th>' .
+        '<th colspan="2">' . $form['single_job'][$c]['_elysia_cron_job_weight_' . $key]['#title'] . '</th>' .
+        '<th>' . $form['single_job'][$c]['_elysia_cron_job_channel_' . $key]['#title'] . '</th>' .
+      '</tr>';
+    }
+
+    //$def_rule = $form['single_job'][$c]['_elysia_cron_job_rule_'.$key]['#description'];
+    $def_weight = $form['single_job'][$c]['_elysia_cron_job_weight_' . $key]['#description'];
+
+    $posted_key = $form['single_job'][$c]['_elysia_cron_seljob_rule_' . $key]['#name'];
+    $posted_val = !empty($_REQUEST[$posted_key]) ? $_REQUEST[$posted_key] : false;
+
+    $form['single_job'][$c]['_elysia_cron_job_rule_' . $key]['#prefix'] = '<span id="_ec_custom_' . $key . '" style="' . ($posted_val != 'custom' ? 'display: none;' : '') . '">';
+    $form['single_job'][$c]['_elysia_cron_job_rule_' . $key]['#suffix'] = '</span>';
+    $form['single_job'][$c]['_elysia_cron_job_rule_' . $key]['#title'] = NULL;
+    $form['single_job'][$c]['_elysia_cron_job_rule_' . $key]['#description'] = NULL;
+    //$form['single_job'][$c]['_elysia_cron_job_rule_'.$key]['#attributes']['style'] = ($posted_val != 'custom' ? 'display: none;' : '').'width: 20em; margin: 0';
+    $form['single_job'][$c]['_elysia_cron_seljob_rule_' . $key]['#prefix'] = '<span id="_ec_select_' . $key . '" style="' . ($posted_val == 'custom' ? 'display: none;' : '') . '">';
+    $form['single_job'][$c]['_elysia_cron_seljob_rule_' . $key]['#suffix'] = '</span>';
+    $form['single_job'][$c]['_elysia_cron_seljob_rule_' . $key]['#title'] = NULL;
+    $form['single_job'][$c]['_elysia_cron_seljob_rule_' . $key]['#description'] = NULL;
+    //$form['single_job'][$c]['_elysia_cron_seljob_rule_'.$key]['#attributes']['style'] = ($posted_val == 'custom' ? 'display: none;' : '').'width: 20em; margin: 0';
+    //$form['single_job'][$c]['_elysia_cron_seljob_rule_'.$key]['#attributes']['onchange'] = '_ec_select(\''.$form['single_job'][$c]['_elysia_cron_job_rule_'.$key]['#id'].'\', this)';
+    $form['single_job'][$c]['_elysia_cron_seljob_rule_' . $key]['#attributes']['onchange'] = '_ec_select(\'' . $key . '\', this)';
+
+    $form['single_job'][$c]['_elysia_cron_job_weight_' . $key]['#title'] = NULL;
+    $form['single_job'][$c]['_elysia_cron_job_weight_' . $key]['#description'] = NULL;
+    $form['single_job'][$c]['_elysia_cron_job_weight_' . $key]['#attributes']['style'] = 'margin: 0';
+    $form['single_job'][$c]['_elysia_cron_job_disabled_' . $key]['#title'] = NULL;
+    $form['single_job'][$c]['_elysia_cron_job_disabled_' . $key]['#attributes']['style'] = 'margin: 0';
+    $form['single_job'][$c]['_elysia_cron_job_channel_' . $key]['#title'] = NULL;
+    $form['single_job'][$c]['_elysia_cron_job_channel_' . $key]['#attributes']['style'] = 'margin: 0';
+
+    $coutput .= '<tr><td colspan="6"><b>' . $form['single_job'][$c]['#title'] . '</b>' . (($d = $form['single_job'][$c]['#description']) && $d != '-' ? ' <i>(' . $d . ')</i>' : '' ) . '</td></tr>';
+    $coutput .= '<tr>' .
+      '<td align="center">' . drupal_render($form['single_job'][$c]['_elysia_cron_job_disabled_' . $key]) . '</td>' .
+      '<td>' . drupal_render($form['single_job'][$c]['_elysia_cron_seljob_rule_' . $key]) . drupal_render($form['single_job'][$c]['_elysia_cron_job_rule_' . $key]) . '</td>' .//'<td><small>'.$def_rule.'</small></td>'.
+      '<td>' . drupal_render($form['single_job'][$c]['_elysia_cron_job_weight_' . $key]) . '</td><td><small>' . $def_weight . '</small></td>' .
+      '<td>' . drupal_render($form['single_job'][$c]['_elysia_cron_job_channel_' . $key]) . '</td>' .
+    '</tr>';
+    drupal_render($form['single_job'][$c]);
+  }
+  $coutput .= '</table>';
+
+  $form['single_job']['#children'] = $coutput;
+  //$form['single_job'][] = array('#type' => 'markup', '#markup' => $output);
+
+  $coutput = '<table>';
+
+  $i = 0;
+
+  foreach (element_children($form['channels']) as $c) {
+    $key = substr($c, 15);
+    if ($i++ == 0) {
+      $coutput .= '<tr>' .
+        '<th>' . t('Name') . '</th>' .
+        '<th>' . $form['channels'][$c]['_elysia_cron_ch_disabled_' . $key]['#title'] . '</th>' .
+        '<th>' . $form['channels'][$c]['_elysia_cron_ch_rule_' . $key]['#title'] . '</th>' .
+      '</tr>';
+    }
+
+    $form['channels'][$c]['_elysia_cron_ch_disabled_' . $key]['#title'] = NULL;
+    $form['channels'][$c]['_elysia_cron_ch_disabled_' . $key]['#attributes']['style'] = 'margin: 0';
+    $form['channels'][$c]['_elysia_cron_ch_rule_' . $key]['#title'] = NULL;
+    $form['channels'][$c]['_elysia_cron_ch_rule_' . $key]['#attributes']['style'] = 'margin: 0';
+
+    $coutput .= '<tr>' .
+      '<td><b>' . $form['channels'][$c]['#title'] . '</b></td>' .
+      '<td>' . drupal_render($form['channels'][$c]['_elysia_cron_ch_disabled_' . $key]) . '</td>' .
+      '<td>' . drupal_render($form['channels'][$c]['_elysia_cron_ch_rule_' . $key]) . '</td>' .
+    '</tr>';
+    drupal_render($form['channels'][$c]);
+  }
+  $coutput .= '</table>';
+
+  $form['channels']['#children'] = $coutput;
+
+  return $output . drupal_render_children($form);
+  //$form['channels'][] = array('#type' => 'markup', '#markup' => $output);
+  //return drupal_render(_dcr_form($form));
+}
+
+function elysia_cron_settings_form_validate($_dco_form, &$_dco_form_state) {
+  extract(_dcf_form_validate($_dco_form, $_dco_form_state));
+  global $elysia_cron_settings;
+
+  $script = $form_state['values']['elysia_cron_script'];
+  if ($script) {
+    $errors = elysia_cron_decode_script($script, false);
+    if ($errors) {
+      form_set_error('elysia_cron_script', t('Invalid lines:') . implode('<br>', $errors));
+    }
+  }
+
+  foreach ($form_state['values'] as $key => $value) {
+    if ($value && preg_match('/^_elysia_cron_([^_]+_[^_]+)_(.*)$/', $key, $r) && ($r[1] == 'job_rule' || $r[1] == 'ch_rule')) {
+      if (!preg_match('/^\\s*([0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+)\\s*$/', $value)) {
+        form_set_error($key, t('Invalid rule: %rule', array('%rule' => $value)));
+      }
+    }
+  }
+
+  if (!empty($form_state['values']['elysia_cron_default_rules'])) {
+    $rules = explode(PHP_EOL, $form_state['values']['elysia_cron_default_rules']);
+    foreach ($rules as $rule) {
+      $rule = trim($rule);
+      if (empty($rule)) {
+        continue;
+      }
+
+      $rule = explode('=', $rule);
+      if (empty($rule[1])) {
+        form_set_error('elysia_cron_default_rules', t('Invalid rule: %rule', array('%rule' => $rule[0])));
+      } 
+      elseif (!preg_match('/^\\s*([0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+)\\s*$/', trim($rule[1]))) {
+        form_set_error('elysia_cron_default_rules', t('Invalid rule: %rule', array('%rule' => $rule[0])));
+      }
+    }
+  }
+}
+
+function elysia_cron_settings_form_submit($_dco_form, &$_dco_form_state) {
+  extract(_dcf_form_validate($_dco_form, $_dco_form_state));
+  $form_values = $form_state['values'];
+
+  $op = isset($form_values['op']) ? $form_values['op'] : '';
+
+  // Exclude unnecessary elements.
+  unset($form_values['submit'], $form_values['reset'], $form_values['form_id'], $form_values['op'], $form_values['form_token']);
+
+  $elysia_cron_default_rules = array();
+  $rules = explode("\n", $form_values['elysia_cron_default_rules']);
+  foreach ($rules as $r) {
+    if (trim($r)) {
+      $rr = explode("=", $r);
+      $elysia_cron_default_rules[trim($rr[1])] = trim($rr[0]);
+    }
+  }
+  variable_set('elysia_cron_default_rules', $elysia_cron_default_rules);
+
+  foreach ($form_values as $key => $value) {
+    $value = trim($value);
+    if (!preg_match('/^_elysia_cron_([^_]+_[^_]+)_(.*)$/', $key, $r)) {
+      if ($op == t('Reset to defaults') || ($key != 'cron_safe_threshold' && !$value)) {
+        variable_del($key);
+      }
+      elseif ($key != 'elysia_cron_default_rules') {
+        if (is_array($value) && isset($form_values['array_filter'])) {
+          $value = array_keys(array_filter($value));
+        }
+        variable_set($key, $value);
+      }
+    }
+    else {
+      $nullvalue = $r[1] != 'job_weight' ? !$value : !$value && $value !== '0';
+
+      //dprint($r[1].' '.$r[1].' '.$r[2]);
+      if ($op == t('Reset to defaults') || $nullvalue) {
+        switch ($r[1]) {
+          case 'job_channel':
+            elysia_cron_reset_job_channel($r[2]);
+            break;
+          case 'job_rule':
+            elysia_cron_reset_job_rule($r[2]);
+            break;
+          case 'job_weight':
+            elysia_cron_reset_job_weight($r[2]);
+            break;
+          case 'job_disabled':
+            elysia_cron_reset_job_disabled($r[2]);
+            break;
+          case 'ch_disabled':
+            elysia_cron_reset_channel_disabled($r[2]);
+            break;
+          case 'ch_rule':
+            elysia_cron_reset_channel_rule($r[2]);
+            break;
+        }
+      }
+      else {
+        switch ($r[1]) {
+          case 'job_channel':
+            elysia_cron_set_job_channel($r[2], $value);
+            break;
+          case 'job_rule':
+            if ($form_values['_elysia_cron_seljob_rule_' . $r[2]] == 'custom') {
+              elysia_cron_set_job_rule($r[2], $value);
+            }
+            break;
+          case 'seljob_rule':
+            if ($value != 'custom') {
+              if ($value == 'default') {
+                elysia_cron_reset_job_rule($r[2]);
+              }
+              else {
+                elysia_cron_set_job_rule($r[2], $value);
+              }
+            }
+            break;
+          case 'job_weight':
+            elysia_cron_set_job_weight($r[2], $value);
+            break;
+          case 'job_disabled':
+            elysia_cron_set_job_disabled($r[2], $value);
+            break;
+          case 'ch_disabled':
+            elysia_cron_set_channel_disabled($r[2], $value);
+            break;
+          case 'ch_rule':
+            elysia_cron_set_channel_rule($r[2], $value);
+            break;
+        }
+      }
+
+    }
+  }
+  if ($op == t('Reset to defaults')) {
+    drupal_set_message(t('The configuration options have been reset to their default values.'));
+  }
+  else {
+    drupal_set_message(t('The configuration options have been saved.'));
+  }
+}
+
+function elysia_cron_date($timestamp) {
+  return $timestamp > 0 ? format_date($timestamp, EC_DRUPAL_VERSION >= 7 ? 'short' : 'small') : t('n/a');
+  //return date(variable_get('date_format_short', 'm/d/Y - H:i'), $timestamp);
+}
+
+function elysia_cron_run_form() {
+  $form = array();
+  $form['runf'] = array(
+    '#type' => 'fieldset',
+  );
+  $form['runf']['run'] = array(
+    '#type' => 'submit',
+    '#value' => t('Run cron'),
+  );
+  return $form;
+}
+
+function elysia_cron_run_form_submit($_dco_form, &$_dco_form_state) {
+  // Run cron manually from Cron form.
+  if (elysia_cron_run()) {
+    drupal_set_message(t('Cron run successfully.'));
+  }
+  else {
+    drupal_set_message(t('Cron run failed.'), 'error');
+  }
+
+  drupal_goto(_dcf_internal_path('admin/config/system/cron'));
+}
+
+function elysia_cron_execute_page($job = false) {
+  global $cron_completed, $cron_executing_job, $conf;
+
+  if (!$job) {
+    drupal_set_message(t('No job specified'), 'error');
+    drupal_goto(_dcf_internal_path('admin/config/system/cron'));
+  }
+
+  $running = false;
+  if (elysia_cron_is_job_running($job, false)) {
+    if (time() - elysia_cron_get_job_last_run($job, 0) > variable_get('elysia_cron_stuck_time', 3600)) {
+      drupal_set_message(t('Job %job already running, but is probably stuck, so i consider it as terminated', array('%job' => $job)));
+    }
+    else {
+      drupal_set_message(t('Job %job already running', array('%job' => $job)));
+      $running = true;
+    }
+  }
+
+  if (!$running) {
+    $cron_completed = false;
+    $cron_executing_job = $job;
+
+    if (EC_DRUPAL_VERSION < 7) {
+      // Some modules (feedapi, ipaper...) uses the internal "cron_semaphore" variable to detect
+      // start time of cron process. I'll set this only in memory for that purpose.
+      // (In normal drupal cron execution that is done by a variable_set just before this call,
+      // but i need to set this manually if drupal cron is bypassed)
+      $conf['cron_semaphore'] = time();
+    }
+
+    // Register shutdown callback
+    register_shutdown_function('elysia_cron_execute_page_cleanup');
+
+    elysia_cron_initialize();
+    elysia_cron_execute($job);
+
+    if (EC_DRUPAL_VERSION < 7) {
+      _ec_variable_del('cron_semaphore');
+      $conf['cron_semaphore'] = false;
+    }
+
+    $cron_completed = true;
+
+    drupal_set_message(t('Job executed'));
+  }
+
+  drupal_goto(_dcf_internal_path('admin/config/system/cron'));
+}
+
+function elysia_cron_execute_page_cleanup() {
+  global $cron_completed, $cron_executing_job;
+
+  if ($cron_completed) {
+    return;
+  }
+
+  // See if the semaphore is still locked.
+  if (elysia_cron_is_job_running($cron_executing_job)) {
+    _dco_watchdog('cron', 'Unexpected termination of cron job %job manually started, aborted.', array('%job' => $cron_executing_job), WATCHDOG_WARNING);
+
+    elysia_cron_set_job_running($cron_executing_job, 0);
+  }
+}
+
+function elysia_cron_maintenance_page() {
+  $output = array();
+  $output[] = drupal_get_form('elysia_cron_reset_statistics_form');
+  
+  return _dcr_render_array($output);
+}
+
+function elysia_cron_reset_statistics_form() {
+  $form = array();
+  $form['fieldset'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Reset statistics'),
+    '#description' => t('Deletes all cron execution statitics (Last run, last exec time, exec count, avg/max exec time...). Do not touch cron settings.<br /><b>This operation could not be reverted</b><br />'),
+  );
+  $form['fieldset']['reset'] = array(
+    '#type' => 'submit',
+    '#value' => t('Reset'),
+    '#attributes' => array(
+      'onclick' => 'return confirm(\'' . htmlentities(t('Are you sure you want to reset statistics?')) . '\')',
+    ),
+  );
+  return $form;
+}
+
+function elysia_cron_reset_statistics_form_submit($_dco_form, &$_dco_form_state) {
+  elysia_cron_reset_stats();
+  
+  drupal_set_message(t('Reset done.'));
+  drupal_goto(_dcf_internal_path('admin/config/system/cron/maintenance'));
+}
+
+function elysia_cron_reset_page() {
+  elysia_cron_reset_statistics_form_submit(false, $res = array());
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.ctools.inc b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.ctools.inc
new file mode 100644
index 0000000..1b927b0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.ctools.inc
@@ -0,0 +1,203 @@
+<?php
+
+/*******************************************************************************
+ * EXPORTABLES
+ ******************************************************************************/
+
+ // WARN Features button "Revert components" will reset also statistics 
+ 
+function elysia_cron_get_ctools_defaults() {
+  if (module_exists('ctools') && function_exists('ctools_include')) {
+    ctools_include('export');
+    if (function_exists('ctools_export_get_schema') && function_exists('_ctools_export_get_defaults') && ($schema = ctools_export_get_schema('elysia_cron'))) {
+      $export = $schema['export'];
+      return _ctools_export_get_defaults('elysia_cron', $export);
+    }
+  }
+  return array();
+}
+
+/**
+ * Ctools load callback
+ * Ctools does not support override of PARTIAL record, this is an elysia cron specific replacement to support it
+ */
+function elysia_cron_ctools_export_load($name) {
+  $schema = ctools_export_get_schema('elysia_cron');
+  if (!empty($schema)) {
+    $export = $schema['export'];
+    
+    if (EC_DRUPAL_VERSION >= 7) {
+      $object = db_query("select " . implode(", ", $GLOBALS['_ec_columns']) . " from {elysia_cron} where name = :name", array(':name' => $name))->fetch();
+    }
+    else {
+      $object = db_fetch_object(db_query("select " . implode(", ", $GLOBALS['_ec_columns']) . " from {elysia_cron} where name = '%s'", $name));
+    }
+    $default_objects = _ctools_export_get_defaults('elysia_cron', $export);
+    
+    if ($object) {
+      if (isset($default_objects[$name])) {
+        return _elysia_cron_ctools_export_load_object_db_and_code($object, $default_objects[$name], $export);
+      }
+      else {
+        return _elysia_cron_ctools_export_load_object_db($object, $export);
+      }
+    }
+    elseif (isset($default_objects[$name])) {
+      return _elysia_cron_ctools_export_load_object_code($default_objects[$name], $export);
+    }
+  }
+}
+
+/**
+ * Ctools load all callback
+ * Ctools does not support override of PARTIAL record, this is an elysia cron specific replacement to support it
+ */
+function elysia_cron_ctools_export_load_all() {
+  $schema = ctools_export_get_schema('elysia_cron');
+  if (empty($schema)) {
+    return array();
+  }
+  $export = $schema['export'];
+    
+  if (EC_DRUPAL_VERSION >= 7) {
+    $objects = db_query("select " . implode(", ", $GLOBALS['_ec_columns']) . " from {elysia_cron}")->fetchAll();
+  }
+  else {
+    $objects = array();
+    $rs = db_query("select " . implode(", ", $GLOBALS['_ec_columns']) . " from {elysia_cron}");
+    while ($o = db_fetch_object($rs)) {
+      $objects[] = $o;
+    }
+  }
+  $default_objects = _ctools_export_get_defaults('elysia_cron', $export);
+  
+  $result = array();
+  foreach ($objects as $object) {
+    $key = $object->{$export['key']};
+    if (isset($default_objects[$key])) {
+      $result[$key] = _elysia_cron_ctools_export_load_object_db_and_code($object, $default_objects[$key], $export);
+      unset($default_objects[$key]);
+    } else {
+      $result[$key] = _elysia_cron_ctools_export_load_object_db($object, $export);
+    } 
+  }
+  foreach ($default_objects as $key => $object) {
+    $result[$key] = _elysia_cron_ctools_export_load_object_code($object, $export);
+  }
+  return $result;
+}
+
+function _elysia_cron_ctools_export_load_object_db_and_code($object, $code_object, $export) {
+  $overridden = false;
+  foreach ($code_object as $keyd => $value) {
+    if (!isset($object->$keyd) || is_null($object->$keyd)) {
+      $object->$keyd = $value;
+    }
+    else if ($object->$keyd !== $value) {
+      $overridden = true;
+    }
+  }
+  $object->table = 'elysia_cron';
+  $object->export_type = EXPORT_IN_DATABASE | EXPORT_IN_CODE;
+  if (!empty($export['export type string'])) {
+    $object->{$export['export type string']} = $overridden ? t('Overridden') : t('Normal');
+  }
+  return $object;
+}
+
+function _elysia_cron_ctools_export_load_object_db($object, $export) {
+  $object->table = 'elysia_cron';
+  $object->export_type = EXPORT_IN_DATABASE;
+  if (!empty($export['export type string'])) {
+    $object->{$export['export type string']} = t('Normal');
+  }
+  return $object;
+}
+
+function _elysia_cron_ctools_export_load_object_code($object, $export) {
+  $object->table = 'elysia_cron';
+  $object->export_type = EXPORT_IN_CODE;
+  if (!empty($export['export type string'])) {
+    $object->{$export['export type string']} = t('Default');
+  }
+  $object->in_code_only = TRUE;
+  return $object;
+}
+
+/**
+ * Ctools export object factory
+ * Original ctools export factory (_ctools_export_unpack_object) does not handle NULL values correctly.
+ * This function does not support $schema['join'].
+ */
+function elysia_cron_ctools_export_object_factory($schema, $data) {
+  $object = new stdClass;
+
+  foreach ($schema['fields'] as $field => $info) {
+    $object->$field = isset($data->$field) && !is_null($data->$field) ? (empty($info['serialize']) ? $data->$field : unserialize($data->$field)) : NULL;
+  }
+
+  return $object;
+}
+
+/**
+ * Ctools export callback
+ * Handles NULL value (it's not possible to do this with "field" export callback, because null values are rewritten before its call)
+ */
+function elysia_cron_ctools_export_callback($object, $indent) {
+  $table = 'elysia_cron';
+  $schema = ctools_export_get_schema($table);
+  $identifier = $schema['export']['identifier'];
+
+  $output = $indent . '$' . $identifier . ' = new ' . get_class($object) . ";\n";
+
+  if ($schema['export']['can disable']) {
+    $output .= $indent . '$' . $identifier . '->disabled = FALSE; /* Edit this to true to make a default ' . $identifier . ' disabled initially */'  . "\n";
+  }
+  if (!empty($schema['export']['api']['current_version'])) {
+    $output .= $indent . '$' . $identifier . '->api_version = ' . $schema['export']['api']['current_version'] . ";\n";
+  }
+
+  $fields = $schema['fields'];
+
+  foreach ($fields as $field => $info) {
+    if (!empty($info['no export'])) {
+      continue;
+    }
+    $value = isset($object->$field) ? $object->$field : (isset($info['default']) ? $info['default'] : NULL);
+    if (!is_null($value) && $info['type'] == 'int') {
+      $value = (isset($info['size']) && $info['size'] == 'tiny') ? (bool) $value : (int) $value;
+    }
+    $output .= $indent . '$' . $identifier . '->' . $field . ' = ' . ctools_var_export($value, $indent) . ";\n";
+  }
+
+  return $output;  
+}
+
+/**
+ * Ctools export to hook code callback
+ * Original "to hook code" callback doesn't support the replacement of "load/load all" callback (it simply ignores them, even if defined and supported elsewhere)
+ * This code is equal to the original ctools one, but uses specific load callback 
+ */
+function elysia_cron_ctools_to_hook_code($names, $name) {
+  $table = 'elysia_cron';
+  $schema = ctools_export_get_schema($table);
+  $export = $schema['export'];
+  $output = '';
+  $objects = elysia_cron_ctools_export_load_all();
+  $objects = array_intersect_key($objects, array_flip($names));
+  if ($objects) {
+    $output = "/**\n";
+    $output .= " * Implementation of hook_{$export['default hook']}()\n";
+    $output .= " */\n";
+    $output .= "function " . $name . "_{$export['default hook']}() {\n";
+    $output .= "  \${$export['identifier']}s = array();\n\n";
+    foreach ($objects as $object) {
+      $output .= ctools_export_crud_export($table, $object, '  ');
+      $output .= "  \${$export['identifier']}s['" . check_plain($object->$export['key']) . "'] = \${$export['identifier']};\n\n";
+    }
+    $output .= "  return \${$export['identifier']}s;\n";
+    $output .= "}\n";
+  }
+
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.drush.inc b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.drush.inc
new file mode 100644
index 0000000..262bc8c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.drush.inc
@@ -0,0 +1,29 @@
+<?php
+
+/*******************************************************************************
+ * DRUSH SUPPORT
+ ******************************************************************************/
+
+/**
+ * Implementation of hook_drush_command().
+ */
+function elysia_cron_drush_command() {
+  $items = array();
+
+  $items['elysia-cron'] = array(
+    'description' => "Run all cron hooks in all active modules for specified site using elysia cron system. Use this instead of \"core-cron\" if elysia_cron module is installed",
+    'callback'    => 'drush_elysia_cron_run_wrapper',
+    'arguments' => array(),
+  );
+
+  return $items;
+}
+
+/**
+ * A drush command callback.
+ *
+ * wraps the elysia_cron_run function, passing manual = true
+ */
+function drush_elysia_cron_run_wrapper() {
+  return elysia_cron_run(TRUE);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.info b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.info
new file mode 100644
index 0000000..4bc3b2d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.info
@@ -0,0 +1,9 @@
+name = "Elysia Cron"
+description = "Extended cron support with crontab-like scheduling and other features."
+core = 6.x
+; Information added by drupal.org packaging script on 2012-03-13
+version = "6.x-2.1-boinc-1-dev"
+core = "6.x"
+project = "elysia_cron"
+datestamp = "1494510782"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.install b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.install
new file mode 100644
index 0000000..687e256
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.install
@@ -0,0 +1,163 @@
+<?php
+
+function elysia_cron_schema() {
+  $schema['elysia_cron'] = array(
+    'fields' => array(
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 120,
+        'not null' => TRUE,
+      ),
+      'disable' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'not null' => FALSE,
+      ),
+      'rule' => array(
+        'type' => 'varchar',
+        'not null' => FALSE,
+        'length' => 32,
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => FALSE,
+      ),
+      'context' => array(
+        'type' => 'varchar',
+        'not null' => FALSE,
+        'length' => 32,
+      ),
+      'running' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'last_run' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'last_aborted' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'abort_count' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'last_abort_function' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'no export' => TRUE,
+      ),
+      'last_execution_time' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'execution_count' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'avg_execution_time' => array(
+        'type' => 'float',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'max_execution_time' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'last_shutdown_time' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+    ),
+    'primary key' => array('name'),
+    'export' => array(
+      'key' => 'name',
+      'key name' => 'Cron job name',
+      'primary key' => 'name',
+      'identifier' => 'cron_rule',
+      'object factory' => 'elysia_cron_ctools_export_object_factory',
+      'load callback' => 'elysia_cron_ctools_export_load',
+      'load all callback' => 'elysia_cron_ctools_export_load_all',
+      //'save callback' => 'elysia_cron_ctools_export_save',
+      'export callback' => 'elysia_cron_ctools_export_callback',
+      //'import callback' => 'elysia_cron_ctools_import_callback',
+      'to hook code callback' => 'elysia_cron_ctools_to_hook_code',
+      
+      'default hook' => 'default_elysia_cron_rules',
+      'api' => array(
+        'owner' => 'elysia_cron',
+        'api' => 'default_elysia_cron_rules',
+        'minimum_version' => 1,
+        'current_version' => 1,
+      ),
+    ),
+  );
+  return $schema;
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function elysia_cron_install() {
+  drupal_install_schema('elysia_cron');
+  
+  // elysia_cron MUST be the first returned by module_list
+  // This is to ensure elysia_cron_cron is the first hook called by standard cron.php.
+  $min = db_result(db_query("select min(weight) from {system}"));
+  if ($min > -65535) {
+    $min = -65535;
+  }
+  else {
+    $min--;
+  }
+  db_query("UPDATE {system} SET weight = %d WHERE name = '%s'", $min, 'elysia_cron');
+  
+  module_load_include('module', 'elysia_cron');
+  variable_set('elysia_cron_version', elysia_cron_version());
+  
+  drupal_set_message('Elysia cron installed. Setup could be found at ' . l(t('Settings page'), 'admin/build/cron/settings') . '. See INSTALL.TXT for more info.');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function elysia_cron_uninstall() {
+  $rs = db_query("select name from {variable} where name like 'elysia_cron_%%'");
+  while ($o = db_fetch_object($rs)) {
+    variable_del($o->name);
+  }
+
+  drupal_uninstall_schema('elysia_cron');
+
+  drupal_set_message('Elysia cron uninstalled.');
+}
+
+function elysia_cron_update_1() {
+  $cron_key = variable_get('elysia_cron_key', false);
+  if ($cron_key) {
+    variable_set('cron_key', $cron_key);
+  }
+  variable_del('elysia_cron_key');
+  return array();
+}
+
+// Remember use the new update_xxxx convention (6001...)
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.module b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.module
new file mode 100644
index 0000000..5393a3b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron.module
@@ -0,0 +1,1342 @@
+<?php
+// $Id: cron.php,v 1.1 2008/06/25 15:38:55 gotheric Exp $
+
+/**
+ * ELYSIA_CRON
+ * by Eric Berdondini (gotheric)
+ * <eric at void.it>
+ *
+ * Features:
+ * - crontab-like scheduling configuration of each job.
+ * - grouping of jobs in channels (parallel lines of execution).
+ * - you can disable all jobs, an entire channel or a single job via configuration.
+ * - time statistics of each job and of the whole channel.
+ * - modules can define extra cron tasks, each one with own default cron-rules
+ *   (site administrators can override them by configuration).
+ * - administrators can define custom jobs (call to functions with parameters)
+ * - protection from external cron calling by cron_key or allowed host list.
+ * - ensure all shutdown hook functions launched by cron jobs are launched inside
+ *   cron protection (ex: search_cron() will launch search_update_totals() in a
+ *   shutdown hook).
+ *
+ * This file is cross-version (the same for D5, D6, D7).
+ * (Needs the elysia_drupalconv.php)
+ *
+ */
+
+require_once('elysia_drupalconv.php');
+require_once('elysia_cron_update.php');
+require_once('elysia_cron_scheduler.inc');
+require_once('elysia_cron.admin.inc');
+if (EC_DRUPAL_VERSION >= 6) {
+  require_once('elysia_cron.ctools.inc');
+}
+
+
+$GLOBALS['elysia_cron_default_rules'] = array(
+  '*/15 * * * *' => 'Every 15 minutes',
+  '*/30 * * * *' => 'Every 30 minutes',
+  '0 * * * *' => 'Every hour',
+  '0 */6 * * *' => 'Every 6 hours',
+  '4 0 * * *' => 'Once a day',
+  '4 0 * * 0' => 'Once a week',
+  '4 0 1 * *' => 'Once a month',
+);
+
+function elysia_cron_version() {
+  return 20111020;
+}
+
+/*******************************************************************************
+ * DRUPAL HOOKS
+ ******************************************************************************/
+
+function elysia_cron_menu($_dcr_maycache = true) {
+  $items = array();
+  $items['admin/config/system/cron'] = array(
+    'title' => _dcf_t('Cron Settings'),
+    'description' => _dcf_t('View and manage cron table'),
+    'page callback' => 'elysia_cron_admin_page',
+    'access arguments' => array('administer elysia_cron'),
+  );
+  $items['admin/config/system/cron/status'] = array(
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'title' => _dcf_t('Status'),
+    'weight' => 1,
+  );
+  $items['admin/config/system/cron/settings'] = array(
+    'type' => MENU_LOCAL_TASK,
+    'title' => _dcf_t('Settings'),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('elysia_cron_settings_form'),
+    'access arguments' => array('administer elysia_cron'),
+    'weight' => 2,
+  );
+  $items['admin/config/system/cron/maintenance'] = array(
+    'type' => MENU_LOCAL_TASK,
+    'title' => _dcf_t('Maintenance'),
+    'page callback' => 'elysia_cron_maintenance_page',
+    'access arguments' => array('administer elysia_cron'),
+    'weight' => 3,
+  );
+  $items['admin/config/system/cron/execute'] = array(
+    'type' => MENU_CALLBACK,
+    'page callback' => 'elysia_cron_execute_page',
+    'access arguments' => array('administer elysia_cron'),
+  );
+  $items['admin/build/cron/ping'] = array(
+    'type' => MENU_CALLBACK,
+    'page callback' => 'elysia_cron_ping_page',
+    'access callback' => TRUE,
+  );
+  return _dcf_hook_menu($items, $_dcr_maycache);
+}
+
+if (EC_DRUPAL_VERSION >= 7) {
+  // Override standard cron page
+  function elysia_cron_menu_alter(&$items) {
+    $items['admin/config/system/cron'] = array(
+      'title' => _dcf_t('Cron Settings'),
+      'description' => 'View and manage cron table',
+      'page callback' => 'elysia_cron_admin_page',
+      'access arguments' => array('administer elysia_cron'),
+    );
+  }
+}
+
+function elysia_cron_perm() { // For D5-D6
+  return array('administer elysia_cron');
+}
+function elysia_cron_permission() { // For D7
+  return array(
+    'administer elysia_cron' => array('title' => t('Administer elysia cron'), 'description' => t('Perform changes to cron jobs timings, disable cron or single jobs and access cron execution statistics')),
+  );
+}
+
+function elysia_cron_boot() {
+  if (!_dcf_hook_boot('elysia_cron')) {
+    return;
+  }
+
+  if (EC_DRUPAL_VERSION < 7) {
+    global $conf;
+
+    // I need to set cron_semaphore always to false. That way standard drupal cron is always bypassed
+    $conf['cron_semaphore'] = false;
+  }
+}
+
+function elysia_cron_init() {
+  if (!_dcf_hook_init('elysia_cron')) {
+    return;
+  }
+}
+
+/**
+ * Hook cron is invoked only by standard drupal cron.
+ * It's used to replace drupal cron.
+ */
+function elysia_cron_cron() {
+  // First cron run is executed in standard drupal way. This is to enable the use of install profiles
+  if (variable_get('cron_last', 0) == 0) {
+    return;
+  }
+  // If the path is 'admin/*' this is a manual cron run (probably by admin/logs/status)
+  $manual_run = (arg(0) == 'admin');
+
+  $result = elysia_cron_run($manual_run);
+
+  if (EC_DRUPAL_VERSION < 7) {
+    // I must check for cron_semaphore and delete it if set (is not always deleted by elysia_cron_run, and this situation is only when called by drupal cron, so a check here is right)
+    if (variable_get('cron_semaphore', false)) {
+      global $conf;
+      _ec_variable_del('cron_semaphore');
+      $conf['cron_semaphore'] = false;
+    }
+  }
+
+  if ($manual_run) {
+    if ($result) {
+      drupal_set_message(t('Cron ran successfully'));
+    }
+    else {
+      drupal_set_message(t('Cron run failed, disabled or nothing to do'));
+    }
+    drupal_goto(_dcf_internal_path('admin/reports/status'));
+  }
+
+  exit();
+}
+
+/**
+ * I use help section for admin/build/modules page to check if elysia_cron
+ * is the module with the smallest weight.
+ * If it's not i'll set it and print a message
+ */
+function elysia_cron_help($section, $arg = false) {
+  if ($section == _dcf_internal_path('admin/modules')) {
+    $min = drupal_module_get_min_weight('elysia_cron');
+    $weight = drupal_module_get_weight('elysia_cron');
+    if ($min <= $weight) {
+      drupal_set_message(t('Elysia cron module is not the module with the smallest weight (and it must be). Updating weight...'));
+      drupal_module_set_weight('elysia_cron', $min - 1);
+    }
+  }
+}
+
+/*******************************************************************************
+ * SETTINGS API
+ *
+ * WARN: DB and Variable name for "channel" is "context"!
+ ******************************************************************************/
+
+// Variables managed by _ec_variable method, because are setted during cron execution handling (with standard variable_set this will invalidate variable cache in EVERY cron clock)
+$GLOBALS['_ec_variables_allowed'] = array(
+  'elysia_cron_version', // Just for compatibility purpose during elysia_cron_update phase
+  'elysia_cron_semaphore', 
+  'elysia_cron_last_run',
+  'elysia_cron_last_context', 
+  'cron_semaphore', 
+  'cron_last',
+);
+
+$GLOBALS['_ec_columns'] = array(
+  'name', ' disable', ' rule', ' weight', ' context', ' running', ' last_run', ' last_aborted', ' abort_count', ' last_abort_function', ' last_execution_time', ' execution_count', ' avg_execution_time', ' max_execution_time', ' last_shutdown_time'
+);
+ 
+function _ec_variable_init() {
+  global $_ec_variables, $_ec_variables_allowed;
+  $_ec_variables = array();
+  if (EC_DRUPAL_VERSION >= 7) {
+    $_ec_variables = array_map('unserialize', db_query("SELECT name, value FROM {variable} where name like '" . implode("' or name like '", $_ec_variables_allowed) . "'")->fetchAllKeyed());
+  }
+  else {
+    $result = db_query("select * from {variable} where name like '" . implode("' or name like '", $_ec_variables_allowed) . "'");
+    while ($variable = db_fetch_object($result)) {
+      $_ec_variables[$variable->name] = unserialize($variable->value);
+    }
+  }
+}
+
+/**
+ * A substitute for variable_get to avoid cache management
+ * Use ONLY for variables setted during cron execution: elysia_cron_semaphore, elysia_cron_last_run, elysia_cron_last_context, cron_semaphore, cron_last
+ * WARN_UPGRADE
+ */
+function _ec_variable_get($name, $default) {
+  global $_ec_variables, $_ec_variables_allowed;
+  if (!in_array($name, $_ec_variables_allowed)) {
+    _dco_watchdog('cron', 'Wrong variable passed to _ec_variable_get: !var', array('!var' => $name), WATCHDOG_ERROR);
+    return variable_get($name, $default);
+  }
+
+  if (!is_array($_ec_variables)) {
+    _ec_variable_init();
+  }
+
+  // If there is a $GLOBALS['original_conf'] = $conf; at the end of  settings.php i consider it.
+  global $original_conf;
+
+  if (isset($original_conf[$name])) {
+    return $original_conf[$name];
+  }
+  if (isset($_ec_variables[$name])) {
+    return $_ec_variables[$name];
+  }
+
+  return $default;
+}
+
+/**
+ * A substitute for variable_set to avoid cache management
+ * Use ONLY for variables setted during cron execution: elysia_cron_semaphore, elysia_cron_last_run, elysia_cron_last_context, cron_semaphore, cron_last
+ * WARN_UPGRADE
+ */
+function _ec_variable_set($name, $value) {
+  global $_ec_variables, $_ec_variables_allowed;
+  if (!in_array($name, $_ec_variables_allowed)) {
+    _dco_watchdog('cron', 'Wrong variable passed to _ec_variable_set: !var', array('!var' => $name), WATCHDOG_ERROR);
+    return variable_set($name, $value);
+  }
+
+  if (!is_array($_ec_variables)) {
+    _ec_variable_init();
+  }
+
+  if (EC_DRUPAL_VERSION >= 7) {
+    db_merge('variable')->key(array('name' => $name))->fields(array('value' => serialize($value)))->execute();
+
+  }
+  else {
+    if (!variable_get('elysia_cron_alternate_var_handler', false)) {
+      db_lock_table('variable');
+      db_query("DELETE FROM {variable} WHERE name = '%s'", $name);
+      db_query("INSERT INTO {variable} (name, value) VALUES ('%s', '%s')", $name, serialize($value));
+      db_unlock_tables();
+    }
+    else {
+      db_query("REPLACE INTO {variable} (name, value) VALUES ('%s', '%s')", $name, serialize($value));
+    }
+  }
+
+  $_ec_variables[$name] = $value;
+}
+
+/**
+ * A substitute for variable_del to avoid cache management
+ * Use ONLY for variables setted during cron execution: elysia_cron_semaphore, elysia_cron_last_run, elysia_cron_last_context, cron_semaphore, cron_last
+ * WARN_UPGRADE
+ */
+function _ec_variable_del($name) {
+  global $_ec_variables, $_ec_variables_allowed;
+  if (!in_array($name, $_ec_variables_allowed)) {
+    _dco_watchdog('cron', 'Wrong variable passed to _ec_variable_del: !var', array('!var' => $name), WATCHDOG_ERROR);
+    return variable_del($name);
+  }
+
+  if (!is_array($_ec_variables)) {
+    _ec_variable_init();
+  }
+
+  if (EC_DRUPAL_VERSION >= 7) {
+    db_delete('variable')->condition('name', $name)->execute();
+
+  }
+  else {
+    if (!variable_get('elysia_cron_alternate_var_handler', false)) {
+      db_lock_table('variable');
+      db_query("DELETE FROM {variable} WHERE name = '%s'", $name);
+      db_unlock_tables();
+    }
+    else {
+      db_query("DELETE FROM {variable} WHERE name = '%s'", $name);
+    }
+  }
+
+  unset($_ec_variables[$name]);
+}
+
+if (EC_DRUPAL_VERSION < 7) {
+  function _ec_semaphore_get($name = 'elysia_cron_semaphore', $timeout = 120) {
+    if (function_exists('elysia_cron_semaphore_get_alternative')) {
+      return elysia_cron_semaphore_get_alternative($name, $timeout);
+    }
+
+    db_lock_table('variable');
+    $semglob = db_result(db_query("select value from {variable} where name = '%s'", 'elysia_cron_semaphore'));
+    $semglob = $semglob ? unserialize($semglob) : false;
+
+    $stuck = $semglob && (time() - $semglob > $timeout);
+    if ($stuck || !$semglob) {
+      db_query("DELETE FROM {variable} WHERE name = '%s'", 'elysia_cron_semaphore');
+      db_query("INSERT INTO {variable} (name, value) VALUES ('%s', '%s')", 'elysia_cron_semaphore', serialize(time()));
+      $semglob = false; // We must return TRUE
+    }
+    db_unlock_tables();
+
+    if ($stuck) {
+      _dco_watchdog('cron', 'Global semaphore has been active for more than 2 minutes, probably stuck, reset.', array(), WATCHDOG_ERROR);
+    }
+
+    return !$semglob;
+  }
+}
+
+function _ec_get_name($name) {
+  $maxlen = EC_DRUPAL_VERSION >= 6 ? 120 : 40;
+  if (strlen($name) < $maxlen) {
+    return $name;
+  }
+  $border = ($maxlen - 32) / 2;
+  return substr($name, 0, $border) . md5($name) . substr($name, -$border);
+}
+
+function elysia_cron_set($name, $channel = false, $values = array()) {
+  if ($channel) {
+    $name = ':' . $name;
+  }
+
+  if (EC_DRUPAL_VERSION >= 7) {
+    db_merge('elysia_cron')->key(array('name' => $name))->fields($values)->execute();
+    
+  } else {
+    $fields = array("name" => "'%s'", "disable" => "%d", "rule" => "'%s'", "weight" => "%d", "context" => "'%s'", "running" => "%d", "last_run" => "%d", "last_aborted" => "%d", "abort_count" => "%d", "last_abort_function" => "'%s'", "last_execution_time" => "%d", "execution_count" => "%d", "avg_execution_time" => "%f", "max_execution_time" => "%d", "last_shutdown_time" => "%d");
+    $ifields = array('disable', 'running', 'last_run', 'last_aborted', 'abort_count', 'last_execution_time', 'execution_count', 'avg_execution_time', 'max_execution_time', 'last_shutdown_time');
+    
+    if (db_result(db_query('SELECT 1 FROM {elysia_cron} WHERE name = "%s"', $name))) {
+      $uquery = array();
+      $uvalues = array();
+      foreach ($values as $k => $v) {
+        if (is_null($v) && !in_array($k, $ifields)) {
+          $uquery[] =  $k . ' = NULL';
+        }
+        else {
+          $uquery[] =  $k . ' = ' . $fields[$k];
+          $uvalues[] = $v;
+        }
+      }
+      $uvalues[] = $name;
+  
+      db_query("update {elysia_cron} set " . implode(', ', $uquery) . " where name = '%s'", $uvalues);
+      
+    } else {
+      foreach ($ifields as $f) {
+        if (empty($values[$f])) {
+          $values[$f] = 0;
+        }
+      }
+      $values['name'] = $name;
+
+      $iquery1 = array();
+      $iquery2 = array();
+      $ivalues = array();
+      foreach ($values as $k => $v) {
+        if (!is_null($v)) {
+          $iquery1[] = $k;
+          $iquery2[] = $fields[$k];
+          $ivalues[] = $v;
+        }
+      }
+
+      db_query("insert into {elysia_cron} (" . implode(', ', $iquery1) . ") values (" . implode(', ', $iquery2) . ")", $ivalues);
+    }
+  }
+
+  global $elysia_cron_db_cache;
+
+  unset($elysia_cron_db_cache[$name]);
+}
+
+function elysia_cron_get($name, $channel = false, $key, $default, $refresh = false) {
+  global $elysia_cron_db_cache;
+  static $elysia_cron_defaults;
+  
+  if (!isset($elysia_cron_defaults)) {
+    $elysia_cron_defaults = function_exists('elysia_cron_get_ctools_defaults') ? elysia_cron_get_ctools_defaults() : array();
+  }
+
+  if ($channel) {
+    $name = ':' . $name;
+  }
+  
+  if ($refresh || !isset($elysia_cron_db_cache[$name])) {
+    if (EC_DRUPAL_VERSION >= 7) {
+      $elysia_cron_db_cache[$name] = db_query("select " . implode(", ", $GLOBALS['_ec_columns']) . " from {elysia_cron} where name = :name", array(':name' => $name))->fetchAssoc();
+    }
+    else {
+      $elysia_cron_db_cache[$name] = db_fetch_array(db_query("select " . implode(", ", $GLOBALS['_ec_columns']) . " from {elysia_cron} where name = '%s'", $name));
+    }
+    
+    if (!$elysia_cron_db_cache[$name] && isset($elysia_cron_defaults[$name])) {
+      $elysia_cron_db_cache[$name] = (array)$elysia_cron_defaults[$name];
+    }
+    elseif ($elysia_cron_db_cache[$name] && isset($elysia_cron_defaults[$name])) {
+      foreach($elysia_cron_defaults[$name] as $k => $v) {
+        if (!isset($elysia_cron_db_cache[$name][$k]) || is_null($elysia_cron_db_cache[$name][$k])) {
+          $elysia_cron_db_cache[$name][$k] = $v;
+        }
+      }
+    }
+  }
+
+  return !$elysia_cron_db_cache[$name] || !isset($elysia_cron_db_cache[$name][$key]) || is_null($elysia_cron_db_cache[$name][$key]) ? $default : $elysia_cron_db_cache[$name][$key];
+}
+
+function elysia_cron_is_channel_disabled($channel, $default = false, $refresh = false) {
+  // May be overriden by a static conf
+  if (isset($GLOBALS['conf'][$n = 'ecc_' . _ec_get_name($channel) . '_d'])) {
+    return $GLOBALS['conf'][$n];
+  }
+  return elysia_cron_get($channel, true, 'disable', $default, $refresh);
+}
+
+function elysia_cron_set_channel_disabled($channel, $v) {
+  return elysia_cron_set($channel, true, array('disable' => $v ? 1 : 0));
+}
+
+function elysia_cron_reset_channel_disabled($channel) {
+  return elysia_cron_set($channel, true, array('disable' => 0));
+}
+
+function elysia_cron_get_channel_rule($channel, $default = '', $refresh = false) {
+  // May be overriden by a static conf
+  if (isset($GLOBALS['conf'][$n = 'ecc_' . _ec_get_name($channel) . '_rul'])) {
+    return $GLOBALS['conf'][$n];
+  }
+  return elysia_cron_get($channel, true, 'rule', $default, $refresh);
+}
+
+function elysia_cron_set_channel_rule($channel, $v) {
+  return elysia_cron_set($channel, true, array('rule' => $v));
+}
+
+function elysia_cron_reset_channel_rule($channel) {
+  return elysia_cron_set($channel, true, array('rule' => NULL));
+}
+
+function elysia_cron_is_channel_running($channel, $default = 0, $refresh = false) {
+  return elysia_cron_get($channel, true, 'running', $default, $refresh);
+}
+
+function elysia_cron_set_channel_running($channel, $v) {
+  return elysia_cron_set($channel, true, array('running' => $v));
+}
+
+function elysia_cron_get_channel_last_run($channel, $default = false, $refresh = false) {
+  return elysia_cron_get($channel, true, 'last_run', $default, $refresh);
+}
+
+function elysia_cron_set_channel_last_run($channel, $v) {
+  return elysia_cron_set($channel, true, array('last_run' => $v));
+}
+
+function elysia_cron_get_channel_last_aborted($channel, $default = 0, $refresh = false) {
+  return elysia_cron_get($channel, true, 'last_aborted', $default, $refresh);
+}
+
+function elysia_cron_set_channel_last_aborted($channel, $v) {
+  return elysia_cron_set($channel, true, array('last_aborted' => $v ? 1 : 0));
+}
+
+function elysia_cron_get_channel_abort_count($channel, $default = 0, $refresh = false) {
+  return elysia_cron_get($channel, true, 'abort_count', $default, $refresh);
+}
+
+function elysia_cron_set_channel_abort_count($channel, $v) {
+  return elysia_cron_set($channel, true, array('abort_count' => $v));
+}
+
+function elysia_cron_get_channel_last_abort_function($channel, $default = '', $refresh = false) {
+  return elysia_cron_get($channel, true, 'last_abort_function', $default, $refresh);
+}
+
+function elysia_cron_set_channel_last_abort_function($channel, $job) {
+  return elysia_cron_set($channel, true, array('last_abort_function' => $v));
+}
+
+function elysia_cron_get_channel_stats($channel, $refresh = false) {
+  return array(
+    'last_run' => elysia_cron_get($channel, true, 'last_run', 0, $refresh),
+    'last_execution_time' => elysia_cron_get($channel, true, 'last_execution_time', 0, $refresh),
+    'execution_count' => elysia_cron_get($channel, true, 'execution_count', 0, $refresh),
+    'avg_execution_time' => elysia_cron_get($channel, true, 'avg_execution_time', 0, $refresh),
+    'max_execution_time' => elysia_cron_get($channel, true, 'max_execution_time', 0, $refresh),
+    'last_shutdown_time' => elysia_cron_get($channel, true, 'last_shutdown_time', 0, $refresh),
+    'last_aborted' => elysia_cron_get($channel, true, 'last_aborted', 0, $refresh),
+    'abort_count' => elysia_cron_get($channel, true, 'abort_count', 0, $refresh),
+    'last_abort_function' => elysia_cron_get($channel, true, 'last_abort_function', 0, ''),
+  );
+}
+
+function elysia_cron_set_channel_stats($channel, $last_run = -1, $last_execution_time = -1, $execution_count = -1,
+    $avg_execution_time = -1, $max_execution_time = -1, $last_shutdown_time = -1, $last_aborted = -1,
+    $abort_count = -1, $last_abort_function = -1, $data = array()) {
+  if ($last_run != -1) {
+    $data['last_run'] = $last_run;
+  }
+  if ($last_execution_time != -1) {
+    $data['last_execution_time'] = $last_execution_time;
+  }
+  if ($execution_count != -1) {
+    $data['execution_count'] = $execution_count;
+  }
+  if ($avg_execution_time != -1) {
+    $data['avg_execution_time'] = $avg_execution_time;
+  }
+  if ($max_execution_time != -1) {
+    $data['max_execution_time'] = $max_execution_time;
+  }
+  if ($last_shutdown_time != -1) {
+    $data['last_shutdown_time'] = $last_shutdown_time;
+  }
+  if ($last_aborted != -1) {
+    $data['last_aborted'] = $last_aborted;
+  }
+  if ($abort_count != -1) {
+    $data['abort_count'] = $abort_count;
+  }
+  if ($last_abort_function != -1) {
+    $data['last_abort_function'] = $last_abort_function;
+  }
+  elysia_cron_set($channel, true, $data);
+}
+
+function elysia_cron_get_job_rule($job, $default = '', $refresh = false) {
+  // May be overriden by a static conf
+  if (isset($GLOBALS['conf'][$n = 'ec_' . _ec_get_name($job) . '_rul'])) {
+    return $GLOBALS['conf'][$n];
+  }
+  return elysia_cron_get($job, false, 'rule', $default, $refresh);
+}
+
+function elysia_cron_set_job_rule($job, $v) {
+  return elysia_cron_set($job, false, array('rule' => $v));
+}
+
+function elysia_cron_reset_job_rule($job) {
+  return elysia_cron_set($job, false, array('rule' => null));
+}
+
+function elysia_cron_get_job_weight($job, $default = '', $refresh = false) {
+  // May be overriden by a static conf
+  if (isset($GLOBALS['conf'][$n = 'ec_' . _ec_get_name($job) . '_w'])) {
+    return $GLOBALS['conf'][$n];
+  }
+  return elysia_cron_get($job, false, 'weight', $default, $refresh);
+}
+
+function elysia_cron_set_job_weight($job, $v) {
+  return elysia_cron_set($job, false, array('weight' => $v));
+}
+
+function elysia_cron_reset_job_weight($job) {
+  return elysia_cron_set($job, false, array('weight' => null));
+}
+
+function elysia_cron_is_job_disabled($job, $default = false, $refresh = false) {
+  // May be overriden by a static conf
+  if (isset($GLOBALS['conf'][$n = 'ec_' . _ec_get_name($job) . '_d'])) {
+    return $GLOBALS['conf'][$n];
+  }
+  return elysia_cron_get($job, false, 'disable', $default, $refresh);
+}
+
+function elysia_cron_set_job_disabled($job, $v) {
+  return elysia_cron_set($job, false, array('disable' => $v ? 1 : 0));
+}
+
+function elysia_cron_reset_job_disabled($job) {
+  return elysia_cron_set($job, false, array('disable' => null));
+}
+
+function elysia_cron_get_job_channel($job, $default = '', $refresh = false) {
+  // May be overriden by a static conf
+  if (isset($GLOBALS['conf'][$n = 'ec_' . _ec_get_name($job) . '_c'])) {
+    $c = $GLOBALS['conf'][$n];
+  }
+  else {
+    $c = elysia_cron_get($job, false, 'context', $default, $refresh);
+  }
+  return !$c ? $default : $c;
+}
+
+function elysia_cron_set_job_channel($job, $v) {
+  return elysia_cron_set($job, false, array('context' => $v));
+}
+
+function elysia_cron_reset_job_channel($job) {
+  return elysia_cron_set($job, false, array('context' => null));
+}
+
+function elysia_cron_is_job_running($job, $default = 0, $refresh = false) {
+  return elysia_cron_get($job, false, 'running', $default, $refresh);
+}
+
+function elysia_cron_set_job_running($job, $v) {
+  return elysia_cron_set($job, false, array('running' => $v));
+}
+
+function elysia_cron_get_job_last_run($job, $default = 0, $refresh = false) {
+  return elysia_cron_get($job, false, 'last_run', $default, $refresh);
+}
+
+function elysia_cron_set_job_last_run($job, $v) {
+  return elysia_cron_set($job, false, array('last_run' => $v));
+}
+
+function elysia_cron_get_job_stats($job, $refresh = false) {
+  return array(
+    'last_run' => elysia_cron_get($job, false, 'last_run', 0, $refresh),
+    'last_execution_time' => elysia_cron_get($job, false, 'last_execution_time', 0, $refresh),
+    'execution_count' => elysia_cron_get($job, false, 'execution_count', 0, $refresh),
+    'avg_execution_time' => elysia_cron_get($job, false, 'avg_execution_time', 0, $refresh),
+    'max_execution_time' => elysia_cron_get($job, false, 'max_execution_time', 0, $refresh),
+  );
+}
+
+function elysia_cron_set_job_stats($job, $last_run = -1, $last_execution_time = -1, $execution_count = -1,
+  $avg_execution_time = -1, $max_execution_time = -1, $data = array()) {
+  if ($last_run != -1) {
+    $data['last_run'] = $last_run;
+  }
+  if ($last_execution_time != -1) {
+    $data['last_execution_time'] = $last_execution_time;
+  }
+  if ($execution_count != -1) {
+    $data['execution_count'] = $execution_count;
+  }
+  if ($avg_execution_time != -1) {
+    $data['avg_execution_time'] = $avg_execution_time;
+  }
+  if ($max_execution_time != -1) {
+    $data['max_execution_time'] = $max_execution_time;
+  }
+  elysia_cron_set($job, false, $data);
+}
+
+function elysia_cron_last_channel() {
+  return _ec_variable_get('elysia_cron_last_context', '');
+}
+
+function elysia_cron_set_last_channel($channel) {
+  _ec_variable_set('elysia_cron_last_context', $channel);
+}
+
+function elysia_cron_reset_stats() {
+  global $elysia_cron_settings, $elysia_cron_settings_by_channel;
+  elysia_cron_initialize();
+
+  foreach ($elysia_cron_settings as $job => $conf) {
+    elysia_cron_set_job_stats($job, -1, 0, 0, 0, 0);
+  }
+
+  foreach ($elysia_cron_settings_by_channel as $channel => $conf) {
+    elysia_cron_set_channel_stats($channel, -1, 0, 0, 0, 0, 0, 0, 0, 0);
+  }
+}
+
+/*******************************************************************************
+ * INTERNAL
+ * 
+ * WARN: Below this point the word "context" should be avoided (use channel)
+ *   Disabled should always be referenced as "disabled" (in db is "disable" for 
+ *   compatibility with Ctools )
+ *******************************************************************************/
+
+function elysia_cron_decode_script($text, $apply = true) {
+  global $elysia_cron_settings;
+
+  $lines = explode("\n", $text);
+  $lastcomment = '';
+  $errors = array();
+  $conf = array();
+  foreach ($lines as $line) {
+    $line = trim($line);
+    if (!empty($line)) {
+      if ($line{0} == '#') {
+        $lastcomment = trim(substr($line, 1));
+
+      }
+      else if (preg_match('/^(-[ ]*|)([0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+)[ ]+((?:ctx|ch):([a-zA-Z0-9_-]+)[ ]+|)([^(:]+)(\(.*\);|)$/', $line, $r)) {
+        $c = array(
+          'disabled' => !empty($r[1]),
+          'rule' => $r[2],
+          'description' => $lastcomment,
+          'channel' => $r[4] ? $r[4] : 'default',
+        );
+        $lastcomment = '';
+        if (empty($r[6])) {
+          if (!isset($elysia_cron_settings[$r[5]])) {
+            // Referring a module function that not exists
+            $errors[] = $line;
+            continue;
+          }
+          $name = $r[5];
+        }
+        else {
+          // custom expression, generate a unique name
+          $postfix = '';
+          while (isset($elysia_cron_settings[$r[5] . $postfix])) {
+            $postfix = ($postfix ? $postfix : 0) + 1;
+          }
+          $name = $r[5] . $postfix;
+          $c['expression'] = $r[5] . $r[6];
+        }
+        if ($apply) {
+          $elysia_cron_settings[$name] = isset($elysia_cron_settings[$name]) ? array_merge($elysia_cron_settings[$name], $c) : $c;
+        }
+
+      }
+      else {
+        $errors[] = $line;
+      }
+    }
+    else {
+      $lastcomment = '';
+    }
+  }
+
+  return count($errors) ? $errors : false;
+}
+
+function elysia_cron_module_jobs() {
+  static $jobs;
+  if (!isset($jobs)) {
+    $jobs = array();
+    foreach (module_implements('cron') as $module) {
+      if ($module != 'elysia_cron') {
+        $jobs[$module . '_cron'] = array(
+          'module' => $module,
+          'callback' => $module . '_cron',
+          'arguments' => array(),
+        );
+      }
+    }
+  
+    foreach (module_implements('cronapi') as $module) {
+      $fn = $module . '_cronapi';
+      $l = $fn('list');
+      if (is_array($l)) {
+        foreach ($l as $job => $data) {
+          if (is_array($data)) {
+            $jobs[$job] = $data;
+          } else {
+            // Compatibility with v1.x settings
+            $jobs[$job] = array(
+              'description' => $data,
+              'rule' => ($d = $fn('rule', $job)) ? $d : false,
+              'weight' => ($d = $fn('weight', $job)) ? $d : 0,
+            );
+          }
+          $jobs[$job] = $jobs[$job] + array(
+            'module' => $module,
+            'callback' => function_exists($job) ? $job : $fn,
+            'arguments' => function_exists($job) ? array() : array('execute', $job),
+          );
+        }
+      }
+    }
+    if (function_exists('drupal_alter'))
+      drupal_alter('cron', $jobs);
+  }
+
+  return $jobs;
+}
+
+function elysia_cron_initialize($skipscript = false) {
+  elysia_cron_check_version_update();
+
+  global $elysia_cron_settings, $elysia_cron_settings_by_channel;
+  $elysia_cron_settings = array();
+  $elysia_cron_settings_by_channel = array();
+
+  foreach (elysia_cron_module_jobs() as $job => $jobpars) {
+    $channel = elysia_cron_get_job_channel($job, 'default');
+
+    $defrule = !empty($jobpars['rule']) ? $jobpars['rule'] : elysia_cron_get_channel_rule($channel);
+    if (!$defrule) {
+      $defrule = variable_get('elysia_cron_default_rule', '0 * * * *');
+    }
+    
+    $defweight = !empty($jobpars['weight']) ? $jobpars['weight'] : 0;
+    if (!is_numeric($defweight)) {
+      $defweight = 0;
+    }
+
+    $elysia_cron_settings[$job] = array(
+      'key' => $job,
+      'channel' => $channel,
+      'rule' => elysia_cron_get_job_rule($job, $defrule),
+      'default_rule' => $defrule,
+      'weight' => elysia_cron_get_job_weight($job, $defweight),
+      'default_weight' => $defweight,
+      'disabled' => elysia_cron_is_job_disabled($job),
+      'running' => elysia_cron_is_job_running($job),
+    ) + $jobpars;
+  }
+  if (!$skipscript) {
+    $script = variable_get('elysia_cron_script', false);
+    if ($script) {
+      elysia_cron_decode_script($script);
+    }
+  }
+
+  uasort($elysia_cron_settings, '_elysia_cron_sort');
+  foreach ($elysia_cron_settings as $job => &$conf) {
+    $stats = elysia_cron_get_job_stats($job);
+    foreach ($stats as $sk => $sv) {
+      $conf[$sk] = $sv;
+    }
+    $elysia_cron_settings_by_channel[$conf['channel']][$job] = &$elysia_cron_settings[$job];
+  }
+
+  foreach ($elysia_cron_settings_by_channel as $channel => $data) {
+    uasort($elysia_cron_settings_by_channel[$channel], '_elysia_cron_sort');
+    $elysia_cron_settings_by_channel[$channel]['#data'] = elysia_cron_get_channel_stats($channel);
+    $elysia_cron_settings_by_channel[$channel]['#data']['disabled'] = elysia_cron_is_channel_disabled($channel);
+  }
+}
+
+function _elysia_cron_sort($a, $b) {
+  if ((isset($a['weight']) ? $a['weight'] : 0) == (isset($b['weight']) ? $b['weight'] : 0)) {
+    return strcmp((isset($a['key']) ? $a['key'] : ''), (isset($b['key']) ? $b['key'] : ''));
+  }
+  return (isset($a['weight']) ? $a['weight'] : 0) - (isset($b['weight']) ? $b['weight'] : 0);
+}
+
+function elysia_cron_run($manual_run = false) {
+  global $conf;
+
+  // Allow execution to continue even if the request gets canceled.
+  @ignore_user_abort(true);
+
+  // Try to allocate enough time to run all the hook_cron implementations.
+  if (!ini_get('safe_mode')) {
+    set_time_limit(variable_get('elysia_cron_time_limit', 240));
+  }
+
+  // Prevent session information from being saved while cron is running.
+  if (EC_DRUPAL_VERSION >= 7) {
+    drupal_save_session(FALSE);
+  }
+
+  // If DISABLED block the execution
+  if (variable_get('elysia_cron_disabled', false)) {
+    return;
+  }
+
+  // Check for CRON_KEY or ALLOWED_HOSTS
+  if (!$manual_run) {
+    $cron_key = variable_get('cron_key', '');
+    if ($cron_key && !user_access('administer elysia_cron') && (empty($_GET['cron_key']) || $_GET['cron_key'] != $cron_key)) {
+      return;
+    }
+    $allowed_hosts = variable_get('elysia_cron_allowed_hosts', false);
+    if ($allowed_hosts && !user_access('administer elysia_cron') && !in_array(ip_address(), explode(",", $allowed_hosts))) {
+      return;
+    }
+  }
+
+  _ec_variable_set('elysia_cron_last_run', time());
+  _ec_variable_set('cron_last', time());
+
+  $execute = true;
+  if (EC_DRUPAL_VERSION >= 7) {
+    if (!lock_acquire('cron', 240.0)) {
+      _dco_watchdog('cron', 'Attempting to re-run cron while it is already running.', array(), WATCHDOG_WARNING);
+      $execute = false;
+    }
+  }
+  else {
+    // Global Semaphore to avoid concurrent execution of cron preparation code
+    $execute = _ec_semaphore_get('elysia_cron_semaphore', 120);
+  }
+
+  // Force the current user to anonymous to ensure consistent permissions on
+  // cron runs (only if run by interface)
+  if ($manual_run) {
+    $original_user = $GLOBALS['user'];
+    $GLOBALS['user'] = drupal_anonymous_user();
+  }
+
+  if (EC_DRUPAL_VERSION >= 7) {
+    // D7 Queue processing
+    // Grab the defined cron queues (even if execute = false)
+    $queues = module_invoke_all('cron_queue_info');
+    drupal_alter('cron_queue_info', $queues);
+  }
+
+  if ($execute) {
+    if (EC_DRUPAL_VERSION >= 7) {
+      // D7 Queue processing
+      // Make sure every queue exists. There is no harm in trying to recreate an
+      // existing queue.
+      foreach ($queues as $queue_name => $info) {
+        DrupalQueue::get($queue_name)->createQueue();
+      }
+    }
+
+    elysia_cron_initialize();
+    global $elysia_cron_settings, $elysia_cron_settings_by_channel, $elysia_cron_current_channel, $cron_completed, $cron_completed_time;
+
+    $channels = array_keys($elysia_cron_settings_by_channel);
+    $channel = elysia_cron_last_channel();
+
+    $i = array_search($channel, $channels);
+    if ($i === FALSE) {
+      $i = -1;
+    }
+    $k = 0;
+    $jobs = false;
+    $stuck_time = variable_get('elysia_cron_stuck_time', 3600);
+    for ($j = ($i + 1) % count($channels); $k < count($channels); $j = ($j + 1) % count($channels)) {
+      $sem = elysia_cron_is_channel_running($channels[$j]);
+      if ($sem && (time() - $sem > $stuck_time)) {
+        elysia_cron_set_channel_running($channels[$j], 0);
+        $last_job = elysia_cron_execute_aborted($channels[$j]);
+        unset($sem);
+        _dco_watchdog('cron', 'Cron channel (%channel) has been running for more than an %stuck_time secs and is most likely stuck. Last job executed: %job', array('%channel' => $channels[$j], '%stuck_time' => $stuck_time, '%job' => $last_job), WATCHDOG_ERROR);
+      }
+      if (empty($sem) && !$elysia_cron_settings_by_channel[$channels[$j]]['#data']['disabled']) {
+        $jobs = elysia_cron_active_jobs($channels[$j]);
+        if (count($jobs)) {
+          break;
+        }
+      }
+      $k++;
+    }
+
+    if ($jobs && count($jobs)) {
+      // There are jobs ready to be executed
+
+      $elysia_cron_current_channel = $channels[$j];
+      elysia_cron_set_last_channel($elysia_cron_current_channel);
+
+      if (variable_get('elysia_cron_debug_messages', 0)) {
+        _dco_watchdog('cron', 'Cron channel %channel run started.', array('%channel' => $elysia_cron_current_channel), WATCHDOG_NOTICE);
+      }
+
+      // Register shutdown callback
+      register_shutdown_function('elysia_cron_cleanup');
+
+      elysia_cron_set($elysia_cron_current_channel, true, array(
+        'running' => time(),
+        'last_run' => time(),
+      ));
+
+      // Now I can unlock cron semaphore
+      if (EC_DRUPAL_VERSION < 7) {
+        _ec_variable_del('elysia_cron_semaphore');
+
+        // Some modules (feedapi, ipaper...) uses the internal "cron_semaphore" variable to detect
+        // start time of cron process. I'll set this only in memory for that purpose.
+        // (In normal drupal cron execution that is done by a variable_set just before this call,
+        // but i need to set this manually if drupal cron is bypassed)
+        $conf['cron_semaphore'] = time();
+      }
+
+      foreach ($jobs as $job) {
+        $job_running = false;
+        if (elysia_cron_is_job_running($job)) {
+          if (time() - elysia_cron_get_job_last_run($job, 0) > variable_get('elysia_cron_stuck_time', 3600)) {
+            _dco_watchdog('cron', 'Job %job is already running, but is probably stuck, so i consider it as terminated', array('%job' => $job), WATCHDOG_NOTICE);
+          }
+          else {
+            _dco_watchdog('cron', 'Job %job is already running', array('%job' => $job), WATCHDOG_NOTICE);
+            $job_running = true;
+          }
+        }
+
+        if (!$job_running) {
+          elysia_cron_execute($job);
+        }
+      }
+
+      $cron_completed = true;
+      $cron_completed_time = time();
+
+      // Cron is really completed after shutdown functions
+      register_shutdown_function('elysia_cron_completed');
+
+    }
+    else {
+      // No jobs should be executed, i must unlock cron semaphore
+      if (EC_DRUPAL_VERSION < 7) {
+        _ec_variable_del('elysia_cron_semaphore');
+      }
+
+      if (variable_get('elysia_cron_debug_messages', 0)) {
+        _dco_watchdog('cron', 'No channels ready to be executed, skipping cron.', array(), WATCHDOG_NOTICE);
+      }
+    }
+
+    // Release cron lock.
+    if (EC_DRUPAL_VERSION >= 7) {
+      lock_release('cron');
+
+    }
+    else {
+      _ec_variable_del('cron_semaphore');
+      $conf['cron_semaphore'] = false;
+    }
+  }
+
+  if (EC_DRUPAL_VERSION >= 7) {
+    // D7 Queue processing
+    foreach ($queues as $queue_name => $info) {
+      $function = $info['worker callback'];
+      $end = time() + (isset($info['time']) ? $info['time'] : 15);
+      $queue = DrupalQueue::get($queue_name);
+      while (time() < $end && ($item = $queue->claimItem())) {
+        $function($item->data);
+        $queue->deleteItem($item);
+      }
+    }
+  }
+
+  if ($manual_run) {
+    // Restore the user.
+    $GLOBALS['user'] = $original_user;
+    /*if (EC_DRUPAL_VERSION >= 7) {
+      drupal_save_session(TRUE);
+    }*/
+  }
+
+  // Return TRUE so other functions can check if it did run successfully
+  return $execute;
+}
+
+function elysia_cron_execute($job) {
+  global $elysia_cron_settings;
+
+  if (variable_get('elysia_cron_debug_messages', 0)) {
+    _dco_watchdog('cron', 'Cron job %job started.', array('%job' => $job), WATCHDOG_NOTICE);
+  }
+
+  $time = time();
+  elysia_cron_set($job, false, array(
+    'running' => $time,
+    'last_run' => $time,
+  ));
+
+  try {
+    if (!empty($elysia_cron_settings[$job]['file'])) {
+      include_once((!empty($elysia_cron_settings[$job]['file path']) ? $elysia_cron_settings[$job]['file path'] : drupal_get_path('module', $elysia_cron_settings[$job]['module'])) . DIRECTORY_SEPARATOR . $elysia_cron_settings[$job]['file']);
+    }
+    if (!empty($elysia_cron_settings[$job]['expression'])) {
+      eval($elysia_cron_settings[$job]['expression']);
+    }
+    elseif (!empty($elysia_cron_settings[$job]['callback']) && function_exists($elysia_cron_settings[$job]['callback'])) {
+      call_user_func_array($elysia_cron_settings[$job]['callback'], $elysia_cron_settings[$job]['arguments']);
+    }
+    else {
+      _dco_watchdog('cron', 'Execution of ' . $job . ' failed, can\'t find function!', array(), WATCHDOG_ERROR);
+    }
+  }
+  catch (Exception $e) {
+    _dco_watchdog('cron', 'Exception: ' . $e, array(), WATCHDOG_ERROR);
+    $exception = true;
+    //TODO Manage it
+  }
+
+  $stats = elysia_cron_get_job_stats($job);
+  $time = time() - $time;
+  elysia_cron_set_job_stats($job,
+    -1,
+    $time,
+    ($c = $stats['execution_count'] + 1),
+    round((($stats['avg_execution_time'] * ($c - 1)) + $time) / $c, 2),
+    $time > $stats['max_execution_time'] ? $time : -1,
+    array('running' => 0)
+  );
+
+  if (variable_get('elysia_cron_debug_messages', 0)) {
+    _dco_watchdog('cron', 'Cron job %job ended.', array('%job' => $job), WATCHDOG_NOTICE);
+  }
+}
+
+function elysia_cron_execute_aborted($channel) {
+  global $elysia_cron_settings_by_channel;
+
+  $last_job = '';
+  foreach ($elysia_cron_settings_by_channel[$channel] as $job => $conf) {
+    if ($job != '#data') {
+      if (elysia_cron_is_job_running($job)) {
+        $last_job .= ' ' . $job;
+        elysia_cron_set_job_running($job, 0);
+      }
+    }
+  }
+
+  elysia_cron_set($channel, true, array(
+    'running' => 0, //time(),
+    'last_aborted' => 1,
+    'abort_count' => elysia_cron_get_channel_abort_count($channel) + 1,
+    'last_abort_function' => $last_job,
+  ));
+
+  return trim($last_job);
+}
+
+/**
+ * Shutdown function for cron cleanup.
+ *
+ * Used for unexpected termination of code.
+ */
+function elysia_cron_cleanup() {
+  global $elysia_cron_settings, $elysia_cron_current_channel, $cron_completed, $cron_completed_time;
+
+  if ($cron_completed) {
+    return;
+  }
+
+  // See if the semaphore is still locked.
+  if (elysia_cron_is_channel_running($elysia_cron_current_channel)) {
+    $last_job = elysia_cron_execute_aborted($elysia_cron_current_channel);
+    _dco_watchdog('cron', 'Unexpected termination of cron channel %channel, aborted. Last job executed: %job', array('%channel' => $elysia_cron_current_channel, '%job' => $last_job), WATCHDOG_WARNING);
+  }
+}
+
+/**
+ * Successful termination (after all shutdown hooks invoked by cron functions).
+ */
+function elysia_cron_completed() {
+  global $elysia_cron_settings, $elysia_cron_current_channel, $cron_completed, $cron_completed_time;
+  //dprint("completed ".$elysia_cron_current_channel);
+
+  // Record cron time
+  _ec_variable_set('cron_last', time());
+
+  if (variable_get('elysia_cron_debug_messages', 0)) {
+    _dco_watchdog('cron', 'Cron channel %channel run completed.', array('%channel' => $elysia_cron_current_channel), WATCHDOG_NOTICE);
+  }
+
+  $stats = elysia_cron_get_channel_stats($elysia_cron_current_channel);
+  $time = time() - $stats['last_run'];
+  elysia_cron_set_channel_stats($elysia_cron_current_channel,
+    -1, // last_run
+    $time, // last_execution_time
+    ($c = $stats['execution_count'] + 1), // execution_count
+    round((($stats['avg_execution_time'] * ($c - 1)) + $time) / $c, 2), // avg_execution_time
+    $time > $stats['max_execution_time'] ? $time : -1, // max_execution_time
+    time() - $cron_completed_time, // last_shutdown_time
+    0, -1, -1, // last_aborted, abort_count, last_abort_function
+    array('running' => 0)
+  );
+}
+
+/**
+ * Get all jobs that needs to be executed in a channel
+ */
+function elysia_cron_active_jobs($channel) {
+  global $elysia_cron_settings_by_channel;
+
+  $jobs = array();
+  foreach ($elysia_cron_settings_by_channel[$channel] as $job => $conf) {
+    if ($job != '#data') {
+      if (elysia_cron_should_run($conf)) {
+        $jobs[] = $job;
+      }
+    }
+  }
+  return $jobs;
+}
+
+/**
+ * Check if cron is currently running.
+ * (Not used by elysia_cron, can be used by external modules)
+ */
+function elysia_cron_is_running() {
+  global $elysia_cron_settings_by_channel;
+  elysia_cron_initialize();
+
+  $running = array();
+  foreach ($elysia_cron_settings_by_channel as $channel => $data) {
+    if (elysia_cron_is_channel_running($channel)) {
+      $running[] = $channel;
+    }
+  }
+
+  return $running;
+}
+
+/**
+ * Obtain job description (translated)
+ */
+function elysia_cron_description($job) {
+  global $elysia_cron_settings;
+
+  if (!empty($elysia_cron_settings[$job]['description'])) {
+    $desc = $elysia_cron_settings[$job]['description'];
+  }
+  else {
+    $desc = _dco_theme('elysia_cron_description', array('job' => $job));
+  }
+  return t($desc);
+}
+
+/*******************************************************************************
+ * THEMING
+ ******************************************************************************/
+
+/**
+ * Implementation of hook_theme(). [Only D6+D7]
+ */
+function elysia_cron_theme() {
+  return _dcr_hook_theme(array(
+    'elysia_cron_description' => array(
+      'variables' => array('job' => NULL),
+    ),
+    'elysia_cron_settings_form' => array(
+      'render element' => 'form',
+    ),
+  ));
+}
+
+/**
+ * You can theme this function to provide your (untranslated) descriptions for cron functions, if they do not provide one.
+ */
+function theme_elysia_cron_description($variables) {
+  extract(_dcf_theme_signature(array('job' => $variables)));
+  switch ($variables['job']) {
+    case 'search_cron':
+      return 'Update search database index';
+    case 'activitystream_cron':
+      return 'Fetch RSS feeds and web calls for activitystream';
+    case 'mailhandler_cron':
+      return 'Fetch POP3/IMAP accounts managed by MailHandler';
+    case 'watchdog_cron':
+      return 'Remove expired log messages and flood control events';
+    case 'filter_cron':
+      return 'Expire outdated filter cache entries';
+    case 'node_cron':
+      return 'History table cleanup';
+    case 'system_cron':
+      return 'Remove older rows from flood and batch table. Remove old temporary files.';
+    case 'aggregation_cron':
+      return 'Fetch RSS feeds for aggregation module';
+    case 'amazon_cron':
+      return 'Refresh Amazon products';
+    case 'image_cron':
+      return 'Deletes old temp images';
+    case 'persistent_login_cron':
+      return 'Expire persistent login';
+    case 'trackback_cron':
+      return 'Process trackback ping queue';
+    case 'update_status_cron':
+      return 'Checks for drupal module updates (Note: own frequency check ignore cron rules)';
+    case 'user_karma_cron':
+      return 'User karma expiration / rebuild (Note: own frequency check ignore cron rules)';
+    case 'votingapi_cron':
+      return 'Update votes (if not configured for immediate calculation)';
+    case 'statistics_cron':
+      return 'Reset day counts / Clean expired access logs';
+    case 'googleanalytics_cron':
+      return 'Delete cached version of ga.js/urchin.js.';
+    case 'xmlsitemap_cron':
+      return 'XML sitemap ping.';
+    case 'xmlsitemap_node_cron':
+      return 'Update XML sitemap with new nodes';
+    case 'xmlsitemap_term_cron':
+      return 'Update XML sitemap with new terms';
+    case 'lm_paypal_cron':
+      return 'Remove old IPN records';
+    case 'user_import_cron':
+      return 'Continue partial imports';
+    case 'dblog_cron':
+      return 'Remove expired log messages and flood control events';
+    case 'field_cron':
+      return 'Purges some deleted Field API data, if any exists';
+    case 'trigger_cron':
+      return 'Triggers cron actions';
+    case 'update_cron':
+      return 'Checks for available updates of Drupal core, contributed modules and themes';
+    default:
+      return '-';
+  }
+}
+
+/*******************************************************************************
+ * PING SUPPORT
+ ******************************************************************************/
+
+/**
+ * Page callback for ping page.  Throws 404 if cron hasn't been called within configured time period.
+ */
+function elysia_cron_ping_page() {
+  $last_run = _ec_variable_get('elysia_cron_last_run', 0);
+  $diff = time() - $last_run;
+  $max_interval = variable_get('elysia_cron_alert_interval', 60) * 60;
+
+  if ($diff > $max_interval) {
+    return drupal_not_found();
+  }
+  else {
+    $aoutput = array();
+    $aoutput[] = array(
+      '#type' => 'markup',
+      '#markup' => t('Cron has been called within maximum lapse time.'),
+    );
+    return _dcr_render_array($aoutput);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_scheduler.inc b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_scheduler.inc
new file mode 100644
index 0000000..808ffda
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_scheduler.inc
@@ -0,0 +1,238 @@
+<?php
+
+function elysia_cron_should_run($conf, $now = -1) {  $prev_rule_run = 0; // A che ora SAREBBE dovuto essere lanciato l'ultima volta
+  if ($conf['disabled']) {
+    return false;
+  }
+  if ($now < 0) {
+    $now = time();
+  }
+  if ((!$conf['last_run']) || ($now - $conf['last_run'] > 365 * 86400)) {
+    return true;
+  }
+
+  $next_run = _elysia_cron_next_run($conf);
+  return $now >= $next_run;
+}
+
+function _elysia_cron_next_run($conf) {
+  $ranges = array(
+    array(0, 59),
+    array(0, 23),
+    array(1, 31), // TODO
+    array(1, 12),
+    array(0, 3000),
+    array(0, 6),
+  );
+
+  if (!preg_match('/^([0-9*,\/-]+)[ ]+([0-9*,\/-]+)[ ]+([0-9*,\/-]+)[ ]+([0-9*,\/-]+)[ ]+([0-9*,\/-]+)$/', $conf['rule'], $rules)) {
+    _dco_watchdog('cron', 'Invalid rule found: %rule', array('%rule' => $conf['rule']));
+    return false;
+  }
+
+  $rule = array($rules[1], $rules[2], array($rules[3], $rules[5]), $rules[4]);
+  $ruledec = array();
+  $date = __cronDecodeDate($conf['last_run'], 1);
+  $expected_date = __cronDecodeDate(!empty($conf['last_run_expected']) ? $conf['last_run_expected'] : 0);
+  
+  for ($i = 0; $i < 4; $i++) {
+    if ($i != 2) {
+      // Standard scheme for mins, hours, month
+      $ruledec[$i] = __cronDecodeRule($rule[$i], $ranges[$i][0], $ranges[$i][1]);
+    } else {
+      // For mday+week we follow another scheme
+      $ruledec[$i] = __cronDecodeRuleMday($rule[2], $date[3], $date[4]);
+    }
+    $r = $ruledec[$i];
+    $new = $date[$i];
+    if ($r['d']) {
+      if ($expected_date[$i] > $date[$i]) {
+        $expected_date[$i] -= $ranges[$i][1] + 1;
+      }
+      $new = $expected_date[$i] + ceil(($date[$i] - $expected_date[$i]) / $r['d']) * $r['d'];
+    }
+    elseif ($r['n']) {
+      $new = __cronNextOrEqual($date[$i], $r['n'], $ranges[$i][0], $ranges[$i][1]);
+    }
+    if ($new != $date[$i]) {
+      $date[$i] = $new;
+      if ($date[$i] > $ranges[$i][1]) {
+        $date[$i + 1]++;
+        $date[$i] = $ranges[$i][0] + $date[$i] - $ranges[$i][1] - 1;
+      }
+      for ($j = 0; $j < $i; $j++) {
+        if ($j == 2) {
+          // For mday+week decoded rule could be changed (by month+year)
+          $ruledec[$j] = __cronDecodeRuleMday($rule[2], $date[3], $date[4]);
+        }
+        $date[$j] = $ruledec[$j]['d'] ? ($ranges[$j][0] == 0 ? 0 : $ruledec[$j]['d']) : ($ruledec[$j]['n'] ? reset($ruledec[$j]['n']) : $ranges[$j][0]);
+        $expected_date[$j] = 0;
+      }
+    }
+  }
+
+  return __cronEncodeDate($date);
+}
+
+function __cronDecodeDate($timestamp, $min_diff = 0) {
+  $time = floor($timestamp / 60);
+  $time += $min_diff;
+  
+  $date = $time ? getdate($time * 60) : 0;
+  $date = array(
+    $time ? $date['minutes'] : 0,
+    $time ? $date['hours'] : 0,
+    $time ? $date['mday'] : 0,
+    $time ? $date['mon'] : 0,
+    $time ? $date['year'] : 0,
+  );
+  return $date;
+}
+function __cronEncodeDate($date) {
+  return mktime($date[1], $date[0], 0, $date[3], $date[2], $date[4]);
+}
+
+function __cronNextOrEqual($el, $arr, $range_start, $range_end) {
+  if (empty($arr)) {
+    return $el;
+  }
+  foreach ($arr as $x) {
+    if ($x >= $el) {
+      return $x;
+    }
+  }
+  return $range_end + reset($arr) + 1 - $range_start;
+}
+
+function __cronDecodeRule($rule, $min, $max) {
+  if ($rule == '*') {
+    return array('n' => array(), 'd' => 0);
+  }
+
+  $result = array('n' => array(), 'd' => 0);
+  foreach (explode(',', $rule) as $token) {
+    if (preg_match('/^([0-9]+)-([0-9]+)$/', $token, $r)) {
+      $result['n'] = array_merge($result['n'], range($r[1], $r[2]));
+    }
+    elseif (preg_match('/^\*\/([0-9]+)$/', $token, $r)) {
+      $result['d'] = $r[1];
+    }
+    elseif (is_numeric($token)) {
+      $result['n'][] = $token;
+    }
+  }
+  sort($result['n']);
+  return $result;
+}
+
+function __cronDecodeRuleMday($rule, $month, $year) {
+  $range_from = 1;
+  $range_to = $month != 2 ? (in_array($month, array(4,6,9,11)) ? 30 : 31) : ($year % 4 == 0 ? 29 : 28);
+  $r1 = __cronDecodeRule($rule[0], $range_from, $range_to);
+  $r2 = __cronDecodeRule($rule[1], $range_from, $range_to);
+  if ($r2['d']) {
+    for ($i = 0; $i < 7; $i++) {
+      if ($i % $r2['d'] == 0) {
+        $r2['n'][] = $i;
+      }
+    }
+  }
+  if ($r2['n']) {
+    $r2['n'] = array_unique($r2['n']);
+    $r1['n'] = array_merge($r1['n'], __cronMonDaysFromWeekDays($year, $month, $r2['n']), __cronMonDaysFromWeekDays($year, $month + 1, $r2['n'], $range_to));
+  }
+  return $r1;
+}
+
+// Used by elysia_cron_should_run
+function __cronMonDaysFromWeekDays($year, $mon, $weekdays, $offset = 0) {
+  if ($mon > 12) {
+    $year ++;
+    $mon = $mon - 12;
+  }
+  
+  $result = array();
+  for ($i = 1; checkdate($mon, $i, $year); $i++) {
+    $w = date('w', mktime(12, 00, 00, $mon, $i, $year));
+    if (in_array($w, $weekdays)) {
+      $result[] = $i + $offset;
+    }
+  }
+  return $result;
+}
+
+/*******************************************************************************
+ * TESTS
+ ******************************************************************************/
+
+function test_elysia_cron_should_run() {
+  dprint("Start test");
+  $start = microtime(true);
+  
+  //mktime: hr min sec mon day yr
+  dprint(" 1." . (false == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(12, 01, 0, 1, 2, 2008))));
+  dprint(" 2." . (false == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(15, 00, 0, 1, 2, 2008))));
+  dprint(" 3." . (false == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(11, 59, 0, 1, 3, 2008))));
+  dprint(" 4." . (true  == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(12, 00, 0, 1, 3, 2008))));
+  dprint(" 5." . (false == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 59, 0, 1, 2, 2008)), mktime(0, 00, 0, 1, 3, 2008))));
+  dprint(" 6." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 59, 0, 1, 2, 2008)), mktime(23, 59, 0, 1, 3, 2008))));
+  dprint(" 7." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 59, 0, 1, 2, 2008)), mktime(0, 00, 0, 1, 4, 2008))));
+  dprint(" 8." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 58, 0, 1, 2, 2008)), mktime(23, 59, 0, 1, 2, 2008))));
+  dprint(" 9." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 58, 0, 1, 2, 2008)), mktime(0, 0, 0, 1, 3, 2008))));
+  dprint("10." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("11." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(0, 0, 0, 1, 6, 2008))));
+  dprint("12." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("13." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(00, 00, 0, 1, 7, 2008))));
+  dprint("14." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 29, 0, 1, 6, 2008))));
+  dprint("15." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("16." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("17." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 58, 0, 1, 6, 2008))));
+  dprint("18." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 28, 0, 1, 6, 2008))));
+  dprint("19." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 29, 0, 1, 5, 2008))));
+  dprint("20." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 30, 0, 1, 5, 2008))));
+  dprint("21." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("22." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 29, 0, 1, 6, 2008))));
+
+  dprint("23." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(23, 59, 0, 2, 28, 2008))));
+  dprint("24." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(23, 59, 0, 2, 29, 2008))));
+  dprint("25." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(0, 0, 0, 3, 1, 2008))));
+
+  dprint("26." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 3', 'last_run' => mktime(23, 59, 0, 12, 31, 2008)), mktime(0, 0, 0, 1, 1, 2009))));
+  dprint("27." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 3', 'last_run' => mktime(23, 59, 0, 12, 31, 2008)), mktime(0, 0, 0, 1, 7, 2009))));
+  dprint("28." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * 3', 'last_run' => mktime(23, 59, 0, 12, 31, 2008)), mktime(23, 59, 0, 1, 7, 2009))));
+
+  dprint("29." . (true  == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(23, 59, 0, 2, 29, 2008))));
+  dprint("30." . (true  == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(0, 0, 0, 3, 1, 2008))));
+  dprint("31." . (false == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 29, 2008)), mktime(23, 59, 0, 3, 7, 2008))));
+  dprint("32." . (false == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 29, 2008)), mktime(23, 58, 0, 2, 6, 2009))));
+  dprint("33." . (true  == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 29, 2008)), mktime(23, 59, 0, 2, 6, 2009))));
+  dprint("34." . (true  == elysia_cron_should_run(array('rule' => '59 23 *' . '/10 * *', 'last_run' => mktime(23, 58, 0, 1, 10, 2008)), mktime(23, 59, 0, 1, 10, 2008))));
+  dprint("35." . (false == elysia_cron_should_run(array('rule' => '59 23 *' . '/10 * *', 'last_run' => mktime(23, 59, 0, 1, 10, 2008)), mktime(23, 59, 0, 1, 11, 2008))));
+  dprint("36." . (true  == elysia_cron_should_run(array('rule' => '59 23 *' . '/10 * *', 'last_run' => mktime(23, 59, 0, 1, 10, 2008)), mktime(23, 59, 0, 1, 20, 2008))));
+  dprint("37." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 4, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("38." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 4, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("39." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("40." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 58, 0, 1, 10, 2008))));
+  dprint("41." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 10, 2008))));
+  dprint("42." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 16, 2008))));
+
+  dprint("43." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 4, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("44." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("45." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 6, 2008)), mktime(23, 59, 0, 1, 7, 2008))));
+  dprint("46." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 6, 2008)), mktime(23, 59, 0, 1, 13, 2008))));
+  dprint("47." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 2, 4, 2008)), mktime(23, 59, 0, 2, 5, 2008))));
+  dprint("48." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 2, 5, 2008)), mktime(23, 59, 0, 2, 10, 2008))));
+  dprint("49." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 2, 10, 2008)), mktime(23, 59, 0, 2, 17, 2008))));
+
+  dprint("49." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 58, 0, 2, 10, 2008)), mktime(8, 59, 0, 2, 10, 2008))));
+  dprint("50." . (false == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 59, 0, 2, 10, 2008)), mktime(9, 00, 0, 2, 10, 2008))));
+  dprint("51." . (false == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 59, 0, 2, 10, 2008)), mktime(17, 59, 0, 2, 10, 2008))));
+  dprint("52." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 59, 0, 2, 10, 2008)), mktime(18, 00, 0, 2, 10, 2008))));
+  dprint("53." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(18, 00, 0, 2, 10, 2008)), mktime(18, 01, 0, 2, 10, 2008))));
+  dprint("54." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(18, 00, 0, 2, 10, 2008)), mktime(19, 0, 0, 2, 10, 2008))));
+  dprint("55." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(18, 00, 0, 2, 10, 2008)), mktime(9, 0, 0, 3, 10, 2008))));
+
+  dprint("End test (" . (microtime(true) - $start) . ")");
+}
+// Remove comment to run tests
+//test_elysia_cron_should_run();die();
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_scheduler_old.inc b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_scheduler_old.inc
new file mode 100644
index 0000000..21f6f6c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_scheduler_old.inc
@@ -0,0 +1,230 @@
+<?php
+
+function elysia_cron_should_run($conf, $now = -1) {
+  if ($conf['disabled']) {
+    return false;
+  }
+
+  if ($now < 0) {
+    $now = time();
+  }
+
+  if ((!$conf['last_run']) || ($now - $conf['last_run'] > 365 * 86400)) {
+    return true;
+  }
+
+  if (!preg_match('/^([0-9*,\/-]+)[ ]+([0-9*,\/-]+)[ ]+([0-9*,\/-]+)[ ]+([0-9*,\/-]+)[ ]+([0-9*,\/-]+)$/', $conf['rule'], $rules)) {
+    _dco_watchdog('cron', 'Invalid rule found: %rule', array('%rule' => $conf['rule']));
+    return false;
+  }
+
+  $weekdayspec = ($rules[5] != '*');
+  $mondayspec = ($rules[3] != '*');
+
+  $rules[5] = _cronDecodeRule($rules[5], 0, 6);
+  $rules[4] = _cronDecodeRule($rules[4], 1, 12);
+  $rules[3] = _cronDecodeRule($rules[3], 1, 31);
+  $rules[2] = _cronDecodeRule($rules[2], 0, 23);
+  $rules[1] = _cronDecodeRule($rules[1], 0, 59);
+
+  $lastT = _cronT($conf['last_run'] + 30);
+  $nowT = _cronT($now);
+  $nowTDelta = $nowT - $lastT + ($lastT > $nowT ? 12 * 31 * 24 * 60 : 0);
+  $year = date('Y', $conf['last_run']);
+
+  if ($mondayspec || (!$mondayspec && !$weekdayspec)) {
+    $first = -1;
+    foreach ($rules[4] as $mon) {
+      foreach ($rules[3] as $d) {
+        if (checkdate($mon, $d, $year)) {
+          foreach ($rules[2] as $h) {
+            foreach ($rules[1] as $m) {
+              $t = _cronT($mon, $d, $h, $m);
+              //dprint("* ".$t." L:".$lastT);
+              if ($first < 0) {
+                $first = $t;
+              }
+              if ($t > $lastT) {
+                $nextT = $t;
+                break 4;
+              }
+            }
+          }
+        }
+      }
+    }
+    //dprint("R: ".$nextT);
+    if (!$nextT) {
+      $nextT = $first;
+    }
+
+    $nextTDelta = $nextT - $lastT + ($lastT > $nextT ? 12 * 31 * 24 * 60 : 0);
+
+    //dprint($nowT.' '.$nowTDelta.' '.$nextT.' '.$nextTDelta);
+    if ($nowTDelta >= $nextTDelta) {
+      return true;
+    }
+  }
+  if ($weekdayspec) {
+    foreach ($rules[4] as $mon) {
+      foreach (_cronMonDaysFromWeekDays($year, $mon, $rules[5]) as $d) {
+        foreach ($rules[2] as $h) {
+          foreach ($rules[1] as $m) {
+            $t = _cronT($mon, $d, $h, $m);
+            //dprint("* ".$t." L:".$lastT);
+            if ($t > $lastT) {
+              $nextT = $t;
+              break 4;
+            }
+          }
+        }
+      }
+    }
+    //dprint("R: ".$nextT);
+    if (!$nextT) {
+      //Must get the first of following year (if day_of_week is specified it's not the same of previous one)
+      foreach ($rules[4] as $mon) {
+        foreach (_cronMonDaysFromWeekDays($year + 1, $mon, $rules[5]) as $d) {
+          foreach ($rules[2] as $h) {
+            foreach ($rules[1] as $m) {
+              $nextT = _cronT($mon, $d, $h, $m);
+              break 4;
+            }
+          }
+        }
+      }
+    }
+
+    $nextTDelta = $nextT - $lastT + ($lastT > $nextT ? 12 * 31 * 24 * 60 : 0);
+
+    //dprint($nowT.' '.$nowTDelta.' '.$nextT.' '.$nextTDelta);
+    if ($nowTDelta >= $nextTDelta) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+// Used by elysia_cron_should_run
+function _cronT($time, $d = -1, $h = -1, $m = -1) {
+  if ($d < 0) {
+    return date('n', $time) * 31 * 24 * 60 + date('j', $time) * 24 * 60 + date('H', $time) * 60 + date('i', $time);
+  }
+  else {
+    return $time * 31 * 24 * 60 + $d * 24 * 60 + $h * 60 + $m;
+  }
+}
+
+// Used by elysia_cron_should_run
+function _cronMonDaysFromWeekDays($year, $mon, $weekdays) {
+  $result = array();
+  for ($i = 1; checkdate($mon, $i, $year); $i++) {
+    $w = date('w', mktime(12, 00, 00, $mon, $i, $year));
+    if (in_array($w, $weekdays)) {
+      $result[] = $i;
+    }
+  }
+  return $result;
+}
+
+// Used by elysia_cron_should_run
+function _cronDecodeRule($rule, $min, $max) {
+  if ($rule == '*') {
+    return range($min, $max);
+  }
+
+  $result = array();
+  foreach (explode(',', $rule) as $token) {
+    if (preg_match('/^([0-9]+)-([0-9]+)$/', $token, $r)) {
+      $result = array_merge($result, range($r[1], $r[2]));
+    }
+    elseif (preg_match('/^\*\/([0-9]+)$/', $token, $r)) {
+      for ($i = $min; $i <= $max; $i++) {
+        if ($i % $r[1] == 0) {
+          $result[] = $i;
+        }
+      }
+    }
+    elseif (is_numeric($token)) {
+      $result[] = $token;
+    }
+  }
+  return $result;
+}
+
+/*******************************************************************************
+ * TESTS
+ ******************************************************************************/
+
+function test_elysia_cron_should_run() {
+  dprint("Start test");
+  $start = microtime(true);
+  
+  //mktime: hr min sec mon day yr
+  dprint(" 1." . (false == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(12, 01, 0, 1, 2, 2008))));
+  dprint(" 2." . (false == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(15, 00, 0, 1, 2, 2008))));
+  dprint(" 3." . (false == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(11, 59, 0, 1, 3, 2008))));
+  dprint(" 4." . (true  == elysia_cron_should_run(array('rule' => '0 12 * * *', 'last_run' => mktime(12, 0, 0, 1, 2, 2008)), mktime(12, 00, 0, 1, 3, 2008))));
+  dprint(" 5." . (false == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 59, 0, 1, 2, 2008)), mktime(0, 00, 0, 1, 3, 2008))));
+  dprint(" 6." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 59, 0, 1, 2, 2008)), mktime(23, 59, 0, 1, 3, 2008))));
+  dprint(" 7." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 59, 0, 1, 2, 2008)), mktime(0, 00, 0, 1, 4, 2008))));
+  dprint(" 8." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 58, 0, 1, 2, 2008)), mktime(23, 59, 0, 1, 2, 2008))));
+  dprint(" 9." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * *', 'last_run' => mktime(23, 58, 0, 1, 2, 2008)), mktime(0, 0, 0, 1, 3, 2008))));
+  dprint("10." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("11." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(0, 0, 0, 1, 6, 2008))));
+  dprint("12." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("13." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(00, 00, 0, 1, 7, 2008))));
+  dprint("14." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 29, 0, 1, 6, 2008))));
+  dprint("15." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("16." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("17." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 58, 0, 1, 6, 2008))));
+  dprint("18." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 58, 0, 1, 5, 2008)), mktime(23, 28, 0, 1, 6, 2008))));
+  dprint("19." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 29, 0, 1, 5, 2008))));
+  dprint("20." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 30, 0, 1, 5, 2008))));
+  dprint("21." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("22." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 0', 'last_run' => mktime(23, 28, 0, 1, 5, 2008)), mktime(23, 29, 0, 1, 6, 2008))));
+
+  dprint("23." . (false == elysia_cron_should_run(array('rule' => '29,59 23 * * 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(23, 59, 0, 2, 28, 2008))));
+  dprint("24." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(23, 59, 0, 2, 29, 2008))));
+  dprint("25." . (true  == elysia_cron_should_run(array('rule' => '29,59 23 * * 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(0, 0, 0, 3, 1, 2008))));
+
+  dprint("26." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 3', 'last_run' => mktime(23, 59, 0, 12, 31, 2008)), mktime(0, 0, 0, 1, 1, 2009))));
+  dprint("27." . (false == elysia_cron_should_run(array('rule' => '59 23 * * 3', 'last_run' => mktime(23, 59, 0, 12, 31, 2008)), mktime(0, 0, 0, 1, 7, 2009))));
+  dprint("28." . (true  == elysia_cron_should_run(array('rule' => '59 23 * * 3', 'last_run' => mktime(23, 59, 0, 12, 31, 2008)), mktime(23, 59, 0, 1, 7, 2009))));
+
+  dprint("29." . (true  == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(23, 59, 0, 2, 29, 2008))));
+  dprint("30." . (true  == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 22, 2008)), mktime(0, 0, 0, 3, 1, 2008))));
+  dprint("31." . (false == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 29, 2008)), mktime(23, 59, 0, 3, 7, 2008))));
+  dprint("32." . (false == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 29, 2008)), mktime(23, 58, 0, 2, 6, 2009))));
+  dprint("33." . (true  == elysia_cron_should_run(array('rule' => '59 23 * 2 5', 'last_run' => mktime(23, 59, 0, 2, 29, 2008)), mktime(23, 59, 0, 2, 6, 2009))));
+  dprint("34." . (true  == elysia_cron_should_run(array('rule' => '59 23 *' . '/10 * *', 'last_run' => mktime(23, 58, 0, 1, 10, 2008)), mktime(23, 59, 0, 1, 10, 2008))));
+  dprint("35." . (false == elysia_cron_should_run(array('rule' => '59 23 *' . '/10 * *', 'last_run' => mktime(23, 59, 0, 1, 10, 2008)), mktime(23, 59, 0, 1, 11, 2008))));
+  dprint("36." . (true  == elysia_cron_should_run(array('rule' => '59 23 *' . '/10 * *', 'last_run' => mktime(23, 59, 0, 1, 10, 2008)), mktime(23, 59, 0, 1, 20, 2008))));
+  dprint("37." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 4, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("38." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 4, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("39." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("40." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 58, 0, 1, 10, 2008))));
+  dprint("41." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 10, 2008))));
+  dprint("42." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5,10-15 * *', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 16, 2008))));
+
+  dprint("43." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 4, 2008)), mktime(23, 59, 0, 1, 5, 2008))));
+  dprint("44." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 5, 2008)), mktime(23, 59, 0, 1, 6, 2008))));
+  dprint("45." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 6, 2008)), mktime(23, 59, 0, 1, 7, 2008))));
+  dprint("46." . (true  == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 1, 6, 2008)), mktime(23, 59, 0, 1, 13, 2008))));
+  dprint("47." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 2, 4, 2008)), mktime(23, 59, 0, 2, 5, 2008))));
+  dprint("48." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 2, 5, 2008)), mktime(23, 59, 0, 2, 10, 2008))));
+  dprint("49." . (false == elysia_cron_should_run(array('rule' => '59 23 1-5 1 0', 'last_run' => mktime(23, 59, 0, 2, 10, 2008)), mktime(23, 59, 0, 2, 17, 2008))));
+
+  dprint("49." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 58, 0, 2, 10, 2008)), mktime(8, 59, 0, 2, 10, 2008))));
+  dprint("50." . (false == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 59, 0, 2, 10, 2008)), mktime(9, 00, 0, 2, 10, 2008))));
+  dprint("51." . (false == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 59, 0, 2, 10, 2008)), mktime(17, 59, 0, 2, 10, 2008))));
+  dprint("52." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(8, 59, 0, 2, 10, 2008)), mktime(18, 00, 0, 2, 10, 2008))));
+  dprint("53." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(18, 00, 0, 2, 10, 2008)), mktime(18, 01, 0, 2, 10, 2008))));
+  dprint("54." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(18, 00, 0, 2, 10, 2008)), mktime(19, 0, 0, 2, 10, 2008))));
+  dprint("55." . (true  == elysia_cron_should_run(array('rule' => '* 0,1,2,3,4,5,6,7,8,18,19,20,21,22,23 * * *', 'last_run' => mktime(18, 00, 0, 2, 10, 2008)), mktime(9, 0, 0, 3, 10, 2008))));
+
+  dprint("End test (" . (microtime(true) - $start) . ")");
+}
+// Remove comment to run tests
+//test_elysia_cron_should_run();die();
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_update.php b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_update.php
new file mode 100755
index 0000000..9a5f61a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_cron_update.php
@@ -0,0 +1,327 @@
+<?php
+
+/*******************************************************************************
+ * ELYSIA CRON VERSION UPDATE
+ ******************************************************************************/
+
+function elysia_cron_check_version_update() {
+  $ver = variable_get('elysia_cron_version', 0);
+  if ($ver < 20111012) {
+    $ver = _ec_variable_get('elysia_cron_version', 0);
+  }
+
+  if (!$ver || $ver < 20090218) {
+
+    $unchanged = array(
+      'elysia_cron_last_context',
+      'elysia_cron_last_run',
+      'elysia_cron_disabled',
+      'elysia_cron_semaphore',
+      'elysia_cron_key',
+      'elysia_cron_allowed_hosts',
+      'elysia_cron_default_rule',
+      'elysia_cron_script',
+      'elysia_cron_runtime_replacement',
+      'elysia_cron_version',
+    );
+
+    $rs = db_query('select * from {variable} where name like "elysia_cron_%%"');
+    while ($v = db_fetch_object($rs)) {
+      if (!in_array($v->name, $unchanged)) {
+        $vn = false;
+        if (preg_match('/^elysia_cron_ctx_(.*)_(running|disabled|last_run|last_aborted|abort_count|execution_count|last_execution_time|avg_execution_time|max_execution_time|last_shutdown_time|last_abort_function)/', $v->name, $r)) {
+          switch ($r[2]) {
+            case 'running':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_r';
+              break;
+            case 'disabled':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_d';
+              break;
+            case 'last_run':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_lr';
+              break;
+            case 'last_aborted':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_la';
+              break;
+            case 'abort_count':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_ac';
+              break;
+            case 'execution_count':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_ec';
+              break;
+            case 'last_execution_time':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_let';
+              break;
+            case 'avg_execution_time':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_aet';
+              break;
+            case 'max_execution_time':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_met';
+              break;
+            case 'last_shutdown_time':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_lst';
+              break;
+            case 'last_abort_function':
+              $vn = 'ecc_' . _ec_get_name($r[1]) . '_laf';
+              break;
+          }
+        }
+        elseif (preg_match('/^elysia_cron_(.*)_(rule|disabled|context|running|last_run|last_execution_time|execution_count|avg_execution_time|max_execution_time)/', $v->name, $r)) {
+          switch ($r[2]) {
+            case 'rule':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_rul';
+              break;
+            case 'disabled':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_d';
+              break;
+            case 'context':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_c';
+              break;
+            case 'running':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_r';
+              break;
+            case 'last_run':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_lr';
+              break;
+            case 'last_execution_time':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_let';
+              break;
+            case 'execution_count':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_ec';
+              break;
+            case 'avg_execution_time':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_aet';
+              break;
+            case 'max_execution_time':
+              $vn = 'ec_' . _ec_get_name($r[1]) . '_met';
+              break;
+          }
+        }
+        if ($vn) {
+          variable_set($vn, unserialize($v->value));
+        }
+        else {
+          _dco_watchdog('cron', 'Error in update, cant convert %name (value: %value)', array('%name' => $v->name, '%value' => $v->value), WATCHDOG_ERROR);
+        }
+
+        variable_del($v->name);
+      }
+    }
+
+    variable_set('elysia_cron_version', 20090218);
+  }
+  if ($ver < 20090920) {
+    variable_set('elysia_cron_version', 20090920);
+
+  }
+  if ($ver < 20100507) {
+    if (EC_DRUPAL_VERSION >= 6) {
+      // D6
+      drupal_install_schema('elysia_cron');
+
+      // In ver 20111020 disabled has been renamed to disable, revert it now
+      if (EC_DRUPAL_VERSION >= 7) {
+        // D7
+        // Must use "$v" for PHP5.3 running D6 version (detect the error even if it doesn't pass here)
+        db_change_field($v = 'elysia_cron', 'disable', 'disabled', array('type' => 'int', 'size' => 'tiny', 'not null' => FALSE));
+
+      }
+      elseif (EC_DRUPAL_VERSION >= 6) {
+        // D6
+        $ret = array();
+        db_change_field($ret, 'elysia_cron', 'disable', 'disabled', array('type' => 'int', 'size' => 'tiny', 'not null' => FALSE));
+      }
+    }
+    else {
+      // D5
+      switch ($GLOBALS['db_type']) {
+        case 'mysqli':
+        case 'mysql':
+          db_query("create table if not exists {elysia_cron} (
+            name varchar(120) not null,
+            disabled tinyint(1) not null default '0',
+            rule varchar(32),
+            weight int(11) not null default '0',
+            context varchar(32),
+            running int(11) not null default '0',
+            last_run int(11) not null default '0',
+            last_aborted tinyint(1) not null default '0',
+            abort_count int(11) not null default '0',
+            last_abort_function varchar(32),
+            last_execution_time int(11) not null default '0',
+            execution_count int(11) not null default '0',
+            avg_execution_time float(5,2) not null default '0',
+            max_execution_time int(11) not null default '0',
+            last_shutdown_time int(11) not null default '0',
+            primary key (name)
+          )");
+          break;
+        case 'pgsql':
+          db_query("create table {elysia_cron} (
+            name varchar(120) not null,
+            disabled smallint not null default '0',
+            rule varchar(32),
+            weight integer not null default '0',
+            context varchar(32),
+            running int not null default '0',
+            last_run integer not null default '0',
+            last_aborted smallint not null default '0',
+            abort_count integer not null default '0',
+            last_abort_function varchar(32),
+            last_execution_time integer not null default '0',
+            execution_count integer not null default '0',
+            avg_execution_time float not null default '0',
+            max_execution_time integer not null default '0',
+            last_shutdown_time integer not null default '0',
+            primary key (name)
+          )");
+      }
+    }
+
+    $rs = db_query('select * from {variable} where name like "ec_%%" or name like "ecc_%%"');
+    $data = array();
+    $todelete = array();
+    while ($v = db_fetch_object($rs)) {
+      $name = false;
+      if (preg_match('/^ecc_(.+)_(r|d|lr|la|ac|ec|let|aet|met|lst|laf)/', $v->name, $r)) {
+        $name = ':' . $r[1];
+      }
+      elseif (preg_match('/^ec_(.+)_(rul|d|c|w|r|lr|let|ec|aet|met)/', $v->name, $r)) {
+        $name = $r[1];
+      }
+      if ($name) {
+        if (!isset($data[$name])) {
+          $data[$name] = array('name' => $name);
+        }
+        switch ($r[2]) {
+          case 'r':
+            $f = 'running';
+            break;
+          case 'd':
+            $f = 'disabled';
+            break;
+          case 'rul':
+            $f = 'rule';
+            break;
+          case 'w':
+            $f = 'weight';
+            break;
+          case 'c':
+            $f = 'context';
+            break;
+          case 'lr':
+            $f = 'last_run';
+            break;
+          case 'la':
+            $f = 'last_aborted';
+            break;
+          case 'ac':
+            $f = 'abort_count';
+            break;
+          case 'laf':
+            $f = 'last_abort_function';
+            break;
+          case 'let':
+            $f = 'last_execution_time';
+            break;
+          case 'ec':
+            $f = 'execution_count';
+            break;
+          case 'aet':
+            $f = 'avg_execution_time';
+            break;
+          case 'met':
+            $f = 'max_execution_time';
+            break;
+          case 'lst':
+            $f = 'last_shutdown_time';
+            break;
+        }
+        $data[$name][$f] = unserialize($v->value);
+        $todelete[] = $v->name;
+      }
+    }
+
+    $ifields = array('disabled', 'weight', 'running', 'last_run', 'last_aborted', 'abort_count', 'last_execution_time', 'execution_count', 'avg_execution_time', 'max_execution_time', 'last_shutdown_time');
+    foreach ($data as $v) {
+      foreach ($ifields as $f) {
+        if (empty($v[$f])) {
+          $v[$f] = 0;
+        }
+      }
+      db_query("insert into {elysia_cron} (name, disabled, rule, weight, context, running, last_run, last_aborted, abort_count, last_abort_function, last_execution_time, execution_count, avg_execution_time, max_execution_time, last_shutdown_time)
+        values ('%s', %d, '%s', %d, '%s', %d, %d, %d, %d, '%s', %d, %d, %f, %d, %d)",
+        $v['name'], $v['disabled'], $v['rule'], $v['weight'], $v['context'], $v['running'], $v['last_run'], $v['last_aborted'], $v['abort_count'], $v['last_abort_function'], $v['last_execution_time'], $v['execution_count'], $v['avg_execution_time'], $v['max_execution_time'], $v['last_shutdown_time']
+      );
+    }
+
+    db_query("update {elysia_cron} set context = null where context = ''");
+    db_query("update {elysia_cron} set rule = null where rule = ''");
+
+    foreach ($todelete as $v) {
+      variable_del($v);
+      db_query("DELETE FROM {variable} WHERE name = '%s'", $v);
+    }
+
+    variable_set('elysia_cron_version', 20100507);
+
+    unset($GLOBALS['_ec_variables']);
+  }
+  // D7 VERSION FROM NOW ON...
+
+  if ($ver < 20110323) {
+    if (EC_DRUPAL_VERSION >= 7) {
+      // D7
+      // Must use "$v" for PHP5.3 running D6 version (detect the error even if it doesn't pass here)
+      db_change_field($v = 'elysia_cron', 'weight', 'weight', array('type' => 'int', 'not null' => FALSE));
+
+    }
+    elseif (EC_DRUPAL_VERSION >= 6) {
+      // D6
+      $ret = array();
+      db_change_field($ret, 'elysia_cron', 'weight', 'weight', array('type' => 'int', 'not null' => FALSE));
+    }
+    else {
+      // D5
+      db_query("alter table {elysia_cron} change weight weight int(11)");
+    }
+
+    variable_set('elysia_cron_version', 20110323);
+  }
+  
+  if ($ver < 20111007) {
+    $default_rules = variable_get('elysia_cron_default_rules', $GLOBALS['elysia_cron_default_rules']);
+    if (!empty($default_rules['*/6 * * * *']) && $default_rules['*/6 * * * *'] == 'Every 6 hours') {
+      unset($default_rules['*/6 * * * *']);
+      $default_rules['0 */6 * * *'] = 'Every 6 hours';
+      variable_set('elysia_cron_default_rules', $default_rules);
+    }
+    variable_set('elysia_cron_version', 20111007);
+  }
+
+  if ($ver < 20111012) {
+    // I only need to rebuild variable cache, so i just set the new version
+    variable_set('elysia_cron_version', 20111012);
+  }
+
+  if ($ver < 20111020) {
+    if (EC_DRUPAL_VERSION >= 7) {
+      // D7
+      // Must use "$v" for PHP5.3 running D6 version (detect the error even if it doesn't pass here)
+      db_change_field($v = 'elysia_cron', 'disabled', 'disable', array('type' => 'int', 'size' => 'tiny', 'not null' => FALSE));
+
+    }
+    elseif (EC_DRUPAL_VERSION >= 6) {
+      // D6
+      $ret = array();
+      db_change_field($ret, 'elysia_cron', 'disabled', 'disable', array('type' => 'int', 'size' => 'tiny', 'not null' => FALSE));
+    }
+    else {
+      // D5
+      db_query("alter table {elysia_cron} change disabled disable tinyint(1)");
+    }
+    db_query("update {elysia_cron} set disable = NULL where disable = 0");
+
+    variable_set('elysia_cron_version', 20111020);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_drupalconv.php b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_drupalconv.php
new file mode 100755
index 0000000..fa81607
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/elysia_cron/elysia_drupalconv.php
@@ -0,0 +1,125 @@
+<?php
+
+define('EC_DRUPAL_VERSION', 6);
+
+/***************************************************************
+ * D6 VERSION 
+ ***************************************************************/
+
+function _dcf_hook_boot($module) {
+  return true;
+}
+
+function _dcf_hook_init($module) {
+  return true;
+}
+
+function _dcf_hook_menu($items, $maycache) {
+  $new_items = array();
+  foreach ($items as $k => $v)
+    $new_items[_dcf_internal_path($k)] = $v;
+  return $new_items;
+}
+
+function _dcf_convert_render_array(&$a) {
+  if (!empty($a['#markup'])) {
+    $a['#value'] = $a['#markup'];
+    unset($a['#markup']);
+  }
+  if (!empty($a['#type']) && $a['#type'] == 'actions')
+    unset($a['#type']);
+  foreach ($a as $k => &$v) 
+    if (is_array($v))
+      _dcf_convert_render_array($v);
+}
+
+function _dcr_render_array($output) {
+  foreach ($output as $k => &$v)
+    if ((is_numeric($k) || $k{0} != '#') && is_string($v))
+      $v = array( '#type' => 'markup', '#value' => $v, '#weight' => -1 );
+  _dcf_convert_render_array($output);
+  return drupal_render($output);
+}
+
+function _dcr_form(&$form) {
+  foreach ($form as $k => &$v)
+    if ((is_numeric($k) || $k{0} != '#') && is_string($v))
+      $v = array( '#type' => 'markup', '#value' => $v, '#weight' => -1 );
+  _dcf_convert_render_array($form);
+  return $form;
+}
+
+function _dcf_internal_path($path) {
+  return str_replace(
+    array( 'admin/config/system/cron', 'admin/modules' ),
+    array( 'admin/build/cron', 'admin/build/modules' ),
+    $path
+  );
+}
+  
+function _dcf_t($string) {
+  return t($string);
+}
+
+function _dco_watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL) { // WARN d7 changed WATCHDOG_ costants
+  return watchdog($type, $message, $variables, $severity, $link);
+}
+
+function _dco_l($text, $path, array $options = array()) {
+  return l($text, $path, $options);
+}
+
+function _dcf_form_validate(&$form, &$form_state) {
+  return array('form' => &$form, 'form_state' => &$form_state);
+}
+
+function _dco_theme($name, $args) {
+  return call_user_func_array('theme', array_merge(array($name), array_values($args)));
+}
+
+function _dcf_theme_signature($args) {
+  return array( 'variables' => $args );
+}
+
+function _dcr_hook_theme($specs) {
+  foreach ($specs as $k => $v) {
+    if (!empty($v['variables'])) {
+      $v['arguments'] = $v['variables'];
+      unset($v['variables']);
+    }
+    if (!empty($v['render element'])) {
+      $v['arguments'] = array ( $v['render element'] => NULL );
+      unset($v['render element']);
+    }
+  }
+  return $specs;
+}
+
+function _dcf_theme_form(&$args) {
+  return array( 'variables' => array( 'form' => $args ) );
+}
+
+/***************************************************************
+ * D6 MISSING FUNCTIONS 
+ ***************************************************************/
+
+function drupal_render_children($form) {
+  return drupal_render(_dcr_form($form));
+}
+
+/***************************************************************
+ * D6 EXTRA FUNCTIONS 
+ ***************************************************************/
+
+function drupal_module_get_min_weight($except_module = false) {
+  return !$except_module ? db_result(db_query("select min(weight) from {system}")) :
+    db_result(db_query("select min(weight) from {system} where name != '%s'", $except_module));
+}
+
+function drupal_module_get_weight($name) {
+  return db_result(db_query("select weight from {system} where name = '%s'", $name));  
+}
+
+function drupal_module_set_weight($name, $weight) {
+  db_query("update {system} set weight = %d where name = '%s'", $weight, $name);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/API.txt b/drupal/sites/default/boinc/modules/contrib/features/API.txt
new file mode 100644
index 0000000..dbf5e9c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/API.txt
@@ -0,0 +1,189 @@
+
+Features 1.x API for Drupal 6.x
+-------------------------------
+This file contains documentation for two audiences: site builders interested in
+creating and managing features and module developers interested in integrating
+with the features module.
+
+
+Terminology
+-----------
+- A **feature module** is a Drupal module that contains the `feature` key in its
+`.info` file. This array describes the components that should be managed by
+Features within the module.
+
+- A **component** is a configuration object that can be exported. Examples: a
+view, content type or CCK field instance.
+
+- A **machine name** is a string identifier for a specific type of component and
+should be unique within a single Drupal site. It should not be a numerically
+generated serial id.
+
+- An **exportable** component is one that can be used solely from a default hook
+in code and without an instance in the database. For example, a view that lives
+in code does not need an entry in the database in order to be used.
+
+- A **faux-exportable** component is one that must exist in the database in
+order to be used. Any exports of this component are used to create or
+synchronize entries in the database that share the same machine name.
+
+
+### Component states
+
+Features provides some infrastructure to determine the state of components on
+the site. To determine the state of a component Features keeps track of three
+things using an md5 hash of
+
+- current code for the component. This is the configuration as actually
+represented in code by a given feature.
+
+- the most recent prior code state that differs from the current code state. For
+example, if an `svn update` changes the configuration of a view, this stores the
+code state *prior* to the update.
+
+- The "normal" component state. This is the configuration represented by the
+component as stored in the database or the default component (with any changes
+introduced by `drupal_alter()`) if no database override exists.
+
+Using these three values, Features determines a component to be in one of the
+following five states:
+
+- **Default** (`FEATURES_DEFAULT`) The object has no database entry or the
+database entry matches the state of the component in code. This should be the
+default state of components after installing a feature. Updating the component
+can be done by altering the code definition directly.
+
+- **Overridden** (`FEATURES_OVERRIDDEN`) The code remains constant but the
+database object does not match the state of the component in code. Changes must
+be reverted before the component can be updated from code.
+
+- **Needs review** (`FEATURES_NEEDS_REVIEW`) The previous code state, database
+state, and current code state all differ. This occurs most commonly when a user
+changes one of her components and then pulls updates to her codebase. Since
+there is no way to tell whether the code state or the database state is more
+recent/valid, user input is necessary to resolve this state.
+
+- **Rebuildable** (`FEATURES_REBUILDABLE`) This state only applies to
+**faux-exportables** and indicates that the database component must and can be
+safely updated from the code definition. The database entry does not match the
+current code state but does match the previous code state. Features assumes that
+in this scenario the user has made no substantive changes and the component can
+be updated automatically.
+
+- **Rebuilding** (`FEATURES_REBUILDING`) This state is rarely seen and only
+applies to **faux-exportables.** This state is shown when a
+`FEATURES_REBUILDABLE` component is *currently* being synced to the database.
+Usually this operation is very fast and short lived. However, if the operation
+is interrupted (e.g. the server goes down) this state will be seen until the
+rebuild locking semaphore is cleared.
+
+
+How a feature is generated
+--------------------------
+At a high level Features writes the code in a feature module using the following
+steps:
+
+1. An `.info` file describing the components that should be included in a
+Feature is generated. It is either read from an existing feature or generated
+through the Features UI.
+
+2. Features converts the info file into an `$export` array which contains a list
+of elements to be exported. Each component type is given a chance to add to the
+export list as well as request that *other* components be given a second chance
+to add to the `$export` array.
+
+3. If any additional components have been queued up in the `$pipe` we repeat
+step 2 for each of the queued component types.
+
+4. Once a full `$export` array is populated each component renders items from
+the `$export` array to PHP code as a exportable defaults hook.
+
+5. Finally, Features writes the code into files and delivers it as a
+downloadable package (UI) or writes it directly to a module directory (drush).
+
+This workflow makes a variety of things possible:
+
+### Add components to a feature
+
+Add the components to the `features` array in the feature's `.info` file and run
+`drush features-update`. The same operation can be performed using the
+*Recreate* page in the Features UI.
+
+### Remove components from a feature
+
+Remove the corresponding component lines from the feature's `.info` file and run
+`drush features-update`. The same operation can be performed using the
+*Recreate* page in the Features UI.
+
+### Rename a component
+
+Rename a component by changing its name in the feature's `.info` file and the
+key and name property of the exported object in the appropriate `.inc` file in
+the feature. Note that any references in other configuration objects to the
+previous name should also be updated.
+
+
+Integrating your module with the Features API
+---------------------------------------------
+This section is for developers interested in adding Features-based management
+for the configuration objects in their modules. From the perspective of
+Features, there are a few different ways that modules store their configuration:
+
+- In the `variable` table using `variable_set()`. If a module is using variables
+for storing configuration, these variable settings can be exported with Features
+by using the [Strongarm][1] module.
+
+  **Features integration:** Install the Strongarm module.
+
+- Using a custom table with a serial ID for identifying configuration objects.
+If this is the case, you will need to change your schema to use a string
+identifier / machine name for each object.
+
+  **Features integration:** Fix your schema first, then see below.
+
+- Using a custom table with a machine name identifier and custom exportables
+handling (e.g. you have your own defaults hook handling and export generation).
+If this is the case, you will need to implement many of the features hooks
+yourself.
+
+  **Features integration:** `hook_features_api()`, `hook_features_export()`,
+`hook_features_export_render()`, `hook_features_export_options()`,
+`hook_features_revert()`.
+
+- Using a custom table with CTools Export API integration. If this is the case,
+Features will automatically have integration with your module. You can implement
+any of the Features hooks in order to override the default CTools exportables
+integration behavior.
+
+  **Features integration:** Automatically provided. You may implement any of the
+Features hooks where you need further customization for your configuration
+object.
+
+If it isn't clear by now, we highly recommend using the [CTools][2] Export API
+for adding exportables to your module. Stella has written a [fantastic HOWTO][3]
+on using the CTools Export API that can get you started.
+
+
+An overview of Features hooks
+-----------------------------
+Extensive documentation of the hooks provided by Features is available in
+`features.api.php`. This section provides a short overview of each hook and its
+role.
+
+- `hook_features_api()` defines one or more component types that are available
+to Features for export and a variety of settings for each type.
+- `hook_features_export()` processes a list of components, detecting any
+dependencies or further components
+- `hook_features_export_options()` provides an array of components that can be
+exported for a given type.
+- `hook_features_export_render()` renders a set of components to code as a
+defaults hook.
+- `hook_features_revert()` reverts components of a feature back to their default
+state.
+- `hook_features_rebuild()` updates faux-exportable components back to their
+default state. Only applies to faux-exportables.
+
+
+[1]: http://drupal.org/project/strongarm
+[2]: http://drupal.org/project/ctools
+[3]: http://civicactions.com/blog/2009/jul/24/using_chaos_tools_module_create_exportables
diff --git a/drupal/sites/default/boinc/modules/contrib/features/CHANGELOG.txt b/drupal/sites/default/boinc/modules/contrib/features/CHANGELOG.txt
new file mode 100644
index 0000000..ab369be
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/CHANGELOG.txt
@@ -0,0 +1,392 @@
+
+features DRUPAL-6--1-0
+----------------------
+- No changes from RC3.
+
+features DRUPAL-6--1-0-RC3
+--------------------------
+- Ensure feature module name is properly handled in AHAH callback.
+- #577852: Do not allow module to add itself as dependency.
+
+features DRUPAL-6--1-0-RC2
+--------------------------
+- #888066 by ptrl: Views message typo.
+- #884624: Better support for custom CTools export callbacks.
+
+features DRUPAL-6--1-0-RC1
+--------------------------
+- #878604 by Coornail: Fix for PHP notice.
+- Add < and > to the list of characters that must be DOM encoded for AHAH safe
+  handling.
+- #878068: escape component identifiers.
+- #880456: Fix for PHP notice.
+- #880186 by yhahn, loosening the iron grip on vocabulary machine names.
+- #881010: Properly refer to menu links when doing a ordered build.
+
+features DRUPAL-6--1-0-BETA12
+-----------------------------
+- #873570: DOM-safe encode #default_value and ecsape '.' character.
+- #872052: Expose CCK field instances in UI for export.
+- Use README.txt for hook_help() page.
+- #872482: Proper failure for features_get_features().
+- #875156: Ensure roles are rebuilt before permissions.
+- #875416: Less confusing export of translatables.
+- #877178: Allow feature human-readable name/description to be changed on recreate.
+- #722952: Only write 'project' key if version or update status URL are provided.
+- #876206 by auzigog: Document hook_[component_defaults]_alter() functions.
+
+features DRUPAL-6--1-0-BETA11
+-----------------------------
+- #865454: Fix for complex menu links component handling.
+- Context: simpler check for API version
+- Blank out .features.inc when appropriate when updating existing features.
+- Fix for haphazard drush features-revert.
+- Adjust features_get_component_map() to allow for easy retrieval of a specific
+  component key.
+
+features DRUPAL-6--1-0-BETA10
+-----------------------------
+- #864742: Ensure CTools plugins.inc is included before calling API functions.
+- #864482 by hadsie: Fix for PHP notice.
+- Fix Views dependency detection.
+
+features DRUPAL-6--1-0-BETA9
+----------------------------
+This release introduces several important API and component changes.
+
+### Include file writing
+
+- CTools and Views components are now written to supported API include files,
+  e.g. `[myfeature].views_default.inc` and `[myfeatures].[ctools api].inc`.
+- Features-supported faux-exportable components are written to distinct include
+  files, e.g. `[myfeature].features.[component].inc`.
+- Only API hooks and hooks for APIs that do not handle file inclusion should be
+  written to `[myfeatures].features.inc` which is loaded by default through the
+  feature module file. These include `hook_views_api`, `hook_ctools_api`,
+  `hook_node_info`, etc.
+- All features using the old include formats are still supported but many
+  components will be marked as 'Overridden' until the feature is updated.
+- `[myfeature].defaults.inc`, `[myfeature].features.node.inc` and
+  `[myfeature].features.views.inc` are deprecated and can be safely removed
+  after the feature has been updated.
+
+### Component API changes
+
+- An exportable taxonomy vocabulary component has been introduced which uses
+  the `module` column of the vocabulary table as storage for machine names.
+- The menu component has been deprecated in favor of more advanced `menu_links`
+  and `menu_custom` components. Features using the old `menu` component can be
+  migrated to the new components through a feature update.
+- The old user permission component has been deprecated in favor of the
+  `user_permission` and `user_role` components. Features will no longer
+  automatically create roles that do not exist -- they must be exported
+  properly using the `user_role` component. Features using the old `user`
+  component can be migrated to the new components through a feature update.
+
+- FIx for features implementers using FEATURES_DEFAULTS_CUSTOM.
+- #504706 by dmitrig01: Recreate: include any additional files from the original
+  feature
+- #728004 by gordon, dmitrig01: Allow abitrary modules to alter the pipeline.
+- #752144 by dmitrig01: Refactor Features Status Page for Performance
+- #841844 by dmitrig01: Implement environment-agnostic message logging.
+- #577674 by dmitrig01: Display reasons for Incompatible Feature.
+- #838726: Fix possible creation of circular dependencies by cross-feature
+  fields.
+- #829778 by Josh Waihi: Add features-diff command.
+- Fix for reckless iteration.
+- Make features component options DOM safe for AHAH handling.
+- #717152 by dmitrig01: Ensure dependent features cannot be disabled.
+- Strip tags when displaying log messages in CLI.
+- #823278 by Grayside: Display warning when feature .module does not include
+  .feature.inc.
+- #649604: Split out dependencies as a component, proper, and ensure that
+  feature dependencies are met.
+- #742940: Improve granularity and compatibility of Features export includes.
+- #741498: Fix for bad function signature.
+- Suppress PHP 5.3 errors/warnings when generating tar output.
+- #813960 by nyl auster: Make it possible to revert defaulted features with
+  --force
+- Massive update to README.txt.
+- #843956 by q0rban: Drush commands use deprecated callback names
+- #829778 by q0rban: Offer to download and install diff if it is not available.
+- #843106 by dmitrig01: Check hook_requirements.
+- Updating API.txt
+- #843106 by dagmar: Fix for hook_requirements() checking.
+- Adding a note about custom code to README.txt
+- #789556 by alex_b, yhahn, bcmiller0 and jmiccolis, Support taxonomy
+  vocabularies.
+- Adding hook help.
+- #853738 by fgm: Fix for reckless check against ['default_file']
+- #852704 by q0rban: Check if Taxonomy exists before piping.
+- #633804 by catch, dereine, yhahn, JohnAlbin: Improve menu support
+- Ensure feature component options are escaped.
+- #792790 by Dustin Currie: Fix label for components editing.
+- Cleanup display of components on create/reexport.
+- Fix for PHP notice.
+- Fix for export and allow drush fu to affect modules in "non-standard"
+  directories.
+- Fix PHP notice when description is not set.
+- Fix for PHP notice.
+- Reduce excessive cache clearing.
+- Refactor features_get_default() and introduce features_get_default_map() to
+  simplify implementers' code.
+- Update to features_test module.
+- Remove misleading log messages.
+- #830774 by scottrigby: Fix for reckless iteration.
+- #751538 by DeFr: Clear caches after batch revert of Views rather than
+  individually.
+- #678930 by tim.plunkett: Fix Features package tab sorting.
+- Die tabs.
+- Remove confusing debug output for revert.
+- Don't run the bulk of feature generation/export logic unless we're sure the
+  feature can be written.
+- Check that specified object is loaded before attempting export.
+- #693024 by ceardach, hefox, nedjo: Add alter hooks for faux exportables.
+- Only write Views API hook if views are actually exported.
+- Fix for bad params.
+- Removing excessive taxonomy pipe from node component.
+- Preserve selected values even if form fails to validate.
+- #849646: CTools: fix for integration with page manager list callback.
+- #553866: Split user component into user_roles, user_permissions.
+- #650292: Limit export options to normal and current feature's components.
+- Fixing user permission test.
+- Remove special handling for menu component.
+- #649298 by q0rban, KarenS, yhahn: Allow node component type revert to disable
+  extra CCK fields.
+- Cleaning up function signatures.
+
+features DRUPAL-6--1-0-BETA8
+----------------------------
+- #814414: Fix context integration to properly integrate with CTools.
+- #810958 by q0rban: Add censored expletives to my daily workflow.
+
+features DRUPAL-6--1-0-BETA7
+----------------------------
+- #778250: Fix for php 5.3 issue with CTools.
+- Added static cache to ensure features_include() runs only once.
+- #522794 by Skorpjon, kenorb: Fixes for tar archive creation.
+- #686240 by David Stosik: Ensure field settings are properly captured accross
+  instances.
+- Add the drush features-update-all command and switch to using
+  drush_invoke_backend() to ensure processes have a better memory footprint.
+- Standardize CTools API identifier to fully support non-exportables CTools
+  APIs.
+- Ensure dependencies added by CTools do not create circular dependencies.
+- #798104 by Steven Merrill: Add drush features-revert-all command.
+- #673234 by joshk: Use elseif instead of else if to comply with coding
+  standards.
+- Support additional CTools plugin APIs that are non-exportable based.
+- #722460 by scor: Use 'drupal dependencies' flag in hook_drush_command() to
+  ensure features is enabled.
+- #727110 by adixon: Respect drush --root option.
+- #726700: Context 3.x dependency & component detection.
+- #709608: CTools: don't re-export objects that already exist in code. Depends
+  on #709754.
+- Disable features before installing on submit.
+- #725132 by q0rban: Fix for fieldgroup duplicate entries.
+
+features DRUPAL-6--1-0-BETA6
+----------------------------
+- #640438: Ensure new features are not created in existing local namespaces.
+- #706950: Fieldgroup component test.
+- #696554 by Amitaibu: Add --force option to features-revert command.
+- #702418 by Haza: Ensure roles are not localized on export when originating
+  from filter formats.
+- #480978 by q0rban: Add fieldgroup support.
+- #680332 by christianchristensen: Ensure each perm has only one instance of
+  each role.
+- #693944: Use strongarm to export CCK extra field weights.
+- #678930: Sort package links.
+- #670788 by jasonitti, andrewfn, irakli: Fix for regex syntax error in PHP
+  <= 5.2.2
+- Use human readable names for dependencies.
+- CTools: Show human readable names for components.
+- #691894: Use human readable names on component display.
+- #682730: Ensure object exists before attempting to render export code.
+- #682730: Using API owner with schema owner as module fallback.
+- #696396 by irakli: sort ctools exportables alphabetically.
+- #694890: Ensure rebuild menu reflects node types
+- Check that a feature has dependencies before trying to maximize them.
+- by mig5, Amitaibu: Update drush commands to use dashes.
+- Init component states array for each feature.
+- Removing features_menu_links() hack in favor of implementers using a
+  preprocess_page() function directly.
+- by Zoltán Balogh: Updated Hungarian translation.
+- #675306: Prevent feaures_detect_overrides() from running unless user is
+  properly permissioned.
+
+features DRUPAL-6--1-0-BETA5
+----------------------------
+- Basic component functional API tests.
+- A variety of static cache clears added -- discovered through tests.
+- #649410: Ensure cleanup doesn't disable Features module.
+- #654334: Allow feature builders to override module key of hook_node_info().
+- #622346: Make use of drush_log for assertions.
+- #656172: Delete features menu on uninstall.
+- #577852: Don't allow feature module to add itself as a dependency.
+- #660798 by e2thex: Use key from ctools_export_load_object.
+- CTools: Only export objects that can be loaded.
+- CTools: Implement hook_features_api() using component's module namespace
+  rather than the component namespace.
+- Only load includes on behalf of modules not implementing hook_features_api.
+- #532256 by flobruit and jmiccolis, more robust support for ctools
+  exportables, like panels.
+- Adding component revert for ctools.features.ctools.inc
+- #641658 by brad bulger: Fix for reckless ->delete() View method call.
+- #649832 by DamienMcKenna: Fix message on Views revert.
+- #653644, #532646 by careernerd, q0rban: Revert/update multiple features at
+  once.
+
+features DRUPAL-6--1-0-BETA4
+----------------------------
+Note: You MUST run update.php for Features to begin automatically rebuilding
+feature components when safe to do so.
+
+This release of Features contains a lot of new features and many changes to the
+internals for rebuildable components. There are no major API changes but as
+always please test thoroughly in a staging environment before rolling out beta4
+to production sites.
+
+- #616222: Moving conflict detection API functions into module proper.
+- #520220: Allow modules to be ignored when cleaning up dependencies.
+- #597330 by fago, fixed display of rule names in feature building ui.
+- #616222 by q0rban: API function for installing maximum dependencies of
+  modules/features.
+- #606992 by dmitrig01: Human readable names for feature components.
+- #612824: Proper handling of rebuildables & component reverting. Reported by
+  greggles, Roger Saner.
+- #616030 by q0rban: Simplify access check against features administration pages.
+- #597836: Remove form_alter() which hides features from admin/build/modules.
+- 3 stage state signature handling.
+- #597422 by Roger López: Consistify user permission, role sorting.
+- #522794 by Steven Merrill: Clear output buffer before transfering tgz file.
+- #604138 by Josh Waihi: Check for array before beginning reckless iteration.
+- by Istvan Palocz (pp): Hungarian translation
+- #521394: Initial implementation of features packages.
+- #520220: Provide form for disabling orphaned feature dependencies.
+- #520310: Adds implementation of 'administer features' and 'manage features'
+  permissions.
+- #402132: Adding validation checks to features create form.
+- Improved UI.
+- Cleanup rebuild/revert stack for CCK, filter formats, user permissions.
+- Simpler revert logic and sanitization of imagecache export presets.
+- #581514 by q0rban: Set a destination for feature revert links.
+- #401948 by derhasi: Export help and min_word_count values for node types.
+- #583120: Check for menu_custom table before querying.
+- #586634 by Pasqualle, prevent empty t() calls in exports.
+- #588808 by Pasqualle, php notice fix.
+- Sorting permissions on export to maintain array consistency.
+
+features DRUPAL-6--1-0-BETA3
+----------------------------
+This release of Features contains several key changes - if you are using
+Features in production you should be cautious of upgrading without testing.
+
+Previous releases of features contained an error in integration with the
+node module - the module key of hook_node_info() should now be features
+rather than node. Features will do this update for you automatically if
+you use drush features update or update your feature through the UI.
+You will still need to run features_update_6100() from update.php to
+update the node type entries in your database. For more information
+about this issue see http://drupal.org/node/521606.
+
+- Using correct API identifier for CTools integration.
+- Allowing modules that implement hook_system_info_alter() to modify the
+  features info cache as well.
+- #532256 by flobruit: Use proper ctools API functions for schema retrieval and
+  object export.
+- #551490 by fago, Allow renaming of components.
+- Fixing bad FormAPI key ['#redirect']
+- #521606 by mig5, q0rban: Correct hook_node_info() 'module' attribute to remove
+  feature node types when feature is disabled.
+- Fix for node type export check which should now include 'features' as an
+  acceptable module for node type exports.
+
+features DRUPAL-6--1-0-BETA2
+----------------------------
+- #560478 by jose reyero and myself, support translated role names.
+- #557112 by moshe weitzman: Suppress unnecessary menu_rebuild()'s.
+
+features DRUPAL-6--1-0-BETA1
+----------------------------
+This release of Features makes an API change to hook_features_api().
+Please see API.txt for the details.
+
+- Improving cache clear flow after feature is enabled.
+- #511872 by TUc: Fix typo in hook comment.
+- Fix for long feature name/descriptions breaking float in feature form.
+- #522820 by fago: Allow multiple components per module.
+- #520376: Adding static cache to override access check to prevent recursion.
+- #524124 by fago: Only include features includes for modules when they are
+  enabled.
+- #524160 by fago: Allow one default hook to contain multiple components.
+- by dmitrig01: Add a static cache to features_get_info()
+- #532256 ctools integration by alex_b and yhann.
+- #543190 by jmiccolis: Refactor hook_features_api() for greater extensibility
+  and multi-inc file export.
+- #527646 by Amitaibu: Add user_features_export_options().
+- #545276 by q0rban: Check for field existence before updating CCK fields when
+  reverting.
+- #543152 by q0rban: Fix for views export detection error.
+- Refactoring override detection code and export/build process.
+- Correctly excluded added dependencies from feature component array in info
+  file.
+- Adding configurable duplicate handling and allowing CTools API components to
+  be duplicated across features.
+- Ensure that dependencies are unique.
+
+features DRUPAL-6--1-0-ALPHA5
+-----------------------------
+- Implementing project status url and version keys in info files.
+- Removed context dependency.
+- Implementing feature reverting in the UI and some admin UI cleanups.
+- Initial commit of experimental user/permission integration.
+- Initial commit of features-filters integration.
+- Corrected a misnamed drush hook.
+- Updated usage of drush_print_table to reflect recent changes in drush.
+- Adding component conflict detection between features.
+- Adding export for translatable strings in menu, CCK.
+- #483548 by jmiccolis: Use AJAX to lighten server load on feature
+  overview page.
+
+features DRUPAL-6--1-0-ALPHA4
+-----------------------------
+- Ensure that a feature module cannot create circular dependencies.
+- #482212 by rszrama: Displaying a friendly message when no features
+  are available.
+- Move all theme functions into theme.inc.
+- Allow any implementing module to specify itself as a feature source.
+- Improve handling of include files.
+- Added hook_features_api() for declaring various info.
+- Show options for any implementer that provides export options on the
+  feature component confirmation form.
+- Fixing issue where only 1st level dependencies were enabled when
+  enabling a feature.
+- Clearing caches after features form submission using
+  hook_flush_caches() rather than piecemeal.
+
+features DRUPAL-6--1-0-ALPHA3
+-----------------------------
+- Removing field updating nonsense from field rebuilding --
+  moved to revert hooks.
+- Renaming drush command 'status features' to 'features'.
+- #441826: Fix for improper escaping of single quotes.
+- #449916 by Steven Jones: Checks that implementations of
+  hook_views_default_views() actually return an array of views before
+  iterating.
+- #440592 by benroot: Feature component reverting through drush.
+- Adding headers to diff table.
+
+features DRUPAL-6--1-0-ALPHA2
+-----------------------------
+- #421740: Fix for context pipe with views displays.
+- #430044: Fixing dependency checking in content and context includes.
+- Flushing caches before drush export.
+- Adding export item sorting for code stability.
+- Smarter export detection and dependency handling to imagecache.
+- Fix for imagecache export render.
+- Adding implementation of hook_flush_caches().
+
+features DRUPAL-6--1-0-ALPHA1
+-----------------------------
+- Initial release of features module.
diff --git a/drupal/sites/default/boinc/modules/contrib/features/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/features/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/features/README.txt b/drupal/sites/default/boinc/modules/contrib/features/README.txt
new file mode 100644
index 0000000..05c16e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/README.txt
@@ -0,0 +1,163 @@
+
+Features 1.x for Drupal 6.x
+---------------------------
+The features module enables the capture and management of features in Drupal. A
+feature is a collection of Drupal entities which taken together satisfy a
+certain use-case.
+
+Features provides a UI and API for taking different site building components
+from modules with exportables and bundling them together in a single feature
+module. A feature module is like any other Drupal module except that it declares
+its components (e.g. views, contexts, CCK fields, etc.) in its `.info` file so
+that it can be checked, updated, or reverted programmatically.
+
+Examples of features might be:
+
+- A blog
+- A pressroom
+- An image gallery
+- An e-commerce t-shirt store
+
+
+Installation
+------------
+Features can be installed like any other Drupal module -- place it in the
+modules directory for your site and enable it on the `admin/build/modules` page.
+To take full advantage of some of the workflow benefits provided by Features,
+you should install [Drush][1].
+
+
+Basic usage
+-----------
+Features is geared toward usage by developers and site builders. It
+is not intended to be used by the general audience of your Drupal site.
+Features provides tools for accomplishing two important tasks:
+
+### Task 1: Export features
+
+You can build features in Drupal by using site building tools that are supported
+(see a short list under the *Compatibility* section).
+
+Once you've built and configured functionality on a site, you can export it into
+a feature module by using the feature create page at
+`admin/build/features/create`.
+
+
+### Task 2: Manage features
+
+The features module also provides a way to manage features through a more
+targeted interface than `admin/build/modules`. The interface at
+`admin/build/features` shows you only feature modules, and will also inform you
+if any of their components have been overridden. If this is the case, you can
+also re-create features to bring the module code up to date with any changes
+that have occurred in the database.
+
+
+Including custom code and adding to your feature
+------------------------------------------------
+Once you've exported your feature you will see that you have several files:
+
+    myfeature.info
+    myfeature.module
+    myfeature.[*].inc
+
+You can add custom code (e.g. custom hook implementations, other functionality,
+etc.) to your feature in `myfeature.module` as you would with any other module.
+Do not change or add to any of the features `.inc` files unless you know what
+you are doing. These files are written to by features on updates so any custom
+changes may be overwritten.
+
+
+Using Features to manage development
+------------------------------------
+Because Features provides a centralized way to manage exportable components and
+write them to code it can be used during development in conjunction with a
+version control like SVN or git as a way to manage changes between development,
+staging and production sites. An example workflow for a developer using Features
+is to:
+
+1. Make configuration changes to a feature on her local development site.
+2. Update her local feature codebase using `drush features-update`.
+3. Commit those changes using `svn commit`.
+4. Roll out her changes to the development site codebase by running `svn update`
+  on the server. Other collaborating developers can also get her changes with
+  `svn update`.
+5. Reverting any configuration on the staging site to match the updated codebase
+by running `drush features-revert`.
+6. Rinse, repeat.
+
+Features also provides integration with the [Diff][3] module if enabled to show
+differences between configuration in the database and that in code. For site
+builders interested in using Features for development, enabling the diff module
+and reading `API.txt` for more details on the inner workings of Features is
+highly recommended.
+
+
+Drush usage
+-----------
+Features provides several useful drush commands:
+
+- `drush features`
+
+  List all the available features on your site and their status.
+
+- `drush features-export [feature name] [component list]`
+
+  Write a new feature in code containing the components listed.
+
+- `drush features-update [feature name]`
+
+  Update the code of an existing feature to include any overrides/changes in
+  your database (e.g. a new view).
+
+- `drush features-revert [feature name]`
+
+  Revert the components of a feature in your site's database to the state
+  described in your feature module's defaults.
+
+- `drush features-diff [feature name]`
+
+  Show a diff between a feature's database components and those in code.
+  Requires the Diff module.
+
+Additional commands and options can be found using `drush help`.
+
+
+Compatibility
+-------------
+Features provides integration for the following exportables:
+
+- CTools export API implementers (Context, Spaces, Boxes, Strongarm, Page
+  Manager)
+- ImageCache
+- Views
+- [Other contributed modules][2]
+
+Features also provides faux-exportable functionality for the following Drupal
+core and contrib components:
+
+- CCK fields
+- CCK fieldgroups
+- Content types
+- Input filters
+- User roles/permissions
+- Custom menus and menu links *
+- Taxonomy vocabularies *
+
+* Currently in development.
+
+
+For developers
+--------------
+Please read `API.txt` for more information about the concepts and integration
+points in the Features module.
+
+
+Maintainers
+-----------
+- yhahn (Young Hahn)
+- jmiccolis (Jeff Miccolis)
+
+
+[1]: http://drupal.org/project/drush
+[2]: (http://drupal.org/taxonomy/term/11478)
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.admin.inc b/drupal/sites/default/boinc/modules/contrib/features/features.admin.inc
new file mode 100644
index 0000000..4fc1a68
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.admin.inc
@@ -0,0 +1,807 @@
+<?php
+
+/**
+ * Form callback for features export form. Acts as a router based on the form_state.
+ */
+function features_export_form($form_state, $feature = NULL) {
+  module_load_include('inc', 'features', 'features.export');
+  features_include();
+
+  $form = array(
+    '#attributes' => array('class' => 'features-export-form'),
+    '#feature' => isset($feature) ? $feature : NULL,
+  );
+  $form['info'] = array(
+    '#type' => 'fieldset',
+    '#tree' => FALSE,
+  );
+  $form['info']['name'] = array(
+    '#title' => t('Name'),
+    '#description' => t('Example: Image gallery'),
+    '#type' => 'textfield',
+    '#required' => TRUE,
+    '#default_value' => !empty($feature->info['name']) ? $feature->info['name'] : '',
+    '#attributes' => array('class' => 'feature-name'),
+  );
+  $form['info']['module_name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Machine-readable name'),
+    '#description' => t('Example: image_gallery'). '<br/>' .t('May only contain lowercase letters, numbers and underscores. <strong>Try to avoid conflicts with the names of existing Drupal projects.</strong>'),
+    '#required' => TRUE,
+    '#default_value' => !empty($feature->name) ? $feature->name : '',
+    '#attributes' => array('class' => 'feature-module-name'),
+    '#element_validate' => array('features_export_form_validate_field'),
+  );
+  // If recreating this feature, disable machine name field and blank out
+  // js-attachment classes to ensure the machine name cannot be changed.
+  if (isset($feature)) {
+    $form['info']['module_name']['#value'] = $feature->name;
+    $form['info']['module_name']['#disabled'] = TRUE;
+    $form['info']['name']['#attributes'] = array();
+  }
+  $form['info']['description'] = array(
+    '#title' => t('Description'),
+    '#description' => t('Provide a short description of what users should expect when they enable your feature.'),
+    '#type' => 'textfield',
+    '#required' => TRUE,
+    '#default_value' => !empty($feature->info['description']) ? $feature->info['description'] : '',
+  );
+  $form['info']['version'] = array(
+    '#title' => t('Version'),
+    '#description' => t('Examples: 6.x-1.0, 6.x-1.0-beta1'),
+    '#type' => 'textfield',
+    '#required' => FALSE,
+    '#default_value' => !empty($feature->info['version']) ? $feature->info['version'] : '',
+    '#size' => 30,
+    '#element_validate' => array('features_export_form_validate_field'),
+  );
+  $form['info']['project_status_url'] = array(
+    '#title' => t('URL of update XML'),
+    '#description' => t('Example: http://mywebsite.com/fserver'),
+    '#type' => 'textfield',
+    '#required' => FALSE,
+    '#default_value' => !empty($feature->info['project status url']) ? $feature->info['project status url'] : '',
+    '#size' => 30,
+    '#element_validate' => array('features_export_form_validate_field'),
+  );
+
+  // User-selected feature source components.
+  $components = features_get_components();
+  uasort($components, 'features_compare_component_name');
+
+  $form['export'] = array(
+    '#type' => 'fieldset',
+    '#tree' => FALSE,
+    '#theme' => 'features_form_export',
+  );
+  $form['export']['components'] = array(
+    '#title' => t('Edit components'),
+    '#type' => 'select',
+    '#options' => array('------'),
+    '#attributes' => array('class' => 'features-select-components'),
+  );
+  $form['export']['sources'] = array(
+    '#tree' => TRUE,
+    '#theme' => 'features_form_components',
+  );
+  foreach ($components as $component => $component_info) {
+    $options = features_invoke($component, 'features_export_options');
+    if ($component === 'dependencies') {
+      $default_value = !empty($feature->info['dependencies']) ? $feature->info['dependencies'] : array();
+    }
+    else {
+      $default_value = !empty($feature->info['features'][$component]) ? $feature->info['features'][$component] : array();
+    }
+    if ($options) {
+      // Find all default components that are not provided by this feature and
+      // strip them out of the possible options.
+      if ($map = features_get_default_map($component)) {
+        foreach ($map as $k => $v) {
+          if (isset($options[$k]) && (!isset($feature->name) || $v !== $feature->name)) {
+            unset($options[$k]);
+          }
+        }
+      }
+      // Ensure all options are stripped of potentially bad values.
+      foreach ($options as $k => $v) {
+        $options[$k] = check_plain($v);
+      }
+      $label = (isset($component_info['name']) ? $component_info['name'] . ": " . $component : $component);
+      $form['export']['components']['#options'][$component] = $label;
+      if (!empty($options)) {
+        $form['export']['sources'][$component] = array(
+          '#type' => 'checkboxes',
+          '#options' => features_dom_encode_options($options),
+          '#title' => $component,
+          '#default_value' => features_dom_encode_options($default_value, FALSE),
+          '#ahah' => array(
+            'path' => 'admin/build/features/export/populate',
+            'wrapper' => 'features-export-populated',
+          ),
+        );
+      }
+      else {
+        $form['export']['sources'][$component] = array(
+          '#type' => 'item',
+          '#title' => $component,
+          '#value' => t('All components of this type are exported by other features or modules.'),
+        );
+      }
+    }
+  }
+  $form['export']['features'] = array(
+    '#tree' => TRUE,
+    '#type' => 'markup',
+    '#prefix' => "<div id='features-export-populated'>",
+    '#suffix' => "</div>",
+    '#value' => !empty($feature->info) ? theme('features_components', $feature->info, $feature->info['features']) : "<div class='placeholder'></div>",
+  );
+
+  $form['buttons'] = array('#theme' => 'features_form_buttons', '#tree' => FALSE);
+  $form['buttons']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Download feature'),
+    '#weight' => 10,
+    '#submit' => array('features_export_build_form_submit'),
+  );
+  return $form;
+}
+
+/**
+ * Validation for project field.
+ */
+function features_export_form_validate_field($element, &$form_state) {
+  switch ($element['#name']) {
+    case 'module_name':
+      if (!preg_match('!^[a-z0-9_]+$!', $element['#value'])) {
+        form_error($element, t('The machine-readable name must contain only lowercase letters, numbers, and underscores.'));
+      }
+      // If user is filling out the feature name for the first time and uses
+      // the name of an existing module throw an error.
+      else if (empty($element['#default_value']) && features_get_info('module', $element['#value'])) {
+        form_error($element, t('A module by the name @name already exists on your site. Please choose a different name.', array('@name' => $element['#value'])));
+      }
+      break;
+    case 'project_status_url':
+      if (!empty($element['#value']) && !valid_url($element['#value'])) {
+        form_error($element, t('The URL %url is invalid. Please enter a fully-qualified URL, such as http://www.example.com/feed.xml.', array('%url' => $element['#value'])));
+      }
+      break;
+    case 'version':
+      preg_match('/^(?P<core>\d+\.x)-(?P<major>\d+)\.(?P<patch>\d+)-?(?P<extra>\w+)?$/', $element['#value'], $matches);
+      if (!empty($element['#value']) && !isset($matches['core'], $matches['major'])) {
+        form_error($element, t('Please enter a valid version with core and major version number. Example: !example', array('!example' => '6.x-1.0')));
+      };
+      break;
+  }
+}
+
+/**
+ * Submit handler for features_export_form_build().
+ */
+function features_export_build_form_submit($form, &$form_state) {
+  module_load_include('inc', 'features', 'features.export');
+  features_include();
+
+  // Assemble the combined component list
+  $stub = array();
+  $components = array_keys(features_get_components());
+  foreach ($components as $component) {
+    // User-selected components take precedence.
+    if (!empty($form_state['values']['sources'][$component])) {
+      $stub[$component] = features_dom_decode_options(array_filter($form_state['values']['sources'][$component]));
+    }
+    // Only fallback to an existing feature's values if there are no export options for the component.
+    else if (!empty($form['#feature']->info['features'][$component])) {
+      $stub[$component] = $form['#feature']->info['features'][$component];
+    }
+  }
+
+  // Generate populated feature
+  $module_name = $form_state['values']['module_name'];
+  $export = features_populate($stub, $form_state['values']['sources']['dependencies'], $module_name);
+
+  // Directly copy the following attributes
+  $attr = array('name', 'description');
+  foreach ($attr as $key) {
+    $export[$key] = isset($form_state['values'][$key]) ? $form_state['values'][$key] : NULL;
+  }
+  // If either update status-related keys are provided, add a project key
+  // corresponding to the module name.
+  if (!empty($form_state['values']['version']) || !empty($form_state['values']['project_status_url'])) {
+    $export['project'] = $form_state['values']['module_name'];
+  }
+  if (!empty($form_state['values']['version'])) {
+    $export['version'] = $form_state['values']['version'];
+  }
+  if (!empty($form_state['values']['project_status_url'])) {
+    $export['project status url'] = $form_state['values']['project_status_url'];
+  }
+
+  // Generate download
+  if ($files = features_export_render($export, $module_name, TRUE)) {
+    $filename = (!empty($export['version']) ? "{$module_name}-{$export['version']}" : $module_name) . '.tar';
+
+    // Clear out output buffer to remove any garbage from tar output.
+    if (ob_get_level()) {
+      ob_end_clean();
+    }
+
+    drupal_set_header('Content-type: application/x-tar');
+    drupal_set_header('Content-Disposition: attachment; filename="'. $filename .'"');
+
+    $tar = array();
+    $filenames = array();
+    foreach ($files as $extension => $file_contents) {
+      if (!in_array($extension, array('module', 'info'))) {
+        $extension .= '.inc';
+      }
+      $filenames[] = "{$module_name}.$extension";
+      print features_tar_create("{$module_name}/{$module_name}.$extension", $file_contents);
+    }
+    if (features_get_modules($module_name, TRUE)) {
+      $module_path = drupal_get_path('module', $module_name);
+      // file_scan_directory() can throw warnings when using PHP 5.3, messing
+      // up the output of our file stream. Suppress errors in this one case in
+      // order to produce valid output.
+      foreach (@file_scan_directory($module_path, '.*') as $file) {
+        $filename = substr($file->filename, strlen($module_path) + 1);
+        if (!in_array($filename, $filenames)) {
+          // Add this file.
+          $contents = file_get_contents($file->filename);
+          print features_tar_create("{$module_name}/{$filename}", $contents);
+          unset($contents);
+        }
+      }
+    }
+    print pack("a1024","");
+    exit;
+  }
+}
+
+/**
+ * AHAH handler for features_export_form_build().
+ */
+function features_export_build_form_populate() {
+  module_load_include('inc', 'features', 'features.export');
+  features_include();
+
+  $form_state = array();
+  $submitted = $_POST;
+
+  if ($form = form_get_cache($submitted['form_build_id'], $form_state)) {
+    $stub = array();
+
+    // Assemble the combined component list
+    $components = array_keys(features_get_components());
+    foreach ($components as $component) {
+      // User-selected components take precedence.
+      if (!empty($submitted['sources'][$component])) {
+        // Validate and set the default value for each selected option. This
+        foreach ($submitted['sources'][$component] as $key => $value) {
+          if (isset($form['export']['sources'][$component]['#options'][$key])) {
+            $form['export']['sources'][$component]['#default_value'][$key] = $value;
+          }
+        }
+        $stub[$component] = features_dom_decode_options(array_filter($submitted['sources'][$component]));
+      }
+      // Only fallback to an existing feature's values if there are no export options for the component.
+      else if (!isset($form['export']['sources'][$component]) && !empty($form['#feature']->info['features'][$component])) {
+        $stub[$component] = $form['#feature']->info['features'][$component];
+      }
+    }
+
+    // Assemble dependencies
+    $dependencies = isset($submitted['sources']['dependencies']) ? $submitted['sources']['dependencies'] : array();
+
+    // Generate populated feature
+    $module_name = isset($form['#feature'], $form['#feature']->name) ? $form['#feature']->name : '';
+    $export = features_populate($stub, $dependencies, $module_name);
+
+    // Render component display
+    $components_rendered = theme('features_components', $export, $stub);
+    $form['export']['features']['#value'] = $components_rendered;
+
+    // Re-cache form. This ensures that if the form fails to validate, selected
+    // values are preserved for the user.
+    form_set_cache($submitted['form_build_id'], $form, $form_state);
+
+    drupal_json(array('status' => TRUE, 'data' => $components_rendered . theme('status_messages')));
+    exit;
+  }
+  drupal_json(array('status' => FALSE, 'data' => ''));
+  exit;
+}
+
+/**
+ * admin/build/features page callback.
+ */
+function features_admin_form($form_state) {
+  // Load export functions to use in comparison.
+  module_load_include('inc', 'features', 'features.export');
+
+  // Clear & rebuild key caches
+  module_rebuild_cache();
+  features_rebuild();
+
+  features_get_info(NULL, NULL, TRUE);
+  $modules = features_get_modules();
+  $features = features_get_features();
+  $conflicts = features_get_conflicts();
+
+  foreach ($modules as $key => $module) {
+    if ($module->status && !empty($module->info['dependencies'])) {
+      foreach ($module->info['dependencies'] as $dependent) {
+        if (isset($features[$dependent])) {
+          $features[$dependent]->dependents[$key] = $module->info['name'];
+        }
+      }
+    }
+  }
+
+  $form = array(
+    '#features' => $features,
+    '#theme' => 'features_form',
+  );
+
+  // Generate features form.
+  foreach ($features as $name => $module) {
+    $package_title = !empty($module->info['package']) ? $module->info['package'] : t('Other');
+    $package = strtolower(preg_replace('/[^a-zA-Z0-9-]+/', '-', $package_title));
+
+    // Set up package elements
+    if (!isset($form[$package])) {
+      $form[$package] = array(
+        '#tree' => FALSE,
+        '#title' => t($package_title),
+        '#theme' => 'features_form_package'
+      );
+      $form[$package]['links'] =
+      $form[$package]['version'] =
+      $form[$package]['weight'] =
+      $form[$package]['status'] =
+      $form[$package]['action'] = array('#tree' => TRUE);
+    }
+
+    $disabled = FALSE;
+    $description = isset($module->info['description']) ? $module->info['description'] : '';
+
+    // Detect unmet dependencies
+    if (!empty($module->info['dependencies'])) {
+      $unmet_dependencies = array();
+      $dependencies = _features_export_maximize_dependencies($module->info['dependencies']);
+      foreach ($dependencies as $dependency) {
+        if (empty($modules[$dependency])) {
+          $unmet_dependencies[] = theme('features_module_status', FEATURES_MODULE_MISSING, $dependency);
+        }
+      }
+      if (!empty($unmet_dependencies)) {
+        $description .= "<div class='dependencies'>". t('Unmet dependencies: !dependencies', array('!dependencies' => implode(', ', $unmet_dependencies))) ."</div>";
+        $disabled = TRUE;
+      }
+    }
+
+    if (!empty($module->dependents)) {
+      $disabled = TRUE;
+      $description .= "<div class='requirements'>". t('Required by: !dependents', array('!dependents' => implode(', ', $module->dependents))) ."</div>";
+    }
+
+    // Detect potential conflicts
+    if (!empty($conflicts[$name])) {
+      $module_conflicts = array();
+      foreach (array_keys($conflicts[$name]) as $conflict) {
+        $module_conflicts[] = theme('features_module_status', FEATURES_MODULE_MISSING, $conflict);
+        // Only disable modules with conflicts if they are not already enabled.
+        // If they are already enabled, somehow the user got themselves into a
+        // bad situation and they need to be able to disable a conflicted module.
+        if (module_exists($conflict) && !module_exists($name)) {
+          $disabled = TRUE;
+        }
+      }
+      $description .= "<div class='conflicts'>". t('Conflicts with: !conflicts', array('!conflicts' => implode(', ', $module_conflicts))) ."</div>";
+    }
+
+    $form[$package]['status'][$name] = array(
+      '#type' => 'checkbox',
+      '#title' => $module->info['name'],
+      '#description' => $description,
+      '#default_value' => $module->status,
+      '#disabled' => $disabled,
+    );
+
+    if (!empty($module->info['project status url'])) {
+      $uri = l(truncate_utf8($module->info['project status url'], 35, TRUE, TRUE), $module->info['project status url']);
+    }
+    else if (isset($module->info['project'], $module->info['version'], $module->info['datestamp'])) {
+      $uri = l('http://drupal.org', 'http://drupal.org/project/'. $module->info['project']);
+    }
+    else {
+      $uri = t('Unavailable');
+    }
+    $version = !empty($module->info['version']) ? $module->info['version'] : '';
+    $version = !empty($version) ? "<div class='description'>$version</div>" : '';
+    $form[$package]['sign'][$name] = array('#type' => 'markup', '#value' => "{$uri} {$version}");
+
+    if (user_access('administer features')) {
+      // Add status link
+      $href = "admin/build/features/{$name}";
+      if ($module->status) {
+        $state = '<span class="admin-loading features-storage">' . t('Checking...') . '</span>';
+        $state .= l(t('Check'), "admin/build/features/{$name}/status", array('attributes' => array('class' => 'admin-check')));
+        $state .= theme('features_storage_link', FEATURES_REBUILDING, NULL, $href);
+        $state .= theme('features_storage_link', FEATURES_NEEDS_REVIEW, NULL, $href);
+        $state .= theme('features_storage_link', FEATURES_OVERRIDDEN, NULL, $href);
+        $state .= theme('features_storage_link', FEATURES_DEFAULT, NULL, $href);
+      }
+      elseif (!empty($conflicts[$name])) {
+        $state = theme('features_storage_link', FEATURES_CONFLICT, NULL, $href);
+      }
+      else {
+        $state = theme('features_storage_link', FEATURES_DISABLED, NULL, $href);
+      }
+      $form[$package]['state'][$name] = array(
+        '#type' => 'markup',
+        '#value' => !empty($state) ? $state : '',
+      );
+
+      // Add in recreate link
+      $form[$package]['actions'][$name] = array(
+        '#type' => 'markup',
+        '#value' => l(t('Recreate'), "admin/build/features/{$name}/recreate", array('attributes' => array('class' => 'admin-update'))),
+      );
+    }
+  }
+
+  $form['buttons'] = array(
+    '#theme' => 'features_form_buttons',
+  );
+  $form['buttons']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save settings'),
+    '#submit' => array('features_form_submit'),
+    '#validate' => array('features_form_validate'),
+  );
+  return $form;
+}
+
+/**
+ * Display the components of a feature.
+ */
+function features_admin_components($form_state, $feature) {
+  module_load_include('inc', 'features', 'features.export');
+  $form = array();
+
+  // Store feature info for theme layer.
+  $form['module'] = array('#type' => 'value', '#value' => $feature->name);
+  $form['#info'] = $feature->info;
+  $form['#dependencies'] = array();
+  if (!empty($feature->info['dependencies'])) {
+    foreach ($feature->info['dependencies'] as $dependency) {
+      $status = features_get_module_status($dependency);
+      $form['#dependencies'][$dependency] = $status;
+    }
+  }
+
+  $review = $revert = FALSE;
+
+  // Iterate over components and retrieve status for display
+  $states = features_get_component_states(array($feature->name), FALSE);
+  $form['revert']['#tree'] = TRUE;
+  foreach ($feature->info['features'] as $component => $items) {
+    if (user_access('administer features') && in_array($states[$feature->name][$component], array(FEATURES_OVERRIDDEN, FEATURES_NEEDS_REVIEW))) {
+      switch ($states[$feature->name][$component]) {
+        case FEATURES_OVERRIDDEN:
+          $revert = TRUE;
+          break;
+        case FEATURES_NEEDS_REVIEW:
+          $review = TRUE;
+          break;
+      }
+      $form['revert'][$component] = array(
+        '#type' => 'checkbox',
+        '#default_value' => FALSE,
+      );
+    }
+    if (module_exists('diff')) {
+      $item = menu_get_item("admin/build/features/{$feature->name}/diff/{$component}");
+      $path = ($item && $item['access']) ? $item['href'] : NULL;
+    }
+    else {
+      $path = NULL;
+    }
+    $form['components'][$component] = array(
+      '#type' => 'markup',
+      '#value' => theme('features_storage_link', $states[$feature->name][$component], NULL, $path),
+    );
+  }
+
+  if ($review || $revert) {
+    $form['buttons'] = array('#theme' => 'features_form_buttons', '#tree' => TRUE);
+    if ($revert || $review) {
+      $form['buttons']['revert'] = array(
+        '#type' => 'submit',
+        '#value' => t('Revert components'),
+        '#submit' => array('features_admin_components_revert'),
+      );
+    }
+    if ($review) {
+      $form['buttons']['review'] = array(
+        '#type' => 'submit',
+        '#value' => t('Mark as reviewed'),
+        '#submit' => array('features_admin_components_review'),
+      );
+    }
+  }
+  return $form;
+}
+
+/**
+ * Submit handler for revert form.
+ */
+function features_admin_components_revert(&$form, &$form_state) {
+  module_load_include('inc', 'features', 'features.export');
+  features_include();
+  $module = $form_state['values']['module'];
+  $revert = array();
+  foreach (array_filter($form_state['values']['revert']) as $component => $status) {
+    $revert[$module][] = $component;
+    drupal_set_message(t('Reverted all <strong>!component</strong> components for <strong>!module</strong>.', array('!component' => $component, '!module' => $module)));
+  }
+  features_revert($revert);
+  $form_state['redirect'] = 'admin/build/features/'. $module;
+}
+
+/**
+ * Submit handler for revert form.
+ */
+function features_admin_components_review(&$form, &$form_state) {
+  module_load_include('inc', 'features', 'features.export');
+  features_include();
+  $module = $form_state['values']['module'];
+  $revert = array();
+  foreach (array_filter($form_state['values']['revert']) as $component => $status) {
+    features_set_signature($module, $component);
+    drupal_set_message(t('All <strong>!component</strong> components for <strong>!module</strong> reviewed.', array('!component' => $component, '!module' => $module)));
+  }
+  $form_state['redirect'] = 'admin/build/features/'. $module;
+}
+
+/**
+ * Validate handler for the 'manage features' form.
+ */
+function features_form_validate(&$form, &$form_state) {
+  include_once './includes/install.inc';
+  $conflicts = features_get_conflicts();
+  foreach ($form_state['values']['status'] as $module => $status) {
+    if ($status) {
+      if (!empty($conflicts[$module])) {
+        foreach (array_keys($conflicts[$module]) as $conflict) {
+          if (!empty($form_state['values']['status'][$conflict])) {
+            form_set_error('status', t('The feature !module cannot be enabled because it conflicts with !conflict.', array('!module' => $module, '!conflict' => $conflict)));
+          }
+        }
+      }
+      if (!drupal_check_module($module)) {
+        form_set_error('status', t('The feature !module cannot be enabled because it has unmet requirements.', array('!module' => $module, '!conflict' => $conflict)));
+      }
+    }
+  }
+}
+
+/**
+ * Submit handler for the 'manage features' form
+ */
+function features_form_submit(&$form, &$form_state) {
+  // Clear drupal caches after enabling a feature. We do this in a separate
+  // page callback rather than as part of the submit handler as some modules
+  // have includes/other directives of importance in hooks that have already
+  // been called in this page load.
+  $form_state['redirect'] = array('admin/build/features/cleanup/clear', array('token' => drupal_get_token()));
+
+  $features = $form['#features'];
+  if (!empty($features)) {
+    $status = $form_state['values']['status'];
+    $install = array_keys(array_filter($status));
+    $disable = array_diff(array_keys($status), $install);
+
+    // Disable first. If there are any features that are disabled that are
+    // dependencies of features that have been queued for install, they will
+    // be re-enabled.
+    module_disable($disable);
+    features_install_modules($install);
+  }
+}
+
+/**
+ * Form for disabling orphaned dependencies.
+ */
+function features_cleanup_form($form_state, $cache_clear = FALSE) {
+  $form = array();
+
+  // Clear caches if we're getting a post-submit redirect that requests it.
+  if ($cache_clear && !empty($_GET['token']) && drupal_valid_token($_GET['token'])) {
+    drupal_flush_all_caches();
+
+    // The following functions need to be run because drupal_flush_all_caches()
+    // runs rebuilds in the wrong order. The node type cache is rebuilt *after*
+    // the menu is rebuilt, meaning that the menu tree is stale in certain
+    // circumstances after drupal_flush_all_caches(). We rebuild again.
+    menu_rebuild();
+  }
+
+  // Retrieve orphaned modules and provide them as optional modules to be disabled.
+  // Exclude any modules that have been added to the 'ignored' list.
+  $options = array();
+  $orphans = features_get_orphans();
+  $ignored = variable_get('features_ignored_orphans', array());
+  if (!empty($orphans)) {
+    foreach ($orphans as $module) {
+      if (!in_array($module->name, $ignored, TRUE)) {
+        $options[$module->name] = check_plain($module->info['name']);
+      }
+    }
+  }
+
+  if (!empty($options)) {
+    $form['orphans'] = array(
+      '#title' => t('Orphaned dependencies'),
+      '#description' => t('These modules are dependencies of features that have been disabled. They may be disabled without affecting other components of your website.'),
+      '#type' => 'checkboxes',
+      '#options' => $options,
+      '#default_value' => array_keys($options),
+    );
+    $form['buttons'] = array('#tree' => TRUE, '#theme' => 'features_form_buttons');
+    $form['buttons']['disable'] = array(
+      '#type' => 'submit',
+      '#value' => t('Disable selected modules'),
+      '#submit' => array('features_cleanup_form_disable'),
+    );
+    $form['buttons']['ignore'] = array(
+      '#type' => 'submit',
+      '#value' => t('Leave enabled'),
+      '#submit' => array('features_cleanup_form_ignore'),
+    );
+  }
+  else {
+    drupal_goto('admin/build/features');
+  }
+  return $form;
+}
+
+/**
+ * Submit handler for disable action on features_cleanup_form().
+ */
+function features_cleanup_form_disable(&$form, &$form_state) {
+  if (!empty($form_state['values']['orphans'])) {
+    $disable = array_keys(array_filter($form_state['values']['orphans']));
+    $ignored = array_diff(array_keys($form_state['values']['orphans']), $disable);
+
+    // Disable any orphans that have been selected.
+    module_disable($disable);
+    drupal_flush_all_caches();
+
+    // Add enabled modules to ignored orphans list.
+    $ignored_orphans = variable_get('features_ignored_orphans', array());
+    foreach ($ignored as $module) {
+      $ignored_orphans[$module] = $module;
+    }
+    variable_set('features_ignored_orphans', $ignored_orphans);
+  }
+  $form_state['redirect'] = 'admin/build/features/cleanup';
+}
+
+/**
+ * Submit handler for ignore action on features_cleanup_form().
+ */
+function features_cleanup_form_ignore(&$form, &$form_state) {
+  if (!empty($form_state['values']['orphans'])) {
+    $ignored = array_keys($form_state['values']['orphans']);
+    $ignored_orphans = variable_get('features_ignored_orphans', array());
+    foreach ($ignored as $module) {
+      $ignored_orphans[$module] = $module;
+    }
+    variable_set('features_ignored_orphans', $ignored_orphans);
+  }
+  $form_state['redirect'] = 'admin/build/features/cleanup';
+}
+
+/**
+ * Page callback to display the differences between what's in code and
+ * what is in the db.
+ *
+ * @param $feature
+ *   A loaded feature object to display differences for.
+ * @param $component
+ *   Optional: specific component to display differences for. If excluded, all components are used.
+ *
+ * @return Themed display of what is different.
+ */
+function features_feature_diff($feature, $component = NULL) {
+  drupal_add_css(drupal_get_path('module', 'features') .'/features.css');
+  module_load_include('inc', 'features', 'features.export');
+
+  $overrides = features_detect_overrides($feature);
+
+  $output = '';
+  if (!empty($overrides)) {
+    // Filter overrides down to specified component.
+    if (isset($component) && isset($overrides[$component])) {
+      $overrides = array($component => $overrides[$component]);
+    }
+
+    module_load_include('php', 'diff', 'DiffEngine');
+    $formatter = new DrupalDiffFormatter();
+    $rows = array();
+    foreach ($overrides as $component => $items) {
+      $diff = new Diff(explode("\n", $items['default']), explode("\n", $items['normal']));
+      $rows[] = array(array('data' => $component, 'colspan' => 4, 'header' => TRUE));
+      $rows = array_merge($rows, $formatter->format($diff));
+    }
+    $header = array(
+      array('data' => t('Default'), 'colspan' => 2),
+      array('data' => t('Overrides'), 'colspan' => 2),
+    );
+    $output .= theme('diff_table', $header, $rows, array('class' => 'diff features-diff'));
+  }
+  else {
+    $output = "<div class='features-empty'>". t('No changes have been made to this feature.') ."</div>";
+  }
+  $output = "<div class='features-comparison'>{$output}</div>";
+  return $output;
+}
+
+/**
+ * Compare the component names. Used to sort alphabetically.
+ */
+function features_compare_component_name($a, $b) {
+  return strcasecmp($a['name'], $b['name']);
+}
+
+/**
+ * Javascript call back that returns the status of a feature.
+ */
+function features_feature_status($feature) {
+  module_load_include('inc', 'features', 'features.export');
+  return drupal_json(array('storage' => features_get_storage($feature->name)));
+}
+
+/**
+ * Make a Drupal options array safe for usage with jQuery DOM selectors.
+ * Encodes known bad characters into __[ordinal]__ so that they may be
+ * safely referenced by JS behaviors.
+ */
+function features_dom_encode_options($options = array(), $keys_only = TRUE) {
+  $replacements = array(
+    ':' => '__'. ord(':') .'__',
+    '/' => '__'. ord('/') .'__',
+    ',' => '__'. ord(',') .'__',
+    '.' => '__'. ord(',') .'__',
+    '<' => '__'. ord('<') .'__',
+    '>' => '__'. ord('>') .'__',
+  );
+  $encoded = array();
+  foreach ($options as $key => $value) {
+    $encoded[strtr($key, $replacements)] = $keys_only ? $value : strtr($value, $replacements);
+  }
+  return $encoded;
+}
+
+/**
+ * Decode an array of option values that have been encoded by
+ * features_dom_encode_options().
+ */
+function features_dom_decode_options($options, $keys_only = FALSE) {
+  $replacements = array_flip(array(
+    ':' => '__'. ord(':') .'__',
+    '/' => '__'. ord('/') .'__',
+    ',' => '__'. ord(',') .'__',
+    '.' => '__'. ord(',') .'__',
+    '<' => '__'. ord('<') .'__',
+    '>' => '__'. ord('>') .'__',
+  ));
+  $encoded = array();
+  foreach ($options as $key => $value) {
+    $encoded[strtr($key, $replacements)] = $keys_only ? $value : strtr($value, $replacements);
+  }
+  return $encoded;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.api.php b/drupal/sites/default/boinc/modules/contrib/features/features.api.php
new file mode 100644
index 0000000..73d73fe
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.api.php
@@ -0,0 +1,345 @@
+<?php
+
+/**
+ * Main info hook that features uses to determine what components are provided
+ * by the implementing module.
+ *
+ * @return array
+ *   An array of components, keyed by the component name. Each component can
+ *   define several keys:
+ *
+ *   'file': Optional path to a file to include which contains the rest
+ *   of the features API hooks for this module.
+ *
+ *   'default_hook': The defaults hook for your component that is called
+ *   when the cache of default components is generated. Examples include
+ *   hook_views_default_views() or hook_context_default_contexts().
+ *
+ *   'default_file': The file-writing behavior to use when exporting this
+ *   component. May be one of 3 constant values:
+ *
+ *   FEATURES_DEFAULTS_INCLUDED_COMMON: write hooks/components to
+ *   `.features.inc` with other components. This is the default behavior
+ *   if this key is not defined.
+ *
+ *   FEATURES_DEFAULTS_INCLUDED: write hooks/components to a component-
+ *   specific include named automatically by features.
+ *
+ *   FEATURES_DEFAULTS_CUSTOM: write hooks/components to a component-
+ *   specific include with a custom name provided. If your module provides
+ *   large amounts of code that should not be parsed often (only on specific
+ *   cache clears/rebuilds, for example) you should use the 2nd or 3rd
+ *   options to split your component into its own include.
+ *
+ *   'default_filename': The filename to use when 'default_file' is set to
+ *   FEATURES_DEFAULTS_CUSTOM.
+ *
+ *   'features_source': Boolean value for whether this component should be
+ *   offered as an option on the initial feature creation form.
+ *
+ *   'base': Optional. An alternative base key to use when calling features
+ *   hooks for this component. Can be used for features component types that
+ *   are declared "dynamically" or are part of a family of components.
+ */
+function hook_features_api() {
+  return array(
+    'mycomponent' => array(
+      'default_hook' => 'mycomponent_defaults',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+      'features_source' => TRUE,
+      'file' => drupal_get_path('module', 'mycomponent') .'/mycomponent.features.inc',
+    ),
+  );
+}
+
+/**
+ * Component hook. The hook should be implemented using the name ot the
+ * component, not the module, eg. [component]_features_export() rather than
+ * [module]_features_export().
+ *
+ * Process the export array for a given component. Implementations of this hook
+ * have three key tasks:
+ *
+ * 1. Determine module dependencies for any of the components passed to it
+ *   e.g. the views implementation iterates over each views' handlers and
+ *   plugins to determine which modules need to be added as dependencies.
+ *
+ * 2. Correctly add components to the export array. In general this is usually
+ *   adding all of the items in $data to $export['features']['my_key'], but
+ *   can become more complicated if components are shared between features
+ *   or modules.
+ *
+ * 3. Delegating further detection and export tasks to related or derivative
+ *   components.
+ *
+ * Each export processor can kickoff further export processors by returning a
+ * keyed array (aka the "pipe") where the key is the next export processor hook
+ * to call and the value is an array to be passed to that processor's $data
+ * argument. This allows an export process to start simply at a few objects:
+ *
+ * [context]
+ *
+ * And then branch out, delegating each component to its appropriate hook:
+ *
+ * [context]--------+------------+
+ *     |            |            |
+ *   [node]      [block]      [views]
+ *     |
+ *   [CCK]
+ *     |
+ * [imagecache]
+ *
+ * @param array $data
+ *   An array of machine names for the component in question to be exported.
+ * @param array &$export
+ *   By reference. An array of all components to be exported with a given
+ *   feature. Component objects that should be exported should be added to
+ *   this array.
+ * @param string $module_name
+ *   The name of the feature module to be generated.
+ * @return array
+ *   The pipe array of further processors that should be called.
+ */
+function hook_features_export($data, &$export, $module_name) {
+  // The following is the simplest implementation of a straight object export
+  // with no further export processors called.
+  foreach ($data as $component) {
+    $export['mycomponent'][$component] = $component;
+  }
+  return array();
+}
+
+/**
+ * Component hook. The hook should be implemented using the name ot the
+ * component, not the module, eg. [component]_features_export() rather than
+ * [module]_features_export().
+ *
+ * List all objects for a component that may be exported.
+ *
+ * @return array
+ *   A keyed array of items, suitable for use with a FormAPI select or
+ *   checkboxes element.
+ */
+function hook_features_export_options() {
+  $options = array();
+  foreach (mycomponent_load() as $mycomponent) {
+    $options[$mycomponent->name] = $mycomponent->title;
+  }
+  return $options;
+}
+
+/**
+ * Component hook. The hook should be implemented using the name ot the
+ * component, not the module, eg. [component]_features_export() rather than
+ * [module]_features_export().
+ *
+ * Render one or more component objects to code.
+ *
+ * @param string $module_name
+ *   The name of the feature module to be exported.
+ * @param array $data
+ *   An array of machine name identifiers for the objects to be rendered.
+ * @param array $export
+ *   The full export array of the current feature being exported. This is only
+ *   passed when hook_features_export_render() is invoked for an actual feature
+ *   update or recreate, not during state checks or other operations.
+ * @return array
+ *   An associative array of rendered PHP code where the key is the name of the
+ *   hook that should wrap the PHP code. The hook should not include the name
+ *   of the module, e.g. the key for `hook_example` should simply be `example`.
+ */
+function hook_features_export_render($module_name, $data, $export = NULL) {
+  $code = array();
+  $code[] = '$mycomponents = array();';
+  foreach ($data as $name) {
+    $code[] = "  \$mycomponents['{$name}'] = " . features_var_export(mycomponent_load($name)) .";";
+  }
+  $code[] = "return \$mycomponents;";
+  $code = implode("\n", $mycomponents);
+  return array('mycomponent_defaults' => $code);
+}
+
+/**
+ * Component hook. The hook should be implemented using the name ot the
+ * component, not the module, eg. [component]_features_export() rather than
+ * [module]_features_export().
+ *
+ * Revert all component objects for a given feature module.
+ *
+ * @param string $module_name
+ *   The name of the feature module whose components should be reverted.
+ * @return boolean
+ *   TRUE or FALSE for whether the components were successfully reverted.
+ */
+function hook_features_revert($module_name) {
+  $mycomponents = module_invoke_all($module_name, 'mycomponent_defaults');
+  if (!empty($$mycomponents)) {
+    foreach ($mycomponents as $mycomponent) {
+      mycomponent_delete($mycomponent);
+    }
+  }
+}
+
+/**
+ * Component hook. The hook should be implemented using the name ot the
+ * component, not the module, eg. [component]_features_export() rather than
+ * [module]_features_export().
+ *
+ * Rebuild all component objects for a given feature module. Should only be
+ * implemented for 'faux-exportable' components.
+ *
+ * This hook is called at points where Features determines that it is safe
+ * (ie. the feature is in state `FEATURES_REBUILDABLE`) for your module to
+ * replace objects in the database with defaults that you collect from your
+ * own defaults hook. See API.txt for how Features determines whether a
+ * rebuild of components is possible.
+ *
+ * @param string $module_name
+ *   The name of the feature module whose components should be rebuilt.
+ */
+function hook_features_export_rebuild($module_name) {
+  $mycomponents = module_invoke_all($module_name, 'mycomponent_defaults');
+  if (!empty($$mycomponents)) {
+    foreach ($mycomponents as $mycomponent) {
+      mycomponent_save($mycomponent);
+    }
+  }
+}
+
+/**
+ * Alter the final export array just prior to the rendering of defaults. Allows
+ * modules a final say in altering what component objects are exported.
+ *
+ * @param array &$export
+ *   By reference. An array of all components to be exported with a given
+ *   feature.
+ * @param array $module_name
+ *   The name of the feature module to be generated.
+ */
+function hook_features_export_alter(&$export, $module_name) {
+  // Example: do not allow the page content type to be exported, ever.
+  if (!empty($export['features']['node']['page'])) {
+    unset($export['features']['node']['page']);
+  }
+}
+
+/**
+ * Alter the pipe array for a given component. This hook should be implemented
+ * with the name of the component type in place of `component` in the function
+ * name, e.g. `features_pipe_views_alter()` will alter the pipe for the Views
+ * component.
+ *
+ * @param array &$pipe
+ *   By reference. The pipe array of further processors that should be called.
+ * @param array $data
+ *   An array of machine names for the component in question to be exported.
+ * @param array &$export
+ *   By reference. An array of all components to be exported with a given
+ *   feature.
+ */
+function hook_features_pipe_component_alter(&$pipe, $data, $export) {
+}
+
+/**
+ * @defgroup features_component_alter_hooks Feature's component alter hooks
+ * @{
+ * Hooks to modify components defined by other features. These come in the form
+ * hook_COMPONENT_alter where COMPONENT is the default_hook declared by any of
+ * components within features.
+ *
+ * CTools also has a variety of hook_FOO_alters.
+ *
+ * Note: While views is a component of features, it declares it's own alter 
+ * function which takes a similar form:
+ * hook_views_default_views_alter(&$views)
+ */
+
+/**
+ * Alter the default cck fields right before they are cached into the database.
+ *
+ * @param &$fields
+ *   By reference. The fields that have been declared by another feature.
+ */
+function hook_content_default_fields_alter(&$fields) {
+}
+
+/**
+ * Alter the default fieldgroup groups right before they are cached into the 
+ * database.
+ *
+ * @param &$groups
+ *   By reference. The fieldgroup groups that have been declared by another 
+ *   feature.
+ */
+function hook_fieldgroup_default_groups_alter(&$groups) {
+}
+
+/**
+ * Alter the default filter formats right before they are cached into the 
+ * database.
+ *
+ * @param &$formats
+ *   By reference. The formats that have been declared by another feature.
+ */
+function hook_filter_default_formats_alter(&$formats) {
+}
+
+/**
+ * Alter the default menus right before they are cached into the database.
+ *
+ * @param &$menus
+ *   By reference. The menus that have been declared by another feature.
+ */
+function hook_menu_default_menu_custom_alter(&$menus) {
+}
+
+/**
+ * Alter the default menu links right before they are cached into the database.
+ *
+ * @param &$links
+ *   By reference. The menu links that have been declared by another feature.
+ */
+function hook_menu_default_menu_links_alter(&$links) {
+}
+
+/**
+ * Alter the default menu items right before they are cached into the database.
+ *
+ * @param &$items
+ *   By reference. The menu items that have been declared by another feature.
+ */
+function hook_menu_default_items_alter(&$items) {
+}
+
+/**
+ * Alter the default vocabularies right before they are cached into the
+ * database.
+ *
+ * @param &$vocabularies
+ *   By reference. The vocabularies that have been declared by another feature.
+ */
+function hook_taxonomy_default_vocabularies_alter(&$vocabularies) {
+}
+
+/**
+ * Alter the default permissions right before they are cached into the
+ * database.
+ *
+ * @param &$permissions
+ *   By reference. The permissions that have been declared by another feature.
+ */
+function hook_user_default_permissions_alter(&$permissions) {
+}
+
+/**
+ * Alter the default roles right before they are cached into the database.
+ *
+ * @param &$roles
+ *   By reference. The roles that have been declared by another feature.
+ */
+function hook_user_default_roles_alter(&$roles) {
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.css b/drupal/sites/default/boinc/modules/contrib/features/features.css
new file mode 100644
index 0000000..4617992
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.css
@@ -0,0 +1,295 @@
+/**
+ * Features packages.
+ */
+div.features-form-links {
+  float: left;
+  width: 20%;
+}
+
+div.features-form-content {
+  float: right;
+  width: 80%;
+}
+
+/**
+ * Package links.
+ */
+div.features-form-links ul#features-form-links,
+div.features-form-links ul#features-form-links li,
+div.features-form-links ul#features-form-links li a {
+  display: block;
+  float: none;
+  margin: 0px;
+  padding: 0px;
+}
+
+div.features-form-links ul#features-form-links {
+  margin: 0px 0px 10px;
+}
+
+div.features-form-links ul#features-form-links li a {
+  background: #f8f8f8;
+  border-left: 1px solid #eee;
+  border-bottom: 1px solid #eee;
+  cursor: pointer;
+  padding: 5px 5px 4px 4px;
+}
+
+div.features-form-links ul#features-form-links li a.features-package-active {
+  background: #fff;
+  border: 1px solid #ccc;
+  border-right: 0px;
+  margin-right: -1px;
+  padding: 4px 5px 4px 4px;
+}
+
+/* Packages */
+div.features-form-package {
+  background: #fff;
+  border: 1px solid #ccc;
+  display: none;
+  margin: 0px 0px 20px;
+  padding: 10px;
+}
+
+div.features-package-active {
+  display: block;
+}
+
+/**
+ * Features management form (admin/build/features).
+ */
+div.features-empty {
+  color: #999;
+  font-size: 1.5em;
+  margin: 15px 0px;
+  text-align: center;
+}
+
+form div.buttons {
+  text-align: center;
+}
+
+table.features .admin-loading,
+table.features tr.disabled {
+  color: #999;
+}
+
+table.features a.configure {
+  float:right;
+  font-style: italic;
+}
+table.features div.feature {
+  float:left;
+  width: 85%;
+}
+table.features div.feature strong {
+  font-size: 13px;
+}
+table.features div.feature div.description {
+  font-size:11px;
+  margin: 0px;
+}
+
+table.features-manage td.name {
+  width: 80%;
+}
+table.features-manage td.sign {
+  width: 20%;
+}
+
+table.features-admin td.name {
+  width: 60%;
+}
+table.features-admin td.sign {
+  width: 20%;
+}
+table.features-admin td.state {
+  width: 10%;
+}
+table.features-admin td.actions {
+  width: 10%;
+}
+
+table.features td.sign {
+  font-size: 9px;
+  line-height: 15px;
+  white-space: nowrap;
+}
+
+table.features td.sign * {
+  margin: 0px;
+}
+
+table.features .admin-check,
+table.features .admin-default,
+table.features .admin-overridden,
+table.features .admin-rebuilding,
+table.features .admin-needs-review {
+  display: none;
+}
+
+/**
+ * Feature export form (admin/build/features/export).
+ */
+form.features-export-form table td {
+  width: 50%;
+}
+form.features-export-form table td {
+  vertical-align: top;
+}
+form.features-export-form table div.description {
+  white-space: normal;
+}
+
+table.features-export div.form-item {
+  white-space: normal;
+}
+table.features-export select {
+  width: 90%;
+}
+table.features-export td {
+  vertical-align: top;
+}
+
+form.features-export-form div.features-select {
+  display: none;
+}
+
+form.features-export-form div.form-checkboxes {
+  height: 20em;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
+form.features-export-form div#edit-components-wrapper,
+form.features-export-form div.features-select {
+  padding-right: 20px;
+}
+
+/**
+ * Feature component display (admin/build/features/%feature).
+ */
+div.features-components div.column {
+  float: left;
+  width: 50%;
+}
+
+div.features-components div.column div.info {
+  padding-right: 20px;
+}
+div.features-components div.column div.components {
+  padding-left: 20px;
+}
+
+h3.features-download,
+div.features-comparison h3,
+div.features-components h3 {
+  font-size: 2em;
+  font-weight: bold;
+  letter-spacing: -1px;
+  margin: 15px 0px;
+}
+
+h3.features-download {
+  text-align: center;
+}
+
+div.features-components div.description {
+  font-size: 11px;
+  margin: 15px 0px;
+}
+
+div.features-components table td {
+  font-size: 11px;
+}
+div.features-components table td.component {
+  padding-left: 20px;
+}
+
+/**
+ * Features component lists.
+ */
+span.features-component-key {
+  font-size: 11px;
+}
+
+a.admin-update,
+a.features-storage,
+span.features-storage,
+span.features-component-list span {
+  background: #eee;
+  margin-right: 5px;
+  padding: 2px 5px;
+  white-space: nowrap;
+  -moz-border-radius: 5px;
+  -webkit-border-radius: 5px;
+}
+
+div.features-key span.admin-conflict,
+span.features-component-list span.features-conflict {
+  background-color: #c30;
+  color: #fff;
+}
+
+a.admin-update {
+  background: transparent;
+}
+
+/* These pseudo selectors are necessary for themes like Garland. */
+a.admin-overridden:link,
+a.admin-overridden:visited,
+span.admin-overridden {
+  background: #666;
+  color: #fff;
+}
+
+a.admin-needs-review:link,
+a.admin-needs-review:visited,
+span.admin-needs-review {
+  background: #fe6;
+  color: #963;
+}
+
+a.admin-rebuilding:link,
+a.admin-rebuilding:visited,
+span.admin-rebuilding {
+  background: #699;
+  color: #fff;
+}
+
+a.admin-conflict:link,
+a.admin-conflict:visited,
+span.admin-conflict {
+  color: #c30;
+}
+
+table.features-diff td.diff-addedline,
+span.features-component-list .features-detected {
+  background: #def;
+  color: #68a;
+}
+
+table.features-diff td.diff-deletedline,
+span.features-component-list .features-dependency {
+  background: #f8f8f8;
+  color: #999;
+}
+
+/**
+ * Features diff.
+ */
+table.features-diff {
+  font-size: 11px;
+}
+
+table.features-diff td {
+  padding: 0px 5px;
+}
+
+table.features-diff td.diff-deletedline,
+table.features-diff td.diff-addedline,
+table.features-diff td.diff-context {
+  font-family: 'Andale Mono', monospace;
+  width: 50%;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.drush.inc b/drupal/sites/default/boinc/modules/contrib/features/features.drush.inc
new file mode 100644
index 0000000..262d687
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.drush.inc
@@ -0,0 +1,448 @@
+<?php
+
+/**
+ * @file
+ *   Features module drush integration.
+ */
+
+/**
+ * Implementation of hook_drush_command().
+ * 
+ * @See drush_parse_command() for a list of recognized keys.
+ *
+ * @return
+ *   An associative array describing your command(s).
+ */
+function features_drush_command() {
+  $items = array();
+
+  $items['features-list'] = array(
+    'description' => "List all the available features for your site.",
+    'drupal dependencies' => array('features'),
+    'aliases' => array('fl', 'features'),
+  );
+  $items['features-export'] = array(
+    'description' => "Export a feature from your site into a module.",
+    'arguments' => array(
+      'feature' => 'Feature name to export.',
+    ),
+    'drupal dependencies' => array('features'),
+    'aliases' => array('fe'),
+  );
+  $items['features-update'] = array(
+    'description' => "Update a feature module on your site.",
+    'arguments' => array(
+      'feature' => 'A space delimited list of features.',
+    ),
+    'drupal dependencies' => array('features'),
+    'aliases' => array('fu'),
+  );
+  $items['features-update-all'] = array(
+    'description' => "Update all feature modules on your site.",
+    'arguments' => array(
+      'feature_exclude' => 'A space-delimited list of features to exclude from being updated.',
+    ),
+    'drupal dependencies' => array('features'),
+    'aliases' => array('fu-all', 'fua'),
+  );
+  $items['features-revert'] = array(
+    'description' => "Revert a feature module on your site.",
+    'arguments' => array(
+      'feature' => 'A space delimited list of features.',
+    ),
+    'options' => array(
+      '--force' => "Force revert even if Features assumes components' state are default.",
+    ),
+    'drupal dependencies' => array('features'),
+    'aliases' => array('fr'),
+  );
+  $items['features-revert-all'] = array(
+    'description' => "Revert all enabled feature module on your site.",
+    'arguments' => array(
+      'feature_exclude' => 'A space-delimited list of features to exclude from being reverted.',
+    ),
+    'options' => array(
+      '--force' => "Force revert even if Features assumes components' state are default.",
+    ),
+    'drupal dependencies' => array('features'),
+    'aliases' => array('fr-all', 'fra'),
+  );
+  $items['features-diff'] = array(
+    'description' => "Show the difference between the default and overridden state of a feature.",
+    'arguments' => array(
+      'feature' => 'The feature in question.',
+    ),
+    'drupal dependencies' => array('features', 'diff'),
+    'aliases' => array('fd'),
+  );
+
+  return $items;
+}
+
+/**
+ * Implementation of hook_drush_help().
+ */
+function features_drush_help($section) {
+  switch ($section) {
+    case 'drush:features':
+      return dt("List all the available features for your site.");
+    case 'drush:features-export':
+      return dt("Export a feature from your site into a module.");
+    case 'drush:features-update':
+      return dt("Update a feature module on your site.");
+    case 'drush:features-update-all':
+      return dt("Update all feature modules on your site.");
+    case 'drush:features-revert':
+      return dt("Revert a feature module on your site.");
+    case 'drush:features-revert-all':
+      return dt("Revert all enabled feature module on your site.");
+    case 'drush:features-revert':
+      return dt("Revert a feature module on your site.");
+    case 'drush:features-diff':
+      return dt("Show a diff of a feature module.");
+  }
+}
+
+/**
+ * Get a list of all feature modules.
+ */
+function drush_features_list() {
+  module_load_include('inc', 'features', 'features.export');
+  $rows = array(array(dt('Name'), dt('Feature'), dt('Status'), dt('State')));
+  foreach (features_get_features(NULL, TRUE) as $k => $m) {
+    switch (features_get_storage($m->name)) {
+      case FEATURES_DEFAULT:
+      case FEATURES_REBUILDABLE:
+        $storage = '';
+        break;
+      case FEATURES_OVERRIDDEN:
+        $storage = dt('Overridden');
+        break;
+      case FEATURES_NEEDS_REVIEW:
+        $storage = dt('Needs review');
+        break;
+    }
+    $rows[] = array(
+      $m->info['name'],
+      $m->name,
+      $m->status ? dt('Enabled') : dt('Disabled'),
+      $storage
+    );
+  }
+  drush_print_table($rows, TRUE);
+}
+
+/**
+ * Create a feature module based on a list of components.
+ */
+function drush_features_export() {
+  $args = func_get_args();
+
+  if (count($args) == 1) {
+    // Assume that the user intends to create a module with the same name as the
+    // "value" of the component.
+    list($source, $component) = explode(':', $args[0]);
+    $stub = array($source => array($component));
+    _drush_features_export($stub, $component);
+  }
+  elseif (count($args) > 1) {
+    // Assume that the user intends to create a new module based on a list of 
+    // components. First argument is assumed to be the name.
+    $name = array_shift($args);
+    $stub = array();
+    foreach ($args as $v) {
+      list($source, $component) = explode(':', $v);
+      $stub[$source][] = $component;
+    }
+    _drush_features_export($stub, array(), $name);
+  }
+  else {
+    $rows = array(array(dt('Available sources')));
+    foreach (features_get_components(TRUE) as $component => $info) {
+      if ($options = features_invoke($component, 'features_export_options')) {
+        foreach ($options as $key => $value) {
+          $rows[] = array($component .':'. $key);
+        }
+      }
+    }
+    drush_print_table($rows, TRUE);
+  }
+}
+
+/**
+ * Update an existing feature module.
+ */
+function drush_features_update() {
+  if ($args = func_get_args()) {
+    foreach ($args as $module) {
+      if (($feature = feature_load($module, TRUE)) && module_exists($module)) {
+        _drush_features_export($feature->info['features'], $feature->info['dependencies'], $feature->name, dirname($feature->filename));
+      }
+      else if ($feature) {
+        _features_drush_set_error($module, 'FEATURES_FEATURE_NOT_ENABLED');
+      }
+      else {
+        _features_drush_set_error($module);
+      }
+    }
+  }
+  else {
+    // By default just show contexts that are available.
+    $rows = array(array(dt('Available features')));
+    foreach (features_get_features(NULL, TRUE) as $name => $info) {
+      $rows[] = array($name);
+    }
+    drush_print_table($rows, TRUE);
+  }
+}
+
+/**
+ * Update all enabled features. Optionally pass in a list of features to
+ * exclude from being updated.
+ */
+function drush_features_update_all() {
+  $features_to_update = array();
+  $features_to_exclude = func_get_args();
+  foreach (features_get_features() as $module) {
+    if ($module->status && !in_array($module->name, $features_to_exclude)) {
+      $features_to_update[] = $module->name;
+    }
+  }
+  drush_print(dt('The following modules will be updated: !modules', array('!modules' => implode(', ', $features_to_update))));
+  if (drush_confirm(dt('Do you really want to continue?'))) {
+    foreach ($features_to_update as $module_name) {
+      drush_invoke_process(drush_sitealias_get_record('@self'), 'features-update', array($module_name));
+    }
+  }
+  else {
+    drush_die('Aborting.');
+  }
+}
+
+/**
+ * Write a module to the site dir.
+ *
+ * @param $requests
+ *   An array of the context requested in this export.
+ * @param $module_name
+ *  Optional. The name for the exported module.
+ */
+function _drush_features_export($stub, $dependencies, $module_name = NULL, $directory = NULL) {
+  $root = drush_get_option(array('r', 'root'), drush_locate_root());
+  if ($root) {
+    $directory = isset($directory) ? $directory : 'sites/all/modules/' . $module_name;
+    if (is_dir($directory)) {
+      drush_print(dt('Module appears to already exist in !dir', array('!dir' => $directory)));
+      if (!drush_confirm(dt('Do you really want to continue?'))) {
+        drush_die('Aborting.');
+      }
+    }
+    else {
+      drush_op('mkdir', $directory);
+    }
+    if (is_dir($directory)) {
+      drupal_flush_all_caches();
+      module_load_include('inc', 'features', 'features.export');
+      $export = features_populate($stub, $dependencies, $module_name);
+      if (!feature_load($module_name)) {
+        $export['name'] = $module_name;
+      }
+      $files = features_export_render($export, $module_name, TRUE);
+      foreach ($files as $extension => $file_contents) {
+        if (!in_array($extension, array('module', 'info'))) {
+          $extension .= '.inc';
+        }
+        drush_op('file_put_contents', "{$directory}/{$module_name}.$extension", $file_contents);
+      }
+      drush_log(dt("Created module: !module in !directory", array('!module' => $module_name, '!directory' => $directory)), 'ok');
+    }
+    else {
+      drush_die(dt('Couldn\'t create directory !directory', array('!directory' => $directory)));
+    }
+  }
+  else {
+    drush_die(dt('Couldn\'t locate site root'));
+  }
+}
+
+/**
+ * Revert a feature to it's code definition.
+ */
+function drush_features_revert() {
+  if ($args = func_get_args()) {
+    module_load_include('inc', 'features', 'features.export');
+    features_include();
+
+    // Determine if revert should be forced.
+    $force = drush_get_option('force');
+    foreach ($args as $module) {
+      if (($feature = feature_load($module, TRUE)) && module_exists($module)) {
+
+        $components = array();
+        // Forcefully revert all components of a feature.
+        if ($force) {
+          foreach (array_keys($feature->info['features']) as $component) {
+            if (features_hook($component, 'features_revert')) {
+              $components[] = $component;
+            }
+          }
+        }
+        // Only revert components that are detected to be Overridden/Needs review.
+        else {
+          $states = features_get_component_states(array($feature->name), FALSE);
+          foreach ($states[$feature->name] as $component => $state) {
+            if (in_array($state, array(FEATURES_OVERRIDDEN, FEATURES_NEEDS_REVIEW)) && features_hook($component, 'features_revert')) {
+              $components[] = $component;
+            }
+          }
+        }
+
+        if (empty($components)) {
+          drush_log(dt('Current state already matches defaults, aborting.'), 'ok');
+        }
+        else {
+          foreach ($components as $component) {
+            if (drush_confirm(dt('Do you really want to revert !component?', array('!component' => $component)))) {
+              features_revert(array($module => array($component)));
+              drush_log(dt('Reverted !component.', array('!component' => $component)), 'ok');
+            }
+            else {
+              drush_log(dt('Skipping !component.', array('!component' => $component)), 'ok');
+            }
+          }
+        }
+      }
+      else if ($feature) {
+        _features_drush_set_error($module, 'FEATURES_FEATURE_NOT_ENABLED');
+      }
+      else {
+        _features_drush_set_error($module);
+      }
+    }
+  }
+  else {
+    drush_features_list();
+    return;
+  }
+}
+
+/**
+ * Revert all enabled features to their definitions in code. Optionally pass in
+ * a list of features to exclude from being reverted.
+ */
+function drush_features_revert_all() {
+  $features_to_revert = array();
+  $features_to_exclude = func_get_args();
+  $force = drush_get_option('force');
+  foreach (features_get_features() as $module) {
+    if ($module->status && !in_array($module->name, $features_to_exclude)) {
+      $features_to_revert[] = $module->name;
+    }
+  }
+  drush_print(dt('The following modules will be reverted: !modules', array('!modules' => implode(', ', $features_to_revert))));
+  if (drush_confirm(dt('Do you really want to continue?'))) {
+    foreach ($features_to_revert as $module_name) {
+      drush_invoke_process(drush_sitealias_get_record('@self'), 'features-revert', array($module_name), array('force' => $force, '#integrate' => TRUE));
+    }
+  }
+  else {
+    drush_die('Aborting.');
+  }
+}
+
+/**
+ * Show the diff of a feature module.
+ */
+function drush_features_diff() {
+  if (!$args = func_get_args()) {
+    drush_features_list();
+    return;
+  }
+  $module = $args[0];
+  $feature = feature_load($module);
+  if (!module_exists($module)) {
+    drush_log(dt('No such feature is enabled: ' . $module), 'error');
+    return;
+  }
+  module_load_include('inc', 'features', 'features.export');
+  $overrides = features_detect_overrides($feature);
+  if (empty($overrides)) {
+    drush_log(dt('Feature is in its default state. No diff needed.'), 'ok');
+    return;
+  }
+  module_load_include('php', 'diff', 'DiffEngine');
+
+  if (!class_exists('DiffFormatter')) {
+    if (drush_confirm(dt('It seems that the Diff module is not available. Would you like to download and enable it?'))) {
+      // Download it if it's not already here.
+      $project_info = drush_get_projects();
+      if (empty($project_info['diff']) && !drush_invoke_process(drush_sitealias_get_record('@self'), 'dl', array('diff'), array('#integrate' => TRUE))) {
+        return drush_set_error(dt('Diff module could not be downloaded.'));
+      }
+
+      if (!drush_invoke_process(drush_sitealias_get_record('@self'), 'en', array('diff'), array('#integrate' => TRUE))) {
+        return drush_set_error(dt('Diff module could not be enabled.'));
+      }
+    }
+    else {
+      return drush_set_error(dt('Diff module is not enabled.'));
+    }
+    // If we're still here, now we can include the DiffEngine again.
+    module_load_include('php', 'diff', 'DiffEngine');
+  }
+
+  $formatter = new DiffFormatter();
+  $formatter->leading_context_lines = 2;
+  $formatter->trailing_context_lines = 2;
+  $formatter->show_header = FALSE;
+
+  foreach ($overrides as $component => $items) {
+    $diff = new Diff(explode("\n", $items['default']), explode("\n", $items['normal']));
+    drush_print();
+    drush_print(dt("Component: !component", array('!component' => $component)));
+    $rows = explode("\n", $formatter->format($diff));
+    if (drush_get_context('DRUSH_NOCOLOR')) {
+      $red = $green = "%s";
+    }
+    else {
+      $red = "\033[31;40m\033[1m%s\033[0m";
+      $green = "\033[0;32;40m\033[1m%s\033[0m";
+    }
+    foreach ($rows as $row) {
+      if (strpos($row, '>') === 0) {
+        drush_print(sprintf($green, $row));
+      }
+      elseif (strpos($row, '<') === 0) {
+        drush_print(sprintf($red, $row));
+      }
+      else {
+        drush_print($row);
+      }
+    }
+  }
+}
+
+/**
+ * Helper function to call drush_set_error().
+ *
+ * @param $feature
+ *   The string name of the feature.
+ * @param $error
+ *   A text string identifying the type of error.
+ * @return
+ *   FALSE.  See drush_set_error().
+ */
+function _features_drush_set_error($feature, $error = '') {
+  $args = array('!feature' => $feature);
+
+  switch ($error) {
+    case 'FEATURES_FEATURE_NOT_ENABLED':
+      $message = 'The feature !feature is not enabled.';
+      break;
+    default:
+      $error = 'FEATURES_FEATURE_NOT_FOUND';
+      $message = 'The feature !feature could not be found.';
+  }
+
+  return drush_set_error($error, dt($message, $args));
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.export.inc b/drupal/sites/default/boinc/modules/contrib/features/features.export.inc
new file mode 100644
index 0000000..804ffaa
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.export.inc
@@ -0,0 +1,847 @@
+<?php
+
+/**
+ * @param $items
+ * @param $module_name
+ * @return
+ */
+function features_populate($items, $dependencies, $module_name) {
+  // Sanitize items.
+  $items = array_filter($items);
+  $items['dependencies'] = drupal_map_assoc(array_filter($dependencies));
+
+  // Populate stub
+  $stub = array('features' => array(), 'dependencies' => array(), 'conflicts' => array());
+  $export = _features_populate($items, $stub, $module_name);
+
+  // Allow other modules to alter the export.
+  drupal_alter('features_export', $export, $module_name);
+
+  // Clean up and standardize order
+  foreach (array_keys($export['features']) as $k) {
+    ksort($export['features'][$k]);
+  }
+  ksort($export['features']);
+  ksort($export['dependencies']);
+
+  return $export;
+}
+
+/**
+ * Iterate and descend into a feature definition to extract module
+ * dependencies and feature definition. Calls hook_features_export for modules
+ * that implement it.
+ *
+ * @param $pipe
+ *  Associative of array of module => info-for-module
+ * @param $export
+ *  Associative array of items, and module dependencies which define a feature.
+ *  Passed by reference.
+ *
+ * @return fully populated $export array.
+ */
+function _features_populate($pipe, &$export, $module_name = '') {
+  features_include();
+  foreach ($pipe as $component => $data) {
+    // Convert already defined items to dependencies.
+    _features_resolve_dependencies($data, $export, $module_name, $component);
+    if (!empty($data) && $function = features_hook($component, 'features_export')) {
+      // Pass module-specific data and export array.
+      // We don't use features_invoke() here since we need to pass $export by reference.
+      $more = $function($data, $export, $module_name, $component);
+      // Allow other modules to manipulate the pipe to add in additional modules.
+      drupal_alter('features_pipe_' . $component, $more, $data, $export);
+      // Allow for export functions to request additional exports.
+      if (!empty($more)) {
+        _features_populate($more, $export, $module_name);
+      }
+    }
+  }
+  return $export;
+}
+
+/**
+ * Iterates over data and convert to dependencies if already defined elsewhere.
+ */
+function _features_resolve_dependencies(&$data, &$export, $module_name, $component) {
+  if ($map = features_get_default_map($component)) {
+    foreach ($data as $key => $item) {
+      // If the node type is provided by a different module, add the provider as
+      // a dependency.
+      if (isset($map[$item]) && $map[$item] != $module_name) {
+        $export['dependencies'][$map[$item]] = $map[$item];
+        unset($data[$key]);
+      }
+    }
+  }
+}
+
+/**
+ * Iterates over a list of dependencies and kills modules that are
+ * captured by other modules 'higher up'.
+ */
+function _features_export_minimize_dependencies($dependencies, $module_name = '') {
+  // Ensure that the module doesn't depend upon itself
+  if (!empty($module_name) && !empty($dependencies[$module_name])) {
+    unset($dependencies[$module_name]);
+  }
+
+  // Do some cleanup:
+  // - Remove modules required by Drupal core.
+  // - Protect against direct circular dependencies.
+  // - Remove "intermediate" dependencies.
+  $required = drupal_required_modules();
+  foreach ($dependencies as $k => $v) {
+    if (empty($v) || in_array($v, $required)) {
+      unset($dependencies[$k]);
+    }
+    else {
+      $module = features_get_modules($v);
+      if ($module && !empty($module->info['dependencies'])) {
+        // If this dependency depends on the module itself, we have a circular dependency.
+        // Don't let it happen. Only you can prevent forest fires.
+        if (in_array($module_name, $module->info['dependencies'])) {
+          unset($dependencies[$k]);
+        }
+        // Iterate through the dependency's dependencies and remove any dependencies
+        // that are captured by it.
+        else {
+          foreach ($module->info['dependencies'] as $j => $dependency) {
+            if (array_search($dependency, $dependencies) !== FALSE) {
+              $position = array_search($dependency, $dependencies);
+              unset($dependencies[$position]);
+            }
+          }
+        }
+      }
+    }
+  }
+  return drupal_map_assoc(array_unique($dependencies));
+}
+
+/**
+ * Iterates over a list of dependencies and maximize the list of modules.
+ */
+function _features_export_maximize_dependencies($dependencies, $module_name = '', $maximized = array(), $first = TRUE) {
+  foreach ($dependencies as $k => $v) {
+    if (!in_array($v, $maximized)) {
+      $maximized[] = $v;
+      $module = features_get_modules($v);
+      if ($module && !empty($module->info['dependencies'])) {
+        $maximized = array_merge($maximized, _features_export_maximize_dependencies($module->info['dependencies'], $module_name, $maximized, FALSE));
+      }
+    }
+  }
+  return array_unique($maximized);
+}
+
+/**
+ * Prepare a feature export array into a finalized info array.
+ */
+function features_export_prepare($export, $module_name, $reset = FALSE) {
+  $existing = features_get_modules($module_name, $reset);
+
+  // Prepare info string -- if module exists, merge into its existing info file
+  $defaults = $existing ? $existing->info : array('core' => '6.x', 'package' => 'Features');
+  $export = array_merge($defaults, $export);
+
+  // Cleanup info array
+  foreach ($export['features'] as $component => $data) {
+    $export['features'][$component] = array_keys($data);
+  }
+  if (isset($export['dependencies'])) {
+    $export['dependencies'] = array_values($export['dependencies']);
+  }
+  if (isset($export['conflicts'])) {
+    unset($export['conflicts']);
+  }
+
+  // Order info array.
+  $standard_info = array();
+  foreach (array('name', 'description', 'core', 'package', 'php', 'version', 'project', 'dependencies') as $item) {
+    if (isset($export[$item])) {
+      $standard_info[$item] = $export[$item];
+    }
+  }
+
+  $export = array_diff_assoc($export, $standard_info);
+  ksort($export);
+  return array_merge($standard_info, $export);
+}
+
+/**
+ * Generate an array of hooks and their raw code.
+ */
+function features_export_render_hooks($export, $module_name, $reset = FALSE) {
+  features_include();
+  $code = array();
+
+  // Sort components to keep exported code consistent
+  ksort($export['features']);
+
+  foreach ($export['features'] as $component => $data) {
+    if (!empty($data)) {
+      // Sort the items so that we don't generate different exports based on order
+      asort($data);
+      if (features_hook($component, 'features_export_render')) {
+        $hooks = features_invoke($component, 'features_export_render', $module_name, $data, $export);
+        $code[$component] = $hooks;
+      }
+    }
+  }
+  return $code;
+}
+
+/**
+ * Render feature export into an array representing its files.
+ *
+ * @param $export
+ *  An exported feature definition.
+ * @param $module_name
+ *  The name of the module to be exported.
+ * @param $reset
+ *  Boolean flag for resetting the module cache. Only set to true when
+ *  doing a final export for delivery.
+ *
+ * @return array of info file and module file contents.
+ */
+function features_export_render($export, $module_name, $reset = FALSE) {
+  $code = array();
+
+  // Generate hook code
+  $component_hooks = features_export_render_hooks($export, $module_name, $reset);
+  $components = features_get_components();
+
+  // Group component code into their respective files
+  foreach ($component_hooks as $component => $hooks) {
+    $file = array('name' => 'features');
+    if (isset($components[$component]['default_file'])) {
+      switch ($components[$component]['default_file']) {
+        case FEATURES_DEFAULTS_INCLUDED:
+          $file['name'] = "features.$component";
+          break;
+        case FEATURES_DEFAULTS_CUSTOM:
+          $file['name'] = $components[$component]['default_filename'];
+          break;
+      }
+    }
+
+    if (!isset($code[$file['name']])) {
+      $code[$file['name']] = array();
+    }
+
+    foreach ($hooks as $hook_name => $hook_code) {
+      $code[$file['name']][$hook_name] = features_export_render_defaults($module_name, $hook_name, $hook_code);
+    }
+  }
+
+  // Finalize strings to be written to files
+  foreach ($code as $filename => $contents) {
+    $code[$filename] = "<?php\n\n". implode("\n\n", $contents) ."\n";
+  }
+
+  // Generate info file output
+  $export = features_export_prepare($export, $module_name, $reset);
+  $code['info'] = features_export_info($export);
+
+  // Prepare the module
+  // If module exists, let it be and include it in the files
+  if ($existing = features_get_modules($module_name, TRUE)) {
+    $code['module'] = file_get_contents($existing->filename);
+
+    // If the current module file does not reference the features.inc include,
+    // set a warning message.
+    if (isset($code['features']) && strpos($code['module'], "{$module_name}.features.inc") === FALSE) {
+      features_log(t('@module does not appear to include the @include file.', array('@module' => "{$module_name}.module", '@include' => "{$module_name}.features.inc")), 'warning');
+    }
+
+    // Deprecated files. Display a message for any of these files letting the
+    // user know that they may be removed.
+    $deprecated = array(
+      "{$module_name}.defaults",
+      "{$module_name}.features.views",
+      "{$module_name}.features.node"
+    );
+    foreach (file_scan_directory(drupal_get_path('module', $module_name), '.*') as $file) {
+      if (in_array($file->name, $deprecated, TRUE)) {
+        features_log(t('The file @filename has been deprecated and can be removed.', array('@filename' => $file->basename)), 'status');
+      }
+      elseif ($file->name === "{$module_name}.features" && empty($code['features'])) {
+        $code['features'] = "<?php\n\n// This file is deprecated and can be removed.\n// Please remove include_once('{$module_name}.features.inc') in {$module_name}.module as well.\n";
+      }
+    }
+  }
+  // Add a stub module to include the defaults
+  else if (!empty($code['features'])) {
+    $code['module'] = "<?php\n\ninclude_once('{$module_name}.features.inc');\n";
+  }
+  else {
+    $code['module'] = "<?php\n\n// Drupal needs this blank file.\n";
+  }
+  return $code;
+}
+
+/**
+ * Detect differences between DB and code components of a feature.
+ */
+function features_detect_overrides($module) {
+  static $cache;
+  if (!isset($cache)) {
+    $cache = array();
+  }
+  if (!isset($cache[$module->name])) {
+    // Rebuild feature from .info file description and prepare an export from current DB state.
+    $export = features_populate($module->info['features'], $module->info['dependencies'], $module->name);
+    $export = features_export_prepare($export, $module->name);
+
+    $overridden = array();
+
+    // Compare feature info
+    _features_sanitize($module->info);
+    _features_sanitize($export);
+
+    $compare = array('normal' => features_export_info($export), 'default' => features_export_info($module->info));
+    if ($compare['normal'] !== $compare['default']) {
+      $overridden['info'] = $compare;
+    }
+
+    // Collect differences at a per-component level
+    $states = features_get_component_states(array($module->name), FALSE);
+    foreach ($states[$module->name] as $component => $state) {
+      if ($state != FEATURES_DEFAULT) {
+        $normal = features_get_normal($component, $module->name);
+        $default = features_get_default($component, $module->name);
+        _features_sanitize($normal);
+        _features_sanitize($default);
+
+        $compare = array('normal' => features_var_export($normal), 'default' => features_var_export($default));
+        if (_features_linetrim($compare['normal']) !== _features_linetrim($compare['default'])) {
+          $overridden[$component] = $compare;
+        }
+      }
+    }
+    $cache[$module->name] = $overridden;
+  }
+  return $cache[$module->name];
+}
+
+/**
+ * Gets the available default hooks keyed by components.
+ */
+function features_get_default_hooks($component = NULL, $reset = FALSE) {
+  static $hooks;
+  if (!isset($hooks) || $reset) {
+    $hooks = array();
+    features_include();
+    foreach (module_implements('features_api') as $module) {
+      $info = module_invoke($module, 'features_api');
+      foreach ($info as $k => $v) {
+        if (isset($v['default_hook'])) {
+          $hooks[$k] = $v['default_hook'];
+        }
+      }
+    }
+  }
+  if (isset($component)) {
+    return isset($hooks[$component]) ? $hooks[$component] : FALSE;
+  }
+  return $hooks;
+}
+
+/**
+ * Return a code string representing an implementation of a defaults module hook.
+ */
+function features_export_render_defaults($module, $hook, $code) {
+  $output = array();
+  $output[] = "/**";
+  $output[] = " * Implementation of hook_{$hook}().";
+  $output[] = " */";
+  $output[] = "function {$module}_{$hook}() {";
+  $output[] = $code;
+  $output[] = "}";
+  return implode("\n", $output);
+}
+
+/**
+ * Generate code friendly to the Drupal .info format from a structured array.
+ *
+ * @param $info
+ *   An array or single value to put in a module's .info file.
+ * @param $parents
+ *   Array of parent keys (internal use only).
+ *
+ * @return
+ *   A code string ready to be written to a module's .info file.
+ */
+function features_export_info($info, $parents = array()) {
+  $output = '';
+  if (is_array($info)) {
+    foreach ($info as $k => $v) {
+      $child = $parents;
+      $child[] = $k;
+      $output .= features_export_info($v, $child);
+    }
+  }
+  else if (!empty($info) && count($parents)) {
+    $line = array_shift($parents);
+    foreach ($parents as $key) {
+      $line .= is_numeric($key) ? "[]" : "[{$key}]";
+    }
+    $line .=  " = \"{$info}\"\n";
+    return $line;
+  }
+  return $output;
+}
+
+/**
+ * Tar creation function. Written by dmitrig01.
+ *
+ * @param $name
+ *   Filename of the file to be tarred.
+ * @param $contents
+ *   String contents of the file.
+ *
+ * @return
+ *   A string of the tar file contents.
+ */
+function features_tar_create($name, $contents) {
+  $tar = '';
+  $binary_data_first = pack("a100a8a8a8a12A12",
+    $name,
+    '100644 ', // File permissions
+    '   765 ', // UID,
+    '   765 ', // GID,
+    sprintf("%11s ", decoct(strlen($contents))), // Filesize,
+    sprintf("%11s", decoct(time())) // Creation time
+  );
+  $binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", '', '', '', '', '', '', '', '', '', '');
+
+  $checksum = 0;
+  for ($i = 0; $i < 148; $i++) {
+    $checksum += ord(substr($binary_data_first, $i, 1));
+  }
+  for ($i = 148; $i < 156; $i++) {
+    $checksum += ord(' ');
+  }
+  for ($i = 156, $j = 0; $i < 512; $i++, $j++) {
+    $checksum += ord(substr($binary_data_last, $j, 1));
+  }
+
+  $tar .= $binary_data_first;
+  $tar .= pack("a8", sprintf("%6s ", decoct($checksum)));
+  $tar .= $binary_data_last;
+
+  $buffer = str_split($contents, 512);
+  foreach ($buffer as $item) {
+    $tar .= pack("a512", $item);
+  }
+  return $tar;
+}
+
+/**
+ * Export var function -- from Views.
+ */
+function features_var_export($var, $prefix = '', $init = TRUE) {
+  if (is_object($var)) {
+    $output = method_exists($var, 'export') ? $var->export() : features_var_export((array) $var);
+  }
+  else if (is_array($var)) {
+    if (empty($var)) {
+      $output = 'array()';
+    }
+    else {
+      $output = "array(\n";
+      foreach ($var as $key => $value) {
+        $output .= "  '$key' => " . features_var_export($value, '  ', FALSE) . ",\n";
+      }
+      $output .= ')';
+    }
+  }
+  else if (is_bool($var)) {
+    $output = $var ? 'TRUE' : 'FALSE';
+  }
+  else if (is_string($var) && strpos($var, "\n") !== FALSE) {
+    // Replace line breaks in strings with a token for replacement
+    // at the very end. This protects whitespace in strings from
+    // unintentional indentation.
+    $var = str_replace("\n", "***BREAK***", $var);
+    $output = var_export($var, TRUE);
+  }
+  else {
+    $output = var_export($var, TRUE);
+  }
+
+  if ($prefix) {
+    $output = str_replace("\n", "\n$prefix", $output);
+  }
+
+  if ($init) {
+    $output = str_replace("***BREAK***", "\n", $output);
+  }
+
+  return $output;
+}
+
+/**
+ * Helper function to return an array of t()'d translatables strings.
+ * Useful for providing a separate array of translatables with your
+ * export so that string extractors like potx can detect them.
+ */
+function features_translatables_export($translatables, $indent = '') {
+  $output = '';
+  $translatables = array_filter(array_unique($translatables));
+  if (!empty($translatables)) {
+    $output .= "{$indent}// Translatables\n";
+    $output .= "{$indent}// Included for use with string extractors like potx.\n";
+    sort($translatables);
+    foreach ($translatables as $string) {
+      $output .= "{$indent}t(" . features_var_export($string) . ");\n";
+    }
+  }
+  return $output;
+}
+
+/**
+ * Get a summary storage state for a feature.
+ */
+function features_get_storage($module_name) {
+  // Get component states, and array_diff against array(FEATURES_DEFAULT).
+  // If the returned array has any states that don't match FEATURES_DEFAULT,
+  // return the highest state.
+  $states = features_get_component_states(array($module_name), FALSE);
+  $states = array_diff($states[$module_name], array(FEATURES_DEFAULT));
+  $storage = !empty($states) ? max($states) : FEATURES_DEFAULT;
+  return $storage;
+}
+
+/**
+ * Wrapper around features_get_[storage] to return an md5hash of a normalized
+ * defaults/normal object array. Can be used to compare normal/default states
+ * of a module's component.
+ */
+function features_get_signature($state = 'default', $module_name, $component, $reset = FALSE) {
+  switch ($state) {
+    case 'cache':
+      $codecache = variable_get('features_codecache', array());
+      return isset($codecache[$module_name][$component]) ? $codecache[$module_name][$component] : FALSE;
+    case 'default':
+      $objects = features_get_default($component, $module_name, TRUE, $reset);
+      break;
+    case 'normal':
+      $objects = features_get_normal($component, $module_name, $reset);
+      break;
+  }
+  if (!empty($objects)) {
+    $objects = (array) $objects;
+    _features_sanitize($objects);
+    return md5(_features_linetrim(features_var_export($objects)));
+  }
+  return FALSE;
+}
+
+/**
+ * Set the signature of a module/component pair in the codecache.
+ */
+function features_set_signature($module, $component, $signature = NULL) {
+  $var_codecache = variable_get('features_codecache', array());
+  $signature = isset($signature) ? $signature : features_get_signature('default', $module, $component, TRUE);
+  $var_codecache[$module][$component] = $signature;
+  variable_set('features_codecache', $var_codecache);
+}
+
+/**
+ * Processing semaphore operations.
+ */
+function features_semaphore($op, $component) {
+  // Note: we don't use variable_get() here as the inited variable
+  // static cache may be stale. Retrieving directly from the DB narrows
+  // the possibility of collision.
+  $semaphore = db_result(db_query("SELECT value FROM {variable} WHERE name = 'features_semaphore'"));
+  $semaphore = !empty($semaphore) ? unserialize($semaphore) : array();
+
+  switch ($op) {
+    case 'get':
+      return isset($semaphore[$component]) ? $semaphore[$component] : FALSE;
+    case 'set':
+      $semaphore[$component] = time();
+      variable_set('features_semaphore', $semaphore);
+      break;
+    case 'del':
+      if (isset($semaphore[$component])) {
+        unset($semaphore[$component]);
+        variable_set('features_semaphore', $semaphore);
+      }
+      break;
+  }
+}
+
+/**
+ * Get normal objects for a given module/component pair.
+ */
+function features_get_normal($component, $module_name, $reset = FALSE) {
+  static $cache;
+  if (!isset($cache) || $reset) {
+    $cache = array();
+  }
+  if (!isset($cache[$module_name][$component])) {
+    features_include();
+    $code = NULL;
+    $module = features_get_features($module_name);
+
+    // Special handling for dependencies component.
+    if ($component === 'dependencies') {
+      $cache[$module_name][$component] = isset($module->info['dependencies']) ? array_filter($module->info['dependencies'], 'module_exists') : array();
+    }
+    // All other components.
+    else {
+      $default_hook = features_get_default_hooks($component);
+      if ($module && $default_hook && isset($module->info['features'][$component]) && features_hook($component, 'features_export_render')) {
+        $code = features_invoke($component, 'features_export_render', $module_name, $module->info['features'][$component], NULL);
+        $cache[$module_name][$component] = isset($code[$default_hook]) ? eval($code[$default_hook]) : FALSE;
+      }
+    }
+
+    // Clear out vars for memory's sake.
+    unset($code);
+    unset($module);
+  }
+  return isset($cache[$module_name][$component]) ? $cache[$module_name][$component] : FALSE;
+}
+
+/**
+ * Get defaults for a given module/component pair.
+ */
+function features_get_default($component, $module_name = NULL, $alter = TRUE, $reset = FALSE) {
+  static $cache = array();
+  features_include();
+  features_include_defaults($component);
+  $default_hook = features_get_default_hooks($component);
+  $components = features_get_components();
+
+  // Collect defaults for all modules if no module name was specified.
+  if (isset($module_name)) {
+    $modules = array($module_name);
+  }
+  else {
+    if ($component === 'dependencies') {
+      $modules = array_keys(features_get_features());
+    }
+    else {
+      $modules = array();
+      foreach (features_get_component_map($component) as $component_modules) {
+        $modules = array_merge($modules, $component_modules);
+      }
+      $modules = array_unique($modules);
+    }
+  }
+
+  // Collect and cache information for each specified module.
+  foreach ($modules as $m) {
+    if (!isset($cache[$component][$m]) || $reset) {
+      // Special handling for dependencies component.
+      if ($component === 'dependencies') {
+        $module = features_get_features($m);
+        $cache[$component][$m] = isset($module->info['dependencies']) ? $module->info['dependencies'] : array();
+        unset($module);
+      }
+      // All other components
+      else {
+        if ($default_hook && function_exists("{$m}_{$default_hook}")) {
+          $cache[$component][$m] = call_user_func("{$m}_{$default_hook}");
+          if ($alter) {
+            drupal_alter($default_hook, $cache[$component][$m]);
+          }
+        }
+        else {
+          $cache[$component][$m] = FALSE;
+        }
+      }
+    }
+  }
+
+  // A specific module was specified. Retrieve only its components.
+  if (isset($module_name)) {
+    return isset($cache[$component][$module_name]) ? $cache[$component][$module_name] : FALSE;
+  }
+  // No module was specified. Retrieve all components.
+  $all_defaults = array();
+  if (isset($cache[$component])) {
+    foreach (array_filter($cache[$component]) as $module_components) {
+      $all_defaults = array_merge($all_defaults, $module_components);
+    }
+  }
+  return $all_defaults;
+}
+
+/**
+ * Get a map of components to their providing modules.
+ */
+function features_get_default_map($component, $attribute = NULL, $callback = NULL, $reset = FALSE) {
+  static $map = array();
+  features_include();
+  features_include_defaults($component);
+  if ((!isset($map[$component]) || $reset) && $default_hook = features_get_default_hooks($component)) {
+    $map[$component] = array();
+    foreach (module_implements($default_hook) as $module) {
+      if ($defaults = features_get_default($component, $module)) {
+        foreach ($defaults as $key => $object) {
+          if (isset($callback)) {
+            if ($object_key = $callback($object)) {
+              $map[$component][$object_key] = $module;
+            }
+          }
+          elseif (isset($attribute)) {
+            if (is_object($object) && isset($object->{$attribute})) {
+              $map[$component][$object->{$attribute}] = $module;
+            }
+            elseif (is_array($object) && isset($object[$attribute])) {
+              $map[$component][$object[$attribute]] = $module;
+            }
+          }
+          elseif (!isset($attribute) && !isset($callback)) {
+            if (!is_numeric($key)) {
+              $map[$component][$key] = $module;
+            }
+          }
+          else {
+            return FALSE;
+          }
+        }
+      }
+    }
+  }
+  return isset($map[$component]) ? $map[$component] : FALSE;
+}
+
+/**
+ * Retrieve an array of features/components and their current states.
+ */
+function features_get_component_states($features = array(), $rebuild_only = TRUE, $reset = FALSE) {
+  static $cache;
+  if (!isset($cache) || $reset) {
+    $cache = array();
+  }
+
+  $features = !empty($features) ? $features : array_keys(features_get_features());
+
+  // Retrieve only rebuildable components if requested.
+  features_include();
+  $components = array_keys(features_get_components());
+  if ($rebuild_only) {
+    foreach ($components as $k => $component) {
+      if (!features_hook($component, 'features_rebuild')) {
+        unset($components[$k]);
+      }
+    }
+  }
+
+  foreach ($features as $feature) {
+    $cache[$feature] = isset($cache[$feature]) ? $cache[$feature] : array();
+    if (module_exists($feature)) {
+      foreach ($components as $component) {
+        if (!isset($cache[$feature][$component])) {
+          $normal = features_get_signature('normal', $feature, $component, $reset);
+          $default = features_get_signature('default', $feature, $component, $reset);
+          $codecache = features_get_signature('cache', $feature, $component, $reset);
+          $semaphore = features_semaphore('get', $component);
+
+          // DB and code states match, there is nothing more to check.
+          if ($normal == $default) {
+            $cache[$feature][$component] = FEATURES_DEFAULT;
+
+            // Stale semaphores can be deleted.
+            features_semaphore('del', $component);
+
+            // Update code cache if it is stale, clear out semaphore if it stale.
+            if ($default != $codecache) {
+              features_set_signature($feature, $component, $default);
+            }
+          }
+          // Component properly implements exportables.
+          else if (!features_hook($component, 'features_rebuild')) {
+            $cache[$feature][$component] = FEATURES_OVERRIDDEN;
+          }
+          // Component does not implement exportables.
+          else {
+            if (empty($semaphore)) {
+              // Exception for dependencies. Dependencies are always rebuildable.
+              if ($component === 'dependencies') {
+                $cache[$feature][$component] = FEATURES_REBUILDABLE;
+              }
+              // All other rebuildable components require comparison.
+              else {
+                // Code has not changed, but DB does not match. User has DB overrides.
+                if ($codecache == $default) {
+                  $cache[$feature][$component] = FEATURES_OVERRIDDEN;
+                }
+                // DB has no modifications to prior code state (or this is initial install).
+                else if (empty($codecache) || $codecache == $normal) {
+                  $cache[$feature][$component] = FEATURES_REBUILDABLE;
+                }
+                // None of the states match. Requires user intervention.
+                else if ($codecache != $default) {
+                  $cache[$feature][$component] = FEATURES_NEEDS_REVIEW;
+                }
+              }
+            }
+            else {
+              // Semaphore is still within processing horizon. Do nothing.
+              if ((time() - $semaphore) < FEATURES_SEMAPHORE_TIMEOUT) {
+                $cache[$feature][$component] = FEATURES_REBUILDING;
+              }
+              // A stale semaphore means a previous rebuild attempt did not complete.
+              // Attempt to complete the rebuild.
+              else {
+                $cache[$feature][$component] = FEATURES_REBUILDABLE;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+
+  // Filter cached components on the way out to ensure that even if we have
+  // cached more data than has been requested, the return value only reflects
+  // the requested features/components.
+  $return = $cache;
+  $return = array_intersect_key($return, array_flip($features));
+  foreach ($return as $k => $v) {
+    $return[$k] = array_intersect_key($return[$k], array_flip($components));
+  }
+  return $return;
+}
+
+/**
+ * Helper function to eliminate whitespace differences in code.
+ */
+function _features_linetrim($code) {
+  $code = explode("\n", $code);
+  foreach ($code as $k => $line) {
+    $code[$k] = trim($line);
+  }
+  return implode("\n", $code);
+}
+
+/**
+ * "Sanitizes" an array recursively, performing two key operations:
+ * - Sort an array by its keys (assoc) or values (non-assoc)
+ * - Remove any null or empty values for associative arrays (array_filter()).
+ */
+function _features_sanitize(&$array) {
+  if (is_array($array)) {
+    $is_assoc = (array_keys($array) !== range(0, count($array) - 1));
+    if ($is_assoc) {
+      ksort($array);
+      $array = array_filter($array);
+    }
+    else {
+      sort($array);
+    }
+    foreach ($array as $k => $v) {
+      if (is_array($v)) {
+        _features_sanitize($array[$k]);
+      }
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.info b/drupal/sites/default/boinc/modules/contrib/features/features.info
new file mode 100644
index 0000000..277f335
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.info
@@ -0,0 +1,11 @@
+name = "Features"
+description = "Provides feature management for Drupal."
+core = 6.x
+package = "Features"
+
+; Information added by drupal.org packaging script on 2011-12-15
+version = "6.x-1.2-boinc-1-dev"
+core = "6.x"
+project = "features"
+datestamp = "1494527048"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.install b/drupal/sites/default/boinc/modules/contrib/features/features.install
new file mode 100644
index 0000000..349f628
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.install
@@ -0,0 +1,100 @@
+<?php
+
+/**
+ * Implementaton of hook_install().
+ */
+function features_install() {
+  _features_install_menu();
+  db_query("UPDATE {system} SET weight = 20 WHERE name = 'features' AND type = 'module'");
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function features_uninstall() {
+  variable_del('features_codecache');
+  variable_del('features_semaphore');
+  variable_del('features_ignored_orphans');
+  db_query("DELETE FROM {menu_custom} WHERE menu_name = 'features'");
+  db_query("DELETE FROM {menu_links} WHERE module = 'features'");
+}
+
+/**
+ * Create menu. See menu.install for an example.
+ */
+function _features_install_menu() {
+  if (db_table_exists('menu_custom') && !db_result(db_query("SELECT menu_name FROM {menu_custom} WHERE menu_name = 'features'"))) {
+    $t = get_t();
+    db_query("INSERT INTO {menu_custom} (menu_name, title, description) VALUES ('%s', '%s', '%s')", 'features', $t('Features'), $t('Menu items for any enabled features.'));
+  }
+}
+
+/**
+ * Update 6100: Set module on all feature node types to 'features'.
+ 
+ * This update can be re-run as needed to repair any node types that are not 
+ * removed after disabling the associated feature.
+ * 
+ * Any feature implementing a node component that was exported prior to this 
+ * version of the features.module will need to have its 'module' declaration 
+ * in hook_node_info() changed from 'node' to 'features'.
+ */
+function features_update_6100() {
+  $ret = array();
+
+  foreach (features_get_features(NULL, TRUE) as $feature) {
+    if (module_exists($feature->name) && $types = module_invoke($feature->name, 'node_info')) {
+      foreach ($types as $type => $type_data) {
+        $sql = "SELECT COUNT(*) FROM {node_type} WHERE module = 'node' AND type = '%s'";
+        // Only update if the hook_node_info type's module is 'features' and the db type's
+        // module is 'node'.
+        if (($type_data['module'] == 'features') && db_result(db_query($sql, $type))) {
+          $ret[] = update_sql("UPDATE {node_type} SET module = 'features' WHERE type = '$type'");
+        }
+      }
+    }
+  }
+  return $ret;
+}
+
+/**
+ * Update 6101: Set codestate signature for all features.
+ *
+ * This update generates a codestate for all feature/component pairs which
+ * have been installed prior to this version of Features. This prevents
+ * automatic rebuilds from occurring against any rebuildable components
+ * that have been overridden.
+ */
+function features_update_6101() {
+  // Ensure all of our own API functions still exist in in this version
+  // of Features. It's possible that the "future me" will not have these
+  // functions, so I should check.
+  module_load_include('inc', 'features', "features.export");
+  $functions = array(
+    'features_include',
+    'features_hook',
+    'features_get_components',
+    'features_get_features',
+    'features_get_signature',
+    'features_set_signature',
+  );
+  $doit = TRUE;
+  foreach ($functions as $function) {
+    $doit = $doit && function_exists($function);
+  }
+  if ($doit) {
+    features_include();
+    $features = array_keys(features_get_features(NULL, TRUE));
+    $components = array_keys(features_get_components());
+    foreach ($features as $feature) {
+      if (module_exists($feature)) {
+        foreach ($components as $component) {
+          if (features_hook($component, 'features_rebuild') && features_get_signature('cache', $feature, $component) === FALSE) {
+            features_set_signature($feature, $component, -1);
+          }
+        }
+      }
+    }
+  }
+  return array();
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.js b/drupal/sites/default/boinc/modules/contrib/features/features.js
new file mode 100644
index 0000000..11e1b4f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.js
@@ -0,0 +1,104 @@
+
+Drupal.behaviors.features = function() {
+  // Features management form package tabs
+  $("ul#features-form-links li a:not(.features-processed)").each(function() {
+    $(this).addClass('features.processed').click(function() {
+      $(".features-package-active").removeClass('features-package-active');
+      var panel = $(this).attr('href').split('#')[1];
+      $("div.package-" + panel).addClass('features-package-active');
+      $(this).addClass('features-package-active');
+      return false;
+    });
+  });
+
+  // Features management form
+  $('table.features:not(.processed)').addClass('processed').each(function() {
+    // Check the overridden status of each feature
+    Drupal.features.checkStatus();
+
+    // Add some nicer row hilighting when checkboxes change values
+    $('input', this).bind('change', function() {
+      if (!$(this).attr('checked')) {
+        $(this).parents('tr').removeClass('enabled').addClass('disabled');
+      }
+      else {
+        $(this).parents('tr').addClass('enabled').removeClass('disabled');
+      }
+    });
+  });
+
+  // Export form component selector
+  $('form.features-export-form select.features-select-components:not(.processed)').each(function() {
+    $(this)
+      .addClass('processed')
+      .change(function() {
+        var target = $(this).val();
+        $('div.features-select').hide();
+        $('div.features-select-' + target).show();
+        return false;
+    });
+  });
+
+  // Export form machine-readable JS
+  $('.feature-name:not(.processed)').each(function() {
+    $('.feature-name')
+      .addClass('processed')
+      .after(' <small class="feature-module-name-suffix"> </small>');
+    if ($('.feature-module-name').val() === $('.feature-name').val().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/_+/g, '_') || $('.feature-module-name').val() === '') {
+      $('.feature-module-name').parents('.form-item').hide();
+      $('.feature-name').bind('keyup change', function() {
+        var machine = $(this).val().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/_+/g, '_');
+        if (machine !== '_' && machine !== '') {
+          $('.feature-module-name').val(machine);
+          $('.feature-module-name-suffix').empty().append(' Machine name: ' + machine + ' [').append($('<a href="#">'+ Drupal.t('Edit') +'</a>').click(function() {
+            $('.feature-module-name').parents('.form-item').show();
+            $('.feature-module-name-suffix').hide();
+            $('.feature-name').unbind('keyup');
+            return false;
+          })).append(']');
+        }
+        else {
+          $('.feature-module-name').val(machine);
+          $('.feature-module-name-suffix').text('');
+        }
+      });
+      $('.feature-name').keyup();
+    }
+  });
+};
+
+Drupal.features = {
+  'checkStatus': function() {
+    if ($('table.features').is('.loading')) {
+      return;
+    }
+    $('table.features tbody tr:not(.processed):first').addClass('processed').each(function() {
+      var uri = $(this).find('a.admin-check').attr('href'), elem = $(this);
+      if (uri) {
+        $('table.features').addClass('loading');
+        $.get(uri, [], function(data) {
+          $(elem).find('.admin-loading').hide();
+          switch (data.storage) {
+            case 3:
+              $(elem).find('.admin-rebuilding').show();
+              break;
+            case 2:
+              $(elem).find('.admin-needs-review').show();
+              break;
+            case 1:
+              $(elem).find('.admin-overridden').show();
+              break;
+            default:
+              $(elem).find('.admin-default').show();
+              break;
+          }
+          $('table.features').removeClass('loading');
+          Drupal.features.checkStatus();
+        }, 'json');
+      }
+      else {
+        Drupal.features.checkStatus();
+      }
+    });
+  }
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/features/features.module b/drupal/sites/default/boinc/modules/contrib/features/features.module
new file mode 100644
index 0000000..b5b5f68
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/features.module
@@ -0,0 +1,786 @@
+<?php
+
+/**
+ * @file
+ * Module file for the features module, which enables the capture and
+ * management of features in Drupal. A feature is a collection of Drupal
+ * entities which taken together statisfy a certain use-case.
+ */
+
+define('FEATURES_MODULE_ENABLED', 1);
+define('FEATURES_MODULE_DISABLED', 0);
+define('FEATURES_MODULE_MISSING', -1);
+
+define('FEATURES_REBUILDABLE', -1);
+define('FEATURES_DEFAULT', 0);
+define('FEATURES_OVERRIDDEN', 1);
+define('FEATURES_NEEDS_REVIEW', 2);
+define('FEATURES_REBUILDING', 3);
+define('FEATURES_CONFLICT', 4);
+define('FEATURES_DISABLED', 5);
+
+// Duration of rebuild semaphore: 10 minutes.
+define('FEATURES_SEMAPHORE_TIMEOUT', 10 * 60);
+
+/**
+ * Components with this 'default_file' flag will have exports written to the
+ * common defaults file 'MODULENAME.features.inc'. This is the default
+ * behavior.
+ */
+define('FEATURES_DEFAULTS_INCLUDED_COMMON', 0);
+
+/**
+ * Components with this 'default_file' flag will have exports written to a
+ * defaults based on the component name like 'MODULENAME.features.COMPONENT-NAME.inc'.
+ * Any callers to this component's defaults hook must call
+ * features_include_defaults('component') in order to include this file.
+ */
+define('FEATURES_DEFAULTS_INCLUDED', 1);
+
+/**
+ * Components with this 'default_file' flag must specify a filename for their
+ * exports. Additionally a stub will NOT be written to 'MODULENAME.features.inc'
+ * allowing the file to be included directly by the implementing module.
+ */
+define('FEATURES_DEFAULTS_CUSTOM', 2);
+
+/**
+ * Components with this 'duplicates' flag may not have multiple features provide the
+ * same component key in their info files. This is the default behavior.
+ */
+define('FEATURES_DUPLICATES_CONFLICT', 0);
+
+/**
+ * Components with this 'duplicates' flag are allowed to have multiple features
+ * provide the same component key in their info files.
+ */
+define('FEATURES_DUPLICATES_ALLOWED', 1);
+
+/**
+ * Implementation of hook_menu().
+ */
+function features_menu() {
+  $items = array();
+  $items['admin/build/features'] = array(
+    'title' => 'Features',
+    'description' => 'Manage features.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('features_admin_form'),
+    'type' => MENU_NORMAL_ITEM,
+    'file' => 'features.admin.inc',
+  );
+  $items['admin/build/features/cleanup'] = array(
+    'title' => 'Cleanup',
+    'description' => 'Detect and disable any orphaned feature dependencies.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('features_cleanup_form', 4),
+    'type' => MENU_CALLBACK,
+    'file' => 'features.admin.inc',
+    'weight' => 1,
+  );
+  $items['admin/build/features/manage'] = array(
+    'title' => 'Manage',
+    'description' => 'Enable and disable features.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('features_admin_form'),
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'file' => 'features.admin.inc',
+  );
+  $items['admin/build/features/create'] = array(
+    'title' => 'Create feature',
+    'description' => 'Create a new feature.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('features_export_form'),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer features'),
+    'type' => MENU_LOCAL_TASK,
+    'file' => "features.admin.inc",
+    'weight' => 10,
+  );
+  $items['admin/build/features/export/populate'] = array(
+    'title' => 'Populate feature',
+    'description' => 'AHAH callback to populate a feature from selected components.',
+    'page callback' => 'features_export_build_form_populate',
+    'page arguments' => array(),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer features'),
+    'type' => MENU_CALLBACK,
+    'file' => "features.admin.inc",
+  );
+  $items['admin/build/features/%feature'] = array(
+    'title callback' => 'features_get_feature_title',
+    'title arguments' => array(3),
+    'description' => 'Display components of a feature.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('features_admin_components', 3),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer features'),
+    'type' => MENU_CALLBACK,
+    'file' => 'features.admin.inc',
+  );
+  $items['admin/build/features/%feature/view'] = array(
+    'title' => 'View',
+    'description' => 'Display components of a feature.',
+    'access callback' => 'user_access',
+    'access arguments' => array('administer features'),
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  );
+  $items['admin/build/features/%feature/recreate'] = array(
+    'title' => 'Recreate',
+    'description' => 'Recreate an existing feature.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('features_export_form', 3),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer features'),
+    'type' => MENU_LOCAL_TASK,
+    'file' => "features.admin.inc",
+    'weight' => 11,
+  );
+  if (module_exists('diff')) {
+    $items['admin/build/features/%feature/diff'] = array(
+      'title' => 'Review overrides',
+      'description' => 'Compare default and current feature.',
+      'page callback' => 'features_feature_diff',
+      'page arguments' => array(3, 5),
+      'access callback' => 'features_access_override_actions',
+      'access arguments' => array(3),
+      'type' => MENU_LOCAL_TASK,
+      'file' => 'features.admin.inc',
+    );
+  }
+  $items['admin/build/features/%feature/status'] = array(
+    'title' => 'Status',
+    'description' => 'Javascript status call back.',
+    'page callback' => 'features_feature_status',
+    'page arguments' => array(3),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer features'),
+    'type' => MENU_CALLBACK,
+    'file' => 'features.admin.inc',
+  );
+  foreach ($items as $path => $item) {
+    if (!isset($item['access callback'])) {
+      $items[$path]['access callback'] = 'user_access';
+      $items[$path]['access arguments'] = array('manage features');
+    }
+  }
+  return $items;
+}
+
+/**
+ *  Implementation of hook_theme().
+ */
+function features_theme() {
+  $base = array(
+    'path' => drupal_get_path('module', 'features') .'/theme',
+    'file' => 'theme.inc',
+  );
+
+  $items = array();
+  $items['features_components'] =
+  $items['features_component_key'] =
+  $items['features_component_list'] =
+  $items['features_form_buttons'] =
+  $items['features_form_components'] =
+  $items['features_form_export'] =
+  $items['features_form_package'] =
+  $items['features_module_status'] =
+  $items['features_storage_link'] = $base;
+
+  $items['features_admin_components'] = array(
+    'arguments' => array('form' => NULL),
+    'template' => 'features-admin-components',
+  ) + $base;
+
+  $items['features_form'] = array(
+    'arguments' => array('form' => NULL),
+    'template' => 'features-form',
+  ) + $base;
+
+  return $items;
+}
+
+/**
+ * Implementation of hook_flush_caches().
+ */
+function features_flush_caches() {
+  features_rebuild();
+  features_get_modules(NULL, TRUE);
+  return array();
+}
+
+/**
+ * Implementation of hook_form().
+ */
+function features_form($node, $form_state) {
+  return node_content_form($node, $form_state);
+}
+
+/**
+ * Implemenation of hook_access()
+ */
+function features_access($op, $node, $account) {
+  return node_content_access($op, $node, $account);
+}
+
+/**
+ * Implementation of hook_perm().
+ */
+function features_perm() {
+  $perms = array('administer features', 'manage features');
+  // Generate permissions for any default node types provided by features.
+  foreach (node_get_types() as $type) {
+    if ($type->module == 'features') {
+      $name = check_plain($type->type);
+      $perms[] = 'create '. $name .' content';
+      $perms[] = 'delete own '. $name .' content';
+      $perms[] = 'delete any '. $name .' content';
+      $perms[] = 'edit own '. $name .' content';
+      $perms[] = 'edit any '. $name .' content';
+    }
+  }
+  return $perms;
+}
+
+/**
+ * Implementation of hook_help().
+ */
+function features_help($path, $arg) {
+  switch ($path) {
+    case 'admin/help#features':
+      $output = file_get_contents(drupal_get_path('module', 'features') .'/README.txt');
+      return module_exists('markdown') ? filter_xss_admin(module_invoke('markdown', 'filter', 'process', 0, -1, $output)) : '<pre>'. check_plain($output) .'</pre>';
+    case 'admin/build/features':
+      return '<p>'. t('A "Feature" is a certain type of Drupal module with contains a package of configuration that, when enabled, provides a new set of functionality for your Drupal site. Enable features by selecting the checkboxes below and clicking the Save configuration button. If the configuration of the feature has been changed its "State" will be either "overridden" or "needs review", otherwise it will be "default", indicating that the configuration has not been changed. Click on  [...]
+  }
+}
+
+/**
+ * Load includes for any modules that implement the features API and
+ * load includes for those provided by features.
+ */
+function features_include($reset = FALSE) {
+  static $once;
+  if (!isset($once) || $reset) {
+    $once = TRUE;
+
+    // Check for implementing modules and make necessary inclusions.
+    foreach (module_implements('features_api') as $module) {
+      $info = module_invoke($module, 'features_api');
+      foreach ($info as $component) {
+        if (isset($component['file'])) {
+          require_once $component['file'];
+        }
+      }
+    }
+
+    // Features provides integration on behalf of these modules.
+    // The features include provides handling for the feature dependencies.
+    // Note that ctools is placed last because it implements hooks "dynamically" for other modules.
+    $modules = array('features', 'block', 'content', 'context', 'fieldgroup', 'filter', 'imagecache', 'menu', 'node', 'taxonomy', 'user', 'views', 'ctools');
+
+    foreach (array_filter($modules, 'module_exists') as $module) {
+      if (!module_hook($module, 'features_api')) {
+        module_load_include('inc', 'features', "includes/features.$module");
+      }
+    }
+
+    // Clear static cache, since we've now included new implementers.
+    module_implements('features_api', FALSE, TRUE);
+  }
+}
+
+/**
+ * Load features includes for all components that require includes before
+ * collecting defaults.
+ */
+function features_include_defaults($components = NULL, $reset = FALSE) {
+  static $included = array();
+  static $include_components;
+
+  // Build an array of components that require inclusion:
+  // Views, CTools components and those using FEATURES_DEFAULTS_INCLUDED.
+  if (!isset($include_components) || $reset) {
+    $include_components = features_get_components();
+    foreach ($include_components as $component => $info) {
+      if ($component !== 'views' && !isset($info['api']) && (!isset($info['default_file']) || $info['default_file'] !== FEATURES_DEFAULTS_INCLUDED)) {
+        unset($include_components[$component]);
+      }
+    }
+  }
+
+  // If components are specified, only include for the specified components.
+  if (isset($components)) {
+    $components = is_array($components) ? $components : array($components);
+  }
+  // Use all include components if none are explicitly specified.
+  else {
+    $components = $include_components;
+  }
+  foreach ($components as $component) {
+    if (isset($include_components[$component]) && (!isset($included[$component]) || $reset)) {
+      $info = $include_components[$component];
+      // Inclusion of defaults for Views.
+      if ($component === 'views') {
+        views_include('view');
+        views_include_default_views();
+      }
+      // Inclusion of defaults for CTools.
+      else if (isset($info['api'], $info['module'], $info['current_version'])) {
+        ctools_include('plugins');
+        ctools_plugin_api_include($info['module'], $info['api'], $info['current_version'], $info['current_version']);
+      }
+      // Inclusion of defaults for components using FEATURES_DEFAULTS_INCLUDED.
+      else {
+        $features = isset($features) ? $features : features_get_features(NULL, $reset);
+        foreach ($features as $feature) {
+          module_load_include('inc', $feature->name, "{$feature->name}.features.{$component}");
+        }
+      }
+      $included[$component] = TRUE;
+    }
+  }
+}
+
+/**
+ * Feature object loader.
+ */
+function feature_load($name, $reset = FALSE) {
+  return features_get_features($name, $reset);
+}
+
+/**
+ * Return a module 'object' including .info information.
+ *
+ * @param $name
+ *   The name of the module to retrieve information for. If ommitted,
+ *   an array of all available modules will be returned.
+ * @param $reset
+ *   Whether to reset the cache.
+ *
+ * @return
+ *   If a module is request (and exists) a module object is returned. If no
+ *   module is requested info for all modules is returned.
+ */
+function features_get_modules($name = NULL, $reset = FALSE) {
+  return features_get_info('module', $name, $reset);
+}
+
+/**
+ * Returns the array of supported components.
+ *
+ * @param $feature_source
+ *   If set to to TRUE return feature sources only.
+ * @return An array of component labels keyed by the component names.
+ */
+function features_get_components($feature_source = FALSE, $reset = FALSE) {
+  features_include();
+  static $components_all;
+  static $components_source;
+  if (!isset($components_all) || $reset) {
+    $components_all = $components_source = array();
+    foreach (module_implements('features_api') as $module) {
+      $info = module_invoke($module, 'features_api');
+      foreach ($info as $k => $v) {
+        $components_all[$k] = $v;
+        if (!empty($v['feature_source'])) {
+          $components_source[$k] = $v;
+        }
+      }
+    }
+  }
+  return $feature_source ? $components_source : $components_all;
+}
+
+/**
+ * Invoke a component callback.
+ */
+function features_invoke($component, $callback) {
+  $args = func_get_args();
+  unset($args[0], $args[1]);
+  // Append the component name to the arguments.
+  $args[] = $component;
+  if ($function = features_hook($component, $callback)) {
+    return call_user_func_array($function, $args);
+  }
+}
+
+/**
+ * Checks whether a component implements the given hook.
+ *
+ * @return
+ *   The function implementing the hook, or FALSE.
+ */
+function features_hook($component, $hook, $reset = FALSE) {
+  static $info;
+
+  if (!isset($info) || $reset) {
+    $info = module_invoke_all('features_api');
+  }
+  // Determine the function callback base.
+  $base = isset($info[$component]['base']) ? $info[$component]['base'] : $component;
+  return function_exists($base . '_' . $hook) ? $base . '_' . $hook : FALSE;
+}
+
+/**
+ * Enables and installs an array of modules, ignoring those
+ * already enabled & installed. Consider this a helper or
+ * extension to drupal_install_modules().
+ *
+ * @param $modules
+ *   An array of modules to install.
+ * @param $reset
+ *   Clear the module info cache.
+ */
+function features_install_modules($modules) {
+  module_load_include('inc', 'features', 'features.export');
+  $files = module_rebuild_cache();
+
+  // Build maximal list of dependencies.
+  $install = array();
+  foreach ($modules as $name) {
+    if ($file = $files[$name]) {
+      $install[] = $name;
+      if (!empty($file->info['dependencies'])) {
+        $install = array_merge($install, _features_export_maximize_dependencies($file->info['dependencies']));
+      }
+    }
+  }
+
+  // Filter out enabled modules.
+  $enabled = array_filter($install, 'module_exists');
+  $install = array_diff($install, $enabled);
+
+  if (!empty($install)) {
+    // Make sure the install API is available.
+    $install = array_unique($install);
+    include_once './includes/install.inc';
+    drupal_install_modules($install);
+  }
+}
+
+/**
+ * Wrapper around features_get_info() that returns an array
+ * of module info objects that are features.
+ */
+function features_get_features($name = NULL, $reset = FALSE) {
+  return features_get_info('feature', $name, $reset);
+}
+
+/**
+ * Helper for retrieving info from system table.
+ */
+function features_get_info($type = 'module', $name = NULL, $reset = FALSE) {
+  static $cache;
+  if (!isset($cache)) {
+    $cache = cache_get('features_module_info');
+  }
+  if (empty($cache) || $reset) {
+    $data = array();
+    $ignored = variable_get('features_ignored_orphans', array());
+    $result = db_query("SELECT filename, name, type, status, throttle, schema_version FROM {system} WHERE type = 'module' ORDER BY name ASC");
+    while ($row = db_fetch_object($result)) {
+      // If module is no longer enabled, remove it from the ignored orphans list.
+      if (in_array($row->name, $ignored, TRUE) && !$row->status) {
+        $key = array_search($row->name, $ignored, TRUE);
+        unset($ignored[$key]);
+      }
+
+      // Parse and allow modules to alter the info file if necessary.
+      $row->info = drupal_parse_info_file(dirname($row->filename) .'/'. $row->name .'.info');
+      if (!empty($row->info)) {
+        drupal_alter('system_info', $row->info, $row);
+        if (!empty($row->info['features'])) {
+          $data['feature'][$row->name] = $row;
+        }
+        $data['module'][$row->name] = $row;
+      }
+    }
+    variable_set('features_ignored_orphans', $ignored);
+    cache_set("features_module_info", $data);
+    $cache = new stdClass();
+    $cache->data = $data;
+  }
+  if (!empty($name)) {
+    return !empty($cache->data[$type][$name]) ? $cache->data[$type][$name] : FALSE;
+  }
+  return !empty($cache->data[$type]) ? $cache->data[$type] : array();
+}
+
+/**
+ * Generate an array of feature dependencies that have been orphaned.
+ */
+function features_get_orphans($reset = FALSE) {
+  static $orphans;
+  if (!isset($orphans) || $reset) {
+    module_load_include('inc', 'features', 'features.export');
+    $orphans = array();
+
+    // Build a list of all dependencies for enabled and disabled features.
+    $dependencies = array('enabled' => array(), 'disabled' => array());
+    $features = features_get_features();
+    foreach ($features as $feature) {
+      $key = module_exists($feature->name) ? 'enabled' : 'disabled';
+      if (!empty($feature->info['dependencies'])) {
+        $dependencies[$key] = array_merge($dependencies[$key], _features_export_maximize_dependencies($feature->info['dependencies']));
+      }
+    }
+    $dependencies['enabled'] = array_unique($dependencies['enabled']);
+    $dependencies['disabled'] = array_unique($dependencies['disabled']);
+
+    // Find the list of orphaned modules.
+    $orphaned = array_diff($dependencies['disabled'], $dependencies['enabled']);
+    $orphaned = array_intersect($orphaned, module_list(FALSE, FALSE));
+    $orphaned = array_diff($orphaned, drupal_required_modules());
+    $orphaned = array_diff($orphaned, array('features'));
+
+    // Build final list of modules that can be disabled.
+    $modules = features_get_modules(NULL, TRUE);
+    $enabled = module_list();
+    _module_build_dependencies($modules);
+
+    foreach ($orphaned as $module) {
+      if (!empty($modules[$module]->info['dependents'])) {
+        // Determine whether any dependents are actually enabled.
+        $dependents = array_intersect($modules[$module]->info['dependents'], $enabled);
+        if (empty($dependents)) {
+          $info = features_get_modules($module);
+          $orphans[$module] = $info;
+        }
+      }
+    }
+  }
+  return $orphans;
+}
+
+/**
+ * Detect potential conflicts between any features that provide
+ * identical components.
+ */
+function features_get_conflicts($reset = FALSE) {
+  $conflicts = array();
+  $component_info = features_get_components();
+  $map = features_get_component_map(NULL, $reset);
+
+  foreach ($map as $type => $components) {
+    // Only check conflicts for components we know about.
+    if (isset($component_info[$type])) {
+      foreach ($components as $component => $modules) {
+        if (isset($component_info[$type]['duplicates']) && $component_info[$type]['duplicates'] == FEATURES_DUPLICATES_ALLOWED) {
+          continue;
+        }
+        else if (count($modules) > 1) {
+          foreach ($modules as $module) {
+            if (!isset($conflicts[$module])) {
+              $conflicts[$module] = array();
+            }
+            foreach ($modules as $m) {
+              if ($m != $module) {
+                $conflicts[$module][$m][$type][] = $component;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+
+  return $conflicts;
+}
+
+/**
+ * Provide a component to feature map.
+ */
+function features_get_component_map($key = NULL, $reset = FALSE) {
+  static $map;
+  if (!isset($map) || $reset) {
+    $map = array();
+    $features = features_get_features(NULL, $reset);
+    foreach ($features as $feature) {
+      foreach ($feature->info['features'] as $type => $components) {
+        if (!isset($map[$type])) {
+          $map[$type] = array();
+        }
+        foreach ($components as $component) {
+          $map[$type][$component][] = $feature->name;
+        }
+      }
+    }
+  }
+  if (isset($key)) {
+    return isset($map[$key]) ? $map[$key] : array();
+  }
+  return $map;
+}
+
+/**
+ * Simple wrapper returns the status of a module.
+ */
+function features_get_module_status($module) {
+  if (module_exists($module)) {
+    return FEATURES_MODULE_ENABLED;
+  }
+  else if (features_get_modules($module)) {
+    return FEATURES_MODULE_DISABLED;
+  }
+  else {
+    return FEATURES_MODULE_MISSING;
+  }
+}
+
+/**
+ * Menu title callback.
+ */
+function features_get_feature_title($feature) {
+  return $feature->info['name'];
+}
+
+/**
+ * Menu access callback for whether a user should be able to access
+ * override actions for a given feature.
+ */
+function features_access_override_actions($feature) {
+  if (user_access('administer features')) {
+    static $access = array();
+    if (!isset($access[$feature->name])) {
+      // Set a value first. We may get called again from within features_detect_overrides().
+      $access[$feature->name] = FALSE;
+
+      features_include();
+      module_load_include('inc', 'features', 'features.export');
+      $access[$feature->name] = in_array(features_get_storage($feature->name), array(FEATURES_OVERRIDDEN, FEATURES_NEEDS_REVIEW)) && user_access('administer features');
+    }
+    return $access[$feature->name];
+  }
+  return FALSE;
+}
+
+/**
+ * Implementation of hook_form_alter() for system_modules form.
+ */
+function features_form_system_modules_alter(&$form) {
+  features_rebuild();
+}
+
+/**
+ * Restore the specified modules to the default state.
+ */
+function _features_restore($op, $items = array()) {
+  // Since we can't ensure that users will run update.php immediately after
+  // updating the features codebase, we must check the schema version explicitly
+  // to ensure that we will not blow away any overrides.
+  module_load_install('features');
+  if (drupal_get_installed_schema_version('features', TRUE) < 6101) {
+    return;
+  }
+
+  module_load_include('inc', 'features', 'features.export');
+  features_include();
+
+  switch ($op) {
+    case 'revert':
+      $restore_states = array(FEATURES_OVERRIDDEN, FEATURES_REBUILDABLE, FEATURES_NEEDS_REVIEW);
+      $restore_hook = 'features_revert';
+      $log_action = 'Revert';
+      break;
+    case 'rebuild':
+      $restore_states = array(FEATURES_REBUILDABLE);
+      $restore_hook = 'features_rebuild';
+      $log_action = 'Rebuild';
+      break;
+  }
+
+  if (empty($items)) {
+    $states = features_get_component_states();
+    foreach ($states as $module_name => $components) {
+      foreach ($components as $component => $state) {
+        if (in_array($state, $restore_states)) {
+          $items[$module_name][] = $component;
+        }
+      }
+    }
+  }
+
+  foreach ($items as $module_name => $components) {
+    foreach ($components as $component) {
+      if (features_hook($component, $restore_hook)) {
+        // Set a semaphore to prevent other instances of the same script from running concurrently.
+        watchdog('features', '@actioning @module_name / @component.', array('@action' => $log_action, '@component' => $component, '@module_name' => $module_name));
+        features_semaphore('set', $component);
+        features_invoke($component, $restore_hook, $module_name);
+
+        // If the script completes, remove the semaphore and set the code signature.
+        features_semaphore('del', $component);
+        features_set_signature($module_name, $component);
+        watchdog('features', '@action completed for @module_name / @component.', array('@action' => $log_action, '@component' => $component, '@module_name' => $module_name));
+      }
+    }
+  }
+}
+
+/**
+ * Wrapper around _features_restore().
+ */
+function features_revert($revert = array()) {
+  return _features_restore('revert', $revert);
+}
+
+/**
+ * Wrapper around _features_restore().
+ */
+function features_rebuild($rebuild = array()) {
+  return _features_restore('rebuild', $rebuild);
+}
+
+/**
+ * Utility functions ==================================================
+ */
+
+/**
+ * Represent the current state of permissions as a role name to role/perm array.
+ */
+function _features_get_roles() {
+  $roles = array();
+  $result = db_query("SELECT r.rid, r.name, p.perm FROM {role} r LEFT JOIN {permission} p ON r.rid = p.rid ORDER BY r.name");
+  while ($row = db_fetch_object($result)) {
+    $roles[$row->name] = array(
+      'rid' => $row->rid,
+      'perm' => explode(', ', $row->perm),
+    );
+  }
+  return $roles;
+}
+
+/**
+ * Log a message, environment agnostic.
+ *
+ * @param $message
+ *   The message to log.
+ * @param $severity
+ *   The severity of the message: status, warning or error.
+ */
+function features_log($message, $severity = 'status') {
+  if (function_exists('drush_verify_cli')) {
+    $message = strip_tags($message);
+    if ($severity == 'status') {
+      $severity = 'ok';
+    }
+    elseif ($severity == 'error') {
+      drush_set_error($message);
+      return;
+    }
+    drush_log($message, $severity);
+    return;
+  }
+  drupal_set_message($message, $severity, FALSE);
+}
+
+/**
+ * Targeted form_alter for vocabulary edit pages.
+ */
+function features_form_taxonomy_form_vocabulary_alter(&$form, &$form_state) {
+  module_load_include('inc', 'features', "includes/features.taxonomy");
+  _features_form_taxonomy_form_vocabulary_alter($form, $form_state);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.block.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.block.inc
new file mode 100644
index 0000000..9a168b9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.block.inc
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function block_features_api() {
+  return array();
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function block_features_export($data, &$export) {
+  $pipe = array();
+  foreach ($data as $bid) {
+    $split = explode('-', $bid);
+    $module = array_shift($split);
+    $delta = implode('-', $split);
+
+    $export['dependencies'][$module] = $module;
+
+    switch ($module) {
+      case 'views':
+        if (strlen($delta) == 32) {
+          $hashes = variable_get('views_block_hashes', array());
+          if (!empty($hashes[$delta])) {
+            $delta = $hashes[$delta];
+          }
+        }
+
+        $delta_split = explode('-', $delta);
+        $view_name = $delta_split[0];
+        if (!empty($view_name)) {
+          $pipe['views'][] = $view_name;
+        }
+        break;
+    }
+  }
+  return $pipe;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.content.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.content.inc
new file mode 100644
index 0000000..e1a1cda
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.content.inc
@@ -0,0 +1,212 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function content_features_api() {
+  return array(
+    'content' => array(
+      'name' => t('CCK'),
+      'default_hook' => 'content_default_fields',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+      'feature_source' => TRUE,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function content_features_export_options() {
+  $options = array();
+  foreach (node_get_types('names') as $type => $type_name) {
+    $content_info = content_types($type);
+    if (!empty($content_info['fields'])) {
+      foreach ($content_info['fields'] as $field) {
+        $field_name = isset($field['widget']['label']) ? $field['widget']['label'] : $field['field_name'];
+        $options[content_features_identifier($field)] = "{$type_name}: {$field_name}";
+      }
+    }
+  }
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function content_features_export($data, &$export, $module_name = '') {
+  features_include_defaults('content');
+  $pipe = array();
+
+  // The content_default_fields() hook integration is provided by the
+  // features module so we need to add it as a dependency.
+  $export['dependencies']['features'] = 'features';
+
+  // Collect a field to module map
+  $map = features_get_default_map('content', NULL, 'content_features_identifier');
+  foreach ($data as $instance) {
+    // If this field is already provided by another module remove the field.
+    // We do not add the other module as a dependency as the field-providing
+    // module may be extending the content type in question.
+    if (isset($map[$instance]) && $map[$instance] != $module_name) {
+      if (isset($export['features']['content'][$instance])) {
+        unset($export['features']['content'][$instance]);
+      }
+    }
+    // If the field has not yet been exported, add it
+    else {
+      $split = explode('-', $instance);
+      $type_name = $split[0];
+      $field_name = $split[1];
+      $field = content_fields($field_name, $type_name);
+
+      if (!empty($field)) {
+        // Add field item instance for later export.
+        $export['features']['content'][$instance] = $instance;
+
+        // Add module which provides field.
+        $export['dependencies'][$field['module']] = $field['module'];
+
+        // Add module which provides field widget.
+        $export['dependencies'][$field['widget']['module']] = $field['widget']['module'];
+
+        // Add modules which provide display.
+        foreach (array('teaser', 'full') as $display) {
+          $formatter = _content_get_formatter($field['display_settings'][$display]['format'], $field['type']);
+          $export['dependencies'][$formatter['module']] = $formatter['module'];
+
+          // TODO make this logic more generic, for now though we just handle
+          // the imagecache presets.
+          if ($formatter['module'] == 'imagecache') {
+            $format = $field['display_settings'][$display]['format'];
+
+            $parts = explode('_', $format);
+            $style = array_pop($parts);
+            $presetname = implode('_', $parts);
+
+            $pipe[$formatter['module']][] = $presetname;
+          }
+        }
+      }
+    }
+  }
+
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function content_features_export_render($module, $data) {
+  $translatables = $code = array();
+
+  $code[] = '  $fields = array();';
+  $code[] = '';
+  foreach ($data as $instance) {
+    $instance = explode('-', $instance);
+    $type_name = $instance[0];
+    $field_name = $instance[1];
+    if ($field = content_fields($field_name, $type_name)) {
+      unset($field['columns']);
+      unset($field['locked']);
+      unset($field['db_storage']);
+      $field_identifier = features_var_export(content_features_identifier($field));
+      $field_export = features_var_export($field, '  ');
+
+      $code[] = "  // Exported field: {$field_name}";
+      $code[] = "  \$fields[{$field_identifier}] = {$field_export};";
+      $code[] = "";
+
+      // Add any labels to translatables array.
+      if (!empty($field['widget']['label'])) {
+        $translatables[] = $field['widget']['label'];
+      }
+    }
+  }
+  if (!empty($translatables)) {
+    $code[] = features_translatables_export($translatables, '  ');
+  }
+  $code[] = '  return $fields;';
+  $code = implode("\n", $code);
+  return array('content_default_fields' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function content_features_revert($module) {
+  content_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ * Rebuilds CCK field definitions from code defaults.
+ */
+function content_features_rebuild($module) {
+  if ($fields = features_get_default('content', $module)) {
+    module_load_include('inc', 'content', 'includes/content.crud');
+    content_clear_type_cache(TRUE);
+
+    foreach ($fields as $field) {
+      // We use content_field_instance_read() here so that we can get inactive 
+      // fields too. We can't just pass $field to it as the fnc will add every
+      // item of the array to the WHERE clause.
+      $param = array('field_name' => $field['field_name'], 'type_name' => $field['type_name']);
+      $existing_instance = array_shift(content_field_instance_read($param, TRUE));
+
+      if (!empty($existing_instance)) {
+        // If this existing instance is inactive, we need to activate it before
+        // running content_field_instance_update().
+        if (empty($existing_instance['widget_active'])) {
+          db_query("UPDATE {". content_instance_tablename() ."} SET widget_active = 1 WHERE field_name = '%s' AND type_name = '%s'", $field['field_name'], $field['type_name']);
+          // We need to clear the type cache again, unfortunately.
+          content_clear_type_cache(TRUE);
+        }
+
+        content_field_instance_update($field, FALSE);
+      }
+      else {
+        // Summary: content_field_instance_create() will fall back to prior
+        // instance values for weight, label, desc if not set. 
+        // See http://drupal.org/node/686240#comment-2786162
+        $field['weight'] = $field['widget']['weight'];
+        $field['label'] = $field['widget']['label'];
+        $field['description'] = $field['widget']['description'];
+        content_field_instance_create($field, FALSE);
+      }
+      variable_set('menu_rebuild_needed', TRUE);
+    }
+  }
+}
+
+/**
+ * Callback for generating the field exportable identifier for a field.
+ */
+function content_features_identifier($field) {
+  return isset($field['type_name'], $field['field_name']) ? "{$field['type_name']}-{$field['field_name']}" : FALSE;
+}
+
+/**
+ * Helper function: retrieve default fields by node type.
+ */
+function content_features_fields_default($node_type, $reset = FALSE) {
+  static $content_default_fields;
+  if (!isset($content_default_fields) || $reset) {
+    foreach (features_get_default('content') as $field) {
+      $content_default_fields[$field['type_name']][] = $field['field_name'];
+    }
+  }
+  return isset($content_default_fields[$node_type]) ? $content_default_fields[$node_type] : array();
+}
+
+/**
+ * Helper function: retrieve normal fields by node type.
+ */
+function content_features_fields_normal($node_type) {
+  $normal_fields = array();
+  $content_info = content_types($node_type);
+  if (!empty($content_info['fields'])) {
+    $normal_fields = array_keys($content_info['fields']);
+  }
+  return $normal_fields;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.context.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.context.inc
new file mode 100644
index 0000000..ba9d45f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.context.inc
@@ -0,0 +1,231 @@
+<?php
+
+/**
+ * Determine context major branch version.
+ */
+function context_features_get_version() {
+  if (function_exists('context_context_plugins')) {
+    return 3;
+  }
+  return 2;
+}
+
+/**
+ * Implementation of hook_features_api().
+ */
+function context_features_api() {
+  $api = array('context' => array());
+  // 3.x
+  if (context_features_get_version() === 3) {
+    $api['context'] = array(
+      'api' => 'context',
+      'current_version' => 3,
+      'module' => 'context',
+      'default_file' => FEATURES_DEFAULTS_CUSTOM,
+      'default_filename' => 'context',
+    );
+  }
+  // 2.x
+  $api['context'] += array(
+    'name' => 'Contexts',
+    'feature_source' => TRUE,
+    'default_hook' => 'context_default_contexts'
+  );
+  return $api;
+}
+
+/**
+ * Implementation of hook_features_export_options();
+ */
+function context_features_export_options() {
+  // 3.x
+  if (context_features_get_version() === 3) {
+    return ctools_component_features_export_options('context');
+  }
+  // 2.x
+  $contexts = context_enabled_contexts();
+  $options = array();
+  foreach ($contexts as $identifier => $context) {
+    $options[$identifier] = "{$context->namespace} > {$context->attribute} > {$context->value}";
+  }
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function context_features_export($data, &$export, $module_name = '') {
+  // 3.x
+  if (context_features_get_version() === 3) {
+    $pipe = ctools_component_features_export('context', $data, $export, $module_name);
+
+    $contexts = context_load();
+    foreach ($data as $identifier) {
+      if (isset($contexts[$identifier])) {
+        $context = $contexts[$identifier];
+        // Conditions.
+        // Currently only node and views conditions are supported.
+        // @TODO: Should this be delegated to a method on the plugin?
+        foreach (array('node', 'views') as $key) {
+          if (!empty($context->conditions{$key}['values'])) {
+            foreach ($context->conditions{$key}['values'] as $item) {
+              // Special pipe for views
+              if ($key === 'views') {
+                $split = explode(':', $item);
+                $view_name = array_shift($split);
+                $pipe[$key][$view_name] = $view_name;
+              }
+              else {
+                $pipe[$key][$item] = $item;
+              }
+            }
+          }
+        }
+        // Reactions.
+        if (!empty($context->reactions['block']['blocks'])) {
+          foreach ($context->reactions['block']['blocks'] as $block) {
+            $block = (array) $block;
+            $bid = "{$block['module']}-{$block['delta']}";
+            $pipe['block'][$bid] = $bid;
+          }
+        }
+      }
+    }
+    return $pipe;
+  }
+
+  // 2.x
+  $export['dependencies']['context'] = 'context';
+
+  // Collect a context to module map
+  $map = features_get_default_map('context', NULL, 'context_features_identifier_2');
+  $pipe = array();
+  $contexts = context_enabled_contexts();
+  foreach ($data as $identifier) {
+    // If this context is already provided by another module, add it
+    // as a dependency and prevent it from becoming a duplicate export.
+    if (isset($map[$identifier]) && $map[$identifier] != $module_name) {
+      if (isset($export['features']['context'][$identifier])) {
+        unset($export['features']['context'][$identifier]);
+      }
+      $module = $map[$identifier];
+      $export['dependencies'][$module] = $module;
+    }
+    // Otherwise, export it.
+    else if (!empty($contexts[$identifier])) {
+      $export['features']['context'][$identifier] = $identifier;
+
+      $context = $contexts[$identifier];
+
+      foreach (array('node', 'menu') as $key) {
+        if (!empty($context->{$key})) {
+          if (is_array($context->{$key})) {
+            foreach ($context->{$key} as $item) {
+              $pipe[$key][$item] = $item;
+            }
+          }
+          else {
+            $item = $context->{$key};
+            $pipe[$key][$item] = $item;
+          }
+        }
+      }
+
+      // Special pipe for views
+      if (!empty($context->views) && is_array($context->views)) {
+        foreach ($context->views as $view_name) {
+          $split = explode(':', $view_name);
+          $view_name = array_shift($split);
+          $pipe['views'][$view_name] = $view_name;
+        }
+      }
+
+      // Special pipe for blocks
+      if (!empty($context->block)) {
+        foreach ($context->block as $block) {
+          $block = (array) $block;
+          $bid = "{$block['module']}-{$block['delta']}";
+          $pipe['block'][$bid] = $bid;
+        }
+      }
+    }
+  }
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function context_features_export_render($module, $data) {
+  // 3.x
+  if (context_features_get_version() === 3) {
+    return ctools_component_features_export_render('context', $module, $data);
+  }
+  // 2.x
+  $code = array();
+  $code[] = '  $items = array();';
+  $code[] = '';
+
+  foreach ($data as $identifier) {
+    $contexts = context_enabled_contexts();
+    $context = $contexts[$identifier];
+
+    // prune system specific information and cast for Drupal's AOP (array oriented programming)
+    $prune = array('cid', 'status', 'system', 'type');
+    foreach ($prune as $key) {
+      if (isset($context->{$key})) {
+        unset($context->{$key});
+      }
+    }
+    $context = (array) $context;
+
+    // clean up blocks
+    if (!empty($context['block'])) {
+      foreach ($context['block'] as $bid => $block) {
+        unset($block->bid);
+        $context['block'][$bid] = (array) $block;
+      }
+    }
+
+    $context_identifier = context_var_export($identifier);
+    $context_export = context_var_export($context, '  ');
+    $code[] = "  \$items[{$context_identifier}] = {$context_export};";
+  }
+
+  $code[] = '  return $items;';
+  $code = implode("\n", $code);
+  return array('context_default_contexts' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ *
+ * @param $module
+ * name of module to revert content for
+ */
+function context_features_revert($module = NULL) {
+  // 3.x
+  if (context_features_get_version() === 3) {
+    $return = ctools_component_features_revert('context', $module);
+    context_invalidate_cache();
+    return $return;
+  }
+  // 2.x
+  if ($default_contexts = features_get_default('context', $module)) {
+    foreach($default_contexts as $default_context) {
+      $current_context = new StdClass();
+      $current_context->namespace = $default_context['namespace'];
+      $current_context->attribute = $default_context['attribute'];  
+      $current_context->value = $default_context['value'];
+      $context_to_delete = context_load_context($current_context);
+      context_delete_context($context_to_delete);
+    }
+  }
+}
+
+/**
+ * 2.x: Callback for generating the context exportable identifier.
+ */
+function context_features_identifier_2($object) {
+  return isset($object->namespace, $object->attribute, $object->value) ? "{$object->namespace}-{$object->attribute}-{$object->value}" : FALSE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.ctools.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.ctools.inc
new file mode 100644
index 0000000..83a59b4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.ctools.inc
@@ -0,0 +1,320 @@
+<?php
+
+/**
+ * This is a wild hack, but effective.
+ * Dynamically declare functions under a ctools component's namespace if they are not already declared.
+ */
+foreach (_ctools_features_get_info() as $component => $info) {
+  $code = '';
+  if (!function_exists("{$info['module']}_features_api")) {
+    $code .= 'function '. $info['module'] .'_features_api() { return ctools_component_features_api("'. $info['module'] .'"); }';
+  }
+  if (!function_exists("{$component}_features_export")) {
+    $code .= 'function '. $component .'_features_export($data, &$export, $module_name = "") { return ctools_component_features_export("'. $component .'", $data, $export, $module_name); }';
+  }
+  if (!function_exists("{$component}_features_export_options")) {
+    $code .= 'function '. $component .'_features_export_options() { return ctools_component_features_export_options("'. $component .'"); }';
+  }
+  if (!function_exists("{$component}_features_export_render")) {
+    $code .= 'function '. $component .'_features_export_render($module, $data) { return ctools_component_features_export_render("'. $component .'", $module, $data); }';
+  }
+  if (!function_exists("{$component}_features_revert")) {
+    $code .= 'function '. $component .'_features_revert($module) { return ctools_component_features_revert("'. $component .'", $module); }';
+  }
+  eval($code);
+}
+
+/**
+ * Implementation of hook_features_api().
+ */
+function ctools_features_api() {
+  return array(
+    'ctools' => array(
+      'name' => 'CTools export API',
+      'feature_source' => TRUE,
+      'duplicates' => FEATURES_DUPLICATES_ALLOWED,
+      // CTools API integration does not include a default hook declaration as
+      // it is not a proper default hook.
+      // 'default_hook' => 'ctools_plugin_api',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export().
+ * Adds references to the ctools mothership hook, ctools_plugin_api().
+ */
+function ctools_features_export($data, &$export, $module_name = '') {
+  // Add ctools dependency
+  $export['dependencies']['ctools'] = 'ctools';
+
+  // Add the actual ctools components which will need to be accounted for in
+  // hook_ctools_plugin_api(). The components are actually identified by a
+  // delimited list of values: `module_name:api:current_version`
+  foreach ($data as $component) {
+    if ($info = _ctools_features_get_info($component)) {
+      $identifier = "{$info['module']}:{$info['api']}:{$info['current_version']}";
+      $export['features']['ctools'][$identifier] = $identifier;
+    }
+  }
+
+  return array();
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ * Adds the ctools mothership hook, ctools_plugin_api().
+ */
+function ctools_features_export_render($module, $data) {
+  $code = array();
+  $code[] = '  list($module, $api) = func_get_args();';
+
+  $first = TRUE;
+  foreach ($data as $component) {
+    if ($info = _ctools_features_get_info($component)) {
+      $if = $first ? 'if' : 'elseif';
+      $code[] = '  '. $if .' ($module == "'. $info['module'] .'" && $api == "'. $info['api'] .'") {';
+      $code[] = '    return array("version" => '. $info['current_version'] .');';
+      $code[] = '  }';
+
+      $first = FALSE;
+    }
+  }
+  return array('ctools_plugin_api' => implode("\n", $code));
+}
+
+/**
+ * Master implementation of hook_features_api() for all ctools components.
+ *
+ * Note that this master hook does not use $component like the others, but uses the
+ * component module's namespace instead.
+ */
+function ctools_component_features_api($module_name) {
+  $api = array();
+  foreach (_ctools_features_get_info() as $component => $info) {
+    if ($info['module'] === $module_name) {
+      $api[$component] = $info;
+    }
+  }
+  return $api;
+}
+
+/**
+ * Master implementation of hook_features_export_options() for all ctools components.
+ */
+function ctools_component_features_export_options($component) {
+  $options = array();
+
+  ctools_include('export');
+  $schema = ctools_export_get_schema($component);
+  if ($schema && $schema['export']['bulk export']) {
+    if (!empty($schema['export']['list callback']) && function_exists($schema['export']['list callback'])) {
+      $options = $schema['export']['list callback']();
+    }
+    else {
+      $options = _ctools_features_export_default_list($component, $schema);
+    }
+  }
+  asort($options);
+  return $options;
+}
+
+/**
+ * Master implementation of hook_features_export() for all ctools components.
+ */
+function ctools_component_features_export($component, $data, &$export, $module_name = '') {
+  // Add the actual implementing module as a dependency
+  $info = _ctools_features_get_info();
+  if ($module_name !== $info[$component]['module']) {
+    $export['dependencies'][$info[$component]['module']] = $info[$component]['module'];
+  }
+
+  // Add the components
+  foreach ($data as $object_name) {
+    if ($object = _ctools_features_export_crud_load($component, $object_name)) {
+      // If this object is provided as a default by a different module, don't
+      // export and add that module as a dependency instead.
+      if (!empty($object->export_module) && $object->export_module !== $module_name) {
+        $export['dependencies'][$object->export_module] = $object->export_module;
+        if (isset($export['features'][$component][$object_name])) {
+          unset($export['features'][$component][$object_name]);
+        }
+      }
+      // Otherwise, add the component.
+      else {
+        $export['features'][$component][$object_name] = $object_name;
+      }
+    }
+  }
+
+  // Let CTools handle API integration for this component.
+  return array('ctools' => array($component));
+}
+
+/**
+ * Master implementation of hook_features_export_render() for all ctools components.
+ */
+function ctools_component_features_export_render($component, $module, $data) {
+  ctools_include('export');
+  $schema = ctools_export_get_schema($component);
+
+  if (function_exists($schema['export']['to hook code callback'])) {
+    $export = $schema['export']['to hook code callback']($data, $module);
+    $code = explode("{\n", $export);
+    array_shift($code);
+    $code = explode('}', implode($code, "{\n"));
+    array_pop($code);
+    $code = implode('}', $code);
+  }
+  else {
+    $code = '  $export = array();'."\n\n";
+    foreach ($data as $object_name) {
+      if ($object = _ctools_features_export_crud_load($component, $object_name)) {
+        $identifier = $schema['export']['identifier'];
+        $code .= _ctools_features_export_crud_export($component, $object, '  ');
+        $code .= "  \$export[" . ctools_var_export($object_name) . "] = \${$identifier};\n\n";
+      }
+    }
+    $code .= '  return $export;';
+  }
+
+  return array($schema['export']['default hook'] => $code);
+}
+
+/**
+ * Master implementation of hook_features_revert() for all ctools components.
+ */
+function ctools_component_features_revert($component, $module) {
+  if ($objects = features_get_default($component, $module)) {
+    foreach ($objects as $object) {
+      _ctools_features_export_crud_delete($component, $object);
+    }
+  }
+}
+
+/**
+ * Helper function to return various ctools information for components.
+ */
+function _ctools_features_get_info($identifier = NULL, $reset = FALSE) {
+  static $components;
+  if (!isset($components) || $reset) {
+    $components = array();
+    $modules = features_get_info();
+    ctools_include('export');
+    foreach (ctools_export_get_schemas_by_module() as $module => $schemas) {
+      foreach ($schemas as $table => $schema) {
+        if ($schema['export']['bulk export']) {
+          // Let the API owner take precedence as the owning module.
+          $api_module = isset($schema['export']['api']['owner']) ? $schema['export']['api']['owner'] : $module;
+          $components[$table] = array(
+            'name' => isset($modules[$api_module]->info['name']) ? $modules[$api_module]->info['name'] : $api_module,
+            'default_hook' => $schema['export']['default hook'],
+            'default_file' => FEATURES_DEFAULTS_CUSTOM,
+            'module' => $api_module,
+            'feature_source' => TRUE,
+          );
+          if (isset($schema['export']['api'])) {
+            $components[$table] += array(
+              'api' => $schema['export']['api']['api'],
+              'default_filename' => $schema['export']['api']['api'],
+              'current_version' => $schema['export']['api']['current_version'],
+            );
+          }
+        }
+      }
+    }
+  }
+
+  // Return information specific to a particular component.
+  if (isset($identifier)) {
+    // Identified by the table name.
+    if (isset($components[$identifier])) {
+      return $components[$identifier];
+    }
+    // New API identifier. Allows non-exportables related CTools APIs to be
+    // supported by an explicit `module:api:current_version` key. 
+    else if (substr_count($identifier, ':') === 2) {
+      list($module, $api, $current_version) = explode(':', $identifier);
+      // If a schema component matches the provided identifier, provide that
+      // information. This also ensures that the version number is up to date.
+      foreach ($components as $table => $info) {
+        if ($info['module'] == $module && $info['api'] == $api && $info['current_version'] >= $current_version) {
+          return $info;
+        }
+      }
+      // Fallback to just giving back what was provided to us.
+      return array('module' => $module, 'api' => $api, 'current_version' => $current_version);
+    }
+    return FALSE;
+  }
+
+  return $components;
+}
+
+/**
+ * Wrapper around ctools_export_crud_export() for < 1.7 compatibility.
+ */
+function _ctools_features_export_crud_export($table, $object, $indent = '') {
+  return ctools_api_version('1.7') ? ctools_export_crud_export($table, $object, $indent) : ctools_export_object($table, $object, $indent);
+}
+
+/**
+ * Wrapper around ctools_export_crud_load() for < 1.7 compatibility.
+ */
+function _ctools_features_export_crud_load($table, $name) {
+  if (ctools_api_version('1.7')) {
+    return ctools_export_crud_load($table, $name);
+  }
+  elseif ($objects = ctools_export_load_object($table, 'names', array($name))) {
+    return array_shift($objects);
+  }
+  return FALSE;
+}
+
+/**
+ * Wrapper around ctools_export_default_list() for < 1.7 compatibility.
+ */
+function _ctools_features_export_default_list($table, $schema) {
+  if (ctools_api_version('1.7')) {
+    return ctools_export_default_list($table, $schema);
+  }
+  elseif ($objects = ctools_export_load_object($table, 'all')) {
+    return drupal_map_assoc(array_keys($objects));
+  }
+  return array();
+}
+
+/**
+ * Wrapper around ctools_export_crud_delete() for < 1.7 compatibility.
+ */
+function _ctools_features_export_crud_delete($table, $object) {
+  if (ctools_api_version('1.7')) {
+    ctools_export_crud_delete($table, $object);
+  }
+  else {
+    $schema = ctools_export_get_schema($table);
+    $export = $schema['export'];
+    db_query("DELETE FROM {{$table}} WHERE {$export['key']} = '%s'", $object->{$export['key']});
+  }
+}
+
+/**
+ * Implementation of hook_features_export_render() for page_manager.
+ */
+function page_manager_pages_features_export_render($module, $data) {
+  // Ensure that handlers have their code included before exporting.
+  page_manager_get_tasks();
+  return ctools_component_features_export_render('page_manager_pages', $module, $data);
+}
+
+/**
+ * Implementation of hook_features_revert() for page_manager.
+ */
+function page_manager_pages_features_revert($module) {
+  if ($pages = features_get_default('page_manager_pages', $module)) {
+    require_once drupal_get_path('module','ctools').'/page_manager/plugins/tasks/page.inc';
+    foreach ($pages as $page) {
+      page_manager_page_delete($page);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.features.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.features.inc
new file mode 100644
index 0000000..dceee31
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.features.inc
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function features_features_api() {
+  return array(
+    'dependencies' => array(
+      'name' => 'Dependencies',
+      'feature_source' => TRUE,
+      'duplicates' => FEATURES_DUPLICATES_ALLOWED,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function dependencies_features_export_options() {
+  // Excluded modules.
+  $excluded = drupal_required_modules();
+  $options = array();
+  foreach (features_get_modules() as $module_name => $info) {
+    if (!in_array($module_name, $excluded) && $info->status && !empty($info->info)) {
+      $options[$module_name] = $info->info['name'];
+    }
+  }
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function dependencies_features_export($data, &$export, $module_name = '') {
+  // Don't allow a module to depend upon itself.
+  if (!empty($data[$module_name])) {
+    unset($data[$module_name]);
+  }
+
+  // Clean up existing dependencies and merge.
+  $export['dependencies'] = _features_export_minimize_dependencies($export['dependencies'], $module_name);
+  $export['dependencies'] = array_merge($data, $export['dependencies']);
+  $export['dependencies'] = array_unique($export['dependencies']);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function dependencies_features_revert($module) {
+  dependencies_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ * Ensure that all of a feature's dependencies are enabled.
+ */
+function dependencies_features_rebuild($module) {
+  $feature = features_get_features($module);
+  if (!empty($feature->info['dependencies'])) {
+    $install = array();
+    foreach ($feature->info['dependencies'] as $dependency) {
+      if (!module_exists($dependency)) {
+        $install[] = $dependency;
+      }
+    }
+    if (!empty($install)) {
+      features_install_modules($install);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.fieldgroup.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.fieldgroup.inc
new file mode 100644
index 0000000..178b21c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.fieldgroup.inc
@@ -0,0 +1,158 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function fieldgroup_features_api() {
+  return array(
+    'fieldgroup' => array(
+      'name' => t('Fieldgroup'),
+      'default_hook' => 'fieldgroup_default_groups',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function fieldgroup_features_export($data, &$export, $module_name = '') {
+  features_include_defaults('fieldgroup');
+  $pipe = array();
+
+  // The hook_fieldgroup_default_groups() hook integration is provided by the
+  // features module so we need to add it as a dependency.
+  $export['dependencies']['features'] = 'features';
+
+  // Collect a group to module map
+  $map = features_get_default_map('fieldgroup', NULL, 'fieldgroup_features_identifier');
+  foreach ($data as $instance) {
+    // If this group is already provided by another module, remove the group
+    // and add the other module as a dependency.
+    if (isset($map[$instance]) && $map[$instance] != $module_name) {
+      if (isset($export['features']['fieldgroup'][$instance])) {
+        unset($export['features']['fieldgroup'][$instance]);
+      }
+      $module = $map[$instance];
+      $export['dependencies'][$module] = $module;
+    }
+    // If the group has not yet been exported, add it.
+    else {
+      $split = explode('-', $instance);
+      $type_name = $split[0];
+      $group_name = $split[1];
+      $groups = fieldgroup_groups($type_name, FALSE, TRUE);
+
+      if (isset($groups[$group_name]) && $group = $groups[$group_name]) {
+        $export['features']['fieldgroup'][$instance] = $instance;
+        $export['dependencies']['fieldgroup'] = 'fieldgroup';
+      }
+    }
+  }
+
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function fieldgroup_features_export_render($module, $data) {
+  $translatables = $code = array();
+
+  $code[] = '  $groups = array();';
+  $code[] = '';
+  foreach ($data as $instance) {
+    $instance = explode('-', $instance);
+    $type_name = $instance[0];
+    $group_name = $instance[1];
+    $groups = fieldgroup_groups($type_name, FALSE, TRUE);
+    if (isset($groups[$group_name]) && $group = $groups[$group_name]) {
+      // Clean up the fields to only list the names.
+      $group['fields'] = array_keys((array) $group['fields']);
+
+      $group_identifier = features_var_export(fieldgroup_features_identifier($group));
+      $group_export = features_var_export($group, '  ');
+      $code[] = "  // Exported group: {$group_name}";
+      $code[] = "  \$groups[{$group_identifier}] = {$group_export};";
+      $code[] = "";
+
+      // Add any labels to translatables array.
+      if (!empty($group['label'])) {
+        $translatables[] = $group['label'];
+      }
+    }
+  }
+  if (!empty($translatables)) {
+    $code[] = features_translatables_export($translatables, '  ');
+  }
+  $code[] = '  return $groups;';
+  $code = implode("\n", $code);
+  return array('fieldgroup_default_groups' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function fieldgroup_features_revert($module) {
+  fieldgroup_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ * Rebuilds CCK fieldgroup definitions from code defaults.
+ */
+function fieldgroup_features_rebuild($module) {
+  if ($groups = features_get_default('fieldgroup', $module)) {
+    content_clear_type_cache(TRUE);
+
+    foreach ($groups as $group) {
+      $type_name = $group['type_name'];
+      $group_name = $group['group_name'];
+      $groups = fieldgroup_groups($type_name, FALSE, TRUE);
+
+      if (isset($groups[$group_name])) {
+        $existing_group = $groups[$group_name];
+        // Only field names are exported in fieldgroup_features_export_render(), so we 
+        // update the existing group to match.
+        $existing_group['fields'] = array_keys($existing_group['fields']);
+      }
+
+      // No need to rebuild if the group already exists and is identical.
+      if ($existing_group != $group) {
+        // Update each field from this group.
+        foreach ($group['fields'] as $field_name) {
+          if ($field = content_fields($field_name, $type_name)) {
+            $field['group'] = $group_name;
+            fieldgroup_update_fields($field);
+          }
+        }
+
+        // Look in the old group for any fields that have been removed.
+        if ($existing_group && !empty($existing_group['fields'])) {
+          foreach($existing_group['fields'] as $field_name) {
+            // We only want to update the field if the field no longer exists in the group 
+            // and the field's existing group name matches the group currently being rebuilt.
+            if (
+              !in_array($field_name, $group['fields']) &&
+              _fieldgroup_field_get_group($type_name, $field_name) == $group_name &&
+              $field = content_fields($field_name, $type_name)
+            ) {
+              $field['group'] = '';
+              fieldgroup_update_fields($field);
+            }
+          }
+        }
+
+        fieldgroup_save_group($type_name, $group);
+        variable_set('menu_rebuild_needed', TRUE);
+      }
+    }
+  }
+}
+
+/**
+ * Callback for generating an identifier for a fieldgroup.
+ */
+function fieldgroup_features_identifier($object) {
+  return isset($object['type_name'], $object['group_name']) ? "{$object['type_name']}-{$object['group_name']}" : FALSE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.filter.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.filter.inc
new file mode 100644
index 0000000..5c941f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.filter.inc
@@ -0,0 +1,194 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function filter_features_api() {
+  return array(
+    'filter' => array(
+      'name' => t('Filter formats'),
+      'default_hook' => 'filter_default_formats',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function filter_features_export($data, &$export, $module_name = '') {
+  // The filter_default_formats() hook integration is provided by the
+  // features module so we need to add it as a dependency.
+  $export['dependencies']['features'] = 'features';
+
+  $formats = _filter_get_formats();
+  foreach ($formats as $format) {
+    if (in_array($format['name'], $data)) {
+      // Add format to exports
+      $export['features']['filter'][$format['name']] = $format['name'];
+
+      // Iterate through filters and ensure each filter's module is included as a dependency
+      foreach ($format['filters'] as $filter) {
+        $export['dependencies'][$filter['module']] = $filter['module'];
+      }
+    }
+  }
+
+  $pipe = array();
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function filter_features_export_render($module, $data) {
+  $code = array();
+  $code[] = '  $formats = array();';
+  $code[] = '';
+
+  $formats = _filter_get_formats();
+  foreach ($formats as $format) {
+    if (in_array($format['name'], $data)) {
+      $format_export = features_var_export($format, '  ');
+      $format_identifier = features_var_export($format['name']);
+      $code[] = "  // Exported format: {$format['name']}";
+      $code[] = "  \$formats[{$format_identifier}] = {$format_export};";
+      $code[] = "";
+    }
+  }
+
+  $code[] = '  return $formats;';
+  $code = implode("\n", $code);
+  return array('filter_default_formats' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function filter_features_revert($module) {
+  return filter_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ */
+function filter_features_rebuild($module) {
+  if ($defaults = features_get_default('filter', $module)) {
+    foreach ($defaults as $format) {
+      _filter_features_update($format);
+    }
+  }
+}
+
+/**
+ * Retrieve all input formats with their respective filters loaded.
+ */
+function _filter_get_formats() {
+  $formats = array();
+
+  // We cannot use user_roles() here because it has the names translated.
+  $roles = _features_get_roles();
+  $result = db_query("SELECT * FROM {filter_formats}");
+  while ($row = db_fetch_object($result)) {
+    $format_roles = array();
+    // Prepare a roles array with roles that may access the filter.
+    foreach ($roles as $name => $role) {
+      if (strstr($row->roles, ','. $role['rid'] .',')) {
+        $format_roles[] = $name;
+      }
+    }
+    $formats[$row->format] = array(
+      'name' => $row->name,
+      'roles' => $format_roles,
+      'filters' => array(),
+    );
+    foreach (_filter_list_format($row->format, TRUE) as $filter) {
+      $formats[$row->format]['filters'][] = array(
+        'module' => $filter->module,
+        'delta' => $filter->delta,
+        'weight' => $filter->weight,
+      );
+    }
+  }
+
+  return $formats;
+}
+
+/**
+ * Direct copy of filter_list_format() but with a way to clear the static.
+ */
+function _filter_list_format($format, $reset = FALSE) {
+  static $filters = array();
+
+  if (!isset($filters[$format]) || $reset) {
+    $result = db_query("SELECT * FROM {filters} WHERE format = %d ORDER BY weight, module, delta", $format);
+    if (db_affected_rows($result) == 0 && !db_result(db_query("SELECT 1 FROM {filter_formats} WHERE format = %d", $format))) {
+      // The format has no filters and does not exist, use the default input
+      // format.
+      $filters[$format] = filter_list_format(variable_get('filter_default_format', 1));
+    }
+    else {
+      $filters[$format] = array();
+      while ($filter = db_fetch_object($result)) {
+        $list = module_invoke($filter->module, 'filter', 'list');
+        if (isset($list) && is_array($list) && isset($list[$filter->delta])) {
+          $filter->name = $list[$filter->delta];
+          $filters[$format][$filter->module .'/'. $filter->delta] = $filter;
+        }
+      }
+    }
+  }
+
+  return $filters[$format];
+}
+
+
+/**
+ * Helper function for updating/inserting formats.
+ */
+function _filter_features_update($format) {
+  $format_id = db_result(db_query("SELECT format FROM {filter_formats} WHERE name = '%s'", $format['name']));
+
+  // Format the role IDs into something that can be inserted into the database.
+  // This is so painful. See filter.admin.inc line 218. : (
+  // We cannot use user_roles() here because it has the names translated.
+  $roles = _features_get_roles();
+  $format_rids = array();
+  foreach ($format['roles'] as $role_name) {
+    // Ensure that each role exists. If it does not, create it and store the rid.
+    if (!isset($roles[$role_name])) {
+      $record = array('name' => $role_name);
+      drupal_write_record('role', $record);
+      $roles[$role_name]['rid'] = $record['rid'];
+      $roles[$role_name]['perm'] = array();
+    }
+    // Retrieve the rid corresponding to each role and add it to the format's rids
+    if (isset($roles[$role_name])) {
+      $format_rids[] = $roles[$role_name]['rid'];
+    }
+  }
+  if ($format_id && $format_id == variable_get('filter_default_format', 1)) {
+    $format['roles'] = ','. implode(',', array_keys(user_roles())) .',';
+  }
+  else {
+    $format['roles'] = ','. implode(',', $format_rids) .',';
+  }
+
+  // Update or insert the format
+  if ($format_id) {
+    $format['format'] = $format_id;
+    drupal_write_record('filter_formats', $format, 'format');
+  }
+  else {
+    drupal_write_record('filter_formats', $format);
+  }
+
+  // Update the filters for the format
+  if ($format['format']) {
+    db_query("DELETE FROM {filters} WHERE format = %d", $format['format']);
+    foreach ($format['filters'] as $filter) {
+      $filter['format'] = $format['format'];
+      drupal_write_record('filters', $filter);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.imagecache.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.imagecache.inc
new file mode 100644
index 0000000..daacd6f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.imagecache.inc
@@ -0,0 +1,91 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function imagecache_features_api() {
+  return array(
+    'imagecache' => array(
+      'name' => t('Imagecache presets'),
+      'default_hook' => 'imagecache_default_presets',
+    )
+  );
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function imagecache_features_export_options() {
+  $options = array();
+  foreach (imagecache_presets() as $preset) {
+    $options[$preset['presetname']] = $preset['presetname'];
+  }
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function imagecache_features_export($data, &$export, $module_name = '') {
+  // Collect a module to preset map
+  $map = features_get_default_map('imagecache', 'presetname');
+  foreach ($data as $preset) {
+    // If another module provides this preset, add it as a dependency
+    if (isset($map[$preset]) && $map[$preset] != $module_name) {
+      $module = $map[$preset];
+      $export['dependencies'][$module] = $module;
+    }
+    // Otherwise, export the preset
+    else {
+      $export['features']['imagecache'][$preset] = $preset;
+    }
+  }
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function imagecache_features_export_render($module_name, $data) {
+  $items = array();
+  foreach ($data as $key) {
+    // This second argument to clear the static cache relies on patch in
+    // http://drupal.org/node/665284.
+    $preset = imagecache_preset_by_name($key, TRUE);
+    _imagecache_features_preset_sanitize($preset);
+    $items[$key] = $preset;
+  }
+  $code = "  \$items = ". features_var_export($items, '  ') .";\n";
+  $code .= '  return $items;';
+  return array('imagecache_default_presets' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function imagecache_features_revert($module) {
+  if ($default_presets = features_get_default('imagecache', $module)) {
+    foreach (array_keys($default_presets) as $default_preset) {
+      $preset = imagecache_preset_by_name($default_preset);
+      if ($preset) {
+        imagecache_preset_delete($preset);
+      }
+    }
+  }
+}
+
+/**
+ * Remove unnecessary keys for export.
+ */
+function _imagecache_features_preset_sanitize(&$preset) {
+  $omit = array('presetid', 'storage', 'actionid');
+  if (is_array($preset)) {
+    foreach ($preset as $k => $v) {
+      if (in_array($k, $omit, TRUE)) {
+        unset($preset[$k]);
+      }
+      else if (is_array($v)) {
+        _imagecache_features_preset_sanitize($preset[$k]);
+      }
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.menu.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.menu.inc
new file mode 100644
index 0000000..c74100f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.menu.inc
@@ -0,0 +1,347 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function menu_features_api() {
+  return array(
+    'menu_custom' => array(
+      'name' => t('Menus'),
+      'default_hook' => 'menu_default_menu_custom',
+      'feature_source' => TRUE,
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+    'menu_links' => array(
+      'name' => t('Menu links'),
+      'default_hook' => 'menu_default_menu_links',
+      'feature_source' => TRUE,
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+    // DEPRECATED
+    'menu' => array(
+      'name' => t('Menu items'),
+      'default_hook' => 'menu_default_items',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+      'feature_source' => FALSE,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export().
+ * DEPRECATED: This implementation simply migrates deprecated `menu` items
+ * to the `menu_links` type.
+ */
+function menu_features_export($data, &$export, $module_name = '') {
+  $pipe = array();
+  foreach ($data as $path) {
+    $pipe['menu_links'][] = "features:{$path}";
+  }
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function menu_custom_features_export_options() {
+  $options = array();
+  $result = db_query("SELECT * FROM {menu_custom}");
+  while ($row = db_fetch_array($result)) {
+    $options[$row['menu_name']] = $row['title'];
+  }
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function menu_custom_features_export($data, &$export, $module_name = '') {
+  // Default hooks are provided by the feature module so we need to add
+  // it as a dependency.
+  $export['dependencies']['features'] = 'features';
+  $export['dependencies']['menu'] = 'menu';
+
+  // Collect a menu to module map
+  $pipe = array();
+  $map = features_get_default_map('menu_custom', 'menu_name');
+  foreach ($data as $menu_name) {
+    // If this menu is provided by a different module, add it as a dependency.
+    if (isset($map[$menu_name]) && $map[$menu_name] != $module_name) {
+      $export['dependencies'][$map[$menu_name]] = $map[$menu_name];
+    }
+    else {
+      $export['features']['menu_custom'][$menu_name] = $menu_name;
+    }
+  }
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render()
+ */
+function menu_custom_features_export_render($module, $data) {
+  $code = array();
+  $code[] = '  $menus = array();';
+  $code[] = '';
+
+  $translatables = array();
+  foreach ($data as $menu_name) {
+    $result = db_query("SELECT menu_name, title, description FROM {menu_custom} WHERE menu_name = '%s'", $menu_name);
+    while ($row = db_fetch_array($result)) {
+      $export = features_var_export($row, '  ');
+      $code[] = "  // Exported menu: {$menu_name}";
+      $code[] = "  \$menus['{$menu_name}'] = {$export};";
+      $translatables[] = $row['title'];
+      $translatables[] = $row['description'];
+    }
+  }
+  if (!empty($translatables)) {
+    $code[] = features_translatables_export($translatables, '  ');
+  }
+
+  $code[] = '';
+  $code[] = '  return $menus;';
+  $code = implode("\n", $code);
+  return array('menu_default_menu_custom' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function menu_custom_features_revert($module) {
+  menu_custom_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ */
+function menu_custom_features_rebuild($module) {
+  if ($defaults = features_get_default('menu_custom', $module)) {
+    foreach ($defaults as $menu) {
+      $existing = db_result(db_query("SELECT menu_name FROM {menu_custom} WHERE menu_name = '%s'", $menu['menu_name']));
+      drupal_write_record('menu_custom', $menu, $existing ? array('menu_name') : array());
+    }
+  }
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function menu_links_features_export_options() {
+  // We can't use the menu_tree_all_data function as it statically caches it's menu items
+  // so if something calls the function before now without $menu_admin set to true we 
+  // won't see all the links. Instead we reproduce the essential parts of the
+  // function here.
+
+  $menu_links = array();
+  foreach (array_reverse(menu_get_menus()) as $menu_name => $menu_title) {
+    $data = array();
+    $cid = 'links:' . $menu_name . ':all-cid:0';
+    $cache = cache_get($cid, 'cache_menu');
+    if ($cache && isset($cache->data)) {
+      // If the cache entry exists, it will just be the cid for the actual data.
+      // This avoids duplication of large amounts of data.
+      $cache = cache_get($cache->data, 'cache_menu');
+      if ($cache && isset($cache->data)) {
+        $data = $cache->data;
+      }
+    } else {
+      $data['tree'] = menu_tree_data(db_query("
+        SELECT m.load_functions, m.to_arg_functions, m.access_callback, m.access_arguments, m.page_callback, m.page_arguments, m.title, m.title_callback, m.title_arguments, m.type, m.description, ml.*
+        FROM {menu_links} ml LEFT JOIN {menu_router} m ON m.path = ml.router_path
+        WHERE ml.menu_name = '%s'
+        ORDER BY p1 ASC, p2 ASC, p3 ASC, p4 ASC, p5 ASC, p6 ASC, p7 ASC, p8 ASC, p9 ASC", $menu_name));
+
+      $data['node_links'] = array();
+      menu_tree_collect_node_links($data['tree'], $data['node_links']);
+      // May as well cache the data, if it is not already in the cache.
+      $tree_cid = _menu_tree_cid($menu_name, $data);
+      if (!cache_get($tree_cid, 'cache_menu')) {
+        cache_set($tree_cid, $data, 'cache_menu');
+      }
+      // Cache the cid of the (shared) data using the menu and item-specific cid.
+      cache_set($cid, $tree_cid, 'cache_menu');
+    }
+    
+    $GLOBALS['menu_admin'] = TRUE;
+    menu_tree_check_access($data['tree'], $data['node_links']);
+    $GLOBALS['menu_admin'] = FALSE;
+    
+    _menu_links_features_export_options_recurse($data['tree'], $menu_name, '--', $menu_links);
+  }
+  return $menu_links;
+}
+
+function _menu_links_features_export_options_recurse($tree, $menu_name, $indent, &$menu_links) {
+  // We don't want to use _menu_parents_recurse as that could potentially cut out some 
+  // options as not being suitable for parents which we still want to export. Also we can
+  // save on additional calls to the database.
+
+  foreach ($tree as $data) {
+    if ($data['link']['hidden'] >= 0) {
+      $title = $indent . ' ' . truncate_utf8($data['link']['title'], 30, TRUE, FALSE);
+      if ($data['link']['hidden']) {
+        $title .= ' (' . t('disabled') . ')';
+      }
+      $menu_links[menu_links_features_identifier($data['link'])] = "{$menu_name}: {$title}";
+      if ($data['below']) {
+        _menu_links_features_export_options_recurse($data['below'], $menu_name, $indent . '--', $menu_links);
+      }
+    }
+  } 
+}
+
+/**
+ * Callback for generating the menu link exportable identifier.
+ */
+function menu_links_features_identifier($link) {
+  return isset($link['menu_name'], $link['link_path']) ? "{$link['menu_name']}:{$link['link_path']}" : FALSE;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function menu_links_features_export($data, &$export, $module_name = '') {
+  // Default hooks are provided by the feature module so we need to add
+  // it as a dependency.
+  $export['dependencies']['features'] = 'features';
+  $export['dependencies']['menu'] = 'menu';
+
+  // Collect a link to module map
+  $pipe = array();
+  $map = features_get_default_map('menu_links', 'menu_links_features_identifier');
+  foreach ($data as $identifier) {
+    if ($link = features_menu_link_load($identifier)) {
+      // If this link is provided by a different module, add it as a dependency.
+      if (isset($map[$identifier]) && $map[$identifier] != $module_name) {
+        $export['dependencies'][$map[$identifier]] = $map[$identifier];
+      }
+      else {
+        $export['features']['menu_links'][$identifier] = $identifier;
+      }
+      // For now, exclude a variety of common menus from automatic export.
+      // They may still be explicitly included in a Feature if the builder
+      // chooses to do so.
+      if (!in_array($link['menu_name'], array('features', 'primary-links', 'secondary-links', 'navigation', 'admin', 'devel'))) {
+        $pipe['menu_custom'][] = $link['menu_name'];
+      }
+    }
+  }
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render()
+ */
+function menu_links_features_export_render($module, $data) {
+  $code = array();
+  $code[] = '  $menu_links = array();';
+  $code[] = '';
+
+  $translatables = array();
+  foreach ($data as $identifier) {
+    if ($link = features_menu_link_load($identifier)) {
+      // Replace plid with a parent path.
+      if (!empty($link['plid']) && $parent = menu_link_load($link['plid'])) {
+        $link['parent_path'] = $parent['link_path'];
+      }
+      unset($link['plid']);
+      unset($link['mlid']);
+
+      $code[] = "  // Exported menu link: {$identifier}";
+      $code[] = "  \$menu_links['{$identifier}'] = ". features_var_export($link, '  ') .";";
+      $translatables[] = $link['link_title'];
+    }
+  }
+  if (!empty($translatables)) {
+    $code[] = features_translatables_export($translatables, '  ');
+  }
+
+  $code[] = '';
+  $code[] = '  return $menu_links;';
+  $code = implode("\n", $code);
+  return array('menu_default_menu_links' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function menu_links_features_revert($module) {
+  menu_links_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ */
+function menu_links_features_rebuild($module) {
+  if ($menu_links = features_get_default('menu_links', $module)) {
+    menu_links_features_rebuild_ordered($menu_links);
+  }
+}
+
+/**
+ * Generate a depth tree of all menu links.
+ */
+function menu_links_features_rebuild_ordered($menu_links, $reset = FALSE) {
+  static $ordered;
+  static $all_links;
+  if (!isset($ordered) || $reset) {
+    $ordered = array();
+    $unordered = features_get_default('menu_links');
+
+    // Order all links by depth.
+    if ($unordered) {
+      do {
+        $current = count($unordered);
+        foreach ($unordered as $key => $link) {
+          $identifier = menu_links_features_identifier($link);
+          $parent = isset($link['parent_path']) ? "{$link['menu_name']}:{$link['parent_path']}" : '';
+          if (empty($parent) || (!empty($parent) && !isset($unordered[$parent]) && !isset($ordered[$parent]))) {
+            $ordered[$identifier] = 0;
+            $all_links[$identifier] = $link;
+            unset($unordered[$key]);
+          }
+          elseif (isset($ordered[$parent])) {
+            $ordered[$identifier] = $ordered[$parent] + 1;
+            $all_links[$identifier] = $link;
+            unset($unordered[$key]);
+          }
+        }
+      } while (count($unordered) < $current);
+    }
+    asort($ordered);
+  }
+
+  // Ensure any default menu items that do not exist are created.
+  foreach (array_keys($ordered) as $identifier) {
+    $link = $all_links[$identifier];
+    $existing = features_menu_link_load($identifier);
+    if (!$existing || in_array($link, $menu_links)) {
+      // Retrieve the mlid if this is an existing item.
+      if ($existing) {
+        $link['mlid'] = $existing['mlid'];
+      }
+      // Retrieve the plid for a parent link.
+      if (!empty($link['parent_path']) && $parent = features_menu_link_load("{$link['menu_name']}:{$link['parent_path']}")) {
+        $link['plid'] = $parent['mlid'];
+      }
+      else {
+        $link['plid'] = 0;
+      }
+      menu_link_save($link);
+    }
+  }
+}
+
+/**
+ * Load a menu link by its menu_name:link_path identifier.
+ */
+function features_menu_link_load($identifier) {
+  list($menu_name, $link_path) = explode(':', $identifier, 2);
+  $result = db_query("SELECT menu_name, mlid, plid, link_path, router_path, link_title, options, module, hidden, external, has_children, expanded, weight FROM {menu_links} WHERE menu_name = '%s' AND link_path = '%s'", $menu_name, $link_path);
+  while ($link = db_fetch_array($result)) {
+    $link['options'] = unserialize($link['options']);
+    return $link;
+  }
+  return FALSE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.node.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.node.inc
new file mode 100644
index 0000000..5aa0b87
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.node.inc
@@ -0,0 +1,161 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function node_features_api() {
+  return array(
+    'node' => array(
+      'name' => t('Content types'),
+      'feature_source' => TRUE,
+      'default_hook' => 'node_info',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function node_features_export_options() {
+  return node_get_types('names');
+}
+
+/**
+ * Implementation of hook_features_export.
+ */
+function node_features_export($data, &$export, $module_name = '') {
+  $pipe = array();
+  $map = features_get_default_map('node');
+
+  foreach ($data as $type) {
+    // Poll node module to determine who provides the node type.
+    if ($info = node_get_types('module', $type)) {
+      if ($module_name != $info && module_exists($info)) {
+        $export['dependencies'][$info] = $info;
+      }
+  
+      // If this node type is provided by a different module, add it as a dependency
+      if (isset($map[$type]) && $map[$type] != $module_name) {
+        $export['dependencies'][$map[$type]] = $map[$type];
+      }
+      // Otherwise export the node type.
+      elseif (in_array($info, array('node', 'features')) || isset($map[$type])) {
+        $export['features']['node'][$type] = $type;
+      }
+
+      // Create a pipe for CCK fields
+      if (module_exists('content')) {
+        $content_info = content_types($type);
+        if (!empty($content_info['fields'])) {
+          foreach ($content_info['fields'] as $key => $field) {
+            $pipe['content'][] = "{$type}-{$field['field_name']}";
+          }
+          // If strongarm is present, create a pipe for the extra field weights
+          // variable to be exported.
+          if (module_exists('strongarm')) {
+            $pipe['variable'][] = "content_extra_weights_{$type}";
+          }
+        }
+        // Create a pipe for Fieldgroups
+        if (function_exists('fieldgroup_groups') && $groups = fieldgroup_groups($type)) {
+          foreach ($groups as $group) {
+            $pipe['fieldgroup'][] = "{$type}-{$group['group_name']}";
+          }
+        }
+      }
+    }
+  }
+
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function node_features_export_render($module, $data, $export = NULL) {
+  $elements = array(
+    'name' => TRUE,
+    'module' => FALSE,
+    'description' => TRUE,
+    'has_title' => FALSE,
+    'title_label' => TRUE,
+    'has_body' => FALSE,
+    'body_label' => TRUE,
+    'min_word_count' => FALSE,
+    'help' => TRUE,
+  );
+  $output = array();
+  $output[] = '  $items = array(';
+  foreach ($data as $type) {
+    if ($info = node_get_types('type', $type)) {
+      // Force module name to be 'features' if set to 'node. If we leave as
+      // 'node' the content type will be assumed to be database-stored by
+      // the node module.
+      $info->module = ($info->module === 'node') ? 'features' : $info->module;
+      $output[] = "    '{$type}' => array(";
+      foreach ($elements as $key => $t) {
+        if ($t) {
+          $text = str_replace("'", "\'", $info->$key);
+          $text = !empty($text) ? "t('{$text}')" : "''";
+          $output[] = "      '{$key}' => {$text},";
+        }
+        else {
+          $output[] = "      '{$key}' => '{$info->$key}',";
+        }
+      }
+      // Detect whether there are extra fields on this content type than have
+      // been described in defaults. If so, add an additional key to the node
+      // type info allowing it to be detected by Features as a component that can
+      // be reverted (delete those extra fields) or updated (export those extra
+      // fields to code).
+      // Note that this key is only added if $export is not set - ie. we never
+      // *actually* write this key to code.
+      if (!isset($export) && module_exists('content') && module_exists($module)) {
+        // If there are deleted fields, mark the content type as such
+        $deleted_fields = array_diff(content_features_fields_normal($type), content_features_fields_default($type));
+        if (!empty($deleted_fields)) {
+          $output[] = "      'content_has_extra_fields' => TRUE,";
+        }
+      }
+      $output[] = "    ),";
+    }
+  }
+  $output[] = '  );';
+  $output[] = '  return $items;';
+  $output = implode("\n", $output);
+  return array('node_info' => $output);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ *
+ * @param $module
+ * name of module to revert content for
+ */
+function node_features_revert($module = NULL) {
+  if ($default_types = features_get_default('node', $module)) {
+    foreach ($default_types as $type_name => $type_info) {
+      // We need to de-activate any missing fields. De-activating allows us to
+      // preserve data. We de-activate by setting the widget_active flag to 0;
+      // widget_active is incorrectly named, and really should be
+      // instance_active
+      if (module_exists('content')) {
+        // Our existing fields ($fields) needs to be the first argument here,
+        // so only fields that don't exist in code can be de-activated.
+        if ($deleted_fields = array_diff(content_features_fields_normal($type_name), content_features_fields_default($type_name))) {
+          foreach($deleted_fields as $field_name) {
+            db_query("UPDATE {". content_instance_tablename() ."} SET widget_active = 0 WHERE field_name = '%s' AND type_name = '%s'", $field_name, $type_name);
+          }
+        }
+      }
+      // Delete node types
+      // We don't use node_type_delete() because we do not actually
+      // want to delete the node type (and invoke hook_node_type()).
+      // This can lead to bad consequences like CCK deleting field
+      // storage in the DB.
+      db_query("DELETE FROM {node_type} WHERE type = '%s'", $type_name);
+    }
+    node_types_rebuild();
+    menu_rebuild();
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.taxonomy.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.taxonomy.inc
new file mode 100644
index 0000000..03ff464
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.taxonomy.inc
@@ -0,0 +1,168 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function taxonomy_features_api() {
+  return array(
+    'taxonomy' => array(
+      'name' => t('Taxonomy'),
+      'feature_source' => TRUE,
+      'default_hook' => 'taxonomy_default_vocabularies',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function taxonomy_features_export_options() {
+  $vocabularies = array();
+  foreach (_taxonomy_features_get_vocabularies() as $machine_name => $vocabulary) {
+    $vocabularies[$machine_name] = $vocabulary->name;
+  }
+  return $vocabularies;
+}
+
+/**
+ * Implementation of hook_features_export().
+ *
+ * @todo Test adding existing dependencies.
+ */
+function taxonomy_features_export($data, &$export, $module_name = '') {
+  // taxonomy_default_vocabularies integration is provided by Features.
+  $export['dependencies']['features'] = 'features';
+  $export['dependencies']['taxonomy'] = 'taxonomy';
+
+  // Add dependencies for each vocabulary.
+  $map = features_get_default_map('taxonomy');
+  foreach ($data as $machine_name) {
+    if (isset($map[$machine_name]) && $map[$machine_name] != $module_name) {
+      $export['dependencies'][$map[$machine_name]] = $map[$machine_name];
+    }
+    else {
+      $export['features']['taxonomy'][$machine_name] = $machine_name;
+    }
+  }
+  return array();
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function taxonomy_features_export_render($module, $data) {
+  $vocabularies = _taxonomy_features_get_vocabularies();
+  $code = array();
+  foreach ($data as $machine_name) {
+    foreach ($vocabularies as $k => $v) {
+      if ($k == $machine_name) {
+        unset($v->vid);
+        $code[$machine_name] = $v;
+      }
+    }
+  }
+  $code = "  return ". features_var_export($code, '  ') .";";
+  return array('taxonomy_default_vocabularies' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function taxonomy_features_revert($module) {
+  taxonomy_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ *
+ * Rebuilds Taxonomy vocabularies from code defaults.
+ */
+function taxonomy_features_rebuild($module) {
+  if ($vocabularies = features_get_default('taxonomy', $module)) {
+    foreach ($vocabularies as $machine_name => $vocabulary) {
+      if ($vid = db_result(db_query("SELECT vid FROM {vocabulary} WHERE module = '%s'", 'features_' . $machine_name))) {
+        $vocabulary['vid'] = $vid;
+      }
+      taxonomy_save_vocabulary($vocabulary);
+    }
+  }
+}
+
+/**
+ * Retrieves all vocabularies viable for export.
+ *
+ * This function omits the vocabularies whose 'module' property doesn't begin
+ * with 'features_' so that only vocabularies with non-serial identifiers are returned.
+ */
+function _taxonomy_features_get_vocabularies() {
+  $vocabularies = array();
+  foreach (taxonomy_get_vocabularies() as $k => $vocabulary) {
+    if (strpos($vocabulary->module, 'features_') === 0) {
+      // Don't bother site builder with 'features_'.
+      $vocabularies[substr($vocabulary->module, 9)] = $vocabulary;
+    }
+  }
+  return $vocabularies;
+}
+
+/**
+ * @see features_form_taxonomy_form_vocabulary_alter().
+ */
+function _features_form_taxonomy_form_vocabulary_alter(&$form, &$form_state) {
+  $elem = array(
+    '#type' => 'textfield',
+    '#title' => t('Machine name'),
+    '#description' => t('A system name for this vocabulary, may not be changed once it has been set.'),
+  );
+
+  if (!isset($form['module']) || $form['module']['#value'] == 'taxonomy') {
+    // This vocabulary is new or wasn't assigned a machine name.
+    $elem['#element_validate'] = array('features_taxonomy_machine_name_validate');
+    unset($form['module']);
+  }
+  elseif (strpos($form['module']['#value'], 'features_') === 0) {
+    // Simply display the existing machine name if we have one.
+    $elem['#disabled'] = true;
+    $elem['#value'] = substr($form['module']['#value'], 9);
+  }
+  else {
+    // Some other module is responsible here, do nothing.
+    return;
+  }
+
+  // Position the machine name right after the vocab name without interfering
+  // with any explicit weights.
+  $new = array();
+  foreach ($form['identification'] as $k => $v) {
+    $new[$k] = $v;
+    if ($k == 'name') {
+      $new['module'] = $elem;
+    }
+  } 
+  $form['identification'] = $new;
+}
+
+// Validation handler for the machine name field.
+function features_taxonomy_machine_name_validate($element, &$form_state) {
+  // Validate format - lowecase + underscore only...
+  if (!empty($element['#value']) && !preg_match('!^[a-z0-9_]+$!', $element['#value'])) {
+    form_error($element, t('The machine name can only consist of lowercase letters, underscores, and numbers.'));
+  }
+
+  // If provided check machine name for conflicts and prepend with 'features'.
+  if (!empty($element['#value'])) {
+    $name = 'features_' . $element['#value'];
+    $vid = db_result(db_query("SELECT vid FROM {vocabulary} WHERE module = '%s'", $name));
+    if ($vid) {
+      form_error($element, t('This machine name is already taken. Please enter a unique machine name or this taxonomy.'));
+    }
+    else {
+      $form_state['values']['module'] = $name;
+    }
+  }
+  // Otherwise, default to the default module name 'taxonomy'.
+  else {
+    $form_state['values']['module'] = 'taxonomy';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.user.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.user.inc
new file mode 100644
index 0000000..c1c4c15
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.user.inc
@@ -0,0 +1,272 @@
+<?php
+
+/**
+ * Implementation of hook_features_api().
+ */
+function user_features_api() {
+  return array(
+    'user_role' => array(
+      'name' => t('Roles'),
+      'feature_source' => TRUE,
+      'default_hook' => 'user_default_roles',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+    'user_permission' => array(
+      'name' => t('Permissions'),
+      'feature_source' => TRUE,
+      'default_hook' => 'user_default_permissions',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+    // DEPRECATED
+    'user' => array(
+      'name' => t('Permissions'),
+      'feature_source' => FALSE,
+    )
+  );
+}
+
+/**
+ * Implementation of hook_features_export().
+ * DEPRECATED: This implementation simply migrates deprecated `user` items
+ * to the `user_permission` type.
+ */
+function user_features_export($data, &$export, $module_name = '') {
+  $pipe = array();
+  foreach ($data as $perm) {
+    $pipe['user_permission'][] = $perm;
+  }
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function user_permission_features_export($data, &$export, $module_name = '') {
+  $export['dependencies']['features'] = 'features';
+
+  // Ensure the modules that provide the given permissions are included as dependencies.
+  $map = _user_features_permission_map();
+  foreach ($data as $perm) {
+    if (isset($map[$perm])) {
+      $perm_module = $map[$perm];
+      $export['dependencies'][$perm_module] = $perm_module;
+      $export['features']['user_permission'][$perm] = $perm;
+    }
+  }
+
+  return array();
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function user_permission_features_export_options() {
+  $options = array();
+  foreach (module_list() as $module) {
+    $prefix = check_plain($module) .': ';
+    if ($permissions = module_invoke($module, 'perm')) {
+      foreach ($permissions as $permission) {
+        $options[$permission] = $prefix . check_plain($permission);
+      }
+    }
+  }
+  asort($options);
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function user_permission_features_export_render($module, $data) {
+  $code = array();
+  $code[] = '  $permissions = array();';
+  $code[] = '';
+
+  $permissions = _user_features_get_permissions();
+
+  foreach ($data as $perm_name) {
+    $permission = array();
+    $permission['name'] = $perm_name;
+    if (isset($permissions[$perm_name])) {
+      sort($permissions[$perm_name]);
+      $permission['roles'] = $permissions[$perm_name];
+    }
+    else {
+      $permission['roles'] = array();
+    }
+    $perm_identifier = features_var_export($perm_name);
+    $perm_export = features_var_export($permission, '  ');
+    $code[] = "  // Exported permission: {$perm_name}";
+    $code[] = "  \$permissions[{$perm_identifier}] = {$perm_export};";
+    $code[] = "";
+  }
+
+  $code[] = '  return $permissions;';
+  $code = implode("\n", $code);
+  return array('user_default_permissions' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function user_permission_features_revert($module) {
+  user_permission_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ * Iterate through default permissions and update the permissions map.
+ *
+ * @param $module
+ *   The module whose default user permissions should be rebuilt.
+ */
+function user_permission_features_rebuild($module) {
+  if ($defaults = features_get_default('user_permission', $module)) {
+    $roles = _features_get_roles();
+    foreach ($defaults as $permission) {
+      $perm = $permission['name'];
+
+      // Add permissions for any roles that should have them.
+      foreach ($permission['roles'] as $role) {
+        if (isset($roles[$role]) && !in_array($perm, $roles[$role]['perm'])) {
+          $roles[$role]['perm'][] = $perm;
+        }
+      }
+
+      // Remove permissions for any roles that shouldn't have them.
+      foreach (array_keys($roles) as $role) {
+        if (in_array($perm, $roles[$role]['perm']) && !in_array($role, $permission['roles'])) {
+          $position = array_search($perm, $roles[$role]['perm']);
+          unset($roles[$role]['perm'][$position]);
+        }
+      }
+    }
+    // Write the updated permissions.
+    _user_features_save_roles($roles);
+  }
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function user_role_features_export($data, &$export, $module_name = '') {
+  $export['dependencies']['features'] = 'features';
+  $map = features_get_default_map('user_role', 'name');
+  foreach ($data as $role) {
+    // Role is provided by another module. Add dependency.
+    if (isset($map[$role]) && $map[$role] != $module_name) {
+      $export['dependencies'][$map[$role]] = $map[$role];
+    }
+    // Export.
+    else {
+      $export['features']['user_role'][$role] = $role;
+    }
+  }
+  return array();
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function user_role_features_export_options() {
+  $options = drupal_map_assoc(array_keys(_features_get_roles()));
+  asort($options);
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function user_role_features_export_render($module, $data) {
+  $code = array();
+  $code[] = '  $roles = array();';
+  $code[] = '';
+
+  $roles = _features_get_roles();
+  foreach ($data as $role) {
+    if (isset($roles[$role])) {
+      $object = array('name' => $role);
+      $role_identifier = features_var_export($role);
+      $role_export = features_var_export($object , '  ');
+      $code[] = "  // Exported role: {$role}";
+      $code[] = "  \$roles[{$role_identifier}] = {$role_export};";
+      $code[] = "";
+    }
+  }
+
+  $code[] = '  return $roles;';
+  $code = implode("\n", $code);
+  return array('user_default_roles' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function user_role_features_revert($module) {
+  user_role_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ */
+function user_role_features_rebuild($module) {
+  if ($defaults = features_get_default('user_role', $module)) {
+    $roles = _features_get_roles();
+    foreach ($defaults as $role) {
+      if (!isset($roles[$role['name']])) {
+        drupal_write_record('role', $role);
+      }
+    }
+  }
+}
+
+/**
+ * Generate a perm to module mapping.
+ */
+function _user_features_permission_map($reset = FALSE) {
+  static $map;
+  if (!isset($map) || $reset) {
+    $map = array();
+    foreach (module_implements('perm') as $module) {
+      if ($permissions = module_invoke($module, 'perm')) {
+        foreach ($permissions as $permission) {
+          $map[$permission] = $module;
+        }
+      }
+    }
+  }
+  return $map;
+}
+
+/**
+ * Represent the current state of permissions as a perm to role name array map.
+ */
+function _user_features_get_permissions() {
+  $result = db_query("SELECT p.perm, r.name FROM {role} r INNER JOIN {permission} p ON p.rid = r.rid ORDER BY r.rid ASC, p.perm ASC");
+  $permissions = array();
+  while ($row = db_fetch_object($result)) {
+    $role = $row->name;
+    $role_perms = explode(', ', $row->perm);
+    foreach ($role_perms as $perm) {
+      if (!isset($permissions[$perm])) {
+        $permissions[$perm] = array();
+      }
+      if(!in_array($role, $permissions[$perm])) {
+        $permissions[$perm][] = $role;
+      }
+    }
+  }
+  return $permissions;
+}
+
+/**
+ * Save/update an array of roles to the database.
+ */
+function _user_features_save_roles($roles) {
+  // Write the updated permissions.
+  foreach ($roles as $role) {
+    db_query("DELETE FROM {permission} WHERE rid = %d", $role['rid']);
+    $role['perm'] = implode(', ', $role['perm']);
+    drupal_write_record('permission', $role);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/includes/features.views.inc b/drupal/sites/default/boinc/modules/contrib/features/includes/features.views.inc
new file mode 100644
index 0000000..7d19be3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/includes/features.views.inc
@@ -0,0 +1,266 @@
+<?php
+
+/**
+ * Implementation of hook_features_export().
+ */
+function views_api_features_export($data, &$export, $module_name = '') {
+  // Add views dependency
+  $export['dependencies']['views'] = 'views';
+
+  // Add the actual views API hook entries to be accounted for in
+  // hook_views_api(). The components are actually identified by a delimited
+  // list of values: `key:value`. Currently only the 'api' key is supported
+  // as Features does not yet know how to write to subdirectories.
+  foreach ($data as $component) {
+    if (is_numeric($component)) {
+      $version = "api:{$component}";
+      $export['features']['views_api'][$version] = $version;
+    }
+  }
+
+  return array();
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ * Adds the views mothership hook, views_api().
+ */
+function views_api_features_export_render($module, $data) {
+  $values = array();
+  foreach ($data as $component) {
+    $split = explode(':', $component);
+    if (count($split) === 2) {
+      list($key, $value) = $split;
+      $values[$key] = $value;
+    }
+  }
+  $code = '  return ' . features_var_export($values, '  ') . ';';
+  return array('views_api' => $code);
+}
+
+/**
+ * Implementation of hook_features_api().
+ */
+function views_features_api() {
+  return array(
+    'views' => array(
+      'name' => t('Views'),
+      'feature_source' => TRUE,
+      'default_hook' => 'views_default_views',
+      'default_file' => FEATURES_DEFAULTS_CUSTOM,
+      'default_filename' => 'views_default',
+    ),
+    'views_api' => array(
+      'name' => t('Views API'),
+      'feature_source' => FALSE,
+      'duplicates' => FEATURES_DUPLICATES_ALLOWED,
+      // Views API integration does not include a default hook declaration as
+      // it is not a proper default hook.
+      // 'default_hook' => 'views_api',
+    )
+  );
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function views_features_export_options() {
+  $enabled_views = array();
+  $views = views_get_all_views();
+  foreach ($views as $view) {
+    if (!isset($views[$view->name]->disabled) || !$views[$view->name]->disabled) {
+      $enabled_views[$view->name] = $view->name;
+    }
+  }
+  ksort($enabled_views);
+  return $enabled_views;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function views_features_export_render($module, $data) {
+  $code = array();
+  $code[] = '  $views = array();';
+  $code[] = '';
+
+  // Build views & add to export array
+  foreach ($data as $view_name) {
+    // Build the view
+    $view = views_get_view($view_name, TRUE);
+    if ($view) {
+      $code[] = '  // Exported view: '. $view_name;
+      $code[] = $view->export('  ');
+      $code[] = '  $views[$view->name] = $view;';
+      $code[] = '';
+    }
+  }
+  $code[] = '  return $views;';
+  $code = implode("\n", $code);
+  return array('views_default_views' => $code);
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function views_features_export($data, &$export, $module_name = '') {
+  // Build views & add to export array
+  $map = features_get_default_map('views', 'name');
+  $views = array();
+  $conflicts = array();
+  foreach ($data as $view_name) {
+    if ($view = views_get_view($view_name, TRUE)) {
+      // This view is provided by another module. Add it as a dependency or
+      // display a conflict message if the View is overridden.
+      if (isset($map[$view_name]) && $map[$view_name] !== $module_name) {
+        if ($v = views_get_view($view_name)) {
+          if ($v->type === 'Overridden') {
+            $conflicts[$map[$view_name]] = $view_name;
+          }
+          elseif ($v->type === 'Default') {
+            $export['dependencies'][$map[$view_name]] = $map[$view_name];
+          }
+        }
+      }
+      // Otherwise just add to exports
+      else {
+        $export['features']['views'][$view_name] = $view_name;
+        $views[$view_name] = $view;
+      }
+    }
+  }
+  if (!empty($conflicts)) {
+    $message = 'The following overridden view(s) are provided by other modules: !views. To resolve this problem either revert each view or clone each view so that modified versions can be exported with your feature.';
+    $tokens = array('!views' => implode(', ', $conflicts));
+    features_log(t($message, $tokens), 'warning');
+  }
+
+  // Only add Views API hook if there are actually views to export.
+  if (!empty($export['features']['views'])) {
+    $export['features']['views_api']['api:'. views_api_version()] = 'api:'. views_api_version();
+    $export['dependencies']['views'] = 'views';
+  }
+
+  // Discover module dependencies
+  // We need to find dependencies based on:
+  // 1. handlers
+  // 2. plugins (style plugins, display plugins)
+  // 3. other... (e.g. imagecache display option for CCK imagefields) : (
+
+  // Handlers
+  $handlers = array('fields', 'filters', 'arguments', 'sort', 'relationships');
+  $handler_dependencies = views_handler_dependencies();
+
+  // Plugins
+  // For now we only support dependency detection for a subset of all views plugins
+  $plugins = array('display', 'style', 'row', 'access');
+  $plugin_dependencies = views_plugin_dependencies();
+
+  foreach ($views as $view) {
+    foreach ($view->display as $display) {
+      // Handlers
+      foreach ($handlers as $handler) {
+        if (isset($display->display_options[$handler])) {
+          foreach ($display->display_options[$handler] as $item) {
+            if ($item['table'] && isset($handler_dependencies[$item['table']])) {
+              $module = $handler_dependencies[$item['table']];
+              $export['dependencies'][$module] = $module;
+            }
+          }
+        }
+      }
+
+      // Plugins
+      foreach ($plugins as $plugin_type) {
+        $plugin_name = '';
+        switch ($plugin_type) {
+          case 'display':
+            if (isset($display->display_plugin)) {
+              $plugin_name = $display->display_plugin;
+            }
+            break;
+          case 'access':
+            if (isset($display->display_options['access'], $display->display_options['access']['type']) && $display->display_options['access']['type'] != 'none') {
+              $plugin_name = $display->display_options['access']['type'];
+            }
+            break;
+          default:
+            if (isset($display->display_options["{$plugin_type}_plugin"])) {
+              $plugin_name = $display->display_options["{$plugin_type}_plugin"];
+            }
+            break;
+        }
+        if (!empty($plugin_name) && isset($plugin_dependencies[$plugin_type][$plugin_name])) {
+          $module = $plugin_dependencies[$plugin_type][$plugin_name];
+          $export['dependencies'][$module] = $module;
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Provides an array that maps hook_views_data() tables to modules.
+ */
+function views_handler_dependencies() {
+  views_include_handlers();
+
+  static $map;
+  if (!isset($map)) {
+    $map = array();
+    foreach (module_implements('views_data') as $module) {
+      if ($tables = module_invoke($module, 'views_data')) {
+        foreach ($tables as $table => $info) {
+          if (isset($info['table']) && (!isset($map[$table]) || $info['table']['group'])) {
+            $map[$table] = $module;
+          }
+          else if (!isset($map[$table])) {
+            $map[$table] = $module;
+          }
+        }
+      }
+    }
+  }
+  return $map;
+}
+
+/**
+ * Provides an array that maps hook_views_plugins() to modules.
+ */
+function views_plugin_dependencies() {
+  views_include_handlers();
+
+  static $map;
+  if (!isset($map)) {
+    $map = array();
+    foreach (module_implements('views_plugins') as $module) {
+      $plugins = module_invoke($module, 'views_plugins');
+      if (!empty($plugins)) {
+        foreach ($plugins as $type => $items) {
+          if (is_array($items)) {
+            foreach (array_keys($items) as $plugin_name) {
+              $map[$type][$plugin_name] = $module;
+            }
+          }
+        }
+      }
+    }
+  }
+  return $map;
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function views_features_revert($module) {
+  if ($default_views = features_get_default('views', $module)) {
+    foreach ($default_views as $default_view) {
+      if ($current_view = views_get_view($default_view->name)) {
+        $current_view->delete(FALSE);
+      }
+    }
+    // Flush caches.
+    cache_clear_all();
+    menu_rebuild();
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features.test b/drupal/sites/default/boinc/modules/contrib/features/tests/features.test
new file mode 100644
index 0000000..cb733ef
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features.test
@@ -0,0 +1,214 @@
+<?php
+
+/**
+ * User permission component tests for Features
+ */
+class FeaturesUserTestCase extends DrupalWebTestCase {
+  /**
+   * Test info.
+   */
+  public function getInfo() {
+    return array(
+      'name' => t('Component tests'),
+      'description' => t('Run tests for components of Features.') ,
+      'group' => t('Features'),
+    );
+  }
+
+  /**
+   * Set up test.
+   */
+  public function setUp() {
+    parent::setUp(
+      // Note that the test will only run for the components that are
+      // properly enabled here.
+      'fieldgroup',
+      'text',
+      'content',
+      'context',
+      'ctools',
+      'views',
+      'imageapi',
+      'imagecache',
+
+      'features',
+      'features_test'
+    );
+
+    // Run a features rebuild to ensure our feature is fully installed.
+    features_rebuild();
+
+    $admin_user = $this->drupalCreateUser(array('administer features'));
+    $this->drupalLogin($admin_user);
+  }
+
+  /**
+   * Run test.
+   */
+  public function test() {
+    module_load_include('inc', 'features', 'features.export');
+
+    $components = array_filter(array(
+      'content' => 'content',
+      // 'context' => 'context', // @TODO write tests for context.
+      'fieldgroup' => 'fieldgroup',
+      'filter' => 'filter',
+      'imagecache' => 'imagecache',
+      'node' => 'node',
+      'user_permission' => 'user',
+      'views' => 'views',
+    ), 'module_exists');
+
+    foreach (array_keys($components) as $component) {
+      $callback = "_test_{$component}";
+
+      // Ensure that the component/default is properly available.
+      $object = $this->$callback('load', $id);
+      $this->assertTrue(!empty($object), t('@component present.', array('@component' => $component)));
+
+      // Ensure that the component is defaulted.
+      $states = features_get_component_states(array('features_test'), FALSE, TRUE);
+      $this->assertTrue($states['features_test'][$component] === FEATURES_DEFAULT, t('@component state: Default.', array('@component' => $component)));
+
+      // Override component and test that Features detects the override.
+      $this->$callback('override', $this);
+      $states = features_get_component_states(array('features_test'), FALSE, TRUE);
+      $this->assertTrue($states['features_test'][$component] === FEATURES_OVERRIDDEN, t('@component state: Overridden.', array('@component' => $component)));
+    }
+
+    // Revert component and ensure that component has reverted.
+    // Do this in separate loops so we only have to run
+    // drupal_flush_all_caches() once.
+    foreach ($components as $component) {
+      features_revert(array('features_test' => array($component)));
+    }
+    drupal_flush_all_caches();
+    foreach ($components as $component) {
+      $states = features_get_component_states(array('features_test'), FALSE, TRUE);
+      $this->assertTrue($states['features_test'][$component] === FEATURES_DEFAULT, t('@component reverted.', array('@component' => $component)));
+    }
+  }
+
+  protected function _test_content($op = 'load') {
+    switch ($op) {
+      case 'load':
+        return content_fields('field_features_test', 'features_test');
+      case 'override':
+        module_load_include('inc', 'content', 'includes/content.crud');
+        $field = content_fields('field_features_test', 'features_test');
+        $field['widget']['label'] = 'Foo bar';
+        content_field_instance_update($field, TRUE);
+        break;
+    }
+  }
+
+  protected function _test_fieldgroup($op = 'load') {
+    $groups = fieldgroup_groups('features_test', FALSE, TRUE);
+    $group = $groups['group_features_test'];
+    switch ($op) {
+      case 'load':
+        return $group;
+      case 'override':
+        $group['settings']['display']['teaser'] = 'fieldset_collapsible';
+        $group['fields'] = array('0' => 'field_features_test_child_a');
+
+        // Update each field from this group.
+        foreach ($group['fields'] as $field_name) {
+          if ($field = content_fields($field_name, 'features_test')) {
+            $field['group'] = $group['group_features_test'];
+            fieldgroup_update_fields($field);
+          }
+        }
+
+        // Save the group itself.
+        fieldgroup_save_group('features_test', $group);
+        break;
+    }
+  }
+
+  protected function _test_filter($op = 'load') {
+    // So... relying on our own API functions to test is pretty lame.
+    // But these modules don't have APIs either. So might as well use
+    // the ones we've written for them...
+    features_include();
+    $formats = _filter_get_formats();
+    foreach ($formats as $k => $v) {
+      if ($v['name'] === 'features_test') {
+        $format = $v;
+        $format_id = $k;
+      }
+    }
+
+    switch ($op) {
+      case 'load':
+        return isset($format) ? $format : FALSE;
+      case 'override':
+        if (isset($format_id)) {
+          db_query("DELETE FROM {filters} WHERE module = 'filter' AND format = %d AND delta = %d", $format_id, 0);
+        }
+        break;
+    }
+  }
+
+  protected function _test_imagecache($op = 'load', &$test) {
+    switch ($op) {
+      case 'load':
+        return imagecache_preset_by_name('features_test');
+      case 'override':
+        $preset = imagecache_preset_by_name('features_test');
+        $preset = imagecache_preset_save($preset);
+        foreach ($preset['actions'] as $action) {
+          $action['data']['width'] = '50%';
+          $action['presetid'] = $preset['presetid'];
+          imagecache_action_save($action);
+        }
+        break;
+    }
+  }
+
+  protected function _test_node($op = 'load') {
+    switch ($op) {
+      case 'load':
+        return node_get_types('type', 'features_test');
+      case 'override':
+        $type = node_get_types('type', 'features_test');
+        $type->description = 'Foo bar baz.';
+        $type->modified = TRUE;
+        node_type_save($type);
+        break;
+    }
+  }
+
+  protected function _test_views($op = 'load') {
+    switch ($op) {
+      case 'load':
+        return views_get_view('features_test', TRUE);
+      case 'override':
+        $view = views_get_view('features_test', TRUE);
+        $view->set_display('default');
+        $view->display_handler->override_option('title', 'Foo bar');
+        $view->save();
+        break;
+    }
+  }
+
+  protected function _test_user_permission($op = 'load') {
+    switch ($op) {
+      case 'load':
+        // So... relying on our own API functions to test is pretty lame.
+        // But these modules don't have APIs either. So might as well use
+        // the ones we've written for them...
+        features_include();
+        $permissions = _user_features_get_permissions();
+        return isset($permissions['create features_test content']) ? $permissions['create features_test content'] : FALSE;
+      case 'override':
+        $roles = _features_get_roles();
+        if (in_array('create features_test content', $roles['authenticated user']['perm'])) {
+          $position = array_search('create features_test content', $roles['authenticated user']['perm']);
+          unset($roles['authenticated user']['perm'][$position]);
+        }
+        _user_features_save_roles($roles);
+        break;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.content.inc b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.content.inc
new file mode 100644
index 0000000..06890ca
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.content.inc
@@ -0,0 +1,198 @@
+<?php
+
+/**
+ * Implementation of hook_content_default_fields().
+ */
+function features_test_content_default_fields() {
+  $fields = array();
+
+  // Exported field: field_features_test
+  $fields['features_test-field_features_test'] = array(
+    'field_name' => 'field_features_test',
+    'type_name' => 'features_test',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '0',
+    'max_length' => '',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => 5,
+      'size' => '60',
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_features_test][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => 'Test',
+      'weight' => '21',
+      'description' => '',
+      'type' => 'text_textfield',
+      'module' => 'text',
+    ),
+  );
+
+  // Exported field: field_features_test_child_a
+  $fields['features_test-field_features_test_child_a'] = array(
+    'field_name' => 'field_features_test_child_a',
+    'type_name' => 'features_test',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      '5' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '0',
+    'max_length' => '',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => 5,
+      'size' => '60',
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_features_test_child_a][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => 'Test childfield',
+      'weight' => '31',
+      'description' => '',
+      'type' => 'text_textfield',
+      'module' => 'text',
+    ),
+  );
+
+  // Exported field: field_features_test_child_b
+  $fields['features_test-field_features_test_child_b'] = array(
+    'field_name' => 'field_features_test_child_b',
+    'type_name' => 'features_test',
+    'display_settings' => array(
+      'label' => array(
+        'format' => 'above',
+        'exclude' => 0,
+      ),
+      '5' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'teaser' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'full' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '4' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '2' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      '3' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+      'token' => array(
+        'format' => 'default',
+        'exclude' => 0,
+      ),
+    ),
+    'widget_active' => '1',
+    'type' => 'text',
+    'required' => '0',
+    'multiple' => '0',
+    'module' => 'text',
+    'active' => '1',
+    'text_processing' => '0',
+    'max_length' => '',
+    'allowed_values' => '',
+    'allowed_values_php' => '',
+    'widget' => array(
+      'rows' => 5,
+      'size' => '60',
+      'default_value' => array(
+        '0' => array(
+          'value' => '',
+          '_error_element' => 'default_value_widget][field_features_test_child_b][0][value',
+        ),
+      ),
+      'default_value_php' => NULL,
+      'label' => 'Test childfield',
+      'weight' => '32',
+      'description' => '',
+      'type' => 'text_textfield',
+      'module' => 'text',
+    ),
+  );
+
+  // Translatables
+  array(
+    t('Test'),
+    t('Test childfield'),
+  );
+
+  return $fields;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.fieldgroup.inc b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.fieldgroup.inc
new file mode 100644
index 0000000..d825477
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.fieldgroup.inc
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * Implementation of hook_fieldgroup_default_groups().
+ */
+function features_test_fieldgroup_default_groups() {
+  $groups = array();
+
+  // Exported group: group_features_test
+  $groups['features_test-group_features_test'] = array(
+    'group_type' => 'standard',
+    'type_name' => 'features_test',
+    'group_name' => 'group_features_test',
+    'label' => 'Test fieldgroup',
+    'settings' => array(
+      'form' => array(
+        'style' => 'fieldset',
+        'description' => '',
+      ),
+      'display' => array(
+        'description' => '',
+        'label' => 'above',
+        '5' => array(
+          'format' => 'fieldset',
+          'exclude' => 0,
+        ),
+        'teaser' => array(
+          'format' => 'fieldset',
+          'exclude' => 0,
+        ),
+        'full' => array(
+          'format' => 'fieldset',
+          'exclude' => 0,
+        ),
+        '4' => array(
+          'format' => 'fieldset',
+          'exclude' => 0,
+        ),
+        '2' => array(
+          'format' => 'fieldset',
+          'exclude' => 0,
+        ),
+        '3' => array(
+          'format' => 'fieldset',
+          'exclude' => 0,
+        ),
+        'token' => array(
+          'format' => 'fieldset',
+          'exclude' => 0,
+        ),
+      ),
+    ),
+    'weight' => '35',
+    'fields' => array(
+      '0' => 'field_features_test_child_a',
+      '1' => 'field_features_test_child_b',
+    ),
+  );
+
+  // Translatables
+  array(
+    t('Test fieldgroup'),
+  );
+
+  return $groups;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.filter.inc b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.filter.inc
new file mode 100644
index 0000000..6a7bee9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.filter.inc
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * Implementation of hook_filter_default_formats().
+ */
+function features_test_filter_default_formats() {
+  $formats = array();
+
+  // Exported format: features_test
+  $formats['features_test'] = array(
+    'name' => 'features_test',
+    'roles' => array(
+      '0' => 'anonymous user',
+      '1' => 'authenticated user',
+      '2' => 'manager',
+    ),
+    'filters' => array(
+      '0' => array(
+        'module' => 'filter',
+        'delta' => '2',
+        'weight' => '0',
+      ),
+      '1' => array(
+        'module' => 'filter',
+        'delta' => '0',
+        'weight' => '1',
+      ),
+      '2' => array(
+        'module' => 'filter',
+        'delta' => '1',
+        'weight' => '2',
+      ),
+      '3' => array(
+        'module' => 'filter',
+        'delta' => '3',
+        'weight' => '10',
+      ),
+    ),
+  );
+
+  return $formats;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.inc b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.inc
new file mode 100644
index 0000000..b0c2a06
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.inc
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * Implementation of hook_imagecache_default_presets().
+ */
+function features_test_imagecache_default_presets() {
+  $items = array(
+    'features_test' => array(
+      'presetname' => 'features_test',
+      'actions' => array(
+        '0' => array(
+          'weight' => '0',
+          'module' => 'imagecache',
+          'action' => 'imagecache_scale',
+          'data' => array(
+            'width' => '100%',
+            'height' => '100%',
+            'upscale' => 0,
+          ),
+        ),
+      ),
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_node_info().
+ */
+function features_test_node_info() {
+  $items = array(
+    'features_test' => array(
+      'name' => t('Testing: Features'),
+      'module' => 'features',
+      'description' => t('Content type provided for Features tests.'),
+      'has_title' => '1',
+      'title_label' => t('Title'),
+      'has_body' => '1',
+      'body_label' => t('Body'),
+      'min_word_count' => '0',
+      'help' => '',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function features_test_views_api() {
+  return array(
+    'api' => '2',
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.user_permission.inc b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.user_permission.inc
new file mode 100644
index 0000000..5e1c3bb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.features.user_permission.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Implementation of hook_user_default_permissions().
+ */
+function features_test_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: create features_test content
+  $permissions['create features_test content'] = array(
+    'name' => 'create features_test content',
+    'roles' => array(
+      '0' => 'anonymous user',
+      '1' => 'authenticated user',
+    ),
+  );
+
+  return $permissions;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.info b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.info
new file mode 100644
index 0000000..dead37e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.info
@@ -0,0 +1,25 @@
+core = "6.x"
+dependencies[] = "features"
+dependencies[] = "fieldgroup"
+dependencies[] = "text"
+dependencies[] = "views"
+description = "Test module for Features testing."
+features[content][] = "features_test-field_features_test"
+features[content][] = "features_test-field_features_test_child_a"
+features[content][] = "features_test-field_features_test_child_b"
+features[fieldgroup][] = "features_test-group_features_test"
+features[filter][] = "features_test"
+features[imagecache][] = "features_test"
+features[node][] = "features_test"
+features[user_permission][] = "create features_test content"
+features[views][] = "features_test"
+features[views_api][] = "api:2"
+name = "Features Tests"
+package = "Testing"
+
+; Information added by drupal.org packaging script on 2011-12-15
+version = "6.x-1.2-boinc-1-dev"
+core = "6.x"
+project = "features"
+datestamp = "1494527048"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.module b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.module
new file mode 100644
index 0000000..762d6e5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.module
@@ -0,0 +1,3 @@
+<?php
+
+include_once('features_test.features.inc');
diff --git a/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.views_default.inc b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.views_default.inc
new file mode 100644
index 0000000..10a63b6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/tests/features_test.views_default.inc
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function features_test_views_default_views() {
+  $views = array();
+
+  // Exported view: features_test
+  $view = new view;
+  $view->name = 'features_test';
+  $view->description = 'Test view provided by Features testing module.';
+  $view->tag = 'testing';
+  $view->view_php = '';
+  $view->base_table = 'node';
+  $view->is_cacheable = FALSE;
+  $view->api_version = 2;
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('title', 'Test');
+  $handler->override_option('row_plugin', 'node');
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/features/theme/features-admin-components.tpl.php b/drupal/sites/default/boinc/modules/contrib/features/theme/features-admin-components.tpl.php
new file mode 100644
index 0000000..6904e7e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/theme/features-admin-components.tpl.php
@@ -0,0 +1,23 @@
+<?php
+?>
+<div class='clear-block features-components'>
+  <div class='column'>
+    <div class='info'>
+      <h3><?php print $name ?></h3>
+      <div class='description'><?php print $description ?></div>
+      <?php print $dependencies ?>
+    </div>
+  </div>
+  <div class='column'>
+    <div class='components'>
+      <?php print $components ?>
+      <?php if (!empty($key)): ?>
+        <div class='clear-block features-key'><?php print theme('links', $key) ?></div>
+      <?php endif; ?>
+      <?php if (!empty($buttons)): ?>
+        <div class='buttons clear-block'><?php print $buttons ?></div>
+      <?php endif; ?>
+    </div>
+  </div>
+  <?php print $form ?>
+</div>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/features/theme/features-form.tpl.php b/drupal/sites/default/boinc/modules/contrib/features/theme/features-form.tpl.php
new file mode 100644
index 0000000..e1db183
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/theme/features-form.tpl.php
@@ -0,0 +1,18 @@
+<?php
+?>
+<div class='features-form clear-block'>
+  <?php if (count($packages) > 1): ?>
+    <div class='features-form-content'>
+      <?php foreach ($packages as $class => $package): ?>
+        <div class='features-form-package package-<?php print $class?>'><?php print drupal_render($package) ?></div>
+      <?php endforeach; ?>
+      <?php print drupal_render($form) ?>
+    </div>
+    <div class='features-form-links'><?php print theme('links', $package_links, array('id' => 'features-form-links')) ?></div>
+  <?php elseif (count($packages) == 1): ?>
+    <?php print drupal_render($packages) ?>
+    <?php print drupal_render($form) ?>
+  <?php else: ?>
+    <?php print t('No features; consider <a href="!url">adding one.</a>', array('!url' => url('admin/build/features/create'))); ?>
+  <?php endif; ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/features/theme/theme.inc b/drupal/sites/default/boinc/modules/contrib/features/theme/theme.inc
new file mode 100644
index 0000000..36f4787
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/features/theme/theme.inc
@@ -0,0 +1,347 @@
+<?php
+
+/**
+ * Display feature component info
+ */
+function template_preprocess_features_admin_components(&$vars) {
+  drupal_add_css(drupal_get_path('module', 'features') .'/features.css');
+  $form = $vars['form'];
+
+  // Basic info
+  $vars['name'] = $form['#info']['name'];
+  $vars['description'] = isset($form['#info']['description']) ? $form['#info']['description'] : '';
+
+  // Legend/key
+  $vars['key'] = array();
+
+  // Dependencies
+  $rows = array();
+  $modules = features_get_info();
+  foreach ($form['#dependencies'] as $dependency => $status) {
+    $rows[] = array(
+      array(
+        'data' => isset($modules[$dependency]->info['name']) ? $modules[$dependency]->info['name'] : $dependency,
+        'class' => 'component'
+      ),
+      theme('features_module_status', $status),
+    );
+  }
+  $vars['dependencies'] = theme('table', array(t('Dependency'), t('Status')), $rows);
+
+  // Components
+  $rows = array();
+  $components = features_get_components();
+  $conflicts = features_get_conflicts();
+  if (!module_exists($form['module']['#value']) && isset($form['module']['#value']) && !empty($conflicts[$form['module']['#value']])) {
+    $module_conflicts = $conflicts[$form['module']['#value']];
+    $conflicts = array();
+    foreach ($module_conflicts as $conflict) {
+      $conflicts = array_merge_recursive($conflict, $conflicts);
+    }
+  }
+  else {
+    $conflicts = array();
+  }
+  // Display key for conflicting elements.
+  if (!empty($conflicts)) {
+    $vars['key'][] = array(
+      'title' => theme('features_storage_link', FEATURES_CONFLICT, t('Conflicts with another feature')),
+      'html' => TRUE,
+    );
+  }
+
+  if (!empty($form['#info']['features'])) {
+    foreach ($form['#info']['features'] as $component => $items) {
+      if (!empty($items)) {
+        $header = $data = array();
+        if (element_children($form['revert'])) {
+          $header[] = array(
+            'data' => isset($form['revert'][$component]) ? drupal_render($form['revert'][$component]) : '',
+            'header' => TRUE
+          );
+        }
+        $header[] = array(
+          'data' => isset($components[$component]['name']) ? $components[$component]['name'] : $component,
+          'header' => TRUE
+        );
+        $header[] = array(
+          'data' => drupal_render($form['components'][$component]),
+          'header' => TRUE
+        );
+        $rows[] = $header;
+
+        if (element_children($form['revert'])) {
+          $data[] = '';
+        }
+        $component_conflicts = isset($conflicts[$component]) ? $conflicts[$component] : array();
+        $data[] = array(
+          'data' => theme('features_component_list', $items, $items, $component_conflicts),
+          'colspan' => 2,
+          'class' => 'component'
+        );
+        $rows[] = $data;
+      }
+    }
+  }
+  $vars['components'] = theme('table', array(), $rows);
+
+  // Other elements
+  $vars['buttons'] = drupal_render($form['buttons']);
+  $vars['form'] = drupal_render($form);
+}
+
+/**
+ * Preprocessor for theme('features_form').
+ */
+function template_preprocess_features_form(&$vars) {
+  drupal_add_css(drupal_get_path('module', 'features') .'/features.css');
+  drupal_add_js(drupal_get_path('module', 'features') .'/features.js');
+
+  $first = TRUE;
+  $package_links = array();
+  $packages = element_children($vars['form']);
+  sort($packages);
+  foreach ($packages as $package) {
+    if (!empty($vars['form'][$package]['status'])) {
+      $package_links[$package] = array(
+        'title' => $vars['form'][$package]['#title'],
+        'href' => $_GET['q'],
+        'fragment' => $package,
+      );
+      $class = $first ? "$package features-package-active" : $package;
+      $package_links[$package]['attributes'] = $first ? array('class' => 'features-package-active') : array();
+      $vars['packages'][$class] = $vars['form'][$package];
+
+      unset($vars['form'][$package]);
+      $first = FALSE;
+    }
+  }
+  $vars['package_links'] = $package_links;
+}
+
+/**
+ * Themes a module status display.
+ */
+function theme_features_module_status($status, $module = NULL) {
+  switch ($status) {
+    case FEATURES_MODULE_ENABLED:
+      $text = !empty($module) ? $module : t('Enabled');
+      return "<span class='admin-enabled'>{$text}</span>";
+    case FEATURES_MODULE_DISABLED:
+      $text = !empty($module) ? $module : t('Disabled');
+      return "<span class='admin-disabled'>{$text}</span>";
+    case FEATURES_MODULE_MISSING:
+      $text = !empty($module) ? $module : t('Missing');
+      return "<span class='admin-missing'>{$text}</span>";
+  }
+}
+
+/**
+ * Themes a module status display.
+ */
+function theme_features_storage_link($storage, $text = NULL, $path = NULL, $options = array()) {
+  $classes = array(
+    FEATURES_OVERRIDDEN => 'admin-overridden',
+    FEATURES_DEFAULT => 'admin-default',
+    FEATURES_NEEDS_REVIEW => 'admin-needs-review',
+    FEATURES_REBUILDING => 'admin-rebuilding',
+    FEATURES_REBUILDABLE => 'admin-rebuilding',
+    FEATURES_CONFLICT => 'admin-conflict',
+    FEATURES_DISABLED => 'admin-disabled',
+  );
+  $default_text = array(
+    FEATURES_OVERRIDDEN => t('Overridden'),
+    FEATURES_DEFAULT => t('Default'),
+    FEATURES_NEEDS_REVIEW => t('Needs review'),
+    FEATURES_REBUILDING => t('Rebuilding'),
+    FEATURES_REBUILDABLE => t('Rebuilding'),
+    FEATURES_CONFLICT => t('Conflict'),
+    FEATURES_DISABLED => t('Disabled'),
+  );
+  $text = isset($text) ? $text : $default_text[$storage];
+  if ($path) {
+    $options['attributes']['class'] = $classes[$storage] . ' features-storage';
+    return l($text, $path, $options);
+  }
+  else {
+    return "<span class='{$classes[$storage]} features-storage'>{$text}</span>";
+  }
+}
+
+/**
+ * Theme function for displaying form buttons
+ */
+function theme_features_form_buttons($element) {
+  drupal_add_css(drupal_get_path('module', 'features') .'/features.css');
+
+  $output = drupal_render($element);
+  return !empty($output) ? "<div class='buttons clear-block'>{$output}</div>" : '';
+}
+
+/**
+ * Theme for features management form.
+ */
+function theme_features_form_package($form) {
+  drupal_add_css(drupal_get_path('module', 'features') .'/features.css');
+  drupal_add_js(drupal_get_path('module', 'features') .'/features.js');
+
+  $output = '';
+
+  $header = array('', t('Feature'), t('Signature'));
+  if (isset($form['state'])) {
+    $header[] = t('State');
+  }
+  if (isset($form['actions'])) {
+    $header[] = t('Actions');
+  }
+
+  $rows = array();
+  foreach (element_children($form['status']) as $element) {
+    // Yank title & description fields off the form element for
+    // rendering in their own cells.
+    $name = "<div class='feature'>";
+    $name .= "<strong>{$form['status'][$element]['#title']}</strong>";
+    $name .= "<div class='description'>{$form['status'][$element]['#description']}</div>";
+    $name .= "</div>";
+    unset($form['status'][$element]['#title']);
+    unset($form['status'][$element]['#description']);
+
+    // Determine row & cell classes
+    $class = $form['status'][$element]['#default_value'] ? 'enabled' : 'disabled';
+
+    $row = array(
+      'status' => array('data' => drupal_render($form['status'][$element]), 'class' => 'status'),
+      'name' => array('data' => $name, 'class' => 'name'),
+      'sign' => array('data' => drupal_render($form['sign'][$element]), 'class' => 'sign'),
+    );
+    if (isset($form['state'])) {
+      $row['state'] = array('data' => drupal_render($form['state'][$element]), 'class' => 'state');
+    }
+    if (isset($form['actions'])) {
+      $row['actions'] = array('data' => drupal_render($form['actions'][$element]), 'class' => 'actions');
+    }
+    $rows[] = array('data' => $row, 'class' => $class);
+  }
+
+  if (empty($rows)) {
+    $rows[] = array('', array('data' => t('No features available.'), 'colspan' => count($header)));
+  }
+
+  $class = count($header) > 3 ? 'features features-admin' : 'features features-manage';
+  $output .= theme('table', $header, $rows, array('id' => 'features-form-table', 'class' => $class));
+
+  // Prevent section from being rendered by drupal_render().
+  unset($form['features']);
+
+  $output .= drupal_render($form['buttons']);
+  $output .= drupal_render($form);
+  return $output;
+}
+
+/**
+ * Theme functions ====================================================
+ */
+
+/**
+ * Export selection / display for features export form.
+ */
+function theme_features_form_export($form) {
+  drupal_add_css(drupal_get_path('module', 'features') .'/features.css');
+  drupal_add_js(drupal_get_path('module', 'features') .'/features.js');
+
+  $output = '';
+  $output .= "<div class='clear-block features-components'>";
+  $output .= "<div class='column'>". drupal_render($form['components']) . drupal_render($form['sources']) ."</div>";
+  $output .= "<div class='column'>". drupal_render($form['features']) ."</div>";
+  $output .= "</div>";
+  $output .= drupal_render($form);
+  return $output;
+}
+
+/**
+ * Theme a set of features export components.
+ */
+function theme_features_form_components($form) {
+  $output = '';
+  foreach (element_children($form) as $key) {
+    unset($form[$key]['#title']);
+    $output .= "<div class='features-select features-select-{$key}'>". drupal_render($form[$key]) ."</div>";
+  }
+  return $output;
+}
+
+/**
+ * Theme a set of features export components.
+ */
+function theme_features_components($info, $sources = array()) {
+  $output = '';
+  $rows = array();
+  $components = features_get_components();
+  if (!empty($info['features']) || !empty($info['dependencies']) || !empty($sources)) {
+    $export = array_unique(array_merge(
+      array_keys($info['features']),
+      array_keys($sources),
+      array('dependencies')
+    ));
+    foreach ($export as $component) {
+      if ($component === 'dependencies') {
+        $feature_items = isset($info[$component]) ? $info[$component] : array();
+      }
+      else {
+        $feature_items = isset($info['features'][$component]) ? $info['features'][$component] : array();
+      }
+      $source_items = isset($sources[$component]) ? $sources[$component] : array();
+      if (!empty($feature_items) || !empty($source_items)) {
+        $rows[] = array(array(
+          'data' => isset($components[$component]['name']) ? $components[$component]['name'] : $component,
+          'header' => TRUE
+        ));
+        $rows[] = array(array(
+          'data' => theme('features_component_list', $feature_items, $source_items),
+          'class' => 'component'
+        ));
+      }
+    }
+    $output .= theme('table', array(), $rows);
+    $output .= theme('features_component_key');
+  }
+  return $output;
+}
+
+/**
+ * Theme individual components in a component list.
+ */
+function theme_features_component_list($components, $source = array(), $conflicts = array()) {
+  $list = array();
+  foreach ($components as $component) {
+    // If component is not in source list, it was autodetected
+    if (!in_array($component, $source)) {
+      $list[] = "<span class='features-detected'>". check_plain($component) ."</span>";
+    }
+    elseif (is_array($conflicts) && in_array($component, $conflicts)) {
+      $list[] = "<span class='features-conflict'>". check_plain($component) ."</span>";
+    }
+    else {
+      $list[] = "<span class='features-source'>". check_plain($component) ."</span>";
+    }
+  }
+  foreach ($source as $component) {
+    // If a source component is no longer in the items, it was removed because
+    // it is provided by a dependency.
+    if (!in_array($component, $components)) {
+      $list[] = "<span class='features-dependency'>". check_plain($component) ."</span>";
+    }
+  }
+  return "<span class='features-component-list'>". implode(' ', $list) ."</span>";
+}
+
+/**
+ * Provide a themed key for a component list.
+ */
+function theme_features_component_key() {
+  $list = array();
+  $list[] = "<span class='features-source'>" . t('Normal') . "</span>";
+  $list[] = "<span class='features-detected'>" . t('Auto-detected') . "</span>";
+  $list[] = "<span class='features-dependency'>" . t('Provided by dependency') . "</span>";
+  return "<span class='features-component-list features-component-key'>". implode(' ', $list) ."</span>";
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/flag/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/README.txt b/drupal/sites/default/boinc/modules/contrib/flag/README.txt
new file mode 100644
index 0000000..5ee77af
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/README.txt
@@ -0,0 +1,100 @@
+
+You may want to visit the handbook of this module, at:
+
+  http://drupal.org/handbook/modules/flag
+
+The Flag module is a flexible flagging system whose primary goal is
+to give all the control to the administrator. Using this module, the
+site administrator can provide an arbitrary number of 'flags'.
+
+A flag is really just a boolean toggle that is set on a node, comment,
+or user. Flags may be per-user, meaning that each user can flag an item
+individually, or global, meaning that the item is either flagged or it
+is not flagged, and any user who changes that changes it for everyone.
+
+In this way, additional flags (similar to 'published' and 'sticky') can 
+be put on nodes, or other items, and dealt with by the system however 
+the administration likes.
+
+Each flag allows the administrator to choose the 'flag this' text, and
+the place where the user interface for flagging the item will appear
+(For example: for nodes, whether a flagging link appears on the node
+teaser as well on the full node view).
+
+Each flag can be restricted to use only by certain roles. Each
+flag provides data to the Views module, and provides a default
+view to list 'My bookmarks'. These default views are somewhat crude,
+but are easily tailored to whatever the system administrator would like
+it to do. 
+
+Each flag also provides an 'argument' to the Views module that can be 
+used to allow a user to view other people's flagged content. This isn't 
+turned on by default anywhere, though, and the administrator will need 
+to construct a view in order to take advantage of it.
+
+The module will come installed with a simple flag called "bookmarks" and 
+a simple view for 'My bookmarks'. This is a default view provided by the 
+Flag module, but can be customized to fit the needs of your site. To 
+customize this view, go to admin/build/views and find the 
+'flags_bookmarks' view. Click the 'Add' action to customize the view. 
+Once saved, the new version of the view will be used rather than the one 
+provided by Flag.
+
+Besides editing the default view that comes with the module, Flag
+provides many views filters, fields, and sort criteria to make all sorts of
+displays possible relating to the number of times an item has been flagged.
+
+This module was formerly known as Views Bookmark, which was originally was
+written by Earl Miles. Flag was written by Nathan Haug and mystery man Mooffie.
+
+This module built by robots: http://www.lullabot.com
+
+Recommended Modules
+-------------------
+- Views
+- Session API
+
+Installation
+------------
+1) Copy the flag directory to the modules folder in your installation.
+
+2) Enable the module using Administer -> Modules (/admin/build/modules)
+
+Optional Installation
+---------------------
+1) The ability for anonymous users to flag content is provided by the Session
+   API module, available at http://drupal.org/project/session_api.
+
+Configuration
+-------------
+The configuration for Flag is spread between Views configuration
+and the Flag site building page. To configure:
+
+1) Configure the flags for your site at
+   Administer -> Site Building -> Flags (/admin/build/flags)
+
+   You can create and edit flags on this page. Descriptions for the various
+   options are provided below each field on the flag edit form.
+
+2) Go to the Views building pages at
+   Administer -> Site Building -> Views (/admin/build/views)
+
+   A default view is provided to get you started organizing your flags. You
+   can override the view or use it as a template to control the display of your
+   flags.
+
+Support
+-------
+If you experience a problem with flag or have a problem, file a
+request or issue on the flag queue at
+http://drupal.org/project/issues/flag. DO NOT POST IN THE FORUMS.
+Posting in the issue queues is a direct line of communication with the module
+authors.
+
+No guarantee is provided with this software, no matter how critical your
+information, module authors are not responsible for damage caused by this
+software or obligated in any way to correct problems you may experience.
+
+Licensed under the GPL 2.0.
+http://www.gnu.org/licenses/gpl-2.0.txt
+
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag.api.php b/drupal/sites/default/boinc/modules/contrib/flag/flag.api.php
new file mode 100644
index 0000000..29cedad
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag.api.php
@@ -0,0 +1,252 @@
+<?php
+
+/**
+ * @file
+ * Hooks provided by the Flag module.
+ */
+
+/**
+ * @addtogroup hooks
+ * @{
+ */
+
+/**
+ * Define one or more flag types.
+ *
+ * @return
+ *  An array whose keys are flag type names and whose values are properties of
+ *  the flag type.
+ *  Flag type names must match the content type (in the rest of Drupal: entity
+ *  type) a flag type works with.
+ *  Properties for flag types are as follows:
+ *  - 'title': The main label of the flag type.
+ *  - 'description': A longer description shown in the UI when creating a new
+ *    flag.
+ *  - 'handler': The name of the class implementing this flag type.
+ *
+ * @see flag_fetch_definition()
+ */
+function hook_flag_definitions() {
+  return array(
+    'node' => array(
+      'title' => t('Nodes'),
+      'description' => t("Nodes are a Drupal site's primary content."),
+      'handler' => 'flag_node',
+    ),
+  );
+}
+
+/**
+ * Alter flag type definitions provided by other modules.
+ *
+ * @param $definitions
+ *  An array of flag definitions returned by hook_flag_definitions().
+ */
+function hook_flag_definitions_alter(&$definitions) {
+
+}
+
+/**
+ * Define default flags.
+ */
+function hook_flag_default_flags() {
+
+}
+
+/**
+ * Allow modules to alter a flag when it is initially loaded.
+ *
+ * @see flag_get_flags().
+ */
+function hook_flag_alter(&$flag) {
+
+}
+
+/**
+ * Alter a flag's default options.
+ *
+ * Modules that wish to extend flags and provide additional options must declare
+ * them here so that their additions to the flag admin form are saved into the
+ * flag object.
+ *
+ * @param $options
+ *  The array of default options for the flag type, with the options for the
+ *  flag's link type merged in.
+ * @param $flag
+ *  The flag object.
+ *
+ * @see flag_flag::options()
+ */
+function hook_flag_options_alter(&$options, $flag) {
+
+}
+
+/**
+ * Act on a flagging.
+ *
+ * @param $op
+ *  The operation being performed: one of 'flag' or 'unflag'.
+ * @param $flag
+ *  The flag object.
+ * @param $content_id
+ *  The id of the content (aka entity) the flag is on.
+ * @param $account
+ *  The user account performing the action.
+ * @param $fcid
+ *  The id of the flagging in the {flag_content} table.
+ */
+function hook_flag($op, $flag, $content_id, $account, $fcid) {
+
+}
+
+/**
+ * Allow modules to allow or deny access to flagging.
+ *
+ * @param $flag
+ *  The flag object.
+ * @param $content_id
+ *  The id of the entity in question.
+ * @param $action
+ *  The action to test. Either 'flag' or 'unflag'.
+ * @param $account
+ *  The user on whose behalf to test the flagging action.
+ *
+ * @return
+ *   Boolean TRUE if the user is allowed to flag/unflag the given content.
+ *   FALSE otherwise.
+ *
+ * @see flag_flag:access()
+ */
+function hook_flag_access($flag, $content_id, $action, $account) {
+
+}
+
+/**
+ * Allow modules to allow or deny access to flagging.
+ *
+ * @param $flag
+ *  The flag object.
+ * @param $content_ids
+ *  An array of object ids to check access.
+ * @param $account
+ *  The user on whose behalf to test the flagging action.
+ *
+ * @return
+ *   An array whose keys are the object IDs and values are booleans indicating
+ *   access.
+ *
+ * @see hook_flag_access()
+ * @see flag_flag:access_multiple()
+ */
+function hook_flag_access_multiple($flag, $content_ids, $account) {
+
+}
+
+/**
+ * Define one or more flag link types.
+ *
+ * Link types defined here must be returned by this module's hook_flag_link().
+ *
+ * @return
+ *  An array of one or more types, keyed by the machine name of the type, and
+ *  where each value is a link type definition as an array with the following
+ *  properties:
+ *  - 'title': The human-readable name of the type.
+ *  - 'description': The description of the link type.
+ *  - 'options': An array of extra options for the link type.
+ *  - 'uses standard js': Boolean, indicates whether the link requires Flag
+ *    module's own JS file for links.
+ *  - 'uses standard css': Boolean, indicates whether the link requires Flag
+ *    module's own CSS file for links.
+ *
+ * @see flag_get_link_types()
+ * @see hook_flag_link_types_alter()
+ */
+function hook_flag_link_types() {
+
+}
+
+/**
+ * Alter other modules' definitions of flag link types.
+ *
+ * @param $link_types
+ *  An array of the link types defined by all modules.
+ *
+ * @see flag_get_link_types()
+ * @see hook_flag_link_types()
+ */
+function hook_flag_link_types_alter(&$link_types) {
+
+}
+
+/**
+ * Return the link for the link types this module defines.
+ *
+ * The type of link to be produced is given by $flag->link_type.
+ *
+ * When Flag uses a link type provided by this module, it will call this
+ * implementation of hook_flag_link(). This should return a single link's
+ * attributes, using the same structure as hook_link(). Note that "title" is
+ * provided by the Flag configuration if not specified here.
+ *
+ * @param $flag
+ *   The full flag object for the flag link being generated.
+ * @param $action
+ *   The action this link should perform. Either 'flag' or 'unflag'.
+ * @param $content_id
+ *   The ID of the node, comment, user, or other object being flagged. The type
+ *   of the object can be deduced from the flag type.
+ *
+ * @return
+ *   An array defining properties of the link.
+ *
+ * @see hook_flag_link_types()
+ * @see template_preprocess_flag()
+ */
+function hook_flag_link() {
+
+}
+
+/**
+ * Act on flag deletion.
+ *
+ * This is invoked after all the flag database tables have had their relevant
+ * entries deleted.
+ *
+ * @param $flag
+ *  The flag object that has been deleted.
+ */
+function hook_flag_delete($flag) {
+
+}
+
+/**
+ * Act when a flag is reset.
+ *
+ * @param $flag
+ *  The flag object.
+ * @param $entity_id
+ *  The entity ID on which all flaggings are to be removed. May be NULL, in
+ *  which case all of this flag's entities are to be unflagged.
+ * @param $rows
+ *  Database rows from the {flagging} table.
+ *
+ * @see flag_reset_flag()
+ */
+function hook_flag_reset($flag, $entity_id, $rows) {
+
+}
+
+/**
+ * Alter the javascript structure that describes the flag operation.
+ *
+ * @param $flag
+ *   The full flag object.
+ * @param $content_id
+ *   The ID of the node, comment, user or other object being flagged.
+ *
+ * @see flag_build_javascript_info()
+ */
+function hook_flag_javascript_info_alter() {
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag.inc b/drupal/sites/default/boinc/modules/contrib/flag/flag.inc
new file mode 100644
index 0000000..3d21d22
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag.inc
@@ -0,0 +1,1934 @@
+<?php
+
+/**
+ * @file
+ * Implements various flags. Uses object oriented style inspired by that
+ * of Views 2.
+ */
+
+/**
+ * Implementation of hook_flag_definitions().
+ *
+ * Defines the flag types this module implements.
+ *
+ * @return
+ *   An "array of arrays", keyed by content-types. The 'handler' slot
+ *   should point to the PHP class implementing this flag.
+ */
+function flag_flag_definitions() {
+  $definitions = array(
+    'node' => array(
+      'title' => t('Nodes'),
+      'description' => t("Nodes are a Drupal site's primary content."),
+      'handler' => 'flag_node',
+    ),
+    'user' => array(
+      'title' => t('Users'),
+      'description' => t('Users who have created accounts on your site.'),
+      'handler' => 'flag_user',
+    ),
+  );
+
+  if (module_exists('comment')) {
+    $definitions['comment'] = array(
+      'title' => t('Comments'),
+      'description' => t('Comments are responses to node content.'),
+      'handler' => 'flag_comment',
+    );
+  }
+
+  return $definitions;
+}
+
+/**
+ * Returns a flag definition.
+ */
+function flag_fetch_definition($content_type = NULL) {
+  static $defintions;
+  if (!isset($defintions)) {
+    $defintions = module_invoke_all('flag_definitions');
+    drupal_alter('flag_definitions', $defintions);
+    if (!isset($defintions['node'])) {
+      // We want our API to be available in hook_install, but our module is not
+      // enabled by then, so let's load our implementation directly:
+      $defintions += flag_flag_definitions();
+    }
+  }
+
+  if (isset($content_type)) {
+    if (isset($defintions[$content_type])) {
+      return $defintions[$content_type];
+    }
+  }
+  else {
+    return $defintions;
+  }
+}
+
+/**
+ * Returns all flag types defined on the system.
+ */
+function flag_get_types() {
+  static $types;
+  if (!isset($types)) {
+    $types = array_keys(flag_fetch_definition());
+  }
+  return $types;
+}
+
+/**
+ * Instantiates a new flag handler. A flag handler is more commonly know as "a
+ * flag". A factory method usually populates this empty flag with settings
+ * loaded from the database.
+ */
+function flag_create_handler($content_type) {
+  $definition = flag_fetch_definition($content_type);
+  if (isset($definition) && class_exists($definition['handler'])) {
+    $handler = new $definition['handler'];
+  }
+  else  {
+    $handler = new flag_broken;
+  }
+  $handler->content_type = $content_type;
+  $handler->construct();
+  return $handler;
+}
+
+/**
+ * This abstract class represents a flag, or, in Views 2 terminology, "a handler".
+ *
+ * This is the base class for all flag implementations. Notable derived
+ * classes are flag_node and flag_comment.
+ */
+class flag_flag {
+
+  /**
+   * The database ID.
+   *
+   * NULL for flags that haven't been saved to the database yet.
+   *
+   * @var integer
+   */
+  var $fid = NULL;
+
+  /**
+   * The content type (aka entity type) this flag works with.
+   *
+   * @var string
+   */
+  var $content_type = NULL;
+
+  /**
+   * The flag's "machine readable" name.
+   *
+   * @var string
+   */
+  var $name = '';
+
+  /**
+   * The human-readable title for this flag.
+   *
+   * @var string
+   */
+  var $title = '';
+
+  /**
+   * Whether this flag state should act as a single toggle to all users.
+   *
+   * @var bool
+   */
+  var $global = FALSE;
+
+  /**
+   * The sub-types, AKA bundles, this flag applies to.
+   *
+   * @var array
+   */
+  var $types = array();
+
+  /**
+   * Creates a flag from a database row. Returns it.
+   *
+   * This is static method.
+   *
+   * The reason this isn't a non-static instance method --like Views's init()--
+   * is because the class to instantiate changes according to the 'content_type'
+   * database column. This design pattern is known as the "Single Table
+   * Inheritance".
+   */
+  static function factory_by_row($row) {
+    $flag = flag_create_handler($row->content_type);
+
+    // Lump all data unto the object...
+    foreach ($row as $field => $value) {
+      $flag->$field = $value;
+    }
+    // ...but skip the following two.
+    unset($flag->options, $flag->type);
+
+    // Populate the options with the defaults.
+    $options = (array) unserialize($row->options);
+    $options += $flag->options();
+
+    // Make the unserialized options accessible as normal properties.
+    foreach ($options as $option => $value) {
+      $flag->$option = $value;
+    }
+
+    if (!empty($row->type)) {
+      // The loop loading from the database should further populate this property.
+      $flag->types[] = $row->type;
+    }
+
+    return $flag;
+  }
+
+  /**
+   * Create a complete flag (except an FID) from an array definition.
+   */
+  static function factory_by_array($config) {
+    $flag = flag_create_handler($config['content_type']);
+
+    foreach ($config as $option => $value) {
+      $flag->$option = $value;
+    }
+
+    if (isset($config['locked']) && is_array($config['locked'])) {
+      $flag->locked = drupal_map_assoc($config['locked']);
+    }
+
+    return $flag;
+  }
+
+  /**
+   * Another factory method. Returns a new, "empty" flag; e.g., one suitable for
+   * the "Add new flag" page.
+   */
+  static function factory_by_content_type($content_type) {
+    return flag_create_handler($content_type);
+  }
+
+  /**
+   * Declares the options this flag supports, and their default values.
+   *
+   * Derived classes should want to override this.
+   */
+  function options() {
+    $options = array(
+      // The text for the "flag this" link for this flag.
+      'flag_short' => '',
+      // The description of the "flag this" link.
+      'flag_long' => '',
+      // Message displayed after flagging content.
+      'flag_message' => '',
+      // Likewise but for unflagged.
+      'unflag_short' => '',
+      'unflag_long' => '',
+      'unflag_message' => '',
+      'unflag_denied_text' => '',
+      // The link type used by the flag, as defined in hook_flag_link_types().
+      'link_type' => 'toggle',
+      'roles' => array(
+        'flag' => array(DRUPAL_AUTHENTICATED_RID),
+        'unflag' => array(DRUPAL_AUTHENTICATED_RID),
+      ),
+      'weight' => 0,
+    );
+
+    // Merge in options from the current link type.
+    $link_type = $this->get_link_type();
+    $options = array_merge($options, $link_type['options']);
+
+    // Allow other modules to change the flag options.
+    drupal_alter('flag_options', $options, $this);
+    return $options;
+  }
+  /**
+   * Provides a form for setting options.
+   *
+   * Derived classes should want to override this.
+   */
+  function options_form(&$form) {
+  }
+
+  /**
+   * Default constructor. Loads the default options.
+   */
+  function construct() {
+    $options = $this->options();
+    foreach ($options as $option => $value) {
+      $this->$option = $value;
+    }
+  }
+
+  /**
+   * Update the flag with settings entered in a form.
+   */
+  function form_input($form_values) {
+    // Load the form fields indiscriminately unto the flag (we don't care about
+    // stray FormAPI fields because we aren't touching unknown properties anyway.
+    foreach ($form_values as $field => $value) {
+      $this->$field = $value;
+    }
+    // But checkboxes need some massaging:
+    $this->roles['flag'] = array_values(array_filter($this->roles['flag']));
+    $this->roles['unflag'] = array_values(array_filter($this->roles['unflag']));
+    $this->types = array_values(array_filter($this->types));
+    // Clear internal titles cache:
+    $this->get_title(NULL, TRUE);
+  }
+
+  /**
+   * Validates this flag's options.
+   *
+   * @return
+   *   A list of errors encountered while validating this flag's options.
+   */
+  function validate() {
+    // TODO: It might be nice if this used automatic method discovery rather
+    // than hard-coding the list of validate functions.
+    return array_merge_recursive(
+      $this->validate_name(),
+      $this->validate_access()
+    );
+  }
+
+  /**
+   * Validates that the current flag's name is valid.
+   *
+   * @return
+   *   A list of errors encountered while validating this flag's name.
+   */
+  function validate_name() {
+    $errors = array();
+
+    // Ensure a safe machine name.
+    if (!preg_match('/^[a-z_][a-z0-9_]*$/', $this->name)) {
+      $errors['name'][] = array(
+        'error' => 'flag_name_characters',
+        'message' => t('The flag name may only contain lowercase letters, underscores, and numbers.'),
+      );
+    }
+    // Ensure the machine name is unique.
+    $flag = flag_get_flag($this->name);
+    if (!empty($flag) && (!isset($this->fid) || $flag->fid != $this->fid)) {
+      $errors['name'][] = array(
+        'error' => 'flag_name_unique',
+        'message' => t('Flag names must be unique. This flag name is already in use.'),
+      );
+    }
+
+    return $errors;
+  }
+
+  /**
+   * Validates that the current flag's access settings are valid.
+   */
+  function validate_access() {
+    $errors = array();
+
+    // Require an unflag access denied message a role is not allowed to unflag.
+    if (empty($this->unflag_denied_text)) {
+      foreach ($this->roles['flag'] as $key => $rid) {
+        if ($rid && empty($this->roles['unflag'][$key])) {
+          $errors['unflag_denied_text'][] = array(
+            'error' => 'flag_denied_text_required',
+            'message' => t('The "Unflag not allowed text" is required if any user roles are not allowed to unflag.'),
+          );
+          break;
+        }
+      }
+    }
+
+    // Do not allow unflag access without flag access.
+    foreach ($this->roles['unflag'] as $key => $rid) {
+      if ($rid && empty($this->roles['flag'][$key])) {
+        $errors['roles'][] = array(
+          'error' => 'flag_roles_unflag',
+          'message' => t('Any user role that has the ability to unflag must also have the ability to flag.'),
+        );
+        break;
+      }
+    }
+
+    return $errors;
+  }
+
+  /**
+   * Fetches, possibly from some cache, a content object this flag works with.
+   */
+  function fetch_content($content_id, $object_to_remember = NULL) {
+    static $cache = array();
+    if (isset($object_to_remember)) {
+      $cache[$content_id] = $object_to_remember;
+    }
+    if (!array_key_exists($content_id, $cache)) {
+      $content = $this->_load_content($content_id);
+      $cache[$content_id] = $content ? $content : NULL;
+    }
+    return $cache[$content_id];
+  }
+
+  /**
+   * Loads a content object this flag works with.
+   * Derived classes must implement this.
+   *
+   * @abstract
+   * @private
+   * @static
+   */
+  function _load_content($content_id) {
+    return NULL;
+  }
+
+  /**
+   * Stores some object in fetch_content()'s cache, so subsequenet calls to
+   * fetch_content() return it.
+   *
+   * This is needed because otherwise fetch_object() loads the object from the
+   * database (by calling _load_content()), whereas sometimes we want to fetch
+   * an object that hasn't yet been saved to the database. See flag_nodeapi().
+   */
+  function remember_content($content_id, $object) {
+    $this->fetch_content($content_id, $object);
+  }
+
+  /**
+   * @defgroup access Access control
+   * @{
+   */
+
+  /**
+   * Returns TRUE if the flag applies to the given content.
+   *
+   * Derived classes must implement this.
+   *
+   * @abstract
+   */
+  function applies_to_content_object($content) {
+    return FALSE;
+  }
+
+  /**
+   * Returns TRUE if the flag applies to the content with the given ID.
+   *
+   * This is a convenience method that simply loads the object and calls
+   * applies_to_content_object(). If you already have the object, don't call
+   * this function: call applies_to_content_object() directly.
+   */
+  function applies_to_content_id($content_id) {
+    return $this->applies_to_content_object($this->fetch_content($content_id));
+  }
+
+  /**
+   * Determines whether the user has access to use this flag.
+   *
+   * @param $action
+   *   Optional. The action to test, either "flag" or "unflag". If none given,
+   *   "flag" will be tested, which is the minimum permission to use a flag.
+   * @param $account
+   *   Optional. The user object. If none given, the current user will be used.
+   *
+   * @return
+   *   Boolean TRUE if the user is allowed to flag/unflag. FALSE otherwise.
+   */
+  function user_access($action = 'flag', $account = NULL) {
+    if (!isset($account)) {
+      $account = $GLOBALS['user'];
+    }
+
+    // Anonymous user can't use this system unless Session API is installed.
+    if ($account->uid == 0 && !module_exists('session_api')) {
+      return FALSE;
+    }
+
+    $matched_roles = array_intersect($this->roles[$action], array_keys($account->roles));
+    return !empty($matched_roles) || $account->uid == 1;
+  }
+
+  /**
+   * Determines whether the user may flag, or unflag, the given content.
+   *
+   * This method typically should not be overridden by child classes. Instead
+   * they should implement type_access(), which is called by this method.
+   *
+   * @param $content_id
+   *   The content ID to flag/unflag.
+   * @param $action
+   *   The action to test. Either 'flag' or 'unflag'. Leave NULL to determine
+   *   by flag status.
+   * @param $account
+   *   The user on whose behalf to test the flagging action. Leave NULL for the
+   *   current user.
+   *
+   * @return
+   *   Boolean TRUE if the user is allowed to flag/unflag the given content.
+   *   FALSE otherwise.
+   */
+  function access($content_id, $action = NULL, $account = NULL) {
+    if (!isset($account)) {
+      $account = $GLOBALS['user'];
+    }
+
+    if (isset($content_id) && !$this->applies_to_content_id($content_id)) {
+      // Flag does not apply to this content.
+      return FALSE;
+    }
+
+    if (!isset($action)) {
+      $uid = $account->uid;
+      $sid = flag_get_sid($uid);
+      $action = $this->is_flagged($content_id, $uid, $sid) ? 'unflag' : 'flag';
+    }
+
+    // Base initial access on the user's basic permission to use this flag.
+    $access = $this->user_access($action, $account);
+
+    // Check for additional access rules provided by sub-classes.
+    $child_access = $this->type_access($content_id, $action, $account);
+    if (isset($child_access)) {
+      $access = $child_access;
+    }
+
+    // Allow modules to disallow (or allow) access to flagging.
+    $access_array = module_invoke_all('flag_access', $this, $content_id, $action, $account);
+
+    foreach ($access_array as $set_access) {
+      if (isset($set_access)) {
+        $access = $set_access;
+      }
+    }
+
+    return $access;
+  }
+
+  /**
+   * Determine access to multiple objects.
+   *
+   * Similar to user_access() but works on multiple IDs at once. Called in the
+   * pre_render() stage of the 'Flag links' field within Views to find out where
+   * that link applies. The reason we do a separate DB query, and not lump this
+   * test in the Views query, is to make 'many to one' tests possible without
+   * interfering with the rows, and also to reduce the complexity of the code.
+   *
+   * This method typically should not be overridden by child classes. Instead
+   * they should implement type_access_multiple(), which is called by this
+   * method.
+   *
+   * @param $content_ids
+   *   The array of content IDs to check. The keys are the content IDs, the
+   *   values are the actions to test: either 'flag' or 'unflag'.
+   * @param $account
+   *   Optional. The account for which the actions will be compared against.
+   *   If left empty, the current user will be used.
+   *
+   * @return
+   *   An array whose keys are the object IDs and values are booleans indicating
+   *   access.
+   *
+   * @see hook_flag_access_multiple()
+   */
+  function access_multiple($content_ids, $account = NULL) {
+    $account = isset($account) ? $account : $GLOBALS['user'];
+    $access = array();
+
+    // First check basic user access for this action.
+    foreach ($content_ids as $content_id => $action) {
+      $access[$content_id] = $this->user_access($content_ids[$content_id], $account);
+    }
+
+    // Check for additional access rules provided by sub-classes.
+    $child_access = $this->type_access_multiple($content_ids, $account);
+    if (isset($child_access)) {
+      foreach ($child_access as $content_id => $content_access) {
+        if (isset($content_access)) {
+          $access[$content_id] = $content_access;
+        }
+      }
+    }
+
+    // Merge in module-defined access.
+    foreach (module_implements('flag_access_multiple') as $module) {
+      $module_access = module_invoke($module, 'flag_access_multiple', $this, $content_ids, $account);
+      foreach ($module_access as $content_id => $content_access) {
+        if (isset($content_access)) {
+          $access[$content_id] = $content_access;
+        }
+      }
+    }
+
+    return $access;
+  }
+
+  /**
+   * Implements access() implemented by each child class.
+   *
+   * @abstract
+   */
+  function type_access($content_id, $action, $account) {
+    return NULL;
+  }
+
+  /**
+   * Implements access_multiple() implemented by each child class.
+   *
+   * @abstract
+   */
+  function type_access_multiple($content_ids, $account) {
+    return array();
+  }
+
+  /**
+   * @} End of "defgroup access".
+   */
+
+  /**
+   * Given a content object, returns its ID.
+   * Derived classes must implement this.
+   *
+   * @abstract
+   */
+  function get_content_id($content) {
+    return NULL;
+  }
+
+  /**
+   * Returns TRUE if the flag is configured to show the flag-link using hook_link.
+   * Derived classes are likely to implement this.
+   */
+  function uses_hook_link($teaser) {
+    return FALSE;
+  }
+
+  /**
+   * Returns TRUE if this flag requires anonymous user cookies.
+   */
+  function uses_anonymous_cookies() {
+    global $user;
+    return $user->uid == 0 && variable_get('cache', 0);
+  }
+
+  /**
+   * Flags, or unflags, an item.
+   *
+   * @param $action
+   *   Either 'flag' or 'unflag'.
+   * @param $content_id
+   *   The ID of the item to flag or unflag.
+   * @param $account
+   *   The user on whose behalf to flag. Leave empty for the current user.
+   * @param $skip_permission_check
+   *   Flag the item even if the $account user don't have permission to do so.
+   * @return
+   *   FALSE if some error occured (e.g., user has no permission, flag isn't
+   *   applicable to the item, etc.), TRUE otherwise.
+   */
+  function flag($action, $content_id, $account = NULL, $skip_permission_check = FALSE) {
+     // Get the user.
+    if (!isset($account)) {
+      $account = $GLOBALS['user'];
+    }
+    if (!$account) {
+      return FALSE;
+    }
+
+    // Check access and applicability.
+    if (!$skip_permission_check) {
+      if (!$this->access($content_id, $action, $account)) {
+        // User has no permission to flag/unflag this object.
+        return FALSE;
+      }
+    }
+    else {
+      // We are skipping permission checks. However, at a minimum we must make
+      // sure the flag applies to this content type:
+      if (!$this->applies_to_content_id($content_id)) {
+        return FALSE;
+      }
+    }
+
+    // Clear various caches; We don't want code running after us to report
+    // wrong counts or false flaggings.
+    flag_get_counts(NULL, NULL, TRUE);
+    flag_get_user_flags(NULL, NULL, NULL, NULL, TRUE);
+
+    // Find out which user id to use.
+    $uid = $this->global ? 0 : $account->uid;
+
+    // Find out which session id to use.
+    if ($this->global) {
+      $sid = 0;
+    }
+    else {
+      $sid = flag_get_sid($uid, TRUE);
+      // Anonymous users must always have a session id.
+      if ($sid == 0 && $account->uid == 0) {
+        return FALSE;
+      }
+    }
+
+    // Perform the flagging or unflagging of this flag.
+    $flagged = $this->_is_flagged($content_id, $uid, $sid);
+    if ($action == 'unflag') {
+      if ($this->uses_anonymous_cookies()) {
+        $this->_unflag_anonymous($content_id);
+      }
+      if ($flagged) {
+        $fcid = $this->_unflag($content_id, $uid, $sid);
+        module_invoke_all('flag', 'unflag', $this, $content_id, $account, $fcid);
+      }
+    }
+    elseif ($action == 'flag') {
+      if ($this->uses_anonymous_cookies()) {
+        $this->_flag_anonymous($content_id);
+      }
+      if (!$flagged) {
+        $fcid = $this->_flag($content_id, $uid, $sid);
+        module_invoke_all('flag', 'flag', $this, $content_id, $account, $fcid);
+      }
+    }
+
+    return TRUE;
+  }
+
+  /**
+   * Determines if a certain user has flagged this content.
+   *
+   * Thanks to using a cache, inquiring several different flags about the same
+   * item results in only one SQL query.
+   *
+   * @param $uid
+   *   Optional. The user ID whose flags we're checking. If none given, the
+   *   current user will be used.
+   *
+   * @return
+   *   TRUE if the content is flagged, FALSE otherwise.
+   */
+  function is_flagged($content_id, $uid = NULL, $sid = NULL) {
+    return (bool) $this->get_flagging_record($content_id, $uid, $sid);
+  }
+
+  /**
+   * Returns the flagging record.
+   *
+   * This method returns the "flagging record": the {flag_content} record that
+   * exists for each flagged item (for a certain user). If the item isn't
+   * flagged, returns NULL. This method could be useful, for example, when you
+   * want to find out the 'fcid' or 'timestamp' values.
+   *
+   * Thanks to using a cache, inquiring several different flags about the same
+   * item results in only one SQL query.
+   *
+   * Parameters are the same as is_flagged()'s.
+   */
+  function get_flagging_record($content_id, $uid = NULL, $sid = NULL) {
+    $uid = $this->global ? 0 : (!isset($uid) ? $GLOBALS['user']->uid : $uid);
+    $sid = $this->global ? 0 : (!isset($sid) ? flag_get_sid($uid) : $sid);
+
+    // flag_get_user_flags() does caching.
+    $user_flags = flag_get_user_flags($this->content_type, $content_id, $uid, $sid);
+    return isset($user_flags[$this->name]) ? $user_flags[$this->name] : NULL;
+  }
+
+  /**
+   * Determines if a certain user has flagged this content.
+   *
+   * You probably shouldn't call this raw private method: call the
+   * is_flagged() method instead.
+   *
+   * This method is similar to is_flagged() except that it does direct SQL and
+   * doesn't do caching. Use it when you want to not affect the cache, or to
+   * bypass it.
+   *
+   * @return
+   *   If the content is flagged, returns the value of the 'fcid' column.
+   *   Else, returns FALSE.
+   *
+   * @private
+   */
+  function _is_flagged($content_id, $uid, $sid) {
+    return db_result(db_query("SELECT fcid FROM {flag_content} WHERE fid = %d AND uid = %d AND sid = %d AND content_id = %d", $this->fid, $uid, $sid, $content_id));
+  }
+
+  /**
+   * A low-level method to flag content.
+   *
+   * You probably shouldn't call this raw private method: call the flag()
+   * function instead.
+   *
+   * @return
+   *   The 'fcid' column of the new {flag_content} record.
+   *
+   * @private
+   */
+  function _flag($content_id, $uid, $sid) {
+    db_query("INSERT INTO {flag_content} (fid, content_type, content_id, uid, sid, timestamp) VALUES (%d, '%s', %d, %d, %d, %d)", $this->fid, $this->content_type, $content_id, $uid, $sid, time());
+    $fcid = db_last_insert_id('flag_content', 'fcid');
+    $this->_increase_count($content_id);
+    return $fcid;
+  }
+
+  /**
+   * A low-level method to unflag content.
+   *
+   * You probably shouldn't call this raw private method: call the flag()
+   * function instead.
+   *
+   * @return
+   *   If the content was flagged, returns the value of the now deleted 'fcid'
+   *   column. Else, returns FALSE.
+   *
+   * @private
+   */
+  function _unflag($content_id, $uid, $sid) {
+    $fcid = db_result(db_query("SELECT fcid FROM {flag_content} WHERE fid = %d AND content_id = %d AND uid = %d AND sid = %d", $this->fid, $content_id, $uid, $sid));
+    if ($fcid) {
+      db_query("DELETE FROM {flag_content} WHERE fcid = %d", $fcid);
+      $this->_decrease_count($content_id);
+    }
+    return $fcid;
+  }
+
+  /**
+   * Increases the flag count for a piece of content.
+   *
+   * @param $content_id
+   *   For which item should the count be increased.
+   * @param $number
+   *   The amount of counts to increasing. Defaults to 1.
+   *
+   * @private
+   */
+  function _increase_count($content_id, $number = 1) {
+    $time = time();
+    db_query("UPDATE {flag_counts} SET count = count + %d, last_updated = %d WHERE fid = %d AND content_id = %d", $number, $time, $this->fid, $content_id);
+    if (!db_affected_rows()) {
+      db_query("INSERT INTO {flag_counts} (fid, content_type, content_id, count, last_updated) VALUES (%d, '%s', %d, %d, %d)", $this->fid, $this->content_type, $content_id, $number, $time);
+    }
+  }
+
+  /**
+   * Decreases the flag count for a piece of content.
+   *
+   * @param $content_id
+   *   For which item should the count be descreased.
+   * @param $number
+   *   The amount of counts to decrease. Defaults to 1.
+   *
+   * @private
+   */
+  function _decrease_count($content_id, $number = 1) {
+    $time = time();
+    db_query("UPDATE {flag_counts} SET count = count - %d, last_updated = %d WHERE fid = %d AND content_id = %d", $number, $time, $this->fid, $content_id);
+    // Delete rows with count 0, for data consistency and space-saving.
+    db_query("DELETE FROM {flag_counts} WHERE fid = %d and content_id = %d AND count = %d", $this->fid, $content_id, 0);
+  }
+
+  /**
+   * Set a cookie for anonymous users to record their flagging.
+   *
+   * @private
+   */
+  function _flag_anonymous($content_id) {
+    $storage = FlagCookieStorage::factory($this);
+    $storage->flag($content_id);
+  }
+
+  /**
+   * Remove the cookie for anonymous users to record their unflagging.
+   *
+   * @private
+   */
+  function _unflag_anonymous($content_id) {
+    $storage = FlagCookieStorage::factory($this);
+    $storage->unflag($content_id);
+  }
+
+  /**
+   * Returns the number of times an item is flagged.
+   *
+   * Thanks to using a cache, inquiring several different flags about the same
+   * item results in only one SQL query.
+   */
+  function get_count($content_id) {
+    $counts = flag_get_counts($this->content_type, $content_id);
+    return isset($counts[$this->name]) ? $counts[$this->name] : 0;
+  }
+
+  /**
+   * Returns the number of items a user has flagged.
+   *
+   * For global flags, pass '0' as the user ID and session ID.
+   */
+  function get_user_count($uid, $sid = NULL) {
+    if (!isset($sid)) {
+      $sid = flag_get_sid($uid);
+    }
+    return db_result(db_query('SELECT COUNT(*) FROM {flag_content} WHERE fid = %d AND uid = %d AND sid = %d', $this->fid, $uid, $sid));
+  }
+
+  /**
+   * Processes a flag label for display. This means language translation and
+   * token replacements.
+   *
+   * You should always call this function and not get at the label directly.
+   * E.g., do `print $flag->get_label('title')` instead of `print
+   * $flag->title`.
+   *
+   * @param $label
+   *   The label to get, e.g. 'title', 'flag_short', 'unflag_short', etc.
+   * @param $content_id
+   *   The ID in whose context to interpret tokens. If not given, only global
+   *   tokens will be substituted.
+   * @return
+   *   The processed label.
+   */
+  function get_label($label, $content_id = NULL) {
+    if (!isset($this->$label)) {
+      return;
+    }
+    $label = t($this->$label);
+    if (strpos($label, '[') !== FALSE && module_exists('token')) {
+      $label = $this->replace_tokens($label, array('global' => NULL), $content_id);
+    }
+    return filter_xss_admin($label);
+  }
+
+  /**
+   * Get the link type for this flag.
+   */
+  function get_link_type() {
+    $link_types = flag_get_link_types();
+    return (isset($this->link_type) && isset($link_types[$this->link_type])) ? $link_types[$this->link_type] : $link_types['normal'];
+  }
+
+  /**
+   * Replaces tokens in a label. Only the 'global' token context is recognized
+   * by default, so derived classes should override this method to add all
+   * token contexts they understand.
+   */
+  function replace_tokens($label, $contexts, $content_id) {
+    return token_replace_multiple($label, $contexts);
+  }
+
+  /**
+   * Returns the token types this flag understands in labels. These are used
+   * for narrowing down the token list shown in the help box to only the
+   * relevant ones.
+   *
+   * Derived classes should override this.
+   */
+  function get_labels_token_types() {
+    return array();
+  }
+
+  /**
+   * A convenience method for getting the flag title.
+   *
+   * `$flag->get_title()` is shorthand for `$flag->get_label('title')`.
+   */
+  function get_title($content_id = NULL, $reset = FALSE) {
+    static $titles = array();
+    if ($reset) {
+      $titles = array();
+    }
+    $slot = intval($content_id); // Convert NULL to 0.
+    if (!isset($titles[$this->fid][$slot])) {
+      $titles[$this->fid][$slot] = $this->get_label('title', $content_id);
+    }
+    return $titles[$this->fid][$slot];
+  }
+
+  /**
+   * Returns a 'flag action' object. It exists only for the sake of its
+   * informative tokens. Currently, it's utilized only for the 'mail' action.
+   *
+   * Derived classes should populate the 'content_title' and 'content_url'
+   * slots.
+   */
+  function get_flag_action($content_id) {
+    $flag_action = new stdClass();
+    $flag_action->flag = $this->name;
+    $flag_action->content_type = $this->content_type;
+    $flag_action->content_id = $content_id;
+    return $flag_action;
+  }
+
+  /**
+   * @addtogroup actions
+   * @{
+   * Methods that can be overridden to support Actions.
+   */
+
+  /**
+   * Returns an array of all actions that are executable with this flag.
+   */
+  function get_valid_actions() {
+    $actions = module_invoke_all('action_info');
+    foreach ($actions as $callback => $action) {
+      if ($action['type'] != $this->content_type && !isset($action['hooks'][$this->content_type])) {
+        unset($actions[$callback]);
+      }
+    }
+    return $actions;
+  }
+
+  /**
+   * Returns objects the action may possibly need. This method should return at
+   * least the 'primary' object the action operates on.
+   *
+   * This method is needed because get_valid_actions() returns actions that
+   * don't necessarily operate on an object of a type this flag manages. For
+   * example, flagging a comment may trigger an 'Unpublish post' action on a
+   * node; So the comment flag needs to tell the action about some node.
+   *
+   * Derived classes must implement this.
+   *
+   * @abstract
+   */
+  function get_relevant_action_objects($content_id) {
+    return array();
+  }
+
+  /**
+   * @} End of "addtogroup actions".
+   */
+
+  /**
+   * Methods that can be overridden to support the Rules module.
+   *
+   * @addtogroup rules
+   * @{
+   */
+
+  /**
+   * Defines the Rules arguments involved in a flag event.
+   */
+  function rules_get_event_arguments_definition() {
+    return array();
+  }
+
+  /**
+   * Defines the Rules argument for flag actions or conditions
+   */
+  function rules_get_element_argument_definition() {
+    return array();
+  }
+
+  /**
+   * @} End of "addtogroup rules".
+   */
+
+  /**
+   * @addtogroup views
+   * @{
+   * Methods that can be overridden to support the Views module.
+   */
+
+  /**
+   * Returns information needed for Views integration. E.g., the Views table
+   * holding the flagged content, its primary key, and various labels. See
+   * derived classes for examples.
+   *
+   * @static
+   */
+  function get_views_info() {
+    return array();
+  }
+
+  /**
+   * @} End of "addtogroup views".
+   */
+
+  /**
+   * Saves a flag to the database. It is a wrapper around update() and insert().
+   */
+  function save() {
+    if (isset($this->fid)) {
+      $this->update();
+      $this->is_new = FALSE;
+    }
+    else {
+      $this->insert();
+      $this->is_new = TRUE;
+    }
+    // Clear the page cache for anonymous users.
+    cache_clear_all('*', 'cache_page', TRUE);
+  }
+
+  /**
+   * Saves an existing flag to the database. Better use save().
+   */
+  function update() {
+    db_query("UPDATE {flags} SET name = '%s', title = '%s', global = %d, options = '%s' WHERE fid = %d", $this->name, $this->title, $this->global, $this->get_serialized_options(), $this->fid);
+    db_query("DELETE FROM {flag_types} WHERE fid = %d", $this->fid);
+    foreach ($this->types as $type) {
+      db_query("INSERT INTO {flag_types} (fid, type) VALUES (%d, '%s')", $this->fid, $type);
+    }
+  }
+
+  /**
+   * Saves a new flag to the database. Better use save().
+   */
+  function insert() {
+    db_query("INSERT INTO {flags} (content_type, name, title, global, options) VALUES ('%s', '%s', '%s', %d, '%s')", $this->content_type, $this->name, $this->title, $this->global, $this->get_serialized_options());
+    $this->fid = db_last_insert_id('flags', 'fid');
+    foreach ($this->types as $type) {
+      db_query("INSERT INTO {flag_types} (fid, type) VALUES (%d, '%s')", $this->fid, $type);
+    }
+  }
+
+  /**
+   * Options are stored serialized in the database.
+   */
+  function get_serialized_options() {
+    $option_names = array_keys($this->options());
+    $options = array();
+    foreach ($option_names as $option) {
+      $options[$option] = $this->$option;
+    }
+    return serialize($options);
+  }
+
+  /**
+   * Deletes a flag from the database.
+   */
+  function delete() {
+    db_query('DELETE FROM {flags} WHERE fid = %d', $this->fid);
+    db_query('DELETE FROM {flag_content} WHERE fid = %d', $this->fid);
+    db_query('DELETE FROM {flag_types} WHERE fid = %d', $this->fid);
+    db_query('DELETE FROM {flag_counts} WHERE fid = %d', $this->fid);
+    module_invoke_all('flag_delete', $this);
+  }
+
+  /**
+   * Returns TRUE if this flag's declared API version is compatible with this
+   * module.
+   *
+   * An "incompatible" flag is one exported (and now being imported or exposed
+   * via hook_flag_default_flags()) by a different version of the Flag module.
+   * An incompatible flag should be treated as a "black box": it should not be
+   * saved or exported because our code may not know to handle its internal
+   * structure.
+   */
+  function is_compatible() {
+    if (isset($this->fid)) {
+      // Database flags are always compatible.
+      return TRUE;
+    }
+    else {
+      if (!isset($this->api_version)) {
+        $this->api_version = 1;
+      }
+      return $this->api_version == FLAG_API_VERSION;
+    }
+  }
+
+  /**
+   * Finds the "default flag" corresponding to this flag.
+   *
+   * Flags defined in code ("default flags") can be overridden. This method
+   * returns the default flag that is being overridden by $this. Returns NULL
+   * if $this overrides no default flag.
+   */
+  function find_default_flag() {
+    if ($this->fid) {
+      $default_flags = flag_get_default_flags(TRUE);
+      if (isset($default_flags[$this->name])) {
+        return $default_flags[$this->name];
+      }
+    }
+  }
+
+  /**
+   * Reverts an overriding flag to its default state.
+   *
+   * Note that $this isn't altered. To see the reverted flag you'll have to
+   * call flag_get_flag($this->name) again.
+   *
+   * @return
+   *   TRUE if the flag was reverted successfully; FALSE if there was an error;
+   *   NULL if this flag overrides no default flag.
+   */
+  function revert() {
+    if (($default_flag = $this->find_default_flag())) {
+      if ($default_flag->is_compatible()) {
+        $default_flag = clone $default_flag;
+        $default_flag->fid = $this->fid;
+        $default_flag->save();
+        flag_get_flags(NULL, NULL, NULL, TRUE);
+        return TRUE;
+      }
+      else {
+        return FALSE;
+      }
+    }
+  }
+
+  /**
+   * Disable a flag provided by a module.
+   */
+  function disable() {
+    if (isset($this->module)) {
+      $flag_status = variable_get('flag_default_flag_status', array());
+      $flag_status[$this->name] = FALSE;
+      variable_set('flag_default_flag_status', $flag_status);
+    }
+  }
+
+  /**
+   * Enable a flag provided by a module.
+   */
+  function enable() {
+    if (isset($this->module)) {
+      $flag_status = variable_get('flag_default_flag_status', array());
+      $flag_status[$this->name] = TRUE;
+      variable_set('flag_default_flag_status', $flag_status);
+    }
+  }
+
+  /**
+   * Returns administrative menu path for carrying out some action.
+   */
+  function admin_path($action) {
+    if ($action == 'edit') {
+      // Since 'edit' is the default tab, we omit the action.
+      return FLAG_ADMIN_PATH . '/manage/' . $this->name;
+    }
+    else {
+      return FLAG_ADMIN_PATH . '/manage/' . $this->name . '/' . $action;
+    }
+  }
+
+  /**
+   * Renders a flag/unflag link. This is a wrapper around theme('flag') that,
+   * in Drupal 6, easily channels the call to the right template file.
+   *
+   * For parameters docmentation, see theme_flag().
+   */
+  function theme($action, $content_id, $after_flagging = FALSE) {
+    static $js_added = array();
+    global $user;
+
+    // If the flagging user is anonymous, set a boolean for the benefit of
+    // JavaScript code. Currently, only our "anti-crawlers" mechanism uses it.
+    if ($user->uid == 0 && !isset($js_added['anonymous'])) {
+      $js_added['anonymous'] = TRUE;
+      drupal_add_js(array('flag' => array('anonymous' => TRUE)), 'setting');
+    }
+
+    // If the flagging user is anonymous and the page cache is enabled, we
+    // update the links through JavaScript.
+    if ($this->uses_anonymous_cookies() && !$after_flagging) {
+      if ($this->global) {
+        // In case of global flags, the JavaScript template is to contain
+        // the opposite of the current state.
+        $js_action = ($action == 'flag' ? 'unflag' : 'flag');
+      }
+      else {
+        // In case of non-global flags, we always show the "flag!" link,
+        // and then replace it with the "unflag!" link through JavaScript.
+        $js_action = 'unflag';
+        $action = 'flag';
+      }
+      if (!isset($js_added[$this->name . '_' . $content_id])) {
+        $js_added[$this->name . '_' . $content_id] = TRUE;
+        $js_template = theme($this->theme_suggestions(), $this, $js_action, $content_id, $after_flagging);
+        drupal_add_js(array('flag' => array('templates' => array($this->name . '_' . $content_id => $js_template))), 'setting');
+      }
+    }
+
+    return theme($this->theme_suggestions(), $this, $action, $content_id, $after_flagging);
+  }
+
+  /**
+   * Provides an array of possible themes to try for a given flag.
+   */
+  function theme_suggestions() {
+    $suggestions = array();
+    $suggestions[] = 'flag__' . $this->name;
+    $suggestions[] = 'flag';
+    return $suggestions;
+  }
+}
+
+/**
+ * Implements a node flag.
+ */
+class flag_node extends flag_flag {
+  function options() {
+    $options = parent::options();
+    $options += array(
+      'show_on_page' => TRUE,
+      'show_on_teaser' => TRUE,
+      'show_on_form' => FALSE,
+      'access_author' => '',
+      'i18n' => 0,
+    );
+    return $options;
+  }
+
+  function options_form(&$form) {
+    parent::options_form($form);
+    // Support for i18n flagging requires Translation helpers module.
+    $form['i18n'] = array(
+      '#type' => 'radios',
+      '#title' => t('Internationalization'),
+      '#options' => array(
+        '1' => t('Flag translations of content as a group'),
+        '0' => t('Flag each translation of content separately'),
+      ),
+      '#default_value' => $this->i18n,
+      '#description' => t('Flagging translations as a group effectively allows users to flag the original piece of content regardless of the translation they are viewing. Changing this setting will <strong>not</strong> update content that has been flagged already.'),
+      '#access' => module_exists('translation_helpers'),
+      '#weight' => 5,
+    );
+
+    $form['access']['access_author'] = array(
+      '#type' => 'radios',
+      '#title' => t('Flag access by content authorship'),
+      '#options' => array(
+        '' => t('No additional restrictions'),
+        'own' => t('Users may only flag content they own'),
+        'others' => t('Users may only flag content of others'),
+      ),
+      '#default_value' => $this->access_author,
+      '#description' => t("Restrict access to this flag based on the user's ownership of the content. Users must also have access to the flag through the role settings."),
+    );
+
+    $form['display']['show_on_teaser'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display link on node teaser'),
+      '#default_value' => $this->show_on_teaser,
+      '#access' => empty($this->locked['show_on_teaser']),
+    );
+    $form['display']['show_on_page'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display link on node page'),
+      '#default_value' => $this->show_on_page,
+      '#access' => empty($this->locked['show_on_page']),
+    );
+    $form['display']['show_on_form'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display checkbox on node edit form'),
+      '#default_value' => $this->show_on_form,
+      '#description' => t('If you elect to have a checkbox on the node edit form, you may specify its initial state in the settings form <a href="@content-types-url">for each content type</a>.', array('@content-types-url' => url('admin/content/types'))),
+      '#access' => empty($this->locked['show_on_form']),
+    );
+  }
+
+  function _load_content($content_id) {
+    return is_numeric($content_id) ? node_load($content_id) : NULL;
+  }
+
+  function applies_to_content_object($node) {
+    if ($node && in_array($node->type, $this->types)) {
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  function type_access_multiple($content_ids, $account) {
+    $access = array();
+
+    // Ensure that only flaggable node types are granted access. This avoids a
+    // node_load() on every type, usually done by applies_to_content_id().
+    $nids = implode(',', array_map('intval', array_keys($content_ids)));
+    $placeholders = implode(',', array_fill(0, sizeof($this->types), "'%s'"));
+    $result = db_query("SELECT nid as content_id FROM {node} WHERE nid IN ($nids) AND type NOT IN ($placeholders)", $this->types);
+    while ($row = db_fetch_object($result)) {
+      $access[$row->content_id] = FALSE;
+    }
+
+    return $access;
+  }
+
+  function get_content_id($node) {
+    return $node->nid;
+  }
+
+  /**
+   * Adjust the Content ID to find the translation parent if i18n-enabled.
+   *
+   * @param $content_id
+   *   The nid for the content.
+   * @return
+   *   The tnid if available, the nid otherwise.
+   */
+  function get_translation_id($content_id) {
+    if ($this->i18n) {
+      $node = $this->fetch_content($content_id);
+      if (!empty($node->tnid)) {
+        $content_id = $node->tnid;
+      }
+    }
+    return $content_id;
+  }
+
+  function uses_hook_link($teaser) {
+    if ($teaser && $this->show_on_teaser || !$teaser && $this->show_on_page) {
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  function flag($action, $content_id, $account = NULL, $skip_permission_check = FALSE) {
+    $content_id = $this->get_translation_id($content_id);
+    return parent::flag($action, $content_id, $account, $skip_permission_check);
+  }
+
+  // Instead of overriding is_flagged() we override get_flagging_record(),
+  // which is the underlying method.
+  function get_flagging_record($content_id, $uid = NULL, $sid = NULL) {
+    $content_id = $this->get_translation_id($content_id);
+    return parent::get_flagging_record($content_id, $uid, $sid);
+  }
+
+  function get_labels_token_types() {
+    return array_merge(array('node'), parent::get_labels_token_types());
+  }
+
+  function replace_tokens($label, $contexts, $content_id) {
+    if (is_numeric($content_id) && ($node = $this->fetch_content($content_id))) {
+      $contexts['node'] = $node;
+    }
+    // Nodes accept the node-type as a $content_id in the case that a new node
+    // is being created and a full node object does not yet exist.
+    elseif (!empty($content_id) && ($type = node_get_types('type', $content_id))) {
+      $content_id = NULL;
+      $contexts['node'] = (object) array(
+        'nid' => NULL,
+        'type' => $type->type,
+        'title' => '',
+      );
+    }
+    return parent::replace_tokens($label, $contexts, $content_id);
+  }
+
+  function get_flag_action($content_id) {
+    $flag_action = parent::get_flag_action($content_id);
+    $node = $this->fetch_content($content_id);
+    $flag_action->content_title = $node->title;
+    $flag_action->content_url = _flag_url('node/' . $node->nid);
+    return $flag_action;
+  }
+
+  function get_valid_actions() {
+    $actions = module_invoke_all('action_info');
+    foreach ($actions as $callback => $action) {
+      if ($action['type'] != 'node' && !isset($action['hooks']['nodeapi'])) {
+        unset($actions[$callback]);
+      }
+    }
+    return $actions;
+  }
+
+  function get_relevant_action_objects($content_id) {
+    return array(
+      'node' => $this->fetch_content($content_id),
+    );
+  }
+
+  function rules_get_event_arguments_definition() {
+    return array(
+      'node' => array(
+        'type' => 'node',
+        'label' => t('flagged content'),
+        'handler' => 'flag_rules_get_event_argument',
+      ),
+      'node_author' => array(
+        'type' => 'user',
+        'label' => t('flagged content author'),
+        'handler' => 'flag_rules_get_node_author',
+      ),
+    );
+  }
+
+  function rules_get_element_argument_definition() {
+    return array('type' => 'node', 'label' => t('Flagged content'));
+  }
+
+  function get_views_info() {
+    return array(
+      'views table' => 'node',
+      'join field' => 'nid',
+      'title field' => 'title',
+      'title' => t('Node flag'),
+      'help' => t('Limit results to only those nodes flagged by a certain flag; Or display information about the flag set on a node.'),
+      'counter title' => t('Node flag counter'),
+      'counter help' => t('Include this to gain access to the flag counter field.'),
+    );
+  }
+}
+
+/**
+ * Implements a comment flag.
+ */
+class flag_comment extends flag_flag  {
+  function options() {
+    $options = parent::options();
+    $options += array(
+      'access_author' => '',
+      'show_on_comment' => TRUE,
+    );
+    return $options;
+  }
+
+  function options_form(&$form) {
+    parent::options_form($form);
+
+    $form['access']['access_author'] = array(
+      '#type' => 'radios',
+      '#title' => t('Flag access by content authorship'),
+      '#options' => array(
+        '' => t('No additional restrictions'),
+        'comment_own' => t('Users may only flag own comments'),
+        'comment_others' => t('Users may only flag comments by others'),
+        'node_own' => t('Users may only flag comments of nodes they own'),
+        'node_others' => t('Users may only flag comments of nodes by others'),
+      ),
+      '#default_value' => $this->access_author,
+      '#description' => t("Restrict access to this flag based on the user's ownership of the content. Users must also have access to the flag through the role settings."),
+    );
+
+    $form['display']['show_on_comment'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display link under comment'),
+      '#default_value' => $this->show_on_comment,
+      '#access' => empty($this->locked['show_on_comment']),
+    );
+  }
+
+  function _load_content($content_id) {
+    return _comment_load($content_id);
+  }
+
+  function applies_to_content_object($comment) {
+    if ($comment && ($node = node_load($comment->nid)) && in_array($node->type, $this->types)) {
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  function type_access_multiple($content_ids, $account) {
+    $access = array();
+
+    // Ensure node types are granted access. This avoids a
+    // node_load() on every type, usually done by applies_to_content_id().
+    $cids = implode(',', array_map('intval', array_keys($content_ids)));
+    $placeholders = implode(',', array_fill(0, sizeof($this->types), "'%s'"));
+    $result = db_query("SELECT cid as content_id FROM {comments} c INNER JOIN {node} n ON c.nid = n.nid WHERE cid IN ($cids) and n.type NOT IN ($placeholders)", $this->types);
+    while ($row = db_fetch_object($result)) {
+      $access[$row->content_id] = FALSE;
+    }
+
+    return $access;
+  }
+
+  function get_content_id($comment) {
+    // Store the comment object in the static cache, to avoid getting it
+    // again unneedlessly.
+    $this->remember_content($comment->cid, $comment);
+    return $comment->cid;
+  }
+
+  function uses_hook_link($teaser) {
+    return $this->show_on_comment;
+  }
+
+  function get_labels_token_types() {
+    return array_merge(array('comment', 'node'), parent::get_labels_token_types());
+  }
+
+  function replace_tokens($label, $contexts, $content_id) {
+    if ($content_id) {
+      if (($comment = $this->fetch_content($content_id)) && ($node = node_load($comment->nid))) {
+        $contexts['node'] = $node;
+        $contexts['comment'] = $comment;
+      }
+    }
+    return parent::replace_tokens($label, $contexts, $content_id);
+  }
+
+  function get_flag_action($content_id) {
+    $flag_action = parent::get_flag_action($content_id);
+    $comment = $this->fetch_content($content_id);
+    $flag_action->content_title = $comment->subject;
+    $flag_action->content_url = _flag_url("node/$comment->nid/$comment->cid", "comment-$comment->cid");
+    return $flag_action;
+  }
+
+  function get_relevant_action_objects($content_id) {
+    $comment = $this->fetch_content($content_id);
+    return array(
+      'comment' => $comment,
+      'node' => node_load($comment->nid),
+    );
+  }
+
+  function rules_get_event_arguments_definition() {
+    return array(
+      'comment' => array(
+        'type' => 'comment',
+        'label' => t('flagged comment'),
+        'handler' => 'flag_rules_get_event_argument',
+      ),
+      'comment_author' => array(
+        'type' => 'user',
+        'label' => t('flagged comment author'),
+        'handler' => 'flag_rules_get_comment_author',
+      ),
+      'node' => array(
+        'type' => 'node',
+        'label' => t("the flagged comment's content"),
+        'handler' => 'flag_rules_get_comment_content',
+      ),
+      'node_author' => array(
+        'type' => 'user',
+        'label' => t('commented content author'),
+        'handler' => 'flag_rules_get_comment_node_author',
+      ),
+    );
+  }
+
+  function rules_get_element_argument_definition() {
+    return array('type' => 'comment', 'label' => t('Flagged comment'));
+  }
+
+  function get_views_info() {
+    return array(
+      'views table' => 'comments',
+      'join field' => 'cid',
+      'title field' => 'subject',
+      'title' => t('Comment flag'),
+      'help' => t('Limit results to only those comments flagged by a certain flag; Or display information about the flag set on a comment.'),
+      'counter title' => t('Comment flag counter'),
+      'counter help' => t('Include this to gain access to the flag counter field.'),
+    );
+  }
+}
+
+/**
+ * Implements a user flag.
+ */
+class flag_user extends flag_flag {
+  function options() {
+    $options = parent::options();
+    $options += array(
+      'show_on_profile' => TRUE,
+      'access_uid' => '',
+    );
+    return $options;
+  }
+
+  function options_form(&$form) {
+    parent::options_form($form);
+    $form['access']['types'] = array(
+      // A user flag doesn't support node types.
+      // TODO: Maybe support roles instead of node types.
+      '#type' => 'value',
+      '#value' => array(0 => 0),
+    );
+    $form['access']['access_uid'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Users may flag themselves'),
+      '#description' => t('Disabling this option may be useful when setting up a "friend" flag, when a user flagging themself does not make sense.'),
+      '#default_value' => $this->access_uid ? 0 : 1,
+    );
+    $form['display']['show_on_profile'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display link on user profile page'),
+      '#default_value' => $this->show_on_profile,
+      '#access' => empty($this->locked['show_on_profile']),
+    );
+  }
+
+  function form_input($form_values) {
+    parent::form_input($form_values);
+    // The access_uid value is intentionally backwards from the UI, to avoid
+    // confusion caused by checking a box to disable a feature.
+    $this->access_uid = empty($form_values['access_uid']) ? 'others' : '';
+  }
+
+  function _load_content($content_id) {
+    return user_load($content_id);
+  }
+
+  function applies_to_content_object($user) {
+    // This user flag doesn't currently support subtypes so we return TRUE for
+    // any user.
+    if ($user) {
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  function type_access($content_id, $action, $account) {
+    // Prevent users from flagging themselves.
+    if ($this->access_uid == 'others' && $content_id == $account->uid) {
+      return FALSE;
+    }
+  }
+
+  function type_access_multiple($content_ids, $account) {
+    $access = array();
+
+    // Exclude anonymous.
+    if (array_key_exists(0, $content_ids)) {
+      $access[0] = FALSE;
+    }
+
+    // Prevent users from flagging themselves.
+    if ($this->access_uid == 'others' && array_key_exists($account->uid, $content_ids)) {
+      $access[$account->uid] = FALSE;
+    }
+
+    return $access;
+  }
+
+  function get_content_id($user) {
+    return $user->uid;
+  }
+
+  function uses_hook_link($teaser) {
+    if ($this->show_on_profile) {
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  function get_labels_token_types() {
+    return array_merge(array('user'), parent::get_labels_token_types());
+  }
+
+  function replace_tokens($label, $contexts, $content_id) {
+    if ($content_id && ($user = $this->fetch_content($content_id))) {
+      $contexts['user'] = $user;
+    }
+    return parent::replace_tokens($label, $contexts, $content_id);
+  }
+
+  function get_flag_action($content_id) {
+    $flag_action = parent::get_flag_action($content_id);
+    $user = $this->fetch_content($content_id);
+    $flag_action->content_title = $user->name;
+    $flag_action->content_url = _flag_url('user/' . $user->uid);
+    return $flag_action;
+  }
+
+  function get_relevant_action_objects($content_id) {
+    return array(
+      'user' => $this->fetch_content($content_id),
+    );
+  }
+
+  function rules_get_event_arguments_definition() {
+    return array(
+      'account' => array(
+        'type' => 'user',
+        'label' => t('flagged user'),
+        'handler' => 'flag_rules_get_event_argument',
+      ),
+    );
+  }
+
+  function rules_get_element_argument_definition() {
+    return array('type' => 'user', 'label' => t('Flagged user'));
+  }
+
+  function get_views_info() {
+    return array(
+      'views table' => 'users',
+      'join field' => 'uid',
+      'title field' => 'name',
+      'title' => t('User flag'),
+      'help' => t('Limit results to only those users flagged by a certain flag; Or display information about the flag set on a user.'),
+      'counter title' => t('User flag counter'),
+      'counter help' => t('Include this to gain access to the flag counter field.'),
+    );
+  }
+}
+
+/**
+ * A dummy flag to be used where the real implementation can't be found.
+ */
+class flag_broken extends flag_flag {
+  function options_form(&$form) {
+    $form = array();
+    $form['error'] = array(
+      '#value' => '<div class="error">'. t("The module providing this flag wasn't found, or this flag type, %type, isn't valid.", array('%type' => $this->content_type)) .'</div>',
+    );
+  }
+}
+
+/**
+ * A shortcut function to output the link URL.
+ */
+function _flag_url($path, $fragment = NULL, $absolute = TRUE) {
+  return url($path, array('fragment' => $fragment, 'absolute' => $absolute));
+}
+
+
+/**
+ * Utility class to handle cookies.
+ *
+ * Cookies are used to record flaggings for anonymous users on cached pages.
+ *
+ * This class contains only two instance methods. Usage example:
+ * @code
+ *   $storage = FlagCookieStorage::factory($flag);
+ *   $storage->flag(145);
+ *   $storage->unflag(17);
+ * @endcode
+ *
+ * You may delete all the cookies with <code>FlagCookieStorage::drop()</code>.
+ */
+abstract class FlagCookieStorage {
+
+  /**
+   * Returns the actual storage object compatible with the flag.
+   */
+  static function factory($flag) {
+    if ($flag->global) {
+      return new FlagGlobalCookieStorage($flag);
+    }
+    else {
+      return new FlagNonGlobalCookieStorage($flag);
+    }
+  }
+
+  function __construct($flag) {
+    $this->flag = $flag;
+  }
+
+  /**
+   * "Flags" an item.
+   *
+   * It just records this fact in a cookie.
+   */
+  abstract function flag($content_id);
+
+  /**
+   * "Unflags" an item.
+   *
+   * It just records this fact in a cookie.
+   */
+  abstract function unflag($content_id);
+
+  /**
+   * Deletes all the cookies.
+   *
+   * (Etymology: "drop" as in "drop database".)
+   */
+  static function drop() {
+    FlagGlobalCookieStorage::drop();
+    FlagNonGlobalCookieStorage::drop();
+  }
+}
+
+/**
+ * Storage handler for global flags.
+ */
+class FlagGlobalCookieStorage extends FlagCookieStorage {
+
+  function flag($content_id) {
+    $cookie_key = $this->cookie_key($content_id);
+    setcookie($cookie_key, 1, time() + $this->get_lifetime(), base_path());
+    $_COOKIE[$cookie_key] = 1;
+  }
+
+  function unflag($content_id) {
+    $cookie_key = $this->cookie_key($content_id);
+    setcookie($cookie_key, 0, time() + $this->get_lifetime(), base_path());
+    $_COOKIE[$cookie_key] = 0;
+  }
+
+  // Global flags persist for the length of the minimum cache lifetime.
+  protected function get_lifetime() {
+    $cookie_lifetime = variable_get('cache', 0) ? variable_get('cache_lifetime', 0) : -1;
+    // Do not let the cookie lifetime be 0 (which is the no cache limit on
+    // anonymous page caching), since it would expire immediately. Usually
+    // the no cache limit means caches are cleared on cron, which usually runs
+    // at least once an hour.
+    if ($cookie_lifetime == 0) {
+      $cookie_lifetime = 3600;
+    }
+    return $cookie_lifetime;
+  }
+
+  protected function cookie_key($content_id) {
+    return 'flag_global_' . $this->flag->name . '_' . $content_id;
+  }
+
+  /**
+   * Deletes all the global cookies.
+   */
+  static function drop() {
+    foreach ($_COOKIE as $key => $value) {
+      if (strpos($key, 'flag_global_') === 0) {
+        setcookie($key, FALSE, 0, base_path());
+        unset($_COOKIE[$key]);
+      }
+    }
+  }
+}
+/**
+ * Storage handler for non-global flags.
+ */
+class FlagNonGlobalCookieStorage extends FlagCookieStorage {
+
+  // The anonymous per-user flaggings are stored in a single cookie, so that
+  // all of them persist as long as the Drupal cookie lifetime.
+
+  function __construct($flag) {
+    parent::__construct($flag);
+    $this->flaggings = isset($_COOKIE['flags']) ? explode(' ', $_COOKIE['flags']) : array();
+  }
+
+  function flag($content_id) {
+    if (!$this->is_flagged($content_id)) {
+      $this->flaggings[] = $this->cookie_key($content_id);
+      $this->write();
+    }
+  }
+
+  function unflag($content_id) {
+    if (($index = $this->index_of($content_id)) !== FALSE) {
+      unset($this->flaggings[$index]);
+      $this->write();
+    }
+  }
+
+  protected function get_lifetime() {
+    return min((int) ini_get('session.cookie_lifetime'), (int) ini_get('session.gc_maxlifetime'));
+  }
+
+  protected function cookie_key($content_id) {
+    return $this->flag->name . '_' . $content_id;
+  }
+
+  protected function write() {
+    $serialized = implode(' ', array_filter($this->flaggings));
+    setcookie('flags', $serialized, time() + $this->get_lifetime(), base_path());
+    $_COOKIE['flags'] = $serialized;
+  }
+
+  protected function is_flagged($content_id) {
+    return $this->index_of($content_id) !== FALSE;
+  }
+
+  protected function index_of($content_id) {
+    return array_search($this->cookie_key($content_id), $this->flaggings);
+  }
+
+  /**
+   * Deletes the cookie.
+   */
+  static function drop() {
+    if (isset($_COOKIE['flags'])) {
+      setcookie('flags', FALSE, 0, base_path());
+      unset($_COOKIE['flags']);
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag.info b/drupal/sites/default/boinc/modules/contrib/flag/flag.info
new file mode 100644
index 0000000..b814015
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag.info
@@ -0,0 +1,12 @@
+name = Flag
+description = Create customized flags that users can set on content.
+core = 6.x
+package = Flags
+php = 5
+
+; Information added by Drupal.org packaging script on 2015-07-12
+version = "6.x-2.2-boinc-1-dev"
+core = "6.x"
+project = "flag"
+datestamp = "1494857819"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag.install b/drupal/sites/default/boinc/modules/contrib/flag/flag.install
new file mode 100644
index 0000000..b6da8b2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag.install
@@ -0,0 +1,703 @@
+<?php
+
+/**
+ * @file
+ * Flag module install/schema/update hooks.
+ */
+
+/**
+ * Implementation of hook_install().
+ */
+function flag_install() {
+  // Load the flag API in case we want to use it when installing.
+  include_once(drupal_get_path('module', 'flag') .'/flag.module');
+
+  // If Views Bookmark is available, skip the install and do an upgrade instead.
+  if (strpos($GLOBALS['db_type'], 'mysql') === 0) {
+    include_once(drupal_get_path('module', 'flag') .'/includes/flag.views_bookmark.inc');
+    if (flag_views_bookmark_update_needed()) {
+      flag_views_bookmark_update();
+      return;
+    }
+  }
+
+  drupal_install_schema('flag');
+}
+
+/**
+ * Implements hook_uninstall().
+ */
+function flag_uninstall() {
+  drupal_uninstall_schema('flag');
+  $result = db_query("SELECT name FROM {variable} WHERE name LIKE 'flag_%'");
+  while ($row = db_fetch_object($result)) {
+    variable_del($row->name);
+  }
+
+  drupal_set_message(t('Flag has been uninstalled.'));
+}
+
+/**
+ * Implements hook_enable().
+ *
+ * We create the demonstration flag on enable, so hook implementations in flag
+ * module will fire correctly, as the APIs are not available on install.
+ */
+function flag_enable() {
+  // Load the flag API in case we want to use it when enabling.
+  include_once(drupal_get_path('module', 'flag') . '/flag.module');
+
+  if (!flag_get_flags()) {
+    // Install a demonstration flag only if no flag exists. This is to prevent
+    // a case where a disables and enables the module, and the demonstration
+    // flag is overwritten or re-created.
+    $flag = flag_flag::factory_by_content_type('node');
+    $configuration = array(
+      'name' => 'bookmarks',
+      'global' => 0,
+      'show_on_page' => 1,
+      'show_on_teaser' => 1,
+      'show_on_form' => 1,
+      // The following UI labels aren't wrapped in t() because they are written
+      // to the DB in English. They are passed to t() later, thus allowing for
+      // multilingual sites.
+      'title' => 'Bookmarks',
+      'flag_short' => 'Bookmark this',
+      'flag_long' => 'Add this post to your bookmarks',
+      'flag_message' => 'This post has been added to your bookmarks',
+      'unflag_short' => 'Unbookmark this',
+      'unflag_long' => 'Remove this post from your bookmarks',
+      'unflag_message' => 'This post has been removed from your bookmarks',
+      'types' => _flag_install_get_suggested_node_types(),
+    );
+    $flag->form_input($configuration);
+    $flag->save();
+  }
+}
+
+/**
+ * Returns some node types to which the demonstration 'bookmarks' flag will apply.
+ */
+function _flag_install_get_suggested_node_types() {
+  $preferred = array('story', 'forum', 'blog');
+  $existing = array_intersect($preferred, array_keys(node_get_types()));
+  if (!$existing) {
+    // As a last resort, take the first preference.
+    return array($preferred[0]);
+  }
+  return $existing;
+}
+
+/**
+ * Implements hook_requirements().
+ *
+ * Prevent installing this module if the "Flag content" module is installed as well.
+ */
+function flag_requirements($phase) {
+  $requirements = array();
+  $t = get_t();
+  if ($phase == 'install') {
+    if (!defined('MAINTENANCE_MODE') && _flag_flag_content_installed()) {
+      $requirements['flag_content_clash'] = array(
+        'title' => $t('Flag'),
+        'severity' => REQUIREMENT_ERROR,
+        'description' => _flag_flag_content_message(),
+      );
+    }
+  }
+
+  if ($phase == 'runtime') {
+    if (module_exists('translation') && !module_exists('translation_helpers')) {
+      $requirements['flag_translation'] = array(
+        'title' => $t('Flag'),
+        'severity' => REQUIREMENT_ERROR,
+        'description' => $t('To have the flag module work with translations, you need to install and enable the <a href="http://drupal.org/project/translation_helpers">Translation helpers</a> module.'),
+        'value' => $t('Translation helpers module not found.'),
+      );
+    }
+    if (module_exists('session_api')) {
+      if (file_exists('./robots.txt')) {
+        $flag_path = url('flag') . '/';
+        $robots_string = 'Disallow: ' . $flag_path;
+        $contents = file_get_contents('./robots.txt');
+        if (strpos($contents, $robots_string) === FALSE) {
+          $requirements['flag_robots'] = array(
+            'title' => $t('Flag robots.txt problem'),
+            'severity' => REQUIREMENT_WARNING,
+            'description' => $t('Flag module may currently be used with anonymous users, however the robots.txt file does not exclude the "@flag-path" path, which may cause search engines to randomly flag and unflag content when they index the site. It is highly recommended to add "@robots-string" to your robots.txt file (located in the root of your Drupal installation).', array('@flag-path' => $flag_path, '@robots-string' => $robots_string)),
+            'value' => $t('Search engines flagging content'),
+          );
+        }
+      }
+    }
+  }
+  return $requirements;
+}
+
+/**
+ * Returns TRUE if the "Flag content" module, which we aren't compatible with,
+ * is installed.
+ */
+function _flag_flag_content_installed() {
+  $version = @drupal_get_installed_schema_version('flag_content', TRUE);
+  return (isset($version) && $version != SCHEMA_UNINSTALLED);
+}
+
+function _flag_flag_content_message() {
+  $t = get_t();
+  return $t("You are trying to install the <em>Flag</em> module. However, you have the <em>\"Flag content\"</em> module installed, and these two modules aren't compatible (because they happen to use a database table by the same name). To install the <em>Flag</em> module, you'll first have to disable and then <a href='@uninstall-url'>uninstall</a> the <em>\"Flag content\"</em> module.", array('@uninstall-url' => url('admin/build/modules/uninstall')));
+}
+
+/**
+ * Implements hook_schema().
+ */
+function flag_schema() {
+  $schema = array();
+
+  $schema['flags'] = array(
+    'description' => 'All available flags in the system.',
+    'fields' => array(
+      'fid' => array(
+        'description' => 'The unique ID for this particular flag.',
+        'type' => 'serial',
+        'size' => 'small',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'content_type' => array(
+        'description' => 'The flag type, such as one of "node", "comment", or "user".',
+        'type' => 'varchar',
+        'length' => '32',
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'name' => array(
+        'description' => 'The machine-name for this flag.',
+        'type' => 'varchar',
+        'length' => '32',
+        'not null' => FALSE,
+        'default' => '',
+      ),
+      'title' => array(
+        'description' => 'The human-readable title for this flag.',
+        'type' => 'varchar',
+        'length' => '255',
+        'not null' => FALSE,
+        'default' => '',
+      ),
+      'global' => array(
+        'description' => 'Whether this flag state should act as a single toggle to all users across the site.',
+        'type' => 'int',
+        'size' => 'tiny',
+        'not null' => FALSE,
+        'default' => 0,
+      ),
+      'options' => array(
+        'description' => 'The options and configuration of this flag.',
+        'type' => 'text',
+        'not null' => FALSE,
+      ),
+    ),
+    'primary key' => array('fid'),
+    'unique keys' => array(
+      'name' => array('name'),
+    ),
+  );
+
+  $schema['flag_content'] = array(
+    'description' => 'Content that has been flagged.',
+    'fields' => array(
+      'fcid' => array(
+        'description' => 'The unique ID for this particular tag.',
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'fid' => array(
+        'description' => 'The unqiue flag ID this content has been flagged with, from {flags}.',
+        'type' => 'int',
+        'size' => 'small',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'content_type' => array(
+        'description' => 'The flag type, one of "node", "comment", "user".',
+        'type' => 'varchar',
+        'length' => '32',
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'content_id' => array(
+        'description' => 'The unique ID of the content, such as either the {cid}, {uid}, or {nid}.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'uid' => array(
+        'description' => 'The user ID by whom this content was flagged.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'sid' => array(
+        'description' => "The user's session id as stored in the session table.",
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'timestamp' => array(
+        'description' => 'The UNIX time stamp representing when the flag was set.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-size' => 11,
+      )
+    ),
+    'primary key' => array('fcid'),
+    'unique keys' => array(
+      'fid_content_id_uid_sid' => array('fid', 'content_id', 'uid', 'sid'),
+    ),
+    'indexes' => array(
+      'content_type_uid_sid' => array('content_type', 'uid', 'sid'),
+      'content_type_content_id_uid_sid' => array('content_type', 'content_id', 'uid', 'sid'),
+      'content_id_fid' => array('content_id', 'fid'),
+    ),
+  );
+
+  $schema['flag_types'] = array(
+    'description' => 'The types (usually as defined in {node_type}) that are affected by a flag.',
+    'fields' => array(
+      'fid' => array(
+        'description' => 'The unqiue flag ID as defined for the flag in {flags}.',
+        'type' => 'int',
+        'size' => 'small',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'type' => array(
+        'description' => 'The types (usually from {node_type}) that can be flagged by this fid.',
+        'type' => 'varchar',
+        'length' => '32',
+        'not null' => TRUE,
+        'default' => '',
+      ),
+    ),
+    'indexes' => array(
+      'fid' => array('fid'),
+    ),
+  );
+
+  $schema['flag_counts'] = array(
+    'description' => 'The number of times an item has been flagged.',
+    'fields' => array(
+      'fid' => array(
+        'type' => 'int',
+        'size' => 'small',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'content_type' => array(
+        'description' => 'The flag type, usually one of "node", "comment", "user".',
+        'type' => 'varchar',
+        'length' => '32',
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'content_id' => array(
+        'description' => 'The unique ID of the content, usually either the {cid}, {uid}, or {nid}.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '10',
+      ),
+      'count' => array(
+        'description' => 'The number of times this content has been flagged for this flag.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '10',
+      ),
+      'last_updated' => array(
+        'description' => 'The UNIX time stamp representing when the flag was last updated.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-size' => 11,
+      )
+    ),
+    'primary key' => array('fid', 'content_id'),
+    'indexes' => array(
+      'fid_content_type' => array('fid', 'content_type'),
+      'content_type_content_id' => array('content_type', 'content_id'),
+      'fid_count' => array('fid', 'count'),
+      'fid_last_updated' => array('fid', 'last_updated'),
+    ),
+  );
+
+  return $schema;
+}
+
+/**
+ * Add auto-increment to the flags.fid column for users upgrading from Drupal 5.
+ *
+ * Delete obsolete actions provided by beta3.
+ *
+ * Note: To ease maintenance, this code is compatible with both D5 and D6.
+ *
+ * Check out #305391 for a discussion about this code.
+ */
+function flag_update_6000() {
+  $ret = array();
+
+  // Convert the flags.fid column to auto-increment.
+  db_drop_primary_key($ret, 'flags');
+  db_change_field($ret, 'flags', 'fid', 'fid', array(
+    'type' => 'serial',
+    'size' => 'small',
+    'unsigned' => TRUE,
+    'not null' => TRUE,
+  ), array('primary key' => array('fid')));
+
+  // This conditional ensures we have Actions 2.x, not Actions 1.x.
+  //
+  // At the beginning we had only db_table_exists() checks here. However, it
+  // turned out that db_table_exists() fails when the $db_prefix string contains
+  // a dot. So module_exists() and function_exists() are added, as backup.
+  if (module_exists('trigger') || function_exists('_actions_get_hook_aids') || db_table_exists('actions_assignments') || db_table_exists('trigger_assignments')) {
+
+    // Step 1: Find all actions we need to delete.
+
+    $aids = array();
+    // We can't just search for "actions of type flag" because this isn't future-compatible.
+    $res = db_query("SELECT aid FROM {actions} WHERE callback IN ('flag_action_email', 'flag_action_delete', 'flag_action_unpublish', 'flag_action_moderate')");
+    while ($row = db_fetch_object($res)) {
+      $aids[] = $row->aid;
+    }
+
+    if (!$aids) {
+      $ret[] = array(
+        'success' => TRUE,
+        'query' => t('No old actions to remove.'),
+      );
+    }
+    else {
+      $ret[] = array(
+        'success' => TRUE,
+        'query' => t('Deleting the following actions: @aids', array('@aids' => implode(', ', $aids))),
+      );
+    }
+
+    // Step 2: Delete them through API.
+
+    // We can't do `if (module_exists('actions'))`: this code should work for D6 as
+    // well, and it doesn't have an Actions module.
+    if (function_exists('actions_delete')) {
+      foreach ($aids as $aid) {
+        actions_delete($aid);
+        $ret[] = array(
+          'success' => TRUE,
+          'query' => t('actions_delete("@aid") called.', array('@aid' => $aid)),
+        );
+      }
+    }
+
+    // Step 3: Delete them through SQL, in case Actions/Trigger aren't enabled.
+
+    foreach ($aids as $aid) {
+      foreach (array('actions', 'actions_assignments', 'trigger_assignments') as $table) {
+        if (db_table_exists($table)) {
+          $ret[] = _flag_update_sql("DELETE FROM {{$table}} WHERE aid = '%s'", $aid);
+        }
+      }
+    }
+    // Note: No need to delete from the {actions_aid} table; Actions doesn't do that.
+
+    // Step 4: Remove a bogus record possibly created because of a bug (see
+    // http://drupal.org/node/271460).
+
+    foreach (array('actions_assignments', 'trigger_assignments') as $table) {
+      if (db_table_exists($table)) {
+        $ret[] = _flag_update_sql("DELETE FROM {{$table}} WHERE hook = 'flag' AND aid = ''");
+      }
+    }
+  }
+  else {
+    $ret[] = array(
+      'success' => TRUE,
+      'query' => t('Cleanup of Actions tables is unneeded.'),
+    );
+  }
+
+  return $ret;
+}
+
+/**
+ * Move flag messages and link titles into the options array.
+ */
+function flag_update_6001() {
+  $ret = array();
+
+  if (db_column_exists('flags', 'flag_short')) {
+    $result = db_query("SELECT * FROM {flags}");
+    while ($flag = db_fetch_object($result)) {
+      $options = unserialize($flag->options);
+      $options['flag_short'] = $flag->flag_short;
+      $options['flag_long'] = $flag->flag_long;
+      $options['flag_message'] = $flag->flag_message;
+      $options['unflag_short'] = $flag->unflag_short;
+      $options['unflag_long'] = $flag->unflag_long;
+      $options['unflag_message'] = $flag->unflag_message;
+      db_query("UPDATE {flags} SET options = '%s' WHERE fid = %d", serialize($options), $flag->fid);
+    }
+
+    db_drop_field($ret, 'flags', 'flag_short');
+    db_drop_field($ret, 'flags', 'flag_long');
+    db_drop_field($ret, 'flags', 'flag_message');
+    db_drop_field($ret, 'flags', 'unflag_short');
+    db_drop_field($ret, 'flags', 'unflag_long');
+    db_drop_field($ret, 'flags', 'unflag_message');
+  }
+  return $ret;
+}
+
+/**
+ * Add a 'serial' primary key, fcid, to the flag_content table.
+ */
+function flag_update_6002() {
+  $ret = array();
+
+  if (db_column_exists('flag_content', 'fcid')) {
+    db_drop_primary_key($ret, 'flag_content');
+    db_add_field($ret, 'flag_content', 'fcid', array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ), array(
+        'primary key' => array('fcid'),
+      )
+    );
+    db_add_unique_key($ret, 'flag_content', 'fid_content_type_content_id_uid', array('fid', 'content_type', 'content_id', 'uid'));
+  }
+  return $ret;
+}
+
+/**
+ * Remove the previous default views that are no longer bundled with Flag.
+ *
+ * These views are saved to the database so that they are preserved.
+ */
+function flag_update_6003() {
+  $ret = array();
+
+  // Bail out if Views doesn't exist.
+  if (!function_exists('views_get_view')) {
+    return $ret;
+  }
+
+  drupal_load('module', 'flag');
+  $flags = flag_get_flags();
+  foreach ($flags as $name => $flag) {
+    if ($view = views_get_view('flags_'. $name)) {
+      if (!$view->disabled && $view->type == t('Default')) {
+        $view->save();
+        $ret[] = array('success' => TRUE, 'query' => t('The view %name as been saved to the database. Flag no longer provides this view by default.', array('%name' => $view->name)));
+      }
+    }
+  }
+
+  return $ret;
+}
+
+/**
+ * Remove count = 0 rows from the count tables.
+ */
+function flag_update_6004() {
+  // Same update as flag_update_6203()
+  return array();
+}
+
+/**
+ * Convert role access to have separate "flag" and "unflag" permissions.
+ */
+function flag_update_6200() {
+  $ret = array();
+
+  if (db_column_exists('flags', 'roles')) {
+    $result = db_query('SELECT * FROM {flags}');
+    while ($flag = db_fetch_object($result)) {
+      $roles = array_filter(explode(',', $flag->roles));
+      $options = unserialize($flag->options);
+      $options['roles'] = array(
+        'flag' => $roles,
+        'unflag' => $roles,
+      );
+      db_query("UPDATE {flags} SET options = '%s' WHERE fid = %d", serialize($options), $flag->fid);
+    }
+    db_drop_field($ret, 'flags', 'roles');
+  }
+
+  return $ret;
+}
+
+/**
+ * Refine the indexes.
+ *
+ * The content type inclusion actually slowed down on unique key. And a count
+ * index would be helpful for sorting by counts.
+ */
+function flag_update_6201() {
+  $ret = array();
+
+  // Remove "content type" from one key, see http://drupal.org/node/612602.
+  db_drop_unique_key($ret, 'flag_content', 'fid_content_type_content_id_uid');
+  db_add_unique_key($ret, 'flag_content', 'fid_content_id_uid', array('fid', 'content_id', 'uid'));
+
+  // Add a count index, see http://drupal.org/node/489610.
+  db_add_index($ret, 'flag_counts', 'count', array('count'));
+
+  return $ret;
+}
+
+/**
+ * Add the sid column and unique index on the flag_content table.
+ */
+function flag_update_6202() {
+  $ret = array();
+
+  // Drop the keys affected by the addition of the SID column.
+  db_drop_unique_key($ret, 'flag_content', 'fid_content_id_uid');
+  db_drop_index($ret, 'flag_content', 'content_type_uid');
+
+  // Add the column.
+  db_add_field($ret, 'flag_content', 'sid', array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0));
+
+  // Re-add the removed keys.
+  db_add_unique_key($ret, 'flag_content', 'fid_content_id_uid_sid', array('fid', 'content_id', 'uid', 'sid'));
+  db_add_index($ret, 'flag_content', 'content_type_uid_sid', array('content_type', 'uid', 'sid'));
+
+  return $ret;
+}
+
+/**
+ * Remove count = 0 rows from the count tables.
+ */
+function flag_update_6203() {
+  $ret = array();
+  $ret[] = update_sql("DELETE FROM {flag_counts} WHERE count = 0");
+  return $ret;
+}
+
+/**
+ * Remove "content type" from the flag_counts primary key.
+ */
+function flag_update_6204() {
+  $ret = array();
+  db_drop_primary_key($ret, 'flag_counts');
+  db_add_primary_key($ret, 'flag_counts', array('fid', 'content_id'));
+  return $ret;
+}
+
+/**
+ * Provide a better index on the flag_content table to include 'uid' and 'sid'.
+ */
+function flag_update_6205() {
+  // This update has been removed and corrected in flag_update_6206.
+  // See http://drupal.org/node/1105490.
+  return array();
+}
+
+/**
+ * Correction to flag_update_6205(). Convert unique key to an index.
+ */
+function flag_update_6206() {
+  $ret = array();
+
+  // These two indexes may or may not exist depending on if flag_update_6205
+  // was run or not. Surpress errors if the indexes don't exist.
+  @db_drop_index($ret, 'flag_content', 'content_type_content_id');
+  @db_drop_unique_key($ret, 'flag_content', 'content_type_content_id_uid_sid');
+
+  // Empty out the errors.
+  $ret = array();
+
+  db_add_index($ret, 'flag_content', 'content_type_content_id_uid_sid', array('content_type', 'content_id', 'uid', 'sid'));
+
+  return $ret;
+}
+
+/**
+ * Adds column last_updated to flag_counts table.
+ */
+function flag_update_6207() {
+  $ret = array();
+
+  db_add_field($ret, 'flag_counts', 'last_updated', array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'disp-size' => 11), array('indexes' => array('last_updated' => array('last_updated'))));
+
+  return $ret;
+}
+
+/**
+ * Convert flag_count indexes to include FID for more efficient indexing.
+ */
+function flag_update_6208() {
+  $ret = array();
+
+  db_drop_index($ret, 'flag_counts', 'count');
+  db_drop_index($ret, 'flag_counts', 'last_updated');
+
+  db_add_index($ret, 'flag_counts', 'fid_count', array('fid', 'count'));
+  db_add_index($ret, 'flag_counts', 'fid_last_updated', array('fid', 'last_updated'));
+
+  return $ret;
+}
+
+/**
+ * Clean up orphaned flags due to node and comment deletion.
+ */
+function flag_update_6209() {
+  $ret = array();
+
+  // Clean-up for nodes.
+  db_query("DELETE FROM {flag_content} WHERE content_type = 'node' AND NOT EXISTS (SELECT 1 FROM {node} n WHERE content_id = n.nid)");
+  db_query("DELETE FROM {flag_counts} WHERE content_type = 'node' AND NOT EXISTS (SELECT 1 FROM {node} n WHERE content_id = n.nid)");
+
+  // Clean-up for comments. Do not use module_exists() because comment module
+  // could be disabled.
+  if (db_table_exists('comment')) {
+    db_query("DELETE FROM {flag_content} WHERE content_type = 'comment' AND NOT EXISTS (SELECT 1 FROM {comment} c WHERE content_id = c.cid)");
+    db_query("DELETE FROM {flag_counts} WHERE content_type = 'comment' AND NOT EXISTS (SELECT 1 FROM {comment} c WHERE content_id = c.cid)");
+  }
+
+  return $ret;
+}
+
+/**
+ * Add an index to help with view's flag_handler_relationship when not required.
+ */
+function flag_update_6210() {
+  $ret = array();
+  db_add_index($ret, 'flag_content', 'content_id_fid', array('content_id', 'fid'));
+  return $ret;
+}
+
+// This is a replacement for update_sql(). The latter doesn't support placeholders.
+function _flag_update_sql($sql) {
+  $args = func_get_args();
+  array_shift($args);
+  $result = db_query($sql, $args);
+  // Users are going to see '%s' and '%d' in the report and they're going to
+  // think there's a bug. So lets replace the placeholders with something less
+  // suspicious.
+  $sql = strtr($sql, array('%s' => '***', '%d' => '***'));
+  return array('success' => $result !== FALSE, 'query' => check_plain($sql));
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag.module b/drupal/sites/default/boinc/modules/contrib/flag/flag.module
new file mode 100644
index 0000000..32148eb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag.module
@@ -0,0 +1,1698 @@
+<?php
+
+/**
+ * @file
+ * The Flag module.
+ */
+
+define('FLAG_API_VERSION', 2);
+
+define('FLAG_ADMIN_PATH', 'admin/build/flags');
+define('FLAG_ADMIN_PATH_START', 3);
+
+include_once dirname(__FILE__) . '/flag.inc';
+
+/**
+ * Implementation of hook_menu().
+ */
+function flag_menu() {
+  $items[FLAG_ADMIN_PATH] = array(
+    'title' => 'Flags',
+    'page callback' => 'flag_admin_page',
+    'access callback' => 'user_access',
+    'access arguments' => array('administer flags'),
+    'description' => 'Configure flags for marking content with arbitrary information (such as <em>offensive</em> or <em>bookmarked</em>).',
+    'file' => 'includes/flag.admin.inc',
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items[FLAG_ADMIN_PATH . '/list'] = array(
+    'title' => 'List',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  );
+  $items[FLAG_ADMIN_PATH . '/add'] = array(
+    'title' => 'Add',
+    'page callback' => 'flag_add_page',
+    'access callback' => 'user_access',
+    'access arguments' => array('administer flags'),
+    'file' => 'includes/flag.admin.inc',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 1,
+  );
+  $items[FLAG_ADMIN_PATH . '/import'] = array(
+    'title' => 'Import',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_import_form'),
+    'access arguments' => array('use flag import'),
+    'file' => 'includes/flag.export.inc',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 2,
+  );
+  $items[FLAG_ADMIN_PATH . '/export'] = array(
+    'title' => 'Export',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_export_form'),
+    'access arguments' => array('administer flags'),
+    'file' => 'includes/flag.export.inc',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 3,
+  );
+
+  $items[FLAG_ADMIN_PATH . '/manage/%flag'] = array(
+    'load arguments' => array(TRUE), // Allow for disabled flags.
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_form', FLAG_ADMIN_PATH_START + 1),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer flags'),
+    'file' => 'includes/flag.admin.inc',
+    'type' => MENU_CALLBACK,
+    // Make the flag title the default title for descendant menu items.
+    'title callback' => '_flag_menu_title',
+    'title arguments' => array(FLAG_ADMIN_PATH_START + 1),
+  );
+  $items[FLAG_ADMIN_PATH . '/manage/%flag/edit'] = array(
+    'load arguments' => array(TRUE), // Allow for disabled flags.
+    'title' => 'Edit flag',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  );
+  $items[FLAG_ADMIN_PATH . '/manage/%flag/export'] = array(
+    'title' => 'Export',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_export_form', FLAG_ADMIN_PATH_START + 1),
+    'access arguments' => array('administer flags'),
+    'file' => 'includes/flag.export.inc',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 20,
+  );
+  $items[FLAG_ADMIN_PATH . '/manage/%flag/delete'] = array(
+    'title' => 'Delete flag',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_delete_confirm', FLAG_ADMIN_PATH_START + 1),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer flags'),
+    'file' => 'includes/flag.admin.inc',
+    'type' => MENU_CALLBACK,
+  );
+  $items[FLAG_ADMIN_PATH . '/manage/%flag/update'] = array(
+    'load arguments' => array(TRUE), // Allow for disabled flags.
+    'title' => 'Update',
+    'page callback' => 'flag_update_page',
+    'page arguments' => array(FLAG_ADMIN_PATH_START + 1),
+    'access arguments' => array('administer flags'),
+    'file' => 'includes/flag.export.inc',
+    'type' => MENU_CALLBACK,
+  );
+
+  $items['flag/%/%flag/%'] = array(
+    'title' => 'Flag',
+    'page callback' => 'flag_page',
+    'page arguments' => array(1, 2, 3),
+    'access callback' => 'user_access',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['flag/confirm/%/%flag/%'] = array(
+    'title' => 'Flag confirm',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_confirm', 2, 3, 4),
+    'access callback' => 'user_access',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+  );
+
+  return $items;
+}
+
+/**
+ * Menu loader for '%flag' arguments.
+ *
+ * @param $include_disabled
+ *   Whether to return a disabled flag too. Normally only enabled flags are
+ *   returned. Some menu items operate on disabled flags and in this case
+ *   you need to turn on this switch by doing
+ *   <code>'load arguments' => array(TRUE)</code> in your menu router.
+ *
+ * @return
+ *   Either the flag object, or FALSE if none was found.
+ */
+function flag_load($flag_name, $include_disabled = FALSE) {
+  if (($flag = flag_get_flag($flag_name))) {
+    return $flag;
+  }
+  else {
+    // No enabled flag was found. Search among the disabled ones.
+    if ($include_disabled) {
+      $default_flags = flag_get_default_flags(TRUE);
+      if (isset($default_flags[$flag_name])) {
+        return $default_flags[$flag_name];
+      }
+    }
+  }
+  // A menu loader has to return FALSE (not NULL) when no object is found.
+  return FALSE;
+}
+
+/**
+ * Menu title callback.
+ */
+function _flag_menu_title($flag) {
+  return $flag ? $flag->get_title() : '';
+}
+
+/**
+ * Implements hook_help().
+ */
+function flag_help($path, $arg) {
+  switch ($path) {
+    case FLAG_ADMIN_PATH:
+      $output = '<p>' . t('This page lists all the <em>flags</em> that are currently defined on this system. You may <a href="@add-url">add new flags</a>.', array('@add-url' => url(FLAG_ADMIN_PATH . '/add'))) . '</p>';
+      return $output;
+  }
+}
+
+/**
+ * Implements hook_init().
+ */
+function flag_init() {
+  $path = drupal_get_path('module', 'flag');
+  include_once $path .'/includes/flag.actions.inc';
+
+  if (module_exists('token')) {
+    include_once $path .'/includes/flag.token.inc';
+  }
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function flag_views_api() {
+  return array(
+    'api' => 2.0,
+    'path' => drupal_get_path('module', 'flag') . '/includes',
+  );
+}
+
+/**
+ * Implementation of hook_features_api().
+ */
+function flag_features_api() {
+  return array(
+    'flag' => array(
+      'name' => t('Flag'),
+      'feature_source' => TRUE,
+      'default_hook' => 'flag_default_flags',
+      'file' => drupal_get_path('module', 'flag') . '/includes/flag.features.inc',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_perm().
+ */
+function flag_perm() {
+  return array('administer flags', 'use flag import');
+}
+
+/**
+ * Implementation of hook_link().
+ */
+function flag_link($type, $object = NULL, $teaser = FALSE) {
+  if (!isset($object) || !flag_fetch_definition($type)) {
+    return;
+  }
+  global $user;
+
+  // Get all possible flags for this content-type.
+  $flags = flag_get_flags($type);
+
+  foreach ($flags as $flag) {
+    $content_id = $flag->get_content_id($object);
+
+    if (!$flag->uses_hook_link($teaser)) {
+      // Flag is not configured to show its link here.
+      continue;
+    }
+    if (!$flag->access($content_id) && (!$flag->is_flagged($content_id) || !$flag->access($content_id, 'flag'))) {
+      // User has no permission to use this flag or flag does not apply to this
+      // content. The link is not skipped if the user has "flag" access but
+      // not "unflag" access (this way the unflag denied message is shown).
+      continue;
+    }
+
+    // The flag links are actually fully rendered theme functions.
+    // The HTML attribute is set to TRUE to allow whatever the themer desires.
+    $links['flag-' . $flag->name] = array(
+      'title' => $flag->theme($flag->is_flagged($content_id) ? 'unflag' : 'flag', $content_id),
+      'html' => TRUE,
+    );
+  }
+
+  if (isset($links)) {
+    return $links;
+  }
+}
+
+/**
+ * Implementation of hook_flag_link().
+ */
+function flag_flag_link($flag, $action, $content_id) {
+  $token = flag_get_token($content_id);
+  return array(
+    'href' => 'flag/'. ($flag->link_type == 'confirm' ? 'confirm/' : '') ."$action/$flag->name/$content_id",
+    'query' => drupal_get_destination() . ($flag->link_type == 'confirm' ? '' : '&token='. $token),
+  );
+}
+
+/**
+ * Implementation of hook_flag_link_types().
+ */
+function flag_flag_link_types() {
+  return array(
+    'toggle' => array(
+      'title' => t('JavaScript toggle'),
+      'description' => t('An AJAX request will be made and degrades to type "Normal link" if JavaScript is not available.'),
+      'uses standard js' => TRUE,
+      'uses standard css' => TRUE,
+    ),
+    'normal' => array(
+      'title' => t('Normal link'),
+      'description' => t('A normal non-JavaScript request will be made and the current page will be reloaded.'),
+      'uses standard js' => FALSE,
+      'uses standard css' => FALSE,
+    ),
+    'confirm' => array(
+      'title' => t('Confirmation form'),
+      'description' => t('The user will be taken to a confirmation form on a separate page to confirm the flag.'),
+      'options' => array(
+        'flag_confirmation' => '',
+        'unflag_confirmation' => '',
+      ),
+      'uses standard js' => FALSE,
+      'uses standard css' => FALSE,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_content_extra_fields().
+ *
+ * Informations for non-CCK 'node fields' defined in core.
+ */
+function flag_content_extra_fields($type_name) {
+  $extra = array();
+  $flags = flag_get_flags('node', $type_name);
+
+  // Filter out flags which need to be included on the node form.
+  foreach ($flags as $name => $flag) {
+    if (!$flag->show_on_form) {
+      unset($flags[$name]);
+    }
+  }
+
+  if (!empty($flags)) {
+    $extra['flag'] = array(
+      'label' => t('Flags'),
+      'description' => t('Flags fieldset.'),
+      'weight' => 0
+    );
+  }
+  return $extra;
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter(): node_type_form.
+ */
+function flag_form_node_type_form_alter(&$form, &$form_state) {
+  $flags = flag_get_flags('node', $form['#node_type']->type, $user);
+  foreach ($flags as $flag) {
+    if ($flag->show_on_form) {
+      $var = 'flag_' . $flag->name . '_default';
+      $form['workflow']['flag'][$var] = array(
+        '#type' => 'checkbox',
+        '#title' => $flag->get_label('flag_short', $form['#node_type']->type),
+        '#default_value' => variable_get($var . '_' . $form['#node_type']->type, 0),
+        '#return_value' => 1,
+      );
+    }
+  }
+
+  if (isset($form['workflow']['flag'])) {
+    $form['workflow']['flag'] += array(
+      '#type' => 'item',
+      '#title' => t('Default flags'),
+      '#description' => t('Above are the <a href="@flag-url">flags</a> you elected to show on the node editing form. You may specify their initial state here.', array('@flag-url' => url('admin/build/flags'))),
+      // Make the spacing a bit more compact:
+      '#prefix' => '<div class="form-checkboxes">',
+      '#suffix' => '</div>',
+    );
+  }
+}
+
+/**
+ * Implementation of hook_form_alter().
+ */
+function flag_form_alter(&$form, &$form_state, $form_id) {
+  if (isset($form['type']) && isset($form['#node']) && ($form_id == $form['type']['#value'] . '_node_form')) {
+    global $user;
+    $nid = !empty($form['nid']['#value']) ? $form['nid']['#value'] : NULL;
+    $flags = flag_get_flags('node', $form['type']['#value'], $user);
+
+    // Filter out flags which need to be included on the node form.
+    $flags_in_form = 0;
+    $flags_visible = 0;
+    foreach ($flags as $name => $flag) {
+      if (!$flag->show_on_form) {
+        continue;
+      }
+
+      if (isset($form['#node']->flag[$flag->name])) {
+        $flag_status = $form['#node']->flag[$flag->name];
+      }
+      else {
+        $flag_status_default = variable_get('flag_' . $flag->name . '_default_' . $form['type']['#value'], 0);
+        $flag_status = $nid ? $flag->is_flagged($nid) : $flag_status_default;
+      }
+
+      // If the flag is not global and the user doesn't have access, skip it.
+      // Global flags have their value set even if the user doesn't have access
+      // to it, similar to the way "published" and "promote" keep the default
+      // values even if the user doesn't have "administer nodes" permission.
+      $access = $flag->access($nid, $flag_status ? 'unflag' : 'flag', $user);
+      if (!$access && !$flag->global) {
+        continue;
+      }
+
+      // Add the flag checkbox if displaying on the form.
+      $form['flag'][$flag->name] = array(
+        '#type' => 'checkbox',
+        '#title' => $flag->get_label('flag_short', $nid ? $nid : $form['type']['#value']),
+        '#description' => $flag->get_label('flag_long', $nid ? $nid : $form['type']['#value']),
+        '#default_value' => $flag_status,
+        '#return_value' => 1,
+        '#attributes' => array('title' => $flag->get_title()), // Used by our Vertical Tab's JavaScript code.
+      );
+      // If the user does not have access to the flag, set as a value.
+      if (!$access) {
+        $form['flag'][$flag->name]['#type'] = 'value';
+        $form['flag'][$flag->name]['#value'] = $flag_status;
+      }
+      else {
+        $flags_visible++;
+      }
+      $flags_in_form++;
+    }
+    if ($flags_in_form) {
+      $form['flag'] += array(
+        '#weight' => module_exists('content') ? content_extra_field_weight($form['#node']->type, 'flag') : 1,
+        '#tree' => TRUE,
+      );
+    }
+    if ($flags_visible) {
+      $form['flag'] += array(
+        '#type' => 'fieldset',
+        '#title' => t('Flags'),
+        '#collapsible' => TRUE,
+        // Vertical tabs support:
+        '#group' => 'additional_settings',
+        '#attributes' => array('class' => 'flag-fieldset'),
+        '#attached' => array(
+          'js' => array(
+            'vertical-tabs' => drupal_get_path('module', 'flag') . '/theme/flag-admin.js',
+          ),
+        ),
+      );
+    }
+
+  }
+}
+
+/**
+ * Implementation of hook_nodeapi().
+ */
+function flag_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
+  global $user;
+  switch ($op) {
+    case 'update':
+    case 'insert':
+      // Response to the flag checkboxes added to the form in flag_form_alter().
+      $remembered = FALSE;
+      if (isset($node->flag)) {
+        foreach ($node->flag as $name => $state) {
+          $flag = flag_get_flag($name);
+          // Flagging may trigger actions. We want actions to get the current
+          // node, not a stale database-loaded one:
+          if (!$remembered) {
+            $flag->remember_content($node->nid, $node);
+            // Actions may modify a node, and we don't want to overwrite this
+            // modification:
+            $remembered = TRUE;
+          }
+          flag($state ? 'flag' : 'unflag', $name, $node->nid, $user);
+        }
+      }
+      break;
+    case 'delete':
+      foreach (flag_get_flags('node') as $flag) {
+        // If the flag is being tracked by translation set and the node is part
+        // of a translation set, don't delete the flagging record.
+        // Instead, data will be updated in the 'translation_change' op, below.
+        if (!$flag->i18n || empty($node->tnid)) {
+          db_query("DELETE FROM {flag_content} WHERE fid = %d AND content_id = %d", $flag->fid, $node->nid);
+          db_query("DELETE FROM {flag_counts} WHERE fid = %d AND content_id = %d", $flag->fid, $node->nid);
+
+          // Delete comments.
+          db_query("DELETE FROM {flag_content}
+                     WHERE content_type = 'comment'
+                       AND content_id IN(
+                    SELECT cid
+                      FROM {comments}
+                     WHERE nid = %d)", $node->nid);
+        }
+      }
+      break;
+    case 'translation_change':
+      if (isset($node->translation_change)) {
+        // If there is only one node remaining, track by nid rather than tnid.
+        // Otherwise, use the new tnid.
+        $content_id = $node->translation_change['new_tnid'] == 0 ? $node->translation_change['remaining_nid'] : $node->translation_change['new_tnid'];
+        foreach (flag_get_flags('node') as $flag) {
+          if ($flag->i18n) {
+            db_query("UPDATE {flag_content} SET content_id = %d WHERE fid = %d AND content_id = %d", $content_id, $flag->fid, $node->translation_change['old_tnid']);
+            db_query("UPDATE {flag_counts} SET content_id = %d WHERE fid = %d AND content_id = %d", $content_id, $flag->fid, $node->translation_change['old_tnid']);
+          }
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_user().
+ */
+function flag_user($op, &$edit, &$account, $category = NULL) {
+  switch ($op) {
+    case 'login':
+      // Migrate anonymous flags to this user's account.
+      if (module_exists('session_api') && ($sid = flag_get_sid(0))) {
+        // The @ symbol suppresses errors if the user flags a piece of content
+        // they have already flagged as a logged-in user.
+        @db_query("UPDATE {flag_content} SET uid = %d, sid = 0 WHERE uid = 0 AND sid = %d", $account->uid, $sid);
+
+        // Delete any remaining flags this user had as an anonymous user. We use the
+        // proper unflag action here to make sure the count gets decremented again
+        // and so that other modules can clean up their tables if needed.
+        $result = db_query("SELECT fcid, fid, content_id FROM {flag_content} WHERE uid = 0 AND sid = %d", $sid);
+        $anonymous_user = drupal_anonymous_user();
+        while ($row = db_fetch_array($result)) {
+          $flag = flag_get_flag(NULL, $row['fid']);
+          $flag->flag('unflag', $row['content_id'], $anonymous_user, TRUE);
+        }
+
+        // Clean up anonymous cookies.
+        FlagCookieStorage::drop();
+      }
+      break;
+    case 'delete':
+      // Remove flags by this user.
+      $result = db_query("SELECT fc.fid, fc.content_id, c.count FROM {flag_content} fc LEFT JOIN {flag_counts} c ON fc.content_id = c.content_id AND fc.content_type = c.content_type WHERE fc.uid = %d", $account->uid);
+      while ($flag_data = db_fetch_object($result)) {
+        $flag_data->count--;
+        // Only decrement the flag count table if it's greater than 1.
+        if ($flag_data->count > 0) {
+          db_query("UPDATE {flag_counts} SET count = %d WHERE fid = %d AND content_id = %d", $flag_data->count, $flag_data->fid, $flag_data->content_id);
+        }
+        elseif ($flag_data->count == 0) {
+          db_query("DELETE FROM {flag_counts} WHERE fid = %d AND content_id = %d", $flag_data->fid, $flag_data->content_id);
+        }
+      }
+      db_query("DELETE FROM {flag_content} WHERE uid = %d", $account->uid);
+
+      // Remove flags that have been done to this user.
+      db_query("DELETE FROM {flag_counts} WHERE content_type = 'user' AND content_id = %d", $account->uid);
+      db_query("DELETE FROM {flag_content} WHERE content_type = 'user' AND content_id = %d", $account->uid);
+      break;
+    case 'view';
+      $flags = flag_get_flags('user');
+      $flag_items = array();
+      foreach ($flags as $flag) {
+        if (!$flag->access($account->uid)) {
+          // User has no permission to use this flag.
+          continue;
+        }
+        if (!$flag->uses_hook_link(array())) {
+          // Flag not set to appear on profile.
+          continue;
+        }
+        $flag_items[$flag->name] = array(
+          '#type' => 'user_profile_item',
+          '#title' => $flag->get_title($account->uid),
+          '#value' => $flag->theme($flag->is_flagged($account->uid) ? 'unflag' : 'flag', $account->uid),
+          '#attributes' => array('class' => 'flag-profile-' . $flag->name),
+        );
+      }
+      if (!empty($flag_items)) {
+        $account->content['flags'] = $flag_items;
+        $account->content['flags'] += array(
+          '#type' => 'user_profile_category',
+          '#title' => t('Actions'),
+          '#attributes' => array('class' => 'flag-profile'),
+        );
+      }
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_session_api_cleanup().
+ *
+ * Clear out anonymous user flaggings during Session API cleanup.
+ */
+function flag_session_api_cleanup($arg = 'run') {
+  // Session API 1.1 version:
+  if ($arg == 'run') {
+    $result = db_query("SELECT fc.sid FROM {flag_content} fc LEFT JOIN {session_api} s ON (fc.sid = s.sid) WHERE fc.sid <> 0 AND s.sid IS NULL");
+    while ($row = db_fetch_object($result)) {
+      db_query("DELETE FROM {flag_content} WHERE sid = %d", $row->sid);
+    }
+  }
+  // Session API 1.2+ version.
+  elseif (is_array($arg)) {
+    $outdated_sids = $arg;
+    db_query('DELETE FROM {flag_content} WHERE sid IN (' . implode(',', $outdated_sids) . ')');
+  }
+}
+
+/**
+ * Implementation of hook_node_type().
+ */
+function flag_node_type($op, $info) {
+  switch ($op) {
+    case 'delete':
+      // Remove entry from flaggable content types.
+      db_query("DELETE FROM {flag_types} WHERE type = '%s'", $info->type);
+      break;
+  }
+}
+
+/**
+ * Menu callback for (un)flagging a node.
+ *
+ * Used both for the regular callback as well as the JS version.
+ *
+ * @param $action
+ *   Either 'flag' or 'unflag'.
+ */
+function flag_page($action, $flag, $content_id) {
+  global $user;
+
+  // Shorten up the variables that affect the behavior of this page.
+  $js = isset($_REQUEST['js']);
+  $token = $_REQUEST['token'];
+
+  // Specifically $_GET to avoid getting the $_COOKIE variable by the same key.
+  $has_js = isset($_GET['has_js']);
+
+  // Check the flag token, then perform the flagging.
+  if (!flag_check_token($token, $content_id)) {
+    $error = t('Bad token. You seem to have followed an invalid link.');
+  }
+  elseif ($user->uid == 0 && !$has_js) {
+    $error = t('You must have JavaScript and cookies enabled in your browser to flag content.');
+  }
+  else {
+    $result = $flag->flag($action, $content_id);
+    if (!$result) {
+      $error = t('You are not allowed to flag, or unflag, this content.');
+    }
+  }
+
+  // If an error was received, set a message and exit.
+  if (isset($error)) {
+    if ($js) {
+      drupal_set_header('Content-Type: text/javascript; charset=utf-8');
+      print drupal_to_js(array(
+        'status' => FALSE,
+        'errorMessage' => $error,
+      ));
+      exit;
+    }
+    else {
+      drupal_set_message($error);
+      drupal_access_denied();
+      return;
+    }
+  }
+
+  // If successful, return data according to the request type.
+  if ($js) {
+    drupal_set_header('Content-Type: text/javascript; charset=utf-8');
+    $flag->link_type = 'toggle';
+    print drupal_to_js(flag_build_javascript_info($flag, $content_id));
+    exit;
+  }
+  else {
+    drupal_set_message($flag->get_label($action . '_message', $content_id));
+    drupal_goto();
+  }
+}
+
+/**
+ * Builds the JavaScript structure describing the flagging operation.
+ */
+function flag_build_javascript_info($flag, $content_id){
+  $info = array(
+    'status' => TRUE,
+    'newLink' => $flag->theme($flag->is_flagged($content_id) ? 'unflag' : 'flag', $content_id, TRUE),
+    // Further information for the benefit of custom JavaScript event handlers:
+    'contentId' => $content_id,
+    'contentType' => $flag->content_type,
+    'flagName' => $flag->name,
+    'flagStatus' => $flag->is_flagged($content_id) ? 'flagged' : 'unflagged',
+  );
+  drupal_alter('flag_javascript_info', $info);
+  return $info;
+}
+
+/**
+ * Form for confirming the (un)flagging of a piece of content.
+ *
+ * @param $action
+ *   Either 'flag' or 'unflag'.
+ * @param $flag
+ *   A loaded flag object.
+ * @param $content_id
+ *   The id of the content to operate on. The type is implicit in the flag.
+ *
+ * @see flag_confirm_submit()
+ */
+function flag_confirm(&$form_state, $action, $flag, $content_id) {
+  $form = array();
+  $form['action'] = array(
+    '#type' => 'value',
+    '#value' => $action,
+  );
+  $form['flag_name'] = array(
+    '#type' => 'value',
+    '#value' => $flag->name,
+  );
+  $form['content_id'] = array(
+    '#type' => 'value',
+    '#value' => $content_id,
+  );
+
+  $question = $flag->get_label($action . '_confirmation', $content_id);
+  $path = isset($_GET['destination']) ? $_GET['destination'] : '<front>';
+  $yes = $flag->get_label($action . '_short', $content_id);
+
+  return confirm_form($form, $question, $path, '', $yes);
+}
+
+/**
+ * Submit handler for the flag confirm form.
+ *
+ * Note that validating whether the user may perform the action is done here,
+ * rather than in a form validation handler.
+ *
+ * @see flag_confirm()
+ */
+function flag_confirm_submit(&$form, &$form_state) {
+  $action = $form_state['values']['action'];
+  $flag_name = $form_state['values']['flag_name'];
+  $content_id = $form_state['values']['content_id'];
+
+  $result = flag($action, $flag_name, $content_id);
+  if (!$result) {
+    drupal_set_message(t('You are not allowed to flag, or unflag, this content.'));
+  }
+  else {
+    $flag = flag_get_flag($flag_name);
+    drupal_set_message($flag->get_label($action . '_message', $content_id));
+  }
+}
+
+/**
+ * Flags or unflags an item.
+ *
+ * @param $account
+ *   The user on whose behalf to flag. Leave empty for the current user.
+ * @return
+ *   FALSE if some error occured (e.g., user has no permission, flag isn't
+ *   applicable to the item, etc.), TRUE otherwise.
+ */
+function flag($action, $flag_name, $content_id, $account = NULL) {
+  if (!($flag = flag_get_flag($flag_name))) {
+    // Flag does not exist.
+    return FALSE;
+  }
+  return $flag->flag($action, $content_id, $account);
+}
+
+/**
+ * Implementation of hook_flag(). Trigger actions if any are available.
+ */
+function flag_flag($action, $flag, $content_id, $account) {
+  if (module_exists('trigger')) {
+    $context['hook'] = 'flag';
+    $context['account'] = $account;
+    $context['flag'] = $flag;
+    $context['op'] = $action;
+    // We add to the $context all the objects we know about:
+    $context = array_merge($flag->get_relevant_action_objects($content_id), $context);
+    // The primary object the actions work on.
+    $object = $flag->fetch_content($content_id);
+
+    // Generic "all flags" actions.
+    foreach (_trigger_get_hook_aids('flag', $action) as $aid => $action_info) {
+      // The 'if ($aid)' is a safeguard against http://drupal.org/node/271460#comment-886564
+      if ($aid) {
+        actions_do($aid, $object, $context);
+      }
+    }
+    // Actions specifically for this flag.
+    foreach (_trigger_get_hook_aids('flag', $action . '_' . $flag->name) as $aid => $action_info) {
+      if ($aid) {
+        actions_do($aid, $object, $context);
+      }
+    }
+  }
+
+  if (module_exists('rules')) {
+    $event_name = ($action == 'flag' ? 'flag_flagged_' : 'flag_unflagged_') . $flag->name;
+    $arguments = array(
+      'flag' => $flag,
+      'flag_content_id' => $content_id,
+      'flagging_user' => $account,
+    );
+    rules_invoke_event($event_name, $arguments);
+  }
+}
+
+/**
+ * Implementation of hook_flag_access().
+ */
+function flag_flag_access($flag, $content_id, $action, $account) {
+  // Do nothing if there is no restriction by authorship.
+  if (empty($flag->access_author)) {
+    return;
+  }
+
+  // Restrict access by authorship. It's important that TRUE is never returned
+  // here, otherwise we'd grant permission even if other modules denied access.
+  if ($flag->content_type == 'node') {
+    // For non-existent nodes (such as on the node add form), assume that the
+    // current user is creating the content.
+    if (empty($content_id) || !($node = node_load($content_id))) {
+      return $flag->access_author == 'others' ? FALSE : NULL;
+    }
+
+    if ($flag->access_author == 'own' && $node->uid != $account->uid) {
+      return FALSE;
+    }
+    elseif ($flag->access_author == 'others' && $node->uid == $account->uid) {
+      return FALSE;
+    }
+  }
+
+  // Restrict access by comment authorship.
+  if ($flag->content_type == 'comment') {
+    // For non-existent comments (such as on the comment add form), assume that
+    // the current user is creating the content.
+    if (empty($content_id) || !($comment = $flag->fetch_content($content_id))) {
+      return $flag->access_author == 'comment_others' ? FALSE : NULL;
+    }
+
+    $node = node_load($comment->nid);
+    if ($flag->access_author == 'node_own' && $node->uid != $account->uid) {
+      return FALSE;
+    }
+    elseif ($flag->access_author == 'node_others' && $node->uid == $account->uid) {
+      return FALSE;
+    }
+    elseif ($flag->access_author == 'comment_own' && $comment->uid != $account->uid) {
+      return FALSE;
+    }
+    elseif ($flag->access_author == 'comment_others' && $comment->uid == $account->uid) {
+      return FALSE;
+    }
+  }
+}
+
+/**
+ * Implementation of hook_flag_access_multiple().
+ */
+function flag_flag_access_multiple($flag, $content_ids, $account) {
+  $access = array();
+
+  // Do nothing if there is no restriction by authorship.
+  if (empty($flag->access_author)) {
+    return $access;
+  }
+
+  if ($flag->content_type == 'node') {
+    // Restrict access by authorship. This is similar to flag_flag_access()
+    // above, but returns an array of 'nid' => $access values. Similarly, we
+    // should never return TRUE in any of these access values, only FALSE if we
+    // want to deny access, or use the current access value provided by Flag.
+    $nids = implode(',', array_map('intval', array_keys($content_ids)));
+    $placeholders = implode(',', array_fill(0, sizeof($flag->types), "'%s'"));
+    $result = db_query("SELECT nid, uid FROM {node} WHERE nid IN ($nids) AND type in ($placeholders)", $flag->types);
+    while ($row = db_fetch_object($result)) {
+      if ($flag->access_author == 'own') {
+        $access[$row->nid] = $row->uid != $account->uid ? FALSE : NULL;
+      }
+      elseif ($flag->access_author == 'others') {
+        $access[$row->nid] = $row->uid == $account->uid ? FALSE : NULL;
+      }
+    }
+  }
+
+  if ($flag->content_type == 'comment') {
+    // Restrict access by comment ownership.
+    $cids = implode(',', array_map('intval', array_keys($content_ids)));
+    $result = db_query("SELECT c.cid, c.nid, c.uid as comment_uid, n.nid as node_uid FROM {comments} c LEFT JOIN {node} n ON c.nid = n.nid WHERE cid IN ($cids)");
+    while ($row = db_fetch_object($result)) {
+      if ($flag->access_author == 'node_own') {
+        $access[$row->cid] = $row->node_uid != $account->uid ? FALSE : NULL;
+      }
+      elseif ($flag->access_author == 'node_others') {
+        $access[$row->cid] = $row->node_uid == $account->uid ? FALSE : NULL;
+      }
+      elseif ($flag->access_author == 'comment_own') {
+        $access[$row->cid] = $row->comment_uid != $account->uid ? FALSE : NULL;
+      }
+      elseif ($flag->access_author == 'comment_others') {
+        $access[$row->cid] = $row->comment_uid == $account->uid ? FALSE : NULL;
+      }
+    }
+  }
+
+  // Always return an array (even if empty) of accesses.
+  return $access;
+}
+
+/**
+ * Trim a flag to a certain size.
+ *
+ * @param $fid
+ *   The flag object.
+ * @param $account
+ *   The user object on behalf the trimming will occur.
+ * @param $cutoff_size
+ *   The number of flaggings allowed. Any flaggings beyond that will be trimmed.
+ */
+function flag_trim_flag($flag, $account, $cutoff_size) {
+  $result = db_query("SELECT * FROM {flag_content} WHERE fid = %d AND (uid = %d OR uid = 0) ORDER BY timestamp DESC", $flag->fid, $account->uid);
+  $i = 1;
+  while ($row = db_fetch_object($result)) {
+    if ($i++ > $cutoff_size) {
+      flag('unflag', $flag->name, $row->content_id, $account);
+    }
+  }
+}
+
+/**
+ * Remove all flagged content from a flag.
+ *
+ * @param $flag
+ *   The flag object.
+ * @param $content_id
+ *   Optional. The content ID on which all flaggings will be removed. If left
+ *   empty, this will remove all of this flag's content.
+ */
+function flag_reset_flag($flag, $content_id = NULL) {
+  $result = db_query("SELECT * FROM {flag_content} WHERE fid = %d" . ($content_id ? " AND content_id = %d" : ''), $flag->fid, $content_id);
+  $rows = array();
+  while ($row = db_fetch_array($result)) {
+    $rows[] = $row;
+  }
+  module_invoke_all('flag_reset', $flag, $content_id, $rows);
+
+  // Update the flag_counts table.
+  db_query("DELETE FROM {flag_counts} WHERE fid = %d" . ($content_id ? " AND content_id = %d" : ''), $flag->fid, $content_id);
+  db_query("DELETE FROM {flag_content} WHERE fid = %d" . ($content_id ? " AND content_id = %d" : ''), $flag->fid, $content_id);
+  return db_affected_rows();
+}
+
+/**
+ * Implementation of hook_node_operations().
+ *
+ * Add additional options on the admin/build/node page.
+ */
+function flag_node_operations() {
+  global $user;
+
+  $flags = flag_get_flags('node', NULL, $user);
+  $operations = array();
+
+  foreach ($flags as $flag) {
+    $operations['flag_' . $flag->name] = array(
+      'label' => $flag->get_label('flag_short'),
+      'callback' => 'flag_nodes',
+      'callback arguments' => array('flag', $flag->name),
+      'behavior' => array(),
+    );
+    $operations['unflag_' . $flag->name] = array(
+      'label' => $flag->get_label('unflag_short'),
+      'callback' => 'flag_nodes',
+      'callback arguments' => array('unflag', $flag->name),
+      'behavior' => array(),
+    );
+  }
+  return $operations;
+}
+
+/**
+ * Callback function for hook_node_operations().
+ */
+function flag_nodes($nodes, $action, $flag_name) {
+  $performed = FALSE;
+  foreach ($nodes as $nid) {
+    $performed |= flag($action, $flag_name, $nid);
+  }
+  if ($performed) {
+    drupal_set_message(t('The update has been performed.'));
+  }
+}
+
+/**
+ * Implementation of hook_user_operations().
+ */
+function flag_user_operations() {
+  global $user;
+
+  $flags = flag_get_flags('user', NULL, $user);
+  $operations = array();
+
+  foreach ($flags as $flag) {
+    $operations['flag_' . $flag->name] = array(
+      'label' => $flag->get_label('flag_short'),
+      'callback' => 'flag_users',
+      'callback arguments' => array('flag', $flag->name),
+    );
+    $operations['unflag_' . $flag->name] = array(
+      'label' => $flag->get_label('unflag_short'),
+      'callback' => 'flag_users',
+      'callback arguments' => array('unflag', $flag->name),
+    );
+  }
+  return $operations;
+}
+/**
+ * Callback function for hook_user_operations().
+ */
+function flag_users($users, $action, $flag_name) {
+  foreach ($users as $uid) {
+    flag($action, $flag_name, $uid);
+  }
+}
+
+/**
+ * Implements hook_comment().
+ */
+function flag_comment(&$comment, $op) {
+  switch ($op) {
+    case 'delete':
+      db_query("DELETE FROM {flag_content}
+                 WHERE content_type = 'comment'
+                   AND content_id = %d", $comment->cid);
+
+      db_query("DELETE FROM {flag_counts}
+                 WHERE content_type = 'comment'
+                   AND content_id = %d", $comment->cid);
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_mail().
+ */
+function flag_mail($key, &$message, $params) {
+  switch ($key) {
+    case 'over_threshold':
+      $message['subject'] = $params['subject'];
+      $message['body'] = $params['body'];
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function flag_theme() {
+  $path = drupal_get_path('module', 'flag') . '/theme';
+
+  return array(
+    'flag' => array(
+      'arguments' => array('flag' => NULL, 'action' => NULL, 'content_id' => NULL, 'after_flagging' => FALSE),
+      'template' => 'flag',
+      'pattern' => 'flag__',
+      'path' => $path,
+    ),
+    'flag_tokens_browser' => array(
+      'variables' => array('types' => array('all'), 'prefix' => '[', 'suffix' => ']'),
+      'file' => 'includes/flag.token.inc',
+    ),
+    'flag_admin_listing' => array(
+      'variables' => array('form' => NULL),
+      'file' => 'includes/flag.admin.inc',
+    ),
+    'flag_admin_listing_disabled' => array(
+      'arguments' => array('flags' => NULL, 'default_flags' => NULL),
+      'file' => 'includes/flag.admin.inc',
+    ),
+    'flag_admin_page' => array(
+      'arguments' => array('flags' => NULL, 'default_flags' => NULL, 'flag_admin_listing' => NULL),
+      'file' => 'includes/flag.admin.inc',
+    ),
+    'flag_form_roles' => array(
+      'arguments' => array('element' => NULL),
+      'file' => 'includes/flag.admin.inc',
+    ),
+    'flag_rules_radios' => array(
+      'arguments' => array('element' => NULL),
+      'file' => 'includes/flag.rules_forms.inc',
+    ),
+  );
+}
+
+/**
+ * A preprocess function for our theme('flag'). It generates the
+ * variables needed there.
+ *
+ * The $variables array initially contains the following arguments:
+ * - $flag
+ * - $action
+ * - $content_id
+ * - $after_flagging
+ *
+ * See 'flag.tpl.php' for their documentation.
+ */
+function template_preprocess_flag(&$variables) {
+  global $user;
+  static $initialized = array();
+
+  // Some typing shotcuts:
+  $flag =& $variables['flag'];
+  $action = $variables['action'];
+  $content_id = $variables['content_id'];
+  $flag_css_name = str_replace('_', '-', $flag->name);
+
+  // Generate the link URL.
+  $link_type = $flag->get_link_type();
+  $link = module_invoke($link_type['module'], 'flag_link', $flag, $action, $content_id);
+  if (isset($link['title']) && empty($link['html'])) {
+    $link['title'] = check_plain($link['title']);
+  }
+
+  // Replace the link with the access denied text if unable to flag.
+  if ($action == 'unflag' && !$flag->access($content_id, 'unflag')) {
+    $link['title'] = $flag->get_label('unflag_denied_text', $content_id);
+    unset($link['href']);
+  }
+
+  // Anonymous users always need the JavaScript to maintain their flag state.
+  if ($user->uid == 0) {
+    $link_type['uses standard js'] = TRUE;
+  }
+
+  // Load the JavaScript/CSS, if the link type requires it.
+  if (!isset($initialized[$link_type['name']])) {
+    if ($link_type['uses standard css']) {
+      drupal_add_css(drupal_get_path('module', 'flag') . '/theme/flag.css');
+    }
+    if ($link_type['uses standard js']) {
+      drupal_add_js(drupal_get_path('module', 'flag') . '/theme/flag.js');
+    }
+    $initialized[$link_type['name']] = TRUE;
+  }
+
+  $variables['link'] = $link;
+  $variables['link_href'] = isset($link['href']) ? check_url(url($link['href'], $link)) : FALSE;
+  $variables['link_text'] = isset($link['title']) ? $link['title'] : $flag->get_label($action . '_short', $content_id);
+  $variables['link_title'] = isset($link['attributes']['title']) ? check_plain($link['attributes']['title']) : check_plain(strip_tags($flag->get_label($action . '_long', $content_id)));
+  $variables['status'] = ($action == 'flag' ? 'unflagged' : 'flagged');
+  $variables['flag_name_css'] = $flag_css_name;
+
+  $variables['flag_wrapper_classes_array'] = array();
+  $variables['flag_wrapper_classes_array'][] = 'flag-wrapper';
+  $variables['flag_wrapper_classes_array'][] = 'flag-' . $flag_css_name;
+  $variables['flag_wrapper_classes_array'][] = 'flag-' . $flag_css_name . '-' . $content_id;
+  $variables['flag_wrapper_classes'] = implode(' ', $variables['flag_wrapper_classes_array']);
+
+  $variables['flag_classes_array'] = array();
+  $variables['flag_classes_array'][] = 'flag';
+  $variables['flag_classes_array'][] = $variables['action'] . '-action';
+  $variables['flag_classes_array'][] = 'flag-link-' . $flag->link_type;
+  if (isset($link['attributes']['class'])) {
+    $link['attributes']['class'] = is_string($link['attributes']['class']) ? array_filter(explode(' ', $link['attributes']['class'])) : $link['attributes']['class'];
+    $variables['flag_classes_array'] = array_merge($variables['flag_classes_array'], $link['attributes']['class']);
+  }
+  if ($variables['after_flagging']) {
+    $inverse_action = ($action == 'flag' ? 'unflag' : 'flag');
+    $variables['message_text'] = $flag->get_label($inverse_action . '_message', $content_id);
+    $variables['flag_classes_array'][] = $variables['status'];
+  }
+  $variables['flag_classes'] = implode(' ', $variables['flag_classes_array']);
+
+  // Backward compatibility: The following section preserves some deprecated
+  // variables either to make old flag.tpl.php files continue to work, or to
+  // prevent PHP from generating E_NOTICEs there. @todo: Remove these sometime.
+  $variables['setup'] = FALSE;
+  $variables['last_action'] = $variables['status'];
+}
+
+/**
+ * Return an array of flag names keyed by fid.
+ */
+function _flag_get_flag_names() {
+  $flags = flag_get_flags();
+  $flag_names = array();
+  foreach ($flags as $flag) {
+    $flag_names[$flag->fid] = $flag->name;
+  }
+  return $flag_names;
+}
+
+/**
+ * Return an array of flag link types suitable for a select list or radios.
+ */
+function _flag_link_type_options() {
+  $options = array();
+  $types = flag_get_link_types();
+  foreach ($types as $type_name => $type) {
+    $options[$type_name] = $type['title'];
+  }
+  return $options;
+}
+
+/**
+ * Return an array of flag link type descriptions.
+ */
+function _flag_link_type_descriptions() {
+  $options = array();
+  $types = flag_get_link_types();
+  foreach ($types as $type_name => $type) {
+    $options[$type_name] = $type['description'];
+  }
+  return $options;
+}
+
+// ---------------------------------------------------------------------------
+// Non-Views public API
+
+/**
+ * Get flag counts for all flags on a node.
+ *
+ * @param $content_type
+ *   The content type (usually 'node').
+ * @param $content_id
+ *   The content ID (usually the node ID).
+ * @param $reset
+ *   Reset the internal cache and execute the SQL query another time.
+ *
+ * @return $flags
+ *   An array of the structure [name] => [number of flags].
+ */
+function flag_get_counts($content_type, $content_id, $reset = FALSE) {
+  static $counts;
+
+  if ($reset) {
+    $counts = array();
+    if (!isset($content_type)) {
+      return;
+    }
+  }
+
+  if (!isset($counts[$content_type][$content_id])) {
+    $counts[$content_type][$content_id] = array();
+    $result = db_query("SELECT f.name, fc.count FROM {flags} f LEFT JOIN {flag_counts} fc ON f.fid = fc.fid WHERE fc.content_type = '%s' AND fc.content_id = %d", $content_type, $content_id);
+    while ($row = db_fetch_object($result)) {
+      $counts[$content_type][$content_id][$row->name] = $row->count;
+    }
+  }
+
+  return $counts[$content_type][$content_id];
+}
+
+/**
+ * Get the total count of items flagged within a flag.
+ *
+ * @param $flag_name
+ *   The flag name for which to retrieve a flag count.
+ * @param $reset
+ *   Reset the internal cache and execute the SQL query another time.
+ */
+function flag_get_flag_counts($flag_name, $reset = FALSE) {
+  static $counts;
+
+  if ($reset) {
+    $counts = array();
+  }
+  if (!isset($counts[$flag_name])) {
+    $flag = flag_get_flag($flag_name);
+    $counts[$flag_name] = db_result(db_query("SELECT COUNT(*) FROM {flag_content} WHERE fid = %d", $flag->fid));
+  }
+
+  return $counts[$flag_name];
+}
+
+/**
+ * Load a single flag either by name or by flag ID.
+ *
+ * @param $name
+ *  (optional) The flag name.
+ * @param $fid
+ *  (optional) The the flag id.
+ *
+ * @return
+ *  The flag object, or FALSE if no matching flag was found.
+ */
+function flag_get_flag($name = NULL, $fid = NULL) {
+  $flags = flag_get_flags();
+  if (isset($name)) {
+    if (isset($flags[$name])) {
+      return $flags[$name];
+    }
+  }
+  elseif (isset($fid)) {
+    foreach ($flags as $flag) {
+      if ($flag->fid == $fid) {
+        return $flag;
+      }
+    }
+  }
+  return FALSE;
+}
+
+/**
+ * List all flags available.
+ *
+ * If node type or account are entered, a list of all possible flags will be
+ * returned.
+ *
+ * @param $content_type
+ *   Optional. The type of content for which to load the flags. Usually 'node'.
+ * @param $content_subtype
+ *   Optional. The node type for which to load the flags.
+ * @param $account
+ *   Optional. The user accont to filter available flags. If not set, all
+ *   flags for will this node will be returned.
+ * @param $reset
+ *   Optional. Reset the internal query cache.
+ *
+ * @return $flags
+ *   An array of the structure [fid] = flag_object.
+ */
+function flag_get_flags($content_type = NULL, $content_subtype = NULL, $account = NULL, $reset = FALSE) {
+  static $flags;
+
+  // Retrieve a list of all flags, regardless of the parameters.
+  if (!isset($flags) || $reset) {
+    $flags = array();
+
+    // Database flags.
+    $result = db_query("SELECT f.*, fn.type FROM {flags} f LEFT JOIN {flag_types} fn ON fn.fid = f.fid");
+    while ($row = db_fetch_object($result)) {
+      if (!isset($flags[$row->name])) {
+        $flags[$row->name] = flag_flag::factory_by_row($row);
+      }
+      else {
+        $flags[$row->name]->types[] = $row->type;
+      }
+    }
+
+    // Add code-based flags provided by modules.
+    $default_flags = flag_get_default_flags();
+    foreach ($default_flags as $name => $default_flag) {
+      // Insert new enabled flags into the database to give them an FID.
+      if ($default_flag->status && !isset($flags[$name])) {
+        $default_flag->save();
+        $flags[$name] = $default_flag;
+      }
+
+      if (isset($flags[$name])) {
+        // Ensure overridden flags are associated with their parent module.
+        $flags[$name]->module = $default_flag->module;
+
+        // Update the flag with any properties that are "locked" by the code version.
+        if (isset($default_flag->locked)) {
+          $flags[$name]->locked = $default_flag->locked;
+          foreach ($default_flag->locked as $property) {
+            $flags[$name]->$property = $default_flag->$property;
+          }
+        }
+      }
+    }
+
+    // Sort the list of flags by weight.
+    uasort($flags, '_flag_compare_weight');
+
+    // Allow modules implementing hook_flag_alter(&$flag) to modify each flag.
+    foreach ($flags as $flag) {
+      drupal_alter('flag', $flag);
+    }
+  }
+
+  // Make a variable copy to filter types and account.
+  $filtered_flags = $flags;
+
+  // Filter out flags based on type and subtype.
+  if (isset($content_type) || isset($content_subtype)) {
+    foreach ($filtered_flags as $name => $flag) {
+      if (!_flag_content_enabled($flag, $content_type, $content_subtype)) {
+        unset($filtered_flags[$name]);
+      }
+    }
+  }
+
+  // Filter out flags based on account permissions.
+  if (isset($account) && $account->uid != 1) {
+    foreach ($filtered_flags as $name => $flag) {
+      // We test against the 'flag' action, which is the minimum permission to
+      // use a flag.
+      if (!$flag->user_access('flag', $account)) {
+        unset($filtered_flags[$name]);
+      }
+    }
+  }
+
+  return $filtered_flags;
+}
+
+/**
+ * Comparison function for uasort().
+ */
+function _flag_compare_weight($flag1, $flag2) {
+  if ($flag1->weight == $flag2->weight) {
+    return 0;
+  }
+  return $flag1->weight < $flag2->weight ? -1 : 1;
+}
+
+/**
+ * Utility function: Checks whether a flag applies to a certain type, and
+ * possibly subtype, of content.
+ *
+ * @param $content_type
+ *   The type of content being checked, usually "node".
+ * @param $content_subtype
+ *   The subtype (node type) being checked.
+ *
+ * @return
+ *   TRUE if the flag is enabled for this type and subtype.
+ */
+function _flag_content_enabled($flag, $content_type, $content_subtype = NULL) {
+  $return = $flag->content_type == $content_type && (!isset($content_subtype) || in_array($content_subtype, $flag->types));
+  return $return;
+}
+
+/**
+ * Retrieve a list of flags defined by modules.
+ *
+ * @param $include_disabled
+ *   Unless specified, only enabled flags will be returned.
+ * @return
+ *   An array of flag prototypes, not usable for flagging. Use flag_get_flags()
+ *   if needing to perform a flagging with any enabled flag.
+ */
+function flag_get_default_flags($include_disabled = FALSE) {
+  $default_flags = array();
+  $flag_status = variable_get('flag_default_flag_status', array());
+
+  foreach (module_implements('flag_default_flags') as $module) {
+    $function = $module . '_flag_default_flags';
+    foreach ($function() as $flag_name => $flag_info) {
+      // Backward compatibility: old exported default flags have their names
+      // in $flag_info instead, so we use the += operator to not overwrite it.
+      $flag_info += array(
+        'name' => $flag_name,
+        'module' => $module,
+      );
+      $flag = flag_flag::factory_by_array($flag_info);
+
+      // Disable flags that are not at the current API version.
+      if (!$flag->is_compatible()) {
+        $flag->status = FALSE;
+      }
+
+      // Add flags that have been enabled.
+      if ((!isset($flag_status[$flag->name]) && (!isset($flag->status) || $flag->status)) || !empty($flag_status[$flag->name])) {
+        $flag->status = TRUE;
+        $default_flags[$flag->name] = $flag;
+      }
+      // Add flags that have been disabled.
+      elseif ($include_disabled) {
+        $flag->status = FALSE;
+        $default_flags[$flag->name] = $flag;
+      }
+    }
+  }
+
+  return $default_flags;
+}
+
+/**
+ * Get all flagged content in a flag.
+ *
+ * @param
+ *   The flag name for which to retrieve flagged content.
+ */
+function flag_get_flagged_content($flag_name) {
+  $return = array();
+  $flag = flag_get_flag($flag_name);
+  $result = db_query("SELECT * FROM {flag_content} WHERE fid = %d", $flag->fid);
+  while ($row = db_fetch_object($result)) {
+    $return[] = $row;
+  }
+  return $return;
+}
+
+/**
+ * Get content ID from a flag content ID.
+ *
+ * @param $fcid
+ *   The flag content ID for which to look up the content ID.
+ */
+function flag_get_content_id($fcid) {
+  return db_result(db_query("SELECT content_id FROM {flag_content} WHERE fcid = %d", $fcid));
+}
+
+/**
+ * Find what a user has flagged, either a single node or on the entire site.
+ *
+ * @param $content_type
+ *   The type of content that will be retrieved. Usually 'node'.
+ * @param $content_id
+ *   Optional. The content ID to check for flagging. If none given, all
+ *   content flagged by this user will be returned.
+ * @param $uid
+ *   Optional. The user ID whose flags we're checking. If none given, the
+ *   current user will be used.
+ * @param $sid
+ *   Optional. The user SID (provided by Session API) whose flags we're
+ *   checking. If none given, the current user will be used. The SID is 0 for
+ *   logged in users.
+ * @param $reset
+ *   Reset the internal cache and execute the SQL query another time.
+ *
+ * @return $flags
+ *   If returning a single item's flags (that is, when $content_id isn't NULL),
+ *   an array of the structure
+ *   [flag_name] => (fcid => [fcid], uid => [uid], content_id => [content_id], timestamp => [timestamp], ...)
+ *
+ *   If returning all items' flags, an array of arrays for each flag:
+ *   [flag_name] => [content_id] => Object from above.
+ */
+function flag_get_user_flags($content_type, $content_id = NULL, $uid = NULL, $sid = NULL, $reset = FALSE) {
+  static $flagged_content;
+
+  if ($reset) {
+    $flagged_content = array();
+    if (!isset($content_type)) {
+      return;
+    }
+  }
+
+  $uid = !isset($uid) ? $GLOBALS['user']->uid : $uid;
+  $sid = !isset($sid) ? flag_get_sid($uid) : $sid;
+
+  if (isset($content_id)) {
+    if (!isset($flagged_content[$uid][$sid][$content_type][$content_id])) {
+      $flag_names = _flag_get_flag_names();
+      $flagged_content[$uid][$sid][$content_type][$content_id] = array();
+      $result = db_query("SELECT * FROM {flag_content} WHERE content_type = '%s' AND content_id = %d AND (uid = %d OR uid = 0) AND sid = %d", $content_type, $content_id, $uid, $sid);
+      while ($flag_content = db_fetch_object($result)) {
+        $flagged_content[$uid][$sid][$content_type][$content_id][$flag_names[$flag_content->fid]] = $flag_content;
+      }
+    }
+    return $flagged_content[$uid][$sid][$content_type][$content_id];
+  }
+
+  else {
+    if (!isset($flagged_content[$uid][$sid][$content_type]['all'])) {
+      $flag_names = _flag_get_flag_names();
+      $flagged_content[$uid][$sid][$content_type]['all'] = array();
+      $result = db_query("SELECT * FROM {flag_content} WHERE content_type = '%s' AND (uid = %d OR uid = 0) AND sid = %d", $content_type, $uid, $sid);
+      while ($flag_content = db_fetch_object($result)) {
+        $flagged_content[$uid][$sid][$content_type]['all'][$flag_names[$flag_content->fid]][$flag_content->content_id] = $flag_content;
+      }
+    }
+    return $flagged_content[$uid][$sid][$content_type]['all'];
+  }
+
+}
+
+/**
+ * Return a list of users who have flagged a piece of content.
+ *
+ * @param $content_type
+ *   The type of content that will be retrieved. Usually 'node'.
+ * @param $content_id
+ *   The content ID to check for flagging.
+ * @param $flag_name
+ *   Optional. The name of a flag if wanting a list specific to a single flag.
+ * @param $reset
+ *   Reset the internal cache of flagged content.
+ * @return
+ *   If no flag name is given, an array of flagged content, keyed by the user
+ *   ID that flagged the content. Each flagged content array is structured as
+ *   an array of flag information for each flag, keyed by the flag name. If
+ *   a flag name is specified, only the information for that flag is returned.
+ */
+function flag_get_content_flags($content_type, $content_id, $flag_name = NULL, $reset = FALSE) {
+  static $content_flags;
+
+  if (!isset($content_flags[$content_type][$content_id]) || $reset) {
+    $flag_names = _flag_get_flag_names();
+    $result = db_query("SELECT * FROM {flag_content} WHERE content_type = '%s' AND content_id = %d ORDER BY timestamp DESC", $content_type, $content_id);
+    while ($flag_content = db_fetch_object($result)) {
+      // Build a list of flaggings for all flags by user.
+      $content_flags[$content_type][$content_id]['users'][$flag_content->uid][$flag_names[$flag_content->fid]] = $flag_content;
+      // Build a list of flaggings for each individual flag.
+      $content_flags[$content_type][$content_id]['flags'][$flag_names[$flag_content->fid]][$flag_content->uid] = $flag_content;
+    }
+  }
+
+  return isset($flag_name) ? $content_flags[$content_type][$content_id]['flags'][$flag_name] : $content_flags[$content_type][$content_id]['users'];
+}
+
+/**
+ * A utility function for outputting a flag link.
+ *
+ * You should call this function from your template when you want to put the
+ * link on the page yourself. For example, you could call this function from
+ * your 'node.tpl.php':
+ *
+ *   <?php print flag_create_link('bookmarks', $node->nid); ?>
+ *
+ * @param $flag_name
+ *   The "machine readable" name of the flag; e.g. 'bookmarks'.
+ * @param $content_id
+ *   The content ID to check for flagging. This is usually a node ID.
+ */
+function flag_create_link($flag_name, $content_id) {
+  $flag = flag_get_flag($flag_name);
+  if (!$flag) {
+    // Flag does not exist.
+    return;
+  }
+  if (!$flag->access($content_id) && (!$flag->is_flagged($content_id) || !$flag->access($content_id, 'flag'))) {
+    // User has no permission to use this flag.
+    return;
+  }
+  return $flag->theme($flag->is_flagged($content_id) ? 'unflag' : 'flag', $content_id);
+}
+
+/**
+ * Return an array of link types provided by modules.
+ *
+ * @param $reset
+ *  (Optional) Whether to reset the static cache.
+ *
+ * @return
+ *  An array of link types as defined by hook_flag_link_types(). These are keyed
+ *  by the type name, and each value is an array of properties. In addition to
+ *  those defined in hook_flag_link_types(), the following properties are set:
+ *  - 'module': The providing module.
+ *  - 'name': The machine name of the type.
+ *
+ * @see hook_flag_link_types()
+ * @see hook_flag_link_types_alter()
+ */
+function flag_get_link_types($reset = FALSE) {
+  static $link_types;
+
+  if (!isset($link_types) || $reset) {
+    $link_types = array();
+    foreach (module_implements('flag_link_types') as $module) {
+      $module_types = module_invoke($module, 'flag_link_types');
+      foreach ($module_types as $type_name => $info) {
+        $link_types[$type_name] = $info + array(
+          'module' => $module,
+          'name' => $type_name,
+          'title' => '',
+          'description' => '',
+          'options' => array(),
+          'uses standard js' => TRUE,
+          'uses standard css' => TRUE,
+        );
+      }
+    }
+    drupal_alter('flag_link_types', $link_types);
+  }
+
+  return $link_types;
+}
+
+/**
+ * Get a private token used to protect links from spoofing - CSRF.
+ */
+function flag_get_token($content_id) {
+  // Anonymous users get a less secure token, since it must be the same for all
+  // anonymous users on the entire site to work with page caching.
+  return ($GLOBALS['user']->uid) ? drupal_get_token($content_id) : md5(drupal_get_private_key() . $content_id);
+}
+
+/**
+ * Check to see if a token value matches the specified node.
+ */
+function flag_check_token($token, $content_id) {
+  return flag_get_token($content_id) == $token;
+}
+
+/**
+ * Set the Session ID for a user. Utilizes the Session API module.
+ */
+function flag_set_sid($uid = NULL, $create = TRUE) {
+  static $sids = array();
+
+  if (!isset($uid)) {
+    $uid = $GLOBALS['user']->uid;
+  }
+
+  if (!isset($sids[$uid])) {
+    if (module_exists('session_api') && session_api_available() && $uid == 0) {
+      $sids[$uid] = session_api_get_sid($create);
+    }
+    else {
+      $sids[$uid] = 0;
+    }
+  }
+
+  return $sids[$uid];
+}
+
+/**
+ * Get the Session ID for a user. Utilizes the Session API module.
+ *
+ * @param $uid
+ *   The user ID. If the UID is 0 (anonymous users), then a SID will be
+ *   returned. SID will always be 0 for any authenticated user.
+ * @param $create
+ *   If the user doesn't yet have a session, should one be created? Defaults
+ *   to FALSE.
+ */
+function flag_get_sid($uid = NULL, $create = FALSE) {
+  return flag_set_sid($uid, $create);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.info b/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.info
new file mode 100644
index 0000000..14208cf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.info
@@ -0,0 +1,10 @@
+name = Flag actions
+description = Execute actions on Flag events.
+core = 6.x
+dependencies[] = flag
+package = Flags
+; Information added by Drupal.org packaging script on 2015-07-12
+version = "6.x-2.2-boinc-1-dev"
+core = "6.x"
+project = "flag"
+datestamp = "1494857819"
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.install b/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.install
new file mode 100644
index 0000000..4044ba5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.install
@@ -0,0 +1,107 @@
+<?php
+
+/**
+ * @file
+ * Flag actions install file.
+ */
+
+/**
+ * Implementation of hook_install().
+ */
+function flag_actions_install() {
+  drupal_install_schema('flag_actions');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function flag_actions_uninstall() {
+  drupal_uninstall_schema('flag_actions');
+}
+
+/**
+ * Implementation of hook_schema().
+ */
+function flag_actions_schema() {
+  $schema = array();
+
+  $schema['flag_actions'] = array(
+    'fields' => array(
+      'aid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'disp-width' => '5',
+      ),
+      'fid' => array(
+        'type' => 'int',
+        'size' => 'small',
+        'not null' => FALSE,
+        'disp-width' => '5',
+      ),
+      'event' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'not null' => FALSE,
+      ),
+      'threshold' => array(
+        'type' => 'int',
+        'size' => 'small',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '5',
+      ),
+      'repeat_threshold' => array(
+        'type' => 'int',
+        'size' => 'small',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '5',
+      ),
+      'callback' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'parameters' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'not null' => TRUE,
+      ),
+    ),
+    'primary key' => array('aid'),
+  );
+
+  return $schema;
+}
+
+/**
+ * Add a "repeat_threshold" value to all existing Flag actions.
+ */
+function flag_actions_update_6200() {
+  $ret = array();
+
+  // Add the new repeat_threshold column.
+  if (!db_column_exists('flag_actions', 'repeat_threshold')) {
+    $column = array(
+      'type' => 'int',
+      'size' => 'small',
+      'not null' => TRUE,
+      'default' => 0,
+      'disp-width' => '5',
+    );
+    db_add_field($ret, 'flag_actions', 'repeat_threshold', $column);
+  }
+
+  // Update the normal threshold column to default to 0.
+  $column = array(
+    'type' => 'int',
+    'size' => 'small',
+    'not null' => TRUE,
+    'default' => 0,
+    'disp-width' => '5',
+  );
+  db_change_field($ret, 'flag_actions', 'threshold', 'threshold', $column);
+
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.module b/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.module
new file mode 100644
index 0000000..72d2db2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/flag_actions.module
@@ -0,0 +1,672 @@
+<?php
+
+/**
+ * @file
+ * Actions support for the Flag module.
+ */
+
+/**
+ * Implements hook_flag(). Trigger actions if any are available.
+ */
+function flag_actions_flag($event, $flag, $content_id, $account) {
+  flag_actions_do($event, $flag, $content_id, $account);
+}
+
+/**
+ * Implements hook_menu().
+ */
+function flag_actions_menu() {
+  $items = array();
+
+  $items['admin/build/flags/actions'] = array(
+    'title' => 'Actions',
+    'page callback' => 'flag_actions_page',
+    'access callback' => 'user_access',
+    'access arguments' => array('administer actions'),
+    'type' => MENU_LOCAL_TASK,
+  );
+  $items['admin/build/flags/actions/add'] = array(
+    'title' => 'Add action',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_actions_form', NULL, 5),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer actions'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/build/flags/actions/delete'] = array(
+    'title' => 'Delete action',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_actions_delete_form', 5),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer actions'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/build/flags/actions/configure'] = array(
+    'title' => 'Edit action',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('flag_actions_form', 5),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer actions'),
+    'type' => MENU_CALLBACK,
+  );
+
+  return $items;
+}
+
+/**
+ * Implements hook_theme().
+ */
+function flag_actions_theme() {
+  return array(
+    'flag_actions_page' => array(
+      'arguments' => array('actions' => NULL, 'form' => NULL),
+    ),
+    'flag_actions_add_form' => array(
+      'arguments' => array('form' => NULL),
+    ),
+    'flag_actions_flag_form' => array(
+      'arguments' => array('form' => NULL),
+    ),
+  );
+}
+
+function flag_actions_get_action($aid) {
+  $actions = flag_actions_get_actions();
+  return $actions[$aid];
+}
+
+function flag_actions_get_actions($flag_name = NULL, $reset = FALSE) {
+  static $flag_actions;
+  module_load_include('inc', 'flag', 'includes/flag.actions');
+
+  // Get a list of all possible actions defined by modules.
+  $actions = module_invoke_all('action_info');
+
+  // Retrieve the list of user-defined flag actions.
+  if (!isset($flag_actions) || $reset) {
+    $flag_actions = array();
+    $result = db_query("SELECT a.*, f.name as flag FROM {flag_actions} a INNER JOIN {flags} f ON a.fid = f.fid");
+    while ($action = db_fetch_object($result)) {
+      if (!isset($actions[$action->callback])) {
+        $actions[$action->callback] = array(
+          'description' => t('Missing action "@action-callback". Module providing it was either uninstalled or disabled.', array('@action-callback' => $action->callback)),
+          'configurable' => FALSE,
+          'type' => 'node',
+          'missing' => TRUE,
+        );
+      }
+      $action->parameters = unserialize($action->parameters);
+      $action->description = $actions[$action->callback]['description'];
+      $action->configurable = $actions[$action->callback]['configurable'];
+      $action->behavior = isset($actions[$action->callback]['behavior']) ? $actions[$action->callback]['behavior'] : array();
+      $action->type = $actions[$action->callback]['type'];
+      $action->missing = !empty($actions[$action->callback]['missing']);
+
+      $flag_actions[$action->aid] = $action;
+    }
+  }
+
+  // Filter actions to a specified flag.
+  if (isset($flag_name)) {
+    $specific_flag_actions = array();
+    foreach ($flag_actions as $aid => $action) {
+      if ($action->flag == $flag_name) {
+        $specific_flag_actions[$aid] = $action;
+      }
+    }
+    return $specific_flag_actions;
+  }
+
+  return $flag_actions;
+}
+
+/**
+ * Insert a new flag action.
+ *
+ * @param $fid
+ *   The flag object ID.
+ * @param $event
+ *   The flag event, such as "flag" or "unflag".
+ * @param $threshold
+ *   The flagging threshold at which this action will be executed.
+ * @param $repeat_threshold
+ *   The number of additional flaggings after which the action will be repeated.
+ * @param $callback
+ *   The action callback to be executed.
+ * @param $parameters
+ *   The action parameters.
+ */
+function flag_actions_insert_action($fid, $event, $threshold, $repeat_threshold, $callback, $parameters) {
+  db_query("INSERT INTO {flag_actions} (fid, event, threshold, repeat_threshold, callback, parameters) VALUES (%d, '%s', %d, %d, '%s', '%s')", $fid, $event, $threshold, $repeat_threshold, $callback, serialize($parameters));
+  return db_last_insert_id('flag_actions', 'aid');
+}
+
+/**
+ * Update an existing flag action.
+ *
+ * @param $aid
+ *   The flag action ID to update.
+ * @param $event
+ *   The flag event, such as "flag" or "unflag".
+ * @param $threshold
+ *   The flagging threshold at which this action will be executed.
+ * @param $repeat_threshold
+ *   The number of additional flaggings after which the action will be repeated.
+ * @param $parameters
+ *   The action parameters.
+ */
+function flag_actions_update_action($aid, $event, $threshold, $repeat_threshold, $parameters) {
+  return db_query("UPDATE {flag_actions} SET event = '%s', threshold = %d, repeat_threshold = %d, parameters = '%s' WHERE aid = %d", $event, $threshold, $repeat_threshold, serialize($parameters), $aid);
+}
+
+/**
+ * Delete a flag action.
+ *
+ * @param $aid
+ *   The flag action ID to delete.
+ */
+function flag_actions_delete_action($aid) {
+  return db_query('DELETE FROM {flag_actions} WHERE aid = %d', $aid);
+}
+
+/**
+ * Perform flag actions.
+ */
+function flag_actions_do($event, $flag, $content_id, $account) {
+  $actions = flag_actions_get_actions($flag->name);
+  if (!$actions) {
+    return;
+  }
+
+  $flag_action = $flag->get_flag_action($content_id);
+  $flag_action->action = $event;
+  $flag_action->count = $count = $flag->get_count($content_id);
+  $relevant_objects = $flag->get_relevant_action_objects($content_id);
+  $object_changed = FALSE;
+  foreach ($actions as $aid => $action) {
+    if ($action->event == 'flag') {
+      $at_threshold = ($count == $action->threshold);
+      $repeat = $action->repeat_threshold ? (($count > $action->threshold) && (($count - $action->threshold) % $action->repeat_threshold == 0)) : FALSE;
+    }
+    elseif ($action->event == 'unflag') {
+      $at_threshold = ($count == $action->threshold - 1);
+      $repeat = $action->repeat_threshold ? (($count < $action->threshold - 1) && (($count - $action->threshold - 1) % $action->repeat_threshold == 0)) : FALSE;
+    }
+    if (($at_threshold || $repeat) && $action->event == $event && !$action->missing) {
+      $context = $action->parameters;
+      $context['callback'] = $action->callback;
+      // We're setting 'hook' to something, to prevent PHP warnings by actions
+      // who read it. Maybe we should set it to nodeapi/comment/user, depending
+      // on the flag, because these three are among the only hooks some actions
+      // in system.module "know" to work with.
+      $context['hook'] = 'flag';
+      $context['type'] = $action->type;
+      $context['account'] = $account;
+      $context['flag'] = $flag;
+      $context['flag-action'] = $flag_action;
+      // We add to the $context all the objects we know about:
+      $context = array_merge($relevant_objects, $context);
+      $callback = $action->callback;
+
+      if (isset($relevant_objects[$action->type])) {
+        $callback($relevant_objects[$action->type], $context);
+      }
+      else {
+        // What object shall we send as last resort? Let's send a node, or
+        // the flag's object.
+        if (isset($relevant_objects['node'])) {
+          $callback($relevant_objects['node'], $context);
+        }
+        else {
+          $callback($relevant_objects[$flag->content_type], $context);
+        }
+      }
+
+      if (is_array($action->behavior) && in_array('changes_' . $action->type . '_property', $action->behavior)) {
+        $object_changed = TRUE;
+      }
+    }
+  }
+
+  // Actions by default do not save elements unless the save action is
+  // explicitly added. We run it automatically upon flagging.
+  if ($object_changed) {
+    $save_action = $action->type . '_save_action';
+    if (function_exists($save_action)) {
+      $save_action($relevant_objects[$action->type]);
+    }
+  }
+}
+
+/**
+ * Menu callback for admin/build/flags/actions.
+ */
+function flag_actions_page() {
+  $actions = flag_actions_get_actions();
+  $add_action_form = drupal_get_form('flag_actions_add_form');
+
+  return theme('flag_actions_page', $actions, $add_action_form);
+}
+
+/**
+ * Theme the list of actions currently in place for flags.
+ */
+function theme_flag_actions_page($actions, $add_action_form) {
+  $rows = array();
+  foreach ($actions as $action) {
+    $flag = flag_get_flag($action->flag);
+
+    // Build a sample string representing repeating actions.
+    if ($action->repeat_threshold) {
+      $repeat_count = 3;
+      $repeat_subtract = ($action->event == 'flag') ? 1 : -1;
+      $repeat_samples = array();
+      for ($n = 1; $n < $repeat_count + 2; $n++) {
+        $sample = $action->threshold + (($n * $action->repeat_threshold) * $repeat_subtract);
+        if ($sample > 0) {
+          $repeat_samples[] = $sample;
+        }
+      }
+      if (count($repeat_samples) > $repeat_count) {
+        $repeat_samples[$repeat_count] = '…';
+      }
+      $repeat_string = implode(', ', $repeat_samples);
+    }
+    else {
+      $repeat_string = '-';
+    }
+
+    $row = array();
+    $row[] = $flag->get_title();
+    $row[] = ($action->event == 'flag' ? '≥ ' : '< ') . $action->threshold;
+    $row[] = $repeat_string;
+    $row[] = empty($action->missing) ? $action->description : '<div class="error">' . $action->description . '</div>';
+    $row[] = l(t('edit'), 'admin/build/flags/actions/configure/'. $action->aid);
+    $row[] = l(t('delete'), 'admin/build/flags/actions/delete/'. $action->aid);
+    $rows[] = $row;
+  }
+
+  if (empty($rows)) {
+    $rows[] = array(array('data' => t('Currently no flag actions. Use the <em>Add new flag action</em> form to add an action.'), 'colspan' => 6));
+  }
+
+  $header = array(
+    t('Flag'),
+    t('Threshold'),
+    t('Repeats'),
+    t('Action'),
+    array('data' => t('Operations'), 'colspan' => 2),
+  );
+
+  $output = '';
+  $output .= theme('table', $header, $rows);
+  $output .= $add_action_form;
+  return $output;
+}
+
+/**
+ * Modified version of the Add action form that redirects back to the flag list.
+ */
+function flag_actions_add_form($form_state) {
+  $flags = flag_get_flags();
+  $options = array();
+  foreach ($flags as $flag) {
+    $options[$flag->name] = $flag->get_title();
+  }
+
+  if (empty($options)) {
+    $options[] = t('No flag available');
+  }
+
+  $form = array();
+
+  $form['flag'] = array(
+    '#type' => 'select',
+    '#options' => empty($options) ? array(t('No flag available')) : $options,
+    '#disabled' => empty($options),
+    '#title' => t('Select a flag'),
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Add action'),
+  );
+
+  return $form;
+}
+
+function flag_actions_add_form_submit($form, &$form_state) {
+  if ($form_state['values']['flag']) {
+    $form_state['redirect'] = array('admin/build/flags/actions/add/'. $form_state['values']['flag']);
+  }
+}
+
+function theme_flag_actions_add_form($form) {
+  $fieldset = array(
+    '#type' => 'fieldset',
+    '#title' => t('Add a new flag action'),
+    '#children' => '<div class="container-inline">'. drupal_render($form['flag']) . drupal_render($form['submit']) .'</div>',
+  );
+
+  return drupal_render($fieldset) . drupal_render($form);
+}
+
+/**
+ * Generic configuration form for configuration of flag actions.
+ *
+ * @param $form_state
+ *   The form state.
+ * @param $aid
+ *   If editing an action, an action ID must be passed in.
+ * @param $flag_name
+ *   If adding a new action to a flag, a flag name must be specified.
+ *
+ */
+function flag_actions_form($form_state, $aid = NULL, $flag_name = NULL) {
+  // This is a multistep form. Get the callback value if set and continue.
+  if (isset($form_state['storage']['callback'])) {
+    $callback = $form_state['storage']['callback'];
+    unset($form_state['storage']['callback']);
+  }
+
+  if (isset($aid)) {
+    $action = flag_actions_get_action($aid);
+    $callback = $action->callback;
+    $flag = flag_get_flag($action->flag);
+    drupal_set_title(t('Edit the "@action" action for the @title flag', array('@action' => $action->description, '@title' => $flag->get_title())));
+  }
+  elseif (isset($flag_name)) {
+    $flag = flag_get_flag($flag_name);
+  }
+
+  if (empty($flag)) {
+    drupal_not_found();
+  }
+
+  $form = array();
+
+  $form['new'] = array(
+    '#type' => 'value',
+    '#value' => isset($callback) ? FALSE: TRUE,
+  );
+
+  if (!isset($callback)) {
+    drupal_set_title(t('Add an action to the @title flag', array('@title' => $flag->get_title())));
+
+    $actions = $flag->get_valid_actions();
+    $options = array();
+    foreach($actions as $key => $action) {
+      $options[$key] = $action['description'];
+    }
+
+    $form['callback'] = array(
+      '#title' => t('Select an action'),
+      '#type' => 'select',
+      '#options' => $options,
+    );
+
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Continue'),
+    );
+
+    return $form;
+  }
+  elseif (!isset($action)) {
+    $actions = $flag->get_valid_actions();
+    $action = (object)$actions[$callback];
+    $action->parameters = array();
+    $action->event = 'flag';
+    $action->threshold = 10;
+    $action->repeat_threshold = 0;
+    drupal_set_title(t('Add "@action" action to the @title flag', array('@action' => $action->description, '@title' => $flag->get_title())));
+  }
+
+  $form['flag'] = array(
+    '#tree' => TRUE,
+    '#weight' => -9,
+    '#theme' => 'flag_actions_flag_form',
+    '#action' => $action,
+    '#flag' => $flag,
+  );
+
+  $form['flag']['flag'] = array(
+    '#type' => 'value',
+    '#value' => $flag,
+  );
+
+  $form['flag']['callback'] = array(
+    '#type' => 'value',
+    '#value' => $callback,
+  );
+
+  $form['flag']['aid'] = array(
+    '#type' => 'value',
+    '#value' => $aid,
+  );
+
+  $form['flag']['event'] = array(
+    '#type' => 'select',
+    '#options' => array(
+      'flag' => t('reaches'),
+      'unflag' => t('falls below'),
+    ),
+    '#default_value' => $action->event,
+  );
+
+  $form['flag']['threshold'] = array(
+    '#type' => 'textfield',
+    '#size' => 6,
+    '#maxlength' => 6,
+    '#default_value' => $action->threshold,
+    '#required' => TRUE,
+  );
+
+  $form['flag']['repeat_threshold'] = array(
+    '#type' => 'textfield',
+    '#size' => 6,
+    '#maxlength' => 6,
+    '#default_value' => $action->repeat_threshold,
+  );
+
+  if ($flag->global) {
+    $form['flag']['threshold']['#disabled'] = 1;
+    $form['flag']['threshold']['#value'] = 1;
+    $form['flag']['repeat_threshold']['#access'] = FALSE;
+    $form['flag']['repeat_threshold']['#value'] = 0;
+  }
+
+  // Merge in the standard flag action form.
+  $action_form = $callback .'_form';
+  $edit = array();
+  if (function_exists($action_form)) {
+    $edit += $action->parameters;
+    $edit['actions_description'] = $action->description;
+    $edit['actions_type'] = $action->type;
+    $edit['actions_flag'] = $flag->name;
+    $additions = flag_actions_form_additions($action_form, $edit);
+    $form = array_merge($form, $additions);
+  }
+
+  // Add a few customizations to existing flag actions.
+  $flag_actions_form = 'flag_actions_'. $callback .'_form';
+  if (function_exists($flag_actions_form)) {
+    $flag_actions_form($form, $flag, $edit);
+  }
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Submit'),
+  );
+
+  return $form;
+}
+
+/**
+ * Execute an action form callback to retrieve form additions.
+ *
+ * This function prevents the form callback from modifying local variables.
+ */
+function flag_actions_form_additions($callback, $edit) {
+  return $callback($edit);
+}
+
+/**
+ * Generic submit handler for validating flag actions.
+ */
+function flag_actions_form_validate($form, &$form_state) {
+  // Special validation handlers may be needed to save this form properly.
+  // Try to load the action's validation routine if needed.
+  if (isset($form_state['values']['flag']['callback'])) {
+    $callback = $form_state['values']['flag']['callback'];
+    $validate_function = $callback . '_validate';
+    if (function_exists($validate_function)) {
+      $validate_function($form, $form_state);
+    }
+  }
+}
+
+/**
+ * Generic submit handler for saving flag actions.
+ */
+function flag_actions_form_submit($form, &$form_state) {
+  // If simply gathering the callback, save it to form state storage and
+  // rebuild the form to gather the complete information.
+  if ($form_state['values']['new']) {
+    $form_state['storage']['callback'] = $form_state['values']['callback'];
+    $form_state['rebuild'] = TRUE;
+    return;
+  }
+
+  $aid              = $form_state['values']['flag']['aid'];
+  $flag             = $form_state['values']['flag']['flag'];
+  $event            = $form_state['values']['flag']['event'];
+  $threshold        = $form_state['values']['flag']['threshold'];
+  $repeat_threshold = $form_state['values']['flag']['repeat_threshold'];
+  $callback         = $form_state['values']['flag']['callback'];
+
+  // Specialized forms may need to execute their own submit handlers on save.
+  $submit_function = $callback . '_submit';
+  $parameters = function_exists($submit_function) ? $submit_function($form, $form_state) : array();
+
+  if (empty($aid)) {
+    $aid = flag_actions_insert_action($flag->fid, $event, $threshold, $repeat_threshold, $callback, $parameters);
+    $form_state['values']['flag']['aid'] = $aid;
+    $form_state['values']['flag']['is_new'] = TRUE;
+  }
+  else {
+    flag_actions_update_action($aid, $event, $threshold, $repeat_threshold, $parameters);
+  }
+
+  $action = flag_actions_get_action($aid);
+
+  drupal_set_message(t('The "@action" action for the @title flag has been saved.', array('@action' => $action->description, '@title' => $flag->get_title())));
+  $form_state['redirect'] = 'admin/build/flags/actions';
+}
+
+function theme_flag_actions_flag_form($form) {
+  $event = drupal_render($form['event']);
+  $threshold = drupal_render($form['threshold']);
+  $repeat_threshold = drupal_render($form['repeat_threshold']);
+  $action = $form['#action']->description;
+
+  $output  = '';
+  $output .= '<div class="container-inline">';
+  $output .= t('Perform action when content !event !threshold flags', array('!event' => $event, '!threshold' => $threshold));
+  if ($form['#flag']->global) {
+    $output .= ' ' . t('(global flags always have a threshold of 1)');
+  }
+  $output .= '</div>';
+  $output .= '<div class="container-inline">';
+  if (!$form['#flag']->global) {
+    $output .= t('Repeat this action every !repeat_threshold additional flags after the threshold is reached', array('!repeat_threshold' => $repeat_threshold));
+  }
+  $output .= '</div>';
+
+  $element = array(
+    '#title' => t('Flagging threshold'),
+    '#required' => TRUE,
+  );
+
+  $output = theme('form_element', $element, $output);
+
+  return $output . drupal_render($form);
+}
+
+function flag_actions_delete_form($form_state, $aid) {
+  $action = flag_actions_get_action($aid);
+  $flag = flag_get_flag($action->flag);
+  $form = array();
+
+  $form['action'] = array(
+    '#type' => 'value',
+    '#value' => $action,
+  );
+
+  $form['flag'] = array(
+    '#type' => 'value',
+    '#value' => $flag,
+  );
+
+  $question = t('Delete the "@action" action for the @title flag?', array('@action' => $action->description, '@title' => $flag->get_title()));
+  $path = 'admin/build/flags/actions';
+
+  return confirm_form($form, $question, $path, NULL, t('Delete'));
+}
+
+function flag_actions_delete_form_submit(&$form, &$form_state) {
+  flag_actions_delete_action($form_state['values']['action']->aid);
+  drupal_set_message(t('The "@action" action for the @title flag has been deleted.', array('@action' => $form_state['values']['action']->description, '@title' => $form_state['values']['flag']->get_title())));
+  $form_state['redirect'] = 'admin/build/flags/actions';
+}
+
+/**
+ * Make modifications to the "Send e-mail" action form.
+ */
+function flag_actions_system_send_email_action_form(&$form, &$flag, $context) {
+  $form['flag_tip'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Tip'),
+    '#description' => module_exists('token_actions')
+      ? t('The "Send tokenized e-mail" action is preferable to the "Send e-mail" action you are now using. It provides you with many more tokens to use. This is especially useful when flagging users and comments.')
+      : t('You may wish to enable the <em>Token actions</em> module, which is shipped with the <a href="@token-url">Token</a> module. That module provides a "Send tokenized e-mail" action, which is similar to the "Send e-mail" action you are now using, except it provides you with many more tokens to use. This is especially useful when flagging users and comments.', array('@token-url' => 'http://drupal.org/project/token')),
+    '#weight' => -1,
+  );
+}
+
+/**
+ * Make modifications to the "Send tokenized e-mail" action form.
+ */
+function flag_actions_token_actions_send_email_action_form(&$form, &$flag, $context) {
+  if (!isset($context['recipient'])) {
+    $form['recipient']['#default_value'] = '[site-mail]';
+  }
+
+  if (!isset($context['subject'])) {
+    $form['subject']['#default_value'] = t('Content Flagged @flag_title', array('@flag_title' => $flag->get_title()));
+  }
+
+  if (!isset($context['message'])) {
+    $form['message']['#default_value'] = t("The @flag_content_type [flag-content-title] has been flagged [flag-count] times with the @flag_title flag.\n\nView this @flag_content_type at [flag-content-url].", array('@flag_content_type' => $flag->content_type, '@flag_title' => $flag->get_title()));
+  }
+
+  $form['help'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Tokens'),
+    '#description' => t('The following tokens can be used in the recipient, subject, or message.'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  $form['help']['basic'] = array(
+    '#value' => theme('flag_tokens_browser', array('flag', 'flag-action')),
+  );
+
+  $form['help']['tokens'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('More tokens'),
+    '#description' => t("Depending on the type of the content being flagged, the following tokens can be used in the recipients, subject, or message. For example, if the content being flagged is a node, you can use any of the node tokens --but you can't use the comment tokens: they won't be recognized. Similarly, if the content being flagged is a user, you can use only the user tokens."),
+    '#value' => theme('flag_tokens_browser', $flag->get_labels_token_types()),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.actions.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.actions.inc
new file mode 100644
index 0000000..9b1c82d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.actions.inc
@@ -0,0 +1,245 @@
+<?php
+
+/**
+ * @file
+ * Hooks for flag actions.
+ */
+
+/**
+ * Implementation of hook_hook_info().
+ */
+function flag_hook_info() {
+  $hooks = array(
+    'flag' => array(
+      'flag' => array(
+        'flag' => array(
+          'runs when' => t('Content has been flagged with any flag'),
+        ),
+        'unflag' => array(
+          'runs when' => t('Content has been unflagged with any flag')
+        ),
+      ),
+    ),
+  );
+
+  foreach (flag_get_flags() as $flag) {
+    $hooks['flag']['flag']['flag_'. $flag->name]['runs when'] = t('A %type has been flagged with %name', array('%type' => $flag->content_type, '%name' => $flag->name));
+    $hooks['flag']['flag']['unflag_'. $flag->name]['runs when'] = t('A %type has been unflagged with %name', array('%type' => $flag->content_type, '%name' => $flag->name));
+  }
+
+  return $hooks;
+}
+
+/**
+ * Implementation of hook_action_info().
+ */
+function flag_action_info() {
+  return array(
+    'flag_node_action' => array(
+      'type' => 'node',
+      'description' => t('Flag (or unflag) a node'),
+      'configurable' => TRUE,
+      'hooks' => array(
+        'node' => array('view', 'presave', 'insert', 'update', 'delete', 'view'),
+        'comment' => array('insert', 'update', 'delete', 'view'),
+      ),
+    ),
+    'flag_comment_action' => array(
+      'type' => 'comment',
+      'description' => t('Flag (or unflag) a comment'),
+      'configurable' => TRUE,
+      'hooks' => array(
+        'comment' => array('insert', 'update', 'delete', 'view'),
+      ),
+    ),
+    'flag_user_action' => array(
+      'type' => 'user',
+      'description' => t('Flag (or unflag) a user'),
+      'configurable' => TRUE,
+      'hooks' => array(
+        'user' => array('insert', 'update', 'delete', 'login', 'logout', 'view'),
+      ),
+    ),
+  );
+}
+
+/**
+ * Implements hook_action_info_alter().
+ *
+ * Enable Flag actions on Node, Comment, and User hooks without
+ * the trigger_unlock.module.
+ */
+function flag_action_info_alter(&$actions) {
+  $node_flags = flag_get_flags('node');
+  $comment_flags = flag_get_flags('comment');
+  $user_flags = flag_get_flags('user');
+
+  foreach ($actions as $name => $action) {
+    if (strpos($name, 'node') === 0) {
+      $actions[$name]['hooks']['flag'] = array('flag', 'unflag');
+      foreach ($node_flags as $flag) {
+        $actions[$name]['hooks']['flag'][] = 'flag_' . $flag->name;
+        $actions[$name]['hooks']['flag'][] = 'unflag_' . $flag->name;
+      }
+    }
+    if (strpos($name, 'comment') === 0) {
+      $actions[$name]['hooks']['flag'] = array('flag', 'unflag');
+      foreach ($comment_flags as $flag) {
+        $actions[$name]['hooks']['flag'][] = 'flag_' . $flag->name;
+        $actions[$name]['hooks']['flag'][] = 'unflag_' . $flag->name;
+      }
+    }
+    if (strpos($name, 'user') === 0) {
+      $actions[$name]['hooks']['flag'] = array('flag', 'unflag');
+      foreach ($user_flags as $flag) {
+        $actions[$name]['hooks']['flag'][] = 'flag_' . $flag->name;
+        $actions[$name]['hooks']['flag'][] = 'unflag_' . $flag->name;
+      }
+    }
+  }
+}
+
+/**
+ * Implements Drupal action. Flags a node.
+ *
+ * Note the first parameter is "object" because it may be a comment or a node.
+ */
+function flag_node_action(&$object, $context = array()) {
+  if ($flag = flag_get_flag($context['flag_action']['flag'])) {
+    $account = isset($context['account']) ? $context['account'] : $GLOBALS['user'];
+    $flag->flag($context['flag_action']['op'], $object->nid, $account, TRUE);
+  }
+}
+
+/**
+ * Form for configuring the Flag node action.
+ */
+function flag_node_action_form($context = array()) {
+  return flag_action_form($context, 'node');
+}
+
+/**
+ * Submit function for the Flag node action form.
+ */
+function flag_node_action_submit($form, $form_state) {
+  return flag_action_submit($form, $form_state);
+}
+
+/**
+ * Implements Drupal action. Flags a comment.
+ */
+function flag_comment_action(&$comment, $context = array()) {
+  if ($flag = flag_get_flag($context['flag_action']['flag'])) {
+    $account = isset($context['account']) ? $context['account'] : $GLOBALS['user'];
+    $flag->flag($context['flag_action']['op'], $comment->cid, $account, TRUE);
+  }
+}
+
+/**
+ * Form for configuring the Flag comment action.
+ */
+function flag_comment_action_form($context) {
+  return flag_action_form($context, 'comment');
+}
+
+/**
+ * Submit function for the Flag comment action form.
+ */
+function flag_comment_action_submit($form, $form_state) {
+  return flag_action_submit($form, $form_state);
+}
+
+/**
+ * Implements Drupal action. Flags a user.
+ */
+function flag_user_action(&$user, $context = array()) {
+  if ($flag = flag_get_flag($context['flag_action']['flag'])) {
+    $account = isset($context['account']) ? $context['account'] : $GLOBALS['user'];
+    $flag->flag($context['flag_action']['op'], $user->uid, $account, TRUE);
+  }
+}
+
+/**
+ * Form for configuring the Flag user action.
+ */
+function flag_user_action_form($context) {
+  return flag_action_form($context, 'user');
+}
+
+/**
+ * Submit function for the Flag user action form.
+ */
+function flag_user_action_submit($form, $form_state) {
+  return flag_action_submit($form, $form_state);
+}
+
+/**
+ * Generic form for configuring Flag actions.
+ *
+ * @param $context
+ *   The current action context.
+ * @param $content_type
+ *   The content type applicable to this action, such as "node" or "comment".
+ */
+function flag_action_form($context, $content_type) {
+  $form = array();
+
+  $flags = flag_get_flags($content_type);
+  // If this is a flag_action action, do not allow the triggering flag.
+  if (isset($context['actions_flag'])) {
+    unset($flags[$context['actions_flag']]);
+  }
+  $options = array();
+  foreach ($flags as $key => $flag) {
+    $options[$key] = $flag->title;
+  }
+
+  $form['flag_action']['#tree'] = TRUE;
+  $form['flag_action']['warning'] = array(
+    '#value' => '<div class="messages status">' . t("Note when setting a flag through actions, the selected flag will be flagged regardless of the user's permissions.") . '</div>',
+  );
+  $form['flag_action']['flag'] = array(
+    '#title' => t('Flag to affect'),
+    '#type' => 'radios',
+    '#options' => $options,
+    '#required' => TRUE,
+    '#description' => t('When this action is fired, which flag should be flagged (or unflagged)?'),
+    '#default_value' => isset($context['flag_action']['flag']) ? $context['flag_action']['flag'] : reset($options),
+  );
+
+  $form['flag_action']['op'] = array(
+    '#title' => t('Flag operation'),
+    '#type' => 'radios',
+    '#options' => array('flag' => t('Flag'), 'unflag' => t('Unflag')),
+    '#description' => t('When this action is fired, which operation should be performed on the flag?'),
+    '#default_value' => isset($context['flag_action']['op']) ? $context['flag_action']['op'] : 'flag',
+  );
+
+  if (empty($options)) {
+    $error = t('There are no available %type flags. Before you can create an action of this type, you need to <a href="!url">create a %type flag</a>.', array('%type' => $content_type, '!url' => url('admin/build/flags/add')));
+    $form['flag_action']['flag']['#type'] = 'item';
+    $form['flag_action']['flag']['#children'] = $error;
+    $form['flag_action']['flag']['#element_validate'][] = 'flag_action_validate_flag';
+    $form['flag_action']['flag']['#flag_error'] = $error;
+  }
+
+  return $form;
+}
+
+/**
+ * Generic validation handler for validating Flag action configuration.
+ */
+function flag_action_validate_flag($element) {
+  if (isset($element['#flag_error'])) {
+    form_error($element, $element['#flag_error']);
+  }
+}
+
+/**
+ * Generic submission handler for saving Flag action configuration.
+ */
+function flag_action_submit($form, $form_state) {
+  return array(
+    'flag_action' => $form_state['values']['flag_action'],
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.admin.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.admin.inc
new file mode 100644
index 0000000..a5d4fdb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.admin.inc
@@ -0,0 +1,646 @@
+<?php
+
+/**
+ * @file
+ * Contains administrative pages for creating, editing, and deleting flags.
+ */
+
+/**
+ * Flag administration page. Display a list of existing flags.
+ */
+function flag_admin_page() {
+  $flags = flag_get_flags();
+  $default_flags = flag_get_default_flags(TRUE);
+  $flag_admin_listing = drupal_get_form('flag_admin_listing', $flags);
+  return theme('flag_admin_page', $flags, $default_flags, $flag_admin_listing);
+}
+
+/**
+ * A form for ordering the weights of all the active flags in the system.
+ */
+function flag_admin_listing(&$form_state, $flags) {
+  $form['#flags'] = $flags;
+  $form['#tree'] = TRUE;
+
+  foreach ($flags as $flag) {
+    $form['flags'][$flag->name]['weight'] = array(
+      '#type' => 'weight',
+      '#delta' => count($flags) + 5,
+      '#default_value' => $flag->weight,
+      '#attributes' => array('class' => 'flag-weight'),
+    );
+  }
+
+  if (count($flags) == 1) {
+    // Don't show weights with only one flag.
+    unset($form['flags'][$flag->name]['weight']);
+  }
+  else if (count($flags) > 1){
+    // Only show the form button if there are several flags.
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Save flag order'),
+    );
+  }
+
+  return $form;
+}
+
+/**
+ * Submit handler for the flag_admin_listing form. Save flag weight ordering.
+ */
+function flag_admin_listing_submit($form, &$form_state) {
+  foreach ($form['#flags'] as $flag) {
+    if ($flag->weight != $form_state['values']['flags'][$flag->name]['weight']) {
+      $flag->weight = $form_state['values']['flags'][$flag->name]['weight'];
+      $flag->save();
+    }
+  }
+}
+
+/**
+ * Theme the output of the normal, database flags into a table.
+ */
+function theme_flag_admin_listing($form) {
+  $flags = $form['#flags'];
+
+  $output = '';
+
+  foreach ($flags as $flag) {
+    $ops = array(
+      'flags_edit' =>  array('title' => t('edit'), 'href' => $flag->admin_path('edit')),
+      'flags_delete' =>  array('title' => t('delete'), 'href' => $flag->admin_path('delete')),
+      'flags_export' =>  array('title' => t('export'), 'href' => $flag->admin_path('export')),
+    );
+
+    $roles = array_flip(array_intersect(array_flip(user_roles()), $flag->roles['flag']));
+    $row = array();
+    $row[] = $flag->name;
+    if (count($flags) > 1) {
+      $row[] = drupal_render($form['flags'][$flag->name]['weight']);
+    }
+    $row[] = $flag->content_type;
+    $row[] = empty($flag->roles['flag']) ? '<em>' . t('No roles') . '</em>' : implode(', ', $roles);
+    $row[] = $flag->types ? implode(', ', $flag->types) : '-';
+    $row[] = $flag->global ? t('Yes') : t('No');
+    $row[] = theme('links', $ops);
+
+    $rows[] = array(
+      'data' => $row,
+      'class' => 'draggable',
+    );
+  }
+  if (!$flags) {
+    $rows[] = array(
+      array('data' => t('No flags are currently defined.'), 'colspan' => 7),
+    );
+  }
+  else if (count($flags) > 1) {
+    drupal_add_tabledrag('flag-admin-listing-table', 'order', 'sibling', 'flag-weight');
+  }
+
+  $header = array(t('Flag'));
+  if (count($flags) > 1) {
+    $header[] = t('Weight');
+  }
+  $header = array_merge($header, array(t('Flag type'), t('Roles'), t('Entity bundles'), t('Global?'), t('Operations')));
+  $output .= theme('table', $header, $rows, array('id' => 'flag-admin-listing-table'));
+  $output .= drupal_render($form);
+
+  return $output;
+}
+
+/**
+ * Theme the list of disabled flags into a table.
+ */
+function theme_flag_admin_listing_disabled($flags, $default_flags) {
+  $output = '';
+
+  // Build a list of disabled, module-based flags.
+  $rows = array();
+  foreach ($default_flags as $name => $flag) {
+    if (!isset($flags[$name])) {
+      $ops = array();
+      if (!$flag->is_compatible()) {
+        $flag_updates_needed = TRUE;
+        $ops['flags_update'] = array('title' => '<strong>' . t('update code') . '</strong>', 'href' => $flag->admin_path('update'), 'html' => TRUE);
+      }
+      else {
+        $ops['flags_enable'] = array('title' => t('enable'), 'href' => $flag->admin_path('edit'));
+      }
+      // $flag->roles['flag'] not exist on older flags.
+      $roles = array_flip(array_intersect(array_flip(user_roles()), !empty($flag->roles['flag']) ? $flag->roles['flag'] : array()));
+      $rows[] = array(
+        $flag->name,
+        $flag->module,
+        $flag->content_type,
+        theme('links', $ops),
+      );
+    }
+  }
+
+  if (isset($flag_updates_needed)) {
+    drupal_set_message(t('Some flags provided by modules need to be updated to a new format before they can be used with this version of Flag. See the disabled flags for a list of flags that need updating.'), 'warning');
+  }
+
+  if (!empty($rows)) {
+    $header = array(t('Disabled Flags'), t('Module'), t('Flag type'), t('Operations'));
+    $output .= theme('table', $header, $rows);
+  }
+
+  return $output;
+}
+
+/**
+ * Theme the output for the main flag administration page.
+ */
+function theme_flag_admin_page($flags, $default_flags, $flag_admin_listing) {
+  $output = '';
+
+  $output .= $flag_admin_listing;
+  $output .= theme('flag_admin_listing_disabled', $flags, $default_flags);
+
+  if (!module_exists('views')) {
+    $output .= '<p>' . t('The <a href="@views-url">Views</a> module is not installed, or not enabled. It is recommended that you install the Views module to be able to easily produce lists of flagged content.', array('@views-url' => url('http://drupal.org/project/views'))) . '</p>';
+  }
+  else {
+    $output .= '<p>';
+    $output .= t('Lists of flagged content can be displayed using views. You can configure these in the <a href="@views-url">Views administration section</a>.', array('@views-url' => url('admin/build/views')));
+    if (flag_get_flag('bookmarks')) {
+      $output .= ' ' . t('Flag module automatically provides a few <a href="@views-url">default views for the <em>bookmarks</em> flag</a>. You can use these as templates by cloning these views and then customizing as desired.', array('@views-url' => url('admin/build/views', array('query' => 'tag=flag'))));
+    }
+    $output .= ' ' . t('The <a href="@flag-handbook-url">Flag module handbook</a> contains extensive <a href="@customize-url">documentation on creating customized views</a> using flags.', array('@flag-handbook-url' => 'http://drupal.org/handbook/modules/flag', '@customize-url' => 'http://drupal.org/node/296954'));
+    $output .= '</p>';
+  }
+
+  if (!module_exists('flag_actions')) {
+    $output .= '<p>' . t('Flagging an item may trigger <em>actions</em>. However, you don\'t have the <em>Flag actions</em> module <a href="@modules-url">enabled</a>, so you won\'t be able to enjoy this feature.', array('@actions-url' => url('admin/build/flags/actions'), '@modules-url' => url('admin/build/modules'))) . '</p>';
+  }
+  else {
+    $output .= '<p>' . t('Flagging an item may trigger <a href="@actions-url">actions</a>.', array('@actions-url' => url('admin/build/flags/actions'))) . '</p>';
+  }
+
+  if (!module_exists('rules')) {
+    $output .= '<p>' . t('Flagging an item may trigger <em>rules</em>. However, you don\'t have the <a href="@rules-url">Rules</a> module enabled, so you won\'t be able to enjoy this feature. The Rules module is a more extensive solution than Flag actions.', array('@rules-url' => url('http://drupal.org/node/407070'))) . '</p>';
+  }
+  else {
+    $output .= '<p>' . t('Flagging an item may trigger <a href="@rules-url">rules</a>.', array('@rules-url' => url('admin/rules/trigger'))) . '</p>';
+  }
+
+  $output .= '<p>' . t('To learn about the various ways to use flags, please check out the <a href="@handbook-url">Flag module handbook</a>.', array('@handbook-url' => 'http://drupal.org/handbook/modules/flag')) . '</p>';
+
+  return $output;
+}
+
+/**
+ * Menu callback for adding a new flag.
+ */
+function flag_add_page($type = NULL, $name = NULL) {
+  drupal_set_title(t('Add new flag'));
+  if (isset($type) && isset($name)) {
+    $flag = flag_flag::factory_by_content_type($type);
+    $flag->name = $name;
+    return drupal_get_form('flag_form', $flag);
+  }
+  else {
+    return drupal_get_form('flag_add_form');
+  }
+}
+
+/**
+ * Present a form for creating a new flag, setting the type of flag.
+ */
+function flag_add_form(&$form_state) {
+  $form = array();
+
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Flag name'),
+    '#description' => t('The machine-name for this flag. It may be up to 32 characters long and may only contain lowercase letters, underscores, and numbers. It will be used in URLs and in all API calls.'),
+    '#maxlength' => 32,
+    '#required' => TRUE,
+  );
+
+  $types = array();
+  foreach (flag_fetch_definition() as $type => $info) {
+    $types[$type] = $info['title'] . '<div class="description">' . $info['description'] . '</div>';
+  }
+
+  $form['type'] = array(
+    '#type' => 'radios',
+    '#title' => t('Flag type'),
+    '#default_value' => 'node',
+    '#description' => t('The type of content this flag will affect. An individual flag can only affect one type of content. This cannot be changed once the flag is created.'),
+    '#required' => TRUE,
+    '#options' => $types,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Add flag'),
+  );
+
+  return $form;
+}
+
+function flag_add_form_validate($form, &$form_state) {
+  $flag = flag_flag::factory_by_content_type($form_state['values']['type']);
+  $flag->name = $form_state['values']['name'];
+  $errors = $flag->validate_name();
+  foreach ($errors as $field => $field_errors) {
+    foreach ($field_errors as $error) {
+      form_set_error($field, $error['message']);
+    }
+  }
+}
+
+function flag_add_form_submit($form, &$form_state) {
+  $form_state['redirect'] = 'admin/build/flags/add/' . $form_state['values']['type'] . '/' . $form_state['values']['name'];
+}
+
+/**
+ * Add/Edit flag page.
+ */
+function flag_form(&$form_state, $flag) {
+  $form['#flag'] = $flag;
+
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Name'),
+    '#default_value' => $flag->name,
+    '#description' => t('The machine-name for this flag. It may be up to 32 characters long and may only contain lowercase letters, underscores, and numbers. It will be used in URLs and in all API calls.'),
+    '#maxlength' => 32,
+    '#required' => TRUE,
+    '#access' => empty($flag->locked['name']),
+    '#weight' => -3,
+  );
+
+  if (!empty($flag->fid)) {
+    $form['name']['#description'] .= ' <strong>' . t('Change this value only with great care.') . '</strong>';
+  }
+
+  $form['title'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Title'),
+    '#default_value' => $flag->title,
+    '#description' => t('A short, descriptive title for this flag. It will be used in administrative interfaces to refer to this flag, and in page titles and menu items of some <a href="@insite-views-url">views</a> this module provides (theses are customizable, though). Some examples could be <em>Bookmarks</em>, <em>Favorites</em>, or <em>Offensive</em>.', array('@insite-views-url' => url('admin/build/views'))),
+    '#maxlength' => 255,
+    '#required' => TRUE,
+    '#access' => empty($flag->locked['title']),
+    '#weight' => -2,
+  );
+
+  $form['global'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Global flag'),
+    '#default_value' => $flag->global,
+    '#description' => t('If checked, flag is considered "global" and each node is either flagged or not. If unchecked, each user has individual flags on content.'),
+    '#access' => empty($flag->locked['global']),
+    '#weight' => -1,
+  );
+
+  $form['messages'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Messages'),
+  );
+
+  $form['messages']['flag_short'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Flag link text'),
+    '#default_value' => $flag->flag_short,
+    '#description' => t('The text for the "flag this" link for this flag.'),
+    '#required' => TRUE,
+    '#access' => empty($flag->locked['flag_short']),
+  );
+
+  $form['messages']['flag_long'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Flag link description'),
+    '#default_value' => $flag->flag_long,
+    '#description' => t('The description of the "flag this" link. Usually displayed on mouseover.'),
+    '#access' => empty($flag->locked['flag_long']),
+  );
+
+  $form['messages']['flag_message'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Flagged message'),
+    '#default_value' => $flag->flag_message,
+    '#description' => t('Message displayed after flagging content. If JavaScript is enabled, it will be displayed below the link. If not, it will be displayed in the message area.'),
+    '#access' => empty($flag->locked['flag_message']),
+  );
+
+  $form['messages']['unflag_short'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Unflag link text'),
+    '#default_value' => $flag->unflag_short,
+    '#description' => t('The text for the "unflag this" link for this flag.'),
+    '#required' => TRUE,
+    '#access' => empty($flag->locked['unflag_short']),
+  );
+
+  $form['messages']['unflag_long'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Unflag link description'),
+    '#default_value' => $flag->unflag_long,
+    '#description' => t('The description of the "unflag this" link. Usually displayed on mouseover.'),
+    '#access' => empty($flag->locked['unflag_long']),
+  );
+
+  $form['messages']['unflag_message'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Unflagged message'),
+    '#default_value' => $flag->unflag_message,
+    '#description' => t('Message displayed after content has been unflagged. If JavaScript is enabled, it will be displayed below the link. If not, it will be displayed in the message area.'),
+    '#access' => empty($flag->locked['unflag_message']),
+  );
+
+  if (module_exists('token')) {
+    $form['messages']['tokens_help'] = array(
+      '#title' => t('Token replacement'),
+      '#type' => 'fieldset',
+      '#description' =>
+        '<p>' . t('The above six texts may contain any of the tokens listed below. For example, <em>"Flag link text"</em> could be entered as:') . '</p>' .
+        theme('item_list', array(
+          t('Add <em>[title]</em> to your favorites'),
+          t('Add this [type] to your favorites'),
+          t('Vote for this proposal ([flag-vote-count] people have already done so)'),
+        ), NULL, 'ul', array('class' => 'token-examples')) .
+        '<p>' . t('These tokens will be replaced with the appropriate fields from the node (or user, or comment).') . '</p>' .
+        theme('flag_tokens_browser', $flag->get_labels_token_types()),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+  }
+  else {
+    $form['messages']['token_help'] = array(
+      '#value' => '<em>' . t('Note: You don\'t have the <a href="@token-url">Token</a> module installed. If you have it installed, and enabled, you\'ll be able to embed tokens in the six labels above.', array('@token-url' => 'http://drupal.org/project/token')) . '</em>',
+    );
+  }
+
+  $form['access'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Flag access'),
+    '#tree' => FALSE,
+    '#weight' => 10,
+  );
+
+  $form['access']['types'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Flaggable content'),
+    '#options' => array_map('check_plain', node_get_types('names')),
+    '#default_value' => $flag->types,
+    '#description' => t('Check any node types that this flag may be used on. You must check at least one node type.'),
+    '#required' => TRUE,
+    '#weight' => 10,
+    '#access' => empty($flag->locked['types']),
+  );
+
+  // Disabled access breaks checkboxes unless #value is hard coded.
+  if (!empty($flag->locked['types'])) {
+    $form['access']['types']['#value'] = $flag->types;
+  }
+
+  $form['access']['roles'] = array(
+    '#title' => t('Roles that may use this flag'),
+    '#access' => empty($flag->locked['roles']),
+    '#description' => t('Users may only unflag content if they have access to flag the content initially. Checking <em>authenticated user</em> will allow access for all logged-in users.'),
+    '#theme' => 'flag_form_roles',
+    '#weight' => -2,
+  );
+  if (module_exists('session_api')) {
+    $form['access']['roles']['#description'] .= ' ' . t('Support for anonymous users is being provided by <a href="http://drupal.org/project/session_api">Session API</a>.');
+  }
+  else {
+    $form['access']['roles']['#description'] .= ' ' . t('Anonymous users may flag content if the <a href="http://drupal.org/project/session_api">Session API</a> module is installed.');
+  }
+
+  $form['access']['roles']['flag'] = array(
+    '#type' => 'checkboxes',
+    '#options' => user_roles(!module_exists('session_api')),
+    '#default_value' => $flag->roles['flag'],
+    '#parents' => array('roles', 'flag'),
+  );
+  $form['access']['roles']['unflag'] = array(
+    '#type' => 'checkboxes',
+    '#options' => user_roles(!module_exists('session_api')),
+    '#default_value' => $flag->roles['unflag'],
+    '#parents' => array('roles', 'unflag'),
+  );
+
+  // Disabled access breaks checkboxes unless #value is hard coded.
+  if (!empty($flag->locked['roles'])) {
+    $form['access']['roles']['#type'] = 'value';
+    $form['access']['roles']['#value'] = $flag->roles;
+  }
+
+  $form['access']['unflag_denied_text'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Unflag not allowed text'),
+    '#default_value' => $flag->unflag_denied_text,
+    '#description' => t('If a user is allowed to flag but not unflag, this text will be displayed after flagging. Often this is the past-tense of the link text, such as "flagged".'),
+    '#access' => empty($flag->locked['unflag_denied_text']),
+    '#weight' => -1,
+  );
+
+  $form['display'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Display options'),
+    '#description' => t('Flags are usually controlled through links that allow users to toggle their behavior. You can choose how users interact with flags by changing options here. It is legitimate to have none of the following checkboxes ticked, if, for some reason, you wish <a href="@placement-url">to place the the links on the page yourself</a>.', array('@placement-url' => 'http://drupal.org/node/295383')),
+    '#tree' => FALSE,
+    '#weight' => 20,
+  );
+
+  $form['display']['link_type'] = array(
+    '#type' => 'radios',
+    '#title' => t('Link type'),
+    '#options' => _flag_link_type_options(),
+    '#option_descriptions' => _flag_link_type_descriptions(),
+    '#after_build' => array('flag_expand_link_option', 'flag_check_link_types'),
+    '#default_value' => $flag->link_type,
+    '#weight' => 2,
+    '#access' => empty($flag->locked['link_type']),
+  );
+
+  $form['display']['link_options_intro'] = array(
+    '#value' => '<p id="link-options-intro">' . t('The selected link type may require these additional settings:') . '</p>',
+    '#weight' => 20,
+  );
+
+  $form['display']['link_options_confirm'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Options for the "Confirmation form" link type'),
+    // Any "link type" provider module must put its settings fields inside
+    // a fieldset whose HTML ID is link-options-LINKTYPE, where LINKTYPE is
+    // the machine-name of the link type. This is necessary for the
+    // radiobutton's JavaScript dependency feature to work.
+    '#attributes' => array('id' => 'link-options-confirm'),
+    '#weight' => 21,
+  );
+
+  $form['display']['link_options_confirm']['flag_confirmation'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Flag confirmation message'),
+    '#default_value' => isset($flag->flag_confirmation) ? $flag->flag_confirmation : '',
+    '#description' => t('Message displayed if the user has clicked the "flag this" link and confirmation is required. Usually presented in the form of a question such as, "Are you sure you want to flag this content?"'),
+    '#access' => empty($flag->locked['flag_confirmation']),
+  );
+
+  $form['display']['link_options_confirm']['unflag_confirmation'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Unflag confirmation message'),
+    '#default_value' => isset($flag->unflag_confirmation) ? $flag->unflag_confirmation : '',
+    '#description' => t('Message displayed if the user has clicked the "unflag this" link and confirmation is required. Usually presented in the form of a question such as, "Are you sure you want to unflag this content?"'),
+    '#access' => empty($flag->locked['unflag_confirmation']),
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save flag'),
+    // We put this button on the form before calling $flag->options_form()
+    // to give the flag handler a chance to remove it (e.g. flag_broken).
+    '#weight' => 999,
+  );
+
+  $flag->options_form($form);
+
+  return $form;
+}
+
+/**
+ * Add/Edit flag form validate.
+ */
+function flag_form_validate($form, &$form_state) {
+  $form_values = $form_state['values'];
+
+  if ($form_values['link_type'] == 'confirm') {
+    if (empty($form_values['flag_confirmation'])) {
+      form_set_error('flag_confirmation', t('A flag confirmation message is required when using the confirmation link type.'));
+    }
+    if (empty($form_values['unflag_confirmation'])) {
+      form_set_error('unflag_confirmation', t('An unflag confirmation message is required when using the confirmation link type.'));
+    }
+  }
+
+
+  $flag = $form['#flag'];
+  $flag->form_input($form_values);
+  $errors = $flag->validate();
+  foreach ($errors as $field => $field_errors) {
+    foreach ($field_errors as $error) {
+      form_set_error($field, $error['message']);
+    }
+  }
+}
+
+/**
+ * Add/Edit flag form submit.
+ */
+function flag_form_submit($form, &$form_state) {
+  $flag = $form['#flag'];
+  $flag->form_input($form_state['values']);
+  $flag->save();
+  $flag->enable();
+  drupal_set_message(t('Flag @name has been saved.', array('@name' => $flag->get_title())));
+  _flag_clear_cache();
+  $form_state['redirect'] = 'admin/build/flags';
+}
+
+/**
+ * Output the access options for roles in a table.
+ */
+function theme_flag_form_roles($element) {
+  drupal_add_css(drupal_get_path('module', 'flag') . '/theme/flag-admin.css', 'module', 'all', FALSE);
+  drupal_add_js(drupal_get_path('module', 'flag') . '/theme/flag-admin.js', 'module', 'header', FALSE, TRUE, FALSE);
+
+  $header = array(
+    array('class' => 'checkbox', 'data' => t('Flag')),
+    array('class' => 'checkbox', 'data' => t('Unflag')),
+    t('Role'),
+  );
+  $rows = array();
+  foreach (element_children($element['flag']) as $role) {
+    $row = array();
+    $role_name = $element['flag'][$role]['#title'];
+    unset($element['flag'][$role]['#title']);
+    unset($element['unflag'][$role]['#title']);
+    $element['flag'][$role]['#attributes']['class'] = 'flag-access';
+    $element['unflag'][$role]['#attributes']['class'] = 'unflag-access';
+    $row[] = array('class' => 'checkbox', 'data' => drupal_render($element['flag'][$role]));
+    $row[] = array('class' => 'checkbox', 'data' => drupal_render($element['unflag'][$role]));
+    $row[] = $role_name;
+    $rows[] = $row;
+  }
+
+  $element['#children'] = theme('table', $header, $rows, array('class' => 'flag-admin-table', 'id' => 'flag-roles'));
+  return theme('form_element', $element, $element['#children']);
+}
+
+/**
+ * Delete flag page.
+ */
+function flag_delete_confirm(&$form_state, $flag) {
+  $form['fid'] = array('#type' => 'value', '#value' => $flag->fid);
+
+  return confirm_form($form,
+    t('Are you sure you want to delete %title?', array('%title' => $flag->get_title())),
+    !empty($_GET['destination']) ? $_GET['destination'] : 'admin/build/flags',
+    isset($flag->module) ? t('This flag is provided by the %module module. It will lose any customizations and be disabled.', array('%module' => $flag->module)) : t('This action cannot be undone.'),
+    t('Delete'), t('Cancel')
+  );
+}
+
+function flag_delete_confirm_submit($form, &$form_state) {
+  $flag = flag_get_flag(NULL, $form_state['values']['fid']);
+  if ($form_state['values']['confirm']) {
+    $flag->delete();
+    $flag->disable();
+    _flag_clear_cache();
+  }
+  drupal_set_message(t('Flag @name has been deleted.', array('@name' => $flag->get_title())));
+  $form_state['redirect'] = 'admin/build/flags';
+}
+
+/**
+ * FormAPI after_build function to add descriptions to radio buttons.
+ */
+function flag_expand_link_option($element) {
+  drupal_add_js(drupal_get_path('module', 'flag') . '/theme/flag-admin.js', 'module', 'header', FALSE, TRUE, FALSE);
+
+  foreach (element_children($element) as $key) {
+    // Add a description to the link option.
+    if (isset($element['#option_descriptions'][$key])) {
+      $element[$key]['#description'] = $element['#option_descriptions'][$key];
+    }
+  }
+  $element['#attributes']['class'] = 'flag-link-options';
+
+  return $element;
+}
+
+/**
+ * FormAPI after_build function to check that the link type exists.
+ */
+function flag_check_link_types($element) {
+  $link_types = flag_get_link_types();
+  if (!isset($link_types[$element['#value']])) {
+    drupal_set_message(t('This flag uses a link type of %type, which does not exist.', array('%type' => $element['#value'])), 'error');
+  }
+  return $element;
+}
+
+/**
+ * Clears various caches when a flag is modified.
+ */
+function _flag_clear_cache() {
+  if (module_exists('views')) {
+    views_invalidate_cache();
+  }
+  // Reset our flags cache, thereby making the following code aware of the
+  // modifications.
+  flag_get_flags(NULL, NULL, NULL, TRUE);
+  // The title of a flag may appear in the menu (indirectly, via our "default
+  // views"), so we need to clear the menu cache. This call also clears the
+  // page cache, which is desirable too because the flag labels may have
+  // changed.
+  menu_rebuild();
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.export.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.export.inc
new file mode 100644
index 0000000..14b5a7f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.export.inc
@@ -0,0 +1,247 @@
+<?php
+
+/**
+ * @file
+ * Import/Export functionality provided by Flag module.
+ */
+
+/**
+ * Export a flag to code.
+ *
+ * @param $flags
+ *   An array of flag objects, or flag name.
+ * @param $module
+ *   Optional. The name of the module that will be created if exporting to use
+ *   in hook_flag_default_flags().
+ */
+function flag_export_flags($flags = array(), $module = '', $indent = '') {
+  module_load_include('inc', 'features', 'features.export'); // For features_var_export() (optional).
+  $output = $indent . '$flags = array();' . "\n";
+  foreach ($flags as $item) {
+    if (is_object($item)) {
+      $flag = $item;
+    }
+    else {
+      // We got just the flag name, for example from the features
+      // implementation.
+      if (!($flag = flag_load($item, TRUE))) {
+        continue;
+      }
+    }
+    if (!$flag->is_compatible()) {
+      drupal_set_message(t('Could not export flag %flag-name: Your flag was created by a different version of the Flag module than is now being used.', array('%flag-name' => $flag->name)), 'error');
+      continue;
+    }
+
+    $flag->api_version = FLAG_API_VERSION;
+    $new_flag = (array) $flag;
+
+    if (!empty($module)) {
+      // Even though Flag adds the module name itself later, we add the module
+      // name here for reference by other modules (such as Features).
+      $new_flag['module'] = $module;
+      // Lock the flag name, as is normally desired by modules using
+      // hook_flag_default_flags(), and needed by Features.
+      $new_flag['locked'] = array('name');
+    }
+    // Allow other modules to change the exported flag.
+    drupal_alter('flag_export', $new_flag);
+
+    // Remove the flag ID.
+    unset($new_flag['fid']);
+    // The name is emitted as the key for the array.
+    unset($new_flag['name']);
+
+    $output .= $indent . '// Exported flag: "' . check_plain($flag->get_title()) . '"' . ".\n";
+    $output .= $indent . '$flags[\'' . $flag->name . '\'] = ' . (function_exists('features_var_export') ? features_var_export($new_flag, $indent) : var_export($new_flag, TRUE)) . ";\n";
+  }
+  $output .= $indent . 'return $flags;' . "\n";
+  return $output;
+}
+
+/**
+ * Form to import a flag.
+ */
+function flag_import_form() {
+  $form = array();
+
+  $form['import'] = array(
+    '#title' => t('Flag import code'),
+    '#type' => 'textarea',
+    '#default_value' => '',
+    '#rows' => 15,
+    '#required' => TRUE,
+    '#description' => t('Paste the code from a <a href="@export-url">flag export</a> here to import it into you site. Flags imported with the same name will update existing flags. Flags with a new name will be created.', array('@export-url' => url('admin/build/flags/export'))),
+  );
+  $form['submit'] = array(
+    '#value' => t('Import'),
+    '#type' => 'submit',
+  );
+
+  return $form;
+}
+
+/**
+ * Validate handler; Import a flag.
+ */
+function flag_import_form_validate($form, &$form_state) {
+  $flags = array();
+  ob_start();
+  eval($form_state['values']['import']);
+  ob_end_clean();
+
+  if (!isset($flags) || !is_array($flags)) {
+    form_set_error('import', t('A valid list of flags could not be found in the import code.'));
+    return;
+  }
+
+  // Create the flag object.
+  foreach ($flags as $flag_name => $flag_info) {
+    // Backward compatibility: old exported flags have their names in $flag_info
+    // instead, so we use the += operator to not overwrite it.
+    $flag_info += array(
+      'name' => $flag_name,
+    );
+    $new_flag = flag_flag::factory_by_array($flag_info);
+
+    // Give new flags with the same name a matching FID, which tells Flag to
+    // update the existing flag, rather than creating a new one.
+    if ($existing_flag = flag_get_flag($new_flag->name)) {
+      $new_flag->fid = $existing_flag->fid;
+    }
+
+    if ($errors = $new_flag->validate()) {
+      $message = t('The import of the %flag flag failed because the following errors were encountered during the import:', array('%flag' => $new_flag->name));
+      $message_errors = array();
+      foreach ($errors as $field => $field_errors) {
+        foreach ($field_errors as $error) {
+          $message_errors[] = $error['message'];
+        }
+      }
+      form_set_error('import', $message . theme('item_list', $message_errors));
+    }
+    else {
+      // Save the new flag for the submit handler.
+      $form_state['flags'][] = $new_flag;
+    }
+  }
+}
+
+/**
+ * Submit handler; Import a flag.
+ */
+function flag_import_form_submit($form, &$form_state) {
+  module_load_include('inc', 'flag', 'includes/flag.admin');
+
+  foreach ($form_state['flags'] as $flag) {
+    $flag->save();
+    if (!empty($flag->status)) {
+      $flag->enable();
+    }
+    if ($flag->is_new) {
+      drupal_set_message(t('Flag @name has been imported.', array('@name' => $flag->name)));
+    }
+    else {
+      drupal_set_message(t('Flag @name has been updated.', array('@name' => $flag->name)));
+    }
+  }
+  _flag_clear_cache();
+
+  $form_state['redirect'] = 'admin/build/flags';
+}
+
+/**
+ * Export a flag and display it in a form.
+ */
+function flag_export_form(&$form_state, $flag = NULL) {
+  $form = array();
+
+  // If we were passed a flag, use it as the list of flags to export.
+  if ($flag) {
+    $flags = array($flag);
+  }
+
+  // Display a list of flags to export.
+  if (!isset($flags)) {
+    if (isset($form_state['values']['flags'])) {
+      $flags = array();
+      foreach ($form_state['values']['flags'] as $flag_name) {
+        if ($flag_name && $flag = flag_get_flag($flag_name)) {
+          $flags[] = $flag;
+        }
+      }
+    }
+    else {
+      $form['flags'] = array(
+        '#type' => 'checkboxes',
+        '#title' => t('Flags to export'),
+        '#options' => drupal_map_assoc(array_keys(flag_get_flags())),
+        '#description' => t('Exporting your flags is useful for moving flags from one site to another, or when including your flag definitions in a module.'),
+      );
+      $form['submit'] = array(
+        '#type' => 'submit',
+        '#value' => t('Export'),
+      );
+    }
+  }
+
+  if (isset($flags)) {
+    $code = flag_export_flags($flags);
+
+    // Link to the Features page if module is present, otherwise link to the
+    // Drupal project page.
+    $features_link = module_exists('features') ? url('admin/build/features') : url('http://drupal.org/project/features');
+
+    $form['export'] = array(
+      '#type' => 'textarea',
+      '#title' => t('Flag exports'),
+      '#description' => t('Use the exported code to later <a href="@import-flag">import</a> it. Exports can be included in modules using <a href="http://drupal.org/node/305086#default-flags">hook_flag_default_flags()</a> or using the <a href="@features-url">Features</a> module.', array('@import-flag' => url('admin/build/flags/import'), '@features-url' => $features_link)),
+      '#value' => $code,
+      '#rows' => 15,
+    );
+  }
+
+  return $form;
+}
+
+/**
+ * Submit handler; Rebuild the export form after the list of flags has been set.
+ */
+function flag_export_form_submit($form, &$form_state) {
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Page for displaying an upgrade message and export form for Flag 1.x flags.
+ */
+function flag_update_page($flag) {
+  if ($flag->is_compatible()) {
+    drupal_set_message(t('The flag %name is already up-to-date with the latest Flag API and does not need upgrading.'), array('%name' => $flag->name));
+    drupal_goto('admin/build/flags');
+  }
+
+  drupal_set_message(t('The flag %name is currently using the Flag API version @version, which is not compatible with the current version of Flag. You can upgrade this flag by pasting the below code into <em>@module_flag_default_flags()</em> function in the @module.module file.', array('%name' => $flag->name, '@version' => $flag->api_version, '@module' => $flag->module)), 'warning');
+
+  flag_update_export($flag);
+
+  return drupal_get_form('flag_export_form', $flag);
+}
+
+/**
+ * Update a flag before export.
+ *
+ * @param $flag
+ *   The flag object passed by reference.
+ */
+function flag_update_export(&$flag) {
+  // Update differences.
+  if (empty($flag->api_version) || $flag->api_version == 1) {
+    if (isset($flag->roles) && !isset($flag->roles['flag'])) {
+      $flag->roles = array(
+        'flag' => $flag->roles,
+        'unflag' => $flag->roles,
+      );
+    }
+    $flag->api_version = FLAG_API_VERSION;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.features.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.features.inc
new file mode 100644
index 0000000..859f56f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.features.inc
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * @file
+ * Features integration for Flag module.
+ */
+
+/**
+ * Implements hook_features_export().
+ */
+function flag_features_export($data, &$export, $module_name = '') {
+  $pipe = array();
+
+  // Add flag module as a dependency.
+  $export['dependencies']['features'] = 'flag';
+
+  // Ensure the modules that provide the flag are included as dependencies.
+  $modules = flag_features_providing_module();
+  foreach ($data as $key => $flag) {
+    // Get the module that provided the flag definition.
+    if ($flag = flag_load($flag, TRUE)) {
+      $module = $modules[$flag->content_type];
+      $export['dependencies'][$module] = $module;
+      $export['features']['flag'][$flag->name] = $flag->name;
+    }
+  }
+
+  return $pipe;
+}
+
+/**
+ * Implements hook_features_export_options().
+ */
+function flag_features_export_options() {
+  $options = array();
+  // Get all flags, including disabled defaults.
+  $flags = flag_get_flags() + flag_get_default_flags(TRUE);
+  foreach ($flags as $name => $flag) {
+    $options[$name] = drupal_ucfirst(check_plain($flag->content_type)) . ': ' . check_plain($flag->title);
+  }
+  return $options;
+}
+
+/**
+ * Implements hook_features_export_render().
+ */
+function flag_features_export_render($module, $data) {
+  module_load_include('inc', 'flag', '/includes/flag.export');
+  $code = flag_export_flags($data, $module, '  ');
+  return array('flag_default_flags' => $code);
+}
+
+/**
+ * Implements hook_features_revert().
+ *
+ * @param $module
+ *   The name of module for which to revert content.
+ */
+function flag_features_revert($module = NULL) {
+  // Get default flags from features.
+  if (module_hook($module, 'flag_default_flags')) {
+    module_load_include('inc', 'flag', '/includes/flag.admin');
+    $default_flags = module_invoke($module, 'flag_default_flags');
+
+    // Revert flags that are defined in code.
+    foreach ($default_flags as $flag_name => $flag_info) {
+      if (is_numeric($flag_name)) {
+        // Backward compatibility.
+        $flag_name = $flag_info['name'];
+      }
+      $flag = flag_load($flag_name, TRUE);
+      if ($flag && $flag->revert() === FALSE) {
+        drupal_set_message(t('Could not revert flag %flag-name to the state described in your code: Your flag was created by a different version of the Flag module than is now being used.', array('%flag-name' => $flag->name)), 'error');
+      }
+    }
+    _flag_clear_cache();
+  }
+}
+
+/**
+ * Helper function; Retrieve the providing modules defining the flags.
+ */
+function flag_features_providing_module() {
+  $modules = array();
+  $hook = 'flag_definitions';
+  foreach (module_implements($hook) as $module) {
+    foreach (module_invoke($module, $hook) as $key => $value) {
+      $modules[$key] = $module;
+    }
+  }
+  return $modules;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.rules.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.rules.inc
new file mode 100644
index 0000000..525d3e6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.rules.inc
@@ -0,0 +1,346 @@
+<?php
+
+/**
+ * @file
+ * Rules integration for the Flag module.
+ */
+
+/**
+ * Implementation of hook_rules_data_type_info().
+ * @ingroup rules
+ */
+function flag_rules_data_type_info() {
+  return array(
+    'flag' => array(
+      'label' => t('Flag'),
+      'class' => 'flag_rules_data_type',
+      'savable' => TRUE,
+      'identifiable' => TRUE,
+      'use_input_form' => TRUE,
+      'module' => 'Flag',
+    ),
+  );
+}
+
+/**
+ * Defines the flag rule data type.
+ * @ingroup rules
+ */
+class flag_rules_data_type extends rules_data_type {
+
+  function save() {
+    $flag = &$this->get();
+    $flag->save;
+    return TRUE;
+  }
+
+  function load($name) {
+    return flag_get_flag($name);
+  }
+
+  function get_identifier() {
+    $flag = &$this->get();
+    return $flag->name;
+  }
+
+  /**
+   * Returns radios for selecting a flag of the type given in
+   * $info['flag_type'].
+   */
+  function get_default_input_form($info, $value, &$form_state) {
+    $options = _flag_rules_flags_options(isset($info['flag_type']) ? $info['flag_type'] : NULL);
+    $form = array(
+      '#type' => 'radios',
+      '#title' => $info['label'],
+      '#options' => $options,
+      '#required' => TRUE,
+      '#disabled' => !$options,
+      '#default_value' =>  isset($value) ? $value : NULL,
+      '#theme' => 'flag_rules_radios',
+      '#printed' => TRUE, //don't use the elements type theme function
+    );
+    if (!$options) {
+      $form['#description'] = t('Error: There is no suiting flag available.');
+    }
+    return $form;
+  }
+
+  function check_value($info, $value) {
+    if ($flag = flag_get_flag($value)) {
+      return $flag;
+    }
+    rules_log(t('The flag %name does not exist any more.', array('%name' => $value)));
+  }
+}
+
+/**
+ * Implementation of hook_rules_event_info().
+ */
+function flag_rules_event_info() {
+  $items = array();
+
+  $flags = flag_get_flags();
+  foreach ($flags as $flag) {
+
+    $arguments = array(
+      // First, define ubiquitous arguments.
+      'flag' => array(
+        'type' => 'flag',
+        'label' => t('flag'),
+      ),
+      'flag_content_id' => array(
+        'type' => 'number',
+        'hidden' => TRUE,
+      ),
+      'flagging_user' => array(
+        'type' => 'user',
+        'label' => t('flagging user'),
+      ),
+    );
+    // Then, define flag-specific arguments.
+    $arguments += $flag->rules_get_event_arguments_definition();
+
+    // For each flag we define two events.
+    $items['flag_flagged_' . $flag->name] = array(
+      'module' => 'Flag',
+      'label' => t('A @flag-type has been flagged, under "@flag-title"', array('@flag-title' => $flag->get_title(), '@flag-type' => t($flag->content_type))),
+      'arguments' => $arguments,
+    );
+    $items['flag_unflagged_' . $flag->name] = array(
+      'module' => 'Flag',
+      'label' => t('A @flag-type has been unflagged, under "@flag-title"', array('@flag-title' => $flag->get_title(), '@flag-type' => t($flag->content_type))),
+      'arguments' => $arguments,
+    );
+  }
+  return $items;
+}
+
+/**
+ * Argument handler: Fetches the flags content for use with rules.
+ */
+function flag_rules_get_event_argument($flag, $content_id, $account) {
+  return $flag->fetch_content($content_id);
+}
+
+function flag_rules_get_node_author($flag, $content_id, $account) {
+  $node = $flag->fetch_content($content_id);
+  return rules_events_argument_node_author($node);
+}
+
+function flag_rules_get_comment_author($flag, $content_id, $account) {
+  $comment = $flag->fetch_content($content_id);
+  return rules_events_argument_comment_author($comment);
+}
+
+function flag_rules_get_comment_content($flag, $content_id, $account) {
+  $comment = $flag->fetch_content($content_id);
+  return node_load($comment->nid);
+}
+
+function flag_rules_get_comment_node_author($flag, $content_id, $account) {
+  $comment = $flag->fetch_content($content_id);
+  return rules_events_argument_comment_node_author($comment);
+}
+
+/**
+ * Implementation of hook_rules_action_info().
+ */
+function flag_rules_action_info() {
+  $items = array(
+    'flag_rules_action_trim' => array(
+      'label' => t('Trim a flag'),
+      'arguments' => array(
+        'flag' => array(
+          'type' => 'flag',
+          'label' => t('Flag'),
+        ),
+        'flagging_user' => array(
+          'type' => 'user',
+          'label' => t('User whose flag to trim'),
+          'description' => t('For non-global flags, this is the user whose flag to trim. (For global flags, this argument is ignored.)'),
+        ),
+        'cutoff_size' => array(
+          'type' => 'number',
+          'label' => t('Flag queue size'),
+          'description' => t('The maximum number of objects to keep in the queue. Newly flagged objects will be kept; older ones will be removed. Tip: by typing "1" here you implement a singleton.'),
+        ),
+      ),
+      'module' => 'Flag',
+    ),
+    'flag_fetch_entity_by_user' => array(
+      'label' => t('Fetch content flagged by user'),
+      'base' => 'flag_rules_action_fetch_content_by_user',
+      'parameter' => array(
+        'flag' => array(
+          'type' => 'flag',
+          'label' => t('Flag'),
+        ),
+        'flagging_user' => array(
+          'type' => 'user',
+          'label' => t('User who flagged the content'),
+          'description' => t('For non-global flags, this is the user who flagged the content. (For global flags, this argument is ignored.)'),
+        ),
+      ),
+      'provides' => array(
+        'content_flagged_by_user' => array(
+          'label' => t('Content flagged by user'),
+          'type' => 'list<node>',
+        ),
+      ),
+      'group' => t('Flag'),
+      'access callback' => 'flag_rules_integration_access',
+    ),
+  );
+  foreach (flag_get_types() as $type) {
+    $args = array(
+      'flag' => array(
+        'type' => 'flag',
+        'label' => t('Flag'),
+        'flag_type' => $type,
+      ),
+    );
+    $flag = flag_create_handler($type);
+    if ($flag->rules_get_element_argument_definition()) {
+      $args += array('object' => $flag->rules_get_element_argument_definition());
+
+      $items += array(
+        'flag_rules_action_flag_'. $type => array(
+          'label' => t('Flag a @type', array('@type' => $type)),
+          'base' => 'flag_rules_action_flag',
+          'label callback' => 'flag_rules_action_flag_label',
+          'arguments' => $args + array(
+            'flagging_user' => array(
+              'type' => 'user',
+              'label' => t('User on whose behalf to flag'),
+              'description' => t('For non-global flags, this is the user on whose behalf to flag the object. In addition, if checked below, the access permissions to the flag are checked against this user.'),
+            ),
+          ),
+          'module' => 'Flag',
+        ),
+        'flag_rules_action_unflag_'. $type => array(
+          'label' => t('Unflag a @type', array('@type' => $type)),
+          'base' => 'flag_rules_action_unflag',
+          'label callback' => 'flag_rules_action_unflag_label',
+          'arguments' => $args + array(
+            'flagging_user' => array(
+              'type' => 'user',
+              'label' => t('User on whose behalf to unflag'),
+              'description' => t('For non-global flags, this is the user on whose behalf to unflag the object. In addition, if checked below, the access permissions to the flag are checked against this user.'),
+            ),
+          ),
+          'module' => 'Flag',
+        ),
+      );
+    }
+  }
+  return $items;
+}
+
+/**
+ * Base action implementation: Flag.
+ */
+function flag_rules_action_flag($flag, $object, $flagging_user, $settings) {
+  $flag->flag('flag', $flag->get_content_id($object), $flagging_user, !$settings['permission_check']);
+}
+
+/**
+ * Base action implementation: Unflag.
+ */
+function flag_rules_action_unflag($flag, $object, $flagging_user, $settings) {
+  $flag->flag('unflag', $flag->get_content_id($object), $flagging_user, !$settings['permission_check']);
+}
+
+/**
+ * Base action implementation: Trim flag.
+ */
+function flag_rules_action_trim($flag, $flagging_user, $cutoff_size, $settings) {
+  flag_trim_flag($flag, $flagging_user, $cutoff_size);
+}
+
+/**
+ * Base action implementation: Fetch content flagged by a user.
+ */
+function flag_rules_action_fetch_content_by_user($flag, $user) {
+  $result = db_select('flag_content', 'fc')
+    ->fields('fc', array('content_id'))
+    ->condition('content_type', $flag->content_type)
+    ->condition('uid', $user->uid)
+    ->condition('fid', $flag->fid)
+    ->execute();
+
+  $flagged = $result->fetchCol();
+  return array('content_flagged_by_user' => $flagged);
+}
+
+/**
+ * Implementation of hook_rules_condition_info().
+ */
+function flag_rules_condition_info() {
+  $items = array();
+  foreach (flag_get_types() as $type) {
+    $args = array(
+      'flag' => array(
+        'type' => 'flag',
+        'label' => t('Flag'),
+        'flag_type' => $type,
+      ),
+    );
+    $flag = flag_create_handler($type);
+    if ($flag->rules_get_element_argument_definition()) {
+      $args += array('object' => $flag->rules_get_element_argument_definition());
+
+      $items += array(
+        'flag_rules_condition_threshold_'. $type => array(
+          'label' => drupal_ucfirst(t('@type has flagging count', array('@type' => $type))),
+          'base' => 'flag_rules_condition_threshold',
+          'label callback' => 'flag_rules_condition_threshold_label',
+          'arguments' => $args + array(
+            'number' => array(
+              'type' => 'number',
+              'label' => t('Number'),
+              'description' => t('The number against which to test the number of times the object is flagged. For example, if you type "3" here, and choose "Greater than" for the operator, then this condition will return TRUE if the object is flagged more than three times.'),
+            ),
+          ),
+          'module' => 'Flag',
+        ),
+        'flag_rules_condition_flagged_'. $type => array(
+          'label' => drupal_ucfirst(t('@type is flagged', array('@type' => $type))),
+          'base' => 'flag_rules_condition_flagged',
+          'label callback' => 'flag_rules_condition_flagged_label',
+          'arguments' => $args + array(
+            'user' => array(
+              'type' => 'user',
+              'label' => t('User on whose behalf to check'),
+              'description' => t('For non-global flags, this is the user on whose behalf the flag is checked.'),
+            ),
+          ),
+          'module' => 'Flag',
+        ),
+      );
+    }
+  }
+  return $items;
+}
+
+/**
+ * Condition: Check flagging count.
+ */
+function flag_rules_condition_threshold($flag, $object, $number, $settings) {
+
+  $count = $flag->get_count($flag->get_content_id($object));
+
+  switch ($settings['operator']) {
+    case '>' : return $count >  $number;
+    case '>=': return $count >= $number;
+    case '=' : return $count == $number;
+    case '<' : return $count <  $number;
+    case '<=': return $count <= $number;
+  }
+}
+
+/**
+ * Condition: Flag is flagged.
+ */
+function flag_rules_condition_flagged($flag, $object, $account, $settings) {
+  return $flag->is_flagged($flag->get_content_id($object), $account->uid);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.rules_forms.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.rules_forms.inc
new file mode 100644
index 0000000..0b5b75f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.rules_forms.inc
@@ -0,0 +1,127 @@
+<?php
+
+/**
+ * @file
+ * Rules integration for the Flag module.
+ */
+
+/*******************************************************************************
+ * Actions forms.
+ ******************************************************************************/
+
+function flag_rules_action_flag_form($settings, &$form, &$form_state) {
+  $settings += array('permission_check' => FALSE);
+  $form['settings']['permission_check'] = array(
+    '#title' => t('Check access permissions against the user on whose behalf to flag'),
+    '#type' => 'checkbox',
+    '#default_value' => $settings['permission_check'],
+  );
+}
+
+function flag_rules_action_flag_label($settings, $argument_labels, $element) {
+  $flag = rules_get_element_variable($element, 'flag');
+  return t('Flag @object, under "@flag-title"', $argument_labels + array('@flag-title' => $flag->get_title()));
+}
+
+function flag_rules_action_unflag_form($settings, &$form, &$form_state) {
+  $settings += array('permission_check' => FALSE);
+  $form['settings']['permission_check'] = array(
+    '#title' => t('Check access permissions against the user on whose behalf to unflag'),
+    '#type' => 'checkbox',
+    '#default_value' => $settings['permission_check'],
+  );
+}
+
+function flag_rules_action_unflag_label($settings, $argument_labels, $element) {
+  $flag = rules_get_element_variable($element, 'flag');
+  return t('Unflag @object, under "@flag-title"', $argument_labels + array('@flag-title' => $flag->get_title()));
+}
+
+function flag_rules_action_trim_form($settings, &$form, &$form_state) {
+  // Move argument to center of form.
+  $form['settings']['cutoff_size']['#weight'] = 2;
+}
+
+function flag_rules_action_trim_label($settings, $argument_labels, $element) {
+  $flag = rules_get_element_variable($element, 'flag');
+  return t('Trim "@flag-title" at @size', array('@flag-title' => $flag->get_title(), '@size' => $settings['cutoff_size']));
+}
+
+function flag_rules_action_trim_help() {
+  return t('The <em>trim</em> action is used to restrict the number of objects that may be flagged. For example, you may wish your "Editor picks" queue (that is, flag) to contain a maximum of 3 nodes. The trim action is best understood when we think of a flag as a <em>queue</em>. The action works by discarding old flaggings; So newly flagged objects push older ones out of the queue.');
+}
+
+
+/*******************************************************************************
+ * Conditions forms.
+ ******************************************************************************/
+
+
+function flag_rules_condition_threshold_form($settings, &$form, &$form_state) {
+
+  $form['settings']['operator'] = array(
+    '#title' => t('Comparison operator'),
+    '#type' => 'select',
+    '#options' => array(
+      '>'  => t('Greater than'),
+      '>=' => t('Greater than or equal'),
+      '='  => t('Equal to'),
+      '<=' => t('Less than or equal'),
+      '<'  => t('Less than'),
+    ),
+    '#default_value' => isset($settings['operator']) ? $settings['operator'] : '>=',
+  );
+
+  // Move argument to bottom of form.
+  $form['settings']['number']['#weight'] = 2;
+
+  // Move tokens help to bottom of form.
+  $form['settings']['input_help'] = $form['input_help'];
+  $form['settings']['input_help']['#weight'] = 3;
+  unset($form['input_help']);
+}
+
+function flag_rules_condition_threshold_label($settings, $argument_labels, $element) {
+  $flag = rules_get_element_variable($element, 'flag');
+  return t('Flagging count !op @number, for @object, under "@flag-title"', array('@flag-title' => $flag->get_title(), '!op' => $settings['operator'], '@number' => $settings['number']) + $argument_labels);
+}
+
+function flag_rules_condition_flagged_label($settings, $argument_labels, $element) {
+  $flag = rules_get_element_variable($element, 'flag');
+  return t('Flag "@flag-title" is flagged, for @object', array('@flag-title' => $flag->get_title()) + $argument_labels);
+}
+
+/*******************************************************************************
+ * Form utilities for the default input form of flags.
+ ******************************************************************************/
+
+function theme_flag_rules_radios($element) {
+
+  if (!empty($element['#disabled'])) {
+    drupal_set_message($element['#description'], 'error');
+  }
+
+  $headers = array(t('Flag:'), t('The flag type'), t('Is the flag global?'));
+  $rows = array();
+  foreach (element_children($element) as $flag_name) {
+    $flag = flag_get_flag($flag_name);
+    $rows[] = array(
+      '<div class="flag-radio">' . drupal_render($element[$flag_name]) . '</div>',
+      $flag->content_type,
+      $flag->global ? t('Yes') : t('No'),
+    );
+  }
+  return theme('table', $headers, $rows);
+}
+
+function _flag_rules_flags_options($flag_type = NULL) {
+  $flags = flag_get_flags();
+  $options = array();
+  foreach ($flags as $flag) {
+    if (!isset($flag_type) || $flag->content_type == $flag_type) {
+      $options[$flag->name] = $flag->get_title();
+    }
+  }
+  return $options;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.token.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.token.inc
new file mode 100644
index 0000000..baae149
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.token.inc
@@ -0,0 +1,128 @@
+<?php
+
+/**
+ * @file
+ * Flag module tokens support.
+ */
+
+/**
+ * Implementation of hook_token_list().
+ */
+function flag_token_list($type = 'all') {
+  $tokens = array();
+  if ($type == 'flag' || $type == 'all') {
+    $tokens['flag']['flag-name'] = t('The flag name.');
+    $tokens['flag']['flag-title'] = t('The flag title.');
+  }
+  if ($type == 'flag-action' || $type == 'all') {
+    $tokens['flag-action']['flag-action'] = t('The flagging action taking place.');
+    $tokens['flag-action']['flag-content-url'] = t('The URL of the content being flagged.');
+    $tokens['flag-action']['flag-content-title'] = t('The title of the content being flagged.');
+    $tokens['flag-action']['flag-content-type'] = t('The type of content being flagged, such as <em>node</em> or <em>comment</em>.');
+    $tokens['flag-action']['flag-content-id'] = t('The ID of content being flagged, may be a nid or cid.');
+    $tokens['flag-action']['flag-count'] = t('The current count total for this flag.');
+  }
+  foreach (flag_get_types() as $flag_type) {
+    if ($type == $flag_type || $type == 'all') {
+      $flags = flag_get_flags($flag_type);
+      foreach ($flags as $flag) {
+        $tokens[$flag_type]['flag-'. str_replace('_', '-', $flag->name) .'-count'] = t('Total flag count for flag @flag', array('@flag' => $flag->get_title()));
+        $tokens[$flag_type]['flag-'. str_replace('_', '-', $flag->name) .'-link'] = t('Flag/unflag link for @flag', array('@flag' => $flag->get_title()));
+      }
+    }
+  }
+  return $tokens;
+}
+
+/**
+ * Implementation of hook_token_values().
+ */
+function flag_token_values($type, $object = NULL) {
+  $values = array();
+  if ($type == 'flag') {
+    $values['flag-name'] = check_plain($object->name);
+    $values['flag-title'] = check_plain($object->get_title());
+  }
+  elseif ($type == 'flag-action') {
+    $values['flag-action'] = $object->action;
+    $values['flag-content-url'] = check_url($object->content_url);
+    $values['flag-content-title'] = check_plain($object->content_title);
+    $values['flag-content-type'] = $object->content_type;
+    $values['flag-content-id'] = $object->content_id;
+    $values['flag-count'] = $object->count;
+  }
+  if (in_array($type, flag_get_types())) {
+    $flags = flag_get_flags($type);
+    foreach ($flags as $flag) {
+      $values['flag-'. str_replace('_', '-', $flag->name) .'-count'] = $flag->get_count($flag->get_content_id($object));
+      $values['flag-'. str_replace('_', '-', $flag->name) .'-link'] = flag_create_link($flag->name, $flag->get_content_id($object));
+    }
+  }
+  return $values;
+}
+
+/**
+ * This is a replacement for Token's theme_token_help().
+ *
+ * This is a duplicate of the Token's function, but with a small modification:
+ * the $type parameter is now $types, allowing for listing tokens from several
+ * categories.
+ *
+ * @todo Incorporate this feature into the Token module(?)
+ */
+function theme_flag_tokens_browser($types = array('all'), $prefix = '[', $suffix = ']') {
+  token_include();
+  $tokens = flag_token_get_list($types);
+
+  $header = array(t('Token'), t('Replacement value'));
+  $rows = array();
+  foreach ($tokens as $key => $category) {
+    $rows[] = array(array('data' => drupal_ucfirst($key) . ' ' . t('tokens'), 'class' => 'region', 'colspan' => 2));
+    foreach ($category as $token => $description) {
+      $row = array();
+      $row[] = $prefix . $token . $suffix;
+      $row[] = $description;
+      $rows[] = $row;
+    }
+  }
+
+  $output = theme('table', $header, $rows, array('class' => 'description'));
+  return $output;
+}
+
+/**
+ * This is a replacement for Token's token_get_list().
+ *
+ * It is used only by theme_flag_tokens_browser(), above.
+ *
+ * This is a duplicate of the Token's function, but with a small modification:
+ * the $type parameter is now $types, allowing for listing tokens from several
+ * categories.
+ *
+ * @todo Incorporate this feature into the Token module(?)
+ */
+function flag_token_get_list($types = array('all')) {
+  token_include();
+  $return = array();
+  foreach ($types as $type) {
+    foreach (module_implements('token_list') as $module) {
+      $function = $module .'_token_list';
+      $result = $function($type);
+      if (is_array($result)) {
+        foreach ($result as $category => $tokens) {
+          foreach ($tokens as $token => $title) {
+            $return[$category][$token] = $title;
+          }
+        }
+      }
+    }
+  }
+  // For aesthetic reasons, we don't want the 'global' section to appear in
+  // varying places, so let's move it to the bottom.
+  if (isset($return['global'])) {
+    $global = $return['global'];
+    unset($return['global']);
+    $return['global'] = $global;
+  }
+  return $return;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views.inc
new file mode 100644
index 0000000..f587e71
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views.inc
@@ -0,0 +1,293 @@
+<?php
+
+/**
+ * @file
+ * Provides support for the Views module.
+ */
+
+/**
+ * Implements hook_views_handlers().
+ */
+function flag_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'flag') . '/includes',
+    ),
+    'handlers' => array(
+      'flag_handler_relationship_content' => array(
+        'parent' => 'views_handler_relationship',
+        'file' => 'flag_handler_relationships.inc',
+      ),
+      'flag_handler_relationship_counts' => array(
+        'parent' => 'views_handler_relationship',
+        'file' => 'flag_handler_relationships.inc',
+      ),
+      'flag_handler_relationship_user_content' => array(
+        'parent' => 'views_handler_relationship',
+        'file' => 'flag_handler_relationships.inc',
+      ),
+      'flag_handler_field_ops' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'flag_handler_filter_flagged' => array(
+        'parent' => 'views_handler_filter_boolean_operator',
+      ),
+      'flag_handler_argument_content_id' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implements hook_views_plugins().
+ */
+function flag_views_plugins() {
+  return array(
+    'argument validator' => array(
+      'flag_flaggable_node' => array(
+        'title' => t('Flaggable node'),
+        'flag type' => 'node',
+        'handler' => 'flag_plugin_argument_validate_flaggability',
+        'path' => drupal_get_path('module', 'flag') . '/includes',
+      ),
+      'flag_flaggable_user' => array(
+        'title' => t('Flaggable user'),
+        'flag type' => 'user',
+        'handler' => 'flag_plugin_argument_validate_flaggability',
+        'path' => drupal_get_path('module', 'flag') . '/includes',
+      ),
+      // A comment validator won't be very useful. Moreover, having it will
+      // contribute to the argument object's $options polution, so let's skip
+      // it.
+      'flag_plugin_owner_perm' => array(
+        'title' => t("Current user ID matches argument value"),
+        'handler' => 'flag_plugin_validate_user',
+        'parent' => 'user',
+        'path' => drupal_get_path('module', 'flag') . '/includes',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implements hook_views_data().
+ */
+function flag_views_data() {
+  $data = array();
+
+  $data['flag_content']['table']['group'] = t('Flags');
+  $data['flag_counts']['table']['group'] = t('Flags');
+
+  $data['flag_content']['uid'] = array(
+    'title' => t('User uid'),
+    'help' => t('The user that flagged an item. If you need more fields than the uid add the "Flags: User" relationship.'),
+    'relationship' => array(
+      'base' => 'users',
+      'title' => t('User'),
+      'help' => t('Relate an item to the user that flagged it.'),
+      'handler' => 'views_handler_relationship',
+      'label' => t('Flag user'),
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_user_name',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+    ),
+    'field' => array(
+      'handler' => 'views_handler_field_user',
+    ),
+  );
+
+  $data['flag_content']['timestamp'] = array(
+    'title' => t('Flagged time'),
+    'help' => t('Display the time the content was flagged by a user.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_date',
+    ),
+  );
+
+  // Argument for content ID, used for "Who's flagged this" views.
+  $data['flag_content']['content_id'] = array(
+    'title' => t('Content ID'),
+    'help' => t('The unique ID of the object that has been flagged.'),
+    'argument' => array(
+      'handler' => 'flag_handler_argument_content_id',
+    ),
+  );
+
+  // Specialized is null/is not null filter.
+  $data['flag_content']['flagged'] = array(
+    'title' => t('Flagged'),
+    'help' => t('Filter to ensure content has or has not been flagged.'),
+    'real field' => 'uid',
+    'filter' => array(
+      'handler' => 'flag_handler_filter_flagged',
+      'label' => t('Flagged'),
+    ),
+  );
+
+  // Flag content links.
+  $data['flag_content']['ops'] = array(
+    'title' => t('Flag link'),
+    'help' => t('Display flag/unflag link.'),
+    'field' => array(
+      'handler' => 'flag_handler_field_ops',
+    ),
+  );
+
+  $data['flag_counts']['count'] = array(
+    'title' => t('Flag counter'),
+    'help' => t('The number of times a piece of content is flagged by any user.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+    ),
+  );
+
+  $data['flag_counts']['last_updated'] = array(
+    'title' => t('Time last flagged'),
+    'help' => t('The time a piece of content was most recently flagged by any user.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_date',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Implements hook_views_data_alter().
+ */
+function flag_views_data_alter(&$data) {
+
+  foreach (array_keys(flag_fetch_definition()) as $flag_type) {
+    $flag = flag_flag::factory_by_content_type($flag_type);
+    $info = $flag->get_views_info();
+
+    if (!empty($info['join field'])) {
+      // Add the flag relationship.
+      $data[$info['views table']]['flag_content_rel'] = array(
+        'group' => t('Flags'),
+        'title' => $info['title'],
+        'help' => $info['help'],
+        'relationship' => array(
+          'flag type' => $flag_type,
+          'handler' => 'flag_handler_relationship_content',
+          'label' => t('flag'),
+          'base' => 'flag_content',
+          'base field' => 'content_id',
+          'relationship field' => $info['join field'],
+        ),
+      );
+
+      // Add the flag counter relationship.
+      $data[$info['views table']]['flag_count_rel'] = array(
+        'group' => t('Flags'),
+        'title' => $info['counter title'],
+        'help' => $info['counter help'],
+        'relationship' => array(
+          'flag type' => $flag_type,
+          'handler' => 'flag_handler_relationship_counts',
+          'label' => t('counter'),
+          'base' => 'flag_counts',
+          'base field' => 'content_id',
+          'relationship field' => $info['join field'],
+        ),
+      );
+    }
+  }
+
+  // Add a relationship for the user that flagged any type of content.
+  $data['users']['flag_user_content_rel'] = array(
+    'group' => t('Flags'),
+    'title' => t("User's flagged content"),
+    'help' => t('Limit results to users that have flagged certain content.'),
+    'relationship' => array(
+      'base' => 'flag_content',
+      'base field' => 'uid',
+      'relationship field' => 'uid',
+      'handler' => 'flag_handler_relationship_user_content',
+      'label' => t('user flagged content'),
+    ),
+  );
+}
+
+/**
+ * Implements hook_views_query_substitutions().
+ *
+ * Allow replacement of current user's session id so we can cache these queries.
+ */
+function flag_views_query_substitutions() {
+  return array(
+    '***FLAG_CURRENT_USER_SID***' => flag_get_sid(),
+  );
+}
+/**
+ * A helper function that creates a radio list of available flags.
+ *
+ * This function is used to select the desired flag when setting up flag
+ * relationships and fields.
+ */
+function flag_views_flag_config_form($form_type, $content_type, $current_flag) {
+  $flags = flag_get_flags($content_type);
+
+  $options = array();
+  foreach ($flags as $flag) {
+    $options[$flag->name] = $flag->get_title();
+  }
+
+  $form = array(
+    '#type' => $form_type,
+    '#title' => t('Flag'),
+    '#options' => $options,
+    '#default_value' => $current_flag,
+    '#required' => TRUE,
+  );
+
+  return $form;
+}
+
+/**
+ * Helper function that gets the first defined flag and returns its name.
+ */
+function flag_views_flag_default($content_type) {
+  static $default_flag = array();
+
+  if (!array_key_exists($content_type, $default_flag)) {
+    $flag = array_shift(flag_get_flags($content_type));
+    $default_flag[$content_type] = $flag ? $flag->name : NULL;
+  }
+
+  return $default_flag[$content_type];
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_bookmark.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_bookmark.inc
new file mode 100644
index 0000000..894c006
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_bookmark.inc
@@ -0,0 +1,313 @@
+<?php
+
+/**
+ * @file
+ * Upgrade code to migrate from Views bookmark to Flag module.
+ */
+
+/**
+ * Determine if Views Bookmark needs to be updated.
+ */
+function flag_views_bookmark_update_needed() {
+  return db_table_exists('views_bookmarks');
+}
+
+/**
+ * Perform all pieces of the update.
+ */
+function flag_views_bookmark_update() {
+  drupal_set_message(t('Migrating Views Bookmark to Flag module. More information about the changes between Views Bookmark and Flag may be found on the <a href="http://drupal.org/node/268269">upgrading handbook page</a>.'));
+
+  // Update Views Bookmark and Remove current Flag tables.
+  flag_views_bookmark_update_prepare();
+  // Migrate the tables.
+  flag_views_bookmark_update_tables();
+  // Uninstall Views Bookmark.
+  flag_views_bookmark_update_uninstall();
+  // Update views.
+  // In Drupal 6, this is handled in flag.views_convert.inc.
+
+  drupal_set_message(t('The Flag module has been installed, replacing Views Bookmark. Views Bookmark has been disabled, please remove it from your installation.'));
+}
+
+/**
+ * Prepare for the Views Bookmark to Flag migration.
+ *
+ * Uninstall Flag module if needed.
+ * Bring Views Bookmark up to the latest schema.
+ */
+function flag_views_bookmark_update_prepare() {
+  // Ensure the Flag tables are not installed.
+  if (db_table_exists('flags')) {
+    // Remove Flag tables if already present.
+    flag_uninstall();
+  }
+
+  // Update Views Bookmark to the latest schema.
+  $vb_schema = drupal_get_installed_schema_version('views_bookmark');
+  $ret = array();
+  if (!empty($vb_schema) && $vb_schema <= 5102) {
+    for ($version = $vb_schema + 1; $version <= 5102; $version++) {
+      $update_function = 'flag_views_bookmark_update_'. $version;
+      if (function_exists($update_function)) {
+        $ret += $update_function();
+      }
+    }
+  }
+
+}
+
+/**
+ * Update Views Bookmark to the Flag schema.
+ */
+function flag_views_bookmark_update_tables() {
+  include_once './includes/install.inc';
+
+  $ret = array();
+
+  // Drop all keys.
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP PRIMARY KEY");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodes} DROP PRIMARY KEY");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_node_count} DROP PRIMARY KEY");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodetypes} DROP PRIMARY KEY");
+
+  // Rename columns.
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_node_count} CHANGE COLUMN vbid fid smallint unsigned NOT NULL default '0'");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_node_count} CHANGE COLUMN nid content_id int unsigned NOT NULL default '0'");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodes} CHANGE COLUMN vbid fid smallint unsigned NOT NULL default '0'");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodes} CHANGE COLUMN nid content_id int unsigned NOT NULL default '0'");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodes} CHANGE COLUMN uid uid int unsigned NOT NULL default '0' AFTER content_id");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodetypes} CHANGE COLUMN vbid fid smallint unsigned NOT NULL default '0'");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodetypes} CHANGE COLUMN type type varchar(32) NOT NULL default ''");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} CHANGE COLUMN vbid fid smallint unsigned NOT NULL default '0'");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} CHANGE COLUMN global global tinyint default 0");
+
+  // Add columns.
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_node_count} ADD content_type varchar(32) default '' AFTER fid");
+  $ret[] = update_sql("ALTER TABLE {views_bookmark_nodes} ADD content_type varchar(32) default '' AFTER fid");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} ADD content_type varchar(32) default '' AFTER fid");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} ADD name varchar(32) default '' AFTER content_type");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} ADD options text default NULL");
+
+  // Move options.
+  $result = db_query("SELECT * FROM {views_bookmarks}");
+  while ($bookmark = db_fetch_object($result)) {
+    $options = array(
+      'flag_short' => $bookmark->mark,
+      'flag_long' => $bookmark->mark_long,
+      'flag_message' => $bookmark->mark_message,
+      'unflag_short' => $bookmark->unmark,
+      'unflag_long' => $bookmark->unmark_long,
+      'unflag_message' => $bookmark->unmark_message,
+      'show_on_form' => $bookmark->show_on_form,
+      'show_on_teaser' => $bookmark->teaser,
+      'show_on_page' => 1,
+    );
+    db_query("UPDATE {views_bookmarks} SET options = '%s' WHERE fid = %d", serialize($options), $bookmark->fid);
+  }
+
+  // Delete columns.
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN mark");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN mark_long");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN mark_message");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN unmark");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN unmark_long");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN unmark_message");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN show_on_form");
+  $ret[] = update_sql("ALTER TABLE {views_bookmarks} DROP COLUMN teaser");
+
+  // Rename all tables.
+  $ret[] = update_sql("RENAME TABLE {views_bookmarks} TO {flags}");
+  $ret[] = update_sql("RENAME TABLE {views_bookmark_nodes} TO {flag_content}");
+  $ret[] = update_sql("RENAME TABLE {views_bookmark_node_count} TO {flag_counts}");
+  $ret[] = update_sql("RENAME TABLE {views_bookmark_nodetypes} TO {flag_types}");
+
+  // Set defaults.
+  $ret[] = update_sql("UPDATE {flag_content} SET content_type = 'node'");
+  $ret[] = update_sql("UPDATE {flag_counts} SET content_type = 'node'");
+  $ret[] = update_sql("UPDATE {flags} SET content_type = 'node'");
+
+  // Create primary keys.
+  $ret[] = update_sql("ALTER TABLE {flags} ADD PRIMARY KEY (fid)");
+  $ret[] = update_sql("ALTER TABLE {flag_types} ADD INDEX (fid)");
+  $ret[] = update_sql("ALTER TABLE {flag_counts} ADD PRIMARY KEY (fid, content_type, content_id)");
+  $ret[] = update_sql("ALTER TABLE {flag_content} ADD fcid int unsigned NOT NULL auto_increment FIRST, ADD PRIMARY KEY (fcid)");
+  $ret[] = update_sql("ALTER TABLE {flag_content} ADD UNIQUE INDEX fid_content_type_content_id_uid (fid, content_type, content_id, uid)");
+  $ret[] = update_sql("ALTER TABLE {flag_content} ADD INDEX content_type_content_id (content_type, content_id)");
+  $ret[] = update_sql("ALTER TABLE {flag_content} ADD INDEX content_type_uid (content_type, uid)");
+
+  // Change fid to a serial column.
+  $ret[] = update_sql("ALTER TABLE {flags} DROP PRIMARY KEY");
+  $ret[] = update_sql("ALTER TABLE {flags} CHANGE COLUMN fid fid int(10) unsigned NOT NULL auto_increment, ADD PRIMARY KEY (fid)");
+
+  // Give each flag a "name" attribute.
+  $result = db_query("SELECT fid, title FROM {flags}");
+  while ($row = db_fetch_object($result)) {
+    $name = substr(preg_replace('/[^a-z_]/', '', str_replace(' ', '_', drupal_strtolower(trim($row->title)))), 0, 32);
+    $ret[] = update_sql("UPDATE {flags} SET name = '". $name ."' WHERE fid = ". $row->fid);
+    drupal_set_message(t('The views bookmark %bookmark has been migrated to Flag. It was given the machine-name %name, which you may change on the <a href="!url">%bookmark configuration form</a>.', array('%bookmark' => $row->title, '%name' => $name, '!url' => url('admin/build/flags/edit/'. $name))));
+  }
+  // The key for flag name must be added after giving names.
+  $ret[] = update_sql("ALTER TABLE {flags} ADD UNIQUE KEY (name)");
+
+  return $ret;
+}
+
+/**
+ * Finishing tasks.
+ */
+function flag_views_bookmark_update_uninstall() {
+  // Uninstall Views Bookmark.
+  module_disable(array('views_bookmark'));
+  drupal_set_installed_schema_version('views_bookmark', SCHEMA_UNINSTALLED);
+}
+
+if (!function_exists('update_sql')) {
+  function update_sql($sql) {
+    $result = db_query($sql);
+    return array('success' => $result !== FALSE, 'query' => check_plain($sql));
+  }
+}
+
+/**
+ * Replace keys with primary keys.
+ */
+function flag_views_bookmark_update_1() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {views_bookmarks} DROP INDEX vbid');
+      $ret[] = update_sql('ALTER TABLE {views_bookmarks} ADD PRIMARY KEY (vbid)');
+      $ret[] = update_sql('ALTER TABLE {views_bookmark_nodes} DROP INDEX nid');
+      $ret[] = update_sql('ALTER TABLE {views_bookmark_nodes} ADD PRIMARY KEY (vbid, uid, nid)');
+      $ret[] = update_sql('ALTER TABLE {views_bookmark_nodetypes} ADD PRIMARY KEY (vbid, type)');
+    break;
+  }
+  return $ret;
+}
+
+/*
+ * Add count table if it doesn't exist.
+ */
+function flag_views_bookmark_update_2() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+    $ret[] = update_sql("CREATE TABLE if not exists {views_bookmark_node_count} (
+                  vbid int(10) unsigned NOT NULL default '0',
+                  nid int(10) unsigned NOT NULL default '0',
+                  count int(10) unsigned NOT NULL default '0',
+                  PRIMARY KEY (vbid, nid)
+                  ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      break;
+  }
+  return $ret;
+}
+
+function flag_views_bookmark_update_3() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $result = db_query('SELECT vbid, nid, count(uid) as count FROM {views_bookmark_nodes} GROUP BY vbid, nid');
+      while ($row = db_fetch_object($result)) {
+        $ret[] = update_sql("INSERT INTO {views_bookmark_node_count} VALUES ($row->vbid, $row->nid, $row->count)");
+      }
+      break;
+  }
+  return $ret;
+}
+
+function flag_views_bookmark_update_4() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {views_bookmarks} ADD show_on_form int(1) unsigned NOT NULL default '0'");
+      break;
+  }
+  return $ret;
+}
+
+/*
+ * Add a column to track last added timestamp
+ */
+function flag_views_bookmark_update_5() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $timestamp = time();
+      $ret[] = update_sql("ALTER TABLE {views_bookmark_nodes} ADD timestamp int(11) unsigned NOT NULL default '0'");
+      $ret[] = update_sql("UPDATE {views_bookmark_nodes} SET timestamp = $timestamp WHERE timestamp = 0");
+      break;
+  }
+  return $ret;
+}
+
+/**
+ * Add columns for configurable messages.
+ */
+function flag_views_bookmark_update_6() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {views_bookmarks} ADD mark_message varchar(255) default '' AFTER mark_long");
+      $ret[] = update_sql("ALTER TABLE {views_bookmarks} ADD unmark_message varchar(255) default '' AFTER unmark_long");
+      break;
+  }
+  return $ret;
+}
+
+/**
+ * Add the current user filter to every view using flag filters.
+ * Previously this was implied with all filters, now it is optional to increase
+ * the flexibility of flag.
+ *
+ * For some reason Flag began providing a Node: Node ID argument in
+ * the 5.x port. Because this argument should be handled by Views' own node.inc
+ * file, update existing arguments to use that one instead.
+ */
+function flag_views_bookmark_update_7() {
+  // Code from "Views Bookmark" for Drupal 5, which uses Views 1.x API, removed.
+  return array();
+}
+
+function flag_views_bookmark_update_5100() {
+  // (code moved to 5101.)
+  return array();
+}
+
+/**
+ * Update all views that use the 'views_bookmark_nodes_N.uid' field to use
+ * the 'views_bookmark_users_N.name' one. See http://drupal.org/node/211112
+ *
+ * Update all views that use the 'views_bookmark_nodes_N.vbid' field to use
+ * the 'views_bookmark_ops_N.ops' one. See http://drupal.org/node/213488
+ */
+function flag_views_bookmark_update_5101() {
+  // Code from "Views Bookmark" for Drupal 5, which uses Views 1.x API, removed.
+  return array();
+}
+
+/**
+ * Handle issues http://drupal.org/node/218766 and http://drupal.org/node/219146
+ */
+function flag_views_bookmark_update_5102() {
+  // Because of a certain FAPI trait, when the admin didn't selected any
+  // roles on the bookmark configuration form it's as if he selected the
+  // 'anonymous role'. We clear this bogus selection.
+  //
+  // (Note: update_sql() doesn't support %placeholders, so we embed the value
+  //  directly.)
+  $ret[] = update_sql("UPDATE {views_bookmarks} SET roles = '' WHERE roles = '". DRUPAL_ANONYMOUS_RID ."'");
+
+  // We're now making the 'roles' field a required one. If no roles were
+  // previously selected, we assign this bookmark to all authenticated users.
+  $ret[] = update_sql("UPDATE {views_bookmarks} SET roles = '". DRUPAL_AUTHENTICATED_RID ."' WHERE roles = ''");
+
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_convert.inc
new file mode 100644
index 0000000..d7e0d07
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_convert.inc
@@ -0,0 +1,235 @@
+<?php
+
+/**
+ * @file
+ * Update Views 1 views provided by both views_bookmark and flag modules.
+ */
+
+/**
+ * Implements hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function flag_views_convert($display, $type, &$view, $field, $id) {
+  static $flag_name;
+
+  // First, replace any sign of views_bookmark with flag's Views 1 equivelant.
+  $key_search = array(
+    '^views_bookmark_ops_([0-9]+)' => 'flag_ops_',
+    '^views_bookmark_nodes_([0-9]+)' => 'flag_content_',
+    '^views_bookmark_users_([0-9]+)' => 'flag_users_',
+    '^views_bookmark_node_count_([0-9]+)' => 'flag_counts_',
+  );
+  foreach ($field as $property => $value) {
+    foreach ($key_search as $search => $replace) {
+      if (!empty($value) && is_string($value) && preg_match('/' . $search . '/', $value, $matches)) {
+        $flag = flag_get_flag(NULL, $matches[1]);
+        $replace = $replace . $flag->name;
+        $field[$property] = preg_replace('/' . $search . '/', $replace, $value);
+      }
+    }
+  }
+
+  // Create a table/field identifier for this field.
+  foreach (array('flag_ops_', 'flag_content_', 'flag_users_', 'flag_counts_') as $table) {
+    if (strpos($field['tablename'], $table) === 0) {
+      $name = str_replace($table, '', $field['tablename']);
+      if (!empty($name) && !isset($flag_name)) {
+        $flag_name = $name;
+      }
+    }
+  }
+
+  // Now update values, options, etc. to those selected in the imported view.
+  switch ($type) {
+    case 'field':
+      switch ($id) {
+        case 'ops':
+          $new_field = array(
+            'label' => $field['label'],
+            'id' => 'ops',
+            'table' => 'flag_content',
+            'field' => 'ops',
+            'relationship' => 'flag_content_rel',
+          );
+          $new_rel = 'flag_content_rel';
+          $flag_content_rel_user = 'current';
+          break;
+        case 'count':
+          $new_field = array(
+            'label' => $field['label'],
+            'id' => 'count',
+            'table' => 'flag_counts',
+            'field' => 'count',
+            'relationship' => 'flag_counts_rel',
+          );
+          $new_rel = 'flag_counts_rel';
+          break;
+        case 'name':
+          $new_field = array(
+            'label' => $field['label'],
+            'link_to_user' => 1,
+            'id' => 'name',
+            'table' => 'users',
+            'field' => 'name',
+            'relationship' => 'uid',
+          );
+          $new_rel = 'uid';
+          break;
+      }
+      break;
+
+    case 'filter':
+    case 'exposed_filter':
+      switch ($id) {
+        case 'uid':
+          // The flag_content uid filter means "Include content only flagged by
+          // the current user". In D6, this is no longer a filter, but instead
+          // part of the relationship. Make the relationship join on the uid.
+          if ($field['value'] == '***CURRENT_USER***') {
+            $new_rel = 'flag_content_rel';
+            $flag_content_rel_user = 'current';
+          }
+          // Remove the old filter.
+          $view->set_item('default', $type, $id, NULL);
+          break;
+        case 'timestamp':
+          $new_field = array(
+            'operator' => $field['operator'],
+            'value' => flag_views_convert_timestamp_value($field['value']),
+            'group' => 0,
+            'id' => 'timestamp',
+            'table' => 'flag_content',
+            'field' => 'timestamp',
+            'relationship' => 'flag_content_rel',
+            'exposed' => $type == 'exposed_filter' ? 1 : 0,
+          );
+          $new_rel = 'flag_content_rel';
+          drupal_set_message(t('Flag is not able to convert the <em>Flagged time</em> filter. It\'s value is currently empty, but needs to be populated to work properly.'), 'warning');
+          break;
+        case 'count':
+          $new_field = array(
+            'operator' => $field['operator'],
+            'value' => array('value' => $field['value']),
+            'group' => 0,
+            'id' => 'count',
+            'table' => 'flag_counts',
+            'field' => 'count',
+            'relationship' => 'flag_counts_rel',
+            'exposed' => $type == 'exposed_filter' ? 1 : 0,
+          );
+          $new_rel = 'flag_counts_rel';
+          break;
+      }
+      break;
+
+    case 'argument':
+      // Flag in Drupal 5 only provides one argument, and in Views 1 arguments
+      // weren't given and ID, so we use the field type.
+      if (strpos($field['type'], 'flag_content_') === 0) {
+        $new_field = array(
+          'id' => 'uid',
+          'table' => 'users',
+          'field' => 'uid',
+          'relationship' => 'uid',
+        );
+        $new_rel = 'uid';
+      }
+      break;
+
+    case 'sort':
+      switch ($id) {
+        case 'count':
+          $new_field = array(
+            'order' => $field['sortorder'],
+            'id' => 'count',
+            'table' => 'flag_counts',
+            'field' => 'count',
+            'relationship' => 'flag_counts_rel',
+          );
+          $new_rel = 'flag_counts_rel';
+          break;
+        case 'timestamp':
+          $new_field = array(
+            'order' => $field['sortorder'],
+            'id' => 'timestamp',
+            'table' => 'flag_content',
+            'field' => 'timestamp',
+            'relationship' => 'flag_content_rel',
+          );
+          $new_rel = 'flag_content_rel';
+          break;
+      }
+      break;
+  }
+
+  // Add any new fields.
+  if (isset($new_field)) {
+    // Exposed filters are now wrapped into filters.
+    $type = $type == 'exposed_filter' ? 'filter' : $type;
+    // Update the type in the view options.
+    $view->set_item('default', $type, $id, $new_field);
+  }
+
+  // Add any new relationships (but only once per view).
+  if (isset($new_rel) && !isset($view->display[$display]->display_options['relationships'][$new_rel])) {
+    if ($new_rel == 'flag_content_rel') {
+      $view->display[$display]->display_options['relationships'][$new_rel] = array(
+        'label' => $flag_name,
+        'required' => 1,
+        'flag' => $flag_name,
+        'user_scope' => 'any',
+        'id' => 'flag_content_rel',
+        'table' => 'node',
+        'field' => 'flag_content_rel',
+        'relationship' => 'none',
+      );
+    }
+    elseif ($new_rel == 'flag_counts_rel') {
+      $view->display[$display]->display_options['relationships'][$new_rel] = array(
+        'label' => $flag_name . ' counts',
+        'required' => 0,
+        'flag' => $flag_name,
+        'id' => 'flag_counts_rel',
+        'table' => 'node',
+        'field' => 'flag_counts_rel',
+        'relationship' => 'none',
+      );
+    }
+    elseif ($new_rel == 'uid') {
+      $view->display[$display]->display_options['relationships'][$new_rel] = array(
+        'label' => isset($flag_name) ? $flag_name . ' user' : 'user',
+        'required' => 0,
+        'id' => 'uid',
+        'table' => 'flag_content',
+        'field' => 'uid',
+        'relationship' => 'flag_content_rel',
+      );
+    }
+  }
+
+  // Modify relationships if needed.
+  if (isset($flag_content_rel_user) && isset($view->display[$display]->display_options['relationships']['flag_content_rel'])) {
+    $view->display[$display]->display_options['relationships']['flag_content_rel']['user_scope'] = 'current';
+  }
+}
+
+/**
+ * In Views 1, dates were simply stored as a single string. In Views 2, the
+ * value is stored as an array of options.
+ */
+function flag_views_convert_timestamp_value($value) {
+  $type = 'date';
+  if (stripos($value, 'now') !== FALSE) {
+    $type = 'offset';
+    $value = trim(str_ireplace('now', '', $value));
+  }
+  return array(
+    'type' => $type,
+    'value' => $value,
+    'min' => '',
+    'max' => '',
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_default.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_default.inc
new file mode 100644
index 0000000..fe870f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag.views_default.inc
@@ -0,0 +1,289 @@
+<?php
+
+/**
+ * @file
+ * Provides support for the Views module.
+ */
+
+/**
+ * Implements hook_views_default_views().
+ */
+function flag_views_default_views() {
+  // Only setup views for the "bookmarks" flag.
+  // If it's been deleted, don't create any views.
+  $flag = flag_get_flag('bookmarks');
+  if (!$flag) {
+    return array();
+  }
+
+  // Set up properties that are used for both views.
+  $fields = array(
+    'type' => array(
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'label' => 'Type',
+    ),
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => 'Title',
+      'link_to_node' => 1,
+    ),
+    'name' => array(
+      'label' => 'Author',
+      'link_to_user' => 1,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'relationship' => 'uid_1',
+    ),
+  );
+
+  $style_options = array(
+    'grouping' => '',
+    'override' => 0,
+    'sticky' => 1,
+    'columns' => array(),
+    'default' => 'title',
+    'order' => 'asc',
+    'columns' => array(
+      'type' => 'type',
+      'title' => 'title',
+      'name' => 'name',
+    ),
+    'info' => array(
+      'type' => array(
+        'sortable' => TRUE,
+      ),
+      'title' => array(
+        'sortable' => TRUE,
+      ),
+      'name' => array(
+        'sortable' => TRUE,
+      ),
+    ),
+    'override' => FALSE,
+    'order' => 'asc',
+  );
+
+  $filters = array(
+    'status' => array(
+      'operator' => '=',
+      'value' => 1,
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'relationship' => 'none',
+    ),
+  );
+
+  $relationships = array(
+    'flag_content_rel' => array(
+      'label' => 'bookmarks',
+      'required' => 1,
+      'flag' => 'bookmarks',
+      'user_scope' => 'current',
+      'id' => 'flag_content_rel',
+      'table' => 'node',
+      'field' => 'flag_content_rel',
+      'relationship' => 'none',
+      'override' => array(
+        'button' => 'Override',
+      ),
+    ),
+    'uid_1' => array(
+      'label' => 'author',
+      'required' => 0,
+      'id' => 'uid_1',
+      'table' => 'node',
+      'field' => 'uid',
+    ),
+  );
+
+  $access = array(
+    'type' => 'role',
+    'role' => drupal_map_assoc($flag->roles['flag']),
+    'perm' => '',
+  );
+
+  // Additional fields and style options if comment exists.
+  if (module_exists('comment')) {
+    $fields += array(
+      'comment_count' => array(
+        'id' => 'comment_count',
+        'table' => 'node_comment_statistics',
+        'field' => 'comment_count',
+        'label' => 'Replies',
+      ),
+      'last_comment_timestamp' => array(
+        'id' => 'last_comment_timestamp',
+        'table' => 'node_comment_statistics',
+        'field' => 'last_comment_timestamp',
+        'label' => 'Last Post',
+      ),
+    );
+
+    $style_options['default'] = 'last_comment_timestamp';
+    $style_options['order'] = 'desc';
+    $style_options['info'] += array(
+      'comment_count' => array(
+        'sortable' => TRUE,
+      ),
+      'last_comment_timestamp' => array(
+        'sortable' => TRUE,
+      ),
+    );
+    $style_options['columns'] += array(
+      'comment_count' => 'comment_count',
+      'last_comment_timestamp' => 'last_comment_timestamp',
+    );
+  }
+
+  $views = array();
+
+  /* Individual users user/%/bookmarks tab. */
+
+  // Additional relationship for this view.
+  $relationships_tab = $relationships;
+  $relationships_tab['flag_content_rel']['user_scope'] = 'any';
+  $relationships_tab += array(
+    'uid' => array(
+      'label' => 'bookmarks_user',
+      'required' => 1,
+      'id' => 'uid',
+      'table' => 'flag_content',
+      'field' => 'uid',
+      'relationship' => 'flag_content_rel',
+    ),
+  );
+
+  // Additional argument for this view.
+  $arguments_tab = array(
+    'uid' => array(
+      'default_action' => 'empty',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'exception' => array(
+        'value' => '',
+      ),
+      'title' => '%1\'s bookmarks',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'flag_plugin_owner_perm',
+      'validate_fail' => 'not found',
+      'break_phrase' => 0,
+      'not' => 0,
+      'id' => 'uid',
+      'table' => 'users',
+      'field' => 'uid',
+      'override' => array(
+        'button' => 'Override',
+      ),
+      'relationship' => 'uid',
+      'default_options_div_prefix' => '',
+      'default_argument_user' => 0,
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_user_argument_type' => 'uid',
+    ),
+  );
+
+  $view = new view;
+  $view->name = 'flag_bookmarks_tab';
+  $view->description = 'Provides a tab on all user\'s profile pages containing bookmarks for that user.';
+  $view->tag = 'flag';
+  $view->view_php = '';
+  $view->base_table = 'node';
+  $view->is_cacheable = FALSE;
+  $view->api_version = 2;
+  $view->disabled = FALSE;
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', $relationships_tab);
+  $handler->override_option('fields', $fields);
+  $handler->override_option('arguments', $arguments_tab);
+  $handler->override_option('filters', $filters);
+  $handler->override_option('access', $access);
+  $handler->override_option('title', 'User bookmarks');
+  $handler->override_option('empty', 'This user has not yet bookmarked any content.');
+  $handler->override_option('empty_format', FILTER_FORMAT_DEFAULT);
+  $handler->override_option('items_per_page', '25');
+  $handler->override_option('use_pager', TRUE);
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', $style_options);
+
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'user/%/bookmarks');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Bookmarks',
+    'weight' => '0',
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => NULL,
+    'weight' => NULL,
+  ));
+
+  $views[$view->name] = $view;
+
+  /* User bookmarks page with Ops. */
+
+  // Add some unique options for this view.
+  $style_options['columns'] += array('ops' => 'ops');
+  $fields += array(
+    'ops' => array(
+      'label' => 'Ops',
+      'id' => 'ops',
+      'table' => 'flag_content',
+      'field' => 'ops',
+      'relationship' => 'flag_content_rel',
+    ),
+  );
+
+  $view = new view;
+  $view->name = 'flag_' . $flag->name;
+  $view->description = 'A page listing the current user\'s bookmarks at /bookmarks.';
+  $view->tag = 'flag';
+  $view->view_php = '';
+  $view->base_table = 'node';
+  $view->is_cacheable = '0';
+  $view->api_version = 2;
+  $view->disabled = FALSE;
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', $relationships);
+  $handler->override_option('fields', $fields);
+  $handler->override_option('filters', $filters);
+  $handler->override_option('access', $access);
+  $handler->override_option('title', t('My bookmarks'));
+  $handler->override_option('items_per_page', '25');
+  $handler->override_option('use_pager', TRUE);
+  $handler->override_option('empty', 'You have not yet bookmarked any content. Click the "'. $flag->flag_short .'" link when viewing a piece of content to add it to this list.');
+  $handler->override_option('empty_format', FILTER_FORMAT_DEFAULT);
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', $style_options);
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'bookmarks');
+  $handler->override_option('menu', array(
+    'type' => 'normal',
+    'title' => t('My bookmarks'),
+    'weight' => '0',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => NULL,
+    'weight' => NULL,
+  ));
+
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_argument_content_id.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_argument_content_id.inc
new file mode 100644
index 0000000..f1362ac
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_argument_content_id.inc
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @file
+ * Contains the content ID argument handler.
+ */
+
+/**
+ * Handler to accept an argument of the content ID of any object.
+ *
+ * @ingroup views
+ */
+class flag_handler_argument_content_id extends views_handler_argument_numeric {
+
+  /**
+   * Returns the flag object associated with our argument.
+   *
+   * An argument is in some relationship. This function reaches out for this
+   * relationship and reads its 'flag' option, which holds the flag name.
+   */
+  function get_flag() {
+    return $this->view->relationship[$this->options['relationship']]->get_flag();
+  }
+
+  /**
+   * Override the behavior of title(). Get the title of the appropriate objects.
+   */
+  function title_query() {
+    if (!($flag = $this->get_flag())) {
+      return array(); // Error message is printed by get_flag().
+    }
+    $views_info = $flag->get_views_info();
+
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT o.". $views_info['title field'] ." FROM {". $views_info['views table'] ."} o WHERE o.". $views_info['join field'] ." IN ($placeholders)", $this->value);
+    while ($title = db_fetch_object($result)) {
+      $titles[] = check_plain($title->$views_info['title field']);
+    }
+    return $titles;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_field_ops.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_field_ops.inc
new file mode 100644
index 0000000..aaa8f2b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_field_ops.inc
@@ -0,0 +1,146 @@
+<?php
+
+/**
+ * @file
+ * Contains the flag Ops field handler.
+ */
+
+/**
+ * Views field handler for the Flag operations links (flag/unflag).
+ *
+ * @ingroup views
+ */
+class flag_handler_field_ops extends views_handler_field {
+
+  /**
+   * Returns the flag object associated with our field.
+   *
+   * A field is in some relationship. This function reaches out for this
+   * relationship and reads its 'flag' option, which holds the flag name.
+   */
+  function get_flag() {
+    // When editing a view it's possible to delete the relationship (either by
+    // error or to later recreate it), so we have to guard against a missing
+    // one.
+    if (isset($this->view->relationship[$this->options['relationship']])) {
+      return $this->view->relationship[$this->options['relationship']]->get_flag();
+    }
+  }
+
+  /**
+   * Return the the relationship we're linked to. That is, the alias for its
+   * table (which is suitbale for use with the various methods of the 'query'
+   * object).
+   */
+  function get_parent_relationship() {
+    $parent = $this->view->relationship[$this->options['relationship']]->options['relationship'];
+    if (!$parent || $parent == 'none') {
+      return NULL; // Base query table.
+    }
+    else {
+      return $this->view->relationship[$parent]->alias;
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_type'] = array('default' => '');
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['link_type'] = array(
+      '#type' => 'radios',
+      '#title' => t('Link type'),
+      '#options' => array('' => t('Use flag link settings')) + _flag_link_type_options(),
+      '#default_value' => $this->options['link_type'],
+    );
+  }
+
+  /**
+   * Override base ::query(). The purpose here is to make it possible for the
+   * render() method to know two things: what's the content ID, and whether
+   * it's flagged.
+   */
+  function query() {
+    if (!($flag = $this->get_flag())) {
+      return; // Error message is printed in render().
+    }
+    $info = $flag->get_views_info();
+    $parent = $this->get_parent_relationship();
+
+    // Find out if the content is flagged. We can't just peek at some field in
+    // our loaded table because it doesn't always reflect the user browsing the
+    // page. So we explicitly add the flag_content table to find this out.
+    $join = new views_join();
+    $join->construct('flag_content', $info['views table'], $info['join field'], 'content_id');
+    $join->extra[] = array(
+      'field' => 'fid',
+      'value' => $flag->fid,
+      'numeric' => TRUE,
+    );
+    if (!$flag->global) {
+      $join->extra[] = array(
+        'field' => 'uid',
+        'value' => '***CURRENT_USER***',
+        'numeric' => TRUE,
+      );
+      $join->extra[] = array(
+        'field' => 'sid',
+        'value' => '***FLAG_CURRENT_USER_SID***',
+        'numeric' => TRUE,
+      );
+    }
+    $flag_table = $this->query->add_table('flag_content', $parent, $join);
+    $this->aliases['is_flagged'] = $this->query->add_field($flag_table, 'content_id');
+
+    // Next, find out the content ID. We can't add_field() on this table
+    // (flag_content), because its content_id may be NULL (in case no user has
+    // flagged this content, and it's a LEFT JOIN). So we reach to the parent
+    // relationship and add_field() *its* content ID column.
+    $left_table = $this->view->relationship[$this->options['relationship']]->table_alias;
+    $this->aliases['content_id'] = $this->query->add_field($left_table, $info['join field']);
+  }
+
+  /**
+   * Find out if the flag applies to each item seen on the page. It's done in a
+   * separate DB query to to avoid complexity and to make 'many to one' tests
+   * (e.g. checking user roles) possible without causing duplicate rows.
+   */
+  function pre_render(&$values) {
+    if (!($flag = $this->get_flag())) {
+      return; // Error message is printed in render().
+    }
+
+    $ids = array();
+    foreach ($values as $row) {
+      $content_id = $row->{$this->aliases['content_id']};
+      $is_flagged = $row->{$this->aliases['is_flagged']};
+      if (isset($content_id)) {
+        $ids[$content_id] = $is_flagged ? 'unflag' : 'flag';
+      }
+    }
+    $this->flag_applies = $ids ? $flag->access_multiple($ids) : array();
+  }
+
+  function render($values) {
+    if (!($flag = $this->get_flag())) {
+      return t('Missing flag'); // get_flag() itself will print a more detailed message.
+    }
+
+    $content_id = $values->{$this->aliases['content_id']};
+    $is_flagged = $values->{$this->aliases['is_flagged']};
+
+    if (empty($this->flag_applies[$content_id])) {
+      // Flag does not apply to this content.
+      return;
+    }
+
+    if (!empty($this->options['link_type'])) {
+      $flag->link_type = $this->options['link_type'];
+    }
+    return $flag->theme($is_flagged ? 'unflag' : 'flag', $content_id);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_filter_flagged.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_filter_flagged.inc
new file mode 100644
index 0000000..fa6ebdd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_filter_flagged.inc
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * @file
+ * Contains the flagged content filter handler.
+ */
+
+/**
+ * Handler to filter for content that has not been flagged.
+ *
+ * @ingroup views
+ */
+class flag_handler_filter_flagged extends views_handler_filter_boolean_operator {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['value'] = array('default' => 1);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['value']['#type'] = 'radios';
+    $form['value']['#title'] = t('Status');
+    $form['value']['#options'] = array(1 => t('Flagged'), 0 => t('Not flagged'), 'All' => t('All'));
+    $form['value']['#default_value'] = empty($this->options['value']) ? '0' : $this->options['value'];
+    $form['value']['#description'] = '<p>' . t('This filter is only needed if the relationship used has the "Include only flagged content" option <strong>unchecked</strong>. Otherwise, this filter is useless, because all records are already limited to flagged content.') . '</p><p>' . t('By choosing <em>Not flagged</em>, it is possible to create a list of content <a href="@unflagged-url">that is specifically not flagged</a>.', array('@unflagged-url' => 'http://drupal.org/node/299335')) . '</p>';
+  }
+
+  function query() {
+    $operator = $this->value ? 'IS NOT' : 'IS';
+    $this->query->add_where($this->options['group'], $this->relationship .'.uid '. $operator .' NULL');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_relationships.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_relationships.inc
new file mode 100644
index 0000000..bb1c26b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_handler_relationships.inc
@@ -0,0 +1,266 @@
+<?php
+
+/**
+ * @file
+ * Contains various relationship handlers.
+ */
+
+/**
+ * Base class for all our relationship classes.
+ *
+ * @ingroup views
+ */
+abstract class flag_handler_relationship extends views_handler_relationship {
+
+  /**
+   * Every relationship has a 'flag' option.
+   */
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['flag'] = array('default' => NULL);
+    $options['required'] = array('default' => 1);
+    return $options;
+  }
+
+  /**
+   * Make sure the flag exists.
+   *
+   * When importing views, or when deleting flags, inconsistent views may
+   * result. This validator is called by Views before saving or previewing a
+   * view.
+   */
+  function validate() {
+    $errors = array();
+    $tokens = array(
+      '@relationship-name' => $this->ui_name() . ' ' . $this->admin_summary(),
+      '@flag-name' => $this->options['flag'],
+    );
+    if (!$this->options['flag']) {
+      $errors[] = t('You must pick a flag to use for the relationship "@relationship-name".', $tokens);
+    }
+    elseif (!flag_get_flag($this->options['flag'])) {
+      $errors[] = t('This view is looking for a flag by the name "@flag-name", but there is no such flag. Perhaps it was deleted. Please update the relationship "@relationship-name" in this view to use an existing flag.', $tokens);
+    }
+    return $errors;
+  }
+
+  function get_flag_type() {
+    return isset($this->definition['flag type']) ? $this->definition['flag type'] : NULL;
+  }
+
+  /**
+   * Returns the flag object.
+   */
+  function get_flag() {
+
+    // Backward compatibility: There may exist old views on the system whose
+    // 'flag' option isn't set. (This happens if the admin had skippped
+    // clicking the 'Update' button.) When run, these views should behave as
+    // if the first flag was selected.
+    if (!isset($this->options['flag'])) {
+      $this->options['flag'] = flag_views_flag_default($this->get_flag_type());
+    }
+
+    // Validation: Since validate() is called only when in Views's
+    // administrative UI, we need to do validation at "run time" ourselves.
+    if (($errors = $this->validate())) {
+      foreach ($errors as $error) {
+        drupal_set_message($error, 'error');
+      }
+    }
+
+    return flag_get_flag($this->options['flag']);
+  }
+
+  // @todo: It's logical that this class should also implement options_form(),
+  // to show the flag selector, and query(), to filter on the flag.
+}
+
+/**
+ * Specialized relationship handler associating flags and content.
+ *
+ * @ingroup views
+ */
+class flag_handler_relationship_content extends flag_handler_relationship {
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['user_scope'] = array('default' => 'current');
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $content_type = $this->definition['flag type'];
+    $form['label']['#description'] .= ' ' . t('The name of the selected flag makes a good label.');
+    $form['flag'] = flag_views_flag_config_form('radios', $content_type, $this->options['flag']);
+
+    $form['user_scope'] = array(
+      '#type' => 'radios',
+      '#title' => t('By'),
+      '#options' => array('current' => t('Current user'), 'any' => t('Any user')),
+      '#default_value' => $this->options['user_scope'],
+    );
+
+    $form['required']['#title'] = t('Include only flagged content');
+    $form['required']['#description'] = t('If checked, only content that has this flag will be included. Leave unchecked to include all content; or, in combination with the <em>Flagged</em> filter, <a href="@unflagged-url">to limit the results to specifically unflagged content</a>.', array('@unflagged-url' => 'http://drupal.org/node/299335'));
+
+    if (!$form['flag']['#options']) {
+      $form = array(
+        'error' => array(
+          '#value' => '<p class="error form-item">' . t('No %type flags exist. You must first <a href="@create-url">create a %type flag</a> before being able to use this relationship type.', array('%type' => $content_type, '@create-url' => url('admin/build/flags'))) . '</p>',
+        ),
+      );
+      $form_state['no flags exist'] = TRUE;
+    }
+    if (module_exists('session_api')) {
+      $form['session_warning'] = array(
+        '#value' => '<p class="warning form-item">' . t('<strong>Warning</strong>: Adding this relationship for any flag that contains <strong>anonymous flagging access</strong> will disable page caching for anonymous users when this view is executed. (But this is only true when the relationship is constrained to "Current user", not to "Any user".) It is recommended to create a dedicated page for views containing anonymous user data.') . '</p>',
+      );
+    }
+  }
+
+  function options_validate($form, &$form_state) {
+    if (!empty($form_state['no flags exist'])) {
+      form_error($form, t('You must first create a flag'));
+    }
+  }
+
+  function admin_summary() {
+    return $this->options['user_scope'] == 'current' ? t('by current user') : t('by any user');
+  }
+
+  function ui_name($short = FALSE) {
+    // We put the bookmark name in the UI string to save space.
+    return t('!group: !title', array('!group' => $this->definition['group'], '!title' => empty($this->options['flag']) ? t('(Please select a flag)') : $this->options['flag']));
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    if (!($flag = $this->get_flag())) {
+      return;
+    }
+
+    $this->definition['extra'][] = array(
+      'field' => 'fid',
+      'value' => $flag->fid,
+      'numeric' => TRUE,
+    );
+    if ($this->options['user_scope'] == 'current' && !$flag->global) {
+      $this->definition['extra'][] = array(
+        'field' => 'uid',
+        'value' => '***CURRENT_USER***',
+        'numeric' => TRUE,
+      );
+      if (array_search(DRUPAL_ANONYMOUS_RID, $flag->roles['flag']) !== FALSE) {
+        // Disable page caching for anonymous users.
+        $GLOBALS['conf']['cache'] = 0;
+
+        // Add in the SID from Session API for anonymous users.
+        $this->definition['extra'][] = array(
+          'field' => 'sid',
+          'value' => '***FLAG_CURRENT_USER_SID***',
+          'numeric' => TRUE,
+        );
+      }
+    }
+    parent::query();
+  }
+}
+
+/**
+ * Specialized relationship handler associating flag counts and content.
+ *
+ * @ingroup views
+ */
+class flag_handler_relationship_counts extends flag_handler_relationship {
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $content_type = $this->definition['flag type'];
+    $form['flag'] = flag_views_flag_config_form('radios', $content_type, $this->options['flag']);
+
+    $form['required']['#title'] = t('Include only flagged content');
+    $form['required']['#description'] = t('If checked, only content that is flagged will be included.');
+  }
+
+  function admin_summary() {
+    // Nothing to show.
+  }
+
+  function ui_name($short = FALSE) {
+    // We put the bookmark name in the UI string to save space.
+    return t('!group: !title counter', array('!group' => $this->definition['group'], '!title' => $this->options['flag']));
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    if (!($flag = $this->get_flag())) {
+      return;
+    }
+
+    $this->definition['extra'][] = array(
+      'field' => 'fid',
+      'value' => $flag->fid,
+      'numeric' => TRUE,
+    );
+    if (!empty($this->options['required'])) {
+      // Unfortunately, we may have zeros in our table, so having
+      // parent::query() do INNER JOIN doesn't suffice. We need to filter these
+      // zeros out.
+      // @todo Make sure zero records aren't written in the first place, and
+      // remove this code.
+      $this->definition['extra'][] = array(
+        'field' => 'count',
+        'operator' => '>',
+        'value' => '0',
+        'numeric' => TRUE,
+      );
+    }
+    parent::query();
+  }
+}
+
+/**
+ * Specialized relationship handler associating flags and users.
+ *
+ * @ingroup views
+ */
+class flag_handler_relationship_user_content extends flag_handler_relationship {
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['label']['#description'] .= ' ' . t('Including name of the selected flag helps identify this relationship.');
+
+    $form['flag'] = flag_views_flag_config_form('radios', NULL, $this->options['flag']);
+    $form['flag']['#title'] = t('Flagged');
+
+    $form['required']['#title'] = t('Include only users who have flagged content.');
+    $form['required']['#description'] = t('If checked, only users that have flagged any content with this flag will be included.');
+  }
+
+  function admin_summary() {
+    return $this->options['flag'];
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    if (!($flag = $this->get_flag())) {
+      return;
+    }
+
+    $this->definition['extra'][] = array(
+      'field' => 'fid',
+      'value' => $flag->fid,
+      'numeric' => TRUE,
+    );
+    parent::query();
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_plugin_argument_validate_flaggability.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_plugin_argument_validate_flaggability.inc
new file mode 100644
index 0000000..42b13ef
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_plugin_argument_validate_flaggability.inc
@@ -0,0 +1,293 @@
+<?php
+
+/**
+ * @file
+ * Contains the flaggability validator handler.
+ */
+
+/**
+ * Returns TRUE if we're running under Views 3 and higher. FALSE otherwise.
+ */
+function _flag_is_views3() {
+  // We just test the first character (and dodge the complexity of version_compare()).
+  return views_api_version() >= '3';
+}
+
+/**
+ * Validates whether an argument is a flaggable/flagged object.
+ *
+ * Note: This code, for Drupal 6, is designed to work under both Views 3 and Views 2.
+ *
+ * @ingroup views
+ */
+class flag_plugin_argument_validate_flaggability extends views_plugin_argument_validate {
+
+  function construct() {
+    parent::construct();
+    $this->flag_type = $this->definition['flag type'];
+  }
+
+  // Views 3.
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['flag_name'] = array('default' => '*relationship*');
+    $options['flag_test'] = array('default' => 'flaggable');
+    $options['flag_id_type'] = array('default' => 'id');
+    return $options;
+  }
+
+  // Views 3.
+  function options_form(&$form, &$form_state) {
+    $options = $this->flags_options();
+
+    $form[$this->_option_name('flag_name')] = array(
+      '#type' => 'radios',
+      '#title' => t('Flag'),
+      '#options' => $options,
+      '#default_value' => $this->_get_option('flag_name', '*relationship*'),
+      '#description' => t('Select the flag to validate against.'),
+    );
+    if (!$options) {
+      $form[$this->_option_name('flag_name')]['#description'] = '<p class="warning">' . t('No %type flags exist. You must first <a href="@create-url">create a %type flag</a> before being able to use one.', array('%type' => $this->flag_type, '@create-url' => 'admin/build/flags')) . '</p>';
+    }
+
+    $form[$this->_option_name('flag_test')] = array(
+      '#type' => 'select',
+      '#title' => t('Validate the @type only if', array('@type' => $this->flag_type)),
+      '#options' => $this->tests_options(),
+      '#default_value' => $this->_get_option('flag_test', 'flaggable'),
+    );
+
+    // This validator supports the "multiple IDs" syntax. It may not be
+    // extremely useful, but similar validators do support this and it's a good
+    // thing to be compatible.
+    $form[$this->_option_name('flag_id_type')] = array(
+      '#type' => 'select',
+      '#title' => t('Argument type'),
+      '#options' => array(
+        'id' => t('ID'),
+        'ids' => t('IDs separated by , or +'),
+      ),
+      '#default_value' => $this->_get_option('flag_id_type', 'id'),
+    );
+  }
+
+  // Views 2.
+  function validate_form(&$form, &$form_state) {
+    // We call the Views 3 version and add to it the #dependency settings.
+
+    $this->options_form($form, $form_state);
+
+    $form[$this->_option_name('flag_name')] += array(
+       // Add an ID to the surrounding div because radios don't get IDs
+       // as a whole group. This is needed for #dependency.
+      '#prefix' => '<div><div id="edit-options-' . views_css_safe($this->_option_name('flag_name')) . '">',
+      '#suffix' => '</div></div>',
+      '#process' => array('expand_radios', 'views_process_dependency'),
+    );
+
+    foreach (array('flag_name', 'flag_test', 'flag_id_type') as $option) {
+      $form[$this->_option_name($option)] += array(
+        '#dependency' => array('edit-options-validate-type' => array($this->id)),
+        '#process' => array('views_process_dependency'),
+      );
+    }
+  }
+
+  /**
+   * Returns form #options for the flags. Returns empty array if no flags were
+   * found.
+   */
+  function flags_options() {
+    $flags = flag_get_flags($this->flag_type);
+    if (!$flags) {
+      return array();
+    }
+    else {
+      foreach ($flags as $flag) {
+        $options[$flag->name] = $flag->get_title();
+      }
+      $options['*relationship*'] = t('<em>Pick the first flag mentioned in the relationships.</em>');
+      return $options;
+    }
+  }
+
+  /**
+   * Returns an option's value.
+   *
+   * Purpose: insulate us from the difference between Views 3 and Views 2.
+   */
+  function _get_option($option, $default) {
+    if (_flag_is_views3()) {
+      return $this->options[$option];
+    }
+    else {
+      // Views 2.
+      //
+      // Validator arguments are stored in the argument object, not here.
+      $option = $this->_option_name($option);
+      return isset($this->argument->options[$option]) ? $this->argument->options[$option] : $default;
+    }
+  }
+
+  /**
+   * Returns an option's name.
+   *
+   * Purpose: insulate us from the difference between Views 3 and Views 2.
+   */
+  function _option_name($option) {
+    if (_flag_is_views3()) {
+      return $option;
+    }
+    else {
+      // Views 2.
+      //
+      // We must embed the flag type in the option name or else validators of
+      // different types will clash with each other. It's a trait of Views that all
+      // validators on the system get their settings lumped onto the argument.
+      // Examine the view's 'Export' output to understand.
+      return 'validate_argument_' . $this->flag_type . '_' . $option;
+    }
+  }
+
+  /**
+   * Migrate existing Views 2 options to Views 3.
+   */
+  function convert_options(&$options) {
+    $prefix = 'validate_argument_' . $this->flag_type . '_';
+    if (!isset($options['flag_name']) && !empty($this->argument->options[$prefix . 'flag_name'])) {
+      $options['flag_name'] = $this->argument->options[$prefix . 'flag_name'];
+      $options['flag_test'] = $this->argument->options[$prefix . 'flag_test'];
+      $options['flag_id_type'] = $this->argument->options[$prefix . 'flag_id_type'];
+    }
+  }
+
+  /**
+   * Declares all tests. This scheme makes it easy for derived classes to add
+   * and remove tests.
+   */
+  function tests_info($which = NULL) {
+    return array(
+      'flaggable' => array(
+        'title' => t('It is flaggable'),
+        'callback' => 'test_flaggable',
+      ),
+      'flagged' => array(
+        'title' => t('It is flagged at least once'),
+        'callback' => 'test_flagged',
+      ),
+      'flagged_by_current_user' => array(
+        'title' => t('It is flagged by the current user'),
+        'callback' => 'test_flagged_by_current_user',
+      ),
+    );
+  }
+
+  function tests_options() {
+    $options = array();
+    foreach ($this->tests_info() as $id => $info) {
+      $options[$id] = $info['title'];
+    }
+    return $options;
+  }
+
+  function get_flag() {
+    $flag_name = $this->_get_option('flag_name', '*relationship*');
+
+    if ($flag_name == '*relationship*') {
+      // Pick the first flag mentioned in the relationships.
+      foreach ($this->view->relationship as $id => $handler) {
+        // Note: we can't do $handler->field, because the relationship handler's init() may overwrite it.
+        if (strpos($handler->options['field'], 'flag') !== FALSE && !empty($handler->options['flag'])) {
+          $flag = flag_get_flag($handler->options['flag']);
+          if ($flag && $flag->content_type == $this->flag_type) {
+            return $flag;
+          }
+        }
+      }
+    }
+
+    return flag_get_flag($flag_name);
+  }
+
+  /**
+   * Tests whether the argument is flaggable, or flagged, or flagged by current
+   * user. These are three possible tests, and which of the three to actually
+   * carry out is determined by 'flag_test'.
+   */
+  function validate_argument($argument) {
+    $flag_test = $this->_get_option('flag_test', 'flaggable');
+    $id_type   = $this->_get_option('flag_id_type', 'id');
+
+    $flag = $this->get_flag();
+    if (!$flag) {
+      // Validator is misconfigured somehow.
+      return TRUE;
+    }
+
+    if ($id_type == 'id') {
+      if (!is_numeric($argument)) {
+        // If a user is being smart and types several IDs where only one is
+        // expected, we invalidate this.
+        return FALSE;
+      }
+    }
+
+    $ids = views_break_phrase($argument, $this);
+    if ($ids->value == array(-1)) {
+      // Malformed argument syntax. Invalidate.
+      return FALSE;
+    }
+    $ids = $ids->value;
+
+    // Delegate the testing to the particual test method. $passed then
+    // holds the IDs that passed the test.
+    $tests_info = $this->tests_info();
+    $method = $tests_info[$flag_test]['callback'];
+    if (method_exists($this, $method)) {
+      $passed = $this->$method($ids, $flag);
+    }
+    else {
+      $passed = array();
+    }
+
+    // If some IDs exist that haven't $passed our test then validation fails.
+    $failed = array_diff($ids, $passed);
+    return empty($failed);
+  }
+
+  //
+  // The actual tests. They return the IDs that passed.
+  //
+
+  function test_flaggable($ids, $flag) {
+    return array_filter($ids, array($flag, 'applies_to_content_id'));
+  }
+
+  function test_flagged($ids, $flag) {
+    // view_break_phrase() is guaranteed to return only integers, so this is SQL safe.
+    $flattened_ids = implode(',', $ids);
+    return $this->_test_by_sql("SELECT content_id FROM {flag_counts} WHERE fid = %d AND content_id IN ($flattened_ids) AND count > 0", array($flag->fid));
+  }
+
+  function test_flagged_by_current_user($ids, $flag) {
+    global $user;
+    if (!$user->uid) {
+      // Anonymous user
+      return array();
+    }
+    $flattened_ids = implode(',', $ids);
+    return $this->_test_by_sql("SELECT content_id FROM {flag_content} WHERE fid = %d AND content_id IN ($flattened_ids) AND uid = %d", array($flag->fid, $user->uid));
+  }
+
+  // Helper: executes an SQL query and returns all the content_id's.
+  function _test_by_sql($sql, $args) {
+    $passed = array();
+    $result = db_query($sql, $args);
+    while ($row = db_fetch_object($result)) {
+      $passed[] = $row->content_id;
+    }
+    return $passed;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_plugin_validate_user.inc b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_plugin_validate_user.inc
new file mode 100644
index 0000000..64ff664
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/includes/flag_plugin_validate_user.inc
@@ -0,0 +1,88 @@
+<?php
+/**
+ * @file
+ * Contains the Flag Bookmark view argument validator.
+ */
+
+/**
+ * Validates whether an argument is a valid UID.
+ *
+ * @ingroup views
+ */
+class flag_plugin_validate_user extends views_plugin_argument_validate_user {
+
+  /**
+   * Define the options for the plugin, including the default permission.
+   * @return multitype:string
+   */
+  function option_definition() {
+    // Initialize the base class.
+    $options = parent::option_definition();
+
+    // Set the default permission.
+    $options['bypass_perm'] = array('default' => 'administer users');
+
+    return $options;
+  }
+
+  /**
+   * Returns a option form for the plugin.
+   */
+  function options_form(&$form, &$form_state) {
+    // Get the options form from the base class.
+    parent::options_form($form, $form_state);
+
+    $perms = array();
+
+    $perms[] = t(' - None - ');
+
+    // Produce an array of permissions keyed by module name.
+    foreach (module_implements('perm') as $module) {
+      $permissions = module_invoke($module, 'perm');
+      foreach ($permissions as $perm) {
+        $perms[$module][$perm] = strip_tags($perm);
+      }
+    }
+
+    asort($perms);
+
+    // Create the form field for the validator. Returned by reference.
+    $form['bypass_perm'] = array(
+      '#type' => 'select',
+      '#options' => $perms,
+      '#title' => t('Override permission'),
+      '#default_value' => $this->options['bypass_perm'],
+      '#description' => t('Users with this permission bypass the argument check and are granted access.'),
+    );
+  }
+
+  /**
+   * Validates the argument to be a proper UID.
+   * @param mixed $argument
+   * @return boolean
+   */
+  function validate_argument($argument) {
+    // The parent class takes care of all its options, returning TRUE if the
+    // argument value validates to a user account, and an account that has the
+    // required role.
+    $argument_validates = parent::validate_argument($argument);
+
+    // If the parent didn't validate the argument, then we certainly can't
+    // either.
+    if ($argument_validates === FALSE) {
+      return $argument_validates;
+    }
+
+    // If the current user has the bypass permission, then we're done: return
+    // the validation status we got from the parent.
+    if (!empty($this->options['bypass_perm']) && user_access($this->options['bypass_perm'])) {
+      return $argument_validates;
+    }
+
+    // Otherwise, perform our additional check to enforce that the argument
+    // user ID is the current user.
+    // The parent method has stored the uid from the argument.
+    return ($this->argument->argument === $GLOBALS['user']->uid);
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/tests/flag.test b/drupal/sites/default/boinc/modules/contrib/flag/tests/flag.test
new file mode 100644
index 0000000..adc1312
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/tests/flag.test
@@ -0,0 +1,125 @@
+<?php
+
+/**
+ * @file
+ * Tests for the Flag module.
+ */
+
+class FlagTestCase extends DrupalWebTestCase {
+  var $_flag = FALSE;
+
+  /**
+   * Implements getInfo().
+   */
+  function getInfo() {
+    return array(
+      'name' => t('Flag tests'),
+      'description' => t('Add, edit and delete flags.'),
+      'group' => t('Flag'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  function setUp() {
+    parent::setUp('flag');
+
+    // Create and login user
+    $admin_user = $this->drupalCreateUser(array('access administration pages', 'administer flags'));
+    $this->drupalLogin($admin_user);
+  }
+
+  /**
+   * Create a flag through the UI and ensure that it is saved properly.
+   */
+  function testFlagAdmin() {
+    // Add a new flag using the UI.
+    $edit = array(
+      'name' => strtolower($this->randomName()),
+      'title' => $this->randomName(),
+      'flag_short'          => 'flag short [nid]',
+      'flag_long'           => 'flag long [nid]',
+      'flag_message'        => 'flag message [nid]',
+      'unflag_short'        => 'unflag short [nid]',
+      'unflag_long'         => 'unflag long [nid]',
+      'unflag_message'      => 'unflag message [nid]',
+      'roles[flag][2]' => TRUE,
+      'roles[unflag][2]' => TRUE,
+      'types[story]' => FALSE,
+      'types[page]' => TRUE,
+      'show_on_teaser' => FALSE,
+      'show_on_page' => FALSE,
+      'show_on_form' => FALSE,
+      'link_type' => 'toggle',
+    );
+    $saved = $edit;
+    $saved['roles'] = array('flag' => array(2), 'unflag' => array(2));
+    $saved['types'] = array('page');
+    unset($saved['roles[flag][2]'], $saved['roles[unflag][2]'], $saved['types[story]'], $saved['types[page]']);
+
+    $this->drupalPost(FLAG_ADMIN_PATH . '/add/node/' . $edit['name'], $edit, t('Save flag'));
+
+    flag_get_flags(NULL, NULL, NULL, TRUE);
+    $flag = flag_get_flag($edit['name']);
+
+    // Check that the flag object is in the database.
+    $this->assertTrue($flag != FALSE, t('Flag object found in database'));
+
+    // Check each individual property of the flag and make sure it was set.
+    foreach ($saved as $property => $value) {
+      $this->assertEqual($flag->$property, $value, t('Flag property %property properly saved.', array('%property' => $property)));
+    }
+
+    // Edit the flag through the UI.
+    $edit = array(
+      'name' => strtolower($this->randomName()),
+      'title' => $this->randomName(),
+      'flag_short'          => 'flag 2 short [nid]',
+      'flag_long'           => 'flag 2 long [nid]',
+      'flag_message'        => 'flag 2 message [nid]',
+      'unflag_short'        => 'unflag 2 short [nid]',
+      'unflag_long'         => 'unflag 2 long [nid]',
+      'unflag_message'      => 'unflag 2 message [nid]',
+      'roles[flag][2]' => TRUE,
+      'roles[unflag][2]' => TRUE,
+      'types[story]' => TRUE,
+      'types[page]' => FALSE,
+      'show_on_teaser' => TRUE,
+      'show_on_page' => TRUE,
+      'show_on_form' => TRUE,
+      'link_type' => 'normal',
+    );
+    $saved = $edit;
+    $saved['roles'] = array('flag' => array(2), 'unflag' => array(2));
+    $saved['types'] = array('story');
+    unset($saved['roles[flag][2]'], $saved['roles[unflag][2]'], $saved['types[story]'], $saved['types[page]']);
+
+    $this->drupalPost(FLAG_ADMIN_PATH . '/manage/' . $flag->name, $edit, t('Save flag'));
+
+    flag_get_flags(NULL, NULL, NULL, TRUE);
+    $flag = flag_get_flag($edit['name']);
+
+    // Check that the flag object is in the database.
+    $this->assertTrue($flag != FALSE, t('Flag object found in database'));
+
+    // Check each individual property of the flag and make sure it was set.
+    foreach ($saved as $property => $value) {
+      $this->assertEqual($flag->$property, $value, t('Flag property %property properly saved.', array('%property' => $property)));
+    }
+
+    // Delete the flag through the UI.
+    $this->drupalPost(FLAG_ADMIN_PATH . '/manage/' . $flag->name . '/delete', array(), t('Delete'));
+    flag_get_flags(NULL, NULL, NULL, TRUE);
+    $this->assertFalse(flag_get_flag($flag->name), t('Flag successfully deleted.'));
+  }
+
+  /**
+   * Test that only allowed users have access to flags.
+   */
+  function testFlagAccess() {
+
+  }
+
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/theme/README.txt b/drupal/sites/default/boinc/modules/contrib/flag/theme/README.txt
new file mode 100644
index 0000000..d369781
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/theme/README.txt
@@ -0,0 +1,37 @@
+
+Theming instructions
+====================
+
+You may want to visit the Theming Guide of this module, at:
+
+  http://drupal.org/node/295346
+
+Template file
+-------------
+In order to customize flag theming:
+
+- Copy the 'flag.tpl.php' template file into your theme's folder.[1]
+
+- Clear your theme registry.[2]
+
+- Edit that copy to your liking.
+
+
+Template variants[3]
+-----------------
+In addition, the theme layer will first look for the template
+'flag--<FLAG_NAME>.tpl.php' before it turns to 'flag.tpl.php'. This too
+you should place in your theme's folder.[2][1]
+
+
+Footnotes
+---------
+[1] Or to a sub-folder in your theme's folder.
+
+[2] Clearing the theme registry makes Drupal aware of your new template
+file. This step is needed if you create or rename template files. This
+step *isn't* needed if you merely modify the contents of a file. Instructions
+on how to clear you theme registry are at http://drupal.org/node/173880#theme-registry
+
+[3] For template variants to work correctly you must use Drupal 6.3 or above (or
+apply the patch from http://drupal.org/node/241570).
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-admin.css b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-admin.css
new file mode 100644
index 0000000..2c6ac56
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-admin.css
@@ -0,0 +1,25 @@
+
+table.flag-admin-table {
+  width: auto;
+  margin: 0;
+}
+table.flag-admin-table th {
+  font-weight: normal;
+  padding-left: 2em;
+  padding-right: 2em;
+}
+table.flag-admin-table td {
+  padding-left: 2em;
+  padding-right: 2em;
+}
+
+#flag-form .token-examples {
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-left: 4em;
+}
+#flag-form .token-examples li {
+  color: #999;
+  font-family: monospace;
+  line-height: 120%;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-admin.js b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-admin.js
new file mode 100644
index 0000000..c4ccf47
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-admin.js
@@ -0,0 +1,87 @@
+(function ($) {
+
+/**
+ * Behavior to disable the "unflag" option if "flag" is not available.
+ */
+Drupal.behaviors.flagRoles = function(context) {
+  $('#flag-roles input.flag-access', context).change(function() {
+    var unflagCheckbox = $(this).parents('tr:first').find('input.unflag-access').get(0);
+    if (this.checked) {
+      // If "flag" is available, restore the state of the "unflag" checkbox.
+      unflagCheckbox.disabled = false;
+      if (typeof(unflagCheckbox.previousFlagState) != 'undefined') {
+        unflagCheckbox.checked = unflagCheckbox.previousFlagState;
+      }
+      else {
+        unflagCheckbox.checked = true;
+      }
+    }
+    else {
+      // Remember if the "unflag" option was checked or unchecked, then disable.
+      unflagCheckbox.previousFlagState = unflagCheckbox.checked;
+      unflagCheckbox.disabled = true;
+      unflagCheckbox.checked = false;
+    }
+  });
+
+  $('#flag-roles input.unflag-access', context).change(function() {
+    if ($(this).parents('table:first').find('input.unflag-access:enabled:not(:checked)').size() == 0) {
+      $('#edit-unflag-denied-text-wrapper').slideUp();
+    }
+    else {
+      $('#edit-unflag-denied-text-wrapper').slideDown();
+    }
+  });
+
+  // Hide the link options by default if needed.
+  if ($('#flag-roles input.unflag-access:enabled:not(:checked)').size() == 0) {
+    $('#edit-unflag-denied-text-wrapper').css('display', 'none');
+  }
+};
+
+
+/**
+ * Behavior to make link options dependent on the link radio button.
+ */
+Drupal.behaviors.flagLinkOptions = function(context) {
+  $('.flag-link-options input.form-radio', context).change(function() {
+    // Reveal only the fieldset whose ID is link-options-LINKTYPE,
+    // where LINKTYPE is the value of the selected radio button.
+    var radioButton = this;
+    var $relevant   = $('fieldset#link-options-' + radioButton.value);
+    var $irrelevant = $('fieldset[id^=link-options-]').not($relevant);
+
+    $relevant.show();
+    $irrelevant.hide();
+
+    if ($relevant.size()) {
+      $('#link-options-intro').show();
+    }
+    else {
+      $('#link-options-intro').hide();
+    }
+  })
+  // Hide the link options by default if needed.
+  .filter(':checked').trigger('change');
+};
+
+/**
+ * Vertical tabs integration.
+ */
+Drupal.verticalTabs = Drupal.verticalTabs || {};
+
+Drupal.verticalTabs.flag = function() {
+  var flags = [];
+  $('fieldset.vertical-tabs-flag input:checkbox:checked').each(function() {
+    flags.push(this.title);
+  });
+
+  if (flags.length) {
+    return flags.join(', ');
+  }
+  else {
+    return Drupal.t('No flags');
+  }
+}
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-throbber.gif b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-throbber.gif
new file mode 100644
index 0000000..207e95c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag-throbber.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.css b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.css
new file mode 100644
index 0000000..d069869
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.css
@@ -0,0 +1,27 @@
+
+.flag-message {
+  position: absolute;
+  top: 1.7em;
+  line-height: normal;
+  left: 0;
+  text-align: left;
+  width: 300px;
+  font-size: .8em;
+}
+
+.flag-wrapper {
+  position: relative;
+}
+
+/* The rest deals with indicating the waiting state. */
+
+.flag-waiting a {
+  /* Give an impression of a disabled link. */
+  opacity: 0.5;
+  filter: alpha(opacity=50); /* IE */
+}
+
+.flag-waiting .flag-throbber {
+  background: url(flag-throbber.gif) no-repeat right center;
+  padding-right: 13px;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.js b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.js
new file mode 100644
index 0000000..0495a77
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.js
@@ -0,0 +1,230 @@
+(function ($) {
+
+/**
+ * Terminology:
+ *
+ *   "Link" means "Everything which is in flag.tpl.php" --and this may contain
+ *   much more than the <A> element. On the other hand, when we speak
+ *   specifically of the <A> element, we say "element" or "the <A> element".
+ */
+
+/**
+ * The main behavior to perform AJAX toggling of links.
+ */
+Drupal.flagLink = function(context) {
+  /**
+   * Helper function. Updates a link's HTML with a new one.
+   *
+   * @param element
+   *   The <A> element.
+   * @return
+   *   The new link.
+   */
+  function updateLink(element, newHtml) {
+    var $newLink = $(newHtml);
+
+    // Initially hide the message so we can fade it in.
+    $('.flag-message', $newLink).css('display', 'none');
+
+    // Reattach the behavior to the new <A> element. This element
+    // is either whithin the wrapper or it is the outer element itself.
+    var $nucleus = $newLink.is('a') ? $newLink : $('a.flag', $newLink);
+    $nucleus.addClass('flag-processed').click(flagClick);
+
+    // Find the wrapper of the old link.
+    var $wrapper = $(element).parents('.flag-wrapper:first');
+    if ($wrapper.length == 0) {
+      // If no ancestor wrapper was found, or if the 'flag-wrapper' class is
+      // attached to the <a> element itself, then take the element itself.
+      $wrapper = $(element);
+    }
+    // Replace the old link with the new one.
+    $wrapper.after($newLink).remove();
+    Drupal.attachBehaviors($newLink.get(0));
+
+    $('.flag-message', $newLink).fadeIn();
+    setTimeout(function(){ $('.flag-message', $newLink).fadeOut() }, 3000);
+    return $newLink.get(0);
+  }
+
+  /**
+   * A click handler that is attached to all <A class="flag"> elements.
+   */
+  function flagClick() {
+    // 'this' won't point to the element when it's inside the ajax closures,
+    // so we reference it using a variable.
+    var element = this;
+
+    // While waiting for a server response, the wrapper will have a
+    // 'flag-waiting' class. Themers are thus able to style the link
+    // differently, e.g., by displaying a throbber.
+    var $wrapper = $(element).parents('.flag-wrapper');
+    if ($wrapper.is('.flag-waiting')) {
+      // Guard against double-clicks.
+      return false;
+    }
+    $wrapper.addClass('flag-waiting');
+
+    // Hide any other active messages.
+    $('span.flag-message:visible').fadeOut();
+
+    // Send POST request
+    $.ajax({
+      type: 'POST',
+      url: element.href,
+      data: { js: true },
+      dataType: 'json',
+      success: function (data) {
+        if (data.status) {
+          // Success.
+          data.link = $wrapper.get(0);
+          $.event.trigger('flagGlobalBeforeLinkUpdate', [data]);
+          if (!data.preventDefault) { // A handler may cancel updating the link.
+            data.link = updateLink(element, data.newLink);
+          }
+          $.event.trigger('flagGlobalAfterLinkUpdate', [data]);
+        }
+        else {
+          // Failure.
+          alert(data.errorMessage);
+          $wrapper.removeClass('flag-waiting');
+        }
+      },
+      error: function (xmlhttp) {
+        alert('An HTTP error '+ xmlhttp.status +' occurred.\n'+ element.href);
+        $wrapper.removeClass('flag-waiting');
+      }
+    });
+    return false;
+  }
+
+  $('a.flag-link-toggle:not(.flag-processed)', context).addClass('flag-processed').click(flagClick);
+};
+
+/**
+ * Prevent anonymous flagging unless the user has JavaScript enabled.
+ */
+Drupal.flagAnonymousLinks = function(context) {
+  $('a.flag:not(.flag-anonymous-processed)', context).each(function() {
+    this.href += (this.href.match(/\?/) ? '&' : '?') + 'has_js=1';
+    $(this).addClass('flag-anonymous-processed');
+  });
+}
+
+String.prototype.flagNameToCSS = function() {
+  return this.replace(/_/g, '-');
+}
+
+/**
+ * A behavior specifically for anonymous users. Update links to the proper state.
+ */
+Drupal.flagAnonymousLinkTemplates = function(context) {
+  // Swap in current links. Cookies are set by PHP's setcookie() upon flagging.
+
+  var templates = Drupal.settings.flag.templates;
+
+  // Build a list of user-flags.
+  var userFlags = Drupal.flagCookie('flags');
+  if (userFlags) {
+    userFlags = userFlags.split('+');
+    for (var n in userFlags) {
+      var flagInfo = userFlags[n].match(/(\w+)_(\d+)/);
+      var flagName = flagInfo[1];
+      var contentId = flagInfo[2];
+      // User flags always default to off and the JavaScript toggles them on.
+      if (templates[flagName + '_' + contentId]) {
+        $('.flag-' + flagName.flagNameToCSS() + '-' + contentId, context).after(templates[flagName + '_' + contentId]).remove();
+      }
+    }
+  }
+
+  // Build a list of global flags.
+  var globalFlags = document.cookie.match(/flag_global_(\w+)_(\d+)=([01])/g);
+  if (globalFlags) {
+    for (var n in globalFlags) {
+      var flagInfo = globalFlags[n].match(/flag_global_(\w+)_(\d+)=([01])/);
+      var flagName = flagInfo[1];
+      var contentId = flagInfo[2];
+      var flagState = (flagInfo[3] == '1') ? 'flag' : 'unflag';
+      // Global flags are tricky, they may or may not be flagged in the page
+      // cache. The template always contains the opposite of the current state.
+      // So when checking global flag cookies, we need to make sure that we
+      // don't swap out the link when it's already in the correct state.
+      if (templates[flagName + '_' + contentId]) {
+        $('.flag-' + flagName.flagNameToCSS() + '-' + contentId, context).each(function() {
+          if ($(this).find('.' + flagState + '-action').size()) {
+            $(this).after(templates[flagName + '_' + contentId]).remove();
+          }
+        });
+      }
+    }
+  }
+}
+
+/**
+ * Utility function used to set Flag cookies.
+ *
+ * Note this is a direct copy of the jQuery cookie library.
+ * Written by Klaus Hartl.
+ */
+Drupal.flagCookie = function(name, value, options) {
+  if (typeof value != 'undefined') { // name and value given, set cookie
+    options = options || {};
+    if (value === null) {
+      value = '';
+      options = $.extend({}, options); // clone object since it's unexpected behavior if the expired property were changed
+      options.expires = -1;
+    }
+    var expires = '';
+    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
+      var date;
+      if (typeof options.expires == 'number') {
+        date = new Date();
+        date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+      } else {
+        date = options.expires;
+      }
+      expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
+    }
+    // NOTE Needed to parenthesize options.path and options.domain
+    // in the following expressions, otherwise they evaluate to undefined
+    // in the packed version for some reason...
+    var path = options.path ? '; path=' + (options.path) : '';
+    var domain = options.domain ? '; domain=' + (options.domain) : '';
+    var secure = options.secure ? '; secure' : '';
+    document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
+  } else { // only name given, get cookie
+    var cookieValue = null;
+    if (document.cookie && document.cookie != '') {
+      var cookies = document.cookie.split(';');
+      for (var i = 0; i < cookies.length; i++) {
+        var cookie = jQuery.trim(cookies[i]);
+        // Does this cookie string begin with the name we want?
+        if (cookie.substring(0, name.length + 1) == (name + '=')) {
+          cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+          break;
+        }
+      }
+    }
+    return cookieValue;
+  }
+};
+
+Drupal.behaviors.flagLink = function(context) {
+  // For anonymous users with the page cache enabled, swap out links with their
+  // current state for the user.
+  if (Drupal.settings.flag && Drupal.settings.flag.templates) {
+    Drupal.flagAnonymousLinkTemplates(context);
+  }
+
+  // For all anonymous users, require JavaScript for flagging to prevent spiders
+  // from flagging things inadvertently.
+  if (Drupal.settings.flag && Drupal.settings.flag.anonymous) {
+    Drupal.flagAnonymousLinks(context);
+  }
+
+  // On load, bind the click behavior for all links on the page.
+  Drupal.flagLink(context);
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.tpl.php b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.tpl.php
new file mode 100644
index 0000000..fadce0b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/flag/theme/flag.tpl.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * @file
+ * Default theme implementation to display a flag link, and a message after the action
+ * is carried out.
+ *
+ * Available variables:
+ *
+ * - $flag: The flag object itself. You will only need to use it when the
+ *   following variables don't suffice.
+ * - $flag_name_css: The flag name, with all "_" replaced with "-". For use in 'class'
+ *   attributes.
+ * - $flag_classes: A space-separated list of CSS classes that should be applied to the link.
+ *
+ * - $action: The action the link is about to carry out, either "flag" or "unflag".
+ * - $status: The status of the item; either "flagged" or "unflagged".
+ *
+ * - $link_href: The URL for the flag link.
+ * - $link_text: The text to show for the link.
+ * - $link_title: The title attribute for the link.
+ *
+ * - $message_text: The long message to show after a flag action has been carried out.
+ * - $after_flagging: This template is called for the link both before and after being
+ *   flagged. If displaying to the user immediately after flagging, this value
+ *   will be boolean TRUE. This is usually used in conjunction with immedate
+ *   JavaScript-based toggling of flags.
+ *
+ * NOTE: This template spaces out the <span> tags for clarity only. When doing some
+ * advanced theming you may have to remove all the whitespace.
+ */
+?>
+<span class="<?php print $flag_wrapper_classes; ?>">
+  <?php if ($link_href): ?>
+    <a href="<?php print $link_href; ?>" title="<?php print $link_title; ?>" class="<?php print $flag_classes ?>" rel="nofollow"><?php print $link_text; ?></a><span class="flag-throbber"> </span>
+  <?php else: ?>
+    <span class="<?php print $flag_classes ?>"><?php print $link_text; ?></span>
+  <?php endif; ?>
+  <?php if ($after_flagging): ?>
+    <span class="flag-message flag-<?php print $status; ?>-message">
+      <?php print $message_text; ?>
+    </span>
+  <?php endif; ?>
+</span>
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/CHANGELOG.txt b/drupal/sites/default/boinc/modules/contrib/forum_access/CHANGELOG.txt
new file mode 100644
index 0000000..8fa0ad9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/CHANGELOG.txt
@@ -0,0 +1,161 @@
+
+CHANGELOG for Forum Access for Drupal 6
+
+
+forum_access 6.x-1.x-dev:
+
+
+forum_access 6.x-1.8 (2012-05-05):
+  Enhancements:
+    - #762270: Add (commented out) code to disable clean URLs, in case we need it.
+  Bugs fixed:
+    - #1478822: Use user_roles() to allow translation of built-in roles and because it's the right way.
+    - #1356390 by smokris, salvis: Restore the core ability to edit your own comments as long as they haven't been replied to.
+
+
+forum_access 6.x-1.7 (2011-11-08):
+  Enhancements:
+    - #762270 by daffie, salvis: Add extensive Simpletests.
+  Bugs fixed:
+    - #762270 by salvis: Fix a number of minor bugs (edge cases) uncovered by the tests.
+
+forum_access 6.x-1.6 (2011-11-08):
+  Bugs fixed:
+    - #762270: Fix a notice on the forums page.
+    - Fix minor coding style issues (no functional changes).
+    - #1001968: Don't assume that there is a role with the 'administer nodes' permission.
+    - #978572: Remove moderator role on uninstall.
+    - #980894: Fix a notice.
+  Enhancements:
+    - #1022652: Guard against people trying to run updates in disabled state.
+    - #936682, #968382: Move the TID into the {acl.number} column to speed up hook_db_rewrite_sql() joins.
+    - Implement the D6.17 hook_link_alter() for comments.
+    - Update the link in forum_access_update_6105() to point directly to the release notes.
+
+forum_access 6.x-1.5 (2010-10-09):
+  Bugs fixed:
+    - #745002: Fix missing 'delete comment' link for users with the 'administer comments' permission.
+    - #906430: Add a missing preg_match() call.
+    - #904206: Fix misplaced labels on the container form under the Garland theme.
+    - #810422: Fix public forums not being visible to Anonymous on the overview page, due to missing default records in the {node_access} table.
+    - Always display the 'Update even if unchanged' checkbox, except for new forums/containers.
+    - Fix inability to save Create and View access for roles with the 'administer nodes' permission.
+
+forum_access 6.x-1.4 (2010-08-15):
+  Enhancements:
+    - Add hook_acl_explain().
+    - Synchronization with sister module Image Gallery Access (no functional change).
+    - #745002: Add an 'Update even if unchanged' option to the administrative interface.
+    - Fix Coder warnings (no functional change).
+    - Add support for nodecomment comment nodes.
+  Bugs fixed:
+    - Fix the access denied functionality on the admin/content/forum/edit/*/TID page.
+    - Fix batch updating of node_access records.
+    - #745002: Implement proper behavior for roles with the 'administer nodes' permission.
+    - #666908: Fix initialization of {forum_access} table and remove bogus rows.
+    - #723398: Avoid removing legitimate links from comments.
+    - #692106: Fix moderator cannot edit comments again.
+    - #692106: Fix moderator cannot edit comments.
+
+forum_access 6.x-1.3 (2010-02-17):
+  Bugs fixed:
+    - #699918: Give forum moderators access to the File attachments fieldset.
+    - Another 'administer nodes' fix.
+    - Clarify hook_db_rewrite_sql() code.
+    - #695690: Fix handling of 'administer nodes' permission.
+    - #689572: Fix user_access() call without $account parameter.
+    - #662306: Fix possible uninitialized variable.
+    - #652226: Fix possible interference with the Image Gallery Access module.
+
+forum_access 6.x-1.2 (2009-12-04):
+  Bugs fixed:
+    - #649854: Moderator role gets deleted from {permission} during the submission of admin/user/permissions.
+
+forum_access 6.x-1.1 (2009-12-02):
+  Enhancements:
+    - Provide db_rewrite_sql() support to hide the forum moderator role.
+    - Reset the permissions of the forum moderator role (in case they were changed by the admin).
+    - Hide the 'Forums' menu item for users that can't see any forum.
+    - Keep the admin from changing the permissions of the internal-use-only forum moderator role and make it even more difficult to assign the role to a user.
+    - Keep the admin from assigning the internal-use-only forum moderator role to a user.
+    - #552636: Implement 'Drupal 5 legacy mode,' where posting comments and replies is always allowed, for backward compatibility.
+  Bugs fixed:
+    - Deny direct access to forum administration without 'View' access.
+    - Avoid duplicate warning when submitting the Permissions page.
+    - #639196: Fix error on secondary user profile pages.
+    - #597616, #560238: Allow editing own unreplied-to comments even without permission, as core does.
+    - Distinguish between grants as moderator or as normal user.
+    - Fix some trailing spaces (no functional change).
+    - #493044: Fix missing initialization of the {forum_access} table during installation.
+    - #578554: Fix a possible foreach() error message.
+    - Avoid Coder warning and improve installation information.
+
+forum_access 6.x-1.0 (2009-08-03):
+  Enhancements:
+    - Improve information on how to avoid conflicts with Content Access.
+    - Improve wording of trouble-shooting text (string-only change).
+  Bugs fixed:
+    - Cast to VARCHAR rather than to CHAR for pgsql.
+
+forum_access 6.x-1.x-RC1 (2009-06-03):
+  Bugs fixed:
+    - #472494: check_plain() the role names.
+
+forum_access 6.x-1.x-BETA4 (2009-05-22):
+  Enhancements:
+    - #243076: Major update of Swedish translation.
+  Bugs fixed:
+    - Fix minor structural bug.
+    - #410930: Work around a core bug that puts wrong values into $node->tid.
+    - Tune the behavior of the administrative interface.
+    - #413708: Make forums visible to users with 'administer nodes' permission.
+    - #408560: Grants still not saved under some circumstances.
+    - #426498: Potential conflict with pre-existing 'Forum Moderator' role.
+    - #407080: Remove the 'reply' links if the user does not have the 'Post' grant.
+    - #408560: Grants not saved for newly created forums.
+
+forum_access 6.x-1.x-BETA3 (2009-03-18):
+  Enhancements:
+    - #310254, #163964: Implement comment moderation as well as advanced node moderation.
+    - Remove 'post' links from forum page if the user doesn't have the 'create' permission.
+    - Disable checkboxes for roles that have no or full access anyway.
+    - #213957: Implement the ability to use the settings of an existing forum as a template.
+    - Provide a choice of how/when to update the {node_access} table and only do it if necessary.
+    - Tune presentation of configuration information.
+    - Add extensive configuration information and trouble-shooting tips.
+    - Use View grant to control access to the forum's admin page (with the access settings!), too.
+    - Make forum_access_db_rewrite_sql() more resistant against name conflicts.
+    - Keep the checkboxes aligned even when the column titles wrap; improve the titles for containers.
+
+forum_access 6.x-1.x-BETA2 (2009-01-29):
+  Enhancements:
+    - Collapse Moderators fieldset if empty.
+    - Factor out form and batch code into .inc files.
+    - Implement batch mode to support correct updating (using node_access_acquire_grants() rather than node_access_write_grants()).
+    - Implement grant priority.
+    - Provide help for getting along with Content Access.
+    - #109924: Add optional forum_access_preprocess_forum_list(&$variables) function to provide moderators in the $forums template variable.
+    - #109924: Add new forum_access_get_moderator_uids($tid) function (requires new ACL version!).
+
+forum_access 6.x-1.x-BETA1 (2008-10-14):
+  Bugs fixed:
+    - #344711: Fix forum_access_access() to use $account consistently.
+    - #328341: Make pgsql CAST() conditional on the database engine.
+    - #309113: Fix warning messages in bootstrap.inc (caused by bad drupal_set_message() call).
+    - #302774: Remove cruft from _forum_access_get_roles().
+    - Use node_access_needs_rebuild() rather than node_access_rebuild() when enabling/disabling module.
+    - Fix cosmetic coder issues (no functional change).
+    - #246959: Fix a bad t() call.
+    - #219778: Remove grants when roles are deleted, purge orphaned grants.
+    - #230123: Newest pgsql refuses to do automatic type conversions.
+    - Provide a message for uninitialized forums when newly installed, rather than the incorrect 'default' setting of grant_all for 1 & 2.
+    - #222477: forum_access_node_access_records() didn't return its result.
+  Porting to D6:
+    - #128846: Accommodate PostgreSQL 8.3's requirement for explicit casts.
+    - Publish .pot file.
+    - Port precautionary warning on Content Access page (will need to test and activate full diagnostics when CA is ported).
+    - #231611: Add support for non-forum content types; update moderator(s) when changing forum.
+    - Avoid E_NOTICEs — ready for beta.
+    - First-shot port to D6.
+    - Copied 5.x-1.9.
+
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/INSTALL.txt b/drupal/sites/default/boinc/modules/contrib/forum_access/INSTALL.txt
new file mode 100644
index 0000000..f0143cc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/INSTALL.txt
@@ -0,0 +1,8 @@
+To install this module, simply put the entire forum_access directory into
+your modules directory or sites/all/modules directory and activate it.
+
+This module requires the ACL module API and will not activate without it.
+
+After you've installed Forum Access, go to admin/content/forum, click on an
+'edit forum' link and set Access Control for the selected forum.
+Repeat this for every other forum.
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/forum_access/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/README.txt b/drupal/sites/default/boinc/modules/contrib/forum_access/README.txt
new file mode 100644
index 0000000..43046e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/README.txt
@@ -0,0 +1,5 @@
+This module changes your forum administration page to let you apply role-based
+permissions to each forum, and to give each forum individual moderators.
+
+Moderators automatically get all privileges on all posts in that forum,
+including edit and delete.
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.admin.inc b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.admin.inc
new file mode 100644
index 0000000..36e2e41
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.admin.inc
@@ -0,0 +1,941 @@
+<?php
+
+/**
+ * @file forum_access.admin.inc
+ *
+ * Include file for forum_access.module, containing (sub-)page handling
+ * (form_alter) and batch code.
+ *
+ */
+
+/**
+ * Rewrite the forum administration page with our new access rules.
+ */
+function _forum_access_forum_form(&$form, &$form_state, $is_container) {
+  $tid = (isset($form['tid']['#value']) ? $form['tid']['#value'] : NULL);
+  if (isset($tid) && !forum_access_access($tid, 'view', NULL, FALSE)) {
+    drupal_access_denied();  // Deny access if the user doesn't have View access.
+    module_invoke_all('exit');
+    exit;
+  }
+
+  $roles = user_roles();
+  if (isset($tid)) {  // edit
+    $template_tid = variable_get('forum_access_default_template_tid', 0);
+    $settings = _forum_access_get_settings($tid);
+  }
+  else {  // create
+    $template_tid = variable_get('forum_access_new_template_tid', NULL);
+    $settings = _forum_access_get_settings($template_tid);
+  }
+  $fa_priority = $settings['priority'];
+
+  $form['forum_access'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Access control'),
+    '#collapsible' => TRUE,
+    '#tree' => TRUE,
+  );
+
+  $tr = 't';
+  $variables = array(
+    '!access_content'                 => '<em>'. l($tr('access content'), 'admin/user/permissions', array('fragment' => 'module-node', 'html' => TRUE)) .'</em>',
+    '!access_comments'                => '<em>'. l($tr('access comments'), 'admin/user/permissions', array('fragment' => 'module-comment', 'html' => TRUE)) .'</em>',
+    '!create_forum_topics'            => '<em>'. l($tr('create forum topics'), 'admin/user/permissions', array('fragment' => 'module-forum', 'html' => TRUE)) .'</em>',
+    '!post_comments'                  => '<em>'. l($tr('post comments'), 'admin/user/permissions', array('fragment' => 'module-comment', 'html' => TRUE)) .'</em>',
+    '!post_comments_without_approval' => '<em>'. l($tr('post comments without approval'), 'admin/user/permissions', array('fragment' => 'module-comment', 'html' => TRUE)) .'</em>',
+    '!edit_own_forum_topics'          => '<em>'. l($tr('edit own forum topics'), 'admin/user/permissions', array('fragment' => 'module-forum', 'html' => TRUE)) .'</em>',
+    '!edit_any_forum_topics'          => '<em>'. l($tr('edit any forum topics'), 'admin/user/permissions', array('fragment' => 'module-forum', 'html' => TRUE)) .'</em>',
+    '!delete_own_forum_topics'        => '<em>'. l($tr('delete own forum topics'), 'admin/user/permissions', array('fragment' => 'module-forum', 'html' => TRUE)) .'</em>',
+    '!delete_any_forum_topics'        => '<em>'. l($tr('delete any forum topics'), 'admin/user/permissions', array('fragment' => 'module-forum', 'html' => TRUE)) .'</em>',
+    '!administer_comments'            => '<em>'. l($tr('administer comments'), 'admin/user/permissions', array('fragment' => 'module-comment', 'html' => TRUE)) .'</em>',
+    '!administer_forums'              => '<em>'. l($tr('administer forums'), 'admin/user/permissions', array('fragment' => 'module-forum', 'html' => TRUE)) .'</em>',
+    '!administer_nodes'               => '<em>'. l($tr('administer nodes'), 'admin/user/permissions', array('fragment' => 'module-node', 'html' => TRUE)) .'</em>',
+  );
+  if (!$is_container) {
+    $form['forum_access']['permissions'] = array(
+      '#type' => 'fieldset',
+      '#title' => $tr('Permissions information'),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+    $form['forum_access']['permissions'][] = array(
+      '#type' => 'markup',
+      '#value' => '<div>'. t('Note that users need') .'<ul style="margin-top: 0"><li>'.
+                           t('the !access_content and !access_comments permissions <strong>AND <em>View</em></strong> to be able to see this forum and its content at all,', $variables) .'</li><li>'.
+                           t('the !create_forum_topics (and similar) permissions <strong>AND <em>Post</em></strong> to be able to create forum content, and', $variables) .'</li><li>'.
+                           t('the !post_comments and (probably) !post_comments_without_approval permission <!TAG>AND <em>Comment</em></!TAG> to be able to post comments/replies;', $variables + array('!TAG' => (variable_get('forum_access_D5_legacy_mode', FALSE) ? 'del title="'. t('Drupal 5 legacy mode') .'"' : 'strong'))) .'</li><li>'.
+                           t('the !edit_own_forum_topics or !edit_any_forum_topics (and similar) permissions <strong>AND (<em>Edit</em> AND <em>Comment</em></strong>) can be added if desired, <strong>plus</strong>', $variables) .'</li><li>'.
+                           t('the !delete_own_forum_topics or !delete_any_forum_topics (and similar) permissions (<strong>OR <em>Delete</em></strong>) if desired;', $variables) .'</li><li>'.
+                           t('the !administer_comments (global!) permission <strong>OR <em>Edit</em>/<em>Delete</em></strong> to be able to edit/delete comments;', $variables) .'</li><li>'.
+                           t('the !administer_forums permission <strong>AND <em>View</em></strong> to be able to administer forums (and change access!).', $variables) .'</li></ul>'.
+                           t('Furthermore note that content which is not published is treated in a different way by Drupal: it can be viewed only by its author or by users with the !administer_nodes permission. Unpublished comments and replies are accessible to users with <strong><em>Edit</em> OR <em>Delete</em></strong>, <strong>OR</strong> with the !administer_comments permission, but they are never counted on the forum page.', $variables) .'</div>',
+    );
+  }
+
+  // Load a template:
+  $vid = _forum_access_get_vid();
+  $form['forum_access']['template'] = array(
+      '#type' => 'fieldset',
+      '#title' => $tr('Template'),
+      '#collapsible' => TRUE,
+      '#collapsed' => empty($template_tid),
+  );
+  $form['forum_access']['template']['taxonomy'][$vid] = taxonomy_form($vid, array($template_tid), '');
+  $form['forum_access']['template']['taxonomy'][$vid]['#description'] = t("Select a forum and click !Load to retrieve that forum's settings as a starting point for this forum or container.", array('!Load' => '['. t('Load') .']'));
+  $form['forum_access']['template']['load_button'] = array(
+    '#type' => 'button',
+    '#name' => 'load_template',
+    '#value' => t('Load'),
+    '#submit' => FALSE,
+  );
+  $form['forum_access']['template']['template_tid'] = array(
+    '#type' => 'value',
+    '#value' => NULL,
+  );
+  $form['forum_access']['template']['select_by_default'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Remember this selection.'),
+    '#default_value' => FALSE,
+  );
+  $form['forum_access']['template']['load_for_new'] = array(
+    '#type' => 'checkbox',
+    '#title' => t("Use the selected forum's settings as defaults for new forums and containers."),
+    '#default_value' => FALSE,
+  );
+  $form['forum_access']['#after_build'][] = '_forum_access_forum_form_after_build';
+
+  // Column titles:
+  $form['forum_access']['headers']['view'] = array(
+    '#type' => 'item',
+    '#prefix' => '<div class="forum-access-div">',
+    '#title' => ($is_container ? t('View this container') : t('View this forum')),
+    '#suffix' => '</div>',
+  );
+  $forum_vocabulary = taxonomy_vocabulary_load(_forum_access_get_vid());
+  $form['forum_access']['headers']['create'] = array(
+    '#type' => 'item',
+    '#prefix' => '<div class="forum-access-div" id="forum-access-div-container">',
+    '#title' => t('See this container in the %Forums selection list', array('%Forums' => $forum_vocabulary->name)),
+    '#suffix' => '</div>',
+  );
+  if (!$is_container) {
+    $form['forum_access']['headers']['create'] = array(  // overwrite!
+      '#type' => 'item',
+      '#prefix' => '<div class="forum-access-div">',
+      '#title' => t('Post in this forum'),
+      '#suffix' => '</div>',
+    );
+    $form['forum_access']['headers']['comment_create'] = array(
+      '#type' => 'item',
+      '#prefix' => '<div class="forum-access-div">',
+      '#title' => t('Comment on posts'),
+      '#suffix' => '</div>',
+    );
+    $form['forum_access']['headers']['update'] = array(
+      '#type' => 'item',
+      '#prefix' => '<div class="forum-access-div">',
+      '#title' => t('Edit posts'),
+      '#suffix' => '</div>',
+    );
+    $form['forum_access']['headers']['delete'] = array(
+      '#type' => 'item',
+      '#prefix' => '<div class="forum-access-div">',
+      '#title' => t('Delete posts'),
+      '#suffix' => '</div>',
+    );
+  }
+  $form['forum_access']['headers']['clearer'] = array(
+      '#value' => '<div class="forum-access-clearer"></div>',
+  );
+  
+  // Column content (checkboxes):
+  $form['forum_access']['view'] = array(
+    '#type' => 'checkboxes',
+    '#prefix' => '<div class="forum-access-div">',
+    '#suffix' => '</div>',
+    '#options' => $roles,
+    '#default_value' => $settings['view'],
+    '#process' => array('expand_checkboxes', '_forum_access_forum_form_disable_checkboxes'),
+  );
+  $form['forum_access']['create'] = array(
+    '#type' => 'checkboxes',
+    '#prefix' => '<div class="forum-access-div">',
+    '#suffix' => '</div>',
+    '#options' => $roles,
+    '#default_value' => $settings['create'],
+    '#process' => array('expand_checkboxes', '_forum_access_forum_form_disable_checkboxes'),
+  );
+  if (!$is_container) {
+    $form['forum_access']['comment_create'] = array(
+      '#type' => 'checkboxes',
+      '#prefix' => '<div class="forum-access-div">',
+      '#suffix' => '</div>',
+      '#options' => $roles,
+      '#default_value' => $settings['comment_create'],
+      '#process' => array('expand_checkboxes', '_forum_access_forum_form_disable_checkboxes'),
+    );
+    $form['forum_access']['update'] = array(
+      '#type' => 'checkboxes',
+      '#prefix' => '<div class="forum-access-div">',
+      '#suffix' => '</div>',
+      '#options' => $roles,
+      '#default_value' => $settings['update'],
+      '#process' => array('expand_checkboxes', '_forum_access_forum_form_disable_checkboxes'),
+    );
+    $form['forum_access']['delete'] = array(
+      '#type' => 'checkboxes',
+      '#prefix' => '<div class="forum-access-div">',
+      '#suffix' => '</div>',
+      '#options' => $roles,
+      '#default_value' => $settings['delete'],
+      '#process' => array('expand_checkboxes', '_forum_access_forum_form_disable_checkboxes'),
+    );
+  }
+  $form['forum_access']['clearer'] = array(
+    '#type' => 'item',
+    '#prefix' => '<div class="forum-access-clearer">',
+    '#suffix' => '</div>',
+    '#description' => t('For explanations of special cases, hover your mouse over role names.'),
+  );
+  if ($is_container) {
+    $form['forum_access']['container_note'] = array(
+      '#type' => 'item',
+      '#description' => t('Users who can see any forum or container within this one should get the <strong><em>View</em></strong> grant. <br /> Users who can post to a forum within this container should get the <strong><em>See</em></strong> grant, so that this forum appears in the proper context in the selection list.', $variables),
+    );
+  }
+
+  drupal_add_css(drupal_get_path('module', 'forum_access') .'/forum_access.css');
+
+  // Find our moderator ACL:
+  if (isset($tid)) {  // edit, not new
+    $acl_id = acl_get_id_by_number('forum_access', $tid);
+    if (!$acl_id) { // create one
+      $acl_id = acl_create_new_acl('forum_access', NULL, $tid);
+      // update every existing node in this forum to use this acl.
+      $result = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $tid);
+      while ($node = db_fetch_object($result)) {
+        // all privs to this ACL.
+        acl_node_add_acl($node->nid, $acl_id, 1, 1, 1);
+      }
+    }
+    $form['forum_access']['acl'] = acl_edit_form($acl_id, t('Moderators'));
+    $form['forum_access']['acl'][] = array(
+      '#type' => 'markup',
+      '#value' => '<div>'. t('Moderators receive all grants above.') .'</div>',
+      '#weight' => -1,
+    );
+    $form['forum_access']['acl']['note'] = array(
+      '#type' => 'markup',
+      '#value' => '<div>'. t('Note: Changes to moderators are not saved until you click [!Save] below.', array('!Save' => $tr('Save'))) .'</div>',
+    );
+    $form['forum_access']['acl']['#after_build'][] = '_forum_access_forum_form_after_build_acl0';
+    $form['forum_access']['acl']['#after_build'] = array_reverse($form['forum_access']['acl']['#after_build']);
+    $form['forum_access']['acl']['#after_build'][] = '_forum_access_forum_form_after_build_acl2';
+  }
+
+  foreach (module_implements('node_access_records') as $module) {
+    $na_modules[$module] = $module;
+  }
+  unset($na_modules['forum_access']);
+  unset($na_modules['acl']);
+  if (count($na_modules) && !$is_container) {
+    $form['forum_access']['interference'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Module interference'),
+      '#collapsible' => TRUE,
+    );
+    $variables = array(
+      '%content_type' => node_get_types('name', 'forum'),
+      '!Forum_Access' => 'Forum Access',
+      '!Content_Access' => l('Content Access', 'http://drupal.org/project/content_access'),
+      '@Content_Access' => 'Content Access',
+      '!ACL' => 'ACL',
+      '!module_list' => '<ul><li>'. implode($na_modules, '</li><li>') .'</li></ul>',
+    );
+    $form['forum_access']['interference'][] = array(
+      '#type' => 'item',
+      '#value' => '<p>'. t("Besides !Forum_Access (and !ACL) you have installed the following node access module(s): !module_list   The grants of every module are combined for each node. Access can only be granted, not removed — if a certain module grants a permission, the other(s) cannot deny it.", $variables) .'</p>',
+      '#description' => t('Forums can contain other content types besides %content_type; !Forum_Access will contribute the grants defined above to every node in this forum, but other node access control modules may also contribute their grants, especially to nodes of types other than %content_type.', $variables),
+    );
+
+    if (module_exists('content_access')) {
+      $ca_settings = variable_get('content_access_settings', array());
+      foreach (array('view', 'update', 'delete', 'per_node') as $type) {
+        $value = content_access_get_settings($type, 'forum');
+        if (!empty($value)) {
+          $ca_interferes = TRUE;
+        }
+      }
+      $ca_priority = content_access_get_settings('priority', 'forum');
+      $is_conflict = $ca_priority >= $fa_priority && !empty($ca_interferes) || $ca_priority > $fa_priority;
+      $variables += array(
+        '!link' => l(t('@Content_Access configuration for the %content_type type', $variables), 'admin/content/node-type/forum/access', array('html' => TRUE)),
+        '%Advanced' => $tr('Advanced'),
+      );
+      $specifically = ($ca_priority == $fa_priority ? t('Specifically, any grants given by !Content_Access cannot be taken back by !Forum_Access.', $variables) : '');
+      if ($is_conflict) {
+        $form['forum_access']['interference']['by_content_access'] = array(
+          '#type' => 'fieldset',
+          '#title' => 'Content Access',
+          '#collapsible' => FALSE,
+          '#attributes' => array('class' => 'error'),
+        );
+        $form['forum_access']['interference']['by_content_access'][] = array(
+          '#value' => '<div>'. t('You have set the !Content_Access module to control access to content of type %content_type—this can interfere with proper operation of !Forum_Access!', $variables) ." $specifically</div>",
+        );
+        if ($ca_priority == $fa_priority) {
+          $form['forum_access']['interference']['by_content_access'][] = array(
+            '#value' => '<div>'. t("Unless you really know what you're doing, we recommend that you go to the !link page and clear all checkboxes. This will instruct @Content_Access to leave the %content_type nodes alone. However, if you put nodes of other content types into forums as well, then these content types will continue to have this problem.", $variables) .'</div>',
+          );
+        }
+        else {
+          $form['forum_access']['interference']['by_content_access'][] = array(
+            '#value' => '<div>'. t("The priority of @Content_Access ($ca_priority) is higher than the priority of !Forum_Access ($fa_priority), which means the latter is <strong>completely disabled</strong> for the %content_type type! Unless you really know what you're doing, we recommend that you go to the !link page, change the priority (under %Advanced) to 0, and clear all checkboxes.", $variables) .'</div>',
+          );
+        }
+        $form['forum_access']['interference']['by_content_access'][] = array(
+          '#value' => '<div>'. t("Alternatively, you can give !Forum_Access priority over @Content_Access by either raising the priority of !Forum_Access in every forum above the priority of @Content_Access, or by lowering the priority of @Content_Access for the content types in question below the priority of !Forum_Access.", $variables) .'</div>',
+        );
+      }
+      else {
+        $form['forum_access']['interference'][] = array(
+          '#value' => '<p>'. t('Note: You have installed the !Content_Access module, which has the capability to grant access to content that would otherwise be protected by !Forum_Access. Be careful when configuring @Content_Access!', $variables) .'</p>',
+        );
+      }
+    }
+
+    $form['forum_access']['interference']['advanced'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Advanced'),
+      '#collapsible' => TRUE,
+      '#collapsed' => !($fa_priority != 0),
+    );
+    $form['forum_access']['interference']['advanced']['priority'] = array(
+      '#type' => 'weight',
+      '#title' => t('Priority of !Forum_Access node grants in this forum', $variables),
+      '#default_value' => $fa_priority,
+      '#description' => t("If you have no other node access control modules installed, you should leave this at the default 0. <br /> Otherwise you can raise or lower the priority of !Forum_Access' grants. Out of all the grants contributed to a node, only those with the highest priority are used, and all others are discarded.", $variables),
+    );
+  }
+
+  if (!$is_container) {
+    $variables = array(
+      '!Forum_Access'        => l('Forum Access', 'http://drupal.org/project/forum_access'),
+      '!ACL'                 => l('ACL', 'http://drupal.org/project/acl'),
+      '%Module_interference' => t('Module interference'),
+      '!Forum_Access-dev'    => l('Forum Access 6.x-1.x-dev', 'http://drupal.org/node/96795', array('html' => TRUE)),
+      '!ACL-dev'             => l('ACL 6.x-1.x-dev', 'http://drupal.org/node/96794', array('html' => TRUE)),
+      '%devel_node_access'   => 'devel_node_access',
+      '!Devel'               => l('Devel', 'http://drupal.org/project/devel'),
+      '!DNA'                 => 'DNA',
+      '!debug_mode'          => l('debug mode', 'admin/settings/devel', array('fragment' => 'edit-devel-node-access-debug-mode')),
+      '!dna_summary'         => l('devel/node_access/summary', 'devel/node_access/summary'),
+      '!Rebuild_permissions' => '['. $tr('Rebuild permissions') .']',
+      '!Post_settings_link'  => l('admin/content/node-settings', 'admin/content/node-settings'),
+      '!Forum_Access_'       => l('Forum Access', 'http://drupal.org/project/issues/forum_access'),
+      '!ACL_'                => l('ACL', 'http://drupal.org/project/issues/acl'),
+    );
+    $form['forum_access']['troubleshooting'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Trouble-shooting node access'),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+    $form['forum_access']['troubleshooting'][] = array(
+      '#type' => 'item',
+      '#value' => '<div>'.    t("In case of problems, follow these steps until you've got it worked out:") .'<ol style="margin-top: 0"><li>'.
+                              t("Update to the 'recommended' !Forum_Access and !ACL releases for your version of Drupal.", $variables) .'</li><li>'.
+        (count($na_modules) ? t("Read %Module_interference above and update your other node access modules.", $variables) .'</li><li>' : '') .
+                              t("Check the release notes of the development snapshots for issues that might have been fixed in !Forum_Access-dev or !ACL-dev since the latest release.", $variables) .'</li><li>'.
+                              t("Install the %devel_node_access module (!DNA, part of the !Devel module) and enable its !debug_mode: !DNA will show you all the grants that actually control your nodes in a footer block on each node's page.", $variables) .'</li><li>'.
+                              t("Additional insight can be gained from !dna_summary and by enabling the second !DNA block.", $variables) .'</li><li>'.
+                              t("Click !Rebuild_permissions on !Post_settings_link and check DNA for changes.", $variables) .'</li><li>'.
+                              t("Check the issues queues of !Forum_Access_ and !ACL_ for existing reports and possible solutions.", $variables) .'</li><li>'.
+                              t("If all of this hasn't helped, then pick ONE node that is misbehaving, look at it using an account that can see the node (and that should NOT have access if that's your problem!), create a new issue in the issues queue, describe the problem... <ul><li> what did you do? </li><li> what did you expect? </li><li> what happened instead? </li></ul> ... and <strong>attach a screenshot of all the DNA records</strong> for that one node. <br /> Be sure to indicate p [...]
+    );
+    $form['forum_access']['troubleshooting'][] = array(
+      '#type' => 'item',
+      '#value' => '<div>'. t("Note: You should not keep the !Devel module enabled on a production site.", $variables) .'</div>',
+    );
+  }
+
+  if (!$is_container && isset($tid) && !node_access_needs_rebuild()) {
+    $count = db_result(db_query("SELECT COUNT(DISTINCT n.nid) FROM {node} n INNER JOIN {term_node} tn ON tn.vid = n.vid WHERE tn.tid = %d", $tid));
+    $limit = 20;   // from _node_access_rebuild_batch_operation()
+    $threshold = variable_get('forum_access_batch_threshold', $limit);  // change the variable if you want
+    $form['forum_access']['update_limit'] = array(
+      '#type' => 'value',
+      '#value' => $limit,
+    );
+    $form['forum_access']['update_choice'] = array(
+      '#type' => 'radios',
+      '#title' => 'Update the permissions',
+      '#description' => t('<em>If</em> you make any node access changes, then each node in this forum needs to be updated. Hover over the radiobuttons for details.'),
+      '#options' => NULL,
+      0 => array(
+        '#type' => 'radio',
+        '#title' => t('for all %count nodes immediately', array('%count' => $count)),
+        '#attributes' => array('title' => t('This option is the fastest, but with many nodes it can still take considerable time and memory. If it fails, it will leave your !node_access table in an inconsistent state.', array('!node_access' => '{node_access}'))),
+        '#return_value' => 0,
+        '#default_value' => ($count <= $threshold ? 0 : 1),
+        '#parents' => array('forum_access', 'update_choice'),
+      ),
+      1 => array(
+        '#type' => 'radio',
+        '#title' => t('in batches of !limit now', array('!limit' => $limit)),
+        '#attributes' => array('title' => t('The batch option will always work reliably, but it takes longer to complete.')),
+        '#return_value' => 1,
+        '#default_value' => ($count <= $threshold ? 0 : 1),
+        '#parents' => array('forum_access', 'update_choice'),
+      ),
+      2 => array(
+        '#type' => 'radio',
+        '#title' => t('rebuild <strong>all</strong> permissions later'),
+        '#attributes' => array('title' => t("This option will only set a flag to remind you to rebuild all permissions later; this is useful if you want to make multiple changes to your node access settings quickly and delay the updating until you're done.")),
+        '#return_value' => 2,
+        '#default_value' => ($count <= $threshold ? 0 : 1),
+        '#parents' => array('forum_access', 'update_choice'),
+      ),
+      '#attributes' => array('class' => 'forum-access-flowed'),
+    );
+  }
+  if (isset($tid)) {
+    $form['forum_access']['force_update'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Update even if unchanged'),
+    );
+  }
+
+  // Move some stuff down so our block goes in a nice place.
+  $form['submit']['#weight'] = 10;
+  $form['delete']['#weight'] = 10;
+
+  $form['#validate'][] = '_forum_access_form_validate';
+  $form['#submit'][] = '_forum_access_form_submit';
+}
+
+/**
+ * Helper function to return a rid-indexed array of arrays, whose keys
+ * are the permissions of the corresponding role.
+ */
+function _forum_access_get_role_permissions() {
+  static $permissions;
+  if (empty($permissions)) {
+    $permissions[DRUPAL_AUTHENTICATED_RID] = array();
+    $result = db_query('SELECT r.rid, p.perm FROM {role} r INNER JOIN {permission} p ON r.rid = p.rid ORDER BY r.rid');
+    while ($role = db_fetch_object($result)) {
+      $permissions[$role->rid] = ($role->rid == DRUPAL_ANONYMOUS_RID ? array() : $permissions[DRUPAL_AUTHENTICATED_RID]);
+      $permissions[$role->rid] += array_flip(explode(', ', $role->perm));
+    }
+  }
+  return $permissions;
+}
+
+function _forum_access_forum_form_disable_checkboxes($element) {
+  global $user;
+  $tr = 't';
+  $moderator_rid = forum_access_query_moderator_rid();
+
+  $permissions = _forum_access_get_role_permissions();
+  $element_children = element_children($element);
+  foreach ($element_children as $rid) {
+    if ($rid == $moderator_rid) {
+      $element[$rid]['#prefix'] = '<span title="'. t("This is the (temporary) @Forum_Moderator role; it has the '@administer_nodes' and '@administer_comments' permissions and is only used temporarily by @Forum_Access — do NOT give this role to any user!", array('@Forum_Moderator' => t('Forum Moderator'), '@administer_nodes' => $tr('administer nodes'), '@administer_comments' => $tr('administer comments'), '@Forum_Access' => 'Forum Access')) .'" class="forum-access-temporary-moderator">';
+      $element[$rid]['#suffix'] = "</span>";
+      $element[$rid]['#default_value'] = TRUE;
+      $element[$rid]['#disabled'] = TRUE;
+    }
+    elseif ($element['#parents'][1] == 'create') {
+      // Do nothing (Post is always mutable).
+    }
+    elseif ($element['#parents'][1] == 'comment_create') {
+    }
+    elseif ($element['#parents'][1] == 'view' && isset($permissions[$rid]['administer forums'])) {
+      $element[$rid]['#title'] = '<em>'. $element[$rid]['#title'] .'</em>';
+      $element[$rid]['#prefix'] = '<span title="'. t("This role has the '@administer_forums' permission, and granting '@View' enables the role holders to change the settings on this page, including @Access_control!", array('@administer_forums' => $tr('administer forums'), '@View' => t('View'), '@Access_control' => t('Access control'))) .'">';
+      if (isset($permissions[$rid]['administer nodes'])) {
+        $element[$rid]['#prefix'] = str_replace('">', ' '. t("Because the role also has the '@administer_nodes' permission, it has full access to all nodes either way.", array('@administer_nodes' => $tr('administer nodes'))) .'">', $element[$rid]['#prefix']);
+      }
+      $element[$rid]['#suffix'] = "</span>";
+    }
+    elseif (isset($permissions[$rid]['administer nodes'])) {
+      $element[$rid]['#disabled'] = TRUE;
+      $element[$rid]['#default_value'] = TRUE;
+      $element[$rid]['#prefix'] = '<span title="'. ($rid != $moderator_rid
+                                                    ? t("This role has the '@administer_nodes' permission and thus full access to all nodes.", array('@administer_nodes' => $tr('administer nodes')))
+                                                    : t("This is the @Forum_Moderator role; it has the '@administer_nodes' and '@administer_comments' permissions and thus full access to all nodes and comments.", array('@Forum_Moderator' => t('Forum Moderator'), '@administer_nodes' => $tr('administer nodes'), '@administer_comments' => $tr('administer comments')))) .'">';
+      $element[$rid]['#suffix'] = "</span>";
+    }
+  }
+  return $element;
+}
+
+function _forum_access_forum_form_after_build_acl0($form, $form_state) {
+  if (isset($form['#post']['forum_access']['template']['taxonomy'])) {
+    // Get ACL's user_list for the template and replace it before ACL's after_build function gets its shot at it.
+    $imv = array_values($form['#post']['forum_access']['template']['taxonomy']);
+    $template_tid = reset($imv);
+    if ($acl_id = acl_get_id_by_number('forum_access', $template_tid)) {
+      $f = acl_edit_form($acl_id, 'DUMMY');
+      $form['user_list']['#value'] = $f['user_list']['#default_value'];
+    }
+  }
+  return $form;
+}
+
+function _forum_access_forum_form_after_build_acl2($form, $form_state) {
+  if (!count(unserialize($form['user_list']['#default_value'])) && !count(unserialize($form['user_list']['#value']))) {
+    $form['#collapsed'] = TRUE;
+  }
+  if ($form['user_list']['#default_value'] != $form['user_list']['#value']) {
+    $form['note']['#value'] = preg_replace('/<div>/', '<div class="warning">', $form['note']['#value']);
+  }
+  return $form;
+}
+
+function _forum_access_forum_form_after_build($form, &$form_state) {
+  if (isset($form_state['clicked_button']['#name']) && $form_state['clicked_button']['#name'] == $form['template']['load_button']['#name']) {
+    // Load a setting from a template:
+    $template_tid = reset(array_values($form['#post']['forum_access']['template']['taxonomy']));
+    $form_state['values']['forum_access']['template']['template_tid'] = $template_tid;
+    $form['template']['#collapsed'] = FALSE;
+
+    $settings = _forum_access_get_settings($template_tid);
+    foreach (array('view', 'create', 'comment_create', 'update', 'delete') as $grant_type) {
+      if (empty($form[$grant_type])) {
+        continue;
+      }
+      foreach (element_children($form[$grant_type]) as $tid) {
+        $checked = array_search($tid, $settings[$grant_type]) !== FALSE;
+        $form[$grant_type][$tid]['#value'] = ($checked ? $tid : 0);
+      }
+    }
+    $form['interference']['advanced']['priority']['#value'] = $settings['priority'];
+    if ($settings['priority'] != 0) {
+      $form['interference']['advanced']['#collapsed'] = FALSE;
+    }
+  }
+  elseif (is_array(reset($form_state['values']['forum_access']['template']['taxonomy']))) {
+      $imv = reset($form_state['values']['forum_access']['template']['taxonomy']);
+    $template_tid = reset($imv);
+  }
+  if (isset($template_tid)) {
+    $form['template']['select_by_default']['#value'] = ($template_tid && $template_tid == variable_get('forum_access_default_template_tid', 0));
+    $form['template']['load_for_new']['#value'] = ($template_tid && $template_tid == variable_get('forum_access_new_template_tid', 0));
+  }
+  return $form;
+}
+
+function _forum_access_form_validate($form, &$form_state) {
+  global $user;
+
+  if ($user->uid == 1) {
+    return;
+  }
+  $access = $form_state['values']['forum_access']; // shortcut
+  foreach ($access['view'] as $rid => $checked) {
+    if ($checked && isset($user->roles[$rid])) {
+      return;
+    }
+  }
+  form_set_error('forum_access][view', t('You must assign %View access to a role that you hold.', array('%View' => 'View')));
+}
+
+function _forum_access_form_submit($form, &$form_state) {
+  $access = $form_state['values']['forum_access']; // shortcut
+
+  // Save template choice:
+  $template_tid = reset(array_values($access['template']['taxonomy']));
+  if ($access['template']['select_by_default']) {
+    variable_set('forum_access_default_template_tid', $template_tid);
+  }
+  elseif (variable_get('forum_access_default_template_tid', 0) == $template_tid) {
+    variable_del('forum_access_default_template_tid');
+  }
+  if ($access['template']['load_for_new']) {
+    variable_set('forum_access_new_template_tid', $template_tid);
+  }
+  elseif (variable_get('forum_access_new_template_tid', 0) == $template_tid) {
+    variable_del('forum_access_new_template_tid');
+  }
+  module_load_include('node.inc', 'forum_access');
+  $moderator_rid = _forum_access_get_moderator_rid(TRUE);  // create the moderators role if it doesn't exist
+
+  // check for changes
+  $is_changed = $is_new = strpos($_GET['q'], 'admin/content/forum/add/') === 0;
+  $is_changed = $is_changed || !empty($access['force_update']);
+  $form_initial_values = $form;  // avoid Coder warning
+  $form_initial_values = $form_initial_values['forum_access'];
+  foreach (array('view', 'create', 'comment_create', 'update', 'delete') as $grant_type) {
+    if (isset($form_initial_values[$grant_type])) {
+      $defaults = $form_initial_values[$grant_type]['#default_value'];
+      $defaults = array_flip($defaults);
+      foreach ($access[$grant_type] as $rid => $checked) {
+        $is_changed = $is_changed || (empty($form_initial_values[$grant_type][$rid]['#disabled']) && !empty($checked) != isset($defaults[$rid]));
+      }
+    }
+  }
+  if (!$is_changed && $access['acl']['user_list'] == $form_initial_values['acl']['user_list']['#default_value'] && $access['interference']['advanced']['priority'] == $form_initial_values['interference']['advanced']['priority']['#default_value']) {
+    drupal_set_message(t('The content access permissions are unchanged.'));
+    return;
+  }
+
+  $tid = $form_state['values']['tid'];
+  db_query("DELETE FROM {forum_access} WHERE tid = %d", $tid);
+
+  $fa_priority = isset($access['interference']['advanced']['priority']) ? $access['interference']['advanced']['priority'] : 0;
+  if (array_key_exists('acl', $access)) {
+    $moderators = unserialize($access['acl']['user_list']);
+    acl_save_form($access['acl'], $fa_priority);
+  }
+  $permissions = _forum_access_get_role_permissions();
+  foreach ($access['view'] as $rid => $checked) {
+    if ($rid == $moderator_rid) {
+      continue;
+    }
+    if (isset($permissions[$rid]['administer nodes'])) {
+      // We prefer not to save records for node administrators, because these have access anyway.
+      if (isset($permissions[$rid]['administer forums']) && $access['view'][$rid]) {
+        // For forum administrators, View needs to be saved, ...
+      }
+      else {
+        // ... otherwise forget View.
+        $access['view'][$rid] = FALSE;
+      }
+      if ($access['view'][$rid] || $access['create'][$rid] || $access['comment_create'][$rid]) {
+        db_query("INSERT INTO {forum_access} (tid, rid, grant_view, grant_update, grant_delete, grant_create, grant_comment_create, priority) VALUES (%d, %d, %d, %d, %d, %d, %d, %d)",
+        $tid, $rid, !empty($access['view'][$rid]), 0, 0, !empty($access['create'][$rid]), !empty($access['comment_create'][$rid]), $fa_priority);
+      }
+    }
+    else {
+      db_query("INSERT INTO {forum_access} (tid, rid, grant_view, grant_update, grant_delete, grant_create, grant_comment_create, priority) VALUES (%d, %d, %d, %d, %d, %d, %d, %d)",
+      $tid, $rid, (bool) $checked, !empty($access['update'][$rid]), !empty($access['delete'][$rid]), !empty($access['create'][$rid]), !empty($access['comment_create'][$rid]), $fa_priority);
+    }
+  }
+  $tr = 't';
+  $link = l($tr('edit'), 'admin/content/forum/edit/forum/'. $tid);
+  watchdog('access', 'Changed grants for %forum forum.', array('%forum' => $form_state['values']['name']), WATCHDOG_NOTICE, $link);
+
+  if (!$is_new && $form_state['values']['form_id'] != 'forum_form_container') {
+    if (!isset($access['update_choice']) || $access['update_choice'] == 2) {
+      node_access_needs_rebuild(TRUE);
+    }
+    elseif ($access['update_choice'] == 0) {
+      // update immediately (but use the batch functions anyway
+      $save_redirect = $form_state['redirect'];
+      $form_state['redirect'] = $_GET['q'];
+      $context = array();
+      $pending_error_messages = drupal_get_messages('error', FALSE);
+      $our_error_message_index = (isset($pending_error_messages['error']) ? count($pending_error_messages['error']) : 0);
+      _forum_access_update_batch_finished(FALSE, array(), array());       // add our error message (in case we die underway)
+      _forum_access_update_batch_operation($tid, 999999, 1, $context);
+      $pending_error_messages = drupal_get_messages('error', TRUE);       // still alive, get and clear all 'error' messages
+      unset($pending_error_messages['error'][$our_error_message_index]);  // remove our error message
+      foreach ($pending_error_messages['error'] as $message) {            // replay any others
+        drupal_set_message($message, 'error');
+      }
+      _forum_access_update_batch_finished(TRUE, array(), array());
+      $form_state['redirect'] = $save_redirect;
+    }
+    else {
+      // mass update in batch mode, modeled after node.module
+      $limit = $access['update_limit'];
+      $count = db_result(db_query("SELECT COUNT(DISTINCT n.nid) FROM {node} n INNER JOIN {term_node} tn ON tn.vid = n.vid WHERE tn.tid = %d", $tid));
+      $batch = array(
+        'title' => t('Updating content access permissions'),
+        'file' => drupal_get_path('module', 'forum_access') .'/forum_access.admin.inc',
+        'operations' => array(
+          array('_forum_access_update_batch_operation', array($tid, $limit, $count)),
+        ),
+        'finished' => '_forum_access_update_batch_finished'
+      );
+      batch_set($batch);
+    }
+  }
+
+  variable_del('forum_access_rids');  // clear cache
+}
+
+/**
+ * Batch operation for forum_access_form_submit().
+ *
+ * This is a multistep operation : we go through all nodes by packs of 20.
+ * The batch processing engine interrupts processing and sends progress
+ * feedback after 1 second execution time.
+ */
+function _forum_access_update_batch_operation($tid, $limit, $count, &$context) {
+  if (empty($context['sandbox'])) {
+    // Initiate multistep processing.
+    $context['sandbox']['progress'] = 0;
+    $context['sandbox']['current_node'] = 0;
+    $context['sandbox']['max'] = $count;
+  }
+
+  // Process the next 20 nodes.
+  $result = db_query_range("SELECT DISTINCT n.nid FROM {node} n INNER JOIN {term_node} tn ON tn.vid = n.vid WHERE n.nid > %d AND tn.tid = %d ORDER BY n.nid ASC", $context['sandbox']['current_node'], $tid, 0, $limit);
+  while ($row = db_fetch_array($result)) {
+    $loaded_node = node_load($row['nid'], NULL, TRUE);
+    // To preserve database integrity, only aquire grants if the node
+    // loads successfully.
+    if (!empty($loaded_node)) {
+      node_access_acquire_grants($loaded_node);
+    }
+    $context['sandbox']['progress']++;
+    $context['sandbox']['current_node'] = $loaded_node->nid;
+  }
+
+  // Multistep processing : report progress.
+  if ($context['sandbox']['progress'] != $context['sandbox']['max']) {
+    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
+  }
+}
+
+/**
+ * Post-processing for forum_access_form_submit().
+ */
+function _forum_access_update_batch_finished($success, $results, $operations) {
+  if ($success) {
+    drupal_set_message(t('The content access permissions have been updated.'));
+    cache_clear_all();
+  }
+  else {
+    drupal_set_message(t('The content access permissions have not been properly updated.'), 'error');
+  }
+}
+
+/**
+ * Add our settings to the forum administration settings page.
+ */
+function _forum_access_forum_admin_settings_form(&$form, &$form_state) {
+  $variables = array(
+    '!Forum_Access' => 'Forum Access',
+    '%View' => 'View',
+    '%Post' => 'Post',
+    '%post_comments' => 'post comments',
+  );
+  $form['forum_access'] = array(
+    '#type' => 'fieldset',
+    '#title' => 'Forum Access',
+    '#attributes' => array('id' => 'edit-forum-admin-settings-forum-access'),
+  );
+  $form['forum_access']['note'] = array(
+    '#type'          => 'item',
+    '#value'         => t('Note: All other !Forum_Access controls are on the administration pages of the individual forums.', $variables),
+  );
+  $form['forum_access']['forum_access_D5_legacy_mode'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Drupal 5 legacy mode', $variables),
+    '#default_value' => variable_get('forum_access_D5_legacy_mode', FALSE),
+    '#description'   => t('In Drupal 5, comment posting was not restricted by !Forum_Access; users with %View access (and the %post_comments permission) were always allowed to post forum comments. Starting with Drupal 6, posting comments is now restricted to users with %Post access. Turn this option on to revert to the old behavior. The default is OFF.', $variables),
+  );
+  $buttons = $form['buttons'];
+  unset($form['buttons']);
+  $form['buttons'] = $buttons;
+}
+
+/**
+ * Helper function to retrieve the settings for a forum.
+ */
+function _forum_access_get_settings($tid = NULL) {
+    $return = array('view' => array(), 'create' => array(), 'comment_create' => array(), 'update' => array(), 'delete' => array(), 'priority' => 0);
+  if (!isset($tid)) {
+    // Default to all users can read; all logged in users can post and comment.
+    $return['view'] = array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID);
+    $return['create'] = array(DRUPAL_AUTHENTICATED_RID);
+    $return['comment_create'] = array(DRUPAL_AUTHENTICATED_RID);
+  }
+  else {
+    $result = db_query("SELECT * FROM {forum_access} where tid = %d", $tid);
+    while ($access = db_fetch_object($result)) {
+      if ($access->grant_view) {
+        $return['view'][] = $access->rid;
+      }
+      if ($access->grant_update) {
+        $return['update'][] = $access->rid;
+      }
+      if ($access->grant_delete) {
+        $return['delete'][] = $access->rid;
+      }
+      if ($access->grant_create) {
+        $return['create'][] = $access->rid;
+      }
+      if ($access->grant_comment_create) {
+        $return['comment_create'][] = $access->rid;
+      }
+      if ($access->rid == DRUPAL_AUTHENTICATED_RID) {  // this is our reference
+        $return['priority'] = $access->priority;
+      }
+    }
+  }
+  return $return;
+}
+
+/**
+ * Remove unusable 'edit' links from overview form.
+ */
+function _forum_access_forum_overview(&$form, &$form_state) {
+  global $user;
+  if ($user->uid == 1) {
+    return;
+  }
+  foreach ($form as $key => $value) {
+    if (preg_match('/^tid:(.*):0$/', $key, $matches)) {
+      if (!forum_access_access($matches[1], 'view', NULL, FALSE)) {
+        $form[$key]['edit']['#access'] = FALSE;
+        if (preg_match('|<a [^>]*>([^<]*)</a>|', $form[$key]['view']['#value'], $matches)) {
+          $form[$key]['view']['#value'] = $matches[1];
+        }
+      }
+    }
+  }
+}
+
+/**
+ * We must know when a role is deleted.
+ */
+function _forum_access_user_admin_role_form(&$form, &$form_state) {
+  $form['#submit'][] = '_forum_access_user_admin_role_submit';
+}
+
+/**
+ * If a role is deleted, we remove the grants it provided.
+ * Also, we complain if the Forum Moderator role is deleted.
+ */
+function _forum_access_user_admin_role_submit($form, &$form_state) {
+  if ($form_state['values']['op'] == $form_state['values']['delete']) {
+    $rid = $form_state['values']['rid'];
+    db_query("DELETE FROM {forum_access} WHERE rid = %d", $rid);
+    db_query("DELETE FROM {node_access} WHERE gid = %d AND realm = 'forum_access'", $rid);
+    if ($rid === forum_access_query_moderator_rid()) {
+      drupal_set_message(t('The role you have just deleted is required by !Forum_Access; it will be recreated automatically.', array('!Forum_Access' => 'Forum Access')), 'error');
+    }
+  }
+}
+
+/**
+ * Add warnings on Content Access admin forms where CA wants
+ * to control the same content types as we do.
+ */
+function _forum_access_content_access_admin_form() {
+  $tr = 't';
+  $variables = array(
+    '!Content_Access' => 'Content Access',
+    '!Forum_Access' => 'Forum Access',
+    '!Forum_Access_link' => l('Forum Access', 'admin/content/forum'),
+    '%anonymous_user' => $tr('anonymous user'),
+    '%authenticated_user' => $tr('authenticated user'),
+    '%Advanced' => $tr('Advanced'),
+  );
+  if (arg(3) == 'forum') {
+    drupal_set_message(t('Note: In Drupal, access can only be granted, not taken away. Whatever access you grant here will not be reflected in the !Forum_Access_link settings, but !Forum_Access can only allow <i>more</i> access, not less.', $variables)
+      .'<br /><span class="error">'. t('Specifically, any rights granted to the %anonymous_user and/or the %authenticated_user will <b>override</b> the settings of !Forum_Access!', $variables) .'</span>'
+      .'<br />'. t('To avoid conflicts with !Forum_Access settings, you may want to lower the priority of !Content_Access (under %Advanced below) below the priority of !Forum_Access for the content types that you want to be controlled by !Forum_Access.', $variables), 'warning');
+  }
+  else {
+    $vid = _forum_access_get_vid();
+    $vocabulary = taxonomy_vocabulary_load($vid);
+    if (isset($vocabulary->nodes[arg(3)])) {
+      drupal_set_message(t('Note: Nodes of this content type can be put inside forums, where access to them will also be controlled by !Forum_Access.<br />In Drupal, access can only be granted, not taken away. Whatever access you grant here will not be reflected on the !Forum_Access_link settings, and vice versa, but any node access module can only allow <i>more</i> access, not less.', $variables), 'warning');
+    }
+  }
+}
+
+/**
+ * Keep the user from changing the permissions of the Forum Moderator role.
+ *
+ * Disable the checkboxes in the Forum Moderators column on
+ * admin/user/permissions.
+ */
+function _forum_access_user_admin_perm_form(&$form, &$form_state) {
+  $moderator_rid = forum_access_query_moderator_rid();
+  if (isset($moderator_rid) && array_key_exists($moderator_rid, $form['role_names'])) {
+    drupal_set_message(t('The %role role is used internally by the @Forum_Access module and must not be changed!', array('%role' => $form['role_names'][$moderator_rid]['#value'], '@Forum_Access' => 'Forum Access')), 'warning', FALSE);
+    $form['checkboxes'][$moderator_rid]['#disabled'] = TRUE;
+  }
+  array_unshift($form['#submit'], '_forum_access_user_admin_perm_form_submit');
+}
+
+/**
+ * Submit handler for the admin/user/permissions form.
+ *
+ * Avoid losing the Forum Moderators record by removing the (empty!) FM values
+ * before the real handler gets them.
+ */
+function _forum_access_user_admin_perm_form_submit($form, &$form_state) {
+  $moderator_rid = forum_access_query_moderator_rid();
+  if (isset($moderator_rid)) {
+    unset($form_state['values'][$moderator_rid]);
+  }
+}
+
+/**
+ * Keep the user from bulk-assigning the Forum Moderator role.
+ *
+ * Remove the Forum Moderator role from the selection list on
+ * admin/user/user.
+ */
+function _forum_access_user_admin_account_form(&$form, &$form_state) {
+  $moderator_rid = forum_access_query_moderator_rid();
+  if (isset($moderator_rid)) {
+    unset($form['options']['operation']['#options'][t('Add a role to the selected users')]["add_role-$moderator_rid"]);
+  }
+}
+
+/**
+ * Keep the user from assigning the Forum Moderator role.
+ *
+ * Disable the Forum Moderator checkbox on user/UID/edit.
+ */
+function _forum_access_user_profile_form(&$form, &$form_state) {
+  //dpm($form, '_forum_access_user_profile_form()');
+  $moderator_rid = forum_access_query_moderator_rid();
+  if (isset($moderator_rid) && isset($form['account']['roles']['#options'][$moderator_rid])) {
+    $form['account']['roles'][$moderator_rid] = array(
+      '#type' => 'checkbox',
+      '#title' => $form['account']['roles']['#options'][$moderator_rid] .' ('. t('reserved for internal use by the @Forum_Access module', array('@Forum_Access' => 'Forum Access')) .')',
+      '#default_value' => in_array($moderator_rid, $form['account']['roles']['#default_value']),
+      '#disabled' => TRUE,
+    );
+    unset($form['account']['roles']['#options'][$moderator_rid]);
+  }
+}
+
+/**
+ * Create the Forum Moderator role.
+ */
+function _forum_access_create_moderator_rid($verbose = FALSE) {
+  $tr = 't';
+  $variables = array('!Forum_Access' => 'Forum Access', '%administer_comments' => $tr('administer comments'), '%administer_nodes' => $tr('administer nodes'));
+  $role_name = t('Forum Moderator');
+  $role = new stdClass();
+  $role->name = $role_name;
+  for ($i = 2; $i <= 12; ++$i) {
+    $variables['%role'] = $role->name;
+    if (!db_result(db_query("SELECT COUNT(rid) FROM {role} WHERE name = '%s'", $role->name)) &&
+        drupal_write_record('role', $role)) {
+      $rid = $role->rid;
+      variable_set('forum_access_moderator_rid', $rid);
+      $permission = new stdClass();
+      $permission->rid = $rid;
+      $permission->perm = 'administer comments, administer nodes, post comments, post comments without approval';
+      drupal_write_record('permission', $permission);
+      $msg = t('!Forum_Access has created a new role named %role and given it the %administer_nodes and %administer_comments permissions. This role is used internally by !Forum_Access. You can change the name of the role as you like, but you must keep it unmodified otherwise.', $variables);
+      if ($verbose) {
+        drupal_set_message($msg, 'warning');
+      }
+      watchdog('user', $msg, NULL, WATCHDOG_NOTICE);
+      return $rid;
+    }
+    else {
+      $msg = t('!Forum_Access cannot create the %role role!', $variables);
+      watchdog('user', $msg, NULL, WATCHDOG_WARNING);
+      drupal_set_message($msg .' '. t('Is it already in use?'), 'error');
+      $role->name = $role_name .' '. $i;
+    }
+  }
+  $msg = t('!Forum_Access has given up and will not work correctly! Rename one of the roles listed above, so that !Forum_Access can use its name.', $variables);
+  drupal_set_message($msg, 'error');
+  watchdog('user', $msg, NULL, WATCHDOG_CRITICAL);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.css b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.css
new file mode 100644
index 0000000..372dfa8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.css
@@ -0,0 +1,29 @@
+.forum-access-div {
+  width: 20%;
+  margin: 0;
+  padding: 0;
+  float: left;
+  overflow: hidden;
+}
+
+#forum-access-div-container {
+  width: 75%;
+}
+
+.forum-access-clearer {
+  clear: both;
+}
+
+.forum-access-div > .form-checkboxes {
+  margin-top: -1ex;
+}
+
+div.forum-access-flowed > div.form-item {
+  display: inline;
+  margin-right: 1em;
+}
+
+.forum-access-temporary-moderator div.form-item {
+  opacity: 0.5;
+  filter:alpha(opacity=50);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.info b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.info
new file mode 100644
index 0000000..ccc1431
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.info
@@ -0,0 +1,13 @@
+name = Forum Access
+description = Allows forums to be set private and allows forums to be given moderators.
+dependencies[] = acl
+dependencies[] = forum
+package = Access control
+core = 6.x
+
+
+; Information added by drupal.org packaging script on 2012-05-04
+version = "6.x-1.8-boinc-2-dev"
+core = "6.x"
+project = "forum_access"
+datestamp = "1476375513"
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.install b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.install
new file mode 100644
index 0000000..768f0ae
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.install
@@ -0,0 +1,379 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the forum_access module.
+ *
+ */
+
+/**
+ * Implementation of hook_install().
+ */
+function forum_access_install() {
+  drupal_install_schema('forum_access');
+  db_query("UPDATE {system} SET weight = 2 WHERE name = 'forum_access'");
+
+  if ($vid = variable_get('forum_nav_vocabulary', FALSE)) {
+    $result = db_query("
+      SELECT t.tid
+        FROM {term_data} t
+        LEFT JOIN {forum_access} fa ON t.tid = fa.tid
+        WHERE fa.tid IS NULL AND t.vid = %d
+      ", $vid);
+    $grant_create_by_rid = array(
+      DRUPAL_ANONYMOUS_RID => 0,
+      DRUPAL_AUTHENTICATED_RID => 1,
+    );
+    while ($td = db_fetch_object($result)) {
+      foreach ($grant_create_by_rid as $rid => $grant_create) {
+        db_query("
+          INSERT INTO {forum_access}
+          (tid, rid, grant_view, grant_update, grant_delete, grant_create, priority)
+          VALUES(%d, %d, 1, 0, 0, %d, 0)
+        ", $td->tid, $rid, $grant_create);
+      }
+    }
+  }
+}
+
+/**
+ * Implementation of hook_schema().
+ */
+function forum_access_schema() {
+  $schema['forum_access'] = array(
+    'description'     => 'The base Forum Access Control table.',
+    'fields'          => array(
+      'tid'           => array(
+        'description' => 'The {term_data}.tid to which this {forum_access} entry applies.',
+        'type'        => 'int',
+        'not null'    => TRUE,
+        'default'     => 0),
+      'rid'           => array(
+        'description' => 'The {role}.rid to which this {forum_access} entry applies.',
+        'type'        => 'int',
+        'unsigned'    => TRUE,
+        'not null'    => TRUE,
+        'default'     => 0),
+      'grant_view'    => array(
+        'description' => 'Whether to grant "view" permission.',
+        'type'        => 'int',
+        'size'        => 'tiny',
+        'unsigned'    => TRUE,
+        'not null'    => TRUE,
+        'default'     => 0),
+      'grant_update'  => array(
+        'description' => 'Whether to grant "update" permission.',
+        'type'        => 'int',
+        'size'        => 'tiny',
+        'unsigned'    => TRUE,
+        'not null'    => TRUE,
+        'default'     => 0),
+      'grant_delete'  => array(
+        'description' => 'Whether to grant "delete" permission.',
+        'type'        => 'int',
+        'size'        => 'tiny',
+        'unsigned'    => TRUE,
+        'not null'    => TRUE,
+        'default'     => 0),
+      'grant_create'  => array(
+        'description' => 'Whether to grant "create" permission.',
+        'type'        => 'int',
+        'size'        => 'tiny',
+        'unsigned'    => TRUE,
+        'not null'    => TRUE,
+        'default'     => 0),
+      'grant_comment_create'  => array(
+        'description' => 'Whether to grant "comment create" permission.',
+        'type'        => 'int',
+        'size'        => 'tiny',
+        'unsigned'    => TRUE,
+        'not null'    => TRUE,
+        'default'     => 0),
+      'priority'  => array(
+        'description' => 'The priority of this grant.',
+        'type'        => 'int',
+        'size'        => 'small',
+        'not null'    => TRUE,
+        'default'     => 0)),
+    'indexes'         => array(
+      'tid'           => array('tid'),
+      'rid'           => array('rid')),
+  );
+  return $schema;
+}
+
+/**
+ * Implementation of hook_enable().
+ */
+function forum_access_enable() {
+  variable_del('forum_access_rids'); // clear cache
+  _forum_access_update_table();
+}
+
+/**
+ * Add missing default records to the {forum_acces} table.
+ *
+ * @return An array of links to the forums whose records have been added.
+ */
+function _forum_access_update_table() {
+  $result = db_query("SELECT td.tid, td.name FROM {term_data} td LEFT JOIN {forum_access} fa ON td.tid = fa.tid WHERE td.vid = %d AND fa.tid IS NULL", _forum_access_get_vid());
+  $forums = array();
+  while ($forum = db_fetch_array($result)) {
+    $forums[] = l($forum['name'], 'admin/content/forum/edit/forum/'. $forum['tid']);
+    $record = array(
+      'tid' => $forum['tid'],
+      'rid' => DRUPAL_ANONYMOUS_RID,
+      'grant_view' => 1,
+    );
+    drupal_write_record('forum_access', $record);
+    $record['rid'] = DRUPAL_AUTHENTICATED_RID;
+    $record['grant_create'] = 1;
+    drupal_write_record('forum_access', $record);
+  }
+  return $forums;
+}
+
+/**
+ * Implementation of hook_disable().
+ */
+function forum_access_disable() {
+  forum_access_enabled(FALSE);
+}
+
+/*
+ * Implementation of hook_uninstall().
+ */
+function forum_access_uninstall() {
+  // Remove moderator role.
+  if ($moderator_rid = variable_get('forum_access_moderator_rid', 0)) {
+    db_query('DELETE FROM {role} WHERE rid = %d', $moderator_rid);
+    db_query('DELETE FROM {permission} WHERE rid = %d', $moderator_rid);
+    db_query('DELETE FROM {users_roles} WHERE rid = %d', $moderator_rid);
+  }
+
+  drupal_uninstall_schema('forum_access');
+  variable_del('forum_access_allowed_node_edit_elements');
+  variable_del('forum_access_allowed_node_edit_options');
+  variable_del('forum_access_batch_threshold');
+  variable_del('forum_access_D5_legacy_mode');
+  variable_del('forum_access_default_template_tid');
+  variable_del('forum_access_moderator_rid');
+  variable_del('forum_access_new_template_tid');
+  variable_del('forum_access_provide_moderators_template_variable');
+  variable_del('forum_access_rids');
+}
+
+
+/**
+ * Purge orphaned grants that were left behind when deleting roles.
+ */
+function forum_access_update_1() {
+  $ret = array();
+  $ret[] = update_sql("DELETE FROM {forum_access} WHERE rid NOT IN (SELECT rid from {role})");
+  $ret[] = update_sql("DELETE FROM {node_access} WHERE realm = 'forum_access' AND gid NOT IN (SELECT rid from {role})");
+  return $ret;
+}
+
+/**
+ * Add a priority column (will probably not be used until D6).
+ */
+function forum_access_update_2() {
+  $ret = array();
+  db_add_field($ret, 'forum_access', 'priority', array(
+    'description' => 'The priority of this grant.',
+    'type'        => 'int',
+    'size'        => 'small',
+    'not null'    => TRUE,
+    'default'     => 0));
+  return $ret;
+}
+
+/**
+ * Warn users upgrading from Drupal 5.
+ */
+function forum_access_update_6100() {
+  drupal_set_message('<b>Upgrading Forum Access from Drupal 5?  Then please read:</b><br />In Drupal 5, comment posting was not restricted by Forum Access; users with <em>View</em> access (and the <em>post comments</em> permission) were always allowed to post forum comments. Starting with Drupal 6, posting comments is now restricted to users with <em>Post</em> access. If you prefer the old behavior, then go to '. l('Forum Settings', 'admin/content/forum/settings', array('fragment' = [...]
+  return array();
+}
+
+/**
+ * Clean out {forum_access} table and remove Forum Moderator assignments.
+ */
+function forum_access_update_6101() {
+  $ret = array();
+  $forum_vid = variable_get('forum_nav_vocabulary', 0);
+  $ret[] = update_sql("DELETE FROM {forum_access} WHERE tid NOT IN (SELECT tid FROM {term_data} WHERE vid = $forum_vid)");
+  $ret[] = update_sql("DELETE FROM {forum_access} WHERE rid NOT IN (SELECT rid FROM {role})");
+  if ($moderator_rid = variable_get('forum_access_moderator_rid', FALSE)) {
+    $ret[] = update_sql("DELETE FROM {users_roles} WHERE rid = $moderator_rid");
+    $ret[] = update_sql("UPDATE {permission} SET perm = 'administer comments, administer nodes' WHERE rid = $moderator_rid");
+  }
+  return $ret;
+}
+
+/**
+ * Return the abort message.
+ */
+function abort_disabled_update() {
+  return array('#abort' => array('success' => FALSE, 'query' => t('Please enable %module before trying to run this update.', array('%module' => 'Forum Access'))));
+}
+
+/**
+ * Set the proper permissions for the Forum Moderator role.
+ */
+function forum_access_update_6102() {
+  $ret = array();
+  if (!module_exists('forum_access')) {
+    return abort_disabled_update();
+  }
+  $moderator_rid = forum_access_query_moderator_rid();
+  if (isset($moderator_rid)) {
+    if (db_result(db_query("SELECT COUNT(*) FROM {permission} WHERE rid = %d", $moderator_rid))) {
+      $ret[] = update_sql("UPDATE {permission} SET perm = 'administer comments, administer nodes' WHERE rid = $moderator_rid");
+    }
+    else {
+      $ret[] = update_sql("INSERT INTO {permission} (rid, perm) VALUES ($moderator_rid, 'administer comments, administer nodes')");
+    }
+  }
+  return $ret;
+}
+
+/**
+ * Remove bogus rows from the {forum_access} table.
+ */
+function forum_access_update_6103() {
+  $ret = array();
+  if ($vid = variable_get('forum_nav_vocabulary', FALSE)) {
+    $ret[] = update_sql("
+      DELETE FROM {forum_access}
+      WHERE tid NOT IN (
+        SELECT t.tid
+        FROM {term_data} t
+        WHERE t.vid = $vid
+      )
+    ");
+    if ($ret[0]['success'] && $affected_rows = db_affected_rows()) {
+      $ret[0]['query'] = $ret[0]['query'] .'<br />'. $affected_rows .' bogus rows purged.';
+    }
+  }
+  return $ret;
+}
+
+/**
+ * Remove grants for roles with the 'administer nodes' permission.
+ */
+function forum_access_update_6104() {
+  $ret = array();
+  if ($admin_rids = array_keys(user_roles(FALSE, 'administer nodes'))) {
+    $ret[] = update_sql("
+      UPDATE {forum_access}
+      SET grant_view = 0, grant_update = 0, grant_delete = 0
+      WHERE rid IN (". implode($admin_rids, ', ') .")
+    ");
+    $ret[] = update_sql("
+      DELETE FROM {node_access}
+      WHERE realm = 'forum_access'
+        AND gid IN (". implode($admin_rids, ', ') .")
+    ");
+  }
+  return $ret;
+}
+
+/**
+ * Add missing default records to the {forum_access} table.
+ */
+function forum_access_update_6105() {
+  if (!module_exists('forum_access')) {
+    return abort_disabled_update();
+  }
+  $forums = _forum_access_update_table();
+  $msg = t('Please see the <a href="@href">release notes for release 6.x-1.5 of the @Forum_Access module</a>.', array('@href' => 'http://drupal.org/node/936848', '@Forum_Access' => 'Forum Access'));
+  if (!empty($forums)) {
+    $msg .= '<br />'. t('The following forums have been updated as explained in the release notes:') .'<ul><li>'. implode($forums, '</li><li>') .'</li></ul>';
+  }
+  drupal_set_message($msg, 'warning');
+  return array();
+}
+
+/**
+ * Change our {acl} table records from 'name' to 'number'.
+ */
+function forum_access_update_6106() {
+  $acl_version = db_result(db_query("SELECT schema_version FROM {system} WHERE type = 'module' AND name = 'acl'"));
+  if ($acl_version < 6002) {
+    $ret[] = array('success' => FALSE, 'query' => t('Please update the !ACL module (%version) to version !link or later first!', array('!ACL' => l('ACL', 'http://drupal.org/project/acl'), '%version' => $acl_version, '!link' => l('6.x-1.3', 'http://drupal.org/node/1017698'))));
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('Some updates are still pending.<br/>Please re-run the update script.'));
+    return $ret;
+  }
+  switch ($GLOBALS['db_type']) {
+    case 'pgsql':
+      $ret[] = update_sql("UPDATE {acl} SET number = CAST(name AS INTEGER) WHERE module = 'forum_access' AND name IS NOT NULL");
+      break;
+    default:
+      $ret[] = update_sql("UPDATE {acl} SET number = name WHERE module = 'forum_access' AND name IS NOT NULL");
+  }
+  if ($ret[0]['success']) {
+    $ret[] = update_sql("UPDATE {acl} SET name = NULL WHERE module = 'forum_access' AND number IS NOT NULL");
+  }
+  return $ret;
+}
+
+/**
+ * Add the 'post comments' permissions to the Forum Moderator role.
+ */
+function forum_access_update_6107() {
+  $ret = array();
+  if ($moderator_rid = variable_get('forum_access_moderator_rid', 0)) {
+    $result = db_query("SELECT p.rid, p.perm FROM {permission} p WHERE p.rid = %d", $moderator_rid);
+    if ($moderator = db_fetch_array($result)) {
+      $perm = $moderator['perm'];
+      $perms = explode(', ', $perm);
+      foreach (array('post comments', 'post comments without approval') as $p) {
+        if (array_search($p, $perms) === FALSE) {
+          $perms[] = $p;
+        }
+      }
+      $new_perm = implode(', ', $perms);
+      if ($new_perm != $perm) {
+        $ret[] = update_sql("UPDATE {permission} SET perm = '$new_perm' WHERE rid = $moderator_rid");
+      }
+    }
+  }
+  return $ret;
+}
+
+/**
+ * Change the rid field to unsigned INT
+ */
+function forum_access_update_6108() {
+  $ret = array();
+  $ret[] = update_sql("
+    ALTER TABLE {forum_access}
+    MODIFY rid INT(10) unsigned NOT NULL default '0'"
+  );
+  return $ret;
+}
+
+/** 
+ * Add support for 'comment' permission, #545916 backport.
+ */
+function forum_access_update_6109() {
+  $res = array();
+  $spec = array(
+      'description' => 'Whether to grant "comment_create" permission.',
+      'type'        => 'int',
+      'size'        => 'tiny',
+      'unsigned'    => TRUE,
+      'not null'    => TRUE,
+      'default'     => 0,
+    );
+  db_add_field($res, 'forum_access', 'grant_comment_create', $spec);
+
+  /*
+   * In previous versions of forum_access, the ability to comment was
+   * given to anyone with the ability to post('create') a new forum
+   * topic.
+   */
+  db_query("UPDATE forum_access SET grant_comment_create=grant_create");
+  return $result;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.module b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.module
new file mode 100644
index 0000000..294a8ad
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.module
@@ -0,0 +1,747 @@
+<?php
+
+/**
+ * @file forum_access.module
+ *
+ * This module uses form_alter to add permissions and moderator settings to
+ * forums.
+ *
+ */
+
+/**
+ * Implementation of hook_node_grants().
+ *
+ * This function supplies the forum access grants. forum_access simply uses
+ * roles as ACLs, so rids translate directly to gids.
+ */
+function forum_access_node_grants($user, $op) {
+  $grants['forum_access'] = array_keys($user->roles);
+  return $grants;
+}
+
+/**
+ * Implementation of hook_node_access_records().
+ *
+ * Returns a list of grant records for the passed in node object.
+ * Checks to see if maybe we're being disabled.
+ */
+function forum_access_node_access_records($node) {
+  if (!forum_access_enabled()) {
+    return;
+  }
+
+  static $grants = array();
+  static $node_admins;
+  $tid = _forum_access_get_tid($node);
+
+  // Set proper grants for nodecomment comment nodes.
+  if (isset($node->comment_target_nid)) {
+    if ($changed_tid = _forum_access_changed_tid()) {
+      $tid = $changed_tid; // the topic node hasn't been saved yet!
+    }
+    else {
+      $node = node_load($node->comment_target_nid);
+      $tid = _forum_access_get_tid($node);
+    }
+  }
+
+  if ($tid) {
+    if (!isset($grants[$tid])) {
+      if (!isset($node_admins)) {
+        $node_admins = user_roles(FALSE, 'administer nodes');
+      }
+      $result = db_query('SELECT * FROM {forum_access} WHERE tid = %d', $tid);
+      while ($grant = db_fetch_object($result)) {
+        if (isset($node_admins[$grant->rid])) {
+          continue; // Don't provide any useless grants!
+        }
+        $grants[$tid][] = array(
+          'realm' => 'forum_access',
+          'gid' => $grant->rid,
+          'grant_view' => $grant->grant_view,
+          'grant_update' => $grant->grant_update,
+          'grant_delete' => $grant->grant_delete,
+          'grant_comment_create' => $grant->grant_comment_create,
+          'priority' => $grant->priority,
+        );
+      }
+      //drupal_set_message("forum_access_node_access_records($node->nid) (tid=$tid) returns ". var_export($grants[$tid], TRUE), 'status');
+    }
+    if (isset($grants[$tid])) {
+      return $grants[$tid];
+    }
+  }
+}
+
+/**
+ * Implementation of hook_init().
+ *
+ * Enable moderator access on node/%, node/%/edit, comment/edit/%,
+ * and comment/delete/% where needed.
+ */
+function forum_access_init() {
+  global $user;
+  if ($user->uid == 1) {
+    return;
+  }
+
+  switch (arg(0)) {
+    case 'comment':
+      if (variable_get('forum_access_D5_legacy_mode', FALSE)) {
+        return; // disable comment access control
+      }
+      if ((arg(1) == 'edit' || arg(1) == 'delete') && !user_access('administer comments')) {
+        if (is_numeric($cid = arg(2))) { // comment/edit/%, comment/delete/%
+          $access[] = (arg(1) == 'edit' ? 'update' : 'delete');
+          $comment = _comment_load($cid);
+          $nid = $comment->nid;
+          // If the node turns out to be in a forum where we have update/delete
+          // access, then we need Moderator permissions now, so we can moderate
+          // this comment.
+          // We won't provide full Administrator access, though: we'll remove
+          // author and timestamp, for example.
+          $grant_normal_access = TRUE;
+        }
+      }
+      break;
+
+    case 'node':
+      if (is_numeric(arg(1))) {
+        if (arg(2) == 'edit' && !user_access('administer nodes')) { // node/%/edit
+          $access[] = 'update';
+          $nid = arg(1);
+          // If the node turns out to be in a forum where we have update/delete
+          // access, then we already get limited edit capabilities from NA, but
+          // we need some more, e.g. publish/unpublish and comment status.
+          // In order to get these controls on the form, we need Moderator
+          // permissions now.
+          // We won't provide full Administrator access, though: we'll remove
+          // author and timestamp, for example.
+        }
+        if (arg(2) == 'delete' && !user_access('administer nodes')) { // node/%/delete
+          $access = array();
+          $nid = arg(1);
+          // This is the delete confirmation page. We don't need any
+          // additional permissions, but we'll assert 'view' access below.
+        }
+        if (arg(2) == NULL && !user_access('administer comments')) { // node/%
+          $access[] = 'update';
+          $nid = arg(1);
+          // If the node turns out to be in a forum where we have update/delete
+          // access, then we'll get the 'Edit' link automatically from NA, but
+          // we'll need Moderator permissions, so that we can add the edit/delete
+          // comment links (*after* we've identified the other comment links).
+        }
+      }
+      break;
+
+    case 'community':
+        if (arg(1)=='forum') {
+            if (is_numeric(arg(2))) {
+                $tid=arg(2);
+                // Obtain the tid from a URL path containing
+                // community/forum/%tid, this will prevent users from
+                // loading forums they are not allowed to access.
+                // However, only tid>1 are terms we care about. (This
+                // allows forum_tweaks mark-read functionality to
+                // work.)
+                if (isset($tid) and ($tid>1)) {
+                    if (!forum_access_access($tid, 'view')) {
+                        drupal_access_denied();
+                        module_invoke_all('exit');
+                        exit;
+                    }
+                }// isset($tid)
+            }// is_numeric(arg(2))
+        }// arg(1)==forum
+    break;
+  }// switch
+  if (isset($nid)) {
+    $node = node_load($nid);
+    if ($tid = _forum_access_get_tid($node)) {
+      if (!forum_access_access($tid, 'view')) {
+        drupal_access_denied();
+        module_invoke_all('exit');
+        exit;
+      }
+      foreach ($access as $a) {
+        $faa = forum_access_access($tid, $a);
+        $grant_moderator_access = $faa > 1;
+        $grant_normal_access = !empty($grant_normal_access) && $faa > 0;
+        if ($grant_normal_access || $grant_moderator_access) {
+          $user->_forum_access_moderator = $grant_moderator_access;
+          if (arg(0) == 'comment' || arg(0) == 'node' && arg(2) == 'edit') {
+            module_load_include('node.inc', 'forum_access');
+            _forum_access_enable_moderator();
+            break;
+          }
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Implementation of hook_form_alter().
+ *
+ * Alter the node/comment create/edit forms and various admin forms.
+ */
+function forum_access_form_alter(&$form, &$form_state, $form_id) {
+  if (isset($form['type']['#value']) && $form['type']['#value'] .'_node_form' == $form_id) {
+    module_load_include('node.inc', 'forum_access');
+    _forum_access_node_form($form, $form_state);
+  }
+  elseif ($form_id == 'comment_form' && !variable_get('forum_access_D5_legacy_mode', FALSE)) {
+    module_load_include('node.inc', 'forum_access');
+    _forum_access_comment_form($form, $form_state);
+  }
+  elseif ($form_id == 'forum_overview') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_forum_overview($form, $form_state);
+  }
+  elseif ($form_id == 'forum_form_container') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_forum_form($form, $form_state, TRUE);
+  }
+  elseif ($form_id == 'forum_form_forum') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_forum_form($form, $form_state, FALSE);
+  }
+  elseif ($form_id == 'forum_admin_settings') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_forum_admin_settings_form($form, $form_state);
+  }
+  elseif ($form_id == 'user_admin_role') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_user_admin_role_form($form, $form_state);
+  }
+  elseif ($form_id == 'content_access_admin_settings' && empty($_POST)) {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_content_access_admin_form();
+  }
+  elseif ($form_id == 'user_admin_perm') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_user_admin_perm_form($form, $form_state);
+  }
+  elseif ($form_id == 'user_admin_account') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_user_admin_account_form($form, $form_state);
+  }
+  elseif ($form_id == 'user_profile_form') {
+    module_load_include('admin.inc', 'forum_access');
+    _forum_access_user_profile_form($form, $form_state);
+  }
+}
+
+/**
+ * Implementation of hook_db_rewrite_sql().
+ *
+ * Because in order to restrict the visible forums, we have to rewrite
+ * the sql. This is because there isn't a node_access equivalent for
+ * taxonomy. There should be.
+ */
+function forum_access_db_rewrite_sql($query, $primary_table, $primary_field, $args) {
+  global $user;
+  $sql = NULL;
+  switch ($primary_field) {
+    case 'tid':
+      if ($user->uid == 1
+        || user_access('administer nodes') && strpos($_GET['q'], 'node/add/forum') === FALSE
+        || user_access('administer forums') && $_GET['q'] == 'admin/content/forum') {
+        break;
+      }
+      if (strpos($_GET['q'], 'node/add/forum') !== FALSE) {
+        $required_access = 'create';
+      }
+      else {
+        $required_access = 'view';
+      }
+      $roles = implode(', ', array_keys($user->roles));
+      $sql['join'] = "LEFT JOIN {forum_access} fa ON $primary_table.tid = fa.tid
+                      LEFT JOIN {acl} acl_fa ON acl_fa.number = $primary_table.tid AND acl_fa.module = 'forum_access'
+                      LEFT JOIN {acl_user} aclu_fa ON aclu_fa.acl_id = acl_fa.acl_id AND aclu_fa.uid = $user->uid";
+      $sql['where'] = "(fa.grant_$required_access >= 1 AND fa.rid IN ($roles)) OR fa.tid IS NULL OR aclu_fa.uid = $user->uid";
+      $sql['distinct'] = 1;
+      break;
+
+    case 'rid':
+      if (strpos($query, 'FROM {role}') === FALSE
+        || strpos($_GET['q'] .'/', 'admin/content/forum/') === 0) {
+        break;
+      }
+      $moderator_rid = forum_access_query_moderator_rid();
+      if (!empty($moderator_rid)) {
+        $sql['where'] = "$primary_table.rid <> $moderator_rid";
+      }
+      break;
+  }
+  return $sql;
+}
+
+/**
+ * Implementation of hook_nodeapi().
+ *
+ * Add ACL data to fresh forum posts.
+ */
+function forum_access_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
+  static $old_tid = NULL;
+  // This is modeled after forum_nodeapi():
+  $vid = _forum_access_get_vid();
+  $vocabulary = taxonomy_vocabulary_load($vid);
+  if (empty($vocabulary) || !in_array($node->type, $vocabulary->nodes)) {
+    if ($op == 'insert' && isset($node->comment_target_nid)) {
+      // Set moderator on nodecomment.
+      $topic_node = node_load($node->comment_target_nid);
+      if ($topic_tid = _forum_access_get_tid($topic_node)) {
+        $acl_id = acl_get_id_by_number('forum_access', $topic_tid);
+        acl_node_add_acl($node->nid, $acl_id, 1, 1, 1);
+      }
+    }
+    return;
+  }
+
+  switch ($op) {
+    case 'presave':
+      $old_tid = db_result(db_query('SELECT tid FROM {forum} WHERE nid = %d', $node->nid));
+      break;
+
+    case 'update':
+      if (!empty($old_tid)) {
+        if (!empty($node->tid) && $node->tid == $old_tid) {
+          return;
+        }
+        acl_node_clear_acls($node->nid, 'forum_access');
+
+        if (module_exists('nodecomment')) {
+          _forum_access_changed_tid($node->tid);
+          $result = db_query('SELECT cid FROM {node_comments} WHERE nid = %d', $node->nid);
+          while ($row = db_fetch_object($result)) {
+            acl_node_clear_acls($row->cid, 'forum_access');
+          }
+        }
+      }
+      // Deliberate no break -- for changed and for previously unassigned terms we need an insert.
+
+    case 'insert':
+      if (!empty($node->tid)) {
+        $acl_id = acl_get_id_by_number('forum_access', $node->tid);
+        acl_node_add_acl($node->nid, $acl_id, 1, 1, 1);
+
+        if (isset($old_tid) && module_exists('nodecomment')) {
+          $result = db_query('SELECT cid FROM {node_comments} WHERE nid = %d', $node->nid);
+          while ($row = db_fetch_object($result)) {
+            acl_node_add_acl($row->cid, $acl_id, 1, 1, 1);
+            node_access_acquire_grants(node_load($row->cid));
+          }
+        }
+      }
+      $old_tid = NULL;
+      break;
+  }
+}
+
+/**
+ * Get an array of moderator UIDs or NULL.
+ */
+function forum_access_get_moderator_uids($tid) {
+  if ($acl_id = acl_get_id_by_number('forum_access', $tid)) {
+    if ($uids = acl_get_uids($acl_id)) {
+      return $uids;
+    }
+  }
+}
+
+/**
+ * Implementation of $modulename_preprocess_$hook() for forum_list.
+ *
+ * Add forum_access_moderators to each forum,
+ * containing a list of user objects.
+ *
+ * Note: On a site with many moderators, this function is expensive,
+ * and thus it is disabled by default. Set the variable to TRUE to enable.
+ */
+function forum_access_preprocess_forum_list(&$variables) {
+  if (variable_get('forum_access_provide_moderators_template_variable', FALSE)) {
+    static $users;
+    foreach ($variables['forums'] as $tid => $forum) {
+      $moderators = array();
+      if ($uids = forum_access_get_moderator_uids($tid)) {
+        foreach ($uids as $uid) {
+          if (!isset($users[$uid])) {
+            $users[$uid] = user_load(array('uid' => $uid));
+          }
+          $moderators[$uid] = $users[$uid];
+        }
+      }
+      $forum->forum_access_moderators = (empty($moderators) ? NULL : $moderators);
+    }
+  }
+}
+
+/**
+ * Implementation of $modulename_preprocess_$hook() for forums.
+ *
+ * Remove 'post' links from forum page, if the user does not have the
+ * 'create' permission.
+ */
+function forum_access_preprocess_forums(&$variables) {
+  if (!forum_access_access($variables['tid'], 'create') && !empty($variables['links'])) {
+    foreach ($variables['links'] as $key => $link) {
+      if (isset($link['href']) && substr($link['href'], 0, 9) == 'node/add/') {
+        unset($variables['links'][$key]);
+      }
+    }
+  }
+}
+
+if (!variable_get('forum_access_D5_legacy_mode', FALSE)) {
+  // LEGACY-MODE disables these methods
+
+/**
+ * Implementation of hook_link_alter().
+ *
+ * For nodes, remove the 'Add new comment' link, if the user does not have the
+ * 'comment_create' permission; for comments, add any missing links (D6.17+).
+ */
+function forum_access_link_alter(&$links, $node, $comment = NULL) {
+  global $user;
+  static $user1, $recursing = FALSE, $stored_links;
+
+  // If we are being called recursively, store the $links and return.
+  if ($recursing) {
+    $stored_links = $links;
+    return;
+  }
+  if ($user->uid == 1 || !($tid = _forum_access_get_tid($node))) {
+    return;
+  }
+  if (empty($comment)) {
+    // Check links for the node.
+    if ($tid && isset($links['comment_add']) && !forum_access_access($tid, 'comment_create')) {
+      unset($links['comment_add']);
+      // Hack to manually remove quote link
+      if ( isset($links['quote']) ) {
+          unset($links['quote']);
+      }
+    }
+  }
+  else {
+    // Check links for the comment.
+    $required_keys = array(
+      'comment_create' => 'comment_reply',
+      'update' => 'comment_edit',
+      'delete' => 'comment_delete',
+    );
+    foreach ($required_keys as $access => $key) {
+      if (!forum_access_access($tid, $access) && !($access == 'update' && comment_access('edit', $comment))) {
+        unset($links[$required_keys[$access]]);
+        unset($required_keys[$access]);
+      }
+      elseif (!array_key_exists($key, $links)) {
+        $link_is_missing = TRUE;
+      }
+    }
+
+    // Hack to manually remove quote link if comment_reply link is no longer set
+    if ( (!(isset($links['comment_reply']))) AND isset($links['quote']) ) {
+        unset($links['quote']);
+    }
+    
+    if (isset($required_keys['comment_create']) && !user_access('post comments')) {
+      unset($required_keys['comment_create']);
+    }
+    if (!empty($link_is_missing)) {
+      // One of the $required_links should be present, because the current
+      // user has the corresponding permission, but it isn't.
+      // We temporarily switch to UID 1 to 'harvest' all comment links.
+      if (!isset($user1)) {
+        $user1 = user_load(1);
+      }
+      $saved_user = $user;
+      session_save_session(FALSE);
+      $user = $user1;
+
+      // With UID 1 we call hook_link(). This should give us the full set of
+      // links that the site admin sees.
+      $admin_links = module_invoke_all('link', 'comment', $comment, array_key_exists('comment_parent', $links));
+
+      $user = $saved_user;
+      session_save_session(TRUE);
+
+      // Remove the links from $admin_links that are not in the reduced
+      // set of $required_links AND not available to the current user anyway.
+      // Afterwards, $admin_links should have the same content as $links, plus
+      // one or more additional links from the original set in $required_links.
+      foreach ($admin_links as $key => $target) {
+        if (!in_array($key, $required_keys) && !array_key_exists($key, $links)) {
+          unset($admin_links[$key]);
+        }
+      }
+
+      // As the real current user, call hook_link_alter on the admin links.
+      // First we set a static variable so that the next time this function is
+      // called it will store a copy of the links at their current state. Then
+      // we pull those links which have not been link_alter'ed by any modules
+      // that come after forum_access.
+      $recursing = TRUE;
+      drupal_alter('link', $admin_links, $node, $comment);
+      $recursing = FALSE;
+      // Now return the stored links.
+      $links = $stored_links;
+    }
+  }// if empty($comment)
+}
+
+/**
+ * Implementation of $modulename_preprocess_$hook() for box.
+ *
+ * Remove the in-line 'Post new comment' box, if it's empty
+ * (after _forum_access_comment_form()).
+ */
+function forum_access_preprocess_box(&$variables) {
+  $tr = 't';
+  if (empty($variables['content']) && ($variables['title'] == $tr('Post new comment') || $variables['title'] == $tr('Reply'))) {
+    $variables['title'] = '';
+  }
+}
+
+/**
+ * Implementation of $modulename_preprocess_$hook() for comment.
+ *
+ * Recreate comment links (they've already been themed), and
+ * remove those that aren't accessible to the user.
+ */
+function forum_access_preprocess_comment(&$variables) {
+  if (version_compare(VERSION, '6.17', '<') && isset($variables['node']->tid)) {
+    module_load_include('node.inc', 'forum_access');
+    _forum_access_preprocess_comment($variables);
+  }
+}
+
+} // End of !LEGACY-MODE
+
+/**
+ * This is also required by ACL module.
+ */
+function forum_access_enabled($set = NULL) {
+  static $enabled = TRUE;
+  if ($set !== NULL) {
+    $enabled = $set;
+  }
+  return $enabled;
+}
+
+/**
+ * See if a given user has access to a forum.
+ *
+ * $tid -- the tid of the forum
+ * $type -- view, update, delete or create
+ * $account -- the account to test for; if NULL use current user
+ * $administer_nodes_sees_everything -- pass FALSE to ignore the 'administer nodes' permission
+ *
+ * Return:
+ *   FALSE - access not granted
+ *   1     - access granted
+ *   2     - access granted for forum moderator
+ */
+function forum_access_access($tid, $type, $account = NULL, $administer_nodes_sees_everything = TRUE) {
+  static $cache = array();
+  if (!$account) {
+    global $user;
+    $account = $user;
+  }
+
+  if ($account->uid == 1 ||
+      $administer_nodes_sees_everything && user_access('administer nodes', $account) && array_search($type, array('view', 'update', 'delete')) !== FALSE) {
+    return 1;
+  }
+
+  if (!isset($cache[$account->uid][$tid][$type])) {
+    if (!user_access('access content', $account)) {
+      return $cache[$account->uid][$tid][$type] = FALSE;
+    }
+
+    $roles = array_keys($account->roles);
+    $result = db_result(db_query("SELECT tid FROM {forum_access} WHERE rid IN (". db_placeholders($roles) .") AND grant_". $type ." = 1 AND tid = %d", array_merge($roles, array($tid))));
+
+    if ($result) {
+      $cache[$account->uid][$tid][$type] = 1;
+    }
+    else {
+      // check our moderators too
+      $acl_id = acl_get_id_by_number('forum_access', $tid);
+      $result = db_result(db_query("SELECT uid FROM {acl_user} WHERE acl_id = %d AND uid = %d", $acl_id, $account->uid));
+      if ($result) {
+        $cache[$account->uid][$tid][$type] = 2;
+      }
+      else {
+        $cache[$account->uid][$tid][$type] = FALSE;
+      }
+    }
+  }
+  return $cache[$account->uid][$tid][$type];
+}
+
+/**
+ * Implementation of hook_user().
+ */
+function forum_access_user($op, &$edit, &$account, $category = NULL) {
+  switch ($op) {
+    case 'validate':
+      $rid = forum_access_query_moderator_rid();
+      if (!empty($rid)) {
+        if (isset($edit['roles'][$rid]) && $edit['roles'][$rid]) {
+          $roles = user_roles();
+          $variables = array(
+            '@Forum_Access' => 'Forum Access',
+            '%Role' => $roles[$rid],
+          );
+          drupal_set_message(t('The %Role role is reserved for internal use by the @Forum_Access module! It was not assigned.', $variables), 'warning');
+          unset($edit['roles'][$rid]);
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_menu_alter().
+ *
+ * Remove the 'Forum' menu item if no forums are visible.
+ */
+function forum_access_menu_alter(&$items) {
+  if (!empty($items['forum'])) {
+    //dpm($items['forum'], 'hook_menu_alter($items[\'forum\'])');
+    if (!empty($items['forum']['access callback']) || $items['forum']['access arguments'][0] != 'access content') {
+      drupal_set_message(t('Unexpected access specification for the %forum menu path; @Forum_Access cannot control its access.', array('%forum' => 'forum', '@Forum_Access' => 'Forum Access')), 'error');
+      return;
+    }
+    $items['forum']['access callback'] = '_forum_access_forum_access_callback';
+    $items['forum']['access arguments'] = array(1);
+  }
+}
+
+/**
+ * Access callback for the 'forum' menu path.
+ *
+ * Returns TRUE if the user has access to the specified forum or containter. If
+ * no forum or container is specified will return TRUE if the user has at least
+ * one role that can access at least one forum.
+ */
+function _forum_access_forum_access_callback($tid = NULL) {
+  return (!$tid && _forum_access_access_any_forum()) || forum_access_access($tid, 'view');
+}
+
+/**
+ * Helper function to determine the access to the 'forum' menu item.
+ *
+ * Returns TRUE if the user has at least one role that can access
+ * at least one forum.
+ */
+function _forum_access_access_any_forum($account = NULL) {
+  global $user;
+  static $return = array();
+
+  if (!isset($account)) {
+    $account = $user;
+  }
+
+  if (!isset($return[$account->uid])) {
+    if ($account->uid == 1) {
+      return $return[$account->uid] = TRUE;
+    }
+    if (!user_access('access content', $account)) {
+      return $return[$account->uid] = FALSE;
+    }
+    $rids = variable_get('forum_access_rids', NULL);
+    if (!isset($rids)) {
+      $rids = array();
+      $result = db_query("SELECT fa.rid FROM {forum_access} fa WHERE fa.grant_view > 0 GROUP BY fa.rid");
+      while ($role = db_fetch_object($result)) {
+        $rids[] = $role->rid;
+      }
+      variable_set('forum_access_rids', $rids);
+    }
+    foreach ($rids as $rid) {
+      if (isset($account->roles[$rid])) {
+        return $return[$account->uid] = TRUE;
+      }
+    }
+    $return[$account->uid] = FALSE;
+  }
+  return $return[$account->uid];
+}
+
+/**
+ * Implementation of hook_taxonomy().
+ *
+ * Delete {forum_access} records when forums are deleted.
+ */
+function forum_access_taxonomy($op, $type, $array = NULL) {
+  //dpm($array, "hook_taxonomy($op, $type)");
+  if ($type = 'term' && $op == 'delete' && $array['vid'] == _forum_access_get_vid()) {
+    db_query("DELETE FROM {forum_access} WHERE tid = %d", $array['tid']);
+    variable_del('forum_access_rids'); // clear cache
+  }
+}
+
+/**
+ * Return forum.module's forum vocabulary ID.
+ */
+function _forum_access_get_vid() {
+  return variable_get('forum_nav_vocabulary', '');
+}
+
+/**
+ * Return the rid of the Forum Moderator role or NULL if the role does not
+ * exist.
+ */
+function forum_access_query_moderator_rid() {
+  return variable_get('forum_access_moderator_rid', NULL);
+}
+
+/**
+ * Return the forum tid or FALSE.
+ */
+function _forum_access_get_tid($node) {
+  return (isset($node->forum_tid) ? $node->forum_tid : (isset($node->tid) ? $node->tid : FALSE));
+}
+
+/**
+ * Save and return the $tid.
+ */
+function _forum_access_changed_tid($tid = NULL) {
+  static $saved_tid = NULL;
+  if (!empty($tid)) {
+    $saved_tid = $tid;
+  }
+  return $saved_tid;
+}
+
+/**
+ * Implementation of hook_node_access_explain().
+ */
+function forum_access_node_access_explain($row) {
+  static $roles = NULL;
+  if ($row->realm == 'forum_access') {
+    if (!isset($roles)) {
+      module_load_include('node.inc', 'forum_access');
+      $roles = _forum_access_get_all_roles();
+    }
+    if (isset($roles[$row->gid])) {
+      return array($roles[$row->gid]);
+    }
+    return array('(unknown gid)');
+  }
+}
+
+/**
+ * Implementation of hook_acl_explain().
+ */
+function forum_access_acl_explain($acl_id, $name, $number, $users = NULL) {
+  if (empty($users)) {
+    return "ACL (id=$acl_id) would grant access to nodes in forum/$number.";
+  }
+  return "ACL (id=$acl_id) grants access to nodes in forum/$number to the listed user(s).";
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.node.inc b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.node.inc
new file mode 100644
index 0000000..b8965f2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.node.inc
@@ -0,0 +1,242 @@
+<?php
+
+/**
+ * @file forum_access.node.inc
+ *
+ * Include file for forum_access.module, containing (sub-)page handling
+ * (form_alter) code for the node and comment forms as well as code
+ * for temporarily assigning the Forum Moderator role and managing
+ * the resulting rights.
+ */
+
+/**
+ * Rewrite the taxonomy item on the node form.
+ */
+function _forum_access_node_form(&$form, &$form_state) {
+  global $user;
+  $vid = _forum_access_get_vid();
+
+  if (!isset($form['taxonomy'][$vid]['#options'])) {
+    return;
+  }
+
+  // True node administrators are all powerful and do NOT get their forms rewritten here.
+  if (user_access('administer nodes') && empty($user->_forum_access_moderator)) {
+    return;
+  }
+
+  $roles = array_keys($user->roles);
+  $result = db_query("SELECT tid FROM {forum_access} WHERE rid IN (". db_placeholders($roles) .") AND grant_create = 1", $roles);
+  while ($obj = db_fetch_object($result)) {
+    $tids[$obj->tid] = $obj->tid;
+  }
+
+  // Also get all forums they happen to be able to moderate.
+  $result = db_query("SELECT a.number AS tid FROM {acl} a INNER JOIN {acl_user} u ON a.acl_id = u.acl_id WHERE a.module = 'forum_access' AND u.uid = %d", $user->uid);
+  while ($obj = db_fetch_object($result)) {
+    $tids[$obj->tid] = $obj->tid;
+  }
+
+  // Ensure the forum they're trying to post to directly is allowed, otherwise
+  // there will be much confusion.
+  $forum_tid = arg(3);
+  if (isset($forum_tid) && is_numeric($forum_tid) && !isset($tids[$forum_tid])) {
+    drupal_access_denied();
+    module_invoke_all('exit');
+    exit;
+  }
+
+  foreach ($form['taxonomy'][$vid]['#options'] as $tid => $name) {
+    if (!is_numeric($tid)) {
+      $options[$tid] = $name;
+    }
+    elseif (is_object($name)) {
+      foreach ($name->option as $sub_tid => $sub_name) {
+        if (!empty($tids[$sub_tid])) {
+          $options[$tid]->option[$sub_tid] = $sub_name;
+        }
+      }
+    }
+    elseif ($tids[$tid]) {
+      $options[$tid] = $name;
+    }
+  }
+
+  if ($options) {
+    $form['taxonomy'][$vid]['#options'] = $options;
+  }
+  else {
+    unset($form['taxonomy'][$vid]);
+  }
+
+  // Apply modifications for Moderators (by role or uid).
+  if (!empty($user->_forum_access_moderator)) {
+    // We gave this user the 'administer nodes' permission, which he doesn't
+    // normally have. Remove controls that should be reserved to true node
+    // administrators.
+    _forum_access_disable_moderator(); // not needed anymore
+    $allowed_elements = variable_get('forum_access_allowed_node_edit_elements', array('nid', 'vid', 'uid', 'created', 'type', 'changed', 'title', 'shadow', 'body_field', 'revision_information', 'form_build_id', 'form_token', 'form_id', 'comment_settings', 'taxonomy', 'attachments'));
+    $allowed_options = variable_get('forum_access_allowed_node_edit_options', array('status', 'sticky', 'subscriptions_notify'));
+    foreach (element_children($form) as $key) {
+      switch ($key) {
+        case 'options':
+          foreach (element_children($form[$key]) as $key2) {
+            if (array_search($key2, $allowed_options) === FALSE) {
+              $form[$key][$key2]['#access'] = FALSE;
+            }
+          }
+          break;
+        case 'buttons':
+          $tid = $form['taxonomy'][$vid]['#default_value'][0];
+          if (!forum_access_access($tid, 'update')) {
+            $form['buttons']['submit']['#access'] = FALSE;
+            $form['buttons']['preview']['#access'] = FALSE;
+          }
+          if (!forum_access_access($tid, 'delete')) {
+            $form['buttons']['delete']['#access'] = FALSE;
+          }
+          break;
+        default:
+          if (array_search($key, $allowed_elements) === FALSE) {
+            $form[$key]['#access'] = FALSE;
+          }
+      }
+    }
+  }
+}
+
+/**
+ * Remove the in-line 'Post new comment' form, if the user does not have the
+ * 'create' permission (see below).
+ * (This needs forum_access_preprocess_box() to clean up afterwards.)
+ *
+ * Also, deny access if the user tries to enter a comment URL directly,
+ * and sanitize the Administration options for users with Edit grants.
+ */
+function _forum_access_comment_form(&$form, &$form_state) {
+  global $user;
+  if ($user->uid != 1 && isset($form['nid']['#value'])) {
+    $node = node_load($form['nid']['#value']);
+    if ($tid = _forum_access_get_tid($node)) {
+      if (!forum_access_access($tid, 'comment_create')) {
+        switch (arg(0)) {
+          case 'node':
+              // Remove the in-line comment form, replace with text message to user.
+              $form = NULL;
+              $form['from'] = array(
+                  '#type'  => 'item',
+                  '#value' => 'You do not have permission to post comments in this forum.',);
+            break;
+            case 'comment':
+                if (arg(1)=='reply') {
+                    drupal_set_message(t("ERROR: You do not have permission to post comments in this forum."), 'error');
+                    drupal_goto("node/$node->nid");
+                    exit;
+                }
+            break;
+        }//switch arg(0)
+      }
+      else {
+        if (isset($form['admin']) && !empty($user->_forum_access_moderator)) {
+          foreach (element_children($form['admin']) as $key) {
+            if ($key != 'status') {
+              $form['admin'][$key]['#access'] = FALSE;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+/*
+ * Give the user the 'administer nodes' and 'administer comments' permissions for this request.
+ */
+function _forum_access_enable_moderator() {
+  global $user;
+  $rid = _forum_access_get_moderator_rid();
+  $user->roles[$rid] = '(forum_access temporary)';
+  user_access('', NULL, TRUE); // clear the permissions cache to activate the new role
+}
+
+/*
+ * Remove the moderator permissions.
+ */
+function _forum_access_disable_moderator() {
+  global $user;
+  $rid = _forum_access_get_moderator_rid();
+  unset($user->roles[$rid]);
+  user_access('', NULL, TRUE); // clear the permissions cache to revert to normal
+}
+
+/*
+ * Retrieve the rid of the Forum Moderator role; if the role does not exist,
+ * then create it.
+ */
+function _forum_access_get_moderator_rid($verbose = FALSE) {
+  $rid = forum_access_query_moderator_rid();
+  if ($rid !== NULL) {
+    if (db_result(db_query("SELECT COUNT(rid) FROM {role} WHERE rid = %d", $rid)) == 1) {
+      return $rid;
+    }
+  }
+  module_load_include('admin.inc', 'forum_access');
+  return _forum_access_create_moderator_rid($verbose);
+}
+
+/*
+ * Return the roles for forum_access_node_access_explain().
+ */
+function _forum_access_get_all_roles() {
+  $roles = user_roles();
+  $moderator_rid = forum_access_query_moderator_rid();
+  if (isset($roles[$moderator_rid])) {
+    $roles[$moderator_rid] .= ' '. t('(!Forum_Access temporary role, does not need any grants.)', array('!Forum_Access' => 'Forum Access'));
+  }
+  return $roles;
+}
+
+/**
+ * Recreate comment links (they've already been themed), and
+ * remove those that aren't accessible to the user (pre-D6.17).
+ */
+function _forum_access_preprocess_comment(&$variables) {
+  global $user;
+  if (!empty($user->_forum_access_moderator)) {
+    _forum_access_enable_moderator(); // this allows us to retrieve the comment links (without setting precedent!)
+  }
+
+  $tid = $variables['node']->tid;
+  $links = module_invoke_all('link', 'comment', $variables['comment'], 0);
+  if (!empty($user->_forum_access_moderator) && arg(0) == 'node' && arg(2) == NULL) {
+    _forum_access_disable_moderator();
+  }
+
+  if (isset($links['comment_reply']) && (!preg_match('#<li class="[^"]*comment_reply[^"]*".*</li>#U', $variables['links']) || !user_access('post comments') || !forum_access_access($tid, 'comment_create', NULL, FALSE))) {
+    unset($links['comment_reply']);
+  }
+  if (isset($links['comment_edit']) && !forum_access_access($tid, 'update', NULL, FALSE) && !comment_access('edit', $variables['comment'])) {
+    unset($links['comment_edit']);
+  }
+  if (isset($links['comment_delete']) && !forum_access_access($tid, 'delete', NULL, FALSE) && !user_access('administer comments')) {
+    unset($links['comment_delete']);
+  }
+  foreach (array_keys($links) as $link) {
+    if (!in_array($link, array('comment_reply', 'comment_edit', 'comment_delete'))) {
+      $link_preg_quote = preg_quote($link, '#');
+      if (!preg_match('#<li class="[^"]*'. $link_preg_quote .'[^"]*"(.|\n)*</li>#U', $variables['links'])) {
+        unset($links[$link]); // eliminate possible additional unknown links that came in for 'administer_comments'
+      }
+    }
+  }
+
+  drupal_alter('link', $links, $variables['node'], $variables['comment']);
+
+  if (empty($links)) {
+    $links['comment_forbidden'] = array(
+      'title' => theme('comment_post_forbidden', $variables['node']),
+      'html'  => TRUE,
+    );
+  }
+  $variables['links'] = theme('links', $links);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.test b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.test
new file mode 100644
index 0000000..6bf5291
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_access/forum_access.test
@@ -0,0 +1,1766 @@
+<?php
+/**
+ * @file
+ * Test file for forum_access.module.
+ */
+
+
+/**
+ * This is the base class for forum access testing.
+ */
+class ForumAccessTestCase extends DrupalWebTestCase {
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    $this->timeLimit = 600;
+    //$this->testForumAccessUseDNA = module_exists('devel_node_access');
+    if ($this->testForumAccessUseDNA) {
+      parent::setUp('forum_access', 'forum', 'comment', 'acl', 'devel_node_access');
+    }
+    else {
+      parent::setUp('forum_access', 'forum', 'comment', 'acl');
+    }
+  }
+
+  /**
+   * This variable holds the current forum Id.
+   */
+  private $testForumAccessCurrentForumId = 0;
+
+  /**
+   * This variable holds the admin user account.
+   */
+  private $testForumAccessAdminUser;
+
+  /**
+   * This variable is an array with user objects.
+   */
+  private $testForumAccessUsers = array();
+
+  /**
+   * This variable is an array with user permissions (also in an array).
+   */
+  private $testForumAccessPermissions = array();
+
+  /**
+   * This variable is an array with the permissions of the anonymous userrole.
+   */
+  private $testForumAccessPermissionsAnonymous = array();
+
+  /**
+   * This variable is an array with uids to forum access test username
+   * (NOT $user->name).
+   */
+  private $testForumAccessUidToName = array();
+
+  /**
+   * This variable is the forum access test username of the logged in
+   * user (NOT $user->name).
+   */
+  private $testForumAccessCurrentUsername = '';
+
+  /**
+   * This variable is the forum access users with moderator status in an
+   * array with uids.
+   */
+  private $testForumAccessModerators = array();
+
+  /**
+   * This variable is the forum grants of the tested forum configuration
+   * in an array.
+   */
+  private $testForumAccessGrants = array(
+      'anonymous_view'   => TRUE,
+      'anonymous_create' => TRUE,
+      'anonymous_update' => TRUE,
+      'anonymous_delete' => TRUE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => TRUE,
+      'authenticated_update' => TRUE,
+      'authenticated_delete' => TRUE,
+    );
+
+  /**
+   * This variable determines whether the Devel Node Access module is
+   * active; it's set in setUp().
+   */
+  private $testForumAccessUseDNA = FALSE;
+
+  /**
+   * The main function which is used to start testing a specific forum
+   * configuration.
+   *
+   * You can add new users with specific permissions.
+   * You can also remove users with permissions who are not important to you,
+   * please do NOT remove the admin_user!
+   */
+  protected function testForumAccessRun($grants = array()) {
+    if (is_array($grants) && isset($grants['anonymous_view']) && isset($grants['anonymous_create']) && isset($grants['anonymous_update']) && isset($grants['anonymous_delete']) && isset($grants['authenticated_view']) && isset($grants['authenticated_create']) && isset($grants['authenticated_update']) && isset($grants['authenticated_delete'])) {
+      // permissions for default roles
+      $this->testForumAccessSetPermissionsAnonymousRole();
+      $this->testForumAccessSetPermissionsAuthenticatedRole();
+
+      $this->testForumAccessCreateUser('admin_user', array('administer site configuration', 'access administration pages', 'administer nodes', 'administer blocks', 'administer comments', 'administer forums', 'create forum topics', 'post comments', 'post comments without approval', 'access content', 'access comments'));
+
+      // view
+      $this->testForumAccessCreateUser('normal_user_1'); // no permissions
+      //$this->testForumAccessCreateUser('normal_user_2', array('access content'));
+      //$this->testForumAccessCreateUser('normal_user_3', array('access comments'));
+      $this->testForumAccessCreateUser('normal_user_4', array('access content', 'access comments'));
+
+      // create
+      $this->testForumAccessCreateUser('normal_user_5', array('access content', 'access comments', 'post comments', 'post comments without approval'));
+      $this->testForumAccessCreateUser('normal_user_6', array('access content', 'access comments', 'post comments', 'post comments without approval', 'create forum topics'));
+
+      // edit & delete
+      $this->testForumAccessCreateUser('normal_user_7', array('access content', 'access comments', 'post comments', 'post comments without approval', 'create forum topics', 'edit own forum topics', 'delete own forum topics'));
+      $this->testForumAccessCreateUser('normal_user_8', array('access content', 'access comments', 'post comments', 'post comments without approval', 'create forum topics', 'edit any forum topic', 'delete any forum topic'));
+      $this->testForumAccessCreateUser('normal_user_9', array('access content', 'access comments', 'post comments', 'post comments without approval', 'create forum topics', 'delete own forum topics', 'delete any forum topic'));
+
+      // You can create extra users here.
+      //$this->testForumAccessCreateUser('unique_name', array('permissions'));
+
+      $this->testForumAccessLogin('admin_user');
+
+      // Disable clean URLs (on qa.d.o they are disabled!).
+      //$this->drupalPost('admin/settings/clean-urls', array('clean_url' => 0), t('Save configuration'));
+
+      if ($this->testForumAccessUseDNA) {
+        // Enable Devel Node Access verbose mode.
+        $this->drupalPost('admin/settings/devel', array('devel_node_access_debug_mode' => 1), t('Save configuration'));
+        $this->drupalPost('admin/build/block/list/garland', array('devel_node_access_1[region]' => 'footer'), t('Save blocks'));
+      }
+
+      // Rebuild permissions.
+      $this->drupalPost('admin/content/node-settings/rebuild', array(), t('Rebuild permissions'));
+
+      // Delete all cached permissions.
+      user_access(NULL, NULL, TRUE);
+
+      // Create the forum with the appropriate grants.
+      $this->testForumAccessCurrentForumId = $this->testForumAccessCreateForum($grants);
+
+      if ($this->testForumAccessCurrentForumId == 0) {
+        $this->pass(t('There was a problem creating a forum for this test.'), 'Debug');
+        return;
+      }
+
+      // Save the grants.
+      $this->testForumAccessGrants = $grants;
+
+      // for every user except the admin_user
+      foreach ($this->testForumAccessUsers as $forumAccessUser) {
+
+        // Do the loop 3 times, once as an anonymous user and once as an
+        // authenticated user and once as moderator, all with the same permissions.
+        for ($i = 0; $i < 3; $i++) {
+
+          // admin makes default content to start.
+          if ($this->testForumAccessCurrentUsername != 'admin_user') {
+            $this->testForumAccessLogin('admin_user');
+          }
+          $admin_topic_id = $this->testForumAccessCreateTopic();
+          $admin_comment_id = $this->testForumAccessCreateComment($admin_topic_id);
+          $this->testForumAccessLogout();
+
+          switch ($i) {
+            case 0; // anonymous user with the same permissions
+              $this->testForumAccessSetPermissionsAnonymousRole($this->testForumAccessPermissions[$this->testForumAccessUidToName[$forumAccessUser->uid]]);
+              break;
+            case 1; // authenticated user
+              $this->testForumAccessLogin($this->testForumAccessUidToName[$forumAccessUser->uid]);
+              break;
+            case 2; // upgrade authenticated user to moderator
+              $this->testForumAccessLogin('admin_user');
+              $this->testForumAccessAddModerator($forumAccessUser->uid);
+              $this->testForumAccessLogin($this->testForumAccessUidToName[$forumAccessUser->uid]);
+              break;
+          }
+
+          // view
+          $this->testForumAccessViewForum();
+          $this->testForumAccessViewTopic($admin_topic_id);
+          $this->testForumAccessViewComment($admin_topic_id, $admin_comment_id);
+
+          // create
+          $user_topic_id = $this->testForumAccessCreateTopic();
+          if (intval($user_topic_id) == 0) {
+            $user_topic_id = $admin_topic_id;
+          }
+          $user_comment_id = $this->testForumAccessCreateComment($user_topic_id);
+          if (intval($user_comment_id) == 0) {
+            $user_comment_id = $admin_comment_id;
+          }
+          $user_reply_id = 0;
+          if ($this->testForumAccessCreateReply($user_topic_id, $user_comment_id)) {
+            $user_reply_id = $user_comment_id + 1;
+          }
+
+          // edit
+          if ($user_topic_id != $admin_topic_id) {
+            $this->testForumAccessUpdateTopic($user_topic_id);
+          }
+          if ($user_comment_id != $admin_comment_id) {
+            $this->testForumAccessUpdateComment($user_topic_id, $user_comment_id);
+          }
+          if ($user_reply_id) {
+            $this->testForumAccessUpdateComment($user_topic_id, $user_reply_id);
+          }
+          $this->testForumAccessUpdateTopic($admin_topic_id);
+          $this->testForumAccessUpdateComment($admin_topic_id, $admin_comment_id);
+
+          // delete
+          if ($user_comment_id != $admin_comment_id) {
+            $this->testForumAccessDeleteComment($user_topic_id, $user_comment_id);
+          }
+          if ($user_topic_id != $admin_topic_id) {
+            $this->testForumAccessDeleteTopic($user_topic_id);
+          }
+          $this->testForumAccessDeleteComment($admin_topic_id, $admin_comment_id);
+          $this->testForumAccessDeleteTopic($admin_topic_id);
+        }
+      }
+    }
+  }
+
+  /**
+   * This function calculates if a user is allowed to perform a certain action
+   */
+  private function testForumAccessAllowed($type = '', $content_id = 0) {
+    /**
+     * The rules according to forum_access
+     *
+     * the 'access content' and 'access comments' permissions AND View to be able to see this forum and its content at all,
+     * the 'create forum topics' (and similar) permissions AND Post to be able to create forum content, and
+     * the 'post comments' and (probably) 'post comments without approval' permission AND Post to be able to post comments/replies;
+     *
+     * the 'edit own forum topics' or 'edit any forum topic' (and similar) permissions (OR Edit) can be added if desired, plus
+     * the 'delete own forum topics' or 'delete any forum topic' (and similar) permissions (OR Delete) if desired;
+     *
+     * the 'administer comments' (global!) permission OR Edit/Delete to be able to edit/delete comments;
+     * the 'administer forums' permission AND View to be able to administer forums (and change access!).
+     *
+     * content permissions: 'access content'
+     * comment permissions: 'access comments', 'administer comments', 'post comments', 'post comments without approval'
+     * forum permissions: 'create forum topics', 'delete any forum topic', 'delete own forum topics', 'edit any forum topic', 'edit own forum topics'
+     */
+
+    global $user;
+    $current_user_is_content_owner = FALSE;
+
+    if (!$this->loggedInUser) {
+      if (($type == 'topic_update') || ($type == 'topic_delete')) {
+        $topic = node_load($content_id);
+        if ($topic && empty($topic->uid)) {
+          $current_user_is_content_owner = TRUE;
+          $this->pass(t('Anonymous is the topic owner'), 'Debug');
+        }
+        else {
+          $this->pass(t('Anonymous is NOT the topic owner'), 'Debug');
+        }
+      }
+      if (($type == 'comment_update') || ($type == 'comment_delete')) {
+        $comment = _comment_load($content_id);
+        if ($comment && empty($comment->uid)) {
+          $current_user_is_content_owner = TRUE;
+          $this->pass(t('Anonymous is the comment owner'), 'Debug');
+        }
+        else {
+          $this->pass(t('Anonymous is NOT the comment owner'), 'Debug');
+        }
+      }
+      $anonymous_permissions = $this->testForumAccessPermissionsAnonymous;
+    }
+    else {
+      if (($this->testForumAccessCurrentUsername != 'admin_user') && in_array($this->testForumAccessUsers[$this->testForumAccessCurrentUsername]->uid, $this->testForumAccessModerators)) {
+        $current_user_is_moderator = TRUE;
+      }
+      else {
+        $current_user_is_moderator = FALSE;
+      }
+
+      if (($type == 'topic_update') || ($type == 'topic_delete')) {
+        $topic = node_load($content_id);
+        if ($topic && ($this->testForumAccessUidToName[$topic->uid] == $this->testForumAccessCurrentUsername)) {
+          $current_user_is_content_owner = TRUE;
+          $this->pass(t('The current user is the topic owner'), 'Debug');
+        }
+        else {
+          $this->pass(t('The current user is NOT the topic owner'), 'Debug');
+        }
+      }
+      if (($type == 'comment_update') || ($type == 'comment_delete')) {
+        $comment = _comment_load($content_id);
+        if ($comment && ($this->testForumAccessUidToName[$comment->uid] == $this->testForumAccessCurrentUsername)) {
+          $current_user_is_content_owner = TRUE;
+          $this->pass(t('The current user is the comment owner'), 'Debug');
+        }
+        else {
+          $this->pass(t('The current user is NOT the comment owner'), 'Debug');
+        }
+      }
+      $user_permissions = $this->testForumAccessPermissions[$this->testForumAccessCurrentUsername];
+    }
+    switch ($type) {
+      case 'forum_view':
+      case 'topic_view':
+        if (!$this->loggedInUser) {
+          if ((in_array('access content', $anonymous_permissions)) && ($this->testForumAccessGrants['anonymous_view'])) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        else {
+          if ((in_array('access content', $user_permissions)) &&
+              (($this->testForumAccessGrants['authenticated_view']) || $current_user_is_moderator)) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        break;
+      case 'comment_view':
+        if (!$this->loggedInUser) {
+          if ((in_array('access content', $anonymous_permissions)) && (in_array('access comments', $anonymous_permissions)) && ($this->testForumAccessGrants['anonymous_view'])) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        else {
+          if ((in_array('access content', $user_permissions)) &&
+              (in_array('access comments', $user_permissions)) &&
+              (($this->testForumAccessGrants['authenticated_view']) || $current_user_is_moderator)) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        break;
+      case 'topic_create':
+        if (!$this->loggedInUser) {
+          if ((in_array('create forum topics', $anonymous_permissions)) && ($this->testForumAccessGrants['anonymous_create'])) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        else {
+          if ((in_array('create forum topics', $user_permissions)) &&
+              (($this->testForumAccessGrants['authenticated_create']) || $current_user_is_moderator)) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        break;
+      case 'comment_create':
+        if (!$this->loggedInUser) {
+          if ((in_array('post comments', $anonymous_permissions)) && ($this->testForumAccessGrants['anonymous_create'])) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        else {
+          if ((in_array('post comments', $user_permissions)) &&
+              (($this->testForumAccessGrants['authenticated_create']) || $current_user_is_moderator)) {
+            return TRUE;
+          }
+          else {
+            return FALSE;
+          }
+        }
+        break;
+      case 'topic_update':
+        if (!$this->testForumAccessAllowed('topic_view', $content_id)) {
+          return FALSE;
+        }
+        // check ownership
+        if (!$this->loggedInUser) {
+          if ((in_array('edit any forum topic', $anonymous_permissions)) ||
+              (in_array('administer nodes', $anonymous_permissions)) ||
+              ($this->testForumAccessGrants['anonymous_update']) ||
+              ((in_array('edit own forum topics', $anonymous_permissions)) && $current_user_is_content_owner)) {
+            if ((in_array('access content', $anonymous_permissions))) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        else {
+          if ((in_array('edit any forum topic', $user_permissions)) ||
+              (in_array('administer nodes', $user_permissions)) ||
+              ($this->testForumAccessGrants['authenticated_update']) ||
+              ((in_array('edit own forum topics', $user_permissions)) && $current_user_is_content_owner) ||
+              $current_user_is_moderator) {
+            if ((in_array('access content', $user_permissions))) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        break;
+      case 'comment_update':
+        if (!$this->testForumAccessAllowed('comment_view', $content_id)) {
+          return FALSE;
+        }
+        // check ownership
+        if (!$this->loggedInUser) {
+          if ((in_array('administer comments', $anonymous_permissions)) || ($this->testForumAccessGrants['anonymous_update'])) {
+            if ((in_array('access content', $anonymous_permissions)) && (in_array('access comments', $anonymous_permissions))) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        else {
+          if ((in_array('administer comments', $user_permissions)) || ($this->testForumAccessGrants['authenticated_update']) || $current_user_is_moderator) {
+            if ((in_array('access content', $user_permissions)) && (in_array('access comments', $user_permissions))) {
+              return TRUE;
+            }
+          }
+          elseif ($current_user_is_content_owner) {
+            session_save_session(FALSE);
+            $user_saved = $user;
+            $user = user_load($comment->uid);
+            $allow_editing_own_comment = comment_access('edit', $comment);
+            $user = $user_saved;
+            session_save_session(TRUE);
+            if ($allow_editing_own_comment) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        break;
+      case 'topic_delete':
+        if (!$this->testForumAccessAllowed('topic_view', $content_id)) {
+          return FALSE;
+        }
+        // check ownership
+        if (!$this->loggedInUser) {
+          if ((in_array('delete any forum topic', $anonymous_permissions)) ||
+              (in_array('administer nodes', $anonymous_permissions)) ||
+              ($this->testForumAccessGrants['anonymous_delete']) ||
+              ((in_array('delete own forum topics', $anonymous_permissions)) && $current_user_is_content_owner)) {
+            if ((in_array('access content', $anonymous_permissions))) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        else {
+          if ((in_array('delete any forum topic', $user_permissions)) ||
+              (in_array('administer nodes', $user_permissions)) ||
+              ($this->testForumAccessGrants['authenticated_delete']) ||
+              ((in_array('delete own forum topics', $user_permissions)) && $current_user_is_content_owner) ||
+              $current_user_is_moderator) {
+            if ((in_array('access content', $user_permissions))) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        break;
+      case 'comment_delete':
+        if (!$this->testForumAccessAllowed('comment_view', $content_id)) {
+          return FALSE;
+        }
+        // check ownership
+        if (!$this->loggedInUser) {
+          if ((in_array('administer comments', $anonymous_permissions)) || ($this->testForumAccessGrants['anonymous_delete'])) {
+            if ((in_array('access content', $anonymous_permissions)) && (in_array('access comments', $anonymous_permissions))) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        else {
+          if ((in_array('administer comments', $user_permissions)) || ($this->testForumAccessGrants['authenticated_delete']) || $current_user_is_moderator) {
+            if ((in_array('access content', $user_permissions)) && (in_array('access comments', $user_permissions))) {
+              return TRUE;
+            }
+          }
+          return FALSE;
+        }
+        break;
+    }
+    return FALSE;
+  }
+
+  /**
+   * This function test if the user can view a forum
+   */
+  private function testForumAccessViewForum() {
+    if (intval($this->testForumAccessCurrentForumId) > 0) {
+      $allowed = $this->testForumAccessAllowed('forum_view');
+
+      // Check to see if the user/anonymous is allowed to view forum
+      $this->drupalGet('forum/' . $this->testForumAccessCurrentForumId);
+      if ($allowed) {
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to view this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo();
+        }
+      }
+      else {
+        if (!$this->assertText("not authorized", t('@user should NOT be allowed to view this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo();
+        }
+      }
+    }
+  }
+
+  /**
+   * This function creates a new forum (must be used by the admin user!)
+   */
+  private function testForumAccessCreateForum($options = array()) {
+    if (is_array($options) && isset($options['anonymous_view']) && isset($options['anonymous_create']) && isset($options['anonymous_update']) && isset($options['anonymous_delete']) && isset($options['authenticated_view']) && isset($options['authenticated_create']) && isset($options['authenticated_update']) && isset($options['authenticated_delete'])) {
+      $forum_options = array(
+        'name' => 'Forum name: ' . $this->randomName(32),
+        'description' => 'Forum description: ' . $this->randomName(64),
+
+        'forum_access[view][1]'   => $options['anonymous_view'],
+        'forum_access[create][1]' => $options['anonymous_create'],
+        'forum_access[update][1]' => $options['anonymous_update'],
+        'forum_access[delete][1]' => $options['anonymous_delete'],
+
+        'forum_access[view][2]'   => $options['authenticated_view'],
+        'forum_access[create][2]' => $options['authenticated_create'],
+        'forum_access[update][2]' => $options['authenticated_update'],
+        'forum_access[delete][2]' => $options['authenticated_delete'],
+      );
+      $html = $this->drupalPost('admin/content/forum/add/forum', $forum_options, t('Save'));
+      if ($this->assertNoText("not authorized", t('@user should be allowed to create new forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+        $position = strpos($html, $forum_options['name']);
+        $matches = array();
+        if ($this->assert(intval($position) > 0, t("Found 'edit forum' link."))) {
+          preg_match('/admin\/content\/forum\/edit\/forum\/(?<forum_id>\d+)/', $html, $matches, 0, $position);
+          $forum_tid = (array_key_exists('forum_id', $matches) ? intval($matches['forum_id']) : 0);
+          if (!$this->assert($forum_tid > 0, t("Found tid in 'edit forum' link."))) {
+            $this->testForumAccessDumpDebugInfo();
+          }
+          return $forum_tid;
+        }
+        else {
+          $this->testForumAccessDumpDebugInfo();
+        }
+      }
+      else {
+        $this->testForumAccessDumpDebugInfo();
+      }
+    }
+    return 0;
+  }
+
+  /**
+   * This function test if the user can view a certain topic
+   */
+  private function testForumAccessViewTopic($topic_id = 0) {
+    if (intval($topic_id) > 0) {
+      $allowed = $this->testForumAccessAllowed('topic_view');
+
+      // Check to see if the user/anonymous is allowed to view topic
+      $this->drupalGet('node/' . $topic_id);
+      if ($allowed) {
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to view this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+      else {
+        if (!$this->assertText("not authorized", t('@user should NOT be allowed to view this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+    }
+  }
+
+  /**
+   * This function test if the user can create a topic
+   * Three steps: is there a create link, does the create topic page opens and can the new topic be saved
+   */
+  private function testForumAccessCreateTopic() {
+    if (intval($this->testForumAccessCurrentForumId) > 0) {
+      $allowed = $this->testForumAccessAllowed('topic_create');
+
+      // Check to see if the reply link is on the view page
+      $this->drupalGet('forum/' . $this->testForumAccessCurrentForumId);
+      if ($allowed) {
+        if (!$this->assertPattern("/node\/add\/forum\/$this->testForumAccessCurrentForumId/", t('For @user there should be an post-new-topic-link on this page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo();
+        }
+      }
+      else {
+        if (!$this->assertNoPattern("/node\/add\/forum\/$this->testForumAccessCurrentForumId/", t('For @user there should NOT be any post-new-topic-link on this page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo();
+        }
+      }
+
+      // Check to see if the user/anonymous is allowed to open the reply page
+      $page_opened = FALSE;
+      $this->drupalGet('node/add/forum/' . $this->testForumAccessCurrentForumId);
+      // Can the user select a forum from the selectbox
+      $selectbox_has_forum = (bool)preg_match('/<option value="">.*<\/option><option value="\d+"(>| selected="selected">).*<\/option><\/select>/', $this->drupalGetContent(), $matches);
+      // Does the text "not authorized" exists on the page
+      $not_authorized_exists = strpos(filter_xss($this->drupalGetContent(), array()), "not authorized") !== FALSE;
+      if ($allowed) {
+        if (!$this->assert(($selectbox_has_forum && !$not_authorized_exists), t('@user should be allowed to open the post new topic page for this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+//        if (!$this->assertNoText("not authorized", t('@user should be allowed to open the post new topic page for this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo();
+        }
+        else {
+          $page_opened = TRUE;
+        }
+      }
+      else {
+        if (!$this->assert((!$selectbox_has_forum || $not_authorized_exists), t('@user should NOT be allowed to open the post new topic page for this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+//        if (!$this->assertText("not authorized", t('@user should NOT be allowed to open the post new topic page for this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo();
+          $page_opened = TRUE;
+        }
+      }
+
+      if ($page_opened) {
+        // Check to see if the user/anonymous is allowed to create a new topic
+        $topic_options = array(
+          'title' => 'Topic title: ' . $this->randomName(32),
+          'body' => 'Topic body: ' . $this->randomName(64),
+        );
+        $this->drupalPost('node/add/forum/' . $this->testForumAccessCurrentForumId, $topic_options, t('Save'));
+        if ($allowed) {
+          if ($this->assertNoText("not authorized", t('@user should be allowed to create a new topic on this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $topic = node_load(array('title' => $topic_options['title']));
+            return ($topic ? $topic->nid : 0);
+          }
+          else {
+            $this->testForumAccessDumpDebugInfo();
+          }
+        }
+        else {
+          if (!$this->assertText("not authorized", t('@user should NOT be allowed to create a new topic on this forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo();
+            $topic = node_load(array('title' => $topic_options['title']));
+            return ($topic ? $topic->nid : 0);
+          }
+        }
+      }
+    }
+    return 0;
+  }
+
+  /**
+   * This function test if the user can update a topic
+   * Three steps: is there a edit link, does the edit page opens and can the edited topic be saved
+   */
+  private function testForumAccessUpdateTopic($topic_id = 0) {
+    if (intval($topic_id) > 0) {
+      $allowed = $this->testForumAccessAllowed('topic_update', $topic_id);
+
+      // Check to see if there is an edit link on the page
+      $this->drupalGet('node/' . $topic_id);
+      if ($allowed) {
+        if (!$this->assertPattern("/node\/$topic_id\/edit/", t('For @user there should be an edit-this-topic-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+      else {
+        if (!$this->assertNoPattern("/node\/$topic_id\/edit/", t('For @user there should NOT be an edit-this-topic-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+
+      // Check to see if the user/anonymous is allowed to open the reply page
+      $page_opened = FALSE;
+      $this->drupalGet('node/' . $topic_id . '/edit/');
+      if ($allowed) {
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to open the edit page for this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+        else {
+          $page_opened = TRUE;
+        }
+      }
+      else {
+        if (!$this->assertText("not authorized", t('@user should NOT be allowed to open the edit page for this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          $page_opened = TRUE;
+        }
+      }
+
+      if ($page_opened) {
+        // Check to see if the user/anonymous is allowed to edit the topic
+        $topic_options = array(
+          'title' => 'Topic title: ' . $this->randomName(32),
+          'body' => 'Topic body: ' . $this->randomName(64),
+        );
+        $this->drupalPost('node/' . $topic_id . '/edit', $topic_options, t('Save'));
+        if ($allowed) {
+          if (!$this->assertNoText("not authorized", t('@user should be allowed to edit this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          }
+        }
+        else {
+          if (!$this->assertText("not authorized", t('@user should NOT be allowed to edit this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * This function test if the user can delete a topic
+   * Four steps: is there a edit link, does the edit page opens, is there a delete link on the edit page and can the topic be deleted
+   */
+  private function testForumAccessDeleteTopic($topic_id = 0) {
+    if (intval($topic_id) > 0) {
+      $allowed_edit = $this->testForumAccessAllowed('topic_update', $topic_id);
+      $allowed_delete = $this->testForumAccessAllowed('topic_delete', $topic_id);
+
+      // Check to see if there is an edit link on the page
+      $this->drupalGet('node/' . $topic_id);
+      if ($allowed_edit) {
+        if (!$this->assertPattern("/node\/$topic_id\/edit/", t('For @user there should be an edit-this-topic-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+      else {
+        if (!$this->assertNoPattern("/node\/$topic_id\/edit/", t('For @user there should NOT be an edit-this-topic-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+
+      // Check to see if the user/anonymous is allowed to open the edit page
+      $page_opened = FALSE;
+      $this->drupalGet('node/' . $topic_id . '/edit/');
+      if ($allowed_edit) {
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to open the edit page on this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+        else {
+          $page_opened = TRUE;
+        }
+      }
+      else {
+        if (!$this->assertText("not authorized", t('@user should NOT be allowed to open the edit page on this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          $page_opened = TRUE;
+        }
+      }
+
+      $page_has_delete_button = $test_direct_link = FALSE;
+      if ($page_opened) {
+        // Check to see if there is an delete link on the edit page
+        $this->drupalGet('node/' . $topic_id . '/edit');
+        if ($allowed_delete) {
+          if (!$this->assertFieldById('edit-delete', 'Delete', t('For @user there should be a delete-link on the edit page for this topic: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          }
+          else {
+            $page_has_delete_button = TRUE;
+          }
+        }
+        else {
+          if (!$this->assertNoFieldById('edit-delete', 'Delete', t('For @user there should NOT be a delete-link on the edit page for this topic: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+            $page_has_delete_button = TRUE;
+          }
+        }
+
+        if ($page_has_delete_button) {
+          // Check to see if the user/anonymous is allowed to delete the topic
+          $this->drupalPost('node/' . $topic_id . '/edit', array(), t('Delete'));
+        }
+      }
+      else {
+        $this->drupalGet('node/' . $topic_id . '/delete');
+        $test_direct_link = TRUE;
+      }
+
+      if ($page_has_delete_button || $test_direct_link) {
+        if ($allowed_delete) {
+          if (!$this->assertNoText("not authorized", t('@user should be allowed to delete this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          }
+        }
+        else {
+          if (!$this->assertText("not authorized", t('@user should NOT be allowed to delete this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * This function test if the user can view a certain comment
+   */
+  private function testForumAccessViewComment($topic_id = 0, $comment_id = 0) {
+    if ((intval($topic_id) > 0) && (intval($comment_id) > 0)) {
+      $allowed = $this->testForumAccessAllowed('comment_view');
+
+      // Check to see if the user/anonymous is allowed to view comment
+      $this->drupalGet('node/' . $topic_id, array('fragment' => 'comment-' . $comment_id));
+      if ($allowed) {
+        if (!$this->assertText("Comment comment", t('@user should be allowed to view this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+      else {
+        if (!$this->assertNoText("Comment comment", t('@user should NOT be allowed to view this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+    }
+  }
+
+  /**
+   * This function test if the user can create a comment
+   * Three steps: is there a create link, does the create comment page opens and can the new comment be saved
+   */
+  private function testForumAccessCreateComment($topic_id = 0) {
+    if (intval($topic_id) > 0) {
+      $allowed = $this->testForumAccessAllowed('comment_create');
+
+      // Check to see if the reply link is on the view page
+      $this->drupalGet('node/' . $topic_id);
+      if ($allowed) {
+        if (!$this->assertPattern("/comment\/reply\/$topic_id/", t('For @user there should be a reply link on this page for a new comment: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+      else {
+        if (!$this->assertNoPattern("/comment\/reply\/$topic_id/", t('For @user there should NOT be any reply link on this page for a new comment: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+      }
+
+      // Check to see if the user/anonymous is allowed to open the reply page
+      $page_opened = FALSE;
+      $this->drupalGet('comment/reply/' . $topic_id);
+      if ($allowed) {
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to open the reply page for this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+        }
+        else {
+          $page_opened = TRUE;
+        }
+      }
+      else {
+        if (!$this->assertText("not authorized", t('@user should NOT be allowed to open the reply page for this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          $page_opened = TRUE;
+        }
+      }
+
+      if ($page_opened) {
+        // Check to see if the user/anonymous is allowed to create a new comment
+        $comment_options = array(
+          'subject' => 'Comment subject: ' . $this->randomName(32),
+          'comment' => 'Comment comment: ' . $this->randomName(64),
+        );
+        $this->drupalPost('comment/reply/' . $topic_id, $comment_options, t('Preview'));
+        $html = $this->drupalPost(NULL, $comment_options, t('Save'));
+        if ($allowed) {
+          if ($this->assertNoText("not authorized", t('@user should be allowed to reply on this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            preg_match('/node\/(?<topic_id>\d+)#comment-(?<comment_id>\d+)/', $this->url, $matches);
+            return (array_key_exists('comment_id', $matches) ? intval($matches['comment_id']) : 0);
+          }
+          else {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+          }
+        }
+        else {
+          if (!$this->assertText("not authorized", t('@user should NOT be allowed to reply on this topic: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('topic', $topic_id);
+            preg_match('/node\/(?<topic_id>\d+)#comment-(?<comment_id>\d+)/', $this->url, $matches);
+            return (array_key_exists('comment_id', $matches) ? intval($matches['comment_id']) : 0);
+          }
+        }
+      }
+    }
+    return 0;
+  }
+
+  /**
+   * This function test if the user can create a reply on a comment
+   * Three steps: is there a create link, does the create reply page opens and can the new reply on a comment be saved
+   */
+  private function testForumAccessCreateReply($topic_id = 0, $comment_id = 0) {
+    if ((intval($topic_id) > 0) && (intval($comment_id) > 0)) {
+      $allowed = $this->testForumAccessAllowed('comment_create');
+
+      // Check to see if the reply link is on the view page
+      $this->drupalGet('node/' . $topic_id, array('fragment' => 'comment-' . $comment_id));
+      if ($allowed) {
+        if (!$this->assertPattern("/comment\/reply\/$topic_id\/$comment_id/", t('For @user there should be a reply link on this comment on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+      else {
+        if (!$this->assertNoPattern("/comment\/reply\/$topic_id\/$comment_id/", t('For @user there should NOT be any reply link on this comment on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+
+      // Check to see if the user/anonymous is allowed to open the reply page
+      $page_opened = FALSE;
+      $this->drupalGet('comment/reply/' . $topic_id . '/' . $comment_id);
+      if ($allowed) {
+        if (!$this->assertNoTextArray(array("not authorized", "not exist"), t('@user should be allowed to open the reply page for this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+        else {
+          $page_opened = TRUE;
+        }
+      }
+      else {
+        if (!$this->assertTextArray(array("not authorized", "not exist"), t('@user should NOT be allowed to open the reply page for this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          $page_opened = TRUE;
+        }
+      }
+
+      if ($page_opened) {
+        // Check to see if the user/anonymous is allowed to reply the comment
+        $comment_options = array(
+          'subject' => 'Comment subject: ' . $this->randomName(32),
+          'comment' => 'Comment comment: ' . $this->randomName(64),
+        );
+        $this->drupalPost('comment/reply/' . $topic_id . '/' . $comment_id, $comment_options, t('Preview'));
+        $this->drupalPost(NULL, $comment_options, t('Save'));
+        if ($allowed) {
+          if ($this->assertNoText("not authorized", t('@user should be allowed to reply on this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            //preg_match_all('/node\/(?<topic_id>\d+)#comment-(?<comment_id>\d+)/', $this->url, $matches);
+            //return (array_key_exists('comment_id', $matches) ? intval($matches['comment_id']) : 0);
+            return TRUE;
+          }
+          else {
+            $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          }
+        }
+        else {
+          if (!$this->assertText("not authorized", t('@user should NOT be allowed to reply on this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+            //preg_match_all('/node\/(?<topic_id>\d+)#comment-(?<comment_id>\d+)/', $this->url, $matches);
+            //return (array_key_exists('comment_id', $matches) ? intval($matches['comment_id']) : 0);
+          }
+        }
+      }
+    }
+    return FALSE;
+  }
+
+  /**
+   * This function test if the user can update a comment
+   * Three steps: is there a edit link, does the edit page opens and can the edited comment be saved
+   */
+  private function testForumAccessUpdateComment($topic_id = 0, $comment_id = 0) {
+    if ((intval($topic_id) > 0) && (intval($comment_id) > 0)) {
+      $allowed = $this->testForumAccessAllowed('comment_update', $comment_id);
+
+      // Check to see if the edit link is on the view page
+      $this->drupalGet('node/' . $topic_id, array('fragment' => 'comment-' . $comment_id));
+      if ($allowed) {
+        if (!$this->assertPattern("/comment\/edit\/$comment_id/", t('For @user there should be an edit this comment-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+      else {
+        if (!$this->assertNoPattern("/comment\/edit\/$comment_id/", t('For @user there should NOT be an edit this comment-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+
+      // Check to see if the user/anonymous is allowed to open the reply page
+      $page_opened = FALSE;
+      $this->drupalGet('comment/edit/' . $comment_id);
+      if ($allowed) {
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to open the edit page for this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+        else {
+          $page_opened = TRUE;
+        }
+      }
+      else {
+        if (!$this->assertText("not authorized", t('@user should NOT be allowed to open the edit page for this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          $page_opened = TRUE;
+        }
+      }
+
+      if ($page_opened) {
+        // Check to see if the user/anonymous is allowed to edit the comment
+        $comment_options = array(
+          'subject' => 'Comment subject: ' . $this->randomName(32),
+          'comment' => 'Comment comment: ' . $this->randomName(64),
+        );
+        $this->drupalPost('comment/edit/' . $comment_id, $comment_options, t('Preview'));
+        $this->drupalPost(NULL, $comment_options, t('Save'));
+        if ($allowed) {
+          if (!$this->assertNoText("not authorized", t('@user should be allowed to edit this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          }
+        }
+        else {
+          if (!$this->assertText("not authorized", t('@user should NOT be allowed to edit this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * This function test if the user can delete a comment
+   * Three steps: is there a delete link, does the delete page opens and can the comment be deleted
+   */
+  private function testForumAccessDeleteComment($topic_id = 0, $comment_id = 0) {
+    if ((intval($topic_id) > 0) && (intval($comment_id) > 0)) {
+      $allowed = $this->testForumAccessAllowed('comment_delete', $comment_id);
+
+      // Check to see if the delete link is on the view page
+      $this->drupalGet('node/' . $topic_id, array('fragment' => 'comment-' . $comment_id));
+      if ($allowed) {
+        if (!$this->assertPattern("/comment\/delete\/$comment_id/", t('For @user there should be a delete-this-comment-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+      else {
+        if (!$this->assertNoPattern("/comment\/delete\/$comment_id/", t('For @user there should NOT be a delete-this-comment-link on the page: @page', array('@user' => ($this->loggedInUser ? t('this user') : t('anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+      }
+
+      // Check to see if the user/anonymous is allowed to open the delete page
+      $page_opened = FALSE;
+      $this->drupalGet('comment/delete/' . $comment_id);
+      if ($allowed) {
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to open the delete page for this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+        }
+        else {
+          $page_opened = TRUE;
+        }
+      }
+      else {
+        if (!$this->assertText("not authorized", t('@user should NOT be allowed to open the delete page for this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          $page_opened = TRUE;
+        }
+      }
+
+      if ($page_opened) {
+        // Check to see if the user/anonymous is allowed to edit the comment
+        $this->drupalPost('comment/delete/' . $comment_id, array(), t('Delete'));
+        if ($allowed) {
+          if (!$this->assertNoText("not authorized", t('@user should be allowed to delete this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          }
+        }
+        else {
+          if (!$this->assertText("not authorized", t('@user should NOT be allowed to delete this comment: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+            $this->testForumAccessDumpDebugInfo('comment', $comment_id);
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * Wrapper function for drupalCreateUser
+   */
+  private function testForumAccessCreateUser($name = '', $permissions = array()) {
+    if (empty($name)) {
+      $name = 'User name: ' . $this->randomName(16);
+    }
+
+    $delete_permissions = FALSE;
+    if (count($permissions) == 0) {
+      $delete_permissions = TRUE;
+      $permissions = array('access comments', 'access content', 'post comments', 'post comments without approval'); // default permissions
+    }
+
+    if ($this->testForumAccessUseDNA) {
+      $permissions[] = 'view devel_node_access information';
+    }
+
+    if ($name == 'admin_user') {
+      $this->testForumAccessAdminUser = $this->drupalCreateUser($permissions);
+    }
+    else {
+      $this->testForumAccessUsers[$name] = $this->drupalCreateUser($permissions);
+    }
+
+    if ($delete_permissions) {
+      $permissions = array();
+      if ($name == 'admin_user') {
+        $this->testForumAccessDeletePermissionsUser($this->testForumAccessAdminUser->uid);
+      }
+      else {
+        $this->testForumAccessDeletePermissionsUser($this->testForumAccessUsers[$name]->uid);
+      }
+      $this->pass('The permissions are deleted for user: ' . $name, 'Debug');
+    }
+    $this->testForumAccessPermissions[$name] = $permissions;
+    if ($name == 'admin_user') {
+      $this->testForumAccessUidToName[$this->testForumAccessAdminUser->uid] = $name;
+    }
+    else {
+      $this->testForumAccessUidToName[$this->testForumAccessUsers[$name]->uid] = $name;
+    }
+  }
+
+  /**
+   * Wrapper function for drupalLogin
+   */
+  private function testForumAccessLogin($name = '') {
+    if (array_key_exists($name, $this->testForumAccessUsers)) {
+      $this->drupalLogin($this->testForumAccessUsers[$name]);
+      $this->testForumAccessCurrentUsername = $name;
+    }
+    elseif ($name == 'admin_user') {
+      $this->drupalLogin($this->testForumAccessAdminUser);
+      $this->testForumAccessCurrentUsername = 'admin_user';
+    }
+    else {
+      $this->drupalLogout();
+      $this->testForumAccessCurrentUsername = '';
+    }
+  }
+
+  /**
+   * Wrapper function for drupalLogout
+   */
+  private function testForumAccessLogout() {
+    $this->drupalLogout();
+    $this->testForumAccessCurrentUsername = '';
+  }
+
+  /**
+   * This function adds a user as a moderator to a forum (must be used by the admin user!)
+   */
+  private function testForumAccessAddModerator($uid = 0) {
+    if ($this->testForumAccessCurrentUsername == 'admin_user' && (intval($this->testForumAccessCurrentForumId) > 0) && (intval($uid) > 0)) {
+      if ($uid > 0) {
+        $forum_options = array(
+          'forum_access[acl][add]' => $this->testForumAccessUsers[$this->testForumAccessUidToName[$uid]]->name,
+        );
+        $this->drupalPost('admin/content/forum/edit/forum/' . $this->testForumAccessCurrentForumId, $forum_options, t('Add User'));
+        $this->drupalPost(NULL, $forum_options, t('Save'));
+        if (!$this->assertNoText("not authorized", t('@user should be allowed to add moderators to a forum: @page', array('@user' => ($this->loggedInUser ? t('The user') : t('Anonymous')), '@page' => $this->getUrl())))) {
+          $this->testForumAccessDumpDebugInfo();
+        }
+        else {
+          array_push($this->testForumAccessModerators, $uid);
+        }
+      }
+    }
+  }
+
+  /**
+   * This function adds a user as a moderator to a forum (must be used by the admin user!)
+   */
+  private function testForumAccessGetModeratorStatus($uid = 0) {
+    if ((intval($this->testForumAccessCurrentForumId) > 0) && (intval($uid) > 0)) {
+      $result = db_fetch_object(db_query("SELECT uid FROM {acl_user} WHERE uid = %d AND acl_id = (SELECT acl_id FROM {acl} WHERE module = 'forum_access' AND (name = '%s' OR number = %d))", $uid, $this->testForumAccessCurrentForumId, $this->testForumAccessCurrentForumId));
+      if (isset($result->uid) && (intval($result->uid) > 0) && ($uid == $result->uid)) {
+        return TRUE;
+      }
+      else {
+        return FALSE;
+      }
+    }
+  }
+
+  /**
+   * This function is called when the program detects an error. It gives extra information so that the error can be fixed. hopefully :)
+   */
+  private function testForumAccessDumpDebugInfo($content_type = '', $content_id = 0) {
+    if (($content_type == 'comment') && (intval($content_id) > 0)) {
+      $comment = _comment_load($content_id);
+      if ($comment && ($comment->cid > 0)) {
+        $this->pass('The comment owner is: ' . ($comment->uid > 0 ? $this->testForumAccessUidToName[$comment->uid] : t('Anonymous')), 'Debug');
+        $topic = node_load($comment->nid);
+        if ($topic && ($topic->nid > 0)) {
+          $this->pass('The topic owner is: ' . ($topic->uid > 0 ? $this->testForumAccessUidToName[$topic->uid] : t('Anonymous')), 'Debug');
+        }
+      }
+    }
+
+    if (($content_type == 'topic') && (intval($content_id) > 0)) {
+      $topic = node_load($content_id);
+      if ($topic && ($topic->nid > 0)) {
+        $this->pass('The topic owner is: ' . ($topic->uid > 0 ? $this->testForumAccessUidToName[$topic->uid] : t('Anonymous')), 'Debug');
+      }
+    }
+
+    $this->pass('The current user is: ' . (empty($this->testForumAccessCurrentUsername) ? 'anonymous' : $this->testForumAccessCurrentUsername), 'Debug');
+    if ($this->loggedInUser) {
+      // Check the moderator status.
+      $moderator_status_set = (($this->testForumAccessCurrentUsername != 'admin_user') && in_array($this->testForumAccessUsers[$this->testForumAccessCurrentUsername]->uid, $this->testForumAccessModerators)) ? TRUE : FALSE;
+      $moderator_status_database = (($this->testForumAccessCurrentUsername != 'admin_user') && $this->testForumAccessGetModeratorStatus($this->testForumAccessUsers[$this->testForumAccessCurrentUsername]->uid)) ? TRUE : FALSE;
+      if ($moderator_status_set == $moderator_status_database) {
+       $this->pass('The moderator status is: ' . ($moderator_status_set ? 'TRUE' : 'FALSE'), 'Debug');
+      }
+      else {
+        $this->pass('Set moderator status is: ' . ($moderator_status_set ? 'TRUE' : 'FALSE'), 'Debug');
+        $this->pass('Database moderator status is: ' . ($moderator_status_database ? 'TRUE' : 'FALSE'), 'Debug');
+      }
+
+      // Check the permissions of the logged-in user.
+      $permissions_set = (count($this->testForumAccessPermissions[$this->testForumAccessCurrentUsername]) > 0) ? $this->testForumAccessPermissions[$this->testForumAccessCurrentUsername] : array(t('none'));
+      if ($this->testForumAccessCurrentUsername == 'admin_user') {
+        $permissions_database = $this->testForumAccessGetPermissionsUser($this->testForumAccessAdminUser->uid, TRUE);
+      }
+      else {
+        $permissions_database = $this->testForumAccessGetPermissionsUser($this->testForumAccessUsers[$this->testForumAccessCurrentUsername]->uid, TRUE);
+      }
+      $permissions_error = FALSE;
+      foreach ($permissions_set as $perm) {
+        if (!(in_array($perm, $permissions_database))) {
+          $permissions_error = TRUE;
+        }
+      }
+      foreach ($permissions_database as $perm) {
+        if (!(in_array($perm, $permissions_set))) {
+          $permissions_error = TRUE;
+        }
+      }
+      if (!$permissions_error) {
+        $this->pass('The permissions are: ' . implode(', ', $permissions_set), 'Debug');
+      }
+      else {
+        $this->pass('Set permissions are: ' . implode(', ', $permissions_set), 'Debug');
+        if ($this->testForumAccessCurrentUsername == 'admin_user') {
+          $this->pass('Database permissions are: ' . implode(', ', $this->testForumAccessGetPermissionsUser($this->testForumAccessAdminUser->uid, TRUE)), 'Debug');
+        }
+        else {
+          $this->pass('Database permissions are: ' . implode(', ', $this->testForumAccessGetPermissionsUser($this->testForumAccessUsers[$this->testForumAccessCurrentUsername]->uid, TRUE)), 'Debug');
+        }
+      }
+    }
+    else {
+      // Check the permissions for anonymous.
+      $permissions_set = (count($this->testForumAccessPermissionsAnonymous) > 0) ? $this->testForumAccessPermissionsAnonymous : array(t('none'));
+      $permissions_database = $this->testForumAccessGetPermissionsAnonymousUser(TRUE);
+      $permissions_error = FALSE;
+      foreach ($permissions_set as $perm) {
+        if (!(in_array($perm, $permissions_database))) {
+          $permissions_error = TRUE;
+        }
+      }
+      foreach ($permissions_database as $perm) {
+        if (!(in_array($perm, $permissions_set))) {
+          $permissions_error = TRUE;
+        }
+      }
+      if (!$permissions_error) {
+        $this->pass('The permissions are: ' . implode(', ', $permissions_set), 'Debug');
+      }
+      else {
+        $this->pass('Set permissions are: ' . implode(', ', $permissions_set), 'Debug');
+        $this->pass('Database permissions are: ' . implode(', ', $permissions_database), 'Debug');
+      }
+    }
+
+    // Check the forum grants.
+    $forum_grants_set = array_keys(array_filter($this->testForumAccessGrants, create_function('$grant', 'return $grant;')));
+    $forum_grants_database = array_keys(array_filter($this->testForumAccessGetForumGrants(), create_function('$grant', 'return $grant;')));
+    $forum_grants_error = FALSE;
+    foreach ($forum_grants_set as $grant) {
+      if (!(in_array($grant, $forum_grants_database))) {
+        $forum_grants_error = TRUE;
+      }
+    }
+    foreach ($forum_grants_database as $grant) {
+      if (!(in_array($grant, $forum_grants_set))) {
+        $forum_grants_error = TRUE;
+      }
+    }
+    if (!$forum_grants_error) {
+      $this->pass('The forum grants are: ' . implode(', ', $forum_grants_set), 'Debug');
+    }
+    else {
+      $this->pass('Set forum grants are: ' . implode(', ', $forum_grants_set), 'Debug');
+      $this->pass('Database forum grants are: ' . implode(', ', $forum_grants_database), 'Debug');
+    }
+
+    $this->verbose('URL: ' . $this->getUrl() . '<hr />' . $this->drupalGetContent(), 'Debug');
+  }
+
+  /**
+   * This function sets the permissions for the anonymous userrole in the database
+   */
+  private function testForumAccessSetPermissionsAnonymousRole($permissions = array()) {
+    if ($this->checkPermissions($permissions)) {
+      $this->testForumAccessPermissionsAnonymous = $permissions;
+      db_query("UPDATE {permission} SET perm = '%s' WHERE rid = %d", implode(', ', $permissions), DRUPAL_ANONYMOUS_RID);
+    }
+  }
+
+  /**
+   * This function gets the permissions for the authenticated userrole from the database
+   */
+  private function testForumAccessSetPermissionsAuthenticatedRole($permissions = array()) {
+    if ($this->checkPermissions($permissions)) {
+      db_query("UPDATE {permission} SET perm = '%s' WHERE rid = %d", implode(', ', $permissions), DRUPAL_AUTHENTICATED_RID);
+    }
+  }
+
+  /**
+   * This function deletes the user permissions for a specific from the database
+   */
+  private function testForumAccessDeletePermissionsUser($uid = 0) {
+    if ($uid > 0) {
+      db_query("UPDATE {permission} SET perm = '' WHERE rid IN (SELECT rid FROM {users_roles} WHERE uid = %d)", $uid);
+    }
+  }
+
+  /**
+   * This function gets the permissions for the anonymous userrole from the database
+   */
+  private function testForumAccessGetPermissionsAnonymousUser($if_empty_return_none = FALSE) {
+    $result = db_fetch_object(db_query("SELECT perm FROM {permission} WHERE rid = %d", DRUPAL_ANONYMOUS_RID));
+    if (!empty($result->perm)) {
+      return explode(', ', $result->perm);
+    }
+    elseif ($if_empty_return_none) {
+      return array(t('none'));
+    }
+    return array();
+  }
+
+  /**
+   * This function gets the user permissions for a specific from the database
+   */
+  private function testForumAccessGetPermissionsUser($uid = 0, $if_empty_return_none = FALSE) {
+    if ($uid > 0) {
+      $result_authenticated = db_fetch_object(db_query("SELECT perm FROM {permission} WHERE rid = %d", DRUPAL_AUTHENTICATED_RID));
+      $result_user = db_fetch_object(db_query("SELECT p.perm as perm FROM {users_roles} u JOIN {permission} p ON u.rid = p.rid where u.uid = %d", $uid));
+      if ((!empty($result_authenticated->perm)) && (!empty($result_user->perm))) {
+        return array_merge(explode(', ', $result_authenticated->perm), explode(', ', $result_user->perm));
+      }
+      elseif (!empty($result_authenticated->perm)) {
+        return explode(', ', $result_authenticated->perm);
+      }
+      elseif (!empty($result_user->perm)) {
+        return explode(', ', $result_user->perm);
+      }
+      elseif ($if_empty_return_none) {
+        return array(t('none'));
+      }
+    }
+    return array();
+  }
+
+  /**
+   * This function gets the forum grants from the database
+   */
+  private function testForumAccessGetForumGrants() {
+    $grants = array();
+    $grants_anonymous = db_fetch_object(db_query("SELECT * FROM {forum_access} WHERE rid = %d", DRUPAL_ANONYMOUS_RID));
+    $grants['anonymous_view']   = ($grants_anonymous->grant_view ? TRUE : FALSE);
+    $grants['anonymous_create'] = ($grants_anonymous->grant_create ? TRUE : FALSE);
+    $grants['anonymous_update'] = ($grants_anonymous->grant_update ? TRUE : FALSE);
+    $grants['anonymous_delete'] = ($grants_anonymous->grant_delete ? TRUE : FALSE);
+    $grants_authenticated = db_fetch_object(db_query("SELECT * FROM {forum_access} WHERE rid = %d", DRUPAL_AUTHENTICATED_RID));
+    $grants['authenticated_view']   = ($grants_authenticated->grant_view ? TRUE : FALSE);
+    $grants['authenticated_create'] = ($grants_authenticated->grant_create ? TRUE : FALSE);
+    $grants['authenticated_update'] = ($grants_authenticated->grant_update ? TRUE : FALSE);
+    $grants['authenticated_delete'] = ($grants_authenticated->grant_delete ? TRUE : FALSE);
+    return $grants;
+  }
+
+  /**
+   * This function gets the forum grants from the input string
+   */
+  protected function testForumAccessGetGrants($grants_string = '') {
+    $grants = array();
+    $grants['anonymous_view'] = ((stristr($grants_string, 'anonymous_view') === FALSE) ? FALSE : TRUE);
+    $grants['anonymous_create'] = ((stristr($grants_string, 'anonymous_create') === FALSE) ? FALSE : TRUE);
+    $grants['anonymous_update'] = ((stristr($grants_string, 'anonymous_update') === FALSE) ? FALSE : TRUE);
+    $grants['anonymous_delete'] = ((stristr($grants_string, 'anonymous_delete') === FALSE) ? FALSE : TRUE);
+
+    $grants['authenticated_view'] = ((stristr($grants_string, 'authenticated_view') === FALSE) ? FALSE : TRUE);
+    $grants['authenticated_create'] = ((stristr($grants_string, 'authenticated_create') === FALSE) ? FALSE : TRUE);
+    $grants['authenticated_update'] = ((stristr($grants_string, 'authenticated_update') === FALSE) ? FALSE : TRUE);
+    $grants['authenticated_delete'] = ((stristr($grants_string, 'authenticated_delete') === FALSE) ? FALSE : TRUE);
+
+    return $grants;
+  }
+
+  /**
+   * The array version of the function assertText
+   */
+  private function assertTextArray($text, $message = '', $group = 'Other') {
+    return $this->assertTextArrayHelper($text, $message, $group, FALSE);
+  }
+
+  /**
+   * The array version of the function assertNoText
+   */
+  private function assertNoTextArray($text, $message = '', $group = 'Other') {
+    return $this->assertTextArrayHelper($text, $message, $group, TRUE);
+  }
+
+  /**
+   * The array version of the function assertTextHelper
+   */
+  private function assertTextArrayHelper($text, $message, $group, $not_exists) {
+    if ($this->plainTextContent === FALSE) {
+      $this->plainTextContent = filter_xss($this->content, array());
+    }
+    if (!$message) {
+      $message = !$not_exists ? t('"@text" found', array('@text' => $text)) : t('"@text" not found', array('@text' => $text));
+    }
+    return $this->assert($not_exists == ($this->strpos_array($this->plainTextContent, $text) === FALSE), $message, $group);
+  }
+
+  /**
+   * The array version of the function strpos
+   */
+  private function strpos_array($haystack, $needles) {
+    foreach ($needles as $needle) {
+      $pos = strpos($haystack, $needle);
+      if ($pos !== FALSE) {
+        return $pos;
+      }
+    }
+    return FALSE;
+  }
+}
+
+class ForumAccessTestCase1 extends ForumAccessTestCase {
+  /**
+   * Implements getInfo().
+   *
+   * Change the grants to your wishes
+   */
+  public function getInfo() {
+    $grants = array(
+      'anonymous_view'   => TRUE,
+      'anonymous_create' => TRUE,
+      'anonymous_update' => TRUE,
+      'anonymous_delete' => TRUE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => TRUE,
+      'authenticated_update' => TRUE,
+      'authenticated_delete' => TRUE,
+    );
+    $grants_string = implode(', ', array_keys(array_filter($grants, create_function('$grant', 'return $grant;'))));
+    if (empty($grants_string)) {
+      $grants_string = t('none');
+    }
+    return array
+    (
+      'name' => t('Forum access functionality #1'),
+      'description' => t('Test forum access with the following grants: @grants_string', array('@grants_string' => $grants_string)),
+      'group' => t('Forum access'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Implements the Forum Access testing.
+   */
+  function testForumAccess() {
+    $getinfo = $this->getInfo();
+    $this->testForumAccessRun($this->testForumAccessGetGrants($getinfo['description']));
+  }
+}
+
+class ForumAccessTestCase2 extends ForumAccessTestCase {
+  /**
+   * Implements getInfo().
+   *
+   * Change the grants to your wishes
+   */
+  public function getInfo() {
+    $grants = array(
+      'anonymous_view'   => TRUE,
+      'anonymous_create' => TRUE,
+      'anonymous_update' => FALSE,
+      'anonymous_delete' => FALSE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => TRUE,
+      'authenticated_update' => TRUE,
+      'authenticated_delete' => TRUE,
+    );
+    $grants_string = implode(', ', array_keys(array_filter($grants, create_function('$grant', 'return $grant;'))));
+    if (empty($grants_string)) {
+      $grants_string = t('none');
+    }
+    return array
+    (
+      'name' => t('Forum access functionality #2'),
+      'description' => t('Test forum access with the following grants: @grants_string', array('@grants_string' => $grants_string)),
+      'group' => t('Forum access'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Implements the Forum Access testing.
+   */
+  function testForumAccess() {
+    $getinfo = $this->getInfo();
+    $this->testForumAccessRun($this->testForumAccessGetGrants($getinfo['description']));
+  }
+}
+
+class ForumAccessTestCase3 extends ForumAccessTestCase {
+  /**
+   * Implements getInfo().
+   *
+   * Change the grants to your wishes
+   */
+  public function getInfo() {
+    $grants = array(
+      'anonymous_view'   => FALSE,
+      'anonymous_create' => FALSE,
+      'anonymous_update' => FALSE,
+      'anonymous_delete' => FALSE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => TRUE,
+      'authenticated_update' => TRUE,
+      'authenticated_delete' => TRUE,
+    );
+    $grants_string = implode(', ', array_keys(array_filter($grants, create_function('$grant', 'return $grant;'))));
+    if (empty($grants_string)) {
+      $grants_string = t('none');
+    }
+    return array
+    (
+      'name' => t('Forum access functionality #3'),
+      'description' => t('Test forum access with the following grants: @grants_string', array('@grants_string' => $grants_string)),
+      'group' => t('Forum access'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Implements the Forum Access testing.
+   */
+  function testForumAccess() {
+    $getinfo = $this->getInfo();
+    $this->testForumAccessRun($this->testForumAccessGetGrants($getinfo['description']));
+  }
+}
+
+class ForumAccessTestCase4 extends ForumAccessTestCase {
+  /**
+   * Implements getInfo().
+   *
+   * Change the grants to your wishes
+   */
+  public function getInfo() {
+    $grants = array(
+      'anonymous_view'   => TRUE,
+      'anonymous_create' => FALSE,
+      'anonymous_update' => FALSE,
+      'anonymous_delete' => FALSE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => TRUE,
+      'authenticated_update' => FALSE,
+      'authenticated_delete' => FALSE,
+    );
+    $grants_string = implode(', ', array_keys(array_filter($grants, create_function('$grant', 'return $grant;'))));
+    if (empty($grants_string)) {
+      $grants_string = t('none');
+    }
+    return array
+    (
+      'name' => t('Forum access functionality #4'),
+      'description' => t('Test forum access with the following grants: @grants_string', array('@grants_string' => $grants_string)),
+      'group' => t('Forum access'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Implements the Forum Access testing.
+   */
+  function testForumAccess() {
+    $getinfo = $this->getInfo();
+    $this->testForumAccessRun($this->testForumAccessGetGrants($getinfo['description']));
+  }
+}
+
+class ForumAccessTestCase5 extends ForumAccessTestCase {
+  /**
+   * Implements getInfo().
+   *
+   * Change the grants to your wishes
+   */
+  public function getInfo() {
+    $grants = array(
+      'anonymous_view'   => FALSE,
+      'anonymous_create' => FALSE,
+      'anonymous_update' => FALSE,
+      'anonymous_delete' => FALSE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => TRUE,
+      'authenticated_update' => TRUE,
+      'authenticated_delete' => FALSE,
+    );
+    $grants_string = implode(', ', array_keys(array_filter($grants, create_function('$grant', 'return $grant;'))));
+    if (empty($grants_string)) {
+      $grants_string = t('none');
+    }
+    return array
+    (
+      'name' => t('Forum access functionality #5'),
+      'description' => t('Test forum access with the following grants: @grants_string', array('@grants_string' => $grants_string)),
+      'group' => t('Forum access'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Implements the Forum Access testing.
+   */
+  function testForumAccess() {
+    $getinfo = $this->getInfo();
+    $this->testForumAccessRun($this->testForumAccessGetGrants($getinfo['description']));
+  }
+}
+
+class ForumAccessTestCase6 extends ForumAccessTestCase {
+  /**
+   * Implements getInfo().
+   *
+   * Change the grants to your wishes
+   */
+  public function getInfo() {
+    $grants = array(
+      'anonymous_view'   => FALSE,
+      'anonymous_create' => FALSE,
+      'anonymous_update' => FALSE,
+      'anonymous_delete' => FALSE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => TRUE,
+      'authenticated_update' => FALSE,
+      'authenticated_delete' => FALSE,
+    );
+    $grants_string = implode(', ', array_keys(array_filter($grants, create_function('$grant', 'return $grant;'))));
+    if (empty($grants_string)) {
+      $grants_string = t('none');
+    }
+    return array
+    (
+      'name' => t('Forum access functionality #6'),
+      'description' => t('Test forum access with the following grants: @grants_string', array('@grants_string' => $grants_string)),
+      'group' => t('Forum access'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Implements the Forum Access testing.
+   */
+  function testForumAccess() {
+    $getinfo = $this->getInfo();
+    $this->testForumAccessRun($this->testForumAccessGetGrants($getinfo['description']));
+  }
+}
+
+class ForumAccessTestCase7 extends ForumAccessTestCase {
+  /**
+   * Implements getInfo().
+   *
+   * Change the grants to your wishes
+   */
+  public function getInfo() {
+    $grants = array(
+      'anonymous_view'   => FALSE,
+      'anonymous_create' => FALSE,
+      'anonymous_update' => FALSE,
+      'anonymous_delete' => FALSE,
+
+      'authenticated_view'   => TRUE,
+      'authenticated_create' => FALSE,
+      'authenticated_update' => FALSE,
+      'authenticated_delete' => FALSE,
+    );
+    $grants_string = implode(', ', array_keys(array_filter($grants, create_function('$grant', 'return $grant;'))));
+    if (empty($grants_string)) {
+      $grants_string = t('none');
+    }
+    return array
+    (
+      'name' => t('Forum access functionality #7'),
+      'description' => t('Test forum access with the following grants: @grants_string', array('@grants_string' => $grants_string)),
+      'group' => t('Forum access'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Implements the Forum Access testing.
+   */
+  function testForumAccess() {
+    $getinfo = $this->getInfo();
+    $this->testForumAccessRun($this->testForumAccessGetGrants($getinfo['description']));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_tweaks/forum_tweaks.info b/drupal/sites/default/boinc/modules/contrib/forum_tweaks/forum_tweaks.info
new file mode 100644
index 0000000..5721ca3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_tweaks/forum_tweaks.info
@@ -0,0 +1,4 @@
+name = Forum tweaks
+description = Add custom tweaks to Forum
+core = 6.x
+dependencies[] = forum
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_tweaks/forum_tweaks.module b/drupal/sites/default/boinc/modules/contrib/forum_tweaks/forum_tweaks.module
new file mode 100644
index 0000000..2440851
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_tweaks/forum_tweaks.module
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * @file
+ * Add custom tweaks to the Forum module
+ */
+ 
+ 
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+require_once('includes/mark-read.inc');
+
+
+/**
+ * Implementation of hook_menu().
+ */
+function forum_tweaks_menu() {
+  // Note that this comes straight out of the Advanced Forum module. As such,
+  // it should be removed should said module be added at a future point in time
+  $items['community/forum/%/read'] = array(
+    'access callback' => 'forum_tweaks_markasread_access',
+    'page arguments' => array(2),
+    'page callback' => 'forum_tweaks_markasread',
+    'type' => MENU_CALLBACK,
+    'file' => 'includes/mark-read.inc',
+  );
+  return $items;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/forum_tweaks/includes/mark-read.inc b/drupal/sites/default/boinc/modules/contrib/forum_tweaks/includes/mark-read.inc
new file mode 100644
index 0000000..87a9f09
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/forum_tweaks/includes/mark-read.inc
@@ -0,0 +1,106 @@
+<?php
+
+
+/**
+ * @file
+ * Holds functions relating to the Mark Forum/All Read functionality.
+ *
+ * NOTE: This is pulled from the Advanced forum module. Only the names have
+ * been changed to protect the innocent.
+ */
+
+/**
+ * Either fill a $links array or return a string version of the link to mark read.
+ */
+function forum_tweaks_get_mark_read_link($tid = 0, &$links = array()) {
+  if (forum_tweaks_markasread_access() && !in_array($tid, variable_get('forum_containers', array()))) {
+    if ($tid) {
+      $links['mark-read']['title'] = t('Mark all topics read');
+      $links['mark-read']['href'] = "community/forum/{$tid}/read";
+
+      return l(t('Mark all topics read') . '<span class="image-replace"></span>', "forum/markasread/$tid", array('html' => TRUE));
+    }
+    else {
+      $links['mark-read']['title'] = t('Mark all forums read');
+      $links['mark-read']['href'] = "community/forum/0/read";
+
+      return l(t('Mark all forums read') . '<span class="image-replace"></span>', "forum/markasread", array('html' => TRUE));
+    }
+  }
+}
+
+/**
+ * Marks all posts in forums or in a given forum as read by the current user.
+ */
+function forum_tweaks_markasread($current_forum_id = 0) {
+  global $user;
+
+  // See if we're on a forum or on the forum overview
+  // Path will be /forum/markasread or /forum/markasread/tid
+  if ($current_forum_id) {
+    // Delete the current history entries so already visited nodes get updated.
+    $sql = "DELETE h
+            FROM {history} AS h
+              INNER JOIN {term_node} AS tn ON (h.nid = tn.nid)
+            WHERE h.uid = %d AND tn.tid = %d";
+    db_query($sql, $user->uid, $current_forum_id);
+
+    // Update the history table with all forum nodes newer than the cutoff.
+    $sql = "INSERT INTO {history} (uid, nid, timestamp)
+            SELECT DISTINCT %d, n.nid, %d
+            FROM {node} AS n
+              INNER JOIN {term_node} AS tn ON n.nid = tn.nid
+              INNER JOIN {node_comment_statistics} AS ncs ON ncs.nid = n.nid
+            WHERE (n.changed > %d OR ncs.last_comment_timestamp > %d) AND tn.tid = %d";
+
+    $args = array($user->uid, time(), NODE_NEW_LIMIT, NODE_NEW_LIMIT, $current_forum_id);
+    db_query($sql, $args);
+
+    // Readpath integration
+    if (module_exists('readpath')) {
+      readpath_clear_readpath();
+    }
+
+    drupal_set_message(t('All content in this forum has been marked as read'));
+    drupal_goto('community/forum/' . $current_forum_id);
+  }
+
+  // We are on the forum overview, requesting all forums be marked read
+  $forum_vocabulary_id = variable_get('forum_nav_vocabulary', '');
+
+  // Delete the current history entries so already visited nodes get updated.
+  $sql = "DELETE h
+          FROM {history} AS h
+            INNER JOIN {term_node} AS tn ON (h.nid = tn.nid)
+            INNER JOIN {term_data} AS td ON (td.tid = tn.tid)
+          WHERE h.uid = %d AND td.vid = %d";
+  db_query($sql, $user->uid, $forum_vocabulary_id);
+
+  // Update the history table with all forum nodes newer than the cutoff.
+  $sql = "INSERT INTO {history} (uid, nid, timestamp)
+          SELECT DISTINCT %d, n.nid, %d
+          FROM {node} AS n
+            INNER JOIN {term_node} AS tn ON n.nid=tn.nid
+            INNER JOIN {node_comment_statistics} AS ncs ON ncs.nid = n.nid
+            INNER JOIN {term_data} AS td ON tn.tid = td.tid
+          WHERE (n.changed > %d OR ncs.last_comment_timestamp > %d) AND td.vid = %d";
+
+  $args = array($user->uid, time(), NODE_NEW_LIMIT, NODE_NEW_LIMIT, $forum_vocabulary_id);
+
+  db_query($sql, $args);
+
+  drupal_set_message(t('All forum content has been marked as read'));
+  drupal_goto('community/forum');
+}
+
+/**
+ * Access callback for menus and link display.
+ *
+ * This separate function is needed because the Drupal 6 menu system doesn't
+ * run hook_menu() every time and the logged-in status of the user can get
+ * cached and re-used for other users.
+ */
+function forum_tweaks_markasread_access() {
+  global $user;
+  return user_access('access content') && $user->uid;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/.cvsignore b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/.cvsignore
new file mode 100644
index 0000000..90ad192
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/.cvsignore
@@ -0,0 +1 @@
+library
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/CHANGELOG.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/CHANGELOG.txt
new file mode 100644
index 0000000..a728c1b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/CHANGELOG.txt
@@ -0,0 +1,40 @@
+6.x-2.4, released 2010-10-23
+- Fixed #839490; can't find library from install profile
+- Fixed #819728; make use of Filter.ExtractStyleBlocks.  Thanks
+  Vector- for contributing the patch.
+- Fixed #586746; Rate limit new version checks
+- Fixed #764974: Give friendly error message if running under PHP4
+- Deprecated Filter.YouTube in favor of SafeObject/FlashCompat.
+  Thanks John Morahan for contributing the patch.
+
+6.x-2.3, released 2010-06-09
+- Fixed #819914; version never updates
+
+6.x-2.2, released 2010-06-04
+- More comprehensive cache clearing.
+- Fixed #659666; clearing caches missed HTML Purifier
+- Fixed #708266; decouple location of HTML Purifier library with
+  libraries API.
+- Fixed #783066; new HTML Purifier version message too obnoxious.
+
+6.x-2.1, released 2009-12-12
+- Ukranian translation by podarok
+- Renamed dashboard to HTML Purifier Dashboard, fixes bug #368468
+- Make installation process nicer by checking if library folder is setup, fixes bug #261874
+- Remove unnecessary version checks
+
+6.x-2.0, released 2008-05-18
+# Drupal 6.x and HTML Purifier 3.1.0 are required
+! HTML Purifier now uses its native form function, so advanced configuration
+  options are available. You can also define your own custom functions
+  for configuration in the config/ directory.
+! Modified and better defaults selected for HTML Purifier.
+- HTML Purifier now maintains its own cache with a longer expiration time;
+  this helps performance greatly.
+- DefinitionCache uses Drupal's caching system
+- HTML Purifier will check for new versions of the core library and display
+  obnoxious warnings if it is out-of-date!
+- Uninstall function now obliterates HTML Purifier variables too.
+
+1.0, released 2007-07-15 (not via Drupal.org)
+- Initial release, basic functionality implemented.
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/HTMLPurifier_DefinitionCache_Drupal.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/HTMLPurifier_DefinitionCache_Drupal.php
new file mode 100644
index 0000000..a219cd2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/HTMLPurifier_DefinitionCache_Drupal.php
@@ -0,0 +1,95 @@
+<?php
+
+require_once 'HTMLPurifier/DefinitionCache.php';
+
+/**
+ * Cache handler that stores all data in drupals builtin cache
+ */
+class HTMLPurifier_DefinitionCache_Drupal extends HTMLPurifier_DefinitionCache
+{
+  /**
+   * Add an object to the cache without overwriting
+   */
+  function add($def, $config) {
+    if (!$this->checkDefType($def)) return;
+    $key = $this->generateKey($config);
+
+    if ($this->fetchFromDrupalCache($key)) {
+      // already cached
+      return false;
+    }
+    $this->storeInDrupalCache($def, $key);
+    return true;
+  }
+
+  /**
+   * Unconditionally add an object to the cache, overwrites any existing object. 
+   */
+  function set($def, $config) {
+    if (!$this->checkDefType($def)) return;
+    $key = $this->generateKey($config);
+
+    $this->storeInDrupalCache($def, $key);
+    return true;
+  }
+
+  /**
+   * Replace an object that already exists in the cache.
+   */
+  function replace($def, $config) {
+    if (!$this->checkDefType($def)) return;
+    $key = $this->generateKey($config);
+
+    if (!$this->fetchFromDrupalCache($key)) {
+      // object does not exist in cache
+      return false;
+    }
+
+    $this->storeInDrupalCache($def, $key);
+    return true;
+  }
+
+  /**
+   * Retrieve an object from the cache 
+   */
+  function get($config) {
+    $key = $this->generateKey($config);
+    return $this->fetchFromDrupalCache($key);
+  }
+
+  /**
+   * Delete an object from the cache 
+   */
+  function remove($config) {
+    $key = $this->generateKey($config);
+    cache_clear_all("htmlpurifier:$key", 'cache');
+    return true;
+  }
+
+  function flush($config) {
+    cache_clear_all("htmlpurifier:*", 'cache', true);
+    return true;
+  }
+
+  function cleanup($config) {
+    $res = db_query("SELECT cid FROM {cache} WHERE cid LIKE '%s%%'", 'htmlpurifier:');
+    while ($row = db_fetch_object($res)) {
+      $key = substr($row->cid, 13); // 13 == strlen('htmlpurifier:')
+      if ($this->isOld($key, $config)) {
+        cache_clear_all($row->cid, 'cache');
+      }
+    }
+  }
+
+  function fetchFromDrupalCache($key) {
+    $cached = cache_get("htmlpurifier:$key");
+    if ($cached) return unserialize($cached->data);
+    return false;
+  }
+
+  function storeInDrupalCache($def, $key) {
+    cache_set("htmlpurifier:$key", serialize($def), 'cache', CACHE_PERMANENT);
+  }
+  
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/INSTALL.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/INSTALL.txt
new file mode 100644
index 0000000..46be3e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/INSTALL.txt
@@ -0,0 +1,55 @@
+PREREQUISITES: Make sure you check HTML Purifier and make sure that you
+have fulfilled all of its requirements before running this.  Specifically,
+you'll need the PHP extension ctype (in almost all PHP distributions),
+and it's nice to have dom and iconv.
+
+* Place the htmlpurifier folder in your drupal modules directory.
+
+* Download HTML Purifier from http://htmlpurifier.org/ You will need
+  4.0.0 or later.
+
+* There are two possible ways to install the HTML Purifier library. 
+
+  1. Module directory installation. This means installing the library
+     folder under the module directory. This way has the advantage of
+     not depending on other modules. The issue is that when you
+     upgrade the htmlpurifier module the HTML Purifier library gets
+     removed and you have to re-extract the archive in the newly
+     installed module directory.
+
+  2. The preferred way is making use of the libraries API,
+     http://drupal.org/project/libraries. This makes the library
+     available to all sites or to a specific site in a multisite
+     Drupal setup. You'll need to download the libraries API module
+     and enable it before enabling the htmlpurifier module so that in
+     the install phase it can find the library.
+
+     Extract the library folder to sites/all/libraries or to
+     sites/<site>/libraries for a specific site in a multisite Drupal
+     setup.
+
+     The final setup should be, when making the library and module
+     available to all sites:
+
+     sites/all/libraries/htmlpurifier/
+         HTMLPurifier
+         HTMLPurifier.autoload.php
+         HTMLPurifier.auto.php
+         HTMLPurifier.func.php
+         HTMLPurifier.includes.php
+         HTMLPurifier.kses.php
+         HTMLPurifier.path.php
+         HTMLPurifier.php
+         HTMLPurifier.safe-includes.php
+
+     Now you can safely upgrade your htmlpurifier module without
+     having to re-deploy the HTML Purifier library.
+         
+* Go to Administer > Site building > Modules and enable this module
+
+* You can now create a new input format or add the HTML Purifier to an 
+  existing input format. It is recommended that you place HTML Purifier as 
+  the last filter in the input format. Reorder the filters if necessary.
+
+WARNING: Due to HTML Purifier's caching mechanism, dynamic filters MUST NOT
+be placed before HTML Purifier.
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/TODO.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/TODO.txt
new file mode 100644
index 0000000..ddfef02
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/TODO.txt
@@ -0,0 +1,20 @@
+
+TODO List
+
+Non-code
+- Add better documentation about what's different about configuring
+  the PHP and what's configuring the web interface
+- Make distinction between module and library clearer
+- Link to WYSIWYG editors, research integration prospects, and how
+  they're handling security
+  - http://drupal.org/project/htmlarea
+  - http://drupal.org/project/fckeditor
+  - http://drupal.org/project/tinymce
+- Competitors
+  - http://drupal.org/project/safehtml
+
+1.3
+- Improve help text (this might be a good addition to the HTML Purifier
+  core). This would be for filter tips as well as for the form.
+- Compatibility
+  - Paging comments
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/config-form.css b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/config-form.css
new file mode 100644
index 0000000..eee0c3e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/config-form.css
@@ -0,0 +1,9 @@
+
+.hp-config {}
+
+.hp-config tbody th {text-align:right; padding-right:0.5em; width:40%;}
+.hp-config thead {display:none;}
+.hp-config .namespace {background:#EDF1F3;}
+.hp-config .namespace th {text-align:center;}
+.hp-config .verbose {display:none;}
+.hp-config textarea {width:100%; max-width:30em;}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/config/sample.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/config/sample.php
new file mode 100644
index 0000000..2fac813
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/config/sample.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * @file
+ * This file is a sample advanced PHP configuration file for the HTML Purifier
+ * filter module. In reality, this file would be named N.php, where N is the
+ * integer identifying the filter this is configuring. The configure page
+ * for HTML Purifier (advanced) will tell you what file to copy this to.
+ * 
+ * See this URI:
+ *
+ *    http://htmlpurifier.org/live/configdoc/plain.html
+ * 
+ * For full information about permitted directives. The most interesting ones
+ * for custom configuration are ones with the 'mixed' type, as they cannot
+ * be configured using the webform.
+ * 
+ * @note
+ *    A number of directives have been predefined for you in order to better
+ *    work with Drupal. You can see what these defaults in the
+ *    _htmlpurifier_get_config() function in htmlpurifier.module.php.
+ * 
+ * @warning
+ *    Please be mindful of the version of HTML Purifier you have installed!
+ *    All of the docs linked to are for the latest version of HTML Purifier;
+ *    your installation may or may not be up-to-date.
+ */
+
+/**
+ * Accepts an HTMLPurifier_Config configuration object and configures it.
+ * 
+ * @param $config
+ *    Instance of HTMLPurifier_Config to modify. See
+ *        http://htmlpurifier.org/doxygen/html/classHTMLPurifier__Config.html
+ *    for a full API.
+ * 
+ * @note
+ *    No return value is needed, as PHP objects are passed by reference.
+ */
+function htmlpurifier_config_N($config) {
+  // Set your configuration here:
+  $config->set('Core', 'Lexer', 'DirectLex');
+  // $config->set('Namespace', 'Directive', $value);
+  
+  // Advanced users:
+  // $def = $config->getDefinition('HTML');
+  // For more information about this, see:
+  //    http://htmlpurifier.org/docs/enduser-customize.html
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.info b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.info
new file mode 100644
index 0000000..2c10ddd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.info
@@ -0,0 +1,12 @@
+; $Id: htmlpurifier.info,v 1.6 2008/04/24 04:13:09 ezyang Exp $
+name = "HTML Purifier"
+description = "Filter that removes malicious HTML and ensures standards compliant output."
+core = 6.x
+php = 5.0.5
+
+; Information added by drupal.org packaging script on 2010-10-23
+version = "6.x-2.4"
+core = "6.x"
+project = "htmlpurifier"
+datestamp = "1287798330"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.install b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.install
new file mode 100644
index 0000000..530e98e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.install
@@ -0,0 +1,239 @@
+<?php
+
+/**
+ * Implementation of hook_schema().
+ */
+function htmlpurifier_schema() {
+  $t = get_t();
+  $schema['cache_htmlpurifier'] = drupal_get_schema_unprocessed('system', 'cache');
+  $schema['cache_htmlpurifier']['description'] = $t(<<<DESCRIPTION
+Cache table for the HTML Purifier module just like cache_filter, except that
+cached text is stored permanently until flushed or manually invalidated.
+This helps prevent recurrent cache slams on pages with lots of segments of HTML.
+DESCRIPTION
+  );
+  return $schema;
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function htmlpurifier_install() {
+  drupal_install_schema('htmlpurifier');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function htmlpurifier_uninstall() {
+  drupal_uninstall_schema('htmlpurifier');
+  db_query("DELETE FROM {variable} WHERE name LIKE 'htmlpurifier%%'");
+}
+
+/**
+ * Implementation of hook_requirements().
+ *
+ * Checks the version of HTML Purifier on install and issues an error if there is a problem
+ */
+function htmlpurifier_requirements($phase) {
+  // This version of HTML Purifier is required
+  static $req_version = '4.0.0';
+  static $req_php_version = '5.0.0';
+  $requirements = array();
+  $t = get_t();
+
+  if (version_compare(phpversion(), $req_php_version) < 0) {
+    $requirements['htmlpurifier_php'] = array (
+      'title' => $t('PHP version for HTML Purifier library'),
+      'severity' => REQUIREMENT_ERROR,
+      'description' => $t('PHP version is too low to run HTML Purifier.  HTML Purifier requires PHP 5 or later.'),
+    );
+    return $requirements;
+  }
+
+  // HACK: If libraries api module is not installed but available, load
+  // it.  This can arise when an install profile is installing multiple
+  // modules, because the HTMLPurifier module does not publish a
+  // libraries dependency in order to stay backwards-compatible.  This
+  // fixes Bug #839490.
+  if (!function_exists('libraries_get_path') && file_exists(dirname(__FILE__) . '/../libraries/libraries.module')) {
+    require_once(dirname(__FILE__) . '/../libraries/libraries.module');
+  }
+
+  // If it's still not available, use something else
+  $complain_loc = false;
+  if (function_exists('libraries_get_path')) {
+    $library_path = libraries_get_path('htmlpurifier');
+    $using_libraries = true;
+    if (!file_exists("$library_path/library/HTMLPurifier.auto.php")) {
+      $library_path = dirname(__FILE__);
+      $complain_loc = true;
+      $using_libraries = false;
+    }
+  } else {
+    $library_path = dirname(__FILE__);
+    $using_libraries = false;
+  }
+
+  $s = DIRECTORY_SEPARATOR;
+  if (!file_exists("$library_path/library/HTMLPurifier.auto.php")) {
+    $requirements['htmlpurifier_library'] = array (
+      'title' => $t('HTML Purifier library'),
+      'severity' => REQUIREMENT_ERROR,
+      'description' => $t("Could not find HTML Purifier
+          installation in @path. Please copy contents
+          of the library folder in the HTML Purifier tarball or zip
+          to this folder or ensure HTMLPurifier.auto.php exists.
+          You can download HTML Purifier at
+          <a href=\"http://htmlpurifier.org/download.html\">htmlpurifier.org</a>.", array('@path' => "$library_path{$s}library")
+      ),
+    );
+    return $requirements;
+  }
+
+  if ($complain_loc) {
+    $requirements['htmlpurifier_library_loc'] = array(
+      'title' => $t('HTML Purifier library location'),
+      'severity' => REQUIREMENT_WARNING,
+      'description' => $t("The HTML Purifier library currently lives in
+        <code>@oldpath</code>, but should actually be placed in the shared
+        libraries API at <code>@newpath</code>.  You should move the folder
+        such that <code>@somefile</code> exists (you will need to create an
+        <code>htmlpurifier</code> folder to hold the <code>library</code>
+        folder).  For future updates, you can simply replace the
+        htmlpurifier folder with the htmlpurifier-x.y.z folder that a
+        new HTML Purifier tarball unzips to (you'll be reminded in an
+        update notification).",
+          array(
+            '@oldpath' => dirname(__FILE__) . '/library',
+            '@newpath' => libraries_get_path('htmlpurifier') . '/library',
+            '@somefile' => libraries_get_path('htmlpurifier') . '/library/HTMLPurifier.auto.php',
+            )),
+    );
+  }
+
+  if ($phase=='runtime') {
+    $current = variable_get('htmlpurifier_version_current', FALSE);
+    if (!$current) {
+      $current = htmlpurifier_check_version();
+    }
+    $ours = variable_get('htmlpurifier_version_ours', FALSE);
+    if (!$ours || version_compare($ours, $req_version, '<')) {
+      // Can't use _htmlpurifier_load(), since it assumes a later
+      // version
+      require_once "$library_path/library/HTMLPurifier.auto.php";
+      if (defined('HTMLPurifier::VERSION')) {
+        $version = HTMLPurifier::VERSION;
+      } else {
+        $purifier = new HTMLPurifier;
+        $version = $purifier->version;
+      }
+      variable_set('htmlpurifier_version_ours', $version);
+      if (version_compare($version, $req_version, '<')) {
+
+        $requirements['htmlpurifier_library'] = array (
+          'title' => $t('HTML Purifier library'),
+          'severity' => REQUIREMENT_ERROR,
+          'description' => $t("HTML Purifier @old is not compatible
+            with this module: HTML Purifier <strong>@required</strong> or later is required.
+            If the required version is a dev version, you will need to
+            <a href=\"http://htmlpurifier.org/download.html#Git\">check
+            code out of Git</a> or
+            <a href=\"http://htmlpurifier.org/download.html#NightlyBuilds\">download a nightly</a>
+            to use this module.", array('@old' => $version, '@required' => $req_version)
+          ),
+        );
+
+        return $requirements;
+      }
+    }
+
+    if (!$current) {
+      $requirements['htmlpurifier_check'] = array(
+        'title' => $t('HTML Purifier Library'),
+        'value' => $ours,
+        'description' => $t('Unable to check for the latest version of the
+        HTML Purifier library.  You will need to check manually at
+        <a href="http://htmlpurifier.org">htmlpurifier.org</a> to find out if
+        the version you are using is out of date.'),
+        'severity' => REQUIREMENT_WARNING,
+      );
+    }
+    elseif (!$ours || version_compare($current, $ours, '>')) {
+      // Update our version number if it can't be found, or there's a
+      // mismatch.  This won't do anything if _htmlpurifier_load() has
+      // already been called.  An equivalent formulation would be
+      // to always call _htmlpurifier_load() before retrieving the
+      // variable, but this has the benefit of not always loading
+      // HTML Purifier!
+      _htmlpurifier_load();
+      $ours = variable_get('htmlpurifier_version_ours', FALSE);
+    }
+    if ($current && $ours && version_compare($current, $ours, '>')) {
+      $description = $t('Your HTML Purifier library is out of date. The
+      latest version is %version, which you can download from <a
+      href="http://htmlpurifier.org">htmlpurifier.org</a>. ',
+        array('%version' => $current));
+      if ($using_libraries) {
+        $how_to_update = $t('To update, replace
+        <code>%path</code> with the new directory the downloaded archive
+        extracts into. ',
+          array('%path' => libraries_get_path('htmlpurifier')));
+      } else {
+        $how_to_update = $t('To update, replace
+        <code>%path/library/</code> with the <code>library/</code>
+        directory from the downloaded archive. ',
+          array('%path' => dirname(__FILE__)));
+      }
+      $warning = $t('If you do not perform this operation correctly,
+      your Drupal installation will stop working.  Ensure that
+      <code>%path/library/HTMLPurifier.auto.php</code> exists after
+      the upgrade.',
+        array('%path' => $library_path));
+      $requirements['htmlpurifier_version'] = array(
+        'title' => $t('HTML Purifier Library'),
+        'value' => $ours,
+        'description' => $description . $how_to_update . $warning,
+        'severity' => REQUIREMENT_WARNING,
+      );
+    }
+    if (count($requirements) == 0) {
+      $requirements['htmlpurifier'] = array(
+        'severity' => REQUIREMENT_OK,
+        'title' => $t('HTML Purifier Library'),
+        'value' => $ours,
+      );
+    }
+  }
+ 
+  return $requirements;
+}
+
+// -- Update functions ------------------------------------------------------ //
+
+function htmlpurifier_update_6200() {
+  // Migrate any old-style filter variables to new style.
+  $formats = filter_formats();
+  foreach ($formats as $format => $info) {
+    $filters = filter_list_format($format);
+    if (!isset($filters['htmlpurifier/0'])) continue;
+    $config_data = array(
+      'URI.DisableExternalResources' => variable_get("htmlpurifier_externalresources_$format", TRUE),
+      'Attr.EnableID' => variable_get("htmlpurifier_enableattrid_$format", FALSE),
+      'AutoFormat.Linkify' => variable_get("htmlpurifier_linkify_$format", TRUE),
+      'AutoFormat.AutoParagraph' => variable_get("htmlpurifier_autoparagraph_$format", TRUE),
+      'Null_HTML.Allowed' => !variable_get("htmlpurifier_allowedhtml_enabled_$format", FALSE),
+      'HTML.Allowed' => variable_get("htmlpurifier_allowedhtml_$format", ''),
+      'Filter.YouTube' => variable_get("htmlpurifier_preserveyoutube_$format", FALSE),
+    );
+    if (defined('HTMLPurifier::VERSION') && version_compare(HTMLPurifier::VERSION, '3.1.0-dev', '>=')) {
+      $config_data['HTML.ForbiddenElements']   = variable_get("htmlpurifier_forbiddenelements_$format", '');
+      $config_data['HTML.ForbiddenAttributes'] = variable_get("htmlpurifier_forbiddenattributes_$format", '');
+    }
+    variable_set("htmlpurifier_config_$format", $config_data);
+  }
+  
+  return array();
+}
+
+function htmlpurifier_update_6201() {}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.module b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.module
new file mode 100644
index 0000000..837279f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/htmlpurifier.module
@@ -0,0 +1,523 @@
+<?php
+// $Id: htmlpurifier.module,v 1.21 2010/09/28 14:55:02 ezyang Exp $
+
+/**
+ * @file
+ * Implements HTML Purifier as a Drupal filter.
+ */
+
+
+
+// -- HOOK IMPLEMENTATIONS -------------------------------------------------- //
+
+/**
+ * Implementation of hook_flush_caches().
+ */
+function htmlpurifier_flush_caches() {
+    return array('cache_htmlpurifier');
+}
+
+/**
+ * Implementation of hook_help().
+ */
+function htmlpurifier_help($path, $arg) {
+  $output = NULL;
+  switch ($path) {
+    case 'admin/modules#htmlpurifier':
+      $output = t('Filter that removes malicious HTML and ensures standards compliant output.');
+      break;
+  }
+  return $output;
+}
+
+/**
+ * Implementation of hook_cron().
+ */
+function htmlpurifier_cron() {
+  // Force an attempt at checking for a new version; this is safe to do in
+  // hook_cron because a slow timeout will not degrade the user experience.
+  htmlpurifier_check_version(TRUE);
+}
+
+/**
+ * Checks for updates to the HTML Purifier library.
+ */
+function htmlpurifier_check_version($force = FALSE) {
+  if ($force || !variable_get('htmlpurifier_version_check_failed', FALSE)) {
+    // Maybe this should be changed in the future:
+    $result  = drupal_http_request('http://htmlpurifier.org/live/VERSION');
+    if ($result->code == 200) {
+      $version = trim($result->data);
+      variable_set('htmlpurifier_version_check_failed', FALSE);
+      variable_set('htmlpurifier_version_current', $version);
+      return $version;
+    }
+    else {
+      variable_set('htmlpurifier_version_check_failed', TRUE);
+      // Delete any previously known "latest" version so that people can be
+      // alerted if a problem appears on a previously working site.
+      variable_del('htmlpurifier_version_current');
+    }
+  }
+}
+
+/**
+ * Implementation of hook_filter().
+ */
+function htmlpurifier_filter($op, $delta = 0, $format = -1, $text = '') {
+  switch ($op) {
+    case 'list':
+      return array(0 => t('HTML Purifier'), 1 => t('HTML Purifier (advanced)'));
+
+    case 'no cache':
+      // Since HTML Purifier implements its own caching layer, having filter
+      // cache it again is wasteful. Returns FALSE if double caching is permitted.
+      return !variable_get("htmlpurifier_doublecache", FALSE);
+
+    case 'description':
+      $common = t(
+        'Removes malicious HTML code and ensures that the output '.
+        'is standards compliant. <strong>Warning:</strong> For performance '.
+        'reasons, please ensure that there are no highly dynamic filters before HTML Purifier. '
+      );
+      switch ($delta) {
+        case 0:
+          return $common;
+        case 1:
+          return $common . t('<em>This version has advanced configuration options, do not enable both at the same time.</em>');
+      }
+
+    case 'prepare':
+      return $text;
+
+    case 'process':
+      return _htmlpurifier_process($text, $format);
+
+    case 'settings':
+      return _htmlpurifier_settings($delta, $format);
+
+    default:
+      return NULL;
+  }
+}
+
+/**
+ * Implementation of hook_filter_tips().
+ */
+function htmlpurifier_filter_tips($delta, $format, $long = FALSE) {
+  if (variable_get("htmlpurifier_help_$format", TRUE)) {
+    return t('HTML tags will be transformed to conform to HTML standards.');
+  }
+}
+
+/**
+ * Implementation of hook_nodeapi().
+ */
+function htmlpurifier_nodeapi(&$node, $op, $a3, $a4) {
+  if ($op == 'view') {
+
+    // Should we load CSS cache data from teaser or body?
+    if ($a3 == TRUE) {
+      _htmlpurifier_add_css( $node->content['teaser']['#value'], $node->nid );
+    }
+    else {
+      _htmlpurifier_add_css( $node->content['body']['#value'], $node->nid );
+    }
+  }
+  // @todo: Deal with CCK fields - probably needs to go in op alter?
+}
+
+/**
+ * Helper function for hook_nodeapi
+ *  Finds extracted style blocks based on a cache link left by hook_filter
+ *  Aggregates the extracted style blocks and adds them to the document head
+ *  Also removes the cache link left in hook_filter to the CSS cache
+ *
+ * @param string &$field
+ *    Field to process, this should be the actual field value
+ *      ex. $node->content['body']['#value']
+ *
+ * @param int $nid
+ *    Node ID of the node to which these stylesheets belong
+ *    Since filters don't know their node context, we have to use a token
+ *      to generate the stylesheet scope, and replace it in hook_nodeapi
+ */
+function _htmlpurifier_add_css( &$field, $nid ) {
+
+  // Some basic validation to assure we really got a rendered field
+  if (!is_string($field)) {
+    return;
+  }
+
+  $cache_matches = array();
+  $cache_match = preg_match('#<!-- HTML Purifier Cache \#([-\w]*:[\w]*) -->#', $field, $cache_matches);
+
+  // If there's an HTML Purifier Cache #, we need to load CSSTidy blocks
+  if ($cache_match == 1) {
+    $cid = 'css:' . $cache_matches[1];
+    $old = cache_get($cid, 'cache_htmlpurifier');
+
+    // We should always have some cached style blocks to load, but if we don't, just bail
+    if ($old) {
+      $styles = array();
+      $style_rendered = '';
+      foreach($old->data as $i => $style) {
+
+        // Replace Node ID tokens if necessary, otherwise use cached CSSTidy blocks
+        // NOTE: This token is forgeable, but we expect that if the user
+        // is able to invoke this transformation, it will be relatively
+        // harmless.
+        if (strpos($style, '[%HTMLPURIFIER:NID%]') !== FALSE) {
+          $styles[$i] = str_replace('[%HTMLPURIFIER:NID%]', (int) $nid, $style);
+        }
+        else {
+          $styles[$i] = $style;
+        }
+
+        // Save any CSSTidy blocks we find to be rendered in the document head
+        if (!empty($style)) {
+          $style_rendered .= $styles[$i] . "\n";
+        }
+      }
+
+      // Add the rendered stylesheet to the document header
+      if ($style_rendered != '') {
+        drupal_set_html_head('<style type="text/css">' ."\n". '<!--' ."\n". $style_rendered . '--></style>');
+      }
+
+      // Remove the HTML Purifier cache key from the field argument
+      $field = str_replace($cache_matches[0], '', $field);
+
+      // If we had to update CSSTidy blocks, cache the results
+      if ($old->data != $styles) {
+        cache_set($cid, $styles, 'cache_htmlpurifier', CACHE_PERMANENT);
+      }
+    }
+  }
+}
+
+
+
+// -- INTERNAL FUNCTIONS ---------------------------------------------------- //
+
+/**
+ * Processes HTML according to a format and returns purified HTML. Makes a 
+ * cache pass if possible.
+ * 
+ * @param string $text
+ *    Text to purify
+ * @param int $format
+ *    Input format corresponding to HTML Purifier's configuration.
+ * @param boolean $cache
+ *    Whether or not to check the cache.
+ * 
+ * @note
+ *    We ignore $delta because the only difference it makes is in the configuration
+ *    screen.
+ */
+function _htmlpurifier_process($text, $format, $cache = TRUE) {
+  
+  if ($cache) {
+    $cid = $format . ':' . md5($text);
+    $old = cache_get($cid, 'cache_htmlpurifier');
+    if ($old) return $old->data;
+  }
+  
+  _htmlpurifier_load();
+  $config = _htmlpurifier_get_config($format);
+
+  // If ExtractStyleBlocks is enabled, we'll need to do a bit more for CSSTidy
+  $config_extractstyleblocks = $config->get('Filter.ExtractStyleBlocks');
+
+  // Maybe this works if CSSTidy is at root? CSSTidy could be other places though
+  if ($config_extractstyleblocks == true) {
+    _htmlpurifier_load_csstidy();
+  }
+
+  $purifier = new HTMLPurifier($config);
+  $ret = $purifier->purify($text);
+
+  // If using Filter.ExtractStyleBlocks we need to handle the CSSTidy output
+  if ($config_extractstyleblocks == true) {
+
+    // We're only going to bother if we're caching! - no caching? no style blocks!
+    if ($cache) {
+
+      // Get style blocks, cache them, and help hook_nodeapi find the cache
+      $styles = $purifier->context->get('StyleBlocks');
+      cache_set('css:' . $cid, $styles, 'cache_htmlpurifier', CACHE_PERMANENT);
+      $ret = '<!-- HTML Purifier Cache #' . $cid . ' -->' . $ret;
+    }
+  }
+  
+  if ($cache) cache_set($cid, $ret, 'cache_htmlpurifier', CACHE_PERMANENT);
+  
+  return $ret;
+}
+
+/**
+ * Loads the HTML Purifier library, and performs global initialization.
+ */
+function _htmlpurifier_load() {
+  static $done = false;
+  if ($done) {
+    return;
+  }
+  $done = true;
+  $module_path = drupal_get_path('module', 'htmlpurifier');
+  $library_path = $module_path;
+  if (function_exists('libraries_get_path')) {
+    $library_path = libraries_get_path('htmlpurifier');
+    // This may happen if the user has HTML Purifier installed under the
+    // old configuration, but also installed libraries and forgot to
+    // move it over.  There is code for emitting errors in
+    // htmlpurifier.install when this is the case.
+    if (!file_exists("$library_path/library/HTMLPurifier.auto.php")) {
+      $library_path = $module_path;
+    }
+  }
+
+  if (version_compare(phpversion(), '5') < 0) {
+    // If your version of PHP is too old, you're going to fail anyway
+    // when you attempt to include the HTML Purifier library, so we
+    // might as well try to give a useful error message.
+    echo 'Your version of PHP is too old to run HTML Purifier, needs PHP 5 or later';
+    exit;
+  }
+
+  require_once "$library_path/library/HTMLPurifier.auto.php";
+  require_once "$module_path/HTMLPurifier_DefinitionCache_Drupal.php";
+
+  $factory = HTMLPurifier_DefinitionCacheFactory::instance();
+  $factory->register('Drupal', 'HTMLPurifier_DefinitionCache_Drupal');
+
+  // Register the version as a variable:
+  variable_set('htmlpurifier_version_ours', HTMLPurifier::VERSION);
+}
+
+/**
+ * Returns the HTMLPurifier_Config object corresponding to an input format.
+ * @param int $format
+ *    Input format.
+ * @return
+ *    Instance of HTMLPurifier_Config.
+ */
+function _htmlpurifier_get_config($format) {
+  
+  $config = HTMLPurifier_Config::createDefault();
+  
+  $config->set('AutoFormat.AutoParagraph', TRUE);
+  $config->set('AutoFormat.Linkify', TRUE);
+  $config->set('HTML.Doctype', 'XHTML 1.0 Transitional'); // Probably
+  $config->set('Core.AggressivelyFixLt', TRUE);
+  $config->set('Cache.DefinitionImpl', 'Drupal');
+  
+  // Filter HTML doesn't allow external images, so neither will we...
+  // for now. This can be configured off.
+  $config->set('URI.DisableExternalResources', TRUE);
+  
+  if (!empty($_SERVER['SERVER_NAME'])) {
+    // SERVER_NAME is more reliable than HTTP_HOST
+    $config->set('URI.Host', $_SERVER['SERVER_NAME']);
+  }
+  
+  if (defined('LANGUAGE_RTL') && $GLOBALS['language']->direction === LANGUAGE_RTL) {
+    $config->set('Attr.DefaultTextDir', 'rtl');
+  }
+  
+  if ($config_function = _htmlpurifier_config_load($format)) {
+    $config_function($config);
+  } else {
+    $config_data = variable_get("htmlpurifier_config_$format", FALSE);
+    if (!empty($config_data['Filter.ExtractStyleBlocks'])) {
+      if (!_htmlpurifier_load_csstidy()) {
+        $config_data['Filter.ExtractStyleBlocks'] = '0';
+        drupal_set_message("Could not enable ExtractStyleBlocks because CSSTidy was not installed.  You can download CSSTidy module from <a href='http://drupal.org/project/csstidy'>http://drupal.org/project/csstidy</a>", 'error', FALSE);
+      }
+    }
+    // {FALSE, TRUE, FALSE} = {no index, everything is allowed, don't do mq fix}
+    $config->mergeArrayFromForm($config_data, FALSE, TRUE, FALSE);
+  }
+  
+  return $config;
+  
+}
+
+function _htmlpurifier_load_csstidY() {
+  // If CSSTidy module is installed, it should have a copy we can use
+  $csstidy_path = drupal_get_path('module', 'csstidy') .'/csstidy';
+
+  // Some future-proofing for library path
+  if (function_exists('libraries_get_path')) {
+    $csstidy_library = libraries_get_path('csstidy');
+    if (file_exists("$csstidy_library/class.csstidy.php")) {
+      $csstidy_path = $csstidy_library;
+    }
+  }
+
+  // Load CSSTidy if we can find it
+  if (file_exists("$csstidy_path/class.csstidy.php")) {
+    require_once "$csstidy_path/class.csstidy.php";
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * Returns the name of the configuration function for $format, or FALSE if none
+ * exists. Function name will be htmlpurifier_config_N.
+ * 
+ * @param int $format
+ *    Integer format to check function for.
+ * @return
+ *    String function name for format, or FALSE if none.
+ */
+function _htmlpurifier_config_load($format) {
+  $config_file     = drupal_get_path('module', 'htmlpurifier') ."/config/$format.php";
+  $config_function = "htmlpurifier_config_$format";
+  if (
+    !function_exists($config_function) &&
+    file_exists($config_file)
+  ) {
+    include_once $config_file;
+  }
+  return function_exists($config_function) ? $config_function : FALSE;
+}
+
+/**
+ * Generates a settings form for configuring HTML Purifier.
+ * @param int $delta
+ *    Whether or not to use advanced form (1) or not (0).
+ * @param int $format
+ *    Input format being configured.
+ * @return
+ *    Form API array.
+ */
+function _htmlpurifier_settings($delta, $format) {
+  _htmlpurifier_load();
+  
+  // Dry run, testing for errors:
+  _htmlpurifier_process('', $format, FALSE);
+  
+  $module_path = drupal_get_path('module', 'htmlpurifier');
+  drupal_add_css("$module_path/config-form.css");
+  // Makes all configuration links open in new windows; can safe lots of grief!
+  drupal_add_js('$(function(){$(".hp-config a").click(function(){window.open(this.href);return false;});});', 'inline');
+  drupal_add_js(HTMLPurifier_Printer_ConfigForm::getJavaScript(), 'inline');
+  
+  $form = array();
+
+  $form['dashboard'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('HTML Purifier Dashboard'),
+    '#collapsible' => true,
+  );
+  $form['dashboard']["enter_hack"] = array(
+    // hack to make normal form submission when <ENTER> is pressed
+    '#value' => '<input type="submit" name="op" id="edit-submit" value="Save configuration"  class="form-submit" style="display:none;" />',
+  );
+  $form['dashboard']["htmlpurifier_clear_cache"] = array(
+    '#type' => 'submit',
+    '#value' => t('Clear cache (Warning: Can result in performance degradation)'),
+    '#submit' => array('_htmlpurifier_clear_cache')
+  );
+
+  $form['htmlpurifier'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('HTML Purifier'),
+    '#collapsible' => TRUE,
+  );
+  $form['htmlpurifier']["htmlpurifier_help_$format"] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Display help text'),
+    '#default_value' => variable_get("htmlpurifier_help_$format", TRUE),
+    '#description' => t('If enabled, a short note will be added to the filter tips explaining that HTML will be transformed to conform with HTML standards. You may want to disable this option when the HTML Purifier is used to check the output of another filter like BBCode.'),
+  );
+  if ($config_function = _htmlpurifier_config_load($format)) {
+    $form['htmlpurifier']['notice'] = array(
+      '#type' => 'markup',
+      '#value' => t('<div>Configuration function <code>!function()</code> is already defined. To edit HTML Purifier\'s configuration, edit the corresponding configuration file, which is usually <code>htmlpurifier/config/!format.php</code>. To restore the web configuration form, delete or rename this file.</div>',
+        array('!function' => $config_function, '!format' => $format)),
+    );
+  } else {
+    if ($delta == 0) {
+      $title = t('Configure HTML Purifier');
+      $allowed = array(
+        'URI.DisableExternalResources',
+        'URI.DisableResources',
+        'URI.Munge',
+        'Attr.EnableID',
+        'HTML.Allowed',
+        'HTML.ForbiddenElements',
+        'HTML.ForbiddenAttributes',
+        'HTML.SafeObject',
+        'Output.FlashCompat',
+        'AutoFormat.RemoveEmpty',
+        'AutoFormat.Linkify',
+        'AutoFormat.AutoParagraph',
+      );
+    } else {
+      $title = t('Advanced configuration options');
+      $allowed = TRUE;
+      $form['htmlpurifier']["htmlpurifier_doublecache"] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Allow double caching'),
+        '#default_value' => variable_get("htmlpurifier_doublecache", FALSE),
+        '#description' => t('If enabled, HTML Purifier will tell filter that its output is cacheable. This is not usually necessary, because HTML Purifier maintains its own cache, but may be helpful if you have later filters that need to be cached. Warning: this applies to ALL filters, not just this one'),
+      );
+    }
+    
+    $intro =
+        '<div class="form-item"><h3>'.
+        $title.
+        '</h3><div class="description">'.
+        t('Please click on a directive name for more information on what it does before enabling or changing anything!  Changes will not apply to old entries until you clear the cache (see the dashboard)').
+        '</div></div>';
+    
+    $config = _htmlpurifier_get_config($format);
+    $config_form = new HTMLPurifier_Printer_ConfigForm(
+      "htmlpurifier_config_$format", 'http://htmlpurifier.org/live/configdoc/plain.html#%s'
+    );
+    $form['htmlpurifier']["htmlpurifier_config_$format"] = array(
+      '#value' => $intro . $config_form->render($config, $allowed, FALSE),
+      '#after_build' => array('_htmlpurifier_config_hack'),
+    );
+  }
+  
+  return $form;
+}
+
+/**
+ * Fills out the form state with extra post data originating from the
+ * HTML Purifier configuration form. This is an #after_build hook function.
+ * 
+ * @warning
+ *    If someone ever gets the smart idea of changing the parameters to
+ *    this function, I'm SOL! ;-)
+ */
+function _htmlpurifier_config_hack($form_element, &$form_state) {
+  $key = $form_element['#parents'][0];
+  if (!empty($form_element['#post']) && isset($form_element['#post'][$key])) {
+    $form_state['values'][$key] = $form_element['#post'][$key];
+  }
+  foreach ($form_state['values'] as $i => $config_data) {
+    if (!is_array($config_data)) continue;
+    if (!empty($config_data['Filter.ExtractStyleBlocks'])) {
+      if (!empty($config_data['Null_Filter.ExtractStyleBlocks.Scope'])) {
+        drupal_set_message("You have not set <code>Filter.ExtractStyleBlocks.Scope</code>; this means that users can add CSS that affects all of your Drupal theme and not just their content block.  It is recommended to set this to <code>#node-[%HTMLPURIFIER:NID%]</code> (including brackets) which will automatically ensure that CSS directives only apply to their node.", 'warning', FALSE);
+      } elseif (!isset($config_data['Filter.ExtractStyleBlocks.Scope']) || $config_data['Filter.ExtractStyleBlocks.Scope'] !== '#node-[%HTMLPURIFIER:NID%]') {
+        drupal_set_message("You have enabled Filter.ExtractStyleBlocks.Scope, but you did not set it to <code>#node-[%HTMLPURIFIER:NID%]</code>; CSS may not work unless you have special theme support.", 'warning', FALSE);
+      }
+    }
+  }
+  return $form_element;
+}
+
+/**
+ * Clears the HTML Purifier internal Drupal cache.
+ */
+function _htmlpurifier_clear_cache($form, &$form_state) {
+    drupal_set_message("Cache cleared");
+    db_query("DELETE FROM {cache_htmlpurifier}");
+    db_query("DELETE FROM {cache} WHERE cid LIKE '%s%%'", 'htmlpurifier:');
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.auto.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.auto.php
new file mode 100644
index 0000000..1960c39
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.auto.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This is a stub include that automatically configures the include path.
+ */
+
+set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path() );
+require_once 'HTMLPurifier/Bootstrap.php';
+require_once 'HTMLPurifier.autoload.php';
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.autoload.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.autoload.php
new file mode 100644
index 0000000..c3ea67e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.autoload.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @file
+ * Convenience file that registers autoload handler for HTML Purifier.
+ * It also does some sanity checks.
+ */
+
+if (function_exists('spl_autoload_register') && function_exists('spl_autoload_unregister')) {
+    // We need unregister for our pre-registering functionality
+    HTMLPurifier_Bootstrap::registerAutoload();
+    if (function_exists('__autoload')) {
+        // Be polite and ensure that userland autoload gets retained
+        spl_autoload_register('__autoload');
+    }
+} elseif (!function_exists('__autoload')) {
+    function __autoload($class)
+    {
+        return HTMLPurifier_Bootstrap::autoload($class);
+    }
+}
+
+if (ini_get('zend.ze1_compatibility_mode')) {
+    trigger_error("HTML Purifier is not compatible with zend.ze1_compatibility_mode; please turn it off", E_USER_ERROR);
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.composer.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.composer.php
new file mode 100644
index 0000000..6706f4e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.composer.php
@@ -0,0 +1,4 @@
+<?php
+if (!defined('HTMLPURIFIER_PREFIX')) {
+    define('HTMLPURIFIER_PREFIX', __DIR__);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.func.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.func.php
new file mode 100644
index 0000000..64b140b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.func.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * @file
+ * Defines a function wrapper for HTML Purifier for quick use.
+ * @note ''HTMLPurifier()'' is NOT the same as ''new HTMLPurifier()''
+ */
+
+/**
+ * Purify HTML.
+ * @param string $html String HTML to purify
+ * @param mixed $config Configuration to use, can be any value accepted by
+ *        HTMLPurifier_Config::create()
+ * @return string
+ */
+function HTMLPurifier($html, $config = null)
+{
+    static $purifier = false;
+    if (!$purifier) {
+        $purifier = new HTMLPurifier();
+    }
+    return $purifier->purify($html, $config);
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.includes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.includes.php
new file mode 100644
index 0000000..9b7b88a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.includes.php
@@ -0,0 +1,229 @@
+<?php
+
+/**
+ * @file
+ * This file was auto-generated by generate-includes.php and includes all of
+ * the core files required by HTML Purifier. Use this if performance is a
+ * primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
+ * FILE, changes will be overwritten the next time the script is run.
+ *
+ * @version 4.6.0
+ *
+ * @warning
+ *      You must *not* include any other HTML Purifier files before this file,
+ *      because 'require' not 'require_once' is used.
+ *
+ * @warning
+ *      This file requires that the include path contains the HTML Purifier
+ *      library directory; this is not auto-set.
+ */
+
+require 'HTMLPurifier.php';
+require 'HTMLPurifier/Arborize.php';
+require 'HTMLPurifier/AttrCollections.php';
+require 'HTMLPurifier/AttrDef.php';
+require 'HTMLPurifier/AttrTransform.php';
+require 'HTMLPurifier/AttrTypes.php';
+require 'HTMLPurifier/AttrValidator.php';
+require 'HTMLPurifier/Bootstrap.php';
+require 'HTMLPurifier/Definition.php';
+require 'HTMLPurifier/CSSDefinition.php';
+require 'HTMLPurifier/ChildDef.php';
+require 'HTMLPurifier/Config.php';
+require 'HTMLPurifier/ConfigSchema.php';
+require 'HTMLPurifier/ContentSets.php';
+require 'HTMLPurifier/Context.php';
+require 'HTMLPurifier/DefinitionCache.php';
+require 'HTMLPurifier/DefinitionCacheFactory.php';
+require 'HTMLPurifier/Doctype.php';
+require 'HTMLPurifier/DoctypeRegistry.php';
+require 'HTMLPurifier/ElementDef.php';
+require 'HTMLPurifier/Encoder.php';
+require 'HTMLPurifier/EntityLookup.php';
+require 'HTMLPurifier/EntityParser.php';
+require 'HTMLPurifier/ErrorCollector.php';
+require 'HTMLPurifier/ErrorStruct.php';
+require 'HTMLPurifier/Exception.php';
+require 'HTMLPurifier/Filter.php';
+require 'HTMLPurifier/Generator.php';
+require 'HTMLPurifier/HTMLDefinition.php';
+require 'HTMLPurifier/HTMLModule.php';
+require 'HTMLPurifier/HTMLModuleManager.php';
+require 'HTMLPurifier/IDAccumulator.php';
+require 'HTMLPurifier/Injector.php';
+require 'HTMLPurifier/Language.php';
+require 'HTMLPurifier/LanguageFactory.php';
+require 'HTMLPurifier/Length.php';
+require 'HTMLPurifier/Lexer.php';
+require 'HTMLPurifier/Node.php';
+require 'HTMLPurifier/PercentEncoder.php';
+require 'HTMLPurifier/PropertyList.php';
+require 'HTMLPurifier/PropertyListIterator.php';
+require 'HTMLPurifier/Queue.php';
+require 'HTMLPurifier/Strategy.php';
+require 'HTMLPurifier/StringHash.php';
+require 'HTMLPurifier/StringHashParser.php';
+require 'HTMLPurifier/TagTransform.php';
+require 'HTMLPurifier/Token.php';
+require 'HTMLPurifier/TokenFactory.php';
+require 'HTMLPurifier/URI.php';
+require 'HTMLPurifier/URIDefinition.php';
+require 'HTMLPurifier/URIFilter.php';
+require 'HTMLPurifier/URIParser.php';
+require 'HTMLPurifier/URIScheme.php';
+require 'HTMLPurifier/URISchemeRegistry.php';
+require 'HTMLPurifier/UnitConverter.php';
+require 'HTMLPurifier/VarParser.php';
+require 'HTMLPurifier/VarParserException.php';
+require 'HTMLPurifier/Zipper.php';
+require 'HTMLPurifier/AttrDef/CSS.php';
+require 'HTMLPurifier/AttrDef/Clone.php';
+require 'HTMLPurifier/AttrDef/Enum.php';
+require 'HTMLPurifier/AttrDef/Integer.php';
+require 'HTMLPurifier/AttrDef/Lang.php';
+require 'HTMLPurifier/AttrDef/Switch.php';
+require 'HTMLPurifier/AttrDef/Text.php';
+require 'HTMLPurifier/AttrDef/URI.php';
+require 'HTMLPurifier/AttrDef/CSS/Number.php';
+require 'HTMLPurifier/AttrDef/CSS/AlphaValue.php';
+require 'HTMLPurifier/AttrDef/CSS/Background.php';
+require 'HTMLPurifier/AttrDef/CSS/BackgroundPosition.php';
+require 'HTMLPurifier/AttrDef/CSS/Border.php';
+require 'HTMLPurifier/AttrDef/CSS/Color.php';
+require 'HTMLPurifier/AttrDef/CSS/Composite.php';
+require 'HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php';
+require 'HTMLPurifier/AttrDef/CSS/Filter.php';
+require 'HTMLPurifier/AttrDef/CSS/Font.php';
+require 'HTMLPurifier/AttrDef/CSS/FontFamily.php';
+require 'HTMLPurifier/AttrDef/CSS/Ident.php';
+require 'HTMLPurifier/AttrDef/CSS/ImportantDecorator.php';
+require 'HTMLPurifier/AttrDef/CSS/Length.php';
+require 'HTMLPurifier/AttrDef/CSS/ListStyle.php';
+require 'HTMLPurifier/AttrDef/CSS/Multiple.php';
+require 'HTMLPurifier/AttrDef/CSS/Percentage.php';
+require 'HTMLPurifier/AttrDef/CSS/TextDecoration.php';
+require 'HTMLPurifier/AttrDef/CSS/URI.php';
+require 'HTMLPurifier/AttrDef/HTML/Bool.php';
+require 'HTMLPurifier/AttrDef/HTML/Nmtokens.php';
+require 'HTMLPurifier/AttrDef/HTML/Class.php';
+require 'HTMLPurifier/AttrDef/HTML/Color.php';
+require 'HTMLPurifier/AttrDef/HTML/FrameTarget.php';
+require 'HTMLPurifier/AttrDef/HTML/ID.php';
+require 'HTMLPurifier/AttrDef/HTML/Pixels.php';
+require 'HTMLPurifier/AttrDef/HTML/Length.php';
+require 'HTMLPurifier/AttrDef/HTML/LinkTypes.php';
+require 'HTMLPurifier/AttrDef/HTML/MultiLength.php';
+require 'HTMLPurifier/AttrDef/URI/Email.php';
+require 'HTMLPurifier/AttrDef/URI/Host.php';
+require 'HTMLPurifier/AttrDef/URI/IPv4.php';
+require 'HTMLPurifier/AttrDef/URI/IPv6.php';
+require 'HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php';
+require 'HTMLPurifier/AttrTransform/Background.php';
+require 'HTMLPurifier/AttrTransform/BdoDir.php';
+require 'HTMLPurifier/AttrTransform/BgColor.php';
+require 'HTMLPurifier/AttrTransform/BoolToCSS.php';
+require 'HTMLPurifier/AttrTransform/Border.php';
+require 'HTMLPurifier/AttrTransform/EnumToCSS.php';
+require 'HTMLPurifier/AttrTransform/ImgRequired.php';
+require 'HTMLPurifier/AttrTransform/ImgSpace.php';
+require 'HTMLPurifier/AttrTransform/Input.php';
+require 'HTMLPurifier/AttrTransform/Lang.php';
+require 'HTMLPurifier/AttrTransform/Length.php';
+require 'HTMLPurifier/AttrTransform/Name.php';
+require 'HTMLPurifier/AttrTransform/NameSync.php';
+require 'HTMLPurifier/AttrTransform/Nofollow.php';
+require 'HTMLPurifier/AttrTransform/SafeEmbed.php';
+require 'HTMLPurifier/AttrTransform/SafeObject.php';
+require 'HTMLPurifier/AttrTransform/SafeParam.php';
+require 'HTMLPurifier/AttrTransform/ScriptRequired.php';
+require 'HTMLPurifier/AttrTransform/TargetBlank.php';
+require 'HTMLPurifier/AttrTransform/Textarea.php';
+require 'HTMLPurifier/ChildDef/Chameleon.php';
+require 'HTMLPurifier/ChildDef/Custom.php';
+require 'HTMLPurifier/ChildDef/Empty.php';
+require 'HTMLPurifier/ChildDef/List.php';
+require 'HTMLPurifier/ChildDef/Required.php';
+require 'HTMLPurifier/ChildDef/Optional.php';
+require 'HTMLPurifier/ChildDef/StrictBlockquote.php';
+require 'HTMLPurifier/ChildDef/Table.php';
+require 'HTMLPurifier/DefinitionCache/Decorator.php';
+require 'HTMLPurifier/DefinitionCache/Null.php';
+require 'HTMLPurifier/DefinitionCache/Serializer.php';
+require 'HTMLPurifier/DefinitionCache/Decorator/Cleanup.php';
+require 'HTMLPurifier/DefinitionCache/Decorator/Memory.php';
+require 'HTMLPurifier/HTMLModule/Bdo.php';
+require 'HTMLPurifier/HTMLModule/CommonAttributes.php';
+require 'HTMLPurifier/HTMLModule/Edit.php';
+require 'HTMLPurifier/HTMLModule/Forms.php';
+require 'HTMLPurifier/HTMLModule/Hypertext.php';
+require 'HTMLPurifier/HTMLModule/Iframe.php';
+require 'HTMLPurifier/HTMLModule/Image.php';
+require 'HTMLPurifier/HTMLModule/Legacy.php';
+require 'HTMLPurifier/HTMLModule/List.php';
+require 'HTMLPurifier/HTMLModule/Name.php';
+require 'HTMLPurifier/HTMLModule/Nofollow.php';
+require 'HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php';
+require 'HTMLPurifier/HTMLModule/Object.php';
+require 'HTMLPurifier/HTMLModule/Presentation.php';
+require 'HTMLPurifier/HTMLModule/Proprietary.php';
+require 'HTMLPurifier/HTMLModule/Ruby.php';
+require 'HTMLPurifier/HTMLModule/SafeEmbed.php';
+require 'HTMLPurifier/HTMLModule/SafeObject.php';
+require 'HTMLPurifier/HTMLModule/SafeScripting.php';
+require 'HTMLPurifier/HTMLModule/Scripting.php';
+require 'HTMLPurifier/HTMLModule/StyleAttribute.php';
+require 'HTMLPurifier/HTMLModule/Tables.php';
+require 'HTMLPurifier/HTMLModule/Target.php';
+require 'HTMLPurifier/HTMLModule/TargetBlank.php';
+require 'HTMLPurifier/HTMLModule/Text.php';
+require 'HTMLPurifier/HTMLModule/Tidy.php';
+require 'HTMLPurifier/HTMLModule/XMLCommonAttributes.php';
+require 'HTMLPurifier/HTMLModule/Tidy/Name.php';
+require 'HTMLPurifier/HTMLModule/Tidy/Proprietary.php';
+require 'HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php';
+require 'HTMLPurifier/HTMLModule/Tidy/Strict.php';
+require 'HTMLPurifier/HTMLModule/Tidy/Transitional.php';
+require 'HTMLPurifier/HTMLModule/Tidy/XHTML.php';
+require 'HTMLPurifier/Injector/AutoParagraph.php';
+require 'HTMLPurifier/Injector/DisplayLinkURI.php';
+require 'HTMLPurifier/Injector/Linkify.php';
+require 'HTMLPurifier/Injector/PurifierLinkify.php';
+require 'HTMLPurifier/Injector/RemoveEmpty.php';
+require 'HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php';
+require 'HTMLPurifier/Injector/SafeObject.php';
+require 'HTMLPurifier/Lexer/DOMLex.php';
+require 'HTMLPurifier/Lexer/DirectLex.php';
+require 'HTMLPurifier/Node/Comment.php';
+require 'HTMLPurifier/Node/Element.php';
+require 'HTMLPurifier/Node/Text.php';
+require 'HTMLPurifier/Strategy/Composite.php';
+require 'HTMLPurifier/Strategy/Core.php';
+require 'HTMLPurifier/Strategy/FixNesting.php';
+require 'HTMLPurifier/Strategy/MakeWellFormed.php';
+require 'HTMLPurifier/Strategy/RemoveForeignElements.php';
+require 'HTMLPurifier/Strategy/ValidateAttributes.php';
+require 'HTMLPurifier/TagTransform/Font.php';
+require 'HTMLPurifier/TagTransform/Simple.php';
+require 'HTMLPurifier/Token/Comment.php';
+require 'HTMLPurifier/Token/Tag.php';
+require 'HTMLPurifier/Token/Empty.php';
+require 'HTMLPurifier/Token/End.php';
+require 'HTMLPurifier/Token/Start.php';
+require 'HTMLPurifier/Token/Text.php';
+require 'HTMLPurifier/URIFilter/DisableExternal.php';
+require 'HTMLPurifier/URIFilter/DisableExternalResources.php';
+require 'HTMLPurifier/URIFilter/DisableResources.php';
+require 'HTMLPurifier/URIFilter/HostBlacklist.php';
+require 'HTMLPurifier/URIFilter/MakeAbsolute.php';
+require 'HTMLPurifier/URIFilter/Munge.php';
+require 'HTMLPurifier/URIFilter/SafeIframe.php';
+require 'HTMLPurifier/URIScheme/data.php';
+require 'HTMLPurifier/URIScheme/file.php';
+require 'HTMLPurifier/URIScheme/ftp.php';
+require 'HTMLPurifier/URIScheme/http.php';
+require 'HTMLPurifier/URIScheme/https.php';
+require 'HTMLPurifier/URIScheme/mailto.php';
+require 'HTMLPurifier/URIScheme/news.php';
+require 'HTMLPurifier/URIScheme/nntp.php';
+require 'HTMLPurifier/VarParser/Flexible.php';
+require 'HTMLPurifier/VarParser/Native.php';
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.kses.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.kses.php
new file mode 100644
index 0000000..7522900
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.kses.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * @file
+ * Emulation layer for code that used kses(), substituting in HTML Purifier.
+ */
+
+require_once dirname(__FILE__) . '/HTMLPurifier.auto.php';
+
+function kses($string, $allowed_html, $allowed_protocols = null)
+{
+    $config = HTMLPurifier_Config::createDefault();
+    $allowed_elements = array();
+    $allowed_attributes = array();
+    foreach ($allowed_html as $element => $attributes) {
+        $allowed_elements[$element] = true;
+        foreach ($attributes as $attribute => $x) {
+            $allowed_attributes["$element.$attribute"] = true;
+        }
+    }
+    $config->set('HTML.AllowedElements', $allowed_elements);
+    $config->set('HTML.AllowedAttributes', $allowed_attributes);
+    if ($allowed_protocols !== null) {
+        $config->set('URI.AllowedSchemes', $allowed_protocols);
+    }
+    $purifier = new HTMLPurifier($config);
+    return $purifier->purify($string);
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.path.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.path.php
new file mode 100644
index 0000000..39b1b65
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.path.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @file
+ * Convenience stub file that adds HTML Purifier's library file to the path
+ * without any other side-effects.
+ */
+
+set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path() );
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.php
new file mode 100644
index 0000000..6f654fd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.php
@@ -0,0 +1,292 @@
+<?php
+
+/*! @mainpage
+ *
+ * HTML Purifier is an HTML filter that will take an arbitrary snippet of
+ * HTML and rigorously test, validate and filter it into a version that
+ * is safe for output onto webpages. It achieves this by:
+ *
+ *  -# Lexing (parsing into tokens) the document,
+ *  -# Executing various strategies on the tokens:
+ *      -# Removing all elements not in the whitelist,
+ *      -# Making the tokens well-formed,
+ *      -# Fixing the nesting of the nodes, and
+ *      -# Validating attributes of the nodes; and
+ *  -# Generating HTML from the purified tokens.
+ *
+ * However, most users will only need to interface with the HTMLPurifier
+ * and HTMLPurifier_Config.
+ */
+
+/*
+    HTML Purifier 4.6.0 - Standards Compliant HTML Filtering
+    Copyright (C) 2006-2008 Edward Z. Yang
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+/**
+ * Facade that coordinates HTML Purifier's subsystems in order to purify HTML.
+ *
+ * @note There are several points in which configuration can be specified
+ *       for HTML Purifier.  The precedence of these (from lowest to
+ *       highest) is as follows:
+ *          -# Instance: new HTMLPurifier($config)
+ *          -# Invocation: purify($html, $config)
+ *       These configurations are entirely independent of each other and
+ *       are *not* merged (this behavior may change in the future).
+ *
+ * @todo We need an easier way to inject strategies using the configuration
+ *       object.
+ */
+class HTMLPurifier
+{
+
+    /**
+     * Version of HTML Purifier.
+     * @type string
+     */
+    public $version = '4.6.0';
+
+    /**
+     * Constant with version of HTML Purifier.
+     */
+    const VERSION = '4.6.0';
+
+    /**
+     * Global configuration object.
+     * @type HTMLPurifier_Config
+     */
+    public $config;
+
+    /**
+     * Array of extra filter objects to run on HTML,
+     * for backwards compatibility.
+     * @type HTMLPurifier_Filter[]
+     */
+    private $filters = array();
+
+    /**
+     * Single instance of HTML Purifier.
+     * @type HTMLPurifier
+     */
+    private static $instance;
+
+    /**
+     * @type HTMLPurifier_Strategy_Core
+     */
+    protected $strategy;
+
+    /**
+     * @type HTMLPurifier_Generator
+     */
+    protected $generator;
+
+    /**
+     * Resultant context of last run purification.
+     * Is an array of contexts if the last called method was purifyArray().
+     * @type HTMLPurifier_Context
+     */
+    public $context;
+
+    /**
+     * Initializes the purifier.
+     *
+     * @param HTMLPurifier_Config $config Optional HTMLPurifier_Config object
+     *                for all instances of the purifier, if omitted, a default
+     *                configuration is supplied (which can be overridden on a
+     *                per-use basis).
+     *                The parameter can also be any type that
+     *                HTMLPurifier_Config::create() supports.
+     */
+    public function __construct($config = null)
+    {
+        $this->config = HTMLPurifier_Config::create($config);
+        $this->strategy = new HTMLPurifier_Strategy_Core();
+    }
+
+    /**
+     * Adds a filter to process the output. First come first serve
+     *
+     * @param HTMLPurifier_Filter $filter HTMLPurifier_Filter object
+     */
+    public function addFilter($filter)
+    {
+        trigger_error(
+            'HTMLPurifier->addFilter() is deprecated, use configuration directives' .
+            ' in the Filter namespace or Filter.Custom',
+            E_USER_WARNING
+        );
+        $this->filters[] = $filter;
+    }
+
+    /**
+     * Filters an HTML snippet/document to be XSS-free and standards-compliant.
+     *
+     * @param string $html String of HTML to purify
+     * @param HTMLPurifier_Config $config Config object for this operation,
+     *                if omitted, defaults to the config object specified during this
+     *                object's construction. The parameter can also be any type
+     *                that HTMLPurifier_Config::create() supports.
+     *
+     * @return string Purified HTML
+     */
+    public function purify($html, $config = null)
+    {
+        // :TODO: make the config merge in, instead of replace
+        $config = $config ? HTMLPurifier_Config::create($config) : $this->config;
+
+        // implementation is partially environment dependant, partially
+        // configuration dependant
+        $lexer = HTMLPurifier_Lexer::create($config);
+
+        $context = new HTMLPurifier_Context();
+
+        // setup HTML generator
+        $this->generator = new HTMLPurifier_Generator($config, $context);
+        $context->register('Generator', $this->generator);
+
+        // set up global context variables
+        if ($config->get('Core.CollectErrors')) {
+            // may get moved out if other facilities use it
+            $language_factory = HTMLPurifier_LanguageFactory::instance();
+            $language = $language_factory->create($config, $context);
+            $context->register('Locale', $language);
+
+            $error_collector = new HTMLPurifier_ErrorCollector($context);
+            $context->register('ErrorCollector', $error_collector);
+        }
+
+        // setup id_accumulator context, necessary due to the fact that
+        // AttrValidator can be called from many places
+        $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context);
+        $context->register('IDAccumulator', $id_accumulator);
+
+        $html = HTMLPurifier_Encoder::convertToUTF8($html, $config, $context);
+
+        // setup filters
+        $filter_flags = $config->getBatch('Filter');
+        $custom_filters = $filter_flags['Custom'];
+        unset($filter_flags['Custom']);
+        $filters = array();
+        foreach ($filter_flags as $filter => $flag) {
+            if (!$flag) {
+                continue;
+            }
+            if (strpos($filter, '.') !== false) {
+                continue;
+            }
+            $class = "HTMLPurifier_Filter_$filter";
+            $filters[] = new $class;
+        }
+        foreach ($custom_filters as $filter) {
+            // maybe "HTMLPurifier_Filter_$filter", but be consistent with AutoFormat
+            $filters[] = $filter;
+        }
+        $filters = array_merge($filters, $this->filters);
+        // maybe prepare(), but later
+
+        for ($i = 0, $filter_size = count($filters); $i < $filter_size; $i++) {
+            $html = $filters[$i]->preFilter($html, $config, $context);
+        }
+
+        // purified HTML
+        $html =
+            $this->generator->generateFromTokens(
+                // list of tokens
+                $this->strategy->execute(
+                    // list of un-purified tokens
+                    $lexer->tokenizeHTML(
+                        // un-purified HTML
+                        $html,
+                        $config,
+                        $context
+                    ),
+                    $config,
+                    $context
+                )
+            );
+
+        for ($i = $filter_size - 1; $i >= 0; $i--) {
+            $html = $filters[$i]->postFilter($html, $config, $context);
+        }
+
+        $html = HTMLPurifier_Encoder::convertFromUTF8($html, $config, $context);
+        $this->context =& $context;
+        return $html;
+    }
+
+    /**
+     * Filters an array of HTML snippets
+     *
+     * @param string[] $array_of_html Array of html snippets
+     * @param HTMLPurifier_Config $config Optional config object for this operation.
+     *                See HTMLPurifier::purify() for more details.
+     *
+     * @return string[] Array of purified HTML
+     */
+    public function purifyArray($array_of_html, $config = null)
+    {
+        $context_array = array();
+        foreach ($array_of_html as $key => $html) {
+            $array_of_html[$key] = $this->purify($html, $config);
+            $context_array[$key] = $this->context;
+        }
+        $this->context = $context_array;
+        return $array_of_html;
+    }
+
+    /**
+     * Singleton for enforcing just one HTML Purifier in your system
+     *
+     * @param HTMLPurifier|HTMLPurifier_Config $prototype Optional prototype
+     *                   HTMLPurifier instance to overload singleton with,
+     *                   or HTMLPurifier_Config instance to configure the
+     *                   generated version with.
+     *
+     * @return HTMLPurifier
+     */
+    public static function instance($prototype = null)
+    {
+        if (!self::$instance || $prototype) {
+            if ($prototype instanceof HTMLPurifier) {
+                self::$instance = $prototype;
+            } elseif ($prototype) {
+                self::$instance = new HTMLPurifier($prototype);
+            } else {
+                self::$instance = new HTMLPurifier();
+            }
+        }
+        return self::$instance;
+    }
+
+    /**
+     * Singleton for enforcing just one HTML Purifier in your system
+     *
+     * @param HTMLPurifier|HTMLPurifier_Config $prototype Optional prototype
+     *                   HTMLPurifier instance to overload singleton with,
+     *                   or HTMLPurifier_Config instance to configure the
+     *                   generated version with.
+     *
+     * @return HTMLPurifier
+     * @note Backwards compatibility, see instance()
+     */
+    public static function getInstance($prototype = null)
+    {
+        return HTMLPurifier::instance($prototype);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.safe-includes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.safe-includes.php
new file mode 100644
index 0000000..9dea6d1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier.safe-includes.php
@@ -0,0 +1,223 @@
+<?php
+
+/**
+ * @file
+ * This file was auto-generated by generate-includes.php and includes all of
+ * the core files required by HTML Purifier. This is a convenience stub that
+ * includes all files using dirname(__FILE__) and require_once. PLEASE DO NOT
+ * EDIT THIS FILE, changes will be overwritten the next time the script is run.
+ *
+ * Changes to include_path are not necessary.
+ */
+
+$__dir = dirname(__FILE__);
+
+require_once $__dir . '/HTMLPurifier.php';
+require_once $__dir . '/HTMLPurifier/Arborize.php';
+require_once $__dir . '/HTMLPurifier/AttrCollections.php';
+require_once $__dir . '/HTMLPurifier/AttrDef.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform.php';
+require_once $__dir . '/HTMLPurifier/AttrTypes.php';
+require_once $__dir . '/HTMLPurifier/AttrValidator.php';
+require_once $__dir . '/HTMLPurifier/Bootstrap.php';
+require_once $__dir . '/HTMLPurifier/Definition.php';
+require_once $__dir . '/HTMLPurifier/CSSDefinition.php';
+require_once $__dir . '/HTMLPurifier/ChildDef.php';
+require_once $__dir . '/HTMLPurifier/Config.php';
+require_once $__dir . '/HTMLPurifier/ConfigSchema.php';
+require_once $__dir . '/HTMLPurifier/ContentSets.php';
+require_once $__dir . '/HTMLPurifier/Context.php';
+require_once $__dir . '/HTMLPurifier/DefinitionCache.php';
+require_once $__dir . '/HTMLPurifier/DefinitionCacheFactory.php';
+require_once $__dir . '/HTMLPurifier/Doctype.php';
+require_once $__dir . '/HTMLPurifier/DoctypeRegistry.php';
+require_once $__dir . '/HTMLPurifier/ElementDef.php';
+require_once $__dir . '/HTMLPurifier/Encoder.php';
+require_once $__dir . '/HTMLPurifier/EntityLookup.php';
+require_once $__dir . '/HTMLPurifier/EntityParser.php';
+require_once $__dir . '/HTMLPurifier/ErrorCollector.php';
+require_once $__dir . '/HTMLPurifier/ErrorStruct.php';
+require_once $__dir . '/HTMLPurifier/Exception.php';
+require_once $__dir . '/HTMLPurifier/Filter.php';
+require_once $__dir . '/HTMLPurifier/Generator.php';
+require_once $__dir . '/HTMLPurifier/HTMLDefinition.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule.php';
+require_once $__dir . '/HTMLPurifier/HTMLModuleManager.php';
+require_once $__dir . '/HTMLPurifier/IDAccumulator.php';
+require_once $__dir . '/HTMLPurifier/Injector.php';
+require_once $__dir . '/HTMLPurifier/Language.php';
+require_once $__dir . '/HTMLPurifier/LanguageFactory.php';
+require_once $__dir . '/HTMLPurifier/Length.php';
+require_once $__dir . '/HTMLPurifier/Lexer.php';
+require_once $__dir . '/HTMLPurifier/Node.php';
+require_once $__dir . '/HTMLPurifier/PercentEncoder.php';
+require_once $__dir . '/HTMLPurifier/PropertyList.php';
+require_once $__dir . '/HTMLPurifier/PropertyListIterator.php';
+require_once $__dir . '/HTMLPurifier/Queue.php';
+require_once $__dir . '/HTMLPurifier/Strategy.php';
+require_once $__dir . '/HTMLPurifier/StringHash.php';
+require_once $__dir . '/HTMLPurifier/StringHashParser.php';
+require_once $__dir . '/HTMLPurifier/TagTransform.php';
+require_once $__dir . '/HTMLPurifier/Token.php';
+require_once $__dir . '/HTMLPurifier/TokenFactory.php';
+require_once $__dir . '/HTMLPurifier/URI.php';
+require_once $__dir . '/HTMLPurifier/URIDefinition.php';
+require_once $__dir . '/HTMLPurifier/URIFilter.php';
+require_once $__dir . '/HTMLPurifier/URIParser.php';
+require_once $__dir . '/HTMLPurifier/URIScheme.php';
+require_once $__dir . '/HTMLPurifier/URISchemeRegistry.php';
+require_once $__dir . '/HTMLPurifier/UnitConverter.php';
+require_once $__dir . '/HTMLPurifier/VarParser.php';
+require_once $__dir . '/HTMLPurifier/VarParserException.php';
+require_once $__dir . '/HTMLPurifier/Zipper.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/Clone.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/Enum.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/Integer.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/Lang.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/Switch.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/Text.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/URI.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Number.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/AlphaValue.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Background.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Border.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Color.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Composite.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Filter.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Font.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/FontFamily.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Ident.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Length.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/ListStyle.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Multiple.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Percentage.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/TextDecoration.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/CSS/URI.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Bool.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Nmtokens.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Class.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Color.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/FrameTarget.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/ID.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Pixels.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Length.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/LinkTypes.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/MultiLength.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/URI/Email.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/URI/Host.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/URI/IPv4.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/URI/IPv6.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Background.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/BdoDir.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/BgColor.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/BoolToCSS.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Border.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/EnumToCSS.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/ImgRequired.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/ImgSpace.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Input.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Lang.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Length.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Name.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/NameSync.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Nofollow.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/SafeEmbed.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/SafeObject.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/SafeParam.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/ScriptRequired.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/TargetBlank.php';
+require_once $__dir . '/HTMLPurifier/AttrTransform/Textarea.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/Chameleon.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/Custom.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/Empty.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/List.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/Required.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/Optional.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/StrictBlockquote.php';
+require_once $__dir . '/HTMLPurifier/ChildDef/Table.php';
+require_once $__dir . '/HTMLPurifier/DefinitionCache/Decorator.php';
+require_once $__dir . '/HTMLPurifier/DefinitionCache/Null.php';
+require_once $__dir . '/HTMLPurifier/DefinitionCache/Serializer.php';
+require_once $__dir . '/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php';
+require_once $__dir . '/HTMLPurifier/DefinitionCache/Decorator/Memory.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Bdo.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/CommonAttributes.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Edit.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Forms.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Hypertext.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Iframe.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Image.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Legacy.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/List.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Name.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Nofollow.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Object.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Presentation.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Proprietary.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Ruby.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/SafeEmbed.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/SafeObject.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/SafeScripting.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Scripting.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/StyleAttribute.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tables.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Target.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/TargetBlank.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Text.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/XMLCommonAttributes.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Name.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Proprietary.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Strict.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Transitional.php';
+require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/XHTML.php';
+require_once $__dir . '/HTMLPurifier/Injector/AutoParagraph.php';
+require_once $__dir . '/HTMLPurifier/Injector/DisplayLinkURI.php';
+require_once $__dir . '/HTMLPurifier/Injector/Linkify.php';
+require_once $__dir . '/HTMLPurifier/Injector/PurifierLinkify.php';
+require_once $__dir . '/HTMLPurifier/Injector/RemoveEmpty.php';
+require_once $__dir . '/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php';
+require_once $__dir . '/HTMLPurifier/Injector/SafeObject.php';
+require_once $__dir . '/HTMLPurifier/Lexer/DOMLex.php';
+require_once $__dir . '/HTMLPurifier/Lexer/DirectLex.php';
+require_once $__dir . '/HTMLPurifier/Node/Comment.php';
+require_once $__dir . '/HTMLPurifier/Node/Element.php';
+require_once $__dir . '/HTMLPurifier/Node/Text.php';
+require_once $__dir . '/HTMLPurifier/Strategy/Composite.php';
+require_once $__dir . '/HTMLPurifier/Strategy/Core.php';
+require_once $__dir . '/HTMLPurifier/Strategy/FixNesting.php';
+require_once $__dir . '/HTMLPurifier/Strategy/MakeWellFormed.php';
+require_once $__dir . '/HTMLPurifier/Strategy/RemoveForeignElements.php';
+require_once $__dir . '/HTMLPurifier/Strategy/ValidateAttributes.php';
+require_once $__dir . '/HTMLPurifier/TagTransform/Font.php';
+require_once $__dir . '/HTMLPurifier/TagTransform/Simple.php';
+require_once $__dir . '/HTMLPurifier/Token/Comment.php';
+require_once $__dir . '/HTMLPurifier/Token/Tag.php';
+require_once $__dir . '/HTMLPurifier/Token/Empty.php';
+require_once $__dir . '/HTMLPurifier/Token/End.php';
+require_once $__dir . '/HTMLPurifier/Token/Start.php';
+require_once $__dir . '/HTMLPurifier/Token/Text.php';
+require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternal.php';
+require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternalResources.php';
+require_once $__dir . '/HTMLPurifier/URIFilter/DisableResources.php';
+require_once $__dir . '/HTMLPurifier/URIFilter/HostBlacklist.php';
+require_once $__dir . '/HTMLPurifier/URIFilter/MakeAbsolute.php';
+require_once $__dir . '/HTMLPurifier/URIFilter/Munge.php';
+require_once $__dir . '/HTMLPurifier/URIFilter/SafeIframe.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/data.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/file.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/ftp.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/http.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/https.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/mailto.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/news.php';
+require_once $__dir . '/HTMLPurifier/URIScheme/nntp.php';
+require_once $__dir . '/HTMLPurifier/VarParser/Flexible.php';
+require_once $__dir . '/HTMLPurifier/VarParser/Native.php';
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Arborize.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Arborize.php
new file mode 100644
index 0000000..9e6617b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Arborize.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * Converts a stream of HTMLPurifier_Token into an HTMLPurifier_Node,
+ * and back again.
+ *
+ * @note This transformation is not an equivalence.  We mutate the input
+ * token stream to make it so; see all [MUT] markers in code.
+ */
+class HTMLPurifier_Arborize
+{
+    public static function arborize($tokens, $config, $context) {
+        $definition = $config->getHTMLDefinition();
+        $parent = new HTMLPurifier_Token_Start($definition->info_parent);
+        $stack = array($parent->toNode());
+        foreach ($tokens as $token) {
+            $token->skip = null; // [MUT]
+            $token->carryover = null; // [MUT]
+            if ($token instanceof HTMLPurifier_Token_End) {
+                $token->start = null; // [MUT]
+                $r = array_pop($stack);
+                assert($r->name === $token->name);
+                assert(empty($token->attr));
+                $r->endCol = $token->col;
+                $r->endLine = $token->line;
+                $r->endArmor = $token->armor;
+                continue;
+            }
+            $node = $token->toNode();
+            $stack[count($stack)-1]->children[] = $node;
+            if ($token instanceof HTMLPurifier_Token_Start) {
+                $stack[] = $node;
+            }
+        }
+        assert(count($stack) == 1);
+        return $stack[0];
+    }
+
+    public static function flatten($node, $config, $context) {
+        $level = 0;
+        $nodes = array($level => new HTMLPurifier_Queue(array($node)));
+        $closingTokens = array();
+        $tokens = array();
+        do {
+            while (!$nodes[$level]->isEmpty()) {
+                $node = $nodes[$level]->shift(); // FIFO
+                list($start, $end) = $node->toTokenPair();
+                if ($level > 0) {
+                    $tokens[] = $start;
+                }
+                if ($end !== NULL) {
+                    $closingTokens[$level][] = $end;
+                }
+                if ($node instanceof HTMLPurifier_Node_Element) {
+                    $level++;
+                    $nodes[$level] = new HTMLPurifier_Queue();
+                    foreach ($node->children as $childNode) {
+                        $nodes[$level]->push($childNode);
+                    }
+                }
+            }
+            $level--;
+            if ($level && isset($closingTokens[$level])) {
+                while ($token = array_pop($closingTokens[$level])) {
+                    $tokens[] = $token;
+                }
+            }
+        } while ($level > 0);
+        return $tokens;
+    }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrCollections.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrCollections.php
new file mode 100644
index 0000000..4f6c2e3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrCollections.php
@@ -0,0 +1,143 @@
+<?php
+
+/**
+ * Defines common attribute collections that modules reference
+ */
+
+class HTMLPurifier_AttrCollections
+{
+
+    /**
+     * Associative array of attribute collections, indexed by name.
+     * @type array
+     */
+    public $info = array();
+
+    /**
+     * Performs all expansions on internal data for use by other inclusions
+     * It also collects all attribute collection extensions from
+     * modules
+     * @param HTMLPurifier_AttrTypes $attr_types HTMLPurifier_AttrTypes instance
+     * @param HTMLPurifier_HTMLModule[] $modules Hash array of HTMLPurifier_HTMLModule members
+     */
+    public function __construct($attr_types, $modules)
+    {
+        // load extensions from the modules
+        foreach ($modules as $module) {
+            foreach ($module->attr_collections as $coll_i => $coll) {
+                if (!isset($this->info[$coll_i])) {
+                    $this->info[$coll_i] = array();
+                }
+                foreach ($coll as $attr_i => $attr) {
+                    if ($attr_i === 0 && isset($this->info[$coll_i][$attr_i])) {
+                        // merge in includes
+                        $this->info[$coll_i][$attr_i] = array_merge(
+                            $this->info[$coll_i][$attr_i],
+                            $attr
+                        );
+                        continue;
+                    }
+                    $this->info[$coll_i][$attr_i] = $attr;
+                }
+            }
+        }
+        // perform internal expansions and inclusions
+        foreach ($this->info as $name => $attr) {
+            // merge attribute collections that include others
+            $this->performInclusions($this->info[$name]);
+            // replace string identifiers with actual attribute objects
+            $this->expandIdentifiers($this->info[$name], $attr_types);
+        }
+    }
+
+    /**
+     * Takes a reference to an attribute associative array and performs
+     * all inclusions specified by the zero index.
+     * @param array &$attr Reference to attribute array
+     */
+    public function performInclusions(&$attr)
+    {
+        if (!isset($attr[0])) {
+            return;
+        }
+        $merge = $attr[0];
+        $seen  = array(); // recursion guard
+        // loop through all the inclusions
+        for ($i = 0; isset($merge[$i]); $i++) {
+            if (isset($seen[$merge[$i]])) {
+                continue;
+            }
+            $seen[$merge[$i]] = true;
+            // foreach attribute of the inclusion, copy it over
+            if (!isset($this->info[$merge[$i]])) {
+                continue;
+            }
+            foreach ($this->info[$merge[$i]] as $key => $value) {
+                if (isset($attr[$key])) {
+                    continue;
+                } // also catches more inclusions
+                $attr[$key] = $value;
+            }
+            if (isset($this->info[$merge[$i]][0])) {
+                // recursion
+                $merge = array_merge($merge, $this->info[$merge[$i]][0]);
+            }
+        }
+        unset($attr[0]);
+    }
+
+    /**
+     * Expands all string identifiers in an attribute array by replacing
+     * them with the appropriate values inside HTMLPurifier_AttrTypes
+     * @param array &$attr Reference to attribute array
+     * @param HTMLPurifier_AttrTypes $attr_types HTMLPurifier_AttrTypes instance
+     */
+    public function expandIdentifiers(&$attr, $attr_types)
+    {
+        // because foreach will process new elements we add, make sure we
+        // skip duplicates
+        $processed = array();
+
+        foreach ($attr as $def_i => $def) {
+            // skip inclusions
+            if ($def_i === 0) {
+                continue;
+            }
+
+            if (isset($processed[$def_i])) {
+                continue;
+            }
+
+            // determine whether or not attribute is required
+            if ($required = (strpos($def_i, '*') !== false)) {
+                // rename the definition
+                unset($attr[$def_i]);
+                $def_i = trim($def_i, '*');
+                $attr[$def_i] = $def;
+            }
+
+            $processed[$def_i] = true;
+
+            // if we've already got a literal object, move on
+            if (is_object($def)) {
+                // preserve previous required
+                $attr[$def_i]->required = ($required || $attr[$def_i]->required);
+                continue;
+            }
+
+            if ($def === false) {
+                unset($attr[$def_i]);
+                continue;
+            }
+
+            if ($t = $attr_types->get($def)) {
+                $attr[$def_i] = $t;
+                $attr[$def_i]->required = $required;
+            } else {
+                unset($attr[$def_i]);
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef.php
new file mode 100644
index 0000000..5ac0652
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef.php
@@ -0,0 +1,138 @@
+<?php
+
+/**
+ * Base class for all validating attribute definitions.
+ *
+ * This family of classes forms the core for not only HTML attribute validation,
+ * but also any sort of string that needs to be validated or cleaned (which
+ * means CSS properties and composite definitions are defined here too).
+ * Besides defining (through code) what precisely makes the string valid,
+ * subclasses are also responsible for cleaning the code if possible.
+ */
+
+abstract class HTMLPurifier_AttrDef
+{
+
+    /**
+     * Tells us whether or not an HTML attribute is minimized.
+     * Has no meaning in other contexts.
+     * @type bool
+     */
+    public $minimized = false;
+
+    /**
+     * Tells us whether or not an HTML attribute is required.
+     * Has no meaning in other contexts
+     * @type bool
+     */
+    public $required = false;
+
+    /**
+     * Validates and cleans passed string according to a definition.
+     *
+     * @param string $string String to be validated and cleaned.
+     * @param HTMLPurifier_Config $config Mandatory HTMLPurifier_Config object.
+     * @param HTMLPurifier_Context $context Mandatory HTMLPurifier_Context object.
+     */
+    abstract public function validate($string, $config, $context);
+
+    /**
+     * Convenience method that parses a string as if it were CDATA.
+     *
+     * This method process a string in the manner specified at
+     * <http://www.w3.org/TR/html4/types.html#h-6.2> by removing
+     * leading and trailing whitespace, ignoring line feeds, and replacing
+     * carriage returns and tabs with spaces.  While most useful for HTML
+     * attributes specified as CDATA, it can also be applied to most CSS
+     * values.
+     *
+     * @note This method is not entirely standards compliant, as trim() removes
+     *       more types of whitespace than specified in the spec. In practice,
+     *       this is rarely a problem, as those extra characters usually have
+     *       already been removed by HTMLPurifier_Encoder.
+     *
+     * @warning This processing is inconsistent with XML's whitespace handling
+     *          as specified by section 3.3.3 and referenced XHTML 1.0 section
+     *          4.7.  However, note that we are NOT necessarily
+     *          parsing XML, thus, this behavior may still be correct. We
+     *          assume that newlines have been normalized.
+     */
+    public function parseCDATA($string)
+    {
+        $string = trim($string);
+        $string = str_replace(array("\n", "\t", "\r"), ' ', $string);
+        return $string;
+    }
+
+    /**
+     * Factory method for creating this class from a string.
+     * @param string $string String construction info
+     * @return HTMLPurifier_AttrDef Created AttrDef object corresponding to $string
+     */
+    public function make($string)
+    {
+        // default implementation, return a flyweight of this object.
+        // If $string has an effect on the returned object (i.e. you
+        // need to overload this method), it is best
+        // to clone or instantiate new copies. (Instantiation is safer.)
+        return $this;
+    }
+
+    /**
+     * Removes spaces from rgb(0, 0, 0) so that shorthand CSS properties work
+     * properly. THIS IS A HACK!
+     * @param string $string a CSS colour definition
+     * @return string
+     */
+    protected function mungeRgb($string)
+    {
+        return preg_replace('/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/', 'rgb(\1,\2,\3)', $string);
+    }
+
+    /**
+     * Parses a possibly escaped CSS string and returns the "pure"
+     * version of it.
+     */
+    protected function expandCSSEscape($string)
+    {
+        // flexibly parse it
+        $ret = '';
+        for ($i = 0, $c = strlen($string); $i < $c; $i++) {
+            if ($string[$i] === '\\') {
+                $i++;
+                if ($i >= $c) {
+                    $ret .= '\\';
+                    break;
+                }
+                if (ctype_xdigit($string[$i])) {
+                    $code = $string[$i];
+                    for ($a = 1, $i++; $i < $c && $a < 6; $i++, $a++) {
+                        if (!ctype_xdigit($string[$i])) {
+                            break;
+                        }
+                        $code .= $string[$i];
+                    }
+                    // We have to be extremely careful when adding
+                    // new characters, to make sure we're not breaking
+                    // the encoding.
+                    $char = HTMLPurifier_Encoder::unichr(hexdec($code));
+                    if (HTMLPurifier_Encoder::cleanUTF8($char) === '') {
+                        continue;
+                    }
+                    $ret .= $char;
+                    if ($i < $c && trim($string[$i]) !== '') {
+                        $i--;
+                    }
+                    continue;
+                }
+                if ($string[$i] === "\n") {
+                    continue;
+                }
+            }
+            $ret .= $string[$i];
+        }
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php
new file mode 100644
index 0000000..02c1641
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php
@@ -0,0 +1,106 @@
+<?php
+
+/**
+ * Validates the HTML attribute style, otherwise known as CSS.
+ * @note We don't implement the whole CSS specification, so it might be
+ *       difficult to reuse this component in the context of validating
+ *       actual stylesheet declarations.
+ * @note If we were really serious about validating the CSS, we would
+ *       tokenize the styles and then parse the tokens. Obviously, we
+ *       are not doing that. Doing that could seriously harm performance,
+ *       but would make these components a lot more viable for a CSS
+ *       filtering solution.
+ */
+class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $css
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($css, $config, $context)
+    {
+        $css = $this->parseCDATA($css);
+
+        $definition = $config->getCSSDefinition();
+
+        // we're going to break the spec and explode by semicolons.
+        // This is because semicolon rarely appears in escaped form
+        // Doing this is generally flaky but fast
+        // IT MIGHT APPEAR IN URIs, see HTMLPurifier_AttrDef_CSSURI
+        // for details
+
+        $declarations = explode(';', $css);
+        $propvalues = array();
+
+        /**
+         * Name of the current CSS property being validated.
+         */
+        $property = false;
+        $context->register('CurrentCSSProperty', $property);
+
+        foreach ($declarations as $declaration) {
+            if (!$declaration) {
+                continue;
+            }
+            if (!strpos($declaration, ':')) {
+                continue;
+            }
+            list($property, $value) = explode(':', $declaration, 2);
+            $property = trim($property);
+            $value = trim($value);
+            $ok = false;
+            do {
+                if (isset($definition->info[$property])) {
+                    $ok = true;
+                    break;
+                }
+                if (ctype_lower($property)) {
+                    break;
+                }
+                $property = strtolower($property);
+                if (isset($definition->info[$property])) {
+                    $ok = true;
+                    break;
+                }
+            } while (0);
+            if (!$ok) {
+                continue;
+            }
+            // inefficient call, since the validator will do this again
+            if (strtolower(trim($value)) !== 'inherit') {
+                // inherit works for everything (but only on the base property)
+                $result = $definition->info[$property]->validate(
+                    $value,
+                    $config,
+                    $context
+                );
+            } else {
+                $result = 'inherit';
+            }
+            if ($result === false) {
+                continue;
+            }
+            $propvalues[$property] = $result;
+        }
+
+        $context->destroy('CurrentCSSProperty');
+
+        // procedure does not write the new CSS simultaneously, so it's
+        // slightly inefficient, but it's the only way of getting rid of
+        // duplicates. Perhaps config to optimize it, but not now.
+
+        $new_declarations = '';
+        foreach ($propvalues as $prop => $value) {
+            $new_declarations .= "$prop:$value;";
+        }
+
+        return $new_declarations ? $new_declarations : false;
+
+    }
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php
new file mode 100644
index 0000000..af2b83d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php
@@ -0,0 +1,34 @@
+<?php
+
+class HTMLPurifier_AttrDef_CSS_AlphaValue extends HTMLPurifier_AttrDef_CSS_Number
+{
+
+    public function __construct()
+    {
+        parent::__construct(false); // opacity is non-negative, but we will clamp it
+    }
+
+    /**
+     * @param string $number
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public function validate($number, $config, $context)
+    {
+        $result = parent::validate($number, $config, $context);
+        if ($result === false) {
+            return $result;
+        }
+        $float = (float)$result;
+        if ($float < 0.0) {
+            $result = '0';
+        }
+        if ($float > 1.0) {
+            $result = '1';
+        }
+        return $result;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php
new file mode 100644
index 0000000..7f1ea3b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * Validates shorthand CSS property background.
+ * @warning Does not support url tokens that have internal spaces.
+ */
+class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Local copy of component validators.
+     * @type HTMLPurifier_AttrDef[]
+     * @note See HTMLPurifier_AttrDef_Font::$info for a similar impl.
+     */
+    protected $info;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function __construct($config)
+    {
+        $def = $config->getCSSDefinition();
+        $this->info['background-color'] = $def->info['background-color'];
+        $this->info['background-image'] = $def->info['background-image'];
+        $this->info['background-repeat'] = $def->info['background-repeat'];
+        $this->info['background-attachment'] = $def->info['background-attachment'];
+        $this->info['background-position'] = $def->info['background-position'];
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        // regular pre-processing
+        $string = $this->parseCDATA($string);
+        if ($string === '') {
+            return false;
+        }
+
+        // munge rgb() decl if necessary
+        $string = $this->mungeRgb($string);
+
+        // assumes URI doesn't have spaces in it
+        $bits = explode(' ', $string); // bits to process
+
+        $caught = array();
+        $caught['color'] = false;
+        $caught['image'] = false;
+        $caught['repeat'] = false;
+        $caught['attachment'] = false;
+        $caught['position'] = false;
+
+        $i = 0; // number of catches
+
+        foreach ($bits as $bit) {
+            if ($bit === '') {
+                continue;
+            }
+            foreach ($caught as $key => $status) {
+                if ($key != 'position') {
+                    if ($status !== false) {
+                        continue;
+                    }
+                    $r = $this->info['background-' . $key]->validate($bit, $config, $context);
+                } else {
+                    $r = $bit;
+                }
+                if ($r === false) {
+                    continue;
+                }
+                if ($key == 'position') {
+                    if ($caught[$key] === false) {
+                        $caught[$key] = '';
+                    }
+                    $caught[$key] .= $r . ' ';
+                } else {
+                    $caught[$key] = $r;
+                }
+                $i++;
+                break;
+            }
+        }
+
+        if (!$i) {
+            return false;
+        }
+        if ($caught['position'] !== false) {
+            $caught['position'] = $this->info['background-position']->
+                validate($caught['position'], $config, $context);
+        }
+
+        $ret = array();
+        foreach ($caught as $value) {
+            if ($value === false) {
+                continue;
+            }
+            $ret[] = $value;
+        }
+
+        if (empty($ret)) {
+            return false;
+        }
+        return implode(' ', $ret);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
new file mode 100644
index 0000000..4580ef5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
@@ -0,0 +1,157 @@
+<?php
+
+/* W3C says:
+    [ // adjective and number must be in correct order, even if
+      // you could switch them without introducing ambiguity.
+      // some browsers support that syntax
+        [
+            <percentage> | <length> | left | center | right
+        ]
+        [
+            <percentage> | <length> | top | center | bottom
+        ]?
+    ] |
+    [ // this signifies that the vertical and horizontal adjectives
+      // can be arbitrarily ordered, however, there can only be two,
+      // one of each, or none at all
+        [
+            left | center | right
+        ] ||
+        [
+            top | center | bottom
+        ]
+    ]
+    top, left = 0%
+    center, (none) = 50%
+    bottom, right = 100%
+*/
+
+/* QuirksMode says:
+    keyword + length/percentage must be ordered correctly, as per W3C
+
+    Internet Explorer and Opera, however, support arbitrary ordering. We
+    should fix it up.
+
+    Minor issue though, not strictly necessary.
+*/
+
+// control freaks may appreciate the ability to convert these to
+// percentages or something, but it's not necessary
+
+/**
+ * Validates the value of background-position.
+ */
+class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @type HTMLPurifier_AttrDef_CSS_Length
+     */
+    protected $length;
+
+    /**
+     * @type HTMLPurifier_AttrDef_CSS_Percentage
+     */
+    protected $percentage;
+
+    public function __construct()
+    {
+        $this->length = new HTMLPurifier_AttrDef_CSS_Length();
+        $this->percentage = new HTMLPurifier_AttrDef_CSS_Percentage();
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = $this->parseCDATA($string);
+        $bits = explode(' ', $string);
+
+        $keywords = array();
+        $keywords['h'] = false; // left, right
+        $keywords['v'] = false; // top, bottom
+        $keywords['ch'] = false; // center (first word)
+        $keywords['cv'] = false; // center (second word)
+        $measures = array();
+
+        $i = 0;
+
+        $lookup = array(
+            'top' => 'v',
+            'bottom' => 'v',
+            'left' => 'h',
+            'right' => 'h',
+            'center' => 'c'
+        );
+
+        foreach ($bits as $bit) {
+            if ($bit === '') {
+                continue;
+            }
+
+            // test for keyword
+            $lbit = ctype_lower($bit) ? $bit : strtolower($bit);
+            if (isset($lookup[$lbit])) {
+                $status = $lookup[$lbit];
+                if ($status == 'c') {
+                    if ($i == 0) {
+                        $status = 'ch';
+                    } else {
+                        $status = 'cv';
+                    }
+                }
+                $keywords[$status] = $lbit;
+                $i++;
+            }
+
+            // test for length
+            $r = $this->length->validate($bit, $config, $context);
+            if ($r !== false) {
+                $measures[] = $r;
+                $i++;
+            }
+
+            // test for percentage
+            $r = $this->percentage->validate($bit, $config, $context);
+            if ($r !== false) {
+                $measures[] = $r;
+                $i++;
+            }
+        }
+
+        if (!$i) {
+            return false;
+        } // no valid values were caught
+
+        $ret = array();
+
+        // first keyword
+        if ($keywords['h']) {
+            $ret[] = $keywords['h'];
+        } elseif ($keywords['ch']) {
+            $ret[] = $keywords['ch'];
+            $keywords['cv'] = false; // prevent re-use: center = center center
+        } elseif (count($measures)) {
+            $ret[] = array_shift($measures);
+        }
+
+        if ($keywords['v']) {
+            $ret[] = $keywords['v'];
+        } elseif ($keywords['cv']) {
+            $ret[] = $keywords['cv'];
+        } elseif (count($measures)) {
+            $ret[] = array_shift($measures);
+        }
+
+        if (empty($ret)) {
+            return false;
+        }
+        return implode(' ', $ret);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php
new file mode 100644
index 0000000..16243ba
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * Validates the border property as defined by CSS.
+ */
+class HTMLPurifier_AttrDef_CSS_Border extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Local copy of properties this property is shorthand for.
+     * @type HTMLPurifier_AttrDef[]
+     */
+    protected $info = array();
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function __construct($config)
+    {
+        $def = $config->getCSSDefinition();
+        $this->info['border-width'] = $def->info['border-width'];
+        $this->info['border-style'] = $def->info['border-style'];
+        $this->info['border-top-color'] = $def->info['border-top-color'];
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = $this->parseCDATA($string);
+        $string = $this->mungeRgb($string);
+        $bits = explode(' ', $string);
+        $done = array(); // segments we've finished
+        $ret = ''; // return value
+        foreach ($bits as $bit) {
+            foreach ($this->info as $propname => $validator) {
+                if (isset($done[$propname])) {
+                    continue;
+                }
+                $r = $validator->validate($bit, $config, $context);
+                if ($r !== false) {
+                    $ret .= $r . ' ';
+                    $done[$propname] = true;
+                    break;
+                }
+            }
+        }
+        return rtrim($ret);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php
new file mode 100644
index 0000000..16d2a6b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php
@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * Validates Color as defined by CSS.
+ */
+class HTMLPurifier_AttrDef_CSS_Color extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $color
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($color, $config, $context)
+    {
+        static $colors = null;
+        if ($colors === null) {
+            $colors = $config->get('Core.ColorKeywords');
+        }
+
+        $color = trim($color);
+        if ($color === '') {
+            return false;
+        }
+
+        $lower = strtolower($color);
+        if (isset($colors[$lower])) {
+            return $colors[$lower];
+        }
+
+        if (strpos($color, 'rgb(') !== false) {
+            // rgb literal handling
+            $length = strlen($color);
+            if (strpos($color, ')') !== $length - 1) {
+                return false;
+            }
+            $triad = substr($color, 4, $length - 4 - 1);
+            $parts = explode(',', $triad);
+            if (count($parts) !== 3) {
+                return false;
+            }
+            $type = false; // to ensure that they're all the same type
+            $new_parts = array();
+            foreach ($parts as $part) {
+                $part = trim($part);
+                if ($part === '') {
+                    return false;
+                }
+                $length = strlen($part);
+                if ($part[$length - 1] === '%') {
+                    // handle percents
+                    if (!$type) {
+                        $type = 'percentage';
+                    } elseif ($type !== 'percentage') {
+                        return false;
+                    }
+                    $num = (float)substr($part, 0, $length - 1);
+                    if ($num < 0) {
+                        $num = 0;
+                    }
+                    if ($num > 100) {
+                        $num = 100;
+                    }
+                    $new_parts[] = "$num%";
+                } else {
+                    // handle integers
+                    if (!$type) {
+                        $type = 'integer';
+                    } elseif ($type !== 'integer') {
+                        return false;
+                    }
+                    $num = (int)$part;
+                    if ($num < 0) {
+                        $num = 0;
+                    }
+                    if ($num > 255) {
+                        $num = 255;
+                    }
+                    $new_parts[] = (string)$num;
+                }
+            }
+            $new_triad = implode(',', $new_parts);
+            $color = "rgb($new_triad)";
+        } else {
+            // hexadecimal handling
+            if ($color[0] === '#') {
+                $hex = substr($color, 1);
+            } else {
+                $hex = $color;
+                $color = '#' . $color;
+            }
+            $length = strlen($hex);
+            if ($length !== 3 && $length !== 6) {
+                return false;
+            }
+            if (!ctype_xdigit($hex)) {
+                return false;
+            }
+        }
+        return $color;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php
new file mode 100644
index 0000000..9c17505
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * Allows multiple validators to attempt to validate attribute.
+ *
+ * Composite is just what it sounds like: a composite of many validators.
+ * This means that multiple HTMLPurifier_AttrDef objects will have a whack
+ * at the string.  If one of them passes, that's what is returned.  This is
+ * especially useful for CSS values, which often are a choice between
+ * an enumerated set of predefined values or a flexible data type.
+ */
+class HTMLPurifier_AttrDef_CSS_Composite extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * List of objects that may process strings.
+     * @type HTMLPurifier_AttrDef[]
+     * @todo Make protected
+     */
+    public $defs;
+
+    /**
+     * @param HTMLPurifier_AttrDef[] $defs List of HTMLPurifier_AttrDef objects
+     */
+    public function __construct($defs)
+    {
+        $this->defs = $defs;
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        foreach ($this->defs as $i => $def) {
+            $result = $this->defs[$i]->validate($string, $config, $context);
+            if ($result !== false) {
+                return $result;
+            }
+        }
+        return false;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
new file mode 100644
index 0000000..9d77cc9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * Decorator which enables CSS properties to be disabled for specific elements.
+ */
+class HTMLPurifier_AttrDef_CSS_DenyElementDecorator extends HTMLPurifier_AttrDef
+{
+    /**
+     * @type HTMLPurifier_AttrDef
+     */
+    public $def;
+    /**
+     * @type string
+     */
+    public $element;
+
+    /**
+     * @param HTMLPurifier_AttrDef $def Definition to wrap
+     * @param string $element Element to deny
+     */
+    public function __construct($def, $element)
+    {
+        $this->def = $def;
+        $this->element = $element;
+    }
+
+    /**
+     * Checks if CurrentToken is set and equal to $this->element
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $token = $context->get('CurrentToken', true);
+        if ($token && $token->name == $this->element) {
+            return false;
+        }
+        return $this->def->validate($string, $config, $context);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php
new file mode 100644
index 0000000..bde4c33
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * Microsoft's proprietary filter: CSS property
+ * @note Currently supports the alpha filter. In the future, this will
+ *       probably need an extensible framework
+ */
+class HTMLPurifier_AttrDef_CSS_Filter extends HTMLPurifier_AttrDef
+{
+    /**
+     * @type HTMLPurifier_AttrDef_Integer
+     */
+    protected $intValidator;
+
+    public function __construct()
+    {
+        $this->intValidator = new HTMLPurifier_AttrDef_Integer();
+    }
+
+    /**
+     * @param string $value
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($value, $config, $context)
+    {
+        $value = $this->parseCDATA($value);
+        if ($value === 'none') {
+            return $value;
+        }
+        // if we looped this we could support multiple filters
+        $function_length = strcspn($value, '(');
+        $function = trim(substr($value, 0, $function_length));
+        if ($function !== 'alpha' &&
+            $function !== 'Alpha' &&
+            $function !== 'progid:DXImageTransform.Microsoft.Alpha'
+        ) {
+            return false;
+        }
+        $cursor = $function_length + 1;
+        $parameters_length = strcspn($value, ')', $cursor);
+        $parameters = substr($value, $cursor, $parameters_length);
+        $params = explode(',', $parameters);
+        $ret_params = array();
+        $lookup = array();
+        foreach ($params as $param) {
+            list($key, $value) = explode('=', $param);
+            $key = trim($key);
+            $value = trim($value);
+            if (isset($lookup[$key])) {
+                continue;
+            }
+            if ($key !== 'opacity') {
+                continue;
+            }
+            $value = $this->intValidator->validate($value, $config, $context);
+            if ($value === false) {
+                continue;
+            }
+            $int = (int)$value;
+            if ($int > 100) {
+                $value = '100';
+            }
+            if ($int < 0) {
+                $value = '0';
+            }
+            $ret_params[] = "$key=$value";
+            $lookup[$key] = true;
+        }
+        $ret_parameters = implode(',', $ret_params);
+        $ret_function = "$function($ret_parameters)";
+        return $ret_function;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php
new file mode 100644
index 0000000..579b97e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php
@@ -0,0 +1,176 @@
+<?php
+
+/**
+ * Validates shorthand CSS property font.
+ */
+class HTMLPurifier_AttrDef_CSS_Font extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Local copy of validators
+     * @type HTMLPurifier_AttrDef[]
+     * @note If we moved specific CSS property definitions to their own
+     *       classes instead of having them be assembled at run time by
+     *       CSSDefinition, this wouldn't be necessary.  We'd instantiate
+     *       our own copies.
+     */
+    protected $info = array();
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function __construct($config)
+    {
+        $def = $config->getCSSDefinition();
+        $this->info['font-style'] = $def->info['font-style'];
+        $this->info['font-variant'] = $def->info['font-variant'];
+        $this->info['font-weight'] = $def->info['font-weight'];
+        $this->info['font-size'] = $def->info['font-size'];
+        $this->info['line-height'] = $def->info['line-height'];
+        $this->info['font-family'] = $def->info['font-family'];
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        static $system_fonts = array(
+            'caption' => true,
+            'icon' => true,
+            'menu' => true,
+            'message-box' => true,
+            'small-caption' => true,
+            'status-bar' => true
+        );
+
+        // regular pre-processing
+        $string = $this->parseCDATA($string);
+        if ($string === '') {
+            return false;
+        }
+
+        // check if it's one of the keywords
+        $lowercase_string = strtolower($string);
+        if (isset($system_fonts[$lowercase_string])) {
+            return $lowercase_string;
+        }
+
+        $bits = explode(' ', $string); // bits to process
+        $stage = 0; // this indicates what we're looking for
+        $caught = array(); // which stage 0 properties have we caught?
+        $stage_1 = array('font-style', 'font-variant', 'font-weight');
+        $final = ''; // output
+
+        for ($i = 0, $size = count($bits); $i < $size; $i++) {
+            if ($bits[$i] === '') {
+                continue;
+            }
+            switch ($stage) {
+                case 0: // attempting to catch font-style, font-variant or font-weight
+                    foreach ($stage_1 as $validator_name) {
+                        if (isset($caught[$validator_name])) {
+                            continue;
+                        }
+                        $r = $this->info[$validator_name]->validate(
+                            $bits[$i],
+                            $config,
+                            $context
+                        );
+                        if ($r !== false) {
+                            $final .= $r . ' ';
+                            $caught[$validator_name] = true;
+                            break;
+                        }
+                    }
+                    // all three caught, continue on
+                    if (count($caught) >= 3) {
+                        $stage = 1;
+                    }
+                    if ($r !== false) {
+                        break;
+                    }
+                case 1: // attempting to catch font-size and perhaps line-height
+                    $found_slash = false;
+                    if (strpos($bits[$i], '/') !== false) {
+                        list($font_size, $line_height) =
+                            explode('/', $bits[$i]);
+                        if ($line_height === '') {
+                            // ooh, there's a space after the slash!
+                            $line_height = false;
+                            $found_slash = true;
+                        }
+                    } else {
+                        $font_size = $bits[$i];
+                        $line_height = false;
+                    }
+                    $r = $this->info['font-size']->validate(
+                        $font_size,
+                        $config,
+                        $context
+                    );
+                    if ($r !== false) {
+                        $final .= $r;
+                        // attempt to catch line-height
+                        if ($line_height === false) {
+                            // we need to scroll forward
+                            for ($j = $i + 1; $j < $size; $j++) {
+                                if ($bits[$j] === '') {
+                                    continue;
+                                }
+                                if ($bits[$j] === '/') {
+                                    if ($found_slash) {
+                                        return false;
+                                    } else {
+                                        $found_slash = true;
+                                        continue;
+                                    }
+                                }
+                                $line_height = $bits[$j];
+                                break;
+                            }
+                        } else {
+                            // slash already found
+                            $found_slash = true;
+                            $j = $i;
+                        }
+                        if ($found_slash) {
+                            $i = $j;
+                            $r = $this->info['line-height']->validate(
+                                $line_height,
+                                $config,
+                                $context
+                            );
+                            if ($r !== false) {
+                                $final .= '/' . $r;
+                            }
+                        }
+                        $final .= ' ';
+                        $stage = 2;
+                        break;
+                    }
+                    return false;
+                case 2: // attempting to catch font-family
+                    $font_family =
+                        implode(' ', array_slice($bits, $i, $size - $i));
+                    $r = $this->info['font-family']->validate(
+                        $font_family,
+                        $config,
+                        $context
+                    );
+                    if ($r !== false) {
+                        $final .= $r . ' ';
+                        // processing completed successfully
+                        return rtrim($final);
+                    }
+                    return false;
+            }
+        }
+        return false;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php
new file mode 100644
index 0000000..74e24c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php
@@ -0,0 +1,219 @@
+<?php
+
+/**
+ * Validates a font family list according to CSS spec
+ */
+class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef
+{
+
+    protected $mask = null;
+
+    public function __construct()
+    {
+        $this->mask = '_- ';
+        for ($c = 'a'; $c <= 'z'; $c++) {
+            $this->mask .= $c;
+        }
+        for ($c = 'A'; $c <= 'Z'; $c++) {
+            $this->mask .= $c;
+        }
+        for ($c = '0'; $c <= '9'; $c++) {
+            $this->mask .= $c;
+        } // cast-y, but should be fine
+        // special bytes used by UTF-8
+        for ($i = 0x80; $i <= 0xFF; $i++) {
+            // We don't bother excluding invalid bytes in this range,
+            // because the our restriction of well-formed UTF-8 will
+            // prevent these from ever occurring.
+            $this->mask .= chr($i);
+        }
+
+        /*
+            PHP's internal strcspn implementation is
+            O(length of string * length of mask), making it inefficient
+            for large masks.  However, it's still faster than
+            preg_match 8)
+          for (p = s1;;) {
+            spanp = s2;
+            do {
+              if (*spanp == c || p == s1_end) {
+                return p - s1;
+              }
+            } while (spanp++ < (s2_end - 1));
+            c = *++p;
+          }
+         */
+        // possible optimization: invert the mask.
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        static $generic_names = array(
+            'serif' => true,
+            'sans-serif' => true,
+            'monospace' => true,
+            'fantasy' => true,
+            'cursive' => true
+        );
+        $allowed_fonts = $config->get('CSS.AllowedFonts');
+
+        // assume that no font names contain commas in them
+        $fonts = explode(',', $string);
+        $final = '';
+        foreach ($fonts as $font) {
+            $font = trim($font);
+            if ($font === '') {
+                continue;
+            }
+            // match a generic name
+            if (isset($generic_names[$font])) {
+                if ($allowed_fonts === null || isset($allowed_fonts[$font])) {
+                    $final .= $font . ', ';
+                }
+                continue;
+            }
+            // match a quoted name
+            if ($font[0] === '"' || $font[0] === "'") {
+                $length = strlen($font);
+                if ($length <= 2) {
+                    continue;
+                }
+                $quote = $font[0];
+                if ($font[$length - 1] !== $quote) {
+                    continue;
+                }
+                $font = substr($font, 1, $length - 2);
+            }
+
+            $font = $this->expandCSSEscape($font);
+
+            // $font is a pure representation of the font name
+
+            if ($allowed_fonts !== null && !isset($allowed_fonts[$font])) {
+                continue;
+            }
+
+            if (ctype_alnum($font) && $font !== '') {
+                // very simple font, allow it in unharmed
+                $final .= $font . ', ';
+                continue;
+            }
+
+            // bugger out on whitespace.  form feed (0C) really
+            // shouldn't show up regardless
+            $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font);
+
+            // Here, there are various classes of characters which need
+            // to be treated differently:
+            //  - Alphanumeric characters are essentially safe.  We
+            //    handled these above.
+            //  - Spaces require quoting, though most parsers will do
+            //    the right thing if there aren't any characters that
+            //    can be misinterpreted
+            //  - Dashes rarely occur, but they fairly unproblematic
+            //    for parsing/rendering purposes.
+            //  The above characters cover the majority of Western font
+            //  names.
+            //  - Arbitrary Unicode characters not in ASCII.  Because
+            //    most parsers give little thought to Unicode, treatment
+            //    of these codepoints is basically uniform, even for
+            //    punctuation-like codepoints.  These characters can
+            //    show up in non-Western pages and are supported by most
+            //    major browsers, for example: "MS 明朝" is a
+            //    legitimate font-name
+            //    <http://ja.wikipedia.org/wiki/MS_明朝>.  See
+            //    the CSS3 spec for more examples:
+            //    <http://www.w3.org/TR/2011/WD-css3-fonts-20110324/localizedfamilynames.png>
+            //    You can see live samples of these on the Internet:
+            //    <http://www.google.co.jp/search?q=font-family+MS+明朝|ゴシック>
+            //    However, most of these fonts have ASCII equivalents:
+            //    for example, 'MS Mincho', and it's considered
+            //    professional to use ASCII font names instead of
+            //    Unicode font names.  Thanks Takeshi Terada for
+            //    providing this information.
+            //  The following characters, to my knowledge, have not been
+            //  used to name font names.
+            //  - Single quote.  While theoretically you might find a
+            //    font name that has a single quote in its name (serving
+            //    as an apostrophe, e.g. Dave's Scribble), I haven't
+            //    been able to find any actual examples of this.
+            //    Internet Explorer's cssText translation (which I
+            //    believe is invoked by innerHTML) normalizes any
+            //    quoting to single quotes, and fails to escape single
+            //    quotes.  (Note that this is not IE's behavior for all
+            //    CSS properties, just some sort of special casing for
+            //    font-family).  So a single quote *cannot* be used
+            //    safely in the font-family context if there will be an
+            //    innerHTML/cssText translation.  Note that Firefox 3.x
+            //    does this too.
+            //  - Double quote.  In IE, these get normalized to
+            //    single-quotes, no matter what the encoding.  (Fun
+            //    fact, in IE8, the 'content' CSS property gained
+            //    support, where they special cased to preserve encoded
+            //    double quotes, but still translate unadorned double
+            //    quotes into single quotes.)  So, because their
+            //    fixpoint behavior is identical to single quotes, they
+            //    cannot be allowed either.  Firefox 3.x displays
+            //    single-quote style behavior.
+            //  - Backslashes are reduced by one (so \\ -> \) every
+            //    iteration, so they cannot be used safely.  This shows
+            //    up in IE7, IE8 and FF3
+            //  - Semicolons, commas and backticks are handled properly.
+            //  - The rest of the ASCII punctuation is handled properly.
+            // We haven't checked what browsers do to unadorned
+            // versions, but this is not important as long as the
+            // browser doesn't /remove/ surrounding quotes (as IE does
+            // for HTML).
+            //
+            // With these results in hand, we conclude that there are
+            // various levels of safety:
+            //  - Paranoid: alphanumeric, spaces and dashes(?)
+            //  - International: Paranoid + non-ASCII Unicode
+            //  - Edgy: Everything except quotes, backslashes
+            //  - NoJS: Standards compliance, e.g. sod IE. Note that
+            //    with some judicious character escaping (since certain
+            //    types of escaping doesn't work) this is theoretically
+            //    OK as long as innerHTML/cssText is not called.
+            // We believe that international is a reasonable default
+            // (that we will implement now), and once we do more
+            // extensive research, we may feel comfortable with dropping
+            // it down to edgy.
+
+            // Edgy: alphanumeric, spaces, dashes, underscores and Unicode.  Use of
+            // str(c)spn assumes that the string was already well formed
+            // Unicode (which of course it is).
+            if (strspn($font, $this->mask) !== strlen($font)) {
+                continue;
+            }
+
+            // Historical:
+            // In the absence of innerHTML/cssText, these ugly
+            // transforms don't pose a security risk (as \\ and \"
+            // might--these escapes are not supported by most browsers).
+            // We could try to be clever and use single-quote wrapping
+            // when there is a double quote present, but I have choosen
+            // not to implement that.  (NOTE: you can reduce the amount
+            // of escapes by one depending on what quoting style you use)
+            // $font = str_replace('\\', '\\5C ', $font);
+            // $font = str_replace('"',  '\\22 ', $font);
+            // $font = str_replace("'",  '\\27 ', $font);
+
+            // font possibly with spaces, requires quoting
+            $final .= "'$font', ";
+        }
+        $final = rtrim($final, ', ');
+        if ($final === '') {
+            return false;
+        }
+        return $final;
+    }
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php
new file mode 100644
index 0000000..973002c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * Validates based on {ident} CSS grammar production
+ */
+class HTMLPurifier_AttrDef_CSS_Ident extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = trim($string);
+
+        // early abort: '' and '0' (strings that convert to false) are invalid
+        if (!$string) {
+            return false;
+        }
+
+        $pattern = '/^(-?[A-Za-z_][A-Za-z_\-0-9]*)$/';
+        if (!preg_match($pattern, $string)) {
+            return false;
+        }
+        return $string;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
new file mode 100644
index 0000000..ffc989f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * Decorator which enables !important to be used in CSS values.
+ */
+class HTMLPurifier_AttrDef_CSS_ImportantDecorator extends HTMLPurifier_AttrDef
+{
+    /**
+     * @type HTMLPurifier_AttrDef
+     */
+    public $def;
+    /**
+     * @type bool
+     */
+    public $allow;
+
+    /**
+     * @param HTMLPurifier_AttrDef $def Definition to wrap
+     * @param bool $allow Whether or not to allow !important
+     */
+    public function __construct($def, $allow = false)
+    {
+        $this->def = $def;
+        $this->allow = $allow;
+    }
+
+    /**
+     * Intercepts and removes !important if necessary
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        // test for ! and important tokens
+        $string = trim($string);
+        $is_important = false;
+        // :TODO: optimization: test directly for !important and ! important
+        if (strlen($string) >= 9 && substr($string, -9) === 'important') {
+            $temp = rtrim(substr($string, 0, -9));
+            // use a temp, because we might want to restore important
+            if (strlen($temp) >= 1 && substr($temp, -1) === '!') {
+                $string = rtrim(substr($temp, 0, -1));
+                $is_important = true;
+            }
+        }
+        $string = $this->def->validate($string, $config, $context);
+        if ($this->allow && $is_important) {
+            $string .= ' !important';
+        }
+        return $string;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php
new file mode 100644
index 0000000..f12453a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * Represents a Length as defined by CSS.
+ */
+class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @type HTMLPurifier_Length|string
+     */
+    protected $min;
+
+    /**
+     * @type HTMLPurifier_Length|string
+     */
+    protected $max;
+
+    /**
+     * @param HTMLPurifier_Length|string $min Minimum length, or null for no bound. String is also acceptable.
+     * @param HTMLPurifier_Length|string $max Maximum length, or null for no bound. String is also acceptable.
+     */
+    public function __construct($min = null, $max = null)
+    {
+        $this->min = $min !== null ? HTMLPurifier_Length::make($min) : null;
+        $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null;
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = $this->parseCDATA($string);
+
+        // Optimizations
+        if ($string === '') {
+            return false;
+        }
+        if ($string === '0') {
+            return '0';
+        }
+        if (strlen($string) === 1) {
+            return false;
+        }
+
+        $length = HTMLPurifier_Length::make($string);
+        if (!$length->isValid()) {
+            return false;
+        }
+
+        if ($this->min) {
+            $c = $length->compareTo($this->min);
+            if ($c === false) {
+                return false;
+            }
+            if ($c < 0) {
+                return false;
+            }
+        }
+        if ($this->max) {
+            $c = $length->compareTo($this->max);
+            if ($c === false) {
+                return false;
+            }
+            if ($c > 0) {
+                return false;
+            }
+        }
+        return $length->toString();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php
new file mode 100644
index 0000000..e74d426
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php
@@ -0,0 +1,112 @@
+<?php
+
+/**
+ * Validates shorthand CSS property list-style.
+ * @warning Does not support url tokens that have internal spaces.
+ */
+class HTMLPurifier_AttrDef_CSS_ListStyle extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Local copy of validators.
+     * @type HTMLPurifier_AttrDef[]
+     * @note See HTMLPurifier_AttrDef_CSS_Font::$info for a similar impl.
+     */
+    protected $info;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function __construct($config)
+    {
+        $def = $config->getCSSDefinition();
+        $this->info['list-style-type'] = $def->info['list-style-type'];
+        $this->info['list-style-position'] = $def->info['list-style-position'];
+        $this->info['list-style-image'] = $def->info['list-style-image'];
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        // regular pre-processing
+        $string = $this->parseCDATA($string);
+        if ($string === '') {
+            return false;
+        }
+
+        // assumes URI doesn't have spaces in it
+        $bits = explode(' ', strtolower($string)); // bits to process
+
+        $caught = array();
+        $caught['type'] = false;
+        $caught['position'] = false;
+        $caught['image'] = false;
+
+        $i = 0; // number of catches
+        $none = false;
+
+        foreach ($bits as $bit) {
+            if ($i >= 3) {
+                return;
+            } // optimization bit
+            if ($bit === '') {
+                continue;
+            }
+            foreach ($caught as $key => $status) {
+                if ($status !== false) {
+                    continue;
+                }
+                $r = $this->info['list-style-' . $key]->validate($bit, $config, $context);
+                if ($r === false) {
+                    continue;
+                }
+                if ($r === 'none') {
+                    if ($none) {
+                        continue;
+                    } else {
+                        $none = true;
+                    }
+                    if ($key == 'image') {
+                        continue;
+                    }
+                }
+                $caught[$key] = $r;
+                $i++;
+                break;
+            }
+        }
+
+        if (!$i) {
+            return false;
+        }
+
+        $ret = array();
+
+        // construct type
+        if ($caught['type']) {
+            $ret[] = $caught['type'];
+        }
+
+        // construct image
+        if ($caught['image']) {
+            $ret[] = $caught['image'];
+        }
+
+        // construct position
+        if ($caught['position']) {
+            $ret[] = $caught['position'];
+        }
+
+        if (empty($ret)) {
+            return false;
+        }
+        return implode(' ', $ret);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php
new file mode 100644
index 0000000..9f266cd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * Framework class for strings that involve multiple values.
+ *
+ * Certain CSS properties such as border-width and margin allow multiple
+ * lengths to be specified.  This class can take a vanilla border-width
+ * definition and multiply it, usually into a max of four.
+ *
+ * @note Even though the CSS specification isn't clear about it, inherit
+ *       can only be used alone: it will never manifest as part of a multi
+ *       shorthand declaration.  Thus, this class does not allow inherit.
+ */
+class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef
+{
+    /**
+     * Instance of component definition to defer validation to.
+     * @type HTMLPurifier_AttrDef
+     * @todo Make protected
+     */
+    public $single;
+
+    /**
+     * Max number of values allowed.
+     * @todo Make protected
+     */
+    public $max;
+
+    /**
+     * @param HTMLPurifier_AttrDef $single HTMLPurifier_AttrDef to multiply
+     * @param int $max Max number of values allowed (usually four)
+     */
+    public function __construct($single, $max = 4)
+    {
+        $this->single = $single;
+        $this->max = $max;
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = $this->parseCDATA($string);
+        if ($string === '') {
+            return false;
+        }
+        $parts = explode(' ', $string); // parseCDATA replaced \r, \t and \n
+        $length = count($parts);
+        $final = '';
+        for ($i = 0, $num = 0; $i < $length && $num < $this->max; $i++) {
+            if (ctype_space($parts[$i])) {
+                continue;
+            }
+            $result = $this->single->validate($parts[$i], $config, $context);
+            if ($result !== false) {
+                $final .= $result . ' ';
+                $num++;
+            }
+        }
+        if ($final === '') {
+            return false;
+        }
+        return rtrim($final);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php
new file mode 100644
index 0000000..8edc159
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * Validates a number as defined by the CSS spec.
+ */
+class HTMLPurifier_AttrDef_CSS_Number extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Indicates whether or not only positive values are allowed.
+     * @type bool
+     */
+    protected $non_negative = false;
+
+    /**
+     * @param bool $non_negative indicates whether negatives are forbidden
+     */
+    public function __construct($non_negative = false)
+    {
+        $this->non_negative = $non_negative;
+    }
+
+    /**
+     * @param string $number
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string|bool
+     * @warning Some contexts do not pass $config, $context. These
+     *          variables should not be used without checking HTMLPurifier_Length
+     */
+    public function validate($number, $config, $context)
+    {
+        $number = $this->parseCDATA($number);
+
+        if ($number === '') {
+            return false;
+        }
+        if ($number === '0') {
+            return '0';
+        }
+
+        $sign = '';
+        switch ($number[0]) {
+            case '-':
+                if ($this->non_negative) {
+                    return false;
+                }
+                $sign = '-';
+            case '+':
+                $number = substr($number, 1);
+        }
+
+        if (ctype_digit($number)) {
+            $number = ltrim($number, '0');
+            return $number ? $sign . $number : '0';
+        }
+
+        // Period is the only non-numeric character allowed
+        if (strpos($number, '.') === false) {
+            return false;
+        }
+
+        list($left, $right) = explode('.', $number, 2);
+
+        if ($left === '' && $right === '') {
+            return false;
+        }
+        if ($left !== '' && !ctype_digit($left)) {
+            return false;
+        }
+
+        $left = ltrim($left, '0');
+        $right = rtrim($right, '0');
+
+        if ($right === '') {
+            return $left ? $sign . $left : '0';
+        } elseif (!ctype_digit($right)) {
+            return false;
+        }
+        return $sign . $left . '.' . $right;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php
new file mode 100644
index 0000000..f0f25c5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * Validates a Percentage as defined by the CSS spec.
+ */
+class HTMLPurifier_AttrDef_CSS_Percentage extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Instance to defer number validation to.
+     * @type HTMLPurifier_AttrDef_CSS_Number
+     */
+    protected $number_def;
+
+    /**
+     * @param bool $non_negative Whether to forbid negative values
+     */
+    public function __construct($non_negative = false)
+    {
+        $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = $this->parseCDATA($string);
+
+        if ($string === '') {
+            return false;
+        }
+        $length = strlen($string);
+        if ($length === 1) {
+            return false;
+        }
+        if ($string[$length - 1] !== '%') {
+            return false;
+        }
+
+        $number = substr($string, 0, $length - 1);
+        $number = $this->number_def->validate($number, $config, $context);
+
+        if ($number === false) {
+            return false;
+        }
+        return "$number%";
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php
new file mode 100644
index 0000000..5fd4b7f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * Validates the value for the CSS property text-decoration
+ * @note This class could be generalized into a version that acts sort of
+ *       like Enum except you can compound the allowed values.
+ */
+class HTMLPurifier_AttrDef_CSS_TextDecoration extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        static $allowed_values = array(
+            'line-through' => true,
+            'overline' => true,
+            'underline' => true,
+        );
+
+        $string = strtolower($this->parseCDATA($string));
+
+        if ($string === 'none') {
+            return $string;
+        }
+
+        $parts = explode(' ', $string);
+        $final = '';
+        foreach ($parts as $part) {
+            if (isset($allowed_values[$part])) {
+                $final .= $part . ' ';
+            }
+        }
+        $final = rtrim($final);
+        if ($final === '') {
+            return false;
+        }
+        return $final;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php
new file mode 100644
index 0000000..f943423
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * Validates a URI in CSS syntax, which uses url('http://example.com')
+ * @note While theoretically speaking a URI in a CSS document could
+ *       be non-embedded, as of CSS2 there is no such usage so we're
+ *       generalizing it. This may need to be changed in the future.
+ * @warning Since HTMLPurifier_AttrDef_CSS blindly uses semicolons as
+ *          the separator, you cannot put a literal semicolon in
+ *          in the URI. Try percent encoding it, in that case.
+ */
+class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI
+{
+
+    public function __construct()
+    {
+        parent::__construct(true); // always embedded
+    }
+
+    /**
+     * @param string $uri_string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($uri_string, $config, $context)
+    {
+        // parse the URI out of the string and then pass it onto
+        // the parent object
+
+        $uri_string = $this->parseCDATA($uri_string);
+        if (strpos($uri_string, 'url(') !== 0) {
+            return false;
+        }
+        $uri_string = substr($uri_string, 4);
+        $new_length = strlen($uri_string) - 1;
+        if ($uri_string[$new_length] != ')') {
+            return false;
+        }
+        $uri = trim(substr($uri_string, 0, $new_length));
+
+        if (!empty($uri) && ($uri[0] == "'" || $uri[0] == '"')) {
+            $quote = $uri[0];
+            $new_length = strlen($uri) - 1;
+            if ($uri[$new_length] !== $quote) {
+                return false;
+            }
+            $uri = substr($uri, 1, $new_length - 1);
+        }
+
+        $uri = $this->expandCSSEscape($uri);
+
+        $result = parent::validate($uri, $config, $context);
+
+        if ($result === false) {
+            return false;
+        }
+
+        // extra sanity check; should have been done by URI
+        $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "", $result);
+
+        // suspicious characters are ()'; we're going to percent encode
+        // them for safety.
+        $result = str_replace(array('(', ')', "'"), array('%28', '%29', '%27'), $result);
+
+        // there's an extra bug where ampersands lose their escaping on
+        // an innerHTML cycle, so a very unlucky query parameter could
+        // then change the meaning of the URL.  Unfortunately, there's
+        // not much we can do about that...
+        return "url(\"$result\")";
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php
new file mode 100644
index 0000000..6698a00
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * Dummy AttrDef that mimics another AttrDef, BUT it generates clones
+ * with make.
+ */
+class HTMLPurifier_AttrDef_Clone extends HTMLPurifier_AttrDef
+{
+    /**
+     * What we're cloning.
+     * @type HTMLPurifier_AttrDef
+     */
+    protected $clone;
+
+    /**
+     * @param HTMLPurifier_AttrDef $clone
+     */
+    public function __construct($clone)
+    {
+        $this->clone = $clone;
+    }
+
+    /**
+     * @param string $v
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($v, $config, $context)
+    {
+        return $this->clone->validate($v, $config, $context);
+    }
+
+    /**
+     * @param string $string
+     * @return HTMLPurifier_AttrDef
+     */
+    public function make($string)
+    {
+        return clone $this->clone;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php
new file mode 100644
index 0000000..8abda7f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php
@@ -0,0 +1,73 @@
+<?php
+
+// Enum = Enumerated
+/**
+ * Validates a keyword against a list of valid values.
+ * @warning The case-insensitive compare of this function uses PHP's
+ *          built-in strtolower and ctype_lower functions, which may
+ *          cause problems with international comparisons
+ */
+class HTMLPurifier_AttrDef_Enum extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Lookup table of valid values.
+     * @type array
+     * @todo Make protected
+     */
+    public $valid_values = array();
+
+    /**
+     * Bool indicating whether or not enumeration is case sensitive.
+     * @note In general this is always case insensitive.
+     */
+    protected $case_sensitive = false; // values according to W3C spec
+
+    /**
+     * @param array $valid_values List of valid values
+     * @param bool $case_sensitive Whether or not case sensitive
+     */
+    public function __construct($valid_values = array(), $case_sensitive = false)
+    {
+        $this->valid_values = array_flip($valid_values);
+        $this->case_sensitive = $case_sensitive;
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = trim($string);
+        if (!$this->case_sensitive) {
+            // we may want to do full case-insensitive libraries
+            $string = ctype_lower($string) ? $string : strtolower($string);
+        }
+        $result = isset($this->valid_values[$string]);
+
+        return $result ? $string : false;
+    }
+
+    /**
+     * @param string $string In form of comma-delimited list of case-insensitive
+     *      valid values. Example: "foo,bar,baz". Prepend "s:" to make
+     *      case sensitive
+     * @return HTMLPurifier_AttrDef_Enum
+     */
+    public function make($string)
+    {
+        if (strlen($string) > 2 && $string[0] == 's' && $string[1] == ':') {
+            $string = substr($string, 2);
+            $sensitive = true;
+        } else {
+            $sensitive = false;
+        }
+        $values = explode(',', $string);
+        return new HTMLPurifier_AttrDef_Enum($values, $sensitive);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php
new file mode 100644
index 0000000..036a240
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * Validates a boolean attribute
+ */
+class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @type bool
+     */
+    protected $name;
+
+    /**
+     * @type bool
+     */
+    public $minimized = true;
+
+    /**
+     * @param bool $name
+     */
+    public function __construct($name = false)
+    {
+        $this->name = $name;
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        if (empty($string)) {
+            return false;
+        }
+        return $this->name;
+    }
+
+    /**
+     * @param string $string Name of attribute
+     * @return HTMLPurifier_AttrDef_HTML_Bool
+     */
+    public function make($string)
+    {
+        return new HTMLPurifier_AttrDef_HTML_Bool($string);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php
new file mode 100644
index 0000000..d501348
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * Implements special behavior for class attribute (normally NMTOKENS)
+ */
+class HTMLPurifier_AttrDef_HTML_Class extends HTMLPurifier_AttrDef_HTML_Nmtokens
+{
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    protected function split($string, $config, $context)
+    {
+        // really, this twiddle should be lazy loaded
+        $name = $config->getDefinition('HTML')->doctype->name;
+        if ($name == "XHTML 1.1" || $name == "XHTML 2.0") {
+            return parent::split($string, $config, $context);
+        } else {
+            return preg_split('/\s+/', $string);
+        }
+    }
+
+    /**
+     * @param array $tokens
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    protected function filter($tokens, $config, $context)
+    {
+        $allowed = $config->get('Attr.AllowedClasses');
+        $forbidden = $config->get('Attr.ForbiddenClasses');
+        $ret = array();
+        foreach ($tokens as $token) {
+            if (($allowed === null || isset($allowed[$token])) &&
+                !isset($forbidden[$token]) &&
+                // We need this O(n) check because of PHP's array
+                // implementation that casts -0 to 0.
+                !in_array($token, $ret, true)
+            ) {
+                $ret[] = $token;
+            }
+        }
+        return $ret;
+    }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php
new file mode 100644
index 0000000..946ebb7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * Validates a color according to the HTML spec.
+ */
+class HTMLPurifier_AttrDef_HTML_Color extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        static $colors = null;
+        if ($colors === null) {
+            $colors = $config->get('Core.ColorKeywords');
+        }
+
+        $string = trim($string);
+
+        if (empty($string)) {
+            return false;
+        }
+        $lower = strtolower($string);
+        if (isset($colors[$lower])) {
+            return $colors[$lower];
+        }
+        if ($string[0] === '#') {
+            $hex = substr($string, 1);
+        } else {
+            $hex = $string;
+        }
+
+        $length = strlen($hex);
+        if ($length !== 3 && $length !== 6) {
+            return false;
+        }
+        if (!ctype_xdigit($hex)) {
+            return false;
+        }
+        if ($length === 3) {
+            $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
+        }
+        return "#$hex";
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php
new file mode 100644
index 0000000..d79ba12
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * Special-case enum attribute definition that lazy loads allowed frame targets
+ */
+class HTMLPurifier_AttrDef_HTML_FrameTarget extends HTMLPurifier_AttrDef_Enum
+{
+
+    /**
+     * @type array
+     */
+    public $valid_values = false; // uninitialized value
+
+    /**
+     * @type bool
+     */
+    protected $case_sensitive = false;
+
+    public function __construct()
+    {
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        if ($this->valid_values === false) {
+            $this->valid_values = $config->get('Attr.AllowedFrameTargets');
+        }
+        return parent::validate($string, $config, $context);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php
new file mode 100644
index 0000000..3d86efb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php
@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * Validates the HTML attribute ID.
+ * @warning Even though this is the id processor, it
+ *          will ignore the directive Attr:IDBlacklist, since it will only
+ *          go according to the ID accumulator. Since the accumulator is
+ *          automatically generated, it will have already absorbed the
+ *          blacklist. If you're hacking around, make sure you use load()!
+ */
+
+class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef
+{
+
+    // selector is NOT a valid thing to use for IDREFs, because IDREFs
+    // *must* target IDs that exist, whereas selector #ids do not.
+
+    /**
+     * Determines whether or not we're validating an ID in a CSS
+     * selector context.
+     * @type bool
+     */
+    protected $selector;
+
+    /**
+     * @param bool $selector
+     */
+    public function __construct($selector = false)
+    {
+        $this->selector = $selector;
+    }
+
+    /**
+     * @param string $id
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($id, $config, $context)
+    {
+        if (!$this->selector && !$config->get('Attr.EnableID')) {
+            return false;
+        }
+
+        $id = trim($id); // trim it first
+
+        if ($id === '') {
+            return false;
+        }
+
+        $prefix = $config->get('Attr.IDPrefix');
+        if ($prefix !== '') {
+            $prefix .= $config->get('Attr.IDPrefixLocal');
+            // prevent re-appending the prefix
+            if (strpos($id, $prefix) !== 0) {
+                $id = $prefix . $id;
+            }
+        } elseif ($config->get('Attr.IDPrefixLocal') !== '') {
+            trigger_error(
+                '%Attr.IDPrefixLocal cannot be used unless ' .
+                '%Attr.IDPrefix is set',
+                E_USER_WARNING
+            );
+        }
+
+        if (!$this->selector) {
+            $id_accumulator =& $context->get('IDAccumulator');
+            if (isset($id_accumulator->ids[$id])) {
+                return false;
+            }
+        }
+
+        // we purposely avoid using regex, hopefully this is faster
+
+        if (ctype_alpha($id)) {
+            $result = true;
+        } else {
+            if (!ctype_alpha(@$id[0])) {
+                return false;
+            }
+            // primitive style of regexps, I suppose
+            $trim = trim(
+                $id,
+                'A..Za..z0..9:-._'
+            );
+            $result = ($trim === '');
+        }
+
+        $regexp = $config->get('Attr.IDBlacklistRegexp');
+        if ($regexp && preg_match($regexp, $id)) {
+            return false;
+        }
+
+        if (!$this->selector && $result) {
+            $id_accumulator->add($id);
+        }
+
+        // if no change was made to the ID, return the result
+        // else, return the new id if stripping whitespace made it
+        //     valid, or return false.
+        return $result ? $id : false;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php
new file mode 100644
index 0000000..1c4006f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * Validates the HTML type length (not to be confused with CSS's length).
+ *
+ * This accepts integer pixels or percentages as lengths for certain
+ * HTML attributes.
+ */
+
+class HTMLPurifier_AttrDef_HTML_Length extends HTMLPurifier_AttrDef_HTML_Pixels
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = trim($string);
+        if ($string === '') {
+            return false;
+        }
+
+        $parent_result = parent::validate($string, $config, $context);
+        if ($parent_result !== false) {
+            return $parent_result;
+        }
+
+        $length = strlen($string);
+        $last_char = $string[$length - 1];
+
+        if ($last_char !== '%') {
+            return false;
+        }
+
+        $points = substr($string, 0, $length - 1);
+
+        if (!is_numeric($points)) {
+            return false;
+        }
+
+        $points = (int)$points;
+
+        if ($points < 0) {
+            return '0%';
+        }
+        if ($points > 100) {
+            return '100%';
+        }
+        return ((string)$points) . '%';
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php
new file mode 100644
index 0000000..63fa04c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * Validates a rel/rev link attribute against a directive of allowed values
+ * @note We cannot use Enum because link types allow multiple
+ *       values.
+ * @note Assumes link types are ASCII text
+ */
+class HTMLPurifier_AttrDef_HTML_LinkTypes extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Name config attribute to pull.
+     * @type string
+     */
+    protected $name;
+
+    /**
+     * @param string $name
+     */
+    public function __construct($name)
+    {
+        $configLookup = array(
+            'rel' => 'AllowedRel',
+            'rev' => 'AllowedRev'
+        );
+        if (!isset($configLookup[$name])) {
+            trigger_error(
+                'Unrecognized attribute name for link ' .
+                'relationship.',
+                E_USER_ERROR
+            );
+            return;
+        }
+        $this->name = $configLookup[$name];
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $allowed = $config->get('Attr.' . $this->name);
+        if (empty($allowed)) {
+            return false;
+        }
+
+        $string = $this->parseCDATA($string);
+        $parts = explode(' ', $string);
+
+        // lookup to prevent duplicates
+        $ret_lookup = array();
+        foreach ($parts as $part) {
+            $part = strtolower(trim($part));
+            if (!isset($allowed[$part])) {
+                continue;
+            }
+            $ret_lookup[$part] = true;
+        }
+
+        if (empty($ret_lookup)) {
+            return false;
+        }
+        $string = implode(' ', array_keys($ret_lookup));
+        return $string;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php
new file mode 100644
index 0000000..bbb20f2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * Validates a MultiLength as defined by the HTML spec.
+ *
+ * A multilength is either a integer (pixel count), a percentage, or
+ * a relative number.
+ */
+class HTMLPurifier_AttrDef_HTML_MultiLength extends HTMLPurifier_AttrDef_HTML_Length
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = trim($string);
+        if ($string === '') {
+            return false;
+        }
+
+        $parent_result = parent::validate($string, $config, $context);
+        if ($parent_result !== false) {
+            return $parent_result;
+        }
+
+        $length = strlen($string);
+        $last_char = $string[$length - 1];
+
+        if ($last_char !== '*') {
+            return false;
+        }
+
+        $int = substr($string, 0, $length - 1);
+
+        if ($int == '') {
+            return '*';
+        }
+        if (!is_numeric($int)) {
+            return false;
+        }
+
+        $int = (int)$int;
+        if ($int < 0) {
+            return false;
+        }
+        if ($int == 0) {
+            return '0';
+        }
+        if ($int == 1) {
+            return '*';
+        }
+        return ((string)$int) . '*';
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php
new file mode 100644
index 0000000..f79683b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * Validates contents based on NMTOKENS attribute type.
+ */
+class HTMLPurifier_AttrDef_HTML_Nmtokens extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = trim($string);
+
+        // early abort: '' and '0' (strings that convert to false) are invalid
+        if (!$string) {
+            return false;
+        }
+
+        $tokens = $this->split($string, $config, $context);
+        $tokens = $this->filter($tokens, $config, $context);
+        if (empty($tokens)) {
+            return false;
+        }
+        return implode(' ', $tokens);
+    }
+
+    /**
+     * Splits a space separated list of tokens into its constituent parts.
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    protected function split($string, $config, $context)
+    {
+        // OPTIMIZABLE!
+        // do the preg_match, capture all subpatterns for reformulation
+
+        // we don't support U+00A1 and up codepoints or
+        // escaping because I don't know how to do that with regexps
+        // and plus it would complicate optimization efforts (you never
+        // see that anyway).
+        $pattern = '/(?:(?<=\s)|\A)' . // look behind for space or string start
+            '((?:--|-?[A-Za-z_])[A-Za-z_\-0-9]*)' .
+            '(?:(?=\s)|\z)/'; // look ahead for space or string end
+        preg_match_all($pattern, $string, $matches);
+        return $matches[1];
+    }
+
+    /**
+     * Template method for removing certain tokens based on arbitrary criteria.
+     * @note If we wanted to be really functional, we'd do an array_filter
+     *       with a callback. But... we're not.
+     * @param array $tokens
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    protected function filter($tokens, $config, $context)
+    {
+        return $tokens;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php
new file mode 100644
index 0000000..a1d019e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * Validates an integer representation of pixels according to the HTML spec.
+ */
+class HTMLPurifier_AttrDef_HTML_Pixels extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @type int
+     */
+    protected $max;
+
+    /**
+     * @param int $max
+     */
+    public function __construct($max = null)
+    {
+        $this->max = $max;
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = trim($string);
+        if ($string === '0') {
+            return $string;
+        }
+        if ($string === '') {
+            return false;
+        }
+        $length = strlen($string);
+        if (substr($string, $length - 2) == 'px') {
+            $string = substr($string, 0, $length - 2);
+        }
+        if (!is_numeric($string)) {
+            return false;
+        }
+        $int = (int)$string;
+
+        if ($int < 0) {
+            return '0';
+        }
+
+        // upper-bound value, extremely high values can
+        // crash operating systems, see <http://ha.ckers.org/imagecrash.html>
+        // WARNING, above link WILL crash you if you're using Windows
+
+        if ($this->max !== null && $int > $this->max) {
+            return (string)$this->max;
+        }
+        return (string)$int;
+    }
+
+    /**
+     * @param string $string
+     * @return HTMLPurifier_AttrDef
+     */
+    public function make($string)
+    {
+        if ($string === '') {
+            $max = null;
+        } else {
+            $max = (int)$string;
+        }
+        $class = get_class($this);
+        return new $class($max);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php
new file mode 100644
index 0000000..400e707
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php
@@ -0,0 +1,91 @@
+<?php
+
+/**
+ * Validates an integer.
+ * @note While this class was modeled off the CSS definition, no currently
+ *       allowed CSS uses this type.  The properties that do are: widows,
+ *       orphans, z-index, counter-increment, counter-reset.  Some of the
+ *       HTML attributes, however, find use for a non-negative version of this.
+ */
+class HTMLPurifier_AttrDef_Integer extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Whether or not negative values are allowed.
+     * @type bool
+     */
+    protected $negative = true;
+
+    /**
+     * Whether or not zero is allowed.
+     * @type bool
+     */
+    protected $zero = true;
+
+    /**
+     * Whether or not positive values are allowed.
+     * @type bool
+     */
+    protected $positive = true;
+
+    /**
+     * @param $negative Bool indicating whether or not negative values are allowed
+     * @param $zero Bool indicating whether or not zero is allowed
+     * @param $positive Bool indicating whether or not positive values are allowed
+     */
+    public function __construct($negative = true, $zero = true, $positive = true)
+    {
+        $this->negative = $negative;
+        $this->zero = $zero;
+        $this->positive = $positive;
+    }
+
+    /**
+     * @param string $integer
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($integer, $config, $context)
+    {
+        $integer = $this->parseCDATA($integer);
+        if ($integer === '') {
+            return false;
+        }
+
+        // we could possibly simply typecast it to integer, but there are
+        // certain fringe cases that must not return an integer.
+
+        // clip leading sign
+        if ($this->negative && $integer[0] === '-') {
+            $digits = substr($integer, 1);
+            if ($digits === '0') {
+                $integer = '0';
+            } // rm minus sign for zero
+        } elseif ($this->positive && $integer[0] === '+') {
+            $digits = $integer = substr($integer, 1); // rm unnecessary plus
+        } else {
+            $digits = $integer;
+        }
+
+        // test if it's numeric
+        if (!ctype_digit($digits)) {
+            return false;
+        }
+
+        // perform scope tests
+        if (!$this->zero && $integer == 0) {
+            return false;
+        }
+        if (!$this->positive && $integer > 0) {
+            return false;
+        }
+        if (!$this->negative && $integer < 0) {
+            return false;
+        }
+
+        return $integer;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php
new file mode 100644
index 0000000..2a55cea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * Validates the HTML attribute lang, effectively a language code.
+ * @note Built according to RFC 3066, which obsoleted RFC 1766
+ */
+class HTMLPurifier_AttrDef_Lang extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $string = trim($string);
+        if (!$string) {
+            return false;
+        }
+
+        $subtags = explode('-', $string);
+        $num_subtags = count($subtags);
+
+        if ($num_subtags == 0) { // sanity check
+            return false;
+        }
+
+        // process primary subtag : $subtags[0]
+        $length = strlen($subtags[0]);
+        switch ($length) {
+            case 0:
+                return false;
+            case 1:
+                if (!($subtags[0] == 'x' || $subtags[0] == 'i')) {
+                    return false;
+                }
+                break;
+            case 2:
+            case 3:
+                if (!ctype_alpha($subtags[0])) {
+                    return false;
+                } elseif (!ctype_lower($subtags[0])) {
+                    $subtags[0] = strtolower($subtags[0]);
+                }
+                break;
+            default:
+                return false;
+        }
+
+        $new_string = $subtags[0];
+        if ($num_subtags == 1) {
+            return $new_string;
+        }
+
+        // process second subtag : $subtags[1]
+        $length = strlen($subtags[1]);
+        if ($length == 0 || ($length == 1 && $subtags[1] != 'x') || $length > 8 || !ctype_alnum($subtags[1])) {
+            return $new_string;
+        }
+        if (!ctype_lower($subtags[1])) {
+            $subtags[1] = strtolower($subtags[1]);
+        }
+
+        $new_string .= '-' . $subtags[1];
+        if ($num_subtags == 2) {
+            return $new_string;
+        }
+
+        // process all other subtags, index 2 and up
+        for ($i = 2; $i < $num_subtags; $i++) {
+            $length = strlen($subtags[$i]);
+            if ($length == 0 || $length > 8 || !ctype_alnum($subtags[$i])) {
+                return $new_string;
+            }
+            if (!ctype_lower($subtags[$i])) {
+                $subtags[$i] = strtolower($subtags[$i]);
+            }
+            $new_string .= '-' . $subtags[$i];
+        }
+        return $new_string;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php
new file mode 100644
index 0000000..c7eb319
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * Decorator that, depending on a token, switches between two definitions.
+ */
+class HTMLPurifier_AttrDef_Switch
+{
+
+    /**
+     * @type string
+     */
+    protected $tag;
+
+    /**
+     * @type HTMLPurifier_AttrDef
+     */
+    protected $withTag;
+
+    /**
+     * @type HTMLPurifier_AttrDef
+     */
+    protected $withoutTag;
+
+    /**
+     * @param string $tag Tag name to switch upon
+     * @param HTMLPurifier_AttrDef $with_tag Call if token matches tag
+     * @param HTMLPurifier_AttrDef $without_tag Call if token doesn't match, or there is no token
+     */
+    public function __construct($tag, $with_tag, $without_tag)
+    {
+        $this->tag = $tag;
+        $this->withTag = $with_tag;
+        $this->withoutTag = $without_tag;
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $token = $context->get('CurrentToken', true);
+        if (!$token || $token->name !== $this->tag) {
+            return $this->withoutTag->validate($string, $config, $context);
+        } else {
+            return $this->withTag->validate($string, $config, $context);
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php
new file mode 100644
index 0000000..4553a4e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Validates arbitrary text according to the HTML spec.
+ */
+class HTMLPurifier_AttrDef_Text extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        return $this->parseCDATA($string);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php
new file mode 100644
index 0000000..c1cd897
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * Validates a URI as defined by RFC 3986.
+ * @note Scheme-specific mechanics deferred to HTMLPurifier_URIScheme
+ */
+class HTMLPurifier_AttrDef_URI extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * @type HTMLPurifier_URIParser
+     */
+    protected $parser;
+
+    /**
+     * @type bool
+     */
+    protected $embedsResource;
+
+    /**
+     * @param bool $embeds_resource Does the URI here result in an extra HTTP request?
+     */
+    public function __construct($embeds_resource = false)
+    {
+        $this->parser = new HTMLPurifier_URIParser();
+        $this->embedsResource = (bool)$embeds_resource;
+    }
+
+    /**
+     * @param string $string
+     * @return HTMLPurifier_AttrDef_URI
+     */
+    public function make($string)
+    {
+        $embeds = ($string === 'embedded');
+        return new HTMLPurifier_AttrDef_URI($embeds);
+    }
+
+    /**
+     * @param string $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($uri, $config, $context)
+    {
+        if ($config->get('URI.Disable')) {
+            return false;
+        }
+
+        $uri = $this->parseCDATA($uri);
+
+        // parse the URI
+        $uri = $this->parser->parse($uri);
+        if ($uri === false) {
+            return false;
+        }
+
+        // add embedded flag to context for validators
+        $context->register('EmbeddedURI', $this->embedsResource);
+
+        $ok = false;
+        do {
+
+            // generic validation
+            $result = $uri->validate($config, $context);
+            if (!$result) {
+                break;
+            }
+
+            // chained filtering
+            $uri_def = $config->getDefinition('URI');
+            $result = $uri_def->filter($uri, $config, $context);
+            if (!$result) {
+                break;
+            }
+
+            // scheme-specific validation
+            $scheme_obj = $uri->getSchemeObj($config, $context);
+            if (!$scheme_obj) {
+                break;
+            }
+            if ($this->embedsResource && !$scheme_obj->browsable) {
+                break;
+            }
+            $result = $scheme_obj->validate($uri, $config, $context);
+            if (!$result) {
+                break;
+            }
+
+            // Post chained filtering
+            $result = $uri_def->postFilter($uri, $config, $context);
+            if (!$result) {
+                break;
+            }
+
+            // survived gauntlet
+            $ok = true;
+
+        } while (false);
+
+        $context->destroy('EmbeddedURI');
+        if (!$ok) {
+            return false;
+        }
+        // back to string
+        return $uri->toString();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php
new file mode 100644
index 0000000..daf32b7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php
@@ -0,0 +1,20 @@
+<?php
+
+abstract class HTMLPurifier_AttrDef_URI_Email extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * Unpacks a mailbox into its display-name and address
+     * @param string $string
+     * @return mixed
+     */
+    public function unpack($string)
+    {
+        // needs to be implemented
+    }
+
+}
+
+// sub-implementations
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php
new file mode 100644
index 0000000..52c0d59
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * Primitive email validation class based on the regexp found at
+ * http://www.regular-expressions.info/email.html
+ */
+class HTMLPurifier_AttrDef_URI_Email_SimpleCheck extends HTMLPurifier_AttrDef_URI_Email
+{
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        // no support for named mailboxes i.e. "Bob <bob at example.com>"
+        // that needs more percent encoding to be done
+        if ($string == '') {
+            return false;
+        }
+        $string = trim($string);
+        $result = preg_match('/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i', $string);
+        return $result ? $string : false;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
new file mode 100644
index 0000000..e7df800
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
@@ -0,0 +1,128 @@
+<?php
+
+/**
+ * Validates a host according to the IPv4, IPv6 and DNS (future) specifications.
+ */
+class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * IPv4 sub-validator.
+     * @type HTMLPurifier_AttrDef_URI_IPv4
+     */
+    protected $ipv4;
+
+    /**
+     * IPv6 sub-validator.
+     * @type HTMLPurifier_AttrDef_URI_IPv6
+     */
+    protected $ipv6;
+
+    public function __construct()
+    {
+        $this->ipv4 = new HTMLPurifier_AttrDef_URI_IPv4();
+        $this->ipv6 = new HTMLPurifier_AttrDef_URI_IPv6();
+    }
+
+    /**
+     * @param string $string
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($string, $config, $context)
+    {
+        $length = strlen($string);
+        // empty hostname is OK; it's usually semantically equivalent:
+        // the default host as defined by a URI scheme is used:
+        //
+        //      If the URI scheme defines a default for host, then that
+        //      default applies when the host subcomponent is undefined
+        //      or when the registered name is empty (zero length).
+        if ($string === '') {
+            return '';
+        }
+        if ($length > 1 && $string[0] === '[' && $string[$length - 1] === ']') {
+            //IPv6
+            $ip = substr($string, 1, $length - 2);
+            $valid = $this->ipv6->validate($ip, $config, $context);
+            if ($valid === false) {
+                return false;
+            }
+            return '[' . $valid . ']';
+        }
+
+        // need to do checks on unusual encodings too
+        $ipv4 = $this->ipv4->validate($string, $config, $context);
+        if ($ipv4 !== false) {
+            return $ipv4;
+        }
+
+        // A regular domain name.
+
+        // This doesn't match I18N domain names, but we don't have proper IRI support,
+        // so force users to insert Punycode.
+
+        // There is not a good sense in which underscores should be
+        // allowed, since it's technically not! (And if you go as
+        // far to allow everything as specified by the DNS spec...
+        // well, that's literally everything, modulo some space limits
+        // for the components and the overall name (which, by the way,
+        // we are NOT checking!).  So we (arbitrarily) decide this:
+        // let's allow underscores wherever we would have allowed
+        // hyphens, if they are enabled.  This is a pretty good match
+        // for browser behavior, for example, a large number of browsers
+        // cannot handle foo_.example.com, but foo_bar.example.com is
+        // fairly well supported.
+        $underscore = $config->get('Core.AllowHostnameUnderscore') ? '_' : '';
+
+        // The productions describing this are:
+        $a   = '[a-z]';     // alpha
+        $an  = '[a-z0-9]';  // alphanum
+        $and = "[a-z0-9-$underscore]"; // alphanum | "-"
+        // domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum
+        $domainlabel = "$an($and*$an)?";
+        // toplabel    = alpha | alpha *( alphanum | "-" ) alphanum
+        $toplabel = "$a($and*$an)?";
+        // hostname    = *( domainlabel "." ) toplabel [ "." ]
+        if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) {
+            return $string;
+        }
+
+        // If we have Net_IDNA2 support, we can support IRIs by
+        // punycoding them. (This is the most portable thing to do,
+        // since otherwise we have to assume browsers support
+
+        if ($config->get('Core.EnableIDNA')) {
+            $idna = new Net_IDNA2(array('encoding' => 'utf8', 'overlong' => false, 'strict' => true));
+            // we need to encode each period separately
+            $parts = explode('.', $string);
+            try {
+                $new_parts = array();
+                foreach ($parts as $part) {
+                    $encodable = false;
+                    for ($i = 0, $c = strlen($part); $i < $c; $i++) {
+                        if (ord($part[$i]) > 0x7a) {
+                            $encodable = true;
+                            break;
+                        }
+                    }
+                    if (!$encodable) {
+                        $new_parts[] = $part;
+                    } else {
+                        $new_parts[] = $idna->encode($part);
+                    }
+                }
+                $string = implode('.', $new_parts);
+                if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) {
+                    return $string;
+                }
+            } catch (Exception $e) {
+                // XXX error reporting
+            }
+        }
+        return false;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php
new file mode 100644
index 0000000..30ac16c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Validates an IPv4 address
+ * @author Feyd @ forums.devnetwork.net (public domain)
+ */
+class HTMLPurifier_AttrDef_URI_IPv4 extends HTMLPurifier_AttrDef
+{
+
+    /**
+     * IPv4 regex, protected so that IPv6 can reuse it.
+     * @type string
+     */
+    protected $ip4;
+
+    /**
+     * @param string $aIP
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($aIP, $config, $context)
+    {
+        if (!$this->ip4) {
+            $this->_loadRegex();
+        }
+
+        if (preg_match('#^' . $this->ip4 . '$#s', $aIP)) {
+            return $aIP;
+        }
+        return false;
+    }
+
+    /**
+     * Lazy load function to prevent regex from being stuffed in
+     * cache.
+     */
+    protected function _loadRegex()
+    {
+        $oct = '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])'; // 0-255
+        $this->ip4 = "(?:{$oct}\\.{$oct}\\.{$oct}\\.{$oct})";
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php
new file mode 100644
index 0000000..f243793
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * Validates an IPv6 address.
+ * @author Feyd @ forums.devnetwork.net (public domain)
+ * @note This function requires brackets to have been removed from address
+ *       in URI.
+ */
+class HTMLPurifier_AttrDef_URI_IPv6 extends HTMLPurifier_AttrDef_URI_IPv4
+{
+
+    /**
+     * @param string $aIP
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string
+     */
+    public function validate($aIP, $config, $context)
+    {
+        if (!$this->ip4) {
+            $this->_loadRegex();
+        }
+
+        $original = $aIP;
+
+        $hex = '[0-9a-fA-F]';
+        $blk = '(?:' . $hex . '{1,4})';
+        $pre = '(?:/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))'; // /0 - /128
+
+        //      prefix check
+        if (strpos($aIP, '/') !== false) {
+            if (preg_match('#' . $pre . '$#s', $aIP, $find)) {
+                $aIP = substr($aIP, 0, 0 - strlen($find[0]));
+                unset($find);
+            } else {
+                return false;
+            }
+        }
+
+        //      IPv4-compatiblity check
+        if (preg_match('#(?<=:' . ')' . $this->ip4 . '$#s', $aIP, $find)) {
+            $aIP = substr($aIP, 0, 0 - strlen($find[0]));
+            $ip = explode('.', $find[0]);
+            $ip = array_map('dechex', $ip);
+            $aIP .= $ip[0] . $ip[1] . ':' . $ip[2] . $ip[3];
+            unset($find, $ip);
+        }
+
+        //      compression check
+        $aIP = explode('::', $aIP);
+        $c = count($aIP);
+        if ($c > 2) {
+            return false;
+        } elseif ($c == 2) {
+            list($first, $second) = $aIP;
+            $first = explode(':', $first);
+            $second = explode(':', $second);
+
+            if (count($first) + count($second) > 8) {
+                return false;
+            }
+
+            while (count($first) < 8) {
+                array_push($first, '0');
+            }
+
+            array_splice($first, 8 - count($second), 8, $second);
+            $aIP = $first;
+            unset($first, $second);
+        } else {
+            $aIP = explode(':', $aIP[0]);
+        }
+        $c = count($aIP);
+
+        if ($c != 8) {
+            return false;
+        }
+
+        //      All the pieces should be 16-bit hex strings. Are they?
+        foreach ($aIP as $piece) {
+            if (!preg_match('#^[0-9a-fA-F]{4}$#s', sprintf('%04s', $piece))) {
+                return false;
+            }
+        }
+        return $original;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform.php
new file mode 100644
index 0000000..b428331
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * Processes an entire attribute array for corrections needing multiple values.
+ *
+ * Occasionally, a certain attribute will need to be removed and popped onto
+ * another value.  Instead of creating a complex return syntax for
+ * HTMLPurifier_AttrDef, we just pass the whole attribute array to a
+ * specialized object and have that do the special work.  That is the
+ * family of HTMLPurifier_AttrTransform.
+ *
+ * An attribute transformation can be assigned to run before or after
+ * HTMLPurifier_AttrDef validation.  See HTMLPurifier_HTMLDefinition for
+ * more details.
+ */
+
+abstract class HTMLPurifier_AttrTransform
+{
+
+    /**
+     * Abstract: makes changes to the attributes dependent on multiple values.
+     *
+     * @param array $attr Assoc array of attributes, usually from
+     *              HTMLPurifier_Token_Tag::$attr
+     * @param HTMLPurifier_Config $config Mandatory HTMLPurifier_Config object.
+     * @param HTMLPurifier_Context $context Mandatory HTMLPurifier_Context object
+     * @return array Processed attribute array.
+     */
+    abstract public function transform($attr, $config, $context);
+
+    /**
+     * Prepends CSS properties to the style attribute, creating the
+     * attribute if it doesn't exist.
+     * @param array &$attr Attribute array to process (passed by reference)
+     * @param string $css CSS to prepend
+     */
+    public function prependCSS(&$attr, $css)
+    {
+        $attr['style'] = isset($attr['style']) ? $attr['style'] : '';
+        $attr['style'] = $css . $attr['style'];
+    }
+
+    /**
+     * Retrieves and removes an attribute
+     * @param array &$attr Attribute array to process (passed by reference)
+     * @param mixed $key Key of attribute to confiscate
+     * @return mixed
+     */
+    public function confiscateAttr(&$attr, $key)
+    {
+        if (!isset($attr[$key])) {
+            return null;
+        }
+        $value = $attr[$key];
+        unset($attr[$key]);
+        return $value;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php
new file mode 100644
index 0000000..2f72869
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Pre-transform that changes proprietary background attribute to CSS.
+ */
+class HTMLPurifier_AttrTransform_Background extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['background'])) {
+            return $attr;
+        }
+
+        $background = $this->confiscateAttr($attr, 'background');
+        // some validation should happen here
+
+        $this->prependCSS($attr, "background-image:url($background);");
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php
new file mode 100644
index 0000000..d66c04a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php
@@ -0,0 +1,27 @@
+<?php
+
+// this MUST be placed in post, as it assumes that any value in dir is valid
+
+/**
+ * Post-trasnform that ensures that bdo tags have the dir attribute set.
+ */
+class HTMLPurifier_AttrTransform_BdoDir extends HTMLPurifier_AttrTransform
+{
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (isset($attr['dir'])) {
+            return $attr;
+        }
+        $attr['dir'] = $config->get('Attr.DefaultTextDir');
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php
new file mode 100644
index 0000000..0f51fd2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Pre-transform that changes deprecated bgcolor attribute to CSS.
+ */
+class HTMLPurifier_AttrTransform_BgColor extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['bgcolor'])) {
+            return $attr;
+        }
+
+        $bgcolor = $this->confiscateAttr($attr, 'bgcolor');
+        // some validation should happen here
+
+        $this->prependCSS($attr, "background-color:$bgcolor;");
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php
new file mode 100644
index 0000000..f25cd01
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * Pre-transform that changes converts a boolean attribute to fixed CSS
+ */
+class HTMLPurifier_AttrTransform_BoolToCSS extends HTMLPurifier_AttrTransform
+{
+    /**
+     * Name of boolean attribute that is trigger.
+     * @type string
+     */
+    protected $attr;
+
+    /**
+     * CSS declarations to add to style, needs trailing semicolon.
+     * @type string
+     */
+    protected $css;
+
+    /**
+     * @param string $attr attribute name to convert from
+     * @param string $css CSS declarations to add to style (needs semicolon)
+     */
+    public function __construct($attr, $css)
+    {
+        $this->attr = $attr;
+        $this->css = $css;
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr[$this->attr])) {
+            return $attr;
+        }
+        unset($attr[$this->attr]);
+        $this->prependCSS($attr, $this->css);
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php
new file mode 100644
index 0000000..057dc01
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * Pre-transform that changes deprecated border attribute to CSS.
+ */
+class HTMLPurifier_AttrTransform_Border extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['border'])) {
+            return $attr;
+        }
+        $border_width = $this->confiscateAttr($attr, 'border');
+        // some validation should happen here
+        $this->prependCSS($attr, "border:{$border_width}px solid;");
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php
new file mode 100644
index 0000000..7ccd0e3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * Generic pre-transform that converts an attribute with a fixed number of
+ * values (enumerated) to CSS.
+ */
+class HTMLPurifier_AttrTransform_EnumToCSS extends HTMLPurifier_AttrTransform
+{
+    /**
+     * Name of attribute to transform from.
+     * @type string
+     */
+    protected $attr;
+
+    /**
+     * Lookup array of attribute values to CSS.
+     * @type array
+     */
+    protected $enumToCSS = array();
+
+    /**
+     * Case sensitivity of the matching.
+     * @type bool
+     * @warning Currently can only be guaranteed to work with ASCII
+     *          values.
+     */
+    protected $caseSensitive = false;
+
+    /**
+     * @param string $attr Attribute name to transform from
+     * @param array $enum_to_css Lookup array of attribute values to CSS
+     * @param bool $case_sensitive Case sensitivity indicator, default false
+     */
+    public function __construct($attr, $enum_to_css, $case_sensitive = false)
+    {
+        $this->attr = $attr;
+        $this->enumToCSS = $enum_to_css;
+        $this->caseSensitive = (bool)$case_sensitive;
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr[$this->attr])) {
+            return $attr;
+        }
+
+        $value = trim($attr[$this->attr]);
+        unset($attr[$this->attr]);
+
+        if (!$this->caseSensitive) {
+            $value = strtolower($value);
+        }
+
+        if (!isset($this->enumToCSS[$value])) {
+            return $attr;
+        }
+        $this->prependCSS($attr, $this->enumToCSS[$value]);
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php
new file mode 100644
index 0000000..7df6cb3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php
@@ -0,0 +1,48 @@
+<?php
+
+// must be called POST validation
+
+/**
+ * Transform that supplies default values for the src and alt attributes
+ * in img tags, as well as prevents the img tag from being removed
+ * because of a missing alt tag. This needs to be registered as both
+ * a pre and post attribute transform.
+ */
+class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform
+{
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        $src = true;
+        if (!isset($attr['src'])) {
+            if ($config->get('Core.RemoveInvalidImg')) {
+                return $attr;
+            }
+            $attr['src'] = $config->get('Attr.DefaultInvalidImage');
+            $src = false;
+        }
+
+        if (!isset($attr['alt'])) {
+            if ($src) {
+                $alt = $config->get('Attr.DefaultImageAlt');
+                if ($alt === null) {
+                    // truncate if the alt is too long
+                    $attr['alt'] = substr(basename($attr['src']), 0, 40);
+                } else {
+                    $attr['alt'] = $alt;
+                }
+            } else {
+                $attr['alt'] = $config->get('Attr.DefaultInvalidImageAlt');
+            }
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php
new file mode 100644
index 0000000..350b335
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * Pre-transform that changes deprecated hspace and vspace attributes to CSS
+ */
+class HTMLPurifier_AttrTransform_ImgSpace extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @type string
+     */
+    protected $attr;
+
+    /**
+     * @type array
+     */
+    protected $css = array(
+        'hspace' => array('left', 'right'),
+        'vspace' => array('top', 'bottom')
+    );
+
+    /**
+     * @param string $attr
+     */
+    public function __construct($attr)
+    {
+        $this->attr = $attr;
+        if (!isset($this->css[$attr])) {
+            trigger_error(htmlspecialchars($attr) . ' is not valid space attribute');
+        }
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr[$this->attr])) {
+            return $attr;
+        }
+
+        $width = $this->confiscateAttr($attr, $this->attr);
+        // some validation could happen here
+
+        if (!isset($this->css[$this->attr])) {
+            return $attr;
+        }
+
+        $style = '';
+        foreach ($this->css[$this->attr] as $suffix) {
+            $property = "margin-$suffix";
+            $style .= "$property:{$width}px;";
+        }
+        $this->prependCSS($attr, $style);
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php
new file mode 100644
index 0000000..3ab47ed
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * Performs miscellaneous cross attribute validation and filtering for
+ * input elements. This is meant to be a post-transform.
+ */
+class HTMLPurifier_AttrTransform_Input extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @type HTMLPurifier_AttrDef_HTML_Pixels
+     */
+    protected $pixels;
+
+    public function __construct()
+    {
+        $this->pixels = new HTMLPurifier_AttrDef_HTML_Pixels();
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['type'])) {
+            $t = 'text';
+        } else {
+            $t = strtolower($attr['type']);
+        }
+        if (isset($attr['checked']) && $t !== 'radio' && $t !== 'checkbox') {
+            unset($attr['checked']);
+        }
+        if (isset($attr['maxlength']) && $t !== 'text' && $t !== 'password') {
+            unset($attr['maxlength']);
+        }
+        if (isset($attr['size']) && $t !== 'text' && $t !== 'password') {
+            $result = $this->pixels->validate($attr['size'], $config, $context);
+            if ($result === false) {
+                unset($attr['size']);
+            } else {
+                $attr['size'] = $result;
+            }
+        }
+        if (isset($attr['src']) && $t !== 'image') {
+            unset($attr['src']);
+        }
+        if (!isset($attr['value']) && ($t === 'radio' || $t === 'checkbox')) {
+            $attr['value'] = '';
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php
new file mode 100644
index 0000000..5b0aff0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * Post-transform that copies lang's value to xml:lang (and vice-versa)
+ * @note Theoretically speaking, this could be a pre-transform, but putting
+ *       post is more efficient.
+ */
+class HTMLPurifier_AttrTransform_Lang extends HTMLPurifier_AttrTransform
+{
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        $lang = isset($attr['lang']) ? $attr['lang'] : false;
+        $xml_lang = isset($attr['xml:lang']) ? $attr['xml:lang'] : false;
+
+        if ($lang !== false && $xml_lang === false) {
+            $attr['xml:lang'] = $lang;
+        } elseif ($xml_lang !== false) {
+            $attr['lang'] = $xml_lang;
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php
new file mode 100644
index 0000000..853f335
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Class for handling width/height length attribute transformations to CSS
+ */
+class HTMLPurifier_AttrTransform_Length extends HTMLPurifier_AttrTransform
+{
+
+    /**
+     * @type string
+     */
+    protected $name;
+
+    /**
+     * @type string
+     */
+    protected $cssName;
+
+    public function __construct($name, $css_name = null)
+    {
+        $this->name = $name;
+        $this->cssName = $css_name ? $css_name : $name;
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr[$this->name])) {
+            return $attr;
+        }
+        $length = $this->confiscateAttr($attr, $this->name);
+        if (ctype_digit($length)) {
+            $length .= 'px';
+        }
+        $this->prependCSS($attr, $this->cssName . ":$length;");
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php
new file mode 100644
index 0000000..63cce68
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * Pre-transform that changes deprecated name attribute to ID if necessary
+ */
+class HTMLPurifier_AttrTransform_Name extends HTMLPurifier_AttrTransform
+{
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        // Abort early if we're using relaxed definition of name
+        if ($config->get('HTML.Attr.Name.UseCDATA')) {
+            return $attr;
+        }
+        if (!isset($attr['name'])) {
+            return $attr;
+        }
+        $id = $this->confiscateAttr($attr, 'name');
+        if (isset($attr['id'])) {
+            return $attr;
+        }
+        $attr['id'] = $id;
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php
new file mode 100644
index 0000000..36079b7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * Post-transform that performs validation to the name attribute; if
+ * it is present with an equivalent id attribute, it is passed through;
+ * otherwise validation is performed.
+ */
+class HTMLPurifier_AttrTransform_NameSync extends HTMLPurifier_AttrTransform
+{
+
+    public function __construct()
+    {
+        $this->idDef = new HTMLPurifier_AttrDef_HTML_ID();
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['name'])) {
+            return $attr;
+        }
+        $name = $attr['name'];
+        if (isset($attr['id']) && $attr['id'] === $name) {
+            return $attr;
+        }
+        $result = $this->idDef->validate($name, $config, $context);
+        if ($result === false) {
+            unset($attr['name']);
+        } else {
+            $attr['name'] = $result;
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php
new file mode 100644
index 0000000..1057ebe
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php
@@ -0,0 +1,52 @@
+<?php
+
+// must be called POST validation
+
+/**
+ * Adds rel="nofollow" to all outbound links.  This transform is
+ * only attached if Attr.Nofollow is TRUE.
+ */
+class HTMLPurifier_AttrTransform_Nofollow extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @type HTMLPurifier_URIParser
+     */
+    private $parser;
+
+    public function __construct()
+    {
+        $this->parser = new HTMLPurifier_URIParser();
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['href'])) {
+            return $attr;
+        }
+
+        // XXX Kind of inefficient
+        $url = $this->parser->parse($attr['href']);
+        $scheme = $url->getSchemeObj($config, $context);
+
+        if ($scheme->browsable && !$url->isLocal($config, $context)) {
+            if (isset($attr['rel'])) {
+                $rels = explode(' ', $attr['rel']);
+                if (!in_array('nofollow', $rels)) {
+                    $rels[] = 'nofollow';
+                }
+                $attr['rel'] = implode(' ', $rels);
+            } else {
+                $attr['rel'] = 'nofollow';
+            }
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php
new file mode 100644
index 0000000..231c81a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php
@@ -0,0 +1,25 @@
+<?php
+
+class HTMLPurifier_AttrTransform_SafeEmbed extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @type string
+     */
+    public $name = "SafeEmbed";
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        $attr['allowscriptaccess'] = 'never';
+        $attr['allownetworking'] = 'internal';
+        $attr['type'] = 'application/x-shockwave-flash';
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php
new file mode 100644
index 0000000..d1f3a4d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Writes default type for all objects. Currently only supports flash.
+ */
+class HTMLPurifier_AttrTransform_SafeObject extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @type string
+     */
+    public $name = "SafeObject";
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['type'])) {
+            $attr['type'] = 'application/x-shockwave-flash';
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php
new file mode 100644
index 0000000..1143b4b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ * Validates name/value pairs in param tags to be used in safe objects. This
+ * will only allow name values it recognizes, and pre-fill certain attributes
+ * with required values.
+ *
+ * @note
+ *      This class only supports Flash. In the future, Quicktime support
+ *      may be added.
+ *
+ * @warning
+ *      This class expects an injector to add the necessary parameters tags.
+ */
+class HTMLPurifier_AttrTransform_SafeParam extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @type string
+     */
+    public $name = "SafeParam";
+
+    /**
+     * @type HTMLPurifier_AttrDef_URI
+     */
+    private $uri;
+
+    public function __construct()
+    {
+        $this->uri = new HTMLPurifier_AttrDef_URI(true); // embedded
+        $this->wmode = new HTMLPurifier_AttrDef_Enum(array('window', 'opaque', 'transparent'));
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        // If we add support for other objects, we'll need to alter the
+        // transforms.
+        switch ($attr['name']) {
+            // application/x-shockwave-flash
+            // Keep this synchronized with Injector/SafeObject.php
+            case 'allowScriptAccess':
+                $attr['value'] = 'never';
+                break;
+            case 'allowNetworking':
+                $attr['value'] = 'internal';
+                break;
+            case 'allowFullScreen':
+                if ($config->get('HTML.FlashAllowFullScreen')) {
+                    $attr['value'] = ($attr['value'] == 'true') ? 'true' : 'false';
+                } else {
+                    $attr['value'] = 'false';
+                }
+                break;
+            case 'wmode':
+                $attr['value'] = $this->wmode->validate($attr['value'], $config, $context);
+                break;
+            case 'movie':
+            case 'src':
+                $attr['name'] = "movie";
+                $attr['value'] = $this->uri->validate($attr['value'], $config, $context);
+                break;
+            case 'flashvars':
+                // we're going to allow arbitrary inputs to the SWF, on
+                // the reasoning that it could only hack the SWF, not us.
+                break;
+            // add other cases to support other param name/value pairs
+            default:
+                $attr['name'] = $attr['value'] = null;
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php
new file mode 100644
index 0000000..b7057bb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * Implements required attribute stipulation for <script>
+ */
+class HTMLPurifier_AttrTransform_ScriptRequired extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['type'])) {
+            $attr['type'] = 'text/javascript';
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php
new file mode 100644
index 0000000..dd63ea8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php
@@ -0,0 +1,45 @@
+<?php
+
+// must be called POST validation
+
+/**
+ * Adds target="blank" to all outbound links.  This transform is
+ * only attached if Attr.TargetBlank is TRUE.  This works regardless
+ * of whether or not Attr.AllowedFrameTargets
+ */
+class HTMLPurifier_AttrTransform_TargetBlank extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @type HTMLPurifier_URIParser
+     */
+    private $parser;
+
+    public function __construct()
+    {
+        $this->parser = new HTMLPurifier_URIParser();
+    }
+
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        if (!isset($attr['href'])) {
+            return $attr;
+        }
+
+        // XXX Kind of inefficient
+        $url = $this->parser->parse($attr['href']);
+        $scheme = $url->getSchemeObj($config, $context);
+
+        if ($scheme->browsable && !$url->isBenign($config, $context)) {
+            $attr['target'] = '_blank';
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php
new file mode 100644
index 0000000..6a9f33a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * Sets height/width defaults for <textarea>
+ */
+class HTMLPurifier_AttrTransform_Textarea extends HTMLPurifier_AttrTransform
+{
+    /**
+     * @param array $attr
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function transform($attr, $config, $context)
+    {
+        // Calculated from Firefox
+        if (!isset($attr['cols'])) {
+            $attr['cols'] = '22';
+        }
+        if (!isset($attr['rows'])) {
+            $attr['rows'] = '3';
+        }
+        return $attr;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTypes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTypes.php
new file mode 100644
index 0000000..3b70520
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrTypes.php
@@ -0,0 +1,96 @@
+<?php
+
+/**
+ * Provides lookup array of attribute types to HTMLPurifier_AttrDef objects
+ */
+class HTMLPurifier_AttrTypes
+{
+    /**
+     * Lookup array of attribute string identifiers to concrete implementations.
+     * @type HTMLPurifier_AttrDef[]
+     */
+    protected $info = array();
+
+    /**
+     * Constructs the info array, supplying default implementations for attribute
+     * types.
+     */
+    public function __construct()
+    {
+        // XXX This is kind of poor, since we don't actually /clone/
+        // instances; instead, we use the supplied make() attribute. So,
+        // the underlying class must know how to deal with arguments.
+        // With the old implementation of Enum, that ignored its
+        // arguments when handling a make dispatch, the IAlign
+        // definition wouldn't work.
+
+        // pseudo-types, must be instantiated via shorthand
+        $this->info['Enum']    = new HTMLPurifier_AttrDef_Enum();
+        $this->info['Bool']    = new HTMLPurifier_AttrDef_HTML_Bool();
+
+        $this->info['CDATA']    = new HTMLPurifier_AttrDef_Text();
+        $this->info['ID']       = new HTMLPurifier_AttrDef_HTML_ID();
+        $this->info['Length']   = new HTMLPurifier_AttrDef_HTML_Length();
+        $this->info['MultiLength'] = new HTMLPurifier_AttrDef_HTML_MultiLength();
+        $this->info['NMTOKENS'] = new HTMLPurifier_AttrDef_HTML_Nmtokens();
+        $this->info['Pixels']   = new HTMLPurifier_AttrDef_HTML_Pixels();
+        $this->info['Text']     = new HTMLPurifier_AttrDef_Text();
+        $this->info['URI']      = new HTMLPurifier_AttrDef_URI();
+        $this->info['LanguageCode'] = new HTMLPurifier_AttrDef_Lang();
+        $this->info['Color']    = new HTMLPurifier_AttrDef_HTML_Color();
+        $this->info['IAlign']   = self::makeEnum('top,middle,bottom,left,right');
+        $this->info['LAlign']   = self::makeEnum('top,bottom,left,right');
+        $this->info['FrameTarget'] = new HTMLPurifier_AttrDef_HTML_FrameTarget();
+
+        // unimplemented aliases
+        $this->info['ContentType'] = new HTMLPurifier_AttrDef_Text();
+        $this->info['ContentTypes'] = new HTMLPurifier_AttrDef_Text();
+        $this->info['Charsets'] = new HTMLPurifier_AttrDef_Text();
+        $this->info['Character'] = new HTMLPurifier_AttrDef_Text();
+
+        // "proprietary" types
+        $this->info['Class'] = new HTMLPurifier_AttrDef_HTML_Class();
+
+        // number is really a positive integer (one or more digits)
+        // FIXME: ^^ not always, see start and value of list items
+        $this->info['Number']   = new HTMLPurifier_AttrDef_Integer(false, false, true);
+    }
+
+    private static function makeEnum($in)
+    {
+        return new HTMLPurifier_AttrDef_Clone(new HTMLPurifier_AttrDef_Enum(explode(',', $in)));
+    }
+
+    /**
+     * Retrieves a type
+     * @param string $type String type name
+     * @return HTMLPurifier_AttrDef Object AttrDef for type
+     */
+    public function get($type)
+    {
+        // determine if there is any extra info tacked on
+        if (strpos($type, '#') !== false) {
+            list($type, $string) = explode('#', $type, 2);
+        } else {
+            $string = '';
+        }
+
+        if (!isset($this->info[$type])) {
+            trigger_error('Cannot retrieve undefined attribute type ' . $type, E_USER_ERROR);
+            return;
+        }
+        return $this->info[$type]->make($string);
+    }
+
+    /**
+     * Sets a new implementation for a type
+     * @param string $type String type name
+     * @param HTMLPurifier_AttrDef $impl Object AttrDef for type
+     */
+    public function set($type, $impl)
+    {
+        $this->info[$type] = $impl;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrValidator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrValidator.php
new file mode 100644
index 0000000..f97dc93
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/AttrValidator.php
@@ -0,0 +1,178 @@
+<?php
+
+/**
+ * Validates the attributes of a token. Doesn't manage required attributes
+ * very well. The only reason we factored this out was because RemoveForeignElements
+ * also needed it besides ValidateAttributes.
+ */
+class HTMLPurifier_AttrValidator
+{
+
+    /**
+     * Validates the attributes of a token, mutating it as necessary.
+     * that has valid tokens
+     * @param HTMLPurifier_Token $token Token to validate.
+     * @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config
+     * @param HTMLPurifier_Context $context Instance of HTMLPurifier_Context
+     */
+    public function validateToken($token, $config, $context)
+    {
+        $definition = $config->getHTMLDefinition();
+        $e =& $context->get('ErrorCollector', true);
+
+        // initialize IDAccumulator if necessary
+        $ok =& $context->get('IDAccumulator', true);
+        if (!$ok) {
+            $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context);
+            $context->register('IDAccumulator', $id_accumulator);
+        }
+
+        // initialize CurrentToken if necessary
+        $current_token =& $context->get('CurrentToken', true);
+        if (!$current_token) {
+            $context->register('CurrentToken', $token);
+        }
+
+        if (!$token instanceof HTMLPurifier_Token_Start &&
+            !$token instanceof HTMLPurifier_Token_Empty
+        ) {
+            return;
+        }
+
+        // create alias to global definition array, see also $defs
+        // DEFINITION CALL
+        $d_defs = $definition->info_global_attr;
+
+        // don't update token until the very end, to ensure an atomic update
+        $attr = $token->attr;
+
+        // do global transformations (pre)
+        // nothing currently utilizes this
+        foreach ($definition->info_attr_transform_pre as $transform) {
+            $attr = $transform->transform($o = $attr, $config, $context);
+            if ($e) {
+                if ($attr != $o) {
+                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
+                }
+            }
+        }
+
+        // do local transformations only applicable to this element (pre)
+        // ex. <p align="right"> to <p style="text-align:right;">
+        foreach ($definition->info[$token->name]->attr_transform_pre as $transform) {
+            $attr = $transform->transform($o = $attr, $config, $context);
+            if ($e) {
+                if ($attr != $o) {
+                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
+                }
+            }
+        }
+
+        // create alias to this element's attribute definition array, see
+        // also $d_defs (global attribute definition array)
+        // DEFINITION CALL
+        $defs = $definition->info[$token->name]->attr;
+
+        $attr_key = false;
+        $context->register('CurrentAttr', $attr_key);
+
+        // iterate through all the attribute keypairs
+        // Watch out for name collisions: $key has previously been used
+        foreach ($attr as $attr_key => $value) {
+
+            // call the definition
+            if (isset($defs[$attr_key])) {
+                // there is a local definition defined
+                if ($defs[$attr_key] === false) {
+                    // We've explicitly been told not to allow this element.
+                    // This is usually when there's a global definition
+                    // that must be overridden.
+                    // Theoretically speaking, we could have a
+                    // AttrDef_DenyAll, but this is faster!
+                    $result = false;
+                } else {
+                    // validate according to the element's definition
+                    $result = $defs[$attr_key]->validate(
+                        $value,
+                        $config,
+                        $context
+                    );
+                }
+            } elseif (isset($d_defs[$attr_key])) {
+                // there is a global definition defined, validate according
+                // to the global definition
+                $result = $d_defs[$attr_key]->validate(
+                    $value,
+                    $config,
+                    $context
+                );
+            } else {
+                // system never heard of the attribute? DELETE!
+                $result = false;
+            }
+
+            // put the results into effect
+            if ($result === false || $result === null) {
+                // this is a generic error message that should replaced
+                // with more specific ones when possible
+                if ($e) {
+                    $e->send(E_ERROR, 'AttrValidator: Attribute removed');
+                }
+
+                // remove the attribute
+                unset($attr[$attr_key]);
+            } elseif (is_string($result)) {
+                // generally, if a substitution is happening, there
+                // was some sort of implicit correction going on. We'll
+                // delegate it to the attribute classes to say exactly what.
+
+                // simple substitution
+                $attr[$attr_key] = $result;
+            } else {
+                // nothing happens
+            }
+
+            // we'd also want slightly more complicated substitution
+            // involving an array as the return value,
+            // although we're not sure how colliding attributes would
+            // resolve (certain ones would be completely overriden,
+            // others would prepend themselves).
+        }
+
+        $context->destroy('CurrentAttr');
+
+        // post transforms
+
+        // global (error reporting untested)
+        foreach ($definition->info_attr_transform_post as $transform) {
+            $attr = $transform->transform($o = $attr, $config, $context);
+            if ($e) {
+                if ($attr != $o) {
+                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
+                }
+            }
+        }
+
+        // local (error reporting untested)
+        foreach ($definition->info[$token->name]->attr_transform_post as $transform) {
+            $attr = $transform->transform($o = $attr, $config, $context);
+            if ($e) {
+                if ($attr != $o) {
+                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
+                }
+            }
+        }
+
+        $token->attr = $attr;
+
+        // destroy CurrentToken if we made it ourselves
+        if (!$current_token) {
+            $context->destroy('CurrentToken');
+        }
+
+    }
+
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Bootstrap.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Bootstrap.php
new file mode 100644
index 0000000..707122b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Bootstrap.php
@@ -0,0 +1,124 @@
+<?php
+
+// constants are slow, so we use as few as possible
+if (!defined('HTMLPURIFIER_PREFIX')) {
+    define('HTMLPURIFIER_PREFIX', realpath(dirname(__FILE__) . '/..'));
+}
+
+// accomodations for versions earlier than 5.0.2
+// borrowed from PHP_Compat, LGPL licensed, by Aidan Lister <aidan at php.net>
+if (!defined('PHP_EOL')) {
+    switch (strtoupper(substr(PHP_OS, 0, 3))) {
+        case 'WIN':
+            define('PHP_EOL', "\r\n");
+            break;
+        case 'DAR':
+            define('PHP_EOL', "\r");
+            break;
+        default:
+            define('PHP_EOL', "\n");
+    }
+}
+
+/**
+ * Bootstrap class that contains meta-functionality for HTML Purifier such as
+ * the autoload function.
+ *
+ * @note
+ *      This class may be used without any other files from HTML Purifier.
+ */
+class HTMLPurifier_Bootstrap
+{
+
+    /**
+     * Autoload function for HTML Purifier
+     * @param string $class Class to load
+     * @return bool
+     */
+    public static function autoload($class)
+    {
+        $file = HTMLPurifier_Bootstrap::getPath($class);
+        if (!$file) {
+            return false;
+        }
+        // Technically speaking, it should be ok and more efficient to
+        // just do 'require', but Antonio Parraga reports that with
+        // Zend extensions such as Zend debugger and APC, this invariant
+        // may be broken.  Since we have efficient alternatives, pay
+        // the cost here and avoid the bug.
+        require_once HTMLPURIFIER_PREFIX . '/' . $file;
+        return true;
+    }
+
+    /**
+     * Returns the path for a specific class.
+     * @param string $class Class path to get
+     * @return string
+     */
+    public static function getPath($class)
+    {
+        if (strncmp('HTMLPurifier', $class, 12) !== 0) {
+            return false;
+        }
+        // Custom implementations
+        if (strncmp('HTMLPurifier_Language_', $class, 22) === 0) {
+            $code = str_replace('_', '-', substr($class, 22));
+            $file = 'HTMLPurifier/Language/classes/' . $code . '.php';
+        } else {
+            $file = str_replace('_', '/', $class) . '.php';
+        }
+        if (!file_exists(HTMLPURIFIER_PREFIX . '/' . $file)) {
+            return false;
+        }
+        return $file;
+    }
+
+    /**
+     * "Pre-registers" our autoloader on the SPL stack.
+     */
+    public static function registerAutoload()
+    {
+        $autoload = array('HTMLPurifier_Bootstrap', 'autoload');
+        if (($funcs = spl_autoload_functions()) === false) {
+            spl_autoload_register($autoload);
+        } elseif (function_exists('spl_autoload_unregister')) {
+            if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
+                // prepend flag exists, no need for shenanigans
+                spl_autoload_register($autoload, true, true);
+            } else {
+                $buggy  = version_compare(PHP_VERSION, '5.2.11', '<');
+                $compat = version_compare(PHP_VERSION, '5.1.2', '<=') &&
+                          version_compare(PHP_VERSION, '5.1.0', '>=');
+                foreach ($funcs as $func) {
+                    if ($buggy && is_array($func)) {
+                        // :TRICKY: There are some compatibility issues and some
+                        // places where we need to error out
+                        $reflector = new ReflectionMethod($func[0], $func[1]);
+                        if (!$reflector->isStatic()) {
+                            throw new Exception(
+                                'HTML Purifier autoloader registrar is not compatible
+                                with non-static object methods due to PHP Bug #44144;
+                                Please do not use HTMLPurifier.autoload.php (or any
+                                file that includes this file); instead, place the code:
+                                spl_autoload_register(array(\'HTMLPurifier_Bootstrap\', \'autoload\'))
+                                after your own autoloaders.'
+                            );
+                        }
+                        // Suprisingly, spl_autoload_register supports the
+                        // Class::staticMethod callback format, although call_user_func doesn't
+                        if ($compat) {
+                            $func = implode('::', $func);
+                        }
+                    }
+                    spl_autoload_unregister($func);
+                }
+                spl_autoload_register($autoload);
+                foreach ($funcs as $func) {
+                    spl_autoload_register($func);
+                }
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/CSSDefinition.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/CSSDefinition.php
new file mode 100644
index 0000000..0acdee2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/CSSDefinition.php
@@ -0,0 +1,474 @@
+<?php
+
+/**
+ * Defines allowed CSS attributes and what their values are.
+ * @see HTMLPurifier_HTMLDefinition
+ */
+class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
+{
+
+    public $type = 'CSS';
+
+    /**
+     * Assoc array of attribute name to definition object.
+     * @type HTMLPurifier_AttrDef[]
+     */
+    public $info = array();
+
+    /**
+     * Constructs the info array.  The meat of this class.
+     * @param HTMLPurifier_Config $config
+     */
+    protected function doSetup($config)
+    {
+        $this->info['text-align'] = new HTMLPurifier_AttrDef_Enum(
+            array('left', 'right', 'center', 'justify'),
+            false
+        );
+
+        $border_style =
+            $this->info['border-bottom-style'] =
+            $this->info['border-right-style'] =
+            $this->info['border-left-style'] =
+            $this->info['border-top-style'] = new HTMLPurifier_AttrDef_Enum(
+                array(
+                    'none',
+                    'hidden',
+                    'dotted',
+                    'dashed',
+                    'solid',
+                    'double',
+                    'groove',
+                    'ridge',
+                    'inset',
+                    'outset'
+                ),
+                false
+            );
+
+        $this->info['border-style'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_style);
+
+        $this->info['clear'] = new HTMLPurifier_AttrDef_Enum(
+            array('none', 'left', 'right', 'both'),
+            false
+        );
+        $this->info['float'] = new HTMLPurifier_AttrDef_Enum(
+            array('none', 'left', 'right'),
+            false
+        );
+        $this->info['font-style'] = new HTMLPurifier_AttrDef_Enum(
+            array('normal', 'italic', 'oblique'),
+            false
+        );
+        $this->info['font-variant'] = new HTMLPurifier_AttrDef_Enum(
+            array('normal', 'small-caps'),
+            false
+        );
+
+        $uri_or_none = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_Enum(array('none')),
+                new HTMLPurifier_AttrDef_CSS_URI()
+            )
+        );
+
+        $this->info['list-style-position'] = new HTMLPurifier_AttrDef_Enum(
+            array('inside', 'outside'),
+            false
+        );
+        $this->info['list-style-type'] = new HTMLPurifier_AttrDef_Enum(
+            array(
+                'disc',
+                'circle',
+                'square',
+                'decimal',
+                'lower-roman',
+                'upper-roman',
+                'lower-alpha',
+                'upper-alpha',
+                'none'
+            ),
+            false
+        );
+        $this->info['list-style-image'] = $uri_or_none;
+
+        $this->info['list-style'] = new HTMLPurifier_AttrDef_CSS_ListStyle($config);
+
+        $this->info['text-transform'] = new HTMLPurifier_AttrDef_Enum(
+            array('capitalize', 'uppercase', 'lowercase', 'none'),
+            false
+        );
+        $this->info['color'] = new HTMLPurifier_AttrDef_CSS_Color();
+
+        $this->info['background-image'] = $uri_or_none;
+        $this->info['background-repeat'] = new HTMLPurifier_AttrDef_Enum(
+            array('repeat', 'repeat-x', 'repeat-y', 'no-repeat')
+        );
+        $this->info['background-attachment'] = new HTMLPurifier_AttrDef_Enum(
+            array('scroll', 'fixed')
+        );
+        $this->info['background-position'] = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
+
+        $border_color =
+            $this->info['border-top-color'] =
+            $this->info['border-bottom-color'] =
+            $this->info['border-left-color'] =
+            $this->info['border-right-color'] =
+            $this->info['background-color'] = new HTMLPurifier_AttrDef_CSS_Composite(
+                array(
+                    new HTMLPurifier_AttrDef_Enum(array('transparent')),
+                    new HTMLPurifier_AttrDef_CSS_Color()
+                )
+            );
+
+        $this->info['background'] = new HTMLPurifier_AttrDef_CSS_Background($config);
+
+        $this->info['border-color'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_color);
+
+        $border_width =
+            $this->info['border-top-width'] =
+            $this->info['border-bottom-width'] =
+            $this->info['border-left-width'] =
+            $this->info['border-right-width'] = new HTMLPurifier_AttrDef_CSS_Composite(
+                array(
+                    new HTMLPurifier_AttrDef_Enum(array('thin', 'medium', 'thick')),
+                    new HTMLPurifier_AttrDef_CSS_Length('0') //disallow negative
+                )
+            );
+
+        $this->info['border-width'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_width);
+
+        $this->info['letter-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_Enum(array('normal')),
+                new HTMLPurifier_AttrDef_CSS_Length()
+            )
+        );
+
+        $this->info['word-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_Enum(array('normal')),
+                new HTMLPurifier_AttrDef_CSS_Length()
+            )
+        );
+
+        $this->info['font-size'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_Enum(
+                    array(
+                        'xx-small',
+                        'x-small',
+                        'small',
+                        'medium',
+                        'large',
+                        'x-large',
+                        'xx-large',
+                        'larger',
+                        'smaller'
+                    )
+                ),
+                new HTMLPurifier_AttrDef_CSS_Percentage(),
+                new HTMLPurifier_AttrDef_CSS_Length()
+            )
+        );
+
+        $this->info['line-height'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_Enum(array('normal')),
+                new HTMLPurifier_AttrDef_CSS_Number(true), // no negatives
+                new HTMLPurifier_AttrDef_CSS_Length('0'),
+                new HTMLPurifier_AttrDef_CSS_Percentage(true)
+            )
+        );
+
+        $margin =
+            $this->info['margin-top'] =
+            $this->info['margin-bottom'] =
+            $this->info['margin-left'] =
+            $this->info['margin-right'] = new HTMLPurifier_AttrDef_CSS_Composite(
+                array(
+                    new HTMLPurifier_AttrDef_CSS_Length(),
+                    new HTMLPurifier_AttrDef_CSS_Percentage(),
+                    new HTMLPurifier_AttrDef_Enum(array('auto'))
+                )
+            );
+
+        $this->info['margin'] = new HTMLPurifier_AttrDef_CSS_Multiple($margin);
+
+        // non-negative
+        $padding =
+            $this->info['padding-top'] =
+            $this->info['padding-bottom'] =
+            $this->info['padding-left'] =
+            $this->info['padding-right'] = new HTMLPurifier_AttrDef_CSS_Composite(
+                array(
+                    new HTMLPurifier_AttrDef_CSS_Length('0'),
+                    new HTMLPurifier_AttrDef_CSS_Percentage(true)
+                )
+            );
+
+        $this->info['padding'] = new HTMLPurifier_AttrDef_CSS_Multiple($padding);
+
+        $this->info['text-indent'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_CSS_Length(),
+                new HTMLPurifier_AttrDef_CSS_Percentage()
+            )
+        );
+
+        $trusted_wh = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_CSS_Length('0'),
+                new HTMLPurifier_AttrDef_CSS_Percentage(true),
+                new HTMLPurifier_AttrDef_Enum(array('auto'))
+            )
+        );
+        $max = $config->get('CSS.MaxImgLength');
+
+        $this->info['width'] =
+        $this->info['height'] =
+            $max === null ?
+                $trusted_wh :
+                new HTMLPurifier_AttrDef_Switch(
+                    'img',
+                    // For img tags:
+                    new HTMLPurifier_AttrDef_CSS_Composite(
+                        array(
+                            new HTMLPurifier_AttrDef_CSS_Length('0', $max),
+                            new HTMLPurifier_AttrDef_Enum(array('auto'))
+                        )
+                    ),
+                    // For everyone else:
+                    $trusted_wh
+                );
+
+        $this->info['text-decoration'] = new HTMLPurifier_AttrDef_CSS_TextDecoration();
+
+        $this->info['font-family'] = new HTMLPurifier_AttrDef_CSS_FontFamily();
+
+        // this could use specialized code
+        $this->info['font-weight'] = new HTMLPurifier_AttrDef_Enum(
+            array(
+                'normal',
+                'bold',
+                'bolder',
+                'lighter',
+                '100',
+                '200',
+                '300',
+                '400',
+                '500',
+                '600',
+                '700',
+                '800',
+                '900'
+            ),
+            false
+        );
+
+        // MUST be called after other font properties, as it references
+        // a CSSDefinition object
+        $this->info['font'] = new HTMLPurifier_AttrDef_CSS_Font($config);
+
+        // same here
+        $this->info['border'] =
+        $this->info['border-bottom'] =
+        $this->info['border-top'] =
+        $this->info['border-left'] =
+        $this->info['border-right'] = new HTMLPurifier_AttrDef_CSS_Border($config);
+
+        $this->info['border-collapse'] = new HTMLPurifier_AttrDef_Enum(
+            array('collapse', 'separate')
+        );
+
+        $this->info['caption-side'] = new HTMLPurifier_AttrDef_Enum(
+            array('top', 'bottom')
+        );
+
+        $this->info['table-layout'] = new HTMLPurifier_AttrDef_Enum(
+            array('auto', 'fixed')
+        );
+
+        $this->info['vertical-align'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_Enum(
+                    array(
+                        'baseline',
+                        'sub',
+                        'super',
+                        'top',
+                        'text-top',
+                        'middle',
+                        'bottom',
+                        'text-bottom'
+                    )
+                ),
+                new HTMLPurifier_AttrDef_CSS_Length(),
+                new HTMLPurifier_AttrDef_CSS_Percentage()
+            )
+        );
+
+        $this->info['border-spacing'] = new HTMLPurifier_AttrDef_CSS_Multiple(new HTMLPurifier_AttrDef_CSS_Length(), 2);
+
+        // These CSS properties don't work on many browsers, but we live
+        // in THE FUTURE!
+        $this->info['white-space'] = new HTMLPurifier_AttrDef_Enum(
+            array('nowrap', 'normal', 'pre', 'pre-wrap', 'pre-line')
+        );
+
+        if ($config->get('CSS.Proprietary')) {
+            $this->doSetupProprietary($config);
+        }
+
+        if ($config->get('CSS.AllowTricky')) {
+            $this->doSetupTricky($config);
+        }
+
+        if ($config->get('CSS.Trusted')) {
+            $this->doSetupTrusted($config);
+        }
+
+        $allow_important = $config->get('CSS.AllowImportant');
+        // wrap all attr-defs with decorator that handles !important
+        foreach ($this->info as $k => $v) {
+            $this->info[$k] = new HTMLPurifier_AttrDef_CSS_ImportantDecorator($v, $allow_important);
+        }
+
+        $this->setupConfigStuff($config);
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    protected function doSetupProprietary($config)
+    {
+        // Internet Explorer only scrollbar colors
+        $this->info['scrollbar-arrow-color'] = new HTMLPurifier_AttrDef_CSS_Color();
+        $this->info['scrollbar-base-color'] = new HTMLPurifier_AttrDef_CSS_Color();
+        $this->info['scrollbar-darkshadow-color'] = new HTMLPurifier_AttrDef_CSS_Color();
+        $this->info['scrollbar-face-color'] = new HTMLPurifier_AttrDef_CSS_Color();
+        $this->info['scrollbar-highlight-color'] = new HTMLPurifier_AttrDef_CSS_Color();
+        $this->info['scrollbar-shadow-color'] = new HTMLPurifier_AttrDef_CSS_Color();
+
+        // technically not proprietary, but CSS3, and no one supports it
+        $this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue();
+        $this->info['-moz-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue();
+        $this->info['-khtml-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue();
+
+        // only opacity, for now
+        $this->info['filter'] = new HTMLPurifier_AttrDef_CSS_Filter();
+
+        // more CSS3
+        $this->info['page-break-after'] =
+        $this->info['page-break-before'] = new HTMLPurifier_AttrDef_Enum(
+            array(
+                'auto',
+                'always',
+                'avoid',
+                'left',
+                'right'
+            )
+        );
+        $this->info['page-break-inside'] = new HTMLPurifier_AttrDef_Enum(array('auto', 'avoid'));
+
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    protected function doSetupTricky($config)
+    {
+        $this->info['display'] = new HTMLPurifier_AttrDef_Enum(
+            array(
+                'inline',
+                'block',
+                'list-item',
+                'run-in',
+                'compact',
+                'marker',
+                'table',
+                'inline-block',
+                'inline-table',
+                'table-row-group',
+                'table-header-group',
+                'table-footer-group',
+                'table-row',
+                'table-column-group',
+                'table-column',
+                'table-cell',
+                'table-caption',
+                'none'
+            )
+        );
+        $this->info['visibility'] = new HTMLPurifier_AttrDef_Enum(
+            array('visible', 'hidden', 'collapse')
+        );
+        $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll'));
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    protected function doSetupTrusted($config)
+    {
+        $this->info['position'] = new HTMLPurifier_AttrDef_Enum(
+            array('static', 'relative', 'absolute', 'fixed')
+        );
+        $this->info['top'] =
+        $this->info['left'] =
+        $this->info['right'] =
+        $this->info['bottom'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_CSS_Length(),
+                new HTMLPurifier_AttrDef_CSS_Percentage(),
+                new HTMLPurifier_AttrDef_Enum(array('auto')),
+            )
+        );
+        $this->info['z-index'] = new HTMLPurifier_AttrDef_CSS_Composite(
+            array(
+                new HTMLPurifier_AttrDef_Integer(),
+                new HTMLPurifier_AttrDef_Enum(array('auto')),
+            )
+        );
+    }
+
+    /**
+     * Performs extra config-based processing. Based off of
+     * HTMLPurifier_HTMLDefinition.
+     * @param HTMLPurifier_Config $config
+     * @todo Refactor duplicate elements into common class (probably using
+     *       composition, not inheritance).
+     */
+    protected function setupConfigStuff($config)
+    {
+        // setup allowed elements
+        $support = "(for information on implementing this, see the " .
+            "support forums) ";
+        $allowed_properties = $config->get('CSS.AllowedProperties');
+        if ($allowed_properties !== null) {
+            foreach ($this->info as $name => $d) {
+                if (!isset($allowed_properties[$name])) {
+                    unset($this->info[$name]);
+                }
+                unset($allowed_properties[$name]);
+            }
+            // emit errors
+            foreach ($allowed_properties as $name => $d) {
+                // :TODO: Is this htmlspecialchars() call really necessary?
+                $name = htmlspecialchars($name);
+                trigger_error("Style attribute '$name' is not supported $support", E_USER_WARNING);
+            }
+        }
+
+        $forbidden_properties = $config->get('CSS.ForbiddenProperties');
+        if ($forbidden_properties !== null) {
+            foreach ($this->info as $name => $d) {
+                if (isset($forbidden_properties[$name])) {
+                    unset($this->info[$name]);
+                }
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef.php
new file mode 100644
index 0000000..8eb17b8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef.php
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * Defines allowed child nodes and validates nodes against it.
+ */
+abstract class HTMLPurifier_ChildDef
+{
+    /**
+     * Type of child definition, usually right-most part of class name lowercase.
+     * Used occasionally in terms of context.
+     * @type string
+     */
+    public $type;
+
+    /**
+     * Indicates whether or not an empty array of children is okay.
+     *
+     * This is necessary for redundant checking when changes affecting
+     * a child node may cause a parent node to now be disallowed.
+     * @type bool
+     */
+    public $allow_empty;
+
+    /**
+     * Lookup array of all elements that this definition could possibly allow.
+     * @type array
+     */
+    public $elements = array();
+
+    /**
+     * Get lookup of tag names that should not close this element automatically.
+     * All other elements will do so.
+     * @param HTMLPurifier_Config $config HTMLPurifier_Config object
+     * @return array
+     */
+    public function getAllowedElements($config)
+    {
+        return $this->elements;
+    }
+
+    /**
+     * Validates nodes according to definition and returns modification.
+     *
+     * @param HTMLPurifier_Node[] $children Array of HTMLPurifier_Node
+     * @param HTMLPurifier_Config $config HTMLPurifier_Config object
+     * @param HTMLPurifier_Context $context HTMLPurifier_Context object
+     * @return bool|array true to leave nodes as is, false to remove parent node, array of replacement children
+     */
+    abstract public function validateChildren($children, $config, $context);
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php
new file mode 100644
index 0000000..7439be2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * Definition that uses different definitions depending on context.
+ *
+ * The del and ins tags are notable because they allow different types of
+ * elements depending on whether or not they're in a block or inline context.
+ * Chameleon allows this behavior to happen by using two different
+ * definitions depending on context.  While this somewhat generalized,
+ * it is specifically intended for those two tags.
+ */
+class HTMLPurifier_ChildDef_Chameleon extends HTMLPurifier_ChildDef
+{
+
+    /**
+     * Instance of the definition object to use when inline. Usually stricter.
+     * @type HTMLPurifier_ChildDef_Optional
+     */
+    public $inline;
+
+    /**
+     * Instance of the definition object to use when block.
+     * @type HTMLPurifier_ChildDef_Optional
+     */
+    public $block;
+
+    /**
+     * @type string
+     */
+    public $type = 'chameleon';
+
+    /**
+     * @param array $inline List of elements to allow when inline.
+     * @param array $block List of elements to allow when block.
+     */
+    public function __construct($inline, $block)
+    {
+        $this->inline = new HTMLPurifier_ChildDef_Optional($inline);
+        $this->block = new HTMLPurifier_ChildDef_Optional($block);
+        $this->elements = $this->block->elements;
+    }
+
+    /**
+     * @param HTMLPurifier_Node[] $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        if ($context->get('IsInline') === false) {
+            return $this->block->validateChildren(
+                $children,
+                $config,
+                $context
+            );
+        } else {
+            return $this->inline->validateChildren(
+                $children,
+                $config,
+                $context
+            );
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php
new file mode 100644
index 0000000..128132e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php
@@ -0,0 +1,102 @@
+<?php
+
+/**
+ * Custom validation class, accepts DTD child definitions
+ *
+ * @warning Currently this class is an all or nothing proposition, that is,
+ *          it will only give a bool return value.
+ */
+class HTMLPurifier_ChildDef_Custom extends HTMLPurifier_ChildDef
+{
+    /**
+     * @type string
+     */
+    public $type = 'custom';
+
+    /**
+     * @type bool
+     */
+    public $allow_empty = false;
+
+    /**
+     * Allowed child pattern as defined by the DTD.
+     * @type string
+     */
+    public $dtd_regex;
+
+    /**
+     * PCRE regex derived from $dtd_regex.
+     * @type string
+     */
+    private $_pcre_regex;
+
+    /**
+     * @param $dtd_regex Allowed child pattern from the DTD
+     */
+    public function __construct($dtd_regex)
+    {
+        $this->dtd_regex = $dtd_regex;
+        $this->_compileRegex();
+    }
+
+    /**
+     * Compiles the PCRE regex from a DTD regex ($dtd_regex to $_pcre_regex)
+     */
+    protected function _compileRegex()
+    {
+        $raw = str_replace(' ', '', $this->dtd_regex);
+        if ($raw{0} != '(') {
+            $raw = "($raw)";
+        }
+        $el = '[#a-zA-Z0-9_.-]+';
+        $reg = $raw;
+
+        // COMPLICATED! AND MIGHT BE BUGGY! I HAVE NO CLUE WHAT I'M
+        // DOING! Seriously: if there's problems, please report them.
+
+        // collect all elements into the $elements array
+        preg_match_all("/$el/", $reg, $matches);
+        foreach ($matches[0] as $match) {
+            $this->elements[$match] = true;
+        }
+
+        // setup all elements as parentheticals with leading commas
+        $reg = preg_replace("/$el/", '(,\\0)', $reg);
+
+        // remove commas when they were not solicited
+        $reg = preg_replace("/([^,(|]\(+),/", '\\1', $reg);
+
+        // remove all non-paranthetical commas: they are handled by first regex
+        $reg = preg_replace("/,\(/", '(', $reg);
+
+        $this->_pcre_regex = $reg;
+    }
+
+    /**
+     * @param HTMLPurifier_Node[] $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        $list_of_children = '';
+        $nesting = 0; // depth into the nest
+        foreach ($children as $node) {
+            if (!empty($node->is_whitespace)) {
+                continue;
+            }
+            $list_of_children .= $node->name . ',';
+        }
+        // add leading comma to deal with stray comma declarations
+        $list_of_children = ',' . rtrim($list_of_children, ',');
+        $okay =
+            preg_match(
+                '/^,?' . $this->_pcre_regex . '$/',
+                $list_of_children
+            );
+        return (bool)$okay;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php
new file mode 100644
index 0000000..a8a6cbd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * Definition that disallows all elements.
+ * @warning validateChildren() in this class is actually never called, because
+ *          empty elements are corrected in HTMLPurifier_Strategy_MakeWellFormed
+ *          before child definitions are parsed in earnest by
+ *          HTMLPurifier_Strategy_FixNesting.
+ */
+class HTMLPurifier_ChildDef_Empty extends HTMLPurifier_ChildDef
+{
+    /**
+     * @type bool
+     */
+    public $allow_empty = true;
+
+    /**
+     * @type string
+     */
+    public $type = 'empty';
+
+    public function __construct()
+    {
+    }
+
+    /**
+     * @param HTMLPurifier_Node[] $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        return array();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/List.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/List.php
new file mode 100644
index 0000000..891b9f6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/List.php
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * Definition for list containers ul and ol.
+ *
+ * What does this do?  The big thing is to handle ol/ul at the top
+ * level of list nodes, which should be handled specially by /folding/
+ * them into the previous list node.  We generally shouldn't ever
+ * see other disallowed elements, because the autoclose behavior
+ * in MakeWellFormed handles it.
+ */
+class HTMLPurifier_ChildDef_List extends HTMLPurifier_ChildDef
+{
+    /**
+     * @type string
+     */
+    public $type = 'list';
+    /**
+     * @type array
+     */
+    // lying a little bit, so that we can handle ul and ol ourselves
+    // XXX: This whole business with 'wrap' is all a bit unsatisfactory
+    public $elements = array('li' => true, 'ul' => true, 'ol' => true);
+
+    /**
+     * @param array $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        // Flag for subclasses
+        $this->whitespace = false;
+
+        // if there are no tokens, delete parent node
+        if (empty($children)) {
+            return false;
+        }
+
+        // the new set of children
+        $result = array();
+
+        // a little sanity check to make sure it's not ALL whitespace
+        $all_whitespace = true;
+
+        $current_li = false;
+
+        foreach ($children as $node) {
+            if (!empty($node->is_whitespace)) {
+                $result[] = $node;
+                continue;
+            }
+            $all_whitespace = false; // phew, we're not talking about whitespace
+
+            if ($node->name === 'li') {
+                // good
+                $current_li = $node;
+                $result[] = $node;
+            } else {
+                // we want to tuck this into the previous li
+                // Invariant: we expect the node to be ol/ul
+                // ToDo: Make this more robust in the case of not ol/ul
+                // by distinguishing between existing li and li created
+                // to handle non-list elements; non-list elements should
+                // not be appended to an existing li; only li created
+                // for non-list. This distinction is not currently made.
+                if ($current_li === false) {
+                    $current_li = new HTMLPurifier_Node_Element('li');
+                    $result[] = $current_li;
+                }
+                $current_li->children[] = $node;
+                $current_li->empty = false; // XXX fascinating! Check for this error elsewhere ToDo
+            }
+        }
+        if (empty($result)) {
+            return false;
+        }
+        if ($all_whitespace) {
+            return false;
+        }
+        return $result;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php
new file mode 100644
index 0000000..b946806
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Definition that allows a set of elements, and allows no children.
+ * @note This is a hack to reuse code from HTMLPurifier_ChildDef_Required,
+ *       really, one shouldn't inherit from the other.  Only altered behavior
+ *       is to overload a returned false with an array.  Thus, it will never
+ *       return false.
+ */
+class HTMLPurifier_ChildDef_Optional extends HTMLPurifier_ChildDef_Required
+{
+    /**
+     * @type bool
+     */
+    public $allow_empty = true;
+
+    /**
+     * @type string
+     */
+    public $type = 'optional';
+
+    /**
+     * @param array $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        $result = parent::validateChildren($children, $config, $context);
+        // we assume that $children is not modified
+        if ($result === false) {
+            if (empty($children)) {
+                return true;
+            } elseif ($this->whitespace) {
+                return $children;
+            } else {
+                return array();
+            }
+        }
+        return $result;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php
new file mode 100644
index 0000000..0d1c8f5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * Definition that allows a set of elements, but disallows empty children.
+ */
+class HTMLPurifier_ChildDef_Required extends HTMLPurifier_ChildDef
+{
+    /**
+     * Lookup table of allowed elements.
+     * @type array
+     */
+    public $elements = array();
+
+    /**
+     * Whether or not the last passed node was all whitespace.
+     * @type bool
+     */
+    protected $whitespace = false;
+
+    /**
+     * @param array|string $elements List of allowed element names (lowercase).
+     */
+    public function __construct($elements)
+    {
+        if (is_string($elements)) {
+            $elements = str_replace(' ', '', $elements);
+            $elements = explode('|', $elements);
+        }
+        $keys = array_keys($elements);
+        if ($keys == array_keys($keys)) {
+            $elements = array_flip($elements);
+            foreach ($elements as $i => $x) {
+                $elements[$i] = true;
+                if (empty($i)) {
+                    unset($elements[$i]);
+                } // remove blank
+            }
+        }
+        $this->elements = $elements;
+    }
+
+    /**
+     * @type bool
+     */
+    public $allow_empty = false;
+
+    /**
+     * @type string
+     */
+    public $type = 'required';
+
+    /**
+     * @param array $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        // Flag for subclasses
+        $this->whitespace = false;
+
+        // if there are no tokens, delete parent node
+        if (empty($children)) {
+            return false;
+        }
+
+        // the new set of children
+        $result = array();
+
+        // whether or not parsed character data is allowed
+        // this controls whether or not we silently drop a tag
+        // or generate escaped HTML from it
+        $pcdata_allowed = isset($this->elements['#PCDATA']);
+
+        // a little sanity check to make sure it's not ALL whitespace
+        $all_whitespace = true;
+
+        $stack = array_reverse($children);
+        while (!empty($stack)) {
+            $node = array_pop($stack);
+            if (!empty($node->is_whitespace)) {
+                $result[] = $node;
+                continue;
+            }
+            $all_whitespace = false; // phew, we're not talking about whitespace
+
+            if (!isset($this->elements[$node->name])) {
+                // special case text
+                // XXX One of these ought to be redundant or something
+                if ($pcdata_allowed && $node instanceof HTMLPurifier_Node_Text) {
+                    $result[] = $node;
+                    continue;
+                }
+                // spill the child contents in
+                // ToDo: Make configurable
+                if ($node instanceof HTMLPurifier_Node_Element) {
+                    for ($i = count($node->children) - 1; $i >= 0; $i--) {
+                        $stack[] = $node->children[$i];
+                    }
+                    continue;
+                }
+                continue;
+            }
+            $result[] = $node;
+        }
+        if (empty($result)) {
+            return false;
+        }
+        if ($all_whitespace) {
+            $this->whitespace = true;
+            return false;
+        }
+        return $result;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php
new file mode 100644
index 0000000..3270a46
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php
@@ -0,0 +1,110 @@
+<?php
+
+/**
+ * Takes the contents of blockquote when in strict and reformats for validation.
+ */
+class HTMLPurifier_ChildDef_StrictBlockquote extends HTMLPurifier_ChildDef_Required
+{
+    /**
+     * @type array
+     */
+    protected $real_elements;
+
+    /**
+     * @type array
+     */
+    protected $fake_elements;
+
+    /**
+     * @type bool
+     */
+    public $allow_empty = true;
+
+    /**
+     * @type string
+     */
+    public $type = 'strictblockquote';
+
+    /**
+     * @type bool
+     */
+    protected $init = false;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return array
+     * @note We don't want MakeWellFormed to auto-close inline elements since
+     *       they might be allowed.
+     */
+    public function getAllowedElements($config)
+    {
+        $this->init($config);
+        return $this->fake_elements;
+    }
+
+    /**
+     * @param array $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        $this->init($config);
+
+        // trick the parent class into thinking it allows more
+        $this->elements = $this->fake_elements;
+        $result = parent::validateChildren($children, $config, $context);
+        $this->elements = $this->real_elements;
+
+        if ($result === false) {
+            return array();
+        }
+        if ($result === true) {
+            $result = $children;
+        }
+
+        $def = $config->getHTMLDefinition();
+        $block_wrap_name = $def->info_block_wrapper;
+        $block_wrap = false;
+        $ret = array();
+
+        foreach ($result as $node) {
+            if ($block_wrap === false) {
+                if (($node instanceof HTMLPurifier_Node_Text && !$node->is_whitespace) ||
+                    ($node instanceof HTMLPurifier_Node_Element && !isset($this->elements[$node->name]))) {
+                        $block_wrap = new HTMLPurifier_Node_Element($def->info_block_wrapper);
+                        $ret[] = $block_wrap;
+                }
+            } else {
+                if ($node instanceof HTMLPurifier_Node_Element && isset($this->elements[$node->name])) {
+                    $block_wrap = false;
+
+                }
+            }
+            if ($block_wrap) {
+                $block_wrap->children[] = $node;
+            } else {
+                $ret[] = $node;
+            }
+        }
+        return $ret;
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    private function init($config)
+    {
+        if (!$this->init) {
+            $def = $config->getHTMLDefinition();
+            // allow all inline elements
+            $this->real_elements = $this->elements;
+            $this->fake_elements = $def->info_content_sets['Flow'];
+            $this->fake_elements['#PCDATA'] = true;
+            $this->init = true;
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php
new file mode 100644
index 0000000..3e4a0f2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php
@@ -0,0 +1,224 @@
+<?php
+
+/**
+ * Definition for tables.  The general idea is to extract out all of the
+ * essential bits, and then reconstruct it later.
+ *
+ * This is a bit confusing, because the DTDs and the W3C
+ * validators seem to disagree on the appropriate definition. The
+ * DTD claims:
+ *
+ *      (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)
+ *
+ * But actually, the HTML4 spec then has this to say:
+ *
+ *      The TBODY start tag is always required except when the table
+ *      contains only one table body and no table head or foot sections.
+ *      The TBODY end tag may always be safely omitted.
+ *
+ * So the DTD is kind of wrong.  The validator is, unfortunately, kind
+ * of on crack.
+ *
+ * The definition changed again in XHTML1.1; and in my opinion, this
+ * formulation makes the most sense.
+ *
+ *      caption?, ( col* | colgroup* ), (( thead?, tfoot?, tbody+ ) | ( tr+ ))
+ *
+ * Essentially, we have two modes: thead/tfoot/tbody mode, and tr mode.
+ * If we encounter a thead, tfoot or tbody, we are placed in the former
+ * mode, and we *must* wrap any stray tr segments with a tbody. But if
+ * we don't run into any of them, just have tr tags is OK.
+ */
+class HTMLPurifier_ChildDef_Table extends HTMLPurifier_ChildDef
+{
+    /**
+     * @type bool
+     */
+    public $allow_empty = false;
+
+    /**
+     * @type string
+     */
+    public $type = 'table';
+
+    /**
+     * @type array
+     */
+    public $elements = array(
+        'tr' => true,
+        'tbody' => true,
+        'thead' => true,
+        'tfoot' => true,
+        'caption' => true,
+        'colgroup' => true,
+        'col' => true
+    );
+
+    public function __construct()
+    {
+    }
+
+    /**
+     * @param array $children
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array
+     */
+    public function validateChildren($children, $config, $context)
+    {
+        if (empty($children)) {
+            return false;
+        }
+
+        // only one of these elements is allowed in a table
+        $caption = false;
+        $thead = false;
+        $tfoot = false;
+
+        // whitespace
+        $initial_ws = array();
+        $after_caption_ws = array();
+        $after_thead_ws = array();
+        $after_tfoot_ws = array();
+
+        // as many of these as you want
+        $cols = array();
+        $content = array();
+
+        $tbody_mode = false; // if true, then we need to wrap any stray
+                             // <tr>s with a <tbody>.
+
+        $ws_accum =& $initial_ws;
+
+        foreach ($children as $node) {
+            if ($node instanceof HTMLPurifier_Node_Comment) {
+                $ws_accum[] = $node;
+                continue;
+            }
+            switch ($node->name) {
+            case 'tbody':
+                $tbody_mode = true;
+                // fall through
+            case 'tr':
+                $content[] = $node;
+                $ws_accum =& $content;
+                break;
+            case 'caption':
+                // there can only be one caption!
+                if ($caption !== false)  break;
+                $caption = $node;
+                $ws_accum =& $after_caption_ws;
+                break;
+            case 'thead':
+                $tbody_mode = true;
+                // XXX This breaks rendering properties with
+                // Firefox, which never floats a <thead> to
+                // the top. Ever. (Our scheme will float the
+                // first <thead> to the top.)  So maybe
+                // <thead>s that are not first should be
+                // turned into <tbody>? Very tricky, indeed.
+                if ($thead === false) {
+                    $thead = $node;
+                    $ws_accum =& $after_thead_ws;
+                } else {
+                    // Oops, there's a second one! What
+                    // should we do?  Current behavior is to
+                    // transmutate the first and last entries into
+                    // tbody tags, and then put into content.
+                    // Maybe a better idea is to *attach
+                    // it* to the existing thead or tfoot?
+                    // We don't do this, because Firefox
+                    // doesn't float an extra tfoot to the
+                    // bottom like it does for the first one.
+                    $node->name = 'tbody';
+                    $content[] = $node;
+                    $ws_accum =& $content;
+                }
+                break;
+            case 'tfoot':
+                // see above for some aveats
+                $tbody_mode = true;
+                if ($tfoot === false) {
+                    $tfoot = $node;
+                    $ws_accum =& $after_tfoot_ws;
+                } else {
+                    $node->name = 'tbody';
+                    $content[] = $node;
+                    $ws_accum =& $content;
+                }
+                break;
+            case 'colgroup':
+            case 'col':
+                $cols[] = $node;
+                $ws_accum =& $cols;
+                break;
+            case '#PCDATA':
+                // How is whitespace handled? We treat is as sticky to
+                // the *end* of the previous element. So all of the
+                // nonsense we have worked on is to keep things
+                // together.
+                if (!empty($node->is_whitespace)) {
+                    $ws_accum[] = $node;
+                }
+                break;
+            }
+        }
+
+        if (empty($content)) {
+            return false;
+        }
+
+        $ret = $initial_ws;
+        if ($caption !== false) {
+            $ret[] = $caption;
+            $ret = array_merge($ret, $after_caption_ws);
+        }
+        if ($cols !== false) {
+            $ret = array_merge($ret, $cols);
+        }
+        if ($thead !== false) {
+            $ret[] = $thead;
+            $ret = array_merge($ret, $after_thead_ws);
+        }
+        if ($tfoot !== false) {
+            $ret[] = $tfoot;
+            $ret = array_merge($ret, $after_tfoot_ws);
+        }
+
+        if ($tbody_mode) {
+            // we have to shuffle tr into tbody
+            $current_tr_tbody = null;
+
+            foreach($content as $node) {
+                switch ($node->name) {
+                case 'tbody':
+                    $current_tr_tbody = null;
+                    $ret[] = $node;
+                    break;
+                case 'tr':
+                    if ($current_tr_tbody === null) {
+                        $current_tr_tbody = new HTMLPurifier_Node_Element('tbody');
+                        $ret[] = $current_tr_tbody;
+                    }
+                    $current_tr_tbody->children[] = $node;
+                    break;
+                case '#PCDATA':
+                    assert($node->is_whitespace);
+                    if ($current_tr_tbody === null) {
+                        $ret[] = $node;
+                    } else {
+                        $current_tr_tbody->children[] = $node;
+                    }
+                    break;
+                }
+            }
+        } else {
+            $ret = array_merge($ret, $content);
+        }
+
+        return $ret;
+
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Config.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Config.php
new file mode 100644
index 0000000..7ada59b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Config.php
@@ -0,0 +1,911 @@
+<?php
+
+/**
+ * Configuration object that triggers customizable behavior.
+ *
+ * @warning This class is strongly defined: that means that the class
+ *          will fail if an undefined directive is retrieved or set.
+ *
+ * @note Many classes that could (although many times don't) use the
+ *       configuration object make it a mandatory parameter.  This is
+ *       because a configuration object should always be forwarded,
+ *       otherwise, you run the risk of missing a parameter and then
+ *       being stumped when a configuration directive doesn't work.
+ *
+ * @todo Reconsider some of the public member variables
+ */
+class HTMLPurifier_Config
+{
+
+    /**
+     * HTML Purifier's version
+     * @type string
+     */
+    public $version = '4.6.0';
+
+    /**
+     * Whether or not to automatically finalize
+     * the object if a read operation is done.
+     * @type bool
+     */
+    public $autoFinalize = true;
+
+    // protected member variables
+
+    /**
+     * Namespace indexed array of serials for specific namespaces.
+     * @see getSerial() for more info.
+     * @type string[]
+     */
+    protected $serials = array();
+
+    /**
+     * Serial for entire configuration object.
+     * @type string
+     */
+    protected $serial;
+
+    /**
+     * Parser for variables.
+     * @type HTMLPurifier_VarParser_Flexible
+     */
+    protected $parser = null;
+
+    /**
+     * Reference HTMLPurifier_ConfigSchema for value checking.
+     * @type HTMLPurifier_ConfigSchema
+     * @note This is public for introspective purposes. Please don't
+     *       abuse!
+     */
+    public $def;
+
+    /**
+     * Indexed array of definitions.
+     * @type HTMLPurifier_Definition[]
+     */
+    protected $definitions;
+
+    /**
+     * Whether or not config is finalized.
+     * @type bool
+     */
+    protected $finalized = false;
+
+    /**
+     * Property list containing configuration directives.
+     * @type array
+     */
+    protected $plist;
+
+    /**
+     * Whether or not a set is taking place due to an alias lookup.
+     * @type bool
+     */
+    private $aliasMode;
+
+    /**
+     * Set to false if you do not want line and file numbers in errors.
+     * (useful when unit testing).  This will also compress some errors
+     * and exceptions.
+     * @type bool
+     */
+    public $chatty = true;
+
+    /**
+     * Current lock; only gets to this namespace are allowed.
+     * @type string
+     */
+    private $lock;
+
+    /**
+     * Constructor
+     * @param HTMLPurifier_ConfigSchema $definition ConfigSchema that defines
+     * what directives are allowed.
+     * @param HTMLPurifier_PropertyList $parent
+     */
+    public function __construct($definition, $parent = null)
+    {
+        $parent = $parent ? $parent : $definition->defaultPlist;
+        $this->plist = new HTMLPurifier_PropertyList($parent);
+        $this->def = $definition; // keep a copy around for checking
+        $this->parser = new HTMLPurifier_VarParser_Flexible();
+    }
+
+    /**
+     * Convenience constructor that creates a config object based on a mixed var
+     * @param mixed $config Variable that defines the state of the config
+     *                      object. Can be: a HTMLPurifier_Config() object,
+     *                      an array of directives based on loadArray(),
+     *                      or a string filename of an ini file.
+     * @param HTMLPurifier_ConfigSchema $schema Schema object
+     * @return HTMLPurifier_Config Configured object
+     */
+    public static function create($config, $schema = null)
+    {
+        if ($config instanceof HTMLPurifier_Config) {
+            // pass-through
+            return $config;
+        }
+        if (!$schema) {
+            $ret = HTMLPurifier_Config::createDefault();
+        } else {
+            $ret = new HTMLPurifier_Config($schema);
+        }
+        if (is_string($config)) {
+            $ret->loadIni($config);
+        } elseif (is_array($config)) $ret->loadArray($config);
+        return $ret;
+    }
+
+    /**
+     * Creates a new config object that inherits from a previous one.
+     * @param HTMLPurifier_Config $config Configuration object to inherit from.
+     * @return HTMLPurifier_Config object with $config as its parent.
+     */
+    public static function inherit(HTMLPurifier_Config $config)
+    {
+        return new HTMLPurifier_Config($config->def, $config->plist);
+    }
+
+    /**
+     * Convenience constructor that creates a default configuration object.
+     * @return HTMLPurifier_Config default object.
+     */
+    public static function createDefault()
+    {
+        $definition = HTMLPurifier_ConfigSchema::instance();
+        $config = new HTMLPurifier_Config($definition);
+        return $config;
+    }
+
+    /**
+     * Retrieves a value from the configuration.
+     *
+     * @param string $key String key
+     * @param mixed $a
+     *
+     * @return mixed
+     */
+    public function get($key, $a = null)
+    {
+        if ($a !== null) {
+            $this->triggerError(
+                "Using deprecated API: use \$config->get('$key.$a') instead",
+                E_USER_WARNING
+            );
+            $key = "$key.$a";
+        }
+        if (!$this->finalized) {
+            $this->autoFinalize();
+        }
+        if (!isset($this->def->info[$key])) {
+            // can't add % due to SimpleTest bug
+            $this->triggerError(
+                'Cannot retrieve value of undefined directive ' . htmlspecialchars($key),
+                E_USER_WARNING
+            );
+            return;
+        }
+        if (isset($this->def->info[$key]->isAlias)) {
+            $d = $this->def->info[$key];
+            $this->triggerError(
+                'Cannot get value from aliased directive, use real name ' . $d->key,
+                E_USER_ERROR
+            );
+            return;
+        }
+        if ($this->lock) {
+            list($ns) = explode('.', $key);
+            if ($ns !== $this->lock) {
+                $this->triggerError(
+                    'Cannot get value of namespace ' . $ns . ' when lock for ' .
+                    $this->lock .
+                    ' is active, this probably indicates a Definition setup method ' .
+                    'is accessing directives that are not within its namespace',
+                    E_USER_ERROR
+                );
+                return;
+            }
+        }
+        return $this->plist->get($key);
+    }
+
+    /**
+     * Retrieves an array of directives to values from a given namespace
+     *
+     * @param string $namespace String namespace
+     *
+     * @return array
+     */
+    public function getBatch($namespace)
+    {
+        if (!$this->finalized) {
+            $this->autoFinalize();
+        }
+        $full = $this->getAll();
+        if (!isset($full[$namespace])) {
+            $this->triggerError(
+                'Cannot retrieve undefined namespace ' .
+                htmlspecialchars($namespace),
+                E_USER_WARNING
+            );
+            return;
+        }
+        return $full[$namespace];
+    }
+
+    /**
+     * Returns a SHA-1 signature of a segment of the configuration object
+     * that uniquely identifies that particular configuration
+     *
+     * @param string $namespace Namespace to get serial for
+     *
+     * @return string
+     * @note Revision is handled specially and is removed from the batch
+     *       before processing!
+     */
+    public function getBatchSerial($namespace)
+    {
+        if (empty($this->serials[$namespace])) {
+            $batch = $this->getBatch($namespace);
+            unset($batch['DefinitionRev']);
+            $this->serials[$namespace] = sha1(serialize($batch));
+        }
+        return $this->serials[$namespace];
+    }
+
+    /**
+     * Returns a SHA-1 signature for the entire configuration object
+     * that uniquely identifies that particular configuration
+     *
+     * @return string
+     */
+    public function getSerial()
+    {
+        if (empty($this->serial)) {
+            $this->serial = sha1(serialize($this->getAll()));
+        }
+        return $this->serial;
+    }
+
+    /**
+     * Retrieves all directives, organized by namespace
+     *
+     * @warning This is a pretty inefficient function, avoid if you can
+     */
+    public function getAll()
+    {
+        if (!$this->finalized) {
+            $this->autoFinalize();
+        }
+        $ret = array();
+        foreach ($this->plist->squash() as $name => $value) {
+            list($ns, $key) = explode('.', $name, 2);
+            $ret[$ns][$key] = $value;
+        }
+        return $ret;
+    }
+
+    /**
+     * Sets a value to configuration.
+     *
+     * @param string $key key
+     * @param mixed $value value
+     * @param mixed $a
+     */
+    public function set($key, $value, $a = null)
+    {
+        if (strpos($key, '.') === false) {
+            $namespace = $key;
+            $directive = $value;
+            $value = $a;
+            $key = "$key.$directive";
+            $this->triggerError("Using deprecated API: use \$config->set('$key', ...) instead", E_USER_NOTICE);
+        } else {
+            list($namespace) = explode('.', $key);
+        }
+        if ($this->isFinalized('Cannot set directive after finalization')) {
+            return;
+        }
+        if (!isset($this->def->info[$key])) {
+            $this->triggerError(
+                'Cannot set undefined directive ' . htmlspecialchars($key) . ' to value',
+                E_USER_WARNING
+            );
+            return;
+        }
+        $def = $this->def->info[$key];
+
+        if (isset($def->isAlias)) {
+            if ($this->aliasMode) {
+                $this->triggerError(
+                    'Double-aliases not allowed, please fix '.
+                    'ConfigSchema bug with' . $key,
+                    E_USER_ERROR
+                );
+                return;
+            }
+            $this->aliasMode = true;
+            $this->set($def->key, $value);
+            $this->aliasMode = false;
+            $this->triggerError("$key is an alias, preferred directive name is {$def->key}", E_USER_NOTICE);
+            return;
+        }
+
+        // Raw type might be negative when using the fully optimized form
+        // of stdclass, which indicates allow_null == true
+        $rtype = is_int($def) ? $def : $def->type;
+        if ($rtype < 0) {
+            $type = -$rtype;
+            $allow_null = true;
+        } else {
+            $type = $rtype;
+            $allow_null = isset($def->allow_null);
+        }
+
+        try {
+            $value = $this->parser->parse($value, $type, $allow_null);
+        } catch (HTMLPurifier_VarParserException $e) {
+            $this->triggerError(
+                'Value for ' . $key . ' is of invalid type, should be ' .
+                HTMLPurifier_VarParser::getTypeName($type),
+                E_USER_WARNING
+            );
+            return;
+        }
+        if (is_string($value) && is_object($def)) {
+            // resolve value alias if defined
+            if (isset($def->aliases[$value])) {
+                $value = $def->aliases[$value];
+            }
+            // check to see if the value is allowed
+            if (isset($def->allowed) && !isset($def->allowed[$value])) {
+                $this->triggerError(
+                    'Value not supported, valid values are: ' .
+                    $this->_listify($def->allowed),
+                    E_USER_WARNING
+                );
+                return;
+            }
+        }
+        $this->plist->set($key, $value);
+
+        // reset definitions if the directives they depend on changed
+        // this is a very costly process, so it's discouraged
+        // with finalization
+        if ($namespace == 'HTML' || $namespace == 'CSS' || $namespace == 'URI') {
+            $this->definitions[$namespace] = null;
+        }
+
+        $this->serials[$namespace] = false;
+    }
+
+    /**
+     * Convenience function for error reporting
+     *
+     * @param array $lookup
+     *
+     * @return string
+     */
+    private function _listify($lookup)
+    {
+        $list = array();
+        foreach ($lookup as $name => $b) {
+            $list[] = $name;
+        }
+        return implode(', ', $list);
+    }
+
+    /**
+     * Retrieves object reference to the HTML definition.
+     *
+     * @param bool $raw Return a copy that has not been setup yet. Must be
+     *             called before it's been setup, otherwise won't work.
+     * @param bool $optimized If true, this method may return null, to
+     *             indicate that a cached version of the modified
+     *             definition object is available and no further edits
+     *             are necessary.  Consider using
+     *             maybeGetRawHTMLDefinition, which is more explicitly
+     *             named, instead.
+     *
+     * @return HTMLPurifier_HTMLDefinition
+     */
+    public function getHTMLDefinition($raw = false, $optimized = false)
+    {
+        return $this->getDefinition('HTML', $raw, $optimized);
+    }
+
+    /**
+     * Retrieves object reference to the CSS definition
+     *
+     * @param bool $raw Return a copy that has not been setup yet. Must be
+     *             called before it's been setup, otherwise won't work.
+     * @param bool $optimized If true, this method may return null, to
+     *             indicate that a cached version of the modified
+     *             definition object is available and no further edits
+     *             are necessary.  Consider using
+     *             maybeGetRawCSSDefinition, which is more explicitly
+     *             named, instead.
+     *
+     * @return HTMLPurifier_CSSDefinition
+     */
+    public function getCSSDefinition($raw = false, $optimized = false)
+    {
+        return $this->getDefinition('CSS', $raw, $optimized);
+    }
+
+    /**
+     * Retrieves object reference to the URI definition
+     *
+     * @param bool $raw Return a copy that has not been setup yet. Must be
+     *             called before it's been setup, otherwise won't work.
+     * @param bool $optimized If true, this method may return null, to
+     *             indicate that a cached version of the modified
+     *             definition object is available and no further edits
+     *             are necessary.  Consider using
+     *             maybeGetRawURIDefinition, which is more explicitly
+     *             named, instead.
+     *
+     * @return HTMLPurifier_URIDefinition
+     */
+    public function getURIDefinition($raw = false, $optimized = false)
+    {
+        return $this->getDefinition('URI', $raw, $optimized);
+    }
+
+    /**
+     * Retrieves a definition
+     *
+     * @param string $type Type of definition: HTML, CSS, etc
+     * @param bool $raw Whether or not definition should be returned raw
+     * @param bool $optimized Only has an effect when $raw is true.  Whether
+     *        or not to return null if the result is already present in
+     *        the cache.  This is off by default for backwards
+     *        compatibility reasons, but you need to do things this
+     *        way in order to ensure that caching is done properly.
+     *        Check out enduser-customize.html for more details.
+     *        We probably won't ever change this default, as much as the
+     *        maybe semantics is the "right thing to do."
+     *
+     * @throws HTMLPurifier_Exception
+     * @return HTMLPurifier_Definition
+     */
+    public function getDefinition($type, $raw = false, $optimized = false)
+    {
+        if ($optimized && !$raw) {
+            throw new HTMLPurifier_Exception("Cannot set optimized = true when raw = false");
+        }
+        if (!$this->finalized) {
+            $this->autoFinalize();
+        }
+        // temporarily suspend locks, so we can handle recursive definition calls
+        $lock = $this->lock;
+        $this->lock = null;
+        $factory = HTMLPurifier_DefinitionCacheFactory::instance();
+        $cache = $factory->create($type, $this);
+        $this->lock = $lock;
+        if (!$raw) {
+            // full definition
+            // ---------------
+            // check if definition is in memory
+            if (!empty($this->definitions[$type])) {
+                $def = $this->definitions[$type];
+                // check if the definition is setup
+                if ($def->setup) {
+                    return $def;
+                } else {
+                    $def->setup($this);
+                    if ($def->optimized) {
+                        $cache->add($def, $this);
+                    }
+                    return $def;
+                }
+            }
+            // check if definition is in cache
+            $def = $cache->get($this);
+            if ($def) {
+                // definition in cache, save to memory and return it
+                $this->definitions[$type] = $def;
+                return $def;
+            }
+            // initialize it
+            $def = $this->initDefinition($type);
+            // set it up
+            $this->lock = $type;
+            $def->setup($this);
+            $this->lock = null;
+            // save in cache
+            $cache->add($def, $this);
+            // return it
+            return $def;
+        } else {
+            // raw definition
+            // --------------
+            // check preconditions
+            $def = null;
+            if ($optimized) {
+                if (is_null($this->get($type . '.DefinitionID'))) {
+                    // fatally error out if definition ID not set
+                    throw new HTMLPurifier_Exception(
+                        "Cannot retrieve raw version without specifying %$type.DefinitionID"
+                    );
+                }
+            }
+            if (!empty($this->definitions[$type])) {
+                $def = $this->definitions[$type];
+                if ($def->setup && !$optimized) {
+                    $extra = $this->chatty ?
+                        " (try moving this code block earlier in your initialization)" :
+                        "";
+                    throw new HTMLPurifier_Exception(
+                        "Cannot retrieve raw definition after it has already been setup" .
+                        $extra
+                    );
+                }
+                if ($def->optimized === null) {
+                    $extra = $this->chatty ? " (try flushing your cache)" : "";
+                    throw new HTMLPurifier_Exception(
+                        "Optimization status of definition is unknown" . $extra
+                    );
+                }
+                if ($def->optimized !== $optimized) {
+                    $msg = $optimized ? "optimized" : "unoptimized";
+                    $extra = $this->chatty ?
+                        " (this backtrace is for the first inconsistent call, which was for a $msg raw definition)"
+                        : "";
+                    throw new HTMLPurifier_Exception(
+                        "Inconsistent use of optimized and unoptimized raw definition retrievals" . $extra
+                    );
+                }
+            }
+            // check if definition was in memory
+            if ($def) {
+                if ($def->setup) {
+                    // invariant: $optimized === true (checked above)
+                    return null;
+                } else {
+                    return $def;
+                }
+            }
+            // if optimized, check if definition was in cache
+            // (because we do the memory check first, this formulation
+            // is prone to cache slamming, but I think
+            // guaranteeing that either /all/ of the raw
+            // setup code or /none/ of it is run is more important.)
+            if ($optimized) {
+                // This code path only gets run once; once we put
+                // something in $definitions (which is guaranteed by the
+                // trailing code), we always short-circuit above.
+                $def = $cache->get($this);
+                if ($def) {
+                    // save the full definition for later, but don't
+                    // return it yet
+                    $this->definitions[$type] = $def;
+                    return null;
+                }
+            }
+            // check invariants for creation
+            if (!$optimized) {
+                if (!is_null($this->get($type . '.DefinitionID'))) {
+                    if ($this->chatty) {
+                        $this->triggerError(
+                            'Due to a documentation error in previous version of HTML Purifier, your ' .
+                            'definitions are not being cached.  If this is OK, you can remove the ' .
+                            '%$type.DefinitionRev and %$type.DefinitionID declaration.  Otherwise, ' .
+                            'modify your code to use maybeGetRawDefinition, and test if the returned ' .
+                            'value is null before making any edits (if it is null, that means that a ' .
+                            'cached version is available, and no raw operations are necessary).  See ' .
+                            '<a href="http://htmlpurifier.org/docs/enduser-customize.html#optimized">' .
+                            'Customize</a> for more details',
+                            E_USER_WARNING
+                        );
+                    } else {
+                        $this->triggerError(
+                            "Useless DefinitionID declaration",
+                            E_USER_WARNING
+                        );
+                    }
+                }
+            }
+            // initialize it
+            $def = $this->initDefinition($type);
+            $def->optimized = $optimized;
+            return $def;
+        }
+        throw new HTMLPurifier_Exception("The impossible happened!");
+    }
+
+    /**
+     * Initialise definition
+     *
+     * @param string $type What type of definition to create
+     *
+     * @return HTMLPurifier_CSSDefinition|HTMLPurifier_HTMLDefinition|HTMLPurifier_URIDefinition
+     * @throws HTMLPurifier_Exception
+     */
+    private function initDefinition($type)
+    {
+        // quick checks failed, let's create the object
+        if ($type == 'HTML') {
+            $def = new HTMLPurifier_HTMLDefinition();
+        } elseif ($type == 'CSS') {
+            $def = new HTMLPurifier_CSSDefinition();
+        } elseif ($type == 'URI') {
+            $def = new HTMLPurifier_URIDefinition();
+        } else {
+            throw new HTMLPurifier_Exception(
+                "Definition of $type type not supported"
+            );
+        }
+        $this->definitions[$type] = $def;
+        return $def;
+    }
+
+    public function maybeGetRawDefinition($name)
+    {
+        return $this->getDefinition($name, true, true);
+    }
+
+    public function maybeGetRawHTMLDefinition()
+    {
+        return $this->getDefinition('HTML', true, true);
+    }
+
+    public function maybeGetRawCSSDefinition()
+    {
+        return $this->getDefinition('CSS', true, true);
+    }
+
+    public function maybeGetRawURIDefinition()
+    {
+        return $this->getDefinition('URI', true, true);
+    }
+
+    /**
+     * Loads configuration values from an array with the following structure:
+     * Namespace.Directive => Value
+     *
+     * @param array $config_array Configuration associative array
+     */
+    public function loadArray($config_array)
+    {
+        if ($this->isFinalized('Cannot load directives after finalization')) {
+            return;
+        }
+        foreach ($config_array as $key => $value) {
+            $key = str_replace('_', '.', $key);
+            if (strpos($key, '.') !== false) {
+                $this->set($key, $value);
+            } else {
+                $namespace = $key;
+                $namespace_values = $value;
+                foreach ($namespace_values as $directive => $value2) {
+                    $this->set($namespace .'.'. $directive, $value2);
+                }
+            }
+        }
+    }
+
+    /**
+     * Returns a list of array(namespace, directive) for all directives
+     * that are allowed in a web-form context as per an allowed
+     * namespaces/directives list.
+     *
+     * @param array $allowed List of allowed namespaces/directives
+     * @param HTMLPurifier_ConfigSchema $schema Schema to use, if not global copy
+     *
+     * @return array
+     */
+    public static function getAllowedDirectivesForForm($allowed, $schema = null)
+    {
+        if (!$schema) {
+            $schema = HTMLPurifier_ConfigSchema::instance();
+        }
+        if ($allowed !== true) {
+            if (is_string($allowed)) {
+                $allowed = array($allowed);
+            }
+            $allowed_ns = array();
+            $allowed_directives = array();
+            $blacklisted_directives = array();
+            foreach ($allowed as $ns_or_directive) {
+                if (strpos($ns_or_directive, '.') !== false) {
+                    // directive
+                    if ($ns_or_directive[0] == '-') {
+                        $blacklisted_directives[substr($ns_or_directive, 1)] = true;
+                    } else {
+                        $allowed_directives[$ns_or_directive] = true;
+                    }
+                } else {
+                    // namespace
+                    $allowed_ns[$ns_or_directive] = true;
+                }
+            }
+        }
+        $ret = array();
+        foreach ($schema->info as $key => $def) {
+            list($ns, $directive) = explode('.', $key, 2);
+            if ($allowed !== true) {
+                if (isset($blacklisted_directives["$ns.$directive"])) {
+                    continue;
+                }
+                if (!isset($allowed_directives["$ns.$directive"]) && !isset($allowed_ns[$ns])) {
+                    continue;
+                }
+            }
+            if (isset($def->isAlias)) {
+                continue;
+            }
+            if ($directive == 'DefinitionID' || $directive == 'DefinitionRev') {
+                continue;
+            }
+            $ret[] = array($ns, $directive);
+        }
+        return $ret;
+    }
+
+    /**
+     * Loads configuration values from $_GET/$_POST that were posted
+     * via ConfigForm
+     *
+     * @param array $array $_GET or $_POST array to import
+     * @param string|bool $index Index/name that the config variables are in
+     * @param array|bool $allowed List of allowed namespaces/directives
+     * @param bool $mq_fix Boolean whether or not to enable magic quotes fix
+     * @param HTMLPurifier_ConfigSchema $schema Schema to use, if not global copy
+     *
+     * @return mixed
+     */
+    public static function loadArrayFromForm($array, $index = false, $allowed = true, $mq_fix = true, $schema = null)
+    {
+        $ret = HTMLPurifier_Config::prepareArrayFromForm($array, $index, $allowed, $mq_fix, $schema);
+        $config = HTMLPurifier_Config::create($ret, $schema);
+        return $config;
+    }
+
+    /**
+     * Merges in configuration values from $_GET/$_POST to object. NOT STATIC.
+     *
+     * @param array $array $_GET or $_POST array to import
+     * @param string|bool $index Index/name that the config variables are in
+     * @param array|bool $allowed List of allowed namespaces/directives
+     * @param bool $mq_fix Boolean whether or not to enable magic quotes fix
+     */
+    public function mergeArrayFromForm($array, $index = false, $allowed = true, $mq_fix = true)
+    {
+         $ret = HTMLPurifier_Config::prepareArrayFromForm($array, $index, $allowed, $mq_fix, $this->def);
+         $this->loadArray($ret);
+    }
+
+    /**
+     * Prepares an array from a form into something usable for the more
+     * strict parts of HTMLPurifier_Config
+     *
+     * @param array $array $_GET or $_POST array to import
+     * @param string|bool $index Index/name that the config variables are in
+     * @param array|bool $allowed List of allowed namespaces/directives
+     * @param bool $mq_fix Boolean whether or not to enable magic quotes fix
+     * @param HTMLPurifier_ConfigSchema $schema Schema to use, if not global copy
+     *
+     * @return array
+     */
+    public static function prepareArrayFromForm($array, $index = false, $allowed = true, $mq_fix = true, $schema = null)
+    {
+        if ($index !== false) {
+            $array = (isset($array[$index]) && is_array($array[$index])) ? $array[$index] : array();
+        }
+        $mq = $mq_fix && function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc();
+
+        $allowed = HTMLPurifier_Config::getAllowedDirectivesForForm($allowed, $schema);
+        $ret = array();
+        foreach ($allowed as $key) {
+            list($ns, $directive) = $key;
+            $skey = "$ns.$directive";
+            if (!empty($array["Null_$skey"])) {
+                $ret[$ns][$directive] = null;
+                continue;
+            }
+            if (!isset($array[$skey])) {
+                continue;
+            }
+            $value = $mq ? stripslashes($array[$skey]) : $array[$skey];
+            $ret[$ns][$directive] = $value;
+        }
+        return $ret;
+    }
+
+    /**
+     * Loads configuration values from an ini file
+     *
+     * @param string $filename Name of ini file
+     */
+    public function loadIni($filename)
+    {
+        if ($this->isFinalized('Cannot load directives after finalization')) {
+            return;
+        }
+        $array = parse_ini_file($filename, true);
+        $this->loadArray($array);
+    }
+
+    /**
+     * Checks whether or not the configuration object is finalized.
+     *
+     * @param string|bool $error String error message, or false for no error
+     *
+     * @return bool
+     */
+    public function isFinalized($error = false)
+    {
+        if ($this->finalized && $error) {
+            $this->triggerError($error, E_USER_ERROR);
+        }
+        return $this->finalized;
+    }
+
+    /**
+     * Finalizes configuration only if auto finalize is on and not
+     * already finalized
+     */
+    public function autoFinalize()
+    {
+        if ($this->autoFinalize) {
+            $this->finalize();
+        } else {
+            $this->plist->squash(true);
+        }
+    }
+
+    /**
+     * Finalizes a configuration object, prohibiting further change
+     */
+    public function finalize()
+    {
+        $this->finalized = true;
+        $this->parser = null;
+    }
+
+    /**
+     * Produces a nicely formatted error message by supplying the
+     * stack frame information OUTSIDE of HTMLPurifier_Config.
+     *
+     * @param string $msg An error message
+     * @param int $no An error number
+     */
+    protected function triggerError($msg, $no)
+    {
+        // determine previous stack frame
+        $extra = '';
+        if ($this->chatty) {
+            $trace = debug_backtrace();
+            // zip(tail(trace), trace) -- but PHP is not Haskell har har
+            for ($i = 0, $c = count($trace); $i < $c - 1; $i++) {
+                // XXX this is not correct on some versions of HTML Purifier
+                if ($trace[$i + 1]['class'] === 'HTMLPurifier_Config') {
+                    continue;
+                }
+                $frame = $trace[$i];
+                $extra = " invoked on line {$frame['line']} in file {$frame['file']}";
+                break;
+            }
+        }
+        trigger_error($msg . $extra, $no);
+    }
+
+    /**
+     * Returns a serialized form of the configuration object that can
+     * be reconstituted.
+     *
+     * @return string
+     */
+    public function serialize()
+    {
+        $this->getDefinition('HTML');
+        $this->getDefinition('CSS');
+        $this->getDefinition('URI');
+        return serialize($this);
+    }
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema.php
new file mode 100644
index 0000000..bfbb0f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema.php
@@ -0,0 +1,176 @@
+<?php
+
+/**
+ * Configuration definition, defines directives and their defaults.
+ */
+class HTMLPurifier_ConfigSchema
+{
+    /**
+     * Defaults of the directives and namespaces.
+     * @type array
+     * @note This shares the exact same structure as HTMLPurifier_Config::$conf
+     */
+    public $defaults = array();
+
+    /**
+     * The default property list. Do not edit this property list.
+     * @type array
+     */
+    public $defaultPlist;
+
+    /**
+     * Definition of the directives.
+     * The structure of this is:
+     *
+     *  array(
+     *      'Namespace' => array(
+     *          'Directive' => new stdclass(),
+     *      )
+     *  )
+     *
+     * The stdclass may have the following properties:
+     *
+     *  - If isAlias isn't set:
+     *      - type: Integer type of directive, see HTMLPurifier_VarParser for definitions
+     *      - allow_null: If set, this directive allows null values
+     *      - aliases: If set, an associative array of value aliases to real values
+     *      - allowed: If set, a lookup array of allowed (string) values
+     *  - If isAlias is set:
+     *      - namespace: Namespace this directive aliases to
+     *      - name: Directive name this directive aliases to
+     *
+     * In certain degenerate cases, stdclass will actually be an integer. In
+     * that case, the value is equivalent to an stdclass with the type
+     * property set to the integer. If the integer is negative, type is
+     * equal to the absolute value of integer, and allow_null is true.
+     *
+     * This class is friendly with HTMLPurifier_Config. If you need introspection
+     * about the schema, you're better of using the ConfigSchema_Interchange,
+     * which uses more memory but has much richer information.
+     * @type array
+     */
+    public $info = array();
+
+    /**
+     * Application-wide singleton
+     * @type HTMLPurifier_ConfigSchema
+     */
+    protected static $singleton;
+
+    public function __construct()
+    {
+        $this->defaultPlist = new HTMLPurifier_PropertyList();
+    }
+
+    /**
+     * Unserializes the default ConfigSchema.
+     * @return HTMLPurifier_ConfigSchema
+     */
+    public static function makeFromSerial()
+    {
+        $contents = file_get_contents(HTMLPURIFIER_PREFIX . '/HTMLPurifier/ConfigSchema/schema.ser');
+        $r = unserialize($contents);
+        if (!$r) {
+            $hash = sha1($contents);
+            trigger_error("Unserialization of configuration schema failed, sha1 of file was $hash", E_USER_ERROR);
+        }
+        return $r;
+    }
+
+    /**
+     * Retrieves an instance of the application-wide configuration definition.
+     * @param HTMLPurifier_ConfigSchema $prototype
+     * @return HTMLPurifier_ConfigSchema
+     */
+    public static function instance($prototype = null)
+    {
+        if ($prototype !== null) {
+            HTMLPurifier_ConfigSchema::$singleton = $prototype;
+        } elseif (HTMLPurifier_ConfigSchema::$singleton === null || $prototype === true) {
+            HTMLPurifier_ConfigSchema::$singleton = HTMLPurifier_ConfigSchema::makeFromSerial();
+        }
+        return HTMLPurifier_ConfigSchema::$singleton;
+    }
+
+    /**
+     * Defines a directive for configuration
+     * @warning Will fail of directive's namespace is defined.
+     * @warning This method's signature is slightly different from the legacy
+     *          define() static method! Beware!
+     * @param string $key Name of directive
+     * @param mixed $default Default value of directive
+     * @param string $type Allowed type of the directive. See
+     *      HTMLPurifier_DirectiveDef::$type for allowed values
+     * @param bool $allow_null Whether or not to allow null values
+     */
+    public function add($key, $default, $type, $allow_null)
+    {
+        $obj = new stdclass();
+        $obj->type = is_int($type) ? $type : HTMLPurifier_VarParser::$types[$type];
+        if ($allow_null) {
+            $obj->allow_null = true;
+        }
+        $this->info[$key] = $obj;
+        $this->defaults[$key] = $default;
+        $this->defaultPlist->set($key, $default);
+    }
+
+    /**
+     * Defines a directive value alias.
+     *
+     * Directive value aliases are convenient for developers because it lets
+     * them set a directive to several values and get the same result.
+     * @param string $key Name of Directive
+     * @param array $aliases Hash of aliased values to the real alias
+     */
+    public function addValueAliases($key, $aliases)
+    {
+        if (!isset($this->info[$key]->aliases)) {
+            $this->info[$key]->aliases = array();
+        }
+        foreach ($aliases as $alias => $real) {
+            $this->info[$key]->aliases[$alias] = $real;
+        }
+    }
+
+    /**
+     * Defines a set of allowed values for a directive.
+     * @warning This is slightly different from the corresponding static
+     *          method definition.
+     * @param string $key Name of directive
+     * @param array $allowed Lookup array of allowed values
+     */
+    public function addAllowedValues($key, $allowed)
+    {
+        $this->info[$key]->allowed = $allowed;
+    }
+
+    /**
+     * Defines a directive alias for backwards compatibility
+     * @param string $key Directive that will be aliased
+     * @param string $new_key Directive that the alias will be to
+     */
+    public function addAlias($key, $new_key)
+    {
+        $obj = new stdclass;
+        $obj->key = $new_key;
+        $obj->isAlias = true;
+        $this->info[$key] = $obj;
+    }
+
+    /**
+     * Replaces any stdclass that only has the type property with type integer.
+     */
+    public function postProcess()
+    {
+        foreach ($this->info as $key => $v) {
+            if (count((array) $v) == 1) {
+                $this->info[$key] = $v->type;
+            } elseif (count((array) $v) == 2 && isset($v->allow_null)) {
+                $this->info[$key] = -$v->type;
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
new file mode 100644
index 0000000..d5906cd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * Converts HTMLPurifier_ConfigSchema_Interchange to our runtime
+ * representation used to perform checks on user configuration.
+ */
+class HTMLPurifier_ConfigSchema_Builder_ConfigSchema
+{
+
+    /**
+     * @param HTMLPurifier_ConfigSchema_Interchange $interchange
+     * @return HTMLPurifier_ConfigSchema
+     */
+    public function build($interchange)
+    {
+        $schema = new HTMLPurifier_ConfigSchema();
+        foreach ($interchange->directives as $d) {
+            $schema->add(
+                $d->id->key,
+                $d->default,
+                $d->type,
+                $d->typeAllowsNull
+            );
+            if ($d->allowed !== null) {
+                $schema->addAllowedValues(
+                    $d->id->key,
+                    $d->allowed
+                );
+            }
+            foreach ($d->aliases as $alias) {
+                $schema->addAlias(
+                    $alias->key,
+                    $d->id->key
+                );
+            }
+            if ($d->valueAliases !== null) {
+                $schema->addValueAliases(
+                    $d->id->key,
+                    $d->valueAliases
+                );
+            }
+        }
+        $schema->postProcess();
+        return $schema;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php
new file mode 100644
index 0000000..5fa56f7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php
@@ -0,0 +1,144 @@
+<?php
+
+/**
+ * Converts HTMLPurifier_ConfigSchema_Interchange to an XML format,
+ * which can be further processed to generate documentation.
+ */
+class HTMLPurifier_ConfigSchema_Builder_Xml extends XMLWriter
+{
+
+    /**
+     * @type HTMLPurifier_ConfigSchema_Interchange
+     */
+    protected $interchange;
+
+    /**
+     * @type string
+     */
+    private $namespace;
+
+    /**
+     * @param string $html
+     */
+    protected function writeHTMLDiv($html)
+    {
+        $this->startElement('div');
+
+        $purifier = HTMLPurifier::getInstance();
+        $html = $purifier->purify($html);
+        $this->writeAttribute('xmlns', 'http://www.w3.org/1999/xhtml');
+        $this->writeRaw($html);
+
+        $this->endElement(); // div
+    }
+
+    /**
+     * @param mixed $var
+     * @return string
+     */
+    protected function export($var)
+    {
+        if ($var === array()) {
+            return 'array()';
+        }
+        return var_export($var, true);
+    }
+
+    /**
+     * @param HTMLPurifier_ConfigSchema_Interchange $interchange
+     */
+    public function build($interchange)
+    {
+        // global access, only use as last resort
+        $this->interchange = $interchange;
+
+        $this->setIndent(true);
+        $this->startDocument('1.0', 'UTF-8');
+        $this->startElement('configdoc');
+        $this->writeElement('title', $interchange->name);
+
+        foreach ($interchange->directives as $directive) {
+            $this->buildDirective($directive);
+        }
+
+        if ($this->namespace) {
+            $this->endElement();
+        } // namespace
+
+        $this->endElement(); // configdoc
+        $this->flush();
+    }
+
+    /**
+     * @param HTMLPurifier_ConfigSchema_Interchange_Directive $directive
+     */
+    public function buildDirective($directive)
+    {
+        // Kludge, although I suppose having a notion of a "root namespace"
+        // certainly makes things look nicer when documentation is built.
+        // Depends on things being sorted.
+        if (!$this->namespace || $this->namespace !== $directive->id->getRootNamespace()) {
+            if ($this->namespace) {
+                $this->endElement();
+            } // namespace
+            $this->namespace = $directive->id->getRootNamespace();
+            $this->startElement('namespace');
+            $this->writeAttribute('id', $this->namespace);
+            $this->writeElement('name', $this->namespace);
+        }
+
+        $this->startElement('directive');
+        $this->writeAttribute('id', $directive->id->toString());
+
+        $this->writeElement('name', $directive->id->getDirective());
+
+        $this->startElement('aliases');
+        foreach ($directive->aliases as $alias) {
+            $this->writeElement('alias', $alias->toString());
+        }
+        $this->endElement(); // aliases
+
+        $this->startElement('constraints');
+        if ($directive->version) {
+            $this->writeElement('version', $directive->version);
+        }
+        $this->startElement('type');
+        if ($directive->typeAllowsNull) {
+            $this->writeAttribute('allow-null', 'yes');
+        }
+        $this->text($directive->type);
+        $this->endElement(); // type
+        if ($directive->allowed) {
+            $this->startElement('allowed');
+            foreach ($directive->allowed as $value => $x) {
+                $this->writeElement('value', $value);
+            }
+            $this->endElement(); // allowed
+        }
+        $this->writeElement('default', $this->export($directive->default));
+        $this->writeAttribute('xml:space', 'preserve');
+        if ($directive->external) {
+            $this->startElement('external');
+            foreach ($directive->external as $project) {
+                $this->writeElement('project', $project);
+            }
+            $this->endElement();
+        }
+        $this->endElement(); // constraints
+
+        if ($directive->deprecatedVersion) {
+            $this->startElement('deprecated');
+            $this->writeElement('version', $directive->deprecatedVersion);
+            $this->writeElement('use', $directive->deprecatedUse->toString());
+            $this->endElement(); // deprecated
+        }
+
+        $this->startElement('description');
+        $this->writeHTMLDiv($directive->description);
+        $this->endElement(); // description
+
+        $this->endElement(); // directive
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php
new file mode 100644
index 0000000..2671516
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Exceptions related to configuration schema
+ */
+class HTMLPurifier_ConfigSchema_Exception extends HTMLPurifier_Exception
+{
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php
new file mode 100644
index 0000000..0e08ae8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * Generic schema interchange format that can be converted to a runtime
+ * representation (HTMLPurifier_ConfigSchema) or HTML documentation. Members
+ * are completely validated.
+ */
+class HTMLPurifier_ConfigSchema_Interchange
+{
+
+    /**
+     * Name of the application this schema is describing.
+     * @type string
+     */
+    public $name;
+
+    /**
+     * Array of Directive ID => array(directive info)
+     * @type HTMLPurifier_ConfigSchema_Interchange_Directive[]
+     */
+    public $directives = array();
+
+    /**
+     * Adds a directive array to $directives
+     * @param HTMLPurifier_ConfigSchema_Interchange_Directive $directive
+     * @throws HTMLPurifier_ConfigSchema_Exception
+     */
+    public function addDirective($directive)
+    {
+        if (isset($this->directives[$i = $directive->id->toString()])) {
+            throw new HTMLPurifier_ConfigSchema_Exception("Cannot redefine directive '$i'");
+        }
+        $this->directives[$i] = $directive;
+    }
+
+    /**
+     * Convenience function to perform standard validation. Throws exception
+     * on failed validation.
+     */
+    public function validate()
+    {
+        $validator = new HTMLPurifier_ConfigSchema_Validator();
+        return $validator->validate($this);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php
new file mode 100644
index 0000000..127a39a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * Interchange component class describing configuration directives.
+ */
+class HTMLPurifier_ConfigSchema_Interchange_Directive
+{
+
+    /**
+     * ID of directive.
+     * @type HTMLPurifier_ConfigSchema_Interchange_Id
+     */
+    public $id;
+
+    /**
+     * Type, e.g. 'integer' or 'istring'.
+     * @type string
+     */
+    public $type;
+
+    /**
+     * Default value, e.g. 3 or 'DefaultVal'.
+     * @type mixed
+     */
+    public $default;
+
+    /**
+     * HTML description.
+     * @type string
+     */
+    public $description;
+
+    /**
+     * Whether or not null is allowed as a value.
+     * @type bool
+     */
+    public $typeAllowsNull = false;
+
+    /**
+     * Lookup table of allowed scalar values.
+     * e.g. array('allowed' => true).
+     * Null if all values are allowed.
+     * @type array
+     */
+    public $allowed;
+
+    /**
+     * List of aliases for the directive.
+     * e.g. array(new HTMLPurifier_ConfigSchema_Interchange_Id('Ns', 'Dir'))).
+     * @type HTMLPurifier_ConfigSchema_Interchange_Id[]
+     */
+    public $aliases = array();
+
+    /**
+     * Hash of value aliases, e.g. array('alt' => 'real'). Null if value
+     * aliasing is disabled (necessary for non-scalar types).
+     * @type array
+     */
+    public $valueAliases;
+
+    /**
+     * Version of HTML Purifier the directive was introduced, e.g. '1.3.1'.
+     * Null if the directive has always existed.
+     * @type string
+     */
+    public $version;
+
+    /**
+     * ID of directive that supercedes this old directive.
+     * Null if not deprecated.
+     * @type HTMLPurifier_ConfigSchema_Interchange_Id
+     */
+    public $deprecatedUse;
+
+    /**
+     * Version of HTML Purifier this directive was deprecated. Null if not
+     * deprecated.
+     * @type string
+     */
+    public $deprecatedVersion;
+
+    /**
+     * List of external projects this directive depends on, e.g. array('CSSTidy').
+     * @type array
+     */
+    public $external = array();
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php
new file mode 100644
index 0000000..126f09d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Represents a directive ID in the interchange format.
+ */
+class HTMLPurifier_ConfigSchema_Interchange_Id
+{
+
+    /**
+     * @type string
+     */
+    public $key;
+
+    /**
+     * @param string $key
+     */
+    public function __construct($key)
+    {
+        $this->key = $key;
+    }
+
+    /**
+     * @return string
+     * @warning This is NOT magic, to ensure that people don't abuse SPL and
+     *          cause problems for PHP 5.0 support.
+     */
+    public function toString()
+    {
+        return $this->key;
+    }
+
+    /**
+     * @return string
+     */
+    public function getRootNamespace()
+    {
+        return substr($this->key, 0, strpos($this->key, "."));
+    }
+
+    /**
+     * @return string
+     */
+    public function getDirective()
+    {
+        return substr($this->key, strpos($this->key, ".") + 1);
+    }
+
+    /**
+     * @param string $id
+     * @return HTMLPurifier_ConfigSchema_Interchange_Id
+     */
+    public static function make($id)
+    {
+        return new HTMLPurifier_ConfigSchema_Interchange_Id($id);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php
new file mode 100644
index 0000000..655e6dd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php
@@ -0,0 +1,226 @@
+<?php
+
+class HTMLPurifier_ConfigSchema_InterchangeBuilder
+{
+
+    /**
+     * Used for processing DEFAULT, nothing else.
+     * @type HTMLPurifier_VarParser
+     */
+    protected $varParser;
+
+    /**
+     * @param HTMLPurifier_VarParser $varParser
+     */
+    public function __construct($varParser = null)
+    {
+        $this->varParser = $varParser ? $varParser : new HTMLPurifier_VarParser_Native();
+    }
+
+    /**
+     * @param string $dir
+     * @return HTMLPurifier_ConfigSchema_Interchange
+     */
+    public static function buildFromDirectory($dir = null)
+    {
+        $builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
+        $interchange = new HTMLPurifier_ConfigSchema_Interchange();
+        return $builder->buildDir($interchange, $dir);
+    }
+
+    /**
+     * @param HTMLPurifier_ConfigSchema_Interchange $interchange
+     * @param string $dir
+     * @return HTMLPurifier_ConfigSchema_Interchange
+     */
+    public function buildDir($interchange, $dir = null)
+    {
+        if (!$dir) {
+            $dir = HTMLPURIFIER_PREFIX . '/HTMLPurifier/ConfigSchema/schema';
+        }
+        if (file_exists($dir . '/info.ini')) {
+            $info = parse_ini_file($dir . '/info.ini');
+            $interchange->name = $info['name'];
+        }
+
+        $files = array();
+        $dh = opendir($dir);
+        while (false !== ($file = readdir($dh))) {
+            if (!$file || $file[0] == '.' || strrchr($file, '.') !== '.txt') {
+                continue;
+            }
+            $files[] = $file;
+        }
+        closedir($dh);
+
+        sort($files);
+        foreach ($files as $file) {
+            $this->buildFile($interchange, $dir . '/' . $file);
+        }
+        return $interchange;
+    }
+
+    /**
+     * @param HTMLPurifier_ConfigSchema_Interchange $interchange
+     * @param string $file
+     */
+    public function buildFile($interchange, $file)
+    {
+        $parser = new HTMLPurifier_StringHashParser();
+        $this->build(
+            $interchange,
+            new HTMLPurifier_StringHash($parser->parseFile($file))
+        );
+    }
+
+    /**
+     * Builds an interchange object based on a hash.
+     * @param HTMLPurifier_ConfigSchema_Interchange $interchange HTMLPurifier_ConfigSchema_Interchange object to build
+     * @param HTMLPurifier_StringHash $hash source data
+     * @throws HTMLPurifier_ConfigSchema_Exception
+     */
+    public function build($interchange, $hash)
+    {
+        if (!$hash instanceof HTMLPurifier_StringHash) {
+            $hash = new HTMLPurifier_StringHash($hash);
+        }
+        if (!isset($hash['ID'])) {
+            throw new HTMLPurifier_ConfigSchema_Exception('Hash does not have any ID');
+        }
+        if (strpos($hash['ID'], '.') === false) {
+            if (count($hash) == 2 && isset($hash['DESCRIPTION'])) {
+                $hash->offsetGet('DESCRIPTION'); // prevent complaining
+            } else {
+                throw new HTMLPurifier_ConfigSchema_Exception('All directives must have a namespace');
+            }
+        } else {
+            $this->buildDirective($interchange, $hash);
+        }
+        $this->_findUnused($hash);
+    }
+
+    /**
+     * @param HTMLPurifier_ConfigSchema_Interchange $interchange
+     * @param HTMLPurifier_StringHash $hash
+     * @throws HTMLPurifier_ConfigSchema_Exception
+     */
+    public function buildDirective($interchange, $hash)
+    {
+        $directive = new HTMLPurifier_ConfigSchema_Interchange_Directive();
+
+        // These are required elements:
+        $directive->id = $this->id($hash->offsetGet('ID'));
+        $id = $directive->id->toString(); // convenience
+
+        if (isset($hash['TYPE'])) {
+            $type = explode('/', $hash->offsetGet('TYPE'));
+            if (isset($type[1])) {
+                $directive->typeAllowsNull = true;
+            }
+            $directive->type = $type[0];
+        } else {
+            throw new HTMLPurifier_ConfigSchema_Exception("TYPE in directive hash '$id' not defined");
+        }
+
+        if (isset($hash['DEFAULT'])) {
+            try {
+                $directive->default = $this->varParser->parse(
+                    $hash->offsetGet('DEFAULT'),
+                    $directive->type,
+                    $directive->typeAllowsNull
+                );
+            } catch (HTMLPurifier_VarParserException $e) {
+                throw new HTMLPurifier_ConfigSchema_Exception($e->getMessage() . " in DEFAULT in directive hash '$id'");
+            }
+        }
+
+        if (isset($hash['DESCRIPTION'])) {
+            $directive->description = $hash->offsetGet('DESCRIPTION');
+        }
+
+        if (isset($hash['ALLOWED'])) {
+            $directive->allowed = $this->lookup($this->evalArray($hash->offsetGet('ALLOWED')));
+        }
+
+        if (isset($hash['VALUE-ALIASES'])) {
+            $directive->valueAliases = $this->evalArray($hash->offsetGet('VALUE-ALIASES'));
+        }
+
+        if (isset($hash['ALIASES'])) {
+            $raw_aliases = trim($hash->offsetGet('ALIASES'));
+            $aliases = preg_split('/\s*,\s*/', $raw_aliases);
+            foreach ($aliases as $alias) {
+                $directive->aliases[] = $this->id($alias);
+            }
+        }
+
+        if (isset($hash['VERSION'])) {
+            $directive->version = $hash->offsetGet('VERSION');
+        }
+
+        if (isset($hash['DEPRECATED-USE'])) {
+            $directive->deprecatedUse = $this->id($hash->offsetGet('DEPRECATED-USE'));
+        }
+
+        if (isset($hash['DEPRECATED-VERSION'])) {
+            $directive->deprecatedVersion = $hash->offsetGet('DEPRECATED-VERSION');
+        }
+
+        if (isset($hash['EXTERNAL'])) {
+            $directive->external = preg_split('/\s*,\s*/', trim($hash->offsetGet('EXTERNAL')));
+        }
+
+        $interchange->addDirective($directive);
+    }
+
+    /**
+     * Evaluates an array PHP code string without array() wrapper
+     * @param string $contents
+     */
+    protected function evalArray($contents)
+    {
+        return eval('return array(' . $contents . ');');
+    }
+
+    /**
+     * Converts an array list into a lookup array.
+     * @param array $array
+     * @return array
+     */
+    protected function lookup($array)
+    {
+        $ret = array();
+        foreach ($array as $val) {
+            $ret[$val] = true;
+        }
+        return $ret;
+    }
+
+    /**
+     * Convenience function that creates an HTMLPurifier_ConfigSchema_Interchange_Id
+     * object based on a string Id.
+     * @param string $id
+     * @return HTMLPurifier_ConfigSchema_Interchange_Id
+     */
+    protected function id($id)
+    {
+        return HTMLPurifier_ConfigSchema_Interchange_Id::make($id);
+    }
+
+    /**
+     * Triggers errors for any unused keys passed in the hash; such keys
+     * may indicate typos, missing values, etc.
+     * @param HTMLPurifier_StringHash $hash Hash to check.
+     */
+    protected function _findUnused($hash)
+    {
+        $accessed = $hash->getAccessed();
+        foreach ($hash as $k => $v) {
+            if (!isset($accessed[$k])) {
+                trigger_error("String hash key '$k' not used by builder", E_USER_NOTICE);
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php
new file mode 100644
index 0000000..fb31277
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php
@@ -0,0 +1,248 @@
+<?php
+
+/**
+ * Performs validations on HTMLPurifier_ConfigSchema_Interchange
+ *
+ * @note If you see '// handled by InterchangeBuilder', that means a
+ *       design decision in that class would prevent this validation from
+ *       ever being necessary. We have them anyway, however, for
+ *       redundancy.
+ */
+class HTMLPurifier_ConfigSchema_Validator
+{
+
+    /**
+     * @type HTMLPurifier_ConfigSchema_Interchange
+     */
+    protected $interchange;
+
+    /**
+     * @type array
+     */
+    protected $aliases;
+
+    /**
+     * Context-stack to provide easy to read error messages.
+     * @type array
+     */
+    protected $context = array();
+
+    /**
+     * to test default's type.
+     * @type HTMLPurifier_VarParser
+     */
+    protected $parser;
+
+    public function __construct()
+    {
+        $this->parser = new HTMLPurifier_VarParser();
+    }
+
+    /**
+     * Validates a fully-formed interchange object.
+     * @param HTMLPurifier_ConfigSchema_Interchange $interchange
+     * @return bool
+     */
+    public function validate($interchange)
+    {
+        $this->interchange = $interchange;
+        $this->aliases = array();
+        // PHP is a bit lax with integer <=> string conversions in
+        // arrays, so we don't use the identical !== comparison
+        foreach ($interchange->directives as $i => $directive) {
+            $id = $directive->id->toString();
+            if ($i != $id) {
+                $this->error(false, "Integrity violation: key '$i' does not match internal id '$id'");
+            }
+            $this->validateDirective($directive);
+        }
+        return true;
+    }
+
+    /**
+     * Validates a HTMLPurifier_ConfigSchema_Interchange_Id object.
+     * @param HTMLPurifier_ConfigSchema_Interchange_Id $id
+     */
+    public function validateId($id)
+    {
+        $id_string = $id->toString();
+        $this->context[] = "id '$id_string'";
+        if (!$id instanceof HTMLPurifier_ConfigSchema_Interchange_Id) {
+            // handled by InterchangeBuilder
+            $this->error(false, 'is not an instance of HTMLPurifier_ConfigSchema_Interchange_Id');
+        }
+        // keys are now unconstrained (we might want to narrow down to A-Za-z0-9.)
+        // we probably should check that it has at least one namespace
+        $this->with($id, 'key')
+            ->assertNotEmpty()
+            ->assertIsString(); // implicit assertIsString handled by InterchangeBuilder
+        array_pop($this->context);
+    }
+
+    /**
+     * Validates a HTMLPurifier_ConfigSchema_Interchange_Directive object.
+     * @param HTMLPurifier_ConfigSchema_Interchange_Directive $d
+     */
+    public function validateDirective($d)
+    {
+        $id = $d->id->toString();
+        $this->context[] = "directive '$id'";
+        $this->validateId($d->id);
+
+        $this->with($d, 'description')
+            ->assertNotEmpty();
+
+        // BEGIN - handled by InterchangeBuilder
+        $this->with($d, 'type')
+            ->assertNotEmpty();
+        $this->with($d, 'typeAllowsNull')
+            ->assertIsBool();
+        try {
+            // This also tests validity of $d->type
+            $this->parser->parse($d->default, $d->type, $d->typeAllowsNull);
+        } catch (HTMLPurifier_VarParserException $e) {
+            $this->error('default', 'had error: ' . $e->getMessage());
+        }
+        // END - handled by InterchangeBuilder
+
+        if (!is_null($d->allowed) || !empty($d->valueAliases)) {
+            // allowed and valueAliases require that we be dealing with
+            // strings, so check for that early.
+            $d_int = HTMLPurifier_VarParser::$types[$d->type];
+            if (!isset(HTMLPurifier_VarParser::$stringTypes[$d_int])) {
+                $this->error('type', 'must be a string type when used with allowed or value aliases');
+            }
+        }
+
+        $this->validateDirectiveAllowed($d);
+        $this->validateDirectiveValueAliases($d);
+        $this->validateDirectiveAliases($d);
+
+        array_pop($this->context);
+    }
+
+    /**
+     * Extra validation if $allowed member variable of
+     * HTMLPurifier_ConfigSchema_Interchange_Directive is defined.
+     * @param HTMLPurifier_ConfigSchema_Interchange_Directive $d
+     */
+    public function validateDirectiveAllowed($d)
+    {
+        if (is_null($d->allowed)) {
+            return;
+        }
+        $this->with($d, 'allowed')
+            ->assertNotEmpty()
+            ->assertIsLookup(); // handled by InterchangeBuilder
+        if (is_string($d->default) && !isset($d->allowed[$d->default])) {
+            $this->error('default', 'must be an allowed value');
+        }
+        $this->context[] = 'allowed';
+        foreach ($d->allowed as $val => $x) {
+            if (!is_string($val)) {
+                $this->error("value $val", 'must be a string');
+            }
+        }
+        array_pop($this->context);
+    }
+
+    /**
+     * Extra validation if $valueAliases member variable of
+     * HTMLPurifier_ConfigSchema_Interchange_Directive is defined.
+     * @param HTMLPurifier_ConfigSchema_Interchange_Directive $d
+     */
+    public function validateDirectiveValueAliases($d)
+    {
+        if (is_null($d->valueAliases)) {
+            return;
+        }
+        $this->with($d, 'valueAliases')
+            ->assertIsArray(); // handled by InterchangeBuilder
+        $this->context[] = 'valueAliases';
+        foreach ($d->valueAliases as $alias => $real) {
+            if (!is_string($alias)) {
+                $this->error("alias $alias", 'must be a string');
+            }
+            if (!is_string($real)) {
+                $this->error("alias target $real from alias '$alias'", 'must be a string');
+            }
+            if ($alias === $real) {
+                $this->error("alias '$alias'", "must not be an alias to itself");
+            }
+        }
+        if (!is_null($d->allowed)) {
+            foreach ($d->valueAliases as $alias => $real) {
+                if (isset($d->allowed[$alias])) {
+                    $this->error("alias '$alias'", 'must not be an allowed value');
+                } elseif (!isset($d->allowed[$real])) {
+                    $this->error("alias '$alias'", 'must be an alias to an allowed value');
+                }
+            }
+        }
+        array_pop($this->context);
+    }
+
+    /**
+     * Extra validation if $aliases member variable of
+     * HTMLPurifier_ConfigSchema_Interchange_Directive is defined.
+     * @param HTMLPurifier_ConfigSchema_Interchange_Directive $d
+     */
+    public function validateDirectiveAliases($d)
+    {
+        $this->with($d, 'aliases')
+            ->assertIsArray(); // handled by InterchangeBuilder
+        $this->context[] = 'aliases';
+        foreach ($d->aliases as $alias) {
+            $this->validateId($alias);
+            $s = $alias->toString();
+            if (isset($this->interchange->directives[$s])) {
+                $this->error("alias '$s'", 'collides with another directive');
+            }
+            if (isset($this->aliases[$s])) {
+                $other_directive = $this->aliases[$s];
+                $this->error("alias '$s'", "collides with alias for directive '$other_directive'");
+            }
+            $this->aliases[$s] = $d->id->toString();
+        }
+        array_pop($this->context);
+    }
+
+    // protected helper functions
+
+    /**
+     * Convenience function for generating HTMLPurifier_ConfigSchema_ValidatorAtom
+     * for validating simple member variables of objects.
+     * @param $obj
+     * @param $member
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    protected function with($obj, $member)
+    {
+        return new HTMLPurifier_ConfigSchema_ValidatorAtom($this->getFormattedContext(), $obj, $member);
+    }
+
+    /**
+     * Emits an error, providing helpful context.
+     * @throws HTMLPurifier_ConfigSchema_Exception
+     */
+    protected function error($target, $msg)
+    {
+        if ($target !== false) {
+            $prefix = ucfirst($target) . ' in ' . $this->getFormattedContext();
+        } else {
+            $prefix = ucfirst($this->getFormattedContext());
+        }
+        throw new HTMLPurifier_ConfigSchema_Exception(trim($prefix . ' ' . $msg));
+    }
+
+    /**
+     * Returns a formatted context string.
+     * @return string
+     */
+    protected function getFormattedContext()
+    {
+        return implode(' in ', array_reverse($this->context));
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php
new file mode 100644
index 0000000..c9aa364
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * Fluent interface for validating the contents of member variables.
+ * This should be immutable. See HTMLPurifier_ConfigSchema_Validator for
+ * use-cases. We name this an 'atom' because it's ONLY for validations that
+ * are independent and usually scalar.
+ */
+class HTMLPurifier_ConfigSchema_ValidatorAtom
+{
+    /**
+     * @type string
+     */
+    protected $context;
+
+    /**
+     * @type object
+     */
+    protected $obj;
+
+    /**
+     * @type string
+     */
+    protected $member;
+
+    /**
+     * @type mixed
+     */
+    protected $contents;
+
+    public function __construct($context, $obj, $member)
+    {
+        $this->context = $context;
+        $this->obj = $obj;
+        $this->member = $member;
+        $this->contents =& $obj->$member;
+    }
+
+    /**
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    public function assertIsString()
+    {
+        if (!is_string($this->contents)) {
+            $this->error('must be a string');
+        }
+        return $this;
+    }
+
+    /**
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    public function assertIsBool()
+    {
+        if (!is_bool($this->contents)) {
+            $this->error('must be a boolean');
+        }
+        return $this;
+    }
+
+    /**
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    public function assertIsArray()
+    {
+        if (!is_array($this->contents)) {
+            $this->error('must be an array');
+        }
+        return $this;
+    }
+
+    /**
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    public function assertNotNull()
+    {
+        if ($this->contents === null) {
+            $this->error('must not be null');
+        }
+        return $this;
+    }
+
+    /**
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    public function assertAlnum()
+    {
+        $this->assertIsString();
+        if (!ctype_alnum($this->contents)) {
+            $this->error('must be alphanumeric');
+        }
+        return $this;
+    }
+
+    /**
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    public function assertNotEmpty()
+    {
+        if (empty($this->contents)) {
+            $this->error('must not be empty');
+        }
+        return $this;
+    }
+
+    /**
+     * @return HTMLPurifier_ConfigSchema_ValidatorAtom
+     */
+    public function assertIsLookup()
+    {
+        $this->assertIsArray();
+        foreach ($this->contents as $v) {
+            if ($v !== true) {
+                $this->error('must be a lookup array');
+            }
+        }
+        return $this;
+    }
+
+    /**
+     * @param string $msg
+     * @throws HTMLPurifier_ConfigSchema_Exception
+     */
+    protected function error($msg)
+    {
+        throw new HTMLPurifier_ConfigSchema_Exception(ucfirst($this->member) . ' in ' . $this->context . ' ' . $msg);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser
new file mode 100644
index 0000000..22ea321
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser differ
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt
new file mode 100644
index 0000000..0517fed
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt
@@ -0,0 +1,8 @@
+Attr.AllowedClasses
+TYPE: lookup/null
+VERSION: 4.0.0
+DEFAULT: null
+--DESCRIPTION--
+List of allowed class values in the class attribute. By default, this is null,
+which means all classes are allowed.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt
new file mode 100644
index 0000000..249edd6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt
@@ -0,0 +1,12 @@
+Attr.AllowedFrameTargets
+TYPE: lookup
+DEFAULT: array()
+--DESCRIPTION--
+Lookup table of all allowed link frame targets.  Some commonly used link
+targets include _blank, _self, _parent and _top. Values should be
+lowercase, as validation will be done in a case-sensitive manner despite
+W3C's recommendation. XHTML 1.0 Strict does not permit the target attribute
+so this directive will have no effect in that doctype. XHTML 1.1 does not
+enable the Target module by default, you will have to manually enable it
+(see the module documentation for more details.)
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt
new file mode 100644
index 0000000..9a8fa6a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt
@@ -0,0 +1,9 @@
+Attr.AllowedRel
+TYPE: lookup
+VERSION: 1.6.0
+DEFAULT: array()
+--DESCRIPTION--
+List of allowed forward document relationships in the rel attribute. Common
+values may be nofollow or print. By default, this is empty, meaning that no
+document relationships are allowed.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt
new file mode 100644
index 0000000..b017883
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt
@@ -0,0 +1,9 @@
+Attr.AllowedRev
+TYPE: lookup
+VERSION: 1.6.0
+DEFAULT: array()
+--DESCRIPTION--
+List of allowed reverse document relationships in the rev attribute. This
+attribute is a bit of an edge-case; if you don't know what it is for, stay
+away.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt
new file mode 100644
index 0000000..e774b82
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt
@@ -0,0 +1,19 @@
+Attr.ClassUseCDATA
+TYPE: bool/null
+DEFAULT: null
+VERSION: 4.0.0
+--DESCRIPTION--
+If null, class will auto-detect the doctype and, if matching XHTML 1.1 or
+XHTML 2.0, will use the restrictive NMTOKENS specification of class. Otherwise,
+it will use a relaxed CDATA definition.  If true, the relaxed CDATA definition
+is forced; if false, the NMTOKENS definition is forced.  To get behavior
+of HTML Purifier prior to 4.0.0, set this directive to false.
+
+Some rational behind the auto-detection:
+in previous versions of HTML Purifier, it was assumed that the form of
+class was NMTOKENS, as specified by the XHTML Modularization (representing
+XHTML 1.1 and XHTML 2.0).  The DTDs for HTML 4.01 and XHTML 1.0, however
+specify class as CDATA.  HTML 5 effectively defines it as CDATA, but
+with the additional constraint that each name should be unique (this is not
+explicitly outlined in previous specifications).
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt
new file mode 100644
index 0000000..533165e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt
@@ -0,0 +1,11 @@
+Attr.DefaultImageAlt
+TYPE: string/null
+DEFAULT: null
+VERSION: 3.2.0
+--DESCRIPTION--
+This is the content of the alt tag of an image if the user had not
+previously specified an alt attribute.  This applies to all images without
+a valid alt attribute, as opposed to %Attr.DefaultInvalidImageAlt, which
+only applies to invalid images, and overrides in the case of an invalid image.
+Default behavior with null is to use the basename of the src tag for the alt.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt
new file mode 100644
index 0000000..9eb7e38
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt
@@ -0,0 +1,9 @@
+Attr.DefaultInvalidImage
+TYPE: string
+DEFAULT: ''
+--DESCRIPTION--
+This is the default image an img tag will be pointed to if it does not have
+a valid src attribute.  In future versions, we may allow the image tag to
+be removed completely, but due to design issues, this is not possible right
+now.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt
new file mode 100644
index 0000000..2f17bf4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt
@@ -0,0 +1,8 @@
+Attr.DefaultInvalidImageAlt
+TYPE: string
+DEFAULT: 'Invalid image'
+--DESCRIPTION--
+This is the content of the alt tag of an invalid image if the user had not
+previously specified an alt attribute.  It has no effect when the image is
+valid but there was no alt attribute present.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt
new file mode 100644
index 0000000..52654b5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt
@@ -0,0 +1,10 @@
+Attr.DefaultTextDir
+TYPE: string
+DEFAULT: 'ltr'
+--DESCRIPTION--
+Defines the default text direction (ltr or rtl) of the document being
+parsed.  This generally is the same as the value of the dir attribute in
+HTML, or ltr if that is not specified.
+--ALLOWED--
+'ltr', 'rtl'
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt
new file mode 100644
index 0000000..6440d21
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt
@@ -0,0 +1,16 @@
+Attr.EnableID
+TYPE: bool
+DEFAULT: false
+VERSION: 1.2.0
+--DESCRIPTION--
+Allows the ID attribute in HTML.  This is disabled by default due to the
+fact that without proper configuration user input can easily break the
+validation of a webpage by specifying an ID that is already on the
+surrounding HTML.  If you don't mind throwing caution to the wind, enable
+this directive, but I strongly recommend you also consider blacklisting IDs
+you use (%Attr.IDBlacklist) or prefixing all user supplied IDs
+(%Attr.IDPrefix).  When set to true HTML Purifier reverts to the behavior of
+pre-1.2.0 versions.
+--ALIASES--
+HTML.EnableAttrID
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt
new file mode 100644
index 0000000..f31d226
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt
@@ -0,0 +1,8 @@
+Attr.ForbiddenClasses
+TYPE: lookup
+VERSION: 4.0.0
+DEFAULT: array()
+--DESCRIPTION--
+List of forbidden class values in the class attribute. By default, this is
+empty, which means that no classes are forbidden. See also %Attr.AllowedClasses.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt
new file mode 100644
index 0000000..5f2b5e3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt
@@ -0,0 +1,5 @@
+Attr.IDBlacklist
+TYPE: list
+DEFAULT: array()
+DESCRIPTION: Array of IDs not allowed in the document.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt
new file mode 100644
index 0000000..6f58245
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt
@@ -0,0 +1,9 @@
+Attr.IDBlacklistRegexp
+TYPE: string/null
+VERSION: 1.6.0
+DEFAULT: NULL
+--DESCRIPTION--
+PCRE regular expression to be matched against all IDs. If the expression is
+matches, the ID is rejected. Use this with care: may cause significant
+degradation. ID matching is done after all other validation.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt
new file mode 100644
index 0000000..cc49d43
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt
@@ -0,0 +1,12 @@
+Attr.IDPrefix
+TYPE: string
+VERSION: 1.2.0
+DEFAULT: ''
+--DESCRIPTION--
+String to prefix to IDs.  If you have no idea what IDs your pages may use,
+you may opt to simply add a prefix to all user-submitted ID attributes so
+that they are still usable, but will not conflict with core page IDs.
+Example: setting the directive to 'user_' will result in a user submitted
+'foo' to become 'user_foo'  Be sure to set %HTML.EnableAttrID to true
+before using this.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt
new file mode 100644
index 0000000..2c5924a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt
@@ -0,0 +1,14 @@
+Attr.IDPrefixLocal
+TYPE: string
+VERSION: 1.2.0
+DEFAULT: ''
+--DESCRIPTION--
+Temporary prefix for IDs used in conjunction with %Attr.IDPrefix.  If you
+need to allow multiple sets of user content on web page, you may need to
+have a seperate prefix that changes with each iteration.  This way,
+seperately submitted user content displayed on the same page doesn't
+clobber each other. Ideal values are unique identifiers for the content it
+represents (i.e. the id of the row in the database). Be sure to add a
+seperator (like an underscore) at the end.  Warning: this directive will
+not work unless %Attr.IDPrefix is set to a non-empty value!
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt
new file mode 100644
index 0000000..d5caa1b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt
@@ -0,0 +1,31 @@
+AutoFormat.AutoParagraph
+TYPE: bool
+VERSION: 2.0.1
+DEFAULT: false
+--DESCRIPTION--
+
+<p>
+  This directive turns on auto-paragraphing, where double newlines are
+  converted in to paragraphs whenever possible. Auto-paragraphing:
+</p>
+<ul>
+  <li>Always applies to inline elements or text in the root node,</li>
+  <li>Applies to inline elements or text with double newlines in nodes
+      that allow paragraph tags,</li>
+  <li>Applies to double newlines in paragraph tags</li>
+</ul>
+<p>
+  <code>p</code> tags must be allowed for this directive to take effect.
+  We do not use <code>br</code> tags for paragraphing, as that is
+  semantically incorrect.
+</p>
+<p>
+  To prevent auto-paragraphing as a content-producer, refrain from using
+  double-newlines except to specify a new paragraph or in contexts where
+  it has special meaning (whitespace usually has no meaning except in
+  tags like <code>pre</code>, so this should not be difficult.) To prevent
+  the paragraphing of inline text adjacent to block elements, wrap them
+  in <code>div</code> tags (the behavior is slightly different outside of
+  the root node.)
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt
new file mode 100644
index 0000000..2a47648
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt
@@ -0,0 +1,12 @@
+AutoFormat.Custom
+TYPE: list
+VERSION: 2.0.1
+DEFAULT: array()
+--DESCRIPTION--
+
+<p>
+  This directive can be used to add custom auto-format injectors.
+  Specify an array of injector names (class name minus the prefix)
+  or concrete implementations. Injector class must exist.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt
new file mode 100644
index 0000000..663064a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt
@@ -0,0 +1,11 @@
+AutoFormat.DisplayLinkURI
+TYPE: bool
+VERSION: 3.2.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+  This directive turns on the in-text display of URIs in <a> tags, and disables
+  those links. For example, <a href="http://example.com">example</a> becomes
+  example (<a>http://example.com</a>).
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt
new file mode 100644
index 0000000..3a48ba9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt
@@ -0,0 +1,12 @@
+AutoFormat.Linkify
+TYPE: bool
+VERSION: 2.0.1
+DEFAULT: false
+--DESCRIPTION--
+
+<p>
+  This directive turns on linkification, auto-linking http, ftp and
+  https URLs. <code>a</code> tags with the <code>href</code> attribute
+  must be allowed.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt
new file mode 100644
index 0000000..db58b13
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt
@@ -0,0 +1,12 @@
+AutoFormat.PurifierLinkify.DocURL
+TYPE: string
+VERSION: 2.0.1
+DEFAULT: '#%s'
+ALIASES: AutoFormatParam.PurifierLinkifyDocURL
+--DESCRIPTION--
+<p>
+  Location of configuration documentation to link to, let %s substitute
+  into the configuration's namespace and directive names sans the percent
+  sign.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt
new file mode 100644
index 0000000..7996488
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt
@@ -0,0 +1,12 @@
+AutoFormat.PurifierLinkify
+TYPE: bool
+VERSION: 2.0.1
+DEFAULT: false
+--DESCRIPTION--
+
+<p>
+  Internal auto-formatter that converts configuration directives in
+  syntax <a>%Namespace.Directive</a> to links. <code>a</code> tags
+  with the <code>href</code> attribute must be allowed.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt
new file mode 100644
index 0000000..35c393b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt
@@ -0,0 +1,11 @@
+AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions
+TYPE: lookup
+VERSION: 4.0.0
+DEFAULT: array('td' => true, 'th' => true)
+--DESCRIPTION--
+<p>
+  When %AutoFormat.RemoveEmpty and %AutoFormat.RemoveEmpty.RemoveNbsp
+  are enabled, this directive defines what HTML elements should not be
+  removede if they have only a non-breaking space in them.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt
new file mode 100644
index 0000000..ca17eb1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt
@@ -0,0 +1,15 @@
+AutoFormat.RemoveEmpty.RemoveNbsp
+TYPE: bool
+VERSION: 4.0.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+  When enabled, HTML Purifier will treat any elements that contain only
+  non-breaking spaces as well as regular whitespace as empty, and remove
+  them when %AutoForamt.RemoveEmpty is enabled.
+</p>
+<p>
+  See %AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions for a list of elements
+  that don't have this behavior applied to them.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt
new file mode 100644
index 0000000..34657ba
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt
@@ -0,0 +1,46 @@
+AutoFormat.RemoveEmpty
+TYPE: bool
+VERSION: 3.2.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+  When enabled, HTML Purifier will attempt to remove empty elements that
+  contribute no semantic information to the document. The following types
+  of nodes will be removed:
+</p>
+<ul><li>
+    Tags with no attributes and no content, and that are not empty
+    elements (remove <code><a></a></code> but not
+    <code><br /></code>), and
+  </li>
+  <li>
+    Tags with no content, except for:<ul>
+      <li>The <code>colgroup</code> element, or</li>
+      <li>
+        Elements with the <code>id</code> or <code>name</code> attribute,
+        when those attributes are permitted on those elements.
+      </li>
+    </ul></li>
+</ul>
+<p>
+  Please be very careful when using this functionality; while it may not
+  seem that empty elements contain useful information, they can alter the
+  layout of a document given appropriate styling. This directive is most
+  useful when you are processing machine-generated HTML, please avoid using
+  it on regular user HTML.
+</p>
+<p>
+  Elements that contain only whitespace will be treated as empty. Non-breaking
+  spaces, however, do not count as whitespace. See
+  %AutoFormat.RemoveEmpty.RemoveNbsp for alternate behavior.
+</p>
+<p>
+  This algorithm is not perfect; you may still notice some empty tags,
+  particularly if a node had elements, but those elements were later removed
+  because they were not permitted in that context, or tags that, after
+  being auto-closed by another tag, where empty. This is for safety reasons
+  to prevent clever code from breaking validation. The general rule of thumb:
+  if a tag looked empty on the way in, it will get removed; if HTML Purifier
+  made it empty, it will stay.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt
new file mode 100644
index 0000000..dde990a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt
@@ -0,0 +1,11 @@
+AutoFormat.RemoveSpansWithoutAttributes
+TYPE: bool
+VERSION: 4.0.1
+DEFAULT: false
+--DESCRIPTION--
+<p>
+  This directive causes <code>span</code> tags without any attributes
+  to be removed. It will also remove spans that had all attributes
+  removed during processing.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt
new file mode 100644
index 0000000..b324608
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt
@@ -0,0 +1,8 @@
+CSS.AllowImportant
+TYPE: bool
+DEFAULT: false
+VERSION: 3.1.0
+--DESCRIPTION--
+This parameter determines whether or not !important cascade modifiers should
+be allowed in user CSS. If false, !important will stripped.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt
new file mode 100644
index 0000000..748be0e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt
@@ -0,0 +1,11 @@
+CSS.AllowTricky
+TYPE: bool
+DEFAULT: false
+VERSION: 3.1.0
+--DESCRIPTION--
+This parameter determines whether or not to allow "tricky" CSS properties and
+values. Tricky CSS properties/values can drastically modify page layout or
+be used for deceptive practices but do not directly constitute a security risk.
+For example, <code>display:none;</code> is considered a tricky property that
+will only be allowed if this directive is set to true.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt
new file mode 100644
index 0000000..3fd4654
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt
@@ -0,0 +1,12 @@
+CSS.AllowedFonts
+TYPE: lookup/null
+VERSION: 4.3.0
+DEFAULT: NULL
+--DESCRIPTION--
+<p>
+    Allows you to manually specify a set of allowed fonts.  If
+    <code>NULL</code>, all fonts are allowed.  This directive
+    affects generic names (serif, sans-serif, monospace, cursive,
+    fantasy) as well as specific font families.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt
new file mode 100644
index 0000000..460112e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt
@@ -0,0 +1,18 @@
+CSS.AllowedProperties
+TYPE: lookup/null
+VERSION: 3.1.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    If HTML Purifier's style attributes set is unsatisfactory for your needs,
+    you can overload it with your own list of tags to allow.  Note that this
+    method is subtractive: it does its job by taking away from HTML Purifier
+    usual feature set, so you cannot add an attribute that HTML Purifier never
+    supported in the first place.
+</p>
+<p>
+    <strong>Warning:</strong> If another directive conflicts with the
+    elements here, <em>that</em> directive will win and override.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt
new file mode 100644
index 0000000..5cb7dda
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt
@@ -0,0 +1,11 @@
+CSS.DefinitionRev
+TYPE: int
+VERSION: 2.0.0
+DEFAULT: 1
+--DESCRIPTION--
+
+<p>
+    Revision identifier for your custom definition. See
+    %HTML.DefinitionRev for details.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt
new file mode 100644
index 0000000..f1f5c5f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt
@@ -0,0 +1,13 @@
+CSS.ForbiddenProperties
+TYPE: lookup
+VERSION: 4.2.0
+DEFAULT: array()
+--DESCRIPTION--
+<p>
+    This is the logical inverse of %CSS.AllowedProperties, and it will
+    override that directive or any other directive.  If possible,
+    %CSS.AllowedProperties is recommended over this directive,
+    because it can sometimes be difficult to tell whether or not you've
+    forbidden all of the CSS properties you truly would like to disallow.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt
new file mode 100644
index 0000000..7a32914
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt
@@ -0,0 +1,16 @@
+CSS.MaxImgLength
+TYPE: string/null
+DEFAULT: '1200px'
+VERSION: 3.1.1
+--DESCRIPTION--
+<p>
+ This parameter sets the maximum allowed length on <code>img</code> tags,
+ effectively the <code>width</code> and <code>height</code> properties.
+ Only absolute units of measurement (in, pt, pc, mm, cm) and pixels (px) are allowed. This is
+ in place to prevent imagecrash attacks, disable with null at your own risk.
+ This directive is similar to %HTML.MaxImgLength, and both should be
+ concurrently edited, although there are
+ subtle differences in the input format (the CSS max is a number with
+ a unit).
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt
new file mode 100644
index 0000000..148eedb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt
@@ -0,0 +1,10 @@
+CSS.Proprietary
+TYPE: bool
+VERSION: 3.0.0
+DEFAULT: false
+--DESCRIPTION--
+
+<p>
+    Whether or not to allow safe, proprietary CSS values.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt
new file mode 100644
index 0000000..e733a61
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt
@@ -0,0 +1,9 @@
+CSS.Trusted
+TYPE: bool
+VERSION: 4.2.1
+DEFAULT: false
+--DESCRIPTION--
+Indicates whether or not the user's CSS input is trusted or not. If the
+input is trusted, a more expansive set of allowed properties.  See
+also %HTML.Trusted.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt
new file mode 100644
index 0000000..c486724
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt
@@ -0,0 +1,14 @@
+Cache.DefinitionImpl
+TYPE: string/null
+VERSION: 2.0.0
+DEFAULT: 'Serializer'
+--DESCRIPTION--
+
+This directive defines which method to use when caching definitions,
+the complex data-type that makes HTML Purifier tick. Set to null
+to disable caching (not recommended, as you will see a definite
+performance degradation).
+
+--ALIASES--
+Core.DefinitionCache
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt
new file mode 100644
index 0000000..5403650
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt
@@ -0,0 +1,13 @@
+Cache.SerializerPath
+TYPE: string/null
+VERSION: 2.0.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    Absolute path with no trailing slash to store serialized definitions in.
+    Default is within the
+    HTML Purifier library inside DefinitionCache/Serializer. This
+    path must be writable by the webserver.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt
new file mode 100644
index 0000000..b2b83d9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt
@@ -0,0 +1,11 @@
+Cache.SerializerPermissions
+TYPE: int
+VERSION: 4.3.0
+DEFAULT: 0755
+--DESCRIPTION--
+
+<p>
+    Directory permissions of the files and directories created inside
+    the DefinitionCache/Serializer or other custom serializer path.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt
new file mode 100644
index 0000000..568cbf3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt
@@ -0,0 +1,18 @@
+Core.AggressivelyFixLt
+TYPE: bool
+VERSION: 2.1.0
+DEFAULT: true
+--DESCRIPTION--
+<p>
+    This directive enables aggressive pre-filter fixes HTML Purifier can
+    perform in order to ensure that open angled-brackets do not get killed
+    during parsing stage. Enabling this will result in two preg_replace_callback
+    calls and at least two preg_replace calls for every HTML document parsed;
+    if your users make very well-formed HTML, you can set this directive false.
+    This has no effect when DirectLex is used.
+</p>
+<p>
+    <strong>Notice:</strong> This directive's default turned from false to true
+    in HTML Purifier 3.2.0.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt
new file mode 100644
index 0000000..2c910cc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt
@@ -0,0 +1,16 @@
+Core.AllowHostnameUnderscore
+TYPE: bool
+VERSION: 4.6.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    By RFC 1123, underscores are not permitted in host names.
+    (This is in contrast to the specification for DNS, RFC
+    2181, which allows underscores.)
+    However, most browsers do the right thing when faced with
+    an underscore in the host name, and so some poorly written
+    websites are written with the expectation this should work.
+    Setting this parameter to true relaxes our allowed character
+    check so that underscores are permitted.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt
new file mode 100644
index 0000000..d731791
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt
@@ -0,0 +1,12 @@
+Core.CollectErrors
+TYPE: bool
+VERSION: 2.0.0
+DEFAULT: false
+--DESCRIPTION--
+
+Whether or not to collect errors found while filtering the document. This
+is a useful way to give feedback to your users. <strong>Warning:</strong>
+Currently this feature is very patchy and experimental, with lots of
+possible error messages not yet implemented. It will not cause any
+problems, but it may not help your users either.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt
new file mode 100644
index 0000000..c572c14
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt
@@ -0,0 +1,29 @@
+Core.ColorKeywords
+TYPE: hash
+VERSION: 2.0.0
+--DEFAULT--
+array (
+  'maroon' => '#800000',
+  'red' => '#FF0000',
+  'orange' => '#FFA500',
+  'yellow' => '#FFFF00',
+  'olive' => '#808000',
+  'purple' => '#800080',
+  'fuchsia' => '#FF00FF',
+  'white' => '#FFFFFF',
+  'lime' => '#00FF00',
+  'green' => '#008000',
+  'navy' => '#000080',
+  'blue' => '#0000FF',
+  'aqua' => '#00FFFF',
+  'teal' => '#008080',
+  'black' => '#000000',
+  'silver' => '#C0C0C0',
+  'gray' => '#808080',
+)
+--DESCRIPTION--
+
+Lookup array of color names to six digit hexadecimal number corresponding
+to color, with preceding hash mark. Used when parsing colors.  The lookup
+is done in a case-insensitive manner.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt
new file mode 100644
index 0000000..64b114f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt
@@ -0,0 +1,14 @@
+Core.ConvertDocumentToFragment
+TYPE: bool
+DEFAULT: true
+--DESCRIPTION--
+
+This parameter determines whether or not the filter should convert
+input that is a full document with html and body tags to a fragment
+of just the contents of a body tag. This parameter is simply something
+HTML Purifier can do during an edge-case: for most inputs, this
+processing is not necessary.
+
+--ALIASES--
+Core.AcceptFullDocuments
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt
new file mode 100644
index 0000000..36f16e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt
@@ -0,0 +1,17 @@
+Core.DirectLexLineNumberSyncInterval
+TYPE: int
+VERSION: 2.0.0
+DEFAULT: 0
+--DESCRIPTION--
+
+<p>
+  Specifies the number of tokens the DirectLex line number tracking
+  implementations should process before attempting to resyncronize the
+  current line count by manually counting all previous new-lines. When
+  at 0, this functionality is disabled. Lower values will decrease
+  performance, and this is only strictly necessary if the counting
+  algorithm is buggy (in which case you should report it as a bug).
+  This has no effect when %Core.MaintainLineNumbers is disabled or DirectLex is
+  not being used.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt
new file mode 100644
index 0000000..1cd4c2c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt
@@ -0,0 +1,14 @@
+Core.DisableExcludes
+TYPE: bool
+DEFAULT: false
+VERSION: 4.5.0
+--DESCRIPTION--
+<p>
+  This directive disables SGML-style exclusions, e.g. the exclusion of
+  <code><object></code> in any descendant of a
+  <code><pre></code> tag.  Disabling excludes will allow some
+  invalid documents to pass through HTML Purifier, but HTML Purifier
+  will also be less likely to accidentally remove large documents during
+  processing.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt
new file mode 100644
index 0000000..ce243c3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt
@@ -0,0 +1,9 @@
+Core.EnableIDNA
+TYPE: bool
+DEFAULT: false
+VERSION: 4.4.0
+--DESCRIPTION--
+Allows international domain names in URLs.  This configuration option
+requires the PEAR Net_IDNA2 module to be installed.  It operates by
+punycoding any internationalized host names for maximum portability.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt
new file mode 100644
index 0000000..8bfb47c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt
@@ -0,0 +1,15 @@
+Core.Encoding
+TYPE: istring
+DEFAULT: 'utf-8'
+--DESCRIPTION--
+If for some reason you are unable to convert all webpages to UTF-8, you can
+use this directive as a stop-gap compatibility change to let HTML Purifier
+deal with non UTF-8 input.  This technique has notable deficiencies:
+absolutely no characters outside of the selected character encoding will be
+preserved, not even the ones that have been ampersand escaped (this is due
+to a UTF-8 specific <em>feature</em> that automatically resolves all
+entities), making it pretty useless for anything except the most I18N-blind
+applications, although %Core.EscapeNonASCIICharacters offers fixes this
+trouble with another tradeoff. This directive only accepts ISO-8859-1 if
+iconv is not enabled.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt
new file mode 100644
index 0000000..a3881be
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt
@@ -0,0 +1,12 @@
+Core.EscapeInvalidChildren
+TYPE: bool
+DEFAULT: false
+--DESCRIPTION--
+<p><strong>Warning:</strong> this configuration option is no longer does anything as of 4.6.0.</p>
+
+<p>When true, a child is found that is not allowed in the context of the
+parent element will be transformed into text as if it were ASCII. When
+false, that element and all internal tags will be dropped, though text will
+be preserved.  There is no option for dropping the element but preserving
+child nodes.</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt
new file mode 100644
index 0000000..a7a5b24
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt
@@ -0,0 +1,7 @@
+Core.EscapeInvalidTags
+TYPE: bool
+DEFAULT: false
+--DESCRIPTION--
+When true, invalid tags will be written back to the document as plain text.
+Otherwise, they are silently dropped.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt
new file mode 100644
index 0000000..abb4999
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt
@@ -0,0 +1,13 @@
+Core.EscapeNonASCIICharacters
+TYPE: bool
+VERSION: 1.4.0
+DEFAULT: false
+--DESCRIPTION--
+This directive overcomes a deficiency in %Core.Encoding by blindly
+converting all non-ASCII characters into decimal numeric entities before
+converting it to its native encoding. This means that even characters that
+can be expressed in the non-UTF-8 encoding will be entity-ized, which can
+be a real downer for encodings like Big5. It also assumes that the ASCII
+repetoire is available, although this is the case for almost all encodings.
+Anyway, use UTF-8!
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt
new file mode 100644
index 0000000..915391e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt
@@ -0,0 +1,19 @@
+Core.HiddenElements
+TYPE: lookup
+--DEFAULT--
+array (
+  'script' => true,
+  'style' => true,
+)
+--DESCRIPTION--
+
+<p>
+  This directive is a lookup array of elements which should have their
+  contents removed when they are not allowed by the HTML definition.
+  For example, the contents of a <code>script</code> tag are not
+  normally shown in a document, so if script tags are to be removed,
+  their contents should be removed to. This is opposed to a <code>b</code>
+  tag, which defines some presentational changes but does not hide its
+  contents.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt
new file mode 100644
index 0000000..233fca1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt
@@ -0,0 +1,10 @@
+Core.Language
+TYPE: string
+VERSION: 2.0.0
+DEFAULT: 'en'
+--DESCRIPTION--
+
+ISO 639 language code for localizable things in HTML Purifier to use,
+which is mainly error reporting. There is currently only an English (en)
+translation, so this directive is currently useless.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt
new file mode 100644
index 0000000..8983e2c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt
@@ -0,0 +1,34 @@
+Core.LexerImpl
+TYPE: mixed/null
+VERSION: 2.0.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+  This parameter determines what lexer implementation can be used. The
+  valid values are:
+</p>
+<dl>
+  <dt><em>null</em></dt>
+  <dd>
+    Recommended, the lexer implementation will be auto-detected based on
+    your PHP-version and configuration.
+  </dd>
+  <dt><em>string</em> lexer identifier</dt>
+  <dd>
+    This is a slim way of manually overridding the implementation.
+    Currently recognized values are: DOMLex (the default PHP5
+implementation)
+    and DirectLex (the default PHP4 implementation). Only use this if
+    you know what you are doing: usually, the auto-detection will
+    manage things for cases you aren't even aware of.
+  </dd>
+  <dt><em>object</em> lexer instance</dt>
+  <dd>
+    Super-advanced: you can specify your own, custom, implementation that
+    implements the interface defined by <code>HTMLPurifier_Lexer</code>.
+    I may remove this option simply because I don't expect anyone
+    to use it.
+  </dd>
+</dl>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt
new file mode 100644
index 0000000..eb841a7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt
@@ -0,0 +1,16 @@
+Core.MaintainLineNumbers
+TYPE: bool/null
+VERSION: 2.0.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+  If true, HTML Purifier will add line number information to all tokens.
+  This is useful when error reporting is turned on, but can result in
+  significant performance degradation and should not be used when
+  unnecessary. This directive must be used with the DirectLex lexer,
+  as the DOMLex lexer does not (yet) support this functionality.
+  If the value is null, an appropriate value will be selected based
+  on other configuration.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt
new file mode 100644
index 0000000..d77f536
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt
@@ -0,0 +1,11 @@
+Core.NormalizeNewlines
+TYPE: bool
+VERSION: 4.2.0
+DEFAULT: true
+--DESCRIPTION--
+<p>
+    Whether or not to normalize newlines to the operating
+    system default.  When <code>false</code>, HTML Purifier
+    will attempt to preserve mixed newline files.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt
new file mode 100644
index 0000000..4070c2a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt
@@ -0,0 +1,12 @@
+Core.RemoveInvalidImg
+TYPE: bool
+DEFAULT: true
+VERSION: 1.3.0
+--DESCRIPTION--
+
+<p>
+  This directive enables pre-emptive URI checking in <code>img</code>
+  tags, as the attribute validation strategy is not authorized to
+  remove elements from the document. Revert to pre-1.3.0 behavior by setting to false.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt
new file mode 100644
index 0000000..3397d9f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt
@@ -0,0 +1,11 @@
+Core.RemoveProcessingInstructions
+TYPE: bool
+VERSION: 4.2.0
+DEFAULT: false
+--DESCRIPTION--
+Instead of escaping processing instructions in the form <code><? ...
+?></code>, remove it out-right.  This may be useful if the HTML
+you are validating contains XML processing instruction gunk, however,
+it can also be user-unfriendly for people attempting to post PHP
+snippets.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt
new file mode 100644
index 0000000..a4cd966
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt
@@ -0,0 +1,12 @@
+Core.RemoveScriptContents
+TYPE: bool/null
+DEFAULT: NULL
+VERSION: 2.0.0
+DEPRECATED-VERSION: 2.1.0
+DEPRECATED-USE: Core.HiddenElements
+--DESCRIPTION--
+<p>
+  This directive enables HTML Purifier to remove not only script tags
+  but all of their contents.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt
new file mode 100644
index 0000000..3db50ef
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt
@@ -0,0 +1,11 @@
+Filter.Custom
+TYPE: list
+VERSION: 3.1.0
+DEFAULT: array()
+--DESCRIPTION--
+<p>
+  This directive can be used to add custom filters; it is nearly the
+  equivalent of the now deprecated <code>HTMLPurifier->addFilter()</code>
+  method. Specify an array of concrete implementations.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt
new file mode 100644
index 0000000..16829bc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt
@@ -0,0 +1,14 @@
+Filter.ExtractStyleBlocks.Escaping
+TYPE: bool
+VERSION: 3.0.0
+DEFAULT: true
+ALIASES: Filter.ExtractStyleBlocksEscaping, FilterParam.ExtractStyleBlocksEscaping
+--DESCRIPTION--
+
+<p>
+  Whether or not to escape the dangerous characters <, > and &
+  as \3C, \3E and \26, respectively. This is can be safely set to false
+  if the contents of StyleBlocks will be placed in an external stylesheet,
+  where there is no risk of it being interpreted as HTML.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt
new file mode 100644
index 0000000..7f95f54
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt
@@ -0,0 +1,29 @@
+Filter.ExtractStyleBlocks.Scope
+TYPE: string/null
+VERSION: 3.0.0
+DEFAULT: NULL
+ALIASES: Filter.ExtractStyleBlocksScope, FilterParam.ExtractStyleBlocksScope
+--DESCRIPTION--
+
+<p>
+  If you would like users to be able to define external stylesheets, but
+  only allow them to specify CSS declarations for a specific node and
+  prevent them from fiddling with other elements, use this directive.
+  It accepts any valid CSS selector, and will prepend this to any
+  CSS declaration extracted from the document. For example, if this
+  directive is set to <code>#user-content</code> and a user uses the
+  selector <code>a:hover</code>, the final selector will be
+  <code>#user-content a:hover</code>.
+</p>
+<p>
+  The comma shorthand may be used; consider the above example, with
+  <code>#user-content, #user-content2</code>, the final selector will
+  be <code>#user-content a:hover, #user-content2 a:hover</code>.
+</p>
+<p>
+  <strong>Warning:</strong> It is possible for users to bypass this measure
+  using a naughty + selector. This is a bug in CSS Tidy 1.3, not HTML
+  Purifier, and I am working to get it fixed. Until then, HTML Purifier
+  performs a basic check to prevent this.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt
new file mode 100644
index 0000000..6c231b2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt
@@ -0,0 +1,16 @@
+Filter.ExtractStyleBlocks.TidyImpl
+TYPE: mixed/null
+VERSION: 3.1.0
+DEFAULT: NULL
+ALIASES: FilterParam.ExtractStyleBlocksTidyImpl
+--DESCRIPTION--
+<p>
+  If left NULL, HTML Purifier will attempt to instantiate a <code>csstidy</code>
+  class to use for internal cleaning. This will usually be good enough.
+</p>
+<p>
+  However, for trusted user input, you can set this to <code>false</code> to
+  disable cleaning. In addition, you can supply your own concrete implementation
+  of Tidy's interface to use, although I don't know why you'd want to do that.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt
new file mode 100644
index 0000000..078d087
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt
@@ -0,0 +1,74 @@
+Filter.ExtractStyleBlocks
+TYPE: bool
+VERSION: 3.1.0
+DEFAULT: false
+EXTERNAL: CSSTidy
+--DESCRIPTION--
+<p>
+  This directive turns on the style block extraction filter, which removes
+  <code>style</code> blocks from input HTML, cleans them up with CSSTidy,
+  and places them in the <code>StyleBlocks</code> context variable, for further
+  use by you, usually to be placed in an external stylesheet, or a
+  <code>style</code> block in the <code>head</code> of your document.
+</p>
+<p>
+  Sample usage:
+</p>
+<pre><![CDATA[
+<?php
+    header('Content-type: text/html; charset=utf-8');
+    echo '<?xml version="1.0" encoding="UTF-8"?>';
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+  <title>Filter.ExtractStyleBlocks</title>
+<?php
+    require_once '/path/to/library/HTMLPurifier.auto.php';
+    require_once '/path/to/csstidy.class.php';
+
+    $dirty = '<style>body {color:#F00;}</style> Some text';
+
+    $config = HTMLPurifier_Config::createDefault();
+    $config->set('Filter', 'ExtractStyleBlocks', true);
+    $purifier = new HTMLPurifier($config);
+
+    $html = $purifier->purify($dirty);
+
+    // This implementation writes the stylesheets to the styles/ directory.
+    // You can also echo the styles inside the document, but it's a bit
+    // more difficult to make sure they get interpreted properly by
+    // browsers; try the usual CSS armoring techniques.
+    $styles = $purifier->context->get('StyleBlocks');
+    $dir = 'styles/';
+    if (!is_dir($dir)) mkdir($dir);
+    $hash = sha1($_GET['html']);
+    foreach ($styles as $i => $style) {
+        file_put_contents($name = $dir . $hash . "_$i");
+        echo '<link rel="stylesheet" type="text/css" href="'.$name.'" />';
+    }
+?>
+</head>
+<body>
+  <div>
+    <?php echo $html; ?>
+  </div>
+</b]]><![CDATA[ody>
+</html>
+]]></pre>
+<p>
+  <strong>Warning:</strong> It is possible for a user to mount an
+  imagecrash attack using this CSS. Counter-measures are difficult;
+  it is not simply enough to limit the range of CSS lengths (using
+  relative lengths with many nesting levels allows for large values
+  to be attained without actually specifying them in the stylesheet),
+  and the flexible nature of selectors makes it difficult to selectively
+  disable lengths on image tags (HTML Purifier, however, does disable
+  CSS width and height in inline styling). There are probably two effective
+  counter measures: an explicit width and height set to auto in all
+  images in your document (unlikely) or the disabling of width and
+  height (somewhat reasonable). Whether or not these measures should be
+  used is left to the reader.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt
new file mode 100644
index 0000000..321eaa2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt
@@ -0,0 +1,16 @@
+Filter.YouTube
+TYPE: bool
+VERSION: 3.1.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+  <strong>Warning:</strong> Deprecated in favor of %HTML.SafeObject and
+  %Output.FlashCompat (turn both on to allow YouTube videos and other
+  Flash content).
+</p>
+<p>
+  This directive enables YouTube video embedding in HTML Purifier. Check
+  <a href="http://htmlpurifier.org/docs/enduser-youtube.html">this document
+  on embedding videos</a> for more information on what this filter does.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt
new file mode 100644
index 0000000..0b2c106
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt
@@ -0,0 +1,25 @@
+HTML.Allowed
+TYPE: itext/null
+VERSION: 2.0.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    This is a preferred convenience directive that combines
+    %HTML.AllowedElements and %HTML.AllowedAttributes.
+    Specify elements and attributes that are allowed using:
+    <code>element1[attr1|attr2],element2...</code>.  For example,
+    if you would like to only allow paragraphs and links, specify
+    <code>a[href],p</code>.  You can specify attributes that apply
+    to all elements using an asterisk, e.g. <code>*[lang]</code>.
+    You can also use newlines instead of commas to separate elements.
+</p>
+<p>
+    <strong>Warning</strong>:
+    All of the constraints on the component directives are still enforced.
+    The syntax is a <em>subset</em> of TinyMCE's <code>valid_elements</code>
+    whitelist: directly copy-pasting it here will probably result in
+    broken whitelists. If %HTML.AllowedElements or %HTML.AllowedAttributes
+    are set, this directive has no effect.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt
new file mode 100644
index 0000000..fcf093f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt
@@ -0,0 +1,19 @@
+HTML.AllowedAttributes
+TYPE: lookup/null
+VERSION: 1.3.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    If HTML Purifier's attribute set is unsatisfactory, overload it!
+    The syntax is "tag.attr" or "*.attr" for the global attributes
+    (style, id, class, dir, lang, xml:lang).
+</p>
+<p>
+    <strong>Warning:</strong> If another directive conflicts with the
+    elements here, <em>that</em> directive will win and override. For
+    example, %HTML.EnableAttrID will take precedence over *.id in this
+    directive.  You must set that directive to true before you can use
+    IDs at all.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt
new file mode 100644
index 0000000..140e214
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt
@@ -0,0 +1,10 @@
+HTML.AllowedComments
+TYPE: lookup
+VERSION: 4.4.0
+DEFAULT: array()
+--DESCRIPTION--
+A whitelist which indicates what explicit comment bodies should be
+allowed, modulo leading and trailing whitespace.  See also %HTML.AllowedCommentsRegexp
+(these directives are union'ed together, so a comment is considered
+valid if any directive deems it valid.)
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt
new file mode 100644
index 0000000..f22e977
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt
@@ -0,0 +1,15 @@
+HTML.AllowedCommentsRegexp
+TYPE: string/null
+VERSION: 4.4.0
+DEFAULT: NULL
+--DESCRIPTION--
+A regexp, which if it matches the body of a comment, indicates that
+it should be allowed. Trailing and leading spaces are removed prior
+to running this regular expression.
+<strong>Warning:</strong> Make sure you specify
+correct anchor metacharacters <code>^regex$</code>, otherwise you may accept
+comments that you did not mean to! In particular, the regex <code>/foo|bar/</code>
+is probably not sufficiently strict, since it also allows <code>foobar</code>.
+See also %HTML.AllowedComments (these directives are union'ed together,
+so a comment is considered valid if any directive deems it valid.)
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt
new file mode 100644
index 0000000..1d3fa79
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt
@@ -0,0 +1,23 @@
+HTML.AllowedElements
+TYPE: lookup/null
+VERSION: 1.3.0
+DEFAULT: NULL
+--DESCRIPTION--
+<p>
+    If HTML Purifier's tag set is unsatisfactory for your needs, you can
+    overload it with your own list of tags to allow.  If you change
+    this, you probably also want to change %HTML.AllowedAttributes; see
+    also %HTML.Allowed which lets you set allowed elements and
+    attributes at the same time.
+</p>
+<p>
+    If you attempt to allow an element that HTML Purifier does not know
+    about, HTML Purifier will raise an error.  You will need to manually
+    tell HTML Purifier about this element by using the
+    <a href="http://htmlpurifier.org/docs/enduser-customize.html">advanced customization features.</a>
+</p>
+<p>
+    <strong>Warning:</strong> If another directive conflicts with the
+    elements here, <em>that</em> directive will win and override.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt
new file mode 100644
index 0000000..5a59a55
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt
@@ -0,0 +1,20 @@
+HTML.AllowedModules
+TYPE: lookup/null
+VERSION: 2.0.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    A doctype comes with a set of usual modules to use. Without having
+    to mucking about with the doctypes, you can quickly activate or
+    disable these modules by specifying which modules you wish to allow
+    with this directive. This is most useful for unit testing specific
+    modules, although end users may find it useful for their own ends.
+</p>
+<p>
+    If you specify a module that does not exist, the manager will silently
+    fail to use it, so be careful! User-defined modules are not affected
+    by this directive. Modules defined in %HTML.CoreModules are not
+    affected by this directive.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt
new file mode 100644
index 0000000..151fb7b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt
@@ -0,0 +1,11 @@
+HTML.Attr.Name.UseCDATA
+TYPE: bool
+DEFAULT: false
+VERSION: 4.0.0
+--DESCRIPTION--
+The W3C specification DTD defines the name attribute to be CDATA, not ID, due
+to limitations of DTD.  In certain documents, this relaxed behavior is desired,
+whether it is to specify duplicate names, or to specify names that would be
+illegal IDs (for example, names that begin with a digit.) Set this configuration
+directive to true to use the relaxed parsing rules.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt
new file mode 100644
index 0000000..45ae469
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt
@@ -0,0 +1,18 @@
+HTML.BlockWrapper
+TYPE: string
+VERSION: 1.3.0
+DEFAULT: 'p'
+--DESCRIPTION--
+
+<p>
+    String name of element to wrap inline elements that are inside a block
+    context.  This only occurs in the children of blockquote in strict mode.
+</p>
+<p>
+    Example: by default value,
+    <code><blockquote>Foo</blockquote></code> would become
+    <code><blockquote><p>Foo</p></blockquote></code>.
+    The <code><p></code> tags can be replaced with whatever you desire,
+    as long as it is a block level element.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt
new file mode 100644
index 0000000..5246188
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt
@@ -0,0 +1,23 @@
+HTML.CoreModules
+TYPE: lookup
+VERSION: 2.0.0
+--DEFAULT--
+array (
+  'Structure' => true,
+  'Text' => true,
+  'Hypertext' => true,
+  'List' => true,
+  'NonXMLCommonAttributes' => true,
+  'XMLCommonAttributes' => true,
+  'CommonAttributes' => true,
+)
+--DESCRIPTION--
+
+<p>
+    Certain modularized doctypes (XHTML, namely), have certain modules
+    that must be included for the doctype to be an conforming document
+    type: put those modules here. By default, XHTML's core modules
+    are used. You can set this to a blank array to disable core module
+    protection, but this is not recommended.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt
new file mode 100644
index 0000000..a64e3d7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt
@@ -0,0 +1,9 @@
+HTML.CustomDoctype
+TYPE: string/null
+VERSION: 2.0.1
+DEFAULT: NULL
+--DESCRIPTION--
+
+A custom doctype for power-users who defined there own document
+type. This directive only applies when %HTML.Doctype is blank.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt
new file mode 100644
index 0000000..103db75
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt
@@ -0,0 +1,33 @@
+HTML.DefinitionID
+TYPE: string/null
+DEFAULT: NULL
+VERSION: 2.0.0
+--DESCRIPTION--
+
+<p>
+    Unique identifier for a custom-built HTML definition. If you edit
+    the raw version of the HTMLDefinition, introducing changes that the
+    configuration object does not reflect, you must specify this variable.
+    If you change your custom edits, you should change this directive, or
+    clear your cache. Example:
+</p>
+<pre>
+$config = HTMLPurifier_Config::createDefault();
+$config->set('HTML', 'DefinitionID', '1');
+$def = $config->getHTMLDefinition();
+$def->addAttribute('a', 'tabindex', 'Number');
+</pre>
+<p>
+    In the above example, the configuration is still at the defaults, but
+    using the advanced API, an extra attribute has been added. The
+    configuration object normally has no way of knowing that this change
+    has taken place, so it needs an extra directive: %HTML.DefinitionID.
+    If someone else attempts to use the default configuration, these two
+    pieces of code will not clobber each other in the cache, since one has
+    an extra directive attached to it.
+</p>
+<p>
+    You <em>must</em> specify a value to this directive to use the
+    advanced API features.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt
new file mode 100644
index 0000000..229ae02
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt
@@ -0,0 +1,16 @@
+HTML.DefinitionRev
+TYPE: int
+VERSION: 2.0.0
+DEFAULT: 1
+--DESCRIPTION--
+
+<p>
+    Revision identifier for your custom definition specified in
+    %HTML.DefinitionID.  This serves the same purpose: uniquely identifying
+    your custom definition, but this one does so in a chronological
+    context: revision 3 is more up-to-date then revision 2.  Thus, when
+    this gets incremented, the cache handling is smart enough to clean
+    up any older revisions of your definition as well as flush the
+    cache.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt
new file mode 100644
index 0000000..9dab497
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt
@@ -0,0 +1,11 @@
+HTML.Doctype
+TYPE: string/null
+DEFAULT: NULL
+--DESCRIPTION--
+Doctype to use during filtering. Technically speaking this is not actually
+a doctype (as it does not identify a corresponding DTD), but we are using
+this name for sake of simplicity. When non-blank, this will override any
+older directives like %HTML.XHTML or %HTML.Strict.
+--ALLOWED--
+'HTML 4.01 Transitional', 'HTML 4.01 Strict', 'XHTML 1.0 Transitional', 'XHTML 1.0 Strict', 'XHTML 1.1'
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt
new file mode 100644
index 0000000..7878dc0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt
@@ -0,0 +1,11 @@
+HTML.FlashAllowFullScreen
+TYPE: bool
+VERSION: 4.2.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    Whether or not to permit embedded Flash content from
+    %HTML.SafeObject to expand to the full screen.  Corresponds to
+    the <code>allowFullScreen</code> parameter.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt
new file mode 100644
index 0000000..57358f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt
@@ -0,0 +1,21 @@
+HTML.ForbiddenAttributes
+TYPE: lookup
+VERSION: 3.1.0
+DEFAULT: array()
+--DESCRIPTION--
+<p>
+    While this directive is similar to %HTML.AllowedAttributes, for
+    forwards-compatibility with XML, this attribute has a different syntax. Instead of
+    <code>tag.attr</code>, use <code>tag at attr</code>. To disallow <code>href</code>
+    attributes in <code>a</code> tags, set this directive to
+    <code>a at href</code>. You can also disallow an attribute globally with
+    <code>attr</code> or <code>*@attr</code> (either syntax is fine; the latter
+    is provided for consistency with %HTML.AllowedAttributes).
+</p>
+<p>
+    <strong>Warning:</strong> This directive complements %HTML.ForbiddenElements,
+    accordingly, check
+    out that directive for a discussion of why you
+    should think twice before using this directive.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt
new file mode 100644
index 0000000..93a53e1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt
@@ -0,0 +1,20 @@
+HTML.ForbiddenElements
+TYPE: lookup
+VERSION: 3.1.0
+DEFAULT: array()
+--DESCRIPTION--
+<p>
+    This was, perhaps, the most requested feature ever in HTML
+    Purifier. Please don't abuse it! This is the logical inverse of
+    %HTML.AllowedElements, and it will override that directive, or any
+    other directive.
+</p>
+<p>
+    If possible, %HTML.Allowed is recommended over this directive, because it
+    can sometimes be difficult to tell whether or not you've forbidden all of
+    the behavior you would like to disallow. If you forbid <code>img</code>
+    with the expectation of preventing images on your site, you'll be in for
+    a nasty surprise when people start using the <code>background-image</code>
+    CSS property.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt
new file mode 100644
index 0000000..e424c38
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt
@@ -0,0 +1,14 @@
+HTML.MaxImgLength
+TYPE: int/null
+DEFAULT: 1200
+VERSION: 3.1.1
+--DESCRIPTION--
+<p>
+ This directive controls the maximum number of pixels in the width and
+ height attributes in <code>img</code> tags. This is
+ in place to prevent imagecrash attacks, disable with null at your own risk.
+ This directive is similar to %CSS.MaxImgLength, and both should be
+ concurrently edited, although there are
+ subtle differences in the input format (the HTML max is an integer).
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt
new file mode 100644
index 0000000..700b309
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt
@@ -0,0 +1,7 @@
+HTML.Nofollow
+TYPE: bool
+VERSION: 4.3.0
+DEFAULT: FALSE
+--DESCRIPTION--
+If enabled, nofollow rel attributes are added to all outgoing links.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt
new file mode 100644
index 0000000..62e8e16
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt
@@ -0,0 +1,12 @@
+HTML.Parent
+TYPE: string
+VERSION: 1.3.0
+DEFAULT: 'div'
+--DESCRIPTION--
+
+<p>
+    String name of element that HTML fragment passed to library will be
+    inserted in.  An interesting variation would be using span as the
+    parent element, meaning that only inline tags would be allowed.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt
new file mode 100644
index 0000000..dfb7204
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt
@@ -0,0 +1,12 @@
+HTML.Proprietary
+TYPE: bool
+VERSION: 3.1.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    Whether or not to allow proprietary elements and attributes in your
+    documents, as per <code>HTMLPurifier_HTMLModule_Proprietary</code>.
+    <strong>Warning:</strong> This can cause your documents to stop
+    validating!
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt
new file mode 100644
index 0000000..cdda09a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt
@@ -0,0 +1,13 @@
+HTML.SafeEmbed
+TYPE: bool
+VERSION: 3.1.1
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    Whether or not to permit embed tags in documents, with a number of extra
+    security features added to prevent script execution. This is similar to
+    what websites like MySpace do to embed tags. Embed is a proprietary
+    element and will cause your website to stop validating; you should
+    see if you can use %Output.FlashCompat with %HTML.SafeObject instead
+    first.</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt
new file mode 100644
index 0000000..5eb6ec2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt
@@ -0,0 +1,13 @@
+HTML.SafeIframe
+TYPE: bool
+VERSION: 4.4.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    Whether or not to permit iframe tags in untrusted documents.  This
+    directive must be accompanied by a whitelist of permitted iframes,
+    such as %URI.SafeIframeRegexp, otherwise it will fatally error.
+    This directive has no effect on strict doctypes, as iframes are not
+    valid.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt
new file mode 100644
index 0000000..ceb342e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt
@@ -0,0 +1,13 @@
+HTML.SafeObject
+TYPE: bool
+VERSION: 3.1.1
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    Whether or not to permit object tags in documents, with a number of extra
+    security features added to prevent script execution. This is similar to
+    what websites like MySpace do to object tags.  You should also enable
+    %Output.FlashCompat in order to generate Internet Explorer
+    compatibility code for your object tags.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt
new file mode 100644
index 0000000..5ebc7a1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt
@@ -0,0 +1,10 @@
+HTML.SafeScripting
+TYPE: lookup
+VERSION: 4.5.0
+DEFAULT: array()
+--DESCRIPTION--
+<p>
+    Whether or not to permit script tags to external scripts in documents.
+    Inline scripting is not allowed, and the script must match an explicit whitelist.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt
new file mode 100644
index 0000000..a8b1de5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt
@@ -0,0 +1,9 @@
+HTML.Strict
+TYPE: bool
+VERSION: 1.3.0
+DEFAULT: false
+DEPRECATED-VERSION: 1.7.0
+DEPRECATED-USE: HTML.Doctype
+--DESCRIPTION--
+Determines whether or not to use Transitional (loose) or Strict rulesets.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt
new file mode 100644
index 0000000..587a167
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt
@@ -0,0 +1,8 @@
+HTML.TargetBlank
+TYPE: bool
+VERSION: 4.4.0
+DEFAULT: FALSE
+--DESCRIPTION--
+If enabled, <code>target=blank</code> attributes are added to all outgoing links.
+(This includes links from an HTTPS version of a page to an HTTP version.)
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt
new file mode 100644
index 0000000..b4c271b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt
@@ -0,0 +1,8 @@
+HTML.TidyAdd
+TYPE: lookup
+VERSION: 2.0.0
+DEFAULT: array()
+--DESCRIPTION--
+
+Fixes to add to the default set of Tidy fixes as per your level.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt
new file mode 100644
index 0000000..4186ccd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt
@@ -0,0 +1,24 @@
+HTML.TidyLevel
+TYPE: string
+VERSION: 2.0.0
+DEFAULT: 'medium'
+--DESCRIPTION--
+
+<p>General level of cleanliness the Tidy module should enforce.
+There are four allowed values:</p>
+<dl>
+    <dt>none</dt>
+    <dd>No extra tidying should be done</dd>
+    <dt>light</dt>
+    <dd>Only fix elements that would be discarded otherwise due to
+    lack of support in doctype</dd>
+    <dt>medium</dt>
+    <dd>Enforce best practices</dd>
+    <dt>heavy</dt>
+    <dd>Transform all deprecated elements and attributes to standards
+    compliant equivalents</dd>
+</dl>
+
+--ALLOWED--
+'none', 'light', 'medium', 'heavy'
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt
new file mode 100644
index 0000000..996762b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt
@@ -0,0 +1,8 @@
+HTML.TidyRemove
+TYPE: lookup
+VERSION: 2.0.0
+DEFAULT: array()
+--DESCRIPTION--
+
+Fixes to remove from the default set of Tidy fixes as per your level.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt
new file mode 100644
index 0000000..1db9237
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt
@@ -0,0 +1,9 @@
+HTML.Trusted
+TYPE: bool
+VERSION: 2.0.0
+DEFAULT: false
+--DESCRIPTION--
+Indicates whether or not the user input is trusted or not. If the input is
+trusted, a more expansive set of allowed tags and attributes will be used.
+See also %CSS.Trusted.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt
new file mode 100644
index 0000000..2a47e38
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt
@@ -0,0 +1,11 @@
+HTML.XHTML
+TYPE: bool
+DEFAULT: true
+VERSION: 1.1.0
+DEPRECATED-VERSION: 1.7.0
+DEPRECATED-USE: HTML.Doctype
+--DESCRIPTION--
+Determines whether or not output is XHTML 1.0 or HTML 4.01 flavor.
+--ALIASES--
+Core.XHTML
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt
new file mode 100644
index 0000000..08921fd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt
@@ -0,0 +1,10 @@
+Output.CommentScriptContents
+TYPE: bool
+VERSION: 2.0.0
+DEFAULT: true
+--DESCRIPTION--
+Determines whether or not HTML Purifier should attempt to fix up the
+contents of script tags for legacy browsers with comments.
+--ALIASES--
+Core.CommentScriptContents
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt
new file mode 100644
index 0000000..d6f0d9f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt
@@ -0,0 +1,15 @@
+Output.FixInnerHTML
+TYPE: bool
+VERSION: 4.3.0
+DEFAULT: true
+--DESCRIPTION--
+<p>
+  If true, HTML Purifier will protect against Internet Explorer's
+  mishandling of the <code>innerHTML</code> attribute by appending
+  a space to any attribute that does not contain angled brackets, spaces
+  or quotes, but contains a backtick.  This slightly changes the
+  semantics of any given attribute, so if this is unacceptable and
+  you do not use <code>innerHTML</code> on any of your pages, you can
+  turn this directive off.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt
new file mode 100644
index 0000000..93398e8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt
@@ -0,0 +1,11 @@
+Output.FlashCompat
+TYPE: bool
+VERSION: 4.1.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+  If true, HTML Purifier will generate Internet Explorer compatibility
+  code for all object code.  This is highly recommended if you enable
+  %HTML.SafeObject.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt
new file mode 100644
index 0000000..79f8ad8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt
@@ -0,0 +1,13 @@
+Output.Newline
+TYPE: string/null
+VERSION: 2.0.1
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    Newline string to format final output with. If left null, HTML Purifier
+    will auto-detect the default newline type of the system and use that;
+    you can manually override it here. Remember, \r\n is Windows, \r
+    is Mac, and \n is Unix.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt
new file mode 100644
index 0000000..232b023
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt
@@ -0,0 +1,14 @@
+Output.SortAttr
+TYPE: bool
+VERSION: 3.2.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+  If true, HTML Purifier will sort attributes by name before writing them back
+  to the document, converting a tag like: <code><el b="" a="" c="" /></code>
+  to <code><el a="" b="" c="" /></code>. This is a workaround for
+  a bug in FCKeditor which causes it to swap attributes order, adding noise
+  to text diffs. If you're not seeing this bug, chances are, you don't need
+  this directive.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt
new file mode 100644
index 0000000..06bab00
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt
@@ -0,0 +1,25 @@
+Output.TidyFormat
+TYPE: bool
+VERSION: 1.1.1
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    Determines whether or not to run Tidy on the final output for pretty
+    formatting reasons, such as indentation and wrap.
+</p>
+<p>
+    This can greatly improve readability for editors who are hand-editing
+    the HTML, but is by no means necessary as HTML Purifier has already
+    fixed all major errors the HTML may have had. Tidy is a non-default
+    extension, and this directive will silently fail if Tidy is not
+    available.
+</p>
+<p>
+    If you are looking to make the overall look of your page's source
+    better, I recommend running Tidy on the entire page rather than just
+    user-content (after all, the indentation relative to the containing
+    blocks will be incorrect).
+</p>
+--ALIASES--
+Core.TidyFormat
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt
new file mode 100644
index 0000000..071bc02
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt
@@ -0,0 +1,7 @@
+Test.ForceNoIconv
+TYPE: bool
+DEFAULT: false
+--DESCRIPTION--
+When set to true, HTMLPurifier_Encoder will act as if iconv does not exist
+and use only pure PHP implementations.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt
new file mode 100644
index 0000000..666635a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt
@@ -0,0 +1,17 @@
+URI.AllowedSchemes
+TYPE: lookup
+--DEFAULT--
+array (
+  'http' => true,
+  'https' => true,
+  'mailto' => true,
+  'ftp' => true,
+  'nntp' => true,
+  'news' => true,
+)
+--DESCRIPTION--
+Whitelist that defines the schemes that a URI is allowed to have.  This
+prevents XSS attacks from using pseudo-schemes like javascript or mocha.
+There is also support for the <code>data</code> and <code>file</code>
+URI schemes, but they are not enabled by default.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt
new file mode 100644
index 0000000..876f068
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt
@@ -0,0 +1,17 @@
+URI.Base
+TYPE: string/null
+VERSION: 2.1.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    The base URI is the URI of the document this purified HTML will be
+    inserted into.  This information is important if HTML Purifier needs
+    to calculate absolute URIs from relative URIs, such as when %URI.MakeAbsolute
+    is on.  You may use a non-absolute URI for this value, but behavior
+    may vary (%URI.MakeAbsolute deals nicely with both absolute and
+    relative paths, but forwards-compatibility is not guaranteed).
+    <strong>Warning:</strong> If set, the scheme on this URI
+    overrides the one specified by %URI.DefaultScheme.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt
new file mode 100644
index 0000000..728e378
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt
@@ -0,0 +1,10 @@
+URI.DefaultScheme
+TYPE: string
+DEFAULT: 'http'
+--DESCRIPTION--
+
+<p>
+    Defines through what scheme the output will be served, in order to
+    select the proper object validator when no scheme information is present.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt
new file mode 100644
index 0000000..f05312b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt
@@ -0,0 +1,11 @@
+URI.DefinitionID
+TYPE: string/null
+VERSION: 2.1.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    Unique identifier for a custom-built URI definition. If you  want
+    to add custom URIFilters, you must specify this value.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt
new file mode 100644
index 0000000..80cfea9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt
@@ -0,0 +1,11 @@
+URI.DefinitionRev
+TYPE: int
+VERSION: 2.1.0
+DEFAULT: 1
+--DESCRIPTION--
+
+<p>
+    Revision identifier for your custom definition. See
+    %HTML.DefinitionRev for details.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt
new file mode 100644
index 0000000..71ce025
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt
@@ -0,0 +1,14 @@
+URI.Disable
+TYPE: bool
+VERSION: 1.3.0
+DEFAULT: false
+--DESCRIPTION--
+
+<p>
+    Disables all URIs in all forms. Not sure why you'd want to do that
+    (after all, the Internet's founded on the notion of a hyperlink).
+</p>
+
+--ALIASES--
+Attr.DisableURI
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt
new file mode 100644
index 0000000..13c122c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt
@@ -0,0 +1,11 @@
+URI.DisableExternal
+TYPE: bool
+VERSION: 1.2.0
+DEFAULT: false
+--DESCRIPTION--
+Disables links to external websites.  This is a highly effective anti-spam
+and anti-pagerank-leech measure, but comes at a hefty price: nolinks or
+images outside of your domain will be allowed.  Non-linkified URIs will
+still be preserved.  If you want to be able to link to subdomains or use
+absolute URIs, specify %URI.Host for your website.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt
new file mode 100644
index 0000000..abcc1ef
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt
@@ -0,0 +1,13 @@
+URI.DisableExternalResources
+TYPE: bool
+VERSION: 1.3.0
+DEFAULT: false
+--DESCRIPTION--
+Disables the embedding of external resources, preventing users from
+embedding things like images from other hosts. This prevents access
+tracking (good for email viewers), bandwidth leeching, cross-site request
+forging, goatse.cx posting, and other nasties, but also results in a loss
+of end-user functionality (they can't directly post a pic they posted from
+Flickr anymore). Use it if you don't have a robust user-content moderation
+team.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt
new file mode 100644
index 0000000..f891de4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt
@@ -0,0 +1,15 @@
+URI.DisableResources
+TYPE: bool
+VERSION: 4.2.0
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    Disables embedding resources, essentially meaning no pictures. You can
+    still link to them though. See %URI.DisableExternalResources for why
+    this might be a good idea.
+</p>
+<p>
+    <em>Note:</em> While this directive has been available since 1.3.0,
+    it didn't actually start doing anything until 4.2.0.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt
new file mode 100644
index 0000000..ee83b12
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt
@@ -0,0 +1,19 @@
+URI.Host
+TYPE: string/null
+VERSION: 1.2.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    Defines the domain name of the server, so we can determine whether or
+    an absolute URI is from your website or not.  Not strictly necessary,
+    as users should be using relative URIs to reference resources on your
+    website.  It will, however, let you use absolute URIs to link to
+    subdomains of the domain you post here: i.e. example.com will allow
+    sub.example.com.  However, higher up domains will still be excluded:
+    if you set %URI.Host to sub.example.com, example.com will be blocked.
+    <strong>Note:</strong> This directive overrides %URI.Base because
+    a given page may be on a sub-domain, but you wish HTML Purifier to be
+    more relaxed and allow some of the parent domains too.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt
new file mode 100644
index 0000000..0b6df76
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt
@@ -0,0 +1,9 @@
+URI.HostBlacklist
+TYPE: list
+VERSION: 1.3.0
+DEFAULT: array()
+--DESCRIPTION--
+List of strings that are forbidden in the host of any URI. Use it to kill
+domain names of spam, etc. Note that it will catch anything in the domain,
+so <tt>moo.com</tt> will catch <tt>moo.com.example.com</tt>.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt
new file mode 100644
index 0000000..4214900
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt
@@ -0,0 +1,13 @@
+URI.MakeAbsolute
+TYPE: bool
+VERSION: 2.1.0
+DEFAULT: false
+--DESCRIPTION--
+
+<p>
+    Converts all URIs into absolute forms. This is useful when the HTML
+    being filtered assumes a specific base path, but will actually be
+    viewed in a different context (and setting an alternate base URI is
+    not possible). %URI.Base must be set for this directive to work.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt
new file mode 100644
index 0000000..58c81dc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt
@@ -0,0 +1,83 @@
+URI.Munge
+TYPE: string/null
+VERSION: 1.3.0
+DEFAULT: NULL
+--DESCRIPTION--
+
+<p>
+    Munges all browsable (usually http, https and ftp)
+    absolute URIs into another URI, usually a URI redirection service.
+    This directive accepts a URI, formatted with a <code>%s</code> where
+    the url-encoded original URI should be inserted (sample:
+    <code>http://www.google.com/url?q=%s</code>).
+</p>
+<p>
+    Uses for this directive:
+</p>
+<ul>
+    <li>
+        Prevent PageRank leaks, while being fairly transparent
+        to users (you may also want to add some client side JavaScript to
+        override the text in the statusbar). <strong>Notice</strong>:
+        Many security experts believe that this form of protection does not deter spam-bots.
+    </li>
+    <li>
+        Redirect users to a splash page telling them they are leaving your
+        website. While this is poor usability practice, it is often mandated
+        in corporate environments.
+    </li>
+</ul>
+<p>
+    Prior to HTML Purifier 3.1.1, this directive also enabled the munging
+    of browsable external resources, which could break things if your redirection
+    script was a splash page or used <code>meta</code> tags. To revert to
+    previous behavior, please use %URI.MungeResources.
+</p>
+<p>
+    You may want to also use %URI.MungeSecretKey along with this directive
+    in order to enforce what URIs your redirector script allows. Open
+    redirector scripts can be a security risk and negatively affect the
+    reputation of your domain name.
+</p>
+<p>
+    Starting with HTML Purifier 3.1.1, there is also these substitutions:
+</p>
+<table>
+    <thead>
+        <tr>
+            <th>Key</th>
+            <th>Description</th>
+            <th>Example <code><a href=""></code></th>
+        </tr>
+    </thead>
+    <tbody>
+        <tr>
+            <td>%r</td>
+            <td>1 - The URI embeds a resource<br />(blank) - The URI is merely a link</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>%n</td>
+            <td>The name of the tag this URI came from</td>
+            <td>a</td>
+        </tr>
+        <tr>
+            <td>%m</td>
+            <td>The name of the attribute this URI came from</td>
+            <td>href</td>
+        </tr>
+        <tr>
+            <td>%p</td>
+            <td>The name of the CSS property this URI came from, or blank if irrelevant</td>
+            <td></td>
+        </tr>
+    </tbody>
+</table>
+<p>
+    Admittedly, these letters are somewhat arbitrary; the only stipulation
+    was that they couldn't be a through f. r is for resource (I would have preferred
+    e, but you take what you can get), n is for name, m
+    was picked because it came after n (and I couldn't use a), p is for
+    property.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt
new file mode 100644
index 0000000..6fce0fd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt
@@ -0,0 +1,17 @@
+URI.MungeResources
+TYPE: bool
+VERSION: 3.1.1
+DEFAULT: false
+--DESCRIPTION--
+<p>
+    If true, any URI munging directives like %URI.Munge
+    will also apply to embedded resources, such as <code><img src=""></code>.
+    Be careful enabling this directive if you have a redirector script
+    that does not use the <code>Location</code> HTTP header; all of your images
+    and other embedded resources will break.
+</p>
+<p>
+    <strong>Warning:</strong> It is strongly advised you use this in conjunction
+    %URI.MungeSecretKey to mitigate the security risk of an open redirector.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt
new file mode 100644
index 0000000..1e17c1d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt
@@ -0,0 +1,30 @@
+URI.MungeSecretKey
+TYPE: string/null
+VERSION: 3.1.1
+DEFAULT: NULL
+--DESCRIPTION--
+<p>
+    This directive enables secure checksum generation along with %URI.Munge.
+    It should be set to a secure key that is not shared with anyone else.
+    The checksum can be placed in the URI using %t. Use of this checksum
+    affords an additional level of protection by allowing a redirector
+    to check if a URI has passed through HTML Purifier with this line:
+</p>
+
+<pre>$checksum === hash_hmac("sha256", $url, $secret_key)</pre>
+
+<p>
+    If the output is TRUE, the redirector script should accept the URI.
+</p>
+
+<p>
+    Please note that it would still be possible for an attacker to procure
+    secure hashes en-mass by abusing your website's Preview feature or the
+    like, but this service affords an additional level of protection
+    that should be combined with website blacklisting.
+</p>
+
+<p>
+    Remember this has no effect if %URI.Munge is not on.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt
new file mode 100644
index 0000000..23331a4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt
@@ -0,0 +1,9 @@
+URI.OverrideAllowedSchemes
+TYPE: bool
+DEFAULT: true
+--DESCRIPTION--
+If this is set to true (which it is by default), you can override
+%URI.AllowedSchemes by simply registering a HTMLPurifier_URIScheme to the
+registry.  If false, you will also have to update that directive in order
+to add more schemes.
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt
new file mode 100644
index 0000000..7908483
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt
@@ -0,0 +1,22 @@
+URI.SafeIframeRegexp
+TYPE: string/null
+VERSION: 4.4.0
+DEFAULT: NULL
+--DESCRIPTION--
+<p>
+    A PCRE regular expression that will be matched against an iframe URI.  This is
+    a relatively inflexible scheme, but works well enough for the most common
+    use-case of iframes: embedded video.  This directive only has an effect if
+    %HTML.SafeIframe is enabled.  Here are some example values:
+</p>
+<ul>
+    <li><code>%^http://www.youtube.com/embed/%</code> - Allow YouTube videos</li>
+    <li><code>%^http://player.vimeo.com/video/%</code> - Allow Vimeo videos</li>
+    <li><code>%^http://(www.youtube.com/embed/|player.vimeo.com/video/)%</code> - Allow both</li>
+</ul>
+<p>
+    Note that this directive does not give you enough granularity to, say, disable
+    all <code>autoplay</code> videos.  Pipe up on the HTML Purifier forums if this
+    is a capability you want.
+</p>
+--# vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini
new file mode 100644
index 0000000..5de4505
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini
@@ -0,0 +1,3 @@
+name = "HTML Purifier"
+
+; vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ContentSets.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ContentSets.php
new file mode 100644
index 0000000..543e3f8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ContentSets.php
@@ -0,0 +1,170 @@
+<?php
+
+/**
+ * @todo Unit test
+ */
+class HTMLPurifier_ContentSets
+{
+
+    /**
+     * List of content set strings (pipe separators) indexed by name.
+     * @type array
+     */
+    public $info = array();
+
+    /**
+     * List of content set lookups (element => true) indexed by name.
+     * @type array
+     * @note This is in HTMLPurifier_HTMLDefinition->info_content_sets
+     */
+    public $lookup = array();
+
+    /**
+     * Synchronized list of defined content sets (keys of info).
+     * @type array
+     */
+    protected $keys = array();
+    /**
+     * Synchronized list of defined content values (values of info).
+     * @type array
+     */
+    protected $values = array();
+
+    /**
+     * Merges in module's content sets, expands identifiers in the content
+     * sets and populates the keys, values and lookup member variables.
+     * @param HTMLPurifier_HTMLModule[] $modules List of HTMLPurifier_HTMLModule
+     */
+    public function __construct($modules)
+    {
+        if (!is_array($modules)) {
+            $modules = array($modules);
+        }
+        // populate content_sets based on module hints
+        // sorry, no way of overloading
+        foreach ($modules as $module) {
+            foreach ($module->content_sets as $key => $value) {
+                $temp = $this->convertToLookup($value);
+                if (isset($this->lookup[$key])) {
+                    // add it into the existing content set
+                    $this->lookup[$key] = array_merge($this->lookup[$key], $temp);
+                } else {
+                    $this->lookup[$key] = $temp;
+                }
+            }
+        }
+        $old_lookup = false;
+        while ($old_lookup !== $this->lookup) {
+            $old_lookup = $this->lookup;
+            foreach ($this->lookup as $i => $set) {
+                $add = array();
+                foreach ($set as $element => $x) {
+                    if (isset($this->lookup[$element])) {
+                        $add += $this->lookup[$element];
+                        unset($this->lookup[$i][$element]);
+                    }
+                }
+                $this->lookup[$i] += $add;
+            }
+        }
+
+        foreach ($this->lookup as $key => $lookup) {
+            $this->info[$key] = implode(' | ', array_keys($lookup));
+        }
+        $this->keys   = array_keys($this->info);
+        $this->values = array_values($this->info);
+    }
+
+    /**
+     * Accepts a definition; generates and assigns a ChildDef for it
+     * @param HTMLPurifier_ElementDef $def HTMLPurifier_ElementDef reference
+     * @param HTMLPurifier_HTMLModule $module Module that defined the ElementDef
+     */
+    public function generateChildDef(&$def, $module)
+    {
+        if (!empty($def->child)) { // already done!
+            return;
+        }
+        $content_model = $def->content_model;
+        if (is_string($content_model)) {
+            // Assume that $this->keys is alphanumeric
+            $def->content_model = preg_replace_callback(
+                '/\b(' . implode('|', $this->keys) . ')\b/',
+                array($this, 'generateChildDefCallback'),
+                $content_model
+            );
+            //$def->content_model = str_replace(
+            //    $this->keys, $this->values, $content_model);
+        }
+        $def->child = $this->getChildDef($def, $module);
+    }
+
+    public function generateChildDefCallback($matches)
+    {
+        return $this->info[$matches[0]];
+    }
+
+    /**
+     * Instantiates a ChildDef based on content_model and content_model_type
+     * member variables in HTMLPurifier_ElementDef
+     * @note This will also defer to modules for custom HTMLPurifier_ChildDef
+     *       subclasses that need content set expansion
+     * @param HTMLPurifier_ElementDef $def HTMLPurifier_ElementDef to have ChildDef extracted
+     * @param HTMLPurifier_HTMLModule $module Module that defined the ElementDef
+     * @return HTMLPurifier_ChildDef corresponding to ElementDef
+     */
+    public function getChildDef($def, $module)
+    {
+        $value = $def->content_model;
+        if (is_object($value)) {
+            trigger_error(
+                'Literal object child definitions should be stored in '.
+                'ElementDef->child not ElementDef->content_model',
+                E_USER_NOTICE
+            );
+            return $value;
+        }
+        switch ($def->content_model_type) {
+            case 'required':
+                return new HTMLPurifier_ChildDef_Required($value);
+            case 'optional':
+                return new HTMLPurifier_ChildDef_Optional($value);
+            case 'empty':
+                return new HTMLPurifier_ChildDef_Empty();
+            case 'custom':
+                return new HTMLPurifier_ChildDef_Custom($value);
+        }
+        // defer to its module
+        $return = false;
+        if ($module->defines_child_def) { // save a func call
+            $return = $module->getChildDef($def);
+        }
+        if ($return !== false) {
+            return $return;
+        }
+        // error-out
+        trigger_error(
+            'Could not determine which ChildDef class to instantiate',
+            E_USER_ERROR
+        );
+        return false;
+    }
+
+    /**
+     * Converts a string list of elements separated by pipes into
+     * a lookup array.
+     * @param string $string List of elements
+     * @return array Lookup array of elements
+     */
+    protected function convertToLookup($string)
+    {
+        $array = explode('|', str_replace(' ', '', $string));
+        $ret = array();
+        foreach ($array as $k) {
+            $ret[$k] = true;
+        }
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Context.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Context.php
new file mode 100644
index 0000000..00e509c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Context.php
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * Registry object that contains information about the current context.
+ * @warning Is a bit buggy when variables are set to null: it thinks
+ *          they don't exist! So use false instead, please.
+ * @note Since the variables Context deals with may not be objects,
+ *       references are very important here! Do not remove!
+ */
+class HTMLPurifier_Context
+{
+
+    /**
+     * Private array that stores the references.
+     * @type array
+     */
+    private $_storage = array();
+
+    /**
+     * Registers a variable into the context.
+     * @param string $name String name
+     * @param mixed $ref Reference to variable to be registered
+     */
+    public function register($name, &$ref)
+    {
+        if (array_key_exists($name, $this->_storage)) {
+            trigger_error(
+                "Name $name produces collision, cannot re-register",
+                E_USER_ERROR
+            );
+            return;
+        }
+        $this->_storage[$name] =& $ref;
+    }
+
+    /**
+     * Retrieves a variable reference from the context.
+     * @param string $name String name
+     * @param bool $ignore_error Boolean whether or not to ignore error
+     * @return mixed
+     */
+    public function &get($name, $ignore_error = false)
+    {
+        if (!array_key_exists($name, $this->_storage)) {
+            if (!$ignore_error) {
+                trigger_error(
+                    "Attempted to retrieve non-existent variable $name",
+                    E_USER_ERROR
+                );
+            }
+            $var = null; // so we can return by reference
+            return $var;
+        }
+        return $this->_storage[$name];
+    }
+
+    /**
+     * Destroys a variable in the context.
+     * @param string $name String name
+     */
+    public function destroy($name)
+    {
+        if (!array_key_exists($name, $this->_storage)) {
+            trigger_error(
+                "Attempted to destroy non-existent variable $name",
+                E_USER_ERROR
+            );
+            return;
+        }
+        unset($this->_storage[$name]);
+    }
+
+    /**
+     * Checks whether or not the variable exists.
+     * @param string $name String name
+     * @return bool
+     */
+    public function exists($name)
+    {
+        return array_key_exists($name, $this->_storage);
+    }
+
+    /**
+     * Loads a series of variables from an associative array
+     * @param array $context_array Assoc array of variables to load
+     */
+    public function loadArray($context_array)
+    {
+        foreach ($context_array as $key => $discard) {
+            $this->register($key, $context_array[$key]);
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Definition.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Definition.php
new file mode 100644
index 0000000..bc6d433
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Definition.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * Super-class for definition datatype objects, implements serialization
+ * functions for the class.
+ */
+abstract class HTMLPurifier_Definition
+{
+
+    /**
+     * Has setup() been called yet?
+     * @type bool
+     */
+    public $setup = false;
+
+    /**
+     * If true, write out the final definition object to the cache after
+     * setup.  This will be true only if all invocations to get a raw
+     * definition object are also optimized.  This does not cause file
+     * system thrashing because on subsequent calls the cached object
+     * is used and any writes to the raw definition object are short
+     * circuited.  See enduser-customize.html for the high-level
+     * picture.
+     * @type bool
+     */
+    public $optimized = null;
+
+    /**
+     * What type of definition is it?
+     * @type string
+     */
+    public $type;
+
+    /**
+     * Sets up the definition object into the final form, something
+     * not done by the constructor
+     * @param HTMLPurifier_Config $config
+     */
+    abstract protected function doSetup($config);
+
+    /**
+     * Setup function that aborts if already setup
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        if ($this->setup) {
+            return;
+        }
+        $this->setup = true;
+        $this->doSetup($config);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache.php
new file mode 100644
index 0000000..67bb5b1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache.php
@@ -0,0 +1,129 @@
+<?php
+
+/**
+ * Abstract class representing Definition cache managers that implements
+ * useful common methods and is a factory.
+ * @todo Create a separate maintenance file advanced users can use to
+ *       cache their custom HTMLDefinition, which can be loaded
+ *       via a configuration directive
+ * @todo Implement memcached
+ */
+abstract class HTMLPurifier_DefinitionCache
+{
+    /**
+     * @type string
+     */
+    public $type;
+
+    /**
+     * @param string $type Type of definition objects this instance of the
+     *      cache will handle.
+     */
+    public function __construct($type)
+    {
+        $this->type = $type;
+    }
+
+    /**
+     * Generates a unique identifier for a particular configuration
+     * @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config
+     * @return string
+     */
+    public function generateKey($config)
+    {
+        return $config->version . ',' . // possibly replace with function calls
+               $config->getBatchSerial($this->type) . ',' .
+               $config->get($this->type . '.DefinitionRev');
+    }
+
+    /**
+     * Tests whether or not a key is old with respect to the configuration's
+     * version and revision number.
+     * @param string $key Key to test
+     * @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config to test against
+     * @return bool
+     */
+    public function isOld($key, $config)
+    {
+        if (substr_count($key, ',') < 2) {
+            return true;
+        }
+        list($version, $hash, $revision) = explode(',', $key, 3);
+        $compare = version_compare($version, $config->version);
+        // version mismatch, is always old
+        if ($compare != 0) {
+            return true;
+        }
+        // versions match, ids match, check revision number
+        if ($hash == $config->getBatchSerial($this->type) &&
+            $revision < $config->get($this->type . '.DefinitionRev')) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Checks if a definition's type jives with the cache's type
+     * @note Throws an error on failure
+     * @param HTMLPurifier_Definition $def Definition object to check
+     * @return bool true if good, false if not
+     */
+    public function checkDefType($def)
+    {
+        if ($def->type !== $this->type) {
+            trigger_error("Cannot use definition of type {$def->type} in cache for {$this->type}");
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Adds a definition object to the cache
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     */
+    abstract public function add($def, $config);
+
+    /**
+     * Unconditionally saves a definition object to the cache
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     */
+    abstract public function set($def, $config);
+
+    /**
+     * Replace an object in the cache
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     */
+    abstract public function replace($def, $config);
+
+    /**
+     * Retrieves a definition object from the cache
+     * @param HTMLPurifier_Config $config
+     */
+    abstract public function get($config);
+
+    /**
+     * Removes a definition object to the cache
+     * @param HTMLPurifier_Config $config
+     */
+    abstract public function remove($config);
+
+    /**
+     * Clears all objects from cache
+     * @param HTMLPurifier_Config $config
+     */
+    abstract public function flush($config);
+
+    /**
+     * Clears all expired (older version or revision) objects from cache
+     * @note Be carefuly implementing this method as flush. Flush must
+     *       not interfere with other Definition types, and cleanup()
+     *       should not be repeatedly called by userland code.
+     * @param HTMLPurifier_Config $config
+     */
+    abstract public function cleanup($config);
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php
new file mode 100644
index 0000000..b57a51b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php
@@ -0,0 +1,112 @@
+<?php
+
+class HTMLPurifier_DefinitionCache_Decorator extends HTMLPurifier_DefinitionCache
+{
+
+    /**
+     * Cache object we are decorating
+     * @type HTMLPurifier_DefinitionCache
+     */
+    public $cache;
+
+    /**
+     * The name of the decorator
+     * @var string
+     */
+    public $name;
+
+    public function __construct()
+    {
+    }
+
+    /**
+     * Lazy decorator function
+     * @param HTMLPurifier_DefinitionCache $cache Reference to cache object to decorate
+     * @return HTMLPurifier_DefinitionCache_Decorator
+     */
+    public function decorate(&$cache)
+    {
+        $decorator = $this->copy();
+        // reference is necessary for mocks in PHP 4
+        $decorator->cache =& $cache;
+        $decorator->type = $cache->type;
+        return $decorator;
+    }
+
+    /**
+     * Cross-compatible clone substitute
+     * @return HTMLPurifier_DefinitionCache_Decorator
+     */
+    public function copy()
+    {
+        return new HTMLPurifier_DefinitionCache_Decorator();
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function add($def, $config)
+    {
+        return $this->cache->add($def, $config);
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function set($def, $config)
+    {
+        return $this->cache->set($def, $config);
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function replace($def, $config)
+    {
+        return $this->cache->replace($def, $config);
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function get($config)
+    {
+        return $this->cache->get($config);
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function remove($config)
+    {
+        return $this->cache->remove($config);
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function flush($config)
+    {
+        return $this->cache->flush($config);
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function cleanup($config)
+    {
+        return $this->cache->cleanup($config);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php
new file mode 100644
index 0000000..4991777
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php
@@ -0,0 +1,78 @@
+<?php
+
+/**
+ * Definition cache decorator class that cleans up the cache
+ * whenever there is a cache miss.
+ */
+class HTMLPurifier_DefinitionCache_Decorator_Cleanup extends HTMLPurifier_DefinitionCache_Decorator
+{
+    /**
+     * @type string
+     */
+    public $name = 'Cleanup';
+
+    /**
+     * @return HTMLPurifier_DefinitionCache_Decorator_Cleanup
+     */
+    public function copy()
+    {
+        return new HTMLPurifier_DefinitionCache_Decorator_Cleanup();
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function add($def, $config)
+    {
+        $status = parent::add($def, $config);
+        if (!$status) {
+            parent::cleanup($config);
+        }
+        return $status;
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function set($def, $config)
+    {
+        $status = parent::set($def, $config);
+        if (!$status) {
+            parent::cleanup($config);
+        }
+        return $status;
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function replace($def, $config)
+    {
+        $status = parent::replace($def, $config);
+        if (!$status) {
+            parent::cleanup($config);
+        }
+        return $status;
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function get($config)
+    {
+        $ret = parent::get($config);
+        if (!$ret) {
+            parent::cleanup($config);
+        }
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php
new file mode 100644
index 0000000..d529dce
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php
@@ -0,0 +1,85 @@
+<?php
+
+/**
+ * Definition cache decorator class that saves all cache retrievals
+ * to PHP's memory; good for unit tests or circumstances where
+ * there are lots of configuration objects floating around.
+ */
+class HTMLPurifier_DefinitionCache_Decorator_Memory extends HTMLPurifier_DefinitionCache_Decorator
+{
+    /**
+     * @type array
+     */
+    protected $definitions;
+
+    /**
+     * @type string
+     */
+    public $name = 'Memory';
+
+    /**
+     * @return HTMLPurifier_DefinitionCache_Decorator_Memory
+     */
+    public function copy()
+    {
+        return new HTMLPurifier_DefinitionCache_Decorator_Memory();
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function add($def, $config)
+    {
+        $status = parent::add($def, $config);
+        if ($status) {
+            $this->definitions[$this->generateKey($config)] = $def;
+        }
+        return $status;
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function set($def, $config)
+    {
+        $status = parent::set($def, $config);
+        if ($status) {
+            $this->definitions[$this->generateKey($config)] = $def;
+        }
+        return $status;
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function replace($def, $config)
+    {
+        $status = parent::replace($def, $config);
+        if ($status) {
+            $this->definitions[$this->generateKey($config)] = $def;
+        }
+        return $status;
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return mixed
+     */
+    public function get($config)
+    {
+        $key = $this->generateKey($config);
+        if (isset($this->definitions[$key])) {
+            return $this->definitions[$key];
+        }
+        $this->definitions[$key] = parent::get($config);
+        return $this->definitions[$key];
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php
new file mode 100644
index 0000000..d9a75ce
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * Null cache object to use when no caching is on.
+ */
+class HTMLPurifier_DefinitionCache_Null extends HTMLPurifier_DefinitionCache
+{
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function add($def, $config)
+    {
+        return false;
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function set($def, $config)
+    {
+        return false;
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function replace($def, $config)
+    {
+        return false;
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function remove($config)
+    {
+        return false;
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function get($config)
+    {
+        return false;
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function flush($config)
+    {
+        return false;
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function cleanup($config)
+    {
+        return false;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
new file mode 100644
index 0000000..ecacb88
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
@@ -0,0 +1,285 @@
+<?php
+
+class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCache
+{
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return int|bool
+     */
+    public function add($def, $config)
+    {
+        if (!$this->checkDefType($def)) {
+            return;
+        }
+        $file = $this->generateFilePath($config);
+        if (file_exists($file)) {
+            return false;
+        }
+        if (!$this->_prepareDir($config)) {
+            return false;
+        }
+        return $this->_write($file, serialize($def), $config);
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return int|bool
+     */
+    public function set($def, $config)
+    {
+        if (!$this->checkDefType($def)) {
+            return;
+        }
+        $file = $this->generateFilePath($config);
+        if (!$this->_prepareDir($config)) {
+            return false;
+        }
+        return $this->_write($file, serialize($def), $config);
+    }
+
+    /**
+     * @param HTMLPurifier_Definition $def
+     * @param HTMLPurifier_Config $config
+     * @return int|bool
+     */
+    public function replace($def, $config)
+    {
+        if (!$this->checkDefType($def)) {
+            return;
+        }
+        $file = $this->generateFilePath($config);
+        if (!file_exists($file)) {
+            return false;
+        }
+        if (!$this->_prepareDir($config)) {
+            return false;
+        }
+        return $this->_write($file, serialize($def), $config);
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool|HTMLPurifier_Config
+     */
+    public function get($config)
+    {
+        $file = $this->generateFilePath($config);
+        if (!file_exists($file)) {
+            return false;
+        }
+        return unserialize(file_get_contents($file));
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function remove($config)
+    {
+        $file = $this->generateFilePath($config);
+        if (!file_exists($file)) {
+            return false;
+        }
+        return unlink($file);
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function flush($config)
+    {
+        if (!$this->_prepareDir($config)) {
+            return false;
+        }
+        $dir = $this->generateDirectoryPath($config);
+        $dh = opendir($dir);
+        while (false !== ($filename = readdir($dh))) {
+            if (empty($filename)) {
+                continue;
+            }
+            if ($filename[0] === '.') {
+                continue;
+            }
+            unlink($dir . '/' . $filename);
+        }
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function cleanup($config)
+    {
+        if (!$this->_prepareDir($config)) {
+            return false;
+        }
+        $dir = $this->generateDirectoryPath($config);
+        $dh = opendir($dir);
+        while (false !== ($filename = readdir($dh))) {
+            if (empty($filename)) {
+                continue;
+            }
+            if ($filename[0] === '.') {
+                continue;
+            }
+            $key = substr($filename, 0, strlen($filename) - 4);
+            if ($this->isOld($key, $config)) {
+                unlink($dir . '/' . $filename);
+            }
+        }
+    }
+
+    /**
+     * Generates the file path to the serial file corresponding to
+     * the configuration and definition name
+     * @param HTMLPurifier_Config $config
+     * @return string
+     * @todo Make protected
+     */
+    public function generateFilePath($config)
+    {
+        $key = $this->generateKey($config);
+        return $this->generateDirectoryPath($config) . '/' . $key . '.ser';
+    }
+
+    /**
+     * Generates the path to the directory contain this cache's serial files
+     * @param HTMLPurifier_Config $config
+     * @return string
+     * @note No trailing slash
+     * @todo Make protected
+     */
+    public function generateDirectoryPath($config)
+    {
+        $base = $this->generateBaseDirectoryPath($config);
+        return $base . '/' . $this->type;
+    }
+
+    /**
+     * Generates path to base directory that contains all definition type
+     * serials
+     * @param HTMLPurifier_Config $config
+     * @return mixed|string
+     * @todo Make protected
+     */
+    public function generateBaseDirectoryPath($config)
+    {
+        $base = $config->get('Cache.SerializerPath');
+        $base = is_null($base) ? HTMLPURIFIER_PREFIX . '/HTMLPurifier/DefinitionCache/Serializer' : $base;
+        return $base;
+    }
+
+    /**
+     * Convenience wrapper function for file_put_contents
+     * @param string $file File name to write to
+     * @param string $data Data to write into file
+     * @param HTMLPurifier_Config $config
+     * @return int|bool Number of bytes written if success, or false if failure.
+     */
+    private function _write($file, $data, $config)
+    {
+        $result = file_put_contents($file, $data);
+        if ($result !== false) {
+            // set permissions of the new file (no execute)
+            $chmod = $config->get('Cache.SerializerPermissions');
+            if (!$chmod) {
+                $chmod = 0644; // invalid config or simpletest
+            }
+            $chmod = $chmod & 0666;
+            chmod($file, $chmod);
+        }
+        return $result;
+    }
+
+    /**
+     * Prepares the directory that this type stores the serials in
+     * @param HTMLPurifier_Config $config
+     * @return bool True if successful
+     */
+    private function _prepareDir($config)
+    {
+        $directory = $this->generateDirectoryPath($config);
+        $chmod = $config->get('Cache.SerializerPermissions');
+        if (!$chmod) {
+            $chmod = 0755; // invalid config or simpletest
+        }
+        if (!is_dir($directory)) {
+            $base = $this->generateBaseDirectoryPath($config);
+            if (!is_dir($base)) {
+                trigger_error(
+                    'Base directory ' . $base . ' does not exist,
+                    please create or change using %Cache.SerializerPath',
+                    E_USER_WARNING
+                );
+                return false;
+            } elseif (!$this->_testPermissions($base, $chmod)) {
+                return false;
+            }
+            $old = umask(0000);
+            mkdir($directory, $chmod);
+            umask($old);
+        } elseif (!$this->_testPermissions($directory, $chmod)) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Tests permissions on a directory and throws out friendly
+     * error messages and attempts to chmod it itself if possible
+     * @param string $dir Directory path
+     * @param int $chmod Permissions
+     * @return bool True if directory is writable
+     */
+    private function _testPermissions($dir, $chmod)
+    {
+        // early abort, if it is writable, everything is hunky-dory
+        if (is_writable($dir)) {
+            return true;
+        }
+        if (!is_dir($dir)) {
+            // generally, you'll want to handle this beforehand
+            // so a more specific error message can be given
+            trigger_error(
+                'Directory ' . $dir . ' does not exist',
+                E_USER_WARNING
+            );
+            return false;
+        }
+        if (function_exists('posix_getuid')) {
+            // POSIX system, we can give more specific advice
+            if (fileowner($dir) === posix_getuid()) {
+                // we can chmod it ourselves
+                $chmod = $chmod | 0700;
+                if (chmod($dir, $chmod)) {
+                    return true;
+                }
+            } elseif (filegroup($dir) === posix_getgid()) {
+                $chmod = $chmod | 0070;
+            } else {
+                // PHP's probably running as nobody, so we'll
+                // need to give global permissions
+                $chmod = $chmod | 0777;
+            }
+            trigger_error(
+                'Directory ' . $dir . ' not writable, ' .
+                'please chmod to ' . decoct($chmod),
+                E_USER_WARNING
+            );
+        } else {
+            // generic error message
+            trigger_error(
+                'Directory ' . $dir . ' not writable, ' .
+                'please alter file permissions',
+                E_USER_WARNING
+            );
+        }
+        return false;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
new file mode 100644
index 0000000..2e35c1c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
@@ -0,0 +1,3 @@
+This is a dummy file to prevent Git from ignoring this empty directory.
+
+    vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php
new file mode 100644
index 0000000..fd1cc9b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php
@@ -0,0 +1,106 @@
+<?php
+
+/**
+ * Responsible for creating definition caches.
+ */
+class HTMLPurifier_DefinitionCacheFactory
+{
+    /**
+     * @type array
+     */
+    protected $caches = array('Serializer' => array());
+
+    /**
+     * @type array
+     */
+    protected $implementations = array();
+
+    /**
+     * @type HTMLPurifier_DefinitionCache_Decorator[]
+     */
+    protected $decorators = array();
+
+    /**
+     * Initialize default decorators
+     */
+    public function setup()
+    {
+        $this->addDecorator('Cleanup');
+    }
+
+    /**
+     * Retrieves an instance of global definition cache factory.
+     * @param HTMLPurifier_DefinitionCacheFactory $prototype
+     * @return HTMLPurifier_DefinitionCacheFactory
+     */
+    public static function instance($prototype = null)
+    {
+        static $instance;
+        if ($prototype !== null) {
+            $instance = $prototype;
+        } elseif ($instance === null || $prototype === true) {
+            $instance = new HTMLPurifier_DefinitionCacheFactory();
+            $instance->setup();
+        }
+        return $instance;
+    }
+
+    /**
+     * Registers a new definition cache object
+     * @param string $short Short name of cache object, for reference
+     * @param string $long Full class name of cache object, for construction
+     */
+    public function register($short, $long)
+    {
+        $this->implementations[$short] = $long;
+    }
+
+    /**
+     * Factory method that creates a cache object based on configuration
+     * @param string $type Name of definitions handled by cache
+     * @param HTMLPurifier_Config $config Config instance
+     * @return mixed
+     */
+    public function create($type, $config)
+    {
+        $method = $config->get('Cache.DefinitionImpl');
+        if ($method === null) {
+            return new HTMLPurifier_DefinitionCache_Null($type);
+        }
+        if (!empty($this->caches[$method][$type])) {
+            return $this->caches[$method][$type];
+        }
+        if (isset($this->implementations[$method]) &&
+            class_exists($class = $this->implementations[$method], false)) {
+            $cache = new $class($type);
+        } else {
+            if ($method != 'Serializer') {
+                trigger_error("Unrecognized DefinitionCache $method, using Serializer instead", E_USER_WARNING);
+            }
+            $cache = new HTMLPurifier_DefinitionCache_Serializer($type);
+        }
+        foreach ($this->decorators as $decorator) {
+            $new_cache = $decorator->decorate($cache);
+            // prevent infinite recursion in PHP 4
+            unset($cache);
+            $cache = $new_cache;
+        }
+        $this->caches[$method][$type] = $cache;
+        return $this->caches[$method][$type];
+    }
+
+    /**
+     * Registers a decorator to add to all new cache objects
+     * @param HTMLPurifier_DefinitionCache_Decorator|string $decorator An instance or the name of a decorator
+     */
+    public function addDecorator($decorator)
+    {
+        if (is_string($decorator)) {
+            $class = "HTMLPurifier_DefinitionCache_Decorator_$decorator";
+            $decorator = new $class;
+        }
+        $this->decorators[$decorator->name] = $decorator;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Doctype.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Doctype.php
new file mode 100644
index 0000000..4acd06e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Doctype.php
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ * Represents a document type, contains information on which modules
+ * need to be loaded.
+ * @note This class is inspected by Printer_HTMLDefinition->renderDoctype.
+ *       If structure changes, please update that function.
+ */
+class HTMLPurifier_Doctype
+{
+    /**
+     * Full name of doctype
+     * @type string
+     */
+    public $name;
+
+    /**
+     * List of standard modules (string identifiers or literal objects)
+     * that this doctype uses
+     * @type array
+     */
+    public $modules = array();
+
+    /**
+     * List of modules to use for tidying up code
+     * @type array
+     */
+    public $tidyModules = array();
+
+    /**
+     * Is the language derived from XML (i.e. XHTML)?
+     * @type bool
+     */
+    public $xml = true;
+
+    /**
+     * List of aliases for this doctype
+     * @type array
+     */
+    public $aliases = array();
+
+    /**
+     * Public DTD identifier
+     * @type string
+     */
+    public $dtdPublic;
+
+    /**
+     * System DTD identifier
+     * @type string
+     */
+    public $dtdSystem;
+
+    public function __construct(
+        $name = null,
+        $xml = true,
+        $modules = array(),
+        $tidyModules = array(),
+        $aliases = array(),
+        $dtd_public = null,
+        $dtd_system = null
+    ) {
+        $this->name         = $name;
+        $this->xml          = $xml;
+        $this->modules      = $modules;
+        $this->tidyModules  = $tidyModules;
+        $this->aliases      = $aliases;
+        $this->dtdPublic    = $dtd_public;
+        $this->dtdSystem    = $dtd_system;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php
new file mode 100644
index 0000000..acc1d64
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php
@@ -0,0 +1,142 @@
+<?php
+
+class HTMLPurifier_DoctypeRegistry
+{
+
+    /**
+     * Hash of doctype names to doctype objects.
+     * @type array
+     */
+    protected $doctypes;
+
+    /**
+     * Lookup table of aliases to real doctype names.
+     * @type array
+     */
+    protected $aliases;
+
+    /**
+     * Registers a doctype to the registry
+     * @note Accepts a fully-formed doctype object, or the
+     *       parameters for constructing a doctype object
+     * @param string $doctype Name of doctype or literal doctype object
+     * @param bool $xml
+     * @param array $modules Modules doctype will load
+     * @param array $tidy_modules Modules doctype will load for certain modes
+     * @param array $aliases Alias names for doctype
+     * @param string $dtd_public
+     * @param string $dtd_system
+     * @return HTMLPurifier_Doctype Editable registered doctype
+     */
+    public function register(
+        $doctype,
+        $xml = true,
+        $modules = array(),
+        $tidy_modules = array(),
+        $aliases = array(),
+        $dtd_public = null,
+        $dtd_system = null
+    ) {
+        if (!is_array($modules)) {
+            $modules = array($modules);
+        }
+        if (!is_array($tidy_modules)) {
+            $tidy_modules = array($tidy_modules);
+        }
+        if (!is_array($aliases)) {
+            $aliases = array($aliases);
+        }
+        if (!is_object($doctype)) {
+            $doctype = new HTMLPurifier_Doctype(
+                $doctype,
+                $xml,
+                $modules,
+                $tidy_modules,
+                $aliases,
+                $dtd_public,
+                $dtd_system
+            );
+        }
+        $this->doctypes[$doctype->name] = $doctype;
+        $name = $doctype->name;
+        // hookup aliases
+        foreach ($doctype->aliases as $alias) {
+            if (isset($this->doctypes[$alias])) {
+                continue;
+            }
+            $this->aliases[$alias] = $name;
+        }
+        // remove old aliases
+        if (isset($this->aliases[$name])) {
+            unset($this->aliases[$name]);
+        }
+        return $doctype;
+    }
+
+    /**
+     * Retrieves reference to a doctype of a certain name
+     * @note This function resolves aliases
+     * @note When possible, use the more fully-featured make()
+     * @param string $doctype Name of doctype
+     * @return HTMLPurifier_Doctype Editable doctype object
+     */
+    public function get($doctype)
+    {
+        if (isset($this->aliases[$doctype])) {
+            $doctype = $this->aliases[$doctype];
+        }
+        if (!isset($this->doctypes[$doctype])) {
+            trigger_error('Doctype ' . htmlspecialchars($doctype) . ' does not exist', E_USER_ERROR);
+            $anon = new HTMLPurifier_Doctype($doctype);
+            return $anon;
+        }
+        return $this->doctypes[$doctype];
+    }
+
+    /**
+     * Creates a doctype based on a configuration object,
+     * will perform initialization on the doctype
+     * @note Use this function to get a copy of doctype that config
+     *       can hold on to (this is necessary in order to tell
+     *       Generator whether or not the current document is XML
+     *       based or not).
+     * @param HTMLPurifier_Config $config
+     * @return HTMLPurifier_Doctype
+     */
+    public function make($config)
+    {
+        return clone $this->get($this->getDoctypeFromConfig($config));
+    }
+
+    /**
+     * Retrieves the doctype from the configuration object
+     * @param HTMLPurifier_Config $config
+     * @return string
+     */
+    public function getDoctypeFromConfig($config)
+    {
+        // recommended test
+        $doctype = $config->get('HTML.Doctype');
+        if (!empty($doctype)) {
+            return $doctype;
+        }
+        $doctype = $config->get('HTML.CustomDoctype');
+        if (!empty($doctype)) {
+            return $doctype;
+        }
+        // backwards-compatibility
+        if ($config->get('HTML.XHTML')) {
+            $doctype = 'XHTML 1.0';
+        } else {
+            $doctype = 'HTML 4.01';
+        }
+        if ($config->get('HTML.Strict')) {
+            $doctype .= ' Strict';
+        } else {
+            $doctype .= ' Transitional';
+        }
+        return $doctype;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ElementDef.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ElementDef.php
new file mode 100644
index 0000000..d5311ce
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ElementDef.php
@@ -0,0 +1,216 @@
+<?php
+
+/**
+ * Structure that stores an HTML element definition. Used by
+ * HTMLPurifier_HTMLDefinition and HTMLPurifier_HTMLModule.
+ * @note This class is inspected by HTMLPurifier_Printer_HTMLDefinition.
+ *       Please update that class too.
+ * @warning If you add new properties to this class, you MUST update
+ *          the mergeIn() method.
+ */
+class HTMLPurifier_ElementDef
+{
+    /**
+     * Does the definition work by itself, or is it created solely
+     * for the purpose of merging into another definition?
+     * @type bool
+     */
+    public $standalone = true;
+
+    /**
+     * Associative array of attribute name to HTMLPurifier_AttrDef.
+     * @type array
+     * @note Before being processed by HTMLPurifier_AttrCollections
+     *       when modules are finalized during
+     *       HTMLPurifier_HTMLDefinition->setup(), this array may also
+     *       contain an array at index 0 that indicates which attribute
+     *       collections to load into the full array. It may also
+     *       contain string indentifiers in lieu of HTMLPurifier_AttrDef,
+     *       see HTMLPurifier_AttrTypes on how they are expanded during
+     *       HTMLPurifier_HTMLDefinition->setup() processing.
+     */
+    public $attr = array();
+
+    // XXX: Design note: currently, it's not possible to override
+    // previously defined AttrTransforms without messing around with
+    // the final generated config. This is by design; a previous version
+    // used an associated list of attr_transform, but it was extremely
+    // easy to accidentally override other attribute transforms by
+    // forgetting to specify an index (and just using 0.)  While we
+    // could check this by checking the index number and complaining,
+    // there is a second problem which is that it is not at all easy to
+    // tell when something is getting overridden. Combine this with a
+    // codebase where this isn't really being used, and it's perfect for
+    // nuking.
+
+    /**
+     * List of tags HTMLPurifier_AttrTransform to be done before validation.
+     * @type array
+     */
+    public $attr_transform_pre = array();
+
+    /**
+     * List of tags HTMLPurifier_AttrTransform to be done after validation.
+     * @type array
+     */
+    public $attr_transform_post = array();
+
+    /**
+     * HTMLPurifier_ChildDef of this tag.
+     * @type HTMLPurifier_ChildDef
+     */
+    public $child;
+
+    /**
+     * Abstract string representation of internal ChildDef rules.
+     * @see HTMLPurifier_ContentSets for how this is parsed and then transformed
+     * into an HTMLPurifier_ChildDef.
+     * @warning This is a temporary variable that is not available after
+     *      being processed by HTMLDefinition
+     * @type string
+     */
+    public $content_model;
+
+    /**
+     * Value of $child->type, used to determine which ChildDef to use,
+     * used in combination with $content_model.
+     * @warning This must be lowercase
+     * @warning This is a temporary variable that is not available after
+     *      being processed by HTMLDefinition
+     * @type string
+     */
+    public $content_model_type;
+
+    /**
+     * Does the element have a content model (#PCDATA | Inline)*? This
+     * is important for chameleon ins and del processing in
+     * HTMLPurifier_ChildDef_Chameleon. Dynamically set: modules don't
+     * have to worry about this one.
+     * @type bool
+     */
+    public $descendants_are_inline = false;
+
+    /**
+     * List of the names of required attributes this element has.
+     * Dynamically populated by HTMLPurifier_HTMLDefinition::getElement()
+     * @type array
+     */
+    public $required_attr = array();
+
+    /**
+     * Lookup table of tags excluded from all descendants of this tag.
+     * @type array
+     * @note SGML permits exclusions for all descendants, but this is
+     *       not possible with DTDs or XML Schemas. W3C has elected to
+     *       use complicated compositions of content_models to simulate
+     *       exclusion for children, but we go the simpler, SGML-style
+     *       route of flat-out exclusions, which correctly apply to
+     *       all descendants and not just children. Note that the XHTML
+     *       Modularization Abstract Modules are blithely unaware of such
+     *       distinctions.
+     */
+    public $excludes = array();
+
+    /**
+     * This tag is explicitly auto-closed by the following tags.
+     * @type array
+     */
+    public $autoclose = array();
+
+    /**
+     * If a foreign element is found in this element, test if it is
+     * allowed by this sub-element; if it is, instead of closing the
+     * current element, place it inside this element.
+     * @type string
+     */
+    public $wrap;
+
+    /**
+     * Whether or not this is a formatting element affected by the
+     * "Active Formatting Elements" algorithm.
+     * @type bool
+     */
+    public $formatting;
+
+    /**
+     * Low-level factory constructor for creating new standalone element defs
+     */
+    public static function create($content_model, $content_model_type, $attr)
+    {
+        $def = new HTMLPurifier_ElementDef();
+        $def->content_model = $content_model;
+        $def->content_model_type = $content_model_type;
+        $def->attr = $attr;
+        return $def;
+    }
+
+    /**
+     * Merges the values of another element definition into this one.
+     * Values from the new element def take precedence if a value is
+     * not mergeable.
+     * @param HTMLPurifier_ElementDef $def
+     */
+    public function mergeIn($def)
+    {
+        // later keys takes precedence
+        foreach ($def->attr as $k => $v) {
+            if ($k === 0) {
+                // merge in the includes
+                // sorry, no way to override an include
+                foreach ($v as $v2) {
+                    $this->attr[0][] = $v2;
+                }
+                continue;
+            }
+            if ($v === false) {
+                if (isset($this->attr[$k])) {
+                    unset($this->attr[$k]);
+                }
+                continue;
+            }
+            $this->attr[$k] = $v;
+        }
+        $this->_mergeAssocArray($this->excludes, $def->excludes);
+        $this->attr_transform_pre = array_merge($this->attr_transform_pre, $def->attr_transform_pre);
+        $this->attr_transform_post = array_merge($this->attr_transform_post, $def->attr_transform_post);
+
+        if (!empty($def->content_model)) {
+            $this->content_model =
+                str_replace("#SUPER", $this->content_model, $def->content_model);
+            $this->child = false;
+        }
+        if (!empty($def->content_model_type)) {
+            $this->content_model_type = $def->content_model_type;
+            $this->child = false;
+        }
+        if (!is_null($def->child)) {
+            $this->child = $def->child;
+        }
+        if (!is_null($def->formatting)) {
+            $this->formatting = $def->formatting;
+        }
+        if ($def->descendants_are_inline) {
+            $this->descendants_are_inline = $def->descendants_are_inline;
+        }
+    }
+
+    /**
+     * Merges one array into another, removes values which equal false
+     * @param $a1 Array by reference that is merged into
+     * @param $a2 Array that merges into $a1
+     */
+    private function _mergeAssocArray(&$a1, $a2)
+    {
+        foreach ($a2 as $k => $v) {
+            if ($v === false) {
+                if (isset($a1[$k])) {
+                    unset($a1[$k]);
+                }
+                continue;
+            }
+            $a1[$k] = $v;
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Encoder.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Encoder.php
new file mode 100644
index 0000000..fef9b58
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Encoder.php
@@ -0,0 +1,611 @@
+<?php
+
+/**
+ * A UTF-8 specific character encoder that handles cleaning and transforming.
+ * @note All functions in this class should be static.
+ */
+class HTMLPurifier_Encoder
+{
+
+    /**
+     * Constructor throws fatal error if you attempt to instantiate class
+     */
+    private function __construct()
+    {
+        trigger_error('Cannot instantiate encoder, call methods statically', E_USER_ERROR);
+    }
+
+    /**
+     * Error-handler that mutes errors, alternative to shut-up operator.
+     */
+    public static function muteErrorHandler()
+    {
+    }
+
+    /**
+     * iconv wrapper which mutes errors, but doesn't work around bugs.
+     * @param string $in Input encoding
+     * @param string $out Output encoding
+     * @param string $text The text to convert
+     * @return string
+     */
+    public static function unsafeIconv($in, $out, $text)
+    {
+        set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler'));
+        $r = iconv($in, $out, $text);
+        restore_error_handler();
+        return $r;
+    }
+
+    /**
+     * iconv wrapper which mutes errors and works around bugs.
+     * @param string $in Input encoding
+     * @param string $out Output encoding
+     * @param string $text The text to convert
+     * @param int $max_chunk_size
+     * @return string
+     */
+    public static function iconv($in, $out, $text, $max_chunk_size = 8000)
+    {
+        $code = self::testIconvTruncateBug();
+        if ($code == self::ICONV_OK) {
+            return self::unsafeIconv($in, $out, $text);
+        } elseif ($code == self::ICONV_TRUNCATES) {
+            // we can only work around this if the input character set
+            // is utf-8
+            if ($in == 'utf-8') {
+                if ($max_chunk_size < 4) {
+                    trigger_error('max_chunk_size is too small', E_USER_WARNING);
+                    return false;
+                }
+                // split into 8000 byte chunks, but be careful to handle
+                // multibyte boundaries properly
+                if (($c = strlen($text)) <= $max_chunk_size) {
+                    return self::unsafeIconv($in, $out, $text);
+                }
+                $r = '';
+                $i = 0;
+                while (true) {
+                    if ($i + $max_chunk_size >= $c) {
+                        $r .= self::unsafeIconv($in, $out, substr($text, $i));
+                        break;
+                    }
+                    // wibble the boundary
+                    if (0x80 != (0xC0 & ord($text[$i + $max_chunk_size]))) {
+                        $chunk_size = $max_chunk_size;
+                    } elseif (0x80 != (0xC0 & ord($text[$i + $max_chunk_size - 1]))) {
+                        $chunk_size = $max_chunk_size - 1;
+                    } elseif (0x80 != (0xC0 & ord($text[$i + $max_chunk_size - 2]))) {
+                        $chunk_size = $max_chunk_size - 2;
+                    } elseif (0x80 != (0xC0 & ord($text[$i + $max_chunk_size - 3]))) {
+                        $chunk_size = $max_chunk_size - 3;
+                    } else {
+                        return false; // rather confusing UTF-8...
+                    }
+                    $chunk = substr($text, $i, $chunk_size); // substr doesn't mind overlong lengths
+                    $r .= self::unsafeIconv($in, $out, $chunk);
+                    $i += $chunk_size;
+                }
+                return $r;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Cleans a UTF-8 string for well-formedness and SGML validity
+     *
+     * It will parse according to UTF-8 and return a valid UTF8 string, with
+     * non-SGML codepoints excluded.
+     *
+     * @param string $str The string to clean
+     * @param bool $force_php
+     * @return string
+     *
+     * @note Just for reference, the non-SGML code points are 0 to 31 and
+     *       127 to 159, inclusive.  However, we allow code points 9, 10
+     *       and 13, which are the tab, line feed and carriage return
+     *       respectively. 128 and above the code points map to multibyte
+     *       UTF-8 representations.
+     *
+     * @note Fallback code adapted from utf8ToUnicode by Henri Sivonen and
+     *       hsivonen at iki.fi at <http://iki.fi/hsivonen/php-utf8/> under the
+     *       LGPL license.  Notes on what changed are inside, but in general,
+     *       the original code transformed UTF-8 text into an array of integer
+     *       Unicode codepoints. Understandably, transforming that back to
+     *       a string would be somewhat expensive, so the function was modded to
+     *       directly operate on the string.  However, this discourages code
+     *       reuse, and the logic enumerated here would be useful for any
+     *       function that needs to be able to understand UTF-8 characters.
+     *       As of right now, only smart lossless character encoding converters
+     *       would need that, and I'm probably not going to implement them.
+     *       Once again, PHP 6 should solve all our problems.
+     */
+    public static function cleanUTF8($str, $force_php = false)
+    {
+        // UTF-8 validity is checked since PHP 4.3.5
+        // This is an optimization: if the string is already valid UTF-8, no
+        // need to do PHP stuff. 99% of the time, this will be the case.
+        // The regexp matches the XML char production, as well as well as excluding
+        // non-SGML codepoints U+007F to U+009F
+        if (preg_match(
+            '/^[\x{9}\x{A}\x{D}\x{20}-\x{7E}\x{A0}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]*$/Du',
+            $str
+        )) {
+            return $str;
+        }
+
+        $mState = 0; // cached expected number of octets after the current octet
+                     // until the beginning of the next UTF8 character sequence
+        $mUcs4  = 0; // cached Unicode character
+        $mBytes = 1; // cached expected number of octets in the current sequence
+
+        // original code involved an $out that was an array of Unicode
+        // codepoints.  Instead of having to convert back into UTF-8, we've
+        // decided to directly append valid UTF-8 characters onto a string
+        // $out once they're done.  $char accumulates raw bytes, while $mUcs4
+        // turns into the Unicode code point, so there's some redundancy.
+
+        $out = '';
+        $char = '';
+
+        $len = strlen($str);
+        for ($i = 0; $i < $len; $i++) {
+            $in = ord($str{$i});
+            $char .= $str[$i]; // append byte to char
+            if (0 == $mState) {
+                // When mState is zero we expect either a US-ASCII character
+                // or a multi-octet sequence.
+                if (0 == (0x80 & ($in))) {
+                    // US-ASCII, pass straight through.
+                    if (($in <= 31 || $in == 127) &&
+                        !($in == 9 || $in == 13 || $in == 10) // save \r\t\n
+                    ) {
+                        // control characters, remove
+                    } else {
+                        $out .= $char;
+                    }
+                    // reset
+                    $char = '';
+                    $mBytes = 1;
+                } elseif (0xC0 == (0xE0 & ($in))) {
+                    // First octet of 2 octet sequence
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x1F) << 6;
+                    $mState = 1;
+                    $mBytes = 2;
+                } elseif (0xE0 == (0xF0 & ($in))) {
+                    // First octet of 3 octet sequence
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x0F) << 12;
+                    $mState = 2;
+                    $mBytes = 3;
+                } elseif (0xF0 == (0xF8 & ($in))) {
+                    // First octet of 4 octet sequence
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x07) << 18;
+                    $mState = 3;
+                    $mBytes = 4;
+                } elseif (0xF8 == (0xFC & ($in))) {
+                    // First octet of 5 octet sequence.
+                    //
+                    // This is illegal because the encoded codepoint must be
+                    // either:
+                    // (a) not the shortest form or
+                    // (b) outside the Unicode range of 0-0x10FFFF.
+                    // Rather than trying to resynchronize, we will carry on
+                    // until the end of the sequence and let the later error
+                    // handling code catch it.
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x03) << 24;
+                    $mState = 4;
+                    $mBytes = 5;
+                } elseif (0xFC == (0xFE & ($in))) {
+                    // First octet of 6 octet sequence, see comments for 5
+                    // octet sequence.
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 1) << 30;
+                    $mState = 5;
+                    $mBytes = 6;
+                } else {
+                    // Current octet is neither in the US-ASCII range nor a
+                    // legal first octet of a multi-octet sequence.
+                    $mState = 0;
+                    $mUcs4  = 0;
+                    $mBytes = 1;
+                    $char = '';
+                }
+            } else {
+                // When mState is non-zero, we expect a continuation of the
+                // multi-octet sequence
+                if (0x80 == (0xC0 & ($in))) {
+                    // Legal continuation.
+                    $shift = ($mState - 1) * 6;
+                    $tmp = $in;
+                    $tmp = ($tmp & 0x0000003F) << $shift;
+                    $mUcs4 |= $tmp;
+
+                    if (0 == --$mState) {
+                        // End of the multi-octet sequence. mUcs4 now contains
+                        // the final Unicode codepoint to be output
+
+                        // Check for illegal sequences and codepoints.
+
+                        // From Unicode 3.1, non-shortest form is illegal
+                        if (((2 == $mBytes) && ($mUcs4 < 0x0080)) ||
+                            ((3 == $mBytes) && ($mUcs4 < 0x0800)) ||
+                            ((4 == $mBytes) && ($mUcs4 < 0x10000)) ||
+                            (4 < $mBytes) ||
+                            // From Unicode 3.2, surrogate characters = illegal
+                            (($mUcs4 & 0xFFFFF800) == 0xD800) ||
+                            // Codepoints outside the Unicode range are illegal
+                            ($mUcs4 > 0x10FFFF)
+                        ) {
+
+                        } elseif (0xFEFF != $mUcs4 && // omit BOM
+                            // check for valid Char unicode codepoints
+                            (
+                                0x9 == $mUcs4 ||
+                                0xA == $mUcs4 ||
+                                0xD == $mUcs4 ||
+                                (0x20 <= $mUcs4 && 0x7E >= $mUcs4) ||
+                                // 7F-9F is not strictly prohibited by XML,
+                                // but it is non-SGML, and thus we don't allow it
+                                (0xA0 <= $mUcs4 && 0xD7FF >= $mUcs4) ||
+                                (0x10000 <= $mUcs4 && 0x10FFFF >= $mUcs4)
+                            )
+                        ) {
+                            $out .= $char;
+                        }
+                        // initialize UTF8 cache (reset)
+                        $mState = 0;
+                        $mUcs4  = 0;
+                        $mBytes = 1;
+                        $char = '';
+                    }
+                } else {
+                    // ((0xC0 & (*in) != 0x80) && (mState != 0))
+                    // Incomplete multi-octet sequence.
+                    // used to result in complete fail, but we'll reset
+                    $mState = 0;
+                    $mUcs4  = 0;
+                    $mBytes = 1;
+                    $char ='';
+                }
+            }
+        }
+        return $out;
+    }
+
+    /**
+     * Translates a Unicode codepoint into its corresponding UTF-8 character.
+     * @note Based on Feyd's function at
+     *       <http://forums.devnetwork.net/viewtopic.php?p=191404#191404>,
+     *       which is in public domain.
+     * @note While we're going to do code point parsing anyway, a good
+     *       optimization would be to refuse to translate code points that
+     *       are non-SGML characters.  However, this could lead to duplication.
+     * @note This is very similar to the unichr function in
+     *       maintenance/generate-entity-file.php (although this is superior,
+     *       due to its sanity checks).
+     */
+
+    // +----------+----------+----------+----------+
+    // | 33222222 | 22221111 | 111111   |          |
+    // | 10987654 | 32109876 | 54321098 | 76543210 | bit
+    // +----------+----------+----------+----------+
+    // |          |          |          | 0xxxxxxx | 1 byte 0x00000000..0x0000007F
+    // |          |          | 110yyyyy | 10xxxxxx | 2 byte 0x00000080..0x000007FF
+    // |          | 1110zzzz | 10yyyyyy | 10xxxxxx | 3 byte 0x00000800..0x0000FFFF
+    // | 11110www | 10wwzzzz | 10yyyyyy | 10xxxxxx | 4 byte 0x00010000..0x0010FFFF
+    // +----------+----------+----------+----------+
+    // | 00000000 | 00011111 | 11111111 | 11111111 | Theoretical upper limit of legal scalars: 2097151 (0x001FFFFF)
+    // | 00000000 | 00010000 | 11111111 | 11111111 | Defined upper limit of legal scalar codes
+    // +----------+----------+----------+----------+
+
+    public static function unichr($code)
+    {
+        if ($code > 1114111 or $code < 0 or
+          ($code >= 55296 and $code <= 57343) ) {
+            // bits are set outside the "valid" range as defined
+            // by UNICODE 4.1.0
+            return '';
+        }
+
+        $x = $y = $z = $w = 0;
+        if ($code < 128) {
+            // regular ASCII character
+            $x = $code;
+        } else {
+            // set up bits for UTF-8
+            $x = ($code & 63) | 128;
+            if ($code < 2048) {
+                $y = (($code & 2047) >> 6) | 192;
+            } else {
+                $y = (($code & 4032) >> 6) | 128;
+                if ($code < 65536) {
+                    $z = (($code >> 12) & 15) | 224;
+                } else {
+                    $z = (($code >> 12) & 63) | 128;
+                    $w = (($code >> 18) & 7)  | 240;
+                }
+            }
+        }
+        // set up the actual character
+        $ret = '';
+        if ($w) {
+            $ret .= chr($w);
+        }
+        if ($z) {
+            $ret .= chr($z);
+        }
+        if ($y) {
+            $ret .= chr($y);
+        }
+        $ret .= chr($x);
+
+        return $ret;
+    }
+
+    /**
+     * @return bool
+     */
+    public static function iconvAvailable()
+    {
+        static $iconv = null;
+        if ($iconv === null) {
+            $iconv = function_exists('iconv') && self::testIconvTruncateBug() != self::ICONV_UNUSABLE;
+        }
+        return $iconv;
+    }
+
+    /**
+     * Convert a string to UTF-8 based on configuration.
+     * @param string $str The string to convert
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public static function convertToUTF8($str, $config, $context)
+    {
+        $encoding = $config->get('Core.Encoding');
+        if ($encoding === 'utf-8') {
+            return $str;
+        }
+        static $iconv = null;
+        if ($iconv === null) {
+            $iconv = self::iconvAvailable();
+        }
+        if ($iconv && !$config->get('Test.ForceNoIconv')) {
+            // unaffected by bugs, since UTF-8 support all characters
+            $str = self::unsafeIconv($encoding, 'utf-8//IGNORE', $str);
+            if ($str === false) {
+                // $encoding is not a valid encoding
+                trigger_error('Invalid encoding ' . $encoding, E_USER_ERROR);
+                return '';
+            }
+            // If the string is bjorked by Shift_JIS or a similar encoding
+            // that doesn't support all of ASCII, convert the naughty
+            // characters to their true byte-wise ASCII/UTF-8 equivalents.
+            $str = strtr($str, self::testEncodingSupportsASCII($encoding));
+            return $str;
+        } elseif ($encoding === 'iso-8859-1') {
+            $str = utf8_encode($str);
+            return $str;
+        }
+        $bug = HTMLPurifier_Encoder::testIconvTruncateBug();
+        if ($bug == self::ICONV_OK) {
+            trigger_error('Encoding not supported, please install iconv', E_USER_ERROR);
+        } else {
+            trigger_error(
+                'You have a buggy version of iconv, see https://bugs.php.net/bug.php?id=48147 ' .
+                'and http://sourceware.org/bugzilla/show_bug.cgi?id=13541',
+                E_USER_ERROR
+            );
+        }
+    }
+
+    /**
+     * Converts a string from UTF-8 based on configuration.
+     * @param string $str The string to convert
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     * @note Currently, this is a lossy conversion, with unexpressable
+     *       characters being omitted.
+     */
+    public static function convertFromUTF8($str, $config, $context)
+    {
+        $encoding = $config->get('Core.Encoding');
+        if ($escape = $config->get('Core.EscapeNonASCIICharacters')) {
+            $str = self::convertToASCIIDumbLossless($str);
+        }
+        if ($encoding === 'utf-8') {
+            return $str;
+        }
+        static $iconv = null;
+        if ($iconv === null) {
+            $iconv = self::iconvAvailable();
+        }
+        if ($iconv && !$config->get('Test.ForceNoIconv')) {
+            // Undo our previous fix in convertToUTF8, otherwise iconv will barf
+            $ascii_fix = self::testEncodingSupportsASCII($encoding);
+            if (!$escape && !empty($ascii_fix)) {
+                $clear_fix = array();
+                foreach ($ascii_fix as $utf8 => $native) {
+                    $clear_fix[$utf8] = '';
+                }
+                $str = strtr($str, $clear_fix);
+            }
+            $str = strtr($str, array_flip($ascii_fix));
+            // Normal stuff
+            $str = self::iconv('utf-8', $encoding . '//IGNORE', $str);
+            return $str;
+        } elseif ($encoding === 'iso-8859-1') {
+            $str = utf8_decode($str);
+            return $str;
+        }
+        trigger_error('Encoding not supported', E_USER_ERROR);
+        // You might be tempted to assume that the ASCII representation
+        // might be OK, however, this is *not* universally true over all
+        // encodings.  So we take the conservative route here, rather
+        // than forcibly turn on %Core.EscapeNonASCIICharacters
+    }
+
+    /**
+     * Lossless (character-wise) conversion of HTML to ASCII
+     * @param string $str UTF-8 string to be converted to ASCII
+     * @return string ASCII encoded string with non-ASCII character entity-ized
+     * @warning Adapted from MediaWiki, claiming fair use: this is a common
+     *       algorithm. If you disagree with this license fudgery,
+     *       implement it yourself.
+     * @note Uses decimal numeric entities since they are best supported.
+     * @note This is a DUMB function: it has no concept of keeping
+     *       character entities that the projected character encoding
+     *       can allow. We could possibly implement a smart version
+     *       but that would require it to also know which Unicode
+     *       codepoints the charset supported (not an easy task).
+     * @note Sort of with cleanUTF8() but it assumes that $str is
+     *       well-formed UTF-8
+     */
+    public static function convertToASCIIDumbLossless($str)
+    {
+        $bytesleft = 0;
+        $result = '';
+        $working = 0;
+        $len = strlen($str);
+        for ($i = 0; $i < $len; $i++) {
+            $bytevalue = ord($str[$i]);
+            if ($bytevalue <= 0x7F) { //0xxx xxxx
+                $result .= chr($bytevalue);
+                $bytesleft = 0;
+            } elseif ($bytevalue <= 0xBF) { //10xx xxxx
+                $working = $working << 6;
+                $working += ($bytevalue & 0x3F);
+                $bytesleft--;
+                if ($bytesleft <= 0) {
+                    $result .= "&#" . $working . ";";
+                }
+            } elseif ($bytevalue <= 0xDF) { //110x xxxx
+                $working = $bytevalue & 0x1F;
+                $bytesleft = 1;
+            } elseif ($bytevalue <= 0xEF) { //1110 xxxx
+                $working = $bytevalue & 0x0F;
+                $bytesleft = 2;
+            } else { //1111 0xxx
+                $working = $bytevalue & 0x07;
+                $bytesleft = 3;
+            }
+        }
+        return $result;
+    }
+
+    /** No bugs detected in iconv. */
+    const ICONV_OK = 0;
+
+    /** Iconv truncates output if converting from UTF-8 to another
+     *  character set with //IGNORE, and a non-encodable character is found */
+    const ICONV_TRUNCATES = 1;
+
+    /** Iconv does not support //IGNORE, making it unusable for
+     *  transcoding purposes */
+    const ICONV_UNUSABLE = 2;
+
+    /**
+     * glibc iconv has a known bug where it doesn't handle the magic
+     * //IGNORE stanza correctly.  In particular, rather than ignore
+     * characters, it will return an EILSEQ after consuming some number
+     * of characters, and expect you to restart iconv as if it were
+     * an E2BIG.  Old versions of PHP did not respect the errno, and
+     * returned the fragment, so as a result you would see iconv
+     * mysteriously truncating output. We can work around this by
+     * manually chopping our input into segments of about 8000
+     * characters, as long as PHP ignores the error code.  If PHP starts
+     * paying attention to the error code, iconv becomes unusable.
+     *
+     * @return int Error code indicating severity of bug.
+     */
+    public static function testIconvTruncateBug()
+    {
+        static $code = null;
+        if ($code === null) {
+            // better not use iconv, otherwise infinite loop!
+            $r = self::unsafeIconv('utf-8', 'ascii//IGNORE', "\xCE\xB1" . str_repeat('a', 9000));
+            if ($r === false) {
+                $code = self::ICONV_UNUSABLE;
+            } elseif (($c = strlen($r)) < 9000) {
+                $code = self::ICONV_TRUNCATES;
+            } elseif ($c > 9000) {
+                trigger_error(
+                    'Your copy of iconv is extremely buggy. Please notify HTML Purifier maintainers: ' .
+                    'include your iconv version as per phpversion()',
+                    E_USER_ERROR
+                );
+            } else {
+                $code = self::ICONV_OK;
+            }
+        }
+        return $code;
+    }
+
+    /**
+     * This expensive function tests whether or not a given character
+     * encoding supports ASCII. 7/8-bit encodings like Shift_JIS will
+     * fail this test, and require special processing. Variable width
+     * encodings shouldn't ever fail.
+     *
+     * @param string $encoding Encoding name to test, as per iconv format
+     * @param bool $bypass Whether or not to bypass the precompiled arrays.
+     * @return Array of UTF-8 characters to their corresponding ASCII,
+     *      which can be used to "undo" any overzealous iconv action.
+     */
+    public static function testEncodingSupportsASCII($encoding, $bypass = false)
+    {
+        // All calls to iconv here are unsafe, proof by case analysis:
+        // If ICONV_OK, no difference.
+        // If ICONV_TRUNCATE, all calls involve one character inputs,
+        // so bug is not triggered.
+        // If ICONV_UNUSABLE, this call is irrelevant
+        static $encodings = array();
+        if (!$bypass) {
+            if (isset($encodings[$encoding])) {
+                return $encodings[$encoding];
+            }
+            $lenc = strtolower($encoding);
+            switch ($lenc) {
+                case 'shift_jis':
+                    return array("\xC2\xA5" => '\\', "\xE2\x80\xBE" => '~');
+                case 'johab':
+                    return array("\xE2\x82\xA9" => '\\');
+            }
+            if (strpos($lenc, 'iso-8859-') === 0) {
+                return array();
+            }
+        }
+        $ret = array();
+        if (self::unsafeIconv('UTF-8', $encoding, 'a') === false) {
+            return false;
+        }
+        for ($i = 0x20; $i <= 0x7E; $i++) { // all printable ASCII chars
+            $c = chr($i); // UTF-8 char
+            $r = self::unsafeIconv('UTF-8', "$encoding//IGNORE", $c); // initial conversion
+            if ($r === '' ||
+                // This line is needed for iconv implementations that do not
+                // omit characters that do not exist in the target character set
+                ($r === $c && self::unsafeIconv($encoding, 'UTF-8//IGNORE', $r) !== $c)
+            ) {
+                // Reverse engineer: what's the UTF-8 equiv of this byte
+                // sequence? This assumes that there's no variable width
+                // encoding that doesn't support ASCII.
+                $ret[self::unsafeIconv($encoding, 'UTF-8//IGNORE', $c)] = $c;
+            }
+        }
+        $encodings[$encoding] = $ret;
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityLookup.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityLookup.php
new file mode 100644
index 0000000..f12ff13
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityLookup.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * Object that provides entity lookup table from entity name to character
+ */
+class HTMLPurifier_EntityLookup
+{
+    /**
+     * Assoc array of entity name to character represented.
+     * @type array
+     */
+    public $table;
+
+    /**
+     * Sets up the entity lookup table from the serialized file contents.
+     * @param bool $file
+     * @note The serialized contents are versioned, but were generated
+     *       using the maintenance script generate_entity_file.php
+     * @warning This is not in constructor to help enforce the Singleton
+     */
+    public function setup($file = false)
+    {
+        if (!$file) {
+            $file = HTMLPURIFIER_PREFIX . '/HTMLPurifier/EntityLookup/entities.ser';
+        }
+        $this->table = unserialize(file_get_contents($file));
+    }
+
+    /**
+     * Retrieves sole instance of the object.
+     * @param bool|HTMLPurifier_EntityLookup $prototype Optional prototype of custom lookup table to overload with.
+     * @return HTMLPurifier_EntityLookup
+     */
+    public static function instance($prototype = false)
+    {
+        // no references, since PHP doesn't copy unless modified
+        static $instance = null;
+        if ($prototype) {
+            $instance = $prototype;
+        } elseif (!$instance) {
+            $instance = new HTMLPurifier_EntityLookup();
+            $instance->setup();
+        }
+        return $instance;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser
new file mode 100644
index 0000000..e8b0812
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser
@@ -0,0 +1 @@
+a:253:{s:4:"fnof";s:2:"ƒ";s:5:"Alpha";s:2:"Α";s:4:"Beta";s:2:"Β";s:5:"Gamma";s:2:"Γ";s:5:"Delta";s:2:"Δ";s:7:"Epsilon";s:2:"Ε";s:4:"Zeta";s:2:"Ζ";s:3:"Eta";s:2:"Η";s:5:"Theta";s:2:"Θ";s:4:"Iota";s:2:"Ι";s:5:"Kappa";s:2:"Κ";s:6:"Lambda";s:2:"Λ";s:2:"Mu";s:2:"Μ";s:2:"Nu";s:2:"Ν";s:2:"Xi";s:2:"Ξ";s:7:"Omicron";s:2:"Ο";s:2:"Pi";s:2:"Π";s:3:"Rho";s:2:"Ρ";s:5:"Sigma";s:2:"Σ";s:3:"Tau";s:2:"Τ";s:7:"Upsilon";s:2:"Υ";s:3:"Phi";s:2:"Φ";s:3:"Chi";s:2:"Χ";s:3:"Psi";s:2:"Ψ";s:5:"Omega";s:2:"Ω";s:5:"a [...]
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityParser.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityParser.php
new file mode 100644
index 0000000..61529dc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/EntityParser.php
@@ -0,0 +1,153 @@
+<?php
+
+// if want to implement error collecting here, we'll need to use some sort
+// of global data (probably trigger_error) because it's impossible to pass
+// $config or $context to the callback functions.
+
+/**
+ * Handles referencing and derefencing character entities
+ */
+class HTMLPurifier_EntityParser
+{
+
+    /**
+     * Reference to entity lookup table.
+     * @type HTMLPurifier_EntityLookup
+     */
+    protected $_entity_lookup;
+
+    /**
+     * Callback regex string for parsing entities.
+     * @type string
+     */
+    protected $_substituteEntitiesRegex =
+        '/&(?:[#]x([a-fA-F0-9]+)|[#]0*(\d+)|([A-Za-z_:][A-Za-z0-9.\-_:]*));?/';
+        //     1. hex             2. dec      3. string (XML style)
+
+    /**
+     * Decimal to parsed string conversion table for special entities.
+     * @type array
+     */
+    protected $_special_dec2str =
+            array(
+                    34 => '"',
+                    38 => '&',
+                    39 => "'",
+                    60 => '<',
+                    62 => '>'
+            );
+
+    /**
+     * Stripped entity names to decimal conversion table for special entities.
+     * @type array
+     */
+    protected $_special_ent2dec =
+            array(
+                    'quot' => 34,
+                    'amp'  => 38,
+                    'lt'   => 60,
+                    'gt'   => 62
+            );
+
+    /**
+     * Substitutes non-special entities with their parsed equivalents. Since
+     * running this whenever you have parsed character is t3h 5uck, we run
+     * it before everything else.
+     *
+     * @param string $string String to have non-special entities parsed.
+     * @return string Parsed string.
+     */
+    public function substituteNonSpecialEntities($string)
+    {
+        // it will try to detect missing semicolons, but don't rely on it
+        return preg_replace_callback(
+            $this->_substituteEntitiesRegex,
+            array($this, 'nonSpecialEntityCallback'),
+            $string
+        );
+    }
+
+    /**
+     * Callback function for substituteNonSpecialEntities() that does the work.
+     *
+     * @param array $matches  PCRE matches array, with 0 the entire match, and
+     *                  either index 1, 2 or 3 set with a hex value, dec value,
+     *                  or string (respectively).
+     * @return string Replacement string.
+     */
+
+    protected function nonSpecialEntityCallback($matches)
+    {
+        // replaces all but big five
+        $entity = $matches[0];
+        $is_num = (@$matches[0][1] === '#');
+        if ($is_num) {
+            $is_hex = (@$entity[2] === 'x');
+            $code = $is_hex ? hexdec($matches[1]) : (int) $matches[2];
+            // abort for special characters
+            if (isset($this->_special_dec2str[$code])) {
+                return $entity;
+            }
+            return HTMLPurifier_Encoder::unichr($code);
+        } else {
+            if (isset($this->_special_ent2dec[$matches[3]])) {
+                return $entity;
+            }
+            if (!$this->_entity_lookup) {
+                $this->_entity_lookup = HTMLPurifier_EntityLookup::instance();
+            }
+            if (isset($this->_entity_lookup->table[$matches[3]])) {
+                return $this->_entity_lookup->table[$matches[3]];
+            } else {
+                return $entity;
+            }
+        }
+    }
+
+    /**
+     * Substitutes only special entities with their parsed equivalents.
+     *
+     * @notice We try to avoid calling this function because otherwise, it
+     * would have to be called a lot (for every parsed section).
+     *
+     * @param string $string String to have non-special entities parsed.
+     * @return string Parsed string.
+     */
+    public function substituteSpecialEntities($string)
+    {
+        return preg_replace_callback(
+            $this->_substituteEntitiesRegex,
+            array($this, 'specialEntityCallback'),
+            $string
+        );
+    }
+
+    /**
+     * Callback function for substituteSpecialEntities() that does the work.
+     *
+     * This callback has same syntax as nonSpecialEntityCallback().
+     *
+     * @param array $matches  PCRE-style matches array, with 0 the entire match, and
+     *                  either index 1, 2 or 3 set with a hex value, dec value,
+     *                  or string (respectively).
+     * @return string Replacement string.
+     */
+    protected function specialEntityCallback($matches)
+    {
+        $entity = $matches[0];
+        $is_num = (@$matches[0][1] === '#');
+        if ($is_num) {
+            $is_hex = (@$entity[2] === 'x');
+            $int = $is_hex ? hexdec($matches[1]) : (int) $matches[2];
+            return isset($this->_special_dec2str[$int]) ?
+                $this->_special_dec2str[$int] :
+                $entity;
+        } else {
+            return isset($this->_special_ent2dec[$matches[3]]) ?
+                $this->_special_ent2dec[$matches[3]] :
+                $entity;
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ErrorCollector.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ErrorCollector.php
new file mode 100644
index 0000000..d47e3f2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ErrorCollector.php
@@ -0,0 +1,244 @@
+<?php
+
+/**
+ * Error collection class that enables HTML Purifier to report HTML
+ * problems back to the user
+ */
+class HTMLPurifier_ErrorCollector
+{
+
+    /**
+     * Identifiers for the returned error array. These are purposely numeric
+     * so list() can be used.
+     */
+    const LINENO   = 0;
+    const SEVERITY = 1;
+    const MESSAGE  = 2;
+    const CHILDREN = 3;
+
+    /**
+     * @type array
+     */
+    protected $errors;
+
+    /**
+     * @type array
+     */
+    protected $_current;
+
+    /**
+     * @type array
+     */
+    protected $_stacks = array(array());
+
+    /**
+     * @type HTMLPurifier_Language
+     */
+    protected $locale;
+
+    /**
+     * @type HTMLPurifier_Generator
+     */
+    protected $generator;
+
+    /**
+     * @type HTMLPurifier_Context
+     */
+    protected $context;
+
+    /**
+     * @type array
+     */
+    protected $lines = array();
+
+    /**
+     * @param HTMLPurifier_Context $context
+     */
+    public function __construct($context)
+    {
+        $this->locale    =& $context->get('Locale');
+        $this->context   = $context;
+        $this->_current  =& $this->_stacks[0];
+        $this->errors    =& $this->_stacks[0];
+    }
+
+    /**
+     * Sends an error message to the collector for later use
+     * @param int $severity Error severity, PHP error style (don't use E_USER_)
+     * @param string $msg Error message text
+     */
+    public function send($severity, $msg)
+    {
+        $args = array();
+        if (func_num_args() > 2) {
+            $args = func_get_args();
+            array_shift($args);
+            unset($args[0]);
+        }
+
+        $token = $this->context->get('CurrentToken', true);
+        $line  = $token ? $token->line : $this->context->get('CurrentLine', true);
+        $col   = $token ? $token->col  : $this->context->get('CurrentCol', true);
+        $attr  = $this->context->get('CurrentAttr', true);
+
+        // perform special substitutions, also add custom parameters
+        $subst = array();
+        if (!is_null($token)) {
+            $args['CurrentToken'] = $token;
+        }
+        if (!is_null($attr)) {
+            $subst['$CurrentAttr.Name'] = $attr;
+            if (isset($token->attr[$attr])) {
+                $subst['$CurrentAttr.Value'] = $token->attr[$attr];
+            }
+        }
+
+        if (empty($args)) {
+            $msg = $this->locale->getMessage($msg);
+        } else {
+            $msg = $this->locale->formatMessage($msg, $args);
+        }
+
+        if (!empty($subst)) {
+            $msg = strtr($msg, $subst);
+        }
+
+        // (numerically indexed)
+        $error = array(
+            self::LINENO   => $line,
+            self::SEVERITY => $severity,
+            self::MESSAGE  => $msg,
+            self::CHILDREN => array()
+        );
+        $this->_current[] = $error;
+
+        // NEW CODE BELOW ...
+        // Top-level errors are either:
+        //  TOKEN type, if $value is set appropriately, or
+        //  "syntax" type, if $value is null
+        $new_struct = new HTMLPurifier_ErrorStruct();
+        $new_struct->type = HTMLPurifier_ErrorStruct::TOKEN;
+        if ($token) {
+            $new_struct->value = clone $token;
+        }
+        if (is_int($line) && is_int($col)) {
+            if (isset($this->lines[$line][$col])) {
+                $struct = $this->lines[$line][$col];
+            } else {
+                $struct = $this->lines[$line][$col] = $new_struct;
+            }
+            // These ksorts may present a performance problem
+            ksort($this->lines[$line], SORT_NUMERIC);
+        } else {
+            if (isset($this->lines[-1])) {
+                $struct = $this->lines[-1];
+            } else {
+                $struct = $this->lines[-1] = $new_struct;
+            }
+        }
+        ksort($this->lines, SORT_NUMERIC);
+
+        // Now, check if we need to operate on a lower structure
+        if (!empty($attr)) {
+            $struct = $struct->getChild(HTMLPurifier_ErrorStruct::ATTR, $attr);
+            if (!$struct->value) {
+                $struct->value = array($attr, 'PUT VALUE HERE');
+            }
+        }
+        if (!empty($cssprop)) {
+            $struct = $struct->getChild(HTMLPurifier_ErrorStruct::CSSPROP, $cssprop);
+            if (!$struct->value) {
+                // if we tokenize CSS this might be a little more difficult to do
+                $struct->value = array($cssprop, 'PUT VALUE HERE');
+            }
+        }
+
+        // Ok, structs are all setup, now time to register the error
+        $struct->addError($severity, $msg);
+    }
+
+    /**
+     * Retrieves raw error data for custom formatter to use
+     */
+    public function getRaw()
+    {
+        return $this->errors;
+    }
+
+    /**
+     * Default HTML formatting implementation for error messages
+     * @param HTMLPurifier_Config $config Configuration, vital for HTML output nature
+     * @param array $errors Errors array to display; used for recursion.
+     * @return string
+     */
+    public function getHTMLFormatted($config, $errors = null)
+    {
+        $ret = array();
+
+        $this->generator = new HTMLPurifier_Generator($config, $this->context);
+        if ($errors === null) {
+            $errors = $this->errors;
+        }
+
+        // 'At line' message needs to be removed
+
+        // generation code for new structure goes here. It needs to be recursive.
+        foreach ($this->lines as $line => $col_array) {
+            if ($line == -1) {
+                continue;
+            }
+            foreach ($col_array as $col => $struct) {
+                $this->_renderStruct($ret, $struct, $line, $col);
+            }
+        }
+        if (isset($this->lines[-1])) {
+            $this->_renderStruct($ret, $this->lines[-1]);
+        }
+
+        if (empty($errors)) {
+            return '<p>' . $this->locale->getMessage('ErrorCollector: No errors') . '</p>';
+        } else {
+            return '<ul><li>' . implode('</li><li>', $ret) . '</li></ul>';
+        }
+
+    }
+
+    private function _renderStruct(&$ret, $struct, $line = null, $col = null)
+    {
+        $stack = array($struct);
+        $context_stack = array(array());
+        while ($current = array_pop($stack)) {
+            $context = array_pop($context_stack);
+            foreach ($current->errors as $error) {
+                list($severity, $msg) = $error;
+                $string = '';
+                $string .= '<div>';
+                // W3C uses an icon to indicate the severity of the error.
+                $error = $this->locale->getErrorName($severity);
+                $string .= "<span class=\"error e$severity\"><strong>$error</strong></span> ";
+                if (!is_null($line) && !is_null($col)) {
+                    $string .= "<em class=\"location\">Line $line, Column $col: </em> ";
+                } else {
+                    $string .= '<em class="location">End of Document: </em> ';
+                }
+                $string .= '<strong class="description">' . $this->generator->escape($msg) . '</strong> ';
+                $string .= '</div>';
+                // Here, have a marker for the character on the column appropriate.
+                // Be sure to clip extremely long lines.
+                //$string .= '<pre>';
+                //$string .= '';
+                //$string .= '</pre>';
+                $ret[] = $string;
+            }
+            foreach ($current->children as $array) {
+                $context[] = $current;
+                $stack = array_merge($stack, array_reverse($array, true));
+                for ($i = count($array); $i > 0; $i--) {
+                    $context_stack[] = $context;
+                }
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ErrorStruct.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ErrorStruct.php
new file mode 100644
index 0000000..cf869d3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/ErrorStruct.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * Records errors for particular segments of an HTML document such as tokens,
+ * attributes or CSS properties. They can contain error structs (which apply
+ * to components of what they represent), but their main purpose is to hold
+ * errors applying to whatever struct is being used.
+ */
+class HTMLPurifier_ErrorStruct
+{
+
+    /**
+     * Possible values for $children first-key. Note that top-level structures
+     * are automatically token-level.
+     */
+    const TOKEN     = 0;
+    const ATTR      = 1;
+    const CSSPROP   = 2;
+
+    /**
+     * Type of this struct.
+     * @type string
+     */
+    public $type;
+
+    /**
+     * Value of the struct we are recording errors for. There are various
+     * values for this:
+     *  - TOKEN: Instance of HTMLPurifier_Token
+     *  - ATTR: array('attr-name', 'value')
+     *  - CSSPROP: array('prop-name', 'value')
+     * @type mixed
+     */
+    public $value;
+
+    /**
+     * Errors registered for this structure.
+     * @type array
+     */
+    public $errors = array();
+
+    /**
+     * Child ErrorStructs that are from this structure. For example, a TOKEN
+     * ErrorStruct would contain ATTR ErrorStructs. This is a multi-dimensional
+     * array in structure: [TYPE]['identifier']
+     * @type array
+     */
+    public $children = array();
+
+    /**
+     * @param string $type
+     * @param string $id
+     * @return mixed
+     */
+    public function getChild($type, $id)
+    {
+        if (!isset($this->children[$type][$id])) {
+            $this->children[$type][$id] = new HTMLPurifier_ErrorStruct();
+            $this->children[$type][$id]->type = $type;
+        }
+        return $this->children[$type][$id];
+    }
+
+    /**
+     * @param int $severity
+     * @param string $message
+     */
+    public function addError($severity, $message)
+    {
+        $this->errors[] = array($severity, $message);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Exception.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Exception.php
new file mode 100644
index 0000000..be85b4c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Exception.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * Global exception class for HTML Purifier; any exceptions we throw
+ * are from here.
+ */
+class HTMLPurifier_Exception extends Exception
+{
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter.php
new file mode 100644
index 0000000..c1f41ee
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * Represents a pre or post processing filter on HTML Purifier's output
+ *
+ * Sometimes, a little ad-hoc fixing of HTML has to be done before
+ * it gets sent through HTML Purifier: you can use filters to acheive
+ * this effect. For instance, YouTube videos can be preserved using
+ * this manner. You could have used a decorator for this task, but
+ * PHP's support for them is not terribly robust, so we're going
+ * to just loop through the filters.
+ *
+ * Filters should be exited first in, last out. If there are three filters,
+ * named 1, 2 and 3, the order of execution should go 1->preFilter,
+ * 2->preFilter, 3->preFilter, purify, 3->postFilter, 2->postFilter,
+ * 1->postFilter.
+ *
+ * @note Methods are not declared abstract as it is perfectly legitimate
+ *       for an implementation not to want anything to happen on a step
+ */
+
+class HTMLPurifier_Filter
+{
+
+    /**
+     * Name of the filter for identification purposes.
+     * @type string
+     */
+    public $name;
+
+    /**
+     * Pre-processor function, handles HTML before HTML Purifier
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public function preFilter($html, $config, $context)
+    {
+        return $html;
+    }
+
+    /**
+     * Post-processor function, handles HTML after HTML Purifier
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public function postFilter($html, $config, $context)
+    {
+        return $html;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php
new file mode 100644
index 0000000..08e62c1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php
@@ -0,0 +1,338 @@
+<?php
+
+// why is this a top level function? Because PHP 5.2.0 doesn't seem to
+// understand how to interpret this filter if it's a static method.
+// It's all really silly, but if we go this route it might be reasonable
+// to coalesce all of these methods into one.
+function htmlpurifier_filter_extractstyleblocks_muteerrorhandler()
+{
+}
+
+/**
+ * This filter extracts <style> blocks from input HTML, cleans them up
+ * using CSSTidy, and then places them in $purifier->context->get('StyleBlocks')
+ * so they can be used elsewhere in the document.
+ *
+ * @note
+ *      See tests/HTMLPurifier/Filter/ExtractStyleBlocksTest.php for
+ *      sample usage.
+ *
+ * @note
+ *      This filter can also be used on stylesheets not included in the
+ *      document--something purists would probably prefer. Just directly
+ *      call HTMLPurifier_Filter_ExtractStyleBlocks->cleanCSS()
+ */
+class HTMLPurifier_Filter_ExtractStyleBlocks extends HTMLPurifier_Filter
+{
+    /**
+     * @type string
+     */
+    public $name = 'ExtractStyleBlocks';
+
+    /**
+     * @type array
+     */
+    private $_styleMatches = array();
+
+    /**
+     * @type csstidy
+     */
+    private $_tidy;
+
+    /**
+     * @type HTMLPurifier_AttrDef_HTML_ID
+     */
+    private $_id_attrdef;
+
+    /**
+     * @type HTMLPurifier_AttrDef_CSS_Ident
+     */
+    private $_class_attrdef;
+
+    /**
+     * @type HTMLPurifier_AttrDef_Enum
+     */
+    private $_enum_attrdef;
+
+    public function __construct()
+    {
+        $this->_tidy = new csstidy();
+        $this->_tidy->set_cfg('lowercase_s', false);
+        $this->_id_attrdef = new HTMLPurifier_AttrDef_HTML_ID(true);
+        $this->_class_attrdef = new HTMLPurifier_AttrDef_CSS_Ident();
+        $this->_enum_attrdef = new HTMLPurifier_AttrDef_Enum(
+            array(
+                'first-child',
+                'link',
+                'visited',
+                'active',
+                'hover',
+                'focus'
+            )
+        );
+    }
+
+    /**
+     * Save the contents of CSS blocks to style matches
+     * @param array $matches preg_replace style $matches array
+     */
+    protected function styleCallback($matches)
+    {
+        $this->_styleMatches[] = $matches[1];
+    }
+
+    /**
+     * Removes inline <style> tags from HTML, saves them for later use
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     * @todo Extend to indicate non-text/css style blocks
+     */
+    public function preFilter($html, $config, $context)
+    {
+        $tidy = $config->get('Filter.ExtractStyleBlocks.TidyImpl');
+        if ($tidy !== null) {
+            $this->_tidy = $tidy;
+        }
+        $html = preg_replace_callback('#<style(?:\s.*)?>(.+)</style>#isU', array($this, 'styleCallback'), $html);
+        $style_blocks = $this->_styleMatches;
+        $this->_styleMatches = array(); // reset
+        $context->register('StyleBlocks', $style_blocks); // $context must not be reused
+        if ($this->_tidy) {
+            foreach ($style_blocks as &$style) {
+                $style = $this->cleanCSS($style, $config, $context);
+            }
+        }
+        return $html;
+    }
+
+    /**
+     * Takes CSS (the stuff found in <style>) and cleans it.
+     * @warning Requires CSSTidy <http://csstidy.sourceforge.net/>
+     * @param string $css CSS styling to clean
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @throws HTMLPurifier_Exception
+     * @return string Cleaned CSS
+     */
+    public function cleanCSS($css, $config, $context)
+    {
+        // prepare scope
+        $scope = $config->get('Filter.ExtractStyleBlocks.Scope');
+        if ($scope !== null) {
+            $scopes = array_map('trim', explode(',', $scope));
+        } else {
+            $scopes = array();
+        }
+        // remove comments from CSS
+        $css = trim($css);
+        if (strncmp('<!--', $css, 4) === 0) {
+            $css = substr($css, 4);
+        }
+        if (strlen($css) > 3 && substr($css, -3) == '-->') {
+            $css = substr($css, 0, -3);
+        }
+        $css = trim($css);
+        set_error_handler('htmlpurifier_filter_extractstyleblocks_muteerrorhandler');
+        $this->_tidy->parse($css);
+        restore_error_handler();
+        $css_definition = $config->getDefinition('CSS');
+        $html_definition = $config->getDefinition('HTML');
+        $new_css = array();
+        foreach ($this->_tidy->css as $k => $decls) {
+            // $decls are all CSS declarations inside an @ selector
+            $new_decls = array();
+            foreach ($decls as $selector => $style) {
+                $selector = trim($selector);
+                if ($selector === '') {
+                    continue;
+                } // should not happen
+                // Parse the selector
+                // Here is the relevant part of the CSS grammar:
+                //
+                // ruleset
+                //   : selector [ ',' S* selector ]* '{' ...
+                // selector
+                //   : simple_selector [ combinator selector | S+ [ combinator? selector ]? ]?
+                // combinator
+                //   : '+' S*
+                //   : '>' S*
+                // simple_selector
+                //   : element_name [ HASH | class | attrib | pseudo ]*
+                //   | [ HASH | class | attrib | pseudo ]+
+                // element_name
+                //   : IDENT | '*'
+                //   ;
+                // class
+                //   : '.' IDENT
+                //   ;
+                // attrib
+                //   : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S*
+                //     [ IDENT | STRING ] S* ]? ']'
+                //   ;
+                // pseudo
+                //   : ':' [ IDENT | FUNCTION S* [IDENT S*]? ')' ]
+                //   ;
+                //
+                // For reference, here are the relevant tokens:
+                //
+                // HASH         #{name}
+                // IDENT        {ident}
+                // INCLUDES     ==
+                // DASHMATCH    |=
+                // STRING       {string}
+                // FUNCTION     {ident}\(
+                //
+                // And the lexical scanner tokens
+                //
+                // name         {nmchar}+
+                // nmchar       [_a-z0-9-]|{nonascii}|{escape}
+                // nonascii     [\240-\377]
+                // escape       {unicode}|\\[^\r\n\f0-9a-f]
+                // unicode      \\{h}}{1,6}(\r\n|[ \t\r\n\f])?
+                // ident        -?{nmstart}{nmchar*}
+                // nmstart      [_a-z]|{nonascii}|{escape}
+                // string       {string1}|{string2}
+                // string1      \"([^\n\r\f\\"]|\\{nl}|{escape})*\"
+                // string2      \'([^\n\r\f\\"]|\\{nl}|{escape})*\'
+                //
+                // We'll implement a subset (in order to reduce attack
+                // surface); in particular:
+                //
+                //      - No Unicode support
+                //      - No escapes support
+                //      - No string support (by proxy no attrib support)
+                //      - element_name is matched against allowed
+                //        elements (some people might find this
+                //        annoying...)
+                //      - Pseudo-elements one of :first-child, :link,
+                //        :visited, :active, :hover, :focus
+
+                // handle ruleset
+                $selectors = array_map('trim', explode(',', $selector));
+                $new_selectors = array();
+                foreach ($selectors as $sel) {
+                    // split on +, > and spaces
+                    $basic_selectors = preg_split('/\s*([+> ])\s*/', $sel, -1, PREG_SPLIT_DELIM_CAPTURE);
+                    // even indices are chunks, odd indices are
+                    // delimiters
+                    $nsel = null;
+                    $delim = null; // guaranteed to be non-null after
+                    // two loop iterations
+                    for ($i = 0, $c = count($basic_selectors); $i < $c; $i++) {
+                        $x = $basic_selectors[$i];
+                        if ($i % 2) {
+                            // delimiter
+                            if ($x === ' ') {
+                                $delim = ' ';
+                            } else {
+                                $delim = ' ' . $x . ' ';
+                            }
+                        } else {
+                            // simple selector
+                            $components = preg_split('/([#.:])/', $x, -1, PREG_SPLIT_DELIM_CAPTURE);
+                            $sdelim = null;
+                            $nx = null;
+                            for ($j = 0, $cc = count($components); $j < $cc; $j++) {
+                                $y = $components[$j];
+                                if ($j === 0) {
+                                    if ($y === '*' || isset($html_definition->info[$y = strtolower($y)])) {
+                                        $nx = $y;
+                                    } else {
+                                        // $nx stays null; this matters
+                                        // if we don't manage to find
+                                        // any valid selector content,
+                                        // in which case we ignore the
+                                        // outer $delim
+                                    }
+                                } elseif ($j % 2) {
+                                    // set delimiter
+                                    $sdelim = $y;
+                                } else {
+                                    $attrdef = null;
+                                    if ($sdelim === '#') {
+                                        $attrdef = $this->_id_attrdef;
+                                    } elseif ($sdelim === '.') {
+                                        $attrdef = $this->_class_attrdef;
+                                    } elseif ($sdelim === ':') {
+                                        $attrdef = $this->_enum_attrdef;
+                                    } else {
+                                        throw new HTMLPurifier_Exception('broken invariant sdelim and preg_split');
+                                    }
+                                    $r = $attrdef->validate($y, $config, $context);
+                                    if ($r !== false) {
+                                        if ($r !== true) {
+                                            $y = $r;
+                                        }
+                                        if ($nx === null) {
+                                            $nx = '';
+                                        }
+                                        $nx .= $sdelim . $y;
+                                    }
+                                }
+                            }
+                            if ($nx !== null) {
+                                if ($nsel === null) {
+                                    $nsel = $nx;
+                                } else {
+                                    $nsel .= $delim . $nx;
+                                }
+                            } else {
+                                // delimiters to the left of invalid
+                                // basic selector ignored
+                            }
+                        }
+                    }
+                    if ($nsel !== null) {
+                        if (!empty($scopes)) {
+                            foreach ($scopes as $s) {
+                                $new_selectors[] = "$s $nsel";
+                            }
+                        } else {
+                            $new_selectors[] = $nsel;
+                        }
+                    }
+                }
+                if (empty($new_selectors)) {
+                    continue;
+                }
+                $selector = implode(', ', $new_selectors);
+                foreach ($style as $name => $value) {
+                    if (!isset($css_definition->info[$name])) {
+                        unset($style[$name]);
+                        continue;
+                    }
+                    $def = $css_definition->info[$name];
+                    $ret = $def->validate($value, $config, $context);
+                    if ($ret === false) {
+                        unset($style[$name]);
+                    } else {
+                        $style[$name] = $ret;
+                    }
+                }
+                $new_decls[$selector] = $style;
+            }
+            $new_css[$k] = $new_decls;
+        }
+        // remove stuff that shouldn't be used, could be reenabled
+        // after security risks are analyzed
+        $this->_tidy->css = $new_css;
+        $this->_tidy->import = array();
+        $this->_tidy->charset = null;
+        $this->_tidy->namespace = null;
+        $css = $this->_tidy->print->plain();
+        // we are going to escape any special characters <>& to ensure
+        // that no funny business occurs (i.e. </style> in a font-family prop).
+        if ($config->get('Filter.ExtractStyleBlocks.Escaping')) {
+            $css = str_replace(
+                array('<', '>', '&'),
+                array('\3C ', '\3E ', '\26 '),
+                $css
+            );
+        }
+        return $css;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter/YouTube.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter/YouTube.php
new file mode 100644
index 0000000..411519a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Filter/YouTube.php
@@ -0,0 +1,65 @@
+<?php
+
+class HTMLPurifier_Filter_YouTube extends HTMLPurifier_Filter
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'YouTube';
+
+    /**
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public function preFilter($html, $config, $context)
+    {
+        $pre_regex = '#<object[^>]+>.+?' .
+            'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?</object>#s';
+        $pre_replace = '<span class="youtube-embed">\1</span>';
+        return preg_replace($pre_regex, $pre_replace, $html);
+    }
+
+    /**
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public function postFilter($html, $config, $context)
+    {
+        $post_regex = '#<span class="youtube-embed">((?:v|cp)/[A-Za-z0-9\-_=]+)</span>#';
+        return preg_replace_callback($post_regex, array($this, 'postFilterCallback'), $html);
+    }
+
+    /**
+     * @param $url
+     * @return string
+     */
+    protected function armorUrl($url)
+    {
+        return str_replace('--', '--', $url);
+    }
+
+    /**
+     * @param array $matches
+     * @return string
+     */
+    protected function postFilterCallback($matches)
+    {
+        $url = $this->armorUrl($matches[1]);
+        return '<object width="425" height="350" type="application/x-shockwave-flash" ' .
+        'data="http://www.youtube.com/' . $url . '">' .
+        '<param name="movie" value="http://www.youtube.com/' . $url . '"></param>' .
+        '<!--[if IE]>' .
+        '<embed src="http://www.youtube.com/' . $url . '"' .
+        'type="application/x-shockwave-flash"' .
+        'wmode="transparent" width="425" height="350" />' .
+        '<![endif]-->' .
+        '</object>';
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Generator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Generator.php
new file mode 100644
index 0000000..6fb5687
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Generator.php
@@ -0,0 +1,286 @@
+<?php
+
+/**
+ * Generates HTML from tokens.
+ * @todo Refactor interface so that configuration/context is determined
+ *       upon instantiation, no need for messy generateFromTokens() calls
+ * @todo Make some of the more internal functions protected, and have
+ *       unit tests work around that
+ */
+class HTMLPurifier_Generator
+{
+
+    /**
+     * Whether or not generator should produce XML output.
+     * @type bool
+     */
+    private $_xhtml = true;
+
+    /**
+     * :HACK: Whether or not generator should comment the insides of <script> tags.
+     * @type bool
+     */
+    private $_scriptFix = false;
+
+    /**
+     * Cache of HTMLDefinition during HTML output to determine whether or
+     * not attributes should be minimized.
+     * @type HTMLPurifier_HTMLDefinition
+     */
+    private $_def;
+
+    /**
+     * Cache of %Output.SortAttr.
+     * @type bool
+     */
+    private $_sortAttr;
+
+    /**
+     * Cache of %Output.FlashCompat.
+     * @type bool
+     */
+    private $_flashCompat;
+
+    /**
+     * Cache of %Output.FixInnerHTML.
+     * @type bool
+     */
+    private $_innerHTMLFix;
+
+    /**
+     * Stack for keeping track of object information when outputting IE
+     * compatibility code.
+     * @type array
+     */
+    private $_flashStack = array();
+
+    /**
+     * Configuration for the generator
+     * @type HTMLPurifier_Config
+     */
+    protected $config;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     */
+    public function __construct($config, $context)
+    {
+        $this->config = $config;
+        $this->_scriptFix = $config->get('Output.CommentScriptContents');
+        $this->_innerHTMLFix = $config->get('Output.FixInnerHTML');
+        $this->_sortAttr = $config->get('Output.SortAttr');
+        $this->_flashCompat = $config->get('Output.FlashCompat');
+        $this->_def = $config->getHTMLDefinition();
+        $this->_xhtml = $this->_def->doctype->xml;
+    }
+
+    /**
+     * Generates HTML from an array of tokens.
+     * @param HTMLPurifier_Token[] $tokens Array of HTMLPurifier_Token
+     * @return string Generated HTML
+     */
+    public function generateFromTokens($tokens)
+    {
+        if (!$tokens) {
+            return '';
+        }
+
+        // Basic algorithm
+        $html = '';
+        for ($i = 0, $size = count($tokens); $i < $size; $i++) {
+            if ($this->_scriptFix && $tokens[$i]->name === 'script'
+                && $i + 2 < $size && $tokens[$i+2] instanceof HTMLPurifier_Token_End) {
+                // script special case
+                // the contents of the script block must be ONE token
+                // for this to work.
+                $html .= $this->generateFromToken($tokens[$i++]);
+                $html .= $this->generateScriptFromToken($tokens[$i++]);
+            }
+            $html .= $this->generateFromToken($tokens[$i]);
+        }
+
+        // Tidy cleanup
+        if (extension_loaded('tidy') && $this->config->get('Output.TidyFormat')) {
+            $tidy = new Tidy;
+            $tidy->parseString(
+                $html,
+                array(
+                   'indent'=> true,
+                   'output-xhtml' => $this->_xhtml,
+                   'show-body-only' => true,
+                   'indent-spaces' => 2,
+                   'wrap' => 68,
+                ),
+                'utf8'
+            );
+            $tidy->cleanRepair();
+            $html = (string) $tidy; // explicit cast necessary
+        }
+
+        // Normalize newlines to system defined value
+        if ($this->config->get('Core.NormalizeNewlines')) {
+            $nl = $this->config->get('Output.Newline');
+            if ($nl === null) {
+                $nl = PHP_EOL;
+            }
+            if ($nl !== "\n") {
+                $html = str_replace("\n", $nl, $html);
+            }
+        }
+        return $html;
+    }
+
+    /**
+     * Generates HTML from a single token.
+     * @param HTMLPurifier_Token $token HTMLPurifier_Token object.
+     * @return string Generated HTML
+     */
+    public function generateFromToken($token)
+    {
+        if (!$token instanceof HTMLPurifier_Token) {
+            trigger_error('Cannot generate HTML from non-HTMLPurifier_Token object', E_USER_WARNING);
+            return '';
+
+        } elseif ($token instanceof HTMLPurifier_Token_Start) {
+            $attr = $this->generateAttributes($token->attr, $token->name);
+            if ($this->_flashCompat) {
+                if ($token->name == "object") {
+                    $flash = new stdclass();
+                    $flash->attr = $token->attr;
+                    $flash->param = array();
+                    $this->_flashStack[] = $flash;
+                }
+            }
+            return '<' . $token->name . ($attr ? ' ' : '') . $attr . '>';
+
+        } elseif ($token instanceof HTMLPurifier_Token_End) {
+            $_extra = '';
+            if ($this->_flashCompat) {
+                if ($token->name == "object" && !empty($this->_flashStack)) {
+                    // doesn't do anything for now
+                }
+            }
+            return $_extra . '</' . $token->name . '>';
+
+        } elseif ($token instanceof HTMLPurifier_Token_Empty) {
+            if ($this->_flashCompat && $token->name == "param" && !empty($this->_flashStack)) {
+                $this->_flashStack[count($this->_flashStack)-1]->param[$token->attr['name']] = $token->attr['value'];
+            }
+            $attr = $this->generateAttributes($token->attr, $token->name);
+             return '<' . $token->name . ($attr ? ' ' : '') . $attr .
+                ( $this->_xhtml ? ' /': '' ) // <br /> v. <br>
+                . '>';
+
+        } elseif ($token instanceof HTMLPurifier_Token_Text) {
+            return $this->escape($token->data, ENT_NOQUOTES);
+
+        } elseif ($token instanceof HTMLPurifier_Token_Comment) {
+            return '<!--' . $token->data . '-->';
+        } else {
+            return '';
+
+        }
+    }
+
+    /**
+     * Special case processor for the contents of script tags
+     * @param HTMLPurifier_Token $token HTMLPurifier_Token object.
+     * @return string
+     * @warning This runs into problems if there's already a literal
+     *          --> somewhere inside the script contents.
+     */
+    public function generateScriptFromToken($token)
+    {
+        if (!$token instanceof HTMLPurifier_Token_Text) {
+            return $this->generateFromToken($token);
+        }
+        // Thanks <http://lachy.id.au/log/2005/05/script-comments>
+        $data = preg_replace('#//\s*$#', '', $token->data);
+        return '<!--//--><![CDATA[//><!--' . "\n" . trim($data) . "\n" . '//--><!]]>';
+    }
+
+    /**
+     * Generates attribute declarations from attribute array.
+     * @note This does not include the leading or trailing space.
+     * @param array $assoc_array_of_attributes Attribute array
+     * @param string $element Name of element attributes are for, used to check
+     *        attribute minimization.
+     * @return string Generated HTML fragment for insertion.
+     */
+    public function generateAttributes($assoc_array_of_attributes, $element = '')
+    {
+        $html = '';
+        if ($this->_sortAttr) {
+            ksort($assoc_array_of_attributes);
+        }
+        foreach ($assoc_array_of_attributes as $key => $value) {
+            if (!$this->_xhtml) {
+                // Remove namespaced attributes
+                if (strpos($key, ':') !== false) {
+                    continue;
+                }
+                // Check if we should minimize the attribute: val="val" -> val
+                if ($element && !empty($this->_def->info[$element]->attr[$key]->minimized)) {
+                    $html .= $key . ' ';
+                    continue;
+                }
+            }
+            // Workaround for Internet Explorer innerHTML bug.
+            // Essentially, Internet Explorer, when calculating
+            // innerHTML, omits quotes if there are no instances of
+            // angled brackets, quotes or spaces.  However, when parsing
+            // HTML (for example, when you assign to innerHTML), it
+            // treats backticks as quotes.  Thus,
+            //      <img alt="``" />
+            // becomes
+            //      <img alt=`` />
+            // becomes
+            //      <img alt='' />
+            // Fortunately, all we need to do is trigger an appropriate
+            // quoting style, which we do by adding an extra space.
+            // This also is consistent with the W3C spec, which states
+            // that user agents may ignore leading or trailing
+            // whitespace (in fact, most don't, at least for attributes
+            // like alt, but an extra space at the end is barely
+            // noticeable).  Still, we have a configuration knob for
+            // this, since this transformation is not necesary if you
+            // don't process user input with innerHTML or you don't plan
+            // on supporting Internet Explorer.
+            if ($this->_innerHTMLFix) {
+                if (strpos($value, '`') !== false) {
+                    // check if correct quoting style would not already be
+                    // triggered
+                    if (strcspn($value, '"\' <>') === strlen($value)) {
+                        // protect!
+                        $value .= ' ';
+                    }
+                }
+            }
+            $html .= $key.'="'.$this->escape($value).'" ';
+        }
+        return rtrim($html);
+    }
+
+    /**
+     * Escapes raw text data.
+     * @todo This really ought to be protected, but until we have a facility
+     *       for properly generating HTML here w/o using tokens, it stays
+     *       public.
+     * @param string $string String data to escape for HTML.
+     * @param int $quote Quoting style, like htmlspecialchars. ENT_NOQUOTES is
+     *               permissible for non-attribute output.
+     * @return string escaped data.
+     */
+    public function escape($string, $quote = null)
+    {
+        // Workaround for APC bug on Mac Leopard reported by sidepodcast
+        // http://htmlpurifier.org/phorum/read.php?3,4823,4846
+        if ($quote === null) {
+            $quote = ENT_COMPAT;
+        }
+        return htmlspecialchars($string, $quote, 'UTF-8');
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLDefinition.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLDefinition.php
new file mode 100644
index 0000000..9b7b334
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLDefinition.php
@@ -0,0 +1,493 @@
+<?php
+
+/**
+ * Definition of the purified HTML that describes allowed children,
+ * attributes, and many other things.
+ *
+ * Conventions:
+ *
+ * All member variables that are prefixed with info
+ * (including the main $info array) are used by HTML Purifier internals
+ * and should not be directly edited when customizing the HTMLDefinition.
+ * They can usually be set via configuration directives or custom
+ * modules.
+ *
+ * On the other hand, member variables without the info prefix are used
+ * internally by the HTMLDefinition and MUST NOT be used by other HTML
+ * Purifier internals. Many of them, however, are public, and may be
+ * edited by userspace code to tweak the behavior of HTMLDefinition.
+ *
+ * @note This class is inspected by Printer_HTMLDefinition; please
+ *       update that class if things here change.
+ *
+ * @warning Directives that change this object's structure must be in
+ *          the HTML or Attr namespace!
+ */
+class HTMLPurifier_HTMLDefinition extends HTMLPurifier_Definition
+{
+
+    // FULLY-PUBLIC VARIABLES ---------------------------------------------
+
+    /**
+     * Associative array of element names to HTMLPurifier_ElementDef.
+     * @type HTMLPurifier_ElementDef[]
+     */
+    public $info = array();
+
+    /**
+     * Associative array of global attribute name to attribute definition.
+     * @type array
+     */
+    public $info_global_attr = array();
+
+    /**
+     * String name of parent element HTML will be going into.
+     * @type string
+     */
+    public $info_parent = 'div';
+
+    /**
+     * Definition for parent element, allows parent element to be a
+     * tag that's not allowed inside the HTML fragment.
+     * @type HTMLPurifier_ElementDef
+     */
+    public $info_parent_def;
+
+    /**
+     * String name of element used to wrap inline elements in block context.
+     * @type string
+     * @note This is rarely used except for BLOCKQUOTEs in strict mode
+     */
+    public $info_block_wrapper = 'p';
+
+    /**
+     * Associative array of deprecated tag name to HTMLPurifier_TagTransform.
+     * @type array
+     */
+    public $info_tag_transform = array();
+
+    /**
+     * Indexed list of HTMLPurifier_AttrTransform to be performed before validation.
+     * @type HTMLPurifier_AttrTransform[]
+     */
+    public $info_attr_transform_pre = array();
+
+    /**
+     * Indexed list of HTMLPurifier_AttrTransform to be performed after validation.
+     * @type HTMLPurifier_AttrTransform[]
+     */
+    public $info_attr_transform_post = array();
+
+    /**
+     * Nested lookup array of content set name (Block, Inline) to
+     * element name to whether or not it belongs in that content set.
+     * @type array
+     */
+    public $info_content_sets = array();
+
+    /**
+     * Indexed list of HTMLPurifier_Injector to be used.
+     * @type HTMLPurifier_Injector[]
+     */
+    public $info_injector = array();
+
+    /**
+     * Doctype object
+     * @type HTMLPurifier_Doctype
+     */
+    public $doctype;
+
+
+
+    // RAW CUSTOMIZATION STUFF --------------------------------------------
+
+    /**
+     * Adds a custom attribute to a pre-existing element
+     * @note This is strictly convenience, and does not have a corresponding
+     *       method in HTMLPurifier_HTMLModule
+     * @param string $element_name Element name to add attribute to
+     * @param string $attr_name Name of attribute
+     * @param mixed $def Attribute definition, can be string or object, see
+     *             HTMLPurifier_AttrTypes for details
+     */
+    public function addAttribute($element_name, $attr_name, $def)
+    {
+        $module = $this->getAnonymousModule();
+        if (!isset($module->info[$element_name])) {
+            $element = $module->addBlankElement($element_name);
+        } else {
+            $element = $module->info[$element_name];
+        }
+        $element->attr[$attr_name] = $def;
+    }
+
+    /**
+     * Adds a custom element to your HTML definition
+     * @see HTMLPurifier_HTMLModule::addElement() for detailed
+     *       parameter and return value descriptions.
+     */
+    public function addElement($element_name, $type, $contents, $attr_collections, $attributes = array())
+    {
+        $module = $this->getAnonymousModule();
+        // assume that if the user is calling this, the element
+        // is safe. This may not be a good idea
+        $element = $module->addElement($element_name, $type, $contents, $attr_collections, $attributes);
+        return $element;
+    }
+
+    /**
+     * Adds a blank element to your HTML definition, for overriding
+     * existing behavior
+     * @param string $element_name
+     * @return HTMLPurifier_ElementDef
+     * @see HTMLPurifier_HTMLModule::addBlankElement() for detailed
+     *       parameter and return value descriptions.
+     */
+    public function addBlankElement($element_name)
+    {
+        $module  = $this->getAnonymousModule();
+        $element = $module->addBlankElement($element_name);
+        return $element;
+    }
+
+    /**
+     * Retrieves a reference to the anonymous module, so you can
+     * bust out advanced features without having to make your own
+     * module.
+     * @return HTMLPurifier_HTMLModule
+     */
+    public function getAnonymousModule()
+    {
+        if (!$this->_anonModule) {
+            $this->_anonModule = new HTMLPurifier_HTMLModule();
+            $this->_anonModule->name = 'Anonymous';
+        }
+        return $this->_anonModule;
+    }
+
+    private $_anonModule = null;
+
+    // PUBLIC BUT INTERNAL VARIABLES --------------------------------------
+
+    /**
+     * @type string
+     */
+    public $type = 'HTML';
+
+    /**
+     * @type HTMLPurifier_HTMLModuleManager
+     */
+    public $manager;
+
+    /**
+     * Performs low-cost, preliminary initialization.
+     */
+    public function __construct()
+    {
+        $this->manager = new HTMLPurifier_HTMLModuleManager();
+    }
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    protected function doSetup($config)
+    {
+        $this->processModules($config);
+        $this->setupConfigStuff($config);
+        unset($this->manager);
+
+        // cleanup some of the element definitions
+        foreach ($this->info as $k => $v) {
+            unset($this->info[$k]->content_model);
+            unset($this->info[$k]->content_model_type);
+        }
+    }
+
+    /**
+     * Extract out the information from the manager
+     * @param HTMLPurifier_Config $config
+     */
+    protected function processModules($config)
+    {
+        if ($this->_anonModule) {
+            // for user specific changes
+            // this is late-loaded so we don't have to deal with PHP4
+            // reference wonky-ness
+            $this->manager->addModule($this->_anonModule);
+            unset($this->_anonModule);
+        }
+
+        $this->manager->setup($config);
+        $this->doctype = $this->manager->doctype;
+
+        foreach ($this->manager->modules as $module) {
+            foreach ($module->info_tag_transform as $k => $v) {
+                if ($v === false) {
+                    unset($this->info_tag_transform[$k]);
+                } else {
+                    $this->info_tag_transform[$k] = $v;
+                }
+            }
+            foreach ($module->info_attr_transform_pre as $k => $v) {
+                if ($v === false) {
+                    unset($this->info_attr_transform_pre[$k]);
+                } else {
+                    $this->info_attr_transform_pre[$k] = $v;
+                }
+            }
+            foreach ($module->info_attr_transform_post as $k => $v) {
+                if ($v === false) {
+                    unset($this->info_attr_transform_post[$k]);
+                } else {
+                    $this->info_attr_transform_post[$k] = $v;
+                }
+            }
+            foreach ($module->info_injector as $k => $v) {
+                if ($v === false) {
+                    unset($this->info_injector[$k]);
+                } else {
+                    $this->info_injector[$k] = $v;
+                }
+            }
+        }
+        $this->info = $this->manager->getElements();
+        $this->info_content_sets = $this->manager->contentSets->lookup;
+    }
+
+    /**
+     * Sets up stuff based on config. We need a better way of doing this.
+     * @param HTMLPurifier_Config $config
+     */
+    protected function setupConfigStuff($config)
+    {
+        $block_wrapper = $config->get('HTML.BlockWrapper');
+        if (isset($this->info_content_sets['Block'][$block_wrapper])) {
+            $this->info_block_wrapper = $block_wrapper;
+        } else {
+            trigger_error(
+                'Cannot use non-block element as block wrapper',
+                E_USER_ERROR
+            );
+        }
+
+        $parent = $config->get('HTML.Parent');
+        $def = $this->manager->getElement($parent, true);
+        if ($def) {
+            $this->info_parent = $parent;
+            $this->info_parent_def = $def;
+        } else {
+            trigger_error(
+                'Cannot use unrecognized element as parent',
+                E_USER_ERROR
+            );
+            $this->info_parent_def = $this->manager->getElement($this->info_parent, true);
+        }
+
+        // support template text
+        $support = "(for information on implementing this, see the support forums) ";
+
+        // setup allowed elements -----------------------------------------
+
+        $allowed_elements = $config->get('HTML.AllowedElements');
+        $allowed_attributes = $config->get('HTML.AllowedAttributes'); // retrieve early
+
+        if (!is_array($allowed_elements) && !is_array($allowed_attributes)) {
+            $allowed = $config->get('HTML.Allowed');
+            if (is_string($allowed)) {
+                list($allowed_elements, $allowed_attributes) = $this->parseTinyMCEAllowedList($allowed);
+            }
+        }
+
+        if (is_array($allowed_elements)) {
+            foreach ($this->info as $name => $d) {
+                if (!isset($allowed_elements[$name])) {
+                    unset($this->info[$name]);
+                }
+                unset($allowed_elements[$name]);
+            }
+            // emit errors
+            foreach ($allowed_elements as $element => $d) {
+                $element = htmlspecialchars($element); // PHP doesn't escape errors, be careful!
+                trigger_error("Element '$element' is not supported $support", E_USER_WARNING);
+            }
+        }
+
+        // setup allowed attributes ---------------------------------------
+
+        $allowed_attributes_mutable = $allowed_attributes; // by copy!
+        if (is_array($allowed_attributes)) {
+            // This actually doesn't do anything, since we went away from
+            // global attributes. It's possible that userland code uses
+            // it, but HTMLModuleManager doesn't!
+            foreach ($this->info_global_attr as $attr => $x) {
+                $keys = array($attr, "*@$attr", "*.$attr");
+                $delete = true;
+                foreach ($keys as $key) {
+                    if ($delete && isset($allowed_attributes[$key])) {
+                        $delete = false;
+                    }
+                    if (isset($allowed_attributes_mutable[$key])) {
+                        unset($allowed_attributes_mutable[$key]);
+                    }
+                }
+                if ($delete) {
+                    unset($this->info_global_attr[$attr]);
+                }
+            }
+
+            foreach ($this->info as $tag => $info) {
+                foreach ($info->attr as $attr => $x) {
+                    $keys = array("$tag@$attr", $attr, "*@$attr", "$tag.$attr", "*.$attr");
+                    $delete = true;
+                    foreach ($keys as $key) {
+                        if ($delete && isset($allowed_attributes[$key])) {
+                            $delete = false;
+                        }
+                        if (isset($allowed_attributes_mutable[$key])) {
+                            unset($allowed_attributes_mutable[$key]);
+                        }
+                    }
+                    if ($delete) {
+                        if ($this->info[$tag]->attr[$attr]->required) {
+                            trigger_error(
+                                "Required attribute '$attr' in element '$tag' " .
+                                "was not allowed, which means '$tag' will not be allowed either",
+                                E_USER_WARNING
+                            );
+                        }
+                        unset($this->info[$tag]->attr[$attr]);
+                    }
+                }
+            }
+            // emit errors
+            foreach ($allowed_attributes_mutable as $elattr => $d) {
+                $bits = preg_split('/[.@]/', $elattr, 2);
+                $c = count($bits);
+                switch ($c) {
+                    case 2:
+                        if ($bits[0] !== '*') {
+                            $element = htmlspecialchars($bits[0]);
+                            $attribute = htmlspecialchars($bits[1]);
+                            if (!isset($this->info[$element])) {
+                                trigger_error(
+                                    "Cannot allow attribute '$attribute' if element " .
+                                    "'$element' is not allowed/supported $support"
+                                );
+                            } else {
+                                trigger_error(
+                                    "Attribute '$attribute' in element '$element' not supported $support",
+                                    E_USER_WARNING
+                                );
+                            }
+                            break;
+                        }
+                        // otherwise fall through
+                    case 1:
+                        $attribute = htmlspecialchars($bits[0]);
+                        trigger_error(
+                            "Global attribute '$attribute' is not ".
+                            "supported in any elements $support",
+                            E_USER_WARNING
+                        );
+                        break;
+                }
+            }
+        }
+
+        // setup forbidden elements ---------------------------------------
+
+        $forbidden_elements   = $config->get('HTML.ForbiddenElements');
+        $forbidden_attributes = $config->get('HTML.ForbiddenAttributes');
+
+        foreach ($this->info as $tag => $info) {
+            if (isset($forbidden_elements[$tag])) {
+                unset($this->info[$tag]);
+                continue;
+            }
+            foreach ($info->attr as $attr => $x) {
+                if (isset($forbidden_attributes["$tag@$attr"]) ||
+                    isset($forbidden_attributes["*@$attr"]) ||
+                    isset($forbidden_attributes[$attr])
+                ) {
+                    unset($this->info[$tag]->attr[$attr]);
+                    continue;
+                } elseif (isset($forbidden_attributes["$tag.$attr"])) { // this segment might get removed eventually
+                    // $tag.$attr are not user supplied, so no worries!
+                    trigger_error(
+                        "Error with $tag.$attr: tag.attr syntax not supported for " .
+                        "HTML.ForbiddenAttributes; use tag at attr instead",
+                        E_USER_WARNING
+                    );
+                }
+            }
+        }
+        foreach ($forbidden_attributes as $key => $v) {
+            if (strlen($key) < 2) {
+                continue;
+            }
+            if ($key[0] != '*') {
+                continue;
+            }
+            if ($key[1] == '.') {
+                trigger_error(
+                    "Error with $key: *.attr syntax not supported for HTML.ForbiddenAttributes; use attr instead",
+                    E_USER_WARNING
+                );
+            }
+        }
+
+        // setup injectors -----------------------------------------------------
+        foreach ($this->info_injector as $i => $injector) {
+            if ($injector->checkNeeded($config) !== false) {
+                // remove injector that does not have it's required
+                // elements/attributes present, and is thus not needed.
+                unset($this->info_injector[$i]);
+            }
+        }
+    }
+
+    /**
+     * Parses a TinyMCE-flavored Allowed Elements and Attributes list into
+     * separate lists for processing. Format is element[attr1|attr2],element2...
+     * @warning Although it's largely drawn from TinyMCE's implementation,
+     *      it is different, and you'll probably have to modify your lists
+     * @param array $list String list to parse
+     * @return array
+     * @todo Give this its own class, probably static interface
+     */
+    public function parseTinyMCEAllowedList($list)
+    {
+        $list = str_replace(array(' ', "\t"), '', $list);
+
+        $elements = array();
+        $attributes = array();
+
+        $chunks = preg_split('/(,|[\n\r]+)/', $list);
+        foreach ($chunks as $chunk) {
+            if (empty($chunk)) {
+                continue;
+            }
+            // remove TinyMCE element control characters
+            if (!strpos($chunk, '[')) {
+                $element = $chunk;
+                $attr = false;
+            } else {
+                list($element, $attr) = explode('[', $chunk);
+            }
+            if ($element !== '*') {
+                $elements[$element] = true;
+            }
+            if (!$attr) {
+                continue;
+            }
+            $attr = substr($attr, 0, strlen($attr) - 1); // remove trailing ]
+            $attr = explode('|', $attr);
+            foreach ($attr as $key) {
+                $attributes["$element.$key"] = true;
+            }
+        }
+        return array($elements, $attributes);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule.php
new file mode 100644
index 0000000..bb3a923
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule.php
@@ -0,0 +1,284 @@
+<?php
+
+/**
+ * Represents an XHTML 1.1 module, with information on elements, tags
+ * and attributes.
+ * @note Even though this is technically XHTML 1.1, it is also used for
+ *       regular HTML parsing. We are using modulization as a convenient
+ *       way to represent the internals of HTMLDefinition, and our
+ *       implementation is by no means conforming and does not directly
+ *       use the normative DTDs or XML schemas.
+ * @note The public variables in a module should almost directly
+ *       correspond to the variables in HTMLPurifier_HTMLDefinition.
+ *       However, the prefix info carries no special meaning in these
+ *       objects (include it anyway if that's the correspondence though).
+ * @todo Consider making some member functions protected
+ */
+
+class HTMLPurifier_HTMLModule
+{
+
+    // -- Overloadable ----------------------------------------------------
+
+    /**
+     * Short unique string identifier of the module.
+     * @type string
+     */
+    public $name;
+
+    /**
+     * Informally, a list of elements this module changes.
+     * Not used in any significant way.
+     * @type array
+     */
+    public $elements = array();
+
+    /**
+     * Associative array of element names to element definitions.
+     * Some definitions may be incomplete, to be merged in later
+     * with the full definition.
+     * @type array
+     */
+    public $info = array();
+
+    /**
+     * Associative array of content set names to content set additions.
+     * This is commonly used to, say, add an A element to the Inline
+     * content set. This corresponds to an internal variable $content_sets
+     * and NOT info_content_sets member variable of HTMLDefinition.
+     * @type array
+     */
+    public $content_sets = array();
+
+    /**
+     * Associative array of attribute collection names to attribute
+     * collection additions. More rarely used for adding attributes to
+     * the global collections. Example is the StyleAttribute module adding
+     * the style attribute to the Core. Corresponds to HTMLDefinition's
+     * attr_collections->info, since the object's data is only info,
+     * with extra behavior associated with it.
+     * @type array
+     */
+    public $attr_collections = array();
+
+    /**
+     * Associative array of deprecated tag name to HTMLPurifier_TagTransform.
+     * @type array
+     */
+    public $info_tag_transform = array();
+
+    /**
+     * List of HTMLPurifier_AttrTransform to be performed before validation.
+     * @type array
+     */
+    public $info_attr_transform_pre = array();
+
+    /**
+     * List of HTMLPurifier_AttrTransform to be performed after validation.
+     * @type array
+     */
+    public $info_attr_transform_post = array();
+
+    /**
+     * List of HTMLPurifier_Injector to be performed during well-formedness fixing.
+     * An injector will only be invoked if all of it's pre-requisites are met;
+     * if an injector fails setup, there will be no error; it will simply be
+     * silently disabled.
+     * @type array
+     */
+    public $info_injector = array();
+
+    /**
+     * Boolean flag that indicates whether or not getChildDef is implemented.
+     * For optimization reasons: may save a call to a function. Be sure
+     * to set it if you do implement getChildDef(), otherwise it will have
+     * no effect!
+     * @type bool
+     */
+    public $defines_child_def = false;
+
+    /**
+     * Boolean flag whether or not this module is safe. If it is not safe, all
+     * of its members are unsafe. Modules are safe by default (this might be
+     * slightly dangerous, but it doesn't make much sense to force HTML Purifier,
+     * which is based off of safe HTML, to explicitly say, "This is safe," even
+     * though there are modules which are "unsafe")
+     *
+     * @type bool
+     * @note Previously, safety could be applied at an element level granularity.
+     *       We've removed this ability, so in order to add "unsafe" elements
+     *       or attributes, a dedicated module with this property set to false
+     *       must be used.
+     */
+    public $safe = true;
+
+    /**
+     * Retrieves a proper HTMLPurifier_ChildDef subclass based on
+     * content_model and content_model_type member variables of
+     * the HTMLPurifier_ElementDef class. There is a similar function
+     * in HTMLPurifier_HTMLDefinition.
+     * @param HTMLPurifier_ElementDef $def
+     * @return HTMLPurifier_ChildDef subclass
+     */
+    public function getChildDef($def)
+    {
+        return false;
+    }
+
+    // -- Convenience -----------------------------------------------------
+
+    /**
+     * Convenience function that sets up a new element
+     * @param string $element Name of element to add
+     * @param string|bool $type What content set should element be registered to?
+     *              Set as false to skip this step.
+     * @param string $contents Allowed children in form of:
+     *              "$content_model_type: $content_model"
+     * @param array $attr_includes What attribute collections to register to
+     *              element?
+     * @param array $attr What unique attributes does the element define?
+     * @see HTMLPurifier_ElementDef:: for in-depth descriptions of these parameters.
+     * @return HTMLPurifier_ElementDef Created element definition object, so you
+     *         can set advanced parameters
+     */
+    public function addElement($element, $type, $contents, $attr_includes = array(), $attr = array())
+    {
+        $this->elements[] = $element;
+        // parse content_model
+        list($content_model_type, $content_model) = $this->parseContents($contents);
+        // merge in attribute inclusions
+        $this->mergeInAttrIncludes($attr, $attr_includes);
+        // add element to content sets
+        if ($type) {
+            $this->addElementToContentSet($element, $type);
+        }
+        // create element
+        $this->info[$element] = HTMLPurifier_ElementDef::create(
+            $content_model,
+            $content_model_type,
+            $attr
+        );
+        // literal object $contents means direct child manipulation
+        if (!is_string($contents)) {
+            $this->info[$element]->child = $contents;
+        }
+        return $this->info[$element];
+    }
+
+    /**
+     * Convenience function that creates a totally blank, non-standalone
+     * element.
+     * @param string $element Name of element to create
+     * @return HTMLPurifier_ElementDef Created element
+     */
+    public function addBlankElement($element)
+    {
+        if (!isset($this->info[$element])) {
+            $this->elements[] = $element;
+            $this->info[$element] = new HTMLPurifier_ElementDef();
+            $this->info[$element]->standalone = false;
+        } else {
+            trigger_error("Definition for $element already exists in module, cannot redefine");
+        }
+        return $this->info[$element];
+    }
+
+    /**
+     * Convenience function that registers an element to a content set
+     * @param string $element Element to register
+     * @param string $type Name content set (warning: case sensitive, usually upper-case
+     *        first letter)
+     */
+    public function addElementToContentSet($element, $type)
+    {
+        if (!isset($this->content_sets[$type])) {
+            $this->content_sets[$type] = '';
+        } else {
+            $this->content_sets[$type] .= ' | ';
+        }
+        $this->content_sets[$type] .= $element;
+    }
+
+    /**
+     * Convenience function that transforms single-string contents
+     * into separate content model and content model type
+     * @param string $contents Allowed children in form of:
+     *                  "$content_model_type: $content_model"
+     * @return array
+     * @note If contents is an object, an array of two nulls will be
+     *       returned, and the callee needs to take the original $contents
+     *       and use it directly.
+     */
+    public function parseContents($contents)
+    {
+        if (!is_string($contents)) {
+            return array(null, null);
+        } // defer
+        switch ($contents) {
+            // check for shorthand content model forms
+            case 'Empty':
+                return array('empty', '');
+            case 'Inline':
+                return array('optional', 'Inline | #PCDATA');
+            case 'Flow':
+                return array('optional', 'Flow | #PCDATA');
+        }
+        list($content_model_type, $content_model) = explode(':', $contents);
+        $content_model_type = strtolower(trim($content_model_type));
+        $content_model = trim($content_model);
+        return array($content_model_type, $content_model);
+    }
+
+    /**
+     * Convenience function that merges a list of attribute includes into
+     * an attribute array.
+     * @param array $attr Reference to attr array to modify
+     * @param array $attr_includes Array of includes / string include to merge in
+     */
+    public function mergeInAttrIncludes(&$attr, $attr_includes)
+    {
+        if (!is_array($attr_includes)) {
+            if (empty($attr_includes)) {
+                $attr_includes = array();
+            } else {
+                $attr_includes = array($attr_includes);
+            }
+        }
+        $attr[0] = $attr_includes;
+    }
+
+    /**
+     * Convenience function that generates a lookup table with boolean
+     * true as value.
+     * @param string $list List of values to turn into a lookup
+     * @note You can also pass an arbitrary number of arguments in
+     *       place of the regular argument
+     * @return array array equivalent of list
+     */
+    public function makeLookup($list)
+    {
+        if (is_string($list)) {
+            $list = func_get_args();
+        }
+        $ret = array();
+        foreach ($list as $value) {
+            if (is_null($value)) {
+                continue;
+            }
+            $ret[$value] = true;
+        }
+        return $ret;
+    }
+
+    /**
+     * Lazy load construction of the module after determining whether
+     * or not it's needed, and also when a finalized configuration object
+     * is available.
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Bdo.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Bdo.php
new file mode 100644
index 0000000..1e67c79
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Bdo.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * XHTML 1.1 Bi-directional Text Module, defines elements that
+ * declare directionality of content. Text Extension Module.
+ */
+class HTMLPurifier_HTMLModule_Bdo extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Bdo';
+
+    /**
+     * @type array
+     */
+    public $attr_collections = array(
+        'I18N' => array('dir' => false)
+    );
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $bdo = $this->addElement(
+            'bdo',
+            'Inline',
+            'Inline',
+            array('Core', 'Lang'),
+            array(
+                'dir' => 'Enum#ltr,rtl', // required
+                // The Abstract Module specification has the attribute
+                // inclusions wrong for bdo: bdo allows Lang
+            )
+        );
+        $bdo->attr_transform_post[] = new HTMLPurifier_AttrTransform_BdoDir();
+
+        $this->attr_collections['I18N']['dir'] = 'Enum#ltr,rtl';
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php
new file mode 100644
index 0000000..a96ab1b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php
@@ -0,0 +1,31 @@
+<?php
+
+class HTMLPurifier_HTMLModule_CommonAttributes extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'CommonAttributes';
+
+    /**
+     * @type array
+     */
+    public $attr_collections = array(
+        'Core' => array(
+            0 => array('Style'),
+            // 'xml:space' => false,
+            'class' => 'Class',
+            'id' => 'ID',
+            'title' => 'CDATA',
+        ),
+        'Lang' => array(),
+        'I18N' => array(
+            0 => array('Lang'), // proprietary, for xml:lang/lang
+        ),
+        'Common' => array(
+            0 => array('Core', 'I18N')
+        )
+    );
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php
new file mode 100644
index 0000000..a9042a3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * XHTML 1.1 Edit Module, defines editing-related elements. Text Extension
+ * Module.
+ */
+class HTMLPurifier_HTMLModule_Edit extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Edit';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $contents = 'Chameleon: #PCDATA | Inline ! #PCDATA | Flow';
+        $attr = array(
+            'cite' => 'URI',
+            // 'datetime' => 'Datetime', // not implemented
+        );
+        $this->addElement('del', 'Inline', $contents, 'Common', $attr);
+        $this->addElement('ins', 'Inline', $contents, 'Common', $attr);
+    }
+
+    // HTML 4.01 specifies that ins/del must not contain block
+    // elements when used in an inline context, chameleon is
+    // a complicated workaround to acheive this effect
+
+    // Inline context ! Block context (exclamation mark is
+    // separator, see getChildDef for parsing)
+
+    /**
+     * @type bool
+     */
+    public $defines_child_def = true;
+
+    /**
+     * @param HTMLPurifier_ElementDef $def
+     * @return HTMLPurifier_ChildDef_Chameleon
+     */
+    public function getChildDef($def)
+    {
+        if ($def->content_model_type != 'chameleon') {
+            return false;
+        }
+        $value = explode('!', $def->content_model);
+        return new HTMLPurifier_ChildDef_Chameleon($value[0], $value[1]);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Forms.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Forms.php
new file mode 100644
index 0000000..6f7ddbc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Forms.php
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * XHTML 1.1 Forms module, defines all form-related elements found in HTML 4.
+ */
+class HTMLPurifier_HTMLModule_Forms extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Forms';
+
+    /**
+     * @type bool
+     */
+    public $safe = false;
+
+    /**
+     * @type array
+     */
+    public $content_sets = array(
+        'Block' => 'Form',
+        'Inline' => 'Formctrl',
+    );
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $form = $this->addElement(
+            'form',
+            'Form',
+            'Required: Heading | List | Block | fieldset',
+            'Common',
+            array(
+                'accept' => 'ContentTypes',
+                'accept-charset' => 'Charsets',
+                'action*' => 'URI',
+                'method' => 'Enum#get,post',
+                // really ContentType, but these two are the only ones used today
+                'enctype' => 'Enum#application/x-www-form-urlencoded,multipart/form-data',
+            )
+        );
+        $form->excludes = array('form' => true);
+
+        $input = $this->addElement(
+            'input',
+            'Formctrl',
+            'Empty',
+            'Common',
+            array(
+                'accept' => 'ContentTypes',
+                'accesskey' => 'Character',
+                'alt' => 'Text',
+                'checked' => 'Bool#checked',
+                'disabled' => 'Bool#disabled',
+                'maxlength' => 'Number',
+                'name' => 'CDATA',
+                'readonly' => 'Bool#readonly',
+                'size' => 'Number',
+                'src' => 'URI#embedded',
+                'tabindex' => 'Number',
+                'type' => 'Enum#text,password,checkbox,button,radio,submit,reset,file,hidden,image',
+                'value' => 'CDATA',
+            )
+        );
+        $input->attr_transform_post[] = new HTMLPurifier_AttrTransform_Input();
+
+        $this->addElement(
+            'select',
+            'Formctrl',
+            'Required: optgroup | option',
+            'Common',
+            array(
+                'disabled' => 'Bool#disabled',
+                'multiple' => 'Bool#multiple',
+                'name' => 'CDATA',
+                'size' => 'Number',
+                'tabindex' => 'Number',
+            )
+        );
+
+        $this->addElement(
+            'option',
+            false,
+            'Optional: #PCDATA',
+            'Common',
+            array(
+                'disabled' => 'Bool#disabled',
+                'label' => 'Text',
+                'selected' => 'Bool#selected',
+                'value' => 'CDATA',
+            )
+        );
+        // It's illegal for there to be more than one selected, but not
+        // be multiple. Also, no selected means undefined behavior. This might
+        // be difficult to implement; perhaps an injector, or a context variable.
+
+        $textarea = $this->addElement(
+            'textarea',
+            'Formctrl',
+            'Optional: #PCDATA',
+            'Common',
+            array(
+                'accesskey' => 'Character',
+                'cols*' => 'Number',
+                'disabled' => 'Bool#disabled',
+                'name' => 'CDATA',
+                'readonly' => 'Bool#readonly',
+                'rows*' => 'Number',
+                'tabindex' => 'Number',
+            )
+        );
+        $textarea->attr_transform_pre[] = new HTMLPurifier_AttrTransform_Textarea();
+
+        $button = $this->addElement(
+            'button',
+            'Formctrl',
+            'Optional: #PCDATA | Heading | List | Block | Inline',
+            'Common',
+            array(
+                'accesskey' => 'Character',
+                'disabled' => 'Bool#disabled',
+                'name' => 'CDATA',
+                'tabindex' => 'Number',
+                'type' => 'Enum#button,submit,reset',
+                'value' => 'CDATA',
+            )
+        );
+
+        // For exclusions, ideally we'd specify content sets, not literal elements
+        $button->excludes = $this->makeLookup(
+            'form',
+            'fieldset', // Form
+            'input',
+            'select',
+            'textarea',
+            'label',
+            'button', // Formctrl
+            'a', // as per HTML 4.01 spec, this is omitted by modularization
+            'isindex',
+            'iframe' // legacy items
+        );
+
+        // Extra exclusion: img usemap="" is not permitted within this element.
+        // We'll omit this for now, since we don't have any good way of
+        // indicating it yet.
+
+        // This is HIGHLY user-unfriendly; we need a custom child-def for this
+        $this->addElement('fieldset', 'Form', 'Custom: (#WS?,legend,(Flow|#PCDATA)*)', 'Common');
+
+        $label = $this->addElement(
+            'label',
+            'Formctrl',
+            'Optional: #PCDATA | Inline',
+            'Common',
+            array(
+                'accesskey' => 'Character',
+                // 'for' => 'IDREF', // IDREF not implemented, cannot allow
+            )
+        );
+        $label->excludes = array('label' => true);
+
+        $this->addElement(
+            'legend',
+            false,
+            'Optional: #PCDATA | Inline',
+            'Common',
+            array(
+                'accesskey' => 'Character',
+            )
+        );
+
+        $this->addElement(
+            'optgroup',
+            false,
+            'Required: option',
+            'Common',
+            array(
+                'disabled' => 'Bool#disabled',
+                'label*' => 'Text',
+            )
+        );
+        // Don't forget an injector for <isindex>. This one's a little complex
+        // because it maps to multiple elements.
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Hypertext.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Hypertext.php
new file mode 100644
index 0000000..72d7a31
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Hypertext.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * XHTML 1.1 Hypertext Module, defines hypertext links. Core Module.
+ */
+class HTMLPurifier_HTMLModule_Hypertext extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Hypertext';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $a = $this->addElement(
+            'a',
+            'Inline',
+            'Inline',
+            'Common',
+            array(
+                // 'accesskey' => 'Character',
+                // 'charset' => 'Charset',
+                'href' => 'URI',
+                // 'hreflang' => 'LanguageCode',
+                'rel' => new HTMLPurifier_AttrDef_HTML_LinkTypes('rel'),
+                'rev' => new HTMLPurifier_AttrDef_HTML_LinkTypes('rev'),
+                // 'tabindex' => 'Number',
+                // 'type' => 'ContentType',
+            )
+        );
+        $a->formatting = true;
+        $a->excludes = array('a' => true);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Iframe.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Iframe.php
new file mode 100644
index 0000000..f7e7c91
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Iframe.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * XHTML 1.1 Iframe Module provides inline frames.
+ *
+ * @note This module is not considered safe unless an Iframe
+ * whitelisting mechanism is specified.  Currently, the only
+ * such mechanism is %URL.SafeIframeRegexp
+ */
+class HTMLPurifier_HTMLModule_Iframe extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Iframe';
+
+    /**
+     * @type bool
+     */
+    public $safe = false;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        if ($config->get('HTML.SafeIframe')) {
+            $this->safe = true;
+        }
+        $this->addElement(
+            'iframe',
+            'Inline',
+            'Flow',
+            'Common',
+            array(
+                'src' => 'URI#embedded',
+                'width' => 'Length',
+                'height' => 'Length',
+                'name' => 'ID',
+                'scrolling' => 'Enum#yes,no,auto',
+                'frameborder' => 'Enum#0,1',
+                'longdesc' => 'URI',
+                'marginheight' => 'Pixels',
+                'marginwidth' => 'Pixels',
+            )
+        );
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Image.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Image.php
new file mode 100644
index 0000000..0f5fdb3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Image.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * XHTML 1.1 Image Module provides basic image embedding.
+ * @note There is specialized code for removing empty images in
+ *       HTMLPurifier_Strategy_RemoveForeignElements
+ */
+class HTMLPurifier_HTMLModule_Image extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Image';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $max = $config->get('HTML.MaxImgLength');
+        $img = $this->addElement(
+            'img',
+            'Inline',
+            'Empty',
+            'Common',
+            array(
+                'alt*' => 'Text',
+                // According to the spec, it's Length, but percents can
+                // be abused, so we allow only Pixels.
+                'height' => 'Pixels#' . $max,
+                'width' => 'Pixels#' . $max,
+                'longdesc' => 'URI',
+                'src*' => new HTMLPurifier_AttrDef_URI(true), // embedded
+            )
+        );
+        if ($max === null || $config->get('HTML.Trusted')) {
+            $img->attr['height'] =
+            $img->attr['width'] = 'Length';
+        }
+
+        // kind of strange, but splitting things up would be inefficient
+        $img->attr_transform_pre[] =
+        $img->attr_transform_post[] =
+            new HTMLPurifier_AttrTransform_ImgRequired();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Legacy.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Legacy.php
new file mode 100644
index 0000000..86b5299
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Legacy.php
@@ -0,0 +1,186 @@
+<?php
+
+/**
+ * XHTML 1.1 Legacy module defines elements that were previously
+ * deprecated.
+ *
+ * @note Not all legacy elements have been implemented yet, which
+ *       is a bit of a reverse problem as compared to browsers! In
+ *       addition, this legacy module may implement a bit more than
+ *       mandated by XHTML 1.1.
+ *
+ * This module can be used in combination with TransformToStrict in order
+ * to transform as many deprecated elements as possible, but retain
+ * questionably deprecated elements that do not have good alternatives
+ * as well as transform elements that don't have an implementation.
+ * See docs/ref-strictness.txt for more details.
+ */
+
+class HTMLPurifier_HTMLModule_Legacy extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Legacy';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->addElement(
+            'basefont',
+            'Inline',
+            'Empty',
+            null,
+            array(
+                'color' => 'Color',
+                'face' => 'Text', // extremely broad, we should
+                'size' => 'Text', // tighten it
+                'id' => 'ID'
+            )
+        );
+        $this->addElement('center', 'Block', 'Flow', 'Common');
+        $this->addElement(
+            'dir',
+            'Block',
+            'Required: li',
+            'Common',
+            array(
+                'compact' => 'Bool#compact'
+            )
+        );
+        $this->addElement(
+            'font',
+            'Inline',
+            'Inline',
+            array('Core', 'I18N'),
+            array(
+                'color' => 'Color',
+                'face' => 'Text', // extremely broad, we should
+                'size' => 'Text', // tighten it
+            )
+        );
+        $this->addElement(
+            'menu',
+            'Block',
+            'Required: li',
+            'Common',
+            array(
+                'compact' => 'Bool#compact'
+            )
+        );
+
+        $s = $this->addElement('s', 'Inline', 'Inline', 'Common');
+        $s->formatting = true;
+
+        $strike = $this->addElement('strike', 'Inline', 'Inline', 'Common');
+        $strike->formatting = true;
+
+        $u = $this->addElement('u', 'Inline', 'Inline', 'Common');
+        $u->formatting = true;
+
+        // setup modifications to old elements
+
+        $align = 'Enum#left,right,center,justify';
+
+        $address = $this->addBlankElement('address');
+        $address->content_model = 'Inline | #PCDATA | p';
+        $address->content_model_type = 'optional';
+        $address->child = false;
+
+        $blockquote = $this->addBlankElement('blockquote');
+        $blockquote->content_model = 'Flow | #PCDATA';
+        $blockquote->content_model_type = 'optional';
+        $blockquote->child = false;
+
+        $br = $this->addBlankElement('br');
+        $br->attr['clear'] = 'Enum#left,all,right,none';
+
+        $caption = $this->addBlankElement('caption');
+        $caption->attr['align'] = 'Enum#top,bottom,left,right';
+
+        $div = $this->addBlankElement('div');
+        $div->attr['align'] = $align;
+
+        $dl = $this->addBlankElement('dl');
+        $dl->attr['compact'] = 'Bool#compact';
+
+        for ($i = 1; $i <= 6; $i++) {
+            $h = $this->addBlankElement("h$i");
+            $h->attr['align'] = $align;
+        }
+
+        $hr = $this->addBlankElement('hr');
+        $hr->attr['align'] = $align;
+        $hr->attr['noshade'] = 'Bool#noshade';
+        $hr->attr['size'] = 'Pixels';
+        $hr->attr['width'] = 'Length';
+
+        $img = $this->addBlankElement('img');
+        $img->attr['align'] = 'IAlign';
+        $img->attr['border'] = 'Pixels';
+        $img->attr['hspace'] = 'Pixels';
+        $img->attr['vspace'] = 'Pixels';
+
+        // figure out this integer business
+
+        $li = $this->addBlankElement('li');
+        $li->attr['value'] = new HTMLPurifier_AttrDef_Integer();
+        $li->attr['type'] = 'Enum#s:1,i,I,a,A,disc,square,circle';
+
+        $ol = $this->addBlankElement('ol');
+        $ol->attr['compact'] = 'Bool#compact';
+        $ol->attr['start'] = new HTMLPurifier_AttrDef_Integer();
+        $ol->attr['type'] = 'Enum#s:1,i,I,a,A';
+
+        $p = $this->addBlankElement('p');
+        $p->attr['align'] = $align;
+
+        $pre = $this->addBlankElement('pre');
+        $pre->attr['width'] = 'Number';
+
+        // script omitted
+
+        $table = $this->addBlankElement('table');
+        $table->attr['align'] = 'Enum#left,center,right';
+        $table->attr['bgcolor'] = 'Color';
+
+        $tr = $this->addBlankElement('tr');
+        $tr->attr['bgcolor'] = 'Color';
+
+        $th = $this->addBlankElement('th');
+        $th->attr['bgcolor'] = 'Color';
+        $th->attr['height'] = 'Length';
+        $th->attr['nowrap'] = 'Bool#nowrap';
+        $th->attr['width'] = 'Length';
+
+        $td = $this->addBlankElement('td');
+        $td->attr['bgcolor'] = 'Color';
+        $td->attr['height'] = 'Length';
+        $td->attr['nowrap'] = 'Bool#nowrap';
+        $td->attr['width'] = 'Length';
+
+        $ul = $this->addBlankElement('ul');
+        $ul->attr['compact'] = 'Bool#compact';
+        $ul->attr['type'] = 'Enum#square,disc,circle';
+
+        // "safe" modifications to "unsafe" elements
+        // WARNING: If you want to add support for an unsafe, legacy
+        // attribute, make a new TrustedLegacy module with the trusted
+        // bit set appropriately
+
+        $form = $this->addBlankElement('form');
+        $form->content_model = 'Flow | #PCDATA';
+        $form->content_model_type = 'optional';
+        $form->attr['target'] = 'FrameTarget';
+
+        $input = $this->addBlankElement('input');
+        $input->attr['align'] = 'IAlign';
+
+        $legend = $this->addBlankElement('legend');
+        $legend->attr['align'] = 'LAlign';
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/List.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/List.php
new file mode 100644
index 0000000..7a20ff7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/List.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * XHTML 1.1 List Module, defines list-oriented elements. Core Module.
+ */
+class HTMLPurifier_HTMLModule_List extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'List';
+
+    // According to the abstract schema, the List content set is a fully formed
+    // one or more expr, but it invariably occurs in an optional declaration
+    // so we're not going to do that subtlety. It might cause trouble
+    // if a user defines "List" and expects that multiple lists are
+    // allowed to be specified, but then again, that's not very intuitive.
+    // Furthermore, the actual XML Schema may disagree. Regardless,
+    // we don't have support for such nested expressions without using
+    // the incredibly inefficient and draconic Custom ChildDef.
+
+    /**
+     * @type array
+     */
+    public $content_sets = array('Flow' => 'List');
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $ol = $this->addElement('ol', 'List', new HTMLPurifier_ChildDef_List(), 'Common');
+        $ul = $this->addElement('ul', 'List', new HTMLPurifier_ChildDef_List(), 'Common');
+        // XXX The wrap attribute is handled by MakeWellFormed.  This is all
+        // quite unsatisfactory, because we generated this
+        // *specifically* for lists, and now a big chunk of the handling
+        // is done properly by the List ChildDef.  So actually, we just
+        // want enough information to make autoclosing work properly,
+        // and then hand off the tricky stuff to the ChildDef.
+        $ol->wrap = 'li';
+        $ul->wrap = 'li';
+        $this->addElement('dl', 'List', 'Required: dt | dd', 'Common');
+
+        $this->addElement('li', false, 'Flow', 'Common');
+
+        $this->addElement('dd', false, 'Flow', 'Common');
+        $this->addElement('dt', false, 'Inline', 'Common');
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Name.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Name.php
new file mode 100644
index 0000000..60c0545
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Name.php
@@ -0,0 +1,26 @@
+<?php
+
+class HTMLPurifier_HTMLModule_Name extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Name';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $elements = array('a', 'applet', 'form', 'frame', 'iframe', 'img', 'map');
+        foreach ($elements as $name) {
+            $element = $this->addBlankElement($name);
+            $element->attr['name'] = 'CDATA';
+            if (!$config->get('HTML.Attr.Name.UseCDATA')) {
+                $element->attr_transform_post[] = new HTMLPurifier_AttrTransform_NameSync();
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Nofollow.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Nofollow.php
new file mode 100644
index 0000000..dc9410a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Nofollow.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * Module adds the nofollow attribute transformation to a tags.  It
+ * is enabled by HTML.Nofollow
+ */
+class HTMLPurifier_HTMLModule_Nofollow extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Nofollow';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $a = $this->addBlankElement('a');
+        $a->attr_transform_post[] = new HTMLPurifier_AttrTransform_Nofollow();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php
new file mode 100644
index 0000000..da72225
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php
@@ -0,0 +1,20 @@
+<?php
+
+class HTMLPurifier_HTMLModule_NonXMLCommonAttributes extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'NonXMLCommonAttributes';
+
+    /**
+     * @type array
+     */
+    public $attr_collections = array(
+        'Lang' => array(
+            'lang' => 'LanguageCode',
+        )
+    );
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Object.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Object.php
new file mode 100644
index 0000000..2f9efc5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Object.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * XHTML 1.1 Object Module, defines elements for generic object inclusion
+ * @warning Users will commonly use <embed> to cater to legacy browsers: this
+ *      module does not allow this sort of behavior
+ */
+class HTMLPurifier_HTMLModule_Object extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Object';
+
+    /**
+     * @type bool
+     */
+    public $safe = false;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->addElement(
+            'object',
+            'Inline',
+            'Optional: #PCDATA | Flow | param',
+            'Common',
+            array(
+                'archive' => 'URI',
+                'classid' => 'URI',
+                'codebase' => 'URI',
+                'codetype' => 'Text',
+                'data' => 'URI',
+                'declare' => 'Bool#declare',
+                'height' => 'Length',
+                'name' => 'CDATA',
+                'standby' => 'Text',
+                'tabindex' => 'Number',
+                'type' => 'ContentType',
+                'width' => 'Length'
+            )
+        );
+
+        $this->addElement(
+            'param',
+            false,
+            'Empty',
+            null,
+            array(
+                'id' => 'ID',
+                'name*' => 'Text',
+                'type' => 'Text',
+                'value' => 'Text',
+                'valuetype' => 'Enum#data,ref,object'
+            )
+        );
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Presentation.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Presentation.php
new file mode 100644
index 0000000..6458ce9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Presentation.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * XHTML 1.1 Presentation Module, defines simple presentation-related
+ * markup. Text Extension Module.
+ * @note The official XML Schema and DTD specs further divide this into
+ *       two modules:
+ *          - Block Presentation (hr)
+ *          - Inline Presentation (b, big, i, small, sub, sup, tt)
+ *       We have chosen not to heed this distinction, as content_sets
+ *       provides satisfactory disambiguation.
+ */
+class HTMLPurifier_HTMLModule_Presentation extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Presentation';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->addElement('hr', 'Block', 'Empty', 'Common');
+        $this->addElement('sub', 'Inline', 'Inline', 'Common');
+        $this->addElement('sup', 'Inline', 'Inline', 'Common');
+        $b = $this->addElement('b', 'Inline', 'Inline', 'Common');
+        $b->formatting = true;
+        $big = $this->addElement('big', 'Inline', 'Inline', 'Common');
+        $big->formatting = true;
+        $i = $this->addElement('i', 'Inline', 'Inline', 'Common');
+        $i->formatting = true;
+        $small = $this->addElement('small', 'Inline', 'Inline', 'Common');
+        $small->formatting = true;
+        $tt = $this->addElement('tt', 'Inline', 'Inline', 'Common');
+        $tt->formatting = true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Proprietary.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Proprietary.php
new file mode 100644
index 0000000..5ee3c8e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Proprietary.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * Module defines proprietary tags and attributes in HTML.
+ * @warning If this module is enabled, standards-compliance is off!
+ */
+class HTMLPurifier_HTMLModule_Proprietary extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Proprietary';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->addElement(
+            'marquee',
+            'Inline',
+            'Flow',
+            'Common',
+            array(
+                'direction' => 'Enum#left,right,up,down',
+                'behavior' => 'Enum#alternate',
+                'width' => 'Length',
+                'height' => 'Length',
+                'scrolldelay' => 'Number',
+                'scrollamount' => 'Number',
+                'loop' => 'Number',
+                'bgcolor' => 'Color',
+                'hspace' => 'Pixels',
+                'vspace' => 'Pixels',
+            )
+        );
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Ruby.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Ruby.php
new file mode 100644
index 0000000..a0d4892
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Ruby.php
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * XHTML 1.1 Ruby Annotation Module, defines elements that indicate
+ * short runs of text alongside base text for annotation or pronounciation.
+ */
+class HTMLPurifier_HTMLModule_Ruby extends HTMLPurifier_HTMLModule
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Ruby';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->addElement(
+            'ruby',
+            'Inline',
+            'Custom: ((rb, (rt | (rp, rt, rp))) | (rbc, rtc, rtc?))',
+            'Common'
+        );
+        $this->addElement('rbc', false, 'Required: rb', 'Common');
+        $this->addElement('rtc', false, 'Required: rt', 'Common');
+        $rb = $this->addElement('rb', false, 'Inline', 'Common');
+        $rb->excludes = array('ruby' => true);
+        $rt = $this->addElement('rt', false, 'Inline', 'Common', array('rbspan' => 'Number'));
+        $rt->excludes = array('ruby' => true);
+        $this->addElement('rp', false, 'Optional: #PCDATA', 'Common');
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeEmbed.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeEmbed.php
new file mode 100644
index 0000000..04e6689
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeEmbed.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * A "safe" embed module. See SafeObject. This is a proprietary element.
+ */
+class HTMLPurifier_HTMLModule_SafeEmbed extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'SafeEmbed';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $max = $config->get('HTML.MaxImgLength');
+        $embed = $this->addElement(
+            'embed',
+            'Inline',
+            'Empty',
+            'Common',
+            array(
+                'src*' => 'URI#embedded',
+                'type' => 'Enum#application/x-shockwave-flash',
+                'width' => 'Pixels#' . $max,
+                'height' => 'Pixels#' . $max,
+                'allowscriptaccess' => 'Enum#never',
+                'allownetworking' => 'Enum#internal',
+                'flashvars' => 'Text',
+                'wmode' => 'Enum#window,transparent,opaque',
+                'name' => 'ID',
+            )
+        );
+        $embed->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeEmbed();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeObject.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeObject.php
new file mode 100644
index 0000000..1297f80
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeObject.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * A "safe" object module. In theory, objects permitted by this module will
+ * be safe, and untrusted users can be allowed to embed arbitrary flash objects
+ * (maybe other types too, but only Flash is supported as of right now).
+ * Highly experimental.
+ */
+class HTMLPurifier_HTMLModule_SafeObject extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'SafeObject';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        // These definitions are not intrinsically safe: the attribute transforms
+        // are a vital part of ensuring safety.
+
+        $max = $config->get('HTML.MaxImgLength');
+        $object = $this->addElement(
+            'object',
+            'Inline',
+            'Optional: param | Flow | #PCDATA',
+            'Common',
+            array(
+                // While technically not required by the spec, we're forcing
+                // it to this value.
+                'type' => 'Enum#application/x-shockwave-flash',
+                'width' => 'Pixels#' . $max,
+                'height' => 'Pixels#' . $max,
+                'data' => 'URI#embedded',
+                'codebase' => new HTMLPurifier_AttrDef_Enum(
+                    array(
+                        'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'
+                    )
+                ),
+            )
+        );
+        $object->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeObject();
+
+        $param = $this->addElement(
+            'param',
+            false,
+            'Empty',
+            false,
+            array(
+                'id' => 'ID',
+                'name*' => 'Text',
+                'value' => 'Text'
+            )
+        );
+        $param->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeParam();
+        $this->info_injector[] = 'SafeObject';
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeScripting.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeScripting.php
new file mode 100644
index 0000000..0330cd9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeScripting.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * A "safe" script module. No inline JS is allowed, and pointed to JS
+ * files must match whitelist.
+ */
+class HTMLPurifier_HTMLModule_SafeScripting extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'SafeScripting';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        // These definitions are not intrinsically safe: the attribute transforms
+        // are a vital part of ensuring safety.
+
+        $allowed = $config->get('HTML.SafeScripting');
+        $script = $this->addElement(
+            'script',
+            'Inline',
+            'Empty',
+            null,
+            array(
+                // While technically not required by the spec, we're forcing
+                // it to this value.
+                'type' => 'Enum#text/javascript',
+                'src*' => new HTMLPurifier_AttrDef_Enum(array_keys($allowed))
+            )
+        );
+        $script->attr_transform_pre[] =
+        $script->attr_transform_post[] = new HTMLPurifier_AttrTransform_ScriptRequired();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php
new file mode 100644
index 0000000..8b28a7b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php
@@ -0,0 +1,73 @@
+<?php
+
+/*
+
+WARNING: THIS MODULE IS EXTREMELY DANGEROUS AS IT ENABLES INLINE SCRIPTING
+INSIDE HTML PURIFIER DOCUMENTS. USE ONLY WITH TRUSTED USER INPUT!!!
+
+*/
+
+/**
+ * XHTML 1.1 Scripting module, defines elements that are used to contain
+ * information pertaining to executable scripts or the lack of support
+ * for executable scripts.
+ * @note This module does not contain inline scripting elements
+ */
+class HTMLPurifier_HTMLModule_Scripting extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Scripting';
+
+    /**
+     * @type array
+     */
+    public $elements = array('script', 'noscript');
+
+    /**
+     * @type array
+     */
+    public $content_sets = array('Block' => 'script | noscript', 'Inline' => 'script | noscript');
+
+    /**
+     * @type bool
+     */
+    public $safe = false;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        // TODO: create custom child-definition for noscript that
+        // auto-wraps stray #PCDATA in a similar manner to
+        // blockquote's custom definition (we would use it but
+        // blockquote's contents are optional while noscript's contents
+        // are required)
+
+        // TODO: convert this to new syntax, main problem is getting
+        // both content sets working
+
+        // In theory, this could be safe, but I don't see any reason to
+        // allow it.
+        $this->info['noscript'] = new HTMLPurifier_ElementDef();
+        $this->info['noscript']->attr = array(0 => array('Common'));
+        $this->info['noscript']->content_model = 'Heading | List | Block';
+        $this->info['noscript']->content_model_type = 'required';
+
+        $this->info['script'] = new HTMLPurifier_ElementDef();
+        $this->info['script']->attr = array(
+            'defer' => new HTMLPurifier_AttrDef_Enum(array('defer')),
+            'src' => new HTMLPurifier_AttrDef_URI(true),
+            'type' => new HTMLPurifier_AttrDef_Enum(array('text/javascript'))
+        );
+        $this->info['script']->content_model = '#PCDATA';
+        $this->info['script']->content_model_type = 'optional';
+        $this->info['script']->attr_transform_pre[] =
+        $this->info['script']->attr_transform_post[] =
+            new HTMLPurifier_AttrTransform_ScriptRequired();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php
new file mode 100644
index 0000000..497b832
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * XHTML 1.1 Edit Module, defines editing-related elements. Text Extension
+ * Module.
+ */
+class HTMLPurifier_HTMLModule_StyleAttribute extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'StyleAttribute';
+
+    /**
+     * @type array
+     */
+    public $attr_collections = array(
+        // The inclusion routine differs from the Abstract Modules but
+        // is in line with the DTD and XML Schemas.
+        'Style' => array('style' => false), // see constructor
+        'Core' => array(0 => array('Style'))
+    );
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->attr_collections['Style']['style'] = new HTMLPurifier_AttrDef_CSS();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php
new file mode 100644
index 0000000..8a0b3b4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php
@@ -0,0 +1,75 @@
+<?php
+
+/**
+ * XHTML 1.1 Tables Module, fully defines accessible table elements.
+ */
+class HTMLPurifier_HTMLModule_Tables extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Tables';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->addElement('caption', false, 'Inline', 'Common');
+
+        $this->addElement(
+            'table',
+            'Block',
+            new HTMLPurifier_ChildDef_Table(),
+            'Common',
+            array(
+                'border' => 'Pixels',
+                'cellpadding' => 'Length',
+                'cellspacing' => 'Length',
+                'frame' => 'Enum#void,above,below,hsides,lhs,rhs,vsides,box,border',
+                'rules' => 'Enum#none,groups,rows,cols,all',
+                'summary' => 'Text',
+                'width' => 'Length'
+            )
+        );
+
+        // common attributes
+        $cell_align = array(
+            'align' => 'Enum#left,center,right,justify,char',
+            'charoff' => 'Length',
+            'valign' => 'Enum#top,middle,bottom,baseline',
+        );
+
+        $cell_t = array_merge(
+            array(
+                'abbr' => 'Text',
+                'colspan' => 'Number',
+                'rowspan' => 'Number',
+                // Apparently, as of HTML5 this attribute only applies
+                // to 'th' elements.
+                'scope' => 'Enum#row,col,rowgroup,colgroup',
+            ),
+            $cell_align
+        );
+        $this->addElement('td', false, 'Flow', 'Common', $cell_t);
+        $this->addElement('th', false, 'Flow', 'Common', $cell_t);
+
+        $this->addElement('tr', false, 'Required: td | th', 'Common', $cell_align);
+
+        $cell_col = array_merge(
+            array(
+                'span' => 'Number',
+                'width' => 'MultiLength',
+            ),
+            $cell_align
+        );
+        $this->addElement('col', false, 'Empty', 'Common', $cell_col);
+        $this->addElement('colgroup', false, 'Optional: col', 'Common', $cell_col);
+
+        $this->addElement('tbody', false, 'Required: tr', 'Common', $cell_align);
+        $this->addElement('thead', false, 'Required: tr', 'Common', $cell_align);
+        $this->addElement('tfoot', false, 'Required: tr', 'Common', $cell_align);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php
new file mode 100644
index 0000000..b188ac9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * XHTML 1.1 Target Module, defines target attribute in link elements.
+ */
+class HTMLPurifier_HTMLModule_Target extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Target';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $elements = array('a');
+        foreach ($elements as $name) {
+            $e = $this->addBlankElement($name);
+            $e->attr = array(
+                'target' => new HTMLPurifier_AttrDef_HTML_FrameTarget()
+            );
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php
new file mode 100644
index 0000000..58ccc68
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * Module adds the target=blank attribute transformation to a tags.  It
+ * is enabled by HTML.TargetBlank
+ */
+class HTMLPurifier_HTMLModule_TargetBlank extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'TargetBlank';
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $a = $this->addBlankElement('a');
+        $a->attr_transform_post[] = new HTMLPurifier_AttrTransform_TargetBlank();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php
new file mode 100644
index 0000000..7a65e00
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php
@@ -0,0 +1,87 @@
+<?php
+
+/**
+ * XHTML 1.1 Text Module, defines basic text containers. Core Module.
+ * @note In the normative XML Schema specification, this module
+ *       is further abstracted into the following modules:
+ *          - Block Phrasal (address, blockquote, pre, h1, h2, h3, h4, h5, h6)
+ *          - Block Structural (div, p)
+ *          - Inline Phrasal (abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var)
+ *          - Inline Structural (br, span)
+ *       This module, functionally, does not distinguish between these
+ *       sub-modules, but the code is internally structured to reflect
+ *       these distinctions.
+ */
+class HTMLPurifier_HTMLModule_Text extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'Text';
+
+    /**
+     * @type array
+     */
+    public $content_sets = array(
+        'Flow' => 'Heading | Block | Inline'
+    );
+
+    /**
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        // Inline Phrasal -------------------------------------------------
+        $this->addElement('abbr', 'Inline', 'Inline', 'Common');
+        $this->addElement('acronym', 'Inline', 'Inline', 'Common');
+        $this->addElement('cite', 'Inline', 'Inline', 'Common');
+        $this->addElement('dfn', 'Inline', 'Inline', 'Common');
+        $this->addElement('kbd', 'Inline', 'Inline', 'Common');
+        $this->addElement('q', 'Inline', 'Inline', 'Common', array('cite' => 'URI'));
+        $this->addElement('samp', 'Inline', 'Inline', 'Common');
+        $this->addElement('var', 'Inline', 'Inline', 'Common');
+
+        $em = $this->addElement('em', 'Inline', 'Inline', 'Common');
+        $em->formatting = true;
+
+        $strong = $this->addElement('strong', 'Inline', 'Inline', 'Common');
+        $strong->formatting = true;
+
+        $code = $this->addElement('code', 'Inline', 'Inline', 'Common');
+        $code->formatting = true;
+
+        // Inline Structural ----------------------------------------------
+        $this->addElement('span', 'Inline', 'Inline', 'Common');
+        $this->addElement('br', 'Inline', 'Empty', 'Core');
+
+        // Block Phrasal --------------------------------------------------
+        $this->addElement('address', 'Block', 'Inline', 'Common');
+        $this->addElement('blockquote', 'Block', 'Optional: Heading | Block | List', 'Common', array('cite' => 'URI'));
+        $pre = $this->addElement('pre', 'Block', 'Inline', 'Common');
+        $pre->excludes = $this->makeLookup(
+            'img',
+            'big',
+            'small',
+            'object',
+            'applet',
+            'font',
+            'basefont'
+        );
+        $this->addElement('h1', 'Heading', 'Inline', 'Common');
+        $this->addElement('h2', 'Heading', 'Inline', 'Common');
+        $this->addElement('h3', 'Heading', 'Inline', 'Common');
+        $this->addElement('h4', 'Heading', 'Inline', 'Common');
+        $this->addElement('h5', 'Heading', 'Inline', 'Common');
+        $this->addElement('h6', 'Heading', 'Inline', 'Common');
+
+        // Block Structural -----------------------------------------------
+        $p = $this->addElement('p', 'Block', 'Inline', 'Common');
+        $p->autoclose = array_flip(
+            array("address", "blockquote", "center", "dir", "div", "dl", "fieldset", "ol", "p", "ul")
+        );
+
+        $this->addElement('div', 'Block', 'Flow', 'Common');
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php
new file mode 100644
index 0000000..08aa232
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php
@@ -0,0 +1,230 @@
+<?php
+
+/**
+ * Abstract class for a set of proprietary modules that clean up (tidy)
+ * poorly written HTML.
+ * @todo Figure out how to protect some of these methods/properties
+ */
+class HTMLPurifier_HTMLModule_Tidy extends HTMLPurifier_HTMLModule
+{
+    /**
+     * List of supported levels.
+     * Index zero is a special case "no fixes" level.
+     * @type array
+     */
+    public $levels = array(0 => 'none', 'light', 'medium', 'heavy');
+
+    /**
+     * Default level to place all fixes in.
+     * Disabled by default.
+     * @type string
+     */
+    public $defaultLevel = null;
+
+    /**
+     * Lists of fixes used by getFixesForLevel().
+     * Format is:
+     *      HTMLModule_Tidy->fixesForLevel[$level] = array('fix-1', 'fix-2');
+     * @type array
+     */
+    public $fixesForLevel = array(
+        'light' => array(),
+        'medium' => array(),
+        'heavy' => array()
+    );
+
+    /**
+     * Lazy load constructs the module by determining the necessary
+     * fixes to create and then delegating to the populate() function.
+     * @param HTMLPurifier_Config $config
+     * @todo Wildcard matching and error reporting when an added or
+     *       subtracted fix has no effect.
+     */
+    public function setup($config)
+    {
+        // create fixes, initialize fixesForLevel
+        $fixes = $this->makeFixes();
+        $this->makeFixesForLevel($fixes);
+
+        // figure out which fixes to use
+        $level = $config->get('HTML.TidyLevel');
+        $fixes_lookup = $this->getFixesForLevel($level);
+
+        // get custom fix declarations: these need namespace processing
+        $add_fixes = $config->get('HTML.TidyAdd');
+        $remove_fixes = $config->get('HTML.TidyRemove');
+
+        foreach ($fixes as $name => $fix) {
+            // needs to be refactored a little to implement globbing
+            if (isset($remove_fixes[$name]) ||
+                (!isset($add_fixes[$name]) && !isset($fixes_lookup[$name]))) {
+                unset($fixes[$name]);
+            }
+        }
+
+        // populate this module with necessary fixes
+        $this->populate($fixes);
+    }
+
+    /**
+     * Retrieves all fixes per a level, returning fixes for that specific
+     * level as well as all levels below it.
+     * @param string $level level identifier, see $levels for valid values
+     * @return array Lookup up table of fixes
+     */
+    public function getFixesForLevel($level)
+    {
+        if ($level == $this->levels[0]) {
+            return array();
+        }
+        $activated_levels = array();
+        for ($i = 1, $c = count($this->levels); $i < $c; $i++) {
+            $activated_levels[] = $this->levels[$i];
+            if ($this->levels[$i] == $level) {
+                break;
+            }
+        }
+        if ($i == $c) {
+            trigger_error(
+                'Tidy level ' . htmlspecialchars($level) . ' not recognized',
+                E_USER_WARNING
+            );
+            return array();
+        }
+        $ret = array();
+        foreach ($activated_levels as $level) {
+            foreach ($this->fixesForLevel[$level] as $fix) {
+                $ret[$fix] = true;
+            }
+        }
+        return $ret;
+    }
+
+    /**
+     * Dynamically populates the $fixesForLevel member variable using
+     * the fixes array. It may be custom overloaded, used in conjunction
+     * with $defaultLevel, or not used at all.
+     * @param array $fixes
+     */
+    public function makeFixesForLevel($fixes)
+    {
+        if (!isset($this->defaultLevel)) {
+            return;
+        }
+        if (!isset($this->fixesForLevel[$this->defaultLevel])) {
+            trigger_error(
+                'Default level ' . $this->defaultLevel . ' does not exist',
+                E_USER_ERROR
+            );
+            return;
+        }
+        $this->fixesForLevel[$this->defaultLevel] = array_keys($fixes);
+    }
+
+    /**
+     * Populates the module with transforms and other special-case code
+     * based on a list of fixes passed to it
+     * @param array $fixes Lookup table of fixes to activate
+     */
+    public function populate($fixes)
+    {
+        foreach ($fixes as $name => $fix) {
+            // determine what the fix is for
+            list($type, $params) = $this->getFixType($name);
+            switch ($type) {
+                case 'attr_transform_pre':
+                case 'attr_transform_post':
+                    $attr = $params['attr'];
+                    if (isset($params['element'])) {
+                        $element = $params['element'];
+                        if (empty($this->info[$element])) {
+                            $e = $this->addBlankElement($element);
+                        } else {
+                            $e = $this->info[$element];
+                        }
+                    } else {
+                        $type = "info_$type";
+                        $e = $this;
+                    }
+                    // PHP does some weird parsing when I do
+                    // $e->$type[$attr], so I have to assign a ref.
+                    $f =& $e->$type;
+                    $f[$attr] = $fix;
+                    break;
+                case 'tag_transform':
+                    $this->info_tag_transform[$params['element']] = $fix;
+                    break;
+                case 'child':
+                case 'content_model_type':
+                    $element = $params['element'];
+                    if (empty($this->info[$element])) {
+                        $e = $this->addBlankElement($element);
+                    } else {
+                        $e = $this->info[$element];
+                    }
+                    $e->$type = $fix;
+                    break;
+                default:
+                    trigger_error("Fix type $type not supported", E_USER_ERROR);
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Parses a fix name and determines what kind of fix it is, as well
+     * as other information defined by the fix
+     * @param $name String name of fix
+     * @return array(string $fix_type, array $fix_parameters)
+     * @note $fix_parameters is type dependant, see populate() for usage
+     *       of these parameters
+     */
+    public function getFixType($name)
+    {
+        // parse it
+        $property = $attr = null;
+        if (strpos($name, '#') !== false) {
+            list($name, $property) = explode('#', $name);
+        }
+        if (strpos($name, '@') !== false) {
+            list($name, $attr) = explode('@', $name);
+        }
+
+        // figure out the parameters
+        $params = array();
+        if ($name !== '') {
+            $params['element'] = $name;
+        }
+        if (!is_null($attr)) {
+            $params['attr'] = $attr;
+        }
+
+        // special case: attribute transform
+        if (!is_null($attr)) {
+            if (is_null($property)) {
+                $property = 'pre';
+            }
+            $type = 'attr_transform_' . $property;
+            return array($type, $params);
+        }
+
+        // special case: tag transform
+        if (is_null($property)) {
+            return array('tag_transform', $params);
+        }
+
+        return array($property, $params);
+
+    }
+
+    /**
+     * Defines all fixes the module will perform in a compact
+     * associative array of fix name to fix implementation.
+     * @return array
+     */
+    public function makeFixes()
+    {
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php
new file mode 100644
index 0000000..a995161
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * Name is deprecated, but allowed in strict doctypes, so onl
+ */
+class HTMLPurifier_HTMLModule_Tidy_Name extends HTMLPurifier_HTMLModule_Tidy
+{
+    /**
+     * @type string
+     */
+    public $name = 'Tidy_Name';
+
+    /**
+     * @type string
+     */
+    public $defaultLevel = 'heavy';
+
+    /**
+     * @return array
+     */
+    public function makeFixes()
+    {
+        $r = array();
+        // @name for img, a -----------------------------------------------
+        // Technically, it's allowed even on strict, so we allow authors to use
+        // it. However, it's deprecated in future versions of XHTML.
+        $r['img at name'] =
+        $r['a at name'] = new HTMLPurifier_AttrTransform_Name();
+        return $r;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php
new file mode 100644
index 0000000..3326438
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php
@@ -0,0 +1,34 @@
+<?php
+
+class HTMLPurifier_HTMLModule_Tidy_Proprietary extends HTMLPurifier_HTMLModule_Tidy
+{
+
+    /**
+     * @type string
+     */
+    public $name = 'Tidy_Proprietary';
+
+    /**
+     * @type string
+     */
+    public $defaultLevel = 'light';
+
+    /**
+     * @return array
+     */
+    public function makeFixes()
+    {
+        $r = array();
+        $r['table at background'] = new HTMLPurifier_AttrTransform_Background();
+        $r['td at background']    = new HTMLPurifier_AttrTransform_Background();
+        $r['th at background']    = new HTMLPurifier_AttrTransform_Background();
+        $r['tr at background']    = new HTMLPurifier_AttrTransform_Background();
+        $r['thead at background'] = new HTMLPurifier_AttrTransform_Background();
+        $r['tfoot at background'] = new HTMLPurifier_AttrTransform_Background();
+        $r['tbody at background'] = new HTMLPurifier_AttrTransform_Background();
+        $r['table at height']     = new HTMLPurifier_AttrTransform_Length('height');
+        return $r;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php
new file mode 100644
index 0000000..803c44f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php
@@ -0,0 +1,43 @@
+<?php
+
+class HTMLPurifier_HTMLModule_Tidy_Strict extends HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4
+{
+    /**
+     * @type string
+     */
+    public $name = 'Tidy_Strict';
+
+    /**
+     * @type string
+     */
+    public $defaultLevel = 'light';
+
+    /**
+     * @return array
+     */
+    public function makeFixes()
+    {
+        $r = parent::makeFixes();
+        $r['blockquote#content_model_type'] = 'strictblockquote';
+        return $r;
+    }
+
+    /**
+     * @type bool
+     */
+    public $defines_child_def = true;
+
+    /**
+     * @param HTMLPurifier_ElementDef $def
+     * @return HTMLPurifier_ChildDef_StrictBlockquote
+     */
+    public function getChildDef($def)
+    {
+        if ($def->content_model_type != 'strictblockquote') {
+            return parent::getChildDef($def);
+        }
+        return new HTMLPurifier_ChildDef_StrictBlockquote($def->content_model);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Transitional.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Transitional.php
new file mode 100644
index 0000000..c095ad9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Transitional.php
@@ -0,0 +1,16 @@
+<?php
+
+class HTMLPurifier_HTMLModule_Tidy_Transitional extends HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4
+{
+    /**
+     * @type string
+     */
+    public $name = 'Tidy_Transitional';
+
+    /**
+     * @type string
+     */
+    public $defaultLevel = 'heavy';
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTML.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTML.php
new file mode 100644
index 0000000..3ecddc4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTML.php
@@ -0,0 +1,26 @@
+<?php
+
+class HTMLPurifier_HTMLModule_Tidy_XHTML extends HTMLPurifier_HTMLModule_Tidy
+{
+    /**
+     * @type string
+     */
+    public $name = 'Tidy_XHTML';
+
+    /**
+     * @type string
+     */
+    public $defaultLevel = 'medium';
+
+    /**
+     * @return array
+     */
+    public function makeFixes()
+    {
+        $r = array();
+        $r['@lang'] = new HTMLPurifier_AttrTransform_Lang();
+        return $r;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php
new file mode 100644
index 0000000..c4f16a4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php
@@ -0,0 +1,179 @@
+<?php
+
+class HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4 extends HTMLPurifier_HTMLModule_Tidy
+{
+
+    /**
+     * @return array
+     */
+    public function makeFixes()
+    {
+        $r = array();
+
+        // == deprecated tag transforms ===================================
+
+        $r['font'] = new HTMLPurifier_TagTransform_Font();
+        $r['menu'] = new HTMLPurifier_TagTransform_Simple('ul');
+        $r['dir'] = new HTMLPurifier_TagTransform_Simple('ul');
+        $r['center'] = new HTMLPurifier_TagTransform_Simple('div', 'text-align:center;');
+        $r['u'] = new HTMLPurifier_TagTransform_Simple('span', 'text-decoration:underline;');
+        $r['s'] = new HTMLPurifier_TagTransform_Simple('span', 'text-decoration:line-through;');
+        $r['strike'] = new HTMLPurifier_TagTransform_Simple('span', 'text-decoration:line-through;');
+
+        // == deprecated attribute transforms =============================
+
+        $r['caption at align'] =
+            new HTMLPurifier_AttrTransform_EnumToCSS(
+                'align',
+                array(
+                    // we're following IE's behavior, not Firefox's, due
+                    // to the fact that no one supports caption-side:right,
+                    // W3C included (with CSS 2.1). This is a slightly
+                    // unreasonable attribute!
+                    'left' => 'text-align:left;',
+                    'right' => 'text-align:right;',
+                    'top' => 'caption-side:top;',
+                    'bottom' => 'caption-side:bottom;' // not supported by IE
+                )
+            );
+
+        // @align for img -------------------------------------------------
+        $r['img at align'] =
+            new HTMLPurifier_AttrTransform_EnumToCSS(
+                'align',
+                array(
+                    'left' => 'float:left;',
+                    'right' => 'float:right;',
+                    'top' => 'vertical-align:top;',
+                    'middle' => 'vertical-align:middle;',
+                    'bottom' => 'vertical-align:baseline;',
+                )
+            );
+
+        // @align for table -----------------------------------------------
+        $r['table at align'] =
+            new HTMLPurifier_AttrTransform_EnumToCSS(
+                'align',
+                array(
+                    'left' => 'float:left;',
+                    'center' => 'margin-left:auto;margin-right:auto;',
+                    'right' => 'float:right;'
+                )
+            );
+
+        // @align for hr -----------------------------------------------
+        $r['hr at align'] =
+            new HTMLPurifier_AttrTransform_EnumToCSS(
+                'align',
+                array(
+                    // we use both text-align and margin because these work
+                    // for different browsers (IE and Firefox, respectively)
+                    // and the melange makes for a pretty cross-compatible
+                    // solution
+                    'left' => 'margin-left:0;margin-right:auto;text-align:left;',
+                    'center' => 'margin-left:auto;margin-right:auto;text-align:center;',
+                    'right' => 'margin-left:auto;margin-right:0;text-align:right;'
+                )
+            );
+
+        // @align for h1, h2, h3, h4, h5, h6, p, div ----------------------
+        // {{{
+        $align_lookup = array();
+        $align_values = array('left', 'right', 'center', 'justify');
+        foreach ($align_values as $v) {
+            $align_lookup[$v] = "text-align:$v;";
+        }
+        // }}}
+        $r['h1 at align'] =
+        $r['h2 at align'] =
+        $r['h3 at align'] =
+        $r['h4 at align'] =
+        $r['h5 at align'] =
+        $r['h6 at align'] =
+        $r['p at align'] =
+        $r['div at align'] =
+            new HTMLPurifier_AttrTransform_EnumToCSS('align', $align_lookup);
+
+        // @bgcolor for table, tr, td, th ---------------------------------
+        $r['table at bgcolor'] =
+        $r['td at bgcolor'] =
+        $r['th at bgcolor'] =
+            new HTMLPurifier_AttrTransform_BgColor();
+
+        // @border for img ------------------------------------------------
+        $r['img at border'] = new HTMLPurifier_AttrTransform_Border();
+
+        // @clear for br --------------------------------------------------
+        $r['br at clear'] =
+            new HTMLPurifier_AttrTransform_EnumToCSS(
+                'clear',
+                array(
+                    'left' => 'clear:left;',
+                    'right' => 'clear:right;',
+                    'all' => 'clear:both;',
+                    'none' => 'clear:none;',
+                )
+            );
+
+        // @height for td, th ---------------------------------------------
+        $r['td at height'] =
+        $r['th at height'] =
+            new HTMLPurifier_AttrTransform_Length('height');
+
+        // @hspace for img ------------------------------------------------
+        $r['img at hspace'] = new HTMLPurifier_AttrTransform_ImgSpace('hspace');
+
+        // @noshade for hr ------------------------------------------------
+        // this transformation is not precise but often good enough.
+        // different browsers use different styles to designate noshade
+        $r['hr at noshade'] =
+            new HTMLPurifier_AttrTransform_BoolToCSS(
+                'noshade',
+                'color:#808080;background-color:#808080;border:0;'
+            );
+
+        // @nowrap for td, th ---------------------------------------------
+        $r['td at nowrap'] =
+        $r['th at nowrap'] =
+            new HTMLPurifier_AttrTransform_BoolToCSS(
+                'nowrap',
+                'white-space:nowrap;'
+            );
+
+        // @size for hr  --------------------------------------------------
+        $r['hr at size'] = new HTMLPurifier_AttrTransform_Length('size', 'height');
+
+        // @type for li, ol, ul -------------------------------------------
+        // {{{
+        $ul_types = array(
+            'disc' => 'list-style-type:disc;',
+            'square' => 'list-style-type:square;',
+            'circle' => 'list-style-type:circle;'
+        );
+        $ol_types = array(
+            '1' => 'list-style-type:decimal;',
+            'i' => 'list-style-type:lower-roman;',
+            'I' => 'list-style-type:upper-roman;',
+            'a' => 'list-style-type:lower-alpha;',
+            'A' => 'list-style-type:upper-alpha;'
+        );
+        $li_types = $ul_types + $ol_types;
+        // }}}
+
+        $r['ul at type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $ul_types);
+        $r['ol at type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $ol_types, true);
+        $r['li at type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $li_types, true);
+
+        // @vspace for img ------------------------------------------------
+        $r['img at vspace'] = new HTMLPurifier_AttrTransform_ImgSpace('vspace');
+
+        // @width for hr, td, th ------------------------------------------
+        $r['td at width'] =
+        $r['th at width'] =
+        $r['hr at width'] = new HTMLPurifier_AttrTransform_Length('width');
+
+        return $r;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/XMLCommonAttributes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/XMLCommonAttributes.php
new file mode 100644
index 0000000..01dbe9d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModule/XMLCommonAttributes.php
@@ -0,0 +1,20 @@
+<?php
+
+class HTMLPurifier_HTMLModule_XMLCommonAttributes extends HTMLPurifier_HTMLModule
+{
+    /**
+     * @type string
+     */
+    public $name = 'XMLCommonAttributes';
+
+    /**
+     * @type array
+     */
+    public $attr_collections = array(
+        'Lang' => array(
+            'xml:lang' => 'LanguageCode',
+        )
+    );
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModuleManager.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModuleManager.php
new file mode 100644
index 0000000..f3a17cb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/HTMLModuleManager.php
@@ -0,0 +1,459 @@
+<?php
+
+class HTMLPurifier_HTMLModuleManager
+{
+
+    /**
+     * @type HTMLPurifier_DoctypeRegistry
+     */
+    public $doctypes;
+
+    /**
+     * Instance of current doctype.
+     * @type string
+     */
+    public $doctype;
+
+    /**
+     * @type HTMLPurifier_AttrTypes
+     */
+    public $attrTypes;
+
+    /**
+     * Active instances of modules for the specified doctype are
+     * indexed, by name, in this array.
+     * @type HTMLPurifier_HTMLModule[]
+     */
+    public $modules = array();
+
+    /**
+     * Array of recognized HTMLPurifier_HTMLModule instances,
+     * indexed by module's class name. This array is usually lazy loaded, but a
+     * user can overload a module by pre-emptively registering it.
+     * @type HTMLPurifier_HTMLModule[]
+     */
+    public $registeredModules = array();
+
+    /**
+     * List of extra modules that were added by the user
+     * using addModule(). These get unconditionally merged into the current doctype, whatever
+     * it may be.
+     * @type HTMLPurifier_HTMLModule[]
+     */
+    public $userModules = array();
+
+    /**
+     * Associative array of element name to list of modules that have
+     * definitions for the element; this array is dynamically filled.
+     * @type array
+     */
+    public $elementLookup = array();
+
+    /**
+     * List of prefixes we should use for registering small names.
+     * @type array
+     */
+    public $prefixes = array('HTMLPurifier_HTMLModule_');
+
+    /**
+     * @type HTMLPurifier_ContentSets
+     */
+    public $contentSets;
+
+    /**
+     * @type HTMLPurifier_AttrCollections
+     */
+    public $attrCollections;
+
+    /**
+     * If set to true, unsafe elements and attributes will be allowed.
+     * @type bool
+     */
+    public $trusted = false;
+
+    public function __construct()
+    {
+        // editable internal objects
+        $this->attrTypes = new HTMLPurifier_AttrTypes();
+        $this->doctypes  = new HTMLPurifier_DoctypeRegistry();
+
+        // setup basic modules
+        $common = array(
+            'CommonAttributes', 'Text', 'Hypertext', 'List',
+            'Presentation', 'Edit', 'Bdo', 'Tables', 'Image',
+            'StyleAttribute',
+            // Unsafe:
+            'Scripting', 'Object', 'Forms',
+            // Sorta legacy, but present in strict:
+            'Name',
+        );
+        $transitional = array('Legacy', 'Target', 'Iframe');
+        $xml = array('XMLCommonAttributes');
+        $non_xml = array('NonXMLCommonAttributes');
+
+        // setup basic doctypes
+        $this->doctypes->register(
+            'HTML 4.01 Transitional',
+            false,
+            array_merge($common, $transitional, $non_xml),
+            array('Tidy_Transitional', 'Tidy_Proprietary'),
+            array(),
+            '-//W3C//DTD HTML 4.01 Transitional//EN',
+            'http://www.w3.org/TR/html4/loose.dtd'
+        );
+
+        $this->doctypes->register(
+            'HTML 4.01 Strict',
+            false,
+            array_merge($common, $non_xml),
+            array('Tidy_Strict', 'Tidy_Proprietary', 'Tidy_Name'),
+            array(),
+            '-//W3C//DTD HTML 4.01//EN',
+            'http://www.w3.org/TR/html4/strict.dtd'
+        );
+
+        $this->doctypes->register(
+            'XHTML 1.0 Transitional',
+            true,
+            array_merge($common, $transitional, $xml, $non_xml),
+            array('Tidy_Transitional', 'Tidy_XHTML', 'Tidy_Proprietary', 'Tidy_Name'),
+            array(),
+            '-//W3C//DTD XHTML 1.0 Transitional//EN',
+            'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'
+        );
+
+        $this->doctypes->register(
+            'XHTML 1.0 Strict',
+            true,
+            array_merge($common, $xml, $non_xml),
+            array('Tidy_Strict', 'Tidy_XHTML', 'Tidy_Strict', 'Tidy_Proprietary', 'Tidy_Name'),
+            array(),
+            '-//W3C//DTD XHTML 1.0 Strict//EN',
+            'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'
+        );
+
+        $this->doctypes->register(
+            'XHTML 1.1',
+            true,
+            // Iframe is a real XHTML 1.1 module, despite being
+            // "transitional"!
+            array_merge($common, $xml, array('Ruby', 'Iframe')),
+            array('Tidy_Strict', 'Tidy_XHTML', 'Tidy_Proprietary', 'Tidy_Strict', 'Tidy_Name'), // Tidy_XHTML1_1
+            array(),
+            '-//W3C//DTD XHTML 1.1//EN',
+            'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'
+        );
+
+    }
+
+    /**
+     * Registers a module to the recognized module list, useful for
+     * overloading pre-existing modules.
+     * @param $module Mixed: string module name, with or without
+     *                HTMLPurifier_HTMLModule prefix, or instance of
+     *                subclass of HTMLPurifier_HTMLModule.
+     * @param $overload Boolean whether or not to overload previous modules.
+     *                  If this is not set, and you do overload a module,
+     *                  HTML Purifier will complain with a warning.
+     * @note This function will not call autoload, you must instantiate
+     *       (and thus invoke) autoload outside the method.
+     * @note If a string is passed as a module name, different variants
+     *       will be tested in this order:
+     *          - Check for HTMLPurifier_HTMLModule_$name
+     *          - Check all prefixes with $name in order they were added
+     *          - Check for literal object name
+     *          - Throw fatal error
+     *       If your object name collides with an internal class, specify
+     *       your module manually. All modules must have been included
+     *       externally: registerModule will not perform inclusions for you!
+     */
+    public function registerModule($module, $overload = false)
+    {
+        if (is_string($module)) {
+            // attempt to load the module
+            $original_module = $module;
+            $ok = false;
+            foreach ($this->prefixes as $prefix) {
+                $module = $prefix . $original_module;
+                if (class_exists($module)) {
+                    $ok = true;
+                    break;
+                }
+            }
+            if (!$ok) {
+                $module = $original_module;
+                if (!class_exists($module)) {
+                    trigger_error(
+                        $original_module . ' module does not exist',
+                        E_USER_ERROR
+                    );
+                    return;
+                }
+            }
+            $module = new $module();
+        }
+        if (empty($module->name)) {
+            trigger_error('Module instance of ' . get_class($module) . ' must have name');
+            return;
+        }
+        if (!$overload && isset($this->registeredModules[$module->name])) {
+            trigger_error('Overloading ' . $module->name . ' without explicit overload parameter', E_USER_WARNING);
+        }
+        $this->registeredModules[$module->name] = $module;
+    }
+
+    /**
+     * Adds a module to the current doctype by first registering it,
+     * and then tacking it on to the active doctype
+     */
+    public function addModule($module)
+    {
+        $this->registerModule($module);
+        if (is_object($module)) {
+            $module = $module->name;
+        }
+        $this->userModules[] = $module;
+    }
+
+    /**
+     * Adds a class prefix that registerModule() will use to resolve a
+     * string name to a concrete class
+     */
+    public function addPrefix($prefix)
+    {
+        $this->prefixes[] = $prefix;
+    }
+
+    /**
+     * Performs processing on modules, after being called you may
+     * use getElement() and getElements()
+     * @param HTMLPurifier_Config $config
+     */
+    public function setup($config)
+    {
+        $this->trusted = $config->get('HTML.Trusted');
+
+        // generate
+        $this->doctype = $this->doctypes->make($config);
+        $modules = $this->doctype->modules;
+
+        // take out the default modules that aren't allowed
+        $lookup = $config->get('HTML.AllowedModules');
+        $special_cases = $config->get('HTML.CoreModules');
+
+        if (is_array($lookup)) {
+            foreach ($modules as $k => $m) {
+                if (isset($special_cases[$m])) {
+                    continue;
+                }
+                if (!isset($lookup[$m])) {
+                    unset($modules[$k]);
+                }
+            }
+        }
+
+        // custom modules
+        if ($config->get('HTML.Proprietary')) {
+            $modules[] = 'Proprietary';
+        }
+        if ($config->get('HTML.SafeObject')) {
+            $modules[] = 'SafeObject';
+        }
+        if ($config->get('HTML.SafeEmbed')) {
+            $modules[] = 'SafeEmbed';
+        }
+        if ($config->get('HTML.SafeScripting') !== array()) {
+            $modules[] = 'SafeScripting';
+        }
+        if ($config->get('HTML.Nofollow')) {
+            $modules[] = 'Nofollow';
+        }
+        if ($config->get('HTML.TargetBlank')) {
+            $modules[] = 'TargetBlank';
+        }
+
+        // merge in custom modules
+        $modules = array_merge($modules, $this->userModules);
+
+        foreach ($modules as $module) {
+            $this->processModule($module);
+            $this->modules[$module]->setup($config);
+        }
+
+        foreach ($this->doctype->tidyModules as $module) {
+            $this->processModule($module);
+            $this->modules[$module]->setup($config);
+        }
+
+        // prepare any injectors
+        foreach ($this->modules as $module) {
+            $n = array();
+            foreach ($module->info_injector as $injector) {
+                if (!is_object($injector)) {
+                    $class = "HTMLPurifier_Injector_$injector";
+                    $injector = new $class;
+                }
+                $n[$injector->name] = $injector;
+            }
+            $module->info_injector = $n;
+        }
+
+        // setup lookup table based on all valid modules
+        foreach ($this->modules as $module) {
+            foreach ($module->info as $name => $def) {
+                if (!isset($this->elementLookup[$name])) {
+                    $this->elementLookup[$name] = array();
+                }
+                $this->elementLookup[$name][] = $module->name;
+            }
+        }
+
+        // note the different choice
+        $this->contentSets = new HTMLPurifier_ContentSets(
+            // content set assembly deals with all possible modules,
+            // not just ones deemed to be "safe"
+            $this->modules
+        );
+        $this->attrCollections = new HTMLPurifier_AttrCollections(
+            $this->attrTypes,
+            // there is no way to directly disable a global attribute,
+            // but using AllowedAttributes or simply not including
+            // the module in your custom doctype should be sufficient
+            $this->modules
+        );
+    }
+
+    /**
+     * Takes a module and adds it to the active module collection,
+     * registering it if necessary.
+     */
+    public function processModule($module)
+    {
+        if (!isset($this->registeredModules[$module]) || is_object($module)) {
+            $this->registerModule($module);
+        }
+        $this->modules[$module] = $this->registeredModules[$module];
+    }
+
+    /**
+     * Retrieves merged element definitions.
+     * @return Array of HTMLPurifier_ElementDef
+     */
+    public function getElements()
+    {
+        $elements = array();
+        foreach ($this->modules as $module) {
+            if (!$this->trusted && !$module->safe) {
+                continue;
+            }
+            foreach ($module->info as $name => $v) {
+                if (isset($elements[$name])) {
+                    continue;
+                }
+                $elements[$name] = $this->getElement($name);
+            }
+        }
+
+        // remove dud elements, this happens when an element that
+        // appeared to be safe actually wasn't
+        foreach ($elements as $n => $v) {
+            if ($v === false) {
+                unset($elements[$n]);
+            }
+        }
+
+        return $elements;
+
+    }
+
+    /**
+     * Retrieves a single merged element definition
+     * @param string $name Name of element
+     * @param bool $trusted Boolean trusted overriding parameter: set to true
+     *                 if you want the full version of an element
+     * @return HTMLPurifier_ElementDef Merged HTMLPurifier_ElementDef
+     * @note You may notice that modules are getting iterated over twice (once
+     *       in getElements() and once here). This
+     *       is because
+     */
+    public function getElement($name, $trusted = null)
+    {
+        if (!isset($this->elementLookup[$name])) {
+            return false;
+        }
+
+        // setup global state variables
+        $def = false;
+        if ($trusted === null) {
+            $trusted = $this->trusted;
+        }
+
+        // iterate through each module that has registered itself to this
+        // element
+        foreach ($this->elementLookup[$name] as $module_name) {
+            $module = $this->modules[$module_name];
+
+            // refuse to create/merge from a module that is deemed unsafe--
+            // pretend the module doesn't exist--when trusted mode is not on.
+            if (!$trusted && !$module->safe) {
+                continue;
+            }
+
+            // clone is used because, ideally speaking, the original
+            // definition should not be modified. Usually, this will
+            // make no difference, but for consistency's sake
+            $new_def = clone $module->info[$name];
+
+            if (!$def && $new_def->standalone) {
+                $def = $new_def;
+            } elseif ($def) {
+                // This will occur even if $new_def is standalone. In practice,
+                // this will usually result in a full replacement.
+                $def->mergeIn($new_def);
+            } else {
+                // :TODO:
+                // non-standalone definitions that don't have a standalone
+                // to merge into could be deferred to the end
+                // HOWEVER, it is perfectly valid for a non-standalone
+                // definition to lack a standalone definition, even
+                // after all processing: this allows us to safely
+                // specify extra attributes for elements that may not be
+                // enabled all in one place.  In particular, this might
+                // be the case for trusted elements.  WARNING: care must
+                // be taken that the /extra/ definitions are all safe.
+                continue;
+            }
+
+            // attribute value expansions
+            $this->attrCollections->performInclusions($def->attr);
+            $this->attrCollections->expandIdentifiers($def->attr, $this->attrTypes);
+
+            // descendants_are_inline, for ChildDef_Chameleon
+            if (is_string($def->content_model) &&
+                strpos($def->content_model, 'Inline') !== false) {
+                if ($name != 'del' && $name != 'ins') {
+                    // this is for you, ins/del
+                    $def->descendants_are_inline = true;
+                }
+            }
+
+            $this->contentSets->generateChildDef($def, $module);
+        }
+
+        // This can occur if there is a blank definition, but no base to
+        // mix it in with
+        if (!$def) {
+            return false;
+        }
+
+        // add information on required attributes
+        foreach ($def->attr as $attr_name => $attr_def) {
+            if ($attr_def->required) {
+                $def->required_attr[] = $attr_name;
+            }
+        }
+        return $def;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/IDAccumulator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/IDAccumulator.php
new file mode 100644
index 0000000..65c902c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/IDAccumulator.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * Component of HTMLPurifier_AttrContext that accumulates IDs to prevent dupes
+ * @note In Slashdot-speak, dupe means duplicate.
+ * @note The default constructor does not accept $config or $context objects:
+ *       use must use the static build() factory method to perform initialization.
+ */
+class HTMLPurifier_IDAccumulator
+{
+
+    /**
+     * Lookup table of IDs we've accumulated.
+     * @public
+     */
+    public $ids = array();
+
+    /**
+     * Builds an IDAccumulator, also initializing the default blacklist
+     * @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config
+     * @param HTMLPurifier_Context $context Instance of HTMLPurifier_Context
+     * @return HTMLPurifier_IDAccumulator Fully initialized HTMLPurifier_IDAccumulator
+     */
+    public static function build($config, $context)
+    {
+        $id_accumulator = new HTMLPurifier_IDAccumulator();
+        $id_accumulator->load($config->get('Attr.IDBlacklist'));
+        return $id_accumulator;
+    }
+
+    /**
+     * Add an ID to the lookup table.
+     * @param string $id ID to be added.
+     * @return bool status, true if success, false if there's a dupe
+     */
+    public function add($id)
+    {
+        if (isset($this->ids[$id])) {
+            return false;
+        }
+        return $this->ids[$id] = true;
+    }
+
+    /**
+     * Load a list of IDs into the lookup table
+     * @param $array_of_ids Array of IDs to load
+     * @note This function doesn't care about duplicates
+     */
+    public function load($array_of_ids)
+    {
+        foreach ($array_of_ids as $id) {
+            $this->ids[$id] = true;
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector.php
new file mode 100644
index 0000000..5060eef
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector.php
@@ -0,0 +1,281 @@
+<?php
+
+/**
+ * Injects tokens into the document while parsing for well-formedness.
+ * This enables "formatter-like" functionality such as auto-paragraphing,
+ * smiley-ification and linkification to take place.
+ *
+ * A note on how handlers create changes; this is done by assigning a new
+ * value to the $token reference. These values can take a variety of forms and
+ * are best described HTMLPurifier_Strategy_MakeWellFormed->processToken()
+ * documentation.
+ *
+ * @todo Allow injectors to request a re-run on their output. This
+ *       would help if an operation is recursive.
+ */
+abstract class HTMLPurifier_Injector
+{
+
+    /**
+     * Advisory name of injector, this is for friendly error messages.
+     * @type string
+     */
+    public $name;
+
+    /**
+     * @type HTMLPurifier_HTMLDefinition
+     */
+    protected $htmlDefinition;
+
+    /**
+     * Reference to CurrentNesting variable in Context. This is an array
+     * list of tokens that we are currently "inside"
+     * @type array
+     */
+    protected $currentNesting;
+
+    /**
+     * Reference to current token.
+     * @type HTMLPurifier_Token
+     */
+    protected $currentToken;
+
+    /**
+     * Reference to InputZipper variable in Context.
+     * @type HTMLPurifier_Zipper
+     */
+    protected $inputZipper;
+
+    /**
+     * Array of elements and attributes this injector creates and therefore
+     * need to be allowed by the definition. Takes form of
+     * array('element' => array('attr', 'attr2'), 'element2')
+     * @type array
+     */
+    public $needed = array();
+
+    /**
+     * Number of elements to rewind backwards (relative).
+     * @type bool|int
+     */
+    protected $rewindOffset = false;
+
+    /**
+     * Rewind to a spot to re-perform processing. This is useful if you
+     * deleted a node, and now need to see if this change affected any
+     * earlier nodes. Rewinding does not affect other injectors, and can
+     * result in infinite loops if not used carefully.
+     * @param bool|int $offset
+     * @warning HTML Purifier will prevent you from fast-forwarding with this
+     *          function.
+     */
+    public function rewindOffset($offset)
+    {
+        $this->rewindOffset = $offset;
+    }
+
+    /**
+     * Retrieves rewind offset, and then unsets it.
+     * @return bool|int
+     */
+    public function getRewindOffset()
+    {
+        $r = $this->rewindOffset;
+        $this->rewindOffset = false;
+        return $r;
+    }
+
+    /**
+     * Prepares the injector by giving it the config and context objects:
+     * this allows references to important variables to be made within
+     * the injector. This function also checks if the HTML environment
+     * will work with the Injector (see checkNeeded()).
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool|string Boolean false if success, string of missing needed element/attribute if failure
+     */
+    public function prepare($config, $context)
+    {
+        $this->htmlDefinition = $config->getHTMLDefinition();
+        // Even though this might fail, some unit tests ignore this and
+        // still test checkNeeded, so be careful. Maybe get rid of that
+        // dependency.
+        $result = $this->checkNeeded($config);
+        if ($result !== false) {
+            return $result;
+        }
+        $this->currentNesting =& $context->get('CurrentNesting');
+        $this->currentToken   =& $context->get('CurrentToken');
+        $this->inputZipper    =& $context->get('InputZipper');
+        return false;
+    }
+
+    /**
+     * This function checks if the HTML environment
+     * will work with the Injector: if p tags are not allowed, the
+     * Auto-Paragraphing injector should not be enabled.
+     * @param HTMLPurifier_Config $config
+     * @return bool|string Boolean false if success, string of missing needed element/attribute if failure
+     */
+    public function checkNeeded($config)
+    {
+        $def = $config->getHTMLDefinition();
+        foreach ($this->needed as $element => $attributes) {
+            if (is_int($element)) {
+                $element = $attributes;
+            }
+            if (!isset($def->info[$element])) {
+                return $element;
+            }
+            if (!is_array($attributes)) {
+                continue;
+            }
+            foreach ($attributes as $name) {
+                if (!isset($def->info[$element]->attr[$name])) {
+                    return "$element.$name";
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Tests if the context node allows a certain element
+     * @param string $name Name of element to test for
+     * @return bool True if element is allowed, false if it is not
+     */
+    public function allowsElement($name)
+    {
+        if (!empty($this->currentNesting)) {
+            $parent_token = array_pop($this->currentNesting);
+            $this->currentNesting[] = $parent_token;
+            $parent = $this->htmlDefinition->info[$parent_token->name];
+        } else {
+            $parent = $this->htmlDefinition->info_parent_def;
+        }
+        if (!isset($parent->child->elements[$name]) || isset($parent->excludes[$name])) {
+            return false;
+        }
+        // check for exclusion
+        for ($i = count($this->currentNesting) - 2; $i >= 0; $i--) {
+            $node = $this->currentNesting[$i];
+            $def  = $this->htmlDefinition->info[$node->name];
+            if (isset($def->excludes[$name])) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Iterator function, which starts with the next token and continues until
+     * you reach the end of the input tokens.
+     * @warning Please prevent previous references from interfering with this
+     *          functions by setting $i = null beforehand!
+     * @param int $i Current integer index variable for inputTokens
+     * @param HTMLPurifier_Token $current Current token variable.
+     *          Do NOT use $token, as that variable is also a reference
+     * @return bool
+     */
+    protected function forward(&$i, &$current)
+    {
+        if ($i === null) {
+            $i = count($this->inputZipper->back) - 1;
+        } else {
+            $i--;
+        }
+        if ($i < 0) {
+            return false;
+        }
+        $current = $this->inputZipper->back[$i];
+        return true;
+    }
+
+    /**
+     * Similar to _forward, but accepts a third parameter $nesting (which
+     * should be initialized at 0) and stops when we hit the end tag
+     * for the node $this->inputIndex starts in.
+     * @param int $i Current integer index variable for inputTokens
+     * @param HTMLPurifier_Token $current Current token variable.
+     *          Do NOT use $token, as that variable is also a reference
+     * @param int $nesting
+     * @return bool
+     */
+    protected function forwardUntilEndToken(&$i, &$current, &$nesting)
+    {
+        $result = $this->forward($i, $current);
+        if (!$result) {
+            return false;
+        }
+        if ($nesting === null) {
+            $nesting = 0;
+        }
+        if ($current instanceof HTMLPurifier_Token_Start) {
+            $nesting++;
+        } elseif ($current instanceof HTMLPurifier_Token_End) {
+            if ($nesting <= 0) {
+                return false;
+            }
+            $nesting--;
+        }
+        return true;
+    }
+
+    /**
+     * Iterator function, starts with the previous token and continues until
+     * you reach the beginning of input tokens.
+     * @warning Please prevent previous references from interfering with this
+     *          functions by setting $i = null beforehand!
+     * @param int $i Current integer index variable for inputTokens
+     * @param HTMLPurifier_Token $current Current token variable.
+     *          Do NOT use $token, as that variable is also a reference
+     * @return bool
+     */
+    protected function backward(&$i, &$current)
+    {
+        if ($i === null) {
+            $i = count($this->inputZipper->front) - 1;
+        } else {
+            $i--;
+        }
+        if ($i < 0) {
+            return false;
+        }
+        $current = $this->inputZipper->front[$i];
+        return true;
+    }
+
+    /**
+     * Handler that is called when a text token is processed
+     */
+    public function handleText(&$token)
+    {
+    }
+
+    /**
+     * Handler that is called when a start or empty token is processed
+     */
+    public function handleElement(&$token)
+    {
+    }
+
+    /**
+     * Handler that is called when an end token is processed
+     */
+    public function handleEnd(&$token)
+    {
+        $this->notifyEnd($token);
+    }
+
+    /**
+     * Notifier that is called when an end token is processed
+     * @param HTMLPurifier_Token $token Current token variable.
+     * @note This differs from handlers in that the token is read-only
+     * @deprecated
+     */
+    public function notifyEnd($token)
+    {
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/AutoParagraph.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/AutoParagraph.php
new file mode 100644
index 0000000..4afdd12
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/AutoParagraph.php
@@ -0,0 +1,356 @@
+<?php
+
+/**
+ * Injector that auto paragraphs text in the root node based on
+ * double-spacing.
+ * @todo Ensure all states are unit tested, including variations as well.
+ * @todo Make a graph of the flow control for this Injector.
+ */
+class HTMLPurifier_Injector_AutoParagraph extends HTMLPurifier_Injector
+{
+    /**
+     * @type string
+     */
+    public $name = 'AutoParagraph';
+
+    /**
+     * @type array
+     */
+    public $needed = array('p');
+
+    /**
+     * @return HTMLPurifier_Token_Start
+     */
+    private function _pStart()
+    {
+        $par = new HTMLPurifier_Token_Start('p');
+        $par->armor['MakeWellFormed_TagClosedError'] = true;
+        return $par;
+    }
+
+    /**
+     * @param HTMLPurifier_Token_Text $token
+     */
+    public function handleText(&$token)
+    {
+        $text = $token->data;
+        // Does the current parent allow <p> tags?
+        if ($this->allowsElement('p')) {
+            if (empty($this->currentNesting) || strpos($text, "\n\n") !== false) {
+                // Note that we have differing behavior when dealing with text
+                // in the anonymous root node, or a node inside the document.
+                // If the text as a double-newline, the treatment is the same;
+                // if it doesn't, see the next if-block if you're in the document.
+
+                $i = $nesting = null;
+                if (!$this->forwardUntilEndToken($i, $current, $nesting) && $token->is_whitespace) {
+                    // State 1.1: ...    ^ (whitespace, then document end)
+                    //               ----
+                    // This is a degenerate case
+                } else {
+                    if (!$token->is_whitespace || $this->_isInline($current)) {
+                        // State 1.2: PAR1
+                        //            ----
+
+                        // State 1.3: PAR1\n\nPAR2
+                        //            ------------
+
+                        // State 1.4: <div>PAR1\n\nPAR2 (see State 2)
+                        //                 ------------
+                        $token = array($this->_pStart());
+                        $this->_splitText($text, $token);
+                    } else {
+                        // State 1.5: \n<hr />
+                        //            --
+                    }
+                }
+            } else {
+                // State 2:   <div>PAR1... (similar to 1.4)
+                //                 ----
+
+                // We're in an element that allows paragraph tags, but we're not
+                // sure if we're going to need them.
+                if ($this->_pLookAhead()) {
+                    // State 2.1: <div>PAR1<b>PAR1\n\nPAR2
+                    //                 ----
+                    // Note: This will always be the first child, since any
+                    // previous inline element would have triggered this very
+                    // same routine, and found the double newline. One possible
+                    // exception would be a comment.
+                    $token = array($this->_pStart(), $token);
+                } else {
+                    // State 2.2.1: <div>PAR1<div>
+                    //                   ----
+
+                    // State 2.2.2: <div>PAR1<b>PAR1</b></div>
+                    //                   ----
+                }
+            }
+            // Is the current parent a <p> tag?
+        } elseif (!empty($this->currentNesting) &&
+            $this->currentNesting[count($this->currentNesting) - 1]->name == 'p') {
+            // State 3.1: ...<p>PAR1
+            //                  ----
+
+            // State 3.2: ...<p>PAR1\n\nPAR2
+            //                  ------------
+            $token = array();
+            $this->_splitText($text, $token);
+            // Abort!
+        } else {
+            // State 4.1: ...<b>PAR1
+            //                  ----
+
+            // State 4.2: ...<b>PAR1\n\nPAR2
+            //                  ------------
+        }
+    }
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleElement(&$token)
+    {
+        // We don't have to check if we're already in a <p> tag for block
+        // tokens, because the tag would have been autoclosed by MakeWellFormed.
+        if ($this->allowsElement('p')) {
+            if (!empty($this->currentNesting)) {
+                if ($this->_isInline($token)) {
+                    // State 1: <div>...<b>
+                    //                  ---
+                    // Check if this token is adjacent to the parent token
+                    // (seek backwards until token isn't whitespace)
+                    $i = null;
+                    $this->backward($i, $prev);
+
+                    if (!$prev instanceof HTMLPurifier_Token_Start) {
+                        // Token wasn't adjacent
+                        if ($prev instanceof HTMLPurifier_Token_Text &&
+                            substr($prev->data, -2) === "\n\n"
+                        ) {
+                            // State 1.1.4: <div><p>PAR1</p>\n\n<b>
+                            //                                  ---
+                            // Quite frankly, this should be handled by splitText
+                            $token = array($this->_pStart(), $token);
+                        } else {
+                            // State 1.1.1: <div><p>PAR1</p><b>
+                            //                              ---
+                            // State 1.1.2: <div><br /><b>
+                            //                         ---
+                            // State 1.1.3: <div>PAR<b>
+                            //                      ---
+                        }
+                    } else {
+                        // State 1.2.1: <div><b>
+                        //                   ---
+                        // Lookahead to see if <p> is needed.
+                        if ($this->_pLookAhead()) {
+                            // State 1.3.1: <div><b>PAR1\n\nPAR2
+                            //                   ---
+                            $token = array($this->_pStart(), $token);
+                        } else {
+                            // State 1.3.2: <div><b>PAR1</b></div>
+                            //                   ---
+
+                            // State 1.3.3: <div><b>PAR1</b><div></div>\n\n</div>
+                            //                   ---
+                        }
+                    }
+                } else {
+                    // State 2.3: ...<div>
+                    //               -----
+                }
+            } else {
+                if ($this->_isInline($token)) {
+                    // State 3.1: <b>
+                    //            ---
+                    // This is where the {p} tag is inserted, not reflected in
+                    // inputTokens yet, however.
+                    $token = array($this->_pStart(), $token);
+                } else {
+                    // State 3.2: <div>
+                    //            -----
+                }
+
+                $i = null;
+                if ($this->backward($i, $prev)) {
+                    if (!$prev instanceof HTMLPurifier_Token_Text) {
+                        // State 3.1.1: ...</p>{p}<b>
+                        //                        ---
+                        // State 3.2.1: ...</p><div>
+                        //                     -----
+                        if (!is_array($token)) {
+                            $token = array($token);
+                        }
+                        array_unshift($token, new HTMLPurifier_Token_Text("\n\n"));
+                    } else {
+                        // State 3.1.2: ...</p>\n\n{p}<b>
+                        //                            ---
+                        // State 3.2.2: ...</p>\n\n<div>
+                        //                         -----
+                        // Note: PAR<ELEM> cannot occur because PAR would have been
+                        // wrapped in <p> tags.
+                    }
+                }
+            }
+        } else {
+            // State 2.2: <ul><li>
+            //                ----
+            // State 2.4: <p><b>
+            //               ---
+        }
+    }
+
+    /**
+     * Splits up a text in paragraph tokens and appends them
+     * to the result stream that will replace the original
+     * @param string $data String text data that will be processed
+     *    into paragraphs
+     * @param HTMLPurifier_Token[] $result Reference to array of tokens that the
+     *    tags will be appended onto
+     */
+    private function _splitText($data, &$result)
+    {
+        $raw_paragraphs = explode("\n\n", $data);
+        $paragraphs = array(); // without empty paragraphs
+        $needs_start = false;
+        $needs_end = false;
+
+        $c = count($raw_paragraphs);
+        if ($c == 1) {
+            // There were no double-newlines, abort quickly. In theory this
+            // should never happen.
+            $result[] = new HTMLPurifier_Token_Text($data);
+            return;
+        }
+        for ($i = 0; $i < $c; $i++) {
+            $par = $raw_paragraphs[$i];
+            if (trim($par) !== '') {
+                $paragraphs[] = $par;
+            } else {
+                if ($i == 0) {
+                    // Double newline at the front
+                    if (empty($result)) {
+                        // The empty result indicates that the AutoParagraph
+                        // injector did not add any start paragraph tokens.
+                        // This means that we have been in a paragraph for
+                        // a while, and the newline means we should start a new one.
+                        $result[] = new HTMLPurifier_Token_End('p');
+                        $result[] = new HTMLPurifier_Token_Text("\n\n");
+                        // However, the start token should only be added if
+                        // there is more processing to be done (i.e. there are
+                        // real paragraphs in here). If there are none, the
+                        // next start paragraph tag will be handled by the
+                        // next call to the injector
+                        $needs_start = true;
+                    } else {
+                        // We just started a new paragraph!
+                        // Reinstate a double-newline for presentation's sake, since
+                        // it was in the source code.
+                        array_unshift($result, new HTMLPurifier_Token_Text("\n\n"));
+                    }
+                } elseif ($i + 1 == $c) {
+                    // Double newline at the end
+                    // There should be a trailing </p> when we're finally done.
+                    $needs_end = true;
+                }
+            }
+        }
+
+        // Check if this was just a giant blob of whitespace. Move this earlier,
+        // perhaps?
+        if (empty($paragraphs)) {
+            return;
+        }
+
+        // Add the start tag indicated by \n\n at the beginning of $data
+        if ($needs_start) {
+            $result[] = $this->_pStart();
+        }
+
+        // Append the paragraphs onto the result
+        foreach ($paragraphs as $par) {
+            $result[] = new HTMLPurifier_Token_Text($par);
+            $result[] = new HTMLPurifier_Token_End('p');
+            $result[] = new HTMLPurifier_Token_Text("\n\n");
+            $result[] = $this->_pStart();
+        }
+
+        // Remove trailing start token; Injector will handle this later if
+        // it was indeed needed. This prevents from needing to do a lookahead,
+        // at the cost of a lookbehind later.
+        array_pop($result);
+
+        // If there is no need for an end tag, remove all of it and let
+        // MakeWellFormed close it later.
+        if (!$needs_end) {
+            array_pop($result); // removes \n\n
+            array_pop($result); // removes </p>
+        }
+    }
+
+    /**
+     * Returns true if passed token is inline (and, ergo, allowed in
+     * paragraph tags)
+     * @param HTMLPurifier_Token $token
+     * @return bool
+     */
+    private function _isInline($token)
+    {
+        return isset($this->htmlDefinition->info['p']->child->elements[$token->name]);
+    }
+
+    /**
+     * Looks ahead in the token list and determines whether or not we need
+     * to insert a <p> tag.
+     * @return bool
+     */
+    private function _pLookAhead()
+    {
+        if ($this->currentToken instanceof HTMLPurifier_Token_Start) {
+            $nesting = 1;
+        } else {
+            $nesting = 0;
+        }
+        $ok = false;
+        $i = null;
+        while ($this->forwardUntilEndToken($i, $current, $nesting)) {
+            $result = $this->_checkNeedsP($current);
+            if ($result !== null) {
+                $ok = $result;
+                break;
+            }
+        }
+        return $ok;
+    }
+
+    /**
+     * Determines if a particular token requires an earlier inline token
+     * to get a paragraph. This should be used with _forwardUntilEndToken
+     * @param HTMLPurifier_Token $current
+     * @return bool
+     */
+    private function _checkNeedsP($current)
+    {
+        if ($current instanceof HTMLPurifier_Token_Start) {
+            if (!$this->_isInline($current)) {
+                // <div>PAR1<div>
+                //      ----
+                // Terminate early, since we hit a block element
+                return false;
+            }
+        } elseif ($current instanceof HTMLPurifier_Token_Text) {
+            if (strpos($current->data, "\n\n") !== false) {
+                // <div>PAR1<b>PAR1\n\nPAR2
+                //      ----
+                return true;
+            } else {
+                // <div>PAR1<b>PAR1...
+                //      ----
+            }
+        }
+        return null;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/DisplayLinkURI.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/DisplayLinkURI.php
new file mode 100644
index 0000000..c19b1bc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/DisplayLinkURI.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * Injector that displays the URL of an anchor instead of linking to it, in addition to showing the text of the link.
+ */
+class HTMLPurifier_Injector_DisplayLinkURI extends HTMLPurifier_Injector
+{
+    /**
+     * @type string
+     */
+    public $name = 'DisplayLinkURI';
+
+    /**
+     * @type array
+     */
+    public $needed = array('a');
+
+    /**
+     * @param $token
+     */
+    public function handleElement(&$token)
+    {
+    }
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleEnd(&$token)
+    {
+        if (isset($token->start->attr['href'])) {
+            $url = $token->start->attr['href'];
+            unset($token->start->attr['href']);
+            $token = array($token, new HTMLPurifier_Token_Text(" ($url)"));
+        } else {
+            // nothing to display
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/Linkify.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/Linkify.php
new file mode 100644
index 0000000..069708c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/Linkify.php
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * Injector that converts http, https and ftp text URLs to actual links.
+ */
+class HTMLPurifier_Injector_Linkify extends HTMLPurifier_Injector
+{
+    /**
+     * @type string
+     */
+    public $name = 'Linkify';
+
+    /**
+     * @type array
+     */
+    public $needed = array('a' => array('href'));
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleText(&$token)
+    {
+        if (!$this->allowsElement('a')) {
+            return;
+        }
+
+        if (strpos($token->data, '://') === false) {
+            // our really quick heuristic failed, abort
+            // this may not work so well if we want to match things like
+            // "google.com", but then again, most people don't
+            return;
+        }
+
+        // there is/are URL(s). Let's split the string:
+        // Note: this regex is extremely permissive
+        $bits = preg_split('#((?:https?|ftp)://[^\s\'",<>()]+)#Su', $token->data, -1, PREG_SPLIT_DELIM_CAPTURE);
+
+
+        $token = array();
+
+        // $i = index
+        // $c = count
+        // $l = is link
+        for ($i = 0, $c = count($bits), $l = false; $i < $c; $i++, $l = !$l) {
+            if (!$l) {
+                if ($bits[$i] === '') {
+                    continue;
+                }
+                $token[] = new HTMLPurifier_Token_Text($bits[$i]);
+            } else {
+                $token[] = new HTMLPurifier_Token_Start('a', array('href' => $bits[$i]));
+                $token[] = new HTMLPurifier_Token_Text($bits[$i]);
+                $token[] = new HTMLPurifier_Token_End('a');
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/PurifierLinkify.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/PurifierLinkify.php
new file mode 100644
index 0000000..cb9046f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/PurifierLinkify.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * Injector that converts configuration directive syntax %Namespace.Directive
+ * to links
+ */
+class HTMLPurifier_Injector_PurifierLinkify extends HTMLPurifier_Injector
+{
+    /**
+     * @type string
+     */
+    public $name = 'PurifierLinkify';
+
+    /**
+     * @type string
+     */
+    public $docURL;
+
+    /**
+     * @type array
+     */
+    public $needed = array('a' => array('href'));
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public function prepare($config, $context)
+    {
+        $this->docURL = $config->get('AutoFormat.PurifierLinkify.DocURL');
+        return parent::prepare($config, $context);
+    }
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleText(&$token)
+    {
+        if (!$this->allowsElement('a')) {
+            return;
+        }
+        if (strpos($token->data, '%') === false) {
+            return;
+        }
+
+        $bits = preg_split('#%([a-z0-9]+\.[a-z0-9]+)#Si', $token->data, -1, PREG_SPLIT_DELIM_CAPTURE);
+        $token = array();
+
+        // $i = index
+        // $c = count
+        // $l = is link
+        for ($i = 0, $c = count($bits), $l = false; $i < $c; $i++, $l = !$l) {
+            if (!$l) {
+                if ($bits[$i] === '') {
+                    continue;
+                }
+                $token[] = new HTMLPurifier_Token_Text($bits[$i]);
+            } else {
+                $token[] = new HTMLPurifier_Token_Start(
+                    'a',
+                    array('href' => str_replace('%s', $bits[$i], $this->docURL))
+                );
+                $token[] = new HTMLPurifier_Token_Text('%' . $bits[$i]);
+                $token[] = new HTMLPurifier_Token_End('a');
+            }
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/RemoveEmpty.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/RemoveEmpty.php
new file mode 100644
index 0000000..cd88572
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/RemoveEmpty.php
@@ -0,0 +1,101 @@
+<?php
+
+class HTMLPurifier_Injector_RemoveEmpty extends HTMLPurifier_Injector
+{
+    /**
+     * @type HTMLPurifier_Context
+     */
+    private $context;
+
+    /**
+     * @type HTMLPurifier_Config
+     */
+    private $config;
+
+    /**
+     * @type HTMLPurifier_AttrValidator
+     */
+    private $attrValidator;
+
+    /**
+     * @type bool
+     */
+    private $removeNbsp;
+
+    /**
+     * @type bool
+     */
+    private $removeNbspExceptions;
+
+    /**
+     * @type array
+     * TODO: make me configurable
+     */
+    private $_exclude = array('colgroup' => 1, 'th' => 1, 'td' => 1, 'iframe' => 1);
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return void
+     */
+    public function prepare($config, $context)
+    {
+        parent::prepare($config, $context);
+        $this->config = $config;
+        $this->context = $context;
+        $this->removeNbsp = $config->get('AutoFormat.RemoveEmpty.RemoveNbsp');
+        $this->removeNbspExceptions = $config->get('AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions');
+        $this->attrValidator = new HTMLPurifier_AttrValidator();
+    }
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleElement(&$token)
+    {
+        if (!$token instanceof HTMLPurifier_Token_Start) {
+            return;
+        }
+        $next = false;
+        $deleted = 1; // the current tag
+        for ($i = count($this->inputZipper->back) - 1; $i >= 0; $i--, $deleted++) {
+            $next = $this->inputZipper->back[$i];
+            if ($next instanceof HTMLPurifier_Token_Text) {
+                if ($next->is_whitespace) {
+                    continue;
+                }
+                if ($this->removeNbsp && !isset($this->removeNbspExceptions[$token->name])) {
+                    $plain = str_replace("\xC2\xA0", "", $next->data);
+                    $isWsOrNbsp = $plain === '' || ctype_space($plain);
+                    if ($isWsOrNbsp) {
+                        continue;
+                    }
+                }
+            }
+            break;
+        }
+        if (!$next || ($next instanceof HTMLPurifier_Token_End && $next->name == $token->name)) {
+            if (isset($this->_exclude[$token->name])) {
+                return;
+            }
+            $this->attrValidator->validateToken($token, $this->config, $this->context);
+            $token->armor['ValidateAttributes'] = true;
+            if (isset($token->attr['id']) || isset($token->attr['name'])) {
+                return;
+            }
+            $token = $deleted + 1;
+            for ($b = 0, $c = count($this->inputZipper->front); $b < $c; $b++) {
+                $prev = $this->inputZipper->front[$b];
+                if ($prev instanceof HTMLPurifier_Token_Text && $prev->is_whitespace) {
+                    continue;
+                }
+                break;
+            }
+            // This is safe because we removed the token that triggered this.
+            $this->rewindOffset($b+$deleted);
+            return;
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
new file mode 100644
index 0000000..9ee7aa8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * Injector that removes spans with no attributes
+ */
+class HTMLPurifier_Injector_RemoveSpansWithoutAttributes extends HTMLPurifier_Injector
+{
+    /**
+     * @type string
+     */
+    public $name = 'RemoveSpansWithoutAttributes';
+
+    /**
+     * @type array
+     */
+    public $needed = array('span');
+
+    /**
+     * @type HTMLPurifier_AttrValidator
+     */
+    private $attrValidator;
+
+    /**
+     * Used by AttrValidator.
+     * @type HTMLPurifier_Config
+     */
+    private $config;
+
+    /**
+     * @type HTMLPurifier_Context
+     */
+    private $context;
+
+    public function prepare($config, $context)
+    {
+        $this->attrValidator = new HTMLPurifier_AttrValidator();
+        $this->config = $config;
+        $this->context = $context;
+        return parent::prepare($config, $context);
+    }
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleElement(&$token)
+    {
+        if ($token->name !== 'span' || !$token instanceof HTMLPurifier_Token_Start) {
+            return;
+        }
+
+        // We need to validate the attributes now since this doesn't normally
+        // happen until after MakeWellFormed. If all the attributes are removed
+        // the span needs to be removed too.
+        $this->attrValidator->validateToken($token, $this->config, $this->context);
+        $token->armor['ValidateAttributes'] = true;
+
+        if (!empty($token->attr)) {
+            return;
+        }
+
+        $nesting = 0;
+        while ($this->forwardUntilEndToken($i, $current, $nesting)) {
+        }
+
+        if ($current instanceof HTMLPurifier_Token_End && $current->name === 'span') {
+            // Mark closing span tag for deletion
+            $current->markForDeletion = true;
+            // Delete open span tag
+            $token = false;
+        }
+    }
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleEnd(&$token)
+    {
+        if ($token->markForDeletion) {
+            $token = false;
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/SafeObject.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/SafeObject.php
new file mode 100644
index 0000000..3d17e07
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Injector/SafeObject.php
@@ -0,0 +1,121 @@
+<?php
+
+/**
+ * Adds important param elements to inside of object in order to make
+ * things safe.
+ */
+class HTMLPurifier_Injector_SafeObject extends HTMLPurifier_Injector
+{
+    /**
+     * @type string
+     */
+    public $name = 'SafeObject';
+
+    /**
+     * @type array
+     */
+    public $needed = array('object', 'param');
+
+    /**
+     * @type array
+     */
+    protected $objectStack = array();
+
+    /**
+     * @type array
+     */
+    protected $paramStack = array();
+
+    /**
+     * Keep this synchronized with AttrTransform/SafeParam.php.
+     * @type array
+     */
+    protected $addParam = array(
+        'allowScriptAccess' => 'never',
+        'allowNetworking' => 'internal',
+    );
+
+    /**
+     * @type array
+     */
+    protected $allowedParam = array(
+        'wmode' => true,
+        'movie' => true,
+        'flashvars' => true,
+        'src' => true,
+        'allowFullScreen' => true, // if omitted, assume to be 'false'
+    );
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return void
+     */
+    public function prepare($config, $context)
+    {
+        parent::prepare($config, $context);
+    }
+
+    /**
+     * @param HTMLPurifier_Token $token
+     */
+    public function handleElement(&$token)
+    {
+        if ($token->name == 'object') {
+            $this->objectStack[] = $token;
+            $this->paramStack[] = array();
+            $new = array($token);
+            foreach ($this->addParam as $name => $value) {
+                $new[] = new HTMLPurifier_Token_Empty('param', array('name' => $name, 'value' => $value));
+            }
+            $token = $new;
+        } elseif ($token->name == 'param') {
+            $nest = count($this->currentNesting) - 1;
+            if ($nest >= 0 && $this->currentNesting[$nest]->name === 'object') {
+                $i = count($this->objectStack) - 1;
+                if (!isset($token->attr['name'])) {
+                    $token = false;
+                    return;
+                }
+                $n = $token->attr['name'];
+                // We need this fix because YouTube doesn't supply a data
+                // attribute, which we need if a type is specified. This is
+                // *very* Flash specific.
+                if (!isset($this->objectStack[$i]->attr['data']) &&
+                    ($token->attr['name'] == 'movie' || $token->attr['name'] == 'src')
+                ) {
+                    $this->objectStack[$i]->attr['data'] = $token->attr['value'];
+                }
+                // Check if the parameter is the correct value but has not
+                // already been added
+                if (!isset($this->paramStack[$i][$n]) &&
+                    isset($this->addParam[$n]) &&
+                    $token->attr['name'] === $this->addParam[$n]) {
+                    // keep token, and add to param stack
+                    $this->paramStack[$i][$n] = true;
+                } elseif (isset($this->allowedParam[$n])) {
+                    // keep token, don't do anything to it
+                    // (could possibly check for duplicates here)
+                } else {
+                    $token = false;
+                }
+            } else {
+                // not directly inside an object, DENY!
+                $token = false;
+            }
+        }
+    }
+
+    public function handleEnd(&$token)
+    {
+        // This is the WRONG way of handling the object and param stacks;
+        // we should be inserting them directly on the relevant object tokens
+        // so that the global stack handling handles it.
+        if ($token->name == 'object') {
+            array_pop($this->objectStack);
+            array_pop($this->paramStack);
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language.php
new file mode 100644
index 0000000..65277dd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language.php
@@ -0,0 +1,204 @@
+<?php
+
+/**
+ * Represents a language and defines localizable string formatting and
+ * other functions, as well as the localized messages for HTML Purifier.
+ */
+class HTMLPurifier_Language
+{
+
+    /**
+     * ISO 639 language code of language. Prefers shortest possible version.
+     * @type string
+     */
+    public $code = 'en';
+
+    /**
+     * Fallback language code.
+     * @type bool|string
+     */
+    public $fallback = false;
+
+    /**
+     * Array of localizable messages.
+     * @type array
+     */
+    public $messages = array();
+
+    /**
+     * Array of localizable error codes.
+     * @type array
+     */
+    public $errorNames = array();
+
+    /**
+     * True if no message file was found for this language, so English
+     * is being used instead. Check this if you'd like to notify the
+     * user that they've used a non-supported language.
+     * @type bool
+     */
+    public $error = false;
+
+    /**
+     * Has the language object been loaded yet?
+     * @type bool
+     * @todo Make it private, fix usage in HTMLPurifier_LanguageTest
+     */
+    public $_loaded = false;
+
+    /**
+     * @type HTMLPurifier_Config
+     */
+    protected $config;
+
+    /**
+     * @type HTMLPurifier_Context
+     */
+    protected $context;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     */
+    public function __construct($config, $context)
+    {
+        $this->config  = $config;
+        $this->context = $context;
+    }
+
+    /**
+     * Loads language object with necessary info from factory cache
+     * @note This is a lazy loader
+     */
+    public function load()
+    {
+        if ($this->_loaded) {
+            return;
+        }
+        $factory = HTMLPurifier_LanguageFactory::instance();
+        $factory->loadLanguage($this->code);
+        foreach ($factory->keys as $key) {
+            $this->$key = $factory->cache[$this->code][$key];
+        }
+        $this->_loaded = true;
+    }
+
+    /**
+     * Retrieves a localised message.
+     * @param string $key string identifier of message
+     * @return string localised message
+     */
+    public function getMessage($key)
+    {
+        if (!$this->_loaded) {
+            $this->load();
+        }
+        if (!isset($this->messages[$key])) {
+            return "[$key]";
+        }
+        return $this->messages[$key];
+    }
+
+    /**
+     * Retrieves a localised error name.
+     * @param int $int error number, corresponding to PHP's error reporting
+     * @return string localised message
+     */
+    public function getErrorName($int)
+    {
+        if (!$this->_loaded) {
+            $this->load();
+        }
+        if (!isset($this->errorNames[$int])) {
+            return "[Error: $int]";
+        }
+        return $this->errorNames[$int];
+    }
+
+    /**
+     * Converts an array list into a string readable representation
+     * @param array $array
+     * @return string
+     */
+    public function listify($array)
+    {
+        $sep      = $this->getMessage('Item separator');
+        $sep_last = $this->getMessage('Item separator last');
+        $ret = '';
+        for ($i = 0, $c = count($array); $i < $c; $i++) {
+            if ($i == 0) {
+            } elseif ($i + 1 < $c) {
+                $ret .= $sep;
+            } else {
+                $ret .= $sep_last;
+            }
+            $ret .= $array[$i];
+        }
+        return $ret;
+    }
+
+    /**
+     * Formats a localised message with passed parameters
+     * @param string $key string identifier of message
+     * @param array $args Parameters to substitute in
+     * @return string localised message
+     * @todo Implement conditionals? Right now, some messages make
+     *     reference to line numbers, but those aren't always available
+     */
+    public function formatMessage($key, $args = array())
+    {
+        if (!$this->_loaded) {
+            $this->load();
+        }
+        if (!isset($this->messages[$key])) {
+            return "[$key]";
+        }
+        $raw = $this->messages[$key];
+        $subst = array();
+        $generator = false;
+        foreach ($args as $i => $value) {
+            if (is_object($value)) {
+                if ($value instanceof HTMLPurifier_Token) {
+                    // factor this out some time
+                    if (!$generator) {
+                        $generator = $this->context->get('Generator');
+                    }
+                    if (isset($value->name)) {
+                        $subst['$'.$i.'.Name'] = $value->name;
+                    }
+                    if (isset($value->data)) {
+                        $subst['$'.$i.'.Data'] = $value->data;
+                    }
+                    $subst['$'.$i.'.Compact'] =
+                    $subst['$'.$i.'.Serialized'] = $generator->generateFromToken($value);
+                    // a more complex algorithm for compact representation
+                    // could be introduced for all types of tokens. This
+                    // may need to be factored out into a dedicated class
+                    if (!empty($value->attr)) {
+                        $stripped_token = clone $value;
+                        $stripped_token->attr = array();
+                        $subst['$'.$i.'.Compact'] = $generator->generateFromToken($stripped_token);
+                    }
+                    $subst['$'.$i.'.Line'] = $value->line ? $value->line : 'unknown';
+                }
+                continue;
+            } elseif (is_array($value)) {
+                $keys = array_keys($value);
+                if (array_keys($keys) === $keys) {
+                    // list
+                    $subst['$'.$i] = $this->listify($value);
+                } else {
+                    // associative array
+                    // no $i implementation yet, sorry
+                    $subst['$'.$i.'.Keys'] = $this->listify($keys);
+                    $subst['$'.$i.'.Values'] = $this->listify(array_values($value));
+                }
+                continue;
+            }
+            $subst['$' . $i] = $value;
+        }
+        return strtr($raw, $subst);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/classes/en-x-test.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/classes/en-x-test.php
new file mode 100644
index 0000000..8828f5c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/classes/en-x-test.php
@@ -0,0 +1,9 @@
+<?php
+
+// private class for unit testing
+
+class HTMLPurifier_Language_en_x_test extends HTMLPurifier_Language
+{
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en-x-test.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en-x-test.php
new file mode 100644
index 0000000..1c046f3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en-x-test.php
@@ -0,0 +1,11 @@
+<?php
+
+// private language message file for unit testing purposes
+
+$fallback = 'en';
+
+$messages = array(
+    'HTMLPurifier' => 'HTML Purifier X'
+);
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en-x-testmini.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en-x-testmini.php
new file mode 100644
index 0000000..806c83f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en-x-testmini.php
@@ -0,0 +1,12 @@
+<?php
+
+// private language message file for unit testing purposes
+// this language file has no class associated with it
+
+$fallback = 'en';
+
+$messages = array(
+    'HTMLPurifier' => 'HTML Purifier XNone'
+);
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en.php
new file mode 100644
index 0000000..c7f197e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Language/messages/en.php
@@ -0,0 +1,55 @@
+<?php
+
+$fallback = false;
+
+$messages = array(
+
+    'HTMLPurifier' => 'HTML Purifier',
+// for unit testing purposes
+    'LanguageFactoryTest: Pizza' => 'Pizza',
+    'LanguageTest: List' => '$1',
+    'LanguageTest: Hash' => '$1.Keys; $1.Values',
+    'Item separator' => ', ',
+    'Item separator last' => ' and ', // non-Harvard style
+
+    'ErrorCollector: No errors' => 'No errors detected. However, because error reporting is still incomplete, there may have been errors that the error collector was not notified of; please inspect the output HTML carefully.',
+    'ErrorCollector: At line' => ' at line $line',
+    'ErrorCollector: Incidental errors' => 'Incidental errors',
+    'Lexer: Unclosed comment' => 'Unclosed comment',
+    'Lexer: Unescaped lt' => 'Unescaped less-than sign (<) should be <',
+    'Lexer: Missing gt' => 'Missing greater-than sign (>), previous less-than sign (<) should be escaped',
+    'Lexer: Missing attribute key' => 'Attribute declaration has no key',
+    'Lexer: Missing end quote' => 'Attribute declaration has no end quote',
+    'Lexer: Extracted body' => 'Removed document metadata tags',
+    'Strategy_RemoveForeignElements: Tag transform' => '<$1> element transformed into $CurrentToken.Serialized',
+    'Strategy_RemoveForeignElements: Missing required attribute' => '$CurrentToken.Compact element missing required attribute $1',
+    'Strategy_RemoveForeignElements: Foreign element to text' => 'Unrecognized $CurrentToken.Serialized tag converted to text',
+    'Strategy_RemoveForeignElements: Foreign element removed' => 'Unrecognized $CurrentToken.Serialized tag removed',
+    'Strategy_RemoveForeignElements: Comment removed' => 'Comment containing "$CurrentToken.Data" removed',
+    'Strategy_RemoveForeignElements: Foreign meta element removed' => 'Unrecognized $CurrentToken.Serialized meta tag and all descendants removed',
+    'Strategy_RemoveForeignElements: Token removed to end' => 'Tags and text starting from $1 element where removed to end',
+    'Strategy_RemoveForeignElements: Trailing hyphen in comment removed' => 'Trailing hyphen(s) in comment removed',
+    'Strategy_RemoveForeignElements: Hyphens in comment collapsed' => 'Double hyphens in comments are not allowed, and were collapsed into single hyphens',
+    'Strategy_MakeWellFormed: Unnecessary end tag removed' => 'Unnecessary $CurrentToken.Serialized tag removed',
+    'Strategy_MakeWellFormed: Unnecessary end tag to text' => 'Unnecessary $CurrentToken.Serialized tag converted to text',
+    'Strategy_MakeWellFormed: Tag auto closed' => '$1.Compact started on line $1.Line auto-closed by $CurrentToken.Compact',
+    'Strategy_MakeWellFormed: Tag carryover' => '$1.Compact started on line $1.Line auto-continued into $CurrentToken.Compact',
+    'Strategy_MakeWellFormed: Stray end tag removed' => 'Stray $CurrentToken.Serialized tag removed',
+    'Strategy_MakeWellFormed: Stray end tag to text' => 'Stray $CurrentToken.Serialized tag converted to text',
+    'Strategy_MakeWellFormed: Tag closed by element end' => '$1.Compact tag started on line $1.Line closed by end of $CurrentToken.Serialized',
+    'Strategy_MakeWellFormed: Tag closed by document end' => '$1.Compact tag started on line $1.Line closed by end of document',
+    'Strategy_FixNesting: Node removed' => '$CurrentToken.Compact node removed',
+    'Strategy_FixNesting: Node excluded' => '$CurrentToken.Compact node removed due to descendant exclusion by ancestor element',
+    'Strategy_FixNesting: Node reorganized' => 'Contents of $CurrentToken.Compact node reorganized to enforce its content model',
+    'Strategy_FixNesting: Node contents removed' => 'Contents of $CurrentToken.Compact node removed',
+    'AttrValidator: Attributes transformed' => 'Attributes on $CurrentToken.Compact transformed from $1.Keys to $2.Keys',
+    'AttrValidator: Attribute removed' => '$CurrentAttr.Name attribute on $CurrentToken.Compact removed',
+);
+
+$errorNames = array(
+    E_ERROR => 'Error',
+    E_WARNING => 'Warning',
+    E_NOTICE => 'Notice'
+);
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/LanguageFactory.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/LanguageFactory.php
new file mode 100644
index 0000000..4e35272
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/LanguageFactory.php
@@ -0,0 +1,209 @@
+<?php
+
+/**
+ * Class responsible for generating HTMLPurifier_Language objects, managing
+ * caching and fallbacks.
+ * @note Thanks to MediaWiki for the general logic, although this version
+ *       has been entirely rewritten
+ * @todo Serialized cache for languages
+ */
+class HTMLPurifier_LanguageFactory
+{
+
+    /**
+     * Cache of language code information used to load HTMLPurifier_Language objects.
+     * Structure is: $factory->cache[$language_code][$key] = $value
+     * @type array
+     */
+    public $cache;
+
+    /**
+     * Valid keys in the HTMLPurifier_Language object. Designates which
+     * variables to slurp out of a message file.
+     * @type array
+     */
+    public $keys = array('fallback', 'messages', 'errorNames');
+
+    /**
+     * Instance to validate language codes.
+     * @type HTMLPurifier_AttrDef_Lang
+     *
+     */
+    protected $validator;
+
+    /**
+     * Cached copy of dirname(__FILE__), directory of current file without
+     * trailing slash.
+     * @type string
+     */
+    protected $dir;
+
+    /**
+     * Keys whose contents are a hash map and can be merged.
+     * @type array
+     */
+    protected $mergeable_keys_map = array('messages' => true, 'errorNames' => true);
+
+    /**
+     * Keys whose contents are a list and can be merged.
+     * @value array lookup
+     */
+    protected $mergeable_keys_list = array();
+
+    /**
+     * Retrieve sole instance of the factory.
+     * @param HTMLPurifier_LanguageFactory $prototype Optional prototype to overload sole instance with,
+     *                   or bool true to reset to default factory.
+     * @return HTMLPurifier_LanguageFactory
+     */
+    public static function instance($prototype = null)
+    {
+        static $instance = null;
+        if ($prototype !== null) {
+            $instance = $prototype;
+        } elseif ($instance === null || $prototype == true) {
+            $instance = new HTMLPurifier_LanguageFactory();
+            $instance->setup();
+        }
+        return $instance;
+    }
+
+    /**
+     * Sets up the singleton, much like a constructor
+     * @note Prevents people from getting this outside of the singleton
+     */
+    public function setup()
+    {
+        $this->validator = new HTMLPurifier_AttrDef_Lang();
+        $this->dir = HTMLPURIFIER_PREFIX . '/HTMLPurifier';
+    }
+
+    /**
+     * Creates a language object, handles class fallbacks
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @param bool|string $code Code to override configuration with. Private parameter.
+     * @return HTMLPurifier_Language
+     */
+    public function create($config, $context, $code = false)
+    {
+        // validate language code
+        if ($code === false) {
+            $code = $this->validator->validate(
+                $config->get('Core.Language'),
+                $config,
+                $context
+            );
+        } else {
+            $code = $this->validator->validate($code, $config, $context);
+        }
+        if ($code === false) {
+            $code = 'en'; // malformed code becomes English
+        }
+
+        $pcode = str_replace('-', '_', $code); // make valid PHP classname
+        static $depth = 0; // recursion protection
+
+        if ($code == 'en') {
+            $lang = new HTMLPurifier_Language($config, $context);
+        } else {
+            $class = 'HTMLPurifier_Language_' . $pcode;
+            $file  = $this->dir . '/Language/classes/' . $code . '.php';
+            if (file_exists($file) || class_exists($class, false)) {
+                $lang = new $class($config, $context);
+            } else {
+                // Go fallback
+                $raw_fallback = $this->getFallbackFor($code);
+                $fallback = $raw_fallback ? $raw_fallback : 'en';
+                $depth++;
+                $lang = $this->create($config, $context, $fallback);
+                if (!$raw_fallback) {
+                    $lang->error = true;
+                }
+                $depth--;
+            }
+        }
+        $lang->code = $code;
+        return $lang;
+    }
+
+    /**
+     * Returns the fallback language for language
+     * @note Loads the original language into cache
+     * @param string $code language code
+     * @return string|bool
+     */
+    public function getFallbackFor($code)
+    {
+        $this->loadLanguage($code);
+        return $this->cache[$code]['fallback'];
+    }
+
+    /**
+     * Loads language into the cache, handles message file and fallbacks
+     * @param string $code language code
+     */
+    public function loadLanguage($code)
+    {
+        static $languages_seen = array(); // recursion guard
+
+        // abort if we've already loaded it
+        if (isset($this->cache[$code])) {
+            return;
+        }
+
+        // generate filename
+        $filename = $this->dir . '/Language/messages/' . $code . '.php';
+
+        // default fallback : may be overwritten by the ensuing include
+        $fallback = ($code != 'en') ? 'en' : false;
+
+        // load primary localisation
+        if (!file_exists($filename)) {
+            // skip the include: will rely solely on fallback
+            $filename = $this->dir . '/Language/messages/en.php';
+            $cache = array();
+        } else {
+            include $filename;
+            $cache = compact($this->keys);
+        }
+
+        // load fallback localisation
+        if (!empty($fallback)) {
+
+            // infinite recursion guard
+            if (isset($languages_seen[$code])) {
+                trigger_error(
+                    'Circular fallback reference in language ' .
+                    $code,
+                    E_USER_ERROR
+                );
+                $fallback = 'en';
+            }
+            $language_seen[$code] = true;
+
+            // load the fallback recursively
+            $this->loadLanguage($fallback);
+            $fallback_cache = $this->cache[$fallback];
+
+            // merge fallback with current language
+            foreach ($this->keys as $key) {
+                if (isset($cache[$key]) && isset($fallback_cache[$key])) {
+                    if (isset($this->mergeable_keys_map[$key])) {
+                        $cache[$key] = $cache[$key] + $fallback_cache[$key];
+                    } elseif (isset($this->mergeable_keys_list[$key])) {
+                        $cache[$key] = array_merge($fallback_cache[$key], $cache[$key]);
+                    }
+                } else {
+                    $cache[$key] = $fallback_cache[$key];
+                }
+            }
+        }
+
+        // save to cache for later retrieval
+        $this->cache[$code] = $cache;
+        return;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Length.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Length.php
new file mode 100644
index 0000000..bbfbe66
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Length.php
@@ -0,0 +1,160 @@
+<?php
+
+/**
+ * Represents a measurable length, with a string numeric magnitude
+ * and a unit. This object is immutable.
+ */
+class HTMLPurifier_Length
+{
+
+    /**
+     * String numeric magnitude.
+     * @type string
+     */
+    protected $n;
+
+    /**
+     * String unit. False is permitted if $n = 0.
+     * @type string|bool
+     */
+    protected $unit;
+
+    /**
+     * Whether or not this length is valid. Null if not calculated yet.
+     * @type bool
+     */
+    protected $isValid;
+
+    /**
+     * Array Lookup array of units recognized by CSS 2.1
+     * @type array
+     */
+    protected static $allowedUnits = array(
+        'em' => true, 'ex' => true, 'px' => true, 'in' => true,
+        'cm' => true, 'mm' => true, 'pt' => true, 'pc' => true
+    );
+
+    /**
+     * @param string $n Magnitude
+     * @param bool|string $u Unit
+     */
+    public function __construct($n = '0', $u = false)
+    {
+        $this->n = (string) $n;
+        $this->unit = $u !== false ? (string) $u : false;
+    }
+
+    /**
+     * @param string $s Unit string, like '2em' or '3.4in'
+     * @return HTMLPurifier_Length
+     * @warning Does not perform validation.
+     */
+    public static function make($s)
+    {
+        if ($s instanceof HTMLPurifier_Length) {
+            return $s;
+        }
+        $n_length = strspn($s, '1234567890.+-');
+        $n = substr($s, 0, $n_length);
+        $unit = substr($s, $n_length);
+        if ($unit === '') {
+            $unit = false;
+        }
+        return new HTMLPurifier_Length($n, $unit);
+    }
+
+    /**
+     * Validates the number and unit.
+     * @return bool
+     */
+    protected function validate()
+    {
+        // Special case:
+        if ($this->n === '+0' || $this->n === '-0') {
+            $this->n = '0';
+        }
+        if ($this->n === '0' && $this->unit === false) {
+            return true;
+        }
+        if (!ctype_lower($this->unit)) {
+            $this->unit = strtolower($this->unit);
+        }
+        if (!isset(HTMLPurifier_Length::$allowedUnits[$this->unit])) {
+            return false;
+        }
+        // Hack:
+        $def = new HTMLPurifier_AttrDef_CSS_Number();
+        $result = $def->validate($this->n, false, false);
+        if ($result === false) {
+            return false;
+        }
+        $this->n = $result;
+        return true;
+    }
+
+    /**
+     * Returns string representation of number.
+     * @return string
+     */
+    public function toString()
+    {
+        if (!$this->isValid()) {
+            return false;
+        }
+        return $this->n . $this->unit;
+    }
+
+    /**
+     * Retrieves string numeric magnitude.
+     * @return string
+     */
+    public function getN()
+    {
+        return $this->n;
+    }
+
+    /**
+     * Retrieves string unit.
+     * @return string
+     */
+    public function getUnit()
+    {
+        return $this->unit;
+    }
+
+    /**
+     * Returns true if this length unit is valid.
+     * @return bool
+     */
+    public function isValid()
+    {
+        if ($this->isValid === null) {
+            $this->isValid = $this->validate();
+        }
+        return $this->isValid;
+    }
+
+    /**
+     * Compares two lengths, and returns 1 if greater, -1 if less and 0 if equal.
+     * @param HTMLPurifier_Length $l
+     * @return int
+     * @warning If both values are too large or small, this calculation will
+     *          not work properly
+     */
+    public function compareTo($l)
+    {
+        if ($l === false) {
+            return false;
+        }
+        if ($l->unit !== $this->unit) {
+            $converter = new HTMLPurifier_UnitConverter();
+            $l = $converter->convert($l, $this->unit);
+            if ($l === false) {
+                return false;
+            }
+        }
+        return $this->n - $l->n;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer.php
new file mode 100644
index 0000000..4373262
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer.php
@@ -0,0 +1,357 @@
+<?php
+
+/**
+ * Forgivingly lexes HTML (SGML-style) markup into tokens.
+ *
+ * A lexer parses a string of SGML-style markup and converts them into
+ * corresponding tokens.  It doesn't check for well-formedness, although its
+ * internal mechanism may make this automatic (such as the case of
+ * HTMLPurifier_Lexer_DOMLex).  There are several implementations to choose
+ * from.
+ *
+ * A lexer is HTML-oriented: it might work with XML, but it's not
+ * recommended, as we adhere to a subset of the specification for optimization
+ * reasons. This might change in the future. Also, most tokenizers are not
+ * expected to handle DTDs or PIs.
+ *
+ * This class should not be directly instantiated, but you may use create() to
+ * retrieve a default copy of the lexer.  Being a supertype, this class
+ * does not actually define any implementation, but offers commonly used
+ * convenience functions for subclasses.
+ *
+ * @note The unit tests will instantiate this class for testing purposes, as
+ *       many of the utility functions require a class to be instantiated.
+ *       This means that, even though this class is not runnable, it will
+ *       not be declared abstract.
+ *
+ * @par
+ *
+ * @note
+ * We use tokens rather than create a DOM representation because DOM would:
+ *
+ * @par
+ *  -# Require more processing and memory to create,
+ *  -# Is not streamable, and
+ *  -# Has the entire document structure (html and body not needed).
+ *
+ * @par
+ * However, DOM is helpful in that it makes it easy to move around nodes
+ * without a lot of lookaheads to see when a tag is closed. This is a
+ * limitation of the token system and some workarounds would be nice.
+ */
+class HTMLPurifier_Lexer
+{
+
+    /**
+     * Whether or not this lexer implements line-number/column-number tracking.
+     * If it does, set to true.
+     */
+    public $tracksLineNumbers = false;
+
+    // -- STATIC ----------------------------------------------------------
+
+    /**
+     * Retrieves or sets the default Lexer as a Prototype Factory.
+     *
+     * By default HTMLPurifier_Lexer_DOMLex will be returned. There are
+     * a few exceptions involving special features that only DirectLex
+     * implements.
+     *
+     * @note The behavior of this class has changed, rather than accepting
+     *       a prototype object, it now accepts a configuration object.
+     *       To specify your own prototype, set %Core.LexerImpl to it.
+     *       This change in behavior de-singletonizes the lexer object.
+     *
+     * @param HTMLPurifier_Config $config
+     * @return HTMLPurifier_Lexer
+     * @throws HTMLPurifier_Exception
+     */
+    public static function create($config)
+    {
+        if (!($config instanceof HTMLPurifier_Config)) {
+            $lexer = $config;
+            trigger_error(
+                "Passing a prototype to
+                HTMLPurifier_Lexer::create() is deprecated, please instead
+                use %Core.LexerImpl",
+                E_USER_WARNING
+            );
+        } else {
+            $lexer = $config->get('Core.LexerImpl');
+        }
+
+        $needs_tracking =
+            $config->get('Core.MaintainLineNumbers') ||
+            $config->get('Core.CollectErrors');
+
+        $inst = null;
+        if (is_object($lexer)) {
+            $inst = $lexer;
+        } else {
+            if (is_null($lexer)) {
+                do {
+                    // auto-detection algorithm
+                    if ($needs_tracking) {
+                        $lexer = 'DirectLex';
+                        break;
+                    }
+
+                    if (class_exists('DOMDocument') &&
+                        method_exists('DOMDocument', 'loadHTML') &&
+                        !extension_loaded('domxml')
+                    ) {
+                        // check for DOM support, because while it's part of the
+                        // core, it can be disabled compile time. Also, the PECL
+                        // domxml extension overrides the default DOM, and is evil
+                        // and nasty and we shan't bother to support it
+                        $lexer = 'DOMLex';
+                    } else {
+                        $lexer = 'DirectLex';
+                    }
+                } while (0);
+            } // do..while so we can break
+
+            // instantiate recognized string names
+            switch ($lexer) {
+                case 'DOMLex':
+                    $inst = new HTMLPurifier_Lexer_DOMLex();
+                    break;
+                case 'DirectLex':
+                    $inst = new HTMLPurifier_Lexer_DirectLex();
+                    break;
+                case 'PH5P':
+                    $inst = new HTMLPurifier_Lexer_PH5P();
+                    break;
+                default:
+                    throw new HTMLPurifier_Exception(
+                        "Cannot instantiate unrecognized Lexer type " .
+                        htmlspecialchars($lexer)
+                    );
+            }
+        }
+
+        if (!$inst) {
+            throw new HTMLPurifier_Exception('No lexer was instantiated');
+        }
+
+        // once PHP DOM implements native line numbers, or we
+        // hack out something using XSLT, remove this stipulation
+        if ($needs_tracking && !$inst->tracksLineNumbers) {
+            throw new HTMLPurifier_Exception(
+                'Cannot use lexer that does not support line numbers with ' .
+                'Core.MaintainLineNumbers or Core.CollectErrors (use DirectLex instead)'
+            );
+        }
+
+        return $inst;
+
+    }
+
+    // -- CONVENIENCE MEMBERS ---------------------------------------------
+
+    public function __construct()
+    {
+        $this->_entity_parser = new HTMLPurifier_EntityParser();
+    }
+
+    /**
+     * Most common entity to raw value conversion table for special entities.
+     * @type array
+     */
+    protected $_special_entity2str =
+        array(
+            '"' => '"',
+            '&' => '&',
+            '<' => '<',
+            '>' => '>',
+            ''' => "'",
+            ''' => "'",
+            '&#x27;' => "'"
+        );
+
+    /**
+     * Parses special entities into the proper characters.
+     *
+     * This string will translate escaped versions of the special characters
+     * into the correct ones.
+     *
+     * @warning
+     * You should be able to treat the output of this function as
+     * completely parsed, but that's only because all other entities should
+     * have been handled previously in substituteNonSpecialEntities()
+     *
+     * @param string $string String character data to be parsed.
+     * @return string Parsed character data.
+     */
+    public function parseData($string)
+    {
+        // following functions require at least one character
+        if ($string === '') {
+            return '';
+        }
+
+        // subtracts amps that cannot possibly be escaped
+        $num_amp = substr_count($string, '&') - substr_count($string, '& ') -
+            ($string[strlen($string) - 1] === '&' ? 1 : 0);
+
+        if (!$num_amp) {
+            return $string;
+        } // abort if no entities
+        $num_esc_amp = substr_count($string, '&');
+        $string = strtr($string, $this->_special_entity2str);
+
+        // code duplication for sake of optimization, see above
+        $num_amp_2 = substr_count($string, '&') - substr_count($string, '& ') -
+            ($string[strlen($string) - 1] === '&' ? 1 : 0);
+
+        if ($num_amp_2 <= $num_esc_amp) {
+            return $string;
+        }
+
+        // hmm... now we have some uncommon entities. Use the callback.
+        $string = $this->_entity_parser->substituteSpecialEntities($string);
+        return $string;
+    }
+
+    /**
+     * Lexes an HTML string into tokens.
+     * @param $string String HTML.
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token[] array representation of HTML.
+     */
+    public function tokenizeHTML($string, $config, $context)
+    {
+        trigger_error('Call to abstract class', E_USER_ERROR);
+    }
+
+    /**
+     * Translates CDATA sections into regular sections (through escaping).
+     * @param string $string HTML string to process.
+     * @return string HTML with CDATA sections escaped.
+     */
+    protected static function escapeCDATA($string)
+    {
+        return preg_replace_callback(
+            '/<!\[CDATA\[(.+?)\]\]>/s',
+            array('HTMLPurifier_Lexer', 'CDATACallback'),
+            $string
+        );
+    }
+
+    /**
+     * Special CDATA case that is especially convoluted for <script>
+     * @param string $string HTML string to process.
+     * @return string HTML with CDATA sections escaped.
+     */
+    protected static function escapeCommentedCDATA($string)
+    {
+        return preg_replace_callback(
+            '#<!--//--><!\[CDATA\[//><!--(.+?)//--><!\]\]>#s',
+            array('HTMLPurifier_Lexer', 'CDATACallback'),
+            $string
+        );
+    }
+
+    /**
+     * Special Internet Explorer conditional comments should be removed.
+     * @param string $string HTML string to process.
+     * @return string HTML with conditional comments removed.
+     */
+    protected static function removeIEConditional($string)
+    {
+        return preg_replace(
+            '#<!--\[if [^>]+\]>.*?<!\[endif\]-->#si', // probably should generalize for all strings
+            '',
+            $string
+        );
+    }
+
+    /**
+     * Callback function for escapeCDATA() that does the work.
+     *
+     * @warning Though this is public in order to let the callback happen,
+     *          calling it directly is not recommended.
+     * @param array $matches PCRE matches array, with index 0 the entire match
+     *                  and 1 the inside of the CDATA section.
+     * @return string Escaped internals of the CDATA section.
+     */
+    protected static function CDATACallback($matches)
+    {
+        // not exactly sure why the character set is needed, but whatever
+        return htmlspecialchars($matches[1], ENT_COMPAT, 'UTF-8');
+    }
+
+    /**
+     * Takes a piece of HTML and normalizes it by converting entities, fixing
+     * encoding, extracting bits, and other good stuff.
+     * @param string $html HTML.
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     * @todo Consider making protected
+     */
+    public function normalize($html, $config, $context)
+    {
+        // normalize newlines to \n
+        if ($config->get('Core.NormalizeNewlines')) {
+            $html = str_replace("\r\n", "\n", $html);
+            $html = str_replace("\r", "\n", $html);
+        }
+
+        if ($config->get('HTML.Trusted')) {
+            // escape convoluted CDATA
+            $html = $this->escapeCommentedCDATA($html);
+        }
+
+        // escape CDATA
+        $html = $this->escapeCDATA($html);
+
+        $html = $this->removeIEConditional($html);
+
+        // extract body from document if applicable
+        if ($config->get('Core.ConvertDocumentToFragment')) {
+            $e = false;
+            if ($config->get('Core.CollectErrors')) {
+                $e =& $context->get('ErrorCollector');
+            }
+            $new_html = $this->extractBody($html);
+            if ($e && $new_html != $html) {
+                $e->send(E_WARNING, 'Lexer: Extracted body');
+            }
+            $html = $new_html;
+        }
+
+        // expand entities that aren't the big five
+        $html = $this->_entity_parser->substituteNonSpecialEntities($html);
+
+        // clean into wellformed UTF-8 string for an SGML context: this has
+        // to be done after entity expansion because the entities sometimes
+        // represent non-SGML characters (horror, horror!)
+        $html = HTMLPurifier_Encoder::cleanUTF8($html);
+
+        // if processing instructions are to removed, remove them now
+        if ($config->get('Core.RemoveProcessingInstructions')) {
+            $html = preg_replace('#<\?.+?\?>#s', '', $html);
+        }
+
+        return $html;
+    }
+
+    /**
+     * Takes a string of HTML (fragment or document) and returns the content
+     * @todo Consider making protected
+     */
+    public function extractBody($html)
+    {
+        $matches = array();
+        $result = preg_match('!<body[^>]*>(.*)</body>!is', $html, $matches);
+        if ($result) {
+            return $matches[1];
+        } else {
+            return $html;
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
new file mode 100644
index 0000000..7207544
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
@@ -0,0 +1,280 @@
+<?php
+
+/**
+ * Parser that uses PHP 5's DOM extension (part of the core).
+ *
+ * In PHP 5, the DOM XML extension was revamped into DOM and added to the core.
+ * It gives us a forgiving HTML parser, which we use to transform the HTML
+ * into a DOM, and then into the tokens.  It is blazingly fast (for large
+ * documents, it performs twenty times faster than
+ * HTMLPurifier_Lexer_DirectLex,and is the default choice for PHP 5.
+ *
+ * @note Any empty elements will have empty tokens associated with them, even if
+ * this is prohibited by the spec. This is cannot be fixed until the spec
+ * comes into play.
+ *
+ * @note PHP's DOM extension does not actually parse any entities, we use
+ *       our own function to do that.
+ *
+ * @warning DOM tends to drop whitespace, which may wreak havoc on indenting.
+ *          If this is a huge problem, due to the fact that HTML is hand
+ *          edited and you are unable to get a parser cache that caches the
+ *          the output of HTML Purifier while keeping the original HTML lying
+ *          around, you may want to run Tidy on the resulting output or use
+ *          HTMLPurifier_DirectLex
+ */
+
+class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
+{
+
+    /**
+     * @type HTMLPurifier_TokenFactory
+     */
+    private $factory;
+
+    public function __construct()
+    {
+        // setup the factory
+        parent::__construct();
+        $this->factory = new HTMLPurifier_TokenFactory();
+    }
+
+    /**
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token[]
+     */
+    public function tokenizeHTML($html, $config, $context)
+    {
+        $html = $this->normalize($html, $config, $context);
+
+        // attempt to armor stray angled brackets that cannot possibly
+        // form tags and thus are probably being used as emoticons
+        if ($config->get('Core.AggressivelyFixLt')) {
+            $char = '[^a-z!\/]';
+            $comment = "/<!--(.*?)(-->|\z)/is";
+            $html = preg_replace_callback($comment, array($this, 'callbackArmorCommentEntities'), $html);
+            do {
+                $old = $html;
+                $html = preg_replace("/<($char)/i", '<\\1', $html);
+            } while ($html !== $old);
+            $html = preg_replace_callback($comment, array($this, 'callbackUndoCommentSubst'), $html); // fix comments
+        }
+
+        // preprocess html, essential for UTF-8
+        $html = $this->wrapHTML($html, $config, $context);
+
+        $doc = new DOMDocument();
+        $doc->encoding = 'UTF-8'; // theoretically, the above has this covered
+
+        set_error_handler(array($this, 'muteErrorHandler'));
+        $doc->loadHTML($html);
+        restore_error_handler();
+
+        $tokens = array();
+        $this->tokenizeDOM(
+            $doc->getElementsByTagName('html')->item(0)-> // <html>
+            getElementsByTagName('body')->item(0)-> //   <body>
+            getElementsByTagName('div')->item(0), //     <div>
+            $tokens
+        );
+        return $tokens;
+    }
+
+    /**
+     * Iterative function that tokenizes a node, putting it into an accumulator.
+     * To iterate is human, to recurse divine - L. Peter Deutsch
+     * @param DOMNode $node DOMNode to be tokenized.
+     * @param HTMLPurifier_Token[] $tokens   Array-list of already tokenized tokens.
+     * @return HTMLPurifier_Token of node appended to previously passed tokens.
+     */
+    protected function tokenizeDOM($node, &$tokens)
+    {
+        $level = 0;
+        $nodes = array($level => new HTMLPurifier_Queue(array($node)));
+        $closingNodes = array();
+        do {
+            while (!$nodes[$level]->isEmpty()) {
+                $node = $nodes[$level]->shift(); // FIFO
+                $collect = $level > 0 ? true : false;
+                $needEndingTag = $this->createStartNode($node, $tokens, $collect);
+                if ($needEndingTag) {
+                    $closingNodes[$level][] = $node;
+                }
+                if ($node->childNodes && $node->childNodes->length) {
+                    $level++;
+                    $nodes[$level] = new HTMLPurifier_Queue();
+                    foreach ($node->childNodes as $childNode) {
+                        $nodes[$level]->push($childNode);
+                    }
+                }
+            }
+            $level--;
+            if ($level && isset($closingNodes[$level])) {
+                while ($node = array_pop($closingNodes[$level])) {
+                    $this->createEndNode($node, $tokens);
+                }
+            }
+        } while ($level > 0);
+    }
+
+    /**
+     * @param DOMNode $node DOMNode to be tokenized.
+     * @param HTMLPurifier_Token[] $tokens   Array-list of already tokenized tokens.
+     * @param bool $collect  Says whether or start and close are collected, set to
+     *                    false at first recursion because it's the implicit DIV
+     *                    tag you're dealing with.
+     * @return bool if the token needs an endtoken
+     * @todo data and tagName properties don't seem to exist in DOMNode?
+     */
+    protected function createStartNode($node, &$tokens, $collect)
+    {
+        // intercept non element nodes. WE MUST catch all of them,
+        // but we're not getting the character reference nodes because
+        // those should have been preprocessed
+        if ($node->nodeType === XML_TEXT_NODE) {
+            $tokens[] = $this->factory->createText($node->data);
+            return false;
+        } elseif ($node->nodeType === XML_CDATA_SECTION_NODE) {
+            // undo libxml's special treatment of <script> and <style> tags
+            $last = end($tokens);
+            $data = $node->data;
+            // (note $node->tagname is already normalized)
+            if ($last instanceof HTMLPurifier_Token_Start && ($last->name == 'script' || $last->name == 'style')) {
+                $new_data = trim($data);
+                if (substr($new_data, 0, 4) === '<!--') {
+                    $data = substr($new_data, 4);
+                    if (substr($data, -3) === '-->') {
+                        $data = substr($data, 0, -3);
+                    } else {
+                        // Highly suspicious! Not sure what to do...
+                    }
+                }
+            }
+            $tokens[] = $this->factory->createText($this->parseData($data));
+            return false;
+        } elseif ($node->nodeType === XML_COMMENT_NODE) {
+            // this is code is only invoked for comments in script/style in versions
+            // of libxml pre-2.6.28 (regular comments, of course, are still
+            // handled regularly)
+            $tokens[] = $this->factory->createComment($node->data);
+            return false;
+        } elseif ($node->nodeType !== XML_ELEMENT_NODE) {
+            // not-well tested: there may be other nodes we have to grab
+            return false;
+        }
+
+        $attr = $node->hasAttributes() ? $this->transformAttrToAssoc($node->attributes) : array();
+
+        // We still have to make sure that the element actually IS empty
+        if (!$node->childNodes->length) {
+            if ($collect) {
+                $tokens[] = $this->factory->createEmpty($node->tagName, $attr);
+            }
+            return false;
+        } else {
+            if ($collect) {
+                $tokens[] = $this->factory->createStart(
+                    $tag_name = $node->tagName, // somehow, it get's dropped
+                    $attr
+                );
+            }
+            return true;
+        }
+    }
+
+    /**
+     * @param DOMNode $node
+     * @param HTMLPurifier_Token[] $tokens
+     */
+    protected function createEndNode($node, &$tokens)
+    {
+        $tokens[] = $this->factory->createEnd($node->tagName);
+    }
+
+
+    /**
+     * Converts a DOMNamedNodeMap of DOMAttr objects into an assoc array.
+     *
+     * @param DOMNamedNodeMap $node_map DOMNamedNodeMap of DOMAttr objects.
+     * @return array Associative array of attributes.
+     */
+    protected function transformAttrToAssoc($node_map)
+    {
+        // NamedNodeMap is documented very well, so we're using undocumented
+        // features, namely, the fact that it implements Iterator and
+        // has a ->length attribute
+        if ($node_map->length === 0) {
+            return array();
+        }
+        $array = array();
+        foreach ($node_map as $attr) {
+            $array[$attr->name] = $attr->value;
+        }
+        return $array;
+    }
+
+    /**
+     * An error handler that mutes all errors
+     * @param int $errno
+     * @param string $errstr
+     */
+    public function muteErrorHandler($errno, $errstr)
+    {
+    }
+
+    /**
+     * Callback function for undoing escaping of stray angled brackets
+     * in comments
+     * @param array $matches
+     * @return string
+     */
+    public function callbackUndoCommentSubst($matches)
+    {
+        return '<!--' . strtr($matches[1], array('&' => '&', '<' => '<')) . $matches[2];
+    }
+
+    /**
+     * Callback function that entity-izes ampersands in comments so that
+     * callbackUndoCommentSubst doesn't clobber them
+     * @param array $matches
+     * @return string
+     */
+    public function callbackArmorCommentEntities($matches)
+    {
+        return '<!--' . str_replace('&', '&', $matches[1]) . $matches[2];
+    }
+
+    /**
+     * Wraps an HTML fragment in the necessary HTML
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    protected function wrapHTML($html, $config, $context)
+    {
+        $def = $config->getDefinition('HTML');
+        $ret = '';
+
+        if (!empty($def->doctype->dtdPublic) || !empty($def->doctype->dtdSystem)) {
+            $ret .= '<!DOCTYPE html ';
+            if (!empty($def->doctype->dtdPublic)) {
+                $ret .= 'PUBLIC "' . $def->doctype->dtdPublic . '" ';
+            }
+            if (!empty($def->doctype->dtdSystem)) {
+                $ret .= '"' . $def->doctype->dtdSystem . '" ';
+            }
+            $ret .= '>';
+        }
+
+        $ret .= '<html><head>';
+        $ret .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
+        // No protection if $html contains a stray </div>!
+        $ret .= '</head><body><div>' . $html . '</div></body></html>';
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/DirectLex.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/DirectLex.php
new file mode 100644
index 0000000..746b6e3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/DirectLex.php
@@ -0,0 +1,539 @@
+<?php
+
+/**
+ * Our in-house implementation of a parser.
+ *
+ * A pure PHP parser, DirectLex has absolutely no dependencies, making
+ * it a reasonably good default for PHP4.  Written with efficiency in mind,
+ * it can be four times faster than HTMLPurifier_Lexer_PEARSax3, although it
+ * pales in comparison to HTMLPurifier_Lexer_DOMLex.
+ *
+ * @todo Reread XML spec and document differences.
+ */
+class HTMLPurifier_Lexer_DirectLex extends HTMLPurifier_Lexer
+{
+    /**
+     * @type bool
+     */
+    public $tracksLineNumbers = true;
+
+    /**
+     * Whitespace characters for str(c)spn.
+     * @type string
+     */
+    protected $_whitespace = "\x20\x09\x0D\x0A";
+
+    /**
+     * Callback function for script CDATA fudge
+     * @param array $matches, in form of array(opening tag, contents, closing tag)
+     * @return string
+     */
+    protected function scriptCallback($matches)
+    {
+        return $matches[1] . htmlspecialchars($matches[2], ENT_COMPAT, 'UTF-8') . $matches[3];
+    }
+
+    /**
+     * @param String $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array|HTMLPurifier_Token[]
+     */
+    public function tokenizeHTML($html, $config, $context)
+    {
+        // special normalization for script tags without any armor
+        // our "armor" heurstic is a < sign any number of whitespaces after
+        // the first script tag
+        if ($config->get('HTML.Trusted')) {
+            $html = preg_replace_callback(
+                '#(<script[^>]*>)(\s*[^<].+?)(</script>)#si',
+                array($this, 'scriptCallback'),
+                $html
+            );
+        }
+
+        $html = $this->normalize($html, $config, $context);
+
+        $cursor = 0; // our location in the text
+        $inside_tag = false; // whether or not we're parsing the inside of a tag
+        $array = array(); // result array
+
+        // This is also treated to mean maintain *column* numbers too
+        $maintain_line_numbers = $config->get('Core.MaintainLineNumbers');
+
+        if ($maintain_line_numbers === null) {
+            // automatically determine line numbering by checking
+            // if error collection is on
+            $maintain_line_numbers = $config->get('Core.CollectErrors');
+        }
+
+        if ($maintain_line_numbers) {
+            $current_line = 1;
+            $current_col = 0;
+            $length = strlen($html);
+        } else {
+            $current_line = false;
+            $current_col = false;
+            $length = false;
+        }
+        $context->register('CurrentLine', $current_line);
+        $context->register('CurrentCol', $current_col);
+        $nl = "\n";
+        // how often to manually recalculate. This will ALWAYS be right,
+        // but it's pretty wasteful. Set to 0 to turn off
+        $synchronize_interval = $config->get('Core.DirectLexLineNumberSyncInterval');
+
+        $e = false;
+        if ($config->get('Core.CollectErrors')) {
+            $e =& $context->get('ErrorCollector');
+        }
+
+        // for testing synchronization
+        $loops = 0;
+
+        while (++$loops) {
+            // $cursor is either at the start of a token, or inside of
+            // a tag (i.e. there was a < immediately before it), as indicated
+            // by $inside_tag
+
+            if ($maintain_line_numbers) {
+                // $rcursor, however, is always at the start of a token.
+                $rcursor = $cursor - (int)$inside_tag;
+
+                // Column number is cheap, so we calculate it every round.
+                // We're interested at the *end* of the newline string, so
+                // we need to add strlen($nl) == 1 to $nl_pos before subtracting it
+                // from our "rcursor" position.
+                $nl_pos = strrpos($html, $nl, $rcursor - $length);
+                $current_col = $rcursor - (is_bool($nl_pos) ? 0 : $nl_pos + 1);
+
+                // recalculate lines
+                if ($synchronize_interval && // synchronization is on
+                    $cursor > 0 && // cursor is further than zero
+                    $loops % $synchronize_interval === 0) { // time to synchronize!
+                    $current_line = 1 + $this->substrCount($html, $nl, 0, $cursor);
+                }
+            }
+
+            $position_next_lt = strpos($html, '<', $cursor);
+            $position_next_gt = strpos($html, '>', $cursor);
+
+            // triggers on "<b>asdf</b>" but not "asdf <b></b>"
+            // special case to set up context
+            if ($position_next_lt === $cursor) {
+                $inside_tag = true;
+                $cursor++;
+            }
+
+            if (!$inside_tag && $position_next_lt !== false) {
+                // We are not inside tag and there still is another tag to parse
+                $token = new
+                HTMLPurifier_Token_Text(
+                    $this->parseData(
+                        substr(
+                            $html,
+                            $cursor,
+                            $position_next_lt - $cursor
+                        )
+                    )
+                );
+                if ($maintain_line_numbers) {
+                    $token->rawPosition($current_line, $current_col);
+                    $current_line += $this->substrCount($html, $nl, $cursor, $position_next_lt - $cursor);
+                }
+                $array[] = $token;
+                $cursor = $position_next_lt + 1;
+                $inside_tag = true;
+                continue;
+            } elseif (!$inside_tag) {
+                // We are not inside tag but there are no more tags
+                // If we're already at the end, break
+                if ($cursor === strlen($html)) {
+                    break;
+                }
+                // Create Text of rest of string
+                $token = new
+                HTMLPurifier_Token_Text(
+                    $this->parseData(
+                        substr(
+                            $html,
+                            $cursor
+                        )
+                    )
+                );
+                if ($maintain_line_numbers) {
+                    $token->rawPosition($current_line, $current_col);
+                }
+                $array[] = $token;
+                break;
+            } elseif ($inside_tag && $position_next_gt !== false) {
+                // We are in tag and it is well formed
+                // Grab the internals of the tag
+                $strlen_segment = $position_next_gt - $cursor;
+
+                if ($strlen_segment < 1) {
+                    // there's nothing to process!
+                    $token = new HTMLPurifier_Token_Text('<');
+                    $cursor++;
+                    continue;
+                }
+
+                $segment = substr($html, $cursor, $strlen_segment);
+
+                if ($segment === false) {
+                    // somehow, we attempted to access beyond the end of
+                    // the string, defense-in-depth, reported by Nate Abele
+                    break;
+                }
+
+                // Check if it's a comment
+                if (substr($segment, 0, 3) === '!--') {
+                    // re-determine segment length, looking for -->
+                    $position_comment_end = strpos($html, '-->', $cursor);
+                    if ($position_comment_end === false) {
+                        // uh oh, we have a comment that extends to
+                        // infinity. Can't be helped: set comment
+                        // end position to end of string
+                        if ($e) {
+                            $e->send(E_WARNING, 'Lexer: Unclosed comment');
+                        }
+                        $position_comment_end = strlen($html);
+                        $end = true;
+                    } else {
+                        $end = false;
+                    }
+                    $strlen_segment = $position_comment_end - $cursor;
+                    $segment = substr($html, $cursor, $strlen_segment);
+                    $token = new
+                    HTMLPurifier_Token_Comment(
+                        substr(
+                            $segment,
+                            3,
+                            $strlen_segment - 3
+                        )
+                    );
+                    if ($maintain_line_numbers) {
+                        $token->rawPosition($current_line, $current_col);
+                        $current_line += $this->substrCount($html, $nl, $cursor, $strlen_segment);
+                    }
+                    $array[] = $token;
+                    $cursor = $end ? $position_comment_end : $position_comment_end + 3;
+                    $inside_tag = false;
+                    continue;
+                }
+
+                // Check if it's an end tag
+                $is_end_tag = (strpos($segment, '/') === 0);
+                if ($is_end_tag) {
+                    $type = substr($segment, 1);
+                    $token = new HTMLPurifier_Token_End($type);
+                    if ($maintain_line_numbers) {
+                        $token->rawPosition($current_line, $current_col);
+                        $current_line += $this->substrCount($html, $nl, $cursor, $position_next_gt - $cursor);
+                    }
+                    $array[] = $token;
+                    $inside_tag = false;
+                    $cursor = $position_next_gt + 1;
+                    continue;
+                }
+
+                // Check leading character is alnum, if not, we may
+                // have accidently grabbed an emoticon. Translate into
+                // text and go our merry way
+                if (!ctype_alpha($segment[0])) {
+                    // XML:  $segment[0] !== '_' && $segment[0] !== ':'
+                    if ($e) {
+                        $e->send(E_NOTICE, 'Lexer: Unescaped lt');
+                    }
+                    $token = new HTMLPurifier_Token_Text('<');
+                    if ($maintain_line_numbers) {
+                        $token->rawPosition($current_line, $current_col);
+                        $current_line += $this->substrCount($html, $nl, $cursor, $position_next_gt - $cursor);
+                    }
+                    $array[] = $token;
+                    $inside_tag = false;
+                    continue;
+                }
+
+                // Check if it is explicitly self closing, if so, remove
+                // trailing slash. Remember, we could have a tag like <br>, so
+                // any later token processing scripts must convert improperly
+                // classified EmptyTags from StartTags.
+                $is_self_closing = (strrpos($segment, '/') === $strlen_segment - 1);
+                if ($is_self_closing) {
+                    $strlen_segment--;
+                    $segment = substr($segment, 0, $strlen_segment);
+                }
+
+                // Check if there are any attributes
+                $position_first_space = strcspn($segment, $this->_whitespace);
+
+                if ($position_first_space >= $strlen_segment) {
+                    if ($is_self_closing) {
+                        $token = new HTMLPurifier_Token_Empty($segment);
+                    } else {
+                        $token = new HTMLPurifier_Token_Start($segment);
+                    }
+                    if ($maintain_line_numbers) {
+                        $token->rawPosition($current_line, $current_col);
+                        $current_line += $this->substrCount($html, $nl, $cursor, $position_next_gt - $cursor);
+                    }
+                    $array[] = $token;
+                    $inside_tag = false;
+                    $cursor = $position_next_gt + 1;
+                    continue;
+                }
+
+                // Grab out all the data
+                $type = substr($segment, 0, $position_first_space);
+                $attribute_string =
+                    trim(
+                        substr(
+                            $segment,
+                            $position_first_space
+                        )
+                    );
+                if ($attribute_string) {
+                    $attr = $this->parseAttributeString(
+                        $attribute_string,
+                        $config,
+                        $context
+                    );
+                } else {
+                    $attr = array();
+                }
+
+                if ($is_self_closing) {
+                    $token = new HTMLPurifier_Token_Empty($type, $attr);
+                } else {
+                    $token = new HTMLPurifier_Token_Start($type, $attr);
+                }
+                if ($maintain_line_numbers) {
+                    $token->rawPosition($current_line, $current_col);
+                    $current_line += $this->substrCount($html, $nl, $cursor, $position_next_gt - $cursor);
+                }
+                $array[] = $token;
+                $cursor = $position_next_gt + 1;
+                $inside_tag = false;
+                continue;
+            } else {
+                // inside tag, but there's no ending > sign
+                if ($e) {
+                    $e->send(E_WARNING, 'Lexer: Missing gt');
+                }
+                $token = new
+                HTMLPurifier_Token_Text(
+                    '<' .
+                    $this->parseData(
+                        substr($html, $cursor)
+                    )
+                );
+                if ($maintain_line_numbers) {
+                    $token->rawPosition($current_line, $current_col);
+                }
+                // no cursor scroll? Hmm...
+                $array[] = $token;
+                break;
+            }
+            break;
+        }
+
+        $context->destroy('CurrentLine');
+        $context->destroy('CurrentCol');
+        return $array;
+    }
+
+    /**
+     * PHP 5.0.x compatible substr_count that implements offset and length
+     * @param string $haystack
+     * @param string $needle
+     * @param int $offset
+     * @param int $length
+     * @return int
+     */
+    protected function substrCount($haystack, $needle, $offset, $length)
+    {
+        static $oldVersion;
+        if ($oldVersion === null) {
+            $oldVersion = version_compare(PHP_VERSION, '5.1', '<');
+        }
+        if ($oldVersion) {
+            $haystack = substr($haystack, $offset, $length);
+            return substr_count($haystack, $needle);
+        } else {
+            return substr_count($haystack, $needle, $offset, $length);
+        }
+    }
+
+    /**
+     * Takes the inside of an HTML tag and makes an assoc array of attributes.
+     *
+     * @param string $string Inside of tag excluding name.
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array Assoc array of attributes.
+     */
+    public function parseAttributeString($string, $config, $context)
+    {
+        $string = (string)$string; // quick typecast
+
+        if ($string == '') {
+            return array();
+        } // no attributes
+
+        $e = false;
+        if ($config->get('Core.CollectErrors')) {
+            $e =& $context->get('ErrorCollector');
+        }
+
+        // let's see if we can abort as quickly as possible
+        // one equal sign, no spaces => one attribute
+        $num_equal = substr_count($string, '=');
+        $has_space = strpos($string, ' ');
+        if ($num_equal === 0 && !$has_space) {
+            // bool attribute
+            return array($string => $string);
+        } elseif ($num_equal === 1 && !$has_space) {
+            // only one attribute
+            list($key, $quoted_value) = explode('=', $string);
+            $quoted_value = trim($quoted_value);
+            if (!$key) {
+                if ($e) {
+                    $e->send(E_ERROR, 'Lexer: Missing attribute key');
+                }
+                return array();
+            }
+            if (!$quoted_value) {
+                return array($key => '');
+            }
+            $first_char = @$quoted_value[0];
+            $last_char = @$quoted_value[strlen($quoted_value) - 1];
+
+            $same_quote = ($first_char == $last_char);
+            $open_quote = ($first_char == '"' || $first_char == "'");
+
+            if ($same_quote && $open_quote) {
+                // well behaved
+                $value = substr($quoted_value, 1, strlen($quoted_value) - 2);
+            } else {
+                // not well behaved
+                if ($open_quote) {
+                    if ($e) {
+                        $e->send(E_ERROR, 'Lexer: Missing end quote');
+                    }
+                    $value = substr($quoted_value, 1);
+                } else {
+                    $value = $quoted_value;
+                }
+            }
+            if ($value === false) {
+                $value = '';
+            }
+            return array($key => $this->parseData($value));
+        }
+
+        // setup loop environment
+        $array = array(); // return assoc array of attributes
+        $cursor = 0; // current position in string (moves forward)
+        $size = strlen($string); // size of the string (stays the same)
+
+        // if we have unquoted attributes, the parser expects a terminating
+        // space, so let's guarantee that there's always a terminating space.
+        $string .= ' ';
+
+        $old_cursor = -1;
+        while ($cursor < $size) {
+            if ($old_cursor >= $cursor) {
+                throw new Exception("Infinite loop detected");
+            }
+            $old_cursor = $cursor;
+
+            $cursor += ($value = strspn($string, $this->_whitespace, $cursor));
+            // grab the key
+
+            $key_begin = $cursor; //we're currently at the start of the key
+
+            // scroll past all characters that are the key (not whitespace or =)
+            $cursor += strcspn($string, $this->_whitespace . '=', $cursor);
+
+            $key_end = $cursor; // now at the end of the key
+
+            $key = substr($string, $key_begin, $key_end - $key_begin);
+
+            if (!$key) {
+                if ($e) {
+                    $e->send(E_ERROR, 'Lexer: Missing attribute key');
+                }
+                $cursor += 1 + strcspn($string, $this->_whitespace, $cursor + 1); // prevent infinite loop
+                continue; // empty key
+            }
+
+            // scroll past all whitespace
+            $cursor += strspn($string, $this->_whitespace, $cursor);
+
+            if ($cursor >= $size) {
+                $array[$key] = $key;
+                break;
+            }
+
+            // if the next character is an equal sign, we've got a regular
+            // pair, otherwise, it's a bool attribute
+            $first_char = @$string[$cursor];
+
+            if ($first_char == '=') {
+                // key="value"
+
+                $cursor++;
+                $cursor += strspn($string, $this->_whitespace, $cursor);
+
+                if ($cursor === false) {
+                    $array[$key] = '';
+                    break;
+                }
+
+                // we might be in front of a quote right now
+
+                $char = @$string[$cursor];
+
+                if ($char == '"' || $char == "'") {
+                    // it's quoted, end bound is $char
+                    $cursor++;
+                    $value_begin = $cursor;
+                    $cursor = strpos($string, $char, $cursor);
+                    $value_end = $cursor;
+                } else {
+                    // it's not quoted, end bound is whitespace
+                    $value_begin = $cursor;
+                    $cursor += strcspn($string, $this->_whitespace, $cursor);
+                    $value_end = $cursor;
+                }
+
+                // we reached a premature end
+                if ($cursor === false) {
+                    $cursor = $size;
+                    $value_end = $cursor;
+                }
+
+                $value = substr($string, $value_begin, $value_end - $value_begin);
+                if ($value === false) {
+                    $value = '';
+                }
+                $array[$key] = $this->parseData($value);
+                $cursor++;
+            } else {
+                // boolattr
+                if ($key !== '') {
+                    $array[$key] = $key;
+                } else {
+                    // purely theoretical
+                    if ($e) {
+                        $e->send(E_ERROR, 'Lexer: Missing attribute key');
+                    }
+                }
+            }
+        }
+        return $array;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
new file mode 100644
index 0000000..a4587e4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
@@ -0,0 +1,4788 @@
+<?php
+
+/**
+ * Experimental HTML5-based parser using Jeroen van der Meer's PH5P library.
+ * Occupies space in the HTML5 pseudo-namespace, which may cause conflicts.
+ *
+ * @note
+ *    Recent changes to PHP's DOM extension have resulted in some fatal
+ *    error conditions with the original version of PH5P. Pending changes,
+ *    this lexer will punt to DirectLex if DOM throws an exception.
+ */
+
+class HTMLPurifier_Lexer_PH5P extends HTMLPurifier_Lexer_DOMLex
+{
+    /**
+     * @param string $html
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token[]
+     */
+    public function tokenizeHTML($html, $config, $context)
+    {
+        $new_html = $this->normalize($html, $config, $context);
+        $new_html = $this->wrapHTML($new_html, $config, $context);
+        try {
+            $parser = new HTML5($new_html);
+            $doc = $parser->save();
+        } catch (DOMException $e) {
+            // Uh oh, it failed. Punt to DirectLex.
+            $lexer = new HTMLPurifier_Lexer_DirectLex();
+            $context->register('PH5PError', $e); // save the error, so we can detect it
+            return $lexer->tokenizeHTML($html, $config, $context); // use original HTML
+        }
+        $tokens = array();
+        $this->tokenizeDOM(
+            $doc->getElementsByTagName('html')->item(0)-> // <html>
+                getElementsByTagName('body')->item(0)-> //   <body>
+                getElementsByTagName('div')->item(0) //     <div>
+            ,
+            $tokens
+        );
+        return $tokens;
+    }
+}
+
+/*
+
+Copyright 2007 Jeroen van der Meer <http://jero.net/>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+*/
+
+class HTML5
+{
+    private $data;
+    private $char;
+    private $EOF;
+    private $state;
+    private $tree;
+    private $token;
+    private $content_model;
+    private $escape = false;
+    private $entities = array(
+        'AElig;',
+        'AElig',
+        'AMP;',
+        'AMP',
+        'Aacute;',
+        'Aacute',
+        'Acirc;',
+        'Acirc',
+        'Agrave;',
+        'Agrave',
+        'Alpha;',
+        'Aring;',
+        'Aring',
+        'Atilde;',
+        'Atilde',
+        'Auml;',
+        'Auml',
+        'Beta;',
+        'COPY;',
+        'COPY',
+        'Ccedil;',
+        'Ccedil',
+        'Chi;',
+        'Dagger;',
+        'Delta;',
+        'ETH;',
+        'ETH',
+        'Eacute;',
+        'Eacute',
+        'Ecirc;',
+        'Ecirc',
+        'Egrave;',
+        'Egrave',
+        'Epsilon;',
+        'Eta;',
+        'Euml;',
+        'Euml',
+        'GT;',
+        'GT',
+        'Gamma;',
+        'Iacute;',
+        'Iacute',
+        'Icirc;',
+        'Icirc',
+        'Igrave;',
+        'Igrave',
+        'Iota;',
+        'Iuml;',
+        'Iuml',
+        'Kappa;',
+        'LT;',
+        'LT',
+        'Lambda;',
+        'Mu;',
+        'Ntilde;',
+        'Ntilde',
+        'Nu;',
+        'OElig;',
+        'Oacute;',
+        'Oacute',
+        'Ocirc;',
+        'Ocirc',
+        'Ograve;',
+        'Ograve',
+        'Omega;',
+        'Omicron;',
+        'Oslash;',
+        'Oslash',
+        'Otilde;',
+        'Otilde',
+        'Ouml;',
+        'Ouml',
+        'Phi;',
+        'Pi;',
+        'Prime;',
+        'Psi;',
+        'QUOT;',
+        'QUOT',
+        'REG;',
+        'REG',
+        'Rho;',
+        'Scaron;',
+        'Sigma;',
+        'THORN;',
+        'THORN',
+        'TRADE;',
+        'Tau;',
+        'Theta;',
+        'Uacute;',
+        'Uacute',
+        'Ucirc;',
+        'Ucirc',
+        'Ugrave;',
+        'Ugrave',
+        'Upsilon;',
+        'Uuml;',
+        'Uuml',
+        'Xi;',
+        'Yacute;',
+        'Yacute',
+        'Yuml;',
+        'Zeta;',
+        'aacute;',
+        'aacute',
+        'acirc;',
+        'acirc',
+        'acute;',
+        'acute',
+        'aelig;',
+        'aelig',
+        'agrave;',
+        'agrave',
+        'alefsym;',
+        'alpha;',
+        'amp;',
+        'amp',
+        'and;',
+        'ang;',
+        'apos;',
+        'aring;',
+        'aring',
+        'asymp;',
+        'atilde;',
+        'atilde',
+        'auml;',
+        'auml',
+        'bdquo;',
+        'beta;',
+        'brvbar;',
+        'brvbar',
+        'bull;',
+        'cap;',
+        'ccedil;',
+        'ccedil',
+        'cedil;',
+        'cedil',
+        'cent;',
+        'cent',
+        'chi;',
+        'circ;',
+        'clubs;',
+        'cong;',
+        'copy;',
+        'copy',
+        'crarr;',
+        'cup;',
+        'curren;',
+        'curren',
+        'dArr;',
+        'dagger;',
+        'darr;',
+        'deg;',
+        'deg',
+        'delta;',
+        'diams;',
+        'divide;',
+        'divide',
+        'eacute;',
+        'eacute',
+        'ecirc;',
+        'ecirc',
+        'egrave;',
+        'egrave',
+        'empty;',
+        'emsp;',
+        'ensp;',
+        'epsilon;',
+        'equiv;',
+        'eta;',
+        'eth;',
+        'eth',
+        'euml;',
+        'euml',
+        'euro;',
+        'exist;',
+        'fnof;',
+        'forall;',
+        'frac12;',
+        'frac12',
+        'frac14;',
+        'frac14',
+        'frac34;',
+        'frac34',
+        'frasl;',
+        'gamma;',
+        'ge;',
+        'gt;',
+        'gt',
+        'hArr;',
+        'harr;',
+        'hearts;',
+        'hellip;',
+        'iacute;',
+        'iacute',
+        'icirc;',
+        'icirc',
+        'iexcl;',
+        'iexcl',
+        'igrave;',
+        'igrave',
+        'image;',
+        'infin;',
+        'int;',
+        'iota;',
+        'iquest;',
+        'iquest',
+        'isin;',
+        'iuml;',
+        'iuml',
+        'kappa;',
+        'lArr;',
+        'lambda;',
+        'lang;',
+        'laquo;',
+        'laquo',
+        'larr;',
+        'lceil;',
+        'ldquo;',
+        'le;',
+        'lfloor;',
+        'lowast;',
+        'loz;',
+        'lrm;',
+        'lsaquo;',
+        'lsquo;',
+        'lt;',
+        'lt',
+        'macr;',
+        'macr',
+        'mdash;',
+        'micro;',
+        'micro',
+        'middot;',
+        'middot',
+        'minus;',
+        'mu;',
+        'nabla;',
+        'nbsp;',
+        'nbsp',
+        'ndash;',
+        'ne;',
+        'ni;',
+        'not;',
+        'not',
+        'notin;',
+        'nsub;',
+        'ntilde;',
+        'ntilde',
+        'nu;',
+        'oacute;',
+        'oacute',
+        'ocirc;',
+        'ocirc',
+        'oelig;',
+        'ograve;',
+        'ograve',
+        'oline;',
+        'omega;',
+        'omicron;',
+        'oplus;',
+        'or;',
+        'ordf;',
+        'ordf',
+        'ordm;',
+        'ordm',
+        'oslash;',
+        'oslash',
+        'otilde;',
+        'otilde',
+        'otimes;',
+        'ouml;',
+        'ouml',
+        'para;',
+        'para',
+        'part;',
+        'permil;',
+        'perp;',
+        'phi;',
+        'pi;',
+        'piv;',
+        'plusmn;',
+        'plusmn',
+        'pound;',
+        'pound',
+        'prime;',
+        'prod;',
+        'prop;',
+        'psi;',
+        'quot;',
+        'quot',
+        'rArr;',
+        'radic;',
+        'rang;',
+        'raquo;',
+        'raquo',
+        'rarr;',
+        'rceil;',
+        'rdquo;',
+        'real;',
+        'reg;',
+        'reg',
+        'rfloor;',
+        'rho;',
+        'rlm;',
+        'rsaquo;',
+        'rsquo;',
+        'sbquo;',
+        'scaron;',
+        'sdot;',
+        'sect;',
+        'sect',
+        'shy;',
+        'shy',
+        'sigma;',
+        'sigmaf;',
+        'sim;',
+        'spades;',
+        'sub;',
+        'sube;',
+        'sum;',
+        'sup1;',
+        'sup1',
+        'sup2;',
+        'sup2',
+        'sup3;',
+        'sup3',
+        'sup;',
+        'supe;',
+        'szlig;',
+        'szlig',
+        'tau;',
+        'there4;',
+        'theta;',
+        'thetasym;',
+        'thinsp;',
+        'thorn;',
+        'thorn',
+        'tilde;',
+        'times;',
+        'times',
+        'trade;',
+        'uArr;',
+        'uacute;',
+        'uacute',
+        'uarr;',
+        'ucirc;',
+        'ucirc',
+        'ugrave;',
+        'ugrave',
+        'uml;',
+        'uml',
+        'upsih;',
+        'upsilon;',
+        'uuml;',
+        'uuml',
+        'weierp;',
+        'xi;',
+        'yacute;',
+        'yacute',
+        'yen;',
+        'yen',
+        'yuml;',
+        'yuml',
+        'zeta;',
+        'zwj;',
+        'zwnj;'
+    );
+
+    const PCDATA = 0;
+    const RCDATA = 1;
+    const CDATA = 2;
+    const PLAINTEXT = 3;
+
+    const DOCTYPE = 0;
+    const STARTTAG = 1;
+    const ENDTAG = 2;
+    const COMMENT = 3;
+    const CHARACTR = 4;
+    const EOF = 5;
+
+    public function __construct($data)
+    {
+        $this->data = $data;
+        $this->char = -1;
+        $this->EOF = strlen($data);
+        $this->tree = new HTML5TreeConstructer;
+        $this->content_model = self::PCDATA;
+
+        $this->state = 'data';
+
+        while ($this->state !== null) {
+            $this->{$this->state . 'State'}();
+        }
+    }
+
+    public function save()
+    {
+        return $this->tree->save();
+    }
+
+    private function char()
+    {
+        return ($this->char < $this->EOF)
+            ? $this->data[$this->char]
+            : false;
+    }
+
+    private function character($s, $l = 0)
+    {
+        if ($s + $l < $this->EOF) {
+            if ($l === 0) {
+                return $this->data[$s];
+            } else {
+                return substr($this->data, $s, $l);
+            }
+        }
+    }
+
+    private function characters($char_class, $start)
+    {
+        return preg_replace('#^([' . $char_class . ']+).*#s', '\\1', substr($this->data, $start));
+    }
+
+    private function dataState()
+    {
+        // Consume the next input character
+        $this->char++;
+        $char = $this->char();
+
+        if ($char === '&' && ($this->content_model === self::PCDATA || $this->content_model === self::RCDATA)) {
+            /* U+0026 AMPERSAND (&)
+            When the content model flag is set to one of the PCDATA or RCDATA
+            states: switch to the entity data state. Otherwise: treat it as per
+            the "anything else"    entry below. */
+            $this->state = 'entityData';
+
+        } elseif ($char === '-') {
+            /* If the content model flag is set to either the RCDATA state or
+            the CDATA state, and the escape flag is false, and there are at
+            least three characters before this one in the input stream, and the
+            last four characters in the input stream, including this one, are
+            U+003C LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS,
+            and U+002D HYPHEN-MINUS ("<!--"), then set the escape flag to true. */
+            if (($this->content_model === self::RCDATA || $this->content_model ===
+                    self::CDATA) && $this->escape === false &&
+                $this->char >= 3 && $this->character($this->char - 4, 4) === '<!--'
+            ) {
+                $this->escape = true;
+            }
+
+            /* In any case, emit the input character as a character token. Stay
+            in the data state. */
+            $this->emitToken(
+                array(
+                    'type' => self::CHARACTR,
+                    'data' => $char
+                )
+            );
+
+            /* U+003C LESS-THAN SIGN (<) */
+        } elseif ($char === '<' && ($this->content_model === self::PCDATA ||
+                (($this->content_model === self::RCDATA ||
+                        $this->content_model === self::CDATA) && $this->escape === false))
+        ) {
+            /* When the content model flag is set to the PCDATA state: switch
+            to the tag open state.
+
+            When the content model flag is set to either the RCDATA state or
+            the CDATA state and the escape flag is false: switch to the tag
+            open state.
+
+            Otherwise: treat it as per the "anything else" entry below. */
+            $this->state = 'tagOpen';
+
+            /* U+003E GREATER-THAN SIGN (>) */
+        } elseif ($char === '>') {
+            /* If the content model flag is set to either the RCDATA state or
+            the CDATA state, and the escape flag is true, and the last three
+            characters in the input stream including this one are U+002D
+            HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN ("-->"),
+            set the escape flag to false. */
+            if (($this->content_model === self::RCDATA ||
+                    $this->content_model === self::CDATA) && $this->escape === true &&
+                $this->character($this->char, 3) === '-->'
+            ) {
+                $this->escape = false;
+            }
+
+            /* In any case, emit the input character as a character token.
+            Stay in the data state. */
+            $this->emitToken(
+                array(
+                    'type' => self::CHARACTR,
+                    'data' => $char
+                )
+            );
+
+        } elseif ($this->char === $this->EOF) {
+            /* EOF
+            Emit an end-of-file token. */
+            $this->EOF();
+
+        } elseif ($this->content_model === self::PLAINTEXT) {
+            /* When the content model flag is set to the PLAINTEXT state
+            THIS DIFFERS GREATLY FROM THE SPEC: Get the remaining characters of
+            the text and emit it as a character token. */
+            $this->emitToken(
+                array(
+                    'type' => self::CHARACTR,
+                    'data' => substr($this->data, $this->char)
+                )
+            );
+
+            $this->EOF();
+
+        } else {
+            /* Anything else
+            THIS DIFFERS GREATLY FROM THE SPEC: Get as many character that
+            otherwise would also be treated as a character token and emit it
+            as a single character token. Stay in the data state. */
+            $len = strcspn($this->data, '<&', $this->char);
+            $char = substr($this->data, $this->char, $len);
+            $this->char += $len - 1;
+
+            $this->emitToken(
+                array(
+                    'type' => self::CHARACTR,
+                    'data' => $char
+                )
+            );
+
+            $this->state = 'data';
+        }
+    }
+
+    private function entityDataState()
+    {
+        // Attempt to consume an entity.
+        $entity = $this->entity();
+
+        // If nothing is returned, emit a U+0026 AMPERSAND character token.
+        // Otherwise, emit the character token that was returned.
+        $char = (!$entity) ? '&' : $entity;
+        $this->emitToken(
+            array(
+                'type' => self::CHARACTR,
+                'data' => $char
+            )
+        );
+
+        // Finally, switch to the data state.
+        $this->state = 'data';
+    }
+
+    private function tagOpenState()
+    {
+        switch ($this->content_model) {
+            case self::RCDATA:
+            case self::CDATA:
+                /* If the next input character is a U+002F SOLIDUS (/) character,
+                consume it and switch to the close tag open state. If the next
+                input character is not a U+002F SOLIDUS (/) character, emit a
+                U+003C LESS-THAN SIGN character token and switch to the data
+                state to process the next input character. */
+                if ($this->character($this->char + 1) === '/') {
+                    $this->char++;
+                    $this->state = 'closeTagOpen';
+
+                } else {
+                    $this->emitToken(
+                        array(
+                            'type' => self::CHARACTR,
+                            'data' => '<'
+                        )
+                    );
+
+                    $this->state = 'data';
+                }
+                break;
+
+            case self::PCDATA:
+                // If the content model flag is set to the PCDATA state
+                // Consume the next input character:
+                $this->char++;
+                $char = $this->char();
+
+                if ($char === '!') {
+                    /* U+0021 EXCLAMATION MARK (!)
+                    Switch to the markup declaration open state. */
+                    $this->state = 'markupDeclarationOpen';
+
+                } elseif ($char === '/') {
+                    /* U+002F SOLIDUS (/)
+                    Switch to the close tag open state. */
+                    $this->state = 'closeTagOpen';
+
+                } elseif (preg_match('/^[A-Za-z]$/', $char)) {
+                    /* U+0041 LATIN LETTER A through to U+005A LATIN LETTER Z
+                    Create a new start tag token, set its tag name to the lowercase
+                    version of the input character (add 0x0020 to the character's code
+                    point), then switch to the tag name state. (Don't emit the token
+                    yet; further details will be filled in before it is emitted.) */
+                    $this->token = array(
+                        'name' => strtolower($char),
+                        'type' => self::STARTTAG,
+                        'attr' => array()
+                    );
+
+                    $this->state = 'tagName';
+
+                } elseif ($char === '>') {
+                    /* U+003E GREATER-THAN SIGN (>)
+                    Parse error. Emit a U+003C LESS-THAN SIGN character token and a
+                    U+003E GREATER-THAN SIGN character token. Switch to the data state. */
+                    $this->emitToken(
+                        array(
+                            'type' => self::CHARACTR,
+                            'data' => '<>'
+                        )
+                    );
+
+                    $this->state = 'data';
+
+                } elseif ($char === '?') {
+                    /* U+003F QUESTION MARK (?)
+                    Parse error. Switch to the bogus comment state. */
+                    $this->state = 'bogusComment';
+
+                } else {
+                    /* Anything else
+                    Parse error. Emit a U+003C LESS-THAN SIGN character token and
+                    reconsume the current input character in the data state. */
+                    $this->emitToken(
+                        array(
+                            'type' => self::CHARACTR,
+                            'data' => '<'
+                        )
+                    );
+
+                    $this->char--;
+                    $this->state = 'data';
+                }
+                break;
+        }
+    }
+
+    private function closeTagOpenState()
+    {
+        $next_node = strtolower($this->characters('A-Za-z', $this->char + 1));
+        $the_same = count($this->tree->stack) > 0 && $next_node === end($this->tree->stack)->nodeName;
+
+        if (($this->content_model === self::RCDATA || $this->content_model === self::CDATA) &&
+            (!$the_same || ($the_same && (!preg_match(
+                            '/[\t\n\x0b\x0c >\/]/',
+                            $this->character($this->char + 1 + strlen($next_node))
+                        ) || $this->EOF === $this->char)))
+        ) {
+            /* If the content model flag is set to the RCDATA or CDATA states then
+            examine the next few characters. If they do not match the tag name of
+            the last start tag token emitted (case insensitively), or if they do but
+            they are not immediately followed by one of the following characters:
+                * U+0009 CHARACTER TABULATION
+                * U+000A LINE FEED (LF)
+                * U+000B LINE TABULATION
+                * U+000C FORM FEED (FF)
+                * U+0020 SPACE
+                * U+003E GREATER-THAN SIGN (>)
+                * U+002F SOLIDUS (/)
+                * EOF
+            ...then there is a parse error. Emit a U+003C LESS-THAN SIGN character
+            token, a U+002F SOLIDUS character token, and switch to the data state
+            to process the next input character. */
+            $this->emitToken(
+                array(
+                    'type' => self::CHARACTR,
+                    'data' => '</'
+                )
+            );
+
+            $this->state = 'data';
+
+        } else {
+            /* Otherwise, if the content model flag is set to the PCDATA state,
+            or if the next few characters do match that tag name, consume the
+            next input character: */
+            $this->char++;
+            $char = $this->char();
+
+            if (preg_match('/^[A-Za-z]$/', $char)) {
+                /* U+0041 LATIN LETTER A through to U+005A LATIN LETTER Z
+                Create a new end tag token, set its tag name to the lowercase version
+                of the input character (add 0x0020 to the character's code point), then
+                switch to the tag name state. (Don't emit the token yet; further details
+                will be filled in before it is emitted.) */
+                $this->token = array(
+                    'name' => strtolower($char),
+                    'type' => self::ENDTAG
+                );
+
+                $this->state = 'tagName';
+
+            } elseif ($char === '>') {
+                /* U+003E GREATER-THAN SIGN (>)
+                Parse error. Switch to the data state. */
+                $this->state = 'data';
+
+            } elseif ($this->char === $this->EOF) {
+                /* EOF
+                Parse error. Emit a U+003C LESS-THAN SIGN character token and a U+002F
+                SOLIDUS character token. Reconsume the EOF character in the data state. */
+                $this->emitToken(
+                    array(
+                        'type' => self::CHARACTR,
+                        'data' => '</'
+                    )
+                );
+
+                $this->char--;
+                $this->state = 'data';
+
+            } else {
+                /* Parse error. Switch to the bogus comment state. */
+                $this->state = 'bogusComment';
+            }
+        }
+    }
+
+    private function tagNameState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            /* U+0009 CHARACTER TABULATION
+            U+000A LINE FEED (LF)
+            U+000B LINE TABULATION
+            U+000C FORM FEED (FF)
+            U+0020 SPACE
+            Switch to the before attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($char === '>') {
+            /* U+003E GREATER-THAN SIGN (>)
+            Emit the current tag token. Switch to the data state. */
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif ($this->char === $this->EOF) {
+            /* EOF
+            Parse error. Emit the current tag token. Reconsume the EOF
+            character in the data state. */
+            $this->emitToken($this->token);
+
+            $this->char--;
+            $this->state = 'data';
+
+        } elseif ($char === '/') {
+            /* U+002F SOLIDUS (/)
+            Parse error unless this is a permitted slash. Switch to the before
+            attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } else {
+            /* Anything else
+            Append the current input character to the current tag token's tag name.
+            Stay in the tag name state. */
+            $this->token['name'] .= strtolower($char);
+            $this->state = 'tagName';
+        }
+    }
+
+    private function beforeAttributeNameState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            /* U+0009 CHARACTER TABULATION
+            U+000A LINE FEED (LF)
+            U+000B LINE TABULATION
+            U+000C FORM FEED (FF)
+            U+0020 SPACE
+            Stay in the before attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($char === '>') {
+            /* U+003E GREATER-THAN SIGN (>)
+            Emit the current tag token. Switch to the data state. */
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif ($char === '/') {
+            /* U+002F SOLIDUS (/)
+            Parse error unless this is a permitted slash. Stay in the before
+            attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($this->char === $this->EOF) {
+            /* EOF
+            Parse error. Emit the current tag token. Reconsume the EOF
+            character in the data state. */
+            $this->emitToken($this->token);
+
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            /* Anything else
+            Start a new attribute in the current tag token. Set that attribute's
+            name to the current input character, and its value to the empty string.
+            Switch to the attribute name state. */
+            $this->token['attr'][] = array(
+                'name' => strtolower($char),
+                'value' => null
+            );
+
+            $this->state = 'attributeName';
+        }
+    }
+
+    private function attributeNameState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            /* U+0009 CHARACTER TABULATION
+            U+000A LINE FEED (LF)
+            U+000B LINE TABULATION
+            U+000C FORM FEED (FF)
+            U+0020 SPACE
+            Stay in the before attribute name state. */
+            $this->state = 'afterAttributeName';
+
+        } elseif ($char === '=') {
+            /* U+003D EQUALS SIGN (=)
+            Switch to the before attribute value state. */
+            $this->state = 'beforeAttributeValue';
+
+        } elseif ($char === '>') {
+            /* U+003E GREATER-THAN SIGN (>)
+            Emit the current tag token. Switch to the data state. */
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif ($char === '/' && $this->character($this->char + 1) !== '>') {
+            /* U+002F SOLIDUS (/)
+            Parse error unless this is a permitted slash. Switch to the before
+            attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($this->char === $this->EOF) {
+            /* EOF
+            Parse error. Emit the current tag token. Reconsume the EOF
+            character in the data state. */
+            $this->emitToken($this->token);
+
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            /* Anything else
+            Append the current input character to the current attribute's name.
+            Stay in the attribute name state. */
+            $last = count($this->token['attr']) - 1;
+            $this->token['attr'][$last]['name'] .= strtolower($char);
+
+            $this->state = 'attributeName';
+        }
+    }
+
+    private function afterAttributeNameState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            /* U+0009 CHARACTER TABULATION
+            U+000A LINE FEED (LF)
+            U+000B LINE TABULATION
+            U+000C FORM FEED (FF)
+            U+0020 SPACE
+            Stay in the after attribute name state. */
+            $this->state = 'afterAttributeName';
+
+        } elseif ($char === '=') {
+            /* U+003D EQUALS SIGN (=)
+            Switch to the before attribute value state. */
+            $this->state = 'beforeAttributeValue';
+
+        } elseif ($char === '>') {
+            /* U+003E GREATER-THAN SIGN (>)
+            Emit the current tag token. Switch to the data state. */
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif ($char === '/' && $this->character($this->char + 1) !== '>') {
+            /* U+002F SOLIDUS (/)
+            Parse error unless this is a permitted slash. Switch to the
+            before attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($this->char === $this->EOF) {
+            /* EOF
+            Parse error. Emit the current tag token. Reconsume the EOF
+            character in the data state. */
+            $this->emitToken($this->token);
+
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            /* Anything else
+            Start a new attribute in the current tag token. Set that attribute's
+            name to the current input character, and its value to the empty string.
+            Switch to the attribute name state. */
+            $this->token['attr'][] = array(
+                'name' => strtolower($char),
+                'value' => null
+            );
+
+            $this->state = 'attributeName';
+        }
+    }
+
+    private function beforeAttributeValueState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            /* U+0009 CHARACTER TABULATION
+            U+000A LINE FEED (LF)
+            U+000B LINE TABULATION
+            U+000C FORM FEED (FF)
+            U+0020 SPACE
+            Stay in the before attribute value state. */
+            $this->state = 'beforeAttributeValue';
+
+        } elseif ($char === '"') {
+            /* U+0022 QUOTATION MARK (")
+            Switch to the attribute value (double-quoted) state. */
+            $this->state = 'attributeValueDoubleQuoted';
+
+        } elseif ($char === '&') {
+            /* U+0026 AMPERSAND (&)
+            Switch to the attribute value (unquoted) state and reconsume
+            this input character. */
+            $this->char--;
+            $this->state = 'attributeValueUnquoted';
+
+        } elseif ($char === '\'') {
+            /* U+0027 APOSTROPHE (')
+            Switch to the attribute value (single-quoted) state. */
+            $this->state = 'attributeValueSingleQuoted';
+
+        } elseif ($char === '>') {
+            /* U+003E GREATER-THAN SIGN (>)
+            Emit the current tag token. Switch to the data state. */
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } else {
+            /* Anything else
+            Append the current input character to the current attribute's value.
+            Switch to the attribute value (unquoted) state. */
+            $last = count($this->token['attr']) - 1;
+            $this->token['attr'][$last]['value'] .= $char;
+
+            $this->state = 'attributeValueUnquoted';
+        }
+    }
+
+    private function attributeValueDoubleQuotedState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if ($char === '"') {
+            /* U+0022 QUOTATION MARK (")
+            Switch to the before attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($char === '&') {
+            /* U+0026 AMPERSAND (&)
+            Switch to the entity in attribute value state. */
+            $this->entityInAttributeValueState('double');
+
+        } elseif ($this->char === $this->EOF) {
+            /* EOF
+            Parse error. Emit the current tag token. Reconsume the character
+            in the data state. */
+            $this->emitToken($this->token);
+
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            /* Anything else
+            Append the current input character to the current attribute's value.
+            Stay in the attribute value (double-quoted) state. */
+            $last = count($this->token['attr']) - 1;
+            $this->token['attr'][$last]['value'] .= $char;
+
+            $this->state = 'attributeValueDoubleQuoted';
+        }
+    }
+
+    private function attributeValueSingleQuotedState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if ($char === '\'') {
+            /* U+0022 QUOTATION MARK (')
+            Switch to the before attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($char === '&') {
+            /* U+0026 AMPERSAND (&)
+            Switch to the entity in attribute value state. */
+            $this->entityInAttributeValueState('single');
+
+        } elseif ($this->char === $this->EOF) {
+            /* EOF
+            Parse error. Emit the current tag token. Reconsume the character
+            in the data state. */
+            $this->emitToken($this->token);
+
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            /* Anything else
+            Append the current input character to the current attribute's value.
+            Stay in the attribute value (single-quoted) state. */
+            $last = count($this->token['attr']) - 1;
+            $this->token['attr'][$last]['value'] .= $char;
+
+            $this->state = 'attributeValueSingleQuoted';
+        }
+    }
+
+    private function attributeValueUnquotedState()
+    {
+        // Consume the next input character:
+        $this->char++;
+        $char = $this->character($this->char);
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            /* U+0009 CHARACTER TABULATION
+            U+000A LINE FEED (LF)
+            U+000B LINE TABULATION
+            U+000C FORM FEED (FF)
+            U+0020 SPACE
+            Switch to the before attribute name state. */
+            $this->state = 'beforeAttributeName';
+
+        } elseif ($char === '&') {
+            /* U+0026 AMPERSAND (&)
+            Switch to the entity in attribute value state. */
+            $this->entityInAttributeValueState();
+
+        } elseif ($char === '>') {
+            /* U+003E GREATER-THAN SIGN (>)
+            Emit the current tag token. Switch to the data state. */
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } else {
+            /* Anything else
+            Append the current input character to the current attribute's value.
+            Stay in the attribute value (unquoted) state. */
+            $last = count($this->token['attr']) - 1;
+            $this->token['attr'][$last]['value'] .= $char;
+
+            $this->state = 'attributeValueUnquoted';
+        }
+    }
+
+    private function entityInAttributeValueState()
+    {
+        // Attempt to consume an entity.
+        $entity = $this->entity();
+
+        // If nothing is returned, append a U+0026 AMPERSAND character to the
+        // current attribute's value. Otherwise, emit the character token that
+        // was returned.
+        $char = (!$entity)
+            ? '&'
+            : $entity;
+
+        $last = count($this->token['attr']) - 1;
+        $this->token['attr'][$last]['value'] .= $char;
+    }
+
+    private function bogusCommentState()
+    {
+        /* Consume every character up to the first U+003E GREATER-THAN SIGN
+        character (>) or the end of the file (EOF), whichever comes first. Emit
+        a comment token whose data is the concatenation of all the characters
+        starting from and including the character that caused the state machine
+        to switch into the bogus comment state, up to and including the last
+        consumed character before the U+003E character, if any, or up to the
+        end of the file otherwise. (If the comment was started by the end of
+        the file (EOF), the token is empty.) */
+        $data = $this->characters('^>', $this->char);
+        $this->emitToken(
+            array(
+                'data' => $data,
+                'type' => self::COMMENT
+            )
+        );
+
+        $this->char += strlen($data);
+
+        /* Switch to the data state. */
+        $this->state = 'data';
+
+        /* If the end of the file was reached, reconsume the EOF character. */
+        if ($this->char === $this->EOF) {
+            $this->char = $this->EOF - 1;
+        }
+    }
+
+    private function markupDeclarationOpenState()
+    {
+        /* If the next two characters are both U+002D HYPHEN-MINUS (-)
+        characters, consume those two characters, create a comment token whose
+        data is the empty string, and switch to the comment state. */
+        if ($this->character($this->char + 1, 2) === '--') {
+            $this->char += 2;
+            $this->state = 'comment';
+            $this->token = array(
+                'data' => null,
+                'type' => self::COMMENT
+            );
+
+            /* Otherwise if the next seven chacacters are a case-insensitive match
+            for the word "DOCTYPE", then consume those characters and switch to the
+            DOCTYPE state. */
+        } elseif (strtolower($this->character($this->char + 1, 7)) === 'doctype') {
+            $this->char += 7;
+            $this->state = 'doctype';
+
+            /* Otherwise, is is a parse error. Switch to the bogus comment state.
+            The next character that is consumed, if any, is the first character
+            that will be in the comment. */
+        } else {
+            $this->char++;
+            $this->state = 'bogusComment';
+        }
+    }
+
+    private function commentState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        /* U+002D HYPHEN-MINUS (-) */
+        if ($char === '-') {
+            /* Switch to the comment dash state  */
+            $this->state = 'commentDash';
+
+            /* EOF */
+        } elseif ($this->char === $this->EOF) {
+            /* Parse error. Emit the comment token. Reconsume the EOF character
+            in the data state. */
+            $this->emitToken($this->token);
+            $this->char--;
+            $this->state = 'data';
+
+            /* Anything else */
+        } else {
+            /* Append the input character to the comment token's data. Stay in
+            the comment state. */
+            $this->token['data'] .= $char;
+        }
+    }
+
+    private function commentDashState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        /* U+002D HYPHEN-MINUS (-) */
+        if ($char === '-') {
+            /* Switch to the comment end state  */
+            $this->state = 'commentEnd';
+
+            /* EOF */
+        } elseif ($this->char === $this->EOF) {
+            /* Parse error. Emit the comment token. Reconsume the EOF character
+            in the data state. */
+            $this->emitToken($this->token);
+            $this->char--;
+            $this->state = 'data';
+
+            /* Anything else */
+        } else {
+            /* Append a U+002D HYPHEN-MINUS (-) character and the input
+            character to the comment token's data. Switch to the comment state. */
+            $this->token['data'] .= '-' . $char;
+            $this->state = 'comment';
+        }
+    }
+
+    private function commentEndState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        if ($char === '>') {
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif ($char === '-') {
+            $this->token['data'] .= '-';
+
+        } elseif ($this->char === $this->EOF) {
+            $this->emitToken($this->token);
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            $this->token['data'] .= '--' . $char;
+            $this->state = 'comment';
+        }
+    }
+
+    private function doctypeState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            $this->state = 'beforeDoctypeName';
+
+        } else {
+            $this->char--;
+            $this->state = 'beforeDoctypeName';
+        }
+    }
+
+    private function beforeDoctypeNameState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            // Stay in the before DOCTYPE name state.
+
+        } elseif (preg_match('/^[a-z]$/', $char)) {
+            $this->token = array(
+                'name' => strtoupper($char),
+                'type' => self::DOCTYPE,
+                'error' => true
+            );
+
+            $this->state = 'doctypeName';
+
+        } elseif ($char === '>') {
+            $this->emitToken(
+                array(
+                    'name' => null,
+                    'type' => self::DOCTYPE,
+                    'error' => true
+                )
+            );
+
+            $this->state = 'data';
+
+        } elseif ($this->char === $this->EOF) {
+            $this->emitToken(
+                array(
+                    'name' => null,
+                    'type' => self::DOCTYPE,
+                    'error' => true
+                )
+            );
+
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            $this->token = array(
+                'name' => $char,
+                'type' => self::DOCTYPE,
+                'error' => true
+            );
+
+            $this->state = 'doctypeName';
+        }
+    }
+
+    private function doctypeNameState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            $this->state = 'AfterDoctypeName';
+
+        } elseif ($char === '>') {
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif (preg_match('/^[a-z]$/', $char)) {
+            $this->token['name'] .= strtoupper($char);
+
+        } elseif ($this->char === $this->EOF) {
+            $this->emitToken($this->token);
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            $this->token['name'] .= $char;
+        }
+
+        $this->token['error'] = ($this->token['name'] === 'HTML')
+            ? false
+            : true;
+    }
+
+    private function afterDoctypeNameState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        if (preg_match('/^[\t\n\x0b\x0c ]$/', $char)) {
+            // Stay in the DOCTYPE name state.
+
+        } elseif ($char === '>') {
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif ($this->char === $this->EOF) {
+            $this->emitToken($this->token);
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            $this->token['error'] = true;
+            $this->state = 'bogusDoctype';
+        }
+    }
+
+    private function bogusDoctypeState()
+    {
+        /* Consume the next input character: */
+        $this->char++;
+        $char = $this->char();
+
+        if ($char === '>') {
+            $this->emitToken($this->token);
+            $this->state = 'data';
+
+        } elseif ($this->char === $this->EOF) {
+            $this->emitToken($this->token);
+            $this->char--;
+            $this->state = 'data';
+
+        } else {
+            // Stay in the bogus DOCTYPE state.
+        }
+    }
+
+    private function entity()
+    {
+        $start = $this->char;
+
+        // This section defines how to consume an entity. This definition is
+        // used when parsing entities in text and in attributes.
+
+        // The behaviour depends on the identity of the next character (the
+        // one immediately after the U+0026 AMPERSAND character):
+
+        switch ($this->character($this->char + 1)) {
+            // U+0023 NUMBER SIGN (#)
+            case '#':
+
+                // The behaviour further depends on the character after the
+                // U+0023 NUMBER SIGN:
+                switch ($this->character($this->char + 1)) {
+                    // U+0078 LATIN SMALL LETTER X
+                    // U+0058 LATIN CAPITAL LETTER X
+                    case 'x':
+                    case 'X':
+                        // Follow the steps below, but using the range of
+                        // characters U+0030 DIGIT ZERO through to U+0039 DIGIT
+                        // NINE, U+0061 LATIN SMALL LETTER A through to U+0066
+                        // LATIN SMALL LETTER F, and U+0041 LATIN CAPITAL LETTER
+                        // A, through to U+0046 LATIN CAPITAL LETTER F (in other
+                        // words, 0-9, A-F, a-f).
+                        $char = 1;
+                        $char_class = '0-9A-Fa-f';
+                        break;
+
+                    // Anything else
+                    default:
+                        // Follow the steps below, but using the range of
+                        // characters U+0030 DIGIT ZERO through to U+0039 DIGIT
+                        // NINE (i.e. just 0-9).
+                        $char = 0;
+                        $char_class = '0-9';
+                        break;
+                }
+
+                // Consume as many characters as match the range of characters
+                // given above.
+                $this->char++;
+                $e_name = $this->characters($char_class, $this->char + $char + 1);
+                $entity = $this->character($start, $this->char);
+                $cond = strlen($e_name) > 0;
+
+                // The rest of the parsing happens bellow.
+                break;
+
+            // Anything else
+            default:
+                // Consume the maximum number of characters possible, with the
+                // consumed characters case-sensitively matching one of the
+                // identifiers in the first column of the entities table.
+                $e_name = $this->characters('0-9A-Za-z;', $this->char + 1);
+                $len = strlen($e_name);
+
+                for ($c = 1; $c <= $len; $c++) {
+                    $id = substr($e_name, 0, $c);
+                    $this->char++;
+
+                    if (in_array($id, $this->entities)) {
+                        if ($e_name[$c - 1] !== ';') {
+                            if ($c < $len && $e_name[$c] == ';') {
+                                $this->char++; // consume extra semicolon
+                            }
+                        }
+                        $entity = $id;
+                        break;
+                    }
+                }
+
+                $cond = isset($entity);
+                // The rest of the parsing happens bellow.
+                break;
+        }
+
+        if (!$cond) {
+            // If no match can be made, then this is a parse error. No
+            // characters are consumed, and nothing is returned.
+            $this->char = $start;
+            return false;
+        }
+
+        // Return a character token for the character corresponding to the
+        // entity name (as given by the second column of the entities table).
+        return html_entity_decode('&' . $entity . ';', ENT_QUOTES, 'UTF-8');
+    }
+
+    private function emitToken($token)
+    {
+        $emit = $this->tree->emitToken($token);
+
+        if (is_int($emit)) {
+            $this->content_model = $emit;
+
+        } elseif ($token['type'] === self::ENDTAG) {
+            $this->content_model = self::PCDATA;
+        }
+    }
+
+    private function EOF()
+    {
+        $this->state = null;
+        $this->tree->emitToken(
+            array(
+                'type' => self::EOF
+            )
+        );
+    }
+}
+
+class HTML5TreeConstructer
+{
+    public $stack = array();
+
+    private $phase;
+    private $mode;
+    private $dom;
+    private $foster_parent = null;
+    private $a_formatting = array();
+
+    private $head_pointer = null;
+    private $form_pointer = null;
+
+    private $scoping = array('button', 'caption', 'html', 'marquee', 'object', 'table', 'td', 'th');
+    private $formatting = array(
+        'a',
+        'b',
+        'big',
+        'em',
+        'font',
+        'i',
+        'nobr',
+        's',
+        'small',
+        'strike',
+        'strong',
+        'tt',
+        'u'
+    );
+    private $special = array(
+        'address',
+        'area',
+        'base',
+        'basefont',
+        'bgsound',
+        'blockquote',
+        'body',
+        'br',
+        'center',
+        'col',
+        'colgroup',
+        'dd',
+        'dir',
+        'div',
+        'dl',
+        'dt',
+        'embed',
+        'fieldset',
+        'form',
+        'frame',
+        'frameset',
+        'h1',
+        'h2',
+        'h3',
+        'h4',
+        'h5',
+        'h6',
+        'head',
+        'hr',
+        'iframe',
+        'image',
+        'img',
+        'input',
+        'isindex',
+        'li',
+        'link',
+        'listing',
+        'menu',
+        'meta',
+        'noembed',
+        'noframes',
+        'noscript',
+        'ol',
+        'optgroup',
+        'option',
+        'p',
+        'param',
+        'plaintext',
+        'pre',
+        'script',
+        'select',
+        'spacer',
+        'style',
+        'tbody',
+        'textarea',
+        'tfoot',
+        'thead',
+        'title',
+        'tr',
+        'ul',
+        'wbr'
+    );
+
+    // The different phases.
+    const INIT_PHASE = 0;
+    const ROOT_PHASE = 1;
+    const MAIN_PHASE = 2;
+    const END_PHASE = 3;
+
+    // The different insertion modes for the main phase.
+    const BEFOR_HEAD = 0;
+    const IN_HEAD = 1;
+    const AFTER_HEAD = 2;
+    const IN_BODY = 3;
+    const IN_TABLE = 4;
+    const IN_CAPTION = 5;
+    const IN_CGROUP = 6;
+    const IN_TBODY = 7;
+    const IN_ROW = 8;
+    const IN_CELL = 9;
+    const IN_SELECT = 10;
+    const AFTER_BODY = 11;
+    const IN_FRAME = 12;
+    const AFTR_FRAME = 13;
+
+    // The different types of elements.
+    const SPECIAL = 0;
+    const SCOPING = 1;
+    const FORMATTING = 2;
+    const PHRASING = 3;
+
+    const MARKER = 0;
+
+    public function __construct()
+    {
+        $this->phase = self::INIT_PHASE;
+        $this->mode = self::BEFOR_HEAD;
+        $this->dom = new DOMDocument;
+
+        $this->dom->encoding = 'UTF-8';
+        $this->dom->preserveWhiteSpace = true;
+        $this->dom->substituteEntities = true;
+        $this->dom->strictErrorChecking = false;
+    }
+
+    // Process tag tokens
+    public function emitToken($token)
+    {
+        switch ($this->phase) {
+            case self::INIT_PHASE:
+                return $this->initPhase($token);
+                break;
+            case self::ROOT_PHASE:
+                return $this->rootElementPhase($token);
+                break;
+            case self::MAIN_PHASE:
+                return $this->mainPhase($token);
+                break;
+            case self::END_PHASE :
+                return $this->trailingEndPhase($token);
+                break;
+        }
+    }
+
+    private function initPhase($token)
+    {
+        /* Initially, the tree construction stage must handle each token
+        emitted from the tokenisation stage as follows: */
+
+        /* A DOCTYPE token that is marked as being in error
+        A comment token
+        A start tag token
+        An end tag token
+        A character token that is not one of one of U+0009 CHARACTER TABULATION,
+            U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+            or U+0020 SPACE
+        An end-of-file token */
+        if ((isset($token['error']) && $token['error']) ||
+            $token['type'] === HTML5::COMMENT ||
+            $token['type'] === HTML5::STARTTAG ||
+            $token['type'] === HTML5::ENDTAG ||
+            $token['type'] === HTML5::EOF ||
+            ($token['type'] === HTML5::CHARACTR && isset($token['data']) &&
+                !preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data']))
+        ) {
+            /* This specification does not define how to handle this case. In
+            particular, user agents may ignore the entirety of this specification
+            altogether for such documents, and instead invoke special parse modes
+            with a greater emphasis on backwards compatibility. */
+
+            $this->phase = self::ROOT_PHASE;
+            return $this->rootElementPhase($token);
+
+            /* A DOCTYPE token marked as being correct */
+        } elseif (isset($token['error']) && !$token['error']) {
+            /* Append a DocumentType node to the Document  node, with the name
+            attribute set to the name given in the DOCTYPE token (which will be
+            "HTML"), and the other attributes specific to DocumentType objects
+            set to null, empty lists, or the empty string as appropriate. */
+            $doctype = new DOMDocumentType(null, null, 'HTML');
+
+            /* Then, switch to the root element phase of the tree construction
+            stage. */
+            $this->phase = self::ROOT_PHASE;
+
+            /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+            U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+            or U+0020 SPACE */
+        } elseif (isset($token['data']) && preg_match(
+                '/^[\t\n\x0b\x0c ]+$/',
+                $token['data']
+            )
+        ) {
+            /* Append that character  to the Document node. */
+            $text = $this->dom->createTextNode($token['data']);
+            $this->dom->appendChild($text);
+        }
+    }
+
+    private function rootElementPhase($token)
+    {
+        /* After the initial phase, as each token is emitted from the tokenisation
+        stage, it must be processed as described in this section. */
+
+        /* A DOCTYPE token */
+        if ($token['type'] === HTML5::DOCTYPE) {
+            // Parse error. Ignore the token.
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the Document object with the data
+            attribute set to the data given in the comment token. */
+            $comment = $this->dom->createComment($token['data']);
+            $this->dom->appendChild($comment);
+
+            /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+            U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+            or U+0020 SPACE */
+        } elseif ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Append that character  to the Document node. */
+            $text = $this->dom->createTextNode($token['data']);
+            $this->dom->appendChild($text);
+
+            /* A character token that is not one of U+0009 CHARACTER TABULATION,
+                U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
+                (FF), or U+0020 SPACE
+            A start tag token
+            An end tag token
+            An end-of-file token */
+        } elseif (($token['type'] === HTML5::CHARACTR &&
+                !preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])) ||
+            $token['type'] === HTML5::STARTTAG ||
+            $token['type'] === HTML5::ENDTAG ||
+            $token['type'] === HTML5::EOF
+        ) {
+            /* Create an HTMLElement node with the tag name html, in the HTML
+            namespace. Append it to the Document object. Switch to the main
+            phase and reprocess the current token. */
+            $html = $this->dom->createElement('html');
+            $this->dom->appendChild($html);
+            $this->stack[] = $html;
+
+            $this->phase = self::MAIN_PHASE;
+            return $this->mainPhase($token);
+        }
+    }
+
+    private function mainPhase($token)
+    {
+        /* Tokens in the main phase must be handled as follows: */
+
+        /* A DOCTYPE token */
+        if ($token['type'] === HTML5::DOCTYPE) {
+            // Parse error. Ignore the token.
+
+            /* A start tag token with the tag name "html" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'html') {
+            /* If this start tag token was not the first start tag token, then
+            it is a parse error. */
+
+            /* For each attribute on the token, check to see if the attribute
+            is already present on the top element of the stack of open elements.
+            If it is not, add the attribute and its corresponding value to that
+            element. */
+            foreach ($token['attr'] as $attr) {
+                if (!$this->stack[0]->hasAttribute($attr['name'])) {
+                    $this->stack[0]->setAttribute($attr['name'], $attr['value']);
+                }
+            }
+
+            /* An end-of-file token */
+        } elseif ($token['type'] === HTML5::EOF) {
+            /* Generate implied end tags. */
+            $this->generateImpliedEndTags();
+
+            /* Anything else. */
+        } else {
+            /* Depends on the insertion mode: */
+            switch ($this->mode) {
+                case self::BEFOR_HEAD:
+                    return $this->beforeHead($token);
+                    break;
+                case self::IN_HEAD:
+                    return $this->inHead($token);
+                    break;
+                case self::AFTER_HEAD:
+                    return $this->afterHead($token);
+                    break;
+                case self::IN_BODY:
+                    return $this->inBody($token);
+                    break;
+                case self::IN_TABLE:
+                    return $this->inTable($token);
+                    break;
+                case self::IN_CAPTION:
+                    return $this->inCaption($token);
+                    break;
+                case self::IN_CGROUP:
+                    return $this->inColumnGroup($token);
+                    break;
+                case self::IN_TBODY:
+                    return $this->inTableBody($token);
+                    break;
+                case self::IN_ROW:
+                    return $this->inRow($token);
+                    break;
+                case self::IN_CELL:
+                    return $this->inCell($token);
+                    break;
+                case self::IN_SELECT:
+                    return $this->inSelect($token);
+                    break;
+                case self::AFTER_BODY:
+                    return $this->afterBody($token);
+                    break;
+                case self::IN_FRAME:
+                    return $this->inFrameset($token);
+                    break;
+                case self::AFTR_FRAME:
+                    return $this->afterFrameset($token);
+                    break;
+                case self::END_PHASE:
+                    return $this->trailingEndPhase($token);
+                    break;
+            }
+        }
+    }
+
+    private function beforeHead($token)
+    {
+        /* Handle the token as follows: */
+
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        or U+0020 SPACE */
+        if ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Append the character to the current node. */
+            $this->insertText($token['data']);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data attribute
+            set to the data given in the comment token. */
+            $this->insertComment($token['data']);
+
+            /* A start tag token with the tag name "head" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'head') {
+            /* Create an element for the token, append the new element to the
+            current node and push it onto the stack of open elements. */
+            $element = $this->insertElement($token);
+
+            /* Set the head element pointer to this new element node. */
+            $this->head_pointer = $element;
+
+            /* Change the insertion mode to "in head". */
+            $this->mode = self::IN_HEAD;
+
+            /* A start tag token whose tag name is one of: "base", "link", "meta",
+            "script", "style", "title". Or an end tag with the tag name "html".
+            Or a character token that is not one of U+0009 CHARACTER TABULATION,
+            U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+            or U+0020 SPACE. Or any other start tag token */
+        } elseif ($token['type'] === HTML5::STARTTAG ||
+            ($token['type'] === HTML5::ENDTAG && $token['name'] === 'html') ||
+            ($token['type'] === HTML5::CHARACTR && !preg_match(
+                    '/^[\t\n\x0b\x0c ]$/',
+                    $token['data']
+                ))
+        ) {
+            /* Act as if a start tag token with the tag name "head" and no
+            attributes had been seen, then reprocess the current token. */
+            $this->beforeHead(
+                array(
+                    'name' => 'head',
+                    'type' => HTML5::STARTTAG,
+                    'attr' => array()
+                )
+            );
+
+            return $this->inHead($token);
+
+            /* Any other end tag */
+        } elseif ($token['type'] === HTML5::ENDTAG) {
+            /* Parse error. Ignore the token. */
+        }
+    }
+
+    private function inHead($token)
+    {
+        /* Handle the token as follows: */
+
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        or U+0020 SPACE.
+
+        THIS DIFFERS FROM THE SPEC: If the current node is either a title, style
+        or script element, append the character to the current node regardless
+        of its content. */
+        if (($token['type'] === HTML5::CHARACTR &&
+                preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])) || (
+                $token['type'] === HTML5::CHARACTR && in_array(
+                    end($this->stack)->nodeName,
+                    array('title', 'style', 'script')
+                ))
+        ) {
+            /* Append the character to the current node. */
+            $this->insertText($token['data']);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data attribute
+            set to the data given in the comment token. */
+            $this->insertComment($token['data']);
+
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            in_array($token['name'], array('title', 'style', 'script'))
+        ) {
+            array_pop($this->stack);
+            return HTML5::PCDATA;
+
+            /* A start tag with the tag name "title" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'title') {
+            /* Create an element for the token and append the new element to the
+            node pointed to by the head element pointer, or, if that is null
+            (innerHTML case), to the current node. */
+            if ($this->head_pointer !== null) {
+                $element = $this->insertElement($token, false);
+                $this->head_pointer->appendChild($element);
+
+            } else {
+                $element = $this->insertElement($token);
+            }
+
+            /* Switch the tokeniser's content model flag  to the RCDATA state. */
+            return HTML5::RCDATA;
+
+            /* A start tag with the tag name "style" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'style') {
+            /* Create an element for the token and append the new element to the
+            node pointed to by the head element pointer, or, if that is null
+            (innerHTML case), to the current node. */
+            if ($this->head_pointer !== null) {
+                $element = $this->insertElement($token, false);
+                $this->head_pointer->appendChild($element);
+
+            } else {
+                $this->insertElement($token);
+            }
+
+            /* Switch the tokeniser's content model flag  to the CDATA state. */
+            return HTML5::CDATA;
+
+            /* A start tag with the tag name "script" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'script') {
+            /* Create an element for the token. */
+            $element = $this->insertElement($token, false);
+            $this->head_pointer->appendChild($element);
+
+            /* Switch the tokeniser's content model flag  to the CDATA state. */
+            return HTML5::CDATA;
+
+            /* A start tag with the tag name "base", "link", or "meta" */
+        } elseif ($token['type'] === HTML5::STARTTAG && in_array(
+                $token['name'],
+                array('base', 'link', 'meta')
+            )
+        ) {
+            /* Create an element for the token and append the new element to the
+            node pointed to by the head element pointer, or, if that is null
+            (innerHTML case), to the current node. */
+            if ($this->head_pointer !== null) {
+                $element = $this->insertElement($token, false);
+                $this->head_pointer->appendChild($element);
+                array_pop($this->stack);
+
+            } else {
+                $this->insertElement($token);
+            }
+
+            /* An end tag with the tag name "head" */
+        } elseif ($token['type'] === HTML5::ENDTAG && $token['name'] === 'head') {
+            /* If the current node is a head element, pop the current node off
+            the stack of open elements. */
+            if ($this->head_pointer->isSameNode(end($this->stack))) {
+                array_pop($this->stack);
+
+                /* Otherwise, this is a parse error. */
+            } else {
+                // k
+            }
+
+            /* Change the insertion mode to "after head". */
+            $this->mode = self::AFTER_HEAD;
+
+            /* A start tag with the tag name "head" or an end tag except "html". */
+        } elseif (($token['type'] === HTML5::STARTTAG && $token['name'] === 'head') ||
+            ($token['type'] === HTML5::ENDTAG && $token['name'] !== 'html')
+        ) {
+            // Parse error. Ignore the token.
+
+            /* Anything else */
+        } else {
+            /* If the current node is a head element, act as if an end tag
+            token with the tag name "head" had been seen. */
+            if ($this->head_pointer->isSameNode(end($this->stack))) {
+                $this->inHead(
+                    array(
+                        'name' => 'head',
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+
+                /* Otherwise, change the insertion mode to "after head". */
+            } else {
+                $this->mode = self::AFTER_HEAD;
+            }
+
+            /* Then, reprocess the current token. */
+            return $this->afterHead($token);
+        }
+    }
+
+    private function afterHead($token)
+    {
+        /* Handle the token as follows: */
+
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        or U+0020 SPACE */
+        if ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Append the character to the current node. */
+            $this->insertText($token['data']);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data attribute
+            set to the data given in the comment token. */
+            $this->insertComment($token['data']);
+
+            /* A start tag token with the tag name "body" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'body') {
+            /* Insert a body element for the token. */
+            $this->insertElement($token);
+
+            /* Change the insertion mode to "in body". */
+            $this->mode = self::IN_BODY;
+
+            /* A start tag token with the tag name "frameset" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'frameset') {
+            /* Insert a frameset element for the token. */
+            $this->insertElement($token);
+
+            /* Change the insertion mode to "in frameset". */
+            $this->mode = self::IN_FRAME;
+
+            /* A start tag token whose tag name is one of: "base", "link", "meta",
+            "script", "style", "title" */
+        } elseif ($token['type'] === HTML5::STARTTAG && in_array(
+                $token['name'],
+                array('base', 'link', 'meta', 'script', 'style', 'title')
+            )
+        ) {
+            /* Parse error. Switch the insertion mode back to "in head" and
+            reprocess the token. */
+            $this->mode = self::IN_HEAD;
+            return $this->inHead($token);
+
+            /* Anything else */
+        } else {
+            /* Act as if a start tag token with the tag name "body" and no
+            attributes had been seen, and then reprocess the current token. */
+            $this->afterHead(
+                array(
+                    'name' => 'body',
+                    'type' => HTML5::STARTTAG,
+                    'attr' => array()
+                )
+            );
+
+            return $this->inBody($token);
+        }
+    }
+
+    private function inBody($token)
+    {
+        /* Handle the token as follows: */
+
+        switch ($token['type']) {
+            /* A character token */
+            case HTML5::CHARACTR:
+                /* Reconstruct the active formatting elements, if any. */
+                $this->reconstructActiveFormattingElements();
+
+                /* Append the token's character to the current node. */
+                $this->insertText($token['data']);
+                break;
+
+            /* A comment token */
+            case HTML5::COMMENT:
+                /* Append a Comment node to the current node with the data
+                attribute set to the data given in the comment token. */
+                $this->insertComment($token['data']);
+                break;
+
+            case HTML5::STARTTAG:
+                switch ($token['name']) {
+                    /* A start tag token whose tag name is one of: "script",
+                    "style" */
+                    case 'script':
+                    case 'style':
+                        /* Process the token as if the insertion mode had been "in
+                        head". */
+                        return $this->inHead($token);
+                        break;
+
+                    /* A start tag token whose tag name is one of: "base", "link",
+                    "meta", "title" */
+                    case 'base':
+                    case 'link':
+                    case 'meta':
+                    case 'title':
+                        /* Parse error. Process the token as if the insertion mode
+                        had    been "in head". */
+                        return $this->inHead($token);
+                        break;
+
+                    /* A start tag token with the tag name "body" */
+                    case 'body':
+                        /* Parse error. If the second element on the stack of open
+                        elements is not a body element, or, if the stack of open
+                        elements has only one node on it, then ignore the token.
+                        (innerHTML case) */
+                        if (count($this->stack) === 1 || $this->stack[1]->nodeName !== 'body') {
+                            // Ignore
+
+                            /* Otherwise, for each attribute on the token, check to see
+                            if the attribute is already present on the body element (the
+                            second element)    on the stack of open elements. If it is not,
+                            add the attribute and its corresponding value to that
+                            element. */
+                        } else {
+                            foreach ($token['attr'] as $attr) {
+                                if (!$this->stack[1]->hasAttribute($attr['name'])) {
+                                    $this->stack[1]->setAttribute($attr['name'], $attr['value']);
+                                }
+                            }
+                        }
+                        break;
+
+                    /* A start tag whose tag name is one of: "address",
+                    "blockquote", "center", "dir", "div", "dl", "fieldset",
+                    "listing", "menu", "ol", "p", "ul" */
+                    case 'address':
+                    case 'blockquote':
+                    case 'center':
+                    case 'dir':
+                    case 'div':
+                    case 'dl':
+                    case 'fieldset':
+                    case 'listing':
+                    case 'menu':
+                    case 'ol':
+                    case 'p':
+                    case 'ul':
+                        /* If the stack of open elements has a p element in scope,
+                        then act as if an end tag with the tag name p had been
+                        seen. */
+                        if ($this->elementInScope('p')) {
+                            $this->emitToken(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+                        break;
+
+                    /* A start tag whose tag name is "form" */
+                    case 'form':
+                        /* If the form element pointer is not null, ignore the
+                        token with a parse error. */
+                        if ($this->form_pointer !== null) {
+                            // Ignore.
+
+                            /* Otherwise: */
+                        } else {
+                            /* If the stack of open elements has a p element in
+                            scope, then act as if an end tag with the tag name p
+                            had been seen. */
+                            if ($this->elementInScope('p')) {
+                                $this->emitToken(
+                                    array(
+                                        'name' => 'p',
+                                        'type' => HTML5::ENDTAG
+                                    )
+                                );
+                            }
+
+                            /* Insert an HTML element for the token, and set the
+                            form element pointer to point to the element created. */
+                            $element = $this->insertElement($token);
+                            $this->form_pointer = $element;
+                        }
+                        break;
+
+                    /* A start tag whose tag name is "li", "dd" or "dt" */
+                    case 'li':
+                    case 'dd':
+                    case 'dt':
+                        /* If the stack of open elements has a p  element in scope,
+                        then act as if an end tag with the tag name p had been
+                        seen. */
+                        if ($this->elementInScope('p')) {
+                            $this->emitToken(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+
+                        $stack_length = count($this->stack) - 1;
+
+                        for ($n = $stack_length; 0 <= $n; $n--) {
+                            /* 1. Initialise node to be the current node (the
+                            bottommost node of the stack). */
+                            $stop = false;
+                            $node = $this->stack[$n];
+                            $cat = $this->getElementCategory($node->tagName);
+
+                            /* 2. If node is an li, dd or dt element, then pop all
+                            the    nodes from the current node up to node, including
+                            node, then stop this algorithm. */
+                            if ($token['name'] === $node->tagName || ($token['name'] !== 'li'
+                                    && ($node->tagName === 'dd' || $node->tagName === 'dt'))
+                            ) {
+                                for ($x = $stack_length; $x >= $n; $x--) {
+                                    array_pop($this->stack);
+                                }
+
+                                break;
+                            }
+
+                            /* 3. If node is not in the formatting category, and is
+                            not    in the phrasing category, and is not an address or
+                            div element, then stop this algorithm. */
+                            if ($cat !== self::FORMATTING && $cat !== self::PHRASING &&
+                                $node->tagName !== 'address' && $node->tagName !== 'div'
+                            ) {
+                                break;
+                            }
+                        }
+
+                        /* Finally, insert an HTML element with the same tag
+                        name as the    token's. */
+                        $this->insertElement($token);
+                        break;
+
+                    /* A start tag token whose tag name is "plaintext" */
+                    case 'plaintext':
+                        /* If the stack of open elements has a p  element in scope,
+                        then act as if an end tag with the tag name p had been
+                        seen. */
+                        if ($this->elementInScope('p')) {
+                            $this->emitToken(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        return HTML5::PLAINTEXT;
+                        break;
+
+                    /* A start tag whose tag name is one of: "h1", "h2", "h3", "h4",
+                    "h5", "h6" */
+                    case 'h1':
+                    case 'h2':
+                    case 'h3':
+                    case 'h4':
+                    case 'h5':
+                    case 'h6':
+                        /* If the stack of open elements has a p  element in scope,
+                        then act as if an end tag with the tag name p had been seen. */
+                        if ($this->elementInScope('p')) {
+                            $this->emitToken(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+
+                        /* If the stack of open elements has in scope an element whose
+                        tag name is one of "h1", "h2", "h3", "h4", "h5", or "h6", then
+                        this is a parse error; pop elements from the stack until an
+                        element with one of those tag names has been popped from the
+                        stack. */
+                        while ($this->elementInScope(array('h1', 'h2', 'h3', 'h4', 'h5', 'h6'))) {
+                            array_pop($this->stack);
+                        }
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+                        break;
+
+                    /* A start tag whose tag name is "a" */
+                    case 'a':
+                        /* If the list of active formatting elements contains
+                        an element whose tag name is "a" between the end of the
+                        list and the last marker on the list (or the start of
+                        the list if there is no marker on the list), then this
+                        is a parse error; act as if an end tag with the tag name
+                        "a" had been seen, then remove that element from the list
+                        of active formatting elements and the stack of open
+                        elements if the end tag didn't already remove it (it
+                        might not have if the element is not in table scope). */
+                        $leng = count($this->a_formatting);
+
+                        for ($n = $leng - 1; $n >= 0; $n--) {
+                            if ($this->a_formatting[$n] === self::MARKER) {
+                                break;
+
+                            } elseif ($this->a_formatting[$n]->nodeName === 'a') {
+                                $this->emitToken(
+                                    array(
+                                        'name' => 'a',
+                                        'type' => HTML5::ENDTAG
+                                    )
+                                );
+                                break;
+                            }
+                        }
+
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an HTML element for the token. */
+                        $el = $this->insertElement($token);
+
+                        /* Add that element to the list of active formatting
+                        elements. */
+                        $this->a_formatting[] = $el;
+                        break;
+
+                    /* A start tag whose tag name is one of: "b", "big", "em", "font",
+                    "i", "nobr", "s", "small", "strike", "strong", "tt", "u" */
+                    case 'b':
+                    case 'big':
+                    case 'em':
+                    case 'font':
+                    case 'i':
+                    case 'nobr':
+                    case 's':
+                    case 'small':
+                    case 'strike':
+                    case 'strong':
+                    case 'tt':
+                    case 'u':
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an HTML element for the token. */
+                        $el = $this->insertElement($token);
+
+                        /* Add that element to the list of active formatting
+                        elements. */
+                        $this->a_formatting[] = $el;
+                        break;
+
+                    /* A start tag token whose tag name is "button" */
+                    case 'button':
+                        /* If the stack of open elements has a button element in scope,
+                        then this is a parse error; act as if an end tag with the tag
+                        name "button" had been seen, then reprocess the token. (We don't
+                        do that. Unnecessary.) */
+                        if ($this->elementInScope('button')) {
+                            $this->inBody(
+                                array(
+                                    'name' => 'button',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        /* Insert a marker at the end of the list of active
+                        formatting elements. */
+                        $this->a_formatting[] = self::MARKER;
+                        break;
+
+                    /* A start tag token whose tag name is one of: "marquee", "object" */
+                    case 'marquee':
+                    case 'object':
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        /* Insert a marker at the end of the list of active
+                        formatting elements. */
+                        $this->a_formatting[] = self::MARKER;
+                        break;
+
+                    /* A start tag token whose tag name is "xmp" */
+                    case 'xmp':
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        /* Switch the content model flag to the CDATA state. */
+                        return HTML5::CDATA;
+                        break;
+
+                    /* A start tag whose tag name is "table" */
+                    case 'table':
+                        /* If the stack of open elements has a p element in scope,
+                        then act as if an end tag with the tag name p had been seen. */
+                        if ($this->elementInScope('p')) {
+                            $this->emitToken(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        /* Change the insertion mode to "in table". */
+                        $this->mode = self::IN_TABLE;
+                        break;
+
+                    /* A start tag whose tag name is one of: "area", "basefont",
+                    "bgsound", "br", "embed", "img", "param", "spacer", "wbr" */
+                    case 'area':
+                    case 'basefont':
+                    case 'bgsound':
+                    case 'br':
+                    case 'embed':
+                    case 'img':
+                    case 'param':
+                    case 'spacer':
+                    case 'wbr':
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        /* Immediately pop the current node off the stack of open elements. */
+                        array_pop($this->stack);
+                        break;
+
+                    /* A start tag whose tag name is "hr" */
+                    case 'hr':
+                        /* If the stack of open elements has a p element in scope,
+                        then act as if an end tag with the tag name p had been seen. */
+                        if ($this->elementInScope('p')) {
+                            $this->emitToken(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        /* Immediately pop the current node off the stack of open elements. */
+                        array_pop($this->stack);
+                        break;
+
+                    /* A start tag whose tag name is "image" */
+                    case 'image':
+                        /* Parse error. Change the token's tag name to "img" and
+                        reprocess it. (Don't ask.) */
+                        $token['name'] = 'img';
+                        return $this->inBody($token);
+                        break;
+
+                    /* A start tag whose tag name is "input" */
+                    case 'input':
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an input element for the token. */
+                        $element = $this->insertElement($token, false);
+
+                        /* If the form element pointer is not null, then associate the
+                        input element with the form element pointed to by the form
+                        element pointer. */
+                        $this->form_pointer !== null
+                            ? $this->form_pointer->appendChild($element)
+                            : end($this->stack)->appendChild($element);
+
+                        /* Pop that input element off the stack of open elements. */
+                        array_pop($this->stack);
+                        break;
+
+                    /* A start tag whose tag name is "isindex" */
+                    case 'isindex':
+                        /* Parse error. */
+                        // w/e
+
+                        /* If the form element pointer is not null,
+                        then ignore the token. */
+                        if ($this->form_pointer === null) {
+                            /* Act as if a start tag token with the tag name "form" had
+                            been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'body',
+                                    'type' => HTML5::STARTTAG,
+                                    'attr' => array()
+                                )
+                            );
+
+                            /* Act as if a start tag token with the tag name "hr" had
+                            been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'hr',
+                                    'type' => HTML5::STARTTAG,
+                                    'attr' => array()
+                                )
+                            );
+
+                            /* Act as if a start tag token with the tag name "p" had
+                            been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::STARTTAG,
+                                    'attr' => array()
+                                )
+                            );
+
+                            /* Act as if a start tag token with the tag name "label"
+                            had been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'label',
+                                    'type' => HTML5::STARTTAG,
+                                    'attr' => array()
+                                )
+                            );
+
+                            /* Act as if a stream of character tokens had been seen. */
+                            $this->insertText(
+                                'This is a searchable index. ' .
+                                'Insert your search keywords here: '
+                            );
+
+                            /* Act as if a start tag token with the tag name "input"
+                            had been seen, with all the attributes from the "isindex"
+                            token, except with the "name" attribute set to the value
+                            "isindex" (ignoring any explicit "name" attribute). */
+                            $attr = $token['attr'];
+                            $attr[] = array('name' => 'name', 'value' => 'isindex');
+
+                            $this->inBody(
+                                array(
+                                    'name' => 'input',
+                                    'type' => HTML5::STARTTAG,
+                                    'attr' => $attr
+                                )
+                            );
+
+                            /* Act as if a stream of character tokens had been seen
+                            (see below for what they should say). */
+                            $this->insertText(
+                                'This is a searchable index. ' .
+                                'Insert your search keywords here: '
+                            );
+
+                            /* Act as if an end tag token with the tag name "label"
+                            had been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'label',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+
+                            /* Act as if an end tag token with the tag name "p" had
+                            been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'p',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+
+                            /* Act as if a start tag token with the tag name "hr" had
+                            been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'hr',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+
+                            /* Act as if an end tag token with the tag name "form" had
+                            been seen. */
+                            $this->inBody(
+                                array(
+                                    'name' => 'form',
+                                    'type' => HTML5::ENDTAG
+                                )
+                            );
+                        }
+                        break;
+
+                    /* A start tag whose tag name is "textarea" */
+                    case 'textarea':
+                        $this->insertElement($token);
+
+                        /* Switch the tokeniser's content model flag to the
+                        RCDATA state. */
+                        return HTML5::RCDATA;
+                        break;
+
+                    /* A start tag whose tag name is one of: "iframe", "noembed",
+                    "noframes" */
+                    case 'iframe':
+                    case 'noembed':
+                    case 'noframes':
+                        $this->insertElement($token);
+
+                        /* Switch the tokeniser's content model flag to the CDATA state. */
+                        return HTML5::CDATA;
+                        break;
+
+                    /* A start tag whose tag name is "select" */
+                    case 'select':
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        /* Insert an HTML element for the token. */
+                        $this->insertElement($token);
+
+                        /* Change the insertion mode to "in select". */
+                        $this->mode = self::IN_SELECT;
+                        break;
+
+                    /* A start or end tag whose tag name is one of: "caption", "col",
+                    "colgroup", "frame", "frameset", "head", "option", "optgroup",
+                    "tbody", "td", "tfoot", "th", "thead", "tr". */
+                    case 'caption':
+                    case 'col':
+                    case 'colgroup':
+                    case 'frame':
+                    case 'frameset':
+                    case 'head':
+                    case 'option':
+                    case 'optgroup':
+                    case 'tbody':
+                    case 'td':
+                    case 'tfoot':
+                    case 'th':
+                    case 'thead':
+                    case 'tr':
+                        // Parse error. Ignore the token.
+                        break;
+
+                    /* A start or end tag whose tag name is one of: "event-source",
+                    "section", "nav", "article", "aside", "header", "footer",
+                    "datagrid", "command" */
+                    case 'event-source':
+                    case 'section':
+                    case 'nav':
+                    case 'article':
+                    case 'aside':
+                    case 'header':
+                    case 'footer':
+                    case 'datagrid':
+                    case 'command':
+                        // Work in progress!
+                        break;
+
+                    /* A start tag token not covered by the previous entries */
+                    default:
+                        /* Reconstruct the active formatting elements, if any. */
+                        $this->reconstructActiveFormattingElements();
+
+                        $this->insertElement($token, true, true);
+                        break;
+                }
+                break;
+
+            case HTML5::ENDTAG:
+                switch ($token['name']) {
+                    /* An end tag with the tag name "body" */
+                    case 'body':
+                        /* If the second element in the stack of open elements is
+                        not a body element, this is a parse error. Ignore the token.
+                        (innerHTML case) */
+                        if (count($this->stack) < 2 || $this->stack[1]->nodeName !== 'body') {
+                            // Ignore.
+
+                            /* If the current node is not the body element, then this
+                            is a parse error. */
+                        } elseif (end($this->stack)->nodeName !== 'body') {
+                            // Parse error.
+                        }
+
+                        /* Change the insertion mode to "after body". */
+                        $this->mode = self::AFTER_BODY;
+                        break;
+
+                    /* An end tag with the tag name "html" */
+                    case 'html':
+                        /* Act as if an end tag with tag name "body" had been seen,
+                        then, if that token wasn't ignored, reprocess the current
+                        token. */
+                        $this->inBody(
+                            array(
+                                'name' => 'body',
+                                'type' => HTML5::ENDTAG
+                            )
+                        );
+
+                        return $this->afterBody($token);
+                        break;
+
+                    /* An end tag whose tag name is one of: "address", "blockquote",
+                    "center", "dir", "div", "dl", "fieldset", "listing", "menu",
+                    "ol", "pre", "ul" */
+                    case 'address':
+                    case 'blockquote':
+                    case 'center':
+                    case 'dir':
+                    case 'div':
+                    case 'dl':
+                    case 'fieldset':
+                    case 'listing':
+                    case 'menu':
+                    case 'ol':
+                    case 'pre':
+                    case 'ul':
+                        /* If the stack of open elements has an element in scope
+                        with the same tag name as that of the token, then generate
+                        implied end tags. */
+                        if ($this->elementInScope($token['name'])) {
+                            $this->generateImpliedEndTags();
+
+                            /* Now, if the current node is not an element with
+                            the same tag name as that of the token, then this
+                            is a parse error. */
+                            // w/e
+
+                            /* If the stack of open elements has an element in
+                            scope with the same tag name as that of the token,
+                            then pop elements from this stack until an element
+                            with that tag name has been popped from the stack. */
+                            for ($n = count($this->stack) - 1; $n >= 0; $n--) {
+                                if ($this->stack[$n]->nodeName === $token['name']) {
+                                    $n = -1;
+                                }
+
+                                array_pop($this->stack);
+                            }
+                        }
+                        break;
+
+                    /* An end tag whose tag name is "form" */
+                    case 'form':
+                        /* If the stack of open elements has an element in scope
+                        with the same tag name as that of the token, then generate
+                        implied    end tags. */
+                        if ($this->elementInScope($token['name'])) {
+                            $this->generateImpliedEndTags();
+
+                        }
+
+                        if (end($this->stack)->nodeName !== $token['name']) {
+                            /* Now, if the current node is not an element with the
+                            same tag name as that of the token, then this is a parse
+                            error. */
+                            // w/e
+
+                        } else {
+                            /* Otherwise, if the current node is an element with
+                            the same tag name as that of the token pop that element
+                            from the stack. */
+                            array_pop($this->stack);
+                        }
+
+                        /* In any case, set the form element pointer to null. */
+                        $this->form_pointer = null;
+                        break;
+
+                    /* An end tag whose tag name is "p" */
+                    case 'p':
+                        /* If the stack of open elements has a p element in scope,
+                        then generate implied end tags, except for p elements. */
+                        if ($this->elementInScope('p')) {
+                            $this->generateImpliedEndTags(array('p'));
+
+                            /* If the current node is not a p element, then this is
+                            a parse error. */
+                            // k
+
+                            /* If the stack of open elements has a p element in
+                            scope, then pop elements from this stack until the stack
+                            no longer has a p element in scope. */
+                            for ($n = count($this->stack) - 1; $n >= 0; $n--) {
+                                if ($this->elementInScope('p')) {
+                                    array_pop($this->stack);
+
+                                } else {
+                                    break;
+                                }
+                            }
+                        }
+                        break;
+
+                    /* An end tag whose tag name is "dd", "dt", or "li" */
+                    case 'dd':
+                    case 'dt':
+                    case 'li':
+                        /* If the stack of open elements has an element in scope
+                        whose tag name matches the tag name of the token, then
+                        generate implied end tags, except for elements with the
+                        same tag name as the token. */
+                        if ($this->elementInScope($token['name'])) {
+                            $this->generateImpliedEndTags(array($token['name']));
+
+                            /* If the current node is not an element with the same
+                            tag name as the token, then this is a parse error. */
+                            // w/e
+
+                            /* If the stack of open elements has an element in scope
+                            whose tag name matches the tag name of the token, then
+                            pop elements from this stack until an element with that
+                            tag name has been popped from the stack. */
+                            for ($n = count($this->stack) - 1; $n >= 0; $n--) {
+                                if ($this->stack[$n]->nodeName === $token['name']) {
+                                    $n = -1;
+                                }
+
+                                array_pop($this->stack);
+                            }
+                        }
+                        break;
+
+                    /* An end tag whose tag name is one of: "h1", "h2", "h3", "h4",
+                    "h5", "h6" */
+                    case 'h1':
+                    case 'h2':
+                    case 'h3':
+                    case 'h4':
+                    case 'h5':
+                    case 'h6':
+                        $elements = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6');
+
+                        /* If the stack of open elements has in scope an element whose
+                        tag name is one of "h1", "h2", "h3", "h4", "h5", or "h6", then
+                        generate implied end tags. */
+                        if ($this->elementInScope($elements)) {
+                            $this->generateImpliedEndTags();
+
+                            /* Now, if the current node is not an element with the same
+                            tag name as that of the token, then this is a parse error. */
+                            // w/e
+
+                            /* If the stack of open elements has in scope an element
+                            whose tag name is one of "h1", "h2", "h3", "h4", "h5", or
+                            "h6", then pop elements from the stack until an element
+                            with one of those tag names has been popped from the stack. */
+                            while ($this->elementInScope($elements)) {
+                                array_pop($this->stack);
+                            }
+                        }
+                        break;
+
+                    /* An end tag whose tag name is one of: "a", "b", "big", "em",
+                    "font", "i", "nobr", "s", "small", "strike", "strong", "tt", "u" */
+                    case 'a':
+                    case 'b':
+                    case 'big':
+                    case 'em':
+                    case 'font':
+                    case 'i':
+                    case 'nobr':
+                    case 's':
+                    case 'small':
+                    case 'strike':
+                    case 'strong':
+                    case 'tt':
+                    case 'u':
+                        /* 1. Let the formatting element be the last element in
+                        the list of active formatting elements that:
+                            * is between the end of the list and the last scope
+                            marker in the list, if any, or the start of the list
+                            otherwise, and
+                            * has the same tag name as the token.
+                        */
+                        while (true) {
+                            for ($a = count($this->a_formatting) - 1; $a >= 0; $a--) {
+                                if ($this->a_formatting[$a] === self::MARKER) {
+                                    break;
+
+                                } elseif ($this->a_formatting[$a]->tagName === $token['name']) {
+                                    $formatting_element = $this->a_formatting[$a];
+                                    $in_stack = in_array($formatting_element, $this->stack, true);
+                                    $fe_af_pos = $a;
+                                    break;
+                                }
+                            }
+
+                            /* If there is no such node, or, if that node is
+                            also in the stack of open elements but the element
+                            is not in scope, then this is a parse error. Abort
+                            these steps. The token is ignored. */
+                            if (!isset($formatting_element) || ($in_stack &&
+                                    !$this->elementInScope($token['name']))
+                            ) {
+                                break;
+
+                                /* Otherwise, if there is such a node, but that node
+                                is not in the stack of open elements, then this is a
+                                parse error; remove the element from the list, and
+                                abort these steps. */
+                            } elseif (isset($formatting_element) && !$in_stack) {
+                                unset($this->a_formatting[$fe_af_pos]);
+                                $this->a_formatting = array_merge($this->a_formatting);
+                                break;
+                            }
+
+                            /* 2. Let the furthest block be the topmost node in the
+                            stack of open elements that is lower in the stack
+                            than the formatting element, and is not an element in
+                            the phrasing or formatting categories. There might
+                            not be one. */
+                            $fe_s_pos = array_search($formatting_element, $this->stack, true);
+                            $length = count($this->stack);
+
+                            for ($s = $fe_s_pos + 1; $s < $length; $s++) {
+                                $category = $this->getElementCategory($this->stack[$s]->nodeName);
+
+                                if ($category !== self::PHRASING && $category !== self::FORMATTING) {
+                                    $furthest_block = $this->stack[$s];
+                                }
+                            }
+
+                            /* 3. If there is no furthest block, then the UA must
+                            skip the subsequent steps and instead just pop all
+                            the nodes from the bottom of the stack of open
+                            elements, from the current node up to the formatting
+                            element, and remove the formatting element from the
+                            list of active formatting elements. */
+                            if (!isset($furthest_block)) {
+                                for ($n = $length - 1; $n >= $fe_s_pos; $n--) {
+                                    array_pop($this->stack);
+                                }
+
+                                unset($this->a_formatting[$fe_af_pos]);
+                                $this->a_formatting = array_merge($this->a_formatting);
+                                break;
+                            }
+
+                            /* 4. Let the common ancestor be the element
+                            immediately above the formatting element in the stack
+                            of open elements. */
+                            $common_ancestor = $this->stack[$fe_s_pos - 1];
+
+                            /* 5. If the furthest block has a parent node, then
+                            remove the furthest block from its parent node. */
+                            if ($furthest_block->parentNode !== null) {
+                                $furthest_block->parentNode->removeChild($furthest_block);
+                            }
+
+                            /* 6. Let a bookmark note the position of the
+                            formatting element in the list of active formatting
+                            elements relative to the elements on either side
+                            of it in the list. */
+                            $bookmark = $fe_af_pos;
+
+                            /* 7. Let node and last node  be the furthest block.
+                            Follow these steps: */
+                            $node = $furthest_block;
+                            $last_node = $furthest_block;
+
+                            while (true) {
+                                for ($n = array_search($node, $this->stack, true) - 1; $n >= 0; $n--) {
+                                    /* 7.1 Let node be the element immediately
+                                    prior to node in the stack of open elements. */
+                                    $node = $this->stack[$n];
+
+                                    /* 7.2 If node is not in the list of active
+                                    formatting elements, then remove node from
+                                    the stack of open elements and then go back
+                                    to step 1. */
+                                    if (!in_array($node, $this->a_formatting, true)) {
+                                        unset($this->stack[$n]);
+                                        $this->stack = array_merge($this->stack);
+
+                                    } else {
+                                        break;
+                                    }
+                                }
+
+                                /* 7.3 Otherwise, if node is the formatting
+                                element, then go to the next step in the overall
+                                algorithm. */
+                                if ($node === $formatting_element) {
+                                    break;
+
+                                    /* 7.4 Otherwise, if last node is the furthest
+                                    block, then move the aforementioned bookmark to
+                                    be immediately after the node in the list of
+                                    active formatting elements. */
+                                } elseif ($last_node === $furthest_block) {
+                                    $bookmark = array_search($node, $this->a_formatting, true) + 1;
+                                }
+
+                                /* 7.5 If node has any children, perform a
+                                shallow clone of node, replace the entry for
+                                node in the list of active formatting elements
+                                with an entry for the clone, replace the entry
+                                for node in the stack of open elements with an
+                                entry for the clone, and let node be the clone. */
+                                if ($node->hasChildNodes()) {
+                                    $clone = $node->cloneNode();
+                                    $s_pos = array_search($node, $this->stack, true);
+                                    $a_pos = array_search($node, $this->a_formatting, true);
+
+                                    $this->stack[$s_pos] = $clone;
+                                    $this->a_formatting[$a_pos] = $clone;
+                                    $node = $clone;
+                                }
+
+                                /* 7.6 Insert last node into node, first removing
+                                it from its previous parent node if any. */
+                                if ($last_node->parentNode !== null) {
+                                    $last_node->parentNode->removeChild($last_node);
+                                }
+
+                                $node->appendChild($last_node);
+
+                                /* 7.7 Let last node be node. */
+                                $last_node = $node;
+                            }
+
+                            /* 8. Insert whatever last node ended up being in
+                            the previous step into the common ancestor node,
+                            first removing it from its previous parent node if
+                            any. */
+                            if ($last_node->parentNode !== null) {
+                                $last_node->parentNode->removeChild($last_node);
+                            }
+
+                            $common_ancestor->appendChild($last_node);
+
+                            /* 9. Perform a shallow clone of the formatting
+                            element. */
+                            $clone = $formatting_element->cloneNode();
+
+                            /* 10. Take all of the child nodes of the furthest
+                            block and append them to the clone created in the
+                            last step. */
+                            while ($furthest_block->hasChildNodes()) {
+                                $child = $furthest_block->firstChild;
+                                $furthest_block->removeChild($child);
+                                $clone->appendChild($child);
+                            }
+
+                            /* 11. Append that clone to the furthest block. */
+                            $furthest_block->appendChild($clone);
+
+                            /* 12. Remove the formatting element from the list
+                            of active formatting elements, and insert the clone
+                            into the list of active formatting elements at the
+                            position of the aforementioned bookmark. */
+                            $fe_af_pos = array_search($formatting_element, $this->a_formatting, true);
+                            unset($this->a_formatting[$fe_af_pos]);
+                            $this->a_formatting = array_merge($this->a_formatting);
+
+                            $af_part1 = array_slice($this->a_formatting, 0, $bookmark - 1);
+                            $af_part2 = array_slice($this->a_formatting, $bookmark, count($this->a_formatting));
+                            $this->a_formatting = array_merge($af_part1, array($clone), $af_part2);
+
+                            /* 13. Remove the formatting element from the stack
+                            of open elements, and insert the clone into the stack
+                            of open elements immediately after (i.e. in a more
+                            deeply nested position than) the position of the
+                            furthest block in that stack. */
+                            $fe_s_pos = array_search($formatting_element, $this->stack, true);
+                            $fb_s_pos = array_search($furthest_block, $this->stack, true);
+                            unset($this->stack[$fe_s_pos]);
+
+                            $s_part1 = array_slice($this->stack, 0, $fb_s_pos);
+                            $s_part2 = array_slice($this->stack, $fb_s_pos + 1, count($this->stack));
+                            $this->stack = array_merge($s_part1, array($clone), $s_part2);
+
+                            /* 14. Jump back to step 1 in this series of steps. */
+                            unset($formatting_element, $fe_af_pos, $fe_s_pos, $furthest_block);
+                        }
+                        break;
+
+                    /* An end tag token whose tag name is one of: "button",
+                    "marquee", "object" */
+                    case 'button':
+                    case 'marquee':
+                    case 'object':
+                        /* If the stack of open elements has an element in scope whose
+                        tag name matches the tag name of the token, then generate implied
+                        tags. */
+                        if ($this->elementInScope($token['name'])) {
+                            $this->generateImpliedEndTags();
+
+                            /* Now, if the current node is not an element with the same
+                            tag name as the token, then this is a parse error. */
+                            // k
+
+                            /* Now, if the stack of open elements has an element in scope
+                            whose tag name matches the tag name of the token, then pop
+                            elements from the stack until that element has been popped from
+                            the stack, and clear the list of active formatting elements up
+                            to the last marker. */
+                            for ($n = count($this->stack) - 1; $n >= 0; $n--) {
+                                if ($this->stack[$n]->nodeName === $token['name']) {
+                                    $n = -1;
+                                }
+
+                                array_pop($this->stack);
+                            }
+
+                            $marker = end(array_keys($this->a_formatting, self::MARKER, true));
+
+                            for ($n = count($this->a_formatting) - 1; $n > $marker; $n--) {
+                                array_pop($this->a_formatting);
+                            }
+                        }
+                        break;
+
+                    /* Or an end tag whose tag name is one of: "area", "basefont",
+                    "bgsound", "br", "embed", "hr", "iframe", "image", "img",
+                    "input", "isindex", "noembed", "noframes", "param", "select",
+                    "spacer", "table", "textarea", "wbr" */
+                    case 'area':
+                    case 'basefont':
+                    case 'bgsound':
+                    case 'br':
+                    case 'embed':
+                    case 'hr':
+                    case 'iframe':
+                    case 'image':
+                    case 'img':
+                    case 'input':
+                    case 'isindex':
+                    case 'noembed':
+                    case 'noframes':
+                    case 'param':
+                    case 'select':
+                    case 'spacer':
+                    case 'table':
+                    case 'textarea':
+                    case 'wbr':
+                        // Parse error. Ignore the token.
+                        break;
+
+                    /* An end tag token not covered by the previous entries */
+                    default:
+                        for ($n = count($this->stack) - 1; $n >= 0; $n--) {
+                            /* Initialise node to be the current node (the bottommost
+                            node of the stack). */
+                            $node = end($this->stack);
+
+                            /* If node has the same tag name as the end tag token,
+                            then: */
+                            if ($token['name'] === $node->nodeName) {
+                                /* Generate implied end tags. */
+                                $this->generateImpliedEndTags();
+
+                                /* If the tag name of the end tag token does not
+                                match the tag name of the current node, this is a
+                                parse error. */
+                                // k
+
+                                /* Pop all the nodes from the current node up to
+                                node, including node, then stop this algorithm. */
+                                for ($x = count($this->stack) - $n; $x >= $n; $x--) {
+                                    array_pop($this->stack);
+                                }
+
+                            } else {
+                                $category = $this->getElementCategory($node);
+
+                                if ($category !== self::SPECIAL && $category !== self::SCOPING) {
+                                    /* Otherwise, if node is in neither the formatting
+                                    category nor the phrasing category, then this is a
+                                    parse error. Stop this algorithm. The end tag token
+                                    is ignored. */
+                                    return false;
+                                }
+                            }
+                        }
+                        break;
+                }
+                break;
+        }
+    }
+
+    private function inTable($token)
+    {
+        $clear = array('html', 'table');
+
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        or U+0020 SPACE */
+        if ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Append the character to the current node. */
+            $text = $this->dom->createTextNode($token['data']);
+            end($this->stack)->appendChild($text);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data
+            attribute set to the data given in the comment token. */
+            $comment = $this->dom->createComment($token['data']);
+            end($this->stack)->appendChild($comment);
+
+            /* A start tag whose tag name is "caption" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            $token['name'] === 'caption'
+        ) {
+            /* Clear the stack back to a table context. */
+            $this->clearStackToTableContext($clear);
+
+            /* Insert a marker at the end of the list of active
+            formatting elements. */
+            $this->a_formatting[] = self::MARKER;
+
+            /* Insert an HTML element for the token, then switch the
+            insertion mode to "in caption". */
+            $this->insertElement($token);
+            $this->mode = self::IN_CAPTION;
+
+            /* A start tag whose tag name is "colgroup" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            $token['name'] === 'colgroup'
+        ) {
+            /* Clear the stack back to a table context. */
+            $this->clearStackToTableContext($clear);
+
+            /* Insert an HTML element for the token, then switch the
+            insertion mode to "in column group". */
+            $this->insertElement($token);
+            $this->mode = self::IN_CGROUP;
+
+            /* A start tag whose tag name is "col" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            $token['name'] === 'col'
+        ) {
+            $this->inTable(
+                array(
+                    'name' => 'colgroup',
+                    'type' => HTML5::STARTTAG,
+                    'attr' => array()
+                )
+            );
+
+            $this->inColumnGroup($token);
+
+            /* A start tag whose tag name is one of: "tbody", "tfoot", "thead" */
+        } elseif ($token['type'] === HTML5::STARTTAG && in_array(
+                $token['name'],
+                array('tbody', 'tfoot', 'thead')
+            )
+        ) {
+            /* Clear the stack back to a table context. */
+            $this->clearStackToTableContext($clear);
+
+            /* Insert an HTML element for the token, then switch the insertion
+            mode to "in table body". */
+            $this->insertElement($token);
+            $this->mode = self::IN_TBODY;
+
+            /* A start tag whose tag name is one of: "td", "th", "tr" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            in_array($token['name'], array('td', 'th', 'tr'))
+        ) {
+            /* Act as if a start tag token with the tag name "tbody" had been
+            seen, then reprocess the current token. */
+            $this->inTable(
+                array(
+                    'name' => 'tbody',
+                    'type' => HTML5::STARTTAG,
+                    'attr' => array()
+                )
+            );
+
+            return $this->inTableBody($token);
+
+            /* A start tag whose tag name is "table" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            $token['name'] === 'table'
+        ) {
+            /* Parse error. Act as if an end tag token with the tag name "table"
+            had been seen, then, if that token wasn't ignored, reprocess the
+            current token. */
+            $this->inTable(
+                array(
+                    'name' => 'table',
+                    'type' => HTML5::ENDTAG
+                )
+            );
+
+            return $this->mainPhase($token);
+
+            /* An end tag whose tag name is "table" */
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            $token['name'] === 'table'
+        ) {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as the token, this is a parse error.
+            Ignore the token. (innerHTML case) */
+            if (!$this->elementInScope($token['name'], true)) {
+                return false;
+
+                /* Otherwise: */
+            } else {
+                /* Generate implied end tags. */
+                $this->generateImpliedEndTags();
+
+                /* Now, if the current node is not a table element, then this
+                is a parse error. */
+                // w/e
+
+                /* Pop elements from this stack until a table element has been
+                popped from the stack. */
+                while (true) {
+                    $current = end($this->stack)->nodeName;
+                    array_pop($this->stack);
+
+                    if ($current === 'table') {
+                        break;
+                    }
+                }
+
+                /* Reset the insertion mode appropriately. */
+                $this->resetInsertionMode();
+            }
+
+            /* An end tag whose tag name is one of: "body", "caption", "col",
+            "colgroup", "html", "tbody", "td", "tfoot", "th", "thead", "tr" */
+        } elseif ($token['type'] === HTML5::ENDTAG && in_array(
+                $token['name'],
+                array(
+                    'body',
+                    'caption',
+                    'col',
+                    'colgroup',
+                    'html',
+                    'tbody',
+                    'td',
+                    'tfoot',
+                    'th',
+                    'thead',
+                    'tr'
+                )
+            )
+        ) {
+            // Parse error. Ignore the token.
+
+            /* Anything else */
+        } else {
+            /* Parse error. Process the token as if the insertion mode was "in
+            body", with the following exception: */
+
+            /* If the current node is a table, tbody, tfoot, thead, or tr
+            element, then, whenever a node would be inserted into the current
+            node, it must instead be inserted into the foster parent element. */
+            if (in_array(
+                end($this->stack)->nodeName,
+                array('table', 'tbody', 'tfoot', 'thead', 'tr')
+            )
+            ) {
+                /* The foster parent element is the parent element of the last
+                table element in the stack of open elements, if there is a
+                table element and it has such a parent element. If there is no
+                table element in the stack of open elements (innerHTML case),
+                then the foster parent element is the first element in the
+                stack of open elements (the html  element). Otherwise, if there
+                is a table element in the stack of open elements, but the last
+                table element in the stack of open elements has no parent, or
+                its parent node is not an element, then the foster parent
+                element is the element before the last table element in the
+                stack of open elements. */
+                for ($n = count($this->stack) - 1; $n >= 0; $n--) {
+                    if ($this->stack[$n]->nodeName === 'table') {
+                        $table = $this->stack[$n];
+                        break;
+                    }
+                }
+
+                if (isset($table) && $table->parentNode !== null) {
+                    $this->foster_parent = $table->parentNode;
+
+                } elseif (!isset($table)) {
+                    $this->foster_parent = $this->stack[0];
+
+                } elseif (isset($table) && ($table->parentNode === null ||
+                        $table->parentNode->nodeType !== XML_ELEMENT_NODE)
+                ) {
+                    $this->foster_parent = $this->stack[$n - 1];
+                }
+            }
+
+            $this->inBody($token);
+        }
+    }
+
+    private function inCaption($token)
+    {
+        /* An end tag whose tag name is "caption" */
+        if ($token['type'] === HTML5::ENDTAG && $token['name'] === 'caption') {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as the token, this is a parse error.
+            Ignore the token. (innerHTML case) */
+            if (!$this->elementInScope($token['name'], true)) {
+                // Ignore
+
+                /* Otherwise: */
+            } else {
+                /* Generate implied end tags. */
+                $this->generateImpliedEndTags();
+
+                /* Now, if the current node is not a caption element, then this
+                is a parse error. */
+                // w/e
+
+                /* Pop elements from this stack until a caption element has
+                been popped from the stack. */
+                while (true) {
+                    $node = end($this->stack)->nodeName;
+                    array_pop($this->stack);
+
+                    if ($node === 'caption') {
+                        break;
+                    }
+                }
+
+                /* Clear the list of active formatting elements up to the last
+                marker. */
+                $this->clearTheActiveFormattingElementsUpToTheLastMarker();
+
+                /* Switch the insertion mode to "in table". */
+                $this->mode = self::IN_TABLE;
+            }
+
+            /* A start tag whose tag name is one of: "caption", "col", "colgroup",
+            "tbody", "td", "tfoot", "th", "thead", "tr", or an end tag whose tag
+            name is "table" */
+        } elseif (($token['type'] === HTML5::STARTTAG && in_array(
+                    $token['name'],
+                    array(
+                        'caption',
+                        'col',
+                        'colgroup',
+                        'tbody',
+                        'td',
+                        'tfoot',
+                        'th',
+                        'thead',
+                        'tr'
+                    )
+                )) || ($token['type'] === HTML5::ENDTAG &&
+                $token['name'] === 'table')
+        ) {
+            /* Parse error. Act as if an end tag with the tag name "caption"
+            had been seen, then, if that token wasn't ignored, reprocess the
+            current token. */
+            $this->inCaption(
+                array(
+                    'name' => 'caption',
+                    'type' => HTML5::ENDTAG
+                )
+            );
+
+            return $this->inTable($token);
+
+            /* An end tag whose tag name is one of: "body", "col", "colgroup",
+            "html", "tbody", "td", "tfoot", "th", "thead", "tr" */
+        } elseif ($token['type'] === HTML5::ENDTAG && in_array(
+                $token['name'],
+                array(
+                    'body',
+                    'col',
+                    'colgroup',
+                    'html',
+                    'tbody',
+                    'tfoot',
+                    'th',
+                    'thead',
+                    'tr'
+                )
+            )
+        ) {
+            // Parse error. Ignore the token.
+
+            /* Anything else */
+        } else {
+            /* Process the token as if the insertion mode was "in body". */
+            $this->inBody($token);
+        }
+    }
+
+    private function inColumnGroup($token)
+    {
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        or U+0020 SPACE */
+        if ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Append the character to the current node. */
+            $text = $this->dom->createTextNode($token['data']);
+            end($this->stack)->appendChild($text);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data
+            attribute set to the data given in the comment token. */
+            $comment = $this->dom->createComment($token['data']);
+            end($this->stack)->appendChild($comment);
+
+            /* A start tag whose tag name is "col" */
+        } elseif ($token['type'] === HTML5::STARTTAG && $token['name'] === 'col') {
+            /* Insert a col element for the token. Immediately pop the current
+            node off the stack of open elements. */
+            $this->insertElement($token);
+            array_pop($this->stack);
+
+            /* An end tag whose tag name is "colgroup" */
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            $token['name'] === 'colgroup'
+        ) {
+            /* If the current node is the root html element, then this is a
+            parse error, ignore the token. (innerHTML case) */
+            if (end($this->stack)->nodeName === 'html') {
+                // Ignore
+
+                /* Otherwise, pop the current node (which will be a colgroup
+                element) from the stack of open elements. Switch the insertion
+                mode to "in table". */
+            } else {
+                array_pop($this->stack);
+                $this->mode = self::IN_TABLE;
+            }
+
+            /* An end tag whose tag name is "col" */
+        } elseif ($token['type'] === HTML5::ENDTAG && $token['name'] === 'col') {
+            /* Parse error. Ignore the token. */
+
+            /* Anything else */
+        } else {
+            /* Act as if an end tag with the tag name "colgroup" had been seen,
+            and then, if that token wasn't ignored, reprocess the current token. */
+            $this->inColumnGroup(
+                array(
+                    'name' => 'colgroup',
+                    'type' => HTML5::ENDTAG
+                )
+            );
+
+            return $this->inTable($token);
+        }
+    }
+
+    private function inTableBody($token)
+    {
+        $clear = array('tbody', 'tfoot', 'thead', 'html');
+
+        /* A start tag whose tag name is "tr" */
+        if ($token['type'] === HTML5::STARTTAG && $token['name'] === 'tr') {
+            /* Clear the stack back to a table body context. */
+            $this->clearStackToTableContext($clear);
+
+            /* Insert a tr element for the token, then switch the insertion
+            mode to "in row". */
+            $this->insertElement($token);
+            $this->mode = self::IN_ROW;
+
+            /* A start tag whose tag name is one of: "th", "td" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            ($token['name'] === 'th' || $token['name'] === 'td')
+        ) {
+            /* Parse error. Act as if a start tag with the tag name "tr" had
+            been seen, then reprocess the current token. */
+            $this->inTableBody(
+                array(
+                    'name' => 'tr',
+                    'type' => HTML5::STARTTAG,
+                    'attr' => array()
+                )
+            );
+
+            return $this->inRow($token);
+
+            /* An end tag whose tag name is one of: "tbody", "tfoot", "thead" */
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            in_array($token['name'], array('tbody', 'tfoot', 'thead'))
+        ) {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as the token, this is a parse error.
+            Ignore the token. */
+            if (!$this->elementInScope($token['name'], true)) {
+                // Ignore
+
+                /* Otherwise: */
+            } else {
+                /* Clear the stack back to a table body context. */
+                $this->clearStackToTableContext($clear);
+
+                /* Pop the current node from the stack of open elements. Switch
+                the insertion mode to "in table". */
+                array_pop($this->stack);
+                $this->mode = self::IN_TABLE;
+            }
+
+            /* A start tag whose tag name is one of: "caption", "col", "colgroup",
+            "tbody", "tfoot", "thead", or an end tag whose tag name is "table" */
+        } elseif (($token['type'] === HTML5::STARTTAG && in_array(
+                    $token['name'],
+                    array('caption', 'col', 'colgroup', 'tbody', 'tfoor', 'thead')
+                )) ||
+            ($token['type'] === HTML5::STARTTAG && $token['name'] === 'table')
+        ) {
+            /* If the stack of open elements does not have a tbody, thead, or
+            tfoot element in table scope, this is a parse error. Ignore the
+            token. (innerHTML case) */
+            if (!$this->elementInScope(array('tbody', 'thead', 'tfoot'), true)) {
+                // Ignore.
+
+                /* Otherwise: */
+            } else {
+                /* Clear the stack back to a table body context. */
+                $this->clearStackToTableContext($clear);
+
+                /* Act as if an end tag with the same tag name as the current
+                node ("tbody", "tfoot", or "thead") had been seen, then
+                reprocess the current token. */
+                $this->inTableBody(
+                    array(
+                        'name' => end($this->stack)->nodeName,
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+
+                return $this->mainPhase($token);
+            }
+
+            /* An end tag whose tag name is one of: "body", "caption", "col",
+            "colgroup", "html", "td", "th", "tr" */
+        } elseif ($token['type'] === HTML5::ENDTAG && in_array(
+                $token['name'],
+                array('body', 'caption', 'col', 'colgroup', 'html', 'td', 'th', 'tr')
+            )
+        ) {
+            /* Parse error. Ignore the token. */
+
+            /* Anything else */
+        } else {
+            /* Process the token as if the insertion mode was "in table". */
+            $this->inTable($token);
+        }
+    }
+
+    private function inRow($token)
+    {
+        $clear = array('tr', 'html');
+
+        /* A start tag whose tag name is one of: "th", "td" */
+        if ($token['type'] === HTML5::STARTTAG &&
+            ($token['name'] === 'th' || $token['name'] === 'td')
+        ) {
+            /* Clear the stack back to a table row context. */
+            $this->clearStackToTableContext($clear);
+
+            /* Insert an HTML element for the token, then switch the insertion
+            mode to "in cell". */
+            $this->insertElement($token);
+            $this->mode = self::IN_CELL;
+
+            /* Insert a marker at the end of the list of active formatting
+            elements. */
+            $this->a_formatting[] = self::MARKER;
+
+            /* An end tag whose tag name is "tr" */
+        } elseif ($token['type'] === HTML5::ENDTAG && $token['name'] === 'tr') {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as the token, this is a parse error.
+            Ignore the token. (innerHTML case) */
+            if (!$this->elementInScope($token['name'], true)) {
+                // Ignore.
+
+                /* Otherwise: */
+            } else {
+                /* Clear the stack back to a table row context. */
+                $this->clearStackToTableContext($clear);
+
+                /* Pop the current node (which will be a tr element) from the
+                stack of open elements. Switch the insertion mode to "in table
+                body". */
+                array_pop($this->stack);
+                $this->mode = self::IN_TBODY;
+            }
+
+            /* A start tag whose tag name is one of: "caption", "col", "colgroup",
+            "tbody", "tfoot", "thead", "tr" or an end tag whose tag name is "table" */
+        } elseif ($token['type'] === HTML5::STARTTAG && in_array(
+                $token['name'],
+                array('caption', 'col', 'colgroup', 'tbody', 'tfoot', 'thead', 'tr')
+            )
+        ) {
+            /* Act as if an end tag with the tag name "tr" had been seen, then,
+            if that token wasn't ignored, reprocess the current token. */
+            $this->inRow(
+                array(
+                    'name' => 'tr',
+                    'type' => HTML5::ENDTAG
+                )
+            );
+
+            return $this->inCell($token);
+
+            /* An end tag whose tag name is one of: "tbody", "tfoot", "thead" */
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            in_array($token['name'], array('tbody', 'tfoot', 'thead'))
+        ) {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as the token, this is a parse error.
+            Ignore the token. */
+            if (!$this->elementInScope($token['name'], true)) {
+                // Ignore.
+
+                /* Otherwise: */
+            } else {
+                /* Otherwise, act as if an end tag with the tag name "tr" had
+                been seen, then reprocess the current token. */
+                $this->inRow(
+                    array(
+                        'name' => 'tr',
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+
+                return $this->inCell($token);
+            }
+
+            /* An end tag whose tag name is one of: "body", "caption", "col",
+            "colgroup", "html", "td", "th" */
+        } elseif ($token['type'] === HTML5::ENDTAG && in_array(
+                $token['name'],
+                array('body', 'caption', 'col', 'colgroup', 'html', 'td', 'th', 'tr')
+            )
+        ) {
+            /* Parse error. Ignore the token. */
+
+            /* Anything else */
+        } else {
+            /* Process the token as if the insertion mode was "in table". */
+            $this->inTable($token);
+        }
+    }
+
+    private function inCell($token)
+    {
+        /* An end tag whose tag name is one of: "td", "th" */
+        if ($token['type'] === HTML5::ENDTAG &&
+            ($token['name'] === 'td' || $token['name'] === 'th')
+        ) {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as that of the token, then this is a
+            parse error and the token must be ignored. */
+            if (!$this->elementInScope($token['name'], true)) {
+                // Ignore.
+
+                /* Otherwise: */
+            } else {
+                /* Generate implied end tags, except for elements with the same
+                tag name as the token. */
+                $this->generateImpliedEndTags(array($token['name']));
+
+                /* Now, if the current node is not an element with the same tag
+                name as the token, then this is a parse error. */
+                // k
+
+                /* Pop elements from this stack until an element with the same
+                tag name as the token has been popped from the stack. */
+                while (true) {
+                    $node = end($this->stack)->nodeName;
+                    array_pop($this->stack);
+
+                    if ($node === $token['name']) {
+                        break;
+                    }
+                }
+
+                /* Clear the list of active formatting elements up to the last
+                marker. */
+                $this->clearTheActiveFormattingElementsUpToTheLastMarker();
+
+                /* Switch the insertion mode to "in row". (The current node
+                will be a tr element at this point.) */
+                $this->mode = self::IN_ROW;
+            }
+
+            /* A start tag whose tag name is one of: "caption", "col", "colgroup",
+            "tbody", "td", "tfoot", "th", "thead", "tr" */
+        } elseif ($token['type'] === HTML5::STARTTAG && in_array(
+                $token['name'],
+                array(
+                    'caption',
+                    'col',
+                    'colgroup',
+                    'tbody',
+                    'td',
+                    'tfoot',
+                    'th',
+                    'thead',
+                    'tr'
+                )
+            )
+        ) {
+            /* If the stack of open elements does not have a td or th element
+            in table scope, then this is a parse error; ignore the token.
+            (innerHTML case) */
+            if (!$this->elementInScope(array('td', 'th'), true)) {
+                // Ignore.
+
+                /* Otherwise, close the cell (see below) and reprocess the current
+                token. */
+            } else {
+                $this->closeCell();
+                return $this->inRow($token);
+            }
+
+            /* A start tag whose tag name is one of: "caption", "col", "colgroup",
+            "tbody", "td", "tfoot", "th", "thead", "tr" */
+        } elseif ($token['type'] === HTML5::STARTTAG && in_array(
+                $token['name'],
+                array(
+                    'caption',
+                    'col',
+                    'colgroup',
+                    'tbody',
+                    'td',
+                    'tfoot',
+                    'th',
+                    'thead',
+                    'tr'
+                )
+            )
+        ) {
+            /* If the stack of open elements does not have a td or th element
+            in table scope, then this is a parse error; ignore the token.
+            (innerHTML case) */
+            if (!$this->elementInScope(array('td', 'th'), true)) {
+                // Ignore.
+
+                /* Otherwise, close the cell (see below) and reprocess the current
+                token. */
+            } else {
+                $this->closeCell();
+                return $this->inRow($token);
+            }
+
+            /* An end tag whose tag name is one of: "body", "caption", "col",
+            "colgroup", "html" */
+        } elseif ($token['type'] === HTML5::ENDTAG && in_array(
+                $token['name'],
+                array('body', 'caption', 'col', 'colgroup', 'html')
+            )
+        ) {
+            /* Parse error. Ignore the token. */
+
+            /* An end tag whose tag name is one of: "table", "tbody", "tfoot",
+            "thead", "tr" */
+        } elseif ($token['type'] === HTML5::ENDTAG && in_array(
+                $token['name'],
+                array('table', 'tbody', 'tfoot', 'thead', 'tr')
+            )
+        ) {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as that of the token (which can only
+            happen for "tbody", "tfoot" and "thead", or, in the innerHTML case),
+            then this is a parse error and the token must be ignored. */
+            if (!$this->elementInScope($token['name'], true)) {
+                // Ignore.
+
+                /* Otherwise, close the cell (see below) and reprocess the current
+                token. */
+            } else {
+                $this->closeCell();
+                return $this->inRow($token);
+            }
+
+            /* Anything else */
+        } else {
+            /* Process the token as if the insertion mode was "in body". */
+            $this->inBody($token);
+        }
+    }
+
+    private function inSelect($token)
+    {
+        /* Handle the token as follows: */
+
+        /* A character token */
+        if ($token['type'] === HTML5::CHARACTR) {
+            /* Append the token's character to the current node. */
+            $this->insertText($token['data']);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data
+            attribute set to the data given in the comment token. */
+            $this->insertComment($token['data']);
+
+            /* A start tag token whose tag name is "option" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            $token['name'] === 'option'
+        ) {
+            /* If the current node is an option element, act as if an end tag
+            with the tag name "option" had been seen. */
+            if (end($this->stack)->nodeName === 'option') {
+                $this->inSelect(
+                    array(
+                        'name' => 'option',
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+            }
+
+            /* Insert an HTML element for the token. */
+            $this->insertElement($token);
+
+            /* A start tag token whose tag name is "optgroup" */
+        } elseif ($token['type'] === HTML5::STARTTAG &&
+            $token['name'] === 'optgroup'
+        ) {
+            /* If the current node is an option element, act as if an end tag
+            with the tag name "option" had been seen. */
+            if (end($this->stack)->nodeName === 'option') {
+                $this->inSelect(
+                    array(
+                        'name' => 'option',
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+            }
+
+            /* If the current node is an optgroup element, act as if an end tag
+            with the tag name "optgroup" had been seen. */
+            if (end($this->stack)->nodeName === 'optgroup') {
+                $this->inSelect(
+                    array(
+                        'name' => 'optgroup',
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+            }
+
+            /* Insert an HTML element for the token. */
+            $this->insertElement($token);
+
+            /* An end tag token whose tag name is "optgroup" */
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            $token['name'] === 'optgroup'
+        ) {
+            /* First, if the current node is an option element, and the node
+            immediately before it in the stack of open elements is an optgroup
+            element, then act as if an end tag with the tag name "option" had
+            been seen. */
+            $elements_in_stack = count($this->stack);
+
+            if ($this->stack[$elements_in_stack - 1]->nodeName === 'option' &&
+                $this->stack[$elements_in_stack - 2]->nodeName === 'optgroup'
+            ) {
+                $this->inSelect(
+                    array(
+                        'name' => 'option',
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+            }
+
+            /* If the current node is an optgroup element, then pop that node
+            from the stack of open elements. Otherwise, this is a parse error,
+            ignore the token. */
+            if ($this->stack[$elements_in_stack - 1] === 'optgroup') {
+                array_pop($this->stack);
+            }
+
+            /* An end tag token whose tag name is "option" */
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            $token['name'] === 'option'
+        ) {
+            /* If the current node is an option element, then pop that node
+            from the stack of open elements. Otherwise, this is a parse error,
+            ignore the token. */
+            if (end($this->stack)->nodeName === 'option') {
+                array_pop($this->stack);
+            }
+
+            /* An end tag whose tag name is "select" */
+        } elseif ($token['type'] === HTML5::ENDTAG &&
+            $token['name'] === 'select'
+        ) {
+            /* If the stack of open elements does not have an element in table
+            scope with the same tag name as the token, this is a parse error.
+            Ignore the token. (innerHTML case) */
+            if (!$this->elementInScope($token['name'], true)) {
+                // w/e
+
+                /* Otherwise: */
+            } else {
+                /* Pop elements from the stack of open elements until a select
+                element has been popped from the stack. */
+                while (true) {
+                    $current = end($this->stack)->nodeName;
+                    array_pop($this->stack);
+
+                    if ($current === 'select') {
+                        break;
+                    }
+                }
+
+                /* Reset the insertion mode appropriately. */
+                $this->resetInsertionMode();
+            }
+
+            /* A start tag whose tag name is "select" */
+        } elseif ($token['name'] === 'select' &&
+            $token['type'] === HTML5::STARTTAG
+        ) {
+            /* Parse error. Act as if the token had been an end tag with the
+            tag name "select" instead. */
+            $this->inSelect(
+                array(
+                    'name' => 'select',
+                    'type' => HTML5::ENDTAG
+                )
+            );
+
+            /* An end tag whose tag name is one of: "caption", "table", "tbody",
+            "tfoot", "thead", "tr", "td", "th" */
+        } elseif (in_array(
+                $token['name'],
+                array(
+                    'caption',
+                    'table',
+                    'tbody',
+                    'tfoot',
+                    'thead',
+                    'tr',
+                    'td',
+                    'th'
+                )
+            ) && $token['type'] === HTML5::ENDTAG
+        ) {
+            /* Parse error. */
+            // w/e
+
+            /* If the stack of open elements has an element in table scope with
+            the same tag name as that of the token, then act as if an end tag
+            with the tag name "select" had been seen, and reprocess the token.
+            Otherwise, ignore the token. */
+            if ($this->elementInScope($token['name'], true)) {
+                $this->inSelect(
+                    array(
+                        'name' => 'select',
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+
+                $this->mainPhase($token);
+            }
+
+            /* Anything else */
+        } else {
+            /* Parse error. Ignore the token. */
+        }
+    }
+
+    private function afterBody($token)
+    {
+        /* Handle the token as follows: */
+
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        or U+0020 SPACE */
+        if ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Process the token as it would be processed if the insertion mode
+            was "in body". */
+            $this->inBody($token);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the first element in the stack of open
+            elements (the html element), with the data attribute set to the
+            data given in the comment token. */
+            $comment = $this->dom->createComment($token['data']);
+            $this->stack[0]->appendChild($comment);
+
+            /* An end tag with the tag name "html" */
+        } elseif ($token['type'] === HTML5::ENDTAG && $token['name'] === 'html') {
+            /* If the parser was originally created in order to handle the
+            setting of an element's innerHTML attribute, this is a parse error;
+            ignore the token. (The element will be an html element in this
+            case.) (innerHTML case) */
+
+            /* Otherwise, switch to the trailing end phase. */
+            $this->phase = self::END_PHASE;
+
+            /* Anything else */
+        } else {
+            /* Parse error. Set the insertion mode to "in body" and reprocess
+            the token. */
+            $this->mode = self::IN_BODY;
+            return $this->inBody($token);
+        }
+    }
+
+    private function inFrameset($token)
+    {
+        /* Handle the token as follows: */
+
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        U+000D CARRIAGE RETURN (CR), or U+0020 SPACE */
+        if ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Append the character to the current node. */
+            $this->insertText($token['data']);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data
+            attribute set to the data given in the comment token. */
+            $this->insertComment($token['data']);
+
+            /* A start tag with the tag name "frameset" */
+        } elseif ($token['name'] === 'frameset' &&
+            $token['type'] === HTML5::STARTTAG
+        ) {
+            $this->insertElement($token);
+
+            /* An end tag with the tag name "frameset" */
+        } elseif ($token['name'] === 'frameset' &&
+            $token['type'] === HTML5::ENDTAG
+        ) {
+            /* If the current node is the root html element, then this is a
+            parse error; ignore the token. (innerHTML case) */
+            if (end($this->stack)->nodeName === 'html') {
+                // Ignore
+
+            } else {
+                /* Otherwise, pop the current node from the stack of open
+                elements. */
+                array_pop($this->stack);
+
+                /* If the parser was not originally created in order to handle
+                the setting of an element's innerHTML attribute (innerHTML case),
+                and the current node is no longer a frameset element, then change
+                the insertion mode to "after frameset". */
+                $this->mode = self::AFTR_FRAME;
+            }
+
+            /* A start tag with the tag name "frame" */
+        } elseif ($token['name'] === 'frame' &&
+            $token['type'] === HTML5::STARTTAG
+        ) {
+            /* Insert an HTML element for the token. */
+            $this->insertElement($token);
+
+            /* Immediately pop the current node off the stack of open elements. */
+            array_pop($this->stack);
+
+            /* A start tag with the tag name "noframes" */
+        } elseif ($token['name'] === 'noframes' &&
+            $token['type'] === HTML5::STARTTAG
+        ) {
+            /* Process the token as if the insertion mode had been "in body". */
+            $this->inBody($token);
+
+            /* Anything else */
+        } else {
+            /* Parse error. Ignore the token. */
+        }
+    }
+
+    private function afterFrameset($token)
+    {
+        /* Handle the token as follows: */
+
+        /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+        U+000D CARRIAGE RETURN (CR), or U+0020 SPACE */
+        if ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Append the character to the current node. */
+            $this->insertText($token['data']);
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the current node with the data
+            attribute set to the data given in the comment token. */
+            $this->insertComment($token['data']);
+
+            /* An end tag with the tag name "html" */
+        } elseif ($token['name'] === 'html' &&
+            $token['type'] === HTML5::ENDTAG
+        ) {
+            /* Switch to the trailing end phase. */
+            $this->phase = self::END_PHASE;
+
+            /* A start tag with the tag name "noframes" */
+        } elseif ($token['name'] === 'noframes' &&
+            $token['type'] === HTML5::STARTTAG
+        ) {
+            /* Process the token as if the insertion mode had been "in body". */
+            $this->inBody($token);
+
+            /* Anything else */
+        } else {
+            /* Parse error. Ignore the token. */
+        }
+    }
+
+    private function trailingEndPhase($token)
+    {
+        /* After the main phase, as each token is emitted from the tokenisation
+        stage, it must be processed as described in this section. */
+
+        /* A DOCTYPE token */
+        if ($token['type'] === HTML5::DOCTYPE) {
+            // Parse error. Ignore the token.
+
+            /* A comment token */
+        } elseif ($token['type'] === HTML5::COMMENT) {
+            /* Append a Comment node to the Document object with the data
+            attribute set to the data given in the comment token. */
+            $comment = $this->dom->createComment($token['data']);
+            $this->dom->appendChild($comment);
+
+            /* A character token that is one of one of U+0009 CHARACTER TABULATION,
+            U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+            or U+0020 SPACE */
+        } elseif ($token['type'] === HTML5::CHARACTR &&
+            preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])
+        ) {
+            /* Process the token as it would be processed in the main phase. */
+            $this->mainPhase($token);
+
+            /* A character token that is not one of U+0009 CHARACTER TABULATION,
+            U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED (FF),
+            or U+0020 SPACE. Or a start tag token. Or an end tag token. */
+        } elseif (($token['type'] === HTML5::CHARACTR &&
+                preg_match('/^[\t\n\x0b\x0c ]+$/', $token['data'])) ||
+            $token['type'] === HTML5::STARTTAG || $token['type'] === HTML5::ENDTAG
+        ) {
+            /* Parse error. Switch back to the main phase and reprocess the
+            token. */
+            $this->phase = self::MAIN_PHASE;
+            return $this->mainPhase($token);
+
+            /* An end-of-file token */
+        } elseif ($token['type'] === HTML5::EOF) {
+            /* OMG DONE!! */
+        }
+    }
+
+    private function insertElement($token, $append = true, $check = false)
+    {
+        // Proprietary workaround for libxml2's limitations with tag names
+        if ($check) {
+            // Slightly modified HTML5 tag-name modification,
+            // removing anything that's not an ASCII letter, digit, or hyphen
+            $token['name'] = preg_replace('/[^a-z0-9-]/i', '', $token['name']);
+            // Remove leading hyphens and numbers
+            $token['name'] = ltrim($token['name'], '-0..9');
+            // In theory, this should ever be needed, but just in case
+            if ($token['name'] === '') {
+                $token['name'] = 'span';
+            } // arbitrary generic choice
+        }
+
+        $el = $this->dom->createElement($token['name']);
+
+        foreach ($token['attr'] as $attr) {
+            if (!$el->hasAttribute($attr['name'])) {
+                $el->setAttribute($attr['name'], $attr['value']);
+            }
+        }
+
+        $this->appendToRealParent($el);
+        $this->stack[] = $el;
+
+        return $el;
+    }
+
+    private function insertText($data)
+    {
+        $text = $this->dom->createTextNode($data);
+        $this->appendToRealParent($text);
+    }
+
+    private function insertComment($data)
+    {
+        $comment = $this->dom->createComment($data);
+        $this->appendToRealParent($comment);
+    }
+
+    private function appendToRealParent($node)
+    {
+        if ($this->foster_parent === null) {
+            end($this->stack)->appendChild($node);
+
+        } elseif ($this->foster_parent !== null) {
+            /* If the foster parent element is the parent element of the
+            last table element in the stack of open elements, then the new
+            node must be inserted immediately before the last table element
+            in the stack of open elements in the foster parent element;
+            otherwise, the new node must be appended to the foster parent
+            element. */
+            for ($n = count($this->stack) - 1; $n >= 0; $n--) {
+                if ($this->stack[$n]->nodeName === 'table' &&
+                    $this->stack[$n]->parentNode !== null
+                ) {
+                    $table = $this->stack[$n];
+                    break;
+                }
+            }
+
+            if (isset($table) && $this->foster_parent->isSameNode($table->parentNode)) {
+                $this->foster_parent->insertBefore($node, $table);
+            } else {
+                $this->foster_parent->appendChild($node);
+            }
+
+            $this->foster_parent = null;
+        }
+    }
+
+    private function elementInScope($el, $table = false)
+    {
+        if (is_array($el)) {
+            foreach ($el as $element) {
+                if ($this->elementInScope($element, $table)) {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
+        $leng = count($this->stack);
+
+        for ($n = 0; $n < $leng; $n++) {
+            /* 1. Initialise node to be the current node (the bottommost node of
+            the stack). */
+            $node = $this->stack[$leng - 1 - $n];
+
+            if ($node->tagName === $el) {
+                /* 2. If node is the target node, terminate in a match state. */
+                return true;
+
+            } elseif ($node->tagName === 'table') {
+                /* 3. Otherwise, if node is a table element, terminate in a failure
+                state. */
+                return false;
+
+            } elseif ($table === true && in_array(
+                    $node->tagName,
+                    array(
+                        'caption',
+                        'td',
+                        'th',
+                        'button',
+                        'marquee',
+                        'object'
+                    )
+                )
+            ) {
+                /* 4. Otherwise, if the algorithm is the "has an element in scope"
+                variant (rather than the "has an element in table scope" variant),
+                and node is one of the following, terminate in a failure state. */
+                return false;
+
+            } elseif ($node === $node->ownerDocument->documentElement) {
+                /* 5. Otherwise, if node is an html element (root element), terminate
+                in a failure state. (This can only happen if the node is the topmost
+                node of the    stack of open elements, and prevents the next step from
+                being invoked if there are no more elements in the stack.) */
+                return false;
+            }
+
+            /* Otherwise, set node to the previous entry in the stack of open
+            elements and return to step 2. (This will never fail, since the loop
+            will always terminate in the previous step if the top of the stack
+            is reached.) */
+        }
+    }
+
+    private function reconstructActiveFormattingElements()
+    {
+        /* 1. If there are no entries in the list of active formatting elements,
+        then there is nothing to reconstruct; stop this algorithm. */
+        $formatting_elements = count($this->a_formatting);
+
+        if ($formatting_elements === 0) {
+            return false;
+        }
+
+        /* 3. Let entry be the last (most recently added) element in the list
+        of active formatting elements. */
+        $entry = end($this->a_formatting);
+
+        /* 2. If the last (most recently added) entry in the list of active
+        formatting elements is a marker, or if it is an element that is in the
+        stack of open elements, then there is nothing to reconstruct; stop this
+        algorithm. */
+        if ($entry === self::MARKER || in_array($entry, $this->stack, true)) {
+            return false;
+        }
+
+        for ($a = $formatting_elements - 1; $a >= 0; true) {
+            /* 4. If there are no entries before entry in the list of active
+            formatting elements, then jump to step 8. */
+            if ($a === 0) {
+                $step_seven = false;
+                break;
+            }
+
+            /* 5. Let entry be the entry one earlier than entry in the list of
+            active formatting elements. */
+            $a--;
+            $entry = $this->a_formatting[$a];
+
+            /* 6. If entry is neither a marker nor an element that is also in
+            thetack of open elements, go to step 4. */
+            if ($entry === self::MARKER || in_array($entry, $this->stack, true)) {
+                break;
+            }
+        }
+
+        while (true) {
+            /* 7. Let entry be the element one later than entry in the list of
+            active formatting elements. */
+            if (isset($step_seven) && $step_seven === true) {
+                $a++;
+                $entry = $this->a_formatting[$a];
+            }
+
+            /* 8. Perform a shallow clone of the element entry to obtain clone. */
+            $clone = $entry->cloneNode();
+
+            /* 9. Append clone to the current node and push it onto the stack
+            of open elements  so that it is the new current node. */
+            end($this->stack)->appendChild($clone);
+            $this->stack[] = $clone;
+
+            /* 10. Replace the entry for entry in the list with an entry for
+            clone. */
+            $this->a_formatting[$a] = $clone;
+
+            /* 11. If the entry for clone in the list of active formatting
+            elements is not the last entry in the list, return to step 7. */
+            if (end($this->a_formatting) !== $clone) {
+                $step_seven = true;
+            } else {
+                break;
+            }
+        }
+    }
+
+    private function clearTheActiveFormattingElementsUpToTheLastMarker()
+    {
+        /* When the steps below require the UA to clear the list of active
+        formatting elements up to the last marker, the UA must perform the
+        following steps: */
+
+        while (true) {
+            /* 1. Let entry be the last (most recently added) entry in the list
+            of active formatting elements. */
+            $entry = end($this->a_formatting);
+
+            /* 2. Remove entry from the list of active formatting elements. */
+            array_pop($this->a_formatting);
+
+            /* 3. If entry was a marker, then stop the algorithm at this point.
+            The list has been cleared up to the last marker. */
+            if ($entry === self::MARKER) {
+                break;
+            }
+        }
+    }
+
+    private function generateImpliedEndTags($exclude = array())
+    {
+        /* When the steps below require the UA to generate implied end tags,
+        then, if the current node is a dd element, a dt element, an li element,
+        a p element, a td element, a th  element, or a tr element, the UA must
+        act as if an end tag with the respective tag name had been seen and
+        then generate implied end tags again. */
+        $node = end($this->stack);
+        $elements = array_diff(array('dd', 'dt', 'li', 'p', 'td', 'th', 'tr'), $exclude);
+
+        while (in_array(end($this->stack)->nodeName, $elements)) {
+            array_pop($this->stack);
+        }
+    }
+
+    private function getElementCategory($node)
+    {
+        $name = $node->tagName;
+        if (in_array($name, $this->special)) {
+            return self::SPECIAL;
+        } elseif (in_array($name, $this->scoping)) {
+            return self::SCOPING;
+        } elseif (in_array($name, $this->formatting)) {
+            return self::FORMATTING;
+        } else {
+            return self::PHRASING;
+        }
+    }
+
+    private function clearStackToTableContext($elements)
+    {
+        /* When the steps above require the UA to clear the stack back to a
+        table context, it means that the UA must, while the current node is not
+        a table element or an html element, pop elements from the stack of open
+        elements. If this causes any elements to be popped from the stack, then
+        this is a parse error. */
+        while (true) {
+            $node = end($this->stack)->nodeName;
+
+            if (in_array($node, $elements)) {
+                break;
+            } else {
+                array_pop($this->stack);
+            }
+        }
+    }
+
+    private function resetInsertionMode()
+    {
+        /* 1. Let last be false. */
+        $last = false;
+        $leng = count($this->stack);
+
+        for ($n = $leng - 1; $n >= 0; $n--) {
+            /* 2. Let node be the last node in the stack of open elements. */
+            $node = $this->stack[$n];
+
+            /* 3. If node is the first node in the stack of open elements, then
+            set last to true. If the element whose innerHTML  attribute is being
+            set is neither a td  element nor a th element, then set node to the
+            element whose innerHTML  attribute is being set. (innerHTML  case) */
+            if ($this->stack[0]->isSameNode($node)) {
+                $last = true;
+            }
+
+            /* 4. If node is a select element, then switch the insertion mode to
+            "in select" and abort these steps. (innerHTML case) */
+            if ($node->nodeName === 'select') {
+                $this->mode = self::IN_SELECT;
+                break;
+
+                /* 5. If node is a td or th element, then switch the insertion mode
+                to "in cell" and abort these steps. */
+            } elseif ($node->nodeName === 'td' || $node->nodeName === 'th') {
+                $this->mode = self::IN_CELL;
+                break;
+
+                /* 6. If node is a tr element, then switch the insertion mode to
+                "in    row" and abort these steps. */
+            } elseif ($node->nodeName === 'tr') {
+                $this->mode = self::IN_ROW;
+                break;
+
+                /* 7. If node is a tbody, thead, or tfoot element, then switch the
+                insertion mode to "in table body" and abort these steps. */
+            } elseif (in_array($node->nodeName, array('tbody', 'thead', 'tfoot'))) {
+                $this->mode = self::IN_TBODY;
+                break;
+
+                /* 8. If node is a caption element, then switch the insertion mode
+                to "in caption" and abort these steps. */
+            } elseif ($node->nodeName === 'caption') {
+                $this->mode = self::IN_CAPTION;
+                break;
+
+                /* 9. If node is a colgroup element, then switch the insertion mode
+                to "in column group" and abort these steps. (innerHTML case) */
+            } elseif ($node->nodeName === 'colgroup') {
+                $this->mode = self::IN_CGROUP;
+                break;
+
+                /* 10. If node is a table element, then switch the insertion mode
+                to "in table" and abort these steps. */
+            } elseif ($node->nodeName === 'table') {
+                $this->mode = self::IN_TABLE;
+                break;
+
+                /* 11. If node is a head element, then switch the insertion mode
+                to "in body" ("in body"! not "in head"!) and abort these steps.
+                (innerHTML case) */
+            } elseif ($node->nodeName === 'head') {
+                $this->mode = self::IN_BODY;
+                break;
+
+                /* 12. If node is a body element, then switch the insertion mode to
+                "in body" and abort these steps. */
+            } elseif ($node->nodeName === 'body') {
+                $this->mode = self::IN_BODY;
+                break;
+
+                /* 13. If node is a frameset element, then switch the insertion
+                mode to "in frameset" and abort these steps. (innerHTML case) */
+            } elseif ($node->nodeName === 'frameset') {
+                $this->mode = self::IN_FRAME;
+                break;
+
+                /* 14. If node is an html element, then: if the head element
+                pointer is null, switch the insertion mode to "before head",
+                otherwise, switch the insertion mode to "after head". In either
+                case, abort these steps. (innerHTML case) */
+            } elseif ($node->nodeName === 'html') {
+                $this->mode = ($this->head_pointer === null)
+                    ? self::BEFOR_HEAD
+                    : self::AFTER_HEAD;
+
+                break;
+
+                /* 15. If last is true, then set the insertion mode to "in body"
+                and    abort these steps. (innerHTML case) */
+            } elseif ($last) {
+                $this->mode = self::IN_BODY;
+                break;
+            }
+        }
+    }
+
+    private function closeCell()
+    {
+        /* If the stack of open elements has a td or th element in table scope,
+        then act as if an end tag token with that tag name had been seen. */
+        foreach (array('td', 'th') as $cell) {
+            if ($this->elementInScope($cell, true)) {
+                $this->inCell(
+                    array(
+                        'name' => $cell,
+                        'type' => HTML5::ENDTAG
+                    )
+                );
+
+                break;
+            }
+        }
+    }
+
+    public function save()
+    {
+        return $this->dom;
+    }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node.php
new file mode 100644
index 0000000..3995fec
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * Abstract base node class that all others inherit from.
+ *
+ * Why do we not use the DOM extension?  (1) It is not always available,
+ * (2) it has funny constraints on the data it can represent,
+ * whereas we want a maximally flexible representation, and (3) its
+ * interface is a bit cumbersome.
+ */
+abstract class HTMLPurifier_Node
+{
+    /**
+     * Line number of the start token in the source document
+     * @type int
+     */
+    public $line;
+
+    /**
+     * Column number of the start token in the source document. Null if unknown.
+     * @type int
+     */
+    public $col;
+
+    /**
+     * Lookup array of processing that this token is exempt from.
+     * Currently, valid values are "ValidateAttributes".
+     * @type array
+     */
+    public $armor = array();
+
+    /**
+     * When true, this node should be ignored as non-existent.
+     *
+     * Who is responsible for ignoring dead nodes?  FixNesting is
+     * responsible for removing them before passing on to child
+     * validators.
+     */
+    public $dead = false;
+
+    /**
+     * Returns a pair of start and end tokens, where the end token
+     * is null if it is not necessary. Does not include children.
+     * @type array
+     */
+    abstract public function toTokenPair();
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Comment.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Comment.php
new file mode 100644
index 0000000..38ba193
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Comment.php
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * Concrete comment node class.
+ */
+class HTMLPurifier_Node_Comment extends HTMLPurifier_Node
+{
+    /**
+     * Character data within comment.
+     * @type string
+     */
+    public $data;
+
+    /**
+     * @type bool
+     */
+    public $is_whitespace = true;
+
+    /**
+     * Transparent constructor.
+     *
+     * @param string $data String comment data.
+     * @param int $line
+     * @param int $col
+     */
+    public function __construct($data, $line = null, $col = null)
+    {
+        $this->data = $data;
+        $this->line = $line;
+        $this->col = $col;
+    }
+
+    public function toTokenPair() {
+        return array(new HTMLPurifier_Token_Comment($this->data, $this->line, $this->col), null);
+    }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Element.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Element.php
new file mode 100644
index 0000000..6cbf56d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Element.php
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * Concrete element node class.
+ */
+class HTMLPurifier_Node_Element extends HTMLPurifier_Node
+{
+    /**
+     * The lower-case name of the tag, like 'a', 'b' or 'blockquote'.
+     *
+     * @note Strictly speaking, XML tags are case sensitive, so we shouldn't
+     * be lower-casing them, but these tokens cater to HTML tags, which are
+     * insensitive.
+     * @type string
+     */
+    public $name;
+
+    /**
+     * Associative array of the node's attributes.
+     * @type array
+     */
+    public $attr = array();
+
+    /**
+     * List of child elements.
+     * @type array
+     */
+    public $children = array();
+
+    /**
+     * Does this use the <a></a> form or the </a> form, i.e.
+     * is it a pair of start/end tokens or an empty token.
+     * @bool
+     */
+    public $empty = false;
+
+    public $endCol = null, $endLine = null, $endArmor = array();
+
+    public function __construct($name, $attr = array(), $line = null, $col = null, $armor = array()) {
+        $this->name = $name;
+        $this->attr = $attr;
+        $this->line = $line;
+        $this->col = $col;
+        $this->armor = $armor;
+    }
+
+    public function toTokenPair() {
+        // XXX inefficiency here, normalization is not necessary
+        if ($this->empty) {
+            return array(new HTMLPurifier_Token_Empty($this->name, $this->attr, $this->line, $this->col, $this->armor), null);
+        } else {
+            $start = new HTMLPurifier_Token_Start($this->name, $this->attr, $this->line, $this->col, $this->armor);
+            $end = new HTMLPurifier_Token_End($this->name, array(), $this->endLine, $this->endCol, $this->endArmor);
+            //$end->start = $start;
+            return array($start, $end);
+        }
+    }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Text.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Text.php
new file mode 100644
index 0000000..aec9166
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Node/Text.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * Concrete text token class.
+ *
+ * Text tokens comprise of regular parsed character data (PCDATA) and raw
+ * character data (from the CDATA sections). Internally, their
+ * data is parsed with all entities expanded. Surprisingly, the text token
+ * does have a "tag name" called #PCDATA, which is how the DTD represents it
+ * in permissible child nodes.
+ */
+class HTMLPurifier_Node_Text extends HTMLPurifier_Node
+{
+
+    /**
+     * PCDATA tag name compatible with DTD, see
+     * HTMLPurifier_ChildDef_Custom for details.
+     * @type string
+     */
+    public $name = '#PCDATA';
+
+    /**
+     * @type string
+     */
+    public $data;
+    /**< Parsed character data of text. */
+
+    /**
+     * @type bool
+     */
+    public $is_whitespace;
+
+    /**< Bool indicating if node is whitespace. */
+
+    /**
+     * Constructor, accepts data and determines if it is whitespace.
+     * @param string $data String parsed character data.
+     * @param int $line
+     * @param int $col
+     */
+    public function __construct($data, $is_whitespace, $line = null, $col = null)
+    {
+        $this->data = $data;
+        $this->is_whitespace = $is_whitespace;
+        $this->line = $line;
+        $this->col = $col;
+    }
+
+    public function toTokenPair() {
+        return array(new HTMLPurifier_Token_Text($this->data, $this->line, $this->col), null);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PercentEncoder.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PercentEncoder.php
new file mode 100644
index 0000000..18c8bbb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PercentEncoder.php
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * Class that handles operations involving percent-encoding in URIs.
+ *
+ * @warning
+ *      Be careful when reusing instances of PercentEncoder. The object
+ *      you use for normalize() SHOULD NOT be used for encode(), or
+ *      vice-versa.
+ */
+class HTMLPurifier_PercentEncoder
+{
+
+    /**
+     * Reserved characters to preserve when using encode().
+     * @type array
+     */
+    protected $preserve = array();
+
+    /**
+     * String of characters that should be preserved while using encode().
+     * @param bool $preserve
+     */
+    public function __construct($preserve = false)
+    {
+        // unreserved letters, ought to const-ify
+        for ($i = 48; $i <= 57; $i++) { // digits
+            $this->preserve[$i] = true;
+        }
+        for ($i = 65; $i <= 90; $i++) { // upper-case
+            $this->preserve[$i] = true;
+        }
+        for ($i = 97; $i <= 122; $i++) { // lower-case
+            $this->preserve[$i] = true;
+        }
+        $this->preserve[45] = true; // Dash         -
+        $this->preserve[46] = true; // Period       .
+        $this->preserve[95] = true; // Underscore   _
+        $this->preserve[126]= true; // Tilde        ~
+
+        // extra letters not to escape
+        if ($preserve !== false) {
+            for ($i = 0, $c = strlen($preserve); $i < $c; $i++) {
+                $this->preserve[ord($preserve[$i])] = true;
+            }
+        }
+    }
+
+    /**
+     * Our replacement for urlencode, it encodes all non-reserved characters,
+     * as well as any extra characters that were instructed to be preserved.
+     * @note
+     *      Assumes that the string has already been normalized, making any
+     *      and all percent escape sequences valid. Percents will not be
+     *      re-escaped, regardless of their status in $preserve
+     * @param string $string String to be encoded
+     * @return string Encoded string.
+     */
+    public function encode($string)
+    {
+        $ret = '';
+        for ($i = 0, $c = strlen($string); $i < $c; $i++) {
+            if ($string[$i] !== '%' && !isset($this->preserve[$int = ord($string[$i])])) {
+                $ret .= '%' . sprintf('%02X', $int);
+            } else {
+                $ret .= $string[$i];
+            }
+        }
+        return $ret;
+    }
+
+    /**
+     * Fix up percent-encoding by decoding unreserved characters and normalizing.
+     * @warning This function is affected by $preserve, even though the
+     *          usual desired behavior is for this not to preserve those
+     *          characters. Be careful when reusing instances of PercentEncoder!
+     * @param string $string String to normalize
+     * @return string
+     */
+    public function normalize($string)
+    {
+        if ($string == '') {
+            return '';
+        }
+        $parts = explode('%', $string);
+        $ret = array_shift($parts);
+        foreach ($parts as $part) {
+            $length = strlen($part);
+            if ($length < 2) {
+                $ret .= '%25' . $part;
+                continue;
+            }
+            $encoding = substr($part, 0, 2);
+            $text     = substr($part, 2);
+            if (!ctype_xdigit($encoding)) {
+                $ret .= '%25' . $part;
+                continue;
+            }
+            $int = hexdec($encoding);
+            if (isset($this->preserve[$int])) {
+                $ret .= chr($int) . $text;
+                continue;
+            }
+            $encoding = strtoupper($encoding);
+            $ret .= '%' . $encoding . $text;
+        }
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer.php
new file mode 100644
index 0000000..549e4ce
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer.php
@@ -0,0 +1,218 @@
+<?php
+
+// OUT OF DATE, NEEDS UPDATING!
+// USE XMLWRITER!
+
+class HTMLPurifier_Printer
+{
+
+    /**
+     * For HTML generation convenience funcs.
+     * @type HTMLPurifier_Generator
+     */
+    protected $generator;
+
+    /**
+     * For easy access.
+     * @type HTMLPurifier_Config
+     */
+    protected $config;
+
+    /**
+     * Initialize $generator.
+     */
+    public function __construct()
+    {
+    }
+
+    /**
+     * Give generator necessary configuration if possible
+     * @param HTMLPurifier_Config $config
+     */
+    public function prepareGenerator($config)
+    {
+        $all = $config->getAll();
+        $context = new HTMLPurifier_Context();
+        $this->generator = new HTMLPurifier_Generator($config, $context);
+    }
+
+    /**
+     * Main function that renders object or aspect of that object
+     * @note Parameters vary depending on printer
+     */
+    // function render() {}
+
+    /**
+     * Returns a start tag
+     * @param string $tag Tag name
+     * @param array $attr Attribute array
+     * @return string
+     */
+    protected function start($tag, $attr = array())
+    {
+        return $this->generator->generateFromToken(
+            new HTMLPurifier_Token_Start($tag, $attr ? $attr : array())
+        );
+    }
+
+    /**
+     * Returns an end tag
+     * @param string $tag Tag name
+     * @return string
+     */
+    protected function end($tag)
+    {
+        return $this->generator->generateFromToken(
+            new HTMLPurifier_Token_End($tag)
+        );
+    }
+
+    /**
+     * Prints a complete element with content inside
+     * @param string $tag Tag name
+     * @param string $contents Element contents
+     * @param array $attr Tag attributes
+     * @param bool $escape whether or not to escape contents
+     * @return string
+     */
+    protected function element($tag, $contents, $attr = array(), $escape = true)
+    {
+        return $this->start($tag, $attr) .
+            ($escape ? $this->escape($contents) : $contents) .
+            $this->end($tag);
+    }
+
+    /**
+     * @param string $tag
+     * @param array $attr
+     * @return string
+     */
+    protected function elementEmpty($tag, $attr = array())
+    {
+        return $this->generator->generateFromToken(
+            new HTMLPurifier_Token_Empty($tag, $attr)
+        );
+    }
+
+    /**
+     * @param string $text
+     * @return string
+     */
+    protected function text($text)
+    {
+        return $this->generator->generateFromToken(
+            new HTMLPurifier_Token_Text($text)
+        );
+    }
+
+    /**
+     * Prints a simple key/value row in a table.
+     * @param string $name Key
+     * @param mixed $value Value
+     * @return string
+     */
+    protected function row($name, $value)
+    {
+        if (is_bool($value)) {
+            $value = $value ? 'On' : 'Off';
+        }
+        return
+            $this->start('tr') . "\n" .
+            $this->element('th', $name) . "\n" .
+            $this->element('td', $value) . "\n" .
+            $this->end('tr');
+    }
+
+    /**
+     * Escapes a string for HTML output.
+     * @param string $string String to escape
+     * @return string
+     */
+    protected function escape($string)
+    {
+        $string = HTMLPurifier_Encoder::cleanUTF8($string);
+        $string = htmlspecialchars($string, ENT_COMPAT, 'UTF-8');
+        return $string;
+    }
+
+    /**
+     * Takes a list of strings and turns them into a single list
+     * @param string[] $array List of strings
+     * @param bool $polite Bool whether or not to add an end before the last
+     * @return string
+     */
+    protected function listify($array, $polite = false)
+    {
+        if (empty($array)) {
+            return 'None';
+        }
+        $ret = '';
+        $i = count($array);
+        foreach ($array as $value) {
+            $i--;
+            $ret .= $value;
+            if ($i > 0 && !($polite && $i == 1)) {
+                $ret .= ', ';
+            }
+            if ($polite && $i == 1) {
+                $ret .= 'and ';
+            }
+        }
+        return $ret;
+    }
+
+    /**
+     * Retrieves the class of an object without prefixes, as well as metadata
+     * @param object $obj Object to determine class of
+     * @param string $sec_prefix Further prefix to remove
+     * @return string
+     */
+    protected function getClass($obj, $sec_prefix = '')
+    {
+        static $five = null;
+        if ($five === null) {
+            $five = version_compare(PHP_VERSION, '5', '>=');
+        }
+        $prefix = 'HTMLPurifier_' . $sec_prefix;
+        if (!$five) {
+            $prefix = strtolower($prefix);
+        }
+        $class = str_replace($prefix, '', get_class($obj));
+        $lclass = strtolower($class);
+        $class .= '(';
+        switch ($lclass) {
+            case 'enum':
+                $values = array();
+                foreach ($obj->valid_values as $value => $bool) {
+                    $values[] = $value;
+                }
+                $class .= implode(', ', $values);
+                break;
+            case 'css_composite':
+                $values = array();
+                foreach ($obj->defs as $def) {
+                    $values[] = $this->getClass($def, $sec_prefix);
+                }
+                $class .= implode(', ', $values);
+                break;
+            case 'css_multiple':
+                $class .= $this->getClass($obj->single, $sec_prefix) . ', ';
+                $class .= $obj->max;
+                break;
+            case 'css_denyelementdecorator':
+                $class .= $this->getClass($obj->def, $sec_prefix) . ', ';
+                $class .= $obj->element;
+                break;
+            case 'css_importantdecorator':
+                $class .= $this->getClass($obj->def, $sec_prefix);
+                if ($obj->allow) {
+                    $class .= ', !important';
+                }
+                break;
+        }
+        $class .= ')';
+        return $class;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php
new file mode 100644
index 0000000..29505fe
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php
@@ -0,0 +1,44 @@
+<?php
+
+class HTMLPurifier_Printer_CSSDefinition extends HTMLPurifier_Printer
+{
+    /**
+     * @type HTMLPurifier_CSSDefinition
+     */
+    protected $def;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return string
+     */
+    public function render($config)
+    {
+        $this->def = $config->getCSSDefinition();
+        $ret = '';
+
+        $ret .= $this->start('div', array('class' => 'HTMLPurifier_Printer'));
+        $ret .= $this->start('table');
+
+        $ret .= $this->element('caption', 'Properties ($info)');
+
+        $ret .= $this->start('thead');
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', 'Property', array('class' => 'heavy'));
+        $ret .= $this->element('th', 'Definition', array('class' => 'heavy', 'style' => 'width:auto;'));
+        $ret .= $this->end('tr');
+        $ret .= $this->end('thead');
+
+        ksort($this->def->info);
+        foreach ($this->def->info as $property => $obj) {
+            $name = $this->getClass($obj, 'AttrDef_');
+            $ret .= $this->row($property, $name);
+        }
+
+        $ret .= $this->end('table');
+        $ret .= $this->end('div');
+
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.css b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.css
new file mode 100644
index 0000000..3ff1a88
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.css
@@ -0,0 +1,10 @@
+
+.hp-config {}
+
+.hp-config tbody th {text-align:right; padding-right:0.5em;}
+.hp-config thead, .hp-config .namespace {background:#3C578C; color:#FFF;}
+.hp-config .namespace th {text-align:center;}
+.hp-config .verbose {display:none;}
+.hp-config .controls {text-align:center;}
+
+/* vim: et sw=4 sts=4 */
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.js b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.js
new file mode 100644
index 0000000..cba00c9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.js
@@ -0,0 +1,5 @@
+function toggleWriteability(id_of_patient, checked) {
+    document.getElementById(id_of_patient).disabled = checked;
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php
new file mode 100644
index 0000000..36100ce
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php
@@ -0,0 +1,447 @@
+<?php
+
+/**
+ * @todo Rewrite to use Interchange objects
+ */
+class HTMLPurifier_Printer_ConfigForm extends HTMLPurifier_Printer
+{
+
+    /**
+     * Printers for specific fields.
+     * @type HTMLPurifier_Printer[]
+     */
+    protected $fields = array();
+
+    /**
+     * Documentation URL, can have fragment tagged on end.
+     * @type string
+     */
+    protected $docURL;
+
+    /**
+     * Name of form element to stuff config in.
+     * @type string
+     */
+    protected $name;
+
+    /**
+     * Whether or not to compress directive names, clipping them off
+     * after a certain amount of letters. False to disable or integer letters
+     * before clipping.
+     * @type bool
+     */
+    protected $compress = false;
+
+    /**
+     * @param string $name Form element name for directives to be stuffed into
+     * @param string $doc_url String documentation URL, will have fragment tagged on
+     * @param bool $compress Integer max length before compressing a directive name, set to false to turn off
+     */
+    public function __construct(
+        $name,
+        $doc_url = null,
+        $compress = false
+    ) {
+        parent::__construct();
+        $this->docURL = $doc_url;
+        $this->name = $name;
+        $this->compress = $compress;
+        // initialize sub-printers
+        $this->fields[0] = new HTMLPurifier_Printer_ConfigForm_default();
+        $this->fields[HTMLPurifier_VarParser::BOOL] = new HTMLPurifier_Printer_ConfigForm_bool();
+    }
+
+    /**
+     * Sets default column and row size for textareas in sub-printers
+     * @param $cols Integer columns of textarea, null to use default
+     * @param $rows Integer rows of textarea, null to use default
+     */
+    public function setTextareaDimensions($cols = null, $rows = null)
+    {
+        if ($cols) {
+            $this->fields['default']->cols = $cols;
+        }
+        if ($rows) {
+            $this->fields['default']->rows = $rows;
+        }
+    }
+
+    /**
+     * Retrieves styling, in case it is not accessible by webserver
+     */
+    public static function getCSS()
+    {
+        return file_get_contents(HTMLPURIFIER_PREFIX . '/HTMLPurifier/Printer/ConfigForm.css');
+    }
+
+    /**
+     * Retrieves JavaScript, in case it is not accessible by webserver
+     */
+    public static function getJavaScript()
+    {
+        return file_get_contents(HTMLPURIFIER_PREFIX . '/HTMLPurifier/Printer/ConfigForm.js');
+    }
+
+    /**
+     * Returns HTML output for a configuration form
+     * @param HTMLPurifier_Config|array $config Configuration object of current form state, or an array
+     *        where [0] has an HTML namespace and [1] is being rendered.
+     * @param array|bool $allowed Optional namespace(s) and directives to restrict form to.
+     * @param bool $render_controls
+     * @return string
+     */
+    public function render($config, $allowed = true, $render_controls = true)
+    {
+        if (is_array($config) && isset($config[0])) {
+            $gen_config = $config[0];
+            $config = $config[1];
+        } else {
+            $gen_config = $config;
+        }
+
+        $this->config = $config;
+        $this->genConfig = $gen_config;
+        $this->prepareGenerator($gen_config);
+
+        $allowed = HTMLPurifier_Config::getAllowedDirectivesForForm($allowed, $config->def);
+        $all = array();
+        foreach ($allowed as $key) {
+            list($ns, $directive) = $key;
+            $all[$ns][$directive] = $config->get($ns . '.' . $directive);
+        }
+
+        $ret = '';
+        $ret .= $this->start('table', array('class' => 'hp-config'));
+        $ret .= $this->start('thead');
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', 'Directive', array('class' => 'hp-directive'));
+        $ret .= $this->element('th', 'Value', array('class' => 'hp-value'));
+        $ret .= $this->end('tr');
+        $ret .= $this->end('thead');
+        foreach ($all as $ns => $directives) {
+            $ret .= $this->renderNamespace($ns, $directives);
+        }
+        if ($render_controls) {
+            $ret .= $this->start('tbody');
+            $ret .= $this->start('tr');
+            $ret .= $this->start('td', array('colspan' => 2, 'class' => 'controls'));
+            $ret .= $this->elementEmpty('input', array('type' => 'submit', 'value' => 'Submit'));
+            $ret .= '[<a href="?">Reset</a>]';
+            $ret .= $this->end('td');
+            $ret .= $this->end('tr');
+            $ret .= $this->end('tbody');
+        }
+        $ret .= $this->end('table');
+        return $ret;
+    }
+
+    /**
+     * Renders a single namespace
+     * @param $ns String namespace name
+     * @param array $directives array of directives to values
+     * @return string
+     */
+    protected function renderNamespace($ns, $directives)
+    {
+        $ret = '';
+        $ret .= $this->start('tbody', array('class' => 'namespace'));
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', $ns, array('colspan' => 2));
+        $ret .= $this->end('tr');
+        $ret .= $this->end('tbody');
+        $ret .= $this->start('tbody');
+        foreach ($directives as $directive => $value) {
+            $ret .= $this->start('tr');
+            $ret .= $this->start('th');
+            if ($this->docURL) {
+                $url = str_replace('%s', urlencode("$ns.$directive"), $this->docURL);
+                $ret .= $this->start('a', array('href' => $url));
+            }
+            $attr = array('for' => "{$this->name}:$ns.$directive");
+
+            // crop directive name if it's too long
+            if (!$this->compress || (strlen($directive) < $this->compress)) {
+                $directive_disp = $directive;
+            } else {
+                $directive_disp = substr($directive, 0, $this->compress - 2) . '...';
+                $attr['title'] = $directive;
+            }
+
+            $ret .= $this->element(
+                'label',
+                $directive_disp,
+                // component printers must create an element with this id
+                $attr
+            );
+            if ($this->docURL) {
+                $ret .= $this->end('a');
+            }
+            $ret .= $this->end('th');
+
+            $ret .= $this->start('td');
+            $def = $this->config->def->info["$ns.$directive"];
+            if (is_int($def)) {
+                $allow_null = $def < 0;
+                $type = abs($def);
+            } else {
+                $type = $def->type;
+                $allow_null = isset($def->allow_null);
+            }
+            if (!isset($this->fields[$type])) {
+                $type = 0;
+            } // default
+            $type_obj = $this->fields[$type];
+            if ($allow_null) {
+                $type_obj = new HTMLPurifier_Printer_ConfigForm_NullDecorator($type_obj);
+            }
+            $ret .= $type_obj->render($ns, $directive, $value, $this->name, array($this->genConfig, $this->config));
+            $ret .= $this->end('td');
+            $ret .= $this->end('tr');
+        }
+        $ret .= $this->end('tbody');
+        return $ret;
+    }
+
+}
+
+/**
+ * Printer decorator for directives that accept null
+ */
+class HTMLPurifier_Printer_ConfigForm_NullDecorator extends HTMLPurifier_Printer
+{
+    /**
+     * Printer being decorated
+     * @type HTMLPurifier_Printer
+     */
+    protected $obj;
+
+    /**
+     * @param HTMLPurifier_Printer $obj Printer to decorate
+     */
+    public function __construct($obj)
+    {
+        parent::__construct();
+        $this->obj = $obj;
+    }
+
+    /**
+     * @param string $ns
+     * @param string $directive
+     * @param string $value
+     * @param string $name
+     * @param HTMLPurifier_Config|array $config
+     * @return string
+     */
+    public function render($ns, $directive, $value, $name, $config)
+    {
+        if (is_array($config) && isset($config[0])) {
+            $gen_config = $config[0];
+            $config = $config[1];
+        } else {
+            $gen_config = $config;
+        }
+        $this->prepareGenerator($gen_config);
+
+        $ret = '';
+        $ret .= $this->start('label', array('for' => "$name:Null_$ns.$directive"));
+        $ret .= $this->element('span', "$ns.$directive:", array('class' => 'verbose'));
+        $ret .= $this->text(' Null/Disabled');
+        $ret .= $this->end('label');
+        $attr = array(
+            'type' => 'checkbox',
+            'value' => '1',
+            'class' => 'null-toggle',
+            'name' => "$name" . "[Null_$ns.$directive]",
+            'id' => "$name:Null_$ns.$directive",
+            'onclick' => "toggleWriteability('$name:$ns.$directive',checked)" // INLINE JAVASCRIPT!!!!
+        );
+        if ($this->obj instanceof HTMLPurifier_Printer_ConfigForm_bool) {
+            // modify inline javascript slightly
+            $attr['onclick'] =
+                "toggleWriteability('$name:Yes_$ns.$directive',checked);" .
+                "toggleWriteability('$name:No_$ns.$directive',checked)";
+        }
+        if ($value === null) {
+            $attr['checked'] = 'checked';
+        }
+        $ret .= $this->elementEmpty('input', $attr);
+        $ret .= $this->text(' or ');
+        $ret .= $this->elementEmpty('br');
+        $ret .= $this->obj->render($ns, $directive, $value, $name, array($gen_config, $config));
+        return $ret;
+    }
+}
+
+/**
+ * Swiss-army knife configuration form field printer
+ */
+class HTMLPurifier_Printer_ConfigForm_default extends HTMLPurifier_Printer
+{
+    /**
+     * @type int
+     */
+    public $cols = 18;
+
+    /**
+     * @type int
+     */
+    public $rows = 5;
+
+    /**
+     * @param string $ns
+     * @param string $directive
+     * @param string $value
+     * @param string $name
+     * @param HTMLPurifier_Config|array $config
+     * @return string
+     */
+    public function render($ns, $directive, $value, $name, $config)
+    {
+        if (is_array($config) && isset($config[0])) {
+            $gen_config = $config[0];
+            $config = $config[1];
+        } else {
+            $gen_config = $config;
+        }
+        $this->prepareGenerator($gen_config);
+        // this should probably be split up a little
+        $ret = '';
+        $def = $config->def->info["$ns.$directive"];
+        if (is_int($def)) {
+            $type = abs($def);
+        } else {
+            $type = $def->type;
+        }
+        if (is_array($value)) {
+            switch ($type) {
+                case HTMLPurifier_VarParser::LOOKUP:
+                    $array = $value;
+                    $value = array();
+                    foreach ($array as $val => $b) {
+                        $value[] = $val;
+                    }
+                    //TODO does this need a break?
+                case HTMLPurifier_VarParser::ALIST:
+                    $value = implode(PHP_EOL, $value);
+                    break;
+                case HTMLPurifier_VarParser::HASH:
+                    $nvalue = '';
+                    foreach ($value as $i => $v) {
+                        $nvalue .= "$i:$v" . PHP_EOL;
+                    }
+                    $value = $nvalue;
+                    break;
+                default:
+                    $value = '';
+            }
+        }
+        if ($type === HTMLPurifier_VarParser::MIXED) {
+            return 'Not supported';
+            $value = serialize($value);
+        }
+        $attr = array(
+            'name' => "$name" . "[$ns.$directive]",
+            'id' => "$name:$ns.$directive"
+        );
+        if ($value === null) {
+            $attr['disabled'] = 'disabled';
+        }
+        if (isset($def->allowed)) {
+            $ret .= $this->start('select', $attr);
+            foreach ($def->allowed as $val => $b) {
+                $attr = array();
+                if ($value == $val) {
+                    $attr['selected'] = 'selected';
+                }
+                $ret .= $this->element('option', $val, $attr);
+            }
+            $ret .= $this->end('select');
+        } elseif ($type === HTMLPurifier_VarParser::TEXT ||
+                $type === HTMLPurifier_VarParser::ITEXT ||
+                $type === HTMLPurifier_VarParser::ALIST ||
+                $type === HTMLPurifier_VarParser::HASH ||
+                $type === HTMLPurifier_VarParser::LOOKUP) {
+            $attr['cols'] = $this->cols;
+            $attr['rows'] = $this->rows;
+            $ret .= $this->start('textarea', $attr);
+            $ret .= $this->text($value);
+            $ret .= $this->end('textarea');
+        } else {
+            $attr['value'] = $value;
+            $attr['type'] = 'text';
+            $ret .= $this->elementEmpty('input', $attr);
+        }
+        return $ret;
+    }
+}
+
+/**
+ * Bool form field printer
+ */
+class HTMLPurifier_Printer_ConfigForm_bool extends HTMLPurifier_Printer
+{
+    /**
+     * @param string $ns
+     * @param string $directive
+     * @param string $value
+     * @param string $name
+     * @param HTMLPurifier_Config|array $config
+     * @return string
+     */
+    public function render($ns, $directive, $value, $name, $config)
+    {
+        if (is_array($config) && isset($config[0])) {
+            $gen_config = $config[0];
+            $config = $config[1];
+        } else {
+            $gen_config = $config;
+        }
+        $this->prepareGenerator($gen_config);
+        $ret = '';
+        $ret .= $this->start('div', array('id' => "$name:$ns.$directive"));
+
+        $ret .= $this->start('label', array('for' => "$name:Yes_$ns.$directive"));
+        $ret .= $this->element('span', "$ns.$directive:", array('class' => 'verbose'));
+        $ret .= $this->text(' Yes');
+        $ret .= $this->end('label');
+
+        $attr = array(
+            'type' => 'radio',
+            'name' => "$name" . "[$ns.$directive]",
+            'id' => "$name:Yes_$ns.$directive",
+            'value' => '1'
+        );
+        if ($value === true) {
+            $attr['checked'] = 'checked';
+        }
+        if ($value === null) {
+            $attr['disabled'] = 'disabled';
+        }
+        $ret .= $this->elementEmpty('input', $attr);
+
+        $ret .= $this->start('label', array('for' => "$name:No_$ns.$directive"));
+        $ret .= $this->element('span', "$ns.$directive:", array('class' => 'verbose'));
+        $ret .= $this->text(' No');
+        $ret .= $this->end('label');
+
+        $attr = array(
+            'type' => 'radio',
+            'name' => "$name" . "[$ns.$directive]",
+            'id' => "$name:No_$ns.$directive",
+            'value' => '0'
+        );
+        if ($value === false) {
+            $attr['checked'] = 'checked';
+        }
+        if ($value === null) {
+            $attr['disabled'] = 'disabled';
+        }
+        $ret .= $this->elementEmpty('input', $attr);
+
+        $ret .= $this->end('div');
+
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php
new file mode 100644
index 0000000..5f2f2f8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php
@@ -0,0 +1,324 @@
+<?php
+
+class HTMLPurifier_Printer_HTMLDefinition extends HTMLPurifier_Printer
+{
+
+    /**
+     * @type HTMLPurifier_HTMLDefinition, for easy access
+     */
+    protected $def;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return string
+     */
+    public function render($config)
+    {
+        $ret = '';
+        $this->config =& $config;
+
+        $this->def = $config->getHTMLDefinition();
+
+        $ret .= $this->start('div', array('class' => 'HTMLPurifier_Printer'));
+
+        $ret .= $this->renderDoctype();
+        $ret .= $this->renderEnvironment();
+        $ret .= $this->renderContentSets();
+        $ret .= $this->renderInfo();
+
+        $ret .= $this->end('div');
+
+        return $ret;
+    }
+
+    /**
+     * Renders the Doctype table
+     * @return string
+     */
+    protected function renderDoctype()
+    {
+        $doctype = $this->def->doctype;
+        $ret = '';
+        $ret .= $this->start('table');
+        $ret .= $this->element('caption', 'Doctype');
+        $ret .= $this->row('Name', $doctype->name);
+        $ret .= $this->row('XML', $doctype->xml ? 'Yes' : 'No');
+        $ret .= $this->row('Default Modules', implode($doctype->modules, ', '));
+        $ret .= $this->row('Default Tidy Modules', implode($doctype->tidyModules, ', '));
+        $ret .= $this->end('table');
+        return $ret;
+    }
+
+
+    /**
+     * Renders environment table, which is miscellaneous info
+     * @return string
+     */
+    protected function renderEnvironment()
+    {
+        $def = $this->def;
+
+        $ret = '';
+
+        $ret .= $this->start('table');
+        $ret .= $this->element('caption', 'Environment');
+
+        $ret .= $this->row('Parent of fragment', $def->info_parent);
+        $ret .= $this->renderChildren($def->info_parent_def->child);
+        $ret .= $this->row('Block wrap name', $def->info_block_wrapper);
+
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', 'Global attributes');
+        $ret .= $this->element('td', $this->listifyAttr($def->info_global_attr), null, 0);
+        $ret .= $this->end('tr');
+
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', 'Tag transforms');
+        $list = array();
+        foreach ($def->info_tag_transform as $old => $new) {
+            $new = $this->getClass($new, 'TagTransform_');
+            $list[] = "<$old> with $new";
+        }
+        $ret .= $this->element('td', $this->listify($list));
+        $ret .= $this->end('tr');
+
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', 'Pre-AttrTransform');
+        $ret .= $this->element('td', $this->listifyObjectList($def->info_attr_transform_pre));
+        $ret .= $this->end('tr');
+
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', 'Post-AttrTransform');
+        $ret .= $this->element('td', $this->listifyObjectList($def->info_attr_transform_post));
+        $ret .= $this->end('tr');
+
+        $ret .= $this->end('table');
+        return $ret;
+    }
+
+    /**
+     * Renders the Content Sets table
+     * @return string
+     */
+    protected function renderContentSets()
+    {
+        $ret = '';
+        $ret .= $this->start('table');
+        $ret .= $this->element('caption', 'Content Sets');
+        foreach ($this->def->info_content_sets as $name => $lookup) {
+            $ret .= $this->heavyHeader($name);
+            $ret .= $this->start('tr');
+            $ret .= $this->element('td', $this->listifyTagLookup($lookup));
+            $ret .= $this->end('tr');
+        }
+        $ret .= $this->end('table');
+        return $ret;
+    }
+
+    /**
+     * Renders the Elements ($info) table
+     * @return string
+     */
+    protected function renderInfo()
+    {
+        $ret = '';
+        $ret .= $this->start('table');
+        $ret .= $this->element('caption', 'Elements ($info)');
+        ksort($this->def->info);
+        $ret .= $this->heavyHeader('Allowed tags', 2);
+        $ret .= $this->start('tr');
+        $ret .= $this->element('td', $this->listifyTagLookup($this->def->info), array('colspan' => 2));
+        $ret .= $this->end('tr');
+        foreach ($this->def->info as $name => $def) {
+            $ret .= $this->start('tr');
+            $ret .= $this->element('th', "<$name>", array('class' => 'heavy', 'colspan' => 2));
+            $ret .= $this->end('tr');
+            $ret .= $this->start('tr');
+            $ret .= $this->element('th', 'Inline content');
+            $ret .= $this->element('td', $def->descendants_are_inline ? 'Yes' : 'No');
+            $ret .= $this->end('tr');
+            if (!empty($def->excludes)) {
+                $ret .= $this->start('tr');
+                $ret .= $this->element('th', 'Excludes');
+                $ret .= $this->element('td', $this->listifyTagLookup($def->excludes));
+                $ret .= $this->end('tr');
+            }
+            if (!empty($def->attr_transform_pre)) {
+                $ret .= $this->start('tr');
+                $ret .= $this->element('th', 'Pre-AttrTransform');
+                $ret .= $this->element('td', $this->listifyObjectList($def->attr_transform_pre));
+                $ret .= $this->end('tr');
+            }
+            if (!empty($def->attr_transform_post)) {
+                $ret .= $this->start('tr');
+                $ret .= $this->element('th', 'Post-AttrTransform');
+                $ret .= $this->element('td', $this->listifyObjectList($def->attr_transform_post));
+                $ret .= $this->end('tr');
+            }
+            if (!empty($def->auto_close)) {
+                $ret .= $this->start('tr');
+                $ret .= $this->element('th', 'Auto closed by');
+                $ret .= $this->element('td', $this->listifyTagLookup($def->auto_close));
+                $ret .= $this->end('tr');
+            }
+            $ret .= $this->start('tr');
+            $ret .= $this->element('th', 'Allowed attributes');
+            $ret .= $this->element('td', $this->listifyAttr($def->attr), array(), 0);
+            $ret .= $this->end('tr');
+
+            if (!empty($def->required_attr)) {
+                $ret .= $this->row('Required attributes', $this->listify($def->required_attr));
+            }
+
+            $ret .= $this->renderChildren($def->child);
+        }
+        $ret .= $this->end('table');
+        return $ret;
+    }
+
+    /**
+     * Renders a row describing the allowed children of an element
+     * @param HTMLPurifier_ChildDef $def HTMLPurifier_ChildDef of pertinent element
+     * @return string
+     */
+    protected function renderChildren($def)
+    {
+        $context = new HTMLPurifier_Context();
+        $ret = '';
+        $ret .= $this->start('tr');
+        $elements = array();
+        $attr = array();
+        if (isset($def->elements)) {
+            if ($def->type == 'strictblockquote') {
+                $def->validateChildren(array(), $this->config, $context);
+            }
+            $elements = $def->elements;
+        }
+        if ($def->type == 'chameleon') {
+            $attr['rowspan'] = 2;
+        } elseif ($def->type == 'empty') {
+            $elements = array();
+        } elseif ($def->type == 'table') {
+            $elements = array_flip(
+                array(
+                    'col',
+                    'caption',
+                    'colgroup',
+                    'thead',
+                    'tfoot',
+                    'tbody',
+                    'tr'
+                )
+            );
+        }
+        $ret .= $this->element('th', 'Allowed children', $attr);
+
+        if ($def->type == 'chameleon') {
+
+            $ret .= $this->element(
+                'td',
+                '<em>Block</em>: ' .
+                $this->escape($this->listifyTagLookup($def->block->elements)),
+                null,
+                0
+            );
+            $ret .= $this->end('tr');
+            $ret .= $this->start('tr');
+            $ret .= $this->element(
+                'td',
+                '<em>Inline</em>: ' .
+                $this->escape($this->listifyTagLookup($def->inline->elements)),
+                null,
+                0
+            );
+
+        } elseif ($def->type == 'custom') {
+
+            $ret .= $this->element(
+                'td',
+                '<em>' . ucfirst($def->type) . '</em>: ' .
+                $def->dtd_regex
+            );
+
+        } else {
+            $ret .= $this->element(
+                'td',
+                '<em>' . ucfirst($def->type) . '</em>: ' .
+                $this->escape($this->listifyTagLookup($elements)),
+                null,
+                0
+            );
+        }
+        $ret .= $this->end('tr');
+        return $ret;
+    }
+
+    /**
+     * Listifies a tag lookup table.
+     * @param array $array Tag lookup array in form of array('tagname' => true)
+     * @return string
+     */
+    protected function listifyTagLookup($array)
+    {
+        ksort($array);
+        $list = array();
+        foreach ($array as $name => $discard) {
+            if ($name !== '#PCDATA' && !isset($this->def->info[$name])) {
+                continue;
+            }
+            $list[] = $name;
+        }
+        return $this->listify($list);
+    }
+
+    /**
+     * Listifies a list of objects by retrieving class names and internal state
+     * @param array $array List of objects
+     * @return string
+     * @todo Also add information about internal state
+     */
+    protected function listifyObjectList($array)
+    {
+        ksort($array);
+        $list = array();
+        foreach ($array as $obj) {
+            $list[] = $this->getClass($obj, 'AttrTransform_');
+        }
+        return $this->listify($list);
+    }
+
+    /**
+     * Listifies a hash of attributes to AttrDef classes
+     * @param array $array Array hash in form of array('attrname' => HTMLPurifier_AttrDef)
+     * @return string
+     */
+    protected function listifyAttr($array)
+    {
+        ksort($array);
+        $list = array();
+        foreach ($array as $name => $obj) {
+            if ($obj === false) {
+                continue;
+            }
+            $list[] = "$name = <i>" . $this->getClass($obj, 'AttrDef_') . '</i>';
+        }
+        return $this->listify($list);
+    }
+
+    /**
+     * Creates a heavy header row
+     * @param string $text
+     * @param int $num
+     * @return string
+     */
+    protected function heavyHeader($text, $num = 1)
+    {
+        $ret = '';
+        $ret .= $this->start('tr');
+        $ret .= $this->element('th', $text, array('colspan' => $num, 'class' => 'heavy'));
+        $ret .= $this->end('tr');
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PropertyList.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PropertyList.php
new file mode 100644
index 0000000..189348f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PropertyList.php
@@ -0,0 +1,122 @@
+<?php
+
+/**
+ * Generic property list implementation
+ */
+class HTMLPurifier_PropertyList
+{
+    /**
+     * Internal data-structure for properties.
+     * @type array
+     */
+    protected $data = array();
+
+    /**
+     * Parent plist.
+     * @type HTMLPurifier_PropertyList
+     */
+    protected $parent;
+
+    /**
+     * Cache.
+     * @type array
+     */
+    protected $cache;
+
+    /**
+     * @param HTMLPurifier_PropertyList $parent Parent plist
+     */
+    public function __construct($parent = null)
+    {
+        $this->parent = $parent;
+    }
+
+    /**
+     * Recursively retrieves the value for a key
+     * @param string $name
+     * @throws HTMLPurifier_Exception
+     */
+    public function get($name)
+    {
+        if ($this->has($name)) {
+            return $this->data[$name];
+        }
+        // possible performance bottleneck, convert to iterative if necessary
+        if ($this->parent) {
+            return $this->parent->get($name);
+        }
+        throw new HTMLPurifier_Exception("Key '$name' not found");
+    }
+
+    /**
+     * Sets the value of a key, for this plist
+     * @param string $name
+     * @param mixed $value
+     */
+    public function set($name, $value)
+    {
+        $this->data[$name] = $value;
+    }
+
+    /**
+     * Returns true if a given key exists
+     * @param string $name
+     * @return bool
+     */
+    public function has($name)
+    {
+        return array_key_exists($name, $this->data);
+    }
+
+    /**
+     * Resets a value to the value of it's parent, usually the default. If
+     * no value is specified, the entire plist is reset.
+     * @param string $name
+     */
+    public function reset($name = null)
+    {
+        if ($name == null) {
+            $this->data = array();
+        } else {
+            unset($this->data[$name]);
+        }
+    }
+
+    /**
+     * Squashes this property list and all of its property lists into a single
+     * array, and returns the array. This value is cached by default.
+     * @param bool $force If true, ignores the cache and regenerates the array.
+     * @return array
+     */
+    public function squash($force = false)
+    {
+        if ($this->cache !== null && !$force) {
+            return $this->cache;
+        }
+        if ($this->parent) {
+            return $this->cache = array_merge($this->parent->squash($force), $this->data);
+        } else {
+            return $this->cache = $this->data;
+        }
+    }
+
+    /**
+     * Returns the parent plist.
+     * @return HTMLPurifier_PropertyList
+     */
+    public function getParent()
+    {
+        return $this->parent;
+    }
+
+    /**
+     * Sets the parent plist.
+     * @param HTMLPurifier_PropertyList $plist Parent plist
+     */
+    public function setParent($plist)
+    {
+        $this->parent = $plist;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php
new file mode 100644
index 0000000..15b330e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * Property list iterator. Do not instantiate this class directly.
+ */
+class HTMLPurifier_PropertyListIterator extends FilterIterator
+{
+
+    /**
+     * @type int
+     */
+    protected $l;
+    /**
+     * @type string
+     */
+    protected $filter;
+
+    /**
+     * @param Iterator $iterator Array of data to iterate over
+     * @param string $filter Optional prefix to only allow values of
+     */
+    public function __construct(Iterator $iterator, $filter = null)
+    {
+        parent::__construct($iterator);
+        $this->l = strlen($filter);
+        $this->filter = $filter;
+    }
+
+    /**
+     * @return bool
+     */
+    public function accept()
+    {
+        $key = $this->getInnerIterator()->key();
+        if (strncmp($key, $this->filter, $this->l) !== 0) {
+            return false;
+        }
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Queue.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Queue.php
new file mode 100644
index 0000000..f58db90
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Queue.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * A simple array-backed queue, based off of the classic Okasaki
+ * persistent amortized queue.  The basic idea is to maintain two
+ * stacks: an input stack and an output stack.  When the output
+ * stack runs out, reverse the input stack and use it as the output
+ * stack.
+ *
+ * We don't use the SPL implementation because it's only supported
+ * on PHP 5.3 and later.
+ *
+ * Exercise: Prove that push/pop on this queue take amortized O(1) time.
+ *
+ * Exercise: Extend this queue to be a deque, while preserving amortized
+ * O(1) time.  Some care must be taken on rebalancing to avoid quadratic
+ * behaviour caused by repeatedly shuffling data from the input stack
+ * to the output stack and back.
+ */
+class HTMLPurifier_Queue {
+    private $input;
+    private $output;
+
+    public function __construct($input = array()) {
+        $this->input = $input;
+        $this->output = array();
+    }
+
+    /**
+     * Shifts an element off the front of the queue.
+     */
+    public function shift() {
+        if (empty($this->output)) {
+            $this->output = array_reverse($this->input);
+            $this->input = array();
+        }
+        if (empty($this->output)) {
+            return NULL;
+        }
+        return array_pop($this->output);
+    }
+
+    /**
+     * Pushes an element onto the front of the queue.
+     */
+    public function push($x) {
+        array_push($this->input, $x);
+    }
+
+    /**
+     * Checks if it's empty.
+     */
+    public function isEmpty() {
+        return empty($this->input) && empty($this->output);
+    }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy.php
new file mode 100644
index 0000000..e1ff3b7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * Supertype for classes that define a strategy for modifying/purifying tokens.
+ *
+ * While HTMLPurifier's core purpose is fixing HTML into something proper,
+ * strategies provide plug points for extra configuration or even extra
+ * features, such as custom tags, custom parsing of text, etc.
+ */
+
+
+abstract class HTMLPurifier_Strategy
+{
+
+    /**
+     * Executes the strategy on the tokens.
+     *
+     * @param HTMLPurifier_Token[] $tokens Array of HTMLPurifier_Token objects to be operated on.
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token[] Processed array of token objects.
+     */
+    abstract public function execute($tokens, $config, $context);
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/Composite.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/Composite.php
new file mode 100644
index 0000000..d7d35ce
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/Composite.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * Composite strategy that runs multiple strategies on tokens.
+ */
+abstract class HTMLPurifier_Strategy_Composite extends HTMLPurifier_Strategy
+{
+
+    /**
+     * List of strategies to run tokens through.
+     * @type HTMLPurifier_Strategy[]
+     */
+    protected $strategies = array();
+
+    /**
+     * @param HTMLPurifier_Token[] $tokens
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token[]
+     */
+    public function execute($tokens, $config, $context)
+    {
+        foreach ($this->strategies as $strategy) {
+            $tokens = $strategy->execute($tokens, $config, $context);
+        }
+        return $tokens;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/Core.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/Core.php
new file mode 100644
index 0000000..4414c17
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/Core.php
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Core strategy composed of the big four strategies.
+ */
+class HTMLPurifier_Strategy_Core extends HTMLPurifier_Strategy_Composite
+{
+    public function __construct()
+    {
+        $this->strategies[] = new HTMLPurifier_Strategy_RemoveForeignElements();
+        $this->strategies[] = new HTMLPurifier_Strategy_MakeWellFormed();
+        $this->strategies[] = new HTMLPurifier_Strategy_FixNesting();
+        $this->strategies[] = new HTMLPurifier_Strategy_ValidateAttributes();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php
new file mode 100644
index 0000000..6fa673d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php
@@ -0,0 +1,181 @@
+<?php
+
+/**
+ * Takes a well formed list of tokens and fixes their nesting.
+ *
+ * HTML elements dictate which elements are allowed to be their children,
+ * for example, you can't have a p tag in a span tag.  Other elements have
+ * much more rigorous definitions: tables, for instance, require a specific
+ * order for their elements.  There are also constraints not expressible by
+ * document type definitions, such as the chameleon nature of ins/del
+ * tags and global child exclusions.
+ *
+ * The first major objective of this strategy is to iterate through all
+ * the nodes and determine whether or not their children conform to the
+ * element's definition.  If they do not, the child definition may
+ * optionally supply an amended list of elements that is valid or
+ * require that the entire node be deleted (and the previous node
+ * rescanned).
+ *
+ * The second objective is to ensure that explicitly excluded elements of
+ * an element do not appear in its children.  Code that accomplishes this
+ * task is pervasive through the strategy, though the two are distinct tasks
+ * and could, theoretically, be seperated (although it's not recommended).
+ *
+ * @note Whether or not unrecognized children are silently dropped or
+ *       translated into text depends on the child definitions.
+ *
+ * @todo Enable nodes to be bubbled out of the structure.  This is
+ *       easier with our new algorithm.
+ */
+
+class HTMLPurifier_Strategy_FixNesting extends HTMLPurifier_Strategy
+{
+
+    /**
+     * @param HTMLPurifier_Token[] $tokens
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array|HTMLPurifier_Token[]
+     */
+    public function execute($tokens, $config, $context)
+    {
+
+        //####################################################################//
+        // Pre-processing
+
+        // O(n) pass to convert to a tree, so that we can efficiently
+        // refer to substrings
+        $top_node = HTMLPurifier_Arborize::arborize($tokens, $config, $context);
+
+        // get a copy of the HTML definition
+        $definition = $config->getHTMLDefinition();
+
+        $excludes_enabled = !$config->get('Core.DisableExcludes');
+
+        // setup the context variable 'IsInline', for chameleon processing
+        // is 'false' when we are not inline, 'true' when it must always
+        // be inline, and an integer when it is inline for a certain
+        // branch of the document tree
+        $is_inline = $definition->info_parent_def->descendants_are_inline;
+        $context->register('IsInline', $is_inline);
+
+        // setup error collector
+        $e =& $context->get('ErrorCollector', true);
+
+        //####################################################################//
+        // Loop initialization
+
+        // stack that contains all elements that are excluded
+        // it is organized by parent elements, similar to $stack,
+        // but it is only populated when an element with exclusions is
+        // processed, i.e. there won't be empty exclusions.
+        $exclude_stack = array($definition->info_parent_def->excludes);
+
+        // variable that contains the start token while we are processing
+        // nodes. This enables error reporting to do its job
+        $node = $top_node;
+        // dummy token
+        list($token, $d) = $node->toTokenPair();
+        $context->register('CurrentNode', $node);
+        $context->register('CurrentToken', $token);
+
+        //####################################################################//
+        // Loop
+
+        // We need to implement a post-order traversal iteratively, to
+        // avoid running into stack space limits.  This is pretty tricky
+        // to reason about, so we just manually stack-ify the recursive
+        // variant:
+        //
+        //  function f($node) {
+        //      foreach ($node->children as $child) {
+        //          f($child);
+        //      }
+        //      validate($node);
+        //  }
+        //
+        // Thus, we will represent a stack frame as array($node,
+        // $is_inline, stack of children)
+        // e.g. array_reverse($node->children) - already processed
+        // children.
+
+        $parent_def = $definition->info_parent_def;
+        $stack = array(
+            array($top_node,
+                  $parent_def->descendants_are_inline,
+                  $parent_def->excludes, // exclusions
+                  0)
+            );
+
+        while (!empty($stack)) {
+            list($node, $is_inline, $excludes, $ix) = array_pop($stack);
+            // recursive call
+            $go = false;
+            $def = empty($stack) ? $definition->info_parent_def : $definition->info[$node->name];
+            while (isset($node->children[$ix])) {
+                $child = $node->children[$ix++];
+                if ($child instanceof HTMLPurifier_Node_Element) {
+                    $go = true;
+                    $stack[] = array($node, $is_inline, $excludes, $ix);
+                    $stack[] = array($child,
+                        // ToDo: I don't think it matters if it's def or
+                        // child_def, but double check this...
+                        $is_inline || $def->descendants_are_inline,
+                        empty($def->excludes) ? $excludes
+                                              : array_merge($excludes, $def->excludes),
+                        0);
+                    break;
+                }
+            };
+            if ($go) continue;
+            list($token, $d) = $node->toTokenPair();
+            // base case
+            if ($excludes_enabled && isset($excludes[$node->name])) {
+                $node->dead = true;
+                if ($e) $e->send(E_ERROR, 'Strategy_FixNesting: Node excluded');
+            } else {
+                // XXX I suppose it would be slightly more efficient to
+                // avoid the allocation here and have children
+                // strategies handle it
+                $children = array();
+                foreach ($node->children as $child) {
+                    if (!$child->dead) $children[] = $child;
+                }
+                $result = $def->child->validateChildren($children, $config, $context);
+                if ($result === true) {
+                    // nop
+                    $node->children = $children;
+                } elseif ($result === false) {
+                    $node->dead = true;
+                    if ($e) $e->send(E_ERROR, 'Strategy_FixNesting: Node removed');
+                } else {
+                    $node->children = $result;
+                    if ($e) {
+                        // XXX This will miss mutations of internal nodes. Perhaps defer to the child validators
+                        if (empty($result) && !empty($children)) {
+                            $e->send(E_ERROR, 'Strategy_FixNesting: Node contents removed');
+                        } else if ($result != $children) {
+                            $e->send(E_WARNING, 'Strategy_FixNesting: Node reorganized');
+                        }
+                    }
+                }
+            }
+        }
+
+        //####################################################################//
+        // Post-processing
+
+        // remove context variables
+        $context->destroy('IsInline');
+        $context->destroy('CurrentNode');
+        $context->destroy('CurrentToken');
+
+        //####################################################################//
+        // Return
+
+        return HTMLPurifier_Arborize::flatten($node, $config, $context);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/MakeWellFormed.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/MakeWellFormed.php
new file mode 100644
index 0000000..e389e00
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/MakeWellFormed.php
@@ -0,0 +1,600 @@
+<?php
+
+/**
+ * Takes tokens makes them well-formed (balance end tags, etc.)
+ *
+ * Specification of the armor attributes this strategy uses:
+ *
+ *      - MakeWellFormed_TagClosedError: This armor field is used to
+ *        suppress tag closed errors for certain tokens [TagClosedSuppress],
+ *        in particular, if a tag was generated automatically by HTML
+ *        Purifier, we may rely on our infrastructure to close it for us
+ *        and shouldn't report an error to the user [TagClosedAuto].
+ */
+class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy
+{
+
+    /**
+     * Array stream of tokens being processed.
+     * @type HTMLPurifier_Token[]
+     */
+    protected $tokens;
+
+    /**
+     * Current token.
+     * @type HTMLPurifier_Token
+     */
+    protected $token;
+
+    /**
+     * Zipper managing the true state.
+     * @type HTMLPurifier_Zipper
+     */
+    protected $zipper;
+
+    /**
+     * Current nesting of elements.
+     * @type array
+     */
+    protected $stack;
+
+    /**
+     * Injectors active in this stream processing.
+     * @type HTMLPurifier_Injector[]
+     */
+    protected $injectors;
+
+    /**
+     * Current instance of HTMLPurifier_Config.
+     * @type HTMLPurifier_Config
+     */
+    protected $config;
+
+    /**
+     * Current instance of HTMLPurifier_Context.
+     * @type HTMLPurifier_Context
+     */
+    protected $context;
+
+    /**
+     * @param HTMLPurifier_Token[] $tokens
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token[]
+     * @throws HTMLPurifier_Exception
+     */
+    public function execute($tokens, $config, $context)
+    {
+        $definition = $config->getHTMLDefinition();
+
+        // local variables
+        $generator = new HTMLPurifier_Generator($config, $context);
+        $escape_invalid_tags = $config->get('Core.EscapeInvalidTags');
+        // used for autoclose early abortion
+        $global_parent_allowed_elements = $definition->info_parent_def->child->getAllowedElements($config);
+        $e = $context->get('ErrorCollector', true);
+        $i = false; // injector index
+        list($zipper, $token) = HTMLPurifier_Zipper::fromArray($tokens);
+        if ($token === NULL) {
+            return array();
+        }
+        $reprocess = false; // whether or not to reprocess the same token
+        $stack = array();
+
+        // member variables
+        $this->stack =& $stack;
+        $this->tokens =& $tokens;
+        $this->token =& $token;
+        $this->zipper =& $zipper;
+        $this->config = $config;
+        $this->context = $context;
+
+        // context variables
+        $context->register('CurrentNesting', $stack);
+        $context->register('InputZipper', $zipper);
+        $context->register('CurrentToken', $token);
+
+        // -- begin INJECTOR --
+
+        $this->injectors = array();
+
+        $injectors = $config->getBatch('AutoFormat');
+        $def_injectors = $definition->info_injector;
+        $custom_injectors = $injectors['Custom'];
+        unset($injectors['Custom']); // special case
+        foreach ($injectors as $injector => $b) {
+            // XXX: Fix with a legitimate lookup table of enabled filters
+            if (strpos($injector, '.') !== false) {
+                continue;
+            }
+            $injector = "HTMLPurifier_Injector_$injector";
+            if (!$b) {
+                continue;
+            }
+            $this->injectors[] = new $injector;
+        }
+        foreach ($def_injectors as $injector) {
+            // assumed to be objects
+            $this->injectors[] = $injector;
+        }
+        foreach ($custom_injectors as $injector) {
+            if (!$injector) {
+                continue;
+            }
+            if (is_string($injector)) {
+                $injector = "HTMLPurifier_Injector_$injector";
+                $injector = new $injector;
+            }
+            $this->injectors[] = $injector;
+        }
+
+        // give the injectors references to the definition and context
+        // variables for performance reasons
+        foreach ($this->injectors as $ix => $injector) {
+            $error = $injector->prepare($config, $context);
+            if (!$error) {
+                continue;
+            }
+            array_splice($this->injectors, $ix, 1); // rm the injector
+            trigger_error("Cannot enable {$injector->name} injector because $error is not allowed", E_USER_WARNING);
+        }
+
+        // -- end INJECTOR --
+
+        // a note on reprocessing:
+        //      In order to reduce code duplication, whenever some code needs
+        //      to make HTML changes in order to make things "correct", the
+        //      new HTML gets sent through the purifier, regardless of its
+        //      status. This means that if we add a start token, because it
+        //      was totally necessary, we don't have to update nesting; we just
+        //      punt ($reprocess = true; continue;) and it does that for us.
+
+        // isset is in loop because $tokens size changes during loop exec
+        for (;;
+             // only increment if we don't need to reprocess
+             $reprocess ? $reprocess = false : $token = $zipper->next($token)) {
+
+            // check for a rewind
+            if (is_int($i)) {
+                // possibility: disable rewinding if the current token has a
+                // rewind set on it already. This would offer protection from
+                // infinite loop, but might hinder some advanced rewinding.
+                $rewind_offset = $this->injectors[$i]->getRewindOffset();
+                if (is_int($rewind_offset)) {
+                    for ($j = 0; $j < $rewind_offset; $j++) {
+                        if (empty($zipper->front)) break;
+                        $token = $zipper->prev($token);
+                        // indicate that other injectors should not process this token,
+                        // but we need to reprocess it
+                        unset($token->skip[$i]);
+                        $token->rewind = $i;
+                        if ($token instanceof HTMLPurifier_Token_Start) {
+                            array_pop($this->stack);
+                        } elseif ($token instanceof HTMLPurifier_Token_End) {
+                            $this->stack[] = $token->start;
+                        }
+                    }
+                }
+                $i = false;
+            }
+
+            // handle case of document end
+            if ($token === NULL) {
+                // kill processing if stack is empty
+                if (empty($this->stack)) {
+                    break;
+                }
+
+                // peek
+                $top_nesting = array_pop($this->stack);
+                $this->stack[] = $top_nesting;
+
+                // send error [TagClosedSuppress]
+                if ($e && !isset($top_nesting->armor['MakeWellFormed_TagClosedError'])) {
+                    $e->send(E_NOTICE, 'Strategy_MakeWellFormed: Tag closed by document end', $top_nesting);
+                }
+
+                // append, don't splice, since this is the end
+                $token = new HTMLPurifier_Token_End($top_nesting->name);
+
+                // punt!
+                $reprocess = true;
+                continue;
+            }
+
+            //echo '<br>'; printZipper($zipper, $token);//printTokens($this->stack);
+            //flush();
+
+            // quick-check: if it's not a tag, no need to process
+            if (empty($token->is_tag)) {
+                if ($token instanceof HTMLPurifier_Token_Text) {
+                    foreach ($this->injectors as $i => $injector) {
+                        if (isset($token->skip[$i])) {
+                            continue;
+                        }
+                        if ($token->rewind !== null && $token->rewind !== $i) {
+                            continue;
+                        }
+                        // XXX fuckup
+                        $r = $token;
+                        $injector->handleText($r);
+                        $token = $this->processToken($r, $i);
+                        $reprocess = true;
+                        break;
+                    }
+                }
+                // another possibility is a comment
+                continue;
+            }
+
+            if (isset($definition->info[$token->name])) {
+                $type = $definition->info[$token->name]->child->type;
+            } else {
+                $type = false; // Type is unknown, treat accordingly
+            }
+
+            // quick tag checks: anything that's *not* an end tag
+            $ok = false;
+            if ($type === 'empty' && $token instanceof HTMLPurifier_Token_Start) {
+                // claims to be a start tag but is empty
+                $token = new HTMLPurifier_Token_Empty(
+                    $token->name,
+                    $token->attr,
+                    $token->line,
+                    $token->col,
+                    $token->armor
+                );
+                $ok = true;
+            } elseif ($type && $type !== 'empty' && $token instanceof HTMLPurifier_Token_Empty) {
+                // claims to be empty but really is a start tag
+                // NB: this assignment is required
+                $old_token = $token;
+                $token = new HTMLPurifier_Token_End($token->name);
+                $token = $this->insertBefore(
+                    new HTMLPurifier_Token_Start($old_token->name, $old_token->attr, $old_token->line, $old_token->col, $old_token->armor)
+                );
+                // punt (since we had to modify the input stream in a non-trivial way)
+                $reprocess = true;
+                continue;
+            } elseif ($token instanceof HTMLPurifier_Token_Empty) {
+                // real empty token
+                $ok = true;
+            } elseif ($token instanceof HTMLPurifier_Token_Start) {
+                // start tag
+
+                // ...unless they also have to close their parent
+                if (!empty($this->stack)) {
+
+                    // Performance note: you might think that it's rather
+                    // inefficient, recalculating the autoclose information
+                    // for every tag that a token closes (since when we
+                    // do an autoclose, we push a new token into the
+                    // stream and then /process/ that, before
+                    // re-processing this token.)  But this is
+                    // necessary, because an injector can make an
+                    // arbitrary transformations to the autoclosing
+                    // tokens we introduce, so things may have changed
+                    // in the meantime.  Also, doing the inefficient thing is
+                    // "easy" to reason about (for certain perverse definitions
+                    // of "easy")
+
+                    $parent = array_pop($this->stack);
+                    $this->stack[] = $parent;
+
+                    $parent_def = null;
+                    $parent_elements = null;
+                    $autoclose = false;
+                    if (isset($definition->info[$parent->name])) {
+                        $parent_def = $definition->info[$parent->name];
+                        $parent_elements = $parent_def->child->getAllowedElements($config);
+                        $autoclose = !isset($parent_elements[$token->name]);
+                    }
+
+                    if ($autoclose && $definition->info[$token->name]->wrap) {
+                        // Check if an element can be wrapped by another
+                        // element to make it valid in a context (for
+                        // example, <ul><ul> needs a <li> in between)
+                        $wrapname = $definition->info[$token->name]->wrap;
+                        $wrapdef = $definition->info[$wrapname];
+                        $elements = $wrapdef->child->getAllowedElements($config);
+                        if (isset($elements[$token->name]) && isset($parent_elements[$wrapname])) {
+                            $newtoken = new HTMLPurifier_Token_Start($wrapname);
+                            $token = $this->insertBefore($newtoken);
+                            $reprocess = true;
+                            continue;
+                        }
+                    }
+
+                    $carryover = false;
+                    if ($autoclose && $parent_def->formatting) {
+                        $carryover = true;
+                    }
+
+                    if ($autoclose) {
+                        // check if this autoclose is doomed to fail
+                        // (this rechecks $parent, which his harmless)
+                        $autoclose_ok = isset($global_parent_allowed_elements[$token->name]);
+                        if (!$autoclose_ok) {
+                            foreach ($this->stack as $ancestor) {
+                                $elements = $definition->info[$ancestor->name]->child->getAllowedElements($config);
+                                if (isset($elements[$token->name])) {
+                                    $autoclose_ok = true;
+                                    break;
+                                }
+                                if ($definition->info[$token->name]->wrap) {
+                                    $wrapname = $definition->info[$token->name]->wrap;
+                                    $wrapdef = $definition->info[$wrapname];
+                                    $wrap_elements = $wrapdef->child->getAllowedElements($config);
+                                    if (isset($wrap_elements[$token->name]) && isset($elements[$wrapname])) {
+                                        $autoclose_ok = true;
+                                        break;
+                                    }
+                                }
+                            }
+                        }
+                        if ($autoclose_ok) {
+                            // errors need to be updated
+                            $new_token = new HTMLPurifier_Token_End($parent->name);
+                            $new_token->start = $parent;
+                            // [TagClosedSuppress]
+                            if ($e && !isset($parent->armor['MakeWellFormed_TagClosedError'])) {
+                                if (!$carryover) {
+                                    $e->send(E_NOTICE, 'Strategy_MakeWellFormed: Tag auto closed', $parent);
+                                } else {
+                                    $e->send(E_NOTICE, 'Strategy_MakeWellFormed: Tag carryover', $parent);
+                                }
+                            }
+                            if ($carryover) {
+                                $element = clone $parent;
+                                // [TagClosedAuto]
+                                $element->armor['MakeWellFormed_TagClosedError'] = true;
+                                $element->carryover = true;
+                                $token = $this->processToken(array($new_token, $token, $element));
+                            } else {
+                                $token = $this->insertBefore($new_token);
+                            }
+                        } else {
+                            $token = $this->remove();
+                        }
+                        $reprocess = true;
+                        continue;
+                    }
+
+                }
+                $ok = true;
+            }
+
+            if ($ok) {
+                foreach ($this->injectors as $i => $injector) {
+                    if (isset($token->skip[$i])) {
+                        continue;
+                    }
+                    if ($token->rewind !== null && $token->rewind !== $i) {
+                        continue;
+                    }
+                    $r = $token;
+                    $injector->handleElement($r);
+                    $token = $this->processToken($r, $i);
+                    $reprocess = true;
+                    break;
+                }
+                if (!$reprocess) {
+                    // ah, nothing interesting happened; do normal processing
+                    if ($token instanceof HTMLPurifier_Token_Start) {
+                        $this->stack[] = $token;
+                    } elseif ($token instanceof HTMLPurifier_Token_End) {
+                        throw new HTMLPurifier_Exception(
+                            'Improper handling of end tag in start code; possible error in MakeWellFormed'
+                        );
+                    }
+                }
+                continue;
+            }
+
+            // sanity check: we should be dealing with a closing tag
+            if (!$token instanceof HTMLPurifier_Token_End) {
+                throw new HTMLPurifier_Exception('Unaccounted for tag token in input stream, bug in HTML Purifier');
+            }
+
+            // make sure that we have something open
+            if (empty($this->stack)) {
+                if ($escape_invalid_tags) {
+                    if ($e) {
+                        $e->send(E_WARNING, 'Strategy_MakeWellFormed: Unnecessary end tag to text');
+                    }
+                    $token = new HTMLPurifier_Token_Text($generator->generateFromToken($token));
+                } else {
+                    if ($e) {
+                        $e->send(E_WARNING, 'Strategy_MakeWellFormed: Unnecessary end tag removed');
+                    }
+                    $token = $this->remove();
+                }
+                $reprocess = true;
+                continue;
+            }
+
+            // first, check for the simplest case: everything closes neatly.
+            // Eventually, everything passes through here; if there are problems
+            // we modify the input stream accordingly and then punt, so that
+            // the tokens get processed again.
+            $current_parent = array_pop($this->stack);
+            if ($current_parent->name == $token->name) {
+                $token->start = $current_parent;
+                foreach ($this->injectors as $i => $injector) {
+                    if (isset($token->skip[$i])) {
+                        continue;
+                    }
+                    if ($token->rewind !== null && $token->rewind !== $i) {
+                        continue;
+                    }
+                    $r = $token;
+                    $injector->handleEnd($r);
+                    $token = $this->processToken($r, $i);
+                    $this->stack[] = $current_parent;
+                    $reprocess = true;
+                    break;
+                }
+                continue;
+            }
+
+            // okay, so we're trying to close the wrong tag
+
+            // undo the pop previous pop
+            $this->stack[] = $current_parent;
+
+            // scroll back the entire nest, trying to find our tag.
+            // (feature could be to specify how far you'd like to go)
+            $size = count($this->stack);
+            // -2 because -1 is the last element, but we already checked that
+            $skipped_tags = false;
+            for ($j = $size - 2; $j >= 0; $j--) {
+                if ($this->stack[$j]->name == $token->name) {
+                    $skipped_tags = array_slice($this->stack, $j);
+                    break;
+                }
+            }
+
+            // we didn't find the tag, so remove
+            if ($skipped_tags === false) {
+                if ($escape_invalid_tags) {
+                    if ($e) {
+                        $e->send(E_WARNING, 'Strategy_MakeWellFormed: Stray end tag to text');
+                    }
+                    $token = new HTMLPurifier_Token_Text($generator->generateFromToken($token));
+                } else {
+                    if ($e) {
+                        $e->send(E_WARNING, 'Strategy_MakeWellFormed: Stray end tag removed');
+                    }
+                    $token = $this->remove();
+                }
+                $reprocess = true;
+                continue;
+            }
+
+            // do errors, in REVERSE $j order: a,b,c with </a></b></c>
+            $c = count($skipped_tags);
+            if ($e) {
+                for ($j = $c - 1; $j > 0; $j--) {
+                    // notice we exclude $j == 0, i.e. the current ending tag, from
+                    // the errors... [TagClosedSuppress]
+                    if (!isset($skipped_tags[$j]->armor['MakeWellFormed_TagClosedError'])) {
+                        $e->send(E_NOTICE, 'Strategy_MakeWellFormed: Tag closed by element end', $skipped_tags[$j]);
+                    }
+                }
+            }
+
+            // insert tags, in FORWARD $j order: c,b,a with </a></b></c>
+            $replace = array($token);
+            for ($j = 1; $j < $c; $j++) {
+                // ...as well as from the insertions
+                $new_token = new HTMLPurifier_Token_End($skipped_tags[$j]->name);
+                $new_token->start = $skipped_tags[$j];
+                array_unshift($replace, $new_token);
+                if (isset($definition->info[$new_token->name]) && $definition->info[$new_token->name]->formatting) {
+                    // [TagClosedAuto]
+                    $element = clone $skipped_tags[$j];
+                    $element->carryover = true;
+                    $element->armor['MakeWellFormed_TagClosedError'] = true;
+                    $replace[] = $element;
+                }
+            }
+            $token = $this->processToken($replace);
+            $reprocess = true;
+            continue;
+        }
+
+        $context->destroy('CurrentToken');
+        $context->destroy('CurrentNesting');
+        $context->destroy('InputZipper');
+
+        unset($this->injectors, $this->stack, $this->tokens);
+        return $zipper->toArray($token);
+    }
+
+    /**
+     * Processes arbitrary token values for complicated substitution patterns.
+     * In general:
+     *
+     * If $token is an array, it is a list of tokens to substitute for the
+     * current token. These tokens then get individually processed. If there
+     * is a leading integer in the list, that integer determines how many
+     * tokens from the stream should be removed.
+     *
+     * If $token is a regular token, it is swapped with the current token.
+     *
+     * If $token is false, the current token is deleted.
+     *
+     * If $token is an integer, that number of tokens (with the first token
+     * being the current one) will be deleted.
+     *
+     * @param HTMLPurifier_Token|array|int|bool $token Token substitution value
+     * @param HTMLPurifier_Injector|int $injector Injector that performed the substitution; default is if
+     *        this is not an injector related operation.
+     * @throws HTMLPurifier_Exception
+     */
+    protected function processToken($token, $injector = -1)
+    {
+        // normalize forms of token
+        if (is_object($token)) {
+            $token = array(1, $token);
+        }
+        if (is_int($token)) {
+            $token = array($token);
+        }
+        if ($token === false) {
+            $token = array(1);
+        }
+        if (!is_array($token)) {
+            throw new HTMLPurifier_Exception('Invalid token type from injector');
+        }
+        if (!is_int($token[0])) {
+            array_unshift($token, 1);
+        }
+        if ($token[0] === 0) {
+            throw new HTMLPurifier_Exception('Deleting zero tokens is not valid');
+        }
+
+        // $token is now an array with the following form:
+        // array(number nodes to delete, new node 1, new node 2, ...)
+
+        $delete = array_shift($token);
+        list($old, $r) = $this->zipper->splice($this->token, $delete, $token);
+
+        if ($injector > -1) {
+            // determine appropriate skips
+            $oldskip = isset($old[0]) ? $old[0]->skip : array();
+            foreach ($token as $object) {
+                $object->skip = $oldskip;
+                $object->skip[$injector] = true;
+            }
+        }
+
+        return $r;
+
+    }
+
+    /**
+     * Inserts a token before the current token. Cursor now points to
+     * this token.  You must reprocess after this.
+     * @param HTMLPurifier_Token $token
+     */
+    private function insertBefore($token)
+    {
+        // NB not $this->zipper->insertBefore(), due to positioning
+        // differences
+        $splice = $this->zipper->splice($this->token, 0, array($token));
+
+        return $splice[1];
+    }
+
+    /**
+     * Removes current token. Cursor now points to new token occupying previously
+     * occupied space.  You must reprocess after this.
+     */
+    private function remove()
+    {
+        return $this->zipper->delete();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/RemoveForeignElements.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/RemoveForeignElements.php
new file mode 100644
index 0000000..1a8149e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/RemoveForeignElements.php
@@ -0,0 +1,207 @@
+<?php
+
+/**
+ * Removes all unrecognized tags from the list of tokens.
+ *
+ * This strategy iterates through all the tokens and removes unrecognized
+ * tokens. If a token is not recognized but a TagTransform is defined for
+ * that element, the element will be transformed accordingly.
+ */
+
+class HTMLPurifier_Strategy_RemoveForeignElements extends HTMLPurifier_Strategy
+{
+
+    /**
+     * @param HTMLPurifier_Token[] $tokens
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return array|HTMLPurifier_Token[]
+     */
+    public function execute($tokens, $config, $context)
+    {
+        $definition = $config->getHTMLDefinition();
+        $generator = new HTMLPurifier_Generator($config, $context);
+        $result = array();
+
+        $escape_invalid_tags = $config->get('Core.EscapeInvalidTags');
+        $remove_invalid_img = $config->get('Core.RemoveInvalidImg');
+
+        // currently only used to determine if comments should be kept
+        $trusted = $config->get('HTML.Trusted');
+        $comment_lookup = $config->get('HTML.AllowedComments');
+        $comment_regexp = $config->get('HTML.AllowedCommentsRegexp');
+        $check_comments = $comment_lookup !== array() || $comment_regexp !== null;
+
+        $remove_script_contents = $config->get('Core.RemoveScriptContents');
+        $hidden_elements = $config->get('Core.HiddenElements');
+
+        // remove script contents compatibility
+        if ($remove_script_contents === true) {
+            $hidden_elements['script'] = true;
+        } elseif ($remove_script_contents === false && isset($hidden_elements['script'])) {
+            unset($hidden_elements['script']);
+        }
+
+        $attr_validator = new HTMLPurifier_AttrValidator();
+
+        // removes tokens until it reaches a closing tag with its value
+        $remove_until = false;
+
+        // converts comments into text tokens when this is equal to a tag name
+        $textify_comments = false;
+
+        $token = false;
+        $context->register('CurrentToken', $token);
+
+        $e = false;
+        if ($config->get('Core.CollectErrors')) {
+            $e =& $context->get('ErrorCollector');
+        }
+
+        foreach ($tokens as $token) {
+            if ($remove_until) {
+                if (empty($token->is_tag) || $token->name !== $remove_until) {
+                    continue;
+                }
+            }
+            if (!empty($token->is_tag)) {
+                // DEFINITION CALL
+
+                // before any processing, try to transform the element
+                if (isset($definition->info_tag_transform[$token->name])) {
+                    $original_name = $token->name;
+                    // there is a transformation for this tag
+                    // DEFINITION CALL
+                    $token = $definition->
+                        info_tag_transform[$token->name]->transform($token, $config, $context);
+                    if ($e) {
+                        $e->send(E_NOTICE, 'Strategy_RemoveForeignElements: Tag transform', $original_name);
+                    }
+                }
+
+                if (isset($definition->info[$token->name])) {
+                    // mostly everything's good, but
+                    // we need to make sure required attributes are in order
+                    if (($token instanceof HTMLPurifier_Token_Start || $token instanceof HTMLPurifier_Token_Empty) &&
+                        $definition->info[$token->name]->required_attr &&
+                        ($token->name != 'img' || $remove_invalid_img) // ensure config option still works
+                    ) {
+                        $attr_validator->validateToken($token, $config, $context);
+                        $ok = true;
+                        foreach ($definition->info[$token->name]->required_attr as $name) {
+                            if (!isset($token->attr[$name])) {
+                                $ok = false;
+                                break;
+                            }
+                        }
+                        if (!$ok) {
+                            if ($e) {
+                                $e->send(
+                                    E_ERROR,
+                                    'Strategy_RemoveForeignElements: Missing required attribute',
+                                    $name
+                                );
+                            }
+                            continue;
+                        }
+                        $token->armor['ValidateAttributes'] = true;
+                    }
+
+                    if (isset($hidden_elements[$token->name]) && $token instanceof HTMLPurifier_Token_Start) {
+                        $textify_comments = $token->name;
+                    } elseif ($token->name === $textify_comments && $token instanceof HTMLPurifier_Token_End) {
+                        $textify_comments = false;
+                    }
+
+                } elseif ($escape_invalid_tags) {
+                    // invalid tag, generate HTML representation and insert in
+                    if ($e) {
+                        $e->send(E_WARNING, 'Strategy_RemoveForeignElements: Foreign element to text');
+                    }
+                    $token = new HTMLPurifier_Token_Text(
+                        $generator->generateFromToken($token)
+                    );
+                } else {
+                    // check if we need to destroy all of the tag's children
+                    // CAN BE GENERICIZED
+                    if (isset($hidden_elements[$token->name])) {
+                        if ($token instanceof HTMLPurifier_Token_Start) {
+                            $remove_until = $token->name;
+                        } elseif ($token instanceof HTMLPurifier_Token_Empty) {
+                            // do nothing: we're still looking
+                        } else {
+                            $remove_until = false;
+                        }
+                        if ($e) {
+                            $e->send(E_ERROR, 'Strategy_RemoveForeignElements: Foreign meta element removed');
+                        }
+                    } else {
+                        if ($e) {
+                            $e->send(E_ERROR, 'Strategy_RemoveForeignElements: Foreign element removed');
+                        }
+                    }
+                    continue;
+                }
+            } elseif ($token instanceof HTMLPurifier_Token_Comment) {
+                // textify comments in script tags when they are allowed
+                if ($textify_comments !== false) {
+                    $data = $token->data;
+                    $token = new HTMLPurifier_Token_Text($data);
+                } elseif ($trusted || $check_comments) {
+                    // always cleanup comments
+                    $trailing_hyphen = false;
+                    if ($e) {
+                        // perform check whether or not there's a trailing hyphen
+                        if (substr($token->data, -1) == '-') {
+                            $trailing_hyphen = true;
+                        }
+                    }
+                    $token->data = rtrim($token->data, '-');
+                    $found_double_hyphen = false;
+                    while (strpos($token->data, '--') !== false) {
+                        $found_double_hyphen = true;
+                        $token->data = str_replace('--', '-', $token->data);
+                    }
+                    if ($trusted || !empty($comment_lookup[trim($token->data)]) ||
+                        ($comment_regexp !== null && preg_match($comment_regexp, trim($token->data)))) {
+                        // OK good
+                        if ($e) {
+                            if ($trailing_hyphen) {
+                                $e->send(
+                                    E_NOTICE,
+                                    'Strategy_RemoveForeignElements: Trailing hyphen in comment removed'
+                                );
+                            }
+                            if ($found_double_hyphen) {
+                                $e->send(E_NOTICE, 'Strategy_RemoveForeignElements: Hyphens in comment collapsed');
+                            }
+                        }
+                    } else {
+                        if ($e) {
+                            $e->send(E_NOTICE, 'Strategy_RemoveForeignElements: Comment removed');
+                        }
+                        continue;
+                    }
+                } else {
+                    // strip comments
+                    if ($e) {
+                        $e->send(E_NOTICE, 'Strategy_RemoveForeignElements: Comment removed');
+                    }
+                    continue;
+                }
+            } elseif ($token instanceof HTMLPurifier_Token_Text) {
+            } else {
+                continue;
+            }
+            $result[] = $token;
+        }
+        if ($remove_until && $e) {
+            // we removed tokens until the end, throw error
+            $e->send(E_ERROR, 'Strategy_RemoveForeignElements: Token removed to end', $remove_until);
+        }
+        $context->destroy('CurrentToken');
+        return $result;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/ValidateAttributes.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/ValidateAttributes.php
new file mode 100644
index 0000000..fbb3d27
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Strategy/ValidateAttributes.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Validate all attributes in the tokens.
+ */
+
+class HTMLPurifier_Strategy_ValidateAttributes extends HTMLPurifier_Strategy
+{
+
+    /**
+     * @param HTMLPurifier_Token[] $tokens
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token[]
+     */
+    public function execute($tokens, $config, $context)
+    {
+        // setup validator
+        $validator = new HTMLPurifier_AttrValidator();
+
+        $token = false;
+        $context->register('CurrentToken', $token);
+
+        foreach ($tokens as $key => $token) {
+
+            // only process tokens that have attributes,
+            //   namely start and empty tags
+            if (!$token instanceof HTMLPurifier_Token_Start && !$token instanceof HTMLPurifier_Token_Empty) {
+                continue;
+            }
+
+            // skip tokens that are armored
+            if (!empty($token->armor['ValidateAttributes'])) {
+                continue;
+            }
+
+            // note that we have no facilities here for removing tokens
+            $validator->validateToken($token, $config, $context);
+        }
+        $context->destroy('CurrentToken');
+        return $tokens;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/StringHash.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/StringHash.php
new file mode 100644
index 0000000..c073701
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/StringHash.php
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * This is in almost every respect equivalent to an array except
+ * that it keeps track of which keys were accessed.
+ *
+ * @warning For the sake of backwards compatibility with early versions
+ *     of PHP 5, you must not use the $hash[$key] syntax; if you do
+ *     our version of offsetGet is never called.
+ */
+class HTMLPurifier_StringHash extends ArrayObject
+{
+    /**
+     * @type array
+     */
+    protected $accessed = array();
+
+    /**
+     * Retrieves a value, and logs the access.
+     * @param mixed $index
+     * @return mixed
+     */
+    public function offsetGet($index)
+    {
+        $this->accessed[$index] = true;
+        return parent::offsetGet($index);
+    }
+
+    /**
+     * Returns a lookup array of all array indexes that have been accessed.
+     * @return array in form array($index => true).
+     */
+    public function getAccessed()
+    {
+        return $this->accessed;
+    }
+
+    /**
+     * Resets the access array.
+     */
+    public function resetAccessed()
+    {
+        $this->accessed = array();
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/StringHashParser.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/StringHashParser.php
new file mode 100644
index 0000000..7c73f80
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/StringHashParser.php
@@ -0,0 +1,136 @@
+<?php
+
+/**
+ * Parses string hash files. File format is as such:
+ *
+ *      DefaultKeyValue
+ *      KEY: Value
+ *      KEY2: Value2
+ *      --MULTILINE-KEY--
+ *      Multiline
+ *      value.
+ *
+ * Which would output something similar to:
+ *
+ *      array(
+ *          'ID' => 'DefaultKeyValue',
+ *          'KEY' => 'Value',
+ *          'KEY2' => 'Value2',
+ *          'MULTILINE-KEY' => "Multiline\nvalue.\n",
+ *      )
+ *
+ * We use this as an easy to use file-format for configuration schema
+ * files, but the class itself is usage agnostic.
+ *
+ * You can use ---- to forcibly terminate parsing of a single string-hash;
+ * this marker is used in multi string-hashes to delimit boundaries.
+ */
+class HTMLPurifier_StringHashParser
+{
+
+    /**
+     * @type string
+     */
+    public $default = 'ID';
+
+    /**
+     * Parses a file that contains a single string-hash.
+     * @param string $file
+     * @return array
+     */
+    public function parseFile($file)
+    {
+        if (!file_exists($file)) {
+            return false;
+        }
+        $fh = fopen($file, 'r');
+        if (!$fh) {
+            return false;
+        }
+        $ret = $this->parseHandle($fh);
+        fclose($fh);
+        return $ret;
+    }
+
+    /**
+     * Parses a file that contains multiple string-hashes delimited by '----'
+     * @param string $file
+     * @return array
+     */
+    public function parseMultiFile($file)
+    {
+        if (!file_exists($file)) {
+            return false;
+        }
+        $ret = array();
+        $fh = fopen($file, 'r');
+        if (!$fh) {
+            return false;
+        }
+        while (!feof($fh)) {
+            $ret[] = $this->parseHandle($fh);
+        }
+        fclose($fh);
+        return $ret;
+    }
+
+    /**
+     * Internal parser that acepts a file handle.
+     * @note While it's possible to simulate in-memory parsing by using
+     *       custom stream wrappers, if such a use-case arises we should
+     *       factor out the file handle into its own class.
+     * @param resource $fh File handle with pointer at start of valid string-hash
+     *            block.
+     * @return array
+     */
+    protected function parseHandle($fh)
+    {
+        $state   = false;
+        $single  = false;
+        $ret     = array();
+        do {
+            $line = fgets($fh);
+            if ($line === false) {
+                break;
+            }
+            $line = rtrim($line, "\n\r");
+            if (!$state && $line === '') {
+                continue;
+            }
+            if ($line === '----') {
+                break;
+            }
+            if (strncmp('--#', $line, 3) === 0) {
+                // Comment
+                continue;
+            } elseif (strncmp('--', $line, 2) === 0) {
+                // Multiline declaration
+                $state = trim($line, '- ');
+                if (!isset($ret[$state])) {
+                    $ret[$state] = '';
+                }
+                continue;
+            } elseif (!$state) {
+                $single = true;
+                if (strpos($line, ':') !== false) {
+                    // Single-line declaration
+                    list($state, $line) = explode(':', $line, 2);
+                    $line = trim($line);
+                } else {
+                    // Use default declaration
+                    $state  = $this->default;
+                }
+            }
+            if ($single) {
+                $ret[$state] = $line;
+                $single = false;
+                $state  = false;
+            } else {
+                $ret[$state] .= "$line\n";
+            }
+        } while (!feof($fh));
+        return $ret;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform.php
new file mode 100644
index 0000000..7b8d833
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * Defines a mutation of an obsolete tag into a valid tag.
+ */
+abstract class HTMLPurifier_TagTransform
+{
+
+    /**
+     * Tag name to transform the tag to.
+     * @type string
+     */
+    public $transform_to;
+
+    /**
+     * Transforms the obsolete tag into the valid tag.
+     * @param HTMLPurifier_Token_Tag $tag Tag to be transformed.
+     * @param HTMLPurifier_Config $config Mandatory HTMLPurifier_Config object
+     * @param HTMLPurifier_Context $context Mandatory HTMLPurifier_Context object
+     */
+    abstract public function transform($tag, $config, $context);
+
+    /**
+     * Prepends CSS properties to the style attribute, creating the
+     * attribute if it doesn't exist.
+     * @warning Copied over from AttrTransform, be sure to keep in sync
+     * @param array $attr Attribute array to process (passed by reference)
+     * @param string $css CSS to prepend
+     */
+    protected function prependCSS(&$attr, $css)
+    {
+        $attr['style'] = isset($attr['style']) ? $attr['style'] : '';
+        $attr['style'] = $css . $attr['style'];
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform/Font.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform/Font.php
new file mode 100644
index 0000000..7853d90
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform/Font.php
@@ -0,0 +1,114 @@
+<?php
+
+/**
+ * Transforms FONT tags to the proper form (SPAN with CSS styling)
+ *
+ * This transformation takes the three proprietary attributes of FONT and
+ * transforms them into their corresponding CSS attributes.  These are color,
+ * face, and size.
+ *
+ * @note Size is an interesting case because it doesn't map cleanly to CSS.
+ *       Thanks to
+ *       http://style.cleverchimp.com/font_size_intervals/altintervals.html
+ *       for reasonable mappings.
+ * @warning This doesn't work completely correctly; specifically, this
+ *          TagTransform operates before well-formedness is enforced, so
+ *          the "active formatting elements" algorithm doesn't get applied.
+ */
+class HTMLPurifier_TagTransform_Font extends HTMLPurifier_TagTransform
+{
+    /**
+     * @type string
+     */
+    public $transform_to = 'span';
+
+    /**
+     * @type array
+     */
+    protected $_size_lookup = array(
+        '0' => 'xx-small',
+        '1' => 'xx-small',
+        '2' => 'small',
+        '3' => 'medium',
+        '4' => 'large',
+        '5' => 'x-large',
+        '6' => 'xx-large',
+        '7' => '300%',
+        '-1' => 'smaller',
+        '-2' => '60%',
+        '+1' => 'larger',
+        '+2' => '150%',
+        '+3' => '200%',
+        '+4' => '300%'
+    );
+
+    /**
+     * @param HTMLPurifier_Token_Tag $tag
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_Token_End|string
+     */
+    public function transform($tag, $config, $context)
+    {
+        if ($tag instanceof HTMLPurifier_Token_End) {
+            $new_tag = clone $tag;
+            $new_tag->name = $this->transform_to;
+            return $new_tag;
+        }
+
+        $attr = $tag->attr;
+        $prepend_style = '';
+
+        // handle color transform
+        if (isset($attr['color'])) {
+            $prepend_style .= 'color:' . $attr['color'] . ';';
+            unset($attr['color']);
+        }
+
+        // handle face transform
+        if (isset($attr['face'])) {
+            $prepend_style .= 'font-family:' . $attr['face'] . ';';
+            unset($attr['face']);
+        }
+
+        // handle size transform
+        if (isset($attr['size'])) {
+            // normalize large numbers
+            if ($attr['size'] !== '') {
+                if ($attr['size']{0} == '+' || $attr['size']{0} == '-') {
+                    $size = (int)$attr['size'];
+                    if ($size < -2) {
+                        $attr['size'] = '-2';
+                    }
+                    if ($size > 4) {
+                        $attr['size'] = '+4';
+                    }
+                } else {
+                    $size = (int)$attr['size'];
+                    if ($size > 7) {
+                        $attr['size'] = '7';
+                    }
+                }
+            }
+            if (isset($this->_size_lookup[$attr['size']])) {
+                $prepend_style .= 'font-size:' .
+                    $this->_size_lookup[$attr['size']] . ';';
+            }
+            unset($attr['size']);
+        }
+
+        if ($prepend_style) {
+            $attr['style'] = isset($attr['style']) ?
+                $prepend_style . $attr['style'] :
+                $prepend_style;
+        }
+
+        $new_tag = clone $tag;
+        $new_tag->name = $this->transform_to;
+        $new_tag->attr = $attr;
+
+        return $new_tag;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform/Simple.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform/Simple.php
new file mode 100644
index 0000000..71bf10b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TagTransform/Simple.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * Simple transformation, just change tag name to something else,
+ * and possibly add some styling. This will cover most of the deprecated
+ * tag cases.
+ */
+class HTMLPurifier_TagTransform_Simple extends HTMLPurifier_TagTransform
+{
+    /**
+     * @type string
+     */
+    protected $style;
+
+    /**
+     * @param string $transform_to Tag name to transform to.
+     * @param string $style CSS style to add to the tag
+     */
+    public function __construct($transform_to, $style = null)
+    {
+        $this->transform_to = $transform_to;
+        $this->style = $style;
+    }
+
+    /**
+     * @param HTMLPurifier_Token_Tag $tag
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return string
+     */
+    public function transform($tag, $config, $context)
+    {
+        $new_tag = clone $tag;
+        $new_tag->name = $this->transform_to;
+        if (!is_null($this->style) &&
+            ($new_tag instanceof HTMLPurifier_Token_Start || $new_tag instanceof HTMLPurifier_Token_Empty)
+        ) {
+            $this->prependCSS($new_tag->attr, $this->style);
+        }
+        return $new_tag;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token.php
new file mode 100644
index 0000000..85b85e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token.php
@@ -0,0 +1,100 @@
+<?php
+
+/**
+ * Abstract base token class that all others inherit from.
+ */
+abstract class HTMLPurifier_Token
+{
+    /**
+     * Line number node was on in source document. Null if unknown.
+     * @type int
+     */
+    public $line;
+
+    /**
+     * Column of line node was on in source document. Null if unknown.
+     * @type int
+     */
+    public $col;
+
+    /**
+     * Lookup array of processing that this token is exempt from.
+     * Currently, valid values are "ValidateAttributes" and
+     * "MakeWellFormed_TagClosedError"
+     * @type array
+     */
+    public $armor = array();
+
+    /**
+     * Used during MakeWellFormed.
+     * @type
+     */
+    public $skip;
+
+    /**
+     * @type
+     */
+    public $rewind;
+
+    /**
+     * @type
+     */
+    public $carryover;
+
+    /**
+     * @param string $n
+     * @return null|string
+     */
+    public function __get($n)
+    {
+        if ($n === 'type') {
+            trigger_error('Deprecated type property called; use instanceof', E_USER_NOTICE);
+            switch (get_class($this)) {
+                case 'HTMLPurifier_Token_Start':
+                    return 'start';
+                case 'HTMLPurifier_Token_Empty':
+                    return 'empty';
+                case 'HTMLPurifier_Token_End':
+                    return 'end';
+                case 'HTMLPurifier_Token_Text':
+                    return 'text';
+                case 'HTMLPurifier_Token_Comment':
+                    return 'comment';
+                default:
+                    return null;
+            }
+        }
+    }
+
+    /**
+     * Sets the position of the token in the source document.
+     * @param int $l
+     * @param int $c
+     */
+    public function position($l = null, $c = null)
+    {
+        $this->line = $l;
+        $this->col = $c;
+    }
+
+    /**
+     * Convenience function for DirectLex settings line/col position.
+     * @param int $l
+     * @param int $c
+     */
+    public function rawPosition($l, $c)
+    {
+        if ($c === -1) {
+            $l++;
+        }
+        $this->line = $l;
+        $this->col = $c;
+    }
+
+    /**
+     * Converts a token into its corresponding node.
+     */
+    abstract public function toNode();
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Comment.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Comment.php
new file mode 100644
index 0000000..23453c7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Comment.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * Concrete comment token class. Generally will be ignored.
+ */
+class HTMLPurifier_Token_Comment extends HTMLPurifier_Token
+{
+    /**
+     * Character data within comment.
+     * @type string
+     */
+    public $data;
+
+    /**
+     * @type bool
+     */
+    public $is_whitespace = true;
+
+    /**
+     * Transparent constructor.
+     *
+     * @param string $data String comment data.
+     * @param int $line
+     * @param int $col
+     */
+    public function __construct($data, $line = null, $col = null)
+    {
+        $this->data = $data;
+        $this->line = $line;
+        $this->col = $col;
+    }
+
+    public function toNode() {
+        return new HTMLPurifier_Node_Comment($this->data, $this->line, $this->col);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Empty.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Empty.php
new file mode 100644
index 0000000..78a95f5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Empty.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * Concrete empty token class.
+ */
+class HTMLPurifier_Token_Empty extends HTMLPurifier_Token_Tag
+{
+    public function toNode() {
+        $n = parent::toNode();
+        $n->empty = true;
+        return $n;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/End.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/End.php
new file mode 100644
index 0000000..59b38fd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/End.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * Concrete end token class.
+ *
+ * @warning This class accepts attributes even though end tags cannot. This
+ * is for optimization reasons, as under normal circumstances, the Lexers
+ * do not pass attributes.
+ */
+class HTMLPurifier_Token_End extends HTMLPurifier_Token_Tag
+{
+    /**
+     * Token that started this node.
+     * Added by MakeWellFormed. Please do not edit this!
+     * @type HTMLPurifier_Token
+     */
+    public $start;
+
+    public function toNode() {
+        throw new Exception("HTMLPurifier_Token_End->toNode not supported!");
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Start.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Start.php
new file mode 100644
index 0000000..019f317
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Start.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * Concrete start token class.
+ */
+class HTMLPurifier_Token_Start extends HTMLPurifier_Token_Tag
+{
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Tag.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Tag.php
new file mode 100644
index 0000000..d643fa6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Tag.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * Abstract class of a tag token (start, end or empty), and its behavior.
+ */
+abstract class HTMLPurifier_Token_Tag extends HTMLPurifier_Token
+{
+    /**
+     * Static bool marker that indicates the class is a tag.
+     *
+     * This allows us to check objects with <tt>!empty($obj->is_tag)</tt>
+     * without having to use a function call <tt>is_a()</tt>.
+     * @type bool
+     */
+    public $is_tag = true;
+
+    /**
+     * The lower-case name of the tag, like 'a', 'b' or 'blockquote'.
+     *
+     * @note Strictly speaking, XML tags are case sensitive, so we shouldn't
+     * be lower-casing them, but these tokens cater to HTML tags, which are
+     * insensitive.
+     * @type string
+     */
+    public $name;
+
+    /**
+     * Associative array of the tag's attributes.
+     * @type array
+     */
+    public $attr = array();
+
+    /**
+     * Non-overloaded constructor, which lower-cases passed tag name.
+     *
+     * @param string $name String name.
+     * @param array $attr Associative array of attributes.
+     * @param int $line
+     * @param int $col
+     * @param array $armor
+     */
+    public function __construct($name, $attr = array(), $line = null, $col = null, $armor = array())
+    {
+        $this->name = ctype_lower($name) ? $name : strtolower($name);
+        foreach ($attr as $key => $value) {
+            // normalization only necessary when key is not lowercase
+            if (!ctype_lower($key)) {
+                $new_key = strtolower($key);
+                if (!isset($attr[$new_key])) {
+                    $attr[$new_key] = $attr[$key];
+                }
+                if ($new_key !== $key) {
+                    unset($attr[$key]);
+                }
+            }
+        }
+        $this->attr = $attr;
+        $this->line = $line;
+        $this->col = $col;
+        $this->armor = $armor;
+    }
+
+    public function toNode() {
+        return new HTMLPurifier_Node_Element($this->name, $this->attr, $this->line, $this->col, $this->armor);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Text.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Text.php
new file mode 100644
index 0000000..f26a1c2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Token/Text.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * Concrete text token class.
+ *
+ * Text tokens comprise of regular parsed character data (PCDATA) and raw
+ * character data (from the CDATA sections). Internally, their
+ * data is parsed with all entities expanded. Surprisingly, the text token
+ * does have a "tag name" called #PCDATA, which is how the DTD represents it
+ * in permissible child nodes.
+ */
+class HTMLPurifier_Token_Text extends HTMLPurifier_Token
+{
+
+    /**
+     * @type string
+     */
+    public $name = '#PCDATA';
+    /**< PCDATA tag name compatible with DTD. */
+
+    /**
+     * @type string
+     */
+    public $data;
+    /**< Parsed character data of text. */
+
+    /**
+     * @type bool
+     */
+    public $is_whitespace;
+
+    /**< Bool indicating if node is whitespace. */
+
+    /**
+     * Constructor, accepts data and determines if it is whitespace.
+     * @param string $data String parsed character data.
+     * @param int $line
+     * @param int $col
+     */
+    public function __construct($data, $line = null, $col = null)
+    {
+        $this->data = $data;
+        $this->is_whitespace = ctype_space($data);
+        $this->line = $line;
+        $this->col = $col;
+    }
+
+    public function toNode() {
+        return new HTMLPurifier_Node_Text($this->data, $this->is_whitespace, $this->line, $this->col);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TokenFactory.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TokenFactory.php
new file mode 100644
index 0000000..dea2446
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/TokenFactory.php
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * Factory for token generation.
+ *
+ * @note Doing some benchmarking indicates that the new operator is much
+ *       slower than the clone operator (even discounting the cost of the
+ *       constructor).  This class is for that optimization.
+ *       Other then that, there's not much point as we don't
+ *       maintain parallel HTMLPurifier_Token hierarchies (the main reason why
+ *       you'd want to use an abstract factory).
+ * @todo Port DirectLex to use this
+ */
+class HTMLPurifier_TokenFactory
+{
+    // p stands for prototype
+
+    /**
+     * @type HTMLPurifier_Token_Start
+     */
+    private $p_start;
+
+    /**
+     * @type HTMLPurifier_Token_End
+     */
+    private $p_end;
+
+    /**
+     * @type HTMLPurifier_Token_Empty
+     */
+    private $p_empty;
+
+    /**
+     * @type HTMLPurifier_Token_Text
+     */
+    private $p_text;
+
+    /**
+     * @type HTMLPurifier_Token_Comment
+     */
+    private $p_comment;
+
+    /**
+     * Generates blank prototypes for cloning.
+     */
+    public function __construct()
+    {
+        $this->p_start = new HTMLPurifier_Token_Start('', array());
+        $this->p_end = new HTMLPurifier_Token_End('');
+        $this->p_empty = new HTMLPurifier_Token_Empty('', array());
+        $this->p_text = new HTMLPurifier_Token_Text('');
+        $this->p_comment = new HTMLPurifier_Token_Comment('');
+    }
+
+    /**
+     * Creates a HTMLPurifier_Token_Start.
+     * @param string $name Tag name
+     * @param array $attr Associative array of attributes
+     * @return HTMLPurifier_Token_Start Generated HTMLPurifier_Token_Start
+     */
+    public function createStart($name, $attr = array())
+    {
+        $p = clone $this->p_start;
+        $p->__construct($name, $attr);
+        return $p;
+    }
+
+    /**
+     * Creates a HTMLPurifier_Token_End.
+     * @param string $name Tag name
+     * @return HTMLPurifier_Token_End Generated HTMLPurifier_Token_End
+     */
+    public function createEnd($name)
+    {
+        $p = clone $this->p_end;
+        $p->__construct($name);
+        return $p;
+    }
+
+    /**
+     * Creates a HTMLPurifier_Token_Empty.
+     * @param string $name Tag name
+     * @param array $attr Associative array of attributes
+     * @return HTMLPurifier_Token_Empty Generated HTMLPurifier_Token_Empty
+     */
+    public function createEmpty($name, $attr = array())
+    {
+        $p = clone $this->p_empty;
+        $p->__construct($name, $attr);
+        return $p;
+    }
+
+    /**
+     * Creates a HTMLPurifier_Token_Text.
+     * @param string $data Data of text token
+     * @return HTMLPurifier_Token_Text Generated HTMLPurifier_Token_Text
+     */
+    public function createText($data)
+    {
+        $p = clone $this->p_text;
+        $p->__construct($data);
+        return $p;
+    }
+
+    /**
+     * Creates a HTMLPurifier_Token_Comment.
+     * @param string $data Data of comment token
+     * @return HTMLPurifier_Token_Comment Generated HTMLPurifier_Token_Comment
+     */
+    public function createComment($data)
+    {
+        $p = clone $this->p_comment;
+        $p->__construct($data);
+        return $p;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URI.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URI.php
new file mode 100644
index 0000000..a5e7ae2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URI.php
@@ -0,0 +1,314 @@
+<?php
+
+/**
+ * HTML Purifier's internal representation of a URI.
+ * @note
+ *      Internal data-structures are completely escaped. If the data needs
+ *      to be used in a non-URI context (which is very unlikely), be sure
+ *      to decode it first. The URI may not necessarily be well-formed until
+ *      validate() is called.
+ */
+class HTMLPurifier_URI
+{
+    /**
+     * @type string
+     */
+    public $scheme;
+
+    /**
+     * @type string
+     */
+    public $userinfo;
+
+    /**
+     * @type string
+     */
+    public $host;
+
+    /**
+     * @type int
+     */
+    public $port;
+
+    /**
+     * @type string
+     */
+    public $path;
+
+    /**
+     * @type string
+     */
+    public $query;
+
+    /**
+     * @type string
+     */
+    public $fragment;
+
+    /**
+     * @param string $scheme
+     * @param string $userinfo
+     * @param string $host
+     * @param int $port
+     * @param string $path
+     * @param string $query
+     * @param string $fragment
+     * @note Automatically normalizes scheme and port
+     */
+    public function __construct($scheme, $userinfo, $host, $port, $path, $query, $fragment)
+    {
+        $this->scheme = is_null($scheme) || ctype_lower($scheme) ? $scheme : strtolower($scheme);
+        $this->userinfo = $userinfo;
+        $this->host = $host;
+        $this->port = is_null($port) ? $port : (int)$port;
+        $this->path = $path;
+        $this->query = $query;
+        $this->fragment = $fragment;
+    }
+
+    /**
+     * Retrieves a scheme object corresponding to the URI's scheme/default
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_URIScheme Scheme object appropriate for validating this URI
+     */
+    public function getSchemeObj($config, $context)
+    {
+        $registry = HTMLPurifier_URISchemeRegistry::instance();
+        if ($this->scheme !== null) {
+            $scheme_obj = $registry->getScheme($this->scheme, $config, $context);
+            if (!$scheme_obj) {
+                return false;
+            } // invalid scheme, clean it out
+        } else {
+            // no scheme: retrieve the default one
+            $def = $config->getDefinition('URI');
+            $scheme_obj = $def->getDefaultScheme($config, $context);
+            if (!$scheme_obj) {
+                // something funky happened to the default scheme object
+                trigger_error(
+                    'Default scheme object "' . $def->defaultScheme . '" was not readable',
+                    E_USER_WARNING
+                );
+                return false;
+            }
+        }
+        return $scheme_obj;
+    }
+
+    /**
+     * Generic validation method applicable for all schemes. May modify
+     * this URI in order to get it into a compliant form.
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool True if validation/filtering succeeds, false if failure
+     */
+    public function validate($config, $context)
+    {
+        // ABNF definitions from RFC 3986
+        $chars_sub_delims = '!$&\'()*+,;=';
+        $chars_gen_delims = ':/?#[]@';
+        $chars_pchar = $chars_sub_delims . ':@';
+
+        // validate host
+        if (!is_null($this->host)) {
+            $host_def = new HTMLPurifier_AttrDef_URI_Host();
+            $this->host = $host_def->validate($this->host, $config, $context);
+            if ($this->host === false) {
+                $this->host = null;
+            }
+        }
+
+        // validate scheme
+        // NOTE: It's not appropriate to check whether or not this
+        // scheme is in our registry, since a URIFilter may convert a
+        // URI that we don't allow into one we do.  So instead, we just
+        // check if the scheme can be dropped because there is no host
+        // and it is our default scheme.
+        if (!is_null($this->scheme) && is_null($this->host) || $this->host === '') {
+            // support for relative paths is pretty abysmal when the
+            // scheme is present, so axe it when possible
+            $def = $config->getDefinition('URI');
+            if ($def->defaultScheme === $this->scheme) {
+                $this->scheme = null;
+            }
+        }
+
+        // validate username
+        if (!is_null($this->userinfo)) {
+            $encoder = new HTMLPurifier_PercentEncoder($chars_sub_delims . ':');
+            $this->userinfo = $encoder->encode($this->userinfo);
+        }
+
+        // validate port
+        if (!is_null($this->port)) {
+            if ($this->port < 1 || $this->port > 65535) {
+                $this->port = null;
+            }
+        }
+
+        // validate path
+        $segments_encoder = new HTMLPurifier_PercentEncoder($chars_pchar . '/');
+        if (!is_null($this->host)) { // this catches $this->host === ''
+            // path-abempty (hier and relative)
+            // http://www.example.com/my/path
+            // //www.example.com/my/path (looks odd, but works, and
+            //                            recognized by most browsers)
+            // (this set is valid or invalid on a scheme by scheme
+            // basis, so we'll deal with it later)
+            // file:///my/path
+            // ///my/path
+            $this->path = $segments_encoder->encode($this->path);
+        } elseif ($this->path !== '') {
+            if ($this->path[0] === '/') {
+                // path-absolute (hier and relative)
+                // http:/my/path
+                // /my/path
+                if (strlen($this->path) >= 2 && $this->path[1] === '/') {
+                    // This could happen if both the host gets stripped
+                    // out
+                    // http://my/path
+                    // //my/path
+                    $this->path = '';
+                } else {
+                    $this->path = $segments_encoder->encode($this->path);
+                }
+            } elseif (!is_null($this->scheme)) {
+                // path-rootless (hier)
+                // http:my/path
+                // Short circuit evaluation means we don't need to check nz
+                $this->path = $segments_encoder->encode($this->path);
+            } else {
+                // path-noscheme (relative)
+                // my/path
+                // (once again, not checking nz)
+                $segment_nc_encoder = new HTMLPurifier_PercentEncoder($chars_sub_delims . '@');
+                $c = strpos($this->path, '/');
+                if ($c !== false) {
+                    $this->path =
+                        $segment_nc_encoder->encode(substr($this->path, 0, $c)) .
+                        $segments_encoder->encode(substr($this->path, $c));
+                } else {
+                    $this->path = $segment_nc_encoder->encode($this->path);
+                }
+            }
+        } else {
+            // path-empty (hier and relative)
+            $this->path = ''; // just to be safe
+        }
+
+        // qf = query and fragment
+        $qf_encoder = new HTMLPurifier_PercentEncoder($chars_pchar . '/?');
+
+        if (!is_null($this->query)) {
+            $this->query = $qf_encoder->encode($this->query);
+        }
+
+        if (!is_null($this->fragment)) {
+            $this->fragment = $qf_encoder->encode($this->fragment);
+        }
+        return true;
+    }
+
+    /**
+     * Convert URI back to string
+     * @return string URI appropriate for output
+     */
+    public function toString()
+    {
+        // reconstruct authority
+        $authority = null;
+        // there is a rendering difference between a null authority
+        // (http:foo-bar) and an empty string authority
+        // (http:///foo-bar).
+        if (!is_null($this->host)) {
+            $authority = '';
+            if (!is_null($this->userinfo)) {
+                $authority .= $this->userinfo . '@';
+            }
+            $authority .= $this->host;
+            if (!is_null($this->port)) {
+                $authority .= ':' . $this->port;
+            }
+        }
+
+        // Reconstruct the result
+        // One might wonder about parsing quirks from browsers after
+        // this reconstruction.  Unfortunately, parsing behavior depends
+        // on what *scheme* was employed (file:///foo is handled *very*
+        // differently than http:///foo), so unfortunately we have to
+        // defer to the schemes to do the right thing.
+        $result = '';
+        if (!is_null($this->scheme)) {
+            $result .= $this->scheme . ':';
+        }
+        if (!is_null($authority)) {
+            $result .= '//' . $authority;
+        }
+        $result .= $this->path;
+        if (!is_null($this->query)) {
+            $result .= '?' . $this->query;
+        }
+        if (!is_null($this->fragment)) {
+            $result .= '#' . $this->fragment;
+        }
+
+        return $result;
+    }
+
+    /**
+     * Returns true if this URL might be considered a 'local' URL given
+     * the current context.  This is true when the host is null, or
+     * when it matches the host supplied to the configuration.
+     *
+     * Note that this does not do any scheme checking, so it is mostly
+     * only appropriate for metadata that doesn't care about protocol
+     * security.  isBenign is probably what you actually want.
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function isLocal($config, $context)
+    {
+        if ($this->host === null) {
+            return true;
+        }
+        $uri_def = $config->getDefinition('URI');
+        if ($uri_def->host === $this->host) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Returns true if this URL should be considered a 'benign' URL,
+     * that is:
+     *
+     *      - It is a local URL (isLocal), and
+     *      - It has a equal or better level of security
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function isBenign($config, $context)
+    {
+        if (!$this->isLocal($config, $context)) {
+            return false;
+        }
+
+        $scheme_obj = $this->getSchemeObj($config, $context);
+        if (!$scheme_obj) {
+            return false;
+        } // conservative approach
+
+        $current_scheme_obj = $config->getDefinition('URI')->getDefaultScheme($config, $context);
+        if ($current_scheme_obj->secure) {
+            if (!$scheme_obj->secure) {
+                return false;
+            }
+        }
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIDefinition.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIDefinition.php
new file mode 100644
index 0000000..e0bd8bc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIDefinition.php
@@ -0,0 +1,112 @@
+<?php
+
+class HTMLPurifier_URIDefinition extends HTMLPurifier_Definition
+{
+
+    public $type = 'URI';
+    protected $filters = array();
+    protected $postFilters = array();
+    protected $registeredFilters = array();
+
+    /**
+     * HTMLPurifier_URI object of the base specified at %URI.Base
+     */
+    public $base;
+
+    /**
+     * String host to consider "home" base, derived off of $base
+     */
+    public $host;
+
+    /**
+     * Name of default scheme based on %URI.DefaultScheme and %URI.Base
+     */
+    public $defaultScheme;
+
+    public function __construct()
+    {
+        $this->registerFilter(new HTMLPurifier_URIFilter_DisableExternal());
+        $this->registerFilter(new HTMLPurifier_URIFilter_DisableExternalResources());
+        $this->registerFilter(new HTMLPurifier_URIFilter_DisableResources());
+        $this->registerFilter(new HTMLPurifier_URIFilter_HostBlacklist());
+        $this->registerFilter(new HTMLPurifier_URIFilter_SafeIframe());
+        $this->registerFilter(new HTMLPurifier_URIFilter_MakeAbsolute());
+        $this->registerFilter(new HTMLPurifier_URIFilter_Munge());
+    }
+
+    public function registerFilter($filter)
+    {
+        $this->registeredFilters[$filter->name] = $filter;
+    }
+
+    public function addFilter($filter, $config)
+    {
+        $r = $filter->prepare($config);
+        if ($r === false) return; // null is ok, for backwards compat
+        if ($filter->post) {
+            $this->postFilters[$filter->name] = $filter;
+        } else {
+            $this->filters[$filter->name] = $filter;
+        }
+    }
+
+    protected function doSetup($config)
+    {
+        $this->setupMemberVariables($config);
+        $this->setupFilters($config);
+    }
+
+    protected function setupFilters($config)
+    {
+        foreach ($this->registeredFilters as $name => $filter) {
+            if ($filter->always_load) {
+                $this->addFilter($filter, $config);
+            } else {
+                $conf = $config->get('URI.' . $name);
+                if ($conf !== false && $conf !== null) {
+                    $this->addFilter($filter, $config);
+                }
+            }
+        }
+        unset($this->registeredFilters);
+    }
+
+    protected function setupMemberVariables($config)
+    {
+        $this->host = $config->get('URI.Host');
+        $base_uri = $config->get('URI.Base');
+        if (!is_null($base_uri)) {
+            $parser = new HTMLPurifier_URIParser();
+            $this->base = $parser->parse($base_uri);
+            $this->defaultScheme = $this->base->scheme;
+            if (is_null($this->host)) $this->host = $this->base->host;
+        }
+        if (is_null($this->defaultScheme)) $this->defaultScheme = $config->get('URI.DefaultScheme');
+    }
+
+    public function getDefaultScheme($config, $context)
+    {
+        return HTMLPurifier_URISchemeRegistry::instance()->getScheme($this->defaultScheme, $config, $context);
+    }
+
+    public function filter(&$uri, $config, $context)
+    {
+        foreach ($this->filters as $name => $f) {
+            $result = $f->filter($uri, $config, $context);
+            if (!$result) return false;
+        }
+        return true;
+    }
+
+    public function postFilter(&$uri, $config, $context)
+    {
+        foreach ($this->postFilters as $name => $f) {
+            $result = $f->filter($uri, $config, $context);
+            if (!$result) return false;
+        }
+        return true;
+    }
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter.php
new file mode 100644
index 0000000..09724e9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * Chainable filters for custom URI processing.
+ *
+ * These filters can perform custom actions on a URI filter object,
+ * including transformation or blacklisting.  A filter named Foo
+ * must have a corresponding configuration directive %URI.Foo,
+ * unless always_load is specified to be true.
+ *
+ * The following contexts may be available while URIFilters are being
+ * processed:
+ *
+ *      - EmbeddedURI: true if URI is an embedded resource that will
+ *        be loaded automatically on page load
+ *      - CurrentToken: a reference to the token that is currently
+ *        being processed
+ *      - CurrentAttr: the name of the attribute that is currently being
+ *        processed
+ *      - CurrentCSSProperty: the name of the CSS property that is
+ *        currently being processed (if applicable)
+ *
+ * @warning This filter is called before scheme object validation occurs.
+ *          Make sure, if you require a specific scheme object, you
+ *          you check that it exists. This allows filters to convert
+ *          proprietary URI schemes into regular ones.
+ */
+abstract class HTMLPurifier_URIFilter
+{
+
+    /**
+     * Unique identifier of filter.
+     * @type string
+     */
+    public $name;
+
+    /**
+     * True if this filter should be run after scheme validation.
+     * @type bool
+     */
+    public $post = false;
+
+    /**
+     * True if this filter should always be loaded.
+     * This permits a filter to be named Foo without the corresponding
+     * %URI.Foo directive existing.
+     * @type bool
+     */
+    public $always_load = false;
+
+    /**
+     * Performs initialization for the filter.  If the filter returns
+     * false, this means that it shouldn't be considered active.
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function prepare($config)
+    {
+        return true;
+    }
+
+    /**
+     * Filter a URI object
+     * @param HTMLPurifier_URI $uri Reference to URI object variable
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool Whether or not to continue processing: false indicates
+     *         URL is no good, true indicates continue processing. Note that
+     *         all changes are committed directly on the URI object
+     */
+    abstract public function filter(&$uri, $config, $context);
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternal.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternal.php
new file mode 100644
index 0000000..ced1b13
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternal.php
@@ -0,0 +1,54 @@
+<?php
+
+class HTMLPurifier_URIFilter_DisableExternal extends HTMLPurifier_URIFilter
+{
+    /**
+     * @type string
+     */
+    public $name = 'DisableExternal';
+
+    /**
+     * @type array
+     */
+    protected $ourHostParts = false;
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return void
+     */
+    public function prepare($config)
+    {
+        $our_host = $config->getDefinition('URI')->host;
+        if ($our_host !== null) {
+            $this->ourHostParts = array_reverse(explode('.', $our_host));
+        }
+    }
+
+    /**
+     * @param HTMLPurifier_URI $uri Reference
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function filter(&$uri, $config, $context)
+    {
+        if (is_null($uri->host)) {
+            return true;
+        }
+        if ($this->ourHostParts === false) {
+            return false;
+        }
+        $host_parts = array_reverse(explode('.', $uri->host));
+        foreach ($this->ourHostParts as $i => $x) {
+            if (!isset($host_parts[$i])) {
+                return false;
+            }
+            if ($host_parts[$i] != $this->ourHostParts[$i]) {
+                return false;
+            }
+        }
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternalResources.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternalResources.php
new file mode 100644
index 0000000..c656216
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternalResources.php
@@ -0,0 +1,25 @@
+<?php
+
+class HTMLPurifier_URIFilter_DisableExternalResources extends HTMLPurifier_URIFilter_DisableExternal
+{
+    /**
+     * @type string
+     */
+    public $name = 'DisableExternalResources';
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function filter(&$uri, $config, $context)
+    {
+        if (!$context->get('EmbeddedURI', true)) {
+            return true;
+        }
+        return parent::filter($uri, $config, $context);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableResources.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableResources.php
new file mode 100644
index 0000000..d5c412c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/DisableResources.php
@@ -0,0 +1,22 @@
+<?php
+
+class HTMLPurifier_URIFilter_DisableResources extends HTMLPurifier_URIFilter
+{
+    /**
+     * @type string
+     */
+    public $name = 'DisableResources';
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function filter(&$uri, $config, $context)
+    {
+        return !$context->get('EmbeddedURI', true);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php
new file mode 100644
index 0000000..a6645c1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php
@@ -0,0 +1,46 @@
+<?php
+
+// It's not clear to me whether or not Punycode means that hostnames
+// do not have canonical forms anymore. As far as I can tell, it's
+// not a problem (punycoding should be identity when no Unicode
+// points are involved), but I'm not 100% sure
+class HTMLPurifier_URIFilter_HostBlacklist extends HTMLPurifier_URIFilter
+{
+    /**
+     * @type string
+     */
+    public $name = 'HostBlacklist';
+
+    /**
+     * @type array
+     */
+    protected $blacklist = array();
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function prepare($config)
+    {
+        $this->blacklist = $config->get('URI.HostBlacklist');
+        return true;
+    }
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function filter(&$uri, $config, $context)
+    {
+        foreach ($this->blacklist as $blacklisted_host_fragment) {
+            if (strpos($uri->host, $blacklisted_host_fragment) !== false) {
+                return false;
+            }
+        }
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/MakeAbsolute.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/MakeAbsolute.php
new file mode 100644
index 0000000..c507bbf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/MakeAbsolute.php
@@ -0,0 +1,158 @@
+<?php
+
+// does not support network paths
+
+class HTMLPurifier_URIFilter_MakeAbsolute extends HTMLPurifier_URIFilter
+{
+    /**
+     * @type string
+     */
+    public $name = 'MakeAbsolute';
+
+    /**
+     * @type
+     */
+    protected $base;
+
+    /**
+     * @type array
+     */
+    protected $basePathStack = array();
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function prepare($config)
+    {
+        $def = $config->getDefinition('URI');
+        $this->base = $def->base;
+        if (is_null($this->base)) {
+            trigger_error(
+                'URI.MakeAbsolute is being ignored due to lack of ' .
+                'value for URI.Base configuration',
+                E_USER_WARNING
+            );
+            return false;
+        }
+        $this->base->fragment = null; // fragment is invalid for base URI
+        $stack = explode('/', $this->base->path);
+        array_pop($stack); // discard last segment
+        $stack = $this->_collapseStack($stack); // do pre-parsing
+        $this->basePathStack = $stack;
+        return true;
+    }
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function filter(&$uri, $config, $context)
+    {
+        if (is_null($this->base)) {
+            return true;
+        } // abort early
+        if ($uri->path === '' && is_null($uri->scheme) &&
+            is_null($uri->host) && is_null($uri->query) && is_null($uri->fragment)) {
+            // reference to current document
+            $uri = clone $this->base;
+            return true;
+        }
+        if (!is_null($uri->scheme)) {
+            // absolute URI already: don't change
+            if (!is_null($uri->host)) {
+                return true;
+            }
+            $scheme_obj = $uri->getSchemeObj($config, $context);
+            if (!$scheme_obj) {
+                // scheme not recognized
+                return false;
+            }
+            if (!$scheme_obj->hierarchical) {
+                // non-hierarchal URI with explicit scheme, don't change
+                return true;
+            }
+            // special case: had a scheme but always is hierarchical and had no authority
+        }
+        if (!is_null($uri->host)) {
+            // network path, don't bother
+            return true;
+        }
+        if ($uri->path === '') {
+            $uri->path = $this->base->path;
+        } elseif ($uri->path[0] !== '/') {
+            // relative path, needs more complicated processing
+            $stack = explode('/', $uri->path);
+            $new_stack = array_merge($this->basePathStack, $stack);
+            if ($new_stack[0] !== '' && !is_null($this->base->host)) {
+                array_unshift($new_stack, '');
+            }
+            $new_stack = $this->_collapseStack($new_stack);
+            $uri->path = implode('/', $new_stack);
+        } else {
+            // absolute path, but still we should collapse
+            $uri->path = implode('/', $this->_collapseStack(explode('/', $uri->path)));
+        }
+        // re-combine
+        $uri->scheme = $this->base->scheme;
+        if (is_null($uri->userinfo)) {
+            $uri->userinfo = $this->base->userinfo;
+        }
+        if (is_null($uri->host)) {
+            $uri->host = $this->base->host;
+        }
+        if (is_null($uri->port)) {
+            $uri->port = $this->base->port;
+        }
+        return true;
+    }
+
+    /**
+     * Resolve dots and double-dots in a path stack
+     * @param array $stack
+     * @return array
+     */
+    private function _collapseStack($stack)
+    {
+        $result = array();
+        $is_folder = false;
+        for ($i = 0; isset($stack[$i]); $i++) {
+            $is_folder = false;
+            // absorb an internally duplicated slash
+            if ($stack[$i] == '' && $i && isset($stack[$i + 1])) {
+                continue;
+            }
+            if ($stack[$i] == '..') {
+                if (!empty($result)) {
+                    $segment = array_pop($result);
+                    if ($segment === '' && empty($result)) {
+                        // error case: attempted to back out too far:
+                        // restore the leading slash
+                        $result[] = '';
+                    } elseif ($segment === '..') {
+                        $result[] = '..'; // cannot remove .. with ..
+                    }
+                } else {
+                    // relative path, preserve the double-dots
+                    $result[] = '..';
+                }
+                $is_folder = true;
+                continue;
+            }
+            if ($stack[$i] == '.') {
+                // silently absorb
+                $is_folder = true;
+                continue;
+            }
+            $result[] = $stack[$i];
+        }
+        if ($is_folder) {
+            $result[] = '';
+        }
+        return $result;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php
new file mode 100644
index 0000000..6e03315
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php
@@ -0,0 +1,115 @@
+<?php
+
+class HTMLPurifier_URIFilter_Munge extends HTMLPurifier_URIFilter
+{
+    /**
+     * @type string
+     */
+    public $name = 'Munge';
+
+    /**
+     * @type bool
+     */
+    public $post = true;
+
+    /**
+     * @type string
+     */
+    private $target;
+
+    /**
+     * @type HTMLPurifier_URIParser
+     */
+    private $parser;
+
+    /**
+     * @type bool
+     */
+    private $doEmbed;
+
+    /**
+     * @type string
+     */
+    private $secretKey;
+
+    /**
+     * @type array
+     */
+    protected $replace = array();
+
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function prepare($config)
+    {
+        $this->target = $config->get('URI.' . $this->name);
+        $this->parser = new HTMLPurifier_URIParser();
+        $this->doEmbed = $config->get('URI.MungeResources');
+        $this->secretKey = $config->get('URI.MungeSecretKey');
+        if ($this->secretKey && !function_exists('hash_hmac')) {
+            throw new Exception("Cannot use %URI.MungeSecretKey without hash_hmac support.");
+        }
+        return true;
+    }
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function filter(&$uri, $config, $context)
+    {
+        if ($context->get('EmbeddedURI', true) && !$this->doEmbed) {
+            return true;
+        }
+
+        $scheme_obj = $uri->getSchemeObj($config, $context);
+        if (!$scheme_obj) {
+            return true;
+        } // ignore unknown schemes, maybe another postfilter did it
+        if (!$scheme_obj->browsable) {
+            return true;
+        } // ignore non-browseable schemes, since we can't munge those in a reasonable way
+        if ($uri->isBenign($config, $context)) {
+            return true;
+        } // don't redirect if a benign URL
+
+        $this->makeReplace($uri, $config, $context);
+        $this->replace = array_map('rawurlencode', $this->replace);
+
+        $new_uri = strtr($this->target, $this->replace);
+        $new_uri = $this->parser->parse($new_uri);
+        // don't redirect if the target host is the same as the
+        // starting host
+        if ($uri->host === $new_uri->host) {
+            return true;
+        }
+        $uri = $new_uri; // overwrite
+        return true;
+    }
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     */
+    protected function makeReplace($uri, $config, $context)
+    {
+        $string = $uri->toString();
+        // always available
+        $this->replace['%s'] = $string;
+        $this->replace['%r'] = $context->get('EmbeddedURI', true);
+        $token = $context->get('CurrentToken', true);
+        $this->replace['%n'] = $token ? $token->name : null;
+        $this->replace['%m'] = $context->get('CurrentAttr', true);
+        $this->replace['%p'] = $context->get('CurrentCSSProperty', true);
+        // not always available
+        if ($this->secretKey) {
+            $this->replace['%t'] = hash_hmac("sha256", $string, $this->secretKey);
+        }
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/SafeIframe.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/SafeIframe.php
new file mode 100644
index 0000000..f609c47
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIFilter/SafeIframe.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * Implements safety checks for safe iframes.
+ *
+ * @warning This filter is *critical* for ensuring that %HTML.SafeIframe
+ * works safely.
+ */
+class HTMLPurifier_URIFilter_SafeIframe extends HTMLPurifier_URIFilter
+{
+    /**
+     * @type string
+     */
+    public $name = 'SafeIframe';
+
+    /**
+     * @type bool
+     */
+    public $always_load = true;
+
+    /**
+     * @type string
+     */
+    protected $regexp = null;
+
+    // XXX: The not so good bit about how this is all set up now is we
+    // can't check HTML.SafeIframe in the 'prepare' step: we have to
+    // defer till the actual filtering.
+    /**
+     * @param HTMLPurifier_Config $config
+     * @return bool
+     */
+    public function prepare($config)
+    {
+        $this->regexp = $config->get('URI.SafeIframeRegexp');
+        return true;
+    }
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function filter(&$uri, $config, $context)
+    {
+        // check if filter not applicable
+        if (!$config->get('HTML.SafeIframe')) {
+            return true;
+        }
+        // check if the filter should actually trigger
+        if (!$context->get('EmbeddedURI', true)) {
+            return true;
+        }
+        $token = $context->get('CurrentToken', true);
+        if (!($token && $token->name == 'iframe')) {
+            return true;
+        }
+        // check if we actually have some whitelists enabled
+        if ($this->regexp === null) {
+            return false;
+        }
+        // actually check the whitelists
+        return preg_match($this->regexp, $uri->toString());
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIParser.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIParser.php
new file mode 100644
index 0000000..0e7381a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIParser.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * Parses a URI into the components and fragment identifier as specified
+ * by RFC 3986.
+ */
+class HTMLPurifier_URIParser
+{
+
+    /**
+     * Instance of HTMLPurifier_PercentEncoder to do normalization with.
+     */
+    protected $percentEncoder;
+
+    public function __construct()
+    {
+        $this->percentEncoder = new HTMLPurifier_PercentEncoder();
+    }
+
+    /**
+     * Parses a URI.
+     * @param $uri string URI to parse
+     * @return HTMLPurifier_URI representation of URI. This representation has
+     *         not been validated yet and may not conform to RFC.
+     */
+    public function parse($uri)
+    {
+        $uri = $this->percentEncoder->normalize($uri);
+
+        // Regexp is as per Appendix B.
+        // Note that ["<>] are an addition to the RFC's recommended
+        // characters, because they represent external delimeters.
+        $r_URI = '!'.
+            '(([a-zA-Z0-9\.\+\-]+):)?'. // 2. Scheme
+            '(//([^/?#"<>]*))?'. // 4. Authority
+            '([^?#"<>]*)'.       // 5. Path
+            '(\?([^#"<>]*))?'.   // 7. Query
+            '(#([^"<>]*))?'.     // 8. Fragment
+            '!';
+
+        $matches = array();
+        $result = preg_match($r_URI, $uri, $matches);
+
+        if (!$result) return false; // *really* invalid URI
+
+        // seperate out parts
+        $scheme     = !empty($matches[1]) ? $matches[2] : null;
+        $authority  = !empty($matches[3]) ? $matches[4] : null;
+        $path       = $matches[5]; // always present, can be empty
+        $query      = !empty($matches[6]) ? $matches[7] : null;
+        $fragment   = !empty($matches[8]) ? $matches[9] : null;
+
+        // further parse authority
+        if ($authority !== null) {
+            $r_authority = "/^((.+?)@)?(\[[^\]]+\]|[^:]*)(:(\d*))?/";
+            $matches = array();
+            preg_match($r_authority, $authority, $matches);
+            $userinfo   = !empty($matches[1]) ? $matches[2] : null;
+            $host       = !empty($matches[3]) ? $matches[3] : '';
+            $port       = !empty($matches[4]) ? (int) $matches[5] : null;
+        } else {
+            $port = $host = $userinfo = null;
+        }
+
+        return new HTMLPurifier_URI(
+            $scheme, $userinfo, $host, $port, $path, $query, $fragment);
+    }
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme.php
new file mode 100644
index 0000000..fe9e82c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme.php
@@ -0,0 +1,102 @@
+<?php
+
+/**
+ * Validator for the components of a URI for a specific scheme
+ */
+abstract class HTMLPurifier_URIScheme
+{
+
+    /**
+     * Scheme's default port (integer). If an explicit port number is
+     * specified that coincides with the default port, it will be
+     * elided.
+     * @type int
+     */
+    public $default_port = null;
+
+    /**
+     * Whether or not URIs of this scheme are locatable by a browser
+     * http and ftp are accessible, while mailto and news are not.
+     * @type bool
+     */
+    public $browsable = false;
+
+    /**
+     * Whether or not data transmitted over this scheme is encrypted.
+     * https is secure, http is not.
+     * @type bool
+     */
+    public $secure = false;
+
+    /**
+     * Whether or not the URI always uses <hier_part>, resolves edge cases
+     * with making relative URIs absolute
+     * @type bool
+     */
+    public $hierarchical = false;
+
+    /**
+     * Whether or not the URI may omit a hostname when the scheme is
+     * explicitly specified, ala file:///path/to/file. As of writing,
+     * 'file' is the only scheme that browsers support his properly.
+     * @type bool
+     */
+    public $may_omit_host = false;
+
+    /**
+     * Validates the components of a URI for a specific scheme.
+     * @param HTMLPurifier_URI $uri Reference to a HTMLPurifier_URI object
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool success or failure
+     */
+    abstract public function doValidate(&$uri, $config, $context);
+
+    /**
+     * Public interface for validating components of a URI.  Performs a
+     * bunch of default actions. Don't overload this method.
+     * @param HTMLPurifier_URI $uri Reference to a HTMLPurifier_URI object
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool success or failure
+     */
+    public function validate(&$uri, $config, $context)
+    {
+        if ($this->default_port == $uri->port) {
+            $uri->port = null;
+        }
+        // kludge: browsers do funny things when the scheme but not the
+        // authority is set
+        if (!$this->may_omit_host &&
+            // if the scheme is present, a missing host is always in error
+            (!is_null($uri->scheme) && ($uri->host === '' || is_null($uri->host))) ||
+            // if the scheme is not present, a *blank* host is in error,
+            // since this translates into '///path' which most browsers
+            // interpret as being 'http://path'.
+            (is_null($uri->scheme) && $uri->host === '')
+        ) {
+            do {
+                if (is_null($uri->scheme)) {
+                    if (substr($uri->path, 0, 2) != '//') {
+                        $uri->host = null;
+                        break;
+                    }
+                    // URI is '////path', so we cannot nullify the
+                    // host to preserve semantics.  Try expanding the
+                    // hostname instead (fall through)
+                }
+                // first see if we can manually insert a hostname
+                $host = $config->get('URI.Host');
+                if (!is_null($host)) {
+                    $uri->host = $host;
+                } else {
+                    // we can't do anything sensible, reject the URL.
+                    return false;
+                }
+            } while (false);
+        }
+        return $this->doValidate($uri, $config, $context);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/data.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/data.php
new file mode 100644
index 0000000..6ebca49
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/data.php
@@ -0,0 +1,127 @@
+<?php
+
+/**
+ * Implements data: URI for base64 encoded images supported by GD.
+ */
+class HTMLPurifier_URIScheme_data extends HTMLPurifier_URIScheme
+{
+    /**
+     * @type bool
+     */
+    public $browsable = true;
+
+    /**
+     * @type array
+     */
+    public $allowed_types = array(
+        // you better write validation code for other types if you
+        // decide to allow them
+        'image/jpeg' => true,
+        'image/gif' => true,
+        'image/png' => true,
+    );
+    // this is actually irrelevant since we only write out the path
+    // component
+    /**
+     * @type bool
+     */
+    public $may_omit_host = true;
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function doValidate(&$uri, $config, $context)
+    {
+        $result = explode(',', $uri->path, 2);
+        $is_base64 = false;
+        $charset = null;
+        $content_type = null;
+        if (count($result) == 2) {
+            list($metadata, $data) = $result;
+            // do some legwork on the metadata
+            $metas = explode(';', $metadata);
+            while (!empty($metas)) {
+                $cur = array_shift($metas);
+                if ($cur == 'base64') {
+                    $is_base64 = true;
+                    break;
+                }
+                if (substr($cur, 0, 8) == 'charset=') {
+                    // doesn't match if there are arbitrary spaces, but
+                    // whatever dude
+                    if ($charset !== null) {
+                        continue;
+                    } // garbage
+                    $charset = substr($cur, 8); // not used
+                } else {
+                    if ($content_type !== null) {
+                        continue;
+                    } // garbage
+                    $content_type = $cur;
+                }
+            }
+        } else {
+            $data = $result[0];
+        }
+        if ($content_type !== null && empty($this->allowed_types[$content_type])) {
+            return false;
+        }
+        if ($charset !== null) {
+            // error; we don't allow plaintext stuff
+            $charset = null;
+        }
+        $data = rawurldecode($data);
+        if ($is_base64) {
+            $raw_data = base64_decode($data);
+        } else {
+            $raw_data = $data;
+        }
+        // XXX probably want to refactor this into a general mechanism
+        // for filtering arbitrary content types
+        $file = tempnam("/tmp", "");
+        file_put_contents($file, $raw_data);
+        if (function_exists('exif_imagetype')) {
+            $image_code = exif_imagetype($file);
+            unlink($file);
+        } elseif (function_exists('getimagesize')) {
+            set_error_handler(array($this, 'muteErrorHandler'));
+            $info = getimagesize($file);
+            restore_error_handler();
+            unlink($file);
+            if ($info == false) {
+                return false;
+            }
+            $image_code = $info[2];
+        } else {
+            trigger_error("could not find exif_imagetype or getimagesize functions", E_USER_ERROR);
+        }
+        $real_content_type = image_type_to_mime_type($image_code);
+        if ($real_content_type != $content_type) {
+            // we're nice guys; if the content type is something else we
+            // support, change it over
+            if (empty($this->allowed_types[$real_content_type])) {
+                return false;
+            }
+            $content_type = $real_content_type;
+        }
+        // ok, it's kosher, rewrite what we need
+        $uri->userinfo = null;
+        $uri->host = null;
+        $uri->port = null;
+        $uri->fragment = null;
+        $uri->query = null;
+        $uri->path = "$content_type;base64," . base64_encode($raw_data);
+        return true;
+    }
+
+    /**
+     * @param int $errno
+     * @param string $errstr
+     */
+    public function muteErrorHandler($errno, $errstr)
+    {
+    }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/file.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/file.php
new file mode 100644
index 0000000..215be4b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/file.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * Validates file as defined by RFC 1630 and RFC 1738.
+ */
+class HTMLPurifier_URIScheme_file extends HTMLPurifier_URIScheme
+{
+    /**
+     * Generally file:// URLs are not accessible from most
+     * machines, so placing them as an img src is incorrect.
+     * @type bool
+     */
+    public $browsable = false;
+
+    /**
+     * Basically the *only* URI scheme for which this is true, since
+     * accessing files on the local machine is very common.  In fact,
+     * browsers on some operating systems don't understand the
+     * authority, though I hear it is used on Windows to refer to
+     * network shares.
+     * @type bool
+     */
+    public $may_omit_host = true;
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function doValidate(&$uri, $config, $context)
+    {
+        // Authentication method is not supported
+        $uri->userinfo = null;
+        // file:// makes no provisions for accessing the resource
+        $uri->port = null;
+        // While it seems to work on Firefox, the querystring has
+        // no possible effect and is thus stripped.
+        $uri->query = null;
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/ftp.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/ftp.php
new file mode 100644
index 0000000..1eb43ee
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/ftp.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Validates ftp (File Transfer Protocol) URIs as defined by generic RFC 1738.
+ */
+class HTMLPurifier_URIScheme_ftp extends HTMLPurifier_URIScheme
+{
+    /**
+     * @type int
+     */
+    public $default_port = 21;
+
+    /**
+     * @type bool
+     */
+    public $browsable = true; // usually
+
+    /**
+     * @type bool
+     */
+    public $hierarchical = true;
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function doValidate(&$uri, $config, $context)
+    {
+        $uri->query = null;
+
+        // typecode check
+        $semicolon_pos = strrpos($uri->path, ';'); // reverse
+        if ($semicolon_pos !== false) {
+            $type = substr($uri->path, $semicolon_pos + 1); // no semicolon
+            $uri->path = substr($uri->path, 0, $semicolon_pos);
+            $type_ret = '';
+            if (strpos($type, '=') !== false) {
+                // figure out whether or not the declaration is correct
+                list($key, $typecode) = explode('=', $type, 2);
+                if ($key !== 'type') {
+                    // invalid key, tack it back on encoded
+                    $uri->path .= '%3B' . $type;
+                } elseif ($typecode === 'a' || $typecode === 'i' || $typecode === 'd') {
+                    $type_ret = ";type=$typecode";
+                }
+            } else {
+                $uri->path .= '%3B' . $type;
+            }
+            $uri->path = str_replace(';', '%3B', $uri->path);
+            $uri->path .= $type_ret;
+        }
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/http.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/http.php
new file mode 100644
index 0000000..ce69ec4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/http.php
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * Validates http (HyperText Transfer Protocol) as defined by RFC 2616
+ */
+class HTMLPurifier_URIScheme_http extends HTMLPurifier_URIScheme
+{
+    /**
+     * @type int
+     */
+    public $default_port = 80;
+
+    /**
+     * @type bool
+     */
+    public $browsable = true;
+
+    /**
+     * @type bool
+     */
+    public $hierarchical = true;
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function doValidate(&$uri, $config, $context)
+    {
+        $uri->userinfo = null;
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/https.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/https.php
new file mode 100644
index 0000000..0e96882
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/https.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * Validates https (Secure HTTP) according to http scheme.
+ */
+class HTMLPurifier_URIScheme_https extends HTMLPurifier_URIScheme_http
+{
+    /**
+     * @type int
+     */
+    public $default_port = 443;
+    /**
+     * @type bool
+     */
+    public $secure = true;
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/mailto.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/mailto.php
new file mode 100644
index 0000000..c3a6b60
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/mailto.php
@@ -0,0 +1,40 @@
+<?php
+
+// VERY RELAXED! Shouldn't cause problems, not even Firefox checks if the
+// email is valid, but be careful!
+
+/**
+ * Validates mailto (for E-mail) according to RFC 2368
+ * @todo Validate the email address
+ * @todo Filter allowed query parameters
+ */
+
+class HTMLPurifier_URIScheme_mailto extends HTMLPurifier_URIScheme
+{
+    /**
+     * @type bool
+     */
+    public $browsable = false;
+
+    /**
+     * @type bool
+     */
+    public $may_omit_host = true;
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function doValidate(&$uri, $config, $context)
+    {
+        $uri->userinfo = null;
+        $uri->host     = null;
+        $uri->port     = null;
+        // we need to validate path against RFC 2368's addr-spec
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/news.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/news.php
new file mode 100644
index 0000000..7490927
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/news.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * Validates news (Usenet) as defined by generic RFC 1738
+ */
+class HTMLPurifier_URIScheme_news extends HTMLPurifier_URIScheme
+{
+    /**
+     * @type bool
+     */
+    public $browsable = false;
+
+    /**
+     * @type bool
+     */
+    public $may_omit_host = true;
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function doValidate(&$uri, $config, $context)
+    {
+        $uri->userinfo = null;
+        $uri->host = null;
+        $uri->port = null;
+        $uri->query = null;
+        // typecode check needed on path
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/nntp.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/nntp.php
new file mode 100644
index 0000000..f211d71
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URIScheme/nntp.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * Validates nntp (Network News Transfer Protocol) as defined by generic RFC 1738
+ */
+class HTMLPurifier_URIScheme_nntp extends HTMLPurifier_URIScheme
+{
+    /**
+     * @type int
+     */
+    public $default_port = 119;
+
+    /**
+     * @type bool
+     */
+    public $browsable = false;
+
+    /**
+     * @param HTMLPurifier_URI $uri
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return bool
+     */
+    public function doValidate(&$uri, $config, $context)
+    {
+        $uri->userinfo = null;
+        $uri->query = null;
+        return true;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URISchemeRegistry.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URISchemeRegistry.php
new file mode 100644
index 0000000..4ac8a0b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/URISchemeRegistry.php
@@ -0,0 +1,81 @@
+<?php
+
+/**
+ * Registry for retrieving specific URI scheme validator objects.
+ */
+class HTMLPurifier_URISchemeRegistry
+{
+
+    /**
+     * Retrieve sole instance of the registry.
+     * @param HTMLPurifier_URISchemeRegistry $prototype Optional prototype to overload sole instance with,
+     *                   or bool true to reset to default registry.
+     * @return HTMLPurifier_URISchemeRegistry
+     * @note Pass a registry object $prototype with a compatible interface and
+     *       the function will copy it and return it all further times.
+     */
+    public static function instance($prototype = null)
+    {
+        static $instance = null;
+        if ($prototype !== null) {
+            $instance = $prototype;
+        } elseif ($instance === null || $prototype == true) {
+            $instance = new HTMLPurifier_URISchemeRegistry();
+        }
+        return $instance;
+    }
+
+    /**
+     * Cache of retrieved schemes.
+     * @type HTMLPurifier_URIScheme[]
+     */
+    protected $schemes = array();
+
+    /**
+     * Retrieves a scheme validator object
+     * @param string $scheme String scheme name like http or mailto
+     * @param HTMLPurifier_Config $config
+     * @param HTMLPurifier_Context $context
+     * @return HTMLPurifier_URIScheme
+     */
+    public function getScheme($scheme, $config, $context)
+    {
+        if (!$config) {
+            $config = HTMLPurifier_Config::createDefault();
+        }
+
+        // important, otherwise attacker could include arbitrary file
+        $allowed_schemes = $config->get('URI.AllowedSchemes');
+        if (!$config->get('URI.OverrideAllowedSchemes') &&
+            !isset($allowed_schemes[$scheme])
+        ) {
+            return;
+        }
+
+        if (isset($this->schemes[$scheme])) {
+            return $this->schemes[$scheme];
+        }
+        if (!isset($allowed_schemes[$scheme])) {
+            return;
+        }
+
+        $class = 'HTMLPurifier_URIScheme_' . $scheme;
+        if (!class_exists($class)) {
+            return;
+        }
+        $this->schemes[$scheme] = new $class();
+        return $this->schemes[$scheme];
+    }
+
+    /**
+     * Registers a custom scheme to the cache, bypassing reflection.
+     * @param string $scheme Scheme name
+     * @param HTMLPurifier_URIScheme $scheme_obj
+     */
+    public function register($scheme, $scheme_obj)
+    {
+        $this->schemes[$scheme] = $scheme_obj;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/UnitConverter.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/UnitConverter.php
new file mode 100644
index 0000000..166f3bf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/UnitConverter.php
@@ -0,0 +1,307 @@
+<?php
+
+/**
+ * Class for converting between different unit-lengths as specified by
+ * CSS.
+ */
+class HTMLPurifier_UnitConverter
+{
+
+    const ENGLISH = 1;
+    const METRIC = 2;
+    const DIGITAL = 3;
+
+    /**
+     * Units information array. Units are grouped into measuring systems
+     * (English, Metric), and are assigned an integer representing
+     * the conversion factor between that unit and the smallest unit in
+     * the system. Numeric indexes are actually magical constants that
+     * encode conversion data from one system to the next, with a O(n^2)
+     * constraint on memory (this is generally not a problem, since
+     * the number of measuring systems is small.)
+     */
+    protected static $units = array(
+        self::ENGLISH => array(
+            'px' => 3, // This is as per CSS 2.1 and Firefox. Your mileage may vary
+            'pt' => 4,
+            'pc' => 48,
+            'in' => 288,
+            self::METRIC => array('pt', '0.352777778', 'mm'),
+        ),
+        self::METRIC => array(
+            'mm' => 1,
+            'cm' => 10,
+            self::ENGLISH => array('mm', '2.83464567', 'pt'),
+        ),
+    );
+
+    /**
+     * Minimum bcmath precision for output.
+     * @type int
+     */
+    protected $outputPrecision;
+
+    /**
+     * Bcmath precision for internal calculations.
+     * @type int
+     */
+    protected $internalPrecision;
+
+    /**
+     * Whether or not BCMath is available.
+     * @type bool
+     */
+    private $bcmath;
+
+    public function __construct($output_precision = 4, $internal_precision = 10, $force_no_bcmath = false)
+    {
+        $this->outputPrecision = $output_precision;
+        $this->internalPrecision = $internal_precision;
+        $this->bcmath = !$force_no_bcmath && function_exists('bcmul');
+    }
+
+    /**
+     * Converts a length object of one unit into another unit.
+     * @param HTMLPurifier_Length $length
+     *      Instance of HTMLPurifier_Length to convert. You must validate()
+     *      it before passing it here!
+     * @param string $to_unit
+     *      Unit to convert to.
+     * @return HTMLPurifier_Length|bool
+     * @note
+     *      About precision: This conversion function pays very special
+     *      attention to the incoming precision of values and attempts
+     *      to maintain a number of significant figure. Results are
+     *      fairly accurate up to nine digits. Some caveats:
+     *          - If a number is zero-padded as a result of this significant
+     *            figure tracking, the zeroes will be eliminated.
+     *          - If a number contains less than four sigfigs ($outputPrecision)
+     *            and this causes some decimals to be excluded, those
+     *            decimals will be added on.
+     */
+    public function convert($length, $to_unit)
+    {
+        if (!$length->isValid()) {
+            return false;
+        }
+
+        $n = $length->getN();
+        $unit = $length->getUnit();
+
+        if ($n === '0' || $unit === false) {
+            return new HTMLPurifier_Length('0', false);
+        }
+
+        $state = $dest_state = false;
+        foreach (self::$units as $k => $x) {
+            if (isset($x[$unit])) {
+                $state = $k;
+            }
+            if (isset($x[$to_unit])) {
+                $dest_state = $k;
+            }
+        }
+        if (!$state || !$dest_state) {
+            return false;
+        }
+
+        // Some calculations about the initial precision of the number;
+        // this will be useful when we need to do final rounding.
+        $sigfigs = $this->getSigFigs($n);
+        if ($sigfigs < $this->outputPrecision) {
+            $sigfigs = $this->outputPrecision;
+        }
+
+        // BCMath's internal precision deals only with decimals. Use
+        // our default if the initial number has no decimals, or increase
+        // it by how ever many decimals, thus, the number of guard digits
+        // will always be greater than or equal to internalPrecision.
+        $log = (int)floor(log(abs($n), 10));
+        $cp = ($log < 0) ? $this->internalPrecision - $log : $this->internalPrecision; // internal precision
+
+        for ($i = 0; $i < 2; $i++) {
+
+            // Determine what unit IN THIS SYSTEM we need to convert to
+            if ($dest_state === $state) {
+                // Simple conversion
+                $dest_unit = $to_unit;
+            } else {
+                // Convert to the smallest unit, pending a system shift
+                $dest_unit = self::$units[$state][$dest_state][0];
+            }
+
+            // Do the conversion if necessary
+            if ($dest_unit !== $unit) {
+                $factor = $this->div(self::$units[$state][$unit], self::$units[$state][$dest_unit], $cp);
+                $n = $this->mul($n, $factor, $cp);
+                $unit = $dest_unit;
+            }
+
+            // Output was zero, so bail out early. Shouldn't ever happen.
+            if ($n === '') {
+                $n = '0';
+                $unit = $to_unit;
+                break;
+            }
+
+            // It was a simple conversion, so bail out
+            if ($dest_state === $state) {
+                break;
+            }
+
+            if ($i !== 0) {
+                // Conversion failed! Apparently, the system we forwarded
+                // to didn't have this unit. This should never happen!
+                return false;
+            }
+
+            // Pre-condition: $i == 0
+
+            // Perform conversion to next system of units
+            $n = $this->mul($n, self::$units[$state][$dest_state][1], $cp);
+            $unit = self::$units[$state][$dest_state][2];
+            $state = $dest_state;
+
+            // One more loop around to convert the unit in the new system.
+
+        }
+
+        // Post-condition: $unit == $to_unit
+        if ($unit !== $to_unit) {
+            return false;
+        }
+
+        // Useful for debugging:
+        //echo "<pre>n";
+        //echo "$n\nsigfigs = $sigfigs\nnew_log = $new_log\nlog = $log\nrp = $rp\n</pre>\n";
+
+        $n = $this->round($n, $sigfigs);
+        if (strpos($n, '.') !== false) {
+            $n = rtrim($n, '0');
+        }
+        $n = rtrim($n, '.');
+
+        return new HTMLPurifier_Length($n, $unit);
+    }
+
+    /**
+     * Returns the number of significant figures in a string number.
+     * @param string $n Decimal number
+     * @return int number of sigfigs
+     */
+    public function getSigFigs($n)
+    {
+        $n = ltrim($n, '0+-');
+        $dp = strpos($n, '.'); // decimal position
+        if ($dp === false) {
+            $sigfigs = strlen(rtrim($n, '0'));
+        } else {
+            $sigfigs = strlen(ltrim($n, '0.')); // eliminate extra decimal character
+            if ($dp !== 0) {
+                $sigfigs--;
+            }
+        }
+        return $sigfigs;
+    }
+
+    /**
+     * Adds two numbers, using arbitrary precision when available.
+     * @param string $s1
+     * @param string $s2
+     * @param int $scale
+     * @return string
+     */
+    private function add($s1, $s2, $scale)
+    {
+        if ($this->bcmath) {
+            return bcadd($s1, $s2, $scale);
+        } else {
+            return $this->scale((float)$s1 + (float)$s2, $scale);
+        }
+    }
+
+    /**
+     * Multiples two numbers, using arbitrary precision when available.
+     * @param string $s1
+     * @param string $s2
+     * @param int $scale
+     * @return string
+     */
+    private function mul($s1, $s2, $scale)
+    {
+        if ($this->bcmath) {
+            return bcmul($s1, $s2, $scale);
+        } else {
+            return $this->scale((float)$s1 * (float)$s2, $scale);
+        }
+    }
+
+    /**
+     * Divides two numbers, using arbitrary precision when available.
+     * @param string $s1
+     * @param string $s2
+     * @param int $scale
+     * @return string
+     */
+    private function div($s1, $s2, $scale)
+    {
+        if ($this->bcmath) {
+            return bcdiv($s1, $s2, $scale);
+        } else {
+            return $this->scale((float)$s1 / (float)$s2, $scale);
+        }
+    }
+
+    /**
+     * Rounds a number according to the number of sigfigs it should have,
+     * using arbitrary precision when available.
+     * @param float $n
+     * @param int $sigfigs
+     * @return string
+     */
+    private function round($n, $sigfigs)
+    {
+        $new_log = (int)floor(log(abs($n), 10)); // Number of digits left of decimal - 1
+        $rp = $sigfigs - $new_log - 1; // Number of decimal places needed
+        $neg = $n < 0 ? '-' : ''; // Negative sign
+        if ($this->bcmath) {
+            if ($rp >= 0) {
+                $n = bcadd($n, $neg . '0.' . str_repeat('0', $rp) . '5', $rp + 1);
+                $n = bcdiv($n, '1', $rp);
+            } else {
+                // This algorithm partially depends on the standardized
+                // form of numbers that comes out of bcmath.
+                $n = bcadd($n, $neg . '5' . str_repeat('0', $new_log - $sigfigs), 0);
+                $n = substr($n, 0, $sigfigs + strlen($neg)) . str_repeat('0', $new_log - $sigfigs + 1);
+            }
+            return $n;
+        } else {
+            return $this->scale(round($n, $sigfigs - $new_log - 1), $rp + 1);
+        }
+    }
+
+    /**
+     * Scales a float to $scale digits right of decimal point, like BCMath.
+     * @param float $r
+     * @param int $scale
+     * @return string
+     */
+    private function scale($r, $scale)
+    {
+        if ($scale < 0) {
+            // The f sprintf type doesn't support negative numbers, so we
+            // need to cludge things manually. First get the string.
+            $r = sprintf('%.0f', (float)$r);
+            // Due to floating point precision loss, $r will more than likely
+            // look something like 4652999999999.9234. We grab one more digit
+            // than we need to precise from $r and then use that to round
+            // appropriately.
+            $precise = (string)round(substr($r, 0, strlen($r) + $scale), -1);
+            // Now we return it, truncating the zero that was rounded off.
+            return substr($precise, 0, -1) . str_repeat('0', -$scale + 1);
+        }
+        return sprintf('%.' . $scale . 'f', (float)$r);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser.php
new file mode 100644
index 0000000..50cba69
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser.php
@@ -0,0 +1,198 @@
+<?php
+
+/**
+ * Parses string representations into their corresponding native PHP
+ * variable type. The base implementation does a simple type-check.
+ */
+class HTMLPurifier_VarParser
+{
+
+    const STRING = 1;
+    const ISTRING = 2;
+    const TEXT = 3;
+    const ITEXT = 4;
+    const INT = 5;
+    const FLOAT = 6;
+    const BOOL = 7;
+    const LOOKUP = 8;
+    const ALIST = 9;
+    const HASH = 10;
+    const MIXED = 11;
+
+    /**
+     * Lookup table of allowed types. Mainly for backwards compatibility, but
+     * also convenient for transforming string type names to the integer constants.
+     */
+    public static $types = array(
+        'string' => self::STRING,
+        'istring' => self::ISTRING,
+        'text' => self::TEXT,
+        'itext' => self::ITEXT,
+        'int' => self::INT,
+        'float' => self::FLOAT,
+        'bool' => self::BOOL,
+        'lookup' => self::LOOKUP,
+        'list' => self::ALIST,
+        'hash' => self::HASH,
+        'mixed' => self::MIXED
+    );
+
+    /**
+     * Lookup table of types that are string, and can have aliases or
+     * allowed value lists.
+     */
+    public static $stringTypes = array(
+        self::STRING => true,
+        self::ISTRING => true,
+        self::TEXT => true,
+        self::ITEXT => true,
+    );
+
+    /**
+     * Validate a variable according to type.
+     * It may return NULL as a valid type if $allow_null is true.
+     *
+     * @param mixed $var Variable to validate
+     * @param int $type Type of variable, see HTMLPurifier_VarParser->types
+     * @param bool $allow_null Whether or not to permit null as a value
+     * @return string Validated and type-coerced variable
+     * @throws HTMLPurifier_VarParserException
+     */
+    final public function parse($var, $type, $allow_null = false)
+    {
+        if (is_string($type)) {
+            if (!isset(HTMLPurifier_VarParser::$types[$type])) {
+                throw new HTMLPurifier_VarParserException("Invalid type '$type'");
+            } else {
+                $type = HTMLPurifier_VarParser::$types[$type];
+            }
+        }
+        $var = $this->parseImplementation($var, $type, $allow_null);
+        if ($allow_null && $var === null) {
+            return null;
+        }
+        // These are basic checks, to make sure nothing horribly wrong
+        // happened in our implementations.
+        switch ($type) {
+            case (self::STRING):
+            case (self::ISTRING):
+            case (self::TEXT):
+            case (self::ITEXT):
+                if (!is_string($var)) {
+                    break;
+                }
+                if ($type == self::ISTRING || $type == self::ITEXT) {
+                    $var = strtolower($var);
+                }
+                return $var;
+            case (self::INT):
+                if (!is_int($var)) {
+                    break;
+                }
+                return $var;
+            case (self::FLOAT):
+                if (!is_float($var)) {
+                    break;
+                }
+                return $var;
+            case (self::BOOL):
+                if (!is_bool($var)) {
+                    break;
+                }
+                return $var;
+            case (self::LOOKUP):
+            case (self::ALIST):
+            case (self::HASH):
+                if (!is_array($var)) {
+                    break;
+                }
+                if ($type === self::LOOKUP) {
+                    foreach ($var as $k) {
+                        if ($k !== true) {
+                            $this->error('Lookup table contains value other than true');
+                        }
+                    }
+                } elseif ($type === self::ALIST) {
+                    $keys = array_keys($var);
+                    if (array_keys($keys) !== $keys) {
+                        $this->error('Indices for list are not uniform');
+                    }
+                }
+                return $var;
+            case (self::MIXED):
+                return $var;
+            default:
+                $this->errorInconsistent(get_class($this), $type);
+        }
+        $this->errorGeneric($var, $type);
+    }
+
+    /**
+     * Actually implements the parsing. Base implementation does not
+     * do anything to $var. Subclasses should overload this!
+     * @param mixed $var
+     * @param int $type
+     * @param bool $allow_null
+     * @return string
+     */
+    protected function parseImplementation($var, $type, $allow_null)
+    {
+        return $var;
+    }
+
+    /**
+     * Throws an exception.
+     * @throws HTMLPurifier_VarParserException
+     */
+    protected function error($msg)
+    {
+        throw new HTMLPurifier_VarParserException($msg);
+    }
+
+    /**
+     * Throws an inconsistency exception.
+     * @note This should not ever be called. It would be called if we
+     *       extend the allowed values of HTMLPurifier_VarParser without
+     *       updating subclasses.
+     * @param string $class
+     * @param int $type
+     * @throws HTMLPurifier_Exception
+     */
+    protected function errorInconsistent($class, $type)
+    {
+        throw new HTMLPurifier_Exception(
+            "Inconsistency in $class: " . HTMLPurifier_VarParser::getTypeName($type) .
+            " not implemented"
+        );
+    }
+
+    /**
+     * Generic error for if a type didn't work.
+     * @param mixed $var
+     * @param int $type
+     */
+    protected function errorGeneric($var, $type)
+    {
+        $vtype = gettype($var);
+        $this->error("Expected type " . HTMLPurifier_VarParser::getTypeName($type) . ", got $vtype");
+    }
+
+    /**
+     * @param int $type
+     * @return string
+     */
+    public static function getTypeName($type)
+    {
+        static $lookup;
+        if (!$lookup) {
+            // Lazy load the alternative lookup table
+            $lookup = array_flip(HTMLPurifier_VarParser::$types);
+        }
+        if (!isset($lookup[$type])) {
+            return 'unknown';
+        }
+        return $lookup[$type];
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php
new file mode 100644
index 0000000..b15016c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * Performs safe variable parsing based on types which can be used by
+ * users. This may not be able to represent all possible data inputs,
+ * however.
+ */
+class HTMLPurifier_VarParser_Flexible extends HTMLPurifier_VarParser
+{
+    /**
+     * @param mixed $var
+     * @param int $type
+     * @param bool $allow_null
+     * @return array|bool|float|int|mixed|null|string
+     * @throws HTMLPurifier_VarParserException
+     */
+    protected function parseImplementation($var, $type, $allow_null)
+    {
+        if ($allow_null && $var === null) {
+            return null;
+        }
+        switch ($type) {
+            // Note: if code "breaks" from the switch, it triggers a generic
+            // exception to be thrown. Specific errors can be specifically
+            // done here.
+            case self::MIXED:
+            case self::ISTRING:
+            case self::STRING:
+            case self::TEXT:
+            case self::ITEXT:
+                return $var;
+            case self::INT:
+                if (is_string($var) && ctype_digit($var)) {
+                    $var = (int)$var;
+                }
+                return $var;
+            case self::FLOAT:
+                if ((is_string($var) && is_numeric($var)) || is_int($var)) {
+                    $var = (float)$var;
+                }
+                return $var;
+            case self::BOOL:
+                if (is_int($var) && ($var === 0 || $var === 1)) {
+                    $var = (bool)$var;
+                } elseif (is_string($var)) {
+                    if ($var == 'on' || $var == 'true' || $var == '1') {
+                        $var = true;
+                    } elseif ($var == 'off' || $var == 'false' || $var == '0') {
+                        $var = false;
+                    } else {
+                        throw new HTMLPurifier_VarParserException("Unrecognized value '$var' for $type");
+                    }
+                }
+                return $var;
+            case self::ALIST:
+            case self::HASH:
+            case self::LOOKUP:
+                if (is_string($var)) {
+                    // special case: technically, this is an array with
+                    // a single empty string item, but having an empty
+                    // array is more intuitive
+                    if ($var == '') {
+                        return array();
+                    }
+                    if (strpos($var, "\n") === false && strpos($var, "\r") === false) {
+                        // simplistic string to array method that only works
+                        // for simple lists of tag names or alphanumeric characters
+                        $var = explode(',', $var);
+                    } else {
+                        $var = preg_split('/(,|[\n\r]+)/', $var);
+                    }
+                    // remove spaces
+                    foreach ($var as $i => $j) {
+                        $var[$i] = trim($j);
+                    }
+                    if ($type === self::HASH) {
+                        // key:value,key2:value2
+                        $nvar = array();
+                        foreach ($var as $keypair) {
+                            $c = explode(':', $keypair, 2);
+                            if (!isset($c[1])) {
+                                continue;
+                            }
+                            $nvar[trim($c[0])] = trim($c[1]);
+                        }
+                        $var = $nvar;
+                    }
+                }
+                if (!is_array($var)) {
+                    break;
+                }
+                $keys = array_keys($var);
+                if ($keys === array_keys($keys)) {
+                    if ($type == self::ALIST) {
+                        return $var;
+                    } elseif ($type == self::LOOKUP) {
+                        $new = array();
+                        foreach ($var as $key) {
+                            $new[$key] = true;
+                        }
+                        return $new;
+                    } else {
+                        break;
+                    }
+                }
+                if ($type === self::ALIST) {
+                    trigger_error("Array list did not have consecutive integer indexes", E_USER_WARNING);
+                    return array_values($var);
+                }
+                if ($type === self::LOOKUP) {
+                    foreach ($var as $key => $value) {
+                        if ($value !== true) {
+                            trigger_error(
+                                "Lookup array has non-true value at key '$key'; " .
+                                "maybe your input array was not indexed numerically",
+                                E_USER_WARNING
+                            );
+                        }
+                        $var[$key] = true;
+                    }
+                }
+                return $var;
+            default:
+                $this->errorInconsistent(__CLASS__, $type);
+        }
+        $this->errorGeneric($var, $type);
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php
new file mode 100644
index 0000000..f11c318
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * This variable parser uses PHP's internal code engine. Because it does
+ * this, it can represent all inputs; however, it is dangerous and cannot
+ * be used by users.
+ */
+class HTMLPurifier_VarParser_Native extends HTMLPurifier_VarParser
+{
+
+    /**
+     * @param mixed $var
+     * @param int $type
+     * @param bool $allow_null
+     * @return null|string
+     */
+    protected function parseImplementation($var, $type, $allow_null)
+    {
+        return $this->evalExpression($var);
+    }
+
+    /**
+     * @param string $expr
+     * @return mixed
+     * @throws HTMLPurifier_VarParserException
+     */
+    protected function evalExpression($expr)
+    {
+        $var = null;
+        $result = eval("\$var = $expr;");
+        if ($result === false) {
+            throw new HTMLPurifier_VarParserException("Fatal error in evaluated code");
+        }
+        return $var;
+    }
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParserException.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParserException.php
new file mode 100644
index 0000000..5df3414
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/VarParserException.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Exception type for HTMLPurifier_VarParser
+ */
+class HTMLPurifier_VarParserException extends HTMLPurifier_Exception
+{
+
+}
+
+// vim: et sw=4 sts=4
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Zipper.php b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Zipper.php
new file mode 100644
index 0000000..6e21ea0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/library/HTMLPurifier/Zipper.php
@@ -0,0 +1,157 @@
+<?php
+
+/**
+ * A zipper is a purely-functional data structure which contains
+ * a focus that can be efficiently manipulated.  It is known as
+ * a "one-hole context".  This mutable variant implements a zipper
+ * for a list as a pair of two arrays, laid out as follows:
+ *
+ *      Base list: 1 2 3 4 [ ] 6 7 8 9
+ *      Front list: 1 2 3 4
+ *      Back list: 9 8 7 6
+ *
+ * User is expected to keep track of the "current element" and properly
+ * fill it back in as necessary.  (ToDo: Maybe it's more user friendly
+ * to implicitly track the current element?)
+ *
+ * Nota bene: the current class gets confused if you try to store NULLs
+ * in the list.
+ */
+
+class HTMLPurifier_Zipper
+{
+    public $front, $back;
+
+    public function __construct($front, $back) {
+        $this->front = $front;
+        $this->back = $back;
+    }
+
+    /**
+     * Creates a zipper from an array, with a hole in the
+     * 0-index position.
+     * @param Array to zipper-ify.
+     * @return Tuple of zipper and element of first position.
+     */
+    static public function fromArray($array) {
+        $z = new self(array(), array_reverse($array));
+        $t = $z->delete(); // delete the "dummy hole"
+        return array($z, $t);
+    }
+
+    /**
+     * Convert zipper back into a normal array, optionally filling in
+     * the hole with a value. (Usually you should supply a $t, unless you
+     * are at the end of the array.)
+     */
+    public function toArray($t = NULL) {
+        $a = $this->front;
+        if ($t !== NULL) $a[] = $t;
+        for ($i = count($this->back)-1; $i >= 0; $i--) {
+            $a[] = $this->back[$i];
+        }
+        return $a;
+    }
+
+    /**
+     * Move hole to the next element.
+     * @param $t Element to fill hole with
+     * @return Original contents of new hole.
+     */
+    public function next($t) {
+        if ($t !== NULL) array_push($this->front, $t);
+        return empty($this->back) ? NULL : array_pop($this->back);
+    }
+
+    /**
+     * Iterated hole advancement.
+     * @param $t Element to fill hole with
+     * @param $i How many forward to advance hole
+     * @return Original contents of new hole, i away
+     */
+    public function advance($t, $n) {
+        for ($i = 0; $i < $n; $i++) {
+            $t = $this->next($t);
+        }
+        return $t;
+    }
+
+    /**
+     * Move hole to the previous element
+     * @param $t Element to fill hole with
+     * @return Original contents of new hole.
+     */
+    public function prev($t) {
+        if ($t !== NULL) array_push($this->back, $t);
+        return empty($this->front) ? NULL : array_pop($this->front);
+    }
+
+    /**
+     * Delete contents of current hole, shifting hole to
+     * next element.
+     * @return Original contents of new hole.
+     */
+    public function delete() {
+        return empty($this->back) ? NULL : array_pop($this->back);
+    }
+
+    /**
+     * Returns true if we are at the end of the list.
+     * @return bool
+     */
+    public function done() {
+        return empty($this->back);
+    }
+
+    /**
+     * Insert element before hole.
+     * @param Element to insert
+     */
+    public function insertBefore($t) {
+        if ($t !== NULL) array_push($this->front, $t);
+    }
+
+    /**
+     * Insert element after hole.
+     * @param Element to insert
+     */
+    public function insertAfter($t) {
+        if ($t !== NULL) array_push($this->back, $t);
+    }
+
+    /**
+     * Splice in multiple elements at hole.  Functional specification
+     * in terms of array_splice:
+     *
+     *      $arr1 = $arr;
+     *      $old1 = array_splice($arr1, $i, $delete, $replacement);
+     *
+     *      list($z, $t) = HTMLPurifier_Zipper::fromArray($arr);
+     *      $t = $z->advance($t, $i);
+     *      list($old2, $t) = $z->splice($t, $delete, $replacement);
+     *      $arr2 = $z->toArray($t);
+     *
+     *      assert($old1 === $old2);
+     *      assert($arr1 === $arr2);
+     *
+     * NB: the absolute index location after this operation is
+     * *unchanged!*
+     *
+     * @param Current contents of hole.
+     */
+    public function splice($t, $delete, $replacement) {
+        // delete
+        $old = array();
+        $r = $t;
+        for ($i = $delete; $i > 0; $i--) {
+            $old[] = $r;
+            $r = $this->delete();
+        }
+        // insert
+        for ($i = count($replacement)-1; $i >= 0; $i--) {
+            $this->insertAfter($r);
+            $r = $replacement[$i];
+        }
+        return array($old, $r);
+    }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/htmlpurifier/translations/uk.po b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/translations/uk.po
new file mode 100644
index 0000000..8dda98a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/htmlpurifier/translations/uk.po
@@ -0,0 +1,81 @@
+# $Id: uk.po,v 1.1.2.2 2009/09/16 17:31:54 podarok Exp $
+#
+# Ukrainian translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  htmlpurifier.module,v 1.8 2009/07/09 23:57:44 ezyang
+#  htmlpurifier.info,v 1.6 2008/04/24 04:13:09 ezyang
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: html purufuer drupal module\n"
+"POT-Creation-Date: 2009-09-16 20:13+0300\n"
+"PO-Revision-Date: 2009-09-16 20:24+0200\n"
+"Last-Translator: podarok <podarok at ua.fm>\n"
+"Language-Team: Ukrainian <podarok at ua.fm>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"
+"X-Poedit-Language: Ukrainian\n"
+"X-Poedit-Country: UKRAINE\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: htmlpurifier.module:20
+#: htmlpurifier.info:0
+msgid "Filter that removes malicious HTML and ensures standards compliant output."
+msgstr "Фільтр, що видаляє шкідливий HTML і сприяє збереженню стандартів виводу"
+
+#: htmlpurifier.module:74;263
+#: htmlpurifier.info:0
+msgid "HTML Purifier"
+msgstr "HTML Чистильщик"
+
+#: htmlpurifier.module:74
+msgid "HTML Purifier (advanced)"
+msgstr "HTML Чистильщик (розширений)"
+
+#: htmlpurifier.module:91
+msgid "<em>This version has advanced configuration options, do not enable both at the same time.</em>"
+msgstr "<em>Ця версія має додаткові можливості, не вмикаєте обидві одночасно</em>"
+
+#: htmlpurifier.module:113
+msgid "HTML tags will be transformed to conform to HTML standards."
+msgstr "HTML теги будуть перетворені у відповідності до стандартів HTML "
+
+#: htmlpurifier.module:268
+msgid "Display help text"
+msgstr "Відображення тексту допомоги"
+
+#: htmlpurifier.module:270
+msgid "If enabled, a short note will be added to the filter tips explaining that HTML will be transformed to conform with HTML standards. You may want to disable this option when the HTML Purifier is used to check the output of another filter like BBCode."
+msgstr "Якщо увімкнено, короткі нотатки будуть додані до підказок фільтрів, що пояснюватимуть яким чином HTML буде трансформовано до стандартів. Ви можете  вимкнути це в випадках, якщо Чистильщик використовуватиметься для виводу інших фільтрів, наприклад BBCode."
+
+#: htmlpurifier.module:276
+msgid "<div>Configuration function <code>!function()</code> is already defined. To edit HTML Purifier's configuration, edit the corresponding configuration file, which is usually <code>htmlpurifier/config/!format.php</code>. To restore the web configuration form, delete or rename this file.</div>"
+msgstr "<div>Функція налагодження <code>!function()</code> вже зазначена. Для правки параметрів HTML Чистильщика, змінюйте вкладений файл налаштувань, що зазвичай є <code>htmlpurifier/config/!format.php</code>. Для відновлення параметрів форми налаштування, стріть або перейменуйте цей файл.</div>"
+
+#: htmlpurifier.module:281
+msgid "Configure HTML Purifier"
+msgstr "Управління модулем HTML Чистильщик"
+
+#: htmlpurifier.module:296
+msgid "Advanced configuration options"
+msgstr "Розширені налагодження"
+
+#: htmlpurifier.module:300
+msgid "Allow double caching"
+msgstr "Дозвіл на подвійне кешування"
+
+#: htmlpurifier.module:302
+msgid "If enabled, HTML Purifier will tell filter that its output is cacheable. This is not usually necessary, because HTML Purifier maintains its own cache, but may be helpful if you have later filters that need to be cached."
+msgstr "Якщо увімкнено, HTML Чистильщик буде повідомляти, що вивід кешований. Це не є необхідно, бо HTML Чистильщик володіє власним кешуванням, але може бути корисно, якщо Ви маєте подальші фільтри, що потребують кешування."
+
+#: htmlpurifier.module:310
+msgid "Please click on a directive name for more information on what it does before enabling or changing anything!"
+msgstr "Тисніть на імя для додаткової інформації для того, що це таке, переж вмиканням та змінюванням будь чого"
+
+#: htmlpurifier.module:0
+msgid "htmlpurifier"
+msgstr "html-чистильщик"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/i18nviews/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/i18nviews.info b/drupal/sites/default/boinc/modules/contrib/i18nviews/i18nviews.info
new file mode 100644
index 0000000..47e9689
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/i18nviews.info
@@ -0,0 +1,15 @@
+; $Id: i18nviews.info,v 1.1 2010/05/17 14:03:58 jareyero Exp $
+name = Views translation
+description = Translation of views strings and content selection for views. Requires Views 3.x
+dependencies[] = views
+dependencies[] = i18nstrings
+dependencies[] = i18ntaxonomy
+package = Multilanguage
+core = 6.x
+
+; Information added by drupal.org packaging script on 2010-06-10
+version = "6.x-2.0"
+core = "6.x"
+project = "i18nviews"
+datestamp = "1276171508"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/i18nviews.module b/drupal/sites/default/boinc/modules/contrib/i18nviews/i18nviews.module
new file mode 100644
index 0000000..451a1aa
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/i18nviews.module
@@ -0,0 +1,216 @@
+<?php
+// $Id: i18nviews.module,v 1.1.2.1 2010/05/17 14:22:17 jareyero Exp $
+
+/**
+ * @file
+ * Views support for Internationalization (i18n) package
+ *
+ * This module translates some views strings on the fly using i18n string system
+ *
+ * @author Jose A. Reyero, 2007
+ */
+
+/**
+ * Implementation of hook_help().
+ */
+function i18nviews_help($path, $arg) {
+  switch ($path) {
+    case 'admin/modules#description' :
+      $output = '<p>'. t('Supports translation for views strings: title, header, footer...') .'</p>';
+      $output .= '<p>'. t('To search and translate strings, use the <a href="@translate-interface">translation interface</a> pages.', array('@translate-interface' => url('admin/build/translate'))) .'</p>';
+      return $output;
+  }
+}
+
+/**
+ * Implementation of hook_locale().
+ */
+function i18nviews_locale($op = 'groups') {
+  switch ($op) {
+    case 'groups':
+      return array('views' => t('Views'));
+    case 'info':
+      $info['views']['refresh callback'] = 'i18nviews_locale_refresh';
+      $info['views']['format'] = TRUE;
+      return $info;
+  }
+}
+
+/**
+ * Refresh views locales, 2.x version
+ */
+function i18nviews_locale_refresh() {
+  $views = views_get_all_views();
+  foreach ($views as $view) {
+    if (!$view->disabled) {
+      $fields = _i18nviews_display_fields();
+      if (!empty($view->display) && is_array($view->display)) {
+        foreach (array_keys($view->display) as $display_id) {
+          _i18nviews_localize_array($view->name, $display_id, $view->display[$display_id]->display_options, $fields, TRUE);
+        }
+      }
+    }
+  }
+  return TRUE; // Completed successfully
+}
+
+/**
+ * Field handler for taxonomy term fields.
+ *
+ * Remake of views_handler_field_allterms with term name translation.
+ */
+function i18nviews_views_handler_field_allterms($fieldinfo, $fielddata, $value, $data) {
+  if ($fieldinfo['vocabulary']) {
+    $terms = taxonomy_node_get_terms_by_vocabulary($data->nid, $fieldinfo['vocabulary']);
+  }
+  else {
+    $terms = taxonomy_node_get_terms($data->nid);
+  }
+  // Translate all these terms.
+  _i18ntaxonomy_translate_terms($terms);
+
+  if ($fielddata['options'] == 'nolink') {
+    foreach ($terms as $term) {
+      $links[] = check_plain($term->name);
+    }
+    $links = !empty($links) ? implode(' | ', $links) : '';
+  }
+  else {
+    $node = new stdClass();
+    $node->taxonomy = $terms;
+    $links = theme('links', taxonomy_link('taxonomy terms', $node));
+  }
+  return $links;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function i18nviews_views_api() {
+  return array(
+    'api' => '2.0',
+    'path' => drupal_get_path('module', 'i18nviews') . '/includes',
+  );
+}
+
+/**
+ * Views 2.x compatibility
+ */
+
+/**
+ * Implementation of hook_views_pre_view().
+ *
+ * Views are identified by $view->name.
+ * 
+ * This is just for views 2.x, next version (3.x) will use a different one
+ */
+function i18nviews_views_pre_view(&$view, &$display_id, &$args) {
+  global $language;
+  if (views_api_version() == '2.0' && $language->language != language_default('language')) {
+    // Also checking weird values for $display_id, see 277711
+    if (!empty($view->display) && is_array($view->display) && is_string($display_id)) {
+      $fields = _i18nviews_display_fields();
+      if(!empty($view->display[$display_id])) {
+        $fields = _i18nviews_localize_array($view->name, $display_id, $view->display[$display_id]->handler->options, $fields);
+      }
+      if($fields && !empty($view->display['default'])) {
+        _i18nviews_localize_array($view->name, 'default', $view->display['default']->handler->options, $fields);
+      }      
+    }
+    // Translate taxonomy fields.
+    // @todo I don think this works at all.
+    if (module_exists('i18ntaxonomy') && isset($view->field) && is_array($view->field)) {
+      $translate = variable_get('i18ntaxonomy_vocabularies', array());
+      foreach ($view->field as $index => $data) {
+        $matches = array();
+        if ($data['id'] == 'term_node.name') {
+          // That's a full taxonomy box.
+          $view->field[$index]['handler'] = 'i18ntaxonomy_views_handler_field_allterms';
+        }
+        elseif (preg_match("/term_node_(\d+)\.name/", $data['id'], $matches)) {
+          $vid = $matches[1];
+          if ($translate[$vid]) {
+            // Set new handler for this field.
+            $view->field[$index]['handler'] = 'i18ntaxonomy_views_handler_field_allterms';
+          }
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Return the Views fields that should be translated.
+ *
+ * @return
+ *   Array of field names.
+ */
+function _i18nviews_display_fields() {
+  return array('title', 'header', 'footer', 'empty');
+}
+
+/**
+ * Translate a group of fields.
+ *
+ * We get the translated fields out of the array so they are not translated again.
+ */
+function _i18nviews_localize_array($name, $group, &$data, $field_names, $update = FALSE) {
+  $translated = array();
+  foreach ($field_names as $field) {
+    if (!empty($data[$field])) {
+      if ($update) {
+        $format = isset($data[$field . '_format']) ? $data[$field . '_format'] : NULL;
+        i18nstrings_update("views:$name:$group:$field", $data[$field], $format);
+      }
+      else {
+        $data[$field] = i18nstrings("views:$name:$group:$field", $data[$field]);
+        $translated[] = $field;
+      }
+    }
+  }
+  // Return remaining field names
+  return array_diff($field_names, $translated);
+}
+
+/**
+ * Translate a group of fields for an object.
+ *
+ * We cannot play with object 2 array conversion because some are real typed objects.
+ */
+function _i18nviews_localize_object($name, $group, &$data, &$field_names, $trim = FALSE) {
+  $translated = array();
+  foreach ($field_names as $field) {
+    if (!empty($data->$field)) {
+      $data->$field = i18nstrings("views:$name:$group:$field", $data->$field);
+    }
+  }
+  if ($trim && $translated) {
+    $field_names = array_diff($field_names, $translated);
+  }
+}
+
+/**
+ * Implementation of hook_form_id_alter().
+ *
+ * Add a submit handler to the submit button on views_ui_edit_display_form.
+ */
+function i18nviews_form_views_ui_edit_display_form_alter(&$form, $form_state) {
+  $form['buttons']['submit']['#submit'][] = 'i18nviews_views_ui_edit_display_submit';
+}
+
+/**
+ * Submit handler for views_ui_edit_display_form.
+ *
+ * Creates or updates translation source records for specified Views fields.
+ */
+function i18nviews_views_ui_edit_display_submit($form, &$form_state) {
+  $fields = _i18nviews_display_fields();
+  foreach ($fields as $field) {
+    if (isset($form_state['values'][$field])) {
+      $name = $form_state['view']->name;
+      $group = $form_state['display_id'];
+      $format = isset($form_state['values'][$field . '_format']) ? $form_state['values'][$field . '_format'] : NULL;
+      i18nstrings_update("views:$name:$group:$field", $form_state['values'][$field], $format);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/includes/content_negotiation_filter_handler.inc b/drupal/sites/default/boinc/modules/contrib/i18nviews/includes/content_negotiation_filter_handler.inc
new file mode 100644
index 0000000..5a8f922
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/includes/content_negotiation_filter_handler.inc
@@ -0,0 +1,18 @@
+<?php
+
+class content_negotiation_filter_handler extends views_handler_filter {
+  function query() {
+    $this->ensure_my_table();
+    $where = i18n_db_rewrite_where($this->table_alias, 'node');
+    if (!empty($where)) {
+      $this->query->add_where($this->options['group'], $where);
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['operator']['default'] = '';
+    $options['value']['default'] = '';
+    return $options;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/includes/i18nviews.views.inc b/drupal/sites/default/boinc/modules/contrib/i18nviews/includes/i18nviews.views.inc
new file mode 100644
index 0000000..e1728a4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/includes/i18nviews.views.inc
@@ -0,0 +1,47 @@
+<?php
+
+function i18nviews_views_data() {
+  $data['node']['content_negotiation'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Content negotiation'),
+    'help' => t('Removes the nodes that are not valid according to the content selection mode.'),
+    'filter' => array(
+      'handler' => 'content_negotiation_filter_handler',
+    ),
+  );
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers
+ */
+function i18nviews_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'i18nviews') . '/includes',
+    ),
+    'handlers' => array(
+      'content_negotiation_filter_handler' => array(
+        'parent' => 'views_handler_filter',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_plugins().
+ */
+function i18nviews_views_plugins() {
+  $path = drupal_get_path('module', 'i18nviews') . '/includes';
+  return array(
+    'module' => 'i18nviews',
+    'localization' => array(
+      'i18nstrings' => array(
+        'title' => t('Views translation module'),
+        'help' => t("Use the locale system as implemented by the Views translation module."),
+        'handler' => 'views_plugin_localization_i18nstrings',
+        'path' => $path,
+      ),
+    ),
+  );
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews-includes.de.po b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews-includes.de.po
new file mode 100644
index 0000000..b7b501a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews-includes.de.po
@@ -0,0 +1,30 @@
+# $Id: i18nviews-includes.de.po,v 1.1 2010/05/17 14:03:58 jareyero Exp $
+#
+# LANGUAGE translation of Drupal (i18nviews)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  i18nviews.module,v 1.4.2.3 2008/08/09 16:11:40 jareyero
+#  i18nviews/i18nviews.info: n/a
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation for i18nviews\n"
+"POT-Creation-Date: 2009-06-26 00:43+0200\n"
+"PO-Revision-Date: 2009-06-26 01:06+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+
+#: i18nviews/includes/i18nviews.views.inc:6
+msgid "Content negotiation"
+msgstr ""
+
+#: i18nviews/includes/i18nviews.views.inc:7
+msgid "Removes the nodes that are not valid according to the content selection mode"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews-includes.pot b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews-includes.pot
new file mode 100644
index 0000000..68b82d6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews-includes.pot
@@ -0,0 +1,27 @@
+# $Id: i18nviews-includes.pot,v 1.1 2010/05/17 14:03:58 jareyero Exp $
+#
+# LANGUAGE translation of Drupal (i18nviews-includes)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from file: i18nviews/includes/i18nviews.views.inc: n/a
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-26 01:08+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: i18nviews/includes/i18nviews.views.inc:6
+msgid "Content negotiation"
+msgstr ""
+
+#: i18nviews/includes/i18nviews.views.inc:7
+msgid "Removes the nodes that are not valid according to the content selection mode"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews.de.po b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews.de.po
new file mode 100644
index 0000000..03ee3bc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews.de.po
@@ -0,0 +1,43 @@
+# $Id: i18nviews.de.po,v 1.1 2010/05/17 14:03:58 jareyero Exp $
+#
+# LANGUAGE translation of Drupal (i18nviews)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  i18nviews.module,v 1.4.2.3 2008/08/09 16:11:40 jareyero
+#  i18nviews/i18nviews.info: n/a
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation for i18nviews\n"
+"POT-Creation-Date: 2009-06-26 00:43+0200\n"
+"PO-Revision-Date: 2009-06-26 01:06+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+
+#: i18nviews/i18nviews.module:19
+msgid "Supports translation for views strings: title, header, footer..."
+msgstr "Unterstützt die Übersetzung von Zeichenketten in Ansichten: Titel, Kopfbereich, Fußbereich..."
+
+#: i18nviews/i18nviews.module:31
+msgid "Views"
+msgstr "Ansichten"
+
+#: i18nviews/i18nviews.module:0
+msgid "i18nviews"
+msgstr "i18nviews"
+
+#: i18nviews/i18nviews.info:0
+#, fuzzy
+msgid "Views translation"
+msgstr "Ansichtenübersetzung"
+
+#: i18nviews/i18nviews.info:0
+msgid "Translation of views strings and content selection for views"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews.pot b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews.pot
new file mode 100644
index 0000000..ce1d31f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/i18nviews/translations/i18nviews.pot
@@ -0,0 +1,41 @@
+# $Id: i18nviews.pot,v 1.1 2010/05/17 14:03:58 jareyero Exp $
+#
+# LANGUAGE translation of Drupal (i18nviews)
+# Copyright YEAR NAME <EMAIL at ADDRESS>
+# Generated from files:
+#  i18nviews.module,v 1.4.2.14 2009/01/25 17:43:55 jareyero
+#  i18nviews.info,v 1.3.2.10 2009/05/18 09:29:24 jareyero
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-26 01:08+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: i18nviews/i18nviews.module:19
+msgid "Supports translation for views strings: title, header, footer..."
+msgstr ""
+
+#: i18nviews/i18nviews.module:31
+msgid "Views"
+msgstr ""
+
+#: i18nviews/i18nviews.module:0
+msgid "i18nviews"
+msgstr ""
+
+#: i18nviews/i18nviews.info:0
+msgid "Views translation"
+msgstr ""
+
+#: i18nviews/i18nviews.info:0
+msgid "Translation of views strings and content selection for views"
+msgstr ""
+
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/jump/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/README.txt b/drupal/sites/default/boinc/modules/contrib/jump/README.txt
new file mode 100644
index 0000000..4132446
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/README.txt
@@ -0,0 +1,63 @@
+*******************************************************
+    README.txt for jump.module for Drupal
+*******************************************************
+The jump module allows administrators to create a quick dropdown "Jump Menu"
+from any configured menu or vocabulary in the system.  The module provides a
+block for every top-level menu and every vocabulary.  Jump menu blocks are
+named "Jump menu: vocabulary name" and "Jump menu: menu name".
+
+In addition, administrators may continue to use the jump_quickly() API that
+was used in the Drupal 5.x version, with the exception being that menus are
+now referenced by name as opposed to id.
+
+To programmatically make a jump menu appear in a block whose input format is
+set to "PHP code" use one of:
+
+<?php
+  print jump_quickly(5, 'taxo');
+?>
+
+Where 5 is the vocabulary with vid 5.
+
+* OR *
+
+<?php
+  print jump_quickly('primary-links');
+?>
+
+Where 'primary-links' could be the name of any menu in the system.
+
+* OR *
+
+<?php
+  global $user;
+  $options = array(
+    'user/'. $user->uid => t('My User Account'),
+    'tracker/'. $user->uid => t('My Posts'),
+    'logout' => t('Log Out')
+  );
+  print jump_quickly($options);
+?>
+
+Where the keys to the $options array are menu paths and the values in the
+array are labels that appear in the drop-down.
+
+Starting with version 6.x-1.1 you can pass a 3rd parameter to jump_quickly()
+that specifies whether to base the default selection in the jump menu on the
+currently viewed page.  Examples for how to do this are:
+
+<?php
+  print jump_quickly('primary-links', 'menu', TRUE);
+  print jump_quickly('vocabulary name', 'taxo', TRUE);
+  print jump_quickly($options, 'custom', TRUE);
+?>
+
+Where $options in the last example is a $options array that's formatted
+the same way as the one given earlier in this document.  For jump module
+supplied blocks, there is a checkbox on the block configuration form that
+controls this setting on a per-block basis.  There's also a global setting
+at admin/settings/jump that is the fallback setting for blocks that don't
+have a preference set.
+
+Note: At this time there is no automatic upgrade code to convert 5.x
+API calls using id-based menus to the 6.x name-based menus.
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump.info b/drupal/sites/default/boinc/modules/contrib/jump/jump.info
new file mode 100644
index 0000000..b74aacf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump.info
@@ -0,0 +1,11 @@
+name = "Jump"
+description = "Turns a menu or taxonomy into a pick list"
+core = 6.x
+dependencies[] = ahah_helper
+
+; Information added by drupal.org packaging script on 2013-09-30
+version = "6.x-2.x-dev"
+core = "6.x"
+project = "jump"
+datestamp = "1393530079"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump.install b/drupal/sites/default/boinc/modules/contrib/jump/jump.install
new file mode 100644
index 0000000..61cc93c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump.install
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * Utility function to delete a set of variables set by a module.
+ *
+ * @global array $conf
+ * @param string $name
+ *   The variables' namespace for which to delete.
+ */
+function _jump_variable_del_all($name) {
+  global $conf;
+  db_query("DELETE FROM {variable} WHERE name LIKE '%s%%'", $name);
+  cache_clear_all('variables', 'cache');
+  unset($conf[$name]);
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function jump_uninstall() {
+  // normally we would delete all in one swoop like ...del_all('jump_') but I
+  // fear the possibility of deleting other modules' settings who may use the
+  // word jump at the beginning of their names.
+  _jump_variable_del_all('jump_activepageinmenu');
+  _jump_variable_del_all('jump_use_js_');
+  _jump_variable_del_all('jump_add_select_');
+  _jump_variable_del_all('jump_add_select_text_');
+}
+
+/**
+ * Implementation of hook_update_N().
+ *   Upgrade function for issue #344054 which fixes the deltas for jump menus
+ *   to make them more css friendly.
+ *
+ * @return array
+ */
+function jump_update_6012() {
+  $ret = array();
+  $result = db_query("SELECT * from {blocks} WHERE module='jump'");
+  if (!$result) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('Could not select from the blocks table.'));
+  }
+  else {
+    while ($block = db_fetch_object($result)) {
+      $fixed_delta = preg_replace('/:/', '-', $block->delta);
+      if ($fixed_delta != $block->delta) {
+        $ret[] = update_sql("UPDATE {blocks} SET delta='$fixed_delta' WHERE bid=$block->bid");
+      }
+    }
+  }
+
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump.js b/drupal/sites/default/boinc/modules/contrib/jump/jump.js
new file mode 100644
index 0000000..e69cc0d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump.js
@@ -0,0 +1,18 @@
+Drupal.behaviors.jumpJumpOnClick = function(context) {
+  // if js is running then hide the go button
+  $('form.jump-quickly.js-enabled input.form-submit').css('display', 'none');
+  // Match "<protocol>://".
+  var protocol_re = /^[a-z]+:\/\/.*/;
+  // We watch the whole select field here because ie and safari do not do
+  // well with binding click handlers on option elements.
+  $('form.jump-quickly.js-enabled select').change(function() {
+    // Don't jump if clicking on the title option, when enabled.
+    if ($(this).hasClass('first-no-jump') && $('option:selected:first-child', this).attr('value') == '') return false;
+    // Create destination,
+    //   if it is an absolute url use as is
+    //   else concatenate base path and value.
+    var dest = (protocol_re.test(dest)) ? $(this).attr('value') : Drupal.settings.basePath + $(this).attr('value');
+    window.location = dest;
+    return false;
+  });
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump.module b/drupal/sites/default/boinc/modules/contrib/jump/jump.module
new file mode 100644
index 0000000..805e2ae
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump.module
@@ -0,0 +1,380 @@
+<?php
+
+/**
+ * @file
+ * Provides an API for adding jump menus based on configured
+ * menus, vocabularies, or custom php code.
+ */
+
+/**
+ * Implementation of hook_menu().
+ *
+ * @return array
+ */
+function jump_menu() {
+  $items = array();
+  $items['admin/settings/jump'] = array(
+    'title' => 'Jump Settings',
+    'description' => 'Configure Jump module settings.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('jump_settings'),
+    'access callback' => 'user_access',
+    'access arguments' => array('administer menu'),
+  );
+  return $items;
+}
+
+/**
+ * Menu callback for 'admin/settings/jump'.
+ *
+ * @return string
+ */
+function jump_settings() {
+  $form['jump_activepageinmenu'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show active page in menu.'),
+    '#default_value' => variable_get('jump_activepageinmenu', 1),
+    '#description' => t('This setting will force the jump menu to show the current page as the default selection in the jump menu when checked.  If you have a menu option that you would always like displayed at the top of the menu, like <em>Select a menu item</em>, you will want to uncheck this. This setting controls this behavior for all jump menus sitewide.  You can override this setting on a block-by-block basis.'),
+  );
+  return system_settings_form($form);
+}
+
+/**
+ * Implementation of hook_block().
+ *
+ * @param string $op
+ * @param integer $delta
+ * @param array $edit
+ * @return array
+ */
+function jump_block($op = 'list', $delta = 0, $edit = array()) {
+  switch ($op) {
+    case 'list':
+      $blocks = array();
+      foreach (menu_get_menus() as $name => $title) {
+        $blocks['menu-' . $name] = array(
+          'info' => t('Jump menu: !menu', array('!menu' => $name))
+        );
+      }
+
+      $vocs = taxonomy_get_vocabularies();
+      foreach ($vocs as $vid => $vocabulary) {
+        $blocks['taxo-' . $vid] = array(
+          'info' => t('Jump menu: !voc', array('!voc' => $vocabulary->name))
+        );
+      }
+      return $blocks;
+    case 'configure':
+      $form = array();
+      $form['block_settings']['jump_activepageinmenu_' . $delta] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Show active page in jump menu.'),
+        '#default_value' => variable_get('jump_activepageinmenu_' . $delta, 1),
+        '#description' => t('This setting will force the jump menu to show the current page as the default selection in this block\'s jump menu.'),
+      );
+      // Do the rest of the form additions in hook_form_alter() since we can't do ahah here.
+      return $form;
+    case 'save':
+      variable_set('jump_activepageinmenu_' . $delta, $edit['jump_activepageinmenu_' . $delta]);
+      variable_set('jump_use_js_' . $delta, $edit['jump_use_js_' . $delta]);
+      variable_set('jump_add_select_' . $delta, $edit['jump_add_select_' . $delta]);
+      variable_set('jump_add_select_text_' . $delta, $edit['jump_add_select_text_' . $delta]);
+      break;
+    case 'view':
+      // The first 5 characters of $delta should be one of:
+      //    menu-
+      //    taxo-
+      $subject = '';
+      $jumpmenu_type = substr($delta, 0, 4);
+      $jumpmenu_name = substr($delta, 5);
+      $active = jump_get_active_setting($delta);
+      if ($jumpmenu_type == 'menu') {
+        $form = jump_quickly($jumpmenu_name, 'menu', $active);
+
+        // Use the menu label as the default block subject
+        $menus = menu_get_menus();
+        $subject = $menus[$jumpmenu_name];
+      }
+      else if ($jumpmenu_type == 'taxo') {
+        $form = jump_quickly($jumpmenu_name, 'taxo', $active);
+
+        // Use the vocabulary name as the default block subject
+        $vocab = taxonomy_vocabulary_load($jumpmenu_name);
+        $subject = $vocab->name;
+      }
+      if (variable_get('jump_use_js_' . $delta, 0) === 1) drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js');
+      return array('subject' => $subject, 'content' => $form);
+      break;
+  }
+}
+
+/**
+ * Get a quick-jump menu form that contains a dropdown and a go button.
+ *
+ * @staticvar integer $num_jump_forms
+ * @param string $name
+ *   If it's an array, then these are the options for the select box.  If it's
+ *   a scalar, then check the type to see what it means.
+ * @param string $type
+ *   If 'menu' then $name is the menu name from which the options will be
+ *   derived.  If 'taxo' then $name is the vocabulary id from which the terms
+ *   will be derived.  If 'custom' then $name should be an array that contains
+ *   the options.
+ * @param integer $active
+ * @return array
+ */
+function jump_quickly($name = 'navigation', $type = 'menu', $active = -1, $override = '') {
+  // Reconstruct the $delta
+  $delta = $type . '-' . $name;
+  if ($active === -1) {
+    $active = variable_get('jump_activepageinmenu', 1);
+  }
+  $menu_state = array(
+    'delta' => $delta,
+    'active' => $active,
+    'override' => $override
+  );
+
+  if (is_array($name)) {
+    $options = $name;
+  }
+  else {
+    $options = array();
+    if ($type == 'menu') {
+      jump_menu_get_menu_options($options, $name);
+    }
+    elseif ($type == 'taxo') {
+      jump_menu_get_taxo_options($options, $name);
+    }
+  }
+
+  // Give each form on the page a unique id so we can handle multiple
+  // jump forms...
+  static $num_jump_forms = 0;
+  $num_jump_forms++;
+
+  return drupal_get_form('jump_quickly_form_' . $num_jump_forms, $options, $menu_state);
+}
+
+/**
+ * Form constructor for the jump form.
+ *
+ * @param array $form_state
+ * @param array $options
+ * @param integer $active
+ * @return array
+ */
+function jump_quickly_form(&$form_state, $options, $menu_state) {
+  $default = '';
+  if ($menu_state['active'] === 1) {
+    if (isset($options[$_GET['q']])) {
+      $default = $_GET['q'];
+    }
+  }
+  if ($menu_state['override']) {
+    $default = $menu_state['override'];
+  }
+
+  $form = array();
+  $form['#submit'][] = 'jump_quickly_form_submit';
+  $form['#theme'] = 'jump_quickly_form';
+  $form['#attributes']['class'] = 'jump-quickly';
+  $form['jump_goto'] = array(
+    '#type' => 'select',
+    '#default_value' => $default,
+    '#options' => $options
+  );
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Go')
+  );
+  if (variable_get('jump_use_js_' . $menu_state['delta'], 0) === 1) {
+    // Give each menu a unique name.
+    $form['#attributes']['name'] = 'jumpquickly' . $menu_state['delta'];
+    $form['#attributes']['class'] .= ' js-enabled';
+//    unset($form['submit']);
+    if (variable_get('jump_add_select_' . $menu_state['delta'], 0) === 1) {
+      $form['jump_goto']['#attributes']['class'] = 'first-no-jump';
+      // Add the extra empty select option to the top of the array.
+      $form['jump_goto']['#options'] = array('' => variable_get('jump_add_select_text_' . $menu_state['delta'], t('Select Option'))) + $options;
+      $form['jump_goto']['#default_value'] = (array_key_exists($default, $options)) ? $default : '';
+    }
+  }
+
+  return $form;
+}
+
+/**
+ * Form submit callback for the jump form.
+ *
+ * @param array $form
+ * @param array $form_state
+ */
+function jump_quickly_form_submit($form, &$form_state) {
+  if (!empty($form_state['values']['jump_goto'])) {
+    $fragment = explode('#', $form_state['values']['jump_goto']);
+    if (isset($fragment[1])) {
+      drupal_goto($fragment[0], NULL, $fragment[1]);
+    }
+    else {
+      drupal_goto($form_state['values']['jump_goto']);
+    }
+  }
+}
+
+/**
+ * Theme function for jump form.
+ *
+ * @param array $form
+ * @return string
+ */
+function theme_jump_quickly_form($form) {
+  $output = '<div class="container-inline">';
+  $output .= drupal_render($form['jump_goto']);
+  $output .= drupal_render($form['submit']);
+  $output .= '</div>';
+  $output .= drupal_render($form);
+  return $output;
+}
+
+/**
+ * Utility function to retrieve an array of menu items for the jump menu.
+ *
+ * @param array $options
+ * @param string $name
+ */
+function jump_menu_get_menu_options(&$options, $name) {
+  $tree = menu_tree_page_data($name);
+  $front = variable_get('site_frontpage', 'node');
+  foreach ($tree as $data) {
+    if (!$data['link']['hidden']) {
+      $href = ($data['link']['href'] == '<front>') ? $front : $data['link']['href'];
+      $href = (isset($data['link']['options']['fragment'])) ? $href . '#' . $data['link']['options']['fragment'] : $href;
+      $options[$href] = $data['link']['title'];
+    }
+  }
+}
+
+/**
+ * Utility function to retrieve an array of taxonomy terms for the jump menu.
+ *
+ * @param array $options
+ * @param integer $vid
+ */
+function jump_menu_get_taxo_options(&$options, $vid) {
+  $tree = taxonomy_get_tree($vid);
+  foreach ($tree as $term) {
+    $options[taxonomy_term_path($term)] = $term->name;
+  }
+}
+
+/**
+ * Implementation of hook_forms().
+ *   Allows us to use the same callbacks for forms with different ids.
+ *
+ * @param string $form_id
+ * @return array
+ */
+function jump_forms($form_id) {
+  // Ensure we map a callback for our form and not something else
+  $forms = array();
+  if (strpos($form_id, 'jump_quickly_form') === 0) {
+    // Let the forms API know where to get the form data corresponding
+    // to this form id.
+    $forms[$form_id] = array('callback' => 'jump_quickly_form');
+  }
+  return $forms;
+}
+
+/**
+ * Implementation of hook_theme().
+ *
+ * @return array
+ */
+function jump_theme() {
+  return array(
+    'jump_quickly_form' => array(
+      'arguments' => array('form')
+    )
+  );
+}
+
+/**
+ * Implementation of hook_form_alter().
+ *   We add in all our ahah sensitive block settings here since they can't be
+ *   added via hook_block().
+ * @param array $form
+ * @param array $form_state
+ * @param string $form_id
+ */
+function jump_form_alter(&$form, $form_state, $form_id) {
+  switch ($form_id) {
+    case 'block_admin_configure':
+      if ($form['module']['#value'] === 'jump' && function_exists('ahah_helper_register')) {
+        $delta = $form['delta']['#value'];
+        ahah_helper_register($form, $form_state);
+        $default_jump_use_js = (!isset($form_state['storage']['jump_use_js_' . $delta])) ? variable_get('jump_use_js_' . $delta, 0) : $form_state['storage']['jump_use_js_' . $delta];
+        $default_jump_add_select = (!isset($form_state['storage']['jump_add_select_' . $delta])) ? variable_get('jump_add_select_' . $delta, 0) : $form_state['storage']['jump_add_select_' . $delta];
+
+        $form['block_settings']['jump_wrapper'] = array(
+          '#prefix' => '<div id="jump-wrapper">',
+          '#suffix' => '</div>',
+          '#type' => 'markup'
+        );
+        $form['block_settings']['jump_wrapper']['jump_use_js_' . $delta] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Hide the submit button and use Javascript to automatically jump to the selected menu item'),
+          '#default_value' => $default_jump_use_js,
+          '#disabled' => ($default_jump_add_select === 1) ? TRUE : FALSE,
+          '#ahah' => array(
+            'event' => 'change',
+            'path' => ahah_helper_path(array('block_settings', 'jump_wrapper')),
+            'wrapper' => 'jump-wrapper',
+          ),
+        );
+        if ($default_jump_use_js === 1) {
+          $form['block_settings']['jump_wrapper']['jump_add_select_' . $delta] = array(
+            '#type' => 'checkbox',
+            '#title' => t('Add an empty select option into the list of options'),
+            '#default_value' => $default_jump_add_select,
+            '#weight' => 1,
+            '#ahah' => array(
+              'event' => 'change',
+              'path' => ahah_helper_path(array('block_settings', 'jump_wrapper')),
+              'wrapper' => 'jump-wrapper',
+            ),
+          );
+          if ($default_jump_add_select === 1) {
+            $form['block_settings']['jump_wrapper']['jump_add_select_text_' . $delta] = array(
+              '#type' => 'textfield',
+              '#title' => t('Text to use for the empty select option'),
+              '#default_value' => variable_get('jump_add_select_text_' . $delta, t('Select Option')),
+              '#weight' => 2
+            );
+          }
+        }
+      }
+      break;
+  }
+}
+
+/**
+ * Utility function to retrieve the 'active' setting for a give block.
+ *
+ * @param string $delta
+ * @return integer
+ */
+function jump_get_active_setting($delta) {
+  $active_site_default = variable_get('jump_activepageinmenu', 1);
+  $active = variable_get('jump_activepageinmenu_' . $delta, $active_site_default);
+  return $active;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function jump_views_api() {
+  return array(
+    'api' => 2,
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump.test b/drupal/sites/default/boinc/modules/contrib/jump/jump.test
new file mode 100644
index 0000000..c667302
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump.test
@@ -0,0 +1,371 @@
+<?php
+
+/**
+ * @file
+ * Simpletest integration for the Jump module.
+ */
+
+/**
+ * Test basic Jump functionality.
+ */
+class JumpTestCase extends DrupalWebTestCase {
+  public static function getInfo() {
+    return array(
+     'name' => t('Jump functionality'),
+     'description' => t('Test Jump module functionality.'),
+     'group' => t('Jump'),
+    );
+  }
+
+  public function tearDown() {
+    parent::tearDown();
+  }
+
+  public function setUp() {
+    parent::setUp('jump', 'path', 'taxonomy', 'devel');
+
+    // Create a user to perform tests.
+    $this->web_user = $this->drupalCreateUser(array (
+      'administer blocks',
+      'administer menu',
+      'access content',
+      'administer nodes',
+      'create story content',
+      'administer taxonomy',
+      'create url aliases'
+    ));
+    $this->drupalLogin($this->web_user);
+
+    // Add a menu for jumping.
+    $this->menu_name = drupal_strtolower($this->randomName(8));
+    $this->menu_name = preg_replace('/simpletest_|[^a-z]/', '', $this->menu_name);
+    $title = $this->randomName(8);
+    $edit = array(
+      'menu_name' => $this->menu_name,
+      'title' => $title,
+      'description' => $this->randomName(8),
+    );
+    $this->drupalPost('admin/build/menu/add', $edit, 'Save');
+    $this->assertRaw($title, "New menu page title.");
+
+    // Enable the jump menu block.
+    $this->drupalGet('admin/build/block');
+    $this->assertText('Jump menu: menu-'. $this->menu_name, 
+      t('Jump menu: menu-'. $this->menu_name .' exists.'));
+
+    // This assumes that the theme being used has a right section.
+    $edit = array(
+      'jump_menu-menu-'. $this->menu_name .'[region]' => 'right',
+    );
+    $this->drupalPost('admin/build/block', $edit, 'Save blocks');
+
+    // Add a second menu for jumping.
+    $this->menu_name2 = drupal_strtolower($this->randomName(8));
+    $this->menu_name2 = preg_replace('/simpletest_|[^a-z]/', '', $this->menu_name2);
+    $title = $this->randomName(8);
+    $edit = array(
+      'menu_name' => $this->menu_name2,
+      'title' => $title,
+      'description' => $this->randomName(8),
+    );
+    $this->drupalPost('admin/build/menu/add', $edit, 'Save');
+    $this->assertRaw($title, "New menu page title.");
+
+    // Enable the jump menu block.
+    $this->drupalGet('admin/build/block');
+    $this->assertText('Jump menu: menu-'. $this->menu_name2, 
+      t('Jump menu: menu-'. $this->menu_name2 .' exists.'));
+
+    // This assumes that the theme being used has a right section.
+    $edit = array(
+      'jump_menu-menu-'. $this->menu_name2 .'[region]' => 'right',
+    );
+    $this->drupalPost('admin/build/block', $edit, 'Save blocks');
+  }
+
+  /**
+   * Test to make sure basic Jump menu functionality works for nodes.
+   */
+  public function testJumpNode() {
+    // Add a node.
+    $settings = array('type' => 'story');
+    $node = $this->drupalCreateNode($settings);
+
+    // Add the node to the menu.
+    $edit = array(
+      'menu[link_path]' => 'node/'. $node->nid,
+      'menu[link_title]' => $node->title,
+    );
+    $this->drupalPost(
+      '/admin/build/menu-customize/menu-'. $this->menu_name .'/add',
+      $edit, 'Save'
+    );
+    $this->assertRaw($node->title, 'Test story added to menu');
+
+    // Jump to it.
+    $jump_edit = array(
+      'jump_goto' => $edit['menu[link_path]'],
+    );
+    $this->drupalPost('', $jump_edit, 'Go');
+    //$this->outputScreenContents('Test jump click.', 'testJumpNode');
+
+    // Verify jump.
+    $this->assertText($node->body, t('Verified basic jump.'));
+    $this->assertPattern('/class="jump-quickly".*<select.*<option value="node\/'. $node->nid .'" selected="selected"/s', t('Verified that the node we jumped to is selected in the jump form.'));
+  }
+
+  /**
+   * Test to make sure that a jump without jump_activepageinmenu does not
+   * include the active page as selected in the jump menu.
+   */
+  public function testJumpNotActivePageInMenu() {
+    // Unset jump_activepageinmenu.
+    variable_set('jump_activepageinmenu', 0);
+
+    // Add a node.
+    $settings = array('type' => 'story');
+    $node = $this->drupalCreateNode($settings);
+
+    // Add the node to the menu.
+    $edit = array(
+      'menu[link_path]' => 'node/'. $node->nid,
+      'menu[link_title]' => $node->title,
+    );
+    $this->drupalPost(
+      '/admin/build/menu-customize/menu-'. $this->menu_name .'/add',
+      $edit, 'Save'
+    );
+    $this->assertRaw($node->title, 'Test story added to menu');
+
+    // Jump to it.
+    $jump_edit = array(
+      'jump_goto' => $edit['menu[link_path]'],
+    );
+    $this->drupalPost('', $jump_edit, 'Go');
+
+    // Verify jump.
+    $this->assertText($node->body, t('Verified basic jump.'));
+
+    // This should match all of the jump_got select lists on a page.  We want
+    // to check that none of them are "selected".
+    $re = '/<select[^>]*name="jump_goto"[^>]*>(?:<option[^>]*>[^<]*<\/option>)*<\/select>/s';
+    preg_match($re, $this->drupalGetContent(), $matches);
+    $fail = 0;
+    foreach ($matches as $select) {
+      if (preg_match('/selected="selected"/',$select)) {
+        $fail=1;
+        break;
+      }
+    }
+    $this->assertTrue(!$fail, t('A jump option is not selected when jump_activepageinmenu is enabled.'));
+
+    // Unset jump_activepageinmenu.
+    variable_set('jump_activepageinmenu', 1);
+  }
+
+  /**
+   * Test to make sure that a jump with jump_activepageinmenu set, but with
+   * jump_activepageinmenu-menu-<delta1> unset that menu-<delta1> will not
+   * have the activepage in menu set, but menu-<delta2> will.
+   */
+  public function testJumpBlockNotActivePageInBlockOverride() {
+    // Set the sitewide jump_activepageinmenu.
+    variable_set('jump_activepageinmenu', 1);
+
+    // Now unset the jump_activepageinmenu-menu-<delta1> setting.
+    variable_set('jump_activepageinmenu_menu-menu-'. $this->menu_name2, 0);
+
+    // Add a node.
+    $settings = array('type' => 'story');
+    $node = $this->drupalCreateNode($settings);
+
+    // Add the node to menu1.
+    $edit = array(
+      'menu[link_path]' => 'node/'. $node->nid,
+      'menu[link_title]' => $node->title,
+    );
+    $this->drupalPost(
+      '/admin/build/menu-customize/menu-'. $this->menu_name .'/add',
+      $edit, 'Save'
+    );
+    $this->assertRaw($node->title, 'Test story added to menu');
+
+    // Add the same node to menu2.
+    $edit = array(
+      'menu[link_path]' => 'node/'. $node->nid,
+      'menu[link_title]' => $node->title,
+    );
+    $this->drupalPost(
+      '/admin/build/menu-customize/menu-'. $this->menu_name2 .'/add',
+      $edit, 'Save'
+    );
+    $this->assertRaw($node->title, 'Test story added to menu');
+
+    // Jump to it.
+    $jump_edit = array(
+      'jump_goto' => $edit['menu[link_path]'],
+    );
+    $this->drupalPost('', $jump_edit, 'Go');
+
+    // Verify jump.
+    $this->assertText($node->body, t('Verified basic jump.'));
+
+    // This should match the two jump_goto select lists on the page.  We want
+    // to check that only one of them are "selected".
+    $re = '/<select[^>]*name="jump_goto"[^>]*>(?:<option[^>]*>[^<]*<\/option>)*<\/select>/';
+    preg_match_all($re, $this->drupalGetContent(), $matches);
+    $fail = 0;
+    foreach ($matches[0] as $select) {
+      if (preg_match('/selected="selected"/',$select)) {
+        $fail++;
+      }
+    }
+    $this->assertTrue(!($fail==2), t('The per block active menu override is working.'));
+
+  }
+
+  /**
+   * Test to make sure basic Jump menu functionality works for taxonomy terms.
+   */
+  public function testJumpTaxonomyTerm() {
+    // Add a vocbulary.
+    $vName = $this->randomName(8);
+    $edit = array(
+      'name' => $vName
+    );
+    $this->drupalPost(
+      'admin/content/taxonomy/add/vocabulary',
+      $edit, 'Save'
+    );
+    $vocabularies = taxonomy_get_vocabularies();
+    $vocabulary = new stdClass();
+    foreach ($vocabularies as $vocabulary) {
+      if ($vocabulary->name == $vName) {
+        break;
+      }
+    }
+    if (empty($vocabulary->vid)) {
+      $this->fail('Unable to verify the creation of a vocabulary for testing jump by taxonomy term.');
+      return;
+    }
+
+    // Add a term.
+    $tName = $this->randomName(8);
+    $edit = array(
+      'name' => $tName
+    );
+    $this->drupalPost(
+      'admin/content/taxonomy/'. $vocabulary->vid .'/add/term',
+      $edit, 'Save'
+    );
+    $terms = taxonomy_get_term_by_name($tName);
+    $term = new stdClass();
+    foreach ($terms as $term) {
+      if ($term->name == $tName) {
+        break;
+      }
+    }
+    if (empty($term->tid)) {
+      $this->fail('Unable to verify the creation of a vocabulary term for testing jump by taxonomy term: ', print_r($term) .'.');
+      return;
+    }
+
+    // Add the term to the menu.
+    $edit = array(
+      'menu[link_path]' => 'taxonomy/term/'. $term->tid,
+      'menu[link_title]' => $tName,
+    );
+    $this->drupalPost(
+      'admin/build/menu-customize/menu-'. $this->menu_name .'/add',
+      $edit, 'Save'
+    );
+    $this->assertRaw($term->name, 'Taxonomy term added to menu');
+
+    // Jump to the term.
+    $jump_edit = array(
+      'jump_goto' => $edit['menu[link_path]'],
+    );
+    $this->drupalPost('', $jump_edit, 'Go');
+
+    // Verify jump.
+    $this->assertText('There are currently no posts in this category.', 
+      t('Verified taxonomy term jump.'));
+    $this->assertPattern('/class="jump-quickly".*<select.*<option value="taxonomy\/term\/'. $term->tid .'" selected="selected"/s', 
+      t('Verified that the taxonomy term we jumped to is selected in the jump form.'));
+  }
+
+  public function testJumpNodePathAuto() {
+    // Add a node with a path.
+    $path = $this->randomName(8) .'/'. $this->randomName(8);
+    $settings = array(
+      'type' => 'story',
+      'path' => $path
+    );
+    $node = $this->drupalCreateNode($settings);
+
+    // Add the node to the menu with the node/<nid> path first.
+    $edit = array(
+      'menu[link_path]' => 'node/'. $node->nid,
+      'menu[link_title]' => $node->title,
+    );
+    $this->drupalPost(
+      '/admin/build/menu-customize/menu-'. $this->menu_name .'/add',
+      $edit, 'Save'
+    );
+    $this->assertRaw($node->title, 'Test story added to menu');
+
+    // Jump to it.
+    $jump_edit = array(
+      'jump_goto' => $edit['menu[link_path]'],
+    );
+    $this->drupalPost('', $jump_edit, 'Go');
+
+    // Verify jump.
+    $this->assertText($node->body, t('Verified basic jump.'));
+    $this->assertPattern('/class="jump-quickly".*<select.*<option value="node\/'. $node->nid .'" selected="selected"/s', t('Verified that the node we jumped to is selected in the jump form.'));
+
+    // Add a node with a path.
+    $path = $this->randomName(8) .'/'. $this->randomName(8);
+    $settings = array(
+      'type' => 'story',
+      'path' => $path
+    );
+    $node = $this->drupalCreateNode($settings);
+
+    // Add the node to the menu with the node/<nid> path.
+    $edit = array(
+      'menu[link_path]' => $path,
+      'menu[link_title]' => $node->title,
+    );
+    $this->drupalPost(
+      '/admin/build/menu-customize/menu-'. $this->menu_name .'/add',
+      $edit, 'Save'
+    );
+    $this->assertRaw($node->title, 'Test story added to menu');
+
+    // Jump to it. Even though we add the custom $path instead of the 
+    // node/<nid> path, drupal will output the select options with the
+    // node/<nid> value.  We don't care so long as we can jump to it.
+    $jump_edit = array(
+      //'jump_goto' => $edit['menu[link_path]'],
+      'jump_goto' => 'node/'. $node->nid
+    );
+    $this->drupalPost('', $jump_edit, 'Go');
+    //$this->outputScreenContents('Clicked on Auto Path.', 'testJumpNodePathAuto');
+
+    // Verify jump.
+    $this->assertText($node->body, t('Verified basic jump.'));
+    $this->assertPattern('/class="jump-quickly".*<select.*<option value="node\/'. $node->nid .'" selected="selected"/s', t('Verified that the node we jumped to is selected in the jump form.'));
+  }
+
+  private function outputScreenContents($description, $basename) {
+    // This is a hack to get a directory that won't be cleaned up by simpletest
+    $file_dir = file_directory_path().'/../simpletest_output_pages';
+    if (!is_dir($file_dir)) {
+      mkdir($file_dir, 0777, TRUE);
+    }
+    $output_path = "$file_dir/$basename." . $this->randomName(10) . '.html';
+    $rv = file_put_contents($output_path, $this->drupalGetContent());
+    $this->pass("$description: Contents of result page are ".l('here',$output_path));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump.views.inc b/drupal/sites/default/boinc/modules/contrib/jump/jump.views.inc
new file mode 100644
index 0000000..1d1e68c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump.views.inc
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * @file
+ * Provides views integration.
+ */
+
+/**
+ * Implementation of hook_views_plugins().
+ */
+function jump_views_plugins() {
+  return array(
+    'style' => array(
+      'jump_views' => array(
+        'title' => t('Jump menu'),
+        'theme' => 'jump_views_plugin_style',
+        'help' => t('Displays items as a select list jump menu.'),
+        'handler' => 'jump_views_plugin_style',
+        'uses row plugin' => TRUE,
+        'uses fields' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'normal',
+      ),
+    ),
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump.views_default.inc b/drupal/sites/default/boinc/modules/contrib/jump/jump.views_default.inc
new file mode 100644
index 0000000..f934474
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump.views_default.inc
@@ -0,0 +1,123 @@
+<?php
+
+/**
+ * @file
+ * Provides the default views for the jump module.
+ */
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function jump_views_default_views() {
+  $view = new view;
+  $view->name = 'recent_nodes_jump_menu';
+  $view->description = 'Recent nodes in a jump menu.';
+  $view->tag = '';
+  $view->view_php = '';
+  $view->base_table = 'node';
+  $view->is_cacheable = FALSE;
+  $view->api_version = 2;
+  $view->disabled = TRUE;
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'nid' => array(
+      'label' => 'Nid',
+      'alter' => array(
+        'alter_text' => 1,
+        'text' => 'node/[nid]',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'strip_tags' => 0,
+        'html' => 0,
+      ),
+      'link_to_node' => 0,
+      'exclude' => 1,
+      'id' => 'nid',
+      'table' => 'node',
+      'field' => 'nid',
+      'relationship' => 'none',
+    ),
+    'title' => array(
+      'label' => '',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'strip_tags' => 0,
+        'html' => 0,
+      ),
+      'link_to_node' => 0,
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'changed' => array(
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'id' => 'changed',
+      'table' => 'node',
+      'field' => 'changed',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status_extra' => array(
+      'operator' => '=',
+      'value' => '',
+      'group' => '0',
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'id' => 'status_extra',
+      'table' => 'node',
+      'field' => 'status_extra',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('style_plugin', 'jump_views');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'keys' => array(
+      'nid' => 'nid',
+      'title' => 0,
+    ),
+    'first_item' => 'Recent nodes',
+  ));
+  $handler = $view->new_display('block', 'Block', 'block_1');
+  $handler->override_option('block_description', '');
+  $handler->override_option('block_caching', -1);
+
+  $views[$view->name] = $view;
+  return $views;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/jump/jump_views_plugin_style.inc b/drupal/sites/default/boinc/modules/contrib/jump/jump_views_plugin_style.inc
new file mode 100644
index 0000000..cfd7ee1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/jump/jump_views_plugin_style.inc
@@ -0,0 +1,136 @@
+<?php
+
+/**
+ * @file
+ * Defines the jump style plugin.
+ */
+
+class jump_views_plugin_style extends views_plugin_style {
+
+  function render() {
+    // Build an array of field / field_alias pairs.
+    $this->field_map = array();
+    foreach ($this->view->field as $field_name => $object) {
+      $this-> field_map[$object->field_alias] = $field_name;
+    }
+
+    // $keys contains the fields used to build up the path.
+    $keys = array_filter($this->options['keys']);
+
+    // Start building the actual $select options array to pass to our form
+    // callback.
+    $select = array();
+    if (!empty($this->options['first_item'])) {
+      $select[0] = $this->options['first_item'];
+    }
+
+    foreach ($this->view->result as $row) {
+      $select_key = array();
+      // For each field in the row, we first check if it's to be used
+      // as part of the select key, then run views token replacement
+      // on it. This allows for paths like node/n/revisions/6 to be built
+      // easily.
+      foreach ($row as $field => $value) {
+        if (in_array($this->field_map[$field], $keys)) {
+          $field_object = $this->view->field[$this->field_map[$field]];
+          // Re-implementing some of the code from views_handler_field.inc
+          // since we need to operate on $result, and to avoid using
+          // a row style or templates.
+          if (!empty($field_object->options['alter']['alter_text']) && !empty($field_object->options['alter']['text'])) {
+            $tokens = $this->get_render_tokens($this->field_map[$field], $row);
+            $value = $field_object->render_altered($tokens);
+          }
+          $select_key[] = $value;
+        }
+      }
+      // For the value of the select, just use the output of the row, but strip
+      // all markup first.
+      $select_key = implode('/', $select_key);
+      $raw_select_value = $this->row_plugin->render($row);
+      $select_value = trim(html_entity_decode(strip_tags($raw_select_value), ENT_QUOTES));
+      $select[$select_key] = $select_value;
+    }
+
+    return jump_quickly($select);
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['keys'] = array('default' => array());
+    $options['first_item'] = array('default' => '');
+    return $options;
+  }
+
+  function options_form(&$form, $form_state) {
+    parent::options_form($form, $form_state);
+    $handlers = $this->display->handler->get_handlers('field');
+    if (empty($handlers)) {
+      $form['error_markup'] = array(
+        '#value' => t('You need at least one field before you can configure your jump menu settings'),
+        '#prefix' => '<div class="error form-item description">',
+        '#suffix' => '</div>',
+      );
+      return;
+    }
+    // Create an array of fields from the data we know.
+    foreach ($handlers as $field => $handler) {
+      if ($label = $handler->label()) {
+        $field_names[$field] = $label;
+      }
+      else {
+        $field_names[$field] = $handler->ui_name();
+      }
+    }
+    $form['keys'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Select keys'),
+      '#default_value' => $this->options['keys'],
+      '#description' => t("These fields will be used to build the path for each row, used as the 'key' in the select options, and will be automatically separated by '/'"),
+      '#options' => $field_names,
+    );
+    $form['first_item'] = array(
+      '#type' => 'textfield',
+      '#title' => 'First item',
+      '#default_value' => $this->options['first_item'],
+      '#description' => t('This will be used as the first item in your select list, for example <em>Choose one</em>'),
+    );
+  }
+
+  /**
+   * Get the 'render' tokens to use for advanced rendering.
+   *
+   * This runs through all of the fields and arguments that
+   * are available and gets their values. This will then be
+   * used in one giant str_replace().
+   * Slightly modified from views_handler_field.inc
+   */
+  function get_render_tokens($field_name, $row) {
+    $tokens = array();
+    if (!empty($this->view->build_info['substitutions'])) {
+      $tokens = $this->view->build_info['substitutions'];
+    }
+
+    $count = 0;
+    foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
+      $token = '%'. ++$count;
+      if (!isset($tokens[$token])) {
+        $tokens[$token] = '';
+      }
+    }
+
+    // Now add replacements for our fields.
+    $options = array();
+    $map = array_flip($this->field_map);
+    foreach ($this->view->display_handler->get_handlers('field') as $field => $handler) {
+      $map = array_flip($this->field_map);
+      if (isset($row->$map[$field])) {
+        $tokens["[$field]"] = $row->$map[$field];
+      }
+      else {
+        $tokens["[$field]"] = '';
+      }
+    }
+
+    return $tokens;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/README.txt b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/README.txt
new file mode 100644
index 0000000..8f8c779
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/README.txt
@@ -0,0 +1,42 @@
+INTRODUCTION
+------------
+
+Mobile Menu Toggle
+
+This module creates a block with a "Menu" link within it. When clicked
+that link initiates a jQuery slideToggle effect to show or hide a user
+selected menu.
+
+Created By:
+ * Kevin Basarab (@kBasarab)
+ * Kendall Totten (@starryeyez024)
+
+Modified for BOINC-Drupal by:
+ * Shawn Kwang 
+
+INSTALLATION
+------------
+
+This module should be included in the BOINC-Drupal project, and should
+be automatically downloaded along with the other BOINC-Drupal modules.
+
+Enable this module using the Administration pages: Administer > Site
+Building > Modules.
+
+Or use drush
+ * 'drush en mobile_menu_toggle'
+
+REQUIREMENTS
+------------
+
+This module requires the following module:
+
+* DHTML Menu (https://www.drupal.org/project/dhtml_menu), version 6.x-4.x
+
+CONFIGURATION
+-------------
+
+Configure module at: /admin/config/user-interface/mobile-menu-toggle
+
+Insert "Mobile Menu Toggle" block in site where "menu" link should
+appear. Use a CSS selector to choose which element will be toggled.
diff --git a/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.admin.inc b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.admin.inc
new file mode 100644
index 0000000..5472387
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.admin.inc
@@ -0,0 +1,36 @@
+<?php
+/**
+ * @file
+ * Administration pages for mobile menu toggle module.
+ */
+
+/**
+ * System settings form page callback.
+ */
+function mobile_menu_toggle_form() {
+  $form = array();
+
+  $form['mobile_menu_menu'] = array(
+    '#title' => t('Menu selection'),
+    '#description' => t('Which menu should the toggle open?'),
+    '#type' => 'select',
+    '#options' => menu_get_menus(),
+    '#default_value' => variable_get('mobile_menu_menu', 'main-menu'),
+  );
+
+  $form['mobile_menu_block'] = array(
+    '#title' => t('Menu loaded in block?'),
+    '#description' => t('Will this menu be loaded via a block? Check this box if you are loading your menu on the page via context or blocks.'),
+    '#type' => 'checkbox',
+    '#default_value' => variable_get('mobile_menu_block', FALSE),
+  );
+
+  $form['mobile_menu_css'] = array(
+    '#title' => t('(optional) CSS Selector'),
+    '#description' => t('Enter an optional CSS selector. If this option is used the menu selected above will be ignored'),
+    '#type' => 'textfield',
+    '#default_value' => variable_get('mobile_menu_css', ''),
+  );
+
+  return system_settings_form($form);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.info b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.info
new file mode 100644
index 0000000..f01f44f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.info
@@ -0,0 +1,5 @@
+name = Mobile Menu Toggle
+description = Uses jQuery slideToggle() to hide/show menu zone.
+dependencies[] = dhtml_menu
+
+core = 6.x
diff --git a/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.js b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.js
new file mode 100644
index 0000000..a0d6d1a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.js
@@ -0,0 +1,15 @@
+Drupal.behaviors.mobile_menu_toggle = function (context) {
+  $("#mobile-menu-toggle", context).click(function (e, context) {
+    if (typeof(Drupal.settings.mobile_menu_toggle) == 'undefined') {
+      return false;
+    }
+    $(Drupal.settings.mobile_menu_toggle.css_class).slideToggle('fast');
+    if ($(this).hasClass('mobile-menu-toggle-open')) {
+      $(this).removeClass('mobile-menu-toggle-open');
+    }
+    else {
+      $(this).addClass('mobile-menu-toggle-open');
+    }
+    e.preventDefault();
+  });
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.module b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.module
new file mode 100644
index 0000000..c33d9ff
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.module
@@ -0,0 +1,76 @@
+<?php
+/**
+ * @file
+ *  Adds mobile menu toggle to Drupal sites.
+ */
+
+/**
+ * Implements hook_menu().
+ */
+function mobile_menu_toggle_menu() {
+  $items = array();
+
+  $items['admin/settings/mobile-menu-toggle'] = array(
+    'title' => 'Mobile Menu Toggle',
+    'description' => t('Select menu and zones for mobile menu toggle'),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('mobile_menu_toggle_form'),
+    'access arguments' => array('administer menu'),
+    'file' => 'mobile_menu_toggle.admin.inc',
+  );
+
+  return $items;
+}
+
+/**
+ * Implements hook_init().
+ */
+function mobile_menu_toggle_init() {
+  // Set JS settings based on menu selected.
+  $menu_default = check_plain(variable_get('mobile_menu_menu', 'main-menu'));
+  $css_class = check_plain(variable_get('mobile_menu_css', ''));
+  $menu_block = variable_get('mobile_menu_block', FALSE);
+  $js_settings['mobile_menu_toggle'] = array(
+    'default_menu' => $menu_default,
+    'css_class' => '#' . $menu_default,
+  );
+
+  // Add #block-menu as a prefix to class if the menu will be loaded via block.
+  if ($menu_block) {
+    $js_settings['mobile_menu_toggle']['css_class'] = '#block-menu-' . $menu_default;
+  }
+
+  if (!empty($css_class)) {
+    $js_settings['mobile_menu_toggle']['css_class'] = $css_class;
+  }
+  drupal_add_js($js_settings, 'setting');
+
+}
+
+function mobile_menu_toggle_block($op = 'list', $delta = 0, $edit = array()) {
+  if ($op == 'list') {
+    $blocks[0]['info'] = t('Mobile Menu Toggle');
+    return $blocks;
+  }
+  elseif ($op == 'view') {
+    $block = array();
+    switch ($delta) {
+      case 0:
+        drupal_add_js(drupal_get_path('module', 'mobile_menu_toggle') . '/mobile_menu_toggle.js');
+        $block['content'] = theme('mobile_menu_toggle');
+        break;
+    }
+    return $block;
+  }
+}
+
+/**
+ * Implements hook_theme().
+ */
+function mobile_menu_toggle_theme($existing, $type, $theme, $path) {
+  return array(
+    'mobile_menu_toggle' => array(
+      'template' => 'mobile_menu_toggle',
+    ),
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.tpl.php b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.tpl.php
new file mode 100644
index 0000000..d382bd3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/mobile_menu_toggle/mobile_menu_toggle.tpl.php
@@ -0,0 +1 @@
+<a id="mobile-menu-toggle" href="javascript:;">Menu</a>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/CHANGELOG.txt b/drupal/sites/default/boinc/modules/contrib/panels/CHANGELOG.txt
new file mode 100644
index 0000000..6499d21
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/CHANGELOG.txt
@@ -0,0 +1,244 @@
+Panels 3.x-dev
+==============
+#1025716: Panels fields broken in last update.
+
+Panels 3.x-3.9 (2011-Jan-12)
+==============
+#959206: Legacy mode rendering fails with flexible due to CSS file not getting added.
+#964334: Panels breaks views' row styles with the panels fields style.
+#961662 by Nick Lewis: Account for pager info in simple caching.
+Scrub css id and css class on panes.
+
+Panels 6.x-3.8 (2010-Oct-29)
+==============
+hook_panels_pre_render() and hook_panels_post_render() getting empty displays.
+#865704: Editing mini panels styles failed badly due to missing piece of cache.
+Custom style could crash if trying to enable style reuse without first enabling stylizer.module.
+In Flexible, the "class" would not stick when adding a new region/row/column but would when editing.
+#861426: Editing a mini panel while that same mini panel is displayed on the page resulted in a crash.
+#871730: Panel nodes with IPE enabled let anyone use IPE.
+#877810: Multiple "Add flexible layout" tabs appearing based on number of flexible layouts stored.
+#873224 by thsutton: hook_requirements() could cause notice error.
+#867340 by cedarm: Restore removed but deprecated panels_render_layout() function.
+#871942 by dwatson: Invalid CSS made dragger image not appear during IPE.
+#867864: Fix a admin title and edit link problems with custom content types.
+#570194: Add support for the "checkall" module in the content permissions page.
+#696846: Mini panels conflated displayed title with admin title.
+#889824: Custom class could would cause stylizer class to become malformed.
+Add a simple "Panels" row style to Views that lets you put fields in a panel layout.
+Add two new Page Wizards to more easily create some of the most commonly used Panel pages.
+#869766 by rupl: flexible layout builder could fail with multiple columns in only one row. (Needs clear cache to see changes in generated CSS.)
+#897214: Mini panel uninstall tried to order mini panels by a non-existing field.
+#893456 by omerida: Change FAPI definition of panel node "body" field to be more consistent with other node body fields.
+#812658 by naxoc: Caching should take language into account.
+#890086: Possible crash in flexible layout by not having CTools export.inc loaded.
+#899456 by yareckon: IPE customize button needs to be reset to "static" instead of "normal".
+#806874 by ximo: Allow panes to specify "render first" as well as "render last".
+#920266 by dereine: Typo in cache.inc caused wsods in rare circumstances.
+#879482 by mvc: Ensure Panels and CTools module files are loaded during update. Apparently could cause WSOD if not.
+#917614 by jskulski: IPE broken in IE.
+#906520: Improve CSS for rounded shadow boxes on IE7.
+#923894 by yareckon: IPE save/cancel buttons can fail due to translation issues.
+#932632 by mikeytown2: Fix notice in .install file.
+#927840: Add clear-block to dashboard HTML to ensure themes do not do weird things to it.
+#941806: Fix incorrect link to configure mini panel on block config page.
+#869766: Fix occasional problem with flexible layout pushing the entire layout to the left in certain fixed-width only configurations.
+#949310: E_STRICT violation on declaration of render_pane() method of display renderers.
+#827628: "Add content" dialog could lose content with the same title as other content.
+#955102: Fix notice in panel nodes when legacy rendering is not on.
+
+Panels 6.x-3.7 (2010-Jul-26)
+==============
+Experimentally introduced the In-Place Editor (IPE).
+Updated Panels Stylizer to use CTools' new Export UI.
+Deprecated panels_get_panels() function. This will be eventually disappear. Use panels_get_regions() instead.
+#834084: Reusable flexible layout introduced. Admin UI at admin/build/panels/layouts.
+Clean up flexible. Attempt to reduce the use of unnecessary divs. 
+Add more ability to control flexible classes.
+Add ability to fix flexible canvas to a set width.
+Allow disabling of scaling for IE6 in flexible.
+Fixes to IPE:
+  Add pane would add the new pane outside region styling
+  Add pane would not appear in empty regions
+  Panes could not be dragged to empty regions
+  Save would lose content if they were inside stylizer styled regions
+#822234 by Amitaibu: Missing url() caused IPE to not work on sites not using top level URLs.
+#844062: Turned the normal drag and drop editor into a renderer plugin, made the IPE part of it. Also some fairly serious code reorganization.
+Improve the renderer selection framework. This framework has no UI, but it utilizes exportables and new choices can be hand crafted.
+Improve the IPE to use the proper cache if it is set, and to respect locking.
+#847784: IPE displayed "Edit" link when no such link should have existed.
+#843758: Legacy renderer caused "missing argument" warning when rendering.
+Made it possible to override jQuery UI sortable options via settings in the renderer plugin.
+Moved Panels stylizer to CTools. You must update CTools at the same time as Panels.
+#737602: Generic NOT checkbox for all access tests.
+#369628: Sort results by export key when bulk exporting.
+#690902: Improvement to export.module integration of panel nodes.
+#690814 by neclimdul: Panels mini edit form could overwrite page title.
+#675220 by dereine: Provide a watchdog message if a layout can't be loaded when rendering a panel.
+#713526 by psynaptic: Omit top and bottom region divs in stacked layouts if regions are empty.
+#823216 by jonathan1055: Put quotes around url() in rounded corners CSS.
+#603150 by hefox: Protect against the panels node add form being used in unusual places.
+#841824 by levacjeep: Extend panels_edit and panels_edit_layout to allow more options with the $destination.
+#842976 by drewish: Make sure the theme knows path and file information for plugin supplied themes.
+#743850 by foripepe: Add delete panel node permissions.
+#532900: Flexible sometimes did not update links when region settings changed.
+#723036: Node pane previews did not include node content as they should.
+#831216: It should not be possible to remove the Canvas.
+#216076: Make sure that empty panes are not rendered. Note: Legacy mode region styles can still render empty panes anyway.
+#609626: Static caching loading mini panels.
+#848712 by josh_k: Use panel nodes with IPE.
+#860306 by jcmarco: "Substitutions" fieldset would not open due to missing js.
+#856964: "Custom style" selection was not working.
+#863302: Allow IPE to cope with empty panes.
+#865344: by jrockowitz: Panel node access hook should use $account.
+
+Panels 6.x-3.5 (2010-May-28)
+==============
+Replaced panels_load_include() with ctools_include().
+Restored (and deprecated) panels_print_layout(), as other modules were relying on it.
+
+Panels 6.x-3.4 (2010-May-19)
+==============
+Introduced Panels Stylizer.
+Removed superfluous function, panels_sanitize_display().
+#655268: Fix a problem retrieving cached content created by #634746.
+Removed the old and crufty panels_print_layout().
+#745808 by Robbert: use number_format() in flexible width calculations to ensure locale settings cannot bork generated CSS.
+Stopped wasting cycles trying to render a mini panel in a block when we know the mini panel doesn't exist.
+#765978 by joshk: Added watchdoggery and a hook to panels_display_save().
+#746568 by mgriego: Disable block caching for mini panels.
+#798954 by dixon: Pass $form_state to style plugins' validate and submit callbacks.
+#779012 by c960657: implement the callback for a single content_type subtype in panels_mini to improve performance with  large numbers of mini panels.
+#763584 by neclimdul: Add a link to the block configuration page for mini-panels that takes the user to edit that mini- panel.
+Security updates: protect the importer with the 'use PHP for block visibility' permission.
+
+Panels 6.x-3.3 (2010-Feb-01)
+==============
+
+#612850: Fix crash bug with panes referencing deleted/missing views.
+#614178: Transition to panels-pane.tpl.php caused empty panes to display again.
+#634746 by joshk: Allow pane caching to modify the content during cache storage.
+#612116 by johnskulski: panels-pane preprocess was incorrectly rendering $links
+#612704 by c960657: panels_get_pane_content() inappropriately created a blank context when no contexts were available.
+#618624 by johnskulski: Better classes for panel panes.
+#651306 by joachim: Add "edit any panel node" permission. Not sure why this was never there.
+#497042: Add update.php to remove unused panels_page_router_store table, if it exists.
+#683162: Convert all plugins to use new $plugin = array() format. This is less brittle than the specially named hook.
+#543898: Fix notice error when a layout has no regions.
+#647706: Mini panel names can only be 32 characters, but the form failed to restrict the limit.
+Introduce the Panels stylizer module which builds on the CTools stylizer base to create user definable, recolorable styles.
+
+Panels 6.x-3.2 (2009-Oct-21)
+==============
+
+#606980 by Deciphered and sethfreach: Typo caused panel-pane class to disappear if another class was assigned.
+#607242: Using the wrong variable in hook_block can cause title to not be overridable.
+#608062: Visibility rules did not appear in the list when added to a pane (though they still applied).
+
+Panels 6.x-3.1 (2009-Oct-15)
+==============
+
+#552846 by eMPee584: Fix notice with tablesorts on mini panels page if no mini panels exist.
+#568218: Links to clone, export, delete/revert, enable/disable variants from the main summary page were incorrect and led to an operation trail not found message.
+#533724: Prevent Panels from upgrading while uninstalled, as that upgrades into broken pages.
+#529816: Allow flexible layout to add custom classes to each region.
+Rearrange the pane dropdown menus to be better organized and look a little nicer.
+Add a new field to allow setting a panel title from one of its panes.
+#562560 by Damien McKenna: Integration with export.module
+#583172 by jacine: Turn panel pane into a template, as it always should have been.
+#604404: Make sure caching does not trigger for form POSTs.
+
+Panels 6.x-3.0 (2009-Aug-19)
+==============
+
+#529258 by stella: Attempting to modify CSS properties on mini panel causes ajax failure.
+#537430 by dereine: Fix untranslatable strings in panels dashboard template.
+#530104 by stella: Fix import problem with mini panels.
+#535606: Mini panel deletion deleted all block config of all mini panels.
+#539418 by esmerel: Remove reference to panel page from module description.
+#535722: Fix incorrect "title" tag on categories in add content modal.
+Fix a bug with drag and drop UI that caused panes to break after other panes were added.
+#538900: Fix bug with flexible when having multiple regions of the same name if they have a space.
+#552014: Hide Substitutions fieldset if there are no contexts.
+#552006: Add Content modal now opens to explanatory text instead of the first category.
+#553392 by lee20: Fix node allowed layouts not properly respected on edit layout screen.
+
+Panels 6.x-3.0-rc1
+==================
+
+#515316: Add permission to view Panels admin dashboard.
+#298174: Recursion defense for mini panels.
+#502670: Extra HTML designed only for flexible layout admin accidentally rendered.
+#507516: "Default" panel style on regions not being properly utilized.
+#476440: Seriously, cloning variants really realy fixed.
+#518360 by joshk: Panels node form doesn't have format properly associated.
+#525340 by markus_petrux: Dashboard improperly initializing a variable.
+#460902 by dmmckenna: Fix problem installing panels from an install profile.
+#488278: Preview on panel nodes prior to creation caused errors.
+#475920: Create "use panels dashboard" permission to more easily control who can and cannot use it.
+#384552: Fix incompatibilities with theme developer. Drag & drop screen does not need to be themable.
+
+Panels 6.x-3.0-beta4
+====================
+Note: beta3 skipped to stay even with CTools beta numbers.
+Removal of non-functioning bulk export module in favor of the new one in CTools.
+Update to require CTools API 1.1.0
+Updates to work with the new Page Manager UI in CTools.
+
+Panels 6.x-3.0-beta2
+====================
+Update to require CTools based upon its advertised API version number.
+Update code to ensure that the dead 'panels simple cache' module is really dead.
+Attempt to go back further in history for a Panels 1 upgrade path.
+Fix for making sure Panels completely disables itself if using incompatible version of CTools.
+Update CSS caching on panel page and panel context to use ctools_css_store instead of remembering the filename.
+Infinite loop protection in panel nodes.
+#459078: Provide the "read more" flag for teasers of panel nodes.
+Fix broken styling when dragging a panel pane.
+Integrate with CTools tab system so we can add edit tabs to all our panel pages.
+#454208: pgsql does not support concat(), so use || instead for postgres.
+#445828: Remove "Settings" link if a content type has no settings form.
+#460200: Allow regions and columns that have only 'fixed' width items. Disallow changing a 'fixed' item to 'fluid.'
+
+Panels 6.x-3.0-beta1
+====================
+
+#422712: Panel page import button went to wrong place.
+#423288: Profile template plugin had wrong path.
+#424176: Panel nodes: Remove unused layout screen, fix some notice errors, give context a description.
+New simpler panel page task that doesn't bother with handlers at all.
+#317121: Respect 'hide title' option in display settings.
+#422404: Update to exportables left mini panels kind of broken.
+#422180 by joshk: Fix panel node_access to accept incoming $account.
+Moved content types to CTools.
+Better add content dialog.
+#437742 by jcmarco: Missing include.
+#440142 by jcmarco: Did not change panels_get_content_types to ctools_get_content_types.
+Add a live preview widget to the panel content edit page.
+Fix panel page type to actually respect the contexts.
+Upgrades from as far back as Drupal 5 can now be supported.
+Rearranged the menus, created the Panel dashboard.
+Returned the allowed content settings form to panel page
+Added allowed layouts to settings form for panel pages, nodes, minis.
+#362754 by dereine: Fix invalid XHTML in 3col 33/34/33 template.
+#375686: Create panels_get_current_page_display() to replace the old panels_get_current_page() function.
+#424798: Respond to a cloned handler by properly cloning the display as well.
+#424290: Ensure content.inc is loaded during panels display save so that everything can be found.
+#422090: Ensure the first item added to a row is fluid. Fixed can then be added after that.
+
+Panels 6.x-3.0-alpha3
+=====================
+Note: This changelog is incomplete, as it was started sometime after alpha2.ls
+
+#349979 by Dave Reid: Proper use of link alter.
+#374628: Add a check for broken display to the admin summary to prevent crashes.
+Retool flexible layout into a nice javascripty visual layout builder.
+Retool mini panels to use ctools export class and provide a .inc file for its content type as a better example.
+Store a panel task handler's display in the database.
+Add a mechanism to fetch information about just one content subtype (i.e, single view, single block) instead of fetching them all.
+Overhaul node_content_type creating a .inc file.
+Add 'content type' property to content types.
+Add 'defaults' property to content types.
+Panels views cleanup, including making exposed form blocks available.
+#391788 by guix: Simple cache should not unserialize data that is now already unserialized.
+#367635 by lee20: View title built too early and so lost arguments.
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/D6UPDATE.txt b/drupal/sites/default/boinc/modules/contrib/panels/D6UPDATE.txt
new file mode 100644
index 0000000..d09df19
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/D6UPDATE.txt
@@ -0,0 +1,66 @@
+CHANGES DURING D6 UPDATE TO PANELS 3
+
+ALL PLUGINS
+===========
+
+Function to advertise directory for plugins:
+  hook_ctools_plugin_directory($module, $plugin)
+
+LAYOUTS
+=======
+
+All layouts should use templates
+'icon' now uses the defined path and should no longer have path built in.
+'css' now uses defined path and should no longer have path built in.
+DOCUMENTATION NOTE: You can just copy any layout css file directly to your theme. It should no longer be in theme/layouts directory.
+administrative view of a layout can now have its own theme function.
+
+CONTENT TYPES
+=============
+
+panels_node_legacy module renamed to panels_node_content.module
+-- NEED UPDATE TO RENAME IN SYSTEM TABLE.
+
+'title callback' now has $subtype as the first argument.
+'render' now has $subtype as the first argument.
+'content_types' now 'content types'.
+New 'content type' to fetch information a single content type so we don't have
+to load all of them all the time.
+New 'defaults' array in either the type or subtype declaration to provide
+defaults for the add form.
+
+CONTEXTS
+========
+
+Function signature on submit and validate handlers now: ($form, &$form_values, &$form_state)
+Moved to CTOOLS
+
+RELATIONSHIPS
+========
+
+Function signature on submit and validate handlers now: ($form, &$form_values, &$form_state)
+Moved to CTOOLS
+
+ARGUMENTS
+========
+
+Function signature on submit and validate handlers now: ($form, &$form_values, &$form_state)
+Moved to CTOOLS
+
+When argument plugins fail to load a context at runtime, they must now return
+error codes instead of FALSE or NULL (previously the practice). The error codes,
+and their respective documentation, can be found at the top of panels.module.
+
+HANDLERS
+========
+
+Upgrading task handlers from Panels 6.x-3.12 or older to Panels 3.x-3.13 and newer:
+
+  - You must specify a storage type for any panels display using your custom task handler.
+    For examples, see panels_update_7306.
+
+  - When creating whatever stores the panel, a storage id and storage type must be defined.
+    See panels_mini.module for examples inside panels_mini_save and panels_mini_panels_cache_get.
+
+  - A display access plugin must be defined.
+    See panels_mini/plugins/panels_storage/panels_mini.inc for an example plugin.
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/INSTALL.txt b/drupal/sites/default/boinc/modules/contrib/panels/INSTALL.txt
new file mode 100644
index 0000000..a883666
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/INSTALL.txt
@@ -0,0 +1,8 @@
+
+Place the module files in the appropriate directory. If you're not sure,
+try 'sites/all/modules'. 
+
+Then navigate to administer >> site building >> modules and activate
+the panels module, along with any of the accompanying side modules you'd like to use.
+The Panels module itself only provides an API - you MUST install these other modules
+if you want to do much of anything.
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/KNOWN_ISSUES.txt b/drupal/sites/default/boinc/modules/contrib/panels/KNOWN_ISSUES.txt
new file mode 100644
index 0000000..6696367
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/KNOWN_ISSUES.txt
@@ -0,0 +1,91 @@
+
+Known Issue http://drupal.org/node/191771
+  'Node' panes can have two titles or have two title areas.
+  Cause: 
+    Content that comes into a pane is already formatted, and this happens
+    in theme('node'). theme('node') assumes it will be printing a title
+    most of the time. However, Panels wants the titles of panes to be
+    consistent, so it removes the title from the node to prevent your
+    node.tpl.php from printing it. The result is often an empty h2 which
+    has odd effects.
+  Solution:
+    Add an if statement to your node.tpl.php to prevent printing that h2
+    if $node->title is empty.
+
+Known Issue http://drupal.org/node/186454
+  Internet Explorer is really bad about making the rightmost panel
+  fall beneath the others.
+  Cause:
+    Internet explorer calculates margins and padding differntly from
+    everyone else, and this makes it entirely too easy for widths
+    to add up to greater than the amount of allotted space, despite
+    using percentage widths.
+  Solution:
+    There are two solutions to this problem:
+    1) In your theme, try to eliminate padding from the the <div>
+       that directly contains your content; you can do this by
+       adding an empty <div> inside it that surrounds the content
+       and very specifically is set to margin: 0 and padding: 0
+
+    2) if that doesn't work, override the widths of the panel-panel
+       divs and reduce them by 1 or 2%; usually this will give IE
+       enough space to quit pushing things around.
+
+Known Issue http://drupal.org/node/154351
+  TinyMCE, FCKEditor and other wysiwyg editors really blow up on Panels
+  content editing.
+  Cause:
+    The modal dialogs that Panels uses are very particular about javascript
+    and these editors are too much for them. Also, these editors get
+    cranky about complicated forms with several text areas.
+  Solution:
+    Disable these editors on all of your panels admin pages. The important
+    URLs are admin/panels/* and panels/ajax/*. More details instructions
+    may follow if someone familiar with these systems submits a patch at
+    the above drupal.org URL.
+
+Known Issue http://drupal.org/node/180650
+  The rounded corners style shows up as just a small graphic rather than
+  a full box around the panels as it shoujld.
+  Cause:
+    The rounded corners CSS relies on the ID for the panel, but the ID is
+    optional.
+  Solution:
+    Make sure your panel has an ID of some sort. With mini panels there is
+    no easy workaround as mini panels currently do not have IDs of their
+    own.
+
+Known Issue http://drupal.org/node/165745
+  You see a message similar to this:
+  Table 'drupal.panels_info' doesn't exist query: SELECT * FROM panels_info 
+  WHERE path = 'front_page_new' in...
+
+  The important piece of information is 'panels_info'.
+  Cause:
+    The Meta Tags module (also known as nodewords.module) directly reads the
+    the panels tables and modifies its forms to add the tags. Unfortunately
+    for this module, Panels has changed *greatly* in the leap from 1.0 to
+    2.0 and the tables aren't the same. However, the nodewords module doesn't
+    yet know this. Look in the nodewords issue queue for panels patches and
+    you should find something.
+
+Known Issue http://drupal.org/node/153399
+  The drag and drop content UI doesn't seem to work at all under Safari.
+
+  Cause:
+    Safari 2 has some serious problems with the javascript code.
+  Solution:
+    Upgrade to Safari 3 if possible. If not, use an an alternative browser
+    such as Firefox or Opera.
+
+Known Issue http://drupal.org/node/207859
+  When using the secure pages module, the Panels administrative UI gives 
+  unhelpful "An error occurred" popups when trying to add or edit content.
+
+  Cause:
+    The secure pages module tries to move the entire administrative section
+    of the site to HTTPS, but Panels' AJAX calls are using a path that
+    secure pages doesn't know about. When trying to make non-secure ajax calls
+    from a secure page, the browser denies the call.
+  Solution:
+    The solution is to simply add panels/* to your Secure Pages configuration.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/panels/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/README.txt b/drupal/sites/default/boinc/modules/contrib/panels/README.txt
new file mode 100644
index 0000000..d7d7a31
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/README.txt
@@ -0,0 +1,51 @@
+Panels
+http://drupal.org/project/panels
+================================
+
+DESCRIPTION
+-----------
+The Panels module allows a site administrator to create customized layouts for multiple uses. At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout. Integration with other systems allows you to create nodes that use this, landing pages that use this, and even override system pages such as taxonomy and the node page so that you can customize the layout of your site with very fine grained permissions.
+
+
+DRUPAL 6 END OF LIFE
+--------------------
+Due to the D6 end of support, Panels 3.11 will probably be the last release. Users are strongly encouraged to upgrade to Drupal 8.
+
+REQUIREMENTS
+------------
+Drupal 6.x
+Ctools http://drupal.org/project/ctools
+
+
+OPTIONAL
+--------
+jQuery UI http://drupal.org/project/jquery_ui (Required for IPE)
+jquery Update http://drupal.org/project/jquery_update (Required for IPE)
+
+
+INSTALLING
+----------
+Find the 'INSTALL.txt' file that comes with the module
+
+
+DOCUMENTATION
+-------------
+You're best off checking the online handbook on Drupal.org at http://drupal.org/node/496278
+or the developer/API docs
+
+
+CONTRIBUTE. REPORTING ISSUE. REQUESTING SUPPORT. REQUESTING NEW FEATURE.
+------------------------------------------------------------------------
+** NOTE ** DRUPAL 6 IS NO LONGER SUPPORTED.
+See https://www.drupal.org/node/1774796#comment-10607722 for more info.
+Making new patches for D6 panels is not supported and will be marked 'Wont Fix' unless its a critical bug introduced in Panels 3.11
+
+1. Go to the module issue queue at http://drupal.org/project/issues/panels?status=All&categories=All
+2. Click on CREATE A NEW ISSUE link.
+3. Fill the form.
+4. To get a status report on your request go to http://drupal.org/project/issues/user
+
+
+UPGRADING
+---------
+Read more at http://drupal.org/node/250790
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/css/panels-dashboard.css b/drupal/sites/default/boinc/modules/contrib/panels/css/panels-dashboard.css
new file mode 100644
index 0000000..a7efeae
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/css/panels-dashboard.css
@@ -0,0 +1,62 @@
+
+.dashboard-entry .dashboard-link {
+  font-size: 120%;
+  font-weight: bold;
+}
+
+.dashboard-entry .dashboard-icon img {
+  vertical-align: middle;
+}
+.dashboard-title {
+  font-weight: bold;
+  font-size: 140%;
+  margin-bottom: .5em;
+}
+
+.dashboard-link form input {
+  margin: 0;
+}
+
+.dashboard-link form select {
+  margin: 0;
+}
+
+.dashboard-left {
+  width: 47%;
+  float: left;
+}
+
+.dashboard-right {
+  margin-left: 2em;
+  width: 47%;
+  float: left;
+}
+
+.dashboard-question {
+  margin-top: 14em;
+  padding: 1em;
+  text-align: center;
+}
+
+.dashboard-content table {
+  margin: 0;
+  width: 100%;
+}
+
+.dashboard-content {
+  padding: 0 1em;
+}
+
+.panels-dashboard .links {
+  text-align: right;
+}
+
+.dashboard-pages .page-manager-page-operations {
+  text-align: right;
+}
+
+.dashboard-block {
+  padding-bottom: 1em;
+  border-bottom: 1px dotted #ddd;
+  margin-bottom: 1em;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/css/panels.css b/drupal/sites/default/boinc/modules/contrib/panels/css/panels.css
new file mode 100644
index 0000000..99552a9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/css/panels.css
@@ -0,0 +1,50 @@
+
+div.panel-pane div.admin-links {
+  font-size: xx-small;
+  margin-right: 1em;
+}
+
+div.panel-pane div.admin-links li a {
+  color: #ccc;
+}
+
+div.panel-pane div.admin-links li {
+  padding-bottom: 2px;
+  background: white;
+  z-index: 201;
+}
+
+div.panel-pane div.admin-links:hover a,
+div.panel-pane div.admin-links-hover a {
+  color: #000;
+}
+
+div.panel-pane div.admin-links a:before {
+  content: "[";
+}
+
+div.panel-pane div.admin-links a:after {
+  content: "]";
+}
+
+div.panel-pane div.panel-hide {
+  display: none;
+}
+
+/** For IE we add the class via js; for other browsers we rely on :hover **/
+div.panel-pane div.panel-hide-hover,
+div.panel-pane:hover div.panel-hide {
+  display: block;
+  position: absolute;
+  z-index: 200;
+  margin-top: -1.5em;
+}
+
+div.panel-pane div.node {
+  margin: 0;
+  padding: 0;
+}
+
+div.panel-pane div.feed a {
+  float: right;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/css/panels_admin.css b/drupal/sites/default/boinc/modules/contrib/panels/css/panels_admin.css
new file mode 100644
index 0000000..496fd64
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/css/panels_admin.css
@@ -0,0 +1,162 @@
+
+.layout-link {
+  float: left;
+  padding: 1em;
+  width: 125px;
+  height: 160px;
+}
+
+.layout-link img {
+  margin-left: auto;
+  margin-right: auto;
+}
+
+/* general style for the layout-icon */
+.layout-icon .caption {
+  width: 90px;
+  margin-bottom: 1em;
+}
+
+/* styles for the basic panel-%implementation% edit page */
+.layout-container,
+.right-container {
+  float: right;
+  padding: 0 0 0 .5em;
+  margin: 0;
+  width: 48.5%;
+}
+
+.info-container,
+.left-container {
+  padding-right: .5em;
+  width: 48.5%;
+}
+
+.right-container fieldset,
+.left-container fieldset,
+.layout-container fieldset {
+  margin-top: 0;
+}
+
+.layout-container .form-item {
+  margin: 0;
+}
+
+.layout-container .form-submit {
+  margin-top: 1em;
+}
+
+.layout-container .layout-icon,
+.left-container .layout-icon {
+  float: right;
+  margin-left: .5em;
+}
+
+.content-list ol {
+  padding-left: 0;
+  list-style-position: inside;
+}
+
+.content-list dt {
+  font-weight: bold;
+}
+
+.content-list dd {
+  margin-left: 2em;
+}
+
+/* styles for the choose layout page */
+.panels-layouts-checkboxes .form-checkboxes .form-item,
+#panels-choose-layout .form-radios .form-item {
+  float: left;
+  margin-right: .5em;
+  width: 90px;
+}
+
+.panels-layouts-checkboxes .form-checkboxes .form-item .layout-icon,
+#panels-choose-layout .form-radios .form-item .layout-icon {
+  float: none;
+  height: 11em;
+  width: 90px;
+}
+.panels-layouts-checkboxes .form-checkboxes .option,
+#panels-choose-layout .form-radios .form-item .option {
+  width: 50px;
+  display: block;
+  text-align: center;
+}
+
+.panels-layouts-checkboxes .form-submit,
+#panels-choose-layout .form-submit {
+  clear: left;
+}
+
+.panels-layouts-checkboxes .panels-layout-list label,
+#panels-choose-layout .panels-layout-list label {
+  width: 300px;
+  float: left;
+  clear: left;
+  background: url(../images/go-right.png) right no-repeat;
+  margin-right: 20px;
+}
+
+.panels-layouts-checkboxes .panels-layouts-category {
+  font-weight: bold;
+  width: 100%;
+  float: left;
+}
+
+.panels-layouts-checkboxes .description {
+  clear: left;
+}
+
+.change-layout-display .layout-icon {
+  float: left;
+}
+
+.change-layout-display > img {
+  padding: 25px 25px 25px 0;
+  float: left;
+}
+
+table .operation {
+  text-align: right;
+  padding-right: 6px;
+}
+
+table .argument-operation input {
+  padding: 0;
+  margin: 0;
+  position: relative;
+  top: 3px;
+}
+
+.panels-admin-view {
+  padding: 1em;
+  border: 1px dotted black;
+  margin-bottom: 1em;
+}
+
+tr.changed td {
+  background-color: #FFFFDD !important;
+}
+
+tr.changed td span.star {
+  font-weight: bold;
+  color: #E09010;
+}
+
+td select {
+  margin: 0;
+  padding: 0;
+}
+
+.panels-style-settings,
+.panels-style-settings-box,
+#panels-style-setting {
+  float: left;
+}
+
+.panels-style-settings-box .form-item {
+  margin: 0 1em 0 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/css/panels_dnd.css b/drupal/sites/default/boinc/modules/contrib/panels/css/panels_dnd.css
new file mode 100644
index 0000000..c4e1e14
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/css/panels_dnd.css
@@ -0,0 +1,629 @@
+
+#panels-dnd-main {
+  margin: 0.5em 0;
+}
+
+#panels-dnd-main div.panels-display {
+  padding: 0 0 .5em 0;
+  border: 1px dashed #ddd;
+  background: #f8f8f8;
+  -webkit-border-radius: 0.333em;
+  -moz-border-radius: 0.333em;
+}
+
+#panels-dnd-main div.panels-display h2.label {
+  color: #555;
+  text-shadow: #fff 1px 1px 1px;
+  text-align: center;
+  font-size: 13pt;
+  margin: 0 0 .5em 0;
+  padding-right: 16px;
+  vertical-align: middle;
+}
+
+#panels-dnd-main div.panels-display .pane-add {
+  float: left;
+  margin: 2px;
+  background: #999;
+  border: 1px solid #fff;
+}
+
+#panels-dnd-main div.panels-display .pane-add-link {
+  position: absolute;
+  display: block;
+  width: 16px;
+  height: 16px;
+  float: left;
+  margin: 2px 2px 2px 4px;
+}
+
+div.panels-set-title-hide .panels-set-title {
+  display: none !important;
+}
+
+/* Add Icon */
+#panels-dnd-main div.panels-display .pane-add-link  {
+}
+#panels-dnd-main div.panels-display .pane-add-link img {
+  display: none;
+}
+#panels-dnd-main div.panels-display .pane-add-link a.ctools-dropdown-image-link {
+  border: none;
+  width: 16px;
+  height: 18px;
+  float: left;
+  background: url('../images/sprite.png') no-repeat 0 -1178px;
+/*  background: url('../images/sprite.png') no-repeat -166px -582px; */
+}
+
+.panel-portlet {
+  padding: 0em;
+  background: #ffffff;
+  border: 1px solid #bbb;
+}
+
+div.panels-set-title-hide .panel-pane-is-title {
+  border: 1px solid #bbb;
+}
+
+.panel-pane-is-title {
+  border: 2px solid #777;
+}
+
+/* Cog Icon */
+.panel-portlet .buttons a img {
+  display: none;
+  margin: 0;
+}
+.panel-portlet .buttons a.ctools-dropdown-image-link {
+  border: none;
+  width: 16px;
+  height: 16px;
+  margin: 0 5px 0 0;
+  float: none;
+  display: block;
+  background: url('../images/sprite.png') no-repeat 0 -1178px;
+}
+
+#panels-dnd-main .panel-pane,
+#panels-dnd-main .helperclass {
+  margin: .5em;
+}
+
+#panels-dnd-main-form .inline-icon-help {
+  vertical-align: middle;
+  margin: 2px 1px;
+}
+
+.panel-pane.hidden-pane {
+  background: #f8f8f8;
+}
+
+.panel-portlet .pane-content {
+  margin: .5em 0 .5em 0;
+  padding: 0 .25em 0 .25em;
+  display: none; /* initially hidden */
+}
+
+.panel-portlet .grabber {
+  width: 100%;
+  height: 20px;
+  cursor: move;
+  margin: 0 0 0.5em 0;
+  overflow: hidden;
+  background: #b3b3b3 url('../images/bg-shade-medium.png') repeat-x 0 100%;
+  color: #fff;
+  text-shadow: #555 1px 1px 1px;
+  border-color: #999;
+  font-weight: bold;
+}
+
+.panel-portlet.hidden-pane .grabber {
+  background-color: #888;
+}
+
+.panel-portlet .changed div.grabber {
+  background-color: #FFFFDD !important;
+  border-bottom: 1px solid #3D9CD7 !important;
+  color: black !important;
+}
+
+.panel-portlet .changed.hidden-pane div.grabber {
+  background-color: #B4B488 !important;
+  border-bottom: 1px solid #3D9CD7 !important;
+}
+
+.panel-portlet .changed div.grabber span.star {
+  font-weight: bold;
+  color: #E09010;
+}
+
+.panel-portlet .grabber:hover {
+  color: #fff;
+  background-color: #2F78A5;
+}
+
+.panel-portlet.hidden-pane .grabber:hover {
+  background-color: #666;
+}
+
+.panel-portlet .grabber:active {
+  background-color: red;
+}
+
+.panel-portlet .grabber:hover,
+.panel-portlet .grabber:active {
+  background: #858585 url('../images/bg-shade-dark.png') repeat-x 0 100%;
+  color: #fff;
+  text-shadow: #333 1px 1px 1px;
+  border-color: #858585;
+}
+
+.panel-portlet .grabber .text {
+  margin-left: 3px;
+  font-size: 90%;
+  line-height: 20px;
+}
+
+.panel-portlet .buttons {
+  float: right;
+  padding: 0;
+  margin: 0;
+}
+
+.panel-portlet .buttons input {
+  margin: 0;
+  padding: 0;
+  display: inline;
+}
+
+.panel-portlet .buttons a img {
+  margin: 2px 1px;
+}
+
+.panel-portlet .pane-title {
+  font-size:110%;
+  cursor: pointer;
+}
+
+.panel-portlet .panel-pane-collapsible {
+  margin: 0;
+  padding: 0;
+}
+
+.panel-portlet .toggle {
+  float: left;
+  width: 21px;
+  height: 21px;
+  cursor: pointer;
+  background: url('../images/sky.png') no-repeat 6px -245px;
+}
+
+.panel-portlet .toggle-collapsed {
+  background: url('../images/sky.png') no-repeat 6px -1021px;
+}
+
+/* CSS to guide a user to a place to drop */
+#panels-dnd-main .helperclass {
+  border: 1px dashed red;
+}
+
+#panels-dnd-main .hoverclass {
+  border: 1px solid red !important;
+}
+
+/* CSS for an area if something can be dropped in it */
+.panels-modal-content {
+  background: #fff;
+  color: #000;
+  padding: 0;
+  margin: 2px;
+  border: 1px solid #000;
+  width: 600px;
+  text-align: left;
+}
+
+.panels-modal-content .modal-title {
+  font-size: 120%;
+  font-weight: bold;
+  color: white;
+  overflow: hidden;
+  white-space: nowrap;
+}
+
+.panels-modal-content .modal-header {
+  background-color: #2385c2;
+  padding: 0 .25em 0 1em;
+}
+
+.panels-modal-content .modal-header a {
+  color: white;
+  float: right;
+}
+
+.panels-modal-content .modal-content {
+  padding: 0 1em;
+  overflow: auto;
+  width: 575px;
+  height: 400px;
+}
+
+.panels-modal-content .modal-form {
+}
+
+.panels-modal-content .form-checkboxes .form-item {
+  float: left;
+  width: 24%;
+}
+
+.panels-hidden,
+.panels-js-only {
+  display: none;
+}
+
+a.close {
+  color: white;
+}
+
+a.close:hover {
+  text-decoration: none;
+}
+
+a.close img {
+  position: relative;
+  top: 1px;
+}
+
+.panels-section-title {
+  clear: left;
+  border-bottom: 1px solid #ddf;
+  margin-bottom: .5em;
+  text-align: left;
+}
+
+.panels-section-decorator {
+}
+
+.panels-add-content-modal .panels-modal-add-category {
+  display: block;
+  border-bottom: 1px solid white;
+  padding-left: .5em;
+  margin-left: -2px;
+  position: relative;
+}
+
+.panels-add-content-modal .panels-modal-add-category.active {
+  background: url(../images/arrow-active.png) center right no-repeat white;
+  border-right: none;
+}
+
+.panels-add-content-modal {
+  background: url(../images/bg-content-modal.png);
+  height: 100%;
+  margin: -1em;
+  padding-top: 1em;
+  padding-left: 175px;
+  position: relative;
+}
+
+.panels-section-columns {
+  height: 100%;
+  overflow: auto;
+}
+.panels-section-column {
+  width: 48%;
+  float: left;
+}
+
+.panels-section-column .inside {
+  padding: 0 1em;
+}
+
+.panels-section-column-categories {
+  width: 173px;
+  margin-left: -173px;
+}
+
+.panels-categories-description {
+  padding: 0 1em;
+  text-align: center;
+  vertical-align: center;
+}
+
+* html .panels-section-column-categories {
+  left: 173px;
+  position: relative;
+}
+
+.panels-section-column-categories .panels-categories-box {
+  border-top: 1px solid white;
+  margin-bottom: 1em;
+}
+
+.panels-section-column-categories .inside {
+  padding: 0;
+ }
+
+.panels-section-column-categories .content-type-button {
+  padding-left: 10px;
+}
+
+.panels-modal-add-category {
+  color: #5b5b5b !important;
+  font-weight: bold;
+  line-height: 2em;
+}
+
+.panels-section {
+  margin-bottom: 1em;
+}
+
+.panels-section-column .content-type-button {
+  font-size: 8pt;
+  line-height: 1em;
+  overflow: hidden;
+  text-align: left;
+}
+
+.content-type-button img {
+  border: 2px solid white;
+  float: left;
+}
+
+.content-type-button img:hover {
+  border: 2px solid blue;
+}
+
+.content-type-button div {
+  width: 85%;
+  top: -5px;
+  left: 2px;
+  float: left;
+  padding-left: 3px;
+  padding-top: 5px;
+}
+
+#panels-preview .modal-throbber-wrapper {
+  width: 100%;
+  text-align: center;
+  margin-left: auto;
+  margin-right: auto;
+}
+/** modal forms CSS **/
+.panels-modal-content .form-item label {
+  width: 8em;
+  float: left;
+}
+
+.panels-modal-content .form-item label.option {
+  width: auto;
+  float: none;
+}
+
+.panels-modal-content .form-item .description {
+  clear: left;
+}
+
+.panels-modal-content .form-item .description .tips {
+  margin-left: 2em;
+}
+
+.panels-modal-content .no-float .form-item * {
+  float: none;
+}
+
+.panels-modal-content .modal-form .no-float label  {
+  width: auto;
+}
+
+.panels-modal-content .modal-form fieldset,
+.panels-modal-content .modal-form .form-checkboxes {
+  clear: left;
+}
+
+#edit-configuration-nid {
+  clear: left;
+}
+
+.option-text-aligner .form-item {
+  float: left;
+  padding: .25em 1em .25em 0;
+  margin: 0;
+}
+
+.option-text-aligner {
+  clear: both;
+  width: 100%;
+  padding: 0;
+  margin: 0;
+}
+
+
+#panels-dnd-main div.panel-pane div.ctools-dropdown-container-wrapper {
+  margin-left: -158px;
+  margin-top: -4px;
+}
+
+/*
+html.js div.panels-display-links div.ctools-dropdown-container {
+  width: 275px;
+}
+
+html.js div.panels-display-links div.ctools-dropdown-container ul li li a {
+  width: 250px;
+}
+
+html.js div.panels-display-links div.ctools-dropdown-container ul li a {
+  width: 270px;
+}
+*/
+
+#panels-dnd-main .panel-pane .pane-title {
+  padding: 0.25em 0.5em;
+}
+#panels-dnd-main .panel-pane .pane-title:after {
+  font-size: 0.8em;
+  color: crimson;
+  letter-spacing: normal;
+  display: block;
+}
+#panels-dnd-main .panel-pane.hidden-pane .pane-title:after {
+  content: " status: hidden";
+}
+#panels-dnd-main .panel-pane.changed .pane-title:after {
+  content: " status: changes not saved";
+}
+#panels-dnd-main .panel-pane.hidden-pane.changed .pane-title:after {
+  content: " status: hidden & changed";
+}
+
+/* @end */
+
+
+/* @group CTools Dropdown */
+#panels-dnd-main .ctools-dropdown a.ctools-dropdown-text-link,
+html.js div.panels-display-links a.ctools-dropdown-text-link {
+
+  background: url('../images/arrow-down-light.png') 0 3px no-repeat!important;
+  padding-left: 12px;
+}
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container,
+html.js div.panels-display-links div.ctools-dropdown-container {
+  width: 160px!important;
+  background: #fff url('../images/bg-shade-white-lrg.png') repeat-x 0 100%;
+  border: solid 1px #ddd!important;
+  margin: 0!important;
+/*  padding: 0.5em!important; */
+  -webkit-border-radius: 0.333em;
+  -moz-border-radius: 0.333em;
+  -webkit-box-shadow: 0.333em 0.333em 0.333em rgba(0, 0, 0, 0.25);
+  font-size: 0.9em;
+  font-weight: bold;
+}
+
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li,
+html.js div.panels-display-links div.ctools-dropdown-container ul li {
+
+  text-decoration: none;
+  padding: 0;
+  margin: 0;
+  color: #555!important;
+  text-shadow: #fff 1px 1px 1px;
+}
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li span.text,
+html.js div.panels-display-links div.ctools-dropdown-container ul li span.text {
+
+  font-style: normal;
+  color: #000;
+  font-weight: bold;
+}
+
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li a,
+html.js div.panels-display-links div.ctools-dropdown-container ul li a {
+  color: #555!important;
+  font-weight: normal;
+  width: auto;
+  padding: 0 10px;
+}
+
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li span.panels-text,
+html.js div.panels-display-links div.ctools-dropdown-container ul li span.panels-text {
+  width: auto;
+  padding: 0 10px;
+}
+
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li .panels-italic,
+html.js div.panels-display-links div.ctools-dropdown-container ul li .panels-italic {
+  font-style: italic;
+}
+
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li span.dropdown-header,
+html.js div.panels-display-links div.ctools-dropdown-container ul li span.dropdown-header {
+  background-color: #fefefe;
+  padding: 0 10px;
+}
+
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li .panels-sub-menu ul li a,
+html.js div.panels-display-links div.ctools-dropdown-container ul li .panels-sub-menu ul li a,
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container ul li .panels-sub-menu span.panels-text,
+html.js div.panels-display-links div.ctools-dropdown-container ul li .panels-sub-menu span.panels-text {
+  padding: 0 20px;
+}
+
+html.js #panels-dnd-main div.ctools-dropdown div.ctools-dropdown-container hr,
+html.js div.panels-display-links div.ctools-dropdown-container hr {
+  border: 0;
+  color: #ddd;
+  background-color: #ddd;
+  height: 1px;
+}
+
+/*
+html.js #panels-dnd-main  div.ctools-dropdown div.ctools-dropdown-container ul li a:hover,
+html.js div.panels-display-links div.ctools-dropdown-container ul li a:hover {
+  background: none!important;
+  color: #000!important;
+}
+*/
+/* @end */
+
+/* @group Modal */
+/* Account for the extra div coming from ctools_modal_form_render() */
+div.messages div.messages {
+  background: none;
+  border: none;
+  margin: 0;
+  padding: 0;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+}
+div.ctools-modal-content .modal-header {
+  background: #fff url('../images/bg-shade-light.png') repeat-x bottom left;
+  color: #777;
+  display: block;
+  font-weight: 700;
+  letter-spacing: normal;
+  padding: 0.25em 1em;
+  -moz-border-radius-topleft: 0.5em;
+  -moz-border-radius-topright: 0.5em;
+  -webkit-border-top-left-radius: 0.5em;
+  -webkit-border-top-right-radius: 0.5em;
+}
+div.ctools-modal-content .modal-title {
+  font-size: 120%;
+  font-weight: bold;
+  text-shadow: #fff 1px 1px 1px;
+  color: #555;
+}
+div.ctools-modal-content a.close {
+  color: #666;
+  font-weight: normal;
+  padding-left: 1.6em;
+  background: url('../images/sprite.png') no-repeat -166px -1686px;
+}
+div.ctools-modal-content a.close img {
+  display: none;
+}
+/** modal forms CSS **/
+div.ctools-modal-content .form-item label {
+  width: 100%;
+  float: none;
+  clear: both;
+}
+div.ctools-modal-content .resizable-textarea {
+  width: 100%;
+  margin-left: 0;
+  margin-right: 0;
+}
+div.ctools-modal-content {
+  font-size: 12px;
+  border: solid 1px #ddd;
+  -webkit-border-radius: 0.5em;
+  -moz-border-radius: 0.5em;
+  -webkit-box-shadow: -1em 1em 1em rgba(0, 0, 0, 0.5);
+}
+#modalBackdrop {
+  position: fixed!important;
+  background-color: #000!important;
+}
+/* @end */
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/css/panels_page.css b/drupal/sites/default/boinc/modules/contrib/panels/css/panels_page.css
new file mode 100644
index 0000000..1d731b9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/css/panels_page.css
@@ -0,0 +1,14 @@
+
+div.panels-page-type-container {
+  clear: left;
+}
+
+div.panels-page-type-container .form-checkboxes .form-item {
+  float: left;
+  width: 15em;
+}
+
+#panels-page-settings .form-submit {
+  display: block;
+  clear: left;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/help/api.html b/drupal/sites/default/boinc/modules/contrib/panels/help/api.html
new file mode 100644
index 0000000..e0d2d4a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/help/api.html
@@ -0,0 +1,44 @@
+<p>Panels is a pluggable rendering engine. Apart from its datastructure, almost nothing in Panels is hardcoded; every level of its rendering process is controlled by plugins (of the <a href="topic:ctools/plugins">CTools</a> variety), and therefore can be overriden. Some of these plugins' behaviors are obvious from the UI, whereas others are much more under-the-hood.</p>
+<p>Most site builders and module authors will find that plugins are the only way they need to interact with Panels to do what they want. However, if you are building whole new UIs/applications that are to be driven by the Panels engine, you'll also need the more traditional API that manages Panels editing and CRUD. Panels Node and Mini Panels are examples of 'applications' in this sense, as is <a href="http://drupal.org/project/og_panels">OG Panels</a>.</p>
+<p>This page is divided into two sections, the first dealing with Panels' rendering system & the plugins the drive it, and the second with the requirements for creating a Panels-driven application/UI. The former is a good starting place and should be of interest to anyone wanting to begin working with the Panels API.</p>
+
+<h2>The Panels Rendering System</h2>
+<p>Panels' rendering system takes a fully-loaded panels_display object and turns it into HTML. It doesn't care how that object was built or where it comes from - it's just a rendering engine. So long as the calling code provides a well-formed panels_display object, the engine will spit out HTML. Exactly how that process works is determined entirely by plugins.</p>
+<p>Panels utilizes eight different types of plugins within its rendering system, four owned by Panels and four by CTools. Let's run through that list.</p>
+<dl>
+<dt><a href="topic:panels/plugins-layout">Layout plugins</a></dt>
+<dd><em>Owned by Panels.</em></dd>
+<dd>Layout plugins provide the HTML output skeleton for any panel: they define a set of regions and (optionally) accompanying CSS/JS, very analogous to how themes define block regions. While layout plugins with complex logic are possible (the Flexible layout, for example), most layouts are nothing more than a region list, a tpl.php skeleton, and some CSS.</dd>
+<dt><a href="topic:panels/plugins-style">Style plugins</a></dt>
+<dd><em>Owned by Panels.</em></dd>
+<dd>Style plugins control the markup that wraps both individual panes and whole panel regions. A basic style plugin need not provide more than some basic CSS and a theme function or tpl.php file.</dd>
+<dt><a href="topic:ctools/plugins-style-bases">Style Bases</a></dt>
+<dd><em>Owned by CTools.</em></dd>
+<dd>Panels implements the 'style_bases' plugin type in order to interact with the Stylizer system, which technically lives in CTools, though true 'ownership' is a little blurred. Regardless, Panels uses this plugin to interact with Stylaizer in order to allow the creation of style plugins in the UI.</dd>
+<dd>This plugin is probably of interest only to module developers; site builders can safely skip it.</dd>
+<dt><a href="topic:ctools/context-context">Context plugins</a></dt>
+<dd><em>Owned by CTools.</em></dd>
+<dd>Context plugins are abstracted wrappers around bits of data - a node, user, or taxonomy term are easy examples. Panels uses context plugins so that it can work with all these different bits of data without caring about the details of the datastructure itself. Context can be a confusing concept, and you can learn more in the <a href="topic:ctools/context">CTools help</a>.</dd>
+<dd>Note that <a href="topic:ctools/context-arguments">argument</a> and <a href="topic:ctools/context-relationships">relationship</a> plugins are technically also used by Panels, but because they're really means for creating more context, they don't get separate entries in this list.</dd>
+<dt><a href="topic:ctools/plugins-content">Content Type plugins</a></dt>
+<dd><em>Owned by CTools: can utilize context.</em></dd>
+<dd>At the heart of the Panels rendering process, content type plugins define the rendering logic for every pane. Offering Panels a renderable chunk from your module means defining one of these. For those accustomed to the block system, they can be thought of as a more verbose block definition, contained neatly inside a single plugin.</dd>
+<dd>Content type plugins rely on context to provide them with source data, when necessary; this makes content plugins nice and portable.</dd>
+<dt><a href="topic:ctools/context-access">Access plugins</a></dt>
+<dd><em>Owned by CTools: can utilize context.</em></dd>
+<dd>Access plugins are essentially portable access checking logic, responsible for answering "Yes" or "No" given some contextual data. Panels uses these to define 'visibility rules' on individual panes. The other place these are commonly seen is in defining 'Selection rules' on Page Manager variants.</dd>
+<dd>If your module introduces new permissioning concepts or access logic (NOT a basic hook_perm() implementation), you may want to consider also encapsulating that logic in one or more of these plugins. For example, Organic Groups might implement an access plugin to allow/deny based on group membership, or the Date module might implement allow/deny logic based on request time.</dd>
+<dt><a href="topic:panels/plugins-cache">Cache plugins</a></dt>
+<dd><em>Owned by Panels; should utilize context.</em></dd>
+<dd>Panels cache plugins define caching strategies that can be applied to individual panes, or to whole displays. Caching plugins must deal with two basic issues: the cache backend to use for reading/writing, and TTL-managing strategies.</dd>
+<dd>TTL strategies can (and should) integrate heavily with the context, as that is where the real differential benefit of Panels-based caching is vs. standard core caching.</dd>
+<dt><a href="topic:panels/plugins-renderers">Display Renderers</a></dt>
+<dd><em>Owned by Panels: utilizes everything else.</em></dd>
+<dd>In the simplest terms, display renderers take a fully-loaded panels_display object and render it. They are very complex, powerful plugins - one could use them to cause Panels to bypass every single other plugin in this list. Fortunately, there is virtually no circumstance under which one would need to implement these plugins in the process of building a single site; only contrib developers working on highly complex use cases are likely to ever need them.</dd>
+<dd>In short, each display renderer plugin <strong>is</strong> a self-contained Panels rendering engine. If you want to grok the Panels rendering system, study these.</dd>
+</dl>
+
+
+<h2>Panels-based Applications</h2>
+<p>At its core, Panels is a rendering engine with no UI (though it does provide common elements for reuse in admin UIs). So if you're working with Panels via the web UI, it means you're working with a Panels application. The three that ship with this version of Panels are Mini Panels, Panel Nodes, and the integration with CTools' Page Manager.</p>
+<p>Panels also implements a task_handler plugin, which is owned by Page Manager in CTools. Task handlers aren't strictly a part of Panels' rendering system itself though (strictly speaking, they wrap it), so we won't cover them here.</p>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/help/display.html b/drupal/sites/default/boinc/modules/contrib/panels/help/display.html
new file mode 100644
index 0000000..e69de29
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/help/panels.help.ini b/drupal/sites/default/boinc/modules/contrib/panels/help/panels.help.ini
new file mode 100644
index 0000000..cc0ea39
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/help/panels.help.ini
@@ -0,0 +1,74 @@
+[advanced help settings]
+line break = TRUE
+
+[glossary]
+title = Panels glossary of terms
+weight = 100
+
+[about]
+title = About Panels
+weight = -100
+
+[common-tasks]
+title = Accomplishing common tasks in Panels
+weight = -50
+
+[tutorials]
+title = Panels tutorials and how-tos
+weight = -30
+
+[tutorial-landing]
+title = Creating a simple landing page
+parent = tutorials
+
+[tutorial-node]
+title = Styling a node page
+parent = tutorials
+
+[tutorial-vocabulary]
+title = Styling a vocabulary
+parent = tutorials
+
+[apps]
+title = Panels-based applications
+parent = api
+
+[panels-pages]
+title = Panel pages, via Page Manager
+parent = apps
+
+[panels-mini]
+title = Mini panels
+parent = apps
+
+[panels-node]
+title = Panel nodes
+parent = apps
+
+[api]
+title = Working with the Panels API
+weight = 50
+
+[render-api]
+title = Panels plugins
+parent = api
+
+[plugins-layout]
+title = Layout plugins
+parent = render-api
+weight = -10
+
+[plugins-style]
+title = Style plugins
+parent = render-api
+weight = -7
+
+[plugins-cache]
+title = Cache plugins
+parent = render-api
+weight = -4
+
+[plugins-renderers]
+title = Display Renderer plugins
+parent = render-api
+weight = -1
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/help/plugins-layout.html b/drupal/sites/default/boinc/modules/contrib/panels/help/plugins-layout.html
new file mode 100644
index 0000000..45051b2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/help/plugins-layout.html
@@ -0,0 +1,78 @@
+<h2>Getting Started:</h2>
+<p>Layout plugins are one of the simplest and most powerful sections of the panels api. There are two different ways that a layout can be implemented via panels.  Panels supports both module and theme implementations of panels.  The module implementation requires that hook_ctools_plugin_directory define the directory in which your layout plugins exist. (This same hook defines the directory for all panels plugins) Alternately, if you intend on implementing a layout in a theme this can be  [...]
+
+<p>CTools explains even the layout hooks a little in its example, but we'll recap quickly and expand on this information. As ctools explains, the actual plugin file must be named with care as it will directly affect your naming scheme for the hook within it. This is really no different from any other hook within drupal except that we'll be using multiple replacements in this case. The function we're looking to implement is an instance of:
+<code>function YOURMODULE_PLUGINNAME_OWNERMODULE_PLUGINTYPE()</code>
+In our case we already know that the function will be:
+<code>function YOURMODULE_PLUGINNAME_panels_layouts()</code>
+This is because the plugin type we're working with is a layout, and the module that implements these layouts is the panels module. For the rest of the naming scheme "YOURMODULE" will be replaced with either the name of your module that implements this layout, or the name of the theme, and "PLUGINNAME" will be replaced with whatever the name of the plugin file is. For purposes of this example our module name us going to be "layout_sample" and our plugin will be "first_layout".</p>
+
+<h2>Directory Structure:</h2>
+<p>We're going to assume that you've laid your directory structure out very similarly to how panels does it. Something like this is rather likely:
+<pre>layout_sample
+  layout_sample.info
+  layout_sample.module
+  plugins
+    layouts
+      first_layout
+        first_layout.css
+        first_layout.inc
+        first_layout.png
+        layout-sample-first-layout.tpl.php</pre>
+The name of our .inc file is going to be the key to the entire layout plugin.</p>
+
+<h2>The .inc File:</h2>
+<p>We will start with the first_layout.inc file as it's the most important file we're dealing with here. First_layout.inc will look similar to the following:
+<pre>
+  $plugin  = array(
+    'title' => t('First Layout'),
+    'icon' => 'first_layout.png',
+    'theme' => 'layout_sample_first_layout',
+    'css' => 'first_layout.css',
+    'panels' => array(
+      'main' => t('Main region'),
+      'right' => t('Right region'),
+    ),
+  );
+</pre>
+The include file defines all the other files that our layout will utilize in order to be truly useful.  The array is fairly self explanitory but for the sake of specificity:
+<ol>
+<li><strong>Title:</strong><br />The title of our layout. (Utilized within the panels administration screens)</li>
+<li><strong>Icon:</strong><br />The graphical representation of our layout. (Utilized within the panels administration screens)</li>
+<li><strong>Theme:</strong><br />The template file of our layout. (Sharp eyed readers will note that the theme definition utilizes underscores instead of dashes, and does not have ".tpl.php" after it.  This is refering to the layout-sample-first-layout.tpl.php file all the same, it is simply how the naming convention works.  Utilize dashes in the tpl file name and underscores when refering to it in your include file.)</li>
+<li><strong>CSS:</strong><br />The css file to be utilized for our layout. (Utilized within the panels administration screens, AND when viewing the actual panel itself.)</li>
+<li><strong>Panels:</strong><br />Defines all the various regions within your panel.  This will be further utilized within our tpl.php file.</li>
+</ol>
+There are many additional properties that can be added to the include file. For purposes of this document we'll also make mention of the 'admin css' property. 'Admin css' is especially useful when utilizing a fixed width layout with fixed with panel regions.  This can break under most administrative circumstances, and panels provides you with the ability to give an additional css layout for the administrative section. It's a simple nicety and looks like this:
+<pre>
+  $plugin = array(
+    'title' => t('First Layout'),
+    'icon' => 'first_layout.png',
+    'theme' => 'layout_sample_first_layout',
+    'css' => 'first_layout.css',
+    'admin css' => 'first_layout_admin.css',
+    'panels' => array(
+      'main' => t('Main region'),
+      'right' => t('Right region'),
+    ),
+  );
+</pre>
+</p>
+
+<h2>The tpl.php File:</h2>
+<p>The tpl.php file is very similar to any other template file within drupal. The difference here is that we're being passed an array of regions through $content, and we also have a css id available to us for the entire panel in the form of $css_id.  The template is very straight forward and will look similar to the following:
+<pre><div class="panel-display panel-stacked-twothirds-onethird clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>  
+  <div class="panel-panel panel-col-first panel-region-main">
+    <div class="inside"><?php print $content['main']; ?></div>
+  </div>
+
+  <div class="panel-panel panel-col-last panel-region-right">
+    <div class="inside"><?php print $content['right']; ?></div>
+  </div>
+</div>
+</pre>
+This is simply an example of what the html could look like. You can alter an update this html to fit your own needs.
+</p>
+
+<h2>The Other Files:</h2>
+<p>The css and png files are as simple as any other css or png file you've ever utilized. Panels provides some images for its graphical representations of its layouts. I would heavily encourage you to modify these to suit your needs.  The CSS files (admin and non) will be included at the appropriate times. Simply set them up to fit your purposes. If you're utilizing fixed width panel regions it's probably smart to provide an admin css file as well with your panel layout.</p>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/help/plugins-style.html b/drupal/sites/default/boinc/modules/contrib/panels/help/plugins-style.html
new file mode 100644
index 0000000..e69de29
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/arrow-active.png b/drupal/sites/default/boinc/modules/contrib/panels/images/arrow-active.png
new file mode 100644
index 0000000..3bbd3c2
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/arrow-active.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/arrow-down-light.png b/drupal/sites/default/boinc/modules/contrib/panels/images/arrow-down-light.png
new file mode 100644
index 0000000..f011ac6
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/arrow-down-light.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/bg-content-modal.png b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-content-modal.png
new file mode 100644
index 0000000..600d074
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-content-modal.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-dark.png b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-dark.png
new file mode 100644
index 0000000..1be36f2
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-dark.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-light.png b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-light.png
new file mode 100644
index 0000000..ad7167b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-light.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-medium.png b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-medium.png
new file mode 100644
index 0000000..e4b39fe
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-medium.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-white-lrg.png b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-white-lrg.png
new file mode 100644
index 0000000..842e5f7
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/bg-shade-white-lrg.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/blank.gif b/drupal/sites/default/boinc/modules/contrib/panels/images/blank.gif
new file mode 100644
index 0000000..75b945d
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/blank.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/close.gif b/drupal/sites/default/boinc/modules/contrib/panels/images/close.gif
new file mode 100644
index 0000000..46891b0
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/close.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/delete.png b/drupal/sites/default/boinc/modules/contrib/panels/images/delete.png
new file mode 100644
index 0000000..f790555
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/delete.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/go-down.png b/drupal/sites/default/boinc/modules/contrib/panels/images/go-down.png
new file mode 100644
index 0000000..c2def1a
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/go-down.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/go-right.png b/drupal/sites/default/boinc/modules/contrib/panels/images/go-right.png
new file mode 100644
index 0000000..dd6058c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/go-right.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/go-up.png b/drupal/sites/default/boinc/modules/contrib/panels/images/go-up.png
new file mode 100644
index 0000000..a52c7dc
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/go-up.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/icon-addcontent.png b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-addcontent.png
new file mode 100644
index 0000000..788d01f
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-addcontent.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/icon-cache.png b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-cache.png
new file mode 100644
index 0000000..3e6f46b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-cache.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/icon-configure.png b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-configure.png
new file mode 100644
index 0000000..e23d67c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-configure.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/icon-delete.png b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-delete.png
new file mode 100644
index 0000000..5f0cf69
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-delete.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/icon-draggable.png b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-draggable.png
new file mode 100644
index 0000000..dba8b67
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-draggable.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/icon-hidepane.png b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-hidepane.png
new file mode 100644
index 0000000..8516980
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-hidepane.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/icon-showpane.png b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-showpane.png
new file mode 100644
index 0000000..7549dd9
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/icon-showpane.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/no-icon.png b/drupal/sites/default/boinc/modules/contrib/panels/images/no-icon.png
new file mode 100644
index 0000000..30584e6
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/no-icon.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/portlet-collapsed.png b/drupal/sites/default/boinc/modules/contrib/panels/images/portlet-collapsed.png
new file mode 100644
index 0000000..95a214a
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/portlet-collapsed.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/portlet-expanded.png b/drupal/sites/default/boinc/modules/contrib/panels/images/portlet-expanded.png
new file mode 100644
index 0000000..46f39ec
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/portlet-expanded.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-1.jpg b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-1.jpg
new file mode 100644
index 0000000..7204357
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-1.jpg differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-2.jpg b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-2.jpg
new file mode 100644
index 0000000..80203d8
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-2.jpg differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-3.jpg b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-3.jpg
new file mode 100644
index 0000000..2d6ce09
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-3.jpg differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-4.jpg b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-4.jpg
new file mode 100644
index 0000000..bf7d77d
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/screenshot-4.jpg differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/sky.png b/drupal/sites/default/boinc/modules/contrib/panels/images/sky.png
new file mode 100644
index 0000000..35b9380
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/sky.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/sprite.png b/drupal/sites/default/boinc/modules/contrib/panels/images/sprite.png
new file mode 100644
index 0000000..fe74899
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/sprite.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/throbber.gif b/drupal/sites/default/boinc/modules/contrib/panels/images/throbber.gif
new file mode 100644
index 0000000..8a084b8
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/throbber.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/images/user-trash.png b/drupal/sites/default/boinc/modules/contrib/panels/images/user-trash.png
new file mode 100644
index 0000000..71e4c46
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/images/user-trash.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/callbacks.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/callbacks.inc
new file mode 100644
index 0000000..00a4509
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/callbacks.inc
@@ -0,0 +1,188 @@
+<?php
+/**
+ * @file callbacks.inc
+ * Minor menu callbacks for Panels helpers.
+ */
+
+/**
+ * A central administrative page for Panels.
+ */
+function panels_admin_page() {
+  return theme('panels_dashboard');
+}
+
+function panels_dashboard_final_blocks(&$vars) {
+  // Add in links for missing modules that we still want to mention:
+  if (empty($vars['links']['page_manager'])) {
+    $vars['links']['page_manager'] = array(
+      'weight' => -100,
+      'title' => t('Panel page'),
+      'description' => '<em>' . t('You must activate the page manager module for this functionality.') . '</em>',
+    );
+  }
+  if (empty($vars['links']['panels_mini'])) {
+    $vars['links']['panels_mini'] = array(
+      'title' => t('Mini panel'),
+      'description' => '<em>' . t('You must activate the Mini panels module for this functionality.') . '</em>',
+    );
+  }
+  if (empty($vars['links']['panels_node'])) {
+    $vars['links']['panels_mini'] = array(
+      'title' => t('Panel node'),
+      'description' => '<em>' . t('You must activate the panel node module for this functionality.') . '</em>',
+    );
+  }
+}
+
+/**
+ * Implementation of hook_panels_dashboard_blocks().
+ *
+ * Adds page information to the Panels dashboard.
+ */
+function panels_panels_dashboard_blocks(&$vars) {
+  $vars['links']['panels_layout'] = array(
+    'title' => l(t('Custom layout'), 'admin/build/panels/layouts/add'),
+    'description' => t('Custom layouts can add more, site-specific layouts that you can use in your panels.'),
+  );
+
+   // Load all mini panels and their displays.
+  ctools_include('export');
+  $items = ctools_export_crud_load_all('panels_layout');
+  $count = 0;
+  $rows = array();
+
+  foreach ($items as $item) {
+    $rows[] = array(
+      check_plain($item->admin_title),
+      array(
+        'data' => l(t('Edit'), "admin/build/panels/layouts/list/$item->name/edit"),
+        'class' => 'links',
+      ),
+    );
+
+    // Only show 10.
+    if (++$count >= 10) {
+      break;
+    }
+  }
+
+  if ($rows) {
+    $content = theme('table', array(), $rows, array('class' => 'panels-manage'));
+  }
+  else {
+    $content = '<p>' . t('There are no custom layouts.') . '</p>';
+  }
+
+  $vars['blocks']['panels_layout'] = array(
+    'title' => t('Manage custom layouts'),
+    'link' => l(t('Go to list'), 'admin/build/panels/layouts'),
+    'content' => $content,
+    'class' => 'dashboard-layouts',
+    'section' => 'right',
+  );
+}
+
+function template_preprocess_panels_dashboard(&$vars) {
+  ctools_add_css('panels-dashboard', 'panels');
+  ctools_include('plugins');
+
+  $vars['image_path'] = ctools_image_path('', 'panels');
+
+  $vars['links'] = array();
+  $vars['blocks'] = array();
+
+  foreach (module_implements('panels_dashboard_blocks') as $module) {
+    $function = $module . '_panels_dashboard_blocks';
+    $function($vars);
+  }
+
+  // Add in any default links for modules that are not active
+  panels_dashboard_final_blocks($vars);
+
+  // If page manager module is enabled, add a very low eight block to
+  // list the page wizards.
+  if (module_exists('page_manager')) {
+    $vars['blocks']['wizards'] = array(
+      'weight' => -101,
+      'section' => 'right',
+      'title' => t('Page wizards'),
+      'content' => '',
+      'class' => 'dashboard-wizards',
+    );
+
+    ctools_include('page-wizard');
+    $plugins = page_manager_get_page_wizards();
+    uasort($plugins, 'ctools_plugin_sort');
+
+    foreach ($plugins as $id => $plugin) {
+      if (isset($plugin['type']) && $plugin['type'] == 'panels') {
+        $link = array(
+          'title' => l($plugin['title'], 'admin/build/pages/wizard/' . $id),
+          'description' => $plugin['description'],
+        );
+
+        $vars['blocks']['wizards']['content'] .= theme('panels_dashboard_link', $link);
+      }
+    }
+
+  }
+
+  uasort($vars['links'], 'ctools_plugin_sort');
+
+  $vars['blocks']['links'] = array(
+    'weight' => -100,
+    'section' => 'left',
+    'title' => t('Create new') . '...',
+    'content' => '',
+    'class' => 'dashboard-create',
+  );
+
+  // Turn the links into a block
+  foreach ($vars['links'] as $link) {
+    $vars['blocks']['links']['content'] .= theme('panels_dashboard_link', $link);
+  }
+
+  uasort($vars['blocks'], 'ctools_plugin_sort');
+
+  $vars['left'] = '';
+  $vars['right'] = '';
+
+  // Render all the blocks
+  foreach ($vars['blocks'] as $block) {
+    $section = !empty($block['section']) ? $block['section'] : 'left';
+    $vars[$section] .= theme('panels_dashboard_block', $block);
+  }
+}
+
+function panels_admin_settings_page() {
+  $form = array();
+  if (module_exists('page_manager')) {
+    foreach (page_manager_get_tasks() as $task) {
+      if ($function = ctools_plugin_get_function($task, 'admin settings')) {
+        $function($form);
+      }
+    }
+  }
+
+  ctools_include('content');
+  foreach (ctools_get_content_types() as $content) {
+    if ($function = ctools_plugin_get_function($content, 'admin settings')) {
+      $function($form);
+    }
+  }
+
+  if (empty($form)) {
+    return array('#value' => t('There are currently no settings to change, but additional plugins or modules may provide them in the future.'));
+  }
+
+  return system_settings_form($form);
+}
+
+/**
+ * Settings for panel contexts created by the page manager.
+ */
+function panels_admin_panel_context_page() {
+  ctools_include('common', 'panels');
+  return drupal_get_form('panels_common_settings', 'panels_page');
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/common.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/common.inc
new file mode 100644
index 0000000..16ed3fd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/common.inc
@@ -0,0 +1,573 @@
+<?php
+
+
+/**
+ * @file
+ * Functions used by more than one panels client module.
+ */
+
+/**
+ * Class definition for the allowed layouts governing structure.
+ *
+ * @ingroup mainapi
+ *
+ * This class is designed to handle panels allowed layouts data from start to finish, and sees
+ * action at two times:\n
+ *    - When a client module wants to generate a form allowing an admin to create or edit a set
+ *      of allowed layouts. In this case, either a new panels_allowed_layouts object is created
+ *      or one is retrieved from storage and panels_allowed_layouts::set_allowed() is called to
+ *      generate the allowed layouts form. \n
+ *    - When a client module is calling panels_edit_layout(), a saved instantiation of this object
+ *      can be called up and passed in to the fourth parameter, and only the allowed layouts saved
+ *      in that object will be displayed on the form. \n
+ * Because the panels API does not impose a data structure on the allowed_layouts data, client
+ * modules can create as many of these objects as they want, and organize them around any concept:
+ * node types, date published, author roles...anything.
+ *
+ * To call the settings form, instantiate this class - or, if your client module's needs are
+ * heavy-duty, extend this class and instantiate your subclass - assign values to any relevant
+ * desired members, and call panels_allowed_layouts::set_allowed(). See the documentation on
+ * that method for a sample implementation.
+ *
+ * Note that when unserializing saved tokens of this class, you must
+ * run panels_load_include('common') before unserializing in order to ensure
+ * that the object is properly loaded.
+ *
+ * Client modules extending this class should implement a save() method and use it for
+ * their custom data storage routine. You'll need to rewrite other class methods if
+ * you choose to go another route.
+ *
+ * @see panels_edit_layout()
+ * @see _panels_edit_layout()
+ *
+ */
+class panels_allowed_layouts {
+
+  /**
+   *  Specifies whether newly-added layouts (as in, new .inc files) should be automatically
+   *  allowed (TRUE) or disallowed (FALSE) for $this. Defaults to TRUE, which is more
+   *  permissive but less of an administrative hassle if/when you add new layouts. Note
+   *  that this parameter will be derived from $allowed_layouts if a value is passed in.
+   */
+  var $allow_new = TRUE;
+
+  /**
+   *  Optional member. If provided, the Panels API will generate a drupal variable using
+   *  variable_set($module_name . 'allowed_layouts', serialize($this)), thereby handling the
+   *  storage of this object entirely within the Panels API. This object will be
+   *  called and rebuilt by panels_edit_layout() if the same $module_name string is passed in
+   *  for the $allowed_types parameter. \n
+   *  This is primarily intended for convenience - client modules doing heavy-duty implementations
+   *  of the Panels API will probably want to create their own storage method.
+   * @see panels_edit_layout()
+   */
+  var $module_name = NULL;
+
+  /**
+   *  An associative array of all available layouts, keyed by layout name (as defined
+   *  in the corresponding layout plugin definition), with value = 1 if the layout is
+   *  allowed, and value = 0 if the layout is not allowed.
+   *  Calling array_filter(panels_allowed_layouts::$allowed_layout_settings) will return an associative array
+   *  containing only the allowed layouts, and wrapping that in array_keys() will
+   *  return an indexed version of that array.
+   */
+  var $allowed_layout_settings = array();
+
+  /**
+   * Hack-imitation of D6's $form_state. Used by the panels_common_set_allowed_types()
+   * form to indicate whether the returned value is in its 'render', 'failed-validate',
+   * or 'submit' stage.
+   */
+  var $form_state;
+
+  /**
+   * Constructor function; loads the $allowed_layout_settings array with initial values according
+   * to $start_allowed
+   *
+   * @param bool $start_allowed
+   *  $start_allowed determines whether all available layouts will be marked
+   *  as allowed or not allowed on the initial call to panels_allowed_layouts::set_allowed()
+   *
+   */
+  function panels_allowed_layouts($start_allowed = TRUE) {
+    // TODO would be nice if there was a way to just fetch the names easily
+    foreach ($this->list_layouts() as $layout_name) {
+      $this->allowed_layout_settings[$layout_name] = $start_allowed ? 1 : 0;
+    }
+  }
+
+  /**
+   * Manage panels_common_set_allowed_layouts(), the FAPI code for selecting allowed layouts.
+   *
+   * MAKE SURE to set panels_allowed_layouts::allow_new before calling this method. If you want the panels API
+   * to handle saving these allowed layout settings, panels_allowed_layouts::module_name must also be set.
+   *
+   * Below is a sample implementation; refer to the rest of the class documentation to understand all the
+   * specific pieces. Values that are intended to be replaced are wrapped with <>.
+   *
+   * \n @code
+   *  function docdemo_allowed_layouts() {
+   *    ctools_include('common', 'panels');
+   *    if (!is_a($allowed_layouts = unserialize(variable_get('panels_common_allowed_layouts', serialize(''))), 'panels_allowed_layouts')) {
+   *     $allowed_layouts = new panels_allowed_layouts();
+   *      $allowed_layouts->allow_new = TRUE;
+   *      $allowed_layouts->module_name = '<client_module_name>';
+   *    }
+   *    $result = $allowed_layouts->set_allowed('<Desired client module form title>');
+   *    if (in_array($allowed_layouts->form_state, array('failed-validate', 'render'))) {
+   *     return $result;
+   *    }
+   *    elseif ($allowed_layouts->form_state == 'submit') {
+   *      drupal_goto('</path/to/desired/redirect>');
+   *    }
+   *  }
+   * @endcode \n
+   *
+   * If $allowed_layouts->form_state == 'failed-validate' || 'render', then you'll need to return
+   * $result as it contains the structured form HTML generated by drupal_render_form() and is ready
+   * to be passed through index.php's call to theme('page', ...).
+   *
+   * However, if $allowed_layouts->form_state == 'submit', then the form has been submitted and we should
+   * react. It's really up to your client module how you handle the rest; panels_allowed_layouts::save() (or
+   * panels_allowed_layouts::api_save(), if that's the route you're going) will have already been called,
+   * so if those methods handle your save routine, then all there is left to do is handle redirects, if you
+   * want. The current implementation of the allowed layouts form currently never redirects, so it's up to
+   * you to control where the user ends up next.
+   *
+   * @param string $title
+   *  Used to set the title of the allowed layouts form. If no value is given, defaults to
+   *  'Panels: Allowed Layouts'.
+   *
+   * @return mixed $result
+   *  - On the first passthrough when the form is being rendered, $result is the form's structured
+   *    HTML, ready to be pushed to the screen with a call to theme('page', ...).
+   *  - A successful second passthrough indicates a successful submit, and
+   *    $result === panels_allowed_layouts::allowed_layout_settings. Returning it is simply for convenience.
+   */
+  function set_allowed($title = 'Panels: Allowed Layouts') {
+    $this->sync_with_available();
+    $form_id = 'panels_common_set_allowed_layouts';
+    // TODO switch to drupal_build_form(); need to pass by ref
+    $form = drupal_retrieve_form($form_id, $this, $title);
+
+    if ($result = drupal_process_form($form_id, $form)) {
+      // successful submit
+      $this->form_state = 'submit';
+      return $result;
+    }
+    $this->form_state = isset($_POST['op']) ? 'failed-validate' : 'render';
+    $result = drupal_render_form($form_id, $form);
+    return $result;
+  }
+
+  /**
+   * Checks for newly-added layouts and deleted layouts. If any are found, updates panels_allowed_layouts::allowed_layout_settings;
+   * new additions are made according to panels_allowed_layouts::allow_new, while deletions are unset().
+   *
+   * Note that any changes made by this function are not saved in any permanent location.
+   */
+  function sync_with_available() {
+    $layouts = $this->list_layouts();
+    foreach (array_diff($layouts, array_keys($this->allowed_layout_settings)) as $new_layout) {
+      $this->allowed_layout_settings[$new_layout] = $this->allow_new ? 1 : 0;
+    }
+    foreach (array_diff(array_keys($this->allowed_layout_settings), $layouts) as $deleted_layout) {
+      unset($this->allowed_layout_settings[$deleted_layout]);
+    }
+  }
+
+  /**
+   * Use panels_allowed_layouts::module_name to generate a variable for variable_set(), in which
+   * a serialized version of $this will be stored.
+   *
+   * Does nothing if panels_allowed_layouts::module_name is not set.
+   *
+   * IMPORTANT NOTE: if you use variable_get() in a custom client module save() method, you MUST
+   * wrap $this in serialize(), then unserialize() what you get from variable_get(). Failure to
+   * do so will result in an incomplete object. The following code will work:
+   * @code
+   *  $allowed_layouts = unserialize(variable_get('your_variable_name', serialize(''));
+   * @endcode
+   *
+   * If you don't serialize the second parameter of variable_get() and the variable name you provide
+   * can't be found, an E_STRICT warning will be generated for trying to unserialize an entity
+   * that has not been serialized.
+   *
+   */
+  function save() {
+    if (!is_null($this->module_name)) {
+      variable_set($this->module_name . "_allowed_layouts", serialize($this));
+    }
+  }
+
+  /**
+   * Snag a list of the current layouts for internal use.
+   *
+   * Data is not saved in a class member in order to ensure that it's
+   * fresh.
+   *
+   * @return array $layouts
+   *  An indexed array of the system names for all currently available layouts.
+   */
+  function list_layouts() {
+    static $layouts = array();
+    if (empty($layouts)) {
+      ctools_include('plugins', 'panels');
+      $layouts = array_keys(panels_get_layouts());
+    }
+    return $layouts;
+  }
+}
+
+/**
+ * A common settings page for Panels modules, because this code is relevant to
+ * any modules that don't already have special requirements.
+ */
+function panels_common_settings(&$form_state, $module_name = 'panels_common') {
+  ctools_include('plugins', 'panels');
+  ctools_include('content');
+  $content_types = ctools_get_content_types();
+  $skip = FALSE;
+
+  $default_types = variable_get($module_name . '_default', NULL);
+  if (!isset($default_types)) {
+    $default_types = array('other' => TRUE);
+    $skip = TRUE;
+  }
+
+  foreach ($content_types as $id => $info) {
+    if (empty($info['single'])) {
+      $default_options[$id] = t('New @s', array('@s' => $info['title']));
+      if ($skip) {
+        $default_types[$id] = TRUE;
+      }
+    }
+  }
+
+  $default_options['other'] = t('New content of other types');
+  $form['panels_common_default'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('New content behavior'),
+    '#description' => t('Select the default behavior of new content added to the system. If checked, new content will automatically be immediately available to be added to Panels pages. If not checked, new content will not be available until specifically allowed here.'),
+    '#options' => $default_options,
+    '#default_value' => array_keys(array_filter($default_types)),
+  );
+
+  $form_state['skip'] = $skip;
+  if ($skip) {
+    $form['markup'] = array('#value' => t('<p>Click Submit to be presented with a complete list of available content types set to the defaults you selected.</p>'));
+  }
+  else {
+    // Rebuild the entire list, setting appropriately from defaults. Give
+    // each type its own checkboxes set unless it's 'single' in which
+    // case it can go into our fake other set.
+    $available_content_types = ctools_content_get_all_types();
+    $allowed_content_types = variable_get($module_name . '_allowed_types', array());
+
+    foreach ($available_content_types as $id => $types) {
+      foreach ($types as $type => $info) {
+        $key = $id . '-' . $type;
+        $checkboxes = empty($content_types[$id]['single']) ? $id : 'other';
+        $options[$checkboxes][$key] = $info['title'];
+        if (!isset($allowed_content_types[$key])) {
+          $allowed[$checkboxes][$key] = isset($default_types[$id]) ? $default_types[$id] : $default_types['other'];
+        }
+        else {
+          $allowed[$checkboxes][$key] = $allowed_content_types[$key];
+        }
+      }
+    }
+
+    $form['content_types'] = array(
+      '#tree' => TRUE,
+      '#prefix' => '<div class="clear-block">',
+      '#suffix' => '</div>',
+    );
+    // cheat a bit
+    $content_types['other'] = array('title' => t('Other'), 'weight' => 10);
+    foreach ($content_types as $id => $info) {
+      if (isset($allowed[$id])) {
+        $form['content_types'][$id] = array(
+          '#prefix' => '<div class="panels-page-type-container">',
+          '#suffix' => '</div>',
+          '#type' => 'checkboxes',
+          '#title' => t('Allowed @s content', array('@s' => $info['title'])),
+          '#options' => $options[$id],
+          '#default_value' => array_keys(array_filter($allowed[$id])),
+          '#checkall' => TRUE,
+        );
+      }
+    }
+  }
+
+  panels_common_allowed_layouts_form($form, $form_state, $module_name);
+
+  $form['module_name'] = array(
+    '#type' => 'value',
+    '#value' => $module_name,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  ctools_add_css('panels_page', 'panels');
+  return $form;
+}
+
+/**
+ * Submit hook for panels_common_settings
+ */
+function panels_common_settings_validate($form, &$form_state) {
+  panels_common_allowed_layouts_form_validate($form, $form_state);
+}
+
+/**
+ * Submit hook for panels_common_settings
+ */
+function panels_common_settings_submit($form, &$form_state) {
+  panels_common_allowed_layouts_form_submit($form, $form_state);
+  $module_name = $form_state['values']['module_name'];
+  variable_set($module_name . '_default', $form_state['values']['panels_common_default']);
+  if (!$form_state['skip']) {
+    // merge the broken apart array neatly back together
+    variable_set($module_name . '_allowed_types', call_user_func_array('array_merge', $form_state['values']['content_types']));
+  }
+  drupal_set_message(t('Your changes have been saved.'));
+}
+
+/**
+ * Based upon the settings, get the allowed types for this node.
+ */
+function panels_common_get_allowed_types($module, $contexts = array(), $has_content = FALSE, $default_defaults = array(), $default_allowed_types = array()) {
+  // Get a list of all types that are available
+
+  $default_types = variable_get($module . '_default', $default_defaults);
+  $allowed_types = variable_get($module . '_allowed_types', $default_allowed_types);
+
+  // By default, if they haven't gone and done the initial setup here,
+  // let all 'other' types (which will be all types) be available.
+  if (!isset($default_types['other'])) {
+    $default_types['other'] = TRUE;
+  }
+
+  ctools_include('content');
+  $content_types = ctools_content_get_available_types($contexts, $has_content, $allowed_types, $default_types);
+
+  return $content_types;
+}
+
+/**
+ * The FAPI code for generating an 'allowed layouts' selection form.
+ *
+ * NOTE: Because the Panels API does not guarantee a particular method of storing the data on allowed layouts,
+ * it is not_possible for the Panels API to implement any checks that determine whether reductions in
+ * the set of allowed layouts conflict with pre-existing layout selections. $displays in that category
+ * will continue to function with their current layout as normal until the user/owner/admin attempts
+ * to change layouts on that display, at which point they will have to select from the new set of
+ * allowed layouts. If this is not the desired behavior for your client module, it's up to you to
+ * write a validation routine that determines what should be done with conflicting layouts.
+ *
+ * Remember that changing layouts where panes have already been created can result in data loss;
+ * consult panels_change_layout() to see how the Panels API handles that process. Running
+ * drupal_execute('panels_change_layout', ...) is one possible starting point.
+ *
+ * @ingroup forms
+ *
+ * @param array $allowed_layouts
+ *  The set of allowed layouts that should be used as the default values
+ *  for this form. If none is provided, then by default no layouts will be restricted.
+ */
+function panels_common_allowed_layouts_form(&$form, &$form_state, $module_name) {
+  // Fetch our allowed layouts from variables.
+  $allowed_layouts = panels_common_get_allowed_layout_object($module_name);
+
+  $layouts = panels_get_layouts();
+  foreach ($layouts as $id => $layout) {
+    $options[$id] = panels_print_layout_icon($id, $layout, check_plain($layout['title']));
+  }
+
+  $form_state['allowed_layouts'] = &$allowed_layouts;
+
+  ctools_add_js('layout', 'panels');
+  $form['layouts'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Select allowed layouts'),
+    '#options' => $options,
+    '#description' => t('Check the boxes for all layouts you want to allow users choose from when picking a layout. You must allow at least one layout.'),
+    '#default_value' => array_keys(array_filter($allowed_layouts->allowed_layout_settings)),
+    '#prefix' => '<div class="clear-block panels-layouts-checkboxes">',
+    '#suffix' => '</div>',
+    '#checkall' => TRUE,
+  );
+
+  return $form;
+}
+
+function panels_common_allowed_layouts_form_validate($form, &$form_state) {
+  $selected = array_filter($form_state['values']['layouts']);
+  if (empty($selected)) {
+    form_set_error('layouts', 'You must choose at least one layout to allow.');
+  }
+}
+
+function panels_common_allowed_layouts_form_submit($form, &$form_state) {
+  foreach ($form_state['values']['layouts'] as $layout => $setting) {
+    $form_state['allowed_layouts']->allowed_layout_settings[$layout] = (bool) $setting;
+  }
+  $form_state['allowed_layouts']->save();
+}
+
+/**
+ * Get the allowed layout object for the given module.
+ */
+function panels_common_get_allowed_layout_object($module_name) {
+  $allowed_layouts = unserialize(variable_get($module_name . "_allowed_layouts", serialize('')));
+
+  // if no parameter was provided, or the variable_get failed
+  if (!$allowed_layouts) {
+    // still no dice. simply creates a dummy version where all layouts
+    // are allowed.
+    $allowed_layouts = new panels_allowed_layouts();
+    $allowed_layouts->allow_new = TRUE;
+    $allowed_layouts->module_name = $module_name;
+  }
+
+  // sanitize allowed layout listing; this is redundant if the
+  // $allowed_layouts param was null, but the data is cached anyway
+  $allowed_layouts->sync_with_available();
+
+  return $allowed_layouts;
+}
+
+/**
+ * Get the allowed layouts for the given module.
+ */
+function panels_common_get_allowed_layouts($module_name) {
+  $available_layouts = panels_get_layouts();
+  if (empty($module_name)) {
+    return $available_layouts;
+  }
+  else if (is_object($module_name)) {
+    $allowed_layouts = $module_name;
+  }
+  else {
+    $allowed_layouts = panels_common_get_allowed_layout_object($module_name);
+  }
+
+  $allowed = array_filter($allowed_layouts->allowed_layout_settings);
+  $order = array();
+  foreach ($available_layouts as $name => $plugin) {
+    if (!empty($allowed[$name])) {
+      $order[$name] = $plugin['category'] . ':' . $plugin['title'];
+    }
+  }
+
+  // Sort
+  $layouts = array();
+
+  asort($order);
+  foreach ($order as $name => $junk) {
+    $layouts[$name] = $available_layouts[$name];
+  }
+
+  return $layouts;
+}
+
+/**
+ * Create a visible list of content in a display.
+ * Note that the contexts must be pre-loaded.
+ */
+function theme_panels_common_content_list($display) {
+  $layout = panels_get_layout($display->layout);
+  $content = '<dl class="content-list">';
+  foreach (panels_get_regions($layout, $display) as $panel_id => $title) {
+    $content .= "<dt>$title</dt><dd>";
+    if (!empty($display->panels[$panel_id])) {
+      $content .= '<ol>';
+      foreach ($display->panels[$panel_id] as $pid) {
+        $content .= '<li>' . panels_get_pane_title($display->content[$pid], $display->context) . '</li>';
+      }
+      $content .= '</ol>';
+    }
+    else {
+      $content .= t('Empty');
+    }
+    $content .= '</dd>';
+  }
+  $content .= '</dl>';
+  return $content;
+}
+
+/**
+ * Print a selector of layouts, each linked to the next step.
+ *
+ * Most operations use radio buttons for selecting layouts, but some will
+ * give each layout as a link that goes to the next step. This function
+ * makes it easy to simply provide a list of allowed layouts and the base
+ * path.
+ *
+ * One limitation is that it will only append the layout name to the end, so
+ * if the actual layout name is needed in the middle, that can't happen.
+ *
+ * @return
+ *   The rendered output.
+ */
+function panels_common_print_layout_links($layouts, $base_path, $link_options = array()) {
+  $output = '';
+
+  $categories = array();
+  ctools_include('cleanstring');
+  foreach ($layouts as $id => $layout) {
+    $category = ctools_cleanstring($layout['category']);
+
+    $categories[$category] = $layout['category'];
+    $options[$category][$id] = panels_print_layout_link($id, $layout, $base_path . '/' . $id, $link_options);
+  }
+
+  $form = array();
+  $form['categories'] = array(
+    '#title' => t('Category'),
+    '#type' => 'select',
+    '#options' => $categories,
+    '#name' => 'categories',
+    '#id' => 'edit-categories',
+    '#value' => '',
+    '#parents' => array('categories'),
+  );
+
+  $output .= drupal_render($form);
+
+  $output .= '<div class="panels-choose-layout panels-layouts-checkboxes clear-block">';
+
+  // We're doing these dependencies completely manualy, which is unusual, but
+  // the process code only supports doing them in a form.
+  // @todo modify dependent.inc to make this easier.
+
+  $dependencies = array();
+  foreach ($options as $category => $links) {
+    $dependencies['panels-layout-category-' . $category] = array(
+      'values' => array('edit-categories' => array($category)),
+      'num' => 1,
+      'type' => 'hide',
+    );
+
+    $output .= '<div id="panels-layout-category-' . $category . '-wrapper">';
+    $output .= '<div id="panels-layout-category-' . $category . '" class="form-checkboxes clear-block">';
+    $output .= '<div class="panels-layouts-category">' . $categories[$category] . '</div>';
+
+    foreach ($links as $key => $link) {
+      $output .= $link;
+    }
+    $output .= '</div></div>';
+  }
+
+  $output .= '</div>';
+
+  ctools_add_js('dependent');
+  $js['CTools']['dependent'] = $dependencies;
+  drupal_add_js($js, 'setting');
+
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/display-edit.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/display-edit.inc
new file mode 100644
index 0000000..e1b8c7b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/display-edit.inc
@@ -0,0 +1,303 @@
+<?php
+
+/*
+ * @file
+ * Core Panels API include file containing various display-editing functions.
+ * This includes all the basic editing forms (content, layout, layout settings)
+ * as well as the ajax modal forms associated with them.
+ */
+
+
+/**
+ * Handle calling and processing of the form for editing display content.
+ *
+ * Helper function for panels_edit().
+ *
+ * @see panels_edit() for details on the various behaviors of this function.
+ */
+function _panels_edit($display, $destination, $content_types, $title = FALSE) {
+  $did = $display->did;
+  if (!$did) {
+    $display->did = $did = 'new';
+  }
+
+  // Load the display being edited from cache, if possible.
+  if (!empty($_POST) && is_object($cache = panels_edit_cache_get($did))) {
+    $display = $cache->display;
+  }
+  else {
+    $cache = panels_edit_cache_get_default($display, $content_types, $title);
+  }
+
+  // Get a renderer.
+  $renderer = panels_get_renderer_handler('editor', $display);
+  $renderer->cache = $cache;
+
+  $output = $renderer->edit();
+  if (is_object($output) && $destination) {
+    return panels_goto($destination);
+  }
+  return $output;
+}
+
+/**
+ * Form definition for the panels display editor
+ *
+ * No validation function is necessary, as all 'validation' is handled
+ * either in the lead-up to form rendering (through the selection of
+ * specified content types) or by the validation functions specific to
+ * the ajax modals & content types.
+ *
+ * @ingroup forms
+ * @see panels_edit_display_submit()
+ */
+function panels_edit_display_form(&$form_state) {
+  $display = &$form_state['display'];
+  $renderer = &$form_state['renderer'];
+
+  // Make sure there is a valid cache key.
+  $cache_key = isset($display->cache_key) ? $display->cache_key : $display->did;
+  $display->cache_key = $cache_key;
+
+  // Annoyingly, theme doesn't have access to form_state so we have to do this.
+  $form['#display'] = $display;
+
+  // The flexible layout maker wants to be able to edit a display without
+  // actually editing a display, so we provide this 'setting' to allow
+  // that to go away.
+  if (empty($form_state['no display settings'])) {
+    $links = $renderer->get_display_links();
+  }
+  else {
+    $links = '';
+  }
+  $form['hide']['display-settings'] = array(
+    '#value' => $links,
+  );
+
+  $form += panels_edit_display_settings_form($form_state);
+
+  $form['panel'] = array('#tree' => TRUE);
+  $form['panel']['pane'] = array('#tree' => TRUE);
+
+  $form['display'] = array(
+    '#value' => $renderer->render(),
+  );
+
+  foreach ($renderer->plugins['layout']['panels'] as $region_id => $title) {
+    // Make sure we at least have an empty array for all possible locations.
+    if (!isset($display->panels[$region_id])) {
+      $display->panels[$region_id] = array();
+    }
+
+    $form['panel']['pane'][$region_id] = array(
+      // Use 'hidden' instead of 'value' so the js can access it.
+      '#type' => 'hidden',
+      '#default_value' => implode(',', (array) $display->panels[$region_id]),
+    );
+  }
+
+  if (empty($form_state['no buttons'])) {
+    $form['buttons']['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Save'),
+      '#id' => 'panels-dnd-save',
+      '#submit' => array('panels_edit_display_form_submit'),
+      '#save-display' => TRUE,
+    );
+    $form['buttons']['cancel'] = array(
+      '#type' => 'submit',
+      '#value' => t('Cancel'),
+    );
+  }
+
+  // Build up the preview portion of the form, if necessary.
+  if (empty($form_state['no preview'])) {
+    $form['preview'] = array(
+      '#tree' => TRUE,
+      '#prefix' => '<h2>' . t('Live preview') . '</h2>' . '<div id="panels-live-preview">',
+      '#suffix' => '</div>',
+    );
+
+    ctools_context_replace_form($form['preview'], $display->context);
+    $form['preview']['button'] = array(
+      '#type' => 'submit',
+      '#value' => t('Preview'),
+      '#attributes' => array('class' => 'ctools-use-ajax'),
+      '#id' => 'panels-live-preview-button',
+      '#submit' => array('panels_edit_display_form_submit', 'panels_edit_display_form_preview'),
+    );
+  }
+
+  return $form;
+}
+
+/**
+ * Handle form submission of the display content editor.
+ *
+ * This reads the location of the various panes from the form, which will
+ * have been modified from the ajax, rearranges them and then saves
+ * the display.
+ */
+function panels_edit_display_form_submit($form, &$form_state) {
+  $display = &$form_state['display'];
+
+  $old_content = $display->content;
+  $display->content = array();
+
+  if (!empty($form_state['values']['panel']['pane'])) {
+    foreach ($form_state['values']['panel']['pane'] as $panel_id => $panes) {
+      $display->panels[$panel_id] = array();
+      if ($panes) {
+        $pids = explode(',', $panes);
+        // need to filter the array, b/c passing it in a hidden field can generate trash
+        foreach (array_filter($pids) as $pid) {
+          if ($old_content[$pid]) {
+            $display->panels[$panel_id][] = $pid;
+            $old_content[$pid]->panel = $panel_id;
+            $display->content[$pid] = $old_content[$pid];
+          }
+        }
+      }
+    }
+  }
+
+  panels_edit_display_settings_form_submit($form, $form_state);
+}
+
+/**
+ * Submission of the preview button. Render the preview and put it into
+ * the preview widget area.
+ */
+function panels_edit_display_form_preview(&$form, &$form_state) {
+  $display = &$form_state['display'];
+  ctools_include('ajax');
+
+  $display->context = ctools_context_replace_placeholders($display->context, $form_state['values']['preview']);
+  $display->skip_cache = TRUE;
+  $output = panels_render_display($display);
+
+  // Add any extra CSS that some layouts may have added specifically for this.
+  if (!empty($display->add_css)) {
+    $output = "<style type=\"text/css\">\n$display->add_css</style>\n" . $output;
+  }
+
+  $commands = array();
+  $commands[] = array(
+    'command' => 'panel_preview',
+    'output' => $output,
+  );
+
+  ctools_ajax_render($commands);
+}
+
+
+/**
+ * Form for display settings.
+ */
+function panels_edit_display_settings_form(&$form_state) {
+  $form = array();
+  $display = &$form_state['display'];
+
+  $layout = panels_get_layout($display->layout);
+  $form_state['layout'] = $layout;
+
+  ctools_include('dependent');
+
+  if ($form_state['display_title']) {
+    $form['display_title'] = array (
+      '#tree' => TRUE,
+    );
+
+    $form['display_title']['hide_title'] = array(
+      '#type' => 'select',
+      '#title' => t('Title type'),
+      '#default_value' => (int) $display->hide_title,
+      '#options' => array(
+        PANELS_TITLE_NONE => t('No title'),
+        PANELS_TITLE_FIXED => t('Manually set'),
+        PANELS_TITLE_PANE => t('From pane'),
+      ),
+    );
+
+    $form['display_title']['title'] = array(
+      '#type' => 'textfield',
+      '#default_value' => $display->title,
+      '#title' => t('Title'),
+      '#description' => t('The title of this panel. If left blank, a default title may be used. If you want the title actually to be blank, change the "Title type" dropdown from "Manually Set" to "No Title".'),
+      '#process' => array('ctools_dependent_process'),
+      '#dependency' => array('edit-display-title-hide-title' => array(PANELS_TITLE_FIXED)),
+    );
+
+    if (!empty($display->context)) {
+      $form['display_title']['title']['#description'] .= ' ' . t('You may use substitutions in this title.');
+
+      // We have to create a manual fieldset because fieldsets do not support IDs.
+      // Use 'hidden' instead of 'markup' so that the process will run.
+      // Add js for collapsible fieldsets manually
+      drupal_add_js('misc/collapse.js');
+      $form['display_title']['contexts_prefix'] = array(
+        '#type' => 'hidden',
+        '#id' => 'edit-display-substitutions',
+        '#prefix' => '<div><fieldset id="edit-display-substitutions" class="collapsed collapsible"><legend>' . t('Substitutions') . '</legend>',
+        '#process' => array('ctools_dependent_process'),
+        '#dependency' => array('edit-display-title-hide-title' => array(PANELS_TITLE_FIXED)),
+      );
+
+      $rows = array();
+      foreach ($display->context as $context) {
+        foreach (ctools_context_get_converters('%' . check_plain($context->keyword) . ':', $context) as $keyword => $title) {
+          $rows[] = array(
+            check_plain($keyword),
+            t('@identifier: @title', array('@title' => $title, '@identifier' => $context->identifier)),
+          );
+        }
+      }
+
+      $header = array(t('Keyword'), t('Value'));
+      $form['display_title']['contexts'] = array(
+        '#value' => theme('table', $header, $rows),
+      );
+      $form['display_title']['contexts_suffix'] = array(
+        '#value' => '</fieldset></div>',
+      );
+    }
+  }
+
+  // TODO doc the ability to do this as part of the API
+  if (!empty($layout['settings form']) && function_exists($layout['settings form'])) {
+    $form['layout_settings'] = $layout['settings form']($display, $layout, $display->layout_settings);
+  }
+  $form['layout_settings']['#tree'] = TRUE;
+
+  return $form;
+}
+
+/**
+ * Validate the layout settings form.
+ */
+function panels_edit_display_settings_form_validate($form, &$form_state) {
+  if ($function = panels_plugin_get_function('layout', $form_state['layout'], 'settings validate')) {
+    $function($form_state['values']['layout_settings'], $form['layout_settings'], $form_state['display'], $form_state['layout'], $form_state['display']->layout_settings);
+  }
+}
+
+/**
+ * Store changes from the layout settings form.
+ */
+function panels_edit_display_settings_form_submit($form, &$form_state) {
+  $display = &$form_state['display'];
+  if ($function = panels_plugin_get_function('layout', $form_state['layout'], 'settings submit')) {
+    $function($form_state['values']['layout_settings'], $display, $form_state['layout'], $display->layout_settings);
+  }
+
+  // Since not all layouts have layout settings, check here in case of notices.
+  if (isset($form_state['values']['layout_settings'])) {
+    $display->layout_settings = $form_state['values']['layout_settings'];
+  }
+
+  if (isset($form_state['values']['display_title']['title'])) {
+    $display->title = $form_state['values']['display_title']['title'];
+    $display->hide_title = $form_state['values']['display_title']['hide_title'];
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/display-layout.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/display-layout.inc
new file mode 100644
index 0000000..da3acce
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/display-layout.inc
@@ -0,0 +1,294 @@
+<?php
+
+/**
+ * @file
+ *
+ * Handle the forms for changing a display's layout.
+ */
+
+/**
+ * Handle calling and processing of the form for editing display layouts.
+ *
+ * Helper function for panels_edit_layout().
+ *
+ * @see panels_edit_layout() for details on the various behaviors of this function.
+ */
+function _panels_edit_layout($display, $finish, $destination, $allowed_layouts) {
+  ctools_include('common', 'panels');
+  ctools_include('form');
+
+  $form_state = array(
+    'display' => &$display,
+    'finish' => $finish,
+    'destination' => $destination,
+    'allowed_layouts' => $allowed_layouts,
+    're_render' => FALSE,
+    'no_redirect' => TRUE,
+  );
+
+  $change_form_state = $form_state;
+
+  $change_form = FALSE;
+
+  // Examine $_POST to see which form they're currently using.
+  if (empty($_POST) || empty($_POST['form_id']) || $_POST['form_id'] != 'panels_change_layout') {
+    $output = ctools_build_form('panels_choose_layout', $form_state);
+    if (empty($output)) {
+      // upon submission go to next form.
+      $change_form_state['layout'] = $_SESSION['layout'][$display->did] = $form_state['layout'];
+      $change_form = TRUE;
+    }
+  }
+  else {
+    $change_form_state['layout'] = $_SESSION['layout'][$display->did];
+    $change_form = TRUE;
+  }
+
+  if ($change_form) {
+    $output = ctools_build_form('panels_change_layout', $change_form_state);
+    if (empty($output)) {
+      if (isset($change_form_state['back'])) {
+        $_POST = array();
+        return _panels_edit_layout($display, $finish, $destination, $allowed_layouts);
+      }
+
+      if (!empty($change_form_state['clicked_button']['#save-display'])) {
+        drupal_set_message(t('Panel layout has been updated.'));
+        panels_save_display($display);
+      }
+
+      if ($destination) {
+        return panels_goto($destination);
+      }
+      return $change_form_state['display'];
+    }
+  }
+  return $output;
+}
+
+/**
+ * Form definition for the display layout editor.
+ *
+ * @ingroup forms
+ */
+function panels_choose_layout(&$form_state) {
+  $display = &$form_state['display'];
+  ctools_include('common', 'panels');
+  ctools_include('cleanstring');
+
+  $layouts = panels_common_get_allowed_layouts($form_state['allowed_layouts']);
+  $categories = array();
+  $current = '';
+  foreach ($layouts as $id => $layout) {
+    $category = ctools_cleanstring($layout['category']);
+    // Default category to first in case layout doesn't exist or there isn't one.
+    if (empty($current)) {
+      $current = $category;
+    }
+
+    $categories[$category] = $layout['category'];
+    $options[$category][$id] = panels_print_layout_icon($id, $layout, check_plain($layout['title']));
+
+    // Set current category to what is chosen.
+    if ($id == $display->layout) {
+      $current = $category;
+    }
+  }
+
+  ctools_add_js('layout', 'panels');
+
+  $form['categories'] = array(
+    '#title' => t('Category'),
+    '#type' => 'select',
+    '#options' => $categories,
+    '#default_value' => $current,
+  );
+
+  $form['layout'] = array(
+    '#prefix' => '<div class="panels-choose-layout panels-layouts-checkboxes clear-block">',
+    '#suffix' => '</div>',
+  );
+
+  // We set up the dependencies manually because these aren't really form
+  // items. It's possible there's a simpler way to do this, but I could not
+  // think of one at the time.
+  $dependencies = array();
+  foreach ($options as $category => $radios) {
+    $dependencies['panels-layout-category-' . $category] = array(
+      'values' => array('edit-categories' => array($category)),
+      'num' => 1,
+      'type' => 'hide',
+    );
+
+    $form['layout'][$category] = array(
+      '#prefix' => '<div id="panels-layout-category-' . $category . '-wrapper"><div id="panels-layout-category-' . $category . '" class="form-checkboxes clear-block"><div class="panels-layouts-category">' . $categories[$category] . '</div>',
+      '#suffix' => '</div></div>',
+    );
+
+    foreach ($radios as $key => $choice) {
+      // Generate the parents as the autogenerator does, so we will have a
+      // unique id for each radio button.
+      $form['layout'][$category][$key] = array(
+        '#type' => 'radio',
+        '#title' => $choice,
+        '#parents' => array('layout'),
+        '#id' => form_clean_id('edit-layout-' . $key),
+        '#return_value' => check_plain($key),
+        '#default_value' => in_array($display->layout, array_keys($layouts)) ? $display->layout : NULL,
+      );
+    }
+  }
+
+  ctools_add_js('dependent');
+  $js['CTools']['dependent'] = $dependencies;
+  drupal_add_js($js, 'setting');
+
+
+  if (empty($form_state['no buttons'])) {
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Next'),
+    );
+  }
+
+  return $form;
+}
+
+/**
+ * Handle form submission of the display layout editor.
+ */
+function panels_choose_layout_submit($form, &$form_state) {
+  $form_state['layout'] = $form_state['values']['layout'];
+}
+
+/**
+ * Form definition for the display layout converter.
+ *
+ * This form is only triggered if the user attempts to change the layout
+ * for a display that has already had content assigned to it. It allows
+ * the user to select where the panes located in to-be-deleted panels should
+ * be relocated to.
+ *
+ * @ingroup forms
+ *
+ * @param array $form
+ *  A structured FAPI $form array.
+ * @param object $display instanceof panels_display \n
+ *  The panels_display object that was modified on the preceding display layout
+ *  editing form.
+ * @param string $new_layout_id
+ *  A string containing the name of the layout the display is to be converted to.
+ *  These strings correspond exactly to the filenames of the *.inc files in panels/layouts.
+ *  So, if the new layout that's been selected is the 'Two Column bricks' layout, then
+ *  $new_layout_id will be 'twocol_bricks', corresponding to panels/layouts/twocol_bricks.inc.
+ */
+function panels_change_layout(&$form_state) {
+  $display = &$form_state['display'];
+
+  $new_layout = panels_get_layout($form_state['layout']);
+  $new_layout_panels = panels_get_regions($new_layout, $display);
+
+  $options = $new_layout_panels;
+  $keys = array_keys($options);
+  $default = current($options);
+
+  $old_layout = panels_get_layout($display->layout);
+
+  $form['container'] = array(
+    '#prefix' => '<div class="change-layout-display">',
+    '#suffix' => '</div>',
+  );
+
+  $form['container']['old_layout'] = array(
+    '#value' => panels_print_layout_icon($display->layout, $old_layout, check_plain($old_layout['title'])),
+  );
+
+  $form['container']['right_arrow'] = array(
+    '#value' => theme('image', drupal_get_path('module', 'panels') . '/images/go-right.png'),
+  );
+  $form['container']['new_layout'] = array(
+    '#value' => panels_print_layout_icon($form_state['layout'], $new_layout, check_plain($new_layout['title'])),
+  );
+
+  $form['container-clearer'] = array(
+    // TODO: FIx this ot use clear-block instead
+    '#value' => '<div style="clear: both;"></div>',
+  );
+
+  $form['old'] = array(
+    '#tree' => true,
+    '#prefix' => '<div class="panels-layout-list">',
+    '#suffix' => '</div>',
+  );
+
+  $old_layout_panels = panels_get_regions($old_layout, $display);
+  if (empty($display->panels)) {
+    $form['old'] = array(
+      '#prefix' => '<div>',
+      '#value' => t('There is no content in the panel display. If there were content, you would be given an opportunity to select where in the new layout the old content would be placed. Select "Save" or "Continue" to proceed. This change will not be processed if you do not continue.'),
+      '#suffix' => '</div>',
+    );
+  }
+
+  foreach ($display->panels as $id => $content) {
+    $form['old'][$id] = array(
+      '#type' => 'select',
+      '#title' => t('Move content in @layout to', array('@layout' => $old_layout_panels[$id])),
+      '#options' => $options,
+      '#default_value' => array_key_exists($id, $options) ? $id : $default,
+    );
+  }
+
+  if (empty($form_state['no buttons'])) {
+    $form['back'] = array(
+      '#type' => 'submit',
+      '#value' => t('Back'),
+      '#submit' => array('panels_choose_layout_back'),
+    );
+
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => $form_state['finish'],
+      '#submit' => array('panels_change_layout_submit'),
+      '#save-display' => TRUE,
+    );
+  }
+  return $form;
+}
+
+/**
+ * Handle submission of the change layout form.
+ *
+ * This submit handler will move panes around and save the display.
+ */
+function panels_change_layout_submit($form, &$form_state) {
+  $display = &$form_state['display'];
+
+  if (!empty($form_state['values']['old'])) {
+    foreach ($form_state['values']['old'] as $id => $new_id) {
+      if (isset($display->panels[$id])) {
+        if (!isset($content[$new_id])) {
+          $content[$new_id] = array();
+        }
+        $content[$new_id] = array_merge($content[$new_id], $display->panels[$id]);
+      }
+      foreach ($content[$new_id] as $pid) {
+        $display->content[$pid]->panel = $new_id;
+      }
+    }
+
+    $display->panels = $content;
+  }
+
+  $display->layout = $form_state['layout'];
+}
+
+/**
+ * Handle submission of the change layout form.
+ *
+ * This submit handler sets a flag on the form state, which is then used
+ * by the calling wrapper to restart the process.
+ */
+function panels_choose_layout_back($form, &$form_state) {
+  $form_state['back'] = TRUE;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/display-render.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/display-render.inc
new file mode 100644
index 0000000..8f0433f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/display-render.inc
@@ -0,0 +1,104 @@
+<?php
+
+/**
+ * @file
+ *
+ * Contains Panels display rendering functions.
+ */
+
+/**
+ * Render the administrative layout of a display.
+ *
+ * This is used for the edit version, so that layouts can have different
+ * modes, such as the flexible layout designer mode.
+ */
+function panels_render_layout_admin($layout, $content, $display) {
+  // @todo This should be abstracted.
+  if (!empty($layout['css'])) {
+    if (file_exists(path_to_theme() . '/' . $layout['css'])) {
+      drupal_add_css(path_to_theme() . '/' . $layout['css']);
+    }
+    else {
+      drupal_add_css($layout['path'] . '/' . $layout['css']);
+    }
+  }
+
+  if (isset($layout['admin css'])) {
+    drupal_add_css($layout['path'] . '/' . $layout['admin css']);
+  }
+
+  $theme = isset($layout['admin theme']) ? $layout['admin theme'] : $layout['theme'];
+  return theme($theme, isset($display->css_id) ? $display->css_id : '', $content, $display->layout_settings, $display, $layout);
+}
+
+/**
+ * Render a pane using the appropriate style.
+ *
+ * Legacy function; this behavior has been moved onto the display renderer
+ * object. The function name here is included for backwards compatibility. New
+ * style plugins should NEVER call it.
+ *
+ * $content
+ *   The already rendered content via panels_render_pane_content()
+ * $pane
+ *   The $pane information from the display
+ * $display
+ *   The display.
+ */
+function panels_render_pane($content, $pane, &$display) {
+  if ($display->hide_title == PANELS_TITLE_PANE && !empty($display->title_pane) && $display->title_pane == $pane->pid) {
+
+    // If the user selected to override the title with nothing, and selected
+    // this as the title pane, assume the user actually wanted the original
+    // title to bubble up to the top but not actually be used on the pane.
+    if (empty($content->title) && !empty($content->original_title)) {
+      $display->stored_pane_title = $content->original_title;
+    }
+    else {
+      $display->stored_pane_title = !empty($content->title) ? $content->title : '';
+    }
+  }
+
+  if (!empty($content->content)) {
+    if (!empty($pane->style['style'])) {
+      $style = panels_get_style($pane->style['style']);
+
+      if (isset($style) && isset($style['render pane'])) {
+        $output = theme($style['render pane'], $content, $pane, $display, $style);
+
+        // This could be null if no theme function existed.
+        if (isset($output)) {
+          return $output;
+        }
+      }
+    }
+
+    // fallback
+    return theme('panels_pane', $content, $pane, $display);
+  }
+}
+
+/**
+ * Given a display and the id of a panel, get the style in which to render
+ * that panel.
+ */
+function panels_get_panel_style_and_settings($panel_settings, $panel) {
+  if (empty($panel_settings)) {
+    return array(panels_get_style('default'), array());
+  }
+
+  if (empty($panel_settings[$panel]['style']) || $panel_settings[$panel]['style'] == -1) {
+    if (empty($panel_settings['style'])) {
+      return array(panels_get_style('default'), array());
+    }
+
+    $style = panels_get_style($panel_settings['style']);
+    $style_settings = isset($panel_settings['style_settings']['default']) ? $panel_settings['style_settings']['default'] : array();
+  }
+  else {
+    $style = panels_get_style($panel_settings[$panel]['style']);
+    $style_settings = isset($panel_settings['style_settings'][$panel]) ? $panel_settings['style_settings'][$panel] : array();
+  }
+
+  return array($style, $style_settings);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/legacy.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/legacy.inc
new file mode 100644
index 0000000..46e13c3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/legacy.inc
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * Legacy state manager for Panels.
+ *
+ * Checks all possible ways (using discovery of patterned method names) in which
+ * Panels may need to operate in legacy mode,
+ * sets variables as appropriate, and returns an informational
+ *
+ */
+class PanelsLegacyState {
+  var $legacy = NULL;
+
+  function t() {
+    $func = get_t();
+    $args = func_get_args();
+    return call_user_func_array($func, $args);
+  }
+
+  function getStatus() {
+    if (!isset($this->legacy)) {
+      $this->determineStatus();
+    }
+    return $this->legacy;
+  }
+
+  /**
+   * Run all compatibility checks.
+   */
+  function determineStatus() {
+    $this->legacy = array();
+    foreach(get_class_methods($this) as $method) {
+      if (strtolower(substr($method, 0, 5)) == 'check') {
+        $this->legacy[$method] = $this->$method();
+      }
+    }
+    $this->legacy = array_filter($this->legacy);
+  }
+
+  /**
+   * Compatibility checker that ensures modules that implement Panels styles
+   * list their api as being at least 2.0; this corresponds to the change with
+   * the initial IPE commit that made region styles take a fully rendered pane
+   * HTML string instead of a pane object that still needed rendering.
+   */
+  function checkStylesIPE1() {
+    $legacy_info = array(
+      'explanation' => $this->t('Panels 3.6 made changes to the rendering order in a way that affects certain style plugins. The above modules implement style plugins, but have not indicated their compatibility with this new system. See !link for information on how to update style plugins to the new system.', array('!link' => url('http://drupal.org/node/865840', array('external' => TRUE)))),
+      'modules' => array(),
+    );
+
+
+    $naughties = &$legacy_info['modules'];
+    $legacy = FALSE;
+
+    ctools_include('plugins', 'panels');
+    // TODO given that the plugin cache is also clearing at this time, should
+    // check this to ensure this isn't causing some kind of weird race condition
+    $styles = panels_get_styles();
+
+    foreach ($styles as $style) {
+      if (version_compare($style['version'], 2.0, '<') && empty($naughties[$style['module']])) {
+        $legacy = TRUE;
+        $naughties[$style['module']] = $this->t('Style plugins');
+      }
+    }
+    variable_set('panels_legacy_rendering_mode', $legacy);
+    return $legacy ? $legacy_info : array();
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/page-wizard.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/page-wizard.inc
new file mode 100644
index 0000000..b649ff3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/page-wizard.inc
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * @file
+ * Contains helper functions for the Panels page wizards.
+ */
+function panels_page_wizard_add_layout(&$form, &$form_state) {
+  $form_state['allowed_layouts'] = 'panels_page';
+  $form_state['display'] = $form_state['cache']->display;
+
+  // Tell the Panels form not to display buttons.
+  $form_state['no buttons'] = TRUE;
+
+  // Change the #id of the form so the CSS applies properly.
+  $form['#id'] = 'panels-choose-layout';
+
+  $form['layout_prefix'] = array(
+    '#value' => '<fieldset><legend>' . t('Layout') . '</legend>',
+  );
+
+  ctools_include('common', 'panels');
+  ctools_include('display-layout', 'panels');
+  ctools_include('plugins', 'panels');
+
+  $form = array_merge($form, panels_choose_layout($form_state));
+
+  $form['layout_suffix'] = array(
+    '#value' => '</fieldset>',
+  );
+}
+
+function panels_page_wizard_add_content(&$form, &$form_state) {
+  ctools_include('ajax');
+  ctools_include('plugins', 'panels');
+  ctools_include('common', 'panels');
+  ctools_include('display-edit', 'panels');
+
+  // Panels provides this caching mechanism to make it easy to use the
+  // wizard to cache the display.
+
+  $cache = panels_edit_cache_get('panels_page_wizard:node_override');
+
+  $form_state['renderer'] = panels_get_renderer_handler('editor', $cache->display);
+  $form_state['renderer']->cache = &$cache;
+
+  $form_state['display'] = &$cache->display;
+  $form_state['content_types'] = $cache->content_types;
+  // Tell the Panels form not to display buttons.
+  $form_state['no buttons'] = TRUE;
+  $form_state['display_title'] = !empty($cache->display_title);
+
+  $form = array_merge($form, panels_edit_display_form($form_state));
+  // Make sure the theme will work since our form id is different.
+  $form['#theme'] = 'panels_edit_display_form';
+}
+
+function panels_page_wizard_add_content_submit(&$form, &$form_state) {
+  // Call the normal panels edit form submit to make sure values are stored
+  // on the display
+  panels_edit_display_form_submit($form, $form_state);
+  $cache = &$form_state['cache'];
+
+  // Copy the "being edited" cached display to the "actual" cached display.
+  $cache->display = &$form_state['display'];
+  unset($cache->display_cache);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/panels.pipelines.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/panels.pipelines.inc
new file mode 100644
index 0000000..c41a287
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/panels.pipelines.inc
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * @file
+ * Bulk export of panels_layouts objects generated by Bulk export module.
+ */
+
+/**
+ * Implementation of hook_default_panels_renderer_pipeline().
+ */
+function panels_default_panels_renderer_pipeline() {
+  $pipelines = array();
+
+  $pipeline = new stdClass;
+  $pipeline->disabled = FALSE; /* Edit this to true to make a default pipeline disabled initially */
+  $pipeline->api_version = 1;
+  $pipeline->name = 'standard';
+  $pipeline->admin_title = t('Standard');
+  $pipeline->admin_description = t('Renders a panel normally. This is the most common option.');
+  $pipeline->weight = -100;
+  $pipeline->settings = array(
+    'renderers' => array(
+      0 => array(
+        'access' => array(),
+        'renderer' => 'standard',
+        'options' => array(),
+      ),
+    ),
+  );
+  $pipelines[$pipeline->name] = $pipeline;
+
+  return $pipelines;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/includes/plugins.inc b/drupal/sites/default/boinc/modules/contrib/panels/includes/plugins.inc
new file mode 100644
index 0000000..19c4643
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/includes/plugins.inc
@@ -0,0 +1,534 @@
+<?php
+
+/**
+ * @file
+ *
+ * Contains helper code for plugins and contexts.
+ */
+
+/**
+ * Determine if a pane is visible.
+ *
+ * @param $pane
+ *   The pane object to test for access.
+ * @param $display
+ *   The display object containing the pane object to be tested.
+ */
+function panels_pane_access($pane, $display) {
+  ctools_include('context');
+  return ctools_access($pane->access, $display->context);
+}
+
+/**
+ * Get a list of panels available in the layout.
+ */
+function panels_get_regions($layout, $display) {
+  if (!empty($layout['panels function']) && function_exists($layout['panels function'])) {
+    return $layout['panels function']($display, $display->layout_settings, $layout);
+  }
+  if (!empty($layout['panels'])) {
+    return $layout['panels'];
+  }
+  return array();
+}
+
+/**
+ * Get cached content for a given display and possibly pane.
+ *
+ * @return
+ *   The cached content, or FALSE to indicate no cached content exists.
+ */
+function panels_get_cached_content($display, $args, $context, $pane = NULL) {
+  // Never use cache on a POST
+  if (!empty($_POST)) {
+    return FALSE;
+  }
+
+  $method = $pane ? $pane->cache['method'] : $display->cache['method'];
+  $function = panels_plugin_get_function('cache', $method, 'cache get');
+
+  if (!$function) {
+    return FALSE;
+  }
+
+  $conf = $pane ? $pane->cache['settings'] : $display->cache['settings'];
+  $cache = $function($conf, $display, $args, $context, $pane);
+  if (empty($cache)) {
+    return FALSE;
+  }
+
+  // restore it.
+  $cache->restore();
+  return $cache;
+}
+
+/**
+ * Store cached content for a given display and possibly pane.
+ */
+function panels_set_cached_content($cache, $display, $args, $context, $pane = NULL) {
+  // Never use cache on a POST
+  if (!empty($_POST)) {
+    return FALSE;
+  }
+
+  $method = $pane ? $pane->cache['method'] : $display->cache['method'];
+  $function = panels_plugin_get_function('cache', $method, 'cache set');
+
+  if (!$function) {
+    return FALSE;
+  }
+
+  $conf = $pane ? $pane->cache['settings'] : $display->cache['settings'];
+
+  // snapshot it.
+  $cache->cache();
+  return $function($conf, $cache, $display, $args, $context, $pane);
+}
+
+/**
+ * Clear all cached content for a display.
+ */
+function panels_clear_cached_content($display) {
+  // Figure out every method we might be using to cache content in this display:
+  $methods = array();
+  if (!empty($display->cache['method'])) {
+    $methods[$display->cache['method']] = TRUE;
+  }
+
+  foreach ($display->content as $pane) {
+    if (!empty($pane->cache['method'])) {
+      $methods[$pane->cache['method']] = TRUE;
+    }
+  }
+
+  foreach (array_keys($methods) as $method) {
+    $function = panels_plugin_get_function('cache', $method, 'cache clear');
+    if ($function) {
+      $function($display);
+    }
+  }
+}
+
+/**
+ * An object to hold caching information while it is happening.
+ */
+class panels_cache_object {
+  var $content = '';
+  var $head = NULL;
+  var $css = NULL;
+  var $js = NULL;
+  var $tokens = NULL;
+  var $ready = FALSE;
+
+  /**
+   * When constructed, take a snapshot of our existing out of band data.
+   */
+  function panels_cache_object() {
+    $this->head = drupal_set_html_head();
+    $this->css = drupal_add_css();
+    $this->tokens = ctools_set_page_token();
+
+    foreach (array('header', 'footer') as $scope) {
+      $this->js[$scope] = drupal_add_js(NULL, NULL, $scope);
+    }
+  }
+
+  /**
+   * Add content to the cache. This assumes a pure stream;
+   * use set_content() if it's something else.
+   */
+  function add_content($content) {
+    $this->content .= $content;
+  }
+
+  function set_content($content) {
+    $this->content = $content;
+  }
+
+  /**
+   * Set the object for storing. This overwrites.
+   */
+  function cache() {
+    if ($this->ready) {
+      return;
+    }
+
+    $this->ready = TRUE;
+
+    // Simple replacement for head
+    $this->head = str_replace($this->head, '', drupal_set_html_head());
+
+    // Slightly less simple for CSS:
+    $css = drupal_add_css();
+    $start = $this->css;
+    $this->css = array();
+
+    foreach ($css as $media => $medias) {
+      foreach ($medias as $type => $types) {
+        foreach ($types as $path => $preprocess) {
+          if (!isset($start[$media][$type][$path])) {
+            $this->css[] = array($path, $type, $media, $preprocess);
+          }
+        }
+      }
+    }
+
+    $js = array();
+    // A little less simple for js
+    foreach (array('header', 'footer') as $scope) {
+      $js[$scope] = drupal_add_js(NULL, NULL, $scope);
+    }
+
+    $start = $this->js;
+    $this->js = array();
+
+    foreach ($js as $scope => $scopes) {
+      foreach ($scopes as $type => $types) {
+        foreach ($types as $id => $info) {
+          if (!isset($start[$scope][$type][$id])) {
+            switch ($type) {
+              case 'setting':
+                $this->js[] = array($info, $type, $scope);
+                break;
+
+              case 'inline':
+                $this->js[] = array($info['code'], $type, $scope, $info['defer']);
+                break;
+
+              default:
+                $this->js[] = array($id, $type, $scope, $info['defer'], $info['cache']);
+            }
+          }
+        }
+      }
+    }
+
+    // And for tokens:
+    $tokens = ctools_set_page_token();
+    foreach ($this->tokens as $token => $argument) {
+      if (isset($tokens[$token])) {
+        unset($tokens);
+      }
+    }
+
+    $this->tokens = $tokens;
+  }
+
+  /**
+   * Restore out of band data saved to cache.
+   */
+  function restore() {
+    if (!empty($this->head)) {
+      drupal_set_html_head($this->head);
+    }
+    if (!empty($this->css)) {
+      foreach ($this->css as $args) {
+        call_user_func_array('drupal_add_css', $args);
+      }
+    }
+    if (!empty($this->js)) {
+      foreach ($this->js as $args) {
+        call_user_func_array('drupal_add_js', $args);
+      }
+    }
+
+    if (!empty($this->tokens)) {
+      foreach ($this->tokens as $token => $key) {
+        list($type, $argument) = $key;
+        ctools_set_page_token($token, $type, $argument);
+      }
+    }
+  }
+}
+
+/**
+ * Get the title of a pane.
+ *
+ * @param $pane
+ *   The $pane object.
+ */
+function panels_get_pane_title(&$pane, $context = array(), $incoming_content = NULL) {
+  ctools_include('content');
+  return ctools_content_admin_title($pane->type, $pane->subtype, $pane->configuration, $context);
+}
+
+/**
+ * Fetch metadata on a specific layout plugin.
+ *
+ * @param $layout
+ *   Name of a panel layout. If the layout name contains a ':' this
+ *   indicates that we need to separate the sublayout out and
+ *   load it individually.
+ *
+ * @return
+ *   An array with information about the requested panel layout.
+ */
+function panels_get_layout($layout) {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'layouts', $layout);
+}
+
+/**
+ * Fetch metadata for all layout plugins.
+ *
+ * @return
+ *   An array of arrays with information about all available panel layouts.
+ */
+function panels_get_layouts() {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'layouts');
+}
+
+/**
+ * Fetch metadata for all layout plugins that provide builders.
+ *
+ * The layout builders allow reusable layouts be stored in the database and
+ * exported. Since there are different methods, we are not limiting this
+ * to just one plugin.
+ *
+ * @return
+ *   An array of arrays with information about panel layouts with builders.
+ */
+function panels_get_layout_builders() {
+  ctools_include('plugins');
+  $plugins = ctools_get_plugins('panels', 'layouts');
+  $builders = array();
+  foreach ($plugins as $name => $plugin) {
+    if (!empty($plugin['builder'])) {
+      $builders[$name] = $plugin;
+    }
+  }
+
+  return $builders;
+}
+
+/**
+ * Fetch metadata on a specific style plugin.
+ *
+ * @param $style
+ *   Name of a panel style.
+ *
+ * @return
+ *   An array with information about the requested panel style.
+ */
+function panels_get_style($style) {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'styles', $style);
+}
+
+/**
+ * Fetch metadata for all style plugins.
+ *
+ * @return
+ *   An array of arrays with information about all available panel styles.
+ */
+function panels_get_styles() {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'styles');
+}
+
+/**
+ * Fetch metadata on a specific caching plugin.
+ *
+ * @param $cache
+ *   Name of a panel cache.
+ *
+ * @return
+ *   An array with information about the requested panel cache.
+ */
+function panels_get_cache($cache) {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'cache', $cache);
+}
+
+/**
+ * Fetch metadata for all context plugins.
+ *
+ * @return
+ *   An array of arrays with information about all available panel caches.
+ */
+function panels_get_caches() {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'cache');
+}
+
+/**
+ * Fetch metadata on a specific display renderer plugin.
+ *
+ * @return
+ *   An array of arrays with information about the requested panels display
+ *   renderer.
+ */
+function panels_get_display_renderer($renderer) {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'display_renderers', $renderer);
+}
+
+/**
+ * Fetch metadata for all display renderer plugins.
+ *
+ * @return
+ *   An array of arrays with information about all available panels display
+ *   renderer.
+ */
+function panels_get_display_renderers() {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'display_renderers');
+}
+
+/**
+ * Get and initialize the class to handle rendering a display.
+ *
+ * @return
+ *   Either the instantiated renderer or FALSE if one could not be found.
+ */
+function panels_get_renderer_handler($plugin, &$display) {
+  if (is_string($plugin)) {
+    $plugin = panels_get_display_renderer($plugin);
+  }
+
+  $class = ctools_plugin_get_class($plugin, 'handler');
+  if ($class) {
+    $renderer = new $class();
+    $renderer->init($plugin, $display);
+    return $renderer;
+  }
+
+  return FALSE;
+}
+
+/**
+ * Choose a renderer for a display based on a render pipeline setting.
+ */
+function panels_get_renderer($pipeline_name, &$display) {
+  // If operating in legacy mode, only the legacy renderer is available:
+  if (variable_get('panels_legacy_rendering_mode', TRUE)) {
+    return panels_get_renderer_handler('legacy', $display);
+  }
+
+  // Load the pipeline
+  ctools_include('export');
+  $pipeline = ctools_export_crud_load('panels_renderer_pipeline', $pipeline_name);
+
+  // If we can't, or it has no renderers, default.
+  if (!$pipeline || empty($pipeline->settings['renderers'])) {
+    return panels_get_renderer_handler('standard', $display);
+  }
+
+  // Get contexts set on the pipeline:
+  $contexts = array();
+  if (!empty($pipeline->settings['contexts'])) {
+    $contexts = ctools_context_load_contexts($pipeline->settings['context']);
+  }
+
+  // Cycle through our renderers and see.
+  foreach ($pipeline->settings['renderers'] as $candidate) {
+    // See if this passes selection criteria.
+    if (!ctools_access($candidate['access'], $contexts)) {
+      continue;
+    }
+
+    $renderer = panels_get_renderer_handler($candidate['renderer'], $display);
+
+    if (!empty($candidate['options'])) {
+      $renderer->set_options($candidate['options']);
+    }
+
+    return $renderer;
+  }
+
+  // Fall through. If no renderer is selected, use the standard renderer
+  return panels_get_renderer_handler('standard', $display);
+}
+
+/**
+ * Sort callback for sorting renderer pipelines.
+ *
+ * Sort first by weight, then by title.
+ */
+function _panels_renderer_pipeline_sort($a, $b) {
+  if ($a->weight == $b->weight) {
+      if ($a->admin_title == $b->admin_title) {
+        return 0;
+      }
+    return ($a->admin_title < $b->admin_title) ? -1 : 1;
+  }
+  return ($a->weight < $b->weight) ? -1 : 1;
+}
+
+/**
+ * Get a list of available renderer pipelines.
+ *
+ * This can be used to form a select or radios widget by enabling
+ * sorting. Descriptions are left in.
+ */
+function panels_get_renderer_pipelines($sort = TRUE) {
+  // If operating in legacy mode, only the legacy renderer is available:
+  if (variable_get('panels_legacy_rendering_mode', TRUE)) {
+    return array();
+  }
+
+  ctools_include('export');
+  $pipelines = ctools_export_crud_load_all('panels_renderer_pipeline');
+  if ($sort) {
+    uasort($pipelines, '_panels_renderer_pipeline_sort');
+  }
+
+  return $pipelines;
+}
+
+/**
+ * Fetch metadata on a specific panels_storage plugin.
+ *
+ * @param $storage
+ *   Name of a panel_storage plugin.
+ *
+ * @return
+ *   An array with information about the requested panels_storage plugin
+ */
+function panels_get_panels_storage_plugin($storage) {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'panels_storage', $storage);
+}
+
+/**
+ * Fetch metadata for all panels_storage plugins.
+ *
+ * @return
+ *   An array of arrays with information about all available panels_storage plugins.
+ */
+function panels_get_panels_storage_plugins() {
+  ctools_include('plugins');
+  return ctools_get_plugins('panels', 'panels_storage');
+}
+
+/**
+ * Get a function from a plugin, if it exists.
+ *
+ * @param $plugin
+ *   The type of plugin
+ * @param $which
+ *   Either the loaded plugin object (or the same data in array form)
+ *   or a string with the name of the desired the specific plugin.
+ * @param $function_name
+ *   The identifier of the function. For example, 'settings form'.
+ *
+ * @return
+ *   The actual name of the function to call, or NULL if the function
+ *   does not exist.
+ */
+function panels_plugin_get_function($plugin, $which, $function_name) {
+  ctools_include('plugins');
+  if (is_object($which) || is_array($which)) {
+    return ctools_plugin_get_function($which, $function_name);
+  }
+  else {
+    return ctools_plugin_load_function('panels', $plugin, $which, $function_name);
+  }
+
+}
+
+// @todo these are DEPRECATED and can probably be removed.
+// These are placeholders to prevent crashes from the former plugins
+class panels_required_context { function filter() { } };
+class panels_optional_context extends panels_required_context {};
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/js/display_editor.js b/drupal/sites/default/boinc/modules/contrib/panels/js/display_editor.js
new file mode 100644
index 0000000..f56f35d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/js/display_editor.js
@@ -0,0 +1,513 @@
+/**
+ * @file display_editor.js
+ *
+ * Contains the javascript for the Panels display editor.
+ */
+
+(function ($) {
+  /** Delete pane button **/
+  Drupal.Panels.bindClickDelete = function(context) {
+    $('a.pane-delete:not(.pane-delete-processed)', context)
+      .addClass('pane-delete-processed')
+      .click(function() {
+      if (confirm('Remove this pane?')) {
+        var id = '#' + $(this).attr('id').replace('pane-delete-', '');
+        $(id).remove();
+        Drupal.Panels.Draggable.savePositions();
+      }
+      return false;
+    });
+  };
+
+  Drupal.Panels.bindPortlet = function() {
+    var handle = $(this).find('.panel-pane-collapsible > div.pane-title');
+    var content = $(this).find('.panel-pane-collapsible > div.pane-content');
+    if (content.length) {
+      var toggle = $('<span class="toggle toggle-collapsed"></span>');
+      handle.before(toggle);
+      toggle.click(function() {
+        content.slideToggle(20);
+        toggle.toggleClass('toggle-collapsed');
+      });
+      handle.click(function() {
+        content.slideToggle(20);
+        toggle.toggleClass('toggle-collapsed');
+      });
+      content.hide();
+    }
+  };
+
+  Drupal.Panels.Draggable = {
+    // The draggable object
+    object: null,
+
+    // Where objects can be dropped
+    dropzones: [],
+    current_dropzone: null,
+
+    // positions within dropzones where an object can be plazed
+    landing_pads: [],
+    current_pad: null,
+
+    // Where the object is
+    mouseOffset: { x: 0, y: 0 },
+    windowOffset: { x: 0, y: 0 },
+    offsetDivHeight: 0,
+
+    // original settings to be restored
+    original: {},
+    // a placeholder so that if the object is let go but not over a drop zone,
+    // it can be put back where it belongs
+    placeholder: {},
+
+    hoverclass: 'hoverclass',
+    helperclass: 'helperclass',
+    accept: 'div.panels-display',
+    handle: 'div.grabber',
+    draggable: 'div.panel-portlet',
+    main: 'div#panels-dnd-main',
+
+    // part of the id to remove to get just the number
+    draggableId: 'panel-pane-',
+    // What to add to the front of a the id to get the form id for a panel
+    formId: 'input#edit-',
+
+    maxWidth: 250,
+
+    unsetDropZone: function() {
+      $(this.current_dropzone.obj).removeClass(this.hoverclass);
+      this.current_dropzone = null;
+      for (var i in this.landing_pads) {
+        $(this.landing_pads[i].obj).remove();
+      }
+      this.landing_pads = [];
+      this.current_pad = null;
+    },
+
+    createLandingPad: function(where, append) {
+      var obj = $('<div class="' + this.helperclass +'" id="' +
+        $(where).attr('id') + '-dropzone"> </div>');
+      if (append) {
+        $(where).append(obj);
+      }
+      else {
+        $(where).before(obj);
+      }
+      var offset = $(obj).offset();
+
+      $(obj).css({
+        display: 'none'
+      });
+      this.landing_pads.push({
+        centerX: offset.left + ($(obj).innerWidth() / 2),
+        centerY: offset.top + ($(obj).innerHeight() / 2),
+        obj: obj
+      });
+      return obj;
+    },
+
+    calculateDropZones: function(event, dropzone) {
+      var dropzones = [];
+      $(this.accept).each(function() {
+        var offset = $(this).offset();
+        offset.obj = this;
+        offset.width = $(this).outerWidth();
+        offset.height = $(this).outerHeight();
+        dropzones.push(offset);
+      });
+      this.dropzones = dropzones;
+    },
+
+    reCalculateDropZones: function() {
+      for (var i in this.dropzones) {
+        offset = $(this.dropzones[i].obj).offset();
+        offset.width = $(this.dropzones[i].obj).outerWidth();
+        offset.height = $(this.dropzones[i].obj).outerHeight();
+        $.extend(this.dropzones[i], offset);
+      }
+    },
+
+    changeDropZone: function(new_dropzone) {
+      // Unset our old dropzone.
+      if (this.current_dropzone) {
+        this.unsetDropZone();
+      }
+
+      // Set up our new dropzone.
+      this.current_dropzone = new_dropzone;
+      $(this.current_dropzone.obj).addClass(this.hoverclass);
+      // add a landing pad
+      this.createLandingPad(this.current_dropzone.obj, true);
+
+      var that = this;
+      // Create a landing pad before each existing portlet.
+      $(this.current_dropzone.obj).find(this.draggable).each(function() {
+        if (that.object.id != this.id) {
+          that.createLandingPad(this, false);
+        }
+      });
+    },
+
+    findLandingPad: function(x, y) {
+      var shortest_distance = null;
+      var nearest_pad = null;
+      // find the nearest pad.
+      for (var i in this.landing_pads) {
+        // This isn't the real distance, this is the square of the
+        // distance -- no point in spending processing time on
+        // sqrt.
+        var dstx = Math.abs(x - this.landing_pads[i].centerX);
+        var dsty = Math.abs(y - this.landing_pads[i].centerY);
+        var distance =  (dstx * dstx) + (dsty * dsty);
+        if (shortest_distance == null || distance < shortest_distance) {
+          shortest_distance = distance;
+          nearest_pad = this.landing_pads[i];
+        }
+      }
+      if (nearest_pad != this.current_pad) {
+        if (this.current_pad) {
+          $(this.current_pad.obj).hide();
+        }
+        this.current_pad = nearest_pad;
+        $(nearest_pad.obj).show();
+      }
+    },
+
+    findDropZone: function(x, y) {
+      // Go through our dropzones and see if we're over one.
+      var new_dropzone = null;
+      for (var i in this.dropzones) {
+  //      console.log('x:' + x + ' left:' + this.dropzones[i].left + ' right: ' + this.dropzones[i].left + this.dropzones[i].width);
+        if (this.dropzones[i].left < x &&
+          x < this.dropzones[i].left + this.dropzones[i].width &&
+          this.dropzones[i].top < y &&
+          y < this.dropzones[i].top + this.dropzones[i].height) {
+            new_dropzone = this.dropzones[i];
+            break;
+        }
+      }
+      // If we're over one, see if it's different.
+      if (new_dropzone) {
+        var changed = false;
+        if (!this.current_dropzone || new_dropzone.obj.id != this.current_dropzone.obj.id) {
+          this.changeDropZone(new_dropzone);
+          changed = true;
+        }
+        this.findLandingPad(x, y);
+        if (changed)  {
+          // recalculate the size of our drop zones due to the fact that we're drawing landing pads.
+          this.reCalculateDropZones();
+        }
+      }
+      // If we're not over one, be sure to unhilite one if we were just
+      // over it.
+      else if (this.current_dropzone) {
+        this.unsetDropZone();
+      }
+    },
+
+    /** save button clicked, or pane deleted **/
+    savePositions: function() {
+      var draggable = Drupal.Panels.Draggable;
+      $(draggable.accept).each(function() {
+        var val = '';
+        $(this).find(draggable.draggable).each(function() {
+          if (val) {
+            val += ',';
+          }
+
+          val += this.id.replace(draggable.draggableId, '');
+        });
+        // Note: _ is replaced with - because Drupal automatically does this
+        // with form ids.
+        $(draggable.formId + this.id.replace(/_/g, '-')).val(val);
+      });
+      return false;
+    }
+  };
+
+  Drupal.Panels.DraggableHandler = function() {
+    $(this).addClass('panel-draggable');
+    var draggable = Drupal.Panels.Draggable;
+    var scrollBuffer = 10;
+    var scrollDistance = 10;
+    var scrollTimer = 30;
+
+    getMouseOffset = function(docPos, mousePos, windowPos) {
+      return { x: mousePos.x - docPos.x + windowPos.x, y: mousePos.y - docPos.y + windowPos.y};
+    };
+
+    getMousePos = function(ev) {
+      ev = ev || window.event;
+
+      if (ev.pageX || ev.pageY) {
+        return { x:ev.pageX, y:ev.pageY };
+      }
+      return {
+        x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
+        y:ev.clientY + document.body.scrollTop  - document.body.clientTop
+      };
+    };
+
+    getPosition = function(e) {
+      /*
+      if (document.defaultView && document.defaultView.getComputedStyle) {
+        var css = document.defaultView.getComputedStyle(e, null);
+        return {
+          x: parseInt(css.getPropertyValue('left')),
+          y: parseInt(css.getPropertyValue('top'))
+        };
+      }
+      */
+      var left = 0;
+      var top  = 0;
+
+      while (e.offsetParent) {
+        left += e.offsetLeft;
+        top  += e.offsetTop;
+        e     = e.offsetParent;
+      }
+
+      left += e.offsetLeft;
+      top  += e.offsetTop;
+
+      return { x:left, y:top };
+    };
+
+    mouseUp = function(e) {
+      clearTimeout(draggable.timeoutId);
+      draggable.dropzones = [];
+
+      if (draggable.current_pad) {
+        // Drop the object where we're hovering
+        $(draggable.object).insertAfter($(draggable.current_pad.obj));
+        Drupal.Panels.changed($(draggable.object));
+      }
+      else {
+        // or put it back where it came from
+        $(draggable.object).insertAfter(draggable.placeholder);
+      }
+      // remove the placeholder
+      draggable.placeholder.remove();
+
+      // restore original settings.
+      $(draggable.object).css(draggable.original);
+      if (draggable.current_dropzone) {
+        draggable.unsetDropZone();
+      }
+
+      $(document).unbind('mouseup').unbind('mousemove');
+      draggable.savePositions();
+    };
+
+    mouseMove = function(e) {
+      draggable.mousePos = getMousePos(e);
+
+      draggable.findDropZone(draggable.mousePos.x, draggable.mousePos.y);
+
+      var windowMoved = parseInt(draggable.offsetDivHeight - $(draggable.main).innerHeight());
+
+      draggable.object.style.top = draggable.mousePos.y - draggable.mouseOffset.y + windowMoved + 'px';
+      draggable.object.style.left = draggable.mousePos.x - draggable.mouseOffset.x  + 'px';
+      $(draggable.object).toggleClass('moving');
+    };
+
+    mouseDown = function(e) {
+      // If we mouse-downed over something clickable, don't drag!
+      if (e.target.nodeName == 'A' || e.target.nodeName == 'INPUT' || e.target.parentNode.nodeName == 'A' || e.target.nodeName.nodeName == 'INPUT') {
+        return;
+      }
+
+      draggable.object = $(this).parent(draggable.draggable).get(0);
+
+      // create a placeholder so we can put this object back if dropped in an invalid location.
+      draggable.placeholder = $('<div class="draggable-placeholder-object" style="display:none"></div>"');
+      $(draggable.object).after(draggable.placeholder);
+
+      // Store original CSS so we can put it back.
+      draggable.original = {
+        position: $(draggable.object).css('position'),
+        width: 'auto',
+        left: $(draggable.object).css('left'),
+        top: $(draggable.object).css('top'),
+        'z-index': $(draggable.object).css('z-index'),
+        'margin-bottom': $(draggable.object).css('margin-bottom'),
+        'margin-top': $(draggable.object).css('margin-top'),
+        'margin-left': $(draggable.object).css('margin-left'),
+        'margin-right': $(draggable.object).css('margin-right'),
+        'padding-bottom': $(draggable.object).css('padding-bottom'),
+        'padding-top': $(draggable.object).css('padding-top'),
+        'padding-left': $(draggable.object).css('padding-left'),
+        'padding-right': $(draggable.object).css('padding-right')
+      };
+
+      draggable.mousePos = getMousePos(e);
+      var originalPos = $(draggable.object).offset();
+      var width = Math.min($(draggable.object).innerWidth(), draggable.maxWidth);
+
+      draggable.offsetDivHeight = $(draggable.main).innerHeight();
+      draggable.findDropZone(draggable.mousePos.x, draggable.mousePos.y);
+
+      // Make copies of these because in FF3, they actually change when we
+      // move the item, whereas they did not in FF2.
+
+      if (e.layerX || e.layerY) {
+        var layerX = e.layerX;
+        var layerY = e.layerY;
+      }
+      else if (e.originalEvent && e.originalEvent.layerX) {
+        var layerX = e.originalEvent.layerX;
+        var layerY = e.originalEvent.layerY;
+      }
+
+      // Make the draggable relative, get it out of the way and make it
+      // invisible.
+      $(draggable.object).css({
+        position: 'relative',
+        'z-index': 100,
+        width: width + 'px',
+        'margin-bottom': (-1 * parseInt($(draggable.object).outerHeight())) + 'px',
+        'margin-top': 0,
+        'margin-left': 0,
+        'margin-right': (-1 * parseInt($(draggable.object).outerWidth())) + 'px',
+        'padding-bottom': 0,
+        'padding-top': 0,
+        'padding-left': 0,
+        'padding-right': 0,
+        'left': 0,
+        'top': 0
+      })
+        .insertAfter($(draggable.main));
+      var newPos = $(draggable.object).offset();
+
+      var windowOffset = { left: originalPos.left - newPos.left, top: originalPos.top - newPos.top }
+
+      // if they grabbed outside the area where we make the draggable smaller, move it
+      // closer to the cursor.
+      if (layerX != 'undefined' && layerX > width) {
+        windowOffset.left += layerX - 10;
+      }
+      else if (layerX != 'undefined' && e.offsetX > width) {
+        windowOffset.left += e.offsetX - 10;
+      }
+
+      // This is stored so we can move with it.
+      draggable.mouseOffset = { x: draggable.mousePos.x - windowOffset.left, y: draggable.mousePos.y - windowOffset.top};
+      draggable.offsetDivHeight = $(draggable.main).innerHeight();
+
+      draggable.object.style.top = windowOffset.top + 'px';
+      draggable.object.style.left = windowOffset.left + 'px';
+      $(document).unbind('mouseup').unbind('mousemove').mouseup(mouseUp).mousemove(mouseMove);
+
+      draggable.calculateDropZones(draggable.mousePos, e);
+      draggable.timeoutId = setTimeout('timer()', scrollTimer);
+      return false;
+    };
+
+    timer = function() {
+      if (!draggable.timeCount) {
+        draggable.timeCount = 0;
+      }
+      draggable.timeCount = draggable.timeCount + 1;
+      var left = $(window).scrollLeft();
+      var right = left + $(window).width();
+      var top = $(window).scrollTop();
+      var bottom = top + $(window).height();
+
+      if (draggable.mousePos.x < left + scrollBuffer && left > 0) {
+        window.scrollTo(left - scrollDistance, top);
+        draggable.mousePos.x -= scrollDistance;
+        draggable.object.style.top = draggable.mousePos.y - draggable.mouseOffset.y + 'px';
+      }
+      else if (draggable.mousePos.x > right - scrollBuffer) {
+        window.scrollTo(left + scrollDistance, top);
+        draggable.mousePos.x += scrollDistance;
+        draggable.object.style.top = draggable.mousePos.y - draggable.mouseOffset.y + 'px';
+      }
+      else if (draggable.mousePos.y < top + scrollBuffer && top > 0) {
+        window.scrollTo(left, top - scrollDistance);
+        draggable.mousePos.y -= scrollDistance;
+        draggable.object.style.top = draggable.mousePos.y - draggable.mouseOffset.y + 'px';
+      }
+      else if (draggable.mousePos.y > bottom - scrollBuffer) {
+        window.scrollTo(left, top + scrollDistance);
+        draggable.mousePos.y += scrollDistance;
+        draggable.object.style.top = draggable.mousePos.y - draggable.mouseOffset.y + 'px';
+      }
+
+      draggable.timeoutId = setTimeout('timer()', scrollTimer);
+    }
+
+    $(this).mousedown(mouseDown);
+  };
+
+  $.fn.extend({
+    panelsDraggable: Drupal.Panels.DraggableHandler
+  });
+
+  /**
+   * Implement Drupal behavior for autoattach
+   */
+  Drupal.behaviors.PanelsDisplayEditor = function(context) {
+    // Show javascript only items.
+    $('span#panels-js-only').css('display', 'inline');
+
+    $('#panels-dnd-main div.panel-pane:not(.panel-portlet)')
+      .addClass('panel-portlet')
+      .each(Drupal.Panels.bindPortlet);
+
+    // The above doesn't work if context IS the pane, so do this to catch that.
+    if ($(context).hasClass('panel-pane') && !$(context).hasClass('panel-portlet')) {
+      $(context)
+        .addClass('panel-portlet')
+        .each(Drupal.Panels.bindPortlet);
+    }
+
+    // Make draggables and make sure their positions are saved.
+    $(context).find('div.grabber:not(.panel-draggable)').panelsDraggable();
+    Drupal.Panels.Draggable.savePositions();
+
+    // Bind buttons.
+    $('input#panels-hide-all', context).click(Drupal.Panels.clickHideAll);
+    $('input#panels-show-all', context).click(Drupal.Panels.clickShowAll);
+
+    Drupal.Panels.bindClickDelete(context);
+
+    $('#panels-live-preview-button:not(.panels-preview-processed)')
+      .addClass('panels-preview-processed')
+      .click(function () {
+        if (!$('#panels-preview').size()) {
+          $('#panels-dnd-main').parents('form').after('<div id="panels-preview"></div>');
+        }
+
+        $('#panels-preview').html(Drupal.theme('CToolsModalThrobber'));
+      });
+
+    var setTitleClass = function () {
+      if ($('#edit-display-title-hide-title').val() == 2) {
+        $('#panels-dnd-main').removeClass('panels-set-title-hide');
+      }
+      else {
+        $('#panels-dnd-main').addClass('panels-set-title-hide');
+      }
+    }
+
+    // The panes have an option to set the display title, but only if
+    // a select is set to the proper value. This sets a class on the
+    // main edit div so that the option to set the display title
+    // is hidden if that is not selected, and visible if it is.
+    $('#edit-display-title-hide-title:not(.panels-title-processed)')
+      .addClass('panels-title-processed')
+      .change(setTitleClass);
+
+    setTitleClass();
+  };
+
+  /**
+   * AJAX responder command to render the preview.
+   */
+  Drupal.CTools.AJAX.commands.panel_preview = function(command) {
+    $('#panels-preview').html(command.output);
+  }
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/js/layout.js b/drupal/sites/default/boinc/modules/contrib/panels/js/layout.js
new file mode 100644
index 0000000..e54fd02
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/js/layout.js
@@ -0,0 +1,18 @@
+/**
+ * @file layout.js
+ *
+ * Contains javascript to make layout modification a little nicer.
+ */
+
+(function ($) {
+  Drupal.Panels.Layout = {};
+  Drupal.Panels.Layout.autoAttach = function() {
+    $('div.form-item div.layout-icon').click(function() {
+      $widget = $('input', $(this).parent());
+      // Toggle if a checkbox, turn on if a radio.
+      $widget.attr('checked', !$widget.attr('checked') || $widget.is('input[type=radio]'));
+    });
+  };
+
+  $(Drupal.Panels.Layout.autoAttach);
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/js/panels-base.js b/drupal/sites/default/boinc/modules/contrib/panels/js/panels-base.js
new file mode 100644
index 0000000..7b0b922
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/js/panels-base.js
@@ -0,0 +1,28 @@
+/**
+ * @file
+ * Implement basic methods required by all of panels.
+ */
+
+(function ($) {
+  Drupal.Panels = {}
+
+  Drupal.Panels.changed = function(item) {
+    if (!item.is('.changed')) {
+      item.addClass('changed');
+      item.find('div.grabber span.text').append(' <span class="star">*</span> ');
+    }
+  };
+
+  Drupal.Panels.restripeTable = function(table) {
+    // :even and :odd are reversed because jquery counts from 0 and
+    // we count from 1, so we're out of sync.
+    $('tbody tr:not(:hidden)', $(table))
+      .removeClass('even')
+      .removeClass('odd')
+      .filter(':even')
+        .addClass('odd')
+      .end()
+      .filter(':odd')
+        .addClass('even');
+  };
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/js/panels.js b/drupal/sites/default/boinc/modules/contrib/panels/js/panels.js
new file mode 100644
index 0000000..70e8544
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/js/panels.js
@@ -0,0 +1,28 @@
+
+(function ($) {
+  Drupal.Panels = {};
+
+  Drupal.Panels.autoAttach = function() {
+    if ($.browser.msie) {
+      // If IE, attach a hover event so we can see our admin links.
+      $("div.panel-pane").hover(
+        function() {
+          $('div.panel-hide', this).addClass("panel-hide-hover"); return true;
+        },
+        function() {
+          $('div.panel-hide', this).removeClass("panel-hide-hover"); return true;
+        }
+      );
+      $("div.admin-links").hover(
+        function() {
+          $(this).addClass("admin-links-hover"); return true;
+        },
+        function(){
+          $(this).removeClass("admin-links-hover"); return true;
+        }
+      );
+    }
+  };
+
+  $(Drupal.Panels.autoAttach);
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels.info b/drupal/sites/default/boinc/modules/contrib/panels/panels.info
new file mode 100644
index 0000000..7de62c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels.info
@@ -0,0 +1,12 @@
+name = Panels
+description = Core Panels display functions; provides no external UI, at least one other Panels module should be enabled.
+core = 6.x
+package = "Panels"
+dependencies[] = ctools
+
+; Information added by Drupal.org packaging script on 2016-02-25
+version = "6.x-3.12-boinc-2-dev"
+core = "6.x"
+project = "panels"
+datestamp = "1494600716"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels.install b/drupal/sites/default/boinc/modules/contrib/panels/panels.install
new file mode 100644
index 0000000..0224dc2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels.install
@@ -0,0 +1,1638 @@
+<?php
+
+/**
+ * Test requirements for installation and running.
+ */
+function panels_requirements($phase) {
+  $function = "panels_requirements_$phase";
+  return function_exists($function) ? $function() : array();
+}
+
+/**
+ * Check install-time requirements.
+ */
+function panels_requirements_install() {
+  $requirements = array();
+  $t = get_t();
+  // Assume that if the user is running an installation profile that both
+  // Panels and CTools are the same release.
+  if (!(defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'install')) {
+    // apparently the install process doesn't include .module files,
+    // so we need to force the issue in order for our versioning
+    // check to work.
+    if (!defined('PANELS_REQUIRED_CTOOLS_API')) {
+      include_once drupal_get_path('module', 'panels') . '/panels.module';
+    }
+
+    // In theory we should check module_exists, but Drupal's gating should
+    // actually prevent us from getting here otherwise.
+    if (!defined('CTOOLS_API_VERSION')) {
+      include_once drupal_get_path('module', 'ctools') . '/ctools.module';
+    }
+    if (!module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+       $requirements['panels_ctools'] = array(
+         'title' => $t('CTools API Version'),
+         'value' => CTOOLS_API_VERSION,
+         'severity' => REQUIREMENT_ERROR,
+         'description' => t('The CTools API version is too old for Panels. Panels needs at least %version.', array('%version' => PANELS_REQUIRED_CTOOLS_API))
+       );
+    }
+  }
+  return $requirements;
+}
+
+/**
+ * Check runtime requirements (status report).
+ */
+function panels_requirements_runtime() {
+  $requirements = array();
+  $legacy = panels_get_legacy_state();
+  $t = get_t();
+  $state = $legacy->getStatus();
+  if (empty($state)) {
+    $requirements['panels_legacy'] = array(
+      'title' => $t('Panels operating normally'),
+      'value' => NULL,
+      'severity' => REQUIREMENT_OK,
+      'description' => $t('Panels is operating normally - no out-of-date plugins or modules are forcing it into legacy mode'),
+    );
+  }
+  else {
+    $description = $t("Panels is operating in Legacy mode due to the following issues:\n");
+
+    // Add the reasons why Panels is acting in legacy mode.
+    $list = array();
+    foreach ($state as $values) {
+      $modules = array();
+      foreach ($values['modules'] as $module => $type) {
+        $modules[] = array('data' => check_plain($module) . ' - ' . $type);
+      }
+
+      $list[] = array('data' => $values['explanation'] ."\n" . theme('item_list', $modules));
+    }
+
+    $description .= theme('item_list', $list);
+
+    $requirements['panels_legacy'] = array(
+      'title' => $t('Panels operating in Legacy mode'),
+      'value' => NULL,
+      'severity' => REQUIREMENT_WARNING,
+      'description' => $description,
+    );
+  }
+  return $requirements;
+}
+
+/**
+ * Implementation of hook_schema().
+ */
+function panels_schema() {
+  // This should always point to our 'current' schema. This makes it relatively easy
+  // to keep a record of schema as we make changes to it.
+  return panels_schema_4();
+}
+
+/**
+ * Schema that adds the 'storage_type' and 'storage_id' columns.
+ */
+function panels_schema_4() {
+  $schema = panels_schema_3();
+
+  // Add the storage type and id columns.
+  $schema['panels_display']['fields']['storage_type'] = array(
+    'type' => 'varchar',
+    'length' => 255,
+    'default' => '',
+  );
+  $schema['panels_display']['fields']['storage_id'] = array(
+    'type' => 'varchar',
+    'length' => 255,
+    'default' => '',
+  );
+
+  return $schema;
+}
+ 
+/**
+ * Schema that adds the panels_layout table.
+ */
+function panels_schema_3() {
+  // Schema 3 is now locked. If you need to make changes, please create
+  // schema 4 and add them.
+  $schema = panels_schema_2();
+
+  $schema['panels_renderer_pipeline'] = array(
+    'description' => 'Contains renderer pipelines for Panels. Each pipeline contains one or more renderers and access rules to select which renderer gets used.',
+    'export' => array(
+      'identifier' => 'pipeline',
+      'bulk export' => TRUE,
+      'primary key' => 'rpid',
+      'api' => array(
+        'owner' => 'panels',
+        'api' => 'pipelines',
+        'minimum_version' => 1,
+        'current_version' => 1,
+      ),
+    ),
+    'fields' => array(
+      'rpid' => array(
+        'type' => 'serial',
+        'description' => 'A database primary key to ensure uniqueness.',
+        'not null' => TRUE,
+        'no export' => TRUE,
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'description' => 'Unique ID for this content. Used to identify it programmatically.',
+      ),
+      'admin_title' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'description' => 'Administrative title for this pipeline.',
+      ),
+      'admin_description' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'description' => 'Administrative description for this pipeline.',
+        'object default' => '',
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'size' => 'small',
+        'default' => 0,
+      ),
+      'settings' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'description' => 'Serialized settings for the actual pipeline. The contents of this field are up to the plugin that uses it.',
+        'serialize' => TRUE,
+        'object default' => array(),
+      ),
+    ),
+    'primary key' => array('rpid'),
+  );
+
+  $schema['panels_layout'] = array(
+    'description' => 'Contains exportable customized layouts for this site.',
+    'export' => array(
+      'identifier' => 'layout',
+      'bulk export' => TRUE,
+      'primary key' => 'lid',
+      'api' => array(
+        'owner' => 'panels',
+        'api' => 'layouts',
+        'minimum_version' => 1,
+        'current_version' => 1,
+      ),
+    ),
+    'fields' => array(
+      'lid' => array(
+        'type' => 'serial',
+        'description' => 'A database primary key to ensure uniqueness.',
+        'not null' => TRUE,
+        'no export' => TRUE,
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'description' => 'Unique ID for this content. Used to identify it programmatically.',
+      ),
+      'admin_title' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'description' => 'Administrative title for this layout.',
+      ),
+      'admin_description' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'description' => 'Administrative description for this layout.',
+        'object default' => '',
+      ),
+      'category' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'description' => 'Administrative category for this layout.',
+      ),
+      'plugin' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'description' => 'The layout plugin that owns this layout.',
+      ),
+      'settings' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'description' => 'Serialized settings for the actual layout. The contents of this field are up to the plugin that uses it.',
+        'serialize' => TRUE,
+        'object default' => array(),
+      ),
+    ),
+    'primary key' => array('lid'),
+  );
+
+  $schema['cache_panels'] = drupal_get_schema_unprocessed('system', 'cache');
+
+  return $schema;
+}
+
+/**
+ * Schema that adds the title_pane field.
+ */
+function panels_schema_2() {
+  $schema = panels_schema_1();
+
+  $schema['panels_display']['fields']['title_pane'] = array(
+    'type' => 'int',
+    'default' => 0,
+    'no export' => TRUE,
+  );
+
+  return $schema;
+}
+
+/**
+ * Schema version 1 for Panels in D6.
+ *
+ * Schema v1 is now LOCKED; any changes should be done via panels_schema_2.
+ */
+function panels_schema_1() {
+  $schema = array();
+
+  $schema['panels_display'] = array(
+    'export' => array(
+      'object' => 'panels_display',
+      'bulk export' => FALSE,
+      'export callback' => 'panels_export_display',
+      'can disable' => FALSE,
+      'identifier' => 'display',
+    ),
+    'fields' => array(
+      'did' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'no export' => TRUE,
+      ),
+      'layout' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'default' => '',
+      ),
+      'layout_settings' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'panel_settings' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'cache' => array(
+        'type' => 'text',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'title' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'default' => '',
+      ),
+      'hide_title' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+    ),
+    'primary key' => array('did'),
+  );
+
+  $schema['panels_pane'] = array(
+    'export' => array(
+      'can disable' => FALSE,
+      'identifier' => 'pane',
+      'bulk export' => FALSE,
+    ),
+    'fields' => array(
+      'pid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+      ),
+      'did' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'panel' => array(
+        'type' => 'varchar',
+        'length' => '32',
+        'default' => '',
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => '32',
+        'default' => '',
+      ),
+      'subtype' => array(
+        'type' => 'varchar',
+        'length' => '64',
+        'default' => '',
+      ),
+      'shown' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 1,
+      ),
+      'access' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'configuration' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'cache' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'style' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'css' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'extras' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'initial ' => array(),
+      ),
+      'position' => array(
+        'type' => 'int',
+        'size' => 'small',
+        'default' => 0,
+      ),
+    ),
+    'primary key' => array('pid'),
+    'indexes' => array(
+      'did_idx' => array('did')
+    ),
+  );
+
+  return $schema;
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function panels_install() {
+  drupal_install_schema('panels');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function panels_uninstall() {
+  drupal_uninstall_schema('panels');
+}
+
+function panels_update_1000() {
+  // Panels D6 2 had *no* update functions in it, so the schema version is
+  // completely wrong. If we run this update with no schema version, we
+  // were actually that version and we must therefore skip to the proper
+  // update.
+  if (db_table_exists('panels_pane')) {
+    $GLOBALS['SKIP_PANELS_UPDATES'] = TRUE;
+    return array();
+  }
+  $ret   = array();
+
+  $ret[] = update_sql("ALTER TABLE {panels_info} RENAME {panels_page}");
+  $ret[] = update_sql("ALTER TABLE {panels_page} CHANGE COLUMN did pid int(10) NOT NULL DEFAULT 0;");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN did int(10) NOT NULL DEFAULT 0 AFTER pid");
+  $ret[] = update_sql("UPDATE {panels_page} SET did = pid");
+
+  $max_pid = db_result(db_query("SELECT MAX(pid) FROM {panels_page}"));
+  if ($max_pid) {
+    $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{panels_page}_pid', $max_pid)");
+  }
+
+  $ret[]  = update_sql("ALTER TABLE {panels_area} RENAME {panels_pane}");
+  $ret[]  = update_sql("ALTER TABLE {panels_pane} ADD COLUMN pid int(10) NOT NULL DEFAULT 0 FIRST");
+  $ret[]  = update_sql("ALTER TABLE {panels_pane} CHANGE area panel varchar(32)");
+  $result = db_query("SELECT * FROM {panels_pane}");
+  while ($pane = db_fetch_object($result)) {
+    $count++;
+    $ret[] = update_sql("UPDATE {panels_pane} SET pid = $count WHERE did = $pane->did AND panel = '$pane->panel' AND position = $pane->position");
+  }
+  if ($count) {
+    $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{panels_pane}_pid', $count)");
+  }
+
+  $ret[] = update_sql(<<<EOT
+    CREATE TABLE {panels_display} (
+      did INT(10) NOT NULL DEFAULT 0 PRIMARY KEY,
+      layout VARCHAR(32)
+    ) /*!40100 DEFAULT CHARACTER SET utf8 */
+EOT
+  );
+  $result = db_query("SELECT did, layout FROM {panels_page}");
+  $max_did = 0;
+  while ($display = db_fetch_object($result)) {
+    $ret[] = update_sql("INSERT INTO {panels_display} VALUES ($display->did, '$display->layout')");
+    if ($display->did > $max_did) {
+      $max_did = $display->did;
+    }
+  }
+  $ret[] = update_sql("ALTER TABLE {panels_page} DROP COLUMN layout");
+  if ($max_did) {
+    $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{panels_display}_did', $max_did)");
+  }
+  return $ret;
+}
+
+function panels_update_1001() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret   = array();
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN no_blocks int(1)");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu int(1) DEFAULT 0");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu_tab int(1)");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu_tab_weight int(4)");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu_title varchar(255)");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu_tab_default int(1)");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu_tab_default_parent_type varchar(10)");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu_parent_title varchar(255)");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN menu_parent_tab_weight int(4)");
+  return $ret;
+}
+
+// Create a field for the layout settings
+function panels_update_1002() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret   = array();
+  $ret[] = update_sql("ALTER TABLE {panels_display} ADD COLUMN layout_settings longtext");
+  $ret[] = update_sql("ALTER TABLE {panels_pane} ADD COLUMN access varchar(128) AFTER type");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN css longtext AFTER css_id");
+  return $ret;
+}
+
+// Create a field for the panel settings.
+function panels_update_1003() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  $ret[] = update_sql("ALTER TABLE {panels_display} ADD COLUMN panel_settings longtext");
+  return $ret;
+}
+
+// Kept up updates from older versions of Panels 2 for D5 to smooth updates.
+// Create a field for the panel settings.
+// Renumbering to proper numbering scheme.
+function panels_update_5204() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret   = array();
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN name varchar(255) UNIQUE");
+  $ret[] = update_sql("ALTER TABLE {panels_display} ADD COLUMN name varchar(255) UNIQUE");
+  // Give all our panels a name.
+  $ret[] = update_sql("UPDATE {panels_page} SET name = CONCAT('panel_page_', pid)");
+  $ret[] = update_sql("UPDATE {panels_display} SET name = CONCAT('display_', did)");
+  return $ret;
+}
+
+// Add the arguments field
+function panels_update_5205() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN arguments longtext");
+  return $ret;
+}
+
+// Add a field so that panes can remember their subtype so we can retrieve
+// context information about it.
+function panels_update_5206() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  $ret[] = update_sql("ALTER TABLE {panels_pane} ADD COLUMN subtype varchar(64)");
+  return $ret;
+}
+
+// Add fields for displays and extra contexts
+function panels_update_5207() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret   = array();
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN displays longtext");
+  $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN contexts longtext");
+  return $ret;
+}
+
+// Correct the mistaken {panels_display}_id when it should be {panels_display}_did
+function panels_update_5208() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret   = array();
+  $count = db_result(db_query("SELECT MAX(did) FROM {panels_display}"));
+  $ret[] = update_sql("DELETE FROM {sequences} WHERE name = '{panels_display}_did'");
+  $ret[] = update_sql("DELETE FROM {sequences} WHERE name = '{panels_display}_id'");
+  if ($count) {
+    $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{panels_display}_did',
+    $count)");
+  }
+
+  return $ret;
+}
+
+// Update argument, relationship and context code to be more correct.
+function panels_update_5209() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret    = array();
+  $ret[]  = update_sql("ALTER TABLE {panels_page} ADD COLUMN relationships longtext");
+  $result = db_query("SELECT * FROM {panels_page}");
+
+  // This code removed due to call to panels_get_argument(). People with
+  // older versions will just have to suffer.
+  return $ret;
+  ctools_include('plugins', 'panels');
+
+  while ($page = db_fetch_object($result)) {
+    $args = unserialize($page->arguments);
+    $arguments = $ids = $keywords = array();
+    if (!empty($args)) {
+      // Update each argument
+      foreach ($args as $id => $argument) {
+        $name = $argument['name'];
+        $info = panels_get_argument($name);
+        if (!$info) {
+          continue;
+        }
+        // Make sure the id is valid
+        if (empty($argument['id'])) {
+          if (empty($ids[$name])) {
+            $ids[$name] = 1;
+          }
+          else {
+            $ids[$name]++;
+          }
+
+          $argument['id'] = $ids[$name];
+        }
+
+        // Give it an identifier if it doesn't already have one
+        if (empty($argument['identifier'])) {
+          $argument['identifier'] = $info['title'] . ($id > 1 ? ' ' . $id : '');
+        }
+
+        // Give it a unique keyword if it doesn't already have one
+        if (empty($argument['keyword'])) {
+          $keyword = $base = $info['keyword'];
+          $count = 0;
+          while (!empty($keywords[$keyword])) {
+            $keyword = $base . '_' . ++$count;
+          }
+          $keywords[$keyword] = TRUE;
+          $argument['keyword'] = $keyword;
+        }
+        $arguments[$id] = $argument;
+      }
+    }
+    // Move old relationships (stored as contexts) to relationships, where
+    // the belong
+    $rels = unserialize($page->contexts);
+    // Not resetting $keywords!
+    $relationships = $ids = array();
+    if (!empty($rels)) {
+      foreach ($rels as $id => $relationship) {
+        $name = $relationship['name'];
+        $info = panels_get_relationship($name);
+        if (!$info) {
+          continue;
+        }
+        // Make sure the id is valid
+        if (empty($relationship['id'])) {
+          if (empty($ids[$name])) {
+            $ids[$name] = 1;
+          }
+          else {
+            $ids[$name]++;
+          }
+
+          $relationship['id'] = $ids[$name];
+        }
+
+        // Give it an identifier if it doesn't already have one
+        if (empty($relationship['identifier'])) {
+          $relationship['identifier'] = $info['title'] . ($id > 1 ? ' ' . $id : '');
+        }
+
+        // Give it a unique keyword if it doesn't already have one
+        if (empty($relationship['keyword'])) {
+          $keyword = $base = $info['keyword'];
+          $count = 0;
+          while (!empty($keywords[$keyword])) {
+            $keyword = $base . '_' . ++$count;
+          }
+          $keywords[$keyword] = TRUE;
+          $relationship['keyword'] = $keyword;
+        }
+        $relationships[$id] = $relationship;
+      }
+    }
+    db_query("UPDATE {panels_page} " .
+      "SET arguments = '%s', " .
+      "relationships = '%s', " .
+      "contexts = '%s' " .
+      "WHERE pid = $page->pid", serialize($arguments), serialize($relationships), serialize(array()), $page->pid
+    );
+  }
+  return $ret;
+}
+
+function panels_update_5210() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  $ret[] = update_sql("UPDATE {system} SET weight = 10 WHERE name = 'panels'");
+  return $ret;
+}
+
+/**
+ * Force a menu update
+ */
+function panels_update_5211() {
+//  menu_rebuild();
+  return array();
+}
+
+/**
+ * Add a field to store pane caching information.
+ */
+function panels_update_5213() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {panels_pane} ADD COLUMN cache longtext AFTER configuration");
+      $ret[] = update_sql("ALTER TABLE {panels_display} ADD COLUMN cache longtext AFTER panel_settings");
+      break;
+
+    case 'pgsql':
+      db_add_column($ret, 'panels_pane', 'cache', 'text');
+      db_add_column($ret, 'panels_display', 'cache', 'text');
+  }
+  return $ret;
+}
+
+/**
+ * Create a new table for object caching. This isn't part of the cache
+ * system.
+ */
+function panels_update_5214() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  return $ret;
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql(<<<EOT
+        CREATE TABLE {panels_object_cache} (
+          sid varchar(64),
+          did integer,
+          obj varchar(255),
+          timestamp integer,
+          data text,
+          KEY (sid, obj, did),
+          KEY (timestamp)
+        ) /*!40100 DEFAULT CHARACTER SET utf8 */
+EOT
+      );
+    case 'pgsql':
+  }
+  return !empty($ret) ? $ret : $ret;
+}
+
+/**
+ * Increase the size of the data column in the {panels_object_cache} table
+ * on MySQL.
+ *
+ * Also gets rid of some duplicate indexes resulting the CREATE TABLE queries
+ * in the install() of schema 5214
+ */
+function panels_update_5215() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {panels_pane} ADD PRIMARY KEY (pid)");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("ALTER TABLE {panels_pane} ADD PRIMARY KEY (pid)");
+  }
+  return $ret;
+}
+
+/**
+ * Adds the 'shown' field to the panels_pane table in order to accomodate
+ * the new show/hide panes feature.
+ */
+function panels_update_5216() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {panels_pane} ADD COLUMN shown int(1) DEFAULT 1 AFTER subtype");
+      $ret[] = update_sql("ALTER TABLE {panels_display} ADD COLUMN title varchar(128) AFTER cache");
+      $ret[] = update_sql("ALTER TABLE {panels_display} ADD COLUMN hide_title int(1) AFTER title");
+      $ret[] = update_sql("ALTER TABLE {panels_display} DROP COLUMN name");
+      $ret[] = update_sql("ALTER TABLE {panels_pane} ADD COLUMN visibility text AFTER access");
+      break;
+
+    case 'pgsql':
+      db_add_column($ret, 'panels_pane', 'shown', 'tinyint', array('default' => 1));
+      db_add_column($ret, 'panels_display', 'title', 'varchar(128)');
+      db_add_column($ret, 'panels_display', 'hide_title', 'tinyint', array('default' => 0));
+      $ret = update_sql("ALTER TABLE {panels_display} DROP name");
+      db_add_column($ret, 'panels_pane', 'visibility', 'text');
+  }
+  return $ret;
+}
+
+/**
+ * Add the switcher fields to the database
+ */
+function panels_update_5217() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN switcher_type varchar(128) AFTER no_blocks");
+      $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN switcher_name varchar(128) AFTER no_blocks");
+      $ret[] = update_sql("ALTER TABLE {panels_page} ADD COLUMN switcher_options longtext AFTER switcher_type");
+      break;
+
+    case 'pgsql':
+      db_add_column($ret, 'panels_page', 'switcher_type', 'varchar(128)');
+      db_add_column($ret, 'panels_page', 'switcher_name', 'varchar(128)');
+      db_add_column($ret, 'panels_page', 'switcher_options', 'text');
+  }
+  return $ret;
+}
+
+
+/**
+ * Oversight in 5216: 'tinyint' is not a field type in pgsql; the type we wanted
+ * was 'smallint.'
+ */
+function panels_update_5218() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = array('success' => TRUE, 'query' => t('Update #5218 only has changes for PostgreSQL. There are no updates for MySQL databases - since you\'re running MySQL, you should consider this update successful.'));
+      break;
+
+    case 'pgsql':
+      db_add_column($ret, 'panels_pane', 'shown', 'smallint', array('default' => 1));
+      db_add_column($ret, 'panels_display', 'hide_title', 'smallint', array('default' => 0));
+      $ret[] = array('success' => TRUE, 'query' => t('You can disregard failed attempts to add new columns in update #5216 as long as the two queries preceding this text were successful.'));
+  }
+  return $ret;
+}
+
+/**
+ * Update from 5.x v2
+ */
+function panels_update_5299() {
+  if (!empty($GLOBALS['SKIP_PANELS_UPDATES'])) {
+    return array();
+  }
+  $ret = array();
+  // Fetch schema version 1.
+  $schema = panels_schema_1();
+
+  // Certain really old versions of Panels had errors that would cause invalid
+  // panes to be written. This wipes them so that the conversion won't fail:
+  $ret[] = update_sql("DELETE FROM {panels_pane} WHERE pid = 0");
+
+  // update pid and did to be serial
+  db_drop_primary_key($ret, 'panels_pane');
+  db_change_field($ret, 'panels_pane', 'pid', 'pid', $schema['panels_pane']['fields']['pid'], array('primary key' => array('pid')));
+  db_drop_primary_key($ret, 'panels_display');
+  db_change_field($ret, 'panels_display', 'did', 'did', $schema['panels_display']['fields']['did'], array('primary key' => array('did')));
+
+  drupal_set_message(t('Please note that the Panels upgrade from Drupal 5 to Drupal 6 is far from perfect, especially where Views and CCK are involved. Please check all your panels carefully and compare them against the originals. You may need to do some rework to regain your original functionality.'));
+
+  return $ret;
+}
+
+/**
+ * Update from 6.x v2.
+ */
+function panels_update_6290() {
+  $ret = array();
+  if (!module_exists('panels')) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('The Panels module cannot be updated while disabled. If you wish to update Panels, please enable it. If you do not wish to update Panels, please uninstall it.'));
+    return $ret;
+  }
+
+  // Fetch schema version 1.
+  $schema = panels_schema_1();
+
+  // Update size of pane 'access' field.
+  db_change_field($ret, 'panels_pane', 'access', 'access', $schema['panels_pane']['fields']['access']);
+
+  // Remove the no longer used visibility field
+  if (db_column_exists('panels_pane', 'visibility')) {
+    db_drop_field($ret, 'panels_pane', 'visibility');
+  }
+
+  // Remove panels_object_cache table
+  if (db_table_exists('panels_object_cache')) {
+    db_drop_table($ret, 'panels_object_cache');
+  }
+
+  // Doublecheck that ctools is enabled. If not, automatically disable the module.
+  if (!module_exists('ctools')) {
+    // Try to enable it:
+    drupal_install_modules(array('ctools'));
+
+    // If that fails, shut off all Panels.
+    if (!module_exists('ctools')) {
+      drupal_set_message(t('Panels now requires the Chaos Tool Suite (ctools) module to function. Panels has been disabled until you can add this module.'));
+      module_disable(array('panels', 'panels_mini', 'panels_export', 'panels_node', 'panels_simple_cache'));
+    }
+  }
+
+  if (!module_exists('page_manager') && db_table_exists('panels_page')) {
+    drupal_set_message('Page manager module has been automatically enabled to replace the Panels pages module.');
+    drupal_install_modules(array('page_manager'));
+  }
+
+  $ret[] = update_sql("DELETE FROM {system} WHERE name IN ('panels_page', 'panels_views')");
+
+  return $ret;
+}
+
+/**
+ * Special update function for the alpha2 to alpha3 transition after
+ * I messed it up.
+ */
+function panels_update_6291() {
+  $ret = array();
+  if (!module_exists('panels')) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('The Panels module cannot be updated while disabled. If you wish to update Panels, please enable it. If you do not wish to update Panels, please uninstall it.'));
+    return $ret;
+  }
+
+  // Fetch schema version 1.
+  $schema = panels_schema_1();
+
+
+  // Add some new fields
+  db_add_field($ret, 'panels_pane', 'style', $schema['panels_pane']['fields']['style']);
+  db_add_field($ret, 'panels_pane', 'css', $schema['panels_pane']['fields']['css']);
+  db_add_field($ret, 'panels_pane', 'extras', $schema['panels_pane']['fields']['extras']);
+
+  return $ret;
+}
+
+/**
+ * Update panels pane fields using batch API.
+ */
+function panels_update_6292(&$sandbox) {
+  $ret = array();
+  if (!module_exists('panels')) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('The Panels module cannot be updated while disabled. If you wish to update Panels, please enable it. If you do not wish to update Panels, please uninstall it.'));
+    return $ret;
+  }
+
+  if (!isset($sandbox['progress'])) {
+    $sandbox['progress'] = 0;
+    // We'll -1 to disregard the uid 0...
+    $sandbox['max'] = db_result(db_query('SELECT COUNT(*) FROM {panels_pane}'));
+  }
+
+  // configuration
+  $result = db_query_range("SELECT pid, access, configuration FROM {panels_pane} ORDER BY pid ASC", $sandbox['progress'], 20);
+  while ($pane = db_fetch_object($result)) {
+    // access
+    if (!empty($pane->access)) {
+      $rids = explode(', ', $pane->access);
+      // For safety, eliminate any non-numeric rids, as we occasionally had
+      // problems with nulls and such getting in here:
+      foreach ($rids as $id => $rid) {
+        if (!is_numeric($rid)) {
+          unset($rids[$id]);
+        }
+      }
+
+      if (empty($rids)) {
+        $pane->access = array();
+      }
+      else {
+        // The old access style was just a role based system, so let's convert
+        // it to that.
+        $pane->access = array(
+          'plugins' => array(
+            array(
+              'name' => 'role',
+              'context' => 'logged-in-user',
+              'settings' => array(
+                'rids' => array_values($rids),
+              )
+            ),
+          ),
+        );
+      }
+    }
+    else {
+      $pane->access = array();
+    }
+
+    // Move style from configuration.
+    $pane->configuration = unserialize($pane->configuration);
+    $pane->style = array();
+    if (!empty($pane->configuration['style'])) {
+      $pane->style['style'] = $pane->configuration['style'];
+      unset($pane->configuration['style']);
+    }
+
+    $pane->css = array();
+    // Move css configuration from configuration
+    if (isset($pane->configuration['css_id'])) {
+      $pane->css['css_id'] = $pane->configuration['css_id'];
+      unset($pane->configuration['css_id']);
+    }
+
+    if (isset($pane->configuration['css_class'])) {
+      $pane->css['css_class'] = $pane->configuration['css_class'];
+      unset($pane->configuration['css_class']);
+    }
+
+    // Make sure extras is an array. This isn't used by anything in Panels
+    // yet, so an empty array is just fine.
+    $pane->extras = array();
+    db_query("UPDATE {panels_pane} SET " .
+      "access = '%s', css = '%s', style = '%s', configuration = '%s', extras = '%s'" .
+      " WHERE pid = %d",
+      serialize($pane->access),
+      serialize($pane->css),
+      serialize($pane->style),
+      serialize($pane->configuration),
+      serialize($pane->extras),
+      $pane->pid);
+
+    $sandbox['progress']++;
+  }
+
+  $ret['#finished'] = empty($sandbox['max']) ? 1 : ($sandbox['progress'] / $sandbox['max']);
+  if ($ret['#finished'] === 1) {
+    $ret[] = array('success' => TRUE, 'query' => t('Panel panes were updated'));
+  }
+  return $ret;
+}
+
+/**
+ * Update panels display fields using batch API.
+ */
+function panels_update_6293(&$sandbox) {
+  $ret = array();
+  if (!module_exists('panels')) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('The Panels module cannot be updated while disabled. If you wish to update Panels, please enable it. If you do not wish to update Panels, please uninstall it.'));
+    return $ret;
+  }
+
+  if (!isset($sandbox['progress'])) {
+    $sandbox['progress'] = 0;
+    // We'll -1 to disregard the uid 0...
+    $sandbox['max'] = db_result(db_query('SELECT COUNT(*) FROM {panels_display}'));
+  }
+
+  // configuration
+  $result = db_query_range("SELECT did, panel_settings FROM {panels_display} ORDER BY did ASC", $sandbox['progress'], 20);
+  while ($display = db_fetch_object($result)) {
+    if (empty($display->panel_settings)) {
+      $display->panel_settings = array();
+    }
+    else {
+      $display->panel_settings = unserialize($display->panel_settings);
+      if (!is_array($display->panel_settings)) {
+        $display->panel_settings = array();
+      }
+    }
+
+    if (isset($display->panel_settings['panel'])) {
+      foreach ($display->panel_settings['panel'] as $key => $settings) {
+        $display->panel_settings[$key] = $settings;
+      }
+      unset($display->panel_settings['panel']);
+    }
+
+    if (isset($display->panel_settings['individual'])) {
+      unset($display->panel_settings['individual']);
+    }
+
+    db_query("UPDATE {panels_display} SET " .
+      "panel_settings = '%s'" .
+      " WHERE did = %d",
+      serialize($display->panel_settings),
+      $display->did);
+
+     $sandbox['progress']++;
+  }
+
+  $ret['#finished'] = empty($sandbox['max']) ? 1 : ($sandbox['progress'] / $sandbox['max']);
+  if ($ret['#finished'] === 1) {
+    $ret[] = array('success' => TRUE, 'query' => t('Panel displays were updated'));
+  }
+  return $ret;
+}
+
+/**
+ * Establish a baseline schema version for 6.x-3.x
+ */
+function panels_update_6300() {
+  return array();
+}
+
+function panels_update_6302() {
+  $ret = array();
+  if (!module_exists('panels')) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('The Panels module cannot be updated while disabled. If you wish to update Panels, please enable it. If you do not wish to update Panels, please uninstall it.'));
+    return $ret;
+  }
+
+  if (!module_exists('page_manager') && db_table_exists('panels_page')) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('Conversion of panels pages cannot be completed without page manager module from CTools installed. Please install CTools, activate page manager, and attempt the update again.'));
+    return $ret;
+  }
+
+  if (!db_table_exists('panels_page')) {
+    return $ret;
+  }
+
+  // Store the node edit handlers because we merged the edit/add path and we
+  // need to be able to keep these together to make sure the names work ok.
+  $node_edit_handlers = array();
+  page_manager_get_task('page');
+  $result = db_query("SELECT * FROM {panels_page}");
+  while ($p = db_fetch_object($result)) {
+    $page = page_manager_page_new();
+    $page->default_handlers = array();
+    // Should we check for uniqueness here? It doesn't seem really
+    // plausible that there could be page manager pages already.
+    $page->name = $p->name;
+    $page->task = 'page'; // could become custom later.
+    $page->subtask = $p->name;
+    $page->admin_title = $p->name;
+    $page->path = $p->path;
+    // convert access
+    if (!empty($p->access)) {
+      $rids = explode(', ', $p->access);
+      // For safety, eliminate any non-numeric rids, as we occasionally had
+      // problems with nulls and such getting in here:
+      foreach ($rids as $id => $rid) {
+        if (!is_numeric($rid)) {
+          unset($rids[$id]);
+        }
+      }
+
+      if (empty($rids)) {
+        $page->access = array();
+      }
+      else {
+        // The old access style was just a role based system, so let's convert
+        // it to that.
+        $page->access = array(
+          'plugins' => array(
+            array(
+              'name' => 'role',
+              'context' => 'logged-in-user',
+              'settings' => array(
+                'rids' => array_values($rids),
+              )
+            ),
+          ),
+        );
+      }
+    }
+
+    // Convert menu stuff.
+    $page->menu = array(
+      'type' => 'none',
+      'title' => '',
+      'weight' => 0,
+      'name' => 'navigation',
+      'parent' => array(
+        'type' => 'none',
+        'title' => '',
+        'weight' => 0,
+        'name' => 'navigation',
+      ),
+    );
+
+    if ($p->menu) {
+      if ($p->menu_tab) {
+        if ($p->menu_tab_default) {
+          $page->menu['type'] = 'default tab';
+          $page->menu['parent']['type'] = $p->menu_tab_default_parent_type;
+          $page->menu['parent']['title'] = $p->menu_parent_title;
+          $page->menu['parent']['weight'] = $p->menu_parent_tab_weight;
+        }
+        else {
+          $page->menu['type'] = 'tab';
+        }
+      }
+      else {
+        $page->menu['type'] = 'normal';
+      }
+
+      $page->menu['title'] = $p->menu_title;
+      $page->menu['weight'] = $p->menu_tab_weight;
+    }
+
+    $page->conf = array();
+    $displays = unserialize($p->displays);
+    $arguments = unserialize($p->arguments);
+
+    foreach ($arguments as $id => $argument) {
+      $page->arguments[$argument['keyword']] = array(
+        'name' => $argument['name'],
+        'identifier' => $argument['identifier'],
+        'title' => $argument['title'],
+        'id' => $argument['id'],
+        'settings' => isset($argument['argument_settings']) ? $argument['argument_settings'] : array(),
+      );
+
+      $match = FALSE;
+      $bits = explode('/', $page->path);
+      foreach ($bits as $pos => $bit) {
+        if ($bit == '%') {
+          $bits[$pos] = '%' . $argument['keyword'];
+          $match = TRUE;
+          $page->path = implode('/', $bits);
+          break;
+        }
+      }
+
+      if (!$match) {
+        if ($argument['default'] == '404') {
+          $page->path .= '/%' . $argument['keyword'];
+        }
+        else {
+          $page->path .= '/!' . $argument['keyword'];
+        }
+      }
+
+      // save this for later use.
+      $arguments[$id]['context'] = 'argument_' . $argument['name'] . '_' . $argument['id'];
+    }
+
+    // Reset the task type here if it's one of our overrides. This ensures
+    // that we get the right names.
+    switch ($p->path) {
+      case 'node/%':
+        $page->task = 'node_view';
+        $page->subtask = '';
+        variable_set('page_manager_node_view_disabled', FALSE);
+        break;
+      case 'node/add/%':
+        // It seems nearly impossible to actually upgrade this properly.
+        continue;
+      case 'node/%/edit':
+        // Could we get conflicts here if they had both?
+        $page->task = 'node_edit';
+        $page->subtask = '';
+        variable_set('page_manager_node_edit_disabled', FALSE);
+        break;
+      case 'taxonomy/term':
+      case 'taxonomy/term/%':
+        $page->task = 'term_view';
+        $page->subtask = '';
+        if ($arguments[0]['name'] == 'term') {
+          variable_set('page_manager_term_view_type', 'single');
+        }
+        variable_set('page_manager_term_view_disabled', FALSE);
+        break;
+      case 'user/%':
+        $page->task = 'user_view';
+        $page->subtask = '';
+        variable_set('page_manager_user_view_disabled', FALSE);
+        break;
+      // There is no default here.
+    }
+
+    if (empty($displays)) {
+      // only one display on this panel, mak
+      $cache = new stdClass();
+      if ($page->task != 'node_edit') {
+        $cache->handlers = array();
+      }
+      else {
+        $cache->handlers = $node_edit_handlers;
+      }
+      _panels_update_create_handler($page, $p, NULL, array('did' => $p->did, 'title' => t('Panel')), $arguments, 0, $cache);
+      $page->default_handlers = $cache->handlers;
+    }
+    else {
+      // for each display we need to create a new handler.
+      $weight = 0;
+      $cache = new stdClass();
+      if ($page->task != 'node_edit') {
+        $cache->handlers = array();
+      }
+      else {
+        $cache->handlers = $node_edit_handlers;
+        $weight = count($cache->handlers) + 1;
+      }
+      foreach ($displays as $origin => $info) {
+        if (!isset($info['argument_id'])) {
+          $info['argument_id'] = 0;
+        }
+
+        _panels_update_create_handler($page, $p, $origin, $info, $arguments, $weight++, $cache);
+      }
+
+      // Also add the primary display as a default with no selector.
+//      _panels_update_create_handler($page, $p, NULL, array('did' => $p->did, 'title' => t('Default')), $arguments, $weight++, $cache);
+      $page->default_handlers = $cache->handlers;
+    }
+
+    if ($page->task != 'page') {
+      // just save the handlers.
+      foreach ($cache->handlers as $name => $handler) {
+        page_manager_save_task_handler($handler);
+
+        // Keep all node edit handlers for later use.
+        if ($page->task == 'node_edit') {
+          $node_edit_handlers[$name] = $handler;
+        }
+      }
+    }
+    else {
+      page_manager_page_save($page);
+    }
+  }
+
+  $ret[] = update_sql("DROP TABLE {panels_page}");
+
+  // Update a couple of pane types that changed and are easily moved:
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("UPDATE {panels_pane} SET type = CONCAT(type, '_', subtype) WHERE type = 'node_form'");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("UPDATE {panels_pane} SET type = type || '_' || subtype WHERE type = 'node_form'");
+  }
+  $ret[] = update_sql("UPDATE {panels_pane} SET type = 'node_form_path' WHERE type = 'node_form_url_path'");
+
+  if (module_exists('ctools') && !module_exists('views_content') && db_result(db_query("SELECT pid FROM {panels_pane} WHERE type = 'views'"))) {
+    drupal_install_modules(array('views_content'));
+  }
+
+  return $ret;
+}
+
+function _panels_update_create_handler($page, $p, $origin, $info, $arguments, $weight, &$cache) {
+  $task = page_manager_get_task($page->task);
+  $task_name = 'page-' . $page->name;
+  $plugin = page_manager_get_task_handler('panel_context');
+  $handler = page_manager_new_task_handler($plugin);
+
+  $handler->weight = $weight;
+  $handler->task = $page->task;
+  if ($page->task == 'page') {
+    $handler->subtask = $page->name;
+  }
+  $handler->export_type = EXPORT_IN_DATABASE;
+  $handler->type = t('Normal');
+
+  $handler->name = page_manager_handler_get_name($task_name, $cache->handlers, $handler);
+
+  $handler->conf['css'] = $p->css;
+  $handler->conf['css_id'] = $p->css_id;
+  $handler->conf['no_blocks'] = $p->no_blocks;
+  if (!empty($info['did']) && is_numeric($info['did'])) {
+    $handler->conf['did'] = $info['did'];
+  }
+  else {
+    $d = panels_load_display($p->did);
+    if ($d) {
+      $display_code = panels_export_display($d);
+      eval($display_code);
+
+      $handler->conf['did'] = 'new';
+      $handler->conf['display'] = $display;
+    }
+  }
+  $handler->conf['title'] = !empty($info['title']) ? $info['title'] : '';
+  $handler->conf['contexts'] = unserialize($p->contexts);
+  $handler->conf['relationships'] = unserialize($p->relationships);
+
+  if ($origin && strpos($origin, '-')) {
+    $handler->conf['access'] = array(
+      'logic' => 'and',
+      'plugins' => array(),
+    );
+
+    // Only 4 types of arguments supported having their own displays:
+    // nid, node_add_form, node_edit_form and term. 3 of those simply used
+    // node type and the last simply used vocabulary.
+    list($junk, $key) = explode('-', $origin);
+    if ($key && $key != 'default') {
+      if ($arguments[$info['argument_id']]['name'] == 'term') {
+        $handler->conf['access']['plugins'][] = array(
+          'name' => 'term_vocabulary',
+          'context' => $arguments[$info['argument_id']]['context'],
+          'settings' => array(
+            'vids' => array($key),
+           ),
+         );
+      }
+      else {
+        $handler->conf['access']['plugins'][] = array(
+          'name' => 'node_type',
+          'context' => $arguments[$info['argument_id']]['context'],
+          'settings' => array(
+            'type' => array($key),
+           ),
+         );
+      }
+    }
+    else {
+      // make sure defaults float to the bottom:
+      $handler->weight += 100;
+    }
+  }
+  $cache->handlers[$handler->name] = $handler;
+
+  return $handler;
+}
+
+/**
+ * Ensure the panels_simple_cache module does not exist.
+ */
+function panels_update_6303() {
+  $ret = array();
+  if (module_exists('panels_simple_cache')) {
+    drupal_set_message(t('Your installation contains a module that no longer exists. When updating modules, you should always remove the module directory first, then replace it with the new code. The "Panels Simple Cache" module is being automatically disabled for you. Please do not re-enable it as it will cause your system to crash.'));
+    $ret[] = update_sql("DELETE FROM {system} WHERE name = 'panels_simple_cache'");
+  }
+
+  return $ret;
+}
+
+/**
+ * Ensure that users are informed about the page manager module.
+ */
+function panels_update_6304() {
+  if (!module_exists('page_manager')) {
+    drupal_set_message(t('The delegator module has been replaced by the Page Manager module. You should enable the page manager module to ensure that any panel pages you have will not be lost.'));
+  }
+
+  return array();
+}
+
+/**
+ * Add the title_pane field.
+ */
+function panels_update_6305() {
+  $ret = array();
+
+  // Fetch schema version 2.
+  $schema = panels_schema_2();
+
+  // Add new field
+  db_add_field($ret, 'panels_display', 'title_pane', $schema['panels_display']['fields']['title_pane']);
+
+  return $ret;
+}
+
+/**
+ * Drop a table that should have been gone long ago.
+ */
+function panels_update_6306() {
+  $ret = array();
+
+  if (db_table_exists('panels_page_router_store')) {
+    db_drop_table($ret, 'panels_page_router_store');
+  }
+
+  return $ret;
+}
+
+/**
+ * This update function does nothing, it was committed in error and is
+ * left in to prevent update problems.
+ */
+function panels_update_6307() {
+  return array();
+}
+
+/**
+ * Add the panels_layout table
+ */
+function panels_update_6308() {
+  $ret = array();
+
+  // Schema 3 is locked and should not be changed.
+  $schema = panels_schema_3();
+
+  db_create_table($ret, 'panels_layout', $schema['panels_layout']);
+  return $ret;
+}
+
+/**
+ * Add the panels_renderer_pipeline table
+ */
+function panels_update_6309() {
+  $ret = array();
+
+  // Schema 3 is locked and should not be changed.
+  $schema = panels_schema_3();
+
+  db_create_table($ret, 'panels_renderer_pipeline', $schema['panels_renderer_pipeline']);
+  return $ret;
+}
+
+/**
+ * Move stylizer data from Panels to CTools.
+ */
+function panels_update_6310() {
+  $ret = array();
+  // load the module files, if possible
+  if (!defined('PANELS_REQUIRED_CTOOLS_API')) {
+    include_once drupal_get_path('module', 'panels') . '/panels.module';
+  }
+  if (!defined('CTOOLS_API_VERSION')) {
+    include_once drupal_get_path('module', 'ctools') . '/ctools.module';
+  }
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    $ret['#abort'] = array('success' => FALSE, 'query' => t('Panels cannot be updated because CTools 1.7 (API v1.7.2) is required. Please update CTools and then try update.php again.'));
+    return $ret;
+  }
+
+  // Enable the stylizer module to make everything as seamless as possible.
+  drupal_install_modules(array('stylizer'));
+  return $ret;
+}
+
+/**
+ * Change panels_display.layout to match the size of panels_layout.name.
+ */
+function panels_update_6311() {
+  $ret = array();
+
+  // Clear the schema cache so the change is picked up.
+  cache_clear_all('schema', 'cache');
+
+  // Load the schema.
+  $schema = panels_schema();
+  $table = 'panels_display';
+  $field = 'layout';
+  $spec = $schema[$table]['fields'][$field];
+
+  // Re-define the column.
+  db_change_field($ret, $table, $field, $field, $spec);
+
+  $ret[] = array('success' => TRUE, 'query' => t('Changed the panels_display.layout field to the correct size.'));
+
+  return $ret;
+}
+
+/**
+ * Add a custom cache table for Panels.
+ */
+function panels_update_6312() {
+  $ret = array();
+
+  $table_name = 'cache_panels';
+  if (!db_table_exists($table_name)) {
+    $ret = array();
+    $schema = drupal_get_schema_unprocessed('system', 'cache');
+    db_create_table($ret, $table_name, $schema);
+  }
+
+  $ret[] = array('success' => TRUE, 'query' => t('Added a cache panels table.'));
+
+  return $ret;
+}
+
+/**
+ * Add the "storage_type" and "storage_id" columns to "panels_display".
+ */
+function panels_update_6313() {
+  $schema = panels_schema_4();
+
+  $new_fields = array(
+    'panels_display' => array('storage_type', 'storage_id'),
+  );
+
+  $ret = array();
+
+  foreach ($new_fields as $table => $fields) {
+    foreach ($fields as $field_name) {
+      db_add_field($ret, $table, $field_name, $schema[$table]['fields'][$field_name]);
+    }
+  }
+
+  $ret[] = array('success' => TRUE, 'query' => t('Added the storage_type and storage_id columns.'));
+
+  return $ret;
+}
+
+/**
+ * Set the storage type and id on existing page manager panels displays.
+ */
+function panels_update_6314() {
+  $ret = array();
+
+  if (!db_table_exists('page_manager_handlers')) {
+    $ret[] = array('success' => TRUE, 'query' => t('Skipping update - page_manager is not installed.'));
+    return $ret;
+  }
+
+  // Get all page_manager_handlers that have a panels context.
+  $result = db_query("SELECT pm.name, pm.conf FROM {page_manager_handlers} pm WHERE pm.handler = 'panel_context'");
+  $page_manager_panels = array();
+  while ($row = db_fetch_object($result)) {
+    $conf = unserialize($row->conf);
+    if (isset($conf['did'])) {
+      $page_manager_panels[$conf['did']] = $row->name;
+    }
+  }
+  $dids = array_keys($page_manager_panels);
+
+  if (!empty($dids)) {
+    // Check panels displays that only have empty storage types
+    $result = db_query("SELECT pd.did FROM {panels_display} pd WHERE pd.did IN (" . db_placeholders($dids, 'int') . ") AND storage_type = ''", $dids);
+    while ($row = db_fetch_object($result)) {
+      db_query("UPDATE {panels_display} SET storage_type = '%s', storage_id = '%s' WHERE did = %d",
+        'page_manager', $page_manager_panels[$row->did], $row->did);
+    }
+  }
+
+  $ret[] = array('success' => TRUE, 'query' => t('Set storage_type and storage_id on existing page manager panels displays.'));
+
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels.module b/drupal/sites/default/boinc/modules/contrib/panels/panels.module
new file mode 100644
index 0000000..c167e54
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels.module
@@ -0,0 +1,1804 @@
+<?php
+
+/**
+ * @file panels.module
+ *
+ * Core functionality for the Panels engine.
+ */
+
+define('PANELS_REQUIRED_CTOOLS_API', '1.8');
+
+define('PANELS_TITLE_FIXED', 0); // Hide title use to be true/false. So false remains old behavior.
+define('PANELS_TITLE_NONE', 1); // And true meant no title.
+define('PANELS_TITLE_PANE', 2); // And this is the new behavior, where the title field will pick from a pane.
+
+/**
+ * Returns the API version of Panels. This didn't exist in 1.
+ *
+ * @return An array with the major and minor versions
+ */
+function panels_api_version() {
+  return array(3, 1);
+}
+
+// --------------------------------------------------------------------------
+// Core Drupal hook implementations
+
+/**
+ * Implementation of hook_theme()
+ */
+function panels_theme() {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    return array();
+  }
+
+  $theme = array();
+  $theme['panels_layout_link'] = array(
+    'arguments' => array('title', 'id', 'image', 'link'),
+  );
+  $theme['panels_layout_icon'] = array(
+    'arguments' => array('id', 'image', 'title' => NULL),
+  );
+  $theme['panels_pane'] = array(
+    'arguments' => array('output' => array(), 'pane' => array(), 'display' => array()),
+    'path' => drupal_get_path('module', 'panels') . '/templates',
+    'template' => 'panels-pane',
+  );
+  $theme['panels_common_content_list'] = array(
+    'arguments' => array('display'),
+    'file' => 'includes/common.inc',
+  );
+  $theme['panels_render_display_form'] = array(
+    'arguments' => array('form' => NULL),
+  );
+
+  $theme['panels_dashboard'] = array(
+    'arguments' => array(),
+    'path' => drupal_get_path('module', 'panels') . '/templates',
+    'file' => '../includes/callbacks.inc',
+    'template' => 'panels-dashboard',
+  );
+
+  $theme['panels_dashboard_link'] = array(
+    'arguments' => array('link' => array()),
+    'path' => drupal_get_path('module', 'panels') . '/templates',
+    'file' => '../includes/callbacks.inc',
+    'template' => 'panels-dashboard-link',
+  );
+
+  $theme['panels_dashboard_block'] = array(
+    'arguments' => array('block' => array()),
+    'path' => drupal_get_path('module', 'panels') . '/templates',
+    'file' => '../includes/callbacks.inc',
+    'template' => 'panels-dashboard-block',
+  );
+
+  // We don't need layout and style themes in maintenance mode.
+  // Disabling this: See http://drupal.org/node/979912 for information.
+//  if (defined('MAINTENANCE_MODE')) {
+//    return $theme;
+//  }
+
+  // Register layout and style themes on behalf of all of these items.
+  ctools_include('plugins', 'panels');
+
+  // No need to worry about files; the plugin has to already be loaded for us
+  // to even know what the theme function is, so files will be auto included.
+  $layouts = panels_get_layouts();
+  foreach ($layouts as $name => $data) {
+    foreach (array('theme', 'admin theme') as $callback) {
+      if (!empty($data[$callback])) {
+        $theme[$data[$callback]] = array(
+          'arguments' => array('css_id' => NULL, 'content' => NULL, 'settings' => NULL, 'display' => NULL, 'layout' => NULL, 'renderer' => NULL),
+          'path' => $data['path'],
+          'file' => $data['file'],
+        );
+
+        // if no theme function exists, assume template.
+        if (!function_exists("theme_$data[theme]")) {
+          $theme[$data[$callback]]['template'] = str_replace('_', '-', $data[$callback]);
+          $theme[$data[$callback]]['file'] = $data['file']; // for preprocess.
+        }
+      }
+    }
+  }
+
+  $styles = panels_get_styles();
+  foreach ($styles as $name => $data) {
+    if (!empty($data['render pane'])) {
+      $theme[$data['render pane']] = array(
+        'arguments' => array('output' => NULL, 'pane' => NULL, 'display' => NULL, 'style' => NULL),
+        'path' => $data['path'],
+        'file' => $data['file'],
+      );
+    }
+    // If we're in legacy mode, include the old callback key for legacy styles.
+    if (variable_get('panels_legacy_rendering_mode', TRUE)) {
+      if (!empty($data['render panel'])) {
+        $theme[$data['render panel']] = array(
+          'arguments' => array('display' => NULL, 'panel_id' => NULL, 'panes' => NULL, 'settings' => NULL, 'style' => NULL),
+          'path' => $data['path'],
+          'file' => $data['file'],
+        );
+      }
+    }
+    if (!empty($data['render region'])) {
+      $theme[$data['render region']] = array(
+        'arguments' => array('display' => NULL, 'region_id' => NULL, 'panes' => NULL, 'settings' => NULL, 'style' => NULL),
+        'path' => $data['path'],
+        'file' => $data['file'],
+      );
+    }
+
+    if (!empty($data['hook theme'])) {
+      if (is_array($data['hook theme'])) {
+        $theme += $data['hook theme'];
+      }
+      else if (function_exists($data['hook theme'])) {
+        $data['hook theme']($theme, $data);
+      }
+    }
+  }
+
+  return $theme;
+}
+
+/**
+ * Implementation of hook_menu
+ */
+function panels_menu() {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    return array();
+  }
+  $items = array();
+
+  // Base AJAX router callback.
+  $items['panels/ajax'] = array(
+    'access arguments' => array('access content'),
+    'page callback' => 'panels_ajax_router',
+    'type' => MENU_CALLBACK,
+  );
+
+  $admin_base = array(
+    'file' => 'includes/callbacks.inc',
+    'access arguments' => array('use panels dashboard'),
+  );
+  // Provide a nice location for a panels admin panel.
+  $items['admin/build/panels'] = array(
+    'title' => 'Panels',
+    'page callback' => 'panels_admin_page',
+    'description' => 'Get a bird\'s eye view of items related to Panels.',
+  ) + $admin_base;
+
+  $items['admin/build/panels/dashboard'] = array(
+    'title' => 'Dashboard',
+    'page callback' => 'panels_admin_page',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  ) + $admin_base;
+
+  $items['admin/build/panels/settings'] = array(
+    'title' => 'Settings',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('panels_admin_settings_page'),
+    'type' => MENU_LOCAL_TASK,
+  ) + $admin_base;
+
+  $items['admin/build/panels/settings/general'] = array(
+    'title' => 'General',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('panels_admin_settings_page'),
+    'access arguments' => array('administer page manager'),
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  ) + $admin_base;
+
+  if (module_exists('page_manager')) {
+    $items['admin/build/panels/settings/panel-page'] = array(
+      'title' => 'Panel pages',
+      'page callback' => 'panels_admin_panel_context_page',
+      'type' => MENU_LOCAL_TASK,
+      'weight' => -10,
+    ) + $admin_base;
+  }
+
+  ctools_include('plugins', 'panels');
+  $layouts = panels_get_layouts();
+  foreach ($layouts as $name => $data) {
+    if (!empty($data['hook menu'])) {
+      if (is_array($data['hook menu'])) {
+        $items += $data['hook menu'];
+      }
+      else if (function_exists($data['hook menu'])) {
+        $data['hook menu']($items, $data);
+      }
+    }
+  }
+
+
+  return $items;
+}
+
+/**
+ * Menu loader function to load a cache item for Panels AJAX.
+ *
+ * This load all of the includes needed to perform AJAX, and loads the
+ * cache object and makes sure it is valid.
+ */
+function panels_edit_cache_load($cache_key) {
+  ctools_include('display-edit', 'panels');
+  ctools_include('plugins', 'panels');
+  ctools_include('ajax');
+  ctools_include('modal');
+  ctools_include('context');
+
+  return panels_edit_cache_get($cache_key);
+}
+
+/**
+ * Implementation of hook_init()
+ */
+function panels_init() {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    if (user_access('administer site configuration')) {
+      drupal_set_message(t('Panels is enabled but CTools is out of date. All Panels modules are disabled until CTools is updated. See the status page for more information.'), 'error');
+    }
+    return;
+  }
+
+  ctools_add_css('panels', 'panels');
+  ctools_add_js('panels', 'panels');
+}
+
+/**
+ * Implementation of hook_perm
+ */
+function panels_perm() {
+  return array(
+    'view all panes',
+    'view pane admin links',
+    'administer pane visibility',
+    'administer pane access',
+    'administer advanced pane settings',
+    'administer panels layouts',
+    'administer panels styles',
+    'use panels caching features',
+    'use panels dashboard',
+    'use panels in place editing',
+    'bypass access in place editing',
+  );
+}
+
+/**
+ * Implementation of hook_flush_caches().
+ *
+ * We implement this so that we can be sure our legacy rendering state setting
+ * in $conf is updated whenever caches are cleared. Also indicates the custom
+ * Panels cache table.
+ */
+function panels_flush_caches() {
+  $legacy = panels_get_legacy_state();
+  $legacy->determineStatus();
+
+  // The custom cache table.
+  return array('cache_panels');
+}
+
+// ---------------------------------------------------------------------------
+// CTools hook implementations
+//
+// These aren't core Drupal hooks but they are just as important.
+
+/**
+ * Implementation of hook_ctools_plugin_directory() to let the system know
+ * we implement task and task_handler plugins.
+ */
+function panels_ctools_plugin_directory($module, $plugin) {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    return;
+  }
+  if ($module == 'page_manager' || $module == 'panels' || $module == 'ctools') {
+    return 'plugins/' . $plugin;
+  }
+}
+
+/**
+ * Inform CTools that the layout plugin can be loaded from themes.
+ */
+function panels_ctools_plugin_layouts() {
+  return array(
+    'load themes' => TRUE,
+    'use hooks' => TRUE,
+    'process' => 'panels_layout_process',
+    'child plugins' => TRUE,
+  );
+}
+
+/**
+ * Ensure a layout has a minimal set of data.
+ */
+function panels_layout_process(&$plugin) {
+  $plugin += array(
+    'category' => t('Miscellaneous'),
+    'description' => '',
+  );
+}
+
+/**
+ * Inform CTools that the style plugin can be loaded from themes.
+ */
+function panels_ctools_plugin_styles() {
+  return array(
+    'load themes' => TRUE,
+    'use hooks' => TRUE,
+    'process' => 'panels_plugin_styles_process',
+    'child plugins' => TRUE,
+  );
+}
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ *
+ * Inform CTools about version information for various plugins implemented by
+ * Panels.
+ *
+ * @param string $owner
+ *   The system name of the module owning the API about which information is
+ *   being requested.
+ * @param string $api
+ *   The name of the API about which information is being requested.
+ */
+function panels_ctools_plugin_api($owner, $api) {
+  if ($owner == 'panels' && $api == 'styles') {
+    // As of 6.x-3.6, Panels has a slightly new system for style plugins.
+    return array('version' => 2.0);
+  }
+
+  if ($owner == 'panels' && $api == 'pipelines') {
+    return array(
+      'version' => 1,
+      'path' => drupal_get_path('module', 'panels') . '/includes',
+    );
+  }
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function panels_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'panels') . '/plugins/views',
+  );
+}
+
+/**
+ * Perform additional processing on a style plugin.
+ *
+ * Currently this is only being used to apply versioning information to style
+ * plugins in order to ensure the legacy renderer passes the right type of
+ * parameters to a style plugin in a hybrid environment of both new and old
+ * plugins.
+ *
+ * @see _ctools_process_data()
+ *
+ * @param array $plugin
+ *   The style plugin that is being processed.
+ * @param array $info
+ *   The style plugin type info array.
+ */
+function panels_plugin_styles_process(&$plugin, $info) {
+  $plugin += array(
+    'weight' => 0,
+  );
+
+  $compliant_modules = ctools_plugin_api_info('panels', 'styles', 2.0, 2.0);
+  $plugin['version'] = empty($compliant_modules[$plugin['module']]) ? 1.0 : $compliant_modules[$plugin['module']]['version'];
+}
+
+/**
+ * Declare what style types Panels uses.
+ */
+function panels_ctools_style_base_types() {
+  return array(
+    'region' => array(
+      'title' => t('Panel region'),
+      'preview' => 'panels_stylizer_region_preview',
+      'theme arguments' => array('settings' => NULL, 'classes' => NULL, 'content' => NULL),
+    ),
+    'pane' => array(
+      'title' => t('Panel pane'),
+      'preview' => 'panels_stylizer_pane_preview',
+      'theme arguments' => array('settings' => NULL, 'content' => NULL, 'pane' => NULL, 'display' => NULL),
+    ),
+    'panels_storage' => array(),
+  );
+}
+
+function panels_stylizer_lipsum() {
+  return "
+    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus at velit dolor. Donec egestas tellus sit amet urna rhoncus adipiscing. Proin nec porttitor sem. Maecenas aliquam, purus nec tempus dignissim, nulla arcu aliquam diam, non tincidunt massa ante vel dolor. Aliquam sapien sapien, tincidunt id tristique at, pretium sagittis libero.</p>
+
+    <p>Nulla facilisi. Curabitur lacinia, tellus sed tristique consequat, diam lorem scelerisque felis, at dictum purus augue facilisis lorem. Duis pharetra dignissim rutrum. Curabitur ac elit id dui dapibus tincidunt. Nulla eget sem quam, non eleifend eros. Cras porttitor tempus lectus ac scelerisque. Curabitur vehicula bibendum lorem, vitae ornare ligula venenatis ut.</p>
+  ";
+}
+
+/**
+ * Generate a preview given the current settings.
+ */
+function panels_stylizer_region_preview($plugin, $settings) {
+  ctools_stylizer_add_css($plugin, $settings);
+  return theme($plugin['theme'], $settings, ctools_stylizer_get_css_class($plugin, $settings), panels_stylizer_lipsum());
+}
+
+/**
+ * Generate a preview given the current settings.
+ */
+function panels_stylizer_pane_preview($plugin, $settings) {
+  ctools_stylizer_add_css($plugin, $settings);
+  $pane = new stdClass();
+
+  $content = new stdClass;
+  $content->title = t('Lorem ipsum');
+  $content->content = panels_stylizer_lipsum();
+  $content->type = 'dummy';
+  $content->subtype = 'dummy';
+
+  $content->css_class = ctools_stylizer_get_css_class($plugin, $settings);
+
+  $display = new panels_display();
+
+  if (!empty($plugin['theme'])) {
+    return theme($plugin['theme'], $settings, $content, $pane, $display);
+  }
+  else {
+    return theme('panels_pane', $content, $pane, $display);
+  }
+}
+
+// ---------------------------------------------------------------------------
+// Panels display editing
+
+/**
+ * @defgroup mainapi Functions comprising the main panels API
+ * @{
+ */
+
+/**
+ * Main API entry point to edit a panel display.
+ *
+ * Sample implementations utiltizing the the complex $destination behavior can be found
+ * in panels_page_edit_content() and, in a separate contrib module, OG Blueprints
+ * (http://drupal.org/project/og_blueprints), og_blueprints_blueprint_edit().
+ *
+ * @ingroup mainapi
+ *
+ * @param object $display instanceof panels_display \n
+ *  A fully loaded panels $display object, as returned from panels_load_display().
+ *  Merely passing a did is NOT sufficient. \n
+ *  Note that 'fully loaded' means the $display must already be loaded with any contexts
+ *  the caller wishes to have set for the display.
+ * @param mixed $destination \n
+ *  The redirect destination that the user should be taken to on form submission or
+ *  cancellation. With panels_edit, $destination has complex effects on the return
+ *  values of panels_edit() once the form has been submitted. See the explanation of
+ *  the return value below to understand the different types of values returned by panels_edit()
+ *  at different stages of FAPI. Under most circumstances, simply passing in
+ *  drupal_get_destination() is all that's necessary.
+ * @param array $content_types \n
+ *  An associative array of allowed content types, typically as returned from
+ *  panels_common_get_allowed_types(). Note that context partially governs available content types,
+ *  so you will want to create any relevant contexts using panels_create_context() or
+ *  panels_create_context_empty() to make sure all the appropriate content types are available.
+ *
+ * @return
+ *  Because the functions called by panels_edit() invoke the form API, this function
+ *  returns different values depending on the stage of form submission we're at. In Drupal 5,
+ *  the phase of form submission is indicated by the contents of $_POST['op']. Here's what you'll
+ *  get at different stages:
+ *    -# If !$_POST['op']: then we're on on the initial passthrough and the form is being
+ *       rendered, so it's the $form itself that's being returned. Because negative margins,
+ *       a common CSS technique, bork the display editor's ajax drag-and-drop, it's important
+ *       that the $output be printed, not returned. Use this syntax in the caller function: \n
+ *          print theme('page', panels_edit($display, $destination, $content_types), FALSE); \n
+ *    -# If $_POST['op'] == t('Cancel'): form submission has been cancelled. If empty($destination) == FALSE,
+ *       then there is no return value and the panels API takes care of redirecting to $destination.
+ *       If empty($destination) == TRUE, then there's still no return value, but the caller function
+ *       has to take care of form redirection.
+ *    -# If $_POST['op'] == ('Save'): the form has been submitted successfully and has run through
+ *        panels_edit_display_submit(). $output depends on the value of $destination:
+ *      - If empty($destination) == TRUE: $output contains the modified $display
+ *        object, and no redirection will occur. This option is useful if the caller
+ *        needs to perform additional operations on or with the modified $display before
+ *        the page request is complete. Using hook_form_alter() to add an additional submit
+ *        handler is typically the preferred method for something like this, but there
+ *        are certain use cases where that is infeasible and $destination = NULL should
+ *        be used instead. If this method is employed, the caller will need to handle form
+ *        redirection. Note that having $_REQUEST['destination'] set, whether via
+ *        drupal_get_destination() or some other method, will NOT interfere with this
+ *        functionality; consequently, you can use drupal_get_destination() to safely store
+ *        your desired redirect in the caller function, then simply use drupal_goto() once
+ *        panels_edit() has done its business.
+ *      - If empty($destination) == FALSE: the form will redirect to the URL string
+ *        given in $destination and NO value will be returned.
+ */
+function panels_edit($display, $destination = NULL, $content_types = NULL, $title = FALSE) {
+  ctools_include('display-edit', 'panels');
+  ctools_include('ajax');
+  ctools_include('plugins', 'panels');
+  return _panels_edit($display, $destination, $content_types, $title);
+}
+
+/**
+ * API entry point for selecting a layout for a given display.
+ *
+ * Layout selection is nothing more than a list of radio items encompassing the available
+ * layouts for this display, as defined by .inc files in the panels/layouts subdirectory.
+ * The only real complexity occurs when a user attempts to change the layout of a display
+ * that has some content in it.
+ *
+ * @param object $display instanceof panels_display \n
+ *  A fully loaded panels $display object, as returned from panels_load_display().
+ *  Merely passing a did is NOT sufficient.
+ * @param string $finish
+ *  A string that will be used for the text of the form submission button. If no value is provided,
+ *  then the form submission button will default to t('Save').
+ * @param mixed $destination
+ *  Basic usage is a string containing the URL that the form should redirect to upon submission.
+ *  For a discussion of advanced usages, see panels_edit().
+ * @param mixed $allowed_layouts
+ *  Allowed layouts has three different behaviors that depend on which of three value types
+ *  are passed in by the caller:
+ *    #- if $allowed_layouts instanceof panels_allowed_layouts (includes subclasses): the most
+ *       complex use of the API. The caller is passing in a loaded panels_allowed_layouts object
+ *       that the client module previously created and stored somewhere using a custom storage
+ *       mechanism.
+ *    #- if is_string($allowed_layouts): the string will be used in a call to variable_get() which
+ *       will call the $allowed_layouts . '_allowed_layouts' var. If the data was stored properly
+ *       in the system var, the $allowed_layouts object will be unserialized and recreated.
+ *       @see panels_common_set_allowed_layouts()
+ *    #- if is_null($allowed_layouts): the default behavior, which also provides backwards
+ *       compatibility for implementations of the Panels2 API written before beta4. In this case,
+ *       a dummy panels_allowed_layouts object is created which does not restrict any layouts.
+ *       Subsequent behavior is indistinguishable from pre-beta4 behavior.
+ *
+ * @return
+ *  Can return nothing, or a modified $display object, or a redirection string; return values for the
+ *  panels_edit* family of functions are quite complex. See panels_edit() for detailed discussion.
+ * @see panels_edit()
+ */
+function panels_edit_layout($display, $finish, $destination = NULL, $allowed_layouts = NULL) {
+  ctools_include('display-layout', 'panels');
+  ctools_include('plugins', 'panels');
+  return _panels_edit_layout($display, $finish, $destination, $allowed_layouts);
+}
+
+// ---------------------------------------------------------------------------
+// Panels database functions
+
+/**
+ * Forms the basis of a panel display
+ *
+ */
+class panels_display {
+  var $args = array();
+  var $content = array();
+  var $panels = array();
+  var $incoming_content = NULL;
+  var $css_id = NULL;
+  var $context = array();
+  var $did = 'new';
+  var $renderer;
+
+  function panels_display() {
+    // Set the default renderer to either the legacy or the standard renderer,
+    // depending on the legacy rendering state
+    $this->renderer = variable_get('panels_legacy_rendering_mode', TRUE) ? 'legacy' : 'standard';
+  }
+
+  function add_pane(&$pane, $location = NULL) {
+    // If no location specified, use what's set in the pane.
+    if (empty($location)) {
+      $location = $pane->panel;
+    }
+    else {
+      $pane->panel = $location;
+    }
+
+    // Get a temporary pid for this pane.
+    $pane->pid = "new-" . $this->next_new_pid();
+
+    // Add the pane to the approprate spots.
+    $this->content[$pane->pid] = &$pane;
+    $this->panels[$location][] = $pane->pid;
+  }
+
+  function duplicate_pane($pid, $location = FALSE) {
+    $pane = $this->clone_pane($pid);
+    $this->add_pane($pane, $location);
+  }
+
+  function clone_pane($pid) {
+    $pane = drupal_clone($this->content[$pid]);
+    return $pane;
+  }
+
+  function next_new_pid() {
+    // We don't use static vars to record the next new pid because
+    // temporary pids can last for years in exports and in caching
+    // during editing.
+    $id = array(0);
+    foreach (array_keys($this->content) as $pid) {
+      if (!is_numeric($pid)) {
+        $id[] = substr($pid, 4);
+      }
+    }
+    $next_id = max($id);
+    return ++$next_id;
+  }
+
+  /**
+   * Get the title from a display.
+   *
+   * The display must have already been rendered, or the setting to set the
+   * display's title from a pane's title will not have worked.
+   *
+   * @return
+   *   The title to use. If NULL, this means to let any default title that may be in use
+   *   pass through. i.e, do not actually set the title.
+   */
+  function get_title() {
+    switch ($this->hide_title) {
+      case PANELS_TITLE_NONE:
+        return '';
+
+      case PANELS_TITLE_PANE:
+        return isset($this->stored_pane_title) ? $this->stored_pane_title : '';
+
+      case PANELS_TITLE_FIXED:
+      case FALSE; // For old exported panels that are not in the database.
+        if (!empty($this->title)) {
+          return filter_xss_admin(ctools_context_keyword_substitute($this->title, array(), $this->context));
+        }
+        return NULL;
+    }
+  }
+
+  /**
+   * Render this panels display.
+   *
+   * After checking to ensure the designated layout plugin is valid, a
+   * display renderer object is spawned and runs its rendering logic.
+   *
+   * @param mixed $renderer
+   *    An instantiated display renderer object, or the name of a display
+   *    renderer plugin+class to be fetched. Defaults to NULL. When NULL, the
+   *    predesignated display renderer will be used.
+   */
+  function render($renderer = NULL) {
+    $layout = panels_get_layout($this->layout);
+    if (!$layout) {
+      return NULL;
+    }
+
+    // If we were not given a renderer object, load it.
+    if (!is_object($renderer)) {
+      // If the renderer was not specified, default to $this->renderer
+      // which is either standard or was already set for us.
+      $renderer = panels_get_renderer_handler(!empty($renderer) ? $renderer : $this->renderer, $this);
+      if (!$renderer) {
+        return NULL;
+      }
+    }
+
+    $output = '';
+    // Let modules act just prior to render.
+    foreach (module_implements('panels_pre_render') as $module) {
+      $function = $module . '_panels_pre_render';
+      $output .= $function($this, $renderer);
+    }
+
+    $output .= $renderer->render();
+
+    // Let modules act just after render.
+    foreach (module_implements('panels_post_render') as $module) {
+      $function = $module . '_panels_post_render';
+      $output .= $function($this, $renderer);
+    }
+    return $output;
+  }
+
+  /**
+   * Determine if the given user can perform the requested operation.
+   *
+   * @param string $op
+   *   An operation like: create, read, update, or delete.
+   * @param object $account
+   *   (optional) The account to check access for.
+   *
+   * @return bool
+   *   TRUE if access is granted; otherwise FALSE.
+   */
+  function access($op, $account = NULL) {
+    global $user;
+
+    if (!$account) {
+      $account = $user;
+    }
+
+    // Even administrators need to go through the access system. However, to
+    // support legacy plugins, user 1 gets full access no matter what.
+    if ($account->uid == 1) {
+      return TRUE;
+    }
+
+    if (!in_array($op, array('create', 'read', 'update', 'delete', 'change layout'))) {
+      return FALSE;
+    }
+
+    if (empty($this->storage_type) || empty($this->storage_id)) {
+      return FALSE;
+    }
+
+    if ($this->storage_type == 'unknown') {
+      return FALSE;
+    }
+
+    $storage_plugin = panels_get_panels_storage_plugin($this->storage_type);
+    if (!$storage_plugin) {
+      return FALSE;
+    }
+
+    $access_callback = panels_plugin_get_function('panels_storage', $storage_plugin, 'access callback');
+    if (!$access_callback) {
+      return FALSE;
+    }
+
+    return $access_callback($this->storage_type, $this->storage_id, $op, $account);
+  }
+}
+
+/**
+ * }@ End of 'defgroup mainapi', although other functions are specifically added later
+ */
+
+/**
+ * Creates a new display, setting the ID to our magic new id.
+ */
+function panels_new_display() {
+  ctools_include('export');
+  $display = ctools_export_new_object('panels_display', FALSE);
+  $display->did = 'new';
+  return $display;
+}
+
+/**
+ * Create a new pane.
+ *
+ * @todo -- use schema API for some of this?
+ */
+function panels_new_pane($type, $subtype, $set_defaults = FALSE) {
+  ctools_include('export');
+  $pane = ctools_export_new_object('panels_pane', FALSE);
+  $pane->pid = 'new';
+  $pane->type = $type;
+  $pane->subtype = $subtype;
+  if ($set_defaults) {
+    $content_type = ctools_get_content_type($type);
+    $content_subtype = ctools_content_get_subtype($content_type, $subtype);
+    $pane->configuration = ctools_content_get_defaults($content_type, $content_subtype);
+  }
+
+  return $pane;
+}
+
+/**
+ * Load and fill the requested $display object(s).
+ *
+ * Helper function primarily for for panels_load_display().
+ *
+ * @param array $dids
+ *  An indexed array of dids to be loaded from the database.
+ *
+ * @return $displays
+ *  An array of displays, keyed by their display dids.
+ *
+ * @todo schema API can drasticly simplify this code.
+ */
+function panels_load_displays($dids) {
+  $displays = array();
+  if (empty($dids) || !is_array($dids)) {
+    return $displays;
+  }
+
+  $result = db_query("SELECT * FROM {panels_display} WHERE did IN (" .  db_placeholders($dids) . ")", $dids);
+
+  ctools_include('export');
+  while ($obj = db_fetch_object($result)) {
+    $displays[$obj->did] = ctools_export_unpack_object('panels_display', $obj);
+    // Modify the hide_title field to go from a bool to an int if necessary.
+  }
+
+  $result = db_query("SELECT * FROM {panels_pane} WHERE did IN (" . db_placeholders($dids) . ") ORDER BY did, panel, position", $dids);
+
+  while ($obj = db_fetch_object($result)) {
+    $pane = ctools_export_unpack_object('panels_pane', $obj);
+
+    $displays[$pane->did]->panels[$pane->panel][] = $pane->pid;
+    $displays[$pane->did]->content[$pane->pid] = $pane;
+  }
+
+  return $displays;
+}
+
+/**
+ * Load a single display.
+ *
+ * @ingroup mainapi
+ *
+ * @param int $did
+ *  The display id (did) of the display to be loaded.
+ *
+ * @return object $display instanceof panels_display \n
+ *  Returns a partially-loaded panels_display object. $display objects returned from
+ *  from this function have only the following data:
+ *    - $display->did (the display id)
+ *    - $display->name (the 'name' of the display, where applicable - it often isn't)
+ *    - $display->layout (a string with the system name of the display's layout)
+ *    - $display->panel_settings (custom layout style settings contained in an associative array; NULL if none)
+ *    - $display->layout_settings (panel size and configuration settings for Flexible layouts; NULL if none)
+ *    - $display->css_id (the special css_id that has been assigned to this display, if any; NULL if none)
+ *    - $display->content (an array of pane objects, keyed by pane id (pid))
+ *    - $display->panels (an associative array of panel regions, each an indexed array of pids in the order they appear in that region)
+ *    - $display->cache (any relevant data from panels_simple_cache)
+ *    - $display->args
+ *    - $display->incoming_content
+ *
+ * While all of these members are defined, $display->context is NEVER defined in the returned $display;
+ * it must be set using one of the ctools_context_create() functions.
+ */
+function panels_load_display($did) {
+  $displays = panels_load_displays(array($did));
+  if (!empty($displays)) {
+    return array_shift($displays);
+  }
+}
+
+/**
+ * Save a display object.
+ *
+ * @ingroup mainapi
+ *
+ * Note a new $display only receives a real did once it is run through this function.
+ * Until then, it uses a string placeholder, 'new', in place of a real did. The same
+ * applies to all new panes (whether on a new $display or not); in addition,
+ * panes have sequential numbers appended, of the form 'new-1', 'new-2', etc.
+ *
+ * @param object $display instanceof panels_display \n
+ *  The display object to be saved. Passed by reference so the caller need not use
+ *  the return value for any reason except convenience.
+ *
+ * @return object $display instanceof panels_display \n
+ */
+function panels_save_display(&$display) {
+  $update = (isset($display->did) && is_numeric($display->did)) ? array('did') : array();
+  drupal_write_record('panels_display', $display, $update);
+
+  $pids = array();
+  if ($update) {
+    // Get a list of all panes currently in the database for this display so we can know if there
+    // are panes that need to be deleted. (i.e, aren't currently in our list of panes).
+    $result = db_query("SELECT pid FROM {panels_pane} WHERE did = %d", $display->did);
+    while ($pane = db_fetch_object($result)) {
+      $pids[$pane->pid] = $pane->pid;
+    }
+  }
+
+  // update all the panes
+  ctools_include('plugins', 'panels');
+  ctools_include('content');
+
+  foreach ($display->panels as $id => $panes) {
+    $position = 0;
+    $new_panes = array();
+    foreach ((array) $panes as $pid) {
+      if (!isset($display->content[$pid])) {
+        continue;
+      }
+      $pane = $display->content[$pid];
+      $type = ctools_get_content_type($pane->type);
+
+      $pane->position = $position++;
+      $pane->did = $display->did;
+
+      $old_pid = $pane->pid;
+      drupal_write_record('panels_pane', $pane, is_numeric($pid) ? array('pid') : array());
+
+      if ($pane->pid != $old_pid) {
+        // and put it back so our pids and positions can be used
+        unset($display->content[$id]);
+        $display->content[$pane->pid] = $pane;
+
+        // If the title pane was one of our panes that just got its ID changed,
+        // we need to change it in the database, too.
+        if (isset($display->title_pane) && $display->title_pane == $old_pid) {
+          $display->title_pane = $pane->pid;
+          // Do a simple update query to write it so we don't have to rewrite
+          // the whole record. We can't just save writing the whole record here
+          // because it was needed to get the did. Chicken, egg, more chicken.
+          db_query("UPDATE {panels_display} SET title_pane = %d WHERE did = %d", $pane->pid, $display->did);
+        }
+      }
+
+      // re-add this to the list of content for this panel.
+      $new_panes[] = $pane->pid;
+
+      // Remove this from the list of panes scheduled for deletion.
+      if (isset($pids[$pane->pid])) {
+        unset($pids[$pane->pid]);
+      }
+    }
+
+    $display->panels[$id] = $new_panes;
+  }
+  if (!empty($pids)) {
+    db_query("DELETE FROM {panels_pane} WHERE pid IN (" . db_placeholders($pids) . ")", $pids);
+  }
+
+  // Clear any cached content for this display.
+  panels_clear_cached_content($display);
+
+  // Allow other modules to take action when a display is saved.
+  module_invoke_all('panels_display_save', $display);
+
+  // Log the change to watchdog, using the same style as node.module
+  $watchdog_args = array('%did' => $display->did);
+  if (!empty($display->title)) {
+    $watchdog_args['%title'] = $display->title;
+    watchdog('content', 'Panels: saved display "%title" with display id %did', $watchdog_args, WATCHDOG_NOTICE);
+  }
+  else {
+    watchdog('content', 'Panels: saved display with id %did', $watchdog_args, WATCHDOG_NOTICE);
+  }
+
+  // to be nice, even tho we have a reference.
+  return $display;
+}
+
+/**
+ * Delete a display.
+ */
+function panels_delete_display($display) {
+  if (is_object($display)) {
+    $did = $display->did;
+  }
+  else {
+    $did = $display;
+  }
+  db_query("DELETE FROM {panels_display} WHERE did = %d", $did);
+  db_query("DELETE FROM {panels_pane} WHERE did = %d", $did);
+}
+
+/**
+ * Exports the provided display into portable code.
+ *
+ * This function is primarily intended as a mechanism for cloning displays.
+ * It generates an exact replica (in code) of the provided $display, with
+ * the exception that it replaces all ids (dids and pids) with 'new-*' values.
+ * Only once panels_save_display() is called on the code version of $display will
+ * the exported display written to the database and permanently saved.
+ *
+ * @see panels_page_export() or _panels_page_fetch_display() for sample implementations.
+ *
+ * @ingroup mainapi
+ *
+ * @param object $display instanceof panels_display \n
+ *  This export function does no loading of additional data about the provided
+ *  display. Consequently, the caller should make sure that all the desired data
+ *  has been loaded into the $display before calling this function.
+ * @param string $prefix
+ *  A string prefix that is prepended to each line of exported code. This is primarily
+ *  used for prepending a double space when exporting so that the code indents and lines up nicely.
+ *
+ * @return string $output
+ *  The passed-in $display expressed as code, ready to be imported. Import by running
+ *  eval($output) in the caller function; doing so will create a new $display variable
+ *  with all the exported values. Note that if you have already defined a $display variable in
+ *  the same scope as where you eval(), your existing $display variable WILL be overwritten.
+ */
+function panels_export_display($display, $prefix = '') {
+  ctools_include('export');
+  $output = ctools_export_object('panels_display', $display, $prefix);
+
+  // Initialize empty properties.
+  $output .= $prefix . '$display->content = array()' . ";\n";
+  $output .= $prefix . '$display->panels = array()' . ";\n";
+  $panels = array();
+
+  $title_pid = 0;
+  if (!empty($display->content)) {
+    $pid_counter = 0;
+    $region_counters = array();
+    foreach ($display->content as $pane) {
+      $pid = 'new-' . ++$pid_counter;
+      if ($pane->pid == $display->title_pane) {
+        $title_pid = $pid;
+      }
+      $pane->pid = $pid;
+      $output .= ctools_export_object('panels_pane', $pane, $prefix . '  ');
+      $output .= "$prefix  " . '$display->content[\'' . $pane->pid . '\'] = $pane' . ";\n";
+      if (!isset($region_counters[$pane->panel])) {
+        $region_counters[$pane->panel] = 0;
+      }
+      $output .= "$prefix  " . '$display->panels[\'' . $pane->panel . '\'][' . $region_counters[$pane->panel]++ .'] = \'' . $pane->pid . "';\n";
+    }
+  }
+  $output .= $prefix . '$display->hide_title = ';
+  switch ($display->hide_title) {
+    case PANELS_TITLE_FIXED:
+      $output .= 'PANELS_TITLE_FIXED';
+      break;
+    case PANELS_TITLE_NONE:
+      $output .= 'PANELS_TITLE_NONE';
+      break;
+    case PANELS_TITLE_PANE:
+      $output .= 'PANELS_TITLE_PANE';
+      break;
+  }
+  $output .= ";\n";
+
+  $output .= $prefix . '$display->title_pane =' . " '$title_pid';\n";
+  return $output;
+}
+
+/**
+ * Render a display by loading the content into an appropriate
+ * array and then passing through to panels_render_layout.
+ *
+ * if $incoming_content is NULL, default content will be applied. Use
+ * an empty string to indicate no content.
+ * @ingroup hook_invocations
+ */
+function panels_render_display(&$display, $renderer = NULL) {
+  ctools_include('display-render', 'panels');
+  ctools_include('plugins', 'panels');
+  ctools_include('context');
+
+  if (!empty($display->context)) {
+    if ($form_context = ctools_context_get_form($display->context)) {
+      $form_context->form['#theme'] = 'panels_render_display_form';
+      $form_context->form['#display'] = &$display;
+      $form_context->form['#form_context_id'] = $form_context->id;
+      return drupal_render_form($form_context->form_id, $form_context->form);
+    }
+  }
+  return $display->render($renderer);
+}
+
+/**
+ * Theme function to render our panel as a form.
+ *
+ * When rendering a display as a form, the entire display needs to be
+ * inside the <form> tag so that the form can be spread across the
+ * panes. This sets up the form system to be the main caller and we
+ * then operate as a theme function of the form.
+ */
+function theme_panels_render_display_form($form) {
+  $form['#children'] = $form['#display']->render();
+  drupal_render($form);
+  return theme('form', $form);
+}
+
+// @layout
+function panels_print_layout_icon($id, $layout, $title = NULL) {
+  ctools_add_css('panels_admin', 'panels');
+  $file = $layout['path'] . '/' . $layout['icon'];
+  return theme('panels_layout_icon', $id, theme('image', $file, strip_tags($layout['title']), strip_tags($layout['description'])), $title);
+}
+
+/**
+ * Theme the layout icon image
+ * @layout
+ * @todo move to theme.inc
+ */
+function theme_panels_layout_icon($id, $image, $title = NULL) {
+  $output = '<div class="layout-icon">';
+  $output .= $image;
+  if ($title) {
+    $output .= '<div class="caption">' . $title . '</div>';
+  }
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+ * Theme the layout link image
+ * @layout
+ */
+function theme_panels_layout_link($title, $id, $image, $link) {
+  $output = '<div class="layout-link">';
+  $output .= $image;
+  $output .= '<div>' . $title . '</div>';
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+ * Print the layout link. Sends out to a theme function.
+ * @layout
+ */
+function panels_print_layout_link($id, $layout, $link, $options = array()) {
+  if (isset($options['query']['q'])) {
+    unset($options['query']['q']);
+  }
+
+  ctools_add_css('panels_admin', 'panels');
+  $file = $layout['path'] . '/' . $layout['icon'];
+  $image = l(theme('image', $file), $link, array('html' => true) + $options);
+  $title = l($layout['title'], $link, $options);
+  return theme('panels_layout_link', $title, $id, $image, $link);
+}
+
+
+/**
+ * Gateway to the PanelsLegacyState class/object, which does all legacy state
+ * checks and provides information about the cause of legacy states as needed.
+ *
+ * @return PanelsLegacyState $legacy
+ */
+function panels_get_legacy_state() {
+  static $legacy = NULL;
+  if (!isset($legacy)) {
+    ctools_include('legacy', 'panels');
+    $legacy = new PanelsLegacyState();
+  }
+  return $legacy;
+}
+
+/**
+ * Get the display that is currently being rendered as a page.
+ *
+ * Unlike in previous versions of this, this only returns the display,
+ * not the page itself, because there are a number of different ways
+ * to get to this point. It is hoped that the page data isn't needed
+ * at this point. If it turns out there is, we will do something else to
+ * get that functionality.
+ */
+function panels_get_current_page_display($change = NULL) {
+  static $display = NULL;
+  if ($change) {
+    $display = $change;
+  }
+
+  return $display;
+}
+
+/**
+ * Clean up the panel pane variables for the template.
+ */
+function template_preprocess_panels_pane(&$vars) {
+  $content = $vars['output'];
+  // basic classes
+  $vars['classes'] = 'panel-pane';
+  $vars['id'] = '';
+
+  // Add some usable classes based on type/subtype
+  ctools_include('cleanstring');
+  $type_class = $content->type ? 'pane-'. ctools_cleanstring($content->type, array('lower case' => TRUE)) : '';
+  $subtype_class = $content->subtype ? 'pane-'. ctools_cleanstring($content->subtype, array('lower case' => TRUE)) : '';
+
+  // Sometimes type and subtype are the same. Avoid redudant classes.
+  if ($type_class != $subtype_class) {
+    $vars['classes'] .= " $type_class $subtype_class";
+  }
+  else {
+    $vars['classes'] .= " $type_class";
+  }
+
+  // Add id and custom class if sent in.
+  if (!empty($content->content)) {
+    if (!empty($content->css_id)) {
+      $vars['id'] = ' id="' . $content->css_id . '"';
+    }
+    if (!empty($content->css_class)) {
+      $vars['classes'] .= ' ' . $content->css_class;
+    }
+  }
+
+  // administrative links, only if there is permission.
+  $vars['admin_links'] = '';
+  if (user_access('view pane admin links') && !empty($content->admin_links)) {
+    $vars['admin_links'] = theme('links', $content->admin_links);
+  }
+
+  $vars['title'] = !empty($content->title) ? $content->title : '';
+
+  $vars['feeds'] = !empty($content->feeds) ? implode(' ', $content->feeds) : '';
+  $vars['content'] = !empty($content->content) ? $content->content : '';
+
+  $vars['links'] = !empty($content->links) ? theme('links', $content->links) : '';
+  $vars['more'] = '';
+  if (!empty($content->more)) {
+    if (empty($content->more['title'])) {
+      $content->more['title'] = t('more');
+    }
+    $vars['more'] = l($content->more['title'], $content->more['href'], $content->more);
+  }
+}
+
+/**
+ * Route Panels' AJAX calls to the correct object.
+ *
+ * Panels' AJAX is controlled mostly by renderer objects. This menu callback
+ * accepts the incoming request, figures out which object should handle the
+ * request, and attempts to route it. If no object can be found, the default
+ * Panels editor object is used.
+ *
+ * Calls are routed via the ajax_* method space. For example, if visiting
+ * panels/ajax/add-pane then $renderer::ajax_add_pane() will be called.
+ * This means commands can be added without having to create new callbacks.
+ *
+ * The first argument *must always* be the cache key so that a cache object
+ * can be passed through. Other arguments will be passed through untouched
+ * so that the method can do whatever it needs to do.
+ */
+function panels_ajax_router() {
+  $args = func_get_args();
+  if (count($args) < 3) {
+    return MENU_NOT_FOUND;
+  }
+
+  ctools_include('display-edit', 'panels');
+  ctools_include('plugins', 'panels');
+  ctools_include('ajax');
+  ctools_include('modal');
+  ctools_include('context');
+  ctools_include('content');
+
+  $plugin_name = array_shift($args);
+  $method = array_shift($args);
+  $cache_key = array_shift($args);
+
+  $plugin = panels_get_display_renderer($plugin_name);
+  if (!$plugin) {
+    // This is the default renderer for handling AJAX commands.
+    $plugin = panels_get_display_renderer('editor');
+  }
+
+  $cache = panels_edit_cache_get($cache_key);
+  if (empty($cache)) {
+    return MENU_ACCESS_DENIED;
+  }
+
+  $renderer = panels_get_renderer_handler($plugin, $cache->display);
+  if (!$renderer) {
+    return MENU_ACCESS_DENIED;
+  }
+
+  $method = 'ajax_' . str_replace('-', '_', $method);
+  if (!method_exists($renderer, $method)) {
+    return MENU_NOT_FOUND;
+  }
+
+  $renderer->cache = &$cache;
+  ctools_include('cleanstring');
+  $renderer->clean_key = ctools_cleanstring($cache_key);
+
+  $op = $renderer->get_panels_storage_op_for_ajax($method);
+  if (!$cache->display->access($op)) {
+    return MENU_ACCESS_DENIED;
+  }
+
+  $output = call_user_func_array(array($renderer, $method), $args);
+  if (empty($output) && !empty($renderer->commands)) {
+    return ctools_ajax_render($renderer->commands);
+  }
+  return $output;
+}
+
+// --------------------------------------------------------------------------
+// Panels caching functions and callbacks
+//
+// When editing displays and the like, Panels has a caching system that relies
+// on a callback to determine where to get the actual cache.
+
+// @todo This system needs to be better documented so that it can be
+// better used.
+
+/**
+ * Get an object from cache.
+ */
+function panels_cache_get($obj, $did, $skip_cache = FALSE) {
+  ctools_include('object-cache');
+  // we often store contexts in cache, so let's just make sure we can load
+  // them.
+  ctools_include('context');
+  return ctools_object_cache_get($obj, 'panels_display:' . $did, $skip_cache);
+}
+
+/**
+ * Save the edited object into the cache.
+ */
+function panels_cache_set($obj, $did, $cache) {
+  ctools_include('object-cache');
+  return ctools_object_cache_set($obj, 'panels_display:' . $did, $cache);
+}
+
+/**
+ * Clear a object from the cache; used if the editing is aborted.
+ */
+function panels_cache_clear($obj, $did) {
+  ctools_include('object-cache');
+  return ctools_object_cache_clear($obj, 'panels_display:' . $did);
+}
+
+/**
+ * Create the default cache for editing panel displays.
+ *
+ * If an application is using the Panels display editor without having
+ * specified a cache key, this method can be used to create the default
+ * cache.
+ */
+function panels_edit_cache_get_default(&$display, $content_types = NULL, $title = FALSE) {
+  if (empty($content_types)) {
+    $content_types = ctools_content_get_available_types();
+  }
+
+  $display->cache_key = $display->did;
+  panels_cache_clear('display', $display->did);
+
+  $cache = new stdClass();
+  $cache->display = &$display;
+  $cache->content_types = $content_types;
+  $cache->display_title = $title;
+
+  panels_edit_cache_set($cache);
+  return $cache;
+}
+
+/**
+ * Method to allow modules to provide their own caching mechanism for the
+ * display editor.
+ */
+function panels_edit_cache_get($cache_key) {
+  if (strpos($cache_key, ':') !== FALSE) {
+    list($module, $argument) = explode(':', $cache_key, 2);
+    return module_invoke($module, 'panels_cache_get', $argument);
+  }
+
+  // Fall back to our normal method:
+  return panels_cache_get('display', $cache_key);
+}
+
+/**
+ * Method to allow modules to provide their own caching mechanism for the
+ * display editor.
+ */
+function panels_edit_cache_set($cache) {
+  $cache_key = $cache->display->cache_key;
+  if (strpos($cache_key, ':') !== FALSE) {
+    list($module, $argument) = explode(':', $cache_key, 2);
+    return module_invoke($module, 'panels_cache_set', $argument, $cache);
+  }
+
+  // Fall back to our normal method:
+  return panels_cache_set('display', $cache_key, $cache);
+}
+
+/**
+ * Method to allow modules to provide their own mechanism to write the
+ * cache used in the display editor.
+ */
+function panels_edit_cache_save($cache) {
+  $cache_key = $cache->display->cache_key;
+  if (strpos($cache_key, ':') !== FALSE) {
+    list($module, $argument) = explode(':', $cache_key, 2);
+    if (function_exists($module . '_panels_cache_save')) {
+      return module_invoke($module, 'panels_cache_save', $argument, $cache);
+    }
+  }
+
+  // Fall back to our normal method:
+  return panels_save_display($cache->display);
+}
+
+/**
+ * Method to allow modules to provide their own mechanism to clear the
+ * cache used in the display editor.
+ */
+function panels_edit_cache_clear($cache) {
+  $cache_key = $cache->display->cache_key;
+  if (strpos($cache_key, ':') !== FALSE) {
+    list($module, $argument) = explode(':', $cache_key, 2);
+    if (function_exists($module . '_panels_cache_clear')) {
+      return module_invoke($module, 'panels_cache_clear', $argument, $cache);
+    }
+  }
+
+  // Fall back to our normal method:
+  return panels_cache_clear('display', $cache_key);
+}
+
+/**
+ * Method to allow modules to provide a mechanism to break locks.
+ */
+function panels_edit_cache_break_lock($cache) {
+  if (empty($cache->locked)) {
+    return;
+  }
+
+  $cache_key = $cache->display->cache_key;
+  if (strpos($cache_key, ':') !== FALSE) {
+    list($module, $argument) = explode(':', $cache_key, 2);
+    if (function_exists($module . '_panels_cache_break_lock')) {
+      return module_invoke($module, 'panels_cache_break_lock', $argument, $cache);
+    }
+  }
+
+  // Normal panel display editing has no locks, so we do nothing if there is
+  // no fallback.
+  return;
+}
+
+// --------------------------------------------------------------------------
+// Callbacks on behalf of the panel_context plugin.
+//
+// The panel_context plugin lets Panels be used in page manager. These
+// callbacks allow the display editing system to use the page manager
+// cache rather than the default display cache. They are routed by the cache
+// key via panels_edit_cache_* functions.
+
+/**
+ * Get display edit cache on behalf of panel context.
+ *
+ * The key is the second half of the key in this form:
+ * panel_context:TASK_NAME:HANDLER_NAME;
+ */
+function panel_context_panels_cache_get($key) {
+  ctools_include('common', 'panels');
+  ctools_include('context');
+  ctools_include('context-task-handler');
+  // this loads the panel context inc even if we don't use the plugin.
+  $plugin = page_manager_get_task_handler('panel_context');
+
+  list($task_name, $handler_name) = explode(':', $key, 2);
+  $page = page_manager_get_page_cache($task_name);
+  if (isset($page->display_cache[$handler_name])) {
+    return $page->display_cache[$handler_name];
+  }
+
+  if ($handler_name) {
+    $handler = &$page->handlers[$handler_name];
+  }
+  else {
+    $handler = &$page->new_handler;
+  }
+  $cache = new stdClass();
+
+  $cache->display = &panels_panel_context_get_display($handler);
+  $cache->display->context = ctools_context_handler_get_all_contexts($page->task, $page->subtask, $handler);
+  $cache->display->cache_key = 'panel_context:' . $key;
+  $cache->content_types = panels_common_get_allowed_types('panels_page', $cache->display->context);
+  $cache->display_title = TRUE;
+  $cache->locked = $page->locked;
+
+  return $cache;
+}
+
+/**
+ * Get the Page Manager cache for the panel_context plugin.
+ */
+function _panel_context_panels_cache_get_page_cache($key, $cache) {
+  list($task_name, $handler_name) = explode(':', $key, 2);
+  $page = page_manager_get_page_cache($task_name);
+  $page->display_cache[$handler_name] = $cache;
+  if ($handler_name) {
+    $page->handlers[$handler_name]->conf['display'] = $cache->display;
+    $page->handler_info[$handler_name]['changed'] |= PAGE_MANAGER_CHANGED_CACHED;
+  }
+  else {
+    $page->new_handler->conf['display'] = $cache->display;
+  }
+
+  return $page;
+}
+
+/**
+ * Store a display edit in progress in the page cache.
+ */
+function panel_context_panels_cache_set($key, $cache) {
+  $page = _panel_context_panels_cache_get_page_cache($key, $cache);
+  page_manager_set_page_cache($page);
+}
+
+/**
+ * Save all changes made to a display using the Page Manager page cache.
+ */
+function panel_context_panels_cache_clear($key, $cache) {
+  $page = _panel_context_panels_cache_get_page_cache($key, $cache);
+  page_manager_clear_page_cache($page->task_name);
+}
+
+/**
+ * Save all changes made to a display using the Page Manager page cache.
+ */
+function panel_context_panels_cache_save($key, $cache) {
+  $page = _panel_context_panels_cache_get_page_cache($key, $cache);
+  page_manager_save_page_cache($page);
+}
+
+/**
+ * Break the lock on a page manager page.
+ */
+function panel_context_panels_cache_break_lock($key, $cache) {
+  $page = _panel_context_panels_cache_get_page_cache($key, $cache);
+  ctools_object_cache_clear_all('page_manager_page', $page->task_name);
+}
+
+// --------------------------------------------------------------------------
+// Callbacks on behalf of the panels page wizards
+//
+// The page wizards are a pluggable set of 'wizards' to make it easy to create
+// specific types of pages based upon whatever someone felt like putting
+// together. Since they will very often have content editing, we provide
+// a generic mechanism to allow them to store their editing cache in the
+// wizard cache.
+//
+// For them to use this mechanism, they just need to use:
+//   $cache = panels_edit_cache_get('panels_page_wizard:' . $plugin['name']);
+
+/**
+ * Get display edit cache for the panels mini export UI
+ *
+ * The key is the second half of the key in this form:
+ * panels_page_wizard:TASK_NAME:HANDLER_NAME;
+ */
+function panels_page_wizard_panels_cache_get($key) {
+  ctools_include('page-wizard');
+  ctools_include('context');
+  $wizard_cache = page_manager_get_wizard_cache($key);
+  if (isset($wizard_cache->display_cache)) {
+    return $wizard_cache->display_cache;
+  }
+
+  ctools_include('common', 'panels');
+  $cache = new stdClass();
+  $cache->display = $wizard_cache->display;
+  $cache->display->context = !empty($wizard_cache->context) ? $wizard_cache->context : array();
+  $cache->display->cache_key = 'panels_page_wizard:' . $key;
+  $cache->content_types = panels_common_get_allowed_types('panels_page', $cache->display->context);
+  $cache->display_title = TRUE;
+
+  return $cache;
+}
+
+/**
+ * Store a display edit in progress in the page cache.
+ */
+function panels_page_wizard_panels_cache_set($key, $cache) {
+  ctools_include('page-wizard');
+  $wizard_cache = page_manager_get_wizard_cache($key);
+  $wizard_cache->display_cache = $cache;
+  page_manager_set_wizard_cache($wizard_cache);
+}
+
+/**
+ * Alter the page wizard basic page, when panels is selected, to inject page
+ * manager as the storage plugin for panels.
+ * @param $form
+ * @param $form_state
+ */
+function panels_form_page_manager_page_form_basic_alter(&$form, &$form_state) {
+  $form['#validate'][] = 'panels_page_manager_handler_add_validate';
+}
+
+/**
+ * Alter the variant add page, so when panels is selected, page manager is the
+ * storage plugin for panels.
+ * @param $form
+ * @param $form_state
+ */
+function panels_form_page_manager_handler_add_alter(&$form, &$form_state) {
+  $form['#validate'][] = 'panels_page_manager_handler_add_validate';
+}
+
+/**
+ * Perform the validation check to see if panel context is selected to use
+ * page manager as the storage plugin.
+ * @param $form
+ * @param $form_state
+ */
+function panels_page_manager_handler_add_validate($form, &$form_state) {
+  if($form_state['values']['handler'] == 'panel_context') {
+    $form_state['page']->storage_type = 'page_manager';
+  }
+}
+
+/**
+ * Implements hook_default_page_manager_handlers_alter().
+ *
+ * If a default Panels display has no storage type, set it.
+ */
+function panels_default_page_manager_handlers_alter(&$handlers) {
+  foreach ($handlers as &$handler) {
+    if ($handler->handler == 'panel_context') {
+      $display =& $handler->conf['display'];
+      if (empty($display->storage_type)) {
+        $display->storage_type = 'page_manager';
+        $display->storage_id = $handler->name;
+      }
+    }
+  }
+}
+
+/**
+ * Implements hook_default_page_manager_pages_alter().
+ */
+function panels_default_page_manager_pages_alter(&$pages) {
+  foreach ($pages as &$page) {
+    panels_default_page_manager_handlers_alter($page->default_handlers);
+  }
+}
+
+// --------------------------------------------------------------------------
+// General utility functions
+
+/**
+ * Perform a drupal_goto on a destination that may be an array like url().
+ */
+function panels_goto($destination) {
+  if (!is_array($destination)) {
+    return drupal_goto($destination);
+  }
+  else {
+    // Prevent notices by adding defaults
+    $destination += array(
+      'query' => NULL,
+      'fragment' => NULL,
+      'http_response_code' => NULL,
+    );
+
+    return drupal_goto($destination['path'], $destination['query'], $destination['fragment'], $destination['http_response_code']);
+  }
+}
+
+
+/**
+ * For external use: Given a layout ID and a $content array, return the
+ * panel display.
+ *
+ * The content array is filled in based upon the content available in the
+ * layout. If it's a two column with a content array defined like
+ * @code
+ *   array(
+ *    'left' => t('Left side'),
+ *    'right' => t('Right side')
+ *  ),
+ * @endcode
+ *
+ * Then the $content array should be
+ * @code
+ * array(
+ *   'left' => $output_left,
+ *   'right' => $output_right,
+ * )
+ * @endcode
+ *
+ * The output within each panel region can be either a single rendered
+ * HTML string or an array of rendered HTML strings as though they were
+ * panes. They will simply be concatenated together without separators.
+ */
+function panels_print_layout($layout, $content, $meta = 'standard') {
+  ctools_include('plugins', 'panels');
+
+  // Create a temporary display for this.
+  $display = panels_new_display();
+  $display->layout = is_array($layout) ? $layout['name'] : $layout;
+  $display->content = $content;
+
+  // Get our simple renderer
+  $renderer = panels_get_renderer_handler('simple', $display);
+  $renderer->meta_location = $meta;
+
+  return $renderer->render();
+}
+
+// --------------------------------------------------------------------------
+// Deprecated functions
+//
+// Everything below this line will eventually go away.
+
+/**
+ * Load a panels include file.
+ *
+ * @deprecated This function is deprecated and should no longer be used. It will
+ * be removed in the next major version of Panels. Use ctools_include() instead.
+ */
+function panels_load_include($include, $path = 'includes/') {
+  static $loaded = array();
+  if (empty($loaded["$path$include.inc"])) {
+    require_once './' . panels_get_path("$path$include.inc");
+    $loaded["$path$include.inc"] = TRUE;
+  }
+}
+
+/**
+ * panels path helper function
+ */
+function panels_get_path($file, $base_path = FALSE, $module = 'panels') {
+  $output = $base_path ? base_path() : '';
+  return $output . drupal_get_path('module', $module) . '/' . $file;
+}
+
+/**
+ * Given a full layout structure and a content array, render a panel display.
+ *
+ * @deprecated This function represents an old approach to rendering, and is
+ * retained only as a temporary support for other modules still using that
+ * approach. It will be removed in the next major version of Panels.
+ */
+function panels_render_layout($layout, $content, $css_id = NULL, $settings = array(), $display = NULL) {
+  if (!empty($layout['css'])) {
+    if (file_exists(path_to_theme() . '/' . $layout['css'])) {
+      drupal_add_css(path_to_theme() . '/' . $layout['css']);
+    }
+    else {
+      drupal_add_css($layout['path'] . '/' . $layout['css']);
+    }
+  }
+  // This now comes after the CSS is added, because panels-within-panels must
+  // have their CSS added in the right order; inner content before outer content.
+
+  // If $content is an object, it's a $display and we have to render its panes.
+  if (is_object($content)) {
+    $display = $content;
+    if (empty($display->cache['method'])) {
+      $content = panels_render_panes($display);
+    }
+    else {
+      $cache = panels_get_cached_content($display, $display->args, $display->context);
+      if ($cache === FALSE) {
+        $cache = new panels_cache_object();
+        $cache->set_content(panels_render_panes($display));
+        panels_set_cached_content($cache, $display, $display->args, $display->context);
+      }
+      $content = $cache->content;
+    }
+  }
+
+  $output = theme($layout['theme'], check_plain($css_id), $content, $settings, $display);
+
+  return $output;
+}
+
+/**
+ * Get a list of panel regions available in the layout.
+ *
+ * @deprecated Use panels_get_regions instead.
+ */
+function panels_get_panels($layout, $display) {
+  return panels_get_regions($layout, $display);
+}
+
+/**
+ * Select a context for a pane.
+ *
+ * @param $pane
+ *   A fully populated pane.
+ * @param $contexts
+ *   A keyed array of available contexts.
+ *
+ * @return
+ *   The matching contexts or NULL if none or necessary, or FALSE if
+ *   requirements can't be met.
+ *
+ * @deprecated this function will be removed.
+ */
+function panels_pane_select_context($pane, $contexts) {
+  return ctools_content_select_context($pane->type, $pane->subtype, $pane->configuration, $contexts);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_export/panels_export.module b/drupal/sites/default/boinc/modules/contrib/panels/panels_export/panels_export.module
new file mode 100644
index 0000000..e69de29
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/css/panels_ipe.css b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/css/panels_ipe.css
new file mode 100644
index 0000000..2cf83fb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/css/panels_ipe.css
@@ -0,0 +1,209 @@
+div.panels-ipe-handlebar-wrapper {
+  border-bottom: #898AAB solid 2px;
+}
+
+.panels-ipe-editing div.panels-ipe-portlet-wrapper {
+  margin-top: 1em;
+  border: #898AAB solid 2px;
+  -moz-border-radius-bottomleft:8px;
+  -moz-border-radius-bottomright:8px;
+  -moz-border-radius-topleft:2px;
+  -moz-border-radius-topright:2px;
+
+  -webkit-border-radius-bottomleft:8px;
+  -webkit-border-radius-bottomright:8px;
+  -webkit-border-radius-topleft:2px;
+  -webkit-border-radius-topright:2px;
+}
+
+/* Hide empty panes when not editing them. */
+.panels-ipe-empty-pane {
+  display: none;
+}
+
+.panels-ipe-editing .panels-ipe-empty-pane {
+  display: block;
+}
+
+
+.panels-ipe-editing div.panels-ipe-portlet-wrapper:hover {
+  border: #FF000A solid 2px;
+}
+
+.panels-ipe-editing .panels-ipe-sort-container .ui-sortable-helper {
+  background: white;
+}
+
+.panels-ipe-editing div.panel-pane div.admin-links {
+  display: none !important;
+}
+
+.panels-ipe-editing .panels-ipe-sort-container .ui-sortable-placeholder {
+  -moz-border-radius: 0;
+  -webkit-border-radius: 0;
+  border: 1px dotted red;
+  background-color: white;
+}
+
+div.panels-ipe-handlebar-wrapper ul {
+  float: left;
+  margin: 0;
+  padding: 0;
+  text-align: right;
+}
+
+div.panels-ipe-handlebar-wrapper li {
+  background: none repeat scroll 0 0 transparent;
+  list-style: none outside none;
+  margin: 0;
+  padding: 0;
+  float: left;
+  font: 12px/170% Verdana,sans-serif !important;
+}
+
+div.panels-ipe-handlebar-wrapper li {
+  border-top: 1px solid #CCC;
+  border-right: 1px solid #CCC;
+}
+
+div.panels-ipe-handlebar-wrapper li.first {
+  border-left: 1px solid #CCC;
+}
+
+div.panels-ipe-draghandle {
+  background: #898AAB url(../images/dragger.png) top right no-repeat;
+  cursor: move;
+  height: 24px;
+}
+
+div.panels-ipe-placeholder {
+  border: 1px solid black;
+  padding: .5em;
+  margin-top: .5em;
+  background-color: #f6f6f6;
+  color: black;
+  background-color: white;
+  font: 12px/170% Verdana,sans-serif !important;
+  text-transform: none;
+  letter-spacing: 0;
+  text-align: left;
+  word-spacing: 0;
+}
+
+div.panels-ipe-placeholder h3 {
+  font-weight: bold;
+}
+
+/* Hide editor-state-on elements initially */
+body .panels-ipe-on {
+  display: none;
+}
+
+body .panels-ipe-editing .panels-ipe-on {
+	display: block;
+}
+
+/* Show editor-state-off elements initially */
+.panels-ipe-off {
+  display: block;
+}
+
+div.panels-ipe-handlebar-wrapper li a,
+div.panels-ipe-draghandle span,
+div.panels-ipe-newblock a {
+  background-color: #f6f6f6;
+  color: blue;
+  display: block;
+  padding: 0.1em 0.5em;
+  font: 12px/170% Verdana,sans-serif !important;
+  text-transform: none;
+  letter-spacing: 0;
+}
+
+div.panels-ipe-newblock a {
+  display: inline;
+  border: 1px solid #CCC;
+  color: blue;
+}
+
+.panels-ipe-editing .panels-ipe-portlet-content {
+  margin-bottom: 10px;
+  border: transparent dotted 1px;
+  overflow: hidden;
+}
+
+.panels-ipe-editing .panels-ipe-region {
+  border: transparent dotted 1px;
+  float: left;
+  width: 100%;
+  margin-bottom: 5px;
+}
+
+div.panels-ipe-draghandle {
+  border: none;
+}
+
+.ui-sortable-placeholder {
+  margin: 1em;
+  border: 1px dotted black;
+  visibility: visible !important;
+  height: 50px !important;
+}
+.ui-sortable-placeholder * {
+  visibility: hidden;
+}
+
+/* counteract panels_dnd.css - temporary */
+div.panels-ipe-display-container .panel-pane .pane-title {
+  padding: 0;
+}
+
+/** ============================================================================
+ * Controller form markup
+ */
+
+div#panels-ipe-control-container {
+  z-index: 100;
+  position: fixed;
+  margin: auto;
+  bottom: 0;
+  left: 50%;
+  display: block;
+  background-color: #000;
+  padding: 0.5em 1em;
+  min-width: 9.5em;
+  max-width: 12.5em;
+  min-height: 2em;
+  max-height: 2.5em;
+  -moz-border-radius-topleft:5px;
+  -moz-border-radius-topright:5px;
+  -moz-box-shadow: #333 0px 1px 0px;
+  -webkit-border-radius-topleft:5px;
+  -webkit-border-radius-topright:5px;
+  -webkit-box-shadow: #333 0px 1px 0px;
+}
+
+div.panels-ipe-pseudobutton {
+  cursor: pointer;
+  background-color: #333;
+  font:normal 11px/15px "Lucida Grande",Tahoma,Verdana,sans-serif;
+  color: #FFF;
+  -moz-border-radius:5px;
+  -moz-box-shadow: #333 0px 1px 0px;
+  -webkit-border-radius:5px;
+  -webkit-box-shadow: #333 0px 1px 0px;
+  padding: 0.3em 0.8em;
+  float: left;
+}
+
+div.panels-ipe-control .form-submit {
+  float: left;
+  margin: 0.3em 0.5em;
+}
+
+div.panels-ipe-form-container {
+  min-width: 12.5em;
+  min-height: 2em;
+  margin-left: auto;
+  margin-right: auto;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/images/dragger.png b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/images/dragger.png
new file mode 100644
index 0000000..bb3b57b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/images/dragger.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/includes/panels_ipe.pipelines.inc b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/includes/panels_ipe.pipelines.inc
new file mode 100644
index 0000000..7e22852
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/includes/panels_ipe.pipelines.inc
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * @file
+ * Bulk export of panels_layouts objects generated by Bulk export module.
+ */
+
+/**
+ * Implementation of hook_default_panels_renderer_pipeline().
+ */
+function panels_ipe_default_panels_renderer_pipeline() {
+  $pipelines = array();
+
+  $pipeline = new stdClass;
+  $pipeline->disabled = FALSE; /* Edit this to true to make a default pipeline disabled initially */
+  $pipeline->api_version = 1;
+  $pipeline->name = 'ipe';
+  $pipeline->admin_title = t('In-Place Editor');
+  $pipeline->admin_description = t('Allows privileged users to update and rearrange the content while viewing this panel.');
+  $pipeline->weight = 0;
+  $pipeline->settings = array(
+    'renderers' => array(
+      0 => array(
+        'access' => array(
+          'plugins' => array(
+            0 => array(
+              'name' => 'perm',
+              'settings' => array(
+                'perm' => 'use panels in place editing',
+              ),
+              'context' => 'logged-in-user',
+            ),
+          ),
+          'logic' => 'and',
+        ),
+        'renderer' => 'ipe',
+        'options' => array(),
+      ),
+    ),
+  );
+  $pipelines[$pipeline->name] = $pipeline;
+
+  return $pipelines;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/js/panels_ipe.js b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/js/panels_ipe.js
new file mode 100644
index 0000000..c355ad6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/js/panels_ipe.js
@@ -0,0 +1,255 @@
+
+// Ensure the $ alias is owned by jQuery.
+(function($) {
+
+Drupal.PanelsIPE = {
+  editors: {},
+  bindClickDelete: function(context) {
+    $('a.pane-delete:not(.pane-delete-processed)', context)
+      .addClass('pane-delete-processed')
+      .click(function() {
+        if (confirm('Remove this pane?')) {
+          $(this).parents('div.panels-ipe-portlet-wrapper').fadeOut('medium', function() {
+            $(this).empty().remove();
+          });
+          $(this).parents('div.panels-ipe-display-container').addClass('changed');
+        }
+        return false;
+      });
+  }
+}
+
+// A ready function should be sufficient for this, at least for now
+$(function() {
+  $.each(Drupal.settings.PanelsIPECacheKeys, function() {
+    Drupal.PanelsIPE.editors[this] = new DrupalPanelsIPE(this, Drupal.settings.PanelsIPESettings[this]);
+  });
+});
+
+Drupal.behaviors.PanelsIPE = function(context) {
+  Drupal.PanelsIPE.bindClickDelete(context);
+};
+
+Drupal.CTools.AJAX.commands.initIPE = function(data) {
+  if (Drupal.PanelsIPE.editors[data.key]) {
+    Drupal.PanelsIPE.editors[data.key].initEditing(data.data);
+  }
+};
+
+Drupal.CTools.AJAX.commands.unlockIPE = function(data) {
+  if (confirm(data.message)) {
+    var ajaxOptions = {
+      type: "POST",
+      url: data.break_path,
+      data: { 'js': 1 },
+      global: true,
+      success: Drupal.CTools.AJAX.respond,
+      error: function(xhr) {
+        Drupal.CTools.AJAX.handleErrors(xhr, ipe.cfg.formPath);
+      },
+      dataType: 'json'
+    };
+
+    $.ajax(ajaxOptions);
+  };
+};
+
+Drupal.CTools.AJAX.commands.endIPE = function(data) {
+  if (Drupal.PanelsIPE.editors[data.key]) {
+    Drupal.PanelsIPE.editors[data.key].endEditing(data);
+  }
+};
+
+
+
+/**
+ * Base object (class) definition for the Panels In-Place Editor.
+ *
+ * A new instance of this object is instanciated for every unique IPE on a given
+ * page.
+ *
+ * Note that this form is provisional, and we hope to replace it with a more
+ * flexible, loosely-coupled model that utilizes separate controllers for the
+ * discrete IPE elements. This will result in greater IPE flexibility.
+ */
+function DrupalPanelsIPE(cache_key, cfg) {
+  var ipe = this;
+  this.key = cache_key;
+  this.state = {};
+  this.control = $('div#panels-ipe-control-' + cache_key);
+  this.initButton = $('div.panels-ipe-startedit', this.control);
+  this.cfg = cfg;
+  this.changed = false;
+  this.sortableOptions = $.extend({
+    revert: 200,
+    dropOnEmpty: true, // default
+    opacity: 0.75, // opacity of sortable while sorting
+    // placeholder: 'draggable-placeholder',
+    // forcePlaceholderSize: true,
+    items: 'div.panels-ipe-portlet-wrapper',
+    handle: 'div.panels-ipe-draghandle',
+    tolerance: 'pointer',
+    cursorAt: 'top',
+    update: this.setChanged,
+    scroll: true
+    // containment: ipe.topParent,
+  }, cfg.sortableOptions || {});
+
+  this.initEditing = function(formdata) {
+    ipe.topParent = $('div#panels-ipe-display-' + cache_key);
+    ipe.backup = this.topParent.clone();
+
+    // See http://jqueryui.com/demos/sortable/ for details on the configuration
+    // parameters used here.
+    ipe.changed = false;
+
+    $('div.panels-ipe-sort-container', ipe.topParent).sortable(ipe.sortable_options);
+
+    // Since the connectWith option only does a one-way hookup, iterate over
+    // all sortable regions to connect them with one another.
+    $('div.panels-ipe-sort-container', ipe.topParent)
+      .sortable('option', 'connectWith', ['div.panels-ipe-sort-container']);
+
+    $('div.panels-ipe-sort-container', ipe.topParent).bind('sortupdate', function() {
+      ipe.changed = true;
+    });
+
+    $('.panels-ipe-form-container', ipe.control).append(formdata);
+    // bind ajax submit to the form
+    $('form', ipe.control).submit(function(event) {
+      url = $(this).attr('action');
+      try {
+        var ajaxOptions = {
+          type: 'POST',
+          url: url,
+          data: { 'js': 1 },
+          global: true,
+          success: Drupal.CTools.AJAX.respond,
+          error: function(xhr) {
+            Drupal.CTools.AJAX.handleErrors(xhr, url);
+          },
+          dataType: 'json'
+        };
+        $(this).ajaxSubmit(ajaxOptions);
+      }
+      catch (err) {
+        alert("An error occurred while attempting to process " + url);
+        return false;
+      }
+      return false;
+    });
+
+    $('input:submit', ipe.control).each(function() {
+      if ($(this).attr('id') == 'panels-ipe-save') {
+        $(this).click(ipe.saveEditing);
+      };
+      if ($(this).attr('id') == 'panels-ipe-cancel') {
+        $(this).click(ipe.cancelEditing);
+      };
+    });
+
+    // Perform visual effects in a particular sequence.
+    ipe.initButton.css('position', 'absolute');
+    ipe.initButton.fadeOut('normal');
+    $('.panels-ipe-on').show('normal');
+//    $('.panels-ipe-on').fadeIn('normal');
+    ipe.topParent.addClass('panels-ipe-editing');
+  }
+
+  this.endEditing = function(data) {
+    $('.panels-ipe-form-container', ipe.control).empty();
+    // Re-show all the IPE non-editing meta-elements
+    $('div.panels-ipe-off').show('fast');
+
+    // Re-hide all the IPE meta-elements
+    $('div.panels-ipe-on').hide('fast');
+    ipe.initButton.css('position', 'static');
+    ipe.topParent.removeClass('panels-ipe-editing');
+   $('div.panels-ipe-sort-container', ipe.topParent).sortable("destroy");
+  };
+
+  this.saveEditing = function() {
+    // Put our button in.
+    this.form.clk = this;
+
+    $('div.panels-ipe-region', ipe.topParent).each(function() {
+      var val = '';
+      var region = $(this).attr('id').split('panels-ipe-regionid-')[1];
+      $(this).find('div.panels-ipe-portlet-wrapper').each(function() {
+        var id = $(this).attr('id').split('panels-ipe-paneid-')[1];
+        if (id) {
+          if (val) {
+            val += ',';
+          }
+          val += id;
+        }
+      });
+      $('input#edit-panel-pane-' + region, ipe.control).val(val);
+    });
+  }
+
+  this.cancelEditing = function() {
+    // Put our button in.
+    this.form.clk = this;
+
+    if (ipe.topParent.hasClass('changed')) {
+      ipe.changed = true;
+    }
+
+    if (!ipe.changed || confirm(Drupal.t('This will discard all unsaved changes. Are you sure?'))) {
+      ipe.topParent.fadeOut('medium', function() {
+        ipe.topParent.replaceWith(ipe.backup.clone());
+        ipe.topParent = $('div#panels-ipe-display-' + ipe.key);
+
+        // Processing of these things got lost in the cloning, but the classes remained behind.
+        // @todo this isn't ideal but I can't seem to figure out how to keep an unprocessed backup
+        // that will later get processed.
+        $('.ctools-use-modal-processed', ipe.topParent).removeClass('ctools-use-modal-processed');
+        $('.pane-delete-processed', ipe.topParent).removeClass('pane-delete-processed');
+        ipe.topParent.fadeIn('medium');
+        Drupal.attachBehaviors();
+      });
+    }
+    else {
+      // Cancel the submission.
+      return false;
+    }
+  };
+
+  this.createSortContainers = function() {
+    $('div.panels-ipe-region', this.topParent).each(function() {
+      $('div.panels-ipe-portlet-marker', this).parent()
+        .wrapInner('<div class="panels-ipe-sort-container" />');
+
+      // Move our gadgets outside of the sort container so that sortables
+      // cannot be placed after them.
+      $('div.panels-ipe-portlet-static', this).each(function() {
+        $(this).appendTo($(this).parent().parent());
+      });
+
+      // Add a marker so we can drag things to empty containers.
+      $('div.panels-ipe-sort-container', this).append('<div> </div>');
+    });
+  }
+
+  this.createSortContainers();
+
+  var ajaxOptions = {
+    type: "POST",
+    url: ipe.cfg.formPath,
+    data: { 'js': 1 },
+    global: true,
+    success: Drupal.CTools.AJAX.respond,
+    error: function(xhr) {
+      Drupal.CTools.AJAX.handleErrors(xhr, ipe.cfg.formPath);
+    },
+    dataType: 'json'
+  };
+
+  $('div.panels-ipe-startedit', this.control).click(function() {
+    var $this = $(this);
+    $.ajax(ajaxOptions);
+  });
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.api.php b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.api.php
new file mode 100644
index 0000000..15a9904
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.api.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * @file
+ * Hooks provided by Panels In-Place Editor.
+ */
+
+/**
+ * Allow modules to control access to the Panels IPE.
+ *
+ * @param panels_display $display
+ *   The panels display about to be rendered.
+ *
+ * @return TRUE|FALSE|NULL
+ *   Returns TRUE to allow access, FALSE to deny, or NULL if the module
+ *   implementing this hook doesn't care about access for the given display.
+ */
+function hook_panels_ipe_access($panels_display) {
+  // We only care about displays with the 'panelizer' context.
+  if (!isset($display->context['panelizer'])) {
+    return NULL;
+  }
+
+  if ($display->context['panelizer']->type[0] == 'entity:node') {
+    // Allow or deny IPE access based on node type.
+    return $display->context['panelizer']->data->type == 'awesome_page';
+  }
+
+  // Otherwise, deny access to everything!
+  return FALSE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.info b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.info
new file mode 100644
index 0000000..1207c8a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.info
@@ -0,0 +1,14 @@
+name = Panels In-Place Editor
+description = Provide a UI for managing some Panels directly on the frontend, instead of having to use the backend.
+package = "Panels"
+dependencies[] = panels
+dependencies[] = jquery_ui
+dependencies[] = jquery_update
+core = 6.x
+
+; Information added by Drupal.org packaging script on 2016-02-25
+version = "6.x-3.12-boinc-1-dev"
+core = "6.x"
+project = "panels"
+datestamp = "1494600716"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.module b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.module
new file mode 100644
index 0000000..4080905
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/panels_ipe.module
@@ -0,0 +1,147 @@
+<?php
+
+/**
+ * Implementation of hook_ctools_plugin_directory().
+ */
+function panels_ipe_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'panels' && $plugin == 'display_renderers') {
+    return 'plugins/' . $plugin;
+  }
+}
+
+/**
+ * Implementation of hook_ctools_plugin_api().
+ *
+ * Inform CTools about version information for various plugins implemented by
+ * Panels.
+ *
+ * @param string $owner
+ *   The system name of the module owning the API about which information is
+ *   being requested.
+ * @param string $api
+ *   The name of the API about which information is being requested.
+ */
+function panels_ipe_ctools_plugin_api($owner, $api) {
+  if ($owner == 'panels' && $api == 'pipelines') {
+    return array(
+      'version' => 1,
+      'path' => drupal_get_path('module', 'panels_ipe') . '/includes',
+    );
+  }
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function panels_ipe_theme() {
+  return array(
+    'panels_ipe_pane_wrapper' => array(
+      'arguments' => array('output' => NULL, 'pane' => NULL, 'display' => NULL),
+    ),
+    'panels_ipe_region_wrapper' => array(
+      'arguments' => array('output' => NULL, 'region_id' => NULL, 'display' => NULL, 'renderer' => NULL),
+    ),
+    'panels_ipe_add_pane_button' => array(
+      'arguments' => array('region_id' => NULL, 'display' => NULL, 'renderer' => NULL),
+    ),
+    'panels_ipe_placeholder_pane' => array(
+      'arguments' => array('region_id' => NULL, 'region_title' => NULL),
+    ),
+    'panels_ipe_dnd_form_container' => array(
+      'arguments' => array('link' => NULL, 'cache_key' => NULL, 'display' => NULL),
+    ),
+  );
+}
+
+/**
+ * Theme the 'placeholder' pane, which is shown on an active IPE when no panes
+ * live in that region.
+ *
+ * @param string $region_id
+ * @param string $region_title
+ */
+function theme_panels_ipe_placeholder_pane($region_id, $region_title) {
+  $output = '<div class="panels-ipe-placeholder-content">';
+  $output .= "<h3>$region_title</h3>";
+  $output .= '</div>';
+  return $output;
+}
+
+function theme_panels_ipe_pane_wrapper($output, $pane, $display, $renderer) {
+  $content_type = ctools_get_content_type($pane->type);
+  $subtype = ctools_content_get_subtype($content_type, $pane->subtype);
+  $links = array();
+
+  if (ctools_content_editable($content_type, $subtype, $pane->configuration)) {
+    $links['edit'] = array(
+      'title' => isset($content_type['edit text']) ? $content_type['edit text'] : t('Settings'),
+      'href' => $renderer->get_url('edit-pane', $pane->pid),
+      'attributes' => array(
+        'class' => 'ctools-use-modal',
+        // 'id' => "pane-edit-panel-pane-$pane->pid",
+      ),
+    );
+  }
+
+  // Deleting is managed entirely in the js; this is just an attachment point
+  // for it
+  $links['delete'] = array(
+    'title' => t('Delete'),
+    'href' => '#',
+    'attributes' => array(
+      'class' => 'pane-delete',
+      'id' => "pane-delete-panel-pane-$pane->pid",
+    ),
+  );
+
+  $attr = array(
+    'class' => 'panels-ipe-linkbar',
+  );
+
+  $links = theme('links', $links, $attr);
+  $links .= '<div class="panels-ipe-draghandle"> </div>';
+  $handlebar = '<div class="panels-ipe-handlebar-wrapper panels-ipe-on clear-block">' . $links . '</div>';
+  return $handlebar . $output;
+}
+
+function theme_panels_ipe_region_wrapper($output, $region_id, $display) {
+  return $output;
+}
+
+function theme_panels_ipe_add_pane_button($region_id, $display, $renderer) {
+  $attr = array('class' => 'ctools-use-modal');
+  $link = l(t('Add new pane'), $renderer->get_url('select-content', $region_id), array('attributes' => $attr));
+  return '<div class="panels-ipe-newblock panels-ipe-on panels-ipe-portlet-static">' . $link . '</div>';
+}
+
+function panels_ipe_get_cache_key($key = NULL) {
+  static $cache;
+  if (isset($key)) {
+    $cache = $key;
+  }
+  return $cache;
+}
+
+/**
+ * Implementation of hook_footer()
+ *
+ * Adds the IPE control container.
+ *
+ * @param unknown_type $main
+ */
+function panels_ipe_footer($main = 0) {
+  $key = panels_ipe_get_cache_key();
+  if (!isset($key)) {
+    return;
+  }
+
+  // TODO should be moved into the IPE plugin - WAAAY too hardcoded right now
+  $output = "<div id='panels-ipe-control-container' class='clear-block'>";
+  $output .= "<div id='panels-ipe-control-$key' class='panels-ipe-control'>";
+  $output .= "<div class='panels-ipe-startedit panels-ipe-pseudobutton panels-ipe-off'>";
+  $output .= "<span>" . t('Customize this page') . "</span>";
+  $output .= "</div>";
+  $output .= "<div class='panels-ipe-form-container panels-ipe-on clear-block'></div>";
+  $output .= "</div></div>";
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/plugins/display_renderers/ipe.inc b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/plugins/display_renderers/ipe.inc
new file mode 100644
index 0000000..afe1e44
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/plugins/display_renderers/ipe.inc
@@ -0,0 +1,8 @@
+<?php
+
+$plugin = array(
+  'handler' => array(
+    'class' => 'panels_renderer_ipe',
+    'parent' => 'editor',
+  ),
+);
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php
new file mode 100644
index 0000000..58aa281
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php
@@ -0,0 +1,307 @@
+<?php
+
+/**
+ * Renderer class for all In-Place Editor (IPE) behavior.
+ */
+class panels_renderer_ipe extends panels_renderer_editor {
+  // The IPE operates in normal render mode, not admin mode.
+  var $admin = FALSE;
+
+  // Whether or not the user has access.
+  var $access = NULL;
+
+  function invoke_panels_ipe_access() {
+    if (user_access('bypass access in place editing')) {
+      return TRUE;
+    }
+    // Modules can return TRUE, FALSE or NULL, for allowed, disallowed,
+    // or don't care - respectively. On the first FALSE, we deny access,
+    // otherwise allow.
+    foreach (module_invoke_all('panels_ipe_access', $this->display) as $result) {
+      if ($result === FALSE) {
+        return FALSE;
+      }
+    }
+    return TRUE;
+  }
+
+  function access() {
+    if (is_null($this->access)) {
+      $this->access = $this->invoke_panels_ipe_access();
+    }
+    return $this->access;
+  }
+
+  function render() {
+    $output = parent::render();
+    if ($this->access()) {
+      return "<div id='panels-ipe-display-{$this->clean_key}' class='panels-ipe-display-container'>$output</div>";
+    }
+    return $output;
+  }
+
+  function add_meta() {
+    if (!$this->access()) {
+      return parent::add_meta();
+    }
+
+    ctools_include('display-edit', 'panels');
+    ctools_include('content');
+
+    if (empty($this->display->cache_key)) {
+      $this->cache = panels_edit_cache_get_default($this->display);
+    }
+    // @todo we may need an else to load the cache, but I am not sure we
+    // actually need to load it if we already have our cache key, and doing
+    // so is a waste of resources.
+
+    ctools_include('cleanstring');
+    $this->clean_key = ctools_cleanstring($this->display->cache_key);
+    panels_ipe_get_cache_key($this->clean_key);
+
+    ctools_include('ajax');
+    ctools_include('modal');
+    ctools_modal_add_js();
+
+    ctools_add_css('panels_dnd', 'panels');
+    ctools_add_css('panels_admin', 'panels');
+    ctools_add_js('panels_ipe', 'panels_ipe');
+    ctools_add_css('panels_ipe', 'panels_ipe');
+
+    $settings = array(
+      'formPath' => url($this->get_url('save-form')),
+    );
+    drupal_add_js(array('PanelsIPECacheKeys' => array($this->clean_key)), 'setting');
+    drupal_add_js(array('PanelsIPESettings' => array($this->clean_key => $settings)), 'setting');
+
+    jquery_ui_add(array('ui.draggable', 'ui.droppable', 'ui.sortable'));
+    parent::add_meta();
+  }
+
+  /**
+   * Override & call the parent, then pass output through to the dnd wrapper
+   * theme function.
+   *
+   * @param $pane
+   */
+  function render_pane(&$pane) {
+    $output = parent::render_pane($pane);
+    if (empty($output)) {
+      return;
+    }
+    if (!$this->access()) {
+      return $output;
+    }
+
+    if (empty($pane->IPE_empty)) {
+      // Add an inner layer wrapper to the pane content before placing it into
+      // draggable portlet
+      $output = "<div class=\"panels-ipe-portlet-content\">$output</div>";
+    }
+    else {
+      $output = "<div class=\"panels-ipe-portlet-content panels-ipe-empty-pane\">$output</div>";
+    }
+    // Hand it off to the plugin/theme for placing draggers/buttons
+    $output = theme('panels_ipe_pane_wrapper', $output, $pane, $this->display, $this);
+    return "<div id=\"panels-ipe-paneid-{$pane->pid}\" class=\"panels-ipe-portlet-wrapper panels-ipe-portlet-marker\">" . $output . "</div>";
+  }
+
+  function render_pane_content(&$pane) {
+    $content = parent::render_pane_content($pane);
+    if (!$this->access()) {
+      return $output;
+    }
+    if (!is_object($content)) {
+      $content = new StdClass();
+    }
+    // Ensure that empty panes have some content.
+    if (empty($content->content)) {
+      // Get the administrative title.
+      $content_type = ctools_get_content_type($pane->type);
+      $title = ctools_content_admin_title($content_type, $pane->subtype, $pane->configuration, $this->display->context);
+
+      $content->content = t('Placeholder for empty "@title"', array('@title' => $title));
+      $pane->IPE_empty = TRUE;
+    }
+
+    return $content;
+  }
+
+  /**
+   * Add an 'empty' pane placeholder above all the normal panes.
+   *
+   * @param $region_id
+   * @param $panes
+   */
+  function render_region($region_id, $panes) {
+    if (!$this->access()) {
+      return parent::render_region($region_id, $panes);
+    }
+
+    // Generate this region's 'empty' placeholder pane from the IPE plugin.
+    $empty_ph = theme('panels_ipe_placeholder_pane', $region_id, $this->plugins['layout']['panels'][$region_id]);
+
+    // Wrap the placeholder in some guaranteed markup.
+    $panes['empty_placeholder'] = '<div class="panels-ipe-placeholder panels-ipe-on panels-ipe-portlet-marker panels-ipe-portlet-static">' . $empty_ph . "</div>";
+
+    // Generate this region's add new pane button. FIXME waaaaay too hardcoded
+    $panes['add_button'] = theme('panels_ipe_add_pane_button', $region_id, $this->display, $this);
+
+    $output = parent::render_region($region_id, $panes);
+    $output = theme('panels_ipe_region_wrapper', $output, $region_id, $this->display);
+    $classes = 'panels-ipe-region';
+
+    return "<div id='panels-ipe-regionid-$region_id' class='panels-ipe-region'>$output</div>";
+  }
+
+  function get_panels_storage_op_for_ajax($method) {
+    switch ($method) {
+      case 'ajax_unlock_ipe':
+      case 'ajax_save_form':
+        return 'update';
+      case 'ajax_change_layout':
+      case 'ajax_set_layout':
+        return 'change layout';
+    }
+
+    return parent::get_panels_storage_op_for_ajax($method);
+  }
+ 
+  /**
+   * AJAX entry point to create the controller form for an IPE.
+   */
+  function ajax_save_form($break = NULL) {
+    ctools_include('form');
+    if (!empty($this->cache->locked)) {
+      if ($break != 'break') {
+        $account  = user_load($this->cache->locked->uid);
+        $name     = theme('username', $account);
+        $lock_age = format_interval(time() - $this->cache->locked->updated);
+
+        $message = t("This panel is being edited by user !user, and is therefore locked from editing by others. This lock is !age old.\n\nClick OK to break this lock and discard any changes made by !user.", array('!user' => $name, '!age' => $lock_age));
+
+        $this->commands[] = array(
+          'command' => 'unlockIPE',
+          'message' => $message,
+          'break_path' => url($this->get_url('save-form', 'break'))
+        );
+        return;
+      }
+
+      // Break the lock.
+      panels_edit_cache_break_lock($this->cache);
+    }
+
+    $form_state = array(
+      'display' => &$this->display,
+      'content_types' => $this->cache->content_types,
+      'rerender' => FALSE,
+      'no_redirect' => TRUE,
+      // Panels needs this to make sure that the layout gets callbacks
+      'layout' => $this->plugins['layout'],
+    );
+
+    $output = ctools_build_form('panels_ipe_edit_control_form', $form_state);
+    if ($output) {
+      // At this point, we want to save the cache to ensure that we have a lock.
+      panels_edit_cache_set($this->cache);
+      $this->commands[] = array(
+        'command' => 'initIPE',
+        'key' => $this->clean_key,
+        'data' => $output,
+      );
+      return;
+    }
+
+    // no output == submit
+    if (!empty($form_state['clicked_button']['#save-display'])) {
+      // Saved. Save the cache.
+      panels_edit_cache_save($this->cache);
+    }
+    else {
+      // Cancelled. Clear the cache.
+      panels_edit_cache_clear($this->cache);
+    }
+
+    $this->commands[] = array(
+      'command' => 'endIPE',
+      'key' => $this->clean_key,
+      'data' => $output,
+    );
+  }
+
+  /**
+   * Create a command array to redraw a pane.
+   */
+  function command_update_pane($pid) {
+    if (is_object($pid)) {
+      $pane = $pid;
+    }
+    else {
+      $pane = $this->display->content[$pid];
+    }
+
+    $this->commands[] = ctools_ajax_command_replace("#panels-ipe-paneid-$pane->pid", $this->render_pane($pane));
+    $this->commands[] = ctools_ajax_command_changed("#panels-ipe-display-{$this->clean_key}");
+  }
+
+  /**
+   * Create a command array to add a new pane.
+   */
+  function command_add_pane($pid) {
+    if (is_object($pid)) {
+      $pane = $pid;
+    }
+    else {
+      $pane = $this->display->content[$pid];
+    }
+
+    $this->commands[] = ctools_ajax_command_append("#panels-ipe-regionid-{$pane->panel} div.panels-ipe-sort-container", $this->render_pane($pane));
+    $this->commands[] = ctools_ajax_command_changed("#panels-ipe-display-{$this->clean_key}");
+  }
+}
+
+/**
+ * FAPI callback to create the Save/Cancel form for the IPE.
+ */
+function panels_ipe_edit_control_form(&$form_state) {
+  $display = &$form_state['display'];
+  // @todo -- this should be unnecessary as we ensure cache_key is set in add_meta()
+//  $display->cache_key = isset($display->cache_key) ? $display->cache_key : $display->did;
+
+  // Annoyingly, theme doesn't have access to form_state so we have to do this.
+  $form['#display'] = $display;
+
+  $layout = panels_get_layout($display->layout);
+  $layout_panels = panels_get_regions($layout, $display);
+
+  $form['panel'] = array('#tree' => TRUE);
+  $form['panel']['pane'] = array('#tree' => TRUE);
+
+  foreach ($layout_panels as $panel_id => $title) {
+    // Make sure we at least have an empty array for all possible locations.
+    if (!isset($display->panels[$panel_id])) {
+      $display->panels[$panel_id] = array();
+    }
+
+    $form['panel']['pane'][$panel_id] = array(
+      // Use 'hidden' instead of 'value' so the js can access it.
+      '#type' => 'hidden',
+      '#default_value' => implode(',', (array) $display->panels[$panel_id]),
+    );
+  }
+
+  $form['buttons']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+    '#id' => 'panels-ipe-save',
+    '#submit' => array('panels_edit_display_form_submit'),
+    '#save-display' => TRUE,
+  );
+  $form['buttons']['cancel'] = array(
+    '#type' => 'submit',
+    '#value' => t('Cancel'),
+    '#id' => 'panels-ipe-cancel',
+  );
+  return $form;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.admin.inc b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.admin.inc
new file mode 100644
index 0000000..0dd049f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.admin.inc
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @file
+ *
+ * Administrative items for the panels mini module.
+ */
+/**
+ * Implementation of hook_menu().
+ */
+function _panels_mini_menu() {
+  // Provide some common options to reduce code repetition.
+  // By using array addition and making sure these are the rightmost
+  // value, they won't override anything already set.
+  $base = array(
+    'access arguments' => array('create mini panels'),
+    'file' => 'panels_mini.admin.inc',
+  );
+
+  $items['admin/build/mini-panels/settings'] = array(
+    'title' => 'Settings',
+    'page callback' => 'panels_mini_settings',
+    'type' => MENU_LOCAL_TASK,
+  ) + $base;
+  // Also provide settings on the main panel UI
+  $items['admin/build/panels/settings/panels-mini'] = array(
+    'title' => 'Mini panels',
+    'page callback' => 'panels_mini_settings',
+    'type' => MENU_LOCAL_TASK,
+  ) + $base;
+
+  return $items;
+}
+
+/**
+ * Settings for mini panels.
+ */
+function panels_mini_settings() {
+  ctools_include('common', 'panels');
+  return drupal_get_form('panels_common_settings', 'panels_mini');
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.info b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.info
new file mode 100644
index 0000000..92bb136
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.info
@@ -0,0 +1,11 @@
+name = Mini panels
+description = Create mini panels that can be used as blocks by Drupal and panes by other panel modules.
+package = "Panels"
+dependencies[] = panels
+core = 6.x
+; Information added by Drupal.org packaging script on 2016-02-25
+version = "6.x-3.12-boinc-2-dev"
+core = "6.x"
+project = "panels"
+datestamp = "1494600716"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.install b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.install
new file mode 100644
index 0000000..90999ab
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.install
@@ -0,0 +1,239 @@
+<?php
+
+/**
+ * Implementation of hook_schema().
+ */
+function panels_mini_schema() {
+  // This should always point to our 'current' schema. This makes it relatively easy
+  // to keep a record of schema as we make changes to it.
+  return panels_mini_schema_1();
+}
+
+/**
+ * Schema version 1 for Panels in D6.
+ */
+function panels_mini_schema_1() {
+  $schema = array();
+
+  $schema['panels_mini'] = array(
+    'export' => array(
+      'identifier' => 'mini',
+      'load callback' => 'panels_mini_load',
+      'load all callback' => 'panels_mini_load_all',
+      'save callback' => 'panels_mini_save',
+      'delete callback' => 'panels_mini_delete',
+      'export callback' => 'panels_mini_export',
+      'api' => array(
+        'owner' => 'panels_mini',
+        'api' => 'panels_default',
+        'minimum_version' => 1,
+        'current_version' => 1,
+      ),
+    ),
+    'fields' => array(
+      'pid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'no export' => TRUE,
+        'description' => 'The primary key for uniqueness.',
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'description' => 'The unique name of the mini panel.',
+      ),
+      'category' => array(
+        'type' => 'varchar',
+        'length' => '64',
+        'description' => 'The category this mini panel appears in on the add content pane.',
+      ),
+      'did' => array(
+        'type' => 'int',
+        'no export' => TRUE,
+        'description' => 'The display ID of the panel.',
+      ),
+      'admin_title' => array(
+        'type' => 'varchar',
+        'length' => '128',
+        'description' => 'The administrative title of the mini panel.',
+      ),
+      'admin_description' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'description' => 'Administrative title of this mini panel.',
+        'object default' => '',
+      ),
+      'requiredcontexts' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'description' => 'An array of required contexts.',
+      ),
+      'contexts' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'description' => 'An array of contexts embedded into the panel.',
+      ),
+      'relationships' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'serialize' => TRUE,
+        'object default' => array(),
+        'description' => 'An array of relationships embedded into the panel.',
+      ),
+    ),
+    'primary key' => array('pid'),
+    'unique keys' => array(
+      'name' => array('name'),
+    ),
+  );
+
+  return $schema;
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function panels_mini_install() {
+  drupal_install_schema('panels_mini');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function panels_mini_uninstall() {
+  $result = db_query("SELECT * FROM {panels_mini}");
+  $panels_exists = db_table_exists('panels_display');
+  while ($panel_mini = db_fetch_object($result)) {
+    // Delete all associated displays.
+    if (!function_exists('panels_delete_display')) {
+      require_once drupal_get_path('module', 'panels') .'/panels.module';
+    }
+    if ($panels_exists) {
+      panels_delete_display($panel_mini->did);
+    }
+
+    // Delete all configured blocks.
+    db_query("DELETE FROM {blocks} WHERE module = 'panels_mini' AND delta = %d", $panel_mini->pid);
+  }
+
+  // Finally, delete all mini panels.
+  drupal_uninstall_schema('panels_mini');
+}
+
+/**
+ * Update all blocks to use 'name' as delta, not 'pid'.
+ */
+function panels_mini_update_6300() {
+  $ret = array();
+  $result = db_query("SELECT name, pid from {panels_mini}");
+  while ($mini = db_fetch_object($result)) {
+    db_query("UPDATE {blocks} SET delta = '%s' WHERE module = 'panels_mini' AND delta = %d", $mini->name, $mini->pid);
+  }
+  return $ret;
+}
+
+/**
+ * Update all panel mini blocks to not use block caching.
+ */
+function panels_mini_update_6301() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {blocks} SET cache = -1 WHERE module = 'panels_mini'");
+  return $ret;
+}
+
+/**
+ * Add the admin description field.
+ */
+function panels_mini_update_6302() {
+  $ret = array();
+  $field = array(
+    'type' => 'text',
+    'size' => 'big',
+    'description' => 'Administrative description of this mini panel.',
+    'object default' => '',
+  );
+
+  db_add_field($ret, 'panels_mini', 'admin_description', $field);
+  return $ret;
+}
+
+/**
+ * Add the admin description field.
+ */
+function panels_mini_update_6303() {
+  $ret = array();
+  $field = array(
+    'type' => 'varchar',
+    'length' => '128',
+    'description' => 'The administrative title of the mini panel.',
+  );
+
+  db_add_field($ret, 'panels_mini', 'admin_title', $field);
+
+  $result = db_query("SELECT pid, did, title FROM {panels_mini}");
+  while ($mini = db_fetch_object($result)) {
+    db_query("UPDATE {panels_mini} SET admin_title = '%s' WHERE pid = %d", $mini->title, $mini->pid);
+    db_query("UPDATE {panels_display} SET title = '%s' WHERE did = %d", $mini->title, $mini->pid);
+  }
+
+  db_drop_field($ret, 'panels_mini', 'title');
+  return $ret;
+}
+
+/**
+ * Implements hook_update_dependencies().
+ */
+function panels_mini_update_dependencies() {
+  // Update 6304 requires panels storage support
+  $dependencies['panels_mini'][6304] = array(
+    'panels' => 6313,
+  );
+
+  return $dependencies;
+}
+
+/**
+ * Set the storage type and id on existing mini panels.
+ */
+function panels_mini_update_6304() {
+  if (!isset($sandbox['progress'])) {
+     // Initialize batch update information.
+     $sandbox['progress'] = (float)0;
+     $sandbox['current_did'] = -1;
+     $sandbox['max'] = db_result(db_query("SELECT COUNT(pd.did)
+         FROM {panels_display} pd
+           JOIN {panels_mini} pm ON pm.did = pd.did
+         WHERE pd.storage_type = ''"));
+   }
+
+  // Set a limit of how many rows to process per batch.
+  $limit = 1000;
+
+  // Run the query
+  $result = db_query_range("SELECT pd.did, pm.name
+      FROM {panels_display} pd
+        JOIN {panels_mini} pm ON pm.did = pd.did
+      WHERE pd.storage_type = '' AND pd.did > %d", $sandbox['current_did'], 0, $limit);
+
+  while ($row = db_fetch_object($result)) {
+    db_query("UPDATE {panels_display} SET storage_type = '%s', storage_id = '%s' WHERE did = %d",
+      'panels_mini', $row->name, $row->did);
+
+    // Update our progress information.
+    $sandbox['progress']++;
+    $sandbox['current_did'] = $row->did;
+  }
+
+  // Set the "finished" status, to tell batch engine whether this function
+  // needs to run again.
+  $sandbox['#finished'] = ($sandbox['progress'] >= $sandbox['max']) ? TRUE : ($sandbox['progress'] / $sandbox['max']);
+
+  if ($sandbox['#finished']) {
+    $ret[] = array('success' => TRUE, 'query' => t('Added the storage type for panels_mini to relevant panels displays'));
+    return $ret;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.module b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.module
new file mode 100644
index 0000000..cd95622
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/panels_mini.module
@@ -0,0 +1,419 @@
+<?php
+
+/**
+ * @file panels_mini.module
+ *
+ * This module provides mini panels which are basically panels that can be
+ * used within blocks or other panels.
+ */
+
+/**
+ * Implementation of hook_perm().
+ */
+function panels_mini_perm() {
+  return array('create mini panels', 'administer mini panels');
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function panels_mini_menu() {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!defined('PANELS_REQUIRED_CTOOLS_API') || !module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    return array();
+  }
+  require_once drupal_get_path('module', 'panels_mini') . '/panels_mini.admin.inc';
+  return _panels_mini_menu();
+}
+
+// ---------------------------------------------------------------------------
+// Allow the rest of the system access to mini panels
+
+/**
+ * Implementation of hook_block().
+ *
+ * Expose qualifying mini panels to Drupal's block system.
+ */
+function panels_mini_block($op = 'list', $delta = 0, $edit = array()) {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!defined('PANELS_REQUIRED_CTOOLS_API') || !module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    return array();
+  }
+
+  if ($op == 'list') {
+    $blocks = array();
+
+    $minis = panels_mini_load_all();
+    foreach ($minis as $panel_mini) {
+      if (empty($mini->disabled) && empty($mini->requiredcontext)) {
+        $blocks[$panel_mini->name] = array(
+          'info' => t('Mini panel: "@title"', array('@title' => $panel_mini->admin_title)),
+          'cache' => BLOCK_NO_CACHE,
+        );
+      }
+    }
+
+    return $blocks;
+  }
+  elseif ($op == 'view') {
+    // static recursion protection.
+    static $viewing = array();
+    if (!empty($viewing[$delta])) {
+      return;
+    }
+    $viewing[$delta] = TRUE;
+
+    $panel_mini = panels_mini_load($delta);
+    if (empty($panel_mini)) {
+      // Bail out early if the specified mini panel doesn't exist.
+      return;
+    }
+
+    ctools_include('context');
+    $panel_mini->context = $panel_mini->display->context = ctools_context_load_contexts($panel_mini);
+    $panel_mini->display->css_id = panels_mini_get_id($panel_mini->name);
+
+    $block = array();
+
+    $block['content'] = panels_render_display($panel_mini->display);
+    $block['subject'] = $panel_mini->display->get_title();
+
+    unset($viewing[$delta]);
+    return $block;
+  }
+  elseif ($op = 'configure') {
+    return array(
+      'admin-shortcut' => array(
+        '#value' => l(t('Manage this mini-panel'), "admin/build/mini-panels/list/$delta/edit")
+      ),
+    );
+  }
+}
+
+/**
+ * Statically store all used IDs to ensure all mini panels get a unique id.
+ */
+function panels_mini_get_id($name) {
+  static $id_cache = array();
+
+  $id = 'mini-panel-' . $name;
+  if (!empty($id_cache[$name])) {
+    $id .= "-" . $id_cache[$name]++;
+  }
+  else {
+    $id_cache[$name] = 1;
+  }
+
+  return $id;
+}
+
+// ---------------------------------------------------------------------------
+// Database functions.
+
+/**
+ * Create a new page with defaults appropriately set from schema.
+ */
+function panels_mini_new($set_defaults = TRUE) {
+  ctools_include('export');
+  return ctools_export_new_object('panels_mini', $set_defaults);
+}
+
+/**
+ * Load a single mini panel.
+ */
+function panels_mini_load($name) {
+  $cache = &ctools_static('panels_mini_load_all', array());
+
+  // We use array_key_exists because failed loads will be NULL and
+  // isset() will try to load it again.
+  if (!array_key_exists($name, $cache)) {
+    ctools_include('export');
+    $result = ctools_export_load_object('panels_mini', 'names', array($name));
+    if (isset($result[$name])) {
+      if (empty($result[$name]->display)) {
+        $result[$name]->display = panels_load_display($result[$name]->did);
+        if (!empty($result[$name]->title) && empty($result[$name]->display->title)) {
+          $result[$name]->display->title = $result[$name]->title;
+        }
+      }
+      $cache[$name] = $result[$name];
+      if (!empty($result[$name]->title) && empty($result[$name]->admin_title)) {
+        $cache[$name]->admin_title = $result[$name]->title;
+      }
+    }
+    else {
+      $cache[$name] = NULL;
+    }
+  }
+
+  if (isset($cache[$name])) {
+    return $cache[$name];
+  }
+}
+
+/**
+ * Load all mini panels.
+ */
+function panels_mini_load_all($reset = FALSE) {
+  $cache = &ctools_static('panels_mini_load_all', array());
+  static $all_loaded = FALSE;
+
+  // We check our own private static because individual minis could have
+  // been loaded prior to load all and we need to know that.
+  if (!$all_loaded || $reset) {
+    $all_loaded = TRUE;
+    if ($reset) {
+      $cache = array();
+    }
+
+    ctools_include('export');
+    $minis = ctools_export_load_object('panels_mini');
+    $dids = array();
+    foreach ($minis as $mini) {
+      if (empty($cache[$mini->name])) {
+        if (!empty($mini->did)) {
+          $dids[$mini->did] = $mini->name;
+        }
+        else {
+        // Translate old style titles into new titles.
+          if (!empty($mini->title) && empty($mini->display->title)) {
+            $mini->display->title = $mini->title;
+          }
+        }
+        // Translate old style titles into new titles.
+        if (isset($mini->title) && empty($mini->admin_title)) {
+          $mini->admin_title = $mini->title;
+        }
+        $cache[$mini->name] = $mini;
+      }
+    }
+
+    $displays = panels_load_displays(array_keys($dids));
+    foreach ($displays as $did => $display) {
+      if (!empty($cache[$dids[$did]]->title) && empty($display->title)) {
+        $display->title = $cache[$dids[$did]]->title;
+      }
+      $cache[$dids[$did]]->display = $display;
+    }
+  }
+
+  return $cache;
+}
+
+/**
+ * Write a mini panel to the database.
+ */
+function panels_mini_save(&$mini) {
+  if (!empty($mini->display)) {
+    $mini->display->storage_id = $mini->name;
+    $display = panels_save_display($mini->display);
+    $mini->did = $display->did;
+  }
+
+  $update = (isset($mini->pid) && $mini->pid != 'new') ? array('pid') : array();
+  drupal_write_record('panels_mini', $mini, $update);
+
+  return $mini;
+}
+
+/**
+ * Remove a mini panel.
+ */
+function panels_mini_delete($mini) {
+  db_query("DELETE FROM {panels_mini} WHERE name = '%s'", $mini->name);
+  if ($mini->type != t('Overridden')) {
+    db_query("DELETE FROM {blocks} WHERE module = 'panels_mini' AND delta = '%s'", $mini->name);
+  }
+  return panels_delete_display($mini->did);
+}
+
+/**
+ * Export a mini panel.
+ */
+function panels_mini_export($mini, $indent = '') {
+  ctools_include('export');
+  $output = ctools_export_object('panels_mini', $mini, $indent);
+  // Export the primary display
+  $display = !empty($mini->display) ? $mini->display : panels_load_display($mini->did);
+  $output .= panels_export_display($display, $indent);
+  $output .= $indent . '$mini->display = $display' . ";\n";
+  return $output;
+}
+
+/**
+ * Remove the block version of mini panels from being available content types.
+ */
+function panels_mini_ctools_block_info($module, $delta, &$info) {
+  $info = NULL;
+}
+
+/**
+ * Implementation of hook_ctools_plugin_directory() to let the system know
+ * we implement task and task_handler plugins.
+ */
+function panels_mini_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && ($plugin == 'content_types' || $plugin == 'export_ui')) {
+    return 'plugins/' . $plugin;
+  }
+  if ($module == 'panels' && $plugin == 'panels_storage') {
+    return 'plugins/' . $plugin;
+  }
+}
+
+/**
+ * Implements hook_default_panels_mini_alter().
+ *
+ * If a default Panels display has no storage type, set it.
+ */
+function panels_default_panels_mini_alter(&$mini_panels) {
+  foreach ($mini_panels as &$mini_panel) {
+    $display =& $mini_panel->display;
+    if (empty($display->storage_type)) {
+      $display->storage_type = 'panels_mini';
+      $display->storage_id = $mini_panel->name;
+    }
+  }
+}
+
+/**
+ * Get the display cache for the panels_mini plugin.
+ */
+function _panels_mini_panels_cache_get($key) {
+  ctools_include('export-ui');
+  $plugin = ctools_get_export_ui('panels_mini');
+  $handler = ctools_export_ui_get_handler($plugin);
+  if (!$handler) {
+    return;
+  }
+
+  $item = $handler->edit_cache_get($key);
+  if (!$item) {
+    $item = ctools_export_crud_load($handler->plugin['schema'], $key);
+  }
+
+  return array($handler, $item);
+}
+
+/**
+ * Get display edit cache for the panels mini export UI
+ *
+ * The key is the second half of the key in this form:
+ * panels_mini:TASK_NAME:HANDLER_NAME;
+ */
+function panels_mini_panels_cache_get($key) {
+  ctools_include('common', 'panels');
+  list($handler, $item) = _panels_mini_panels_cache_get($key);
+  if (isset($item->mini_panels_display_cache)) {
+    return $item->mini_panels_display_cache;
+  }
+
+  $cache = new stdClass();
+  $cache->display = $item->display;
+  $cache->display->context = ctools_context_load_contexts($item);
+  $cache->display->cache_key = 'panels_mini:' . $key;
+  $cache->display->storage_type = 'panels_mini';
+  // Temporary storage id that's replaced in panels_mini_save().
+  $cache->display->storage_id = 'panels_mini';
+  $cache->content_types = panels_common_get_allowed_types('panels_mini', $cache->display->context);
+  $cache->display_title = TRUE;
+
+  // @TODO support locking
+  $cache->locked = FALSE;
+
+  return $cache;
+}
+
+/**
+ * Store a display edit in progress in the page cache.
+ */
+function panels_mini_panels_cache_set($key, $cache) {
+  list($handler, $item) = _panels_mini_panels_cache_get($key);
+  $item->mini_panels_display_cache = $cache;
+  $handler->edit_cache_set_key($item, $key);
+}
+
+/**
+ * Save all changes made to a display using the panels mini UI cache.
+ */
+function panels_mini_panels_cache_clear($key, $cache) {
+  list($handler, $item) = _panels_mini_panels_cache_get($key);
+  $handler->edit_cache_clear($item);
+}
+
+/**
+ * Save all changes made to a display using the panels mini UI cache.
+ */
+function panels_mini_panels_cache_save($key, $cache) {
+  list($handler, $item) = _panels_mini_panels_cache_get($key);
+  $item->display = $cache->display;
+  panels_mini_save($item);
+
+  $handler->edit_cache_clear($item);
+}
+
+/**
+ * Break the lock on a panels mini page.
+ */
+function panels_mini_panels_cache_break_lock($key, $cache) {
+}
+
+/**
+ * Alter default mini panels to ensure they have new fields and avoid warnings.
+ */
+function panels_mini_default_panels_mini_alter(&$minis) {
+  foreach ($minis as $name => $mini) {
+    if (!isset($mini->admin_description)) {
+      $minis[$name]->admin_description = '';
+    }
+  }
+}
+
+/**
+ * Implementation of hook_panels_dashboard_blocks().
+ *
+ * Adds mini panels information to the Panels dashboard.
+ */
+function panels_mini_panels_dashboard_blocks(&$vars) {
+  $vars['links']['panels_mini'] = array(
+    'title' => l(t('Mini panel'), 'admin/build/mini-panels/add'),
+    'description' => t('Mini panels are small content areas exposed as blocks, for when you need to have complex block layouts or layouts within layouts.'),
+    'weight' => -1,
+  );
+
+  // Load all mini panels and their displays.
+  $panel_minis = panels_mini_load_all();
+  $count = 0;
+  $rows = array();
+
+  foreach ($panel_minis as $panel_mini) {
+    $rows[] = array(
+      check_plain($panel_mini->admin_title),
+      array(
+        'data' => l(t('Edit'), "admin/build/mini-panels/list/$panel_mini->name/edit"),
+        'class' => 'links',
+      ),
+    );
+
+    // Only show 10.
+    if (++$count >= 10) {
+      break;
+    }
+  }
+
+  if ($rows) {
+    $content = theme('table', array(), $rows, array('class' => 'panels-manage'));
+  }
+  else {
+    $content = '<p>' . t('There are no mini panels.') . '</p>';
+  }
+
+  $vars['blocks']['panels_mini'] = array(
+    'weight' => -100,
+    'title' => t('Manage mini panels'),
+    'link' => l(t('Go to list'), 'admin/build/mini-panels'),
+    'content' => $content,
+    'class' => 'dashboard-mini-panels',
+    'section' => 'left',
+  );
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/content_types/icon_panels_mini.png b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/content_types/icon_panels_mini.png
new file mode 100644
index 0000000..6d0891b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/content_types/icon_panels_mini.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/content_types/panels_mini.inc b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/content_types/panels_mini.inc
new file mode 100644
index 0000000..9857738
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/content_types/panels_mini.inc
@@ -0,0 +1,133 @@
+<?php
+
+/**
+ * @file
+ * Contains the content type plugin for a mini panel. While this does not
+ * need to be broken out into a .inc file, it's convenient that we do so
+ * that we don't load code unneccessarily. Plus it demonstrates plugins
+ * in modules other than Panels itself.
+ *
+ */
+
+/**
+ * Specially named hook. for .inc file. This looks a little silly due to the
+ * redundancy, but that's really just because the content type shares a
+ * name with the module.
+ */
+function panels_mini_panels_mini_ctools_content_types() {
+  return array(
+    'title' => t('Mini panels'),
+    'content type' => 'panels_mini_panels_mini_content_type_content_type',
+  );
+}
+
+/**
+ * Return each available mini panel available as a subtype.
+ */
+function panels_mini_panels_mini_content_type_content_type($subtype_id, $plugin) {
+  $mini = panels_mini_load($subtype_id);
+  return _panels_mini_panels_mini_content_type_content_type($mini);
+}
+
+/**
+ * Return each available mini panel available as a subtype.
+ */
+function panels_mini_panels_mini_content_type_content_types($plugin) {
+  $types = array();
+  foreach (panels_mini_load_all() as $mini) {
+    $type = _panels_mini_panels_mini_content_type_content_type($mini);
+    if ($type) {
+      $types[$mini->name] = $type;
+    }
+  }
+  return $types;
+}
+
+/**
+ * Return an info array describing a single mini panel.
+ */
+function _panels_mini_panels_mini_content_type_content_type($mini) {
+  if (!empty($mini->disabled)) {
+    return;
+  }
+
+  $title = filter_xss_admin($mini->admin_title);
+  $type = array(
+    'title' => $title,
+    // For now mini panels will just use the contrib block icon.
+    'icon' => 'icon_mini_panel.png',
+    'description' => $title,
+    'category' => !empty($mini->category) ? $mini->category : t('Mini panel'),
+  );
+  if (!empty($mini->requiredcontexts)) {
+    $type['required context'] = array();
+    foreach ($mini->requiredcontexts as $context) {
+      $info = ctools_get_context($context['name']);
+      // TODO: allow an optional setting
+      $type['required context'][] = new ctools_context_required($context['identifier'], $info['context name']);
+    }
+  }
+  return $type;
+}
+
+/**
+ * Render a mini panel called from a panels display.
+ */
+function panels_mini_panels_mini_content_type_render($subtype, $conf, $panel_args, &$contexts) {
+  static $viewing = array();
+  $mini = panels_mini_load($subtype);
+  if (!$mini) {
+    return FALSE;
+  }
+  if (!empty($viewing[$mini->name])) {
+    return FALSE;
+  }
+
+  // Load up any contexts we might be using.
+  $context = ctools_context_match_required_contexts($mini->requiredcontexts, $contexts);
+  $mini->context = $mini->display->context = ctools_context_load_contexts($mini, FALSE, $context);
+
+  if (empty($mini) || !empty($mini->disabled)) {
+    return;
+  }
+  $viewing[$mini->name] = TRUE;
+
+  $mini->display->args = $panel_args;
+  $mini->display->css_id = panels_mini_get_id($subtype);
+  $mini->display->owner = $mini;
+  // unique ID of this mini.
+  $mini->display->owner->id = $mini->name;
+
+  $block = new stdClass();
+  $block->module  = 'panels_mini';
+  $block->delta   = $subtype;
+  $block->content = panels_render_display($mini->display);
+  $block->title = $mini->display->get_title();
+
+  unset($viewing[$mini->name]);
+  return $block;
+}
+
+/**
+ * Edit form for the mini panel content type.
+ */
+function panels_mini_panels_mini_content_type_edit_form(&$form, &$form_state) {
+  // Empty form to ensure we have the override title + context gadgets.
+}
+
+/**
+ * Provide the administrative title of a mini panel.
+ */
+function panels_mini_panels_mini_content_type_admin_title($subtype, $conf) {
+  $mini = panels_mini_load($subtype);
+  if (!$mini) {
+    return t('Deleted/missing mini panel @name', array('@name' => $subtype));
+  }
+
+  $title = filter_xss_admin($mini->admin_title);
+  if (empty($title)) {
+    $title = t('Untitled mini panel');
+  }
+  return $title;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/export_ui/panels_mini.inc b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/export_ui/panels_mini.inc
new file mode 100644
index 0000000..46cb894
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/export_ui/panels_mini.inc
@@ -0,0 +1,41 @@
+<?php
+
+$plugin = array(
+  'schema' => 'panels_mini',
+  'access' => 'administer mini panels',
+  'create access' => 'create mini panels',
+
+  'menu' => array(
+    'menu item' => 'mini-panels',
+    'menu title' => 'Mini panels',
+    'menu description' => 'Add, edit or delete mini panels, which can be used as blocks or content panes in other panels.',
+  ),
+
+  'title singular' => t('mini panel'),
+  'title singular proper' => t('Mini panel'),
+  'title plural' => t('mini panels'),
+  'title plural proper' => t('Mini panels'),
+
+  'handler' => array(
+    'class' => 'panels_mini_ui',
+    'parent' => 'ctools_export_ui',
+  ),
+
+  'use wizard' => TRUE,
+  'form info' => array(
+    'order' => array(
+      'basic' => t('Settings'),
+      'context' => t('Context'),
+      'layout' => t('Layout'),
+      'content' => t('Content'),
+    ),
+    // We have to add this form specially because it's invisible.
+    'forms' => array(
+      'move' => array(
+        'form id' => 'ctools_export_ui_edit_item_wizard_form',
+      ),
+    ),
+  ),
+
+);
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/export_ui/panels_mini_ui.class.php b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/export_ui/panels_mini_ui.class.php
new file mode 100644
index 0000000..2db6857
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/export_ui/panels_mini_ui.class.php
@@ -0,0 +1,291 @@
+<?php
+
+class panels_mini_ui extends ctools_export_ui {
+  function init($plugin) {
+    parent::init($plugin);
+    ctools_include('context');
+  }
+
+  function list_form(&$form, &$form_state) {
+    ctools_include('plugins', 'panels');
+    $this->layouts = panels_get_layouts();
+
+    parent::list_form($form, $form_state);
+
+    $categories = $layouts = array('all' => t('- All -'));
+    foreach ($this->items as $item) {
+      $categories[$item->category] = $item->category ? $item->category : t('Mini panels');
+    }
+
+    $form['top row']['category'] = array(
+      '#type' => 'select',
+      '#title' => t('Category'),
+      '#options' => $categories,
+      '#default_value' => 'all',
+      '#weight' => -10,
+    );
+
+    foreach ($this->layouts as $name => $plugin) {
+      $layouts[$name] = $plugin['title'];
+    }
+
+    $form['top row']['layout'] = array(
+      '#type' => 'select',
+      '#title' => t('Layout'),
+      '#options' => $layouts,
+      '#default_value' => 'all',
+      '#weight' => -9,
+    );
+  }
+
+  function list_filter($form_state, $item) {
+    if ($form_state['values']['category'] != 'all' && $form_state['values']['category'] != $item->category) {
+      return TRUE;
+    }
+
+    if ($form_state['values']['layout'] != 'all' && $form_state['values']['layout'] != $item->display->layout) {
+      return TRUE;
+    }
+
+    return parent::list_filter($form_state, $item);
+  }
+
+  function list_sort_options() {
+    return array(
+      'disabled' => t('Enabled, title'),
+      'title' => t('Title'),
+      'name' => t('Name'),
+      'category' => t('Category'),
+      'storage' => t('Storage'),
+      'layout' => t('Layout'),
+    );
+  }
+
+  function list_build_row($item, &$form_state, $operations) {
+    // Set up sorting
+    switch ($form_state['values']['order']) {
+      case 'disabled':
+        $this->sorts[$item->name] = empty($item->disabled) . $item->admin_title;
+        break;
+      case 'title':
+        $this->sorts[$item->name] = $item->admin_title;
+        break;
+      case 'name':
+        $this->sorts[$item->name] = $item->name;
+        break;
+      case 'category':
+        $this->sorts[$item->name] = ($item->category ? $item->category : t('Mini panels')) . $item->admin_title;
+        break;
+      case 'layout':
+        $this->sorts[$item->name] = $item->display->layout . $item->admin_title;
+        break;
+      case 'storage':
+        $this->sorts[$item->name] = $item->type . $item->admin_title;
+        break;
+    }
+
+    $layout = !empty($this->layouts[$item->display->layout]) ? $this->layouts[$item->display->layout]['title'] : t('Missing layout');
+    $category = $item->category ? check_plain($item->category) : t('Mini panels');
+
+    $this->rows[$item->name] = array(
+      'data' => array(
+        array('data' => check_plain($item->admin_title), 'class' => 'ctools-export-ui-title'),
+        array('data' => check_plain($item->name), 'class' => 'ctools-export-ui-name'),
+        array('data' => $category, 'class' => 'ctools-export-ui-category'),
+        array('data' => $layout, 'class' => 'ctools-export-ui-layout'),
+        array('data' => $item->type, 'class' => 'ctools-export-ui-storage'),
+        array('data' => theme('links', $operations), 'class' => 'ctools-export-ui-operations'),
+      ),
+      'title' => !empty($item->admin_description) ? check_plain($item->admin_description) : '',
+      'class' => !empty($item->disabled) ? 'ctools-export-ui-disabled' : 'ctools-export-ui-enabled',
+    );
+  }
+
+  function list_table_header() {
+    return array(
+      array('data' => t('Title'), 'class' => 'ctools-export-ui-title'),
+      array('data' => t('Name'), 'class' => 'ctools-export-ui-name'),
+      array('data' => t('Category'), 'class' => 'ctools-export-ui-category'),
+      array('data' => t('Layout'), 'class' => 'ctools-export-ui-layout'),
+      array('data' => t('Storage'), 'class' => 'ctools-export-ui-storage'),
+      array('data' => t('Operations'), 'class' => 'ctools-export-ui-operations'),
+    );
+  }
+
+  function edit_form(&$form, &$form_state) {
+    // Get the basic edit form
+    parent::edit_form($form, $form_state);
+
+    $form['category'] = array(
+      '#type' => 'textfield',
+      '#size' => 24,
+      '#default_value' => $form_state['item']->category,
+      '#title' => t('Category'),
+      '#description' => t("The category that this mini-panel will be grouped into on the Add Content form. Only upper and lower-case alphanumeric characters are allowed. If left blank, defaults to 'Mini panels'."),
+    );
+
+    $form['title']['#title'] = t('Title');
+    $form['title']['#description'] = t('The title for this mini panel. It can be overridden in the block configuration.');
+  }
+
+  /**
+   * Validate submission of the mini panel edit form.
+   */
+  function edit_form_basic_validate($form, &$form_state) {
+    parent::edit_form_validate($form, $form_state);
+    if (preg_match("/[^A-Za-z0-9 ]/", $form_state['values']['category'])) {
+      form_error($form['category'], t('Categories may contain only alphanumerics or spaces.'));
+    }
+  }
+
+  function edit_form_submit(&$form, &$form_state) {
+    parent::edit_form_submit($form, $form_state);
+    $form_state['item']->category = $form_state['values']['category'];
+  }
+
+  function edit_form_context(&$form, &$form_state) {
+    ctools_include('context-admin');
+    ctools_context_admin_includes();
+    ctools_add_css('ruleset');
+
+    $form['right'] = array(
+      '#prefix' => '<div class="ctools-right-container">',
+      '#suffix' => '</div>',
+    );
+
+    $form['left'] = array(
+      '#prefix' => '<div class="ctools-left-container clear-block">',
+      '#suffix' => '</div>',
+    );
+
+    // Set this up and we can use CTools' Export UI's built in wizard caching,
+    // which already has callbacks for the context cache under this name.
+    $module = 'ctools_export_ui-' . $this->plugin['name'];
+    $name = $this->edit_cache_get_key($form_state['item'], $form_state['form type']);
+
+    ctools_context_add_context_form($module, $form, $form_state, $form['right']['contexts_table'], $form_state['item'], $name);
+    ctools_context_add_required_context_form($module, $form, $form_state, $form['left']['required_contexts_table'], $form_state['item'], $name);
+    ctools_context_add_relationship_form($module, $form, $form_state, $form['right']['relationships_table'], $form_state['item'], $name);
+  }
+
+  function edit_form_context_submit(&$form, &$form_state) {
+    // Prevent this from going to edit_form_submit();
+  }
+
+  function edit_form_layout(&$form, &$form_state) {
+    ctools_include('common', 'panels');
+    ctools_include('display-layout', 'panels');
+    ctools_include('plugins', 'panels');
+
+    // @todo -- figure out where/how to deal with this.
+    $form_state['allowed_layouts'] = 'panels_mini';
+
+    if ($form_state['op'] == 'add' && empty($form_state['item']->display)) {
+      $form_state['item']->display = panels_new_display();
+    }
+
+    $form_state['display'] = &$form_state['item']->display;
+
+    // Tell the Panels form not to display buttons.
+    $form_state['no buttons'] = TRUE;
+
+    // Change the #id of the form so the CSS applies properly.
+    $form['#id'] = 'panels-choose-layout';
+    $form = array_merge($form, panels_choose_layout($form_state));
+
+    if ($form_state['op'] == 'edit') {
+      $form['buttons']['next']['#value'] = t('Change');
+    }
+  }
+
+  /**
+   * Validate that a layout was chosen.
+   */
+  function edit_form_layout_validate(&$form, &$form_state) {
+    $display = &$form_state['display'];
+    if (empty($form_state['values']['layout'])) {
+      form_error($form['layout'], t('You must select a layout.'));
+    }
+    if ($form_state['op'] == 'edit') {
+      if ($form_state['values']['layout'] == $display->layout) {
+        form_error($form['layout'], t('You must select a different layout if you wish to change layouts.'));
+      }
+    }
+  }
+
+  /**
+   * A layout has been selected, set it up.
+   */
+  function edit_form_layout_submit(&$form, &$form_state) {
+    $display = &$form_state['display'];
+    if ($form_state['op'] == 'edit') {
+      if ($form_state['values']['layout'] != $display->layout) {
+        $form_state['item']->temp_layout = $form_state['values']['layout'];
+        $form_state['clicked_button']['#next'] = 'move';
+      }
+    }
+    else {
+      $form_state['item']->display->layout = $form_state['values']['layout'];
+    }
+  }
+
+  /**
+   * When a layout is changed, the user is given the opportunity to move content.
+   */
+  function edit_form_move(&$form, &$form_state) {
+    $form_state['display'] = &$form_state['item']->display;
+    $form_state['layout'] = $form_state['item']->temp_layout;
+
+    ctools_include('common', 'panels');
+    ctools_include('display-layout', 'panels');
+    ctools_include('plugins', 'panels');
+
+    // Tell the Panels form not to display buttons.
+    $form_state['no buttons'] = TRUE;
+
+    // Change the #id of the form so the CSS applies properly.
+    $form = array_merge($form, panels_change_layout($form_state));
+
+    // This form is outside the normal wizard list, so we need to specify the
+    // previous/next forms.
+    $form['buttons']['previous']['#next'] = 'layout';
+    $form['buttons']['next']['#next'] = 'content';
+  }
+
+  function edit_form_move_submit(&$form, &$form_state) {
+    panels_change_layout_submit($form, $form_state);
+  }
+
+  function edit_form_content(&$form, &$form_state) {
+    ctools_include('ajax');
+    ctools_include('plugins', 'panels');
+    ctools_include('display-edit', 'panels');
+    ctools_include('context');
+
+    // If we are cloning an item, we MUST have this cached for this to work,
+    // so make sure:
+    if ($form_state['form type'] == 'clone' && empty($form_state['item']->export_ui_item_is_cached)) {
+      $this->edit_cache_set($form_state['item'], 'clone');
+    }
+
+    $cache = panels_edit_cache_get('panels_mini:' . $this->edit_cache_get_key($form_state['item'], $form_state['form type']));
+
+    $form_state['renderer'] = panels_get_renderer_handler('editor', $cache->display);
+    $form_state['renderer']->cache = &$cache;
+
+    $form_state['display'] = &$cache->display;
+    $form_state['content_types'] = $cache->content_types;
+    // Tell the Panels form not to display buttons.
+    $form_state['no buttons'] = TRUE;
+    $form_state['display_title'] = !empty($cache->display_title);
+
+    $form = array_merge($form, panels_edit_display_form($form_state));
+    // Make sure the theme will work since our form id is different.
+    $form['#theme'] = 'panels_edit_display_form';
+  }
+
+  function edit_form_content_submit(&$form, &$form_state) {
+    panels_edit_display_form_submit($form, $form_state);
+    $form_state['item']->display = $form_state['display'];
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/panels_storage/panels_mini.inc b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/panels_storage/panels_mini.inc
new file mode 100644
index 0000000..c9ba35d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_mini/plugins/panels_storage/panels_mini.inc
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * @file
+ * Provides a panels_storage plugin for mini panels.
+ */
+
+// Plugin definition
+$plugin = array(
+  'access callback' => 'panels_mini_panels_storage_access',
+);
+
+/**
+ * Access callback for panels storage.
+ */
+function panels_mini_panels_storage_access($storage_type, $storage_id, $op, $account) {
+  if ($op == 'create') {
+    return user_access('create mini panels', $account);
+  }
+
+  return user_access('administer mini panels', $account);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.info b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.info
new file mode 100644
index 0000000..b254b0b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.info
@@ -0,0 +1,13 @@
+name = Panel nodes
+description = Create nodes that are divided into areas with selectable content.
+package = "Panels"
+dependencies[] = panels
+core = 6.x
+
+
+; Information added by Drupal.org packaging script on 2016-02-25
+version = "6.x-3.12-boinc-1-dev"
+core = "6.x"
+project = "panels"
+datestamp = "1494600716"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.install b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.install
new file mode 100644
index 0000000..adfa570
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.install
@@ -0,0 +1,127 @@
+<?php
+
+/**
+ * Implementation of hook_schema().
+ */
+function panels_node_schema() {
+  // This should always point to our 'current' schema. This makes it relatively easy
+  // to keep a record of schema as we make changes to it.
+  return panels_node_schema_1();
+}
+
+/**
+ * Schema version 1 for Panels in D6.
+ */
+function panels_node_schema_1() {
+  $schema = array();
+
+  $schema['panels_node'] = array(
+    'fields' => array(
+      'nid' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'css_id' => array(
+        'type' => 'varchar',
+        'length' => '255',
+      ),
+      'did' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+      ),
+      'pipeline' => array(
+        'type' => 'varchar',
+        'length' => '255',
+      ),
+    ),
+    'primary key' => array('did'),
+  );
+
+  return $schema;
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function panels_node_install() {
+  db_query("UPDATE {system} SET weight = 11 WHERE name = 'panels_node'");
+  drupal_install_schema('panels_node');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function panels_node_uninstall() {
+  // TODO: Delete all actual nodes that are panels_nodes.
+  db_query("DELETE FROM {node} WHERE type = 'panel'");
+  drupal_uninstall_schema('panels_node');
+}
+
+/**
+ * Implements hook_update_dependencies().
+ */
+function panels_node_update_dependencies() {
+  // Update 6002 requires panels storage support
+  $dependencies['panels_node'][6002] = array(
+    'panels' => 6313,
+  );
+
+  return $dependencies;
+}
+
+/**
+ * Implementation of hook_update to handle adding a pipeline
+ */
+function panels_node_update_6001() {
+  $ret = array();
+  $field = array(
+    'type' => 'varchar',
+    'length' => '255',
+  );
+
+  db_add_field($ret, 'panels_node', 'pipeline', $field);
+  return $ret;
+}
+
+/**
+ * Set the storage type and id on existing panels nodes.
+ */
+function panels_node_update_6002() {
+  if (!isset($sandbox['progress'])) {
+     // Initialize batch update information.
+     $sandbox['progress'] = (float)0;
+     $sandbox['current_did'] = -1;
+     $sandbox['max'] = db_result(db_query("SELECT COUNT(pd.did)
+         FROM {panels_display} pd
+           JOIN {panels_node} pn ON pn.did = pd.did
+         WHERE pd.storage_type = ''"));
+   }
+
+  // Set a limit of how many rows to process per batch.
+  $limit = 1000;
+
+  // Run the query
+  $result = db_query_range("SELECT pd.did, pn.nid
+      FROM {panels_display} pd
+        JOIN {panels_node} pn ON pn.did = pd.did
+      WHERE pd.storage_type = '' AND pd.did > %d", $sandbox['current_did'], 0, $limit);
+
+  while ($row = db_fetch_object($result)) {
+    db_query("UPDATE {panels_display} SET storage_type = '%s', storage_id = '%s' WHERE did = %d",
+      'panels_node', $row->nid, $row->did);
+
+    // Update our progress information.
+    $sandbox['progress']++;
+    $sandbox['current_did'] = $row->did;
+  }
+
+  // Set the "finished" status, to tell batch engine whether this function
+  // needs to run again.
+  $sandbox['#finished'] = ($sandbox['progress'] >= $sandbox['max']) ? TRUE : ($sandbox['progress'] / $sandbox['max']);
+
+  if ($sandbox['#finished']) {
+    $ret[] = array('success' => TRUE, 'query' => t('Added the storage type for panels_node to relevant panels displays'));
+    return $ret;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.module b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.module
new file mode 100644
index 0000000..91aa9b8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/panels_node.module
@@ -0,0 +1,432 @@
+<?php
+
+
+/**
+ * @file panels_node.module
+ *
+ * This module provides the "panel" node type.
+ * Panel nodes are useful to add additional content to the content area
+ * on a per-node base.
+ */
+
+// ---------------------------------------------------------------------------
+// General Drupal hooks
+
+/**
+ * Implementation of hook_perm().
+ */
+function panels_node_perm() {
+  return array('create panel-nodes', 'edit any panel-nodes', 'edit own panel-nodes', 'administer panel-nodes', 'delete any panel-nodes', 'delete own panel-nodes');
+}
+
+/**
+ * Implementation of hook_ctools_plugin_directory().
+ */
+function panels_node_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'panels' && $plugin == 'panels_storage') {
+    return 'plugins/' . $plugin;
+  }
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function panels_node_menu() {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!defined('PANELS_REQUIRED_CTOOLS_API') || !module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    return array();
+  }
+
+  $items['admin/build/panels/settings/panel-node'] = array(
+    'title' => 'Panel nodes',
+    'description' => 'Configure which content is available to add to panel node displays.',
+    'access arguments' => array('administer panel-nodes'),
+    'page callback' => 'panels_node_settings',
+    'type' => MENU_LOCAL_TASK,
+  );
+
+  // Avoid some repetition on these:
+  $base = array(
+    'access callback' => 'panels_node_edit_node',
+    'access arguments' => array(1),
+    'page arguments' => array(1),
+    'type' => MENU_LOCAL_TASK,
+  );
+
+  $items['node/%node/panel_layout'] = array(
+    'title' => 'Panel layout',
+    'page callback' => 'panels_node_edit_layout',
+    'weight' => 2,
+  ) + $base;
+
+  $items['node/%node/panel_content'] = array(
+    'title' => 'Panel content',
+    'page callback' => 'panels_node_edit_content',
+    'weight' => 3,
+  ) + $base;
+
+  $items['node/add/panel/choose-layout'] = array(
+    'title' => 'Choose layout',
+    'access arguments' => array('create panel-nodes'),
+    'page callback' => 'panels_node_add',
+    'type' => MENU_CALLBACK,
+  );
+
+  return $items;
+}
+
+function panels_node_edit_node($node) {
+  if (!isset($node->panels_node)) {
+    return FALSE;
+  }
+
+  return node_access('update', $node);
+}
+
+// ---------------------------------------------------------------------------
+// Node hooks
+
+/**
+ * Implementation of hook_node_info().
+ */
+function panels_node_node_info() {
+  // Safety: go away if CTools is not at an appropriate version.
+  if (!defined('PANELS_REQUIRED_CTOOLS_API') || !module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
+    return array();
+  }
+
+  return array(
+    'panel' => array(
+      'name' => t('Panel'),
+      'module' => 'panels_node',
+      'body_label' => t('Teaser'),
+      'description' => t("A panel layout broken up into rows and columns."),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_access().
+ */
+function panels_node_access($op, $node, $account) {
+  if (user_access('administer panel-nodes', $account)) {
+    return TRUE;
+  }
+
+  if ($op == 'create' && user_access('create panel-nodes', $account)) {
+    return TRUE;
+  }
+
+  if ($op == 'update' && (user_access('edit any panel-nodes', $account) || $node->uid == $account->uid && user_access('edit own panel-nodes', $account))) {
+    return TRUE;
+  }
+
+
+  if ($op == 'delete' && (user_access('delete any panel-nodes') || $node->uid == $account->uid && user_access('delete own panel-nodes'))) {
+    return TRUE;
+  }
+}
+
+function panels_node_add() {
+  $output = '';
+
+  ctools_include('plugins', 'panels');
+  ctools_include('common', 'panels');
+
+  $layouts = panels_common_get_allowed_layouts('panels_node');
+  return panels_common_print_layout_links($layouts, 'node/add/panel', array('query' => $_GET));
+}
+
+/**
+ * Implementation of hook_form().
+ */
+function panels_node_form(&$node, &$param) {
+  ctools_include('plugins', 'panels');
+
+  $form['panels_node']['#tree'] = TRUE;
+  if (empty($node->nid) && arg(0) == 'node' && arg(1) == 'add') {
+    // Grab our selected layout from the $node, If it doesn't exist, try arg(3)
+    // and if that doesn't work present them with a list to pick from.
+    $panel_layout = isset($node->panel_layout) ? $node->panel_layout : arg(3);
+    if (empty($panel_layout)) {
+      $opts = $_GET;
+      unset($opts['q']);
+      return drupal_goto('node/add/panel/choose-layout', $opts);
+    }
+
+    $layout = panels_get_layout($panel_layout);
+    if (empty($layout)) {
+      return drupal_not_found();
+    }
+    $form['panels_node']['layout'] = array(
+      '#type' => 'value',
+      '#value' => $panel_layout,
+    );
+  }
+
+  $type = node_get_types('type', $node);
+
+  $form['title'] = array(
+    '#type' => 'textfield',
+    '#title' => check_plain($type->title_label),
+    '#required' => TRUE,
+    '#default_value' => $node->title,
+  );
+
+  if (!empty($type->body_label)) {
+    $form['body_field']['#prefix'] = '<div class="body-field-wrapper">';
+    $form['body_field']['#suffix'] = '</div>';
+    $form['body_field']['body'] = array(
+      '#type' => 'textarea',
+      '#title' => check_plain($type->body_label),
+      '#rows' => 10,
+      '#required' => TRUE,
+      '#description' => t('The teaser is a piece of text to describe when the panel is listed (such as when promoted to front page); the actual content will only be displayed on the full node view.'),
+      '#default_value' => $node->body,
+    );
+    $form['body_field']['format'] = filter_form($node->format); // Now we can set the format!
+  }
+
+//  drupal_set_message('<pre>' . check_plain(var_export($node, true)) . '</pre>');
+  $css_id = '';
+  if (!empty($node->panels_node['css_id'])) {
+    $css_id = $node->panels_node['css_id'];
+  }
+
+  $form['panels_node']['css_id'] = array(
+    '#type' => 'textfield',
+    '#title' => t('CSS ID'),
+    '#size' => 30,
+    '#description' => t('An ID that can be used by CSS to style the panel.'),
+    '#default_value' => $css_id,
+  );
+
+  // Support for different rendering pipelines
+  // Mostly borrowed from panel_context.inc
+  $pipelines = panels_get_renderer_pipelines();
+
+  // If there are no pipelines, that probably means we're operating in
+  // legacy mode.
+  if (empty($pipelines)) {
+    // We retain the original pipeline so we don't wreck things by installing
+    // old modules.
+    $form['panels_node']['pipeline'] = array(
+      '#type' => 'value',
+      '#value' => $node->panels_node['pipeline'],
+    );
+  }
+  else {
+    $options = array();
+    foreach ($pipelines as $name => $pipeline) {
+      $options[$name] = check_plain($pipeline->admin_title) . '<div class="description">' . check_plain($pipeline->admin_description) . '</div>';
+    }
+
+    $form['panels_node']['pipeline'] = array(
+      '#type' => 'radios',
+      '#options' => $options,
+      '#title' => t('Renderer'),
+      '#default_value' => !empty($node->panels_node['pipeline']) ? $node->panels_node['pipeline'] : 'standard',
+    );
+  }
+
+  return $form;
+}
+
+/**
+ * Implementation of hook_validate().
+ */
+function panels_node_validate($node) {
+  if (!$node->nid && empty($node->panels_node['layout'])) {
+    form_set_error('', t('Please select a layout.'));
+  }
+}
+
+/**
+ * Implementation of hook_load().
+ *
+ * Panels does not use revisions for nodes because that would open us up
+ * to have completely separate displays, and we'd have to copy them,
+ * and that's going to be a LOT of data.
+ */
+function panels_node_load($node) {
+  // We shortcut this because only in some really drastic corruption circumstance will this
+  // not work.
+  $additions['panels_node'] = db_fetch_array(db_query("SELECT * FROM {panels_node} WHERE nid = %d", $node->nid));
+  return $additions;
+}
+
+/**
+ * Implementation of hook_insert().
+ */
+function panels_node_insert(&$node) {
+  // Create a new display and record that.
+  $display = panels_new_display();
+  $display->layout = $node->panels_node['layout'];
+  $display->storage_type = 'panels_node';
+  $display->storage_id = $node->nid;
+
+  // Special handling for nodes being imported from an export.module data dump.
+  if (!empty($node->export_display)) {
+    // This works by overriding the $display set above
+    eval($node->export_display);
+    unset($node->export_display);
+  }
+
+  panels_save_display($display);
+  $css_id = $node->panels_node['css_id'];
+
+  db_query("INSERT INTO {panels_node} (nid, did, css_id, pipeline) VALUES (%d, %d, '%s', '%s')", $node->nid, $display->did, $node->panels_node['css_id'], $node->panels_node['pipeline']);
+
+  $node->panels_node['did'] = $display->did;
+}
+
+/**
+ * Implementation of hook_delete().
+ */
+function panels_node_delete(&$node) {
+  db_query("DELETE FROM {panels_node} WHERE nid = %d", $node->nid);
+  if (!empty($node->panels_node['did'])) {
+    panels_delete_display($node->panels_node['did']);
+  }
+}
+
+/**
+ * Implementation of hook_update().
+ */
+function panels_node_update($node) {
+  db_query("UPDATE {panels_node} SET css_id = '%s', pipeline = '%s' WHERE nid = %d", $node->panels_node['css_id'], $node->panels_node['pipeline'], $node->nid);
+}
+
+/**
+ * Implementation of hook_view().
+ */
+function panels_node_view($node, $teaser = FALSE, $page = FALSE) {
+  static $rendering = array();
+
+  // Prevent loops if someone foolishly puts the node inside itself:
+  if (!empty($rendering[$node->nid])) {
+    return $node;
+  }
+
+  $rendering[$node->nid] = TRUE;
+  ctools_include('plugins', 'panels');
+  if ($teaser) {
+    // Do the standard view for teaser.
+    $node = node_prepare($node, $teaser);
+    // Because our teasier is never the same as our content, *always* provide
+    // the read more flag.
+    $node->readmore = TRUE;
+  }
+  else {
+    if (!empty($node->panels_node['did'])) {
+      $display = panels_load_display($node->panels_node['did']);
+      $display->css_id = $node->panels_node['css_id'];
+      // TODO: Find a way to make sure this can't node_view.
+      $display->context = panels_node_get_context($node);
+      $renderer = panels_get_renderer($node->panels_node['pipeline'], $display);
+      $node->content['body'] = array(
+        '#value' => panels_render_display($display, $renderer),
+        '#weight' => 0,
+      );
+    }
+  }
+
+  unset($rendering[$node->nid]);
+  return $node;
+}
+
+// ---------------------------------------------------------------------------
+// Administrative pages
+
+/**
+ * Settings for panel nodes.
+ */
+function panels_node_settings() {
+  ctools_include('common', 'panels');
+  return drupal_get_form('panels_common_settings', 'panels_node');
+}
+
+/**
+ * Implements hook_panels_ipe_access().
+ */
+function panels_node_panels_ipe_access($display) {
+  // We only care about Panels displays from panels_node.
+  if (isset($display->context['panel-node'])) {
+    // Only allow access to use the IPE if the user has 'update' access to
+    // the underlying node.
+    $node = $display->context['panel-node']->data;
+    return node_access('update', $node); 
+  }
+}
+
+// ---------------------------------------------------------------------------
+// Meat of the Panels API; almost completely passing through to panels.module
+
+/**
+ * Pass through to the panels layout editor.
+ */
+function panels_node_edit_layout($node) {
+//  ctools_include('plugins', 'panels');
+  ctools_include('context');
+  $display = panels_load_display($node->panels_node['did']);
+  $display->context = panels_node_get_context($node);
+  return panels_edit_layout($display, t('Save'), "node/$node->nid/panel_layout", 'panels_node');
+}
+
+/**
+ * Pass through to the panels content editor.
+ */
+function panels_node_edit_content($node) {
+//  ctools_include('plugins', 'panels');
+  ctools_include('context');
+  $display = panels_load_display($node->panels_node['did']);
+  $display->context = panels_node_get_context($node);
+  ctools_include('common', 'panels');
+  $content_types = panels_common_get_allowed_types('panels_node', $display->context);
+
+  // Print this with theme('page') so that blocks are disabled while editing a display.
+  // This is important because negative margins in common block layouts (i.e, Garland)
+  // messes up the drag & drop.
+  print theme('page', panels_edit($display, "node/$node->nid/panel_content", $content_types), FALSE);
+}
+
+/**
+ * Build the context to use for a panel node.
+ */
+function panels_node_get_context(&$node) {
+  ctools_include('context');
+  $context = ctools_context_create('node', $node);
+  $context->identifier = t('This node');
+  $context->keyword = 'node';
+  return array('panel-node' => $context);
+}
+
+/**
+ * Implementation of hook_export_node_alter()
+ *
+ * Integrate with export.module for saving panel_nodes into code.
+ */
+function panels_node_export_node_alter(&$node, $original_node, $method) {
+  if ($method == 'export') {
+    $node_export_omitted = variable_get('node_export_omitted', array());
+    if (variable_get('node_export_method', '') != 'save-edit' && (array_key_exists('panel', $node_export_omitted) && !$node_export_omitted['panel'])) {
+      drupal_set_message(t("NOTE: in order to import panel_nodes you must first set the export.module settings to \"Save as a new node then edit\", otherwise it won't work."));
+    }
+    $display = panels_load_display($node->panels_node['did']);
+    $export = panels_export_display($display);
+    $node->export_display = $export;
+  }
+}
+
+/**
+ * Implementation of hook_panels_dashboard_blocks().
+ *
+ * Adds panel nodes information to the Panels dashboard.
+ */
+function panels_node_panels_dashboard_blocks(&$vars) {
+  $vars['links']['panels_node'] = array(
+    'title' => l(t('Panel node'), 'node/add/panel'),
+    'description' => t('Panel nodes are node content and appear in your searches, but are more limited than panel pages.'),
+    'weight' => -1,
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/panels_node/plugins/panels_storage/panels_node.inc b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/plugins/panels_storage/panels_node.inc
new file mode 100644
index 0000000..a7a7a3b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/panels_node/plugins/panels_storage/panels_node.inc
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * @file
+ * Provides a panels_storage plugin for panels node.
+ */
+
+// Plugin definition
+$plugin = array(
+  'access callback' => 'panels_node_panels_storage_access',
+);
+
+/**
+ * Access callback for panels storage.
+ */
+function panels_node_panels_storage_access($storage_type, $storage_id, $op, $account) {
+  if ($node = node_load($storage_id)) {
+    if ($op == 'read') {
+      $op = 'view';
+    }
+    return node_access($op, $node, $account);
+  }
+
+  return FALSE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/cache/simple.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/cache/simple.inc
new file mode 100644
index 0000000..7043eb5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/cache/simple.inc
@@ -0,0 +1,149 @@
+<?php
+
+/**
+ * @file
+ * Provides a simple time-based caching option for panel panes.
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t("Simple cache"),
+  'description' => t('Simple caching is a time-based cache. This is a hard limit, and once cached it will remain that way until the time limit expires.'),
+  'cache get' => 'panels_simple_cache_get_cache',
+  'cache set' => 'panels_simple_cache_set_cache',
+  'cache clear' => 'panels_simple_cache_clear_cache',
+  'settings form' => 'panels_simple_cache_settings_form',
+  'settings form submit' => 'panels_simple_cache_settings_form_submit',
+  'defaults' => array(
+    'lifetime' => 15,
+    'granularity' => 'none',
+  ),
+);
+
+/**
+ * Get cached content.
+ */
+function panels_simple_cache_get_cache($conf, $display, $args, $contexts, $pane = NULL) {
+  $cid = panels_simple_cache_get_id($conf, $display, $args, $contexts, $pane);
+  $cache = cache_get($cid, 'cache_panels');
+  if (!$cache) {
+    return FALSE;
+  }
+
+  if ((time() - $cache->created) > $conf['lifetime']) {
+    return FALSE;
+  }
+
+  return $cache->data;
+}
+
+/**
+ * Set cached content.
+ */
+function panels_simple_cache_set_cache($conf, $content, $display, $args, $contexts, $pane = NULL) {
+  $cid = panels_simple_cache_get_id($conf, $display, $args, $contexts, $pane);
+  cache_set($cid, $content, 'cache_panels');
+}
+
+/**
+ * Clear cached content.
+ *
+ * Cache clears are always for an entire display, regardless of arguments.
+ */
+function panels_simple_cache_clear_cache($display) {
+  $cid = 'panels_simple_cache';
+
+  // This is used in case this is an in-code display, which means did will be something like 'new-1'.
+  if (isset($display->owner) && isset($display->owner->id)) {
+    $cid .= ':' . $display->owner->id;
+  }
+  $cid .= ':' . $display->did;
+
+  cache_clear_all($cid, 'cache_panels', TRUE);
+}
+
+/**
+ * Figure out an id for our cache based upon input and settings.
+ */
+function panels_simple_cache_get_id($conf, $display, $args, $contexts, $pane) {
+  $id = 'panels_simple_cache';
+
+  // If the panel is stored in the database it'll have a numeric did value.
+  if (is_numeric($display->did)) {
+    $id .= ':' . $display->did;
+  }
+  // Exported panels won't have a numeric did but may have a usable cache_key.
+  elseif (!empty($display->cache_key)) {
+    $id .= ':' . str_replace('panel_context:', '', $display->cache_key);
+  }
+  // Alternatively use the css_id.
+  elseif (!empty($display->css_id)) {
+    $id .= ':' . $display->css_id;
+  }
+  // Failover to just appending the did, which may be the completely unusable
+  // string 'new'.
+  else {
+    $id .= ':' . $display->did;
+  }
+
+  if ($pane) {
+    $id .= ':' . $pane->pid;
+  }
+
+  if (user_access('view pane admin links')) {
+    $id .= ':admin';
+  }
+
+  switch ($conf['granularity']) {
+    case 'args':
+      foreach ($args as $arg) {
+        $id .= ':' . $arg;
+      }
+      break;
+
+    case 'context':
+      if (!is_array($contexts)) {
+        $contexts = array($contexts);
+      }
+      foreach ($contexts as $context) {
+        if (isset($context->argument)) {
+          $id .= ':' . $context->argument;
+        }
+      }
+  }
+  if (module_exists('locale')) {
+    global $language;
+    $id .= ':' . $language->language;
+  }
+  
+  if (!empty($pane->configuration['use_pager']) && !empty($_GET['page'])) {
+    $id .= ':p' . check_plain($_GET['page']);
+  }
+  
+  return $id;
+}
+
+function panels_simple_cache_settings_form($conf, $display, $pid) {
+  $options = drupal_map_assoc(array(15, 30, 60, 120, 180, 240, 300, 600, 900, 1200, 1800, 3600, 7200, 14400, 28800, 43200, 86400, 172800, 259200, 345600, 604800), 'format_interval');
+  $form['lifetime'] = array(
+    '#title' => t('Lifetime'),
+    '#type' => 'select',
+    '#options' => $options,
+    '#default_value' => $conf['lifetime'],
+  );
+
+  $form['granularity'] = array(
+    '#title' => t('Granularity'),
+    '#type' => 'select',
+    '#options' => array(
+      'args' => t('Arguments'),
+      'context' => t('Context'),
+      'none' => t('None'),
+    ),
+    '#description' => t('If "arguments" are selected, this content will be cached per individual argument to the entire display; if "contexts" are selected, this content will be cached per unique context in the pane or display; if "neither" there will be only one cache for this pane.'),
+    '#default_value' => $conf['granularity'],
+  );
+
+  return $form;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/editor.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/editor.inc
new file mode 100644
index 0000000..501b7b8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/editor.inc
@@ -0,0 +1,8 @@
+<?php
+
+$plugin = array(
+  'handler' => array(
+    'class' => 'panels_renderer_editor',
+    'parent' => 'standard',
+  ),
+);
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/legacy.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/legacy.inc
new file mode 100644
index 0000000..2082105
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/legacy.inc
@@ -0,0 +1,7 @@
+<?php
+
+$plugin = array(
+  'handler' => array(
+    'class' => 'panels_renderer_legacy',
+  ),
+);
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_editor.class.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_editor.class.php
new file mode 100644
index 0000000..5e0fc23
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_editor.class.php
@@ -0,0 +1,1936 @@
+<?php
+
+/**
+ * @file
+ * Class file to control the main Panels editor.
+ */
+
+class panels_renderer_editor extends panels_renderer_standard {
+
+  /**
+   * An array of AJAX commands to return. If populated it will automatically
+   * be used by the AJAX router.
+   */
+  var $commands = array();
+  var $admin = TRUE;
+  // -------------------------------------------------------------------------
+  // Display edit rendering.
+
+  function edit() {
+    ctools_include('form');
+    $form_state = array(
+      'display' => &$this->display,
+      'renderer' => &$this,
+      'content_types' => $this->cache->content_types,
+      're_render' => FALSE,
+      'no_redirect' => TRUE,
+      'display_title' => !empty($this->cache->display_title),
+      'cache key' => $this->display->cache_key,
+    );
+
+    $output = ctools_build_form('panels_edit_display_form', $form_state);
+    if ($output) {
+      return $output;
+    }
+
+    // no output == submit
+    if (!$output) {
+      if (!empty($form_state['clicked_button']['#save-display'])) {
+        drupal_set_message(t('Panel content has been updated.'));
+        panels_save_display($this->display);
+      }
+      else {
+        drupal_set_message(t('Your changes have been discarded.'));
+      }
+
+      panels_cache_clear('display', $this->display->did);
+      return $this->display;
+    }
+  }
+
+  function add_meta() {
+    parent::add_meta();
+    if ($this->admin) {
+      ctools_include('ajax');
+      ctools_include('modal');
+      ctools_modal_add_js();
+
+      ctools_add_js('panels-base', 'panels');
+      ctools_add_js('display_editor', 'panels');
+      ctools_add_css('panels_dnd', 'panels');
+      ctools_add_css('panels_admin', 'panels');
+    }
+  }
+
+  function render() {
+    // Pass through to normal rendering if not in admin mode.
+    if (!$this->admin) {
+      return parent::render();
+    }
+
+    $this->add_meta();
+
+    $output = '<div class="panels-dnd" id="panels-dnd-main">';
+    $output .= $this->render_layout();
+    $output .= '</div>';
+
+    return $output;
+  }
+
+  function render_region($region_id, $panes) {
+    // Pass through to normal rendering if not in admin mode.
+    if (!$this->admin) {
+      return parent::render_region($region_id, $panes);
+    }
+
+    $content = implode('', $panes);
+
+    $panel_buttons = $this->get_region_links($region_id);
+
+    // @todo this should be panel-region not panels-display -- but CSS and .js has to be updated.
+    $output = "<div class='panels-display' id='panel-pane-$region_id'>";
+    $output .= $panel_buttons;
+    $output .= "<h2 class='label'>" . check_plain($this->plugins['layout']['panels'][$region_id]) . "</h2>";
+    $output .= $content;
+    $output .= "</div>";
+
+    return $output;
+  }
+
+  function render_pane(&$pane) {
+    // Pass through to normal rendering if not in admin mode.
+    if (!$this->admin) {
+      return parent::render_pane($pane);
+    }
+
+    ctools_include('content');
+    $content_type = ctools_get_content_type($pane->type);
+
+    // This is just used for the title bar of the pane, not the content itself.
+    // If we know the content type, use the appropriate title for that type,
+    // otherwise, set the title using the content itself.
+    $title = ctools_content_admin_title($content_type, $pane->subtype, $pane->configuration, $this->display->context);
+    if (!$title) {
+      $title = t('Deleted/missing content type @type', array('@type' => $pane->type));
+    }
+
+    $buttons = $this->get_pane_links($pane, $content_type);
+
+    // Render administrative buttons for the pane.
+
+    $block = new stdClass();
+    if (empty($content_type)) {
+      $block->title = '<em>' . t('Missing content type') . '</em>';
+      $block->content = t('This pane\'s content type is either missing or has been deleted. This pane will not render.');
+    }
+    else {
+      $block = ctools_content_admin_info($content_type, $pane->subtype, $pane->configuration, $this->display->context);
+    }
+
+    $output = '';
+    $class = 'panel-pane';
+
+    if (empty($pane->shown)) {
+      $class .= ' hidden-pane';
+    }
+
+    if (isset($this->display->title_pane) && $this->display->title_pane == $pane->pid) {
+      $class .= ' panel-pane-is-title';
+    }
+
+    $output = '<div class="' . $class . '" id="panel-pane-' . $pane->pid . '">';
+
+    if (!$block->title) {
+      $block->title = t('No title');
+    }
+
+    $output .= '<div class="grabber">';
+    if ($buttons) {
+      $output .= '<span class="buttons">' . $buttons . '</span>';
+    }
+    $output .= '<span class="text">' . $title . '</span>';
+    $output .= '</div>'; // grabber
+
+    $output .= '<div class="panel-pane-collapsible">';
+    $output .= '<div class="pane-title">' . $block->title . '</div>';
+    $output .= '<div class="pane-content">' . filter_xss_admin($block->content) . '</div>';
+    $output .= '</div>'; // panel-pane-collapsible
+
+    $output .= '</div>'; // panel-pane
+
+    return $output;
+  }
+
+  /**
+   * Get the style links.
+   *
+   * This is abstracted out since we have styles on both panes and regions.
+   */
+  function get_style_links($type, $id = NULL) {
+    $info = $this->get_style($type, $id);
+    $style = $info[0];
+    $conf = $info[1];
+
+    $style_title = isset($style['title']) ? $style['title'] : t('Default');
+
+    $style_links[] = array(
+      'title' => $style_title,
+      'attributes' => array('class' => 'panels-text'),
+    );
+
+    $style_links[] = array(
+      'title' => t('Change'),
+      'href' => $this->get_url('style-type', $type, $id),
+      'attributes' => array('class' => 'ctools-use-modal'),
+    );
+
+    $function = $type != 'pane' ? 'settings form' : 'pane settings form';
+    if (panels_plugin_get_function('styles', $style, $function)) {
+      $style_links[] = array(
+        'title' => t('Settings'),
+        'href' => $this->get_url('style-settings', $type, $id),
+        'attributes' => array('class' => 'ctools-use-modal'),
+      );
+    }
+
+    return $style_links;
+  }
+
+  /**
+   * Get the links for a panel display.
+   *
+   * This is abstracted out for easy ajax replacement.
+   */
+  function get_display_links() {
+    $links = array();
+
+    if (user_access('administer panels styles')) {
+      $style_links = $this->get_style_links('display');
+
+      $links[] = array(
+        'title' => '<span class="dropdown-header">' . t('Style') . '</span>' . theme_links($style_links),
+        'html' => TRUE,
+        'attributes' => array('class' => 'panels-sub-menu'),
+      );
+    }
+
+    if (user_access('use panels caching features')) {
+      $links[] = array(
+        'title' => '<hr />',
+        'html' => TRUE,
+      );
+
+      $method = isset($this->display->cache['method']) ? $this->display->cache['method'] : 0;
+      $info = panels_get_cache($method);
+      $cache_method = isset($info['title']) ? $info['title'] : t('No caching');
+
+      $cache_links[] = array(
+        'title' => $cache_method,
+        'attributes' => array('class' => 'panels-text'),
+      );
+      $cache_links[] = array(
+        'title' => t('Change'),
+        'href' => $this->get_url('cache-method', 'display'),
+        'attributes' => array('class' => 'ctools-use-modal'),
+      );
+      if (panels_plugin_get_function('cache', $info, 'settings form')) {
+        $cache_links[] = array(
+          'title' => t('Settings'),
+          'href' => $this->get_url('cache-settings', 'display'),
+          'attributes' => array('class' => 'ctools-use-modal'),
+        );
+      }
+
+      $links[] = array(
+        'title' => '<span class="dropdown-header">' . t('Caching') . '</span>' . theme_links($cache_links),
+        'html' => TRUE,
+        'attributes' => array('class' => 'panels-sub-menu'),
+      );
+    }
+
+    return theme('ctools_dropdown', t('Display settings'), $links, FALSE, 'panels-display-links');
+  }
+
+  /**
+   * Render the links to display when editing a region.
+   */
+  function get_region_links($region_id) {
+    $links = array();
+    $links[] = array(
+      'title' => t('Add content'),
+      'href' => $this->get_url('select-content', $region_id),
+      'attributes' => array(
+        'class' => 'ctools-use-modal',
+      ),
+    );
+
+    if (user_access('administer panels styles')) {
+      $links[] = array(
+        'title' => '<hr />',
+        'html' => TRUE,
+      );
+
+      $style_links = $this->get_style_links('region', $region_id);
+
+      $links[] = array(
+        'title' => '<span class="dropdown-header">' . t('Style') . '</span>' . theme_links($style_links),
+        'html' => TRUE,
+        'attributes' => array('class' => 'panels-sub-menu'),
+      );
+    }
+
+    return theme('ctools_dropdown', theme('image', ctools_image_path('icon-addcontent.png', 'panels')), $links, TRUE, 'pane-add-link panels-region-links-' . $region_id);
+  }
+
+  /**
+   * Render the links to display when editing a pane.
+   */
+  function get_pane_links($pane, $content_type) {
+    $links = array();
+
+    if (!empty($pane->shown)) {
+      $links[] = array(
+        'title' => t('Disable this pane'),
+        'href' => $this->get_url('hide', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-ajax'),
+      );
+    }
+    else {
+      $links[] = array(
+        'title' => t('Enable this pane'),
+        'href' => $this->get_url('show', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-ajax'),
+      );
+    }
+
+    if (isset($this->display->title_pane) && $this->display->title_pane == $pane->pid) {
+      $links['panels-set-title'] = array(
+        'title' => t('&#x2713;Panel title'),
+        'html' => TRUE,
+      );
+    }
+    else {
+      $links['panels-set-title'] = array(
+        'title' => t('Panel title'),
+        'href' => $this->get_url('panel-title', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-ajax'),
+      );
+    }
+
+    $subtype = ctools_content_get_subtype($content_type, $pane->subtype);
+
+    if (ctools_content_editable($content_type, $subtype, $pane->configuration)) {
+      $links[] = array(
+        'title' => isset($content_type['edit text']) ? $content_type['edit text'] : t('Settings'),
+        'href' => $this->get_url('edit-pane', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-modal'),
+      );
+    }
+
+    if (user_access('administer advanced pane settings')) {
+      $links[] = array(
+        'title' => t('CSS properties'),
+        'href' => $this->get_url('pane-css', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-modal'),
+      );
+    }
+
+    if (user_access('administer panels styles')) {
+      $links[] = array(
+        'title' => '<hr />',
+        'html' => TRUE,
+      );
+
+      $style_links = $this->get_style_links('pane', $pane->pid);
+
+      $links[] = array(
+        'title' => '<span class="dropdown-header">' . t('Style') . '</span>' . theme_links($style_links),
+        'html' => TRUE,
+        'attributes' => array('class' => 'panels-sub-menu'),
+      );
+    }
+
+    if (user_access('administer pane access')) {
+      $links[] = array(
+        'title' => '<hr />',
+        'html' => TRUE,
+      );
+
+      $contexts = $this->display->context;
+      // Make sure we have the logged in user context
+      if (!isset($contexts['logged-in-user'])) {
+        $contexts['logged-in-user'] = ctools_access_get_loggedin_context();
+      }
+
+      $visibility_links = array();
+
+      if (!empty($pane->access['plugins'])) {
+        foreach ($pane->access['plugins'] as $id => $test) {
+          $plugin = ctools_get_access_plugin($test['name']);
+          $access_title  = isset($plugin['title']) ? $plugin['title'] : t('Broken/missing access plugin %plugin', array('%plugin' => $test['name']));
+          $access_description = ctools_access_summary($plugin, $contexts, $test);
+
+          $visibility_links[] = array(
+            'title' => $access_description,
+            'href' => $this->get_url('access-configure-test', $pane->pid, $id),
+            'attributes' => array('class' => 'ctools-use-modal panels-italic'),
+          );
+        }
+      }
+      if (empty($visibility_links)) {
+        $visibility_links[] = array(
+          'title' => t('No rules'),
+          'attributes' => array('class' => 'panels-text'),
+        );
+      }
+
+      $visibility_links[] = array(
+        'title' => t('Add new rule'),
+        'href' => $this->get_url('access-add-test', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-modal'),
+      );
+
+      $visibility_links[] = array(
+        'title' => t('Settings'),
+        'href' => $this->get_url('access-settings', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-modal'),
+      );
+
+      $links[] = array(
+        'title' => '<span class="dropdown-header">' . t('Visibility rules') . '</span>' . theme_links($visibility_links),
+        'html' => TRUE,
+        'attributes' => array('class' => 'panels-sub-menu'),
+      );
+    }
+
+    if (panels_get_caches() && user_access('use panels caching features')) {
+      $links[] = array(
+        'title' => '<hr />',
+        'html' => TRUE,
+      );
+
+      $method = isset($pane->cache['method']) ? $pane->cache['method'] : 0;
+      $info = panels_get_cache($method);
+      $cache_method = isset($info['title']) ? $info['title'] : t('No caching');
+      $cache_links[] = array(
+        'title' => $cache_method,
+        'attributes' => array('class' => 'panels-text'),
+      );
+      $cache_links[] = array(
+        'title' => t('Change'),
+        'href' => $this->get_url('cache-method', $pane->pid),
+        'attributes' => array('class' => 'ctools-use-modal'),
+      );
+      if (panels_plugin_get_function('cache', $info, 'settings form')) {
+        $cache_links[] = array(
+          'title' => t('Settings'),
+          'href' => $this->get_url('cache-settings', $pane->pid),
+          'attributes' => array('class' => 'ctools-use-modal'),
+        );
+      }
+
+      $links[] = array(
+        'title' => '<span class="dropdown-header">' . t('Caching') . '</span>' . theme_links($cache_links),
+        'html' => TRUE,
+        'attributes' => array('class' => 'panels-sub-menu'),
+      );
+    }
+
+    $links[] = array(
+      'title' => '<hr />',
+      'html' => TRUE,
+    );
+
+    $links[] = array(
+      'title' => t('Remove'),
+      'href' => '#',
+      'attributes' => array(
+        'class' => 'pane-delete',
+        'id' => "pane-delete-panel-pane-$pane->pid",
+      ),
+    );
+
+    return theme('ctools_dropdown', theme('image', ctools_image_path('icon-configure.png', 'panels')), $links, TRUE);
+  }
+
+  // -----------------------------------------------------------------------
+  // Display edit AJAX callbacks and helpers.
+
+  /**
+   * Generate a URL path for the AJAX editor.
+   */
+  function get_url() {
+    $args = func_get_args();
+    $command = array_shift($args);
+    $url = 'panels/ajax/' . $this->plugin['name'] . '/' . $command . '/' . $this->display->cache_key;
+    if ($args) {
+      $url .= '/' . implode('/', $args);
+    }
+
+    return $url;
+  }
+
+  /**
+   * Get the Panels storage oparation for a given renderer AJAX method.
+   *
+   * @param string $method
+   *   The method name.
+   *
+   * @return string
+   *   The Panels storage op.
+   */
+  function get_panels_storage_op_for_ajax($method) {
+    switch ($method) {
+      case 'ajax_show':
+      case 'ajax_hide':
+      case 'ajax_select_content':
+      case 'ajax_add_pane':
+      case 'ajax_edit_pane':
+      case 'ajax_panel_title':
+      case 'ajax_cache_method':
+      case 'ajax_cache_settings':
+      case 'ajax_style_type':
+      case 'ajax_style_settings':
+      case 'ajax_pane_css':
+      case 'ajax_lock':
+      case 'ajax_access_settings':
+      case 'ajax_access_add_test':
+      case 'ajax_access_configure_test':
+      case 'ajax_layout':
+      case 'ajax_style':
+        return 'update';
+    }
+
+    return parent::get_panels_storage_op($method);
+  }
+
+  /**
+   * AJAX command to show a pane.
+   */
+  function ajax_show($pid = NULL) {
+    if (empty($this->display->content[$pid])) {
+      ctools_ajax_render_error(t('Invalid pane id.'));
+    }
+
+    $this->display->content[$pid]->shown = TRUE;
+    panels_edit_cache_set($this->cache);
+
+    $this->command_update_pane($pid);
+  }
+
+  /**
+   * AJAX command to show a pane.
+   */
+  function ajax_hide($pid = NULL) {
+    if (empty($this->display->content[$pid])) {
+      ctools_ajax_render_error(t('Invalid pane id.'));
+    }
+
+    $this->display->content[$pid]->shown = FALSE;
+    panels_edit_cache_set($this->cache);
+
+    $this->command_update_pane($pid);
+  }
+
+  /**
+   * AJAX command to present a dialog with a list of available content.
+   */
+  function ajax_select_content($region = NULL, $category = NULL) {
+    if (!array_key_exists($region, $this->plugins['layout']['panels'])) {
+      ctools_modal_render(t('Error'), t('Invalid input'));
+    }
+
+    $title = t('Add content to !s', array('!s' => $this->plugins['layout']['panels'][$region]));
+
+    $categories = $this->get_categories($this->cache->content_types);
+
+    if (empty($categories)) {
+      $output = t('There are no content types you may add to this display.');
+    }
+    else {
+      $output = '<div class="panels-add-content-modal">';
+      $selector = $this->render_category_selector($categories, $category, $region);
+
+      $content = !empty($categories[$category]['content']) ? $categories[$category]['content'] : array();
+      $center = $this->render_category($content, $category, $region);
+
+      $output .= '<div class="panels-section-column panels-section-column-categories">'
+        . '<div class="inside">' . $selector . '</div></div>';
+      $output .= $center;
+      $output .= '</div>'; // panels-add-content-modal
+    }
+
+    $this->commands[] = ctools_modal_command_display($title, $output);
+  }
+
+  /**
+   * Return the category name and the category key of a given content
+   * type.
+   *
+   * @todo -- this should be in CTools.
+   */
+  function get_category($content_type) {
+    if (isset($content_type['top level'])) {
+      $category = 'root';
+    }
+    else if (isset($content_type['category'])) {
+      if (is_array($content_type['category'])) {
+        list($category, $weight) = $content_type['category'];
+      }
+      else {
+        $category = $content_type['category'];
+      }
+    }
+    else {
+      $category = t('Uncategorized');
+    }
+
+    return array(preg_replace('/[^a-z0-9]/', '-', strtolower($category)), $category);
+  }
+
+
+  /**
+   * Create a list of categories from all of the content type.
+   *
+   * @return array
+   *   An array of categories. Each entry in the array will also be an array
+   *   with 'title' as the printable title of the category, and 'content'
+   *   being an array of all content in the category. Each item in the 'content'
+   *   array contain the array plugin definition so that it can be later
+   *   found in the content array. They will be keyed by the title so that they
+   *   can be sorted.
+   */
+  function get_categories($content_types) {
+    $categories = array();
+    $category_names = array();
+
+    foreach ($content_types as $type_name => $subtypes) {
+      foreach ($subtypes as $subtype_name => $content_type) {
+        list($category_key, $category) = $this->get_category($content_type);
+
+        if (empty($categories[$category_key])) {
+          $categories[$category_key] = array(
+            'title' => $category,
+            'content' => array(),
+          );
+          $category_names[$category_key] = $category;
+        }
+
+        $content_title = filter_xss_admin($content_type['title']);
+
+        // Ensure content with the same title doesn't overwrite each other.
+        while (isset($categories[$category_key]['content'][$content_title])) {
+          $content_title .= '-';
+        }
+
+        $categories[$category_key]['content'][$content_title] = $content_type;
+        $categories[$category_key]['content'][$content_title]['type_name'] = $type_name;
+        $categories[$category_key]['content'][$content_title]['subtype_name'] = $subtype_name;
+      }
+    }
+
+    // Now sort
+    natcasesort($category_names);
+    foreach ($category_names as $category => $name) {
+      $output[$category] = $categories[$category];
+    }
+
+    return $output;
+  }
+
+  /**
+   * Render a single link to add a content type.
+   */
+  function render_add_content_link($region, $content_type) {
+    $title = filter_xss_admin($content_type['title']);
+    $description = isset($content_type['description']) ? $content_type['description'] : $title;
+    $icon = ctools_content_admin_icon($content_type);
+    $url = $this->get_url('add-pane', $region, $content_type['type_name'], $content_type['subtype_name']);
+
+    $output = '<div class="content-type-button clear-block">';
+    $output .= ctools_ajax_image_button($icon, $url, $description, 'panels-modal-add-config');
+    $output .= '<div>' . ctools_ajax_text_button($title, $url, $description, 'panels-modal-add-config') . '</div>';
+    $output .= '</div>';
+
+    return $output;
+  }
+
+  /**
+   * Render the selector widget in the add content modal to select categories.
+   */
+  function render_category_selector($categories, $category, $region) {
+    $output = '<div class="panels-categories-box">';
+
+    // Render our list of categories in column 0.
+    foreach ($categories as $key => $category_info) {
+      if ($key == 'root') {
+        continue;
+      }
+
+      $class = 'panels-modal-add-category';
+      if ($key == $category) {
+        $class .= ' active';
+      }
+
+      $url = $this->get_url('select-content', $region, $key);
+      $output .= ctools_ajax_text_button($category_info['title'], $url, '', $class);
+    }
+
+    $output .= '</div>'; // panels-categories-box
+
+    if (!empty($categories['root'])) {
+      foreach ($categories['root']['content'] as $content_type) {
+        $output .= $this->render_add_content_link($region, $content_type);
+      }
+    }
+
+    return $output;
+  }
+
+  /**
+   * Render all of the content links in a category.
+   */
+  function render_category($content, $category, $region) {
+    if (empty($category) || empty($content) || $category == 'root') {
+      $output = '<div class="panels-categories-description">';
+      $output .= t('Content options are divided by category. Please select a category from the left to proceed.');
+      $output .= '</div>';
+    }
+    else {
+      $titles = array_keys($content);
+      natcasesort($titles);
+
+      // Fill out the info for our current category.
+      $columns = 2;
+      $col[1] = '';
+      $col[2] = '';
+
+      $col_size = count($titles) / $columns;
+      $count = 0;
+      foreach ($titles as $title) {
+        $which = floor($count++ / $col_size) + 1; // we leave 0 for the categories.
+        $col[$which] .= $this->render_add_content_link($region, $content[$title]);
+      }
+
+      $output = '<div class="panels-section-columns">';
+      foreach ($col as $id => $column) {
+        $output .= '<div class="panels-section-column panels-section-column-' . $id . '">'
+        . '<div class="inside">' . $column . '</div></div>';
+      }
+      $output .= '</div>'; // columns
+    }
+
+    if ($messages = theme('status_messages')) {
+      $output = '<div class="messages">' . $messages . '</div>' . $output;
+    }
+    return $output;
+  }
+
+  /**
+   * AJAX entry point to add a new pane.
+   */
+  function ajax_add_pane($region = NULL, $type_name = NULL, $subtype_name = NULL, $step = NULL) {
+    $content_type = ctools_get_content_type($type_name);
+    $subtype = ctools_content_get_subtype($content_type, $subtype_name);
+
+    if (!isset($step) || !isset($this->cache->new_pane)) {
+      $pane = panels_new_pane($type_name, $subtype_name, TRUE);
+      $this->cache->new_pane = &$pane;
+    }
+    else {
+      $pane = &$this->cache->new_pane;
+    }
+
+    $form_state = array(
+      'display' => &$this->cache->display,
+      'contexts' => $this->cache->display->context,
+      'pane' => &$pane,
+      'cache_key' => $this->display->cache_key,
+      'cache' => &$this->cache,
+      'ajax' => TRUE,
+      'modal' => TRUE,
+      // This will force the system to not automatically render.
+      'modal return' => TRUE,
+      'commands' => array(),
+    );
+
+    $form_info = array(
+      'path' => $this->get_url('add-pane', $region, $type_name, $subtype_name, '%step'),
+      'show cancel' => TRUE,
+      'next callback' => 'panels_ajax_edit_pane_next',
+      'finish callback' => 'panels_ajax_edit_pane_finish',
+      'cancel callback' => 'panels_ajax_edit_pane_cancel',
+    );
+
+    $output = ctools_content_form('add', $form_info, $form_state, $content_type, $pane->subtype, $subtype, $pane->configuration, $step);
+
+    // If $rc is FALSE, there was no actual form.
+    if ($output === FALSE || !empty($form_state['complete'])) {
+      $pane = $this->cache->new_pane;
+      unset($this->cache->new_pane);
+
+      // Add the pane to the display
+      $this->display->add_pane($pane, $region);
+      panels_edit_cache_set($this->cache);
+
+      // Tell the client to draw the pane
+      $this->command_add_pane($pane);
+
+      // Dismiss the modal.
+      $this->commands[] = ctools_modal_command_dismiss();
+    }
+    else if (!empty($form_state['cancel'])) {
+      // If cancelling, return to the activity.
+      list($category_key, $category) = $this->get_category($subtype);
+      $this->ajax_select_content($region, $category_key);
+    }
+    else {
+      // This overwrites any previous commands.
+      $this->commands = ctools_modal_form_render($form_state, $output);
+    }
+  }
+
+  /**
+   * AJAX entry point to edit a pane.
+   */
+  function ajax_edit_pane($pid = NULL, $step = NULL) {
+    if (empty($this->cache->display->content[$pid])) {
+      ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+
+    $pane = &$this->cache->display->content[$pid];
+
+    $content_type = ctools_get_content_type($pane->type);
+    $subtype = ctools_content_get_subtype($content_type, $pane->subtype);
+
+    $form_state = array(
+      'display' => &$this->cache->display,
+      'contexts' => $this->cache->display->context,
+      'pane' => &$pane,
+      'cache' => &$this->cache,
+      'ajax' => TRUE,
+      'modal' => TRUE,
+      'modal return' => TRUE,
+      'commands' => array(),
+    );
+
+    $form_info = array(
+      'path' => $this->get_url('edit-pane', $pid, '%step'),
+      'show cancel' => TRUE,
+      'next callback' => 'panels_ajax_edit_pane_next',
+      'finish callback' => 'panels_ajax_edit_pane_finish',
+      'cancel callback' => 'panels_ajax_edit_pane_cancel',
+    );
+
+    $output = ctools_content_form('edit', $form_info, $form_state, $content_type, $pane->subtype,  $subtype, $pane->configuration, $step);
+
+    // If $rc is FALSE, there was no actual form.
+    if ($output === FALSE || !empty($form_state['cancel'])) {
+      // Dismiss the modal.
+      $this->commands[] = ctools_modal_command_dismiss();
+    }
+    else if (!empty($form_state['complete'])) {
+      panels_edit_cache_set($this->cache);
+      $this->command_update_pane($pid);
+      $this->commands[] = ctools_modal_command_dismiss();
+    }
+    else {
+      // This overwrites any previous commands.
+      $this->commands = ctools_modal_form_render($form_state, $output);
+    }
+  }
+
+  /**
+   * AJAX entry point to select which pane is currently the title.
+   *
+   * @param string $pid
+   *   The pane id for the pane object whose title state we're setting.
+   */
+  function ajax_panel_title($pid = NULL) {
+    if (empty($this->display->content[$pid])) {
+      ctools_ajax_render_error(t('Invalid pane id.'));
+    }
+
+    $pane = &$this->display->content[$pid];
+
+    $old_title = !empty($this->display->title_pane) ? $this->display->title_pane : NULL;
+    $this->display->title_pane = $pid;
+
+    panels_edit_cache_set($this->cache);
+
+    $this->command_update_pane($pane);
+
+    if ($old_title && !empty($this->cache->display->content[$old_title])) {
+      $this->command_update_pane($this->cache->display->content[$old_title]);
+    }
+  }
+
+  /**
+   * AJAX entry point to configure the cache method for a pane or the display.
+   *
+   * @param string $pid
+   *   Either a pane id for a pane in the display, or 'display' to edit the
+   *   display cache settings.
+   */
+  function ajax_cache_method($pid = NULL) {
+    ctools_include('content');
+    // This lets us choose whether we're doing the display's cache or
+    // a pane's.
+    if ($pid == 'display') {
+      $conf = &$this->display->cache;
+      $title = t('Cache method for this display');
+    }
+    else if (!empty($this->display->content[$pid])) {
+      $pane = &$this->display->content[$pid];
+      $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+      $conf = &$pane->cache;
+      $title = t('Cache method for !subtype_title', array('!subtype_title' => $subtype['title']));
+    }
+    else {
+      ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+
+    $form_state = array(
+      'display' => &$this->display,
+      'conf' => &$conf,
+      'title' => $title,
+      'ajax' => TRUE,
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_cache_method_form', $form_state);
+    if (!empty($output)) {
+      $this->commands = $output;
+      return;
+    }
+
+    // Preserve this; this way we don't actually change the method until they
+    // have saved the form.
+    $info = panels_get_cache($form_state['method']);
+    $function = panels_plugin_get_function('cache', $info, 'settings form');
+    if (!$function) {
+      $conf['method'] = $form_state['method'];
+      $conf['settings'] = array();
+      panels_edit_cache_set($this->cache);
+
+      $this->commands[] = ctools_modal_command_dismiss();
+
+      if ($pid != 'display') {
+        $this->command_update_pane($pane);
+      }
+      else {
+        $this->command_update_display_links();
+      }
+    }
+    else {
+      $this->cache->method = $form_state['method'];
+      panels_edit_cache_set($this->cache);
+      // send them to next form.
+      return $this->ajax_cache_settings($pid);
+    }
+  }
+
+  /**
+   * AJAX entry point to configure the cache settings for a pane or the display.
+   *
+   * @param string $pid
+   *   Either a pane id for a pane in the display, or 'display' to edit the
+   *   display cache settings.
+   */
+  function ajax_cache_settings($pid = 0) {
+    ctools_include('content');
+
+    // This lets us choose whether we're doing the display's cache or
+    // a pane's.
+    if ($pid == 'display') {
+      $conf = &$this->display->cache;
+      $title = t('Cache settings for this display');
+    }
+    else if (!empty($this->display->content[$pid])) {
+      $pane = &$this->display->content[$pid];
+      $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+
+      $conf = &$pane->cache;
+      $title = t('Cache settings for !subtype_title', array('!subtype_title' => $subtype['title']));
+    }
+    else {
+      ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+
+    if (isset($this->cache->method) && (empty($conf['method']) || $conf['method'] != $this->cache->method)) {
+      $conf['method'] = $this->cache->method;
+      $info = panels_get_cache($conf['method']);
+      $conf['settings'] = isset($info['defaults']) ? $info['defaults'] : array();
+    }
+
+    $form_state = array(
+      'display' => &$this->display,
+      'pid' => $pid,
+      'conf' => &$conf,
+      'ajax' => TRUE,
+      'title' => $title,
+      'url' => url($this->get_url('cache-settings', $pid), array('absolute' => TRUE)),
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_cache_settings_form', $form_state);
+    if (!empty($output)) {
+      $this->commands = $output;
+      return;
+    }
+
+    panels_edit_cache_set($this->cache);
+
+    $this->commands[] = ctools_modal_command_dismiss();
+
+    if ($pid != 'display') {
+      $this->command_update_pane($pane);
+    }
+    else {
+      $this->command_update_display_links();
+    }
+  }
+
+  /**
+   * AJAX entry point to select the style for a display, region or pane.
+   *
+   * @param string $type
+   *   Either display, region or pane
+   * @param $pid
+   *   The pane id, if a pane. The region id, if a region.
+   */
+  function ajax_style_type($type, $pid = NULL) {
+    // This lets us choose whether we're doing the display's cache or
+    // a pane's.
+    switch ($type) {
+      case 'display':
+        $style = isset($this->display->panel_settings['style']) ? $this->display->panel_settings['style'] : 'default';
+        $title = t('Default style for this display');
+        break;
+
+      case 'region':
+        $style = isset($this->display->panel_settings[$pid]['style']) ? $this->display->panel_settings[$pid]['style'] : '-1'; // -1 signifies to use the default setting.
+        $title = t('Panel style for region "!region"', array('!region' => $this->plugins['layout']['panels'][$pid]));
+        break;
+
+      case 'pane':
+        ctools_include('content');
+        $pane = &$this->display->content[$pid];
+        $style = isset($pane->style['style']) ? $pane->style['style'] : 'default';
+        $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+        $title = t('Pane style for "!pane"', array('!pane' => $subtype['title']));
+        break;
+
+      default:
+        ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+    $info = $this->get_style($type, $pid);
+    $style_plugin = $info[0];
+    $style_settings = $info[1];
+
+    // Backward compatibility: Translate old-style stylizer to new style
+    // stylizer.
+    if ($style == 'stylizer' && !empty($style_settings['style']) && $style_settings['style'] != '$') {
+      $style = 'stylizer:' . $style_settings['style'];
+    }
+
+    $form_state = array(
+      'display' => &$this->display,
+      'style' => $style,
+      'title' => $title,
+      'ajax' => TRUE,
+      'type' => $type,
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_style_type_form', $form_state);
+    if (!empty($output)) {
+      $this->commands = $output;
+      return;
+    }
+
+    // Preserve this; this way we don't actually change the method until they
+    // have saved the form.
+    $style = panels_get_style($form_state['style']);
+    $function = panels_plugin_get_function('styles', $style, ($type == 'pane') ? 'pane settings form' : 'settings form');
+    if (!$function) {
+      if (isset($this->cache->style)) {
+        unset($this->cache->style);
+      }
+
+      // If there's no settings form, just change the style and exit.
+      switch($type) {
+        case 'display':
+          $this->display->panel_settings['style'] = $form_state['style'];
+          if (isset($this->display->panel_settings['style_settings']['default'])) {
+            unset($this->display->panel_settings['style_settings']['default']);
+          }
+          break;
+
+        case 'region':
+          $this->display->panel_settings[$pid]['style'] = $form_state['style'];
+          if (isset($this->display->panel_settings['style_settings'][$pid])) {
+            unset($this->display->panel_settings['style_settings'][$pid]);
+          }
+          break;
+
+        case 'pane':
+          $pane->style['style'] = $form_state['style'];
+          if (isset($pane->style['settings'])) {
+            unset($pane->style['settings']);
+          }
+
+          break;
+      }
+      panels_edit_cache_set($this->cache);
+
+      $this->commands[] = ctools_modal_command_dismiss();
+
+      if ($type == 'pane') {
+        $this->command_update_pane($pane);
+      }
+      else if ($type == 'region') {
+        $this->command_update_region_links($pid);
+      }
+      else {
+        $this->command_update_display_links();
+      }
+    }
+    else {
+      if ($form_state['style'] != $form_state['old_style']) {
+        $this->cache->style = $form_state['style'];
+        panels_edit_cache_set($this->cache);
+      }
+
+      // send them to next form.
+      return $this->ajax_style_settings($type, $pid);
+    }
+  }
+
+  /**
+   * Get the appropriate style from the panel in the cache.
+   *
+   * Since we have styles for regions, panes and the display itself, and
+   * they are stored differently, we use this method to simplify getting
+   * style information into a way that's easy to cope with.
+   */
+  function get_style($type, $pid = '') {
+    if (isset($this->cache->style)) {
+      $style = panels_get_style($this->cache->style);
+      $defaults = isset($style['defaults']) ? $style['defaults'] : array();
+      // Get the &$conf variable based upon whose style we're editing.
+      switch ($type) {
+        case 'display':
+          $this->display->panel_settings['style'] = $this->cache->style;
+          $this->display->panel_settings['style_settings']['default'] = $defaults;
+          break;
+
+        case 'region':
+          $this->display->panel_settings[$pid]['style'] = $this->cache->style;
+          $this->display->panel_settings['style_settings'][$pid] = $defaults;
+          break;
+
+        case 'pane':
+          $pane = &$this->display->content[$pid];
+          $pane->style['style'] = $this->cache->style;
+          $pane->style['settings'] = $defaults;
+          $conf = &$pane->style['settings'];
+          break;
+      }
+    }
+    else {
+      switch ($type) {
+        case 'display':
+          $style = panels_get_style((!empty($this->display->panel_settings['style'])) ? $this->display->panel_settings['style'] : 'default');
+          break;
+
+        case 'region':
+          $style = panels_get_style((!empty($this->display->panel_settings[$pid]['style'])) ? $this->display->panel_settings[$pid]['style'] : '-1');
+          break;
+
+        case 'pane':
+          $pane = &$this->display->content[$pid];
+          $style = panels_get_style(!empty($pane->style['style']) ? $pane->style['style'] : 'default');
+          break;
+      }
+    }
+
+    // Set up our $conf reference.
+    switch ($type) {
+      case 'display':
+        $conf = &$this->display->panel_settings['style_settings']['default'];
+        break;
+
+      case 'region':
+        $conf = &$this->display->panel_settings['style_settings'][$pid];
+        break;
+
+      case 'pane':
+        ctools_include('content');
+        $pane = &$this->display->content[$pid];
+        $conf = &$pane->style['settings'];
+        break;
+    }
+
+    // Backward compatibility: Translate old-style stylizer to new style
+    // stylizer.
+    if ($style['name'] == 'stylizer' && !empty($conf['style']) && $conf['style'] != '$') {
+      $style = panels_get_style('stylizer:' . $conf['style']);
+    }
+
+    return array($style, &$conf);
+  }
+
+  /**
+   * AJAX entry point to configure the style for a display, region or pane.
+   *
+   * @param string $type
+   *   Either display, region or pane
+   * @param $pid
+   *   The pane id, if a pane. The region id, if a region.
+   */
+  function ajax_style_settings($type, $pid = '') {
+    $info = $this->get_style($type, $pid);
+    $style = $info[0];
+    $conf = &$info[1];
+
+    switch ($type) {
+      case 'display':
+        $title = t('Style settings for @style (display)', array('@style' => $style['title']));
+        break;
+
+      case 'region':
+        $title = t('Style settings for style @style (Region "!region")', array('@style' => $style['title'], '!region' => $this->plugins['layout']['panels'][$pid]));
+        break;
+
+      case 'pane':
+        ctools_include('content');
+        $pane = &$this->display->content[$pid];
+        $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+        $title = t('Style settings for style @style (Pane "!pane")', array('@style' => $style['title'], '!pane' => $subtype['title']));
+        break;
+    }
+
+    $form_state = array(
+      'display' => &$this->display,
+      'type' => $type,
+      'pid' => $pid,
+      'conf' => &$conf,
+      'style' => $style,
+      'ajax' => TRUE,
+      'title' => $title,
+      'url' => url($this->get_url('style-settings', $type, $pid), array('absolute' => TRUE)),
+      'renderer' => &$this,
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_style_settings_form', $form_state);
+    if (!empty($output)) {
+      $this->commands = $output;
+      return;
+    }
+
+    if (isset($this->cache->style)) {
+      unset($this->cache->style);
+    }
+
+    // $conf was a reference so it should just modify.
+    panels_edit_cache_set($this->cache);
+
+    $this->commands[] = ctools_modal_command_dismiss();
+
+    if ($type == 'pane') {
+      $this->command_update_pane($pane);
+    }
+    else if ($type == 'region') {
+      $this->command_update_region_links($pid);
+    }
+    else {
+      $this->command_update_display_links();
+    }
+  }
+
+  /**
+   * AJAX entry point to configure CSS for a pane.
+   *
+   * @param $pid
+   *   The pane id to edit.
+   */
+  function ajax_pane_css($pid = NULL) {
+    if (empty($this->display->content[$pid])) {
+      ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+
+    $pane = &$this->display->content[$pid];
+    $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+
+    $form_state = array(
+      'display' => &$this->display,
+      'pane' => &$pane,
+      'ajax' => TRUE,
+      'title' => t('Configure CSS on !subtype_title', array('!subtype_title' => $subtype['title'])),
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_configure_pane_css_form', $form_state);
+    if (!empty($output)) {
+      $this->commands = $output;
+      return;
+    }
+
+    panels_edit_cache_set($this->cache);
+    $this->command_update_pane($pid);
+    $this->commands[] = ctools_modal_command_dismiss();
+  }
+
+  /**
+   * AJAX entry point to configure access settings for a pane.
+   *
+   * @param $pid
+   *   The pane id to edit.
+   */
+  function ajax_access_settings($pid = NULL) {
+    if (empty($this->display->content[$pid])) {
+      ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+
+    $pane = &$this->display->content[$pid];
+    $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+
+    $form_state = array(
+      'display' => &$this->display,
+      'pane' => &$pane,
+      'ajax' => TRUE,
+      'title' => t('Access settings on !subtype_title', array('!subtype_title' => $subtype['title'])),
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_configure_access_settings_form', $form_state);
+    if (!empty($output)) {
+      $this->commands = $output;
+      return;
+    }
+
+    panels_edit_cache_set($this->cache);
+    $this->command_update_pane($pid);
+    $this->commands[] = ctools_modal_command_dismiss();
+  }
+
+  /**
+   * AJAX entry point for to add a visibility rule.
+   */
+  function ajax_access_add_test($pid = NULL) {
+    if (empty($this->display->content[$pid])) {
+      ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+
+    $pane = &$this->display->content[$pid];
+    $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+
+    $form_state = array(
+      'display' => &$this->display,
+      'pane' => &$pane,
+      'ajax' => TRUE,
+      'title' => t('Add visibility rule for !subtype_title', array('!subtype_title' => $subtype['title'])),
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_add_access_test_form', $form_state);
+    if (empty($output)) {
+      // Set up the plugin in cache
+      $plugin = ctools_get_access_plugin($form_state['values']['type']);
+      $this->cache->new_plugin = ctools_access_new_test($plugin);
+      panels_edit_cache_set($this->cache);
+
+      // go to the next step.
+      return $this->ajax_access_configure_test($pid, 'add');
+    }
+
+    ctools_ajax_render($output);
+  }
+
+  /**
+   * AJAX entry point for to configure vsibility rule.
+   */
+  function ajax_access_configure_test($pid = NULL, $id = NULL) {
+    if (empty($this->display->content[$pid])) {
+      ctools_modal_render(t('Error'), t('Invalid pane id.'));
+    }
+
+    $pane = &$this->display->content[$pid];
+    $subtype = ctools_content_get_subtype($pane->type, $pane->subtype);
+
+    // Set this up here because $id gets changed later.
+    $url = $this->get_url('access-configure-test', $pid, $id);
+
+    // If we're adding a new one, get the stored data from cache and
+    // add it. It's stored as a cache so that if this is closed
+    // we don't accidentally add an unconfigured plugin.
+    if ($id == 'add') {
+      $pane->access['plugins'][] = $this->cache->new_plugin;
+      $id = max(array_keys($pane->access['plugins']));
+    }
+    else if (empty($pane->access['plugins'][$id])) {
+      ctools_modal_render(t('Error'), t('Invalid test id.'));
+    }
+
+    $form_state = array(
+      'display' => &$this->display,
+      'pane' => &$pane,
+      'ajax' => TRUE,
+      'title' => t('Configure visibility rule for !subtype_title', array('!subtype_title' => $subtype['title'])),
+      'test' => &$pane->access['plugins'][$id],
+      'plugin' => ctools_get_access_plugin($pane->access['plugins'][$id]['name']),
+      'url' => url($url, array('absolute' => TRUE)),
+    );
+
+    $output = ctools_modal_form_wrapper('panels_edit_configure_access_test_form', $form_state);
+    if (!empty($output)) {
+      $this->commands = $output;
+      return;
+    }
+
+    // Unset the new plugin
+    if (isset($this->cache->new_plugin)) {
+      unset($this->cache->new_plugin);
+    }
+
+    if (!empty($form_state['remove'])) {
+      unset($pane->access['plugins'][$id]);
+    }
+
+    panels_edit_cache_set($this->cache);
+    $this->command_update_pane($pid);
+    $this->commands[] = ctools_modal_command_dismiss();
+  }
+
+  /**
+   * AJAX Router function for layout owned AJAX calls.
+   *
+   * Layouts like the flexible layout builder need callbacks of their own.
+   * This allows those layouts to simply declare their callbacks and use
+   * them with $this->get_url('layout', $command).
+   */
+  function ajax_layout() {
+    $args = func_get_args();
+    if (empty($args)) {
+      return MENU_NOT_FOUND;
+    }
+
+    $command = array_shift($args);
+    if (empty($this->plugins['layout']['ajax'][$command]) || !function_exists($this->plugins['layout']['ajax'][$command])) {
+      return MENU_NOT_FOUND;
+    }
+
+    // Make sure the this is always available to the called functions.
+    array_unshift($args, $this);
+    return call_user_func_array($this->plugins['layout']['ajax'][$command], $args);
+  }
+
+  /**
+   * AJAX Router function for style owned AJAX calls.
+   *
+   * Styles like the stylizer need AJAX callbacks of their own. This
+   * allows the system to figure out which style is being referenced,
+   * load it, and execute the callback.
+   *
+   * This allows those layouts to simply declare their callbacks and use
+   * them using $this->get_url('style', $command, $type, $pid).
+   */
+  function ajax_style() {
+    $args = func_get_args();
+    if (count($args) < 3) {
+      return MENU_NOT_FOUND;
+    }
+
+    $command = array_shift($args);
+    $type = array_shift($args);
+    $pid = array_shift($args);
+
+    $info = $this->get_style($type, $pid);
+
+    $style = $info[0];
+    $conf = &$info[1];
+
+    if (empty($style['ajax'][$command]) || !function_exists($style['ajax'][$command])) {
+      return MENU_NOT_FOUND;
+    }
+
+    // Make sure the this is always available to the called functions.
+    $args = array_merge(array(&$this, $style, &$conf, $type, $pid), $args);
+    return call_user_func_array($style['ajax'][$command], $args);
+  }
+
+  // ------------------------------------------------------------------------
+  // AJAX command generators
+  //
+  // These are used to make sure that child implementations can control their
+  // own AJAX commands as needed.
+
+  /**
+   * Create a command array to redraw a pane.
+   */
+  function command_update_pane($pid) {
+    if (is_object($pid)) {
+      $pane = $pid;
+    }
+    else {
+      $pane = $this->display->content[$pid];
+    }
+
+    $this->commands[] = ctools_ajax_command_replace("#panel-pane-$pane->pid", $this->render_pane($pane));
+    $this->commands[] = ctools_ajax_command_changed("#panel-pane-$pane->pid", "div.grabber span.text");
+  }
+
+  /**
+   * Create a command array to add a new pane.
+   */
+  function command_add_pane($pid) {
+    if (is_object($pid)) {
+      $pane = $pid;
+    }
+    else {
+      $pane = $this->display->content[$pid];
+    }
+
+    $this->commands[] = ctools_ajax_command_append("#panel-pane-$pane->panel", $this->render_pane($pane));
+    $this->commands[] = ctools_ajax_command_changed("#panel-pane-$pane->pid", "div.grabber span.text");
+  }
+
+  /**
+   * Create a command to update the links on a display after a change was made.
+   */
+  function command_update_display_links() {
+    $this->commands[] = ctools_ajax_command_replace('.panels-display-links', $this->get_display_links());
+  }
+
+  /**
+   * Create a command to update the links on a region after a change was made.
+   */
+  function command_update_region_links($id) {
+    $this->commands[] = ctools_ajax_command_replace('.panels-region-links-' . $id, $this->get_region_links($id));
+  }
+}
+
+/**
+ * Handle the 'next' click on the add/edit pane form wizard.
+ *
+ * All we need to do is store the updated pane in the cache.
+ */
+function panels_ajax_edit_pane_next(&$form_state) {
+  $form_state['cache']->new_pane = $form_state['pane'];
+  panels_edit_cache_set($form_state['cache']);
+}
+
+/**
+ * Handle the 'finish' click on teh add/edit pane form wizard.
+ *
+ * All we need to do is set a flag so the return can handle adding
+ * the pane.
+ */
+function panels_ajax_edit_pane_finish(&$form_state) {
+  $form_state['complete'] = TRUE;
+  return;
+}
+
+/**
+ * Handle the 'cancel' click on the add/edit pane form wizard.
+ */
+function panels_ajax_edit_pane_cancel(&$form_state) {
+  $form_state['cancel'] = TRUE;
+  return;
+}
+
+// --------------------------------------------------------------------------
+// Forms for the editor object
+
+/**
+ * Choose cache method form
+ */
+function panels_edit_cache_method_form(&$form_state) {
+  $display = &$form_state['display'];
+  $conf = &$form_state['conf'];
+
+  // Set to 0 to ensure we get a selected radio.
+  if (!isset($conf['method'])) {
+    $conf['method'] = 0;
+  }
+
+  $caches = panels_get_caches();
+  if (empty($caches)) {
+    $form['markup'] = array('#value' => t('No caching options are available at this time. Please enable a panels caching module in order to use caching options.'));
+    return $form;
+  }
+
+  $options[0] = t('No caching');
+  foreach ($caches as $cache => $info) {
+    $options[$cache] = check_plain($info['title']);
+  }
+
+  $form['method'] = array(
+    '#prefix' => '<div class="no-float">',
+    '#suffix' => '</div>',
+    '#type' => 'radios',
+    '#title' => t('Method'),
+    '#options' => $options,
+    '#default_value' => $conf['method'],
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Next'),
+  );
+  return $form;
+}
+
+/**
+ * Submit callback for panels_edit_cache_method_form.
+ *
+ * All this needs to do is return the method.
+ */
+function panels_edit_cache_method_form_submit($form, &$form_state) {
+  $form_state['method'] = $form_state['values']['method'];
+}
+
+/**
+ * Cache settings form
+ */
+function panels_edit_cache_settings_form(&$form_state) {
+  $display = &$form_state['display'];
+  $conf = &$form_state['conf'];
+  $pid = $form_state['pid'];
+  $info = panels_get_cache($conf['method']);
+
+  $form['#action'] = $form_state['url'];
+
+  $form['description'] = array(
+    '#prefix' => '<div class="description">',
+    '#suffix' => '</div>',
+    '#value' => check_plain($info['description']),
+  );
+
+  $function = panels_plugin_get_function('cache', $conf['method'], 'settings form');
+
+  $form['settings'] = $function($conf['settings'], $display, $pid);
+  $form['settings']['#tree'] = TRUE;
+
+  $form['display'] = array(
+    '#type' => 'value',
+    '#value' => $display,
+  );
+
+  $form['pid'] = array(
+    '#type' => 'value',
+    '#value' => $pid,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+/**
+ * Validate cache settings.
+ */
+function panels_edit_cache_settings_form_validate($form, &$form_state) {
+  if ($function = panels_plugin_get_function('cache', $form_state['conf']['method'], 'settings form validate')) {
+    $function($form, $form_state['values']['settings']);
+  }
+}
+
+/**
+ * Allows panel styles to validate their style settings.
+ */
+function panels_edit_cache_settings_form_submit($form, &$form_state) {
+  if ($function = panels_plugin_get_function('cache', $form_state['conf']['method'], 'settings form submit')) {
+    $function($form_state['values']['settings']);
+  }
+
+  $form_state['conf']['settings'] = $form_state['values']['settings'];
+}
+
+/**
+ * Choose style form
+ */
+function panels_edit_style_type_form(&$form_state) {
+  $display = &$form_state['display'];
+  $style = $form_state['style'];
+  $type = $form_state['type'];
+
+  $styles = panels_get_styles();
+
+  $function = ($type == 'pane' ? 'render pane' : (variable_get('panels_legacy_rendering_mode', TRUE) ? 'render panel' : 'render region'));
+  $options = array();
+  if ($type == 'region') {
+    $options[-1] = t('Use display default style');
+  }
+
+  uasort($styles, 'ctools_plugin_sort');
+
+  foreach ($styles as $id => $info) {
+    if (empty($info['hidden']) && (!empty($info[$function]) || $id == 'default')) {
+      $options[$id] = check_plain($info['title']);
+    }
+  }
+
+  $form['style'] = array(
+    '#prefix' => '<div class="no-float">',
+    '#suffix' => '</div>',
+    '#type' => 'radios',
+    '#title' => t('Style'),
+    '#options' => $options,
+    '#default_value' => $style,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Next'),
+  );
+  return $form;
+}
+
+/**
+ * Submit callback for panels_edit_style_type_form.
+ *
+ * All this needs to do is return the method.
+ */
+function panels_edit_style_type_form_submit($form, &$form_state) {
+  $form_state['old_style'] = $form_state['style'];
+  $form_state['style'] = $form_state['values']['style'];
+}
+
+/**
+ * Style settings form
+ */
+function panels_edit_style_settings_form(&$form_state) {
+  $display = &$form_state['display'];
+  $conf = &$form_state['conf'];
+  $pid = $form_state['pid'];
+  $style = $form_state['style'];
+  $type = $form_state['type'];
+
+  $form['#action'] = $form_state['url'];
+
+  $form['description'] = array(
+    '#prefix' => '<div class="description">',
+    '#suffix' => '</div>',
+    '#value' => check_plain($style['description']),
+  );
+
+  $function = panels_plugin_get_function('styles', $style, ($type == 'pane') ? 'pane settings form' : 'settings form');
+
+  $form['settings'] = $function($conf, $display, $pid, $type, $form_state);
+  $form['settings']['#tree'] = TRUE;
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+/**
+ * Validate style settings.
+ */
+function panels_edit_style_settings_form_validate($form, &$form_state) {
+  $name = $form_state['type'] == 'pane' ? 'pane settings form validate' : 'settings form validate';
+  if ($function = panels_plugin_get_function('styles', $form_state['style'], $name)) {
+    $function($form, $form_state['values']['settings'], $form_state);
+  }
+}
+
+/**
+ * Allows panel styles to validate their style settings.
+ */
+function panels_edit_style_settings_form_submit($form, &$form_state) {
+  $name = $form_state['type'] == 'pane' ? 'pane settings form submit' : 'settings form submit';
+  if ($function = panels_plugin_get_function('styles', $form_state['style'], $name)) {
+    $function($form, $form_state['values']['settings'], $form_state);
+  }
+
+  $form_state['conf'] = $form_state['values']['settings'];
+}
+
+
+/**
+ * Configure CSS on a pane form.
+ */
+function panels_edit_configure_pane_css_form(&$form_state) {
+  $display = &$form_state['display'];
+  $pane = &$form_state['pane'];
+
+  $form['css_id'] = array(
+    '#type' => 'textfield',
+    '#default_value' => isset($pane->css['css_id']) ? $pane->css['css_id'] : '',
+    '#title' => t('CSS ID'),
+    '#description' => t('CSS ID to apply to this pane. This may be blank.'),
+  );
+  $form['css_class'] = array(
+    '#type' => 'textfield',
+    '#default_value' => isset($pane->css['css_class']) ? $pane->css['css_class'] : '',
+    '#title' => t('CSS class'),
+    '#description' => t('CSS class to apply to this pane. This may be blank.'),
+  );
+
+  $form['next'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+/**
+ * FAPI submission function for the CSS configure form.
+ *
+ * All this does is set up $pane properly. The caller is responsible for
+ * actually storing this somewhere.
+ */
+function panels_edit_configure_pane_css_form_submit($form, &$form_state) {
+  $pane = &$form_state['pane'];
+  $display = $form_state['display'];
+
+  $pane->css['css_id'] = $form_state['values']['css_id'];
+  $pane->css['css_class'] = $form_state['values']['css_class'];
+}
+
+/**
+ * Form to control basic visibility settings.
+ */
+function panels_edit_configure_access_settings_form(&$form_state) {
+  $display = &$form_state['display'];
+  $pane = &$form_state['pane'];
+
+  $form['logic'] = array(
+    '#type' => 'radios',
+    '#options' => array(
+      'and' => t('All criteria must pass.'),
+      'or' => t('Only one criterion must pass.'),
+    ),
+    '#default_value' => isset($pane->access['logic']) ? $pane->access['logic'] : 'and',
+  );
+
+  $form['next'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+/**
+ * FAPI submission function for the edit access settings form.
+ *
+ * All this does is set up $pane properly. The caller is responsible for
+ * actually storing this somewhere.
+ */
+function panels_edit_configure_access_settings_form_submit($form, &$form_state) {
+  $pane = &$form_state['pane'];
+  $display = $form_state['display'];
+
+  $pane->access['logic'] = $form_state['values']['logic'];
+}
+
+/**
+ * Form to add a visibility rule.
+ */
+function panels_edit_add_access_test_form(&$form_state) {
+  $display = &$form_state['display'];
+  $pane = &$form_state['pane'];
+
+  $plugins = ctools_get_relevant_access_plugins($display->context);
+  $options = array();
+  foreach ($plugins as $id => $plugin) {
+    $options[$id] = $plugin['title'];
+  }
+
+  asort($options);
+
+  $form['type'] = array(
+    // This ensures that the form item is added to the URL.
+    '#type' => 'radios',
+    '#options' => $options,
+  );
+
+  $form['next'] = array(
+    '#type' => 'submit',
+    '#value' => t('Next'),
+  );
+
+  return $form;
+}
+
+/**
+ * Form to configure a visibility rule.
+ */
+function panels_edit_configure_access_test_form(&$form_state) {
+  $display = &$form_state['display'];
+  $test = &$form_state['test'];
+  $plugin = &$form_state['plugin'];
+
+  $form['#action'] = $form_state['url'];
+
+  $contexts = $display->context;
+  if (!isset($contexts['logged-in-user'])) {
+    $contexts['logged-in-user'] = ctools_access_get_loggedin_context();
+  }
+
+  if (isset($plugin['required context'])) {
+    $form['context'] = ctools_context_selector($contexts, $plugin['required context'], $test['context']);
+  }
+
+  $form['settings'] = array('#tree' => TRUE);
+  if ($function = ctools_plugin_get_function($plugin, 'settings form')) {
+    $function($form, $form_state, $test['settings']);
+  }
+
+  $form['not'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Reverse (NOT)'),
+    '#default_value' => !empty($test['not']),
+  );
+
+  $form['save'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  $form['remove'] = array(
+    '#type' => 'submit',
+    '#value' => t('Remove'),
+    '#remove' => TRUE,
+  );
+
+  return $form;
+}
+
+/**
+ * Validate handler for visibility rule settings
+ */
+function panels_edit_configure_access_test_form_validate(&$form, &$form_state) {
+  if (!empty($form_state['clicked_button']['#remove'])) {
+    return;
+  }
+
+  if ($function = ctools_plugin_get_function($form_state['plugin'], 'settings form validate')) {
+    $function($form, $form_state);
+  }
+}
+
+/**
+ * Submit handler for visibility rule settings
+ */
+function panels_edit_configure_access_test_form_submit(&$form, &$form_state) {
+  if (!empty($form_state['clicked_button']['#remove'])) {
+    $form_state['remove'] = TRUE;
+    return;
+  }
+
+  if ($function = ctools_plugin_get_function($form_state['plugin'], 'settings form submit')) {
+    $function($form, $form_state);
+  }
+
+  $form_state['test']['settings'] = $form_state['values']['settings'];
+  if (isset($form_state['values']['context'])) {
+    $form_state['test']['context'] = $form_state['values']['context'];
+  }
+  $form_state['test']['not'] = !empty($form_state['values']['not']);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_legacy.class.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_legacy.class.php
new file mode 100644
index 0000000..ff05876
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_legacy.class.php
@@ -0,0 +1,294 @@
+<?php
+
+/**
+ * Legacy render pipeline for a panels display.
+ *
+ * This render pipeline mirrors the old procedural system exactly, and plugins
+ * written for the legacy system will work exactly as they did before with this
+ * renderer.
+ *
+ * Most plugins will work with the newer renderer. These are the exceptions:
+ *  - Style plugins that implement panel styling no longer need to call
+ *    panels_render_pane() on all contained panes; rendered pane HTML is now
+ *    passed in directly.
+ *  - Cache plugins are now triggered on rendered HTML, rather than on
+ *    unrendered datastructures, when acting at the display level. When acting
+ *    at the pane level, they still receive the unrendered datastructure.
+ *
+ * If your site relies on any of these plugin behaviors, you will need to use
+ * this renderer instead of the new panels_renderer_standard() until those
+ * plugins are updated.
+ */
+class panels_renderer_legacy {
+  var $meta_location = 'standard';
+
+  var $display;
+  var $plugins = array();
+
+  /**
+   * Include rendered HTML prior to the layout.
+   *
+   * @var string
+   */
+  var $prefix = '';
+
+  /**
+   * Include rendered HTML after the layout.
+   *
+   * @var string
+   */
+  var $suffix = '';
+
+  function init($plugin, &$display) {
+    $this->plugin = $plugin;
+    $this->plugins['layout'] = panels_get_layout($display->layout);
+    if (empty($this->plugins['layout'])) {
+      watchdog('panels', "Layout: @layout couldn't been found, maybe the theme is disabled.", array('@layout' => $display->layout));
+    }
+    $this->display = &$display;
+  }
+
+  /**
+   * Add CSS information to the renderer.
+   *
+   * To facilitate previews over Views, CSS can now be added in a manner
+   * that does not necessarily mean just using drupal_add_css. Therefore,
+   * during the panel rendering process, this method can be used to add
+   * css and make certain that ti gets to the proper location.
+   *
+   * The arguments should exactly match drupal_add_css().
+   *
+   * @see drupal_add_css
+   */
+  function add_css($filename, $type = 'module', $media = 'all', $preprocess = TRUE) {
+    $path = file_create_path($filename);
+    switch ($this->meta_location) {
+      case 'standard':
+        if ($path) {
+          // Use CTools CSS add because it can handle temporary CSS in private
+          // filesystem.
+          ctools_include('css');
+          ctools_css_add_css($filename, $type, $media, $preprocess);
+        }
+        else {
+          drupal_add_css($filename, $type, $media, $preprocess);
+        }
+        break;
+      case 'inline':
+        if ($path) {
+          $url = file_create_url($filename);
+        }
+        else {
+          $url = base_path() . $filename;
+        }
+
+        $this->prefix .= '<link type="text/css" rel="stylesheet" media="' . $media . '" href="' . $url . '" />'."\n";
+        break;
+    }
+  }
+
+  /**
+   * Builds inner content, then hands off to layout-specified theme function for
+   * final render step.
+   *
+   * This is the outermost method in the Panels render pipeline. It calls the
+   * inner methods, which return a content array, which is in turn passed to the
+   * theme function specified in the layout plugin.
+   *
+   * @return string
+   *  Themed & rendered HTML output.
+   */
+  function render() {
+    if (!empty($this->plugins['layout']['css'])) {
+      if (file_exists(path_to_theme() . '/' . $this->plugins['layout']['css'])) {
+        drupal_add_css(path_to_theme() . '/' . $this->plugins['layout']['css']);
+      }
+      else {
+        drupal_add_css($this->plugins['layout']['path'] . '/' . $this->plugins['layout']['css']);
+      }
+    }
+    // This now comes after the CSS is added, because panels-within-panels must
+    // have their CSS added in the right order; inner content before outer content.
+
+    if (empty($this->display->cache['method']) || !empty($this->display->skip_cache)) {
+      $content = $this->render_regions();
+    }
+    else {
+      $cache = panels_get_cached_content($this->display, $this->display->args, $this->display->context);
+      if ($cache === FALSE) {
+        $cache = new panels_cache_object();
+        $cache->set_content($this->render_regions());
+        panels_set_cached_content($cache, $this->display, $this->display->args, $this->display->context);
+      }
+      $content = $cache->content;
+    }
+
+    $output = theme($this->plugins['layout']['theme'], check_plain($this->display->css_id), $content, $this->display->layout_settings, $this->display, $this->plugins['layout'], $this);
+
+    return $this->prefix . $output . $this->suffix;
+  }
+
+  /**
+   * Render all panes in the attached display into their panel regions, then
+   * render those regions.
+   *
+   * @return array $content
+   *    An array of rendered panel regions, keyed on the region name.
+   */
+  function render_regions() {
+    ctools_include('content');
+
+    // First, render all the panes into little boxes. We do this here because
+    // some panes request to be rendered after other panes (primarily so they
+    // can do the leftovers of forms).
+    $panes = $first = $normal = $last = array();
+
+    foreach ($this->display->content as $pid => $pane) {
+      $pane->shown = !empty($pane->shown); // guarantee this field exists.
+      // If the user can't see this pane, do not render it.
+      if (!$pane->shown || !panels_pane_access($pane, $this->display)) {
+        continue;
+      }
+
+      $content_type = ctools_get_content_type($pane->type);
+
+      // If this pane wants to render last, add it to the $last array. We allow
+      // this because some panes need to be rendered after other panes,
+      // primarily so they can do things like the leftovers of forms.
+      if (!empty($content_type['render last'])) {
+        $last[$pid] = $pane;
+      }
+      // If it wants to render first, add it to the $first array. This is used
+      // by panes that need to do some processing before other panes are
+      // rendered.
+      else if (!empty($content_type['render first'])) {
+        $first[$pid] = $pane;
+      }
+      // Otherwise, render it in the normal order.
+      else {
+        $normal[$pid] = $pane;
+      }
+    }
+
+    foreach (($first + $normal + $last) as $pid => $pane) {
+      $panes[$pid] = $this->render_pane($pane);
+    }
+
+    // Loop through all panels, put all panes that belong to the current panel
+    // in an array, then render the panel. Primarily this ensures that the
+    // panes are in the proper order.
+    $content = array();
+    foreach ($this->display->panels as $panel_name => $pids) {
+      $panel_panes = array();
+      foreach ($pids as $pid) {
+        if (!empty($panes[$pid])) {
+          $panel_panes[$pid] = $panes[$pid];
+        }
+      }
+      $content[$panel_name] = $this->render_region($panel_name, $panel_panes);
+    }
+
+    // Prevent notices by making sure that all panels at least have an entry:
+    $panels = panels_get_regions($this->plugins['layout'], $this->display);
+    foreach ($panels as $id => $panel) {
+      if (!isset($content[$id])) {
+        $content[$id] = NULL;
+      }
+    }
+
+    return $content;
+  }
+
+  /**
+   * Render the contents of a single pane.
+   *
+   * This method retrieves pane content and produces a ready-to-render content
+   * object. It also manages pane-specific caching.
+   *
+   * @param stdClass $pane
+   *    A Panels pane object, as loaded from the database.
+   */
+  function render_pane(&$pane) {
+    ctools_include('context');
+    if (!is_array($this->display->context)) {
+      $this->display->context = array();
+    }
+
+    $content = FALSE;
+    $caching = !empty($pane->cache['method']) && empty($this->display->skip_cache);
+    if ($caching && ($cache = panels_get_cached_content($this->display, $this->display->args, $this->display->context, $pane))) {
+      $content = $cache->content;
+    }
+    else {
+      $content = ctools_content_render($pane->type, $pane->subtype, $pane->configuration, array(), $this->display->args, $this->display->context);
+      foreach (module_implements('panels_pane_content_alter') as $module) {
+        $function = $module . '_panels_pane_content_alter';
+        $function($content, $pane, $this->display->args, $this->display->context);
+      }
+      if ($caching) {
+        $cache = new panels_cache_object();
+        $cache->set_content($content);
+        panels_set_cached_content($cache, $this->display, $this->display->args, $this->display->context, $pane);
+        $content = $cache->content;
+      }
+    }
+
+    // Pass long the css_id that is usually available.
+    if (!empty($pane->css['css_id']) && is_object($content)) {
+      $content->css_id = $pane->css['css_id'];
+    }
+
+    // Pass long the css_class that is usually available.
+    if (!empty($pane->css['css_class']) && is_object($content)) {
+      $content->css_class = $pane->css['css_class'];
+    }
+
+    return $content;
+  }
+
+  /**
+   * Render a single panel region.
+   *
+   * Primarily just a passthrough to the panel region rendering callback
+   * specified by the style plugin that is attached to the current panel region.
+   *
+   * @param $region_name
+   *   The ID of the panel region being rendered
+   * @param $panes
+   *   An array of panes that are assigned to the panel that's being rendered.
+   *
+   * @return
+   *   The rendered HTML for the passed-in panel region.
+   */
+  function render_region($region_name, $panes) {
+    list($style, $style_settings) = panels_get_panel_style_and_settings($this->display->panel_settings, $region_name);
+    $callback = 'render panel';
+
+    // Retrieve the pid (can be a panel page id, a mini panel id, etc.), this
+    // might be used (or even necessary) for some panel display styles.
+    $owner_id = 0;
+    if (isset($this->display->owner) && is_object($this->display->owner) && isset($this->display->owner->id)) {
+      $owner_id = $this->display->owner->id;
+    }
+
+    // Check to see if we're actually running a current style plugin even though
+    // we're in the legacy renderer
+    if (version_compare($style['version'], 2.0, '>=')) {
+      // We are, so pre-render the content as the current version expects
+      foreach($panes as $pane_id => $pane) {
+        $content = panels_render_pane($pane, $this->display->content[$pane_id], $this->display);
+        if ($content) {
+          $panes[$pane_id] = $content;
+        }
+        else {
+          unset($panes[$pane_id]);
+        }
+      }
+      // And set the callback to the new key
+      $callback = 'render region';
+
+    }
+
+    return theme($style[$callback], $this->display, $owner_id, $panes, $style_settings, $region_name, $style);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_simple.class.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_simple.class.php
new file mode 100644
index 0000000..a4779b8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_simple.class.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @file
+ * Contains the simple display renderer.
+ */
+
+/**
+ * The simple display renderer renders a display normally, except each pane
+ * is already rendered content, rather than a pane containing CTools content
+ * to be rendered. Styles are not supported.
+ */
+class panels_renderer_simple extends panels_renderer_standard {
+  function render_regions() {
+    $this->rendered['regions'] = array();
+    foreach ($this->display->content as $region_id => $content) {
+      if (is_array($content)) {
+        $content = implode('', $content);
+      }
+
+      $this->rendered['regions'][$region_id] = $content;
+    }
+    return $this->rendered['regions'];
+  }
+
+  function render_panes() {
+    // NOP
+  }
+
+  function prepare($external_settings = NULL) {
+    $this->prep_run = TRUE;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_single_pane.class.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_single_pane.class.php
new file mode 100644
index 0000000..ccdebaf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_single_pane.class.php
@@ -0,0 +1,41 @@
+<?php
+
+class panels_renderer_single_pane extends panels_renderer_standard {
+  /**
+   * The pane id of the pane that will be rendered by a call to the render()
+   * method. Numeric int or string (typically if a new-# id has been used).
+   * @var mixed
+   */
+  var $render_pid;
+
+  /**
+   * Modified build method (vs. panels_renderer_standard::build()); takes just
+   * the display, no layout is necessary.
+   *
+   * @param array $plugin
+   *   The definition of the renderer plugin.
+   *
+   * @param panels_display $display
+   *   The panels display object to be rendered.
+   */
+  function init($plugin, &$display) {
+    $this->plugin = $plugin;
+    $this->display = &$display;
+  }
+
+  function prepare($external_settings = NULL) {
+    $this->render_pid = $external_settings;
+  }
+
+  function render() {
+    // If no requested pid, or requested pid does not exist,
+    if (empty($this->render_pid) || empty($this->display->content[$this->render_pid])) {
+      return NULL;
+    }
+    return $this->render_pane($this->display->content[$this->render_pid]);
+  }
+
+  function render_single($pid) {
+    return $this->render_pane($this->display->content[$pid]);
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_standard.class.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_standard.class.php
new file mode 100644
index 0000000..be65d52
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/panels_renderer_standard.class.php
@@ -0,0 +1,643 @@
+<?php
+
+/**
+ * The standard render pipeline for a Panels display object.
+ *
+ * Given a fully-loaded panels_display object, this class will turn its
+ * combination of layout, panes, and styles into HTML, invoking caching
+ * appropriately along the way. Interacting with the renderer externally is
+ * very simple - just pass it the display object and call the render() method:
+ *
+ * @code
+ *   // given that $display is a fully loaded Panels display object
+ *   $renderer = panels_get_renderer_handler('standard', $display)
+ *   $html_output = $renderer->render();
+ * @endcode
+ *
+ * Internally, the render pipeline is divided into two phases, prepare and
+ * render:
+ *   - The prepare phase transforms the skeletal data on the provided
+ *     display object into a structure that is expected by the render phase.
+ *     It is divided into a series of discrete sub-methods and operates
+ *     primarily by passing parameters, all with the intention of making
+ *     subclassing easier.
+ *   - The render phase relies primarily on data stored in the renderer object's
+ *     properties, presumably set in the prepare phase. It iterates through the
+ *     rendering of each pane, pane styling, placement in panel regions, region
+ *     styling, and finally the arrangement of rendered regions in the layout.
+ *     Caching, if in use, is triggered per pane, or on the entire display.
+ *
+ * In short: prepare builds conf, render renders conf. Subclasses should respect
+ * this separation of responsibilities by adhering to these loose guidelines,
+ * given a loaded display object:
+ *   - If your renderer needs to modify the datastructure representing what is
+ *     to be rendered (panes and their conf, styles, caching, etc.), it should
+ *     use the prepare phase.
+ *   - If your renderer needs to modify the manner in which that renderable
+ *     datastructure data is rendered, it should use the render phase.
+ *
+ * In the vast majority of use cases, this standard renderer will be sufficient
+ * and need not be switched out/subclassed; style and/or layout plugins can
+ * accommodate nearly every use case. If you think you might need a custom
+ * renderer, consider the following criteria/examples:
+ *   - Some additional markup needs to be added to EVERY SINGLE panel.
+ *   - Given a full display object, just render one pane.
+ *   - Show a Panels admin interface.
+ *
+ * The system is almost functionally identical to the old procedural approach,
+ * with some exceptions (@see panels_renderer_legacy for details). The approach
+ * here differs primarily in its friendliness to tweaking in subclasses.
+ */
+class panels_renderer_standard {
+  /**
+   * The fully-loaded Panels display object that is to be rendered. "Fully
+   * loaded" is defined as:
+   *   1. Having been produced by panels_load_displays(), whether or this page
+   *      request or at some time in the past and the object was exported.
+   *   2. Having had some external code attach context data ($display->context),
+   *      in the exact form expected by panes. Context matching is delicate,
+   *      typically relying on exact string matches, so special attention must
+   *      be taken.
+   *
+   * @var panels_display
+   */
+  var $display;
+
+  /**
+   * An associative array of loaded plugins. Used primarily as a central
+   * location for storing plugins that require additional loading beyond
+   * reading the plugin definition, which is already statically cached by
+   * ctools_get_plugins(). An example is layout plugins, which can optionally
+   * have a callback that determines the set of panel regions available at
+   * runtime.
+   *
+   * @var array
+   */
+  var $plugins = array();
+
+  /**
+   * A multilevel array of rendered data. The first level of the array
+   * indicates the type of rendered data, typically with up to three keys:
+   * 'layout', 'regions', and 'panes'. The relevant rendered data is stored as
+   * the value for each of these keys as it is generated:
+   *  - 'panes' are an associative array of rendered output, keyed on pane id.
+   *  - 'regions' are an associative array of rendered output, keyed on region
+   *    name.
+   *  - 'layout' is the whole of the rendered output.
+   *
+   * @var array
+   */
+  var $rendered = array();
+
+  /**
+   * A multilevel array of data prepared for rendering. The first level of the
+   * array indicates the type of prepared data. The standard renderer populates
+   * and uses two top-level keys, 'panes' and 'regions':
+   *  - 'panes' are an associative array of pane objects to be rendered, keyed
+   *    on pane id and sorted into proper rendering order.
+   *  - 'regions' are an associative array of regions, keyed on region name,
+   *    each of which is itself an indexed array of pane ids in the order in
+   *    which those panes appear in that region.
+   *
+   * @var array
+   */
+  var $prepared = array();
+
+  /**
+   * Boolean state variable, indicating whether or not the prepare() method has
+   * been run.
+   *
+   * This state is checked in panels_renderer_standard::render_layout() to
+   * determine whether the prepare method should be automatically triggered.
+   *
+   * @var bool
+   */
+  var $prep_run = FALSE;
+
+  /**
+   * The plugin that defines this handler.
+   */
+  var $plugin = FALSE;
+
+  /**
+   * TRUE if this renderer is rendering in administrative mode
+   * which will allow layouts to have extra functionality.
+   *
+   * @var bool
+   */
+  var $admin = FALSE;
+
+  /**
+   * Where to add standard meta information. There are three possibilities:
+   * - standard: Put the meta information in the normal location. Default.
+   * - inline: Put the meta information directly inline. This will
+   *   not work for javascript.
+   *
+   * @var string
+   */
+  var $meta_location = 'standard';
+
+  /**
+   * Include rendered HTML prior to the layout.
+   *
+   * @var string
+   */
+  var $prefix = '';
+
+  /**
+   * Include rendered HTML after the layout.
+   *
+   * @var string
+   */
+  var $suffix = '';
+
+  /**
+   * Receive and store the display object to be rendered.
+   *
+   * This is a psuedo-constructor that should typically be called immediately
+   * after object construction.
+   *
+   * @param array $plugin
+   *   The definition of the renderer plugin.
+   * @param panels_display $display
+   *   The panels display object to be rendered.
+   */
+  function init($plugin, &$display) {
+    $this->plugin = $plugin;
+    $layout = panels_get_layout($display->layout);
+    $this->display = &$display;
+    $this->plugins['layout'] = $layout;
+    if (!isset($layout['panels'])) {
+      $this->plugins['layout']['panels'] = panels_get_regions($layout, $display);
+    }
+
+    if (empty($this->plugins['layout'])) {
+      watchdog('panels', "Layout: @layout couldn't been found, maybe the theme is disabled.", array('@layout' => $display->layout));
+    }
+  }
+
+  /**
+   * Get the Panels storage oparation for a given renderer AJAX method.
+   *
+   * @param string $method
+   *   The method name.
+   *
+   * @return string
+   *   The Panels storage op.
+   */
+  function get_panels_storage_op_for_ajax($method) {
+    return 'read';
+  }
+
+  /**
+   * Prepare the attached display for rendering.
+   *
+   * This is the outermost prepare method. It calls several sub-methods as part
+   * of the overall preparation process. This compartmentalization is intended
+   * to ease the task of modifying renderer behavior in child classes.
+   *
+   * If you override this method, it is important that you either call this
+   * method via parent::prepare(), or manually set $this->prep_run = TRUE.
+   *
+   * @param mixed $external_settings
+   *  An optional parameter allowing external code to pass in additional
+   *  settings for use in the preparation process. Not used in the default
+   *  renderer, but included for interface consistency.
+   */
+  function prepare($external_settings = NULL) {
+    $this->prepare_panes($this->display->content);
+    $this->prepare_regions($this->display->panels, $this->display->panel_settings);
+    $this->prep_run = TRUE;
+  }
+
+  /**
+   * Prepare the list of panes to be rendered, accounting for visibility/access
+   * settings and rendering order.
+   *
+   * This method represents the standard approach for determining the list of
+   * panes to be rendered that is compatible with all parts of the Panels
+   * architecture. It first applies visibility & access checks, then sorts panes
+   * into their proper rendering order, and returns the result as an array.
+   *
+   * Inheriting classes should override this method if that renderer needs to
+   * regularly make additions to the set of panes that will be rendered.
+   *
+   * @param array $panes
+   *  An associative array of pane data (stdClass objects), keyed on pane id.
+   * @return array
+   *  An associative array of panes to be rendered, keyed on pane id and sorted
+   *  into proper rendering order.
+   */
+  function prepare_panes($panes) {
+    ctools_include('content');
+    // Use local variables as writing to them is very slightly faster
+    $first = $normal = $last = array();
+
+    // Prepare the list of panes to be rendered
+    foreach ($panes as $pid => $pane) {
+      if (empty($this->admin)) {
+        // TODO remove in 7.x and ensure the upgrade path weeds out any stragglers; it's been long enough
+        $pane->shown = !empty($pane->shown); // guarantee this field exists.
+        // If this pane is not visible to the user, skip out and do the next one
+        if (!$pane->shown || !panels_pane_access($pane, $this->display)) {
+          continue;
+        }
+      }
+
+      $content_type = ctools_get_content_type($pane->type);
+
+      // If this pane wants to render last, add it to the $last array. We allow
+      // this because some panes need to be rendered after other panes,
+      // primarily so they can do things like the leftovers of forms.
+      if (!empty($content_type['render last'])) {
+        $last[$pid] = $pane;
+      }
+      // If it wants to render first, add it to the $first array. This is used
+      // by panes that need to do some processing before other panes are
+      // rendered.
+      else if (!empty($content_type['render first'])) {
+        $first[$pid] = $pane;
+      }
+      // Otherwise, render it in the normal order.
+      else {
+        $normal[$pid] = $pane;
+      }
+    }
+    $this->prepared['panes'] = $first + $normal + $last;
+    return $this->prepared['panes'];
+  }
+
+  /**
+   * Prepare the list of regions to be rendered.
+   *
+   * This method is primarily about properly initializing the style plugin that
+   * will be used to render the region. This is crucial as regions cannot be
+   * rendered without a style plugin (in keeping with Panels' philosophy of
+   * hardcoding none of its output), but for most regions no style has been
+   * explicitly set. The logic here is what accommodates that situation:
+   *  - If a region has had its style explicitly set, then we fetch that plugin
+   *    and continue.
+   *  - If the region has no explicit style, but a style was set at the display
+   *    level, then inherit the style from the display.
+   *  - If neither the region nor the dispay have explicitly set styles, then
+   *    fall back to the hardcoded 'default' style, a very minimal style.
+   *
+   * The other important task accomplished by this method is ensuring that even
+   * regions without any panes are still properly prepared for the rendering
+   * process. This is essential because the way Panels loads display objects
+   * (@see panels_load_displays) results only in a list of regions that
+   * contain panes - not necessarily all the regions defined by the layout
+   * plugin, which can only be determined by asking the plugin at runtime. This
+   * method consults that retrieved list of regions and prepares all of those,
+   * ensuring none are inadvertently skipped.
+   *
+   * @param array $region_pane_list
+   *   An associative array of pane ids, keyed on the region to which those pids
+   *   are assigned. In the default case, this is $display->panels.
+   * @param array $settings
+   *   All known region style settings, including both the top-level display's
+   *   settings (if any) and all region-specific settings (if any).
+   * @return array
+   *   An array of regions prepared for rendering.
+   */
+  function prepare_regions($region_pane_list, $settings) {
+    // Initialize defaults to be used for regions without their own explicit
+    // settings. Use display settings if they exist, else hardcoded defaults.
+    $default = array(
+      'style' => panels_get_style(!empty($settings['style']) ? $settings['style'] : 'default'),
+      'style settings' => isset($settings['style_settings']['default']) ? $settings['style_settings']['default'] : array(),
+    );
+
+    $regions = array();
+    if (empty($settings)) {
+      // No display/panel region settings exist, init all with the defaults.
+      foreach ($this->plugins['layout']['panels'] as $region_id => $title) {
+        // Ensure this region has at least an empty panes array.
+        $panes = !empty($region_pane_list[$region_id]) ? $region_pane_list[$region_id] : array();
+
+        $regions[$region_id] = $default;
+        $regions[$region_id]['pids'] = $panes;
+      }
+    }
+    else {
+      // Some settings exist; iterate through each region and set individually.
+      foreach ($this->plugins['layout']['panels'] as $region_id => $title) {
+        // Ensure this region has at least an empty panes array.
+        $panes = !empty($region_pane_list[$region_id]) ? $region_pane_list[$region_id] : array();
+
+        if (empty($settings[$region_id]['style']) || $settings[$region_id]['style'] == -1) {
+          $regions[$region_id] = $default;
+        }
+        else {
+          $regions[$region_id]['style'] = panels_get_style($settings[$region_id]['style']);
+          $regions[$region_id]['style settings'] = isset($settings['style_settings'][$region_id]) ? $settings['style_settings'][$region_id] : array();
+        }
+        $regions[$region_id]['pids'] = $panes;
+      }
+    }
+
+    $this->prepared['regions'] = $regions;
+    return $this->prepared['regions'];
+  }
+
+  /**
+   * Build inner content, then hand off to layout-specified theme function for
+   * final render step.
+   *
+   * This is the outermost method in the Panels render pipeline. It calls the
+   * inner methods, which return a content array, which is in turn passed to the
+   * theme function specified in the layout plugin.
+   *
+   * @return string
+   *  Themed & rendered HTML output.
+   */
+  function render() {
+    // Attach out-of-band data first.
+    $this->add_meta();
+
+    if (empty($this->display->cache['method']) || !empty($this->display->skip_cache)) {
+      return $this->render_layout();
+    }
+    else {
+      $cache = panels_get_cached_content($this->display, $this->display->args, $this->display->context);
+      if ($cache === FALSE) {
+        $cache = new panels_cache_object();
+        $cache->set_content($this->render_layout());
+        panels_set_cached_content($cache, $this->display, $this->display->args, $this->display->context);
+      }
+      return $cache->content;
+    }
+  }
+
+  /**
+   * Perform display/layout-level render operations.
+   *
+   * This method triggers all the inner pane/region rendering processes, passes
+   * that to the layout plugin's theme callback, and returns the rendered HTML.
+   *
+   * If display-level caching is enabled and that cache is warm, this method
+   * will not be called.
+   *
+   * @return string
+   *   The HTML string representing the entire rendered, themed panel.
+   */
+  function render_layout() {
+    if (empty($this->prep_run)) {
+      $this->prepare();
+    }
+    $this->render_panes();
+    $this->render_regions();
+
+    if ($this->admin && !empty($this->plugins['layout']['admin theme'])) {
+      $theme = $this->plugins['layout']['admin theme'];
+    }
+    else {
+      $theme = $this->plugins['layout']['theme'];
+    }
+    $this->rendered['layout'] = theme($theme, check_plain($this->display->css_id), $this->rendered['regions'], $this->display->layout_settings, $this->display, $this->plugins['layout'], $this);
+    return $this->prefix . $this->rendered['layout'] . $this->suffix;
+  }
+
+  /**
+   * Attach out-of-band page metadata (e.g., CSS and JS).
+   *
+   * This must be done before render, because panels-within-panels must have
+   * their CSS added in the right order: inner content before outer content.
+   */
+  function add_meta() {
+    if (!empty($this->plugins['layout']['css'])) {
+      if (file_exists(path_to_theme() . '/' . $this->plugins['layout']['css'])) {
+        $this->add_css(path_to_theme() . '/' . $this->plugins['layout']['css']);
+      }
+      else {
+        $this->add_css($this->plugins['layout']['path'] . '/' . $this->plugins['layout']['css']);
+      }
+    }
+
+    if ($this->admin && isset($this->plugins['layout']['admin css'])) {
+      $this->add_css($this->plugins['layout']['path'] . '/' . $this->plugins['layout']['admin css']);
+    }
+  }
+
+  /**
+   * Add CSS information to the renderer.
+   *
+   * To facilitate previews over Views, CSS can now be added in a manner
+   * that does not necessarily mean just using drupal_add_css. Therefore,
+   * during the panel rendering process, this method can be used to add
+   * css and make certain that ti gets to the proper location.
+   *
+   * The arguments should exactly match drupal_add_css().
+   *
+   * @see drupal_add_css
+   */
+  function add_css($filename, $type = 'module', $media = 'all', $preprocess = TRUE) {
+    $path = file_create_path($filename);
+    switch ($this->meta_location) {
+      case 'standard':
+        if (file_check_location($filename, file_directory_path())) {
+          // If the file is located in the files directory, use
+          // ctools_css_add_css() because it can handle temporary CSS in the
+          // private filesystem.
+          ctools_include('css');
+          ctools_css_add_css($filename, $type, $media, $preprocess);
+        }
+        else {
+          drupal_add_css($filename, $type, $media, $preprocess);
+        }
+        break;
+      case 'inline':
+        if ($path) {
+          $url = file_create_url($filename);
+        }
+        else {
+          $url = base_path() . $filename;
+        }
+
+        $this->prefix .= '<link type="text/css" rel="stylesheet" media="' . $media . '" href="' . $url . '" />'."\n";
+        break;
+    }
+  }
+
+  /**
+   * Render all prepared panes, first by dispatching to their plugin's render
+   * callback, then handing that output off to the pane's style plugin.
+   *
+   * @return array
+   *   The array of rendered panes, keyed on pane pid.
+   */
+  function render_panes() {
+    ctools_include('content');
+
+    // First, render all the panes into little boxes.
+    $this->rendered['panes'] = array();
+    foreach ($this->prepared['panes'] as $pid => $pane) {
+      $content = $this->render_pane($pane);
+      if ($content) {
+        $this->rendered['panes'][$pid] = $content;
+      }
+    }
+    return $this->rendered['panes'];
+  }
+
+  /**
+   * Render a pane using its designated style.
+   *
+   * This method also manages 'title pane' functionality, where the title from
+   * an individual pane can be bubbled up to take over the title for the entire
+   * display.
+   *
+   * @param stdClass $pane
+   *  A Panels pane object, as loaded from the database.
+   */
+  function render_pane(&$pane) {
+    $content = $this->render_pane_content($pane);
+    if ($this->display->hide_title == PANELS_TITLE_PANE && !empty($this->display->title_pane) && $this->display->title_pane == $pane->pid) {
+
+      // If the user selected to override the title with nothing, and selected
+      // this as the title pane, assume the user actually wanted the original
+      // title to bubble up to the top but not actually be used on the pane.
+      if (empty($content->title) && !empty($content->original_title)) {
+        $this->display->stored_pane_title = $content->original_title;
+      }
+      else {
+        $this->display->stored_pane_title = !empty($content->title) ? $content->title : '';
+      }
+    }
+
+    if (!empty($content->content)) {
+      if (!empty($pane->style['style'])) {
+        $style = panels_get_style($pane->style['style']);
+
+        if (isset($style) && isset($style['render pane'])) {
+          $output = theme($style['render pane'], $content, $pane, $this->display, $style);
+
+          // This could be null if no theme function existed.
+          if (isset($output)) {
+            return $output;
+          }
+        }
+      }
+
+      // fallback
+      return theme('panels_pane', $content, $pane, $this->display);
+    }
+  }
+
+  /**
+   * Render the interior contents of a single pane.
+   *
+   * This method retrieves pane content and produces a ready-to-render content
+   * object. It also manages pane-specific caching.
+   *
+   * @param stdClass $pane
+   *   A Panels pane object, as loaded from the database.
+   * @return stdClass $content
+   *   A renderable object, containing a subject, content, etc. Based on the
+   *   renderable objects used by the block system.
+   */
+  function render_pane_content(&$pane) {
+    ctools_include('context');
+    // TODO finally safe to remove this check?
+    if (!is_array($this->display->context)) {
+      watchdog('panels', 'renderer::render_pane_content() hit with a non-array for the context', $this->display, WATCHDOG_DEBUG);
+      $this->display->context = array();
+    }
+
+    $content = FALSE;
+    $caching = !empty($pane->cache['method']) && empty($this->display->skip_cache);
+    if ($caching && ($cache = panels_get_cached_content($this->display, $this->display->args, $this->display->context, $pane))) {
+      $content = $cache->content;
+    }
+    else {
+      if ($caching) {
+        $cache = new panels_cache_object();
+      }
+      $content = ctools_content_render($pane->type, $pane->subtype, $pane->configuration, array(), $this->display->args, $this->display->context);
+      if (empty($content)) {
+        return;
+      }
+
+      foreach (module_implements('panels_pane_content_alter') as $module) {
+        $function = $module . '_panels_pane_content_alter';
+        $function($content, $pane, $this->display->args, $this->display->context);
+      }
+
+      if ($caching && isset($cache)) {
+        $cache->set_content($content);
+        panels_set_cached_content($cache, $this->display, $this->display->args, $this->display->context, $pane);
+        $content = $cache->content;
+      }
+    }
+
+    // Pass long the css_id that is usually available.
+    if (!empty($pane->css['css_id'])) {
+      $content->css_id = check_plain($pane->css['css_id']);
+    }
+
+    // Pass long the css_class that is usually available.
+    if (!empty($pane->css['css_class'])) {
+      $content->css_class = check_plain($pane->css['css_class']);
+    }
+
+    return $content;
+  }
+
+  /**
+   * Render all prepared regions, placing already-rendered panes into their
+   * appropriate positions therein.
+   *
+   * @return array
+   *   An array of rendered panel regions, keyed on the region name.
+   */
+  function render_regions() {
+    $this->rendered['regions'] = array();
+
+    // Loop through all panel regions, put all panes that belong to the current
+    // region in an array, then render the region. Primarily this ensures that
+    // the panes are arranged in the proper order.
+    $content = array();
+    foreach ($this->prepared['regions'] as $region_id => $conf) {
+      $region_panes = array();
+      foreach ($conf['pids'] as $pid) {
+        // Only include panes for region rendering if they had some output.
+        if (!empty($this->rendered['panes'][$pid])) {
+          $region_panes[$pid] = $this->rendered['panes'][$pid];
+        }
+      }
+      $this->rendered['regions'][$region_id] = $this->render_region($region_id, $region_panes);
+    }
+
+    return $this->rendered['regions'];
+  }
+
+  /**
+   * Render a single panel region.
+   *
+   * Primarily just a passthrough to the panel region rendering callback
+   * specified by the style plugin that is attached to the current panel region.
+   *
+   * @param $region_id
+   *   The ID of the panel region being rendered
+   * @param $panes
+   *   An array of panes that are assigned to the panel that's being rendered.
+   *
+   * @return string
+   *   The rendered, HTML string output of the passed-in panel region.
+   */
+  function render_region($region_id, $panes) {
+    $style = $this->prepared['regions'][$region_id]['style'];
+    $style_settings = $this->prepared['regions'][$region_id]['style settings'];
+
+    // Retrieve the pid (can be a panel page id, a mini panel id, etc.), this
+    // might be used (or even necessary) for some panel display styles.
+    // TODO: Got to fix this to use panel page name instead of pid, since pid is
+    // no longer guaranteed. This needs an API to be able to set the final id.
+    $owner_id = 0;
+    if (isset($this->display->owner) && is_object($this->display->owner) && isset($this->display->owner->id)) {
+      $owner_id = $this->display->owner->id;
+    }
+
+    return theme($style['render region'], $this->display, $owner_id, $panes, $style_settings, $region_id, $style);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/simple.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/simple.inc
new file mode 100644
index 0000000..725c28d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/simple.inc
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Create a simple renderer plugin that renders a layout but the content is
+ * already rendered, not in panes.
+ */
+$plugin = array(
+  'handler' => array(
+    'class' => 'panels_renderer_simple',
+    'parent' => 'standard',
+  ),
+);
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/single_pane.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/single_pane.inc
new file mode 100644
index 0000000..67ef61d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/single_pane.inc
@@ -0,0 +1,8 @@
+<?php
+
+$plugin = array(
+  'handler' => array(
+    'class' => 'panels_renderer_single_pane',
+    'parent' => 'standard',
+  ),
+);
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/standard.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/standard.inc
new file mode 100644
index 0000000..39b235d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/display_renderers/standard.inc
@@ -0,0 +1,7 @@
+<?php
+
+$plugin = array(
+  'handler' => array(
+    'class' => 'panels_renderer_standard',
+  ),
+);
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/export_ui/panels_layouts.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/export_ui/panels_layouts.inc
new file mode 100644
index 0000000..94ae5d6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/export_ui/panels_layouts.inc
@@ -0,0 +1,24 @@
+<?php
+
+$plugin = array(
+  'schema' => 'panels_layout',
+  'access' => 'administer panels layouts',
+
+  'menu' => array(
+    'menu prefix' => 'admin/build/panels',
+    'menu item' => 'layouts',
+    'menu title' => 'Layouts',
+    'menu description' => 'Add, edit or delete custom content layouts.',
+  ),
+
+  'title singular' => t('layout'),
+  'title singular proper' => t('Layout'),
+  'title plural' => t('layouts'),
+  'title plural proper' => t('Layouts'),
+
+  'handler' => array(
+    'class' => 'panels_layouts_ui',
+    'parent' => 'ctools_export_ui',
+  ),
+);
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/export_ui/panels_layouts_ui.class.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/export_ui/panels_layouts_ui.class.php
new file mode 100644
index 0000000..0f47f09
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/export_ui/panels_layouts_ui.class.php
@@ -0,0 +1,229 @@
+<?php
+
+class panels_layouts_ui extends ctools_export_ui {
+  var $lipsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam egestas congue nibh, vel dictum ante posuere vitae. Cras gravida massa tempor metus eleifend sed elementum tortor scelerisque. Vivamus egestas, tortor quis luctus tristique, sem velit adipiscing risus, et tempus enim felis in massa. Morbi viverra, nisl quis rhoncus imperdiet, turpis massa vestibulum turpis, egestas faucibus nibh metus vel nunc. In hac habitasse platea dictumst. Nunc sit amet nisi quis ipsum tin [...]
+
+  function hook_menu(&$items) {
+    // During updates, this can run before our schema is set up, so our
+    // plugin can be empty.
+    if (empty($this->plugin['menu']['items']['add'])) {
+      return;
+    }
+
+    // Change the item to a tab on the Panels page.
+    $this->plugin['menu']['items']['list callback']['type'] = MENU_LOCAL_TASK;
+
+    // Establish a base for adding plugins
+    $base = $this->plugin['menu']['items']['add'];
+    // Remove the default 'add' menu item.
+    unset($this->plugin['menu']['items']['add']);
+
+    ctools_include('plugins', 'panels');
+    $this->builders = panels_get_layout_builders();
+    asort($this->builders);
+    foreach ($this->builders as $name => $builder) {
+      // Create a new menu item for the builder
+      $item = $base;
+      $item['title'] = !empty($builder['builder tab title']) ? $builder['builder tab title'] : 'Add ' . $builder['title'];
+      $item['page arguments'][] = $name;
+      $item['path'] = 'add-' . $name;
+      $this->plugin['menu']['items']['add ' . $name] = $item;
+    }
+
+    parent::hook_menu($items);
+  }
+
+  function edit_form(&$form, &$form_state) {
+    ctools_include('plugins', 'panels');
+    // If the plugin is not set, then it should be provided as an argument:
+    if (!isset($form_state['item']->plugin)) {
+      $form_state['item']->plugin = $form_state['function args'][2];
+    }
+
+    parent::edit_form($form, $form_state);
+
+    $form['category'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Category'),
+      '#description' => t('What category this layout should appear in. If left blank the category will be "Miscellaneous".'),
+      '#default_value' => $form_state['item']->category,
+    );
+
+    ctools_include('context');
+    ctools_include('display-edit', 'panels');
+    ctools_include('content');
+
+    // Provide actual layout admin UI here.
+    // Create a display for editing:
+    $cache_key = 'builder-' . $form_state['item']->name;
+
+    // Load the display being edited from cache, if possible.
+    if (!empty($_POST) && is_object($cache = panels_edit_cache_get($cache_key))) {
+      $display = &$cache->display;
+    }
+    else {
+      $content_types = ctools_content_get_available_types();
+
+      panels_cache_clear('display', $cache_key);
+      $cache = new stdClass();
+
+      $display = panels_new_display();
+      $display->did = $form_state['item']->name;
+      $display->layout = $form_state['item']->plugin;
+      $display->layout_settings = $form_state['item']->settings;
+      $display->cache_key = $cache_key;
+      $display->editing_layout = TRUE;
+
+      $cache->display = $display;
+      $cache->content_types = $content_types;
+      $cache->display_title = FALSE;
+      panels_edit_cache_set($cache);
+    }
+
+    // Set up lipsum content in all of the existing panel regions:
+    $display->content = array();
+    $display->panels = array();
+    $custom = ctools_get_content_type('custom');
+    $layout = panels_get_layout($display->layout);
+
+    $regions = panels_get_regions($layout, $display);
+    foreach ($regions as $id => $title) {
+      $pane = panels_new_pane('custom', 'custom');
+      $pane->pid = $id;
+      $pane->panel = $id;
+      $pane->configuration = ctools_content_get_defaults($custom, 'custom');
+      $pane->configuration['title'] = 'Lorem Ipsum';
+      $pane->configuration['body'] = $this->lipsum;
+      $display->content[$id] = $pane;
+      $display->panels[$id] = array($id);
+    }
+
+    $form_state['display'] = &$display;
+    // Tell the Panels form not to display buttons.
+    $form_state['no buttons'] = TRUE;
+    $form_state['no display settings'] = TRUE;
+
+    $form_state['cache_key'] = $cache_key;
+    $form_state['content_types'] = $cache->content_types;
+    $form_state['display_title'] = FALSE;
+
+    $form_state['renderer'] = panels_get_renderer_handler('editor', $cache->display);
+    $form_state['renderer']->cache = &$cache;
+
+    $form = array_merge($form, panels_edit_display_form($form_state));
+    // Make sure the theme will work since our form id is different.
+    $form['#theme'] = 'panels_edit_display_form';
+
+    // If we leave the standard submit handler, it'll try to reconcile
+    // content from the input, but we've not exposed that to the user. This
+    // makes previews work with the content we forced in.
+    $form['preview']['button']['#submit'] = array('panels_edit_display_form_preview');
+  }
+
+  function edit_form_submit(&$form, &$form_state) {
+    parent::edit_form_submit($form, $form_state);
+    $form_state['item']->settings = $form_state['display']->layout_settings;
+  }
+
+  function list_form(&$form, &$form_state) {
+    ctools_include('plugins', 'panels');
+    $this->builders = panels_get_layout_builders();
+    parent::list_form($form, $form_state);
+
+    $categories = $plugins = array('all' => t('- All -'));
+    foreach ($this->items as $item) {
+      $categories[$item->category] = $item->category ? $item->category : t('Miscellaneous');
+    }
+
+    $form['top row']['category'] = array(
+      '#type' => 'select',
+      '#title' => t('Category'),
+      '#options' => $categories,
+      '#default_value' => 'all',
+      '#weight' => -10,
+    );
+
+    foreach ($this->builders as $name => $plugin) {
+      $plugins[$name] = $plugin['title'];
+    }
+
+    $form['top row']['plugin'] = array(
+      '#type' => 'select',
+      '#title' => t('Type'),
+      '#options' => $plugins,
+      '#default_value' => 'all',
+      '#weight' => -9,
+    );
+  }
+
+  function list_filter($form_state, $item) {
+    if ($form_state['values']['category'] != 'all' && $form_state['values']['category'] != $item->category) {
+      return TRUE;
+    }
+
+    if ($form_state['values']['plugin'] != 'all' && $form_state['values']['plugin'] != $item->plugin) {
+      return TRUE;
+    }
+
+    return parent::list_filter($form_state, $item);
+  }
+
+  function list_sort_options() {
+    return array(
+      'disabled' => t('Enabled, title'),
+      'title' => t('Title'),
+      'name' => t('Name'),
+      'category' => t('Category'),
+      'storage' => t('Storage'),
+      'plugin' => t('Type'),
+    );
+  }
+
+  function list_build_row($item, &$form_state, $operations) {
+    // Set up sorting
+    switch ($form_state['values']['order']) {
+      case 'disabled':
+        $this->sorts[$item->name] = empty($item->disabled) . $item->admin_title;
+        break;
+      case 'title':
+        $this->sorts[$item->name] = $item->admin_title;
+        break;
+      case 'name':
+        $this->sorts[$item->name] = $item->name;
+        break;
+      case 'category':
+        $this->sorts[$item->name] = ($item->category ? $item->category : t('Miscellaneous')) . $item->admin_title;
+        break;
+      case 'plugin':
+        $this->sorts[$item->name] = $item->plugin;
+        break;
+      case 'storage':
+        $this->sorts[$item->name] = $item->type . $item->admin_title;
+        break;
+    }
+
+    $type = !empty($this->builders[$item->plugin]) ? $this->builders[$item->plugin]['title'] : t('Broken/missing plugin');
+    $category = $item->category ? check_plain($item->category) : t('Miscellaneous');
+    $this->rows[$item->name] = array(
+      'data' => array(
+        array('data' => check_plain($type), 'class' => 'ctools-export-ui-type'),
+        array('data' => check_plain($item->name), 'class' => 'ctools-export-ui-name'),
+        array('data' => check_plain($item->admin_title), 'class' => 'ctools-export-ui-title'),
+        array('data' => $category, 'class' => 'ctools-export-ui-category'),
+        array('data' => theme('links', $operations), 'class' => 'ctools-export-ui-operations'),
+      ),
+      'title' => check_plain($item->admin_description),
+      'class' => !empty($item->disabled) ? 'ctools-export-ui-disabled' : 'ctools-export-ui-enabled',
+    );
+  }
+
+  function list_table_header() {
+    return array(
+      array('data' => t('Type'), 'class' => 'ctools-export-ui-type'),
+      array('data' => t('Name'), 'class' => 'ctools-export-ui-name'),
+      array('data' => t('Title'), 'class' => 'ctools-export-ui-title'),
+      array('data' => t('Category'), 'class' => 'ctools-export-ui-category'),
+      array('data' => t('Operations'), 'class' => 'ctools-export-ui-operations'),
+    );
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible-admin.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible-admin.css
new file mode 100644
index 0000000..744e46e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible-admin.css
@@ -0,0 +1,87 @@
+
+#panels-dnd-main .panel-flexible-edit-layout div.panels-display .pane-add-link,
+.panel-flexible-edit-layout .panel-pane {
+  display: none;
+}
+
+.panel-flexible-edit-layout div.panels-display h2.label {
+  padding-right: 0;
+}
+
+.panel-flexible-edit-layout .panels-flexible-column-inside {
+/*  margin: 5px; */
+  border: 1px dotted green;
+}
+
+.panels-flexible-column-inside {
+/*  overflow: hidden; */
+}
+
+.panel-flexible-edit-layout .panels-flexible-column > .flexible-title {
+  color: green;
+}
+
+.panel-flexible-edit-layout .panels-flexible-row-inside {
+  margin: 5px;
+  border: 1px dotted blue;
+}
+
+.panel-flexible-edit-layout .panels-flexible-row > .flexible-title {
+  color: blue;
+}
+
+.panel-flexible-no-edit-layout .flexible-layout-only {
+  display: none;
+}
+
+.panel-flexible-edit-layout .flexible-title {
+  text-align: center;
+  width: 5em;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.panel-flexible-no-edit-layout .panels-flexible-splitter {
+  display: none;
+}
+
+.panels-flexible-splitter span {
+  display: none;
+}
+
+.panels-flexible-splitter {
+  width: 11px;
+  float: left;
+  margin-left: -7px;
+  margin-right: -6px;
+	cursor: e-resize;	/* in case col-resize isn't supported */
+	cursor: col-resize;
+  height: 30px;
+  position: relative;
+  z-index: 1;
+  background: url(grippie-vertical.png) center center no-repeat #eee;
+  border: 1px solid #ccc;
+}
+
+.flexible-splitting {
+  border: 2px dotted yellow !important;
+  margin: -2px !important;
+}
+
+.flexible-splitter-hover-box {
+  position: absolute;
+  z-index: 1000;
+  background: white;
+  color: black;
+  border: 1px solid black;
+  width: 60px;
+  height: 2em;
+  text-align: center;
+  line-height: 2em;
+}
+
+#panels-edit-display .panel-pane,
+#panels-edit-display .helperclass {
+  margin: .5em;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible-admin.js b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible-admin.js
new file mode 100644
index 0000000..e8b3cc6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible-admin.js
@@ -0,0 +1,408 @@
+
+Drupal.flexible = Drupal.flexible || {};
+
+Drupal.flexible.splitters = [];
+
+/**
+ * Fix the height of all splitters to be the same as the items they are
+ * splitting.
+ */
+Drupal.flexible.fixHeight = function() {
+  for (i in Drupal.flexible.splitters) {
+    Drupal.flexible.splitters[i].fixHeight();
+  }
+}
+
+Drupal.behaviors.flexibleAdmin = function(context) {
+  // Show/hide layout manager button
+  $('input#panels-flexible-toggle-layout:not(.panels-flexible-processed)', context)
+    .addClass('panels-flexible-processed')
+    .click(function() {
+      $('.panel-flexible-admin')
+        .toggleClass('panel-flexible-no-edit-layout')
+        .toggleClass('panel-flexible-edit-layout');
+
+      if ($('.panel-flexible-admin').hasClass('panel-flexible-edit-layout')) {
+        $(this).val(Drupal.t('Hide layout designer'));
+        Drupal.flexible.fixHeight();
+      }
+      else {
+        $(this).val(Drupal.t('Show layout designer'));
+      }
+      return false;
+    });
+
+  // Window splitter behavior.
+  $('div.panels-flexible-splitter:not(.panels-splitter-processed)', context)
+    .addClass('panels-splitter-processed')
+    .each(function() {
+      Drupal.flexible.splitters.push(new Drupal.flexible.splitter($(this)));
+    });
+
+  // Sometimes the splitter IS the context and the above syntax won't
+  // catch that.
+  if ($(context).hasClass('panels-flexible-splitter')) {
+    $(context)
+      .addClass('panels-splitter-processed')
+      .each(function() {
+        Drupal.flexible.splitters.push(new Drupal.flexible.splitter($(this)));
+      });
+  }
+
+  Drupal.flexible.fixHeight();
+};
+
+Drupal.flexible.splitter = function($splitter) {
+  var splitter = this;
+
+  this.fixHeight = function() {
+    // Set the splitter height to the shorter of the two:
+    $splitter.height(Math.max(this.left.outerHeight(), this.right.outerHeight()));
+  }
+
+  function splitterStart(event) {
+    // Show splitting classes.
+//    splitter.left.addClass('flexible-splitting');	// Safari selects A/B text on a move
+//    splitter.right.addClass('flexible-splitting');	// Safari selects A/B text on a move
+//    splitter.splitter.addClass('flexible-splitter-splitting');
+
+    // Bind motion events.
+    $(document)
+      .bind("mousemove", splitterMove)
+      .bind("mouseup", splitterEnd);
+
+    // Calculate some data about our split regions:
+    splitter.getSizes();
+
+    // The X coordinate where we clicked.
+    splitter.startX = event.pageX;
+
+    // The current sizes of the left/right panes.
+    splitter.currentLeft = parseFloat(splitter.left_width) * parseFloat(splitter.left_scale);
+    splitter.currentRight = parseFloat(splitter.right_width) * parseFloat(splitter.right_scale);
+
+    // The starting sizes of the left right panes.
+    splitter.startLeft = splitter.currentLeft;
+    splitter.startRight = splitter.currentRight;
+
+    if (splitter.left_width_type == splitter.right_width_type) {
+      // If they're the same type, add the two together so we know how
+      // much space we have for splitting.
+      splitter.max = splitter.startLeft + splitter.startRight;
+
+      // calculate unit size and min/max width.
+      if (splitter.left_width_type == '%') {
+        splitter.left_total = splitter.left.width() / (splitter.left_width / 100);
+        // One pixel is equivalent to what percentage of the total?
+        splitter.left_unit = (1 / splitter.left_total) * 100;
+        splitter.left_min = 5; // minimum % we'll use.
+      }
+      else {
+        splitter.left_unit = 1;
+        splitter.left_min = 25; // minimum pixels we'll use.
+      }
+      if (splitter.right_width_type == '%') {
+        splitter.right_total = splitter.right.width() / (splitter.right_width / 100);
+        // One pixel is equivalent to what percentage of the total?
+        splitter.right_unit = (1 / splitter.right_total) * 100;
+        splitter.right_min = 5; // minimum % we'll use.
+      }
+      else {
+        splitter.right_unit = 1;
+        splitter.right_min = 25; // minimum pixels we'll use.
+      }
+    }
+    else {
+      // Figure out the parent blob's width and set the max to that
+      splitter.parent = $splitter.parent().parent();
+
+      if (splitter.left_width_type != 'px') {
+        // Only the 'px' side can resize.
+        splitter.left_unit = 0;
+        splitter.right_unit = 1;
+        splitter.right_min = 25;
+        splitter.right_padding = parseInt(splitter.parent.css('padding-right'));
+        splitter.right_parent = parseInt(splitter.right.parent().css('margin-right'));
+        splitter.max = splitter.right.width() + splitter.left.parent().width() -
+          (splitter.left.siblings(':not(.panels-flexible-splitter)').length * 25) - 25;
+      }
+      else {
+        splitter.right_unit = 0;
+        splitter.left_unit = 1;
+        splitter.left_min = 25;
+        splitter.left_padding = parseInt(splitter.parent.css('padding-left'));
+        splitter.left_parent = parseInt(splitter.left.parent().css('margin-left'));
+        if (splitter.right_id) {
+          splitter.max = splitter.left.width() + splitter.right.parent().width() -
+            (splitter.right.siblings(':not(.panels-flexible-splitter)').length * 25) - 25;
+        }
+        else {
+          var subtract = 0;
+          splitter.left.siblings(':not(.panels-flexible-splitter)').each(function() { subtract += $(this).width()});
+          splitter.max = splitter.left.parent().width() - subtract;
+        }
+      }
+    }
+
+    var offset = $(splitter.splitter).offset();
+
+    // Create boxes to display widths left and right of the mouse pointer.
+    // Create left box only if left box is mobile.
+    if (splitter.left_unit) {
+      splitter.left_box = $('<div class="flexible-splitter-hover-box"> </div>');
+      $('body').append(splitter.left_box);
+      splitter.left_box.css('top', offset.top);
+      splitter.left_box.css('left', event.pageX - 65);
+
+    if (splitter.left_width_type == '%') {
+        var left = splitter.currentLeft / splitter.left_scale;
+        splitter.left_box.html(left.toFixed(2) + splitter.left_width_type);
+      }
+      else {
+        // make sure pixel values are always whole integers.
+        splitter.currentLeft = parseInt(splitter.currentLeft);
+        splitter.left_box.html(splitter.currentLeft + splitter.left_width_type);
+      }
+    }
+
+    // Create the right box if the right side is mobile.
+    if (splitter.right_unit) {
+      splitter.right_box = $('<div class="flexible-splitter-hover-box"></div>');
+      $('body').append(splitter.right_box);
+      splitter.right_box.css('top', offset.top);
+      splitter.right_box.css('left', event.pageX + 5);
+      if (splitter.right_width_type == '%') {
+        var right = splitter.currentRight / splitter.right_scale;
+        splitter.right_box.html(right.toFixed(2) + splitter.right_width_type);
+      }
+      else {
+        // make sure pixel values are always whole integers.
+        splitter.currentRight = parseInt(splitter.currentRight);
+        splitter.right_box.html(splitter.currentRight + splitter.right_width_type);
+      }
+    }
+
+    return false;
+  };
+
+  function splitterMove(event) {
+    var diff = splitter.startX - event.pageX;
+    var moved = 0;
+    // Bah, javascript has no logical xor operator
+    if ((splitter.left_unit && !splitter.right_unit) ||
+      (!splitter.left_unit && splitter.right_unit)) {
+      // This happens when one side is fixed and the other side is fluid. The
+      // fixed side actually adjusts while the fluid side does not. However,
+      // in order to move the fluid side we have to adjust the padding
+      // on our parent object.
+      if (splitter.left_unit) {
+        // Only the left box is allowed to move.
+        splitter.currentLeft = splitter.startLeft - diff;
+
+        if (splitter.currentLeft < splitter.left_min) {
+          splitter.currentLeft = splitter.left_min;
+        }
+        if (splitter.currentLeft > splitter.max) {
+          splitter.currentLeft = splitter.max;
+        }
+
+        // If the shift key is pressed, go with 1% or 10px boundaries.
+        if (event.shiftKey) {
+          splitter.currentLeft = parseInt(splitter.currentLeft / 10) * 10;
+        }
+        moved = (splitter.startLeft - splitter.currentLeft);
+      }
+      else {
+        // Only the left box is allowed to move.
+        splitter.currentRight = splitter.startRight + diff;
+
+        if (splitter.currentRight < splitter.right_min) {
+          splitter.currentRight = splitter.right_min;
+        }
+        if (splitter.currentRight > splitter.max) {
+          splitter.currentRight = splitter.max;
+        }
+
+        // If the shift key is pressed, go with 1% or 10px boundaries.
+        if (event.shiftKey) {
+          splitter.currentRight = parseInt(splitter.currentRight / 10) * 10;
+        }
+        moved = (splitter.currentRight - splitter.startRight);
+      }
+    }
+    else {
+      // If they are both the same type, do this..
+      // Adjust the left side by the amount we moved.
+      var left = -1 * diff * splitter.left_unit;
+
+      splitter.currentLeft = splitter.startLeft + left;
+
+      if (splitter.currentLeft < splitter.left_min) {
+        splitter.currentLeft = splitter.left_min;
+      }
+      if (splitter.currentLeft > splitter.max - splitter.right_min) {
+        splitter.currentLeft = splitter.max - splitter.right_min;
+      }
+
+      // If the shift key is pressed, go with 1% or 10px boundaries.
+      if (event.shiftKey) {
+        if (splitter.left_width_type == '%') {
+          splitter.currentLeft = parseInt(splitter.currentLeft / splitter.left_scale) * splitter.left_scale;
+        }
+        else {
+          splitter.currentLeft = parseInt(splitter.currentLeft / 10) * 10;
+        }
+      }
+
+      // Now automatically make the right side to be the other half.
+      splitter.currentRight = splitter.max - splitter.currentLeft;
+
+      // recalculate how far we've moved into pixels so we can adjust our visible
+      // boxes.
+      moved = (splitter.startLeft - splitter.currentLeft) / splitter.left_unit;
+    }
+
+    if (splitter.left_unit) {
+      splitter.left_box.css('left', splitter.startX - 65 - moved);
+      if (splitter.left_width_type == '%') {
+        var left = splitter.currentLeft / splitter.left_scale;
+        splitter.left_box.html(left.toFixed(2) + splitter.left_width_type);
+      }
+      else {
+        splitter.left_box.html(parseInt(splitter.currentLeft) + splitter.left_width_type);
+      }
+
+      // Finally actually move the left side
+      splitter.left.css('width', splitter.currentLeft + splitter.left_width_type);
+    }
+    else {
+      // if not moving the left side, adjust the parent padding instead.
+      splitter.parent.css('padding-right', (splitter.right_padding + moved) + 'px');
+      splitter.right.parent().css('margin-right', (splitter.right_parent - moved) + 'px');
+    }
+
+    if (splitter.right_unit) {
+      splitter.right_box.css('left', splitter.startX + 5 - moved);
+      if (splitter.right_width_type == '%') {
+        var right = splitter.currentRight / splitter.right_scale;
+        splitter.right_box.html(right.toFixed(2) + splitter.right_width_type);
+      }
+      else {
+        splitter.right_box.html(parseInt(splitter.currentRight) + splitter.right_width_type);
+      }
+
+      // Finally actually move the right side
+      splitter.right.css('width', splitter.currentRight + splitter.right_width_type);
+    }
+    else {
+      // if not moving the right side, adjust the parent padding instead.
+      splitter.parent.css('padding-left', (splitter.left_padding - moved) + 'px');
+      splitter.left.parent().css('margin-left', (splitter.left_parent + moved) + 'px');
+      if (jQuery.browser.msie) {
+        splitter.left.parent().css('left', splitter.currentLeft);
+      }
+    }
+    return false;
+  };
+
+  function splitterEnd(event) {
+    if (splitter.left_unit) {
+      splitter.left_box.remove();
+    }
+
+    if (splitter.right_unit) {
+      splitter.right_box.remove();
+    }
+
+    splitter.left.removeClass("flexible-splitting");	// Safari selects A/B text on a move
+    splitter.right.removeClass("flexible-splitting");	// Safari selects A/B text on a move
+    splitter.splitter.removeClass("flexible-splitter-splitting");	// Safari selects A/B text on a move
+    splitter.left.css("-webkit-user-select", "text");	// let Safari select text again
+    splitter.right.css("-webkit-user-select", "text");	// let Safari select text again
+
+    if (splitter.left_unit) {
+      splitter.left_width = splitter.currentLeft / parseFloat(splitter.left_scale);
+    }
+
+    if (splitter.right_unit) {
+      splitter.right_width = splitter.currentRight / parseFloat(splitter.right_scale);
+    }
+
+    splitter.putSizes();
+    Drupal.flexible.fixHeight();
+
+    $(document)
+      .unbind("mousemove", splitterMove)
+      .unbind("mouseup", splitterEnd);
+
+    // Store the data on the server.
+    $.ajax({
+      type: "POST",
+      url: Drupal.settings.flexible.resize,
+      data: {
+        'left': splitter.left_id,
+        'left_width': splitter.left_width,
+        'right': splitter.right_id,
+        'right_width': splitter.right_width
+      },
+      global: true,
+      success: Drupal.CTools.AJAX.respond,
+      error: function() {
+        alert("An error occurred while attempting to process " + Drupal.settings.flexible.resize);
+      },
+      dataType: 'json'
+    });
+  };
+
+  this.getSizes = function() {
+    splitter.left_width = $splitter.children('.panels-flexible-splitter-left-width').html();
+    splitter.left_scale = $splitter.children('.panels-flexible-splitter-left-scale').html();
+    splitter.left_width_type = $splitter.children('.panels-flexible-splitter-left-width-type').html();
+    splitter.right_width = $splitter.children('.panels-flexible-splitter-right-width').html();
+    splitter.right_scale = $splitter.children('.panels-flexible-splitter-right-scale').html();
+    splitter.right_width_type = $splitter.children('.panels-flexible-splitter-right-width-type').html();
+  };
+
+  this.putSizes = function() {
+    $(splitter.left_class + '-width').html(splitter.left_width);
+    if (splitter.left_class != splitter.right_class) {
+      $(splitter.right_class + '-width').html(splitter.right_width);
+    }
+  }
+
+  splitter.splitter = $splitter;
+  splitter.left_class = $splitter.children('.panels-flexible-splitter-left').html();
+  splitter.left_id = $splitter.children('.panels-flexible-splitter-left-id').html();
+  splitter.left = $(splitter.left_class);
+  splitter.right_class = $splitter.children('.panels-flexible-splitter-right').html();
+  splitter.right_id = $splitter.children('.panels-flexible-splitter-right-id').html();
+  splitter.right = $(splitter.right_class);
+
+  $splitter
+    .bind("mousedown", splitterStart);
+
+};
+
+/**
+ * Provide an AJAX response command to allow the server to request
+ * height fixing.
+ */
+Drupal.CTools.AJAX.commands.flexible_fix_height = function() {
+  Drupal.flexible.fixHeight();
+};
+
+/**
+ * Provide an AJAX response command to fix the first/last bits of a
+ * group.
+ */
+Drupal.CTools.AJAX.commands.flexible_fix_firstlast = function(data) {
+  $(data.selector + ' > div > .' + data.base)
+    .removeClass(data.base + '-first')
+    .removeClass(data.base + '-last');
+
+  $(data.selector + ' > div > .' + data.base + ':first')
+    .addClass(data.base + '-first');
+  $(data.selector + ' > div > .' + data.base + ':last')
+    .addClass(data.base + '-last');
+};
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.css
new file mode 100644
index 0000000..0d1fbe6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.css
@@ -0,0 +1,4 @@
+
+.panel-flexible .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.inc
new file mode 100644
index 0000000..320745a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.inc
@@ -0,0 +1,1766 @@
+<?php
+
+/**
+ * Implementation of hook_panels_layouts()
+ */
+// Plugin definition
+$plugin = array(
+  'title' => t('Flexible'),
+  'category' => t('Builders'),
+  'icon' => 'flexible.png',
+  'theme' => 'panels_flexible',
+  'admin theme' => 'panels_flexible_admin',
+  'css' => 'flexible.css',
+  'admin css' => 'flexible-admin.css',
+  'settings form' => 'panels_flexible_settings_form',
+  'settings submit' => 'panels_flexible_settings_submit',
+  'settings validate' => 'panels_flexible_settings_validate',
+  'panels function' => 'panels_flexible_panels',
+  'hook menu' => 'panels_flexible_menu',
+
+  // Reuisable layout Builder specific directives
+  'builder' => TRUE,
+  'builder tab title' => 'Add flexible layout', // menu so translated elsewhere
+
+  'get child' => 'panels_flexible_get_sublayout',
+  'get children' => 'panels_flexible_get_sublayouts',
+
+  // Define ajax callbacks
+  'ajax' => array(
+    'settings' => 'panels_ajax_flexible_edit_settings',
+    'add' => 'panels_ajax_flexible_edit_add',
+    'remove' => 'panels_ajax_flexible_edit_remove',
+    'resize' => 'panels_ajax_flexible_edit_resize',
+    'reuse' => 'panels_ajax_flexible_edit_reuse',
+  ),
+);
+
+/**
+ * Merge the main flexible plugin with a layout to create a sub plugin.
+ *
+ * This is used for both panels_flexible_get_sublayout and
+ * panels_flexible_get_sublayouts.
+ */
+function panels_flexible_merge_plugin($plugin, $layout) {
+  $plugin['name'] = 'flexible:' . $layout->name;
+  $plugin['category'] = !empty($layout->category) ? check_plain($layout->category) : t('Miscellaneous');
+  $plugin['title'] = check_plain($layout->admin_title);
+  $plugin['description'] = check_plain($layout->admin_description);
+  $plugin['layout'] = $layout;
+  $plugin['builder'] = FALSE;
+  $plugin['builder tab title'] = NULL;
+  return $plugin;
+}
+
+/**
+ * Callback to provide a single stored flexible layout.
+ */
+function panels_flexible_get_sublayout($plugin, $layout_name, $sublayout_name) {
+  // Do not worry about caching; Panels is handling that for us.
+  ctools_include('export');
+  $item = ctools_export_crud_load('panels_layout', $sublayout_name);
+  if ($item) {
+    return panels_flexible_merge_plugin($plugin, $item);
+  }
+}
+
+/**
+ * Callback to provide all stored flexible layouts.
+ */
+function panels_flexible_get_sublayouts($plugin, $layout_name) {
+  $layouts[$layout_name] = $plugin;
+  ctools_include('export');
+  $items = ctools_export_load_object('panels_layout', 'conditions', array('plugin' => 'flexible'));
+  foreach ($items as $name => $item) {
+    $layouts['flexible:' . $name] = panels_flexible_merge_plugin($plugin, $item);
+  }
+
+  return $layouts;
+}
+
+/**
+ * Convert settings from old style to new, or provide defaults for
+ * empty settings.
+ * @param <type> $settings
+ */
+function panels_flexible_convert_settings(&$settings, &$layout) {
+  // This indicates that this is a layout that they used the checkbox
+  // on. The layout is still 'flexible' but it's actually pointing
+  // to another stored one and we have to load it.
+  if (!empty($settings['layout'])) {
+    $layout = panels_get_layout('flexible:' . $settings['layout']);
+  }
+
+  if (!empty($layout['layout'])) {
+    $settings = $layout['layout']->settings;
+    if ($settings) {
+      return $settings;
+    }
+  }
+
+  if (empty($settings)) {
+    // set up a default
+    $settings = array(
+      'items' => array(
+        // The 'canvas' is a special row that does not get rendered
+        // normally, but is used to contain the columns.
+        'canvas' => array(
+          'type' => 'row',
+          'contains' => 'column',
+          'children' => array('main'),
+          'parent' => NULL,
+        ),
+        'main' => array(
+          'type' => 'column',
+          'width' => 100,
+          'width_type' => '%',
+          'children' => array('main-row'),
+          'parent' => 'canvas',
+        ),
+        'main-row' => array(
+          'type' => 'row',
+          'contains' => 'region',
+          'children' => array('center'),
+          'parent' => 'main',
+        ),
+        'center' => array(
+          'type' => 'region',
+          'title' => t('Center'),
+          'width' => 100,
+          'width_type' => '%',
+          'parent' => 'main-row',
+        ),
+      ),
+    );
+  }
+  else if (!isset($settings['items'])) {
+    // Convert an old style flexible to a new style flexible.
+    $old = $settings;
+    $settings = array();
+    $settings['items']['canvas'] = array(
+      'type' => 'row',
+      'contains' => 'column',
+      'children' => array(),
+      'parent' => NULL,
+    );
+    // add the left sidebar column, row and region if it exists.
+    if (!empty($old['sidebars']['left'])) {
+      $settings['items']['canvas']['children'][] = 'sidebar-left';
+      $settings['items']['sidebar-left'] = array(
+        'type' => 'column',
+        'width' => $old['sidebars']['left_width'],
+        'width_type' => $old['sidebars']['width_type'],
+        'children' => array('sidebar-left-row'),
+        'parent' => 'canvas',
+      );
+      $settings['items']['sidebar-left-row'] = array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array('sidebar_left'),
+        'parent' => 'sidebar-left',
+      );
+      $settings['items']['sidebar_left'] = array(
+        'type' => 'region',
+        'title' => t('Left sidebar'),
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'sidebar-left-row',
+      );
+    }
+
+    $settings['items']['canvas']['children'][] = 'main';
+
+    if (!empty($old['sidebars']['right'])) {
+      $settings['items']['canvas']['children'][] = 'sidebar-right';
+      $settings['items']['sidebar-right'] = array(
+        'type' => 'column',
+        'width' => $old['sidebars']['right_width'],
+        'width_type' => $old['sidebars']['width_type'],
+        'children' => array('sidebar-right-row'),
+        'parent' => 'canvas',
+      );
+      $settings['items']['sidebar-right-row'] = array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array('sidebar_right'),
+        'parent' => 'sidebar-right',
+      );
+      $settings['items']['sidebar_right'] = array(
+        'type' => 'region',
+        'title' => t('Right sidebar'),
+        'width' => 100,
+        'width_type' => '%',
+        'parent' => 'sidebar-right-row',
+      );
+    }
+
+    // Add the main column.
+    $settings['items']['main'] = array(
+      'type' => 'column',
+      'width' => 100,
+      'width_type' => '%',
+      'children' => array(),
+      'parent' => 'canvas',
+    );
+
+    // Add rows and regions.
+    for ($row = 1; $row <= intval($old['rows']); $row++) {
+      // Create entry for the row
+      $settings['items']["row_$row"] = array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(),
+        'parent' => 'main',
+      );
+      // Add the row to the parent's children
+      $settings['items']['main']['children'][] = "row_$row";
+
+      for ($col = 1; $col <= intval($old["row_$row"]['columns']); $col++) {
+        // Create entry for the region
+        $settings['items']["row_${row}_$col"] = array(
+          'type' => 'region',
+          'width' => $old["row_$row"]["width_$col"],
+          'width_type' => '%',
+          'parent' => "row_$row",
+        );
+        // Add entry for the region to the row's children
+        $settings['items']["row_$row"]['children'][] = "row_${row}_$col";
+
+        // Apply the proper title to the region
+        if (!empty($old["row_$row"]['names'][$col - 1])) {
+          $settings['items']["row_${row}_$col"]['title'] = $old["row_$row"]['names'][$col - 1];
+        }
+        else {
+          $settings['items']["row_${row}_$col"]['title'] = t("Row @row, Column @col", array('@row' => $row, '@col' => $col));
+        }
+      }
+    }
+  }
+  else if (isset($settings['canvas'])) {
+    // Convert the old 'canvas' to the new canvas row.
+    $settings['items']['canvas'] = array(
+      'type' => 'row',
+      'contains' => 'column',
+      'children' => $settings['canvas'],
+      'parent' => NULL,
+    );
+    unset($settings['canvas']);
+  }
+}
+
+/**
+ * Define the actual list of columns and rows for this flexible panel.
+ */
+function panels_flexible_panels($display, $settings, $layout) {
+  $items = array();
+  panels_flexible_convert_settings($settings, $layout);
+  foreach ($settings['items'] as $id => $item) {
+    if ($item['type'] == 'region') {
+      $items[$id] = $item['title'];
+    }
+  }
+
+  return $items;
+}
+
+/**
+ * Create a renderer object.
+ *
+ * The renderer object contains data that is passed around from function
+ * to function allowing us to render our CSS and HTML easily.
+ *
+ * @todo Convert the functions to methods and make this properly OO.
+ */
+function panels_flexible_create_renderer($admin, $id, $content, $settings, &$display, $layout, $handler) {
+  $renderer = new stdClass;
+  $renderer->settings = $settings;
+  $renderer->content = $content;
+  $renderer->css_id = $id;
+  $renderer->did = &$display->did;
+  if ($admin) {
+    // always scale in admin mode.
+    $renderer->scale_base = 99.0;
+  }
+  else {
+    $renderer->scale_base = !empty($settings['items']['canvas']['no_scale']) ? 100.0 : 99.0;
+  }
+  $renderer->id_str = $id ? 'id="' . $id . '"' : '';
+  $renderer->admin = $admin;
+  $renderer->handler = $handler;
+
+  // Set up basic classes for all of our components.
+  $renderer->name                 = !empty($layout['layout']) ? $layout['layout']->name : $display->did;
+  $renderer->base_class           = $renderer->name;
+  $renderer->item_class['column'] = 'panels-flexible-column';
+  $renderer->item_class['row']    = 'panels-flexible-row';
+  $renderer->item_class['region'] = 'panels-flexible-region';
+  $renderer->base['canvas']       = 'panels-flexible-' . $renderer->base_class;
+
+  // Override these if selected from the UI and not in admin mode.
+  if (!$admin) {
+    if (!empty($settings['items']['canvas']['class'])) {
+      $renderer->base_class = $settings['items']['canvas']['class'];
+      $renderer->base['canvas'] = $renderer->base_class;
+    }
+    if (!empty($settings['items']['canvas']['column_class'])) {
+      $renderer->item_class['column'] = $settings['items']['canvas']['column_class'];
+    }
+    if (!empty($settings['items']['canvas']['row_class'])) {
+      $renderer->item_class['row'] = $settings['items']['canvas']['row_class'];
+    }
+    if (!empty($settings['items']['canvas']['region_class'])) {
+      $renderer->item_class['region'] = $settings['items']['canvas']['region_class'];
+    }
+  }
+
+  // Get the separation values out of the canvas settings.
+  $renderer->column_separation = !empty($settings['items']['canvas']['column_separation']) ? $settings['items']['canvas']['column_separation'] : '0.5em';
+
+  $renderer->region_separation = !empty($settings['items']['canvas']['region_separation']) ? $settings['items']['canvas']['region_separation'] : '0.5em';
+
+  $renderer->row_separation = !empty($settings['items']['canvas']['row_separation']) ? $settings['items']['canvas']['row_separation'] : '0.5em';
+
+  // Make some appended classes so it's easier to reference them.
+
+  $renderer->base['column'] = $renderer->item_class['column'] . '-' . $renderer->base_class;
+  $renderer->base['row']    = $renderer->item_class['row'] . '-' . $renderer->base_class;
+  $renderer->base['region'] = $renderer->item_class['region'] . '-' . $renderer->base_class;
+
+  if ($renderer->name != 'new') {
+    // Use v2 to guarantee all CSS gets regenerated to account for changes in
+    // how some divs will be rendered.
+    $renderer->css_cache_name = 'flexiblev2:' . $renderer->name;
+    if ($admin) {
+      ctools_include('css');
+      ctools_css_clear($renderer->css_cache_name);
+    }
+  }
+  return $renderer;
+}
+
+/**
+ * Draw the flexible layout.
+ */
+function theme_panels_flexible($id, $content, $settings, $display, $layout, $handler) {
+  panels_flexible_convert_settings($settings, $layout);
+
+  $renderer = panels_flexible_create_renderer(FALSE, $id, $content, $settings, $display, $layout, $handler);
+
+  // CSS must be generated because it reports back left/middle/right
+  // positions.
+  $css = panels_flexible_render_css($renderer);
+
+  if (!empty($renderer->css_cache_name) && empty($display->editing_layout)) {
+    ctools_include('css');
+    // Generate an id based upon rows + columns:
+    $filename = ctools_css_retrieve($renderer->css_cache_name);
+    if (!$filename) {
+      $filename = ctools_css_store($renderer->css_cache_name, $css, FALSE);
+    }
+
+    // Give the CSS to the renderer to put where it wants.
+    if ($handler) {
+      $handler->add_css($filename, 'module', 'all', FALSE);
+    }
+    else {
+      ctools_css_add_css($filename, 'module', 'all', FALSE);
+    }
+  }
+  else {
+    // If the id is 'new' we can't reliably cache the CSS in the filesystem
+    // because the display does not truly exist, so we'll stick it in the
+    // head tag. We also do this if we've been told we're in the layout
+    // editor so that it always gets fresh CSS.
+    drupal_set_html_head("<style type=\"text/css\">\n$css</style>\n");
+  }
+
+  // Also store the CSS on the display in case the live preview or something
+  // needs it
+  $display->add_css = $css;
+
+  $output = "<div class=\"panel-flexible " . $renderer->base['canvas'] . " clear-block\" $renderer->id_str>\n";
+  $output .= "<div class=\"panel-flexible-inside " . $renderer->base['canvas'] . "-inside\">\n";
+
+  $output .= panels_flexible_render_items($renderer, $settings['items']['canvas']['children'], $renderer->base['canvas']);
+
+  // Wrap the whole thing up nice and snug
+  $output .= "</div>\n</div>\n";
+
+  return $output;
+}
+
+/**
+ * Draw the flexible layout.
+ */
+function theme_panels_flexible_admin($id, $content, $settings, $display, $layout, $handler) {
+  // We never draw stored flexible layouts in admin mode; they must be edited
+  // from the stored layout UI at that point.
+  if (!empty($layout['layout'])) {
+    return theme_panels_flexible($id, $content, $settings, $display, $layout, $handler);
+  }
+
+  panels_flexible_convert_settings($settings, $layout);
+  $renderer = panels_flexible_create_renderer(TRUE, $id, $content, $settings, $display, $layout, $handler);
+
+  $css = panels_flexible_render_css($renderer);
+
+  // For the administrative view, add CSS directly to head.
+  drupal_set_html_head("<style type=\"text/css\">\n$css</style>\n");
+
+  if (empty($display->editing_layout)) {
+    $output = '<input type="submit" id="panels-flexible-toggle-layout" value ="' .
+      t('Show layout designer') . '">';
+    if (user_access('administer panels layouts')) {
+      $output .= '<input type="hidden" class="panels-flexible-reuse-layout-url" value="' . url($handler->get_url('layout', 'reuse'), array('absolute' => TRUE)) . '">';
+      $output .= '<input type="submit" id="panels-flexible-reuse-layout" class="ctools-use-modal" value ="' .
+        t('Reuse layout') . '">';
+    }
+    $output .= "<div class=\"panel-flexible " . $renderer->base['canvas'] . " clear-block panel-flexible-admin panel-flexible-no-edit-layout\" $renderer->id_str>\n";
+  }
+  else {
+    $output = "<div class=\"panel-flexible " . $renderer->base['canvas'] . " clear-block panel-flexible-admin panel-flexible-edit-layout\" $renderer->id_str>\n";
+  }
+  $output .= "<div class=\"panel-flexible-inside " . $renderer->base['canvas'] . "-inside \">\n";
+
+  $content = panels_flexible_render_items($renderer, $settings['items']['canvas']['children'], $renderer->base['row'] . '-canvas');
+  $output .= panels_flexible_render_item($renderer, $settings['items']['canvas'], $content, 'canvas', 0, 0, TRUE);
+
+  // Wrap the whole thing up nice and snug
+  $output .= "</div>\n</div>\n";
+
+  drupal_add_js($layout['path'] . '/flexible-admin.js');
+  drupal_add_js(array('flexible' => array('resize' => url($handler->get_url('layout', 'resize'), array('absolute' => TRUE)))), 'setting');
+  return $output;
+}
+
+/**
+ * Render a piece of a flexible layout.
+ */
+function panels_flexible_render_items($renderer, $list, $owner_id) {
+  $output = '';
+  $groups = array('left' => '', 'middle' => '', 'right' => '');
+  $max = count($list) - 1;
+  $prev = NULL;
+
+  foreach ($list as $position => $id) {
+    $item = $renderer->settings['items'][$id];
+    $location = isset($renderer->positions[$id]) ? $renderer->positions[$id] : 'middle';
+
+    if ($renderer->admin && $item['type'] != 'row' && $prev ) {
+      $groups[$location] .= panels_flexible_render_splitter($renderer, $prev, $id);
+    }
+
+    switch ($item['type']) {
+      case 'column':
+        $content = panels_flexible_render_items($renderer, $item['children'], $renderer->base['column'] . '-' . $id);
+        $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max);
+        break;
+      case 'row':
+        $content = panels_flexible_render_items($renderer, $item['children'], $renderer->base['row'] . '-' . $id);
+        $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max, TRUE);
+        break;
+      case 'region':
+        $content = isset($renderer->content[$id]) ? $renderer->content[$id] : " ";
+        $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max);
+        break;
+    }
+
+    // If all items are fixed then we have a special splitter on the right to
+    // control the overall width.
+    if (!empty($renderer->admin) && $max == $position && $location == 'left') {
+      $groups[$location] .= panels_flexible_render_splitter($renderer, $id, NULL);
+    }
+    $prev = $id;
+  }
+
+  $group_count = count(array_filter($groups));
+
+  // Render each group. We only render the group div if we're in admin mode
+  // or if there are multiple groups.
+  foreach ($groups as $position => $content) {
+    if (!empty($content) || $renderer->admin) {
+      if ($group_count > 1 || $renderer->admin) {
+        $output .= '<div class="' . $owner_id . '-' . $position . '">' . $content . '</div>';
+      }
+      else {
+        $output .= $content;
+      }
+    }
+  }
+
+  return $output;
+}
+
+/**
+ * Render a column in the flexible layout.
+ */
+function panels_flexible_render_item($renderer, $item, $content, $id, $position, $max, $clear = FALSE) {
+
+  // If we are rendering a row and there is just one row, we don't need to
+  // render the row unless there is fixed_width content inside it.
+  if (empty($renderer->admin) && $item['type'] == 'row' && $max == 0) {
+    $fixed = FALSE;
+    foreach ($item['children'] as $id) {
+      if ($renderer->settings['items'][$id]['width_type'] != '%') {
+        $fixed = TRUE;
+        break;
+      }
+    }
+
+    if (!$fixed) {
+      return $content;
+    }
+  }
+
+  // If we are rendering a column and there is just one column, we don't
+  // need to render the column unless it has a fixed_width.
+  if (empty($renderer->admin) && $item['type'] == 'column' && $max == 0 && $item['width_type'] == '%') {
+    return $content;
+  }
+
+  $base = $renderer->item_class[$item['type']];
+  $output = '<div class="' . $base . ' ' . $renderer->base[$item['type']] . '-' . $id;
+  if ($position == 0) {
+    $output .= ' ' . $base . '-first';
+  }
+  if ($position == $max) {
+    $output .= ' ' . $base . '-last';
+  }
+  if ($clear) {
+    $output .= ' clear-block';
+  }
+
+  if (isset($item['class'])) {
+    $output .= ' ' . check_plain($item['class']);
+  }
+
+  $output .= '">' . "\n";
+
+  if (!empty($renderer->admin)) {
+    $output .= panels_flexible_render_item_links($renderer, $id, $item);
+  }
+
+  $output .= '  <div class="inside ' . $base . '-inside ' . $base . '-' . $renderer->base_class . '-' . $id . '-inside';
+  if ($position == 0) {
+    $output .= ' ' . $base . '-inside-first';
+  }
+  if ($position == $max) {
+    $output .= ' ' . $base . '-inside-last';
+  }
+  if ($clear) {
+    $output .= ' clear-block';
+  }
+
+  $output .= "\">\n";
+  $output .= $content;
+  $output .= '  </div>' . "\n";
+  $output .= '</div>' . "\n";
+
+  return $output;
+}
+/**
+ * Render a splitter div to place between the $left and $right items.
+ *
+ * If the right ID is NULL that means there isn't actually a box to the
+ * right, but we need a splitter anyway. We'll mostly use info about the
+ * left, but pretend it's 'fluid' so that the javascript won't actually
+ * modify the right item.
+ */
+function panels_flexible_render_splitter($renderer, $left_id, $right_id) {
+  $left = $renderer->settings['items'][$left_id];
+
+  $left_class = $renderer->base[$left['type']] . '-' . $left_id;
+  if ($right_id) {
+    $right = $renderer->settings['items'][$right_id];
+    $right_class = $renderer->base[$left['type']] . '-' . $right_id;
+  }
+  else {
+    $right = $left;
+    $right_class = $left_class;
+  }
+
+  $output = '<div class="panels-flexible-splitter flexible-splitter-for-' . $left_class . '">';
+
+  // Name the left object
+  $output .= '<span class="panels-flexible-splitter-left">';
+  $output .= '.' . $left_class;
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-left-id">';
+  $output .= $left_id;
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-left-width ' . $left_class . '-width">';
+  $output .= $left['width'];
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-left-scale">';
+  $output .= isset($renderer->scale[$left_id]) ? $renderer->scale[$left_id] : 1;
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-left-width-type">';
+  $output .= $left['width_type'];
+  $output .= '</span>';
+
+  // Name the right object
+  $output .= '<span class="panels-flexible-splitter-right">';
+  $output .= '.' . $right_class;
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-right-id">';
+  $output .= $right_id;
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-right-width ' . $right_class . '-width">';
+  $output .= $right['width'];
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-right-scale">';
+  $output .= isset($renderer->scale[$right_id]) ? $renderer->scale[$right_id] : 1;
+  $output .= '</span>';
+
+  $output .= '<span class="panels-flexible-splitter-right-width-type">';
+  // If there is no right, make it fluid.
+  $output .= $right_id ? $right['width_type'] : '%';
+  $output .= '</span>';
+
+  $output .= '</div>';
+  return $output;
+}
+
+/**
+ * Render the dropdown links for an item.
+ */
+function panels_flexible_render_item_links($renderer, $id, $item) {
+  $links = array();
+  $remove = '';
+  $add = '';
+  if ($item['type'] == 'column') {
+    $title = t('Column');
+    $settings = t('Column settings');
+    if (empty($item['children'])) {
+      $remove = t('Remove column');
+      $add = t('Add row');
+    }
+    else {
+      $add = t('Add row to top');
+      $add2 = t('Add row to bottom');
+    }
+  }
+  else if ($item['type'] == 'row') {
+    if ($id == 'canvas') {
+      $title = t('Canvas');
+      $settings = t('Canvas settings');
+    }
+    else {
+      $title = t('Row');
+      $settings = t('Row settings');
+    }
+    if (empty($item['children'])) {
+      if ($id != 'canvas') {
+        $remove = t('Remove row');
+      }
+      $add = $item['contains'] == 'region' ? t('Add region') : t('Add column');
+    }
+    else {
+      $add = $item['contains'] == 'region' ? t('Add region to left') : t('Add column to left');
+      $add2 = $item['contains'] == 'region' ? t('Add region to right') : t('Add column to right');
+    }
+  }
+  else if ($item['type'] == 'region') {
+    $title = t('Region');
+    $settings = t('Region settings');
+    $remove = t('Remove region');
+  }
+
+  if (!empty($settings)) {
+    $links[] = array(
+      'title' => $settings,
+      'href' => $renderer->handler->get_url('layout', 'settings', $id),
+      'attributes' => array('class' => 'ctools-use-modal'),
+    );
+  }
+  if ($add) {
+    $links[] = array(
+      'title' => $add,
+      'href' => $renderer->handler->get_url('layout', 'add', $id),
+      'attributes' => array('class' => 'ctools-use-modal'),
+    );
+  }
+  if (isset($add2)) {
+    $links[] = array(
+      'title' => $add2,
+      'href' => $renderer->handler->get_url('layout', 'add', $id, 'right'),
+      'attributes' => array('class' => 'ctools-use-modal'),
+    );
+  }
+  if ($remove) {
+    $links[] = array(
+      'title' => $remove,
+      'href' => $renderer->handler->get_url('layout', 'remove', $id),
+      'attributes' => array('class' => 'ctools-use-ajax'),
+    );
+  }
+
+  return theme('ctools_dropdown', $title, $links, FALSE,
+      'flexible-layout-only flexible-links flexible-title flexible-links-' . $id);
+}
+/**
+ * Provide CSS for a flexible layout.
+ */
+function panels_flexible_render_css($renderer) {
+  if ($renderer->admin) {
+    $parent_class = '.' . $renderer->base['row'] . '-canvas';
+  }
+  else {
+    $parent_class = '.' . $renderer->base['canvas'];
+  }
+  return panels_flexible_render_css_group($renderer, $renderer->settings['items']['canvas']['children'], $parent_class, 'column', 'canvas');
+}
+
+/**
+ * Render the CSS for a group of items to be displayed together.
+ *
+ * Columns and regions, when displayed as a group, need to cooperate in
+ * order to share margins and make sure that percent widths add up
+ * to the right total.
+ */
+function panels_flexible_render_css_group($renderer, $list, $owner_id, $type, $id) {
+  $css = array();
+
+  // Start off with some generic CSS to properly pad regions
+  $css['.' . $renderer->item_class['region']] = array(
+    'padding' => '0',
+  );
+
+  $css['.' . $renderer->item_class['region'] . '-inside'] = array(
+    'padding-right' => $renderer->region_separation,
+    'padding-left' => $renderer->region_separation,
+  );
+
+  $css['.' . $renderer->item_class['region'] . '-inside-first'] = array(
+    'padding-left' => '0',
+  );
+
+  $css['.' . $renderer->item_class['region'] . '-inside-last'] = array(
+    'padding-right' => '0',
+  );
+
+  $css['.' . $renderer->item_class['column']] = array(
+    'padding' => '0',
+  );
+
+  $css['.' . $renderer->item_class['column'] . '-inside'] = array(
+    'padding-right' => $renderer->column_separation,
+    'padding-left' => $renderer->column_separation,
+  );
+
+  $css['.' . $renderer->item_class['column'] . '-inside-first'] = array(
+    'padding-left' => '0',
+  );
+
+  $css['.' . $renderer->item_class['column'] . '-inside-last'] = array(
+    'padding-right' => '0',
+  );
+
+  // And properly pad rows too
+  $css['.' . $renderer->item_class['row']] = array(
+    'padding' => '0 0 ' . $renderer->row_separation . ' 0',
+    'margin' => '0',
+  );
+
+  $css['.' . $renderer->item_class['row'] . '-last'] = array(
+    'padding-bottom' => '0',
+  );
+
+  panels_flexible_get_css_group($css, $renderer, $list, $owner_id, $type, $id);
+
+  ctools_include('css');
+  return ctools_css_assemble($css);
+}
+
+/**
+ * Construct an array with all of the CSS properties for a group.
+ *
+ * This will parse down into children and produce all of the CSS needed if you
+ * start from the top.
+ */
+function panels_flexible_get_css_group(&$css, $renderer, $list, $owner_id, $type, $item_id) {
+  if ($type != 'row') {
+    // Go through our items and break up into right/center/right groups so we
+    // can figure out our offsets.
+
+    // right == any items on the right that are 'fixed'.
+    // middle == all fluid items.
+    // right == any items on the right that are 'fixed'.
+    $left = $middle = $right = array();
+    $left_total = $right_total = $middle_total = 0;
+    $current = 'left';
+    foreach ($list as $id) {
+      if ($renderer->settings['items'][$id]['width_type'] == 'px') {
+        // fixed
+        if ($current == 'left') {
+          $left[] = $id;
+          $renderer->positions[$id] = 'left';
+          $left_total += $renderer->settings['items'][$id]['width'];
+        }
+        else {
+          $current = 'right';
+          $right[] = $id;
+          $renderer->positions[$id] = 'right';
+          $right_total += $renderer->settings['items'][$id]['width'];
+        }
+      }
+      else {
+        // fluid
+        if ($current != 'right') {
+          $current = 'middle';
+          $middle[] = $id;
+          $renderer->positions[$id] = 'middle';
+          $middle_total += $renderer->settings['items'][$id]['width'];
+        }
+        // fall through: if current is 'right' and we ran into a 'fluid' then
+        // it gets *dropped* because that is invalid.
+      }
+    }
+
+    // Go through our right sides and create CSS.
+    foreach ($left as $id) {
+      $class = "." . $renderer->base[$type] . "-$id";
+      $css[$class] = array(
+        'position' => 'relative',
+        'float' => 'left',
+        'background-color' => 'transparent',
+        'width' => $renderer->settings['items'][$id]['width'] . "px",
+      );
+    }
+
+    // Do the same for right.
+    $right_pixels = 0;
+
+    foreach ($right as $id) {
+      $class = "." . $renderer->base[$type] . "-$id";
+      $css[$class] = array(
+        'float' => 'left',
+        'width' => $renderer->settings['items'][$id]['width'] . "px",
+      );
+    }
+
+    $max = count($middle) - 1;
+
+    if ($middle_total) {
+      // Because we love IE so much, auto scale everything to 99%. This
+      // means adding up the actual widths and then providing a multiplier
+      // to each so that the total is 99%.
+      $scale = $renderer->scale_base / $middle_total;
+      foreach ($middle as $position => $id) {
+        $class = "." . $renderer->base[$type] . "-$id";
+        $css[$class] = array(
+          'float' => 'left',
+          'width' => number_format($renderer->settings['items'][$id]['width'] * $scale, 4, '.', '') . "%",
+        );
+
+        // Store this so we can use it later.
+        // @todo: Store the scale, not the new width, so .js can adjust
+        // bi-directionally.
+        $renderer->scale[$id] = $scale;
+      }
+    }
+
+    // If there is any total remaining, we need to offset the splitter
+    // by this much too.
+    if ($left_total) {
+      // Add this even if it's 0 so we can handle removals.
+      $css["$owner_id-inside"]['padding-left'] = '0px';
+      if ($renderer->admin || count($middle)) {
+        $css["$owner_id-middle"]['margin-left'] = $left_total . 'px';
+        // IE hack
+        $css["* html $owner_id-left"]['left'] = $left_total . "px";
+        // Make this one very specific to the admin CSS so that preview
+        // does not stomp it.
+        $css[".panel-flexible-admin $owner_id-inside"]['padding-left'] = '0px';
+      }
+      else {
+        $css["$owner_id-inside"]['margin-left'] = '-' . $left_total . 'px';
+        $css["$owner_id-inside"]['padding-left'] = $left_total . 'px';
+        // IE hack
+        $css["* html $owner_id-inside"]['left'] = $left_total . "px";
+      }
+    }
+    if ($right_total) {
+      $css["$owner_id-middle"]['margin-right'] = $right_total . 'px';
+    }
+    $css["$owner_id-inside"]['padding-right'] = '0px';
+  }
+
+  // If the canvas has a fixed width set, and this is the canvas, fix the
+  // width.
+  if ($item_id == 'canvas') {
+    $item = $renderer->settings['items'][$item_id];
+
+    if (!empty($item['fixed_width']) && intval($item['fixed_width'])) {
+      $css['.' . $renderer->base['canvas']]['width'] = intval($item['fixed_width']) . 'px';
+    }
+    else {
+      $css['.' . $renderer->base['canvas']]['width'] = 'auto';
+    }
+  }
+
+  // Go through each item and process children.
+  foreach ($list as $id) {
+    $item = $renderer->settings['items'][$id];
+    if (empty($item['children'])) {
+      continue;
+    }
+
+    if ($type == 'column') {
+      // Columns can only contain rows.
+      $child_type = 'row';
+    }
+    else {
+      $child_type = isset($item['contains']) ? $item['contains'] : 'region';
+    }
+
+    $class = "." . $renderer->base[$type] . "-$id";
+    panels_flexible_get_css_group($css, $renderer, $item['children'], $class, $child_type, $id);
+  }
+}
+
+/**
+ * AJAX responder to edit flexible settings for an item.
+ *
+ * $handler object
+ *   The display renderer handler object.
+ */
+function panels_ajax_flexible_edit_settings($handler, $id) {
+  $settings = &$handler->display->layout_settings;
+  panels_flexible_convert_settings($settings, $handler->plugins['layout']);
+
+  if (empty($settings['items'][$id])) {
+    ctools_modal_render(t('Error'), t('Invalid item id.'));
+  }
+
+  $item = &$settings['items'][$id];
+  $siblings = array();
+
+  if ($id != 'canvas') {
+    $siblings = $settings['items'][$item['parent']]['children'];
+  }
+
+
+  switch ($item['type']) {
+    case 'column':
+      $title = t('Configure column');
+      break;
+    case 'row':
+      if ($id == 'canvas') {
+        $title = t('Configure canvas');
+      }
+      else {
+        $title = t('Configure row');
+      }
+      break;
+    case 'region':
+      $title = t('Configure region');
+      break;
+  }
+
+  $form_state = array(
+    'display' => &$handler->display,
+    'item' => &$item,
+    'id' => $id,
+    'siblings' => $siblings,
+    'settings' => &$settings,
+    'ajax' => TRUE,
+    'title' => $title,
+    'op' => 'edit',
+  );
+
+  $output = ctools_modal_form_wrapper('panels_flexible_config_item_form', $form_state);
+  if (empty($output)) {
+    // If the width type changed then other nearby items will have
+    // to have their widths adjusted.
+    panels_edit_cache_set($handler->cache);
+
+    $css_id = isset($handler->display->css_id) ? $handler->display->css_id : '';
+    $renderer = panels_flexible_create_renderer(TRUE, $css_id, array(), $settings, $handler->display, $handler->plugins['layout'], $handler);
+
+    $output = array();
+    // If the item is a region, replace the title.
+    $class = $renderer->base[$item['type']] . '-' . $id;
+    if ($item['type'] == 'region') {
+      $output[] = ctools_ajax_command_replace(".$class h2.label",
+        '<h2 class="label">' . check_plain($item['title']) . '</h2>');
+    }
+
+    // Rerender our links in case something changed.
+    $output[] = ctools_ajax_command_replace('.flexible-links-' . $id,
+      panels_flexible_render_item_links($renderer, $id, $item));
+
+    // If editing the canvas, reset the CSS width
+    if ($id == 'canvas') {
+      // update canvas CSS.
+      $css = array(
+        '.' . $renderer->item_class['column'] . '-inside' => array(
+          'padding-left' => $renderer->column_separation,
+          'padding-right' => $renderer->column_separation,
+        ),
+        '.' . $renderer->item_class['region'] . '-inside' => array(
+          'padding-left' => $renderer->region_separation,
+          'padding-right' => $renderer->region_separation,
+        ),
+        '.' . $renderer->item_class['row'] => array(
+          'padding-bottom' => $renderer->row_separation,
+        ),
+      );
+      if (!empty($item['fixed_width']) && intval($item['fixed_width'])) {
+        $css['.' . $renderer->base['canvas']] = array('width' => intval($item['fixed_width']) . 'px');
+      }
+      else {
+        $css['.' . $renderer->base['canvas']] = array('width' => 'auto');
+      }
+      foreach ($css as $selector => $data) {
+        $output[] = ctools_ajax_command_css($selector, $data);
+      }
+    }
+
+    $output[] = ctools_modal_command_dismiss();
+  }
+
+  $handler->commands = $output;
+}
+
+/**
+ * Configure a row, column or region on the flexible page.
+ *
+ * @param <type> $form_state
+ * @return <type>
+ */
+function panels_flexible_config_item_form(&$form_state) {
+  $display = &$form_state['display'];
+  $item = &$form_state['item'];
+  $siblings = &$form_state['siblings'];
+  $settings = &$form_state['settings'];
+  $id = &$form_state['id'];
+
+  if ($item['type'] == 'region') {
+    $form['title'] = array(
+      '#title' => t('Region title'),
+      '#type' => 'textfield',
+      '#default_value' => $item['title'],
+      '#required' => TRUE,
+    );
+  }
+
+  if ($id == 'canvas') {
+    $form['class'] = array(
+      '#title' => t('Canvas class'),
+      '#type' => 'textfield',
+      '#default_value' => isset($item['class']) ? $item['class'] : '',
+      '#description' => t('This class will the primary class for this layout. It will also be appended to all column, row and region_classes to ensure that layouts within layouts will not inherit CSS from each other. If left blank, the name of the layout or ID of the display will be used.'),
+    );
+
+    $form['column_class'] = array(
+      '#title' => t('Column class'),
+      '#type' => 'textfield',
+      '#default_value' => isset($item['column_class']) ? $item['column_class'] : '',
+      '#description' => t('This class will be applied to all columns of the layout. If left blank this will be panels-flexible-column.'),
+    );
+
+    $form['row_class'] = array(
+      '#title' => t('Row class'),
+      '#type' => 'textfield',
+      '#default_value' => isset($item['row_class']) ? $item['row_class'] : '',
+      '#description' => t('This class will be applied to all rows of the layout. If left blank this will be panels-flexible-row.'),
+    );
+
+    $form['region_class'] = array(
+      '#title' => t('Region class'),
+      '#type' => 'textfield',
+      '#default_value' => isset($item['region_class']) ? $item['region_class'] : '',
+      '#description' => t('This class will be applied to all regions of the layout. If left blank this will be panels-flexible-region.'),
+    );
+
+    $form['no_scale'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Scale fluid widths for IE6'),
+      '#description' => t('IE6 does not do well with 100% widths. If checked, width will be scaled to 99% to compensate.'),
+      '#default_value' => empty($item['no_scale']),
+    );
+
+    $form['fixed_width'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Fixed width'),
+      '#description' => t('If a value is entered, the layout canvas will be fixed to the given pixel width.'),
+      '#default_value' => isset($item['fixed_width']) ? $item['fixed_width'] : '',
+    );
+
+    $form['column_separation'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Column separation'),
+      '#description' => t('How much padding to put on columns that are that are next to other columns. Note that this is put on both columns so the real amount is doubled.'),
+      '#default_value' => isset($item['column_separation']) ? $item['column_separation'] : '0.5em',
+    );
+
+    $form['region_separation'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Region separation'),
+      '#description' => t('How much padding to put on regions that are that are next to other regions. Note that this is put on both regions so the real amount is doubled.'),
+      '#default_value' => isset($item['region_separation']) ? $item['region_separation'] : '0.5em',
+    );
+
+    $form['row_separation'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Row separation'),
+      '#description' => t('How much padding to put on beneath rows to separate them from each other. Because this is placed only on the bottom, not hte top, this is NOT doubled like column/region separation.'),
+      '#default_value' => isset($item['row_separation']) ? $item['row_separation'] : '0.5em',
+    );
+  }
+  else {
+    $form['class'] = array(
+      '#title' => t('CSS class'),
+      '#type' => 'textfield',
+      '#default_value' => isset($item['class']) ? $item['class'] : '',
+      '#description' => t('Enter a CSS class that will be used. This can be used to apply automatic styling from your theme, for example.'),
+    );
+
+    if ($item['type'] != 'row') {
+      // Test to see if there are fluid items to the left or the right. If there
+      // are fluid items on both sides, this item cannot be set to fixed.
+      $left = $right = FALSE;
+      $current = 'left';
+      foreach ($siblings as $sibling) {
+        if ($sibling == $id) {
+          $current = 'right';
+        }
+        else if ($settings['items'][$sibling]['width_type'] == '%') {
+          $$current = TRUE; // Indirection.
+        }
+      }
+
+      $form['width_type'] = array(
+        '#type' => 'select',
+        '#title' => t('Width'),
+        '#default_value' => $item['width_type'],
+        '#options' => array(
+          '%' => t('Fluid'),
+          'px' => t('Fixed'),
+        ),
+        '#disabled' => TRUE,
+      );
+    }
+    else {
+      $form['contains'] = array(
+        '#type' => 'select',
+        '#title' => t('Contains'),
+        '#default_value' => $item['contains'],
+        '#options' => array(
+          'region' => t('Regions'),
+          'column' => t('Columns'),
+        ),
+      );
+
+      if (!empty($item['children'])) {
+        $form['contains']['#disabled'] = TRUE;
+        $form['contains']['#value'] = $item['contains'];
+        $form['contains']['#description'] = t('You must remove contained items to change the row container type.');
+      }
+    }
+  }
+
+  $form['save'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+/**
+ * Submit handler for editing a flexible item.
+ */
+function panels_flexible_config_item_form_submit(&$form, &$form_state) {
+  $item = &$form_state['item'];
+  if ($item['type'] == 'region') {
+    $item['title'] = $form_state['values']['title'];
+  }
+
+  $item['class'] = $form_state['values']['class'];
+
+  if ($form_state['id'] == 'canvas') {
+    $item['column_class'] = $form_state['values']['column_class'];
+    $item['row_class'] = $form_state['values']['row_class'];
+    $item['region_class'] = $form_state['values']['region_class'];
+    // Reverse this as the checkbox is backward from how we actually store
+    // it to make it simpler to default to scaling.
+    $item['no_scale'] = !$form_state['values']['no_scale'];
+    $item['fixed_width'] = $form_state['values']['fixed_width'];
+    $item['column_separation'] = $form_state['values']['column_separation'];
+    $item['region_separation'] = $form_state['values']['region_separation'];
+    $item['row_separation'] = $form_state['values']['row_separation'];
+  }
+  else if ($item['type'] != 'row') {
+    $item['width_type'] = $form_state['values']['width_type'];
+  }
+  else {
+    $item['contains'] = $form_state['values']['contains'];
+  }
+
+}
+
+/**
+ * AJAX responder to add a new row, column or region to a flexible layout.
+ */
+function panels_ajax_flexible_edit_add($handler, $id, $location = 'left') {
+  ctools_include('modal');
+  ctools_include('ajax');
+  $settings = &$handler->display->layout_settings;
+  panels_flexible_convert_settings($settings, $handler->plugins['layout']);
+
+  if (empty($settings['items'][$id])) {
+    ctools_modal_render(t('Error'), t('Invalid item id.'));
+  }
+
+  $parent = &$settings['items'][$id];
+
+  switch ($parent['type']) {
+    case 'column':
+      $title = t('Add row');
+      // Create the new item with defaults.
+      $item = array(
+        'type' => 'row',
+        'contains' => 'region',
+        'children' => array(),
+        'parent' => $id,
+      );
+      break;
+    case 'row':
+      switch ($parent['contains']) {
+        case 'region':
+          $title = $location == 'left' ? t('Add region to left') : t('Add region to right');
+          $item = array(
+            'type' => 'region',
+            'title' => '',
+            'width' => 100,
+            'width_type' => '%',
+            'parent' => $id,
+          );
+          break;
+        case 'column':
+          $title = $location == 'left' ? t('Add column to left') : t('Add column to right');
+          $item = array(
+            'type' => 'column',
+            'width' => 100,
+            'width_type' => '%',
+            'parent' => $id,
+            'children' => array(),
+          );
+          break;
+      }
+      // Create the new item with defaults.
+      break;
+    case 'region':
+      // Cannot add items to regions.
+      break;
+  }
+
+  $form_state = array(
+    'display' => &$handler->display,
+    'parent' => &$parent,
+    'item' => &$item,
+    'id' => $id,
+    'settings' => &$settings,
+    'ajax' => TRUE,
+    'title' => $title,
+    'location' => $location,
+  );
+
+  $output = ctools_modal_form_wrapper('panels_flexible_add_item_form', $form_state);
+  if (empty($output)) {
+    // If the width type changed then other nearby items will have
+    // to have their widths adjusted.
+    panels_edit_cache_set($handler->cache);
+    $output = array();
+
+    $css_id = isset($handler->display->css_id) ? $handler->display->css_id : '';
+    // Create a renderer object so we can render our new stuff.
+    $renderer = panels_flexible_create_renderer(TRUE, $css_id, array(), $settings, $handler->display, $handler->plugins['layout'], $handler);
+
+    $content = '';
+    if ($item['type'] == 'region') {
+      $handler->plugins['layout']['panels'][$form_state['key']] = $item['title'];
+
+      $content = $handler->render_region($form_state['key'], array());
+
+      // Manually add the hidden field that our region uses to store pane info.
+      $content .= '<input type="hidden" name="panel[pane][' .
+        $form_state['key'] . ']" id="edit-panel-pane-' . $form_state['key'] . '" value="" />';
+
+    }
+    else {
+      // We need to make sure the left/middle/right divs exist inside this
+      // so that more stuff can be added inside it as needed.
+      foreach (array('left', 'middle', 'right') as $position) {
+        if (!empty($content) || $renderer->admin) {
+          $content .= '<div class="' . $renderer->base[$item['type']] . '-' . $form_state['key'] . '-' . $position . '"></div>';
+        }
+      }
+
+    }
+
+    // render the item
+    $parent_class =  $renderer->base[$parent['type']] . '-' . $id;
+    $item_output = panels_flexible_render_item($renderer, $item, $content, $form_state['key'], 0, 0, $item['type'] == 'row');
+
+    // Get all the CSS necessary for the entire row (as width adjustments may
+    // have cascaded).
+    $css = array();
+    panels_flexible_get_css_group($css, $renderer, $parent['children'], '.' . $parent_class, $item['type'], $id);
+
+    $position = isset($renderer->positions[$form_state['key']]) ? $renderer->positions[$form_state['key']] : 'middle';
+    // If there's a nearby item, add the splitter and rewrite the width
+    // of the nearby item as it probably got adjusted.
+    // The blocks of code in this else look very similar but are not actually
+    // duplicated because the order changes based on left or right.
+    switch ($position) {
+      case 'left':
+        if ($location == 'left') {
+          $item_output .= panels_flexible_render_splitter($renderer, $form_state['key'], $form_state['sibling']);
+          $output[] = ctools_ajax_command_prepend('#panels-dnd-main .' . $parent_class . '-left', $item_output);
+        }
+        else if ($location == 'right') {
+          // If we are adding to the right side of the left box, there is
+          // a splitter that we have to remove; then we add our box normally,
+          // and then add a new splitter for just our guy.
+          $output[] = ctools_ajax_command_remove('panels-flexible-splitter-for-' . $renderer->base[$item['type']] . '-' . $form_state['key']);
+          $item_output = panels_flexible_render_splitter($renderer, $form_state['sibling'], $form_state['key']) .  $item_output;
+          $item_output .= panels_flexible_render_splitter($renderer, $form_state['key'], NULL);
+          $output[] = ctools_ajax_command_append('#panels-dnd-main .' . $parent_class . '-left', $item_output);
+        }
+        break;
+      case 'right':
+        if (!empty($form_state['sibling'])) {
+          $item_output = panels_flexible_render_splitter($renderer, $form_state['sibling'], $form_state['key']) .  $item_output;
+        }
+        $output[] = ctools_ajax_command_append('#panels-dnd-main .' . $parent_class . '-right', $item_output);
+        break;
+      case 'middle':
+        if ($location == 'left') {
+          if (!empty($form_state['sibling'])) {
+            $item_output .= panels_flexible_render_splitter($renderer, $form_state['key'], $form_state['sibling']);
+          }
+          $output[] = ctools_ajax_command_prepend('#panels-dnd-main .' . $parent_class . '-middle', $item_output);
+        }
+        else {
+          if (!empty($form_state['sibling'])) {
+            $item_output = panels_flexible_render_splitter($renderer, $form_state['sibling'], $form_state['key']) .  $item_output;
+          }
+          $output[] = ctools_ajax_command_append('#panels-dnd-main .' . $parent_class . '-middle', $item_output);
+        }
+        break;
+
+    }
+
+    // Send our fix height command.
+    $output[] = array('command' => 'flexible_fix_height');
+
+    if (!empty($form_state['sibling'])) {
+      $sibling_width = '#panels-dnd-main .' . $renderer->base[$item['type']] . '-' . $form_state['sibling'] . '-width';
+      $output[] = ctools_ajax_command_html($sibling_width, $settings['items'][$form_state['sibling']]['width']);
+    }
+    foreach ($css as $selector => $data) {
+      $output[] = ctools_ajax_command_css($selector, $data);
+    }
+
+    // Rerender our parent item links:
+    $output[] = ctools_ajax_command_replace('.flexible-links-' . $id,
+      panels_flexible_render_item_links($renderer, $id, $parent));
+
+    $output[] = array(
+      'command' => 'flexible_fix_firstlast',
+      'selector' => '.' . $parent_class . '-inside',
+      'base' => 'panels-flexible-' . $item['type'],
+    );
+
+    $output[] = ctools_modal_command_dismiss();
+  }
+
+  $handler->commands = $output;
+}
+/**
+ * Form to add a row, column or region to a flexible layout.
+ * @param <type> $form_state
+ * @return <type>
+ */
+function panels_flexible_add_item_form(&$form_state) {
+  $display = &$form_state['display'];
+  $item = &$form_state['item'];
+  $parent = &$form_state['parent'];
+  $settings = &$form_state['settings'];
+  $location = &$form_state['location'];
+  $id = &$form_state['id'];
+
+  if ($item['type'] == 'region') {
+    $form['title'] = array(
+      '#title' => t('Region title'),
+      '#type' => 'textfield',
+      '#default_value' => $item['title'],
+      '#required' => TRUE,
+    );
+  }
+
+  $form['class'] = array(
+    '#title' => t('CSS Class'),
+    '#type' => 'textfield',
+    '#default_value' => isset($item['class']) ? $item['class'] : '',
+    '#description' => t('Enter a CSS class that will be used. This can be used to apply automatic styling from your theme, for example.'),
+  );
+
+  if ($item['type'] != 'row') {
+    // If there is a 'fixed' type on the side we're adding to, then this
+    // must also be fixed. Otherwise it can be either and should default to
+    // fluid.
+    $restrict = FALSE;
+
+    if (!empty($parent['children'])) {
+      if ($location == 'left') {
+        $sibling = reset($parent['children']);
+      }
+      else {
+        $sibling = end($parent['children']);
+      }
+      if ($settings['items'][$sibling]['width_type'] == 'px') {
+        $restrict = TRUE;
+        $item['width_type'] = 'px';
+      }
+    }
+
+    $form['width_type'] = array(
+      '#type' => 'select',
+      '#title' => t('Width'),
+      '#default_value' => $item['width_type'],
+      '#options' => array(
+        '%' => t('Fluid'),
+        'px' => t('Fixed'),
+      ),
+      '#disabled' => $restrict,
+    );
+    if ($restrict) {
+      // This forces the value because disabled items don't always send
+      // their data back.
+      $form['width_type']['#value'] = $item['width_type'];
+      $form['width_type']['#description'] = t('Items cannot be set to fluid if there are fixed items already on that side.');
+    }
+  }
+  else {
+    $form['contains'] = array(
+      '#type' => 'select',
+      '#title' => t('Contains'),
+      '#default_value' => $item['contains'],
+      '#options' => array(
+        'region' => t('Regions'),
+        'column' => t('Columns'),
+      ),
+    );
+  }
+
+  $form['save'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+/**
+ * Submit handler for editing a flexible item.
+ */
+function panels_flexible_add_item_form_submit(&$form, &$form_state) {
+  $item = &$form_state['item'];
+  $parent = &$form_state['parent'];
+  $location = &$form_state['location'];
+  $settings = &$form_state['settings'];
+
+  $item['class'] = $form_state['values']['class'];
+
+  if ($item['type'] == 'region') {
+    $item['title'] = $form_state['values']['title'];
+  }
+
+  if ($item['type'] != 'row') {
+    $item['width_type'] = $form_state['values']['width_type'];
+  }
+  else {
+    $item['contains'] = $form_state['values']['contains'];
+  }
+
+  if ($item['type'] == 'region') {
+    // derive the region key from the title
+    $key = preg_replace("/[^a-z0-9]/", '_', drupal_strtolower($item['title']));
+    while (isset($settings['items'][$key])) {
+      $key .= '_';
+    }
+    $form_state['key'] = $key;
+  }
+  else {
+    $form_state['key'] = $key = max(array_keys($settings['items'])) + 1;
+  }
+
+  $form_state['sibling'] = NULL;
+  if ($item['type'] != 'row' && !empty($parent['children'])) {
+    // Figure out what the width should be and adjust our sibling if
+    // necessary.
+    if ($location == 'left') {
+      $form_state['sibling'] = reset($parent['children']);
+    }
+    else {
+      $form_state['sibling'] = end($parent['children']);
+
+    }
+
+    // If there is no sibling, or the sibling is of a different type,
+    // the default 100 will work for either fixed or fluid.
+    if ($form_state['sibling'] && $settings['items'][$form_state['sibling']]['width_type'] == $item['width_type']) {
+      // steal half of the sibling's space.
+      $width = $settings['items'][$form_state['sibling']]['width'] / 2;
+      $settings['items'][$form_state['sibling']]['width'] = $width;
+      $item['width'] = $width;
+    }
+  }
+
+  // Place the item.
+  $settings['items'][$key] = $item;
+  if ($location == 'left') {
+    array_unshift($parent['children'], $key);
+  }
+  else {
+    $parent['children'][] = $key;
+  }
+}
+
+/**
+ * AJAX responder to remove an existing row, column or region from a flexible
+ * layout.
+ */
+function panels_ajax_flexible_edit_remove($handler, $id) {
+  $settings = &$handler->display->layout_settings;
+  panels_flexible_convert_settings($settings, $handler->plugins['layout']);
+
+  if (empty($settings['items'][$id])) {
+    ctools_ajax_render_error(t('Invalid item id.'));
+  }
+
+  $item = &$settings['items'][$id];
+  $css_id = isset($handler->display->css_id) ? $handler->display->css_id : '';
+  // Create a renderer object so we can render our new stuff.
+  $renderer = panels_flexible_create_renderer(TRUE, $css_id, array(), $settings, $handler->display, $handler->plugins['layout'], $handler);
+
+
+  $siblings = &$settings['items'][$item['parent']]['children'];
+  $parent_class = '.'  . $renderer->base[$settings['items'][$item['parent']]['type']] . '-' . $item['parent'];
+
+  // Find the offset of our array. This will also be the key because
+  // this is a simple array.
+  $offset = array_search($id, $siblings);
+
+  // Only bother with this stuff if our item is fluid, since fixed is
+  // as fixed does.
+  if ($item['type'] != 'row') {
+    if (isset($siblings[$offset + 1])) {
+      $next = $siblings[$offset + 1];
+    }
+    if (isset($siblings[$offset - 1])) {
+      $prev = $siblings[$offset - 1];
+    }
+
+    if ($item['width_type'] == '%') {
+      // First, try next.
+      if (isset($next) && $settings['items'][$next]['width_type'] == '%') {
+        $settings['items'][$next]['width'] += $item['width'];
+      }
+      // If that failed, try the previous one.
+      else if (isset($prev) && $settings['items'][$prev]['width_type'] == '%') {
+        $settings['items'][$prev]['width'] += $item['width'];
+      }
+    }
+    // Not sure what happens if they both failed. Maybe nothing.
+  }
+
+  // Remove the item.
+  array_splice($siblings, $offset, 1);
+
+  unset($settings['items'][$id]);
+
+  // Save our new state.
+  panels_edit_cache_set($handler->cache);
+  $class = $renderer->base[$item['type']] . '-' . $id;
+  $output = array();
+
+  $output[] = ctools_ajax_command_remove('#panels-dnd-main .' . $class);
+
+  // Regenerate the CSS for siblings.
+  if (!empty($siblings)) {
+    // Get all the CSS necessary for the entire row (as width adjustments may
+    // have cascaded).
+    $css = array();
+    panels_flexible_get_css_group($css, $renderer, $siblings, $parent_class, $item['type'], $item['parent']);
+    foreach ($css as $selector => $data) {
+      $output[] = ctools_ajax_command_css($selector, $data);
+    }
+  }
+
+  // There are potentially two splitters linked to this item to be removed.
+  if (!empty($prev)) {
+    $output[] = ctools_ajax_command_remove('.flexible-splitter-for-' . $renderer->base[$item['type']] . '-' . $prev);
+  }
+
+  // Try to remove the 'next' one even if there isn't a $next.
+  $output[] = ctools_ajax_command_remove('.flexible-splitter-for-' . $renderer->base[$item['type']] . '-' . $id);
+
+  if (!empty($prev) && !empty($next)) {
+    // Add a new splitter that links $prev and $next:
+    $splitter = panels_flexible_render_splitter($renderer, $prev, $next);
+    $prev_class = '#panels-dnd-main .' . $renderer->base[$item['type']] . '-' . $prev;
+    $output[] = ctools_ajax_command_after($prev_class, $splitter);
+    // Send our fix height command.
+    $output[] = array('command' => 'flexible_fix_height');
+  }
+  // Rerender our parent item links:
+  $output[] = ctools_ajax_command_replace('.flexible-links-' . $item['parent'],
+    panels_flexible_render_item_links($renderer, $item['parent'], $settings['items'][$item['parent']]));
+
+  $output[] = array(
+    'command' => 'flexible_fix_firstlast',
+    'selector' => $parent_class . '-inside',
+    'base' => 'panels-flexible-' . $item['type'],
+  );
+
+  $handler->commands = $output;
+}
+
+/**
+ * AJAX responder to store resize information when the user adjusts the
+ * splitter.
+ */
+function panels_ajax_flexible_edit_resize($handler) {
+  ctools_include('ajax');
+  $settings = &$handler->display->layout_settings;
+  panels_flexible_convert_settings($settings, $handler->plugins['layout']);
+
+  $settings['items'][$_POST['left']]['width'] = $_POST['left_width'];
+  if (!empty($_POST['right']) && $_POST['right'] != $_POST['left']) {
+    $settings['items'][$_POST['right']]['width'] = $_POST['right_width'];
+  }
+
+  // Save our new state.
+  panels_edit_cache_set($handler->cache);
+
+  $handler->commands = array('ok');
+}
+
+/**
+ * AJAX form to bring up the "reuse" modal.
+ */
+function panels_ajax_flexible_edit_reuse($handler) {
+  $settings = &$handler->display->layout_settings;
+  panels_flexible_convert_settings($settings, $handler->plugins['layout']);
+
+  $form_state = array(
+    'display' => &$handler->display,
+    'settings' => &$settings,
+    'ajax' => TRUE,
+    'title' => t('Save this layout for reuse'),
+  );
+
+  $output = ctools_modal_form_wrapper('panels_flexible_reuse_form', $form_state);
+  if (empty($output)) {
+    // Create the new layout.
+    ctools_include('export');
+    $layout = ctools_export_crud_new('panels_layout');
+    $layout->plugin = 'flexible';
+    $layout->name = $form_state['values']['name'];
+    $layout->admin_title = $form_state['values']['admin_title'];
+    $layout->admin_description = $form_state['values']['admin_description'];
+    $layout->category = $form_state['values']['category'];
+    $layout->settings = $handler->display->layout_settings;
+
+    // Save it.
+    ctools_export_crud_save('panels_layout', $layout);
+
+    if (empty($form_state['values']['keep'])) {
+      // Set the actual layout_settings to now use the newly minted layout:
+      $handler->display->layout = 'flexible:' . $layout->name;
+      $handler->display->layout_settings = array();
+
+      // Save our new state.
+      panels_edit_cache_set($handler->cache);
+    }
+
+    // Dismiss the modal.
+    $output[] = ctools_modal_command_dismiss();
+  }
+
+  $handler->commands = $output;
+}
+
+function panels_flexible_reuse_form(&$form_state) {
+  $form['markup'] = array(
+    '#prefix' => '<div class="description">',
+    '#suffix' => '</div>',
+    '#value' => t('If you save this layout for reuse it will appear in the list of reusable layouts at admin/build/panels/layouts, and you will need to go there to edit it. This layout will then become an option for all future panels you make.'),
+  );
+
+  $form['admin_title'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Administrative title'),
+    '#description' => t('This will appear in the administrative interface to easily identify it.'),
+  );
+
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Machine name'),
+    '#description' => t('The machine readable name of this layout. It must be unique, and it must contain only alphanumeric characters and underscores. Once created, you will not be able to change this value!'),
+  );
+
+  $form['category'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Category'),
+    '#description' => t('What category this layout should appear in. If left blank the category will be "Miscellaneous".'),
+  );
+
+  $form['admin_description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Administrative description'),
+    '#description' => t('A description of what this layout is, does or is for, for administrative use.'),
+  );
+
+  $form['keep'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Keep current panel layout flexible'),
+    '#description' => t('If checked, this panel will continue to use a generic flexible layout and will not use the saved layout. Use this option if you wish to clone this layout.'),
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+function panels_flexible_reuse_form_validate(&$form, &$form_state) {
+  if (empty($form_state['values']['name'])) {
+    form_error($form['name'], t('You must choose a machine name.'));
+  }
+
+  ctools_include('export');
+  $test = ctools_export_crud_load('panels_layout', $form_state['values']['name']);
+  if ($test) {
+    form_error($form['name'], t('That name is used by another layout: @layout', array('@layout' => $test->admin_title)));
+  }
+
+  // Ensure name fits the rules:
+  if (preg_match('/[^a-zA-Z0-9_]/', $form_state['values']['name'])) {
+    form_error($form['name'], t('Name must be alphanumeric or underscores only.'));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.png
new file mode 100644
index 0000000..14b4779
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/flexible.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/grippie-vertical.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/grippie-vertical.png
new file mode 100644
index 0000000..7d5b7ea
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/flexible/grippie-vertical.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.css
new file mode 100644
index 0000000..fe5edfb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.css
@@ -0,0 +1,21 @@
+
+.panel-1col { 
+/*  overflow: hidden;  */
+}
+
+.panel-2col .panel-col-first .inside { 
+  margin: 0;
+}
+
+
+.panel-1col .panel-col { 
+}
+
+#panels-edit-display .panel-pane,
+#panels-edit-display .helperclass {
+  margin: .5em;
+}
+
+.panel-2col .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.inc
new file mode 100644
index 0000000..619950f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.inc
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * implementation of hook_panels_layouts()
+ */
+// Plugin definition
+$plugin = array(
+  'title' => t('Single column'),
+  'category' => t('Columns: 1'),
+  'icon' => 'onecol.png',
+  'theme' => 'panels_onecol',
+  'css' => 'onecol.css',
+  'panels' => array('middle' => t('Middle column')),
+);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.png
new file mode 100644
index 0000000..176ed69
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/onecol.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/panels-onecol.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/panels-onecol.tpl.php
new file mode 100644
index 0000000..ccfd0c2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/onecol/panels-onecol.tpl.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * @file
+ * Template for a 3 column panel layout.
+ *
+ * This template provides a very simple "one column" panel display layout.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   $content['middle']: The only panel in the layout.
+ */
+?>
+<div class="panel-display panel-1col clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <div class="panel-panel panel-col">
+    <div><?php print $content['middle']; ?></div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/panels-threecol-25-50-25.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/panels-threecol-25-50-25.tpl.php
new file mode 100644
index 0000000..20f11e8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/panels-threecol-25-50-25.tpl.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * @file
+ * Template for the 1 column panel layout.
+ *
+ * This template provides a three column 25%-50%-25% panel display layout.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['left']: Content in the left column.
+ *   - $content['middle']: Content in the middle column.
+ *   - $content['right']: Content in the right column.
+ */
+?>
+<div class="panel-display panel-3col clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <div class="panel-panel panel-col-first">
+    <div class="inside"><?php print $content['left']; ?></div>
+  </div>
+
+  <div class="panel-panel panel-col">
+    <div class="inside"><?php print $content['middle']; ?></div>
+  </div>
+
+  <div class="panel-panel panel-col-last">
+    <div class="inside"><?php print $content['right']; ?></div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.css
new file mode 100644
index 0000000..2bffe57
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.css
@@ -0,0 +1,35 @@
+
+.panel-3col { 
+/*  overflow: hidden;  */
+}
+
+.panel-3col .panel-col-first { 
+  float: left; 
+  width: 25%; 
+}
+
+.panel-3col .panel-col-first .inside { 
+  margin: 0 .5em 1em 0;
+}
+
+.panel-3col .panel-col { 
+  float: left; 
+  width: 50%; 
+}
+
+.panel-3col .panel-col .inside { 
+  margin: 0 .5em 1em .5em;
+}
+
+.panel-3col .panel-col-last { 
+  float: left; 
+  width: 25%; 
+}
+
+.panel-3col .panel-col-last .inside { 
+  margin: 0 0 1em .5em;
+}
+
+.panel-3col .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.inc
new file mode 100644
index 0000000..fdd911a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.inc
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * implementation of hook_panels_layouts
+ */
+// Plugin definition
+$plugin = array(
+  'title' => t('Three column 25/50/25'),
+  'category' => t('Columns: 3'),
+  'icon' => 'threecol_25_50_25.png',
+  'theme' => 'panels_threecol_25_50_25',
+  'theme arguments' => array('id', 'content'),
+  'css' => 'threecol_25_50_25.css',
+  'panels' => array(
+    'left' => t('Left side'),
+    'middle' => t('Middle column'),
+    'right' => t('Right side')
+  ),
+);
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.png
new file mode 100644
index 0000000..ad6832a
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25/threecol_25_50_25.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/panels-threecol-25-50-25-stacked.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/panels-threecol-25-50-25-stacked.tpl.php
new file mode 100644
index 0000000..ff1096a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/panels-threecol-25-50-25-stacked.tpl.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @file
+ * Template for a 3 column panel layout.
+ *
+ * This template provides a three column 25%-50%-25% panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['top']: Content in the top row.
+ *   - $content['left']: Content in the left column.
+ *   - $content['middle']: Content in the middle column.
+ *   - $content['right']: Content in the right column.
+ *   - $content['bottom']: Content in the bottom row.
+ */
+?>
+<div class="panel-display panel-3col-stacked clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <?php if ($content['top']): ?>
+    <div class="panel-panel panel-col-top">
+      <div class="inside"><?php print $content['top']; ?></div>
+    </div>    
+  <?php endif ?>
+
+  <div class="center-wrapper">
+    <div class="panel-panel panel-col-first">
+      <div class="inside"><?php print $content['left']; ?></div>
+    </div>
+
+    <div class="panel-panel panel-col">
+      <div class="inside"><?php print $content['middle']; ?></div>
+    </div>
+
+    <div class="panel-panel panel-col-last">
+      <div class="inside"><?php print $content['right']; ?></div>
+    </div>
+  </div>
+
+  <?php if ($content['bottom']): ?>
+    <div class="panel-panel panel-col-bottom">
+      <div class="inside"><?php print $content['bottom']; ?></div>
+    </div>    
+  <?php endif ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.css
new file mode 100644
index 0000000..1aa00da
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.css
@@ -0,0 +1,45 @@
+
+.panel-3col-stacked { 
+/*  overflow: hidden;  */
+}
+
+.panel-3col-stacked .panel-col-top,
+.panel-3col-stacked .panel-col-bottom { 
+  width: 100%; 
+  clear: both;
+}
+
+.panel-3col-stacked .panel-col-top .inside {
+  margin-bottom: .5em;
+}
+
+.panel-3col-stacked .panel-col-first { 
+  float: left; 
+  width: 25%; 
+}
+
+.panel-3col-stacked .panel-col .inside { 
+  margin: 0 .5em 1em .5em;
+}
+
+.panel-3col-stacked .panel-col { 
+  float: left; 
+  width: 50%; 
+}
+
+.panel-3col-stacked .panel-col .inside { 
+  margin: 0 .5em 1em .5em;
+}
+
+.panel-3col-stacked .panel-col-last { 
+  float: left; 
+  width: 25%; 
+}
+
+.panel-3col-stacked .panel-col-last .inside { 
+  margin: 0 0 1em .5em;
+}
+
+.panel-3col-stacked .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.inc
new file mode 100644
index 0000000..4d6158e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.inc
@@ -0,0 +1,17 @@
+<?php
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Three column 25/50/25 stacked'),
+  'category' => t('Columns: 3'),
+  'icon' => 'threecol_25_50_25_stacked.png',
+  'theme' => 'panels_threecol_25_50_25_stacked',
+  'css' => 'threecol_25_50_25_stacked.css',
+  'panels' => array(
+    'top' => t('Top'),
+    'left' => t('Left side'),
+    'middle' => t('Middle column'),
+    'right' => t('Right side'),
+    'bottom' => t('Bottom'),
+  ),
+);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.png
new file mode 100644
index 0000000..14b4779
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_25_50_25_stacked/threecol_25_50_25_stacked.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/panels-threecol-33-34-33.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/panels-threecol-33-34-33.tpl.php
new file mode 100644
index 0000000..0789982
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/panels-threecol-33-34-33.tpl.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @file
+ * Template for a 3 column panel layout.
+ *
+ * This template provides a three column panel display layout, with
+ * each column roughly equal in width.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['left']: Content in the left column.
+ *   - $content['middle']: Content in the middle column.
+ *   - $content['right']: Content in the right column.
+ */
+?>
+
+<div class="panel-display panel-3col-33 clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <div class="panel-panel panel-col-first">
+    <div class="inside"><?php print $content['left']; ?></div>
+  </div>
+
+  <div class="panel-panel panel-col">
+    <div class="inside"><?php print $content['middle']; ?></div>
+  </div>
+
+  <div class="panel-panel panel-col-last">
+    <div class="inside"><?php print $content['right']; ?></div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.css
new file mode 100644
index 0000000..da2d931
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.css
@@ -0,0 +1,35 @@
+
+.panel-3col-33 { 
+/*  overflow: hidden;  */
+}
+
+.panel-3col-33 .panel-col-first { 
+  float: left; 
+  width: 33%; 
+}
+
+.panel-3col-33 .panel-col-first .inside { 
+  margin: 0 .5em 1em 0;
+}
+
+.panel-3col-33 .panel-col { 
+  float: left; 
+  width: 33%; 
+}
+
+.panel-3col-33 .panel-col .inside { 
+  margin: 0 .5em 1em .5em;
+}
+
+.panel-3col-33 .panel-col-last { 
+  float: left; 
+  width: 33%; 
+}
+
+.panel-3col-33 .panel-col-last .inside { 
+  margin: 0 0 1em .5em;
+}
+
+.panel-3col-33 .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.inc
new file mode 100644
index 0000000..d770596
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.inc
@@ -0,0 +1,15 @@
+<?php
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Three column 33/34/33'),
+  'category' => t('Columns: 3'),
+  'icon' => 'threecol_33_34_33.png',
+  'theme' => 'panels_threecol_33_34_33',
+  'css' => 'threecol_33_34_33.css',
+  'panels' => array(
+    'left' => t('Left side'),
+    'middle' => t('Middle column'),
+    'right' => t('Right side')
+   ),
+);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.png
new file mode 100644
index 0000000..468f8bb
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33/threecol_33_34_33.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/panels-threecol-33-34-33-stacked.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/panels-threecol-33-34-33-stacked.tpl.php
new file mode 100644
index 0000000..5c84a48
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/panels-threecol-33-34-33-stacked.tpl.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @file
+ * Template for a 3 column panel layout.
+ *
+ * This template provides a three column 25%-50%-25% panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['top']: Content in the top row.
+ *   - $content['left']: Content in the left column.
+ *   - $content['middle']: Content in the middle column.
+ *   - $content['right']: Content in the right column.
+ *   - $content['bottom']: Content in the bottom row.
+ */
+?>
+<div class="panel-display panel-3col-33-stacked  clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <?php if ($content['top']): ?>
+    <div class="panel-panel panel-col-top">
+      <div class="inside"><?php print $content['top']; ?></div>
+    </div>    
+  <?php endif ?>
+
+  <div class="center-wrapper">
+    <div class="panel-panel panel-col-first">
+      <div class="inside"><?php print $content['left']; ?></div>
+    </div>
+
+    <div class="panel-panel panel-col">
+      <div class="inside"><?php print $content['middle']; ?></div>
+    </div>
+
+    <div class="panel-panel panel-col-last">
+      <div class="inside"><?php print $content['right']; ?></div>
+    </div>
+  </div>
+
+  <?php if ($content['bottom']): ?>
+    <div class="panel-panel panel-col-bottom">
+      <div class="inside"><?php print $content['bottom']; ?></div>
+    </div>    
+  <?php endif ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.css
new file mode 100644
index 0000000..57b87ee
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.css
@@ -0,0 +1,45 @@
+
+.panel-3col-33-stacked { 
+/*  overflow: hidden;  */
+}
+
+.panel-3col-33-stacked .panel-col-top,
+.panel-3col-33-stacked .panel-col-bottom { 
+  width: 100%; 
+  clear: both;
+}
+
+.panel-3col-33-stacked .panel-col-top .inside {
+  margin-bottom: 1em;
+}
+
+.panel-3col-33-stacked .panel-col-first { 
+  float: left; 
+  width: 33%; 
+}
+
+.panel-3col-33-stacked .panel-col-first .inside { 
+  margin: 0 .5em 1em 0;
+}
+
+.panel-3col-33-stacked .panel-col { 
+  float: left; 
+  width: 33%; 
+}
+
+.panel-3col-33-stacked .panel-col .inside { 
+  margin: 0 .5em 1em .5em;
+}
+
+.panel-3col-33-stacked .panel-col-last { 
+  float: left; 
+  width: 33%; 
+}
+
+.panel-3col-33-stacked .panel-col-last .inside { 
+  margin: 0 0 1em .5em;
+}
+
+.panel-3col-33-stacked .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.inc
new file mode 100644
index 0000000..73a5a19
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.inc
@@ -0,0 +1,17 @@
+<?php
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Three column 33/34/33 stacked'),
+  'category' => t('Columns: 3'),
+  'icon' => 'threecol_33_34_33_stacked.png',
+  'theme' => 'panels_threecol_33_34_33_stacked',
+  'css' => 'threecol_33_34_33_stacked.css',
+  'panels' => array(
+    'top' => t('Top'),
+    'left' => t('Left side'),
+    'middle' => t('Middle column'),
+    'right' => t('Right side'),
+    'bottom' => t('Bottom')
+  ),
+);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.png
new file mode 100644
index 0000000..ffd1351
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/threecol_33_34_33_stacked/threecol_33_34_33_stacked.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/panels-twocol.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/panels-twocol.tpl.php
new file mode 100644
index 0000000..e72fcaf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/panels-twocol.tpl.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * @file
+ * Template for a 2 column panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * each column roughly equal in width.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['left']: Content in the left column.
+ *   - $content['right']: Content in the right column.
+ */
+?>
+<div class="panel-display panel-2col clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <div class="panel-panel panel-col-first">
+    <div class="inside"><?php print $content['left']; ?></div>
+  </div>
+
+  <div class="panel-panel panel-col-last">
+    <div class="inside"><?php print $content['right']; ?></div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.css
new file mode 100644
index 0000000..6e53eca
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.css
@@ -0,0 +1,37 @@
+
+.panel-2col { 
+/*  overflow: hidden;  */
+}
+
+.panel-2col .panel-col-first { 
+  float: left; 
+  width: 50%; 
+}
+* html .panel-2col .panel-col-first {
+  width: 49.9%;
+}
+
+.panel-2col .panel-col-first .inside { 
+  margin: 0 .5em 1em 0;
+}
+
+.panel-2col .panel-col-last { 
+  float: left; 
+  width: 50%; 
+}
+* html .panel-2col .panel-col-last {
+  width: 49.9%;
+}
+
+.panel-2col .panel-col-last .inside { 
+  margin: 0 0 1em .5em;
+}
+
+#panels-edit-display .panel-pane,
+#panels-edit-display .helperclass {
+  margin: .5em;
+}
+
+.panel-2col .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.inc
new file mode 100644
index 0000000..315f996
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.inc
@@ -0,0 +1,14 @@
+<?php
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Two column'),
+  'category' => t('Columns: 2'),
+  'icon' => 'twocol.png',
+  'theme' => 'panels_twocol',
+  'css' => 'twocol.css',
+  'panels' => array(
+    'left' => t('Left side'),
+    'right' => t('Right side')
+  ),
+);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.png
new file mode 100644
index 0000000..9d2965e
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol/twocol.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/panels-twocol-bricks.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/panels-twocol-bricks.tpl.php
new file mode 100644
index 0000000..a447a0e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/panels-twocol-bricks.tpl.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * @file
+ * Template for a 2 column panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * each column roughly equal in width. It is 5 rows high; the top
+ * middle and bottom rows contain 1 column, while the second
+ * and fourth rows contain 2 columns.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['top']: Content in the top row.
+ *   - $content['left_above']: Content in the left column in row 2.
+ *   - $content['right_above']: Content in the right column in row 2.
+ *   - $content['middle']: Content in the middle row.
+ *   - $content['left_below']: Content in the left column in row 4.
+ *   - $content['right_below']: Content in the right column in row 4.
+ *   - $content['right']: Content in the right column.
+ *   - $content['bottom']: Content in the bottom row.
+ */
+?>
+<div class="panel-display panel-2col-bricks clear-block" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <?php if ($content['top']): ?>
+    <div class="panel-panel panel-col-top">
+      <div class="inside"><?php print $content['top']; ?></div>
+    </div>    
+  <?php endif ?>
+
+  <?php if ($content['left_above'] || $content['right_above']): ?>
+    <div class="center-wrapper">
+      <div class="panel-panel panel-col-first">
+        <div class="inside"><?php print $content['left_above']; ?></div>
+      </div>
+
+      <div class="panel-panel panel-col-last">
+        <div class="inside"><?php print $content['right_above']; ?></div>
+      </div>
+    </div>    
+  <?php endif ?>
+
+  <?php if ($content['middle']): ?>
+    <div class="panel-panel panel-col-middle">
+      <div class="inside"><?php print $content['middle']; ?></div>
+    </div>    
+  <?php endif ?>
+
+  <?php if ($content['left_below'] || $content['right_below']): ?>
+    <div class="center-wrapper">
+      <div class="panel-panel panel-col-first">
+        <div class="inside"><?php print $content['left_below']; ?></div>
+      </div>
+
+      <div class="panel-panel panel-col-last">
+        <div class="inside"><?php print $content['right_below']; ?></div>
+      </div>
+    </div>    
+  <?php endif ?>
+
+  <?php if ($content['bottom']): ?>
+    <div class="panel-panel panel-col-bottom">
+      <div class="inside"><?php print $content['bottom']; ?></div>
+    </div>    
+  <?php endif ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.css
new file mode 100644
index 0000000..4997ce6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.css
@@ -0,0 +1,46 @@
+
+.panel-2col-bricks { 
+/*  overflow: hidden;  */
+  margin-top: 0;
+  padding-top: 0;
+}
+
+.panel-2col-bricks .panel-col-top,
+.panel-2col-bricks .panel-col-middle,
+.panel-2col-bricks .panel-col-bottom { 
+  width: 99.9%; 
+  clear: both;
+}
+
+.panel-2col-bricks .panel-col-top .inside,
+.panel-2col-bricks .panel-col-middle .inside {
+  margin-bottom: .5em;
+}
+
+.panel-2col-bricks .panel-col-first { 
+  float: left; 
+  width: 50%; 
+}
+* html .panel-2col-bricks .panel-col-first {
+  width: 49.9%;
+}
+
+.panel-2col-bricks .panel-col-first .inside { 
+  margin: 0 .5em .5em 0;
+}
+
+.panel-2col-bricks .panel-col-last { 
+  float: left; 
+  width: 50%; 
+}
+* html .panel-2col-bricks .panel-col-last {
+  width: 49.9%;
+}
+
+.panel-2col-bricks .panel-col-last .inside { 
+  margin: 0 0 .5em .5em;
+}
+
+.panel-2col-bricks .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.inc
new file mode 100644
index 0000000..0ade37f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.inc
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * @file
+ * Implementation for the two column bricked layout
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Two column bricks'),
+  'category' => t('Columns: 2'),
+  'icon' => 'twocol_bricks.png',
+  'theme' => 'panels_twocol_bricks',
+  'css' => 'twocol_bricks.css',
+  'panels' => array(
+    'top' => t('Top'),
+    'left_above' => t('Left above'),
+    'right_above' => t('Right above'),
+    'middle' => t('Middle'),
+    'left_below' => t('Left below'),
+    'right_below' => t('Right below'),
+    'bottom' => t('Bottom'),
+  ),
+);
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.png
new file mode 100644
index 0000000..450395c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_bricks/twocol_bricks.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/panels-twocol-stacked.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/panels-twocol-stacked.tpl.php
new file mode 100644
index 0000000..a129725
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/panels-twocol-stacked.tpl.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * @file
+ * Template for a 2 column panel layout.
+ *
+ * This template provides a two column panel display layout, with
+ * additional areas for the top and the bottom.
+ *
+ * Variables:
+ * - $id: An optional CSS id to use for the layout.
+ * - $content: An array of content, each item in the array is keyed to one
+ *   panel of the layout. This layout supports the following sections:
+ *   - $content['top']: Content in the top row.
+ *   - $content['left']: Content in the left column.
+ *   - $content['right']: Content in the right column.
+ *   - $content['bottom']: Content in the bottom row.
+ */
+?>
+<div class="panel-2col-stacked clear-block panel-display" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
+  <?php if ($content['top']): ?>
+    <div class="panel-col-top panel-panel">
+      <div class="inside"><?php print $content['top']; ?></div>
+    </div>    
+  <?php endif; ?>
+
+  <div class="center-wrapper">
+    <div class="panel-col-first panel-panel">
+      <div class="inside"><?php print $content['left']; ?></div>
+    </div>
+    <div class="panel-col-last panel-panel">
+      <div class="inside"><?php print $content['right']; ?></div>
+    </div>
+  </div>
+
+  <?php if ($content['bottom']): ?>
+    <div class="panel-col-bottom panel-panel">
+      <div class="inside"><?php print $content['bottom']; ?></div>
+    </div>    
+  <?php endif; ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.css
new file mode 100644
index 0000000..56eb3e3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.css
@@ -0,0 +1,41 @@
+
+.panel-2col-stacked { 
+/*  overflow: hidden;  */
+  margin-top: 0;
+  padding-top: 0;
+}
+
+.panel-2col-stacked .panel-col-top,
+.panel-2col-stacked .panel-col-bottom { 
+  width: 99.9%; 
+  clear: both;
+}
+
+.panel-2col-stacked .panel-col-top .inside {
+  margin-bottom: .5em;
+}
+
+.panel-2col-stacked .panel-col-first { 
+  float: left; 
+  width: 50%; 
+}
+* html .panel-2col-stacked .panel-col-first {
+  width: 49.9%;
+}
+
+.panel-2col-stacked .panel-col-first .inside { 
+  margin: 0 .5em 1em 0;
+}
+
+.panel-2col-stacked .panel-col-last { 
+  float: left; 
+  width: 49.9%; 
+}
+
+.panel-2col-stacked .panel-col-last .inside { 
+  margin: 0 0 1em .5em;
+}
+
+.panel-2col-stacked .panel-separator {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.inc
new file mode 100644
index 0000000..aa59bff
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.inc
@@ -0,0 +1,16 @@
+<?php
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Two column stacked'),
+  'category' => t('Columns: 2'),
+  'icon' => 'twocol_stacked.png',
+  'theme' => 'panels_twocol_stacked',
+  'css' => 'twocol_stacked.css',
+  'panels' => array(
+    'top' => t('Top'),
+    'left' => t('Left side'),
+    'right' => t('Right side'),
+    'bottom' => t('Bottom')
+  ),
+);
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.png
new file mode 100644
index 0000000..30ab8b6
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/layouts/twocol_stacked/twocol_stacked.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/page_wizards/landing_page.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/page_wizards/landing_page.inc
new file mode 100644
index 0000000..e737a1d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/page_wizards/landing_page.inc
@@ -0,0 +1,271 @@
+<?php
+/**
+ * @file
+ * A page creation wizard to quickly create simple landing pages.
+ *
+ * This wizard strips out a lot of features that are not normally needed for
+ * simple landing pages, such as access control, tabs, contexts, and the
+ * selection of a variant. It will just assume you want a panel and let you
+ * select the layout right away. This is 2 fewer forms than the standard
+ * add page process and it will point you at the finished page rather than
+ * sending you directly to the edit UI when finished.
+ *
+ * It also will auto-enable IPE if it can.
+ */
+$plugin = array(
+  'title' => t('Landing page'),
+  'page title' => t('Landing page wizard'),
+  'description' => t('Landing pages are simple pages that have a path, possibly a visible menu entry, and a panel layout with simple content.'),
+
+  'type' => 'panels',
+
+  'form info' => array(
+    'order' => array(
+      'basic' => t('Basic settings'),
+      'content' => t('Content'),
+    ),
+
+    'forms' => array(
+      'basic' => array(
+        'form id' => 'panels_landing_page_basic',
+      ),
+      'content' => array(
+        'form id' => 'panels_landing_page_content',
+      ),
+    ),
+  ),
+
+  'default cache' => 'panels_landing_page_new_page',
+
+  'finish' => 'panels_landing_page_finish',
+);
+
+/**
+ * Provide defaults for a new cache.
+ *
+ * The cache will store all our temporary data; it isn't really a page
+ * in itself, but it does contain everything we need to make one at the end.
+ */
+function panels_landing_page_new_page(&$cache) {
+  $cache->name = '';
+  $cache->admin_title = '';
+  $cache->admin_description = '';
+  $cache->path = '';
+  $cache->menu_entry = FALSE;
+  $cache->menu = array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'weight' => 0,
+      'name' => 'navigation',
+    ),
+  );
+  $cache->display = panels_new_display();
+  $cache->display->layout = 'flexible';
+}
+
+/**
+ * First page of our page creator wizard.
+ */
+function panels_landing_page_basic(&$form, &$form_state) {
+  $cache = &$form_state['cache'];
+  ctools_include('dependent');
+
+  $form['admin_title'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Administrative title'),
+    '#description' => t('The name of this page. This will appear in the administrative interface to easily identify it.'),
+    '#default_value' => $cache->admin_title,
+    '#required' => TRUE,
+  );
+
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Machine name'),
+    '#description' => t('The machine readable name of this page. It must be unique, and it must contain only alphanumeric characters and underscores. Once created, you will not be able to change this value!'),
+    '#default_value' => $cache->name,
+    '#required' => TRUE,
+  );
+
+  $form['admin_description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Administrative description'),
+    '#description' => t('A description of what this page is, does or is for, for administrative use.'),
+    '#default_value' => $cache->admin_description,
+  );
+
+  // path
+  $form['path'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Path'),
+    '#default_value' => $cache->path,
+    '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='),
+    '#required' => TRUE,
+  );
+
+  $form['menu_entry'] = array(
+    '#type' => 'checkbox',
+    '#default_value' => $cache->menu_entry,
+    '#title' => t('Add a visible menu entry for this page'),
+  );
+
+  $form['menu']['#tree'] = TRUE;
+
+  $form['menu']['title'] = array(
+    '#title' => t('Menu title'),
+    '#type' => 'textfield',
+    '#default_value' => $cache->menu['title'],
+    '#process' => array('ctools_dependent_process'),
+    '#dependency' => array('edit-menu-entry' => array(1)),
+  );
+
+  // Only display the menu selector if menu module is enabled.
+  if (module_exists('menu')) {
+    $form['menu']['name'] = array(
+      '#title' => t('Menu'),
+      '#type' => 'select',
+      '#options' => menu_get_menus(),
+      '#default_value' => $cache->menu['name'],
+      '#process' => array('ctools_dependent_process'),
+    '#dependency' => array('edit-menu-entry' => array(1)),
+    );
+  }
+  else {
+    $form['menu']['name'] = array(
+      '#type' => 'value',
+      '#value' => $cache->menu['name'],
+    );
+    $form['menu']['markup'] = array(
+      '#value' => t('Menu selection requires the activation of menu module.'),
+    );
+  }
+  $form['menu']['weight'] = array(
+    '#title' => t('Weight'),
+    '#type' => 'textfield',
+    '#default_value' => isset($cache->menu['weight']) ? $cache->menu['weight'] : 0,
+    '#description' => t('The lower the weight the higher/further left it will appear.'),
+    '#process' => array('ctools_dependent_process'),
+    '#dependency' => array('edit-menu-entry' => array(1)),
+  );
+
+  ctools_include('page-wizard', 'panels');
+  panels_page_wizard_add_layout($form, $form_state);
+}
+
+/**
+ * Submit function to store the form data in our cache.
+ */
+function panels_landing_page_basic_validate(&$form, &$form_state) {
+  // Ensure all 'page' features are loaded.
+  $page_task = page_manager_get_task('page');
+
+  // Validate that the name is ok.
+  $test = page_manager_page_load($form_state['values']['name']);
+  if ($test) {
+    form_error($form['name'], t('That name is used by another page: @page', array('@page' => $test->admin_title)));
+  }
+
+  // Ensure name fits the rules:
+  if (preg_match('/[^a-zA-Z0-9_]/', $form_state['values']['name'])) {
+    form_error($form['name'], t('Page name must be alphanumeric or underscores only.'));
+  }
+
+  // Validate that the path is ok.
+  if (preg_match('/[%!\?#&]/', $form_state['values']['path'])) {
+    form_error($form['path'], t('%, !, ?, #, or & cannot appear in the path.'));
+  }
+
+  // Check to see if something is already using the path
+  $result = db_query("SELECT * FROM {menu_router} WHERE path = '%s'", $form_state['values']['path']);
+  while ($router = db_fetch_object($result)) {
+    form_error($form['path'], t('That path is already in use. This system cannot override existing paths.'));
+    return;
+  }
+
+  // Ensure the path is not already an alias to something else.
+  $result = db_query("SELECT src, dst FROM {url_alias} WHERE dst = '%s'", $form_state['values']['path']);
+  if ($alias = db_fetch_object($result)) {
+    form_error($form['path'], t('That path is currently assigned to be an alias for @alias. This system cannot override existing aliases.', array('@alias' => $alias->src)));
+  }
+}
+
+/**
+ * Submit function to store the form data in our cache.
+ */
+function panels_landing_page_basic_submit(&$form, &$form_state) {
+  $cache = &$form_state['cache'];
+  $cache->name = $form_state['values']['name'];
+  $cache->admin_title = $form_state['values']['admin_title'];
+  $cache->admin_description = $form_state['values']['admin_description'];
+  $cache->path = $form_state['values']['path'];
+  $cache->menu_entry = $form_state['values']['menu_entry'];
+  $cache->menu['title'] = $form_state['values']['menu']['title'];
+  $cache->menu['weight'] = $form_state['values']['menu']['weight'];
+  $cache->menu['name'] = $form_state['values']['menu']['name'];
+  $cache->menu['type'] = $cache->menu_entry ? 'normal' : 'none';
+  $cache->display->layout = $form_state['values']['layout'];
+  $cache->display->title = $form_state['values']['admin_title'];
+}
+
+/**
+ * Second page of our wizard. This one provides a layout and lets the
+ * user add content.
+ */
+function panels_landing_page_content(&$form, &$form_state) {
+  ctools_include('page-wizard', 'panels');
+  panels_page_wizard_add_content($form, $form_state);
+}
+
+/**
+ * Submit function to store the form data in our cache.
+ */
+function panels_landing_page_submit(&$form, &$form_state) {
+  panels_page_wizard_add_content_submit($form, $form_state);
+}
+
+/**
+ * Finish callback for the wizard.
+ *
+ * When the wizard is finished, this callback will create the actual
+ * page, save it, and redirect the user to view the new work.
+ */
+function panels_landing_page_finish(&$form_state) {
+  $cache = &$form_state['cache'];
+
+  // Ensure all 'page' features are loaded.
+  $page_task = page_manager_get_task('page');
+
+  // Assemble a new page subtask.
+  $subtask = page_manager_page_new();
+  $subtask->name = $cache->name;
+  $subtask->path = $cache->path;
+  $subtask->admin_title = $cache->admin_title;
+  $subtask->admin_description = $cache->admin_description;
+  $subtask->path = $cache->path;
+  $subtask->menu = $cache->menu;
+
+  // Create the the panel context variant configured with our display
+  $plugin = page_manager_get_task_handler('panel_context');
+
+  // Create a new handler.
+  $handler = page_manager_new_task_handler($plugin);
+  $handler->conf['title'] = t('Landing page');
+  $handler->conf['display'] = $cache->display;
+  $handler->conf['pipeline'] = 'ipe';
+
+  // Assemble a new $page cache and assign it our page subtask and task
+  // handler.
+  $page = new stdClass();
+  page_manager_page_new_page_cache($subtask, $page);
+  page_manager_handler_add_to_page($page, $handler);
+
+  // Save it
+  page_manager_save_page_cache($page);
+
+  // Send us to the new page immediately.
+  $form_state['redirect'] = url($cache->path);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/page_wizards/node_override.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/page_wizards/node_override.inc
new file mode 100644
index 0000000..9f6ad5b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/page_wizards/node_override.inc
@@ -0,0 +1,289 @@
+<?php
+
+/**
+ * @file
+ * Page wizard that can create a variant on the node_view to take over a node
+ * for a particular type.
+ *
+ * This wizard does a lot that's cut and pasted from exports. We can get away
+ * with this because we know exports tend to remain relatively backward
+ * compatible, and because we know that our context IDs are locked in the
+ * node_view page.
+ */
+$plugin = array(
+  'title' => t('Node template'),
+  'page title' => t('Node template wizard'),
+  'description' => t('The node page wizard can help you override the node page for a type of node.'),
+
+  'type' => 'panels',
+
+  'form info' => array(
+    'order' => array(
+      'type' => t('Select node type'),
+      'content' => t('Content'),
+    ),
+
+    'forms' => array(
+      'type' => array(
+        'form id' => 'panels_node_override_basic',
+      ),
+      'content' => array(
+        'form id' => 'panels_node_override_content',
+      ),
+    ),
+  ),
+
+  'default cache' => 'panels_node_override_new_page',
+
+  'start' => 'panels_node_override_start',
+  'finish' => 'panels_node_override_finish',
+);
+
+/**
+ * Provide defaults for a new cache.
+ *
+ * The cache will store all our temporary data; it isn't really a page
+ * in itself, but it does contain everything we need to make one at the end.
+ */
+function panels_node_override_new_page(&$cache) {
+  $cache->type = '';
+  $cache->display = panels_new_display();
+  $cache->display->layout = 'flexible';
+}
+
+/**
+ * Callback called prior to the wizard starting up on every page
+ * load.
+ */
+function panels_node_override_start($form_info, $step, &$form_state) {
+  $form_state['page'] = page_manager_get_page_cache('node_view');
+  if (!empty($form_state['page']->locked)) {
+    $account  = user_load($form_state['page']->locked->uid);
+    $name     = theme('username', $account);
+    $lock_age = format_interval(time() - $form_state['page']->locked->updated);
+    $break    = url(page_manager_edit_url($form_state['page']->task_name, array('actions', 'break-lock')));
+
+    drupal_set_message(t('WARNING! The node_view is being edited by user !user, and is therefore locked from editing by others. This wizard cannot create a new node override while this page is locked. This lock is !age old. Click here to <a href="!break">break this lock</a>.', array('!user' => $name, '!age' => $lock_age, '!break' => $break)), 'warning');
+  }
+}
+
+/**
+ * First page of our page creator wizard.
+ */
+function panels_node_override_basic(&$form, &$form_state) {
+  $types = node_get_types();
+  $form_state['types'] = $types;
+
+  $already_done = array();
+  // Figure out which types already have variants assigned to them.
+  foreach ($form_state['page']->handlers as $name => $handler) {
+    if ($handler->handler == 'panel_context' && !empty($handler->conf['access']['plugins'])) {
+      foreach ($handler->conf['access']['plugins'] as $plugin) {
+        if ($plugin['name'] == 'node_type') {
+          foreach ($plugin['settings']['type'] as $type) {
+            $already_done[$type] = $name;
+          }
+        }
+      }
+    }
+  }
+
+  if ($already_done) {
+    $items = array();
+    foreach ($already_done as $type => $handler_id) {
+      $items[] = check_plain($types[$type]->name) . ' ' . l(t('[Edit]'), page_manager_edit_url($form_state['page']->task_name, array('handlers', $handler_id, 'content')));
+    }
+
+    $form['already_done'] = array(
+      '#type' => 'item',
+      '#title' => t('Existing node templates'),
+      '#value' => theme('item_list', $items),
+    );
+  }
+
+  $options = array();
+  foreach ($types as $name => $type) {
+    if (empty($already_done[$name])) {
+      $options[$name] = $type->name;
+    }
+  }
+
+  $form['type'] = array(
+    '#type' => 'select',
+    '#title' => t('Node type'),
+    '#options' => $options,
+    '#default_value' => $form_state['cache']->type,
+  );
+
+  ctools_include('page-wizard', 'panels');
+  panels_page_wizard_add_layout($form, $form_state);
+}
+
+/**
+ * Submit function to store the form data in our cache.
+ */
+function panels_node_override_basic_submit(&$form, &$form_state) {
+  $cache = &$form_state['cache'];
+  $cache->display->layout = $form_state['values']['layout'];
+  $cache->type = $form_state['values']['type'];
+
+  // Create a new handler object and cache it; this way we can use the
+  // handler object for retrieving contexts properly.
+  // Create the the panel context variant configured with our display
+  $plugin = page_manager_get_task_handler('panel_context');
+
+  // Create a new handler.
+  $cache->handler = page_manager_new_task_handler($plugin);
+  $cache->handler->conf['title'] = $form_state['types'][$cache->type]->name;
+  $cache->handler->conf['pipeline'] = 'ipe';
+  $cache->handler->conf['access'] = array(
+    'plugins' => array(
+      0 => array(
+        'name' => 'node_type',
+        'settings' => array(
+          'type' => array(
+            $cache->type => $cache->type,
+          ),
+        ),
+        'context' => 'argument_nid_1',
+        'not' => FALSE,
+      ),
+    ),
+    'logic' => 'and',
+  );
+
+  // Find a region by trying some basic main content region IDs.
+  $layout = panels_get_layout($form_state['values']['layout']);
+  $regions = panels_get_regions($layout, $cache->display);
+  foreach (array('center', 'middle', 'content', 'main') as $candidate) {
+    if (!empty($regions[$candidate])) {
+      $region = $candidate;
+      break;
+    }
+  }
+
+  // If all of the above failed, use the first region.
+  if (empty($region)) {
+    $keys = array_keys($regions);
+    $region = reset($keys);
+  }
+
+  // Populate the layout with content. This is from an export, with minor
+  // changes to ensure defaults are correct and to add stuff to the proper region.
+  $pane = new stdClass;
+  $pane->pid = 'new-1';
+  $pane->panel = $region;
+  $pane->type = 'node_content';
+  $pane->subtype = 'node_content';
+  $pane->shown = TRUE;
+  $pane->access = array();
+  $pane->configuration = array(
+    'links' => 1,
+    'page' => 1,
+    'no_extras' => 0,
+    'override_title' => 0,
+    'override_title_text' => '',
+    'identifier' => '',
+    'link' => 0,
+    'leave_node_title' => 0,
+    'context' => 'argument_nid_1',
+    'build_mode' => 'full',
+  );
+  $pane->cache = array();
+  $pane->style = array(
+    'settings' => NULL,
+  );
+  $pane->css = array();
+  $pane->extras = array();
+  $pane->position = 0;
+  $cache->display->content['new-1'] = $pane;
+  $cache->display->panels[$region][0] = 'new-1';
+  $pane = new stdClass;
+  $pane->pid = 'new-2';
+  $pane->panel = $region;
+  $pane->type = 'node_comments';
+  $pane->subtype = 'node_comments';
+  $pane->shown = TRUE;
+  $pane->access = array();
+  $pane->configuration = array(
+    'mode' => variable_get('comment_default_mode', COMMENT_MODE_THREADED_EXPANDED),
+    'order' => variable_get('comment_default_order', COMMENT_ORDER_NEWEST_FIRST),
+    'comments_per_page' => variable_get('comment_default_per_page', '50'),
+    'context' => 'argument_nid_1',
+    'override_title' => 0,
+    'override_title_text' => '',
+  );
+  $pane->cache = array();
+  $pane->style = array(
+    'settings' => NULL,
+  );
+  $pane->css = array();
+  $pane->extras = array();
+  $pane->position = 1;
+  $cache->display->content['new-2'] = $pane;
+  $cache->display->panels[$region][1] = 'new-2';
+  $pane = new stdClass;
+  $pane->pid = 'new-3';
+  $pane->panel = $region;
+  $pane->type = 'node_comment_form';
+  $pane->subtype = 'node_comment_form';
+  $pane->shown = TRUE;
+  $pane->access = array();
+  $pane->configuration = array(
+    'anon_links' => 1,
+    'context' => 'argument_nid_1',
+    'override_title' => 0,
+    'override_title_text' => '',
+  );
+  $pane->cache = array();
+  $pane->style = array(
+    'settings' => NULL,
+  );
+  $pane->css = array();
+  $pane->extras = array();
+  $pane->position = 2;
+  $cache->display->content['new-3'] = $pane;
+  $cache->display->panels[$region][2] = 'new-3';
+
+  $task = page_manager_get_task('node_view');
+  ctools_include('context');
+  ctools_include('context-task-handler');
+  $cache->context = ctools_context_handler_get_all_contexts($task, NULL, $cache->handler);
+
+}
+
+/**
+ * Second page of our wizard. This one provides a layout and lets the
+ * user add content.
+ */
+function panels_node_override_content(&$form, &$form_state) {
+  ctools_include('page-wizard', 'panels');
+  panels_page_wizard_add_content($form, $form_state);
+}
+
+/**
+ * Store changes to the display.
+ */
+function panels_node_override_content_submit(&$form, &$form_state) {
+  panels_page_wizard_add_content_submit($form, $form_state);
+}
+
+/**
+ * Complete the wizard, create a new variant, and send them to the
+ * edit screen of that variant.
+ */
+function panels_node_override_finish(&$form_state) {
+  $page = &$form_state['page'];
+  $cache = &$form_state['cache'];
+
+  // Add the new handler to the page
+  $cache->handler->conf['display'] = $cache->display;
+  page_manager_handler_add_to_page($page, $cache->handler);
+
+  // Save it
+  page_manager_save_page_cache($page);
+
+  // Send us to the page manager edit form for this.
+  $form_state['redirect'] = url(page_manager_edit_url('node_view', array('handlers', $cache->handler->name, 'content')));
+  drupal_set_message(t('Your node template has been created.'));
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/panels_storage/page_manager.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/panels_storage/page_manager.inc
new file mode 100644
index 0000000..d543600
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/panels_storage/page_manager.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * @file
+ * Provides a panels_storage plugin for page_manager.
+ */
+
+// Plugin definition
+$plugin = array(
+  'access callback' => 'page_manager_panels_storage_access',
+);
+
+/**
+ * Access callback for panels storage.
+ */
+function page_manager_panels_storage_access($storage_type, $storage_id, $op, $account) {
+  // Only users with the 'use page manager' or administer page manager perms.
+  return user_access('use page manager', $account) || user_access('administer page manager', $account);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/icon.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/icon.png
new file mode 100644
index 0000000..436355b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/icon.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane-plain-box.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane-plain-box.css
new file mode 100644
index 0000000..5a01336
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane-plain-box.css
@@ -0,0 +1,11 @@
+%style {
+  margin-bottom: 10px;
+  color: %text;
+  background-color: %background;
+}
+
+%style h2 {
+  color: %header-text;
+  background-color: %header-background;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane-plain-box.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane-plain-box.tpl.php
new file mode 100644
index 0000000..73e3cc9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane-plain-box.tpl.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * @file
+ *
+ * Display the box for rounded corners.
+ *
+ * - $pane: The pane being rendered
+ * - $display: The display being rendered
+ * - $content: An object containing the content and title
+ * - $output: The result of theme('panels_pane')
+ * - $classes: The classes that must be applied to the top divs.
+ */
+?>
+<div class="<?php print $classes ?>">
+  <?php print $output; ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane_plain_box.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane_plain_box.inc
new file mode 100644
index 0000000..4adc4ad
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_plain_box/pane_plain_box.inc
@@ -0,0 +1,93 @@
+<?php
+
+/**
+ * @file
+ * Definition of the style base for the rounded shadow box.
+ *
+ * This box is colorable, has rounded corners and a drop shadow.
+ */
+
+$plugin = array(
+  'category' => t('Basic styles'),
+  'title' => t('Plain'),
+  'description' => t('A plain box with an optional border. You may set the color of the text and the border.'),
+  'module' => 'panels',
+  'type' => 'pane',
+
+  'css' => 'pane-plain-box.css',
+  'icon' => 'icon.png',
+
+  'defaults' => array('font' => array(), 'header_font' => array(), 'border' => array(), 'header_border' => array(), 'padding' => array()),
+  'palette' => array(
+    'background' => array(
+      'label' => t('Background'),
+      'default_value' => '#FFFFFF',
+    ),
+    'text' => array(
+      'label' => t('Text'),
+      'default_value' => '#000000',
+    ),
+    'border' => array(
+      'label' => t('Border'),
+      'default_value' => '#000000',
+    ),
+    'header-background' => array(
+      'label' => t('Header background'),
+      'default_value' => '#FFFFFF',
+    ),
+    'header-text' => array(
+      'label' => t('Header text'),
+      'default_value' => '#000000',
+    ),
+    'header-border' => array(
+      'label' => t('Header border'),
+      'default_value' => '#000000',
+    ),
+  ),
+
+  // This just uses theme_panels_pane because all we need is the class.
+//  'theme' => 'pane_plain_box',
+//  'preview' => 'panels_stylizer_pane_preview',
+
+  'settings form' => 'panels_pane_plain_box_style_settings',
+  'settings form submit' => 'panels_pane_plain_box_style_settings_submit',
+  'build' => 'panels_pane_plain_box_style_base_build',
+);
+
+function panels_pane_plain_box_style_settings(&$form, &$form_state) {
+  $form['font'] = array();
+  ctools_stylizer_font_selector_form($form['font'], $form_state, t('Font'), $form_state['settings']['font']);
+
+  $form['border'] = array();
+  ctools_stylizer_border_selector_form($form['border'], $form_state, t('Border'), $form_state['settings']['border']);
+
+  $form['padding'] = array();
+  ctools_stylizer_padding_selector_form($form['padding'], $form_state, t('Padding'), $form_state['settings']['padding']);
+
+  $form['header_font'] = array();
+  ctools_stylizer_font_selector_form($form['header_font'], $form_state, t('Header font'), $form_state['settings']['header_font']);
+
+  $form['header_border'] = array();
+  ctools_stylizer_border_selector_form($form['header_border'], $form_state, t('Header border'), $form_state['settings']['header_border']);
+
+}
+
+function panels_pane_plain_box_style_settings_submit(&$form, &$form_state) {
+  ctools_stylizer_font_selector_form_submit($form['font'], $form_state, $form_state['values']['font'], $form_state['settings']['font']);
+  ctools_stylizer_font_selector_form_submit($form['header_font'], $form_state, $form_state['values']['header_font'], $form_state['settings']['header_font']);
+
+  ctools_stylizer_border_selector_form_submit($form['header_border'], $form_state, $form_state['values']['header_border'], $form_state['settings']['header_border']);
+  ctools_stylizer_border_selector_form_submit($form['border'], $form_state, $form_state['values']['border'], $form_state['settings']['border']);
+
+  ctools_stylizer_padding_selector_form_submit($form['padding'], $form_state, $form_state['values']['padding'], $form_state['settings']['padding']);
+}
+
+function panels_pane_plain_box_style_base_build($plugin, $settings, &$css, $replacements) {
+  ctools_stylizer_font_apply_style($css, '%style', $settings['font']);
+  ctools_stylizer_border_apply_style($css, '%style', $settings['border'], '%border');
+
+  ctools_stylizer_font_apply_style($css, '%style .pane-title', $settings['header_font']);
+  ctools_stylizer_border_apply_style($css, '%style .pane-title', $settings['header_border'], '%header-border', 'bottom');
+
+  ctools_stylizer_padding_apply_style($css, '%style .pane-title, %style .pane-content', $settings['padding']);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/box-color.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/box-color.png
new file mode 100644
index 0000000..b67fd24
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/box-color.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/box-shadow.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/box-shadow.png
new file mode 100644
index 0000000..01f385d
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/box-shadow.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/icon.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/icon.png
new file mode 100644
index 0000000..c3a4572
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/icon.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane-rounded-shadow.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane-rounded-shadow.css
new file mode 100644
index 0000000..86eea4a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane-rounded-shadow.css
@@ -0,0 +1,105 @@
+/* Show only to IE7 */
+*:first-child+html .rounded-shadow-background,
+/* Show only to IE6 */
+* html .rounded-shadow-background  {
+  margin: 0 -10px 0 0 !important;
+  padding: 10px 0 5px 0 !important;
+}
+
+.rounded-shadow-top-edge, .rounded-shadow-bottom-edge, .rounded-shadow-left-edge, .rounded-shadow-right-edge, .rounded-shadow-wrap-corner {
+  position: relative;
+  /* hasLayout -1 ? For IE only */
+  zoom: 1;
+}
+%style {
+  padding-top: 10px;
+  margin-bottom: 30px;
+  color: %text;
+}
+
+%style h2 {
+  color: %header-text;
+}
+
+%style .rounded-shadow-background {
+  margin: 10px;
+  background: %background url(rounded-shadow-background.png) repeat;
+}
+
+%style .rounded-shadow-wrap-corner {
+  margin: -10px;
+}
+
+%style .rounded-shadow-top-edge {
+  top: -10px;
+  background: url(rounded-shadow-top-edge.png) repeat-x 0 top;
+  font-size: 1px;
+}
+
+%style .rounded-shadow-bottom-edge {
+  bottom: -10px;
+  background: url(rounded-shadow-bottom-edge.png) repeat-x 0 bottom;
+  font-size: 1px;
+}
+
+%style .rounded-shadow-left-edge {
+  background: url(rounded-shadow-left-edge.png) repeat-y 0 0;
+}
+
+%style .rounded-shadow-right-edge {
+  background: url(rounded-shadow-right-edge.png) repeat-y right 0;
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-top-edge,
+%style .rounded-shadow-wrap-corner .rounded-shadow-bottom-edge {
+  height: 19px;
+  margin: -10px 19px;
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-left,
+%style .rounded-shadow-wrap-corner .rounded-shadow-right {
+  position: absolute;
+  top: 0;
+  height: 19px;
+  width: 19px;
+  margin: 0 -19px;
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-left {
+  background-image: url(rounded-shadow-top-left-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-right {
+  right: 0;
+  background-image: url(rounded-shadow-top-right-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-bottom-edge .rounded-shadow-left {
+  background-image: url(rounded-shadow-bottom-left-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-bottom-edge .rounded-shadow-right {
+  right: 0;
+  background-image: url(rounded-shadow-bottom-right-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-right-edge {
+  padding: 3px 19px;
+}
+
+%style .panel-pane {
+  position: relative; top: -6px;
+}
+
+/*
+%style div.admin-links {
+  margin-top: -19px;
+  margin-left: -12px;
+}
+
+%style .panel-separator {
+  background: url(rounded-shadow-bottom-edge.png) repeat-x 0 center;
+  font-size: 1px;
+  height: 30px;
+}
+*/
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane-rounded-shadow.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane-rounded-shadow.tpl.php
new file mode 100644
index 0000000..9edb6e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane-rounded-shadow.tpl.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @file
+ *
+ * Display the box for rounded corners.
+ *
+ * - $output: The content of the box.
+ * - $classes: The classes that must be applied to the top divs.
+ * - $pane: The pane being rendered
+ * - $display: The display being rendered
+ * - $content: The content being rendered (will be already in $output)
+ */
+?>
+<div class="rounded-shadow <?php print $classes ?>">
+  <div class="rounded-shadow-background">
+    <div class="rounded-shadow-wrap-corner">
+      <div class="rounded-shadow-top-edge">
+        <div class="rounded-shadow-left"></div>
+        <div class="rounded-shadow-right"></div>
+      </div>
+      <div class="rounded-shadow-left-edge">
+        <div class="rounded-shadow-right-edge clear-block">
+          <?php print $output; ?>
+        </div>
+      </div>
+      <div class="rounded-shadow-bottom-edge">
+      <div class="rounded-shadow-left"></div><div class="rounded-shadow-right"></div>
+      </div>
+    </div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane_rounded_shadow.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane_rounded_shadow.inc
new file mode 100644
index 0000000..d2bd328
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/pane/pane_rounded_shadow/pane_rounded_shadow.inc
@@ -0,0 +1,99 @@
+<?php
+
+/**
+ * @file
+ * Definition of the style base for the rounded shadow box.
+ *
+ * This box is colorable, has rounded corners and a drop shadow.
+ */
+
+$plugin = array(
+  'category' => t('Basic styles'),
+  'title' => t('Rounded shadow box'),
+  'module' => 'panels',
+  'type' => 'pane',
+  'css' => 'pane-rounded-shadow.css',
+  'icon' => 'icon.png',
+  'defaults' => array('header_font' => array(), 'text_font' => array(), 'padding' => array(), 'header_border' => array()),
+  'palette' => array(
+    'background' => array(
+      'label' => t('Background'),
+      'default_value' => '#FFFFFF',
+    ),
+    'text' => array(
+      'label' => t('Text'),
+      'default_value' => '#000000',
+    ),
+    'header-text' => array(
+      'label' => t('Header text'),
+      'default_value' => '#000000',
+    ),
+    'header-border' => array(
+      'label' => t('Header border'),
+      'default_value' => '#000000',
+    ),
+  ),
+  'actions' => array(
+    array('load', 'box', 'box-color.png'),
+    array('colorize', 'background'),
+    array('load', 'shadow', 'box-shadow.png'),
+    array('merge_from', 'box'),
+    array('slice', 'rounded-shadow-top-left-corner.png', 17, 49, 19, 19),
+    array('slice', 'rounded-shadow-top-right-corner.png', 473, 49, 19, 19),
+    array('slice', 'rounded-shadow-bottom-left-corner.png', 17, 442, 19, 19),
+    array('slice', 'rounded-shadow-bottom-right-corner.png', 473, 442, 19, 19),
+    array('slice', 'rounded-shadow-left-edge.png', 17, 60, 10, 10),
+    array('slice', 'rounded-shadow-right-edge.png', 474, 60, 18, 10),
+    array('slice', 'rounded-shadow-top-edge.png', 28, 49, 10, 10),
+    array('slice', 'rounded-shadow-bottom-edge.png', 28, 443, 10, 18),
+    array('slice', 'rounded-shadow-background.png', 150, 150, 1, 1),
+  ),
+
+  'theme' => 'pane_rounded_shadow',
+  'build' => 'panels_rounded_shadow_style_base_build',
+//  'preview' => 'panels_stylizer_pane_preview',
+
+  'settings form' => 'panels_pane_rounded_shadow_style_settings',
+  'settings form submit' => 'panels_pane_rounded_shadow_style_settings_submit',
+  'build' => 'panels_pane_rounded_shadow_style_base_build',
+);
+
+function template_preprocess_pane_rounded_shadow(&$vars) {
+  $vars['classes'] = $vars['content']->css_class;
+  $vars['content']->css_class = '';
+
+  $vars['output'] = theme('panels_pane', $vars['content'], $vars['pane'], $vars['display']);
+}
+
+function panels_pane_rounded_shadow_style_settings(&$form, &$form_state) {
+  $form['header_font'] = array();
+  ctools_stylizer_font_selector_form($form['header_font'], $form_state, t('Header font'), $form_state['settings']['header_font']);
+
+  $form['header_border'] = array();
+  ctools_stylizer_border_selector_form($form['header_border'], $form_state, t('Header border'), $form_state['settings']['header_border']);
+
+  $form['text_font'] = array();
+  ctools_stylizer_font_selector_form($form['text_font'], $form_state, t('Text font'), $form_state['settings']['text_font']);
+
+  $form['padding'] = array();
+  ctools_stylizer_padding_selector_form($form['padding'], $form_state, t('Padding'), $form_state['settings']['padding']);
+}
+
+function panels_pane_rounded_shadow_style_settings_submit(&$form, &$form_state) {
+  ctools_stylizer_font_selector_form_submit($form['header_font'], $form_state, $form_state['values']['header_font'], $form_state['settings']['header_font']);
+
+  ctools_stylizer_font_selector_form_submit($form['text_font'], $form_state, $form_state['values']['text_font'], $form_state['settings']['text_font']);
+
+  ctools_stylizer_padding_selector_form_submit($form['padding'], $form_state, $form_state['values']['padding'], $form_state['settings']['padding']);
+
+  ctools_stylizer_border_selector_form_submit($form['header_border'], $form_state, $form_state['values']['header_border'], $form_state['settings']['header_border']);
+
+}
+
+function panels_pane_rounded_shadow_style_base_build($plugin, $settings, &$css, $replacements) {
+  ctools_stylizer_font_apply_style($css, '%style .pane-title', $settings['header_font']);
+  ctools_stylizer_border_apply_style($css, '%style .pane-title', $settings['header_border'], '%header-border', 'bottom');
+  ctools_stylizer_font_apply_style($css, '%style .pane-content', $settings['text_font']);
+  ctools_stylizer_padding_apply_style($css, '%style', $settings['padding']);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/icon.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/icon.png
new file mode 100644
index 0000000..436355b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/icon.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region-plain-box.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region-plain-box.css
new file mode 100644
index 0000000..e48b6d5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region-plain-box.css
@@ -0,0 +1,6 @@
+%style {
+  padding-top: 10px;
+  margin-bottom: 10px;
+  color: %text;
+  background-color: %background;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region-plain-box.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region-plain-box.tpl.php
new file mode 100644
index 0000000..837cb2c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region-plain-box.tpl.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ *
+ * Display the box for rounded corners.
+ *
+ * - $content: The content of the box.
+ * - $classes: The classes that must be applied to the top divs.
+ */
+?>
+<div class="rounded-shadow <?php print $classes ?>">
+  <div class="rounded-shadow-background">
+    <div class="rounded-shadow-wrap-corner">
+      <div class="rounded-shadow-top-edge">
+        <div class="rounded-shadow-left"></div>
+        <div class="rounded-shadow-right"></div>
+      </div>
+      <div class="rounded-shadow-left-edge">
+        <div class="rounded-shadow-right-edge clear-block">
+          <?php print $content; ?>
+        </div>
+      </div>
+      <div class="rounded-shadow-bottom-edge">
+      <div class="rounded-shadow-left"></div><div class="rounded-shadow-right"></div>
+      </div>
+    </div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region_plain_box.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region_plain_box.inc
new file mode 100644
index 0000000..daaf7c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_plain_box/region_plain_box.inc
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * @file
+ * Definition of the style base for the rounded shadow box.
+ *
+ * This box is colorable, has rounded corners and a drop shadow.
+ */
+
+$plugin = array(
+  'category' => t('Basic styles'),
+  'title' => t('Plain'),
+  'description' => t('A plain box with an optional border. You may set the color of the text and the border.'),
+  'module' => 'panels',
+  'type' => 'region',
+
+  'css' => 'region-plain-box.css',
+  'icon' => 'icon.png',
+
+  'defaults' => array('font' => array(), 'border' => array(), 'padding' => array()),
+  'palette' => array(
+    'background' => array(
+      'label' => t('Background'),
+      'default_value' => '#FFFFFF',
+    ),
+    'text' => array(
+      'label' => t('Text'),
+      'default_value' => '#000000',
+    ),
+    'border' => array(
+      'label' => t('Border'),
+      'default_value' => '#000000',
+    ),
+  ),
+
+  'theme' => 'region_plain_box',
+//  'preview' => 'panels_stylizer_region_preview',
+
+  'settings form' => 'panels_region_plain_box_style_settings',
+  'settings form submit' => 'panels_region_plain_box_style_settings_submit',
+  'build' => 'panels_region_plain_box_style_base_build',
+);
+
+function panels_region_plain_box_style_settings(&$form, &$form_state) {
+  $form['font'] = array();
+  ctools_stylizer_font_selector_form($form['font'], $form_state, t('Font'), $form_state['settings']['font']);
+
+  $form['border'] = array();
+  ctools_stylizer_border_selector_form($form['border'], $form_state, t('Border'), $form_state['settings']['border']);
+
+  $form['padding'] = array();
+  ctools_stylizer_padding_selector_form($form['padding'], $form_state, t('Padding'), $form_state['settings']['padding']);
+}
+
+function panels_region_plain_box_style_settings_submit(&$form, &$form_state) {
+  ctools_stylizer_font_selector_form_submit($form['font'], $form_state, $form_state['values']['font'], $form_state['settings']['font']);
+  ctools_stylizer_border_selector_form_submit($form['border'], $form_state, $form_state['values']['border'], $form_state['settings']['border']);
+  ctools_stylizer_padding_selector_form_submit($form['padding'], $form_state, $form_state['values']['padding'], $form_state['settings']['padding']);
+}
+
+function panels_region_plain_box_style_base_build($plugin, $settings, &$css, $replacements) {
+  ctools_stylizer_font_apply_style($css, '%style', $settings['font']);
+  ctools_stylizer_border_apply_style($css, '%style', $settings['border'], '%border');
+  ctools_stylizer_padding_apply_style($css, '%style', $settings['padding']);
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/box-color.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/box-color.png
new file mode 100644
index 0000000..b67fd24
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/box-color.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/box-shadow.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/box-shadow.png
new file mode 100644
index 0000000..01f385d
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/box-shadow.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/icon.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/icon.png
new file mode 100644
index 0000000..c3a4572
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/icon.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region-rounded-shadow.css b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region-rounded-shadow.css
new file mode 100644
index 0000000..924a6bf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region-rounded-shadow.css
@@ -0,0 +1,97 @@
+/* Show only to IE7 */
+*:first-child+html .rounded-shadow-background,
+/* Show only to IE6 */
+* html .rounded-shadow-background  {
+  margin: 0 -10px 0 0 !important;
+  padding: 10px 0 5px 0 !important;
+}
+
+.rounded-shadow-top-edge, .rounded-shadow-bottom-edge, .rounded-shadow-left-edge, .rounded-shadow-right-edge, .rounded-shadow-wrap-corner {
+  position: relative;
+  /* hasLayout -1 ? For IE only */
+  zoom: 1;
+}
+%style {
+  padding-top: 10px;
+  margin-bottom: 30px;
+  color: %text;
+}
+
+%style .rounded-shadow-background {
+  margin: 10px;
+  background: %background url(rounded-shadow-background.png) repeat;
+}
+
+%style .rounded-shadow-wrap-corner {
+  margin: -10px;
+}
+
+%style .rounded-shadow-top-edge {
+  top: -10px;
+  background: url(rounded-shadow-top-edge.png) repeat-x 0 top;
+  font-size: 1px;
+}
+
+%style .rounded-shadow-bottom-edge {
+  bottom: -10px;
+  background: url(rounded-shadow-bottom-edge.png) repeat-x 0 bottom;
+  font-size: 1px;
+}
+
+%style .rounded-shadow-left-edge {
+  background: url(rounded-shadow-left-edge.png) repeat-y 0 0;
+}
+
+%style .rounded-shadow-right-edge {
+  background: url(rounded-shadow-right-edge.png) repeat-y right 0;
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-top-edge,
+%style .rounded-shadow-wrap-corner .rounded-shadow-bottom-edge {
+  height: 19px;
+  margin: -10px 19px;
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-left,
+%style .rounded-shadow-wrap-corner .rounded-shadow-right {
+  position: absolute;
+  top: 0;
+  height: 19px;
+  width: 19px;
+  margin: 0 -19px;
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-left {
+  background-image: url(rounded-shadow-top-left-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-right {
+  right: 0;
+  background-image: url(rounded-shadow-top-right-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-bottom-edge .rounded-shadow-left {
+  background-image: url(rounded-shadow-bottom-left-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-bottom-edge .rounded-shadow-right {
+  right: 0;
+  background-image: url(rounded-shadow-bottom-right-corner.png);
+}
+
+%style .rounded-shadow-wrap-corner .rounded-shadow-right-edge {
+  padding: 3px 19px;
+}
+
+/*
+%style div.admin-links {
+  margin-top: -19px;
+  margin-left: -12px;
+}
+
+%style .panel-separator {
+  background: url(rounded-shadow-bottom-edge.png) repeat-x 0 center;
+  font-size: 1px;
+  height: 30px;
+}
+*/
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region-rounded-shadow.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region-rounded-shadow.tpl.php
new file mode 100644
index 0000000..837cb2c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region-rounded-shadow.tpl.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ *
+ * Display the box for rounded corners.
+ *
+ * - $content: The content of the box.
+ * - $classes: The classes that must be applied to the top divs.
+ */
+?>
+<div class="rounded-shadow <?php print $classes ?>">
+  <div class="rounded-shadow-background">
+    <div class="rounded-shadow-wrap-corner">
+      <div class="rounded-shadow-top-edge">
+        <div class="rounded-shadow-left"></div>
+        <div class="rounded-shadow-right"></div>
+      </div>
+      <div class="rounded-shadow-left-edge">
+        <div class="rounded-shadow-right-edge clear-block">
+          <?php print $content; ?>
+        </div>
+      </div>
+      <div class="rounded-shadow-bottom-edge">
+      <div class="rounded-shadow-left"></div><div class="rounded-shadow-right"></div>
+      </div>
+    </div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region_rounded_shadow.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region_rounded_shadow.inc
new file mode 100644
index 0000000..b73da90
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/style_bases/region/region_rounded_shadow/region_rounded_shadow.inc
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * @file
+ * Definition of the style base for the rounded shadow box.
+ *
+ * This box is colorable, has rounded corners and a drop shadow.
+ */
+
+$plugin = array(
+  'category' => t('Basic styles'),
+  'title' => t('Rounded shadow box'),
+  'module' => 'panels',
+  'type' => 'region',
+  'css' => 'region-rounded-shadow.css',
+  'icon' => 'icon.png',
+  'defaults' => array('font' => array(), 'padding' => array()),
+  'palette' => array(
+    'background' => array(
+      'label' => t('Background'),
+      'default_value' => '#FFFFFF',
+    ),
+    'text' => array(
+      'label' => t('Text color'),
+      'default_value' => '#000000',
+    ),
+  ),
+  'actions' => array(
+    array('load', 'box', 'box-color.png'),
+    array('colorize', 'background'),
+    array('load', 'shadow', 'box-shadow.png'),
+    array('merge_from', 'box'),
+    array('slice', 'rounded-shadow-top-left-corner.png', 17, 49, 19, 19),
+    array('slice', 'rounded-shadow-top-right-corner.png', 473, 49, 19, 19),
+    array('slice', 'rounded-shadow-bottom-left-corner.png', 17, 442, 19, 19),
+    array('slice', 'rounded-shadow-bottom-right-corner.png', 473, 442, 19, 19),
+    array('slice', 'rounded-shadow-left-edge.png', 17, 60, 10, 10),
+    array('slice', 'rounded-shadow-right-edge.png', 474, 60, 18, 10),
+    array('slice', 'rounded-shadow-top-edge.png', 28, 49, 10, 10),
+    array('slice', 'rounded-shadow-bottom-edge.png', 28, 443, 10, 18),
+    array('slice', 'rounded-shadow-background.png', 150, 150, 1, 1),
+  ),
+
+  'theme' => 'region_rounded_shadow',
+
+  'build' => 'panels_rounded_shadow_style_base_build',
+//  'preview' => 'panels_stylizer_region_preview',
+
+  'settings form' => 'panels_region_rounded_shadow_style_settings',
+  'settings form submit' => 'panels_region_rounded_shadow_style_settings_submit',
+  'build' => 'panels_region_rounded_shadow_style_base_build',
+);
+
+function panels_region_rounded_shadow_style_settings(&$form, &$form_state) {
+  $form['font'] = array();
+  ctools_stylizer_font_selector_form($form['font'], $form_state, t('Font'), $form_state['settings']['font']);
+
+  $form['padding'] = array();
+  ctools_stylizer_padding_selector_form($form['padding'], $form_state, t('Padding'), $form_state['settings']['padding']);
+}
+
+function panels_region_rounded_shadow_style_settings_submit(&$form, &$form_state) {
+  ctools_stylizer_font_selector_form_submit($form['font'], $form_state, $form_state['values']['font'], $form_state['settings']['font']);
+  ctools_stylizer_padding_selector_form_submit($form['padding'], $form_state, $form_state['values']['padding'], $form_state['settings']['padding']);
+}
+
+function panels_region_rounded_shadow_style_base_build($plugin, $settings, &$css, $replacements) {
+  ctools_stylizer_font_apply_style($css, '%style', $settings['font']);
+  ctools_stylizer_padding_apply_style($css, '%style', $settings['padding']);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/block.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/block.inc
new file mode 100644
index 0000000..ab89362
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/block.inc
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @file
+ * Definition of the 'block' panel style.
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t('System block'),
+  'description' => t('Display the pane as a system block; this is more restrictive than the default.'),
+  'render pane' => 'panels_block_style_render_pane',
+  'weight' => -10,
+);
+
+/**
+ * Render callback.
+ *
+ * @ingroup themeable
+ */
+function theme_panels_block_style_render_pane($content, $pane, $display) {
+  if (empty($content->content)) {
+    return;
+  }
+
+  if (!empty($content->title)) {
+    $content->subject = $content->title;
+  }
+
+  $content->region = $pane->panel;
+  if (!isset($content->module)) {
+    $content->module = $content->type;
+  }
+  if (!isset($content->delta)) {
+    $content->delta = $content->subtype;
+  }
+
+  // If using per pane classes, $block->css_class will need to be added in your
+  // preprocess or template, along with any other Panels specific field you
+  // might want to utilize.
+  return theme('block', $content);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/corner-bits.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/corner-bits.png
new file mode 100644
index 0000000..73480e6
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/corner-bits.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/panels-rounded-corners-box.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/panels-rounded-corners-box.tpl.php
new file mode 100644
index 0000000..ae8fb87
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/panels-rounded-corners-box.tpl.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * @file
+ *
+ * Display the box for rounded corners.
+ *
+ * - $content: The content of the box.
+ */
+?>
+<div class="rounded-corner">
+  <div class="wrap-corner">
+    <div class="t-edge"><div class="l"></div><div class="r"></div></div>
+    <div class="l-edge">
+      <div class="r-edge clear-block">
+        <?php print $content; ?>
+      </div>
+    </div>
+    <div class="b-edge"><div class="l"></div><div class="r"></div></div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/rounded_corners.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/rounded_corners.inc
new file mode 100644
index 0000000..6e20cdb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/rounded_corners.inc
@@ -0,0 +1,198 @@
+<?php
+
+/**
+ * @file
+ * Definition of the 'rounded_corners' panel style.
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Rounded corners'),
+  'description' => t('Presents the panes or panel regions with a rounded corner box around them'),
+  'render region' => 'panels_rounded_corners_style_render_region',
+  'render pane' => 'panels_rounded_corners_style_render_pane',
+  'settings form' => 'panels_rounded_corners_style_settings_form',
+  'hook theme' => array(
+    'panels_rounded_corners_box' => array(
+      'arguments' => array('content' => NULL),
+      'path' => panels_get_path('plugins/styles/corners'),
+      'template' => 'panels-rounded-corners-box',
+    ),
+  ),
+);
+
+/**
+ * Render callback.
+ *
+ * @ingroup themeable
+ */
+function theme_panels_rounded_corners_style_render_region($display, $region_id, $panes, $settings) {
+  $output = '';
+
+  // Determine where to put the box. If empty or 'pane' around each pane. If
+  // 'panel' then just around the whole panel.
+  $where = empty($settings['corner_location']) ? 'pane' : $settings['corner_location'];
+
+  $print_separator = FALSE;
+  foreach ($panes as $pane_id => $pane_output) {
+    if ($pane_output) {
+      // Add the separator if we've already displayed a pane.
+      if ($print_separator) {
+        $output .= '<div class="panel-region-separator"> </div>';
+      }
+
+      if ($where == 'pane') {
+        $output .= theme('panels_rounded_corners_box', $pane_output);
+      }
+      else {
+        $output .= $pane_output;
+        $print_separator = TRUE;
+      }
+    }
+  }
+
+  if ($where == 'panel') {
+    $output = theme('panels_rounded_corners_box', $output);
+  }
+
+  panels_add_rounded_corners_css($display, $where);
+
+  return $output;
+}
+
+function panels_add_rounded_corners_css($display, $where) {
+  static $displays_used = array();
+  if (empty($displays_used[$display->css_id])) {
+    panels_rounded_corners_css($display, $where);
+    $displays_used[$display->css_id] = TRUE;
+  }
+}
+
+/**
+ * Render callback for a single pane.
+ */
+function theme_panels_rounded_corners_style_render_pane($content, $pane, $display) {
+  if (empty($content->content)) {
+    return;
+  }
+
+  $output = theme('panels_pane', $content, $pane, $display);
+
+  // Just stick a box around the standard theme_panels_pane.
+  $output = theme('panels_rounded_corners_box', $output);
+  panels_add_rounded_corners_css($display, 'pane');
+  return $output;
+}
+
+/**
+ * Settings form callback.
+ */
+function panels_rounded_corners_style_settings_form($style_settings) {
+  $form['corner_location'] = array(
+    '#type' => 'select',
+    '#title' => t('Box around'),
+    '#options' => array(
+      'pane' => t('Each pane'),
+      'panel' => t('Each region'),
+    ),
+    '#default_value' => (isset($style_settings['corner_location'])) ? $style_settings['corner_location'] : 'ul',
+    '#description' => t('Choose whether to include the box around each pane (piece of content) or region (each column or region)'),
+  );
+
+  return $form;
+}
+
+/**
+ * Generates the dynamic CSS.
+ *
+ * @param $display
+ *   A Panels display object.
+ */
+function panels_rounded_corners_css($display) {
+  $idstr = empty($display->css_id) ? '.rounded-corner' : "#$display->css_id .rounded-corner";
+  $css_id = 'rounded-corner:' . $idstr;
+
+  ctools_include('css');
+  $filename = ctools_css_retrieve($css_id);
+  if (!$filename) {
+    $filename = ctools_css_store($css_id, _panels_rounded_corners_css($idstr), FALSE);
+  }
+
+  ctools_css_add_css($filename, 'module', 'all', FALSE);
+}
+
+/**
+ * Generates the dynamic CSS.
+ */
+function _panels_rounded_corners_css($idstr) {
+  $url = panels_get_path('plugins/styles/corners', TRUE);
+
+  $css = <<<EOF
+
+.t-edge, .b-edge, .l-edge, .r-edge, .wrap-corner {
+  position: relative;
+  /* hasLayout -1 ? For IE only */
+  zoom: 1;
+}
+$idstr .t-edge {
+  background: url('$url/shadow-t.png') repeat-x 0 top;
+  font-size: 1px;
+}
+$idstr .b-edge {
+  background: url('$url/shadow-b.png') repeat-x 0 bottom;
+  font-size: 1px;
+}
+$idstr .l-edge {
+  background: url('$url/shadow-l.png') repeat-y 0 0;
+}
+$idstr .r-edge {
+  background: url('$url/shadow-r.png') repeat-y right 0;
+}
+$idstr .wrap-corner {
+  background: #fff !important;
+}
+$idstr .wrap-corner .t-edge, $idstr .wrap-corner .b-edge {
+  height: 11px;
+}
+$idstr .wrap-corner .l, $idstr .wrap-corner .r {
+  position: absolute;
+  top: 0;
+  height: 11px;
+  width: 11px;
+  background-image: url('$url/corner-bits.png');
+}
+$idstr .wrap-corner .l {
+  left: 0;
+}
+$idstr .wrap-corner .r {
+  right: 0;
+  background-position: -11px 0;
+}
+$idstr .wrap-corner .b-edge .l {
+  background-position: 0 -11px;
+}
+$idstr .wrap-corner .b-edge .r {
+  background-position: -11px -11px;
+}
+$idstr .wrap-corner .r-edge {
+  padding: 5px 24px;
+}
+$idstr div.admin-links {
+  margin-top: -14px;
+  margin-left: -12px;
+}
+
+$idstr .panel-region-separator {
+  background: url('$url/shadow-b.png') repeat-x 0 center;
+  font-size: 1px;
+  height: 30px;
+}
+
+$idstr .rounded-corner {
+  margin-bottom: 1em;
+}
+
+EOF;
+
+  return $css;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-b.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-b.png
new file mode 100644
index 0000000..663676e
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-b.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-l.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-l.png
new file mode 100644
index 0000000..43fd7e7
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-l.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-r.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-r.png
new file mode 100644
index 0000000..5c972f2
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-r.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-t.png b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-t.png
new file mode 100644
index 0000000..5947889
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/corners/shadow-t.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/default.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/default.inc
new file mode 100644
index 0000000..37188ee
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/default.inc
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * @file
+ * Definition of the 'default' panel style.
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t('No style'),
+  'description' => t('The default panel rendering style; displays each pane with a separator.'),
+  'render region' => 'panels_default_style_render_region',
+  'weight' => -15,
+);
+
+/**
+ * Render callback.
+ *
+ * @ingroup themeable
+ */
+function theme_panels_default_style_render_region($display, $region_id, $panes, $settings) {
+  $output = '';
+
+  $print_separator = FALSE;
+  foreach ($panes as $pane_id => $pane_output) {
+    // Add the separator if we've already displayed a pane.
+    if ($print_separator) {
+      $output .= '<div class="panel-region-separator"></div>';
+    }
+
+    $output .= $pane_output;
+    // If we displayed a pane, this will become true; if not, it will become
+    // false.
+    $print_separator = (bool) $pane_output;
+  }
+
+  return $output;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/list.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/list.inc
new file mode 100644
index 0000000..72240fd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/list.inc
@@ -0,0 +1,54 @@
+<?php
+
+
+/**
+ * @file
+ * Definition of the 'list' panel style.
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t('List'),
+  'description' => t('Presents the panes in the form of an HTML list.'),
+  'render region' => 'panels_list_style_render_region',
+  'settings form' => 'panels_list_style_settings_form',
+);
+
+/**
+ * Render callback.
+ *
+ * @ingroup themeable
+ */
+function theme_panels_list_style_render_region($display, $region_id, $panes, $settings) {
+  $items = array();
+
+  foreach ($panes as $pane_id => $item) {
+    if (isset($item)) {
+      $items[] = $item;
+    }
+  }
+
+  if (empty($settings['list_type'])) {
+    $settings['list_type'] = 'ul';
+  }
+
+  return theme('item_list', $items, NULL, $settings['list_type']);
+}
+
+/**
+ * Settings form callback.
+ */
+function panels_list_style_settings_form($style_settings) {
+  $form['list_type'] = array(
+    '#type' => 'select',
+    '#title' => t('List type'),
+    '#options' => array(
+      'ul' => t('Unordered'),
+      'ol' => t('Ordered'),
+    ),
+    '#default_value' => (isset($style_settings['list_type'])) ? $style_settings['list_type'] : 'ul',
+  );
+
+  return $form;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/naked.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/naked.inc
new file mode 100644
index 0000000..7e0ef59
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/naked.inc
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * @file
+ * Definition of the 'naked' panel style.
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t('No markup at all'),
+  'description' => t('Display the pane with no markup, not even a title.'),
+  'render pane' => 'panels_naked_style_render_pane',
+  'weight' => -5,
+);
+
+/**
+ * Render callback.
+ *
+ * @ingroup themeable
+ */
+function theme_panels_naked_style_render_pane($content, $pane, $display) {
+  return $content->content;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/stylizer.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/stylizer.inc
new file mode 100644
index 0000000..32c0989
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/styles/stylizer.inc
@@ -0,0 +1,349 @@
+<?php
+
+/**
+ * @file
+ * Definition of the 'stylizer' panel style.
+ */
+
+// Plugin definition
+$plugin = array(
+  'title' => t('Custom style'),
+  'weight' => -10,
+  'description' => t('Allows choice of a stylizer style'),
+
+  'render pane' => 'panels_stylizer_stylizer_style_render_pane',
+  'pane settings form' => 'panels_stylizer_stylizer_style_settings_form',
+
+  'render region' => 'panels_stylizer_stylizer_style_render_region',
+  'settings form' => 'panels_stylizer_stylizer_style_settings_form',
+
+  // We offer substyles so provide callbacks to do so.
+  'get child' => 'panels_stylizer_get_substyle',
+  'get children' => 'panels_stylizer_get_substyles',
+
+  // Set up an AJAX callback for the style
+  'ajax' => array(
+    'custom' => 'panels_stylizer_pane_add_style',
+  ),
+//  'settings validate' => 'panels_stylizer_stylizer_style_settings_validate',
+);
+
+/**
+ * Merge the main stylizer plugin with a style to create a sub plugin.
+ *
+ * This is used for both panels_stylizer_get_substyle and
+ * panels_stylizer_get_substyles.
+ */
+function panels_stylizer_merge_plugin($plugin, $style) {
+  $plugin['name'] = 'stylizer:' . $style->name;
+  $plugin['title'] = check_plain($style->admin_title);
+  $plugin['description'] = check_plain($style->admin_description);
+  $plugin['style'] = $style;
+  $plugin['weight'] = 0;
+
+  ctools_include('stylizer');
+  $base = ctools_get_style_base($style->settings['style_base']);
+  if ($base['type'] == 'pane') {
+    unset($plugin['render region']);
+  }
+  else {
+    unset($plugin['render pane']);
+  }
+
+  unset($plugin['settings form']);
+  unset($plugin['pane settings form']);
+  return $plugin;
+}
+
+/**
+ * Callback to provide a single stored stylizer style.
+ */
+function panels_stylizer_get_substyle($plugin, $style_name, $substyle_name) {
+  // Do not worry about caching; Panels is handling that for us.
+  ctools_include('export');
+  $item = ctools_export_crud_load('stylizer', $substyle_name);
+  if ($item) {
+    return panels_stylizer_merge_plugin($plugin, $item);
+  }
+}
+
+/**
+ * Callback to provide all stored stylizer styles.
+ */
+function panels_stylizer_get_substyles($plugin, $style_name) {
+  $styles[$style_name] = $plugin;
+  ctools_include('export');
+  ctools_include('stylizer');
+  $items = ctools_export_crud_load_all('stylizer');
+  foreach ($items as $name => $item) {
+    $base = ctools_get_style_base($item->settings['style_base']);
+    if ($base && $base['module'] == 'panels') {
+      $styles['stylizer:' . $name] = panels_stylizer_merge_plugin($plugin, $item);
+    }
+  }
+
+  return $styles;
+}
+
+function _panels_stylizer_get_style($plugin, $style_settings) {
+  if (!empty($plugin['style'])) {
+    return $plugin['style']->settings;
+  }
+
+  if (empty($style_settings)) {
+    return array();
+  }
+
+  if ($style_settings['style'] == '$') {
+    return $style_settings['settings'];
+  }
+
+  ctools_include('export');
+  $style = ctools_export_crud_load('stylizer', $style_settings['style']);
+  if ($style) {
+    return $style->settings;
+  }
+}
+
+/**
+ * Region render theme.
+ */
+function theme_panels_stylizer_stylizer_style_render_region($display, $owner_id, $panes, $style_settings, $region_id, $plugin) {
+  $output = '';
+
+  foreach ($panes as $pane_id => $pane_output) {
+    $output .= $pane_output;
+  }
+
+  $settings = _panels_stylizer_get_style($plugin, $style_settings);
+
+  if (!empty($settings)) {
+    ctools_include('stylizer');
+    $plugin = ctools_get_style_base($settings['style_base']);
+    ctools_stylizer_add_css($plugin, $settings);
+
+    return theme($plugin['theme'], $settings, ctools_stylizer_get_css_class($plugin, $settings), $output);
+  }
+  else {
+    // if the style is gone, just display the output.
+    return $output;
+  }
+}
+
+/**
+ * Pane render theme
+ */
+function theme_panels_stylizer_stylizer_style_render_pane($content, $pane, $display, $plugin) {
+  $settings = _panels_stylizer_get_style($plugin, $pane->style['settings']);
+
+  if ($settings) {
+    ctools_include('stylizer');
+    $plugin = ctools_get_style_base($settings['style_base']);
+
+    if (empty($content->css_class)) {
+      $content->css_class = ctools_stylizer_get_css_class($plugin, $settings);
+    }
+    else {
+      $content->css_class .= ' ' . ctools_stylizer_get_css_class($plugin, $settings);
+    }
+
+    ctools_stylizer_add_css($plugin, $settings);
+
+    if (isset($plugin['theme'])) {
+      return theme($plugin['theme'], $settings, $content, $pane, $display);
+    }
+  }
+
+  // if the style is gone or has no theme of its own, just display the output.
+  return theme('panels_pane', $content, $pane, $display);
+}
+
+/**
+ * Settings form callback.
+ */
+function panels_stylizer_stylizer_style_settings_form($style_settings, $display, $pid, $type, $form_state) {
+  // Just redirect this to the custom style settings ajax.
+  panels_stylizer_pane_add_style($form_state['renderer'], array(), $style_settings, $type, $pid);
+  ctools_ajax_render($form_state['renderer']->commands);
+}
+
+
+/**
+ * Allow on-the-fly creation of styles in panes.
+ */
+function panels_stylizer_pane_add_style(&$renderer, $plugin, &$conf, $type, $pid, $step = NULL) {
+  if (!user_access('administer panels styles')) {
+    return;
+  }
+
+  ctools_include('stylizer');
+  $js = FALSE;
+
+  $path = $renderer->get_url('style', 'custom', $type, $pid, '%step');
+
+  $info = array(
+    'module' => 'panels',
+    'type' => $type,
+    'path' => $path,
+    'modal' => t('Create custom style'),
+    'owner form' => 'panels_stylizer_edit_pane_style_form',
+    'owner form validate' => 'panels_stylizer_edit_pane_style_form_validate',
+    'owner form submit' => 'panels_stylizer_edit_pane_style_form_submit',
+    'owner settings' => array('preconfigured' => FALSE, 'name' => '', 'admin_title' => '', 'admin_description' => ''),
+    'cache' => &$renderer->cache,
+    'conf' => &$conf,
+    'pid' => $pid,
+  );
+
+  if (!empty($conf['settings'])) {
+    $info['settings'] = $conf['settings'];
+  }
+
+  $output = ctools_stylizer_edit_style($info, TRUE, $step);
+  if (!empty($info['complete'])) {
+    if (!empty($info['owner settings']['preconfigured'])) {
+      ctools_include('export');
+      $style = ctools_export_crud_new('stylizer');
+      $style->name = $info['settings']['name'];
+      $style->admin_title = $info['owner settings']['admin_title'];
+      $style->admin_description = $info['owner settings']['admin_description'];
+      $style->settings = $info['settings'];
+      ctools_export_crud_save('stylizer', $style);
+      $conf['style'] = $info['settings']['name'];
+      if (isset($conf['settings'])) {
+        unset($conf['settings']);
+      }
+    }
+    else {
+      $conf['style'] = '$';
+      $conf['settings'] = $info['settings'];
+    }
+
+    // Be sure to unset the temporary if the style was just changed.
+    if (isset($renderer->cache->style)) {
+      unset($renderer->cache->style);
+    }
+    // $conf was a reference so it should just modify.
+    panels_edit_cache_set($renderer->cache);
+
+    $renderer->commands[] = ctools_modal_command_dismiss();
+
+    if ($type == 'pane') {
+      $renderer->command_update_pane($pid);
+    }
+    else if ($type == 'region') {
+      $renderer->command_update_region_links($pid);
+    }
+    else {
+      $renderer->command_update_display_links();
+    }
+  }
+  else {
+    $renderer->commands = $output;
+  }
+}
+
+
+/**
+ * The form for determining if a pane should create a local style or a
+ * preconfigured style.
+ */
+function panels_stylizer_edit_pane_style_form(&$form, &$form_state) {
+  if (!user_access('administer panels styles') || !module_exists('stylizer')) {
+    return;
+  }
+  ctools_include('dependent');
+
+  $settings = $form_state['owner info']['owner settings'];
+  $form['panels']['admin_title'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Administrative title'),
+    '#description' => t('The name of this style. This will appear in the administrative interface to easily identify it.'),
+    '#default_value' => $settings['admin_title'],
+    '#process' => array('ctools_dependent_process'),
+    '#dependency' => array('edit-preconfigured' => array(1)),
+  );
+
+  $form['panels']['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Machine name'),
+    '#description' => t('The machine readable name of this page. It must be unique, and it must contain only alphanumeric characters and underscores. Once created, you will not be able to change this value!'),
+    '#default_value' => $settings['name'],
+    '#process' => array('ctools_dependent_process'),
+    '#dependency' => array('edit-preconfigured' => array(1)),
+  );
+
+  $form['panels']['admin_description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Administrative description'),
+    '#description' => t('A description of what this style is, does or is for, for administrative use.'),
+    '#default_value' => $settings['admin_description'],
+    '#process' => array('ctools_dependent_process'),
+    '#dependency' => array('edit-preconfigured' => array(1)),
+  );
+
+  // Add the checkbox, set the weight early
+  $form['panels']['preconfigured'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Make this style available to other regions or panes'),
+    '#default_value' => $settings['name'],
+    '#weight' => -1,
+  );
+
+}
+
+/**
+ * Validate to see if we need to check the preconfigured values.
+ */
+function panels_stylizer_edit_pane_style_form_validate(&$form, &$form_state) {
+  if (!user_access('administer panels styles')) {
+    return;
+  }
+
+  // Only validate if preconfigured is checked.
+  if ($form_state['values']['preconfigured'] && !empty($form_state['clicked_button']['#wizard type'])) {
+    if (empty($form_state['values']['admin_title'])) {
+      form_error($form['panels']['admin_title'], t('You must choose an administrative title.'));
+    }
+
+    // If this is new, make sure the name is unique:
+    if ($form_state['op'] == 'add') {
+      if (empty($form_state['values']['name'])) {
+        form_error($form['panels']['name'], t('You must choose a machine name.'));
+      }
+
+      ctools_include('export');
+      $test = ctools_export_crud_load('stylizer', $form_state['values']['name']);
+      if ($test) {
+        form_error($form['panels']['name'], t('That name is used by another style: @page', array('@page' => $test->admin_title)));
+      }
+
+      // Ensure name fits the rules:
+      if (preg_match('/[^a-zA-Z0-9_]/', $form_state['values']['name'])) {
+        form_error($form['panels']['name'], t('Name must be alphanumeric or underscores only.'));
+      }
+    }
+  }
+}
+
+/**
+ * Store the preconfigured values.
+ */
+function panels_stylizer_edit_pane_style_form_submit(&$form, &$form_state) {
+  if (!user_access('administer panels styles')) {
+    return;
+  }
+
+  // Only validate if preconfigured is checked.
+  if ($form_state['values']['preconfigured'] && !empty($form_state['clicked_button']['#wizard type'])) {
+    $form_state['owner info']['owner settings']['admin_title'] = $form_state['values']['admin_title'];
+    $form_state['owner info']['owner settings']['admin_description'] = $form_state['values']['admin_description'];
+
+    // Clean up preview files before we set the name
+    ctools_stylizer_cleanup_style($form_state['plugin'], $form_state['settings']);
+
+    $form_state['settings']['name'] = $form_state['values']['name'];
+    $form_state['name'] = $form_state['values']['name'];
+    $form_state['owner info']['owner settings']['preconfigured'] = $form_state['values']['preconfigured'];
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/task_handlers/panel_context.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/task_handlers/panel_context.inc
new file mode 100644
index 0000000..99664ea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/task_handlers/panel_context.inc
@@ -0,0 +1,846 @@
+<?php
+
+/**
+ * @file
+ *
+ * This is the task handler plugin to handle attaching a panel to any
+ * task that advertises itself as a 'context' type, which all of the
+ * basic page tasks provided by page_manager.module do by default.
+ */
+
+// Plugin definition
+$plugin = array(
+  // is a 'context' handler type, meaning it supports the API of the
+  // context handlers provided by ctools context plugins.
+  'handler type' => 'context',
+  'visible' => TRUE, // may be added up front.
+
+  // Administrative fields.
+  'title' => t('Panel'),
+  'admin summary' =>'panels_panel_context_admin_summary',
+  'admin title' => 'panels_panel_context_title',
+  'operations' => array(
+    'settings' => array(
+      'title' => t('General'),
+      'description' => t('Change general settings about this variant.'),
+      'form' => 'panels_panel_context_edit_settings',
+    ),
+    'criteria' => array(
+      'title' => t('Selection rules'),
+      'description' => t('Control the criteria used to decide whether or not this variant is used.'),
+      'ajax' => FALSE,
+      'form' => array(
+        'order' => array(
+          'form' => t('Selection rules'),
+        ),
+        'forms' => array(
+          'form' => array(
+            'include' => drupal_get_path('module', 'ctools') . '/includes/context-task-handler.inc',
+            'form id' => 'ctools_context_handler_edit_criteria',
+          ),
+        ),
+      ),
+    ),
+    'context' => array(
+      'title' => t('Contexts'),
+      'ajax' => FALSE,
+      'description' => t('Add additional context objects to this variant that can be used by the content.'),
+      'form' => array(
+        'order' => array(
+          'form' => t('Context'),
+        ),
+        'forms' => array(
+          'form' => array(
+            'include' => drupal_get_path('module', 'ctools') . '/includes/context-task-handler.inc',
+            'form id' => 'ctools_context_handler_edit_context',
+          ),
+        ),
+      ),
+    ),
+    'layout' => array(
+      'title' => t('Layout'),
+      'description' => t('Change the layout of this panel.'),
+      // No AJAX so we get our CSS loaded.
+      'ajax' => FALSE,
+      'form' => array(
+        'order' => array(
+          'choose' => t('Change layout'),
+          'move' => t('Move content from old layout'),
+        ),
+        'forms' => array(
+          'choose' => array(
+            'form id' => 'panels_panel_context_edit_layout',
+          ),
+          'move' => array(
+            'include' => array(
+              drupal_get_path('module', 'panels') . '/includes/display-layout.inc',
+            ),
+            'form id' => 'panels_panel_context_edit_move',
+            'submit' => 'panels_change_layout_submit',
+          ),
+        ),
+      ),
+    ),
+    'content' => array(
+      'title' => t('Content'),
+      'description' => t('Add content items and change their location with a drag and drop interface.'),
+      'ajax' => FALSE,
+      'form' => array(
+        'order' => array(
+          'form' => t('Content'),
+        ),
+        'forms' => array(
+          'form' => array(
+            'include' => array(
+              drupal_get_path('module', 'panels') . '/includes/display-edit.inc',
+            ),
+            'form id' => 'panels_panel_context_edit_content',
+            'no blocks' => TRUE,
+          ),
+        ),
+      ),
+    ),
+    'preview' => array(
+      'title' => t('Preview'),
+      'description' => t('Get a preview of what this variant will look like.'),
+      'form' => 'panels_panel_context_edit_preview',
+      'ajax' => FALSE,
+      'silent' => TRUE,
+      'form info' => array('finish text' => t('Preview')),
+      'no update and save' => TRUE,
+    ),
+  ),
+
+  'tab operation' => 'panels_panel_context_tab_operation',
+
+  // Callback to render the data.
+  'render' => 'panels_panel_context_render',
+
+  // Various callbacks for operations performed on the handler to ensure
+  // related data is updated properly.
+  'save' => 'panels_panel_context_save',
+  'delete' => 'panels_panel_context_delete',
+  'export' => 'panels_panel_context_export',
+  'clone' => 'panels_panel_context_clone',
+
+  'add features' => array(
+    'criteria' => t('Selection rules'),
+    'context' => t('Contexts'),
+  ),
+  // Where to go when finished.
+  'add finish' => 'content',
+
+  'required forms' => array(
+    'choose' => t('Choose layout'),
+    'settings' => t('Panel settings'),
+    'content' => t('Panel content'),
+  ),
+
+  'edit forms' => array(
+    'content' => t('Panel content'),
+    'criteria' => t('Selection rules'),
+    'settings' => t('General'),
+    'context' => t('Contexts'),
+    'layout' => t('Change layout'),
+    'move' => '', // no title makes it a 'hidden' edit form.
+  ),
+  'forms' => array(
+    'settings' => array(
+      'form id' => 'panels_panel_context_edit_settings',
+    ),
+    'choose' => array(
+      'form id' => 'panels_panel_context_edit_choose',
+      'no back validate' => TRUE,
+    ),
+    'layout' => array(
+      'no return' => TRUE,
+      'form id' => 'panels_panel_context_edit_layout',
+    ),
+    'move' => array(
+      'include' => array(
+        drupal_get_path('module', 'panels') . '/includes/display-layout.inc',
+      ),
+      'form id' => 'panels_panel_context_edit_move',
+      'submit' => 'panels_change_layout_submit',
+    ),
+    'content' => array(
+      'include' => array(
+        drupal_get_path('module', 'panels') . '/includes/display-edit.inc',
+      ),
+      'form id' => 'panels_panel_context_edit_content',
+      'no blocks' => TRUE,
+    ),
+    'context' => array(
+      'include' => drupal_get_path('module', 'ctools') . '/includes/context-task-handler.inc',
+      'form id' => 'ctools_context_handler_edit_context',
+    ),
+    'criteria' => array(
+      'include' => drupal_get_path('module', 'ctools') . '/includes/context-task-handler.inc',
+      'form id' => 'ctools_context_handler_edit_criteria',
+    ),
+  ),
+  'default conf' => array(
+    'title' => t('Panel'),
+    'no_blocks' => FALSE,
+    'pipeline' => 'standard',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+  ),
+);
+
+/**
+ * Provide the operation trail for the 'Edit panel' link.
+ *
+ * When editing the panel, go directly to the content tab.
+ */
+function panels_panel_context_tab_operation($handler, $contexts, $args) {
+  return array('handlers', $handler->name, 'content');
+}
+
+/**
+ * Get the display for a task handler.
+ *
+ * There are three methods that the display can be found.
+ * - In the database. $handler->conf['did'] will be set in this case,
+ *   and $handler->conf['display'] won't be.
+ * - In $handler->conf['display'], with $handler->conf['did'] empty. This
+ *   will be true for a default/imported task handler as well as a handler
+ *   that has just been created but has not yet been saved.
+ * - in $handler->conf['display'] with $handler->conf['did' populated. This
+ *   simply means that the display has been modified and is awaiting
+ *   save. The modified one should always be used for editing purposes.
+ * - If none of the above is true, then a new display needs to be created
+ *   for the handler and pla
+ */
+function &panels_panel_context_get_display(&$handler) {
+  if (isset($handler->conf['display'])) {
+    return $handler->conf['display'];
+  }
+
+  if (isset($handler->conf['did'])) {
+    $handler->conf['display'] = panels_load_display($handler->conf['did']);
+
+    // Check for a valid display. If no valid display can be loaded, something
+    // is wrong and we'll create a new one.
+    if (!empty($handler->conf['display'])) {
+      return $handler->conf['display'];
+    }
+  }
+
+  $handler->conf['display'] = panels_new_display();
+
+  return $handler->conf['display'];
+}
+
+/**
+ * Check selection rules and, if passed, render the contexts.
+ */
+function panels_panel_context_render($handler, $base_contexts, $args, $test = TRUE) {
+  // Go through arguments and see if they match.
+  ctools_include('context');
+  ctools_include('context-task-handler');
+  ctools_include('plugins', 'panels');
+
+  // Add my contexts
+  $contexts = ctools_context_handler_get_handler_contexts($base_contexts, $handler);
+
+  // Test.
+  if ($test && !ctools_context_handler_select($handler, $contexts)) {
+    return;
+  }
+
+  if (isset($handler->handler)) {
+    ctools_context_handler_pre_render($handler, $contexts, $args);
+  }
+
+  // Load the display
+  $display = panels_panel_context_get_display($handler);
+
+  $display->context = $contexts;
+  $display->args = $args;
+  $display->css_id = $handler->conf['css_id'];
+  $task_name = page_manager_make_task_name($handler->task, $handler->subtask);
+
+  $display->cache_key = 'panel_context:' . $task_name . ':' . $handler->name;
+
+  // Check to see if there is any CSS.
+  if (!empty($handler->conf['css'])) {
+    ctools_include('css');
+    $css_id = 'panel_context:' . $handler->name;
+    $filename = ctools_css_retrieve($css_id);
+    if (!$filename) {
+      $filename = ctools_css_store($css_id, $handler->conf['css']);
+    }
+    ctools_css_add_css($filename);
+  }
+
+  // With an argument, this actually sets the display.
+  panels_get_current_page_display($display);
+
+  // Handle backward compatibility with the IPE checkbox.
+  if (empty($handler->conf['pipeline'])) {
+    $handler->conf['pipeline'] = !empty($handler->conf['use_ipe']) ? 'ipe' : 'standard';
+  }
+
+  $renderer = panels_get_renderer($handler->conf['pipeline'], $display);
+
+  $info = array(
+    'content' => panels_render_display($display, $renderer),
+    'no_blocks' => !empty($handler->conf['no_blocks']),
+  );
+
+  $info['title'] = $display->get_title();
+
+  return $info;
+}
+
+/**
+ * Callback to allow the handler to react to being saved.
+ *
+ * When a handler with a display is saved, two things have to happen.
+ * First, we have to save the display so that it becomes a real display,
+ * not the fake one we started with. Second, we have to cache
+ * any CSS that the display is using. This CSS can get re-cached
+ * later if the file disappears, but it's imperative that we do it here
+ * to make sure that old, dirty CSS cache gets removed.
+ */
+function panels_panel_context_save(&$handler, $update) {
+  // Only save the display if we believe it has been modified.
+  if (isset($handler->conf['display'])) {
+    panels_save_display($handler->conf['display']);
+    $handler->conf['did'] = $handler->conf['display']->did;
+    unset($handler->conf['display']);
+  }
+
+  // Delete any previous CSS cache file.
+  ctools_include('css');
+  ctools_css_clear('panel_context:' . $handler->name);
+
+  if (isset($page->conf['temp_layout'])) {
+    unset($page->conf['temp_layout']);
+  }
+}
+
+/**
+ * Special handling for exporting a panel task handler.
+ *
+ * When a panel is exported, we need to export the display separately
+ * rather than just letting its object be unpacked, which does not work
+ * very well.
+ */
+function panels_panel_context_export(&$handler, $indent) {
+  $display = panels_panel_context_get_display($handler);
+  foreach (array('display', 'did', 'css_cache', 'temp_layout') as $item) {
+    if (isset($handler->conf[$item])) {
+      unset($handler->conf[$item]);
+    }
+  }
+
+  $output = panels_export_display($display, $indent);
+  $output .= $indent . '$handler->conf[\'display\'] = $display' . ";\n";
+  return $output;
+}
+
+/**
+ * When a handler is cloned, we have to clone the display.
+ */
+  function panels_panel_context_clone(&$handler) {
+  $old_display = panels_panel_context_get_display($handler);
+  $code = panels_export_display($old_display);
+  eval($code);
+  foreach (array('display', 'did', 'css_cache', 'temp_layout') as $item) {
+    if (isset($handler->conf[$item])) {
+      unset($handler->conf[$item]);
+    }
+  }
+  $display->did = 'new';
+  $handler->conf['display'] = $display;
+}
+
+/**
+ * Callback to delete the display when a handler is deleted.
+ */
+function panels_panel_context_delete(&$handler) {
+  if (!empty($handler->conf['did'])) {
+    panels_delete_display($handler->conf['did']);
+  }
+}
+
+/**
+ * Set up a title for the panel based upon the selection rules.
+ */
+function panels_panel_context_title($handler, $task, $subtask) {
+  if (isset($handler->conf['title'])) {
+    return check_plain($handler->conf['title']);
+  }
+  else {
+    return t('Panel');
+  }
+}
+
+/**
+ * Provide a nice little summary of what's in a panel.
+ *
+ * The task handler manager provides a summary of a given handler in a
+ * collapsible div. This callback provides that. For a Panel, we
+ * provide a summary of the layout type and content on one side, and
+ * a summary of the contexts in use on the other.
+ */
+function panels_panel_context_admin_summary($handler, $task, $subtask, $page, $show_title = TRUE) {
+  $task_name = page_manager_make_task_name($task['name'], $subtask['name']);
+  $output = '';
+
+  $display = panels_panel_context_get_display($handler);
+
+  ctools_include('plugins', 'panels');
+  ctools_include('context');
+  ctools_include('context-task-handler');
+
+  // Get the operations
+  $operations = page_manager_get_operations($page);
+
+  // Get operations for just this handler.
+  $operations = $operations['handlers']['children'][$handler->name]['children']['actions']['children'];
+  $args = array('handlers', $handler->name, 'actions');
+  $rendered_operations = page_manager_render_operations($page, $operations, array(), array('class' => 'actions'), 'actions', $args);
+
+  $layout = panels_get_layout($display->layout);
+
+  $plugin = page_manager_get_task_handler($handler->handler);
+
+  $object = ctools_context_handler_get_task_object($task, $subtask, $handler);
+  $display->context = ctools_context_load_contexts($object, TRUE);
+
+  $access = ctools_access_group_summary(!empty($handler->conf['access']) ? $handler->conf['access'] : array(), $display->context);
+  if ($access) {
+    $access = t('This panel will be selected if @conditions.', array('@conditions' => $access));
+  }
+  else {
+    $access = t('This panel will always be selected.');
+  }
+
+  $rows = array();
+
+  $type = $handler->type == t('Default') ? t('In code') : $handler->type;
+  $rows[] = array(
+    array('class' => t('page-summary-label'), 'data' => t('Storage')),
+    array('class' => t('page-summary-data'), 'data' => $type),
+    array('class' => t('page-summary-operation'), 'data' => ''),
+  );
+
+  if (!empty($handler->disabled)) {
+    $link = l(t('Enable'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'actions', 'enable')));
+    $text = t('Disabled');
+  }
+  else {
+    $link = l(t('Disable'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'actions', 'disable')));
+    $text = t('Enabled');
+  }
+
+  $rows[] = array(
+    array('class' => t('page-summary-label'), 'data' => t('Status')),
+    array('class' => t('page-summary-data'), 'data' => $text),
+    array('class' => t('page-summary-operation'), 'data' => $link),
+  );
+
+  $link = l(t('Edit'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'criteria')));
+  $rows[] = array(
+    array('class' => t('page-summary-label'), 'data' => t('Selection rule')),
+    array('class' => t('page-summary-data'), 'data' => $access),
+    array('class' => t('page-summary-operation'), 'data' => $link),
+  );
+
+  $link = l(t('Change layout'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'layout')));
+  $link .= '<br />' . l(t('Edit content'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'content')));
+  $link .= '<br />' . l(t('Preview'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'preview')));
+  $rows[] = array(
+    array('class' => t('page-summary-label'), 'data' => t('Layout')),
+    array('class' => t('page-summary-data'), 'data' => check_plain($layout['title'])),
+    array('class' => t('page-summary-operation'), 'data' => $link),
+  );
+
+  $content_link = ' [' . l(t('Edit'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'content'))) . ']';
+  $context_link = ' [' . l(t('Edit'), page_manager_edit_url($task_name, array('handlers', $handler->name, 'context'))) . ']';
+
+  $info = theme('table', array(), $rows, array('class' => 'page-manager-handler-summary'));
+
+/*
+  $content = theme('panels_common_content_list', $display);
+  if (empty($contents)) {
+    $contents = t('This panel has no content.');
+  }
+  $contexts = theme('ctools_context_list_no_table', $object);
+  if (empty($contexts)) {
+    $contexts = t('This panel has no contexts.');
+  }
+*/
+
+  $title = $handler->conf['title'];
+  if ($title != t('Panel')) {
+    $title = t('Panel: @title', array('@title' => $title));
+  }
+
+  $output .= '<div class="clear-block">';
+  if ($show_title) {
+  $output .= '<div class="handler-title clear-block">';
+    $output .= '<div class="actions handler-actions">' . $rendered_operations['actions'] . '</div>';
+    $output .= '<span class="title-label">' . $title . '</span>';
+  }
+
+  $output .= '</div>';
+  $output .= $info;
+  $output .= '</div>';
+/*
+  $output .= '<div class="right-container">';
+  $output .= '<h3 class="context-title">' . t('Contexts') . $context_link . '</h3>';
+  $output .= $contexts;
+  $output .= '</div>';
+
+  $output .= '<div class="left-container">';
+//  $output .= $icon;
+  $output .= '<h3 class="handler-title">' . t('Content') . $content_link . '</h3>';
+  $output .= $content;
+  $output .= '</div>';
+*/
+  return $output;
+}
+
+// --------------------------------------------------------------------------
+// Forms
+
+/**
+ * General notes about forms: The handler is automatically cached by the form
+ * wizard, so anything we store on $form_state['handler'] anywhere will get
+ * saved and appear on the next form. The cache is a 'working' cache and
+ * if the user hits cancel on any page of the multi-page wizard, all
+ * changes since the last 'update/finish' click will be flushed away.
+ *
+ * Many of the Panels forms call through to the real Panels cousins. These
+ * forms are smart enough to know that they're being wrapped in another
+ * form and act appropriately. Some of them are so smart that we just let
+ * their submit and validate handlers do the work rather than writing
+ * additional ones here.
+ */
+
+/**
+ * Choose a layout for this panel.
+ *
+ * This is only called during 'add', when we know that there isn't a
+ * previous layout to choose from. a different, only slightly different
+ * variant is called to change a pre-existing layout.
+ */
+function panels_panel_context_edit_choose(&$form, &$form_state) {
+  ctools_include('common', 'panels');
+  ctools_include('display-layout', 'panels');
+  ctools_include('plugins', 'panels');
+
+  // @todo -- figure out where/how to deal with this.
+  $form_state['allowed_layouts'] = 'panels_page';
+
+  $form_state['display'] = &panels_panel_context_get_display($form_state['handler']);
+
+  // Grab the storage_type and storage_id and inject it into the display.
+  if (empty($form_state['display']->storage_type)) {
+    if (!isset($form_state[$form_state['task_id']]->storage_type)) {
+      watchdog('panels', "Unable to find the storage type for specified storage. Read 'Upgrading task handlers' in CHANGELOG.txt", array(), WATCHDOG_ERROR);
+      $form_state['display']->storage_type = 'unknown';
+    }
+    else {
+      $form_state['display']->storage_type = $form_state[$form_state['task_id']]->storage_type;
+    }
+    // When adding variants, we don't know the handler id yet. In that case,
+    // Mark it as new. We'll assign it later.
+    $form_state['display']->storage_id = !empty($form_state['handler_id']) ? $form_state['handler_id'] : 'new';
+  }
+  // Tell the Panels form not to display buttons.
+  $form_state['no buttons'] = TRUE;
+
+  // Change the #id of the form so the CSS applies properly.
+  $form['#id'] = 'panels-choose-layout';
+  $form = array_merge($form, panels_choose_layout($form_state));
+}
+
+/**
+ * Validate that a layout was chosen.
+ */
+function panels_panel_context_edit_choose_validate(&$form, &$form_state) {
+  if (empty($form_state['values']['layout'])) {
+    form_error($form['layout'], t('You must select a layout.'));
+  }
+}
+
+/**
+ * A layout has been selected, set it up.
+ */
+function panels_panel_context_edit_choose_submit(&$form, &$form_state) {
+  $form_state['display']->layout = $form_state['values']['layout'];
+  $form_state['handler']->conf['display'] = $form_state['display'];
+  if (isset($form_state['page']->display_cache[$form_state['handler_id']])) {
+    $form_state['page']->display_cache[$form_state['handler_id']]->display = $form_state['display'];
+  }
+}
+
+/**
+ * Change the layout for this panel.
+ *
+ * This form is only used if a layout already exists and the user wants
+ * to change to a different one. The submit handler changes the next form
+ * to the move content form, which is 'hidden' so it won't be accessed
+ * directly.
+ */
+function panels_panel_context_edit_layout(&$form, &$form_state) {
+  ctools_include('common', 'panels');
+  ctools_include('display-layout', 'panels');
+  ctools_include('plugins', 'panels');
+
+  // @todo -- figure out where/how to deal with this.
+  $form_state['allowed_layouts'] = 'panels_page';
+
+  $form_state['display'] = &panels_panel_context_get_display($form_state['handler']);
+
+  // Tell the Panels form not to display buttons.
+  $form_state['no buttons'] = TRUE;
+
+  // Change the #id of the form so the CSS applies properly.
+  $form['#id'] = 'panels-choose-layout';
+  $form = array_merge($form, panels_choose_layout($form_state));
+}
+
+/**
+ * Validate that a layout was chosen.
+ */
+function panels_panel_context_edit_layout_validate(&$form, &$form_state) {
+  $display = &panels_panel_context_get_display($form_state['handler']);
+
+  if (empty($form_state['values']['layout'])) {
+    form_error($form['layout'], t('You must select a layout.'));
+  }
+  if ($form_state['values']['layout'] == $display->layout) {
+    form_error($form['layout'], t('You must select a different layout if you wish to change layouts.'));
+  }
+}
+
+/**
+ * A layout has been selected, set it up.
+ */
+function panels_panel_context_edit_layout_submit(&$form, &$form_state) {
+  $display = &panels_panel_context_get_display($form_state['handler']);
+
+  if ($form_state['values']['layout'] != $display->layout) {
+    $form_state['handler']->conf['temp_layout'] = $form_state['values']['layout'];
+  }
+}
+
+/**
+ * When a layout is changed, the user is given the opportunity to move content.
+ */
+function panels_panel_context_edit_move(&$form, &$form_state) {
+  $form_state['display'] = &panels_panel_context_get_display($form_state['handler']);
+  $form_state['layout'] = $form_state['handler']->conf['temp_layout'];
+
+  ctools_include('common', 'panels');
+  ctools_include('display-layout', 'panels');
+  ctools_include('plugins', 'panels');
+
+  // Tell the Panels form not to display buttons.
+  $form_state['no buttons'] = TRUE;
+
+  // Change the #id of the form so the CSS applies properly.
+  $form = array_merge($form, panels_change_layout($form_state));
+
+  // Change the 'back' button to just go directly to the previous form
+//  $task_id = $form_state['task']['name'];
+//  $handler_id = $form_state['handler']->handler;
+//  $name = $form_state['handler']->name;
+
+  // This form is outside the normal wizard list, so we need to specify the
+  // previous/next forms.
+  $form['buttons']['previous']['#next'] = 'layout';
+  $form['buttons']['next']['#next'] = 'content';
+
+  $form_state['form_info']['return path'] = page_manager_edit_url($form_state['page']->task_name, array('handlers', $form_state['handler_id'], 'content'));
+}
+
+/**
+ * Present the panels drag & drop editor to edit the display attached
+ * to the task handler.
+ */
+function panels_panel_context_edit_content(&$form, &$form_state) {
+  ctools_include('ajax');
+  ctools_include('plugins', 'panels');
+  ctools_include('common', 'panels');
+  ctools_include('context');
+  ctools_include('context-task-handler');
+
+  $cache = panels_edit_cache_get('panel_context:' . $form_state['task_name'] . ':' . $form_state['handler_id']);
+
+  $form_state['renderer'] = panels_get_renderer_handler('editor', $cache->display);
+  $form_state['renderer']->cache = &$cache;
+
+  $form_state['display'] = &$cache->display;
+  $form_state['content_types'] = $cache->content_types;
+  // Tell the Panels form not to display buttons.
+  $form_state['no buttons'] = TRUE;
+  $form_state['display_title'] = !empty($cache->display_title);
+  $form_state['no preview'] = TRUE;
+  $form_state['page']->display_cache[$form_state['handler_id']] = $cache;
+
+  $form = array_merge($form, panels_edit_display_form($form_state));
+  // Make sure the theme will work since our form id is different.
+  $form['#theme'] = 'panels_edit_display_form';
+
+  if (!isset($form_state['type']) || $form_state['type'] != 'add' && !empty($form_state['handler_id']) && !empty($form['buttons'])) {
+    $form['buttons']['preview'] = $form['buttons']['return'];
+    $form['buttons']['preview']['#value'] = t('Update and preview');
+  }
+}
+
+function panels_panel_context_edit_content_submit(&$form, &$form_state) {
+  // Update the storage_id if this is a new variant before saving.
+  if ($form_state['display']->storage_id == 'new') {
+    $form_state['display']->storage_id = $form_state['handler_id'];
+  }
+  panels_edit_display_form_submit($form, $form_state);
+  $handler = &$form_state['handler'];
+
+  // update the cached display:
+  $display = $form_state['page']->display_cache[$form_state['handler_id']]->display;
+  $handler->conf['display'] = $display;
+  unset($form_state['page']->display_cache[$form_state['handler_id']]);
+
+  if ($form_state['clicked_button']['#value'] == t('Update and preview')) {
+    $form_state['new trail'] = array('handlers', $form_state['handler_id'], 'preview');
+  }
+}
+
+/**
+ * General settings for the panel
+ */
+function panels_panel_context_edit_settings(&$form, &$form_state) {
+  $conf = $form_state['handler']->conf;
+  $form['conf']['title'] = array(
+    '#type' => 'textfield',
+    '#default_value' => $conf['title'],
+    '#title' => t('Administrative title'),
+    '#description' => t('Administrative title of this variant.'),
+  );
+
+  $form['conf']['no_blocks'] = array(
+    '#type' => 'checkbox',
+    '#default_value' => $conf['no_blocks'],
+    '#title' => t('Disable Drupal blocks/regions'),
+    '#description' => t('Check this to have the page disable all regions displayed in the theme. Note that some themes support this setting better than others. If in doubt, try with stock themes to see.'),
+  );
+
+  ctools_include('plugins', 'panels');
+  $pipelines = panels_get_renderer_pipelines();
+
+  // Handle backward compatibility with the IPE checkbox.
+  if (empty($conf['pipeline'])) {
+    $conf['pipeline'] = !empty($conf['use_ipe']) ? 'ipe' : 'standard';
+  }
+
+  // If there are no pipelines, that probably means we're operating in
+  // legacy mode.
+  if (empty($pipelines)) {
+    // We retain the original pipeline so we don't wreck things by installing
+    // old modules.
+    $form['conf']['pipeline'] = array(
+      '#type' => 'value',
+      '#value' => $conf['pipeline'],
+    );
+  }
+  else {
+    $options = array();
+    foreach ($pipelines as $name => $pipeline) {
+      $options[$name] = check_plain($pipeline->admin_title) . '<div class="description">' . check_plain($pipeline->admin_description) . '</div>';
+    }
+
+    $form['conf']['pipeline'] = array(
+      '#type' => 'radios',
+      '#options' => $options,
+      '#title' => t('Renderer'),
+      '#default_value' => $conf['pipeline'],
+    );
+  }
+
+  $form['conf']['css_id'] = array(
+    '#type' => 'textfield',
+    '#size' => 35,
+    '#default_value' => $conf['css_id'],
+    '#title' => t('CSS ID'),
+    '#description' => t('The CSS ID to apply to this page'),
+  );
+
+  $form['conf']['css'] = array(
+    '#type' => 'textarea',
+    '#title' => t('CSS code'),
+    '#description' => t('Enter well-formed CSS code here; this code will be embedded into the page, and should only be used for minor adjustments; it is usually better to try to put CSS for the page into the theme if possible. This CSS will be filtered for safety so some CSS may not work.'),
+    '#default_value' => $conf['css'],
+  );
+}
+
+/**
+ * Submit handler for general settings form.
+ */
+function panels_panel_context_edit_settings_submit(&$form, &$form_state) {
+  $form_state['handler']->conf['no_blocks'] = $form_state['values']['no_blocks'];
+  $form_state['handler']->conf['pipeline'] = $form_state['values']['pipeline'];
+  $form_state['handler']->conf['css_id'] = $form_state['values']['css_id'];
+  $form_state['handler']->conf['css'] = $form_state['values']['css'];
+  $form_state['handler']->conf['title'] = $form_state['values']['title'];
+
+  // Unset the old checkbox so we don't store needless data.
+  if (isset($form_state['handler']->conf['use_ipe'])) {
+    unset($form_state['handler']->conf['use_ipe']);
+  }
+}
+
+/**
+ * Form to show a nice preview.
+ */
+function panels_panel_context_edit_preview(&$form, &$form_state) {
+  ctools_include('context');
+  ctools_include('context-task-handler');
+
+  $contexts = ctools_context_handler_get_all_contexts($form_state['task'], $form_state['subtask'], $form_state['handler']);
+  $form['preview'] = array();
+  ctools_context_replace_form($form['preview'], $contexts);
+
+  // automatically preview if there are no argument placeholders.
+  if (empty($form['preview'])) {
+    $display = panels_panel_context_get_display($form_state['handler']);
+    $display->context = $contexts;
+    $display->skip_cache = TRUE;
+    $output = panels_render_display($display);
+    if (isset($form['buttons'])) {
+      unset($form['buttons']);
+    }
+  }
+  else {
+    $form['preview']['#tree'] = TRUE;
+    $form_state['contexts'] = $contexts;
+  }
+
+  if (!empty($output)) {
+    $form['output'] = array(
+      '#value' => $output,
+    );
+  }
+
+  $form_state['do not cache'] = TRUE;
+}
+
+/**
+ * Display a preview upon submit if arguments were needed.
+ */
+function panels_panel_context_edit_preview_submit(&$form, &$form_state) {
+  $display = panels_panel_context_get_display($form_state['handler']);
+  $display->context = ctools_context_replace_placeholders($form_state['contexts'], $form_state['values']['preview']);
+
+  $form_state['content'] = panels_render_display($display);
+  $form_state['redirect'] = FALSE;
+  $form_state['rerender'] = TRUE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/views/panels.views.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/views/panels.views.inc
new file mode 100644
index 0000000..a04502d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/views/panels.views.inc
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function panels_views_plugins() {
+  $plugins = array(
+    'row' => array(
+      'panels_fields' => array(
+        'title' => t('Panel fields'),
+        'help' => t('Displays the fields in a panel rather than using a template.'),
+        'handler' => 'panels_views_plugin_row_fields',
+        'path' => drupal_get_path('module', 'panels') . '/plugins/views',
+        'theme' => 'views_view_fields',
+        'theme path' => drupal_get_path('module', 'views') . '/theme',
+        'uses fields' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-row-panels-fields',
+        'parent' => 'fields',
+      ),
+    ),
+  );
+
+  return $plugins;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/plugins/views/panels_views_plugin_row_fields.inc b/drupal/sites/default/boinc/modules/contrib/panels/plugins/views/panels_views_plugin_row_fields.inc
new file mode 100644
index 0000000..27268d3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/plugins/views/panels_views_plugin_row_fields.inc
@@ -0,0 +1,163 @@
+<?php
+/**
+ * @file
+ * Contains the base row style plugin.
+ */
+
+/**
+ * The basic 'fields' row plugin
+ *
+ * This displays fields one after another, giving options for inline
+ * or not.
+ *
+ * @ingroup views_row_plugins
+ */
+class panels_views_plugin_row_fields extends views_plugin_row_fields {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['layout'] = array('default' => 'twocol');
+    $options['regions'] = array('default' => array());
+
+    return $options;
+  }
+
+  /**
+   * Provide a form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    ctools_include('plugins', 'panels');
+    $layouts = panels_get_layouts();
+    $options = array();
+    foreach ($layouts as $name => $layout) {
+      if (empty($layout['builder'])) {
+        $options[$name] = $layout['title'];
+      }
+      if ($name == $this->options['layout']) {
+        $current_layout = $layout;
+      }
+    }
+
+    $form['layout'] = array(
+      '#prefix' => '<div class="container-inline">',
+      '#type' => 'select',
+      '#options' => $options,
+      '#title' => t('Panel layout'),
+      '#default_value' => $this->options['layout'],
+    );
+
+    $form['change'] = array(
+      '#type' => 'submit',
+      '#value' => t('Change'),
+      '#submit' => array('panels_change_layout_button'),
+      '#suffix' => '</div>',
+    );
+
+    if (!empty($current_layout)) {
+      $fields = $this->display->handler->get_field_labels();
+      $regions = panels_get_regions($current_layout, panels_new_display());
+      foreach ($fields as $id => $title) {
+        $form['regions'][$id] = array(
+          '#type' => 'select',
+          '#title' => $title,
+          '#options' => $regions,
+        );
+        if (!empty($this->options['regions'][$id]) && !empty($regions[$this->options['regions'][$id]])) {
+          $form['regions'][$id]['#default_value'] = $this->options['regions'][$id];
+        }
+      }
+    }
+  }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit(&$form, &$form_state) {
+    $form_state['values']['row_options']['inline'] = array_filter($form_state['values']['row_options']['inline']);
+  }
+
+  /**
+   * Render a row object. This usually passes through to a theme template
+   * of some form, but not always.
+   */
+  function render($row) {
+    ctools_include('plugins', 'panels');
+    $layout = panels_get_layout($this->options['layout']);
+    if (!$layout) {
+      // Fall back to normal behavior if the layout is somehow invalid. This
+      // can happen if the layout was removed, for example.
+      return theme($this->theme_functions(), $this->view, $this->options, $row, $this->field_alias);
+    }
+
+    // Store a backup copy of the array because we're going to be screwing
+    // with this a lot.
+    $fields = $this->view->field;
+    unset($this->view->field);
+
+    $meta = 'standard';
+    // This row style gets run many times; only run this code once.
+    if (empty($this->region_fields)) {
+      $this->region_fields = array();
+      $regions = panels_get_regions($layout, panels_new_display());
+
+      // Ensure each region has an empty array.
+      foreach ($regions as $region_id => $name) {
+        if (empty($default_region)) {
+          $default_region = $region_id;
+        }
+
+        $this->region_fields[$region_id] = array();
+      }
+
+
+      // Go through all our fields and place them in regions according to the
+      // settings.
+      foreach ($fields as $id => $field) {
+        $region_id = ''; // ensure we don't accidentlly use the last field's region.
+        if (!empty($this->options['regions'][$id]) && !empty($regions[$this->options['regions'][$id]])) {
+          $region_id = $this->options['regions'][$id];
+        }
+        else {
+          // Fallback to putting unknown fields into the first region.
+          $region_id = $default_region;
+        }
+
+        // Ensure this works in PHP4 by keeping the reference.
+        $this->region_fields[$region_id][$id] = &$fields[$id];
+      }
+
+      // We don't need to set 'inline' for every record, so we do it inside
+      // this loop. We do need to set inline if we are in the live preview
+      // so that the CSS will get transmitted via javascript:
+      $meta = !empty($this->view->live_preview) ? 'inline' : 'standard';
+    }
+
+    // Now that we have distributed our fields, go through the regions and
+    // render them into the content array.
+    foreach ($this->region_fields as $region_id => $fields) {
+      $this->view->field = $fields;
+      $content[$region_id] = theme($this->theme_functions(), $this->view, $this->options, $row, $this->field_alias);
+    }
+
+    // Restore our $fields array.
+    $this->view->field = $fields;
+
+    // Now that we have a rendered content array, render it.
+    return panels_print_layout($layout, $content, $meta);
+  }
+}
+
+/**
+ * Override handler for views_ui_edit_display_form
+ */
+function panels_change_layout_button($form, &$form_state) {
+  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display->handler->options_submit($form, $form_state);
+
+  views_ui_cache_set($form_state['view']);
+  $form_state['rerender'] = TRUE;
+  $form_state['rebuild'] = TRUE;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard-block.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard-block.tpl.php
new file mode 100644
index 0000000..c2a665e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard-block.tpl.php
@@ -0,0 +1,13 @@
+<?php
+?>
+<div class="dashboard-block">
+  <h3 class="dashboard-title"><?php print $block['title']; ?></h3>
+  <div class="dashboard-content <?php print $block['class']; ?>">
+    <?php print $block['content']; ?>
+    <?php if (!empty($block['link'])): ?>
+      <div class="links">
+        <?php print $block['link']; ?>
+      </div>
+    <?php endif; ?>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard-link.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard-link.tpl.php
new file mode 100644
index 0000000..681a723
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard-link.tpl.php
@@ -0,0 +1,12 @@
+<?php
+?>
+<div class="dashboard-entry clear-block">
+  <div class="dashboard-text">
+    <div class="dashboard-link">
+      <?php print $link['title']; ?>
+    </div>
+    <div class="description">
+      <?php print $link['description']; ?>
+    </div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard.tpl.php
new file mode 100644
index 0000000..75c9e4c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-dashboard.tpl.php
@@ -0,0 +1,11 @@
+<?php
+?>
+<div class="panels-dashboard">
+  <div class="dashboard-left clear-block">
+    <?php print $left; ?>
+  </div>
+
+  <div class="dashboard-right clear-block">
+    <?php print $right; ?>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-pane.tpl.php b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-pane.tpl.php
new file mode 100644
index 0000000..c7ea90f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/panels/templates/panels-pane.tpl.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * @file panels-pane.tpl.php
+ * Main panel pane template
+ *
+ * Variables available:
+ * - $pane->type: the content type inside this pane
+ * - $pane->subtype: The subtype, if applicable. If a view it will be the
+ *   view name; if a node it will be the nid, etc.
+ * - $title: The title of the content
+ * - $content: The actual content
+ * - $links: Any links associated with the content
+ * - $more: An optional 'more' link (destination only)
+ * - $admin_links: Administrative links associated with the content
+ * - $feeds: Any feed icons or associated with the content
+ * - $display: The complete panels display object containing all kinds of
+ *   data including the contexts and all of the other panes being displayed.
+ */
+?>
+<div class="<?php print $classes; ?>" <?php print $id; ?>>
+  <?php if ($admin_links): ?>
+    <div class="admin-links panel-hide">
+      <?php print $admin_links; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($title): ?>
+    <h2 class="pane-title"><?php print $title; ?></h2>
+  <?php endif; ?>
+
+  <?php if ($feeds): ?>
+    <div class="feed">
+      <?php print $feeds; ?>
+    </div>
+  <?php endif; ?>
+
+  <div class="pane-content">
+    <?php print $content; ?>
+  </div>
+
+  <?php if ($links): ?>
+    <div class="links">
+      <?php print $links; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($more): ?>
+    <div class="more-link">
+      <?php print $more; ?>
+    </div>
+  <?php endif; ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/privatemsg/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/add-rule-button.png b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/add-rule-button.png
new file mode 100644
index 0000000..ceaa2b6
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/add-rule-button.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.css b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.css
new file mode 100644
index 0000000..b5319bc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.css
@@ -0,0 +1,48 @@
+#pm-block-user-settings .sticky-header {
+  /* Stop the remove button overlapping the sticky header */
+  z-index: 10;
+}
+#pm-block-user-settings .throbber {
+  margin: 4px 0;
+}
+#add-rule-button, #remove-rule-button {
+  height: 45px;
+  /* Stop the remove button overlapping the sticky header */
+  z-index: 1;
+}
+#add-rule-button label {
+  line-height: 26px;
+  margin-left: 2px;
+}
+#remove-rule-button {
+  width: 100px;
+  position: relative;
+}
+#remove-rule-button label {
+  display: block;
+  clear: both;
+  text-align: center;
+}
+#add-rule-button input,
+#remove-rule-button input {
+  display: inline-block;
+  overflow: hidden;
+  width: 24px;
+  height: 24px;
+  padding: 0;
+  margin: 0;
+  border: 0;
+  text-indent: -9999px;
+  cursor: pointer; /* Hand shaped cursor */
+  cursor: hand; /* for old versions of IE */
+}
+#add-rule-button input {
+  background: transparent url('add-rule-button.png') left top no-repeat;
+}
+#remove-rule-button input {
+  background: transparent url('remove-rule-button.png') left top no-repeat;
+  /* Only way to centre-align remove button without having AHAH throbber
+   * interfere with it */
+  margin-left: 36px;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.info b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.info
new file mode 100644
index 0000000..44818f7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.info
@@ -0,0 +1,12 @@
+name = Block user messages
+description = Allows users to block other users from sending them messages.
+package = Mail
+core = 6.x
+dependencies[] = privatemsg
+
+; Information added by drupal.org packaging script on 2011-06-19
+version = "6.x-1.5-boinc-1-dev"
+core = "6.x"
+project = "privatemsg"
+datestamp = "1393530079"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.install b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.install
new file mode 100755
index 0000000..7ee8de5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.install
@@ -0,0 +1,50 @@
+<?php
+/**
+ * @file
+ * Install file for pm_block_user.module
+ */
+
+/**
+ * Implements hook_schema().
+ */
+function pm_block_user_schema() {
+  $schema = array();
+
+  $schema['pm_block_user'] = array(
+    'description'       => '{pm_block_user} holds data mapping which authors who cannot messages to which recipients ',
+    'fields'        => array(
+      'author'    => array(
+        'description'   => 'ID of the author',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'recipient'    => array(
+        'description'   => 'ID of the recipient',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+    ),
+    'primary key' => array('author', 'recipient'),
+  );
+
+  return $schema;
+}
+function pm_block_user_install() {
+  drupal_install_schema('pm_block_user');
+
+}
+
+function pm_block_user_uninstall() {
+  drupal_uninstall_schema('pm_block_user');
+}
+
+/**
+ * Add primary key to {pm_block_user} table.
+ */
+function pm_block_user_update_6000() {
+  $ret = array();
+  db_add_primary_key($ret, 'pm_block_user', array('author', 'recipient'));
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.module b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.module
new file mode 100755
index 0000000..a3dee2d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.module
@@ -0,0 +1,584 @@
+<?php
+
+/**
+ * @file
+ * Allows users to block other users from sending them any messages
+ */
+
+/**
+ * Disallow blocking private messages from a user.
+ */
+define('PM_BLOCK_USER_DISALLOW_BLOCKING', 0);
+
+/**
+ * Disallow sending private messages to a user.
+ */
+define('PM_BLOCK_USER_DISALLOW_SENDING', 1);
+
+/**
+ * Implements hook_help().
+ */
+function pm_block_user_help($path) {
+  switch ($path) {
+    case 'admin/settings/messages/block':
+      return '<p>' . t('This area is used to define user blocking rules for the Privatemsg module. Rules allow control of who may block messages from whom. By default all users are allowed to block messages from anyone else. However, a site may have groups of users that need to contact or get information to others, for example: the site may have administrative staff or be a forum with moderators. Groups of users are defined by roles, which can be managed on the <a href="@roles">roles con [...]
+  }
+}
+
+/**
+ * Implements hook_menu().
+ */
+function pm_block_user_menu() {
+  $items['messages/block/%user'] = array(
+    'title'            => 'Block user messages',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('pm_block_user_form', 2),
+    'access callback'  => '_pm_block_user_access',
+    'access arguments' => array(2),
+    'type'             => MENU_CALLBACK,
+    'weight'           => -10,
+  );
+
+  $items['admin/settings/messages/block'] = array(
+    'title'            => 'User blocking rules',
+    'description'      => 'Configure rules for which users may block each other.',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('pm_block_user_settings'),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_LOCAL_TASK,
+  );
+
+  $items['messages/block/js'] = array(
+    'title' => 'Javascript block actions form',
+    'page callback' => 'pm_block_user_js',
+    'access arguments' => array('administer privatemsg settings'),
+    'type' => MENU_CALLBACK,
+  );
+
+  return $items;
+}
+
+/**
+ * Menu callback for blocked user settings.
+ */
+function pm_block_user_settings(&$form_state) {
+  drupal_add_css(drupal_get_path('module', 'pm_block_user') .'/pm_block_user.css');
+  // Need to cache form for AHAH, so it can be rebuilt from cache later.
+  $form = array(
+    '#cache' => TRUE,
+  );
+
+  // Container for just the actions, used for AHAH.
+  $form['block_actions'] = array(
+    '#tree' => TRUE,
+    '#prefix' => '<div id="block-actions">',
+    '#suffix' => '</div>',
+    '#theme' => 'pm_block_user_actions',
+  );
+
+  // Should we populate the form with data from $form_state or the database?
+  if (!isset($form_state['pm_block_user']['block_actions'])) {
+    $block_actions = variable_get('pm_block_user_actions', array());
+  }
+  else {
+    $block_actions = $form_state['pm_block_user']['block_actions'];
+  }
+  // Work through each rule, adding it as a new element in
+  // $form['block_actions'] ready to be themed later.
+  foreach ($block_actions as $delta => $details) {
+    $details['delta'] = $delta;
+    $form['block_actions'][$delta] = _pm_block_user_actions_form($details);
+  }
+
+  // The magic AHAH callback button that adds more rows.
+  $form['pm_block_actions_more'] = array(
+    '#type' => 'submit',
+    '#value' => t('More'),
+    '#weight' => 1,
+    '#prefix' => '<div id="add-rule-button">',
+    '#suffix' => '<label for="edit-pm-block-actions-more">' . t('Add new rule') . '</label></div>',
+    '#submit' => array('pm_block_user_more_submit'),
+    '#ahah' => array(
+      'path' => 'messages/block/js',
+      'wrapper' => 'block-actions',
+      'method' => 'replace',
+      'effect' => 'fade',
+    ),
+  );
+
+  $form['submit_form'] = array(
+    '#type' => 'submit',
+    '#weight' => 10,
+    '#value' => t('Save configuration'),
+  );
+
+  return $form;
+}
+
+/**
+ * Builds row of sending, receiving roles and actions that go with them.
+ *
+ * @param $details
+ *   Details of the row: default values and the unique row number (delta).
+ * @param $blacklist
+ *   When the functionality has been added, this will allow building actions
+ *   based on a whitelist or blacklist. The current code only covers the use
+ *   case of a blacklist, where blocking everyone is allowed by default and
+ *   rules are exceptions to that. Conversely, a whitelist will disallow
+ *   blocking by default and rules will configure roles that are allowed to
+ *   block.
+ *
+ * @return
+ *   Part of a form with controls for sending, receiving and actions.
+ */
+function _pm_block_user_actions_form($details, $blacklist = TRUE) {
+  $form = array(
+    '#tree' => TRUE,
+  );
+  $delta = $details['delta'];
+  // FALSE by default, or if the user has checked the 'Enabled' check box for
+  // this row.
+  $row_disabled = (isset($details['enabled']) ? !$details['enabled'] : FALSE);
+
+  $form['author'] = array(
+    '#type' => 'select',
+    '#options' => user_roles(TRUE),
+    '#default_value' => (isset($details['author']) ? $details['author'] : DRUPAL_AUTHENTICATED_RID),
+    '#disabled' => $row_disabled,
+  );
+  $form['recipient'] = array(
+    '#type' => 'select',
+    '#options' => user_roles(TRUE),
+    '#default_value' => (isset($details['recipient']) ? $details['recipient'] : DRUPAL_AUTHENTICATED_RID),
+    '#disabled' => $row_disabled,
+  );
+
+  // Provide different action radios if we're using a whitelist or a blacklist.
+  if ($blacklist) {
+    $options = array(
+      PM_BLOCK_USER_DISALLOW_BLOCKING => t('Disallow blocking author'),
+      PM_BLOCK_USER_DISALLOW_SENDING => t('Disallow sending message'),
+    );
+    $default_value = (isset($details['action']) ? $details['action'] : PM_BLOCK_USER_DISALLOW_BLOCKING);
+  }
+  else {
+    // @todo: add whitelist options/default_value here.
+  }
+  $form['action']  = array(
+    '#type' => 'radios',
+    '#options' => $options,
+    '#disabled' => $row_disabled,
+    '#default_value' => $default_value,
+  );
+
+  $form['enabled'] = array(
+    '#type' => 'checkbox',
+    '#default_value' => (isset($details['enabled']) ? $details['enabled'] : TRUE),
+  );
+  $form['remove'] = array(
+    '#type' => 'submit',
+    '#submit' => array('pm_block_user_remove_submit'),
+    '#value' => t('Remove'),
+    '#attributes' => array('class' => 'remove-action'),
+    '#prefix' => '<div id="remove-rule-button">',
+    '#suffix' => '<label for="edit-remove">' . t('Remove rule') . '</label></div>',
+    '#ahah' => array(
+      'path' => 'messages/block/js',
+      'wrapper' => 'block-actions',
+      'method' => 'replace',
+      'effect' => 'fade',
+    ),
+  );
+
+  return $form;
+}
+
+/**
+ * Submit handler for 'More' button, adds a new action.
+ *
+ * @see pm_block_user_remove_submit()
+ */
+function pm_block_user_more_submit($form, &$form_state) {
+  unset($form_state['submit_handlers']);
+  form_execute_handlers('submit', $form, $form_state);
+  // Get the submitted actions, then put them into a special area of
+  // the $form_state.
+  $submitted_values = $form_state['values'];
+  // Add an empty action.
+  $submitted_values['block_actions'][] = array();
+  $form_state['pm_block_user'] = $submitted_values;
+  // Rebuild the form by passing our $form_state through the
+  // pm_block_user_settings() builder function.
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Submit handler for 'Remove' button, removes an action.
+ *
+ * @see pm_block_user_more_submit()
+ */
+function pm_block_user_remove_submit($form, &$form_state) {
+  unset($form_state['submit_handlers']);
+  form_execute_handlers('submit', $form, $form_state);
+  $submitted_values = $form_state['values'];
+  // Remove the requested action.
+  $delta = $form_state['clicked_button']['#parents'][1];
+  unset($submitted_values['block_actions'][$delta]);
+  $form_state['pm_block_user'] = $submitted_values;
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Submit handler for admin form.
+ */
+function pm_block_user_settings_submit($form, &$form_state) {
+  // We don't want it to submit when we're adding/removing actions.
+  if ($form_state['clicked_button']['#id'] == 'edit-submit-form') {
+    // If the form's 'block_actions' aren't set, the user has deleted all the
+    // rows in the table, so we save an empty array to stop errors in the form
+    // builder.
+    if (isset($form_state['values']['block_actions'])) {
+      variable_set('pm_block_user_actions', _pm_block_user_settings_filter($form_state['values']['block_actions']));
+    }
+    else {
+      variable_set('pm_block_user_actions', array());
+    }
+    drupal_set_message(t('The configuration options have been saved.'));
+  }
+}
+
+/**
+ * Takes an array of settings and filters out anything that's un-needed.
+ *
+ * Leaving only settings to be saved.
+ *
+ * @param $settings
+ *   The array of settings to filter.
+ * @return
+ *   Array of settings, ready to be stored in the database.
+ * @see pm_block_user_settings_submit()
+ */
+function _pm_block_user_settings_filter($settings) {
+  // Add-in the names of any settings to be saved into the array below.
+  $save_keys = array('author', 'recipient', 'action', 'enabled');
+  $matching = array();
+  // Run through each of the keys we want to save, creating a new array.
+  // It's not possible to simply check for unwanted values and unset() them as
+  // the array is multi-dimensional.
+  foreach ($save_keys as $save_key) {
+    if (isset($settings[$save_key])) {
+      $matching[$save_key] = $settings[$save_key];
+    }
+  }
+  if (count($matching) > 0) {
+    return $matching;
+  }
+  else {
+    return array_map('_pm_block_user_settings_filter', $settings);
+  }
+}
+
+/**
+ * Menu callback for AHAH handling.
+ */
+function pm_block_user_js() {
+  // See: http://drupal.org/node/331941 for the philosophy of Drupal AHAH.
+  $form_state = array('storage' => NULL, 'submitted' => FALSE);
+  $form_build_id = $_POST['form_build_id'];
+  $form = form_get_cache($form_build_id, $form_state);
+  $args = $form['#parameters'];
+  $form_id = array_shift($args);
+  $form['#post'] = $_POST;
+  $form['#redirect'] = FALSE;
+  $form['#programmed'] = FALSE;
+  $form_state['post'] = $_POST;
+  drupal_process_form($form_id, $form, $form_state);
+  $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
+  $output_form = $form['block_actions'];
+  unset($output_form['#prefix'], $output_form['#suffix']); // Prevent duplicate wrappers.
+  $output = theme('status_messages') . drupal_render($output_form);
+
+  // Hack to make behaviours attach to new HTML controls (delete buttons in
+  // this case).
+  $javascript = drupal_add_js(NULL, NULL, 'header');
+  drupal_json(array('status' => TRUE, 'data' => $output));
+}
+
+/**
+ * Implements hook_theme().
+ */
+function pm_block_user_theme() {
+  return array(
+    'pm_block_user_actions' => array(
+      'arguments' => array('form' => NULL),
+    ),
+  );
+}
+
+/**
+ * Theme the user actions form.
+ *
+ * @ingroup themeable
+ */
+function theme_pm_block_user_actions($form) {
+  $rows = array();
+  $headers = array(
+    t('If the author has the role'),
+    t('And the recipient has the role'),
+    t('Action'),
+    t('Enabled'),
+    '',
+  );
+  $form_data = element_children($form);
+
+  foreach ($form_data as $key) {
+    // Build the table row.
+    $row = array(
+      'data' => array(
+        array('data' => drupal_render($form[$key]['author'])),
+        array('data' => drupal_render($form[$key]['recipient'])),
+        array('data' => drupal_render($form[$key]['action'])),
+        array('data' => drupal_render($form[$key]['enabled'])),
+        array('data' => drupal_render($form[$key]['remove'])),
+      ),
+    );
+
+    // Add additional attributes to the row, such as a class for this row.
+    if (isset($form[$key]['#attributes'])) {
+      $row = array_merge($row, $form[$key]['#attributes']);
+    }
+    $rows[] = $row;
+  }
+
+  // If there are no rows, output some instructions for the user.
+  if (empty($form_data)) {
+    $rows[] = array(
+      array(
+        'data' => t("No rules have been added. All users may block private messages from each other. To limit which users may be blocked, click 'Add new rule'."),
+        'colspan' => '5',
+      ),
+    );
+  }
+
+  $output = theme('table', $headers, $rows);
+  $output .= drupal_render($form);
+
+  return $output;
+}
+
+/**
+ * Provides access argument for blocking user menu item.
+ *
+ * @param $account
+ *   User object representing the account the menu item will block private
+ *   messages from.
+ *
+ * @return
+ *   TRUE if the user is allowed to block $account, or FALSE if not.
+ */
+function _pm_block_user_access($account) {
+  global $user;
+  if (!privatemsg_user_access('read privatemsg', $user)) {
+    return FALSE;
+  }
+  if (_pm_block_user_rule_exists($account, $user, PM_BLOCK_USER_DISALLOW_BLOCKING)) {
+    return FALSE;
+  }
+  return TRUE;
+}
+
+/**
+ * Checks whether a rule exists for a given author, recipient and action.
+ *
+ * For example: if this is passed User A (who has the admin role), User B (who
+ * has the authenticated user role) and PM_BLOCK_USER_DISALLOW_BLOCKING
+ * parameters, and a rule is configured that disallows authenticated users
+ * blocking admins then this function will return TRUE.
+ *
+ * @param $author
+ *   Author user object to check.
+ * @param $recipient
+ *   Receiver user object to check.
+ * @param $action
+ *   The action to be taken, defaults to PM_BLOCK_USER_DISALLOW_BLOCKING.
+ *
+ * @return
+ *   TRUE if a rule exists for the combination of author recipient and action.
+ */
+function _pm_block_user_rule_exists($author, $recipient, $action = PM_BLOCK_USER_DISALLOW_BLOCKING) {
+  $block_actions = variable_get('pm_block_user_actions', array());
+  foreach ($block_actions as $delta => $details) {
+    // If this rule doesn't relate to $action, or it's disabled
+    // ignore it and go to next loop iteration.
+    if ($details['action'] != $action || !$details['enabled']) {
+      continue;
+    }
+    // There are no rules governing user one, but user one may have roles that
+    // affect other users, so these exceptions are narrow in scope.
+    // Disallow sending affects private message authors.
+    if ($author->uid == 1 && $action == PM_BLOCK_USER_DISALLOW_SENDING) {
+      continue;
+    }
+    // Disallow blocking affects private message recipients.
+    if ($recipient->uid == 1 && $action == PM_BLOCK_USER_DISALLOW_BLOCKING) {
+      continue;
+    }
+    // The author has a role matching the rule and so does the recipient.
+    if (isset($author->roles[$details['author']]) && isset($recipient->roles[$details['recipient']])) {
+      return TRUE;
+    }
+  }
+  return FALSE;
+}
+
+function pm_block_user_form($form_state, $author) {
+  global $user;
+
+  $form['author'] = array(
+    '#type' => 'value',
+    '#value' => $author->uid,
+  );
+    $form['recipient'] = array(
+    '#type' => 'value',
+    '#value' => $user->uid,
+  );
+  $form['author_name'] = array(
+    '#type' => 'value',
+    '#value' => $author->name,
+  );
+  $form['destination'] = array(
+    '#type' => 'value',
+    '#value' => isset($_GET['destination']) ? $_GET['destination'] : 'messages/',
+  );
+
+  if (db_result(db_query('SELECT COUNT(recipient) FROM {pm_block_user} WHERE author = %d AND recipient = %d', $author->uid, $user->uid))) {
+    $form['block_action'] = array(
+      '#type' => 'value',
+      '#value' => 'unblock_user',
+    );
+    return confirm_form($form,
+      t('You have previously blocked "@author" from sending you any more messages. Are you sure you want to unblock this user?', array('@author' => $author->name)),
+      isset($_GET['destination']) ? $_GET['destination'] : 'messages/',
+      t('This action cannot be undone.'),
+      t('Unblock @author', array('@author' => $author->name)),
+      t('Cancel')
+    );
+  }
+  else {
+    $form['block_action'] = array(
+      '#type' => 'value',
+      '#value' => 'block_user',
+    );
+    return confirm_form($form,
+      t('Are you sure you want to block "@author" from sending you any more messages?', array('@author' => $author->name)),
+      isset($_GET['destination']) ? $_GET['destination'] : 'messages/',
+      '',
+      t('Block @author', array('@author' => $author->name)),
+      t('Cancel')
+    );
+  }
+}
+
+/**
+ * Implements hook_form_submit().
+ */
+function pm_block_user_form_submit($form, &$form_state) {
+  if ($form_state['values']['confirm']) {
+    switch ($form_state['values']['block_action']) {
+      case 'block_user':
+        db_query('INSERT INTO {pm_block_user} (author, recipient) VALUES (%d, %d)', $form_state['values']['author'], $form_state['values']['recipient']);
+        drupal_set_message(t('@author has been blocked from sending you any further messages.', array('@author' => $form_state['values']['author_name'])));
+      break;
+      case 'unblock_user':
+        db_query('DELETE FROM {pm_block_user} WHERE author = %d AND recipient = %d', $form_state['values']['author'], $form_state['values']['recipient']);
+        drupal_set_message(t('@author is now allowed to send you new messages.', array('@author' => $form_state['values']['author_name'])));
+      break;
+    }
+  }
+  $form_state['redirect'] = $form_state['values']['destination'];
+}
+
+/**
+ * Implements hook_privatemsg_block_message().
+ */
+function pm_block_user_privatemsg_block_message($author, $recipients) {
+  $blocked = array();
+  // Loop through each recipient and ensure there is no rule blocking this
+  // author from sending them private messages. Use a reference, so when
+  // user_load() is needed here the array is updated, negating the need for
+  // further calls to user_load() later in the code.
+  foreach (array_keys($recipients) as $uid) {
+
+    // Ensure we have a recipient user object which includes roles.
+    if (!isset($recipients[$uid]->roles)) {
+      $recipients[$uid] = user_load($uid);
+    }
+    // Note: this is checks whether the author may send the message (see third
+    // parameter). Further below is a check whether the recipient may block it.
+    if (_pm_block_user_rule_exists($author, $recipients[$uid], PM_BLOCK_USER_DISALLOW_SENDING)) {
+      $blocked[] = array(
+        'uid' => $uid,
+        'message' => t('Sorry, private messaging rules forbid sending messages to !name.', array('!name' => $recipients[$uid]->name)),
+      );
+    }
+  }
+
+  $args = array_merge(array($author->uid), array_keys($recipients));
+  $result = db_query('SELECT recipient FROM {pm_block_user} WHERE author = %d AND recipient IN ('. db_placeholders($recipients) .') GROUP BY recipient', $args);
+  while ($row = db_fetch_array($result)) {
+    $recipient = $recipients[$row['recipient']];
+    // If there's a rule disallowing blocking of this message, send it anyway.
+    if (_pm_block_user_rule_exists($author, $recipient, PM_BLOCK_USER_DISALLOW_BLOCKING)) {
+      continue;
+    }
+    $blocked[] = array(
+      'uid' => $row['recipient'],
+      'message' => t('%name has chosen to not recieve any more messages from you.', array('%name' => $recipients[$row['recipient']]->name))
+    );
+  }
+  return $blocked;
+}
+
+function pm_block_user_privatemsg_sql_load_alter(&$fragments, $pmid, $uid) {
+  $fragments['select'][] = 'pmbu.recipient AS is_blocked';
+
+  $fragments['inner_join'][] = 'LEFT JOIN {pm_block_user} pmbu ON (pm.author = pmbu.author AND pmi.uid = pmbu.recipient)';
+}
+
+/**
+ * Implements hook_privatemsg_message_view_alter().
+ */
+function pm_block_user_privatemsg_message_view_alter(&$vars) {
+  global $user;
+
+  $author = $vars['message']['author'];
+  if (_pm_block_user_rule_exists($author, $user, PM_BLOCK_USER_DISALLOW_BLOCKING)) {
+    return;
+  }
+  if (!isset($vars['message']['thread_id'])) {
+    // No thread id, this is probably only a preview
+    return;
+  }
+  $thread_id = $vars['message']['thread_id'];
+
+  if ($user->uid <> $author->uid) {
+    if ($vars['message']['is_blocked']) {
+      $vars['message_actions']['unblock_author'] = array('title' => t('Unblock author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id);
+    }
+    else {
+      $vars['message_actions']['block_author'] = array('title' => t('Block author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id);
+    }
+  }
+}
+
+/**
+ * Implement hook_user().
+ */
+function pm_block_user_user($op, &$edit, &$account, $category = NULL) {
+  switch ($op) {
+      case 'delete':
+      // Delete blocking rules which involve this user.
+      db_query("DELETE FROM {pm_block_user} WHERE author = %d OR recipient = %d", $account->uid, $account->uid);
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.test b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.test
new file mode 100644
index 0000000..f08f6fe
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/pm_block_user.test
@@ -0,0 +1,174 @@
+<?php
+/**
+ * @file
+ * Test file for pm_block_user.module
+ */
+
+class PrivatemsgBlockUserCase extends DrupalWebTestCase {
+  /**
+   * Implements getInfo().
+   */
+  function getInfo() {
+    return array
+    (
+      'name' => t('User blocking functionality.'),
+      'description' => t('Test blocking and unblocking of users'),
+      'group' => t('Privatemsg'),
+    );
+  }
+
+  function setUp() {
+    parent::setUp('privatemsg', 'pm_block_user');
+  }
+
+  /**
+   * Test role blocking rules.
+   */
+  function testRoleBlockRecipient() {
+    // User id 3, Role id 3.
+    $author_user = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'access user profiles'));
+    // User id 4, Role id 4.
+    $blocked_user = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'access user profiles'));
+    // User id 5, Role id 5.
+    $admin_user = $this->drupalCreateUser(array('administer privatemsg settings'));
+
+    // Login the admin user and set up the role blocking rules.
+    $this->drupalLogin($admin_user);
+
+    $this->drupalPost('admin/settings/messages/block', array(), t('More'));
+    // If this fails we still have the default empty block user form.
+    $this->assertNoText(t('No rules have been added'), t('The block form now allows adding rules.'));
+
+    // If author role is 3 and recipent role is 4, disallow sending of messages.
+    $edit = array(
+      'block_actions[0][author]' => 3,
+      'block_actions[0][recipient]' => 4,
+      'block_actions[0][action]' => 1,
+      'block_actions[0][enabled]' => 1,
+    );
+    $this->drupalPost(NULL, $edit, t('Save configuration'));
+
+    // Verify that the user doesn't show up in the autocomplete.
+    // Login the user that will write a message to the user with the blocked role.
+    $this->drupalLogin($author_user);
+
+    $this->drupalGet('messages/new');
+    $this->assertText(t('Write new message'), t('Author user can write messages.'));
+
+    $this->drupalGet('messages/autocomplete/' . $blocked_user->name);
+    $this->assertNoText($blocked_user->name, t('User with blocked role does not appear in autocomplete results.'));
+
+    // Verify that link to send private message to blocked user is not shown on their profile page.
+    $this->drupalGet('user/' . $blocked_user->uid);
+    $this->assertNoText(t('Send this user a private message'), t("Author user cannot see link to send blocked user a message on blocked user's profile."));
+
+    // Verify that it is not possible to manually write a message to blocked user.
+    $this->drupalGet('messages/new');
+    $message = array(
+      'recipient'   => $blocked_user->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(50),
+    );
+
+    $this->drupalPost('messages/new', $message, t('Send message'));
+    $this->assertText(t('You are not permitted to send messages to @recipient.' , array('@recipient' => $blocked_user->name)), t('Author user message to blocked user has been blocked.'));
+
+    // Verify that unblocked user can receive message from a multi-recipient message that includes blocked user.
+    $this->drupalGet('messages/new');
+    $message = array(
+      'recipient'   => $admin_user->name . ', ' . $blocked_user->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(50),
+    );
+
+    $this->drupalPost('messages/new', $message, t('Send message'));
+    $this->assertText(t('You are not permitted to send messages to @recipient.' , array('@recipient' => $blocked_user->name)), t('Author user message to blocked user has been blocked.'));
+    $this->assertText(t('A message has been sent to @recipient.', array('@recipient' => $admin_user->name)), t('Author user message sent to admin user.'));
+
+  }
+
+
+  function testBlockAndUnblock() {
+    // Create needed users.
+    $user1 = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'access user profiles'));
+    $user2 = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'access user profiles'));
+    $user3 = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'access user profiles'));
+
+    // Set up a simple conversation.
+    $return = privatemsg_new_thread(array($user2, $user3), $subject = $this->randomName(10), $this->randomString(50), array('author' => $user1));
+    privatemsg_reply($return['message']['thread_id'], $this->randomString(50), array('author' => $user2));
+    privatemsg_reply($return['message']['thread_id'], $this->randomString(50), array('author' => $user3));
+
+    $this->drupalLogin($user1);
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+
+    // Block user2.
+    $this->clickLink(t('Block author'));
+    $this->drupalPost(NULL, array(), t('Block @user', array('@user' => $user2->name)));
+    $this->assertText(t('@user has been blocked from sending you any further messages.', array('@user' => $user2->name)), t('Confirmation message displayed'));
+
+    // Block user3.
+    $this->clickLink(t('Block author'));
+    $this->drupalPost(NULL, array(), t('Block @user', array('@user' => $user3->name)));
+    $this->assertText(t('@user has been blocked from sending you any further messages.', array('@user' => $user3->name)), t('Confirmation message displayed'));
+
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+
+    $this->assertNoText(t('Block user'), t('No "Block user" links displayed.'));
+
+    // Visit profile page of user 2 and verify that there is a link to write a
+    // message.
+    $this->drupalGet('user/' . $user2->uid);
+    $this->assertText(t('Send this user a message'));
+
+    // Log in as user2 and try to send messages to user1.
+    $this->drupalLogin($user2);
+
+    // Access profile to see if there is a write message link.
+    $this->drupalGet('user/' . $user1->uid);
+    $this->assertNoText(t('Send this user a message'));
+
+    $edit = array(
+      'recipient' => $user1->name,
+      'subject' => $subject2 = $this->randomName(20),
+      'body'    => $this->randomName(50),
+    );
+    $this->drupalPost('messages/new', $edit, t('Send message'));
+    $this->assertRaw(t('%user has chosen to not recieve any more messages from you.', array('%user' => $user1->name)), t('User 1 blocks user 2 message displayed'));
+    $this->assertText(t('Disallowed to send message because all recipients are blocked'), t('Disallowed to send message displayed'));
+
+    $edit = array(
+      'recipient' => $user1->name . ', ' . $user3->name,
+      'subject' => $subject3 = $this->randomName(20),
+      'body'    => $this->randomName(50),
+    );
+    $this->drupalPost('messages/new', $edit, t('Send message'));
+    $this->assertRaw(t('%user has chosen to not recieve any more messages from you.', array('%user' => $user1->name)), t('User 1 blocks user 2 message displayed'));
+    $this->assertText(t('A message has been sent to @user.', array('@user' => $user3->name)), t('Message sent to user 3'));
+  
+    
+    // Try to reply to an existing thread.
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+
+    $this->assertText(t('Recipients: @user', array('@user' => $user3->name)), t('User1 is not displayed as recipient'));
+    $edit = array('body' => $reply = $this->randomName(50));
+    $this->drupalPost(NULL, $edit, t('Send message'));
+    $this->assertRaw(t('%user has chosen to not recieve any more messages from you.', array('%user' => $user1->name)), t('User 1 blocks user 2 message displayed'));
+    $this->assertText(t('A message has been sent to @user.', array('@user' => $user3->name)), t('Message sent to user 3'));
+  
+    // Login as user1 again and check that we didn't recieve the messages.
+    $this->drupalLogin($user1);
+    $this->drupalGet('messages');
+
+    // Check that we didn't get the new messages.
+    $this->assertNoLink($subject2);
+    $this->assertNoLink($subject3);
+
+    // Check that we don't see the new messages.
+    $this->clickLink($subject);
+    $this->assertNoText($reply);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/remove-rule-button.png b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/remove-rule-button.png
new file mode 100644
index 0000000..08c6104
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_block_user/remove-rule-button.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.info b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.info
new file mode 100644
index 0000000..fe7a668
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.info
@@ -0,0 +1,13 @@
+name = Privatemsg Email Notification
+description = Notifies users about new Private Messages via Email.
+package = Mail
+core = 6.x
+dependencies[] = privatemsg
+
+
+; Information added by drupal.org packaging script on 2011-06-19
+version = "6.x-1.5-boinc-1-dev"
+core = "6.x"
+project = "privatemsg"
+datestamp = "1393530079"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.install b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.install
new file mode 100644
index 0000000..9e4c5ec
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.install
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * @file
+ * This file takes care of creating/deletig pm_email_notify table used
+ * for storing user notification preferences
+ */
+
+function pm_email_notify_schema() {
+  $schema = array();
+
+  $schema['pm_email_notify'] = array(
+    'description' => '{pm_email_notify} holds private message email notification settings for each user ',
+    'fields' => array(
+      'user_id' => array(
+        'description'   => 'ID of the user',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'email_notify_is_enabled' => array(
+        'description'   => 'Email Notification Status (Enabled=1, Disabled=0)',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+    ),
+    'unique keys' => array(
+      'user_id' => array('user_id')
+    ),
+  );
+
+  return $schema;
+}
+
+function pm_email_notify_install() {
+  drupal_install_schema('pm_email_notify');
+}
+
+function pm_email_notify_uninstall() {
+  variable_del('pm_email_notify_body');
+  variable_del('pm_email_notify_default');
+  variable_del('pm_email_notify_subject');
+  drupal_uninstall_schema('pm_email_notify');
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.module b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.module
new file mode 100644
index 0000000..a1e4f42
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/pm_email_notify/pm_email_notify.module
@@ -0,0 +1,192 @@
+<?php
+
+/**
+ * @file
+ * Notifies users about new Private Messages via Email.
+ */
+
+/**
+ * Implements hook_menu().
+ */
+function pm_email_notify_menu() {
+  $items['admin/settings/messages/notify'] = array(
+    'title'            => 'E-mail notify',
+    'description'      => 'E-mail notification settings',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('pm_email_notify_admin_settings_form'),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_LOCAL_TASK,
+    'weight'           => 10,
+  );
+  return $items;
+}
+
+/**
+ * Menu callback for administration settings.
+ */
+function pm_email_notify_admin_settings_form() {
+  $form['pm_email'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Privatemsg e-mail notification'),
+    '#collapsible' => FALSE,
+    '#collapsed' => FALSE,
+  );
+  $form['pm_email']['pm_email_notify_default'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Notify users of new private messages by default'),
+    '#default_value' => variable_get('pm_email_notify_default', TRUE),
+    '#weight' => 0,
+  );
+
+  $form['pm_email']['pm_email_notify_desc'] = array(
+    '#type' => 'item',
+    '#value' => t('Customize the email messages sent to users upon receipt of a new private message. <br />Available variables are: !author, !author_uid, !pm_subject, !pm_body, !thread, !site, !login_url, !uri, !uri_brief, !message (URL) and !settings (URL).'),
+    '#weight' => 1,
+  );
+
+  $form['pm_email']['pm_email_notify_subject'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Subject of notification messages'),
+    '#default_value' => variable_get('pm_email_notify_subject', 'New private message at !site.'),
+    '#weight' => 2,
+  );
+
+  $form['pm_email']['pm_email_notify_body'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Body of notification messages'),
+    '#default_value' => variable_get('pm_email_notify_body', _pm_email_notify_default_body()),
+    '#weight' => 3,
+  );
+  return system_settings_form($form);
+}
+
+/**
+ * Retrieve notification setting of a user.
+ *
+ * This function retrieves user's pm notification preference from database,
+ * if user preference doesn't exist - it uses default value instead
+ *
+ * @param $uid
+ *   User uid
+ */
+function _pm_email_notify_is_enabled($uid) {
+  static $notifications = array();
+  // Cache the result set in case this method is executed in batched operation which will perform many unnecessary repeated selects for the same user
+  if ( !isset($notifications[$uid]) ) {
+    $mail_notification = db_result(db_query('SELECT email_notify_is_enabled FROM {pm_email_notify} WHERE user_id = %d', $uid));
+    if ($mail_notification === FALSE) {
+      // db_result() returns FALSE if result was not found.
+      $mail_notification = variable_get('pm_email_notify_default', TRUE);
+    }
+    $notifications[$uid] = $mail_notification;
+  }
+  return $notifications[$uid];
+}
+
+/**
+ * Implements hook_privatemsg_message_insert().
+ */
+function pm_email_notify_privatemsg_message_insert($message) {
+  foreach ($message['recipients'] as $recipient) {
+    // check if recipient enabled email notifications
+    if (_pm_email_notify_is_enabled($recipient->uid)) {
+      // send them a new pm notification email if they did
+      $params['recipient'] = $recipient;
+      $params['message'] = $message;
+      drupal_mail('pm_email_notify', 'notice', $recipient->mail, user_preferred_language($recipient), $params);
+    }
+  }
+}
+
+/**
+ * Implements hook_mail().
+ */
+function pm_email_notify_mail($key, &$message, $params) {
+  $language = $message['language'];
+  $variables = user_mail_tokens($params['recipient'], $language);
+  $variables = array_merge($variables, _pm_email_notify_token($params['recipient'], $params['message'], $language));
+  switch ($key) {
+    case 'notice':
+      $message['subject'] = t(variable_get('pm_email_notify_subject', 'New private message at !site.'), $variables, $language->language);
+      $message['body'] = t(variable_get('pm_email_notify_body', _pm_email_notify_default_body()), $variables, $language->language);
+      break;
+  }
+}
+
+/**
+ * Return an array of token to value mappings for user e-mail messages.
+ *
+ * @param $message
+ *   The private message array being sent.  Must contain at
+ *   least the fields 'author', 'subject', 'thread_id' and 'body'.
+ * @return
+ *   Array of mappings from token names to values (for use with strtr()).
+ */
+function _pm_email_notify_token($recipient, $message, $language) {
+  $tokens = array(
+    '!author_uid' => $message['author']->uid,
+    '!author' => $message['author']->name,
+    '!pm_subject' => trim(drupal_html_to_text(check_plain($message['subject']))),
+    '!pm_body' => trim(drupal_html_to_text(check_markup($message['body'], $message['format'], FALSE))),
+    '!thread' => $message['thread_id'],
+    '!user_uid' => $recipient->uid,
+    '!message' => url('messages/view/' . $message['thread_id'], array('absolute' => TRUE, 'language' => $language)),
+    '!settings' => url('user/' . $recipient->uid . '/edit', array('absolute' => TRUE, 'language' => $language)),
+  );
+
+  return $tokens;
+}
+
+/**
+ * Returns default email notification body.
+ */
+function _pm_email_notify_default_body() {
+  return "Hi !username,\n\nThis is an automatic reminder from the site !site. You have received a new private message from !author.\n\nTo read your message, follow this link:\n!message\n\nIf you don't want to receive these emails again, change your preferences here:\n!settings";
+}
+
+/**
+ * Implements hook_user().
+ *
+ * Display settings form and store its information.
+ */
+function pm_email_notify_user($op, &$edit, &$account, $category = NULL) {
+  switch ($op) {
+    case 'form':
+      if ($category == 'account' && privatemsg_user_access('read privatemsg', $account)) {
+        $form['enable_pm_mail'] = array(
+          '#type' => 'fieldset',
+          '#title' => t('Privatemsg e-mail notification'),
+          '#collapsible' => TRUE,
+          '#collapsed' => FALSE,
+          '#weight' => 10,
+        );
+        $form['enable_pm_mail']['pm_send_notifications'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Receive email notification for incoming private messages'),
+          '#default_value' => _pm_email_notify_is_enabled($account->uid),
+        );
+      }
+      return $form;
+
+     case 'submit':
+      if (isset($edit['pm_send_notifications']) && privatemsg_user_access('read privatemsg', $account)) {
+        $pm_email_enabled = $edit['pm_send_notifications'];
+        unset($edit['pm_send_notifications']);
+        // Update database entry with user preference.
+        $exists = db_result(db_query("SELECT 1 FROM {pm_email_notify} WHERE user_id = %d", $account->uid));
+        if ($exists) {
+          // If there is an existing entry, update.
+          db_query("UPDATE {pm_email_notify} SET email_notify_is_enabled = %d WHERE user_id = %d", $pm_email_enabled, $account->uid);
+        }
+        else {
+          // If not, create a new one.
+          db_query("INSERT INTO {pm_email_notify} (email_notify_is_enabled, user_id) VALUES (%d, %d)", $pm_email_enabled, $account->uid);
+        }
+      }
+      break;
+
+     case 'delete':
+      db_query("DELETE FROM {pm_email_notify} WHERE user_id = %d", $account->uid);
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-admin.js b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-admin.js
new file mode 100644
index 0000000..0155814
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-admin.js
@@ -0,0 +1,9 @@
+
+Drupal.behaviors.privatemsgAdminSettings = function (context) {
+  if (!$('#edit-privatemsg-view-use-max-as-default').attr('checked')) {
+    $('#privatemsg-view-default-button').hide();
+  }
+  $('#edit-privatemsg-view-use-max-as-default').change( function () {
+    $('#privatemsg-view-default-button').toggle();
+  });
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-list.js b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-list.js
new file mode 100644
index 0000000..99dc3cc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-list.js
@@ -0,0 +1,7 @@
+Drupal.behaviors.actionButtons = function (context) {
+  $("div.privatemsg-op-button").hide();
+
+  $('#privatemsg-list #edit-operation').change(function () {
+    $('div.privatemsg-op-button input.form-submit').click();
+  });
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-recipients.tpl.php b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-recipients.tpl.php
new file mode 100644
index 0000000..1ff2072
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-recipients.tpl.php
@@ -0,0 +1,8 @@
+<?php
+// Each file loads it's own styles because we cant predict which file will be
+// loaded.
+drupal_add_css(drupal_get_path('module', 'privatemsg') . '/styles/privatemsg-recipients.css');
+?>
+<div class="message-participants">
+  <?php print $participants; ?>
+</div>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-view.tpl.php b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-view.tpl.php
new file mode 100644
index 0000000..415c790
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg-view.tpl.php
@@ -0,0 +1,33 @@
+<?php
+// Each file loads it's own styles because we cant predict which file will be
+// loaded.
+drupal_add_css(drupal_get_path('module', 'privatemsg') . '/styles/privatemsg-view.css');
+?>
+<?php print $anchors; ?>
+<div class="privatemsg-box-fb <?php print $zebra; ?>" id="privatemsg-mid-<?php print $mid; ?>">
+  <div class="left-column">
+    <div class="avatar-fb">
+      <?php print $author_picture; ?>
+    </div>
+  </div>
+  <div class="middle-column">
+    <div class="name">
+      <?php print $author_name_link; ?>
+    </div>
+    <div class="date">
+      <?php print $message_timestamp; ?>
+    </div>
+  </div>
+  <div class="right-column">
+    <div class="message-body">
+      <?php if (isset($new)) : ?>
+        <span class="new"><?php print $new ?></span>
+      <?php endif ?>
+      <?php print $message_body; ?>
+    </div>
+    <?php if ( isset($message_actions)) : ?>
+       <?php print $message_actions ?>
+    <?php endif ?>
+  </div>
+  <div class="clear-both bottom-border"></div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.api.php b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.api.php
new file mode 100644
index 0000000..7a94656
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.api.php
@@ -0,0 +1,487 @@
+<?php
+
+/**
+ * @file
+ * Privatemsg API Documentation
+ */
+
+/**
+ * @mainpage Privatemsg API Documentation
+ * This is the (currently inofficial) API documentation of the privatemsg 6.x
+ * API.
+ *
+ * - Topics:
+ *  - @link api API functions @endlink
+ *  - @link sql Query builder and related hooks @endlink
+ *  - @link message_hooks Message hooks @endlink
+ *  - @link generic_hooks Generic hooks @endlink
+ *  - @link theming Theming @endlink
+ */
+
+/**
+ * @defgroup sql Query Builder
+ * Privatemsg does use its own simple query builder which allows to extend
+ * SELECT-Queries in an easy way. The function _privatemsg_assemble_query
+ * creates the query, based on an array $fragments with the following content.
+ * Except primary_table, each key is an array itself to allow multiple values
+ *
+ *  - primary_table: The main table to select from
+ *  - select: The fields that should be selected. This can be a simple field, a
+ *    field with alias or even a subquery.
+ *  - inner_join: The tables that should be joined. This is not specific to
+ *    inner joins.
+ *    Example: INNER JOIN pm_index pmi ON (pmi.mid = pm.mid)
+ *  - where: The where conditions. The conditions are always AND, but it is
+ *    possible to use OR inside a condition.
+ *    Example: ⁽pmi.is_new = 1 OR pmi.deleted = 1)
+ *  - order_by: Order By values, example: pm.timestamp ASC
+ *  - query_args: It is possible to use the placeholders like %s in each part of
+ *    the query. The values of query_args are then inserted into these.
+ *    query_args consists of three arrays (join, where, having), one for each
+ *    key that currently supports arguments.
+ *
+ * Use _privatemsg_assemble_query
+ *
+ * The privatemsg_assemble_query function takes a query_id as first argument
+ * and optionally one or multiple arguments. query_id can either be a
+ * string ('some_id') or an array('group_name', 'query_id'), if a string
+ * is supplied, group_name defaults to 'privatemsg'. Returned is an array
+ * with the keys 'query' (normal query) and 'count' (count query for pager).
+ *
+ * For the actual query data, the function group_name_sql_query_id is executed,
+ * this functions does have $fragments as first parameter and then the
+ * optional parameters.
+ *
+ * A short example:
+ * @code
+ * // First, create the sql function.
+ * function privatemsg_sql_getsubject(&$fragments, $mid, $uid) {
+ *   // Set the primary table.
+ *   $fragments['primary_table'] = '{pm_message} pm';
+ *
+ *   // Add a field.
+ *   $fragments['select'][] = 'pm.subject';
+ *
+ *   // Join another table.
+ *   $fragment['inner_join'][] = 'JOIN {pm_index} pi ON (pi.mid = pm.mid)';
+ *   $fragment['query_args']['join'][] $uid;
+ *
+ *   // And finally add a condition.
+ *   $fragments['where'][] = 'pm.mid = %d';
+ *   $fragments['query_args']['where'][] = $mid;
+ * }
+ *
+ * // Now we can use that query everywhere.
+ * $query = _privatemsg_assemble_query('getsubject', 5);
+ * $result = db_query($query['query']);
+ * @endcode
+ * Extend existing queries
+ *
+ * To extend a privatemsg query, use hook_group_name_sql_query_id_alter.
+ * This hook does use the same parameters as the sql function.
+ *
+ * Example:
+ * @code
+ * function mymodule_privatemsg_sql_getsubject_alter(&$fragments, $mid) {
+ * // we want to load the body too..
+ *  $fragments['select'][] = 'pm.body';
+ * }
+ * @endcode
+ *
+ * - List of sql query hooks.
+ *  - list: List of messages, Parameters: $fragments, $accounty
+ *  - list_sent: List of sent messages, Parameters: $fragments, $accounty
+ *  - load: Load a single message, Parameters: $fragments, $pmid, $account
+ *  - messages: Load the messages of a thread,
+ *    Parameters: $fragments, $thread_id, $account
+ *  - autocomplete: Searching usernames for the autocomplete feature,
+ *    Parameters: $fragments, $search, $names
+ *  - participants: Loads all participants of a thread,
+ *    Parameters: $fragments, $thread_id
+ *  - unread_count: Number of unread messages for a user,
+ *    Parameters: $fragments, $account
+ *
+ * - The following query_id's are used in pm_block_user
+ *  - threadautors: Return all authors of one or multiple threads,
+ *    Parameters: $fragments, $threads
+ */
+
+/**
+ * @addtogroup sql
+ * @{
+ */
+
+/**
+ * Query to search for autocomplete usernames.
+ *
+ * @param $fragments
+ *   Query fragments
+ * @param $search
+ *   Search for that username
+ * @param $names
+ *   Names that are already in the list and are excluded
+ */
+function hook_privatemsg_sql_autocomplete_alter(&$fragments, $search, $names) {
+  global $user;
+  // Extend the query that searches for usernames
+
+  // $fragments is explained in the api documentation in detail
+
+  // The query is already set up, it's searching for usernames which start with
+  // $search and are not $names (may be empty)
+  // the main table is {user} a
+
+  // for example, add a join on a table where the user connections are stored
+  // and specify that only users connected with the current user should be
+  // loaded.
+  $fragments['inner_join'] = 'INNER JOIN {my_table} m ON (m.user1 = u.uid AND m.user2 = %d)';
+  $fragments['query_args'][] = $user->uid;
+}
+
+/**
+ * Display a list of threads.
+ *
+ * @param $fragments
+ *   Query fragments
+ * @param $account
+ *   User object
+ */
+function hook_privatemsg_sql_list_alter(&$fragment, $account) {
+
+}
+
+/**
+ * Query definition to load a message.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $pmid
+ *   the id of the message.
+  * @param $account
+ *   User object of account for which to load the message.
+ */
+function hook_privatemsg_sql_load_alter(&$fragments, $pmid, $account = NULL) {
+
+}
+
+/**
+ * Query definition to load messages of one or multiple threads.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $threads
+ *   Array with one or multiple thread id's.
+ * @param $account
+ *   User object for which the messages are being loaded.
+ * @param $load_all
+ *   Deleted messages are only loaded if this is set to TRUE.
+ */
+function hook_privatemsg_sql_messages_alter(&$fragments, $threads, $account = NULL, $load_all = FALSE) {
+
+}
+
+/**
+ * Load the participants of a thread.
+ *
+ * @param $fragments
+ *   Query fragments
+ * @param $thread_id
+ *   Thread id, pmi.thread_id is the same as the mid of the first
+ *   message of that thread
+ */
+function hook_privatemsg_sql_participants_alter(&$fragment, $thread_id) {
+
+}
+
+/**
+ * Loads all unread messages of a user (only the count query is used).
+ *
+ * @param $fragments
+ *   Query fragments
+ * @param $account
+ *   User object
+ */
+function hook_privatemsg_sql_unread_count_alter(&$fragment, $account) {
+
+}
+
+/**
+ * @}
+ */
+
+/**
+ * @defgroup api API functions
+ *
+ * There are two different functions to send messages.
+ * Either by starting a @link privatemsg_new_thread new thread @endlink
+ * or @link privatemsg_reply reply @endlink to an existing thread.
+ *
+ * There is also a function which returns a link to the privatemsg new message
+ * form with the recipient pre-filled if the user is allowed to.
+ * privatemsg_get_link().
+ */
+
+/**
+ * @defgroup message_hooks Message hooks
+ * All message-level hooks look like hook_privatemsg_message_op,
+ * where op is one of the following:
+ * - @link hook_privatemsg_message_load load @endlink: Called when a full
+ *   message is loaded similiar to nodeapi_load, new values can be returned and
+ *   will be added to $message, parameter: $message
+ * - @link hook_privatemsg_message_validate validate @endlink: Validation,
+ *   before the message is sent/saved. Return validation errors as array,
+ *   parameter: $message, $form = FALSE
+ * - @link hook_privatemsg_message_presave_alter presave_alter @endlink: Last
+ *   changes to $message before the message is saved, parameter: $message
+ * - @link hook_privatemsg_message_insert insert @endlink: message has been
+ *   saved, $message has been updated with the mid and thread_id,
+ *   parameter: $message
+ * - @link hook_privatemsg_message_delete delete @endlink: the message is
+ *   going to be deleted, parameter: $message
+ * - @link hook_privatemsg_message_view_alter view_alter @endlink: the message
+ *   is going to be displayed, parameter: $vars
+ *
+ * In hooks with _alter suffix, $message is by reference.
+ *
+ * $message is an array, with all the relevant information about the message.
+ * The information in there can be changed/extended by modules, but looks
+ * typically like this:
+ * @code
+ * array (
+ *   'mid' => 3517, // message id, identifies a message
+ *   'author' => 27, // author id
+ *   'subject' => 'raclebugav', // Message subject
+ *   'body' => 'bla bla', // Body of the message
+ *   'timestamp' => 351287003, // unix timestamp, creation time
+ *   'is_new' => 0, // If the message has been read by the user
+ *   'thread_id' => 3341, // thread id, this is actually the mid from the first
+ *                           message of the thread
+ * )
+ * @endcode
+ */
+
+/**
+ * @addtogroup message_hooks
+ * @{
+ */
+
+/**
+ * Is called after the message has been loaded.
+ *
+ * Return data will be merged with the $message array.
+ *
+ * @param $message
+ *    Message array
+ */
+function hook_privatemsg_message_load($message) {
+  return array('my_key' => 'my_value');
+}
+
+/**
+ * Is called when a message is flushed.
+ *
+ * The message will be deleted from the database, remove any related data here.
+ *
+ * @param $message
+ *   Message array
+ */
+function hook_privatemsg_message_flush($message) {
+
+}
+
+/**
+ * Validate a message before it is sent/saved in the database.
+ *
+ * Validation errors can be returned, either as a string or as array when there
+ * are multiple errors. If the $form flag is set, errors should be reported
+ * with form_set_error instead.
+ *
+ * @todo adapt api return value changes
+ *
+ * @param $message
+ *   Message array
+ */
+function hook_privatemsg_message_validate($message, $form = FALSE) {
+  global $_privatemsg_invalid_recipients;
+  $_privatemsg_invalid_recipients = array();
+
+  $errors = array();
+
+  foreach ($message['recipients'] as $recipient) {
+    if ($recipient->name == 'blocked user') {
+      $_privatemsg_invalid_recipients[] = $recipient->uid;
+      $errors[] = t('%name has chosen to not recieve any more messages from you.', array('%name' => $recipient->name));
+    }
+  }
+}
+
+/**
+ * Change the message before it is stored.
+ *
+ * Alter the message, for example remove recipients that have been detected as
+ * invalid or forbidden in the validate hook.
+ *
+ * @param $message
+ *   Message array
+ */
+function hook_privatemsg_message_presave_alter(&$message) {
+  // delete recipients which have been marked as invalid
+  global $_privatemsg_invalid_recipients;
+  foreach ($_privatemsg_invalid_recipients as $invalid) {
+    unset($message['recipients'][$invalid]);
+  }
+}
+/**
+ * Act on the $vars before a message is displayed.
+ *
+ * This is called in the preprocess hook of the privatemsg-view template.
+ * The $message data is aviable in $vars['message'].
+ *
+ * @param $var
+ *   Template variables
+ */
+function hook_privatemsg_message_view_alter(&$var) {
+  // add a link to each message
+  $vars['message_links'][] = array('title' => t('My link'), 'href' => '/path/to/my/action/'. $vars['message']['mid']);
+}
+
+/**
+ * This hook is executed after the message has been saved.
+ *
+ * $message is updated with mid and thread id. Use this hook to store data,
+ * that needs to point to the saved message for example attachments.
+ *
+ * @param $message
+ *   Message array
+ */
+function hook_privatemsg_message_insert($message) {
+  _mymodule_save_data($message['mid']);
+}
+
+/**
+ * @}
+ */
+
+/**
+ * @defgroup generic_hooks Generic Hooks
+ * @{
+ *
+ * Some generic hooks that can't be categorized.
+ */
+
+/**
+ * Check if the author can send a message to the recipients.
+ *
+ * This can be used to limit who can write whom based on other modules and/or
+ * settings.
+ *
+ * @param $author
+ *   Author of the message to be sent
+ * @param $recipients
+ *   Recipients of the message
+ * @return
+ *   An indexed array of arrays with the keys uid and
+ *   message (The reason why the recipient has been blocked).
+ */
+function hook_privatemsg_block_message($author, $recipients) {
+  $blocked = array();
+  // Loop through each recipient and ensure there is no rule blocking this
+  // author from sending them private messages. Use a reference, so when
+  // user_load() is needed here the array is updated, negating the need for
+  // further calls to user_load() later in the code.
+  foreach (array_keys($recipients) as $uid) {
+
+    // Ensure we have a recipient user object which includes roles.
+    if (!isset($recipients[$uid]->roles)) {
+      $recipients[$uid] = user_load($uid);
+    }
+    // Note: this is checked whether the author may send the message (see third
+    // parameter). Further below is a check whether the recipient may block it.
+    if (_pm_block_user_rule_exists($author, $recipients[$uid], PM_BLOCK_USER_DISALLOW_SENDING)) {
+      $blocked[] = array(
+        'uid' => $uid,
+        'message' => t('Sorry, private messaging rules forbid sending messages to !name.', array('!name' => $recipients[$uid]->name)),
+      );
+    }
+  }
+
+  $args = array_merge(array($author->uid), array_keys($recipients));
+  $result = db_query('SELECT recipient FROM {pm_block_user} WHERE author = %d AND recipient IN ('. db_placeholders($recipients) .') GROUP BY recipient', $args);
+  while ($row = db_fetch_array($result)) {
+    $recipient = $recipients[$row['recipient']];
+    // If there's a rule disallowing blocking of this message, send it anyway.
+    if (_pm_block_user_rule_exists($author, $recipient, PM_BLOCK_USER_DISALLOW_BLOCKING)) {
+      continue;
+    }
+    $blocked[] = array(
+      'uid' => $row['recipient'],
+      'message' => t('%name has chosen to not recieve any more messages from you.', array('%name' => $recipients[$row['recipient']]->name))
+    );
+  }
+  return $blocked;
+}
+/**
+ * Add content to the view thread page.
+ *
+ * Each element in content contains a 'value' and a '#weight' key, the weight
+ * is used set the order of the different parts.
+ *
+ * @param $content
+ *   Content array
+ * @param $message_count
+ *   Amount of messages
+ */
+function hook_privatemsg_view_messages($content, $message_count) {
+
+}
+
+/**
+ * List of possible templates.
+ */
+function hook_privatemsg_view_template() {
+
+}
+
+/**
+ * Expose operations/actions which can be executed on threads.
+ *
+ * Return an array of operations to privatemsg, the key of each operation is the
+ * operation key or name.
+ *
+ * @see _privatemsg_action_form()
+ * @see privatemsg_list_submit()
+ */
+function hook_privatemsg_thread_operations() {
+  return array(
+    'operation key' => array(
+      'label' => 'Label of the operation. Only use this if the operation
+                  should be displayed automatically in the action form',
+      'callback' => 'privatemsg_thread_change_status', // Function callback that will be executed.
+      'callback arguments' => array('status' => PRIVATEMSG_READ), // Additional arguments to above function
+      'undo callback' => 'privatemsg_thread_change_status',  // Provide a function which can "undo" the operation. Optional.
+      'undo callback arguments' => array('status' => PRIVATEMSG_UNREAD), // Additional arguments to above function.
+    ),
+  );
+}
+
+/**
+ * Hook which allows to look up a user object.
+ *
+ * You can try to look up a user object based on the information passed to the
+ * hook. The first hook that successfully looks up a specific string wins.
+ *
+ * Therefore, it is important to only return something if you can actually look
+ * up the string.
+ */
+function hook_privatemsg_name_lookup($string) {
+  if ((int)$string > 0) {
+    // This is a possible uid, try to load a matching user.
+    if ($recipient = user_load(array('uid' => $string))) {
+      return $recipient;
+    }
+  }
+}
+
+/**
+ * @}
+ */
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.author-pane.inc b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.author-pane.inc
new file mode 100644
index 0000000..4329cde
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.author-pane.inc
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * @file
+ * Provides a preprocess function to integrate Privatemsg with Author Pane.
+ */
+
+/**
+ * Implements hook_preprocess_author_pane().
+ */
+function privatemsg_preprocess_author_pane(&$variables) {
+  global $user;
+  $account = $variables['account'];
+  $account_id = $account->uid;
+  $account_name = $account->name;
+
+  if (function_exists('author_pane_api') && author_pane_api() == "2") {
+    // Author Pane 2.x
+
+    // Check if this preprocess needs to be run given who's calling it.
+    if (!author_pane_run_preprocess('privatemsg', $variables['caller'])) {
+      return;
+    }
+
+    $url = privatemsg_get_link($account);
+    if (!empty($url)) {
+      $variables['privatemsg'] = l('<span>' . t('Send PM') . '</span>', $url, array('attributes' => array('class' => 'author-pane-link', 'title' => t('Send @name a private message', array('@name' => $account_name))), 'html' => TRUE));
+
+      // Early versions of the template used this variable so fill it for
+      // backwards compatability.
+      $variables['privatemsg_link'] = $variables['privatemsg'];
+    }
+  }
+  else {
+    // Author Pane 1.x
+
+    $image_path = $variables['image_path'];
+
+    // Send private message
+    if ($url = privatemsg_get_link($account)) {
+      $img = theme('image', "$image_path/private-message.png", t('Send private message'), t('Send private message'), NULL, TRUE);
+      $variables['privatemsg'] = l($img, $url, array('absolute' => TRUE, 'html' => TRUE));
+      $variables['privatemsg_link'] = l(t('Send private message'), $url, array('attributes' => array('class' => 'author-privatemsg-icon'), 'html' => TRUE));
+    }
+  }
+}
+
+/**
+ * Implementation of hook_author_pane_allow_preprocess_disable().
+ */
+function privatemsg_author_pane_allow_preprocess_disable() {
+  return array('privatemsg' => 'Privatemsg');
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.info b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.info
new file mode 100644
index 0000000..8f6a6e1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.info
@@ -0,0 +1,10 @@
+name = Private messages
+description = Allow private messages between users.
+package = Mail
+core = 6.x
+; Information added by drupal.org packaging script on 2011-06-19
+version = "6.x-1.5-boinc-1-dev"
+core = "6.x"
+project = "privatemsg"
+datestamp = "1393530079"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.install b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.install
new file mode 100644
index 0000000..e5cc00b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.install
@@ -0,0 +1,513 @@
+<?php
+
+/**
+ * @file
+ * Install file for privatemsg.module
+ */
+
+
+function privatemsg_schema() {
+  $schema = array();
+  $schema['pm_index'] = array(
+    'description'       => '{pm_index} holds indexing information about messages and recepients for fast retrieval',
+    'fields'        => array(
+      'mid'    => array(
+        'description'   => 'Private Message ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'thread_id'     => array(
+        'description'   => 'Messages thread ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'uid'     => array(
+        'description'   => 'UID of either the author or the recipient',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'is_new'     => array(
+        'description'   => 'Whether the user has read this message',
+        'type'          => 'int',
+        'default'       => 1,
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'deleted' => array(
+        'description'   => 'Whether the user has deleted this message',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0
+      ),
+
+    ),
+    'indexes'      => array(
+      'list'         => array('uid', 'deleted', 'is_new'),
+      'messages'     => array('mid', 'uid'),
+      'participants' => array('thread_id', 'uid', 'deleted')
+    ),
+  );
+
+  $schema['pm_message'] = array(
+    'description'       => '{pm_messages} holds the message information',
+    'fields'        => array(
+      'mid'    => array(
+        'description'   => 'Private Message ID',
+        'type'          => 'serial',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'author'     => array(
+        'description'   => 'UID of the author',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'subject'     => array(
+        'description'   => 'Subject text of the message',
+        'type'          => 'varchar',
+        'length'        => 255,
+        'not null'      => TRUE,
+      ),
+      'body'     => array(
+        'description'   => 'Body of the message',
+        'type'          => 'text',
+        'not null'      => TRUE,
+        'size'          => 'big',
+      ),
+      'format'        => array(
+        'type'          => 'int',
+        'size'          => 'small',
+        'not null'      => TRUE,
+        'default'       => FILTER_FORMAT_DEFAULT,
+        'description'   => 'The {filter_formats}.format of the message text.',
+      ),
+      'timestamp'     => array(
+        'description'   => 'Time when the message was sent',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+    ),
+    'primary key'     => array('mid'),
+  );
+
+
+  return $schema;
+}
+function privatemsg_install() {
+  drupal_install_schema('privatemsg');
+
+}
+
+function privatemsg_uninstall() {
+  variable_del('private_message_view_template');
+  variable_del('privatemsg_per_page');
+  variable_del('privatemsg_display_loginmessage');
+  variable_del('privatemsg_display_fields');
+  variable_del('privatemsg_view_default_amount');
+  variable_del('privatemsg_view_max_amount');
+  variable_del('privatemsg_view_use_max_as_default');
+  drupal_uninstall_schema('privatemsg');
+}
+
+function privatemsg_update_6000() {
+  // Give update unlimited time to complete.
+  set_time_limit(0);
+
+  // Update the database schema and transfer data to new tables.
+  $schema = array();
+  $schema['pm_index'] = array(
+    'description'       => '{pm_index} holds indexing information about messages and recepients for fast retrieval',
+    'fields'        => array(
+      'mid'    => array(
+        'description'   => 'Private Message ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'thread_id'     => array(
+        'description'   => 'Messages thread ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'uid'     => array(
+        'description'   => 'UID of either the author or the recipient',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'is_new'     => array(
+        'description'   => 'Whether the user has read this message',
+        'type'          => 'int',
+        'default'       => 1,
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'deleted' => array(
+        'description'   => 'Whether the user has deleted this message',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0
+      ),
+
+    ),
+    'indexes'         => array(
+      'mid'               => array('mid'),
+      'thread_id'         => array('thread_id'),
+      'uid'         => array('uid'),
+      'is_new'              => array('mid', 'uid', 'is_new', ),
+    ),
+  );
+
+  $schema['temp_pm_index'] = array(
+    'description'       => '{pm_index} holds indexing information about messages and recepients for fast retrieval',
+    'fields'        => array(
+      'mid'    => array(
+        'description'   => 'Private Message ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'folder'     => array(
+        'description'   => 'ID of drupal 5 folder',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'thread'     => array(
+        'description'   => 'Messages old thread ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'thread_id'     => array(
+        'description'   => 'Messages new thread ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'uid'     => array(
+        'description'   => 'UID of either the author or the recipient',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'is_new'     => array(
+        'description'   => 'Whether the user has read this message',
+        'type'          => 'int',
+        'default'       => 1,
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'deleted' => array(
+        'description'   => 'Whether the user has deleted this message',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0
+      ),
+    ),
+    'indexes'=> array(
+      'mid' => array('mid'),
+      'thread_id' => array('thread_id'),
+      'uid' => array('uid'),
+    ),
+  );
+
+  $schema['pm_message'] = array(
+    'description'       => '{pm_messages} holds the message information',
+    'fields'        => array(
+      'mid'    => array(
+        'description'   => 'Private Message ID',
+        'type'          => 'serial',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'author'     => array(
+        'description'   => 'UID of the author',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'subject'     => array(
+        'description'   => 'Subject text of the message',
+        'type'          => 'varchar',
+        'length'        => 255,
+        'not null'      => TRUE,
+      ),
+      'body'     => array(
+        'description'   => 'Body of the message',
+        'type'          => 'text',
+        'not null'      => TRUE,
+        'size'          => 'big',
+      ),
+      'timestamp'     => array(
+        'description'   => 'Time when the message was sent',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+    ),
+    'primary key'     => array('mid'),
+    'indexes'         => array(
+      'author'            => array('author'),
+      'subject'           => array(array('subject', 20)),
+      'timestamp'         => array('timestamp'),
+    ),
+  );
+  $ret = array();
+
+  // Step 1: Preparation
+  // Create the privatemsg tables.
+  if (!(db_table_exists('pm_message'))) {
+    db_create_table($ret, 'pm_message', $schema['pm_message']);
+  }
+  if (!(db_table_exists('pm_index'))) {
+    db_create_table($ret, 'pm_index', $schema['pm_index']);
+  }
+  if (!(db_table_exists('temp_pm_index'))) {
+    db_create_table($ret, 'temp_pm_index', $schema['temp_pm_index']);
+  }
+  // Enable the privatemsg module as otherwise the enable box will be unclickable after update.
+  if (!module_exists('privatemsg')) {
+    module_enable('privatemsg');
+  }
+
+  // Install relevant submodules as we need theit tables to drop the data into.
+  $modules = array();
+  if (!(module_exists('privatemsg_filter'))) {
+    $modules[] = 'privatemsg_filter';
+  }
+  if (!(module_exists('pm_block_user'))) {
+    $modules[] = 'pm_block_user';
+  }
+  if (count($modules) > 0) {
+    drupal_install_modules($modules);
+  }
+
+  // Step 2: Get the data
+
+  // Step 2a: get the folder/tagging data first.
+  db_query('INSERT INTO {pm_tags} (tag) SELECT DISTINCT name FROM {privatemsg_folder}');
+
+  // Step 2b: Next, copy the user blocking data.
+  if (db_table_exists('privatemsg_block_user')) {
+    db_query('INSERT INTO {pm_block_user} (author, recipient) SELECT author, recipient FROM privatemsg_block_user');
+  }
+
+  // Step 2c: Copy data from the {privatemsg} and {privatemsg_archive} tables.
+  foreach (array("privatemsg_archive", "privatemsg") as $old_message_table) {
+    $recipient_del='recipient_del';
+    $author_del='author_del';
+    $newmsg = 'newmsg';
+    if ($old_message_table == 'privatemsg_archive') {
+      $recipient_del = 1;
+      $author_del = 1;
+      $newmsg = '0';
+    }
+
+    if (db_table_exists($old_message_table)) {
+      // Insert all message from old table.
+      db_query("INSERT INTO {pm_message} (mid, author, subject, body, timestamp)
+                SELECT id,author,subject,message,timestamp
+                FROM {$old_message_table} WHERE author <> recipient");
+
+      // Temporary index for the recipient of the message, with the proper
+      // deleted tag if the recipient deleted it. We do two queries, so we
+      // capture in the thread_id the id of the message if it was not threaded.
+      db_query("INSERT INTO {temp_pm_index} (mid, thread, folder, thread_id, uid,       is_new, deleted)
+                SELECT                        id, thread, folder, id,        recipient, $newmsg,      $recipient_del
+                FROM {$old_message_table} WHERE thread = 0");
+
+      db_query("INSERT INTO {temp_pm_index} (mid, thread, folder, thread_id, uid,       is_new, deleted)
+                SELECT                        id, thread, folder, 0,         recipient, $newmsg,      $recipient_del
+                FROM {$old_message_table} WHERE thread <> 0");
+
+
+      // Temporary index for the recipient of the message, with the proper
+      // deleted tag if the author deleted it. We do two queries, so we capture
+      // in the thread_id the id of the message if it was not threaded.
+      db_query("INSERT INTO {temp_pm_index}     (mid, thread, folder, thread_id, uid,    is_new, deleted)
+                SELECT                            id, thread, 0,      id,        author, 0,      $author_del
+                FROM {$old_message_table} WHERE thread = 0") ;
+
+      db_query("INSERT INTO {temp_pm_index} (mid, thread, folder, thread_id, uid,    is_new, deleted)
+                SELECT                        id, thread, 0,      0,         author, 0,      $author_del
+                FROM {$old_message_table} WHERE thread <> 0") ;
+    }
+  }
+
+  // Step 3: Process the Data.
+  // Step 3a: Fix the thread data.
+  $temptable = 'temp_pm_thread_min';
+  db_query_temporary('SELECT thread, min(mid) as mid FROM {temp_pm_index} WHERE thread_id = 0 GROUP BY thread', $temptable);
+  db_query("create index t2 on $temptable (thread)");
+  db_query("create index t1 on temp_pm_index (thread_id)");
+  db_query("create index t2 on temp_pm_index (thread)");
+
+  db_query("UPDATE temp_pm_index i, $temptable t SET i.thread_id = t.mid WHERE i.thread_id = 0 and i.thread = t.thread");
+
+  // Step 3b: Fix and import the tagging data.
+  db_query("INSERT INTO {pm_tags_index}
+            SELECT distinct pmf.uid, t.tag_id, thread_id
+            FROM {pm_tags} t INNER JOIN {privatemsg_folder} pmf ON t.tag = pmf.name, temp_pm_index tmp
+            WHERE pmf.fid = tmp.folder  and tmp.folder <> 0");
+
+  // Step 3c: Copy the index data.
+  db_query("INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted) SELECT mid, thread_id, uid, is_new, deleted FROM {temp_pm_index}");
+
+  // Step 4: Clean up.
+  db_drop_table($ret, 'privatemsg');
+  db_drop_table($ret, 'privatemsg_archive');
+  db_drop_table($ret, 'privatemsg_folder');
+  if (db_table_exists('privatemsg_block_user')) {
+    db_drop_table($ret, 'privatemsg_block_user');
+  }
+  db_drop_table($ret, 'temp_pm_index');
+
+  // Set a variable to indicate that this is a direct upgrade from Drupal 5,
+  // this allows to skip the slow 6003() update function.
+  variable_set('privatemsg_update_6000', 1);
+
+  return $ret;
+}
+
+function privatemsg_update_6001() {
+  $ret = array();
+
+  if (!db_column_exists('pm_index', 'is_new')) {
+
+    if (db_column_exists('pm_index', 'new')) {
+      $old_column = 'new';
+    }
+    elseif (db_column_exists('pm_index', 'new_flag')) {
+      $old_column = 'new_flag';
+    }
+    else {
+      return $ret;
+    }
+
+    db_drop_index($ret, 'pm_index', $old_column);
+    db_change_field($ret, 'pm_index', $old_column, 'is_new', array(
+          'description'   => 'Whether the user has read this message',
+          'type'          => 'int',
+          'default'       => 1,
+          'not null'      => TRUE,
+          'unsigned'      => TRUE));
+    db_add_index($ret, 'pm_index', 'is_new', array('mid', 'uid', 'is_new'));
+  }
+
+  return $ret;
+}
+
+function privatemsg_update_6002() {
+  $ret = array();
+  // update_sql does not support parameters, we need to use db_query
+  $sql = "UPDATE {blocks} SET cache = %d WHERE module='privatemsg'";
+  $result = db_query($sql, BLOCK_NO_CACHE);
+  $ret[] = array('success' => $result !== FALSE, 'query' => check_plain($sql));
+  return $ret;
+}
+
+/**
+ * Update function to resolve "forever new" messages.
+ *
+ * As described in http://drupal.org/node/490650
+ */
+function privatemsg_update_6003() {
+
+  // Sites which are directly upgrading from Drupal 5 don't have this problem.
+  // Skip this update for them, as it can be very slow.
+  if (variable_get('privatemsg_update_6000', 0)) {
+    variable_del('privatemsg_update_6000');
+    return array();
+  }
+
+  $ret = array();
+  // Find messages that have aformentioned problem
+  $sql = "SELECT DISTINCT p1.mid, p1.uid FROM {pm_index} p1 INNER JOIN {pm_index} p2 ON p1.thread_id = p2.thread_id AND p1.mid = p2.mid INNER JOIN {pm_message} pm ON p1.uid = pm.author AND p2.uid = pm.author WHERE p1.is_new <> p2.is_new";
+  $result = db_query($sql);
+  while ($row = db_fetch_object($result)) {
+    privatemsg_message_change_status($row->mid, PRIVATEMSG_READ, $row);
+  }
+
+  $ret[] = array('success' => $result !== FALSE, 'query' => check_plain($sql));
+  return $ret;
+}
+
+/**
+ * Create a format column.
+ *
+ * Copied from system_update_6051
+ */
+function privatemsg_update_6004() {
+  $ret = array();
+  if (!db_column_exists('pm_message', 'format')) {
+    $schema = array(
+      'type' => 'int',
+      'size' => 'small',
+      'not null' => TRUE,
+      'default' => FILTER_FORMAT_DEFAULT,
+      'description' => 'The {filter_formats}.format of the message text.',
+    );
+
+    db_add_field($ret, 'pm_message', 'format', $schema);
+
+    // Set the format of existing signatures to the current default input format.
+    if ($current_default_filter = (int)variable_get('filter_default_format', 1)) {
+      $ret[] = update_sql("UPDATE {pm_message} SET format = ". $current_default_filter);
+    }
+  }
+  return $ret;
+}
+
+/**
+ * Enable delete permission for all users that are allowed to read them.
+ */
+function privatemsg_update_6005() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {permission} SET perm = REPLACE(perm, 'read privatemsg', 'read privatemsg, delete privatemsg') WHERE perm LIKE '%read privatemsg%'");
+  return $ret;
+}
+
+/**
+ * Set the deleted timestamp of all messages to now.
+ */
+function privatemsg_update_6006() {
+  $ret = array();
+
+  $sql = "UPDATE {pm_index} SET deleted = %d WHERE deleted = 1";
+  $result = db_query($sql, time());
+  $ret[] = array('success' => $result !== FALSE, 'query' => check_plain($sql));
+  return $ret;
+}
+
+/**
+ * Update indexes on {pm_index} and {pm_message}.
+ */
+function privatemsg_update_6007() {
+  $ret = array();
+
+  // Delete unecessary indexes.
+  db_drop_index($ret, 'pm_index', 'mid');
+  db_drop_index($ret, 'pm_index', 'thread_id');
+  db_drop_index($ret, 'pm_index', 'uid');
+
+  db_drop_index($ret, 'pm_message', 'author');
+  db_drop_index($ret, 'pm_message', 'subject');
+  db_drop_index($ret, 'pm_message', 'timestamp');
+
+  // Add new indexes.
+  db_add_index($ret, 'pm_index', 'list', array('uid', 'deleted', 'is_new'));
+  db_add_index($ret, 'pm_index', 'messages', array('mid', 'uid'));
+  db_add_index($ret, 'pm_index', 'participants', array('thread_id', 'uid', 'deleted'));
+
+  return $ret;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.module b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.module
new file mode 100644
index 0000000..6a14aba
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.module
@@ -0,0 +1,2564 @@
+<?php
+
+/**
+ * @file
+ * Allows users to send private messages to other users.
+ */
+
+/**
+ * Status constant for read messages.
+ */
+define('PRIVATEMSG_READ', 0);
+/**
+ * Status constant for unread messages.
+ */
+define('PRIVATEMSG_UNREAD', 1);
+/**
+ * Show unlimited messages in a thread.
+ */
+define('PRIVATEMSG_UNLIMITED', 'unlimited');
+
+/**
+ * Implements hook_perm().
+ */
+function privatemsg_perm() {
+  return array(
+    'read privatemsg',
+    'read all private messages',
+    'administer privatemsg settings',
+    'write privatemsg',
+    'delete privatemsg',
+  );
+}
+
+/**
+ * Generate aray of user objects based on a string.
+ *
+ *
+ * @param $userstring
+ *   A string with user id, for example 1,2,4. Returned by the list query
+ *
+ * @return
+ *   Array with user objects.
+ */
+function _privatemsg_generate_user_array($userstring, $slice = NULL) {
+  static $user_cache = array();
+
+  // Convert user uid list (uid1,uid2,uid3) into an array. If $slice is not NULL
+  // pass that as argument to array_slice(). For example, -4 will only load the
+  // last four users.
+  // This is done to avoid loading user objects that are not displayed, for
+  // obvious performance reasons.
+  $users = explode(',', $userstring);
+  if (!is_null($slice)) {
+    $users = array_slice($users, $slice);
+  }
+  $participants = array();
+  foreach ($users as $uid) {
+    if (!array_key_exists($uid, $user_cache)) {
+      $user_cache[$uid] = user_load($uid);
+    }
+    if (is_object($user_cache[$uid])) {
+      $participants[$uid] = $user_cache[$uid];
+    }
+  }
+  return $participants;
+}
+
+/**
+ * Format an array of user objects.
+ *
+ * @param $part_array
+ *   Array with user objects, for example the one returnd by
+ *   _privatemsg_generate_user_array.
+ *
+ * @param $limit
+ *   Limit the number of user objects which should be displayed.
+ * @param $no_text
+ *   When TRUE, don't display the Participants/From text.
+ * @return
+ *   String with formated user objects, like user1, user2.
+ */
+function _privatemsg_format_participants($part_array, $limit = NULL, $no_text = FALSE) {
+  if (count($part_array) > 0) {
+    $to = array();
+    $limited = FALSE;
+    foreach ($part_array as $account) {
+      if (is_int($limit) && count($to) >= $limit) {
+        $limited = TRUE;
+        break;
+      }
+      $to[] = theme('username', $account);
+    }
+
+    $limit_string = '';
+    if ($limited) {
+      $limit_string = t(' and others');
+    }
+
+
+    if ($no_text) {
+      return implode(', ', $to) . $limit_string;
+    }
+
+    $last = array_pop($to);
+    if (count($to) == 0) { // Only one participant
+      return t("From !last", array('!last' => $last));
+    }
+    else { // Multipe participants..
+      $participants = implode(', ', $to);
+      return t('Participants: !participants and !last', array('!participants' => $participants, '!last' => $last));
+    }
+  }
+  return '';
+}
+
+/**
+ * Implements hook_menu().
+ */
+function privatemsg_menu() {
+  $items['messages'] = array(
+    'title'            => 'Messages',
+    'title callback'  => 'privatemsg_title_callback',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_list', 'list'),
+    'access callback'  => 'privatemsg_user_access',
+    'type'             => MENU_NORMAL_ITEM,
+  );
+  $items['messages/list'] = array(
+    'title'            => 'Messages',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_list', 'list'),
+    'access callback'  => 'privatemsg_user_access',
+    'type'             => MENU_DEFAULT_LOCAL_TASK,
+    'weight'           => -10,
+  );
+  $items['messages/view/%privatemsg_thread'] = array(
+    'title'            => 'Read message',
+    // Set the third argument to TRUE so that we can show access denied instead
+    // of not found.
+    'load arguments'   => array(NULL, NULL, TRUE),
+    'page callback'    => 'privatemsg_view',
+    'page arguments'   => array(2),
+    'access callback'  => 'privatemsg_view_access',
+    'access arguments' => array(2),
+    'type'             => MENU_LOCAL_TASK,
+    'weight'           => -5,
+  );
+  $items['messages/delete/%privatemsg_thread/%privatemsg_message'] = array(
+    'title'            => 'Delete message',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_delete', 2, 3),
+    'access callback'  => 'privatemsg_user_access',
+    'access arguments' => array('delete privatemsg'),
+    'type'             => MENU_CALLBACK,
+  );
+  $items['messages/new'] = array(
+    'title'            => 'Write new message',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_new', 2, 3, NULL),
+    'access callback'  => 'privatemsg_user_access',
+    'access arguments' => array('write privatemsg'),
+    'type'             => MENU_LOCAL_TASK,
+    'weight'           => -3,
+  );
+  // Auto-completes available user names & removes duplicates.
+  $items['messages/user-name-autocomplete'] = array(
+    'page callback'    => 'privatemsg_user_name_autocomplete',
+    'access callback'  => 'privatemsg_user_access',
+    'access arguments' => array('write privatemsg'),
+    'type'             => MENU_CALLBACK,
+    'weight'           => -10,
+  );
+  $items['admin/settings/messages'] = array(
+    'title'            => 'Private messages',
+    'description'      => 'Configure private messaging settings.',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('private_message_settings'),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_NORMAL_ITEM,
+  );
+  $items['admin/settings/messages/default'] = array(
+    'title'            => 'Private messages',
+    'description'      => 'Configure private messaging settings.',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('private_message_settings'),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_DEFAULT_LOCAL_TASK,
+    'weight'           => -10,
+  );
+  $items['messages/undo/action'] = array(
+    'title'            => 'Private messages',
+    'description'      => 'Undo last thread action',
+    'page callback'    => 'privatemsg_undo_action',
+    'access arguments' => array('read privatemsg'),
+    'type'             => MENU_CALLBACK,
+  );
+  $items['user/%/messages'] = array(
+    'title' => 'Messages',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_list', 'list', 1),
+    'access callback'  => 'privatemsg_user_access',
+    'access arguments' => array('read all private messages'),
+    'type' => MENU_LOCAL_TASK,
+  );
+
+  return $items;
+}
+
+/**
+ * Privatemsg  wrapper for user_access.
+ *
+ * Never allows anonymous user access as that doesn't makes sense.
+ *
+ * @param $permission
+ *   Permission string, defaults to read privatemsg
+ *
+ * @return
+ *   TRUE if user has access, FALSE if not
+ *
+ * @ingroup api
+ */
+function privatemsg_user_access($permission = 'read privatemsg', $account = NULL) {
+  if ( $account === NULL ) {
+    global $user;
+    $account = $user;
+  }
+  if (!$account->uid) { // Disallow anonymous access, regardless of permissions
+    return FALSE;
+  }
+  if (!user_access($permission, $account)) {
+    return FALSE;
+  }
+  return TRUE;
+}
+
+/**
+ * Check access to the view messages page.
+ *
+ * Function to restrict the access of the view messages page to just the
+ * messages/view/% pages and not to leave tabs artifact on other lower
+ * level pages such as the messages/new/%.
+ * 
+ * @param $thread
+ *   A array containing all information about a specific thread, generated by
+ *   privatemsg_thread_load().
+ *
+ * @ingroup api
+ */
+function privatemsg_view_access($thread = array()) {
+  // Do not allow access to threads without messages.
+  if (empty($thread['messages'])) {
+    // Count all messages, if there
+    return FALSE;
+  }
+  if (privatemsg_user_access('read privatemsg') && arg(1) == 'view') {
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * Load a thread with all the messages and participants.
+ *
+ * This function is called by the menu system through the %privatemsg_thread
+ * wildcard.
+ *
+ * @param $thread_id
+ *   Thread id, pmi.thread_id or pm.mid of the first message in that thread.
+ * @param $account
+ *   User object for which the thread should be loaded, defaults to
+ *   the current user.
+ * @param $start
+ *   Message offset from the start of the thread.
+ *
+ * @param $useAccessDenied
+ *   Set to TRUE if the function should forward to the access denied page
+ *   instead of not found. This is used by the menu system because that does
+ *   load arguments before access checks are made. Defaults to FALSE.
+ *
+ * @return
+ *   $thread object, with keys messages, participants, title and user. messages
+ *   contains an array of messages, participants an array of user, subject the
+ *   subject of the thread and user the user viewing the thread.
+ *
+ *   If no messages are found, or the thread_id is invalid, the function returns
+ *   FALSE.
+
+ * @ingroup api
+ */
+function privatemsg_thread_load($thread_id, $account = NULL, $start = NULL, $useAccessDenied = FALSE) {
+  static $threads = array();
+  if ((int)$thread_id > 0) {
+    $thread = array('thread_id' => $thread_id);
+
+    if (is_null($account)) {
+      global $user;
+      $account = drupal_clone($user);
+    }
+
+    if (!isset($threads[$account->uid])) {
+      $threads[$account->uid] = array();
+    }
+
+    if (!array_key_exists($thread_id, $threads[$account->uid])) {
+      // Load the list of participants.
+      $query = _privatemsg_assemble_query('participants', $thread_id);
+      $participants = db_query($query['query']);
+      $thread['participants'] = array();
+      while ($participant = db_fetch_object($participants)) {
+        $thread['participants'][$participant->uid] = $participant;
+      }
+      $thread['read_all'] = FALSE;
+      if (!array_key_exists($account->uid, $thread['participants']) && privatemsg_user_access('read all private messages', $account)) {
+        $thread['read_all'] = TRUE;
+      }
+
+      // Load messages returned by the messages query with privatemsg_message_load_multiple().
+      $query = _privatemsg_assemble_query('messages', array($thread_id), $thread['read_all'] ? NULL : $account);
+      $thread['message_count'] = $thread['to'] = db_result(db_query($query['count']));
+      $thread['from'] = 1;
+      // Check if we need to limit the messages.
+      $max_amount = variable_get('privatemsg_view_max_amount', 20);
+
+      // If there is no start value, select based on get params.
+      if (is_null($start)) {
+        if (isset($_GET['start']) && $_GET['start'] < $thread['message_count']) {
+          $start = $_GET['start'];
+        }
+        elseif (!variable_get('privatemsg_view_use_max_as_default', FALSE) && $max_amount == PRIVATEMSG_UNLIMITED) {
+          $start = PRIVATEMSG_UNLIMITED;
+        }
+        else {
+          $start = $thread['message_count'] - (variable_get('privatemsg_view_use_max_as_default', FALSE) ? variable_get('privatemsg_view_default_amount', 10) : $max_amount);
+        }
+      }
+
+      if ($start != PRIVATEMSG_UNLIMITED) {
+        if ($max_amount == PRIVATEMSG_UNLIMITED) {
+          $last_page = 0;
+          $max_amount = $thread['message_count'];
+        }
+        else {
+          // Calculate the number of messages on the "last" page to avoid
+          // message overlap.
+          // Note - the last page lists the earliest messages, not the latest.
+          $paging_count = variable_get('privatemsg_view_use_max_as_default', FALSE) ? $thread['message_count'] - variable_get('privatemsg_view_default_amount', 10) : $thread['message_count'];
+          $last_page = $paging_count % $max_amount;
+        }
+
+        // Sanity check - we cannot start from a negative number.
+        if ($start < 0) {
+          $start = 0;
+        }
+        $thread['start'] = $start;
+
+        //If there are newer messages on the page, show pager link allowing to go to the newer messages.
+        if (($start + $max_amount + 1) < $thread['message_count']) {
+          $thread['to'] = $start + $max_amount;
+          $thread['newer_start'] = $start + $max_amount;
+        }
+        if ($start - $max_amount >= 0) {
+          $thread['older_start'] = $start - $max_amount;
+        }
+        elseif ($start > 0) {
+          $thread['older_start'] = 0;
+        }
+
+        // Do not show messages on the last page that would show on the page
+        // before. This will only work when using the visual pager.
+        if ($start < $last_page && $max_amount != PRIVATEMSG_UNLIMITED && $max_amount < $thread['message_count']) {
+          unset($thread['older_start']);
+          $thread['to'] = $thread['newer_start'] = $max_amount = $last_page;
+          // Start from the first message - this is a specific hack to make sure
+          // the message display has sane paging on the last page.
+          $start = 0;
+        }
+        // Visual counts start from 1 instead of zero, so plus one.
+        $thread['from'] = $start + 1;
+        $conversation = db_query_range($query['query'], $start, $max_amount);
+      }
+      else {
+        $conversation = db_query($query['query']);
+      }
+      $mids = array();
+      while ($result = db_fetch_array($conversation)) {
+        $mids[] = $result['mid'];
+      }
+      // Load messages returned by the messages query.
+      $thread['messages'] = privatemsg_message_load_multiple($mids, $thread['read_all'] ? NULL : $account);
+
+      // If there are no messages, don't allow access to the thread.
+      if (empty($thread['messages'])) {
+        if ($useAccessDenied) {
+          // Generate new query with read all to see if the thread does exist.
+          $query = _privatemsg_assemble_query('messages', array($thread_id), NULL);
+          $exists = db_result(db_query($query['count']));
+          if (!$exists) {
+            // Thread does not exist, display 404.
+            $thread = FALSE;
+          }
+        }
+        else {
+          $thread = FALSE;
+        }
+      }
+      else {
+        // General data, assume subject is the same for all messages of that thread.
+        $thread['user'] = $account;
+        $message = current($thread['messages']);
+        $thread['subject'] = $message['subject'];
+      }
+      $threads[$account->uid][$thread_id] = $thread;
+    }
+
+    return $threads[$account->uid][$thread_id];
+  }
+  return FALSE;
+}
+
+function private_message_view_options() {
+  $options = module_invoke_all('privatemsg_view_template');
+  return $options;
+}
+
+/**
+ * Implements hook_privatemsg_view_template().
+ *
+ * Allows modules to define different message view template.
+ *
+ * This hook returns information about available themes for privatemsg viewing.
+ *
+ * array(
+ *  'machine_template_name' => 'Human readable template name',
+ *  'machine_template_name_2' => 'Human readable template name 2'
+ * };
+ */
+function privatemsg_privatemsg_view_template() {
+  return array(
+    'privatemsg-view' => 'Default view',
+  );
+}
+
+function private_message_settings() {
+  $form = array();
+
+  $form['theming_settings'] = array(
+    '#type'        => 'fieldset',
+    '#collapsible' => TRUE,
+    '#collapsed'   => TRUE,
+    '#title'       => t('Theming settings'),
+  );
+  $form['theming_settings']['private_message_view_template'] = array(
+    '#type'          => 'radios',
+    '#title'         => t('Private message display template'),
+    '#default_value' => variable_get('private_message_view_template', 'privatemsg-view'),
+    '#options'       => private_message_view_options(),
+  );
+  $form['privatemsg_display_loginmessage'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Inform the user about new messages on login'),
+    '#default_value' => variable_get('privatemsg_display_loginmessage', TRUE),
+    '#description' => t('This option can safely be disabled if the "New message indication" block is used instead.'),
+  );
+
+  $form['flush_deleted'] = array(
+    '#type'        => 'fieldset',
+    '#collapsible' => TRUE,
+    '#collapsed'   => TRUE,
+    '#title'       => t('Flush deleted messages'),
+    '#description' => t('By default, deleted messages are only hidden from the user but still stored in the database. These settings control if and when messages should be removed.'),
+  );
+
+  $form['flush_deleted']['privatemsg_flush_enabled'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Flush deleted messages'),
+    '#default_value' => variable_get('privatemsg_flush_enabled', FALSE),
+    '#description'   => t('Enable the flushing of deleted messages. Requires that cron is enabled'),
+  );
+
+  $form['flush_deleted']['privatemsg_flush_days'] = array(
+    '#type' => 'select',
+    '#title' => t('Flush messages after they have been deleted for more days than'),
+    '#default_value' => variable_get('privatemsg_flush_days', 30),
+    '#options' => drupal_map_assoc(array(0, 1, 2, 5, 10, 30, 100)),
+  );
+
+  $form['flush_deleted']['privatemsg_flush_max'] = array(
+    '#type' => 'select',
+    '#title' => t('Maximum number of messages to flush per cron run'),
+    '#default_value' => variable_get('privatemsg_flush_max', 200),
+    '#options' => drupal_map_assoc(array(50, 100, 200, 500, 1000)),
+  );
+
+  $form['privatemsg_listing'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Configure listings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+
+  $form['privatemsg_listing']['privatemsg_per_page'] = array(
+    '#type' => 'select',
+    '#title' => t('Threads per page'),
+    '#default_value' => variable_get('privatemsg_per_page', 25),
+    '#options' => drupal_map_assoc(array(10, 25, 50, 75, 100)),
+    '#description' => t('Choose the number of conversations that should be listed per page.'),
+  );
+
+  $form['privatemsg_listing']['privatemsg_display_fields'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Configure fields'),
+    '#description' => t('Select which columns/fields should be displayed in the message listings. Subject and Last updated cannot be disabled.'),
+    '#options' => array(
+      'participants'    => t('Participants'),
+      'thread_started'  => t('Started'),
+      'count'           => t('Messages'),
+    ),
+    '#default_value' => variable_get('privatemsg_display_fields', array('participants')),
+  );
+
+  $amounts = drupal_map_assoc(array(5, 10, 20, 30, 50, 70, 90, 150, 200, 250, 300));
+  $form['privatemsg_listing']['privatemsg_view_max_amount'] = array(
+    '#type'          => 'select',
+    '#title'         => t('Number of messages on thread pages'),
+    '#options'       => $amounts + array(PRIVATEMSG_UNLIMITED => t('Unlimited')),
+    '#default_value' => variable_get('privatemsg_view_max_amount', 20),
+    '#description'   => t('Threads will not show more than this number of messages on a single page.'),
+    '#weight'        => 10,
+  );
+
+  $form['privatemsg_listing']['privatemsg_view_use_max_as_default'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Display different amount of messages on first thread page'),
+    '#default_value' => variable_get('privatemsg_view_use_max_as_default', FALSE),
+    '#description'   => t('By default, the first thread page shows the maximally allowed amount of messages. Enable this checkbox to set a different value.'),
+    '#weight'        => 15,
+  );
+
+  $form['privatemsg_listing']['privatemsg_view_default_amount'] = array(
+    '#prefix'        => '<div id="privatemsg-view-default-button">',
+    '#suffix'        => '</div>',
+    '#type'          => 'select',
+    '#title'         => t('Number of messages on first thread page'),
+    '#default_value' => variable_get('privatemsg_view_default_amount', 10),
+    '#description'   => t('The number of messages to be displayed on first thread page. Displays the newest messages.'),
+    '#options'       => $amounts,
+    '#weight'        => 20,
+  );
+  drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-admin.js');
+
+  $form['#submit'][] = 'private_message_settings_submit';
+  return system_settings_form($form);
+}
+
+function private_message_settings_submit() {
+  drupal_rebuild_theme_registry();
+}
+
+/**
+ * Implements hook_cron().
+ *
+ * If the flush feature is enabled, a given amount of deleted messages that are
+ * old enough are flushed.
+ */
+function privatemsg_cron() {
+  if (variable_get('privatemsg_flush_enabled', FALSE)) {
+    $query = _privatemsg_assemble_query('deleted', variable_get('privatemsg_flush_days', 30));
+    $result = db_query($query['query']);
+
+    $flushed = 0;
+    while (($row = db_fetch_array($result)) && ($flushed < variable_get('privatemsg_flush_max', 200))) {
+      $message = privatemsg_message_load($row['mid']);
+      module_invoke_all('privatemsg_message_flush', $message);
+
+      // Delete recipients of the message.
+      db_query('DELETE FROM {pm_index} WHERE mid = %d', $row['mid']);
+      // Delete message itself.
+      db_query('DELETE FROM {pm_message} WHERE mid = %d', $row['mid']);
+      $flushed++;
+    }
+  }
+}
+
+function privatemsg_theme() {
+  return array(
+    'privatemsg_view'    => array(
+      'arguments'        => array('message' => NULL),
+      'template'         => variable_get('private_message_view_template', 'privatemsg-view'), // 'privatemsg',
+    ),
+    'privatemsg_from'    => array(
+      'arguments'        => array('author' => NULL),
+      'template'         => 'privatemsg-from',
+    ),
+    'privatemsg_recipients' => array(
+      'arguments'        => array('message' => NULL),
+      'template'         => 'privatemsg-recipients',
+    ),
+    'privatemsg_between' => array(
+      'arguments'        => array('recipients' => NULL),
+      'template'         => 'privatemsg-between',
+    ),
+    'privatemsg_list'    => array(
+      'file'                  => 'privatemsg.theme.inc',
+      'path'                  => drupal_get_path('module', 'privatemsg'),
+      'arguments'        => array('form'),
+    ),
+    // Define pattern for header/field templates. The theme system will register all
+    // theme functions that start with the defined pattern.
+    'privatemsg_list_header'  => array(
+      'file'                  => 'privatemsg.theme.inc',
+      'path'                  => drupal_get_path('module', 'privatemsg'),
+      'pattern'               => 'privatemsg_list_header__',
+      'arguments'             => array(),
+    ),
+    'privatemsg_list_field'   => array(
+      'file'                  => 'privatemsg.theme.inc',
+      'path'                  => drupal_get_path('module', 'privatemsg'),
+      'pattern'               => 'privatemsg_list_field__',
+      'arguments'             => array('thread'),
+    ),
+    'privatemsg_new_block'  => array(
+      'file'                  => 'privatemsg.theme.inc',
+      'path'                  => drupal_get_path('module', 'privatemsg'),
+      'arguments'             => array('count'),
+    ),
+  );
+}
+
+function template_preprocess_privatemsg_view(&$vars) {
+//  drupal_set_message('<pre>'. print_r($vars,1 ) . '</pre>');
+
+  $message = $vars['message'];
+  $vars['mid'] = isset($message['mid']) ? $message['mid'] : NULL;
+  $vars['thread_id'] = isset($message['thread_id']) ? $message['thread_id'] : NULL;
+  $vars['author_picture'] = theme('user_picture', $message['author']);
+  $vars['author_name_link'] = theme('username', $message['author']);
+  /**
+   * @todo perhaps make this timestamp configurable via admin UI?
+   */
+  $vars['message_timestamp'] = format_date($message['timestamp'], 'small');
+  $vars['message_body'] = check_markup($message['body'], $message['format'], FALSE);
+  if (isset($vars['mid']) && isset($vars['thread_id']) && privatemsg_user_access('delete privatemsg')) {
+    $vars['message_actions'][] = array('title' => t('Delete message'), 'href' => 'messages/delete/' . $vars['thread_id'] . '/' . $vars['mid']);
+  }
+  $vars['message_anchors'][] = 'privatemsg-mid-' . $vars['mid'];
+  if (!empty($message['is_new'])) {
+    $vars['message_anchors'][] = 'new';
+    $vars['new'] = drupal_ucfirst(t('new'));
+  }
+
+  // call hook_privatemsg_message_view_alter
+  drupal_alter('privatemsg_message_view', $vars);
+
+  $vars['message_actions'] = !empty($vars['message_actions']) ? theme('links', $vars['message_actions'], array('class' => 'message-actions')) : '';
+
+  $vars['anchors'] = '';
+  foreach ($vars['message_anchors'] as $anchor) {
+    $vars['anchors'] .= '<a name="' . $anchor . '"></a>';
+  }
+}
+
+function template_preprocess_privatemsg_recipients(&$vars) {
+  $vars['participants'] = ''; // assign a default empty value
+  if (isset($vars['message']['participants'])) {
+    $vars['participants'] = _privatemsg_format_participants($vars['message']['participants']);
+  }
+}
+
+/**
+ * List messages.
+ *
+ * @param $form_state
+ *   Form state array
+ * @param $argument
+ *   An argument to pass through to the query builder.
+ * @param $uid
+ *   User id messages of another user should be displayed
+ *
+ * @return
+ *   Form array
+ */
+function privatemsg_list(&$form_state, $argument = 'list', $uid = NULL) {
+  global $user;
+
+  // Setting default behavior...
+  $account = $user;
+  // Because uid is submitted by the menu system, it's a string not a integer.
+  if ((int)$uid > 0 && $uid != $user->uid) {
+    // Trying to view someone else's messages...
+    if (!privatemsg_user_access('read all private messages')) {
+      drupal_set_message(t("You do not have sufficient rights to view someone else's messages"), 'warning');
+    }
+    elseif ($account_check = user_load(array('uid' => $uid))) {
+      // Has rights and user_load return an array so user does exist
+      $account = $account_check;
+    }
+  }
+  // By this point we have figured out for which user we are listing messages and now it is safe to use $account->uid in the listing query.
+
+  $query = _privatemsg_assemble_query('list', $account, $argument);
+  $result = pager_query($query['query'], variable_get('privatemsg_per_page', 25), 0, $query['count']);
+
+  $threads = array();
+  $form['#data'] = array();
+  while ($row = db_fetch_array($result)) {
+    // Store the raw row data.
+    $form['#data'][$row['thread_id']] = $row;
+    // store thread id for the checkboxes array
+    $threads[$row['thread_id']] = '';
+  }
+  if (!empty($form['#data'])) {
+    $form['actions'] = _privatemsg_action_form();
+  }
+
+  // Save the currently active account, used for actions.
+  $form['account'] = array('#type' => 'value', '#value' => $account);
+
+  // Define checkboxes, pager and theme
+  $form['threads'] = array('#type' => 'checkboxes', '#options' => $threads);
+  $form['pager'] = array('#value' => theme('pager'), '#weight' => 20);
+  $form['#theme'] = 'privatemsg_list';
+
+  // Store the account for which the threads are displayed.
+  $form['#account'] = $account;
+  return $form;
+}
+
+/**
+ * Changes the read/new status of a single message.
+ *
+ * @param $pmid
+ *   Message id
+ * @param $status
+ *   Either PRIVATEMSG_READ or PRIVATEMSG_UNREAD
+ * @param $account
+ *   User object, defaults to the current user
+ */
+function privatemsg_message_change_status($pmid, $status, $account = NULL) {
+  if (!$account) {
+    global $user;
+    $account = $user;
+  }
+  $query = "UPDATE {pm_index} SET is_new = %d WHERE mid = %d AND uid = %d";
+  db_query($query, $status, $pmid, $account->uid);
+}
+
+/**
+ * Return number of unread messages for an account.
+ *
+ * @param $account
+ *   Specifiy the user for which the unread count should be loaded.
+ *
+ * @ingroup api
+ */
+function privatemsg_unread_count($account = NULL) {
+  static $counts = array();
+  if (!$account || $account->uid == 0) {
+    global $user;
+    $account = $user;
+  }
+  if ( !isset($counts[$account->uid])) {
+    $query = _privatemsg_assemble_query('unread_count', $account);
+    $counts[$account->uid] = db_result(db_query($query['query']));
+  }
+  return $counts[$account->uid];
+}
+
+/**
+ * Menu callback for viewing a thread.
+ *
+ * @param $thread
+ *   A array containing all information about a specific thread, generated by
+ *   privatemsg_thread_load().
+ * @return
+ *   The page content.
+ * @see privatemsg_thread_load()
+ */
+function privatemsg_view($thread) {
+  drupal_set_title(check_plain($thread['subject']));
+
+  // Generate paging links.
+  $older = '';
+  if (isset($thread['older_start'])) {
+    $options = array(
+      'query' => array('start' => $thread['older_start']),
+      'title' => t('Display older messages'),
+    );
+     $older = l(t('<<'), 'messages/view/' . $thread['thread_id'], $options);
+  }
+  $newer = '';
+  if (isset($thread['newer_start'])) {
+    $options = array(
+      'query' => array('start' => $thread['newer_start']),
+      'title' => t('Display newer messages'),
+    );
+    $newer = l(t('>>'), 'messages/view/' . $thread['thread_id'], $options);
+  }
+  $substitutions = array('@from' => $thread['from'], '@to' => $thread['to'], '@total' => $thread['message_count'], '!previous_link' => $older, '!newer_link' => $newer);
+  $title = t('!previous_link Displaying messages @from - @to of @total !newer_link', $substitutions);
+  $content['pager_top'] = array(
+    '#value'  => trim($title),
+    '#prefix' => '<div class="privatemsg-view-pager">',
+    '#suffix' => '</div>',
+    '#weight' => -10,
+  );
+
+  // Display a copy at the end.
+  $content['pager_bottom'] = $content['pager_top'];
+  $content['pager_bottom']['#weight'] = 3;
+
+  // Render the participants.
+  $content['participants']['#value'] = theme('privatemsg_recipients', $thread);
+  $content['participants']['#weight'] = -5;
+
+  // Render the messages.
+  $output = '';
+  foreach ($thread['messages'] as $pmid => $message) {
+    // Set message as read and theme it.
+    if (!empty($message['is_new'])) {
+      privatemsg_message_change_status($pmid, PRIVATEMSG_READ, $thread['user']);
+    }
+    $output .= theme('privatemsg_view', $message);
+  }
+  $content['messages']['#value'] = $output;
+  $content['messages']['#weight'] = 0;
+
+  // Display the reply form if user is allowed to use it.
+  if (privatemsg_user_access('write privatemsg')) {
+    $content['reply']['#value'] = drupal_get_form('privatemsg_new', $thread['participants'], $thread['subject'], $thread['thread_id'], $thread['read_all']);
+    $content['reply']['#weight'] = 5;
+  }
+
+  // Check after calling the privatemsg_new form so that this message is only
+  // displayed when we are not sending a message.
+  if ($thread['read_all']) {
+    // User has permission to read all messages AND is not a participant of the current thread.
+    drupal_set_message(t('This conversation is being viewed with escalated priviledges and may not be the same as shown to normal users.'), 'warning');
+  }
+
+  // Allow other modules to hook into the $content array and alter it.
+  drupal_alter('privatemsg_view_messages', $content, $thread);
+  return drupal_render($content);
+}
+
+
+function privatemsg_new(&$form_state, $recipients = array(), $subject = '', $thread_id = NULL, $read_all = FALSE) {
+  global $user;
+
+  $recipients_string = '';
+  $body      = '';
+
+  // convert recipients to array of user objects
+  if (!empty($recipients) && is_string($recipients) || is_int($recipients)) {
+    $recipients = _privatemsg_generate_user_array($recipients);
+  }
+  elseif (is_object($recipients)) {
+    $recipients = array($recipients);
+  }
+  elseif (empty($recipients) && is_string($recipients)) {
+    $recipients = array();
+  }
+
+  $usercount = 0;
+  $to = array();
+  $to_themed = array();
+  $blocked = FALSE;
+  foreach ($recipients as $recipient) {
+    if (in_array($recipient->name, $to)) {
+      // We already added the recipient to the list, skip him.
+      continue;
+    }
+    // Check if another module is blocking the sending of messages to the recipient by current user.
+    $user_blocked = module_invoke_all('privatemsg_block_message', $user, array($recipient->uid => $recipient));
+    if (!count($user_blocked) <> 0 && $recipient->uid) {
+      if ($recipient->uid == $user->uid) {
+        $usercount++;
+        // Skip putting author in the recipients list for now.
+        continue;
+      }
+      $to[] = $recipient->name;
+      $to_themed[$recipient->uid] = theme('username', $recipient);
+    }
+    else {
+      // Recipient list contains blocked users.
+      $blocked = TRUE;
+    }
+  }
+
+  if (empty($to) && $usercount >= 1 && !$blocked) {
+    // Assume the user sent message to own account as if the usercount is one or less, then the user sent a message but not to self.
+    $to[] = $user->name;
+    $to_themed[$user->uid] = theme('username', $user);
+  }
+
+  if (!empty($to)) {
+    $recipients_string = implode(', ', $to);
+  }
+  if (isset($form_state['values'])) {
+    if (isset($form_state['values']['recipient'])) {
+      $recipients_string = $form_state['values']['recipient'];
+
+    }
+    $subject   = $form_state['values']['subject'];
+    $body      = $form_state['values']['body'];
+  }
+  if (!$thread_id && !empty($recipients_string)) {
+    drupal_set_title(t('Write new message to %recipient', array('%recipient' => $recipients_string)));
+  }
+  elseif (!$thread_id) {
+    drupal_set_title(t('Write new message'));
+  }
+
+  $form = array();
+  if (isset($form_state['privatemsg_preview'])) {
+    $form['message_header'] = array(
+      '#type' => 'fieldset',
+      '#attributes' => array('class' => 'preview'),
+    );
+    $form['message_header']['message_preview'] = array(
+      '#value'  => $form_state['privatemsg_preview'],
+    );
+  }
+  $form['privatemsg'] = array(
+    '#type'               => 'fieldset',
+    '#access'             => privatemsg_user_access('write privatemsg'),
+  );
+  $form['privatemsg']['author'] = array(
+    '#type' => 'value',
+    '#value' => $user,
+  );
+  if (is_null($thread_id)) {
+    $form['privatemsg']['recipient'] = array(
+      '#type'               => 'textfield',
+      '#title'              => t('To'),
+      '#description'        => t('Separate multiple names with commas.'),
+      '#default_value'      => $recipients_string,
+      '#required'           => TRUE,
+      '#weight'             => -10,
+      '#size'               => 50,
+      '#autocomplete_path'  => 'messages/user-name-autocomplete',
+      // Do not hardcode #maxlength, make it configurable by number of recipients, not their name length.
+    );
+  }
+  $form['privatemsg']['subject'] = array(
+    '#type'               => 'textfield',
+    '#title'              => t('Subject'),
+    '#size'               => 50,
+    '#maxlength'          => 255,
+    '#default_value'      => $subject,
+    '#weight'             => -5,
+  );
+  $form['privatemsg']['body'] = array(
+    '#type'               => 'textarea',
+    '#title'              => t('Message'),
+    '#rows'               => 6,
+    '#weight'             => 0,
+    '#default_value'      => $body,
+    '#resizable'          => TRUE,
+  );
+  $format = FILTER_FORMAT_DEFAULT;
+  // The input filter widget looses the format during preview, specify it
+  // explicitly.
+  if (isset($form_state['values']) && array_key_exists('format', $form_state['values'])) {
+    $format = $form_state['values']['format'];
+  }
+  $form['privatemsg']['format'] = filter_form($format);
+  $form['privatemsg']['preview'] = array(
+    '#type'               => 'submit',
+    '#value'              => t('Preview message'),
+    '#submit'             => array('pm_preview'),
+    '#validate'           => array('pm_send_validate'),
+    '#weight'             => 10,
+  );
+  $form['privatemsg']['submit'] = array(
+    '#type'               => 'submit',
+    '#value'              => t('Send message'),
+    '#submit'             => array('pm_send'),
+    '#validate'           => array('pm_send_validate'),
+    '#weight'             => 15,
+  );
+  $url = 'messages';
+  $title = t('Cancel');
+  if (isset($_REQUEST['destination'])) {
+    $url = $_REQUEST['destination'];
+  }
+  elseif (!is_null($thread_id)) {
+    $url = $_GET['q'];
+    $title = t('Clear');
+  }
+
+  $form['privatemsg']['cancel'] = array(
+    '#value'              => l($title, $url, array('attributes' => array('id' => 'edit-cancel'))),
+    '#weight'             => 20,
+  );
+
+  if (!is_null($thread_id)) {
+    $form['privatemsg']['thread_id'] = array(
+      '#type' => 'value',
+      '#value' => $thread_id,
+    );
+    $form['privatemsg']['subject'] = array(
+          '#type' => 'value',
+          '#default_value' => $subject,
+    );
+    $recipients_string_themed = implode(', ', $to_themed);
+    $form['privatemsg']['recipient_display'] = array(
+      '#value' =>  '<p>'. t('<strong>Reply to thread</strong>:<br /> Recipients: !to', array('!to' => $recipients_string_themed)) .'</p>',
+      '#weight' => -10,
+    );
+    if (empty($recipients_string)) {
+      // If there are no valid recipients, unset the message reply form.
+      $form['privatemsg']['#access'] = FALSE;
+    }
+  }
+  $form['privatemsg']['read_all'] = array(
+    '#type'  => 'value',
+    '#value' => $read_all,
+  );
+  return $form;
+}
+
+function pm_send_validate($form, &$form_state) {
+  // The actual message that is being sent, we create this during validation and pass to submit to send out.
+  $message = $form_state['values'];
+  $message['timestamp'] = time();
+  // Avoid subjects which only consist of a space as these can not be clicked.
+  $message['subject'] = trim($message['subject']);
+
+
+  $trimed_body = trim(truncate_utf8(strip_tags($message['body']), 50, TRUE, TRUE));
+  if (empty($message['subject']) && !empty($trimed_body)) {
+    $message['subject'] = $trimed_body;
+  }
+  // Only parse the user string for a new thread.
+  if (!isset($message['thread_id'])) {
+    list($message['recipients'], $invalid) = _privatemsg_parse_userstring($message['recipient']);
+  }
+  else {
+    // Load participants.
+    $message['recipients'] = _privatemsg_load_thread_participants($message['thread_id']);
+    // Remove author.
+    if (isset($message['recipients'][$message['author']->uid]) && count($message['recipients']) > 1) {
+      unset($message['recipients'][$message['author']->uid]);
+    }
+  }
+
+  $validated = _privatemsg_validate_message($message, TRUE);
+  foreach ($validated['messages'] as $type => $text) {
+    drupal_set_message($text, $type);
+  }
+  $form_state['validate_built_message'] = $message;
+  if (!empty($invalid)) {
+    drupal_set_message(t('The following users will not receive this private message: @invalid', array('@invalid' => implode(", ", $invalid))), 'error');
+  }
+}
+
+/**
+ * Load all participants of a thread, optionally without author.
+ *
+ * @param $thread_id
+ *   Thread ID for wich the participants should be loaded.
+ */
+function _privatemsg_load_thread_participants($thread_id) {
+  $query = _privatemsg_assemble_query('participants', $thread_id);
+  $result = db_query($query['query']);
+  $participants = array();
+  while ($uid = db_fetch_object($result)) {
+    if (($recipient = user_load($uid->uid))) {
+      $participants[$recipient->uid] = $recipient;
+    }
+  }
+  return $participants;
+}
+
+/**
+ * Extract the valid usernames of a string and loads them.
+ *
+ * This function is used to parse a string supplied by a username autocomplete
+ * field and load all user objects.
+ *
+ * @param $string
+ *   A string in the form "usernameA, usernameB, ...".
+ * @return
+ *   Array, first element is an array of loaded user objects, second an array
+ *   with invalid names.
+ */
+function _privatemsg_parse_userstring($input) {
+  if (is_string($input)) {
+    $input = explode(',', $input);
+  }
+
+  // Start working through the input array.
+  $invalid = array();
+  $recipients = array();
+  foreach ($input as $string) {
+    $string = trim($string);
+    if (!empty($string)) { // We don't care about white space names.
+
+      // First, check if another module is able to resolve the string into an
+      // user object.
+      foreach (module_implements('privatemsg_name_lookup') as $module) {
+        $function = $module . '_privatemsg_name_lookup';
+        if (($recipient = $function($string)) && is_object($recipient)) {
+          // If there is a match, continue with the next input string.
+          $recipients[$recipient->uid] = $recipient;
+          continue 2;
+        }
+      }
+      // Fall back to the default username lookup.
+      if (!$error = module_invoke('user', 'validate_name', $string)) {
+        // String is a valid username, look it up.
+        if ($recipient = user_load(array('name' => $string))) {
+          $recipients[$recipient->uid] = $recipient;
+          continue;
+        }
+      }
+      $invalid[$string] = $string;
+    }
+  }
+
+  return array($recipients, $invalid);
+}
+
+/**
+ * Submit callback for the privatemsg_new form.
+ */
+function pm_send($form, &$form_state) {
+  $status = _privatemsg_send($form_state['validate_built_message']);
+  // Load usernames to which the message was sent to.
+  $recipient_names = array();
+  foreach ($form_state['validate_built_message']['recipients'] as $recipient) {
+    $recipient_names[] = theme('username', $recipient);
+  }
+  if ($status !== FALSE )  {
+    drupal_set_message(t('A message has been sent to !recipients.', array('!recipients' => implode(', ', $recipient_names))));
+  }
+  else {
+    drupal_set_message(t('An attempt to send a message <em>may have failed</em> when sending to !recipients.', array('!recipients' => implode(', ', $recipient_names))), 'error');
+  }
+}
+
+function pm_preview($form, &$form_state) {
+
+    drupal_validate_form($form['form_id']['#value'], $form, $form_state);
+    if (!form_get_errors()) {
+      $form_state['privatemsg_preview'] = theme('privatemsg_view', $form_state['validate_built_message']);
+    }
+
+  $form_state['rebuild'] = TRUE; // this forces our form to be rebuilt instead of being submitted.
+}
+
+/**
+ * @addtogroup sql
+ * @{
+ */
+
+/**
+ * Query definition to load a list of threads.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $account
+ *   User object for which the messages are being loaded.
+ * @param $argument
+ *   String argument which can be used in the query builder to modify the
+ *   thread listing.
+ */
+
+function privatemsg_sql_list(&$fragments, $account, $argument = 'list') {
+  $fragments['primary_table'] = '{pm_message} pm';
+
+  // Load enabled columns.
+  $fields = array_filter(variable_get('privatemsg_display_fields', array('participants')));
+
+  // Required columns.
+  $fragments['select'][]      = 'pmi.thread_id';
+  // We have to use MIN as the subject might not be the same in some threads.
+  // MIN() does not have a useful meaning except that it helps to correctly
+  // aggregate the thread on PostgreSQL.
+  $fragments['select'][]      = 'MIN(pm.subject) as subject';
+  $fragments['select'][]      = 'MAX(pm.timestamp) as last_updated';
+  // We use SUM so that we can count the number of unread messages.
+  $fragments['select'][]      = 'SUM(pmi.is_new) as is_new';
+
+  // Select number of messages in the thread if the count is
+  // set to be displayed.
+  if (in_array('count', $fields)) {
+    $fragments['select'][]      = 'COUNT(distinct pmi.mid) as count';
+  }
+  if (in_array('participants', $fields)) {
+    // Query for a string with uid's, for example "1,6,7".
+    // @todo: Replace this with a single query similiar to the tag list.
+    if ($GLOBALS['db_type'] == 'pgsql') {
+      // PostgreSQL does not know GROUP_CONCAT, so a subquery is required.
+      $fragments['select'][]      = "array_to_string(array(SELECT DISTINCT textin(int4out(pmia.uid))
+                                                            FROM {pm_index} pmia
+                                                            WHERE pmia.thread_id = pmi.thread_id), ',') AS participants";
+    }
+    else {
+      $fragments['select'][]      = '(SELECT GROUP_CONCAT(DISTINCT pmia.uid SEPARATOR ",")
+                                                            FROM {pm_index} pmia
+                                                            WHERE pmia.thread_id = pmi.thread_id) AS participants';
+    }
+  }
+  if (in_array('thread_started', $fields)) {
+    $fragments['select'][]      = 'MIN(pm.timestamp) as thread_started';
+  }
+
+  $fragments['inner_join'][]  = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid';
+
+  // Only load undeleted messages of the current user and group by thread.
+  $fragments['where'][]       = 'pmi.uid = %d';
+  $fragments['query_args']['where'][]  = $account->uid;
+  $fragments['where'][]       = 'pmi.deleted = 0';
+  $fragments['group_by'][]    = 'pmi.thread_id';
+
+  $order_by_first = 'MAX(pmi.is_new) DESC, ';
+  // MySQL 4.1 does not allow to order by aggregate functions. MAX() is used
+  // to avoid a ordering bug with multiple new messages.
+  if ($GLOBALS['db_type'] != 'pgsql' && version_compare(db_version(), '5.0.0') < 0) {
+    $order_by_first = 'is_new DESC, ';
+  }
+
+  // tablesort_sql() generates a ORDER BY string. However, the "ORDER BY " part 
+  // is not needed and added by the query builder. Discard the first 9
+  // characters of the string.
+  $order_by = drupal_substr(tablesort_sql(_privatemsg_list_headers( FALSE, array_merge(array('subject', 'last_updated'), $fields)), $order_by_first), 9);
+  $fragments['order_by'][]  = $order_by;
+}
+
+/**
+ * Query function for loading a single or multiple messages.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $pmids
+ *   Array of pmids.
+ * @param $account
+ *   Account for which the messages should be loaded.
+ */
+function privatemsg_sql_load(&$fragments, $pmids, $account = NULL) {
+  $fragments['primary_table'] = '{pm_message} pm';
+
+  $fragments['select'][]      = "pm.mid";
+  $fragments['select'][]      = "pm.author";
+  $fragments['select'][]      = "pm.subject";
+  $fragments['select'][]      = "pm.body";
+  $fragments['select'][]      = "pm.timestamp";
+  $fragments['select'][]      = "pm.format";
+  $fragments['select'][]      = "pmi.is_new";
+  $fragments['select'][]      = "pmi.thread_id";
+
+  $fragments['inner_join'][]  = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid';
+  // Use IN() to load multiple messages at the same time.
+  $fragments['where'][]       = 'pmi.mid IN (' . db_placeholders($pmids) . ')';
+  $fragments['query_args']['where']  += $pmids;
+  if ($account) {
+    $fragments['where'][]       = 'pmi.uid = %d';
+    $fragments['query_args']['where'][]  = $account->uid;
+  }
+  $fragments['order_by'][] = 'pm.timestamp ASC';
+  $fragments['order_by'][] = 'pm.mid ASC';
+}
+
+/**
+ * Query definition to load messages of one or multiple threads.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $threads
+ *   Array with one or multiple thread id's.
+ * @param $account
+ *   User object for which the messages are being loaded.
+ * @param $load_all
+ *   Deleted messages are only loaded if this is set to TRUE.
+ */
+function privatemsg_sql_messages(&$fragments, $threads, $account = NULL, $load_all = FALSE) {
+  $fragments['primary_table'] = '{pm_index} pmi';
+
+  $fragments['select'][]      = 'pmi.mid';
+  $fragments['where'][]       = 'pmi.thread_id IN ('. db_placeholders($threads) .')';
+  $fragments['query_args']['where']   += $threads;
+  $fragments['inner_join'][]  = 'INNER JOIN {pm_message} pm ON (pm.mid = pmi.mid)';
+  if ($account) {
+    // Only load the user's messages.
+    $fragments['where'][]     = 'pmi.uid = %d';
+    $fragments['query_args']['where'][]  = $account->uid;
+  }
+  if (!$load_all) {
+    // Also load deleted messages when requested.
+    $fragments['where'][]     = 'pmi.deleted = 0';
+  }
+  // Only load each mid once.
+  $fragments['group_by'][]    = 'pmi.mid';
+  $fragments['group_by'][]    = 'pm.timestamp';
+
+  // Order by timestamp first.
+  $fragments['order_by'][]    = 'pm.timestamp ASC';
+  // If there are multiple inserts during the same second (tests, for example)
+  // sort by mid second to have them in the same order as they were saved.
+  $fragments['order_by'][]    = 'pmi.mid ASC';
+
+}
+
+/**
+ * Load all participants of a thread.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $thread_id
+ *   Thread id from which the participants should be loaded.
+ */
+function privatemsg_sql_participants(&$fragments, $thread_id) {
+  $fragments['primary_table'] = '{pm_index} pmi';
+
+  // Only load each participant once since they are listed as recipient for
+  // every message of that thread.
+  $fragments['select'][]      = 'DISTINCT(pmi.uid) AS uid';
+  $fragments['select'][]      = 'u.name AS name';
+
+  $fragments['inner_join'][]  = 'INNER JOIN {users} u ON (u.uid = pmi.uid)';
+  $fragments['where'][]       = 'pmi.thread_id = %d';
+  $fragments['query_args']['where'][]  = $thread_id;
+}
+
+/**
+ * Query definition to count unread messages.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $account
+ *   User object for which the messages are being counted.
+ */
+function privatemsg_sql_unread_count(&$fragments, $account) {
+  $fragments['primary_table'] = '{pm_index} pmi';
+
+  $fragments['select'][]      = 'COUNT(DISTINCT thread_id) as unread_count';
+
+  // Only count new messages that have not been deleted.
+  $fragments['where'][]       = 'pmi.deleted = 0';
+  $fragments['where'][]       = 'pmi.is_new = 1';
+  $fragments['where'][]       = 'pmi.uid = %d';
+  $fragments['query_args']['where'][]  = $account->uid;
+}
+
+/**
+ * Query definition to search for username autocomplete suggestions.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $search
+ *   Which search string is currently searched for.
+ * @param $names
+ *   Array of names not to be used as suggestions.
+ */
+function privatemsg_sql_autocomplete(&$fragments, $search, $names) {
+  $fragments['primary_table'] = '{users} u';
+  $fragments['select'][] = 'u.name';
+  // Escape the % to get it through the placeholder replacement.
+  $fragments['where'][] = "u.name LIKE '%s'";
+  $fragments['query_args']['where'][] = $search .'%%';
+  if (!empty($names)) {
+    // If there are already names selected, exclude them from the suggestions.
+    $fragments['where'][] = "u.name NOT IN (". db_placeholders($names, 'text') .")";
+    $fragments['query_args']['where'] += $names;
+  }
+  // Only load active users and sort them by name.
+  $fragments['where'][] = 'u.status <> 0';
+  $fragments['order_by'][] = 'u.name ASC';
+}
+
+/**
+ * Query Builder function to load all messages that should be flushed.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $days
+ *   Select messages older than x days.
+ */
+function privatemsg_sql_deleted(&$fragments, $days) {
+  $fragments['primary_table'] = '{pm_message} pm';
+
+  $fragments['select'][] = 'pm.mid';
+  // The lowest value is higher than 0 if all recipients have deleted a message.
+  $fragments['select'][] = 'MIN(pmi.deleted) as is_deleted';
+  // The time the most recent deletion happened.
+  $fragments['select'][] = 'MAX(pmi.deleted) as last_deleted';
+
+  $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON (pmi.mid = pm.mid)';
+
+  $fragments['group_by'][] = 'pm.mid';
+
+  // Ignore messages that have not been deleted by all users.
+  $fragments['having'][] = 'MIN(pmi.deleted) > 0';
+
+  // Only select messages that have been deleted more than n days ago.
+  $fragments['having'][] = 'MAX(pmi.deleted) < %d';
+  $fragments['query_args']['having'][] = time() - $days * 86400;
+}
+
+/**
+ * @}
+ */
+
+/**
+ * Return autocomplete results for usernames.
+ *
+ * Prevents usernames from being used and/or suggested twice.
+ */
+function privatemsg_user_name_autocomplete($string) {
+  $names = array();
+  // 1: Parse $string and build list of valid user names.
+  $fragments = explode(',', $string);
+  foreach ($fragments as $index => $name) {
+    if ($name = trim($name)) {
+      $names[$name] = $name;
+    }
+  }
+  // By using user_validate_user we can ensure that names included in $names are at least logisticaly possible.
+  // 2: Find the next user name suggestion.
+  $fragment = array_pop($names);
+  $matches = array();
+  if (!empty($fragment)) {
+    $query = _privatemsg_assemble_query('autocomplete', $fragment, $names);
+    $result = db_query_range($query['query'], $fragment, 0, 10);
+    $prefix = count($names) ? implode(", ", $names) .", " : '';
+    // 3: Build proper suggestions and print.
+    while ($user = db_fetch_object($result)) {
+      $matches[$prefix . $user->name .", "] = $user->name;
+    }
+  }
+  // convert to object to prevent drupal bug, see http://drupal.org/node/175361
+  drupal_json((object)$matches);
+}
+
+function privatemsg_user($op, &$edit, &$account, $category = NULL) {
+  global $user;
+
+  switch ($op) {
+    case 'view':
+      if ($url = privatemsg_get_link(array($account))) {
+        $account->content['privatemsg_send_new_message'] = array(
+          '#type'   => 'markup',
+          '#value'  => l(t('Send this user a message'), $url, array('query' => drupal_get_destination())),
+          '#weight' => 10,
+        );
+      }
+      break;
+    case 'login':
+      if (variable_get('privatemsg_display_loginmessage', TRUE) && privatemsg_user_access()) {
+        $count = privatemsg_unread_count();
+        if ($count) {
+          drupal_set_message(format_plural($count, 'You have <a href="@messages">1 unread message</a>.', 'You have <a href="@messages">@count unread messages</a>', array('@messages' => url('messages'))));
+        }
+      }
+      break;
+    case 'delete':
+
+      // Load all mids of the messages the user wrote.
+      $result = db_query("SELECT mid FROM {pm_message} WHERE author = %d", $account->uid);
+      $mids = array();
+      while ($row = db_fetch_array($result)) {
+        $mids[] = $row['mid'];
+      }
+
+      // Delete messages the user wrote.
+      db_query('DELETE FROM {pm_message} WHERE author = %d', $account->uid);
+
+      if (!empty($mids)) {
+        // Delete recipient entries in {pm_index} of the messages the user wrote.
+        db_query('DELETE FROM {pm_index} WHERE mid IN (' . db_placeholders($mids) . ')', $mids);
+      }
+
+      // Delete recipient entries of that user.
+      db_query('DELETE FROM {pm_index} WHERE uid = %d', $account->uid);
+      break;
+  }
+}
+
+function privatemsg_block($op = 'list', $delta = 0, $edit = array()) {
+  if ('list' == $op) {
+    $blocks = array();
+    $blocks['privatemsg-menu'] = array(
+      'info' => t('Privatemsg links'),
+      'cache' => BLOCK_NO_CACHE,
+    );
+    $blocks['privatemsg-new'] = array(
+      'info' => t('New message indication'),
+      'cache' => BLOCK_NO_CACHE,
+    );
+
+    return $blocks;
+  }
+  elseif ('view' == $op) {
+    $block = array();
+    switch ($delta) {
+      case 'privatemsg-menu':
+        $block = _privatemsg_block_menu();
+        break;
+      case 'privatemsg-new':
+        $block = _privatemsg_block_new();
+        break;
+    }
+    return $block;
+  }
+}
+
+function privatemsg_title_callback($title = NULL) {
+  $count = privatemsg_unread_count();
+
+  if ($count > 0) {
+    return format_plural($count, 'Messages (1 new)', 'Messages (@count new)');
+  }
+  return t('Messages');
+}
+
+
+function _privatemsg_block_new() {
+  $block = array();
+
+  if (!privatemsg_user_access()) {
+    return $block;
+  }
+
+  $count = privatemsg_unread_count();
+  if ($count) {
+    $block = array(
+      'subject' => format_plural($count, 'New message', 'New messages'),
+      'content' => theme('privatemsg_new_block', $count),
+    );
+    return $block;
+  }
+  return array();
+}
+
+function _privatemsg_block_menu() {
+  $block = array();
+
+  $links = array();
+  if (privatemsg_user_access('write privatemsg')) {
+    $links[] = l(t('Write new message'), 'messages/new');
+  }
+  if (privatemsg_user_access('read privatemsg') || privatemsg_user_access('read all private messages') ) {
+    $links[] = l(privatemsg_title_callback(), 'messages');
+  }
+  if ( count( $links ) ) {
+    $block = array(
+      'subject' => t('Private messages'),
+      'content' => theme('item_list', $links),
+    );
+  }
+  return $block;
+}
+
+function privatemsg_delete($form_state, $thread, $message) {
+  $form['pmid'] = array(
+    '#type' => 'value',
+    '#value' => $message['mid'],
+  );
+  $form['delete_destination'] = array(
+    '#type' => 'value',
+    '#value' => count($thread['messages']) > 1 ? 'messages/view/' . $message['thread_id'] : 'messages',
+  );
+
+  if (privatemsg_user_access('read all private messages')) {
+    $form['delete_options'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Delete this message for all users?'),
+      '#description' => t('Tick the box to delete the message for all users.'),
+      '#default_value' => FALSE,
+    );
+  }
+  return confirm_form($form,
+    t('Are you sure you want to delete this message?'),
+    isset($_GET['destination']) ? $_GET['destination'] : 'messages/view/'. $message['thread_id'],
+    t('This action cannot be undone.'),
+    t('Delete'),
+    t('Cancel')
+  );
+}
+
+function privatemsg_delete_submit($form, &$form_state) {
+  global $user;
+  $account = drupal_clone($user);
+
+  if ($form_state['values']['confirm']) {
+    if (isset($form_state['values']['delete_options']) && $form_state['values']['delete_options']) {
+      privatemsg_message_change_delete($form_state['values']['pmid'], 1);
+      drupal_set_message(t('Message has been deleted for all users.'));
+    }
+    else {
+      privatemsg_message_change_delete($form_state['values']['pmid'], 1, $account);
+      drupal_set_message(t('Message has been deleted.'));
+    }
+  }
+  $form_state['redirect'] = $form_state['values']['delete_destination'];
+}
+
+/**
+ * Delete or restore a message.
+ *
+ * @param $pmid
+ *   Message id, pm.mid field.
+ * @param $delete
+ *   Either deletes or restores the thread (1 => delete, 0 => restore)
+ * @param $account
+ *   User acccount for which the delete action should be carried out - Set to
+ *   NULL to delete for all users.
+ *
+ * @ingroup api
+ */
+function privatemsg_message_change_delete($pmid, $delete, $account = NULL) {
+  $delete_value = 0;
+  if ($delete == TRUE) {
+    $delete_value = time();
+  }
+
+  if ($account) {
+    db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = %d AND uid = %d', $delete_value, $pmid, $account->uid);
+  }
+  else {
+    // Mark deleted for all users.
+    db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = %d', $delete_value, $pmid);
+  }
+}
+
+/**
+ * Send a new message.
+ *
+ * This functions does send a message in a new thread.
+ * Example:
+ * @code
+ * privatemsg_new_thread(array(user_load(5)), 'The subject', 'The body text');
+ * @endcode
+ *
+ * @param $recipients
+ *   Array of recipients (user objects)
+ * @param $subject
+ *   The subject of the new message
+ * @param $body
+ *   The body text of the new message
+ * @param $options
+ *   Additional options, possible keys:
+ *     author => User object of the author
+ *     timestamp => Time when the message was sent
+ *
+ * @return
+ *   An array with a key success. If TRUE, it also contains a key 'message' with
+ *   the created $message array, the same that is passed to the insert hook.
+ *   If FALSE, it contains a key 'messages'. This key contains an array where
+ *   the key is the error type (error, warning, notice) and an array with
+ *   messages of that type.
+ *
+ *   It is theoretically possible for success to be TRUE and message to be
+ *   FALSE. For example if one of the privatemsg database tables become
+ *   corrupted. When testing for success of message being sent it is always
+ *   best to see if ['message'] is not FALSE as well as ['success'] is TRUE.
+ *
+ *   Example:
+ *   @code
+ *   array('error' => array('A error message'))
+ *   @endcode
+ *
+ * @ingroup api
+ */
+function privatemsg_new_thread($recipients, $subject, $body = NULL, $options = array()) {
+  global $user;
+  $author = drupal_clone($user);
+
+  $message = array();
+  $message['subject'] = $subject;
+  $message['body'] = $body;
+  // Make sure that recipients are keyed by user id and are not added
+  // multiple times.
+  foreach ($recipients as $recipient) {
+    $message['recipients'][$recipient->uid] = $recipient;
+  }
+
+  // Set custom options, if any.
+  if (!empty($options)) {
+    $message += $options;
+  }
+  // Apply defaults - this will not overwrite existing keys.
+  $message += array(
+    'author' => $author,
+    'timestamp' => time(),
+    'format' => filter_resolve_format(FILTER_FORMAT_DEFAULT),
+  );
+
+  $validated = _privatemsg_validate_message($message);
+  if ($validated['success']) {
+    $validated['message'] = _privatemsg_send($message);
+  }
+
+  return $validated;
+}
+
+/**
+ * Send a reply message
+ *
+ * This functions replies on an existing thread.
+ *
+ * @param $thread_id
+ *   Thread id
+ * @param $body
+ *   The body text of the new message
+ * @param $options
+ *   Additional options, possible keys:
+ *     author => User object of the author
+ *     timestamp => Time when the message was sent
+ *
+ * @return
+ *   An array with a key success and messages. This key contains an array where
+ *   the key is the error type (error, warning, notice) and an array with
+ *   messages of that type.. If success is TRUE, it also contains a key $message
+ *   with the created $message array, the same that is passed to
+ *   hook_privatemsg_message_insert().
+ *
+ *   It is theoretically possible for success to be TRUE and message to be
+ *   FALSE. For example if one of the privatemsg database tables become
+ *   corrupted. When testing for success of message being sent it is always
+ *   best to see if ['message'] is not FALSE as well as ['success'] is TRUE.
+ *
+ *   Example messages values:
+ *   @code
+ *   array('error' => array('A error message'))
+ *   @endcode
+ *
+ * @ingroup api
+ */
+function privatemsg_reply($thread_id, $body, $options = array()) {
+  global $user;
+  $author = drupal_clone($user);
+
+  $message = array();
+  $message['body'] = $body;
+
+  // set custom options, if any
+  if (!empty($options)) {
+    $message += $options;
+  }
+  // apply defaults
+  $message += array(
+    'author' => $author,
+    'timestamp' => time(),
+    'format' => filter_resolve_format(FILTER_FORMAT_DEFAULT),
+  );
+
+  // We don't know the subject and the recipients, so we need to load them..
+  // thread_id == mid on the first message of the thread
+  $first_message = privatemsg_message_load($thread_id, $message['author']);
+  if (!$first_message) {
+    return array(t('Thread %thread_id not found, unable to answer', array('%thread_id' => $thread_id)));
+  }
+
+  $message['thread_id'] = $thread_id;
+  // Load participants.
+  $message['recipients'] = _privatemsg_load_thread_participants($thread_id);
+  // Remove author.
+  if (isset($message['recipients'][$message['author']->uid]) && count($message['recipients']) > 1) {
+    unset($message['recipients'][$message['author']->uid]);
+  }
+  $message['subject'] = $first_message['subject'];
+
+  $validated = _privatemsg_validate_message($message);
+  if ($validated['success']) {
+    $validated['message'] = _privatemsg_send($message);
+  }
+  return $validated;
+}
+
+function _privatemsg_validate_message(&$message, $form = FALSE) {
+  $messages = array('error' => array(), 'warning' => array());
+  if (!privatemsg_user_access('write privatemsg', $message['author'])) {
+    // no need to do further checks in this case...
+    if ($form) {
+      form_set_error('author', t('User @user is not allowed to write messages', array('@user' => $message['author']->name)));
+      return array(
+        'success'  => FALSE,
+        'messages'   => $messages,
+      );
+    }
+    else {
+      $messages['error'][] = t('User @user is not allowed to write messages', array('@user' => $message['author']->name));
+      return array(
+         'success'  => FALSE,
+         'messages'   => $messages,
+      );
+    }
+  }
+
+  // Prevent subjects which only consist of a space as these can not be clicked.
+  $message['subject'] = trim($message['subject']);
+  if (empty($message['subject'])) {
+    if ($form) {
+      form_set_error('subject', t('Disallowed to send a message without subject'));
+    }
+    else {
+      $messages['error'][] = t('Disallowed to send a message without subject');
+    }
+  }
+
+  // Don't allow replies without a body.
+  if (!empty($message['thread_id']) && ($message['body'] === NULL || $message['body'] === '') ) {
+    if ($form) {
+      form_set_error('body', t('Disallowed to send reply without a message.'));
+    }
+    else {
+      $messages['error'][] = t('Disallowed to send reply without a message.');
+    }
+  }
+  // Check if an allowed format is used. global $user needs to be changed since
+  // it is not possible to do the check for a specific user.
+  global $user;
+  $original_user = drupal_clone($user);
+  session_save_session(FALSE);
+  $user = $message['author'];
+
+  if (!filter_access($message['format'])) {
+    if ($form) {
+      form_set_error('format', t('You are not allowed to use the specified input format.'));
+    }
+    else {
+      $messages['error'][] = t('User @user is not allowed to use the specified input format.', array('@user' => $message['author']->name));
+    }
+  }
+
+  $user = $original_user;
+  session_save_session(TRUE);
+
+  if (empty($message['recipients']) || !is_array($message['recipients'])) {
+    if ($form) {
+      form_set_error('to', t('Disallowed to send a message without at least one valid recipient'));
+    }
+    else {
+      $messages['error'][] = t('Disallowed to send a message without at least one valid recipient');
+    }
+  }
+
+  if (!empty($message['recipients']) && is_array($message['recipients'])) {
+    foreach (module_invoke_all('privatemsg_block_message', $message['author'], $message['recipients']) as $blocked) {
+      unset($message['recipients'][$blocked['uid']]);
+      if ($form) {
+        drupal_set_message($blocked['message'], 'warning');
+      }
+      else {
+        $messages['warning'][] = $blocked['message'];
+      }
+    }
+  }
+
+  // Check again, give another error message if all recipients are blocked
+  if (empty($message['recipients'])) {
+    if ($form) {
+      form_set_error('to', t('Disallowed to send message because all recipients are blocked'));
+    }
+    else {
+      $messages['error'][] = t('Disallowed to send message because all recipients are blocked');
+    }
+  }
+
+  $messages = array_merge_recursive(module_invoke_all('privatemsg_message_validate', $message, $form), $messages);
+
+  // Check if there are errors in $messages or if $form is TRUE, there are form errors.
+  $success = empty($messages['error']) || ($form && count((array)form_get_errors()) > 0);
+  return array(
+    'success'  => $success,
+    'messages'   => $messages,
+  );
+}
+
+/**
+ * Internal function to save a message.
+ *
+ * @param $message
+ *   A $message array with the data that should be saved. If a thread_id exists
+ *   it will be created as a reply to an existing thread. If not, a new thread
+ *   will be created.
+ *
+ * @return
+ *   The updated $message array.
+ */
+function _privatemsg_send($message) {
+
+  drupal_alter('privatemsg_message_presave', $message);
+
+  $index_sql = "INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted) VALUES (%d, %d, %d, %d, 0)";
+  if (isset($message['read_all']) && $message['read_all']) {
+    // The message was sent in read all mode, add the author as recipient to all
+    // existing messages.
+    $query_messages = _privatemsg_assemble_query('messages', array($message['thread_id']), NULL);
+    $conversation = db_query($query_messages['query']);
+    while ($result = db_fetch_array($conversation)) {
+      if (!db_query($index_sql, $result['mid'], $message['thread_id'], $message['author']->uid, 0)) {
+        return FALSE;
+      }
+    }
+  }
+
+  // 1) Save the message body first.
+  $args = array();
+  $args[] = $message['subject'];
+  $args[] = $message['author']->uid;
+  $args[] = $message['body'];
+  $args[] = $message['format'];
+  $args[] = $message['timestamp'];
+  $message_sql = "INSERT INTO {pm_message} (subject, author, body, format, timestamp) VALUES ('%s', %d, '%s', %d, %d)";
+  db_query($message_sql, $args);
+  $mid = db_last_insert_id('pm_message', 'mid');
+  $message['mid'] = $mid;
+
+  // Thread ID is the same as the mid if it's the first message in the thread.
+  if (!isset($message['thread_id'])) {
+    $message['thread_id'] = $mid;
+  }
+
+  // 2) Save message to recipients.
+  // Each recipient gets a record in the pm_index table.
+  foreach ($message['recipients'] as $recipient) {
+    if (!db_query($index_sql, $mid, $message['thread_id'], $recipient->uid, 1) ) {
+      // We assume if one insert failed then the rest may fail too against the
+      // same table.
+      return FALSE;
+    }
+  }
+
+  // When author is also the recipient, we want to set message to UNREAD.
+  // All other times the message is set to READ.
+  $is_new = isset($message['recipients'][$message['author']->uid]) ? 1 : 0;
+
+  // Also add a record for the author to the pm_index table.
+  if (!db_query($index_sql, $mid, $message['thread_id'], $message['author']->uid, $is_new)) {
+    return FALSE;
+  }
+
+  module_invoke_all('privatemsg_message_insert', $message);
+
+  // If we reached here that means we were successful at writing all messages to db.
+  return $message;
+}
+
+/**
+ * Returns a link to send message form for a specific users.
+ *
+ * Contains permission checks of author/recipient, blocking and
+ * if a anonymous user is involved.
+ *
+ * @param $recipient
+ *   Recipient of the message
+ * @param $account
+ *   Sender of the message, defaults to the current user
+ *
+ * @return
+ *   Either FALSE or a URL string
+ *
+ * @ingroup api
+ */
+function privatemsg_get_link($recipients, $account = array(), $subject = NULL) {
+  if ($account == NULL) {
+    global $user;
+    $account = $user;
+  }
+
+  if (!is_array($recipients)) {
+    $recipients = array($recipients);
+  }
+
+  if (!privatemsg_user_access('write privatemsg', $account) || $account->uid == 0) {
+    return FALSE;
+  }
+
+  $validated = array();
+  foreach ($recipients as $recipient) {
+    if (!privatemsg_user_access('read privatemsg', $recipient)) {
+      continue;
+    }
+    if (count(module_invoke_all('privatemsg_block_message', $account, array($recipient->uid => $recipient))) > 0) {
+      continue;
+    }
+    $validated[] = $recipient->uid;
+  }
+  if (empty($validated)) {
+    return FALSE;
+  }
+  $url = 'messages/new/'. implode(',', $validated);
+  if (!is_null($subject)) {
+    $url .= '/'. $subject;
+  }
+  return $url;
+}
+
+/**
+ * Load a single message.
+ *
+ * @param $pmid
+ *   Message id, pm.mid field
+ * @param $account
+ *   For which account the message should be loaded.
+ *   Defaults to the current user.
+ *
+ * @ingroup api
+ */
+function privatemsg_message_load($pmid, $account = NULL) {
+  $messages = privatemsg_message_load_multiple(array($pmid), $account);
+  return current($messages);
+}
+
+/**
+ * Load multiple messages.
+ *
+ * @param $pmids
+ *   Array of Message ids, pm.mid field
+ * @param $account
+ *   For which account the message should be loaded.
+ *   Defaults to the current user.
+ *
+ * @ingroup api
+ */
+function privatemsg_message_load_multiple($pmids, $account = NULL) {
+  // Avoid SQL error that would happen with an empty pm.mid IN () clause.
+  if (empty($pmids)) {
+    return array();
+  }
+
+  $query = _privatemsg_assemble_query('load', $pmids, $account);
+  $result = db_query($query['query']);
+  $messages = array();
+  while ($message = db_fetch_array($result)) {
+    // Load author of message.
+    if (!($message['author'] = user_load($message['author']))) {
+      // If user does not exist, load anonymous user.
+      $message['author'] = user_load(array('uid' => 0));
+    }
+    $returned = module_invoke_all('privatemsg_message_load', $message);
+    if (!empty($returned)) {
+      $message = array_merge_recursive($returned, $message);
+    }
+    $messages[$message['mid']] = $message;
+  }
+  return $messages;
+}
+
+/**
+ * Generates a query based on a query id.
+ *
+ * @param $query
+ *   Either be a string ('some_id') or an array('group_name', 'query_id'),
+ *   if a string is supplied, group_name defaults to 'privatemsg'.
+ *
+ * @return
+ *    Array with the keys query and count. count can be used to count the
+ *    elements which would be returned by query. count can be used together
+ *    with pager_query().
+ *
+ * @ingroup sql
+ */
+function _privatemsg_assemble_query($query) {
+
+  // Modules will be allowed to choose the prefix for the querybuilder, but if there is not one supplied, 'privatemsg' will be taken by default.
+  if (is_array($query)) {
+    $query_id = $query[0];
+    $query_group = $query[1];
+  }
+  else {
+    $query_id = $query;
+    $query_group = 'privatemsg';
+  }
+
+  $SELECT = array();
+  $INNER_JOIN = array();
+  $WHERE = array();
+  $GROUP_BY = array();
+  $HAVING   = array();
+  $ORDER_BY = array();
+  $QUERY_ARGS = array('select' => array(), 'where' => array(), 'join' => array(), 'having' => array());
+  $primary_table = '';
+
+  $fragments = array(
+    'select'      => $SELECT,
+    'inner_join'  => $INNER_JOIN,
+    'where'       => $WHERE,
+    'group_by'    => $GROUP_BY,
+    'having'      => $HAVING,
+    'order_by'    => $ORDER_BY,
+    'query_args'  => $QUERY_ARGS,
+    'primary_table'  => $primary_table,
+  );
+
+  /**
+   * Begin: dynamic arguments
+   */
+  $args = func_get_args();
+  unset($args[0]);
+  // we do the merge because we call call_user_func_array and not drupal_alter
+  // this is necessary because otherwise we would not be able to use $args correctly (otherwise it doesnt unfold)
+  $alterargs = array(&$fragments);
+  $query_function = $query_group .'_sql_'. $query_id;
+  if (!empty($args)) {
+    $alterargs = array_merge($alterargs, $args);
+  }
+  /**
+   * END: Dynamic arguments
+   */
+  if (!function_exists($query_function)) {
+    drupal_set_message(t('Query function %function does not exist', array('%function' => $query_function)), 'error');
+    return FALSE;
+  }
+  call_user_func_array($query_function, $alterargs);
+
+  array_unshift($alterargs, $query_function);
+  call_user_func_array('drupal_alter', $alterargs);
+
+  $SELECT = $fragments['select'];
+  $INNER_JOIN = $fragments['inner_join'];
+  $WHERE = $fragments['where'];
+  $GROUP_BY = $fragments['group_by'];
+  $HAVING   = $fragments['having'];
+  $ORDER_BY = $fragments['order_by'];
+  $QUERY_ARGS = $fragments['query_args'];
+  $primary_table = $fragments['primary_table'];
+
+  // pgsql has a case sensitive LIKE - replace it with ILIKE. see http://drupal.org/node/462982
+  if ($GLOBALS['db_type'] == 'pgsql') {
+    $WHERE = str_replace('LIKE', 'ILIKE', $WHERE);
+  }
+
+  if (empty($primary_table)) {
+    $primary_table = '{privatemsg} pm';
+  }
+
+  // Perform the whole query assembly only if we have something to select.
+  if (!empty($SELECT)) {
+    $str_select = implode(", ", $SELECT);
+    $query = "SELECT {$str_select} FROM ". $primary_table;
+
+    // Also build a count query which can be passed to pager_query to get a "page count" as that does not play well with queries including "GROUP BY".
+    // In most cases,  "COUNT(*)" is enough to get the count query, but in queries involving a GROUP BY, we want a count of the number of groups we have, not the count of elements inside each group.
+    // So we test if there is GROUP BY and if there is, count the number of distinct groups. If not, we go the normal wal and do a plain COUNT(*).
+    if (!empty($GROUP_BY)) {
+      // PostgreSQL does not support COUNT(sometextfield, someintfield), so I'm only using the first one
+      // Works fine for thread_id/list but may generate an error when a more complex GROUP BY is used.
+      $str_group_by_count = current($GROUP_BY);
+      $count = "SELECT COUNT(DISTINCT {$str_group_by_count}) FROM ". $primary_table;
+    }
+    else {
+      $count = "SELECT COUNT(*) FROM ". $primary_table;
+    }
+
+    if (!empty($INNER_JOIN)) {
+      $str_inner_join = implode(' ', $INNER_JOIN);
+      $query .= " {$str_inner_join}";
+      $count .= " {$str_inner_join}";
+    }
+    if (!empty($WHERE)) {
+      $str_where = '('. implode(') AND (', $WHERE) .')';
+      $query .= " WHERE {$str_where}";
+      $count .= " WHERE {$str_where}";
+    }
+    if (!empty($GROUP_BY)) {
+      $str_group_by = ' GROUP BY '. implode(", ", $GROUP_BY) ;
+      $query .= " {$str_group_by}";
+    }
+    if (!empty($HAVING)) {
+      $str_having = '('. implode(') AND (', $HAVING) .')';
+      $query .= " HAVING {$str_having}";
+      // queries containing a HAVING break the count query on pgsql.
+      // In this case, use the subquery method as outlined in http://drupal.org/node/303087#comment-1370752 .
+      // The subquery method will work for all COUNT queries, but it is thought to be much slower, so we are only using it where other cross database approaches fail.
+      $count = 'SELECT COUNT(*) FROM ('. $query .') as count';
+    }
+    if (!empty($ORDER_BY)) {
+      $str_order_by = ' ORDER BY '. implode(", ", $ORDER_BY) ;
+      $query .= " {$str_order_by}";
+    }
+    $QUERY_ARGS = array_merge($QUERY_ARGS['select'], $QUERY_ARGS['join'], $QUERY_ARGS['where'], $QUERY_ARGS['having']);
+    if (!empty($QUERY_ARGS)) {
+      _db_query_callback($QUERY_ARGS, TRUE);
+      $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query);
+      _db_query_callback($QUERY_ARGS, TRUE);
+      $count = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $count);
+    }
+    return array('query' => $query, 'count' => $count);
+  }
+  return FALSE;
+}
+
+/**
+ * Returns a form which handles and displays thread actions.
+ *
+ * Additional actions can be added with the privatemsg_thread_operations hook.
+ * It is also possible to extend this form with additional buttons or other
+ * elements, in that case, the definitions in the above hook need no label tag,
+ * instead, the submit button key needs to match with the key of the operation.
+ *
+ * @see hook_privatemsg_thread_operations()
+ *
+ * @return
+ *   The FAPI definitions for the thread action form.
+ */
+function _privatemsg_action_form() {
+  $form = array(
+      '#type'        => 'fieldset',
+      '#title'       => t('Actions'),
+      '#prefix'      => '<div class="container-inline">',
+      '#suffix'      => '</div>',
+      '#collapsible' => TRUE,
+      '#collapsed'   => FALSE,
+      '#weight'      => 15,
+  );
+  if (privatemsg_user_access('delete privatemsg')) {
+    $form['delete'] = array(
+        '#type'   => 'submit',
+        '#value'  => t('Delete'),
+    );
+  }
+  // Display all operations which have a label.
+  $options = array(0 => t('More actions...'));
+  foreach (module_invoke_all('privatemsg_thread_operations') as $operation => $array) {
+    if (isset($array['label'])) {
+      $options[$operation] = $array['label'];
+    }
+  }
+  $form['operation'] = array(
+      '#type'          => 'select',
+      '#options'       => $options,
+      '#default_value' => 0,
+  );
+  $form['submit'] = array(
+      '#prefix'     => '<div class="privatemsg-op-button">',
+      '#suffix'    => '</div>',
+      '#type'       => 'submit',
+      '#value'      => t('Execute'),
+      '#submit'     => array('privatemsg_list_submit'),
+      '#attributes' => array('class' => 'privatemsg-action-button'),
+  );
+  // JS for hiding the execute button.
+  drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-list.js');
+  return $form;
+}
+
+/**
+ * Marks one or multiple threads as (un)read.
+ *
+ * @param $threads
+ *   Array with thread id's or a single thread id.
+ * @param $status
+ *   Either PRIVATEMSG_READ or PRIVATEMSG_UNREAD, sets the new status.
+ * @param $account
+ *   User object for which the threads should be deleted, defaults to the
+ *   current user.
+ */
+function privatemsg_thread_change_status($threads, $status, $account = NULL) {
+  if (!is_array($threads)) {
+    $threads = array($threads);
+  }
+  if (empty($account)) {
+    global $user;
+    $account = drupal_clone($user);
+  }
+  // Merge status and uid with the threads list. array_merge() will not overwrite/ignore thread_id 1.
+  $params = array_merge(array($status, $account->uid), $threads);
+  db_query('UPDATE {pm_index} SET is_new = %d WHERE uid = %d AND thread_id IN ('. db_placeholders($threads) .')', $params);
+
+  if ($status == PRIVATEMSG_UNREAD) {
+    drupal_set_message(format_plural(count($threads), 'Marked 1 thread as unread.', 'Marked @count threads as unread.'));
+  }
+  else {
+    drupal_set_message(format_plural(count($threads), 'Marked 1 thread as read.', 'Marked @count threads as read.'));
+  }
+}
+/**
+ * Returns a table header definition based on the submitted keys.
+ *
+ * Uses @link theming theme patterns @endlink to theme single headers.
+ *
+ * @param $has_posts
+ *   TRUE when there is at least one row. Decides if the select all checkbox
+ *   should be displayed.
+ * @param $keys
+ *   Array with the keys which are present in the query/should be displayed.
+ * @return
+ *   Array with header defintions for tablesort_sql and theme('table').
+ */
+function _privatemsg_list_headers($has_posts, $keys) {
+  $select_header = $has_posts ? theme('table_select_header_cell') : '';
+  $select_header['#weight'] = -50;
+
+  // theme() doesn't include the theme file for patterns, we need to do it manually.
+  include_once drupal_get_path('module', 'privatemsg') .'/privatemsg.theme.inc';
+
+  $header = array($select_header);
+  foreach ($keys as $key) {
+    // First, try to load a specific theme for that header, if not present, use the default.
+    if ($return = theme(array('privatemsg_list_header__'. $key, 'privatemsg_list_header'))) {
+      // The default theme returns nothing, only store the value if we have something.
+      $header[$key] = $return;
+    }
+  }
+  if (count($header) == 1) {
+    // No header definition returned, fallback to the default.
+    $header += _privatemsg_list_headers_fallback($keys);
+  }
+  return $header;
+}
+
+/**
+ * Table header definition for themes that don't support theme patterns.
+ *
+ * @return
+ *   Array with the correct headers.
+ */
+function _privatemsg_list_headers_fallback($keys) {
+  $header = array();
+  foreach ($keys as $key) {
+    $theme_function = 'phptemplate_privatemsg_list_header__' . $key;
+    if (function_exists($theme_function)) {
+      $header[$key] = $theme_function();
+    }
+  }
+
+  return $header;
+}
+
+/**
+ * Formats a row in the message list.
+ *
+ * Uses @link theming theme patterns @endlink to theme single fields.
+ *
+ * @param $thread
+ *   Array with the row data returned by the database.
+ * @return
+ *   Row definition for use with theme('table')
+ */
+function _privatemsg_list_thread($thread) {
+  $row = array('data' => array());
+
+  if (!empty($thread['is_new'])) {
+    // Set the css class in the tr tag.
+    $row['class'] = 'privatemsg-unread';
+  }
+  foreach ($thread as $key => $data) {
+    // First, try to load a specific theme for that field, if not present, use the default.
+    if ($return = theme(array('privatemsg_list_field__'. $key, 'privatemsg_list_field'), $thread)) {
+      // The default theme returns nothing, only store the value if we have something.
+      $row['data'][$key] = $return;
+    }
+  }
+  if (empty($row['data'])) {
+    $row['data'] = _privatemsg_list_thread_fallback($thread);
+  }
+  return $row;
+}
+
+/**
+ * Table row definition for themes that don't support theme patterns.
+ *
+ * @return
+ *   Array with row data.
+ */
+function _privatemsg_list_thread_fallback($thread) {
+  $row_data = array();
+  foreach ($thread as $key => $data) {
+    $theme_function = 'phptemplate_privatemsg_list_field__' . $key;
+    if (function_exists($theme_function)) {
+      $row_data[$key] = $theme_function($thread);
+    }
+  }
+
+  return $row_data;
+}
+
+/**
+ * Menu callback for messages/undo/action.
+ *
+ * This function will test if an undo callback is stored in SESSION and
+ * execute it.
+ */
+function privatemsg_undo_action() {
+  // Check if a undo callback for that user exists.
+  if (isset($_SESSION['privatemsg']['undo callback']) && is_array($_SESSION['privatemsg']['undo callback'])) {
+    $undo = $_SESSION['privatemsg']['undo callback'];
+    // If the defined undo callback exists, execute it
+    if (isset($undo['function']) && isset($undo['args'])) {
+      // Load the user object.
+      if (isset($undo['args']['account']) && $undo['args']['account'] > 0) {
+        $undo['args']['account'] = user_load((int)$undo['args']['account']);
+      }
+      call_user_func_array($undo['function'], $undo['args']);
+    }
+    // Return back to the site defined by the destination GET param.
+    drupal_goto();
+  }
+}
+
+/**
+ * Process privatemsg_list form submissions.
+ *
+ * Execute the chosen action on the selected messages. This function is
+ * based on node_admin_nodes_submit().
+ */
+function privatemsg_list_submit($form, &$form_state) {
+  // Load all available operation definitions.
+  $operations = module_invoke_all('privatemsg_thread_operations');
+
+  // Default "default" operation, which won't do anything.
+  $operation = array('callback' => 0);
+
+  // Check if a valid operation has been submitted.
+  if (isset($form_state['values']['operation']) && isset($operations[$form_state['values']['operation']])) {
+    $operation = $operations[$form_state['values']['operation']];
+  }
+
+  // Load all keys where the value is the current op.
+  $keys = array_keys($form_state['values'], $form_state['values']['op']);
+
+  // The first one is op itself, we need to use the second.
+  if (isset($keys[1]) && isset($operations[$keys[1]])) {
+    $operation = $operations[$keys[1]];
+  }
+
+  // Only execute something if we have a valid callback and at least one checked thread.
+  if (!empty($operation['callback'])) {
+    privatemsg_operation_execute($operation, $form_state['values']['threads'], $form_state['values']['account']);
+  }
+}
+
+/**
+ * Execute an operation on a number of threads.
+ *
+ * @param $operation
+ *   The operation that should be executed.
+ *   @see hook_privatemsg_thread_operations()
+ * @param $threads
+ *   An array of thread ids. The array is filtered before used, a checkboxes
+ *   array can be directly passed to it.
+ */
+function privatemsg_operation_execute($operation, $threads, $account = null) {
+  // Filter out unchecked threads, this gives us an array of "checked" threads.
+  $threads = array_filter($threads);
+
+  if (empty($threads)) {
+    // Do not execute anything if there are no checked threads.
+    return;
+  }
+  // Add in callback arguments if present.
+  if (isset($operation['callback arguments'])) {
+    $args = array_merge(array($threads), $operation['callback arguments']);
+  }
+  else {
+    $args = array($threads);
+  }
+
+  // Add the user object to the arguments.
+  if ($account) {
+    $args[] = $account;
+  }
+
+  // Execute the chosen action and pass the defined arguments.
+  call_user_func_array($operation['callback'], $args);
+
+  // Check if that operation has defined an undo callback.
+  if (isset($operation['undo callback']) && $undo_function = $operation['undo callback']) {
+    // Add in callback arguments if present.
+    if (isset($operation['undo callback arguments'])) {
+      $undo_args = array_merge(array($threads), $operation['undo callback arguments']);
+    }
+    else {
+      $undo_args = array($threads);
+    }
+
+    // Avoid saving the complete user object in the session.
+    if ($account) {
+      $undo_args['account'] = $account->uid;
+    }
+    // Store the undo callback in the session and display a "Undo" link.
+    // @todo: Provide a more flexible solution for such an undo action, operation defined string for example.
+    $_SESSION['privatemsg']['undo callback'] = array('function' => $undo_function, 'args' => $undo_args);
+    $undo = url('messages/undo/action', array('query' => drupal_get_destination()));
+
+    drupal_set_message(t('The previous action can be <a href="!undo">undone</a>.', array('!undo' => $undo)));
+  }
+}
+
+/**
+ * Delete or restore one or multiple threads.
+ *
+ * @param $threads
+ *   Array with thread id's or a single thread id.
+ * @param $delete
+ *   Indicates if the threads should be deleted or restored.
+ *   1 => delete, 0 => restore.
+ * @param $account
+ *   User object for which the threads should be deleted,
+ *   defaults to the current user.
+ */
+function privatemsg_thread_change_delete($threads, $delete, $account = NULL) {
+  if (!is_array($threads)) {
+    $threads = array($threads);
+  }
+  if (empty($account)) {
+    global $user;
+    $account = drupal_clone($user);
+  }
+
+  // Merge status and uid with the threads list. array_merge() will not overwrite/ignore thread_id 1.
+  $params = array_merge(array($delete, $account->uid), $threads);
+
+  // Load all messages of those threads including the deleted.
+  $query = _privatemsg_assemble_query('messages', $threads, $account, TRUE);
+  $result = db_query($query['query']);
+
+  // Delete each message. We need to do that to trigger the delete hook.
+  while ($row = db_fetch_array($result)) {
+    privatemsg_message_change_delete($row['mid'], $delete, $account);
+  }
+
+  if ($delete) {
+    drupal_set_message(format_plural(count($threads), 'Deleted 1 thread.', 'Deleted @count threads.'));
+  }
+  else {
+    drupal_set_message(format_plural(count($threads), 'Restored 1 thread.', 'Restored @count threads.'));
+  }
+}
+
+/**
+ * Implements hook_privatemsg_thread_operations().
+ */
+function privatemsg_privatemsg_thread_operations() {
+  $operations = array(
+    'mark as read' => array(
+      'label' => t('Mark as read'),
+      'callback' => 'privatemsg_thread_change_status',
+      'callback arguments' => array('status' => PRIVATEMSG_READ),
+      'undo callback' => 'privatemsg_thread_change_status',
+      'undo callback arguments' => array('status' => PRIVATEMSG_UNREAD),
+    ),
+    'mark as unread' => array(
+      'label' => t('Mark as unread'),
+      'callback' => 'privatemsg_thread_change_status',
+      'callback arguments' => array('status' => PRIVATEMSG_UNREAD),
+      'undo callback' => 'privatemsg_thread_change_status',
+      'undo callback arguments' => array('status' => PRIVATEMSG_READ),
+    ),
+  );
+  if (privatemsg_user_access('delete privatemsg')) {
+    $operations['delete'] = array(
+      'callback' => 'privatemsg_thread_change_delete',
+      'callback arguments' => array('delete' => 1),
+      'undo callback' => 'privatemsg_thread_change_delete',
+      'undo callback arguments' => array('delete' => 0),
+    );
+  }
+  return $operations;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function privatemsg_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'privatemsg') . '/views',
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.test b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.test
new file mode 100644
index 0000000..5da9dfc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.test
@@ -0,0 +1,669 @@
+<?php
+/**
+ * @file
+ * Test file for privatemsg.module
+ */
+
+class PrivatemsgTestCase extends DrupalWebTestCase {
+  /**
+   * Implements getInfo().
+   */
+  function getInfo() {
+    return array
+    (
+      // 'name' should start with what is being tested (menu item) followed by what about it
+      // is being tested (creation/deletion).
+      'name' => t('Privatemsg functionality.'),
+      // 'description' should be one or more complete sentences that provide more details on what
+      // exactly is being tested.
+      'description' => t('Test sending, receiving, listing, deleting messages and other features.'),
+      // 'group' should be a logical grouping of test cases, like a category.  In most cases, that
+      // is the module the test case is for.
+      'group' => t('Privatemsg'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  function setUp() {
+    parent::setUp('privatemsg');
+  }
+
+  /**
+   * Test user access to /messages
+   * Create user with no 'read privatemsg' permission. Try to access mailbox and see if it gives access denied error
+   * Create user with 'read privatemsg' permission. Try to access mailbox and see if it gives allows access
+   */
+  function testPrivatemsgReadPrivatemsgPermission() {
+    $user_no_read_msg = $this->drupalCreateUser(); // set up user with default permissions (meaning: no read privatemsg permission
+    $this->drupalLogin($user_no_read_msg);
+    $this->drupalGet('messages');
+    $this->assertResponse(403, t('HTTP Response 403: Access to mailbox was blocked to user without "<em>read privatemsg</em>" permission'));
+
+    $user_read_msg = $this->drupalCreateUser(array('read privatemsg')); // set up user with default permissions (meaning: no read privatemsg permission
+    $this->drupalLogin($user_read_msg);
+    $this->drupalGet('messages');
+    $this->assertResponse(200, t('HTTP Response 200: Access to mailbox was authorized to user with "<em>read privatemsg</em>" permission'));
+  }
+  /**
+   * Test user access to /messages/new
+   * Create user with no 'write privatemsg' permission. Try to access Write New Message page and see if it gives access denied error
+   * Create user with 'write privatemsg' permission. Try to access Write New Message page and see if it gives allows access
+   */
+  function testPrivatemsgWritePrivatemsgPermission() {
+    $user_no_write_msg = $this->drupalCreateUser(); // set up user with default permissions (meaning: no read privatemsg permission
+    $this->drupalLogin($user_no_write_msg);
+    $this->drupalGet('messages/new');
+    $this->assertResponse(403, t('HTTP Response 403: Access to Write New Message page was blocked to user without "<em>write privatemsg</em>" permission'));
+
+    $user_write_msg = $this->drupalCreateUser(array('write privatemsg')); // set up user with default permissions (meaning: no read privatemsg permission
+    $this->drupalLogin($user_write_msg);
+    $this->drupalGet('messages/new');
+    $this->assertResponse(200, t('HTTP Response 200: Access to Write New Message page was authorized to user with "<em>write privatemsg</em>" permission'));
+  }
+
+  function testPaging() {
+    $author     = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+    $recipient  = $this->drupalCreateUser(array('read privatemsg'));
+
+    // Set lower values so that we don't need to generate 100's of messages.
+    variable_set('privatemsg_view_default_amount', 5);
+    variable_set('privatemsg_view_max_amount', 10);
+
+    $subject_single = $this->randomName(20);
+    $subject = $this->randomName(20);
+    $bodies = array();
+    for ($i = 0; $i < 24; $i++) {
+      $bodies[$i] = $this->randomName(100);
+    }
+    privatemsg_new_thread(array($recipient), $subject_single, $bodies[23], array('author' => $author));
+    $thread = privatemsg_new_thread(array($recipient), $subject, $bodies[0], array('author' => $author));
+    for ($i = 1; $i < 23; $i++) {
+      privatemsg_reply($thread['message']['thread_id'], $bodies[$i], array('author' => $author));
+    }
+
+    $this->drupalLogin($recipient);
+    $this->drupalGet('messages');
+    $this->clickLink($subject_single);
+    
+    $this->assertText(t('Displaying messages 1 - 1 of 1'), t('Pager is displayed'));
+    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+    $this->assertNoText(t('<<'), t('Older messages link not displayed.'));
+
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+
+    // Verify that only the last 10 messages are displayed.
+    $this->assertText(t('<< Displaying messages 14 - 23 of 23'), t('Pager is displayed'));
+    $this->assertNoText($bodies[0], t('First message is not displayed.'));
+    $this->assertNoText($bodies[12], t('Hidden message is not displayed.'));
+    $this->assertText($bodies[13], t('Message is displayed.'));
+    $this->assertText($bodies[22], t('Message is displayed.'));
+    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+
+    variable_set('privatemsg_view_use_max_as_default', TRUE);
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+
+    // Now with separate default value.
+    // Verify that only the last 5 messages are displayed.
+    $this->assertText(t('<< Displaying messages 19 - 23 of 23'), t('Pager is displayed'));
+    $this->assertNoText($bodies[0], t('First message is not displayed.'));
+    $this->assertNoText($bodies[17], t('Hidden message is not displayed.'));
+    $this->assertText($bodies[18], t('Message is displayed.'));
+    $this->assertText($bodies[22], t('Message is displayed.'));
+    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+
+    // Load older messages and verify again.
+    $this->clickLink(t('<<'));
+    $this->assertText(t('<< Displaying messages 9 - 18 of 23 >>'), t('Pager is displayed'));
+    $this->assertNoText($bodies[0], t('First message is not displayed.'));
+    $this->assertNoText($bodies[7], t('Hidden message is not displayed.'));
+    $this->assertText($bodies[8], t('Message is displayed.'));
+    $this->assertText($bodies[17], t('Message is displayed.'));
+    $this->assertNoText($bodies[22], t('Hidden message is not displayed.'));
+
+    // Load older messages and verify again.
+    $this->clickLink(t('<<'));
+    $this->assertText(t('Displaying messages 1 - 8 of 23 >>'), t('Pager is displayed'));
+    $this->assertText($bodies[0], t('Message is displayed.'));
+    $this->assertText($bodies[7], t('Message is displayed.'));
+    $this->assertNoText($bodies[9], t('Hidden message is not displayed.'));
+    $this->assertNoText(t('<<'), t('Older messages link not displayed.'));
+
+    // Going back should follow the same order.
+    $this->clickLink(t('>>'));
+    $this->assertText(t('<< Displaying messages 9 - 18 of 23 >>'), t('Pager is displayed'));
+    $this->assertNoText($bodies[0], t('First message is not displayed.'));
+    $this->assertNoText($bodies[7], t('Hidden message is not displayed.'));
+    $this->assertText($bodies[8], t('Message is displayed.'));
+    $this->assertText($bodies[17], t('Message is displayed.'));
+    $this->assertNoText($bodies[22], t('Hidden message is not displayed.'));
+
+    variable_set('privatemsg_view_max_amount', PRIVATEMSG_UNLIMITED);
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+
+    // Now with separate default value.
+    // Verify that only the last 5 messages are displayed.
+    $this->assertText(t('<< Displaying messages 19 - 23 of 23'), t('Pager is displayed'));
+    $this->assertNoText($bodies[0], t('First message is not displayed.'));
+    $this->assertNoText($bodies[17], t('Hidden message is not displayed.'));
+    $this->assertText($bodies[18], t('Message is displayed.'));
+    $this->assertText($bodies[22], t('Message is displayed.'));
+    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+
+    // Load older messages and verify again.
+    $this->clickLink(t('<<'));
+    $this->assertText(t('Displaying messages 1 - 23 of 23'), t('Pager is displayed'));
+    $this->assertText($bodies[0], t('Message is displayed.'));
+    $this->assertText($bodies[22], t('Message is displayed.'));
+    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+    $this->assertNoText(t('<<'), t('Older messages link not displayed.'));
+
+    // Check with max_amount = UNLIMITED and different default amount disabled.
+    variable_set('privatemsg_view_use_max_as_default', FALSE);
+
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+    $this->assertText(t('Displaying messages 1 - 23 of 23'), t('Pager is displayed'));
+    $this->assertText($bodies[0], t('Message is displayed.'));
+    $this->assertText($bodies[22], t('Message is displayed.'));
+    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+    $this->assertNoText(t('<<'), t('Older messages link not displayed.'));
+  }
+
+  /**
+   * Test sending message from the /messages/new page between two people
+   */
+  function testWriteReplyPrivatemsg() {
+    // Create a author and two recipients.
+    $author     = $this->drupalCreateUser(array('write privatemsg', 'administer filters'));
+    $recipient  = $this->drupalCreateUser(array('read privatemsg'));
+    $recipient2  = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg'));
+
+    // Login author and go to new message form.
+    $this->drupalLogin($author);
+    $this->drupalGet('messages/new');
+
+    // Prepare edit arrays, single recipient.
+    $edit = array(
+      'recipient'   => $recipient->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100),
+    );
+    // Two recipients.
+    $edit2 = array(
+      'recipient'   => $recipient->name . ', ' . $recipient2->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100),
+    );
+    // No recipients.
+    $editnone = array(
+      'recipient'   => '',
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100),
+    );
+    // Invalid recipient
+    $editinvalid = array(
+      'recipient'   => $this->randomName(5),
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100),
+    );
+    // Empty body.
+    $editnobody = array(
+      'recipient'   => $recipient->name,
+      'subject'     => $this->randomName(20),
+      'body'        => '',
+    );
+    // Empty subject.
+    $editnosubject = array(
+      'recipient'   => $recipient->name,
+      'subject'     => '',
+      'body'        => $this->randomName(100),
+    );
+    // Empty subject and body.
+    $editempty = array(
+      'recipient'   => $recipient->name,
+      'subject'     => '',
+      'body'        => '',
+    );
+    // Empty subject and body.
+    $editonlyspace = array(
+      'recipient'   => $recipient2->name,
+      'subject'     => ' ',
+      'body'        => $this->randomName(10),
+    );
+    // Invalid and valid recipient
+    $editmixed = array(
+      'recipient'   => ($invalidmixed = $this->randomName(5)) . ', ' . $recipient->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100),
+    );
+
+    // message with a bold part, not allowed with default format
+    $editformatted = array(
+      'recipient'   => $recipient2->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100) . '<b>formatted message #1</b>',
+      'format'      => 2,
+    );
+
+    // Submit the messages.
+    $this->drupalPost('messages/new', $edit, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient->name)), 'Message sent confirmation displayed.');
+
+    $this->drupalPost('messages/new', $edit2, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => implode(', ', array($recipient->name, $recipient2->name)))), 'Message sent confirmation displayed.');
+
+    $this->drupalPost('messages/new', $editnone, t('Send message'));
+    $this->assertText(t('Disallowed to send a message without at least one valid recipient'), 'Message was not sent.');
+
+    $this->drupalPost('messages/new', $editinvalid, t('Send message'));
+    $this->assertText(t('Disallowed to send a message without at least one valid recipient'), 'Message was not sent.');
+    $this->assertText(t('The following users will not receive this private message: @recipients', array('@recipients' => $editinvalid['recipient'])), 'Message about non-existing user displayed.');
+
+    $this->drupalPost('messages/new', $editnobody, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient->name)), 'Message sent confirmation displayed.');
+
+    $this->drupalPost('messages/new', $editnosubject, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient->name)), 'Message sent confirmation displayed.');
+
+    $this->drupalPost('messages/new', $editempty, t('Send message'));
+    $this->assertText(t('Disallowed to send a message without subject'), 'Empty subject message displayed.');
+
+    $this->drupalPost('messages/new', $editonlyspace, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient2->name)), 'Message sent confirmation displayed.');
+
+    $this->drupalPost('messages/new', $editmixed, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient->name)), 'Message sent confirmation displayed.');
+    $this->assertText(t('The following users will not receive this private message: @recipients', array('@recipients' => $invalidmixed)), 'Message about non-existing user displayed.');
+
+    $this->drupalPost('messages/new', $editformatted, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient2->name)), 'Message sent confirmation displayed.');
+
+    // Login as recipient2 and try to write some replies.
+    $this->drupalLogin($recipient2);
+    $this->drupalGet('messages');
+
+    // Check that the message with only a space in the subject uses the body
+    // as subject.
+    $this->clickLink($editonlyspace['body']);
+    $this->drupalGet('messages');
+
+    $this->assertNoText($edit['subject'], 'Message sent to other recipient not found.');
+    $this->assertText($edit2['subject'], 'Sent message subject found.');
+    $this->clickLink($edit2['subject']);
+
+    $this->assertText($edit2['body'], 'Found message body.');
+
+    // Prepare replies.
+    $reply = array(
+      'body' => $this->randomName(100),
+    );
+    // Empty body.
+    $replyempty = array(
+      'body' => '',
+    );
+
+    $this->drupalPost(NULL, $reply, t('Send message'));
+    $this->assertText($reply['body'], 'New message body displayed.');
+
+    $this->drupalPost(NULL, $replyempty, t('Send message'));
+    $this->assertText(t('Disallowed to send reply without a message.'));
+
+    // reply with a bold part, not allowed with default format
+    $replyformatted = array(
+      'body' => $this->randomName(100) . '<b>formatted message #2</b>',
+    );
+    $this->drupalGet('messages');
+    $this->clickLink($editformatted['subject']);
+    $this->assertRaw($editformatted['body'], 'Found formatted message body.');
+
+    $this->drupalPost(NULL, $replyformatted, t('Send message'));
+    $this->assertNoRaw($replyformatted['body'], 'Did not find formatted reply body.');
+    $this->assertText(strip_tags($replyformatted['body']), 'New reply body displayed.');
+
+    // Login using recipient and try to read the message by going to inbox first.
+    $this->drupalLogin($recipient);
+    $this->drupalGet('messages');
+
+    // Assert if we see the subject of the messages.
+    $this->assertText($edit['subject'], 'Sent message subject found.');
+    $this->assertText($edit2['subject'], 'Sent message subject found.');
+    $this->assertText($editnobody['subject'], 'Sent message subject found.');
+    $this->assertText(trim(truncate_utf8(strip_tags($editnosubject['body']), 50, TRUE, TRUE)), 'Sent message subject found.');
+    $this->assertText($editmixed['subject'], 'Sent message subject found.');
+
+    // Assert that we don't see those that were invalid.
+    $this->assertNoText($editnone['subject'], 'Invalid message subject not found.');
+    $this->assertNoText($editinvalid['subject'], 'Invalid message subject not found.');
+
+    // Navigate into the message.
+    $this->clickLink($edit['subject']);
+    // Confirm that we can read the message that was sent.
+    $this->assertText($edit['body'], 'Found message body.');
+    $this->assertNoText(t('Reply to thread:'), 'Reply form is not displayed.');
+
+    // Navigate into the message.
+    $this->drupalGet('messages');
+    $this->clickLink($edit2['subject']);
+    // Confirm that we can read the message that was sent.
+    $this->assertText($edit2['body'], 'Found message body.');
+    // Confirm that we can read the reply that was sent.
+    $this->assertText($reply['body'], 'Found reply body.');
+  }
+
+  /**
+   * Test correct handling of read all permissions.
+   */
+  function testReadAllPermission() {
+    $author    = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+    $recipient = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+    $admin     = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'read all private messages'));
+
+    // Create new message.
+    $edit = array(
+      'recipient'   => $recipient->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100),
+    );
+    $this->drupalLogin($author);
+    $this->drupalPost('messages/new', $edit, t('Send message'));
+
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient->name)), t('Message sent confirmation displayed'));
+
+    $this->drupalLogin($admin);
+    $this->drupalGet('messages/view/1');
+
+    $this->assertText(t('This conversation is being viewed with escalated priviledges and may not be the same as shown to normal users.'), t('Notice about read all mode displayed.'));
+
+    // Send a first response.
+    $admin_edit = array(
+      'body'        => $this->randomName(100),
+    );
+    $this->drupalPost('messages/view/1', $admin_edit, t('Send message'));
+
+    // Make sure that the notice is not displayed anymore.
+    $this->assertNoText(t('This conversation is being viewed with escalated priviledges and may not be the same as shown to normal users.'), t('Notice about read all mode not displayed.'));
+
+    // Make sure that both the existing message body and the new one are displayed.
+    $this->assertText($edit['body'], t('First message body displayed.'));
+    $this->assertText($admin_edit['body'], t('New message body displayed.'));
+
+    $admin_recipient_count = db_result(db_query("SELECT COUNT(*) FROM {pm_index} WHERE uid = %d AND thread_id = %d", $admin->uid, 1));
+    $this->assertEqual($admin_recipient_count, 2, t('Admin is listed as recipient for every message once.'));
+
+
+    // Send a second response.
+    $admin_edit2 = array(
+      'body'        => $this->randomName(100),
+    );
+    $this->drupalPost('messages/view/1', $admin_edit2, t('Send message'));
+
+    // Make sure that both the existing message body and the new one are displayed.
+    $this->assertText($edit['body'], t('First message body displayed.'));
+    $this->assertText($admin_edit['body'], t('Second response body displayed.'));
+    $this->assertText($admin_edit2['body'], t('Third message body displayed.'));
+
+    $admin_recipient_count = db_result(db_query("SELECT COUNT(*) FROM {pm_index} WHERE uid = %d AND thread_id = %d", $admin->uid, 1));
+    $this->assertEqual($admin_recipient_count, 3, t('Admin is listed as recipient for every message once.'));
+
+  }
+
+  /**
+   * Tests for the flush feature
+   */
+  function testPrivatemsgFlush() {
+    $author = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+    $recipient = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+
+    // Send 10 messages.
+    for ($i = 0; $i < 10; $i++) {
+      privatemsg_new_thread(array($recipient), 'Message #'. $i, 'This is the body', array('author' => $author));
+    }
+
+    // Delete message 1, 3, 4, 6, 9 for author.
+    foreach (array(1, 3, 4, 6, 9) as $pmid) {
+      privatemsg_message_change_delete($pmid, TRUE, $author);
+    }
+
+    // Delete message 1, 2, 4, 6, 8 for recipient.
+    foreach (array(1, 3, 4, 6, 9) as $pmid) {
+      privatemsg_message_change_delete($pmid, TRUE, $recipient);
+    }
+
+    // Now, mid 1, 4 and 6 have been deleted by both.
+
+    // Flush configuration, enable, delay is default, 30 days
+    variable_set('privatemsg_flush_enabled', TRUE);
+
+    // Set back the deleted timestamp 35 days back of mid 4.
+    db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = 4',  time() - 35 * 86400);
+    // Set back the deleted timestamp of mid 6, but only 20 back.
+    db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = 6', time() - 20 * 86400);
+
+    // Run flush.
+    privatemsg_cron();
+
+    // Check if the undeleted messages are still there.
+    foreach (array(2, 3, 5, 7, 8, 9, 10) as $pmid) {
+      $message = privatemsg_message_load($pmid, $author);
+      $this->assertTrue(!empty($message), t('Undeleted message #%id is still in the system', array('%id' => $pmid)));
+    }
+
+    // Check if the "recently" deleted  messages are still there.
+    foreach (array(1, 6) as $pmid) {
+      $message = privatemsg_message_load($pmid, $author);
+      $this->assertTrue(!empty($message), t('Deleted message #%id is still in the system', array('%id' => $pmid)));
+    }
+
+    // Mid 4 should have been flushed.
+    $message = privatemsg_message_load(4, $author);
+    $this->assertTrue(empty($message), t('Message #4 has been flushed'));
+  }
+
+  function testDelete() {
+    // Create users.
+    $author = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'delete privatemsg'));
+    $recipient = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'delete privatemsg'));
+    $recipient2 = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+    $admin = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'delete privatemsg', 'read all private messages'));
+
+    // Create texts.
+    $subject = $this->randomName(20);
+    $body1 = $this->randomName(100);
+    $body2 = $this->randomName(100);
+
+    // Create message and response.
+    $return = privatemsg_new_thread(array($recipient, $recipient2), $subject, $body1, array('author' => $author));
+    privatemsg_reply($return['message']['thread_id'], $body2, array('author' => $recipient));
+
+    // Check with user without delete permission.
+    $this->drupalLogin($recipient2);
+    $this->drupalGet('messages/view/' . $return['message']['thread_id']);
+    $this->assertText($subject, 'Subject is displayed');
+    $this->assertText($body1, 'First message is displayed');
+    $this->assertText($body2, 'Second message is displayed');
+    $this->assertNoText(t('Delete message'), 'Delete message is link is not displayed for user without permission');
+
+    // Check if access for that user is denied.
+    $this->drupalGet('messages/delete/' . $return['message']['thread_id'] . '/' . $return['message']['mid']);
+    $this->assertText(t('Access denied'));
+
+    // Check with user with delete access.
+    $this->drupalLogin($recipient);
+    $this->drupalGet('messages/view/' . $return['message']['thread_id']);
+    $this->assertText(t('Delete message'), 'Delete message is link is displayed for user without permission');
+
+    // Click delete link of the second message and cancel.
+    $this->clickLink(t('Delete message'), 1);
+    $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
+    $this->clickLink(t('Cancel'));
+    $this->assertText($body2, 'Second message is still displayed');
+
+    // Confirm message deletion.
+    $this->clickLink(t('Delete message'), 1);
+    $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
+    $this->drupalPost(NULL, array(), t('Delete'));
+    $this->assertText(t('Message has been deleted.'), 'Message has been deleted');
+    $this->assertText($body1, 'First message is still displayed');
+    $this->assertNoText($body2, 'Second message was deleted');
+    
+    // Click delete link of the first message and cancel.
+    $this->clickLink(t('Delete message'));
+    $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
+    $this->clickLink(t('Cancel'));
+    $this->assertText($body1, 'First message is still displayed');
+
+    // Confirm message deletion.
+    $this->clickLink(t('Delete message'));
+    $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
+    $this->drupalPost(NULL, array(), t('Delete'));
+    $this->assertText(t('Message has been deleted.'), 'Message deleted has been deleted');
+    $this->assertNoText($subject, 'All messages of that thread have been deleted');
+
+    // Test if the message has not been deleted for other users.
+    $this->drupalLogin($recipient2);
+    $this->drupalGet('messages/view/' . $return['message']['thread_id']);
+    $this->assertText($body1, 'First message is still displayed');
+    $this->assertText($body2, 'First message is still displayed');
+
+    // Test delete all checkbox.
+    $this->drupalLogin($admin);
+    $this->drupalGet('messages/view/' . $return['message']['thread_id']);
+    $this->clickLink(t('Delete message'), 1);
+    $this->drupalPost(NULL, array('delete_options' => TRUE), t('Delete'));
+    $this->assertText(t('Message has been deleted for all users.'), 'Message deleted has been deleted');
+
+    // Test if the message has been deleted for all users.
+    $this->drupalLogin($recipient2);
+    $this->drupalGet('messages/view/' . $return['message']['thread_id']);
+    $this->assertText($body1, 'First message is still displayed');
+    $this->assertNoText($body2, 'Second message has been deleted for all users');
+
+    // Check that messages of deleted users are hidden.
+    $edit = array('body' => $this->randomName(100));
+    $this->drupalPost(NULL, $edit, t('Send message'));
+
+    $this->drupalLogin($admin);
+    $this->drupalGet('messages/view/' . $return['message']['thread_id']);
+    $this->assertText($edit['body'], t('New reply is displayed'));
+    user_delete(array(), $recipient2->uid);
+    $this->drupalGet('messages/view/' . $return['message']['thread_id']);
+    $this->assertText($body1, 'First message is still displayed');
+    $this->assertNoText($edit['body'], t('Reply of deleted user is not displayed anymore'));
+  }
+
+  /**
+   * Test preview functionality.
+   */
+  function testPreview() {
+    $user = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg'));
+
+    $message = array(
+      'recipient' => $user->name,
+      'subject' => $this->randomName(),
+      'body' => $this->randomName(50),
+    );
+    $this->drupalLogin($user);
+    $this->drupalPost('messages/new', $message, t('Preview message'));
+    $this->assertTitle(t('Write new message to @user', array('@user' => $user->name)) . ' | Drupal', t('Correct title is displayed.'));
+    $this->assertFieldByXPath("//div[@class='message-body']/p", $message['body'], t('Message body is previewed'));
+  }
+}
+
+/**
+ * Tests for node, blocks and profile integration.
+ */
+class PrivatemsgLinksTestCase extends DrupalWebTestCase {
+
+  /**
+   * Implements of getInfo().
+   */
+  public function getInfo() {
+    return array
+    (
+      'name' => t('Privatemsg links'),
+      'description' => t('Tests links displayed in nodes, profiles and blocks.'),
+      'group' => t('Privatemsg'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  function setUp() {
+    parent::setUp('privatemsg');
+  }
+
+  /**
+   * Tests menu block.
+   */
+  function testMenuBlock() {
+    $admin = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg', 'administer privatemsg settings', 'administer blocks', 'administer menu'));
+    $user = $this->drupalCreateUser(array('read privatemsg'));
+
+    // Enable block.
+    $this->drupalLogin($admin);
+    $blocks = array(
+      'privatemsg_privatemsg-menu[region]' => 'right',
+    );
+    $this->drupalPost('admin/build/block', $blocks, t('Save blocks'));
+
+    // Disable secondary menu.
+    /* @todo: Not yet possible because simpletest needs a log out link to verify that the user is logged in.
+    $menu_settings = array(
+      'menu_secondary_links_source' => '',
+    );
+    $this->drupalPost('admin/structure/menu/settings', $menu_settings, t('Save configuration'));
+     *
+     */
+
+    $this->drupalGet('');
+    $this->assertRaw('<h2>Private messages</h2>', t('Privatemsg menu block title displayed.'));
+    $this->assertText('Write new message', t('Write new message link displayed.'));
+
+    $message = array(
+      'recipient' => $user->name,
+      'subject' => $this->randomName(),
+      'body' => $this->randomName(50),
+    );
+    $this->drupalPost('messages/new', $message, t('Send message'));
+
+    $this->drupalLogin($user);
+    $this->assertNoText(t('Write new message'), t('Write new message link not displayed.'));
+    $this->assertNoUniqueText(t('Messages (1 new)'), t('Messages link including new message information displayed'));
+  }
+
+  /**
+   * Tests menu block.
+   */
+  function testNewBlock() {
+    $admin = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg', 'administer privatemsg settings', 'administer blocks', 'administer menu'));
+    $user = $this->drupalCreateUser(array('read privatemsg'));
+
+    // Enable block.
+    $this->drupalLogin($admin);
+    $blocks = array(
+      'privatemsg_privatemsg-new[region]' => 'right',
+    );
+    $this->drupalPost('admin/build/block', $blocks, t('Save blocks'));
+
+    $this->drupalGet('');
+    $this->assertNoRaw('<h2>New message</h2>', t('Privatemsg new block title not displayed.'));
+
+    $message = array(
+      'recipient' => $user->name,
+      'subject' => $this->randomName(),
+      'body' => $this->randomName(50),
+    );
+    $this->drupalPost('messages/new', $message, t('Send message'));
+
+    $this->drupalLogin($user);
+    $this->assertRaw('<h2>New message</h2>', t('Privatemsg new block title displayed.'));
+
+    $this->assertText(t('You have a new message, click here to read it'), t('New message indication displayed.'));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.theme.inc b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.theme.inc
new file mode 100644
index 0000000..0e8e4d7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg.theme.inc
@@ -0,0 +1,308 @@
+<?php
+
+/**
+ * @file
+ * Theme functions for privatemsg.
+ */
+
+/**
+ * @defgroup theming Theming documentation
+ *
+ * It is possible to theme every aspect of privatemsg with theme functions.
+ *
+ * For the thread list, so called theme patterns are used to allow flexible
+ * theming of the table and its columns (including columns added by other
+ * modules).
+ *
+ * Three requirements have to be fulfilled so a new column, with data, is
+ * displayed in the private message list:
+ *  - A field needs to be returned by the list query, see @link sql Query Builder @endlink.
+ *  - A header theme pattern needs to exist for the field.
+ *  - A field theme pattern needs to exist for the field.
+ *
+ * For each field in the query, Privatemsg will try to call a theme pattern for
+ * the header. That theme function can return a table header definition and
+ * has the following structure: phptemplate_privatemsg_header_fieldname.
+ * @see theme_privatemsg_list_header()
+ *
+ * Privatemsg will then do the same for each row, with the field theme pattern.
+ * That theme function should return a table field compatible structure, either
+ * just a string or an array. The theme function has to have the following
+ * name: phptemplate_privatemsg_header_fieldname.
+ * @see theme_privatemsg_list_field()
+ *
+ * To override an already existing theme function, use the following structure:
+ * themename_privatemsg_list_field_fieldname. It is not necessary to
+ * overwrite the header theme function unless that information needs to be
+ * changed too.
+ *
+ * Modules can use the hook_form_alter() hook to alter the data. The form with
+ * id "privatemsg_list" will contain the header, raw and themed field data in
+ * the following form:
+ * @code
+ * $form['#headers']['field_name'] = $header // Array with the header defintion;
+ * $form['#data']['thread_id'] = $data // Raw data of that thread
+ * $form['#rows']['thread_id'] = $row // Themed fields of that thread
+ * @endcode
+ *
+ * Note that the information in #data can be used to populate #rows, but it will
+ * not be used by the default theme function theme_privatemsg_list().
+ */
+
+/**
+ * @addtogroup theming
+ * @{
+ */
+
+/**
+ * Default theme function for field theme.
+ *
+ * To hide all fields that don't have an explicit theme pattern defined, this
+ * theme doesn't return anything.
+ *
+ * @param $thread
+ *   Thread row returned by the list query.
+ *
+ * @return
+ *   A theme_table() compatible field definition.
+ */
+function theme_privatemsg_list_field($thread) {
+}
+
+/**
+ * Theme the participants field.
+ *
+ * @see theme_privatemsg_list_field()
+ */
+function phptemplate_privatemsg_list_field__participants($thread) {
+  $participants = _privatemsg_generate_user_array($thread['participants'], -4);
+  $field = array();
+  $field['data'] = _privatemsg_format_participants($participants, 3, TRUE);
+  $field['class'] = 'privatemsg-list-participants';
+  return $field;
+}
+
+/**
+ * Theme the subject of the thread.
+ *
+ * @see theme_privatemsg_list_field()
+ */
+function phptemplate_privatemsg_list_field__subject($thread) {
+  $field = array();
+  $options = array();
+  $is_new = '';
+  if (!empty($thread['is_new'])) {
+    $is_new = theme_mark(MARK_NEW);
+    $options['fragment'] = 'new';
+  }
+  $field['data'] = l($thread['subject'], 'messages/view/' . $thread['thread_id'], $options) . $is_new;
+  $field['class'] = 'privatemsg-list-subject';
+  return $field;
+}
+
+/**
+ * Theme the replies field.
+ *
+ * @see theme_privatemsg_list_field()
+ */
+function phptemplate_privatemsg_list_field__count($thread) {
+  $field = array();
+  $field['data'] = $thread['count'];
+  $options = array();
+  if (!empty($thread['is_new']) && $thread['is_new'] < $thread['count']) {
+    $options['fragment'] = 'new';
+    $field['data'] .= '<br />' . l((format_plural($thread['is_new'], '(1 new)', '(@count new)')), 'messages/view/' . $thread['thread_id'], $options);
+  }
+  $field['class'] = 'privatemsg-list-count';
+  return $field;
+}
+
+/**
+ * Theme the last updated column.
+ *
+ * @see theme_privatemsg_list_field()
+ */
+function phptemplate_privatemsg_list_field__last_updated($thread) {
+  $field = array();
+  $field['data'] = format_date($thread['last_updated'], 'small');
+  $field['class'] = 'privatemsg-list-date';
+  return $field;
+}
+
+/**
+ * Theme the thread started column.
+ *
+ * @see theme_privatemsg_list_field()
+ */
+function phptemplate_privatemsg_list_field__thread_started($thread) {
+  $field = array();
+  $field['data'] = format_date($thread['thread_started'], 'small');
+  $field['class'] = 'privatemsg-list-date-started';
+  return $field;
+}
+
+/**
+ * Define the table header for a specific column.
+ *
+ * This default theme function is used to ignore columns that should not be
+ * displayed. Only columns with a specific theme pattern function are displayed.
+ *
+ * @return
+ *   A theme_table() compatible table header definition. Additionally, the key
+ *   "key" should be used to specify which row column should be displayed in
+ *   this column.
+ */
+function theme_privatemsg_list_header() {
+
+}
+
+/**
+ * Define the subject header.
+ *
+ * @see theme_privatemsg_list_header()
+ */
+function phptemplate_privatemsg_list_header__subject() {
+  return array(
+    'data'    => t('Subject'),
+    'field'   => 'subject',
+    'key'     => 'subject',
+    'class'   => 'privatemsg-header-subject',
+    '#weight' => -40,
+  );
+}
+
+/**
+ * Define the answers column.
+ *
+ * @see theme_privatemsg_list_header()
+ */
+function phptemplate_privatemsg_list_header__count() {
+  return array(
+    'data'    => t('Messages'),
+    'key'     => 'count',
+    'class'   => 'privatemsg-header-count',
+    '#weight' => -25,
+  );
+}
+
+/**
+ * Define the participants column.
+ *
+ * @see theme_privatemsg_list_header()
+ */
+function phptemplate_privatemsg_list_header__participants() {
+  return array(
+    'data'    => t('Participants'),
+    'key'     => 'participants',
+    'class'   => 'privatemsg-header-participants',
+    '#weight' => -30,
+  );
+}
+
+/**
+ * Define the last updated column.
+ *
+ * @see theme_privatemsg_list_header()
+ */
+function phptemplate_privatemsg_list_header__last_updated() {
+  return array(
+    'data'    => t('Last Updated'),
+    'field'   => 'last_updated',
+    'key'     => 'last_updated',
+    'sort'    => 'desc',
+    'class'   => 'privatemsg-header-lastupdated',
+    '#weight' => -20,
+  );
+}
+
+/**
+ * Define the thread started column.
+ *
+ * @see theme_privatemsg_list_header()
+ */
+function phptemplate_privatemsg_list_header__thread_started() {
+  return array(
+    'data'    => t('Started'),
+    'field'   => 'thread_started',
+    'key'     => 'thread_started',
+    'class'   => 'privatemsg-header-threadstarted',
+    '#weight' => -15,
+  );
+}
+
+/**
+ * Theme to display the privatemsg list.
+ *
+ * This theme builds a table with paging based on the data which has been built
+ * by the header and field theme patterns.
+ */
+function theme_privatemsg_list($form) {
+  $has_posts = !empty($form['#data']);
+
+  drupal_add_css(drupal_get_path('module', 'privatemsg') .'/styles/privatemsg-list.css');
+
+  // Load the table columns.
+  $columns = array_merge(array('subject', 'last_updated'), array_filter(variable_get('privatemsg_display_fields', array('participants'))));
+
+  // Load the themed list headers based on the available data.
+  $headers = _privatemsg_list_headers(!empty($form['#data']), $columns);
+  // sort the headers array based on the #weight property.
+  usort($headers, 'element_sort');
+
+  $themed_rows = array();
+  // Check if there is atleast a single thread.
+  if ($has_posts) {
+    foreach ($form['#data'] as $thread_id => $data) {
+      // Theme the row.
+      $row = _privatemsg_list_thread($data);
+      $data = array();
+      // Render the checkbox.
+      $data[] = array('data' => drupal_render($form['threads'][$thread_id]), 'class' => 'privatemsg-list-select');
+
+      // Store the #rows data in the same order as the header is, the key property of the header refers to the field that belongs to it.
+      foreach ($headers as $header) {
+        if (!empty($header['key'])) {
+          if (isset($row['data'][$header['key']])) {
+            $data[] = $row['data'][$header['key']];
+          }
+          else {
+            // Store a empty value so that the order is still correct.
+            $data[] = '';
+          }
+        }
+      }
+      // Replace the data
+      $row['data'] = $data;
+      $themed_rows[] = $row;
+    }
+  }
+  else {
+    // Display a message if now messages are available.
+    $themed_rows[] = array(array('data' => t('No messages available.'), 'colspan' => count($headers)));
+  }
+
+  // Remove any data in header that we don't need anymore.
+  foreach ($headers as $id => $header) {
+    unset($headers[$id]['key']);
+    unset($headers[$id]['#weight']);
+  }
+
+  // Theme the table, pass all generated information to the table theme function.
+  $form['list'] = array('#value' => theme('table', $headers, $themed_rows, array('class' => 'privatemsg-list')), '#weight' => 5);
+  return drupal_render($form);
+}
+
+/**
+ * Theme a block which displays the number of new messages a user has.
+ */
+function theme_privatemsg_new_block($count) {
+  $text = format_plural($count, 'You have a new message, click here to read it',
+                        'You have @count new messages, click here to read them',
+                        array('@count' => $count));
+
+  return l($text, 'messages', array('attributes' => array('id' => 'privatemsg-new-link')));
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg-filter-list.js b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg-filter-list.js
new file mode 100644
index 0000000..e9e1f63
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg-filter-list.js
@@ -0,0 +1,12 @@
+Drupal.behaviors.tagActionButtons = function (context) {
+  $("div.privatemsg-tag-add-submit").hide();
+  $("div.privatemsg-tag-remove-submit").hide();
+
+  $('#privatemsg-list #edit-tag-add').change(function () {
+    $('#edit-tag-add-submit').click();
+  });
+
+  $('#privatemsg-list #edit-tag-remove').change(function () {
+    $('#edit-tag-remove-submit').click();
+  });
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.admin.inc b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.admin.inc
new file mode 100644
index 0000000..2ee6166
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.admin.inc
@@ -0,0 +1,172 @@
+<?php
+
+/**
+ * @file
+ * Admin menu callbacks for privatemsg_filter module.
+ */
+
+/**
+ * Display a list of tags to administer them.
+ */
+function privatemsg_tags_admin() {
+  drupal_set_title(t('Tags'));
+
+  $header = array(
+    'tag' => array(
+      'data'    => t('Tag'),
+      'field'   => 'tag',
+      'class'   => 'privatemsg-filter-header-tag',
+      'sort'    => 'asc',
+      '#weight' => -40,
+    ),
+    'usage' => array(
+      'data'    => t('Usage'),
+      'field'   => 'count',
+      'class'   => 'privatemsg-filter-header-usage',
+      '#weight' => -30,
+    ),
+    'public' => array(
+      'data'    => t('Public'),
+      'field'   => 'public',
+      'class'   => 'privatemsg-filter-header-public',
+      '#weight' => -20,
+    ),
+    'operations' => array(
+      'data'    => t('Operations'),
+      'class'   => 'privatemsg-filter-header-operations',
+      '#weight' => -10,
+    ),
+  );
+  $query = _privatemsg_assemble_query(array('tags', 'privatemsg_filter'));
+  $result = pager_query($query['query'] . tablesort_sql($header), 100);
+
+  $rows = array();
+  while ($tag = db_fetch_array($result)) {
+    $row = array();
+    $row['tag'] = check_plain($tag['tag']);
+    $row['count'] = $tag['count'];
+    $row['public'] = $tag['public'] ? t('Yes') : '-';
+    $row['operations'] = l(t('edit'), 'admin/settings/messages/tags/edit/' . $tag['tag_id']);
+    $row['operations'] .= ' ' . l(t('delete'), 'admin/settings/messages/tags/delete/' . $tag['tag_id']);
+
+    $rows[] = $row;
+  }
+
+  if (empty($rows)) {
+    // Display a message if now tags are available.
+    $rows[] = array(array('data' => t('No tags available.'), 'colspan' => count($header)));
+  }
+
+  return theme('table', $header, $rows) . theme('pager');
+}
+
+/**
+ * A form to edit existing or create new tags.
+ *
+ * @param $form_state
+ *   Form state array
+ * @param $tag_id
+ *   Tag Id if an edit form should be displayed, NULL for a create
+ *   new tag form.
+ */
+function privatemsg_tags_form(&$form_state, $tag_id = NULL) {
+  $form = array();
+
+  if ($tag_id) {
+    $tag = db_fetch_array(db_query('SELECT * from {pm_tags} pmt WHERE pmt.tag_id = %d', $tag_id));
+    $form['tag_id'] = array(
+      '#value' => $tag_id,
+      '#type' => 'value',
+    );
+    drupal_set_title(t('Edit @tag', array('@tag' => $tag['tag'])));
+  }
+
+  $form['tag'] = array(
+    '#title' => t('Name'),
+    '#type' => 'textfield',
+    '#default_value' => empty($tag_id) ? NULL : $tag['tag'],
+  );
+
+  $form['public'] = array(
+    '#title' => t('Public'),
+    '#type' => 'checkbox',
+    '#default_value' => empty($tag_id) ? TRUE : $tag['public'],
+    '#description' => t('Public tags are visible for all users, private tags are only visible if they use them.'),
+  );
+
+  $form['submit'] = array(
+    '#value' => empty($tag_id) ? t('Create tag') : t('Save tag'),
+    '#type'  => 'submit',
+  );
+
+  return $form;
+}
+
+/**
+ * Form validate function for tags admin page.
+ *
+ * Make sure that a tag name is unique.
+ */
+function privatemsg_tags_form_validate($form, &$form_state) {
+  $tag_id = isset($form_state['values']['tag_id']) ? $form_state['values']['tag_id'] : 0;
+  if ($tag_id) {
+    // We are editing an existing tag, exclude the current tag from the search.
+    $exists = db_result(db_query("SELECT 1 FROM {pm_tags} WHERE tag = '%s' AND tag_id <> %d", $form_state['values']['tag'], $tag_id));
+  }
+  else {
+    $exists = db_result(db_query("SELECT 1 FROM {pm_tags} WHERE tag = '%s'", $form_state['values']['tag']));
+  }
+  if ($exists) {
+    form_set_error('tag', t('Tag already exists, choose a different name.'));
+  }
+}
+
+/**
+ * Form submit handler for add/edit forms.
+ */
+function privatemsg_tags_form_submit($form, &$form_state) {
+  if (!empty($form_state['values']['tag_id'])) {
+    // Tag already exists, update the existing tag.
+    db_query("UPDATE {pm_tags} SET tag = '%s', public = %d WHERE tag_id = %d", $form_state['values']['tag'], $form_state['values']['public'], $form_state['values']['tag_id']);
+    drupal_set_message(t('Tag updated.'));
+    $form_state['redirect'] = 'admin/settings/messages/tags';
+  }
+  else {
+    // Tag does not yet exist, create a new one.
+    db_query("INSERT INTO {pm_tags} (tag, public) VALUES ('%s', %d)", $form_state['values']['tag'], $form_state['values']['public']);
+    drupal_set_message(t('Tag created.'));
+  }
+}
+
+/**
+ * Confirmation form for deleting tags.
+ *
+ * @param $tag_id
+ *   Id of the tag that should be deleted.
+ */
+function privatemsg_filter_tags_delete(&$form_state, $tag_id) {
+  $form['tag_id'] = array(
+    '#type' => 'value',
+    '#value' => $tag_id,
+  );
+  return confirm_form($form,
+    t('Are you sure you want to delete?'),
+    isset($_GET['destination']) ? $_GET['destination'] : 'admin/settings/messages/tags',
+    t('This action cannot be undone.'),
+    t('Delete'),
+    t('Cancel')
+  );
+}
+
+/**
+ * Submit handler for the confirm delete form.
+ */
+function privatemsg_filter_tags_delete_submit($form, &$form_state) {
+  if ($form_state['values']['confirm']) {
+    db_query('DELETE FROM {pm_tags} WHERE tag_id = %d', $form_state['values']['tag_id']);
+    db_query('DELETE FROM {pm_tags_index} WHERE tag_id = %d', $form_state['values']['tag_id']);
+
+    drupal_set_message(t('Tag has been deleted'));
+  }
+  $form_state['redirect'] = 'admin/settings/messages/tags';
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.css b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.css
new file mode 100644
index 0000000..a866826
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.css
@@ -0,0 +1,9 @@
+
+form#privatemsg-filter-dropdown #edit-author-wrapper, form#privatemsg-filter-dropdown #edit-tags-wrapper {
+  float: left;
+  margin-right: 3em;
+}
+
+form#privatemsg-filter-dropdown #privatemsg-filter-buttons {
+  clear: left;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.info b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.info
new file mode 100644
index 0000000..a3bf287
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.info
@@ -0,0 +1,13 @@
+name = Privatemsg filter
+description = Allow users to filter messages using tags or other criteria.
+package = Mail
+core = 6.x
+dependencies[] = privatemsg
+
+
+; Information added by drupal.org packaging script on 2011-06-19
+version = "6.x-1.5-boinc-1-dev"
+core = "6.x"
+project = "privatemsg"
+datestamp = "1393530079"
+
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.install b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.install
new file mode 100644
index 0000000..462fad7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.install
@@ -0,0 +1,115 @@
+<?php
+
+/**
+ * @file
+ * install file for privatemsg_filter
+ */
+
+
+function privatemsg_filter_schema() {
+  $schema = array();
+
+  $schema['pm_tags'] = array(
+    'description'       => '{pm_tags} holds the names of tags and their id.',
+    'fields'        => array(
+      'tag_id'    => array(
+        'description'   => 'Tag ID',
+        'type'          => 'serial',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'tag'     => array(
+        'description'   => 'The name of the tag',
+        'type'          => 'varchar',
+        'length'        => 255,
+        'not null'      => TRUE,
+      ),
+      'public'    => array(
+        'description'   => 'Defines if a tag is public (visible for all users)',
+        'type'          => 'int',
+        'unsigned'      => TRUE,
+        'size'          => 'tiny',
+        'default'       => 0,
+      ),
+    ),
+    'primary key' => array('tag_id'),
+    'indexes'     => array(
+      'tag_list'    => array('tag_id', 'tag', 'public'),
+    ),
+  );
+
+  $schema['pm_tags_index'] = array(
+    'description'       => '{pm_tags_index} holds mapping information between tags, threads the users.',
+    'fields'        => array(
+      'tag_id'    => array(
+        'description'   => 'Tag ID',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'uid'    => array(
+        'description'   => 'ID of the user',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+      'thread_id'    => array(
+        'description'   => 'id of the thread',
+        'type'          => 'int',
+        'not null'      => TRUE,
+        'unsigned'      => TRUE,
+      ),
+    ),
+    'primary key'     => array('tag_id', 'uid', 'thread_id'),
+    'indexes'         => array(
+     'thread_tags'      => array('uid', 'thread_id'),
+    ),
+  );
+
+  return $schema;
+}
+function privatemsg_filter_install() {
+  drupal_install_schema('privatemsg_filter');
+
+}
+
+function privatemsg_filter_uninstall() {
+  variable_del('privatemsg_filter_searchbody');
+  variable_del('privatemsg_filter_tagfield_weight');
+  variable_del('privatemsg_filter_default_list');
+  drupal_uninstall_schema('privatemsg_filter');
+}
+
+function privatemsg_filter_update_6001() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {permission} SET perm = REPLACE(perm, 'use privatemsg_filter', 'filter private messages') WHERE perm LIKE '%use privatemsg_filter%'");
+  $ret[] = update_sql("UPDATE {permission} SET perm = REPLACE(perm, 'create privatemsg_filter', 'create private message tags') WHERE perm LIKE '%create privatemsg_filter%'");
+  return $ret;
+}
+
+function privatemsg_filter_update_6002() {
+  $ret = array();
+  db_add_column($ret, 'pm_tags', 'public', 'int', array(
+    'description'   => 'Defines if a tag is public (visible for all users)',
+    'unsigned'      => TRUE,
+    'size'          => 'tiny',
+    'default'       => 0,
+  ));
+  return $ret;
+}
+
+/**
+ * Add additional index on {pm_tags} and {pm_tags_index}.
+ */
+function privatemsg_filter_update_6003() {
+  $ret = array();
+
+  // Delete unecessary indexes.
+  db_drop_index($ret, 'pm_tags_index', 'uid');
+
+  // Add new indexes.
+  db_add_index($ret, 'pm_tags', 'tag_list', array('tag_id', 'tag', 'public'));
+  db_add_index($ret, 'pm_tags_index', 'thread_tags', array('uid', 'thread_id'));
+
+  return $ret;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.module b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.module
new file mode 100644
index 0000000..75f72b8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.module
@@ -0,0 +1,907 @@
+<?php
+
+/**
+ * @file
+ * Allows users to tag private messages and to filter based upon those tags.
+ */
+
+/**
+ * Implements hook_perm().
+ */
+function privatemsg_filter_perm() {
+  return array(
+    'filter private messages',
+    'tag private messages',
+    'create private message tags',
+  );
+}
+
+/**
+ * Implements hook_menu().
+ */
+function privatemsg_filter_menu() {
+  $items['admin/settings/messages/filter'] = array(
+    'title'            => 'Filter',
+    'description'      => 'Configure filter settings.',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_filter_admin'),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_LOCAL_TASK,
+  );
+  $items['admin/settings/messages/tags'] = array(
+    'title'            => 'Tags',
+    'description'      => 'Configure tags.',
+    'page callback'    => 'privatemsg_tags_admin',
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_LOCAL_TASK,
+    'file'             => 'privatemsg_filter.admin.inc',
+  );
+  $items['admin/settings/messages/tags/list'] = array(
+    'title'            => 'List',
+    'description'      => 'Configure tags.',
+    'page callback'    => 'privatemsg_tags_admin',
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_DEFAULT_LOCAL_TASK,
+    'file'             => 'privatemsg_filter.admin.inc',
+    'weight'           => -10,
+  );
+  $items['admin/settings/messages/tags/add'] = array(
+    'title'            => 'Add',
+    'description'      => 'Configure tags.',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_tags_form'),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_LOCAL_TASK,
+    'file'             => 'privatemsg_filter.admin.inc',
+  );
+  $items['admin/settings/messages/tags/edit/%'] = array(
+    'title'            => 'Add',
+    'description'      => 'Configure tags.',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_tags_form', 5),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_CALLBACK,
+    'file'             => 'privatemsg_filter.admin.inc',
+  );
+  $items['admin/settings/messages/tags/delete/%'] = array(
+    'title'            => 'Add',
+    'description'      => 'Configure tags.',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_filter_tags_delete', 5),
+    'access arguments' => array('administer privatemsg settings'),
+    'type'             => MENU_CALLBACK,
+    'file'             => 'privatemsg_filter.admin.inc',
+  );
+  $items['messages/inbox'] = array(
+    'title'            => 'Inbox',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_list', 'inbox'),
+    'access callback'  => 'privatemsg_user_access',
+    'type'             => variable_get('privatemsg_filter_default_list', 0) ? MENU_LOCAL_TASK : MENU_DEFAULT_LOCAL_TASK,
+    'weight'           => -15,
+  );
+  $items['messages/sent'] = array(
+    'title'            => 'Sent messages',
+    'page callback'    => 'drupal_get_form',
+    'page arguments'   => array('privatemsg_list', 'sent'),
+    'access callback'  => 'privatemsg_user_access',
+    'type'             => MENU_LOCAL_TASK,
+    'weight'           => -12,
+  );
+  $items['messages/filter/user-name-autocomplete'] = array(
+    'page callback'    => 'privatemsg_user_name_autocomplete',
+    'access callback'  => 'privatemsg_user_access',
+    'access arguments' => array('write privatemsg'),
+    'type'             => MENU_CALLBACK,
+  );
+  $items['messages/filter/tag-autocomplete'] = array(
+    'page callback'    => 'privatemsg_filter_tags_autocomplete',
+    'access callback'  => 'privatemsg_user_access',
+    'access arguments' => array('tag private messages'),
+    'type'             => MENU_CALLBACK,
+    'weight'           => -10,
+  );
+  return $items;
+}
+
+/**
+ * Implements hook_menu_alter().
+ */
+function privatemsg_filter_menu_alter(&$items) {
+  // Rename messages to "All messages".
+  $items['messages/list']['title'] = 'All messages';
+
+  if (variable_get('privatemsg_filter_default_list', 0) == 0) {
+    // Change default argument of /messages to inbox. and set the task to MENU_LOCAL_TASK.
+    $items['messages']['page arguments'] = array('privatemsg_list', 'inbox');
+    $items['messages/list']['type'] = MENU_LOCAL_TASK;
+  }
+}
+
+function privatemsg_filter_admin() {
+  $form = array();
+
+  $form['privatemsg_filter_searchbody'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Search message body'),
+    '#description'   => t('WARNING: turning on this feature will slow down search performance by a large factor. Gets worse as your messages database increases.'),
+    '#default_value' => variable_get('privatemsg_filter_searchbody', FALSE),
+  );
+
+    $form['privatemsg_filter_tagfield_weight'] = array(
+    '#type'          => 'textfield',
+    '#title'         => t('Position of the tagging textfield'),
+    '#description'   => t('Use higher values to push the form lower down the page, lower or negative values to raise it higher.'),
+    '#size'          => 4,
+    '#default_value' => variable_get('privatemsg_filter_tagfield_weight', 10),
+  );
+
+  return system_settings_form($form);
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ *
+ * Add a filter widget to the message listing pages.
+ */
+function privatemsg_filter_form_private_message_settings_alter(&$form, $form_state) {
+  $form['privatemsg_listing']['privatemsg_filter_default_list'] = array(
+    '#type' => 'radios',
+    '#default_value' => variable_get('privatemsg_filter_default_list', 0),
+    '#options' => array(t('Inbox'), t('All messages')),
+    '#title' => t('Choose the default list option'),
+    '#description' => t('Choose which of the two lists are shown by default when following the messages link.'),
+  );
+  // Add tags to the list of possible columns.
+  $form['privatemsg_listing']['privatemsg_display_fields']['#options']['tags'] = t('Tags');
+
+  $form['#submit'][] = 'privatemsg_filter_settings_submit';
+}
+
+/**
+ * Rebuilding the menu if necessary.
+ */
+function privatemsg_filter_settings_submit($form, &$form_state) {
+  if ($form['privatemsg_listing']['privatemsg_filter_default_list']['#default_value'] != $form_state['values']['privatemsg_filter_default_list']) {
+    menu_rebuild();
+  }
+}
+
+/**
+ * Function to create a tag
+ *
+ * @param $tags
+ *   A single tag or an array of tags.
+ */
+function privatemsg_filter_create_tags($tags) {
+  if (!is_array($tags)) {
+    $tags = array($tags);
+  }
+
+  $tag_ids = array();
+
+  foreach ($tags as $tag) {
+    $tag = trim($tag);
+    if (empty($tag)) {
+      // Do not save a blank tag.
+      continue;
+    }
+
+    // Check if the tag already exists and only create the tag if it does not.
+    $tag_id = db_result(db_query("SELECT tag_id FROM {pm_tags} WHERE tag = '%s'", $tag));
+    if (empty($tag_id) && privatemsg_user_access('create private message tags')) {
+      db_query("INSERT INTO {pm_tags} (tag) VALUES ('%s')", $tag);
+      $tag_id = db_last_insert_id('pm_tags', 'tag_id');
+    }
+    elseif (empty($tag_id)) {
+      // The user does not have permission to create new tags - disregard this tag and move onto the next.
+      drupal_set_message(t('Tag %tag was ignored because you do not have permission to create new tags.', array('%tag' => $tag)));
+      continue;
+    }
+    $tag_ids[] = $tag_id;
+  }
+  return $tag_ids;
+}
+
+/**
+ * Tag one or multiple threads with a tag.
+ *
+ * @param $threads
+ *   A single thread id or an array of thread ids.
+ * @param $tag_id
+ *   Id of the tag.
+ */
+function privatemsg_filter_add_tags($threads, $tag_id, $account = NULL) {
+  if (!is_array($threads)) {
+    $threads = array($threads);
+  }
+  if (empty($account)) {
+    global $user;
+    $account = drupal_clone($user);
+  }
+
+  foreach ($threads as $thread) {
+    // Make sure that we don't add a tag to a thread twice,
+    // only insert if there is no such tag yet.
+    if (db_result(db_query('SELECT COUNT(*) FROM {pm_tags_index} WHERE tag_id = %d AND (uid = %d AND thread_id = %d)', $tag_id, $account->uid, $thread)) == 0) {
+      db_query('INSERT INTO {pm_tags_index} (tag_id, uid, thread_id) VALUES (%d, %d, %d)', $tag_id, $account->uid, $thread);
+    }
+  }
+}
+
+/**
+ * Remove tag from one or multiple threads.
+ *
+ * @param $threads
+ *   A single thread id or an array of thread ids.
+ * @param $tag_id
+ *   Id of the tag - set to NULL to remove all tags.
+ */
+function privatemsg_filter_remove_tags($threads, $tag_id = NULL, $account = NULL) {
+  if (!is_array($threads)) {
+    $threads = array($threads);
+  }
+  if (empty($account)) {
+    global $user;
+    $account = drupal_clone($user);
+  }
+
+  if (is_null($tag_id)) {
+    // Delete all tag mapping.
+    foreach ($threads as $thread) {
+      db_query('DELETE FROM {pm_tags_index} WHERE uid = %d AND thread_id = %d', $account->uid, $thread);
+    }
+  }
+  else {
+    // Delete tag mapping for the specified tag.
+    foreach ($threads as $thread) {
+      db_query('DELETE FROM {pm_tags_index} WHERE uid = %d AND thread_id = %d AND tag_id = %d', $account->uid, $thread, $tag_id);
+    }
+  }
+}
+
+function privatemsg_filter_get_filter($account) {
+  $filter = array();
+  if (isset($_GET['tags'])) {
+    $_GET['tags'] = urldecode($_GET['tags']);
+    $tag_data = privatemsg_filter_get_tags_data($account);
+    foreach (explode(',', $_GET['tags']) as $tag) {
+      if (isset($tag_data[$tag])) {
+        $filter['tags'][$tag] = $tag;
+      }
+      elseif (in_array($tag, $tag_data)) {
+        $filter['tags'][array_search($tag, $tag_data)] = array_search($tag, $tag_data);
+      }
+    }
+  }
+
+  if (isset($_GET['author'])) {
+    list($filter['author']) = _privatemsg_parse_userstring($_GET['author']);
+  }
+
+  if (isset($_GET['search'])) {
+    $filter['search'] = $_GET['search'];
+  }
+
+  if (!empty($filter)) {
+    return $filter;
+  }
+
+  if (!empty($_SESSION['privatemsg_filter'])) {
+    return $_SESSION['privatemsg_filter'];
+  }
+
+}
+
+function privatemsg_filter_get_tags_data($account) {
+  static $tag_data;
+
+  if (is_array($tag_data)) {
+    return $tag_data;
+  }
+
+  // Only show the tags that a user have used.
+  $query = _privatemsg_assemble_query(array('tags', 'privatemsg_filter'), $account);
+  $results = db_query($query['query']);
+
+  $tag_data = array();
+  while ($result = db_fetch_object($results)) {
+    $tag_data[$result->tag_id] = $result->tag;
+  }
+  return $tag_data;
+}
+
+function privatemsg_filter_dropdown(&$form_state, $account) {
+
+  drupal_add_css(drupal_get_path('module', 'privatemsg_filter') .'/privatemsg_filter.css');
+
+  $form['filter'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Filter messages'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  $form['filter']['search'] = array(
+    '#type' => 'textfield',
+    '#title' => variable_get('privatemsg_filter_searchbody', FALSE) ? t('Search messages') : t('Search subjects'),
+    '#weight' => -20
+  );
+
+  $form['filter']['author'] = array(
+    '#type'               => 'textfield',
+    '#title'              => t('Participants'),
+    '#description'        => t('Separate multiple names with commas.'),
+    '#weight'             => -5,
+    '#size'               => 50,
+    '#autocomplete_path'  => 'messages/filter/user-name-autocomplete',
+  );
+
+  // Only show form if the user has some messages tagged.
+  if (count($tag_data = privatemsg_filter_get_tags_data($account))) {
+    $form['filter']['tags'] = array(
+      '#type' => 'select',
+      '#title' => t('Tags'),
+      '#options' => $tag_data,
+      '#multiple' => TRUE,
+      '#size' => 5,
+      '#weight' => 0
+    );
+  }
+    $form['filter']['submit'] = array(
+      '#type'     => 'submit',
+      '#value'    => t('Filter'),
+      '#prefix'   => '<div id="privatemsg-filter-buttons">',
+      '#weight'   => 10,
+      '#submit'   => array('privatemsg_filter_dropdown_submit'),
+    );
+
+    $form['filter']['save'] = array(
+      '#type'     => 'submit',
+      '#value'    => t('Save filter'),
+      '#suffix'   => '</div>',
+      '#weight'   => 11,
+      '#submit'   => array('privatemsg_filter_dropdown_submit'),
+    );
+
+    if ($filter = privatemsg_filter_get_filter($account)) {
+      privatemsg_filter_dropdown_set_active($form, $filter);
+    }
+
+    return $form;
+}
+
+function privatemsg_filter_dropdown_set_active(&$form, $filter) {
+  $form['filter']['#title'] = t('Filter messages (active)');
+  $form['filter']['#collapsed'] = FALSE;
+
+  if (isset($filter['author'])) {
+    $string = '';
+    foreach ($filter['author'] as $author) {
+      $string .= $author->name . ', ';
+    }
+    $form['filter']['author']['#default_value'] = $string;
+  }
+  if (isset($filter['tags'])) {
+    $form['filter']['tags']['#default_value'] = $filter['tags'];
+  }
+  if (isset($filter['search'])) {
+    $form['filter']['search']['#default_value'] = $filter['search'];
+  }
+
+  $form['filter']['reset'] = array(
+      '#type'     => 'submit',
+      '#value'    => t('Reset'),
+      '#suffix'   => '</div>',
+      '#weight'   => 12,
+      '#submit'   => array('privatemsg_filter_dropdown_submit'),
+  );
+  unset($form['filter']['save']['#suffix']);
+}
+
+function privatemsg_filter_dropdown_submit($form, &$form_state) {
+
+  if (!empty($form_state['values']['author'])) {
+    list($form_state['values']['author']) = _privatemsg_parse_userstring($form_state['values']['author']);
+  }
+
+  switch ($form_state['values']['op']) {
+    case t('Save filter'):
+      $filter = array();
+      if (!empty($form_state['values']['tags'])) {
+        $filter['tags'] = $form_state['values']['tags'];
+      }
+      if (!empty($form_state['values']['author'])) {
+        $filter['author'] = $form_state['values']['author'];
+      }
+      if (!empty($form_state['values']['search'])) {
+        $filter['search'] = $form_state['values']['search'];
+      }
+      $_SESSION['privatemsg_filter'] = $filter;
+      break;
+    case t('Filter'):
+      drupal_goto($_GET['q'], privatemsg_filter_create_get_query($form_state['values']));
+      return;
+      break;
+    case t('Reset'):
+      $_SESSION['privatemsg_filter'] = array();
+      break;
+  }
+  $form_state['redirect'] = $_GET['q'];
+}
+
+function privatemsg_filter_create_get_query($filter) {
+  $query = array();
+  if (isset($filter['tags']) && !empty($filter['tags'])) {
+    $ids = array();
+    foreach ($filter['tags'] as $tag) {
+      if ((int)$tag > 0) {
+        $ids[] = $tag;
+      }
+      else {
+        $query['tags'][] = $tag;
+      }
+    }
+    $sql = 'SELECT pmt.tag FROM {pm_tags} pmt WHERE pmt.tag_id IN ('. implode(', ', $filter['tags']) .')';
+    $result = db_query($sql);
+    while ($row = db_fetch_object($result)) {
+      $query['tags'][] = $row->tag;
+    }
+
+    if (isset($query['tags'])) {
+      $query['tags'] = implode(',', $query['tags']);
+    }
+  }
+
+  if (isset($filter['author']) && !empty($filter['author'])) {
+    foreach ($filter['author'] as $author) {
+      if (is_object($author) && isset($author->uid) && isset($author->name)) {
+        $query['author'][] = $author->name;
+      }
+      elseif ($author_obj = user_load($author)) {
+        $query['author'][] = $author_obj->name;
+      }
+    }
+    if (isset($query['author'])) {
+      $query['author'] = implode(',', $query['author']);
+    }
+  }
+
+  if (isset($filter['search']) && !empty($filter['search'])) {
+    $query['search'] = $filter['search'];
+  }
+  return $query;
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ *
+ * Adds a filter widget to the message listing pages.
+ */
+function privatemsg_filter_form_privatemsg_list_alter(&$form, $form_state) {
+  global $user;
+
+  if (privatemsg_user_access('filter private messages') && !empty($form['#data'])) {
+    $form += privatemsg_filter_dropdown($form_state, $form['#account']);
+  }
+
+  $fields = array_filter(variable_get('privatemsg_display_fields', array('participants')));
+  if (in_array('tags', $fields)) {
+    // Load thread id's of the current list.
+    $threads = array_keys($form['#data']);
+
+    // Fetch all tags of those threads.
+    $query = _privatemsg_assemble_query(array('tags', 'privatemsg_filter'), $user, $threads, 3);
+
+    // Add them to #data
+    $result = db_query($query['query']);
+    while ($tag = db_fetch_array($result)) {
+      $form['#data'][$tag['thread_id']]['tags'][$tag['tag_id']] = $tag['tag'];
+    }
+  }
+
+  $tags = privatemsg_filter_get_tags_data($user);
+  if (privatemsg_user_access('tag private messages') && !empty($tags) && !empty($form['#data'])) {
+    $options = array();
+    $options[] = t('Apply tag...');
+    foreach ($tags as $tag_id => $tag) {
+      $options[$tag_id] = $tag;
+    }
+    $form['actions']['tag-add'] = array(
+      '#type'          => 'select',
+      '#options'       => $options,
+      '#default_value' => 0,
+    );
+    $form['actions']['tag-add-submit'] = array(
+        '#prefix'     => '<div class="privatemsg-tag-add-submit">',
+        '#suffix'    => '</div>',
+        '#type'       => 'submit',
+        '#value'      => t('Apply Tag'),
+        '#submit'     => array('privatemsg_filter_add_tag_submit'),
+        '#attributes' => array('class' => 'privatemsg-action-button'),
+    );
+    $options[0] = t('Remove Tag...');
+    $form['actions']['tag-remove'] = array(
+      '#type'          => 'select',
+      '#options'       => $options,
+      '#default_value' => 0,
+    );
+    $form['actions']['tag-remove-submit'] = array(
+        '#prefix'     => '<div class="privatemsg-tag-remove-submit">',
+        '#suffix'    => '</div>',
+        '#type'       => 'submit',
+        '#value'      => t('Remove Tag'),
+        '#submit'     => array('privatemsg_filter_remove_tag_submit'),
+        '#attributes' => array('class' => 'privatemsg-action-button'),
+    );
+
+    // JS for hiding the submit buttons.
+    drupal_add_js(drupal_get_path('module', 'privatemsg_filter') .'/privatemsg-filter-list.js');
+  }
+}
+
+/**
+ * Define the header for the tags column.
+ *
+ * @see theme_privatemsg_list_header()
+ */
+function phptemplate_privatemsg_list_header__tags() {
+   return array(
+    'data' => t('Tags'),
+    'key' => 'tags',
+    'class' => 'privatemsg-header-tags',
+    '#weight' => -42,
+  );
+}
+
+
+/**
+ * Default theme pattern function to display tags.
+ * 
+ * @see theme_privatemsg_list_field()
+ */
+function phptemplate_privatemsg_list_field__tags($thread) {
+  if (!empty($thread['tags'])) {
+    $tags = array();
+
+    foreach ($thread['tags'] as $tag_id => $tag) {
+      $tags[] = l(strlen($tag) > 15 ? substr($tag, 0, 13) . '...' : $tag, 'messages', array(
+        'attributes' => array('title' => $tag),
+        'query' => array('tags' => $tag)
+      ));
+    }
+    return array(
+      'data'  => implode(', ', $tags),
+      'class' => 'privatemsg-list-tags',
+    );
+  }
+}
+
+/**
+ * Form callback for adding a tag to threads.
+ */
+function privatemsg_filter_add_tag_submit($form, &$form_state) {
+  $operation = array(
+    'callback' => 'privatemsg_filter_add_tags',
+    'callback arguments' => array('tag_id' => $form_state['values']['tag-add']),
+    'undo callback' => 'privatemsg_filter_remove_tags',
+    'undo callback arguments' => array('tag_id' => $form_state['values']['tag-add']),
+  );
+  drupal_set_message(t('The selected conversations have been tagged.'));
+  privatemsg_operation_execute($operation, $form_state['values']['threads']);
+}
+
+/**
+ * Form callback for removing a tag to threads.
+ */
+function privatemsg_filter_remove_tag_submit($form, &$form_state) {
+  $operation = array(
+    'callback' => 'privatemsg_filter_remove_tags',
+    'callback arguments' => array('tag_id' => $form_state['values']['tag-remove']),
+    'undo callback' => 'privatemsg_filter_add_tags',
+    'undo callback arguments' => array('tag_id' => $form_state['values']['tag-remove']),
+  );
+  drupal_set_message(t('The tag has been removed from the selected conversations.'));
+  privatemsg_operation_execute($operation, $form_state['values']['threads']);
+}
+
+/**
+ * Hook into the query builder to add the tagging info to the correct query
+ */
+function privatemsg_filter_privatemsg_sql_list_alter(&$fragments, $account, $argument) {
+
+  // Check if its a filtered view.
+  if ($argument == 'sent') {
+    $fragments['where'][]       = "pm.author = %d";
+    $fragments['query_args']['where'][]   = $account->uid;
+  }
+  if ($argument == 'inbox') {
+    $fragments['having'][]       = '((SELECT pmf.author FROM {pm_message} pmf WHERE pmf.mid = pmi.thread_id) = %d AND COUNT(pmi.thread_id) > 1) OR (SELECT COUNT(*) FROM {pm_message} pmf INNER JOIN {pm_index} pmif ON (pmf.mid = pmif.mid) WHERE pmif.thread_id = pmi.thread_id AND pmf.author <> %d) > 0';
+    $fragments['query_args']['having'][]   = $account->uid;
+    $fragments['query_args']['having'][]   = $account->uid;
+  }
+
+  // Filter the message listing by any set tags.
+  if ($filter = privatemsg_filter_get_filter($account)) {
+    $count = 0;
+    if (isset($filter['tags']) && !empty($filter['tags'])) {
+      foreach ($filter['tags'] as $tag) {
+        $fragments['inner_join'][]  = "INNER JOIN {pm_tags_index} pmti$count ON (pmti$count.thread_id = pmi.thread_id AND pmti$count.uid = pmi.uid)";
+        $fragments['where'][]       = "pmti$count.tag_id = %d";
+        $fragments['query_args']['where'][]   = $tag;
+        $count++;
+      }
+    }
+
+    if (isset($filter['author']) && !empty($filter['author'])) {
+      foreach ($filter['author'] as $author) {
+        $fragments['inner_join'][]  = "INNER JOIN {pm_index} pmi$count ON (pmi$count.mid = pm.mid)";
+        $fragments['where'][]       = "pmi$count.uid = %d";
+        $fragments['query_args']['where'][]   = $author->uid;
+        $count++;
+      }
+    }
+
+    if (isset($filter['search']) && !empty($filter['search'])) {
+      if (variable_get('privatemsg_filter_searchbody', FALSE)) {
+        $fragments['where'][]       = "pm.subject LIKE '%s' OR pm.body LIKE '%s'";
+        $fragments['query_args']['where'][]    = '%%'. $filter['search'] .'%%';
+        $fragments['query_args']['where'][]    = '%%'. $filter['search'] .'%%';
+      }
+      else {
+        $fragments['where'][]       = "pm.subject LIKE '%s'";
+        $fragments['query_args']['where'][]    = '%%'. $filter['search'] .'%%';
+      }
+    }
+  }
+}
+
+/**
+ * Hook into the view messages page to add a form for tagging purposes.
+ */
+function privatemsg_filter_privatemsg_view_messages_alter(&$content, $thread) {
+  if (count($thread['messages']) > 0) {
+    $content['tags']['#value'] = drupal_get_form('privatemsg_filter_form');
+    $content['tags']['#weight'] = variable_get('privatemsg_filter_tagfield_weight', 10);
+  }
+}
+
+/**
+ * Form to show and allow modification of tagging information of a conversation.
+ */
+function privatemsg_filter_form(&$form_state) {
+  global $user;
+  $thread_id = arg(2);
+
+  // Get a list of current tags for this thread
+  $query = _privatemsg_assemble_query(array('tags', 'privatemsg_filter'), $user, array($thread_id));
+  $results = db_query($query['query']);
+  $count = db_result(db_query($query['count']));
+  $tags = '';
+  while ($tag = db_fetch_array($results)) {
+    $tags .= $tag['tag'] . ', ';
+  }
+
+  $form['tags'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Tags'),
+    '#access' => privatemsg_user_access('tag private messages'),
+    '#collapsible' => TRUE,
+    '#collapsed' => empty($count) ? TRUE : FALSE,
+  );
+  $form['tags']['user_id'] = array(
+    '#type' => 'value',
+    '#value' => $user->uid,
+  );
+  $form['tags']['thread_id'] = array(
+    '#type' => 'value',
+    '#value' => $thread_id,
+  );
+
+  $form['tags']['tags'] = array(
+    '#type'               => 'textfield',
+    '#title'              => t('Tags for this conversation'),
+    '#description'        => t('Separate multiple tags with commas.'),
+    '#size'               => 50,
+    '#default_value'      => $tags,
+    '#autocomplete_path'  => 'messages/filter/tag-autocomplete',
+  );
+
+  $form['tags']['submit'] = array(
+    '#type'     => 'submit',
+    '#value'    => t('Tag this conversation'),
+    '#submit'   => array('privatemsg_filter_form_submit'),
+  );
+
+  return $form;
+}
+
+function privatemsg_filter_form_submit($form, &$form_state) {
+  if (isset($form_state['values']['submit'])) {
+    $tags = explode(',', $form_state['values']['tags']);
+
+    // Step 1 - Delete all tag mapping. I cannot think of a better way to remove tags that are no longer in the textfield, so ideas welcome.
+    privatemsg_filter_remove_tags($form_state['values']['thread_id']);
+
+    // Step 2 - Get the id for each of the tags.
+    $tag_ids = privatemsg_filter_create_tags($tags);
+
+    // Step 3 - Save all the tagging data.
+    foreach ($tag_ids as $tag_id) {
+      privatemsg_filter_add_tags($form_state['values']['thread_id'], $tag_id);
+    }
+    drupal_set_message(t('Tagging information has been saved.'));
+  }
+}
+
+/**
+ * Return autocomplete results for tags.
+ *
+ * Most of this code has been lifted/modified from
+ * privatemsg_user_name_autocomplete().
+ */
+function privatemsg_filter_tags_autocomplete($string) {
+
+  // 1: Parse $string and build a list of tags.
+  $tags = array();
+  $fragments = explode(',', $string);
+  foreach ($fragments as $index => $tag) {
+    $tag = trim($tag);
+    $tags[$tag] = $tag;
+  }
+
+  // 2: Find the next tag suggestion.
+  $fragment = array_pop($tags);
+  $matches = array();
+  if (!empty($fragment)) {
+    $query = _privatemsg_assemble_query(array('tags_autocomplete', 'privatemsg_filter'), $fragment, $tags);
+    $result = db_query_range($query['query'], $fragment, 0, 10);
+    $prefix = count($tags) ? implode(", ", $tags) .", " : '';
+    // 3: Build proper suggestions and print.
+    while ($tag = db_fetch_object($result)) {
+      $matches[$prefix . $tag->tag .", "] = $tag->tag;
+    }
+  }
+  // convert to object to prevent drupal bug, see http://drupal.org/node/175361
+  drupal_json((object)$matches);
+}
+
+/**
+ * @addtogroup sql
+ * @{
+ */
+
+/**
+ * Limit the user autocomplete for the filter widget.
+ *
+ * @param $fragments
+ *   Query fragments.
+ * @param $search
+ *   Username search string.
+ * @param $names
+ *   Array of names that are already part of the autocomplete field.
+ */
+function privatemsg_filter_privatemsg_sql_autocomplete_alter(&$fragments, $search, $names) {
+  global $user;
+  // arg(1) is an additional URL argument passed to the URL when only
+  // users that are listed as recipient for threads of that user should be
+  // displayed.
+  // @todo: Check if these results can be grouped to avoid unecessary loops.
+  if (arg(1) == 'filter') {
+    // JOIN on index entries where the to be selected user is a recipient.
+    $fragments['inner_join'][] = 'INNER JOIN {pm_index} pip ON pip.uid = u.uid';
+    // JOIN on rows where the current user is the recipient and that have the
+    // same mid as those above.
+    $fragments['inner_join'][] = 'INNER JOIN {pm_index} piu ON piu.uid = %d AND pip.mid = piu.mid';
+    $fragments['query_args']['join'][] = $user->uid;
+  }
+}
+
+/**
+ * Query definition to fetch tags.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $user
+ *   User object for whom we want the tags.
+ * @param $threads
+ *   Array of thread ids, defaults to all threads of a user.
+ * @param $limit
+ *   Limit the number of tags *per thread*.
+ */
+function privatemsg_filter_sql_tags(&$fragments, $user = NULL, $threads = NULL, $limit = NULL) {
+  $fragments['primary_table'] = '{pm_tags} t';
+  $fragments['select'][] = 't.tag';
+  $fragments['select'][] = 't.tag_id';
+  $fragments['select'][] = 't.public';
+
+  if (!empty($threads)) {
+    // If the tag list needs to be for specific threads.
+    $fragments['select'][] = 'ti.thread_id';
+    $fragments['inner_join'][]  = 'INNER JOIN {pm_tags_index} ti on ti.tag_id = t.tag_id';
+    $fragments['where'][] = 'ti.thread_id IN (' . db_placeholders($threads) . ')';
+    $fragments['query_args']['where'] += $threads;
+  }
+  else {
+    // Tag usage counter is only used when we select all tags.
+    $fragments['select'][]      = 'COUNT(ti.thread_id) as count';
+    // LEFT JOIN so that unused tags are displayed too.
+    $fragments['inner_join'][]  = 'LEFT JOIN {pm_tags_index} ti ON t.tag_id = ti.tag_id';
+    $fragments['group_by'][]    = 't.tag_id';
+    $fragments['group_by'][]    = 't.tag';
+    $fragments['group_by'][]    = 't.public';
+  }
+  if (!empty($user)) {
+    $fragments['where'][]       = 'ti.uid = %d';
+    $fragments['query_args']['where'][] = $user->uid;
+  }
+
+  // Only select n tags per thread (ordered per tag_id), see
+  // http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/.
+  //
+  // It does select how many tags for that thread/uid combination exist that
+  // have a lower tag_id and does only select those that have less than $limit.
+  //
+  // This should only have a very minor performance impact as most users won't
+  // tag a thread with 1000 different tags.
+  //
+  if ($limit) {
+    $fragments['where'][] = '(SELECT count(*) FROM {pm_tags_index} AS pmtic
+                              WHERE pmtic.thread_id = ti.thread_id
+                              AND pmtic.uid = ti.uid
+                              AND pmtic.tag_id < ti.tag_id) < %d';
+    $fragments['query_args']['where'][] = $limit;
+  }
+  elseif (!empty($threads) || !empty($user)) {
+    // Only add a sort when we are not loading the tags for the admin page.
+    // Sorting is handled through tablesort_sql() then.
+    $fragments['order_by'][] = 't.tag ASC';
+  }
+}
+
+/**
+ * Query definition to get autocomplete suggestions for tags
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $search
+ *   String fragment to use for tag suggestions.
+ * @param $tags
+ *   Array of tags not to be used as suggestions.
+ */
+function privatemsg_filter_sql_tags_autocomplete(&$fragments, $search, $tags) {
+  global $user;
+
+  $fragments['primary_table'] = '{pm_tags} pmt';
+  $fragments['select'][] = 'pmt.tag';
+  $fragments['where'][] = "pmt.tag LIKE '%s'";
+  // Escape % to get through the placeholder replacement.
+  $fragments['query_args']['where'][] = $search .'%%';
+  if (!empty($tags)) {
+    // Exclude tags.
+    $fragments['where'][] = "pmt.tag NOT IN (". db_placeholders($tags, 'text') .")";
+    $fragments['query_args']['where'] += $tags;
+  }
+  // LEFT JOIN to be able to load public, unused tags.
+  $fragments['inner_join'][]  = 'LEFT JOIN {pm_tags_index} pmti ON pmt.tag_id = pmti.tag_id AND pmti.uid = %d';
+  $fragments['query_args']['join'][] = $user->uid;
+  // Autocomplete should only display Tags used by that user or public tags.
+  // This is done to avoid information disclosure as part of tag names.
+  $fragments['where'][] = '(pmti.uid IS NOT NULL OR pmt.public = 1)';
+  $fragments['order_by'][] = 'pmt.tag ASC';
+}
+
+/**
+ * @}
+ */
+
+/**
+ * Implement hook_user().
+ */
+function privatemsg_filter_user($op, &$edit, &$account, $category = NULL) {
+  switch ($op) {
+      case 'delete':
+      // Delete tag information of that user.
+      db_query("DELETE FROM {pm_tags_index} WHERE uid = %d", $account->uid, $account->uid);
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.test b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.test
new file mode 100644
index 0000000..86df5a1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/privatemsg_filter/privatemsg_filter.test
@@ -0,0 +1,327 @@
+<?php
+
+/*
+ * @file
+ * Tests for privatemsg_filter.module
+ */
+
+/**
+ * Test filters, tags and inbox/sent handling.
+ */
+class PrivatemsgFilterTestCase extends DrupalWebTestCase {
+  /**
+   * Implements getInfo().
+   */
+  function getInfo() {
+    return array(
+      'name' => t('Privatemsg Filter functionality.'),
+      'description' => t('Test filters, tags and inbox/sent handling'),
+      'group' => t('Privatemsg'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  function setUp() {
+    parent::setUp('privatemsg', 'privatemsg_filter');
+  }
+
+  /**
+   * Test correct handling of read all permissions.
+   */
+  function testInboxSentHandling() {
+    $author    = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'delete privatemsg'));
+    $recipient = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+
+    // Create new message.
+    $edit = array(
+      'recipient'   => $recipient->name,
+      'subject'     => $this->randomName(20),
+      'body'        => $this->randomName(100),
+    );
+    $this->drupalLogin($author);
+    $this->drupalPost('messages/new', $edit, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $recipient->name)), t('Message sent confirmation displayed'));
+
+    // Validate that the message is not displayed in the inbox of the author
+    // but in the sent list.
+    $this->drupalGet('messages');
+    $this->assertNoText($edit['subject'], t('Thread not displayed in inbox for author.'));
+    $this->drupalGet('messages/sent');
+    $this->assertText($edit['subject'], t('Thread displayed in "Sent messages" for author.'));
+    $this->drupalGet('messages/list');
+    $this->assertText($edit['subject'], t('Thread displayed in "All messages" for author.'));
+
+    // Write a reply as recipient.
+    $this->drupalLogin($recipient);
+    $this->drupalGet('messages');
+    $this->assertText($edit['subject'], t('Thread displayed in inbox for recipient.'));
+    $this->drupalGet('messages/sent');
+    $this->assertNoText($edit['subject'], t('Thread not displayed in "Sent messages" for recipient.'));
+    $this->drupalGet('messages/list');
+    $this->assertText($edit['subject'], t('Thread displayed in "All messages." for recipient.'));
+
+    // Navigate to the new message.
+    $this->clickLink($edit['subject']);
+    $response = array(
+      'body' => $this->randomName(100),
+    );
+    $this->drupalPost(NULL, $response, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $author->name)), t('Message sent confirmation displayed'));
+
+    $this->drupalGet('messages/sent');
+    $this->assertText($edit['subject'], t('Thread displayed in "Sent messages" for recipient.'));
+
+    $this->drupalLogin($author);
+    $this->drupalGet('messages');
+    $this->assertText($edit['subject'], t('Thread displayed in inbox for author.'));
+
+    // Test for bug http://drupal.org/node/617648
+    // Delete all messages for author.
+    $delete = array(
+        'threads[1]' => 1,
+    );
+    $this->drupalPost(NULL, $delete, t('Delete'));
+    $this->assertNoText($edit['subject'], t('Thread has been deleted for author.'));
+
+    // Write a reply as recipient.
+    $this->drupalLogin($recipient);
+    $this->drupalGet('messages');
+
+    // Navigate to the new message.
+    $this->clickLink($edit['subject']);
+    $response = array(
+      'body' => $this->randomName(100),
+    );
+    $this->drupalPost(NULL, $response, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $author->name)), t('Message sent confirmation displayed'));
+
+    // Check if thread is visible again for author.
+    $this->drupalLogin($author);
+    $this->drupalGet('messages');
+    $this->assertText($edit['subject'], t('Thread displayed again in inbox for author.'));
+  }
+}
+
+/**
+ * Test filters, tags and inbox/sent handling.
+ */
+class PrivatemsgTagsTestCase extends DrupalWebTestCase {
+  /**
+   * Implements getInfo().
+   */
+  function getInfo() {
+    return array(
+      'name' => t('Privatemsg Tags functionality.'),
+      'description' => t('Test Privatemsg tags use and administration functionality.'),
+      'group' => t('Privatemsg'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  function setUp() {
+    parent::setUp('privatemsg', 'privatemsg_filter');
+  }
+
+  function testCreateUserTag() {
+    $webuser = $this->drupalCreateuser(array('read privatemsg', 'write privatemsg', 'tag private messages', 'create private message tags'));
+
+    // Create a new thread through the api.
+    $response = privatemsg_new_thread(array($webuser), $this->randomName(10), $this->randomName(20), array('author' => $webuser));
+    $thread_id = $response['message']['thread_id'];
+
+    $edit = array(
+      'tags' => 'Awesome bananas, Banana',
+    );
+    $this->drupalLogin($webuser);
+    $this->drupalPost('messages/view/' . $thread_id, $edit, t('Tag this conversation'));
+    $this->assertRaw('Awesome bananas,', t('Found message tag'));
+    $this->assertRaw('Banana,', t('Found message tag'));
+
+
+    // Create a another thread through the api.
+    $response = privatemsg_new_thread(array($webuser), $this->randomName(10), $this->randomName(20), array('author' => $webuser));
+    $thread_id = $response['message']['thread_id'];
+
+    $edit = array(
+      'tags' => 'Banana, Apple',
+    );
+    $this->drupalPost('messages/view/' . $thread_id, $edit, t('Tag this conversation'));
+    $this->assertRaw('Banana,', t('Found message tag'));
+    $this->assertRaw('Apple,', t('Found message tag'));
+  }
+
+  function testTagsAdministration() {
+    // Create users.
+    $admin = $this->drupalCreateuser(array('administer privatemsg settings', 'read privatemsg', 'write privatemsg', 'tag private messages', 'create private message tags'));
+    $webuser = $this->drupalCreateuser(array('read privatemsg', 'write privatemsg', 'tag private messages', 'create private message tags'));
+
+    // Prepare data.
+    $private = array(
+      'tag' => $this->randomName(10),
+      'public' => FALSE,
+    );
+    $public = array(
+      'tag' => $this->randomName(10),
+      'public' => 1,
+    );
+    $to_edit = array(
+      'tag' => $this->randomName(10),
+      'public' => 1,
+    );
+    $edited_tag = array(
+      'tag' => $this->randomName(10),
+      'public' => FALSE,
+    );
+    $duplicate = $private;
+
+    $this->drupalLogin($admin);
+
+    // Check that the empty message is displayed.
+    $this->drupalGet('admin/settings/messages/tags/list');
+    $this->assertText(t('No tags available.'), t('No tags exist yet.'));
+
+    // Create tags.
+    $this->drupalPost('admin/settings/messages/tags/add', $private, t('Create tag'));
+    $this->assertText(t('Tag created.'));
+    $this->drupalPost('admin/settings/messages/tags/add', $public, t('Create tag'));
+    $this->assertText(t('Tag created.'));
+    $this->drupalPost('admin/settings/messages/tags/add', $to_edit, t('Create tag'));
+    $this->assertText(t('Tag created.'));
+    $this->drupalPost('admin/settings/messages/tags/add', $duplicate, t('Create tag'));
+    $this->assertText(t('Tag already exists, choose a different name.'));
+
+    // Verify that all tags are displayed.
+    $this->drupalGet('admin/settings/messages/tags/list');
+    foreach (array($private, $public, $to_edit) as $tag) {
+      $this->assertText($tag['tag'], t('Tag %tag displayed', array('%tag' => $tag['tag'])));
+    }
+
+    // Verfiy private/public flag.
+    $rows = $this->xpath('//table/tbody/tr');
+    foreach ($rows as $row) {
+      // Index 0 is tag name.
+      if ((string)$row->td[0] == $private['tag']) {
+        // Index 2 is Yes/- flag indicator.
+        $this->assertEqual((string)$row->td[2], '-', t('Private tag does not have public flag.'));
+      }
+      else {
+        $this->assertEqual((string)$row->td[2], t('Yes'), t('Public tag does have public flag.'));
+      }
+      // Extract edit/delete url. Only the part starting with admin/ is needed.
+      if ((string)$row->td[0] == $to_edit['tag']) {
+        $edit_url = drupal_substr($row->td[3]->a[0]['href'], strpos($row->td[3]->a[0]['href'], 'admin/'));
+      }
+      if ((string)$row->td[0] == $public['tag']) {
+        $delete_url = drupal_substr($row->td[3]->a[1]['href'], strpos($row->td[3]->a[1]['href'], 'admin/'));
+      }
+    }
+
+    // Edit Tag.
+    $this->drupalGet($edit_url);
+    $this->assertTitle(t('Edit @tag | @site-name', array('@site-name' => variable_get('site_name', 'Drupal'), '@tag' => $to_edit['tag'])), t('Correct title for @tag is set.', array('@tag' => $to_edit['tag'])));
+
+    // With duplicate data.
+    $this->drupalPost(NULL, $duplicate, t('Save tag'));
+    $this->assertText(t('Tag already exists, choose a different name.'));
+
+    // With valid data.
+    $this->drupalPost(NULL, $edited_tag, t('Save tag'));
+    $this->assertText(t('Tag updated.'), t('Tag has been updated'));
+
+    // Verify edited tag.
+    $this->assertNoText($to_edit['tag'], t('Old tag name not found anymore.'));
+    $this->assertText($edited_tag['tag'], t('Tag has been renamed.'));
+    $rows = $this->xpath('//table/tbody/tr');
+    foreach ($rows as $row) {
+      // The new tag name should exist and the public flag should be set to false.
+      if ((string)$row->td[0] == $edited_tag['tag']) {
+        $this->assertEqual((string)$row->td[2], '-', t('Edited tag does not have public flag.'));
+      }
+    }
+
+    // Delete tag.
+    $this->drupalPost($delete_url, array(), t('Delete'));
+    $this->assertText(t('Tag has been deleted'), t('Tag has been deleted'));
+    $this->assertNoText($public['tag'], t('Deleted tag is not displayed anymore.'));
+  }
+
+  function testInboxTagging() {
+    $webuser = $this->drupalCreateuser(array('read privatemsg', 'write privatemsg', 'tag private messages', 'create private message tags'));
+    $admin = $this->drupalCreateUser(array('administer privatemsg settings'));
+
+    // Display tag column in thread list.
+    $this->drupalLogin($admin);
+    $this->drupalPost('admin/settings/messages', array('privatemsg_display_fields[tags]' => 1), t('Save configuration'));
+
+    // Create a new thread through the api.
+    $response = privatemsg_new_thread(array($webuser), $subject1 = $this->randomName(10), $this->randomName(20), array('author' => $webuser));
+    $thread_id = $response['message']['thread_id'];
+
+    $edit = array(
+      'tags' => 'Awesome bananas, Banana',
+    );
+    $this->drupalLogin($webuser);
+    $this->drupalPost('messages/view/' . $thread_id, $edit, t('Tag this conversation'));
+    $this->assertRaw('Awesome bananas,', t('Found message tag'));
+    $this->assertRaw('Banana,', t('Found message tag'));
+
+    // Create another thread.
+    $response = privatemsg_new_thread(array($webuser), $subject2 = $this->randomName(10), $this->randomName(20), array('author' => $webuser));
+    $thread_id2 = $response['message']['thread_id'];
+
+    $this->drupalGet('messages');
+    $rows = $this->xpath('//tbody/tr');
+    foreach ($rows as $row) {
+      if ($row->td[2]->a == $subject1) {
+        // The first thread should have both tags.
+        $this->assertEqual('Awesome bananas', $row->td[1]->a[0], t('First thread is tagged with Awesome bananas'));
+        $this->assertEqual('Banana', $row->td[1]->a[1], t('First thread is tagged with Banana'));
+      }
+      if ($row->td[2]->a == $subject2) {
+        // The second thread should have no tags.
+        $this->assertEqual('', $row->td[1], t('Second thread is not tagged'));
+      }
+    }
+
+    $add_tag = array(
+      'threads[' . $thread_id2 . ']' => 1,
+      'tag-add' => 2,
+    );
+    $this->drupalPost(NULL, $add_tag, t('Apply Tag'));
+    $rows = $this->xpath('//tbody/tr');
+    foreach ($rows as $row) {
+      if ($row->td[2]->a == $subject1) {
+        // The first thread should have both tags.
+        $this->assertEqual('Awesome bananas', $row->td[1]->a[0], t('First thread is tagged with Awesome bananas'));
+        $this->assertEqual('Banana', $row->td[1]->a[1], t('First thread is tagged with Banana'));
+      }
+      if ($row->td[2]->a == $subject2) {
+        // The second thread should have one tag.
+        $this->assertEqual('Banana', $row->td[1]->a, t('Second thread is correctly tagged'));
+      }
+    }
+
+    $remove_tag = array(
+      'threads[' . $thread_id . ']' => 1,
+      'threads[' . $thread_id2 . ']' => 1,
+      'tag-remove' => 2,
+    );
+    $this->drupalPost(NULL, $remove_tag, t('Remove Tag'));
+    $rows = $this->xpath('//tbody/tr');
+    foreach ($rows as $row) {
+      if ($row->td[2]->a == $subject1) {
+        // The first thread should have only one tag now.
+        $this->assertEqual('Awesome bananas', $row->td[1]->a, t('First thread is tagged with Awesome bananas'));
+      }
+      if ($row->td[2]->a == $subject2) {
+        // The second thread should have no tags.
+        $this->assertEqual('', $row->td[1], t('Second thread is not tagged'));
+      }
+    }
+    $this->assertNoText('Banana', t('Banana tag is not displayed anymore'));
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-list.css b/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-list.css
new file mode 100644
index 0000000..8b9293f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-list.css
@@ -0,0 +1,19 @@
+.privatemsg-unread .privatemsg-list-subject {
+  font-weight: bold;
+}
+
+.privatemsg-unread .privatemsg-list-subject .marker {
+  font-weight: lighter;
+}
+
+.privatemsg-list-count {
+  text-align: center;
+}
+
+.privatemsg-list-subject {
+  min-width: 35%;
+}
+
+.privatemsg-list-date {
+  min-width: 20%;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-recipients.css b/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-recipients.css
new file mode 100644
index 0000000..8f5d4e8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-recipients.css
@@ -0,0 +1,5 @@
+.message-participants {
+  border-bottom     : 1px solid #C5C5C5;
+  margin            : 0 0 0 250px; 
+
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-view.css b/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-view.css
new file mode 100644
index 0000000..1a8b4a3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/styles/privatemsg-view.css
@@ -0,0 +1,60 @@
+.privatemsg-box-fb {
+  text-align  : left;
+}
+
+.left-column {
+  float       : left;
+  width       : 100px;
+}
+
+.privatemsg-box-fb .avatar-fb {
+  margin      : 5px;
+  text-align  : center;
+}
+.privatemsg-box-fb .picture {
+ float    : none; 
+ padding  : 0 0 0 0;
+}
+.middle-column {
+  float       : left;
+  width       : 150px;
+  text-align  : right;
+}
+.name {
+  margin      : 5px 15px 0px 0px;
+  font-size   : 11px;
+  font-weight : bold;
+} 
+.date {
+  color         : #777777;
+  font-size     : 9px;
+  margin        : 0px 15px 0pt 0pt;
+} 
+.right-column {
+  margin:0 0 0 250px;
+}
+.clear-both {
+  clear       : both;
+}
+.bottom-border {
+  border-bottom: 1px solid #C5C5C5;
+  margin       : 0 0 10px 250px;
+}
+.message-body {
+  padding     : 0px;
+  margin      : 0 0 0 5px;
+  overflow    : auto;
+}
+
+.message-actions li {
+  list-style-type:none;
+  float:left;
+  padding:5px;
+  background-image:none;
+}
+
+.privatemsg-view-pager {
+  margin: 20px 0 20px 200px;
+  padding-left: 10px;
+  width: 300px;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/tests/privatemsgapi.test b/drupal/sites/default/boinc/modules/contrib/privatemsg/tests/privatemsgapi.test
new file mode 100644
index 0000000..4a10149
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/tests/privatemsgapi.test
@@ -0,0 +1,116 @@
+<?php
+
+/**
+ * @file
+ * Privatemsg API tests
+ */
+
+class PrivatemsgAPITestCase extends DrupalWebTestCase {
+  /**
+   * Implements getInfo().
+   */
+  function getInfo() {
+    return array(
+      // 'name' should start with what is being tested (menu item) followed by what about it
+      // is being tested (creation/deletion).
+      'name' => t('Privatemsg API functionality.'),
+      // 'description' should be one or more complete sentences that provide more details on what
+      // exactly is being tested.
+      'description' => t('Test sending, receiving, listing, deleting messages and other features via API.'),
+      // 'group' should be a logical grouping of test cases, like a category.  In most cases, that
+      // is the module the test case is for.
+      'group' => t('Privatemsg'),
+    );
+  }
+
+  /**
+   * Implements setUp().
+   */
+  function setUp() {
+    parent::setUp('privatemsg');
+  }
+
+  function testPrivatemsgApiNewThread() {
+    $author     = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+    $recipient1  = $this->drupalCreateUser(array('read privatemsg'));
+    $recipient2  = $this->drupalCreateUser(array('read privatemsg'));
+    $recipient3  = $this->drupalCreateUser(array('read privatemsg'));
+
+    // Reset user_access cache
+    user_access('', $author, TRUE);
+
+    $resultok1 = privatemsg_new_thread(array($recipient1, $recipient2, $recipient3), 'normal message', 'Body text', array('author' => $author));
+    $this->assertTrue($resultok1['success'], 'Private message could be sent successfully');
+
+    $message = $this->getMessageFromSubject('normal message');
+    $this->assertFalse(empty($message), 'Message was saved in database');
+    $this->assertEqual($message['author'], $author->uid, 'Message was sent by author');
+
+    $resultok2 = privatemsg_new_thread(array($recipient1, $recipient2, $recipient3), 'empty body', '', array('author' => $author));
+    $this->assertTrue($resultok2['success'], 'API allowed to send message without body');
+
+    $resultf1 = privatemsg_new_thread(array($recipient1, $recipient2, $recipient3), '', 'No subject', array('author' => $author));
+    $this->assertEqual('Disallowed to send a message without subject', $resultf1['messages']['error'][0], 'API denied to send message without subject');
+
+    $resultf2 = privatemsg_new_thread(array(), 'no recipients', 'Body text', array('author' => $author));
+    $this->assertEqual('Disallowed to send a message without at least one valid recipient', $resultf2['messages']['error'][0], 'API denied to send message without recipients');
+    $message = $this->getMessageFromSubject('no recipients');
+    $this->assertTrue(empty($message), 'Message was not saved in database');
+
+    $resultf3 = privatemsg_new_thread(array($recipient1, $recipient2, $recipient3), 'not allowed', 'Body text', array('author' => $recipient1));
+    $errormessage = 'User '. $recipient1->name .' is not allowed to write messages';
+    $this->assertEqual($errormessage, $resultf3['messages']['error'][0], 'API denied to send message from user without permission');
+    $message = $this->getMessageFromSubject('not allowed');
+    $this->assertTrue(empty($message), 'Message was not saved in database');
+
+    // Test with an input format that the author is not allowed to use.
+    $resultf4 = privatemsg_new_thread(array($recipient1, $recipient2, $recipient3), 'input filter not allowed', 'Body text', array('author' => $author, 'format' => 2));
+    $errormessage = t('User @user is not allowed to use the specified input format.', array('@user' => $author->name));
+    $this->assertEqual($errormessage, $resultf4['messages']['error'][0], t('User is not allowed to use the specified input format.'));
+    $message = $this->getMessageFromSubject('input filter not allowed');
+    $this->assertTrue(empty($message), 'Message was not saved in database');
+
+    // Send a message through the api to the same user and check if it marked
+    // as new.
+    privatemsg_new_thread(array($author), $subject = $this->randomName(10), $this->randomString(20), array('author' => $author));
+    $this->drupalLogin($author);
+    $this->drupalGet('messages');
+    $this->clickLink($subject);
+    $this->assertText(t('New'), t('Message is marked as new'));
+  }
+
+  function getMessageFromSubject($subject) {
+    $result = db_query("SELECT * FROM {pm_message} WHERE subject = '%s'", $subject);
+    return db_fetch_array($result);
+  }
+
+  function testPrivatemsgApiReply() {
+    $author     = $this->drupalCreateUser(array('write privatemsg'));
+    $recipient1  = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg'));
+    $recipient2  = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg'));
+    $recipient3  = $this->drupalCreateUser(array('read privatemsg'));
+
+    // Reset user_access cache
+    user_access('', $author, TRUE);
+
+    $resultok = privatemsg_new_thread( array($recipient2, $recipient1, $recipient3), 'test reply', 'body text', array('author' => $author));
+    $this->assertTrue($resultok['success'], 'Private message could be sent successfully');
+
+    $thread_row = $this->getMessageFromSubject('test reply');
+
+    $resultok = privatemsg_reply($thread_row['mid'], 'Test Body', array('author' => $author));
+    $this->assertTrue($resultok['success'], 'Reply could be sent successfully');
+
+    $resultok = privatemsg_reply($thread_row['mid'], 'Test Body', array('author' => $recipient1));
+    $this->assertTrue($resultok['success'], 'Reply could be sent successfully');
+
+    $resultf1 = privatemsg_reply($thread_row['mid'], '', array('author' => $recipient2));
+    $this->assertFalse($resultf1['success'], 'API denied to send message without body.');
+    $this->assertEqual($resultf1['messages']['error'][0], t('Disallowed to send reply without a message.'), 'Correct error returned when replying with an empty body.');
+
+    $resultf2 = privatemsg_reply($thread_row['mid'], 'Test Body', array('author' => $recipient3));
+    $errormessage = 'User '. $recipient3->name .' is not allowed to write messages';
+    $this->assertEqual($errormessage, $resultf2['messages']['error'][0], 'API denied to send message from user without permission');
+
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/views/privatemsg.views.inc b/drupal/sites/default/boinc/modules/contrib/privatemsg/views/privatemsg.views.inc
new file mode 100644
index 0000000..cced32d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/views/privatemsg.views.inc
@@ -0,0 +1,39 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for privatemsg.module
+ */
+
+function privatemsg_views_data() {
+  $data['users']['privatemsg_link'] = array(
+    'group' => t('Privatemsg'),
+    'title' => t('Send message'),
+    'field' => array(
+      'title' => t('Send Privatemsg link'),
+      'help' => t('Displays a link to send a private message to a user.'),
+      'handler' => 'views_handler_field_privatemsg_link',
+    ),
+  );
+  return $data;
+}
+
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function privatemsg_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'privatemsg') . '/views',
+    ),
+    'handlers' => array(
+      // field handlers
+      'views_handler_field_privatemsg_link' => array(
+        'parent' => 'views_handler_field',
+      ),
+    ),
+  );
+}
+
+
+
diff --git a/drupal/sites/default/boinc/modules/contrib/privatemsg/views/views_handler_field_privatemsg_link.inc b/drupal/sites/default/boinc/modules/contrib/privatemsg/views/views_handler_field_privatemsg_link.inc
new file mode 100644
index 0000000..c89d8a3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/privatemsg/views/views_handler_field_privatemsg_link.inc
@@ -0,0 +1,153 @@
+<?php
+
+/**
+ * @file
+ * Contains the privatemsg link views field handler.
+ */
+
+/**
+ * Provides a configurable link to the new message form for a specific user.
+ */
+class views_handler_field_privatemsg_link extends views_handler_field {
+
+  /**
+   * Add uid as a additional field.
+   */
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = 'uid';
+  }
+
+  /**
+   * Define our additional configuration setting.
+   */
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['text'] = array('default' => '', 'translatable' => TRUE);
+    $options['subject'] = array('default' => '', 'translatable' => TRUE);
+    $options['return'] = array('default' => TRUE, 'translatable' => FALSE);
+    return $options;
+  }
+
+  /**
+   * Define the configuration form for our textfield.
+   */
+  function options_form(&$form, &$form_state) {
+     $form['label'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Label'),
+      '#default_value' => isset($this->options['label']) ? $this->options['label'] : '',
+      '#description' => t('The label for this field that will be displayed to end users if the style requires it.'),
+    );
+
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+      '#description' => t('Define the text to use for the link title. You can use replacement tokens to insert any existing field output.'),
+    );
+
+    $form['subject'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Pre-filled subject'),
+      '#default_value' => $this->options['subject'],
+      '#description' => t('Define the subject that will be pre-filled in the send message form. You can use replacement tokens to insert any existing field output.'),
+    );
+
+    // Get a list of the available fields and arguments for token replacement.
+    $options = array();
+    foreach ($this->view->display_handler->get_handlers('field') as $field => $handler) {
+      $options[t('Fields')]["[$field]"] = $handler->ui_name();
+      // We only use fields up to (and including) this one.
+      if ($field == $this->options['id']) {
+        break;
+      }
+    }
+    $count = 0; // This lets us prepare the key as we want it printed.
+    foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
+      $options[t('Arguments')]['%' . ++$count] = $handler->ui_name();
+    }
+
+
+    // Default text.
+    $output = t('<p>You must add some additional fields to this display before using this field. These fields may be marked as <em>Exclude from display</em> if you prefer. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.</p>');
+    // We have some options, so make a list.
+    if (!empty($options)) {
+      $output = t('<p>The following substitution patterns are available for this display. Use the pattern shown on the left to display the value indicated on the right. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.</p>');
+      foreach (array_keys($options) as $type) {
+        if (!empty($options[$type])) {
+          $items = array();
+          $title = t(ucwords($type));
+          foreach ($options[$type] as $key => $value) {
+            $items[] = $key .' == '. $value;
+          }
+          $output .= theme('item_list', $items, $title);
+        }
+      }
+    }
+
+    $form['help'] = array(
+      '#type' => 'markup',
+      '#id' => 'views-tokens-help',
+      '#value' => '<div><fieldset id="views-tokens-help"><legend>' . t('Replacement patterns') . '</legend>' . $output . '</fieldset></div>',
+    );
+
+    $form['return'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Return to view after message was sent.'),
+      '#default_value' => $this->options['return'],
+      '#description' => t('Should the user be redirected back to the current view when the message was sent.'),
+    );
+  }
+
+  /**
+   * Renders our field, displays a link if the user is allowed to.
+   */
+  function render($values) {
+    if (isset($values->uid)) {
+      $uid = $values->uid;
+    }
+    elseif (isset($values->users_uid)) {
+      $uid = $values->users_uid;
+    }
+    else {
+      return '';
+    }
+    $text = t('Write private message');
+    if (!empty($this->options['text'])) {
+      $tokens = $this->get_render_tokens($this);
+      $text = strip_tags(strtr($this->options['text'], $tokens));
+    }
+    $subject = NULL;
+    if (!empty($this->options['subject'])) {
+      $tokens = $this->get_render_tokens($this);
+      $subject = strip_tags(strtr($this->options['subject'], $tokens));
+    }
+
+    $options = array();
+    if ($this->options['return']) {
+      $options['query'] = drupal_get_destination();
+    }
+
+    $data = '';
+    if (($recipient = user_load($uid)) && ($url = privatemsg_get_link(array($recipient), NULL, $subject))) {
+      $data = l($text, $url, $options);
+    }
+    return $data;
+  }
+
+  /**
+   * Only display the column for users with the appropriate permission.
+   */
+  function access() {
+    return privatemsg_user_access('write privatemsg');
+  }
+
+  /**
+   * Just do some basic checks, don't add "privatemsg_link" as field.
+   */
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/CHANGELOG.txt b/drupal/sites/default/boinc/modules/contrib/views/CHANGELOG.txt
new file mode 100644
index 0000000..4243d34
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/CHANGELOG.txt
@@ -0,0 +1,626 @@
+CHANGELOG for Views 2 for Drupal 6
+
+Views 2.x-dev
+  Bugs fixed:
+    o #768060 by EmanueleQuinto: Better empty field replacement that continues to respect other rewriting rules.
+    o #781050 by lewisvance: Performance improvement in unpack_options().
+    o #734706 by joachim: Use proper access control to prevent unregistered users from seeing links to inaccessible contact pages.
+    o #827188 by dereine: Comment ID field should be numeric, not the generic field handler.
+    o #827780 by dereine: Fix RSS feed live preview not getting proper PRE tags.
+    o #594402 by joachim: Clarify text on "Moderation" field.
+    o #839214 by AlexisWilke: Improve encoding on help text snippets.
+    o #792582 by ducktape: Validate that view names are not purely numeric, which cannot be loaded by views_get_view().
+    o #848506 by dereine: Add aggregator item ID as an aggregator field.
+    o #798764 by setvik: Fix broken AJAX in some IE circumstances due to odd IE behavior.
+    o #827300 by dereine: Fix authenticated users showing up as "No role" in role summary view.
+    o #611728 by incrn8: Respect db_rewrite_sql when choosing taxonomy terms for taxonomy filter.
+    o #746846 by lavamind: url encoding on options could cause visual problems in jump menu.
+    o #859368 by dereine: Click sort using wrong add_orderby() line caused some click sorts to fail.
+    o #852854 by bojanz: Grammar fix on taxonomy default argument help text.
+    o #526106 by Blackice2999: Fix occasional off-by-one-day problem with date arguments.
+    o #863666 by dereine: Revert button redirects to wrong place after view is reverted.
+    o #703980 by jmiccolis: Custom date needs to better support "r".
+    o #692988 by joachim: Eliminate an unnecessary query in taxonomy filter.
+    o #812608 by drunken monkey: Views outputs unquoted version in exports.
+    o #402944 by drewish: Cache views block list to reduce overhead when listing blocks.
+    o #832954 by dww: Fixed bug that was modifying global user->roles inside argument_validate_user.
+    o #889770 by tim.plunkett: Empty fields not always hidden based on row settings.
+    o #894618 by gilgabarr: Date "is between" filter not properly handled.
+    o #762484 by master-of-magic: Link to node status could be lost between rows.
+    o #908272 by jaydub: Fix incorrect length of view description form field.
+    o #772782 by mstrelan: Menu normal item menu should default to system default menu rather than  "navigation".
+    o #917916 by MyXelf: break delimiter not removed from formatted output.
+    o #571234 by dereine: Better handling of invalid exposed filters or other methods that cause a view to abort during the build process.
+    o #685554 by MyXelf: Illegal characters in View tag translated improperly when used in theming templates.
+    o #508832 by nick_vh: Documentation improvement on templates.
+    o #807540 by gfrenoy: Proper use of db_decode_blob() on serialized fields.
+    o #936828 by xjm: Empty field replacement not quite always working.
+    o #872000 by NaX: Comment edit field needs option to set destination so it can work like comment edit field.
+    o #799580 by dereine: api version of views exports should use views_api_version() not hardcoded number.
+    o #884440 by Amitaibu: Improve token encoding to eliminate double html entity encoding.
+    o #870828 by dereine: Typo in ajax form wrapper.
+    o #865482 by dereine: RSS options form does not include override.
+    o #366886 by Scott Reynolds: For "last comment time" if "count zero is empty" is set, use empty text for nodes with no comments.
+    o #611086 by dereine: add -url token to files that can fetch proper URLs with private filesystems.
+    o #635336 by dereine: Remove unused fields from views.
+    o #813422 by dereine and killes: Improved time-based caching expiration.
+    o #795270 by dereine: Remove unnecessary links to sections that will have no settings.
+    o #807540 Revert: Proper use of db_decode_blob() on serialized fields.
+    o #829550 by hefox: Better testing of batch form use by exposed filters.
+    o #570618 by dereine: Enforce denying access to disabled views more strongly.
+    o #667014 by dereine: Prevent notice with relationships and node row style if relationship has no endpoint node.
+    o #514128 by dylanvaughn: Use of for (i in foo) for arrays in javascript fails if other software is modifying the Array prototype.
+    o #755342 by jcmarco: Improve SQL date field handling.
+    o #338893 by dereine: Aggregator argument not always properly converted to title.
+    o #738172 by dereine: Fields rewritten to be links with just a fragment did not work.
+    o #514128 reverted.
+    o #787184 introduce the long awaited "Update and Override" button.
+    o #963382 by aidanlis: Fix typo in mathematical expression field help text.
+    o #713078 by achaux: Aggregator not properly using allowed tags from core.
+    o #944680 by rvilar: Properly t() untranslated string.
+    o #881680 by brianV and longwave: Avoid unnecessary invoking of view objects for argument validation when no argument validation is necessary.
+    o #767244 by Magnus: Fix some untranslatable strings due to less than and greater than characters.
+    o #881060 by benoit.borrel: Fix incorrect code sample on views_join documentation.
+    o #938806 by jenlampton: Node: title field should link to node by default.
+    o #956654 by mdupont: Translation for "offset" field in dates needed work.
+    o #931390 by dww: Optimize boolean logic by using "= 1" rather than "<> 0" for faster queries.
+    o #567918 by iamjon: Improve documentation for token replacement.
+    o #881468 by longwave: Improve performance by static caching results of argument validation because menu likes to double validate things.
+    o #964266 by dereine: cache_expire() missing $type.
+    o #477984 by demeritcowboy, fatstar415, mike dodd, dagmar: Properly handle value for "empty" and "not empty" special operators.
+    o #910864 by Bevan, dereine: exposed filter blocks should not be cached by core block caching.
+    o #970198 by kbk: Improve bulk export docs for handling PHP files.
+    o #741234 by voxpelli: Arguments should check for NULL along with empty string to find empty values.
+    o #768060 by EmmanueleQuinto, xjm, others: Make sure that render alter options do not accidentally get blown up for empty fields.
+    o #847724 by dereine: Allow jump menu "Summary" style to customize choose text, just like the regular summary style.
+    o #871578 by dereine: Comment "new" might not work right without a comment count field.
+    o #494380 by vaish: Problems with ajax and the same view displayed multiple times.
+    o #835544 by iamjon: export broke if key contained an apostrophe.
+    o #941990 by master-of-magic: Link to node when using relationships could occasionally lose track and create bad links.
+    o #965496 by ayalon: Update and Override broke validation of most views admin forms.
+    o #976200 by Bevan: [Edit View] links not always clickable.
+    o #979046 by travist: Fix PHP 5.3 problem in views_access with no arguments.
+    o #983606 by jonathan1055: Breadcrumb disappears on bulk export results.
+    o #769458 by anrikun: Fix double encoding of alt/title text on link rewriting.
+    o #318944 by dereine: Prevent warning in table view when user has no permission to view any fields.
+    o #416178 by dereine: Profile field checkboxes did not properly filter false values.
+    o #738792 by dereine: Delete button should be disabled when ajax form is open, just like save button.
+    o #898990 by dereine: Fix bad SQL generated on related terms relationship if no vocabularies selected.
+    o #684608 by dagmar: Default tid plugin was not properly backported from 3.x and so did not work.
+    o #468484 by dereine: Filter by unread not relationship safe.
+    o #909886: -Any- option shows up on boolean exposed filters even when not optional.
+    o #751308 by dereine: Provide an administrator warning when option_definition() data is incorrect.
+    o #817360 by John Morahan: Have Analyze button warn if view has no access control.
+    o #833220 by dereine: Properly validate value on date filter.
+    o #779668 by esteewhy: Fix not technically valid use of break statements.
+    o #751308 Revert: Provide an administrator warning when option_definition() data is incorrect.
+    o by dereine: Fix fatal error in the field term_node_tid handler.
+    o #995966 by dereine: Fix taxonomy field handler.
+    o #996634 by das-peter: Add missing rel to option_definition of the field handler.
+    o #808016 by dereine: Clarify short/medium/long date formats.
+    o #610418 by joachim: Add handler descriptions to handler edit forms.
+    o #759082 by dereine: Prevent invalid argument warning with no relationships.
+    o #946368 by dereine: User argument default ignoring node author checkbox in some cases.
+    o #777072 by Agileware: Option missing when using argument validator.
+    o #608926 by Longwave: Remove unused theme("nodate") functionality.
+    o #497936: Profile fields with dashes in their names cause bad queries.
+    o #759082 by dereine: Fix whitescreen due to incorrect relationship loop code.
+    o #1001542 by mikeytown2: view::set_display() has wrong return code when it fails.
+    o #996486 by geoffreyr: Improperly written SQL could crash when rewritten by tac_lite.
+    o #953718 by linclark: Register the special "broken" handlers for use with fields without handlers.
+    o #722330 by dereine: Views should include core version for updates.
+    o #1013170 by das-peter: Fix broken view::preview which was broken on #1001542.
+    o #452384 by sammys: Another PHP 5.3 fix.
+    o #696550: Taxonomy validator should always set title when it successfully validates.
+    o #839236: Fields named "buttons" would disappear from the rearrange UI due to conflict with the buttons on the form.
+    o #780768 by dereine: lack of clean URLs breaks some preview.
+    o #672864 by dboulet: cols- class incorrect on table, grid.
+    o #839810 by marcp: Get UID from URL argument default plugin should accept uids from Views pages.
+    o #1035168 by Ao: Fix strict warning in unread node filter.
+    o #988680 by mikeytown2: Fix Views memory leak with attachments.
+    o #1007376 by dereine: Jump menu was not correctly supporting offsets.
+    o #1019826 by penguin25: Respect contact page access overrides when displaying contact link.
+    o #534452 by dereine: Remove non-functional "optional" setting on string filters.
+    o #747782 by dereine: Improve jump menu grouping.
+    o #1096548 by dww: Fix convert of taxonomy fields.
+    o #1096366 by jamsilver: Role access plugin: Replacing array_unshift() with reset().
+
+  New features
+    o #841260: Introduce a field to evaluate math expressions. Relies on CTools 1.7 (not yet released).
+    o #727894 by stella: Give stronger classes on exposed widgets for easier theming.
+    o #464490 by dereine: Allow links to specify that they are absolute.
+    o #317653 by Steven Jones: Allow singular/plural formatting in numeric fields.
+    o #397252 by thekevinday: Allow "glossary" type views to do case insensitive searches.
+    o #843866 by dagmar: Allow summary views to specify their path rather than assuming the view path all the time.
+    o #348975 by dereine: Allow cloning of displays.
+    o #930714 by brad.bulger: Add aggregator GUID field.
+    o #785236 by e_log: Add aggregator field item id as a field.
+    o #835934 by dereine: Provide relationship from files to users.
+    o #935388 by infojunkie: Add post_build and post_execute hooks similar to post_render.
+    o #751970 by dereine: View list form auto submit on change.
+    o #868972 by dereine: Add a "summary" attribute for accessibility on table and grid styles.
+    o #607942 by dashton: Support "rel" attribute in link rewriting.
+    o #909332 by dereine: Add col-first and col-last classes to grid style.
+    o #368687 by dereine: Allow a relationship from node revision to master node.
+    o #867636 by chromix: Give jump menu an option to set default value to current path.
+    o #905712 by dagmar: Add Published/Not published as text options to published field.
+    o #970514 by moshe, dereine: Provide basic drush integration for views.
+    o #962564 by joshuajabbour: Allow link attributes to be rewritten (internally).
+    o #1054272 by dagmar: String filters are non optional anymore.
+    o #1079178 by Manuel Garcia: Provide a views revert drush command.
+    o #1096834 by dww: Allow importing views code that starts with '<?php'
+
+Views 2.11 (Jun 16, 2010)
+  Bug fixes:
+    o #770006 by macdee: Taxonomy term default plugin mysteriously broken.
+    o #767146 by bangpound: Validation not passed down into row style plugin.
+    o #513396 by yhager and jcisio: Views trim was not multibyte safe.
+    o #550420 by blauerberg: Views RSS did not properly pass readmore flag from node to RSS item.
+    o #781296 by dereine: Node: Type "link to its node" option broken.
+    o #769010 by andrea.gariboldi: Overuse of query substitutions fails on some databases.
+    o #607418: Fix queries broken with "ambiguous nid" due to uncommon relationships.
+    o #768162: Revert inadvertant change to grid style behavior.
+    o #815392 by killes and dereine: Incorrect construction of $account caused accidental non-permanent change to $user->roles.
+    o #723454 by dereine: Upgrade from 5.0 could cause blocks for views with long names to lose configuration.
+    o SA-CONTRIB-2010-067: Fix CSRF and XSS vulnerabilities.
+
+Views 2.10 (Apr 08, 2010)
+  Bug fixes:
+    o #765760 by crea: New setting for raw node type had wrong default.
+    o #682888 by jcmarco: With zen and zen subthemes, the new $classes array could fail for row styles.
+    o #765340 by dereine: <front> token accidentally removed by html entity stripping from URLs.
+    o #765352: Fix for postgress versions prior to 8.3 which caused data loss in update.php. Note: This will not repair lost data. If you experienced this you must restore your views_display table from backup.
+    o #766046: Live preview broken right after adding new display.
+    o #740130: #561892 not applied correctly, caused the 'rewrite' checkbox to be ignored and rewrite always used.
+    o #765296: field IDs could get out of sync, causing render path to try to render a field that did not exist leading to whitescreens.
+
+Views 2.9 (Apr 07, 2010)
+  Bug fixes:
+    o #650152: Book: Top Level Book relationship broken by earlier patch and caused broken query.
+    o #651244 by dagmar: Other instances of <Any> are not translatable and should not be run trhough t().
+    o #653628: init declaration for views_handler_filter_many_to_one() did not match parent init.
+    o #657700: Fixed 'Override normal sorting if click sorting is used' setting on the table style plugin that was broken by #622602.
+    o #473698 by jrglasgow: Fix error in help text regarding custom theming.
+    o #387448 by joachim: Provide better help text to describe how to use sticky sort.
+    o #652716 by dagmar: "no single" flag on filter objects not completely respected, causing improper default filters.
+    o #621780 by PaulMagrath: Even/Odd classes wrong with grouping due to row numbering no longer being sequential.
+    o #642328 by dboulet: Always include views.css since a site using Views probably uses it in blocks anyway.
+    o #629840 by fuerst: Search filter caused bad query on PostgreSQL.
+    o #329390: views_break_phrase could break under PHP4 due to reference error.
+    o #652742: Replacement pattern tokens for multiple fields did not work.
+    o #659510 by Souvent22 and dereine: glossary AJAX broken.
+    o #335599 by miro_dietiker: Remove the 95% width constraint on the admin hover links to be nicer to themes.
+    o #670308 by Mike Wacker: Make views_get_view() properly set disabled flag when retrieving default views.
+    o #536910 by dereine: Theme and language should be taken into account during caching.
+    o #627402 by dereine: Aggregator description needed more controllable input filtering.
+    o #416264 by bec: Dependency processing could cause exposed forms to disappear if used multiple times on the same page.
+    o #657442 by nicholasThompson and dagmar: Include "mail" field in user picture so that modules that need this do not break when rendering picture in Views.
+    o #329044 by gordon: Check to see if access plugin exists before using to prevent whitescreens.
+    o #455364 by sdrycroft: Prevent modules trying to define the same default view name from breaking everything.
+    o #422434 by BWPanda: Correct (NULL) to (NOT NULL) in varios operator descriptions for empty/not empty.
+    o #692428 by Roi Danton: Documentation typo fix.
+    o #713210 by dereine: Node language settings could persist for subsequent rows if they should not have had a language.
+    o #674772 by joachim: Unable to distinguish profile.module fields with same name in different profile categories.
+    o #727798 by SteveReher: Fix typo in overrides.html documentation.
+    o #621980 by yhahn: Namespace tabs.js to guarantee no conflicts with jQuery UI.
+    o #684656 by yhahn: Prevent Views from performing an unneeded variable_set() during block list.
+    o #455364 by iva2k: Default views were getting loaded twice.
+    o #737120 by james.williams: Fix help text for date offsets which gave incorrect information.
+    o #737118 by DeFr: Allow API calls to delete to not clear the views cache to facilitate batch operations.
+    o #673852 by yhahn: Allow access plugins to choose whether or not "access all views" should be used.
+    o #546586 by jeffschuler: String 0 values were being treated as empty therefore not displayed as fields.
+    o #651274 by dagmar: Show relationship labels in field lists for style config forms.
+    o #531686 by jweowu: Update process failed to properly track its history, causing errors when updating from really old sites.
+    o #638004 by stBorchert and BillyMG: If a field "Output as link" ends up with an empty path, do not actually print an empty link.
+    o #657384 by smoothify: Under rare circumstances, date default argument could get wrong value.
+    o #658842 by tomgf: Provide a proper ellipsis instead of "...".
+    o #662654 by dereine: Do not use query to load/validate a user if the user happens to be the logged in user.
+    o #640862 by dereine: Properly clear feed icon when cloning a view to prevent duplicate feed icons in attachments.
+    o #672044 by moshebeeri: Right-To-Left for views.css.
+    o #677936 by mr.baileys: "views-row-last" class accidentally omitted on grids with just one row.
+    o #673184 by markus petrux: Default views not always properly loaded by language.
+    o #433948 by dereine: "numeric" => FALSE not properly supported in handler definitions.
+    o #708618 by thsutton: Friendlier message when a handler is missing.
+    o #701588 by dereine: Delete button should say Revert on Overridden views.
+    o #508124 by dereine: "accept_null" should have been "accept null" in boolean filter definitions.
+    o #513396 by yhager: Attempt multi-byte safety for "trim at word boundary" setting.
+    o #418230 by Scott Reynolds: Views adds wrong nid with "Node: Has new content".
+    o #558602 by dboulet and Crashtest_: Summary views should provide "active" class on links properly.
+    o #496634 by dereine: Fix long-standing issue of "0" not being a valid argument for multiple integer CCK types.
+    o #521954 by Agileware: Allow taxonomy breadcrumbs to link to actual taxonomy page instead of back to view.
+    o #528838 by zzolo: If exposed form is in a block, and the form does not validate, ensure the form does not render twice.
+    o #727304 by mariusz.slonina: User edit link was disallowing users from editing themselves.
+    o #733142 by dereine: Link path field restricts input to too few characters for long links.
+    o #675264 by peck66: Freeform profile list field did not output properly.
+    o #663372 by dan.nsk: Allow tokens to work in the "target" field during link rewriting.
+    o #747418 by dereine: Fix taxonomy term ID bug introduced in #496634.
+    o #466250 by alex_b and dereine: Enlarge views_display field to prevent heavy displays from losing data.
+    o #689780 by deviantintegral: AJAX scrolling could go to wrong place.
+
+  Other changes:
+    o #570558 by yhahn: Segment default views caching to conserve memory used by Views during normal operation.
+    o #661676 by dagmar: Improve error handling during AJAX failures.
+    o #685622 by dereine: Field to provide link to a node revision.
+    o #484600 by dereine: Ability to disable the automatic live preview.
+    o #716236 by jmiccolis: Allow default menu tabs to also have menu entries.
+    o #550132 by tha_sun: Allow plugins to better control the callbacks used for page type displays.
+    o #548292 by mikeker: Create a "Node: path" field that can be used to display the aliased path to a node.
+    o #666912 by dereine: Prevent imports of views created by newer, incompatible versions of Views.
+    o #672864 by dereine: Add a column count class to the table style for themers to more easily do generic targeting.
+    o #552498 by dereine: User email as an argument.
+    o #515324 by dereine: Make API documentation easier to find.
+    o #488314 by yhahn: Allow relationship to fetch nodes from terms.
+    o #685938 by dereine: Sync preview widget to current tab to reduce WTFs when previewing the wrong display.
+    o #739448 by brunodbo: Allow "Jump Menu" to set the "Choose" text in style options.
+    o #730454 by stella: Add "translate" link along with view/edit/delete links on nodes.
+    o #474174 by dereine: Analyze will now warn about "node/%" not being a valid path for Views.
+    o #619642 by dereine: Allow argument for user language.
+    o #675154 by dereine and Crashtest_: Improvements to rendering trim text and tag stripping.
+    o #730810 by alex_b: Add fields for authmap table.
+    o #666920 by dereine: Include actual API version in exports.
+    o #689446 by dereine: Allow use of l() in link rewriting to not check for aliases.
+    o #684608 by dereine: Default argument to acquire a taxonomy tid from the URL or a node in the URL.
+    o #496840 by dereine: Allow boolean filters to define additional output formats and provide an additional for Node: Sticky.
+    o #689260 by dereine: Allow "Node type" field to output the machine name as well as the human readable name.
+    o #740686 by jacine: Introduce $classes array in views-view.tpl.php.
+    o #582348 by dagmar: Allow UI setting a CSS class for views-view.tpl.php
+    o #682030 by killes: Add term relation table integration.
+    o #339758 by dereine: Better handling for display of set options in multiple choice filters.
+    o #330160 by aditya_kristanto: Improve text to make it easier to find where to edit the view description.
+    o #765022: SA-CONTRIB-2010-036: Fix XSS and PHP vulnerabilities.
+
+Views 2.8 (Dec 02, 2009)
+  Bug fixes:
+    o #622602: Missing ORDER BY in some views with tables due to incorrect test for default table sorting.
+    o #623498 by marcp: total_rows should be filled in if fetching all records.
+    o #535206: Attachment displays repeat exposed filters because exposed filters were left hanging around during cloning.
+    o #450346 by lefnire: Inherit Exposed Filters sometimes hides part of the parent exposed filters
+    o #550560 by donquixote: Fix unterminated string in views.help.ini that breaks under php 5.3
+    o #592476 by Garrett Albright: Remove redundant CSS from views-list.css
+    o #366250 by Markus Petrux: Fix glitches with tabledrag and jQuery 1.3.
+    o #581616 by cangeceiro: Defend text color from themes in Views UI.
+    o #589484 by Markus Petrux: External styles could not properly provide advanced help files.
+    o #494490 by Niels Hackius: User picture incorrectly set as an inline element when it should be block.
+    o #616956 by neochief: Exposed form labels should have "for" keyword.
+    o #620046 by cedric: Date validate handler does not fallback properly causing sporadic improper validation.
+    o #628330 by dereine: Do not print n/a for empty formatted fields.
+    o #515564: Views UI would fail to rearrange with > 25 fields.
+    o #452384: Fix PHP 5.3 compatibility.
+    o #619884: Fix incorrect grouping for styles other than table.
+    o #539498: "Comments: Node link" did not work at all. Replaced with "Node: Add comment link" which is what that was supposed to do.
+    o #638916 by dereine: views.help.ini strings need quoting to continue to work in PHP 5.3
+    o #636988 by Steve McKenzie: Wrong ajax data could be sent in rare circumstances when using AJAX paging.
+    o #576386 by jmorahan: Fix book sort help text to be more accurate by not telling you to do something that will not work.
+    o #348130 by dereine: "<Any>" should not be translatable since it looks like HTML.
+    o #630430 by cafuego: Fix typo in argument text.
+    o #370651: Make Views AJAX work with mod_security enabled.
+    o #648438 by dww: In rare circumstances, unnecessary term_node tables could be joined in when adding term_data relationships.
+    o #639430 by dagmar: theme.inc warning when comments are displayed without links.
+
+  Other changes:
+    o #580320 by chaps2: Allow "always use more link" setting.
+    o #363516 by dagmar: Validate the uniqueness of exposed filter identifiers.
+    o #584880 by drewish: Wrong base field declarations fixed.
+    o #480162 by dereine: Count whitespace fields as empty for hiding labels.
+    o #623580 by dagmar: Move can_expose() method to base handler to deal with validation change made in previous commit.
+    o #626422 by vgarvardt: Static caching of validated taxonomy terms to improve taxonomy_term performance.
+    o #622608: Allow attachments to inherit pager data.
+    o #495606 by Roi Danton and dereine: Introduce views_get_view_result() as a fast way to get just the results of a view.
+    o #614040 by dereine: Introduce hook_views_plugins_alter()
+    
+Views 2.7 (Nov 02, 2009)
+  Bug fixes:
+    o Table style when not overriding sorts put sorts in wrong order.
+    o #488908 by sl27257: "Node: Has new content" only worked when exposed.
+    o #451110 by wonder95: Fixed missing word in transform case help text.
+    o #385904 by JirkaRybka: Prevent duplication of id edit-submit on views exposed form.
+    o #489888 by TheRec: Remove erroneous "alt" attribute from <a> when using link rewriting.
+    o #499078 by Darren Oh: Make sure theme is initialized for pre_render hook.
+    o #490516 by v_20q: Some fields not properly being marked as translatable due to option unpacking bug.
+    o #484222 by dereine: Attachment displays were ignoring access settings.
+    o #503098 by Davide Goode: Feed displays should have link displays since they link to a page display.
+    o #381346 by ayalon: Allow Taxonomy: Tid as a field, which is now needed for rewrites which may need tids.
+    o #485296 by overall and deekayen: Remove unnecessary t() call.
+    o #460838 by Darren Oh: Make DISTINCT more distinct.
+    o #503774 by dereine: Cache time failed to return the proper cutoff time.
+    o #506098: Table sorting with no default was overriding sorts even tho it was not supposed to.
+    o #407538: Ensure views_break_phrase() will stop providing warnings on empty strings.
+    o #420850 by dereine: Commas should not be used to separate items in a profile list field.
+    o #482162 by agentrickard: link path needed further sanitization to properly encode special characters.
+    o Tables would not accept 0 as having data so columns with zeroes would lose data when merging with other columns.
+    o #529164: Fatal typo in profile list field.
+    o #537870 by dww: Fixed a bug in the [uplodate_fid-size] token where format_size() was called on it twice.
+    o #510910 by mfb: Fixed bug where multiple fields sharing a column in a table was broken so only the final field would display.
+    o #546586 by dww: Fixed bugs that prevented '0' being a valid rewrite text or empty text for a view field. Also fixes a logic bug regarding the handling of the 'Count the number 0 as empty' setting.
+    o #507884 by TheRec: Removed matching title (alt) attribute on node links.\
+    o #468370 by emackn: Proper timezone support on postgres.
+    o #508124 by voxpelli: Optionally allow boolean to treat NULL as FALSE.
+    o #487528 by dereine: Fix typo in 'Maximum length' field instructions.
+    o #303800 by Justin W Freeman: Improve dashes to spaces transformation.
+    o #538530 by elcuco: Views export textareas should be LTR.
+    o #538204 by dereine: User picture should be sortable.
+    o #540122 by stella: Attachment displays should attach even if arguments caused the primary display to abort.
+    o #544098 by joachim: Fix validation quirks with defaulted handlers.
+    o #485872 by dereine: Make sure views.css is always loaded for all users.
+    o #442982 by killes: Make destroy() method more robust so that views are more readily reused.
+    o #520558 by bdurbin: node access filter not properly checking 'view'.
+    o #535424 by Hugo Wetterberg: Download file link could provide empty a tag if no file is available.
+    o #554000 by killes: Preview checking wrong flag for preview state causes feeds to display incorrectly when embedded.
+    o #554016 by webchick: views_embed_view() should check view access.
+    o #523222 by gpk: Contact link should not be allowed for the anonymous user.
+    o #563540 by dereine: Fix description of cache plugin settings.
+    o #564536 by dereine: Node links should allow language setting from node data.
+    o #551752 by dereine: Clean up row counter code.
+    o #451208 by dereine and superbaloo: Fix grid style to not leave missing tds in bottom row.
+    o #561892 by dereine: Unchecking "rewrite this field" but leaving a value caused field to be rewritten anyway.
+    o #408894 by dereine: Views AJAX incorrectly used "access content" permission.
+    o #574150 by dereine: Remove user search because user.module does not store user keywords.
+    o #511908 by dww: Too many check plains in selects because of problems with checkboxes.
+    o #502348: Move advanced rendering up the chain a little bit to allow for non-standard uses of fields, such as grouping, to use advanced rendering features.
+    o #619884: Grouping fields ignored indexes (as a result of #502348) and appeared to group incorrectly.
+    o #411566: Fix warning when 0 given as a taxonomy tid to the validator.
+    o #607952 by markus_petrux: Need check plain on "additional" queries.
+    o #593910: Off by 1 error on Views row counter.
+
+  Other changes:
+    o Implement a post_render hook (for themes too) and cache method.
+	o #501552 by neclimdul: Work around a core bug with DISTINCT on nodes.
+	o #430068 by overall and aclight: Improvements to the global "counter" field.
+	o #492002 by iterato: Allow "target" specification in field linking.
+	o #466454 by neclimdul: PHP strict fixes.
+	o Can now directly add a taxonomy term relationship to nodes, allowing more control by vocabulary.
+	o #472194: !1 can now be used with field rewriting to get the raw argument.
+	o #480162: Fields row style now contains option to hide empty fields.
+	o #433318: Special handling for empty fields, allowing them to avoid rewriting and not be displayed.
+    o #354457 by ausvalue: Example integrating node_example.module with Views API.
+    o #479728 by enboig: Allow "Does not start with" and "Does not end with" as string operators.
+    o #511468 by dereine: State which view was saved after saving a view.
+    o #520632 by DamZ: Add comment hostname and mail to available comment fields.
+    o #523580 by JirkaRybka: More documentation on Reduce Duplicates option.
+    o #510920 by apanag: Add set_current_page() method to view class.
+    o #337741 by joachim: Allow profile fields to have "link to user" option.
+    o #534680 by dagmar: Visual indicator if checkbox will expand options.
+    o #512650 by sdboyer: Multiple many to one arguments on the same relationship were not relationship safe.
+    o #536994 by dboulet: Store result in variables for use in unformatted style.
+    o #458194 by voxpelli: Add first and last row classes to table style.
+    o #254895: Add form to clean up Views 1 tables.
+    o If you have CTools 1.3 enabled, you can use a "Jump Menu" style for both summaries and normal Views.
+
+Views 2.6 (Jun 10, 2009)
+  Bugs fixed:
+    o #419226 by kelvincool: Respect admin theme during views ajax operations.
+    o #419270 by voxpelli: set_where_group() could fail if no previous groups.
+    o #422054 by yhahn: Protect exports from impropertly indenting multiline strings.
+    o #437070 by mikeryan: Base table formerly limited to 32 characters.
+    o #317271 by quicksketch: ensure_my_table() limited to one relationship per table.
+    o #441520 by jonathan1055: Allow the "time ago" date format to work on future dates as well.
+    o #445398 by casey: reduce_value_options() using wrong value array.
+    o #451370 by skwashd: base.js had some DOS line endings.
+    o #454754 by dww: Fix PGSQL related errors with comment author filtering.
+    o #384286 by dww: Make it possible to expose the filter for "Node: Has new content"
+    o #463634 by alienbrain: "Empty field name" incorrectly specified.
+    o #463580 by ximo: AJAX summary links broken in some displays.
+    o #468336 by psynaptic: Fix broken hook_views_admin_links_alter
+    o #422868 by mattman: Breadcrumbs not properly substuting % replacements.
+    o #440676 by dereine and Razorraser: View import form crashed on empty view input.
+    o #461842 by dereine: Use gmtime() instead of format_date() to prevent localization of dates in RSS feeds.
+    o #316556 by darrenoh and JirkaRybka: More 1.x upgrade fixes.
+    o #382398 by elcuco: Force LTR in the views admin.
+    o #461144: Fix trimming to correctly remove tags when they are trimmed in half.
+    o #330956: Theme: Information only scanned information from the default theme.
+    o SA-CONTRIB-2009-037: Filter checkboxes could be displayed unfiltered allowing XSS attacks.
+
+  Other changes:
+    o #298616: Add argument for node updated time similar to node created time.
+    o #325607 by bangpound: Automatically sort exports from bulk export.
+    o #323049 by yched: Allow Empty/Not Empty on select many to one.
+    o #340701 by swentel: Restore allowing Views to set block caching mode.
+    o #347892 by dww: Allow <any> option in Boolean filters.
+    o #358314 by brmassa: Catch the exposed filter form so it doesn't process twice on a single view.
+    o #154865 by Zack Rosen, josh_k and KarenS: Allow user contact form as a field.
+    o #411880 by fgm: Add "options callback" to items using in_operator handler.
+    o #360657 by yhahn: new hook_views_default_views_alter().
+    o #430068 by dereine: New global counter field for displaying row number.
+    o #420340 by derine: Translate node type filter.
+    o #325796 by yang_yi_cn: Translate node type argument.
+    o #446726 by yhahn: Improved performance for js dependencies.
+    o #437760 by leeneman: Remove duplicate terms from taxonomy term argument title.
+    o #354270 by dereine: Allow "tag" to be added to the theme template suggestions.
+    o #408180 by joachim: Allow taxonomy term parent argument.
+    o #469456 by dereine: Automatically give .info file during views bulk export.
+    o #424460 by thePanz: Customizable breadcrumb title for arguments.
+    o #436398 by Pasqualle: Support for aggregator category table.
+    o #424648 by quicksketch and dereine: Allow format selection on filesize field.
+    o #478312 by yhahn: Provide specific node access filter.
+    o #479878 by dereine: User language field.
+    o #468824 by eaton: Pluggable caching mechanism which can cache both the query result and rendered result.
+    o #399534 by clemens.tolboom and drewish: Add fragment and query string as options when making fields into links.
+    o #315915 by dixon_: Add another base row class to rows.
+    o #353403 by agentrickard: Field to provide "more" text.
+    o #377896 by dereine: When ticked "link to node" show node title as a href title attribute.
+    o #386098 by dereine: Add "watchdog" as a debug logging options.
+    o #409428 by gpk: Missing field: node input format.
+    o #271833 by grugnog, agentrickard and others: Taxonomy depth in filter.
+
+Views 2.5 (Apr 11, 2009)
+  Bugs fixed:
+    o #363817 by thePanz: Empty fields in table could still trigger separators.
+    o #388952 by nikita at protsenko.com: Ensure taxonomy term validator sets the validated title when available.
+    o #392176: Trim on word boundary would stop at newlines.
+    o #415706 by dww: Fix broken relationship in search that caused SQL error.
+    o #428742 by fralenuvol: Fix broken relationship causing sql error with multiple taxonomy term arguments.
+    o #428102 with help from deviantintegral: Broken option_definition() causes warnings.
+
+  Other changes:
+    o #379382 by neochief: Add option to strip tags during advanced rendering.
+    o #400914 by joachim: Add a link field to get to comments for a node that works just like the normal links.
+    o #402650 by drewish: Bulk export views alphabetically by view name.
+    o #349157 by yched: Support CCK build modes in node style.
+
+Views 2.4 (Apr 7, 2009)
+  Bugs fixed:
+    o #371466 by dereine: Fix incorrect link to comments.
+    o #371923 by noahb: Summaries could be distinct even when they should not be.
+    o #368764: Fix User ID validator to actually have proper dependencies.
+    o #375342 by dww: node_comment_statistics should be INNER joined because there is always 1:1 reference.
+    o #372959: Archive view should not use AJAX by default.
+    o #373155: Not clearing "many to one" data breaks some attachment displays.
+    o #375000 by elcuco: View name should always be LTR.
+    o #378534 by dww: Validators do not fire if argument === 0 due to PHP loose type conversions.
+    o #378164 by yched: Unexposed taxonomy filter could accidentally stop working.
+    o #371923 by David_Rothstein: Another DISTINCT fix related to summaries.
+    o #365831 by tomiyana: Fix typos in help.
+    o #357368 by Pasquale: schema descriptions should not be translated.
+    o #379602 by dww: Add a second "time ago" variant to dates to allow NOT printing the word "ago".
+    o #379354 by neochief: Add an extra regex to remove mangled HTML entities in output rewriting.
+    o #362830: Search was mostly broken, especially score but also searching on multiple terms.
+    o #350376 by pfournier: Missing "return" statement caused certain argument date validation to fail.
+    o #364082 by hass: Unique key missing on views_view table.
+    o #366250 by sirkitree: Fix deprecated jquery selectors so we can work with jquery 1.2.6 as well as 1.3.2.
+    o #386986: 2 or more relationships could block a normal table from being added.
+    o #371219 by aclight: Incorrect logic in views_many_to_one_helper::ensure_my_table() 
+    o #376570 by yhahn: Better AJAX scrolling.
+    o #412576 by yhahn: Restore missing views_handler_filter_float class.
+    o #378710: Add strip_tags() to path when displaying a field as a link as a path can never have HTML in it.
+    o #380560: UI could suddenly cause errors with get_handlers() in certain situations with relationships.
+    o #342215: Occasional "holes" could appear in taxonomy term field causing query errors when relationship is used but not present.
+    o #414074 by dereine: Prevent fields becoming not editable by having just spaces in them in the Views UI.
+    o #378724: Displaying uploaded files as a link accidentally made the entire field a link rather than each one.
+    o #415672 by yhahn: Views inadvertently rounds negative numbers down instead of up when truncating.
+    o #408414 by rb7: Prevent empty links with the "has new comments" field.
+    o #406680 by Büke Beyond: Missing clear-block caused problems in IE for Views UI.
+    o #373771 by dropcube: Fix missing aggregator feed trying to use non-existing handlers.
+    o #341960 by sun: Clean up dependent.js javascript declarations which potentially caused .js errors.
+    o #372227: On Debian etch, tables would lose fields due to PHP bug.
+
+  Other changes:
+    o #375182 by vaish: Allow a reset parameter to views_get_all_views().
+    o #356276 by nedjo: Locale support.
+    o #316556 by Darren Oh: Better Views 1.x upgrades.
+    o #383242 by dww: Allow - Any - instead of <Any> as an option in the Views tools menu.
+    o #303800 by KarenS: Additional dashes to spaces option in taxonomy argument validator.
+    o #327366 by yched: Allow row styles to follow relationships too.
+    o #405130 by dereine: Make the output field rewrite a textfield rather than textarea.
+
+Views 2.3 (Feb 6, 2009)
+  Bugs fixed:
+    o #349739: Fix arguments not getting transmitted to attachment displays properly.
+    o #354707: Display attachment happened too early preventing default arguments from passing to the attachment.
+    o #277321 by nedjo: Use AJAX properly supports summaries in attachments.
+    o #291292 by sammys (reroll by jaydub): Proper use of DISTINCT on summary views on pgsql.
+    o #291079 by sammys (reroll by jaydub): Fix use of GROUP BY on pgsql.
+    o #295246 by webchick: Wrong table type on views object cache caused truncation of cached data and mysterious errors on large views.
+    o #315007 by Garrett Albright, Paul Kishimoto and catch: Take into account page count when using comment new link.
+    o #317562 by ingaro: Wrong date format for PGSQL.
+    o #327604 by mr.baileys: Fix improper use of multibyte library when mb library unavailable.
+    o #335926 by sapark and drewish: "January, 2009" should be "January 2009".
+    o #341263 by cdale: Prevent exposed filter forms from processing during batch operations.
+    o #342322 by drewish: Correct label for translation status.
+    o #343223 by alienbrain: Ensure path before join.
+    o #343284 by andypost: Fix odd/even reversed in table style compared to Drupal core.
+    o #345545 by mfb: Correct occasional Drupal.settings related javascript error.
+    o #345546: Fix Node: Created day argument off by 1 error.
+    o #345707 by aries: Do not display breadcrumb link if no link text.
+    o #355939 by yhager: Fix missing comment GUID in comment RSS style.
+    o #321332 with help from brahms: views_handler_field_markup only worked if format was named "format".
+    o #348322 by Darren Oh: Fix missing /code in api plugins help.
+    o #353090 by eaton: RSS feeds were not using all of the Drupal hooks to ensure full compatibility with core feeds.
+    o #293832 by drewish: Allow menu items to have administrative description.
+    o #345528: Mini-pager generated invalid HTML with empty li tags.
+    o #351745: Exposed taxonomy term autocomplete filter failed if term existed in multiple vocabularies.
+    o #353002: tracker view had wrong argument and was not picking up comments by the selected user.
+    o Case sensitivity on string filter checkmark was backward.
+    o #355919: views_theme() needed to include plugin theme files to detect functions.
+    o #353515: Many characters could get incorrectly translated in exposed filters combined with ajax tablesorting.
+    o #359818: Delete button should say Revert when reverting a view to default.
+    o #359132 by grugnog: CSS files should be marked conditional so they don't impact the CSS cache.
+    o #360637: Extra slash in theme includes could cause some systems to fail.
+    o #363081: Disabled views could still provide blocks.
+    o #366666 by Deadmonk also yched: File size field should not try to print a size on NULL values.
+    o #367203: Improper caching of default views caused incomplete handlers that could WSOD.
+    o #365283: views_handler_filter_ncs_last_updated improperly registered causing fatal errors trying to use it.
+    o #365712: select list exposed filters were trying to limit to list when selecting "All" even when "limit" was not selected.
+    o #357196 by Grugnog: hook_views_pre_view not getting $display_id sent properly.
+
+  Other changes:
+    o #288801 by drewish and eaton: Aggregator item support! Make views of feeds!
+    o #335647 by markus_petrux: Add memory and a reset button to the Views list page.
+    o #343047 by alienbrain: Allow all handlers to participate in view validation.
+    o #339223 by greggles: Allow taxonomy term tid to be sortable.
+    o #324378 by eigentor: CSS improvements to the view list page.
+    o #354736 by Shai: Clarification on exposed filter text.
+    o #364637 by moshe and dww: Allow preprocessors to add row classes to table style.
+    o #349178 by agentrickard: Add generic link handling plus a custom text field. Also automatic trimming.
+    o #368234 by dww and neclimdul: Allow the "Anonymous" user to have a different (or no) name in User: name field.
+    o #368754 by dww: User ID validator, with role testing.
+    o #369505 by dww: Add helper function to get the value of a view argument.
+    o #353002 by neclimdul: Provide a filter for user posted or commented on to complement the argument with the same functionality.
+
+  2.3 API Notes:
+    A minor change in the API now requires that styles that render fields MUST 
+    render them in order, first by row and then by field ID. Not doing so will
+    cause the token expansion to fail.
+
+Views 2.2 (Dec 16, 2008)
+  Bugs fixed:
+   o #305756: Number formatting caused illogical rounding.
+   o #324272 by neochief: hook_pre_render never called.
+   o #324058: Broken queries created by string values in multiple fields.
+   o #324726: "tag" fields should be autocomplete in View edit.
+   o #324058 by yched: Make aliases safer for many to one tables.
+   o #325765: Prevent key merge errors on query::add_where and query::add_having.
+   o #324378: Minor usability improvements to the list page.
+   o #326934: Need another check to make sure already added aliases do not get blown away.
+   o #324513: If a relationship table was added more than 1 hop away from the base, SQL errors resulted.
+   o #326129 by mindgame: Not between operator did not function.
+   o #326198: != mistakenly typod as = (display only)
+   o #326379: Provide a default title for the archive view.
+   o #327151: Add filter for node_counter.timestamp.
+   o #327113: Clean up error text when display will not validate.
+   o #307287: (Panels related) view::preview() would override previously set arguments if no arguments were sent.
+   o #321589: Comment template preprocessor misnamed so it would not fire.
+   o #329746: Comment rendering in the node row style was not working.
+   o #321109: view::destroy() needs to unset current_display or future init_displays won't work.
+   o #325115: If the block description is not set, show the display title as well as the view name in block administration.
+   o #327604 by henrrrik: should use multibyte string functions.
+   o #328933 by cmyers: views_handler_filter_date fails to use exposed operator.
+   o #332568 by Moonshine: Correct views performance timers.
+   o #332679 by yched: render_link() does not check for empty data.
+   o #333593: Incorrect reference to non-existent views_handler_join in help/api-tables.html.
+   o #334337 by miro_dietiker: Documentation clarification for arguments, blocks and PHP Code plugins.
+   o #336456 by dww: Date filter had trouble with NULL operators.
+   o #336125 by nedjo: Missing filter for node translation.
+   o #337360: Menu selection causes crash if menu module not active.
+   o #339295 by katbailey: AJAX paging could fail with the same view in multiple tabs.
+   o #339676 by nedjo: Source translation had wrong filter handler.
+   o #340002 by hass: Allow the "Add display" button to wrap for translations whose phrase is longer.
+   o #340033 by pancho: Clearer wording on some field help texts.
+   o #340515: views_perm() was incorrectly views_ui_perm().
+   o #330897: Invalid displays causing 'path' lookup to crash.
+   o #339674 by nedjo: Translation code cleanup.
+   o #341897: views_perm() mistakenly declared in views_ui.module.
+
+ Other changes:
+   o Reorganize the analysis code into analyze.inc to make it easier for people to find the code and use it externally.
+   o #298884 by neclimdul: Requested missing filter to filter for whether a user has a picture or not.
+   o #336531 by dww: Set boolean filter to not use a checkbox which is lesser UI.
+   o #338632 by drewish: Remove use of format_rss_channel and use proper templating instead.
+   o #326034 by yched: Allow short names in admin summaries via new "title short" definition.
+   o #335613 by swentel: Add hook_views_api() setting to bulk export.
+   o #339707 by nedjo: Add filter to show child translations.
+   o #284768 by drewish: Proper templates for RSS feeds rather than format_rss_item().
+
+
+Views 2.1 (Oct 20, 2008)
+ Bugs fixed:
+   o #322862: 1.0037 debug code left in.
+   o #322908: README.txt update.
+   o #323014 by yched: Typo in exposed filter text.
+   o #323033: Using empty/is not empty in string/numeric filters caused notices.
+   o #322874 by yched: Errors in summary for some filters.
+   o #323282: Taxonomy term default choice handled incorrectly.
+   o #323318: Exposed taxonomy term failed if not set force single.
+
+Views 2.0 (Oct 17, 2008)
+ o First 2.0 official release
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/views/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/README.txt b/drupal/sites/default/boinc/modules/contrib/views/README.txt
new file mode 100644
index 0000000..52dc458
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/README.txt
@@ -0,0 +1,27 @@
+
+Welcome to Views 2. Please see the advanced help for more information.
+
+If you're having trouble installing this module, please ensure that your 
+tar program is not flattening the directory tree, truncating filenames
+or losing files.
+
+Installing Views:
+
+Place the entirety of this directory in sites/all/modules/views
+
+Navigate to administer >> build >> modules. Enable Views and Views UI.
+
+If upgrading from Drupal 5 and Views 1, your views need to be
+converted manually. See administer >> build >> modules >> views >> tools >> convert.
+
+If you're new to Views, try the Simple Views module which can create some
+often used Views for you, this might save you some time.
+
+Recommended modules for use with Views:
+  CCK
+  Voting API
+  Views Bonus Pack
+  Views Bulk Operations
+
+Experimental modules:
+  Views OR
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/css/views-admin.css b/drupal/sites/default/boinc/modules/contrib/views/css/views-admin.css
new file mode 100644
index 0000000..9082493
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/css/views-admin.css
@@ -0,0 +1,661 @@
+
+/*
+ * Summary pad
+ */
+/* set up some defaults so weird themes don't override us too badly. */
+.views-tabset {
+  color: #494949;
+  background-color: white;
+}
+
+.views-tabset a:visited,
+.views-tabset a:hover,
+.views-tabset a {
+  color: #027AC6;
+}
+
+.views-tabset .views-tab fieldset {
+  margin-top: 0;
+}
+
+/*
+ * First column: display drawers
+ */
+.views-tabset .views-tabs {
+  background: #F6F6F6;
+  border-top: #D6DBDE 1px solid;
+  border-bottom: #D6DBDE 1px solid;
+  border-left: #D6DBDE 1px solid;
+  float: left;
+  width: 117px;
+  margin-right: 0;
+}
+
+* html .views-tabset .views-tabs {
+  width: 114px;
+  position: relative;
+  left: 4px;
+}
+
+.views-tabset .views-tabs ul {
+  list-style-type: none !important;
+  list-style-image: none !important;
+  padding: 0;
+  margin: 0;
+  position: relative;
+}
+
+.views-tabset .views-tabs ul li {
+  background: #efefef;
+  list-style-type: none;
+  list-style-image: none;
+  line-height: 100%;
+  border-bottom: #D6DBDE 1px solid;
+  margin: 0;
+  padding: 0;
+  position: relative;
+}
+
+.views-tabset .views-tabs ul li.active {
+  background: #fff url(../images/arrow-active.png) no-repeat right;
+  position: relative;
+  width: 118px;
+  margin-right: -1px;
+}
+
+.views-tabset .views-tabs ul li a {
+  display: block;
+  font-size: 90%;
+  color: #777;
+  font-weight: normal;
+  padding: 0.5em;
+}
+
+.views-tabset .views-tabs ul li a:hover {
+  background-color: #f6f6f6;
+  text-decoration: none;
+}
+
+.views-tabset .views-tabs ul li.active a {
+  color: #000;
+  font-weight: bold;
+}
+
+.views-tabset .views-tabs ul li.active a:hover {
+  color: #000;
+  background: #fff url(../images/arrow-active.png) no-repeat right;
+}
+
+.views-tabset .extra {
+  text-align: center;
+  margin-right: 0;
+}
+
+.views-tabset .extra input {
+  margin-top: 0;
+  margin-right: 0;
+  white-space: normal;
+}
+
+/*
+ * Three columns with setting-summaries
+ */
+.views-tabset .views-display {
+  border: #D6DBDE 1px solid;
+  margin-left: 118px; /* 118 -1 causes borders to overlap */
+  min-height: 302px;
+  _height: 300px; /*stupid IE hack */
+}
+
+* html .views-tabset .views-display {
+  margin-left: 114px;
+}
+
+div.views-display-deleted,
+div.views-display-deleted div.top,
+div.views-display-deleted div.tab-section {
+  background-color: #eee;
+}
+
+.views-display {
+  background: #fff;
+}
+
+.views-display div {
+  font-size: 8pt;
+  line-height: 12pt;
+}
+
+.views-display .top {
+  padding: 0.5em 0em 0em 1em;
+  background: #fff;
+}
+
+.views-display .top .display-title {
+  font-weight: bold;
+}
+.views-display .top .display-description {
+  margin-left: 1em;
+  font-style: italic;
+  overflow: hide;
+  white-space: nowrap;
+  font-size: 90%;
+}
+
+.views-display .tab-section {
+  width: 32.5%;
+  padding: 0;
+  margin: 0;
+  float: left;
+  min-height: 273px;
+  _height: 274px;
+}
+
+.views-display .tab-section .inside {
+  margin: 0.5em 0.5em 0.5em 1em;
+}
+
+.views-display .tab-section .inside .views-category {
+  margin-bottom: 1em;
+  background: #f6f6f6;
+  border: 1px #efefef solid;
+}
+
+.views-display .tab-section .inside .views-category-content {
+  padding: 0em 0em 0.5em 1em;
+}
+
+.views-display .tab-section .inside .views-category-title {
+  padding: .1em .1em .1em .3em;
+  margin: 0 0 .1em 0;
+  font-size: 9pt;
+  font-weight: bold;
+  background-color: #efefef;
+  border-bottom: 1px #efefef solid;
+}
+
+.views-display .tab-section .links {
+  float: right;
+  font-size: 6pt;
+  position: relative;
+  display: inline;
+}
+
+.views-display .tab-section .links a {
+  font-size: 6pt;
+  font-style: italic;
+}
+
+.views-display .form-submit,
+#views-ajax-pad .form-submit {
+  margin: 0;
+}
+
+.views-display .middle {
+  width: 34%;
+}
+
+.views-basic-info {
+  margin: 0.5em 0em 0 0;
+  padding: 0.5em;
+}
+
+/*
+ * AJAX pad, the bottom part where settings are edited.
+ */
+#views-ajax-pad {
+  background: transparent;
+  margin-top: 0px;
+}
+
+#views-ajax-title {
+  background: #f6f6f6;
+  color: #000;
+  border-left: #D6DBDE 1px solid;
+  border-right: #D6DBDE 1px solid;
+  margin: 0 0 0 118px;
+  padding: 1em 1em 0em 1em;
+  font-weight: bold;
+}
+
+#views-ajax-pad .message {
+  background: #f6f6f6;
+  color: #000;
+  margin-left: 118px;
+  border: #D6DBDE 1px solid;
+  border-top: 0;
+  /* padding: 3em 0em; */
+  text-align: center;
+  font-style: italic;
+}
+
+#views-ajax-pad form {
+  background: #fff;
+  color: #000;
+  margin-left: 118px;
+  border: #D6DBDE 1px solid;
+  padding-top: 3px;
+  border-top: 0;
+}
+
+#views-ajax-pad .views-messages {
+  background: transparent;
+  margin-left: 118px;
+  padding: 5px;
+  border: #D6DBDE 1px solid;
+  border-top: 0;
+}
+
+#views-ajax-pad .form-buttons {
+  margin: 0;
+  padding: 0.5em 1em;
+  background: #f6f6f6;
+  clear: left;
+}
+
+#views-ajax-pad .clear {
+  clear: left;
+}
+
+#views-ajax-pad .form-buttons .form-submit {
+  margin: 0 .5em 0 0;
+  padding: 0;
+}
+
+#views-ajax-pad .form-item {
+  margin: 0.5em;
+  padding: 0em 0.5em;
+}
+
+/* These put checkboxes closer together */
+#views-ajax-pad .form-checkboxes .form-item,
+#views-ajax-pad .form-checkboxes .description,
+#views-ajax-pad .form-checkboxes input,
+#views-ajax-pad .form-radios .form-item,
+#views-ajax-pad .form-radios label,
+#views-ajax-pad .form-radios input {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+#views-ajax-pad .form-item .form-checkboxes,
+#views-ajax-pad .form-checkboxes input,
+#views-ajax-pad .form-checkboxes label,
+#views-ajax-pad .form-item .form-checkboxes .form-item,
+#views-ajax-pad .form-item .form-radios,
+#views-ajax-pad .form-radios input,
+#views-ajax-pad .form-radios label,
+#views-ajax-pad .form-item .form-radios .form-item {
+  padding-left: 0;
+  margin-left: 0;
+}
+
+#views-ajax-pad .form-checkboxes .description,
+#views-ajax-pad .form-radios .description {
+  margin-left: 2em;
+}
+
+#views-ajax-pad {
+  display: none;
+}
+
+html.js #views-ajax-pad {
+  display: block;
+}
+
+.views-override,
+.views-expose {
+  padding: 0.5em 1em 0em 1em;
+}
+
+#views-ajax-pad .views-override .form-submit,
+#views-ajax-pad .views-expose .form-submit {
+  float: right;
+  margin: 0 .5em 0 1em;
+}
+
+#views-ajax-pad .views-expose .description,
+#views-ajax-pad .views-override .description {
+  margin-bottom: .25em;
+}
+
+/*
+ * Some column widths for use within the ajax pad
+ */
+#views-ajax-pad .views-left-10 {
+  float: left;
+  width: 10%;
+}
+
+#views-ajax-pad .views-left-20 {
+  float: left;
+  width: 20%;
+}
+
+#views-ajax-pad .views-left-25 {
+  float: left;
+  width: 25%;
+}
+
+#views-ajax-pad .views-left-30 {
+  float: left;
+  width: 30%;
+}
+
+#views-ajax-pad .views-left-40 {
+  float: left;
+  width: 40%;
+}
+
+#views-ajax-pad .views-left-50 {
+  float: left;
+  width: 49.5%;
+}
+
+#views-ajax-pad .views-right-50 {
+  float: right;
+  width: 50%;
+}
+
+#views-ajax-pad .views-right-60 {
+  float: right;
+  width: 60%;
+}
+
+#views-ajax-pad .views-right-70 {
+  float: right;
+  width: 70%;
+}
+
+#views-ajax-pad .views-left-75 {
+  float: left;
+  width: 75%;
+}
+
+#views-ajax-pad .views-radio-box {
+  overflow: auto;
+  height: 22em;
+}
+
+#views-ajax-pad fieldset {
+  margin: 0 .5em;
+}
+
+#views-ajax-pad table td .form-item,
+#views-ajax-pad table td .form-item input,
+#views-ajax-pad table td .form-item select {
+  padding: 0;
+  margin: 0;
+}
+
+#views-ajax-pad label.hidden-options {
+  background: transparent url(../images/arrow-active.png) no-repeat right;
+  height: 12px;
+  padding-right: 12px;
+}
+
+#views-ajax-pad label.expanded-options {
+  background: transparent url(../images/expanded-options.png) no-repeat right;
+  height: 12px;
+  padding-right: 16px;
+}
+
+#views-ajax-pad .dependent-options {
+  padding-left: 30px;
+}
+
+/*
+ * Add, Rearrange and Configure buttons using sprites
+ */
+a.views-button-configure,
+a.views-button-add,
+a.views-button-rearrange,
+a.views-button-remove {
+  background:transparent url(../images/sprites.png);
+  display: inline-block;
+  float: right;
+  height: 12px;
+  width: 16px;
+  margin: 2px 0px 1px 0px;
+  border-bottom: #C2C9CE 1px solid;
+  border-right: #C2C9CE 1px solid;
+  padding: 0px;
+}
+
+a.views-button-remove {
+  background-position: 0px -72px;
+  position: relative;
+  top: -4px;
+}
+a.views-button-remove:hover {
+  background-position: 0px -84px;
+}
+
+a.views-button-configure {
+  background-position: 0px -48px;
+  margin: 0;
+}
+a.views-button-configure:hover {
+  background-position: 0px -60px;
+}
+
+a.views-button-add {
+  background-position: 0px -24px;
+}
+a.views-button-add:hover {
+  background-position: 0px -36px;
+}
+
+a.views-button-rearrange {
+  background-position: 0px 0px;
+}
+a.views-button-rearrange:hover {
+  background-position: 0px -12px;
+}
+
+a.views-button-remove span,
+a.views-button-rearrange span,
+a.views-button-configure span,
+a.views-button-add span {
+  display: none;
+}
+
+html.js #arrange thead {
+  display: none;
+}
+
+html.js .views-remove-checkbox {
+  display: none;
+}
+
+a.views-button-remove {
+  display: none;
+}
+
+html.js a.views-button-remove {
+  display: inline;
+}
+
+#arrange tr.even,
+#arrange tr.odd,
+#arrange td {
+  padding-top: 0;
+  padding-bottom: 0;
+}
+
+#arrange .form-item {
+  padding: 0;
+}
+
+div.changed {
+  background-color: #ffe;
+  font-weight: bold;
+}
+
+div.view-changed {
+  display: none;
+  float: right;
+  font-style: italic;
+  color: #f93;
+  padding-left: 1em;
+}
+
+div.views-tab div.changed a {
+
+}
+
+div.changed div.view-changed {
+  display: block;
+}
+
+.views-display .tab-section .inside .overridden {
+  /* all this so we don't mess up background-color */
+/*  background-image: url(../images/overridden.gif);
+  background-repeat: no-repeat;
+  background-position: left;
+  padding-left: 10px; */
+}
+
+.views-display .tab-section .views-category-content.overridden {
+  background-image: none;
+}
+
+.views-display .tab-section .inside .defaulted {
+  color: #aaa;
+  font-style: italic;
+}
+
+.views-display .tab-section .inside .defaulted a {
+  font-style: italic;
+}
+
+.hilited {
+  color: #000;
+  font-weight: bold;
+  background-color: #ffd;
+  padding-left: 10px;
+}
+
+#views-ajax-pad fieldset {
+  background: transparent;
+  padding-left: 10px;
+}
+
+#views-ajax-pad pre {
+  overflow: auto;
+  border: 1px solid #333;
+  background-color: #f0f0f0;
+  padding: .5em;
+}
+
+form#views-add-display-form {
+  margin-bottom: 0em;
+  border-bottom: 1px solid #ccc;
+}
+
+form#views-add-display-form select {
+  width: 8.5em;
+}
+
+#views-ui-edit-view-form {
+  margin: 0;
+  padding: 0;
+}
+
+#views-live-preview {
+  padding-top: .5em;
+}
+
+form#views-ui-preview-form,
+#center form#views-ui-preview-form {
+  border: 1px solid #D6DBDE;
+  margin: 0 0 .5em 0;
+  padding: .5em;
+}
+
+form#views-ui-preview-form div#preview-display-id-wrapper,
+form#views-ui-preview-form div#preview-args-wrapper {
+  float: left;
+  margin: 0;
+  padding: 0 1em 0 0;
+}
+
+form#views-ui-preview-form input#preview-submit {
+  margin: 1.7em 0 0 0;
+}
+
+.view-locked {
+  color: red;
+  border: 1px solid red;
+  padding: 1em;
+}
+
+/* Hide by default only with js */
+html.js .views-hidden {
+  display: none;
+}
+
+.views-query-info {
+/*  overflow: auto; */
+}
+
+.views-query-info pre {
+  white-space: pre; /* CSS2 */
+  white-space: -moz-pre-wrap; /* Mozilla */
+  white-space: -hp-pre-wrap; /* HP printers */
+  white-space: -o-pre-wrap; /* Opera 7 */
+  white-space: -pre-wrap; /* Opera 4-6 */
+  white-space: pre-wrap; /* CSS 2.1 */
+  white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
+  word-wrap: break-word; /* IE */
+  max-height: 200px;
+  overflow: scroll;
+}
+
+.views-quick-links {
+  float: right;
+}
+
+.views-quick-links ul.links li {
+  padding-left: 1em;
+}
+
+.views-quick-links li.last {
+}
+
+.views-edit-view .advanced-help-link {
+  padding-right: 3px;
+}
+
+#views-ajax-title .advanced-help-link {
+  position: relative;
+  top: 2px;
+  padding-right: 3px;
+}
+
+#views-ajax-pad input,
+#views-ajax-pad textarea {
+  max-width: 95%;
+}
+
+.clone-display,
+.remove-display {
+  float: right;
+  margin: 0;
+  padding: .2em 1em 0 0;
+  position: relative;
+  top: .1em;
+}
+
+.views-display .remove-display form,
+.remove-display input,
+.views-display .clone-display form,
+.clone-display input {
+  margin: 0 !important;
+}
+
+.views-validator-options {
+  padding: 0 1em;
+  margin: 0 1em;
+  border: 1px solid;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/css/views-list-rtl.css b/drupal/sites/default/boinc/modules/contrib/views/css/views-list-rtl.css
new file mode 100644
index 0000000..1b62fc3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/css/views-list-rtl.css
@@ -0,0 +1,27 @@
+
+table.views-entry {
+  clear: right; /* RTL */
+}
+
+table.views-entry td.view-ops {
+  text-align: left; /* RTL */
+}
+
+#views-ui-list-views-form .form-item {
+  padding-left: 1em; /* RTL */
+  float: right; /* RTL */
+}
+
+#edit-order-wrapper {
+  clear: right; /* RTL */
+}
+
+#edit-views-apply,
+#edit-views-reset {
+  float: right; /* RTL */
+}
+
+.views-entry .advanced-help-link {
+  padding-left: 3px; /* RTL */
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/css/views-list.css b/drupal/sites/default/boinc/modules/contrib/views/css/views-list.css
new file mode 100644
index 0000000..b043319
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/css/views-list.css
@@ -0,0 +1,79 @@
+
+table.views-entry {
+  margin: 3px 0;
+  border: 1px solid #ddd;
+  background-color: white;
+  color: #494949; /* matches garland */
+  clear: left; /* LTR */
+  width: 100%;
+}
+
+table.views-entry tbody {
+  border: none;
+}
+
+table.views-entry td.view-ops {
+  width: 45%;
+  text-align: right; /* LTR */
+  background-color: #eee;
+}
+
+table.views-entry td.view-name {
+  background-color: #eee;
+}
+
+table.views-entry .description {
+  vertical-align: top;
+}
+
+body form#views-ui-list-views-form {
+  margin: 0 0 1.5em 0;
+}
+
+#views-ui-list-views-form .form-item {
+  padding-right: 1em; /* LTR */
+  float: left; /* LTR */
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+#edit-order-wrapper {
+  clear: left; /* LTR */
+}
+
+#edit-views-apply,
+#edit-views-reset {
+  margin-top: 1.65em;
+  float: left; /* LTR */
+}
+
+.views-entry .advanced-help-link {
+  position: relative;
+  top: 2px;
+  padding-right: 3px; /* LTR */
+}
+
+table.view-disabled {
+  color: #999;
+}
+
+table.views-entry td {
+  line-height: 1.4;
+  padding-bottom: 10px;
+}
+table.view-disabled td {
+  line-height: 1.4;
+  padding-bottom: 10px;
+  background: none;
+}
+table.view-enabled td.view-name,
+table.view-enabled td.view-ops,
+table.view-disabled td.view-name,
+table.view-disabled td.view-ops {
+  line-height: 1.6;
+  padding-bottom: 0.3em;
+}
+table.view-enabled td.view-name,
+table.view-enabled td.view-ops {
+  background: #E4F0F8; 
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/css/views-rtl.css b/drupal/sites/default/boinc/modules/contrib/views/css/views-rtl.css
new file mode 100644
index 0000000..fef2bd9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/css/views-rtl.css
@@ -0,0 +1,6 @@
+
+.views-exposed-form .views-exposed-widget {
+  float: right; /* RTL */
+  padding: .5em 1em 0 0; /* RTL */
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/css/views-tabs.css b/drupal/sites/default/boinc/modules/contrib/views/css/views-tabs.css
new file mode 100644
index 0000000..e884e07
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/css/views-tabs.css
@@ -0,0 +1,5 @@
+/* $Id */
+
+.ui-tabs-hide { 
+  display: none; 
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/css/views.css b/drupal/sites/default/boinc/modules/contrib/views/css/views.css
new file mode 100644
index 0000000..beb5782
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/css/views.css
@@ -0,0 +1,98 @@
+.views-exposed-form .views-exposed-widget {
+  float: left; /* LTR */
+  padding: .5em 1em 0 0; /* LTR */
+}
+
+.views-exposed-form .views-exposed-widget .form-submit {
+  margin-top: 1.6em;
+}
+
+.views-exposed-form .form-item,
+.views-exposed-form .form-submit {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.views-exposed-form label {
+  font-weight: bold;
+}
+
+.views-exposed-widgets {
+  margin-bottom: .5em;
+}
+
+html.js a.views-throbbing,
+html.js span.views-throbbing {
+  background:url(../images/status-active.gif) no-repeat right center;
+  padding-right:18px;
+}
+
+/* administrative hover links */
+
+div.view div.views-admin-links {
+  font-size: xx-small;
+  margin-right: 1em;
+  margin-top: 1em;
+/*  width: 95%; */
+}
+
+.block div.view div.views-admin-links {
+  margin-top: 0;
+}
+
+div.view div.views-admin-links ul {
+  margin: 0;
+  padding: 0;
+}
+
+div.view div.views-admin-links li {
+  margin: 0;
+  padding: 0 0 2px 0;
+  z-index: 201;
+}
+
+div.view div.views-admin-links li a {
+  padding: 0;
+  margin: 0;
+  color: #ccc;
+}
+
+div.view div.views-admin-links li a:before {
+  content: "[";
+}
+div.view div.views-admin-links li a:after {
+  content: "]";
+}
+
+div.view div.views-admin-links-hover a,
+div.view div.views-admin-links:hover a {
+  color: #000;
+}
+
+div.view div.views-admin-links-hover,
+div.view div.views-admin-links:hover {
+  background: transparent;
+}
+
+div.view div.views-hide {
+  display: none;
+}
+
+/** For IE we add the class via js; for other browsers we rely on :hover **/
+div.view div.views-hide-hover,
+div.view:hover div.views-hide {
+  display: block;
+  position: absolute;
+  z-index: 200;
+}
+
+/* don't do this one in IE */
+div.view:hover div.views-hide {
+  margin-top: -1.5em;
+}
+
+/* Remove the border on tbody that system puts in */
+.views-view-grid tbody {
+  border-top: none;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/docs/docs.php b/drupal/sites/default/boinc/modules/contrib/views/docs/docs.php
new file mode 100644
index 0000000..5c9cbf8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/docs/docs.php
@@ -0,0 +1,720 @@
+<?php
+/**
+ * @file
+ * This file contains no working PHP code; it exists to provide additional documentation
+ * for doxygen as well as to document hooks in the standard Drupal manner.
+ */
+
+/**
+ * @mainpage Views 2 API Manual
+ *
+ * Much of this information is actually stored in the advanced help; please
+ * check the API topic. This help will primarily be aimed at documenting
+ * classes and function calls.
+ *
+ * An online version of the advanced help API documentation is available from:
+ * @link http://views-help.doc.logrus.com/help/views/api @endlink
+ *
+ * Topics:
+ * - @ref view_lifetime
+ * - @ref views_hooks
+ * - @ref views_handlers
+ * - @ref views_plugins
+ * - @ref views_templates
+ */
+
+/**
+ * @page view_lifetime The life of a view
+ *
+ * This page explains the basic cycle of a view and what processes happen.
+ */
+
+/**
+ * @page views_handlers About Views' handlers
+ *
+ * This page explains what views handlers are, how they're written, and what
+ * the basic conventions are.
+ *
+ * - @ref views_field_handlers
+ * - @ref views_sort_handlers
+ * - @ref views_filter_handlers
+ * - @ref views_argument_handlers
+ * - @ref views_relationship_handlers
+ */
+
+/**
+ * @page views_plugins About Views' plugins
+ *
+ * This page explains what views plugins are, how they're written, and what
+ * the basic conventions are.
+ *
+ * - @ref views_display_plugins
+ * - @ref views_style_plugins
+ * - @ref views_row_plugins
+ */
+
+/**
+ * @defgroup views_hooks Views' hooks
+ * @{
+ * Hooks that can be implemented by other modules in order to implement the
+ * Views API.
+ */
+
+/**
+ * Describe table structure to Views.
+ *
+ * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
+ * This must either be in the same directory as the .module file or in a subdirectory
+ * named 'includes'.
+ *
+ * The full documentation for this hook is in the advanced help.
+ * @link http://views-help.doc.logrus.com/help/views/api-tables @endlink
+ */
+function hook_views_data() {
+  // This example describes how to write hook_views_data() for the following
+  // table:
+  //
+  // CREATE TABLE example_table (
+  //   nid INT(11) NOT NULL         COMMENT 'Primary key; refers to {node}.nid.',
+  //   plain_text_field VARCHAR(32) COMMENT 'Just a plain text field.',
+  //   numeric_field INT(11)        COMMENT 'Just a numeric field.',
+  //   boolean_field INT(1)         COMMENT 'Just an on/off field.',
+  //   timestamp_field INT(8)       COMMENT 'Just a timestamp field.',
+  //   PRIMARY KEY(nid)
+  // );
+
+  // The 'group' index will be used as a prefix in the UI for any of this
+  // table's fields, sort criteria, etc. so it's easy to tell where they came
+  // from.
+  $data['example_table']['table']['group'] = t('Example table');
+
+  // Define this as a base table. In reality this is not very useful for
+  // this table, as it isn't really a distinct object of its own, but
+  // it makes a good example.
+  $data['example_table']['table']['base'] = array(
+    'field' => 'nid',
+    'title' => t('Example table'),
+    'help' => t("Example table contains example content and can be related to nodes."),
+    'weight' => -10,
+  );
+
+  // This table references the {node} table.
+  // This creates an 'implicit' relationship to the node table, so that when 'Node'
+  // is the base table, the fields are automatically available.
+  $data['example_table']['table']['join'] = array(
+    // Index this array by the table name to which this table refers.
+    // 'left_field' is the primary key in the referenced table.
+    // 'field' is the foreign key in this table.
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'nid',
+    ),
+  );
+
+  // Next, describe each of the individual fields in this table to Views. For
+  // each field, you may define what field, sort, argument, and/or filter
+  // handlers it supports. This will determine where in the Views interface you
+  // may use the field.
+
+  // Node ID field.
+  $data['example_table']['nid'] = array(
+    'title' => t('Example content'),
+    'help' => t('Some example content that references a node.'),
+    // Because this is a foreign key to the {node} table. This allows us to
+    // have, when the view is configured with this relationship, all the fields
+    // for the related node available.
+    'relationship' => array(
+      'base' => 'node',
+      'field' => 'nid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Example node'),
+    ),
+  );
+
+  // Example plain text field.
+  $data['example_table']['plain_text_field'] = array(
+    'title' => t('Plain text field'),
+    'help' => t('Just a plain text field.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // Example numeric text field.
+  $data['example_table']['numeric_field'] = array(
+    'title' => t('Numeric field'),
+    'help' => t('Just a numeric field.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // Example boolean field.
+  $data['example_table']['boolean_field'] = array(
+    'title' => t('Boolean field'),
+    'help' => t('Just an on/off field.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Published'),
+      'type' => 'yes-no',
+      // use boolean_field = 1 instead of boolean_field <> 0 in WHERE statment
+      'use equal' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // Example timestamp field.
+  $data['example_table']['timestamp_field'] = array(
+    'title' => t('Timestamp field'),
+    'help' => t('Just a timestamp field.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Alter table structure.
+ *
+ * You can add/edit/remove to existing tables defined by hook_views_data().
+ *
+ * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
+ * This must either be in the same directory as the .module file or in a subdirectory
+ * named 'includes'.
+ *
+ * The full documentation for this hook is in the advanced help.
+ * @link http://views-help.doc.logrus.com/help/views/api-tables @endlink
+ */
+function hook_views_data_alter(&$data) {
+  // This example alters the title of the node: nid field for the admin.
+  $data['node']['nid']['title'] = t('Node-Nid');
+
+  // This example adds a example field to the users table
+  $data['users']['example_field'] = array(
+    'title' => t('Example field'),
+    'help' => t('Some examüple content that references a user'),
+    'handler' => 'hook_handlers_field_example_field',
+  );
+
+  // This example changes the handler of the node title field.
+  // In this handler you could do stuff, like preview of the node, when clicking the node title.
+
+  $data['node']['title']['handler'] = 'modulename_handlers_field_node_title';
+}
+
+
+/**
+ * The full documentation for this hook is now in the advanced help.
+ *
+ * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
+ * This must either be in the same directory as the .module file or in a subdirectory
+ * named 'includes'.
+ *
+ * This is a stub list as a reminder that this needs to be doc'd and is not used
+ * in views anywhere so might not be remembered when this is formally documented:
+ * - style: 'even empty'
+ */
+function hook_views_plugins() {
+  // example code here
+}
+
+/**
+ * Alter existing plugins data, defined by modules.
+ */
+function hook_views_plugins_alter(&$plugins) {
+  // Add apachesolr to the base of the node row plugin.
+  $plugins['row']['node']['base'][] = 'apachesolr';
+}
+
+/**
+ * Register handler, file and parent information so that handlers can be
+ * loaded only on request.
+ *
+ * The full documentation for this hook is in the advanced help.
+ */
+function hook_views_handlers() {
+  // example code here
+}
+
+/**
+ * Register View API information. This is required for your module to have
+ * its include files loaded; for example, when implementing
+ * hook_views_default_views().
+ *
+ * @return
+ *   An array with the following possible keys:
+ *   - api:  (required) The version of the Views API the module implements.
+ *   - path: (optional) If includes are stored somewhere other than within
+ *       the root module directory or a subdirectory called includes, specify
+ *       its path here.
+ */
+function hook_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'example') . '/includes/views', 
+  );
+}
+
+/**
+ * This hook allows modules to provide their own views which can either be used
+ * as-is or as a "starter" for users to build from.
+ *
+ * This hook should be placed in MODULENAME.views_default.inc and it will be
+ * auto-loaded. This must either be in the same directory as the .module file
+ * or in a subdirectory named 'includes'.
+ *
+ * The $view->disabled boolean flag indicates whether the View should be
+ * enabled or disabled by default.
+ *
+ * @return
+ *   An associative array containing the structures of views, as generated from
+ *   the Export tab, keyed by the view name. A best practice is to go through
+ *   and add t() to all title and label strings, with the exception of menu
+ *   strings.
+ */
+function hook_views_default_views() {
+  // Begin copy and paste of output from the Export tab of a view.
+  $view = new view;
+  $view->name = 'frontpage';
+  $view->description = t('Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page.');
+  $view->tag = t('default');
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = FALSE; // Edit this to true to make a default view disabled initially
+  $view->display = array();
+    $display = new views_display;
+    $display->id = 'default';
+    $display->display_title = t('Defaults');
+    $display->display_plugin = 'default';
+    $display->position = '1';
+    $display->display_options = array (
+    'style_plugin' => 'default',
+    'style_options' =>
+    array (
+    ),
+    'row_plugin' => 'node',
+    'row_options' =>
+    array (
+      'teaser' => 1,
+      'links' => 1,
+    ),
+    'relationships' =>
+    array (
+    ),
+    'fields' =>
+    array (
+    ),
+    'sorts' =>
+    array (
+      'sticky' =>
+      array (
+        'id' => 'sticky',
+        'table' => 'node',
+        'field' => 'sticky',
+        'order' => 'ASC',
+      ),
+      'created' =>
+      array (
+        'id' => 'created',
+        'table' => 'node',
+        'field' => 'created',
+        'order' => 'ASC',
+        'relationship' => 'none',
+        'granularity' => 'second',
+      ),
+    ),
+    'arguments' =>
+    array (
+    ),
+    'filters' =>
+    array (
+      'promote' =>
+      array (
+        'id' => 'promote',
+        'table' => 'node',
+        'field' => 'promote',
+        'operator' => '=',
+        'value' => '1',
+        'group' => 0,
+        'exposed' => false,
+        'expose' =>
+        array (
+          'operator' => false,
+          'label' => '',
+        ),
+      ),
+      'status' =>
+      array (
+        'id' => 'status',
+        'table' => 'node',
+        'field' => 'status',
+        'operator' => '=',
+        'value' => '1',
+        'group' => 0,
+        'exposed' => false,
+        'expose' =>
+        array (
+          'operator' => false,
+          'label' => '',
+        ),
+      ),
+    ),
+    'items_per_page' => 10,
+    'use_pager' => '1',
+    'pager_element' => 0,
+    'title' => '',
+    'header' => '',
+    'header_format' => '1',
+    'footer' => '',
+    'footer_format' => '1',
+    'empty' => '',
+    'empty_format' => '1',
+  );
+  $view->display['default'] = $display;
+    $display = new views_display;
+    $display->id = 'page';
+    $display->display_title = t('Page');
+    $display->display_plugin = 'page';
+    $display->position = '2';
+    $display->display_options = array (
+    'defaults' =>
+    array (
+      'access' => true,
+      'title' => true,
+      'header' => true,
+      'header_format' => true,
+      'header_empty' => true,
+      'footer' => true,
+      'footer_format' => true,
+      'footer_empty' => true,
+      'empty' => true,
+      'empty_format' => true,
+      'items_per_page' => true,
+      'offset' => true,
+      'use_pager' => true,
+      'pager_element' => true,
+      'link_display' => true,
+      'php_arg_code' => true,
+      'exposed_options' => true,
+      'style_plugin' => true,
+      'style_options' => true,
+      'row_plugin' => true,
+      'row_options' => true,
+      'relationships' => true,
+      'fields' => true,
+      'sorts' => true,
+      'arguments' => true,
+      'filters' => true,
+      'use_ajax' => true,
+      'distinct' => true,
+    ),
+    'relationships' =>
+    array (
+    ),
+    'fields' =>
+    array (
+    ),
+    'sorts' =>
+    array (
+    ),
+    'arguments' =>
+    array (
+    ),
+    'filters' =>
+    array (
+    ),
+    'path' => 'frontpage',
+  );
+  $view->display['page'] = $display;
+    $display = new views_display;
+    $display->id = 'feed';
+    $display->display_title = t('Feed');
+    $display->display_plugin = 'feed';
+    $display->position = '3';
+    $display->display_options = array (
+    'defaults' =>
+    array (
+      'access' => true,
+      'title' => false,
+      'header' => true,
+      'header_format' => true,
+      'header_empty' => true,
+      'footer' => true,
+      'footer_format' => true,
+      'footer_empty' => true,
+      'empty' => true,
+      'empty_format' => true,
+      'use_ajax' => true,
+      'items_per_page' => true,
+      'offset' => true,
+      'use_pager' => true,
+      'pager_element' => true,
+      'use_more' => true,
+      'distinct' => true,
+      'link_display' => true,
+      'php_arg_code' => true,
+      'exposed_options' => true,
+      'style_plugin' => false,
+      'style_options' => false,
+      'row_plugin' => false,
+      'row_options' => false,
+      'relationships' => true,
+      'fields' => true,
+      'sorts' => true,
+      'arguments' => true,
+      'filters' => true,
+    ),
+    'relationships' =>
+    array (
+    ),
+    'fields' =>
+    array (
+    ),
+    'sorts' =>
+    array (
+    ),
+    'arguments' =>
+    array (
+    ),
+    'filters' =>
+    array (
+    ),
+    'displays' =>
+    array (
+      'default' => 'default',
+      'page' => 'page',
+    ),
+    'style_plugin' => 'rss',
+    'style_options' =>
+    array (
+      'mission_description' => 1,
+      'description' => '',
+    ),
+    'row_plugin' => 'node_rss',
+    'row_options' =>
+    array (
+      'item_length' => 'default',
+    ),
+    'path' => 'rss.xml',
+    'title' => t('Front page feed'),
+  );
+  $view->display['feed'] = $display;
+  // End copy and paste of Export tab output.
+
+  // Add view to list of views to provide.
+  $views[$view->name] = $view;
+
+  // ...Repeat all of the above for each view the module should provide.
+
+  // At the end, return array of default views.
+  return $views;
+}
+
+/**
+ * This hook is called right before all default views are cached to the
+ * database. It takes a keyed array of views by reference.
+ */
+function hook_views_default_views_alter(&$views) {
+  if (isset($views['taxonomy_term'])) {
+    $views['taxonomy_term']->set_display('default');
+    $views['taxonomy_term']->display_handler->set_option('title', 'Categories');
+  }
+}
+
+/**
+ * Stub hook documentation
+ *
+ * This hook should be placed in MODULENAME.views_convert.inc and it will be auto-loaded.
+ * This must either be in the same directory as the .module file or in a subdirectory
+ * named 'includes'.
+ */
+function hook_views_convert() {
+  // example code here
+}
+
+/**
+ * Stub hook documentation
+ */
+function hook_views_query_substitutions() {
+  // example code here
+}
+
+/**
+ * This hook is called at the very beginning of views processing,
+ * before anything is done.
+ *
+ * Adding output to the view can be accomplished by placing text on
+ * $view->attachment_before and $view->attachment_after.
+ */
+function hook_views_pre_view(&$view, &$display_id, &$args) {
+  // example code here
+}
+
+/**
+ * This hook is called right before the build process, but after displays
+ * are attached and the display performs its pre_execute phase.
+ *
+ * Adding output to the view can be accomplished by placing text on
+ * $view->attachment_before and $view->attachment_after.
+ */
+function hook_views_pre_build(&$view) {
+  // example code here
+}
+
+/**
+ * This hook is called right after the build process. The query is
+ * now fully built, but it has not yet been run through db_rewrite_sql.
+ *
+ * Adding output to the view can be accomplished by placing text on
+ * $view->attachment_before and $view->attachment_after.
+ */
+function hook_views_post_build(&$view) {
+  // example code here
+}
+
+/**
+ * This hook is called right before the execute process. The query is
+ * now fully built, but it has not yet been run through db_rewrite_sql.
+ *
+ * Adding output to the view can be accomplished by placing text on
+ * $view->attachment_before and $view->attachment_after.
+ */
+function hook_views_pre_execute(&$view) {
+  // example code here
+}
+
+/**
+ * This hook is called right after the execute process. The query has
+ * been executed, but the pre_render() phase has not yet happened for
+ * handlers.
+ *
+ * Adding output to the view can be accomplished by placing text on
+ * $view->attachment_before and $view->attachment_after. Altering the
+ * content can be achieved by editing the items of $view->result.
+ */
+function hook_views_post_execute(&$view) {
+  // example code here
+}
+
+/**
+ * This hook is called right before the render process. The query has
+ * been executed, and the pre_render() phase has already happened for
+ * handlers, so all data should be available.
+ *
+ * Adding output to the view can be accomplished by placing text on
+ * $view->attachment_before and $view->attachment_after. Altering the
+ * content can be achieved by editing the items of $view->result.
+ *
+ * This hook can be utilized by themes.
+ */
+function hook_views_pre_render(&$view) {
+  // example code here
+}
+
+/**
+ * Post process any rendered data.
+ *
+ * This can be valuable to be able to cache a view and still have some level of
+ * dynamic output. In an ideal world, the actual output will include HTML
+ * comment based tokens, and then the post process can replace those tokens.
+ *
+ * Example usage. If it is known that the view is a node view and that the
+ * primary field will be a nid, you can do something like this:
+ *
+ * <!--post-FIELD-NID-->
+ *
+ * And then in the post render, create an array with the text that should
+ * go there:
+ *
+ * strtr($output, array('<!--post-FIELD-1-->', 'output for FIELD of nid 1');
+ *
+ * All of the cached result data will be available in $view->result, as well,
+ * so all ids used in the query should be discoverable.
+ *
+ * This hook can be utilized by themes.
+ */
+function hook_views_post_render(&$view, &$output, &$cache) {
+
+}
+
+/**
+ * Stub hook documentation
+ *
+ * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
+ * This must either be in the same directory as the .module file or in a subdirectory
+ * named 'includes'.
+ *
+ */
+function hook_views_query_alter(&$view, &$query) {
+  // example code here
+}
+
+/**
+ * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
+ * This must either be in the same directory as the .module file or in a subdirectory
+ * named 'includes'.
+ *
+ * Alter the links that appear over a view. They are in a format suitable for
+ * theme('links').
+ *
+ * Warning: $view is not a reference in PHP4 and cannot be modified here. But it IS
+ * a reference in PHP5, and can be modified. Please be careful with it.
+ *
+ * @see theme_links
+ */
+function hook_views_admin_links_alter(&$links, $view) {
+  // example code here
+}
+
+/**
+ * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
+ * This must either be in the same directory as the .module file or in a subdirectory
+ * named 'includes'.
+ *
+ * Alter the rows that appear with a view, which includes path and query information.
+ * The rows are suitable for theme('table').
+ *
+ * Warning: $view is not a reference in PHP4 and cannot be modified here. But it IS
+ * a reference in PHP5, and can be modified. Please be careful with it.
+ *
+ * @see theme_table
+ */
+function hook_views_preview_info_alter(&$rows, $view) {
+  // example code here
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/documentation-standards.txt b/drupal/sites/default/boinc/modules/contrib/views/documentation-standards.txt
new file mode 100644
index 0000000..ea61135
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/documentation-standards.txt
@@ -0,0 +1,6 @@
+- If the interface text is *bolded*, it got strong tags.
+- If it's a button they need to click, that's *bold* too.
+- If the text is not bolded (ex: links to click, options to check), it
+got /italicized/.
+- If it's user-entered text it got 'single quotes'.
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument.inc
new file mode 100644
index 0000000..27cfdf7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument.inc
@@ -0,0 +1,773 @@
+<?php
+
+/**
+ * @defgroup views_argument_handlers Handlers for arguments
+ * @{
+ */
+
+/**
+ * Base class for arguments.
+ *
+ * The basic argument works for very simple arguments such as nid and uid
+ *
+ * Definition terms for this handler:
+ * - name field: The field to use for the name to use in the summary, which is
+ *               the displayed output. For example, for the node: nid argument,
+ *               the argument itself is the nid, but node.title is displayed.
+ * - name table: The table to use for the name, should it not be in the same
+ *               table as the argument.
+ * - empty field name: For arguments that can have no value, such as taxonomy
+ *                     which can have "no term", this is the string which
+ *                     will be displayed for this lack of value. Be sure to use
+ *                     t().
+ * - validate type: A little used string to allow an argument to restrict
+ *                  which validator is available to just one. Use the
+ *                  validator ID. This probably should not be used at all,
+ *                  and may disappear or change.
+ * - numeric: If set to TRUE this field is numeric and will use %d instead of
+ *            %s in queries.
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument extends views_handler {
+  var $name_field = NULL;
+  /**
+   * Constructor
+   */
+  function construct() {
+    parent::construct();
+
+    if (!empty($this->definition['name field'])) {
+      $this->name_field = $this->definition['name field'];
+    }
+    if (!empty($this->definition['name table'])) {
+      $this->name_table = $this->definition['name table'];
+    }
+  }
+
+  function init(&$view, $options) {
+    parent::init($view, $options);
+  }
+
+  /**
+   * Give an argument the opportunity to modify the breadcrumb, if it wants.
+   * This only gets called on displays where a breadcrumb is actually used.
+   *
+   * The breadcrumb will be in the form of an array, with the keys being
+   * the path and the value being the already sanitized title of the path.
+   */
+  function set_breadcrumb(&$breadcrumb) { }
+
+  /**
+   * Determine if the argument can generate a breadcrumb
+   *
+   * @return TRUE/FALSE
+   */
+  function uses_breadcrumb() {
+    $info = $this->default_actions($this->options['default_action']);
+    return !empty($info['breadcrumb']);
+  }
+
+  function is_wildcard($arg = NULL) {
+    if (!isset($arg)) {
+      $arg = $this->argument;
+    }
+
+    return !empty($this->options['wildcard']) && $this->options['wildcard'] === $arg;
+  }
+
+  function wildcard_title() {
+    return $this->options['wildcard_substitution'];
+  }
+
+  /**
+   * Determine if the argument needs a style plugin.
+   *
+   * @return TRUE/FALSE
+   */
+  function needs_style_plugin() {
+    $info = $this->default_actions($this->options['default_action']);
+    $validate_info = $this->default_actions($this->options['validate_fail']);
+    return !empty($info['style plugin']) || !empty($validate_info['style plugin']);
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['default_action'] = array('default' => 'ignore');
+    $options['style_plugin'] = array('default' => 'default_summary');
+    $options['style_options'] = array('default' => array());
+    $options['wildcard'] = array('default' => 'all');
+    $options['wildcard_substitution'] = array('default' => t('All'), 'translatable' => TRUE);
+    $options['title'] = array('default' => '', 'translatable' => TRUE);
+    $options['breadcrumb'] = array('default' => '', 'translatable' => TRUE);
+    $options['default_argument_type'] = array('default' => 'fixed');
+    $options['default_argument'] = array('default' => '');
+    $options['validate_type'] = array('default' => 'none');
+    $options['validate_fail'] = array('default' => 'not found');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $defaults = $this->default_actions();
+
+    $form['title'] = array(
+      '#prefix' => '<div class="clear-block">',
+      '#suffix' => '</div>',
+      '#type' => 'textfield',
+      '#title' => t('Title'),
+      '#default_value' => $this->options['title'],
+      '#description' => t('The title to use when this argument is present. It will override the title of the view and titles from previous arguments. You can use percent substitution here to replace with argument titles. Use "%1" for the first argument, "%2" for the second, etc.'),
+    );
+
+    $form['breadcrumb'] = array(
+      '#prefix' => '<div class="clear-block">',
+      '#suffix' => '</div>',
+      '#type' => 'textfield',
+      '#title' => t('Breadcrumb'),
+      '#default_value' => $this->options['breadcrumb'],
+      '#description' => t('The Breadcrumb title to use when this argument is present. If no breadcrumb is set here, default Title values will be used, see "Title" for percent substitutions.'),
+    );
+
+    $form['clear_start'] = array(
+      '#value' => '<div class="clear-block">',
+    );
+
+    $form['defaults_start'] = array(
+      '#value' => '<div class="views-left-50">',
+    );
+
+    $form['default_action'] = array(
+      '#type' => 'radios',
+      '#title' => t('Action to take if argument is not present'),
+      '#default_value' => $this->options['default_action'],
+    );
+
+    $form['defaults_stop'] = array(
+      '#value' => '</div>',
+    );
+
+    $form['wildcard'] = array(
+      '#prefix' => '<div class="views-right-50">',
+      // prefix and no suffix means these two items will be grouped together.
+      '#type' => 'textfield',
+      '#title' => t('Wildcard'),
+      '#size' => 20,
+      '#default_value' => $this->options['wildcard'],
+      '#description' => t('If this value is received as an argument, the argument will be ignored; i.e, "all values"'),
+    );
+
+    $form['wildcard_substitution'] = array(
+      '#suffix' => '</div>',
+      '#type' => 'textfield',
+      '#title' => t('Wildcard title'),
+      '#size' => 20,
+      '#default_value' => $this->options['wildcard_substitution'],
+      '#description' => t('The title to use for the wildcard in substitutions elsewhere.'),
+    );
+
+    $form['clear_stop'] = array(
+      '#value' => '</div>',
+    );
+
+    $options = array();
+    $validate_options = array();
+    foreach ($defaults as $id => $info) {
+      $options[$id] = $info['title'];
+      if (empty($info['default only'])) {
+        $validate_options[$id] = $info['title'];
+      }
+      if (!empty($info['form method'])) {
+        $this->{$info['form method']}($form, $form_state);
+      }
+    }
+
+    $form['default_action']['#options'] = $options;
+
+    $form['validate_options_div_prefix'] = array(
+      '#id' => 'views-validator-options',
+      '#value' => '<fieldset id="views-validator-options"><legend>' . t('Validator options') . '</legend>',
+    );
+
+    $form['validate_type'] = array(
+      '#type' => 'select',
+      '#title' => t('Validator'),
+      '#default_value' => $this->options['validate_type'],
+    );
+
+    $validate_types = array('none' => t('- Basic validation -'));
+    $plugins = views_fetch_plugin_data('argument validator');
+    foreach ($plugins as $id => $info) {
+      if (!empty($info['no ui'])) {
+        continue;
+      }
+
+      $valid = TRUE;
+      if (!empty($info['type'])) {
+        $valid = FALSE;
+        if (empty($this->definition['validate type'])) {
+          continue;
+        }
+        foreach ((array) $info['type'] as $type) {
+          if ($type == $this->definition['validate type']) {
+            $valid = TRUE;
+            break;
+          }
+        }
+      }
+
+      // If we decide this validator is ok, add it to the list.
+      if ($valid) {
+        $plugin = views_get_plugin('argument validator', $id);
+        if ($plugin) {
+          $plugin->init($this->view, $this, $id);
+          if ($plugin->access() || $this->options['validate_type'] == $id) {
+            $plugin->validate_form($form, $form_state, $id);
+            $validate_types[$id] = $info['title'];
+          }
+        }
+      }
+    }
+
+    asort($validate_types);
+    $form['validate_type']['#options'] = $validate_types;
+
+    $form['validate_fail'] = array(
+      '#type' => 'select',
+      '#title' => t('Action to take if argument does not validate'),
+      '#default_value' => $this->options['validate_fail'],
+      '#options' => $validate_options,
+    );
+
+    $form['validate_options_div_suffix'] = array(
+      '#value' => '</fieldset>',
+    );
+  }
+
+  /**
+   * Provide a list of default behaviors for this argument if the argument
+   * is not present.
+   *
+   * Override this method to provide additional (or fewer) default behaviors.
+   */
+  function default_actions($which = NULL) {
+    $defaults = array(
+      'ignore' => array(
+        'title' => t('Display all values'),
+        'method' => 'default_ignore',
+        'breadcrumb' => TRUE, // generate a breadcrumb to here
+      ),
+      'not found' => array(
+        'title' => t('Hide view / Page not found (404)'),
+        'method' => 'default_not_found',
+        'hard fail' => TRUE, // This is a hard fail condition
+      ),
+      'empty' => array(
+        'title' => t('Display empty text'),
+        'method' => 'default_empty',
+        'breadcrumb' => TRUE, // generate a breadcrumb to here
+      ),
+      'summary asc' => array(
+        'title' => t('Summary, sorted ascending'),
+        'method' => 'default_summary',
+        'method args' => array('asc'),
+        'style plugin' => TRUE,
+        'breadcrumb' => TRUE, // generate a breadcrumb to here
+      ),
+      'summary desc' => array(
+        'title' => t('Summary, sorted descending'),
+        'method' => 'default_summary',
+        'method args' => array('desc'),
+        'style plugin' => TRUE,
+        'breadcrumb' => TRUE, // generate a breadcrumb to here
+      ),
+      'default' => array(
+        'title' => t('Provide default argument'),
+        'method' => 'default_default',
+        'form method' => 'default_argument_form',
+        'has default argument' => TRUE,
+        'default only' => TRUE, // this can only be used for missing argument, not validation failure
+      ),
+    );
+
+    if ($which) {
+      if (!empty($defaults[$which])) {
+        return $defaults[$which];
+      }
+    }
+    else {
+      return $defaults;
+    }
+  }
+
+  /**
+   * Provide a form for selecting the default argument when the
+   * default action is set to provide default argument.
+   */
+  function default_argument_form(&$form, &$form_state) {
+    $plugins = views_fetch_plugin_data('argument default');
+    $options = array();
+
+    // This construct uses 'hidden' and not markup because process doesn't
+    // run. It also has an extra div because the dependency wants to hide
+    // the parent in situations like this, so we need a second div to
+    // make this work.
+    $form['default_options_div_prefix'] = array(
+      '#type' => 'hidden',
+      '#id' => 'views-default-options',
+      '#prefix' => '<div><fieldset id="views-default-options"><legend>' . t('Provide default argument options') . '</legend>',
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('radio:options[default_action]' => array('default')),
+    );
+
+    $form['default_argument_type'] = array(
+      '#prefix' => '<div id="edit-options-default-argument-type-wrapper">',
+      '#suffix' => '</div>',
+      '#type' => 'radios',
+      '#id' => 'edit-options-default-argument-type',
+      '#title' => t('Default argument type'),
+      '#default_value' => $this->options['default_argument_type'],
+      '#process' => array('expand_radios', 'views_process_dependency'),
+      '#dependency' => array('radio:options[default_action]' => array('default')),
+    );
+
+    foreach ($plugins as $id => $info) {
+      $plugin = views_get_plugin('argument default', $id);
+      if ($plugin) {
+        $plugin->init($this->view, $this, $id);
+
+        if ($plugin->access() || $this->options['default_argument_type'] == $id) {
+          $options[$id] = $info['title'];
+          $plugin->argument_form($form, $form_state);
+        }
+      }
+    }
+
+    $form['default_options_div_suffix'] = array(
+      '#value' => '</fieldset></div>',
+    );
+
+    asort($options);
+    $form['default_argument_type']['#options'] = $options;
+  }
+
+  /**
+   * Handle the default action, which means our argument wasn't present.
+   *
+   * Override this method only with extreme care.
+   *
+   * @return
+   *   A boolean value; if TRUE, continue building this view. If FALSE,
+   *   building the view will be aborted here.
+   */
+  function default_action($info = NULL) {
+    if (!isset($info)) {
+      $info = $this->default_actions($this->options['default_action']);
+    }
+
+    if (!$info) {
+      return FALSE;
+    }
+
+    if (!empty($info['method args'])) {
+      return call_user_func_array(array(&$this, $info['method']), $info['method args']);
+    }
+    else {
+      return $this->{$info['method']}();
+    }
+  }
+
+  /**
+   * How to act if validation failes
+   */
+  function validate_fail() {
+    $info = $this->default_actions($this->options['validate_fail']);
+    return $this->default_action($info);
+  }
+  /**
+   * Default action: ignore.
+   *
+   * If an argument was expected and was not given, in this case, simply
+   * ignore the argument entirely.
+   */
+  function default_ignore() {
+    return TRUE;
+  }
+
+  /**
+   * Default action: not found.
+   *
+   * If an argument was expected and was not given, in this case, report
+   * the view as 'not found' or hide it.
+   */
+  function default_not_found() {
+    // Set a failure condition and let the display manager handle it.
+    $this->view->build_info['fail'] = TRUE;
+    return FALSE;
+  }
+
+  /**
+   * Default action: empty
+   *
+   * If an argument was expected and was not given, in this case, display
+   * the view's empty text
+   */
+  function default_empty() {
+    // We return with no query; this will force the empty text.
+    $this->view->built = TRUE;
+    $this->view->executed = TRUE;
+    $this->view->result = array();
+    return FALSE;
+  }
+
+  /**
+   * This just returns true. The view argument builder will know where
+   * to find the argument from.
+   */
+  function default_default() {
+    return TRUE;
+  }
+
+  /**
+   * Determine if the argument is set to provide a default argument.
+   */
+  function has_default_argument() {
+    $info = $this->default_actions($this->options['default_action']);
+    return !empty($info['has default argument']);
+  }
+
+  /**
+   * Get a default argument, if available.
+   */
+  function get_default_argument() {
+    $plugin = views_get_plugin('argument default', $this->options['default_argument_type']);
+    if ($plugin) {
+      $plugin->init($this->view, $this);
+      return $plugin->get_argument();
+    }
+  }
+
+  /**
+   * Default action: summary.
+   *
+   * If an argument was expected and was not given, in this case, display
+   * a summary query.
+   */
+  function default_summary($order) {
+    $this->view->build_info['summary'] = TRUE;
+    $this->view->build_info['summary_level'] = $this->options['id'];
+
+    // Change the display style to the summary style for this
+    // argument.
+    $this->view->plugin_name = $this->options['style_plugin'];
+    $this->view->style_options = $this->options['style_options'];
+
+    // Clear out the normal primary field and whatever else may have
+    // been added and let the summary do the work.
+    $this->query->clear_fields();
+    $this->summary_query();
+
+    $this->summary_sort($order);
+
+    // Summaries have their own sorting and fields, so tell the View not
+    // to build these.
+    $this->view->build_sort = $this->view->build_fields = FALSE;
+    return TRUE;
+  }
+
+  /**
+   * Build the info for the summary query.
+   *
+   * This must:
+   * - add_groupby: group on this field in order to create summaries.
+   * - add_field: add a 'num_nodes' field for the count. Usually it will
+   *   be a count on $view->base_field
+   * - set_count_field: Reset the count field so we get the right paging.
+   *
+   * @return
+   *   The alias used to get the number of records (count) for this entry.
+   */
+  function summary_query() {
+    $this->ensure_my_table();
+    // Add the field.
+    $this->base_alias = $this->query->add_field($this->table_alias, $this->real_field);
+
+    $this->summary_name_field();
+    return $this->summary_basics();
+  }
+
+  /**
+   * Add the name field, which is the field displayed in summary queries.
+   * This is often used when the argument is numeric.
+   */
+  function summary_name_field() {
+    // Add the 'name' field. For example, if this is a uid argument, the
+    // name field would be 'name' (i.e, the username).
+
+    if (isset($this->name_table)) {
+      // if the alias is different then we're probably added, not ensured,
+      // so look up the join and add it instead.
+      if ($this->table_alias != $this->table) {
+        $j = views_get_table_join($this->name_table, $this->table);
+        if ($j) {
+          $join = drupal_clone($j);
+          $join->left_table = $this->table_alias;
+          $this->name_table_alias = $this->query->add_table($this->name_table, $this->relationship, $join);
+        }
+      }
+      else {
+        $this->name_table_alias = $this->query->ensure_table($this->name_table, $this->relationship);
+      }
+    }
+    else {
+      $this->name_table_alias = $this->table_alias;
+    }
+
+    if (isset($this->name_field)) {
+      $this->name_alias = $this->query->add_field($this->name_table_alias, $this->name_field);
+    }
+    else {
+      $this->name_alias = $this->base_alias;
+    }
+  }
+
+  /**
+   * Some basic summary behavior that doesn't need to be repeated as much as
+   * code that goes into summary_query()
+   */
+  function summary_basics($count_field = TRUE) {
+    // Add the number of nodes counter
+    $field = $this->query->base_table . '.' . $this->query->base_field;
+    $distinct = ($this->view->display_handler->get_option('distinct') && empty($this->query->no_distinct));
+
+    $count_alias = $this->query->add_field(NULL, $field, 'num_records',
+                                           array('count' => TRUE, 'distinct' => $distinct));
+    $this->query->add_groupby($this->name_alias);
+
+    if ($count_field) {
+      $this->query->set_count_field($this->table_alias, $this->real_field);
+    }
+
+    $this->count_alias = $count_alias;
+  }
+
+  /**
+   * Sorts the summary based upon the user's selection. The base variant of
+   * this is usually adequte.
+   *
+   * @param $order
+   *   The order selected in the UI.
+   */
+  function summary_sort($order) {
+    $this->query->add_orderby(NULL, NULL, $order, $this->name_alias);
+  }
+
+  /**
+   * Provide the argument to use to link from the summary to the next level;
+   * this will be called once per row of a summary, and used as part of
+   * $view->get_url().
+   *
+   * @param $data
+   *   The query results for the row.
+   */
+  function summary_argument($data) {
+    return $data->{$this->base_alias};
+  }
+
+  /**
+   * Provides the name to use for the summary. By default this is just
+   * the name field.
+   *
+   * @param $data
+   *   The query results for the row.
+   */
+  function summary_name($data) {
+    $value = $data->{$this->name_alias};
+    if (empty($value) && !empty($this->definition['empty field name'])) {
+      $value = $this->definition['empty field name'];
+    }
+    return check_plain($value);
+  }
+
+  /**
+   * Set up the query for this argument.
+   *
+   * The argument sent may be found at $this->argument.
+   */
+  function query() {
+    $this->ensure_my_table();
+    $placeholder = empty($this->definition['numeric']) ? "'%s'" : '%d';
+    $this->query->add_where(0, "$this->table_alias.$this->real_field = $placeholder", $this->argument);
+  }
+
+  /**
+   * Get the title this argument will assign the view, given the argument.
+   *
+   * This usually needs to be overridden to provide a proper title.
+   */
+  function title() {
+    return check_plain($this->argument);
+  }
+
+  /**
+   * Called by the view object to get the title. This may be set by a
+   * validator so we don't necessarily call through to title().
+   */
+  function get_title() {
+    if (isset($this->validated_title)) {
+      return $this->validated_title;
+    }
+    else {
+      return $this->title();
+    }
+  }
+
+  /**
+   * Validate that this argument works. By default, all arguments are valid.
+   */
+  function validate_arg($arg) {
+    // By using % in URLs, arguments could be validated twice; this eases
+    // that pain.
+    if (isset($this->argument_validated)) {
+      return $this->argument_validated;
+    }
+
+    if ($this->is_wildcard($arg)) {
+      return $this->argument_validated = TRUE;
+    }
+
+    if ($this->options['validate_type'] == 'none') {
+      return $this->argument_validated = $this->validate_argument_basic($arg);
+    }
+
+    $plugin = views_get_plugin('argument validator', $this->options['validate_type']);
+    if ($plugin) {
+      $plugin->init($this->view, $this, $this->options['validate_type']);
+      return $this->argument_validated = $plugin->validate_argument($arg);
+    }
+
+    // If the plugin isn't found, fall back to the basic validation path:
+    return $this->argument_validated = $this->validate_argument_basic($arg);
+  }
+
+  /**
+   * Called by the menu system to validate an argument.
+   *
+   * This checks to see if this is a 'soft fail', which means that if the
+   * argument fails to validate, but there is an action to take anyway,
+   * then validation cannot actually fail.
+   */
+  function validate_argument($arg) {
+    $validate_info = $this->default_actions($this->options['validate_fail']);
+    if (empty($validate_info['hard fail'])) {
+      return TRUE;
+    }
+
+    $rc = $this->validate_arg($arg);
+
+    // If the validator has changed the validate fail condition to a
+    // soft fail, deal with that:
+    $validate_info = $this->default_actions($this->options['validate_fail']);
+    if (empty($validate_info['hard fail'])) {
+      return TRUE;
+    }
+
+    return $rc;
+  }
+
+  /**
+   * Provide a basic argument validation.
+   *
+   * This can be overridden for more complex types; the basic
+   * validator only checks to see if the argument is not NULL
+   * or is numeric if the definition says it's numeric.
+   */
+  function validate_argument_basic($arg) {
+    if (!isset($arg) || $arg === '') {
+      return FALSE;
+    }
+
+    if (!empty($this->definition['numeric']) && !isset($this->options['break_phrase']) && !is_numeric($arg)) {
+      return FALSE;
+    }
+
+    return TRUE;
+  }
+
+  /**
+   * Set the input for this argument
+   *
+   * @return TRUE if it successfully validates; FALSE if it does not.
+   */
+  function set_argument($arg) {
+    $this->argument = $arg;
+    return $this->validate_arg($arg);
+  }
+
+  /**
+   * Get the value of this argument.
+   */
+  function get_value() {
+    // If we already processed this argument, we're done.
+    if (isset($this->argument)) {
+      return $this->argument;
+    }
+    
+    // Otherwise, we have to pretend to process ourself to find the value.
+    $value = NULL;
+    // Find the position of this argument within the view.
+    $position = 0;
+    foreach ($this->view->argument as $id => $argument) {
+      if ($id == $this->options['id']) {
+        break;
+      }
+      $position++;
+    }
+
+    $arg = isset($this->view->args[$position]) ? $this->view->args[$position] : NULL;
+    $this->position = $position;
+
+    // Clone ourselves so that we don't break things when we're really
+    // processing the arguments.
+    $argument = drupal_clone($this);
+    if (!isset($arg) && $argument->has_default_argument()) {
+      $arg = $argument->get_default_argument();
+    }
+    // Set the argument, which will also validate that the argument can be set.
+    if ($argument->set_argument($arg)) {
+      $value = $argument->argument;
+    }
+    unset($argument);
+    return $value;
+  }
+}
+
+/**
+ * A special handler to take the place of missing or broken handlers.
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument_broken extends views_handler_argument {
+  function ui_name($short = FALSE) {
+    return t('Broken/missing handler');
+  }
+
+  function ensure_my_table() { /* No table to ensure! */ }
+  function query() { /* No query to run */ }
+  function options_form(&$form, &$form_state) {
+    $form['markup'] = array(
+      '#prefix' => '<div class="form-item description">',
+      '#value' => t('The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item.'),
+    );
+  }
+
+  /**
+   * Determine if the handler is considered 'broken'
+   */
+  function broken() { return TRUE; }
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_date.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_date.inc
new file mode 100644
index 0000000..23d2235
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_date.inc
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Abstract argument handler for dates.
+ *
+ * Adds an option to set a default argument based on the current date.
+ *
+ * @param $arg_format
+ *   The format string to use on the current time when
+ *   creating a default date argument.
+ *
+ * Definitions terms:
+ * - many to one: If true, the "many to one" helper will be used.
+ * - invalid input: A string to give to the user for obviously invalid input.
+ *                  This is deprecated in favor of argument validators.
+ * @see views_many_to_one_helper
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument_date extends views_handler_argument_formula {
+  var $option_name = 'default_argument_date';
+  var $arg_format = 'Y-m-d';
+
+  /**
+   * Add an option to set the default value to the current date.
+   */
+  function default_argument_form(&$form, &$form_state) {
+    parent::default_argument_form($form, $form_state);
+    $form['default_argument_type']['#options'] += array('date' => t('Current date'));
+    $form['default_argument_type']['#options'] += array('node_created' => t("Current node's creation time"));
+    $form['default_argument_type']['#options'] += array('node_changed' => t("Current node's update time"));  }
+
+  /**
+   * Set the empty argument value to the current date,
+   * formatted appropriately for this argument.
+   */
+  function get_default_argument($raw = FALSE) {
+    if (!$raw && $this->options['default_argument_type'] == 'date') {
+      return date($this->arg_format, time());
+    }
+    else if (!$raw && in_array($this->options['default_argument_type'], array('node_created', 'node_changed'))) {
+      foreach (range(1, 3) as $i) {
+        $node = menu_get_object('node', $i);
+        if (!empty($node)) {
+          continue;
+        }
+      }
+  
+      if (arg(0) == 'node' && is_numeric(arg(1))) {
+        $node = node_load(arg(1));
+      }
+
+      if (empty($node)) {
+        return parent::get_default_argument();
+      }
+      else if ($this->options['default_argument_type'] == 'node_created') {
+        return date($this->arg_format, $node->created);
+      }
+      else if ($this->options['default_argument_type'] == 'node_changed') {
+        return date($this->arg_format, $node->changed);
+      }
+    }
+
+    return parent::get_default_argument($raw);
+
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_formula.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_formula.inc
new file mode 100644
index 0000000..67e0b39
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_formula.inc
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Abstract argument handler for simple formulae.
+ *
+ * Child classes of this object should implement summary_argument, at least.
+ *
+ * Definition terms:
+ * - formula: The formula to use for this handler.
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument_formula extends views_handler_argument {
+  var $formula = NULL;
+  /**
+   * Constructor
+   */
+  function construct() {
+    parent::construct();
+
+    if (!empty($this->definition['formula'])) {
+      $this->formula = $this->definition['formula'];
+    }
+  }
+
+  function get_formula() {
+    return str_replace('***table***', $this->table_alias, $this->formula);
+  }
+
+  /**
+   * Build the summary query based on a formula
+   */
+  function summary_query() {
+    $this->ensure_my_table();
+    // Now that our table is secure, get our formula.
+    $formula = $this->get_formula();
+
+    // Add the field.
+    $this->base_alias = $this->name_alias = $this->query->add_field(NULL, $formula, $this->field);
+    $this->query->set_count_field(NULL, $formula, $this->field);
+
+    return $this->summary_basics(FALSE);
+  }
+
+  /**
+   * Build the query based upon the formula
+   */
+  function query() {
+    $this->ensure_my_table();
+    // Now that our table is secure, get our formula.
+    $formula = $this->get_formula();
+
+    $this->query->add_where(0, "$formula = '%s'", $this->argument);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_many_to_one.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_many_to_one.inc
new file mode 100644
index 0000000..d078e34
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_many_to_one.inc
@@ -0,0 +1,170 @@
+<?php
+/**
+ * An argument handler for use in fields that have a many to one relationship
+ * with the table(s) to the left. This adds a bunch of options that are
+ * reasonably common with this type of relationship.
+ * Definition terms:
+ * - numeric: If true, the field will be considered numeric. Probably should
+ *   always be set TRUE as views_handler_argument_string has many to one
+ *   capabilities.
+ * - zero is null: If true, a 0 will be handled as empty, so for example 
+ *   a default argument can be provided or a summary can be shown.
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument_many_to_one extends views_handler_argument {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    $this->helper = new views_many_to_one_helper($this);
+
+    // Ensure defaults for these, during summaries and stuff:
+    $this->operator = 'or';
+    $this->value = array();
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    if (!empty($this->definition['numeric'])) {
+      $options['break_phrase'] = array('default' => FALSE);
+    }
+
+    $options['add_table'] = array('default' => FALSE);
+    $options['require_value'] = array('default' => FALSE);
+
+    views_many_to_one_helper::option_definition($options);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // allow + for or, , for and
+    if (!empty($this->definition['numeric'])) {
+      $form['break_phrase'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Allow multiple terms per argument.'),
+        '#description' => t('If selected, users can enter multiple arguments in the form of 1+2+3 (for OR) or 1,2,3 (for AND).'),
+        '#default_value' => !empty($this->options['break_phrase']),
+      );
+    }
+
+    $form['add_table'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Allow multiple arguments to work together.'),
+      '#description' => t('If selected, multiple instances of this argument can work together, as though multiple terms were supplied to the same argument. This setting is not compatible with the "Reduce duplicates" setting.'),
+      '#default_value' => !empty($this->options['add_table']),
+    );
+
+    $form['require_value'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Do not display items with no value in summary'),
+      '#default_value' => !empty($this->options['require_value']),
+    );
+
+    $this->helper->options_form($form, $form_state);
+  }
+
+  /**
+   * Override ensure_my_table so we can control how this joins in.
+   * The operator actually has influence over joining.
+   */
+  function ensure_my_table() {
+    $this->helper->ensure_my_table();
+  }
+
+  function query() {
+    $empty = FALSE;
+    if (isset($this->definition['zero is null']) && $this->definition['zero is null']) {
+      if (empty($this->argument)) {
+        $empty = TRUE;
+      }
+    }
+    else {
+      if (!isset($this->argument)) {
+        $empty = TRUE;
+      }
+    }
+    if ($empty) {
+      parent::ensure_my_table();
+      $this->query->add_where(0, "$this->table_alias.$this->real_field IS NULL");
+      return;
+    }
+
+    if (!empty($this->options['break_phrase'])) {
+      views_break_phrase($this->argument, $this);
+    }
+    else {
+      $this->value = array($this->argument);
+      $this->operator = 'or';
+    }
+
+    $this->helper->add_filter();
+  }
+
+  function title() {
+    if (!$this->argument) {
+      return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : t('Uncategorized');
+    }
+
+    if (!empty($this->options['break_phrase'])) {
+      views_break_phrase($this->argument, $this);
+    }
+    else {
+      $this->value = array($this->argument);
+      $this->operator = 'or';
+    }
+
+    // @todo -- both of these should check definition for alternate keywords.
+
+    if (empty($this->value)) {
+      return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : t('Uncategorized');
+    }
+
+    if ($this->value === array(-1)) {
+      return !empty($this->definition['invalid input']) ? $this->definition['invalid input'] : t('Invalid input');
+    }
+
+    return implode($this->operator == 'or' ? ' + ' : ', ', $this->title_query());
+  }
+
+  function summary_query() {
+    $field = $this->table . '.' . $this->field;
+    $join = $this->get_join();
+
+    if (!empty($this->options['require_value'])) {
+      $join->type = 'INNER';
+    }
+
+    if (empty($this->options['add_table']) || empty($this->view->many_to_one_tables[$field])) {
+      $this->table_alias = $this->query->ensure_table($this->table, $this->relationship, $join);
+    }
+    else {
+      $this->table_alias = $this->helper->summary_join();
+    }
+
+    // Add the field.
+    $this->base_alias = $this->query->add_field($this->table_alias, $this->real_field);
+
+    $this->summary_name_field();
+
+    return $this->summary_basics();
+  }
+
+  function summary_argument($data) {
+    $value = $data->{$this->base_alias};
+    if (empty($value)) {
+      $value = 0;
+    }
+
+    return $value;
+  }
+
+  /**
+   * Override for specific title lookups.
+   */
+  function title_query() {
+    return $this->value;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_null.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_null.inc
new file mode 100644
index 0000000..4010b84
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_null.inc
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Argument handler that ignores the argument.
+ */
+class views_handler_argument_null extends views_handler_argument {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['must_not_be'] = array('default' => FALSE);
+    return $options;
+  }
+
+  /**
+   * Override options_form() so that only the relevant options
+   * are displayed to the user.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['must_not_be'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Fail basic validation if any argument is given'),
+      '#default_value' => !empty($this->options['must_not_be']),
+      '#description' => t('By checking this field, you can use this to make sure views with more arguments than necessary fail validation.'),
+    );
+
+    unset($form['wildcard']);
+    unset($form['wildcard_substitution']);
+  }
+
+  /**
+   * Override default_actions() to remove actions that don't
+   * make sense for a null argument.
+   */
+  function default_actions($which = NULL) {
+    if ($which) {
+      if (in_array($which, array('ignore', 'not found', 'empty', 'default'))) {
+        return parent::default_actions($which);
+      }
+      return;
+    }
+    $actions = parent::default_actions();
+    unset($actions['summary asc']);
+    unset($actions['summary desc']);
+    return $actions;
+  }
+
+  function validate_argument_basic($arg) {
+    if (!empty($this->options['must_not_be'])) {
+      return !isset($arg);
+    }
+
+    return parent::validate_argument_basic($arg);
+  }
+
+  /**
+   * Override the behavior of query() to prevent the query
+   * from being changed in any way.
+   */
+  function query() {}
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_numeric.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_numeric.inc
new file mode 100644
index 0000000..235a392
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_numeric.inc
@@ -0,0 +1,95 @@
+<?php
+/**
+ * @file
+ * Contains the numeric argument handler.
+ */
+
+/**
+ * Basic argument handler for arguments that are numeric. Incorporates
+ * break_phrase.
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument_numeric extends views_handler_argument {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['break_phrase'] = array('default' => FALSE);
+    $options['not'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // allow + for or, , for and
+    $form['break_phrase'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Allow multiple terms per argument.'),
+      '#description' => t('If selected, users can enter multiple arguments in the form of 1+2+3 or 1,2,3.'),
+      '#default_value' => !empty($this->options['break_phrase']),
+    );
+
+    $form['not'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Exclude the argument'),
+      '#description' => t('If selected, the numbers entered in the argument will be excluded rather than limiting the view.'),
+      '#default_value' => !empty($this->options['not']),
+    );
+  }
+
+  function title() {
+    if (!$this->argument) {
+      return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : t('Uncategorized');
+    }
+
+    if (!empty($this->options['break_phrase'])) {
+      views_break_phrase($this->argument, $this);
+    }
+    else {
+      $this->value = array($this->argument);
+      $this->operator = 'or';
+    }
+
+    if (empty($this->value)) {
+      return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : t('Uncategorized');
+    }
+
+    if ($this->value === array(-1)) {
+      return !empty($this->definition['invalid input']) ? $this->definition['invalid input'] : t('Invalid input');
+    }
+
+    return implode($this->operator == 'or' ? ' + ' : ', ', $this->title_query());
+  }
+
+  /**
+   * Override for specific title lookups.
+   */
+  function title_query() {
+    return $this->value;
+  }
+
+  function query() {
+    $this->ensure_my_table();
+
+    if (!empty($this->options['break_phrase'])) {
+      views_break_phrase($this->argument, $this);
+    }
+    else {
+      $this->value = array($this->argument);
+    }
+
+    $null_check = empty($this->options['not']) ? '' : " OR $this->table_alias.$this->real_field IS NULL";
+
+    if (count($this->value) > 1) {
+      $operator = empty($this->options['not']) ? 'IN' : 'NOT IN';
+      $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+      $this->query->add_where(0, "$this->table_alias.$this->real_field $operator ($placeholders) $null_check", $this->value);
+    }
+    else {
+      $operator = empty($this->options['not']) ? '=' : '!=';
+      $this->query->add_where(0, "$this->table_alias.$this->real_field $operator %d $null_check", $this->argument);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_string.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_string.inc
new file mode 100644
index 0000000..8dee6b9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_argument_string.inc
@@ -0,0 +1,240 @@
+<?php
+
+/**
+ * Basic argument handler to implement string arguments that may have length
+ * limits.
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument_string extends views_handler_argument {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if (!empty($this->definition['many to one'])) {
+      $this->helper = new views_many_to_one_helper($this);
+
+      // Ensure defaults for these, during summaries and stuff:
+      $this->operator = 'or';
+      $this->value = array();
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['glossary'] = array('default' => FALSE);
+    $options['ignorecase'] = array('default' => FALSE);
+    $options['limit'] = array('default' => 0);
+    $options['case'] = array('default' => 'none');
+    $options['path_case'] = array('default' => 'none');
+    $options['transform_dash'] = array('default' => FALSE);
+
+    if (!empty($this->definition['many to one'])) {
+      $options['add_table'] = array('default' => FALSE);
+      $options['require_value'] = array('default' => FALSE);
+    }
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['glossary'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Glossary mode'),
+      '#description' => t('Glossary mode applies a limit to the number of characters used in the argument, which allows the summary view to act as a glossary.'),
+      '#default_value' => $this->options['glossary'],
+    );
+
+    $form['ignorecase'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Ignore case'),
+      '#description' => t('Ignore case allows for doing database searches without case sensitivity. MySQL already works in lower-case mode, so MySQL users should leave this unchecked to improve performance.'),
+      '#default_value' => $this->options['ignorecase'],
+    );
+
+    $form['limit'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Character limit'),
+      '#description' => t('How many characters of the argument to filter against. If set to 1, all fields starting with the letter in the argument would be matched.'),
+      '#default_value' => $this->options['limit'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-glossary' => array(TRUE)),
+    );
+
+    $form['case'] = array(
+      '#type' => 'select',
+      '#title' => t('Case'),
+      '#description' => t('When printing the argument result, how to transform the case.'),
+      '#options' => array(
+        'none' => t('No transform'),
+        'upper' => t('Upper case'),
+        'lower' => t('Lower case'),
+        'ucfirst' => t('Capitalize first letter'),
+        'ucwords' => t('Capitalize each word'),
+      ),
+      '#default_value' => $this->options['case'],
+    );
+
+    $form['path_case'] = array(
+      '#type' => 'select',
+      '#title' => t('Case in path'),
+      '#description' => t('When printing url paths, how to transform the case of the argument. Do not use this unless with Postgres as it uses case sensitive comparisons.'),
+      '#options' => array(
+        'none' => t('No transform'),
+        'upper' => t('Upper case'),
+        'lower' => t('Lower case'),
+        'ucfirst' => t('Capitalize first letter'),
+        'ucwords' => t('Capitalize each word'),
+      ),
+      '#default_value' => $this->options['path_case'],
+    );
+
+    $form['transform_dash'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Transform spaces to dashes in URL'),
+      '#default_value' => $this->options['transform_dash'],
+    );
+
+    if (!empty($this->definition['many to one'])) {
+      $form['add_table'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Allow multiple arguments to work together.'),
+        '#description' => t('If selected, multiple instances of this argument can work together, as though multiple terms were supplied to the same argument. This setting is not compatible with the "Reduce duplicates" setting.'),
+        '#default_value' => !empty($this->options['add_table']),
+      );
+
+      $form['require_value'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Do not display items with no value in summary'),
+        '#default_value' => !empty($this->options['require_value']),
+      );
+    }
+  }
+
+  /**
+   * Build the summary query based on a string
+   */
+  function summary_query() {
+    if (empty($this->definition['many to one'])) {
+      $this->ensure_my_table();
+    }
+    else {
+      $this->table_alias = $this->helper->summary_join();
+    }
+
+    if (empty($this->options['glossary'])) {
+      // Add the field.
+      if (empty($this->options['ignorecase'])){
+        $this->base_alias = $this->name_alias = $this->query->add_field($this->table_alias, $this->real_field);
+        $this->query->set_count_field($this->table_alias, $this->real_field);
+      }
+      else {
+        $this->base_alias = $this->name_alias = $this->query->add_field($this->table_alias, 'LOWER(' . $this->real_field . ')');
+        $this->query->set_count_field($this->table_alias, 'LOWER(' . $this->real_field . ')');
+      }
+    }
+    else {
+      // Add the field.
+      $formula = $this->get_formula();
+      if (empty($this->options['ignorecase'])){
+        $this->base_alias = $this->name_alias = $this->query->add_field(NULL, $formula, $this->field . '_truncated');
+        $this->query->set_count_field(NULL, $formula, $this->field, $this->field . '_truncated');
+      }
+      else {
+        $this->base_alias = $this->name_alias = $this->query->add_field(NULL, 'LOWER(' . $formula . ')', $this->field . '_truncated');
+        $this->query->set_count_field(NULL, $formula, $this->field, $this->field . '_truncated');
+      }
+    }
+
+    return $this->summary_basics(FALSE);
+  }
+
+  /**
+   * Get the formula for this argument.
+   *
+   * $this->ensure_my_table() MUST have been called prior to this.
+   */
+  function get_formula() {
+    return "SUBSTR($this->table_alias.$this->real_field, 1, " . intval($this->options['limit']) . ")";
+  }
+
+  /**
+   * Build the query based upon the formula
+   */
+  function query() {
+    $argument = $this->argument;
+    if (!empty($this->options['transform_dash'])) {
+      $argument = strtr($argument, '-', ' ');
+    }
+
+    if (!empty($this->definition['many to one'])) {
+      if (!empty($this->options['glossary'])) {
+        $this->helper->formula = TRUE;
+      }
+      $this->value = array($argument);
+      $this->helper->ensure_my_table();
+      $this->helper->add_filter();
+      return;
+    }
+
+    $this->ensure_my_table();
+    if (empty($this->options['glossary'])) {
+      $field = "$this->table_alias.$this->real_field";
+    }
+    else {
+      $field = $this->get_formula();
+    }
+
+    if (empty($this->options['ignorecase'])){
+      $this->query->add_where(0, "$field = '%s'", $argument);
+    }
+    else {
+      $this->query->add_where(0, "LOWER($field) = LOWER('%s')", $argument);
+    }
+  }
+
+  function summary_argument($data) {
+    $value = $this->case_transform($data->{$this->base_alias}, 'path_case');
+    if (!empty($this->options['transform_dash'])) {
+      $value = strtr($value, ' ', '-');
+    }
+    return $value;
+  }
+
+  function case_transform($string, $option) {
+		global $multibyte;
+		
+    switch ($this->options[$option]) {
+      default:
+        return $string;
+      case 'upper':
+        return drupal_strtoupper($string);
+      case 'lower':
+        return drupal_strtolower($string);
+      case 'ucfirst':
+        return drupal_strtoupper(drupal_substr($string, 0, 1)) . drupal_substr($string, 1);
+      case 'ucwords':
+        if ($multibyte == UNICODE_MULTIBYTE) {
+          return mb_convert_case($string, MB_CASE_TITLE);
+        } else {
+          return ucwords($string);
+        }
+    }
+  }
+
+  function title() {
+    $title = $this->case_transform($this->argument, 'case');
+    if (!empty($this->options['transform_dash'])) {
+      $title = strtr($title, '-', ' ');
+    }
+
+    return check_plain($title);
+  }
+
+  function summary_name($data) {
+    return $this->case_transform(parent::summary_name($data), 'case');
+  }
+
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field.inc
new file mode 100644
index 0000000..250702d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field.inc
@@ -0,0 +1,859 @@
+<?php
+/**
+ * @defgroup views_field_handlers Views' field handlers
+ * @{
+ * Handlers to tell Views how to build and display fields.
+ *
+ */
+
+/**
+ * Base field handler that has no options and renders an unformatted field.
+ *
+ * Definition terms:
+ * - additional fields: An array of fields that should be added to the query
+ *                      for some purpose. The array is in the form of:
+ *                      array('identifier' => array('table' => tablename,
+ *                      'field' => fieldname); as many fields as are necessary
+ *                      may be in this array.
+ * - click sortable: If TRUE, this field may be click sorted.
+ */
+class views_handler_field extends views_handler {
+  var $field_alias = 'unknown';
+  var $aliases = array();
+
+  /**
+   * Construct a new field handler.
+   */
+  function construct() {
+    parent::construct();
+
+    $this->additional_fields = array();
+    if (!empty($this->definition['additional fields'])) {
+      $this->additional_fields = $this->definition['additional fields'];
+    }
+
+    if (!isset($this->options['exclude'])) {
+      $this->options['exclude'] = '';
+    }
+  }
+
+  /**
+   * Determine if this field can allow advanced rendering.
+   *
+   * Fields can set this to FALSE if they do not wish to allow
+   * token based rewriting or link-making.
+   */
+  function allow_advanced_render() {
+    return TRUE;
+  }
+
+  function init(&$view, $options) {
+    parent::init($view, $options);
+
+    $this->options += array(
+      'exclude' => FALSE,
+    );
+  }
+
+  /**
+   * Called to add the field to a query.
+   */
+  function query() {
+    $this->ensure_my_table();
+    // Add the field.
+    $this->field_alias = $this->query->add_field($this->table_alias, $this->real_field);
+
+    $this->add_additional_fields();
+  }
+
+  /**
+   * Add 'additional' fields to the query.
+   *
+   * @param $fields
+   * An array of fields. The key is an identifier used to later find the
+   * field alias used. The value is either a string in which case it's
+   * assumed to be a field on this handler's table; or it's an array in the
+   * form of
+   * @code array('table' => $tablename, 'field' => $fieldname) @endcode
+   */
+  function add_additional_fields($fields = NULL) {
+    if (!isset($fields)) {
+      // notice check
+      if (empty($this->additional_fields)) {
+        return;
+      }
+      $fields = $this->additional_fields;
+    }
+    if (!empty($fields) && is_array($fields)) {
+      foreach ($fields as $identifier => $info) {
+        if (is_array($info)) {
+          if (isset($info['table'])) {
+            $table_alias = $this->query->ensure_table($info['table'], $this->relationship);
+          }
+          else {
+            $table_alias = $this->table_alias;
+          }
+          if (empty($table_alias)) {
+            vpr(t('Handler @handler tried to add additional_field @identifier but @table could not be added!', array('@handler' => $this->definition['handler'], '@identifier' => $identifier, '@table' => $info['table'])));
+            $this->aliases[$identifier] = 'broken';
+            continue;
+          }
+          $this->aliases[$identifier] = $this->query->add_field($table_alias, $info['field']);
+        }
+        else {
+          $this->aliases[$info] = $this->query->add_field($this->table_alias, $info);
+        }
+      }
+    }
+  }
+
+  /**
+   * Called to determine what to tell the clicksorter.
+   */
+  function click_sort($order) {
+    $this->query->add_orderby($this->table_alias, $this->real_field, $order, $this->field_alias);
+  }
+
+  /**
+   * Determine if this field is click sortable.
+   */
+  function click_sortable() {
+    return !empty($this->definition['click sortable']);
+  }
+
+  /**
+   * Get this field's label.
+   */
+  function label() {
+    if (!isset($this->options['label'])) {
+      return '';
+    }
+    return $this->options['label'];
+  }
+
+  /**
+   * Return DIV or SPAN based upon the field's element type.
+   */
+  function element_type() {
+    if (isset($this->definition['element type'])) {
+      return $this->definition['element type'];
+    }
+
+    return 'span';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['label'] = array('default' => $this->definition['title'], 'translatable' => TRUE);
+    $options['alter'] = array(
+      'contains' => array(
+        'alter_text' => array('default' => FALSE),
+        'text' => array('default' => '', 'translatable' => TRUE),
+        'make_link' => array('default' => FALSE),
+        'path' => array('default' => '', 'translatable' => TRUE),
+        'absolute' => array('default' => '', 'translatable' => FALSE),
+        'alt' => array('default' => '', 'translatable' => TRUE),
+        'rel' => array('default' => ''),
+        'link_class' => array('default' => ''),
+        'prefix' => array('default' => '', 'translatable' => TRUE),
+        'suffix' => array('default' => '', 'translatable' => TRUE),
+        'target' => array('default' => '', 'translatable' => TRUE),
+        'trim' => array('default' => FALSE),
+        'max_length' => array('default' => ''),
+        'word_boundary' => array('default' => TRUE),
+        'ellipsis' => array('default' => TRUE),
+        'strip_tags' => array('default' => FALSE),
+        'html' => array('default' => FALSE),
+      ),
+    );
+    $options['empty'] = array('default' => '', 'translatable' => TRUE);
+    $options['hide_empty'] = array('default' => FALSE);
+    $options['empty_zero'] = array('default' => FALSE);
+    $options['hide_alter_empty'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  /**
+   * Default options form that provides the label widget that all fields
+   * should have.
+   */
+  function options_form(&$form, &$form_state) {
+    $form['label'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Label'),
+      '#default_value' => isset($this->options['label']) ? $this->options['label'] : '',
+      '#description' => t('The label for this field that will be displayed to end users if the style requires it.'),
+    );
+    $form['exclude'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Exclude from display'),
+      '#default_value' => $this->options['exclude'],
+      '#description' => t('Check this box to not display this field, but still load it in the view.  Use this option to not show a grouping field in each record, or when doing advanced theming.'),
+    );
+
+    if ($this->allow_advanced_render()) {
+      $form['alter']['#tree'] = TRUE;
+      $form['alter']['alter_text'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Rewrite the output of this field'),
+        '#description' => t('If checked, you can alter the output of this field by specifying a string of text with replacement tokens that can use any existing field output.'),
+        '#default_value' => $this->options['alter']['alter_text'],
+      );
+
+      $form['alter']['text'] = array(
+        '#title' => t('Text'),
+        '#type' => 'textarea',
+        '#default_value' => $this->options['alter']['text'],
+        '#description' => t('The text to display for this field. You may include HTML. You may enter data from this view as per the "Replacement patterns" below.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-alter-text' => array(1)
+        ),
+      );
+
+      $form['alter']['make_link'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Output this field as a link'),
+        '#description' => t('If checked, this field will be made into a link. The destination must be given below.'),
+        '#default_value' => $this->options['alter']['make_link'],
+      );
+      $form['alter']['path'] = array(
+        '#title' => t('Link path'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['path'],
+        '#description' => t('The Drupal path or absolute URL for this link. You may enter data from this view as per the "Replacement patterns" below.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1)
+        ),
+        '#maxlength' => 255,
+      );
+       $form['alter']['absolute'] = array(
+         '#type' => 'checkbox',
+         '#title' => t('Use absolute path'),
+         '#default_value' => $this->options['alter']['absolute'],
+         '#process' => array('views_process_dependency'),
+         '#dependency' => array(
+           'edit-options-alter-make-link' => array(1)
+         ),
+       );
+
+      $form['alter']['link_class'] = array(
+        '#title' => t('Link class'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['link_class'],
+        '#description' => t('The CSS class to apply to the link.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1)
+        ),
+      );
+      $form['alter']['alt'] = array(
+        '#title' => t('Alt text'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['alt'],
+        '#description' => t('Text to place as "alt" text which most browsers display as a tooltip when hovering over the link.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1)
+        ),
+      );
+      $form['alter']['rel'] = array(
+        '#title' => t('Rel Text'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['rel'],
+        '#description' => t('Include Rel attribute for use in lightbox2 or other javascript utility.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1)
+        ),
+      );
+      $form['alter']['prefix'] = array(
+        '#title' => t('Prefix text'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['prefix'],
+        '#description' => t('Any text to display before this link. You may include HTML.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1)
+        ),
+      );
+      $form['alter']['suffix'] = array(
+        '#title' => t('Suffix text'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['suffix'],
+        '#description' => t('Any text to display after this link. You may include HTML.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1)
+        ),
+      );
+      $form['alter']['target'] = array(
+        '#title' => t('Target'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['target'],
+        '#description' => t("Target of the link, such as _blank, _parent or an iframe's name. This field is rarely used."),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1)
+        ),
+      );
+
+
+      // Get a list of the available fields and arguments for token replacement.
+      $options = array();
+      foreach ($this->view->display_handler->get_handlers('field') as $field => $handler) {
+        $options[t('Fields')]["[$field]"] = $handler->ui_name();
+        // We only use fields up to (and including) this one.
+        if ($field == $this->options['id']) {
+          break;
+        }
+      }
+      $count = 0; // This lets us prepare the key as we want it printed.
+      foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
+        $options[t('Arguments')]['%' . ++$count] = t('@argument title', array('@argument' => $handler->ui_name()));
+        $options[t('Arguments')]['!' . $count] = t('@argument input', array('@argument' => $handler->ui_name()));
+      }
+
+      $this->document_self_tokens($options[t('Fields')]);
+
+      // Default text.
+      $output = t('<p>You must add some additional fields to this display before using this field. These fields may be marked as <em>Exclude from display</em> if you prefer. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.</p>');
+      // We have some options, so make a list.
+      if (!empty($options)) {
+        $output = t('<p>The following tokens are available for this field. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
+If you would like to have the characters %5B and %5D please use the html entity codes \'%5B\' or  \'%5D\' or they will get replaced with empty space.</p>');
+        foreach (array_keys($options) as $type) {
+          if (!empty($options[$type])) {
+            $items = array();
+            foreach ($options[$type] as $key => $value) {
+              $items[] = $key . ' == ' . $value;
+            }
+            $output .= theme('item_list', $items, $type);
+          }
+        }
+      }
+      // This construct uses 'hidden' and not markup because process doesn't
+      // run. It also has an extra div because the dependency wants to hide
+      // the parent in situations like this, so we need a second div to
+      // make this work.
+      $form['alter']['help'] = array(
+        '#type' => 'hidden',
+        '#id' => 'views-tokens-help',
+        '#prefix' => '<div><fieldset id="views-tokens-help"><legend>' . t('Replacement patterns') . '</legend>' . $output . '</fieldset></div>',
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-make-link' => array(1),
+          'edit-options-alter-alter-text' => array(1),
+        ),
+      );
+
+      $form['alter']['trim'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Trim this field to a maximum length'),
+        '#description' => t('If checked, this field be trimmed to a maximum length in characters.'),
+        '#default_value' => $this->options['alter']['trim'],
+      );
+
+      $form['alter']['max_length'] = array(
+        '#title' => t('Maximum length'),
+        '#type' => 'textfield',
+        '#default_value' => $this->options['alter']['max_length'],
+        '#description' => t('The maximum number of characters this field can be.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-trim' => array(1)
+        ),
+      );
+
+      $form['alter']['word_boundary'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Trim only on a word boundary'),
+        '#description' => t('If checked, this field be trimmed only on a word boundary. This is guaranteed to be the maximum characters stated or less. If there are no word boundaries this could trim a field to nothing.'),
+        '#default_value' => $this->options['alter']['word_boundary'],
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-trim' => array(1)
+        ),
+      );
+
+      $form['alter']['ellipsis'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Add an ellipsis'),
+        '#description' => t('If checked, a "..." will be added if a field was trimmed.'),
+        '#default_value' => $this->options['alter']['ellipsis'],
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-trim' => array(1)
+        ),
+      );
+
+      $form['alter']['html'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Field can contain HTML'),
+        '#description' => t('If checked, HTML corrector will be run to ensure tags are properly closed after trimming.'),
+        '#default_value' => $this->options['alter']['html'],
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-alter-trim' => array(1)
+        ),
+      );
+
+      $form['alter']['strip_tags'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Strip HTML tags'),
+        '#description' => t('If checked, all HTML tags will be stripped.'),
+        '#default_value' => $this->options['alter']['strip_tags'],
+        '#process' => array('views_process_dependency'),
+      );
+    }
+
+    $form['empty'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Empty text'),
+      '#default_value' => $this->options['empty'],
+      '#description' => t('If the field is empty, display this text instead.'),
+    );
+
+    $form['empty_zero'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Count the number 0 as empty'),
+      '#default_value' => $this->options['empty_zero'],
+      '#description' => t('If the field contains the number zero, display the empty text instead'),
+    );
+
+    $form['hide_empty'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Hide if empty'),
+      '#default_value' => $this->options['hide_empty'],
+      '#description' => t('Enable to hide this field if it is empty. Note that the field label or rewritten output may still be displayed. To hide labels, check the style or row style settings for empty fields. To hide rewritten content, check the Hide rewriting if empty checkbox.'),
+    );
+
+    $form['hide_alter_empty'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Do not rewrite if empty'),
+      '#default_value' => $this->options['hide_alter_empty'],
+    );
+  }
+
+  /**
+   * Provide extra data to the administration form
+   */
+  function admin_summary() {
+    return $this->label();
+  }
+
+  /**
+   * Run before any fields are rendered.
+   *
+   * This gives the handlers some time to set up before any handler has
+   * been rendered.
+   *
+   * @param $values
+   *   An array of all objects returned from the query.
+   */
+  function pre_render(&$values) { }
+
+  /**
+   * Render the field.
+   *
+   * @param $values
+   *   The values retrieved from the database.
+   */
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    return check_plain($value);
+  }
+
+  /**
+   * Render a field using advanced settings.
+   *
+   * This renders a field normally, then decides if render-as-link and
+   * text-replacement rendering is necessary.
+   */
+  function advanced_render($values) {
+    if ($this->allow_advanced_render() && method_exists($this, 'render_item')) {
+      $raw_items = $this->get_items($values);
+    }
+    else {
+      $this->last_render = $value = $this->render($values);
+      $this->original_value = $value;
+    }
+
+    if ($this->allow_advanced_render()) {
+      $tokens = NULL;
+      if (method_exists($this, 'render_item')) {
+        $items = array();
+        foreach ($raw_items as $count => $item) {
+          $this->last_render = $this->render_item($count, $item);
+          $this->original_value = $this->last_render;
+
+          $alter = $item + $this->options['alter'];
+          $items[] = $this->render_text($alter);
+        }
+
+        $value = $this->render_items($items);
+      }
+      else {
+        $value = $this->render_text($this->options['alter']);
+      }
+
+      // This happens here so that render_as_link can get the unaltered value of
+      // this field as a token rather than the altered value.
+      $this->last_render = $value;
+    }
+
+    if (empty($this->last_render)) {
+      if (($this->last_render !== 0 && $this->last_render !== '0') || !empty($this->options['empty_zero'])) {
+        $alter = $this->options['alter'];
+        $alter['alter_text'] = 1;
+        $alter['text'] = $this->options['empty'];
+        $this->last_render = $this->render_text($alter);
+      }
+    }
+
+    return $this->last_render;
+  }
+
+  /**
+   * Perform an advanced text render for the item.
+   *
+   * This is separated out as some fields may render lists, and this allows
+   * each item to be handled individually.
+   */
+  function render_text($alter) {
+    $value = trim($this->last_render);
+
+    if (!empty($alter['alter_text']) && $alter['text'] !== '') {
+      $tokens = $this->get_render_tokens($alter);
+      $value = $this->render_altered($alter, $tokens);
+    }
+
+    if ((($this->options['hide_empty'] && empty($value)) || ($this->options['hide_alter_empty'] && empty($this->original_value))) && ($value !== 0 || $this->options['empty_zero'])) {
+      return '';
+    }
+
+    if (!empty($alter['strip_tags'])) {
+      $value = strip_tags($value);
+    }
+
+    if (!empty($alter['trim']) && !empty($alter['max_length'])) {
+      $value = $this->render_trim_text($alter, $value);
+    }
+
+    if (!empty($alter['make_link']) && !empty($alter['path'])) {
+      if (!isset($tokens)) {
+       $tokens = $this->get_render_tokens($alter);
+      }
+      $value = $this->render_as_link($alter, $value, $tokens);
+    }
+
+    return $value;
+  }
+
+  /**
+   * Render this field as altered text, from a fieldset set by the user.
+   */
+  function render_altered($alter, $tokens) {
+    // Filter this right away as our substitutions are already sanitized.
+    $value = filter_xss_admin($alter['text']);
+    $value = strtr($value, $tokens);
+
+    return $value;
+  }
+
+  /**
+   * Trim the field down to the specified length.
+   */
+  function render_trim_text($alter, $value) {
+    if (!empty($alter['strip_tags'])) {
+      // NOTE: It's possible that some external fields might override the
+      // element type so if someone from, say, CCK runs into a bug here,
+      // this may be why =)
+      $this->definition['element type'] = 'span';
+    }
+    return views_trim_text($alter, $value);
+  }
+
+  /**
+   * Render this field as a link, with the info from a fieldset set by
+   * the user.
+   */
+  function render_as_link($alter, $text, $tokens) {
+    $value = '';
+
+    if (!empty($alter['prefix'])) {
+      $value .= filter_xss_admin(strtr($alter['prefix'], $tokens));
+    }
+
+    $options = array(
+      'html' => TRUE,
+      'absolute' => !empty($alter['absolute']) ? TRUE : FALSE,
+    );
+
+    // $path will be run through check_url() by l() so we do not need to
+    // sanitize it ourselves.
+    $path = $alter['path'];
+
+    // html_entity_decode removes <front>, so check whether its different to front.
+    if ($path != '<front>') {
+      // Use strip tags as there should never be HTML in the path.
+      // However, we need to preserve special characters like " that
+      // were removed by check_plain().
+      $path = strip_tags(html_entity_decode(strtr($path, $tokens)));
+    }
+
+    // If the path is empty do not build a link around the given text and return
+    // it as is.
+    if (empty($path)) {
+      return $text;
+    }
+
+    // Parse the URL and move any query and fragment parameters out of the path.
+    $url = parse_url($path);
+    if (isset($url['query'])) {
+      $path = strtr($path, array('?' . $url['query'] => ''));
+      $options['query'] = $url['query'];
+    }
+    if (isset($url['fragment'])) {
+      $path = strtr($path, array('#' . $url['fragment'] => ''));
+      // If the path is empty we want to have a fragment for the current site.
+      if ($path == '') {
+        $options['external'] = TRUE;
+      }
+      $options['fragment'] = $url['fragment'];
+    }
+
+    $alt = strtr($alter['alt'], $tokens);
+    // Set the title attribute of the link only if it improves accessibility
+    if ($alt && $alt != $text) {
+      $options['attributes']['title'] = html_entity_decode($alt, ENT_QUOTES);
+    }
+
+    $class = strtr($alter['link_class'], $tokens);
+    if ($class) {
+      $options['attributes']['class'] = $class;
+    }
+
+    if (!empty($alter['rel']) && $rel = strtr($alter['rel'], $tokens)) {
+      $options['attributes']['rel'] = $rel;
+    }
+
+    $target = check_plain(trim(strtr($alter['target'],$tokens)));
+    if (!empty($target)) {
+      $options['attributes']['target'] = $target;
+    }
+
+    // Allow the addition of arbitrary attributes to links. Additional attributes
+    // currently can only be altered in preprocessors and not within the UI.
+    if (isset($alter['link_attributes']) && is_array($alter['link_attributes'])) {
+      foreach ($alter['link_attributes'] as $key => $attribute) {
+        if (!isset($options['attributes'][$key])) {
+          $options['attributes'][$key] = strtr($attribute, $tokens);
+        }
+      }
+    }
+
+    // If the query and fragment were programatically assigned overwrite any
+    // parsed values.
+    if (isset($alter['query'])) {
+      $options['query'] = strtr($alter['query'], $tokens);
+    }
+    if (isset($alter['alias'])) {
+      // Alias is a boolean field, so no token.
+      $options['alias'] = $alter['alias'];
+    }
+    if (isset($alter['fragment'])) {
+      $options['fragment'] = strtr($alter['fragment'], $tokens);
+    }
+    if (isset($this->options['alter']['language'])) {
+      $options['language'] = $this->options['alter']['language'];
+    }
+
+    $value .= l($text, $path, $options);
+
+    if (!empty($alter['suffix'])) {
+      $value .= filter_xss_admin(strtr($alter['suffix'], $tokens));
+    }
+
+    return $value;
+  }
+
+  /**
+   * Get the 'render' tokens to use for advanced rendering.
+   *
+   * This runs through all of the fields and arguments that
+   * are available and gets their values. This will then be
+   * used in one giant str_replace().
+   */
+  function get_render_tokens($item) {
+    $tokens = array();
+    if (!empty($this->view->build_info['substitutions'])) {
+      $tokens = $this->view->build_info['substitutions'];
+    }
+    $count = 0;
+    foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
+      $token = '%' . ++$count;
+      if (!isset($tokens[$token])) {
+        $tokens[$token] = '';
+      }
+
+      // Use strip tags as there should never be HTML in the path.
+      // However, we need to preserve special characters like " that
+      // were removed by check_plain().
+      $tokens['!' . $count] = isset($this->view->args[$count - 1]) ? strip_tags(html_entity_decode($this->view->args[$count - 1])) : '';
+    }
+
+    // Now add replacements for our fields.
+    foreach ($this->view->display_handler->get_handlers('field') as $field => $handler) {
+      if (isset($handler->last_render)) {
+        $tokens["[$field]"] = $handler->last_render;
+      }
+      else {
+        $tokens["[$field]"] = '';
+      }
+      $this->add_self_tokens($tokens, $item);
+
+      // We only use fields up to (and including) this one.
+      if ($field == $this->options['id']) {
+        break;
+      }
+    }
+
+    return $tokens;
+  }
+
+  /**
+   * Add any special tokens this field might use for itself.
+   *
+   * This method is intended to be overridden by items that generate
+   * fields as a list. For example, the field that displays all terms
+   * on a node might have tokens for the tid and the term.
+   *
+   * By convention, tokens should follow the format of [token-subtoken]
+   * where token is the field ID and subtoken is the field. If the
+   * field ID is terms, then the tokens might be [terms-tid] and [terms-name].
+   */
+  function add_self_tokens(&$tokens, $item) { }
+
+  /**
+   * Document any special tokens this field might use for itself.
+   *
+   * @see add_self_tokens() for details.
+   */
+  function document_self_tokens(&$tokens) { }
+
+  /**
+   * Call out to the theme() function, which probably just calls render() but
+   * allows sites to override output fairly easily.
+   */
+  function theme($values) {
+    return theme($this->theme_functions(), $this->view, $this, $values);
+  }
+
+  function theme_functions() {
+    $themes = array();
+    $hook = 'views_view_field';
+
+    $display = $this->view->display[$this->view->current_display];
+
+    if (!empty($display)) {
+      $themes[] = $hook . '__' . $this->view->name  . '__' . $display->id . '__' . $this->options['id'];
+      $themes[] = $hook . '__' . $this->view->name  . '__' . $display->id;
+      $themes[] = $hook . '__' . $display->id . '__' . $this->options['id'];
+      $themes[] = $hook . '__' . $display->id;
+      if ($display->id != $display->display_plugin) {
+        $themes[] = $hook . '__' . $this->view->name  . '__' . $display->display_plugin . '__' . $this->options['id'];
+        $themes[] = $hook . '__' . $this->view->name  . '__' . $display->display_plugin;
+        $themes[] = $hook . '__' . $display->display_plugin . '__' . $this->options['id'];
+        $themes[] = $hook . '__' . $display->display_plugin;
+      }
+    }
+    $themes[] = $hook . '__' . $this->view->name . '__' . $this->options['id'];
+    $themes[] = $hook . '__' . $this->view->name;
+    $themes[] = $hook . '__' . $this->options['id'];
+    $themes[] = $hook;
+
+    return $themes;
+  }
+}
+
+/**
+ * A special handler to take the place of missing or broken handlers.
+ */
+class views_handler_field_broken extends views_handler_field {
+  function ui_name($short = FALSE) {
+    return t('Broken/missing handler');
+  }
+
+  function ensure_my_table() { /* No table to ensure! */ }
+  function query() { /* No query to run */ }
+  function options_form(&$form, &$form_state) {
+    $form['markup'] = array(
+      '#prefix' => '<div class="form-item description">',
+      '#value' => t('The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item.'),
+    );
+  }
+
+  /**
+   * Determine if the handler is considered 'broken'
+   */
+  function broken() { return TRUE; }
+}
+
+/**
+ * Render a numeric value as a size.
+ */
+class views_handler_field_file_size extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['file_size_display'] = array('default' => 'formatted');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['file_size_display'] = array(
+      '#title' => t('File size display'),
+      '#type' => 'select',
+      '#options' => array(
+        'formatted' => t('Formatted (in KB or MB)'),
+        'bytes' => t('Raw bytes'),
+      ),
+    );
+  }
+
+  function render($values) {
+    if ($values->{$this->field_alias}) {
+      switch ($this->options['file_size_display']) {
+        case 'bytes':
+          return $values->{$this->field_alias};
+        case 'formatted':
+        default:
+          return format_size($values->{$this->field_alias});
+      }
+    }
+    else {
+      return '';
+    }
+  }
+}
+
+/**
+ * A handler to run a field through simple XSS filtering
+ */
+class views_handler_field_xss extends views_handler_field {
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    return filter_xss($value);
+  }
+}
+
+/**
+ * @}
+ */
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_boolean.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_boolean.inc
new file mode 100644
index 0000000..16450f2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_boolean.inc
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ * A handler to provide proper displays for booleans.
+ *
+ * Allows for display of true/false, yes/no, on/off.
+ *
+ * Definition terms:
+ *   - output formats: An array where the first entry is displayed on boolean true
+ *      and the second is displayed on boolean false. An example for sticky is:
+ *      @code
+ *      'output formats' => array(
+ *        'sticky' => array(t('Sticky'), ''),
+ *      ),
+ *      @endcode
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_boolean extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['type'] = array('default' => 'yes-no');
+    $options['not'] = array('definition bool' => 'reverse');
+
+    return $options;
+  }
+
+  function init(&$view, $options) {
+    parent::init($view, $options);
+
+    $default_formats = array(
+      'yes-no' => array(t('Yes'), t('No')),
+      'true-false' => array(t('True'), t('False')),
+      'on-off' => array(t('On'), t('Off')),
+    );
+    $output_formats = isset($this->definition['output formats']) ? $this->definition['output formats'] : array();
+    $this->formats = array_merge($default_formats, $output_formats);
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    foreach ($this->formats as $key => $item) {
+      $options[$key] = implode('/', $item);
+    }
+
+    $form['type'] = array(
+      '#type' => 'select',
+      '#title' => t('Output format'),
+      '#options' => $options,
+      '#default_value' => $this->options['type'],
+    );
+    $form['not'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Reverse'),
+      '#description' => t('If checked, true will be displayed as false.'),
+      '#default_value' => $this->options['not'],
+    );
+  }
+
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    if (!empty($this->options['not'])) {
+      $value = !$value;
+    }
+
+    if (isset($this->formats[$this->options['type']])) {
+      return $value ? $this->formats[$this->options['type']][0] : $this->formats[$this->options['type']][1];
+    }
+    else {
+      return $value ? $this->formats['yes-no'][0] : $this->formats['yes-no'][1];
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_counter.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_counter.inc
new file mode 100644
index 0000000..bc09ef1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_counter.inc
@@ -0,0 +1,41 @@
+<?php
+
+class views_handler_field_counter extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['counter_start'] = array('default' => 1);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['counter_start'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Starting value'),
+      '#default_value' => $this->options['counter_start'],
+      '#description' => t('Specify the number the counter should start at.'),
+      //'#process' => array('views_process_dependency'),
+      '#size' => 2,
+    );
+  }
+
+  function query() {
+    // do nothing -- to override the parent query.
+  }
+
+  function render($values) {
+    // Note:  1 is subtracted from the counter start value below because the
+    // counter value is incremented by 1 at the end of this function.
+    $count = is_numeric($this->options['counter_start']) ? $this->options['counter_start'] - 1 : 0;
+    $pager = $this->view->pager;
+    // Get the base count of the pager.
+    if ($pager['use_pager']) {
+      $count += ($pager['items_per_page'] * $pager['current_page']) + $pager['offset'];
+    }
+    // Add the counter for the current site.
+    $count += $this->view->row_index + 1;
+
+    return $count;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_custom.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_custom.inc
new file mode 100644
index 0000000..c6e687b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_custom.inc
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * A handler to provide a field that is completely custom by the administrator.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_custom extends views_handler_field {
+  function query() {
+    // do nothing -- to override the parent query.
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    // Override the alter text option to always alter the text.
+    $options['alter']['contains']['alter_text'] = array('default' => TRUE);
+    $options['hide_alter_empty'] = array('default' => FALSE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // Remove the checkbox
+    unset($form['alter']['alter_text']);
+    unset($form['alter']['text']['#dependency']);
+    unset($form['alter']['text']['#process']);
+  }
+
+  function render($values) {
+    // Return the text, so the code never thinks the value is empty.
+    return $this->options['alter']['text'];
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_date.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_date.inc
new file mode 100644
index 0000000..7c2d51f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_date.inc
@@ -0,0 +1,74 @@
+<?php
+/**
+ * A handler to provide proper displays for dates.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_date extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['date_format'] = array('default' => 'small');
+    $options['custom_date_format'] = array('default' => '');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $time = time();
+
+    $form['date_format'] = array(
+      '#type' => 'select',
+      '#title' => t('Date format'),
+      '#options' => array(
+        'small' => t('Short date format') . ' ' . format_date($time, 'small'),
+        'medium' => t('Medium date format') . ' ' . format_date($time, 'medium'),
+        'large' => t('Long date format') . ' ' . format_date($time, 'large'),
+        'custom' => t('Custom'),
+        'raw time ago' => t('Time ago'),
+        'time ago' => t('Time ago (with "ago" appended)'),
+        'raw time span' => t('Time span (future dates start with - )'),
+        'time span' => t('Time span (with "ago/hence" appended)'),
+      ),
+      '#default_value' => isset($this->options['date_format']) ? $this->options['date_format'] : 'small',
+    );
+    $form['custom_date_format'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Custom date format'),
+      '#description' => t('If "Custom", see <a href="http://us.php.net/manual/en/function.date.php" target="_blank">the PHP docs</a> for date formats. If "Time ago", enter the number of different time units to display, which defaults to 2.'),
+      '#default_value' => isset($this->options['custom_date_format']) ? $this->options['custom_date_format'] : '',
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-date-format' => array('custom', 'raw time ago', 'time ago', 'raw time span', 'time span')),
+    );
+  }
+
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    $format = $this->options['date_format'];
+    if (in_array($format, array('custom', 'raw time ago', 'time ago', 'raw time span', 'time span'))) {
+      $custom_format = $this->options['custom_date_format'];
+    }
+    
+    if ($value) {
+      $time_diff = time() - $value; // will be positive for a datetime in the past (ago), and negative for a datetime in the future (hence)
+      switch ($format) {
+        case 'raw time ago':
+          return format_interval($time_diff, is_numeric($custom_format) ? $custom_format : 2);
+        case 'time ago':
+          return t('%time ago', array('%time' => format_interval($time_diff, is_numeric($custom_format) ? $custom_format : 2)));
+        case 'raw time span':
+          return ($time_diff < 0 ? '-' : '') . format_interval(abs($time_diff), is_numeric($custom_format) ? $custom_format : 2);
+        case 'time span':
+          return t(($time_diff < 0 ? '%time hence' : '%time ago'), array('%time' => format_interval(abs($time_diff), is_numeric($custom_format) ? $custom_format : 2)));
+        case 'custom':
+          if ($custom_format == 'r') {
+            return format_date($value, $format, $custom_format, null, 'en');
+          }
+          return format_date($value, $format, $custom_format);
+        default:
+          return format_date($value, $format);
+      }
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_markup.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_markup.inc
new file mode 100644
index 0000000..b555ab8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_markup.inc
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * A handler to run a field through check_markup, using a companion
+ * format field.
+ *
+ * - format: (REQUIRED) The field in this table used to control the format
+ *           such as the 'format' field in the node, which goes with the
+ *           'body' field.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_markup extends views_handler_field {
+  /**
+   * Constructor; calls to base object constructor.
+   */
+  function construct() {
+    parent::construct();
+
+    $this->format = $this->definition['format'];
+
+    $this->additional_fields = array();
+    if (!is_numeric($this->format)) {
+      $this->additional_fields['format'] = array('field' => $this->format);
+    }
+  }
+
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    $format = is_numeric($this->format) ? $this->format : $values->{$this->aliases['format']};
+    if ($value) {
+      $value = str_replace('<!--break-->', '', $value);
+      return check_markup($value, $format, FALSE);
+    }
+  }
+
+  function element_type() {
+    if (isset($this->definition['element type'])) {
+      return $this->definition['element type'];
+    }
+
+    return 'div';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_math.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_math.inc
new file mode 100644
index 0000000..933f2e8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_math.inc
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Render a mathematical expression as a numeric value
+ *
+ * Definition terms:
+ * - float: If true this field contains a decimal value. If unset this field
+ *          will be assumed to be integer.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_math extends views_handler_field_numeric {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['expression'] = array('default' => '');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['expression'] = array(
+      '#type' => 'textarea',
+      '#title' => t('Expression'),
+      '#description' => t('Enter mathematical expressions such as 2 + 2 or sqrt(5). You my assign variables and create mathematical functions and evaluate them. Use the ; to separate these. For example: f(x) = x + 2; f(2).'),
+      '#default_value' => $this->options['expression'],
+    );
+
+    // Create a place for the help
+    $form['expression_help'] = array();
+    parent::options_form($form, $form_state);
+
+    // Then move the existing help:
+    $form['expression_help'] = $form['alter']['help'];
+    unset($form['expression_help']['#dependency']);
+    unset($form['expression_help']['#process']);
+    unset($form['alter']['help']);
+  }
+
+  function render($values) {
+    ctools_include('math-expr');
+    $value = strtr($this->options['expression'], $this->get_render_tokens(array()));
+    $expressions = explode(';', $value);
+    $math = new ctools_math_expr;
+    foreach ($expressions as $expression) {
+      if ($expression !== '') {
+        $value = $math->evaluate($expression);
+      }
+    }
+
+    // The rest is directly from views_handler_field_numeric but because it
+    // does not allow the value to be passed in, it is copied.
+    if (!empty($this->options['set_precision'])) {
+      $value = number_format($value, $this->options['precision'], $this->options['decimal'], $this->options['separator']);
+    }
+    else {
+      $remainder = abs($value) - intval(abs($value));
+      $value = $value > 0 ? floor($value) : ceil($value);
+      $value = number_format($value, 0, '', $this->options['separator']);
+      if ($remainder) {
+        // The substr may not be locale safe.
+        $value .= $this->options['decimal'] . substr($remainder, 2);
+      }
+    }
+
+    // Check to see if hiding should happen before adding prefix and suffix.
+    if ($this->options['hide_empty'] && empty($value) && ($value !== 0 || $this->options['empty_zero'])) {
+      return '';
+    }
+
+    return check_plain($this->options['prefix'] . $value . $this->options['suffix']);
+  }
+
+  function query() { }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_numeric.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_numeric.inc
new file mode 100644
index 0000000..791747d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_numeric.inc
@@ -0,0 +1,125 @@
+<?php
+/**
+ * Render a field as a numeric value
+ *
+ * Definition terms:
+ * - float: If true this field contains a decimal value. If unset this field
+ *          will be assumed to be integer.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_numeric extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['set_precision'] = array('default' => FALSE);
+    $options['precision'] = array('default' => 0);
+    $options['decimal'] = array('default' => '.', 'translatable' => TRUE);
+    $options['separator'] = array('default' => ',', 'translatable' => TRUE);
+    $options['format_plural'] = array('default' => FALSE);
+    $options['format_plural_singular'] = array('default' => '1');
+    $options['format_plural_plural'] = array('default' => '@count');
+    $options['prefix'] = array('default' => '', 'translatable' => TRUE);
+    $options['suffix'] = array('default' => '', 'translatable' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    if (!empty($this->definition['float'])) {
+      $form['set_precision'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Round'),
+        '#description' => t('If checked, the number will be rounded.'),
+        '#default_value' => $this->options['set_precision'],
+      );
+      $form['precision'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Precision'),
+        '#default_value' => $this->options['precision'],
+        '#description' => t('Specify how many digits to print after the decimal point.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array('edit-options-set-precision' => array(TRUE)),
+        '#size' => 2,
+      );
+      $form['decimal'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Decimal point'),
+        '#default_value' => $this->options['decimal'],
+        '#description' => t('What single character to use as a decimal point.'),
+        '#size' => 2,
+      );
+    }
+    $form['separator'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Thousands separator'),
+      '#default_value' => $this->options['separator'],
+      '#description' => t('What single character to use as the thousands separator.'),
+      '#size' => 2,
+    );
+    $form['format_plural'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Format plural'),
+      '#description' => t('If checked, special handling will be used for plurality.'),
+      '#default_value' => $this->options['format_plural'],
+    );
+    $form['format_plural_singular'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Singular form'),
+      '#default_value' => $this->options['format_plural_singular'],
+      '#description' => t('Text to use for the singular form.'),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-format-plural' => array(TRUE)),
+    );
+    $form['format_plural_plural'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Plural form'),
+      '#default_value' => $this->options['format_plural_plural'],
+      '#description' => t('Text to use for the plural form, @count will be replaced with the value.'),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-format-plural' => array(TRUE)),
+    );
+    $form['prefix'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Prefix'),
+      '#default_value' => $this->options['prefix'],
+      '#description' => t('Text to put before the number, such as currency symbol.'),
+    );
+    $form['suffix'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Suffix'),
+      '#default_value' => $this->options['suffix'],
+      '#description' => t('Text to put after the number, such as currency symbol.'),
+    );
+  }
+
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    if (!empty($this->options['set_precision'])) {
+      $value = number_format($value, $this->options['precision'], $this->options['decimal'], $this->options['separator']);
+    }
+    else {
+      $remainder = abs($value) - intval(abs($value));
+      $value = $value > 0 ? floor($value) : ceil($value);
+      $value = number_format($value, 0, '', $this->options['separator']);
+      if ($remainder) {
+        // The substr may not be locale safe.
+        $value .= $this->options['decimal'] . substr($remainder, 2);
+      }
+    }
+
+    // Check to see if hiding should happen before adding prefix and suffix.
+    if ($this->options['hide_empty'] && empty($value) && ($value !== 0 || $this->options['empty_zero'])) {
+      return '';
+    }
+
+    // Should we format as a plural.
+    if (!empty($this->options['format_plural'])) {
+      $value = format_plural($value, $this->options['format_plural_singular'], $this->options['format_plural_plural']);
+    }
+
+    return filter_xss($this->options['prefix']) . check_plain($value) . filter_xss($this->options['suffix']);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_prerender_list.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_prerender_list.inc
new file mode 100644
index 0000000..c04e3d1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_prerender_list.inc
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * Field handler to provide a list of items.
+ *
+ * The items are expected to be loaded by a child object during pre_render,
+ * and 'my field' is expected to be the pointer to the items in the list.
+ *
+ * Items to render should be in a list in $this->items
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_prerender_list extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['type'] = array('default' => 'separator');
+    $options['separator'] = array('default' => ', ');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['type'] = array(
+      '#type' => 'radios',
+      '#title' => t('Display type'),
+      '#options' => array(
+        'ul' => t('Unordered list'),
+        'ol' => t('Ordered list'),
+        'separator' => t('Simple separator'),
+      ),
+      '#default_value' => $this->options['type'],
+    );
+
+    $form['separator'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Separator'),
+      '#default_value' => $this->options['separator'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('radio:options[type]' => array('separator')),
+    );
+  }
+
+  /**
+   * Render the field.
+   *
+   * This function is deprecated, but left in for older systems that have not
+   * yet or won't update their prerender list fields. If a render_item method
+   * exists, this will not get used by advanced_render.
+   */
+  function render($values) {
+    $field = $values->{$this->field_alias};
+    if (!empty($this->items[$field])) {
+      if ($this->options['type'] == 'separator') {
+        return implode(check_plain($this->options['separator']), $this->items[$field]);
+      }
+      else {
+        return theme('item_list', $this->items[$field], NULL, $this->options['type']);
+      }
+    }
+  }
+
+  /**
+   * Render all items in this field together.
+   *
+   * When using advanced render, each possible item in the list is rendered
+   * individually. Then the items are all pasted together.
+   */
+  function render_items($items) {
+    if (!empty($items)) {
+      if ($this->options['type'] == 'separator') {
+        return implode(check_plain($this->options['separator']), $items);
+      }
+      else {
+        return theme('item_list', $items, NULL, $this->options['type']);
+      }
+    }
+  }
+
+  /**
+   * Return an array of items for the field.
+   *
+   * Items should be stored in the result array, if possible, as an array 
+   * with 'value' as the actual displayable value of the item, plus
+   * any items that might be found in the 'alter' options array for
+   * creating links, such as 'path', 'fragment', 'query' etc, such a thing
+   * is to be made. Additionally, items that might be turned into tokens
+   * should also be in this array.
+   */
+  function get_items($values) {
+    $field = $values->{$this->field_alias};
+    if (!empty($this->items[$field])) {
+      return $this->items[$field];
+    }
+    
+    return array();
+  }
+
+  /**
+   * Determine if advanced rendering is allowed.
+   *
+   * By default, advanced rendering will NOT be allowed if the class
+   * inheriting from this does not implement a 'render_items' method.
+   */
+  function allow_advanced_render() {
+    // Note that the advanced render bits also use the presence of
+    // this method to determine if it needs to render items as a list.
+    return method_exists($this, 'render_item');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_url.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_url.inc
new file mode 100644
index 0000000..2eb765b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_field_url.inc
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that turns a URL into a clickable link.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_url extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['display_as_link'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  /**
+   * Provide link to the page being visited.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['display_as_link'] = array(
+      '#title' => t('Display as link'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['display_as_link']),
+    );
+  }
+
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    if (!empty($this->options['display_as_link'])) {
+      return l(check_plain($value), $value, array('html' => TRUE));
+    }
+    else {
+      return check_url($value);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter.inc
new file mode 100644
index 0000000..2718042
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter.inc
@@ -0,0 +1,636 @@
+<?php
+/**
+ * @defgroup views_filter_handlers Views' filter handlers
+ * @{
+ * Handlers to tell Views how to filter queries.
+ *
+ * Definition items:
+ * - allow empty: If true, the 'IS NULL' and 'IS NOT NULL' operators become
+ *   available as standard operators.
+ *
+ * Object flags:
+ *  You can set some specific behavior by setting up the following flags on
+ *  your custom class.
+ *
+ * - no_single:
+ *    Disable the possibility to force a single value.
+ * - no_operator:
+ *    Disable the possibility to use operators.
+ * - no_optional:
+ *    Disable the possibility to allow a exposed input to be optional.
+ */
+
+/**
+ * Base class for filters.
+ */
+class views_handler_filter extends views_handler {
+  /**
+   * Provide some extra help to get the operator/value easier to use.
+   *
+   * This likely has to be overridden by filters which are more complex
+   * than simple operator/value.
+   */
+  function init(&$view, $options) {
+    parent::init($view, $options);
+
+    $this->operator = $this->options['operator'];
+    $this->value = $this->options['value'];
+
+    // Compatibility: Set use_operator to true if the old way of using
+    // the operator is set and use_operator is NULL (was never set).
+    if (!empty($options['exposed']) && !empty($options['expose']['operator']) && !isset($options['expose']['use_operator'])) {
+      $this->options['expose']['use_operator'] = TRUE;
+    }
+
+    // If there are relationships in the view, allow empty should be true
+    // so that we can do IS NULL checks on items. Not all filters respect
+    // allow empty, but string and numeric do and that covers enough.
+    if ($this->view->display_handler->get_option('relationships')) {
+      $this->definition['allow empty'] = TRUE;
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['operator'] = array('default' => '=');
+    $options['value'] = array('default' => '');
+    $options['group'] = array('default' => '0');
+    $options['exposed'] = array('default' => FALSE);
+    $options['expose'] = array(
+      'contains' => array(
+        'operator' => array('default' => FALSE),
+        'label' => array('default' => '', 'translatable' => TRUE),
+      ),
+    );
+
+    return $options;
+  }
+
+  /**
+   * Display the filter on the administrative summary
+   */
+  function admin_summary() {
+    return check_plain((string) $this->operator) . ' ' . check_plain((string) $this->value);
+  }
+
+  /**
+   * Determine if a filter can be exposed.
+   */
+  function can_expose() { return TRUE; }
+
+  /**
+   * Provide the basic form which calls through to subforms.
+   * If overridden, it is best to call through to the parent,
+   * or to at least make sure all of the functions in this form
+   * are called.
+   */
+  function options_form(&$form, &$form_state) {
+    if ($this->can_expose()) {
+      $this->show_expose_button($form, $form_state);
+    }
+    $form['op_val_start'] = array('#value' => '<div class="clear-block">');
+    $this->show_operator_form($form, $form_state);
+    $this->show_value_form($form, $form_state);
+    $form['op_val_end'] = array('#value' => '</div>');
+    if ($this->can_expose()) {
+      $this->show_expose_form($form, $form_state);
+    }
+  }
+
+  /**
+   * Simple validate handler
+   */
+  function options_validate($form, &$form_state) {
+    $this->operator_validate($form, $form_state);
+    $this->value_validate($form, $form_state);
+    if (!empty($this->options['exposed'])) {
+      $this->expose_validate($form, $form_state);
+    }
+
+  }
+
+  /**
+   * Simple submit handler
+   */
+  function options_submit($form, &$form_state) {
+    unset($form_state['values']['expose_button']); // don't store this.
+    $this->operator_submit($form, $form_state);
+    $this->value_submit($form, $form_state);
+    if (!empty($this->options['exposed'])) {
+      $this->expose_submit($form, $form_state);
+    }
+  }
+
+  /**
+   * Shortcut to display the operator form.
+   */
+  function show_operator_form(&$form, &$form_state) {
+    $this->operator_form($form, $form_state);
+    $form['operator']['#prefix'] = '<div class="views-left-30">';
+    $form['operator']['#suffix'] = '</div>';
+  }
+
+  /**
+   * Provide a form for setting the operator.
+   *
+   * This may be overridden by child classes, and it must
+   * define $form['operator'];
+   */
+  function operator_form(&$form, &$form_state) {
+    $options = $this->operator_options();
+    if (!empty($options)) {
+      $form['operator'] = array(
+        '#type' => count($options) < 10 ? 'radios' : 'select',
+        '#title' => t('Operator'),
+        '#default_value' => $this->operator,
+        '#options' => $options,
+      );
+    }
+  }
+
+  /**
+   * Provide a list of options for the default operator form.
+   * Should be overridden by classes that don't override operator_form
+   */
+  function operator_options() { return array(); }
+
+  /**
+   * Validate the operator form.
+   */
+  function operator_validate($form, &$form_state) { }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function operator_submit($form, &$form_state) { }
+
+  /**
+   * Shortcut to display the value form.
+   */
+  function show_value_form(&$form, &$form_state) {
+    $this->value_form($form, $form_state);
+    if (empty($this->no_operator)) {
+      $form['value']['#prefix'] = '<div class="views-right-70">' . (isset($form['value']['#prefix']) ? $form['value']['#prefix'] : '');
+      $form['value']['#suffix'] = (isset($form['value']['#suffix']) ? $form['value']['#suffix'] : '') . '</div>';
+    }
+  }
+
+  /**
+   * Provide a form for setting options.
+   *
+   * This should be overridden by all child classes and it must
+   * define $form['value']
+   */
+  function value_form(&$form, &$form_state) { $form['value'] = array(); }
+
+  /**
+   * Validate the options form.
+   */
+  function value_validate($form, &$form_state) { }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function value_submit($form, &$form_state) { }
+
+  /**
+   * Shortcut to display the expose/hide button.
+   */
+  function show_expose_button(&$form, &$form_state) {
+    $form['expose_button'] = array(
+      '#prefix' => '<div class="views-expose clear-block">',
+      '#suffix' => '</div>',
+    );
+    if (empty($this->options['exposed'])) {
+      $form['expose_button']['button'] = array(
+        '#type' => 'submit',
+        '#value' => t('Expose'),
+        '#submit' => array('views_ui_config_item_form_expose'),
+      );
+      $form['expose_button']['markup'] = array(
+        '#prefix' => '<div class="description">',
+        '#value' => t('This item is currently not exposed. If you <strong>expose</strong> it, users will be able to change the filter as they view it.'),
+        '#suffix' => '</div>',
+      );
+    }
+    else {
+      $form['expose_button']['button'] = array(
+        '#type' => 'submit',
+        '#value' => t('Hide'),
+        '#submit' => array('views_ui_config_item_form_expose'),
+      );
+      $form['expose_button']['markup'] = array(
+        '#prefix' => '<div class="description">',
+        '#value' => t('This item is currently exposed. If you <strong>hide</strong> it, users will not be able to change the filter as they view it.'),
+        '#suffix' => '</div>',
+      );
+    }
+  }
+
+  /**
+   * Shortcut to display the exposed options form.
+   */
+  function show_expose_form(&$form, &$form_state) {
+    if (empty($this->options['exposed'])) {
+      return;
+    }
+
+    $form['expose'] = array(
+      '#prefix' => '<div class="views-expose-options clear-block">',
+      '#suffix' => '</div>',
+    );
+    $this->expose_form($form, $form_state);
+
+    // When we click the expose button, we add new gadgets to the form but they
+    // have no data in $_POST so their defaults get wiped out. This prevents
+    // these defaults from getting wiped out. This setting will only be TRUE
+    // during a 2nd pass rerender.
+    if (!empty($form_state['force_expose_options'])) {
+      foreach (element_children($form['expose']) as $id) {
+        if (isset($form['expose'][$id]['#default_value']) && !isset($form['expose'][$id]['#value'])) {
+          $form['expose'][$id]['#value'] = $form['expose'][$id]['#default_value'];
+        }
+      }
+    }
+  }
+
+  /**
+   * Overridable form for exposed filter options.
+   *
+   * If overridden, it is best to call the parent or re-implement
+   * the stuff here.
+   *
+   * Many filters will need to override this in order to provide options
+   * that are nicely tailored to the given filter.
+   */
+  function expose_form(&$form, &$form_state) {
+    $form['expose']['start_left'] = array(
+      '#value' => '<div class="views-left-50">',
+    );
+
+    $this->expose_form_left($form, $form_state);
+
+    $form['expose']['end_left'] = array(
+      '#value' => '</div>',
+    );
+
+    $form['expose']['start_checkboxes'] = array(
+      '#value' => '<div class="form-checkboxes views-left-40 clear-block">',
+    );
+
+    $this->expose_form_right($form, $form_state);
+
+    $form['expose']['end_checkboxes'] = array(
+      '#value' => '</div>',
+    );
+  }
+
+  /**
+   * Handle the 'left' side fo the exposed options form.
+   */
+  function expose_form_left(&$form, &$form_state) {
+    if (!empty($form['operator']['#type'])) {
+      $form['expose']['use_operator'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Unlock operator'),
+        '#description' => t('When checked, the operator will be exposed to the user'),
+        '#default_value' => !empty($this->options['expose']['use_operator']),
+      );
+      $form['expose']['operator'] = array(
+        '#type' => 'textfield',
+        '#default_value' => $this->options['expose']['operator'],
+        '#title' => t('Operator identifier'),
+        '#size' => 40,
+        '#description' => t('This will appear in the URL after the ? to identify this operator.'),
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array(
+          'edit-options-expose-use-operator' => array(1)
+        ),
+      );
+    }
+    else {
+      $form['expose']['operator'] = array(
+        '#type' => 'value',
+        '#value' => '',
+      );
+    }
+
+    $form['expose']['identifier'] = array(
+      '#type' => 'textfield',
+      '#default_value' => $this->options['expose']['identifier'],
+      '#title' => t('Filter identifier'),
+      '#size' => 40,
+      '#description' => t('This will appear in the URL after the ? to identify this filter. Cannot be blank.'),
+    );
+    $form['expose']['label'] = array(
+      '#type' => 'textfield',
+      '#default_value' => $this->options['expose']['label'],
+      '#title' => t('Label'),
+      '#size' => 40,
+    );
+  }
+
+  /**
+   * Handle the 'right' side fo the exposed options form.
+   */
+  function expose_form_right(&$form, &$form_state) {
+    if (empty($this->no_optional)) {
+      $form['expose']['optional'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Optional'),
+        '#description' => t('This exposed filter is optional and will have added options to allow it not to be set.'),
+        '#default_value' => $this->options['expose']['optional'],
+      );
+    }
+    if (empty($this->no_single)) {
+      $form['expose']['single'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Force single'),
+        '#description' => t('Force this exposed filter to accept only one option.'),
+        '#default_value' => $this->options['expose']['single'],
+      );
+    }
+    $form['expose']['remember'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Remember'),
+      '#description' => t('Remember the last setting the user gave this filter.'),
+      '#default_value' => $this->options['expose']['remember'],
+    );
+  }
+
+  /**
+   * Validate the options form.
+   */
+  function expose_validate($form, &$form_state) {
+    if (empty($this->options['expose']['identifier'])) {
+      if (empty($form_state['values']['options']['expose']['identifier'])) {
+        form_error($form['expose']['identifier'], t('The identifier is required if the filter is exposed.'));
+      }
+    }
+
+    if (!empty($form_state['values']['options']['expose']['identifier']) && $form_state['values']['options']['expose']['identifier'] == 'value') {
+      form_error($form['expose']['identifier'], t('This identifier is not allowed.'));
+    }
+
+    if (!$this->view->display_handler->is_identifier_unique($form_state['id'], $form_state['values']['options']['expose']['identifier'])) {
+      form_error($form['expose']['identifier'], t('This identifier is used by another handler.'));
+    }
+  }
+
+  /**
+   * Perform any necessary changes to the form exposes prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function expose_submit($form, &$form_state) { }
+
+  /**
+   * Provide default options for exposed filters.
+   */
+  function expose_options() {
+    $this->options['expose'] = array(
+      'use_operator' => FALSE,
+      'operator' => $this->options['id'] . '_op',
+      'identifier' => $this->options['id'],
+      'label' => $this->ui_name(),
+      'remember' => FALSE,
+      'single' => TRUE,
+      'optional' => TRUE,
+    );
+  }
+
+  /**
+   * Render our chunk of the exposed filter form when selecting
+   *
+   * You can override this if it doesn't do what you expect.
+   */
+  function exposed_form(&$form, &$form_state) {
+    if (empty($this->options['exposed'])) {
+      return;
+    }
+
+    if (!empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator'])) {
+      $operator = $this->options['expose']['operator'];
+      $this->operator_form($form, $form_state);
+      $form[$operator] = $form['operator'];
+
+      if (isset($form[$operator]['#title'])) {
+        unset($form[$operator]['#title']);
+      }
+
+      $this->exposed_translate($form[$operator], 'operator');
+
+      unset($form['operator']);
+    }
+
+    if (!empty($this->options['expose']['identifier'])) {
+      $value = $this->options['expose']['identifier'];
+      $this->value_form($form, $form_state);
+      $form[$value] = $form['value'];
+
+      if (isset($form[$value]['#title']) && !empty($form[$value]['#type']) && $form[$value]['#type'] != 'checkbox') {
+        unset($form[$value]['#title']);
+      }
+
+      $this->exposed_translate($form[$value], 'value');
+
+      if (!empty($form['#type']) && ($form['#type'] == 'checkboxes' || ($form['#type'] == 'select' && !empty($form['#multiple'])))) {
+        unset($form[$value]['#default_value']);
+      }
+
+      if (!empty($form['#type']) && $form['#type'] == 'select' && empty($form['#multiple'])) {
+        $form[$value]['#default_value'] = 'All';
+      }
+
+      if ($value != 'value') {
+        unset($form['value']);
+      }
+    }
+  }
+
+  /**
+   * Make some translations to a form item to make it more suitable to
+   * exposing.
+   */
+  function exposed_translate(&$form, $type) {
+    if (!isset($form['#type'])) {
+      return;
+    }
+
+    if ($form['#type'] == 'radios') {
+      $form['#type'] = 'select';
+    }
+    // Checkboxes don't work so well in exposed forms due to GET conversions.
+    if ($form['#type'] == 'checkboxes') {
+      if (empty($form['#no_convert']) || !empty($this->options['expose']['single'])) {
+        $form['#type'] = 'select';
+      }
+      if (empty($this->options['expose']['single'])) {
+        $form['#multiple'] = TRUE;
+      }
+    }
+    if (!empty($this->options['expose']['single']) && isset($form['#multiple'])) {
+      unset($form['#multiple']);
+      $form['#size'] = NULL;
+    }
+
+    if ($type == 'value' && empty($this->no_optional) && !empty($this->options['expose']['optional']) && $form['#type'] == 'select' && empty($form['#multiple'])) {
+      $any_label = variable_get('views_exposed_filter_any_label', 'old_any') == 'old_any' ? '<Any>' : t('- Any -');
+      $form['#options'] = array('All' => $any_label) + $form['#options'];
+      $form['#default_value'] = 'All';
+    }
+  }
+
+  /**
+   * Tell the renderer about our exposed form. This only needs to be
+   * overridden for particularly complex forms. And maybe not even then.
+   */
+  function exposed_info() {
+    if (empty($this->options['exposed'])) {
+      return;
+    }
+
+    return array(
+      'operator' => $this->options['expose']['operator'],
+      'value' => $this->options['expose']['identifier'],
+      'label' => $this->options['expose']['label'],
+    );
+  }
+
+  /**
+   * Check to see if input from the exposed filters should change
+   * the behavior of this filter.
+   */
+  function accept_exposed_input($input) {
+    if (empty($this->options['exposed'])) {
+      return TRUE;
+    }
+
+
+    if (!empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator']) && isset($input[$this->options['expose']['operator']])) {
+      $this->operator = $input[$this->options['expose']['operator']];
+    }
+
+    if (!empty($this->options['expose']['identifier'])) {
+      $value = $input[$this->options['expose']['identifier']];
+
+      // Various ways to check for the absence of optional input.
+      if (!empty($this->options['expose']['optional'])) {
+
+        if (($this->operator == 'empty' || $this->operator == 'not empty') && $value === '') {
+          $value = ' ';
+        }
+
+        if ($this->operator != 'empty' && $this->operator != 'not empty') {
+          if ($value == 'All' || $value === array()) {
+            return FALSE;
+          }
+        }
+
+        if (!empty($this->no_single) && $value === '') {
+          return FALSE;
+        }
+      }
+
+
+      if (isset($value)) {
+        $this->value = $value;
+        if (empty($this->no_single) && !empty($this->options['expose']['single'])) {
+          $this->value = array($value);
+        }
+      }
+      else {
+        return FALSE;
+      }
+    }
+
+    return TRUE;
+  }
+
+  function store_exposed_input($input, $status) {
+    if (empty($this->options['exposed']) || empty($this->options['expose']['identifier'])) {
+      return TRUE;
+    }
+
+    if (empty($this->options['expose']['remember'])) {
+      return;
+    }
+
+    // Figure out which display id is responsible for the filters, so we
+    // know where to look for session stored values.
+    $display_id = ($this->view->display_handler->is_defaulted('filters')) ? 'default' : $this->view->current_display;
+
+    // shortcut test.
+    $operator = !empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator']);
+
+    // false means that we got a setting that means to recuse ourselves,
+    // so we should erase whatever happened to be there.
+    if (!$status && isset($_SESSION['views'][$this->view->name][$display_id])) {
+      $session = &$_SESSION['views'][$this->view->name][$display_id];
+      if ($operator && isset($session[$this->options['expose']['operator']])) {
+        unset($session[$this->options['expose']['operator']]);
+      }
+
+      if (isset($session[$this->options['expose']['identifier']])) {
+        unset($session[$this->options['expose']['identifier']]);
+      }
+    }
+
+    if ($status) {
+      if (!isset($_SESSION['views'][$this->view->name][$display_id])) {
+        $_SESSION['views'][$this->view->name][$display_id] = array();
+      }
+
+      $session = &$_SESSION['views'][$this->view->name][$display_id];
+
+      if ($operator && isset($input[$this->options['expose']['operator']])) {
+        $session[$this->options['expose']['operator']] = $input[$this->options['expose']['operator']];
+      }
+
+      $session[$this->options['expose']['identifier']] = $input[$this->options['expose']['identifier']];
+    }
+  }
+
+  /**
+   * Add this filter to the query.
+   *
+   * Due to the nature of fapi, the value and the operator have an unintended
+   * level of indirection. You will find them in $this->operator
+   * and $this->value respectively.
+   */
+  function query() {
+    $this->ensure_my_table();
+    $this->query->add_where($this->options['group'], "$this->table_alias.$this->real_field " . $this->operator . " '%s'", $this->value);
+  }
+}
+
+
+/**
+ * A special handler to take the place of missing or broken handlers.
+ */
+class views_handler_filter_broken extends views_handler_filter {
+  function ui_name($short = FALSE) {
+    return t('Broken/missing handler');
+  }
+
+  function ensure_my_table() { /* No table to ensure! */ }
+  function query() { /* No query to run */ }
+  function options_form(&$form, &$form_state) {
+    $form['markup'] = array(
+      '#prefix' => '<div class="form-item description">',
+      '#value' => t('The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item.'),
+    );
+  }
+
+  /**
+   * Determine if the handler is considered 'broken'
+   */
+  function broken() { return TRUE; }
+}
+
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_boolean_operator.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_boolean_operator.inc
new file mode 100644
index 0000000..ec9e415
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_boolean_operator.inc
@@ -0,0 +1,159 @@
+<?php
+/**
+ * Simple filter to handle matching of boolean values
+ *
+ * Definition items:
+ * - label: (REQUIRED) The label for the checkbox.
+ * - type: For basic 'true false' types, an item can specify the following:
+ *    - true-false: True/false (this is the default)
+ *    - yes-no: Yes/No
+ *    - on-off: On/Off
+ * - accept null: Treat a NULL value as false.
+ */
+class views_handler_filter_boolean_operator extends views_handler_filter {
+  // exposed filter options
+  var $no_single = TRUE;
+  // Don't display empty space where the operator would be.
+  var $no_operator = TRUE;
+  // Whether to accept NULL as a false value or not
+  var $accept_null = FALSE;
+
+  function construct() {
+    $this->value_value = t('True');
+    if (isset($this->definition['label'])) {
+      $this->value_value = $this->definition['label'];
+    }
+    if (isset($this->definition['accept null'])) {
+      $this->accept_null = (bool) $this->definition['accept null'];
+    }
+    else if (isset($this->definition['accept_null'])) {
+      $this->accept_null = (bool) $this->definition['accept_null'];
+    }
+    $this->value_options = NULL;
+    parent::construct();
+  }
+
+  /**
+   * Return the possible options for this filter.
+   *
+   * Child classes should override this function to set the possible values
+   * for the filter.  Since this is a boolean filter, the array should have
+   * two possible keys: 1 for "True" and 0 for "False", although the labels
+   * can be whatever makes sense for the filter.  These values are used for
+   * configuring the filter, when the filter is exposed, and in the admin
+   * summary of the filter.  Normally, this should be static data, but if it's
+   * dynamic for some reason, child classes should use a guard to reduce
+   * database hits as much as possible.
+   */
+  function get_value_options() {
+    if (isset($this->definition['type'])) {
+      if ($this->definition['type'] == 'yes-no') {
+        $this->value_options = array(1 => t('Yes'), 0 => t('No'));
+      }
+      if ($this->definition['type'] == 'on-off') {
+        $this->value_options = array(1 => t('On'), 0 => t('Off'));
+      }
+    }
+
+    // Provide a fallback if the above didn't set anything.
+    if (!isset($this->value_options)) {
+      $this->value_options = array(1 => t('True'), 0 => t('False'));
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['value']['default'] = FALSE;
+
+    return $options;
+  }
+
+  function operator_form(&$form, &$form_state) {
+    $form['operator'] = array();
+  }
+
+  function value_form(&$form, &$form_state) {
+    if (empty($this->value_options)) {
+      // Initialize the array of possible values for this filter.
+      $this->get_value_options();
+    }
+    if (!empty($form_state['exposed'])) {
+      // Exposed filter: use a select box to save space.
+      $filter_form_type = 'select';
+    }
+    else {
+      // Configuring a filter: use radios for clarity.
+      $filter_form_type = 'radios';
+    }
+    $form['value'] = array(
+      '#type' => $filter_form_type,
+      '#title' => $this->value_value,
+      '#options' => $this->value_options,
+      '#default_value' => $this->value,
+    );
+    if (!empty($this->options['exposed'])) {
+      $identifier = $this->options['expose']['identifier'];
+      if (!isset($form_state['input'][$identifier])) {
+        $form_state['input'][$identifier] = $this->value;
+      }
+      // If we're configuring an exposed filter, add an <Any> option.
+      if (empty($form_state['exposed']) || !empty($this->options['optional'])) {
+        $any_label = variable_get('views_exposed_filter_any_label', 'old_any') == 'old_any' ? '<Any>' : t('- Any -');
+        if ($form['value']['#type'] != 'select') {
+          $any_label = check_plain($any_label);
+        }
+        $form['value']['#options'] = array('All' => $any_label) + $form['value']['#options'];
+      }
+    }
+  }
+
+  function value_validate($form, &$form_state) {
+    if ($form_state['values']['options']['value'] == 'All' && empty($form_state['values']['options']['expose']['optional'])) {
+      form_set_error('value', t('You must select a value unless this is an optional exposed filter.'));
+    }
+  }
+
+  function admin_summary() {
+    if (!empty($this->options['exposed'])) {
+      return t('exposed');
+    }
+    if (empty($this->value_options)) {
+      $this->get_value_options();
+    }
+    // Now that we have the valid options for this filter, just return the
+    // human-readable label based on the current value.  The value_options
+    // array is keyed with either 0 or 1, so if the current value is not
+    // empty, use the label for 1, and if it's empty, use the label for 0.
+    return $this->value_options[!empty($this->value)];
+  }
+
+  function expose_options() {
+    parent::expose_options();
+    $this->options['expose']['operator'] = '';
+    $this->options['expose']['label'] = $this->value_value;
+    $this->options['expose']['optional'] = FALSE;
+  }
+
+  function query() {
+    $this->ensure_my_table();
+
+    $where = "$this->table_alias.$this->real_field ";
+
+    if (empty($this->value)) {
+      $where .= '= 0';
+      if ($this->accept_null) {
+        $where = '(' . $where . " OR $this->table_alias.$this->real_field IS NULL)";
+      }
+    }
+    else {
+      if (!empty($this->definition['use equal'])) {
+        $where .= '= 1';
+      }
+      else {
+        $where .= '<> 0';
+      }
+    }
+    $this->query->add_where($this->options['group'], $where);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_boolean_operator_string.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_boolean_operator_string.inc
new file mode 100644
index 0000000..bd7bd87
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_boolean_operator_string.inc
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Simple filter to handle matching of boolean values.
+ *
+ * This handler checks to see if a string field is empty (equal to '') or not.
+ * It is otherwise identical to the parent operator.
+ *
+ * Definition items:
+ * - label: (REQUIRED) The label for the checkbox.
+ */
+class views_handler_filter_boolean_operator_string extends views_handler_filter_boolean_operator {
+  function query() {
+    $this->ensure_my_table();
+    $where = "$this->table_alias.$this->real_field ";
+
+    if (empty($this->value)) {
+      $where .= "= ''";
+      if ($this->accept_null) {
+        $where = '(' . $where . " OR $this->table_alias.$this->real_field IS NULL)";
+      }
+    }
+    else {
+      $where .= "<> ''";
+    }
+    $this->query->add_where($this->options['group'], $where);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_date.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_date.inc
new file mode 100644
index 0000000..98007b8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_date.inc
@@ -0,0 +1,157 @@
+<?php
+
+/**
+ * Filter to handle dates stored as a timestamp.
+ */
+class views_handler_filter_date extends views_handler_filter_numeric {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    // value is already set up properly, we're just adding our new field to it.
+    $options['value']['type']['default'] = 'date';
+
+    return $options;
+  }
+
+  /**
+   * Add a type selector to the value form
+   */
+  function value_form(&$form, &$form_state) {
+    if (empty($form_state['exposed'])) {
+      $form['value']['type'] = array(
+        '#type' => 'radios',
+        '#title' => t('Value type'),
+        '#options' => array(
+          'date' => t('A date in any machine readable format. CCYY-MM-DD HH:MM:SS is preferred.'),
+          'offset' => t('An offset from the current time such as "!example1" or "!example2"', array('!example1' => '+1 day', '!example2' => '-2 hours -30 minutes')),
+        ),
+        '#default_value' => !empty($this->value['type']) ? $this->value['type'] : 'date',
+      );
+    }
+    parent::value_form($form, $form_state);
+  }
+
+  function options_validate($form, &$form_state) {
+    parent::options_validate($form, $form_state);
+
+    if (!empty($form_state['values']['options']['expose']['optional'])) {
+      // Who cares what the value is if it's exposed and optional.
+      return;
+    }
+
+    $this->validate_valid_time($form['value'], $form_state['values']['options']['operator'], $form_state['values']['options']['value']);
+  }
+
+  function exposed_validate(&$form, &$form_state) {
+    if (empty($this->options['exposed'])) {
+      return;
+    }
+
+    if (!empty($this->options['expose']['optional'])) {
+      // Who cares what the value is if it's exposed and optional.
+      return;
+    }
+
+    $value = &$form_state['values'][$this->options['expose']['identifier']];
+    if (!empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator'])) {
+      $operator = $form_state['values'][$this->options['expose']['operator']];
+    }
+    else {
+      $operator = $this->operator;
+    }
+
+    $this->validate_valid_time($this->options['expose']['identifier'], $operator, $value);
+
+  }
+
+  /**
+   * Validate that the time values convert to something usable.
+   */
+  function validate_valid_time(&$form, $operator, $value) {
+    $operators = $this->operators();
+
+    if ($operators[$operator]['values'] == 1) {
+      $convert = strtotime($value['value']);
+      if (!empty($form['value']) && ($convert == -1 || $convert === FALSE)) {
+        form_error($form['value'], t('Invalid date format.'));
+      }
+    }
+    elseif ($operators[$operator]['values'] == 2) {
+      $min = strtotime($value['min']);
+      if ($min == -1 || $min === FALSE) {
+        form_error($form['min'], t('Invalid date format.'));
+      }
+      $max = strtotime($value['max']);
+      if ($max == -1 || $max === FALSE) {
+        form_error($form['max'], t('Invalid date format.'));
+      }
+    }
+  }
+
+  function accept_exposed_input($input) {
+    if (empty($this->options['exposed'])) {
+      return TRUE;
+    }
+
+    // Store this because it will get overwritten.
+    $type = $this->value['type'];
+    $rc = parent::accept_exposed_input($input);
+
+    // Don't filter if value(s) are empty.
+    $operators = $this->operators();
+    if (!empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator'])) {
+      $operator = $input[$this->options['expose']['operator']];
+    }
+    else {
+      $operator = $this->operator;
+    }
+
+    if ($operators[$operator]['values'] == 1) {
+      if ($this->value['value'] == '') {
+        return FALSE;
+      }
+    }
+    else {
+      if ($this->value['min'] == '' || $this->value['max'] == '') {
+        return FALSE;
+      }
+    }
+
+    // restore what got overwritten by the parent.
+    $this->value['type'] = $type;
+    return $rc;
+  }
+
+  function op_between($field) {
+    if ($this->operator == 'between') {
+      $a = intval(strtotime($this->value['min'], 0));
+      $b = intval(strtotime($this->value['max'], 0));
+    }
+    else {
+      $a = intval(strtotime($this->value['max'], 0));
+      $b = intval(strtotime($this->value['min'], 0));
+    }
+
+    if ($this->value['type'] == 'offset') {
+      $a = '***CURRENT_TIME***' . sprintf('%+d', $a); // keep sign
+      $b = '***CURRENT_TIME***' . sprintf('%+d', $b); // keep sign
+    }
+    // %s is safe here because strtotime scrubbed the input and we might
+    // have a string if using offset.
+    if ($this->operator == 'between') {
+      $this->query->add_where($this->options['group'], "$field >= %s", $a);
+      $this->query->add_where($this->options['group'], "$field <= %s", $b);
+    }
+    else {
+      $this->query->add_where($this->options['group'], "$field >= %s OR $field <= %s", array($a, $b));
+    }
+  }
+
+  function op_simple($field) {
+    $value = intval(strtotime($this->value['value'], 0));
+    if (!empty($this->value['type']) && $this->value['type'] == 'offset') {
+      $value = '***CURRENT_TIME***' . sprintf('%+d', $value); // keep sign
+    }
+    $this->query->add_where($this->options['group'], "$field $this->operator %s", $value);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_equality.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_equality.inc
new file mode 100644
index 0000000..95ccaba
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_equality.inc
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Simple filter to handle equal to / not equal to filters
+ */
+class views_handler_filter_equality extends views_handler_filter {
+  // exposed filter options
+  var $no_single = TRUE;
+
+  /**
+   * Provide simple equality operator
+   */
+  function operator_options() {
+    return array(
+      '=' => t('Is equal to'),
+      '!=' => t('Is not equal to'),
+    );
+  }
+
+  /**
+   * Provide a simple textfield for equality
+   */
+  function value_form(&$form, &$form_state) {
+    $form['value'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Value'),
+      '#size' => 30,
+      '#default_value' => $this->value,
+    );
+
+    if (!empty($form_state['exposed'])) {
+      $identifier = $this->options['expose']['identifier'];
+      if (!isset($form_state['input'][$identifier])) {
+        $form_state['input'][$identifier] = $this->value;
+      }
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_float.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_float.inc
new file mode 100644
index 0000000..d96f121
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_float.inc
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * Simple filter to handle greater than/less than filters.
+ * It based on views_handler_filter_numeric but deals with
+ * float numbers.
+ */
+class views_handler_filter_float extends views_handler_filter_numeric {
+  function op_between($field) {
+    if ($this->operator == 'between') {
+      $this->query->add_where($this->options['group'], "$field >= %f", $this->value['min']);
+      $this->query->add_where($this->options['group'], "$field <= %f", $this->value['max']);
+    }
+    else {
+      $this->query->add_where($this->options['group'], "$field <= %f OR $field >= %f", $this->value['min'], $this->value['max']);
+    }
+  }
+
+  function op_simple($field) {
+    $this->query->add_where($this->options['group'], "$field $this->operator %f", $this->value['value']);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_in_operator.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_in_operator.inc
new file mode 100644
index 0000000..c692dea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_in_operator.inc
@@ -0,0 +1,364 @@
+<?php
+/**
+ * Simple filter to handle matching of multiple options selectable via checkboxes
+ *
+ * Definition items:
+ * - numeric: If set to true, this item will use numeric operators instead of string.
+ *
+ */
+class views_handler_filter_in_operator extends views_handler_filter {
+  var $value_form_type = 'checkboxes';
+
+  function construct() {
+    parent::construct();
+    $this->value_title = t('Options');
+    $this->value_options = NULL;
+  }
+
+  /**
+   * Child classes should be used to override this function and set the
+   * 'value options', unless 'options callback' is defined as a valid function
+   * or static public method to generate these values.
+   *
+   * This can use a guard to be used to reduce database hits as much as
+   * possible.
+   */
+  function get_value_options() {
+    if (isset($this->value_options)) {
+      return;
+    }
+
+    if (isset($this->definition['options callback']) && is_callable($this->definition['options callback'])) {
+      $this->value_options = call_user_func($this->definition['options callback']);
+    }
+    else {
+      $this->value_options = array(t('Yes'), t('No'));
+    }
+  }
+
+  function expose_options() {
+    parent::expose_options();
+    $this->options['expose']['reduce'] = FALSE;
+  }
+
+  function expose_form_right(&$form, &$form_state) {
+    parent::expose_form_right($form, $form_state);
+    $form['expose']['reduce'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Limit list to selected items'),
+      '#description' => t('If checked, the only items presented to the user will be the ones selected here.'),
+      '#default_value' => !empty($this->options['expose']['reduce']), // safety
+    );
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['operator']['default'] = 'in';
+    $options['value']['default'] = array();
+
+    return $options;
+  }
+
+  /**
+   * This kind of construct makes it relatively easy for a child class
+   * to add or remove functionality by overriding this function and
+   * adding/removing items from this array.
+   */
+  function operators() {
+    $operators = array(
+      'in' => array(
+        'title' => t('Is one of'),
+        'short' => t('in'),
+        'short_single' => t('='),
+        'method' => 'op_simple',
+        'values' => 1,
+      ),
+      'not in' => array(
+        'title' => t('Is not one of'),
+        'short' => t('not in'),
+        'short_single' => t('<>'),
+        'method' => 'op_simple',
+        'values' => 1,
+      ),
+    );
+    // if the definition allows for the empty operator, add it.
+    if (!empty($this->definition['allow empty'])) {
+      $operators += array(
+        'empty' => array(
+          'title' => t('Is empty (NULL)'),
+          'method' => 'op_empty',
+          'short' => t('empty'),
+          'values' => 0,
+        ),
+        'not empty' => array(
+          'title' => t('Is not empty (NOT NULL)'),
+          'method' => 'op_empty',
+          'short' => t('not empty'),
+          'values' => 0,
+        ),
+      );
+    }
+
+    return $operators;
+  }
+
+  /**
+   * Build strings from the operators() for 'select' options
+   */
+  function operator_options($which = 'title') {
+    $options = array();
+    foreach ($this->operators() as $id => $info) {
+      $options[$id] = $info[$which];
+    }
+
+    return $options;
+  }
+
+  function operator_values($values = 1) {
+    $options = array();
+    foreach ($this->operators() as $id => $info) {
+      if (isset($info['values']) && $info['values'] == $values) {
+        $options[] = $id;
+      }
+    }
+
+    return $options;
+  }
+
+  function value_form(&$form, &$form_state) {
+    $form['value'] = array();
+
+    $this->get_value_options();
+    $options = $this->value_options;
+    $default_value = (array) $this->value;
+
+    $which = 'all';
+    if (!empty($form['operator'])) {
+      $source = ($form['operator']['#type'] == 'radios') ? 'radio:options[operator]' : 'edit-options-operator';
+    }
+    if (!empty($form_state['exposed'])) {
+      $identifier = $this->options['expose']['identifier'];
+
+      if (empty($this->options['expose']['use_operator']) || empty($this->options['expose']['operator'])) {
+        // exposed and locked.
+        $which = in_array($this->operator, $this->operator_values(1)) ? 'value' : 'none';
+      }
+      else {
+        $source = 'edit-' . form_clean_id($this->options['expose']['operator']);
+      }
+
+      if (!empty($this->options['expose']['reduce'])) {
+        $options = $this->reduce_value_options();
+
+        if (empty($this->options['expose']['single']) && !empty($this->options['expose']['optional'])) {
+          $default_value = array();
+        }
+      }
+
+      if (!empty($this->options['expose']['single'])) {
+        if (!empty($this->options['expose']['optional']) && (empty($default_value) || !empty($this->options['expose']['reduce']))) {
+          $default_value = 'All';
+        }
+        else if (empty($default_value)) {
+          $keys = array_keys($options);
+          $default_value = array_shift($keys);
+        }
+        else {
+          $copy = $default_value;
+          $default_value = array_shift($copy);
+        }
+      }
+    }
+
+    if ($which == 'all' || $which == 'value') {
+      $form['value'] = array(
+        '#type' => $this->value_form_type,
+        '#title' => $this->value_title,
+        '#options' => $options,
+        '#default_value' => $default_value,
+        // These are only valid for 'select' type, but do no harm to checkboxes.
+        '#multiple' => TRUE,
+        '#size' => count($options) > 8 ? 8 : count($options),
+      );
+      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
+        $form_state['input'][$identifier] = $default_value;
+      }
+
+      $process = array();
+      if ($this->value_form_type == 'checkboxes') {
+        // If this form element will use checkboxes in the UI, we need to
+        // check_plain() all the options ourselves since FAPI is inconsistent
+        // about this. However, instead of directly doing that to the #options
+        // right now, we define a #process callback since we might change our
+        // mind later and convert this into a 'select' form element, which
+        // would lead to double-escaping the options.
+        $process[] = 'views_process_check_options';
+      }
+      if ($which == 'all') {
+        if (empty($form_state['exposed']) && ($this->value_form_type == 'checkboxes' || $this->value_form_type == 'radios')) {
+          $process[] = "expand_$this->value_form_type";
+          $form['value']['#prefix'] = '<div id="edit-options-value-wrapper">';
+          $form['value']['#suffix'] = '</div>';
+        }
+        $process[] = 'views_process_dependency';
+        $form['value']['#dependency'] = array($source => $this->operator_values(1));
+      }
+      if (!empty($process)) {
+        $form['value']['#process'] = $process;
+      }
+    }
+  }
+
+  /**
+   * When using exposed filters, we may be required to reduce the set.
+   */
+  function reduce_value_options($input = NULL) {
+    if (!isset($input)) {
+      $input = $this->value_options;
+    }
+
+    // Because options may be an array of strings, or an array of mixed arrays
+    // and strings (optgroups) or an array of objects, we have to
+    // step through and handle each one individually.
+    $options = array();
+    foreach ($input as $id => $option) {
+      if (is_array($option)) {
+        $options[$id] = $this->reduce_value_options($option);
+        continue;
+      }
+      else if (is_object($option)) {
+        $keys = array_keys($option->option);
+        $key = array_shift($keys);
+        if (isset($this->options['value'][$key])) {
+          $options[$id] = $option;
+        }
+      }
+      else if (isset($this->options['value'][$id])) {
+        $options[$id] = $option;
+      }
+    }
+    return $options;
+  }
+
+  function accept_exposed_input($input) {
+    // A very special override because the All state for this type of
+    // filter could have a default:
+    if (empty($this->options['exposed'])) {
+      return TRUE;
+    }
+
+    // If this is single and optional, this says that yes this filter will
+    // participate, but using the default settings, *if* 'limit is true.
+    if (!empty($this->options['expose']['single']) && !empty($this->options['expose']['optional']) && !empty($this->options['expose']['limit'])) {
+      $identifier = $this->options['expose']['identifier'];
+      if ($input[$identifier] == 'All') {
+        return TRUE;
+      }
+    }
+
+    return parent::accept_exposed_input($input);
+  }
+
+  function value_submit($form, &$form_state) {
+    // Drupal's FAPI system automatically puts '0' in for any checkbox that
+    // was not set, and the key to the checkbox if it is set.
+    // Unfortunately, this means that if the key to that checkbox is 0,
+    // we are unable to tell if that checkbox was set or not.
+
+    // Luckily, the '#value' on the checkboxes form actually contains
+    // *only* a list of checkboxes that were set, and we can use that
+    // instead.
+
+    $form_state['values']['options']['value'] = $form['value']['#value'];
+//    $form_state['values']['options']['value'] = array_filter($form_state['values']['options']['value']);
+  }
+
+  function admin_summary() {
+    if (!empty($this->options['exposed'])) {
+      return t('exposed');
+    }
+    $info = $this->operators();
+
+    $this->get_value_options();
+
+    if (!is_array($this->value)) {
+      return;
+    }
+
+    $operator = check_plain($info[$this->operator]['short']);
+    $values = '';
+    if (in_array($this->operator, $this->operator_values(1))) {
+      // Remove every element which is not known.
+      foreach ($this->value as $value) {
+        if (!isset($this->value_options[$value])) {
+          unset($this->value[$value]);
+        }
+      }
+      // Choose different kind of ouput for 0, a single and multiple values.
+      if (count($this->value) == 0) {
+        $values = t('Unknown');
+      }
+      else if (count($this->value) == 1) {
+        // If any, use the 'single' short name of the operator instead.
+        if (isset($info[$this->operator]['short_single'])) {
+          $operator = check_plain($info[$this->operator]['short_single']);
+        }
+
+        $keys = $this->value;
+        $value = array_shift($keys);
+        $values = check_plain($this->value_options[$value]);
+      }
+      else {
+        foreach ($this->value as $value) {
+          if ($values !== '') {
+            $values .= ', ';
+          }
+          if (strlen($values) > 8) {
+            $values .= '...';
+            break;
+          }
+          $values .= check_plain($this->value_options[$value]);
+        }
+      }
+    }
+
+    return $operator . (($values !== '') ? ' ' . $values : '');
+  }
+
+  function query() {
+    $info = $this->operators();
+    if (!empty($info[$this->operator]['method'])) {
+      $this->{$info[$this->operator]['method']}();
+    }
+  }
+
+  function op_simple() {
+    if (empty($this->value)) {
+      return;
+    }
+    $this->ensure_my_table();
+    $placeholder = !empty($this->definition['numeric']) ? '%d' : "'%s'";
+
+    $replace = array_fill(0, sizeof($this->value), $placeholder);
+    $in = ' (' . implode(", ", $replace) . ')';
+
+    // We use array_values() because the checkboxes keep keys and that can cause
+    // array addition problems.
+    $this->query->add_where($this->options['group'], "$this->table_alias.$this->real_field " . $this->operator . $in, array_values($this->value));
+  }
+
+  function op_empty() {
+    $this->ensure_my_table();
+    $field = "$this->table_alias.$this->real_field";
+
+    if ($this->operator == 'empty') {
+      $operator = "IS NULL";
+    }
+    else {
+      $operator = "IS NOT NULL";
+    }
+
+    $this->query->add_where($this->options['group'], "$field $operator");
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_many_to_one.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_many_to_one.inc
new file mode 100644
index 0000000..b19ea3e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_many_to_one.inc
@@ -0,0 +1,103 @@
+<?php
+
+/**
+ * Complex filter to handle filtering for many to one relationships,
+ * such as terms (many terms per node) or roles (many roles per user).
+ *
+ * The construct method needs to be overridden to provide a list of options;
+ * alternately, the value_form and admin_summary methods need to be overriden
+ * to provide something that isn't just a select list.
+ */
+class views_handler_filter_many_to_one extends views_handler_filter_in_operator {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    $this->helper = new views_many_to_one_helper($this);
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['operator']['default'] = 'or';
+    $options['value']['default'] = array();
+
+    return $options;
+  }
+
+  function operators() {
+    $operators = array(
+      'or' => array(
+        'title' => t('Is one of'),
+        'short' => t('or'),
+        'short_single' => t('='),
+        'method' => 'op_helper',
+        'values' => 1,
+        'ensure_my_table' => 'helper',
+      ),
+      'and' => array(
+        'title' => t('Is all of'),
+        'short' => t('and'),
+        'short_single' => t('='),
+        'method' => 'op_helper',
+        'values' => 1,
+        'ensure_my_table' => 'helper',
+      ),
+      'not' => array(
+        'title' => t('Is none of'),
+        'short' => t('not'),
+        'short_single' => t('<>'),
+        'method' => 'op_helper',
+        'values' => 1,
+        'ensure_my_table' => 'helper',
+      ),
+    );
+    // if the definition allows for the empty operator, add it.
+    if (!empty($this->definition['allow empty'])) {
+      $operators += array(
+        'empty' => array(
+          'title' => t('Is empty (NULL)'),
+          'method' => 'op_empty',
+          'short' => t('empty'),
+          'values' => 0,
+        ),
+        'not empty' => array(
+          'title' => t('Is not empty (NOT NULL)'),
+          'method' => 'op_empty',
+          'short' => t('not empty'),
+          'values' => 0,
+        ),
+      );
+    }
+
+    return $operators;
+  }
+
+  var $value_form_type = 'select';
+  function value_form(&$form, &$form_state) {
+    parent::value_form($form, $form_state);
+
+    if (empty($form_state['exposed'])) {
+      $this->helper->options_form($form, $form_state);
+    }
+  }
+
+  /**
+   * Override ensure_my_table so we can control how this joins in.
+   * The operator actually has influence over joining.
+   */
+  function ensure_my_table() {
+    // Defer to helper if the operator specifies it.
+    $info = $this->operators();
+    if (isset($info[$this->operator]['ensure_my_table']) && $info[$this->operator]['ensure_my_table'] == 'helper') {
+      return $this->helper->ensure_my_table();
+    }
+
+    return parent::ensure_my_table();
+  }
+
+  function op_helper() {
+    if (empty($this->value)) {
+      return;
+    }
+    $this->helper->add_filter();
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_numeric.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_numeric.inc
new file mode 100644
index 0000000..4ea8644
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_numeric.inc
@@ -0,0 +1,302 @@
+<?php
+
+/**
+ * Simple filter to handle greater than/less than filters
+ */
+class views_handler_filter_numeric extends views_handler_filter {
+  var $no_single = TRUE;
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['value'] = array(
+      'contains' => array(
+        'min' => array('default' => ''),
+        'max' => array('default' => ''),
+        'value' => array('default' => ''),
+      ),
+    );
+
+    return $options;
+  }
+
+  function operators() {
+    $operators = array(
+      '<' => array(
+        'title' => t('Is less than'),
+        'method' => 'op_simple',
+        'short' => t('<'),
+        'values' => 1,
+      ),
+      '<=' => array(
+        'title' => t('Is less than or equal to'),
+        'method' => 'op_simple',
+        'short' => t('<='),
+        'values' => 1,
+      ),
+      '=' => array(
+        'title' => t('Is equal to'),
+        'method' => 'op_simple',
+        'short' => t('='),
+        'values' => 1,
+      ),
+      '!=' => array(
+        'title' => t('Is not equal to'),
+        'method' => 'op_simple',
+        'short' => t('!='),
+        'values' => 1,
+      ),
+      '>=' => array(
+        'title' => t('Is greater than or equal to'),
+        'method' => 'op_simple',
+        'short' => t('>='),
+        'values' => 1,
+      ),
+      '>' => array(
+        'title' => t('Is greater than'),
+        'method' => 'op_simple',
+        'short' => t('>'),
+        'values' => 1,
+      ),
+      'between' => array(
+        'title' => t('Is between'),
+        'method' => 'op_between',
+        'short' => t('between'),
+        'values' => 2,
+      ),
+      'not between' => array(
+        'title' => t('Is not between'),
+        'method' => 'op_between',
+        'short' => t('not between'),
+        'values' => 2,
+      ),
+    );
+
+    // if the definition allows for the empty operator, add it.
+    if (!empty($this->definition['allow empty'])) {
+      $operators += array(
+        'empty' => array(
+          'title' => t('Is empty (NULL)'),
+          'method' => 'op_empty',
+          'short' => t('empty'),
+          'values' => 0,
+        ),
+        'not empty' => array(
+          'title' => t('Is not empty (NOT NULL)'),
+          'method' => 'op_empty',
+          'short' => t('not empty'),
+          'values' => 0,
+        ),
+      );
+    }
+
+    return $operators;
+  }
+
+  /**
+   * Provide a list of all the numeric operators
+   */
+  function operator_options($which = 'title') {
+    $options = array();
+    foreach ($this->operators() as $id => $info) {
+      $options[$id] = $info[$which];
+    }
+
+    return $options;
+  }
+
+  function operator_values($values = 1) {
+    $options = array();
+    foreach ($this->operators() as $id => $info) {
+      if ($info['values'] == $values) {
+        $options[] = $id;
+      }
+    }
+
+    return $options;
+  }
+  /**
+   * Provide a simple textfield for equality
+   */
+  function value_form(&$form, &$form_state) {
+    $form['value']['#tree'] = TRUE;
+
+    // We have to make some choices when creating this as an exposed
+    // filter form. For example, if the operator is locked and thus
+    // not rendered, we can't render dependencies; instead we only
+    // render the form items we need.
+    $which = 'all';
+    if (!empty($form['operator'])) {
+      $source = ($form['operator']['#type'] == 'radios') ? 'radio:options[operator]' : 'edit-options-operator';
+    }
+
+    if (!empty($form_state['exposed'])) {
+      $identifier = $this->options['expose']['identifier'];
+
+      if (empty($this->options['expose']['use_operator']) || empty($this->options['expose']['operator'])) {
+        // exposed and locked.
+        $which = in_array($this->operator, $this->operator_values(2)) ? 'minmax' : 'value';
+      }
+      else {
+        $source = 'edit-' . form_clean_id($this->options['expose']['operator']);
+      }
+    }
+
+    if ($which == 'all') {
+      $form['value']['value'] = array(
+        '#type' => 'textfield',
+        '#title' => empty($form_state['exposed']) ? t('Value') : '',
+        '#size' => 30,
+        '#default_value' => $this->value['value'],
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array($source => $this->operator_values(1)),
+      );
+      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier]['value'])) {
+        $form_state['input'][$identifier]['value'] = $this->value['value'];
+      }
+    }
+    else if ($which == 'value') {
+      // When exposed we drop the value-value and just do value if
+      // the operator is locked.
+      $form['value'] = array(
+        '#type' => 'textfield',
+        '#title' => empty($form_state['exposed']) ? t('Value') : '',
+        '#size' => 30,
+        '#default_value' => $this->value['value'],
+      );
+      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
+        $form_state['input'][$identifier] = $this->value['value'];
+      }
+    }
+
+    if ($which == 'all' || $which == 'minmax') {
+      $form['value']['min'] = array(
+        '#type' => 'textfield',
+        '#title' => empty($form_state['exposed']) ? t('Min') : '',
+        '#size' => 30,
+        '#default_value' => $this->value['min'],
+      );
+      $form['value']['max'] = array(
+        '#type' => 'textfield',
+        '#title' => empty($form_state['exposed']) ? t('And max') : t('And'),
+        '#size' => 30,
+        '#default_value' => $this->value['max'],
+      );
+      if ($which == 'all') {
+        $dependency = array(
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array($source => $this->operator_values(2)),
+        );
+        $form['value']['min'] += $dependency;
+        $form['value']['max'] += $dependency;
+      }
+      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier]['min'])) {
+        $form_state['input'][$identifier]['min'] = $this->value['min'];
+      }
+      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier]['max'])) {
+        $form_state['input'][$identifier]['max'] = $this->value['max'];
+      }
+
+      if (!isset($form['value'])) {
+        // Ensure there is something in the 'value'.
+        $form['value'] = array(
+          '#type' => 'value',
+          '#value' => NULL
+        );
+      }
+    }
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $field = "$this->table_alias.$this->real_field";
+
+    $info = $this->operators();
+    if (!empty($info[$this->operator]['method'])) {
+      $this->{$info[$this->operator]['method']}($field);
+    }
+  }
+
+  function op_between($field) {
+    if ($this->operator == 'between') {
+      $this->query->add_where($this->options['group'], "$field >= %d", $this->value['min']);
+      $this->query->add_where($this->options['group'], "$field <= %d", $this->value['max']);
+    }
+    else {
+      $this->query->add_where($this->options['group'], "$field <= %d OR $field >= %d", $this->value['min'], $this->value['max']);
+    }
+  }
+
+  function op_simple($field) {
+    $this->query->add_where($this->options['group'], "$field $this->operator %d", $this->value['value']);
+  }
+
+  function op_empty($field) {
+    if ($this->operator == 'empty') {
+      $operator = "IS NULL";
+    }
+    else {
+      $operator = "IS NOT NULL";
+    }
+
+    $this->query->add_where($this->options['group'], "$field $operator");
+  }
+
+  function admin_summary() {
+    if (!empty($this->options['exposed'])) {
+      return t('exposed');
+    }
+
+    $options = $this->operator_options('short');
+    $output = check_plain($options[$this->operator]);
+    if (in_array($this->operator, $this->operator_values(2))) {
+      $output .= ' ' . t('@min and @max', array('@min' => $this->value['min'], '@max' => $this->value['max']));
+    }
+    elseif (in_array($this->operator, $this->operator_values(1))) {
+      $output .= ' ' . check_plain($this->value['value']);
+    }
+    return $output;
+  }
+
+  /**
+   * Do some minor translation of the exposed input
+   */
+  function accept_exposed_input($input) {
+    if (empty($this->options['exposed'])) {
+      return TRUE;
+    }
+
+    // rewrite the input value so that it's in the correct format so that
+    // the parent gets the right data.
+    if (!empty($this->options['expose']['identifier'])) {
+      $value = &$input[$this->options['expose']['identifier']];
+      if (!is_array($value)) {
+        $value = array(
+          'value' => $value,
+        );
+      }
+    }
+
+    $rc = parent::accept_exposed_input($input);
+
+    if (!empty($this->options['expose']['optional'])) {
+      // We have to do some of our own optional checking.
+      $info = $this->operators();
+      if (!empty($info[$this->operator]['values'])) {
+        switch ($info[$this->operator]['values']) {
+          case 1:
+            if ($value['value'] === '') {
+              return FALSE;
+            }
+            break;
+          case 2:
+            if ($value['min'] === '' && $value['max'] === '') {
+              return FALSE;
+            }
+            break;
+        }
+      }
+    }
+
+    return $rc;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_string.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_string.inc
new file mode 100644
index 0000000..7cc7a51
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_filter_string.inc
@@ -0,0 +1,303 @@
+<?php
+
+/**
+ * Basic textfield filter to handle string filtering commands
+ * including equality, like, not like, etc.
+ */
+class views_handler_filter_string extends views_handler_filter {
+  // exposed filter options
+  var $no_single = TRUE;
+  var $no_optional = TRUE;
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['expose']['contains']['optional'] = array('default' => FALSE);
+    $options['case'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  /**
+   * This kind of construct makes it relatively easy for a child class
+   * to add or remove functionality by overriding this function and
+   * adding/removing items from this array.
+   */
+  function operators() {
+    $operators = array(
+      '=' => array(
+        'title' => t('Is equal to'),
+        'short' => t('='),
+        'method' => 'op_equal',
+        'values' => 1,
+      ),
+      '!=' => array(
+        'title' => t('Is not equal to'),
+        'short' => t('!='),
+        'method' => 'op_equal',
+        'values' => 1,
+      ),
+      'contains' => array(
+        'title' => t('Contains'),
+        'short' => t('contains'),
+        'method' => 'op_contains',
+        'values' => 1,
+      ),
+      'word' => array(
+        'title' => t('Contains any word'),
+        'short' => t('has word'),
+        'method' => 'op_word',
+        'values' => 1,
+      ),
+      'allwords' => array(
+        'title' => t('Contains all words'),
+        'short' => t('has all'),
+        'method' => 'op_word',
+        'values' => 1,
+      ),
+      'starts' => array(
+        'title' => t('Starts with'),
+        'short' => t('begins'),
+        'method' => 'op_starts',
+        'values' => 1,
+      ),
+      'not_starts' => array(
+        'title' => t('Does not start with'),
+        'short' => t('not_begins'),
+        'method' => 'op_not_starts',
+        'values' => 1,
+      ),
+      'ends' => array(
+        'title' => t('Ends with'),
+        'short' => t('ends'),
+        'method' => 'op_ends',
+        'values' => 1,
+      ),
+      'not_ends' => array(
+        'title' => t('Does not end with'),
+        'short' => t('not_ends'),
+        'method' => 'op_not_ends',
+        'values' => 1,
+      ),
+      'not' => array(
+        'title' => t('Does not contain'),
+        'short' => t('!has'),
+        'method' => 'op_not',
+        'values' => 1,
+      ),
+    );
+    // if the definition allows for the empty operator, add it.
+    if (!empty($this->definition['allow empty'])) {
+      $operators += array(
+        'empty' => array(
+          'title' => t('Is empty (NULL)'),
+          'method' => 'op_empty',
+          'short' => t('empty'),
+          'values' => 0,
+        ),
+        'not empty' => array(
+          'title' => t('Is not empty (NOT NULL)'),
+          'method' => 'op_empty',
+          'short' => t('not empty'),
+          'values' => 0,
+        ),
+      );
+    }
+
+    return $operators;
+  }
+
+  /**
+   * Build strings from the operators() for 'select' options
+   */
+  function operator_options($which = 'title') {
+    $options = array();
+    foreach ($this->operators() as $id => $info) {
+      $options[$id] = $info[$which];
+    }
+
+    return $options;
+  }
+
+  function admin_summary() {
+    if (!empty($this->options['exposed'])) {
+      return t('exposed');
+    }
+
+    $options = $this->operator_options('short');
+    $output = check_plain($options[$this->operator]);
+    if (in_array($this->operator, $this->operator_values(1))) {
+      $output .= ' ' . check_plain($this->value);
+    }
+    return $output;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['case'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Case sensitive'),
+      '#default_value' => $this->options['case'],
+      '#description' => t('Case sensitive filters may be faster. MySQL might ignore case sensitivity.'),
+    );
+  }
+
+  function operator_values($values = 1) {
+    $options = array();
+    foreach ($this->operators() as $id => $info) {
+      if (isset($info['values']) && $info['values'] == $values) {
+        $options[] = $id;
+      }
+    }
+
+    return $options;
+  }
+
+  /**
+   * Provide a simple textfield for equality
+   */
+  function value_form(&$form, &$form_state) {
+    // We have to make some choices when creating this as an exposed
+    // filter form. For example, if the operator is locked and thus
+    // not rendered, we can't render dependencies; instead we only
+    // render the form items we need.
+    $which = 'all';
+    if (!empty($form['operator'])) {
+      $source = ($form['operator']['#type'] == 'radios') ? 'radio:options[operator]' : 'edit-options-operator';
+    }
+    if (!empty($form_state['exposed'])) {
+      $identifier = $this->options['expose']['identifier'];
+
+      if (empty($this->options['expose']['use_operator']) || empty($this->options['expose']['operator'])) {
+        // exposed and locked.
+        $which = in_array($this->operator, $this->operator_values(1)) ? 'value' : 'none';
+      }
+      else {
+        $source = 'edit-' . form_clean_id($this->options['expose']['operator']);
+      }
+    }
+
+    if ($which == 'all' || $which == 'value') {
+      $form['value'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Value'),
+        '#size' => 30,
+        '#default_value' => $this->value,
+      );
+      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
+        $form_state['input'][$identifier] = $this->value;
+      }
+
+      if ($which == 'all') {
+        $form['value'] += array(
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array($source => $this->operator_values(1)),
+        );
+      }
+    }
+
+    if (!isset($form['value'])) {
+      // Ensure there is something in the 'value'.
+      $form['value'] = array(
+        '#type' => 'value',
+        '#value' => NULL
+      );
+    }
+  }
+
+  function case_transform() {
+    return !empty($this->options['case']) ? '' : 'UPPER';
+  }
+
+  /**
+   * Add this filter to the query.
+   *
+   * Due to the nature of fapi, the value and the operator have an unintended
+   * level of indirection. You will find them in $this->operator
+   * and $this->value respectively.
+   */
+  function query() {
+    $this->ensure_my_table();
+    $field = "$this->table_alias.$this->real_field";
+    $upper = $this->case_transform();
+
+    $info = $this->operators();
+    if (!empty($info[$this->operator]['method'])) {
+      $this->{$info[$this->operator]['method']}($field, $upper);
+    }
+  }
+
+  function op_equal($field, $upper) {
+    // operator is either = or !=
+    $this->query->add_where($this->options['group'], "$upper($field) $this->operator $upper('%s')", $this->value);
+  }
+
+  function op_contains($field, $upper) {
+    $this->query->add_where($this->options['group'], "$upper($field) LIKE $upper('%%%s%%')", $this->value);
+  }
+
+  function op_word($field, $upper) {
+    $where = array();
+    preg_match_all('/ (-?)("[^"]+"|[^" ]+)/i', ' ' . $this->value, $matches, PREG_SET_ORDER);
+    foreach ($matches as $match) {
+      $phrase = false;
+      // Strip off phrase quotes
+      if ($match[2]{0} == '"') {
+        $match[2] = substr($match[2], 1, -1);
+        $phrase = true;
+      }
+      $words = trim($match[2], ',?!();:-');
+      $words = $phrase ? array($words) : preg_split('/ /', $words, -1, PREG_SPLIT_NO_EMPTY);
+      foreach ($words as $word) {
+        $where[] = "$upper($field) LIKE $upper('%%%s%%')";
+        $values[] = trim($word, " ,!?");
+      }
+    }
+
+    if (!$where) {
+      return;
+    }
+
+    if ($this->operator == 'word') {
+      $where = '(' . implode(' OR ', $where) . ')';
+    }
+    else {
+      $where = implode(' AND ', $where);
+    }
+    // previously this was a call_user_func_array but that's unnecessary
+    // as views will unpack an array that is a single arg.
+    $this->query->add_where($this->options['group'], $where, $values);
+  }
+
+  function op_starts($field, $upper) {
+    $this->query->add_where($this->options['group'], "$upper($field) LIKE $upper('%s%%')", $this->value);
+  }
+
+  function op_not_starts($field, $upper) {
+    $this->query->add_where($this->options['group'], "$upper($field) NOT LIKE $upper('%s%%')", $this->value);
+  }
+
+  function op_ends($field, $upper) {
+    $this->query->add_where($this->options['group'], "$upper($field) LIKE $upper('%%%s')", $this->value);
+  }
+
+  function op_not_ends($field, $upper) {
+    $this->query->add_where($this->options['group'], "$upper($field) NOT LIKE $upper('%%%s')", $this->value);
+  }
+
+  function op_not($field, $upper) {
+    $this->query->add_where($this->options['group'], "$upper($field) NOT LIKE $upper('%%%s%%')", $this->value);
+  }
+
+  function op_empty($field) {
+    if ($this->operator == 'empty') {
+      $operator = "IS NULL";
+    }
+    else {
+      $operator = "IS NOT NULL";
+    }
+
+    $this->query->add_where($this->options['group'], "$field $operator");
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_relationship.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_relationship.inc
new file mode 100644
index 0000000..459ac7c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_relationship.inc
@@ -0,0 +1,152 @@
+<?php
+/**
+ * @file
+ * Views' relationship handlers.
+ */
+
+/**
+ * @defgroup views_relationship_handlers Views' relationship handlers
+ * @{
+ * Handlers to tell Views how to create alternate relationships.
+ */
+
+/**
+ * Simple relationship handler that allows a new version of the primary table
+ * to be linked in.
+ *
+ * The base relationship handler can only handle a single join. Some relationships
+ * are more complex and might require chains of joins; for those, you must
+ * utilize a custom relationship handler.
+ *
+ * Definition items:
+ * - base: The new base table this relationship will be adding. This does not
+ *   have to be a declared base table, but if there are no tables that
+ *   utilize this base table, it won't be very effective.
+ * - base field: The field to use in the relationship; if left out this will be
+ *   assumed to be the primary field.
+ * - relationship table: The actual table this relationship operates against.
+ *   This is analogous to using a 'table' override.
+ * - relationship field: The actual field this relationship operates against.
+ *   This is analogous to using a 'real field' override.
+ * - label: The default label to provide for this relationship, which is
+ *   shown in parentheses next to any field/sort/filter/argument that uses
+ *   the relationship.
+ */
+class views_handler_relationship extends views_handler {
+  /**
+   * Init handler to let relationships live on tables other than
+   * the table they operate on.
+   */
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if (isset($this->definition['relationship table'])) {
+      $this->table = $this->definition['relationship table'];
+    }
+    if (isset($this->definition['relationship field'])) {
+      $this->field = $this->definition['relationship field'];
+    }
+  }
+
+  /**
+   * Get this field's label.
+   */
+  function label() {
+    if (!isset($this->options['label'])) {
+      return $this->ui_name();
+    }
+    return $this->options['label'];
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $label = !empty($this->definition['label']) ? $this->definition['label'] : $this->definition['field'];
+    $options['label'] = array('default' => $label, 'translatable' => TRUE);
+    $options['required'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  /**
+   * Default options form that provides the label widget that all fields
+   * should have.
+   */
+  function options_form(&$form, &$form_state) {
+    $form['label'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Label'),
+      '#default_value' => isset($this->options['label']) ? $this->options['label'] : '',
+      '#description' => t('The label for this relationship that will be displayed only administratively.'),
+    );
+
+    $form['required'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Require this relationship'),
+      '#description' => t('If required, items that do not contain this relationship will not appear.'),
+      '#default_value' => !empty($this->options['required']),
+    );
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    // Figure out what base table this relationship brings to the party.
+    $table_data = views_fetch_data($this->definition['base']);
+    $base_field = empty($this->definition['base field']) ? $table_data['table']['base']['field'] : $this->definition['base field'];
+
+    $this->ensure_my_table();
+
+    $def = $this->definition;
+    $def['table'] = $this->definition['base'];
+    $def['field'] = $base_field;
+    $def['left_table'] = $this->table_alias;
+    $def['left_field'] = $this->field;
+    if (!empty($this->options['required'])) {
+      $def['type'] = 'INNER';
+    }
+
+    if (!empty($def['join_handler']) && class_exists($def['join_handler'])) {
+      $join = new $def['join_handler'];
+    }
+    else {
+      $join = new views_join();
+    }
+
+    $join->definition = $def;
+    $join->construct();
+    $join->adjusted = TRUE;
+
+    // use a short alias for this:
+    $alias = $def['table'] . '_' . $this->table;
+
+    $this->alias = $this->query->add_relationship($alias, $join, $this->definition['base'], $this->relationship);
+  }
+}
+
+/**
+ * A special handler to take the place of missing or broken handlers.
+ */
+class views_handler_relationship_broken extends views_handler_relationship {
+  function ui_name($short = FALSE) {
+    return t('Broken/missing handler');
+  }
+
+  function ensure_my_table() { /* No table to ensure! */ }
+  function query() { /* No query to run */ }
+  function options_form(&$form, &$form_state) {
+    $form['markup'] = array(
+      '#prefix' => '<div class="form-item description">',
+      '#value' => t('The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item.'),
+    );
+  }
+
+  /**
+   * Determine if the handler is considered 'broken'
+   */
+  function broken() { return TRUE; }
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort.inc
new file mode 100644
index 0000000..ead0f5c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort.inc
@@ -0,0 +1,86 @@
+<?php
+/**
+ * @defgroup views_sort_handlers Views' sort handlers
+ * @{
+ * Handlers to tell Views how to sort queries
+ */
+
+/**
+ * Base sort handler that has no options and performs a simple sort
+ */
+class views_handler_sort extends views_handler {
+  /**
+   * Called to add the sort to a query.
+   */
+  function query() {
+    $this->ensure_my_table();
+    // Add the field.
+    $this->query->add_orderby($this->table_alias, $this->real_field, $this->options['order']);
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['order'] = array('default' => 'ASC');
+
+    return $options;
+  }
+
+  /**
+   * Display whether or not the sort order is ascending or descending
+   */
+  function admin_summary() {
+    switch ($this->options['order']) {
+      case 'ASC':
+      case 'asc':
+      default:
+        $type = t('asc');
+        break;
+      case 'DESC';
+      case 'desc';
+        $type = t('desc');
+        break;
+    }
+    return '<span class="views-ascending"><span>' . $type . '</span></span>';
+  }
+
+  /**
+   * Basic options for all sort criteria
+   */
+  function options_form(&$form, &$form_state) {
+    $form['order'] = array(
+      '#type' => 'radios',
+      '#title' => t('Sort order'),
+      '#options' => array('ASC' => t('Ascending'), 'DESC' => t('Descending')),
+      '#default_value' => $this->options['order'],
+    );
+  }
+}
+
+/**
+ * A special handler to take the place of missing or broken handlers.
+ */
+class views_handler_sort_broken extends views_handler_sort {
+  function ui_name($short = FALSE) {
+    return t('Broken/missing handler');
+  }
+
+  function ensure_my_table() { /* No table to ensure! */ }
+  function query() { /* No query to run */ }
+  function options_form(&$form, &$form_state) {
+    $form['markup'] = array(
+      '#prefix' => '<div class="form-item description">',
+      '#value' => t('The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item.'),
+    );
+  }
+
+  /**
+   * Determine if the handler is considered 'broken'
+   */
+  function broken() { return TRUE; }
+}
+
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_date.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_date.inc
new file mode 100644
index 0000000..8101482
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_date.inc
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * Basic sort handler for dates.
+ *
+ * This handler enables granularity, which is the ability to make dates
+ * equivalent based upon nearness.
+ *
+ * @ingroup views_sort_handlers
+ */
+class views_handler_sort_date extends views_handler_sort {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['granularity'] = array('default' => 'second');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['granularity'] = array(
+      '#type' => 'radios',
+      '#title' => t('Granularity'),
+      '#options' => array(
+        'second' => t('Second'),
+        'minute' => t('Minute'),
+        'hour'   => t('Hour'),
+        'day'    => t('Day'),
+        'month'  => t('Month'),
+        'year'   => t('Year'),
+      ),
+      '#description' => t('The granularity is the smallest unit to use when determining whether two dates are the same; for example, if the granularity is "Year" then all dates in 1999, regardless of when they fall in 1999, will be considered the same date.'),
+      '#default_value' => $this->options['granularity'],
+    );
+  }
+
+  /**
+   * Called to add the sort to a query.
+   */
+  function query() {
+    $this->ensure_my_table();
+    switch ($this->options['granularity']) {
+      case 'second':
+      default:
+        $this->query->add_orderby($this->table_alias, $this->real_field, $this->options['order']);
+        return;
+      case 'minute':
+        $formula = views_date_sql_format('YmdHi', "$this->table_alias.$this->real_field");
+        break;
+      case 'hour':
+        $formula = views_date_sql_format('YmdH', "$this->table_alias.$this->real_field");
+        break;
+      case 'day':
+        $formula = views_date_sql_format('Ymd', "$this->table_alias.$this->real_field");
+        break;
+      case 'month':
+        $formula = views_date_sql_format('Ym', "$this->table_alias.$this->real_field");
+        break;
+      case 'year':
+        $formula = views_date_sql_format('Y', "$this->table_alias.$this->real_field");
+        break;
+    }
+
+    // Add the field.
+    $this->query->add_orderby(NULL, $formula, $this->options['order'], $this->table_alias . '_' . $this->field . '_' . $this->options['granularity']);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_formula.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_formula.inc
new file mode 100644
index 0000000..30a6451
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_formula.inc
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Base sort handler that has no options and performs a simple sort
+ *
+ * Definition items:
+ * - formula: The formula to use to sort on, such as with a random sort.
+ *            The formula should be an array, with keys for database
+ *            types, and 'default' for non-specified. 'default' is
+ *            required, all others ('mysql', 'mysqli' and 'pgsql' are
+ *            optional). It is recommended you use 'default' for mysql
+ *            and create specific overrides for pgsql when the formulae
+ *            differ.
+ *
+ * @ingroup views_sort_handlers
+ */
+class views_handler_sort_formula extends views_handler_sort {
+  /**
+   * Constructor to take the formula this sorts on.
+   */
+  function construct() {
+    $this->formula = $this->definition['formula'];
+    if (is_array($this->formula) && !isset($this->formula['default'])) {
+      $this->error = t('views_handler_sort_formula missing default: @formula', array('@formula' => var_export($this->formula, TRUE)));
+    }
+    parent::construct();
+  }
+  /**
+   * Called to add the sort to a query.
+   */
+  function query() {
+    if (is_array($this->formula)) {
+      global $db_type;
+      if (isset($this->formula[$db_type])) {
+        $formula = $this->formula[$db_type];
+      }
+      else {
+        $formula = $this->formula['default'];
+      }
+    }
+    else {
+      $formula = $this->formula;
+    }
+    $this->ensure_my_table();
+    // Add the field.
+    $this->query->add_orderby(NULL, $formula, $this->options['order'], $this->table_alias . '_' . $this->field);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_menu_hierarchy.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_menu_hierarchy.inc
new file mode 100644
index 0000000..294b3c4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_menu_hierarchy.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Sort in menu hierarchy order.
+ *
+ * Given a field name of 'p' this produces an ORDER BY on p1, p2, ..., p9.
+ * This is only really useful for the {menu_links} table.
+ *
+ * @ingroup views_sort_handlers
+ */
+class views_handler_sort_menu_hierarchy extends views_handler_sort {
+  function query() {
+    $this->ensure_my_table();
+    $max_depth = isset($this->definition['max depth']) ? $this->definition['max depth'] : MENU_MAX_DEPTH;
+    for ($i = 1; $i <= $max_depth; ++$i) {
+      $this->query->add_orderby($this->table_alias, $this->field . $i, $this->options['order']);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_random.inc b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_random.inc
new file mode 100644
index 0000000..0a926b3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/handlers/views_handler_sort_random.inc
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * Handle a random sort.
+ */
+class views_handler_sort_random extends views_handler_sort {
+  function query() {
+    global $db_type;
+    switch ($db_type) {
+      case 'mysql':
+      case 'mysqli':
+        $formula = 'RAND()';
+        break;
+      case 'pgsql':
+        $formula = 'RANDOM()';
+        break;
+    }
+    if (!empty($formula)) {
+      $this->query->add_orderby(NULL, $formula, $this->options['order'], '_' . $this->field);
+    }
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['order']['#access'] = FALSE;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/about.html b/drupal/sites/default/boinc/modules/contrib/views/help/about.html
new file mode 100644
index 0000000..1792053
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/about.html
@@ -0,0 +1,17 @@
+The views module allows administrators and site designers to create, manage, and display lists of content. Each list managed by the views module is known as a "view", and the output of a view is known as a "display". Displays are provided in either block or page form, and a single view may have multiple displays. Optional navigation aids, including a system path and menu item, can be set for each page-based display of a view. By default, views may be created that list content (a <em>Node [...]
+
+The "building block" design of the views system provides power and flexibility, allowing parameters to be specified only when needed. While an advanced view may use all of available parameters to create complex and highly interactive applications, a simple content listing may specify only a few options. All views rely on a conceptual framework that includes:
+
+<ul>
+	<li><a href="topic:views/field">Fields</a>, or the individual pieces of data being displayed. Adding the fields <em>Node: Title</em>, <em>Node: Type</em>, and <em>Node: Post date</em> to a node view, for example, includes the title, content type and creation date in the displayed results </li>
+
+	<li><a href="topic:views/relationship">Relationships</a>, or information about how data elements relate to one another. If relationship data is available, like that provided by a CCK <em>nodereference</em> field, items from a related node may be included in the view </li>
+
+	<li><a href="topic:views/argument">Arguments</a>, or additional parameters that dynamically refine the view results, passed as part of the path. Adding an argument of <em>Node: Type</em> to a node view with a path of "content", for example, dynamically filters the displayed items by content type. In this example (shown with Clean URLs enabled), accessing the view through the path "<em>http://www.example.com/content/page</em>" displays all posts of the type "page", the path "<em>http://w [...]
+
+	<li><a href="topic:views/sort">Sort criteria</a>, which determine the order of items displayed in the view results. Adding the sort criteria <em>Node: Post date</em> (in descending order) to a node <em>view</em>, for example, sorts the displayed posts in descending order by creation date </li>
+
+	<li><a href="topic:views/filter">Filters</a>, which limit items displayed in the results. Adding the filter <em>Node: Published</em> (and setting it equal to "Published") to a node view, for example, prevents unpublished items from being displayed</li>
+
+	<li><a href="topic:views/display">Displays</a>, which control where the output will be seen. Every view has a default display, which doesn't actually display the view anywhere, but is used to hold the default settings for the view, and is used when the view is called programmatically if another display is not specified. Much more useful to users are the <a href="topic:views/display-page">page</a> display, which gives a view a path and allows it to be the primary content of a page, or th [...]
+</ul>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/analyze-theme.html b/drupal/sites/default/boinc/modules/contrib/views/help/analyze-theme.html
new file mode 100644
index 0000000..30bb871
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/analyze-theme.html
@@ -0,0 +1,23 @@
+<p>You may use any of the following possible theme files to modify individual parts of your view. In total, there are four parts to theming a view.</p>
+<ul>
+  <li> The <strong>display</strong> theme is usually views-view.tpl.php and it largely controls the decorations around a view; where the header, footer, pager, more link, feed icon, etc, will be placed. </li>
+
+  <li> The <strong>style</strong> will control how all of the results of the display are put together. It may be as simple as just displaying all of the rows, or it may be a complex table generator or something in between. </li>
+  
+  <li> The <strong>row</strong> style controls each individual row; not all styles utilize the row style (notably the table), but most others do. 
+  
+  <li> Finally, <strong>field</strong> themes allow you to override the look and even the data of each individual field, if the style uses fields. The actual template the system will use should be hilighted in <strong>bold</strong>.</li>
+</ul>
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/style-breakdown-large.png"><img src="path:images/style-breakdown.png" /></a>
+<em>A breakdown of View output</em>
+</div>
+
+<p>The link to the left of each type will give you information about the default template used for that type. You may cut and paste this and place it in your theme with the appropriate template, or you may copy the base file from the views/theme directory (or, if provided by a module, from the module's directory). <strong>It is important that you clear the theme registry cache every time you add a new template, or the new template will not be picked up.</strong></p>
+
+<p><strong>Important note:</strong> You place your custom template files in your theme directory, <strong>not views/theme</strong>. This is always true of theming with Drupal.
+
+<p>In addition to this tool, the very useful <a href="http://drupal.org/project/devel">devel</a> module contains a tool called the "Theme developer" which does a good job of visually showing you which areas of your site use which themes. Be careful with it, though, as the theme developer causes the Views edit page to break.</p>
+
+<p>Also, this feature will only work properly with Drupal 6.3 and later; prior to Drupal 6.3 <a href="http://drupal.org/node/241570">this patch</a> will be required.</p>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/api-default-views.html b/drupal/sites/default/boinc/modules/contrib/views/help/api-default-views.html
new file mode 100644
index 0000000..e1cdc2a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/api-default-views.html
@@ -0,0 +1,105 @@
+Views can be stored in the database, which is typical of smaller sites and hobby sites. However, Views may also be stored directly in the code as "default" views, (which simply means they're available by default). Modules often come with views that are specific to the module data, but it's also possible -- and <b>highly</b> recommended -- that sites which have separate "development" and "production" sites export their views into default views in a site-specific module. This makes it very [...]
+
+<h3>Creating a module</h3>
+First, create a directory in <em>sites/all/modules</em> for your new module. Call it whatever you like, but for this example we will call it <em>mymodule</em>.
+
+In this directory, create a <em>mymodule.module</em> file. It can be empty for now, but it should at least contain an opening PHP tag:
+<pre><?php
+// $Id $
+</pre>
+
+It should not contain a closing ?> tag, as the closing ?> tag is not required and anything AFTER the closing tag, such as a space or a linefeed, will be displayed directly to the browser and can potentially cause problems.
+
+The .module file will contain functions and drupal hooks. Hooks are specially named functions that Drupal will call in order to get your module's response at certain times while generating pages. The only function you will need for this exercise is the 'views_api' hook that tells Views that this module supports the Views API and what version:
+
+<pre>function mymodule_views_api() {
+  return array('api' => 2.0);
+}
+</pre>
+
+For other uses you may well add additional functions.
+
+Second, you need to create a <em>mymodule.info</em> file:
+
+<pre>; $Id $
+name = My module
+description = My site specific module.
+core = 6.x
+</pre>
+
+Once you have these two files set up, you should be able to activate your new module at the <em>Administer >> Site building >> Modules</em> page.
+<h3>Exporting your views</h3>
+
+The easiest way to do this is to activate the 'views_export' module, and navigate to <em>Administer >> Views >> Tools >> Bulk export</em> Place a check next to each view that you want in your module, type the module name into the text field, and click export. This will create the entire <em>hook_views_default_views()</em> function for you.
+
+You can also export individual views. If you do this, keep in mind that this export does not include the line that adds the exported $view into the larger $views array:
+
+<pre>$views[$view->name] = $view</pre>
+
+To place this into your <em>hook_views_default_views()</em> you will need to place that after the view, and make sure the function returns $views at the end.
+
+<h3>Placing your exported views into your module</h3>
+Cut and paste the entire output of the bulk export tool into mymodule.views_default.inc -- and be sure to put a <?php at the top of the file so that the webserver knows that it's PHP code! Then visit the Views tools page and clear the Views cache. Your views should now be listed as <b>Overridden</b> on the view list page. If you <b>revert</b> these views, they will be removed from the database, but will remain in code.
+
+<h3>Theming your views in your module</h3>
+You can theme these views in the module and not need to rely on the theme to do this at all; and in fact, the theme can continue to override these just like it ordinarily would, even if your module provides a theme. This is very useful for distributing a module where the view needs to look "just so."
+
+To do this, you need to implement <em>hook_theme()</em> in your module:
+<pre>function mymodule_theme($existing) {
+  return array(
+    'views_view__viewname__displayid' => array (
+      'arguments' => array('view' => NULL),
+      'template' => 'views-view--viewname--displayid',
+      'original hook' => 'views_view',
+      'path' => drupal_get_path('module', 'mymodule'),
+    ),
+  );
+}
+</pre>
+
+There are a small number of gotchas in doing this that you must be aware of.
+
+<ol>
+<li>When referring to a template filename, you always use dashes in the name. i.e, <em>views-view--viewname--displayid.tpl.php</em>. However, when referring to the hook or function names, you use underscores instead of dashes. i.e, <em>views_view</em> and <em>views_view__viewname__displayid</em></li>
+
+<li>The 'arguments' change based upon which of the 3 types you're overriding. There's the 'display', the 'style' and the 'row' style. The above code is assuming the display, which is usually just <em>views_view</em>. Here are the possibilities:
+
+<pre>display: array('view' => NULL),
+style: array('view' => NULL, 'options' => NULL, 'rows' => NULL, 'title' => NULL),
+row style: array('view' => NULL, 'options' => NULL, 'row' => NULL),
+</pre>
+
+Be sure to use the right arguments line or the theme system will not properly translate.
+</li>
+<li>The 'template' line should never include the extension, so drop the .tpl.php from it.</li>
+
+<li>You need to make sure that the Views preprocess functions get registered. The 'original hook' line in the definition does that, but it can only do it if it comes after the Views registration, which actually happens very late in theme building. 99% of the time, your module will come before Views. You have two choices to deal with this:
+<ol>
+  <li>Set your module's weight to 11 or higher in the database. Views' weight is 10. You can make this happen automatically when the module is first installed by creating a mymodule.install file and using this code:
+  <pre>function mymodule_install() {
+  db_query("UPDATE {system} SET weight = 11 WHERE name = 'mymodule'");
+}
+</pre>
+  If you use this method, the <em>original hook</em> should be set to the name of the original template being used. i.e, if this is a variate of views-view-list.tpl.php, this should be 'views_view_list'.
+  </li>
+  <li>You can also just force it to list the preprocessors without actually having to detect them. This doesn't require modifying your module's weight, which is not always possible, you can insert this code into the array:
+  <pre>      'preprocess functions' => array(
+        'template_preprocess',
+        'template_preprocess_views_view',
+        'mymodule_preprocess_views_view__viewname_displayid',
+      ),
+</pre>
+
+  The first one is the global 'template_preprocess' function which all templates utilize. It does some basic things such as setting up $zebra and a few other items. See <a href="http://api.drupal.org/api/function/template_preprocess/6">api.drupal.org</a> for specifics. 
+  
+  The second one is the plugin specific preprocess. Like 'original hook' it should conform to the name used by the original template. i.e, if the original template was <em>views-view-list.tpl.php</em> then that preprocess function would be named <em>template_preprocess_views_view_list</em>.
+
+  The third one is your module's preprocess function, if it needs one. In general, you probably will not need one, and you should only attempt to use one if you are reasonably familiar with the concept of preprocess functions and Drupal's theme system in general. See Drupal's theme documentation for more information.
+  </li>
+</ol>
+</li>
+<li>
+  If you leave the path blank the template file will be searched for in "./" which is the Drupal install base path.
+</li>
+</ol>
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/api-example.html b/drupal/sites/default/boinc/modules/contrib/views/help/api-example.html
new file mode 100644
index 0000000..61852bb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/api-example.html
@@ -0,0 +1,179 @@
+
+For the new table defined by the Node example module to be understood by the views module you need to create a node_example.views.inc file that describes the table and its relationships to the rest of the database.  In order for views to know that this file is to be loaded you need to implement hook_views_api.  This is done by adding the following function into your node_example.module file
+
+<pre>
+<?php
+/**
+ * Implementation of hook_views_api().
+ *
+ * This tells drupal that there is Views integration file named 
+ * module-name.views.inc 
+ */
+function node_example_views_api() {
+  // Note that you can include 'path' in this array so that your views.inc 
+  // file can be stored in a different location.
+  return array(
+    'api' => 2.0
+  );
+}
+?>
+</pre>
+
+Below is the contents of a simple node_example.views.inc file that allows you to create views that include the new color and quantity information.
+
+<pre>
+<?php
+
+/**
+ * This file is used to tell the views module about the new node_example table.
+ *
+ * Database definition:
+ * @code
+ *   CREATE TABLE node_example (
+ *     vid int(10) unsigned NOT NULL default '0',
+ *     nid int(10) unsigned NOT NULL default '0',
+ *     color varchar(255) NOT NULL default '',
+ *     quantity int(10) unsigned NOT NULL default '0',
+ *     PRIMARY KEY (vid, nid),
+ *     KEY `node_example_nid` (nid)
+ *   )
+ * @endcode
+ */
+
+function node_example_views_data()  {
+  // Basic table information.
+
+  // ----------------------------------------------------------------
+  // node_example table
+  //  New group within Views called 'Example'
+  //  The group will appear in the UI in the dropdown tha allows you
+  //  to narrow down which fields and filters are available.
+
+  $data = array();
+  $data['node_example']['table']['group']  = t('Example');
+
+  // Let Views know that our example table joins to the 'node'
+  // base table. This means it will be available when listing
+  // nodes and automatically make its fields appear.
+  //
+  // We also show up for node revisions.
+  $data['node_example']['table']['join'] = array(
+    'node_revisions' => array(
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+    'node' => array(
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+  );
+
+  // quantity
+  $data['node_example']['quantity'] = array(
+    'title' => t('Quantity'),
+    'help' => t('Quantity of items.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // Color		
+  $data['node_example']['color'] = array(
+    'title' => t('Color'),
+    'help' => t('Color of item.'),
+
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+     ),
+     'filter' => array(
+      'handler' => 'views_handler_filter_string',
+     ),
+     'argument' => array(
+       'handler' => 'views_handler_argument_string',
+     ),
+     'sort' => array(
+      'handler' => 'views_handler_sort',
+     ),
+  );
+
+  return $data;
+}
+
+?>
+</pre>
+
+Some notes on usage:
+
+Within Views, click on the Add tab.  You have a number of type options here.  Normally you would select either 'Node' (if you only want to display information on current nodes) or 'Node revision' (if you want to display information on all revisions of the nodes)
+
+With this configuration you always pull out of the database, data for every single node, whether or not it has color and quantity information.  To display information on just those nodes that have color and quantity information you can use a filter so that only nodes which don't have a NULL color or a NULL quantity are displayed.
+
+<h3>Type/relationship extension</h3>
+
+When your tables have first class data, you will often need to have own View types and View relationships defined.  With the current node_example table this isn't required although I try to justify it below on an efficiency basis. See [[http://groups.drupal.org/node/17236#comment-58980|this discussion]] as to why it isn't justified. 
+
+Pulling data out of the database for every node when you only want data for the new Example node type is inefficient.  To reduce the initial data extraction to just that relating to the new Example nodes requires that you make the node_example table the base table.  This can be done by adding the following code into the node_example.views.inc file just before the 'return $data;'
+
+<pre>
+<?php
+
+//  **** Begin optional extra for type and relationships ****
+
+  //  Use node_example as a new base table
+  //     by creating a new views type called 'Node example'
+  //  This allows it to be selected as the 'view type'
+  //          when you initially add a new view. 
+  $data['node_example']['table']['base'] = array(
+    'field' => 'vid',
+    'title' => t('Node example'),
+    'help' => t("Node example type with color and quantity information."),
+    'weight' => -9,
+  );
+
+  // When using the new 'Node example' type you need to use relationships
+  //   to access fields in other tables.
+
+  // Relationship to the 'Node revision' table
+  $data['node_example']['vid'] = array(
+    'title' => t('Node revision'),
+    'help' => t('The particular node revision the color and quantity is attached to'),
+    'relationship' => array(
+      'label' => t('Node revision'),
+      'base' => 'node_revisions',
+      'base field' => 'vid',
+      // This allows us to not show this relationship if the base is already
+      // node_revisions so users won't create circular relationships.
+      'skip base' => array('node', 'node_revisions'),
+    ),
+  );
+
+  // Relationship to the 'Node' table
+  $data['node_example']['nid'] = array(
+    'title' => t('Node'),
+    'help' => t('The particular node the color and quantity is attached to'),
+    'relationship' => array(
+      'label' => t('Node'),
+      'base' => 'node',
+      'base field' => 'nid',
+      // This allows us to not show this relationship if the base is already
+      // node so users won't create circular relationships.
+      'skip base' => array('node', 'node_revisions'),
+    ),
+  );
+
+//  **** End optional extra for type and relationships ****
+
+?>
+</pre>
+
+The above code adds a new 'Node example' to the view types that can be selected within the Add tab window of views.  Selecting this sets the node_example table to be the base table.
+
+If you select 'Node example' as view type, when you initially go into the edit window of views you will find  the only fields available are the color and quantity fields.  To get fields from other tables you need to add a relationship.  Relationships may be found at the top in the same column as the fields.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/api-handlers.html b/drupal/sites/default/boinc/modules/contrib/views/help/api-handlers.html
new file mode 100644
index 0000000..0c51fc5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/api-handlers.html
@@ -0,0 +1,70 @@
+In Views, a handler is an object that is part of the view and is part of the query building flow. 
+
+Handlers are objects; much of the time, the base handlers will work, but often you'll need to override the handler for something. One typical handler override will be views_handler_filter_operator_in which allows you to have a filter select from a list of options; you'll need to override this to provide your list.
+
+Handlers have two distint code flows; the UI flow and the view building flow.
+
+For the query flow:
+
+<dl>
+<dt>handler->construct()</dt>
+<dd>Create the initial handler; at this time it is not yet attached to a view. It is here that you can set basic defaults if needed, but there will be no knowledge of the environment yet.</dd>
+<dt>handler->set_definition()</dt>
+<dd>Set the data from hook_views_data() relevant to the handler.</dd>
+<dt>handler->init()</dt>
+<dd>Attach the handler to a view, and usually provides the options from the display.</dd>
+<dt>handler->pre_query()</dt>
+<dd>Run prior to the query() stage to do early processing.</dd>
+<dt>handler->query()</dt>
+<dd>Do the bulk of the work this handler needs to do to add itself to the query.</dd>
+</dl>
+
+Fields, being the only handlers concerned with output, also have an extended piece of the flow:
+<dl>
+<dt>handler->pre_render()</dt>
+<dd>Called prior to the actual rendering, this allows handlers to query for extra data; the entire resultset is available here, and this is where items that have "multiple values" per record can do their extra query for all of the records available. There are several examples of this at work in the code.</dd>
+<dt>handler->render()</dt>
+<dd>This does the actual work of rendering the field.</dd>
+</dl>
+
+Most handlers are just extensions of existing classes with a few tweaks that are specific to the field in question. For example:
+
+<pre>
+/**
+ * Filter by node type
+ */
+class views_handler_filter_node_type extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Node type');
+      $types = node_get_types();
+      foreach ($types as $type => $info) {
+        $options[$type] = $info->name;
+      }
+      $this->value_options = $options;
+    }
+  }
+}
+</pre>
+
+<i>views_handler_filter_in_operator</i> provides a simple mechanism to set the list used and the rest of the handler is perfectly fine for this.
+
+Handlers are stored in their own files; for these files to be loaded by Views on demand, they must first be registered. Since Views core handlers are also loaded this way, it's imperative that your module also implement this pattern in order to prevent code crashes when your handler's parent class is not yet available.
+
+To register handlers, you must implement <strong>hook_views_handlers()</strong>. This hook returns an array with two keys; the first key is <em>info</em> which contains the modulename (which is only necessary if you're registering handlers on behalf of another module, such as what Views does) and <em>path</em>, which is the search path to find the files. This path is only necessary if your files will not be stored in the same directory as the .module file.
+
+The other key is <em>handlers</em> which contains a full array of handlers and the information for each handler. The key to each handler array is the name of the handler class. It can contain:
+<dl>
+<dt><strong>parent</strong></dt>
+<dd>The class that this handler extends. This is important to make sure that the parent class is included before your handler class. Without this, you may cause people's sites to crash in a difficult to recover state. Be sure you get this right!</dd>
+<dt><strong>file</strong></dt>
+<dd>The filename the handler is in. By default, this will be classname.inc -- however, you can have multiple similar handlers together in one file. However, because there is only one parent, please be sure that the parentage on these handlers matches! Otherwise you will run into whitescreens as not all parents will be loaded.</dd>
+</dl>
+
+You can see examples of this function in any of the various module.views.inc files in the views modules directory.
+
+The best place to learn more about handlers and how they work is to explore <a href="http://views.doc.logrus.com">the views API site</a> and use existing handlers as a guide and a model. Understanding how views_handler and its child classes work is handy but you can do a lot just following these models. You can also explore the views module directory, particularly node.views.inc.
+
+Please note that while all handler names in views are prefixed with views_, you should use your own module's name to prefix your handler names in order to ensure namespace safety. Note that the basic pattern for handler naming goes like this:
+
+[module]_handler_[type]_[tablename]_[fieldname]. Sometimes table and fieldname are not appropriate, but something that resembles what the table/field would be can be used.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/api-plugins.html b/drupal/sites/default/boinc/modules/contrib/views/help/api-plugins.html
new file mode 100644
index 0000000..c0185b7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/api-plugins.html
@@ -0,0 +1,79 @@
+In Views, a plugin is a bit like a handler, but plugins are not directly responsible for building the query. Instead, they are objects that are used to display the view or make other modifications.
+
+There are 6 types of plugins in Views:
+<dl>
+<dt>Display</dt>
+<dd>Display plugins are responsible for controlling <strong>where</strong> a view lives. Page and block are the most common displays, as well as the ubiquitous 'default' display which is likely what will be embedded.</dd>
+<dt>Style</dt>
+<dd>Style plugins control how a view is displayed. For the most part they are object wrappers around theme templates.
+<dt>Row style</dt>
+<dd>Row styles handle each individual record from a node.</dd>
+<dt>Argument default</dt>
+<dd>Argument default plugins allow pluggable ways of providing arguments for blocks. Views includes plugins to extract node and user IDs from the URL; additional plugins could be used for a wide variety of tasks.</dd>
+<dt>Argument validator</dt>
+<dd>Validator plugins can ensure arguments are valid, and even do transformations on the arguments.</dd>
+<dt>Access</dt>
+<dd>Access plugins are responsible for controlling access to the view.</dd>
+</dl>
+
+Plugins are registered by implementing <strong>hook_views_plugins()</strong> in your modulename.views.inc file and returning an array of data.
+
+The array will look something like this:
+<pre>
+  return array(
+    'display' => array(
+      // ... list of display plugins,
+     ),
+    'style' => array(
+      // ... list of style plugins,
+     ),
+    'row' => array(
+      // ... list of row style plugins,
+     ),
+    'argument default' => array(
+      // ... list of argument default plugins,
+     ),
+    'argument validator' => array(
+      // ... list of argument validator plugins,
+     ),
+     'access' => array(
+      // ... list of access plugins,
+     ),
+  );
+</pre>
+
+Each plugin will be registered with an identifier for the plugin, plus a fairly lengthy list of items that can define how and where the plugin is used. Here is an example from Views core:
+
+<pre>
+      'node' => array(
+        'title' => t('Node'),
+        'help' => t('Display the node with standard node view.'),
+        'handler' => 'views_plugin_row_node_view',
+        'path' => drupal_get_path('module', 'views') . '/modules/node', // not necessary for most modules
+        'theme' => 'views_view_row_node',
+        'base' => array('node'), // only works with 'node' as base.
+        'uses options' => TRUE,
+        'type' => 'normal',
+      ),
+</pre>
+
+Of particular interest is the <em>path</em> directive, which works a little differently from handler registration; each plugin must define its own path, rather than relying on a global info for the paths. Also, there is an optional <em>parent</em> directive which is automatically filled in to be the base parent for the plugin type. Usually this is enough, but if your plugin derives from something other than the base, it must be filled in. For example:
+
+<pre>
+      'feed' => array(
+        'title' => t('Feed'),
+        'help' => t('Display the view as a feed, such as an RSS feed.'),
+        'handler' => 'views_plugin_display_feed',
+        'parent' => 'page', // so it knows to load the page plugin .inc file
+        'uses hook menu' => TRUE,
+        'use ajax' => FALSE,
+        'use pager' => FALSE,
+        'accept attachments' => FALSE,
+        'admin' => t('Feed'),
+        'help topic' => 'display-feed',
+      ),
+</pre>
+
+Note that unlike handler registration, where parentage is referred to by object name, with plugins it is referred to by the unique plugin identifier. Please be sure to prefix your plugin identifiers with your module name to ensure namespace safety; after all, two different modules could try to implement the 'grid2' plugin, and that would cause one plugin to completely fail.
+
+...TODO: Finish this document....
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/api-tables.html b/drupal/sites/default/boinc/modules/contrib/views/help/api-tables.html
new file mode 100644
index 0000000..c4e9f8c3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/api-tables.html
@@ -0,0 +1,236 @@
+Tables are described to Views via hook_views_data(), which returns an array of table information, keyed by the name of the table. For example, if your module is describing three tables, 'foo', 'bar' and 'baz', your array will look like this:
+<pre>$data = array(
+  'foo' => array(
+    // ...info here...
+  ),
+  'bar' => array(
+    // ...info here...
+  ),
+  'baz' => array(
+    // ...info here...
+  ),
+);
+</pre>
+
+The key should be the actual database name of the table (not including prefix), but it can be an alias as long as the join information (explained later) contains the real name of the table.
+
+Each item in the array should be a field in the table, with the exception of a special information section called 'table'. Example:
+
+<pre>$data['foo'] = array(
+  'table' => array(
+    // ... info about the table, described later ...
+  ),
+  'bar' => array(
+    // ... info about the field named 'bar', i.e, foo.bar,
+  ),
+  'baz' => array(
+    // ... info about the field named 'baz', i.e, foo.baz,
+  ),
+);
+</pre>
+
+Once you get down to an array that contains actual data, that piece of the array will often be referred to as the definition.
+
+<h2>The 'table' section</h2>
+Each table should have a 'table' section in it, which is used to set default information for the table, such as the group, as well as the very important joins and whether or not this is a base table.
+
+First, there are several items that are actually for fields but can be placed here so that all fields within the table inherit them:
+<dl>
+<dt>group</dt>
+<dd>The name of the group this item will be with. In the UI, this is displayed as Group: Title. For example, "Node: Node ID", "Taxonomy: Term description", etc. It is important to be consistent with groups, because the UI sorts by group, and allows filtering by group to find fields as well.</dd>
+<dt>title</dt>
+<dd>The actual name of the field; it should be concise and descriptive.</dd>
+<dt>help</dt>
+<dd>A longer description to help describe what the field is or does. It should try to be only a line or two so as not to clutter the UI.</dd>
+</dl>
+
+In general, having 'title' and 'help' at the table level doesn't make a lot of sense, but usually every item in a table is in the same group. Thus it is very common to define the 'group':
+
+<pre>
+  $data['foo']['table']['group'] = t('Foo');
+</pre>
+
+The other items in the 'table' section are described in the following sections.
+
+<h3>'base': Base table</h3>
+If your table is a base table -- meaning it can be the primary, central table for a View to use, you can declare it to be a base table. This primarily provides UI information so that it can be selected. 
+For example:
+<pre>
+  // Advertise this table as a possible base table
+  $data['node']['table']['base'] = array(
+    'field' => 'nid',
+    'title' => t('Node'),
+    'help' => t("Nodes are a Drupal site's primary content."),
+    'weight' => -10,
+  );
+</pre>
+
+The following items are available in the base section :
+<dl>
+<dt>field</dt>
+<dd>The primary key field for this table. For Views to treat any table as a base table, it <b>must</b> have a primary field. For node this is the 'nid', for users this is the 'uid', etc. <strong>Without a single primary key field (i.e. not a composite key), Views will not be able to utilize the table as a base table.</strong> If your table does not have a primary key field, it is not too difficult to just add a serial field to it, usually.</dd>
+<dt>title</dt>
+<dd>The title of this table in the UI. It should be singular and describe the object that this table contains from the perspective of the user.</dd>
+<dt>help</dt>
+<dd>A short piece of text to describe what object this table contains.</dd>
+<dt>database</dt>
+<dd>If this table is held in a different database from your Drupal database, specify it as a string in the exact same format as the settings.php file. This is a special purpose variable that will probably be only used in site specific code, and <b>it must be the same database type as your Drupal database</b>. Also, don't try to join it to any table that isn't in the same database. That'll just create all kinds of silly errors. For example:
+<pre>
+  // In settings.php for your site
+  // Your drupal (site) database needs to be called 'default'
+  $db_url['default'] = 'mysqli://user:pass@host/drupal_db';
+  $db_url['budget'] = 'mysqli://user:pass@host/other_db';
+</pre>
+Then when you are describing the external database in your base table you would write something like this:
+<pre>
+  $data[$table]['table']['base'] = array(
+    'field' => 'Primary key',
+    'title' => t('Field name'),
+    'help' => t('Field description'),
+    'database' => 'budget',
+    'weight' => -10,
+    );
+</pre>
+</dd>
+</dl>
+
+<h3>'join': Linking your table to existing base tables</h3>
+For Views to use your table, it has to either be a base table, or know how to link to an existing base table. Or sometimes both. Views uses this information to create a path to the base table; when the table is added to the query, Views will walk along this path, adding all tables required into the query.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/node-term_node-term_data-large.png"><img src="path:images/node-term_node-term_data.png" /></a>
+<em>How term_data joins to node</em>
+</div>
+
+In the above example, to use these with 'node' as the base table, both 'term_data' and 'term_node' need to be defined, and they each need a join handler for node:
+
+<pre>
+$data['term_data']['table']['join']['node'] = array(
+  'left_table' => 'term_node',
+  'left_field' => 'tid',
+  'field' => 'tid',
+);
+</pre>
+
+The above can be read as "In order to join to the node table, the term_data table must first link to the term_node table, and they join on the 'tid' field.". When adding this table to the query for a node view, Views will look at this and then look for the term_node table.
+
+<pre>
+$data['term_node']['table']['join']['node'] = array(
+  'left_field' => 'nid',
+  'field' => 'nid',
+);
+</pre>
+
+Above, the fact that 'left_table' is left out lets us know that term_node links directly to the node table, using the 'nid' field on both sides of the join.
+
+Quite a few more fields are available in this definition:
+<dl>
+  <dt>handler</dt>
+  <dd>The name of the handler object to use. Defaults to 'views_join'. You may create custom join handlers that may or may not use any of the data below, as they see fit.</dd>
+  <dt>table</dt>
+  <dd>Table to join. This is optional, and should only be used if the table being referenced is an alias.</dd>
+  <dt>field</dt>
+  <dd>Field to join on. This is required.</dd>
+  <dt>left_table</dt>
+  <dd>The next step toward the final destination. If this is the final destination it may be omitted.</dd>
+  <dt>left_field</dt>
+  <dd>The field to join to on the left side. This is required.</dd>
+  <dt>type</dt>
+  <dd>Either LEFT (default) or INNER.</dd>
+  <dt>extra</dt>
+  <dd>Either a string that's directly added, or an array of items. Each item is, itself, an array:
+    <dl>
+      <dt>field</dt>
+      <dd>Field or formula</dd>
+      <dt>operator</dt>
+      <dd>Similar to filters, this is the operator, such as >, <, =, etc. Defaults to = or IN.</dd>
+      <dt>value</dt>
+      <dd>Must be set. If an array, operator will be defaulted to IN.</dd>
+      <dt>numeric</dt>
+      <dd>If true, the value will not be surrounded in quotes, and %d will be used for its placeholder.</dd>
+    </dl>
+  </dd>
+  <dt>extra type</dt>
+  <dd> How all the extras will be combined. Either AND or OR. Defaults to AND.</dd>
+</dl>
+
+<h2>Describing fields on tables</h2>
+Aside from the special table tag, each table can also have an unlimited number of field designations; these correspond roughly to fields on the table, though it is very common to use non-fields to display data that isn't directly in a field, such as data arrived from formulae, or special links related to the object the table is part of.
+
+Each field is described in the view data with an array, keyed to the database name of the field. This array may contain some information fields, plus an entry in each of the five types of items Views has per field: argument, field, filter, relationship, sort. For example:
+
+<pre>
+$data['node']['nid'] = array(
+  'title' => t('Nid'),
+  'help' => t('The node ID of the node.'), // The help that appears on the UI,
+  // Information for displaying the nid
+  'field' => array(
+    'handler' => 'views_handler_field_node',
+    'click sortable' => TRUE,
+  ),
+  // Information for accepting a nid as an argument
+  'argument' => array(
+    'handler' => 'views_handler_argument_node_nid',
+    'name field' => 'title', // the field to display in the summary.
+    'numeric' => TRUE,
+    'validate type' => 'nid',
+  ),
+  // Information for accepting a nid as a filter
+  'filter' => array(
+    'handler' => 'views_handler_filter_numeric',
+  ),
+  // Information for sorting on a nid.
+  'sort' => array(
+    'handler' => 'views_handler_sort',
+  ),
+);
+</pre>
+
+The above example describes the 'nid' field on the 'node' table, providing 4 of the 5 handlers. Note that while field is normally expected to be the database name of the field, it doesn't have to be; you can use an alias (which is how you get multiple handlers per field) or something completely made up for items that aren't tied to the database. For example:
+
+<pre>
+$data['node']['edit_node'] = array(
+  'field' => array(
+    'title' => t('Edit link'),
+    'help' => t('Provide a simple link to edit the node.'),
+    'handler' => 'views_handler_field_node_link_edit',
+  ),
+);
+</pre>
+
+The above handler definition an edit link to a node, but this isn't a field in and of itself. For aliased fields, here is another example:
+
+<pre>
+$data['users']['uid_current'] = array(
+  'real field' => 'uid',
+  'title' => t('Current'),
+  'help' => t('Filter the view to the currently logged in user.'),
+  'filter' => array(
+    'handler' => 'views_handler_filter_user_current',
+  ),
+);
+</pre>
+
+The above definition provides an alternate filter handler on the uid field for the current user.
+
+The following items are allowed in the field definition:
+
+<dl>
+<dt>group, title, help</dt>
+<dd>As above, these fields are for the UI. If placed here, any of these fields will override a setting on the base table.</dd>
+<dt>real field</dt>
+<dd>If this field is an alias, the "real field" may be placed here, and the handler will never know the difference.</dd>
+
+<dt>field</dt>
+<dd>A handler definition for the "Field" section, which is a field that may be displayed in a view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_field'.</dd>
+<dt>filter</dt>
+<dd>A handler definition for the "Filters" section, which will be used to apply WHERE clauses to the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_filter'.</dd>
+<dt>sort</dt>
+<dd>A handler definition for the "Sort criteria" section, which will be used to add an ORDER BY clause to the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_sort'.</dd>
+<dt>relationship</dt>
+<dd>A handler definition for the "Field" section, which is a way to bring in new or alternative base tables in the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_relationship'. The basic relationship handler requires 'base' and 'base field' to be set; 'base' and 'base field' represent the "right" half of the join that will use this field as the left side.</dd>
+<dt>argument</dt>
+<dd>A handler definition for the "Field" section, which is method of accepting user input from the URL or some other source. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_argument'.</dd>
+</dl>
+
+For more information about what handlers need/use what data, visit <a href="http://views.doc.logrus.com">the Views API site</a> and check out the available handlers.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/api.html b/drupal/sites/default/boinc/modules/contrib/views/help/api.html
new file mode 100644
index 0000000..66e3f87
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/api.html
@@ -0,0 +1,22 @@
+Views allows modules to describe their tables relationships to each other, as well as fields, filters, sort criteria and arguments via <strong>hook_views_data()</strong>. Whenever Views deems it necessary, this hook is called, the data aggregated together and cached. <strong>hook_views_data_alter()</strong> may also be used to modify existing data, changing other module's handlers or adding handlers to other module's tables.
+
+Views also allows modules to create new display types, style types, row styles, argument default handlers and argument validators via <strong>hook_views_handlers()</strong> and <strong>hook_views_plugins()</strong>.
+
+These hooks are kept in a file named MODULENAME.views.inc. This file is automatically included upon need, so there is no need to try and include this in hook_init or any other method of including .inc files. This file should store hook_views_data, hook_views_data_alter(), hook_views_plugins(), hook_views_handlers(), as well as any other hooks and subsidiary data that will only be used by your module when Views is active. All handlers and plugins provided by your module should be in separ [...]
+
+There are two similar files, MODULENAME.views_default.inc and MODULENAME.views_convert.inc which contain default views and views 1 to views 2 convert helpers, respectively.
+
+<h3>hook_views_api()</h3>
+<strong>In order for your files to be included, your module must first implement hook_views_api()</strong> in the main .module file. This module should return array of information. The following items may be returned:
+
+<dl>
+<dt><strong>api</strong></dt>
+<dd>This must appear; it should be the oldest API version that your module can work with. If Views is currently running an older version of the API, it will ignore your module's views integration. This is a good thing, as it will prevent code crashes, at the expense of your module's functionality disappearing.
+<br />
+You may find the current Views API version by calling <strong>views_api_version()</strong> which is implemented at the top of views.module. This version numbering starts at 2.0. Every time changes are made to the Views handlers and plugins or other aspects of the Views API, the number will tick up (by either .001, .01 .1 or 1 depending upon how major the changes are). Note that <strong>views_api_version()</strong> was introduced in Views 2.0-rc2 and may not exist prior to that version. Y [...]
+<br />
+Often these versions are basically compatible with each other and Views won't care if your module implements 2.000, 2.001, 2.002, etc. Your module can request that it won't work with any version older than a given version, however. Views will determine, itself, if a newer version will work.
+</dd>
+<dt><strong>path</strong></dt>
+<dd>If your *.views*.inc files are not in the same directory as the .module file, then return the full path here. You should probably use something like drupal_get_path('module', 'yourmodulename') . '/includepath'.</dd>
+</dl>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/argument.html b/drupal/sites/default/boinc/modules/contrib/views/help/argument.html
new file mode 100644
index 0000000..c4bdf2b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/argument.html
@@ -0,0 +1,57 @@
+Arguments are input. While they often come from the URL, <strong>they don't always</strong> so please don't be shocked when they don't. Each display type may have its own source for arguments. Block displays have no source of arguments at all; they cannot pull arguments from the URL, and often require use of the default argument PHP code in order to get arguments. The argument default plugins can be used to get arguments into a block view. See "Provide default", below.
+
+In general, arguments are used to filter the view, and in that sense they have a very close relationship to filters, but that isn't necessarily true for every argument. Arguments can be used for any purpose, really; the extent of what the argument does is up to the developer of the argument, but the arguments that come with Views are almost entirely filters.
+
+A typical use of an argument might be to reduce a view to a single node, a single user, or nodes with a given taxonomy term.
+
+<h3>Action to take if argument is not present</h3>
+<dl>
+<dt>Ignore</dt>
+<dd>The argument is removed from the view as though it weren't there and all results will be displayed.</dd>
+
+<dt>Hide view / Page not found</dt>
+<dd>The view will remove itself entirely if the argument is not present; for a block this means it simply won't appear. For page views the View will return a 404 and present a "Page not found" error. </dd>
+
+<dt>Display empty text</dt>
+<dd>The value of the <a href=topic:views/empty-text>empty text</a> will be displayed.</dd>
+
+<dt>Summary</dt>
+<dd>The view will attempt to display a summary of arguments available, based upon the view, and provide links to the view with those arguments. Summaries have their own style handlers as well as options. The default summary style simply displays a list of arguments with a count of entries found per argument. This special mode is a very powerful part of Views.</dd>
+
+<dt>Provide default</dt>
+<dd>If no argument is given, a default argument can be selected. The method of choosing the default argument is selectable and pluggable.</dd>
+</dl>
+
+<h3>Wildcards</h3>
+All arguments have a 'wildcard', which is an argument that means to use all values. In practice, it is the same as 'Ignore' above, where the argument is simply removed and the view is created without the argument. The wildcard title is used in titles and breadcrumb trails.
+<h3>Default arguments</h3>
+Default argument selection is available <strong>only if the action to take is "Provide default"</strong>. When that is selected, a new fieldset will appear letting you choose what the default argument will be. Views provides the following default selectors by default (but other modules may add more):
+<dl>
+<dt>Fixed entry </dt>
+<dd>You may directly enter what the argument will be. This is not a variable, it will always be the same argument. </dd>
+<dt>Node ID from URL</dt>
+<dd>This will attempt to find a Node ID from the URL, and is primarily useful for the Node: ID argument (though other arguments that use Node IDs, such as the CCK Node Reference argument, will find it useful too). For example, when visiting the path 'node/1' or 'node/1/edit' it will know that the '1' in that path is a node ID and use it.</dd>
+<dt>User ID from URL</dt>
+<dd>Like Node ID from URL, this will attempt to find a user ID from the path. It also includes an option to look for a node and use the node author as the user ID.</dd>
+<dt>User ID from logged in user</dt>
+<dd>You can use this to easily default a menu item to the logged in user. For example, if you created the path 'blogs' and gave it a User: ID argument with this default, 'blogs' would go to the user's own blogs, and blogs/1 would go to User ID 1's blogs.</dd>
+</dl>
+
+Please bear in mind that the selection of default argument happens only if an argument is not provided. If using a display that has no argument source, such as a block, this will always be used. However, if using a display that reads arguments from the URL, this will happen only if the URL did not contain an argument.
+<h3>Argument validation</h3>
+Arguments can also have validators, which are pluggable systems used to ensure that arguments fit within certain parameters. When a validator is chosen, it may provide some settings for the validator, including the action to take if an argument is presented, but it fails to validate. These actions are generally the same as the default actions above, excluding the ability to provide another default.
+
+If a view provides a menu option, such as a tab, if the argument does not validate the tab will not appear.
+
+This sytem can have other validators plugged in; by default, Views provides:
+<dl>
+<dt>Basic validation</dt>
+<dd>Ensures that the argument is present. A PHP NULL value (from eg. PHP default argument code) will invalidate.</dd>
+<dt>Node</dt>
+<dd>Ensure that the argument is a valid Node ID. You may select which types of node the validator will accept.</dd>
+<dt>Taxonomy term</dt>
+<dd>Ensure that the argument is a valid taxonomy term. This includes options to limit to specific vocabularies and can transform the argument to the right type depending upon the actual argument. Set the Argument Type option to the actual type of data that the argument being used is expecting.</dd>
+<dt>PHP Code</dt>
+<dd>You may enter arbitrary PHP code, similar to the php block visibility code, to determine if the argument is valid or not.</dd>
+
+</dl>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/display-attachment.html b/drupal/sites/default/boinc/modules/contrib/views/help/display-attachment.html
new file mode 100644
index 0000000..9963b25
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/display-attachment.html
@@ -0,0 +1 @@
+Attachment displays are 'attached' to another display in the same view. When the display is visited, the attached display will also be rendered and may be placed before, after or both before and after the original display. Attachment displays are often useful for displaying an argument summary view along with a page display that accepts arguments. This can be used to provide a kind of glossary.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/display-block.html b/drupal/sites/default/boinc/modules/contrib/views/help/display-block.html
new file mode 100644
index 0000000..158cad0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/display-block.html
@@ -0,0 +1,10 @@
+Block displays will show up on your blocks administration page. Once a block display is created and saved, it can be enabled and positioned in your theme by visiting <strong>administer >> site building >> blocks</strong> and selecting it from the list.
+
+Blocks <strong>do not</strong> accept arguments from any source; the only way to get arguments to a block is to provide defaults to it, possibly via the PHP Code default setting.
+
+<ul>
+<li>Edit the argument in question; you may want to override this argument if you have multiple displays using it.</li>
+<li>Change the "Action to take if argument is not present" to "Provide default argument". This will bring up a new box called "Provide default argument options".</li>
+<li>The most common default argument type used for blocks is Node from URL, where it attempts to determine if the URL refers to a node, for example if visiting 'node/1' or 'node/1/edit'. User ID from URL is also very common.</li>
+<li>If you change the default argument type to 'PHP Code' (note: You must have permission to use PHP code on your site) you can enter PHP to define the argument needed. Simply return the argument.</li>
+</ul>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/display-default.html b/drupal/sites/default/boinc/modules/contrib/views/help/display-default.html
new file mode 100644
index 0000000..309690a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/display-default.html
@@ -0,0 +1,4 @@
+The default display is primarily a display to store settings, and isn't actually used anywhere within the Views system. It is possible for external programs to use the default display, but if they do they will (hopefully) tell you which display they will be working with. The default display is also a convenient display to use to embed into your site using PHP snippets; this is useful, for example, in node content, but this is something that should generally only be done by administrators.
+
+In general, you probably want to add either a <a href="topic:views/display-page">page display</a> or a <a href="topic:views/display-block">block display</a>.
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/display-feed.html b/drupal/sites/default/boinc/modules/contrib/views/help/display-feed.html
new file mode 100644
index 0000000..a5c0a65
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/display-feed.html
@@ -0,0 +1 @@
+A feed display allows you to attach an RSS feed to a view. 
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/display-page.html b/drupal/sites/default/boinc/modules/contrib/views/help/display-page.html
new file mode 100644
index 0000000..a23c3a0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/display-page.html
@@ -0,0 +1,5 @@
+Page displays have a <a href="topic:views/path">path</a> and an optional <a href="topic:views/menu">menu</a> component. Page displays will be the primary content for the page, meaning they will be displayed in the main content area when you visit the URL that corresponds to the path.
+
+Page displays take their arguments from the URL. You can embed arguments into the URL using %; in previous versions of Views, this was '$arg'. For example, 'node/%/foo' will accept URLs such as 'node/1/foo'.
+
+Please remember that using a % placeholder makes the argument required. If you wish to have an optional argument, simply omit the % from the path. I.e. using "page/%" as the path requires an argument and visiting 'http://www.example.com/page' will not trigger the view.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/display.html b/drupal/sites/default/boinc/modules/contrib/views/help/display.html
new file mode 100644
index 0000000..836a324
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/display.html
@@ -0,0 +1,7 @@
+Displays tell Views where the output should go. By adding a display to a View, you can have your view appear as a page, or as a block, or even as an attachment to a different display on the view.
+
+Each display can have its own settings, but when it's created, a display will take all of its <em>basic settings</em> from the <strong>default display</strong> which all Views must have. For most settings, there is an <strong>override</strong> button that will override that single setting for the current display. Overridden settings will have a mark in the summary for that display. All 'default display settings' are shown in the other displays '<i>italic</i>'. When you override a setting [...]
+
+Please keep in mind that when you are editing a setting on a display that is not overridden, then by default you are editing that for all displays.
+
+For <strong>fields</strong>, <strong>arguments</strong>, <strong>sorts</strong>, <strong>filters</strong> and <strong>relationships</strong>, you can only override <em>all</em> of them or none of them. To do this, click on the header for the filters or the rearrange button. Once you override, the display will then have its own copies of the fields/filters/etc and changes to the defaults will not be reflected on your display.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/embed.html b/drupal/sites/default/boinc/modules/contrib/views/help/embed.html
new file mode 100644
index 0000000..e39fbf5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/embed.html
@@ -0,0 +1,24 @@
+You can easily embed the results of a view into other parts of your site;
+either with code as a module, or in nodes or blocks as snippets. The
+easiest way is to use the function <strong>views_embed_view()</strong>:
+
+<code>/**
+ * Embed a view using a PHP snippet.
+ *
+ * This function is meant to be called from PHP snippets, should one wish to
+ * embed a view in a node or something. It's meant to provide the simplest
+ * solution and doesn't really offer a lot of options, but breaking the function
+ * apart is pretty easy, and this provides a worthwhile guide to doing so.
+ *
+ * @param $name
+ *   The name of the view to embed.
+ * @param $display_id
+ *   The display id to embed. If unsure, use 'default', as it will always be
+ *   valid. But things like 'page' or 'block' should work here.
+ * @param ...
+ *   Any additional parameters will be passed as arguments.
+ */
+function views_embed_view($name, $display_id = 'default') {
+</code>
+
+To figure out the id of a display, hover your mouse over the tab to select that display. Everything after the '#views-tab-' is the id of that display. This ID is guaranteed never to change unless you delete the display and create a new one.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/example-author-block.html b/drupal/sites/default/boinc/modules/contrib/views/help/example-author-block.html
new file mode 100644
index 0000000..c85e443
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/example-author-block.html
@@ -0,0 +1,77 @@
+<p>In this example you will create a context-sensitive block that shows the titles of recent blog entries by an author when viewing one of their posts. This will demonstrate using Views <em>arguments</em> to dynamically filter a view's contents at display time.</p>
+
+<p>Before working through this example, enable the <strong>Blog</strong> module and populate some entries from a few different users.</p>
+
+<h3>Creating the View</h3>
+<p>The first step is creating a view for our recent blog entries block. Because the block will show the titles of blog entries, this view is considered a "Node" type. Go to <a target="_blank" href="/admin/build/views/add">add new view</a>, enter the following properties, and click <strong>Next</strong>:</p>
+
+<dl>
+  <dt>View name</dt>
+  <dd>recent_blog_entries</dd>
+  <dt>View description</dt>
+  <dd>List of recent blog entries for a given author.</dd>
+  <dt>View tag</dt>
+  <dd>blog</dd>
+  <dt>View type</dt>
+  <dd>Node</dd>
+</dl>
+
+<h3>Generating a list of blog entries</h3>
+<p>It will be much easier to see the view progress if we can see it doing something. In this section, we will create a basic view displaying blog entry titles.</p>
+
+<ol>
+<li>In the third column, locate the <strong>Fields</strong> area. Generally speaking, fields are the pieces of information that you want to display in the view (in this case, node title). Click the <strong>+</strong> icon to add a field.</li>
+<li>Scroll down to <strong>Defaults: Add fields</strong>, below the settings table. A large selection of fields will be available.</li>
+<li>In the <strong>Groups</strong> drop-down menu, select <em>Node</em>. This will limit the list to only the default fields exposed by Node module.</li>
+<li>Scroll down the list, select the <em>Node: Title</em> field, and click <strong>Add</strong>.</li>
+<li>You will now be presented with settings for the <em>Node: Title</em> field. Delete the label from the <strong>Label</strong> field, so that each individual node title is not prefixed with the word "Title." Additionally, check the <em>Link this field to its node</em> box so that visitors who see an interesting title can click directly on it to read the blog entry to which it belongs.</li>
+<li>When finished, click <strong>Update</strong>. If you scroll down to the <strong>Live Preview</strong> section, you should now see a list of several node titles; however both blog entries and other node types will be in the list. Let's fix that.</li>
+<li>In the fourth column, locate the <strong>Filters</strong> area. Filters limit the results displayed in the view, and we can use this to our advantage here by showing node titles only from blog entries and not every type of node. Click the <strong>+</strong> icon to add a filter.</li>
+<li>As before, scroll down to the <strong>Defaults: Add filters</strong> section, select <em>Node</em> from the <strong>Groups</strong> select box to limit the list of options to only those exposed by Node module.</li>
+<li>Scroll down and select the <em>Node: Type</em> field and click <strong>Add</strong>. In the settings page that appears, leave <strong>Operator</strong> as <em>Is one of</em> and select <em>Blog entry</em> under <strong>Node type</strong>. Click <strong>Update</strong> when finished.</li>
+<li>Now, by scrolling down to <strong>Live preview</strong>, you'll see that the list only shows blog entries.</li>
+</ol>
+
+<h3>Adding context with arguments</h3>
+<p>While filters are very useful for limiting the results of a view when the condition is always consistent (for example, a view of blog entry nodes should <em>always</em> be filtered by the blog entry type), something filters can't do is smart decision-making based on the page context. In our case, we want the view to display a different list of blog entries when looking at a post by user 'admin' than we do when looking at a post by user 'member', and filters won't be able to help.</p>
+
+<p>Luckily, there's another way to filter a view's content: <em>arguments</em>. Through arguments, Views are able to obtain additional context (typically via dynamic URLs with IDs in them) and can take this context into consideration when displaying the view.</p>
+
+<p>Let's walk through adding and configuring an argument to our view so that we can change its contents based on post author.</p>
+
+<ol>
+<li>In the third column, locate the <strong>Arguments</strong> area. Click the <strong>+</strong> icon to add an argument.</li>
+<li>Because we are basing the view around content <em>authors</em>, this time under <strong>Groups</strong> select <em>User</em>. Check <em>User: Uid</em> and click <strong>Add</strong>.</li>
+<li>The <strong>Defaults: Configure Argument User: Uid</strong> settings page has a lot going on, but only a few things that need our attention.</li>
+<li>The <strong>Title</strong> field here, unlike the Title field under <em>Basic Settings</em>, can be based upon the context that the view is being displayed in. Change the title to 'Recent entries by %1.' %1 will later be expanded to the user's name (based on the User: Uid argument) when the view is displayed.</li>
+<li>Under <strong>Action to take if argument is not present</strong>, there are a variety of options, ranging from displaying a 404 or a 403 page to simply displaying all values in the view. In our case, if an argument isn't specified (which it won't be, since this view will be displayed in a sidebar block, not as a page with its own URL), we want to give it a default one to act on. Select <em>Provide default argument</em>.</li>
+<li>Assuming JavaScript is enabled in your browser, you should now get another selection for <strong>Default argument type</strong>. Select <em>User ID from URL</em>, which will then provide a new option, <em>Also look for a node and use the node author</em>. Select it. This will cause Views to first see if it can figure out a user ID from the current URL (for example, user/1). If it can't, it will instead check to see if the current page is a node page (such as node/42) and, if so, take [...]
+<li><strong>Validator options</strong> provide a useful way to control what kind of arguments your view will accept. Select <em>User</em> as the <strong>Validator</strong>. By default, changing this setting will check the incoming argument and ensure it's a valid user ID; if not, the view will be hidden from the page.</li>
+<li>Once you have changed the argument's title, default argument, and validator options, click <strong>Update</strong> to save your changes.</li>
+<li>You'll notice that now the Live preview no longer shows anything. Did we just break the view? Fortunately, no. It's merely abiding by our wishes to hide itself if there is no valid user ID given to it. Try entering a '1' in the <strong>Arguments</strong> box and clicking <strong>Preview</strong>. You should now see a list of only user 1's blog entries.</li>
+</ol>
+
+<h3>Creating the block</h3>
+<p>So the live preview is now showing basically what we want. There's just one problem: we have no way to stick what we've done so far into a sidebar block! Let's fix that by adding a new <strong>Display</strong>.</p>
+
+<ol>
+<li>In the first column, under <strong>Defaults</strong>, there is a select box containing entries such as <em>Page</em>, <em>Feed</em>, and, yes, <em>Block</em>! Select <em>Block</em> and click <strong>Add display</strong>.</li>
+<li>There's not much else to do here as far as Views is concerned. Under <strong>Block settings</strong>, click the <em>None</em> link next to <strong>Admin</strong> and fill in a description for the block in the administrative interface, such as: 'Recent blog entries by author.' and click <strong>Update</strong>.</li>
+<li>Save your work by clicking the <strong>Save</strong> button at the bottom of the Views interface. You should receive a message that the view has been saved.</li>
+<li>Next, navigate to the <a target="_blank" href="/admin/build/block">blocks interface</a> and drag the 'Recent blog entries by author' block to the right sidebar region (or similar) and click <strong>Save blocks</strong>.</li>
+<li>You'll notice this appeared to do nothing. No block shows in the sidebar. But remember, we are looking at an adminitrative page; we are not looking at a page that would provide a user ID context. Navigate to the <a target="_blank" href="/blog">main blog listing</a> and click on an entry there. You should now see a sidebar block, titled something like "Recent entries by admin," with a list of blog entries beneath it.</li> 
+</ol>
+
+<h3>Finishing touches</h3>
+<p>There are still a few remaining things to do before our view is complete. For example, we said that the block was to show <em>recent</em> blog entries, but instead it's showing them in the order they were entered, with oldest on top. Additionally, even unpublished entries are showing in the list currently.</p>
+
+<ol>
+<li>Return to the <a target="_blank" href="/admin/build/views/edit/recent_blog_entries">recent_blog_entries view edit page</a>.</li>
+<li>Add an additional filter by clicking the <strong>+</strong> icon in the <strong>Filters</strong> section in the fourth column.</li>
+<li>Change <strong>Groups</strong> to <em>Node</em> and select <em>Node: Published</em>. Click <strong>Add</strong>.</li>
+<li>Under the <strong>Published</strong> selection, choose <em>Yes</em> and click <strong>Update</strong>.</li>
+<li>To handle sorting, locate the <strong>Sort criteria</strong> area, just above filters, and click the <strong>+</strong> icon there.</li>
+<li>Under <strong>Groups</strong>, again select <em>Node</em>. From the list of options, check <em>Node: Post date</em> and click <strong>Add</strong>.</li>
+<li>In the settings page, change <strong>Sort order</strong> to <em>Descending</em>. This will place the newer posts on top of the older ones. Click <strong>Update</strong> when finished.</li>
+<li>Finally, <strong>Save</strong> the view for your new settings to take effect.</li>
+</ol>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/example-recent-stories.html b/drupal/sites/default/boinc/modules/contrib/views/help/example-recent-stories.html
new file mode 100644
index 0000000..ef8dd6a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/example-recent-stories.html
@@ -0,0 +1,57 @@
+In this example you will create a list of nodes of the content type "story", to be shown in a block. Through this step-by-step process, you will become familiar with some basic steps in creating a view, and familiarize yourself with the Views User Interface.
+
+<ol>
+<li><h3>Creating a new view</h3>
+<p>Go to <a target="_blank" href="base_url:admin/build/views/add">add new view</a>. Give your new view the name 'recent_stories', description 'Recent Stories', tag 'story', type 'Node' and click <strong>Next</strong>.</p></li>
+<li><h3>About the interface</h3>
+<p>You have been brought to Views User Interface. As you start, you are editing the "Default" options for the view. In the 1st column on the left you can see the drop-down menu offers 'block', for example, to select settings specific only to block views. In the remaining columns, you will be able to add or change options by clicking on links or icons. These options will then appear below this main area. Most likely, you will need to scroll a bit to see the options appear.</p></li>
+<li><h3>Selecting the fields to display</h3>
+  <ol>
+    <li>In 3rd column locate the <strong>Fields</strong> options. Click the <strong>+</strong> icon to add fields.</li>
+    <li>Scroll down to <strong>Defaults: Add fields</strong>. In the <strong>Groups</strong> drop-down menu select 'Node', then check the following two fields: <em>Node: Post date</em>, <em>Node: Title</em>. Then click <strong>Add</strong>.</li>
+    <li>You will be taken through the fields you added one at a time. Make the changes specified below.
+      <ul>
+        <li>For the <em>Post date</em> field: Delete the 'Post date' label. Change the <strong>Date format</strong> to <em>Custom</em>, and the <strong>Custom date format</strong> to 'F j, Y, g:i a' (do not type the single quotes; for the meaning of these letter codes, click on <em>the PHP docs</em> link under that box to arrive at the explanation). Click <strong>Update</strong>.</li>
+        <li>For the <em>Title</em> field: Delete the 'Title' label. Select <em>Link this field to its node.</em> Click <strong>Update</strong>.</li>
+      </ul>
+    </li>
+    <li>Scroll back up to <strong>Fields</strong> and click the <strong>↑↓</strong> icon to rearrange fields.</li>
+    <li>Drag the four-sided arrow next to <em>Node: Title</em> so that it appears above <em>Node: Post date</em>. Click <strong>Update</strong> to save the new field order.</li>
+  </ol>
+</li>
+<li><h3>Filtering to <em>story</em> nodes only</h3>
+  <ol>
+    <li>Click the <strong>+</strong> icon next to <strong>Filters</strong>.</li>
+    <li>In the <strong>Groups</strong> drop-down menu select 'Node', then check the <em>Node: Published</em> and <em>Node: Type</em> filters, and click <strong>Add</strong>.</li>
+    <li>Select the <em>Published</em> checkbox. Click <strong>Update</strong></li>
+    <li>Select <em>Is one of</em> and check <em>Story</em> in the <em>Node Type</em> field. Click <strong>Update</strong>.</li>
+  </ol>
+</li>
+<li><h3>Sorting to show most recent first</h3>
+  <ol>
+    <li>Scroll  up to <strong>Sort criteria</strong> and click the <strong>+</strong> icon.</li>
+    <li>In the <strong>Groups</strong> drop-down menu below, select 'Node', then check <em>Node: Post date</em>, and click <strong>Add</strong>. Alternatively, you may instead check <em>Node: Last comment time</em>, or <em>Node: Updated/commented date</em>, or <em>Node: Updated date</em>.</li>
+    <li>Select <em>Descending</em> <strong>Sort order</strong>. Click <strong>Update</strong>.</li>
+  </ol>
+</li>
+<li><h3>Refining the basic settings</h3>
+  <ul>
+    <li>In 1st column under <strong>Basic settings</strong> locate these options:
+      <ul>
+        <li><em>Items to Display</em> setting, click <em>10</em>. Change the '10' to '4'. Click <strong>Update</strong></li>
+        <li><em>Style</em> setting, click <em>Unformatted</em>. Change to <em>List</em>. Click <strong>Update</strong>.</li>
+      </ul>
+    </li>
+  </ul>
+</li>
+<li><h3>Adding a block display for custom options</h3>
+  <ol>
+    <li>In the dropdown on the left, ensure that <em>Block</em> is selected, and click <strong>Add Display</strong>.</li>
+    <li>Under <strong>Block settings</strong>, click the <em>None</em> link next to the <em>Admin</em> setting. Change <strong>Block: Block admin description</strong> to 'Recent Stories'.</li>
+  </ol>
+</li>
+<li><h3>Saving the view</h3>
+<p>Click <strong>Save</strong> to save your work.</p></li>
+<li><h3>Instructing Drupal to show the block</h3>
+<p>Finally, you should tell Drupal to show this block. Configure your block by going to <a target="_blank" href="base_url:admin/build/block">admin/build/block</a>. Locate the block in the list: it is labeled <em>Recent Stories</em>. Place this block in a region and click <strong>Save</strong>. You may click <em>Configure</em> to set a different title, to determine which roles can view the block, and on which pages it appears; If you want your block on the front page only, enter '<fron [...]
+</ol>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/example-user-feed.html b/drupal/sites/default/boinc/modules/contrib/views/help/example-user-feed.html
new file mode 100644
index 0000000..613bd91
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/example-user-feed.html
@@ -0,0 +1,73 @@
+<p>In this example you will create a <em>Feed display</em> to show nodes by individual users, dynamically selected through the URL. You will become familiar with the Views 2 interface, as well as learn how to use an argument to pull in a user name and use it in a dynamically created path.</p>
+<p>A <em>feed</em> is a data format that places your site's content into a file that can be read and displayed by news reader programs. When visiting a site, you may notice a small <a href="http://drupal.org/misc/feed.png">RSS transmission icon</a>, whereby clicking on it, you can subscribe to the site's most recent content. This makes it easier for your visitors to keep up to date with your website. You can also use this format to aggregate information into other sites. For more informa [...]
+<p>Note, Drupal automatically creates a feed for your website, but you may want to create feeds with specific information. In this case, a list per user.  </p>
+<ol>
+  <li>
+    <h3>Creating a new view </h3>
+    <ol>
+      <li>Go to <a target="_blank" href="/admin/build/views/add">add new view</a>. Give it the name 'user_feed', description 'A feed of user nodes.', tag 'users', type 'Node' and click Next.</li>
+    </ol>
+  </li>
+  <li><strong>About the Interface.</strong> You have been brought to the Views User Interface. As you start, you are editing the "Default" options for the view. In the 1st column on the left- you can see the pull-down menu offers 'Feed', for example, to select settings specific only to RSS views. In the remaining columns, you will be able to add or change options by clicking on links or icons. These options appear below this main area. Most likely, you will need to scroll to se [...]
+  <li>
+    <h3>Change default display</h3>
+    <ol>
+      <li>Under <strong>Basic Settings</strong> in the 2nd column, click <em>Row style: Fields</em></li>
+      <li>A menu loads below, <em>Defaults: How should each row in this view be styled</em>, check the <em>Node</em> option, and click <strong>Update</strong>.</li>
+      <li>This loads another options menu, <em>Defaults: Row style options</em> click <strong>Update</strong>.</li>
+    </ol>
+  </li>
+  <li>
+    <h3>Create the RSS view </h3>
+    <ol>
+      <li>In the 1st column, select 'Feed' in the drop-down menu, and click <strong>Add Display</strong>.</li>
+      <li>Under <strong>Basic Settings </strong>in the 2nd column, click<em> Row style:Missing style plugin</em></li>
+      <li>Note, options appear below the Views Interface, you may need to scroll to see <em>Feed: How should each row in this view be styled</em><br />
+        tick <strong>Node</strong>, then <strong>Update</strong></li>
+      <li>This loads the next options menu- <em>Display type: </em>select "Use default RSS settings", click <strong>Update</strong>.</li>
+    </ol>
+  </li>
+  <li>
+    <h3>Set the path for accessing your feed</h3>
+    <ol>
+      <li> In the 2nd column under <strong>Feed settings</strong>, click <em>Path: None </em></li>
+      <li>In options below <em>Feed: The menu path or URL of this view</em> enter in the path with an argument feeds/%/rss.xml</li>
+      <li>Click <strong>Update</strong></li>
+    </ol>
+  </li>
+  <li>
+    <h3>Set up your arguments to say which user's nodes to display</h3>
+    <ol>
+      <li>To the right of <strong>Arguments</strong>, click the + sign to add and argument</li>
+      <li>In the Feed: Add arguments menu that loads below, select User in the pull-down menu</li>
+      <li>Check the box <em>User: Name</em>, click <strong>Add</strong></li>
+      <li>Scroll down to options to find <strong>Case in path:</strong> select <em>Lower case</em></li>
+      <li>Check the box <em>Transform spaces to dashes in URL</em></li>
+      <li>Click <strong>Update default display</strong></li>
+    </ol>
+  </li>
+  <li>
+    <h3>Sort to show most recent at top of feed</h3>
+    <ol>
+      <li>Scroll  up to <strong>Sort criteria</strong> in the right most column and click the + icon.</li>
+      <li>In the <strong>Groups</strong> drop-down menu below, select 'Node', then check <em>Node: Post date</em>, and click <strong>Add</strong>. </li>
+      <li>Select <em>Descending</em> <strong>Sort order</strong>. Click <strong>Update</strong>.</li>
+    </ol>
+  </li>
+  <li>
+    <h3>Set filters to hide unpublished entries</h3>
+    <ol>
+      <li>Click the + icon next to <strong>Filters</strong>. In the options below, select <em>Node</em> under <strong>Groups</strong> drop-down menu, choose the <em>Node: Published</em> filter, and click <strong>Add</strong>.</li>
+      <li>Check the box <em>Published</em>. Click <strong>Update default display</strong></li>
+    </ol>
+  </li>
+  <li>
+    <h3>Test</h3>
+    <ol>
+      <li>Click <strong>Save</strong></li>
+      <li>Under <strong>Live preview</strong> type in the name of a user, in lowercase, replacing spaces with dashes, click <strong>Preview</strong>.</li>
+      <li>You should test and find your feeds at URLs like http://yoursite.com/feeds/user-name/rss.xml</li>
+      <li>You can use this path for aggregating on another site. You can also attach the RSS feed to another display of view to make the feed link appear on that display.</li>
+    </ol>
+  </li>
+</ol>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/example-users-by-role.html b/drupal/sites/default/boinc/modules/contrib/views/help/example-users-by-role.html
new file mode 100644
index 0000000..ae9e1c6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/example-users-by-role.html
@@ -0,0 +1,47 @@
+In this example you will create a page view listing users on your site. Through this step-by-step process, you will become familiar with some basic steps in creating a view, and familiarize yourself with the Views User Interface.
+
+<ol>
+<li><h3>Creating a new view</h3>
+<p>Go to <a target="_blank" href="base_url:admin/build/views/add">add new view</a>. Give your new view the name 'user_list', description 'A simple user listing.', tag 'users', type 'User' and click <strong>Next</strong>.</p></li>
+<li><h3>About the Interface</h3>
+<p>You have been brought to the Views User Interface. As you start, you are editing the "Default" options for the view. In the 1st column on the left you can see the drop-down menu offers 'block', for example, to select settings specific only to block views. In the remaining columns, you will be able to add or change options by clicking on links or icons. These options will then appear below this main area. Most likely, you will need to scroll to see the options appear. As you make chang [...]
+<li><h3>Creating a page display; choosing a URL and creating a menu link</h3>
+  <ol>
+    <li>In the 1st column, ensure that 'Page' is selected in the drop-down menu, and click <strong>Add Display</strong>.</li>
+    <li>Next we'll define the path for this page. A page must have a path, and we define it early so that Views doesn't warn us "Display Page uses path but path is undefined." Locate the <strong>Page settings</strong> in the 2nd column, and click the <em>None</em> link next to the <em>Path</em> setting. In the options editing area that appears below, set the path to 'user_list' (or something else if you prefer) and click <strong>Update</strong>.</li>
+    <li>Next to <em>Menu</em> setting, Click the <em>No menu</em> link. In the options which appear below, select <em>Normal menu entry</em>, and set the title to 'User list' and click <strong>Update</strong>.</li>
+    <li>Scroll up to <strong>Basic settings</strong>, in that same 2nd column, and click the <em>No</em> link next to <em>Use pager</em>. Below, in the options, select <em>Full pager</em> and click <strong>Update default display</strong>.</li>
+  </ol>
+</li>
+<li><h3>Selecting the fields to display</h3>
+  <ol>
+    <li>In 3rd column locate the <strong>Fields</strong> options. Click the <strong>+</strong> icon to add fields.</li>
+    <li>Scroll down to <strong>Defaults: Add fields</strong>. In the <strong>Groups</strong> drop-down menu select 'User', then check the following fields: <em>User: Created date</em>, <em>User: Delete link</em>, <em>User: Edit link</em>, <em>User: Last access</em>, <em>User: Name</em> and <em>User: Picture</em>. Then click <strong>Add</strong>.</li>
+    <li>You will be taken through the fields you added one at a time. Click <strong>Update default display</strong> to go to each next field. Leave the default options on all fields except <em>Delete link</em>; change that field's label to 'Operations'.</li>
+    <li>Scroll back up to <strong>Fields</strong> and click the <strong>↑↓</strong> icon to rearrange fields. Down below, drag the <em>Name</em> field, by dragging its four-sided arrow, to the top. Drag the <em>Delete link (Operations)</em> field to the bottom, and the <em>Edit link</em> field just above it. Then click <strong>Update</strong>.</li>
+  </ol>
+</li>
+<li><h3>Seeing what we've done so far</h3>
+<p>At this point, you have done enough to create a valid view. If you scroll down, you will see a preview of your view. If it doesn't show already, click the <strong>Preview</strong> button; but generally this display updates automatically whenever you finish working in one of the mini forms.</p></li>
+<li><h3>Styling the view as a table; combining related fields into columns</h3>
+  <ol>
+    <li>Under <strong>Basic settings</strong>, in the 1st column, click the <em>Unformatted</em> link next to the <em>Style</em> setting. In the options below, under <strong>Page: How should this view be styled</strong>, choose <em>Table</em> and click <strong>Update default display</strong>.</li>
+    <li>You will be taken to a <strong>Page: Style options</strong> form to edit the table settings. Locate our <em>Edit link</em> field in this mini form, and notice the <strong>Column</strong> drop-down. Change this drop-down to show <em>Operations</em>. In the <strong>Separator</strong> column next to the <em>Operations</em> field, type ' | ' (note the spaces around the <strong>|</strong> symbol). Check all of the <strong>Sortable</strong> checkboxes, and set <strong>Default sort</str [...]
+  </ol>
+</li>
+<li><h3>Filtering the user list to exclude unwanted entries</h3>
+  <ol>
+    <li>Click the <strong>+</strong> icon next to <strong>Filters</strong>.</li>
+    <li>In the <strong>Groups</strong> drop-down menu select 'User', then check the <em>User: Name</em> filter, and click <strong>Add</strong>.</li>
+    <li>Select <em>Is not one of</em> and enter 'Anonymous' in the <strong>Usernames</strong> box. Click <strong>Update default display</strong>.</li>
+  </ol>
+</li>
+<li><h3>Adding an argument to list users by role dynamically</h3>
+  <ol>
+    <li>Scroll up to <strong>Arguments</strong>, and click its <strong>+</strong> icon.</li>
+    <li>Check the <em>User: Roles</em> argument, and click <strong>Add</strong>. Set the title to '%1' (don't type the quotes), and under <strong>Action to take if argument is not present</strong> select <em>Summary, sorted ascending</em>. Leave the other settings as they are. Click <strong>Update default display</strong>, and click <strong>Update</strong> through the prompts that follow to accept their default values.</li>
+  </ol>
+</li>
+<li><h3>Saving the view</h3>
+<p>Finally, click the <strong>Save</strong> button to save your work. At the very top, click <strong>View "Page"</strong> to go to your new view!</p></li>
+</ol>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/field.html b/drupal/sites/default/boinc/modules/contrib/views/help/field.html
new file mode 100644
index 0000000..e563176
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/field.html
@@ -0,0 +1,5 @@
+Fields are the individual pieces of data being displayed. Adding the fields <em>Node: Title</em>, <em>Node: Type</em>, and <em>Node: Post date</em> to a node view, for example, includes the title, content type and creation date in the displayed results).
+
+Fields may not appear on every display, because not all style plugins actually use fields. For example, the 'node' row plugin simply displays the node through Drupal's normal mechanisms, and fields are not involved.
+
+For the most part, the field settings should be self explanatory. Fields will appear in the order that they are arranged in, and they will usually appear with the label they are given.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/filter.html b/drupal/sites/default/boinc/modules/contrib/views/help/filter.html
new file mode 100644
index 0000000..b4cb5a0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/filter.html
@@ -0,0 +1,12 @@
+Filters are used to reduce the data set that Views provides. That is to say, without any filters applied, Views will return all of your content. You don't want that, so at least some filters must be used.
+
+Some very commonly used filters:
+<ul>
+<li> The 'Node: Published' filter is used to restrict a node View to only nodes that are are have the 'published' box checked. This can be very important to prevent users from viewing content they should not have access to.</li>
+<li> The 'Node: Promoted to front page' filter can be used to show only nodes that have the 'promote to front page' turned on. </li>
+<li> The 'Node: Type' filter is useful for showing only certain types of nodes. Let's say you wanted users to see only nodes that were 'book' nodes, or a combination of 'book' nodes and 'staff-blog' nodes. This filter allows you to select exactly that.</li>
+<li> The 'User: Current' filter will show only nodes that the logged in user has authored.</li>
+<li> The 'Node: Post date' filter can be used to show only nodes posted before, after, or between a range of dates.</li>
+</ul>
+
+The above list is only a tiny fraction of the filters available in Views, referenced here to give an idea of the kinds of tasks filters can accomplish.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/getting-started.html b/drupal/sites/default/boinc/modules/contrib/views/help/getting-started.html
new file mode 100644
index 0000000..eb28c46
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/getting-started.html
@@ -0,0 +1,26 @@
+Module Developers:
+The Views' API help pages can be found <a href="topic:views/api">here</a>.
+
+New Users:
+For those new to Views, it can be a complex system that appears totally overwhelming. The good news is that the UI is designed to compartmentalize everything; this means that for the most part, you can ignore the parts you're not interested in. Start small and build your way up.
+
+Because of this, the edit UI can seem overwhelming at first, but there are really just a few things you <strong>have</strong> to know. The rest you can find through exploration. The Views Edit UI image, below, gives an overview of what you'll find on the edit UI.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/overview-ui-large.png"><img src="path:images/overview-ui-small.png" /></a>
+<em>The Views Edit UI</em>
+</div>
+
+Notes:
+1) Every view has a number of <a href="topic:views/display">displays</a> which represent where output will be placed. If you're familiar with the original Views 1, you could set a view to be a 'page', with a URL (path), or a block that could show up in a sidebar. With Views 2, you can add as many displays as you like. In addition, you have the <em>default</em> display which contains the basic settings, but doesn't actually show up anywhere.
+
+2) When you click on the link for an item, a form will open up. For browsers with smaller resolutions, you may have to scroll down a little to see this form. If a form is open, the item its attached to will be highlighted.
+
+3) <a href="topic:views/overrides">Overrides</a> mean that a particular display is <strong>not</strong> using default settings. When you create a new display, many of its settings will start off using default values. This will be indicated by italics and a lighter color. <strong>If you change these values without first overriding them, you will change the default value for all displays that use them.</strong>
+
+4) Some items, particularly styles, have additional settings. Ordinarily when you <em>update</em> a style, if it has additional settings you will automatically see that form next. Often, you will need to go directly to those settings.
+
+5) You can safely leave a view page to go and do other things. If you come back, the view will still be there, stored in a cache. Keep in mind, however, that while you do this, that view is <em>locked</em>, meaning another user cannot edit this view without breaking the lock. Breaking the lock will discard your changes.
+
+It helps to have something particular in mind that you want to accomplish when using Views. Here are a couple of ideas and a brief sketch of how to accomplish what you want.
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/node-term_node-term_data-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/node-term_node-term_data-large.png
new file mode 100644
index 0000000..4fcd191
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/node-term_node-term_data-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/node-term_node-term_data.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/node-term_node-term_data.png
new file mode 100644
index 0000000..de1273c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/node-term_node-term_data.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/overview-ui-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/overview-ui-large.png
new file mode 100644
index 0000000..04fbe90
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/overview-ui-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/overview-ui-small.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/overview-ui-small.png
new file mode 100644
index 0000000..ed7595f
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/overview-ui-small.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/style-breakdown-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/style-breakdown-large.png
new file mode 100644
index 0000000..698b8cc
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/style-breakdown-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/style-breakdown.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/style-breakdown.png
new file mode 100644
index 0000000..d7513a8
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/style-breakdown.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-admin-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-admin-large.png
new file mode 100644
index 0000000..06744bd
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-admin-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-admin.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-admin.png
new file mode 100644
index 0000000..398c145
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-admin.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-changeviewtype-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-changeviewtype-large.png
new file mode 100644
index 0000000..5c58d81
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-changeviewtype-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-changeviewtype.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-changeviewtype.png
new file mode 100644
index 0000000..6b1798a
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views1-changeviewtype.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addaview-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addaview-large.png
new file mode 100644
index 0000000..bbad1b1
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addaview-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addaview.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addaview.png
new file mode 100644
index 0000000..546ea16
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addaview.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-adddisplay-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-adddisplay-large.png
new file mode 100644
index 0000000..51c3675
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-adddisplay-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-adddisplay.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-adddisplay.png
new file mode 100644
index 0000000..dff143e
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-adddisplay.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfields-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfields-large.png
new file mode 100644
index 0000000..b7c1ba5
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfields-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfields.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfields.png
new file mode 100644
index 0000000..e70c758
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfields.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfieldsajax-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfieldsajax-large.png
new file mode 100644
index 0000000..a9308a0
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfieldsajax-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfieldsajax.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfieldsajax.png
new file mode 100644
index 0000000..3043d04
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-addfieldsajax.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-admin-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-admin-large.png
new file mode 100644
index 0000000..d262bc5
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-admin-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-admin.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-admin.png
new file mode 100644
index 0000000..c273363
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-admin.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-changedisplaystyle-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-changedisplaystyle-large.png
new file mode 100644
index 0000000..09925df
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-changedisplaystyle-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-changedisplaystyle.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-changedisplaystyle.png
new file mode 100644
index 0000000..5a82ea5
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-changedisplaystyle.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-fieldspreview-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-fieldspreview-large.png
new file mode 100644
index 0000000..e2730b4
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-fieldspreview-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-fieldspreview.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-fieldspreview.png
new file mode 100644
index 0000000..5a41ab2
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-fieldspreview.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-newview-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-newview-large.png
new file mode 100644
index 0000000..498627a
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-newview-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-newview.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-newview.png
new file mode 100644
index 0000000..b522d2c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-newview.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-rearrangefields-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-rearrangefields-large.png
new file mode 100644
index 0000000..acfed4c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-rearrangefields-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-rearrangefields.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-rearrangefields.png
new file mode 100644
index 0000000..562df08
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-rearrangefields.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-tablestyle-large.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-tablestyle-large.png
new file mode 100644
index 0000000..67e9e6b
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-tablestyle-large.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-tablestyle.png b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-tablestyle.png
new file mode 100644
index 0000000..f899740
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/help/images/views2-tablestyle.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/menu.html b/drupal/sites/default/boinc/modules/contrib/views/help/menu.html
new file mode 100644
index 0000000..9fd34b5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/menu.html
@@ -0,0 +1,21 @@
+Page displays can hook into the Drupal menu system and provide <strong>menu links</strong> that will appear in the Navigation system as well as <strong>tabs</strong> that can be used to keep Views next to each other.
+
+For simple <strong>menu links</strong>, there is very little you need to do; simply select 'Normal menu entry' and fill in the text for the title. This will appear in the Navigation menu by default; you will need to visit the menu administration page to move this to another menu.
+
+Tabs are not quite so simple; there are some complex rules for using tabs in Drupal.
+<ol>
+<li> All tabs must have a parent, which is the next level up in the path hierarchy. For example, if the view path is 'example/taba' then the parent must be 'example'.
+<li> All tabs must have one and only one default tab; this is usually the same content as the parent.
+<li> If a parent does not exist, when creating the 'default' tab, Views will allow you to also create a parent item. It will automatically set up the URL for you when it does this.
+<li> Tab weight is used to control what order the tabs are displayed in. Lower numbers will display more to the left. For tabs whose numbers are the same, they will be displayed alphabetically.
+<li> Drupal only supports 2 levels of tabs, so be careful about trying to put tabs within tabs within tabs. That won't work.
+</ol>
+
+For example, if you have two views that you want to be tabs, you could set it up like this:
+<ul>
+<li> In the first view, set the path to 'tabs/tab1'. Set it to be the 'default tab', set the title to 'Tab 1' and the weight to 0. 
+<li> Click update and you will be taken to a form that lets you define the parent. Since 'tabs' doesn't already exist in the system, select 'Normal menu item', and set the title to 'Tabs'.
+<li> On the second view, set the path to 'tabs/tab2'; set it to be a 'Menu tab', and set the title to 'Tab 2'.
+</ul>
+
+With this done, you will now have a Navigation link named 'Tabs' and when you click on it, you will go to the tabs, with 'Tab 1' being the default tab that appears. You can then click between Tab 1 and Tab 2.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/new.html b/drupal/sites/default/boinc/modules/contrib/views/help/new.html
new file mode 100644
index 0000000..f33bb8f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/new.html
@@ -0,0 +1,113 @@
+Views 2 is the newest major release of Views and it is specifically coded for Drupal 6. Views 2 retains all of the core functionality of Views 1, together with a completely revamped user interface and a large set of new features which greatly expand upon the original feature-set of Views 1. This document is a side-by-side comparison of Views 1 versus Views 2 from a user's perspective, detailing the UI changes, some new ways to perform old tasks, the cool new features of Views 2 and how t [...]
+
+<h2>Admin interface</h2>
+The first thing that pops out after you install Views 2 is the radically different admin interface:
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-admin-large.png"><img src="path:images/views2-admin.png" /></a>
+<em>Views 2 admin interface</em>
+</div>
+
+compared to the old comfy Views 1 interface:
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views1-admin-large.png"><img src="path:images/views1-admin.png" /></a>
+<em>Views 1 admin interface</em>
+</div>
+
+The new admin interface performs the same functions as the old -- listing all the views in the system, providing links to add or import views and a link to Views Tools -- but has been compacted, with each view displayed as a paragraph style-row compared to the table of Views 1 and set of filters on top to ease locating views among a large list.
+
+Context-help is available by clicking the small blue question-mark icon. Context-help in Views 2 is provided by the <a href="http://drupal.org/project/advanced_help">Advanced Help</a> module, so make sure to install that together with installing Views 2. The small blue help icons will be available in various parts of the Views UI. In particular, look for them as part of the description of a <strong>display</strong>, when setting <strong>style</strong> options, and in various editing sect [...]
+
+Several new attributes of each view are visible in the filter header:
+<ol>
+<li><strong>Tag</strong> - This is just another label for organizing and sorting views. Tags can be any text. Views that are provided by modules will often be tagged together to make it easy to find them. Tags are also added to your template suggestions, so take care what you set here. For example setting the tag <i>Page</i> will give all your views the Page template.</li>
+<li><strong>Display</strong> - In Views 1 each view query was tied to its display; in other words your fields, sorts, filters, and arguments could only be displayed in the single page or block display provided in the view definition. In Views 2, view displays have been decoupled from view queries - it is now possible to have multiple page, block, and feed displays from a single view. More on view displays later. </li>
+<li><strong>Type</strong> - Views 2 view types are radically different from Views 1 types. Views 1 types basically defined how the node list displays were <i>styled</i> - you had Full Nodes, Teaser List, Table View, and so on. In Views 2 view display styles have been broken out into the separate <i>Style</i> attribute. View types now refer to the primary table on which information for the query will be retrieved which controls what arguments, fields, sort criteria and filters are availab [...]
+</li>
+</ol>
+
+<h2>Adding a view</h2>
+So let's jump in and add a view. For this example, we're going to create a <strong>user</strong> view, which will display a list of users.
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-addaview-large.png"><img src="path:images/views2-addaview.png" /></a>
+<em>Adding a view</em>
+</div>
+
+The first step in adding a view is simply entering a name (only alphanumeric characters, no spaces) a description, tag, and the view type. To get the user view, we selected the <strong>User</strong> radio button.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-newview-large.png"><img src="path:images/views2-newview.png" /></a>
+<em>Configuring the new view</em>
+</div>
+
+This might be the 2nd whoa moment as the interface here is also completely revamped from Views 1.x. The best way to summarize is to say all the pieces from the Views 1.x interface are still there...just in different places. Fields, arguments, sort critera and filters are all still there there, just in new AJAXY-flavours.
+
+Let's start by adding some fields:
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-addfields-large.png"><img src="path:images/views2-addfields.png" /></a>
+<em>Adding fields</em>
+</div>
+
+Clicking on the [+] icon next to the word Fields unfurls a section beneath the view information with all the available fields grouped by Comment, File, Node, Node revision, Taxonomy and User, and probably a few others. This is a general paradigm for the Views 2 interface -- clicking on a widget or link unfurls a section beneath the view information with the relevant interface. Usually, what is being edited will be hilited in yellow, as well.
+
+When adding items, you can use the Groups drop-down box to show only a subset of the fields available according to the above groups, or select All to see all fields available, which is what was selected when the section unfurled. For our example, we're selecting the 'User' group and adding the <strong>User: E-mail</strong>, <strong>User: Name</strong> and <strong>User: Picture</strong> fields.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-addfieldsajax-large.png"><img src="path:images/views2-addfieldsajax.png" /></a>
+<em>Adding fields</em>
+</div>
+
+Once we add our fields they show up in the Fields section of the interface. We will be walked through each field we added, so keep clicking <strong>update</strong>, even if you don't make changes to the field and you will see the next one.
+
+The fields we added can be rearranged by clicking the up/down icon, right next to the add icon we used earlier. We can also remove a field using the same interface.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-rearrangefields-large.png"><img src="path:images/views2-rearrangefields.png" /></a>
+<em>Rearranging fields</em>
+</div>
+
+From here, the fields can be dragged up and down by grabbing the little drag handle on the left and moving them where you like. Making a change to any part of the view by clicking update usually triggers a refresh of the view preview which is conveniently located right below the main interface.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-fieldspreview-large.png"><img src="path:images/views2-fieldspreview.png" /></a>
+<em>Views preview</em>
+</div>
+
+Now that we have some fields set up we can turn our attention to Basic Settings for the view.
+
+It's important to note that all the interface elements pertain to the current <i>Display</i> selected for the view. As mentioned before a view can have multiple displays. The first time you create a view you'll be manipulating the <i>Default</i> display. You can add displays using the Add Display button, whose Basic Settings are completely different from each other; this lets you have as many displays of a view as you would like all sharing items such as Sort Criteria, Filters and Argume [...]
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-adddisplay-large.png"><img src="path:images/views2-adddisplay.png" /></a>
+<em>Adding a <strong>Page</strong> display </em>
+</div>
+Let's stick with the Default display and twiddle some settings. We can set the <i>Title</i> to "User View 1" and the <i>Style</i> to Table. As mentioned earlier, view styles in Views 2 correspond more to view types in Views 1 (remember, List, Table, Teasers, Full nodes).
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views1-changeviewtype-large.png"><img src="path:images/views1-changeviewtype.png" /></a>
+<em>Selecting a Views 1 View Type</em>
+</div>
+
+In Views 2, view <i>styles</i> control how a view display looks. These styles are significantly different from the Types in Views 1; in particular, types have been 'broken up'; there is now the <em>style</em> as well as the <em>row style</em> which focus on different parts of the output.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/style-breakdown-large.png"><img src="path:images/style-breakdown.png" /></a>
+<em>A breakdown of View output</em>
+</div>
+
+We change the style by clicking on the current style on the left hand side of the View information area.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-changedisplaystyle-large.png"><img src="path:images/views2-changedisplaystyle.png" /></a>
+<em>Selecting a Views 2 Display Style</em>
+</div>
+
+We're given the style options of <strong>Grid</strong>, <strong>List</strong>, <strong>Table</strong> and <strong>Unformatted</strong>. Additional display styles can be added by modules which have Views <i>style plugins</i>. Choosing a style reveals a "settings" button which you can click to configure the style you've chosen. In the shot below we've selected and are configuring the Table style, which we're using to produce a more compact output than we had earlier.
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views2-tablestyle-large.png"><img src="path:images/views2-tablestyle.png" /></a>
+<em>Selecting and configuring the table style</em>
+</div>
+
+... TODO: Finish this document ...
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/overrides.html b/drupal/sites/default/boinc/modules/contrib/views/help/overrides.html
new file mode 100644
index 0000000..c6ff531
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/overrides.html
@@ -0,0 +1,6 @@
+
+If an item is <strong>using defaults</strong> then it is using values from the <strong>default display</strong>. <em>IMPORTANT NOTE:</em> If you modify this value, you are modifying the <strong>default display</strong> and thus modifying for all displays that are using default values.
+
+If that is not what you intend, you must click the <strong>override</strong> button. Once overridden, that display now has its own version of the value; modifying it will not modify it for other displays.
+
+For <strong>Relationships</strong>, <strong>arguments</strong>, <strong>fields</strong>, <strong>sort criteria</strong>, and <strong>filters</strong>, each of these must be overridden as a group! In other words, you cannot override a single filter, but instead must override all filters. A message will appear on the item to let you know what its status is, but you can only change the status by clicking on the header or the rearrange button for that item.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/path.html b/drupal/sites/default/boinc/modules/contrib/views/help/path.html
new file mode 100644
index 0000000..142534c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/path.html
@@ -0,0 +1,7 @@
+If a display has a path that means that it can be retrieved directly by calling a URL as a first class page on your Drupal site. Any items after the path will be passed into the view as arguments. For example, if the path is <strong>foo/bar</strong> and a user visits <strong>http://www.example.com/foo/bar/baz/beta</strong>, 'baz' and 'beta' will be given as arguments to the view. These can be handled by adding items to the <a href="topic:views/arguments">arguments</a> section.
+
+You may also use placeholders in your path to represent arguments that come in the middle. For example, the path <strong>node/%/someview</strong> would expect the first argument to be the second part of the path. For example, <strong>node/21/someview</strong> would have an argument of '21'.
+
+<em>Note:</em> Views 1 used <strong>$arg</strong> for this kind of thing. $arg is no longer allowed as part of the path. You must use % instead.
+
+If multiple displays <strong>within the same view</strong> have the same path, the user will get the first display they have access to. This means you can create successfuly less restricted displays in order to give administrators and privileged users different content at the same path.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/relationship.html b/drupal/sites/default/boinc/modules/contrib/views/help/relationship.html
new file mode 100644
index 0000000..0f89184
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/relationship.html
@@ -0,0 +1,13 @@
+Relationships allow you to expand the query to include objects other than the base query. This is actually made more difficult to understand by the fact that Views actually includes a few relationships by default, and doesn't tell you they're there. For historical reasons, it would be inconvenient to remove these default relationships. When relationships are present, all fields (including relationships) will gain a new form item to let you select which relationship they will use. They wi [...]
+
+The main example of the relationship that is there by default is the node --> user relationship; every node has an author, and if a node is in the query, the user who wrote that node is automatically made available. [Note: the author considers it an error that this relationship is automatic, but by the time it was realized this was in error, it was too late to change it.]
+
+A similar relationship that is <b>not</b> automatically made available is for node revisions. Each revision has its own author, which is the user who made the revision. By adding the "Node revision: User" relationship, all of the 'user' fields, sorts, filters and arguments available to a user will now be available for the revision author.
+
+When a relationship is added to the view, all applicable items will gain a "Relationship" select box, where you can choose which version of that particular item you wish to use. This can be illustrated with an example:
+
+A 'comment' view contains the relationships 'Comment: node' and 'Comment: user'. This means that all the fields for the node that a comment is attached to are available, and all the user fields for that node author also become available. The other relationship makes fields for the author of the comment available -- very often not the author of the node!
+
+When you add the "User: name" field, you will be presented with a select box. Either the node relationship or the user relationship must be selected, because there are two possible user names in the view to choose from.
+
+Another example of relationships involves the <strong>Files</strong> table. In Drupal, files are related to users, but files are not necessarily related to nodes. However, the upload.module allows some files to be attached to nodes. The only way for Views to deal with this discrepancy is with relationships. When creating a 'node' view, it's possible to add an uploaded files relationship to get file data for nodes that were attached with the upload module. It is also possible to go the ot [...]
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/sort.html b/drupal/sites/default/boinc/modules/contrib/views/help/sort.html
new file mode 100644
index 0000000..9a5640f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/sort.html
@@ -0,0 +1,24 @@
+Sort criteria determine what order the records are retrieved from the database and displayed in; generally, all you need to do is pick a field and choose ascending (1, 2, 3, 4) or descending (4, 3, 2, 1) and it will be done. If you have multiple sort criteria, the second (and later) items only come into play if the first item is the same.
+
+Different data types sort just a little bit differently from others:
+<dl>
+<dt>Number fields</dt>
+<dd>Number fields sort like you would expect. 1 comes before 2 which comes before 10 which comes before 100 which comes before 200, etc.</dd>
+<dt>Text fields</dt>
+<dd>Text fields always sort alphabetically, even if the text contains numbers. This can have some odd effects if you have numbers stored in text, because the values 1, 3, 7, 10, 12, 20, 100, 120 will sort like this:
+<ul>
+<li> 1 </li>
+<li> 10 </li>
+<li> 100 </li>
+<li> 12 </li>
+<li> 120 </li>
+<li> 200 </li>
+<li> 3 </li>
+<li> 7 </li>
+</ul>
+
+This is because these fields sort purely by characters, and not numeric value. i.e, comparing 200 and 3, the '2' comes before the '3', therefore, '200' is "smaller" than '3'.
+</dd>
+<dt>Date fields</dt>
+<dd>Date fields often can have a 'granularity', which is a way of making similar dates actually be the same date. Take two dates that are close to each other: <strong>May 1, 2007 5:30 am</strong> and <strong>May 1, 2007 9:45am</strong>. Without granularity, the two dates are compared and the first date comes before the second date. However, if the granularity is set to 'day' it only looks at the parts of the date up to the day: <strong>May 1, 2007</strong> and <strong>May 1, 2007</strong [...]
+</dl>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-comment-rss.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-comment-rss.html
new file mode 100644
index 0000000..c047ee7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-comment-rss.html
@@ -0,0 +1 @@
+This row style is only available to RSS styles. It produces XML necessary for an RSS feed for the comment.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-fields.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-fields.html
new file mode 100644
index 0000000..0afde7a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-fields.html
@@ -0,0 +1,5 @@
+The <strong>fields</strong> row style displays each field defined in the view, one after another. Each field defines its own output.
+
+By default, each field is put in a <div> unless it is selected to be <em>inline</em>. If it is inline, it is put in a <span>. Two items in <div>s will be displayed one after another, with the second one below the first. Two items in <span>s will be displayed on the same line. One item in a <span> next to <div>s is the same as two items in <div>s. This means that for the <em>inline</em> setting to do anything, at least two consecutive items must b [...]
+
+You may define a separator which will be placed between each item. This separator may be html. You can use &nbsp; to print blank space.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-grid.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-grid.html
new file mode 100644
index 0000000..8667d0a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-grid.html
@@ -0,0 +1,20 @@
+The <strong>grid</strong> style will display each row of your view within a grid. You may customize the number of columns, though it defaults to 4. A grid looks like this:
+
+<table width="100%">
+<tr><td>row 1</td><td>row 2</td><td>row 3</td><td>row 4</td></tr>
+<tr><td>row 5</td><td>row 6</td><td>row 7</td><td>row 8</td></tr>
+<tr><td>row 9</td><td>row 10</td><td>row 11</td><td>row 12</td></tr>
+<tr><td>row 13</td><td>row 14</td><td>row 15</td><td>row 16</td></tr>
+</table>
+
+The above uses the 'horizontal' alignment, where rows are added into the grid from left to right. 
+
+With a vertical alignment, rows will be placed from top to bottom, like this:
+<table width="100%">
+<tr><td>row 1</td><td>row 5</td><td>row 9</td><td>row 13</td></tr>
+<tr><td>row 2</td><td>row 6</td><td>row 10</td><td>row 14</td></tr>
+<tr><td>row 3</td><td>row 7</td><td>row 11</td><td>row 15</td></tr>
+<tr><td>row 4</td><td>row 8</td><td>row 12</td><td>row 16</td></tr>
+</table>
+
+This style uses a <a href="topic:views/style-row">row style</a> to determine what each row will look like.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-list.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-list.html
new file mode 100644
index 0000000..0884338
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-list.html
@@ -0,0 +1,20 @@
+The <strong>List</strong> view style will display every row of the view as part of an HTML list construct. For example:
+<ul>
+<li> Row 1 </li>
+<li> Row 2 </li>
+<li> Row 3 </li>
+<li> Row 4 </li>
+</ul>
+
+You may select whether or not the list is <em>ordered</em> which just means whether or not it uses numbers instead of the bullet:
+
+<ol>
+<li> Row 1 </li>
+<li> Row 2 </li>
+<li> Row 3 </li>
+<li> Row 4 </li>
+</ol>
+
+The list style also uses a <em>row style</em> which means that it doesn't care what the actual output for each row of the view is. 
+
+If you need information about using CSS to style list views, you may find this <a href="http://www.alistapart.com/stories/taminglists/">A list apart guide to styling lists</a> useful.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-node-rss.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-node-rss.html
new file mode 100644
index 0000000..9cce414
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-node-rss.html
@@ -0,0 +1 @@
+This row style is only available to RSS styles. It produces XML necessary for an RSS feed for the node record.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-node.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-node.html
new file mode 100644
index 0000000..393d1ca
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-node.html
@@ -0,0 +1,9 @@
+The <strong>node</strong> row style will display each item of the view through Drupal's standard <em>node_view()</em> function. Views has very little control over this output, except for the options you see. Instead, the output is run through the standard node template mechanism (typically <strong>node.tpl.php</strong> or a variant thereof) and any decisions about what is output may be done there.
+
+Views does add an extra 'suggestion' to the list of possible node templates: <strong>node-view-VIEWNAME.tpl.php</strong> -- you may use this to theme a node specifically for the view. This can be handy for creating very small teasers and the like.
+
+You may opt to display the full node body or the node teaser, and you may add the node links (such as he 'comment' links that appear after a node) or not.
+
+Because of this behavior, <strong>the node row style does not utilize fields</strong> and the Fields section will not be displayed.
+
+<strong>Please note that this row style performs a node_load() for every row, and as such can produce a lot of extra queries.</strong> Sometimes this is necessary, but it can have a negative impact on your site's performance!
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-row.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-row.html
new file mode 100644
index 0000000..3eae5ac
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-row.html
@@ -0,0 +1,3 @@
+A row style is an individual style to display only an individual record within a view. For example, a <strong>node</strong> type view would display one node per row; a <strong>user</strong> type view would display one user per row.
+
+Some row styles use <em>fields</em> which means you select from the available fields to display; others do not; they are able to use the base type and create a display. Usually, row styles that do not use fields <em>produce less efficient (slower) views</em>, so bear this in mind when contemplating the performance of your site.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-rss.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-rss.html
new file mode 100644
index 0000000..0b18443
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-rss.html
@@ -0,0 +1,3 @@
+The <strong>RSS</strong> output style is only available for <em>Feed</em> display types. It will display the view as an RSS feed, which is a specialized XML output. This output is not user visible, but can be parsed by feed readers for aggregation.
+
+You may supply a description for the RSS feed; most feed readers will display this description along with the contents of the feed. You may also select to use the site's mission statement for the description.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-summary-unformatted.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-summary-unformatted.html
new file mode 100644
index 0000000..258acf5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-summary-unformatted.html
@@ -0,0 +1,3 @@
+The <strong>unformatted summary</strong> style is only available for <em>summary</em> styles, which are when an argument has been set to provide a summary if it was not provided with a value. This summary provides the possible candidates for the argument one after another with no special formatting. If <em>inline</em> is selected, the summary items will be enclosed within <span> tags. Otherwise the items will be in <div> tags.
+
+You can also elect to display the number of matching records for the argument, plus change the number of items per page for the summary. This is often useful because summary views are often quite small, but other views quite space intensive. It is very common to have far more records available in the summary view than in the more normal view.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-summary.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-summary.html
new file mode 100644
index 0000000..f5b01ec
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-summary.html
@@ -0,0 +1,3 @@
+The <strong>list summary</strong> style is only available for <em>summary</em> styles, which are when an argument has been set to provide a summary if it was not provided with a value. This summary provides a list of possible candidates for the argument in a standard HTML list. Like the normal list style, you may set this list to be ordered or not.
+
+You can also elect to display the number of matching records for the argument, plus change the number of items per page for the summary. This is often useful because summary views are often quite small, but other views quite space intensive. It is very common to have far more records available in the summary view than in the more normal view.
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-table.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-table.html
new file mode 100644
index 0000000..b8ade8a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-table.html
@@ -0,0 +1,13 @@
+The <strong>table</strong> style will display the View results as a table; each row of the table will correspond to a row from the view result.
+
+When setting the table options, each field in the view will be presented with some information next to each field:
+<dl>
+<dt> <strong>Column</strong> </dt>
+<dd> By default, each field is its own column. However, you can place multiple fields in the same column. To do this, pick which field you want to represent the column, then pick another field and set the 'column' value to that field. You can place as many fields as you like in a single column, but only the main field in a column can be click-sorted.</dd>
+<dt> <strong>Separator</strong> </dt>
+<dd> If you have multiple fields in the same column, the separator will be placed between each one. At the very least, &nbsp; should be used, as without the separator the fields will be placed very close to each other. Common separators are a bullet, the | symbol, and a comma. If there are no other fields in the column, the separator will have no effect.</dd>
+<dt> <strong>Sortable</strong> </dt>
+<dd> If checked, the header for the column will be clickable, and the user may re-sort the table by clicking on this to sort by that field. At this time Views does not support click-sorting to sort by multiple columns at the same time.</dd>
+<dt> <strong>Default sort</strong> </dt>
+<dd> You may select a column which will be sorted by default when the table is first viewed. This column will be highlighted to the user. You may also select whether the default sort is ascending or descending.</dd>
+</dl>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style-unformatted.html b/drupal/sites/default/boinc/modules/contrib/views/help/style-unformatted.html
new file mode 100644
index 0000000..99fa3de
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style-unformatted.html
@@ -0,0 +1 @@
+The unformatted output style simply places each row of the view, one after another, with no additional formatting.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/style.html b/drupal/sites/default/boinc/modules/contrib/views/help/style.html
new file mode 100644
index 0000000..01dffed
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/style.html
@@ -0,0 +1,14 @@
+The Views' <strong>style</strong> system is how you customize the output produced by your view. A view style is basically a smart theme template that processes the view data and then outputs it. All styles in Views can be <a href="topic:views/using-theme">overridden</a> by placing copies of the templates in your theme directory and then modifying them. See the <a href="topic:views/analyze-theme">theme: information</a> link available on all views to get hints for which templates a given v [...]
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/style-breakdown-large.png"><img src="path:images/style-breakdown.png" /></a>
+<em>A breakdown of View output</em>
+</div>
+By default, the style is <em>unformatted</em>, which means that there is very little style actually used; the records are simply displayed one after another, enclosed in a <div> tag so that you can use <a href="topic:views/theme-css">CSS to manipulate the view</a>.
+
+Some styles use a separate <a href="topic:views/style-row">row style</a> to determine how each row of the View looks. This is useful for mixing and matching styles to more readily produce exactly the kind of output you need.
+
+Many styles can be <strong>grouped</strong>. For styles that can, there will be a 'grouping field' option; pick one of the fields to group by. This grouping field will be displayed as a header, and all rows will be displayed beneath it.
+With the Theme Developer module enabled, the field grouping in Views does not work. Disable the Theme Developer module before grouping by fields.
+
+Each style is its own entity.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/theme-css.html b/drupal/sites/default/boinc/modules/contrib/views/help/theme-css.html
new file mode 100644
index 0000000..3be998f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/theme-css.html
@@ -0,0 +1,75 @@
+Views uses a wide array of CSS classes on all of its content to ensure that you can easily and accurately select exactly the content you need in order to manipulate it with CSS. 
+
+Typically, every view is wrapped in a div with the name of the view as part of its class (for all these examples, we will assume the name of the view is <strong>myview</strong>), as well as the generic class 'view':
+
+<pre>
+<div class="view view-myview">
+...
+</div>
+</pre>
+
+In your CSS, you can modify all views:
+
+<pre>
+div.view {
+  border: 1px solid black;
+}
+</pre>
+
+Or just your view:
+
+<pre>
+div.view-myview {
+  background: yellow;
+}
+</pre>
+
+By default, the general view template also provides the following classes to easily style other areas of the view:
+<ul>
+<li> .view-header </li>
+<li> .view-filters </li>
+<li> .view-content </li>
+<li> .view-empty (if an "empty" text is used when the view has no results) </li>
+<li> .view-footer </li>
+<li> .feed-icon </li>
+<li> .attachment-before (if using an "attachment" display)</li>
+<li> .attachment-after (if using an "attachment" display)</li>
+</ul>
+
+So for example:
+<pre>
+div.view-myview div.view-header {
+  /* make the header stand out */
+  font-size: 120%;
+  font-weight: bold;
+}
+
+div.view-myview div.view-footer {
+  /* Make the footer less important */
+  font-size: 80%;
+  font-style: italic;
+  color: #CCC;
+}
+</pre>
+
+In the above example, we whimsically made the header bold and in a bigger font, and the footer smaller, italicized, and greyish.
+
+<h3>Views with fields</h3>
+If your view has fields, each field is uniquely tagged with its ID. A field's ID may be gleaned from the Theme: Information page. Note that due to CSS rules, any _ in the id will be converted to - automatically, so if you have a field whose id is 'edit_node' (this is the field used to provide an "edit" link to a node), it will be 'edit-node'. Additionally, to make sure that the view IDs don't conflict with other css classes in the system, they will be pretended with 'views-field-'; thus, [...]
+
+Exactly how this appears is going to depend upon the style you're using. For example, the 'unformatted' style uses <strong>div.views-field-edit-node</strong> and <strong>div.views-label-edit-node</strong> to access that particular field, but a table would use <strong>td.views-field-edit-node</strong> and <strong>th.views-field-edit-node</strong> to access the table header; or just <strong>.views-field-edit-node</strong> to affect both.
+
+<pre>
+.view-myview th {
+  color: red; /* make all headers red */
+}
+
+.view-myview .views-field-title {
+  font-weight: bold; /* Make the 'title' field bold */
+}
+
+.view-myview td.views-field-body {
+  font-size: 60%; /* Make the text in the body field small */
+}
+</pre>
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/updating.html b/drupal/sites/default/boinc/modules/contrib/views/help/updating.html
new file mode 100644
index 0000000..844c46c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/updating.html
@@ -0,0 +1,2 @@
+TODO: This document needs to be fleshed out.
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/using-theme.html b/drupal/sites/default/boinc/modules/contrib/views/help/using-theme.html
new file mode 100644
index 0000000..f80d71c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/using-theme.html
@@ -0,0 +1,50 @@
+Views theme templates are straightforward to use with the Drupal theming system. If you are unfamiliar with the theming system at all, you should probably at least read <a href="http://drupal.org/node/173880">drupal.org theming documentation</a>. That said, these are the important things you need to know:
+
+<ol>
+<li> Copy a base Views template to one of the names provided from the Theme: Information section of the View. Copy this template right into your theme directory. </li>
+<li> Clear the theme registry. See the <a href="http://drupal.org/node/173880#theme-registry">instructions</a> for how to do this. </li>
+<li> Your new template should now operate; assuming you picked a nicely named template that includes the view name, that template should now be active for your view. A good example is <strong>views-view-list--foobar.tpl.php</strong> which would work for a view named 'foobar'.</li>
+<li> You can now modify this template all you like.</li>
+</ol>
+
+For any template that uses fields, the fields will be in array. In order to use this effectively, you will need to understand enough PHP to fetch data from an array. This is a place where the <a href="http://drupal.org/project/devel">devel module</a> can really help you, because you can use its dsm() function right in your template to see what variables it uses. There is an alternative to dsm() that works without devel module, but it's a bit longer to use.
+
+For example, I placed the following code inside a loop in views-view-table.php.php:
+<code> <?php drupal_set_message('<pre>' . var_export($row, true) . '</pre>'); ?>
+</code>
+
+And it produced this output:
+<code>  array (
+    'nid' => '97',
+    'title' => 'Scisco Ideo Vicis Feugiat Qui',
+    'name' => 'luwrepuslan',
+  )
+</code>
+
+My view had three fields:
+<code>Node: Nid
+Node: Title
+User: Name
+</code>
+
+The contents of the $row variable included these fields, in precisely the order that I had arranged them to using the Views rearrange link. Also worth noting, though, is that each field also has an identifier so it can easily be pulled out of the row should I want to display it differently. Using 
+<code><?php print $row['title']; ?>
+</code>
+
+Would print just the title for that row. Please remember that I'm doing this inside the loop, so this will get repeated for every row of the view.
+
+The IDs used to fetch items from the array, id <strong>$row['title']</strong> can be quickly and easily looked up on the Theme: Information page. Once a field has been added to the view, its ID will not change, but note that if there are two "title" fields in a view, one will be 'title' and the other will be 'title1', in order to prevent namespace collisions.
+
+The important thing here is that Views does provide IDs. Views doesn't tell you what these IDs are, but it's easy to get them by dumping the row data and doing a simple visual inspection. Views does guarantee that these IDs will not change, unless you actually add a new field and remove the existing one (in which case 'title', above, would become 'title1').
+
+<h2>The basic fields template</h2>
+
+The most common template people will need to rewrite is the "simple" views-view-fields.tpl.php, which is the template used by the <i>Fields</i> row style and all it does is display a simple list of fields. However, it is not that simple to the user. Because the template can't inherently know what the fields are, it has to go through an array in a loop.
+
+This loop isn't very handy when you really want to have fine control over the template by placing your fields precisely where and how you want. Relax, though; if you know what your fields are, you can rewrite this. If you end up writing your own HTML, the only part that is really important is the content for each field. We know from above that you can get the ID for each field on the Theme: Information page from the view. In the header for the template, we can see that the fields are all [...]
+
+<code><?php print $fields['some_id']->content; ?></code>
+
+Assuming you replace some_id with an id found on the theme: information page, this code will print the content for that field. You can also get the label and some other data about the field, as well as the raw information. Complete details for what is available are documented directly in views-view-fields.tpl.php.
+
+Keep in mind that if you rewrite your templates using this, you'll need to maintain this template whenever changes are made to the fields of the view; while this isn't generally recommend, sometimes it's necessary to get the kind of control you might ultimately need.
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/view-type.html b/drupal/sites/default/boinc/modules/contrib/views/help/view-type.html
new file mode 100644
index 0000000..bdb80fc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/view-type.html
@@ -0,0 +1,21 @@
+<p>The <strong>view type</strong> describes how this view is stored; Views is capable of having Views entirely in code that are not in the database. This allows modules to easily ship with Views built in, and it allows you to create a module to store your views for easy deployment between development and production servers.</p>
+
+<dl>
+<dt><strong>Normal</strong></dt>
+<dd>Normal views are stored in your database and are completely local to your system.</dd>
+
+<dt><strong>Default</strong></dt>
+<dd>Default views are stored only in code and are not anywhere in your database. They may be <strong>enabled</strong> or <strong>disabled</strong> but you may not completely remove them from your system. You can <strong>override</strong> the view which will create a local copy of your view. If you do this, future updates to the version in code will not affect your view.</dd>
+
+<dt><strong>Overridden</strong></dt>
+<dd>Overridden views are stored both in code and in the database; while overridden, the version that is in code is completely dormant. If you <strong>revert</strong> the view, the version in the database will be deleted, and the version that is in code will once again be used.</dd>
+</dl>
+
+You may store your views in code with the following procedure:
+<ol>
+<li> Create a module to store the views. </li>
+<li> Add the function <em>MODULENAME_views_default_views()</em> to this module. </li>
+<li> Export the view you wish to store in your module in code. Cut and paste that into the abovenamed function. Make sure the last line of the view is: <em>$views[$view->name] = $view;</em></li>
+<li> Make sure the last line of the function is <em>return $views;</em></li>
+<li> After you make any changes, be sure to <strong>clear the Views' cache</strong>. You may do this from the <strong>Tools</strong> menu.</li>
+</ol>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/help/views.help.ini b/drupal/sites/default/boinc/modules/contrib/views/help/views.help.ini
new file mode 100644
index 0000000..51a7264
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/help/views.help.ini
@@ -0,0 +1,203 @@
+[advanced help settings]
+line break = TRUE
+
+[about]
+title = "What is Views?"
+weight = -40
+
+[getting-started]
+title = "Getting started"
+weight = -45
+
+[example-users-by-role]
+title = "Create a page to list users by role"
+parent = getting-started
+weight = -10
+
+[example-recent-stories]
+title = "Create a block of recent stories"
+parent = getting-started
+weight = 0
+
+[example-user-feed]
+title = "Create an RSS feed of user posts"
+parent = getting-started
+weight = 30
+
+[example-author-block]
+title = "Create a block of author's recent blog posts"
+parent = getting-started
+weight = 40
+
+[view-type]
+title = "View types"
+
+[display]
+title = "Displays"
+weight = -30
+
+[display-default]
+title = "Default display"
+parent = display
+weight = -20
+
+[display-page]
+title = "Page display"
+parent = display
+weight = -15
+
+[display-block]
+title = "Block display"
+parent = display
+weight = -10
+
+[display-attachment]
+title = "Attachment display"
+parent = display
+
+[display-feed]
+title = "Feed display"
+parent = display
+
+[argument]
+title = "Arguments"
+parent = about
+
+[field]
+title = "Fields"
+parent = about
+
+[sort]
+title = "Sorts"
+parent = about
+
+[filter]
+title = "Filters"
+parent = about
+
+[relationship]
+title = "Relationships"
+parent = about
+
+[style]
+title = "Output styles (View styles)"
+weight = -20 
+
+[style-row]
+title = "View row styles"
+parent = style
+weight = 10
+
+[style-list]
+title = "List output style"
+parent = style
+
+[style-unformatted]
+title = "Unformatted output style"
+parent = style
+weight = -6
+
+[style-table]
+title = "Table output style"
+parent = style
+weight = -5
+
+[style-grid]
+title = "Grid output style"
+parent = style
+weight = -5
+
+[style-rss]
+title = "RSS output style"
+parent = style
+weight = -5
+
+[style-fields]
+title = "Fields row style"
+parent = style-row
+
+[style-node]
+title = "Node row style"
+parent = style-row
+
+[style-node-rss]
+title = "Node RSS item row style"
+parent = style-row
+
+[style-comment-rss]
+title = "Comment RSS item row style"
+parent = style-row
+
+[style-summary-unformatted]
+title = "Unformatted summary style"
+parent = "style"
+weight = 10
+
+[style-summary]
+title = "List summary style"
+parent = "style"
+weight = 10
+
+[menu]
+title = "Menu options (page display)"
+
+[path]
+title = "Path options (page display)"
+
+[analyze-theme]
+title = "Theme information"
+
+[using-theme]
+title = "Using Views templates"
+parent = analyze-theme
+
+[theme-css]
+title = "Using CSS with Views"
+parent = analyze-theme
+
+[overrides]
+title = "What are overrides?"
+
+[embed]
+title = "Embedding a view into other parts of your site"
+
+[new]
+title = "What's new in Views 2"
+weight = -42
+
+[updating]
+title = "Updating your views from Views 1 to Views 2"
+
+; API related
+[api]
+title = "Views' API"
+weight = 100
+
+[api-tables]
+title = "Describing tables to Views"
+weight = -100
+parent = api
+
+[api-default-views]
+title = "Using default views in your module"
+weight = -90
+parent = api
+
+[api-handlers]
+title = "How Views handlers work"
+weight = -50
+parent = api
+
+[api-plugins]
+title = "How Views plugins work"
+weight = -40
+parent = api
+
+[api-upgrading]
+title = "Upgrading your module Views 1 to Views 2"
+parent = api
+
+[api-example]
+title = "Integrating the Node Example module"
+parent = api
+weight = 100
diff --git a/drupal/sites/default/boinc/modules/contrib/views/images/arrow-active.png b/drupal/sites/default/boinc/modules/contrib/views/images/arrow-active.png
new file mode 100644
index 0000000..3bbd3c2
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/images/arrow-active.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/images/expanded-options.png b/drupal/sites/default/boinc/modules/contrib/views/images/expanded-options.png
new file mode 100644
index 0000000..b7b755c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/images/expanded-options.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/images/overridden.gif b/drupal/sites/default/boinc/modules/contrib/views/images/overridden.gif
new file mode 100644
index 0000000..b781191
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/images/overridden.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/images/sprites.png b/drupal/sites/default/boinc/modules/contrib/views/images/sprites.png
new file mode 100644
index 0000000..9083622
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/images/sprites.png differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/images/status-active.gif b/drupal/sites/default/boinc/modules/contrib/views/images/status-active.gif
new file mode 100644
index 0000000..207e95c
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/views/images/status-active.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/admin.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/admin.inc
new file mode 100644
index 0000000..71b68c6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/admin.inc
@@ -0,0 +1,3237 @@
+<?php
+/**
+ * @file admin.inc
+ * Provides the Views' administrative interface.
+ */
+
+/**
+ * Page callback to list views in the system.
+ */
+function views_ui_list_views($arg = NULL) {
+  if ($arg != NULL) {
+    return drupal_not_found();
+  }
+
+  $output = theme('views_ui_list_views');
+  views_ui_check_advanced_help();
+  return $output;
+}
+
+/**
+ * Check to see if the advanced help module is installed, and if not put up
+ * a message.
+ *
+ * Only call this function if the user is already in a position for this to
+ * be useful.
+ */
+function views_ui_check_advanced_help() {
+  if (variable_get('views_hide_help_message', FALSE)) {
+    return;
+  }
+
+  if (!module_exists('advanced_help')) {
+    $filename = db_result(db_query("SELECT filename FROM {system} WHERE type = 'module' AND name = 'advanced_help'"));
+    if ($filename && file_exists($filename)) {
+      drupal_set_message(t('If you <a href="@modules">enable the advanced help module</a>, Views will provide more and better help. <a href="@hide">Hide this message.</a>', array('@modules' => url('admin/build/modules'),'@hide' => url('admin/build/views/tools'))));
+    }
+    else {
+      drupal_set_message(t('If you install the advanced help module from !href, Views will provide more and better help. <a href="@hide">Hide this message.</a>', array('!href' => l('http://drupal.org/project/advanced_help', 'http://drupal.org/project/advanced_help'), '@hide' => url('admin/build/views/tools'))));
+    }
+  }
+}
+
+/**
+ * Preprocess the list views theme
+ */
+function template_preprocess_views_ui_list_views(&$vars) {
+  $items = array();
+  $sorts = array();
+
+  // Add some js for easier gui.
+  views_add_js('view-list');
+
+  $views = views_get_all_views();
+
+  $token_enable = drupal_get_token('views-enable');
+  $token_disable = drupal_get_token('views-disable');
+
+  // Respond to a reset command by clearing session and doing a drupal goto
+  // back to the base URL.
+  if (isset($_GET['op']) && $_GET['op'] == t('Reset')) {
+    unset($_SESSION['views']['#admin']);
+    drupal_goto('admin/build/views');
+  }
+  if (count($_GET) <= 1) {
+    if (isset($_SESSION['views']['#admin']) && is_array($_SESSION['views']['#admin'])) {
+      $_GET += $_SESSION['views']['#admin'];
+    }
+  }
+  else {
+    $_SESSION['views']['#admin'] = $_GET;
+    unset($_SESSION['views']['#admin']['q']);
+  }
+
+  $form_state = array(
+    'views' => $views,
+    'input' => $_GET,
+    'method' => 'get',
+    'rerender' => TRUE,
+    'no_redirect' => TRUE,
+  );
+
+  $vars['widgets'] = drupal_build_form('views_ui_list_views_form', $form_state);
+
+  $vars['help_type_icon'] = theme('advanced_help_topic', 'views', 'view-type');
+
+  $base_tables = views_fetch_base_tables();
+
+  foreach ($views as $view) {
+    if ($form_state['values']['tag'] != 'all') {
+      if ($form_state['values']['tag'] == 'none') {
+        if (!empty($view->tag)) {
+          continue;
+        }
+      }
+      else if ($form_state['values']['tag'] != $view->tag) {
+        continue;
+      }
+    }
+    if ($form_state['values']['type'] != 'all' && $form_state['values']['type'] != $view->type) {
+      continue;
+    }
+
+    if ($form_state['values']['base'] != 'all' && $form_state['values']['base'] != $view->base_table) {
+      continue;
+    }
+
+    if ($form_state['values']['display'] != 'all' && empty($view->display[$form_state['values']['display']])) {
+      continue;
+    }
+
+    $item = new stdClass();
+    $item->ops = array();
+    if (empty($view->disabled)) {
+      $item->ops[] = l(t('Edit'), "admin/build/views/edit/$view->name");
+      $item->ops[] = l(t('Export'), "admin/build/views/export/$view->name");
+      $item->ops[] = l(t('Clone'), "admin/build/views/clone/$view->name");
+    }
+    if ($view->type != t('Default')) {
+      $text = $view->type == t('Overridden') ? t('Revert') : t('Delete');
+      $item->ops[] = l($text, "admin/build/views/delete/$view->name");
+    }
+    else {
+      if (empty($view->disabled)) {
+        $item->ops[] = l(t('Disable'), "admin/build/views/disable/$view->name", array('query' => drupal_get_destination() . '&token=' . $token_disable));
+      }
+      else {
+        $item->ops[] = l(t('Enable'), "admin/build/views/enable/$view->name", array('query' => drupal_get_destination() . '&token=' . $token_enable));
+      }
+    }
+
+    $item->ops = implode(' | ', $item->ops);
+    if (empty($view->display)) {
+      $item->path = t('Warning! Broken view!');
+    }
+    else {
+      $item->path = $raw_path = $view->get_path();
+      $item->path = $item->path && empty($view->disabled) && strpos($item->path, '%') === FALSE ? l($item->path, $item->path) : check_plain($item->path);
+    }
+
+    $item->type = $view->type;
+    $item->name = $view->name;
+
+    if (!empty($view->tag)) {
+      $item->tag = check_plain($view->tag);
+    }
+
+    $item->title = $view->get_title();
+    $item->base = !empty($base_tables[$view->base_table]['title']) ? $base_tables[$view->base_table]['title'] : t('Broken');
+
+    $item->displays = array();
+    foreach ($view->display as $display) {
+      if (!empty($display->handler->definition['admin'])) {
+        $item->displays[$display->handler->definition['admin']] = TRUE;
+      }
+    }
+
+    if ($item->displays) {
+      ksort($item->displays);
+      $item->displays = implode(', ', array_keys($item->displays));
+    }
+
+    $item->description = check_plain($view->description);
+    $item->classes = empty($view->disabled) ? 'view-enabled' : 'view-disabled';
+    $items[] = $item;
+
+    $sort = intval(empty($view->disabled) xor $form_state['values']['sort'] == 'asc');
+
+    switch ($form_state['values']['order']) {
+      case 'name':
+      default:
+        $sort .= strtolower($view->name);
+        break;
+      case 'title':
+        $sort .= strtolower($item->title);
+        break;
+      case 'path':
+        $sort .= strtolower($raw_path); // $path;
+        break;
+      case 'type':
+        $sort .= $view->type . $view->name;
+        break;
+      case 'tag':
+        $sort .= strtolower($view->tag);
+        break;
+      case 'desc':
+        $sort .= strtolower($view->description);
+        break;
+    }
+
+    $sorts[] = $sort;
+  }
+
+  if ($form_state['values']['sort'] == 'desc') {
+    arsort($sorts);
+  }
+  else {
+    asort($sorts);
+  }
+
+  $i = array();
+  foreach ($sorts as $id => $title) {
+    $i[] = $items[$id];
+  }
+
+  views_add_css('views-list');
+  $vars['views'] = $i;
+
+  $getting_started = theme('advanced_help_topic', 'views', 'getting-started', 'title');
+  if (!$getting_started) {
+    $getting_started = t('Install the advanced help module for the getting started');
+  }
+
+  $vars['help'] = t('Not sure what to do? Try the "!getting-started" page.', array('!getting-started' => $getting_started));
+}
+
+/**
+ * Provide a form for sorting and filtering the list of views.
+ */
+function views_ui_list_views_form(&$form_state) {
+  if (!variable_get('clean_url', FALSE)) {
+    $form['q'] = array(
+      '#type' => 'hidden',
+      '#value' => $_GET['q'],
+    );
+  }
+
+  $all = array('all' => t('- All -'));
+  $none = array('none' => t('- None -'));
+
+  $form['type'] = array(
+    '#type' => 'select',
+    '#title' => t('Storage'),
+    '#options' => array(
+      'all' => t('- All -'),
+      t('Normal') => t('Normal'),
+      t('Default') => t('Default'),
+      t('Overridden') => t('Overridden'),
+    ),
+    '#default_value' => 'all',
+  );
+
+  $bases = array();
+  foreach (views_fetch_base_tables() as $table => $info) {
+    $bases[$table] = $info['title'];
+  }
+
+  $form['base'] = array(
+    '#type' => 'select',
+    '#title' => t('Type'),
+    '#options' => array_merge($all, $bases),
+    '#default_value' => 'all',
+  );
+
+  $tags = array();
+
+  $extras = array();
+  foreach ($form_state['views'] as $name => $view) {
+    if (!empty($view->tag)) {
+      $tags[$view->tag] = $view->tag;
+    }
+  }
+
+  asort($tags);
+
+  $form['tag'] = array(
+    '#type' => 'select',
+    '#title' => t('Tag'),
+    '#options' => array_merge($all, $none, $tags),
+    '#default_value' => 'all',
+  );
+
+  $displays = array();
+  foreach (views_fetch_plugin_data('display') as $id => $info) {
+    if (!empty($info['admin'])) {
+      $displays[$id] = $info['admin'];
+    }
+  }
+
+  asort($displays);
+
+  $form['display'] = array(
+    '#type' => 'select',
+    '#title' => t('Displays'),
+    '#options' => array_merge($all, $displays),
+    '#default_value' => 'all',
+  );
+
+  $form['order'] = array(
+    '#type' => 'select',
+    '#title' => t('Sort by'),
+    '#options' => array(
+      'name' => t('Name'),
+      'title' => t('Title'),
+      'tag' => t('Tag'),
+      'path' => t('Path'),
+      'type' => t('Type'),
+      'desc' => t('Description'),
+    ),
+    '#default_value' => 'name',
+  );
+
+  $form['sort'] = array(
+    '#type' => 'select',
+    '#title' => t('Order'),
+    '#options' => array(
+      'asc' => t('Up'),
+      'desc' => t('Down'),
+    ),
+    '#default_value' => 'asc',
+  );
+
+  $form['submit'] = array(
+    '#name' => '', // so it won't in the $_GET args
+    '#type' => 'submit',
+    '#id' => 'edit-views-apply',
+    '#value' => t('Apply'),
+  );
+
+  if (!empty($_SESSION['views']['#admin'])) {
+    $form['reset'] = array(
+      '#type' => 'submit',
+      '#id' => 'edit-views-reset',
+      '#value' => t('Reset'),
+    );
+  }
+
+  $form['#theme'] = array('views_ui_list_views_form');
+  return $form;
+}
+
+function theme_views_ui_list_views_form($form) {
+  // Don't render these:
+  unset($form['form_id']);
+  unset($form['form_build_id']);
+  unset($form['form_token']);
+  return drupal_render($form);
+}
+
+/**
+ * Page callback for the live preview.
+ *
+ * @todo make this use a template
+ */
+function views_ui_preview($js, $view) {
+  // Take off the items we know so that we can have just the args passed
+  // in for later use.
+  $func_args = func_get_args();
+  array_shift($func_args); // $js
+  array_shift($func_args); // $view
+  $display_id = (count($func_args)) ? array_shift($func_args) : 'default';
+
+  $form_state = array(
+    'display_id' => $display_id,
+    'view_args' => $func_args ? implode('/', $func_args) : '',
+    'rerender' => TRUE,
+    'no_redirect' => TRUE,
+    'view' => &$view,
+    'ajax' => $js
+  );
+
+  $output = drupal_build_form('views_ui_preview_form', $form_state);
+  $args = array();
+  if (isset($form_state['view_args']) && $form_state['view_args'] !== '') {
+    $args = explode('/', $form_state['view_args']);
+  }
+
+  $errors = $view->validate();
+  if ($errors === TRUE) {
+    $view->ajax = $js;
+    $view->live_preview = TRUE;
+
+    // Store the current view URL for later use:
+    $view->set_display($form_state['display_id']);
+    $view->set_arguments($args);
+
+    if ($view->display_handler->get_option('path')) {
+      $path = $view->get_url();
+    }
+
+    // Make view links come back to preview.
+    $view->override_path = 'admin/build/views/nojs/preview/' . $view->name . '/' . $form_state['display_id'];
+
+    // also override $_GET['q'] so we get the pager
+    $_GET['q'] = $view->override_path;
+    if ($form_state['view_args']) {
+      $_GET['q'] .= '/' . $form_state['view_args'];
+    }
+
+    $preview = $view->preview($form_state['display_id'], $args);
+
+    // Get information from the preview for display.
+    if (!empty($view->build_info['query'])) {
+      $rows = array();
+      $query = db_prefix_tables($view->build_info['query']);
+      if ($view->build_info['query_args']) {
+        _db_query_callback($view->build_info['query_args'], TRUE);
+        $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query);
+      }
+      $rows[] = array('<strong>' . t('Query') . '</strong>', '<pre>' . check_plain($query) . '</pre>');
+      if (!empty($view->additional_queries)) {
+        $queries = '<strong>' . t('These queries were run during view rendering:') . '</strong>';
+        foreach ($view->additional_queries as $query) {
+          if ($queries) {
+            $queries .= "\n";
+          }
+          $queries .= t('[@time ms]', array('@time' => intval($query[1] * 100000) / 100)) . ' ' . check_plain($query[0]);
+        }
+
+        $rows[] = array('<strong>' . t('Other queries') . '</strong>', '<pre>' . $queries . '</pre>');
+      }
+
+      $rows[] = array('<strong>' . t('Title') . '</strong>', filter_xss_admin($view->get_title()));
+      if (isset($path)) {
+        $path = l($path, $path);
+      }
+      else {
+        $path = t('This display has no path.');
+      }
+
+      $rows[] = array('<strong>' . t('Path') . '</strong>', $path);
+
+      $rows[] = array('<strong>' . t('Query build time') . '</strong>', t('@time ms', array('@time' => intval($view->build_time * 100000) / 100)));
+      $rows[] = array('<strong>' . t('Query execute time') . '</strong>', t('@time ms', array('@time' => intval($view->execute_time * 100000) / 100)));
+      $rows[] = array('<strong>' . t('View render time') . '</strong>', t('@time ms', array('@time' => intval($view->render_time * 100000) / 100)));
+      drupal_alter('views_preview_info', $rows, $view);
+
+      $info = theme('table', array(), $rows);
+    }
+    else {
+      $info = theme('table', array(), array(array('<strong>' . t('Query') . '</strong>', t('No query was run'))));
+    }
+  }
+  else {
+    foreach ($errors as $error) {
+      drupal_set_message($error, 'error');
+    }
+    $preview = t('Unable to preview due to validation errors.');
+    $info = '';
+  }
+
+  $info = '<div class="views-query-info">' . $info . '</div>';
+
+  if (variable_get('views_ui_query_on_top', FALSE)) {
+    $output .= $info . $preview;
+  }
+  else {
+    $output .= $preview . $info;
+  }
+
+  if (!$js) {
+    views_add_css('views-admin');
+    drupal_set_title($view->get_title());
+    return $output;
+  }
+  else {
+    views_include('ajax');
+    $object = new stdClass();
+    if (!empty($view->js_settings)) {
+      $object->js = $view->js_settings;
+    }
+    $object->display = '';
+    if ($messages = theme('status_messages')) {
+      $object->display = '<div class="views-messages">' . $messages . '</div>';
+    }
+    $object->display .= $output;
+    $object->title = $view->get_title();
+    views_ajax_render($object);
+  }
+}
+
+/**
+ * Form for generating argument information for the live preview.
+ */
+function views_ui_preview_form(&$form_state) {
+  $view = &$form_state['view'];
+  $view->init_display();
+  $options = array();
+  foreach ($view->display as $id => $display) {
+    $options[$id] = $display->display_title;
+  }
+
+  $form['#attributes'] = array(
+    'class' => 'clear-block',
+  );
+
+  $form['display_id'] = array(
+    '#type' => 'select',
+    '#title' => t('Display'),
+    '#options' => $options,
+    '#default_value' => $form_state['display_id'],
+    '#id' => 'preview-display-id',
+  );
+
+  $form['args'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Arguments'),
+    '#default_value' => $form_state['view_args'],
+    '#description' => t('Separate arguments with a / as though they were a URL path.'),
+    '#id' => 'preview-args',
+  );
+
+  $form['preview'] = array(
+    '#type' => 'submit',
+    '#value' => t('Preview'),
+    '#id' => 'preview-submit',
+  );
+
+
+  $form['live_preview'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Automatic live preview'),
+    '#default_value' => !variable_get('views_ui_disable_live_preview', 0),
+  );
+
+  $form['#action'] = url("admin/build/views/nojs/preview/$view->name");
+  return $form;
+}
+
+/**
+ * Submit the preview form.
+ *
+ * This just takes the data and stores it on the form state in a
+ * known location. The caller will be responsible for using it.
+ */
+function views_ui_preview_form_submit(&$form, &$form_state) {
+  $form_state['display_id'] = $form_state['values']['display_id'];
+  $form_state['view_args'] = $form_state['values']['args'];
+}
+
+/**
+ * Page callback to add a new view.
+ */
+function views_ui_add_page() {
+  $form_state = array(
+    'view' => NULL
+  );
+
+  return drupal_build_form('views_ui_add_form', $form_state);
+}
+
+/**
+ * Page callback to add a new view.
+ */
+function views_ui_clone_page($view) {
+  $form_state = array(
+    'view' => $view->copy(),
+  );
+
+  drupal_set_title(t('Clone view %view', array('%view' => $view->name)));
+  return drupal_build_form('views_ui_add_form', $form_state);
+}
+
+/**
+ * Form constructor callback to create the views Add Form, phase 1.
+ */
+function views_ui_add_form(&$form_state) {
+  $view = $form_state['view'];
+  $form = array();
+
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('View name'),
+    '#description' => t('This is the unique name of the view. It must contain only alphanumeric characters and underscores; it is used to identify the view internally and to generate unique theming template names for this view. If overriding a module provided view, the name must not be changed or instead a new view will be created.'),
+    '#required' => TRUE,
+    '#maxlength' => 32,
+    '#default_value' => $view ? $view->name : '',
+    '#attributes' => array('dir'=>'ltr'),
+  );
+
+  $form['description'] = array(
+    '#type' => 'textfield',
+    '#title' => t('View description'),
+    '#description' => t('This description will appear on the Views administrative UI to tell you what the view is about.'),
+    '#default_value' => $view ? $view->description : '',
+    '#maxlength' => 255,
+  );
+
+  $form['tag'] = array(
+    '#type' => 'textfield',
+    '#title' => t('View tag'),
+    '#description' => t('Enter an optional tag for this view; it is used only to help sort views on the administrative page.'),
+    '#default_value' => $view ? $view->tag : '',
+    '#autocomplete_path' => 'admin/views/ajax/autocomplete/tag',
+  );
+
+  $base_tables = array();
+  foreach (views_fetch_base_tables() as $table => $info) {
+    $base_tables[$table] = $info['title'] . '<div class="description">' . $info['description'] . '</div>';
+  }
+
+  $form['base_table'] = array(
+    '#type' => 'radios',
+    '#title' => t('View type'),
+    '#description' => t('The view type is the primary table for which information is being retrieved. The view type controls what arguments, fields, sort criteria and filters are available, so once this is set it <strong>cannot be changed</strong>.'),
+    '#default_value' => $view ? $view->base_table : 'node',
+    '#options' => $base_tables,
+  );
+
+  if ($view) {
+    $form['base_table']['#disabled'] = TRUE;
+  }
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Next'),
+    '#validate' => array('views_ui_add_form_validate'),
+    '#submit' => array('views_ui_add_form_submit'),
+  );
+
+  return $form;
+}
+
+/**
+ * Validate the add view form.
+ */
+function views_ui_add_form_validate($form, &$form_state) {
+  $name = $form_state['values']['name'];
+
+  // View name must be alphanumeric or underscores, no other punctuation.
+  if (preg_match('/[^a-zA-Z0-9_]/', $name) || is_numeric($name)) {
+    form_error($form['name'], t('View name must be alphanumeric or underscores only, but cannot be numeric.'));
+  }
+
+  // View name must already exist.
+  $view = views_get_view($form_state['values']['name']);
+  if ($view && $view->type != t('Default')) {
+    form_error($form['name'], t('You must use a unique name for this view.'));
+  }
+}
+
+/**
+ * Process the add view form
+ */
+function views_ui_add_form_submit($form, &$form_state) {
+  $view = $form_state['view'] ? $form_state['view'] : views_new_view();
+  $view->name = $form_state['values']['name'];
+  $view->description = $form_state['values']['description'];
+  $view->tag = $form_state['values']['tag'];
+  $view->core = VERSION;
+  if (empty($form['base_table']['#disabled'])) {
+    $view->base_table = $form_state['values']['base_table'];
+  }
+
+  views_ui_cache_set($view);
+  $form_state['redirect'] ='admin/build/views/edit/' . $view->name;
+}
+
+/**
+ * Page to delete a view.
+ */
+function views_ui_delete_confirm(&$form_state, $view) {
+  $form_state['view'] = &$view;
+  $form = array();
+
+  $cancel = 'admin/build/views';
+  if (!empty($_REQUEST['cancel'])) {
+    $cancel = $_REQUEST['cancel'];
+  }
+
+  if ($view->type == t('Overridden')) {
+    $title = t('Are you sure you want to revert the view %name?', array('%name' => $view->name));
+    $desc = t('Reverting the view will delete the view that is in the database, reverting it to the original default view. Any changes you have made will be lost and cannot be recovered.');
+    $button = t('Revert');
+  }
+  else {
+    $title = t('Are you sure you want to delete the view %name?', array('%name' => $view->name));
+    $desc = t('Deleting a view cannot be undone.');
+    $button = t('Delete');
+  }
+
+  return confirm_form($form,
+                  $title,
+                  $cancel,
+                  $desc,
+                  $button,
+                  t('Cancel'));
+}
+
+/**
+ * Submit handler to delete a view.
+ */
+function views_ui_delete_confirm_submit(&$form, &$form_state) {
+  $form_state['view']->delete();
+  views_object_cache_clear('view', $form_state['view']->name);
+  drupal_set_message(t('The view has been deleted.'));
+  $form_state['redirect'] = 'admin/build/views';
+}
+
+/**
+ * Page to delete a view.
+ */
+function views_ui_break_lock_confirm(&$form_state, $view) {
+  $form_state['view'] = &$view;
+  $form = array();
+
+  if (empty($view->locked)) {
+    return t('There is no lock on view %view to break.', array('%name' => $view->name));
+  }
+
+  $cancel = 'admin/build/views/edit/' . $view->name;
+
+  $account = user_load($view->locked->uid);
+  return confirm_form($form,
+                  t('Are you sure you want to break the lock on view %name?',
+                  array('%name' => $view->name)),
+                  $cancel,
+                  t('By breaking this lock, any unsaved changes made by !user will be lost!', array('!user' => theme('username', $account))),
+                  t('Break lock'),
+                  t('Cancel'));
+}
+
+/**
+ * Submit handler to break_lock a view.
+ */
+function views_ui_break_lock_confirm_submit(&$form, &$form_state) {
+  db_query("DELETE FROM {views_object_cache} WHERE obj = 'view' AND name = '%s'", $form_state['view']->name);
+  $form_state['redirect'] = 'admin/build/views/edit/' . $form_state['view']->name;
+  drupal_set_message(t('The lock has been broken and you may now edit this view.'));
+}
+
+/**
+ * The main view edit page
+ */
+function views_ui_edit_page($view) {
+  drupal_set_title(t('Edit view %view', array('%view' => $view->name)));
+  $output = theme('views_ui_edit_view', $view);
+  views_ui_check_advanced_help();
+  return $output;
+}
+
+/**
+ * Export a view for cut & paste.
+ */
+function views_ui_export_page(&$form_state, $view) {
+  $code = $view->export();
+  $lines = substr_count($code, "\n");
+  $form['code'] = array(
+    '#type' => 'textarea',
+    '#title' => $view->name,
+    '#default_value' => $code,
+    '#rows' => $lines,
+  );
+  return $form;
+}
+
+/**
+ * Import a view from cut & paste
+ */
+function views_ui_import_page(&$form_state) {
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('View name'),
+    '#description' => t('Enter the name to use for this view if it is different from the source view. Leave blank to use the name of the view.'),
+  );
+
+  $form['view'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Paste view code here'),
+    '#required' => TRUE,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Import'),
+    '#submit' => array('views_ui_import_submit'),
+    '#validate' => array('views_ui_import_validate'),
+  );
+  return $form;
+}
+
+/**
+ * Validate handler to import a view
+ */
+function views_ui_import_validate($form, &$form_state) {
+  $view = '';
+  views_include('view');
+  // Be forgiving if someone pastes views code that starts with '<?php'.
+  if (substr($form_state['values']['view'], 0, 5) == '<?php') {
+    $form_state['values']['view'] = substr($form_state['values']['view'], 5);
+  }
+  ob_start();
+  eval($form_state['values']['view']);
+  ob_end_clean();
+
+  if (!is_object($view)) {
+    return form_error($form['view'], t('Unable to interpret view code.'));
+  }
+
+  if (empty($view->api_version) || $view->api_version < 2) {
+    // Check for some value that would only exist on a Views 1 view.
+    if (isset($view->url) || isset($view->page) || isset($view->block)) {
+      views_include('convert');
+      $view = views1_import($view);
+      drupal_set_message(t('You are importing a view created in Views version 1. You may need to adjust some parameters to work correctly in version 2.'), 'warning');
+    }
+    else {
+      form_error($form['view'], t('That view is not compatible with this version of Views.'));
+    }
+  }
+  elseif ($view->api_version > views_api_version()) {
+    form_error($form['view'], t('That view is created for the version @import_version of views, but you only have @api_version', array(
+      '@import_version' => $view->api_version,
+      '@api_version' => views_api_version())));
+  }
+
+  // View name must be alphanumeric or underscores, no other punctuation.
+  if (!empty($form_state['values']['name']) && preg_match('/[^a-zA-Z0-9_]/', $form_state['values']['name'])) {
+    form_error($form['name'], t('View name must be alphanumeric or underscores only.'));
+  }
+
+  if ($form_state['values']['name']) {
+    $view->name = $form_state['values']['name'];
+  }
+
+  $test = views_get_view($view->name);
+  if ($test && $test->type != t('Default')) {
+    form_set_error('', t('A view by that name already exists; please choose a different name'));
+  }
+
+  $view->init_display();
+
+  $broken = FALSE;
+  // Make sure that all plugins and handlers needed by this view actually exist.
+  foreach ($view->display as $id => $display) {
+    if (empty($display->handler) || !empty($display->handler->broken)) {
+      drupal_set_message(t('Display plugin @plugin is not available.', array('@plugin' => $display->display_plugin)), 'error');
+      $broken = TRUE;
+      continue;
+    }
+
+    $plugin = views_get_plugin('style', $display->handler->get_option('style_plugin'));
+    if (!$plugin) {
+      drupal_set_message(t('Style plugin @plugin is not available.', array('@plugin' => $display->handler->get_option('style_plugin'))), 'error');
+      $broken = TRUE;
+    }
+    else if ($plugin->uses_row_plugin()) {
+      $plugin = views_get_plugin('row', $display->handler->get_option('row_plugin'));
+      if (!$plugin) {
+        drupal_set_message(t('Row plugin @plugin is not available.', array('@plugin' => $display->handler->get_option('row_plugin'))), 'error');
+        $broken = TRUE;
+      }
+    }
+
+    foreach (views_object_types() as $type => $info) {
+      $handlers = $display->handler->get_handlers($type);
+      if ($handlers) {
+        foreach ($handlers as $id => $handler) {
+          if ($handler->broken()) {
+            drupal_set_message(t('@type handler @table. at field is not available.', array(
+              '@type' => $info['stitle'],
+              '@table' => $handler->table,
+              '@field' => $handler->field,
+            )), 'error');
+            $broken = TRUE;
+          }
+        }
+      }
+    }
+  }
+
+  if ($broken) {
+    form_set_error('', t('Unable to import view.'));
+  }
+
+  $form_state['view'] = &$view;
+}
+
+/**
+ * Submit handler for view import
+ */
+function views_ui_import_submit($form, &$form_state) {
+  // Store in cache and then go to edit.
+  views_ui_cache_set($form_state['view']);
+  $form_state['redirect'] = 'admin/build/views/edit/' . $form_state['view']->name;
+}
+
+/**
+ * The main edit view form, which is really just a save/cancel/delete button.
+ */
+function views_ui_edit_view_form(&$form_state, $view) {
+  $form['buttons']['save'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+    '#validate' => array('views_ui_edit_view_form_validate'),
+    '#submit' => array('views_ui_edit_view_form_submit'),
+  );
+
+  $form['buttons']['cancel'] = array(
+    '#type' => 'submit',
+    '#value' => t('Cancel'),
+    '#submit' => array('views_ui_edit_view_form_cancel'),
+  );
+
+  if (is_numeric($view->vid)) {
+    $form['buttons']['delete'] = array(
+      '#type' => 'submit',
+      '#value' => $view->type == t('Overridden') ? t('Revert') : t('Delete'),
+      '#submit' => array('views_ui_edit_view_form_delete'),
+    );
+  }
+
+  $form_state['view'] = &$view;
+  return $form;
+}
+
+/**
+ * Validate that a view is complete and whole.
+ */
+function views_ui_edit_view_form_validate($form, &$form_state) {
+  // Do not validate cancel or delete or revert.
+  if (empty($form_state['clicked_button']['#value']) || $form_state['clicked_button']['#value'] != t('Save')) {
+    return;
+  }
+
+  $errors = $form_state['view']->validate();
+  if ($errors !== TRUE) {
+    foreach ($errors as $error) {
+      form_set_error('', $error);
+    }
+  }
+}
+
+/**
+ * Submit handler for the edit view form.
+ */
+function views_ui_edit_view_form_submit($form, &$form_state) {
+  // Go through and remove displayed scheduled for removal.
+  foreach ($form_state['view']->display as $id => $display) {
+    if (!empty($display->deleted)) {
+      unset($form_state['view']->display[$id]);
+    }
+  }
+
+  $form_state['view']->save();
+  drupal_set_message(t('The view %name has been saved.', array('%name' => $form_state['view']->name)));
+
+  // Make sure menu items get rebuilt as neces
+  menu_rebuild();
+
+  // Clear the views cache.
+  cache_clear_all('*', 'cache_views');
+
+  // Clear the page cache.
+  cache_clear_all();
+
+  // Remove this view from cache so we can edit it properly.
+  views_object_cache_clear('view', $form_state['view']->name);
+}
+
+/**
+ * Submit handler for the edit view form.
+ */
+function views_ui_edit_view_form_cancel($form, &$form_state) {
+  // Remove this view from cache so edits will be lost.
+  views_object_cache_clear('view', $form_state['view']->name);
+  if (empty($form['view']->vid)) {
+    // I seem to have to drupal_goto here because I can't get fapi to
+    // honor the redirect target. Not sure what I screwed up here.
+    drupal_goto('admin/build/views');
+  }
+}
+
+function views_ui_edit_view_form_delete($form, &$form_state) {
+  unset($_REQUEST['destination']);
+  // Redirect to the delete confirm page
+  $form_state['redirect'] = array('admin/build/views/delete/' . $form_state['view']->name, 'cancel=admin/build/views/edit/' . $form_state['view']->name . '&' . drupal_get_destination());
+}
+
+/**
+ * Preprocess the view edit page.
+ */
+function template_preprocess_views_ui_edit_view(&$vars) {
+  $view = &$vars['view'];
+
+  $vars['save_button'] = drupal_get_form('views_ui_edit_view_form', $view);
+
+  $table = views_fetch_data($view->base_table);
+  $vars['base_table'] = !empty($table['table']['base']['title']) ?
+    $table['table']['base']['title'] : t('Unknown or missing table name');
+
+  views_include('tabs');
+  $tabs = new views_tabset;
+
+  $vars['message'] = '<div class="message">' . t("Click on an item to edit that item's details.") . '</div>';
+
+  if (!$view->set_display('default')) {
+    drupal_set_message(t('This view has a broken default display and cannot be used.'), 'error');
+  }
+
+  foreach ($view->display as $display) {
+    list($title, $body) = views_ui_display_tab($view, $display);
+    // The first display is the default.
+    $tabs->set($display->id, $title, $body);
+  }
+
+  // This is the area that will render beneath the links
+  $form_state = array(
+    'view' => &$view,
+    'ajax' => FALSE,
+  );
+
+  $display_button = drupal_build_form('views_ui_add_display_form', $form_state);
+  $analyze_button = drupal_get_form('views_ui_analyze_view_button', $view);
+  $tabs->add_extra($display_button . $analyze_button);
+
+  $vars['tabs'] = $tabs->render();
+
+  $form_state = array(
+    'display_id' => 'default',
+    'view_args' => '',
+    'rerender' => FALSE,
+    'no_redirect' => TRUE,
+    'view' => &$view,
+    'input' => array(),
+  );
+  $vars['preview'] = drupal_build_form('views_ui_preview_form', $form_state);
+
+  $vars['locked'] = NULL;
+  if (isset($view->locked) && is_object($view->locked)) {
+    $account = user_load($view->locked->uid);
+    $vars['locked'] = theme('username', $account);
+    $vars['lock_age'] = format_interval(time() - $view->locked->updated);
+    $vars['break'] = url('admin/build/views/break-lock/' . $view->name);
+  }
+
+  $vars['quick_links_raw'] = array(
+    array(
+      'title' => t('Export'),
+      'alt' => t("Export this view"),
+      'href' => "admin/build/views/export/$view->name",
+    ),
+    array(
+      'title' => t('Clone'),
+      'alt' => t("Create a copy of this view"),
+      'href' => "admin/build/views/clone/$view->name",
+    ),
+  );
+
+  $paths = array();
+  foreach ($view->display as $id => $display) {
+    if (!empty($display->handler) && $display->handler->has_path()) {
+      $path = $display->handler->get_path();
+      if (strpos($path, '%') === FALSE && !isset($paths[$path])) {
+        $vars['quick_links_raw'][] = array(
+          'title' => t('View "@display"', array('@display' => $display->display_title)),
+          'alt' => t("Go to the real page for this display"),
+          'href' => $path,
+        );
+        // Displays can have the same path; no point in showing more than one link.
+        $paths[$path] = TRUE;
+      }
+    }
+  }
+
+  $vars['quick_links'] = theme('links', $vars['quick_links_raw']);
+  views_add_css('views-admin');
+  views_add_js('ajax');
+  drupal_add_js('misc/jquery.form.js');
+
+  // Also add any js files required by plugins:
+  $plugins = views_fetch_plugin_data();
+  foreach ($plugins as $type => $type_plugins) {
+    foreach ($type_plugins as $name => $plugin) {
+      if (!empty($plugin['js'])) {
+        foreach ($plugin['js'] as $file) {
+          drupal_add_js($file);
+        }
+      }
+    }
+  }
+
+  $settings = array('views' => array('ajax' => array(
+    'id' => '#views-ajax-pad',
+    'title' => '#views-ajax-title',
+    'defaultForm' => $vars['message'],
+  )));
+
+  drupal_add_js($settings, 'setting');
+}
+
+function template_preprocess_views_ui_edit_tab(&$vars) {
+  $view = $vars['view'];
+  $display = $vars['display'];
+  $plugin = $display->handler->definition;
+
+  $top = $left = $middle = $right = '';
+
+  // If this form was submitted it was already handled, so force it not to
+  // submit again.
+
+  $vars['remove'] = '';
+  $vars['clone'] = '';
+  if (empty($plugin['no remove'])) {
+    if (!empty($_POST['form_id']) && in_array($_POST['form_id'], array('views_ui_remove_display_form', 'views_ui_clone_display_form'))) {
+      unset($_POST['form_id']);
+    }
+    $form_state = array('view' => &$view, 'display_id' => $display->id, 'ajax' => FALSE);
+    $vars['remove'] = drupal_build_form('views_ui_remove_display_form', $form_state);
+    $vars['clone'] = drupal_build_form('views_ui_clone_display_form', $form_state);
+  }
+
+  // basic fields
+  $vars['title'] = check_plain($display->display_title);
+  $vars['description'] = check_plain($plugin['help']);
+
+  // Special fields if tihs is the default display.
+  $vars['default'] = ($display->id == 'default');
+  $vars['details_class'] = views_ui_item_css('details');
+  if (!empty($view->changed_sections['details'])) {
+    $vars['details_changed'] = TRUE;
+  }
+
+  $tag = empty($view->tag) ? t('None') : $view->tag;
+  $vars['details'] = t('Description') . '/' . t('Tag') . ': ' . l($tag, "admin/build/views/nojs/details/$view->name", array('attributes' => array('class' => 'views-ajax-link')));
+
+  // Calculate options from display plugin.
+  $options = $categories = array();
+  $display->handler->options_summary($categories, $options);
+
+  // Build all of the options we were returned and put them into the
+  // category data fields.
+  foreach ($options as $id => $option) {
+    if (empty($categories[$option['category']]['data'])) {
+      $categories[$option['category']]['data'] = array();
+    }
+    $categories[$option['category']]['data'][$id] = array();
+    $data = &$categories[$option['category']]['data'][$id];
+    $data['content'] = '';
+    $data['links'] = '';
+    $data['overridden'] = FALSE;
+    $data['defaulted'] = FALSE;
+
+    // If there are optional links, build them first so they float properly.
+    if (!empty($option['links'])) {
+      foreach ($option['links'] as $link_id => $link_value) {
+        $data['links'] .= $display->handler->option_link($link_value, $link_id, 'views-button-configure');
+      }
+    }
+    if (!empty($option['title'])) {
+      $data['content'] .= $option['title'] . ': ';
+    }
+
+    $data['content'] .= $display->handler->option_link($option['value'], $id, '', empty($option['desc']) ? '' : $option['desc']);
+    if (!empty($display->handler->options['defaults'][$id])) {
+      $display_id = 'default';
+      $data['defaulted'] = TRUE;
+    }
+    else {
+      $display_id = $display->id;
+      if (!$display->handler->is_default_display()) {
+        if ($display->handler->defaultable_sections($id)) {
+          $data['overridden'] = TRUE;
+        }
+      }
+    }
+    $data['class'] = views_ui_item_css($display_id . '-' . $id);
+    if (!empty($view->changed_sections[$display_id . '-' . $id])) {
+      $data['changed'] = TRUE;
+    }
+  }
+
+  $vars['categories'] = $categories;
+
+  // Add a help icon
+  if (isset($plugin['help topic'])) {
+    $vars['display_help_icon'] = theme('advanced_help_topic', $plugin['module'], $plugin['help topic']);
+  }
+  else {
+    $vars['display_help_icon'] = '';
+  }
+
+  // Fetch style plugin info because it has some effect on how/what we render.
+  $style_plugin = $display->handler->get_plugin();
+
+  $vars['fields'] = '';
+  $vars['fields'] = theme('views_ui_edit_item', 'field', $view, $display, !($style_plugin && $style_plugin->uses_fields()));
+  $vars['relationships'] = theme('views_ui_edit_item', 'relationship', $view, $display);
+  $vars['arguments'] = theme('views_ui_edit_item', 'argument', $view, $display);
+  $vars['filters'] = theme('views_ui_edit_item', 'filter', $view, $display);
+  $vars['sorts'] = theme('views_ui_edit_item', 'sort', $view, $display);
+}
+
+/**
+ * Generate the summary output for a single display to render in a tab.
+ */
+function views_ui_display_tab($view, $display) {
+  if (isset($display->handler)) {
+    $plugin = $display->handler->definition;
+  }
+  if (empty($plugin)) {
+    $title = isset($display->display_title) ? $display->display_title : t('Invalid');
+    return array($title, t("Error: Display @display refers to a plugin named '@plugin', but that plugin doesn't exist!", array('@display' => $display->id, '@plugin' => $display->display_plugin)));
+
+    // @todo We can do a better 'plugin does not exist' tab.
+  }
+
+  // The display should always be initialized prior to this call.
+  if (empty($display->handler)) {
+    return FALSE;
+  }
+
+  $body = theme('views_ui_edit_tab', $view, $display);
+  return array($display->display_title, $body);
+}
+
+/**
+ * Add information about a section to a display.
+ */
+function template_preprocess_views_ui_edit_item(&$vars) {
+  $type = $vars['type'];
+  $view = $vars['view'];
+  $display = $vars['display'];
+
+  $types = views_object_types();
+
+  $vars['overridden'] = FALSE;
+  $vars['defaulted'] = FALSE;
+
+  if ($vars['no_fields']) {
+    $vars['title'] = $types[$type]['title'];
+    $vars['item_help_icon'] = theme('advanced_help_topic', 'views', $type);
+    $vars['rearrange'] = NULL;
+    $vars['add'] = NULL;
+    return;
+  }
+
+  $vars['rearrange'] = l('<span>' . t('Rearrange') . '</span>', "admin/build/views/nojs/rearrange/$view->name/$display->id/$type", array('attributes' => array('class' => 'views-button-rearrange views-ajax-link', 'title' => t('Rearrange')), 'html' => true));
+
+  $vars['add'] = l('<span>' . t('Add') . '</span>', "admin/build/views/nojs/add-item/$view->name/$display->id/$type", array('attributes' => array('class' => 'views-button-add views-ajax-link', 'title' => t('Add')), 'html' => true));
+
+  if (!$display->handler->is_default_display()) {
+    if (!$display->handler->is_defaulted($types[$type]['plural'])) {
+      $vars['overridden'] = TRUE;
+    }
+    else {
+      $vars['defaulted'] = TRUE;
+    }
+  }
+
+  if ($display->display_plugin != 'default') {
+    $vars['title'] = l($types[$type]['title'], "admin/build/views/nojs/config-type/$view->name/$display->id/$type", array('attributes' => array('class' => 'views-ajax-link')));
+  }
+  else {
+    $vars['title'] = $types[$type]['title'];
+  }
+
+  $fields = array();
+
+  static $relationships = NULL;
+  if (!isset($relationships)) {
+    // Get relationship labels
+    $relationships = array();
+    // @todo: get_handlers()
+    $handlers = $display->handler->get_option('relationships');
+    if ($handlers) {
+      foreach ($handlers as $id => $relationship) {
+        $handler = views_get_handler($relationship['table'], $relationship['field'], 'relationship');
+        if (empty($handler)) {
+          continue;
+        }
+        $handler->init($view, $relationship);
+        $relationships[$id] = $handler->label();
+      }
+    }
+  }
+
+  // @todo: get_handlers()
+  foreach ($display->handler->get_option($types[$type]['plural']) as $id => $field) {
+    $fields[$id] = array();
+
+    $handler = views_get_handler($field['table'], $field['field'], $type);
+    if (empty($handler)) {
+      $fields[$id]['class'] = 'broken';
+      $field_name = t('Broken/missing handler: @table > @field', array('@table' => $field['table'], '@field' => $field['field']));
+      $fields[$id]['title'] = l($field_name, "admin/build/views/nojs/config-item/$view->name/$display->id/$type/$id", array('attributes' => array('class' => 'views-ajax-link'), 'html' => TRUE));
+      $fields[$id]['info'] = '';
+      continue;
+    }
+    $handler->init($view, $field);
+
+    $field_name = $handler->ui_name(TRUE);
+    if (!empty($field['relationship']) && !empty($relationships[$field['relationship']])) {
+      $field_name = '(' . $relationships[$field['relationship']] . ') ' . $field_name;
+    }
+
+    $fields[$id]['title'] = l($field_name, "admin/build/views/nojs/config-item/$view->name/$display->id/$type/$id", array('attributes' => array('class' => 'views-ajax-link'), 'html' => TRUE));
+    $fields[$id]['class'] = views_ui_item_css($display->id . '-' . $type . '-' . $id);
+    if (!empty($view->changed_sections[$display->id . '-' . $type . '-' . $id])) {
+      $fields[$id]['changed'] = TRUE;
+    }
+    $fields[$id]['info'] = $handler->admin_summary();
+
+    if ($handler->has_extra_options()) {
+      $fields[$id]['links'] = l('<span>' . t('Settings') . '</span>', "admin/build/views/nojs/config-item-extra/$view->name/$display->id/$type/$id", array('attributes' => array('class' => 'views-button-configure views-ajax-link', 'title' => t('Settings')), 'html' => true));
+    }
+
+    if ($handler->needs_style_plugin()) {
+      $style_plugin = views_fetch_plugin_data('style', $handler->options['style_plugin']);
+      $style_title = empty($style_plugin['title']) ? t('Missing style plugin') : $style_plugin['title'];
+      $pid = $id . '-style-plugin';
+
+      if (!empty($style_plugin['uses options'])) {
+        $fields[$pid]['links'] = l('<span>' . t('Change settings for this style') . '</span>', "admin/build/views/nojs/config-style/$view->name/$display->id/$type/$id", array('attributes' => array('class' => 'views-button-configure views-ajax-link', 'title' => t('Settings')), 'html' => true));
+      }
+
+      $fields[$pid]['title'] = ' ' . t('  Style: !style', array('!style' => l($style_title, "admin/build/views/nojs/change-style/$view->name/$display->id/$type/$id", array('attributes' => array('class' => 'views-ajax-link')))));
+      $fields[$pid]['class'] = views_ui_item_css($display->id . '-' . $type . '-' . $pid);
+      if (!empty($view->changed_sections[$display->id . '-' . $type . '-' . $pid])) {
+        $fields[$pid]['changed'] = TRUE;
+      }
+      $fields[$pid]['info'] = '';
+    }
+  }
+
+  $vars['fields'] = $fields;
+  $vars['item_help_icon'] = theme('advanced_help_topic', 'views', $type);
+}
+
+/**
+ * Regenerate the tabs for AJAX updates.
+ */
+function views_ui_regenerate_tabs(&$view, $display_id = NULL, $object = NULL) {
+  if (empty($display_id)) {
+    $displays = array_keys($view->display);
+  }
+  elseif (!is_array($display_id)) {
+    $displays = array($display_id);
+    if ($display_id != 'default') {
+      $displays[] = 'default';
+    }
+  }
+  else {
+    $displays = $display_id;
+  }
+
+  if (!$view->set_display('default')) {
+    views_ajax_render(t('Invalid display id found while regenerating tabs'));
+  }
+
+  if (!is_object($object)) {
+    $object = new stdClass();
+  }
+
+  $object->replace = array();
+  foreach ($displays as $id) {
+    list($title, $body) = views_ui_display_tab($view, $view->display[$id]);
+    $object->replace['#views-tab-' . $id] = $body;
+    $object->replace['#views-tab-title-' . $id] = check_plain($title);
+  }
+
+  if (!empty($view->changed)) {
+    $object->changed = TRUE;
+  }
+
+  views_ajax_render($object);
+}
+
+/**
+ * Provide standard buttons for the forms to make it easy. Also provide
+ * a hidden op operator because the forms plugin doesn't seem to properly
+ * provide which button was clicked.
+ */
+function views_ui_standard_form_buttons(&$form, &$form_state, $form_id, $name = NULL, $third = NULL, $submit = NULL) {
+  $form['buttons'] = array(
+    '#prefix' => '<div class="clear-block"><div class="form-buttons">',
+    '#suffix' => '</div></div>',
+  );
+
+  if (empty($name)) {
+    $name = t('Update');
+  }
+
+  // Add the override and update button
+  if ($name == t('Update default display')) {
+    $form['buttons']['override_update'] = array(
+      '#type' => 'submit',
+      '#value' => t('Update and override'),
+      '#submit' => array(
+        'views_ui_edit_display_form_override_update_section',
+        'views_ui_standard_submit',
+        'views_ui_edit_display_form_override_update',
+      ),
+    );
+  }
+
+  if (empty($form_state['ok_button'])) {
+    // but be sure submit button validates!
+    $form['buttons']['submit'] = array(
+      '#type' => 'submit',
+      '#value' => $name,
+      '#submit' => array('views_ui_standard_submit', $form_id . '_submit'),
+    );
+  }
+
+  $cancel_submit = function_exists($form_id . '_cancel') ? $form_id . '_cancel' : 'views_ui_standard_cancel';
+  $form['buttons']['cancel'] = array(
+    '#type' => 'submit',
+    '#value' => empty($form_state['ok_button']) ? t('Cancel') : t('Ok'),
+    '#submit' => array($cancel_submit),
+    '#validate' => array(),
+  );
+
+  if ($third) {
+    if (empty($submit)) {
+      $submit = 'third';
+    }
+    $third_submit = function_exists($form_id . '_' . $submit) ? $form_id . '_' . $submit : 'views_ui_standard_cancel';
+
+    $form['buttons'][$submit] = array(
+      '#type' => 'submit',
+      '#value' => $third,
+      '#validate' => array(),
+      '#submit' => array($third_submit),
+    );
+  }
+
+  // Compatibility, to be removed later:
+  // We used to set these items on the form, but now we want them on the $form_state:
+  if (isset($form['#title'])) {
+    $form_state['title'] = $form['#title'];
+  }
+  if (isset($form['#help_topic'])) {
+    $form_state['help_topic'] = $form['#help_topic'];
+  }
+  if (isset($form['#help_module'])) {
+    $form_state['help_module'] = $form['#help_module'];
+  }
+  if (isset($form['#url'])) {
+    $form_state['url'] = $form['#url'];
+  }
+  if (isset($form['#js'])) {
+    if (!empty($form_state['js settings']) && is_array($form_state['js settings'])) {
+      $form_state['js settings'] = array_merge($form_state['js settings'], $form['#js']);
+    }
+    else {
+      $form_state['js settings'] = $form['#js'];
+    }
+  }
+  if (isset($form['#section'])) {
+    $form_state['#section'] = $form['#section'];
+  }
+  // Finally, we never want these cached -- our object cache does that for us.
+  $form['#no_cache'] = TRUE;
+
+  // If this isn't an ajaxy form, then we want to set the title.
+  if (!empty($form['#title'])) {
+    drupal_set_title($form['#title']);
+  }
+  views_add_css('views-admin');
+}
+
+/**
+ * Basic submit handler applicable to all 'standard' forms
+ */
+function views_ui_standard_submit($form, &$form_state) {
+  if (!empty($form['#section'])) {
+    $form_state['view']->changed_sections[$form['#section']] = TRUE;
+  }
+}
+
+/**
+ * Submit handler for cancel button
+ */
+function views_ui_standard_cancel($form, &$form_state) {
+  $form_state['redirect'] = 'admin/build/views/edit/' . $form_state['view']->name;
+}
+
+// --------------------------------------------------------------------------
+// Various subforms for editing the pieces of a view.
+
+function views_ui_ajax_forms($key = NULL) {
+  $forms = array(
+    'display' => array(
+      'form_id' => 'views_ui_edit_display_form',
+      'args' => array('section'),
+    ),
+    'remove-display' => array(
+      'form_id' => 'views_ui_remove_display_form',
+      'args' => array(),
+    ),
+    'config-type' => array(
+      'form_id' => 'views_ui_config_type_form',
+      'args' => array('type'),
+    ),
+    'rearrange' => array(
+      'form_id' => 'views_ui_rearrange_form',
+      'args' => array('type'),
+    ),
+    'add-item' => array(
+      'form_id' => 'views_ui_add_item_form',
+      'args' => array('type'),
+    ),
+    'config-item' => array(
+      'form_id' => 'views_ui_config_item_form',
+      'args' => array('type', 'id'),
+    ),
+    'config-item-extra' => array(
+      'form_id' => 'views_ui_config_item_extra_form',
+      'args' => array('type', 'id'),
+    ),
+    'change-style' => array(
+      'form_id' => 'views_ui_change_style_form',
+      'args' => array('type', 'id'),
+    ),
+    'config-style' => array(
+      'form_id' => 'views_ui_config_style_form',
+      'args' => array('type', 'id'),
+    ),
+  );
+
+  if ($key) {
+    return !empty($forms[$key]) ? $forms[$key] : NULL;
+  }
+
+  return $forms;
+}
+
+/**
+ * Build a form identifier that we can use to see if one form
+ * is the same as another. Since the arguments differ slightly
+ * we do a lot of spiffy concenation here.
+ */
+function views_ui_build_identifier($key, $view, $display_id, $args) {
+  $form = views_ui_ajax_forms($key);
+  $identifier = implode('-', array($key, $view->name, $display_id));
+
+  foreach ($form['args'] as $id) {
+    $arg = (!empty($args)) ? array_shift($args) : NULL;
+    $identifier .= '-' . $arg;
+  }
+  return $identifier;
+}
+
+/**
+ * Build up a $form_state object suitable for use with drupal_build_form
+ * based on known information about a form.
+ */
+function views_ui_build_form_state($js, $key, &$view, $display_id, $args) {
+  $form = views_ui_ajax_forms($key);
+  // Build up form state
+  $form_state = array(
+    'form_key' => $key,
+    'form_id' => $form['form_id'],
+    'view' => &$view,
+    'ajax' => $js,
+    'display_id' => $display_id,
+    'no_redirect' => TRUE,
+  );
+
+  foreach ($form['args'] as $id) {
+    $form_state[$id] = (!empty($args)) ? array_shift($args) : NULL;
+  }
+
+  return $form_state;
+}
+
+/**
+ * Create the URL for one of our standard AJAX forms based upon known
+ * information about the form.
+ */
+function views_ui_build_form_url($form_state) {
+  $form = views_ui_ajax_forms($form_state['form_key']);
+  $ajax = empty($form_state['ajax']) ? 'nojs' : 'ajax';
+  $name = $form_state['view']->name;
+  $url = "admin/build/views/$ajax/$form_state[form_key]/$name/$form_state[display_id]";
+  foreach ($form['args'] as $arg) {
+    $url .= '/' . $form_state[$arg];
+  }
+  return $url;
+}
+
+/**
+ * Add another form to the stack; clicking 'update' will go to this form
+ * rather than closing the ajax pad.
+ */
+function views_ui_add_form_to_stack($key, &$view, $display_id, $args, $top = FALSE) {
+  if (empty($view->stack)) {
+    $view->stack = array();
+  }
+
+  $stack = array(views_ui_build_identifier($key, $view, $display_id, $args), $key, &$view, $display_id, $args);
+  if ($top) {
+    array_unshift($view->stack, $stack);
+  }
+  else {
+    $view->stack[] = $stack;
+  }
+}
+
+/**
+ * Generic entry point to handle forms.
+ *
+ * We do this for consistency and to make it easy to chain forms
+ * together. This only works for forms that use both $view
+ * and $display_id, so we have a couple of ajax forms that we don't
+ * use with this system.
+ */
+function views_ui_ajax_form($js, $key, $view, $display_id) {
+  $form = views_ui_ajax_forms($key);
+  if (empty($form)) {
+    return drupal_not_found();
+  }
+
+  views_include('ajax');
+  $args = func_get_args();
+  // Remove the known args
+  array_splice($args, 0, 4);
+
+  $form_state = views_ui_build_form_state($js, $key, $view, $display_id, $args);
+  // check to see if this is the top form of the stack. If it is, pop
+  // it off; if it isn't, the user clicked somewhere else and the stack is
+  // now irrelevant.
+  if (!empty($view->stack)) {
+    $identifier = views_ui_build_identifier($key, $view, $display_id, $args);
+    $top = array_shift($view->stack);
+    if (array_shift($top) != $identifier) {
+      $view->stack = array();
+    }
+  }
+
+  $output = views_ajax_form_wrapper($form_state['form_id'], $form_state);
+
+  if (!$output) {
+    // Sometimes we need to re-generate the form for multi-step type operations.
+    $object = NULL;
+    if (!empty($view->stack)) {
+      $stack = $view->stack; // copy so the next shift doesn't break the array
+      $top = array_shift($stack);
+      $top[0] = $js; // change identifier into $js setting
+      $stepview = $top[2]; // Change view into a reference [#452384]
+      $top[2] = &$stepview;
+      $form_state = call_user_func_array('views_ui_build_form_state', $top);
+      $form_state['input'] = array(); // this is a new form, make sure it
+      // doesn't try to inherit $_POST info.
+      if (!$js) {
+        return drupal_goto(views_ui_build_form_url($form_state));
+      }
+      $object = views_ajax_form_wrapper($form_state['form_id'], $form_state);
+      $object->url = url(views_ui_build_form_url($form_state));
+    }
+    else if (!$js) {
+      // if nothing on the stack, non-js forms just go back to the main view editor.
+      return drupal_goto("admin/build/views/edit/$view->name");
+    }
+    // regenerate all tabs because changes to the default tab could ripple.
+    return views_ui_regenerate_tabs($view, NULL, $object);
+  }
+
+  return ($js) ? views_ajax_render($output) : $output;
+}
+
+/**
+ * AJAX callback to add a display.
+ */
+function views_ui_add_display($js, $view) {
+  views_include('ajax');
+  $form_state = array(
+    'view' => &$view,
+    'ajax' => $js,
+  );
+
+  $output = views_ajax_form_wrapper('views_ui_add_display_form', $form_state);
+
+  if ($js) {
+    // If we don't have an output object, it was submitted. Set up the submission.
+    if (empty($output)) {
+      $id = $form_state['id'];
+
+      // Make sure the new display is active
+      if (!$view->set_display('default')) {
+        views_ajax_render(t('Unable to initialize default display'));
+      }
+
+      // Render the new display
+      list($title, $body) = views_ui_display_tab($view, $view->display[$id]);
+
+      // Instruct the javascript on the browser to render the new tab.
+      $output = new stdClass;
+      $output->tab = array('#views-tab-' . $id => array('title' => $title, 'body' => $body));
+    }
+    // Render the command object. This automatically exits.
+    views_ajax_render($output);
+  }
+
+  // But the non-js variant will return output if it didn't redirect us.
+  return $output;
+}
+
+/**
+ * Form to add a display to a view.
+ */
+function views_ui_add_display_form(&$form_state) {
+  $view = &$form_state['view'];
+
+  $form['display']['display'] = array(
+    '#type' => 'select',
+    '#options' => views_fetch_plugin_names('display'),
+    '#default_value' => 'page',
+  );
+
+  $form['display']['add_display'] = array(
+    '#type' => 'submit',
+    '#value' => t('Add display'),
+    '#submit' => array('views_ui_add_display_form_submit'),
+  );
+
+  $form['#id'] = 'views-add-display-form';
+  $form['#attributes'] = array('class' => 'views-ajax-form');
+  $form['#action'] = url("admin/build/views/nojs/add-display/$view->name");
+
+  return $form;
+}
+
+/**
+ * Submit handler to add a display to a view.
+ */
+function views_ui_add_display_form_submit($form, &$form_state) {
+  // Create the new display
+  $plugin = $form_state['values']['display'];
+  $form_state['id'] = $form_state['view']->add_display($plugin);
+
+  // Store in cache
+  views_ui_cache_set($form_state['view']);
+
+  // Send it back
+  $form_state['redirect'] = array('admin/build/views/edit/' . $form_state['view']->name, NULL, 'views-tab-' . $form_state['id']);
+}
+
+/**
+ * AJAX callback to add a display.
+ */
+function views_ui_clone_display($js, $view, $id) {
+  views_include('ajax');
+  $form_state = array(
+    'view' => &$view,
+    'ajax' => $js,
+    'display_id' => $id,
+  );
+
+  $output = views_ajax_form_wrapper('views_ui_clone_display_form', $form_state);
+
+  if ($js) {
+    // If we don't have an output object, it was submitted. Set up the submission.
+    if (empty($output)) {
+      $id = $form_state['id'];
+
+      // Make sure the new display is active
+      if (!$view->set_display('default')) {
+        views_ajax_render(t('Unable to initialize default display'));
+      }
+
+      // Render the new display
+      list($title, $body) = views_ui_display_tab($view, $view->display[$id]);
+
+      // Instruct the javascript on the browser to render the new tab.
+      $output = new stdClass;
+      $output->tab = array('#views-tab-' . $id => array('title' => $title, 'body' => $body));
+    }
+    // Render the command object. This automatically exits.
+    views_ajax_render($output);
+  }
+
+  // But the non-js variant will return output if it didn't redirect us.
+  return $output;
+}
+
+/**
+ * From to clone a display from a view.
+ */
+function views_ui_clone_display_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+
+  $form['clone_display'] = array(
+    '#type' => 'submit',
+    '#value' => t('Clone display'),
+    '#submit' => array('views_ui_clone_display_form_submit'),
+  );
+
+  $form['#id'] = 'views-clone-display-form';
+  $form['#action'] = url("admin/build/views/nojs/clone-display/$view->name/$display_id");
+  $form['#attributes'] = array('class' => 'views-ajax-form');
+
+  return $form;
+}
+
+/**
+ * Submit handler to add a clone to a display from a view.
+ */
+function views_ui_clone_display_form_submit($form, &$form_state) {
+  // Create the new display
+  $id = $form_state['display_id'];
+  $display = $form_state['view']->display[$id];
+
+  $new_id = $form_state['view']->add_display($display->display_plugin);
+  $form_state['id'] = $new_id;
+
+  // Replace the new display by a copy of the old
+  $form_state['view']->display[$new_id] = drupal_clone($display);
+  $form_state['view']->display[$new_id]->id = $new_id;
+
+  // Store in cache
+  views_ui_cache_set($form_state['view']);
+
+  // Send it back
+  $form_state['redirect'] = array('admin/build/views/edit/' . $form_state['view']->name, NULL, 'views-tab-' . $new_id);
+}
+
+/**
+ * Form to remove a display from a view.
+ */
+function views_ui_remove_display_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+
+  if (empty($view->display[$display_id]->deleted)) {
+    $form['display'] = array(
+      '#prefix' => '<div class="display-button remove-display">',
+      '#suffix' => '</div>',
+    );
+    $form['remove_display'] = array(
+      '#type' => 'submit',
+      '#value' => t('Remove display'),
+      '#submit' => array('views_ui_remove_display_form_submit'),
+    );
+  }
+  else {
+    $form['display'] = array(
+      '#prefix' => '<div class="display-button restore-display">',
+      '#suffix' => '</div>',
+    );
+    $form['restore_display'] = array(
+      '#type' => 'submit',
+      '#value' => t('Restore display'),
+      '#submit' => array('views_ui_remove_display_form_restore'),
+    );
+  }
+  $form['#action'] = url("admin/build/views/nojs/remove-display/$view->name/$display_id");
+  $form['#attributes'] = array('class' => 'views-ajax-form');
+
+  return $form;
+}
+
+/**
+ * Submit handler to add a remove to a display from a view.
+ */
+function views_ui_remove_display_form_submit($form, &$form_state) {
+  // Create the new display
+  $plugin = views_fetch_plugin_data('display', $form_state['view']->display[$form_state['display_id']]->display_plugin);
+  if (empty($plugin['no remove'])) {
+    $id = $form_state['display_id'];
+    $form_state['view']->display[$id]->deleted = TRUE;
+
+    // Store in cache
+    views_ui_cache_set($form_state['view']);
+  }
+}
+
+/**
+ * Submit handler to add a restore a removed display to a view.
+ */
+function views_ui_remove_display_form_restore($form, &$form_state) {
+  // Create the new display
+  $id = $form_state['display_id'];
+  $form_state['view']->display[$id]->deleted = FALSE;
+
+  // Store in cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Page callback to display analysis information on a view.
+ */
+function views_ui_analyze_view($js, $view) {
+  views_include('ajax');
+  $form_state = array(
+    'view' => &$view,
+    'ajax' => $js,
+  );
+
+  $output = views_ajax_form_wrapper('views_ui_analyze_view_form', $form_state);
+
+  if ($js) {
+    // If we don't have an output object, it was submitted. Set up the submission.
+    if (empty($output)) {
+      return views_ui_regenerate_tabs($view);
+    }
+    return views_ajax_render($output);
+
+  }
+  return $output;
+}
+
+/**
+ * This form doesn't particularly do much; it's really just providing a link
+ * but a button seems like it would be nicer here.
+ *
+ * It has no submit or anything, as we will never actually submit this form
+ * where the form is placed.
+ */
+function views_ui_analyze_view_button(&$form_state, $view) {
+  $form['#action'] = url("admin/build/views/nojs/analyze/$view->name");
+  $form['#attributes'] = array('class' => 'views-ajax-form');
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Analyze'),
+  );
+
+  return $form;
+}
+
+/**
+ * Form constructor callback to display analysis information on a view
+ */
+function views_ui_analyze_view_form(&$form_state) {
+  $view = &$form_state['view'];
+
+  $form['#title'] = t('View analysis');
+  $form['#section'] = 'analyze';
+
+  views_include('analyze');
+  $messages = views_analyze_view($view);
+
+  $form['analysis'] = array(
+    '#prefix' => '<div class="form-item">',
+    '#suffix' => '</div>',
+    '#value' => views_analyze_format_result($view, $messages),
+  );
+
+  // Inform the standard button function that we want an OK button.
+  $form_state['ok_button'] = TRUE;
+  views_ui_standard_form_buttons($form, $form_state, 'views_ui_analyze_view_form');
+  return $form;
+}
+
+/**
+ * Submit handler for views_ui_analyze_view_form
+ */
+function views_ui_analyze_view_form_submit($form, &$form_state) {
+  $form_state['redirect'] = 'admin/build/views/edit/' . $form_state['view']->name;
+}
+
+/**
+ * Page callback to edit details of a view.
+ */
+function views_ui_edit_details($js, $view) {
+  views_include('ajax');
+  $form_state = array(
+    'view' => &$view,
+    'ajax' => $js,
+  );
+
+  $output = views_ajax_form_wrapper('views_ui_edit_details_form', $form_state);
+
+  if ($js) {
+    // If we don't have an output object, it was submitted. Set up the submission.
+    if (empty($output)) {
+      return views_ui_regenerate_tabs($view);
+    }
+    return views_ajax_render($output);
+
+  }
+  return $output;
+}
+
+/**
+ * Form constructor callback to edit details of a view
+ */
+function views_ui_edit_details_form(&$form_state) {
+  $view = &$form_state['view'];
+
+  $form['#title'] = t('View details');
+  $form['#section'] = 'details';
+
+  $form['description'] = array(
+    '#type' => 'textfield',
+    '#title' => t('View description'),
+    '#description' => t('This description will appear on the Views administrative UI to tell you what the view is about.'),
+    '#default_value' => $view->description,
+  );
+
+  $form['tag'] = array(
+    '#type' => 'textfield',
+    '#title' => t('View tag'),
+    '#description' => t('Enter an optional tag for this view; it is used only to help sort views on the administrative page.'),
+    '#default_value' => $view->tag,
+    '#autocomplete_path' => 'admin/views/ajax/autocomplete/tag',
+  );
+
+  views_ui_standard_form_buttons($form, $form_state, 'views_ui_edit_details_form');
+  return $form;
+}
+
+/**
+ * Submit handler for views_ui_edit_details_form
+ */
+function views_ui_edit_details_form_submit($form, &$form_state) {
+  $form_state['view']->description = $form_state['values']['description'];
+  $form_state['view']->tag = $form_state['values']['tag'];
+  views_ui_cache_set($form_state['view']);
+  $form_state['redirect'] = 'admin/build/views/edit/' . $form_state['view']->name;
+}
+
+/**
+ * Form constructor callback to edit display of a view
+ */
+function views_ui_edit_display_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $section = $form_state['section'];
+
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $display = &$view->display[$display_id];
+
+  // Get form from the handler.
+  $display->handler->options_form($form, $form_state);
+  $name = NULL;
+  if (isset($form_state['update_name'])) {
+    $name = $form_state['update_name'];
+  }
+
+  views_ui_standard_form_buttons($form, $form_state, 'views_ui_edit_display_form', $name);
+  return $form;
+}
+
+/**
+ * Validate handler for views_ui_edit_display_form
+ */
+function views_ui_edit_display_form_validate($form, &$form_state) {
+  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display->handler->options_validate($form, $form_state);
+}
+
+/**
+ * Submit handler for views_ui_edit_display_form
+ */
+function views_ui_edit_display_form_submit($form, &$form_state) {
+  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display->handler->options_submit($form, $form_state);
+
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Override handler for views_ui_edit_display_form
+ */
+function views_ui_edit_display_form_override($form, &$form_state) {
+  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display->handler->options_override($form, $form_state);
+
+  views_ui_cache_set($form_state['view']);
+  $form_state['rerender'] = TRUE;
+  $form_state['rebuild'] = TRUE;
+}
+/**
+ * Override handler and submit views_ui_edit_display_form
+ */
+function views_ui_edit_display_form_override_update(&$form, &$form_state) {
+  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display->handler->options_override($form, $form_state);
+  $display->handler->options_submit($form, $form_state);
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Override handler and submit views_ui_edit_display_form
+ */
+function views_ui_edit_display_form_override_update_section(&$form, &$form_state) {
+  // Update the #section so it knows what to mark changed.
+  $form['#section'] = str_replace('default-', $form_state['display_id'] . '-', $form['#section']);
+}
+
+/**
+ * Form to config items in the views UI.
+ */
+function views_ui_config_type_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $type = $form_state['type'];
+
+  $types = views_object_types();
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $display = &$view->display[$display_id];
+  $form['#title'] = check_plain($display->display_title) . ': ';
+  $form['#title'] .= t('Configure @type', array('@type' => $types[$type]['ltitle']));
+  $form['#section'] = $display_id . 'config-item';
+
+  if ($display->handler->defaultable_sections($types[$type]['plural'])) {
+    $form_state['section'] = $types[$type]['plural'];
+    $display->handler->add_override_button($form, $form_state, $form_state['section']);
+  }
+
+  if (!empty($types[$type]['options']) && function_exists($types[$type]['options'])) {
+    $options = $type . '_options';
+    $form[$options] = array('#tree' => TRUE);
+    $types[$type]['options']($form, $form_state);
+  }
+
+  $name = NULL;
+  if (isset($form_state['update_name'])) {
+    $name = $form_state['update_name'];
+  }
+
+  views_ui_standard_form_buttons($form, $form_state, 'views_ui_config_type_form', $name);
+  return $form;
+}
+
+/**
+ * Submit handler for type configuration form
+ */
+function views_ui_config_type_form_submit($form, &$form_state) {
+  $types = views_object_types();
+  $display = &$form_state['view']->display[$form_state['display_id']];
+
+  // Store in cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Configure settings particular to filters.
+ */
+function views_ui_config_filters_form(&$form, &$form_state) {
+
+}
+
+/**
+ * Form to rearrange items in the views UI.
+ */
+function views_ui_rearrange_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $type = $form_state['type'];
+
+  $types = views_object_types();
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $display = &$view->display[$display_id];
+  $form['#title'] = check_plain($display->display_title) . ': ';
+  $form['#title'] .= t('Rearrange @type', array('@type' => $types[$type]['ltitle']));
+  $form['#section'] = $display_id . 'rearrange-item';
+
+  if ($display->handler->defaultable_sections($types[$type]['plural'])) {
+    $form_state['section'] = $types[$type]['plural'];
+    $display->handler->add_override_button($form, $form_state, $form_state['section']);
+  }
+
+  $count = 0;
+
+  // Get relationship labels
+  $relationships = array();
+  // @todo: get_handlers()
+  foreach ($display->handler->get_option('relationships') as $id => $relationship) {
+    $handler = views_get_handler($relationship['table'], $relationship['field'], 'relationship');
+    if (empty($handler)) {
+      continue;
+    }
+    $handler->init($view, $relationship);
+    $relationships[$id] = $handler->label();
+  }
+
+  // @todo: get_handlers()
+  $form['fields'] = array('#tree' => TRUE);
+  foreach ($display->handler->get_option($types[$type]['plural']) as $id => $field) {
+    $form['fields'][$id] = array('#tree' => TRUE);
+    $form['fields'][$id]['weight'] = array(
+      '#type' => 'weight',
+      '#delta' => 200,
+      '#default_value' => ++$count,
+    );
+    $handler = views_get_handler($field['table'], $field['field'], $type);
+    if ($handler) {
+      $handler->init($view, $field);
+      $name = $handler->ui_name() . ' ' . $handler->admin_summary();
+      if (!empty($field['relationship']) && !empty($relationships[$field['relationship']])) {
+        $name = '(' . $relationships[$field['relationship']] . ') ' . $name;
+      }
+
+      $form['fields'][$id]['name'] = array(
+        '#value' => $name,
+      );
+    }
+    else {
+      $form['fields'][$id]['name'] = array('#value' => t('Broken field @id', array('@id' => $id)));
+    }
+    $form['fields'][$id]['removed'] = array(
+      '#type' => 'checkbox',
+      '#id' => 'views-removed-' . $id,
+      '#attributes' => array('class' => 'views-remove-checkbox'),
+      '#default_value' => 0,
+    );
+  }
+
+  // Add javascript settings that will be added via $.extend for tabledragging
+  $form['#js']['tableDrag']['arrange']['weight'][0] = array(
+    'target' => 'weight',
+    'source' => NULL,
+    'relationship' => 'sibling',
+    'action' => 'order',
+    'hidden' => TRUE,
+    'limit' => 0,
+  );
+
+  $name = NULL;
+  if (isset($form_state['update_name'])) {
+    $name = $form_state['update_name'];
+  }
+
+  views_ui_standard_form_buttons($form, $form_state, 'views_ui_rearrange_form');
+  return $form;
+}
+
+/**
+ * Turn the rearrange form into a proper table
+ */
+function theme_views_ui_rearrange_form($form) {
+  $rows = array();
+  foreach (element_children($form['fields']) as $id) {
+    if (isset($form['fields'][$id]['name'])) {
+      $row = array();
+      $row[] = drupal_render($form['fields'][$id]['name']);
+      $form['fields'][$id]['weight']['#attributes']['class'] = 'weight';
+      $row[] = drupal_render($form['fields'][$id]['weight']);
+      $row[] = drupal_render($form['fields'][$id]['removed']) . l('<span>' . t('Remove') . '</span>', 'javascript:void()', array('attributes' => array('id' => 'views-remove-link-' . $id, 'class' => 'views-button-remove views-remove-link', 'alt' => t('Remove this item'), 'title' => t('Remove this item')), 'html' => true));
+
+      $rows[] = array('data' => $row, 'class' => 'draggable', 'id' => 'views-row-' . $id);
+    }
+  }
+  if (empty($rows)) {
+    $rows[] = array(array('data' => t('No fields available.'), 'colspan' => '2'));
+  }
+
+  $header = array('', t('Weight'), t('Remove'));
+  drupal_add_tabledrag('arrange', 'order', 'sibling', 'weight');
+  $output = drupal_render($form['override']);
+  $output .= theme('table', $header, $rows, array('id' => 'arrange'));
+  $output .= drupal_render($form);
+  return $output;
+
+}
+
+/**
+ * Submit handler for rearranging form
+ */
+function views_ui_rearrange_form_submit($form, &$form_state) {
+  $types = views_object_types();
+  $display = &$form_state['view']->display[$form_state['display_id']];
+
+  $old_fields = $display->handler->get_option($types[$form_state['type']]['plural']);
+  $new_fields = $order = array();
+
+  // Make an array with the weights
+  foreach ($form_state['values']['fields'] as $field => $info) {
+    // add each value that is a field with a weight to our list, but only if
+    // it has had its 'removed' checkbox checked.
+    if (is_array($info) && isset($info['weight']) && empty($info['removed'])) {
+      $order[$field] = $info['weight'];
+    }
+  }
+
+  // Sort the array
+  asort($order);
+
+  // Create a new list of fields in the new order.
+  foreach (array_keys($order) as $field) {
+    $new_fields[$field] = $old_fields[$field];
+  }
+  $display->handler->set_option($types[$form_state['type']]['plural'], $new_fields);
+
+  // Store in cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Form to add_item items in the views UI.
+ */
+function views_ui_add_item_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $type = $form_state['type'];
+
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $display = &$view->display[$display_id];
+
+  $types = views_object_types();
+  $form['#title'] = check_plain($display->display_title) . ': ';
+  $form['#title'] .= t('Add @type', array('@type' => $types[$type]['ltitle']));
+  $form['#section'] = $display_id . 'add-item';
+
+  // Figure out all the base tables allowed based upon what the relationships provide.
+  $base_tables = $view->get_base_tables();
+  $options = views_fetch_fields(array_keys($base_tables), $type);
+
+  if (!empty($options)) {
+    $groups = array('all' => t('- All -'));
+    $form['group'] = array(
+      '#type' => 'select',
+      '#title' => t('Groups'),
+      '#options' => array(),
+      '#attributes' => array('class' => 'views-master-dependent'),
+    );
+
+    $form['name'] = array(
+      '#prefix' => '<div class="views-radio-box form-checkboxes">',
+      '#suffix' => '</div>',
+      '#tree' => TRUE,
+      '#default_value' => 'all',
+    );
+
+    // Group options first to simplify the DOM objects that Views
+    // dependent JS will act upon.
+    $grouped_options = array();
+    foreach ($options as $key => $option) {
+      $group = preg_replace('/[^a-z0-9]/', '-', strtolower($option['group']));
+      $groups[$group] = $option['group'];
+      $grouped_options[$group][$key] = $option;
+    }
+
+    foreach ($grouped_options as $group => $group_options) {
+      $form['name'][$group . '_start'] = array('#type' => 'markup', '#value' => '<div class="views-dependent-all views-dependent-' . $group . '">');
+      foreach ($group_options as $key => $option) {
+        $form['name'][$key] = array(
+          '#type' => 'checkbox',
+          '#title' => t('!group: !field', array('!group' => $option['group'], '!field' => $option['title'])),
+          '#description' => $option['help'],
+          '#return_value' => $key,
+        );
+      }
+      $form['name'][$group . '_end'] = array('#type' => 'markup', '#value' => '</div>');
+    }
+
+    $form['group']['#options'] = $groups;
+  }
+  else {
+    $form['markup'] = array(
+      '#value' => '<div class="form-item">' . t('There are no @types available to add.', array('@types' =>  $types[$type]['ltitle'])) . '</div>',
+    );
+  }
+  views_ui_standard_form_buttons($form, $form_state, 'views_ui_add_item_form', t('Add'));
+
+  return $form;
+}
+
+/**
+ * Submit handler for adding new item(s) to a view.
+ */
+function views_ui_add_item_form_submit($form, &$form_state) {
+  $type = $form_state['type'];
+  $types = views_object_types();
+
+  if (!empty($form_state['values']['name']) && is_array($form_state['values']['name'])) {
+    // Loop through each of the items that were checked and add them to the view.
+    foreach (array_keys(array_filter($form_state['values']['name'])) as $field) {
+      list($table, $field) = explode('.', $field, 2);
+      $id = $form_state['view']->add_item($form_state['display_id'], $type, $table, $field);
+
+      // check to see if this type has settings, if so add the settings form first
+      $handler = views_get_handler($table, $field, $type);
+      if ($handler && $handler->has_extra_options()) {
+        views_ui_add_form_to_stack('config-item-extra', $form_state['view'], $form_state['display_id'], array($type, $id));
+      }
+      // Then add the form to the stack
+      views_ui_add_form_to_stack('config-item', $form_state['view'], $form_state['display_id'], array($type, $id));
+    }
+  }
+
+  // Store in cache
+  views_ui_cache_set($form_state['view']);
+}
+
+
+/**
+ * Form to config_item items in the views UI.
+ */
+function views_ui_config_item_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $type = $form_state['type'];
+  $id = $form_state['id'];
+
+  $form = array('options' => array('#tree' => TRUE));
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $item = $view->get_item($display_id, $type, $id);
+
+  if ($item) {
+    $handler = views_get_handler($item['table'], $item['field'], $type);
+    if (empty($handler)) {
+      $form['markup'] = array('#value' => t("Error: handler for @table > @field doesn't exist!", array('@table' => $item['table'], '@field' => $item['field'])));
+    }
+    else {
+      $handler->init($view, $item);
+      $types = views_object_types();
+
+      if ($view->display_handler->defaultable_sections($types[$type]['plural'])) {
+        $form_state['section'] = $types[$type]['plural'];
+        $view->display_handler->add_override_button($form['options'], $form_state, $form_state['section']);
+      }
+
+      // A whole bunch of code to figure out what relationships are valid for
+      // this item.
+      $relationships = $view->display_handler->get_option('relationships');
+      $relationship_options = array();
+
+      foreach ($relationships as $relationship) {
+        // relationships can't link back to self. But also, due to ordering,
+        // relationships can only link to prior relationships.
+        if ($type == 'relationship' && $id == $relationship['id']) {
+          break;
+        }
+        $relationship_handler = views_get_handler($relationship['table'], $relationship['field'], 'relationship');
+        // ignore invalid/broken relationships.
+        if (empty($relationship_handler)) {
+          continue;
+        }
+
+        // If this relationship is valid for this type, add it to the list.
+        $data = views_fetch_data($relationship['table']);
+        $base = $data[$relationship['field']]['relationship']['base'];
+        $base_fields = views_fetch_fields($base, $form_state['type']);
+        if (isset($base_fields[$item['table'] . '.' . $item['field']])) {
+          $relationship_handler->init($view, $relationship);
+          $relationship_options[$relationship['id']] = $relationship_handler->label();
+        }
+      }
+
+      if (!empty($relationship_options)) {
+        // Make sure the existing relationship is even valid. If not, force
+        // it to none.
+        $base_fields = views_fetch_fields($view->base_table, $form_state['type']);
+        if (isset($base_fields[$item['table'] . '.' . $item['field']])) {
+          $relationship_options = array_merge(array('none' => t('Do not use a relationship')), $relationship_options);
+        }
+        $rel = empty($item['relationship']) ? 'none' : $item['relationship'];
+        if (empty($relationship_options[$rel])) {
+          // Pick the first relationship.
+          $rel = key($relationship_options);
+          // We want this relationship option to get saved even if the user
+          // skips submitting the form.
+          $view->set_item_option($display_id, $type, $id, 'relationship', $rel);
+          $temp_view = $view->clone_view();
+          views_ui_cache_set($temp_view);
+        }
+
+        $form['options']['relationship'] = array(
+          '#type' => 'select',
+          '#title' => t('Relationship'),
+          '#options' => $relationship_options,
+          '#default_value' => $rel,
+        );
+      }
+      else {
+        $form['options']['relationship'] = array(
+          '#type' => 'value',
+          '#value' => 'none',
+        );
+      }
+
+      $form['#title'] = check_plain($view->display[$display_id]->display_title) . ': ';
+      $form['#title'] .= t('Configure @type %item', array('@type' => $types[$type]['lstitle'], '%item' => $handler->ui_name()));
+
+      $form['form_description'] = array(
+        '#type' => 'markup',
+        '#weight' => -1000,
+        '#prefix' => '<div class="form-item description">',
+        '#suffix' => '</div>',
+        '#value' => $handler->definition['help'],
+      );
+
+      $form['#section'] = $display_id . '-' . $type . '-' . $id;
+
+      // Get form from the handler.
+      $handler->options_form($form['options'], $form_state);
+      $form_state['handler'] = &$handler;
+    }
+
+    $name = NULL;
+    if (isset($form_state['update_name'])) {
+      $name = $form_state['update_name'];
+    }
+
+    views_ui_standard_form_buttons($form, $form_state, 'views_ui_config_item_form', $name, t('Remove'), 'remove');
+  }
+  return $form;
+}
+
+/**
+ * Submit handler for configing new item(s) to a view.
+ */
+function views_ui_config_item_form_validate($form, &$form_state) {
+  $form_state['handler']->options_validate($form['options'], $form_state);
+}
+
+/**
+ * Submit handler for configing new item(s) to a view.
+ */
+function views_ui_config_item_form_submit($form, &$form_state) {
+  // Run it through the handler's submit function.
+  $form_state['handler']->options_submit($form['options'], $form_state);
+  $item = $form_state['handler']->options;
+
+  // Unset a button
+  unset($form_state['values']['options']['expose_button']);
+
+  // Store the data we're given.
+  foreach ($form_state['values']['options'] as $key => $value) {
+    $item[$key] = $value;
+  }
+
+  // Store the item back on the view
+  $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+
+  $handler = views_get_handler($item['table'], $item['field'], $form_state['type']);
+  $handler->init($form_state['view'], $item);
+  if ($handler && $handler->needs_style_plugin()) {
+    views_ui_add_form_to_stack('change-style', $form_state['view'], $form_state['display_id'], array($form_state['type'], $form_state['id']), TRUE);
+  }
+
+  // Write to cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Submit handler for removing an item from a view
+ */
+function views_ui_config_item_form_remove($form, &$form_state) {
+  // Store the item back on the view
+  $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], NULL);
+
+  // Write to cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Override handler for views_ui_edit_display_form
+ */
+function views_ui_config_item_form_expose($form, &$form_state) {
+  $item = &$form_state['handler']->options;
+  // flip
+  $item['exposed'] = empty($item['exposed']);
+
+  // If necessary, set new defaults:
+  if ($item['exposed']) {
+    $form_state['handler']->expose_options();
+  }
+
+  $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+
+  views_ui_cache_set($form_state['view']);
+  $form_state['rerender'] = TRUE;
+  $form_state['rebuild'] = TRUE;
+  $form_state['force_expose_options'] = TRUE;
+}
+
+/**
+ * Form to config_item items in the views UI.
+ */
+function views_ui_config_item_extra_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $type = $form_state['type'];
+  $id = $form_state['id'];
+
+  $form = array('options' => array('#tree' => TRUE));
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $item = $view->get_item($display_id, $type, $id);
+
+  if ($item) {
+    $handler = views_get_handler($item['table'], $item['field'], $type);
+    if (empty($handler)) {
+      $form['markup'] = array('#value' => t("Error: handler for @table > @field doesn't exist!", array('@table' => $item['table'], '@field' => $item['field'])));
+    }
+    else {
+      $handler->init($view, $item);
+      $types = views_object_types();
+
+      $form['#title'] = check_plain($view->display[$display_id]->display_title) . ': ';
+      $form['#title'] .= t('Configure extra settings for @type %item', array('@type' => $types[$type]['lstitle'], '%item' => $handler->ui_name()));
+
+      $form['#section'] = $display_id . '-' . $type . '-' . $id;
+
+      // Get form from the handler.
+      $handler->extra_options_form($form['options'], $form_state);
+        $form_state['handler'] = &$handler;
+
+    }
+
+    views_ui_standard_form_buttons($form, $form_state, 'views_ui_config_item_extra_form');
+  }
+  return $form;
+}
+
+/**
+ * Submit handler for configing new item(s) to a view.
+ */
+function views_ui_config_item_extra_form_validate($form, &$form_state) {
+  $form_state['handler']->extra_options_validate($form['options'], $form_state);
+}
+
+/**
+ * Submit handler for configing new item(s) to a view.
+ */
+function views_ui_config_item_extra_form_submit($form, &$form_state) {
+  // Run it through the handler's submit function.
+  $form_state['handler']->extra_options_submit($form['options'], $form_state);
+  $item = $form_state['handler']->options;
+
+  // Store the data we're given.
+  foreach ($form_state['values']['options'] as $key => $value) {
+    $item[$key] = $value;
+  }
+
+  // Store the item back on the view
+  $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+
+  // Write to cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Form to change_style items in the views UI.
+ */
+function views_ui_change_style_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $type = $form_state['type'];
+  $id = $form_state['id'];
+
+  $form = array('options' => array('#tree' => TRUE));
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $item = $view->get_item($display_id, $type, $id);
+
+  if ($item) {
+    $handler = views_get_handler($item['table'], $item['field'], $type);
+    if (empty($handler)) {
+      $form['markup'] = array('#value' => t("Error: handler for @table > @field doesn't exist!", array('@table' => $item['table'], '@field' => $item['field'])));
+    }
+    else {
+      $handler->init($view, $item);
+      $types = views_object_types();
+      $form['#title'] = t('Change summary style for @type %item', array('@type' => $types[$type]['lstitle'], '%item' => $handler->ui_name()));
+
+      $form['#section'] = $display_id . '-' . $type . '-' . $id . '-style-plugin';
+
+      $form['style_plugin'] =  array(
+        '#type' => 'radios',
+        '#options' => views_fetch_plugin_names('style', 'summary'),
+        '#default_value' => $item['style_plugin'],
+      );
+
+      $form_state['handler'] = &$handler;
+    }
+    views_ui_standard_form_buttons($form, $form_state, 'views_ui_change_style_form');
+  }
+  return $form;
+}
+
+function views_ui_change_style_form_validate($form, &$form_state) {
+  // Run it through the handler's submit function.
+  $form_state['handler']->options_validate($form['options'], $form_state);
+
+  $plugin = views_get_plugin('style', $form_state['values']['style_plugin']);
+  if (!$plugin) {
+    form_error($form['style_plugin'], t('Internal error: broken plugin.'));
+  }
+}
+
+/**
+ * Submit handler for configing new item(s) to a view.
+ */
+function views_ui_change_style_form_submit($form, &$form_state) {
+  // Run it through the handler's submit function.
+  $form_state['handler']->options_submit($form['options'], $form_state);
+  $item = $form_state['handler']->options;
+
+  $plugin = views_get_plugin('style', $form_state['values']['style_plugin']);
+  if (!$plugin) {
+    drupal_set_message(t('Internal error: broken plugin.'), 'error');
+    return;
+  }
+
+  $plugin->init($form_state['view'], $form_state['view']->display[$form_state['display_id']]);
+
+  // If changing style plugin, reset options to defaults.
+  if (empty($item['style_plugin']) || $item['style_plugin'] != $form_state['values']['style_plugin']) {
+    $item['style_options'] = $plugin->options;
+  }
+
+  // Store the data we're given.
+  $item['style_plugin'] = $form_state['values']['style_plugin'];
+
+  // Store the item back on the view
+  $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+
+  if (!empty($plugin->definition['uses options'])) {
+    views_ui_add_form_to_stack('config-style', $form_state['view'], $form_state['display_id'], array($form_state['type'], $form_state['id']), TRUE);
+  }
+
+  // Write to cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Form to config_style items in the views UI.
+ */
+function views_ui_config_style_form(&$form_state) {
+  $view = &$form_state['view'];
+  $display_id = $form_state['display_id'];
+  $type = $form_state['type'];
+  $id = $form_state['id'];
+
+  $form = array('options' => array('#tree' => TRUE));
+  if (!$view->set_display($display_id)) {
+    views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
+  }
+  $item = $view->get_item($display_id, $type, $id);
+
+  if ($item) {
+    $handler = views_get_handler($item['table'], $item['field'], $type);
+    if (empty($handler)) {
+      $form['markup'] = array('#value' => t("Error: handler for @table > @field doesn't exist!", array('@table' => $item['table'], '@field' => $item['field'])));
+    }
+    else {
+      $handler->init($view, $item);
+      $types = views_object_types();
+
+      $form['#title'] = check_plain($view->display[$display_id]->display_title) . ': ';
+      $form['#title'] .= t('Configure summary style for @type %item', array('@type' => $types[$type]['lstitle'], '%item' => $handler->ui_name()));
+
+      $form['#section'] = $display_id . '-' . $type . '-style-options';
+
+      $plugin = views_get_plugin('style', $item['style_plugin']);
+      if ($plugin) {
+        $form['style_options'] = array(
+          '#tree' => TRUE,
+        );
+        $plugin->init($view, $view->display[$display_id], $item['style_options']);
+
+        $plugin->options_form($form['style_options'], $form_state);
+      }
+
+      $form_state['handler'] = &$handler;
+    }
+    views_ui_standard_form_buttons($form, $form_state, 'views_ui_config_style_form');
+  }
+  return $form;
+}
+
+/**
+ * Submit handler for configing new item(s) to a view.
+ */
+function views_ui_config_style_form_submit($form, &$form_state) {
+  // Run it through the handler's submit function.
+  $form_state['handler']->options_submit($form['style_options'], $form_state);
+  $item = $form_state['handler']->options;
+
+  // Store the data we're given.
+  $item['style_options'] = $form_state['values']['style_options'];
+
+  // Store the item back on the view
+  $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+
+  // Write to cache
+  views_ui_cache_set($form_state['view']);
+}
+
+/**
+ * Get a list of roles in the system.
+ */
+function views_ui_get_roles() {
+  static $roles = NULL;
+  if (!isset($roles)) {
+    $roles = array();
+    $result = db_query("SELECT r.rid, r.name FROM {role} r ORDER BY r.name");
+    while ($obj = db_fetch_object($result)) {
+      $roles[$obj->rid] = $obj->name;
+    }
+  }
+
+  return $roles;
+}
+
+/**
+ * Get a css safe id for a particular section.
+ */
+function views_ui_item_css($item) {
+  return views_css_safe('views-item-' . $item);
+}
+
+/**
+ * Page callback for the Views enable page.
+ */
+function views_ui_enable_page($view) {
+  if (isset($_GET['token']) && drupal_valid_token($_GET['token'], 'views-enable')) {
+    $views_status = variable_get('views_defaults', array());
+    $views_status[$view->name] = FALSE; // false is enabled
+    variable_set('views_defaults', $views_status);
+    views_invalidate_cache();
+    menu_rebuild();
+    drupal_goto('admin/build/views');
+  }
+  else {
+    return drupal_access_denied();
+  }
+}
+
+/**
+ * Page callback for the Views enable page
+ */
+function views_ui_disable_page($view) {
+  if (isset($_GET['token']) && drupal_valid_token($_GET['token'], 'views-disable')) {
+    $views_status = variable_get('views_defaults', array());
+    $views_status[$view->name] = TRUE; // True is disabled
+    variable_set('views_defaults', $views_status);
+    views_invalidate_cache();
+    menu_rebuild();
+    drupal_goto('admin/build/views');
+  }
+  else {
+    return drupal_access_denied();
+  }
+}
+
+/**
+ * Page callback for the tools - other page
+ */
+function views_ui_admin_tools() {
+  $form['clear_cache'] = array(
+    '#type' => 'submit',
+    '#value' => t("Clear Views' cache"),
+    '#submit' => array('views_ui_tools_clear_cache'),
+  );
+
+  $form['views_sql_signature'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Add Views signature to all SQL queries'),
+    '#description' => t("All Views-generated queries will include a special 'VIEWS' = 'VIEWS' string in the WHERE clause. This makes identifying Views queries in database server logs simpler, but should only be used when troubleshooting."),
+    '#default_value' => variable_get('views_sql_signature', FALSE),
+  );
+
+  $form['views_skip_cache'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Disable views data caching'),
+    '#description' => t("Views caches data about tables, modules and views available, to increase performance. By checking this box, Views will skip this cache and always rebuild this data when needed. This can have a serious performance impact on your site."),
+    '#default_value' => variable_get('views_skip_cache', FALSE),
+  );
+
+  $form['views_hide_help_message'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Ignore missing advanced help module'),
+    '#description' => t("Views uses the advanced help module to provide help text; if this module is not present Views will complain, unless this setting is checked."),
+    '#default_value' => variable_get('views_hide_help_message', FALSE),
+  );
+
+  $form['views_ui_query_on_top'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show query above live preview'),
+    '#description' => t("The live preview feature will show you the output of the view you're creating, as well as the view. Check here to show the query and other information above the view; leave this unchecked to show that information below the view."),
+    '#default_value' => variable_get('views_ui_query_on_top', FALSE),
+  );
+
+  $form['views_ui_disable_live_preview'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Disable automatic live preview'),
+    '#description' => t("Don't automatically update the preview. This can speed up the editing of views a bit.'"),
+    '#default_value' => variable_get('views_ui_disable_live_preview', 0),
+  );
+
+  $form['views_show_additional_queries'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show other queries run during render during live preview'),
+    '#description' => t("Drupal has the potential to run many queries while a view is being rendered. Checking this box will display every query run during view render as part of the live preview."),
+    '#default_value' => variable_get('views_show_additional_queries', FALSE),
+  );
+
+  $form['views_no_hover_links'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Do not show hover links over views'),
+    '#description' => t("To make it easier to administrate your views, Views provides 'hover' links to take you to the edit and export screen of a view whenever the view is used. This can be distracting on some themes, though; if it is problematic, you can turn it off here."),
+    '#default_value' => variable_get('views_no_hover_links', FALSE),
+  );
+
+  $form['views_devel_output'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable views performance statistics via the Devel module'),
+    '#description' => t("Check this to enable some Views query and performance statistics <em>if Devel is installed</em>."),
+    '#default_value' => variable_get('views_devel_output', FALSE),
+  );
+
+  $form['views_no_javascript'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Disable javascript with Views'),
+    '#description' => t("If you are having problems with the javascript, you can disable it here; the Views UI should degrade and still be usable without javascript, it just not as good."),
+    '#default_value' => variable_get('views_no_javascript', FALSE),
+  );
+
+  $regions = system_region_list(variable_get('theme_default', 'garland'));
+  $regions['watchdog'] = t('Watchdog');
+
+  $form['views_devel_region'] = array(
+    '#type' => 'select',
+    '#title' => t('Page region to output performance statistics'),
+    '#default_value' => variable_get('views_devel_region', 'footer'),
+    '#options' => $regions,
+  );
+
+  $form['views_exposed_filter_any_label'] = array(
+    '#type' => 'select',
+    '#title' => t('Label for "Any" value on optional single-select exposed filters'),
+    '#options' => array('old_any' => '<Any>', 'new_any' => t('- Any -')),
+    '#default_value' => variable_get('views_exposed_filter_any_label', 'old_any'),
+  );
+
+  return system_settings_form($form);
+}
+
+/**
+ * Submit hook to clear the views cache.
+ */
+function views_ui_tools_clear_cache() {
+  views_invalidate_cache();
+  drupal_set_message(t('The cache has been cleared.'));
+}
+
+/**
+ * Submit hook to clear Drupal's theme registry (thereby triggering
+ * a templates rescan).
+ */
+function views_ui_config_item_form_rescan($form, &$form_state) {
+  drupal_rebuild_theme_registry();
+
+  // The 'Theme: Information' page is about to be shown again. That page
+  // analyzes the output of theme_get_registry(). However, this latter
+  // function uses an internal cache (which was initialized before we
+  // called drupal_rebuild_theme_registry()) so it won't reflect the
+  // current state of our theme registry. The only way to clear that cache
+  // is to re-initialize the theme system:
+  unset($GLOBALS['theme']);
+  init_theme();
+
+  $form_state['rerender'] = TRUE;
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Override handler for views_ui_edit_display_form
+ */
+function views_ui_edit_display_form_change_theme($form, &$form_state) {
+  // This is just a temporary variable.
+  $form_state['view']->theme = $form_state['values']['theme'];
+
+  views_ui_cache_set($form_state['view']);
+  $form_state['rerender'] = TRUE;
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Page callback for views tag autocomplete
+ */
+function views_ui_autocomplete_tag($string = '') {
+  $matches = array();
+  // get matches from default views:
+  views_include('view');
+  $views = views_discover_default_views();
+  foreach ($views as $view) {
+    if (!empty($view->tag) && strpos($view->tag, $string) === 0) {
+      $matches[$view->tag] = $view->tag;
+    }
+  }
+
+  if ($string) {
+    $result = db_query_range("SELECT DISTINCT tag FROM {views_view} WHERE LOWER(tag) LIKE LOWER('%s%%')", $string, 0, 10 - count($matches));
+    while ($view = db_fetch_object($result)) {
+      $matches[$view->tag] = check_plain($view->tag);
+    }
+  }
+
+  drupal_json($matches);
+}
+
+// ------------------------------------------------------------------
+// Get information from the Views data
+
+function _views_weight_sort($a, $b) {
+  if ($a['weight'] != $b['weight']) {
+    return $a['weight'] < $b['weight'] ? -1 : 1;
+  }
+  if ($a['title'] != $b['title']) {
+    return $a['title'] < $b['title'] ? -1 : 1;
+  }
+
+  return 0;
+}
+
+/**
+ * Fetch a list of all base tables available
+ *
+ * @return
+ *   A keyed array of in the form of 'base_table' => 'Description'.
+ */
+function views_fetch_base_tables() {
+  static $base_tables = array();
+  if (empty($base_tables)) {
+    $weights = array();
+    $tables = array();
+    $data = views_fetch_data();
+    foreach ($data as $table => $info) {
+      if (!empty($info['table']['base'])) {
+        $tables[$table] = array(
+          'title' => $info['table']['base']['title'],
+          'description' => $info['table']['base']['help'],
+          'weight' => !empty($info['table']['base']['weight']) ? $info['table']['base']['weight'] : 0,
+        );
+      }
+    }
+    uasort($tables, '_views_weight_sort');
+    $base_tables = $tables;
+  }
+
+  return $base_tables;
+}
+
+function _views_sort_types($a, $b) {
+  if ($a['group'] != $b['group']) {
+    return $a['group'] < $b['group'] ? -1 : 1;
+  }
+
+  if ($a['title'] != $b['title']) {
+    return $a['title'] < $b['title'] ? -1 : 1;
+  }
+
+  return 0;
+}
+
+/**
+ * Fetch a list of all fields available for a given base type.
+ *
+ * @return
+ *   A keyed array of in the form of 'base_table' => 'Description'.
+ */
+function views_fetch_fields($base, $type) {
+  static $fields = array();
+  if (empty($fields)) {
+    $data = views_fetch_data();
+    $start = views_microtime();
+    // This constructs this ginormous multi dimensional array to
+    // collect the important data about fields. In the end,
+    // the structure looks a bit like this (using nid as an example)
+    // $strings['nid']['filter']['title'] = 'string'.
+    //
+    // This is constructed this way because the above referenced strings
+    // can appear in different places in the actual data structure so that
+    // the data doesn't have to be repeated a lot. This essentially lets
+    // each field have a cheap kind of inheritance.
+
+    foreach ($data as $table => $table_data) {
+      $bases = array();
+      $strings = array();
+      $skip_bases = array();
+      foreach ($table_data as $field => $info) {
+        // Collect table data from this table
+        if ($field == 'table') {
+          // calculate what tables this table can join to.
+          if (!empty($info['join'])) {
+            $bases = array_keys($info['join']);
+          }
+          // And it obviously joins to itself.
+          $bases[] = $table;
+          continue;
+        }
+        foreach (array('field', 'sort', 'filter', 'argument', 'relationship') as $key) {
+          if (!empty($info[$key])) {
+            if (!empty($info[$key]['skip base'])) {
+              foreach ((array) $info[$key]['skip base'] as $base_name) {
+                $skip_bases[$field][$key][$base_name] = TRUE;
+              }
+            }
+            elseif (!empty($info['skip base'])) {
+              foreach ((array) $info['skip base'] as $base_name) {
+                $skip_bases[$field][$key][$base_name] = TRUE;
+              }
+            }
+            foreach (array('title', 'group', 'help', 'base') as $string) {
+              // First, try the lowest possible level
+              if (!empty($info[$key][$string])) {
+                $strings[$field][$key][$string] = $info[$key][$string];
+              }
+              // Then try the field level
+              elseif (!empty($info[$string])) {
+                $strings[$field][$key][$string] = $info[$string];
+              }
+              // Finally, try the table level
+              elseif (!empty($table_data['table'][$string])) {
+                $strings[$field][$key][$string] = $table_data['table'][$string];
+              }
+              else {
+                if ($string != 'base') {
+                  $strings[$field][$key][$string] = t("Error: missing @component", array('@component' => $string));
+                }
+              }
+            }
+          }
+        }
+      }
+      foreach ($bases as $base_name) {
+        foreach ($strings as $field => $field_strings) {
+          foreach ($field_strings as $type_name => $type_strings) {
+            if (empty($skip_bases[$field][$type_name][$base_name])) {
+              $fields[$base_name][$type_name]["$table.$field"] = $type_strings;
+            }
+          }
+        }
+      }
+    }
+//    vsm('Views UI data build time: ' . (views_microtime() - $start) * 1000 . ' ms');
+  }
+
+  // If we have an array of base tables available, go through them
+  // all and add them together. Duplicate keys will be lost and that's
+  // Just Fine.
+  if (is_array($base)) {
+    $strings = array();
+    foreach ($base as $base_table) {
+      if (isset($fields[$base_table][$type])) {
+        $strings += $fields[$base_table][$type];
+      }
+    }
+    uasort($strings, '_views_sort_types');
+    return $strings;
+  }
+
+  if (isset($fields[$base][$type])) {
+    uasort($fields[$base][$type], '_views_sort_types');
+    return $fields[$base][$type];
+  }
+  return array();
+}
+
+/**
+ * Fetch a list of all base tables available
+ *
+ * @param $type
+ *   Either 'display', 'style' or 'row'
+ * @param $key
+ *   For style plugins, this is an optional type to restrict to. May be 'normal',
+ *   'summary', 'feed' or others based on the neds of the display.
+ * @param $base
+ *   An array of possible base tables.
+ *
+ * @return
+ *   A keyed array of in the form of 'base_table' => 'Description'.
+ */
+function views_fetch_plugin_names($type, $key = NULL, $base = array()) {
+  $data = views_fetch_plugin_data();
+
+  $plugins[$type] = array();
+
+  foreach ($data[$type] as $id => $plugin) {
+    // Skip plugins that don't conform to our key.
+    if ($key && (empty($plugin['type']) || $plugin['type'] != $key)) {
+      continue;
+    }
+    if (empty($plugin['no ui']) && (empty($base) || empty($plugin['base']) || array_intersect($base, $plugin['base']))) {
+      $plugins[$type][$id] = $plugin['title'];
+    }
+  }
+
+  if (!empty($plugins[$type])) {
+    asort($plugins[$type]);
+    return $plugins[$type];
+  }
+  // fall-through
+  return array();
+}
+
+
+/**
+ * Theme the form for the table style plugin
+ */
+function theme_views_ui_style_plugin_table($form) {
+  $output = drupal_render($form['description_markup']);
+
+  $header = array(
+    t('Field'),
+    t('Column'),
+    t('Separator'),
+    array(
+      'data' => t('Sortable'),
+      'align' => 'center',
+    ),
+    array(
+      'data' => t('Default sort'),
+      'align' => 'center',
+    ),
+  );
+  $rows = array();
+  foreach (element_children($form['columns']) as $id) {
+    $row = array();
+    $row[] = drupal_render($form['info'][$id]['name']);
+    $row[] = drupal_render($form['columns'][$id]);
+    $row[] = drupal_render($form['info'][$id]['separator']);
+    if (!empty($form['info'][$id]['sortable'])) {
+      $row[] = array(
+        'data' => drupal_render($form['info'][$id]['sortable']),
+        'align' => 'center',
+      );
+      $row[] = array(
+        'data' => drupal_render($form['default'][$id]),
+        'align' => 'center',
+      );
+    }
+    else {
+      $row[] = '';
+      $row[] = '';
+    }
+    $rows[] = $row;
+  }
+
+  // Add the special 'None' row.
+  $rows[] = array(t('None'), '', '', '', array('align' => 'center', 'data' => drupal_render($form['default'][-1])));
+
+  $output .= theme('table', $header, $rows);
+  $output .= drupal_render($form);
+  return $output;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/ajax.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/ajax.inc
new file mode 100644
index 0000000..9915863
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/ajax.inc
@@ -0,0 +1,178 @@
+<?php
+
+/**
+ * @file ajax.inc
+ *
+ * Handles the server side AJAX interactions of Views.
+ *
+ * @defgroup ajax Views ajax library
+ * @{
+ */
+
+/**
+ * Menu callback to load a view via AJAX.
+ */
+function views_ajax() {
+  if (isset($_REQUEST['view_name']) && isset($_REQUEST['view_display_id'])) {
+    $name = $_REQUEST['view_name'];
+    $display_id = $_REQUEST['view_display_id'];
+    $args = isset($_REQUEST['view_args']) && $_REQUEST['view_args'] !== '' ? explode('/', $_REQUEST['view_args']) : array();
+    $path = isset($_REQUEST['view_path']) ? $_REQUEST['view_path'] : NULL;
+    $dom_id = isset($_REQUEST['view_dom_id']) ? intval($_REQUEST['view_dom_id']) : NULL;
+    $pager_element = isset($_REQUEST['pager_element']) ? intval($_REQUEST['pager_element']) : NULL;
+    views_include('ajax');
+    $object = new stdClass();
+
+    $object->status = FALSE;
+    $object->display = '';
+
+    $arg = explode('/', $_REQUEST['view_path']);
+
+    if ($arg[0] == 'admin' || (variable_get('node_admin_theme', '0') && $arg[0] == 'node' && ($arg[1] == 'add' || $arg[2] == 'edit'))) {
+        global $custom_theme;
+        $custom_theme = variable_get('admin_theme', '0');
+        drupal_add_css(drupal_get_path('module', 'system') .'/admin.css', 'module');
+    }
+    // Load the view.
+    if ($view = views_get_view($name)) {
+      if ($view->access($display_id)) {
+
+        // Fix 'q' for paging.
+        if (!empty($path)) {
+          $_GET['q'] = $path;
+        }
+
+        // Override the display's pager_element with the one actually used.
+        if (isset($pager_element)) {
+          $view->display[$display_id]->handler->set_option('pager_element', $pager_element);
+        }
+        // Reuse the same DOM id so it matches that in Drupal.settings.
+        $view->dom_id = $dom_id;
+
+        $object->status = TRUE;
+        $object->display .= $view->preview($display_id, $args);
+        // Get the title after the preview call, to let it set
+        // up both the view's current display and arguments
+        $object->title = $view->get_title();
+        // Register the standard JavaScript callback.
+        $object->__callbacks = array('Drupal.Views.Ajax.ajaxViewResponse');
+        // Allow other modules to extend the data returned.
+        drupal_alter('ajax_data', $object, 'views', $view);
+      }
+    }
+    $messages = theme('status_messages');
+    $object->messages = $messages ? '<div class="views-messages">' . $messages . '</div>' : '';
+
+    views_ajax_render($object);
+  }
+}
+
+/**
+ * Simple render function to make sure output is what we want.
+ *
+ * This function renders an object into JSON, and that object contains
+ * commands to the ajax response parser on the other side. The actual
+ * commands that can be sent are completely dependent upon the client
+ * javascript parser, which can be anything, but this function assumes
+ * that 'display', at least, will be displayed in some kind of ajax
+ * spot or popup.
+ */
+function views_ajax_render($output = NULL, $title = NULL, $url = NULL, $js = NULL) {
+  if (empty($output)) {
+    $output->display = t('Server reports invalid input error.');
+    $output->title = t('Error');
+  }
+  elseif (!is_object($output)) {
+    $temp = new stdClass();
+    $temp->display = $output;
+    $temp->title = $title;
+    $temp->url = $url;
+    $output = $temp;
+  }
+  if (!empty($js)) {
+    $output->js = $js;
+  }
+
+  drupal_json($output);
+  exit;
+}
+
+/**
+ * Wrapper around drupal_build_form to handle some AJAX stuff automatically.
+ * This makes some assumptions about the client.
+ */
+function views_ajax_form_wrapper($form_id, &$form_state) {
+  // This won't override settings already in.
+  $form_state += array(
+    'rerender' => FALSE,
+    'no_redirect' => !empty($form_state['ajax']),
+  );
+
+  $output = drupal_build_form($form_id, $form_state);
+  if (!empty($form_state['ajax']) && empty($form_state['executed'])) {
+    // If the form didn't execute and we're using ajax, build up a
+    // json command object to render.
+    $object = new stdClass();
+    $object->display = '';
+    if ($messages = theme('status_messages')) {
+      $object->display = '<div class="views-messages">' . $messages . '</div>';
+    }
+    $object->display .= $output;
+
+    $object->title = empty($form_state['title']) ? '' : $form_state['title'];
+    if (!empty($form_state['help_topic'])) {
+      $module = !empty($form_state['help_module']) ? $form_state['help_module'] : 'views';
+      $object->title = theme('advanced_help_topic', $module, $form_state['help_topic']) . $object->title;
+    }
+    $object->url = empty($form_state['url']) ? url($_GET['q'], array('absolute' => TRUE)) : $form_state['url'];
+    $object->js = empty($form_state['js settings']) ? NULL : $form_state['js settings'];
+    if (!empty($form_state['#section'])) {
+      $object->hilite = '.' . views_ui_item_css($form_state['#section']);
+    }
+
+    $output = $object;
+  }
+
+  // These forms have the title built in, so set the title here:
+  if (empty($form_state['ajax']) && !empty($form_state['title'])) {
+    drupal_set_title($form_state['title']);
+  }
+
+  return $output;
+}
+
+
+/**
+ * Page callback for views user autocomplete
+ */
+function views_ajax_autocomplete_user($string = '') {
+  // The user enters a comma-separated list of tags. We only autocomplete the last tag.
+  $array = drupal_explode_tags($string);
+
+  // Fetch last tag
+  $last_string = trim(array_pop($array));
+  $matches = array();
+  if ($last_string != '') {
+    $prefix = count($array) ? implode(', ', $array) . ', ' : '';
+
+    if (strpos('anonymous', strtolower($last_string)) !== FALSE) {
+      $matches[$prefix . 'Anonymous'] = 'Anonymous';
+    }
+    $result = db_query_range("SELECT name FROM {users} WHERE LOWER(name) LIKE LOWER('%s%%')", $last_string, 0, 10);
+
+    while ($account = db_fetch_object($result)) {
+      $n = $account->name;
+      // Commas and quotes in terms are special cases, so encode 'em.
+      if (strpos($account->name, ',') !== FALSE || strpos($account->name, '"') !== FALSE) {
+        $n = '"' . str_replace('"', '""', $account->name) . '"';
+      }
+      $matches[$prefix . $n] = check_plain($account->name);
+    }
+  }
+
+  drupal_json($matches);
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/analyze.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/analyze.inc
new file mode 100644
index 0000000..450efb2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/analyze.inc
@@ -0,0 +1,108 @@
+<?php
+
+/**
+ * @file
+ * Contains the view analyze tool code.
+ *
+ * This tool is a small plugin manager to perform analysis on a view and
+ * report results to the user. This tool is meant to let modules that
+ * provide data to Views also help users properly use that data by
+ * detecting invalid configurations. Views itself comes with only a
+ * small amount of analysis tools, but more could easily be added either
+ * by modules or as patches to Views itself.
+ */
+
+/**
+ * Analyze a review and return the results.
+ *
+ * @return
+ *   An array of analyze results organized into arrays keyed by 'ok',
+ *   'warning' and 'error'.
+ */
+function views_analyze_view(&$view) {
+  $view->init_display();
+  $messages = module_invoke_all('views_analyze', $view);
+
+  return $messages;
+}
+
+/**
+ * Format the analyze result into a message string.
+ *
+ * This is based upon the format of drupal_set_message which uses separate
+ * boxes for "ok", "warning" and "error".
+ */
+function views_analyze_format_result($view, $messages) {
+  if (empty($messages)) {
+    $messages = array(views_ui_analysis(t('View analysis can find nothing to report.'), 'ok'));
+  }
+
+  $types = array('ok' => array(), 'warning' => array(), 'error' => array());
+  foreach ($messages as $message) {
+    if (empty($types[$message['type']])) {
+      $types[$message['type']] = array();
+    }
+    $types[$message['type']][] = $message['message'];
+  }
+
+  $output = '';
+  foreach ($types as $type => $messages) {
+    $message = '';
+    if (count($messages) > 1) {
+      $message = theme('item_list', $messages);
+    }
+    else if ($messages) {
+      $message = array_shift($messages);
+    }
+
+    if ($message) {
+      $output .= "<div class=\"$type\">$message</div>";
+    }
+  }
+
+  return $output;
+}
+
+/**
+ * Format an analysis message.
+ *
+ * This tool should be called by any module responding to the analyze hook
+ * to properly format the message. It is usually used in the form:
+ * @code
+ *   $ret[] = views_ui_analysis(t('This is the message'), 'ok');
+ * @endcode
+ *
+ * The 'ok' status should be used to provide information about things
+ * that are acceptable. In general analysis isn't interested in 'ok'
+ * messages, but instead the 'warning', which is a category for items
+ * that may be broken unless the user knows what he or she is doing,
+ * and 'error' for items that are definitely broken are much more useful.
+ *
+ * @param $messages
+ *   The message to report.
+ * @param $type
+ *   The type of message. This should be "ok", "warning" or "error". Other
+ *   values can be used but how they are treated by the output routine
+ *   is undefined.
+ */
+function views_ui_analysis($message, $type = 'error') {
+  return array('message' => $message, 'type' => $type);
+}
+
+/**
+ * Implementation of hook_views_analyze().
+ *
+ * This is the basic views analysis that checks for very minimal problems.
+ * There are other analysis tools in core specific sections, such as
+ * node.views.inc as well.
+ */
+function views_ui_views_analyze($view) {
+  $ret = array();
+  // Check for something other than the default display:
+  if (count($view->display) < 2) {
+    $ret[] = views_ui_analysis(t('This view has only a default display and therefore will not be placed anywhere on your site; perhaps you want to add a page or a block display.'), 'warning');
+  }
+
+  return $ret;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/base.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/base.inc
new file mode 100644
index 0000000..126bde3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/base.inc
@@ -0,0 +1,127 @@
+<?php
+/**
+ * @file
+ *
+ * Provides the basic object definitions used by plugins and handlers.
+ */
+
+/**
+ * Basic definition for many views objects
+ */
+class views_object {
+  /**
+   * Except for displays, options for the object will be held here.
+   */
+  var $options = array();
+  /**
+   * Information about options for all kinds of purposes will be held here.
+   * @code
+   * 'option_name' => array(
+   *  - 'default' => default value,
+   *  - 'translatable' => TRUE/FALSE (wrap in t() on export if true),
+   *  - 'contains' => array of items this contains, with its own defaults, etc.
+   *      If contains is set, the default will be ignored and assumed to
+   *      be array()
+   *
+   *  ),
+   *  @endcode
+   * Each option may have any of the following functions:
+   *  - export_option_OPTIONNAME -- Special export handling if necessary.
+   *  - translate_option_OPTIONNAME -- Special handling for translating data
+   *    within the option, if necessary.
+   */
+  function option_definition() { return array(); }
+
+  /**
+   * Views handlers use a special construct function so that we can more
+   * easily construct them with variable arguments.
+   */
+  function construct() { $this->set_default_options(); }
+
+  /**
+   * Set default options on this object. Called by the constructor in a
+   * complex chain to deal with backward compatibility.
+   */
+  function options(&$options) { }
+
+  /**
+   * Set default options.
+   * For backward compatibility, it sends the options array; this is a
+   * feature that will likely disappear at some point.
+   */
+  function set_default_options() {
+    $this->_set_option_defaults($this->options, $this->option_definition());
+
+    // Retained for complex defaults plus backward compatibility.
+    $this->options($this->options);
+  }
+
+  function _set_option_defaults(&$storage, $options, $level = 0) {
+    foreach ($options as $option => $definition) {
+      if (isset($definition['contains']) && is_array($definition['contains'])) {
+        $storage[$option] = array();
+        $this->_set_option_defaults($storage[$option], $definition['contains'], $level++);
+      }
+      elseif (!empty($definition['translatable']) && !empty($definition['default'])) {
+        $storage[$option] = t($definition['default']);
+      }
+      else {
+        $storage[$option] = isset($definition['default']) ? $definition['default'] : NULL;
+      }
+    }
+  }
+
+  /**
+   * Unpack options over our existing defaults, drilling down into arrays
+   * so that defaults don't get totally blown away.
+   */
+  function unpack_options(&$storage, $options, $definition = NULL, $check = TRUE) {
+    if ($check && !is_array($options)) {
+      return;
+    }
+
+    if (!isset($definition)) {
+      $definition = $this->option_definition();
+    }
+
+    foreach ($options as $key => $value) {
+      if (is_array($value)) {
+        if (!isset($storage[$key]) || !is_array($storage[$key])) {
+          $storage[$key] = array();
+        }
+
+        $this->unpack_options($storage[$key], $value, isset($definition[$key]['contains']) ? $definition[$key]['contains'] : array(), FALSE);
+      }
+      else if (!empty($definition[$key]['translatable']) && !empty($value)) {
+        $storage[$key] = t($value);
+      }
+      else {
+        $storage[$key] = $value;
+      }
+    }
+  }
+
+  /**
+   * Let the handler know what its full definition is.
+   */
+  function set_definition($definition) {
+    $this->definition = $definition;
+    if (isset($definition['field'])) {
+      $this->real_field = $definition['field'];
+    }
+  }
+
+  function destroy() {
+    if (isset($this->view)) {
+      unset($this->view);
+    }
+
+    if (isset($this->display)) {
+      unset($this->display);
+    }
+
+    if (isset($this->query)) {
+      unset($this->query);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/cache.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/cache.inc
new file mode 100644
index 0000000..2323ad4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/cache.inc
@@ -0,0 +1,293 @@
+<?php
+/**
+ * @file cache.inc
+ *
+ * Functions to load Views' data so that it knows what is available to
+ * build queries from.
+ */
+
+/**
+ * Load views files on behalf of modules.
+ */
+function _views_include_handlers() {
+  views_module_include('views.inc');
+}
+
+/**
+ * Load default views files on behalf of modules.
+ */
+function _views_include_default_views() {
+  views_module_include('views_default.inc');
+}
+
+/**
+ * Fetch Views' data from the cache
+ */
+function _views_fetch_data($table = NULL) {
+  static $cache = NULL;
+  if (!isset($cache)) {
+    $start = views_microtime();
+    // NOTE: This happens whether we retrieve them from cache or otherwise.
+    views_include_handlers();
+
+    $data = views_cache_get('views_data', TRUE);
+    if (!empty($data->data)) {
+      $cache = $data->data;
+    }
+
+    if (empty($cache)) {
+      $cache = module_invoke_all('views_data');
+      foreach (module_implements('views_data_alter') as $module) {
+        $function = $module . '_views_data_alter';
+        $function($cache);
+      }
+
+      views_cache_set('views_data', $cache, TRUE);
+    }
+
+    vpr('Views data build time: ' . (views_microtime() - $start) * 1000 . ' ms');
+  }
+
+  if (!$table) {
+    return $cache;
+  }
+  if (isset($cache[$table])) {
+    return $cache[$table];
+  }
+
+  // Return an empty array if there is no match.
+  return array();
+}
+
+/**
+ * Fetch the plugin data from cache.
+ */
+function _views_fetch_plugin_data($type = NULL, $plugin = NULL) {
+  static $cache = NULL;
+  if (!isset($cache)) {
+    $start = views_microtime();
+    views_include_handlers();
+
+    $cache = views_discover_plugins();
+
+    vpr('Views plugins build time: ' . (views_microtime() - $start) * 1000 . ' ms');
+  }
+
+  if (!$type && !$plugin) {
+    return $cache;
+  }
+  else if (!$plugin) {
+    // Not in the if above so the else below won't run
+    if (isset($cache[$type])) {
+      return $cache[$type];
+    }
+  }
+  else if (isset($cache[$type][$plugin])) {
+    return $cache[$type][$plugin];
+  }
+
+  // Return an empty array if there is no match.
+  return array();
+}
+
+/**
+ * Scan all modules for default views and rebuild the default views cache.
+ *
+ * @return An associative array of all known default views.
+ */
+function _views_discover_default_views() {
+  static $cache = NULL;
+
+  if (!isset($cache)) {
+    $index = views_cache_get('views_default_views_index', TRUE);
+
+    // Retrieve each cached default view
+    if (isset($index->data) && is_array($index->data)) {
+      $cache = array();
+      foreach ($index->data as $view_name) {
+        $data = views_cache_get('views_default:' . $view_name, TRUE);
+        if (isset($data->data) && is_object($data->data)) {
+          $cache[$view_name] = $data->data;
+        }
+      }
+    }
+    // If missing index, rebuild the cache
+    else {
+      views_include_default_views();
+      $cache = array();
+
+      foreach(module_implements('views_default_views') as $module) {
+        $results = call_user_func($module . "_views_default_views");
+        if (!empty($results) && is_array($results)) {
+          foreach($results as $name => $view) {
+            // Only views with a sufficiently high api version are eligible.
+            if (!empty($view->api_version) && $view->api_version >= 2) {
+              // Do not cache dead handlers.
+              $view->destroy();
+              if (!isset($cache[$name])) {
+                $cache[$name] = $view;
+              }
+              else {
+                watchdog('view', "View name '@name' is already taken", array('@name' => $name), WATCHDOG_ERROR);
+              }
+            }
+          }
+        }
+      }
+
+      // Allow modules to modify default views before they are cached.
+      drupal_alter('views_default_views', $cache);
+
+      // Cache the index
+      $index = array_keys($cache);
+      views_cache_set('views_default_views_index', $index, TRUE);
+
+      // Cache each view
+      foreach ($cache as $name => $view) {
+        views_cache_set('views_default:' . $name, $view, TRUE);
+      }
+    }
+  }
+
+  return $cache;
+}
+
+/**
+ * Set a cached item in the views cache.
+ *
+ * This is just a convenience wrapper around cache_set().
+ *
+ * @param $cid
+ *   The cache ID of the data to store.
+ * @param $data
+ *   The data to store in the cache. Complex data types will be automatically serialized before insertion.
+ *   Strings will be stored as plain text and not serialized.
+ * @param $use_language
+ *   If TRUE, the data will be cached specific to the currently active language.
+ */
+function views_cache_set($cid, $data, $use_language = FALSE) {
+  global $language;
+
+  if (variable_get('views_skip_cache', FALSE)) {
+    return;
+  }
+  if ($use_language) {
+    $cid .= ':' . $language->language;
+  }
+
+  cache_set($cid, $data, 'cache_views');
+}
+
+/**
+ * Return data from the persistent views cache.
+ *
+ * This is just a convenience wrapper around cache_get().
+ *
+ * @param $cid
+ *   The cache ID of the data to retrieve.
+ * @param $use_language
+ *   If TRUE, the data will be requested specific to the currently active language.
+ */
+function views_cache_get($cid, $use_language = FALSE) {
+  global $language;
+
+  if (variable_get('views_skip_cache', FALSE)) {
+    return 0;
+  }
+  if ($use_language) {
+    $cid .= ':' . $language->language;
+  }
+
+  return cache_get($cid, 'cache_views');
+}
+
+/**
+ * @defgroup views_object_cache Non-volatile cache storage
+ * @{
+ * The non-volatile object cache is used to store an object while it is
+ * being edited, so that we don't have to save until we're completely
+ * done. The cache should be 'cleaned' on a regular basis, meaning to
+ * remove old objects from the cache, but otherwise the data in this
+ * cache must remain stable, as it includes unsaved changes.
+ */
+
+/**
+ * Get an object from the non-volatile Views cache.
+ *
+ * This function caches in memory as well, so that multiple calls to this
+ * will not result in multiple database reads.
+ *
+ * @param $obj
+ *   A 32 character or less string to define what kind of object is being
+ *   stored; primarily this is used to prevent collisions.
+ * @param $name
+ *   The name of the view (or other object) being stored.
+ * @param $skip_cache
+ *   Skip the memory cache, meaning this must be read from the db again.
+ *
+ * @return
+ *   The data that was cached.
+ */
+function views_object_cache_get($obj, $name, $skip_cache = FALSE) {
+  static $cache = array();
+  $key = "$obj:$name";
+  if ($skip_cache) {
+    unset($cache[$key]);
+  }
+
+  if (!array_key_exists($key, $cache)) {
+    $data = db_fetch_object(db_query("SELECT * FROM {views_object_cache} WHERE sid = '%s' AND obj = '%s' AND name = '%s'", session_id(), $obj, $name));
+    if ($data) {
+      $cache[$key] = unserialize($data->data);
+    }
+  }
+  return isset($cache[$key]) ? $cache[$key] : NULL;
+}
+
+/**
+ * Store an object in the non-volatile Views cache.
+ *
+ * @param $obj
+ *   A 32 character or less string to define what kind of object is being
+ *   stored; primarily this is used to prevent collisions.
+ * @param $name
+ *   The name of the view (or other object) being stored.
+ * @param $cache
+ *   The object to be cached. This will be serialized prior to writing.
+ */
+function views_object_cache_set($obj, $name, $cache) {
+  views_object_cache_clear($obj, $name);
+  db_query("INSERT INTO {views_object_cache} (sid, obj, name, data, updated) VALUES ('%s', '%s', '%s', '%s', %d)", session_id(), $obj, $name, serialize($cache), time());
+}
+
+/**
+ * Remove an object from the non-volatile Views cache
+ *
+ * @param $obj
+ *   A 32 character or less string to define what kind of object is being
+ *   stored; primarily this is used to prevent collisions.
+ * @param $name
+ *   The name of the view (or other object) being stored.
+ */
+function views_object_cache_clear($obj, $name) {
+  db_query("DELETE FROM {views_object_cache} WHERE sid = '%s' AND obj = '%s' AND name = '%s'", session_id(), $obj, $name);
+}
+
+/**
+ * Remove all objects in the object cache that are older than the
+ * specified age.
+ *
+ * @param $age
+ *   The minimum age of objects to remove, in seconds. For example, 86400 is
+ *   one day. Defaults to 7 days.
+ */
+function views_object_cache_clean($age = NULL) {
+  if (empty($age)) {
+    $age = 86400 * 7; // 7 days
+  }
+  db_query("DELETE FROM {views_object_cache} WHERE updated < %d", time() - $age);
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/convert.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/convert.inc
new file mode 100644
index 0000000..590e58d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/convert.inc
@@ -0,0 +1,548 @@
+<?php
+/**
+ * @file convert.inc
+ *
+ * Contains forms and routines to convert older views to newer views.
+ */
+
+/**
+ * Page callback for the tools - Views 1 convert page
+ */
+function views_ui_admin_convert() {
+  if (!db_table_exists('view_view')) {
+    return t('There are no Views 1 views stored in the database to convert.');
+  }
+  $items = array();
+  $sorts = array();
+
+  $header = array(
+    array('data' => t('View name'), 'field' => 'name', 'sort' => 'asc'),
+    array('data' => t('Description')),
+    array('data' => t('Operations')),
+  );
+  $current_views = views_get_all_views();
+
+  $result = db_query("SELECT v.* FROM {view_view} v");
+  while ($view = db_fetch_object($result)) {
+    $ops = array();
+    if (!isset($current_views[$view->name])) {
+      $ops[] = l(t('Convert'), "admin/build/views1/convert/$view->name");
+    }
+    else {
+      $ops[] = t('Converted');
+    }
+    $ops[] = l(t('Delete'), "admin/build/views1/delete/$view->name");
+
+    $item = array();
+    $item[] = check_plain($view->name);
+    $item[] = check_plain($view->description);
+    $item[] = implode(' | ', $ops);
+    $items[] = $item;
+
+    $ts = tablesort_init($header);
+    switch ($ts['sql']) {
+      case 'name':
+      default:
+        $sorts[] = $item[0];
+        break;
+      case 'title':
+        $sorts[] = $item[1];
+        break;
+    }
+  }
+
+  if (!empty($ts)) {
+    if (strtolower($ts['sort']) == 'desc') {
+      arsort($sorts);
+    }
+    else {
+      asort($sorts);
+    }
+  }
+
+  $i = array();
+  foreach ($sorts as $id => $title) {
+    $i[] = $items[$id];
+  }
+  $output = t('The table below lists Views version 1 views that are stored in the database. You can either convert them to work in Views version 2, or delete them. The views are convertible only if there is no Views 2 view with the same name.');
+  $output .= theme('table', $header, $i);
+
+  $output .= drupal_get_form('views_ui_convert_cleanup_form');
+  return $output;
+}
+
+/**
+ * Provide form to clean up Views 1 tables.
+ */
+function views_ui_convert_cleanup_form() {
+  $form['verify'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Remove all Views 1 tables'),
+    '#description' => t('Check this box and then click clean up to drop all Views 1 tables. Warning: this operation will not be reversible! Do this only if you are sure you no longer need this data.'),
+    '#required' => TRUE,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Clean up'),
+  );
+
+  return $form;
+}
+
+function views_ui_convert_cleanup_form_submit($form, $form_state) {
+  if (empty($form_state['values']['verify'])) {
+    drupal_set_message('Please check the box to verify you want to destroy your Views 1 table data.');
+    return;
+  }
+
+  $ret = array();
+  if (db_table_exists('view_view')) {
+    db_drop_table($ret, 'view_view');
+  }
+  if (db_table_exists('view_sort')) {
+    db_drop_table($ret, 'view_sort');
+  }
+  if (db_table_exists('view_argument')) {
+    db_drop_table($ret, 'view_argument');
+  }
+  if (db_table_exists('view_tablefield')) {
+    db_drop_table($ret, 'view_tablefield');
+  }
+  if (db_table_exists('view_filter')) {
+    db_drop_table($ret, 'view_filter');
+  }
+  if (db_table_exists('view_exposed_filter')) {
+    db_drop_table($ret, 'view_exposed_filter');
+  }
+
+  drupal_set_message(t('All Views 1 tables have been removed.'));
+}
+
+/**
+ * Page callback for the tools - Views 1 convert page
+ */
+function views_ui_convert1($name) {
+  $old = views1_load($name);
+  if (!$old) {
+    return t('Unable to find view.');
+  }
+
+  $view = views1_import($old);
+
+  if ($view) {
+    views_ui_cache_set($view);
+    drupal_goto('admin/build/views/edit/' . $view->name);
+  }
+  else {
+    return t('Unable to convert view.');
+  }
+}
+
+/**
+ * Page to delete a Views 1 view.
+ */
+function views_ui_delete1_confirm(&$form_state, $vid) {
+  $form_state['vid'] = $vid;
+  $form = array();
+
+  $cancel = 'admin/build/views/tools/convert';
+  if (!empty($_REQUEST['cancel'])) {
+    $cancel = $_REQUEST['cancel'];
+  }
+  return confirm_form($form,
+                  t('Are you sure you want to delete the view %name?', array('%name' => $view->name)),
+                  $cancel,
+                  t('This action cannot be undone.'),
+                  t('Delete'),
+                  t('Cancel'));
+}
+
+/**
+ * Submit handler to delete a view.
+ */
+function views_ui_delete1_confirm_submit(&$form, &$form_state) {
+  views1_delete($form_state['vid']);
+  drupal_set_message(t('The view has been deleted'));
+  $form_state['redirect'] = 'admin/build/views/tools/convert';
+}
+
+/**
+ * Convert a Views 1 view to a Views 2 view.
+ */
+function views1_import($imported) {
+  views_include_handlers();
+  views_module_include('views_convert.inc');
+
+  $view = views_new_view();
+
+  $view->name = $imported->name;
+  $view->description = $imported->description;
+
+  if (!empty($imported->page) && !empty($imported->url)) {
+    $page_display = $view->add_display('page');
+  }
+  if (!empty($imported->block)) {
+    $block_display = $view->add_display('block');
+  }
+  $view->init_display();
+
+  $handler = &$view->display['default']->handler;
+  $handler->set_option('title', $imported->page_title);
+  $handler->set_option('header', $imported->page_header);
+  $handler->set_option('header_format', $imported->page_header_format);
+  $handler->set_option('footer', $imported->page_footer);
+  $handler->set_option('footer_format', $imported->page_footer_format);
+  $handler->set_option('empty', $imported->page_empty);
+  $handler->set_option('empty_format', $imported->page_empty_format);
+
+  $handler->set_option('use_pager', $imported->use_pager);
+  $handler->set_option('items_per_page', $imported->nodes_per_page);
+  $handler->set_option('pager_element', 0);
+  $handler->set_option('offset', 0);
+
+  $access = array('type' => 'none', 'role' => array(), 'perm' => '');
+  if ($imported->access) {
+    $access['type'] = 'role';
+    $access['role'] = drupal_map_assoc($imported->access);
+  }
+
+  $handler->set_option('access', $access);
+  if (!empty($imported->page) && !empty($imported->url)) {
+    $handler = &$view->display[$page_display]->handler;
+    $url = str_replace('$arg', '%', $imported->url);
+    $handler->set_option('path', $url);
+    if ($imported->menu) {
+      $menu = array('type' => 'normal');
+      if ($imported->menu_tab) {
+        $menu['type'] = 'tab';
+      }
+      if ($imported->menu_tab_default) {
+        $menu['type'] = 'default tab';
+      }
+      $menu['title'] = $imported->menu_title ? $imported->menu_title : $imported->page_title;
+      $handler->set_option('menu', $menu);
+
+      if ($menu['type'] == 'default tab') {
+        $tab_options = array('type' => 'none');
+        switch ($imported->menu_tab_default_parent_type) {
+          case 'tab':
+          case 'normal':
+            $tab_options['type'] = $imported->menu_tab_default_parent_type;
+            break;
+        }
+      }
+      $tab_options['title'] = $imported->menu_parent_title;
+      $tab_options['weight'] = $imported->menu_parent_tab_weight;
+      $handler->set_option('tab_options', $tab_options);
+    }
+  }
+
+  views1_convert_style($view, $handler, $imported->page_type);
+
+  if (!empty($imported->block)) {
+    $handler = &$view->display[$block_display]->handler;
+
+    if (!empty($imported->block_title)) {
+      if (!empty($imported->page)) {
+        $handler->set_override('title');
+      }
+      $handler->set_option('title', $imported->block_title);
+    }
+
+    if (!empty($imported->page)) {
+      $handler->set_override('use_pager');
+    }
+    $handler->set_option('use_pager', FALSE);
+
+    if ($imported->nodes_per_block != $imported->nodes_per_page) {
+      $handler->set_option('items_per_page', $imported->nodes_per_block);
+      $handler->set_option('offset', 0);
+    }
+
+    if (empty($imported->block_use_page_header)) {
+      if (!empty($imported->page)) {
+        $handler->set_override('header');
+      }
+      if (!empty($imported->block_header)) {
+        $handler->set_option('header', $imported->block_header);
+        $handler->set_option('header_format', $imported->block_header_format);
+      }
+    }
+    if (empty($imported->block_use_page_footer)) {
+      if (!empty($imported->page)) {
+        $handler->set_override('footer');
+      }
+      if (!empty($imported->block_footer)) {
+        $handler->set_option('footer', $imported->block_footer);
+        $handler->set_option('footer_format', $imported->block_footer_format);
+      }
+    }
+    if (empty($imported->block_use_page_empty)) {
+      if (!empty($imported->page)) {
+        $handler->set_override('empty');
+      }
+      if (!empty($imported->block_empty)) {
+        $handler->set_option('empty', $imported->block_empty);
+        $handler->set_option('empty_format', $imported->block_empty_format);
+      }
+    }
+
+    $handler->set_option('use_more', $imported->block_more);
+
+    if (!empty($imported->page)) {
+      $handler->set_override('style_plugin');
+    }
+    views1_convert_style($view, $handler, $imported->block_type);
+  }
+
+  // For each of the fields, arguments, filters, and sorts in the old view,
+  // check if a handler for this item exists in Views 2 and add it,
+  // then see if any other modules want to adapt it using hook_views_convert().
+
+  foreach ($imported->field as $field) {
+    $id = $view->add_item('default', 'field', $field['tablename'], $field['field'], array('label' => $field['label']));
+    if ($view->display_handler->get_option('style_plugin') == 'table') {
+      $options = $view->display_handler->get_option('style_options');
+      if (!empty($field['sortable'])) {
+        $options['info'][$id]['sortable'] = TRUE;
+        if (!empty($field['defaultsort'])) {
+          $options['default'] = $id;
+        }
+      }
+      $view->display_handler->set_option('style_options', $options);
+    }
+    foreach (module_implements('views_convert') as $module) {
+      module_invoke($module, 'views_convert', 'default', 'field', $view, $field, $id);
+    }
+  }
+  foreach ($imported->sort as $field) {
+    $id = $view->add_item('default', 'sort', $field['tablename'], $field['field'], array('order' => $field['sortorder']));
+    foreach (module_implements('views_convert') as $module) {
+      module_invoke($module, 'views_convert', 'default', 'sort', $view, $field, $id);
+    }
+  }
+  $actions = array('ignore', 'not found', 'ignore', 'summary asc', 'summary asc', 'summary desc', 'summary asc', 'empty');
+  foreach ($imported->argument as $id => $field) {
+    if (!empty($imported->view_args_php)) {
+      $field['argoptions']['default_action'] = 'default';
+      $field['argoptions']['default_argument_type'] = 'php';
+      $field['argoptions']['default_argument_php'] = '$args = eval(\''. str_replace("'", "\\'", $imported->view_args_php) .'\');'."\n";
+      $field['argoptions']['default_argument_php'] .= 'if (isset($args['. $field['position'] .'])) {'."\n";
+      $field['argoptions']['default_argument_php'] .= '  return $args['. $field['position'] .'];'."\n";
+      $field['argoptions']['default_argument_php'] .= '}';
+      $field['argoptions']['validate_fail'] = $actions[$field['argdefault']];
+    }
+    else {
+      $field['argoptions']['default_action'] = $actions[$field['argdefault']];
+    }
+    if (!empty($field['title'])) {
+      $field['argoptions']['title'] = $field['title'];
+    }
+    if (!empty($field['wildcard'])) {
+      $field['argoptions']['wildcard'] = $field['wildcard'];
+    }
+    if (!empty($field['wildcard_substitution'])) {
+      $field['argoptions']['wildcard_substitution'] = $field['wildcard_substitution'];
+    }
+    // Arguments didn't used to be identified by table.name so we just have to
+    // leave that out.
+    foreach (module_implements('views_convert') as $module) {
+      module_invoke($module, 'views_convert', 'default', 'argument', $view, $field, NULL);
+    }
+  }
+  foreach ($imported->filter as $key => $field) {
+    $options = $field['value'] == '' ? array() : array('value' => $field['value']);
+    $id = $view->add_item('default', 'filter', $field['tablename'], $field['field'], $options);
+    foreach (module_implements('views_convert') as $module) {
+      module_invoke($module, 'views_convert', 'default', 'filter', $view, $field, $id);
+    }
+    // Store the id in the exposed filter if there is one.
+    foreach ($imported->exposed_filter as $key => $filter) {
+      if ($field['tablename'] == $filter['tablename'] && $field['field'] == $filter['field']) {
+        $imported->exposed_filter[$key]['id'] = $id;
+      }
+    }
+  }
+  // Exposed filters now get added to the filter array, not as a separate array.
+  $count = 0;
+  foreach ($imported->exposed_filter as $field) {
+    $id = $field['id'];
+    $item = $view->get_item('default', 'filter', $id);
+    if (views_get_handler($item['table'], $item['field'], 'filter')) {
+      $item['exposed'] = TRUE;
+
+      // Use the count to emulate the old, hardcoded filter naming.
+      $item['expose']['identifier'] = 'filter' . $count;
+      $item['expose']['label'] = $field['label'];
+      $item['expose']['operator'] = $field['operator'] ? 'op' . $count : '';
+      $item['expose']['optional'] = $field['optional'];
+      $item['expose']['single'] = $field['single'];
+      $view->set_item('default', 'filter', $id, $item);
+    }
+    $count++;
+    foreach (module_implements('views_convert') as $module) {
+      module_invoke($module, 'views_convert', 'default', 'exposed_filter', $view, $field, $id);
+    }
+  }
+
+  return $view;
+}
+
+function views1_convert_style(&$view, &$handler, $type) {
+  switch ($type) {
+    case 'list':
+      $handler->set_option('style_plugin', 'list');
+      $handler->set_option('style_options', array('type' => 'ul'));
+      $handler->set_option('row_plugin', 'fields');
+      break;
+    case 'node':
+      $handler->set_option('row_plugin', 'node');
+      $handler->set_option('row_options', array('teaser' => FALSE, 'links' => TRUE));
+      break;
+    case 'teaser':
+      $handler->set_option('row_plugin', 'node');
+      $handler->set_option('row_options', array('teaser' => TRUE, 'links' => TRUE));
+      break;
+    case 'table':
+      $options = array();
+      $options['columns'] = array();
+      $options['default'] = '';
+      $options['info'] = array();
+      $options['override'] = FALSE;
+      $options['order'] = 'asc';
+
+      $handler->set_option('style_plugin', 'table');
+      $handler->set_option('style_options', $options);
+      break;
+    default:
+      // Ask around if anybody else knows.
+      foreach (module_implements('views_convert') as $module) {
+        module_invoke($module, 'views_convert', $handler->display->id, 'style', $view, $type);
+      }
+  }
+}
+/**
+ * Load a version 1 view from the database.
+ *
+ */
+function views1_load($arg) {
+  static $cache = array();
+  $which = is_numeric($arg) ? 'vid' : 'name';
+  if (isset($cache[$which][$arg])) {
+    return $cache[$which][$arg];
+  }
+
+  $where = (is_numeric($arg) ? "v.vid =  %d" : "v.name = '%s'");
+  $view = db_fetch_object(db_query("SELECT v.* FROM {view_view} v WHERE $where", $arg));
+
+  if (!$view->name) {
+    return NULL;
+  }
+
+  $view->access = ($view->access ? explode(', ', $view->access) : array());
+
+  // load the sorting criteria too.
+  $result = db_query("SELECT * FROM {view_sort} vs WHERE vid = $view->vid ORDER BY position ASC");
+
+  $view->sort = array();
+  while ($sort = db_fetch_array($result)) {
+    if (substr($sort['field'], 0, 2) == 'n.') {
+      $sort['field'] = 'node' . substr($sort['field'], 1);
+    }
+    $sort['id'] = $sort['field'];
+    $bits = explode('.', $sort['field']);
+    $sort['tablename'] = $bits[0];
+    $sort['field'] = $bits[1];
+    $view->sort[$sort['position']] = $sort;
+  }
+
+  $result = db_query("SELECT * FROM {view_argument} WHERE vid = $view->vid ORDER BY position ASC");
+
+  $view->argument = array();
+  while ($arg = db_fetch_array($result)) {
+    $arg['id'] = $arg['type'];
+    $view->argument[$arg['position']] = $arg;
+  }
+
+  $result = db_query("SELECT * FROM {view_tablefield} WHERE vid = $view->vid ORDER BY position ASC");
+
+  $view->field = array();
+  while ($arg = db_fetch_array($result)) {
+    if ($arg['tablename'] == 'n') {
+      $arg['tablename'] = 'node';
+    }
+    $arg['id'] = $arg['fullname'] = "$arg[tablename].$arg[field]";
+    $arg['queryname'] = "$arg[tablename]_$arg[field]";
+    $view->field[] = $arg;
+  }
+
+  $result = db_query("SELECT * FROM {view_filter} WHERE vid = $view->vid ORDER BY position ASC");
+
+  // TODO - Is it safe to ignore this $filters variable? This function depends
+  // on lots of additional code needed to call hook_implements and construct
+  // all the views tables, so using it will add a lot of code to this file.
+  //$filters = _views_get_filters();
+  $view->filter = array();
+  while ($filter = db_fetch_array($result)) {
+    if (substr($filter['field'], 0, 2) == 'n.') {
+      $filter['field'] = 'node' . substr($filter['field'], 1);
+    }
+
+    if ($filter['operator'] == 'AND' ||
+        $filter['operator'] == 'OR' ||
+        $filter['operator'] == 'NOR') {
+        // TODO - need another way to identify this type of filter
+        // without being able to call hook_implements().
+        //|| $filters[$filter['field']]['value-type'] == 'array' ) {
+      if ($filter['value'] !== NULL && $filter['value'] !== '') {
+        $filter['value'] = explode(',', $filter['value']);
+      }
+      else {
+        $filter['value'] = array();
+      }
+    }
+    $filter['id'] = $filter['field'];
+    $bits = explode('.', $filter['field']);
+    $filter['tablename'] = $bits[0];
+    $filter['field'] = $bits[1];
+    $view->filter[$filter['position']] = $filter;
+  }
+
+  $result = db_query("SELECT * FROM {view_exposed_filter} WHERE vid = $view->vid ORDER BY position ASC");
+
+  $view->exposed_filter = array();
+  while ($arg = db_fetch_array($result)) {
+    $arg['id'] = $arg['field'];
+    $view->exposed_filter[] = $arg;
+  }
+
+  $cache['vid'][$view->vid] = $view;
+  $cache['name'][$view->name] = $view;
+
+  return $view;
+}
+
+/**
+ * Delete a version 1 view from the database.
+ *
+ */
+function views1_delete($arg) {
+  static $cache = array();
+  $where = (is_numeric($arg) ? "v.vid =  %d" : "v.name = '%s'");
+  $view = db_fetch_object(db_query("SELECT v.* FROM {view_view} v WHERE $where", $arg));
+
+  if (!$view->name) {
+    return NULL;
+  }
+
+
+
+  $result = db_query("DELETE FROM {view_sort} WHERE vid = $view->vid");
+  $result = db_query("DELETE FROM {view_argument} WHERE vid = $view->vid");
+  $result = db_query("DELETE FROM {view_tablefield} WHERE vid = $view->vid");
+  $result = db_query("DELETE FROM {view_filter} WHERE vid = $view->vid");
+  $result = db_query("DELETE FROM {view_exposed_filter} WHERE vid = $view->vid");
+  $result = db_query("DELETE FROM {view_view} WHERE vid = $view->vid");
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/form.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/form.inc
new file mode 100644
index 0000000..e7c2b88
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/form.inc
@@ -0,0 +1,300 @@
+<?php
+
+/**
+ * @file form.inc
+ * Views' replacements for Drupal's form functions.
+ *
+ */
+function _drupal_build_form($form_id, &$form_state) {
+  // Ensure that we have some defaults.
+
+  // These are defaults only; if already set they will not be overridden.
+  $form_state += array('storage' => NULL, 'submitted' => FALSE, 'input' => $_POST, 'method' => 'post');
+
+  $args = isset($form_state['args']) ? $form_state['args'] : array();
+  $cacheable = FALSE;
+
+  if (isset($_SESSION['batch_form_state'])) {
+    // We've been redirected here after a batch processing : the form has
+    // already been processed, so we grab the post-process $form_state value
+    // and move on to form display. See _batch_finished() function.
+    $form_state = $_SESSION['batch_form_state'];
+    unset($_SESSION['batch_form_state']);
+  }
+  else {
+    // If the incoming $_POST contains a form_build_id, we'll check the
+    // cache for a copy of the form in question. If it's there, we don't
+    // have to rebuild the form to proceed. In addition, if there is stored
+    // form_state data from a previous step, we'll retrieve it so it can
+    // be passed on to the form processing code.
+    if (isset($_POST['form_id']) && $_POST['form_id'] == $form_id && !empty($_POST['form_build_id'])) {
+      $form = form_get_cache($_POST['form_build_id'], $form_state);
+      if (!empty($form['#no_cache']) || empty($form)) {
+        unset($form);
+      }
+    }
+
+    // If the previous bit of code didn't result in a populated $form
+    // object, we're hitting the form for the first time and we need
+    // to build it from scratch.
+    if (!isset($form)) {
+      $form_state['post'] = $form_state['input'];
+      // Use a copy of the function's arguments for manipulation
+      $args_temp = $args;
+      $args_temp[0] = &$form_state;
+      array_unshift($args_temp, $form_id);
+
+      $form = call_user_func_array('drupal_retrieve_form', $args_temp);
+      $form_build_id = 'form-' . md5(mt_rand());
+      $form['#build_id'] = $form_build_id;
+
+      if ($form_state['method'] == 'get' && !isset($form['#method'])) {
+        $form['#method'] = 'get';
+      }
+
+      drupal_prepare_form($form_id, $form, $form_state);
+      // Store a copy of the unprocessed form for caching and indicate that it
+      // is cacheable if #cache will be set.
+      $original_form = $form;
+      $cacheable = TRUE;
+      unset($form_state['post']);
+    }
+    $form['#post'] = $form_state['input'];
+
+    // Now that we know we have a form, we'll process it (validating,
+    // submitting, and handling the results returned by its submission
+    // handlers. Submit handlers accumulate data in the form_state by
+    // altering the $form_state variable, which is passed into them by
+    // reference.
+    drupal_process_form_new($form_id, $form, $form_state);
+
+    // If we were told not to redirect, but not told to re-render, return
+    // here.
+    if (!empty($form_state['executed']) && empty($form_state['rerender'])) {
+      return;
+    }
+
+    if ($cacheable && !empty($form['#cache']) && empty($form['#no_cache'])) {
+      // Caching is done past drupal_process_form so #process callbacks can
+      // set #cache. By not sending the form state, we avoid storing
+      // $form_state['storage'].
+      form_set_cache($form_build_id, $original_form, NULL);
+    }
+  }
+
+  // Most simple, single-step forms will be finished by this point --
+  // drupal_process_form() usually redirects to another page (or to
+  // a 'fresh' copy of the form) once processing is complete. If one
+  // of the form's handlers has set $form_state['redirect'] to FALSE,
+  // the form will simply be re-rendered with the values still in its
+  // fields.
+  //
+  // If $form_state['storage'] or $form_state['rebuild'] have been
+  // set by any submit or validate handlers, however, we know that
+  // we're in a complex multi-part process of some sort and the form's
+  // workflow is NOT complete. We need to construct a fresh copy of
+  // the form, passing in the latest $form_state in addition to any
+  // other variables passed into drupal_get_form().
+
+  if (!empty($form_state['rebuild']) || !empty($form_state['storage'])) {
+    $form = drupal_rebuild_form_new($form_id, $form_state, $args);
+  }
+
+  // If we haven't redirected to a new location by now, we want to
+  // render whatever form array is currently in hand.
+  return drupal_render_form($form_id, $form);
+}
+
+/**
+ * Views' replacement of drupal_rebuild_form.
+ *
+ * This change merely respects a form's wishes not to be cached.
+ */
+function drupal_rebuild_form_new($form_id, &$form_state, $args, $form_build_id = NULL) {
+  // Remove the first argument. This is $form_id.when called from
+  // drupal_get_form and the original $form_state when called from some AHAH
+  // callback. Neither is needed. After that, put in the current state.
+  $args[0] = &$form_state;
+  // And the form_id.
+  array_unshift($args, $form_id);
+  $form = call_user_func_array('drupal_retrieve_form', $args);
+
+  if (!isset($form_build_id)) {
+    // We need a new build_id for the new version of the form.
+    $form_build_id = 'form-' . md5(mt_rand());
+  }
+  $form['#build_id'] = $form_build_id;
+  drupal_prepare_form($form_id, $form, $form_state);
+
+  if (empty($form['#no_cache'])) {
+    // Now, we cache the form structure so it can be retrieved later for
+    // validation. If $form_state['storage'] is populated, we'll also cache
+    // it so that it can be used to resume complex multi-step processes.
+    form_set_cache($form_build_id, $form, $form_state);
+  }
+
+  // Originally this called drupal_process_form, but all that happens there
+  // is form_builder and then submission; and the rebuilt form is not
+  // allowed to submit. Therefore, just do this:
+  $form['#post'] = $form_state['input'];
+  $form = form_builder($form_id, $form, $form_state);
+
+  return $form;
+}
+
+/**
+ * Views' replacement for drupal_process_form that accepts commands
+ * not to redirect, as well as forcing processing of 'get' method forms.
+ */
+function drupal_process_form_new($form_id, &$form, &$form_state) {
+  // submitting, and handling the results returned by its submission
+  // handlers. Submit handlers accumulate data in the form_state by
+  // altering the $form_state variable, which is passed into them by
+  // reference.
+  $form_state['values'] = array();
+
+  // With $_GET, these forms are always submitted.
+  if ($form_state['method'] == 'get') {
+    if (!isset($form['#post']['form_build_id'])) {
+      $form['#post']['form_build_id'] = $form['#build_id'];
+    }
+    if (!isset($form['#post']['form_id'])) {
+      $form['#post']['form_id'] = $form_id;
+    }
+    if (!isset($form['#post']['form_token']) && isset($form['#token'])) {
+      $form['#post']['form_token'] = drupal_get_token($form['#token']);
+    }
+  }
+
+  $form = form_builder($form_id, $form, $form_state);
+  // Only process the form if it is programmed or the form_id coming
+  // from the POST data is set and matches the current form_id.
+
+  if ((!empty($form['#programmed'])) || (!empty($form['#post']) && (isset($form['#post']['form_id']) && ($form['#post']['form_id'] == $form_id)))) {
+    drupal_validate_form_new($form_id, $form, $form_state);
+
+    // form_clean_id() maintains a cache of element IDs it has seen,
+    // so it can prevent duplicates. We want to be sure we reset that
+    // cache when a form is processed, so scenerios that result in
+    // the form being built behind the scenes and again for the
+    // browser don't increment all the element IDs needlessly.
+    form_clean_id(NULL, TRUE);
+
+    if ((!empty($form_state['submitted'])) && !form_get_errors() && empty($form_state['rebuild'])) {
+      $form_state['redirect'] = NULL;
+      form_execute_handlers('submit', $form, $form_state);
+
+      // We'll clear out the cached copies of the form and its stored data
+      // here, as we've finished with them. The in-memory copies are still
+      // here, though.
+      if (variable_get('cache', CACHE_DISABLED) == CACHE_DISABLED && !empty($form_state['values']['form_build_id'])) {
+        cache_clear_all('form_' . $form_state['values']['form_build_id'], 'cache_form');
+        cache_clear_all('storage_' . $form_state['values']['form_build_id'], 'cache_form');
+      }
+
+      // If batches were set in the submit handlers, we process them now,
+      // possibly ending execution. We make sure we do not react to the batch
+      // that is already being processed (if a batch operation performs a
+      // drupal_execute).
+      if ($batch =& batch_get() && !isset($batch['current_set'])) {
+        // The batch uses its own copies of $form and $form_state for
+        // late execution of submit handers and post-batch redirection.
+        $batch['form'] = $form;
+        $batch['form_state'] = $form_state;
+        $batch['progressive'] = !$form['#programmed'];
+        batch_process();
+        // Execution continues only for programmatic forms.
+        // For 'regular' forms, we get redirected to the batch processing
+        // page. Form redirection will be handled in _batch_finished(),
+        // after the batch is processed.
+      }
+
+      // If no submit handlers have populated the $form_state['storage']
+      // bundle, and the $form_state['rebuild'] flag has not been set,
+      // we're finished and should redirect to a new destination page
+      // if one has been set (and a fresh, unpopulated copy of the form
+      // if one hasn't). If the form was called by drupal_execute(),
+      // however, we'll skip this and let the calling function examine
+      // the resulting $form_state bundle itself.
+      if (!$form['#programmed'] && empty($form_state['rebuild']) && empty($form_state['storage'])) {
+        if (!empty($form_state['no_redirect'])) {
+          $form_state['executed'] = TRUE;
+        }
+        else {
+          drupal_redirect_form($form, $form_state['redirect']);
+        }
+      }
+    }
+  }
+}
+
+/**
+ * The original version of drupal_validate_form does not have an override for
+ * the static check to only validate a form id once. Unfortunately, we need
+ * to be able to overridet his.
+ */
+function drupal_validate_form_new($form_id, $form, &$form_state) {
+  static $validated_forms = array();
+
+  if (isset($validated_forms[$form_id]) && empty($form_state['must_validate'])) {
+    return;
+  }
+
+  // If the session token was set by drupal_prepare_form(), ensure that it
+  // matches the current user's session.
+  if (isset($form['#token'])) {
+    if (!drupal_valid_token($form_state['values']['form_token'], $form['#token'])) {
+      // Setting this error will cause the form to fail validation.
+      form_set_error('form_token', t('Validation error, please try again. If this error persists, please contact the site administrator.'));
+    }
+  }
+
+  _form_validate($form, $form_state, $form_id);
+  $validated_forms[$form_id] = TRUE;
+}
+
+/**
+ * Process callback to add dependency to form items.
+ *
+ * Usage:
+ *
+ * On any form item, add
+ * - @code '#process' => 'views_process_dependency' @endcode
+ * - @code '#dependency' => array('id-of-form-without-the-#' => array(list, of, values, that, make, this, gadget, visible)); @endcode
+ */
+function views_process_dependency($element, $edit, &$form_state, &$form) {
+  static $dependencies;
+  if (isset($element['#dependency']) && !isset($dependencies[$element['#id']])) {
+    if (!isset($element['#dependency_count'])) {
+      $element['#dependency_count'] = 1;
+    }
+    if (!empty($form_state['ajax'])) {
+      $form_state['js settings']['viewsAjax']['formRelationships'][$element['#id']] = array('num' => $element['#dependency_count'], 'values' => $element['#dependency']);
+    }
+    else {
+      views_add_js('dependent');
+      $options['viewsAjax']['formRelationships'][$element['#id']] = array('num' => $element['#dependency_count'], 'values' => $element['#dependency']);
+      drupal_add_js($options, 'setting');
+    }
+    $dependencies[$element['#id']] = TRUE;
+  }
+
+  return $element;
+}
+
+/**
+ * #process callback to see if we need to check_plain() the options.
+ *
+ * Since FAPI is inconsistent, the #options are sanitized for you in all cases
+ * _except_ checkboxes. We have form elements that are sometimes 'select' and
+ * sometimes 'checkboxes', so we need decide late in the form rendering cycle
+ * if the options need to be sanitized before they're rendered. This callback
+ * inspects the type, and if it's still 'checkboxes', does the sanitation.
+ */
+function views_process_check_options($element, $edit, &$form_state, &$form) {
+  if ($element['#type'] == 'checkboxes' || $element['#type'] == 'checkbox') {
+    $element['#options'] = array_map('check_plain', $element['#options']);
+  }
+  return $element;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/handlers.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/handlers.inc
new file mode 100644
index 0000000..091e625
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/handlers.inc
@@ -0,0 +1,1483 @@
+<?php
+/**
+ * @file handlers.inc
+ * Defines the various handler objects to help build and display views.
+ */
+
+/**
+ * Instantiate and construct a new handler
+ */
+function _views_create_handler($definition, $type = 'handler') {
+//  vpr('Instantiating handler ' . $definition['handler']);
+  if (empty($definition['handler'])) {
+    return;
+  }
+
+  if (!class_exists($definition['handler']) && !views_include_handler($definition, $type)) {
+    return;
+  }
+
+  $handler = new $definition['handler'];
+  $handler->set_definition($definition);
+  // let the handler have something like a constructor.
+  $handler->construct();
+
+  return $handler;
+}
+
+/**
+ * Attempt to find the include file for a given handler from its definition.
+ *
+ * This will also attempt to include all parents, though we're maxing the
+ * parent chain to 10 to prevent infinite loops.
+ */
+function views_include_handler($definition, $type, $count = 0) {
+  // Do not proceed if the class already exists.
+  if (isset($definition['handler']) && class_exists($definition['handler'])) {
+    return TRUE;
+  }
+
+  // simple infinite loop prevention.
+  if ($count > 10) {
+    vpr(t('Handler @handler include tried to loop infinitely!', array('@handler' => $definition['handler'])));
+    return FALSE;
+  }
+
+  if (!isset($definition['path'])) {
+    if ($type == 'handler') {
+      $definition += views_fetch_handler_data($definition['handler']);
+    }
+    else {
+      $definition += views_fetch_plugin_data($type, $definition['handler']);
+    }
+  }
+
+  if (!empty($definition['parent'])) {
+    if ($type == 'handler') {
+      $parent = views_fetch_handler_data($definition['parent']);
+    }
+    else {
+      $parent = views_fetch_plugin_data($type, $definition['parent']);
+    }
+
+    if ($parent) {
+      $rc = views_include_handler($parent, $type, $count + 1);
+      // If the parent chain cannot be included, don't try; this will
+      // help alleviate problems with modules with cross dependencies.
+      if (!$rc) {
+        return FALSE;
+      }
+    }
+  }
+
+  if (isset($definition['path']) && $definition['file']) {
+    $filename = './' . $definition['path'] . '/' . $definition['file'];
+    if (file_exists($filename)) {
+      require_once $filename;
+    }
+  }
+
+  return class_exists($definition['handler']);
+}
+
+/**
+ * Prepare a handler's data by checking defaults and such.
+ */
+function _views_prepare_handler($definition, $data, $field) {
+  foreach (array('group', 'title', 'title short', 'help', 'real field') as $key) {
+    if (!isset($definition[$key])) {
+      // First check the field level
+      if (!empty($data[$field][$key])) {
+        $definition[$key] = $data[$field][$key];
+      }
+      // Then if that doesn't work, check the table level
+      else if (!empty($data['table'][$key])) {
+        $definition[$key] = $data['table'][$key];
+      }
+    }
+  }
+
+  return _views_create_handler($definition);
+}
+
+/**
+ * Fetch the handler data from cache.
+ */
+function views_fetch_handler_data($handler = NULL) {
+  static $cache = NULL;
+  if (!isset($cache)) {
+    $start = views_microtime();
+
+    $cache = views_discover_handlers();
+
+    vpr('Views handlers build time: ' . (views_microtime() - $start) * 1000 . ' ms');
+  }
+
+  if (!$handler) {
+    return $cache;
+  }
+  else if (isset($cache[$handler])) {
+    return $cache[$handler];
+  }
+
+  // Return an empty array if there is no match.
+  return array();
+}
+
+/**
+ * Builds and return a list of all handlers available in the system.
+ *
+ * @return Nested array of handlers
+ */
+function views_discover_handlers() {
+  $cache = array();
+  // Get handlers from all modules.
+  foreach (module_implements('views_handlers') as $module) {
+    $function = $module . '_views_handlers';
+    $result = $function();
+    if (!is_array($result)) {
+      continue;
+    }
+
+    $module_dir = isset($result['info']['module']) ? $result['info']['module'] : $module;
+    $path = isset($result['info']['path']) ? $result['info']['path'] : drupal_get_path('module', $module_dir);
+
+    foreach ($result['handlers'] as $handler => $def) {
+      if (!isset($def['module'])) {
+        $def['module'] = $module_dir;
+      }
+      if (!isset($def['path'])) {
+        $def['path'] = $path;
+      }
+      if (!isset($def['file'])) {
+        $def['file'] = "$handler.inc";
+      }
+      if (!isset($def['handler'])) {
+        $def['handler'] = $handler;
+      }
+      // merge the new data in
+      $cache[$handler] = $def;
+    }
+  }
+  return $cache;
+}
+
+/**
+ * Fetch a handler to join one table to a primary table from the data cache
+ */
+function views_get_table_join($table, $base_table) {
+  $data = views_fetch_data($table);
+  if (isset($data['table']['join'][$base_table])) {
+    $h = $data['table']['join'][$base_table];
+    if (!empty($h['handler']) && class_exists($h['handler'])) {
+      $handler = new $h['handler'];
+    }
+    else {
+      $handler = new views_join();
+    }
+
+    // Fill in some easy defaults
+    $handler->definition = $h;
+    if (empty($handler->definition['table'])) {
+      $handler->definition['table'] = $table;
+    }
+    // If this is empty, it's a direct link.
+    if (empty($handler->definition['left_table'])) {
+      $handler->definition['left_table'] = $base_table;
+    }
+
+    if (isset($h['arguments'])) {
+      call_user_func_array(array(&$handler, 'construct'), $h['arguments']);
+    }
+    else {
+      $handler->construct();
+    }
+
+    return $handler;
+  }
+  // DEBUG -- identify missing handlers
+  vpr("Missing join: $table $base_table");
+}
+
+/**
+ * Base handler, from which all the other handlers are derived.
+ * It creates a common interface to create consistency amongst
+ * handlers and data.
+ *
+ * This class would be abstract in PHP5, but PHP4 doesn't understand that.
+ *
+ * Definition terms:
+ * - table: The actual table this uses; only specify if different from
+ *          the table this is attached to.
+ * - real field: The actual field this uses; only specify if different from
+ *               the field this item is attached to.
+ * - group: A text string representing the 'group' this item is attached to,
+ *          for display in the UI. Examples: "Node", "Taxonomy", "Comment",
+ *          "User", etc. This may be inherited from the parent definition or
+ *          the 'table' definition.
+ * - title: The title for this handler in the UI. This may be inherited from
+ *          the parent definition or the 'table' definition.
+ * - help: A more informative string to give to the user to explain what this
+ *         field/handler is or does.
+ * - access callback: If this field should have access control, this could
+ *                    be a function to use. 'user_access' is a common
+ *                    function to use here. If not specified, no access
+ *                    control is provided.
+ * - access arguments: An array of arguments for the access callback.
+ */
+class views_handler extends views_object {
+  /**
+   * init the handler with necessary data.
+   * @param $view
+   *   The $view object this handler is attached to.
+   * @param $options
+   *   The item from the database; the actual contents of this will vary
+   *   based upon the type of handler.
+   */
+  function init(&$view, $options) {
+    $this->view = &$view;
+    $this->unpack_options($this->options, $options);
+
+    // This exist on most handlers, but not all. So they are still optional.
+    if (isset($options['table'])) {
+      $this->table = $options['table'];
+    }
+
+    if (isset($this->definition['real field'])) {
+      $this->real_field = $this->definition['real field'];
+    }
+
+    if (isset($this->definition['field'])) {
+      $this->real_field = $this->definition['field'];
+    }
+
+    if (isset($options['field'])) {
+      $this->field = $options['field'];
+      if (!isset($this->real_field)) {
+        $this->real_field = $options['field'];
+      }
+    }
+
+    $this->query = &$view->query;
+  }
+
+  /**
+   * Return a string representing this handler's name in the UI.
+   */
+  function ui_name($short = FALSE) {
+    $title = ($short && isset($this->definition['title short'])) ? $this->definition['title short'] : $this->definition['title'];
+    return t('!group: !title', array('!group' => $this->definition['group'], '!title' => $title));
+  }
+
+  /**
+   * Provide a form for setting options.
+   */
+  function options_form(&$form, &$form_state) { }
+
+  /**
+   * Validate the options form.
+   */
+  function options_validate($form, &$form_state) { }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit($form, &$form_state) { }
+
+  /**
+   * If a handler has 'extra options' it will get a little settings widget and
+   * another form called extra_options.
+   */
+  function has_extra_options() { return FALSE; }
+
+  /**
+   * Provide defaults for the handler.
+   */
+  function extra_options(&$option) { }
+
+  /**
+   * Provide a form for setting options.
+   */
+  function extra_options_form(&$form, &$form_state) { }
+
+  /**
+   * Validate the options form.
+   */
+  function extra_options_validate($form, &$form_state) { }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function extra_options_submit($form, &$form_state) { }
+
+  /**
+   * Set new exposed option defaults when exposed setting is flipped
+   * on.
+   */
+  function expose_options() { }
+  /**
+   * Render our chunk of the exposed filter form when selecting
+   */
+  function exposed_form(&$form, &$form_state) { }
+
+  /**
+   * Validate the exposed filter form
+   */
+  function exposed_validate(&$form, &$form_state) { }
+
+  /**
+   * Submit the exposed filter form
+   */
+  function exposed_submit(&$form, &$form_state) { }
+
+  /**
+   * Get information about the exposed form for the form renderer.
+   *
+   * @return
+   *   An array with the following keys:
+   *   - operator: The $form key of the operator. Set to NULL if no operator.
+   *   - value: The $form key of the value. Set to NULL if no value.
+   *   - label: The label to use for this piece.
+   */
+  function exposed_info() { }
+
+  /**
+   * Determine if a handler can be exposed.
+   */
+  function can_expose() { return FALSE; }
+
+ /**
+  * Check whether current user has access to this handler.
+  *
+  * @return boolean
+  */
+  function access() {
+    if (isset($this->definition['access callback']) && function_exists($this->definition['access callback'])) {
+      if (isset($this->definition['access arguments']) && is_array($this->definition['access arguments'])) {
+        return call_user_func_array($this->definition['access callback'], $this->definition['access arguments']);
+      }
+      return $this->definition['access callback']();
+    }
+
+    return TRUE;
+  }
+
+  /**
+   * Run before the view is built.
+   *
+   * This gives all the handlers some time to set up before any handler has
+   * been fully run.
+   */
+  function pre_query() { }
+
+  /**
+   * Called just prior to query(), this lets a handler set up any relationship
+   * it needs.
+   */
+  function set_relationship() {
+    // Ensure this gets set to something.
+    $this->relationship = NULL;
+
+    // Don't process non-existant relationships.
+    if (empty($this->options['relationship']) || $this->options['relationship'] == 'none') {
+      return;
+    }
+
+    $relationship = $this->options['relationship'];
+
+    // Ignore missing/broken relationships.
+    if (empty($this->view->relationship[$relationship])) {
+      return;
+    }
+
+    // Check to see if the relationship has already processed. If not, then we
+    // cannot process it.
+    if (empty($this->view->relationship[$relationship]->alias)) {
+      return;
+    }
+
+    // Finally!
+    $this->relationship = $this->view->relationship[$relationship]->alias;
+  }
+
+  /**
+   * Add this handler into the query.
+   *
+   * If we were using PHP5, this would be abstract.
+   */
+  function query() { }
+
+  /**
+   * Ensure the main table for this handler is in the query. This is used
+   * a lot.
+   */
+  function ensure_my_table() {
+    if (!isset($this->table_alias)) {
+      $this->table_alias = $this->query->ensure_table($this->table, $this->relationship);
+    }
+    return $this->table_alias;
+  }
+
+  /**
+   * Provide text for the administrative summary
+   */
+  function admin_summary() { }
+
+  /**
+   * Determine if the argument needs a style plugin.
+   *
+   * @return TRUE/FALSE
+   */
+  function needs_style_plugin() { return FALSE; }
+
+  /**
+   * Determine if this item is 'exposed', meaning it provides form elements
+   * to let users modify the view.
+   *
+   * @return TRUE/FALSE
+   */
+  function is_exposed() {
+    return !empty($this->options['exposed']);
+  }
+
+  /**
+   * Take input from exposed filters and assign to this handler, if necessary.
+   */
+  function accept_exposed_input($input) { return TRUE; }
+
+  /**
+   * If set to remember exposed input in the session, store it there.
+   */
+  function store_exposed_input($input, $status) { return TRUE; }
+
+  /**
+   * Get the join object that should be used for this handler.
+   *
+   * This method isn't used a great deal, but it's very handy for easily
+   * getting the join if it is necessary to make some changes to it, such
+   * as adding an 'extra'.
+   */
+  function get_join() {
+    // get the join from this table that links back to the base table.
+    // Determine the primary table to seek
+    if (empty($this->query->relationships[$this->relationship])) {
+      $base_table = $this->query->base_table;
+    }
+    else {
+      $base_table = $this->query->relationships[$this->relationship]['base'];
+    }
+
+    $join = views_get_table_join($this->table, $base_table);
+    if ($join) {
+      return drupal_clone($join);
+    }
+  }
+
+  /**
+   * Validates the handler against the complete View.
+   *
+   * This is called when the complete View is being validated. For validating
+   * the handler options form use options_validate().
+   *
+   * @see views_handler::options_validate()
+   *
+   * @return
+   *   Empty array if the handler is valid; an array of error strings if it is not.
+   */
+  function validate() { return array(); }
+
+  /**
+   * Determine if the handler is considered 'broken', meaning it's a
+   * a placeholder used when a handler can't be found.
+   */
+  function broken() { }
+}
+
+/**
+ * This many to one helper object is used on both arguments and filters.
+ *
+ * @todo This requires extensive documentation on how this class is to
+ * be used. For now, look at the arguments and filters that use it. Lots
+ * of stuff is just pass-through but there are definitely some interesting
+ * areas where they interact.
+ *
+ * Any handler that uses this can have the following possibly additional
+ * definition terms:
+ * - numeric: If true, treat this field as numeric, using %d instead of %s in
+ *            queries.
+ *
+ */
+class views_many_to_one_helper {
+  function views_many_to_one_helper(&$handler) {
+    $this->handler = &$handler;
+  }
+
+  public static function option_definition(&$options) {
+    $options['reduce_duplicates'] = array('default' => FALSE);
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['reduce_duplicates'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Reduce duplicates'),
+      '#description' => t('This filter can cause items that have more than one of the selected options to appear as duplicate results. If this filter causes duplicate results to occur, this checkbox can reduce those duplicates; however, the more terms it has to search for, the less performant the query will be, so use this with caution. Shouldn\'t be set on single-value fields, as it may cause values to disappear from display, if used on an incompatible field.'),
+      '#default_value' => !empty($this->handler->options['reduce_duplicates']),
+    );
+  }
+
+  /**
+   * Sometimes the handler might want us to use some kind of formula, so give
+   * it that option. If it wants us to do this, it must set $helper->formula = TRUE
+   * and implement handler->get_formula();
+   */
+  function get_field() {
+    if (!empty($this->formula)) {
+      return $this->handler->get_formula();
+    }
+    else {
+      return $this->handler->table_alias . '.' . $this->handler->real_field;
+    }
+  }
+
+  /**
+   * Add a table to the query.
+   *
+   * This is an advanced concept; not only does it add a new instance of the table,
+   * but it follows the relationship path all the way down to the relationship
+   * link point and adds *that* as a new relationship and then adds the table to
+   * the relationship, if necessary.
+   */
+  function add_table($join = NULL, $alias = NULL) {
+    // This is used for lookups in the many_to_one table.
+    $field = $this->handler->table . '.' . $this->handler->field;
+
+    if (empty($join)) {
+      $join = $this->get_join();
+    }
+
+    // See if there's a chain between us and the base relationship. If so, we need
+    // to create a new relationship to use.
+    $relationship = $this->handler->relationship;
+
+    // Determine the primary table to seek
+    if (empty($this->handler->query->relationships[$relationship])) {
+      $base_table = $this->handler->query->base_table;
+    }
+    else {
+      $base_table = $this->handler->query->relationships[$relationship]['base'];
+    }
+
+    // Cycle through the joins. This isn't as error-safe as the normal
+    // ensure_path logic. Perhaps it should be.
+    $r_join = drupal_clone($join);
+    while ($r_join->left_table != $base_table) {
+      $r_join = views_get_table_join($r_join->left_table, $base_table);
+    }
+    // If we found that there are tables in between, add the relationship.
+    if ($r_join->table != $join->table) {
+      $relationship = $this->handler->query->add_relationship($this->handler->table . '_' . $r_join->table, $r_join, $r_join->table, $this->handler->relationship);
+    }
+
+    // And now add our table, using the new relationship if one was used.
+    $alias = $this->handler->query->add_table($this->handler->table, $relationship, $join, $alias);
+
+    // Store what values are used by this table chain so that other chains can
+    // automatically discard those values.
+    if (empty($this->handler->view->many_to_one_tables[$field])) {
+      $this->handler->view->many_to_one_tables[$field] = $this->handler->value;
+    }
+    else {
+      $this->handler->view->many_to_one_tables[$field] = array_merge($this->handler->view->many_to_one_tables[$field], $this->handler->value);
+    }
+
+    return $alias;
+  }
+
+  function get_join() {
+    return $this->handler->get_join();
+  }
+
+  /**
+   * Provide the proper join for summary queries. This is important in part because
+   * it will cooperate with other arguments if possible.
+   */
+  function summary_join() {
+    $field = $this->handler->table . '.' . $this->handler->field;
+    $join = $this->get_join();
+
+    // shortcuts
+    $options = $this->handler->options;
+    $view = &$this->handler->view;
+    $query = &$this->handler->query;
+
+    if (!empty($options['require_value'])) {
+      $join->type = 'INNER';
+    }
+
+    if (empty($options['add_table']) || empty($view->many_to_one_tables[$field])) {
+      return $query->ensure_table($this->handler->table, $this->handler->relationship, $join);
+    }
+    else {
+      if (!empty($view->many_to_one_tables[$field])) {
+        foreach ($view->many_to_one_tables[$field] as $value) {
+          $join->extra = array(
+            array(
+              'field' => $this->handler->real_field,
+              'operator' => '!=',
+              'value' => $value,
+              'numeric' => !empty($this->definition['numeric']),
+            ),
+          );
+        }
+      }
+      return $this->add_table($join);
+    }
+  }
+
+  /**
+   * Override ensure_my_table so we can control how this joins in.
+   * The operator actually has influence over joining.
+   */
+  function ensure_my_table() {
+    if (!isset($this->handler->table_alias)) {
+      // For 'or' if we're not reducing duplicates, we get the absolute simplest:
+      $field = $this->handler->table . '.' . $this->handler->field;
+      if ($this->handler->operator == 'or' && empty($this->handler->options['reduce_duplicates'])) {
+        if (empty($this->handler->options['add_table']) && empty($this->handler->view->many_to_one_tables[$field])) {
+          // query optimization, INNER joins are slightly faster, so use them
+          // when we know we can.
+          $join = $this->get_join();
+          $join->type = 'INNER';
+          $this->handler->table_alias = $this->handler->query->ensure_table($this->handler->table, $this->handler->relationship, $join);
+          $this->handler->view->many_to_one_tables[$field] = $this->handler->value;
+        }
+        else {
+          $join = $this->get_join();
+          $join->type = 'LEFT';
+          if (!empty($this->handler->view->many_to_one_tables[$field])) {
+            foreach ($this->handler->view->many_to_one_tables[$field] as $value) {
+              $join->extra = array(
+                array(
+                  'field' => $this->handler->real_field,
+                  'operator' => '!=',
+                  'value' => $value,
+                  'numeric' => !empty($this->handler->definition['numeric']),
+                ),
+              );
+            }
+          }
+
+          $this->handler->table_alias = $this->add_table($join);
+        }
+
+        return $this->handler->table_alias;
+      }
+
+      if ($this->handler->operator != 'not') {
+        // If it's an and or an or, we do one join per selected value.
+        // Clone the join for each table:
+        $this->handler->table_aliases = array();
+        foreach ($this->handler->value as $value) {
+          $join = $this->get_join();
+          if ($this->handler->operator == 'and') {
+            $join->type = 'INNER';
+          }
+          $join->extra = array(
+            array(
+              'field' => $this->handler->real_field,
+              'value' => $value,
+              'numeric' => !empty($this->handler->definition['numeric']),
+            ),
+          );
+
+          // The table alias needs to be unique to this value across the
+          // multiple times the filter or argument is called by the view.
+          if (!isset($this->handler->view->many_to_one_aliases[$field][$value])) {
+            if (!isset($this->handler->view->many_to_one_count[$this->handler->table])) {
+              $this->handler->view->many_to_one_count[$this->handler->table] = 0;
+            }
+            $this->handler->view->many_to_one_aliases[$field][$value] = $this->handler->table . '_value_' . ($this->handler->view->many_to_one_count[$this->handler->table]++);
+          }
+          $alias = $this->handler->table_aliases[$value] = $this->add_table($join, $this->handler->view->many_to_one_aliases[$field][$value]);
+
+          // and set table_alias to the first of these.
+          if (empty($this->handler->table_alias)) {
+            $this->handler->table_alias = $alias;
+          }
+        }
+      }
+      else {
+        // For not, we just do one join. We'll add a where clause during
+        // the query phase to ensure that $table.$field IS NULL.
+        $join = $this->get_join();
+        $join->type = 'LEFT';
+        $join->extra = array();
+        $join->extra_type = 'OR';
+        foreach ($this->handler->value as $value) {
+          $join->extra[] = array(
+            'field' => $this->handler->real_field,
+            'value' => $value,
+            'numeric' => !empty($this->handler->definition['numeric']),
+          );
+        }
+
+        $this->handler->table_alias = $this->add_table($join);
+      }
+    }
+    return $this->handler->table_alias;
+  }
+
+  function add_filter() {
+    if (empty($this->handler->value)) {
+      return;
+    }
+    $this->handler->ensure_my_table();
+
+    // Shorten some variables:
+    $field = $this->get_field();
+    $options = $this->handler->options;
+    $operator = $this->handler->operator;
+    if (empty($options['group'])) {
+      $options['group'] = 0;
+    }
+
+    $placeholder = !empty($this->handler->definition['numeric']) ? '%d' : "'%s'";
+
+    if ($operator == 'not') {
+      $this->handler->query->add_where($options['group'], "$field IS NULL");
+    }
+    else if ($operator == 'or' && empty($options['reduce_duplicates'])) {
+      if (count($this->handler->value) > 1) {
+        $replace = array_fill(0, sizeof($this->handler->value), $placeholder);
+        $in = '(' . implode(", ", $replace) . ')';
+        $this->handler->query->add_where($options['group'], "$field IN $in", $this->handler->value);
+      }
+      else {
+        $this->handler->query->add_where($options['group'], "$field = $placeholder", $this->handler->value);
+      }
+    }
+    else {
+      $field = $this->handler->real_field;
+      $clauses = array();
+      foreach ($this->handler->table_aliases as $value => $alias) {
+        $clauses[] = "$alias.$field = $placeholder";
+      }
+
+      $group = empty($options['group']) ? 0 : $options['group'];
+
+      // implode on either AND or OR.
+      $this->handler->query->add_where($group, implode(' ' . strtoupper($operator) . ' ', $clauses), $this->handler->value);
+    }
+  }
+}
+
+/*
+ * Break x,y,z and x+y+z into an array. Numeric only.
+ *
+ * @param $str
+ *   The string to parse.
+ * @param $filter
+ *   The filter object to use as a base.
+ *
+ * @return $filter
+ *   The new filter object.
+ */
+function views_break_phrase($str, &$filter) {
+  if (!$filter) {
+    $filter = new stdClass();
+  }
+
+  // Set up defaults:
+  if (!isset($filter->value)) {
+    $filter->value = array();
+  }
+
+  if (!isset($filter->operator)) {
+    $filter->operator = 'or';
+  }
+
+  if ($str == '') {
+    return $filter;
+  }
+
+  if (preg_match('/^([0-9]+[+ ])+[0-9]+$/', $str)) {
+    // The '+' character in a query string may be parsed as ' '.
+    $filter->operator = 'or';
+    $filter->value = preg_split('/[+ ]/', $str);
+  }
+  else if (preg_match('/^([0-9]+,)*[0-9]+$/', $str)) {
+    $filter->operator = 'and';
+    $filter->value = explode(',', $str);
+  }
+
+  // Keep an 'error' value if invalid strings were given.
+  if (!empty($str) && (empty($filter->value) || !is_array($filter->value))) {
+    $filter->value = array(-1);
+    return $filter;
+  }
+
+  // Doubly ensure that all values are numeric only.
+  foreach ($filter->value as $id => $value) {
+    $filter->value[$id] = intval($value);
+  }
+
+  return $filter;
+}
+
+// --------------------------------------------------------------------------
+// Date helper functions
+
+/**
+ * Figure out what timezone we're in; needed for some date manipulations.
+ */
+function views_get_timezone() {
+  global $user;
+  if (variable_get('configurable_timezones', 1) && $user->uid && strlen($user->timezone)) {
+    $timezone = $user->timezone;
+  }
+  else {
+    $timezone = variable_get('date_default_timezone', 0);
+  }
+
+  // set up the database timezone
+  if (in_array($GLOBALS['db_type'], array('mysql', 'mysqli', 'pgsql'))) {
+    $offset = '+00:00';
+    static $already_set = false;
+    if (!$already_set) {
+      if ($GLOBALS['db_type'] == 'pgsql') {
+        db_query("SET TIME ZONE INTERVAL '$offset' HOUR TO MINUTE");
+      }
+      elseif ($GLOBALS['db_type'] == 'mysqli') {
+        db_query("SET @@session.time_zone = '$offset'");
+      }
+      elseif ($GLOBALS['db_type'] == 'mysql' && version_compare(db_version(), '4.1.3', '>=')) {
+        db_query("SET @@session.time_zone = '$offset'");
+      }
+
+      $already_set = true;
+    }
+  }
+
+  return $timezone;
+}
+
+/**
+ * Helper function to create cross-database SQL dates.
+ *
+ * @param $field
+ *   The real table and field name, like 'tablename.fieldname'.
+ * @param $field_type
+ *  The type of date field, 'int' or 'datetime'.
+ * @param $set_offset
+ *   The name of a field that holds the timezone offset or a fixed timezone
+ *   offset value. If not provided, the normal Drupal timezone handling
+ *   will be used, i.e. $set_offset = 0 will make no timezone adjustment.
+ * @return
+ *   An appropriate SQL string for the db type and field type.
+ */
+function views_date_sql_field($field, $field_type = 'int', $set_offset = NULL) {
+  $db_type = $GLOBALS['db_type'];
+  $offset = $set_offset !== NULL ? $set_offset : views_get_timezone();
+  switch ($db_type) {
+    case 'mysql':
+    case 'mysqli':
+      switch ($field_type) {
+        case 'int':
+          $field = "FROM_UNIXTIME($field)";
+          break;
+        case 'datetime':
+          break;
+      }
+      if (!empty($offset)) {
+        $field = "($field + INTERVAL $offset SECOND)";
+      }
+      return $field;
+    case 'pgsql':
+      switch ($field_type) {
+        case 'int':
+          $field = "$field::ABSTIME";
+          break;
+        case 'datetime':
+          break;
+      }
+      if (!empty($offset)) {
+        $field = "($field + INTERVAL '$offset SECONDS')";
+      }
+      return $field;
+  }
+}
+
+/**
+ * Helper function to create cross-database SQL date formatting.
+ *
+ * @param $format
+ *   A format string for the result, like 'Y-m-d H:i:s'.
+ * @param $field
+ *   The real table and field name, like 'tablename.fieldname'.
+ * @param $field_type
+ *   The type of date field, 'int' or 'datetime'.
+ * @param $set_offset
+ *   The name of a field that holds the timezone offset or a fixed timezone
+ *   offset value. If not provided, the normal Drupal timezone handling
+ *   will be used, i.e. $set_offset = 0 will make no timezone adjustment.
+ * @return
+ *   An appropriate SQL string for the db type and field type.
+ */
+function views_date_sql_format($format, $field, $field_type = 'int', $set_offset = NULL) {
+  $db_type = $GLOBALS['db_type'];
+  $field = views_date_sql_field($field, $field_type, $set_offset);
+  switch ($db_type) {
+    case 'mysql':
+    case 'mysqli':
+      $replace = array(
+        'Y' => '%Y',
+        'y' => '%y',
+        'M' => '%%b',
+        'm' => '%m',
+        'n' => '%c',
+        'F' => '%M',
+        'D' => '%a',
+        'd' => '%%d',
+        'l' => '%W',
+        'j' => '%e',
+        'W' => '%v',
+        'H' => '%H',
+        'h' => '%h',
+        'i' => '%i',
+        's' => '%%s',
+        'A' => '%p',
+        );
+      $format = strtr($format, $replace);
+      return "DATE_FORMAT($field, '$format')";
+    case 'pgsql':
+      $replace = array(
+        'Y' => 'YYYY',
+        'y' => 'YY',
+        'M' => 'Mon',
+        'm' => 'MM',
+        'n' => 'MM', // no format for Numeric representation of a month, without leading zeros
+        'F' => 'Month',
+        'D' => 'Dy',
+        'd' => 'DD',
+        'l' => 'Day',
+        'j' => 'DD', // no format for Day of the month without leading zeros
+        'W' => 'WW',
+        'H' => 'HH24',
+        'h' => 'HH12',
+        'i' => 'MI',
+        's' => 'SS',
+        'A' => 'AM',
+        );
+      $format = strtr($format, $replace);
+      return "TO_CHAR($field, '$format')";
+  }
+}
+
+/**
+ * Helper function to create cross-database SQL date extraction.
+ *
+ * @param $extract_type
+ *   The type of value to extract from the date, like 'MONTH'.
+ * @param $field
+ *   The real table and field name, like 'tablename.fieldname'.
+ * @param $field_type
+ *   The type of date field, 'int' or 'datetime'.
+ * @param $set_offset
+ *   The name of a field that holds the timezone offset or a fixed timezone
+ *   offset value. If not provided, the normal Drupal timezone handling
+ *   will be used, i.e. $set_offset = 0 will make no timezone adjustment.
+ * @return
+ *   An appropriate SQL string for the db type and field type.
+ */
+function views_date_sql_extract($extract_type, $field, $field_type = 'int', $set_offset = NULL) {
+  $db_type = $GLOBALS['db_type'];
+  $field = views_date_sql_field($field, $field_type, $set_offset);
+
+  // Note there is no space after FROM to avoid db_rewrite problems
+  // see http://drupal.org/node/79904.
+  switch ($extract_type) {
+  case('DATE'):
+    return $field;
+  case('YEAR'):
+    return "EXTRACT(YEAR FROM($field))";
+  case('MONTH'):
+    return "EXTRACT(MONTH FROM($field))";
+  case('DAY'):
+    return "EXTRACT(DAY FROM($field))";
+  case('HOUR'):
+    return "EXTRACT(HOUR FROM($field))";
+  case('MINUTE'):
+    return "EXTRACT(MINUTE FROM($field))";
+  case('SECOND'):
+    return "EXTRACT(SECOND FROM($field))";
+  case('WEEK'):  // ISO week number for date
+    switch ($db_type) {
+      case('mysql'):
+      case('mysqli'):
+        // WEEK using arg 3 in mysql should return the same value as postgres EXTRACT
+        return "WEEK($field, 3)";
+      case('pgsql'):
+        return "EXTRACT(WEEK FROM($field))";
+    }
+  case('DOW'):
+    switch ($db_type) {
+      case('mysql'):
+      case('mysqli'):
+        // mysql returns 1 for Sunday through 7 for Saturday
+        // php date functions and postgres use 0 for Sunday and 6 for Saturday
+        return "INTEGER(DAYOFWEEK($field) - 1)";
+      case('pgsql'):
+        return "EXTRACT(DOW FROM($field))";
+    }
+  case('DOY'):
+    switch ($db_type) {
+      case('mysql'):
+      case('mysqli'):
+        return "DAYOFYEAR($field)";
+      case('pgsql'):
+        return "EXTRACT(DOY FROM($field))";
+    }
+  }
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function views_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/handlers',
+    ),
+    'handlers' => array(
+      // argument handlers
+      'views_handler_argument' => array(
+        'parent' => 'views_handler',
+      ),
+      'views_handler_argument_numeric' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_formula' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_date' => array(
+        'parent' => 'views_handler_argument_formula',
+      ),
+      'views_handler_argument_string' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_many_to_one' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_null' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_broken' => array(
+        'parent' => 'views_handler_argument',
+      ),
+
+      // field handlers
+      'views_handler_field' => array(
+        'parent' => 'views_handler',
+      ),
+      'views_handler_field_date' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_boolean' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_markup' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_xss' => array(
+        'parent' => 'views_handler_field',
+        'file' => 'views_handler_field.inc',
+      ),
+      'views_handler_field_url' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_file_size' => array(
+        'parent' => 'views_handler_field',
+        'file' => 'views_handler_field.inc',
+      ),
+      'views_handler_field_prerender_list' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_numeric' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_custom' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_counter' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_math' => array(
+        'parent' => 'views_handler_field_numeric',
+      ),
+      'views_handler_field_broken' => array(
+        'parent' => 'views_handler_field',
+      ),
+
+      // filter handlers
+      'views_handler_filter' => array(
+        'parent' => 'views_handler',
+      ),
+      'views_handler_filter_equality' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      'views_handler_filter_string' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      'views_handler_filter_boolean_operator' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      'views_handler_filter_boolean_operator_string' => array(
+        'parent' => 'views_handler_filter_boolean_operator',
+      ),
+      'views_handler_filter_in_operator' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      'views_handler_filter_numeric' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      'views_handler_filter_float' => array(
+        'parent' => 'views_handler_filter_numeric',
+      ),
+      'views_handler_filter_date' => array(
+        'parent' => 'views_handler_filter_numeric',
+      ),
+      'views_handler_filter_many_to_one' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_broken' => array(
+        'parent' => 'views_handler_filter',
+      ),
+
+      // relationship handlers
+      'views_handler_relationship' => array(
+        'parent' => 'views_handler',
+      ),
+      'views_handler_relationship_broken' => array(
+        'parent' => 'views_handler_relationship',
+      ),
+
+
+      // sort handlers
+      'views_handler_sort' => array(
+        'parent' => 'views_handler',
+      ),
+      'views_handler_sort_formula' => array(
+        'parent' => 'views_handler_sort',
+      ),
+      'views_handler_sort_date' => array(
+        'parent' => 'views_handler_sort',
+      ),
+      'views_handler_sort_menu_hierarchy' => array(
+        'parent' => 'views_handler_sort',
+      ),
+      'views_handler_sort_random' => array(
+        'parent' => 'views_handler_sort',
+      ),
+      'views_handler_sort_broken' => array(
+        'parent' => 'views_handler_sort',
+      ),
+    ),
+  );
+}
+
+
+/**
+ * @}
+ */
+
+/**
+ * @defgroup views_join_handlers Views' join handlers
+ * @{
+ * Handlers to tell Views how to join tables together.
+
+ * Here is how you do complex joins:
+ *
+ * @code
+ * class views_join_complex extends views_join {
+ *   // PHP 4 doesn't call constructors of the base class automatically from a
+ *   // constructor of a derived class. It is your responsibility to propagate
+ *   // the call to constructors upstream where appropriate.
+ *   function construct($table = NULL, $left_table = NULL, $left_field = NULL, $field = NULL, $extra = array(), $type = 'LEFT') {
+ *     parent::construct($table, $left_table, $left_field, $field, $extra, $type);
+ *   }
+ *
+ *   function join($table, &$query) {
+ *     $output = parent::join($table, $query);
+ *     $output .= "AND foo.bar = baz.boing";
+ *     return $output;
+ *   }
+ * }
+ * @endcode
+ */
+/**
+ * A function class to represent a join and create the SQL necessary
+ * to implement the join.
+ *
+ * This is the Delegation pattern. If we had PHP5 exclusively, we would
+ * declare this an interface.
+ *
+ * Extensions of this class can be used to create more interesting joins.
+ *
+ * join definition
+ *   - table: table to join (right table)
+ *   - field: field to join on (right field)
+ *   - left_table: The table we join to
+ *   - left_field: The field we join to
+ *   - type: either LEFT (default) or INNER
+ *   - extra: Either a string that's directly added, or an array of items:
+ *   - - table: if not set, current table; if NULL, no table. This field can't
+ *       be set in the cached definition because it can't know aliases; this field
+ *       can only be used by realtime joins.
+ *   - - field: Field or formula
+ *   - - operator: defaults to =
+ *   - - value: Must be set. If an array, operator will be defaulted to IN.
+ *   - - numeric: If true, the value will not be surrounded in quotes.
+ *   - - raw: If you specify raw the value will be used as it is, so you can have field to field conditions.
+ *   - extra type: How all the extras will be combined. Either AND or OR. Defaults to AND.
+ */
+class views_join {
+  /**
+   * Construct the views_join object.
+   */
+  function construct($table = NULL, $left_table = NULL, $left_field = NULL, $field = NULL, $extra = array(), $type = 'LEFT') {
+    $this->extra_type = 'AND';
+    if (!empty($table)) {
+      $this->table = $table;
+      $this->left_table = $left_table;
+      $this->left_field = $left_field;
+      $this->field = $field;
+      $this->extra = $extra;
+      $this->type = strtoupper($type);
+    }
+    else if (!empty($this->definition)) {
+      // if no arguments, construct from definition.
+      // These four must exist or it will throw notices.
+      $this->table = $this->definition['table'];
+      $this->left_table = $this->definition['left_table'];
+      $this->left_field = $this->definition['left_field'];
+      $this->field = $this->definition['field'];
+      if (!empty($this->definition['extra'])) {
+        $this->extra = $this->definition['extra'];
+      }
+      if (!empty($this->definition['extra type'])) {
+        $this->extra_type = strtoupper($this->definition['extra type']);
+      }
+
+      $this->type = !empty($this->definition['type']) ? strtoupper($this->definition['type']) : 'LEFT';
+    }
+  }
+
+  /**
+   * Build the SQL for the join this object represents.
+   */
+  function join($table, &$query) {
+    if (empty($this->definition['table formula'])) {
+      $right_table = "{" . $this->table . "}";
+    }
+    else {
+      $right_table = $this->definition['table formula'];
+    }
+
+    if ($this->left_table) {
+      $left = $query->get_table_info($this->left_table);
+      $left_field = "$left[alias].$this->left_field";
+    }
+    else {
+      // This can be used if left_field is a formula or something. It should be used only *very* rarely.
+      $left_field = $this->left_field;
+    }
+
+    $output = " $this->type JOIN $right_table $table[alias] ON $left_field = $table[alias].$this->field";
+
+    // Load query tokens replacements.
+    $view = views_get_current_view();
+    $replacements = array();
+    if (!empty($view)) {
+      $replacements = $view->substitutions();
+    }
+    else {
+      vpr('The current view is not set, maybe some code missed to execute $view->pre_execute()');
+    }
+
+    // Tack on the extra.
+    if (isset($this->extra)) {
+      if (is_array($this->extra)) {
+        $extras = array();
+        foreach ($this->extra as $info) {
+          $extra = '';
+          // Figure out the table name. Remember, only use aliases provided
+          // if at all possible.
+          $join_table = '';
+          if (!array_key_exists('table', $info)) {
+            $join_table = $table['alias'] . '.';
+          }
+          elseif (isset($info['table'])) {
+            $join_table = $info['table'] . '.';
+          }
+
+          // Apply query token replacements.
+          $info['value'] = str_replace(array_keys($replacements), $replacements, $info['value']);
+
+          // And now deal with the value and the operator.  Set $q to
+          // a single-quote for non-numeric values and the
+          // empty-string for numeric values, then wrap all values in $q.
+          if (empty($info['raw'])) {
+            $raw_value = $this->db_safe($info['value'], $info);
+            $q = (empty($info['numeric']) ? "'" : '');
+          }
+          else {
+            $raw_value = $info['value'];
+            $q = '';
+          }
+
+          if (is_array($raw_value)) {
+            $operator = !empty($info['operator']) ? $info['operator'] : 'IN';
+            // Transform from IN() notation to = notation if just one value.
+            if (count($raw_value) == 1) {
+              $value = $q . array_shift($raw_value) . $q;
+              $operator = $operator == 'NOT IN' ? '!=' : '=';
+            }
+            else {
+              $value = "($q" . implode("$q, $q", $raw_value) . "$q)";
+            }
+          }
+          else {
+            $operator = !empty($info['operator']) ? $info['operator'] : '=';
+            $value = "$q$raw_value$q";
+          }
+          $extras[] = "$join_table$info[field] $operator $value";
+        }
+
+        if ($extras) {
+          if (count($extras) == 1) {
+            $output .= ' AND ' . array_shift($extras);
+          }
+          else {
+            $output .= ' AND (' . implode(' ' . $this->extra_type . ' ', $extras) . ')';
+          }
+        }
+      }
+      else if ($this->extra && is_string($this->extra)) {
+        $output .= " AND ($this->extra)";
+      }
+    }
+    return $output;
+  }
+
+  /**
+   * Ensure that input is db safe. We only check strings and ints tho
+   * so something that needs floats in their joins needs to do their
+   * own type checking.
+   */
+  function db_safe($input, $info) {
+    if (is_array($input)) {
+      $output = array();
+      foreach ($input as $value) {
+        if (empty($info['numeric'])) {
+          $output[] = db_escape_string($value);
+        }
+        else {
+          $output[] = intval($value);
+        }
+      }
+    }
+    else if (empty($info['numeric'])) {
+      $output = db_escape_string($input);
+    }
+    else {
+      $output = intval($input);
+    }
+
+    return $output;
+  }
+}
+
+/**
+ * @}
+ */
+
+// Declare API compatibility on behalf of core modules:
+
+/**
+ * Implementation of hook_views_api().
+ *
+ * This one is used as the base to reduce errors when updating.
+ */
+function views_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'views') . '/modules',
+  );
+}
+
+if (!function_exists('aggregator_views_api')) {
+  function aggregator_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('book_views_api')) {
+  function book_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('comment_views_api')) {
+  function comment_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('locale_views_api')) {
+  function locale_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('filter_views_api')) {
+  function filter_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('node_views_api')) {
+  function node_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('poll_views_api')) {
+  function poll_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('profile_views_api')) {
+  function profile_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('search_views_api')) {
+  function search_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('statistics_views_api')) {
+  function statistics_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('system_views_api')) {
+  function system_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('taxonomy_views_api')) {
+  function taxonomy_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('translation_views_api')) {
+  function translation_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('upload_views_api')) {
+  function upload_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('user_views_api')) {
+  function user_views_api() { return views_views_api(); }
+}
+
+if (!function_exists('contact_views_api')) {
+  function contact_views_api() { return views_views_api(); }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/plugins.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/plugins.inc
new file mode 100644
index 0000000..2d010c5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/plugins.inc
@@ -0,0 +1,407 @@
+<?php
+/**
+ * @file plugins.inc
+ * Built in plugins for Views output handling.
+ *
+ */
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function views_views_plugins() {
+  $path = drupal_get_path('module', 'views') . '/js';
+
+  $plugins = array(
+    'module' => 'views', // This just tells our themes are elsewhere.
+    'display' => array(
+      'parent' => array(
+        // this isn't really a display but is necessary so the file can
+        // be included.
+        'no ui' => TRUE,
+        'handler' => 'views_plugin_display',
+        'parent' => '',
+      ),
+      'default' => array(
+        'title' => t('Defaults'),
+        'help' => t('Default settings for this view.'),
+        'handler' => 'views_plugin_display_default',
+        'theme' => 'views_view',
+        'no ui' => TRUE,
+        'no remove' => TRUE,
+        'js' => array('misc/collapse.js', 'misc/textarea.js', 'misc/tabledrag.js', 'misc/autocomplete.js', "$path/dependent.js"),
+        'use ajax' => TRUE,
+        'use pager' => TRUE,
+        'use more' => TRUE,
+        'accept attachments' => TRUE,
+        'help topic' => 'display-default',
+      ),
+      'page' => array(
+        'title' => t('Page'),
+        'help' => t('Display the view as a page, with a URL and menu links.'),
+        'handler' => 'views_plugin_display_page',
+        'theme' => 'views_view',
+        'uses hook menu' => TRUE,
+        'use ajax' => TRUE,
+        'use pager' => TRUE,
+        'accept attachments' => TRUE,
+        'admin' => t('Page'),
+        'help topic' => 'display-page',
+      ),
+      'block' => array(
+        'title' => t('Block'),
+        'help' => t('Display the view as a block.'),
+        'handler' => 'views_plugin_display_block',
+        'theme' => 'views_view',
+        'uses hook block' => TRUE,
+        'use ajax' => TRUE,
+        'use pager' => TRUE,
+        'use more' => TRUE,
+        'accept attachments' => TRUE,
+        'admin' => t('Block'),
+        'help topic' => 'display-block',
+      ),
+      'attachment' => array(
+        'title' => t('Attachment'),
+        'help' => t('Attachments added to other displays to achieve multiple views in the same view.'),
+        'handler' => 'views_plugin_display_attachment',
+        'theme' => 'views_view',
+        'use ajax' => TRUE,
+        'help topic' => 'display-attachment',
+      ),
+      'feed' => array(
+        'title' => t('Feed'),
+        'help' => t('Display the view as a feed, such as an RSS feed.'),
+        'handler' => 'views_plugin_display_feed',
+        'parent' => 'page', // so it knows to load the page plugin .inc file
+        'uses hook menu' => TRUE,
+        'use ajax' => FALSE,
+        'use pager' => FALSE,
+        'accept attachments' => FALSE,
+        'admin' => t('Feed'),
+        'help topic' => 'display-feed',
+      ),
+    ),
+    'style' => array(
+      'parent' => array(
+        // this isn't really a display but is necessary so the file can
+        // be included.
+        'no ui' => TRUE,
+        'handler' => 'views_plugin_style',
+        'parent' => '',
+      ),
+      'default' => array(
+        'title' => t('Unformatted'),
+        'help' => t('Displays rows one after another.'),
+        'handler' => 'views_plugin_style_default',
+        'theme' => 'views_view_unformatted',
+        'uses row plugin' => TRUE,
+        'uses grouping' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-unformatted',
+      ),
+      'list' => array(
+        'title' => t('HTML List'),
+        'help' => t('Displays rows as an HTML list.'),
+        'handler' => 'views_plugin_style_list',
+        'theme' => 'views_view_list',
+        'uses row plugin' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-list',
+      ),
+      'grid' => array(
+        'title' => t('Grid'),
+        'help' => t('Displays rows in a grid.'),
+        'handler' => 'views_plugin_style_grid',
+        'theme' => 'views_view_grid',
+        'uses row plugin' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-grid',
+      ),
+      'table' => array(
+        'title' => t('Table'),
+        'help' => t('Displays rows in a table.'),
+        'handler' => 'views_plugin_style_table',
+        'theme' => 'views_view_table',
+        'uses row plugin' => FALSE,
+        'uses fields' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-table',
+      ),
+      'default_summary' => array(
+        'title' => t('List'),
+        'help' => t('Displays the default summary as a list.'),
+        'handler' => 'views_plugin_style_summary',
+        'theme' => 'views_view_summary',
+        'type' => 'summary', // only shows up as a summary style
+        'uses options' => TRUE,
+        'help topic' => 'style-summary',
+      ),
+      'unformatted_summary' => array(
+        'title' => t('Unformatted'),
+        'help' => t('Displays the summary unformatted, with option for one after another or inline.'),
+        'handler' => 'views_plugin_style_summary_unformatted',
+        'parent' => 'default_summary',
+        'theme' => 'views_view_summary_unformatted',
+        'type' => 'summary', // only shows up as a summary style
+        'uses options' => TRUE,
+        'help topic' => 'style-summary-unformatted',
+      ),
+      'rss' => array(
+        'title' => t('RSS Feed'),
+        'help' => t('Generates an RSS feed from a view.'),
+        'handler' => 'views_plugin_style_rss',
+        'theme' => 'views_view_rss',
+        'uses row plugin' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'feed',
+        'help topic' => 'style-rss',
+      ),
+    ),
+    'row' => array(
+      'parent' => array(
+        // this isn't really a display but is necessary so the file can
+        // be included.
+        'no ui' => TRUE,
+        'handler' => 'views_plugin_row',
+        'parent' => '',
+      ),
+      'fields' => array(
+        'title' => t('Fields'),
+        'help' => t('Displays the fields with an optional template.'),
+        'handler' => 'views_plugin_row_fields',
+        'theme' => 'views_view_fields',
+        'uses fields' => TRUE,
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-row-fields',
+      ),
+    ),
+    'argument default' => array(
+      // This type of plugin does not conform to the standard and
+      // uses 'fixed' as the parent rather than having a separate parent.
+      'fixed' => array(
+        'title' => t('Fixed entry'),
+        'handler' => 'views_plugin_argument_default',
+      ),
+      'php' => array(
+        'title' => t('PHP Code'),
+        'handler' => 'views_plugin_argument_default_php',
+        'parent' => 'fixed',
+      ),
+    ),
+    'argument validator' => array(
+      'parent' => array(
+        'no ui' => TRUE,
+        'handler' => 'views_plugin_argument_validate',
+        'parent' => '',
+      ),
+      'php' => array(
+        'title' => t('PHP Code'),
+        'handler' => 'views_plugin_argument_validate_php',
+      ),
+      'numeric' => array(
+        'title' => t('Numeric'),
+        'handler' => 'views_plugin_argument_validate_numeric',
+      ),
+    ),
+    'access' => array(
+      'parent' => array(
+        'no ui' => TRUE,
+        'handler' => 'views_plugin_access',
+        'parent' => '',
+      ),
+      'none' => array(
+        'title' => t('None'),
+        'help' => t('Will be available to all users.'),
+        'handler' => 'views_plugin_access_none',
+        'help topic' => 'access-none',
+      ),
+      'role' => array(
+        'title' => t('Role'),
+        'help' => t('Access will be granted to users with any of the specified roles.'),
+        'handler' => 'views_plugin_access_role',
+        'uses options' => TRUE,
+        'help topic' => 'access-role',
+      ),
+      'perm' => array(
+        'title' => t('Permission'),
+        'help' => t('Access will be granted to users with the specified permission string.'),
+        'handler' => 'views_plugin_access_perm',
+        'uses options' => TRUE,
+        'help topic' => 'access-perm',
+      ),
+    ),
+    'cache' => array(
+      'parent' => array(
+        'no ui' => TRUE,
+        'handler' => 'views_plugin_cache',
+        'parent' => '',
+      ),
+      'none' => array(
+        'title' => t('None'),
+        'help' => t('No caching of Views data.'),
+        'handler' => 'views_plugin_cache_none',
+        'help topic' => 'cache-none',
+      ),
+      'time' => array(
+        'title' => t('Time-based'),
+        'help' => t('Simple time-based caching of data.'),
+        'handler' => 'views_plugin_cache_time',
+        'uses options' => TRUE,
+        'help topic' => 'cache-time',
+      ),
+    ),
+  );
+
+  if (module_invoke('ctools', 'api_version', '1.3')) {
+    $plugins['style']['jump_menu_summary'] = array(
+      'title' => t('Jump menu'),
+      'help' => t('Puts all of the results into a select box and allows the user to go to a different page based upon the results.'),
+      'handler' => 'views_plugin_style_summary_jump_menu',
+      'theme' => 'views_view_summary_jump_menu',
+      'type' => 'summary', // only shows up as a summary style
+      'uses options' => TRUE,
+      'help topic' => 'style-summary-jump-menu',
+    );
+    $plugins['style']['jump_menu'] = array(
+      'title' => t('Jump menu'),
+      'help' => t('Puts all of the results into a select box and allows the user to go to a different page based upon the results.'),
+      'handler' => 'views_plugin_style_jump_menu',
+      'theme' => 'views_view_jump_menu',
+      'uses row plugin' => TRUE,
+      'uses fields' => TRUE,
+      'uses options' => TRUE,
+      'type' => 'normal',
+      'help topic' => 'style-jump-menu',
+    );
+  }
+
+  return $plugins;
+}
+
+/**
+ * Builds and return a list of all plugins available in the system.
+ *
+ * @return Nested array of plugins, grouped by type.
+ */
+function views_discover_plugins() {
+  $cache = array('display' => array(), 'style' => array(), 'row' => array(), 'argument default' => array(), 'argument validator' => array(), 'access' => array(), 'cache' => array());
+  // Get plugins from all mdoules.
+  foreach (module_implements('views_plugins') as $module) {
+    $function = $module . '_views_plugins';
+    $result = $function();
+    if (!is_array($result)) {
+      continue;
+    }
+
+    $module_dir = isset($result['module']) ? $result['module'] : $module;
+    // Setup automatic path/file finding for theme registration
+    if ($module_dir == 'views') {
+      $theme_path = drupal_get_path('module', $module_dir) . '/theme';
+      $theme_file = 'theme.inc';
+      $path = drupal_get_path('module', $module_dir) . '/plugins';
+    }
+    else {
+      $theme_path = $path = drupal_get_path('module', $module_dir);
+      $theme_file = "$module.views.inc";
+    }
+
+    foreach ($result as $type => $info) {
+      if ($type == 'module') {
+        continue;
+      }
+      foreach ($info as $plugin => $def) {
+        $def['module'] = $module_dir;
+        if (!isset($def['theme path'])) {
+          $def['theme path'] = $theme_path;
+        }
+        if (!isset($def['theme file'])) {
+          $def['theme file'] = $theme_file;
+        }
+        if (!isset($def['path'])) {
+          $def['path'] = $path;
+        }
+        if (!isset($def['file'])) {
+          $def['file'] = $def['handler'] . '.inc';
+        }
+        if (!isset($def['parent'])) {
+          $def['parent'] = 'parent';
+        }
+        // merge the new data in
+        $cache[$type][$plugin] = $def;
+      }
+    }
+  }
+
+  // Let other modules modify the plugins.
+  drupal_alter('views_plugins', $cache);
+  return $cache;
+}
+
+/**
+ * Abstract base class to provide interface common to all plugins.
+ */
+class views_plugin extends views_object {
+  /**
+   * Init will be called after construct, when the plugin is attached to a
+   * view and a display.
+   */
+  function init(&$view, &$display) {
+    $this->view = &$view;
+    $this->display = &$display;
+  }
+
+  /**
+   * Provide a form to edit options for this plugin.
+   */
+  function options_form(&$form, &$form_state) { }
+
+  /**
+   * Validate the options form.
+   */
+  function options_validate(&$form, &$form_state) { }
+
+  /**
+   * Handle any special handling on the validate form.
+   */
+  function options_submit(&$form, &$form_state) { }
+
+  /**
+   * Add anything to the query that we might need to.
+   */
+  function query() { }
+
+  /**
+   * Provide a full list of possible theme templates used by this style.
+   */
+  function theme_functions() {
+    return views_theme_functions($this->definition['theme'], $this->view, $this->display);
+  }
+
+  /**
+   * Provide a list of additional theme functions for the theme information page
+   */
+  function additional_theme_functions() {
+    $funcs = array();
+    if (!empty($this->definition['additional themes'])) {
+      foreach ($this->definition['additional themes'] as $theme => $type) {
+        $funcs[] = views_theme_functions($theme, $this->view, $this->display);
+      }
+    }
+    return $funcs;
+  }
+
+  /**
+   * Validate that the plugin is correct and can be saved.
+   *
+   * @return
+   *   An array of error strings to tell the user what is wrong with this
+   *   plugin.
+   */
+  function validate() { return array(); }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/query.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/query.inc
new file mode 100644
index 0000000..a25fb9d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/query.inc
@@ -0,0 +1,1011 @@
+<?php
+/**
+ * @file query.inc
+ * Defines the query object which is the underlying layer in a View.
+ */
+
+/**
+ * Object used to create a SELECT query.
+ */
+class views_query {
+
+  /**
+   * A list of tables in the order they should be added, keyed by alias.
+   */
+  var $table_queue = array();
+
+  /**
+   * Holds an array of tables and counts added so that we can create aliases
+   */
+  var $tables = array();
+
+  /**
+   * Holds an array of relationships, which are aliases of the primary
+   * table that represent different ways to join the same table in.
+   */
+  var $relationships = array();
+
+  /**
+   * An array of sections of the WHERE query. Each section is in itself
+   * an array of pieces and a flag as to whether or not it should be AND
+   * or OR.
+   */
+  var $where = array();
+  /**
+   * An array of sections of the HAVING query. Each section is in itself
+   * an array of pieces and a flag as to whether or not it should be AND
+   * or OR.
+   */
+  var $having = array();
+  /**
+   * The default operator to use when connecting the WHERE groups. May be
+   * AND or OR.
+   */
+  var $group_operator = 'AND';
+
+  /**
+   * A simple array of order by clauses.
+   */
+  var $orderby = array();
+
+  /**
+   * A simple array of group by clauses.
+   */
+  var $groupby = array();
+
+  /**
+   * The table header to use for tablesort. This matters because tablesort
+   * needs to modify the query and needs the header.
+   */
+  var $header = array();
+
+  /**
+   * A flag as to whether or not to make the primary field distinct.
+   */
+  var $distinct = FALSE;
+
+  /**
+   * Constructor; Create the basic query object and fill with default values.
+   */
+  function views_query($base_table = 'node', $base_field = 'nid') {
+    $this->base_table = $base_table;  // Predefine these above, for clarity.
+    $this->base_field = $base_field;
+    $this->relationships[$base_table] = array(
+      'link' => NULL,
+      'table' => $base_table,
+      'alias' => $base_table,
+      'base' => $base_table
+    );
+
+    // init the table queue with our primary table.
+    $this->table_queue[$base_table] = array(
+      'alias' => $base_table,
+      'table' => $base_table,
+      'relationship' => $base_table,
+      'join' => NULL,
+    );
+
+    // init the tables with our primary table
+    $this->tables[$base_table][$base_table] = array(
+      'count' => 1,
+      'alias' => $base_table,
+    );
+
+    if ($base_field) {
+      $this->fields[$base_field] = array(
+        'table' => $base_table,
+        'field' => $base_field,
+        'alias' => $base_field,
+      );
+    }
+
+    $this->count_field = array(
+      'table' => $base_table,
+      'field' => $base_field,
+      'alias' => $base_field,
+      'count' => TRUE,
+    );
+  }
+
+  // ----------------------------------------------------------------
+  // Utility methods to set flags and data.
+
+  /**
+   * Set the base field to be distinct.
+   */
+  function set_distinct($value = TRUE) {
+    if (!(isset($this->no_distinct) && $value)) {
+      $this->distinct = $value;
+    }
+  }
+
+  /**
+   * Set what field the query will count() on for paging.
+   */
+  function set_count_field($table, $field, $alias = NULL) {
+    if (empty($alias)) {
+      $alias = $table . '_' . $field;
+    }
+    $this->count_field = array(
+      'table' => $table,
+      'field' => $field,
+      'alias' => $alias,
+      'count' => TRUE,
+    );
+  }
+
+  /**
+   * Set the table header; used for click-sorting because it's needed
+   * info to modify the ORDER BY clause.
+   */
+  function set_header($header) {
+    $this->header = $header;
+  }
+
+  // ----------------------------------------------------------------
+  // Table/join adding
+
+  /**
+   * A relationship is an alternative endpoint to a series of table
+   * joins. Relationships must be aliases of the primary table and
+   * they must join either to the primary table or to a pre-existing
+   * relationship.
+   *
+   * An example of a relationship would be a nodereference table.
+   * If you have a nodereference named 'book_parent' which links to a
+   * parent node, you could set up a relationship 'node_book_parent'
+   * to 'node'. Then, anything that links to 'node' can link to
+   * 'node_book_parent' instead, thus allowing all properties of
+   * both nodes to be available in the query.
+   *
+   * @param $alias
+   *   What this relationship will be called, and is also the alias
+   *   for the table.
+   * @param $join
+   *   A views_join object (or derived object) to join the alias in.
+   * @param $base
+   *   The name of the 'base' table this relationship represents; this
+   *   tells the join search which path to attempt to use when finding
+   *   the path to this relationship.
+   * @param $link_point
+   *   If this relationship links to something other than the primary
+   *   table, specify that table here. For example, a 'track' node
+   *   might have a relationship to an 'album' node, which might
+   *   have a relationship to an 'artist' node.
+   */
+  function add_relationship($alias, $join, $base, $link_point = NULL) {
+    if (empty($link_point)) {
+      $link_point = $this->base_table;
+    }
+    else if (!array_key_exists($link_point, $this->relationships)) {
+      return FALSE;
+    }
+
+    // Make sure $alias isn't already used; if it, start adding stuff.
+    $alias_base = $alias;
+    $count = 1;
+    while (!empty($this->relationships[$alias])) {
+      $alias = $alias_base . '_' . $count++;
+    }
+
+    // Make sure this join is adjusted for our relationship.
+    if ($link_point && isset($this->relationships[$link_point])) {
+      $join = $this->adjust_join($join, $link_point);
+    }
+
+    // Add the table directly to the queue to avoid accidentally marking
+    // it.
+    $this->table_queue[$alias] = array(
+      'table' => $join->table,
+      'num' => 1,
+      'alias' => $alias,
+      'join' => $join,
+      'relationship' => $link_point,
+    );
+
+    $this->relationships[$alias] = array(
+      'link' => $link_point,
+      'table' => $join->table,
+      'base' => $base,
+    );
+
+    $this->tables[$this->base_table][$alias] = array(
+      'count' => 1,
+      'alias' => $alias,
+    );
+
+    return $alias;
+  }
+
+  /**
+   * Add a table to the query, ensuring the path exists.
+   *
+   * This function will test to ensure that the path back to the primary
+   * table is valid and exists; if you do not wish for this testing to
+   * occur, use $query->queue_table() instead.
+   *
+   * @param $table
+   *   The name of the table to add. It needs to exist in the global table
+   *   array.
+   * @param $relationship
+   *   An alias of a table; if this is set, the path back to this table will
+   *   be tested prior to adding the table, making sure that all intermediary
+   *   tables exist and are properly aliased. If set to NULL the path to
+   *   the primary table will be ensured. If the path cannot be made, the
+   *   table will NOT be added.
+   * @param $join
+   *   In some join configurations this table may actually join back through
+   *   a different method; this is most likely to be used when tracing
+   *   a hierarchy path. (node->parent->parent2->parent3). This parameter
+   *   will specify how this table joins if it is not the default.
+   * @param $alias
+   *   A specific alias to use, rather than the default alias.
+   *
+   * @return $alias
+   *   The alias of the table; this alias can be used to access information
+   *   about the table and should always be used to refer to the table when
+   *   adding parts to the query. Or FALSE if the table was not able to be
+   *   added.
+   */
+  function add_table($table, $relationship = NULL, $join = NULL, $alias = NULL) {
+    if (!$this->ensure_path($table, $relationship, $join)) {
+      return FALSE;
+    }
+
+    if ($join && $relationship) {
+      $join = $this->adjust_join($join, $relationship);
+    }
+
+    return $this->queue_table($table, $relationship, $join, $alias);
+  }
+
+  /**
+   * Add a table to the query without ensuring the path.
+   *
+   * This is a pretty internal function to Views and add_table() or
+   * ensure_table() should be used instead of this one, unless you are
+   * absolutely sure this is what you want.
+   *
+   * @param $table
+   *   The name of the table to add. It needs to exist in the global table
+   *   array.
+   * @param $relationship
+   *   The primary table alias this table is related to. If not set, the
+   *   primary table will be used.
+   * @param $join
+   *   In some join configurations this table may actually join back through
+   *   a different method; this is most likely to be used when tracing
+   *   a hierarchy path. (node->parent->parent2->parent3). This parameter
+   *   will specify how this table joins if it is not the default.
+   * @param $alias
+   *   A specific alias to use, rather than the default alias.
+   *
+   * @return $alias
+   *   The alias of the table; this alias can be used to access information
+   *   about the table and should always be used to refer to the table when
+   *   adding parts to the query. Or FALSE if the table was not able to be
+   *   added.
+   */
+  function queue_table($table, $relationship = NULL, $join = NULL, $alias = NULL) {
+    // If the alias is set, make sure it doesn't already exist.
+    if (isset($this->table_queue[$alias])) {
+      return $alias;
+    }
+
+    if (empty($relationship)) {
+      $relationship = $this->base_table;
+    }
+
+    if (!array_key_exists($relationship, $this->relationships)) {
+      return FALSE;
+    }
+
+    if (!$alias && $join && $relationship && !empty($join->adjusted) && $table != $join->table) {
+      if ($relationship == $this->base_table) {
+        $alias = $table;
+      }
+      else {
+        $alias = $relationship . '_' . $table;
+      }
+    }
+
+    // Check this again to make sure we don't blow up existing aliases for already
+    // adjusted joins.
+    if (isset($this->table_queue[$alias])) {
+      return $alias;
+    }
+
+    $alias = $this->mark_table($table, $relationship, $alias);
+
+    // If no alias is specified, give it the default.
+    if (!isset($alias)) {
+      $alias = $this->tables[$relationship][$table]['alias'] . $this->tables[$relationship][$table]['count'];
+    }
+
+    // If this is a relationship based table, add a marker with
+    // the relationship as a primary table for the alias.
+    if ($table != $alias) {
+      $this->mark_table($alias, $this->base_table, $alias);
+    }
+
+    // If no join is specified, pull it from the table data.
+    if (!isset($join)) {
+      $join = $this->get_join_data($table, $this->relationships[$relationship]['base']);
+      if (empty($join)) {
+        return FALSE;
+      }
+
+      $join = $this->adjust_join($join, $relationship);
+    }
+
+    $this->table_queue[$alias] = array(
+      'table' => $table,
+      'num' => $this->tables[$relationship][$table]['count'],
+      'alias' => $alias,
+      'join' => $join,
+      'relationship' => $relationship,
+    );
+
+    return $alias;
+  }
+
+  function mark_table($table, $relationship, $alias) {
+    // Mark that this table has been added.
+    if (empty($this->tables[$relationship][$table])) {
+      if (!isset($alias)) {
+        $alias = '';
+        if ($relationship != $this->base_table) {
+          // double underscore will help prevent accidental name
+          // space collisions.
+          $alias = $relationship . '__';
+        }
+        $alias .= $table;
+      }
+      $this->tables[$relationship][$table] = array(
+        'count' => 1,
+        'alias' => $alias,
+      );
+    }
+    else {
+      $this->tables[$relationship][$table]['count']++;
+    }
+
+    return $alias;
+  }
+
+  /**
+   * Ensure a table exists in the queue; if it already exists it won't
+   * do anything, but if it doesn't it will add the table queue. It will ensure
+   * a path leads back to the relationship table.
+   *
+   * @param $table
+   *   The unaliased name of the table to ensure.
+   * @param $relationship
+   *   The relationship to ensure the table links to. Each relationship will
+   *   get a unique instance of the table being added. If not specified,
+   *   will be the primary table.
+   * @param $join
+   *   A views_join object (or derived object) to join the alias in.
+   *
+   * @return
+   *   The alias used to refer to this specific table, or NULL if the table
+   *   cannot be ensured.
+   */
+  function ensure_table($table, $relationship = NULL, $join = NULL) {
+    // ensure a relationship
+    if (empty($relationship)) {
+      $relationship = $this->base_table;
+    }
+
+    // If the relationship is the primary table, this actually be a relationship
+    // link back from an alias. We store all aliases along with the primary table
+    // to detect this state, because eventually it'll hit a table we already
+    // have and that's when we want to stop.
+    if ($relationship == $this->base_table && !empty($this->tables[$relationship][$table])) {
+      return $this->tables[$relationship][$table]['alias'];
+    }
+
+    if (!array_key_exists($relationship, $this->relationships)) {
+      return FALSE;
+    }
+
+    if ($table == $this->relationships[$relationship]['base']) {
+      return $relationship;
+    }
+
+    // If we do not have join info, fetch it.
+    if (!isset($join)) {
+      $join = $this->get_join_data($table, $this->relationships[$relationship]['base']);
+    }
+
+    // If it can't be fetched, this won't work.
+    if (empty($join)) {
+      return;
+    }
+
+    // Adjust this join for the relationship, which will ensure that the 'base'
+    // table it links to is correct. Tables adjoined to a relationship
+    // join to a link point, not the base table.
+    $join = $this->adjust_join($join, $relationship);
+
+    if ($this->ensure_path($table, $relationship, $join)) {
+      // Attempt to eliminate redundant joins.  If this table's
+      // relationship and join exactly matches an existing table's
+      // relationship and join, we do not have to join to it again;
+      // just return the existing table's alias.  See
+      // http://groups.drupal.org/node/11288 for details.
+      //
+      // This can be done safely here but not lower down in
+      // queue_table(), because queue_table() is also used by
+      // add_table() which requires the ability to intentionally add
+      // the same table with the same join multiple times.  For
+      // example, a view that filters on 3 taxonomy terms using AND
+      // needs to join term_data 3 times with the same join.
+
+      // scan through the table queue to see if a matching join and
+      // relationship exists.  If so, use it instead of this join.
+
+      // TODO: Scanning through $this->table_queue results in an
+      // O(N^2) algorithm, and this code runs every time the view is
+      // instantiated (Views 2 does not currently cache queries).
+      // There are a couple possible "improvements" but we should do
+      // some performance testing before picking one.
+      foreach ($this->table_queue as $queued_table) {
+        // In PHP 4 and 5, the == operation returns TRUE for two objects
+        // if they are instances of the same class and have the same
+        // attributes and values.
+        if ($queued_table['relationship'] == $relationship && $queued_table['join'] == $join) {
+          return $queued_table['alias'];
+        }
+      }
+
+      return $this->queue_table($table, $relationship, $join);
+    }
+  }
+
+  /**
+   * Make sure that the specified table can be properly linked to the primary
+   * table in the JOINs. This function uses recursion. If the tables
+   * needed to complete the path back to the primary table are not in the
+   * query they will be added, but additional copies will NOT be added
+   * if the table is already there.
+   */
+  function ensure_path($table, $relationship = NULL, $join = NULL, $traced = array(), $add = array()) {
+    if (!isset($relationship)) {
+      $relationship = $this->base_table;
+    }
+
+    if (!array_key_exists($relationship, $this->relationships)) {
+      return FALSE;
+    }
+
+    // If we do not have join info, fetch it.
+    if (!isset($join)) {
+      $join = $this->get_join_data($table, $this->relationships[$relationship]['base']);
+    }
+
+    // If it can't be fetched, this won't work.
+    if (empty($join)) {
+      return FALSE;
+    }
+
+    // Does a table along this path exist?
+    if (isset($this->tables[$relationship][$table]) ||
+      ($join && $join->left_table == $relationship) ||
+      ($join && $join->left_table == $this->relationships[$relationship]['table'])) {
+
+      // Make sure that we're linking to the correct table for our relationship.
+      foreach (array_reverse($add) as $table => $path_join) {
+        $this->queue_table($table, $relationship, $this->adjust_join($path_join, $relationship));
+      }
+      return TRUE;
+    }
+
+    // Have we been this way?
+    if (isset($traced[$join->left_table])) {
+      // we looped. Broked.
+      return FALSE;
+    }
+
+    // Do we have to add this table?
+    $left_join = $this->get_join_data($join->left_table, $this->relationships[$relationship]['base']);
+    if (!isset($this->tables[$relationship][$join->left_table])) {
+      $add[$join->left_table] = $left_join;
+    }
+
+    // Keep looking.
+    $traced[$join->left_table] = TRUE;
+    return $this->ensure_path($join->left_table, $relationship, $left_join, $traced, $add);
+  }
+
+  /**
+   * Fix a join to adhere to the proper relationship; the left table can vary
+   * based upon what relationship items are joined in on.
+   */
+  function adjust_join($join, $relationship) {
+    if (!empty($join->adjusted)) {
+      return $join;
+    }
+
+    if (empty($relationship) || empty($this->relationships[$relationship])) {
+      return $join;
+    }
+
+    // Adjusts the left table for our relationship.
+    if ($relationship != $this->base_table) {
+      // If we're linking to the primary table, the relationship to use will
+      // be the prior relationship. Unless it's a direct link.
+
+      // Safety! Don't modify an original here.
+      $join = drupal_clone($join);
+
+      // Do we need to try to ensure a path?
+      if ($join->left_table != $this->relationships[$relationship]['table'] &&
+          $join->left_table != $this->relationships[$relationship]['base'] &&
+          !isset($this->tables[$relationship][$join->left_table]['alias'])) {
+        $this->ensure_table($join->left_table, $relationship);
+      }
+
+      // First, if this is our link point/anchor table, just use the relationship
+      if ($join->left_table == $this->relationships[$relationship]['table']) {
+        $join->left_table = $relationship;
+      }
+      // then, try the base alias.
+      else if (isset($this->tables[$relationship][$join->left_table]['alias'])) {
+        $join->left_table = $this->tables[$relationship][$join->left_table]['alias'];
+      }
+      // But if we're already looking at an alias, use that instead.
+      else if (isset($this->table_queue[$relationship]['alias'])) {
+        $join->left_table = $this->table_queue[$relationship]['alias'];
+      }
+    }
+
+    $join->adjusted = TRUE;
+    return $join;
+  }
+
+  /**
+   * Retrieve join data from the larger join data cache.
+   *
+   * @param $table
+   *   The table to get the join information for.
+   * @param $base_table
+   *   The path we're following to get this join.
+   *
+   * @return
+   *   A views_join object or child object, if one exists.
+   */
+  function get_join_data($table, $base_table) {
+    // Check to see if we're linking to a known alias. If so, get the real
+    // table's data instead.
+    if (!empty($this->table_queue[$table])) {
+      $table = $this->table_queue[$table]['table'];
+    }
+    return views_get_table_join($table, $base_table);
+
+  }
+
+  /**
+   * Get the information associated with a table.
+   *
+   * If you need the alias of a table with a particular relationship, use
+   * ensure_table().
+   */
+  function get_table_info($table) {
+    if (!empty($this->table_queue[$table])) {
+      return $this->table_queue[$table];
+    }
+
+    // In rare cases we might *only* have aliased versions of the table.
+    if (!empty($this->tables[$this->base_table][$table])) {
+      $alias = $this->tables[$this->base_table][$table]['alias'];
+      if (!empty($this->table_queue[$alias])) {
+        return $this->table_queue[$alias];
+      }
+    }
+  }
+
+  /**
+   * Add a field to the query table, possibly with an alias. This will
+   * automatically call ensure_table to make sure the required table
+   * exists, *unless* $table is unset.
+   *
+   * @param $table
+   *   The table this field is attached to. If NULL, it is assumed this will
+   *   be a formula; otherwise, ensure_table is used to make sure the
+   *   table exists.
+   * @param $field
+   *   The name of the field to add. This may be a real field or a formula.
+   * @param $alias
+   *   The alias to create. If not specified, the alias will be $table_$field
+   *   unless $table is NULL. When adding formulae, it is recommended that an
+   *   alias be used.
+   *
+   * @return $name
+   *   The name that this field can be referred to as. Usually this is the alias.
+   */
+  function add_field($table, $field, $alias = '', $params = NULL) {
+    // We check for this specifically because it gets a special alias.
+    if ($table == $this->base_table && $field == $this->base_field && empty($alias)) {
+      $alias = $this->base_field;
+    }
+
+    if ($table && empty($this->table_queue[$table])) {
+      $this->ensure_table($table);
+    }
+
+    if (!$alias && $table) {
+      $alias = $table . '_' . $field;
+    }
+
+    $name = $alias ? $alias : $field;
+
+    // @todo FIXME -- $alias, then $name is inconsistent
+    if (empty($this->fields[$alias])) {
+      $this->fields[$name] = array(
+        'field' => $field,
+        'table' => $table,
+        'alias' => $alias,
+      );
+    }
+
+    foreach ((array)$params as $key => $value) {
+      $this->fields[$name][$key] = $value;
+    }
+
+    return $name;
+  }
+
+  /**
+   * Remove all fields that may've been added; primarily used for summary
+   * mode where we're changing the query because we didn't get data we needed.
+   */
+  function clear_fields() {
+    $this->fields = array();
+  }
+
+  /**
+   * Create a new grouping for the WHERE or HAVING clause.
+   *
+   * @param $type
+   *   Either 'AND' or 'OR'. All items within this group will be added
+   *   to the WHERE clause with this logical operator.
+   * @param $group
+   *   An ID to use for this group. If unspecified, an ID will be generated.
+   * @param $where
+   *   'where' or 'having'.
+   *
+   * @return $group
+   *   The group ID generated.
+   */
+  function set_where_group($type = 'AND', $group = NULL, $where = 'where') {
+    // Set an alias.
+    $groups = &$this->$where;
+
+    if (!isset($group)) {
+      $group = empty($groups) ? 1 : max(array_keys($groups)) + 1;
+    }
+
+    // Create an empty group
+    if (empty($groups[$group])) {
+      $groups[$group] = array('clauses' => array(), 'args' => array());
+    }
+
+    $groups[$group]['type'] = strtoupper($type);
+    return $group;
+  }
+
+  /**
+   * Control how all WHERE and HAVING groups are put together.
+   *
+   * @param $type
+   *   Either 'AND' or 'OR'
+   */
+  function set_group_operator($type = 'AND') {
+    $this->group_operator = strtoupper($type);
+  }
+
+  /**
+   * Add a simple WHERE clause to the query. The caller is responsible for
+   * ensuring that all fields are fully qualified (TABLE.FIELD) and that
+   * the table already exists in the query.
+   *
+   * @param $group
+   *   The WHERE group to add these to; groups are used to create AND/OR
+   *   sections. Groups cannot be nested. Use 0 as the default group.
+   *   If the group does not yet exist it will be created as an AND group.
+   * @param $clause
+   *   The actual clause to add. When adding a where clause it is important
+   *   that all tables are addressed by the alias provided by add_table or
+   *   ensure_table and that all fields are addressed by their alias wehn
+   *   possible. Please use %d and %s for arguments.
+   * @param ...
+   *   A number of arguments as used in db_query(). May be many args or one
+   *   array full of args.
+   */
+  function add_where($group, $clause) {
+    $args = func_get_args();
+    array_shift($args); // ditch $group
+    array_shift($args); // ditch $clause
+
+    // Expand an array of args if it came in.
+    if (count($args) == 1 && is_array(reset($args))) {
+      $args = current($args);
+    }
+
+    // Ensure all variants of 0 are actually 0. Thus '', 0 and NULL are all
+    // the default group.
+    if (empty($group)) {
+      $group = 0;
+    }
+
+    // Check for a group.
+    if (!isset($this->where[$group])) {
+      $this->set_where_group('AND', $group);
+    }
+
+    // Add the clause and the args.
+    if (is_array($args)) {
+      $this->where[$group]['clauses'][] = $clause;
+      // we use array_values() here to prevent array_merge errors as keys from multiple
+      // sources occasionally collide.
+      $this->where[$group]['args'] = array_merge($this->where[$group]['args'], array_values($args));
+    }
+  }
+
+  /**
+   * Add a simple HAVING clause to the query. The caller is responsible for
+   * ensuring that all fields are fully qualified (TABLE.FIELD) and that
+   * the table and an appropriate GROUP BY already exist in the query.
+   *
+   * @param $group
+   *   The HAVING group to add these to; groups are used to create AND/OR
+   *   sections. Groups cannot be nested. Use 0 as the default group.
+   *   If the group does not yet exist it will be created as an AND group.
+   * @param $clause
+   *   The actual clause to add. When adding a having clause it is important
+   *   that all tables are addressed by the alias provided by add_table or
+   *   ensure_table and that all fields are addressed by their alias wehn
+   *   possible. Please use %d and %s for arguments.
+   * @param ...
+   *   A number of arguments as used in db_query(). May be many args or one
+   *   array full of args.
+   */
+  function add_having($group, $clause) {
+    $args = func_get_args();
+    array_shift($args); // ditch $group
+    array_shift($args); // ditch $clause
+
+    // Expand an array of args if it came in.
+    if (count($args) == 1 && is_array(reset($args))) {
+      $args = current($args);
+    }
+
+    // Ensure all variants of 0 are actually 0. Thus '', 0 and NULL are all
+    // the default group.
+    if (empty($group)) {
+      $group = 0;
+    }
+
+    // Check for a group.
+    if (!isset($this->having[$group])) {
+      $this->set_where_group('AND', $group, 'having');
+    }
+
+    // Add the clause and the args.
+    if (is_array($args)) {
+      $this->having[$group]['clauses'][] = $clause;
+      $this->having[$group]['args'] = array_merge($this->having[$group]['args'], array_values($args));
+    }
+  }
+
+  /**
+   * Add an ORDER BY clause to the query.
+   *
+   * @param $table
+   *   The table this field is part of. If a formula, enter NULL.
+   * @param $field
+   *   The field or formula to sort on. If already a field, enter NULL
+   *   and put in the alias.
+   * @param $order
+   *   Either ASC or DESC.
+   * @param $alias
+   *   The alias to add the field as. In SQL, all fields in the order by
+   *   must also be in the SELECT portion. If an $alias isn't specified
+   *   one will be generated for from the $field; however, if the
+   *   $field is a formula, this alias will likely fail.
+   */
+  function add_orderby($table, $field, $order, $alias = '') {
+    if ($table) {
+      $this->ensure_table($table);
+    }
+
+    // Only fill out this aliasing if there is a table;
+    // otherwise we assume it is a formula.
+    if (!$alias && $table) {
+      $as = $table . '_' . $field;
+    }
+    else {
+      $as = $alias;
+    }
+
+    if ($field) {
+      $this->add_field($table, $field, $as);
+    }
+
+    $this->orderby[] = "$as " . strtoupper($order);
+
+    // If grouping, all items in the order by must also be in the
+    // group by clause. Check $table to ensure that this is not a
+    // formula.
+    if ($this->groupby && $table) {
+      $this->add_groupby($as);
+    }
+  }
+
+  /**
+   * Add a simple GROUP BY clause to the query. The caller is responsible
+   * for ensuring that the fields are fully qualified and the table is properly
+   * added.
+   */
+  function add_groupby($clause) {
+    // Only add it if it's not already in there.
+    if (!in_array($clause, $this->groupby)) {
+      $this->groupby[] = $clause;
+    }
+  }
+
+  /**
+   * Construct the "WHERE" or "HAVING" part of the query.
+   *
+   * @param $where
+   *   'where' or 'having'.
+   */
+  function condition_sql($where = 'where') {
+    $clauses = array();
+    foreach ($this->$where as $group => $info) {
+      $clause = implode(") " . $info['type'] . " (", $info['clauses']);
+      if (count($info['clauses']) > 1) {
+        $clause = '(' . $clause . ')';
+      }
+      $clauses[] = $clause;
+    }
+
+    if ($clauses) {
+      $keyword = drupal_strtoupper($where);
+      if (count($clauses) > 1) {
+        return "$keyword (" . implode(")\n    " . $this->group_operator . ' (', $clauses) . ")\n";
+      }
+      else {
+        return "$keyword " . array_shift($clauses) . "\n";
+      }
+    }
+    return "";
+  }
+
+  /**
+   * Generate a query and a countquery from all of the information supplied
+   * to the object.
+   *
+   * @param $get_count
+   *   Provide a countquery if this is true, otherwise provide a normal query.
+   */
+  function query($get_count = FALSE) {
+    // Check query distinct value.
+    if (empty($this->no_distinct) && $this->distinct && !empty($this->fields)) {
+      if (!empty($this->fields[$this->base_field])) {
+        $this->fields[$this->base_field]['distinct'] = TRUE;
+        $this->add_groupby($this->base_field);
+      }
+    }
+
+    /**
+     * An optimized count query includes just the base field instead of all the fields.
+     * Determine of this query qualifies by checking for a groupby or distinct.
+     */
+    $fields_array = $this->fields;
+    if ($get_count && !$this->groupby) {
+      foreach ($fields_array as $field) {
+        if (!empty($field['distinct'])) {
+          $get_count_optimized = FALSE;
+          break;
+        }
+      }
+    }
+    else {
+      $get_count_optimized = FALSE;
+    }
+    if (!isset($get_count_optimized)) {
+      $get_count_optimized = TRUE;
+    }
+
+    $joins = $fields = $where = $having = $orderby = $groupby = '';
+    // Add all the tables to the query via joins. We assume all LEFT joins.
+    foreach ($this->table_queue as $table) {
+      if (is_object($table['join'])) {
+        $joins .= $table['join']->join($table, $this) . "\n";
+      }
+    }
+
+    $has_aggregate = FALSE;
+    $non_aggregates = array();
+
+    foreach ($fields_array as $field) {
+      if ($fields) {
+        $fields .= ",\n   ";
+      }
+      $string = '';
+      if (!empty($field['table'])) {
+        $string .= $field['table'] . '.';
+      }
+      $string .= $field['field'];
+
+      // store for use with non-aggregates below
+      $fieldname = (!empty($field['alias']) ? $field['alias'] : $string);
+
+      if (!empty($field['distinct'])) {
+        $string = "DISTINCT($string)";
+      }
+      if (!empty($field['count'])) {
+        $string = "COUNT($string)";
+        $has_aggregate = TRUE;
+      }
+      else if (!empty($field['aggregate'])) {
+        $has_aggregate = TRUE;
+      }
+      elseif ($this->distinct && !in_array($fieldname, $this->groupby)) {
+        $string = $GLOBALS['db_type'] == 'pgsql' ? "FIRST($string)" : $string;
+      }
+      else {
+        $non_aggregates[] = $fieldname;
+      }
+      if ($field['alias']) {
+        $string .= " AS $field[alias]";
+      }
+      $fields .= $string;
+
+      if ($get_count_optimized) {
+        // We only want the first field in this case.
+        break;
+      }
+    }
+
+    if ($has_aggregate || $this->groupby) {
+      $groupby = "GROUP BY " . implode(', ', array_unique(array_merge($this->groupby, $non_aggregates))) . "\n";
+      if ($this->having) {
+        $having = $this->condition_sql('having');
+      }
+    }
+
+    if (!$get_count_optimized) {
+      // we only add the groupby if we're not counting.
+      if ($this->orderby) {
+        $orderby = "ORDER BY " . implode(', ', $this->orderby) . "\n";
+      }
+    }
+
+    $where = $this->condition_sql();
+
+    $query = "SELECT $fields\n FROM {" . $this->base_table . "} $this->base_table \n$joins $where $groupby $having $orderby";
+
+    $replace = array('>' => '>', '<' => '<');
+    $query = strtr($query, $replace);
+
+    return $query;
+  }
+
+  /**
+   * Get the arguments attached to the WHERE and HAVING clauses of this query.
+   */
+  function get_where_args() {
+    $args = array();
+    foreach ($this->where as $group => $where) {
+      $args = array_merge($args, $where['args']);
+    }
+    foreach ($this->having as $group => $having) {
+      $args = array_merge($args, $having['args']);
+    }
+    return $args;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/tabs.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/tabs.inc
new file mode 100644
index 0000000..c602f2d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/tabs.inc
@@ -0,0 +1,192 @@
+<?php
+/**
+ * @file
+ *
+ * Classes and theme functions for rendering javascript UI tabs.
+ */
+
+/**
+ * Contain a set of tabs as well as the ability to render them.
+ *
+ * There are three 'areas' of a tabset.
+ * - title: The clickable link to display the tab area. These are always visible.
+ * - body: The actual HTML body of the tab. Only one body is visible at a time.
+ * - extra: An optional decorative area around the tabs.
+ */
+class views_tabset {
+  var $tabs = array();
+  var $extra = '';
+  var $selected = NULL;
+
+  /**
+   * Add a tab to the tabset.
+   *
+   * @param $name
+   *   The name of the tab; this is the internal identifier and must be
+   *   unique within the tabset.
+   * @param $title
+   *   If given, this will be the visible title of the tab. This can also
+   *   be set via $tabset->set(). This will be the link to click on to
+   *   view the tab.
+   * @param $body
+   *   If given, this is the body of the tab itself. It will display
+   *   when the tab title is clicked on.
+   */
+  function add($name, $title = '', $body = '') {
+    if (is_object($name) && is_subclass_of($name, 'views_tab')) {
+      $this->add_tab($name);
+    }
+    elseif (is_array($name)) {
+      foreach ($name as $real_tab) {
+        $this->add($real_tab);
+      }
+    }
+    else {
+      $this->add_tab(new views_tab($name, $title, $body));
+    }
+  }
+
+  /**
+   * Add a fully realized tab object to the tabset.
+   *
+   * @param $tab
+   *   A fully populated views_tab object.
+   */
+  function add_tab($tab) {
+    $this->tabs[$tab->name] = $tab;
+  }
+
+  /**
+   * Set the values of a tab.
+   *
+   * @param $name
+   *   The unique identifier of the tab to set.
+   * @param $title
+   *   The title of the tab; this will be clickable.
+   * @param $body
+   *   The HTML body of the tab.
+   */
+  function set($name, $title, $body = NULL) {
+    if (empty($this->tabs[$name])) {
+      return $this->add($name, $title, $body);
+    }
+    $this->tabs[$name]->title = $title;
+    if (isset($body)) {
+      $this->tabs[$name]->body = $body;
+    }
+  }
+
+  /**
+   * Set the body of a tab.
+   */
+  function set_body($name, $body) {
+    if (empty($this->tabs[$name])) {
+      return $this->add($name, '', $body);
+    }
+    $this->tabs[$name]->body = $body;
+  }
+
+  /**
+   * Add text to the 'extra' region of the tabset.
+   */
+  function add_extra($text) {
+    $this->extra .= $text;
+  }
+
+  /**
+   * Remove a tab.
+   *
+   * @param $tab
+   *   May be the name of the tab or a views_tab object.
+   */
+  function remove($tab) {
+    if (is_string($tab)) {
+      unset($this->tabs[$tab]);
+    }
+    else {
+      unset($this->tabs[$tab->name]);
+    }
+  }
+
+  /**
+   * Control which tab will be selected when it is rendered.
+   */
+  function set_selected($name) {
+    $this->selected = $name;
+  }
+
+  /**
+   * Output the HTML for the tabs.
+   *
+   * @return
+   *   HTML representation of the tabs.
+   */
+  function render() {
+    views_add_js('tabs');
+    views_add_css('views-tabs');
+
+    if (empty($this->selected)) {
+      $keys = array_keys($this->tabs);
+      $this->selected = array_shift($keys);
+    }
+
+    drupal_alter('views_tabset', $this);
+    return theme('views_tabset', $this->tabs, $this->extra, $this->selected);
+  }
+}
+
+/**
+ * An object to represent an individual tab within a tabset.
+ */
+class views_tab {
+  var $title;
+  var $body;
+  var $name;
+
+  /**
+   * Construct a new tab.
+   */
+  function views_tab($name, $title, $body = NULL) {
+    $this->name = $name;
+    $this->title = $title;
+    $this->body = $body;
+  }
+
+  /**
+   * Generate HTML output for a tab.
+   */
+  function render() {
+    return theme('views_tab', $this->body);
+  }
+}
+
+/**
+ * Render a tabset.
+ *
+ * @todo Turn this into a template.
+ */
+function theme_views_tabset($tabs, $extra = NULL, $selected = NULL) {
+  $link_output = "<div class=\"views-tabs\"><ul id=\"views-tabset\">\n";
+  $tab_output = "<div class=\"views-tab-area\">\n";
+
+  foreach ($tabs as $name => $tab) {
+    $link_output .= '<li' . ($name == $selected ? ' class="active"': '') . '><a href="#views-tab-' . $tab->name . '" id="views-tab-title-' . $tab->name . '">' . check_plain($tab->title) . '</a></li>' . "\n";
+    $tab_output .= '<div id="views-tab-' . $tab->name . '" class="views-tab">' . $tab->render() . "</div>\n";
+  }
+  $link_output .= "</ul>\n";
+
+  if ($extra) {
+    $link_output .= "<div class=\"extra\">$extra</div>\n";
+  }
+
+  $link_output .= "</div>\n";
+  $tab_output .= "</div>\n";
+  return '<div class="views-tabset clear-block">' . $link_output . $tab_output . '</div>';
+}
+
+/**
+ * Theme a simple tab.
+ */
+function theme_views_tab($body) {
+  return $body;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/includes/view.inc b/drupal/sites/default/boinc/modules/contrib/views/includes/view.inc
new file mode 100644
index 0000000..0444b81
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/includes/view.inc
@@ -0,0 +1,2123 @@
+<?php
+/**
+ * @file view.inc
+ * Provides the view object type and associated methods.
+ */
+
+/**
+ * @defgroup views_objects Objects that represent a View or part of a view.
+ * @{
+ * These objects are the core of Views do the bulk of the direction and
+ * storing of data. All database activity is in these objects.
+ */
+
+/**
+ * An object to contain all of the data to generate a view, plus the member
+ * functions to build the view query, execute the query and render the output.
+ */
+class view extends views_db_object {
+  var $db_table = 'views_view';
+  var $base_table = 'node';
+
+  // State variables
+  var $built = FALSE;
+  var $executed = FALSE;
+
+  var $args = array();
+  var $build_info = array();
+
+  var $use_ajax = FALSE;
+
+  // Where the results of a query will go.
+  var $result = array();
+
+  // pager variables
+  var $pager = array(
+    'use_pager' => FALSE,
+    'items_per_page' => 10,
+    'element' => 0,
+    'offset' => 0,
+    'current_page' => 0,
+  );
+
+  // Places to put attached renderings:
+  var $attachment_before = '';
+  var $attachment_after = '';
+
+  // Exposed widget input
+  var $exposed_data = array();
+  var $exposed_input = array();
+
+  // Used to store views that were previously running if we recurse.
+  var $old_view = array();
+
+  /**
+   * Identifier of the current display.
+   *
+   * @var string
+   */
+  var $current_display;
+  
+  /**
+   * Stores all the views substitutions.
+   */
+  var $substitutions = array();
+
+  /**
+   * Constructor
+   */
+  function view() {
+    parent::init();
+    // Make sure all of our sub objects are arrays.
+    foreach ($this->db_objects() as $object) {
+      $this->$object = array();
+    }
+
+    $this->query = new stdClass();
+  }
+
+  /**
+   * Returns a list of the sub-object types used by this view. These types are
+   * stored on the display, and are used in the build process.
+   */
+  function display_objects() {
+    return array('argument', 'field', 'sort', 'filter', 'relationship');
+  }
+
+  /**
+   * Returns the complete list of dependent objects in a view, for the purpose
+   * of initialization and loading/saving to/from the database.
+   */
+  public static function db_objects() {
+    return array('display');
+  }
+
+  /**
+   * Set the arguments that come to this view. Usually from the URL
+   * but possibly from elsewhere.
+   */
+  function set_arguments($args) {
+    $this->args = $args;
+  }
+
+  /**
+   * Set the page size for ranged or pager queries
+   */
+  function set_items_per_page($items_per_page) {
+    $this->pager['items_per_page'] = $items_per_page;
+    if (empty($items_per_page)) {
+      $this->pager['use_pager'] = FALSE;
+    }
+  }
+
+  /**
+   * Change/Set the current page for the pager.
+   */
+  function set_current_page($page) {
+    $this->pager['current_page'] = $page;
+  }
+
+  /**
+   * Whether or not the pager should be used.
+   */
+  function set_use_pager($use_pager) {
+    $this->pager['use_pager'] = $use_pager;
+  }
+
+  /**
+   * The pager element id to use if use_apger is on
+   */
+  function set_pager_element($pager_element) {
+    $this->pager['element'] = $pager_element;
+  }
+
+  /**
+   * Synchronize views pager with global pager variables
+   *
+   */
+  function synchronize_pager() {
+    if (!empty($this->pager['use_pager'])) {
+    // dump information about what we already know into the globals
+      global $pager_page_array, $pager_total, $pager_total_items;
+      // total rows in query
+      $pager_total_items[$this->pager['element']] = $this->total_rows;
+      // total pages
+      $pager_total[$this->pager['element']] = ceil($pager_total_items[$this->pager['element']] / $this->pager['items_per_page']);
+
+      // What page was requested:
+      $pager_page_array = isset($_GET['page']) ? explode(',', $_GET['page']) : array();
+
+      // If the requested page was within range. $this->pager['current_page']
+      // defaults to 0 so we don't need to set it in an out-of-range condition.
+      if (!empty($pager_page_array[$this->pager['element']])) {
+        $page = intval($pager_page_array[$this->pager['element']]);
+        if ($page > 0 && $page < $pager_total[$this->pager['element']]) {
+          $this->pager['current_page'] = $page;
+        }
+      }
+      $pager_page_array[$this->pager['element']] = $this->pager['current_page'];
+    }
+  }
+
+  /**
+   * How many records to skip. This does not function if use_pager is
+   * set.
+   */
+  function set_offset($offset) {
+    $this->pager['offset'] = $offset;
+  }
+
+  /**
+   * Whether or not AJAX should be used. If AJAX is used, paging,
+   * tablesorting and exposed filters will be fetched via an AJAX call
+   * rather than a page refresh.
+   */
+  function set_use_ajax($use_ajax) {
+    $this->use_ajax = $use_ajax;
+  }
+
+  /**
+   * Set the exposed filters input to an array. If unset they will be taken
+   * from $_GET when the time comes.
+   */
+  function set_exposed_input($filters) {
+    $this->exposed_input = $filters;
+  }
+
+  /**
+   * Figure out what the exposed input for this view is.
+   */
+  function get_exposed_input() {
+    // Fill our input either from $_GET or from something previously set on the
+    // view.
+    if (empty($this->exposed_input)) {
+      $this->exposed_input = $_GET;
+      // unset items that are definitely not our input:
+      foreach (array('page', 'q') as $key) {
+        if (isset($this->exposed_input[$key])) {
+          unset($this->exposed_input[$key]);
+        }
+      }
+
+      // If we have no input at all, check for remembered input via session.
+
+      // If filters are not overridden, store the 'remember' settings on the
+      // default display. If they are, store them on this display. This way,
+      // multiple displays in the same view can share the same filters and
+      // remember settings.
+      $display_id = ($this->display_handler->is_defaulted('filters')) ? 'default' : $this->current_display;
+
+      if (empty($this->exposed_input) && !empty($_SESSION['views'][$this->name][$display_id])) {
+        $this->exposed_input = $_SESSION['views'][$this->name][$display_id];
+      }
+    }
+
+    return $this->exposed_input;
+  }
+
+  /**
+   * Set the display for this view and initialize the display handler.
+   */
+  function init_display($reset = FALSE) {
+    // The default display is always the first one in the list.
+    if (isset($this->current_display)) {
+      return TRUE;
+    }
+
+    // Instantiate all displays
+    foreach (array_keys($this->display) as $id) {
+      // Correct for shallow cloning
+      // Often we'll have a cloned view so we don't mess up each other's
+      // displays, but the clone is pretty shallow and doesn't necessarily
+      // clone the displays. We can tell this by looking to see if a handler
+      // has already been set; if it has, but $this->current_display is not
+      // set, then something is dreadfully wrong.
+      if (!empty($this->display[$id]->handler)) {
+        $this->display[$id] = drupal_clone($this->display[$id]);
+        unset($this->display[$id]->handler);
+      }
+      $this->display[$id]->handler = views_get_plugin('display', $this->display[$id]->display_plugin);
+      if (!empty($this->display[$id]->handler)) {
+        // Initialize the new display handler with data.
+        $this->display[$id]->handler->init($this, $this->display[$id]);
+        // If this is NOT the default display handler, let it know which is
+        // since it may well utilize some data from the default.
+        // This assumes that the 'default' handler is always first. It always
+        // is. Make sure of it.
+        if ($id != 'default') {
+          $this->display[$id]->handler->default_display = &$this->display['default']->handler;
+        }
+      }
+    }
+
+    $this->current_display = 'default';
+    $this->display_handler = &$this->display['default']->handler;
+
+    return TRUE;
+  }
+
+  /**
+   * Get the first display that is accessible to the user.
+   *
+   * @param $displays
+   *   Either a single display id or an array of display ids.
+   */
+  function choose_display($displays) {
+    if (!is_array($displays)) {
+      return $displays;
+    }
+
+    $this->init_display();
+
+    foreach ($displays as $display_id) {
+      if ($this->display[$display_id]->handler->access()) {
+        return $display_id;
+      }
+    }
+
+    return 'default';
+  }
+
+  /**
+   * Set the display as current.
+   *
+   * @param $display_id
+   *   The id of the display to mark as current.
+   */
+  function set_display($display_id = NULL) {
+    // If we have not already initialized the display, do so. But be careful.
+    if (empty($this->current_display)) {
+      $this->init_display();
+
+      // If handlers were not initialized, and no argument was sent, set up
+      // to the default display.
+      if (empty($display_id)) {
+        $display_id = 'default';
+      }
+    }
+
+    $display_id = $this->choose_display($display_id);
+
+    // If no display id sent in and one wasn't chosen above, we're finished.
+    if (empty($display_id)) {
+      return FALSE;
+    }
+
+    // Ensure the requested display exists.
+    if (empty($this->display[$display_id])) {
+      $display_id = 'default';
+      if (empty($this->display[$display_id])) {
+        vpr(t('set_display() called with invalid display id @display.', array('@display' => $display_id)));
+        return FALSE;
+      }
+    }
+
+    // Set the current display.
+    $this->current_display = $display_id;
+
+    // Ensure requested display has a working handler.
+    if (empty($this->display[$display_id]->handler)) {
+      return FALSE;
+    }
+
+    // Set a shortcut
+    $this->display_handler = &$this->display[$display_id]->handler;
+
+    return TRUE;
+  }
+
+  /**
+   * Find and initialize the style plugin.
+   *
+   * Note that arguments may have changed which style plugin we use, so
+   * check the view object first, then ask the display handler.
+   */
+  function init_style() {
+    if (isset($this->style_plugin)) {
+      return is_object($this->style_plugin);
+    }
+
+    if (!isset($this->plugin_name)) {
+      $this->plugin_name = $this->display_handler->get_option('style_plugin');
+      $this->style_options = $this->display_handler->get_option('style_options');
+    }
+
+    $this->style_plugin = views_get_plugin('style', $this->plugin_name);
+
+    if (empty($this->style_plugin)) {
+      return FALSE;
+    }
+
+    // init the new style handler with data.
+    $this->style_plugin->init($this, $this->display[$this->current_display], $this->style_options);
+    return TRUE;
+  }
+
+  /**
+   * Acquire and attach all of the handlers.
+   */
+  function init_handlers() {
+    if (empty($this->inited)) {
+      foreach (views_object_types() as $key => $info) {
+        $this->_init_handler($key, $info);
+      }
+      $this->inited = TRUE;
+    }
+  }
+
+  /**
+   * Create a list of base tables eligible for this view. Used primarily
+   * for the UI. Display must be already initialized.
+   */
+  function get_base_tables() {
+    $base_tables = array(
+      $this->base_table => TRUE,
+      '#global' => TRUE,
+    );
+
+    foreach ($this->display_handler->get_handlers('relationship') as $handler) {
+      $base_tables[$handler->definition['base']] = TRUE;
+    }
+    return $base_tables;
+  }
+
+  /**
+   * Run the pre_query() on all active handlers.
+   */
+  function _pre_query() {
+    foreach (views_object_types() as $key => $info) {
+      $handlers = &$this->$key;
+      $position = 0;
+      foreach ($handlers as $id => $handler) {
+        $handlers[$id]->position = $position;
+        $handlers[$id]->pre_query();
+        $position++;
+      }
+    }
+  }
+
+  /**
+   * Get's all the substitutions and store them.
+   */
+  function substitutions($reset = FALSE) {
+    if ($reset || empty($this->substitutions)) {
+      $this->substitutions = module_invoke_all('views_query_substitutions', $this);
+    }
+    return $this->substitutions;
+  }
+
+  /**
+   * Attach all of the handlers for each type.
+   *
+   * @param $key
+   *   One of 'argument', 'field', 'sort', 'filter', 'relationship'
+   * @param $info
+   *   The $info from views_object_types for this object.
+   */
+  function _init_handler($key, $info) {
+    // Load the requested items from the display onto the object.
+    $this->$key = &$this->display_handler->get_handlers($key);
+
+    // This reference deals with difficult PHP indirection.
+    $handlers = &$this->$key;
+
+    // Run through and test for accessibility.
+    foreach ($handlers as $id => $handler) {
+      if (!$handler->access()) {
+        unset($handlers[$id]);
+      }
+    }
+  }
+
+  /**
+   * Render the exposed filter form.
+   *
+   * This actually does more than that; because it's using FAPI, the form will
+   * also assign data to the appropriate handlers for use in building the
+   * query.
+   */
+  function render_exposed_form($block = FALSE) {
+    // Deal with any exposed filters we may have, before building.
+    $form_state = array(
+      'view' => &$this,
+      'display' => &$this->display_handler->display,
+      'method' => 'get',
+      'rerender' => TRUE,
+      'no_redirect' => TRUE,
+    );
+
+    // Some types of displays (eg. attachments) may wish to use the exposed
+    // filters of their parent displays instead of showing an additional
+    // exposed filter form for the attachment as well as that for the parent.
+    if (!$this->display_handler->displays_exposed() || (!$block && $this->display_handler->get_option('exposed_block'))) {
+      unset($form_state['rerender']);
+    }
+
+    if (!empty($this->ajax)) {
+      $form_state['ajax'] = TRUE;
+    }
+
+    $output = drupal_build_form('views_exposed_form', $form_state);
+    if (!empty($form_state['js settings'])) {
+      $this->js_settings = $form_state['js settings'];
+    }
+
+    // Don't render exposed filter form when there's form errors.
+    // Applies when filters are in a block ("exposed_block" option).
+    if (form_get_errors() && empty($form_state['rerender'])) {
+      return NULL;
+    }
+
+    return $output;
+  }
+
+  /**
+   * Build all the arguments.
+   */
+  function _build_arguments() {
+    // Initially, we want to build sorts and fields. This can change, though,
+    // if we get a summary view.
+    if (empty($this->argument)) {
+      return TRUE;
+    }
+
+    // build arguments.
+    $position = -1;
+
+    // Create a title for use in the breadcrumb trail.
+    $title = $this->display_handler->get_option('title');
+
+    $this->build_info['breadcrumb'] = array();
+    $breadcrumb_args = array();
+    $substitutions = array();
+
+    $status = TRUE;
+
+    // Iterate through each argument and process.
+    foreach ($this->argument as $id => $arg) {
+      $position++;
+      $argument = &$this->argument[$id];
+
+      if ($argument->broken()) {
+        continue;
+      }
+
+      $argument->set_relationship();
+
+      $arg = isset($this->args[$position]) ? $this->args[$position] : NULL;
+      $argument->position = $position;
+
+      if (isset($arg) || $argument->has_default_argument()) {
+        if (!isset($arg)) {
+          $arg = $argument->get_default_argument();
+          // make sure default args get put back.
+          if (isset($arg)) {
+            $this->args[$position] = $arg;
+          }
+        }
+
+        // Set the argument, which will also validate that the argument can be set.
+        if (!$argument->set_argument($arg)) {
+          $status = $argument->validate_fail($arg);
+          break;
+        }
+
+        if ($argument->is_wildcard()) {
+          $arg_title = $argument->wildcard_title();
+        }
+        else {
+          $arg_title = $argument->get_title();
+          $argument->query();
+        }
+
+        // Add this argument's substitution
+        $substitutions['%' . ($position + 1)] = $arg_title;
+
+        // Since we're really generating the breadcrumb for the item above us,
+        // check the default action of this argument.
+        if ($this->display_handler->uses_breadcrumb() && $argument->uses_breadcrumb()) {
+          $path = $this->get_url($breadcrumb_args);
+          if (strpos($path, '%') === FALSE) {
+            $breadcrumb = !empty($argument->options['breadcrumb'])? $argument->options['breadcrumb'] : $title;
+            $this->build_info['breadcrumb'][$path] = str_replace(array_keys($substitutions), $substitutions, $breadcrumb);
+          }
+        }
+
+        // Allow the argument to muck with this breadcrumb.
+        $argument->set_breadcrumb($this->build_info['breadcrumb']);
+
+        // Test to see if we should use this argument's title
+        if (!empty($argument->options['title'])) {
+          $title = $argument->options['title'];
+        }
+
+        $breadcrumb_args[] = $arg;
+      }
+      else {
+        // determine default condition and handle.
+        $status = $argument->default_action();
+        break;
+      }
+
+      // Be safe with references and loops:
+      unset($argument);
+    }
+
+    // set the title in the build info.
+    if (!empty($title)) {
+      $this->build_info['title'] = str_replace(array_keys($substitutions), $substitutions, $title);
+    }
+
+    // Store the arguments for later use.
+    $this->build_info['substitutions'] = $substitutions;
+
+    return $status;
+  }
+
+  /**
+   * Do some common building initialization.
+   */
+  function init_query() {
+    // Create and initialize the query object.
+    $views_data = views_fetch_data($this->base_table);
+    $this->base_field = $views_data['table']['base']['field'];
+    if (!empty($views_data['table']['base']['database'])) {
+      $this->base_database = $views_data['table']['base']['database'];
+    }
+    views_include('query');
+    $this->query = new views_query($this->base_table, $this->base_field);
+  }
+
+  /**
+   * Build the query for the view.
+   */
+  function build($display_id = NULL) {
+    if (!empty($this->built)) {
+      return;
+    }
+
+    if (empty($this->current_display) || $display_id) {
+      if (!$this->set_display($display_id)) {
+        return FALSE;
+      }
+    }
+
+    // Let modules modify the view just prior to building it.
+    foreach (module_implements('views_pre_build') as $module) {
+      $function = $module . '_views_pre_build';
+      $function($this);
+    }
+
+    // Attempt to load from cache.
+    // @todo Load a build_info from cache.
+
+    $start = views_microtime();
+    // If that fails, let's build!
+    $this->build_info = array(
+      'query' => '',
+      'count_query' => '',
+      'query_args' => array(),
+    );
+
+    $this->init_query();
+
+    // Call a module hook and see if it wants to present us with a
+    // pre-built query or instruct us not to build the query for
+    // some reason.
+    // @todo: Implement this. Use the same mechanism Panels uses.
+
+    // Run through our handlers and ensure they have necessary information.
+    $this->init_handlers();
+
+    // Let the handlers interact with each other if they really want.
+    $this->_pre_query();
+
+    if ($this->display_handler->uses_exposed()) {
+      $this->exposed_widgets = $this->render_exposed_form();
+      if (form_set_error() || !empty($this->build_info['abort'])) {
+        $this->built = TRUE;
+        // Don't execute the query, but rendering will still be executed to display the empty text.
+        $this->executed = TRUE;
+        return empty($this->build_info['fail']);
+      }
+    }
+
+    // Build all the relationships first thing.
+    $this->_build('relationship');
+
+    // Build all the filters.
+    $this->_build('filter');
+
+    $this->build_sort = TRUE;
+
+    // Arguments can, in fact, cause this whole thing to abort.
+    if (!$this->_build_arguments()) {
+      $this->build_time = views_microtime() - $start;
+      $this->attach_displays();
+      return $this->built;
+    }
+
+    // Initialize the style; arguments may have changed which style we use,
+    // so waiting as long as possible is important. But we need to know
+    // about the style when we go to build fields.
+    if (!$this->init_style()) {
+      $this->build_info['fail'] = TRUE;
+      return FALSE;
+    }
+
+    if ($this->style_plugin->uses_fields()) {
+      $this->_build('field');
+    }
+
+    // Build our sort criteria if we were instructed to do so.
+    if (!empty($this->build_sort)) {
+      // Allow the style handler to deal with sorting.
+      if ($this->style_plugin->build_sort()) {
+        $this->_build('sort');
+      }
+      // allow the plugin to build second sorts as well.
+      $this->style_plugin->build_sort_post();
+    }
+
+    // Allow display handler to affect the query:
+    $this->display_handler->query();
+
+    // Allow style handler to affect the query:
+    $this->style_plugin->query();
+
+    if (variable_get('views_sql_signature', FALSE)) {
+      $this->query->add_field(NULL, "'" . $this->name . ':' . $this->current_display . "'", 'view_name');
+    }
+
+    // Let modules modify the query just prior to finalizing it.
+    foreach (module_implements('views_query_alter') as $module) {
+      $function = $module . '_views_query_alter';
+      $function($this, $this->query);
+    }
+
+    $this->build_info['query'] = $this->query->query();
+    $this->build_info['count_query'] = $this->query->query(TRUE);
+    $this->build_info['query_args'] = $this->query->get_where_args();
+    $this->built = TRUE;
+    $this->build_time = views_microtime() - $start;
+
+    // Attach displays
+    $this->attach_displays();
+
+    // Let modules modify the view just after building it.
+    foreach (module_implements('views_post_build') as $module) {
+      $function = $module . '_views_post_build';
+      $function($this);
+    }
+
+    return TRUE;
+  }
+
+  /**
+   * Internal method to build an individual set of handlers.
+   */
+  function _build($key) {
+    $handlers = &$this->$key;
+    foreach ($handlers as $id => $data) {
+      if (!empty($handlers[$id]) && is_object($handlers[$id])) {
+        // Give this handler access to the exposed filter input.
+        if (!empty($this->exposed_data)) {
+          $rc = $handlers[$id]->accept_exposed_input($this->exposed_data);
+          $handlers[$id]->store_exposed_input($this->exposed_data, $rc);
+          if (!$rc) {
+            continue;
+          }
+        }
+        $handlers[$id]->set_relationship();
+        $handlers[$id]->query();
+      }
+    }
+  }
+
+  /**
+   * Execute the view's query.
+   */
+  function execute($display_id = NULL) {
+    if (empty($this->built)) {
+      if (!$this->build($display_id)) {
+        return FALSE;
+      }
+    }
+
+    if (!empty($this->executed)) {
+      return TRUE;
+    }
+
+    // Let modules modify the view just prior to executing it.
+    foreach (module_implements('views_pre_execute') as $module) {
+      $function = $module . '_views_pre_execute';
+      $function($this);
+    }
+
+    $query = db_rewrite_sql($this->build_info['query'], $this->base_table, $this->base_field, array('view' => &$this));
+    $count_query = db_rewrite_sql($this->build_info['count_query'], $this->base_table, $this->base_field, array('view' => &$this));
+
+    $args = $this->build_info['query_args'];
+
+    vpr($query);
+
+
+    // Check for already-cached results.
+    if (!empty($this->live_preview)) {
+      $cache = FALSE;
+    }
+    else {
+      $cache = $this->display_handler->get_cache_plugin();
+    }
+    if ($cache && $cache->cache_get('results')) {
+      $this->synchronize_pager();
+      vpr('Used cached results');
+    }
+    else {
+      $items = array();
+      if ($query) {
+        $replacements = $this->substitutions();
+        $query = str_replace(array_keys($replacements), $replacements, $query);
+        $count_query = 'SELECT COUNT(*) FROM (' . str_replace(array_keys($replacements), $replacements, $count_query) . ') count_alias';
+
+        if (is_array($args)) {
+          foreach ($args as $id => $arg) {
+            $args[$id] = str_replace(array_keys($replacements), $replacements, $arg);
+          }
+        }
+
+        // Allow for a view to query an external database.
+        if (isset($this->base_database)) {
+          db_set_active($this->base_database);
+          $external = TRUE;
+        }
+
+        $start = views_microtime();
+        if (!empty($this->pager['items_per_page'])) {
+          // We no longer use pager_query() here because pager_query() does not
+          // support an offset. This is fine as we don't actually need pager
+          // query; we've already been doing most of what it does, and we
+          // just need to do a little more playing with globals.
+          if (!empty($this->pager['use_pager']) || !empty($this->get_total_rows)) {
+            $this->total_rows = db_result(db_query($count_query, $args)) - $this->pager['offset'];
+          }
+
+          $this->synchronize_pager();
+          $offset = $this->pager['current_page'] * $this->pager['items_per_page'] + $this->pager['offset'];
+          $result = db_query_range($query, $args, $offset, $this->pager['items_per_page']);
+
+        }
+        else {
+          $result = db_query($query, $args);
+        }
+
+        $this->result = array();
+        while ($item = db_fetch_object($result)) {
+          $this->result[] = $item;
+        }
+
+        // If we already know how many items we have even if we did not run the
+        // count query, go ahead and set that value:
+        if (empty($this->pager['items_per_page'])) {
+          $this->total_rows = count($this->result);
+        }
+
+        if (!empty($external)) {
+          db_set_active();
+        }
+        $this->execute_time = views_microtime() - $start;
+      }
+      if ($cache) {
+        $cache->cache_set('results');
+      }
+    }
+
+    // Let modules modify the view just after executing it.
+    foreach (module_implements('views_post_execute') as $module) {
+      $function = $module . '_views_post_execute';
+      $function($this);
+    }
+
+    $this->executed = TRUE;
+  }
+
+  /**
+   * Render this view for display.
+   */
+  function render($display_id = NULL) {
+    $this->execute($display_id);
+
+    // Check to see if the build failed.
+    if (!empty($this->build_info['fail'])) {
+      return;
+    }
+
+    init_theme();
+
+    $start = views_microtime();
+    if (!empty($this->live_preview) && variable_get('views_show_additional_queries', FALSE)) {
+      $this->start_query_capture();
+    }
+
+    // Check for already-cached output.
+    if (!empty($this->live_preview)) {
+      $cache = FALSE;
+    }
+    else {
+      $cache = $this->display_handler->get_cache_plugin();
+    }
+    if ($cache && $cache->cache_get('output')) {
+      vpr('Used cached output');
+    }
+    else {
+      if ($cache) {
+        $cache->cache_start();
+      }
+
+      // Initialize the style plugin.
+      $this->init_style();
+
+      $this->style_plugin->pre_render($this->result);
+
+      // Let modules modify the view just prior to rendering it.
+      foreach (module_implements('views_pre_render') as $module) {
+        $function = $module . '_views_pre_render';
+        $function($this);
+      }
+
+      // Let the theme play too, because pre render is a very themey thing.
+      $function = $GLOBALS['theme'] . '_views_pre_render';
+      if (function_exists($function)) {
+        $function($this);
+      }
+
+      // Give field handlers the opportunity to perform additional queries
+      // using the entire resultset prior to rendering.
+      if ($this->style_plugin->uses_fields()) {
+        foreach ($this->field as $id => $handler) {
+          if (!empty($this->field[$id])) {
+            $this->field[$id]->pre_render($this->result);
+          }
+        }
+      }
+      $this->display_handler->output = $this->display_handler->render();
+      if ($cache) {
+        $cache->cache_set('output');
+      }
+    }
+
+    if ($cache) {
+      $cache->post_render($this->display_handler->output);
+    }
+
+    // Let modules modify the view output after it is rendered.
+    foreach (module_implements('views_post_render') as $module) {
+      $function = $module . '_views_post_render';
+      $function($this, $this->display_handler->output, $cache);
+    }
+
+    // Let the theme play too, because post render is a very themey thing.
+    $function = $GLOBALS['theme'] . '_views_post_render';
+    if (function_exists($function)) {
+      $function($this, $this->display_handler->output, $cache);
+    }
+
+    if (!empty($this->live_preview) && variable_get('views_show_additional_queries', FALSE)) {
+      $this->end_query_capture();
+    }
+    $this->render_time = views_microtime() - $start;
+
+    return $this->display_handler->output;
+  }
+
+  /**
+   * Render a specific field via the field ID and the row #.
+   */
+  function render_field($field, $row) {
+    if (isset($this->field[$field]) && isset($this->result[$row])) {
+      return $this->field[$field]->advanced_render($this->result[$row]);
+    }
+  }
+
+  /**
+   * Execute the given display, with the given arguments.
+   * To be called externally by whatever mechanism invokes the view,
+   * such as a page callback, hook_block, etc.
+   *
+   * This function should NOT be used by anything external as this
+   * returns data in the format specified by the display. It can also
+   * have other side effects that are only intended for the 'proper'
+   * use of the display, such as setting page titles and breadcrumbs.
+   *
+   * If you simply want to view the display, use view::preview() instead.
+   */
+  function execute_display($display_id = NULL, $args = array()) {
+    if (empty($this->current_display) || $this->current_display != $this->choose_display($display_id)) {
+      if (!$this->set_display($display_id)) {
+        return FALSE;
+      }
+    }
+
+    $this->pre_execute($args);
+
+    // Execute the view
+    $output = $this->display_handler->execute();
+
+    $this->post_execute();
+    return $output;
+  }
+
+  /**
+   * Preview the given display, with the given arguments.
+   *
+   * To be called externally, probably by an AJAX handler of some flavor.
+   * Can also be called when views are embedded, as this guarantees
+   * normalized output.
+   */
+  function preview($display_id = NULL, $args = array()) {
+    if (empty($this->current_display) || ((!empty($display_id)) && $this->current_display != $display_id)) {
+      if (!$this->set_display($display_id)) {
+        return FALSE;
+      }
+    }
+
+    $this->preview = TRUE;
+    $this->pre_execute($args);
+    // Preview the view.
+    $output = $this->display_handler->preview();
+
+    $this->post_execute();
+    return $output;
+  }
+
+  /**
+   * Run attachments and let the display do what it needs to do prior
+   * to running.
+   */
+  function pre_execute($args = array()) {
+    $this->old_view[] = views_get_current_view();
+    views_set_current_view($this);
+    $display_id = $this->current_display;
+
+    // Let modules modify the view just prior to executing it.
+    foreach (module_implements('views_pre_view') as $module) {
+      $function = $module . '_views_pre_view';
+      $function($this, $display_id, $args);
+    }
+
+    // Prepare the view with the information we have, but only if we were
+    // passed arguments, as they may have been set previously.
+    if ($args) {
+      $this->set_arguments($args);
+    }
+
+//    $this->attach_displays();
+
+    // Allow the display handler to set up for execution
+    $this->display_handler->pre_execute();
+  }
+
+  /**
+   * Unset the current view, mostly.
+   */
+  function post_execute() {
+    // unset current view so we can be properly destructed later on.
+    // Return the previous value in case we're an attachment.
+
+    if ($this->old_view) {
+      $old_view = array_pop($this->old_view);
+    }
+
+    views_set_current_view(isset($old_view) ? $old_view : FALSE);
+  }
+
+  /**
+   * Run attachment displays for the view.
+   */
+  function attach_displays() {
+    if (!empty($this->is_attachment)) {
+      return;
+    }
+
+    if (!$this->display_handler->accept_attachments()) {
+      return;
+    }
+
+    $this->is_attachment = TRUE;
+    // Give other displays an opportunity to attach to the view.
+    foreach ($this->display as $id => $display) {
+      if (!empty($this->display[$id]->handler)) {
+        $this->display[$id]->handler->attach_to($this->current_display);
+      }
+    }
+    $this->is_attachment = FALSE;
+  }
+
+  /**
+   * Called to get hook_menu() information from the view and the named display handler.
+   *
+   * @param $display_id
+   *   A display id.
+   * @param $callbacks
+   *   A menu callback array passed from views_menu_alter().
+   */
+  function execute_hook_menu($display_id = NULL, $callbacks = array()) {
+    // Prepare the view with the information we have.
+
+    // This was probably already called, but it's good to be safe.
+    if (!$this->set_display($display_id)) {
+      return FALSE;
+    }
+
+    // Execute the view
+    if (isset($this->display_handler)) {
+      return $this->display_handler->execute_hook_menu($callbacks);
+    }
+  }
+
+  /**
+   * Called to get hook_block information from the view and the
+   * named display handler.
+   */
+  function execute_hook_block($display_id = NULL) {
+    // Prepare the view with the information we have.
+
+    // This was probably already called, but it's good to be safe.
+    if (!$this->set_display($display_id)) {
+      return FALSE;
+    }
+
+    // Execute the view
+    if (isset($this->display_handler)) {
+      return $this->display_handler->execute_hook_block();
+    }
+  }
+
+  /**
+   * Determine if the given user has access to the view. Note that
+   * this sets the display handler if it hasn't been.
+   */
+  function access($displays = NULL, $account = NULL) {
+    // Noone should have access to disabled views.
+    if (!empty($this->disabled)) {
+      return FALSE;
+    }
+
+    if (!isset($this->current_display)) {
+      $this->init_display();
+    }
+
+    if (!$account) {
+      $account = $GLOBALS['user'];
+    }
+
+    // We can't use choose_display() here because that function
+    // calls this one.
+    $displays = (array)$displays;
+    foreach ($displays as $display_id) {
+      if (!empty($this->display[$display_id]->handler)) {
+        if ($this->display[$display_id]->handler->access($account)) {
+          return TRUE;
+        }
+      }
+    }
+
+    return FALSE;
+  }
+
+  /**
+   * Get the view's current title. This can change depending upon how it
+   * was built.
+   */
+  function get_title() {
+    if (empty($this->display_handler)) {
+      if (!$this->set_display('default')) {
+        return FALSE;
+      }
+    }
+
+    // During building, we might find a title override. If so, use it.
+    if (!empty($this->build_info['title'])) {
+      $title = $this->build_info['title'];
+    }
+    else {
+      $title = $this->display_handler->get_option('title');
+    }
+
+    return $title;
+  }
+
+  /**
+   * Force the view to build a title.
+   */
+  function build_title() {
+    $this->init_display();
+    if (empty($this->built)) {
+      $this->init_query();
+    }
+    $this->init_handlers();
+
+    $this->_build_arguments();
+  }
+
+  /**
+   * Get the URL for the current view.
+   *
+   * This URL will be adjusted for arguments.
+   */
+  function get_url($args = NULL, $path = NULL) {
+    if (!isset($path)) {
+      $path = $this->get_path();
+    }
+    if (!isset($args)) {
+      $args = $this->args;
+    }
+    // Don't bother working if there's nothing to do:
+    if (empty($path) || (empty($args) && strpos($path, '%') === FALSE)) {
+      return $path;
+    }
+
+    $pieces = array();
+    $arguments = isset($arguments) ? $arguments : $this->display_handler->get_option('arguments');
+    $argument_keys = isset($arguments) ? array_keys($arguments) : array();
+    $id = current($argument_keys);
+    foreach (explode('/', $path) as $piece) {
+      if ($piece != '%') {
+        $pieces[] = $piece;
+      }
+      else {
+        if (empty($args)) {
+          // Try to never put % in a url; use the wildcard instead.
+          if ($id && !empty($arguments[$id]['wildcard'])) {
+            $pieces[] = $arguments[$id]['wildcard'];
+          }
+          else {
+            $pieces[] = '*'; // gotta put something if there just isn't one.
+          }
+
+        }
+        else {
+          $pieces[] = array_shift($args);
+        }
+
+        if ($id) {
+          $id = next($argument_keys);
+        }
+      }
+    }
+
+    if (!empty($args)) {
+      $pieces = array_merge($pieces, $args);
+    }
+    return implode('/', $pieces);
+  }
+
+  /**
+   * Get the base path used for this view.
+   */
+  function get_path() {
+    if (!empty($this->override_path)) {
+      return $this->override_path;
+    }
+
+    if (empty($this->display_handler)) {
+      if (!$this->set_display('default')) {
+        return FALSE;
+      }
+    }
+    return $this->display_handler->get_path();
+  }
+
+  /**
+   * Get the breadcrumb used for this view.
+   *
+   * @param $set
+   *   If true, use drupal_set_breadcrumb() to install the breadcrumb.
+   */
+  function get_breadcrumb($set = FALSE) {
+    // Now that we've built the view, extract the breadcrumb.
+    $base = TRUE;
+    $breadcrumb = array();
+
+    if (!empty($this->build_info['breadcrumb'])) {
+      foreach ($this->build_info['breadcrumb'] as $path => $title) {
+        // Check to see if the frontpage is in the breadcrumb trail; if it
+        // is, we'll remove that from the actual breadcrumb later.
+        if ($path == variable_get('site_frontpage', 'node')) {
+          $base = FALSE;
+          $title = t('Home');
+        }
+        if ($title) {
+          $breadcrumb[] = l($title, $path, array('html' => true));
+        }
+      }
+
+      if ($set) {
+        if ($base) {
+          $breadcrumb = array_merge(drupal_get_breadcrumb(), $breadcrumb);
+        }
+        drupal_set_breadcrumb($breadcrumb);
+      }
+    }
+    return $breadcrumb;
+  }
+
+  /**
+   * Is this view cacheable?
+   */
+  function is_cacheable() {
+    return $this->is_cacheable;
+  }
+
+  /**
+   * Set up query capturing.
+   *
+   * db_query() stores the queries that it runs in global $queries,
+   * bit only if dev_query is set to true. In this case, we want
+   * to temporarily override that setting if it's not and we
+   * can do that without forcing a db rewrite by just manipulating
+   * $conf. This is kind of evil but it works.
+   */
+  function start_query_capture() {
+    global $conf, $queries;
+    if (empty($conf['dev_query'])) {
+      $this->fix_dev_query = TRUE;
+      $conf['dev_query'] = TRUE;
+    }
+
+    // Record the last query key used; anything already run isn't
+    // a query that we are interested in.
+    $this->last_query_key = NULL;
+
+    if (!empty($queries)) {
+      $keys = array_keys($queries);
+      $this->last_query_key = array_pop($keys);
+    }
+  }
+
+  /**
+   * Add the list of queries run during render to buildinfo.
+   *
+   * @see view::start_query_capture()
+   */
+  function end_query_capture() {
+    global $conf, $queries;
+    if (!empty($this->fix_dev_query)) {
+      $conf['dev_query'] = FALSE;
+    }
+
+    // make a copy of the array so we can manipulate it with array_splice.
+    $temp = $queries;
+
+    // Scroll through the queries until we get to our last query key.
+    // Unset anything in our temp array.
+    if (isset($this->last_query_key)) {
+      while (list($id, $query) = each($queries)) {
+        if ($id == $this->last_query_key) {
+          break;
+        }
+
+        unset($temp[$id]);
+      }
+    }
+
+    $this->additional_queries = $temp;
+  }
+
+  /**
+   * Load a view from the database based upon either vid or name.
+   *
+   * This is a static factory method that implements internal caching for
+   * view objects.
+   *
+   * @param $arg
+   *  The name of the view or its internal view id (vid)
+   * @param $reset
+   *  If TRUE, reset this entry in the load cache.
+   * @return A view object or NULL if it was not available.
+   */
+  public static function &load($arg, $reset = FALSE) {
+    static $cache = array();
+
+    // We want a NULL value to return TRUE here, so we can't use isset() or empty().
+    if (!array_key_exists($arg, $cache) || $reset) {
+      $where = (is_numeric($arg) ? "vid =  %d" : "name = '%s'");
+      $data = db_fetch_object(db_query("SELECT * FROM {views_view} WHERE $where", $arg));
+      if (empty($data)) {
+        $cache[$arg] = NULL;
+      }
+      else {
+        $view = new view();
+        $view->load_row($data);
+        $view->type = t('Normal');
+        // Load all of our subtables.
+        foreach ($view->db_objects() as $key) {
+          $object_name = "views_$key";
+          $result = db_query("SELECT * FROM {{$object_name}} WHERE vid = %d ORDER BY position", $view->vid);
+
+          while ($data = db_fetch_object($result)) {
+            $object = new $object_name(FALSE);
+            $object->load_row($data);
+
+            // Because it can get complicated with this much indirection,
+            // make a shortcut reference.
+            $location = &$view->$key;
+
+            // If we have a basic id field, load the item onto the view based on
+            // this ID, otherwise push it on.
+            if (!empty($object->id)) {
+              $location[$object->id] = $object;
+            }
+            else {
+              $location[] = $object;
+            }
+          }
+        }
+
+        $view->loaded = TRUE;
+        $cache[$arg] = $view;
+      }
+    }
+
+    return $cache[$arg];
+  }
+
+  /**
+   * Static factory method to load a list of views based upon a $where clause.
+   *
+   * Although this method could be implemented to simply iterate over views::load(),
+   * that would be very slow.  Buiding the views externally from unified queries is
+   * much faster.
+   */
+  public static function load_views() {
+    $result = db_query("SELECT DISTINCT v.* FROM {views_view} v");
+    $views = array();
+    $vids = array();
+
+    // Load all the views.
+    while ($data = db_fetch_object($result)) {
+      $view = new view;
+      $view->load_row($data);
+      $view->loaded = TRUE;
+      $view->type = t('Normal');
+      $views[$view->name] = $view;
+      $names[$view->vid] = $view->name;
+    }
+
+    // Stop if we didn't get any views.
+    if (!$views) {
+      return array();
+    }
+
+    $vids = implode(', ', array_keys($names));
+    // Now load all the subtables:
+    foreach (view::db_objects() as $key) {
+      $object_name = "views_$key";
+      $result = db_query("SELECT * FROM {{$object_name}} WHERE vid IN ($vids) ORDER BY vid, position");
+
+      while ($data = db_fetch_object($result)) {
+        $object = new $object_name(FALSE);
+        $object->load_row($data);
+
+        // Because it can get complicated with this much indirection,
+        // make a shortcut reference.
+        $location = &$views[$names[$object->vid]]->$key;
+
+        // If we have a basic id field, load the item onto the view based on
+        // this ID, otherwise push it on.
+        if (!empty($object->id)) {
+          $location[$object->id] = $object;
+        }
+        else {
+          $location[] = $object;
+        }
+      }
+    }
+    return $views;
+  }
+
+  /**
+   * Save the view to the database. If the view does not already exist,
+   * A vid will be assigned to the view and also returned from this function.
+   */
+  function save() {
+    if ($this->vid == 'new') {
+      $this->vid = NULL;
+    }
+
+    // If we have no vid or our vid is a string, this is a new view.
+    if (!empty($this->vid)) {
+      // remove existing table entries
+      foreach ($this->db_objects() as $key) {
+        db_query("DELETE from {views_" . $key . "} WHERE vid = %d", $this->vid);
+      }
+    }
+
+    $this->save_row(!empty($this->vid) ? 'vid' : FALSE);
+
+    // Save all of our subtables.
+    foreach ($this->db_objects() as $key) {
+      $this->_save_rows($key);
+    }
+
+    cache_clear_all('views_urls', 'cache_views');
+    cache_clear_all(); // clear the page cache as well.
+  }
+
+  /**
+   * Save a row to the database for the given key, which is one of the
+   * keys from view::db_objects()
+   */
+  function _save_rows($key) {
+    $count = 0;
+    foreach ($this->$key as $position => $object) {
+      $object->position = ++$count;
+      $object->vid = $this->vid;
+      $object->save_row();
+    }
+  }
+
+  /**
+   * Delete the view from the database.
+   */
+  function delete($clear = TRUE) {
+    if (empty($this->vid)) {
+      return;
+    }
+
+    db_query("DELETE FROM {views_view} WHERE vid = %d", $this->vid);
+    // Delete from all of our subtables as well.
+    foreach ($this->db_objects() as $key) {
+      db_query("DELETE from {views_" . $key . "} WHERE vid = %d", $this->vid);
+    }
+
+    cache_clear_all('views_query:' . $this->name, 'cache_views');
+
+    if ($clear) {
+      cache_clear_all(); // this clears the block and page caches only.
+      menu_rebuild(); // force a menu rebuild when a view is deleted.
+    }
+  }
+
+  /**
+   * Export a view as PHP code.
+   */
+  function export($indent = '') {
+    $this->init_display();
+    $output = '';
+    $output .= $this->export_row('view', $indent);
+    // Set the API version
+    $output .= $indent . '$view->api_version = \'' . views_api_version() . "';\n";
+    $output .= $indent . '$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */' . "\n";
+
+    foreach ($this->display as $id => $display) {
+      $output .= $indent . '$handler = $view->new_display(' . views_var_export($display->display_plugin, $indent) . ', ' . views_var_export($display->display_title, $indent) . ', \'' . $id . "');\n";
+      if (empty($display->handler)) {
+        // @todo -- probably need a method of exporting broken displays as
+        // they may simply be broken because a module is not installed. That
+        // does not invalidate the display.
+        continue;
+      }
+
+      foreach ($display->handler->option_definition() as $option => $definition) {
+        // Special handling for some items
+        switch ($option) {
+          case 'defaults':
+            // skip these
+            break;
+          default:
+            if (!$display->handler->is_defaulted($option)) {
+              $value = $display->handler->get_option($option);
+              if ($id == 'default') {
+                $default = isset($definition['default']) ? $definition['default'] : NULL;
+              }
+              else {
+                $default = $this->display['default']->handler->get_option($option);
+              }
+
+              if ($value !== $default) {
+                $output .= $indent . '$handler->override_option(\'' . $option . '\', ' . views_var_export($value, $indent) . ");\n";
+              }
+            }
+        }
+      }
+    }
+
+    return $output;
+  }
+
+  /**
+   * Make a copy of this view that has been sanitized of all database IDs
+   * and handlers and other stuff.
+   *
+   * I'd call this clone() but it's reserved.
+   */
+  function copy() {
+    $code = $this->export();
+    eval($code);
+    return $view;
+  }
+
+  /**
+   * Safely clone a view.
+   *
+   * Because views are complicated objects within objects, and PHP loves to
+   * do references to everything, if a View is not properly and safely
+   * cloned it will still have references to the original view, and can
+   * actually cause the original view to point to objects in the cloned
+   * view. This gets ugly fast.
+   *
+   * This will completely wipe a view clean so it can be considered fresh.
+   */
+  function clone_view() {
+    $clone = version_compare(phpversion(), '5.0') < 0 ? $this : clone($this);
+
+    $keys = array('current_display', 'display_handler', 'build_info', 'built', 'executed', 'attachment_before', 'attachment_after', 'field', 'argument', 'filter', 'sort', 'relationship', 'query', 'inited', 'style_plugin', 'plugin_name', 'exposed_data', 'exposed_input', 'exposed_widgets', 'many_to_one_tables', 'feed_icon');
+    foreach ($keys as $key) {
+      if (isset($clone->$key)) {
+        unset($clone->$key);
+      }
+    }
+    $clone->built = $clone->executed = FALSE;
+    $clone->build_info = array();
+    $clone->attachment_before = '';
+    $clone->attachment_after = '';
+    $clone->result = array();
+
+    // shallow cloning means that all the display objects
+    // *were not cloned*. We must clone them ourselves.
+    $displays = array();
+    foreach ($clone->display as $id => $display) {
+      $displays[$id] = drupal_clone($display);
+      if (isset($displays[$id]->handler)) {
+        unset($displays[$id]->handler);
+      }
+    }
+    $clone->display = $displays;
+
+    return $clone;
+  }
+
+  /**
+   * Unset references so that a $view object may be properly garbage
+   * collected.
+   */
+  function destroy() {
+    foreach (array_keys($this->display) as $display_id) {
+      if (isset($this->display[$display_id]->handler)) {
+        $this->display[$display_id]->handler->destroy();
+        unset($this->display[$display_id]->handler);
+      }
+    }
+
+    foreach (views_object_types() as $type => $info) {
+      if (isset($this->$type)) {
+        $handlers = &$this->$type;
+        foreach ($handlers as $id => $item) {
+          $handlers[$id]->destroy();
+        }
+        unset($handlers);
+      }
+    }
+
+    if (isset($this->style_plugin)) {
+      $this->style_plugin->destroy();
+      unset($this->style_plugin);
+    }
+
+    // Clear these to make sure the view can be processed/used again.
+    if (isset($this->display_handler)) {
+      unset($this->display_handler);
+    }
+
+    if (isset($this->current_display)) {
+      unset($this->current_display);
+    }
+
+    if (isset($this->query)) {
+      unset($this->query);
+    }
+  }
+
+  /**
+   * Make sure the view is completely valid.
+   *
+   * @return
+   *   TRUE if the view is valid; an array of error strings if it is not.
+   */
+  function validate() {
+    $this->init_display();
+
+    $errors = array();
+
+    $current_display = $this->current_display;
+    foreach ($this->display as $id => $display) {
+      if ($display->handler) {
+        if (!empty($display->deleted)) {
+          continue;
+        }
+        $this->set_display($id);
+
+        $result = $this->display[$id]->handler->validate();
+        if (!empty($result) && is_array($result)) {
+          $errors = array_merge($errors, $result);
+        }
+      }
+    }
+
+    $this->set_display($current_display);
+    return $errors ? $errors : TRUE;
+  }
+}
+
+/**
+ * Base class for views' database objects.
+ */
+class views_db_object {
+  /**
+   * Initialize this object, setting values from schema defaults.
+   *
+   * @param $init
+   *   If an array, this is a set of values from db_fetch_object to
+   *   load. Otherwse, if TRUE values will be filled in from schema
+   *   defaults.
+   */
+  function init($init = TRUE) {
+    if (is_array($init)) {
+      return $this->load_row($init);
+    }
+
+    if (!$init) {
+      return;
+    }
+
+    $schema = drupal_get_schema($this->db_table);
+
+    if (!$schema) {
+      return;
+    }
+
+    // Go through our schema and build correlations.
+    foreach ($schema['fields'] as $field => $info) {
+      if ($info['type'] == 'serial') {
+        $this->$field = NULL;
+      }
+      if (!isset($this->$field)) {
+        if (!empty($info['serialize']) && isset($info['serialized default'])) {
+          $this->$field = unserialize($info['serialized default']);
+        }
+        else if (isset($info['default'])) {
+          $this->$field = $info['default'];
+        }
+        else {
+          $this->$field = '';
+        }
+      }
+    }
+  }
+
+  /**
+   * Write the row to the database.
+   *
+   * @param $update
+   *   If true this will be an UPDATE query. Otherwise it will be an INSERT.
+   */
+  function save_row($update = NULL) {
+    $schema = drupal_get_schema($this->db_table);
+    $fields = $defs = $values = $serials = array();
+
+    // Go through our schema and build correlations.
+    foreach ($schema['fields'] as $field => $info) {
+      // special case -- skip serial types if we are updating.
+      if ($info['type'] == 'serial') {
+        $serials[] = $field;
+        continue;
+      }
+      $fields[] = $field;
+      switch ($info['type']) {
+        case 'blob':
+          $defs[] = '%b';
+          break;
+        case 'int':
+          $defs[] = '%d';
+          break;
+        case 'float':
+        case 'numeric':
+          $defs[] = '%f';
+          break;
+        default:
+          $defs[] = "'%s'";
+      }
+      if (empty($info['serialize'])) {
+        $values[] = $this->$field;
+      }
+      else {
+        $values[] = serialize($this->$field);
+      }
+    }
+    $query = '';
+    if (!$update) {
+      $query = "INSERT INTO {" . $this->db_table . "} (" . implode(', ', $fields) . ') VALUES (' . implode(', ', $defs) . ')';
+    }
+    else {
+      $query = '';
+      foreach ($fields as $id => $field) {
+        if ($query) {
+          $query .= ', ';
+        }
+        $query .= $field . ' = ' . $defs[$id];
+      }
+      $query = "UPDATE {" . $this->db_table . "} SET " . $query . " WHERE $update = " . $this->$update;
+    }
+    db_query($query, $values);
+
+    if ($serials && !$update) {
+      // get last insert ids and fill them in.
+      foreach ($serials as $field) {
+        $this->$field = db_last_insert_id($this->db_table, $field);
+      }
+    }
+  }
+
+  /**
+   * Load the object with a row from the database.
+   *
+   * This method is separate from the constructor in order to give us
+   * more flexibility in terms of how the view object is built in different
+   * contexts.
+   *
+   * @param $data
+   *   An object from db_fetch_object. It should contain all of the fields
+   *   that are in the schema.
+   */
+  function load_row($data) {
+    $schema = drupal_get_schema($this->db_table);
+
+    // Go through our schema and build correlations.
+    foreach ($schema['fields'] as $field => $info) {
+      $this->$field = empty($info['serialize']) ? $data->$field : unserialize(db_decode_blob($data->$field));
+    }
+  }
+
+  /**
+   * Export a loaded row, such as an argument, field or the view itself to PHP code.
+   *
+   * @param $identifier
+   *   The variable to assign the PHP code for this object to.
+   * @param $indent
+   *   An optional indentation for prettifying nested code.
+   */
+  function export_row($identifier = NULL, $indent = '') {
+    if (!$identifier) {
+      $identifier = $this->db_table;
+    }
+    $schema = drupal_get_schema($this->db_table);
+
+    $output = $indent . '$' . $identifier . ' = new ' . get_class($this) . ";\n";
+    // Go through our schema and build correlations.
+    foreach ($schema['fields'] as $field => $info) {
+      if (!empty($info['no export'])) {
+        continue;
+      }
+      if (!isset($this->$field)) {
+        if (isset($info['default'])) {
+          $this->$field = $info['default'];
+        }
+        else {
+          $this->$field = '';
+        }
+
+        // serialized defaults must be set as serialized.
+        if (isset($info['serialize'])) {
+          $this->$field = unserialize(db_decode_blob($this->$field));
+        }
+      }
+      $value = $this->$field;
+      if ($info['type'] == 'int') {
+        $value = ($info['size'] == 'tiny') ? (bool) $value : (int) $value;
+      }
+
+      $output .= $indent . '$' . $identifier . '->' . $field . ' = ' . views_var_export($value, $indent) . ";\n";
+    }
+    return $output;
+  }
+
+  /**
+   * Add a new display handler to the view, automatically creating an id.
+   *
+   * @param $type
+   *   The plugin type from the views plugin data. Defaults to 'page'.
+   * @param $title
+   *   The title of the display; optional, may be filled in from default.
+   * @param $id
+   *   The id to use.
+   * @return
+   *   The key to the display in $view->display, so that the new display
+   *   can be easily located.
+   */
+  function add_display($type = 'page', $title = NULL, $id = NULL) {
+    if (empty($type)) {
+      return FALSE;
+    }
+
+    $plugin = views_fetch_plugin_data('display', $type);
+    if (empty($plugin)) {
+      $plugin['title'] = t('Broken');
+    }
+
+
+    if (empty($id)) {
+      $title = $plugin['title'];
+
+      $id = $this->generate_display_id($type);
+      $count = str_replace($type . '_', '', $id);
+      if (empty($title)) {
+        $title = $plugin['title'] . ' ' . $count;
+      }
+    }
+
+    // Create the new display object
+    $display = new views_display;
+    $display->options($type, $id, $title);
+
+    // Add the new display object to the view.
+    $this->display[$id] = $display;
+    return $id;
+  }
+
+  /**
+   * Generate a display id of a certain plugin type.
+   *
+   * @param $type
+   *   Which plugin should be used for the new display id.
+   */
+  function generate_display_id($type) {
+    // 'default' is singular and is unique, so just go with 'default'
+    // for it. For all others, start counting.
+    if ($type == 'default') {
+      return 'default';
+    }
+    // Initial id.
+    $id = $type . '_1';
+    $count = 1;
+
+    // Loop through IDs based upon our style plugin name until
+    // we find one that is unused.
+    while (!empty($this->display[$id])) {
+      $id = $type . '_' . ++$count;
+    }
+
+    return $id;
+  }
+
+  /**
+   * Create a new display and a display handler for it.
+   * @param $type
+   *   The plugin type from the views plugin data. Defaults to 'page'.
+   * @param $title
+   *   The title of the display; optional, may be filled in from default.
+   * @param $id
+   *   The id to use.
+   * @return
+   *   A reference to the new handler object.
+   */
+  function &new_display($type = 'page', $title = NULL, $id = NULL) {
+    $id = $this->add_display($type, $title, $id);
+
+    // Create a handler
+    $this->display[$id]->handler = views_get_plugin('display', $this->display[$id]->display_plugin);
+    if (empty($this->display[$id]->handler)) {
+      // provide a 'default' handler as an emergency. This won't work well but
+      // it will keep things from crashing.
+      $this->display[$id]->handler = views_get_plugin('display', 'default');
+    }
+
+    if (!empty($this->display[$id]->handler)) {
+      // Initialize the new display handler with data.
+      $this->display[$id]->handler->init($this, $this->display[$id]);
+      // If this is NOT the default display handler, let it know which is
+      if ($id != 'default') {
+        $this->display[$id]->handler->default_display = &$this->display['default']->handler;
+      }
+    }
+
+    return $this->display[$id]->handler;
+  }
+
+  /**
+   * Add an item with a handler to the view.
+   *
+   * These items may be fields, filters, sort criteria, or arguments.
+   */
+  function add_item($display_id, $type, $table, $field, $options = array(), $id = NULL) {
+    $types = views_object_types();
+    $this->set_display($display_id);
+
+    $fields = $this->display[$display_id]->handler->get_option($types[$type]['plural']);
+
+    if (empty($id)) {
+      $count = 0;
+      $id = $field;
+      while (!empty($fields[$id])) {
+        $id = $field . '_' . ++$count;
+      }
+    }
+
+    $new_item = array(
+      'id' => $id,
+      'table' => $table,
+      'field' => $field,
+    ) + $options;
+
+    $handler = views_get_handler($table, $field, $type);
+
+    $fields[$id] = $new_item;
+    $this->display[$display_id]->handler->set_option($types[$type]['plural'], $fields);
+
+    return $id;
+  }
+
+  /**
+   * Get an array of items for the current display.
+   */
+  function get_items($type, $display_id = NULL) {
+    $this->set_display($display_id);
+
+    if (!isset($display_id)) {
+      $display_id = $this->current_display;
+    }
+
+    // Get info about the types so we can get the right data.
+    $types = views_object_types();
+    return $this->display[$display_id]->handler->get_option($types[$type]['plural']);
+  }
+
+  /**
+   * Get the configuration of an item (field/sort/filter/etc) on a given
+   * display.
+   */
+  function get_item($display_id, $type, $id) {
+    // Get info about the types so we can get the right data.
+    $types = views_object_types();
+    // Initialize the display
+    $this->set_display($display_id);
+
+    // Get the existing configuration
+    $fields = $this->display[$display_id]->handler->get_option($types[$type]['plural']);
+
+    return isset($fields[$id]) ? $fields[$id] : NULL;
+  }
+
+  /**
+   * Get the configuration of an item (field/sort/filter/etc) on a given
+   * display.
+   *
+   * Pass in NULL for the $item to remove an item.
+   */
+  function set_item($display_id, $type, $id, $item) {
+    // Get info about the types so we can get the right data.
+    $types = views_object_types();
+    // Initialize the display
+    $this->set_display($display_id);
+
+    // Get the existing configuration
+    $fields = $this->display[$display_id]->handler->get_option($types[$type]['plural']);
+    if (isset($item)) {
+      $fields[$id] = $item;
+    }
+    else {
+      unset($fields[$id]);
+    }
+
+    // Store.
+    $this->display[$display_id]->handler->set_option($types[$type]['plural'], $fields);
+  }
+
+  /**
+   * Set an option on an item.
+   *
+   * Use this only if you have just 1 or 2 options to set; if you have
+   * many, consider getting the item, adding the options and doing
+   * set_item yourself.
+   */
+  function set_item_option($display_id, $type, $id, $option, $value) {
+    $item = $this->get_item($display_id, $type, $id);
+    $item[$option] = $value;
+    $this->set_item($display_id, $type, $id, $item);
+  }
+}
+
+/**
+ * A display type in a view.
+ *
+ * This is just the database storage mechanism, and isn't terribly important
+ * to the behavior of the display at all.
+ */
+class views_display extends views_db_object {
+  var $db_table = 'views_display';
+  function views_display($init = TRUE) {
+    parent::init($init);
+  }
+
+  function options($type, $id, $title) {
+    $this->display_plugin = $type;
+    $this->id = $id;
+    $this->display_title = $title;
+  }
+}
+
+/**
+ * Provide a list of views object types used in a view, with some information
+ * about them.
+ */
+function views_object_types() {
+  static $retval = NULL;
+
+  // statically cache this so t() doesn't run a bajillion times.
+  if (!isset($retval)) {
+    $retval = array(
+      'field' => array(
+        'title' => t('Fields'), // title
+        'ltitle' => t('fields'), // lowercase title for mid-sentence
+        'stitle' => t('Field'), // singular title
+        'lstitle' => t('field'), // singular lowercase title for mid sentence
+        'plural' => 'fields',
+      ),
+      'argument' => array(
+        'title' => t('Arguments'),
+        'ltitle' => t('arguments'),
+        'stitle' => t('Argument'),
+        'lstitle' => t('Argument'),
+        'plural' => 'arguments',
+      ),
+      'sort' => array(
+        'title' => t('Sort criteria'),
+        'ltitle' => t('sort criteria'),
+        'stitle' => t('Sort criterion'),
+        'lstitle' => t('sort criterion'),
+        'plural' => 'sorts',
+      ),
+      'filter' => array(
+        'title' => t('Filters'),
+        'ltitle' => t('filters'),
+        'stitle' => t('Filter'),
+        'lstitle' => t('filter'),
+        'plural' => 'filters',
+        'options' => 'views_ui_config_filters_form',
+      ),
+      'relationship' => array(
+        'title' => t('Relationships'),
+        'ltitle' => t('relationships'),
+        'stitle' => t('Relationship'),
+        'lstitle' => t('Relationship'),
+        'plural' => 'relationships',
+      ),
+    );
+  }
+
+  return $retval;
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/js/ajax.js b/drupal/sites/default/boinc/modules/contrib/views/js/ajax.js
new file mode 100644
index 0000000..6669c85
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/js/ajax.js
@@ -0,0 +1,365 @@
+/**
+ * @file ajax_admin.js
+ *
+ * Handles AJAX submission and response in Views UI.
+ */
+
+Drupal.Views.Ajax = Drupal.Views.Ajax || {};
+
+/**
+ * Handles the simple process of setting the ajax form area with new data.
+ */
+Drupal.Views.Ajax.setForm = function(title, output) {
+  $(Drupal.settings.views.ajax.title).html(title);
+  $(Drupal.settings.views.ajax.id).html(output);
+}
+
+/**
+ * An ajax responder that accepts a packet of JSON data and acts appropriately.
+ *
+ * The following fields control behavior.
+ * - 'display': Display the associated data in the form area; bind the new
+ *   form to 'url' if appropriate. The 'title' field may also be used.
+ * - 'add': This is a keyed array of HTML output to add via append. The key is
+ *   the id to append via $(key).append(value)
+ * - 'replace': This is a keyed array of HTML output to add via replace. The key is
+ *   the id to append via $(key).html(value)
+ *
+ */
+Drupal.Views.Ajax.ajaxResponse = function(data) {
+  $('a.views-throbbing').removeClass('views-throbbing');
+  $('span.views-throbbing').remove();
+
+  if (data.debug) {
+    alert(data.debug);
+  }
+
+  // See if we have any settings to extend. Do this first so that behaviors
+  // can access the new settings easily.
+
+  if (Drupal.settings.viewsAjax) {
+    Drupal.settings.viewsAjax = {};
+  }
+  if (data.js) {
+    $.extend(Drupal.settings, data.js);
+  }
+
+  // Check the 'display' for data.
+  if (data.display) {
+    Drupal.Views.Ajax.setForm(data.title, data.display);
+
+    // if a URL was supplied, bind the form to it.
+    if (data.url) {
+      var ajax_area = Drupal.settings.views.ajax.id;
+      var ajax_title = Drupal.settings.views.ajax.title;
+
+      // Bind a click to the button to set the value for the button.
+      $('input[type=submit], button', ajax_area).unbind('click');
+      $('input[type=submit], button', ajax_area).click(function() {
+        $('form', ajax_area).append('<input type="hidden" name="'
+          + $(this).attr('name') + '" value="' + $(this).val() + '">');
+        $(this).after('<span class="views-throbbing">&nbsp</span>');
+      });
+
+      // Bind forms to ajax submit.
+      $('form', ajax_area).unbind('submit'); // be safe here.
+      $('form', ajax_area).submit(function(arg) {
+        $(this).ajaxSubmit({
+          url: data.url,
+          data: { 'js': 1 },
+          type: 'POST',
+          success: Drupal.Views.Ajax.ajaxResponse,
+          error: function(xhr) { $('span.views-throbbing').remove(); Drupal.Views.Ajax.handleErrors(xhr, data.url); },
+          dataType: 'json'
+        });
+        return false;
+      });
+    }
+
+    Drupal.attachBehaviors(ajax_area);
+  }
+  else if (!data.tab) {
+    // If no display, reset the form.
+    Drupal.Views.Ajax.setForm('', Drupal.settings.views.ajax.defaultForm);
+    //Enable the save and delete button.
+    $('#edit-save').removeAttr('disabled');
+    $('#edit-delete').removeAttr('disabled');
+    // Trigger an update for the live preview when we reach this state:
+    if ($('#views-ui-preview-form input#edit-live-preview').is(':checked')) {
+      $('#views-ui-preview-form').trigger('submit');
+    }
+  }
+
+  // Go through the 'add' array and add any new content we're instructed to add.
+  if (data.add) {
+    for (id in data.add) {
+      var newContent = $(id).append(data.add[id]);
+      Drupal.attachBehaviors(newContent);
+    }
+  }
+
+  // Go through the 'replace' array and replace any content we're instructed to.
+  if (data.replace) {
+    for (id in data.replace) {
+      $(id).html(data.replace[id]);
+      Drupal.attachBehaviors(id);
+    }
+  }
+
+  // Go through and add any requested tabs
+  if (data.tab) {
+    for (id in data.tab) {
+      // Retrieve the tabset instance by stored ID.
+      var instance = Drupal.Views.Tabs.instances[$('#views-tabset').data('UI_TABS_UUID')];
+      instance.add(id, data.tab[id]['title'], 0);
+      instance.click(instance.$tabs.length);
+
+      $(id).html(data.tab[id]['body']);
+      $(id).addClass('views-tab');
+
+      // Update the preview widget to preview the new tab.
+      var display_id = id.replace('#views-tab-', '');
+      $("#preview-display-id").append('<option selected="selected" value="' + display_id + '">' + data.tab[id]['title'] + '</option>');
+
+      Drupal.attachBehaviors(id);
+    }
+  }
+
+  if (data.hilite) {
+    $('.hilited').removeClass('hilited');
+    $(data.hilite).addClass('hilited');
+  }
+
+  if (data.changed) {
+    $('div.views-basic-info').addClass('changed');
+  }
+}
+
+/**
+ * An ajax responder that accepts a packet of JSON data and acts appropriately.
+ * This one specifically responds to the Views live preview area, so it's
+ * hardcoded and specialized.
+ */
+Drupal.Views.Ajax.previewResponse = function(data) {
+  $('a.views-throbbing').removeClass('views-throbbing');
+  $('span.views-throbbing').remove();
+
+  if (data.debug) {
+    alert(data.debug);
+  }
+
+  // See if we have any settings to extend. Do this first so that behaviors
+  // can access the new settings easily.
+
+  // Clear any previous viewsAjax settings.
+  if (Drupal.settings.viewsAjax) {
+    Drupal.settings.viewsAjax = {};
+  }
+  if (data.js) {
+    $.extend(Drupal.settings, data.js);
+  }
+
+  // Check the 'display' for data.
+  if (data.display) {
+    var ajax_area = 'div#views-live-preview';
+    $(ajax_area).html(data.display);
+
+    var url = $(ajax_area, 'form').attr('action');
+
+    // if a URL was supplied, bind the form to it.
+    if (url) {
+      // Bind a click to the button to set the value for the button.
+      $('input[type=submit], button', ajax_area).unbind('click');
+      $('input[type=submit], button', ajax_area).click(function() {
+        $('form', ajax_area).append('<input type="hidden" name="'
+          + $(this).attr('name') + '" value="' + $(this).val() + '">');
+        $(this).after('<span class="views-throbbing">&nbsp</span>');
+      });
+
+      // Bind forms to ajax submit.
+      $('form', ajax_area).unbind('submit'); // be safe here.
+      $('form', ajax_area).submit(function() {
+        $(this).ajaxSubmit({
+          url: url,
+          data: { 'js': 1 },
+          type: 'POST',
+          success: Drupal.Views.Ajax.previewResponse,
+          error: function(xhr) { $('span.views-throbbing').remove(); Drupal.Views.Ajax.handleErrors(xhr, url); },
+          dataType: 'json'
+        });
+        return false;
+      });
+    }
+
+    Drupal.attachBehaviors(ajax_area);
+  }
+}
+
+Drupal.Views.updatePreviewForm = function() {
+  var url = $(this).attr('action');
+  url = url.replace('nojs', 'ajax');
+
+  $('input[type=submit], button', this).after('<span class="views-throbbing">&nbsp</span>');
+  $(this).ajaxSubmit({
+    url: url,
+    data: { 'js': 1 },
+    type: 'POST',
+    success: Drupal.Views.Ajax.previewResponse,
+    error: function(xhr) { $('span.views-throbbing').remove(); Drupal.Views.Ajax.handleErrors(xhr, url); },
+    dataType: 'json'
+  });
+
+  return false;
+}
+
+Drupal.Views.updatePreviewFilterForm = function() {
+  var url = $(this).attr('action');
+  url = url.replace('nojs', 'ajax');
+
+  $('input[type=submit], button', this).after('<span class="views-throbbing">&nbsp</span>');
+  $('input[name=q]', this).remove(); // remove 'q' for live preview.
+  $(this).ajaxSubmit({
+    url: url,
+    data: { 'js': 1 },
+    type: 'GET',
+    success: Drupal.Views.Ajax.previewResponse,
+    error: function(xhr) { $('span.views-throbbing').remove(); Drupal.Views.Ajax.handleErrors(xhr, url); },
+    dataType: 'json'
+  });
+
+  return false;
+}
+
+Drupal.Views.updatePreviewLink = function() {
+  var url = $(this).attr('href');
+  url = url.replace('nojs', 'ajax');
+  var intern_url = Drupal.Views.getPath(url);
+
+  if (intern_url.substring(0, 17) != 'admin/build/views') {
+    return true;
+  }
+
+  $(this).addClass('views-throbbing');
+  $.ajax({
+    url: url,
+    data: 'js=1',
+    type: 'POST',
+    success: Drupal.Views.Ajax.previewResponse,
+    error: function(xhr) { $(this).removeClass('views-throbbing'); Drupal.Views.Ajax.handleErrors(xhr, url); },
+    dataType: 'json'
+  });
+
+  return false;
+}
+
+Drupal.behaviors.ViewsAjaxLinks = function() {
+  // Make specified links ajaxy.
+  $('a.views-ajax-link:not(.views-processed)').addClass('views-processed').click(function() {
+    // Translate the href on the link to the ajax href. That way this degrades
+    // into a nice, normal link.
+    var url = $(this).attr('href');
+    url = url.replace('nojs', 'ajax');
+
+    // Turn on the hilite to indicate this is in use.
+    $(this).addClass('hilite');
+
+    // Disable the save and delete button.
+    $('#edit-save').attr('disabled', 'true');
+    $('#edit-delete').attr('disabled', 'true');
+
+    $(this).addClass('views-throbbing');
+    $.ajax({
+      type: "POST",
+      url: url,
+      data: 'js=1',
+      success: Drupal.Views.Ajax.ajaxResponse,
+      error: function(xhr) { $(this).removeClass('views-throbbing'); Drupal.Views.Ajax.handleErrors(xhr, url); },
+      dataType: 'json'
+    });
+
+    return false;
+  });
+
+  $('form.views-ajax-form:not(.views-processed)').addClass('views-processed').submit(function(arg) {
+    // Translate the href on the link to the ajax href. That way this degrades
+    // into a nice, normal link.
+    var url = $(this).attr('action');
+    url = url.replace('nojs', 'ajax');
+
+//    $('input[@type=submit]', this).after('<span class="views-throbbing">&nbsp</span>');
+    $(this).ajaxSubmit({
+      url: url,
+      data: { 'js': 1 },
+      type: 'POST',
+      success: Drupal.Views.Ajax.ajaxResponse,
+      error: function(xhr) { $('span.views-throbbing').remove(); Drupal.Views.Ajax.handleErrors(xhr, url); },
+      dataType: 'json'
+    });
+
+    return false;
+  });
+
+  // Bind the live preview to where it's supposed to go.
+
+  $('form#views-ui-preview-form:not(.views-processed)')
+    .addClass('views-processed')
+    .submit(Drupal.Views.updatePreviewForm);
+
+  $('div#views-live-preview form:not(.views-processed)')
+    .addClass('views-processed')
+    .submit(Drupal.Views.updatePreviewFilterForm);
+
+  $('div#views-live-preview a:not(.views-processed)')
+    .addClass('views-processed')
+    .click(Drupal.Views.updatePreviewLink);
+}
+
+/**
+ * Sync preview display.
+ */
+Drupal.behaviors.syncPreviewDisplay = function() {
+  $("#views-tabset a").click(function() {
+    var href = $(this).attr('href');
+    // Cut of #views-tabset.
+    var display_id = href.substr(11);
+    // Set the form element.
+    $("#views-live-preview #preview-display-id").val(display_id);
+  });
+}
+
+/**
+ * Get rid of irritating tabledrag messages
+ */
+Drupal.theme.tableDragChangedWarning = function () {
+  return '<div></div>';
+}
+
+/**
+ * Display error in a more fashion way
+ */
+Drupal.Views.Ajax.handleErrors = function (xhr, path) {
+  var error_text = '';
+
+  if ((xhr.status == 500 && xhr.responseText) || xhr.status == 200) {
+    error_text = xhr.responseText;
+
+    // Replace all < and > by < and >
+    error_text = error_text.replace("/&(lt|gt);/g", function (m, p) {
+      return (p == "lt")? "<" : ">";
+    });
+
+    // Now, replace all html tags by empty spaces
+    error_text = error_text.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,"");
+
+    // Fix end lines
+    error_text = error_text.replace(/[\n]+\s+/g,"\n");
+  }
+  else if (xhr.status == 500) {
+    error_text = xhr.status + ': ' + Drupal.t("Internal server error. Please see server or PHP logs for error information.");
+  }
+  else {
+    error_text = xhr.status + ': ' + xhr.statusText;
+  }
+
+  alert(Drupal.t("An error occurred at @path.\n\nError Description: @error", {'@path': path, '@error': error_text}));
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/js/ajax_view.js b/drupal/sites/default/boinc/modules/contrib/views/js/ajax_view.js
new file mode 100644
index 0000000..e56e73a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/js/ajax_view.js
@@ -0,0 +1,167 @@
+
+/**
+ * @file ajaxView.js
+ *
+ * Handles AJAX fetching of views, including filter submission and response.
+ */
+
+Drupal.Views.Ajax = Drupal.Views.Ajax || {};
+
+/**
+ * An ajax responder that accepts a packet of JSON data and acts appropriately.
+ *
+ * The following fields control behavior.
+ * - 'display': Display the associated data in the view area.
+ */
+Drupal.Views.Ajax.ajaxViewResponse = function(target, response) {
+
+  if (response.debug) {
+    alert(response.debug);
+  }
+
+  var $view = $(target);
+
+  // Check the 'display' for data.
+  if (response.status && response.display) {
+    var $newView = $(response.display);
+    $view.replaceWith($newView);
+    $view = $newView;
+    Drupal.attachBehaviors($view.parent());
+  }
+
+  if (response.messages) {
+    // Show any messages (but first remove old ones, if there are any).
+    $view.find('.views-messages').remove().end().prepend(response.messages);
+  }
+};
+
+/**
+ * Ajax behavior for views.
+ */
+Drupal.behaviors.ViewsAjaxView = function() {
+  if (Drupal.settings && Drupal.settings.views && Drupal.settings.views.ajaxViews) {
+    var ajax_path = Drupal.settings.views.ajax_path;
+    // If there are multiple views this might've ended up showing up multiple times.
+    if (ajax_path.constructor.toString().indexOf("Array") != -1) {
+      ajax_path = ajax_path[0];
+    }
+    $.each(Drupal.settings.views.ajaxViews, function(i, settings) {
+      if (settings.view_dom_id) {
+        var view = '.view-dom-id-' + settings.view_dom_id;
+        if (!$(view).size()) {
+          // Backward compatibility: if 'views-view.tpl.php' is old and doesn't
+          // contain the 'view-dom-id-#' class, we fall back to the old way of
+          // locating the view:
+          view = '.view-id-' + settings.view_name + '.view-display-id-' + settings.view_display_id;
+        }
+      }
+
+
+      // Process exposed filter forms.
+      $('form#views-exposed-form-' + settings.view_name.replace(/_/g, '-') + '-' + settings.view_display_id.replace(/_/g, '-'))
+      .filter(':not(.views-processed)')
+      .each(function () {
+        // remove 'q' from the form; it's there for clean URLs
+        // so that it submits to the right place with regular submit
+        // but this method is submitting elsewhere.
+        $('input[name=q]', this).remove();
+        var form = this;
+        // ajaxSubmit doesn't accept a data argument, so we have to
+        // pass additional fields this way.
+        $.each(settings, function(key, setting) {
+          $(form).append('<input type="hidden" name="'+ key + '" value="'+ setting +'"/>');
+        });
+      })
+      .addClass('views-processed')
+      .submit(function () {
+        $('input[type=submit], button', this).after('<span class="views-throbbing">&nbsp</span>');
+        var object = this;
+        $(this).ajaxSubmit({
+          url: ajax_path,
+          type: 'GET',
+          success: function(response) {
+            // Call all callbacks.
+            if (response.__callbacks) {
+              $.each(response.__callbacks, function(i, callback) {
+                eval(callback)(view, response);
+              });
+              $('.views-throbbing', object).remove();
+            }
+          },
+          error: function(xhr) { Drupal.Views.Ajax.handleErrors(xhr, ajax_path); $('.views-throbbing', object).remove(); },
+          dataType: 'json'
+        });
+
+        return false;
+      });
+
+      $(view).filter(':not(.views-processed)')
+        // Don't attach to nested views. Doing so would attach multiple behaviors
+        // to a given element.
+        .filter(function() {
+          // If there is at least one parent with a view class, this view
+          // is nested (e.g., an attachment). Bail.
+          return !$(this).parents('.view').size();
+        })
+        .each(function() {
+          // Set a reference that will work in subsequent calls.
+          var target = this;
+          $(this)
+            .addClass('views-processed')
+            // Process pager, tablesort, and attachment summary links.
+            .find('ul.pager > li > a, th.views-field a, .attachment .views-summary a')
+            .each(function () {
+              var viewData = { 'js': 1 };
+              // Construct an object using the settings defaults and then overriding
+              // with data specific to the link.
+              $.extend(
+                viewData,
+                Drupal.Views.parseQueryString($(this).attr('href')),
+                // Extract argument data from the URL.
+                Drupal.Views.parseViewArgs($(this).attr('href'), settings.view_base_path),
+                // Settings must be used last to avoid sending url aliases to the server.
+                settings
+              );
+              $(this).click(function () {
+                $.extend(viewData, Drupal.Views.parseViewArgs($(this).attr('href'), settings.view_base_path));
+                $(this).addClass('views-throbbing');
+                $.ajax({
+                  url: ajax_path,
+                  type: 'GET',
+                  data: viewData,
+                  success: function(response) {
+                    $(this).removeClass('views-throbbing');
+                    // Scroll to the top of the view. This will allow users
+                    // to browse newly loaded content after e.g. clicking a pager
+                    // link.
+                    var offset = $(target).offset();
+                    // We can't guarantee that the scrollable object should be
+                    // the body, as the view could be embedded in something
+                    // more complex such as a modal popup. Recurse up the DOM
+                    // and scroll the first element that has a non-zero top.
+                    var scrollTarget = target;
+                    while ($(scrollTarget).scrollTop() == 0 && $(scrollTarget).parent()) {
+                      scrollTarget = $(scrollTarget).parent()
+                    }
+                    // Only scroll upward
+                    if (offset.top - 10 < $(scrollTarget).scrollTop()) {
+                      $(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500);
+                    }
+                    // Call all callbacks.
+                    if (response.__callbacks) {
+                      $.each(response.__callbacks, function(i, callback) {
+                        eval(callback)(target, response);
+                      });
+                    }
+                  },
+                  error: function(xhr) { $(this).removeClass('views-throbbing'); Drupal.Views.Ajax.handleErrors(xhr, ajax_path); },
+                  dataType: 'json'
+                });
+
+                return false;
+              });
+            }); // .each function () {
+      }); // $view.filter().each
+    }); // .each Drupal.settings.views.ajaxViews
+  } // if
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/views/js/base.js b/drupal/sites/default/boinc/modules/contrib/views/js/base.js
new file mode 100644
index 0000000..66171e6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/js/base.js
@@ -0,0 +1,122 @@
+/**
+ * @file base.js
+ *
+ * Some basic behaviors and utility functions for Views.
+ */
+
+Drupal.Views = {};
+
+/**
+ * jQuery UI tabs, Views integration component
+ */
+Drupal.behaviors.viewsTabs = function (context) {
+  $('#views-tabset:not(.views-processed)').addClass('views-processed').each(function() {
+    new Drupal.Views.Tabs($(this), {selectedClass: 'active'});
+  });
+
+  $('a.views-remove-link')
+    .addClass('views-processed')
+    .click(function() {
+      var id = $(this).attr('id').replace('views-remove-link-', '');
+      $('#views-row-' + id).hide();
+      $('#views-removed-' + id).attr('checked', true);
+      return false;
+    });
+}
+
+/**
+ * For IE, attach some javascript so that our hovers do what they're supposed
+ * to do.
+ */
+Drupal.behaviors.viewsHoverlinks = function() {
+  if ($.browser.msie) {
+    // If IE, attach a hover event so we can see our admin links.
+    $("div.view:not(.views-hover-processed)").addClass('views-hover-processed').hover(
+      function() {
+        $('div.views-hide', this).addClass("views-hide-hover"); return true;
+      },
+      function(){
+        $('div.views-hide', this).removeClass("views-hide-hover"); return true;
+      }
+    );
+    $("div.views-admin-links:not(.views-hover-processed)")
+      .addClass('views-hover-processed')
+      .hover(
+        function() {
+          $(this).addClass("views-admin-links-hover"); return true;
+        },
+        function(){
+          $(this).removeClass("views-admin-links-hover"); return true;
+        }
+      );
+  }
+}
+
+/**
+ * Helper function to parse a querystring.
+ */
+Drupal.Views.parseQueryString = function (query) {
+  var args = {};
+  var pos = query.indexOf('?');
+  if (pos != -1) {
+    query = query.substring(pos + 1);
+  }
+  var pairs = query.split('&');
+  for(var i in pairs) {
+    if (typeof(pairs[i]) == 'string') {
+      var pair = pairs[i].split('=');
+      // Ignore the 'q' path argument, if present.
+      if (pair[0] != 'q' && pair[1]) {
+        args[pair[0]] = decodeURIComponent(pair[1].replace(/\+/g, ' '));
+      }
+    }
+  }
+  return args;
+};
+
+/**
+ * Helper function to return a view's arguments based on a path.
+ */
+Drupal.Views.parseViewArgs = function (href, viewPath) {
+  var returnObj = {};
+  var path = Drupal.Views.getPath(href);
+  // Ensure we have a correct path.
+  if (viewPath && path.substring(0, viewPath.length + 1) == viewPath + '/') {
+    var args = decodeURIComponent(path.substring(viewPath.length + 1, path.length));
+    returnObj.view_args = args;
+    returnObj.view_path = path;
+  }
+  return returnObj;
+};
+
+/**
+ * Strip off the protocol plus domain from an href.
+ */
+Drupal.Views.pathPortion = function (href) {
+  // Remove e.g. http://example.com if present.
+  var protocol = window.location.protocol;
+  if (href.substring(0, protocol.length) == protocol) {
+    // 2 is the length of the '//' that normally follows the protocol
+    href = href.substring(href.indexOf('/', protocol.length + 2));
+  }
+  return href;
+};
+
+/**
+ * Return the Drupal path portion of an href.
+ */
+Drupal.Views.getPath = function (href) {
+  href = Drupal.Views.pathPortion(href);
+  href = href.substring(Drupal.settings.basePath.length, href.length);
+  // 3 is the length of the '?q=' added to the url without clean urls.
+  if (href.substring(0, 3) == '?q=') {
+    href = href.substring(3, href.length);
+  }
+  var chars = ['#', '?', '&'];
+  for (i in chars) {
+    if (href.indexOf(chars[i]) > -1) {
+      href = href.substr(0, href.indexOf(chars[i]));
+    }
+  }
+  return href;
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/views/js/dependent.js b/drupal/sites/default/boinc/modules/contrib/views/js/dependent.js
new file mode 100644
index 0000000..7683fdd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/js/dependent.js
@@ -0,0 +1,195 @@
+/**
+ * @file dependent.js
+ *
+ * Written by dmitrig01 (Dmitri Gaskin) for Views; this provides dependent
+ * visibility for form items in Views' ajax forms.
+ *
+ * To your $form item definition add:
+ * - '#process' => array('views_process_dependency'),
+ * - Add '#dependency' => array('id-of-form-item' => array(list, of, values, that,
+     make, this, item, show),
+ *
+ * Special considerations:
+ * - radios are harder. Because Drupal doesn't give radio groups individual ids,
+ *   use 'radio:name-of-radio'
+ *
+ * - Checkboxes don't have their own id, so you need to add one in a div
+ *   around the checkboxes via #prefix and #suffix. You actually need to add TWO
+ *   divs because it's the parent that gets hidden. Also be sure to retain the
+ *   'expand_checkboxes' in the #process array, because the views process will
+ *   override it.
+ */
+
+Drupal.Views = Drupal.Views || {};
+
+Drupal.Views.dependent = { bindings: {}, activeBindings: {}, activeTriggers: [] };
+
+Drupal.Views.dependent.inArray = function(array, search_term) {
+  var i = array.length;
+  if (i > 0) {
+   do {
+    if (array[i] == search_term) {
+       return true;
+    }
+   } while (i--);
+  }
+  return false;
+}
+
+
+Drupal.Views.dependent.autoAttach = function() {
+  // Clear active bindings and triggers.
+  for (i in Drupal.Views.dependent.activeTriggers) {
+    jQuery(Drupal.Views.dependent.activeTriggers[i]).unbind('change');
+  }
+  Drupal.Views.dependent.activeTriggers = [];
+  Drupal.Views.dependent.activeBindings = {};
+  Drupal.Views.dependent.bindings = {};
+
+  if (!Drupal.settings.viewsAjax) {
+    return;
+  }
+
+  // Iterate through all relationships
+  for (id in Drupal.settings.viewsAjax.formRelationships) {
+
+    // Drupal.Views.dependent.activeBindings[id] is a boolean,
+    // whether the binding is active or not.  Defaults to no.
+    Drupal.Views.dependent.activeBindings[id] = 0;
+    // Iterate through all possible values
+    for(bind_id in Drupal.settings.viewsAjax.formRelationships[id].values) {
+      // This creates a backward relationship.  The bind_id is the ID
+      // of the element which needs to change in order for the id to hide or become shown.
+      // The id is the ID of the item which will be conditionally hidden or shown.
+      // Here we're setting the bindings for the bind
+      // id to be an empty array if it doesn't already have bindings to it
+      if (!Drupal.Views.dependent.bindings[bind_id]) {
+        Drupal.Views.dependent.bindings[bind_id] = [];
+      }
+      // Add this ID
+      Drupal.Views.dependent.bindings[bind_id].push(id);
+      // Big long if statement.
+      // Drupal.settings.viewsAjax.formRelationships[id].values[bind_id] holds the possible values
+
+      if (bind_id.substring(0, 6) == 'radio:') {
+        var trigger_id = "input[name='" + bind_id.substring(6) + "']";
+      }
+      else {
+        var trigger_id = '#' + bind_id;
+      }
+
+      Drupal.Views.dependent.activeTriggers.push(trigger_id);
+
+      if (jQuery(trigger_id).attr('type') == 'checkbox') {
+        $(trigger_id).parent().addClass('hidden-options');
+      }
+
+      var getValue = function(item, trigger) {
+        if (item.substring(0, 6) == 'radio:') {
+          var val = jQuery(trigger + ':checked').val();
+        }
+        else {
+          switch (jQuery(trigger).attr('type')) {
+            case 'checkbox':
+              var val = jQuery(trigger).attr('checked') || 0;
+
+              if (val) {
+                $(trigger).parent().removeClass('hidden-options').addClass('expanded-options');
+              }
+              else {
+                $(trigger).parent().removeClass('expanded-options').addClass('hidden-options');
+              }
+
+              break;
+            default:
+              var val = jQuery(trigger).val();
+          }
+        }
+        return val;
+      }
+
+      var setChangeTrigger = function(trigger_id, bind_id) {
+        // Triggered when change() is clicked.
+        var changeTrigger = function() {
+          var val = getValue(bind_id, trigger_id);
+
+          for (i in Drupal.Views.dependent.bindings[bind_id]) {
+            var id = Drupal.Views.dependent.bindings[bind_id][i];
+
+            // Fix numerous errors
+            if (typeof id != 'string') {
+              continue;
+            }
+
+            // This bit had to be rewritten a bit because two properties on the
+            // same set caused the counter to go up and up and up.
+            if (!Drupal.Views.dependent.activeBindings[id]) {
+              Drupal.Views.dependent.activeBindings[id] = {};
+            }
+
+            if (Drupal.Views.dependent.inArray(Drupal.settings.viewsAjax.formRelationships[id].values[bind_id], val)) {
+              Drupal.Views.dependent.activeBindings[id][bind_id] = 'bind';
+            }
+            else {
+              delete Drupal.Views.dependent.activeBindings[id][bind_id];
+            }
+
+            var len = 0;
+            for (i in Drupal.Views.dependent.activeBindings[id]) {
+              len++;
+            }
+
+            var object = jQuery('#' + id + '-wrapper');
+            if (!object.size()) {
+              object = jQuery('#' + id).parent();
+            }
+
+            var rel_num = Drupal.settings.viewsAjax.formRelationships[id].num;
+            if (typeof rel_num === 'object') {
+              rel_num = Drupal.settings.viewsAjax.formRelationships[id].num[0];
+            }
+
+            if (rel_num <= len) {
+              // Show if the element if criteria is matched
+              object.show(0);
+              object.addClass('dependent-options');
+            }
+            else {
+              // Otherwise hide
+              object.hide(0);
+            }
+          }
+        }
+
+        jQuery(trigger_id).change(function() {
+          // Trigger the internal change function
+          // the attr('id') is used because closures are more confusing
+          changeTrigger(trigger_id, bind_id);
+        });
+        // Trigger initial reaction
+        changeTrigger(trigger_id, bind_id);
+      }
+      setChangeTrigger(trigger_id, bind_id);
+    }
+  }
+}
+
+Drupal.behaviors.viewsDependent = function (context) {
+  Drupal.Views.dependent.autoAttach();
+
+  // Really large sets of fields are too slow with the above method, so this
+  // is a sort of hacked one that's faster but much less flexible.
+  $("select.views-master-dependent:not(.views-processed)")
+    .addClass('views-processed')
+    .change(function() {
+      var val = $(this).val();
+      if (val == 'all') {
+        $('.views-dependent-all').show(0);
+      }
+      else {
+        $('.views-dependent-all').hide(0);
+        $('.views-dependent-' + val).show(0);
+      }
+    })
+    .trigger('change');
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/js/tabs.js b/drupal/sites/default/boinc/modules/contrib/views/js/tabs.js
new file mode 100644
index 0000000..4e7e762
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/js/tabs.js
@@ -0,0 +1,401 @@
+
+/**
+ * @file tabs.js
+ * jQuery UI Tabs (Tabs 3)
+ *
+ * This is nothing more than the pure jquery UI tabs implementation.
+ * It has been implemented under the Drupal.Views.Tabs namespace to
+ * avoid conflicts with alternatve versions of jquery, jquery UI.
+ */
+
+Drupal.Views = Drupal.Views || {};
+
+Drupal.Views.Tabs = function(el, options) {
+
+  this.source = el;
+
+  this.options = $.extend({
+
+    // basic setup
+    initial: 0,
+    event: 'click',
+    disabled: [],
+    // TODO bookmarkable: $.ajaxHistory ? true : false,
+    unselected: false,
+    toggle: options.unselected ? true : false,
+
+    // Ajax
+    spinner: 'Loading…',
+    cache: false,
+    hashPrefix: 'tab-',
+
+    // animations
+    /*fxFade: null,
+    fxSlide: null,
+    fxShow: null,
+    fxHide: null,*/
+    fxSpeed: 'normal',
+    /*fxShowSpeed: null,
+    fxHideSpeed: null,*/
+
+    // callbacks
+    add: function() {},
+    remove: function() {},
+    enable: function() {},
+    disable: function() {},
+    click: function() {},
+    hide: function() {},
+    show: function() {},
+    load: function() {},
+
+    // CSS classes
+    navClass: 'ui-tabs-nav',
+    selectedClass: 'ui-tabs-selected',
+    disabledClass: 'ui-tabs-disabled',
+    containerClass: 'ui-tabs-container',
+    hideClass: 'ui-tabs-hide',
+    loadingClass: 'ui-tabs-loading'
+
+  }, options);
+
+  this.tabify(true);
+
+  // save instance for later
+  var uuid = 'instance-' + Drupal.Views.Tabs.prototype.count++;
+  Drupal.Views.Tabs.instances[uuid] = this;
+  this.source.data('UI_TABS_UUID', uuid);
+
+};
+
+// static
+Drupal.Views.Tabs.instances = {};
+
+$.extend(Drupal.Views.Tabs.prototype, {
+  animating: false,
+  count: 0,
+  tabify: function(init) {
+
+    this.$tabs = $('a:first-child', this.source);
+    this.$containers = $([]);
+
+    var self = this, o = this.options;
+
+    this.$tabs.each(function(i, a) {
+      // inline tab
+      if (a.hash && a.hash.replace('#', '')) { // safari 2 reports '#' for an empty hash
+        self.$containers = self.$containers.add(a.hash);
+      }
+      // remote tab
+      else {
+        var id = a.title && a.title.replace(/\s/g, '_') || o.hashPrefix + (self.count + 1) + '-' + (i + 1), url = a.href;
+        a.href = '#' + id;
+        a.url = url;
+        self.$containers = self.$containers.add(
+          $('#' + id)[0] || $('<div id="' + id + '" class="' + o.containerClass + '"></div>')
+            .insertAfter( self.$containers[i - 1] || self.source )
+        );
+      }
+    });
+
+    if (init) {
+
+      // Try to retrieve initial tab from fragment identifier in url if present,
+      // otherwise try to find selected class attribute on <li>.
+      this.$tabs.each(function(i, a) {
+        if (location.hash) {
+          if (a.hash == location.hash) {
+            o.initial = i;
+            // prevent page scroll to fragment
+            //if (($.browser.msie || $.browser.opera) && !o.remote) {
+            if ($.browser.msie || $.browser.opera) {
+              var $toShow = $(location.hash), toShowId = $toShow.attr('id');
+              $toShow.attr('id', '');
+              setTimeout(function() {
+                $toShow.attr('id', toShowId); // restore id
+              }, 500);
+            }
+            scrollTo(0, 0);
+            return false; // break
+          }
+        } else if ( $(a).parents('li:eq(0)').is('li.' + o.selectedClass) ) {
+          o.initial = i;
+          return false; // break
+        }
+      });
+
+      // attach necessary classes for styling if not present
+      $(this.source).is('.' + o.navClass) || $(this.source).addClass(o.navClass);
+      this.$containers.each(function() {
+        var $this = $(this);
+        $this.is('.' + o.containerClass) || $this.addClass(o.containerClass);
+      });
+
+      // highlight tab accordingly
+      var $lis = $('li', this.source);
+      this.$containers.addClass(o.hideClass);
+      $lis.removeClass(o.selectedClass);
+      if (!o.unselected) {
+        this.$containers.slice(o.initial, o.initial + 1).show();
+        $lis.slice(o.initial, o.initial + 1).addClass(o.selectedClass);
+      }
+
+      // trigger load of initial tab is remote tab
+      if (this.$tabs[o.initial].url) {
+        this.load(o.initial + 1, this.$tabs[o.initial].url);
+        if (o.cache) {
+          this.$tabs[o.initial].url = null; // if loaded once do not load them again
+        }
+      }
+
+      // disabled tabs
+      for (var i = 0, position; position = o.disabled[i]; i++) {
+        this.disable(position);
+      }
+
+    }
+
+    // setup animations
+    var showAnim = {}, hideAnim = {}, showSpeed = o.fxShowSpeed || o.fxSpeed,
+      hideSpeed = o.fxHideSpeed || o.fxSpeed;
+    if (o.fxSlide || o.fxFade) {
+      if (o.fxSlide) {
+        showAnim['height'] = 'show';
+        hideAnim['height'] = 'hide';
+      }
+      if (o.fxFade) {
+        showAnim['opacity'] = 'show';
+        hideAnim['opacity'] = 'hide';
+      }
+    } else {
+      if (o.fxShow) {
+        showAnim = o.fxShow;
+      } else { // use some kind of animation to prevent browser scrolling to the tab
+        showAnim['min-width'] = 0; // avoid opacity, causes flicker in Firefox
+        showSpeed = 1; // as little as 1 is sufficient
+      }
+      if (o.fxHide) {
+        hideAnim = o.fxHide;
+      } else { // use some kind of animation to prevent browser scrolling to the tab
+        hideAnim['min-width'] = 0; // avoid opacity, causes flicker in Firefox
+        hideSpeed = 1; // as little as 1 is sufficient
+      }
+    }
+
+    // callbacks
+    var click = o.click, hide = o.hide, show = o.show;
+
+    // reset some styles to maintain print style sheets etc.
+    var resetCSS = { display: '', overflow: '', height: '' };
+    if (!$.browser.msie) { // not in IE to prevent ClearType font issue
+      resetCSS['opacity'] = '';
+    }
+
+    // hide a tab, animation prevents browser scrolling to fragment
+    function hideTab(clicked, $hide, $show) {
+      $hide.animate(hideAnim, hideSpeed, function() { //
+        $hide.addClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.
+        hide(clicked, $show, $hide[0]);
+        if ($show) {
+          showTab(clicked, $hide, $show);
+        }
+      });
+    }
+
+    // show a tab, animation prevents browser scrolling to fragment
+    function showTab(clicked, $hide, $show) {
+      // show next tab
+      if (!(o.fxSlide || o.fxFade || o.fxShow)) {
+        $show.css('display', 'block'); // prevent occasionally occuring flicker in Firefox cause by gap between showing and hiding the tab containers
+      }
+      $show.animate(showAnim, showSpeed, function() {
+        $show.removeClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.
+        if ($.browser.msie) {
+          $hide[0].style.filter = '';
+          $show[0].style.filter = '';
+        }
+        show(clicked, $show[0], $hide[0]);
+        self.animating = false;
+      });
+
+    }
+
+    // switch a tab
+    function switchTab(clicked, $hide, $show) {
+      /*if (o.bookmarkable && trueClick) { // add to history only if true click occured, not a triggered click
+        $.ajaxHistory.update(clicked.hash);
+      }*/
+      $(clicked).parents('li:eq(0)').addClass(o.selectedClass)
+        .siblings().removeClass(o.selectedClass);
+      hideTab(clicked, $hide, $show);
+    }
+
+    // tab click handler
+    function tabClick(e) {
+
+      //var trueClick = e.clientX; // add to history only if true click occured, not a triggered click
+      var $li = $(this).parents('li:eq(0)'), $hide = self.$containers.filter(':visible'), $show = $(this.hash);
+
+      // if tab may be closed
+      if (o.toggle && !$li.is('.' + o.disabledClass) && !self.animating) {
+        if ($li.is('.' + o.selectedClass)) {
+          $li.removeClass(o.selectedClass);
+          hideTab(this, $hide);
+          this.blur();
+          return false;
+        } else if (!$hide.length) {
+          $li.addClass(o.selectedClass);
+          showTab(this, $hide, $show);
+          this.blur();
+          return false;
+        }
+      }
+
+      // If tab is already selected or disabled, animation is still running or click callback
+      // returns false stop here.
+      // Check if click handler returns false last so that it is not executed for a disabled tab!
+      if ($li.is('.' + o.selectedClass + ', .' + o.disabledClass)
+        || self.animating || click(this, $show[0], $hide[0]) === false) {
+        this.blur();
+        return false;
+      }
+
+      self.animating = true;
+
+      // show new tab
+      if ($show.length) {
+
+        // prevent scrollbar scrolling to 0 and than back in IE7, happens only if bookmarking/history is enabled
+        /*if ($.browser.msie && o.bookmarkable) {
+          var showId = this.hash.replace('#', '');
+          $show.attr('id', '');
+          setTimeout(function() {
+            $show.attr('id', showId); // restore id
+          }, 0);
+        }*/
+
+        if (this.url) { // remote tab
+          var a = this;
+          self.load(self.$tabs.index(this) + 1, this.url, function() {
+            switchTab(a, $hide, $show);
+          });
+          if (o.cache) {
+            this.url = null; // if loaded once do not load them again
+          }
+        } else {
+          switchTab(this, $hide, $show);
+        }
+
+        // Set scrollbar to saved position - need to use timeout with 0 to prevent browser scroll to target of hash
+        /*var scrollX = window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft || 0;
+        var scrollY = window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body.scrollTop || 0;
+        setTimeout(function() {
+          scrollTo(scrollX, scrollY);
+        }, 0);*/
+
+      } else {
+        throw Drupal.t('jQuery UI Tabs: Mismatching fragment identifier.');
+      }
+
+      this.blur(); // prevent IE from keeping other link focussed when using the back button
+
+      //return o.bookmarkable && !!trueClick; // convert trueClick == undefined to Boolean required in IE
+      return false;
+
+    }
+
+    // attach click event, avoid duplicates from former tabifying
+    this.$tabs.unbind(o.event, tabClick).bind(o.event, tabClick);
+
+  },
+  add: function(url, text, position) {
+    if (url && text) {
+      var o = this.options;
+      position = position || this.$tabs.length; // append by default
+      if (position >= this.$tabs.length) {
+        var method = 'insertAfter';
+        position = this.$tabs.length;
+      } else {
+        var method = 'insertBefore';
+      }
+      if (url.indexOf('#') == 0) { // ajax container is created by tabify automatically
+        var $container = $(url);
+        // try to find an existing element before creating a new one
+        ($container.length && $container || $('<div id="' + url.replace('#', '') + '" class="' + o.containerClass + ' ' + o.hideClass + '"></div>'))
+          [method](this.$containers[position - 1]);
+      }
+      $('<li><a href="' + url + '"><span>' + text + '</span></a></li>')
+        [method](this.$tabs.slice(position - 1, position).parents('li:eq(0)'));
+      this.tabify();
+      o.add(this.$tabs[position - 1], this.$containers[position - 1]); // callback
+    } else {
+      throw Drupal.t('jQuery UI Tabs: Not enough arguments to add tab.');
+    }
+  },
+  remove: function(position) {
+    if (position && position.constructor == Number) {
+      this.$tabs.slice(position - 1, position).parents('li:eq(0)').remove();
+      this.$containers.slice(position - 1, position).remove();
+      this.tabify();
+    }
+    this.options.remove(); // callback
+  },
+  enable: function(position) {
+    var $li = this.$tabs.slice(position - 1, position).parents('li:eq(0)'), o = this.options;
+    $li.removeClass(o.disabledClass);
+    if ($.browser.safari) { // fix disappearing tab after enabling in Safari... TODO check Safari 3
+      $li.animate({ opacity: 1 }, 1, function() {
+        $li.css({ opacity: '' });
+      });
+    }
+    o.enable(this.$tabs[position - 1], this.$containers[position - 1]); // callback
+  },
+  disable: function(position) {
+    var $li = this.$tabs.slice(position - 1, position).parents('li:eq(0)'), o = this.options;
+    if ($.browser.safari) { // fix opacity of tab after disabling in Safari... TODO check Safari 3
+      $li.animate({ opacity: 0 }, 1, function() {
+          $li.css({ opacity: '' });
+      });
+    }
+    $li.addClass(this.options.disabledClass);
+    o.disable(this.$tabs[position - 1], this.$containers[position - 1]); // callback
+  },
+  click: function(position) {
+    this.$tabs.slice(position - 1, position).trigger('click');
+  },
+  load: function(position, url, callback) {
+    var self = this,
+      o = this.options,
+      $a = this.$tabs.slice(position - 1, position).addClass(o.loadingClass),
+      $span = $('span', $a),
+      text = $span.html();
+
+    // shift arguments
+    if (url && url.constructor == Function) {
+      callback = url;
+    }
+
+    // set new URL
+    if (url) {
+      $a[0].url = url;
+    }
+
+    // load
+    if (o.spinner) {
+      $span.html('<em>' + o.spinner + '</em>');
+    }
+    setTimeout(function() { // timeout is again required in IE, "wait" for id being restored
+      $($a[0].hash).load(url, function() {
+        if (o.spinner) {
+          $span.html(text);
+        }
+        $a.removeClass(o.loadingClass);
+        // This callback is needed because the switch has to take place after loading
+        // has completed.
+        if (callback && callback.constructor == Function) {
+          callback();
+        }
+        o.load(self.$tabs[position - 1], self.$containers[position - 1]); // callback
+      });
+    }, 0);
+  }
+});
diff --git a/drupal/sites/default/boinc/modules/contrib/views/js/view-list.js b/drupal/sites/default/boinc/modules/contrib/views/js/view-list.js
new file mode 100644
index 0000000..01ae24a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/js/view-list.js
@@ -0,0 +1,13 @@
+/**
+ * @file view-list.js
+ *
+ * Handles JS things for view listing.
+ */
+Drupal.behaviors.ViewsList = function() {
+  var timeoutID = 0;
+  $('form#views-ui-list-views-form select:not(.views-processed)')
+    .addClass('views-processed')
+    .change(function() {
+      $('#edit-views-apply').click();
+    });
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator.views.inc
new file mode 100644
index 0000000..9bc1da1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator.views.inc
@@ -0,0 +1,456 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for aggregator.module
+ */
+
+/**
+ * @defgroup views_aggregator_module aggregator.module handlers
+ *
+ * Includes the core 'aggregator_feed,' 'aggregator_category,' and 'aggregator_item'
+ * tables.
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function aggregator_views_data() {
+  // ----------------------------------------------------------------------
+  // Main Aggregator Item base table
+
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['aggregator_item']['table']['group']  = t('Aggregator');
+
+  // Advertise this table as a possible base table
+  $data['aggregator_item']['table']['base'] = array(
+    'field' => 'iid',
+    'title' => t('Aggregator item'),
+    'help' => t("Aggregator items are imported from external RSS and Atom news feeds."),
+  );
+
+  // ----------------------------------------------------------------
+  // Fields
+
+  // item id.
+  $data['aggregator_item']['iid'] = array(
+    'title' => t('Feed Item ID'),
+    'help' => t('The unique ID of the aggregator item.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'numeric' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // iid
+  $data['aggregator_item']['iid'] = array(
+    'title' => t('Item ID'),
+    'help' => t('The unique ID of the aggregator item.'), // The help that appears on the UI,
+    // Information for displaying the iid
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    // Information for accepting a iid as an argument
+    'argument' => array(
+      'handler' => 'views_handler_argument_aggregator_iid',
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+    ),
+    // Information for accepting a nid as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    // Information for sorting on a nid.
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // title
+  $data['aggregator_item']['title'] = array(
+    'title' => t('Title'), // The item it appears as on the UI,
+    'help' => t('The title of the aggregator item.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_aggregator_title_link',
+      'extra' => array('link'),
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // link
+  $data['aggregator_item']['link'] = array(
+    'title' => t('Link'), // The item it appears as on the UI,
+    'help' => t('The link to the original source URL of the item.'),
+    'field' => array(
+      'handler' => 'views_handler_field_url',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // author
+  $data['aggregator_item']['author'] = array(
+    'title' => t('Author'), // The item it appears as on the UI,
+    'help' => t('The author of the original imported item.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_aggregator_xss',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // guid
+  $data['aggregator_item']['guid'] = array(
+    'title' => t('GUID'), // The item it appears as on the UI,
+    'help' => t('The guid of the original imported item.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_xss',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // feed body
+  $data['aggregator_item']['description'] = array(
+    'title' => t('Body'), // The item it appears as on the UI,
+    'help' => t('The actual content of the imported item.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_aggregator_xss',
+      'click sortable' => FALSE,
+     ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // item timestamp
+  $data['aggregator_item']['timestamp'] = array(
+    'title' => t('Timestamp'), // The item it appears as on the UI,
+    'help' => t('The date the original feed item was posted. (With some feeds, this will be the date it was imported.)'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_date',
+    ),
+  );
+
+
+  // ----------------------------------------------------------------------
+  // Aggregator feed table
+
+  $data['aggregator_feed']['table']['group']  = t('Aggregator feed');
+
+  // Explain how this table joins to others.
+  $data['aggregator_feed']['table']['join'] = array(
+    'aggregator_item' => array(
+      'left_field' => 'fid',
+      'field' => 'fid',
+    ),
+  );
+
+  // fid
+  $data['aggregator_feed']['fid'] = array(
+    'title' => t('Feed ID'),
+    'help' => t('The unique ID of the aggregator feed.'), // The help that appears on the UI,
+    // Information for displaying the fid
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    // Information for accepting a fid as an argument
+    'argument' => array(
+      'handler' => 'views_handler_argument_aggregator_fid',
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+    ),
+    // Information for accepting a nid as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    // Information for sorting on a fid.
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // title
+  $data['aggregator_feed']['title'] = array(
+    'title' => t('Title'), // The item it appears as on the UI,
+    'help' => t('The title of the aggregator feed.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_aggregator_title_link',
+      'extra' => array('link'),
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // link
+  $data['aggregator_feed']['link'] = array(
+    'title' => t('Link'), // The item it appears as on the UI,
+    'help' => t('The link to the source URL of the feed.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_url',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // feed last updated
+  $data['aggregator_feed']['checked'] = array(
+    'title' => t('Last checked'), // The item it appears as on the UI,
+    'help' => t('The date the feed was last checked for new content.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_date',
+    ),
+  );
+
+  // feed description
+  $data['aggregator_feed']['description'] = array(
+    'title' => t('Description'), // The item it appears as on the UI,
+    'help' => t('The description of the aggregator feed.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_xss',
+      'click sortable' => FALSE,
+     ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // feed last updated
+  $data['aggregator_feed']['modified'] = array(
+    'title' => t('Last modified'), // The item it appears as on the UI,
+    'help' => t('The date of the most recent new content onf the feed.'),
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_date',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // Aggregator category feed table
+
+  $data['aggregator_category_feed']['table']['join'] = array(
+    'aggregator_item' => array(
+      'left_field' => 'fid',
+      'field' => 'fid',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // Aggregator category table
+
+  $data['aggregator_category']['table']['group'] = t('Aggregator category');
+
+  $data['aggregator_category']['table']['join'] = array(
+    'aggregator_item' => array(
+      'left_table' => 'aggregator_category_feed',
+      'left_field' => 'cid',
+      'field' => 'cid',
+    ),
+  );
+
+  // cid
+  $data['aggregator_category']['cid'] = array(
+    'title' => t('Category ID'),
+    'help' => t('The unique ID of the aggregator category.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_aggregator_category_cid',
+      'name field' => 'title',
+      'numeric' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_aggregator_category_cid',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // title
+  $data['aggregator_category']['title'] = array(
+    'title' => t('Category'),
+    'help' => t('The title of the aggregator category.'),
+    'field' => array(
+      'handler' => 'views_handler_field_aggregator_category',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function aggregator_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/aggregator',
+    ),
+    'handlers' => array(
+      // field handlers
+      'views_handler_field_aggregator_title_link' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_aggregator_category' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_aggregator_xss' => array(
+        'parent' => 'views_handler_field',
+      ),
+
+      // argument handlers
+      'views_handler_argument_aggregator_iid' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+      'views_handler_argument_aggregator_fid' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+      'views_handler_argument_aggregator_category_cid' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+
+      // filter handlers
+      'views_handler_filter_aggregator_category_cid' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+    ),
+  );
+}
+
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function aggregator_views_plugins() {
+  return array(
+    'module' => 'views', // This just tells our themes are elsewhere.
+    'row' => array(
+      'aggregator_rss' => array(
+        'title' => t('Aggregator item'),
+        'help' => t('Display the aggregator item using the data from the original source.'),
+        'handler' => 'views_plugin_row_aggregator_rss',
+        'path' => drupal_get_path('module', 'views') . '/modules/aggregator', // not necessary for most modules
+        'theme' => 'views_view_row_rss',
+        'base' => array('aggregator_item'), // only works with 'node' as base.
+        'uses options' => TRUE,
+        'type' => 'feed',
+        'help topic' => 'style-aggregator-rss',
+      ),
+    ),
+  );
+}
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc
new file mode 100644
index 0000000..7955ac4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Argument handler to accept an aggregator category id.
+ */
+class views_handler_argument_aggregator_category_cid extends views_handler_argument_numeric {
+  /**
+   * Override the behavior of title(). Get the title of the category.
+   */
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT c.title FROM {aggregator_category} c WHERE c.cid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->title);
+    }
+    return $titles;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_fid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_fid.inc
new file mode 100644
index 0000000..906e5e1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_fid.inc
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Argument handler to accept an aggregator feed id.
+ */
+class views_handler_argument_aggregator_fid extends views_handler_argument_numeric {
+  /**
+   * Override the behavior of title(). Get the title of the feed.
+   */
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT f.title FROM {aggregator_feed} f WHERE f.fid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->title);
+    }
+    return $titles;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_iid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_iid.inc
new file mode 100644
index 0000000..2861202
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_argument_aggregator_iid.inc
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Argument handler to accept an aggregator item id.
+ */
+class views_handler_argument_aggregator_iid extends views_handler_argument_numeric {
+  /**
+   * Override the behavior of title(). Get the title of the category.
+   */
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT i.title FROM {aggregator_item} i WHERE i.iid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->title);
+    }
+    return $titles;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_category.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_category.inc
new file mode 100644
index 0000000..b1f5a01
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_category.inc
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that allows linking to aggregator
+ * category.
+ */
+class views_handler_field_aggregator_category extends views_handler_field {
+  /**
+   * Constructor to provide additional field to add.
+   */
+  function construct() {
+    parent::construct();
+    $this->additional_fields['cid'] = 'cid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_category'] = array('default' => FALSE);
+    return $options;
+  }
+
+  /**
+   * Provide link to category option
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_category'] = array(
+      '#title' => t('Link this field to its aggregator category page'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_category']),
+    );
+  }
+
+  /**
+   * Render whatever the data is as a link to the category.
+   *
+   * Data should be made XSS safe prior to calling this function.
+   */
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_category']) && !empty($values->{$this->aliases['cid']}) && $data !== NULL && $data !== '') {
+      $cid = $values->{$this->aliases['cid']};
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = "aggregator/category/$cid";
+    }
+    return $data;
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_title_link.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_title_link.inc
new file mode 100644
index 0000000..6e76526
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_title_link.inc
@@ -0,0 +1,43 @@
+<?php
+
+ /**
+ * Field handler that turns an item's title into a clickable link to the original
+ * source article.
+ */
+class views_handler_field_aggregator_title_link extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['link'] = 'link';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['display_as_link'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  /**
+   * Provide link to the page being visited.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['display_as_link'] = array(
+      '#title' => t('Display as link'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['display_as_link']),
+    );
+  }
+
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    $link = $values->{$this->table_alias . '_link'};
+    if (!empty($this->options['display_as_link'])) {
+      return l(check_plain($value), $link, array('html' => TRUE));
+    }
+    else {
+      return check_plain($value);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_xss.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_xss.inc
new file mode 100644
index 0000000..dc32b34
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_field_aggregator_xss.inc
@@ -0,0 +1,13 @@
+<?php
+/**
+ * @file
+ *   Filters htmls tags from item.
+ */
+
+class views_handler_field_aggregator_xss extends views_handler_field {
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    return aggregator_filter_xss($value);
+  }
+
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc
new file mode 100644
index 0000000..9afb90f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Filter by aggregator category cid
+ */
+class views_handler_filter_aggregator_category_cid extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (isset($this->value_options)) {
+      return;
+    }
+
+    $this->value_options = array();
+
+    $result = db_query('SELECT * FROM {aggregator_category} ORDER BY title');
+    while ($category = db_fetch_object($result)) {
+      $this->value_options[$category->cid] = $category->title;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_plugin_row_aggregator_rss.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_plugin_row_aggregator_rss.inc
new file mode 100644
index 0000000..30ddff6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/aggregator/views_plugin_row_aggregator_rss.inc
@@ -0,0 +1,64 @@
+<?php
+/**
+ * @file
+ * Contains the Aggregator Item RSS row style plugin.
+ */
+
+/**
+ * Plugin which loads an aggregator item and formats it as an RSS item.
+ */
+class views_plugin_row_aggregator_rss extends views_plugin_row {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['item_length'] = array('default' => 'default');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['item_length'] = array(
+      '#type' => 'select',
+      '#title' => t('Display type'),
+      '#options' => array(
+        'fulltext' => t('Full text'),
+        'teaser' => t('Title plus teaser'),
+        'title' => t('Title only'),
+        'default' => t('Use default RSS settings'),
+      ),
+      '#default_value' => $this->options['item_length'],
+    );
+  }
+
+  function render($row) {
+    $sql =  "SELECT ai.iid, ai.fid, ai.title, ai.link, ai.author, ai.description, ";
+    $sql .= "ai.timestamp, ai.guid, af.title AS feed_title, ai.link AS feed_LINK ";
+    $sql .= "FROM {aggregator_item} ai LEFT JOIN {aggregator_feed} af ON ai.fid = af.fid ";
+    $sql .= "WHERE ai.iid = %d";
+
+    $item = db_fetch_object(db_query($sql, $row->iid));
+
+    $item->elements = array(
+      array('key' => 'pubDate', 'value' => gmdate('r', $item->timestamp)),
+      array(
+        'key' => 'dc:creator',
+        'value' => $item->author,
+        'namespace' => array('xmlns:dc' => 'http://purl.org/dc/elements/1.1/'),
+      ),
+      array(
+        'key' => 'guid',
+        'value' => $item->guid,
+        'attributes' => array('isPermaLink' => 'false')
+      ),
+    );
+
+    foreach ($item->elements as $element) {
+      if (isset($element['namespace'])) {
+        $this->view->style_plugin->namespaces = array_merge($this->view->style_plugin->namespaces, $element['namespace']);
+      }
+    }
+
+    return theme($this->theme_functions(), $this->view, $this->options, $item);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/book.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/book.views.inc
new file mode 100644
index 0000000..0f73282
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/book.views.inc
@@ -0,0 +1,123 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for book.module
+ */
+
+/**
+ * @defgroup views_book_module book.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function book_views_data() {
+  // ----------------------------------------------------------------------
+  // book table
+
+  $data['book']['table']['group']  = t('Book');
+  $data['book']['table']['join'] = array(
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'nid',
+    ),
+  );
+
+  $data['book']['bid'] = array(
+    'title' => t('Top level book'),
+    'help' => t('The book the node is in.'),
+    'relationship' => array(
+      'base' => 'node',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Book'),
+    ),
+    // There is no argument here; if you need an argument, add the relationship
+    // and use the node: nid argument.
+  );
+
+  // ----------------------------------------------------------------------
+  // menu_links table -- this is aliased so we can get just book relations
+
+  // Book hierarchy and weight data are now in {menu_links}.
+  $data['book_menu_links']['table']['group'] = t('Book');
+  $data['book_menu_links']['table']['join'] = array(
+    'node' => array(
+      'table' => 'menu_links',
+      'left_table' => 'book',
+      'left_field' => 'mlid',
+      'field' => 'mlid',
+    ),
+  );
+
+  $data['book_menu_links']['weight'] = array(
+    'title' => t('Weight'),
+    'help' => t('The weight of the book page.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  $data['book_menu_links']['depth'] = array(
+    'title' => t('Depth'),
+    'help' => t('The depth of the book page in the hierarchy; top level books have a depth of 1.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+    ),
+  );
+
+  $data['book_menu_links']['p'] = array(
+    'title' => t('Hierarchy'),
+    'help' => t('The order of pages in the book hierarchy.'),
+    'sort' => array(
+      'handler' => 'views_handler_sort_menu_hierarchy',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // book_parent table -- this is an alias of the book table which
+  // represents the parent book.
+
+  // The {book} record for the parent node.
+  $data['book_parent']['table']['group'] = t('Book');
+  $data['book_parent']['table']['join'] = array(
+    'node' => array(
+      'table' => 'book',
+      'left_table' => 'book_menu_links',
+      'left_field' => 'plid',
+      'field' => 'mlid',
+    ),
+  );
+
+  $data['book_parent']['nid'] = array(
+    'title' => t('Parent'),
+    'help' => t('The parent book node.'),
+    'relationship' => array(
+      'base' => 'node',
+      'base field' => 'nid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Book parent'),
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/book.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/book.views_convert.inc
new file mode 100644
index 0000000..45cb3f1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/book.views_convert.inc
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ */
+function book_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'field':
+      switch ($field['tablename']) {
+        case 'book_parent_node':
+          switch ($field['field']) {
+            case 'title':
+              $item = $view->get_item($display, 'field', $id);
+              if ($field['handler'] == 'views_handler_field_book_parent_title') {
+                $item['link_to_node'] = TRUE;
+              }
+              $item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
+              $item['table'] = 'node';
+              $item['field'] = 'title';
+              $view->set_item($display, 'field', $id, $item);
+              break;
+          }
+          break;
+      }
+      break;
+    case 'filter':
+      switch ($field['tablename']) {
+        case 'book':
+          switch ($field['field']) {
+            case 'parent':
+              $operators = array('AND' => '=', 'OR' => '=', 'NOT' => '!=');
+              $item = $view->get_item($display, 'filter', $id);
+              $item['operator'] = $operators[$field['operator']];
+              $item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
+              $item['table'] = 'node';
+              $item['field'] = 'nid';
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+          }
+          break;
+      }
+      break;
+    case 'sort':
+      switch ($field['tablename']) {
+        case 'book':
+          switch ($field['field']) {
+            case 'weight':
+              $view->set_item_option($display, 'sort', $id, 'table', 'book_menu_links');
+              break;
+          }
+          break;
+        case 'book_parent_node':
+          switch ($field['field']) {
+            case 'title':
+              $item = $view->get_item($display, 'sort', $id);
+              $item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
+              $item['table'] = 'node';
+              $item['field'] = 'title';
+              $view->set_item($display, 'sort', $id, $item);
+              break;
+          }
+          break;
+      }
+      break;
+    case 'argument':
+      $options = $field['argoptions'];
+      switch ($field['type']) {
+        case 'book_parent':
+          $options['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
+          $view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']);
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views.inc
new file mode 100644
index 0000000..505cf86
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views.inc
@@ -0,0 +1,564 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for comment.module
+ */
+
+/**
+ * @defgroup views_comment_module comment.module handlers
+ *
+ * Includes the tables 'comments' and 'node_comment_statistics'
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+
+function comment_views_data() {
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['comments']['table']['group']  = t('Comment');
+
+  $data['comments']['table']['base'] = array(
+    'field' => 'cid',
+    'title' => t('Comment'),
+    'help' => t("Comments are responses to node content."),
+  );
+
+  //joins
+  $data['comments']['table']['join'] = array(
+    //...to the node table
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'nid',
+    ),
+  );
+
+  // ----------------------------------------------------------------
+  // Fields
+
+  // subject
+  $data['comments']['subject'] = array(
+    'title' => t('Title'),
+    'help' => t('The title of the comment.'),
+    'field' => array(
+      'handler' => 'views_handler_field_comment',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // comment (the comment body)
+  $data['comments']['comment'] = array(
+    'title' => t('Body'),
+    'help' => t('The text of the comment.'),
+    'field' => array(
+      'handler' => 'views_handler_field_markup',
+      'format' => 'format',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // cid
+  $data['comments']['cid'] = array(
+    'title' => t('ID'),
+    'help' => t('The comment ID of the field'),
+    'field' => array(
+      'handler' => 'views_handler_field_comment',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+    ),
+  );
+
+  // name (of comment author)
+  $data['comments']['name'] = array(
+    'title' => t('Author'),
+    'help' => t("The name of the comment's author. Can be rendered as a link to the author's homepage."),
+    'field' => array(
+      'handler' => 'views_handler_field_comment_username',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // homepage
+  $data['comments']['homepage'] = array(
+    'title' => t("Author's website"),
+    'help' => t("The website address of the comment's author. Can be rendered as a link. Will be empty if the author is a registered user."),
+    'field' => array(
+      'handler' => 'views_handler_field_url',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // hostname
+  $data['comments']['hostname'] = array(
+    'title' => t('Hostname'),
+    'help' => t('Hostname of user that posted the comment.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // mail
+  $data['comments']['mail'] = array(
+    'title' => t('Mail'),
+    'help' => t('Email of user that posted the comment. Will be empty if the author is a registered user.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // timestamp (when comment was posted)
+  $data['comments']['timestamp'] = array(
+    'title' => t('Post date'),
+    'help' => t('Date and time of when the comment was posted.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // status (approved or not)
+  $data['comments']['status'] = array(
+    'title' => t('In moderation'),
+    'help' => t('Whether or not the comment is currently in the moderation queue.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('In the moderation queue'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // link to view comment
+  $data['comments']['view_comment'] = array(
+    'field' => array(
+      'title' => t('View link'),
+      'help' => t('Provide a simple link to view the comment.'),
+      'handler' => 'views_handler_field_comment_link',
+    ),
+  );
+
+  // link to edit comment
+  $data['comments']['edit_comment'] = array(
+    'field' => array(
+      'title' => t('Edit link'),
+      'help' => t('Provide a simple link to edit the comment.'),
+      'handler' => 'views_handler_field_comment_link_edit',
+    ),
+  );
+
+  // link to delete comment
+  $data['comments']['delete_comment'] = array(
+    'field' => array(
+      'title' => t('Delete link'),
+      'help' => t('Provide a simple link to delete the comment.'),
+      'handler' => 'views_handler_field_comment_link_delete',
+    ),
+  );
+
+  // link to reply to comment
+  $data['comments']['replyto_comment'] = array(
+    'field' => array(
+      'title' => t('Reply-to link'),
+      'help' => t('Provide a simple link to reply to the comment.'),
+      'handler' => 'views_handler_field_comment_link_reply',
+    ),
+  );
+
+  $data['comments']['thread'] = array(
+    'field' => array(
+      'title' => t('Depth'),
+      'help' => t('Display the depth of the comment if it is threaded.'),
+      'handler' => 'views_handler_field_comment_depth',
+    ),
+    'sort' => array(
+      'title' => t('Thread'),
+      'help' => t('Sort by the threaded order. This will keep child comments together with their parents.'),
+      'handler' => 'views_handler_sort_comment_thread',
+    ),
+  );
+
+  $data['comments']['nid'] = array(
+    'title' => t('Node'),
+    'help' => t('The node the comment is a reply to.'),
+    'relationship' => array(
+      'base' => 'node',
+      'base field' => 'nid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Node'),
+    ),
+  );
+
+  $data['comments']['uid'] = array(
+    'title' => t('User'),
+    'help' => t("The User ID of the comment's author."),
+    'relationship' => array(
+      'base' => 'users',
+      'base field' => 'uid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('User'),
+    ),
+  );
+
+  $data['comments']['pid'] = array(
+    'title' => t('Parent CID'),
+    'help' => t('The Comment ID of the parent comment.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+    'relationship' => array(
+      'title' => t('Parent comment'),
+      'help' => t('The parent comment.'),
+      'base' => 'comments',
+      'base field' => 'cid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Parent comment'),
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // node_comment_statistics table
+
+  // define the group
+  $data['node_comment_statistics']['table']['group']  = t('Node');
+
+  // joins
+  $data['node_comment_statistics']['table']['join'] = array(
+    //...to the node table
+    'node' => array(
+      'type' => 'INNER',
+      'left_field' => 'nid',
+      'field' => 'nid',
+     ),
+  );
+
+  // last_comment_timestamp
+  $data['node_comment_statistics']['last_comment_timestamp'] = array(
+    'title' => t('Last comment time'),
+    'help' => t('Date and time of when the last comment was posted.'),
+    'field' => array(
+      'handler' => 'views_handler_field_last_comment_timestamp',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // last_comment_name (author's name)
+  $data['node_comment_statistics']['last_comment_name'] = array(
+    'title' => t("Last comment author"),
+    'help' => t('The name of the author of the last posted comment.'),
+    'field' => array(
+      'handler' => 'views_handler_field_ncs_last_comment_name',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_ncs_last_comment_name',
+    ),
+  );
+
+  // comment_count
+  $data['node_comment_statistics']['comment_count'] = array(
+    'title' => t('Comment count'),
+    'help' => t('The number of comments a node has.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument',
+    ),
+  );
+
+  // last_comment_timestamp
+  $data['node_comment_statistics']['last_updated'] = array(
+    'title' => t('Updated/commented date'),
+    'help' => t('The most recent of last comment posted or node updated time.'),
+    'field' => array(
+      'handler' => 'views_handler_field_ncs_last_updated',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_ncs_last_updated',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_ncs_last_updated',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Use views_data_alter to add items to the node table that are
+ * relevant to comments.
+ */
+function comment_views_data_alter(&$data) {
+  // new comments
+  $data['node']['new_comments'] = array(
+    'title' => t('New comments'),
+    'help' => t('The number of new comments on the node.'),
+    'field' => array(
+      'handler' => 'views_handler_field_node_new_comments',
+    ),
+  );
+
+  $data['node']['comments_link'] = array(
+    'field' => array(
+      'title' => t('Add comment link'),
+      'help' => t('Display the standard add comment link used on regular nodes, which will only display if the viewing user has access to add a comment.'),
+      'handler' => 'views_handler_field_comment_node_link',
+    ),
+  );
+
+  // Comment status of the node
+  $data['node']['comment'] = array(
+    'title' => t('Comment status'),
+    'help' => t('Whether comments are enabled or disabled on the node.'),
+    'field' => array(
+      'handler' => 'views_handler_field_node_comment',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_comment',
+    ),
+  );
+
+  $data['node']['uid_touch'] = array(
+    'title' => t('User posted or commented'),
+    'help' => t('Display nodes only if a user posted the node or commented on the node.'),
+    'argument' => array(
+      'field' => 'uid',
+      'name table' => 'users',
+      'name field' => 'name',
+      'handler' => 'views_handler_argument_comment_user_uid',
+    ),
+    'filter' => array(
+      'field' => 'uid',
+      'name table' => 'users',
+      'name field' => 'name',
+      'handler' => 'views_handler_filter_comment_user_uid'
+    ),
+  );
+
+}
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function comment_views_plugins() {
+  return array(
+    'module' => 'views', // This just tells views our themes are in Views.
+    'row' => array(
+      'comment' => array(
+        'title' => t('Comment'),
+        'help' => t('Display the comment with standard comment view.'),
+        'handler' => 'views_plugin_row_comment_view',
+        'path' => drupal_get_path('module', 'views') . '/modules/comment', // not necessary for most modules
+        'theme' => 'views_view_row_comment',
+        'base' => array('comments'), // only works with 'comment' as base.
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-comment',
+      ),
+      'comment_rss' => array(
+        'title' => t('Comment'),
+        'help' => t('Display the comment as RSS.'),
+        'handler' => 'views_plugin_row_comment_rss',
+        'path' => drupal_get_path('module', 'views') . '/modules/comment', // not necessary for most modules
+        'theme' => 'views_view_row_rss',
+        'base' => array('comments'), // only works with 'comment' as base.
+        'type' => 'feed',
+        'help topic' => 'style-comment-rss',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function comment_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/comment',
+    ),
+    'handlers' => array(
+      'views_handler_field_comment' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_comment_username' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_comment_depth' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_comment_link' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_comment_link_edit' => array(
+        'parent' => 'views_handler_field_comment_link',
+      ),
+      'views_handler_field_comment_link_delete' => array(
+        'parent' => 'views_handler_field_comment_link',
+      ),
+      'views_handler_field_comment_link_reply' => array(
+        'parent' => 'views_handler_field_comment_link',
+      ),
+      'views_handler_field_comment_node_link' => array(
+       'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_ncs_last_comment_name' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_ncs_last_updated' => array(
+        'parent' => 'views_handler_field_date',
+      ),
+      'views_handler_field_node_new_comments' => array(
+        'parent' => 'views_handler_field_numeric',
+      ),
+      'views_handler_field_node_comment' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_last_comment_timestamp' => array(
+        'parent' => 'views_handler_field_date',
+      ),
+
+      // sort handlers
+      'views_handler_sort_comment_thread' => array(
+        'parent' => 'views_handler_sort',
+      ),
+      'views_handler_sort_ncs_last_comment_name' => array(
+        'parent' => 'views_handler_sort',
+      ),
+      'views_handler_sort_ncs_last_updated' => array(
+        'parent' => 'views_handler_sort_date',
+      ),
+
+      // filter handlers
+      'views_handler_filter_ncs_last_updated' => array(
+        'parent' => 'views_handler_filter_date',
+      ),
+      'views_handler_filter_node_comment' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_comment_user_uid' => array(
+        'parent' => 'views_handler_filter_user_name',
+      ),
+
+      // argument handlers
+      'views_handler_argument_comment_user_uid' => array(
+        'parent' => 'views_handler_argument',
+      ),
+    ),
+  );
+}
+
+/**
+ * Template helper for theme_views_view_row_comment
+ */
+function template_preprocess_views_view_row_comment(&$vars) {
+  $options = $vars['options'];
+  $view = &$vars['view'];
+  $plugin = &$view->style_plugin->row_plugin;
+  $comment = $plugin->comments[$vars['row']->cid];
+  $node = node_load($comment->nid);
+  // Put the view on the node so we can retrieve it in the preprocess.
+  $node->view = &$view;
+
+  $links = array();
+  if (!empty($options['links'])) {
+    $links = module_invoke_all('link', 'comment', $comment, 0);
+    drupal_alter('link', $links, $node);
+  }
+
+  $vars['comment'] = theme('comment_view', $comment, $node, $links);
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views_convert.inc
new file mode 100644
index 0000000..2c981d9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views_convert.inc
@@ -0,0 +1,131 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function comment_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'field':
+      switch ($field['tablename']) {
+        case 'comments':
+          switch ($field['field']) {
+            case 'subject':
+              if ($field['options'] = 'nolink') {
+                $view->set_item_option($display, 'field', $id, 'link_to_comment', FALSE);
+              }
+              break;
+            case 'cid':
+              $view->set_item_option($display, 'field', $id, 'link_to_comment', FALSE);
+              break;
+            case 'timestamp':
+              $handlers = array(
+                'views_handler_field_date_small' => 'small',
+                'views_handler_field_date' => 'medium',
+                'views_handler_field_date_large' => 'large',
+                'views_handler_field_date_custom' => 'custom',
+                'views_handler_field_since' => 'time ago',
+              );
+              $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+              if (!empty($field['options'])) {
+                $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+              }
+              break;
+            case 'add':
+              $view->set_item_option($display, 'field', $id, 'field', 'replyto_comment');
+              break;
+          }
+          break;
+        case 'node_comment_statistics':
+          switch ($field['field']) {
+            case 'last_comment_timestamp':
+              $handlers = array(
+                'views_handler_field_date_small' => 'small',
+                'views_handler_field_date' => 'medium',
+                'views_handler_field_date_large' => 'large',
+                'views_handler_field_date_custom' => 'custom',
+                'views_handler_field_since' => 'time ago',
+              );
+              $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+              if (!empty($field['options'])) {
+                $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+              }
+              break;
+            case 'last_changed':
+              $handlers = array(
+                'views_handler_field_date_small' => 'small',
+                'views_handler_field_date' => 'medium',
+                'views_handler_field_date_large' => 'large',
+                'views_handler_field_date_custom' => 'custom',
+                'views_handler_field_since' => 'time ago',
+              );
+              $item = $view->get_item($display, 'field', $id);
+              $item['date_format'] = $handlers[$field['handler']];
+              if (!empty($field['options'])) {
+                $item['custom_date_format'] = $field['options'];
+              }
+              $item['field'] = 'last_updated';
+              $view->set_item($display, 'field', $id, $item);
+              break;
+          }
+          break;
+      }
+      break;
+    case 'filter':
+      switch ($field['tablename']) {
+        case 'node_comment_statistics':
+          switch ($field['field']) {
+            case 'comment_count':
+              $view->set_item_option($display, 'filter', $id, 'operator', $field['operator']);
+              break;
+            case 'last_changed':
+              $field['field'] = 'last_updated';
+            case 'last_comment_timestamp':
+              $item = $view->get_item($display, 'filter', $id);
+              $item['operator'] = $field['operator'];
+              $item['value'] = array(
+                'type' => $field['value'] == 'now' ? 'offset' : 'date',
+                'value' => $field['value'],
+              );
+              if (!empty($field['options'])) {
+                $item['value']['value'] = intval($field['options']) .' seconds';
+              }
+              $item['field'] = $field['field'];
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+          }
+          break;
+      }
+      break;
+    case 'sort':
+      switch ($field['tablename']) {
+        case 'comments':
+          switch ($field['field']) {
+            case 'timestamp':
+              $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+              $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
+              break;
+          }
+          break;
+        case 'node_comment_statistics':
+          switch ($field['field']) {
+            case 'last_changed':
+              $view->set_item_option($display, 'sort', $id, 'field', 'last_updated');
+            case 'last_comment_timestamp':
+              $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+              $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
+              break;
+          }
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views_default.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views_default.inc
new file mode 100644
index 0000000..83860b0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment.views_default.inc
@@ -0,0 +1,356 @@
+<?php
+/**
+ * @file
+ * Contains default views on behalf of the comment module.
+ */
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function comment_views_default_views() {
+  $view = new view;
+  $view->name = 'comments_recent';
+  $view->description = 'Contains a block and a page to list recent comments; the block will automatically link to the page, which displays the comment body as well as a link to the node.';
+  $view->tag = 'default';
+  $view->base_table = 'comments';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('relationships', array(
+    'nid' => array(
+      'id' => 'nid',
+      'table' => 'comments',
+      'field' => 'nid',
+      'label' => 'Node',
+      'required' => FALSE,
+    ),
+  ));
+  $handler->override_option('fields', array(
+    'subject' => array(
+      'id' => 'subject',
+      'table' => 'comments',
+      'field' => 'subject',
+      'label' => '',
+      'link_to_comment' => 1,
+      'relationship' => 'none',
+    ),
+    'timestamp' => array(
+      'id' => 'timestamp',
+      'table' => 'comments',
+      'field' => 'timestamp',
+      'label' => '',
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'timestamp' => array(
+      'id' => 'timestamp',
+      'table' => 'comments',
+      'field' => 'timestamp',
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status_extra' => array(
+      'id' => 'status_extra',
+      'table' => 'node',
+      'field' => 'status_extra',
+      'operator' => '=',
+      'value' => '',
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'relationship' => 'nid',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access comments',
+  ));
+  $handler->override_option('title', 'Recent comments');
+  $handler->override_option('items_per_page', 5);
+  $handler->override_option('use_more', 1);
+  $handler->override_option('style_plugin', 'list');
+  $handler->override_option('style_options', array(
+    'type' => 'ul',
+  ));
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => 'Reply to',
+      'relationship' => 'nid',
+      'link_to_node' => 1,
+    ),
+    'timestamp' => array(
+      'id' => 'timestamp',
+      'table' => 'comments',
+      'field' => 'timestamp',
+      'label' => '',
+      'date_format' => 'time ago',
+      'custom_date_format' => '',
+      'relationship' => 'none',
+    ),
+    'subject' => array(
+      'id' => 'subject',
+      'table' => 'comments',
+      'field' => 'subject',
+      'label' => '',
+      'link_to_comment' => 1,
+      'relationship' => 'none',
+    ),
+    'comment' => array(
+      'id' => 'comment',
+      'table' => 'comments',
+      'field' => 'comment',
+      'label' => '',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('items_per_page', 25);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_options', array(
+    'inline' => array(
+      'title' => 'title',
+      'timestamp' => 'timestamp',
+    ),
+    'separator' => ' ',
+  ));
+  $handler->override_option('path', 'comments/recent');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler = $view->new_display('block', 'Block', 'block');
+  $handler->override_option('block_description', 'Recent comments view');
+  $views[$view->name] = $view;
+
+  $view = new view;
+  $view->name = 'tracker';
+  $view->description = 'Shows all new activity on system.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'type' => array(
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'label' => 'Type',
+    ),
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => 'Title',
+      'link_to_node' => TRUE,
+    ),
+    'name' => array(
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'label' => 'Author',
+      'link_to_user' => TRUE,
+    ),
+    'comment_count' => array(
+      'id' => 'comment_count',
+      'table' => 'node_comment_statistics',
+      'field' => 'comment_count',
+      'label' => 'Replies',
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+    ),
+    'last_comment_timestamp' => array(
+      'id' => 'last_comment_timestamp',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_comment_timestamp',
+      'label' => 'Last Post',
+      'date_format' => 'small',
+      'custom_date_format' => '',
+    ),
+    'timestamp' => array(
+      'id' => 'timestamp',
+      'table' => 'history_user',
+      'field' => 'timestamp',
+      'label' => '',
+      'comments' => 1,
+      'relationship' => 'none',
+      'link_to_node' => 0,
+      'comment' => 1,
+    ),
+    'new_comments' => array(
+      'id' => 'new_comments',
+      'table' => 'node',
+      'field' => 'new_comments',
+      'label' => '',
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => ' new',
+      'link_to_comment' => 1,
+      'no_empty' => 1,
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'last_comment_timestamp' => array(
+      'id' => 'last_comment_timestamp',
+      'table' => 'node_comment_statistics',
+      'field' => 'last_comment_timestamp',
+      'order' => 'ASC',
+      'granularity' => 'second',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'uid_touch' => array(
+      'id' => 'uid_touch',
+      'table' => 'node',
+      'field' => 'uid_touch',
+      'default_action' => 'ignore',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(
+        'count' => TRUE,
+        'override' => FALSE,
+        'items_per_page' => 25,
+      ),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => 'Recent posts for %1',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'relationship' => 'none',
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'album' => 0,
+        'artist' => 0,
+        'book' => 0,
+        'page' => 0,
+        'story' => 0,
+        'track' => 0,
+      ),
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status' => array(
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'operator' => '=',
+      'value' => '1',
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'status' => array(
+        'id' => 'status',
+        'table' => 'comments',
+        'field' => 'status',
+        'operator' => '=',
+        'value' => 0,
+        'group' => 0,
+        'exposed' => FALSE,
+        'expose' => array(
+          'operator' => FALSE,
+          'label' => '',
+        ),
+        'relationship' => 'none',
+      ),
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access content',
+  ));
+  $handler->override_option('title', 'Recent posts');
+  $handler->override_option('items_per_page', '25');
+  $handler->override_option('use_pager', TRUE);
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'override' => 1,
+    'order' => 'desc',
+    'columns' => array(
+      'type' => 'type',
+      'title' => 'title',
+      'name' => 'name',
+      'comment_count' => 'comment_count',
+      'last_comment_timestamp' => 'last_comment_timestamp',
+      'timestamp' => 'title',
+      'new_comments' => 'comment_count',
+    ),
+    'info' => array(
+      'type' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'title' => array(
+        'sortable' => 1,
+        'separator' => ' ',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'comment_count' => array(
+        'sortable' => 1,
+        'separator' => '<br />',
+      ),
+      'last_comment_timestamp' => array(
+        'sortable' => 1,
+        'separator' => ' ',
+      ),
+      'timestamp' => array(
+        'separator' => '',
+      ),
+      'new_comments' => array(
+        'separator' => '',
+      ),
+    ),
+    'default' => 'last_comment_timestamp',
+  ));
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'tracker');
+  $handler->override_option('menu', array(
+    'type' => 'normal',
+    'title' => 'Recent posts',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => NULL,
+    'weight' => NULL,
+  ));
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_argument_comment_user_uid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_argument_comment_user_uid.inc
new file mode 100644
index 0000000..edc2980
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_argument_comment_user_uid.inc
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * Argument handler to accept a user id to check for nodes that
+ * user posted or commented on.
+ */
+class views_handler_argument_comment_user_uid extends views_handler_argument {
+  function title() {
+    if (!$this->argument) {
+      $title = variable_get('anonymous', t('Anonymous'));
+    }
+    else {
+      $title = db_result(db_query("SELECT u.name FROM {users} u WHERE u.uid = %d", $this->argument));
+    }
+    if (empty($title)) {
+      return t('No user');
+    }
+
+    return check_plain($title);
+  }
+
+  function default_actions($which = NULL) {
+    // Disallow summary views on this argument.
+    if (!$which) {
+      $actions = parent::default_actions();
+      unset($actions['summary asc']);
+      unset($actions['summary desc']);
+      return $actions;
+    }
+
+    if ($which != 'summary asc' && $which != 'summary desc') {
+      return parent::default_actions($which);
+    }
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->query->add_where(0, "$this->table_alias.uid = %d OR ((SELECT COUNT(*) FROM {comments} c WHERE c.uid = %d AND c.nid = $this->table_alias.nid) > 0)", $this->argument, $this->argument);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment.inc
new file mode 100644
index 0000000..95edf0e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment.inc
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Field handler to allow linking to a comment
+ */
+class views_handler_field_comment extends views_handler_field {
+  /**
+   * Override init function to provide generic option to link to comment.
+   */
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if (!empty($this->options['link_to_comment'])) {
+      $this->additional_fields['cid'] = 'cid';
+      $this->additional_fields['nid'] = 'nid';
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_comment'] = array('default' => TRUE);
+    return $options;
+  }
+
+  /**
+   * Provide link-to-comment option
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_comment'] = array(
+      '#title' => t('Link this field to its comment'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['link_to_comment'],
+    );
+  }
+
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_comment']) && $data !== NULL && $data !== '') {
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = "node/". $values->{$this->aliases['nid']};
+      $this->options['alter']['fragment'] = "comment-" . $values->{$this->aliases['cid']};
+    }
+
+    return $data;
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_depth.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_depth.inc
new file mode 100644
index 0000000..e86cdda
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_depth.inc
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Field handler to display the depth of a comment
+ */
+class views_handler_field_comment_depth extends views_handler_field {
+  /**
+   * Work out the depth of this comment
+   */
+  function render($values) {
+    return count(explode('.', $values->comments_thread)) - 1;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link.inc
new file mode 100644
index 0000000..95a61e2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link.inc
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Base field handler to present a link.
+ */
+class views_handler_field_comment_link extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['cid'] = 'cid';
+    $this->additional_fields['nid'] = 'nid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['text'] = array('default' => '', 'translatable' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+    );
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
+    return l($text, "node/" . $values->{$this->aliases['nid']}, array('html' => TRUE, 'fragment' => "comment-" . $values->{$this->aliases['cid']}));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_delete.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_delete.inc
new file mode 100644
index 0000000..e5853cf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_delete.inc
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Field handler to present a link to delete a node.
+ */
+class views_handler_field_comment_link_delete extends views_handler_field_comment_link {
+  function render($values) {
+    //needs permission to administer comments in general
+    if (!user_access('administer comments')) {
+      return;
+    }
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
+    return l($text, "comment/delete/" . $values->{$this->aliases['cid']}, array('query' => drupal_get_destination()));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_edit.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_edit.inc
new file mode 100644
index 0000000..3a13b42
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_edit.inc
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Field handler to present a link node edit.
+ */
+class views_handler_field_comment_link_edit extends views_handler_field_comment_link {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = 'uid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['destination'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['destination'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use destination'),
+      '#description' => t('Add destination to the link'),
+      '#default_value' => $this->options['destination'],
+    );
+  }
+
+  function render($values) {
+    // ensure user has access to edit this comment.
+    $comment = new stdClass();
+    $comment->cid = $values->{$this->aliases['cid']};
+    $comment->uid = $values->{$this->aliases['uid']};
+    if (!comment_access('edit', $comment)) {
+      return;
+    }
+
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
+    if (!$this->options['destination']) {
+      return l($text, "comment/edit/" . $values->{$this->aliases['cid']});
+    }
+    else {
+      return l($text, "comment/edit/" . $values->{$this->aliases['cid']}, array('query' => drupal_get_destination()));
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_reply.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_reply.inc
new file mode 100644
index 0000000..c7d9d7a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_link_reply.inc
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * Field handler to present a link to delete a node.
+ */
+class views_handler_field_comment_link_reply extends views_handler_field_comment_link {
+  function render($values) {
+    //check for permission to reply to comments
+    if (!user_access('post comments')) {
+      return;
+    }
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('reply');
+    return l($text, "comment/reply/" . $values->{$this->aliases['nid']} . '/' . $values->{$this->aliases['cid']});
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_node_link.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_node_link.inc
new file mode 100644
index 0000000..f7ee168
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_node_link.inc
@@ -0,0 +1,59 @@
+<?php
+/**
+* Handler for showing comment module's node link.
+ */
+class views_handler_field_comment_node_link extends views_handler_field {
+  function construct() {
+    parent::construct();
+
+    // Add the node fields that comment_link will need..
+    $this->additional_fields['nid'] = array(
+      'field' => 'nid',
+    );
+    $this->additional_fields['type'] = array(
+      'field' => 'type',
+    );
+    $this->additional_fields['comment'] = array(
+      'field' => 'comment',
+    );
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['teaser'] = array('default' => 0);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['teaser'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show teaser-style link'),
+      '#default_value' => $this->options['teaser'],
+      '#description' => t('Show the comment link in the form used on standard node teasers, rather than the full node form.'),
+    );
+
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    // Build fake $node.
+    $node = new stdClass();
+    $node->nid      = $values->{$this->aliases['nid']};
+    $node->type     = $values->{$this->aliases['type']};
+    $node->comment  = $values->{$this->aliases['comment']};
+
+    // Call comment.module's hook_link: comment_link($type, $node = NULL, $teaser = FALSE)
+    $links = comment_link('node', $node, $this->options['teaser']);
+    // question: should we run these through:    drupal_alter('link', $links, $node);
+    // might this have unexpected consequences if these hooks expect items in $node that we don't have?
+
+    return !empty($links) ? theme('links', $links, array('class' => 'links inline')) : '';
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_username.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_username.inc
new file mode 100644
index 0000000..7b0a92f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_comment_username.inc
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Field handler to allow linking to a user account or homepage
+ */
+class views_handler_field_comment_username extends views_handler_field {
+  /**
+   * Override init function to add uid and homepage fields.
+   */
+  function init(&$view, $data) {
+    parent::init($view, $data);
+    $this->additional_fields['uid'] = 'uid';
+    $this->additional_fields['homepage'] = 'homepage';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_user'] = array('default' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_user'] = array(
+      '#title' => t("Link this field to its user or an author's homepage"),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['link_to_user'],
+    );
+  }
+
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_user'])) {
+      $account->uid = $values->{$this->aliases['uid']};
+      $account->name = $values->{$this->field_alias};
+      $account->homepage = $values->{$this->aliases['homepage']};
+
+      return theme('username', $account);
+    }
+    else {
+      return $data;
+    }
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_last_comment_timestamp.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_last_comment_timestamp.inc
new file mode 100644
index 0000000..93340a5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_last_comment_timestamp.inc
@@ -0,0 +1,17 @@
+<?php
+
+class views_handler_field_last_comment_timestamp extends views_handler_field_date {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['comment_count'] = 'comment_count';
+  }
+
+  function render($values) {
+    if (empty($this->options['empty_zero']) || $values->{$this->aliases['comment_count']}) {
+      return parent::render($values);
+    }
+    else {
+      return NULL;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_ncs_last_comment_name.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_ncs_last_comment_name.inc
new file mode 100644
index 0000000..f9c892b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_ncs_last_comment_name.inc
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Field handler to present the name of the last comment poster
+ */
+class views_handler_field_ncs_last_comment_name extends views_handler_field {
+  function query() {
+    // last_comment_name only contains data if the user is anonymous. So we
+    // have to join in a specially related user table.
+    $this->ensure_my_table();
+    // join 'users' to this table via vid
+    $join = new views_join();
+    $join->construct('users', $this->table_alias, 'last_comment_uid', 'uid');
+    $join->extra = array(array('field' => 'uid', 'operator' => '!=', 'value' => '0'));
+
+    // ncs_user alias so this can work with the sort handler, below.
+//    $this->user_table = $this->query->add_relationship(NULL, $join, 'users', $this->relationship);
+    $this->user_table = $this->query->ensure_table('ncs_users', $this->relationship, $join);
+
+    $this->field_alias = $this->query->add_field(NULL, "COALESCE($this->user_table.name, $this->table_alias.$this->field)", $this->table_alias . '_' . $this->field);
+
+    $this->user_field = $this->query->add_field($this->user_table, 'name');
+    $this->uid = $this->query->add_field($this->table_alias, 'last_comment_uid');
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['link_to_user'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  function render($values) {
+    if (!empty($this->options['link_to_user'])) {
+      $account = new stdClass();
+      $account->name = $values->{$this->field_alias};
+      $account->uid = $values->{$this->uid};
+      return theme('username', $account);
+    }
+    else {
+      return check_plain($values->{$this->field_alias});
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_ncs_last_updated.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_ncs_last_updated.inc
new file mode 100644
index 0000000..6c3e139
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_ncs_last_updated.inc
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Field handler to display the newer of last comment / node updated
+ */
+class views_handler_field_ncs_last_updated extends views_handler_field_date {
+  function query() {
+    $this->ensure_my_table();
+    $this->node_table = $this->query->ensure_table('node', $this->relationship);
+    $this->field_alias = $this->query->add_field(NULL, "GREATEST(" . $this->node_table . ".changed, " . $this->table_alias . ".last_comment_timestamp)", $this->table_alias . '_' . $this->field);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_node_comment.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_node_comment.inc
new file mode 100644
index 0000000..4cf3430
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_node_comment.inc
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * Display node comment status
+ */
+class views_handler_field_node_comment extends views_handler_field {
+  function render($values) {
+    switch ($values->{$this->field_alias}) {
+      case COMMENT_NODE_DISABLED:
+      default:
+        return t('Disabled');
+      case COMMENT_NODE_READ_ONLY:
+        return t('Read only');
+      case COMMENT_NODE_READ_WRITE:
+        return t('Read/Write');
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_node_new_comments.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_node_new_comments.inc
new file mode 100644
index 0000000..f724c12
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_field_node_new_comments.inc
@@ -0,0 +1,100 @@
+<?php
+
+/**
+ * Field handler to display the number of new comments
+ */
+class views_handler_field_node_new_comments extends views_handler_field_numeric {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    
+    // translate an older setting:
+    if (!empty($options['no_empty'])) {
+      $this->options['hide_empty'] = TRUE;
+      unset($this->options['no_empty']);
+    }
+  }
+
+  function construct() {
+    parent::construct();
+    $this->additional_fields['nid'] = 'nid';
+    $this->additional_fields['type'] = 'type';
+    $this->additional_fields['comment_count'] = array('table' => 'node_comment_statistics', 'field' => 'comment_count');
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['link_to_comment'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_comment'] = array(
+      '#title' => t('Link this field to new comments'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['link_to_comment'],
+    );
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+    $this->field_alias = $this->table . '_' . $this->field;
+  }
+
+  function pre_render(&$values) {
+    global $user;
+    if (!$user->uid || empty($values)) {
+      return;
+    }
+
+    $nids = array();
+    $ids = array();
+    foreach ($values as $id => $result) {
+      $nids[] = $result->{$this->aliases['nid']};
+      $values[$id]->{$this->field_alias} = 0;
+      // Create a reference so we can find this record in the values again.
+      if (empty($ids[$result->{$this->aliases['nid']}])) {
+        $ids[$result->{$this->aliases['nid']}] = array();
+      }
+      $ids[$result->{$this->aliases['nid']}][] = $id;
+    }
+
+    if ($nids) {
+      $result = db_query("SELECT n.nid, COUNT(c.cid) as num_comments FROM {node} n INNER JOIN {comments} c ON n.nid = c.nid LEFT JOIN {history} h ON h.nid = n.nid AND h.uid = %d WHERE n.nid IN (" . implode(', ', $nids) . ") AND c.timestamp > GREATEST(COALESCE(h.timestamp, %d), %d) AND c.status = %d GROUP BY n.nid  ", $user->uid, NODE_NEW_LIMIT, NODE_NEW_LIMIT, COMMENT_PUBLISHED);
+
+      while ($node = db_fetch_object($result)) {
+        foreach ($ids[$node->nid] as $id) {
+          $values[$id]->{$this->field_alias} = $node->num_comments;
+        }
+      }
+
+    }
+  }
+
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_comment']) && $data !== NULL && $data !== '') {
+      $node = new stdClass();
+      $node->nid = $values->{$this->aliases['nid']};
+      $node->type = $values->{$this->aliases['type']};
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = 'node/' . $node->nid;
+      $this->options['alter']['query'] = comment_new_page_count($values->{$this->aliases['comment_count']}, $values->{$this->field_alias}, $node);
+      $this->options['alter']['fragment'] = 'new';
+    }
+
+    return $data;
+  }
+
+  function render($values) {
+    if (!empty($values->{$this->field_alias})) {
+      return $this->render_link(parent::render($values), $values);
+    }
+    else {
+      $this->options['alter']['make_link'] = FALSE;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_comment_user_uid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_comment_user_uid.inc
new file mode 100644
index 0000000..0330a00
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_comment_user_uid.inc
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * Filter handler to accept a user id to check for nodes that user posted or
+ * commented on.
+ */
+class views_handler_filter_comment_user_uid extends views_handler_filter_user_name {
+  function query() {
+    $this->ensure_my_table();
+    $replace = array_fill(0, sizeof($this->value), '%d');
+    $condition = $this->operator . ' (' . implode(", ", $replace) . ')';
+
+    // We include the WHERE condition twice in the query, so we need two
+    // copies of these argument values.
+    $args = array_values($this->value);
+    $args = array_merge($args, $args);
+
+    $this->query->add_where($this->options['group'], "$this->table_alias.uid " . $condition . " OR
+      ((SELECT COUNT(*) FROM {comments} c WHERE c.uid " . $condition . " AND c.nid = $this->table_alias.nid) > 0)",
+      $args);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_ncs_last_updated.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_ncs_last_updated.inc
new file mode 100644
index 0000000..f931fe9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_ncs_last_updated.inc
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Filter handler for the newer of last comment / node updated
+ */
+class views_handler_filter_ncs_last_updated extends views_handler_filter_date {
+  function query() {
+    $this->ensure_my_table();
+    $this->node_table = $this->query->ensure_table('node', $this->relationship);
+
+    $field = "GREATEST(" . $this->node_table . ".changed, " . $this->table_alias . ".last_comment_timestamp)";
+
+    $info = $this->operators();
+    if (!empty($info[$this->operator]['method'])) {
+      $this->{$info[$this->operator]['method']}($field);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_node_comment.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_node_comment.inc
new file mode 100644
index 0000000..34a70a3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_filter_node_comment.inc
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * Filter based on comment node status
+ */
+class views_handler_filter_node_comment extends views_handler_filter_in_operator {
+  function get_value_options() {
+    $this->value_options = array(
+      COMMENT_NODE_DISABLED => t('Disabled'),
+      COMMENT_NODE_READ_ONLY => t('Read only'),
+      COMMENT_NODE_READ_WRITE => t('Read/Write'),
+    );
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_comment_thread.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_comment_thread.inc
new file mode 100644
index 0000000..e529b2a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_comment_thread.inc
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Sort handler for ordering by thread
+ */
+class views_handler_sort_comment_thread extends views_handler_sort {
+  function query() {
+    $this->ensure_my_table();
+
+    //Read comment_render() in comment.module for an explanation of the
+    //thinking behind this sort.
+    if ($this->options['order'] == 'DESC') {
+      $this->query->add_orderby($this->table_alias, $this->real_field, $this->options['order']);
+    }
+    else {
+      $alias = $this->table_alias . '_' . $this->real_field . 'asc';
+      //@todo is this secure?
+      $this->query->add_orderby(NULL, "SUBSTRING({$this->table_alias}.{$this->real_field}, 1, (LENGTH({$this->table_alias}.{$this->real_field}) - 1))", $this->options['order'], $alias);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc
new file mode 100644
index 0000000..397bb6c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Sort handler to sort by last comment name which might be in 2 different
+ * fields
+ */
+class views_handler_sort_ncs_last_comment_name extends views_handler_sort {
+  function query() {
+    $this->ensure_my_table();
+    $join = new views_join();
+    $join->construct('users', $this->table_alias, 'last_comment_uid', 'uid');
+
+    // @todo this might be safer if we had an ensure_relationship rather than guessing
+    // the table alias. Though if we did that we'd be guessing the relationship name
+    // so that doesn't matter that much.
+//    $this->user_table = $this->query->add_relationship(NULL, $join, 'users', $this->relationship);
+    $this->user_table = $this->query->ensure_table('ncs_users', $this->relationship, $join);
+    $this->user_field = $this->query->add_field($this->user_table, 'name');
+
+    // Add the field.
+    $this->query->add_orderby(NULL, "LOWER(COALESCE($this->user_table.name, $this->table_alias.$this->field))", $this->options['order'], $this->table_alias . '_' . $this->field);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_ncs_last_updated.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_ncs_last_updated.inc
new file mode 100644
index 0000000..fd788ec
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_handler_sort_ncs_last_updated.inc
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Sort handler for the newer of last comment / node updated
+ */
+class views_handler_sort_ncs_last_updated extends views_handler_sort_date {
+  function query() {
+    $this->ensure_my_table();
+    $this->node_table = $this->query->ensure_table('node', $this->relationship);
+    $this->field_alias = $this->query->add_orderby(NULL, "GREATEST(" . $this->node_table . ".changed, " . $this->table_alias . ".last_comment_timestamp)", $this->options['order'], $this->table_alias . '_' . $this->field);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_plugin_row_comment_rss.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_plugin_row_comment_rss.inc
new file mode 100644
index 0000000..58ce92a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_plugin_row_comment_rss.inc
@@ -0,0 +1,41 @@
+<?php
+/**
+ * @file
+ * Contains the comment RSS row style plugin.
+ */
+
+/**
+ * Plugin which formats the comments as RSS items.
+ */
+class views_plugin_row_comment_rss extends views_plugin_row {
+
+  function render($row) {
+    global $base_url;
+
+    // Load the specified comment:
+    $comment = _comment_load($row->cid);
+
+    $item = new stdClass();
+    $item->title = $comment->subject;
+    $item->link = url('node/' . $comment->nid, array('absolute' => TRUE, 'fragment' => 'comment-' . $comment->cid));
+    $item->description = check_markup($comment->comment, $comment->format, FALSE);
+    $item->elements = array(
+      array('key' => 'pubDate', 'value' => gmdate('r', $comment->timestamp)),
+      array('key' => 'dc:creator', 'value' => $comment->name),
+      array(
+        'key' => 'guid',
+        'value' => 'comment ' .  $row->cid . ' at ' . $base_url,
+        'attributes' => array('isPermaLink' => 'false'),
+        'namespace' => array('xmlns:dc' => 'http://purl.org/dc/elements/1.1/'),
+      ),
+    );
+
+    foreach ($item->elements as $element) {
+      if (isset($element['namespace'])) {
+        $this->view->style_plugin->namespaces = array_merge($this->view->style_plugin->namespaces, $element['namespace']);
+      }
+    }
+
+    return theme($this->theme_functions(), $this->view, $this->options, $item);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_plugin_row_comment_view.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_plugin_row_comment_view.inc
new file mode 100644
index 0000000..f3f58dc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/comment/views_plugin_row_comment_view.inc
@@ -0,0 +1,49 @@
+<?php
+/**
+ * @file
+ * Contains the node RSS row style plugin.
+ */
+
+/**
+ * Plugin which performs a comment_view on the resulting object.
+ */
+class views_plugin_row_comment_view extends views_plugin_row {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['links'] = array('default' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['links'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display links'),
+      '#default_value' => $this->options['links'],
+    );
+  }
+
+  function pre_render($result) {
+    $cids = array();
+    $this->comments = array();
+
+    foreach ($result as $row) {
+      $cids[] = $row->cid;
+    }
+
+    if (count($cids) > 1) {
+      $placeholder = " IN (" . implode(', ', array_fill(0, sizeof($cids), '%d')) . ")";
+    }
+    else {
+      $placeholder = " = %d";
+    }
+
+    $cresult = db_query("SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.picture, u.data, c.thread, c.status FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.cid $placeholder", $cids);
+    while ($comment = db_fetch_object($cresult)) {
+      $comment = drupal_unpack($comment);
+      $comment->name = $comment->uid ? $comment->registered_name : $comment->name;
+      $comment->depth = count(explode('.', $comment->thread)) - 1;
+      $this->comments[$comment->cid] = $comment;
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/contact.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/contact.views.inc
new file mode 100644
index 0000000..c3c69f3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/contact.views.inc
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for contact.module
+ */
+
+function contact_views_data() {
+  $data['users']['contact'] = array(
+    'field' => array(
+      'title' => t('Link to contact page'),
+      'help' => t('Provide a simple link to the user contact page.'),
+      'handler' => 'views_handler_field_contact_link',
+    ),
+  );
+  return $data;
+}
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function contact_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/contact',
+    ),
+    'handlers' => array(
+      'views_handler_field_contact_link' => array(
+        'parent' => 'views_handler_field_user_link',
+      ),
+    ),
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/contact/views_handler_field_contact_link.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/contact/views_handler_field_contact_link.inc
new file mode 100644
index 0000000..ff23cd4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/contact/views_handler_field_contact_link.inc
@@ -0,0 +1,71 @@
+<?php
+/**
+ * A field that links to the user contact page, if access is permitted.
+ */
+class views_handler_field_contact_link extends views_handler_field_user_link {
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_display'] = array('default' => 'link', 'translatable' => FALSE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_display'] = array(
+      '#title' => t('Type of link'),
+      '#default_value' => $this->options['link_display'],
+      '#type' => 'select',
+      '#options' => array(
+        'link' => t('Link'),
+        'icon' => t('Icon'),
+      ),
+    );
+    $form['text']['#title'] = t('Link label');
+    $form['text']['#required'] = TRUE;
+    $form['text']['#default_value'] = empty($this->options['text']) ? t('contact') : $this->options['text'];
+  }
+
+  // An example of field level access control.
+  // We must override the access method in the parent class, as that requires
+  // the 'access user profiles' permission, which the contact form does not.
+  function access() {
+    global $user;
+
+    // Only registered users can view other registered user's contact page.
+    if (empty($user->uid)) {
+      return FALSE;
+    }
+
+    return TRUE;
+  }
+
+  function render($values) {
+    global $user;
+    $uid = $values->{$this->aliases['uid']};
+
+    if (empty($uid)) {
+      return;
+    }
+
+    $account = user_load($uid);
+    if (empty($account)) {
+      return;
+    }
+
+    // Check access when we pull up the user account so we know
+    // if the user has made the contact page available.
+    $menu_item = menu_get_item("user/$uid/contact");
+    if (!$menu_item['access'] || empty($account->contact)) {
+      return;
+    }
+
+    if ($this->options['link_display'] == 'icon') {
+      return l(theme('image', 'misc/forum-new.png'), 'user/'. $account->uid .'/contact', array('html' => TRUE, 'attributes' => array('title' => t('Contact %user', array('%user' => $account->name)))));
+    }
+    else {
+      return l($this->options['text'], 'user/'. $account->uid .'/contact', array('attributes' => array('title' => t('Contact %user', array('%user' => $account->name)))));
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/filter.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/filter.views.inc
new file mode 100644
index 0000000..abfb2d1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/filter.views.inc
@@ -0,0 +1,54 @@
+<?php
+/**
+ * @file
+ * Provide basic views data for filter.module.
+ */
+
+/**
+ * @defgroup views_filter_module filter.module handlers
+ *
+ * Only includes the table 'filter_formats'. 
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function filter_views_data() {
+  // ----------------------------------------------------------------------
+  // filter_formats table
+  
+  // Have not defined $data['filter_formats']['table']['group'] since
+  // no fields are defined here yet.
+  $data['filter_formats']['table']['join'] = array(
+    'node_revisions' => array(
+      'left_field' => 'format',
+      'field' => 'format',
+    ),
+    'node' => array(
+      'left_table' => 'node_revisions',
+      'left_field' => 'format',
+      'field' => 'format',
+    ),
+  );
+
+  return $data;
+}
+
+function filter_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/filter',
+    ),
+    'handlers' => array(
+      // field handlers
+      'views_handler_field_filter_format_name' => array(
+        'parent' => 'views_handler_field',
+      ),
+    ),
+  );
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/filter/views_handler_field_filter_format_name.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/filter/views_handler_field_filter_format_name.inc
new file mode 100644
index 0000000..5e075e0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/filter/views_handler_field_filter_format_name.inc
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Field handler to output the name of an input format.
+ */
+class views_handler_field_filter_format_name extends views_handler_field {
+  function construct() {
+    parent::construct();
+    // Be explicit about the table we are using.
+    $this->additional_fields['name'] = array('table' => 'filter_formats', 'field' => 'name');
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $format_name = $values->{$this->aliases['name']};
+    if (!$format_name) {
+      // Default or invalid input format.
+      // filter_formats() will reliably return the default format even if the
+      // current user is unprivileged.
+      $format = filter_formats(variable_get('filter_default_format', 1));
+      return check_plain($format->name);
+    }
+    return check_plain($format_name);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale.views.inc
new file mode 100644
index 0000000..264ffa4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale.views.inc
@@ -0,0 +1,246 @@
+<?php
+
+/**
+ * @file
+ *
+ * Provides views data and handlers for locale.module.
+ */
+
+/**
+ * @defgroup views_locale_module locale.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data().
+ */
+function locale_views_data() {
+  // Basic table information.
+
+  // Define the base group of this table.
+  $data['locales_source']['table']['group']  = t('Locale source');
+
+  // Advertise this table as a possible base table.
+  $data['locales_source']['table']['base'] = array(
+    'field' => 'lid',
+    'title' => t('Locale source'),
+    'help' => t('A source string for translation, in English or the default site language.'),
+  );
+
+  // lid
+  $data['locales_source']['lid'] = array(
+    'title' => t('LID'),
+    'help' => t('The ID of the source string.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'numeric' => TRUE,
+      'validate type' => 'lid',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // location
+  $data['locales_source']['location'] = array(
+    'group' => t('Locale source'),
+    'title' => t('Location'),
+    'help' => t('A description of the location or context of the string.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // Group field
+  $data['locales_source']['textgroup'] = array(
+    'group' => t('Locale source'),
+    'title' => t('Group'),
+    'help' => t('The group the translation is in.'),
+    'field' => array(
+      'handler' => 'views_handler_field_locale_group',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_locale_group',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_locale_group',
+    ),
+  );
+
+  // Source field
+  $data['locales_source']['source'] = array(
+    'group' => t('Locale source'),
+    'title' => t('Source'),
+    'help' => t('The full original string.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // Version field
+  $data['locales_source']['version'] = array(
+    'group' => t('Locale source'),
+    'title' => t('Version'),
+    'help' => t('The version of Drupal core that this string is for.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_locale_version',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  $data['locales_source']['edit_lid'] = array(
+    'group' => t('Locale source'),
+    'field' => array(
+      'title' => t('Edit link'),
+      'help' => t('Provide a simple link to edit the translations.'),
+      'handler' => 'views_handler_field_locale_link_edit',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // Locales target table
+
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['locales_target']['table']['group']  = t('Locale target');
+
+  // Join information
+  $data['locales_target']['table']['join'] = array(
+    'locales_source' => array(
+      'left_field' => 'lid',
+      'field' => 'lid',
+    ),
+  );
+
+  // Translation field
+  $data['locales_target']['translation'] = array(
+    'group' => t('Locale target'),
+    'title' => t('Translation'),
+    'help' => t('The full translation string.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // Language field
+  $data['locales_target']['language'] = array(
+    'group' => t('Locale target'),
+    'title' => t('Language'),
+    'help' => t('The language this translation is in.'),
+    'field' => array(
+      'handler' => 'views_handler_field_locale_language',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_locale_language',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_locale_language',
+    ),
+  );
+
+  $data['locales_target']['plid'] = array(
+    'group' => t('Locale target'),
+    'title' => t('Singular LID'),
+    'help' => t('The ID of the parent translation.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+  );
+
+  // Plural
+  $data['locales_target']['plural'] = array(
+    'group' => t('Locale target'),
+    'title' => t('Plural'),
+    'help' => t('Whether or not the translation is plural.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Plural'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function locale_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/locale',
+    ),
+    'handlers' => array(
+      // Field handlers.
+      'views_handler_field_locale_group' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_locale_language' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_locale_link_edit' => array(
+        'parent' => 'views_handler_field',
+      ),
+      // Argument handlers.
+      'views_handler_argument_locale_group' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_locale_language' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      // Filters.
+      'views_handler_filter_locale_group' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_locale_language' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_locale_version' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+    ),
+  );
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_argument_locale_group.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_argument_locale_group.inc
new file mode 100644
index 0000000..199c7d1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_argument_locale_group.inc
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * Argument handler to accept a language.
+ */
+class views_handler_argument_locale_group extends views_handler_argument {
+  function construct() {
+    parent::construct('group');
+  }
+
+  /**
+   * Override the behavior of summary_name(). Get the user friendly version
+   * of the group.
+   */
+  function summary_name($data) {
+    return $this->locale_group($data->{$this->name_alias});
+  }
+
+  /**
+   * Override the behavior of title(). Get the user friendly version
+   * of the language.
+   */
+  function title() {
+    return $this->locale_group($this->argument);
+  }
+
+  function locale_group($group) {
+    $groups = module_invoke_all('locale', 'groups');
+    // Sort the list.
+    asort($groups);
+    return isset($groups[$group]) ? $groups[$group] : t('Unknown group');
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_argument_locale_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_argument_locale_language.inc
new file mode 100644
index 0000000..00fafdc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_argument_locale_language.inc
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * Argument handler to accept a language.
+ */
+class views_handler_argument_locale_language extends views_handler_argument {
+  function construct() {
+    parent::construct('language');
+  }
+
+  /**
+   * Override the behavior of summary_name(). Get the user friendly version
+   * of the language.
+   */
+  function summary_name($data) {
+    return $this->locale_language($data->{$this->name_alias});
+  }
+
+  /**
+   * Override the behavior of title(). Get the user friendly version
+   * of the language.
+   */
+  function title() {
+    return $this->locale_language($this->argument);
+  }
+
+  function locale_language($langcode) {
+    $languages = locale_language_list();
+    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_group.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_group.inc
new file mode 100644
index 0000000..a39ac8d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_group.inc
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * Field handler to translate a group into its readable form.
+ */
+class views_handler_field_locale_group extends views_handler_field {
+  function render($values) {
+    $groups = module_invoke_all('locale', 'groups');
+    // Sort the list.
+    asort($groups);
+    return isset($groups[$values->{$this->field_alias}]) ? $groups[$values->{$this->field_alias}] : '';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_language.inc
new file mode 100644
index 0000000..93ab613
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_language.inc
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Field handler to translate a language into its readable form.
+ */
+class views_handler_field_locale_language extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['native_language'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['native_language'] = array(
+      '#title' => t('Native language'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['native_language'],
+      '#description' => t('If enabled, the native name of the language will be displayed'),
+    );
+  }
+
+  function render($values) {
+    $languages = locale_language_list(empty($this->$options['native_language']) ? 'name' : 'native');
+    return isset($languages[$values->{$this->field_alias}]) ? $languages[$values->{$this->field_alias}] : '';
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_link_edit.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_link_edit.inc
new file mode 100644
index 0000000..ab50844
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_field_locale_link_edit.inc
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * Field handler to present a link to edit a translation.
+ */
+class views_handler_field_locale_link_edit extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['lid'] = 'lid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['text'] = array('default' => '', 'translatable' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+    );
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    // Ensure user has access to edit translations.
+    if (!user_access('translate interface')) {
+      return;
+    }
+
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
+    return l($text, 'admin/build/translate/edit/' . $values->{$this->aliases['lid']}, array('query' => drupal_get_destination()));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_group.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_group.inc
new file mode 100644
index 0000000..d46426f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_group.inc
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Filter by locale group.
+ */
+class views_handler_filter_locale_group extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Group');
+      $groups = module_invoke_all('locale', 'groups');
+      // Sort the list.
+      asort($groups);
+      $this->value_options = $groups;
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_language.inc
new file mode 100644
index 0000000..fe49688
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_language.inc
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * Filter by language.
+ */
+class views_handler_filter_locale_language extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Language');
+      $languages = array('***CURRENT_LANGUAGE***' => t("Current user's language"), '***DEFAULT_LANGUAGE***' => t("Default site language"), '***NO_LANGUAGE***' => t('No language'));
+      $languages = array_merge($languages, locale_language_list());
+      $this->value_options = $languages;
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_version.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_version.inc
new file mode 100644
index 0000000..5598648
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/locale/views_handler_filter_locale_version.inc
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Filter by version.
+ */
+class views_handler_filter_locale_version extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Version');
+      // Enable filtering by the current installed Drupal version.
+      $versions = array('***CURRENT_VERSION***' => t('Current installed version'));
+      $result = db_query('SELECT DISTINCT(version) FROM {locales_source} ORDER BY  version');
+      while ($row = db_fetch_array($result)) {
+        if (!empty($row['version'])) {
+          $versions[$row['version']] = $row['version'];
+        }
+      }
+      $this->value_options = $versions;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node.views.inc
new file mode 100644
index 0000000..9499741
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node.views.inc
@@ -0,0 +1,886 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for node.module
+ */
+
+/**
+ * @defgroup views_node_module node.module handlers
+ *
+ * Includes the tables 'node', 'node_revisions' and 'history'.
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function node_views_data() {
+  // ----------------------------------------------------------------
+  // node table -- basic table information.
+
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['node']['table']['group']  = t('Node');
+
+  // Advertise this table as a possible base table
+  $data['node']['table']['base'] = array(
+    'field' => 'nid',
+    'title' => t('Node'),
+    'help' => t("Nodes are a Drupal site's primary content."),
+    'weight' => -10,
+  );
+
+  // For other base tables, explain how we join
+  $data['node']['table']['join'] = array(
+    // this explains how the 'node' table (named in the line above)
+    // links toward the node_revisions table.
+    'node_revisions' => array(
+      'handler' => 'views_join', // this is actually optional
+      'left_table' => 'node_revisions', // Because this is a direct link it could be left out.
+      'left_field' => 'nid',
+      'field' => 'nid',
+      // also supported:
+      // 'type' => 'INNER',
+      // 'extra' => array(array('field' => 'fieldname', 'value' => 'value', 'operator' => '='))
+      //   Unfortunately, you can't specify other tables here, but you can construct
+      //   alternative joins in the handlers that can do that.
+      // 'table' => 'the actual name of this table in the database',
+     ),
+  );
+
+  // ----------------------------------------------------------------
+  // node table -- fields
+
+  // nid
+  $data['node']['nid'] = array(
+    'title' => t('Nid'),
+    'help' => t('The node ID of the node.'), // The help that appears on the UI,
+    // Information for displaying the nid
+    'field' => array(
+      'handler' => 'views_handler_field_node',
+      'click sortable' => TRUE,
+    ),
+    // Information for accepting a nid as an argument
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_nid',
+      'parent' => 'views_handler_argument_numeric', // make sure parent is included
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'nid',
+    ),
+    // Information for accepting a nid as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    // Information for sorting on a nid.
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // title
+  // This definition has more items in it than it needs to as an example.
+  $data['node']['title'] = array(
+    'title' => t('Title'), // The item it appears as on the UI,
+    'help' => t('The title of the node.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'field' => 'title', // the real field. This could be left out since it is the same.
+      'group' => t('Node'), // The group it appears in on the UI. Could be left out.
+      'handler' => 'views_handler_field_node',
+      'click sortable' => TRUE,
+      'link_to_node default' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting a title as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // created field
+  $data['node']['created'] = array(
+    'title' => t('Post date'), // The item it appears as on the UI,
+    'help' => t('The date the node was posted.'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // changed field
+  $data['node']['changed'] = array(
+    'title' => t('Updated date'), // The item it appears as on the UI,
+    'help' => t('The date the node was last updated.'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // Node type
+  $data['node']['type'] = array(
+    'title' => t('Type'), // The item it appears as on the UI,
+    'help' => t('The type of a node (for example, "blog entry", "forum post", "story", etc).'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_node_type',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_type',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_type',
+    ),
+  );
+
+  // published status
+  $data['node']['status'] = array(
+    'title' => t('Published'),
+    'help' => t('Whether or not the node is published.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+      'output formats' => array(
+        'published-notpublished' => array(t('Published'), t('Not published')),
+      ),
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Published'),
+      'type' => 'yes-no',
+      'use equal' => TRUE, // Use status = 1 instead of status <> 0 in WHERE statment
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // published status + extra
+  $data['node']['status_extra'] = array(
+    'title' => t('Published or admin'),
+    'help' => t('Filters out unpublished nodes if the current user cannot view them.'),
+    'filter' => array(
+      'field' => 'status',
+      'handler' => 'views_handler_filter_node_status',
+      'label' => t('Published or admin'),
+    ),
+  );
+
+  // promote status
+  $data['node']['promote'] = array(
+    'title' => t('Promoted to front page'),
+    'help' => t('Whether or not the node is promoted to the front page.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Promoted to front page'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // moderate
+  $data['node']['moderate'] = array(
+    'title' => t('In moderation'), // The item it appears as on the UI,
+    'help' => t('Whether or not the node is currently in the moderation queue.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('In the moderation queue'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // sticky
+  $data['node']['sticky'] = array(
+    'title' => t('Sticky'), // The item it appears as on the UI,
+    'help' => t('Whether or not the node is sticky.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+      'output formats' => array(
+        'sticky' => array(t('Sticky'), ''),
+      ),
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Sticky'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+      'help' => t('Whether or not the node is sticky. To list sticky nodes first, set this to descending.'),
+    ),
+  );
+
+  // links to operate on the node
+
+  $data['node']['view_node'] = array(
+    'field' => array(
+      'title' => t('Link'),
+      'help' => t('Provide a simple link to the node.'),
+      'handler' => 'views_handler_field_node_link',
+    ),
+  );
+
+  $data['node']['edit_node'] = array(
+    'field' => array(
+      'title' => t('Edit link'),
+      'help' => t('Provide a simple link to edit the node.'),
+      'handler' => 'views_handler_field_node_link_edit',
+    ),
+  );
+
+  $data['node']['delete_node'] = array(
+    'field' => array(
+      'title' => t('Delete link'),
+      'help' => t('Provide a simple link to delete the node.'),
+      'handler' => 'views_handler_field_node_link_delete',
+    ),
+  );
+
+  $data['node']['path'] = array(
+    'field' => array(
+      'title' => t('Path'),
+      'help' => t('The aliased path to this node.'),
+      'handler' => 'views_handler_field_node_path',
+    ),
+  );
+
+
+  // Bogus fields for aliasing purposes.
+
+  $data['node']['created_fulldate'] = array(
+    'title' => t('Created date'),
+    'help' => t('In the form of CCYYMMDD.'),
+    'argument' => array(
+      'field' => 'created',
+      'handler' => 'views_handler_argument_node_created_fulldate',
+    ),
+  );
+
+  $data['node']['created_year_month'] = array(
+    'title' => t('Created year + month'),
+    'help' => t('In the form of YYYYMM.'),
+    'argument' => array(
+      'field' => 'created',
+      'handler' => 'views_handler_argument_node_created_year_month',
+    ),
+  );
+
+  $data['node']['created_year'] = array(
+    'title' => t('Created year'),
+    'help' => t('In the form of YYYY.'),
+    'argument' => array(
+      'field' => 'created',
+      'handler' => 'views_handler_argument_node_created_year',
+    ),
+  );
+
+  $data['node']['created_month'] = array(
+    'title' => t('Created month'),
+    'help' => t('In the form of MM (01 - 12).'),
+    'argument' => array(
+      'field' => 'created',
+      'handler' => 'views_handler_argument_node_created_month',
+    ),
+  );
+
+  $data['node']['created_day'] = array(
+    'title' => t('Created day'),
+    'help' => t('In the form of DD (01 - 31).'),
+    'argument' => array(
+      'field' => 'created',
+      'handler' => 'views_handler_argument_node_created_day',
+    ),
+  );
+
+  $data['node']['created_week'] = array(
+    'title' => t('Created week'),
+    'help' => t('In the form of WW (01 - 53).'),
+    'argument' => array(
+      'field' => 'created',
+      'handler' => 'views_handler_argument_node_created_week',
+    ),
+  );
+
+  $data['node']['changed_fulldate'] = array(
+    'title' => t('Updated date'),
+    'help' => t('In the form of CCYYMMDD.'),
+    'argument' => array(
+      'field' => 'changed',
+      'handler' => 'views_handler_argument_node_created_fulldate',
+    ),
+  );
+
+  $data['node']['changed_year_month'] = array(
+    'title' => t('Updated year + month'),
+    'help' => t('In the form of YYYYMM.'),
+    'argument' => array(
+      'field' => 'changed',
+      'handler' => 'views_handler_argument_node_created_year_month',
+    ),
+  );
+
+  $data['node']['changed_year'] = array(
+    'title' => t('Updated year'),
+    'help' => t('In the form of YYYY.'),
+    'argument' => array(
+      'field' => 'changed',
+      'handler' => 'views_handler_argument_node_created_year',
+    ),
+  );
+
+  $data['node']['changed_month'] = array(
+    'title' => t('Updated month'),
+    'help' => t('In the form of MM (01 - 12).'),
+    'argument' => array(
+      'field' => 'changed',
+      'handler' => 'views_handler_argument_node_created_month',
+    ),
+  );
+
+  $data['node']['changed_day'] = array(
+    'title' => t('Updated day'),
+    'help' => t('In the form of DD (01 - 31).'),
+    'argument' => array(
+      'field' => 'changed',
+      'handler' => 'views_handler_argument_node_created_day',
+    ),
+  );
+
+  $data['node']['changed_week'] = array(
+    'title' => t('Updated week'),
+    'help' => t('In the form of WW (01 - 53).'),
+    'argument' => array(
+      'field' => 'changed',
+      'handler' => 'views_handler_argument_node_created_week',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // Node revisions table
+
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['node_revisions']['table']['group']  = t('Node revision');
+
+  // Advertise this table as a possible base table
+  $data['node_revisions']['table']['base'] = array(
+    'field' => 'vid',
+    'title' => t('Node revision'),
+    'help' => t('Node revisions are a history of changes to nodes.'),
+  );
+
+  // For other base tables, explain how we join
+  $data['node_revisions']['table']['join'] = array(
+    // Directly links to node table.
+    'node' => array(
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+  );
+
+  // uid field
+  $data['node_revisions']['uid'] = array(
+    'title' => t('User'),
+    'help' => t('Relate a node revision to the user who created the revision.'),
+    'relationship' => array(
+      'handler' => 'views_handler_relationship',
+      'base' => 'users',
+      'base field' => 'uid',
+      'label' => t('user'),
+    ),
+  );
+
+  // Body field
+  $data['node_revisions']['body'] = array(
+    'group' => t('Node'),
+    'title' => t('Body'), // The item it appears as on the UI,
+    'help' => t('The actual, full data in the body field; this may not be valid data on all node types.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_markup',
+      'format' => 'format', // The name of the format field
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // Teaser field
+  $data['node_revisions']['teaser'] = array(
+    'group' => t('Node'),
+    'title' => t('Teaser'), // The item it appears as on the UI,
+    'help' => t('The stored teaser field. This may not be valid or useful data on all node types.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_markup',
+      'format' => 'format', // The name of the format field
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // nid
+  $data['node_revisions']['vid'] = array(
+    'title' => t('Vid'),
+    'help' => t('The revision ID of the node revision.'), // The help that appears on the UI,
+    // Information for displaying the nid
+    'field' => array(
+//      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    // Information for accepting a nid as an argument
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_vid',
+      'parent' => 'views_handler_argument_numeric', // make sure parent is included
+      'click sortable' => TRUE,
+      'numeric' => TRUE,
+    ),
+    // Information for accepting a nid as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    // Information for sorting on a nid.
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'relationship' => array(
+      'handler' => 'views_handler_relationship',
+      'base' => 'node',
+      'base field' => 'nid',
+      'title' => t('Node'),
+      'label' => t('Get the actual node from a node revision.'),
+    ),
+  );
+
+  // title
+  $data['node_revisions']['title'] = array(
+    'title' => t('Title'), // The item it appears as on the UI,
+    'help' => t('The title of the node.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'field' => 'title', // the real field
+      'handler' => 'views_handler_field_node_revision',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // log field
+  $data['node_revisions']['log'] = array(
+    'title' => t('Log message'), // The item it appears as on the UI,
+    'help' => t('The log message entered when the revision was created.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_xss',
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  // revision timestamp
+  // changed field
+  $data['node_revisions']['timestamp'] = array(
+    'title' => t('Updated date'), // The item it appears as on the UI,
+    'help' => t('The date the node was last updated.'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // input format id
+  $data['node_revisions']['format'] = array(
+    'title' => t('Input format id'), // The item it appears as on the UI,
+    'help' => t('The numeric input format of the node revision. !default means the default input format.', array('!default' => FILTER_FORMAT_DEFAULT)), // The help that appears on the UI,
+     // Information for displaying an input format as a field
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    // Information for sorting on input format
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    // Information for accepting input format as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+  );
+
+  // input format name
+  // A (numeric) format of 0 means the default; Drupal also applies the default
+  // if the format specifed for a node revision has been deleted.
+  // This complexity makes sorting and filtering by format name tricky,
+  // hence these are not yet supported.
+  $data['node_revisions']['format_name'] = array(
+    'title' => t('Input format'), // The item it appears as on the UI,
+    'help' => t('The name of the input format of the node revision.'), // The help that appears on the UI,
+     // Information for displaying an input format as a field
+    'field' => array(
+      'handler' => 'views_handler_field_filter_format_name',
+    ),
+  );
+
+  $data['node_revisions']['revert_revision'] = array(
+    'field' => array(
+      'title' => t('Revert link'),
+      'help' => t('Provide a simple link to revert to the revision.'),
+      'handler' => 'views_handler_field_node_revision_link_revert',
+    ),
+  );
+
+  $data['node_revisions']['delete_revision'] = array(
+    'field' => array(
+      'title' => t('Delete link'),
+      'help' => t('Provide a simple link to delete the node revision.'),
+      'handler' => 'views_handler_field_node_revision_link_delete',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // Node access table
+
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['node_access']['table']['group']  = t('Node access');
+
+  // For other base tables, explain how we join
+  $data['node_access']['table']['join'] = array(
+    // Directly links to node table.
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'nid',
+    ),
+  );
+  // nid field
+  $data['node_access']['nid'] = array(
+    'title' => t('Access'),
+    'help' => t('Filter by access.'),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_access',
+      'help' => t('Filter for nodes by view access. <strong>Not necessary if you are using node as your base table.</strong>'),
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // History table
+
+  // We're actually defining a specific instance of the table, so let's
+  // alias it so that we can later add the real table for other purposes if we
+  // need it.
+  $data['history_user']['table']['group']  = t('Node');
+
+  // Explain how this table joins to others.
+  $data['history_user']['table']['join'] = array(
+     // Directly links to node table.
+    'node' => array(
+      'table' => 'history',
+      'left_field' => 'nid',
+      'field' => 'nid',
+      'extra' => array(
+        array('field' => 'uid', 'value' => '***CURRENT_USER***', 'numeric' => TRUE),
+      ),
+    ),
+  );
+
+  $data['history_user']['timestamp'] = array(
+    'title' => t('Has new content'),
+    'field' => array(
+      'handler' => 'views_handler_field_history_user_timestamp',
+      'help' => t('Show a marker if the node has new or updated content.'),
+    ),
+    'filter' => array(
+      'help' => t('Show only nodes that have new content.'),
+      'handler' => 'views_handler_filter_history_user_timestamp',
+    ),
+  );
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function node_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/node',
+    ),
+    'handlers' => array(
+      // field handlers
+      'views_handler_field_node' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_node_type' => array(
+        'parent' => 'views_handler_field_node',
+      ),
+      'views_handler_field_node_link' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_node_path' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_node_link_edit' => array(
+        'parent' => 'views_handler_field_node_link',
+      ),
+      'views_handler_field_node_link_delete' => array(
+        'parent' => 'views_handler_field_node_link',
+      ),
+      'views_handler_field_node_revision_link_revert' => array(
+        'parent' => 'views_handler_field_node_link',
+      ),
+      'views_handler_field_node_revision_link_delete' => array(
+        'parent' => 'views_handler_field_node_link',
+      ),
+      'views_handler_field_history_user_timestamp' => array(
+        'parent' => 'views_handler_field_node',
+      ),
+      'views_handler_field_node_revision' => array(
+        'parent' => 'views_handler_field_node',
+      ),
+      // argument handlers
+      'views_handler_argument_node_type' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_node_nid' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+      'views_handler_argument_node_vid' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+      'views_handler_argument_node_created_fulldate' => array(
+        // put several handlers in the same file
+        'file' => 'views_handler_argument_dates_various.inc',
+        'parent' => 'views_handler_argument_date',
+      ),
+      'views_handler_argument_node_created_year' => array(
+        // put several handlers in the same file
+        'file' => 'views_handler_argument_dates_various.inc',
+        'parent' => 'views_handler_argument_date',
+      ),
+      'views_handler_argument_node_created_year_month' => array(
+        // put several handlers in the same file
+        'file' => 'views_handler_argument_dates_various.inc',
+        'parent' => 'views_handler_argument_date',
+      ),
+      'views_handler_argument_node_created_month' => array(
+        // put several handlers in the same file
+        'file' => 'views_handler_argument_dates_various.inc',
+        'parent' => 'views_handler_argument_date',
+      ),
+      'views_handler_argument_node_created_day' => array(
+        // put several handlers in the same file
+        'file' => 'views_handler_argument_dates_various.inc',
+        'parent' => 'views_handler_argument_date',
+      ),
+      'views_handler_argument_node_created_week' => array(
+        // put several handlers in the same file
+        'file' => 'views_handler_argument_dates_various.inc',
+        'parent' => 'views_handler_argument_date',
+      ),
+
+      // filters
+      'views_handler_filter_node_type' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_history_user_timestamp' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      'views_handler_filter_node_status' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      'views_handler_filter_node_access' => array(
+        'parent' => 'views_handler_filter',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function node_views_plugins() {
+  return array(
+    'module' => 'views', // This just tells our themes are elsewhere.
+    'row' => array(
+      'node' => array(
+        'title' => t('Node'),
+        'help' => t('Display the node with standard node view.'),
+        'handler' => 'views_plugin_row_node_view',
+        'path' => drupal_get_path('module', 'views') . '/modules/node', // not necessary for most modules
+        'theme' => 'views_view_row_node',
+        'base' => array('node'), // only works with 'node' as base.
+        'uses options' => TRUE,
+        'type' => 'normal',
+        'help topic' => 'style-node',
+      ),
+      'node_rss' => array(
+        'title' => t('Node'),
+        'help' => t('Display the node with standard node view.'),
+        'handler' => 'views_plugin_row_node_rss',
+        'path' => drupal_get_path('module', 'views') . '/modules/node', // not necessary for most modules
+        'theme' => 'views_view_row_rss',
+        'base' => array('node'), // only works with 'node' as base.
+        'uses options' => TRUE,
+        'type' => 'feed',
+        'help topic' => 'style-node-rss',
+      ),
+    ),
+    'argument validator' => array(
+      'node' => array(
+        'title' => t('Node'),
+        'handler' => 'views_plugin_argument_validate_node',
+        'path' => drupal_get_path('module', 'views') . '/modules/node', // not necessary for most modules
+      ),
+    ),
+    'argument default' => array(
+      'node' => array(
+        'title' => t('Node ID from URL'),
+        'handler' => 'views_plugin_argument_default_node',
+        'path' => drupal_get_path('module', 'views') . '/modules/node', // not necessary for most modules
+        'parent' => 'fixed', // so that the parent class is included
+      ),
+    ),
+  );
+}
+
+/**
+ * Template helper for theme_views_view_row_node
+ */
+function template_preprocess_views_view_row_node(&$vars) {
+  $options = $vars['options'];
+
+  // Make sure the variables are defined.
+  $vars['node'] = '';
+  $vars['comments'] = '';
+
+  if (!empty($vars['row']->{$vars['field_alias']})) {
+    $nid = $vars['row']->{$vars['field_alias']};
+  }
+  if (!is_numeric($nid)) {
+    return;
+  }
+
+  $node = node_load($nid);
+
+  if (empty($node)) {
+    return;
+  }
+
+  $node->view = $vars['view'];
+  $node->build_mode = ($options['build_mode'] == 'teaser' || $options['build_mode'] == 'full') ? NODE_BUILD_NORMAL : $options['build_mode'];
+  $vars['node'] = node_view($node, $options['build_mode'] == 'teaser', FALSE, $options['links']);
+
+  if (!empty($options['comments']) && function_exists('comment_render')) {
+    $vars['comments'] = comment_render($node);
+  }
+}
+
+/**
+ * Implementation of hook_views_query_substitutions().
+ */
+function node_views_query_substitutions() {
+  return array(
+    '***ADMINISTER_NODES***' => intval(user_access('administer nodes')),
+  );
+}
+
+/**
+ * Implementation of hook_views_analyze().
+ */
+function node_views_analyze($view) {
+  $ret = array();
+  // Check for something other than the default display:
+  if ($view->base_table == 'node') {
+    foreach ($view->display as $id => $display) {
+      if (!$display->handler->is_defaulted('access') || !$display->handler->is_defaulted('filters')) {
+        // check for no access control
+        $access = $display->handler->get_option('access');
+        if (empty($access['type']) || $access['type'] == 'none') {
+          $result = db_query("SELECT r.name, p.perm FROM {role} r INNER JOIN {permission} p ON p.rid = r.rid WHERE r.name IN ('anonymous user', 'authenticated user')");
+          while ($role = db_fetch_object($result)) {
+            $role->perm = explode(', ', $role->perm);
+            $role->safe = in_array('access content', $role->perm);
+            $roles[$role->name] = $role;
+          }
+          if (!($roles['anonymous user']->safe && $roles['authenticated user']->safe)) {
+            $ret[] = views_ui_analysis(t('Some roles lack permission to access content, but display %display has no access control.', array('%display' => $display->display_title)), 'warning');
+          }
+          $filters = $display->handler->get_option('filters');
+          foreach ($filters as $filter) {
+            if ($filter['table'] == 'node' && ($filter['field'] == 'status' || $filter['field'] == 'status_extra')) {
+              continue 2;
+            }
+          }
+          $ret[] = views_ui_analysis(t('Display %display has no access control but does not contain a filter for published nodes.', array('%display' => $display->display_title)), 'warning');
+        }
+      }
+    }
+  }
+  foreach ($view->display as $id => $display) {
+    if ($display->display_plugin == 'page') {
+      if ($display->handler->get_option('path') == 'node/%') {
+        $ret[] = views_ui_analysis(t('Display %display has set node/% as path. This will not produce what you want. If you want to have multiple versions of the node view, use panels.', array('%display' => $display->display_title)), 'warning');
+      }
+    }
+  }
+
+  return $ret;
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node.views_convert.inc
new file mode 100644
index 0000000..71406a7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node.views_convert.inc
@@ -0,0 +1,181 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function node_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'field':
+      switch ($field['tablename']) {
+        case 'node':
+          switch ($field['field']) {
+            case 'title':
+              if ($field['options'] != 'no_link') {
+                $view->set_item_option($display, 'field', $id, 'link_to_node', TRUE);
+              }
+              break;
+            case 'created':
+            case 'changed':
+              $handlers = array(
+                'views_handler_field_date_small' => 'small',
+                'views_handler_field_date' => 'medium',
+                'views_handler_field_date_large' => 'large',
+                'views_handler_field_date_custom' => 'custom',
+                'views_handler_field_since' => 'time ago',
+              );
+              $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+              if (!empty($field['options'])) {
+                $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+              }
+              break;
+            case 'body':
+              $field['field'] = $field['handler'] == 'views_handler_field_teaser' ? 'teaser' : $field['field'];
+              $view->set_item_option($display, 'field', $id, 'field', $field['field']);
+              $view->set_item_option($display, 'field', $id, 'table', 'node_revisions');
+              break;
+            case 'link':
+            case 'edit':
+            case 'delete':
+            case 'view':
+              $field['field'] = $field['field'] == 'link' ? 'view_node' : "$field[field]_node";
+              $view->set_item_option($display, 'field', $id, 'field', $field['field']);
+              if (!empty($field['options'])) {
+                $view->set_item_option($display, 'field', $id, 'text', $field['options']);
+              }
+              break;
+          }
+          break;
+      }
+      break;
+    case 'filter':
+      switch ($field['tablename']) {
+        case 'node':
+          switch ($field['field']) {
+            case 'type':
+              $operators = array('OR' => 'in', 'NOR' => 'not in');
+              $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+              break;
+            case 'anon':
+              $item = $view->get_item($display, 'filter', $id);
+              $item['value'] = array(0);
+              $item['table'] = 'users';
+              $item['field'] = 'uid';
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+            case 'currentuid':
+              $operators = array('=' => TRUE, '!=' => FALSE);
+              $item = $view->get_item($display, 'filter', $id);
+              $item['value'] = $operators[$field['operator']];
+              $item['table'] = 'users';
+              $item['field'] = 'uid_current';
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+            case 'currentuidtouched':
+              $view->set_item_option($display, 'filter', $id, 'value', '=');
+              $view->set_item_option($display, 'filter', $id, 'field', 'uid_touch');
+              break;
+            case 'distinct':
+              $view->display_handler->set_option('distinct', $field['operator'] == '=' && $field['value'] == 'distinct');
+              $view->set_item($display, 'filter', $id, NULL);
+              break;
+            case 'title':
+              $item = $view->get_item($display, 'filter', $id);
+              $item['operator'] = $field['operator'];
+              $item['case'] = FALSE;
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+            case 'created':
+            case 'changed':
+              $item = $view->get_item($display, 'filter', $id);
+              $item['operator'] = $field['operator'];
+              $item['value'] = array(
+                'type' => $field['value'] == 'now' ? 'offset' : 'date',
+                'value' => $field['value'],
+              );
+              if (!empty($field['options'])) {
+                $item['value']['value'] = intval($field['options']) .' seconds';
+              }
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+            case 'body':
+              $item = $view->get_item($display, 'filter', $id);
+              $item['operator'] = $field['operator'];
+              $item['case'] = FALSE;
+              $item['table'] = 'node_revisions';
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+          }
+          break;
+        case 'history':
+          switch ($field['field']) {
+            case 'timestamp':
+              $view->set_item_option($display, 'filter', $id, 'table', 'history_user');
+              break;
+          }
+          break;
+      }
+      break;
+    case 'sort':
+      switch ($field['tablename']) {
+        case 'node':
+          switch ($field['field']) {
+            case 'created':
+            case 'changed':
+              $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+              $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
+              break;
+            case 'random':
+              $view->set_item_option($display, 'sort', $id, 'table', 'views');
+              break;
+          }
+          break;
+      }
+      break;
+    case 'argument':
+      $options = $field['argoptions'];
+      switch ($field['type']) {
+        case 'nodetype':
+          $view->add_item($display, 'argument', 'node', 'type', $options, $field['id']);
+          break;
+        case 'nodeletter':
+          if (!empty($field['options'])) {
+            $options['glossary'] = TRUE;
+            $options['limit'] = $field['options'];
+          }
+          $options['case'] = 'upper';
+          $view->add_item($display, 'argument', 'node', 'title', $options, $field['id']);
+          break;
+        case 'year':
+          $view->add_item($display, 'argument', 'node', 'created_year', $options, $field['id']);
+          break;
+        case 'month':
+          $view->add_item($display, 'argument', 'node', 'created_month', $options, $field['id']);
+          break;
+        case 'week':
+          $view->add_item($display, 'argument', 'node', 'created_week', $options, $field['id']);
+          break;
+        case 'monthyear':
+          $view->add_item($display, 'argument', 'node', 'created_year_month', $options, $field['id']);
+          break;
+        case 'fulldate':
+          $view->add_item($display, 'argument', 'node', 'created_fulldate', $options, $field['id']);
+          break;
+        case 'nid':
+          if (!empty($field['options'])) {
+            $options['not'] = TRUE;
+          }
+          $view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']);
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node.views_default.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node.views_default.inc
new file mode 100644
index 0000000..89cf1eb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node.views_default.inc
@@ -0,0 +1,377 @@
+<?php
+/**
+ * @file
+ * Contains default views on behalf of the node module.
+ */
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function node_views_default_views() {
+  $view = new view;
+  $view->name = 'frontpage';
+  $view->description = 'Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('sorts', array(
+    'sticky' => array(
+      'id' => 'sticky',
+      'table' => 'node',
+      'field' => 'sticky',
+      'order' => 'DESC',
+    ),
+    'created' => array(
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+      'order' => 'DESC',
+      'relationship' => 'none',
+      'granularity' => 'second',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'promote' => array(
+      'id' => 'promote',
+      'table' => 'node',
+      'field' => 'promote',
+      'operator' => '=',
+      'value' => '1',
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+    ),
+    'status' => array(
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'operator' => '=',
+      'value' => '1',
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access content',
+  ));
+  $handler->override_option('header_format', '1');
+  $handler->override_option('footer_format', '1');
+  $handler->override_option('empty_format', '1');
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_plugin', 'node');
+  $handler->override_option('row_options', array(
+    'teaser' => 1,
+    'links' => 1,
+  ));
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'frontpage');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler = $view->new_display('feed', 'Feed', 'feed');
+  $handler->override_option('sitename_title', '1');
+  $handler->override_option('title', 'Front page feed');
+  $handler->override_option('style_options', array(
+    'mission_description' => 1,
+    'description' => '',
+  ));
+  $handler->override_option('row_plugin', 'node_rss');
+  $handler->override_option('row_options', array(
+    'item_length' => 'default',
+  ));
+  $handler->override_option('path', 'rss.xml');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('displays', array(
+    'default' => 'default',
+    'page' => 'page',
+  ));
+  $views[$view->name] = $view;
+
+  $view = new view;
+  $view->name = 'glossary';
+  $view->description = 'A list of all content, by letter.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'label' => 'Title',
+      'link_to_node' => 1,
+      'exclude' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+    ),
+    'name' => array(
+      'label' => 'Author',
+      'link_to_user' => 1,
+      'exclude' => 0,
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'relationship' => 'none',
+    ),
+    'changed' => array(
+      'label' => 'Last update',
+      'date_format' => 'large',
+      'custom_date_format' => '',
+      'exclude' => 0,
+      'id' => 'changed',
+      'table' => 'node',
+      'field' => 'changed',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'title' => array(
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'glossary' => 1,
+      'limit' => '1',
+      'case' => 'upper',
+      'path_case' => 'lower',
+      'transform_dash' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+      'default_argument_user' => 0,
+      'default_argument_fixed' => 'a',
+      'default_argument_php' => '',
+      'validate_argument_vocabulary' => array(),
+      'validate_argument_type' => 'tid',
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access content',
+  ));
+  $handler->override_option('use_ajax', '1');
+  $handler->override_option('items_per_page', 36);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'asc',
+    'columns' => array(
+      'title' => 'title',
+      'name' => 'name',
+      'changed' => 'changed',
+    ),
+    'info' => array(
+      'title' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'changed' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+    ),
+    'default' => 'title',
+  ));
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'glossary');
+  $handler->override_option('menu', array(
+    'type' => 'normal',
+    'title' => 'Glossary',
+    'weight' => '0',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler = $view->new_display('attachment', 'Attachment', 'attachment');
+  $handler->override_option('arguments', array(
+    'title' => array(
+      'default_action' => 'summary asc',
+      'style_plugin' => 'unformatted_summary',
+      'style_options' => array(
+        'count' => 1,
+        'override' => 0,
+        'items_per_page' => '25',
+        'inline' => 1,
+        'separator' => ' | ',
+      ),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'glossary' => 1,
+      'limit' => '1',
+      'case' => 'upper',
+      'path_case' => 'lower',
+      'transform_dash' => 0,
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'relationship' => 'none',
+      'default_argument_user' => 0,
+      'default_argument_fixed' => 'a',
+      'validate_argument_vocabulary' => array(),
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('inherit_arguments', 0);
+  $handler->override_option('displays', array(
+    'default' => 'default',
+    'page' => 'page',
+  ));
+  $views[$view->name] = $view;
+
+  $view = new view;
+  $view->name = 'archive';
+  $view->description = 'Display a list of months that link to content for that month.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('title', 'Monthly archive');
+  $handler->override_option('sorts', array(
+    'created' => array(
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'created_year_month' => array(
+      'id' => 'created_year_month',
+      'table' => 'node',
+      'field' => 'created_year_month',
+      'default_action' => 'summary desc',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(
+        'count' => 1,
+        'override' => 1,
+        'items_per_page' => '30',
+      ),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '%1',
+      'relationship' => 'none',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'default_argument_type' => 'fixed',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status' => array(
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'operator' => '=',
+      'value' => 1,
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access content',
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_plugin', 'node');
+  $handler->override_option('row_options', array(
+    'teaser' => TRUE,
+    'links' => TRUE,
+  ));
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'archive');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler = $view->new_display('block', 'Block', 'block');
+  $handler->override_option('arguments', array(
+    'created_year_month' => array(
+      'id' => 'created_year_month',
+      'table' => 'node',
+      'field' => 'created_year_month',
+      'default_action' => 'summary asc',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(
+        'count' => 1,
+        'override' => 0,
+        'items_per_page' => '30',
+      ),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '%1',
+      'relationship' => 'none',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+      'default_argument_type' => 'fixed',
+    ),
+  ));
+  $handler->override_option('block_description', 'Archive list');
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_dates_various.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_dates_various.inc
new file mode 100644
index 0000000..4ec49db
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_dates_various.inc
@@ -0,0 +1,169 @@
+<?php
+/**
+ * Argument handler for a full date (CCYYMMDD)
+ */
+class views_handler_argument_node_created_fulldate extends views_handler_argument_date {
+  /**
+   * Constructor implementation
+   */
+  function construct() {
+    parent::construct();
+    $this->format = 'F j, Y';
+    $this->arg_format = 'Ymd';
+    $this->formula = views_date_sql_format($this->arg_format, "***table***.$this->real_field");
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function summary_name($data) {
+    $created = $data->{$this->name_alias};
+    return format_date(strtotime($created), 'custom', $this->format, 0);
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function title() {
+    return format_date(strtotime($this->argument), 'custom', $this->format, 0);
+  }
+}
+
+/**
+ * Argument handler for a year (CCYY)
+ */
+class views_handler_argument_node_created_year extends views_handler_argument_date {
+  /**
+   * Constructor implementation
+   */
+  function construct() {
+    parent::construct();
+    $this->arg_format = 'Y';
+    $this->formula = views_date_sql_extract('YEAR', "***table***.$this->real_field");
+  }
+}
+
+/**
+ * Argument handler for a year plus month (CCYYMM)
+ */
+class views_handler_argument_node_created_year_month extends views_handler_argument_date {
+  /**
+   * Constructor implementation
+   */
+  function construct() {
+    parent::construct();
+    $this->format = 'F Y';
+    $this->arg_format = 'Ym';
+    $this->formula = views_date_sql_format($this->arg_format, "***table***.$this->real_field");
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function summary_name($data) {
+    $created = $data->{$this->name_alias};
+    return format_date(strtotime($created . "15" . " 00:00:00 UTC"), 'custom', $this->format, 0);
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function title() {
+    return format_date(strtotime($this->argument . "15" . " 00:00:00 UTC"), 'custom', $this->format, 0);
+  }
+}
+
+/**
+ * Argument handler for a month (MM)
+ */
+class views_handler_argument_node_created_month extends views_handler_argument_date {
+  /**
+   * Constructor implementation
+   */
+  function construct() {
+    parent::construct();
+    $this->formula = views_date_sql_extract('MONTH', "***table***.$this->real_field");
+    $this->format = 'F';
+    $this->arg_format = 'm';
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function summary_name($data) {
+    $month = str_pad($data->{$this->name_alias}, 2, '0', STR_PAD_LEFT);
+    return format_date(strtotime("2005" . $month . "15" . " 00:00:00 UTC" ), 'custom', $this->format);
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function title() {
+    $month = str_pad($this->argument, 2, '0', STR_PAD_LEFT);
+    return format_date(strtotime("2005" . $month . "15" . " 00:00:00 UTC"), 'custom', $this->format, 0);
+  }
+
+  function summary_argument($data) {
+    // Make sure the argument contains leading zeroes.
+    return str_pad($data->{$this->base_alias}, 2, '0', STR_PAD_LEFT);
+  }
+}
+
+/**
+ * Argument handler for a day (DD)
+ */
+class views_handler_argument_node_created_day extends views_handler_argument_date {
+  /**
+   * Constructor implementation
+   */
+  function construct() {
+    parent::construct();
+    $this->formula = views_date_sql_extract('DAY', "***table***.$this->real_field");
+    $this->format = 'j';
+    $this->arg_format = 'd';
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function summary_name($data) {
+    $day = str_pad($data->{$this->name_alias}, 2, '0', STR_PAD_LEFT);
+    // strtotime respects server timezone, so we need to set the time fixed as utc time
+    return format_date(strtotime("2005" . "05" . $day . " 00:00:00 UTC"), 'custom', $this->format, 0);
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function title() {
+    $day = str_pad($this->argument, 2, '0', STR_PAD_LEFT);
+    return format_date(strtotime("2005" . "05" . $day . " 00:00:00 UTC"), 'custom', $this->format, 0);
+  }
+
+  function summary_argument($data) {
+    // Make sure the argument contains leading zeroes.
+    return str_pad($data->{$this->base_alias}, 2, '0', STR_PAD_LEFT);
+  }
+}
+
+/**
+ * Argument handler for a week.
+ */
+class views_handler_argument_node_created_week extends views_handler_argument_date {
+  /**
+   * Constructor implementation
+   */
+  function construct() {
+    parent::construct();
+    $this->arg_format = 'w';
+    $this->formula = views_date_sql_extract('WEEK', "***table***.$this->real_field");
+  }
+
+  /**
+   * Provide a link to the next level of the view
+   */
+  function summary_name($data) {
+    $created = $data->{$this->name_alias};
+    return t('Week @week', array('@week' => $created));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_language.inc
new file mode 100644
index 0000000..85ff6c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_language.inc
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Argument handler to accept a language.
+ */
+class views_handler_argument_node_language extends views_handler_argument {
+  function construct() {
+    parent::construct('language');
+  }
+
+  /**
+   * Override the behavior of summary_name(). Get the user friendly version
+   * of the language.
+   */
+  function summary_name($data) {
+    return $this->node_language($data->{$this->name_alias});
+  }
+
+  /**
+   * Override the behavior of title(). Get the user friendly version of the
+   * node type.
+   */
+  function title() {
+    return $this->node_language($this->argument);
+  }
+
+  function node_language($langcode) {
+    $languages = locale_language_list();
+    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_nid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_nid.inc
new file mode 100644
index 0000000..ef811ac
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_nid.inc
@@ -0,0 +1,25 @@
+<?php
+/**
+ * @file
+ * Provide node nid argument handler.
+ */
+
+/**
+ * Argument handler to accept a node id.
+ */
+class views_handler_argument_node_nid extends views_handler_argument_numeric {
+  /**
+   * Override the behavior of title(). Get the title of the node.
+   */
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT n.title FROM {node} n WHERE n.nid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->title);
+    }
+    return $titles;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_type.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_type.inc
new file mode 100644
index 0000000..b186a0c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_type.inc
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Argument handler to accept a node type.
+ */
+class views_handler_argument_node_type extends views_handler_argument {
+  function construct() {
+    parent::construct('type');
+  }
+
+  /**
+   * Override the behavior of summary_name(). Get the user friendly version
+   * of the node type.
+   */
+  function summary_name($data) {
+    return $this->node_type($data->{$this->name_alias});
+  }
+
+  /**
+   * Override the behavior of title(). Get the user friendly version of the
+   * node type.
+   */
+  function title() {
+    return $this->node_type($this->argument);
+  }
+
+  function node_type($type) {
+    $output = node_get_types('name', $type);
+    if (empty($output)) {
+      return t('Unknown node type');
+    }
+    else {
+      return check_plain(t($output));
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_vid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_vid.inc
new file mode 100644
index 0000000..a142ce0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_argument_node_vid.inc
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @file
+ * Provide node vid argument handler.
+ */
+
+/**
+ * Argument handler to accept a node revision id.
+ */
+class views_handler_argument_node_vid extends views_handler_argument_numeric {
+  // No constructor is necessary.
+
+  /**
+   * Override the behavior of title(). Get the title of the revision.
+   */
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT n.title FROM {node_revisions} n WHERE n.nid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->title);
+    }
+    return $titles;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_history_user_timestamp.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_history_user_timestamp.inc
new file mode 100644
index 0000000..21b0466
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_history_user_timestamp.inc
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Field handler to display the marker for new content.
+ */
+class views_handler_field_history_user_timestamp extends views_handler_field_node {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    global $user;
+    if ($user->uid) {
+      $this->additional_fields['created'] = array('table' => 'node', 'field' => 'created');
+      $this->additional_fields['changed'] = array('table' => 'node', 'field' => 'changed');
+      if (module_exists('comment') && !empty($this->options['comments'])) {
+        $this->additional_fields['last_comment'] = array('table' => 'node_comment_statistics', 'field' => 'last_comment_timestamp');
+      }
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['comments'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    if (module_exists('comment')) {
+      $form['comments'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Check for new comments as well'),
+        '#default_value' => !empty($this->options['comments']),
+      );
+    }
+  }
+
+  function query() {
+    // Only add ourselves to the query if logged in.
+    global $user;
+    if (!$user->uid) {
+      return;
+    }
+    parent::query();
+  }
+
+  function render($values) {
+    // Let's default to 'read' state.
+    // This code shadows node_mark, but it reads from the db directly and
+    // we already have that info.
+    $mark = MARK_READ;
+    global $user;
+    if ($user->uid) {
+      $last_read = $values->{$this->field_alias};
+      $created = $values->{$this->aliases['created']};
+      $changed = $values->{$this->aliases['changed']};
+
+      $last_comment = module_exists('comment') && !empty($this->options['comments']) ? $values->{$this->aliases['last_comment']} : 0;
+
+      if (!$last_read && $created > NODE_NEW_LIMIT) {
+        $mark = MARK_NEW;
+      }
+      elseif ($changed > $last_read && $changed > NODE_NEW_LIMIT) {
+        $mark = MARK_UPDATED;
+      }
+      elseif ($last_comment > $last_read && $last_comment > NODE_NEW_LIMIT) {
+        $mark = MARK_UPDATED;
+      }
+      return $this->render_link(theme('mark', $mark), $values);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node.inc
new file mode 100644
index 0000000..001fe9b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node.inc
@@ -0,0 +1,73 @@
+<?php
+/**
+ * @file
+ * Contains the basic 'node' field handler.
+ */
+
+/**
+ * Field handler to provide simple renderer that allows linking to a node.
+ * Definition terms:
+ * - link_to_node default: Should this field have the checkbox "link to node" enabled by default.
+ */
+class views_handler_field_node extends views_handler_field {
+  /**
+   * Constructor to provide additional field to add.
+   */
+  function construct() {
+    parent::construct();
+    $this->additional_fields['nid'] = array('table' => 'node', 'field' => 'nid');
+    if (module_exists('translation')) {
+      $this->additional_fields['language'] = array('table' => 'node', 'field' => 'language');
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_node'] = array('default' => isset($this->definition['link_to_node default']) ? $this->definition['link_to_node default'] : FALSE);
+    return $options;
+  }
+
+  /**
+   * Provide link to node option
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_node'] = array(
+      '#title' => t('Link this field to its node'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_node']),
+    );
+  }
+
+  /**
+   * Render whatever the data is as a link to the node.
+   *
+   * Data should be made XSS safe prior to calling this function.
+   */
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_node'])) {
+      if ($data !== NULL && $data !== '') {
+        $this->options['alter']['make_link'] = TRUE;
+        $this->options['alter']['path'] = "node/" . $values->{$this->aliases['nid']};
+        if (isset($this->aliases['language'])) {
+          $languages = language_list();
+          if (isset($languages[$values->{$this->aliases['language']}])) {
+            $this->options['alter']['language'] = $languages[$values->{$this->aliases['language']}];
+          }
+          else {
+            unset($this->options['alter']['language']);
+          }
+        }
+      }
+      else {
+        $this->options['alter']['make_link'] = FALSE;
+      } 
+    }
+    return $data;
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link.inc
new file mode 100644
index 0000000..8b97743
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link.inc
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Field handler to present a link to the node.
+ */
+class views_handler_field_node_link extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['nid'] = 'nid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['text'] = array('default' => '', 'translatable' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+    );
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
+    $nid = $values->{$this->aliases['nid']};
+    return l($text, "node/$nid");
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link_delete.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link_delete.inc
new file mode 100644
index 0000000..555c104
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link_delete.inc
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Field handler to present a link to delete a node.
+ */
+class views_handler_field_node_link_delete extends views_handler_field_node_link {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['type'] = 'type';
+    $this->additional_fields['uid'] = 'uid';
+    $this->additional_fields['format'] = array('table' => 'node_revisions', 'field' => 'format');
+  }
+
+  function render($values) {
+    // ensure user has access to edit this node.
+    $node = new stdClass();
+    $node->nid = $values->{$this->aliases['nid']};
+    $node->uid = $values->{$this->aliases['uid']};
+    $node->type = $values->{$this->aliases['type']};
+    $node->format = $values->{$this->aliases['format']};
+    $node->status = 1; // unpublished nodes ignore access control
+    if (!node_access('delete', $node)) {
+      return;
+    }
+
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
+    return l($text, "node/$node->nid/delete", array('query' => drupal_get_destination()));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link_edit.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link_edit.inc
new file mode 100644
index 0000000..1548776
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_link_edit.inc
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Field handler to present a link node edit.
+ */
+class views_handler_field_node_link_edit extends views_handler_field_node_link {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = 'uid';
+    $this->additional_fields['type'] = 'type';
+    $this->additional_fields['format'] = array('table' => 'node_revisions', 'field' => 'format');
+  }
+
+  function render($values) {
+    // ensure user has access to edit this node.
+    $node = new stdClass();
+    $node->nid = $values->{$this->aliases['nid']};
+    $node->uid = $values->{$this->aliases['uid']};
+    $node->type = $values->{$this->aliases['type']};
+    $node->format = $values->{$this->aliases['format']};
+    $node->status = 1; // unpublished nodes ignore access control
+    if (!node_access('update', $node)) {
+      return;
+    }
+
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
+    return l($text, "node/$node->nid/edit", array('query' => drupal_get_destination()));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_path.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_path.inc
new file mode 100644
index 0000000..6deff88
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_path.inc
@@ -0,0 +1,39 @@
+<?php
+// $Id:
+/**
+ * Field handler to present the path to the node.
+ */
+class views_handler_field_node_path extends views_handler_field {
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['absolute'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function construct() {
+    parent::construct();
+    $this->additional_fields['nid'] = 'nid';
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['absolute'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use absolute link (begins with "http://")'),
+      '#default_value' => $this->options['absolute'],
+      '#description' => t('If you want to use this as in "output this field as link" in "link path", you must enable this option.'),
+    );
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $nid = $values->{$this->aliases['nid']};
+    return url("node/$nid", array('absolute' => $this->options['absolute']));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision.inc
new file mode 100644
index 0000000..d2b7023
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision.inc
@@ -0,0 +1,59 @@
+<?php
+/**
+ * @file
+ * Contains the basic 'node_revision' field handler.
+ */
+
+class views_handler_field_node_revision extends views_handler_field_node {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if (!empty($this->options['link_to_node_revision'])) {
+      $this->additional_fields['vid'] = 'vid';
+      $this->additional_fields['nid'] = 'nid';
+      if (module_exists('translation')) {
+        $this->additional_fields['language'] = array('table' => 'node', 'field' => 'language');
+      }
+    }
+  }
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_node_revision'] = array('default' => FALSE);
+    return $options;
+  }
+
+  /**
+   * Provide link to revision option.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_node_revision'] = array(
+      '#title' => t('Link this field to its node revision'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_node_revision']),
+    );
+  }
+
+  /**
+   * Render whatever the data is as a link to the node.
+   *
+   * Data should be made XSS safe prior to calling this function.
+   */
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_node_revision']) && $data !== NULL && $data !== '') {
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = "node/" . $values->{$this->aliases['nid']} . '/revisions/' . $values->{$this->aliases['vid']} .'/view';
+      if (isset($this->aliases['language'])) {
+        $languages = language_list();
+        if (isset($languages[$values->{$this->aliases['language']}])) {
+          $this->options['alter']['language'] = $languages[$values->{$this->aliases['language']}];
+        }
+      }
+    }
+    else {
+      return parent::render_link($data, $values);
+    }
+    return $data;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision_link_delete.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision_link_delete.inc
new file mode 100644
index 0000000..a766368
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision_link_delete.inc
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Field handler to present delete a node revision.
+ */
+class views_handler_field_node_revision_link_delete extends views_handler_field_node_link {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = array('table' => 'node', 'field' => 'uid');
+    $this->additional_fields['node_vid'] = array('table' => 'node', 'field' => 'vid');
+    $this->additional_fields['vid'] = 'vid';
+    $this->additional_fields['format'] = 'format';
+  }
+
+  function access() {
+    return user_access('delete revisions') || user_access('administer nodes');
+  }
+
+  function render($values) {
+    // ensure user has access to edit this node.
+    $node = new stdClass();
+    $node->nid = $values->{$this->aliases['nid']};
+    $node->vid = $values->{$this->aliases['vid']};
+    $node->uid = $values->{$this->aliases['uid']};
+    $node->format = $values->{$this->aliases['format']};
+    $node->status = 1; // unpublished nodes ignore access control
+    if (!node_access('delete', $node)) {
+      return;
+    }
+
+    // Current revision cannot be deleted.
+    if ($node->vid == $values->{$this->aliases['node_vid']}) {
+      return;
+    }
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
+    return l($text, "node/$node->nid/revisions/$node->vid/delete", array('query' => drupal_get_destination()));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision_link_revert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision_link_revert.inc
new file mode 100644
index 0000000..33cfc74
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_revision_link_revert.inc
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Field handler to present a link to revert a node to a revision
+ */
+class views_handler_field_node_revision_link_revert extends views_handler_field_node_link {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = array('table' => 'node', 'field' => 'uid');
+    $this->additional_fields['node_vid'] = array('table' => 'node', 'field' => 'vid');
+    $this->additional_fields['vid'] = 'vid';
+    $this->additional_fields['format'] = 'format';
+  }
+
+  function access() {
+    return user_access('revert revisions') || user_access('administer nodes');
+  }
+
+  function render($values) {
+    // ensure user has access to edit this node.
+    $node = new stdClass();
+    $node->nid = $values->{$this->aliases['nid']};
+    $node->vid = $values->{$this->aliases['vid']};
+    $node->uid = $values->{$this->aliases['uid']};
+    $node->format = $values->{$this->aliases['format']};
+    $node->status = 1; // unpublished nodes ignore access control
+    if (!node_access('update', $node)) {
+      return;
+    }
+
+    // Current revision cannot be reverted.
+    if ($node->vid == $values->{$this->aliases['node_vid']}) {
+      return;
+    }
+
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('revert');
+    return l($text, "node/$node->nid/revisions/$node->vid/revert", array('query' => drupal_get_destination()));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_type.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_type.inc
new file mode 100644
index 0000000..e5afb39
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_field_node_type.inc
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * Field handler to translate a node type into its readable form.
+ */
+class views_handler_field_node_type extends views_handler_field_node {
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['machine_name'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  /**
+   * Provide machine_name option for to node type display.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['machine_name'] = array(
+      '#title' => t('Output machine name'),
+      '#description' => t('Display field as the node type machine name.'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['machine_name']),
+    );
+  }
+
+  /**
+   * Render node type as human readable name, unless using machine_name option.
+   */
+  function render_name($data, $values) {
+    if ($this->options['machine_name'] != 1 && $data !== NULL && $data !== '') {
+      return t(check_plain(node_get_types('name', $data)));
+    }
+    return check_plain($data);
+  }
+
+  function render($values) {
+    return $this->render_link($this->render_name($values->{$this->field_alias}, $values), $values);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_history_user_timestamp.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_history_user_timestamp.inc
new file mode 100644
index 0000000..a131cf1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_history_user_timestamp.inc
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Filter for new content
+ */
+class views_handler_filter_history_user_timestamp extends views_handler_filter {
+  // Don't display empty space where the operator would be.
+  var $no_operator = TRUE;
+
+  function expose_form_right(&$form, &$form_state) {
+    // We don't want any of the usual options for exposed filters.
+  }
+
+  function value_form(&$form, &$form_state) {
+    // Only present a checkbox for the exposed filter itself. There's no way
+    // to tell the difference between not checked and the default value, so
+    // specifying the default value via the views UI is meaningless.
+    if (!empty($form_state['exposed'])) {
+      if (isset($this->options['expose']['label'])) {
+        $label = $this->options['expose']['label'];
+      }
+      else {
+        $label = t('Has new content');
+      }
+      $form['value'] = array(
+        '#type' => 'checkbox',
+        '#title' => $label,
+        '#default_value' => $this->value,
+      );
+    }
+  }
+
+  function query() {
+    global $user;
+    // This can only work if we're logged in.
+    if (!$user || !$user->uid) {
+      return;
+    }
+
+    // Don't filter if we're exposed and the checkbox isn't selected.
+    if ((!empty($this->options['exposed'])) && empty($this->value)) {
+      return;
+    }
+
+    // Hey, Drupal kills old history, so nodes that haven't been updated
+    // since NODE_NEW_LIMIT are bzzzzzzzt outta here!
+
+    $limit = time() - NODE_NEW_LIMIT;
+
+    $this->ensure_my_table();
+    $field = "$this->table_alias.$this->real_field";
+    $node = $this->query->ensure_table('node', $this->relationship);
+
+    if (module_exists('comment')) {
+      $ncs = $this->query->ensure_table('node_comment_statistics', $this->relationship);
+      $clause = ("OR $ncs.last_comment_timestamp > (***CURRENT_TIME*** - $limit)");
+      $clause2 = "OR $field < $ncs.last_comment_timestamp";
+    }
+
+    // NULL means a history record doesn't exist. That's clearly new content.
+    // Unless it's very very old content. Everything in the query is already
+    // type safe cause none of it is coming from outside here.
+    $this->query->add_where($this->options['group'], "($field IS NULL AND ($node.changed > (***CURRENT_TIME*** - $limit) $clause)) OR $field < $node.changed $clause2");
+  }
+
+  function admin_summary() {
+    if (!empty($this->options['exposed'])) {
+      return t('exposed');
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_access.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_access.inc
new file mode 100644
index 0000000..010a286
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_access.inc
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Filter by node_access records.
+ */
+class views_handler_filter_node_access extends views_handler_filter {
+  function admin_summary() { }
+  function operator_form(&$form, &$form_state) { }
+  function can_expose() {
+    return FALSE;
+  }
+
+  /**
+   * See _node_access_where_sql() for a non-views query based implementation.
+   */
+  function query() {
+    if (!user_access('administer nodes')) {
+      $table = $this->ensure_my_table();
+      $grants = array();
+      foreach (node_access_grants('view') as $realm => $gids) {
+        foreach ($gids as $gid) {
+          $grants[] = "($table.gid = $gid AND $table.realm = '$realm')";
+        }
+      }
+      $grants_sql = '';
+      if (count($grants)) {
+        $grants_sql = implode(' OR ', $grants);
+      }
+      $this->query->add_where('AND', $grants_sql);
+      $this->query->add_where('AND', "$table.grant_view >= 1");
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_status.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_status.inc
new file mode 100644
index 0000000..a91b5c6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_status.inc
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Filter by published status
+ */
+class views_handler_filter_node_status extends views_handler_filter {
+  function admin_summary() { }
+  function operator_form(&$form, &$form_state) { }
+
+  function query() {
+    $table = $this->ensure_my_table();
+    $this->query->add_where($this->options['group'], "$table.status = 1 OR ($table.uid = ***CURRENT_USER*** AND ***CURRENT_USER*** <> 0) OR ***ADMINISTER_NODES*** = 1");
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_type.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_type.inc
new file mode 100644
index 0000000..1f460f6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_handler_filter_node_type.inc
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Filter by node type
+ */
+class views_handler_filter_node_type extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Node type');
+      $types = node_get_types();
+      foreach ($types as $type => $info) {
+        $options[$type] = t($info->name);
+      }
+      asort($options);
+      $this->value_options = $options;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_argument_default_node.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_argument_default_node.inc
new file mode 100644
index 0000000..68f8809
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_argument_default_node.inc
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @file
+ * Contains the node from URL argument default plugin.
+ */
+
+/**
+ * Default argument plugin to extract a node via menu_get_object
+ */
+class views_plugin_argument_default_node extends views_plugin_argument_default {
+  function argument_form(&$form, &$form_state) {
+  }
+
+  function get_argument() {
+    foreach (range(1, 3) as $i) {
+      $node = menu_get_object('node', $i);
+      if (!empty($node)) {
+        return $node->nid;
+      }
+    }
+
+    if (arg(0) == 'node' && is_numeric(arg(1))) {
+      return arg(1);
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_argument_validate_node.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_argument_validate_node.inc
new file mode 100644
index 0000000..eb9b373
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_argument_validate_node.inc
@@ -0,0 +1,122 @@
+<?php
+/**
+ * @file
+ * Contains the 'node' argument validator plugin.
+ */
+
+/**
+ * Validate whether an argument is an acceptable node.
+ */
+class views_plugin_argument_validate_node extends views_plugin_argument_validate {
+  var $option_name = 'validate_argument_node_type';
+
+  function validate_form(&$form, &$form_state) {
+    $types = node_get_types();
+    foreach ($types as $type => $info) {
+      $options[$type] = check_plain(t($info->name));
+    }
+
+    $arg = $this->get_argument();
+    if (empty($arg)) {
+      $arg = array();
+    }
+
+    $form[$this->option_name] = array(
+      '#type' => 'checkboxes',
+      '#prefix' => '<div id="edit-options-validate-argument-node-type-wrapper">',
+      '#suffix' => '</div>',
+      '#title' => t('Types'),
+      '#options' => $options,
+      '#default_value' => $arg,
+      '#description' => t('If you wish to validate for specific node types, check them; if none are checked, all nodes will pass.'),
+      '#process' => array('expand_checkboxes', 'views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+    );
+
+    $form['validate_argument_node_access'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Validate user has access to the node'),
+      '#default_value' => !empty($this->argument->options['validate_argument_node_access']),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+    );
+
+    $form['validate_argument_nid_type'] = array(
+      '#type' => 'select',
+      '#title' => t('Argument type'),
+      '#options' => array(
+        'nid' => t('Node ID'),
+        'nids' => t('Node IDs separated by , or +'),
+      ),
+      '#default_value' => isset($this->argument->options['validate_argument_nid_type']) ? $this->argument->options['validate_argument_nid_type'] : 'nid',
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+    );
+  }
+
+  function validate_argument($argument) {
+    $types = array_filter($this->argument->options[$this->option_name]);
+
+    $type = isset($this->argument->options['validate_argument_nid_type']) ? $this->argument->options['validate_argument_nid_type'] : 'nid';
+
+    switch ($type) {
+      case 'nid':
+        if (!is_numeric($argument)) {
+          return FALSE;
+        }
+        $node = node_load($argument);
+        if (!$node) {
+          return FALSE;
+        }
+
+        if (!empty($this->argument->options['validate_argument_node_access'])) {
+          if (!node_access('view', $node)) {
+            return FALSE;
+          }
+        }
+
+        // Save the title() handlers some work.
+        $this->argument->validated_title = check_plain($node->title);
+
+        if (empty($types)) {
+          return TRUE;
+        }
+
+        return isset($types[$node->type]);
+      break;
+      case 'nids':
+        $nids = new stdClass();
+        $nids->value = array($argument);
+        $nids = views_break_phrase($argument, $nids);
+        if ($nids->value == -1) {
+          return FALSE;
+        }
+
+        $placeholders = implode(', ', array_fill(0, sizeof($nids->value), '%d'));
+
+        $test = drupal_map_assoc($nids->value);
+        $titles = array();
+
+        $result = db_query("SELECT * FROM {node} WHERE nid IN ($placeholders)", $nids->value);
+        while ($node = db_fetch_object($result)) {
+          if ($types && empty($types[$node->type])) {
+            return FALSE;
+          }
+
+          if (!empty($this->argument->options['validate_argument_node_access'])) {
+            if (!node_access('view', $node)) {
+              return FALSE;
+            }
+          }
+
+          $titles[] = check_plain($node->title);
+          unset($test[$node->nid]);
+        }
+
+        $this->argument->validated_title = implode($nids->operator == 'or' ? ' + ' : ', ', $titles);
+        // If this is not empty, we did not find a nid.
+        return empty($test);
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_row_node_rss.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_row_node_rss.inc
new file mode 100644
index 0000000..79bb3bd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_row_node_rss.inc
@@ -0,0 +1,141 @@
+<?php
+/**
+ * @file
+ * Contains the node RSS row style plugin.
+ */
+
+/**
+ * Plugin which performs a node_view on the resulting object
+ * and formats it as an RSS item.
+ */
+class views_plugin_row_node_rss extends views_plugin_row {
+  // Basic properties that let the row style follow relationships.
+  var $base_table = 'node';
+  var $base_field = 'nid';
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['item_length'] = array('default' => 'default');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['item_length'] = array(
+      '#type' => 'select',
+      '#title' => t('Display type'),
+      '#options' => array(
+        'fulltext' => t('Full text'),
+        'teaser' => t('Title plus teaser'),
+        'title' => t('Title only'),
+        'default' => t('Use default RSS settings'),
+      ),
+      '#default_value' => $this->options['item_length'],
+    );
+  }
+
+  function render($row) {
+    // For the most part, this code is taken from node_feed() in node.module
+    global $base_url;
+
+    $nid = $row->{$this->field_alias};
+    if (!is_numeric($nid)) {
+      return;
+    }
+
+    $item_length = $this->options['item_length'];
+    if ($item_length == 'default') {
+      $item_length = variable_get('feed_item_length', 'teaser');
+    }
+
+    // Load the specified node:
+    $node = node_load($nid);
+    if (empty($node)) {
+      return;
+    }
+
+    $node->build_mode = NODE_BUILD_RSS;
+
+    if ($item_length != 'title') {
+      $teaser = ($item_length == 'teaser') ? TRUE : FALSE;
+
+      // Filter and prepare node teaser
+      if (node_hook($node, 'view')) {
+        $node = node_invoke($node, 'view', $teaser, FALSE);
+      }
+      else {
+        $node = node_prepare($node, $teaser);
+      }
+
+      // Allow modules to change $node->teaser before viewing.
+      node_invoke_nodeapi($node, 'view', $teaser, FALSE);
+    }
+
+    // Set the proper node part, then unset unused $node part so that a bad
+    // theme can not open a security hole.
+    $content = drupal_render($node->content);
+    if ($teaser) {
+      $node->teaser = $content;
+      unset($node->body);
+    }
+    else {
+      $node->body = $content;
+      unset($node->teaser);
+    }
+
+    // Allow modules to modify the fully-built node.
+    node_invoke_nodeapi($node, 'alter', $teaser, FALSE);
+
+    $item = new stdClass();
+    $item->title = $node->title;
+    $item->link = url("node/$row->nid", array('absolute' => TRUE));
+    $item->nid = $node->nid;
+    $item->readmore = $node->readmore;
+
+    // Allow modules to add additional item fields and/or modify $item
+    $extra = node_invoke_nodeapi($node, 'rss item');
+    $item->elements = array_merge($extra,
+      array(
+        array('key' => 'pubDate', 'value' => gmdate('r', $node->created)),
+        array(
+          'key' => 'dc:creator',
+          'value' => $node->name,
+          'namespace' => array('xmlns:dc' => 'http://purl.org/dc/elements/1.1/'),
+        ),
+        array(
+          'key' => 'guid',
+          'value' => $node->nid . ' at ' . $base_url,
+          'attributes' => array('isPermaLink' => 'false')
+        ),
+      )
+    );
+
+    foreach ($item->elements as $element) {
+      if (isset($element['namespace'])) {
+        $this->view->style_plugin->namespaces = array_merge($this->view->style_plugin->namespaces, $element['namespace']);
+      }
+    }
+
+    // Prepare the item description
+    switch ($item_length) {
+      case 'fulltext':
+        $item->description = $node->body;
+        break;
+      case 'teaser':
+        $item->description = $node->teaser;
+        if (!empty($item->readmore)) {
+          $item->description .= '<p>' . l(t('read more'), 'node/' . $item->nid, array('absolute' => TRUE, 'attributes' => array('target' => '_blank'))) . '</p>';
+        }
+        break;
+      case 'title':
+        $item->description = '';
+        break;
+    }
+
+    return theme($this->theme_functions(), $this->view, $this->options, $item);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_row_node_view.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_row_node_view.inc
new file mode 100644
index 0000000..100e8b3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/node/views_plugin_row_node_view.inc
@@ -0,0 +1,72 @@
+<?php
+/**
+ * @file
+ * Contains the node view row style plugin.
+ */
+
+/**
+ * Plugin which performs a node_view on the resulting object.
+ *
+ * Most of the code on this object is in the theme function.
+ */
+class views_plugin_row_node_view extends views_plugin_row {
+  // Basic properties that let the row style follow relationships.
+  var $base_table = 'node';
+  var $base_field = 'nid';
+
+  function init(&$view, &$display, $options = NULL) {
+    parent::init($view, $display, $options);
+    // Handle existing views with the deprecated 'teaser' option.
+    if (isset($this->options['teaser'])) {
+      $this->options['build_mode'] = $this->options['teaser'] ? 'teaser' : 'full';
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['build_mode'] = array('default' => 'teaser');
+    $options['links'] = array('default' => TRUE);
+    $options['comments'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // CCK holds the registry of available build modes, but can hardly
+    // push them as options for the node row style, so we break the normal
+    // rule of not directly relying on non-core modules.
+    if ($modes = module_invoke('content', 'build_modes')) {
+      $options = array();
+      foreach ($modes as $key => $value) {
+        if (isset($value['views style']) && $value['views style']) {
+          $options[$key] = $value['title'];
+        }
+      }
+    }
+    else {
+      $options = array(
+        'teaser' => t('Teaser'),
+        'full' => t('Full node')
+      );
+    }
+    $form['build_mode'] = array(
+      '#type' => 'select',
+      '#options' => $options,
+      '#title' => t('Build mode'),
+      '#default_value' => $this->options['build_mode'],
+     );
+    $form['links'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display links'),
+      '#default_value' => $this->options['links'],
+    );
+    $form['comments'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display node comments'),
+      '#default_value' => $this->options['comments'],
+    );
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/poll.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/poll.views.inc
new file mode 100644
index 0000000..1e93ce1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/poll.views.inc
@@ -0,0 +1,55 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for poll.module
+ */
+
+/**
+ * @defgroup views_poll_module poll.module handlers
+ *
+ * Includes only the core 'poll' table for now.
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function poll_views_data() {
+  // Basic table information.
+  $data['poll']['table']['group']  = t('Poll');
+
+  // Join to 'node' as a base table.
+  $data['poll']['table']['join'] = array(
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'nid',
+    ),
+  );
+
+  // ----------------------------------------------------------------
+  // Fields
+
+  // poll active status
+  $data['poll']['active'] = array(
+    'title' => t('Active'),
+    'help' => t('Whether the poll is open for voting.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Active'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/profile.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/profile.views.inc
new file mode 100644
index 0000000..14037f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/profile.views.inc
@@ -0,0 +1,245 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for user.module
+ */
+
+/**
+ * @defgroup views_profile_module profile.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function profile_views_data() {
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['profile_values']['table']['group']  = t('Profile');
+
+  $data['profile_values']['table']['join'] = array(
+    'node' => array(
+      'left_table' => 'profile_values',
+      'left_field' => 'uid',
+      'field' => 'uid',
+    ),
+    'users' => array(
+      'left_table' => 'profile_values',
+      'left_field' => 'uid',
+      'field' => 'uid',
+    ),
+  );
+
+  $fields = profile_views_get_fields();
+  foreach ($fields as $field) {
+    $table_name = 'profile_values_' . str_replace('-', '_', $field->name);
+    $data[$table_name] = array(
+      'table' => array(
+        'group' => t('Profile'),
+        'join' => array(
+          'node' => array(
+            'table' => 'profile_values',
+            'left_table' => 'users',
+            'left_field' => 'uid',
+            'field' => 'uid',
+            'extra' => array(array('field' => 'fid', 'value' => $field->fid)),
+          ),
+          'users' => array(
+            'table' => 'profile_values',
+            'left_field' => 'uid',
+            'field' => 'uid',
+            'extra' => array(array('field' => 'fid', 'value' => $field->fid)),
+          ),
+        ),
+      ),
+    );
+    // All fields in the table are named 'value'.
+    $data[$table_name]['value'] = profile_views_fetch_field($field);
+  }
+
+  return $data;
+}
+
+/**
+ * Get all profile fields
+ */
+function profile_views_get_fields() {
+  static $fields = NULL;
+
+  if (!isset($fields)) {
+    $fields = array();
+    $results = db_query("SELECT * FROM {profile_fields} ORDER BY category, weight");
+
+    while ($row = db_fetch_object($results)) {
+      if (!empty($row->options)) {
+        if (!in_array(substr($row->options, 0, 2), array('a:', 'b:', 'i:', 'f:', 'o:', 's:', ))) {
+          // unserialized fields default version
+          $options = $row->options;
+          unset($row->options);
+          $row->options = $options;
+        }
+        else {
+          // serialized fields or modified version
+          $row->options = unserialize(db_decode_blob($row->options));
+        }
+      }
+      $fields[$row->fid] = $row;
+    }
+  }
+  return $fields;
+}
+
+
+/**
+ * Add profile fields to view table
+ */
+function profile_views_fetch_field($field) {
+  $data = array(
+    'title' => t('@category: @field-name', array('@category' => $field->category, '@field-name' => $field->title)),
+  );
+
+  // Add fields specific to the profile type.
+  switch ($field->type) {
+    case 'textfield':
+      $data += array(
+        'help' => t('Profile textfield'),
+        'field' => array(
+          'handler' => 'views_handler_field_user',
+          'click sortable' => TRUE,
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_string',
+        ),
+        'argument' => array(
+          'handler' => 'views_handler_argument_string',
+        ),
+      );
+
+      break;
+    case 'textarea':
+      $data += array(
+        'help' => t('Profile textarea'),
+        'field' => array(
+          'handler' => 'views_handler_field_markup',
+          'format' => FILTER_FORMAT_DEFAULT,
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_string',
+        ),
+      );
+
+      break;
+    case 'checkbox':
+      $data += array(
+        'help' => t('Profile checkbox'),
+        'field' => array(
+          'handler' => 'views_handler_field_boolean',
+          'click sortable' => TRUE,
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_boolean_operator',
+          'accept null' => TRUE,
+        ),
+        // @todo there ought to be a boolean argument handler
+      );
+
+      break;
+    case 'url':
+      $data += array(
+        'help' => t('Profile URL'),
+        'field' => array(
+          'handler' => 'views_handler_field_url',
+          'click sortable' => TRUE,
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_string',
+        ),
+      );
+
+      break;
+    case 'selection':
+      $data += array(
+        'help' => t('Profile selection'),
+        'field' => array(
+          'handler' => 'views_handler_field',
+          'click sortable' => TRUE,
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_profile_selection',
+          'fid' => $field->fid,
+        ),
+        'argument' => array(
+          'handler' => 'views_handler_argument_string',
+        ),
+      );
+
+      break;
+    case 'list':
+      $data += array(
+        'help' => t('Profile freeform list %field-name.', array('%field-name' => $field->title)),
+        'field' => array(
+          'handler' => 'views_handler_field_profile_list',
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_string',
+        ),
+      );
+
+      break;
+    case 'date':
+      $data += array(
+        'help' => t('Profile date %field-name.', array('%field-name' => $field->title)),
+        'field' => array(
+          'handler' => 'views_handler_field_profile_date',
+        ),
+      );
+
+      break;
+  }
+
+  // @todo: add access control to hidden fields.
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function profile_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/profile',
+    ),
+    'handlers' => array(
+      'views_handler_field_profile_date' => array(
+        'parent' => 'views_handler_field_date',
+      ),
+      'views_handler_field_profile_list' => array(
+        'parent' => 'views_handler_field_prerender_list',
+      ),
+      'views_handler_filter_profile_selection' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+    ),
+  );
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/profile.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/profile.views_convert.inc
new file mode 100644
index 0000000..ee3557e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/profile.views_convert.inc
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function profile_views_convert($display, $type, &$view, $field, $id = NULL) {
+  static $profile_fields;
+  if (!isset($profile_fields)) {
+    $profile_fields = array();
+    foreach (profile_views_get_fields() as $profile_field) {
+      $profile_fields['profile_values_'. $profile_field->name] = $profile_field;
+    }
+  }
+  switch ($type) {
+    case 'filter':
+      if (isset($tables[$field['tablename']])) {
+        switch ($profile_fields[$field['tablename']]->type) {
+          case 'vocabulary':
+          case 'selection':
+            $operators = array('AND' => 'in', 'OR' => 'in', 'NOR' => 'not in');
+            $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+            break;
+          default:
+            $view->set_item_option($display, 'filter', $id, 'operator', $field['operator']);
+            break;
+        }
+      }
+      break;
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_field_profile_date.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_field_profile_date.inc
new file mode 100644
index 0000000..a17981a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_field_profile_date.inc
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Field handler display a profile date
+ *
+ * The dates are stored serialized, which makes them mostly useless from
+ * SQL. About all we can do is unserialize and display them.
+ */
+class views_handler_field_profile_date extends views_handler_field_date {
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    // we can't do "time ago" so remove it from the form.
+    unset($form['date_format']['#options']['time ago']);
+  }
+
+  /**
+   * Display a profile field of type 'date'
+   */
+  function render($value) {
+    if (!$value->{$this->field_alias}) {
+      return;
+    }
+    $value = unserialize($value->{$this->field_alias});
+    $format = $this->options['date_format'];
+    switch ($format) {
+      case 'custom':
+        $format = $this->options['custom_date_format'];
+        break;
+      case 'small':
+        $format = variable_get('date_format_short', 'm/d/Y - H:i');
+        break;
+      case 'medium':
+        $format = variable_get('date_format_medium', 'D, m/d/Y - H:i');
+        break;
+      case 'large':
+        $format = variable_get('date_format_long', 'l, F j, Y - H:i');
+        break;
+    }
+
+    // Note: Avoid PHP's date() because it does not handle dates before
+    // 1970 on Windows. This would make the date field useless for e.g.
+    // birthdays.
+
+    // But we *can* deal with non-year stuff:
+    $date = gmmktime(0, 0, 0, $value['month'], $value['day'], 1970);
+    $replace = array(
+      // day
+      'd' => sprintf('%02d', $value['day']),
+      'D' => NULL,
+      'l' => NULL,
+      'N' => NULL,
+      'S' => date('S', $date),
+      'w' => NULL,
+      'j' => $value['day'],
+      // month
+      'F' => date('F', $date),
+      'm' => sprintf('%02d', $value['month']),
+      'M' => date('M', $date),
+      'n' => date('n', $date),
+
+      'Y' => $value['year'],
+      'y' => substr($value['year'], 2, 2),
+
+      // kill time stuff
+      'a' => NULL,
+      'A' => NULL,
+      'g' => NULL,
+      'G' => NULL,
+      'h' => NULL,
+      'H' => NULL,
+      'i' => NULL,
+      's' => NULL,
+      ':' => NULL,
+      'T' => NULL,
+      ' - ' => NULL,
+      ':' => NULL,
+    );
+
+    return strtr($format, $replace);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_field_profile_list.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_field_profile_list.inc
new file mode 100644
index 0000000..5090212
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_field_profile_list.inc
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Field handler display a profile list item.
+ */
+class views_handler_field_profile_list extends views_handler_field_prerender_list {
+  /**
+   * Break up our field into a proper list.
+   */
+  function pre_render(&$values) {
+    $this->items = array();
+    foreach ($values as $value) {
+      $field = $value->{$this->field_alias};
+      $this->items[$field] = array();
+      foreach (split("[,\n\r]", $field) as $item) {
+        if ($item != '' && $item !== NULL) {
+          $this->items[$field][] = array('item' => $item);
+        }
+      }
+    }
+  }
+
+  function render_item($count, $item) {
+    return $item['item'];
+  }
+
+  function document_self_tokens(&$tokens) {
+    $tokens['[' . $this->options['id'] . '-item' . ']'] = t('The text of the profile item.');
+  }
+
+  function add_self_tokens(&$tokens, $item) {
+    $tokens['[' . $this->options['id'] . '-item' . ']'] = $item['item'];
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_filter_profile_selection.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_filter_profile_selection.inc
new file mode 100644
index 0000000..bf76ec7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/profile/views_handler_filter_profile_selection.inc
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * Filter by a selection widget in the profile.
+ */
+class views_handler_filter_profile_selection extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (isset($this->value_options)) {
+      return;
+    }
+
+    $this->value_options = array();
+    $all_options = profile_views_get_fields();
+    $field = $all_options[$this->definition['fid']];
+
+    $lines = split("[,\n\r]", $field->options);
+    foreach ($lines as $line) {
+      if ($line = trim($line)) {
+        $this->value_options[$line] = $line;
+      }
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/search.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/search.views.inc
new file mode 100644
index 0000000..a2dddcb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/search.views.inc
@@ -0,0 +1,223 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for search.module
+ */
+
+/**
+ * @defgroup views_search_module search.module handlers
+ *
+ * Includes the tables 'search_index'
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function search_views_data() {
+  // Basic table information.
+
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['search_index']['table']['group']  = t('Search');
+
+  // For other base tables, explain how we join
+  $data['search_index']['table']['join'] = array(
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'sid',
+    ),
+  );
+
+  $data['search_total']['table']['join'] = array(
+    'node' => array(
+      'left_table' => 'search_index',
+      'left_field' => 'word',
+      'field' => 'word',
+    ),
+    'users' => array(
+      'left_table' => 'search_index',
+      'left_field' => 'word',
+      'field' => 'word',
+    )
+  );
+
+  $data['search_dataset']['table']['join'] = array(
+    'node' => array(
+      'left_table' => 'search_index',
+      'left_field' => 'sid',
+      'field' => 'sid',
+      'extra' => 'search_index.type = search_dataset.type',
+      'type' => 'INNER',
+    ),
+    'users' => array(
+      'left_table' => 'search_index',
+      'left_field' => 'sid',
+      'field' => 'sid',
+      'extra' => 'search_index.type = search_dataset.type',
+      'type' => 'INNER',
+    ),
+  );
+
+  // ----------------------------------------------------------------
+  // Fields
+
+  // score
+  $data['search_index']['score'] = array(
+    'title' => t('Score'),
+    'help' => t('The score of the search item. This will not be used if the search filter is not also present.'),
+    'field' => array(
+      'handler' => 'views_handler_field_search_score',
+      'click sortable' => TRUE,
+      'float' => TRUE,
+    ),
+    // Information for sorting on a search score.
+    'sort' => array(
+      'handler' => 'views_handler_sort_search_score',
+    ),
+  );
+
+  // Search node links: forward links.
+  $data['search_node_links_from']['table']['group'] = t('Search');
+  $data['search_node_links_from']['table']['join'] = array(
+    'node' => array(
+      'arguments' => array('search_node_links', 'node', 'nid', 'nid', NULL, 'INNER'),
+    ),
+  );
+  $data['search_node_links_from']['sid'] = array(
+    'title' => t('Links from'),
+    'help' => t('Other nodes that are linked from the node.'),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_nid',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_equality',
+    ),
+  );
+
+  // Search node links: backlinks.
+  $data['search_node_links_to']['table']['group'] = t('Search');
+  $data['search_node_links_to']['table']['join'] = array(
+    'node' => array(
+      'arguments' => array('search_node_links', 'node', 'nid', 'sid', NULL, 'INNER'),
+    ),
+  );
+  $data['search_node_links_to']['nid'] = array(
+    'title' => t('Links to'),
+    'help' => t('Other nodes that link to the node.'),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_nid',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_equality',
+    ),
+  );
+
+  // search filter
+  $data['search_index']['keys'] = array(
+    'title' => t('Search Terms'), // The item it appears as on the UI,
+    'help' => t('The terms to search for.'), // The help that appears on the UI,
+    // Information for searching terms using the full search syntax
+    'filter' => array(
+      'handler' => 'views_handler_filter_search',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function search_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/search',
+    ),
+    'handlers' => array(
+      'views_handler_field_search_score' => array(
+        'parent' => 'views_handler_field_numeric',
+      ),
+      'views_handler_sort_search_score' => array(
+        'parent' => 'views_handler_sort',
+      ),
+      'views_handler_filter_search' => array(
+        'parent' => 'views_handler_filter',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function search_views_plugins() {
+  return;
+  // DISABLED. This currently doesn't work.
+  return array(
+    'module' => 'views', // This just tells our themes are elsewhere.
+    'row' => array(
+      'search' => array(
+        'title' => t('Search'),
+        'help' => t('Display the results with standard search view.'),
+        'handler' => 'views_plugin_row_search_view',
+        'path' => drupal_get_path('module', 'views') . '/modules/search', // not necessary for most modules
+        'theme' => 'views_view_row_search',
+        'base' => array('node'), // only works with 'node' as base.
+        'type' => 'normal',
+      ),
+    ),
+  );
+}
+
+/**
+ * Template helper for theme_views_view_row_search
+ */
+function template_preprocess_views_view_row_search(&$vars) {
+  $vars['node'] = ''; // make sure var is defined.
+  $nid = $vars['row']->nid;
+  if (!is_numeric($nid)) {
+    return;
+  }
+
+  $node = node_load($nid);
+
+  if (empty($node)) {
+    return;
+  }
+
+  // Build the node body.
+  $node = node_build_content($node, FALSE, FALSE);
+  $node->body = drupal_render($node->content);
+
+  // Fetch comments for snippet
+  $node->body .= module_invoke('comment', 'nodeapi', $node, 'update index');
+
+  // Fetch terms for snippet
+  $node->body .= module_invoke('taxonomy', 'nodeapi', $node, 'update index');
+
+  $vars['url'] = url('node/' . $nid);
+  $vars['title'] = check_plain($node->title);
+
+  $info = array();
+  $info['type'] = node_get_types('name', $node);
+  $info['user'] = theme('username', $node);
+  $info['date'] = format_date($node->changed, 'small');
+  $extra = node_invoke_nodeapi($node, 'search result');
+  if (isset($extra) && is_array($extra)) {
+    $info = array_merge($info, $extra);
+  }
+  $vars['info_split'] = $info;
+  $vars['info'] = implode(' - ', $info);
+
+  $vars['node'] = $node;
+  // @todo: get score from ???
+//$vars['score'] = $item->score;
+  $vars['snippet'] = search_excerpt($vars['view']->value, $node->body);
+}
+
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/search.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/search.views_convert.inc
new file mode 100644
index 0000000..ef8c456
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/search.views_convert.inc
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+function search_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'filter':
+      switch ($field['tablename']) {
+        case 'temp_search_results':
+          switch ($field['field']) {
+            case 'word':
+              $view->set_item_option($display, 'filter', $id, 'table', 'search_index');
+              $view->set_item_option($display, 'filter', $id, 'field', 'keys');
+              break;
+          }
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/search.views_default.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/search.views_default.inc
new file mode 100644
index 0000000..6f69fab
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/search.views_default.inc
@@ -0,0 +1,149 @@
+<?php
+/**
+ * @file
+ * Contains default views on behalf of the search module.
+ */
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function search_views_default_views() {
+  $view = new view;
+  $view->name = 'backlinks';
+  $view->description = 'Displays a list of nodes that link to the node, using the search backlinks table.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => '',
+      'relationship' => 'none',
+      'link_to_node' => 1,
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'nid' => array(
+      'id' => 'nid',
+      'table' => 'search_node_links_to',
+      'field' => 'nid',
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(
+        'count' => TRUE,
+        'override' => FALSE,
+        'items_per_page' => 25,
+      ),
+      'wildcard' => '',
+      'wildcard_substitution' => '',
+      'title' => 'Pages that link to %1',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'node',
+      'validate_fail' => 'not found',
+      'relationship' => 'none',
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(),
+      'validate_argument_php' => '',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status' => array(
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'operator' => '=',
+      'value' => 1,
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access content',
+  ));
+  $handler->override_option('empty', 'No backlinks found.');
+  $handler->override_option('empty_format', '1');
+  $handler->override_option('items_per_page', 30);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('style_plugin', 'list');
+  $handler->override_option('style_options', array(
+    'type' => 'ol',
+  ));
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'node/%/backlinks');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'What links here',
+    'weight' => '0',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler = $view->new_display('block', 'Block', 'block');
+  $handler->override_option('arguments', array(
+    'nid' => array(
+      'id' => 'nid',
+      'table' => 'search_node_links_to',
+      'field' => 'nid',
+      'default_action' => 'default',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(
+        'count' => TRUE,
+        'override' => FALSE,
+        'items_per_page' => 25,
+      ),
+      'wildcard' => '',
+      'wildcard_substitution' => '',
+      'title' => 'What links here',
+      'default_argument_type' => 'node',
+      'default_argument' => '',
+      'validate_type' => 'node',
+      'validate_fail' => 'not found',
+      'relationship' => 'none',
+      'default_argument_fixed' => '',
+      'default_argument_php' => 'return ($node = menu_get_object()) ? $node->nid : FALSE;',
+      'validate_argument_node_type' => array(
+        'album' => 0,
+        'artist' => 0,
+        'book' => 0,
+        'page' => 0,
+        'story' => 0,
+        'track' => 0,
+      ),
+      'validate_argument_php' => '',
+      'default_argument_user' => 0,
+      'validate_argument_vocabulary' => array(
+        '3' => 0,
+        '4' => 0,
+        '1' => 0,
+        '5' => 0,
+        '2' => 0,
+      ),
+      'validate_argument_type' => 'tid',
+    ),
+  ));
+  $handler->override_option('items_per_page', 6);
+  $handler->override_option('use_more', 1);
+  $handler->override_option('style_plugin', 'list');
+  $handler->override_option('style_options', array(
+    'type' => 'ul',
+  ));
+  $handler->override_option('block_description', 'What links here');
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_field_search_score.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_field_search_score.inc
new file mode 100644
index 0000000..2667a04
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_field_search_score.inc
@@ -0,0 +1,81 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that allows linking to a node.
+ */
+class views_handler_field_search_score extends views_handler_field_numeric {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['alternate_sort'] = array('default' => '');
+    $options['alternate_order'] = array('default' => 'asc');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $style_options = $this->view->display_handler->get_option('style_options');
+    if (isset($style_options['default']) && $style_options['default'] == $this->options['id']) {
+      $handlers = $this->view->display_handler->get_handlers('field');
+      $options = array('' => t('No alternate'));
+      foreach ($handlers as $id => $handler) {
+        $options[$id] = $handler->ui_name();
+      }
+
+      $form['alternate_sort'] = array(
+        '#type' => 'select',
+        '#title' => t('Alternative sort'),
+        '#description' => t('Pick an alternative default table sort field to use when the search score field is unavailable.'),
+        '#options' => $options,
+        '#default_value' => $this->options['alternate_sort'],
+      );
+
+      $form['alternate_order'] = array(
+        '#type' => 'select',
+        '#title' => t('Alternate sort order'),
+        '#options' => array('asc' => t('Ascending'), 'desc' => t('Descending')),
+        '#default_value' => $this->options['alternate_order'],
+      );
+    }
+
+    parent::options_form($form, $form_state);
+  }
+
+  function query() {
+    // Check to see if the search filter added 'score' to the table.
+    // Our filter stores it as $handler->search_score -- and we also
+    // need to check its relationship to make sure that we're using the same
+    // one or obviously this won't work.
+    foreach ($this->view->filter as $handler) {
+      if (isset($handler->search_score) && $handler->relationship == $this->relationship) {
+        $this->field_alias = $handler->search_score;
+        $this->table_alias = $handler->table_alias;
+        return;
+      }
+    }
+
+    // Hide this field if no search filter is in place.
+    $this->options['exclude'] = TRUE;
+    if (!empty($this->options['alternate_sort'])) {
+      if (isset($this->view->style_plugin->options['default']) && $this->view->style_plugin->options['default'] == $this->options['id']) {
+        // Since the style handler initiates fields, we plug these values right into the active handler.
+        $this->view->style_plugin->options['default'] = $this->options['alternate_sort'];
+        $this->view->style_plugin->options['order'] = $this->options['alternate_order'];
+      }
+    }
+  }
+
+  function click_sort($order) {
+    if (isset($this->table_alias)) {
+       $this->query->add_orderby(NULL, NULL, $order, $this->field_alias);
+    }
+  }
+
+  function render($values) {
+    // Only render if we exist.
+    if (isset($this->table_alias)) {
+      return parent::render($values);
+    }
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_filter_search.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_filter_search.inc
new file mode 100644
index 0000000..630c259
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_filter_search.inc
@@ -0,0 +1,112 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that allows linking to a node.
+ */
+class views_handler_filter_search extends views_handler_filter {
+  var $no_single = TRUE;
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['operator']['default'] = 'optional';
+
+    return $options;
+  }
+
+  /**
+   * Provide simple equality operator
+   */
+  function operator_form(&$form, &$form_state) {
+    $form['operator'] = array(
+      '#type' => 'radios',
+      '#title' => t('On empty input'),
+      '#default_value' => $this->operator,
+      '#options' => array(
+        'optional' => t('Show All'),
+        'required' => t('Show None'),
+      ),
+    );
+  }
+
+  /**
+   * Provide a simple textfield for equality
+   */
+  function exposed_form(&$form, &$form_state) {
+    if (isset($this->options['expose']['identifier'])) {
+      $key = $this->options['expose']['identifier'];
+      $form[$key] = array(
+        '#type' => 'textfield',
+        '#size' => 15,
+        '#default_value' => $this->value,
+        '#attributes' => array('title' => t('Enter the terms you wish to search for.')),
+      );
+    }
+  }
+
+  /**
+   * Validate the options form.
+   */
+  function exposed_validate(&$form, &$form_state) {
+    if (!isset($this->options['expose']['identifier'])) {
+      return;
+    }
+
+    $key = $this->options['expose']['identifier'];
+    if (!empty($form_state['values'][$key])) {
+      $this->search_query = search_parse_query($form_state['values'][$key]);
+
+      if ($this->search_query[2] == '') {
+        form_set_error($key, t('You must include at least one positive keyword with @count characters or more.', array('@count' => variable_get('minimum_word_size', 3))));
+      }
+      if ($this->search_query[6]) {
+        if ($this->search_query[6] == 'or') {
+          drupal_set_message(t('Search for either of the two terms with uppercase <strong>OR</strong>. For example, <strong>cats OR dogs</strong>.'));
+        }
+      }
+    }
+  }
+
+  /**
+   * Add this filter to the query.
+   *
+   * Due to the nature of fapi, the value and the operator have an unintended
+   * level of indirection. You will find them in $this->operator
+   * and $this->value respectively.
+   */
+  function query() {
+    if (!isset($this->search_query) || empty($this->search_query[3])) {
+      if ($this->operator == 'required') {
+        $this->query->add_where($this->options['group'], 'FALSE');
+      }
+    }
+    else {
+      $search_index = $this->ensure_my_table();
+      $this->search_query[2] = str_replace('i.', "$search_index.", $this->search_query[2]);
+
+      // Create a new join to relate the 'serach_total' table to our current 'search_index' table.
+      $join = new views_join;
+      $join->construct('search_total', $search_index, 'word', 'word');
+      $search_total = $this->query->add_relationship('search_total', $join, $search_index);
+
+      $this->search_score = $this->query->add_field('', "SUM($search_index.score * $search_total.count)", 'score', array('aggregate' => TRUE));
+
+      $this->query->add_where($this->options['group'], $this->search_query[2], $this->search_query[3]);
+
+      if (empty($this->query->relationships[$this->relationship])) {
+        $base_table = $this->query->base_table;
+      }
+      else {
+        $base_table = $this->query->relationships[$this->relationship]['base'];
+      }
+      $this->query->add_where($this->options['group'], "$search_index.type = '%s'", $base_table);
+      if (!$this->search_query[5]) {
+        $search_dataset = $this->query->add_table('search_dataset');
+        $this->search_query[0] = str_replace('d.', "$search_dataset.", $this->search_query[0]);
+        $this->query->add_where($this->options['group'], $this->search_query[0], $this->search_query[1]);
+      }
+
+      $this->query->add_groupby("$search_index.sid");
+      $this->query->add_having($this->options['group'], 'COUNT(*) >= %d', $this->search_query[4]);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_sort_search_score.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_sort_search_score.inc
new file mode 100644
index 0000000..90c99ea
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_handler_sort_search_score.inc
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that allows linking to a node.
+ */
+class views_handler_sort_search_score extends views_handler_sort {
+  function query() {
+    // Check to see if the search filter added 'score' to the table.
+    // Our filter stores it as $handler->search_score -- and we also
+    // need to check its relationship to make sure that we're using the same
+    // one or obviously this won't work.
+    foreach ($this->view->filter as $handler) {
+      if (isset($handler->search_score) && $handler->relationship == $this->relationship) {
+        $this->query->add_orderby(NULL, NULL, $this->options['order'], $handler->search_score);
+        $this->table_alias = $handler->table_alias;
+        return;
+      }
+    }
+
+    // Do absolutely nothing if there is no filter in place; there is no reason to
+    // sort on the raw scores with this handler.
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_plugin_row_search_view.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_plugin_row_search_view.inc
new file mode 100644
index 0000000..f95540a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/search/views_plugin_row_search_view.inc
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * Contains the search row style plugin.
+ */
+
+/**
+ * Plugin which performs a node_view on the resulting object.
+ */
+class views_plugin_row_search_view extends views_plugin_row {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['score'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['score'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Display score'),
+      '#default_value' => $this->options['score'],
+    );
+  }
+
+  /**
+   * Override the behavior of the render() function.
+   */
+  function render($row) {
+    return theme($this->theme_functions(), $this->view, $this->options, $row);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views.inc
new file mode 100644
index 0000000..9f2514c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views.inc
@@ -0,0 +1,273 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for statistics.module
+ */
+
+/**
+ * @defgroup views_statistics_module statistics.module handlers
+ *
+ * Includes the ability to create views of just the statistics table.
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function statistics_views_data() {
+  // Basic table information.
+
+  // ----------------------------------------------------------------
+  // node_counter table
+
+  $data['node_counter']['table']['group']  = t('Node statistics');
+
+  $data['node_counter']['table']['join'] = array(
+    // ...to the node table
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'nid',
+    ),
+  );
+
+  // totalcount
+  $data['node_counter']['totalcount'] = array(
+    'title' => t('Total views'),
+    'help' => t('The total number of times the node has been viewed.'),
+
+    'field' => array(
+      'handler' => 'views_handler_field_statistics_numeric',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // daycount
+  $data['node_counter']['daycount'] = array(
+    'title' => t('Views today'),
+    'help' => t('The total number of times the node has been viewed today.'),
+
+    'field' => array(
+      'handler' => 'views_handler_field_statistics_numeric',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // timestamp
+  $data['node_counter']['timestamp'] = array(
+    'title' => t('Most recent view'),
+    'help' => t('The most recent time the node has been viewed.'),
+
+    'field' => array(
+      'handler' => 'views_handler_field_node_counter_timestamp',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+
+  // ----------------------------------------------------------------
+  // accesslog table
+
+  $data['accesslog']['table']['group']  = t('Access log');
+
+  // Advertise this table as a possible base table
+  $data['accesslog']['table']['base'] = array(
+    'field' => 'aid',
+    'title' => t('Access log'),
+    'help' => t('Stores site access information.'),
+    'weight' => 10,
+  );
+
+  // For other base tables, explain how we join
+  $data['accesslog']['table']['join'] = array(
+    'users' => array(
+      'field' => 'uid',
+      'left_field' => 'uid',
+     ),
+  );
+
+  // session id
+  $data['accesslog']['sid'] = array(
+    'title' => t('Session ID'),
+    'help' => t('Browser session ID of user that visited page.'),
+
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+     ),
+     'filter' => array(
+      'handler' => 'views_handler_filter_string',
+     ),
+     'argument' => array(
+       'handler' => 'views_handler_argument_string',
+     ),
+     'sort' => array(
+      'handler' => 'views_handler_sort',
+     ),
+  );
+
+  // title
+  $data['accesslog']['title'] = array(
+    'title' => t('Page title'),
+    'help' => t('Title of page visited.'),
+
+    'field' => array(
+      'handler' => 'views_handler_field_accesslog_path',
+      'click sortable' => TRUE,
+     ),
+     'filter' => array(
+      'handler' => 'views_handler_filter_string',
+     ),
+     'sort' => array(
+      'handler' => 'views_handler_sort',
+     ),
+     'argument' => array(
+      'handler' => 'views_handler_argument_string',
+     ),
+  );
+
+  // path
+  $data['accesslog']['path'] = array(
+    'title' => t('Path'),
+    'help' => t('Internal path to page visited (relative to Drupal root.)'),
+
+    'field' => array(
+      'handler' => 'views_handler_field_accesslog_path',
+      'click sortable' => TRUE,
+     ),
+     'filter' => array(
+       'handler' => 'views_handler_filter_string',
+     ),
+     'sort' => array(
+       'handler' => 'views_handler_sort',
+     ),
+     //No argument here.  Can't send forward slashes as arguments.
+     //Can be worked around by node ID.
+     //(but what about aliases?)
+  );
+
+  // referrer
+  $data['accesslog']['url'] = array(
+    'title' => t('Referrer'),
+    'help' => t('Referrer URI.'),
+    'field' => array(
+      'handler' => 'views_handler_field_url',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // hostname
+  $data['accesslog']['hostname'] = array(
+    'title' => t('Hostname'),
+    'help' => t('Hostname of user that visited the page.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // user
+  $data['accesslog']['uid'] = array(
+    'title' => t('User'),
+    'help' => t('The user who visited the site.'),
+    'relationship' => array(
+      'handler' => 'views_handler_relationship',
+      'base' => 'users',
+      'base field' => 'uid',
+     ),
+  );
+
+  // timer
+  $data['accesslog']['timer'] = array(
+    'title' => t('Timer'),
+    'help' => t('Time in milliseconds that the page took to load.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // timestamp
+  $data['accesslog']['timestamp'] = array(
+    'title' => t('Timestamp'),
+    'help' => t('Timestamp of when the page was visited.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function statistics_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/statistics',
+    ),
+    'handlers' => array(
+      'views_handler_field_accesslog_path' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_statistics_numeric' => array(
+        'parent' => 'views_handler_field_numeric',
+      ),
+      'views_handler_field_node_counter_timestamp' => array(
+        'parent' => 'views_handler_field_date',
+      ),
+    ),
+  );
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views_convert.inc
new file mode 100644
index 0000000..35007b9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views_convert.inc
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function statistics_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'field':
+      switch ($field['tablename']) {
+        case 'node_counter':
+          switch ($field['field']) {
+            case 'timestamp':
+              $handlers = array(
+                'views_handler_field_date_small' => 'small',
+                'views_handler_field_date' => 'medium',
+                'views_handler_field_date_large' => 'large',
+                'views_handler_field_date_custom' => 'custom',
+                'views_handler_field_since' => 'time ago',
+              );
+              $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
+              if (!empty($field['options'])) {
+                $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
+              }
+              break;
+          }
+          break;
+      }
+      break;
+    case 'sort':
+      switch ($field['tablename']) {
+        case 'node_counter':
+          switch ($field['field']) {
+            case 'timestamp':
+              $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
+              $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
+              break;
+          }
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views_default.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views_default.inc
new file mode 100644
index 0000000..7283033
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics.views_default.inc
@@ -0,0 +1,302 @@
+<?php
+/**
+ * @file
+ * Contains default views on behalf of the statistics module.
+ */
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function statistics_views_default_views() {
+  $view = new view;
+  $view->name = 'popular';
+  $view->description = 'Shows the most-viewed nodes on the site. This requires the statistics to be enabled at administer >> reports >> access log settings.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'type' => array(
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'label' => 'Type',
+    ),
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => 'Title',
+      'link_to_node' => TRUE,
+    ),
+    'name' => array(
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'label' => 'Author',
+      'link_to_user' => TRUE,
+    ),
+    'timestamp' => array(
+      'id' => 'timestamp',
+      'table' => 'history_user',
+      'field' => 'timestamp',
+      'label' => '',
+      'comments' => 1,
+      'relationship' => 'none',
+      'link_to_node' => 0,
+      'comment' => 1,
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'totalcount' => array(
+      'id' => 'totalcount',
+      'table' => 'node_counter',
+      'field' => 'totalcount',
+      'order' => 'DESC',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status' => array(
+      'id' => 'status',
+      'table' => 'node',
+      'field' => 'status',
+      'operator' => '=',
+      'value' => '1',
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+    ),
+    'totalcount' => array(
+      'id' => 'totalcount',
+      'table' => 'node_counter',
+      'field' => 'totalcount',
+      'operator' => '>',
+      'value' => array(
+        'value' => '0',
+        'min' => '',
+        'max' => '',
+      ),
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access content',
+  ));
+  $handler->override_option('title', 'Popular content');
+  $handler->override_option('items_per_page', '25');
+  $handler->override_option('use_pager', TRUE);
+  $handler->override_option('use_more', 1);
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'override' => 0,
+    'order' => 'desc',
+    'columns' => array(
+      'type' => 'type',
+      'title' => 'title',
+      'name' => 'name',
+      'timestamp' => 'title',
+      'totalcount' => 'totalcount',
+    ),
+    'info' => array(
+      'type' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'title' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'name' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+      'timestamp' => array(
+        'separator' => '',
+      ),
+      'totalcount' => array(
+        'sortable' => 0,
+        'separator' => '',
+      ),
+    ),
+    'default' => '-1',
+  ));
+  $handler = $view->new_display('page', 'Popular (page)', 'page');
+  $handler->override_option('path', 'popular/all');
+  $handler->override_option('menu', array(
+    'type' => 'default tab',
+    'title' => 'Popular content',
+    'weight' => '-1',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'normal',
+    'title' => 'Popular content',
+    'weight' => '',
+  ));
+  $handler = $view->new_display('page', 'Today (page)', 'page_1');
+  $handler->override_option('fields', array(
+    'type' => array(
+      'id' => 'type',
+      'table' => 'node',
+      'field' => 'type',
+      'label' => 'Type',
+    ),
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => 'Title',
+      'link_to_node' => TRUE,
+    ),
+    'name' => array(
+      'id' => 'name',
+      'table' => 'users',
+      'field' => 'name',
+      'label' => 'Author',
+      'link_to_user' => TRUE,
+    ),
+    'timestamp' => array(
+      'id' => 'timestamp',
+      'table' => 'history_user',
+      'field' => 'timestamp',
+      'label' => '',
+      'comments' => 1,
+      'relationship' => 'none',
+      'link_to_node' => 0,
+      'comment' => 1,
+    ),
+    'daycount' => array(
+      'id' => 'daycount',
+      'table' => 'node_counter',
+      'field' => 'daycount',
+      'label' => 'Views today',
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => '',
+      'suffix' => '',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'daycount' => array(
+      'id' => 'daycount',
+      'table' => 'node_counter',
+      'field' => 'daycount',
+      'order' => 'DESC',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('path', 'popular/today');
+  $handler->override_option('menu', array(
+    'type' => 'tab',
+    'title' => 'Today\'s popular content',
+    'weight' => '0',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'normal',
+    'title' => 'Popular content',
+    'weight' => '0',
+  ));
+  $handler = $view->new_display('block', 'Popular (block)', 'block');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => '',
+      'link_to_node' => 1,
+      'relationship' => 'none',
+    ),
+    'totalcount' => array(
+      'id' => 'totalcount',
+      'table' => 'node_counter',
+      'field' => 'totalcount',
+      'label' => '',
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => ' (',
+      'suffix' => ')',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('items_per_page', 5);
+  $handler->override_option('style_plugin', 'list');
+  $handler->override_option('style_options', array(
+    'type' => 'ul',
+  ));
+  $handler->override_option('row_options', array(
+    'inline' => array(
+      'title' => 'title',
+      'totalcount' => 'totalcount',
+    ),
+    'separator' => '',
+  ));
+  $handler->override_option('block_description', 'Popular content');
+  $handler = $view->new_display('block', 'Today (block)', 'block_1');
+  $handler->override_option('fields', array(
+    'title' => array(
+      'id' => 'title',
+      'table' => 'node',
+      'field' => 'title',
+      'label' => '',
+      'link_to_node' => 1,
+      'relationship' => 'none',
+    ),
+    'daycount' => array(
+      'id' => 'daycount',
+      'table' => 'node_counter',
+      'field' => 'daycount',
+      'label' => '',
+      'set_precision' => FALSE,
+      'precision' => 0,
+      'decimal' => '.',
+      'separator' => ',',
+      'prefix' => ' (',
+      'suffix' => ')',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('sorts', array(
+    'daycount' => array(
+      'id' => 'daycount',
+      'table' => 'node_counter',
+      'field' => 'daycount',
+      'order' => 'DESC',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('title', 'Today\'s popular content');
+  $handler->override_option('items_per_page', 5);
+  $handler->override_option('link_display', 'page_1');
+  $handler->override_option('style_plugin', 'list');
+  $handler->override_option('style_options', array(
+    'type' => 'ul',
+  ));
+  $handler->override_option('row_options', array(
+    'inline' => array(
+      'title' => 'title',
+      'daycount' => 'daycount',
+    ),
+    'separator' => '',
+  ));
+  $handler->override_option('block_description', 'Today\'s popular content');
+  $views[$view->name] = $view;
+
+  return $views;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_accesslog_path.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_accesslog_path.inc
new file mode 100644
index 0000000..5a2cd42
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_accesslog_path.inc
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Field handler to provide simple renderer that turns a URL into a clickable link.
+ */
+class views_handler_field_accesslog_path extends views_handler_field {
+  /**
+   * Override init function to provide generic option to link to node.
+   */
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if (!empty($this->options['display_as_link'])) {
+      $this->additional_fields['path'] = 'path';
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['display_as_link'] = array('default' => TRUE);
+
+    return $options;
+  }
+
+  /**
+   * Provide link to the page being visited.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['display_as_link'] = array(
+      '#title' => t('Display as link'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['display_as_link']),
+    );
+  }
+
+  function render($values) {
+    $title = check_plain($values->{$this->field_alias});
+    if (!empty($this->options['display_as_link'])) {
+      return l($title, $values->{$this->aliases['path']}, array('html' => TRUE));
+    }
+    else {
+      return $title;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_node_counter_timestamp.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_node_counter_timestamp.inc
new file mode 100644
index 0000000..d665519
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_node_counter_timestamp.inc
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_counter_timestamp.
+ */
+
+/**
+ * Field handler to present the most recent time the node has been viewed.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_node_counter_timestamp extends views_handler_field_date {
+  /**
+   * {@inheritdoc}
+   */
+  public function access() {
+    // Needs permission to see total page views.
+    return user_access('view post access counter');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_statistics_numeric.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_statistics_numeric.inc
new file mode 100644
index 0000000..3e60c8d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/statistics/views_handler_field_statistics_numeric.inc
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_statistics_numeric.
+ */
+
+/**
+ * Field handler to present numeric values from the statistics module.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_statistics_numeric extends views_handler_field_numeric {
+  /**
+   * {@inheritdoc}
+   */
+  public function access() {
+    // Needs permission to see total page views.
+    return user_access('view post access counter');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/system.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/system.views.inc
new file mode 100644
index 0000000..1894d41
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/system.views.inc
@@ -0,0 +1,229 @@
+<?php
+/**
+ * @file
+ *
+ * Provide views data and handlers for system tables that are not represented by
+ * their own module.
+ */
+
+/**
+ * @defgroup views_system_module system.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function system_views_data() {
+  $data = array();
+
+  // ----------------------------------------------------------------------
+  // files table
+
+  $data['files']['table']['group']  = t('File');
+
+  // Advertise this table as a possible base table
+  $data['files']['table']['base'] = array(
+    'field' => 'fid',
+    'title' => t('File'),
+    'help' => t("Files maintained by Drupal and various modules."),
+  );
+
+  // The files table does not inherently join to the node table,
+  // but may things (such as upload.module) can add relationships
+  // that allow file fields to be used.
+
+  // For other base tables, explain how we join
+  $data['files']['table']['join'] = array(
+    'users' => array(
+      // direct join to the users table via 'uid' field.
+      'left_field' => 'uid',
+      'field' => 'uid',
+     ),
+  );
+
+  // fid
+  $data['files']['fid'] = array(
+    'title' => t('File ID'),
+    'help' => t('The ID of the file.'),
+    'field' => array(
+      'handler' => 'views_handler_field_file',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_file_fid',
+      'name field' => 'filename', // the field to display in the summary.
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // filename
+  $data['files']['filename'] = array(
+    'title' => t('Name'),
+    'help' => t('The name of the file.'),
+    'field' => array(
+      'handler' => 'views_handler_field_file',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // filepath
+  $data['files']['filepath'] = array(
+    'title' => t('Path'),
+    'help' => t('The path of the file.'),
+    'field' => array(
+      'handler' => 'views_handler_field_file',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // filemime
+  $data['files']['filemime'] = array(
+    'title' => t('Mime type'),
+    'help' => t('The mime type of the file.'),
+    'field' => array(
+      'handler' => 'views_handler_field_file',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // filesize
+  $data['files']['filesize'] = array(
+    'title' => t('Size'),
+    'help' => t('The size of the file.'),
+    'field' => array(
+      'handler' => 'views_handler_field_file_size',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+  );
+
+  // status
+  $data['files']['status'] = array(
+    'title' => t('Status'),
+    'help' => t('The status of the file.'),
+    'field' => array(
+      'handler' => 'views_handler_field_file_status',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_file_status',
+    ),
+  );
+
+  // timestamp field
+  $data['files']['timestamp'] = array(
+    'title' => t('Upload date'),
+    'help' => t('The date the file was uploaded.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // uid field
+  $data['files']['uid'] = array(
+    'title' => t('User'),
+    'help' => t('The user, who uploaded the file.'),
+    'relationship' => array(
+      'base' => 'users',
+      'base field' => 'uid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('User'),
+    ),
+  );
+
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function system_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/system',
+    ),
+    'handlers' => array(
+      'views_handler_field_file' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_file_status' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_filter_file_status' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_argument_file_fid' => array(
+        'parent' => 'views_handler_argument',
+      ),
+    ),
+  );
+}
+
+function _views_file_status($choice = NULL) {
+  $status = array(
+    FILE_STATUS_TEMPORARY => t('Temporary'),
+    FILE_STATUS_PERMANENT => t('Permanent'),
+  );
+
+  if (isset($choice)) {
+    return isset($status[$choice]) ? $status[$choice] : t('Unknown');
+  }
+
+  return $status;
+}
+
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_argument_file_fid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_argument_file_fid.inc
new file mode 100644
index 0000000..755e0a3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_argument_file_fid.inc
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Argument handler to accept a file id.
+ */
+class views_handler_argument_file_fid extends views_handler_argument {
+  /**
+   * Override the behavior of title(). Get the title of the file.
+   */
+  function title() {
+    $title = db_result(db_query(db_rewrite_sql("SELECT f.filename FROM {files} f WHERE f.fid = %d", $this->argument)));
+    if (empty($title)) {
+      return t('No title');
+    }
+
+    return check_plain($title);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_field_file.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_field_file.inc
new file mode 100644
index 0000000..82b06cd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_field_file.inc
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Field handler to provide simple renderer that allows linking to a file.
+ */
+class views_handler_field_file extends views_handler_field {
+  /**
+   * Constructor to provide additional field to add.
+   */
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if (!empty($options['link_to_file'])) {
+      $this->additional_fields['filepath'] = 'filepath';
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_file'] = array('default' => FALSE);
+    return $options;
+  }
+
+  /**
+   * Provide link to file option
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_file'] = array(
+      '#title' => t('Link this field to download the file'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_file']),
+    );
+  }
+
+  /**
+   * Render whatever the data is as a link to the file.
+   *
+   * Data should be made XSS safe prior to calling this function.
+   */
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_file']) && $data !== NULL && $data !== '') {
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = file_create_url($values->{$this->aliases['filepath']});
+    }
+
+    return $data;
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_field_file_status.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_field_file_status.inc
new file mode 100644
index 0000000..e4bbcc8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_field_file_status.inc
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Field handler to translate a node type into its readable form.
+ */
+class views_handler_field_file_status extends views_handler_field {
+  function render($values) {
+    return _views_file_status($values->{$this->field_alias});
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_filter_file_status.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_filter_file_status.inc
new file mode 100644
index 0000000..16dce1b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/system/views_handler_filter_file_status.inc
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Filter by file status
+ */
+class views_handler_filter_file_status extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_options = _views_file_status();
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views.inc
new file mode 100644
index 0000000..5a243b2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views.inc
@@ -0,0 +1,499 @@
+<?php
+/**
+ * @file
+ *
+ * Provide views data and handlers for taxonomy.module
+ */
+
+/**
+ * @defgroup views_taxonomy_module taxonomy.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function taxonomy_views_data() {
+  $data = array();
+
+  // ----------------------------------------------------------------------
+  // vocabulary table
+
+  $data['vocabulary']['table']['group']  = t('Taxonomy');
+
+  $data['vocabulary']['table']['join'] = array(
+    // vocabulary links to term_data directly via vid.
+    'term_data' => array(
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+    // vocabulary links to node through term_data via vid
+    'node' => array(
+      'left_table' => 'term_data',
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+    // vocabulary links to node_revision via term_data
+    'node_revision' => array(
+      'left_table' => 'term_data',
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+  );
+
+  // vocabulary name
+  $data['vocabulary']['name'] = array(
+    'title' => t('Vocabulary name'), // The item it appears as on the UI,
+    'field' => array(
+      'help' => t('Name of the vocabulary a term is a member of. This will be the vocabulary that whichever term the "Taxonomy: Term" field is; and can similarly cause duplicates.'),
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+  );
+  $data['vocabulary']['vid'] = array(
+    'title' => t('Vocabulary ID'), // The item it appears as on the UI,
+    'help' => t('The taxonomy vocabulary ID'),
+    'argument' => array(
+      'handler' => 'views_handler_argument_vocabulary_vid',
+      'name field' => 'name',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // term_data table
+
+  $data['term_data']['table']['group']  = t('Taxonomy');
+  $data['term_data']['table']['base'] = array(
+    'field' => 'tid',
+    'title' => t('Term'),
+    'help' => t('Taxonomy terms are attached to nodes.'),
+  );
+
+
+  // The term data table
+  $data['term_data']['table']['join'] = array(
+    'node' => array(
+      'left_table' => 'term_node',
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+    'node_revision' => array(
+      'left_table' => 'term_node',
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+    // This is provided for many_to_one argument
+    'term_node' => array(
+      'field' => 'tid',
+      'left_field' => 'tid',
+    ),
+  );
+
+  // tid field
+  $data['term_data']['tid'] = array(
+    'title' => t('Term ID'),
+    'help' => t('The taxonomy term ID'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'name field' => 'name',
+      'skip base' => array('node', 'node_revision'),
+      'zero is null' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_term_node_tid',
+      'hierarchy table' => 'term_hierarchy',
+      'numeric' => TRUE,
+      'skip base' => array('node', 'node_revision'),
+    ),
+  );
+
+  // Term name field
+  $data['term_data']['name'] = array(
+    'title' => t('Term'),
+    'help' => t('Taxonomy terms. Note that using this can cause duplicate nodes to appear in views; you must add filters to reduce the result set.'),
+    'field' => array(
+      'handler' => 'views_handler_field_taxonomy',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+      'help' => t('Taxonomy term name.'),
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+      'help' => t('Taxonomy term name.'),
+      'many to one' => TRUE,
+      'empty field name' => t('Uncategorized'),
+    ),
+  );
+
+  // taxonomy weight
+  $data['term_data']['weight'] = array(
+    'title' => t('Weight'),
+    'help' => t('The term weight field'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // Term description
+  $data['term_data']['description'] = array(
+    'title' => t('Term description'), // The item it appears as on the UI,
+    'help' => t('The description associated with a taxonomy term.'),
+    'field' => array(
+      'field' => 'description', // the real field
+      'group' => t('Taxonomy'), // The group it appears in on the UI,
+      'handler' => 'views_handler_field_markup',
+      'format' => FILTER_FORMAT_DEFAULT,
+    ),
+  );
+
+  // Term vocabulary
+  $data['term_data']['vid'] = array(
+    'title' => t('Vocabulary'),
+    'help' => t('Filter the results of "Taxonomy: Term" to a particular vocabulary.'),
+    'filter' => array(
+      'handler' => 'views_handler_filter_vocabulary_vid',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // term_node table
+
+  $data['term_node']['table']['group']  = t('Taxonomy');
+
+  $data['term_node']['table']['join'] = array(
+    'term_data' => array(
+      // links directly to term_data via tid
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+    'node' => array(
+      // links directly to node via vid
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+    'node_revisions' => array(
+      // links directly to node_revisions via vid
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+    'term_hierarchy' => array(
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+  );
+
+  $data['term_node']['vid'] = array(
+    'title' => t('Node'),
+    'help' => t('Get all nodes tagged with a term.'),
+    'relationship' => array(
+      'handler' => 'views_handler_relationship',
+      'base' => 'node',
+      'base field' => 'vid',
+      'label' => t('node'),
+    ),
+  );
+
+  // tid field
+  $data['term_node']['tid'] = array(
+    'title' => t('Term ID'),
+    'help' => t('The taxonomy term ID'),
+    'field' => array(
+      'title' => t('All terms'),
+      'help' => t('Display all taxonomy terms associated with a node from specified vocabularies.'),
+      'handler' => 'views_handler_field_term_node_tid',
+      'skip base' => 'term_data',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_term_node_tid',
+      'name table' => 'term_data',
+      'name field' => 'name',
+      'empty field name' => t('Uncategorized'),
+      'numeric' => TRUE,
+      'skip base' => 'term_data',
+    ),
+    'filter' => array(
+      'title' => t('Term'),
+      'handler' => 'views_handler_filter_term_node_tid',
+      'hierarchy table' => 'term_hierarchy',
+      'numeric' => TRUE,
+      'skip base' => 'term_data',
+      'allow empty' => TRUE,
+    ),
+  );
+
+  // term_relation
+
+  $data['term_relation']['table']['group']  = t('Taxonomy');
+
+  $data['term_relation']['table']['join'] = array(
+    'term_data' => array(
+      // links directly to term_data via tid
+      'left_field' => 'tid',
+      'field' => 'tid1',
+    ),
+    'term_relation' => array(
+      // links to self through left.tid1 = right.tid2
+      'left_field' => 'tid1',
+      'field' => 'tid2',
+    ),
+    'node' => array(
+      'left_table' => 'term_node',
+      'left_field' => 'tid',
+      'field' => 'tid1',
+    ),
+    'node_revisions' => array(
+      'left_table' => 'term_node',
+      'left_field' => 'tid',
+      'field' => 'tid1',
+    ),
+  );
+
+  $data['term_relation']['tid2'] = array(
+    'title' => t('Related terms'),
+    'help' => t('The related terms of the term. This can produce duplicate entries if there is more than one related term.'),
+    'relationship' => array(
+      'base' => 'term_data',
+      'field' => 'tid2',
+      'label' => t('Related term'),
+    ),
+    'argument' => array(
+      'help' => t('A related term of the term.'),
+      'handler' => 'views_handler_argument_numeric',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // term_hierarchy table
+
+  $data['term_hierarchy']['table']['group']  = t('Taxonomy');
+
+  $data['term_hierarchy']['table']['join'] = array(
+    'term_hierarchy' => array(
+      // links to self through left.parent = right.tid (going down in depth)
+      'left_field' => 'tid',
+      'field' => 'parent',
+    ),
+    'term_data' => array(
+      // links directly to term_data via tid
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+    'node' => array(
+      // links to node thorugh term_data
+      'left_table' => 'term_data',
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+    'node_revisions' => array(
+      // links to node_revisions thorugh term_data
+      'left_table' => 'term_data',
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+  );
+
+  $data['term_hierarchy']['parent'] = array(
+    'title' => t('Parent term'),
+    'help' => t('The parent term of the term. This can produce duplicate entries if you are using a vocabulary that allows multiple parents.'),
+    'relationship' => array(
+      'base' => 'term_data',
+      'field' => 'parent',
+      'label' => t('Parent'),
+    ),
+    'argument' => array(
+      'help' => t('The parent term of the term.'),
+      'handler' => 'views_handler_argument_numeric',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // term_synonym table
+
+  $data['term_synonym']['table']['group']  = t('Taxonomy');
+
+  $data['term_synonym']['table']['join'] = array(
+    'term_data' => array(
+      // links directly to term_data via tid
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+    'node' => array(
+      'left_table' => 'term_node',
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+    'node_revisions' => array(
+      'left_table' => 'term_node',
+      'left_field' => 'tid',
+      'field' => 'tid',
+    ),
+  );
+
+  $data['term_synonym']['name'] = array(
+    'title' => t('Term synonym'),
+    'help' => t('Term synonyms may be used to find terms by alternate names.'),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+      'many to one' => TRUE,
+      'empty field name' => t('Uncategorized'),
+    ),
+  );
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_data_alter().
+ */
+function taxonomy_views_data_alter(&$data) {
+  $data['node']['term_node_tid'] = array(
+    'group' => t('Taxonomy'),
+    'title' => t('Terms on node'),
+    'help' => t('Relate nodes to taxonomy terms, specifiying which vocabulary or vocabularies to use. This relationship will cause duplicated records if there are multiple terms.'),
+    'relationship' => array(
+      'handler' => 'views_handler_relationship_node_term_data',
+      'label' => t('term'),
+      'base' => 'term_data',
+    ),
+  );
+
+  $data['node']['term_node_tid_depth'] = array(
+    'group' => t('Taxonomy'),
+    'title' => t('Term ID (with depth)'),
+    'help' => t('The depth filter is more complex, so provides fewer options.'),
+    'real field' => 'vid',
+    'argument' => array(
+      'handler' => 'views_handler_argument_term_node_tid_depth',
+      'accept depth modifier' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_term_node_tid_depth',
+    ),
+  );
+
+  $data['node']['term_node_tid_depth_modifier'] = array(
+    'group' => t('Taxonomy'),
+    'title' => t('Term ID depth modifier'),
+    'help' => t('Allows the "depth" for Taxonomy: Term ID (with depth) to be modified via an additional argument.'),
+    'argument' => array(
+      'handler' => 'views_handler_argument_term_node_tid_depth_modifier',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function taxonomy_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/taxonomy',
+    ),
+    'handlers' => array(
+      'views_handler_argument_term_node_tid_depth' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_term_node_tid_depth_modifier' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_taxonomy' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_vocabulary_vid' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_term_node_tid' => array(
+        'parent' => 'views_handler_argument_many_to_one',
+      ),
+      'views_handler_field_term_node_tid' => array(
+        'parent' => 'views_handler_field_prerender_list',
+      ),
+      'views_handler_field_taxonomy' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_filter_vocabulary_vid' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_term_node_tid' => array(
+        'parent' => 'views_handler_filter_many_to_one',
+      ),
+      'views_handler_filter_term_node_tid_depth' => array(
+        'parent' => 'views_handler_filter_term_node_tid',
+      ),
+      'views_handler_relationship_node_term_data' => array(
+        'parent' => 'views_handler_relationship',
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function taxonomy_views_plugins() {
+  return array(
+    'module' => 'views', // This just tells our themes are elsewhere.
+    'argument validator' => array(
+      'taxonomy_term' => array(
+        'title' => t('Taxonomy term'),
+        'handler' => 'views_plugin_argument_validate_taxonomy_term',
+        'path' => drupal_get_path('module', 'views') . '/modules/taxonomy',
+      ),
+    ),
+   'argument default' => array(
+     'taxonomy_tid' => array(
+       'title' => t('Taxonomy Term ID from URL'),
+       'handler' => 'views_plugin_argument_default_taxonomy_tid',
+       'path' => drupal_get_path('module', 'views') . '/modules/taxonomy',
+       'parent' => 'fixed',
+     ),
+   ),
+  );
+}
+
+/**
+ * Helper function to set a breadcrumb for taxonomy.
+ */
+function views_taxonomy_set_breadcrumb(&$breadcrumb, &$argument) {
+  if (empty($argument->options['set_breadcrumb'])) {
+    return;
+  }
+
+  $args = $argument->view->args;
+  $parents = taxonomy_get_parents_all($argument->argument);
+  foreach (array_reverse($parents) as $parent) {
+    // Unfortunately parents includes the current argument. Skip.
+    if ($parent->tid == $argument->argument) {
+      continue;
+    }
+    if ($argument->options['use_taxonomy_term_path']) {
+      $path = taxonomy_term_path($parent);
+    }
+    else {
+      $args[$argument->position] = $parent->tid;
+      $path = $argument->view->get_url($args);
+    }
+    $breadcrumb[$path] = check_plain($parent->name);
+  }
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views_convert.inc
new file mode 100644
index 0000000..5272a43
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views_convert.inc
@@ -0,0 +1,102 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function taxonomy_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'field':
+      $matches = array();
+      if (preg_match('/term_node(_(\d+))?/', $field['tablename'], $matches)) {
+        switch ($field['field']) {
+          case 'name':
+            $item = $view->get_item($display, 'field', $id);
+            $item['table'] = 'term_node';
+            $item['field'] = 'tid';
+            if ($field['options'] != 'nolink') {
+              $item['link_to_taxonomy'] = TRUE;
+            }
+            if (!empty($field['vocabulary'])) {
+              $item['limit'] = TRUE;
+              $item['vids'] = array($field['vocabulary']);
+            }
+            // The vocabulary ID might be embedded in the table name.
+            elseif (!empty($matches[2])) {
+              $item['limit'] = TRUE;
+              $item['vids'] = array($matches[2]);
+            }
+            $view->set_item($display, 'field', $id, $item);
+            break;
+        }
+      }
+      elseif ($field['tablename'] == 'term_data') {
+        switch ($field['field']) {
+          case 'name':
+            if ($field['field'] == 'views_handler_field_tid_link') {
+              $view->set_item_option($display, 'field', $id, 'link_to_taxonomy', TRUE);
+            }
+            break;
+        }
+      }
+      break;
+    case 'filter':
+      if ($field['tablename'] == 'term_node' || !strncmp($field['tablename'], 'term_node_', 10)) {
+        switch ($field['field']) {
+          case 'tid':
+            $operators = array('AND' => 'and', 'OR' => 'or', 'NOR' => 'not');
+            $item = $view->get_item($display, 'filter', $id);
+            if ($vid = (integer) substr($field['tablename'], 10)) {
+              $item['table'] = 'term_node';
+              $item['vid'] = $vid;
+            }
+            else {
+              $item['limit'] = FALSE;
+            }
+            $item['operator'] = $operators[$field['operator']];
+            $item['type'] = 'select';
+            $view->set_item($display, 'filter', $id, $item);
+            break;
+        }
+      }
+      elseif ($field['tablename'] == 'term_data') {
+        switch ($field['field']) {
+          case 'vid':
+            $operators = array('AND' => 'in', 'OR' => 'in', 'NOR' => 'not in');
+            $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+            break;
+        }
+      }
+      break;
+    case 'argument':
+      $options = $field['argoptions'];
+      switch ($field['type']) {
+        case 'taxid':
+          if (!empty($field['options'])) {
+            $options['depth'] = $field['options'];
+          }
+          $options['break_phrase'] = TRUE;
+          $view->add_item($display, 'argument', 'node', 'term_node_tid_depth', $options, $field['id']);
+          break;
+        case 'taxletter':
+          if (!empty($field['options'])) {
+            $options['glossary'] = TRUE;
+            $options['limit'] = $field['options'];
+          }
+          $view->add_item($display, 'argument', 'term_data', 'name', $options, $field['id']);
+          break;
+        case 'vocid':
+          $view->add_item($display, 'argument', 'vocabulary', 'vid', $options, $field['id']);
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views_default.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views_default.inc
new file mode 100644
index 0000000..1313240
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy.views_default.inc
@@ -0,0 +1,182 @@
+<?php
+/**
+ * @file
+ * Contains default views on behalf of the statistics module.
+ */
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function taxonomy_views_default_views() {
+  $view = new view;
+  $view->name = 'taxonomy_term';
+  $view->description = 'A view to emulate Drupal core\'s handling of taxonomy/term; it also emulates Views 1\'s handling by having two possible feeds.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->api_version = 2;
+  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('sorts', array(
+    'sticky' => array(
+      'id' => 'sticky',
+      'table' => 'node',
+      'field' => 'sticky',
+      'order' => 'DESC',
+      'relationship' => 'none',
+    ),
+    'created' => array(
+      'id' => 'created',
+      'table' => 'node',
+      'field' => 'created',
+      'order' => 'DESC',
+      'granularity' => 'second',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('arguments', array(
+    'term_node_tid_depth' => array(
+      'id' => 'term_node_tid_depth',
+      'table' => 'node',
+      'field' => 'term_node_tid_depth',
+      'default_action' => 'not found',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(
+        'count' => TRUE,
+        'override' => FALSE,
+        'items_per_page' => 25,
+      ),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '%1',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'taxonomy_term',
+      'validate_fail' => 'not found',
+      'depth' => '0',
+      'break_phrase' => 1,
+      'relationship' => 'none',
+      'default_argument_fixed' => '',
+      'default_argument_php' => '',
+      'validate_argument_node_type' => array(
+        'album' => 0,
+        'artist' => 0,
+        'book' => 0,
+        'page' => 0,
+        'story' => 0,
+        'track' => 0,
+      ),
+      'validate_argument_vocabulary' => array(
+        '3' => 0,
+        '4' => 0,
+        '1' => 0,
+        '5' => 0,
+        '2' => 0,
+      ),
+      'validate_argument_type' => 'tids',
+      'validate_argument_php' => '',
+    ),
+    'term_node_tid_depth_modifier' => array(
+      'id' => 'term_node_tid_depth_modifier',
+      'table' => 'node',
+      'field' => 'term_node_tid_depth_modifier',
+      'default_action' => 'ignore',
+      'style_plugin' => 'default_summary',
+      'style_options' => array(
+        'count' => TRUE,
+        'override' => FALSE,
+        'items_per_page' => 25,
+      ),
+      'wildcard' => 'all',
+      'wildcard_substitution' => 'All',
+      'title' => '',
+      'default_argument_type' => 'fixed',
+      'default_argument' => '',
+      'validate_type' => 'none',
+      'validate_fail' => 'not found',
+    ),
+  ));
+  $handler->override_option('filters', array(
+    'status_extra' => array(
+      'id' => 'status_extra',
+      'table' => 'node',
+      'field' => 'status_extra',
+      'operator' => '=',
+      'value' => '',
+      'group' => 0,
+      'exposed' => FALSE,
+      'expose' => array(
+        'operator' => FALSE,
+        'label' => '',
+      ),
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'role' => array(),
+    'perm' => 'access content',
+  ));
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_plugin', 'node');
+  $handler->override_option('row_options', array(
+    'teaser' => TRUE,
+    'links' => TRUE,
+  ));
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->override_option('path', 'taxonomy/term/%');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler = $view->new_display('feed', 'Core feed', 'feed');
+  $handler->override_option('items_per_page', 15);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_plugin', 'node_rss');
+  $handler->override_option('row_options', array(
+    'item_length' => 'default',
+  ));
+  $handler->override_option('path', 'taxonomy/term/%/%/feed');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('displays', array(
+    'page' => 'page',
+    'default' => 0,
+  ));
+  $handler = $view->new_display('feed', 'Views 1 feed', 'feed_1');
+  $handler->override_option('items_per_page', 15);
+  $handler->override_option('use_pager', '1');
+  $handler->override_option('row_plugin', 'node_rss');
+  $handler->override_option('row_options', array(
+    'item_length' => 'default',
+  ));
+  $handler->override_option('path', 'taxonomy/term/%/feed');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => 0,
+  ));
+  $views[$view->name] = $view;
+
+  return $views;
+}
+
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_taxonomy.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_taxonomy.inc
new file mode 100644
index 0000000..9c9cf3e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_taxonomy.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Argument handler for basic taxonomy tid.
+ */
+class views_handler_argument_taxonomy extends views_handler_argument {
+
+  /**
+   * Override the behavior of title(). Get the title of the node.
+   */
+  function title() {
+    $term = taxonomy_get_term($this->argument);
+    if (!empty($term)) {
+      return check_plain($term->name);
+    }
+    // TODO review text
+    return t('No name');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid.inc
new file mode 100644
index 0000000..966ff98
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid.inc
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Allow taxonomy term ID(s) as argument
+ */
+class views_handler_argument_term_node_tid extends views_handler_argument_many_to_one {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['set_breadcrumb'] = array('default' => FALSE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['set_breadcrumb'] = array(
+      '#type' => 'checkbox',
+      '#title' => t("Set the breadcrumb for the term parents"),
+      '#description' => t('If selected, the breadcrumb trail will include all parent terms, each one linking to this view. Note that this only works if just one term was received.'),
+      '#default_value' => !empty($this->options['set_breadcrumb']),
+    );
+  }
+
+  function set_breadcrumb(&$breadcrumb) {
+    if (empty($this->options['set_breadcrumb']) || !is_numeric($this->argument)) {
+      return;
+    }
+
+    return views_taxonomy_set_breadcrumb($breadcrumb, $this);
+  }
+
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT name FROM {term_data} WHERE tid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->name);
+    }
+    return $titles;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
new file mode 100644
index 0000000..50f993d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
@@ -0,0 +1,136 @@
+<?php
+/**
+ * Argument handler for taxonomy terms with depth.
+ *
+ * This handler is actually part of the node table and has some restrictions,
+ * because it uses a subquery to find nodes with
+ */
+class views_handler_argument_term_node_tid_depth extends views_handler_argument {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['depth'] = array('default' => 0);
+    $options['break_phrase'] = array('default' => FALSE);
+    $options['set_breadcrumb'] = array('default' => FALSE);
+    $options['use_taxonomy_term_path'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['depth'] = array(
+      '#type' => 'weight',
+      '#title' => t('Depth'),
+      '#default_value' => $this->options['depth'],
+      '#description' => t('The depth will match nodes tagged with terms in the hierarchy. For example, if you have the term "fruit" and a child term "apple", with a depth of 1 (or higher) then filtering for the term "fruit" will get nodes that are tagged with "apple" as well as "fruit". If negative, the reverse is true; searching for "apple" will also pick up nodes tagged with "fruit" if depth is -1 (or lower).'),
+    );
+
+    $form['break_phrase'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Allow multiple terms per argument'),
+      '#description' => t('If selected, users can enter multiple arguments in the form of 1+2+3. Due to the number of JOINs it would require, AND will be treated as OR with this argument.'),
+      '#default_value' => !empty($this->options['break_phrase']),
+    );
+
+    $form['set_breadcrumb'] = array(
+      '#type' => 'checkbox',
+      '#title' => t("Set the breadcrumb for the term parents"),
+      '#description' => t('If selected, the breadcrumb trail will include all parent terms, each one linking to this view. Note that this only works if just one term was received.'),
+      '#default_value' => !empty($this->options['set_breadcrumb']),
+    );
+
+    $form['use_taxonomy_term_path'] = array(
+      '#type' => 'checkbox',
+      '#title' => t("Use Drupal's taxonomy term path to create breadcrumb links"),
+      '#description' => t('If selected, the links in the breadcrumb trail will be created using the standard drupal method instead of the custom views method. This is useful if you are using modules like taxonomy redirect to modify your taxonomy term links.'),
+      '#default_value' => !empty($this->options['use_taxonomy_term_path']),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-set-breadcrumb' => array(TRUE)),
+    );
+  }
+
+  function set_breadcrumb(&$breadcrumb) {
+    if (empty($this->options['set_breadcrumb']) || !is_numeric($this->argument)) {
+      return;
+    }
+
+    return views_taxonomy_set_breadcrumb($breadcrumb, $this);
+  }
+
+  /**
+   * Override default_actions() to remove summary actions.
+   */
+  function default_actions($which = NULL) {
+    if ($which) {
+      if (in_array($which, array('ignore', 'not found', 'empty', 'default'))) {
+        return parent::default_actions($which);
+      }
+      return;
+    }
+    $actions = parent::default_actions();
+    unset($actions['summary asc']);
+    unset($actions['summary desc']);
+    return $actions;
+  }
+
+  function query() {
+    $this->ensure_my_table();
+
+    if (!empty($this->options['break_phrase'])) {
+      $tids = new stdClass();
+      $tids->value = $this->argument;
+      $tids = views_break_phrase($this->argument, $tids);
+      if ($tids->value == -1) {
+        return FALSE;
+      }
+
+      if (count($tids->value) > 1) {
+        $placeholder = " IN (" . implode(', ', array_fill(0, sizeof($tids->value), '%d')) . ")";
+      }
+      else {
+        $placeholder = " = %d";
+      }
+
+      $tids = $tids->value;
+    }
+    else {
+      $placeholder = "= %d";
+      $tids = array($this->argument);
+    }
+    $subquery = "\n  SELECT tn.vid FROM {term_node} tn\n";
+    $where = "  WHERE tn.tid $placeholder\n";
+    $args = $tids;
+    $last = "tn";
+
+    if ($this->options['depth'] > 0) {
+      $subquery .= "    LEFT JOIN {term_hierarchy} th ON th.tid = tn.tid\n";
+      $last = "th";
+      foreach (range(1, abs($this->options['depth'])) as $count) {
+        $subquery .= "    LEFT JOIN {term_hierarchy} th$count ON $last.parent = th$count.tid\n";
+        $where .= "    OR th$count.tid $placeholder\n";
+        $args = array_merge($args, $tids);
+        $last = "th$count";
+      }
+    }
+    else if ($this->options['depth'] < 0) {
+      foreach (range(1, abs($this->options['depth'])) as $count) {
+        $subquery .= "    LEFT JOIN {term_hierarchy} th$count ON $last.tid = th$count.parent\n";
+        $where .= "    OR th$count.tid $placeholder\n";
+        $args = array_merge($args, $tids);
+        $last = "th$count";
+      }
+    }
+
+    $this->query->add_where(0, "$this->table_alias.$this->real_field IN ($subquery$where  )", $args);
+  }
+
+  function title() {
+    $term = taxonomy_get_term($this->argument);
+    if (!empty($term)) {
+      return check_plain($term->name);
+    }
+    // TODO review text
+    return t('No name');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
new file mode 100644
index 0000000..139bae2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Argument handler for to modify depth for a previous term.
+ *
+ * This handler is actually part of the node table and has some restrictions,
+ * because it uses a subquery to find nodes with
+ */
+class views_handler_argument_term_node_tid_depth_modifier extends views_handler_argument {
+  function options_form(&$form, &$form_state) { }
+  function query() { }
+  function pre_query() {
+    // We don't know our argument yet, but it's based upon our position:
+    $argument = isset($this->view->args[$this->position]) ? $this->view->args[$this->position] : NULL;
+    if (!is_numeric($argument)) {
+      return;
+    }
+
+    if ($argument > 10) {
+      $argument = 10;
+    }
+
+    if ($argument < -10) {
+      $argument = -10;
+    }
+
+    // figure out which argument preceded us.
+    $keys = array_reverse(array_keys($this->view->argument));
+    $skip = TRUE;
+    foreach ($keys as $key) {
+      if ($key == $this->options['id']) {
+        $skip = FALSE;
+        continue;
+      }
+
+      if ($skip) {
+        continue;
+      }
+
+      if (empty($this->view->argument[$key])) {
+        continue;
+      }
+
+      if (isset($handler)) {
+        unset($handler);
+      }
+
+      $handler = &$this->view->argument[$key];
+      if (empty($handler->definition['accept depth modifier'])) {
+        continue;
+      }
+
+      // Finally!
+      $handler->options['depth'] = $argument;
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc
new file mode 100644
index 0000000..b76b0a1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Argument handler to accept a vocabulary id.
+ */
+class views_handler_argument_vocabulary_vid extends views_handler_argument {
+  /**
+   * Override the behavior of title(). Get the name of the vocabulary.
+   */
+  function title() {
+    $title = db_result(db_query("SELECT v.name FROM {vocabulary} v WHERE v.vid = %d", $this->argument));
+
+    if (empty($title)) {
+      return t('No vocabulary');
+    }
+
+    return check_plain($title);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_field_taxonomy.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_field_taxonomy.inc
new file mode 100644
index 0000000..26ec74b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_field_taxonomy.inc
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that allows linking to a taxonomy
+ * term.
+ */
+class views_handler_field_taxonomy extends views_handler_field {
+  /**
+   * Constructor to provide additional field to add.
+   *
+   * This constructer assumes the term_data table. If using another
+   * table, we'll need to be more specific.
+   */
+  function construct() {
+    parent::construct();
+    $this->additional_fields['vid'] = 'vid';
+    $this->additional_fields['tid'] = 'tid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_taxonomy'] = array('default' => FALSE);
+    return $options;
+  }
+
+  /**
+   * Provide link to taxonomy option
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_taxonomy'] = array(
+      '#title' => t('Link this field to its taxonomy term page'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_taxonomy']),
+    );
+  }
+
+  /**
+   * Render whatever the data is as a link to the taxonomy.
+   *
+   * Data should be made XSS safe prior to calling this function.
+   */
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_taxonomy']) && !empty($values->{$this->aliases['tid']}) && $data !== NULL && $data !== '') {
+      $term = new stdClass();
+      $term->tid = $values->{$this->aliases['tid']};
+      $term->vid = $values->{$this->aliases['vid']};
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = taxonomy_term_path($term);
+    }
+    return $data;
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_field_term_node_tid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_field_term_node_tid.inc
new file mode 100644
index 0000000..8782939
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_field_term_node_tid.inc
@@ -0,0 +1,119 @@
+<?php
+
+/**
+ * Field handler for terms.
+ */
+class views_handler_field_term_node_tid extends views_handler_field_prerender_list {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if ($view->base_table == 'node_revisions') {
+      $this->additional_fields['vid'] = array('table' => 'node_revisions', 'field' => 'vid');
+    }
+    else {
+      $this->additional_fields['vid'] = array('table' => 'node', 'field' => 'vid');
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['link_to_taxonomy'] = array('default' => TRUE);
+    $options['limit'] = array('default' => FALSE);
+    $options['vids'] = array('default' => array());
+
+    return $options;
+  }
+
+  /**
+   * Provide "link to term" option.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_taxonomy'] = array(
+      '#title' => t('Link this field to its term page'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_taxonomy']),
+    );
+
+    $form['limit'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Limit terms by vocabulary'),
+      '#default_value'=> $this->options['limit'],
+    );
+
+    $options = array();
+    $vocabularies = taxonomy_get_vocabularies();
+    foreach ($vocabularies as $voc) {
+      $options[$voc->vid] = check_plain($voc->name);
+    }
+
+    $form['vids'] = array(
+      '#prefix' => '<div><div id="edit-options-vids">',
+      '#suffix' => '</div></div>',
+      '#type' => 'checkboxes',
+      '#title' => t('Vocabularies'),
+      '#options' => $options,
+      '#default_value' => $this->options['vids'],
+      '#process' => array('expand_checkboxes', 'views_process_dependency'),
+      '#dependency' => array('edit-options-limit' => array(TRUE)),
+    );
+  }
+
+  /**
+   * Add this term to the query
+   */
+  function query() {
+    $this->add_additional_fields();
+  }
+
+  function pre_render(&$values) {
+    $this->field_alias = $this->aliases['vid'];
+    $vids = array();
+    foreach ($values as $result) {
+      if (!empty($result->{$this->aliases['vid']})) {
+        $vids[] = $result->{$this->aliases['vid']};
+      }
+    }
+
+    if ($vids) {
+      $voc = '';
+      $voc_ids = array_filter($this->options['vids']);
+      if (!empty($this->options['limit']) && !empty($voc_ids)) {
+        $voc = " AND td.vid IN (" . implode(', ', array_keys($voc_ids)) . ")";
+      }
+
+      $result = db_query("SELECT tn.vid AS node_vid, td.*, v.name as vocabulary FROM {term_data} td INNER JOIN {term_node} tn ON td.tid = tn.tid INNER JOIN {vocabulary} v ON v.vid = td.vid WHERE tn.vid IN (" . implode(', ', $vids) . ")$voc ORDER BY td.weight, td.name");
+
+      while ($term = db_fetch_object($result)) {
+        $this->items[$term->node_vid][$term->tid]['name'] = check_plain($term->name);
+        $this->items[$term->node_vid][$term->tid]['tid'] = $term->tid;
+        $this->items[$term->node_vid][$term->tid]['vid'] = $term->vid;
+        $this->items[$term->node_vid][$term->tid]['vocabulary'] = check_plain($term->vocabulary);
+        
+        if (!empty($this->options['link_to_taxonomy'])) {
+          $this->items[$term->node_vid][$term->tid]['make_link'] = TRUE;
+          $this->items[$term->node_vid][$term->tid]['path'] = taxonomy_term_path($term);
+        }
+      }
+    }
+  }
+
+  function render_item($count, $item) {
+    return $item['name'];
+  }
+
+  function document_self_tokens(&$tokens) {
+    $tokens['[' . $this->options['id'] . '-tid' . ']'] = t('The taxonomy term ID for the term.');
+    $tokens['[' . $this->options['id'] . '-name' . ']'] = t('The taxonomy term name for the term.');
+    $tokens['[' . $this->options['id'] . '-vid' . ']'] = t('The vocabulary ID for the vocabulary the term belongs to.');
+    $tokens['[' . $this->options['id'] . '-vocabulary' . ']'] = t('The name for the vocabulary the term belongs to.');
+  }
+
+  function add_self_tokens(&$tokens, $item) {
+    $tokens['[' . $this->options['id'] . '-tid' . ']'] = $item['tid'];
+    $tokens['[' . $this->options['id'] . '-name' . ']'] = $item['name'];
+    $tokens['[' . $this->options['id'] . '-vid' . ']'] = $item['vid'];
+    $tokens['[' . $this->options['id'] . '-vocabulary' . ']'] = $item['vocabulary'];
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_term_node_tid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_term_node_tid.inc
new file mode 100644
index 0000000..ceb8ea5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_term_node_tid.inc
@@ -0,0 +1,302 @@
+<?php
+
+/**
+ * Filter by term id
+ */
+class views_handler_filter_term_node_tid extends views_handler_filter_many_to_one {
+  function has_extra_options() { return TRUE; }
+
+  function get_value_options() { /* don't overwrite the value options */ }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['type'] = array('default' => 'textfield');
+    $options['limit'] = array('default' => TRUE);
+    $options['vid'] = array('default' => 0);
+
+    return $options;
+  }
+
+  function extra_options_form(&$form, &$form_state) {
+    $vocabularies = taxonomy_get_vocabularies();
+    foreach ($vocabularies as $voc) {
+      $options[$voc->vid] = check_plain($voc->name);
+    }
+
+    if ($this->options['limit']) {
+      // We only do this when the form is displayed.
+      if ($this->options['vid'] == 0) {
+        $first_vocabulary = reset($vocabularies);
+        $this->options['vid'] = $first_vocabulary->vid;
+      }
+
+      $form['vid'] = array(
+        '#prefix' => '<div class="views-left-40">',
+        '#suffix' => '</div>',
+        '#type' => 'radios',
+        '#title' => t('Vocabulary'),
+        '#options' => $options,
+        '#description' => t('Select which vocabulary to show terms for in the regular options.'),
+        '#default_value' => $this->options['vid'],
+      );
+    }
+
+    $form['markup_start'] = array(
+      '#value' => '<div class="views-left-40">',
+    );
+
+    $form['type'] = array(
+      '#type' => 'radios',
+      '#title' => t('Selection type'),
+      '#options' => array('select' => t('Dropdown'), 'textfield' => t('Autocomplete')),
+      '#default_value' => $this->options['type'],
+    );
+
+    $form['hierarchy'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show hierarchy in dropdown'),
+      '#default_value' => !empty($this->options['hierarchy']),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('radio:options[type]' => array('select')),
+    );
+
+    $form['markup_end'] = array(
+      '#value' => '</div>',
+    );
+  }
+
+  function value_form(&$form, &$form_state) {
+    $vocabulary = taxonomy_vocabulary_load($this->options['vid']);
+    if (empty($vocabulary) && $this->options['limit']) {
+      $form['markup'] = array(
+        '#prefix' => '<div class="form-item">',
+        '#suffix' => '</div>',
+        '#value' => t('An invalid vocabulary is selected. Please change it in the options.'),
+      );
+      return;
+    }
+
+    if ($this->options['type'] == 'textfield') {
+      $default = '';
+      if ($this->value) {
+        $result = db_query("SELECT * FROM {term_data} td WHERE td.tid IN (" . implode(', ', $this->value) . ')');
+        while ($term = db_fetch_object($result)) {
+          if ($default) {
+            $default .= ', ';
+          }
+          $default .= $term->name;
+        }
+      }
+
+      $form['value'] = array(
+        '#title' => $this->options['limit'] ? t('Select terms from vocabulary @voc', array('@voc' => $vocabulary->name)) : t('Select terms'),
+        '#type' => 'textfield',
+        '#default_value' => $default,
+      );
+
+      if ($this->options['limit']) {
+        $form['value']['#autocomplete_path'] = 'taxonomy/autocomplete/' . $vocabulary->vid;
+      }
+    }
+    else {
+      if (!empty($this->options['hierarchy']) && $this->options['limit']) {
+        $tree = taxonomy_get_tree($vocabulary->vid);
+        $options = array();
+
+        if ($tree) {
+          foreach ($tree as $term) {
+            $choice = new stdClass();
+            $choice->option = array($term->tid => str_repeat('-', $term->depth) . $term->name);
+            $options[] = $choice;
+          }
+        }
+      }
+      else {
+        $options = array();
+        if ($this->options['limit']) {
+          $result = db_query(db_rewrite_sql("SELECT t.* FROM {term_data} t WHERE t.vid = %d ORDER BY t.weight, t.name", 't', 'tid'), $vocabulary->vid);
+        }
+        else {
+          $result = db_query(db_rewrite_sql("SELECT td.* FROM {term_data} td INNER JOIN {vocabulary} v ON td.vid = v.vid ORDER BY v.weight, v.name, td.weight, td.name", 'td', 'tid'));
+        }
+        while ($term = db_fetch_object($result)) {
+          $options[$term->tid] = $term->name;
+        }
+      }
+
+      $default_value = (array) $this->value;
+
+      if (!empty($form_state['exposed'])) {
+        $identifier = $this->options['expose']['identifier'];
+
+        if (!empty($this->options['expose']['reduce'])) {
+          $options = $this->reduce_value_options($options);
+
+          if (empty($this->options['expose']['single']) && !empty($this->options['expose']['optional'])) {
+            $default_value = array();
+          }
+        }
+
+        if (!empty($this->options['expose']['single'])) {
+          if (!empty($this->options['expose']['optional']) && (empty($default_value) || !empty($this->options['expose']['reduce']))) {
+            $default_value = 'All';
+          }
+          else if (empty($default_value)) {
+            $keys = array_keys($options);
+            $default_value = array_shift($keys);
+          }
+          else {
+            $copy = $default_value;
+            $default_value = array_shift($copy);
+          }
+        }
+      }
+      $form['value'] = array(
+        '#type' => 'select',
+        '#title' => $this->options['limit'] ? t('Select terms from vocabulary @voc', array('@voc' => $vocabulary->name)) : t('Select terms'),
+        '#multiple' => TRUE,
+        '#options' => $options,
+        '#size' => min(9, count($options)),
+        '#default_value' => $default_value,
+      );
+
+      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
+        $form_state['input'][$identifier] = $default_value;
+      }
+    }
+
+
+    if (empty($form_state['exposed'])) {
+      // Retain the helper option
+      $this->helper->options_form($form, $form_state);
+    }
+  }
+
+  function value_validate($form, &$form_state) {
+    // We only validate if they've chosen the text field style.
+    if ($this->options['type'] != 'textfield') {
+      return;
+    }
+
+    $values = drupal_explode_tags($form_state['values']['options']['value']);
+    $tids = $this->validate_term_strings($form['value'], $values);
+
+    if ($tids) {
+      $form_state['values']['options']['value'] = $tids;
+    }
+  }
+
+  function accept_exposed_input($input) {
+    if (empty($this->options['exposed'])) {
+      return TRUE;
+    }
+
+    // If it's optional and there's no value don't bother filtering.
+    if ($this->options['expose']['optional'] && empty($this->validated_exposed_input)) {
+      return FALSE;
+    }
+
+    $rc = parent::accept_exposed_input($input);
+    if ($rc) {
+      // If we have previously validated input, override.
+      if (isset($this->validated_exposed_input)) {
+        $this->value = $this->validated_exposed_input;
+      }
+    }
+
+    return $rc;
+  }
+
+  function exposed_validate(&$form, &$form_state) {
+    if (empty($this->options['exposed'])) {
+      return;
+    }
+
+    $identifier = $this->options['expose']['identifier'];
+
+    // We only validate if they've chosen the text field style.
+    if ($this->options['type'] != 'textfield') {
+      if ($form_state['values'][$identifier] != 'All')  {
+        $this->validated_exposed_input = (array) $form_state['values'][$identifier];
+      }
+      return;
+    }
+
+    if (empty($this->options['expose']['identifier'])) {
+      return;
+    }
+
+    $values = drupal_explode_tags($form_state['values'][$identifier]);
+
+    $tids = $this->validate_term_strings($form[$identifier], $values);
+    if ($tids) {
+      $this->validated_exposed_input = $tids;
+    }
+  }
+
+  /**
+   * Validate the user string. Since this can come from either the form
+   * or the exposed filter, this is abstracted out a bit so it can
+   * handle the multiple input sources.
+   */
+  function validate_term_strings(&$form, $values) {
+    if (empty($values)) {
+      return array();
+    }
+
+    $tids = array();
+    $placeholders = array();
+    $args = array();
+    $results = array();
+    foreach ($values as $value) {
+      $missing[strtolower($value)] = TRUE;
+      $args[] = $value;
+      $placeholders[] = "'%s'";
+    }
+
+    if (!$args) {
+      return;
+    }
+
+    // add the taxonomy vid to the argument list.
+    $args[] = $this->options['vid'];
+
+    $result = db_query("SELECT * FROM {term_data} td WHERE td.name IN (" . implode(', ', $placeholders) . ") AND td.vid = %d", $args);
+    while ($term = db_fetch_object($result)) {
+      unset($missing[strtolower($term->name)]);
+      $tids[] = $term->tid;
+    }
+
+    if ($missing) {
+      form_error($form, format_plural(count($missing), 'Unable to find term: @terms', 'Unable to find terms: @terms', array('@terms' => implode(', ', array_keys($missing)))));
+    }
+
+    return $tids;
+  }
+
+  function value_submit($form, &$form_state) {
+    // prevent array_filter from messing up our arrays in parent submit.
+  }
+
+  function expose_form_right(&$form, &$form_state) {
+    parent::expose_form_right($form, $form_state);
+    if ($this->options['type'] != 'select') {
+      unset($form['expose']['reduce']);
+    }
+  }
+
+  function admin_summary() {
+    // set up $this->value_options for the parent summary
+    $this->value_options = array();
+
+    if ($this->value) {
+      $result = db_query("SELECT * FROM {term_data} td WHERE td.tid IN ("  . implode(', ', $this->value) . ")");
+
+      while ($term = db_fetch_object($result)) {
+        $this->value_options[$term->tid] = $term->name;
+      }
+    }
+    return parent::admin_summary();
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc
new file mode 100644
index 0000000..63df639
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc
@@ -0,0 +1,89 @@
+<?php
+/**
+ * Filter handler for taxonomy terms with depth.
+ *
+ * This handler is actually part of the node table and has some restrictions,
+ * because it uses a subquery to find nodes with
+ */
+class views_handler_filter_term_node_tid_depth extends views_handler_filter_term_node_tid {
+  function operator_options($which = 'title') {
+    return array(
+      'or' => t('Is one of'),
+    );
+  }
+  
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['depth'] = array('default' => 0);
+
+    return $options;
+  }
+  
+  function extra_options_form(&$form, &$form_state) {
+    parent::extra_options_form($form, $form_state);
+
+    $form['depth'] = array(
+      '#type' => 'weight',
+      '#title' => t('Depth'),
+      '#default_value' => $this->options['depth'],
+      '#description' => t('The depth will match nodes tagged with terms in the hierarchy. For example, if you have the term "fruit" and a child term "apple", with a depth of 1 (or higher) then filtering for the term "fruit" will get nodes that are tagged with "apple" as well as "fruit". If negative, the reverse is true; searching for "apple" will also pick up nodes tagged with "fruit" if depth is -1 (or lower).'),
+    );
+  }
+
+  function query() {
+    // If no filter values are present, then do nothing.
+    if (count($this->value) == 0) {
+      return;
+    } 
+    else if (count($this->value) == 1) {
+      $placeholder = " = %d";
+    } 
+    else {
+      $placeholder = " IN (" . implode(', ', array_fill(0, sizeof($this->value), '%d')) . ")";
+    }
+
+    // The normal use of ensure_my_table() here breaks Views.
+    // So instead we trick the filter into using the alias of the base table.
+    // See http://drupal.org/node/271833
+    // If a relationship is set, we must use the alias it provides.
+    if (!empty($this->relationship)) {
+      $this->table_alias = $this->relationship;
+    }
+    // If no relationship, then use the alias of the base table.
+    else if (isset($this->query->table_queue[$this->query->base_table]['alias'])) {
+      $this->table_alias = $this->query->table_queue[$this->query->base_table]['alias'];
+    }
+    // This should never happen, but if it does, we fail quietly.
+    else {
+      return;
+    }
+
+    // Now build the subqueries.
+    $subquery = "\n  SELECT tn.vid FROM {term_node} tn\n";
+    $where = "  WHERE tn.tid $placeholder\n";
+    $args = $this->value;
+    $last = "tn";
+
+    if ($this->options['depth'] > 0) {
+      $subquery .= "    LEFT JOIN {term_hierarchy} th ON th.tid = tn.tid\n";
+      $last = "th";
+      foreach (range(1, abs($this->options['depth'])) as $count) {
+        $subquery .= "    LEFT JOIN {term_hierarchy} th$count ON $last.parent = th$count.tid\n";
+        $where .= "    OR th$count.tid $placeholder\n";
+        $args = array_merge($args, $this->value);
+        $last = "th$count";
+      }
+    }
+    else if ($this->options['depth'] < 0) {
+      foreach (range(1, abs($this->options['depth'])) as $count) {
+        $subquery .= "    LEFT JOIN {term_hierarchy} th$count ON $last.tid = th$count.parent\n";
+        $where .= "    OR th$count.tid $placeholder\n";
+        $args = array_merge($args, $this->value);
+        $last = "th$count";
+      }
+    }
+    
+    $this->query->add_where(0, "$this->table_alias.$this->real_field IN ($subquery$where  )", $args);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc
new file mode 100644
index 0000000..cb624dc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * Filter by vocabulary id
+ */
+class views_handler_filter_vocabulary_vid extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (isset($this->value_options)) {
+      return;
+    }
+
+    $this->value_options = array();
+    $vocabularies = taxonomy_get_vocabularies();
+    foreach ($vocabularies as $voc) {
+      $this->value_options[$voc->vid] = $voc->name;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_relationship_node_term_data.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_relationship_node_term_data.inc
new file mode 100644
index 0000000..873fa20
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_handler_relationship_node_term_data.inc
@@ -0,0 +1,74 @@
+<?php
+/**
+ * @file
+ * Views' relationship handlers.
+ */
+
+class views_handler_relationship_node_term_data extends views_handler_relationship  {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['vids'] = array('default' => array());
+    return $options;
+  }
+
+  /**
+   * Default options form that provides the label widget that all fields
+   * should have.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $vocabularies = taxonomy_get_vocabularies();
+    $options = array();
+    foreach ($vocabularies as $voc) {
+      $options[$voc->vid] = check_plain($voc->name);
+    }
+
+    $form['vids'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Vocabularies'),
+      '#options' => $options,
+      '#default_value' => $this->options['vids'],
+      '#description' => t('Choose which vocabularies you wish to relate. Remember that every term found will create a new record, so this relationship is best used on just one vocabulary that has only one term per node.'),
+    );
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    $this->ensure_my_table();
+
+    $def = $this->definition;
+    $def['table'] = 'term_data';
+
+    if (!empty($this->options['required']) || !array_filter($this->options['vids'])) {
+      $term_node = $this->query->add_table('term_node', $this->relationship);
+      $def['left_table'] = $term_node;
+      $def['left_field'] = 'tid';
+      $def['field'] = 'tid';
+      if (!empty($this->options['required'])) {
+        $def['type'] = 'INNER';
+      }
+    }
+    else {
+      // If the join is optional, join a subselect that will emulate term_data table instead
+      $def['left_table'] = $this->table_alias;
+      $def['left_field'] = 'vid';
+      $def['field'] = 'revision';
+      // fapi ensures vids are safe here.
+      $vids = implode(', ', array_filter($this->options['vids']));
+      $def['table formula'] = "(SELECT td.*, tn.vid AS revision FROM {term_data} td INNER JOIN {term_node} tn ON tn.tid = td.tid WHERE td.vid IN ($vids))";
+    }
+
+    $join = new views_join();
+
+    $join->definition = $def;
+    $join->construct();
+    $join->adjusted = TRUE;
+
+    // use a short alias for this:
+    $alias = $def['table'] . '_' . $this->table;
+
+    $this->alias = $this->query->add_relationship($alias, $join, 'term_data', $this->relationship);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc
new file mode 100644
index 0000000..4e27aba
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc
@@ -0,0 +1,124 @@
+<?php
+/**
+ * @file
+ *   Taxonomy tid default argument.
+ */
+
+class views_plugin_argument_default_taxonomy_tid extends views_plugin_argument_default {
+  var $option_name = 'default_taxonomy_tid';
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options[$this->option_name . '_term_page'] = array('default' => TRUE);
+    $options[$this->option_name . '_node'] = array('default' => FALSE);
+    $options[$this->option_name . '_limit'] = array('default' => FALSE);
+    $options[$this->option_name . '_vids'] = array('default' => array());
+
+    return $options;
+  }
+
+  function argument_form(&$form, &$form_state) {
+    $form[$this->option_name . '_term_page'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Load default argument from term page'),
+      '#default_value' => $this->argument->options[$this->option_name . '_term_page'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array(
+        'radio:options[default_action]' => array('default'),
+        'radio:options[default_argument_type]' => array($this->id)
+      ),
+      '#dependency_count' => 2,
+    );
+    $form[$this->option_name . '_node'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Load default argument from node page, thats good for related taxonomy blocks'),
+      '#default_value' => $this->argument->options[$this->option_name . '_node'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array(
+        'radio:options[default_action]' => array('default'),
+        'radio:options[default_argument_type]' => array($this->id)
+      ),
+      '#dependency_count' => 2,
+    );
+
+    $form[$this->option_name . '_limit'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Limit terms by vocabulary'),
+      '#default_value'=> $this->argument->options[$this->option_name . '_limit'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array(
+        'radio:options[default_action]' => array('default'),
+        'radio:options[default_argument_type]' => array($this->id),
+        'edit-options-default-taxonomy-tid-node' => array(1),
+      ),
+      '#dependency_count' => 3,
+    );
+
+    $options = array();
+    $vocabularies = taxonomy_get_vocabularies();
+    foreach ($vocabularies as $voc) {
+      $options[$voc->vid] = check_plain($voc->name);
+    }
+
+    $form[$this->option_name . '_vids'] = array(
+      '#prefix' => '<div><div id="edit-options-default-taxonomy-tid-vids-wrapper">',
+      '#suffix' => '</div></div>',
+      '#type' => 'checkboxes',
+      '#title' => t('Vocabularies'),
+      '#description' => t('If you wish to limit terms for specific vocabularies, check them; if none are checked, all terms will be included.'),
+      '#options' => $options,
+      '#default_value' => isset($this->argument->options[$this->option_name . '_vids']) ? $this->argument->options[$this->option_name . '_vids'] : array(),
+      '#process' => array('expand_checkboxes', 'views_process_dependency'),
+      '#dependency' => array(
+        'radio:options[default_action]' => array('default'),
+        'radio:options[default_argument_type]' => array($this->id),
+        'edit-options-default-taxonomy-tid-limit' => array(1),
+        'edit-options-default-taxonomy-tid-node' => array(1),
+      ),
+      '#dependency_count' => 4,
+    );
+  }
+
+  function get_argument() {
+    // Load default argument from taxonomy page.
+    if (!empty($this->argument->options[$this->option_name . '_term_page'])) {
+      if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
+        return arg(2);
+      }
+    }
+    // Load default argument from node.
+    if (!empty($this->argument->options[$this->option_name . '_node'])) {
+      foreach (range(1, 3) as $i) {
+        $node = menu_get_object('node', $i);
+        if (!empty($node)) {
+          break;
+        }
+      }
+      // Just check, if a node could be detected.
+      if ($node) {
+        if (!empty($this->argument->options[$this->option_name . '_limit'])) {
+          $tids = array();
+          // Filter by vid.
+          foreach ($node->taxonomy as $tid => $term) {
+            if (!empty($this->argument->options[$this->option_name . '_vids'][$term->vid])) {
+              $tids[] = $tid;
+            }
+          }
+          return implode(",", $tids);
+        }
+        // Return all tids.
+        else {
+          return implode(",", array_keys($node->taxonomy));
+        }
+      }
+    }
+
+    // If the current page is a view that takes tid as an argument,
+    // find the tid argument and return it.
+    $views_page = views_get_page_view();
+    if ($views_page && isset($views_page->view->argument['tid'])) {
+      return $views_page->view->argument['tid']->argument;
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc
new file mode 100644
index 0000000..6903aa8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc
@@ -0,0 +1,148 @@
+<?php
+/**
+ * @file
+ * Contains the 'taxonomy term' argument validator plugin.
+ */
+
+/**
+ * Validate whether an argument is an acceptable node.
+ */
+class views_plugin_argument_validate_taxonomy_term extends views_plugin_argument_validate {
+  function validate_form(&$form, &$form_state) {
+    $vocabularies = taxonomy_get_vocabularies();
+    $options = array();
+    foreach ($vocabularies as $voc) {
+      $options[$voc->vid] = check_plain($voc->name);
+    }
+
+    $form['validate_argument_vocabulary'] = array(
+      '#type' => 'checkboxes',
+      '#prefix' => '<div id="edit-options-validate-argument-vocabulary-wrapper">',
+      '#suffix' => '</div>',
+      '#title' => t('Vocabularies'),
+      '#options' => $options,
+      '#default_value' => isset($this->argument->options['validate_argument_vocabulary']) ? $this->argument->options['validate_argument_vocabulary'] : array(),
+      '#description' => t('If you wish to validate for specific vocabularies, check them; if none are checked, all terms will pass.'),
+      '#process' => array('expand_checkboxes', 'views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+    );
+
+    $form['validate_argument_type'] = array(
+      '#type' => 'select',
+      '#title' => t('Argument type'),
+      '#options' => array(
+        'tid' => t('Term ID'),
+        'tids' => t('Term IDs separated by , or +'),
+        'name' => t('Term name or synonym'),
+        'convert' => t('Term name/synonym converted to Term ID'),
+      ),
+      '#default_value' => isset($this->argument->options['validate_argument_type']) ? $this->argument->options['validate_argument_type'] : 'tid',
+      '#description' => t('Select the form of this argument; if using term name, it is generally more efficient to convert it to a term ID and use Taxonomy: Term ID rather than Taxonomy: Term Name" as an argument.'),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+    );
+
+    $form['validate_argument_transform'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Transform dashes in URL to spaces in term name arguments'),
+      '#default_value' => isset($this->argument->options['validate_argument_transform']) ? $this->argument->options['validate_argument_transform'] : FALSE,
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-validate-argument-type' => array('convert', 'name')),
+    );
+  }
+
+  function validate_argument($argument) {
+    $vids = isset($this->argument->options['validate_argument_vocabulary']) ? array_filter($this->argument->options['validate_argument_vocabulary']) : array();
+    $type = isset($this->argument->options['validate_argument_type']) ? $this->argument->options['validate_argument_type'] : 'tid';
+    $transform = isset($this->argument->options['validate_argument_transform']) ? $this->argument->options['validate_argument_transform'] : FALSE;
+
+    switch ($type) {
+      case 'tid':
+        if (!is_numeric($argument)) {
+          return FALSE;
+        }
+
+        $result = db_fetch_object(db_query("SELECT * FROM {term_data} WHERE tid = %d", $argument));
+        if (!$result) {
+          return FALSE;
+        }
+
+        return empty($vids) || !empty($vids[$result->vid]);
+      case 'tids':
+        // An empty argument is not a term so doesn't pass.
+        if (empty($argument)) {
+          return FALSE;
+        }
+
+        $tids = new stdClass();
+        $tids->value = $argument;
+        $tids = views_break_phrase($argument, $tids);
+        if ($tids->value == array(-1)) {
+          return FALSE;
+        }
+
+        $test = drupal_map_assoc($tids->value);
+        $titles = array();
+
+        // check, if some tids already verified
+        static $validated_cache = array();
+        foreach ($test as $tid) {
+          if (isset($validated_cache[$tid])) {
+            if ($validated_cache[$tid] === FALSE) {
+              return FALSE;
+            }
+            else {
+              $titles[] = $validated_cache[$tid];
+              unset($test[$tid]);
+            }
+          }
+        }
+
+
+        // if unverified tids left - verify them and cache results
+        if (count($test)) {
+          $placeholders = implode(', ', array_fill(0, count($test), '%d'));
+
+          $result = db_query("SELECT * FROM {term_data} WHERE tid IN ($placeholders)", $test);
+          while ($term = db_fetch_object($result)) {
+            if ($vids && empty($vids[$term->vid])) {
+              $validated_cache[$term->tid] = FALSE;
+              return FALSE;
+            }
+
+            $titles[] = $validated_cache[$term->tid] = check_plain($term->name);
+            unset($test[$term->tid]);
+          }
+        }
+
+        // Remove duplicate titles
+        $titles = array_unique($titles);
+
+        $this->argument->validated_title = implode($tids->operator == 'or' ? ' + ' : ', ', $titles);
+        // If this is not empty, we did not find a tid.
+        return empty($test);
+      case 'name':
+      case 'convert':
+        $and = '';
+        if (!empty($vids)) {
+          $and = " AND td.vid IN(" . implode(', ', $vids) . ')';
+        }
+        if ($transform) {
+          $result = db_fetch_object(db_query("SELECT td.* FROM {term_data} td LEFT JOIN {term_synonym} ts ON ts.tid = td.tid WHERE (replace(td.name, ' ', '-') = '%s' OR replace(ts.name, ' ', '-') = '%s')$and", $argument, $argument));
+        }
+        else {
+          $result = db_fetch_object(db_query("SELECT td.* FROM {term_data} td LEFT JOIN {term_synonym} ts ON ts.tid = td.tid WHERE (td.name = '%s' OR ts.name = '%s')$and", $argument, $argument));
+        }
+        if (!$result) {
+          return FALSE;
+        }
+
+        if ($type == 'convert') {
+          $this->argument->argument = $result->tid;
+        }
+        $this->argument->validated_title = check_plain($result->name);
+
+        return TRUE;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation.views.inc
new file mode 100644
index 0000000..0b9f9d2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation.views.inc
@@ -0,0 +1,191 @@
+<?php
+
+/**
+ * @file
+ *
+ * Provide views data and handlers for translation.module
+ */
+
+/**
+ * @defgroup views_translation_module translation.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data_alter().
+ *
+ * Add translation information to the node table.
+ */
+function translation_views_data_alter(&$data) {
+
+  // Joins
+  $data['node']['table']['join']['node'] = array(
+	  'left_field' => 'tnid',
+	  'field' => 'tnid',
+  );
+
+  // Language field
+  $data['node']['language'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Language'),
+    'help' => t('The language the content is in.'),
+    'field' => array(
+      'handler' => 'views_handler_field_node_language',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_language',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_language',
+    ),
+  );
+
+  // The translation ID (nid of the "source" translation)
+  $data['node']['tnid'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Translation set node ID'),
+    'help' => t('The ID of the translation set the content belongs to.'),
+    'field' => array(
+      'handler' => 'views_handler_field_node',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_tnid',
+      'parent' => 'views_handler_argument_numeric', // make sure parent is included
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'tnid',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'relationship' => array(
+      'title' => t('Source translation'),
+      'help' => t('The source that this content was translated from.'),
+      'base' => 'node',
+      'base field' => 'nid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Source translation'),
+    ),
+  );
+
+  // The source translation.
+  $data['node']['translation'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Translations'),
+    'help' => t('Versions of content in different languages.'),
+    'relationship' => array(
+      'title' => t('Translations'),
+      'help' => t('Versions of content in different languages.'),
+      'base' => 'node',
+      'base field' => 'tnid',
+      'relationship table' => 'node',
+      'relationship field' => 'nid',
+      'handler' => 'views_handler_relationship_translation',
+      'label' => t('Translations'),
+    ),
+  );
+
+  // The source translation.
+  $data['node']['source_translation'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Source translation'),
+    'help' => t('Nodes that are either untranslated or are the original versions of a translation set.'),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_tnid',
+    ),
+  );
+
+  // The source translation.
+  $data['node']['child_translation'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Child translation'),
+    'help' => t('Nodes that are translations of a source translation.'),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_tnid_child',
+    ),
+  );
+
+  // Translation status
+  $data['node']['translate'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Translation status'),
+    'help' => t('The translation status of the node--whether or not the translation needs to be updated.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Outdated'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // Translate node link.
+  $data['node']['translate_node'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Translate link'),
+    'help' => t('Provide a simple link to translate the node.'),
+    'field' => array(
+      'handler' => 'views_handler_field_node_link_translate',
+    ),
+  );
+
+
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function translation_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/translation',
+    ),
+    'handlers' => array(
+      // field handlers
+      'views_handler_field_node_language' => array(
+        'parent' => 'views_handler_field_node',
+      ),
+      'views_handler_field_node_link_translate' => array(
+        'parent' => 'views_handler_field_node_link',
+      ),
+      // argument handlers
+      'views_handler_argument_node_language' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_node_tnid' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      // filters
+      'views_handler_filter_node_language' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_node_tnid' => array(
+        'parent' => 'views_handler_filter',
+      ),
+      // relationships
+      'views_handler_relationship_translation' => array(
+        'parent' => 'views_handler_relationship',
+      ),
+      'views_handler_filter_node_tnid_child' => array(
+        'parent' => 'views_handler_filter',
+      ),
+
+    ),
+  );
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_argument_node_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_argument_node_language.inc
new file mode 100644
index 0000000..85ff6c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_argument_node_language.inc
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Argument handler to accept a language.
+ */
+class views_handler_argument_node_language extends views_handler_argument {
+  function construct() {
+    parent::construct('language');
+  }
+
+  /**
+   * Override the behavior of summary_name(). Get the user friendly version
+   * of the language.
+   */
+  function summary_name($data) {
+    return $this->node_language($data->{$this->name_alias});
+  }
+
+  /**
+   * Override the behavior of title(). Get the user friendly version of the
+   * node type.
+   */
+  function title() {
+    return $this->node_language($this->argument);
+  }
+
+  function node_language($langcode) {
+    $languages = locale_language_list();
+    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_argument_node_tnid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_argument_node_tnid.inc
new file mode 100644
index 0000000..c30bf38
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_argument_node_tnid.inc
@@ -0,0 +1,25 @@
+<?php
+/**
+ * @file
+ * Provide node tnid argument handler.
+ */
+
+/**
+ * Argument handler to accept a node translation id.
+ */
+class views_handler_argument_node_tnid extends views_handler_argument_numeric {
+  /**
+   * Override the behavior of title(). Get the title of the node.
+   */
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT n.title FROM {node} n WHERE n.tnid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->title);
+    }
+    return $titles;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_language.inc
new file mode 100644
index 0000000..cae2f79
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_language.inc
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * Field handler to translate a language into its readable form.
+ */
+class views_handler_field_node_language extends views_handler_field_node {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['native_language'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['native_language'] = array(
+      '#title' => t('Native language'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['native_language'],
+      '#description' => t('If enabled, the native name of the language will be displayed'),
+    );
+  }
+
+  function render($values) {
+    $languages = locale_language_list(empty($this->options['native_language']) ? 'name' : 'native');
+    $value = isset($languages[$values->{$this->field_alias}]) ? $languages[$values->{$this->field_alias}] : '';
+    return $this->render_link($value, $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_link_translate.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_link_translate.inc
new file mode 100644
index 0000000..e754493
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_link_translate.inc
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Field handler to present a link node translate.
+ */
+class views_handler_field_node_link_translate extends views_handler_field_node_link {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = 'uid';
+    $this->additional_fields['type'] = 'type';
+    $this->additional_fields['language'] = 'language';
+    $this->additional_fields['format'] = array('table' => 'node_revisions', 'field' => 'format');
+  }
+
+  function render($values) {
+    // ensure user has access to edit this node.
+    $node = new stdClass();
+    $node->nid = $values->{$this->aliases['nid']};
+    $node->uid = $values->{$this->aliases['uid']};
+    $node->type = $values->{$this->aliases['type']};
+    $node->format = $values->{$this->aliases['format']};
+    $node->language = $values->{$this->aliases['language']};
+    $node->status = 1; // unpublished nodes ignore access control
+    if (empty($node->language) || !translation_supported_type($node->type) || !node_access('view', $node) || !user_access('translate content')) {
+      return;
+    }
+
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('translate');
+    return l($text, "node/$node->nid/translate", array('query' => drupal_get_destination()));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_translation_link.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_translation_link.inc
new file mode 100644
index 0000000..5fe947f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_field_node_translation_link.inc
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Field handler to present a link to the node.
+ */
+class views_handler_field_node_translation_link extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['nid'] = 'nid';
+    $this->additional_fields['tnid'] = 'tnid';
+    $this->additional_fields['title'] = 'title';
+    $this->additional_fields['language'] = 'language';
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    global $language;
+    $tnid = $values->{$this->aliases['tnid']};
+    // Only load translations if the node isn't in the current language.
+    if ($values->{$this->aliases['language']} != $language->language) {
+      $translations = translation_node_get_translations($tnid);
+      if (isset($translations[$language->language])) {
+        $values->{$this->aliases['nid']} = $translations[$language->language]->nid;
+        $values->{$this->aliases['title']} = $translations[$language->language]->title;
+      }
+    }
+    return l($values->{$this->aliases['title']}, "node/" . $values->{$this->aliases['nid']});
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_language.inc
new file mode 100644
index 0000000..27e8cae
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_language.inc
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Filter by language
+ */
+class views_handler_filter_node_language extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Language');
+      $languages = array('***CURRENT_LANGUAGE***' => t("Current user's language"), '***DEFAULT_LANGUAGE***' => t("Default site language"), '***NO_LANGUAGE***' => t('No language'));
+      $languages = array_merge($languages, locale_language_list());
+      $this->value_options = $languages;
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_tnid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_tnid.inc
new file mode 100644
index 0000000..b06dbd0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_tnid.inc
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Filter by whether the node is the original translation.
+ */
+class views_handler_filter_node_tnid extends views_handler_filter {
+  function admin_summary() { }
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['operator']['default'] = 1;
+
+    return $options;
+  }
+
+  /**
+   * Provide simple boolean operator
+   */
+  function operator_form(&$form, &$form_state) {
+    $form['operator'] = array(
+      '#type' => 'radios',
+      '#title' => t('Include untranslated nodes'),
+      '#default_value' => $this->operator,
+      '#options' => array(
+        1 => t('Yes'),
+        0 => t('No'),
+      ),
+    );
+  }
+
+  function can_expose() { return FALSE; }
+
+  function query() {
+    $table = $this->ensure_my_table();
+    // Select for source translations (tnid = nid). Conditionally, also accept either untranslated nodes (tnid = 0).
+    $this->query->add_where($this->options['group'], "$table.tnid = $table.nid" . ($this->operator ? " OR $table.tnid = 0" : ''));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_tnid_child.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_tnid_child.inc
new file mode 100644
index 0000000..d35aff7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_filter_node_tnid_child.inc
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Filter by whether the node is not the original translation.
+ */
+class views_handler_filter_node_tnid_child extends views_handler_filter {
+  function admin_summary() { }
+  function operator_form(&$form, &$form_state) { }
+  function can_expose() { return FALSE; }
+
+  function query() {
+    $table = $this->ensure_my_table();
+    $this->query->add_where($this->options['group'], "$table.tnid <> $table.nid AND $table.tnid > 0");
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_relationship_translation.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_relationship_translation.inc
new file mode 100644
index 0000000..ab47132
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/translation/views_handler_relationship_translation.inc
@@ -0,0 +1,96 @@
+<?php
+
+/**
+ * Handles relationships for content translation sets and provides multiple
+ * options.
+ */
+class views_handler_relationship_translation extends views_handler_relationship {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['language'] = array('default' => 'current');
+
+    return $options;
+  }
+
+  /**
+   * Add a translation selector.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $options = array(
+      'all' => t('All'),
+      'current' => t('Current language'),
+      'default' => t('Default language'),
+    );
+    $options = array_merge($options, locale_language_list());
+    $form['language'] = array(
+      '#type' => 'select',
+      '#options' => $options,
+      '#default_value' => $this->options['language'],
+      '#title' => t('Translation option'),
+      '#description' => t('The translation options allows you to select which translation or translations in a translation set join on. Select "Current language" or "Default language" to join on the translation in the current or default language respectively. Select a specific language to join on a translation in that language. If you select "All", each translation will create a new row, which may appear to cause duplicates.'),
+    );
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    // Figure out what base table this relationship brings to the party.
+    $table_data = views_fetch_data($this->definition['base']);
+    $base_field = empty($this->definition['base field']) ? $table_data['table']['base']['field'] : $this->definition['base field'];
+
+    $this->ensure_my_table();
+
+    $def = $this->definition;
+    $def['table'] = $this->definition['base'];
+    $def['field'] = $base_field;
+    $def['left_table'] = $this->table_alias;
+    $def['left_field'] = $this->field;
+    if (!empty($this->options['required'])) {
+      $def['type'] = 'INNER';
+    }
+
+    $def['extra'] = array();
+    if ($this->options['language'] != 'all') {
+      switch ($this->options['language']) {
+        case 'current':
+          $def['extra'][] = array(
+            'field' => 'language',
+            'value' => '***CURRENT_LANGUAGE***',
+          );
+          break;
+        case 'default':
+          $def['extra'][] = array(
+            'field' => 'language',
+            'value' => '***DEFAULT_LANGUAGE***',
+          );
+          break;
+        // Other values will be the language codes.
+        default:
+          $def['extra'][] = array(
+            'field' => 'language',
+            'value' => $this->options['language'],
+          );
+          break;
+      }
+    }
+
+    if (!empty($def['join_handler']) && class_exists($def['join_handler'])) {
+      $join = new $def['join_handler'];
+    }
+    else {
+      $join = new views_join();
+    }
+
+    $join->definition = $def;
+    $join->construct();
+    $join->adjusted = TRUE;
+
+    // use a short alias for this:
+    $alias = $def['table'] . '_' . $this->table;
+
+    $this->alias = $this->query->add_relationship($alias, $join, $this->definition['base'], $this->relationship);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/upload.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/upload.views.inc
new file mode 100644
index 0000000..7107e41
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/upload.views.inc
@@ -0,0 +1,163 @@
+<?php
+/**
+ * @file
+ *
+ * Provide views data and handlers for upload tables that are not represented by
+ * their own module.
+ */
+
+/**
+ * @defgroup views_upload_module upload.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function upload_views_data() {
+  $data = array();
+
+  // ----------------------------------------------------------------------
+  // upload table
+
+  $data['upload']['table']['group']  = t('Upload');
+
+  $data['upload']['table']['join'] = array(
+    'node' => array(
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+    'node_revisions' => array(
+      'left_field' => 'vid',
+      'field' => 'vid',
+    ),
+    'files' => array(
+      'left_field' => 'fid',
+      'field' => 'fid',
+    ),
+  );
+
+  $data['upload']['vid'] = array(
+    'title' => t('Node'),
+    'help' => t('The node the uploaded file is attached to'),
+    'relationship' => array(
+      'label' => t('upload'),
+      'base' => 'node',
+      'base field' => 'vid',
+      // This allows us to not show this relationship if the base is already
+      // node so users won't create circular relationships.
+      'skip base' => array('node', 'node_revisions'),
+    ),
+  );
+
+  $data['upload']['description'] = array(
+    'title' => t('Description'),
+    'help' => t('The description of the uploaded file.'),
+    'field' => array(
+      'handler' => 'views_handler_field_upload_description',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  $data['upload']['list'] = array(
+    'title' => t('Listed'),
+    'help' => t('Whether or not the file is marked to be listed.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Published'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  $data['upload']['weight'] = array(
+    'title' => t('Weight'),
+    'help' => t('The weight, used for sorting.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+     ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_data_alter()
+ */
+function upload_views_data_alter(&$data) {
+  $data['node']['upload_fid'] = array(
+    'group' => t('Upload'),
+    'title' => t('Attached files'),
+    'help' => t('All files attached to a node with upload.module.'),
+    'real field' => 'vid',
+    'field' => array(
+      'handler' => 'views_handler_field_upload_fid',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_upload_fid',
+      'title' => t('Has attached files'),
+      'type' => 'yes-no',
+      'help' => t('Only display items with attached files. This can cause duplicates if there are multiple attached files.'),
+    ),
+    'relationship' => array(
+      'title' => t('Attached files'),
+      'help' => t('Add a relationship to gain access to more file data for files uploaded by upload.module. Note that this relationship will cause duplicate nodes if there are multiple files attached to the node.'),
+      'relationship table' => 'upload',
+      'relationship field' => 'fid',
+      'base' => 'files',
+      'base field' => 'fid',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Files'),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function upload_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/upload',
+    ),
+    'handlers' => array(
+      'views_handler_field_upload_fid' => array(
+        'parent' => 'views_handler_field_prerender_list',
+      ),
+      'views_handler_field_upload_description' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_filter_upload_fid' => array(
+        'parent' => 'views_handler_filter_boolean_operator',
+      ),
+    ),
+  );
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/upload.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/upload.views_convert.inc
new file mode 100644
index 0000000..7a1662a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/upload.views_convert.inc
@@ -0,0 +1,107 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ *
+ * Intervene to convert field values from the Views 1 format to the
+ * Views 2 format. Intervene only if $view->add_item() won't produce
+ * the right results, usually needed to set field options or values.
+ */
+function upload_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'field':
+      switch ($field['tablename']) {
+        case 'file_revisions':
+          switch ($field['field']) {
+            case 'fid':
+              $relationship = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+              $view->set_item_option($display, 'field', $id, 'relationship', $relationship);
+              $view->set_item_option($display, 'field', $id, 'table', 'files');
+              break;
+          }
+          break;
+        case 'files':
+          switch ($field['field']) {
+            case 'all_files':
+              $item = $view->get_item($display, 'field', $id);
+              switch ($field['options']) {
+                case 'link':
+                  $item['link_to_file'] = TRUE;
+                  break;
+                case 'linkdesc':
+                  $item['link_to_file'] = TRUE;
+                case 'nolinkdesc':
+                  $item['alter']['alter_text'] = TRUE;
+                  $item['alter']['text'] = '['. $view->add_item($display, 'field', 'upload', 'description', array('exclude' => TRUE)) .']';
+                  break;
+              }
+              if ($field['handler'] == 'views_handler_file_listed_files') {
+                $item['only_listed'] = TRUE;
+              }
+              $item['table'] = 'node';
+              $item['field'] = 'upload_fid';
+              $view->set_item($display, 'field', $id, $item);
+              break;
+            case 'filename':
+              if ($field['handler'] == 'views_handler_file_filename_download') {
+                $view->set_item_option($display, 'field', $id, 'link_to_file', TRUE);
+              }
+              $relationship = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+              $view->set_item_option($display, 'field', $id, 'relationship', $relationship);
+              break;
+          }
+          break;
+      }
+      break;
+    case 'filter':
+      switch ($field['tablename']) {
+        case 'file_revisions':
+          switch ($field['field']) {
+            case 'fid':
+              $view->set_item_option($display, 'filter', $id, 'table', 'node');
+              $view->set_item_option($display, 'filter', $id, 'field', 'upload_fid');
+              break;
+            case 'list':
+              $view->set_item_option($display, 'filter', $id, 'table', 'upload');
+              break;
+          }
+          break;
+        case 'files':
+          switch ($field['field']) {
+            case 'filename':
+            case 'filemime':
+              $item = $view->get_item($display, 'filter', $id);
+              $item['operator'] = $field['operator'];
+              $item['case'] = FALSE;
+              $item['relationship'] = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+              $view->set_item($display, 'filter', $id, $item);
+              break;
+            case 'filesize':
+              $relationship = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+              $view->set_item_option($display, 'filter', $id, 'relationship', $relationship);
+              $view->set_item_option($display, 'filter', $id, 'operator', $field['operator']);
+              break;
+          }
+          break;
+      }
+      break;
+    case 'sorts':
+      switch ($field['tablename']) {
+        case 'file_revisions':
+          switch ($field['field']) {
+            case 'fid':
+              $relationship = $view->add_item($display, 'relationship', 'node', 'upload_fid', array(), 'node_upload_fid');
+              $view->set_item_option($display, 'field', $id, 'relationship', $relationship);
+              $view->set_item_option($display, 'field', $id, 'table', 'files');
+              break;
+          }
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_field_upload_description.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_field_upload_description.inc
new file mode 100644
index 0000000..ec6ad0c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_field_upload_description.inc
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * Field handler to provide a list of roles.
+ */
+class views_handler_field_upload_description extends views_handler_field {
+  function init(&$view, $options) {
+    parent::init($view, $options);
+    if (!empty($options['link_to_file'])) {
+      $this->additional_fields['fid'] = 'fid';
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_file'] = array('default' => FALSE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_file'] = array(
+      '#title' => t('Link this field to download the file'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_file']),
+    );
+  }
+
+  function pre_render(&$values) {
+    if (empty($this->options['link_to_file'])) {
+      return;
+    }
+
+    $fids = array();
+    $this->items = array();
+
+    $data = array();
+    foreach ($values as $result) {
+      if ($result->{$this->aliases['fid']}) {
+        $fids[] = $result->{$this->aliases['fid']};
+      }
+    }
+
+    if ($fids) {
+      $result = db_query("SELECT f.fid, f.filepath FROM {files} f WHERE f.fid IN (" . implode(', ', $fids) . ")");
+      while ($file = db_fetch_object($result)) {
+        $this->items[$file->fid] = $file;
+      }
+    }
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+
+  /**
+   * Render whatever the data is as a link to the file.
+   *
+   * Data should be made XSS safe prior to calling this function.
+   */
+  function render_link($data, $value) {
+    if (!empty($this->options['link_to_file']) && $value->{$this->aliases['fid']} && $data !== NULL && $data !== '') {
+      $values = $this->items[$value->{$this->aliases['fid']}];
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = file_create_url($values->filepath);
+    }
+    else {
+      $this->options['alter']['make_link'] = FALSE;
+    }
+    return $data;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_field_upload_fid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_field_upload_fid.inc
new file mode 100644
index 0000000..d7ae1d8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_field_upload_fid.inc
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Field handler to provide a list of roles.
+ */
+class views_handler_field_upload_fid extends views_handler_field_prerender_list {
+  function construct() {
+    parent::construct();
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_file'] = array('default' => FALSE);
+    $options['only_listed'] = array('default' => FALSE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_file'] = array(
+      '#title' => t('Link this field to download the file'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_file']),
+    );
+
+    $form['only_listed'] = array(
+      '#title' => t('Only show "listed" file attachments'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['only_listed']),
+    );
+  }
+
+  function pre_render(&$values) {
+    $vids = array();
+    $this->items = array();
+
+    foreach ($values as $result) {
+      $vids[] = $result->{$this->field_alias};
+    }
+
+    if ($vids) {
+      // Support "only listed files" option.
+      $where = '';
+      if (!empty($this->options['only_listed'])) {
+        $where = " AND u.list <> 0";
+      }
+      $result = db_query("SELECT u.vid, u.fid, f.filename, f.filepath, f.filesize, f.filemime, u.description FROM {upload} u LEFT JOIN {files} f ON f.fid = u.fid WHERE u.vid IN (" . implode(', ', $vids) . ")$where ORDER BY u.weight");
+      while ($file = db_fetch_array($result)) {
+        $file['filename'] = check_plain($file['filename']);
+        $file['filemime'] = check_plain($file['filemime']);
+        $file['description'] = check_plain($file['description']);
+        $file['filesize'] = format_size($file['filesize']);
+        $file['filepath'] = file_create_url($file['filepath']);
+        if (!empty($this->options['link_to_file']) ) {
+          $file['make_link'] = TRUE;
+          $file['path'] = $file['filepath'];
+        }
+        $this->items[$file['vid']][$file['fid']] = $file;
+      }
+    }
+  }
+
+  function render_item($count, $item) {
+    return $item['description'];
+  }
+
+  function document_self_tokens(&$tokens) {
+    $tokens['[' . $this->options['id'] . '-fid' . ']'] = t('The file ID for the file.');
+    $tokens['[' . $this->options['id'] . '-name' . ']'] = t('The name of the attached file.');
+    $tokens['[' . $this->options['id'] . '-type' . ']'] = t('The MIME type of the attached file.');
+    $tokens['[' . $this->options['id'] . '-description' . ']'] = t('The name of the attached file.');
+    $tokens['[' . $this->options['id'] . '-path' . ']'] = t('The path of the attached file.');
+    $tokens['[' . $this->options['id'] . '-url' . ']'] = t('The url of the attached file.');
+    $tokens['[' . $this->options['id'] . '-size' . ']'] = t('The size of the attached file.');
+  }
+
+  function add_self_tokens(&$tokens, $item) {
+    $tokens['[' . $this->options['id'] . '-fid' . ']'] = $item['fid'];
+    $tokens['[' . $this->options['id'] . '-name' . ']'] = $item['filename'];
+    $tokens['[' . $this->options['id'] . '-type' . ']'] = $item['filemime'];
+    $tokens['[' . $this->options['id'] . '-description' . ']'] = $item['description'];
+    $tokens['[' . $this->options['id'] . '-path' . ']'] = $item['filepath'];
+    $tokens['[' . $this->options['id'] . '-url' . ']'] = url($item['filepath']);
+    $tokens['[' . $this->options['id'] . '-size' . ']'] = $item['filesize'];
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_filter_upload_fid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_filter_upload_fid.inc
new file mode 100644
index 0000000..31a9570
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/upload/views_handler_filter_upload_fid.inc
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Filter by whether or not a node has attached files from the upload module
+ */
+class views_handler_filter_upload_fid extends views_handler_filter_boolean_operator {
+  function construct() {
+    parent::construct();
+    $this->value_value = t('Has attached files');
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->query->add_where($this->options['group'], "(SELECT COUNT(*) FROM {upload} u WHERE u.vid = $this->table_alias.$this->real_field) " . (empty($this->value) ? '=' : '<>') . " 0");
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user.views.inc
new file mode 100644
index 0000000..2795ec0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user.views.inc
@@ -0,0 +1,481 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers for user.module
+ */
+
+/**
+ * @defgroup views_user_module user.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function user_views_data() {
+  // ----------------------------------------------------------------
+  // users table
+
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  $data['users']['table']['group']  = t('User');
+
+  $data['users']['table']['base'] = array(
+    'field' => 'uid',
+    'title' => t('User'),
+    'help' => t('Users who have created accounts on your site.'),
+  );
+
+  $data['users']['table']['join'] = array(
+    'node' => array(
+      'left_field' => 'uid',
+      'field' => 'uid',
+      'type' => 'INNER', // all nodes have an author.
+    ),
+    // This goes to the node so that we have consistent authorship.
+    'node_revisions' => array(
+      'left_table' => 'node',
+      'left_field' => 'uid',
+      'field' => 'uid',
+      'type' => 'INNER', // all nodes have an author.
+    ),
+  );
+
+  // uid
+  $data['users']['uid'] = array(
+    'title' => t('Uid'),
+    'help' => t('The user ID'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_user',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_user_uid',
+      'name field' => 'name', // display this field in the summary
+    ),
+    'filter' => array(
+      'title' => t('Name'),
+      'handler' => 'views_handler_filter_user_name',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // uid
+  $data['users']['uid_current'] = array(
+    'real field' => 'uid',
+    'title' => t('Current'),
+    'help' => t('Filter the view to the currently logged in user.'),
+    'filter' => array(
+      'handler' => 'views_handler_filter_user_current',
+      'type' => 'yes-no',
+    ),
+  );
+
+  // name
+  $data['users']['name'] = array(
+    'title' => t('Name'), // The item it appears as on the UI,
+    'help' => t('The user or author name.'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_user_name',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+      'title' => t('User raw name'),
+      'help' => t('The user or author name. This filter do not check if the user exists. Only useful for string comparisons.')
+    ),
+  );
+
+  // mail
+  // Note that this field implements field level access control.
+  $data['users']['mail'] = array(
+    'title' => t('E-mail'), // The item it appears as on the UI,
+    'help' => t('Email address for a given user. This field is normally not shown to users, so be cautious when using it.'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_user_mail',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // language
+  $data['users']['language'] = array(
+    'title' => t('Language'), // The item it appears as on the UI,
+    'help' => t('Language of the user'),
+    'field' => array(
+      'handler' => 'views_handler_field_user_language',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_language',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_language',
+    ),
+  );
+
+  // picture
+  $data['users']['picture'] = array(
+    'title' => t('Picture'),
+    'help' => t("The user's picture, if allowed."), // The help that appears on the UI,
+    // Information for displaying the uid
+    'field' => array(
+      'handler' => 'views_handler_field_user_picture',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator_string',
+      'label' => t('Has Avatar'),
+      'type' => 'yes-no',
+    ),
+  );
+
+    // created field
+  $data['users']['created'] = array(
+    'title' => t('Created date'), // The item it appears as on the UI,
+    'help' => t('The date the user was created.'), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // access field
+  $data['users']['access'] = array(
+    'title' => t('Last access'), // The item it appears as on the UI,
+    'help' => t("The user's last access date."), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // login field
+  $data['users']['login'] = array(
+    'title' => t('Last login'), // The item it appears as on the UI,
+    'help' => t("The user's last login date."), // The help that appears on the UI,
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // active status
+  $data['users']['status'] = array(
+    'title' => t('Active'), // The item it appears as on the UI,
+    'help' => t('Whether a user is active or blocked.'), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Active'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // log field
+  $data['users']['signature'] = array(
+    'title' => t('Signature'), // The item it appears as on the UI,
+    'help' => t("The user's signature."), // The help that appears on the UI,
+     // Information for displaying a title as a field
+    'field' => array(
+      'handler' => 'views_handler_field_xss',
+     ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  $data['users']['edit_node'] = array(
+    'field' => array(
+      'title' => t('Edit link'),
+      'help' => t('Provide a simple link to edit the user.'),
+      'handler' => 'views_handler_field_user_link_edit',
+    ),
+  );
+
+  $data['users']['delete_node'] = array(
+    'field' => array(
+      'title' => t('Delete link'),
+      'help' => t('Provide a simple link to delete the user.'),
+      'handler' => 'views_handler_field_user_link_delete',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // users_roles table
+
+  $data['users_roles']['table']['group']  = t('User');
+
+  // Explain how this table joins to others.
+  $data['users_roles']['table']['join'] = array(
+     // Directly links to users table.
+    'users' => array(
+      'left_field' => 'uid',
+      'field' => 'uid',
+    ),
+    'node' => array(
+      'left_field' => 'uid',
+      'field' => 'uid',
+    ),
+    'node_revisions' => array(
+      'left_table' => 'node',
+      'left_field' => 'uid',
+      'field' => 'uid',
+    ),
+  );
+
+  $data['users_roles']['rid'] = array(
+    'title' => t('Roles'),
+    'help' => t('Roles that a user belongs to.'),
+    'field' => array(
+      'handler' => 'views_handler_field_user_roles',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_user_roles',
+      'numeric' => TRUE,
+      'allow empty' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_users_roles_rid',
+      'name table' => 'role',
+      'name field' => 'name',
+      'empty field name' => t('No role'),
+      'zero is null' => TRUE,
+      'numeric' => TRUE,
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // role table
+
+  $data['role']['table']['join'] = array(
+     // Directly links to users table.
+    'users' => array(
+      'left_table' => 'users_roles',
+      'left_field' => 'rid',
+      'field' => 'rid',
+    ),
+    // needed for many to one helper sometimes
+    'users_roles' => array(
+      'left_field' => 'rid',
+      'field' => 'rid',
+    ),
+    'node' => array(
+      'left_table' => 'users_roles',
+      'left_field' => 'rid',
+      'field' => 'rid',
+    ),
+    'node_revisions' => array(
+      'left_table' => 'users_roles',
+      'left_field' => 'rid',
+      'field' => 'rid',
+    ),
+  );
+
+  // ----------------------------------------------------------------------
+  // authmap table
+
+  $data['authmap']['table']['group']  = t('User');
+  $data['authmap']['table']['join'] = array(
+     // Directly links to users table.
+    'users' => array(
+      'left_field' => 'uid',
+      'field' => 'uid',
+    ),
+    'node' => array(
+      'left_table' => 'users',
+      'left_field' => 'uid',
+      'field' => 'uid',
+    ),
+  );
+  $data['authmap']['aid'] = array(
+    'title' => t('Authmap ID'),
+    'help' => t('The Authmap ID.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+      'numeric' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+      'numeric' => TRUE,
+    ),
+  );
+  $data['authmap']['authname'] = array(
+    'title' => t('Authentication name'),
+    'help' => t('The unique authentication name.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+  $data['authmap']['module'] = array(
+    'title' => t('Authentication module'),
+    'help' => t('The name of the module managing the authentication entry.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function user_views_plugins() {
+  return array(
+    'module' => 'views', // This just tells our themes are elsewhere.
+    'argument default' => array(
+      'user' => array(
+        'title' => t('User ID from URL'),
+        'handler' => 'views_plugin_argument_default_user',
+        'path' => drupal_get_path('module', 'views') . '/modules/user', // not necessary for most modules
+        'parent' => 'fixed', // so that the parent class is included
+      ),
+      'current_user' => array(
+        'title' => t('User ID from logged in user'),
+        'handler' => 'views_plugin_argument_default_current_user',
+        'path' => drupal_get_path('module', 'views') . '/modules/user', // not necessary for most modules
+        'parent' => 'fixed', // so that the parent class is included
+      ),
+    ),
+    'argument validator' => array(
+      'user' => array(
+        'title' => t('User'),
+        'handler' => 'views_plugin_argument_validate_user',
+        'path' => drupal_get_path('module', 'views') . '/modules/user', // not necessary for most modules
+      ),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function user_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/user',
+    ),
+    'handlers' => array(
+      'views_handler_argument_user_uid' => array(
+        'parent' => 'views_handler_argument_numeric',
+      ),
+      'views_handler_field_user' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_user_name' => array(
+        'parent' => 'views_handler_field_user',
+      ),
+      'views_handler_field_user_link' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_user_link_edit' => array(
+        'parent' => 'views_handler_field_user_link',
+      ),
+      'views_handler_field_user_link_delete' => array(
+        'parent' => 'views_handler_field_user_link',
+      ),
+      'views_handler_field_user_mail' => array(
+        'parent' => 'views_handler_field_user',
+      ),
+      'views_handler_field_user_language' => array(
+        'parent' => 'views_handler_field_user',
+      ),
+      'views_handler_field_user_picture' => array(
+        'parent' => 'views_handler_field',
+      ),
+      'views_handler_field_user_roles' => array(
+        'parent' => 'views_handler_field_prerender_list',
+      ),
+      'views_handler_filter_user_name' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+      'views_handler_filter_user_current' => array(
+        'parent' => 'views_handler_filter_boolean_operator',
+      ),
+      'views_handler_filter_user_roles' => array(
+        'parent' => 'views_handler_filter_many_to_one',
+      ),
+      'views_handler_argument_users_roles_rid' => array(
+        'parent' => 'views_handler_argument_many_to_one',
+      ),
+    ),
+  );
+}
+
+
+/**
+ * Allow replacement of current userid so we can cache these queries
+ */
+function user_views_query_substitutions($view) {
+  global $user;
+  return array('***CURRENT_USER***' => intval($user->uid));
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user.views_convert.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user.views_convert.inc
new file mode 100644
index 0000000..1486fca
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user.views_convert.inc
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * @file
+ * Field conversion for fields handled by this module.
+ */
+
+/**
+ * Implementation of hook_views_convert().
+ */
+function user_views_convert($display, $type, &$view, $field, $id = NULL) {
+  switch ($type) {
+    case 'field':
+      switch ($field['tablename']) {
+        case 'users':
+          switch ($field['field']) {
+            case 'uid':
+              $view->set_item_option($display, 'field', $id, 'field', 'picture');
+              break;
+          }
+          break;
+      }
+      break;
+    case 'filter':
+      if ($field['tablename'] == 'users' || !strncmp($field['tablename'], 'users_role_', 11)) {
+        switch ($field['field']) {
+          case 'uid':
+            $operators = array('OR' => 'in', 'NOR' => 'not in');
+            $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+            if ($rid = (integer) substr($field['tablename'], 11)) {
+              $view->add_item($display, 'filter', 'users_roles', 'rid', array('value' => $rid));
+            }
+            break;
+        }
+      }
+      elseif ($field['tablename'] == 'users_roles') {
+        switch ($field['field']) {
+          case 'rid':
+            $operators = array('AND' => 'and', 'OR' => 'or', 'NOR' => 'not');
+            $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
+            break;
+        }
+      }
+      break;
+    case 'argument':
+      $options = $field['argoptions'];
+      switch ($field['type']) {
+        case 'uid':
+          $view->add_item($display, 'argument', 'users', 'uid', $options, $field['id']);
+          break;
+        case 'uidtouch':
+          $view->add_item($display, 'argument', 'node', 'uid_touch', $options, $field['id']);
+          break;
+        case 'username':
+          $view->add_item($display, 'argument', 'users', 'name', $options, $field['id']);
+          break;
+      }
+      break;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_argument_user_uid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_argument_user_uid.inc
new file mode 100644
index 0000000..13f7a8f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_argument_user_uid.inc
@@ -0,0 +1,29 @@
+<?php
+/**
+ * @file
+ * Provide user uid argument handler.
+ */
+
+/**
+ * Argument handler to accept a user id.
+ */
+class views_handler_argument_user_uid extends views_handler_argument_numeric {
+  /**
+   * Override the behavior of title(). Get the name of the user.
+   */
+  function title_query() {
+    if (!$this->argument) {
+      return array(variable_get('anonymous', t('Anonymous')));
+    }
+
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT u.name FROM {users} u WHERE u.uid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->name);
+    }
+    return $titles;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_argument_users_roles_rid.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_argument_users_roles_rid.inc
new file mode 100644
index 0000000..0c6626c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_argument_users_roles_rid.inc
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Allow role ID(s) as argument
+ */
+class views_handler_argument_users_roles_rid extends views_handler_argument_many_to_one {
+  function title_query() {
+    $titles = array();
+    $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+
+    $result = db_query("SELECT name FROM {role} WHERE rid IN ($placeholders)", $this->value);
+    while ($term = db_fetch_object($result)) {
+      $titles[] = check_plain($term->name);
+    }
+    return $titles;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user.inc
new file mode 100644
index 0000000..0c62556
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user.inc
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that allows linking to a user.
+ */
+class views_handler_field_user extends views_handler_field {
+  /**
+   * Override init function to provide generic option to link to user.
+   */
+  function init(&$view, $data) {
+    parent::init($view, $data);
+    if (!empty($this->options['link_to_user'])) {
+      $this->additional_fields['uid'] = 'uid';
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_user'] = array('default' => TRUE);
+    return $options;
+  }
+
+  /**
+   * Provide link to node option
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_user'] = array(
+      '#title' => t('Link this field to its user'),
+      '#description' => t('This will override any other link you have set.'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['link_to_user'],
+    );
+  }
+
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_user']) && user_access('access user profiles') && $values->{$this->aliases['uid']} && $data !== NULL && $data !== '') {
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = "user/" . $values->{$this->aliases['uid']};
+    }
+    return $data;
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_language.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_language.inc
new file mode 100644
index 0000000..4a63be1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_language.inc
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ *   Views field handler for userlanguage.
+ */
+
+class views_handler_field_user_language extends views_handler_field_user {
+
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_user']) && user_access('access user profiles') && $values->{$this->aliases['uid']}) {
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = 'user/' . $values->{$this->aliases['uid']};
+    }
+    if (empty($data)) {
+      $lang = language_default();
+    }
+    else {
+      $lang = language_list();
+      $lang = $lang[$data];
+    }
+
+    return check_plain($lang->name);
+  }
+
+  function render($values) {
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link.inc
new file mode 100644
index 0000000..ea20aee
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link.inc
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Field handler to present a link to the user.
+ */
+class views_handler_field_user_link extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = 'uid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['text'] = array('default' => '', 'translatable' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+    );
+  }
+
+  // An example of field level access control.
+  function access() {
+    return user_access('access user profiles');
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
+    $uid = $values->{$this->aliases['uid']};
+    return l($text, "user/$uid");
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link_delete.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link_delete.inc
new file mode 100644
index 0000000..aada6b6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link_delete.inc
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Field handler to present a link to user delete.
+ */
+class views_handler_field_user_link_delete extends views_handler_field_user_link {
+  // An example of field level access control.
+  function access() {
+    return user_access('administer users');
+  }
+
+  function render($values) {
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
+    $uid = $values->{$this->aliases['uid']};
+    return l($text, "user/$uid/delete", array('query' => drupal_get_destination()));
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link_edit.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link_edit.inc
new file mode 100644
index 0000000..d14c709
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_link_edit.inc
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Field handler to present a link to user edit.
+ */
+class views_handler_field_user_link_edit extends views_handler_field_user_link {
+  function render($values) {
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
+    $uid = $values->{$this->aliases['uid']};
+    // Fake object to check access.
+    $account = new stdClass();
+    $account->uid = $uid;
+    if (user_edit_access($account)) {
+      return l($text, "user/$uid/edit", array('query' => drupal_get_destination()));
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_mail.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_mail.inc
new file mode 100644
index 0000000..1967481
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_mail.inc
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Field handler to provide acess control for the email field
+ */
+class views_handler_field_user_mail extends views_handler_field_user {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_user'] = array('default' => 'mailto');
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_user'] = array(
+      '#title' => t('Link this field'),
+      '#type' => 'radios',
+      '#options' => array(
+        0 => t('No link'),
+        'user' => t('To the user'),
+        'mailto' => t("With a mailto:"),
+      ),
+      '#default_value' => $this->options['link_to_user'],
+    );
+  }
+
+  function render($values) {
+    if ($this->options['link_to_user'] == 'mailto') {
+      return l($values->{$this->field_alias}, "mailto:" . $values->{$this->field_alias});
+    }
+    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_name.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_name.inc
new file mode 100644
index 0000000..deb814a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_name.inc
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Field handler to provide simple renderer that allows using a themed user link
+ */
+class views_handler_field_user_name extends views_handler_field_user {
+  /**
+   * Add uid in the query so we can test for anonymous if needed.
+   */
+  function init(&$view, $data) {
+    parent::init($view, $data);
+    if (!empty($this->options['overwrite_anonymous'])) {
+      $this->additional_fields['uid'] = 'uid';
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['overwrite_anonymous'] = array('default' => FALSE);
+    $options['anonymous_text'] = array('default' => '', 'translatable' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['overwrite_anonymous'] = array(
+      '#title' => t('Overwrite the value to display for anonymous users'),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['overwrite_anonymous']),
+      '#description' => t('If selected, you will see a field to enter the text to use for anonymous users.'),
+    );
+    $form['anonymous_text'] = array(
+      '#title' => t('Text to display for anonymous users'),
+      '#type' => 'textfield',
+      '#default_value' => $this->options['anonymous_text'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array(
+        'edit-options-overwrite-anonymous' => array(1),
+      ),
+    );
+  }
+
+  function render_link($data, $values) {
+    if (!empty($this->options['link_to_user']) || !empty($this->options['overwrite_anonymous'])) {
+      $account = new stdClass();
+      $account->uid = $values->{$this->aliases['uid']};
+      if (!empty($this->options['overwrite_anonymous']) && !$account->uid) {
+        // This is an anonymous user, and we're overriting the text.
+        return check_plain($this->options['anonymous_text']);
+      }
+      elseif (!empty($this->options['link_to_user'])) {
+        $account->name = $values->{$this->field_alias};
+        return theme('username', $account);
+      }
+    }
+    // Otherwise, there's no special handling, so return the data directly.
+    return $data;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_picture.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_picture.inc
new file mode 100644
index 0000000..44b39e7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_picture.inc
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Field handler to provide simple renderer that allows using a themed user link
+ */
+class views_handler_field_user_picture extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = 'uid';
+    $this->additional_fields['name'] = 'name';
+    $this->additional_fields['mail'] = 'mail';   
+  }
+
+  function element_type() {
+    return 'div';
+  }
+
+  function render($values) {
+    // Fake an account object.
+    $account = new stdClass();
+    $account->uid = $values->{$this->aliases['uid']};
+    $account->name = $values->{$this->aliases['name']};
+    $account->mail = $values->{$this->aliases['mail']};
+    $account->picture = $values->{$this->field_alias};
+
+    return theme('user_picture', $account);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_roles.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_roles.inc
new file mode 100644
index 0000000..e677f11
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_field_user_roles.inc
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Field handler to provide a list of roles.
+ */
+class views_handler_field_user_roles extends views_handler_field_prerender_list {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['uid'] = array('table' => 'users', 'field' => 'uid');
+  }
+
+  function query() {
+    $this->add_additional_fields();
+    $this->field_alias = $this->aliases['uid'];
+  }
+
+  function pre_render(&$values) {
+    $uids = array();
+    $this->items = array();
+
+    foreach ($values as $result) {
+      $uids[] = $result->{$this->aliases['uid']};
+    }
+
+    if ($uids) {
+      $result = db_query("SELECT u.uid, u.rid, r.name FROM {role} r INNER JOIN {users_roles} u ON u.rid = r.rid WHERE u.uid IN (" . implode(', ', $uids) . ") ORDER BY r.name");
+      while ($role = db_fetch_object($result)) {
+        $this->items[$role->uid][$role->rid]['role'] = check_plain($role->name);
+        $this->items[$role->uid][$role->rid]['rid'] = $role->rid;
+      }
+    }
+  }
+
+  function render_item($count, $item) {
+    return $item['role'];
+  }
+
+  function document_self_tokens(&$tokens) {
+    $tokens['[' . $this->options['id'] . '-role' . ']'] = t('The name of the role.');
+    $tokens['[' . $this->options['id'] . '-rid' . ']'] = t('The role ID of the role.');
+  }
+
+  function add_self_tokens(&$tokens, $item) {
+    $tokens['[' . $this->options['id'] . '-role' . ']'] = $item['role'];
+    $tokens['[' . $this->options['id'] . '-rid' . ']'] = $item['rid'];
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_current.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_current.inc
new file mode 100644
index 0000000..7b94f8e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_current.inc
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * Filter handler for the current user
+ */
+class views_handler_filter_user_current extends views_handler_filter_boolean_operator {
+  function construct() {
+    parent::construct();
+    $this->value_value = t('Is the logged in user');
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $where = "$this->table_alias.$this->real_field ";
+
+    if (empty($this->value)) {
+      $where .= '<> ***CURRENT_USER***';
+      if ($this->accept_null) {
+        $where = '(' . $where . " OR $this->table_alias.$this->real_field IS NULL)";
+      }
+    }
+    else {
+      $where .= '= ***CURRENT_USER***';
+    }
+    $this->query->add_where($this->options['group'], $where);    
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_name.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_name.inc
new file mode 100644
index 0000000..e978175
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_name.inc
@@ -0,0 +1,143 @@
+<?php
+
+/**
+ * Filter handler for usernames
+ */
+class views_handler_filter_user_name extends views_handler_filter_in_operator {
+  var $no_single = TRUE;
+
+  function value_form(&$form, &$form_state) {
+    $values = array();
+    if ($this->value) {
+      $result = db_query("SELECT * FROM {users} u WHERE uid IN ("  . implode(', ', $this->value) . ")");
+      while ($account = db_fetch_object($result)) {
+        if ($account->uid) {
+          $values[] = $account->name;
+        }
+        else {
+          $values[] = 'Anonymous'; // Intentionally NOT translated.
+        }
+      }
+    }
+
+    sort($values);
+    $default_value = implode(', ', $values);
+    $form['value'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Usernames'),
+      '#description' => t('Enter a comma separated list of user names.'),
+      '#default_value' => $default_value,
+      '#autocomplete_path' => 'admin/views/ajax/autocomplete/user',
+    );
+
+    if (!empty($form_state['exposed']) && !isset($form_state['input'][$this->options['expose']['identifier']])) {
+      $form_state['input'][$this->options['expose']['identifier']] = $default_value;
+    }
+  }
+
+  function value_validate($form, &$form_state) {
+    $values = drupal_explode_tags($form_state['values']['options']['value']);
+    $uids = $this->validate_user_strings($form['value'], $values);
+
+    if ($uids) {
+      $form_state['values']['options']['value'] = $uids;
+    }
+  }
+
+  function accept_exposed_input($input) {
+    $rc = parent::accept_exposed_input($input);
+
+    if ($rc) {
+      // If we have previously validated input, override.
+      if (isset($this->validated_exposed_input)) {
+        $this->value = $this->validated_exposed_input;
+      }
+    }
+
+    return $rc;
+  }
+
+  function exposed_validate(&$form, &$form_state) {
+    if (empty($this->options['exposed'])) {
+      return;
+    }
+
+    if (empty($this->options['expose']['identifier'])) {
+      return;
+    }
+
+    $identifier = $this->options['expose']['identifier'];
+    $values = drupal_explode_tags($form_state['values'][$identifier]);
+
+    $uids = $this->validate_user_strings($form[$identifier], $values);
+
+    if ($uids) {
+      $this->validated_exposed_input = $uids;
+    }
+  }
+
+  /**
+   * Validate the user string. Since this can come from either the form
+   * or the exposed filter, this is abstracted out a bit so it can
+   * handle the multiple input sources.
+   */
+  function validate_user_strings(&$form, $values) {
+    $uids = array();
+    $placeholders = array();
+    $args = array();
+    $results = array();
+    foreach ($values as $value) {
+      if (strtolower($value) == 'anonymous') {
+        $uids[] = 0;
+      }
+      else {
+        $missing[strtolower($value)] = TRUE;
+        $args[] = $value;
+        $placeholders[] = "'%s'";
+      }
+    }
+
+    if (!$args) {
+      return $uids;
+    }
+
+    $result = db_query("SELECT * FROM {users} WHERE name IN (" . implode(', ', $placeholders) . ")", $args);
+    while ($account = db_fetch_object($result)) {
+      unset($missing[strtolower($account->name)]);
+      $uids[] = $account->uid;
+    }
+
+    if ($missing) {
+      form_error($form, format_plural(count($missing), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', array_keys($missing)))));
+    }
+
+    return $uids;
+  }
+
+  function value_submit($form, &$form_state) {
+    // prevent array filter from removing our anonymous user.
+  }
+
+  // Override to do nothing.
+  function get_value_options() { }
+
+  function admin_summary() {
+    // set up $this->value_options for the parent summary
+    $this->value_options = array();
+
+    if ($this->value) {
+      $result = db_query("SELECT * FROM {users} u WHERE uid IN ("  . implode(', ', $this->value) . ")");
+
+      while ($account = db_fetch_object($result)) {
+        if ($account->uid) {
+          $this->value_options[$account->uid] = $account->name;
+        }
+        else {
+          $this->value_options[$account->uid] = 'Anonymous'; // Intentionally NOT translated.
+        }
+      }
+    }
+
+    return parent::admin_summary();
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_roles.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_roles.inc
new file mode 100644
index 0000000..0b6720f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_handler_filter_user_roles.inc
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Filter handler for user roles
+ */
+class views_handler_filter_user_roles extends views_handler_filter_many_to_one {
+  function get_value_options() {
+    $this->value_options = user_roles(TRUE);
+    unset($this->value_options[DRUPAL_AUTHENTICATED_RID]);
+  }
+
+  /**
+   * Override empty and not empty operator labels to be clearer for user roles.
+   */
+  function operators() {
+    $operators = parent::operators();
+    $operators['empty']['title'] = t("Only has the 'authenticated user' role");
+    $operators['not empty']['title'] = t("Has roles in addition to 'authenticated user'");
+    return $operators;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_default_current_user.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_default_current_user.inc
new file mode 100644
index 0000000..6eac18b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_default_current_user.inc
@@ -0,0 +1,16 @@
+<?php
+/**
+ * @file
+ * Contains the current user argument default plugin.
+ */
+
+/**
+ * Default argument plugin to extract the global $user
+ */
+class views_plugin_argument_default_current_user extends views_plugin_argument_default {
+  function get_argument() {
+    global $user;
+    return $user->uid;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_default_user.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_default_user.inc
new file mode 100644
index 0000000..71a20bc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_default_user.inc
@@ -0,0 +1,72 @@
+<?php
+/**
+ * @file
+ * Contains the user from URL argument default plugin.
+ */
+
+/**
+ * Default argument plugin to extract a user via menu_get_object
+ */
+class views_plugin_argument_default_user extends views_plugin_argument_default {
+  var $option_name = 'default_argument_user';
+
+  function argument_form(&$form, &$form_state) {
+    $form[$this->option_name] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Also look for a node and use the node author'),
+      '#default_value' => !empty($this->argument->options[$this->option_name]),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array(
+        'radio:options[default_action]' => array('default'),
+        'radio:options[default_argument_type]' => array($this->id)
+      ),
+      '#dependency_count' => 2,
+    );
+  }
+
+  function get_argument() {
+    foreach (range(1, 3) as $i) {
+      $user = menu_get_object('user', $i);
+      if (!empty($user)) {
+        return $user->uid;
+      }
+    }
+
+    foreach (range(1, 3) as $i) {
+      $user = menu_get_object('user_uid_optional', $i);
+      if (!empty($user)) {
+        return $user->uid;
+      }
+    }
+
+    if (!empty($this->argument->options[$this->option_name])) {
+      foreach (range(1, 3) as $i) {
+        $node = menu_get_object('node', $i);
+        if (!empty($node)) {
+          return $node->uid;
+        }
+      }
+    }
+
+    if (arg(0) == 'user' && is_numeric(arg(1))) {
+      return arg(1);
+    }
+
+    if (!empty($this->argument->options[$this->option_name])) {
+      if (arg(0) == 'node' && is_numeric(arg(1))) {
+        $node = node_load(arg(1));
+        if ($node) {
+          return $node->uid;
+        }
+      }
+    }
+
+    // If the current page is a view that takes uid as an argument, return the uid.
+    $views_page = views_get_page_view();
+
+    if ($views_page && isset($views_page->view->argument['uid'])) {
+      return $views_page->view->argument['uid']->argument;
+    }
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_validate_user.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_validate_user.inc
new file mode 100644
index 0000000..78a9df3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/user/views_plugin_argument_validate_user.inc
@@ -0,0 +1,117 @@
+<?php
+
+/**
+ * Validate whether an argument is a valid user.
+ *
+ * This supports either numeric arguments (UID) or strings (username) and
+ * converts either one into the user's UID.  This validator also sets the
+ * argument's title to the username.
+ */
+class views_plugin_argument_validate_user extends views_plugin_argument_validate {
+  function validate_form(&$form, &$form_state) {
+    // We are unable to rely on options having already been set, so let's make
+    // sure defaults are here:
+    if (!isset($this->argument->options['validate_user_argument_type'])) {
+      $this->argument->options['validate_user_argument_type'] = 'uid';
+      $this->argument->options['validate_user_roles'] = array();
+    }
+
+    $form['validate_user_argument_type'] = array(
+      '#type' => 'radios',
+      '#title' => t('Type of user argument to allow'),
+      '#options' => array(
+        'uid' => t('Only allow numeric UIDs'),
+        'name' => t('Only allow string usernames'),
+        'either' => t('Allow both numeric UIDs and string usernames'),
+      ),
+      '#default_value' => $this->argument->options['validate_user_argument_type'],
+      '#process' => array('expand_radios', 'views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+      '#prefix' => '<div id="edit-options-validate-user-argument-type-wrapper">',
+      '#suffix' => '</div>',
+    );
+
+    $form['validate_user_restrict_roles'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Restrict user based on role'),
+      '#default_value' => !empty($this->argument->options['validate_user_restrict_roles']),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+    );
+
+    $form['validate_user_roles'] = array(
+      '#type' => 'checkboxes',
+      '#prefix' => '<div id="edit-options-validate-user-roles-wrapper">',
+      '#suffix' => '</div>',
+      '#title' => t('Restrict to the selected roles'),
+      '#options' => user_roles(TRUE),
+      '#default_value' => $this->argument->options['validate_user_roles'],
+      '#description' => t('If no roles are selected, users from any role will be allowed.'),
+      '#process' => array('expand_checkboxes', 'views_process_dependency'),
+      '#dependency' => array(
+        'edit-options-validate-type' => array($this->id),
+        'edit-options-validate-user-restrict-roles' => array(1),
+      ),
+      '#dependency_count' => 2,
+    );
+  }
+
+  function validate_argument($argument) {
+    $type = $this->argument->options['validate_user_argument_type'];
+    // is_numeric() can return false positives, so we ensure it's an integer.
+    // However, is_integer() will always fail, since $argument is a string.
+    if (is_numeric($argument) && $argument == (int)$argument) {
+      if ($type == 'uid' || $type == 'either') {
+        if ($argument == $GLOBALS['user']->uid) {
+          // If you assign an object to a variable in PHP, the variable
+          // automatically acts as a reference, not a copy, so we use
+          // drupal_clone() to ensure that we don't actually mess with the
+          // real global $user object.
+          $account = drupal_clone($GLOBALS['user']);
+        }
+        $where = 'uid = %d';
+      }
+    }
+    else {
+      if ($type == 'name' || $type == 'either') {
+        if ($argument == $GLOBALS['user']->name) {
+          $account = drupal_clone($GLOBALS['user']);
+        }
+        $where = "name = '%s'";
+      }
+    }
+
+    // If we don't have a WHERE clause, the argument is invalid.
+    if (empty($where)) {
+      return FALSE;
+    }
+
+    if (!isset($account)) {
+      $query = "SELECT uid, name FROM {users} WHERE $where";
+      $account = db_fetch_object(db_query($query, $argument));
+    }
+    if (empty($account)) {
+      // User not found.
+      return FALSE;
+    }
+
+    // See if we're filtering users based on roles.
+    if (!empty($this->argument->options['validate_user_restrict_roles']) && !empty($this->argument->options['validate_user_roles'])) {
+      $roles = $this->argument->options['validate_user_roles'];
+      $account->roles = array();
+      $account->roles[] = $account->uid ? DRUPAL_AUTHENTICATED_RID : DRUPAL_ANONYMOUS_RID;
+      $result = db_query('SELECT rid FROM {users_roles} WHERE uid = %d', $account->uid);
+      while ($role = db_fetch_object($result)) {
+        $account->roles[] = $role->rid;
+      }
+      if (!(bool)array_intersect($account->roles, $roles)) {
+        return FALSE;
+      }
+    }
+
+    $this->argument->argument = $account->uid;
+    $this->argument->validated_title = check_plain($account->name);
+    return TRUE;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/modules/views.views.inc b/drupal/sites/default/boinc/modules/contrib/views/modules/views.views.inc
new file mode 100644
index 0000000..799a7f9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/modules/views.views.inc
@@ -0,0 +1,69 @@
+<?php
+/**
+ * @file
+ * Provide views data and handlers that aren't tied to any other module.
+ */
+
+/**
+ * @defgroup views_views_module miscellaneous handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data()
+ */
+function views_views_data() {
+  $data['views']['table']['group'] = t('Global');
+  $data['views']['table']['join'] = array(
+    '#global' => array(),
+  );
+
+  $data['views']['random'] = array(
+    'title' => t('Random'),
+    'help' => t('Randomize the display order.'),
+    'sort' => array(
+      'handler' => 'views_handler_sort_random',
+    ),
+  );
+
+  $data['views']['null'] = array(
+    'title' => t('Null'),
+    'help' => t('Allow an argument to be ignored. The query will not be altered by this argument.'),
+    'argument' => array(
+      'handler' => 'views_handler_argument_null',
+    ),
+  );
+
+  $data['views']['nothing'] = array(
+    'title' => t('Custom text'),
+    'help' => t('Provide custom text or link.'),
+    'field' => array(
+      'handler' => 'views_handler_field_custom',
+    ),
+  );
+
+  $data['views']['counter'] = array(
+    'title' => t('View result counter'),
+    'help' => t('Displays the actual position of the view result'),
+    'field' => array(
+      'handler' => 'views_handler_field_counter',
+    ),
+  );
+
+  if (module_invoke('ctools', 'api_version', '1.7.1')) {
+    $data['views']['expression'] = array(
+      'title' => t('Math expression'),
+      'help' => t('Evaluates a mathematical expression and displays it.'),
+      'field' => array(
+        'handler' => 'views_handler_field_math',
+      ),
+    );
+  }
+
+  return $data;
+}
+
+/**
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access.inc
new file mode 100644
index 0000000..fe70823
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access.inc
@@ -0,0 +1,81 @@
+<?php
+
+/**
+ * The base plugin to handle access control.
+ *
+ * @ingroup views_access_plugins
+ */
+class views_plugin_access extends views_plugin {
+  /**
+   * Initialize the plugin.
+   *
+   * @param $view
+   *   The view object.
+   * @param $display
+   *   The display handler.
+   */
+  function init(&$view, &$display) {
+    $this->view = &$view;
+    $this->display = &$display;
+    $this->options = array();
+
+    if (is_object($display->handler)) {
+    // Note: The below is read only.
+      $this->options = $display->handler->get_option('access');
+    }
+  }
+
+  /**
+   * Retrieve the default options when this is a new access
+   * control plugin
+   */
+  function option_defaults(&$options) { }
+
+  /**
+   * Provide the default form for setting options.
+   */
+  function options_form(&$form, &$form_state) { }
+
+  /**
+   * Provide the default form form for validating options
+   */
+  function options_validate(&$form, &$form_state) { }
+
+  /**
+   * Provide the default form form for submitting options
+   */
+  function options_submit(&$form, &$form_state) { }
+
+  /**
+   * Return a string to display as the clickable title for the
+   * access control.
+   */
+  function summary_title() {
+    return t('Unknown');
+  }
+
+  /**
+   * Determine if the current user has access or not.
+   */
+  function access($account) {
+    // default to no access control.
+    return TRUE;
+  }
+
+  /**
+   * Determine the access callback and arguments.
+   *
+   * This information will be embedded in the menu in order to reduce
+   * performance hits during menu item access testing, which happens
+   * a lot.
+   *
+   * @return an array; the first item should be the function to call,
+   *   and the second item should be an array of arguments. The first
+   *   item may also be TRUE (bool only) which will indicate no
+   *   access control.)
+   */
+  function get_access_callback() {
+    // default to no access control.
+    return TRUE;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_none.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_none.inc
new file mode 100644
index 0000000..be563a2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_none.inc
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * Access plugin that provides no access control at all.
+ */
+class views_plugin_access_none extends views_plugin_access {
+  function summary_title() {
+    return t('Unrestricted');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_perm.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_perm.inc
new file mode 100644
index 0000000..544ce4b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_perm.inc
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * Access plugin that provides permission-based access control.
+ */
+class views_plugin_access_perm extends views_plugin_access {
+  function access($account) {
+    return views_check_perm($this->options['perm'], $account);
+  }
+
+  function get_access_callback() {
+    return array('views_check_perm', array($this->options['perm']));
+  }
+
+  function summary_title() {
+    return t($this->options['perm']);
+  }
+
+  function option_defaults(&$options) {
+    $options['perm'] = 'access content';
+  }
+
+  function options_form(&$form, &$form_state) {
+    $perms = array();
+    // Get list of permissions
+    foreach (module_list(FALSE, FALSE, TRUE) as $module) {
+      if ($permissions = module_invoke($module, 'perm')) {
+        $perms[$module] = drupal_map_assoc($permissions);
+      }
+    }
+    $form['perm'] = array(
+      '#type' => 'select',
+      '#options' => $perms,
+      '#title' => t('Permission'),
+      '#default_value' => $this->options['perm'],
+      '#description' => t('Only users with the selected permission flag will be able to access this display. Note that users with "access all views" can see any view, regardless of other permissions.'),
+    );
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_role.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_role.inc
new file mode 100644
index 0000000..edd0b07
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_access_role.inc
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * Access plugin that provides role-based access control.
+ */
+class views_plugin_access_role extends views_plugin_access {
+  function access($account) {
+    return views_check_roles(array_filter($this->options['role']), $account);
+  }
+
+  function get_access_callback() {
+    return array('views_check_roles', array(array_filter($this->options['role'])));
+  }
+
+  function summary_title() {
+    $count = count($this->options['role']);
+    if ($count < 1) {
+      return t('No role(s) selected');
+    }
+    else if ($count > 1) {
+      return t('Multiple roles');
+    }
+    else {
+      $rids = views_ui_get_roles();
+      $rid = reset($this->options['role']);
+      return $rids[$rid];
+    }
+  }
+
+  function option_defaults(&$options) {
+    $options['role'] = array();
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['role'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Role'),
+      '#default_value' => $this->options['role'],
+      '#options' => views_ui_get_roles(),
+      '#description' => t('Only the checked roles will be able to access this display. Note that users with "access all views" can see any view, regardless of role.'),
+    );
+  }
+
+  function options_validate(&$form, &$form_state) {
+    if (!array_filter($form_state['values']['access_options']['role'])) {
+      form_error($form['role'], t('You must select at least one role if type is "by role"'));
+    }
+  }
+
+  function options_submit(&$form, &$form_state) {
+    // I hate checkboxes.
+    $form_state['values']['access_options']['role'] = array_filter($form_state['values']['access_options']['role']);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_default.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_default.inc
new file mode 100644
index 0000000..1715ef2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_default.inc
@@ -0,0 +1,78 @@
+<?php
+/**
+ * @file
+ * Contains the fixed argument default plugin.
+ */
+
+/**
+ * @defgroup views_argument_default_plugins Views' argument default plugins
+ * @{
+ *
+ * Allow specialized methods of filling in arguments when they aren't
+ * provided.
+ *
+ * @see hook_views_plugins
+ */
+
+/**
+ * The fixed argument default handler; also used as the base.
+ */
+class views_plugin_argument_default extends views_plugin {
+  var $option_name = 'default_argument_fixed';
+  /**
+   * Initialize this plugin with the view and the argument
+   * it is linked to.
+   */
+  function init(&$view, &$argument, $id = NULL) {
+    $this->view = &$view;
+    $this->argument = &$argument;
+    $this->id = $id;
+  }
+
+  /**
+   * Determine if the administrator has the privileges to use this
+   * plugin
+   */
+  function access() { return TRUE; }
+
+  function argument_form(&$form, &$form_state) {
+    $form[$this->option_name] = array(
+      '#type' => 'textfield',
+      '#title' => t('Default argument'),
+      '#default_value' => $this->get_argument(),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array(
+        'radio:options[default_action]' => array('default'),
+        'radio:options[default_argument_type]' => array($this->id)
+      ),
+      '#dependency_count' => 2,
+    );
+
+    // Only do this if using one simple standard form gadget
+    $this->check_access($form);
+  }
+
+  /**
+   * If we don't have access to the form but are showing it anyway, ensure that
+   * the form is safe and cannot be changed from user input.
+   */
+  function check_access(&$form) {
+    if (!$this->access()) {
+      $form[$this->option_name]['#disabled'] = TRUE;
+      $form[$this->option_name]['#value'] = $form[$this->option_name]['#default_value'];
+      $form[$this->option_name]['#description'] .= ' <strong>' . t('Note: you do not have permission to modify this. If you change the default argument type, this setting will be lost and you will NOT be able to get it back.') . '</strong>';
+    }
+  }
+
+  /**
+   * Return the default argument.
+   */
+  function get_argument() {
+    return isset($this->argument->options[$this->option_name]) ? $this->argument->options[$this->option_name] : '';
+  }
+}
+
+/**
+ * @}
+ */
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_default_php.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_default_php.inc
new file mode 100644
index 0000000..a480899
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_default_php.inc
@@ -0,0 +1,51 @@
+<?php
+/**
+ * @file
+ * Contains the php code argument default plugin.
+ */
+
+/**
+ * Default argument plugin to provide a PHP code block.
+ */
+class views_plugin_argument_default_php extends views_plugin_argument_default {
+  var $option_name = 'default_argument_php';
+
+  function argument_form(&$form, &$form_state) {
+    $form[$this->option_name] = array(
+      '#type' => 'textarea',
+      '#title' => t('PHP argument code'),
+      '#default_value' => $this->get_argument(TRUE), // the true forces it raw.
+      '#process' => array('views_process_dependency'),
+      '#description' => t('Enter PHP code that returns a value to use for this argument. Do not use <?php ?>. You must return only a single value for just this argument.'),
+      '#dependency' => array(
+        'radio:options[default_action]' => array('default'),
+        'radio:options[default_argument_type]' => array($this->id)
+      ),
+      '#dependency_count' => 2,
+    );
+
+    $this->check_access($form);
+  }
+
+  /**
+   * Only let users with PHP block visibility permissions set/modify this
+   * default plugin.
+   */
+  function access() {
+    return user_access('use PHP for block visibility');
+  }
+
+  function get_argument($raw = FALSE) {
+    if ($raw) {
+      return parent::get_argument();
+    }
+
+    // set up variables to make it easier to reference during the argument.
+    $view = &$this->view;
+    $argument = &$this->argument;
+    ob_start();
+    $result = eval($this->argument->options[$this->option_name]);
+    ob_end_clean();
+    return $result;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate.inc
new file mode 100644
index 0000000..3971bad
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate.inc
@@ -0,0 +1,70 @@
+<?php
+/**
+ * @file
+ * Contains the base argument validator plugin.
+ */
+
+/**
+ * @defgroup views_argument_validate_plugins Views' argument validate plugins
+ * @{
+ *
+ * Allow specialized methods of validating arguments.
+ *
+ * @see hook_views_plugins
+ */
+
+/**
+ * Base argument validator plugin to provide basic functionality.
+ *
+ * @ingroup views_argument_validate_plugins
+ */
+class views_plugin_argument_validate extends views_plugin {
+  var $option_name = 'validate_argument';
+
+  /**
+   * Initialize this plugin with the view and the argument
+   * it is linked to.
+   */
+  function init(&$view, &$argument, $id = NULL) {
+    $this->view = &$view;
+    $this->argument = &$argument;
+    $this->id = $id;
+  }
+
+  /**
+   * Determine if the administrator has the privileges to use this
+   * plugin
+   */
+  function access() { return TRUE; }
+
+  function argument_form(&$form, &$form_state) {
+  }
+
+  /**
+   * If we don't have access to the form but are showing it anyway, ensure that
+   * the form is safe and cannot be changed from user input.
+   */
+  function check_access(&$form) {
+    if (!$this->access()) {
+      $form[$this->option_name]['#disabled'] = TRUE;
+      $form[$this->option_name]['#value'] = $form[$this->option_name]['#default_value'];
+      $form[$this->option_name]['#description'] .= ' <strong>' . t('Note: you do not have permission to modify this. If you change the validator, this setting will be lost and you will NOT be able to get it back.') . '</strong>';
+    }
+  }
+
+  /**
+   * Return the validate argument.
+   */
+  function get_argument() {
+    return isset($this->argument->options[$this->option_name]) ? $this->argument->options[$this->option_name] : '';
+  }
+
+  function validate_form(&$form, &$form_state) { }
+
+  function validate_argument($arg) { return TRUE; }
+}
+
+/**
+ * @}
+ */
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate_numeric.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate_numeric.inc
new file mode 100644
index 0000000..80d440f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate_numeric.inc
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @file
+ * Contains the numeric argument validator plugin.
+ */
+
+/**
+ * Validate whether an argument is numeric or not.
+ *
+ * @ingroup views_argument_validate_plugins
+ */
+class views_plugin_argument_validate_numeric extends views_plugin_argument_validate {
+  var $option_name = 'validate_argument_numeric';
+
+  /**
+   * Only let users with PHP block visibility permissions set/modify this
+   * validate plugin.
+   */
+  function access() {
+    return !empty($this->argument->definition['numeric']);
+  }
+
+  function validate_argument($argument) {
+    return is_numeric($argument);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate_php.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate_php.inc
new file mode 100644
index 0000000..3233112
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_argument_validate_php.inc
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @file
+ * Contains the php code argument validator plugin.
+ */
+
+/**
+ * Provide PHP code to validate whether or not an argument is ok.
+ *
+ * @ingroup views_argument_validate_plugins
+ */
+class views_plugin_argument_validate_php extends views_plugin_argument_validate {
+  var $option_name = 'validate_argument_php';
+
+  function validate_form(&$form, &$form_state) {
+    $form[$this->option_name] = array(
+      '#type' => 'textarea',
+      '#title' => t('PHP validate code'),
+      '#default_value' => $this->get_argument(),
+      '#description' => t('Enter PHP code that returns TRUE or FALSE. No return is the same as FALSE, so be SURE to return something if you do not want to declare the argument invalid. Do not use <?php ?>. The argument to validate will be "$argument" and the view will be "$view". You may change the argument by setting "$handler->argument".'),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-options-validate-type' => array($this->id)),
+    );
+
+    $this->check_access($form);
+  }
+
+  /**
+   * Only let users with PHP block visibility permissions set/modify this
+   * validate plugin.
+   */
+  function access() {
+    return user_access('use PHP for block visibility');
+  }
+
+  function validate_argument($argument) {
+    // set up variables to make it easier to reference during the argument.
+    $view = &$this->view;
+    $handler = &$this->argument;
+
+    ob_start();
+    $result = eval($this->argument->options[$this->option_name]);
+    ob_end_clean();
+    return $result;
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache.inc
new file mode 100644
index 0000000..34e4d91
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache.inc
@@ -0,0 +1,299 @@
+<?php
+
+/**
+ * The base plugin to handle caching.
+ *
+ * @ingroup views_cache_plugins
+ */
+class views_plugin_cache extends views_plugin {
+  /**
+   * Contains all data that should be written/read from cache.
+   */
+  var $storage = array();
+
+  /**
+   * What table to store data in.
+   */
+  var $table = 'cache_views_data';
+
+  /**
+   * Initialize the plugin.
+   *
+   * @param $view
+   *   The view object.
+   * @param $display
+   *   The display handler.
+   */
+  function init(&$view, &$display) {
+    $this->view = &$view;
+    $this->display = &$display;
+    $this->options = array();
+
+    if (is_object($display->handler)) {
+      // Note: The below is read only.
+      $this->options = $display->handler->get_option('cache');
+    }
+  }
+
+  /**
+   * Retrieve the default options when this is a new access
+   * control plugin
+   */
+  function option_defaults(&$options) { }
+
+  /**
+   * Return a string to display as the clickable title for the
+   * access control.
+   */
+  function summary_title() {
+    return t('Unknown');
+  }
+
+  /**
+   * Determine the expiration time of the cache type, or NULL if no expire.
+   *
+   * Plugins must override this to implement expiration.
+   *
+   * @param $type
+   *   The cache type, either 'query', 'result' or 'output'.
+   */
+   function cache_expire($type) { }
+   
+   /**
+    * Determine expiration time in the cache table of the cache type
+    * or CACHE_PERMANENT if item shouldn't be removed automatically from cache.
+    *
+    * Plugins must override this to implement expiration in the cache table.
+    *
+    * @param $type
+    *   The cache type, either 'query', 'result' or 'output'.
+    */
+  function cache_set_expire($type) {
+    return CACHE_PERMANENT;
+  }
+
+
+  /**
+   * Save data to the cache.
+   *
+   * A plugin should override this to provide specialized caching behavior.
+   */
+  function cache_set($type) {
+    switch ($type) {
+      case 'query':
+        // Not supported currently, but this is certainly where we'd put it.
+        break;
+      case 'results':
+        $data = array(
+          'result' => $this->view->result,
+          'total_rows' => $this->view->total_rows,
+          'pager' => $this->view->pager,
+        );
+        cache_set($this->get_results_key(), $data, $this->table, $this->cache_set_expire($type));
+        break;
+      case 'output':
+        $this->gather_headers();
+        $this->storage['output'] = $this->view->display_handler->output;
+        cache_set($this->get_output_key(), $this->storage, $this->table, $this->cache_set_expire($type));
+        break;
+    }
+  }
+
+
+  /**
+   * Retrieve data from the cache.
+   *
+   * A plugin should override this to provide specialized caching behavior.
+   */
+  function cache_get($type) {
+    $cutoff = $this->cache_expire($type);
+    switch ($type) {
+      case 'query':
+        // Not supported currently, but this is certainly where we'd put it.
+        return FALSE;
+      case 'results':
+        // Values to set: $view->result, $view->total_rows, $view->execute_time,
+        // $view->pager['current_page'].
+        if ($cache = cache_get($this->get_results_key(), $this->table)) {
+          if (!$cutoff || $cache->created > $cutoff) {
+            $this->view->result = $cache->data['result'];
+            $this->view->total_rows = $cache->data['total_rows'];
+            $this->view->pager = $cache->data['pager'];
+            $this->view->execute_time = 0;
+            return TRUE;
+          }
+        }
+        return FALSE;
+      case 'output':
+        if ($cache = cache_get($this->get_output_key(), $this->table)) {
+          if (!$cutoff || $cache->created > $cutoff) {
+            $this->storage = $cache->data;
+            $this->view->display_handler->output = $cache->data['output'];
+            $this->restore_headers();
+            return TRUE;
+          }
+        }
+        return FALSE;
+    }
+  }
+
+  /**
+   * Clear out cached data for a view.
+   *
+   * We're just going to nuke anything related to the view, regardless of display,
+   * to be sure that we catch everything. Maybe that's a bad idea.
+   */
+  function cache_flush() {
+    cache_clear_all($this->view->name . ':', $this->table, TRUE);
+  }
+
+  /**
+   * Post process any rendered data.
+   *
+   * This can be valuable to be able to cache a view and still have some level of
+   * dynamic output. In an ideal world, the actual output will include HTML
+   * comment based tokens, and then the post process can replace those tokens.
+   *
+   * Example usage. If it is known that the view is a node view and that the
+   * primary field will be a nid, you can do something like this:
+   *
+   * <!--post-FIELD-NID-->
+   *
+   * And then in the post render, create an array with the text that should
+   * go there:
+   *
+   * strtr($output, array('<!--post-FIELD-1-->', 'output for FIELD of nid 1');
+   *
+   * All of the cached result data will be available in $view->result, as well,
+   * so all ids used in the query should be discoverable.
+   */
+  function post_render(&$output) { }
+
+  /**
+   * Start caching javascript, css and other out of band info.
+   *
+   * This takes a snapshot of the current system state so that we don't
+   * duplicate it. Later on, when gather_headers() is run, this information
+   * will be removed so that we don't hold onto it.
+   */
+  function cache_start() {
+    $this->storage['head'] = drupal_set_html_head();
+    $this->storage['css'] = drupal_add_css();
+
+    foreach (array('header', 'footer') as $scope) {
+      $this->storage['js'][$scope] = drupal_add_js(NULL, NULL, $scope);
+    }
+  }
+
+  /**
+   * Gather out of band data, compare it to what we started with and store the difference.
+   */
+  function gather_headers() {
+    // Simple replacement for head
+    $this->storage['head'] = str_replace($this->storage['head'], '', drupal_set_html_head());
+
+    // Slightly less simple for CSS:
+    $css = drupal_add_css();
+    $start = $this->storage['css'];
+    $this->storage['css'] = array();
+
+    foreach ($css as $media => $medias) {
+      foreach ($medias as $type => $types) {
+        foreach ($types as $path => $preprocess) {
+          if (!isset($start[$media][$type][$path])) {
+            $this->storage['css'][] = array($path, $type, $media, $preprocess);
+          }
+        }
+      }
+    }
+
+    $js = array();
+    // A little less simple for js
+    foreach (array('header', 'footer') as $scope) {
+      $js[$scope] = drupal_add_js(NULL, NULL, $scope);
+    }
+
+    $start = $this->storage['js'];
+    $this->storage['js'] = array();
+
+    foreach ($js as $scope => $scopes) {
+      foreach ($scopes as $type => $types) {
+        foreach ($types as $id => $info) {
+          if (!isset($start[$scope][$type][$id])) {
+            switch ($type) {
+              case 'setting':
+                $this->storage['js'][] = array($info, $type, $scope);
+                break;
+
+              case 'inline':
+                $this->storage['js'][] = array($info['code'], $type, $scope, $info['defer']);
+                break;
+
+              default:
+                $this->storage['js'][] = array($id, $type, $scope, $info['defer'], $info['cache']);
+            }
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * Restore out of band data saved to cache. Copied from Panels.
+   */
+  function restore_headers() {
+    if (!empty($this->storage['head'])) {
+      drupal_set_html_head($this->storage['head']);
+    }
+    if (!empty($this->storage['css'])) {
+      foreach ($this->storage['css'] as $args) {
+        call_user_func_array('drupal_add_css', $args);
+      }
+    }
+    if (!empty($this->storage['js'])) {
+      foreach ($this->storage['js'] as $args) {
+        call_user_func_array('drupal_add_js', $args);
+      }
+    }
+  }
+
+  function get_results_key() {
+    global $user;
+
+    if (!isset($this->_results_key)) {
+      $key_data = array(
+        'build_info' => $this->view->build_info,
+        'roles' => array_keys($user->roles),
+        'super-user' => $user->uid == 1, // special caching for super user.
+        'language' => $GLOBALS['language'],
+      );
+      foreach (array('exposed_info', 'page', 'sort', 'order') as $key) {
+        if (isset($_GET[$key])) {
+          $key_data[$key] = $_GET[$key];
+        }
+      }
+
+      $this->_results_key = $this->view->name . ':' . $this->display->id . ':results:' . md5(serialize($key_data));
+    }
+
+    return $this->_results_key;
+  }
+
+  function get_output_key() {
+    global $user;
+    if (!isset($this->_output_key)) {
+      $key_data = array(
+        'result' => $this->view->result,
+        'roles' => array_keys($user->roles),
+        'super-user' => $user->uid == 1, // special caching for super user.
+        'theme' => $GLOBALS['theme'],
+        'language' => $GLOBALS['language'],
+      );
+
+      $this->_output_key = $this->view->name . ':' . $this->display->id . ':output:' . md5(serialize($key_data));
+    }
+
+    return $this->_output_key;
+  }
+
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache_none.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache_none.inc
new file mode 100644
index 0000000..9cc2757
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache_none.inc
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * Caching plugin that provides no caching at all.
+ */
+class views_plugin_cache_none extends views_plugin_cache {
+  function cache_start() { /* do nothing */ }
+
+  function summary_title() {
+    return t('None');
+  }
+
+  function cache_get($type) {
+    return FALSE;
+  }
+
+  function cache_set($type) { }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache_time.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache_time.inc
new file mode 100644
index 0000000..922ee96
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_cache_time.inc
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * Simple caching of query results for Views displays.
+ */
+class views_plugin_cache_time extends views_plugin_cache {
+  function option_defaults(&$options) {
+    $options['results_lifespan'] = 3600;
+    $options['output_lifespan'] = 3600;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $options = array(60, 300, 1800, 3600, 21600, 518400);
+    $options = drupal_map_assoc($options, 'format_interval');
+    $options = array(-1 => t('Never cache')) + $options;
+
+    $form['results_lifespan'] = array(
+      '#type' => 'select',
+      '#title' => t('Query results'),
+      '#description' => t('The length of time raw query results should be cached.'),
+      '#options' => $options,
+      '#default_value' => $this->options['results_lifespan'],
+    );
+    $form['output_lifespan'] = array(
+      '#type' => 'select',
+      '#title' => t('Rendered output'),
+      '#description' => t('The length of time rendered HTML output should be cached.'),
+      '#options' => $options,
+      '#default_value' => $this->options['output_lifespan'],
+    );
+  }
+
+  function summary_title() {
+    return format_interval($this->options['results_lifespan'], 1) . '/' . format_interval($this->options['output_lifespan'], 1);
+  }
+
+  function cache_expire($type) {
+    if ($lifespan = $this->options[$type . '_lifespan']) {
+      $cutoff = time() - $lifespan;
+      return $cutoff;
+    }
+    else {
+      return FALSE;
+    }
+  }
+
+  function cache_set_expire($type) {
+    if ($lifespan = $this->options[$type . '_lifespan']) {
+      return time() + $lifespan;
+    }
+    else {
+      return CACHE_PERMANENT;
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display.inc
new file mode 100644
index 0000000..38b585f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display.inc
@@ -0,0 +1,1995 @@
+<?php
+/**
+ * @file
+ * Contains the base display plugin.
+ */
+
+/**
+ * @defgroup views_display_plugins Views' display plugins
+ * @{
+ * Display plugins control how Views interact with the rest of Drupal.
+ *
+ * They can handle creating Views from a Drupal page hook; they can
+ * handle creating Views from a Drupal block hook. They can also
+ * handle creating Views from an external module source, such as
+ * a Panels pane, or an insert view, or a CCK field type.
+ *
+ * @see hook_views_plugins
+ */
+
+/**
+ * The default display plugin handler. Display plugins handle options and
+ * basic mechanisms for different output methods.
+ *
+ * @ingroup views_display_plugins
+ */
+class views_plugin_display extends views_plugin {
+  var $handlers = array();
+
+  function init(&$view, &$display, $options = NULL) {
+    $this->view = &$view;
+    $this->display = &$display;
+
+    // Make some modifications:
+    if (!isset($options)) {
+      $options = $display->display_options;
+    }
+
+    if ($this->is_default_display() && isset($options['defaults'])) {
+      unset($options['defaults']);
+    }
+
+    $this->unpack_options($this->options, $options);
+  }
+
+  function destroy() {
+    parent::destroy();
+
+    foreach ($this->handlers as $type => $handlers) {
+      foreach ($handlers as $id => $handler) {
+        if (is_object($handler)) {
+          $this->handlers[$type][$id]->destroy();
+        }
+      }
+    }
+
+    if (isset($this->default_display)) {
+      unset($this->default_display);
+    }
+  }
+
+  /**
+   * Determine if this display is the 'default' display which contains
+   * fallback settings
+   */
+  function is_default_display() { return FALSE; }
+
+  /**
+   * Determine if this display uses exposed filters, so the view
+   * will know whether or not to build them.
+   */
+  function uses_exposed() {
+    if (!isset($this->has_exposed)) {
+      foreach (array('field', 'filter') as $type) {
+        foreach ($this->view->$type as $key => $handler) {
+          if ($handler->is_exposed()) {
+            // one is all we need; if we find it, return true.
+            $this->has_exposed = TRUE;
+            return TRUE;
+          }
+        }
+      }
+      $this->has_exposed = FALSE;
+    }
+
+    return $this->has_exposed;
+  }
+
+  /**
+   * Determine if this display should display the exposed
+   * filters widgets, so the view will know whether or not
+   * to render them.
+   *
+   * Regardless of what this function
+   * returns, exposed filters will not be used nor
+   * displayed unless uses_exposed() returns TRUE.
+   */
+  function displays_exposed() {
+    return TRUE;
+  }
+
+  /**
+   * Does the display use AJAX?
+   */
+  function use_ajax() {
+    if (!empty($this->definition['use ajax'])) {
+      return $this->get_option('use_ajax');
+    }
+    return FALSE;
+  }
+
+  /**
+   * Does the display have a pager enabled?
+   */
+  function use_pager() {
+    if (!empty($this->definition['use pager'])) {
+      return $this->get_option('use_pager');
+    }
+    return FALSE;
+  }
+
+  /**
+   * Does the display render the pager if it has it enabled?
+   */
+  function render_pager() {
+    return $this->use_pager();
+  }
+
+  /**
+   * Does the display have a more link enabled?
+   */
+  function use_more() {
+    if (!empty($this->definition['use more'])) {
+      return $this->get_option('use_more');
+    }
+    return FALSE;
+  }
+
+  /**
+   * Should the enabled display more link be shown when no more items?
+   */
+  function use_more_always() {
+    if (!empty($this->definition['use more'])) {
+      return $this->get_option('use_more_always');
+    }
+    return FALSE;
+  }
+
+  /**
+   * Does the display have custom link text?
+   */
+  function use_more_text() {
+    if (!empty($this->definition['use more'])) {
+      return $this->get_option('use_more_text');
+    }
+    return FALSE;
+  }
+
+  /**
+   * Can this display accept attachments?
+   */
+  function accept_attachments() {
+    return !empty($this->definition['accept attachments']);
+  }
+
+  /**
+   * Allow displays to attach to other views.
+   */
+  function attach_to($display_id) { }
+
+  /**
+   * Static member function to list which sections are defaultable
+   * and what items each section contains.
+   */
+  function defaultable_sections($section = NULL) {
+    $sections = array(
+      'access' => array('access'),
+      'cache' => array('cache'),
+      'title' => array('title'),
+      'css_class' => array('css_class'),
+      'header' => array('header', 'header_format', 'header_empty'),
+      'footer' => array('footer', 'footer_format', 'footer_empty'),
+      'empty' => array('empty', 'empty_format'),
+      'use_ajax' => array('use_ajax'),
+      'items_per_page' => array('items_per_page', 'offset', 'use_pager', 'pager_element'),
+      'use_pager' => array('items_per_page', 'offset', 'use_pager', 'pager_element'),
+      'use_more' => array('use_more', 'use_more_always', 'use_more_text'),
+      'link_display' => array('link_display'),
+      'distinct' => array('distinct'),
+      'exposed_block' => array('exposed_block'),
+
+      // Force these to cascade properly.
+      'style_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
+      'style_options' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
+      'row_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
+      'row_options' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
+
+      // These guys are special
+      'relationships' => array('relationships'),
+      'fields' => array('fields'),
+      'sorts' => array('sorts'),
+      'arguments' => array('arguments'),
+      'filters' => array('filters'),
+    );
+    if ($section) {
+      if (!empty($sections[$section])) {
+        return $sections[$section];
+      }
+    }
+    else {
+      return $sections;
+    }
+  }
+
+  /**
+   * Set default options.
+   *
+   * Displays put their options in a different place than everything else; also
+   * displays spread their options out. We don't want to set defaults for
+   * items that are normally defaulted elsewhere.
+   */
+  function _set_option_defaults(&$storage, $options, $level = 0) {
+    foreach ($options as $option => $definition) {
+      // If defaulted to elsewhere and we're not the default display, skip.
+      if ($level == 0 && !$this->is_default_display() && !empty($options['defaults']['default'][$option])) {
+        continue;
+      }
+
+      if (isset($definition['contains']) && is_array($definition['contains'])) {
+        $storage[$option] = array();
+        $this->_set_option_defaults($storage[$option], $definition['contains'], $level++);
+      }
+      else {
+        $storage[$option] = isset($definition['default']) ? $definition['default'] : NULL;
+      }
+    }
+  }
+
+  function option_definition() {
+    $options = array(
+      'defaults' => array(
+        'default' => array(
+          'access' => TRUE,
+          'cache' => TRUE,
+          'title' => TRUE,
+          'css_class' => TRUE,
+          'header' => TRUE,
+          'header_format' => TRUE,
+          'header_empty' => TRUE,
+          'footer' => TRUE,
+          'footer_format' => TRUE,
+          'footer_empty' => TRUE,
+          'empty' => TRUE,
+          'empty_format' => TRUE,
+
+          'use_ajax' => TRUE,
+          'items_per_page' => TRUE,
+          'offset' => TRUE,
+          'use_pager' => TRUE,
+          'pager_element'  => TRUE,
+          'use_more' => TRUE,
+          'use_more_always' => TRUE,
+          'use_more_text' => TRUE,
+          'distinct' => TRUE,
+          'exposed_block' => TRUE,
+
+          'link_display' => TRUE,
+
+          'style_plugin' => TRUE,
+          'style_options' => TRUE,
+          'row_plugin' => TRUE,
+          'row_options' => TRUE,
+
+          'relationships' => TRUE,
+          'fields' => TRUE,
+          'sorts' => TRUE,
+          'arguments' => TRUE,
+          'filters' => TRUE,
+        ),
+      ),
+      'relationships' => array(
+        'default' => array(),
+        'export' => 'export_item',
+      ),
+      'fields' => array(
+        'default' => array(),
+        'export' => 'export_item',
+      ),
+      'sorts' => array(
+        'default' => array(),
+        'export' => 'export_item',
+      ),
+      'arguments' => array(
+        'default' => array(),
+        'export' => 'export_item',
+      ),
+      'filters' => array(
+        'default' => array(),
+        'export' => 'export_item',
+      ),
+      'access' => array(
+        'contains' => array(
+          'type' => array('default' => 'none'),
+         ),
+      ),
+      'cache' => array(
+        'contains' => array(
+          'type' => array('default' => 'none'),
+         ),
+      ),
+      'title' => array(
+        'default' => '',
+        'translatable' => TRUE,
+      ),
+      'css_class' => array(
+        'default' => '',
+        'translatable' => FALSE,
+      ),
+      'header' => array(
+        'default' => '',
+        'translatable' => TRUE,
+      ),
+      'header_format' => array(
+        'default' => FILTER_FORMAT_DEFAULT,
+      ),
+      'header_empty' => array(
+        'default' => FALSE,
+      ),
+      'footer' => array(
+        'default' => '',
+        'translatable' => TRUE,
+      ),
+      'footer_format' => array(
+        'default' => FILTER_FORMAT_DEFAULT,
+      ),
+      'footer_empty' => array(
+        'default' => FALSE,
+      ),
+      'empty' => array(
+        'default' => '',
+        'translatable' => TRUE,
+      ),
+      'empty_format' => array(
+        'default' => FILTER_FORMAT_DEFAULT,
+      ),
+      'use_ajax' => array(
+        'default' => FALSE,
+      ),
+      'items_per_page' => array(
+        'default' => 10,
+      ),
+      'offset' => array(
+        'default' => 0,
+      ),
+      'use_pager' => array(
+        'default' => FALSE,
+      ),
+      'pager_element' => array(
+        'default' => 0,
+      ),
+      'use_more' => array(
+        'default' => FALSE,
+      ),
+      'use_more_always' => array(
+        'default' => FALSE,
+      ),
+      'use_more_text' => array(
+        'default' => 'more',
+        'translatable' => TRUE,
+      ),
+      'link_display' => array(
+        'default' => '',
+      ),
+      'distinct' => array(
+        'default' => FALSE,
+      ),
+
+      'style_plugin' => array(
+        'default' => 'default',
+      ),
+      'style_options' => array(
+        'default' => array(),
+      ),
+      'row_plugin' => array(
+        'default' => 'fields',
+      ),
+      'row_options' => array(
+        'default' => array(),
+      ),
+
+      'exposed_block' => array(
+        'default' => FALSE,
+      ),
+    );
+
+    if ($this->is_default_display()) {
+      unset($options['defaults']);
+    }
+    return $options;
+  }
+
+  /**
+   * Check to see if the display has a 'path' field.
+   *
+   * This is a pure function and not just a setting on the definition
+   * because some displays (such as a panel pane) may have a path based
+   * upon configuration.
+   *
+   * By default, displays do not have a path.
+   */
+  function has_path() { return FALSE; }
+
+  /**
+   * Check to see if the display has some need to link to another display.
+   *
+   * For the most part, displays without a path will use a link display. However,
+   * sometimes displays that have a path might also need to link to another display.
+   * This is true for feeds.
+   */
+  function uses_link_display() { return !$this->has_path(); }
+
+  /**
+   * Check to see which display to use when creating links within
+   * a view using this display.
+   */
+  function get_link_display() {
+    $display_id = $this->get_option('link_display');
+    // If unknown, pick the first one.
+    if (empty($display_id) || empty($this->view->display[$display_id])) {
+      foreach ($this->view->display as $display_id => $display) {
+        if (!empty($display->handler) && $display->handler->has_path()) {
+          return $display_id;
+        }
+      }
+    }
+    else {
+      return $display_id;
+    }
+    // fall-through returns NULL
+  }
+
+  /**
+   * Return the base path to use for this display.
+   *
+   * This can be overridden for displays that do strange things
+   * with the path.
+   */
+  function get_path() {
+    if ($this->has_path()) {
+      return $this->get_option('path');
+    }
+
+    $display_id = $this->get_link_display();
+    if ($display_id && !empty($this->view->display[$display_id]) && is_object($this->view->display[$display_id]->handler)) {
+      return $this->view->display[$display_id]->handler->get_path();
+    }
+  }
+
+  /**
+   * Check to see if the display needs a breadcrumb
+   *
+   * By default, displays do not need breadcrumbs
+   */
+  function uses_breadcrumb() { return FALSE; }
+
+  /**
+   * Determine if a given option is set to use the default display or the
+   * current display
+   *
+   * @return
+   *   TRUE for the default display
+   */
+  function is_defaulted($option) {
+    return !$this->is_default_display() && !empty($this->default_display) && !empty($this->options['defaults'][$option]);
+  }
+
+  /**
+   * Intelligently get an option either from this display or from the
+   * default display, if directed to do so.
+   */
+  function get_option($option) {
+    if ($this->is_defaulted($option)) {
+      return $this->default_display->get_option($option);
+    }
+
+    if (array_key_exists($option, $this->options)) {
+      return $this->options[$option];
+    }
+  }
+
+  /**
+   * Determine if the display's style uses fields.
+   */
+  function uses_fields() {
+    $plugin = $this->get_plugin();
+    if ($plugin) {
+      return $plugin->uses_fields();
+    }
+  }
+
+  /**
+   * Get the display or row plugin, if it exists.
+   */
+  function get_plugin($type = 'style', $name = NULL) {
+    if (!$name) {
+      $name = $this->get_option($type . '_plugin');
+    }
+
+    $plugin = views_get_plugin($type, $name);
+    if ($plugin) {
+      $options = $this->get_option($type . '_options');
+      $plugin->init($this->view, $this->display, $options);
+      return $plugin;
+    }
+  }
+
+  /**
+   * Get the access plugin
+   */
+  function get_access_plugin($name = NULL) {
+    if (!$name) {
+      $access = $this->get_option('access');
+      $name = $access['type'];
+    }
+
+    $plugin = views_get_plugin('access', $name);
+    if ($plugin) {
+      $plugin->init($this->view, $this->display);
+      return $plugin;
+    }
+  }
+
+  /**
+   * Get the cache plugin
+   */
+  function get_cache_plugin($name = NULL) {
+    if (!$name) {
+      $cache = $this->get_option('cache');
+      $name = $cache['type'];
+    }
+
+    $plugin = views_get_plugin('cache', $name);
+    if ($plugin) {
+      $plugin->init($this->view, $this->display);
+      return $plugin;
+    }
+  }
+
+  /**
+   * Get the handler object for a single handler.
+   */
+  function &get_handler($type, $id) {
+    if (!isset($this->handlers[$type])) {
+      $this->get_handlers($type);
+    }
+
+    if (isset($this->handlers[$type][$id])) {
+      return $this->handlers[$type][$id];
+    }
+
+    // So we can return a reference.
+    $null = NULL;
+    return $null;
+  }
+
+  /**
+   * Get a full array of handlers for $type. This caches them.
+   */
+  function &get_handlers($type) {
+    if (!isset($this->handlers[$type])) {
+      $this->handlers[$type] = array();
+      $types = views_object_types();
+      $plural = $types[$type]['plural'];
+      foreach ($this->get_option($plural) as $id => $info) {
+        if ($info['id'] != $id) {
+          $info['id'] = $id;
+        }
+
+        $handler = views_get_handler($info['table'], $info['field'], $type);
+        if ($handler) {
+          $handler->init($this->view, $info);
+          $this->handlers[$type][$id] = &$handler;
+        }
+
+        // Prevent reference problems.
+        unset($handler);
+      }
+    }
+
+    return $this->handlers[$type];
+  }
+
+  /**
+   * Retrieve a list of fields for the current display with the
+   *  relationship associated if it exists.
+   */
+  function get_field_labels() {
+    $options = array();
+    foreach ($this->get_handlers('relationship') as $relationship => $handler) {
+      if ($label = $handler->label()) {
+        $relationships[$relationship] = $label;
+      }
+      else {
+        $relationships[$relationship] = $handler->ui_name();
+      }
+    }
+
+    foreach ($this->get_handlers('field') as $id => $handler) {
+      if ($label = $handler->label()) {
+        $options[$id] = $label;
+      }
+      else {
+        $options[$id] = $handler->ui_name();
+      }
+      if (!empty($handler->options['relationship']) && !empty($relationships[$handler->options['relationship']])) {
+        $options[$id] = '(' . $relationships[$handler->options['relationship']] . ') ' . $options[$id];
+      }
+    }
+    return $options;
+  }
+
+  /**
+   * Intelligently set an option either from this display or from the
+   * default display, if directed to do so.
+   */
+  function set_option($option, $value) {
+    if ($this->is_defaulted($option)) {
+      return $this->default_display->set_option($option, $value);
+    }
+
+    // Set this in two places: On the handler where we'll notice it
+    // but also on the display object so it gets saved. This should
+    // only be a temporary fix.
+    $this->display->display_options[$option] = $value;
+    return $this->options[$option] = $value;
+  }
+
+  /**
+   * Set an option and force it to be an override.
+   */
+  function override_option($option, $value) {
+    $this->set_override($option, FALSE);
+    $this->set_option($option, $value);
+  }
+
+  /**
+   * Because forms may be split up into sections, this provides
+   * an easy URL to exactly the right section. Don't override this.
+   */
+  function option_link($text, $section, $class = '', $title = '') {
+    if (!empty($class)) {
+      $text = '<span>' . $text . '</span>';
+    }
+
+    if (!trim($text)) {
+      $text = t('Broken field');
+    }
+
+    if (empty($title)) {
+      $title = $text;
+    }
+
+    return l($text, 'admin/build/views/nojs/display/' . $this->view->name . '/' . $this->display->id . '/' . $section, array('attributes' => array('class' => 'views-ajax-link ' . $class, 'title' => $title), 'html' => TRUE));
+  }
+
+  /**
+   * Provide the default summary for options in the views UI.
+   *
+   * This output is returned as an array.
+   */
+  function options_summary(&$categories, &$options) {
+    $categories['basic'] = array(
+      'title' => t('Basic settings'),
+    );
+
+    $options['display_title'] = array(
+      'category' => 'basic',
+      'title' => t('Name'),
+      'value' => check_plain($this->display->display_title),
+      'desc' => t('Change the name of this display.'),
+    );
+
+    $title = strip_tags($this->get_option('title'));
+    if (!$title) {
+      $title = t('None');
+    }
+
+    $options['title'] = array(
+      'category' => 'basic',
+      'title' => t('Title'),
+      'value' => $title,
+      'desc' => t('Change the title that this display will use.'),
+    );
+
+    $style_plugin = views_fetch_plugin_data('style', $this->get_option('style_plugin'));
+    $style_title = empty($style_plugin['title']) ? t('Missing style plugin') : $style_plugin['title'];
+
+    $style = '';
+
+    $options['style_plugin'] = array(
+      'category' => 'basic',
+      'title' => t('Style'),
+      'value' => $style_title,
+      'desc' => t('Change the style plugin.'),
+    );
+
+    // This adds a 'Settings' link to the style_options setting if the style has options.
+    if (!empty($style_plugin['uses options'])) {
+      $options['style_plugin']['links']['style_options'] = t('Change settings for this style');
+    }
+
+    if (!empty($style_plugin['uses row plugin'])) {
+      $row_plugin = views_fetch_plugin_data('row', $this->get_option('row_plugin'));
+      $row_title = empty($row_plugin['title']) ? t('Missing style plugin') : $row_plugin['title'];
+
+      $options['row_plugin'] = array(
+        'category' => 'basic',
+        'title' => t('Row style'),
+        'value' => $row_title,
+        'desc' => t('Change the row plugin.'),
+      );
+      // This adds a 'Settings' link to the row_options setting if the row style has options.
+      if (!empty($row_plugin['uses options'])) {
+        $options['row_plugin']['links']['row_options'] = t('Change settings for this style');
+      }
+    }
+    if (!empty($this->definition['use ajax'])) {
+      $options['use_ajax'] = array(
+        'category' => 'basic',
+        'title' => t('Use AJAX'),
+        'value' => $this->get_option('use_ajax') ? t('Yes') : t('No'),
+        'desc' => t('Change whether or not this display will use AJAX.'),
+      );
+    }
+
+    if (!empty($this->definition['use pager'])) {
+      $options['use_pager'] = array(
+        'category' => 'basic',
+        'title' => t('Use pager'),
+        'value' => $this->get_option('use_pager') ? ($this->get_option('use_pager') === 'mini' ? t('Mini') : t('Yes')) : t('No'),
+        'desc' => t("Change this display's pager setting."),
+      );
+    }
+
+    $items = intval($this->get_option('items_per_page'));
+    $options['items_per_page'] = array(
+      'category' => 'basic',
+      'title' => $this->use_pager() ? t('Items per page') : t('Items to display'),
+      'value' => $items ? $items : t('Unlimited'),
+      'desc' => t('Change how many items to display.'),
+    );
+
+    if (!empty($this->definition['use more'])) {
+      $options['use_more'] = array(
+        'category' => 'basic',
+        'title' => t('More link'),
+        'value' => $this->get_option('use_more') ? t('Yes') : t('No'),
+        'desc' => t('Specify whether this display will provide a "more" link.'),
+      );
+    }
+
+    $options['distinct'] = array(
+      'category' => 'basic',
+      'title' => t('Distinct'),
+      'value' => $this->get_option('distinct') ? t('Yes') : t('No'),
+      'desc' => t('Display only distinct items, without duplicates.'),
+    );
+
+    $access_plugin = $this->get_access_plugin();
+    if (!$access_plugin) {
+      // default to the no access control plugin.
+      $access_plugin = views_get_plugin('access', 'none');
+    }
+
+    $access_str = $access_plugin->summary_title();
+
+    $options['access'] = array(
+      'category' => 'basic',
+      'title' => t('Access'),
+      'value' => $access_str,
+      'desc' => t('Specify access control type for this display.'),
+    );
+
+    if (!empty($access_plugin->definition['uses options'])) {
+      $options['access']['links']['access_options'] = t('Change settings for this access type.');
+    }
+
+    $cache_plugin = $this->get_cache_plugin();
+    if (!$cache_plugin) {
+      // default to the no cache control plugin.
+      $cache_plugin = views_get_plugin('cache', 'none');
+    }
+
+    $cache_str = $cache_plugin->summary_title();
+
+    $options['cache'] = array(
+      'category' => 'basic',
+      'title' => t('Caching'),
+      'value' => $cache_str,
+      'desc' => t('Specify caching type for this display.'),
+    );
+
+    if (!empty($cache_plugin->definition['uses options'])) {
+      $options['cache']['links']['cache_options'] = t('Change settings for this caching type.');
+    }
+
+    if ($this->uses_link_display()) {
+      // Only show the 'link display' if there is more than one option.
+      $count = 0;
+      foreach ($this->view->display as $display_id => $display) {
+        if (is_object($display->handler) && $display->handler->has_path()) {
+          $count++;
+        }
+        if ($count > 1) {
+          break;
+        }
+      }
+
+      if ($count > 1) {
+        $display_id = $this->get_link_display();
+        $link_display = empty($this->view->display[$display_id]) ? t('None') : check_plain($this->view->display[$display_id]->display_title);
+        $options['link_display'] = array(
+          'category' => 'basic',
+          'title' => t('Link display'),
+          'value' => $link_display,
+          'desc' => t('Specify which display this display will link to.'),
+        );
+      }
+    }
+
+    $options['exposed_block'] = array(
+      'category' => 'basic',
+      'title' => t('Exposed form in block'),
+      'value' => $this->get_option('exposed_block') ? t('Yes') : t('No'),
+      'desc' => t('Allow the exposed form to appear in a block instead of the view.'),
+    );
+
+    foreach (array('header' => t('Header'), 'footer' => t('Footer'), 'empty' => t('Empty text')) as $type => $name) {
+      if (!$this->get_option($type)) {
+        $field = t('None');
+      }
+      else {
+        // A lot of code to get the name of the filter format.
+        $fmt_string = $this->get_option($type . '_format');
+        if (empty($fmt_string)) {
+          $fmt_string = FILTER_FORMAT_DEFAULT;
+        }
+        $format_val = filter_resolve_format($fmt_string);
+        $format = filter_formats($format_val);
+        if ($format) {
+          $field = check_plain($format->name);
+        }
+        else {
+          $field = t('Unknown/missing format');
+        }
+      }
+
+      $options[$type] = array(
+        'category' => 'basic',
+        'title' => $name,
+        'value' => $field,
+        'desc' => t("Change this display's !name.", array('!name' => strtolower($name))),
+      );
+    }
+
+    $css_class = check_plain(trim($this->get_option('css_class')));
+    if (!$css_class) {
+      $css_class = t('None');
+    }
+
+    $options['css_class'] = array(
+      'category' => 'basic',
+      'title' => t('CSS class'),
+      'value' => $css_class,
+      'desc' => t('Change the CSS class name(s) that will be added to this display.'),
+    );
+
+    $options['analyze-theme'] = array(
+      'category' => 'basic',
+      'title' => t('Theme'),
+      'value' => t('Information'),
+      'desc' => t('Get information on how to theme this display'),
+    );
+  }
+
+  /**
+   * Provide the default form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    if ($this->defaultable_sections($form_state['section'])) {
+      $this->add_override_button($form, $form_state, $form_state['section']);
+    }
+    $form['#title'] = check_plain($this->display->display_title) . ': ';
+
+    // Set the 'section' to hilite on the form.
+    // If it's the item we're looking at is pulling from the default display,
+    // reflect that. Don't use is_defaulted since we want it to show up even
+    // on the default display.
+    if (!empty($this->options['defaults'][$form_state['section']])) {
+      $form['#section'] = 'default-' . $form_state['section'];
+    }
+    else {
+      $form['#section'] = $this->display->id . '-' . $form_state['section'];
+    }
+
+    switch ($form_state['section']) {
+      case 'display_title':
+        $form['#title'] .= t('The name of this display');
+        $form['display_title'] = array(
+          '#type' => 'textfield',
+          '#description' => t('This title will appear only in the administrative interface for the View.'),
+          '#default_value' => $this->display->display_title,
+        );
+        break;
+      case 'title':
+        $form['#title'] .= t('The title of this view');
+        $form['title'] = array(
+          '#type' => 'textfield',
+          '#description' => t('This title will be displayed with the view, wherever titles are normally displayed; i.e, as the page title, block title, etc.'),
+          '#default_value' => $this->get_option('title'),
+        );
+        break;
+      case 'css_class':
+        $form['#title'] .= t('CSS class');
+        $form['css_class'] = array(
+          '#type' => 'textfield',
+          '#description' => t('The CSS class names will be added to the view. This enables you to use specific CSS code for each view. You may define multiples classes separated by spaces.'),
+          '#default_value' => $this->get_option('css_class'),
+        );
+        break;
+      case 'use_ajax':
+        $form['#title'] .= t('Use AJAX when available to load this view');
+        $form['description'] = array(
+          '#prefix' => '<div class="description form-item">',
+          '#suffix' => '</div>',
+          '#value' => t('If set, this view will use an AJAX mechanism for paging, table sorting and exposed filters. This means the entire page will not refresh. It is not recommended that you use this if this view is the main content of the page as it will prevent deep linking to specific pages, but it is very useful for side content.'),
+        );
+        $form['use_ajax'] = array(
+          '#type' => 'radios',
+          '#options' => array(1 => t('Yes'), 0 => t('No')),
+          '#default_value' => $this->get_option('use_ajax') ? 1 : 0,
+        );
+        break;
+      case 'use_pager':
+        $form['#title'] .= t('Use a pager for this view');
+        $form['use_pager'] = array(
+          '#type' => 'radios',
+          '#options' => array(TRUE => t('Full pager'), 'mini' => t('Mini pager'), 0 => t('No')),
+          '#default_value' => $this->get_option('use_pager'),
+        );
+        $form['pager_element'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Pager element'),
+          '#description' => t("Unless you're experiencing problems with pagers related to this view, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible."),
+          '#default_value' => intval($this->get_option('pager_element')),
+        );
+        break;
+      case 'items_per_page':
+        $form['#title'] .= $this->use_pager() ? t('Items per page') : t('Items to display');
+
+        $form['items_per_page'] = array(
+          '#type' => 'textfield',
+          '#description' => t('The number of items to display per page. Enter 0 for no limit.'),
+          '#default_value' => intval($this->get_option('items_per_page')),
+        );
+        $form['offset'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Offset'),
+          '#description' => t('The number of items to skip. For example, if this field is 3, the first 3 items will be skipped and not displayed. Offset can not be used if items to display is 0; instead use a very large number there.'),
+          '#default_value' => intval($this->get_option('offset')),
+        );
+        break;
+      case 'use_more':
+        $form['#title'] .= t('Add a more link to the bottom of the display.');
+        $form['use_more'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Create more link'),
+          '#description' => t("This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above."),
+          '#default_value' => $this->get_option('use_more'),
+        );
+        $form['use_more_always'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Always display more link'),
+          '#description' => t("This will display the more link even if there are no more items to display."),
+          '#default_value' => $this->get_option('use_more_always'),
+        );
+        $form['use_more_text'] = array(
+          '#type' => 'textfield',
+          '#title' => t('More link text'),
+          '#description' => t("The text to display for the more link."),
+          '#default_value' => $this->get_option('use_more_text'),
+        );
+        break;
+      case 'distinct':
+        $form['#title'] .= t('Display only distinct items, without duplicates.');
+        $form['distinct'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Distinct'),
+          '#description' => t('This will make the view display only distinct items. If there are multiple identical items, each will be displayed only once. You can use this to try and remove duplicates from a view, though it does not always work. Note that this can slow queries down, so use it with caution.'),
+          '#default_value' => $this->get_option('distinct'),
+        );
+        break;
+      case 'access':
+        $form['#title'] .= t('Access restrictions');
+        $form['access'] = array(
+          '#prefix' => '<div class="clear-block">',
+          '#suffix' => '</div>',
+          '#tree' => TRUE,
+        );
+
+        $access = $this->get_option('access');
+        $form['access']['type'] =  array(
+          '#type' => 'radios',
+          '#options' => views_fetch_plugin_names('access'),
+          '#default_value' => $access['type'],
+        );
+
+        $access_plugin = views_fetch_plugin_data('access', $access['type']);
+        if (!empty($access_plugin['uses options'])) {
+          $form['markup'] = array(
+            '#prefix' => '<div class="form-item description">',
+            '#suffix' => '</div>',
+            '#value' => t('You may also adjust the !settings for the currently selected access restriction by clicking on the icon.', array('!settings' => $this->option_link(t('settings'), 'access_options'))),
+          );
+        }
+
+        break;
+      case 'access_options':
+        $access = $this->get_option('access');
+        $plugin = $this->get_access_plugin();
+        $form['#title'] .= t('Access options');
+        if ($plugin) {
+          $form['#help_topic'] = $plugin->definition['help topic'];
+          $form['#help_module'] = $plugin->definition['module'];
+
+          $form['access_options'] = array(
+            '#tree' => TRUE,
+          );
+          $form['access_options']['type'] = array(
+            '#type' => 'value',
+            '#value' => $access['type'],
+          );
+          $plugin->options_form($form['access_options'], $form_state);
+        }
+        break;
+      case 'cache':
+        $form['#title'] .= t('Caching');
+        $form['cache'] = array(
+          '#prefix' => '<div class="clear-block">',
+          '#suffix' => '</div>',
+          '#tree' => TRUE,
+        );
+
+        $cache = $this->get_option('cache');
+        $form['cache']['type'] =  array(
+          '#type' => 'radios',
+          '#options' => views_fetch_plugin_names('cache'),
+          '#default_value' => $cache['type'],
+        );
+
+        $cache_plugin = views_fetch_plugin_data('cache', $cache['type']);
+        if (!empty($cache_plugin['uses options'])) {
+          $form['markup'] = array(
+            '#prefix' => '<div class="form-item description">',
+            '#suffix' => '</div>',
+            '#value' => t('You may also adjust the !settings for the currently selected cache mechanism by clicking on the icon.', array('!settings' => $this->option_link(t('settings'), 'cache_options'))),
+          );
+        }
+        break;
+      case 'cache_options':
+        $cache = $this->get_option('cache');
+        $plugin = $this->get_cache_plugin();
+        $form['#title'] .= t('Caching options');
+        if ($plugin) {
+          $form['#help_topic'] = $plugin->definition['help topic'];
+          $form['#help_module'] = $plugin->definition['module'];
+
+          $form['cache_options'] = array(
+            '#tree' => TRUE,
+          );
+          $form['cache_options']['type'] = array(
+            '#type' => 'value',
+            '#value' => $cache['type'],
+          );
+          $plugin->options_form($form['cache_options'], $form_state);
+        }
+        break;
+      case 'header':
+        $form['#title'] .= t('Header');
+        $form['header_empty'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Display even if view has no result'),
+          '#default_value' => $this->get_option('header_empty'),
+        );
+        $form['header'] = array(
+          '#type' => 'textarea',
+          '#default_value' => $this->get_option('header'),
+          '#rows' => 6,
+          '#description' => t('Text to display at the top of the view. May contain an explanation or links or whatever you like. Optional.'),
+        );
+
+        $form['header_format'] = filter_form($this->get_option('header_format'), NULL, array('header_format'));
+        break;
+      case 'footer':
+        $form['#title'] .= t('Footer');
+        $form['footer_empty'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Display even if view has no result'),
+          '#default_value' => $this->get_option('footer_empty'),
+        );
+        $form['footer'] = array(
+          '#type' => 'textarea',
+          '#default_value' => $this->get_option('footer'),
+          '#rows' => 6,
+          '#description' => t('Text to display beneath the view. May contain an explanation or links or whatever you like. Optional.'),
+        );
+
+        $form['footer_format'] = filter_form($this->get_option('footer_format'), NULL, array('footer_format'));
+        break;
+      case 'empty':
+        $form['#title'] .= t('Empty text');
+        $form['empty'] = array(
+          '#type' => 'textarea',
+          '#default_value' => $this->get_option('empty'),
+          '#rows' => 6,
+          '#description' => t('Text to display if the view has no results. Optional.'),
+        );
+
+        $form['empty_format'] = filter_form($this->get_option('empty_format'), NULL, array('empty_format'));
+        break;
+      case 'style_plugin':
+        $form['#title'] .= t('How should this view be styled');
+        $form['#help_topic'] = 'style';
+        $form['style_plugin'] =  array(
+          '#type' => 'radios',
+          '#options' => views_fetch_plugin_names('style', $this->get_style_type(), array($this->view->base_table)),
+          '#default_value' => $this->get_option('style_plugin'),
+          '#description' => t('If the style you choose has settings, be sure to click the settings button that will appear next to it in the View summary.'),
+        );
+
+        $style_plugin = views_fetch_plugin_data('style', $this->get_option('style_plugin'));
+        if (!empty($style_plugin['uses options'])) {
+          $form['markup'] = array(
+            '#prefix' => '<div class="form-item description">',
+            '#suffix' => '</div>',
+            '#value' => t('You may also adjust the !settings for the currently selected style by clicking on the icon.', array('!settings' => $this->option_link(t('settings'), 'style_options'))),
+          );
+        }
+
+        break;
+      case 'style_options':
+        $form['#title'] .= t('Style options');
+        $style = TRUE;
+        $type = 'style_plugin';
+        $name = $this->get_option('style_plugin');
+
+      case 'row_options':
+        if (!isset($name)) {
+          $name = $this->get_option('row_plugin');
+        }
+        // if row, $style will be empty.
+        if (empty($style)) {
+          $form['#title'] .= t('Row style options');
+          $type = 'row_plugin';
+        }
+        $plugin = $this->get_plugin(empty($style) ? 'row' : 'style');
+        if ($plugin) {
+          if (isset($plugin->definition['help topic'])) {
+            $form['#help_topic'] = $plugin->definition['help topic'];
+            $form['#help_module'] = $plugin->definition['module'];
+          }
+          $form[$form_state['section']] = array(
+            '#tree' => TRUE,
+          );
+          $plugin->options_form($form[$form_state['section']], $form_state);
+        }
+        break;
+      case 'row_plugin':
+        $form['#title'] .= t('How should each row in this view be styled');
+        $form['#help_topic'] = 'style-row';
+        $form['row_plugin'] =  array(
+          '#type' => 'radios',
+          '#options' => views_fetch_plugin_names('row', $this->get_style_type(), array($this->view->base_table)),
+          '#default_value' => $this->get_option('row_plugin'),
+        );
+
+        $row_plugin = views_fetch_plugin_data('row', $this->get_option('row_plugin'));
+        if (!empty($row_plugin['uses options'])) {
+          $form['markup'] = array(
+            '#prefix' => '<div class="form-item description">',
+            '#suffix' => '</div>',
+            '#value' => t('You may also adjust the !settings for the currently selected row style by clicking on the icon.', array('!settings' => $this->option_link(t('settings'), 'row_options'))),
+          );
+        }
+
+        break;
+      case 'link_display':
+        $form['#title'] .= t('Which display to use for path');
+        foreach ($this->view->display as $display_id => $display) {
+          if ($display->handler->has_path()) {
+            $options[$display_id] = $display->display_title;
+          }
+        }
+        $form['link_display'] = array(
+          '#type' => 'radios',
+          '#options' => $options,
+          '#description' => t("Which display to use to get this display's path for things like summary links, rss feed links, more links, etc."),
+          '#default_value' => $this->get_link_display(),
+        );
+        break;
+      case 'analyze-theme':
+        $form['#title'] .= t('Theming information');
+        $form['#help_topic'] = 'analyze-theme';
+
+        if (isset($_POST['theme'])) {
+          $this->view->theme = $_POST['theme'];
+        }
+        else if (empty($this->view->theme)) {
+          $this->view->theme = variable_get('theme_default', 'garland');
+        }
+
+        global $custom_theme;
+        $custom_theme = $this->view->theme;
+        init_theme();
+
+        $funcs = array();
+        // Get theme functions for the display. Note that some displays may
+        // not have themes. The 'feed' display, for example, completely
+        // delegates to the style.
+        if (!empty($this->definition['theme'])) {
+          $funcs[] = $this->option_link(t('Display output'), 'analyze-theme-display') . ': '  . $this->format_themes($this->theme_functions());
+          $themes = $this->additional_theme_functions();
+          if ($themes) {
+            foreach ($themes as $theme) {
+              $funcs[] = $this->option_link(t('Alternative display output'), 'analyze-theme-display') . ': '  . $this->format_themes($theme);
+            }
+          }
+        }
+
+        $plugin = $this->get_plugin();
+        if ($plugin) {
+          $funcs[] = $this->option_link(t('Style output'), 'analyze-theme-style') . ': ' . $this->format_themes($plugin->theme_functions(), $plugin->additional_theme_functions());
+          $themes = $plugin->additional_theme_functions();
+          if ($themes) {
+            foreach ($themes as $theme) {
+              $funcs[] = $this->option_link(t('Alternative style'), 'analyze-theme-style') . ': '  . $this->format_themes($theme);
+            }
+          }
+
+          if ($plugin->uses_row_plugin()) {
+            $row_plugin = $this->get_plugin('row');
+            if ($row_plugin) {
+              $funcs[] = $this->option_link(t('Row style output'), 'analyze-theme-row') . ': ' . $this->format_themes($row_plugin->theme_functions());
+              $themes = $row_plugin->additional_theme_functions();
+              if ($themes) {
+                foreach ($themes as $theme) {
+                  $funcs[] = $this->option_link(t('Alternative row style'), 'analyze-theme-row') . ': '  . $this->format_themes($theme);
+                }
+              }
+            }
+          }
+
+          if ($plugin->uses_fields()) {
+            foreach ($this->get_handlers('field') as $id => $handler) {
+              $funcs[] = $this->option_link(t('Field @field (ID: @id)', array('@field' => $handler->ui_name(), '@id' => $id)), 'analyze-theme-field') . ': ' . $this->format_themes($handler->theme_functions());
+            }
+          }
+        }
+
+        $form['important'] = array(
+          '#prefix' => '<div class="form-item description">',
+          '#suffix' => '</div>',
+          '#value' => '<p>' . t('This section lists all possible templates for the display plugin and for the style plugins, ordered roughly from the least specific to the most specific. The active template for each plugin -- which is the most specific template found on the system -- is highlighted in bold.') . '</p>',
+        );
+
+        foreach (list_themes() as $key => $theme) {
+          $options[$key] = $theme->info['name'];
+        }
+
+        $form['box'] = array(
+          '#prefix' => '<div class="container-inline">',
+          '#suffix' => '</div>',
+        );
+        $form['box']['theme'] = array(
+          '#type' => 'select',
+          '#options' => $options,
+          '#default_value' => $this->view->theme,
+        );
+
+        $form['box']['change'] = array(
+          '#type' => 'submit',
+          '#value' => t('Change theme'),
+          '#submit' => array('views_ui_edit_display_form_change_theme'),
+        );
+
+        $form['analysis'] = array(
+          '#prefix' => '<div class="form-item">',
+          '#suffix' => '</div>',
+          '#value' => theme('item_list', $funcs),
+        );
+
+        $form['rescan_button'] = array(
+          '#prefix' => '<div class="form-item">',
+          '#suffix' => '</div>',
+        );
+        $form['rescan_button']['button'] = array(
+          '#type' => 'submit',
+          '#value' => t('Rescan template files'),
+          '#submit' => array('views_ui_config_item_form_rescan'),
+        );
+        $form['rescan_button']['markup'] = array(
+          '#prefix' => '<div class="description">',
+          '#suffix' => '</div>',
+          '#value' => t("<strong>Important!</strong> When adding, removing, or renaming template files, it is necessary to make Drupal aware of the changes by making it rescan the files on your system. By clicking this button you clear Drupal's theme registry and thereby trigger this rescanning process. The highlighted templates above will then reflect the new state of your system."),
+        );
+
+        $form_state['ok_button'] = TRUE;
+        break;
+      case 'analyze-theme-display':
+        $form['#title'] .= t('Theming information (display)');
+        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';
+
+        if (empty($this->definition['theme'])) {
+          $output .= t('This display has no theming information');
+        }
+        else {
+          $output .= '<p>' . t('This is the default theme template used for this display.') . '</p>';
+          $output .= '<pre>' . check_plain(file_get_contents('./' . $this->definition['theme path'] . '/' . strtr($this->definition['theme'], '_', '-') . '.tpl.php')) . '</pre>';
+        }
+
+        if (!empty($this->definition['additional themes'])) {
+          foreach ($this->definition['additional themes'] as $theme => $type) {
+            $output .= '<p>' . t('This is an alternative template for this display.') . '</p>';
+            $output .= '<pre>' . check_plain(file_get_contents('./' . $this->definition['theme path'] . '/' . strtr($theme, '_', '-') . '.tpl.php')) . '</pre>';
+          }
+        }
+
+        $form['analysis'] = array(
+          '#prefix' => '<div class="form-item">',
+          '#suffix' => '</div>',
+          '#value' => $output,
+        );
+
+        $form_state['ok_button'] = TRUE;
+        break;
+      case 'analyze-theme-style':
+        $form['#title'] .= t('Theming information (style)');
+        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';
+
+        $plugin = $this->get_plugin();
+
+        if (empty($plugin->definition['theme'])) {
+          $output .= t('This display has no style theming information');
+        }
+        else {
+          $output .= '<p>' . t('This is the default theme template used for this style.') . '</p>';
+          $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($plugin->definition['theme'], '_', '-') . '.tpl.php')) . '</pre>';
+        }
+
+        if (!empty($plugin->definition['additional themes'])) {
+          foreach ($plugin->definition['additional themes'] as $theme => $type) {
+            $output .= '<p>' . t('This is an alternative template for this style.') . '</p>';
+            $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($theme, '_', '-') . '.tpl.php')) . '</pre>';
+          }
+        }
+
+        $form['analysis'] = array(
+          '#prefix' => '<div class="form-item">',
+          '#suffix' => '</div>',
+          '#value' => $output,
+        );
+
+        $form_state['ok_button'] = TRUE;
+        break;
+      case 'analyze-theme-row':
+        $form['#title'] .= t('Theming information (row style)');
+        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';
+
+        $plugin = $this->get_plugin('row');
+
+        if (empty($plugin->definition['theme'])) {
+          $output .= t('This display has no row style theming information');
+        }
+        else {
+          $output .= '<p>' . t('This is the default theme template used for this row style.') . '</p>';
+          $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($plugin->definition['theme'], '_', '-') . '.tpl.php')) . '</pre>';
+        }
+
+        if (!empty($plugin->definition['additional themes'])) {
+          foreach ($plugin->definition['additional themes'] as $theme => $type) {
+            $output .= '<p>' . t('This is an alternative template for this row style.') . '</p>';
+            $output .= '<pre>' . check_plain(file_get_contents('./' . $plugin->definition['theme path'] . '/' . strtr($theme, '_', '-') . '.tpl.php')) . '</pre>';
+          }
+        }
+
+        $form['analysis'] = array(
+          '#prefix' => '<div class="form-item">',
+          '#suffix' => '</div>',
+          '#value' => $output,
+        );
+
+        $form_state['ok_button'] = TRUE;
+        break;
+      case 'analyze-theme-field':
+        $form['#title'] .= t('Theming information (row style)');
+        $output = '<p>' . t('Back to !info.', array('!info' => $this->option_link(t('theming information'), 'analyze-theme'))) . '</p>';
+
+        $output .= '<p>' . t('This is the default theme template used for this row style.') . '</p>';
+
+        // Field templates aren't registered the normal way...and they're always
+        // this one, anyhow.
+        $output .= '<pre>' . check_plain(file_get_contents(drupal_get_path('module', 'views') . '/theme/views-view-field.tpl.php')) . '</pre>';
+
+        $form['analysis'] = array(
+          '#prefix' => '<div class="form-item">',
+          '#suffix' => '</div>',
+          '#value' => $output,
+        );
+        $form_state['ok_button'] = TRUE;
+        break;
+
+      case 'exposed_block':
+        $form['#title'] .= t('Put the exposed form in a block');
+        $form['description'] = array(
+          '#prefix' => '<div class="description form-item">',
+          '#suffix' => '</div>',
+          '#value' => t('If set, any exposed widgets will not appear with this view. Instead, a block will be made available to the Drupal block administration system, and the exposed form will appear there. Note that this block must be enabled manually, Views will not enable it for you.'),
+        );
+        $form['exposed_block'] = array(
+          '#type' => 'radios',
+          '#options' => array(1 => t('Yes'), 0 => t('No')),
+          '#default_value' => $this->get_option('exposed_block') ? 1 : 0,
+        );
+        break;
+    }
+  }
+
+  /**
+   * Format a list of theme templates for output by the theme info helper.
+   */
+  function format_themes($themes) {
+    $registry = theme_get_registry();
+
+    // Run through the theme engine variables, if necessary
+    global $theme_engine;
+    $extension = '.tpl.php';
+    if (isset($theme_engine)) {
+      $extension_function = $theme_engine . '_extension';
+      if (function_exists($extension_function)) {
+        $extension = $extension_function();
+      }
+    }
+
+    $output = '';
+    $picked = FALSE;
+    foreach ($themes as $theme) {
+      $template = strtr($theme, '_', '-') . $extension;
+      if (!$picked && !empty($registry[$theme])) {
+        $template_path = isset($registry[$theme]['path']) ? $registry[$theme]['path'] . '/' : './';
+        if (file_exists($template_path . $template)) {
+          $hint = t('File found in folder @template-path', array('@template-path' => $template_path));
+          $template = '<strong title="'. $hint .'">' . $template . '</strong>';
+        }
+        else {
+          $template = '<strong class="error">' . $template . ' ' . t('(File not found, in folder @template-path)', array('@template-path' => $template_path)) . '</strong>';
+        }
+        $picked = TRUE;
+      }
+      $fixed[] = $template;
+    }
+
+    return implode(', ', array_reverse($fixed));
+  }
+
+  /**
+   * Validate the options form.
+   */
+  function options_validate(&$form, &$form_state) {
+    switch ($form_state['section']) {
+      case 'display_title':
+        if (empty($form_state['values']['display_title'])) {
+          form_error($form['display_title'], t('Display title may not be empty.'));
+        }
+        break;
+      case 'css_class':
+        $css_class = $form_state['values']['css_class'];
+        if (preg_match('/[^a-zA-Z0-9- ]/', $css_class)) {
+          form_error($form['css_class'], t('CSS classes must be alphanumeric or dashes only.'));
+        }
+      break;
+      case 'style_options':
+        $style = TRUE;
+      case 'row_options':
+        // if row, $style will be empty.
+        $plugin = $this->get_plugin(empty($style) ? 'row' : 'style');
+        if ($plugin) {
+          $plugin->options_validate($form[$form_state['section']], $form_state);
+        }
+        break;
+      case 'access_options':
+        $plugin = $this->get_access_plugin();
+        if ($plugin) {
+          $plugin->options_validate($form['access_options'], $form_state);
+        }
+        break;
+      case 'cache_options':
+        $plugin = $this->get_cache_plugin();
+        if ($plugin) {
+          $plugin->options_validate($form['cache_options'], $form_state);
+        }
+        break;
+    }
+  }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit(&$form, &$form_state) {
+    // Not sure I like this being here, but it seems (?) like a logical place.
+    $cache_plugin = $this->get_cache_plugin();
+    if ($cache_plugin) {
+      $cache_plugin->cache_flush();
+    }
+
+    $section = $form_state['section'];
+    switch ($section) {
+      case 'display_title':
+        $this->display->display_title = $form_state['values']['display_title'];
+        break;
+      case 'access':
+        $access = $this->get_option('access');
+        if ($access['type'] != $form_state['values']['access']['type']) {
+          $plugin = views_get_plugin('access', $form_state['values']['access']['type']);
+          if ($plugin) {
+            $access = array('type' => $form_state['values']['access']['type']);
+            $plugin->option_defaults($access);
+            $this->set_option('access', $access);
+            if (!empty($plugin->definition['uses options'])) {
+              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('access_options'));
+            }
+          }
+        }
+
+        break;
+      case 'access_options':
+        $plugin = views_get_plugin('access', $form_state['values'][$section]['type']);
+        if ($plugin) {
+          $plugin->options_submit($form['access_options'], $form_state);
+          $this->set_option('access', $form_state['values'][$section]);
+        }
+        break;
+      case 'cache':
+        $cache = $this->get_option('cache');
+        if ($cache['type'] != $form_state['values']['cache']['type']) {
+          $plugin = views_get_plugin('cache', $form_state['values']['cache']['type']);
+          if ($plugin) {
+            $cache = array('type' => $form_state['values']['cache']['type']);
+            $plugin->option_defaults($cache);
+            $this->set_option('cache', $cache);
+            if (!empty($plugin->definition['uses options'])) {
+              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('cache_options'));
+            }
+          }
+        }
+
+        break;
+      case 'cache_options':
+        $plugin = views_get_plugin('cache', $form_state['values'][$section]['type']);
+        if ($plugin) {
+          $plugin->options_submit($form['cache_options'], $form_state);
+          $this->set_option('cache', $form_state['values'][$section]);
+        }
+        break;
+      case 'title':
+      case 'css_class':
+      case 'link_display':
+        $this->set_option($section, $form_state['values'][$section]);
+        break;
+      case 'use_ajax':
+        $this->set_option($section, (bool)$form_state['values'][$section]);
+        break;
+      case 'use_pager':
+        $this->set_option($section, $form_state['values'][$section]);
+        $this->set_option('pager_element', intval($form_state['values']['pager_element']));
+        break;
+      case 'items_per_page':
+        $this->set_option($section, intval($form_state['values'][$section]));
+        $this->set_option('offset', intval($form_state['values']['offset']));
+        break;
+      case 'use_more':
+        $this->set_option($section, intval($form_state['values'][$section]));
+        $this->set_option('use_more_always', intval($form_state['values']['use_more_always']));
+        $this->set_option('use_more_text', $form_state['values']['use_more_text']);
+      case 'distinct':
+        $this->set_option($section, $form_state['values'][$section]);
+        break;
+      case 'row_plugin':
+        // This if prevents resetting options to default if they don't change
+        // the plugin.
+        if ($this->get_option($section) != $form_state['values'][$section]) {
+          $plugin = views_get_plugin('row', $form_state['values'][$section]);
+          if ($plugin) {
+            $this->set_option($section, $form_state['values'][$section]);
+            $this->set_option('row_options', array());
+
+            // send ajax form to options page if we use it.
+            if (!empty($plugin->definition['uses options'])) {
+              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('row_options'));
+            }
+          }
+        }
+        break;
+      case 'style_plugin':
+        // This if prevents resetting options to default if they don't change
+        // the plugin.
+        if ($this->get_option($section) != $form_state['values'][$section]) {
+          $plugin = views_get_plugin('style', $form_state['values'][$section]);
+          if ($plugin) {
+            $this->set_option($section, $form_state['values'][$section]);
+            $this->set_option('style_options', array());
+            // send ajax form to options page if we use it.
+            if (!empty($plugin->definition['uses options'])) {
+              views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('style_options'));
+            }
+          }
+        }
+        break;
+      case 'style_options':
+        $style = TRUE;
+      case 'row_options':
+        // if row, $style will be empty.
+        $plugin = $this->get_plugin(empty($style) ? 'row' : 'style');
+        if ($plugin) {
+          $plugin->options_submit($form[$section], $form_state);
+        }
+        $this->set_option($section, $form_state['values'][$section]);
+        break;
+      case 'header':
+      case 'footer':
+      case 'empty':
+        $this->set_option($section, $form_state['values'][$section]);
+        $this->set_option($section . '_format', $form_state['values'][$section . '_format']);
+        if ($section != 'empty') {
+          $this->set_option($section . '_empty', $form_state['values'][$section . '_empty']);
+        }
+        break;
+      case 'exposed_block':
+        $this->set_option($section, (bool) $form_state['values'][$section]);
+        break;
+    }
+  }
+
+  /**
+   * Add an override button for a given section, allowing the user to
+   * change whether this info is stored on the default display or on
+   * the current display.
+   */
+  function add_override_button(&$form, &$form_state, $section) {
+    if ($this->is_default_display()) {
+      return;
+    }
+
+    $form['override'] = array(
+      '#prefix' => '<div class="views-override clear-block">',
+      '#suffix' => '</div>',
+    );
+    if ($this->is_defaulted($section)) {
+      $form['override']['button'] = array(
+        '#type' => 'submit',
+        '#value' => t('Override'),
+        '#submit' => array('views_ui_edit_display_form_override'),
+      );
+      $form['override']['markup'] = array(
+        '#prefix' => '<div class="description">',
+        '#value' => theme('advanced_help_topic', 'views', 'overrides') . t('Status: using default values.'),
+        '#suffix' => '</div>',
+      );
+
+      $form_state['update_name'] = t('Update default display');
+    }
+    else {
+      $form['override']['button'] = array(
+        '#type' => 'submit',
+        '#value' => t('Use default'),
+        '#submit' => array('views_ui_edit_display_form_override'),
+      );
+      $form['override']['markup'] = array(
+        '#prefix' => '<div class="description">',
+        '#value' => theme('advanced_help_topic', 'views', 'overrides') . t('Status: using overridden values.'),
+        '#suffix' => '</div>',
+      );
+
+      $form_state['update_name'] = NULL;
+    }
+  }
+
+  /**
+   * If override/revert was clicked, perform the proper toggle.
+   */
+  function options_override($form, &$form_state) {
+    $this->set_override($form_state['section']);
+  }
+
+  /**
+   * Flip the override setting for the given section.
+   */
+  function set_override($section, $new_state = NULL) {
+    $options = $this->defaultable_sections($section);
+    if (!$options) {
+      return;
+    }
+
+    if (!isset($new_state)) {
+      $new_state = empty($this->options['defaults'][$section]);
+    }
+
+    // For each option that is part of this group, fix our settings.
+    foreach ($options as $option) {
+      if ($new_state) {
+        // Revert to defaults.
+        unset($this->options[$option]);
+        unset($this->display->display_options[$option]);
+      }
+      else {
+        // copy existing values into our display.
+        $this->options[$option] = $this->get_option($option);
+        $this->display->display_options[$option] = $this->options[$option];
+      }
+      $this->options['defaults'][$option] = $new_state;
+      $this->display->display_options['defaults'][$option] = $new_state;
+    }
+  }
+
+  /**
+   * Inject anything into the query that the display handler needs.
+   */
+  function query() {
+    // Make the query distinct if the option was set.
+    if ($this->get_option('distinct')) {
+      $this->view->query->set_distinct();
+    }
+  }
+
+  /**
+   * Not all display plugins will support filtering
+   */
+  function render_filters() { }
+
+  /**
+   * Render the 'more' link
+   */
+  function render_more_link() {
+    if ($this->use_more() && ($this->use_more_always() || !isset($this->view->total_rows) || $this->view->total_rows > $this->view->pager['items_per_page'])) {
+      $path = $this->get_path();
+      if ($path) {
+        $path = $this->view->get_url(NULL, $path);
+        $url_options = array();
+        if (!empty($this->view->exposed_raw_input)) {
+          $url_options['query'] = $this->view->exposed_raw_input;
+        }
+        $theme = views_theme_functions('views_more', $this->view, $this->display);
+        $path = check_url(url($path, $url_options));
+        return theme($theme, $path, check_plain($this->use_more_text()));
+      }
+    }
+  }
+
+  /**
+   * Render a text area, using the proper format.
+   */
+  function render_textarea($area) {
+    static $formats = array();
+
+    $value = $this->get_option($area);
+    // Check to make sure the filter format exists; if not, we don't
+    // display anything.
+    $format = filter_resolve_format($this->get_option($area . '_format'));
+
+    if (!array_key_exists($format, $formats)) {
+      $formats[$format] = db_result(db_query("SELECT name FROM {filter_formats} WHERE format = %d", $format));
+    }
+
+    if (!$formats[$format]) {
+      return;
+    }
+
+    if ($value) {
+      return check_markup($value, $format, FALSE);
+    }
+  }
+
+  /**
+   * Render the header of the view.
+   */
+  function render_header() {
+    if (!empty($this->view->result) || $this->get_option('header_empty')) {
+      return $this->render_textarea('header');
+    }
+  }
+
+  /**
+   * Render the footer of the view.
+   */
+  function render_footer() {
+    if (!empty($this->view->result) || $this->get_option('footer_empty')) {
+      return $this->render_textarea('footer');
+    }
+  }
+
+  /**
+   * Render the empty text of the view.
+   */
+  function render_empty() { return $this->render_textarea('empty'); }
+  /**
+   * If this display creates a block, implement one of these.
+   */
+  function hook_block($op = 'list', $delta = 0, $edit = array()) { return array(); }
+
+  /**
+   * If this display creates a page with a menu item, implement it here.
+   */
+  function hook_menu() { return array(); }
+
+  /**
+   * Render this display.
+   */
+  function render() {
+    return theme($this->theme_functions(), $this->view);
+  }
+
+  /**
+   * Determine if the user has access to this display of the view.
+   */
+  function access($account = NULL) {
+    if (!isset($account)) {
+      global $user;
+      $account = $user;
+    }
+
+    // Full override.
+    if (user_access('access all views', $account)) {
+      return TRUE;
+    }
+
+    $plugin = $this->get_access_plugin();
+    if ($plugin) {
+      return $plugin->access($account);
+    }
+
+    // fallback to all access if no plugin.
+    return TRUE;
+  }
+
+  /**
+   * Set up any variables on the view prior to execution. These are separated
+   * from execute because they are extremely common and unlikely to be
+   * overridden on an individual display.
+   */
+  function pre_execute() {
+    $this->view->set_use_ajax($this->use_ajax());
+    // Copy pager information from the display.
+    $this->view->set_use_pager($this->use_pager());
+    $this->view->set_pager_element($this->get_option('pager_element'));
+    $this->view->set_items_per_page($this->get_option('items_per_page'));
+    $this->view->set_offset($this->get_option('offset'));
+    if ($this->use_more() && !$this->use_more_always()) {
+      $this->view->get_total_rows = TRUE;
+    }
+  }
+
+  /**
+   * When used externally, this is how a view gets run and returns
+   * data in the format required.
+   *
+   * The base class cannot be executed.
+   */
+  function execute() { }
+
+  /**
+   * Fully render the display for the purposes of a live preview or
+   * some other AJAXy reason.
+   */
+  function preview() { return $this->view->render(); }
+
+  /**
+   * Displays can require a certain type of style plugin. By default, they will
+   * be 'normal'.
+   */
+  function get_style_type() { return 'normal'; }
+
+  /**
+   * Make sure the display and all associated handlers are valid.
+   *
+   * @return
+   *   Empty array if the display is valid; an array of error strings if it is not.
+   */
+  function validate() {
+    $errors = array();
+    // Make sure displays that use fields HAVE fields.
+    if ($this->uses_fields()) {
+      $fields = FALSE;
+      foreach ($this->get_handlers('field') as $field) {
+        if (empty($field->options['exclude'])) {
+          $fields = TRUE;
+        }
+      }
+
+      if (!$fields) {
+        $errors[] = t('Display "@display" uses fields but there are none defined for it or all are excluded.', array('@display' => $this->display->display_title));
+      }
+    }
+
+    if ($this->has_path() && !$this->get_option('path')) {
+      $errors[] = t('Display "@display" uses a path but the path is undefined.', array('@display' => $this->display->display_title));
+    }
+
+    // Validate style plugin
+    $style = $this->get_plugin();
+    if (empty($style)) {
+      $errors[] = t('Display "@display" has an invalid style plugin.', array('@display' => $this->display->display_title));
+    }
+    else {
+      $result = $style->validate();
+      if (!empty($result) && is_array($result)) {
+        $errors = array_merge($errors, $result);
+      }
+    }
+
+    // Validate handlers
+    foreach (views_object_types() as $type => $info) {
+      foreach ($this->get_handlers($type) as $handler) {
+        $result = $handler->validate();
+        if (!empty($result) && is_array($result)) {
+          $errors = array_merge($errors, $result);
+        }
+      }
+    }
+
+    return $errors;
+  }
+
+  /**
+   * Check if the provided identifier is unique.
+   */
+  function is_identifier_unique($id, $identifier) {
+    foreach (views_object_types() as $type => $info) {
+      foreach ($this->get_handlers($type) as $key => $handler) {
+        if ($handler->can_expose() && $handler->is_exposed()) {
+          if ($id != $key && $identifier == $handler->options['expose']['identifier']) {
+            return FALSE;
+          }
+        }
+      }
+    }
+    return TRUE;
+  }
+
+  /**
+   * Provide the block system with any exposed widget blocks for this display.
+   */
+  function get_special_blocks() {
+    $delta = '-exp-' . $this->view->name . '-' . $this->display->id;
+    $desc = t('Exposed form: @view- at display_id', array('@view' => $this->view->name, '@display_id' => $this->display->id));
+
+    return array(
+      $delta => array(
+        'info' => $desc,
+        'cache' => BLOCK_NO_CACHE,
+      )
+    );
+  }
+
+  /**
+   * Render any special blocks provided for this display.
+   */
+  function view_special_blocks($type) {
+    if ($type == '-exp') {
+      // avoid interfering with the admin forms.
+      if (arg(0) == 'admin' && arg(1) == 'build' && arg(2) == 'views') {
+        return;
+      }
+      $this->view->init_handlers();
+      return array(
+        'content' => $this->view->render_exposed_form(TRUE),
+      );
+    }
+  }
+
+}
+
+
+/**
+ * @}
+ */
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_attachment.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_attachment.inc
new file mode 100644
index 0000000..e59ba62
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_attachment.inc
@@ -0,0 +1,278 @@
+<?php
+/**
+ * @file
+ * Contains the attachment display plugin.
+ */
+
+/**
+ * The plugin that handles an attachment display.
+ *
+ * Attachment displays are secondary displays that are 'attached' to a primary
+ * display. Effectively they are a simple way to get multiple views within
+ * the same view. They can share some information.
+ *
+ * @ingroup views_display_plugins
+ */
+class views_plugin_display_attachment extends views_plugin_display {
+  function option_definition () {
+    $options = parent::option_definition();
+
+    $options['attachment_position'] = array('default' => 'before');
+    $options['inherit_arguments'] = array('default' => TRUE);
+    $options['inherit_exposed_filters'] = array('default' => FALSE);
+    $options['inherit_pager'] = array('default' => FALSE);
+    $options['render_pager'] = array('default' => TRUE);
+    $options['displays'] = array('default' => array());
+
+    return $options;
+  }
+
+  function execute() {
+    return $this->view->render($this->display->id);
+  }
+
+  function attachment_positions($position = NULL) {
+    $positions = array(
+      'before' => t('Before'),
+      'after' => t('After'),
+      'both' => t('Both'),
+    );
+
+    if ($position) {
+      return $positions[$position];
+    }
+
+    return $positions;
+  }
+
+  /**
+   * Provide the summary for attachment options in the views UI.
+   *
+   * This output is returned as an array.
+   */
+  function options_summary(&$categories, &$options) {
+    // It is very important to call the parent function here:
+    parent::options_summary($categories, $options);
+
+    $categories['attachment'] = array(
+      'title' => t('Attachment settings'),
+    );
+
+    $options['inherit_arguments'] = array(
+      'category' => 'attachment',
+      'title' => t('Inherit arguments'),
+      'value' => $this->get_option('inherit_arguments') ? t('Yes') : t('No'),
+    );
+
+    $options['inherit_exposed_filters'] = array(
+      'category' => 'attachment',
+      'title' => t('Inherit exposed filters'),
+      'value' => $this->get_option('inherit_exposed_filters') ? t('Yes') : t('No'),
+    );
+
+    $options['inherit_pager'] = array(
+      'category' => 'attachment',
+      'title' => t('Inherit pager'),
+      'value' => $this->get_option('inherit_pager') ? t('Yes') : t('No'),
+    );
+
+    $options['render_pager'] = array(
+      'category' => 'attachment',
+      'title' => t('Render pager'),
+      'value' => $this->get_option('render_pager') ? t('Yes') : t('No'),
+    );
+
+    $options['attachment_position'] = array(
+      'category' => 'attachment',
+      'title' => t('Position'),
+      'value' => $this->attachment_positions($this->get_option('attachment_position')),
+    );
+
+    $displays = array_filter($this->get_option('displays'));
+    if (count($displays) > 1) {
+      $attach_to = t('Multiple displays');
+    }
+    else if (count($displays) == 1) {
+      $display = array_shift($displays);
+      if (!empty($this->view->display[$display])) {
+        $attach_to = check_plain($this->view->display[$display]->display_title);
+      }
+    }
+
+    if (!isset($attach_to)) {
+      $attach_to = t('None');
+    }
+
+    $options['displays'] = array(
+      'category' => 'attachment',
+      'title' => t('Attach to'),
+      'value' => $attach_to,
+    );
+  }
+
+  /**
+   * Provide the default form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_form($form, $form_state);
+
+    switch ($form_state['section']) {
+      case 'inherit_arguments':
+        $form['#title'] .= t('Inherit arguments');
+        $form['inherit_arguments'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Inherit'),
+          '#description' => t('Should this display inherit its arguments from the parent display to which it is attached?'),
+          '#default_value' => $this->get_option('inherit_arguments'),
+        );
+        break;
+      case 'inherit_exposed_filters':
+        $form['#title'] .= t('Inherit exposed filters');
+        $form['inherit_exposed_filters'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Inherit'),
+          '#description' => t('Should this display inherit its exposed filter values from the parent display to which it is attached?'),
+          '#default_value' => $this->get_option('inherit_exposed_filters'),
+        );
+        break;
+      case 'inherit_pager':
+        $form['#title'] .= t('Inherit pager');
+        $form['inherit_pager'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Inherit'),
+          '#description' => t('Should this display inherit its paging values from the parent display to which it is attached? Note that this will provide unexpected results if the number of items to display do not match.'),
+          '#default_value' => $this->get_option('inherit_pager'),
+        );
+        break;
+      case 'render_pager':
+        $form['#title'] .= t('Render pager');
+        $form['render_pager'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Render'),
+          '#description' => t('Should this display render the pager values? If not it can inherit from the parent...'),
+          '#default_value' => $this->get_option('render_pager'),
+        );
+        break;
+      case 'attachment_position':
+        $form['#title'] .= t('Position');
+        $form['attachment_position'] = array(
+          '#type' => 'radios',
+          '#description' => t('Attach before or after the parent display?'),
+          '#options' => $this->attachment_positions(),
+          '#default_value' => $this->get_option('attachment_position'),
+        );
+        break;
+      case 'displays':
+        $form['#title'] .= t('Attach to');
+        $displays = array();
+        foreach ($this->view->display as $display_id => $display) {
+          if (!empty($display->handler) && $display->handler->accept_attachments()) {
+            $displays[$display_id] = $display->display_title;
+          }
+        }
+        $form['displays'] = array(
+          '#type' => 'checkboxes',
+          '#description' => t('Select which display or displays this should attach to.'),
+          '#options' => $displays,
+          '#default_value' => $this->get_option('displays'),
+        );
+        break;
+    }
+  }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_submit($form, $form_state);
+    switch ($form_state['section']) {
+      case 'inherit_arguments':
+      case 'inherit_pager':
+      case 'render_pager':
+      case 'inherit_exposed_filters':
+      case 'attachment_position':
+      case 'displays':
+        $this->set_option($form_state['section'], $form_state['values'][$form_state['section']]);
+        break;
+    }
+  }
+
+  /**
+   * Attach to another view.
+   */
+  function attach_to($display_id) {
+    $displays = $this->get_option('displays');
+
+    if (empty($displays[$display_id])) {
+      return;
+    }
+
+    if (!$this->access()) {
+      return;
+    }
+
+    // Get a fresh view because our current one has a lot of stuff on it because it's
+    // already been executed.
+    $view = $this->view->clone_view();
+    $view->original_args = $view->args;
+
+    $args = $this->get_option('inherit_arguments') ? $this->view->args : array();
+    $view->set_arguments($args);
+    $view->set_display($this->display->id);
+    if ($this->get_option('inherit_pager')) {
+      $view->display_handler->use_pager = $this->view->display[$display_id]->handler->use_pager();
+      $view->display_handler->set_option('pager_element', $this->view->display[$display_id]->handler->get_option('pager_element'));
+    }
+
+    // because of this, it is very very important that displays that can accept
+    // attachments not also be attachments, or this could explode messily.
+    $attachment = $view->execute_display($this->display->id, $args);
+
+    switch ($this->get_option('attachment_position')) {
+      case 'before':
+        $this->view->attachment_before .= $attachment;
+        break;
+      case 'after':
+        $this->view->attachment_after .= $attachment;
+        break;
+      case 'both':
+        $this->view->attachment_before .= $attachment;
+        $this->view->attachment_after .= $attachment;
+        break;
+    }
+
+    $view->destroy();
+  }
+
+  /**
+   * Attachment displays only use exposed widgets if
+   * they are set to inherit the exposed filter settings
+   * of their parent display.
+   */
+  function uses_exposed() {
+    if (!empty($this->options['inherit_exposed_filters']) && parent::uses_exposed()) {
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  /**
+   * If an attachment is set to inherit the exposed filter
+   * settings from its parent display, then don't render and
+   * display a second set of exposed filter widgets.
+   */
+  function displays_exposed() {
+    return $this->options['inherit_exposed_filters'] ? FALSE : TRUE;
+  }
+
+  function use_pager() {
+    return !empty($this->use_pager);
+  }
+
+  function render_pager() {
+    return !empty($this->use_pager) && $this->get_option('render_pager');
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_block.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_block.inc
new file mode 100644
index 0000000..f27b23c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_block.inc
@@ -0,0 +1,192 @@
+<?php
+/**
+ * @file
+ * Contains the block display plugin.
+ */
+
+/**
+ * The plugin that handles a block.
+ *
+ * @ingroup views_display_plugins
+ */
+class views_plugin_display_block extends views_plugin_display {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['block_description'] = array('default' => '', 'translatable' => TRUE);
+    $options['block_caching'] = array('default' => BLOCK_NO_CACHE);
+
+    return $options;
+  }
+
+  /**
+   * The default block handler doesn't support configurable items,
+   * but extended block handlers might be able to do interesting
+   * stuff with it.
+   */
+  function execute_hook_block($op = 'list', $delta = 0, $edit = array()) {
+    if ($op == 'list') {
+      $delta = $this->view->name . '-' . $this->display->id;
+      $desc = $this->get_option('block_description');
+
+      if (empty($desc)) {
+        $desc = t('@view: @display', array('@view' => $this->view->name, '@display' => $this->display->display_title));
+      }
+      return array(
+        $delta => array(
+          'info' => $desc,
+          'cache' => $this->get_cache_type()
+        )
+      );
+    }
+  }
+
+  /**
+   * The display block handler returns the structure necessary for a block.
+   */
+  function execute() {
+    // Prior to this being called, the $view should already be set to this
+    // display, and arguments should be set on the view.
+    $info['content'] = $this->view->render();
+    $info['subject'] = filter_xss_admin($this->view->get_title());
+    if (!empty($this->view->result) || $this->get_option('empty') || !empty($this->view->style_plugin->definition['even empty'])) {
+      return $info;
+    }
+  }
+
+  /**
+   * Provide the summary for page options in the views UI.
+   *
+   * This output is returned as an array.
+   */
+  function options_summary(&$categories, &$options) {
+    // It is very important to call the parent function here:
+    parent::options_summary($categories, $options);
+
+    $categories['block'] = array(
+      'title' => t('Block settings'),
+    );
+
+    $block_description = strip_tags($this->get_option('block_description'));
+    if (empty($block_description)) {
+      $block_description = t('None');
+    }
+
+    if (strlen($block_description) > 16) {
+      $block_description = drupal_substr($block_description, 0, 16) . '...';
+    }
+
+    $options['block_description'] = array(
+      'category' => 'block',
+      'title' => t('Admin'),
+      'value' => $block_description,
+    );
+
+    $cache_type = $this->get_option('block_caching');
+    if (empty($cache_type)) {
+      $cache_type = BLOCK_NO_CACHE;
+    }
+
+    $types = $this->block_caching_modes();
+    $options['block_caching'] = array(
+      'category' => 'block',
+      'title' => t('Caching'),
+      'value' => $types[$this->get_cache_type()],
+    );
+  }
+
+  /**
+   * Provide a list of core's block caching modes.
+   */
+  function block_caching_modes() {
+    return array(
+      BLOCK_NO_CACHE => t('Do not cache'),
+      BLOCK_CACHE_GLOBAL => t('Cache once for everything (global)'),
+      BLOCK_CACHE_PER_PAGE => t('Per page'),
+      BLOCK_CACHE_PER_ROLE => t('Per role'),
+      BLOCK_CACHE_PER_ROLE | BLOCK_CACHE_PER_PAGE => t('Per role per page'),
+      BLOCK_CACHE_PER_USER => t('Per user'),
+      BLOCK_CACHE_PER_USER | BLOCK_CACHE_PER_PAGE => t('Per user per page'),
+    );
+  }
+
+  /**
+   * Provide a single method to figure caching type, keeping a sensible default
+   * for when it's unset.
+   */
+  function get_cache_type() {
+    $cache_type = $this->get_option('block_caching');
+    if (empty($cache_type)) {
+      $cache_type = BLOCK_NO_CACHE;
+    }
+    return $cache_type;
+  }
+
+  /**
+   * Provide the default form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_form($form, $form_state);
+
+    switch ($form_state['section']) {
+      case 'block_description':
+        $form['#title'] .= t('Block admin description');
+        $form['block_description'] = array(
+          '#type' => 'textfield',
+          '#description' => t('This will appear as the name of this block in administer >> site building >> blocks.'),
+          '#default_value' => $this->get_option('block_description'),
+        );
+        break;
+      case 'block_caching':
+        $form['#title'] .= t('Block caching type');
+
+        $form['block_caching'] = array(
+          '#type' => 'radios',
+          '#description' => t("This sets the default status for Drupal's built-in block caching method; this requires that caching be turned on in block administration, and be careful because you have little control over when this cache is flushed."),
+          '#options' => $this->block_caching_modes(),
+          '#default_value' => $this->get_cache_type(),
+        );
+        break;
+    }
+  }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_submit($form, $form_state);
+    switch ($form_state['section']) {
+      case 'block_description':
+        $this->set_option('block_description', $form_state['values']['block_description']);
+        break;
+      case 'block_caching':
+        $this->set_option('block_caching', $form_state['values']['block_caching']);
+        $this->save_block_cache($form_state['view']->name.'-'.$form_state['display_id'], $form_state['values']['block_caching']);
+        break;
+    }
+  }
+
+  /**
+   * Block views use exposed widgets only if AJAX is set.
+   */
+  function uses_exposed() {
+    if ($this->use_ajax()) {
+      return parent::uses_exposed();
+    }
+
+    return FALSE;
+  }
+
+  /**
+   * Save the block cache setting in the blocks table if this block allready
+   * exists in the blocks table. Dirty fix untill http://drupal.org/node/235673 gets in.
+   */
+  function save_block_cache($delta, $cache_setting) {
+    if ($bid = db_fetch_object(db_query("SELECT bid, cache FROM {blocks} WHERE module = 'views' AND delta = '%s'", $delta))) {
+      db_query("UPDATE {blocks} set cache = %d WHERE module = 'views' AND delta = '%s'", $cache_setting, $delta);
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_default.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_default.inc
new file mode 100644
index 0000000..0d518e7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_default.inc
@@ -0,0 +1,55 @@
+<?php
+/**
+ * @file
+ * Contains the default display plugin.
+ */
+
+/**
+ * A plugin to handle defaults on a view.
+ *
+ * @ingroup views_display_plugins
+ */
+class views_plugin_display_default extends views_plugin_display {
+  /**
+   * Determine if this display is the 'default' display which contains
+   * fallback settings
+   */
+  function is_default_display() { return TRUE; }
+
+  /**
+   * The default execute handler fully renders the view.
+   *
+   * For the simplest use:
+   * @code
+   *   $output = $view->execute_display('default', $args);
+   * @endcode
+   *
+   * For more complex usages, a view can be partially built:
+   * @code
+   *   $view->set_arguments($args);
+   *   $view->build('default'); // Build the query
+   *   $view->execute(); // Run the query
+   *   $output = $view->render(); // Render the view
+   * @endcode
+   *
+   * If short circuited at any point, look in $view->build_info for
+   * information about the query. After execute, look in $view->result
+   * for the array of objects returned from db_query.
+   *
+   * You can also do:
+   * @code
+   *   $view->set_arguments($args);
+   *   $output = $view->render('default'); // Render the view
+   * @endcode
+   *
+   * This illustrates that render is smart enough to call build and execute
+   * if these items have not already been accomplished.
+   *
+   * Note that execute also must accomplish other tasks, such
+   * as setting page titles, breadcrumbs, and generating exposed filter
+   * data if necessary.
+   */
+  function execute() {
+    return $this->view->render($this->display->id);
+  }
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_feed.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_feed.inc
new file mode 100644
index 0000000..91e975d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_feed.inc
@@ -0,0 +1,205 @@
+<?php
+/**
+ * @file
+ * Contains the feed display plugin.
+ */
+
+/**
+ * The plugin that handles a feed, such as RSS or atom.
+ *
+ * For the most part, feeds are page displays but with some subtle differences.
+ *
+ * @ingroup views_display_plugins
+ */
+class views_plugin_display_feed extends views_plugin_display_page {
+  function uses_breadcrumb() { return FALSE; }
+  function get_style_type() { return 'feed'; }
+
+  /**
+   * Feeds do not go through the normal page theming mechanism. Instead, they
+   * go through their own little theme function and then return NULL so that
+   * Drupal believes that the page has already rendered itself...which it has.
+   */
+  function execute() {
+    $output = $this->view->render();
+    if (empty($output)) {
+      return drupal_not_found();
+    }
+    print $output;
+  }
+
+  function preview() {
+    if (!empty($this->view->live_preview)) {
+      return '<pre>' . check_plain($this->view->render()) . '</pre>';
+    }
+    return $this->view->render();
+  }
+
+  /**
+   * Instead of going through the standard views_view.tpl.php, delegate this
+   * to the style handler.
+   */
+  function render() {
+    return $this->view->style_plugin->render($this->view->result);
+  }
+
+  function defaultable_sections($section = NULL) {
+    if (in_array($section, array('style_options', 'style_plugin', 'row_options', 'row_plugin',))) {
+      return FALSE;
+    }
+
+    $sections = parent::defaultable_sections($section);
+
+    // Tell views our sitename_title option belongs in the title section.
+    if ($section == 'title') {
+      $sections[] = 'sitename_title';
+    }
+    elseif (!$section) {
+      $sections['title'][] = 'sitename_title';
+    }
+    return $sections;
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['displays'] = array('default' => array());
+
+    // Overrides for standard stuff:
+    $options['style_plugin']['default'] = 'rss';
+    $options['style_options']['default']  = array('mission_description' => FALSE, 'description' => '');
+    $options['sitename_title']['default'] = FALSE;
+    $options['row_plugin']['default'] = '';
+    $options['defaults']['default']['style_plugin'] = FALSE;
+    $options['defaults']['default']['style_options'] = FALSE;
+    $options['defaults']['default']['row_plugin'] = FALSE;
+    $options['defaults']['default']['row_options'] = FALSE;
+
+    return $options;
+  }
+
+  function options_summary(&$categories, &$options) {
+    // It is very important to call the parent function here:
+    parent::options_summary($categories, $options);
+
+    // Since we're childing off the 'page' type, we'll still *call* our
+    // category 'page' but let's override it so it says feed settings.
+    $categories['page'] = array(
+      'title' => t('Feed settings'),
+    );
+
+    if ($this->get_option('sitename_title')) {
+      $options['title']['value'] = t('Using the site name');
+    }
+
+    // I don't think we want to give feeds menus directly.
+    unset($options['menu']);
+
+    $displays = array_filter($this->get_option('displays'));
+    if (count($displays) > 1) {
+      $attach_to = t('Multiple displays');
+    }
+    else if (count($displays) == 1) {
+      $display = array_shift($displays);
+      if (!empty($this->view->display[$display])) {
+        $attach_to = check_plain($this->view->display[$display]->display_title);
+      }
+    }
+
+    if (!isset($attach_to)) {
+      $attach_to = t('None');
+    }
+
+    $options['displays'] = array(
+      'category' => 'page',
+      'title' => t('Attach to'),
+      'value' => $attach_to,
+    );
+  }
+
+  /**
+   * Provide the default form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    // It is very important to call the parent function here.
+    parent::options_form($form, $form_state);
+
+    switch ($form_state['section']) {
+      case 'title':
+        $title = $form['title'];
+        // A little juggling to move the 'title' field beyond our checkbox.
+        unset($form['title']);
+        $form['sitename_title'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Use the site name for the title'),
+          '#default_value' => $this->get_option('sitename_title'),
+        );
+        $form['title'] = $title;
+        $form['title']['#process'] = array('views_process_dependency');
+        $form['title']['#dependency'] = array('edit-sitename-title' => array(FALSE));
+        break;
+      case 'displays':
+        $form['#title'] .= t('Attach to');
+        $displays = array();
+        foreach ($this->view->display as $display_id => $display) {
+          if (!empty($display->handler) && $display->handler->accept_attachments()) {
+            $displays[$display_id] = $display->display_title;
+          }
+        }
+        $form['displays'] = array(
+          '#type' => 'checkboxes',
+          '#description' => t('The feed icon will be available only to the selected displays.'),
+          '#options' => $displays,
+          '#default_value' => $this->get_option('displays'),
+        );
+        break;
+      case 'path':
+        $form['path']['#description'] = t('This view will be displayed by visiting this path on your site. It is recommended that the path be something like "path/%/%/feed" or "path/%/%/rss.xml", putting one % in the path for each argument you have defined in the view.');
+    }
+  }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_submit($form, $form_state);
+    switch ($form_state['section']) {
+      case 'title':
+        $this->set_option('sitename_title', $form_state['values']['sitename_title']);
+        break;
+      case 'displays':
+        $this->set_option($form_state['section'], $form_state['values'][$form_state['section']]);
+        break;
+    }
+  }
+
+  /**
+   * Attach to another view.
+   */
+  function attach_to($display_id) {
+    $displays = $this->get_option('displays');
+    if (empty($displays[$display_id])) {
+      return;
+    }
+
+    // Defer to the feed style; it may put in meta information, and/or
+    // attach a feed icon.
+    $plugin = $this->get_plugin();
+    if ($plugin) {
+      $clone = $this->view->clone_view();
+      $clone->set_display($this->display->id);
+      $clone->build_title();
+      $plugin->attach_to($display_id, $this->get_path(), $clone->get_title());
+
+      // Clean up
+      $clone->destroy();
+      unset($clone);
+    }
+  }
+
+  function uses_link_display() {
+    return TRUE;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_page.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_page.inc
new file mode 100644
index 0000000..9637fdb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_display_page.inc
@@ -0,0 +1,509 @@
+<?php
+/**
+ * @file
+ * Contains the page display plugin.
+ */
+
+/**
+ * The plugin that handles a full page.
+ *
+ * @ingroup views_display_plugins
+ */
+class views_plugin_display_page extends views_plugin_display {
+  /**
+   * The page display has a path.
+   */
+  function has_path() { return TRUE; }
+  function uses_breadcrumb() { return TRUE; }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['path'] = array('default' => '');
+    $options['menu'] = array(
+      'contains' => array(
+        'type' => array('default' => 'none'),
+        // Do not translate menu and title as menu system will.
+        'title' => array('default' => '', 'translatable' => FALSE),
+        'description' => array('default' => '', 'translatable' => FALSE),
+        'weight' => array('default' => 0),
+        'name' => array('default' => variable_get('menu_default_node_menu', 'navigation')),
+       ),
+    );
+    $options['tab_options'] = array(
+      'contains' => array(
+        'type' => array('default' => 'none'),
+        // Do not translate menu and title as menu system will.
+        'title' => array('default' => '', 'translatable' => FALSE),
+        'description' => array('default' => '', 'translatable' => FALSE),
+        'weight' => array('default' => 0),
+        'name' => array('default' => 'navigation'),
+       ),
+    );
+
+    return $options;
+  }
+
+  /**
+   * Add this display's path information to Drupal's menu system.
+   */
+  function execute_hook_menu($callbacks) {
+    $items = array();
+    // Replace % with the link to our standard views argument loader
+    // views_arg_load -- which lives in views.module
+
+    $bits = explode('/', $this->get_option('path'));
+    $page_arguments = array($this->view->name, $this->display->id);
+    $view_arguments = $this->get_option('arguments');
+
+    // Replace % with %views_arg for menu autoloading and add to the
+    // page arguments so the argument actually comes through.
+    foreach($bits as $pos => $bit) {
+      if ($bit == '%') {
+        $argument = array_shift($view_arguments);
+        if ($argument['validate_type'] != 'none') {
+          $bits[$pos] = '%views_arg';
+        }
+        $page_arguments[] = $pos;
+      }
+    }
+
+    $path = implode('/', $bits);
+
+    $access_plugin = $this->get_access_plugin();
+    if (!isset($access_plugin)) {
+      $access_plugin = views_get_plugin('access', 'none');
+    }
+    if ($path) {
+      $items[$path] = array(
+        // default views page entry
+        'page callback' => 'views_page',
+        'page arguments' => $page_arguments,
+        // Default access check (per display)
+        'access callback' => 'views_access',
+        'access arguments' => array($access_plugin->get_access_callback()),
+        // Identify URL embedded arguments and correlate them to a handler
+        'load arguments'  => array($this->view->name, $this->display->id, '%index'),
+      );
+      $menu = $this->get_option('menu');
+      if (empty($menu)) {
+        $menu = array('type' => 'none');
+      }
+      // Set the title and description if we have one.
+      if ($menu['type'] != 'none') {
+        $items[$path]['title'] = $menu['title'];
+        $items[$path]['description'] = $menu['description'];
+      }
+
+      if (isset($menu['weight'])) {
+        $items[$path]['weight'] = intval($menu['weight']);
+      }
+
+      switch ($menu['type']) {
+        case 'none':
+        default:
+          $items[$path]['type'] = MENU_CALLBACK;
+          break;
+        case 'normal':
+          $items[$path]['type'] = MENU_NORMAL_ITEM;
+          // Insert item into the proper menu
+          $items[$path]['menu_name'] = $menu['name'];
+          break;
+        case 'tab':
+          $items[$path]['type'] = MENU_LOCAL_TASK;
+          break;
+        case 'default tab':
+          $items[$path]['type'] = MENU_DEFAULT_LOCAL_TASK;
+          break;
+      }
+
+      // If this is a 'default' tab, check to see if we have to create teh
+      // parent menu item.
+      if ($menu['type'] == 'default tab') {
+        $tab_options = $this->get_option('tab_options');
+        if (!empty($tab_options['type']) && $tab_options['type'] != 'none') {
+          $bits = explode('/', $path);
+          // Remove the last piece.
+          $bit = array_pop($bits);
+
+          // we can't do this if they tried to make the last path bit variable.
+          // @todo: We can validate this.
+          if ($bit != '%views_arg' && !empty($bits)) {
+            $default_path = implode('/', $bits);
+            $items[$default_path] = array(
+              // default views page entry
+              'page callback' => 'views_page',
+              'page arguments' => $page_arguments,
+              // Default access check (per display)
+              'access callback' => 'views_access',
+              'access arguments' => array($access_plugin->get_access_callback()),
+              // Identify URL embedded arguments and correlate them to a handler
+              'load arguments'  => array($this->view->name, $this->display->id, '%index'),
+              'title' => $tab_options['title'],
+              'description' => $tab_options['description'],
+              'menu_name' => $tab_options['name'],
+            );
+            switch ($tab_options['type']) {
+              default:
+              case 'normal':
+                $items[$default_path]['type'] = MENU_NORMAL_ITEM;
+                break;
+              case 'tab':
+                $items[$default_path]['type'] = MENU_LOCAL_TASK;
+                break;
+            }
+            if (isset($tab_options['weight'])) {
+              $items[$default_path]['weight'] = intval($tab_options['weight']);
+            }
+          }
+        }
+      }
+    }
+
+    return $items;
+  }
+
+  /**
+   * The display page handler returns a normal view, but it also does
+   * a drupal_set_title for the page, and does a views_set_page_view
+   * on the view.
+   */
+  function execute() {
+    // Let the world know that this is the page view we're using.
+    views_set_page_view($this);
+
+    // Prior to this being called, the $view should already be set to this
+    // display, and arguments should be set on the view.
+    $this->view->build();
+    if (!empty($this->view->build_info['fail'])) {
+      return drupal_not_found();
+    }
+
+    $this->view->get_breadcrumb(TRUE);
+
+    // And the title, which is much easier.
+    drupal_set_title(filter_xss_admin($this->view->get_title()));
+
+    // And now render the view.
+    return $this->view->render();
+  }
+
+  /**
+   * Provide the summary for page options in the views UI.
+   *
+   * This output is returned as an array.
+   */
+  function options_summary(&$categories, &$options) {
+    // It is very important to call the parent function here:
+    parent::options_summary($categories, $options);
+
+    $categories['page'] = array(
+      'title' => t('Page settings'),
+    );
+
+    $path = strip_tags($this->get_option('path'));
+    if (empty($path)) {
+      $path = t('None');
+    }
+
+    if (strlen($path) > 16) {
+      $path = substr($path, 0, 16) . '...';
+    }
+
+    $options['path'] = array(
+      'category' => 'page',
+      'title' => t('Path'),
+      'value' => $path,
+    );
+
+    $menu = $this->get_option('menu');
+    if (!is_array($menu)) {
+      $menu = array('type' => 'none');
+    }
+    switch($menu['type']) {
+      case 'none':
+      default:
+        $menu_str = t('No menu');
+        break;
+      case 'normal':
+        $menu_str = t('Normal: @title', array('@title' => $menu['title']));
+        break;
+      case 'tab':
+      case 'default tab':
+        $menu_str = t('Tab: @title', array('@title' => $menu['title']));
+        break;
+    }
+
+    if (strlen($menu_str) > 16) {
+      $menu_str = substr($menu_str, 0, 16) . '...';
+    }
+
+    $options['menu'] = array(
+      'category' => 'page',
+      'title' => t('Menu'),
+      'value' => $menu_str,
+    );
+
+    // This adds a 'Settings' link to the style_options setting if the style has options.
+    if ($menu['type'] == 'default tab') {
+      $options['menu']['links']['tab_options'] = t('Change settings for the parent menu');
+    }
+  }
+
+  /**
+   * Provide the default form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_form($form, $form_state);
+
+    switch ($form_state['section']) {
+      case 'path':
+        $form['#title'] .= t('The menu path or URL of this view');
+        $form['#help_topic'] = 'path';
+        $form['path'] = array(
+          '#type' => 'textfield',
+          '#description' => t('This view will be displayed by visiting this path on your site. You may use "%" in your URL to represent values that will be used for arguments: For example, "node/%/feed".'),
+          '#default_value' => $this->get_option('path'),
+	  '#field_prefix' => '<span dir="ltr">' . url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='),
+	  '#field_suffix' => '</span>‎',
+	  '#attributes' => array('dir'=>'ltr'),
+        );
+        break;
+      case 'menu':
+        $form['#title'] .= t('Menu item entry');
+        $form['#help_topic'] = 'menu';
+        $form['menu'] = array(
+          '#prefix' => '<div class="clear-block">',
+          '#suffix' => '</div>',
+          '#tree' => TRUE,
+        );
+        $menu = $this->get_option('menu');
+        if (empty($menu)) {
+          $menu = array('type' => 'none', 'title' => '', 'weight' => 0);
+        }
+        $form['menu']['type'] = array(
+          '#prefix' => '<div class="views-left-30">',
+          '#suffix' => '</div>',
+          '#title' => t('Type'),
+          '#type' => 'radios',
+          '#options' => array(
+            'none' => t('No menu entry'),
+            'normal' => t('Normal menu entry'),
+            'tab' => t('Menu tab'),
+            'default tab' => t('Default menu tab')
+          ),
+          '#default_value' => $menu['type'],
+        );
+        $form['menu']['title'] = array(
+          '#prefix' => '<div class="views-left-50">',
+          '#title' => t('Title'),
+          '#type' => 'textfield',
+          '#default_value' => $menu['title'],
+          '#description' => t('If set to normal or tab, enter the text to use for the menu item.'),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:menu[type]' => array('normal', 'tab', 'default tab')),
+        );
+        $form['menu']['description'] = array(
+          '#title' => t('Description'),
+          '#type' => 'textfield',
+          '#default_value' => $menu['description'],
+          '#description' => t("If set to normal or tab, enter the text to use for the menu item's description."),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:menu[type]' => array('normal', 'tab', 'default tab')),
+        );
+        $form['menu']['name-warning'] = array(
+          '#type' => 'markup',
+          '#prefix' => '<div class="warning">',
+          '#value' => t("Warning: Changing this item's menu will not work reliably in Drupal 6.4 or earlier. Please upgrade your copy of Drupal at !url.", array('!url' => l('drupal.org', 'http://drupal.org/project/Drupal+project'))),
+          '#suffix' => '</div>',
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:menu[type]' => array('normal')),
+          '#access' => version_compare(VERSION, '6.5', '<'),
+        );
+
+        // Only display the menu selector if menu module is enabled.
+        if (module_exists('menu')) {
+          $form['menu']['name'] = array(
+            '#title' => t('Menu'),
+            '#type' => 'select',
+            '#options' => menu_get_menus(),
+            '#default_value' => $menu['name'],
+            '#description' => t('Insert item into an available menu.'), //
+            '#process' => array('views_process_dependency'),
+            '#dependency' => array('radio:menu[type]' => array('normal')),
+          );
+        }
+        else {
+          $form['menu']['name'] = array(
+            '#type' => 'value',
+            '#value' => $menu['name'],
+          );
+          $form['menu']['markup'] = array(
+            '#value' => t('Menu selection requires the activation of menu module.'),
+          );
+        }
+        $form['menu']['weight'] = array(
+          '#suffix' => '</div>',
+          '#title' => t('Weight'),
+          '#type' => 'textfield',
+          '#default_value' => isset($menu['weight']) ? $menu['weight'] : 0,
+          '#description' => t('The lower the weight the higher/further left it will appear.'),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:menu[type]' => array('normal', 'tab', 'default tab')),
+        );
+        break;
+      case 'tab_options':
+        $form['#title'] .= t('Default tab options');
+        $tab_options = $this->get_option('tab_options');
+        if (empty($tab_options)) {
+          $tab_options = array('type' => 'none', 'title' => '', 'weight' => 0);
+        }
+
+        $form['tab_markup'] = array(
+          '#prefix' => '<div class="form-item description">',
+          '#suffix' => '</div>',
+          '#value' => t('When providing a menu item as a tab, Drupal needs to know what the parent menu item of that tab will be. Sometimes the parent will already exist, but other times you will need to have one created. The path of a parent item will always be the same path with the last part left off. i.e, if the path to this view is <em>foo/bar/baz</em>, the parent path would be <em>foo/bar</em>.'),
+        );
+
+        $form['tab_options'] = array(
+          '#prefix' => '<div class="clear-block">',
+          '#suffix' => '</div>',
+          '#tree' => TRUE,
+        );
+        $form['tab_options']['type'] = array(
+          '#prefix' => '<div class="views-left-25">',
+          '#suffix' => '</div>',
+          '#title' => t('Parent menu item'),
+          '#type' => 'radios',
+          '#options' => array('none' => t('Already exists'), 'normal' => t('Normal menu item'), 'tab' => t('Menu tab')),
+          '#default_value' => $tab_options['type'],
+        );
+        $form['tab_options']['title'] = array(
+          '#prefix' => '<div class="views-left-75">',
+          '#title' => t('Title'),
+          '#type' => 'textfield',
+          '#default_value' => $tab_options['title'],
+          '#description' => t('If creating a parent menu item, enter the title of the item.'),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:tab_options[type]' => array('normal', 'tab')),
+        );
+        $form['tab_options']['description'] = array(
+          '#title' => t('Description'),
+          '#type' => 'textfield',
+          '#default_value' => $tab_options['description'],
+          '#description' => t('If creating a parent menu item, enter the description of the item.'),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:tab_options[type]' => array('normal', 'tab')),
+        );
+        // Only display the menu selector if menu module is enabled.
+        if (module_exists('menu')) {
+          $form['tab_options']['name'] = array(
+            '#title' => t('Menu'),
+            '#type' => 'select',
+            '#options' => menu_get_menus(),
+            '#default_value' => $tab_options['name'],
+            '#description' => t('Insert item into an available menu.'),
+            '#process' => array('views_process_dependency'),
+            '#dependency' => array('radio:tab_options[type]' => array('normal')),
+          );
+        }
+        else {
+          $form['tab_options']['name'] = array(
+            '#type' => 'value',
+            '#value' => $tab_options['name'],
+          );
+          $form['tab_options']['markup'] = array(
+            '#value' => t('Menu selection requires the activation of menu module.'),
+          );
+        }
+        $form['tab_options']['weight'] = array(
+          '#suffix' => '</div>',
+          '#title' => t('Tab weight'),
+          '#type' => 'textfield',
+          '#default_value' => $tab_options['weight'],
+          '#size' => 5,
+          '#description' => t('If the parent menu item is a tab, enter the weight of the tab. The lower the number, the more to the left it will be.'),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:tab_options[type]' => array('tab')),
+        );
+        break;
+    }
+  }
+
+  function options_validate(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_validate($form, $form_state);
+    switch ($form_state['section']) {
+      case 'path':
+        if (strpos($form_state['values']['path'], '$arg') !== FALSE) {
+          form_error($form['path'], t('"$arg" is no longer supported. Use % instead.'));
+        }
+
+        if (strpos($form_state['values']['path'], '%') === 0) {
+          form_error($form['path'], t('"%" may not be used for the first segment of a path.'));
+        }
+
+        // automatically remove '/' from path.
+        $form_state['values']['path'] = trim($form_state['values']['path'], '/');
+
+        break;
+      case 'menu':
+        $path = $this->get_option('path');
+        if ($form_state['values']['menu']['type'] == 'normal' && strpos($path, '%') !== FALSE) {
+          form_error($form['menu']['type'], t('Views cannot create normal menu items for paths with a % in them.'));
+        }
+
+        if ($form_state['values']['menu']['type'] == 'default tab' || $form_state['values']['menu']['type'] == 'tab') {
+          $bits = explode('/', $path);
+          $last = array_pop($bits);
+          if ($last == '%') {
+            form_error($form['menu']['type'], t('A display whose path ends with a % cannot be a tab.'));
+          }
+        }
+
+        if ($form_state['values']['menu']['type'] != 'none' && empty($form_state['values']['menu']['title'])) {
+          form_error($form['menu']['title'], t('Title is required for this menu type.'));
+        }
+        break;
+    }
+  }
+
+  function options_submit(&$form, &$form_state) {
+    // It is very important to call the parent function here:
+    parent::options_submit($form, $form_state);
+    switch ($form_state['section']) {
+      case 'path':
+        $this->set_option('path', $form_state['values']['path']);
+        break;
+      case 'menu':
+        $this->set_option('menu', $form_state['values']['menu']);
+        // send ajax form to options page if we use it.
+        if ($form_state['values']['menu']['type'] == 'default tab') {
+          views_ui_add_form_to_stack('display', $this->view, $this->display->id, array('tab_options'));
+        }
+        break;
+      case 'tab_options':
+        $this->set_option('tab_options', $form_state['values']['tab_options']);
+        break;
+    }
+  }
+
+  function validate() {
+    $errors = parent::validate();
+
+    $menu = $this->get_option('menu');
+    if (!empty($menu['type']) && $menu['type'] != 'none' && empty($menu['title'])) {
+      $errors[] = t('Display @display is set to use a menu but the menu title is not set.', array('@display' => $this->display->display_title));
+    }
+
+    if ($menu['type'] == 'default tab') {
+      $tab_options = $this->get_option('tab_options');
+      if (!empty($tab_options['type']) && $tab_options['type'] != 'none' && empty($tab_options['title'])) {
+        $errors[] = t('Display @display is set to use a parent menu but the parent menu title is not set.', array('@display' => $this->display->display_title));
+      }
+    }
+
+    return $errors;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_row.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_row.inc
new file mode 100644
index 0000000..2fe3ae4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_row.inc
@@ -0,0 +1,139 @@
+<?php
+/**
+ * @file
+ * Contains the base row style plugin.
+ */
+
+/**
+ * @defgroup views_row_plugins Views' row plugins
+ * @{
+ *
+ * Row plugins control how Views outputs an individual record. They are
+ * tightly coupled to style plugins, in that a style plugin is what calls
+ * the row plugin.
+ *
+ * @see hook_views_plugins
+ */
+
+/**
+ * Default plugin to view a single row of a table. This is really just a wrapper around
+ * a theme function.
+ *
+ * @ingroup views_row_plugins
+ */
+class views_plugin_row extends views_plugin {
+  /**
+   * Initialize the row plugin.
+   */
+  function init(&$view, &$display, $options = NULL) {
+    $this->view = &$view;
+    $this->display = &$display;
+
+    // Overlay incoming options on top of defaults
+    $this->unpack_options($this->options, isset($options) ? $options : $display->handler->get_option('row_options'));
+  }
+
+  function uses_fields() {
+    return !empty($this->definition['uses fields']);
+  }
+
+
+  function option_definition() {
+    $options = parent::option_definition();
+    if (isset($this->base_table)) {
+      $options['relationship'] = array('default' => 'none');
+    }
+
+    return $options;
+  }
+
+  /**
+   * Provide a form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    if (isset($this->base_table)) {
+      $view = &$form_state['view'];
+
+      // A whole bunch of code to figure out what relationships are valid for
+      // this item.
+      $relationships = $view->display_handler->get_option('relationships');
+      $relationship_options = array();
+
+      foreach ($relationships as $relationship) {
+        $relationship_handler = views_get_handler($relationship['table'], $relationship['field'], 'relationship');
+
+        // If this relationship is valid for this type, add it to the list.
+        $data = views_fetch_data($relationship['table']);
+        $base = $data[$relationship['field']]['relationship']['base'];
+        if ($base == $this->base_table) {
+          $relationship_handler->init($view, $relationship);
+          $relationship_options[$relationship['id']] = $relationship_handler->label();
+        }
+      }
+
+      if (!empty($relationship_options)) {
+        $relationship_options = array_merge(array('none' => t('Do not use a relationship')), $relationship_options);
+        $rel = empty($this->options['relationship']) ? 'none' : $this->options['relationship'];
+        if (empty($relationship_options[$rel])) {
+          // Pick the first relationship.
+          $rel = key($relationship_options);
+        }
+
+        $form['relationship'] = array(
+          '#type' => 'select',
+          '#title' => t('Relationship'),
+          '#options' => $relationship_options,
+          '#default_value' => $rel,
+        );
+      }
+      else {
+        $form['relationship'] = array(
+          '#type' => 'value',
+          '#value' => 'none',
+        );
+      }
+    }
+  }
+
+  /**
+   * Validate the options form.
+   */
+  function options_validate(&$form, &$form_state) { }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit(&$form, &$form_state) { }
+
+  function query() {
+    if (isset($this->base_table) && isset($this->options['relationship']) && isset($this->view->relationship[$this->options['relationship']])) {
+      $relationship = $this->view->relationship[$this->options['relationship']];
+      $this->field_alias = $this->view->query->add_field($relationship->alias, $this->base_field);
+    }
+    else {
+      $this->field_alias = $this->view->base_field;
+    }
+  }
+
+  /**
+   * Allow the style to do stuff before each row is rendered.
+   *
+   * @param $result
+   *   The full array of results from the query.
+   */
+  function pre_render($result) { }
+
+  /**
+   * Render a row object. This usually passes through to a theme template
+   * of some form, but not always.
+   */
+  function render($row) {
+    return theme($this->theme_functions(), $this->view, $this->options, $row, $this->field_alias);
+  }
+}
+
+/**
+ * @}
+ */
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_row_fields.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_row_fields.inc
new file mode 100644
index 0000000..bd66b42
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_row_fields.inc
@@ -0,0 +1,67 @@
+<?php
+/**
+ * @file
+ * Contains the base row style plugin.
+ */
+
+/**
+ * The basic 'fields' row plugin
+ *
+ * This displays fields one after another, giving options for inline
+ * or not.
+ *
+ * @ingroup views_row_plugins
+ */
+class views_plugin_row_fields extends views_plugin_row {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['inline'] = array('default' => array());
+    $options['separator'] = array('default' => '');
+    $options['hide_empty'] = array('default' => FALSE);
+    return $options;
+  }
+
+  /**
+   * Provide a form for setting options.
+   */
+  function options_form(&$form, &$form_state) {
+    $options = $this->display->handler->get_field_labels();
+
+    if (empty($this->options['inline'])) {
+      $this->options['inline'] = array();
+    }
+
+    $form['inline'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Inline fields'),
+      '#options' => $options,
+      '#default_value' => $this->options['inline'],
+      '#description' => t('Inline fields will be displayed next to each other rather than one after another.'),
+    );
+
+    $form['separator'] = array(
+      '#title' => t('Separator'),
+      '#type' => 'textfield',
+      '#size' => 10,
+      '#default_value' => isset($this->options['separator']) ? $this->options['separator'] : '',
+      '#description' => t('The separator may be placed between inline fields to keep them from squishing up next to each other. You can use HTML in this field.'),
+    );
+
+    $form['hide_empty'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Hide empty fields'),
+      '#default_value' => $this->options['hide_empty'],
+      '#description' => t('Do not display fields, labels or markup for fields that are empty.'),
+    );
+  }
+
+  /**
+   * Perform any necessary changes to the form values prior to storage.
+   * There is no need for this function to actually store the data.
+   */
+  function options_submit(&$form, &$form_state) {
+    $form_state['values']['row_options']['inline'] = array_filter($form_state['values']['row_options']['inline']);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style.inc
new file mode 100644
index 0000000..39c4abb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style.inc
@@ -0,0 +1,274 @@
+<?php
+
+/**
+ * @defgroup views_style_plugins Views' style plugins
+ * @{
+ * Style plugins control how a view is rendered. For example, they
+ * can choose to display a collection of fields, node_view() output,
+ * table output, or any kind of crazy output they want.
+ *
+ * Many style plugins can have an optional 'row' plugin, that displays
+ * a single record. Not all style plugins can utilize this, so it is
+ * up to the plugin to set this up and call through to the row plugin.
+ *
+ * @see hook_views_plugins
+ */
+
+/**
+ * Base class to define a style plugin handler.
+ */
+class views_plugin_style extends views_plugin {
+  /**
+   * Initialize a style plugin.
+   *
+   * @param $view
+   * @param $display
+   * @param $options
+   *   The style options might come externally as the style can be sourced
+   *   from at least two locations. If it's not included, look on the display.
+   */
+  function init(&$view, &$display, $options = NULL) {
+    $this->view = &$view;
+    $this->display = &$display;
+
+    // Overlay incoming options on top of defaults
+    $this->unpack_options($this->options, isset($options) ? $options : $display->handler->get_option('style_options'));
+
+    if ($this->uses_row_plugin() && $display->handler->get_option('row_plugin')) {
+      $this->row_plugin = $display->handler->get_plugin('row');
+    }
+
+    $this->options += array(
+      'grouping' => '',
+    );
+
+    $this->definition += array(
+      'uses grouping' => TRUE,
+    );
+  }
+
+  function destroy() {
+    parent::destroy();
+
+    if (isset($this->row_plugin)) {
+      $this->row_plugin->destroy();
+    }
+  }
+
+  /**
+   * Return TRUE if this style also uses a row plugin.
+   */
+  function uses_row_plugin() {
+    return !empty($this->definition['uses row plugin']);
+  }
+
+  /**
+   * Return TRUE if this style also uses fields.
+   */
+  function uses_fields() {
+    // If we use a row plugin, ask the row plugin. Chances are, we don't
+    // care, it does.
+    if ($this->uses_row_plugin() && !empty($this->row_plugin)) {
+      return $this->row_plugin->uses_fields();
+    }
+    // Otherwise, maybe we do.
+    return !empty($this->definition['uses fields']);
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['grouping'] = array('default' => '');
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    // Only fields-based views can handle grouping.  Style plugins can also exclude
+    // themselves from being groupable by setting their "use grouping" definiton
+    // key to FALSE.
+    // @TODO: Document "uses grouping" in docs.php when docs.php is written.
+    if ($this->uses_fields() && $this->definition['uses grouping']) {
+      $options = array('' => t('- None -'));
+      $options += $this->display->handler->get_field_labels();
+
+      // If there are no fields, we can't group on them.
+      if (count($options) > 1) {
+        $form['grouping'] = array(
+          '#type' => 'select',
+          '#title' => t('Grouping field'),
+          '#options' => $options,
+          '#default_value' => $this->options['grouping'],
+          '#description' => t('You may optionally specify a field by which to group the records. Leave blank to not group.'),
+        );
+      }
+    }
+  }
+
+  /**
+   * Called by the view builder to see if this style handler wants to
+   * interfere with the sorts. If so it should build; if it returns
+   * any non-TRUE value, normal sorting will NOT be added to the query.
+   */
+  function build_sort() { return TRUE; }
+
+  /**
+   * Called by the view builder to let the style build a second set of
+   * sorts that will come after any other sorts in the view.
+   */
+  function build_sort_post() { }
+
+  /**
+   * Allow the style to do stuff before each row is rendered.
+   *
+   * @param $result
+   *   The full array of results from the query.
+   */
+  function pre_render($result) {
+    if (!empty($this->row_plugin)) {
+      $this->row_plugin->pre_render($result);
+    }
+  }
+
+  /**
+   * Render the display in this style.
+   */
+  function render() {
+    if ($this->uses_row_plugin() && empty($this->row_plugin)) {
+      vpr('views_plugin_style_default: Missing row plugin');
+      return;
+    }
+
+    // Group the rows according to the grouping field, if specified.
+    $sets = $this->render_grouping($this->view->result, $this->options['grouping']);
+
+    // Render each group separately and concatenate.  Plugins may override this
+    // method if they wish some other way of handling grouping.
+    $output = '';
+    foreach ($sets as $title => $records) {
+      if ($this->uses_row_plugin()) {
+        $rows = array();
+        foreach ($records as $row_index => $row) {
+          $this->view->row_index = $row_index;
+          $rows[] = $this->row_plugin->render($row);
+        }
+      }
+      else {
+        $rows = $records;
+      }
+
+      $output .= theme($this->theme_functions(), $this->view, $this->options, $rows, $title);
+    }
+    unset($this->view->row_index);
+    return $output;
+  }
+
+  /**
+   * Group records as needed for rendering.
+   *
+   * @param $records
+   *   An array of records from the view to group.
+   * @param $grouping_field
+   *   The field id on which to group.  If empty, the result set will be given
+   *   a single group with an empty string as a label.
+   * @return
+   *   The grouped record set.
+   */
+  function render_grouping($records, $grouping_field = '') {
+    // Make sure fields are rendered
+    $this->render_fields($this->view->result);
+    $sets = array();
+    if ($grouping_field) {
+      foreach ($records as $index => $row) {
+        $grouping = '';
+        // Group on the rendered version of the field, not the raw.  That way,
+        // we can control any special formatting of the grouping field through
+        // the admin or theme layer or anywhere else we'd like.
+        if (isset($this->view->field[$grouping_field])) {
+          $grouping = $this->get_field($index, $grouping_field);
+          if ($this->view->field[$grouping_field]->options['label']) {
+            $grouping = $this->view->field[$grouping_field]->options['label'] . ': ' . $grouping;
+          }
+        }
+        $sets[$grouping][$index] = $row;
+      }
+    }
+    else {
+      // Create a single group with an empty grouping field.
+      $sets[''] = $records;
+    }
+    return $sets;
+  }
+
+  /**
+   * Render all of the fields for a given style and store them on the object.
+   *
+   * @param $result
+   *   The result array from $view->result
+   */
+  function render_fields($result) {
+    if (!$this->uses_fields()) {
+      return;
+    }
+
+    if (isset($this->rendered_fields)) {
+      return $this->rendered_fields;
+    }
+
+    $this->view->row_index = 0;
+    $keys = array_keys($this->view->field);
+    foreach ($result as $count => $row) {
+      $this->view->row_index = $count;
+      foreach ($keys as $id) {
+        $this->rendered_fields[$count][$id] = $this->view->field[$id]->theme($row);
+      }
+    }
+    unset($this->view->row_index);
+  }
+
+  /**
+   * Get a rendered field.
+   *
+   * @param $index
+   *   The index count of the row.
+   * @param $field
+   *    The id of the field.
+   */
+  function get_field($index, $field) {
+    if (!isset($this->rendered_fields)) {
+      $this->render_fields($this->view->result);
+    }
+
+    if (isset($this->rendered_fields[$index][$field])) {
+      return $this->rendered_fields[$index][$field];
+    }
+  }
+
+  function validate() {
+    $errors = parent::validate();
+
+    if ($this->uses_row_plugin()) {
+      $plugin = $this->display->handler->get_plugin('row');
+      if (empty($plugin)) {
+        $errors[] = t('Style @style requires a row style but the row plugin is invalid.', array('@style' => $this->definition['title']));
+      }
+      else {
+        $result = $plugin->validate();
+        if (!empty($result) && is_array($result)) {
+          $errors = array_merge($errors, $result);
+        }
+      }
+    }
+    return $errors;
+  }
+
+  function query() {
+    parent::query();
+    if (isset($this->row_plugin)) {
+      $this->row_plugin->query();
+    }
+  }
+}
+
+/**
+ * @}
+ */
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_default.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_default.inc
new file mode 100644
index 0000000..e8c9db8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_default.inc
@@ -0,0 +1,24 @@
+<?php
+/**
+ * @file
+ * Contains the default style plugin.
+ */
+
+/**
+ * Default style plugin to render rows one after another with no
+ * decorations.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_default extends views_plugin_style {
+  /**
+   * Set default options
+   */
+  function options(&$options) {
+    parent::options($options);
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_grid.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_grid.inc
new file mode 100644
index 0000000..cc66cdb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_grid.inc
@@ -0,0 +1,60 @@
+<?php
+/**
+ * @file
+ * Contains the grid style plugin.
+ */
+
+/**
+ * Style plugin to render each item in a grid cell.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_grid extends views_plugin_style {
+  /**
+   * Set default options
+   */
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['columns'] = array('default' => '4');
+    $options['alignment'] = array('default' => 'horizontal');
+    $options['fill_single_line'] = array('default' => TRUE);
+    $options['summary'] = array('default' => '');
+
+    return $options;
+  }
+
+  /**
+   * Render the given style.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['columns'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Number of columns'),
+      '#default_value' => $this->options['columns'],
+    );
+    $form['alignment'] = array(
+      '#type' => 'radios',
+      '#title' => t('Alignment'),
+      '#options' => array('horizontal' => t('Horizontal'), 'vertical' => t('Vertical')),
+      '#default_value' => $this->options['alignment'],
+      '#description' => t('Horizontal alignment will place items starting in the upper left and moving right. Vertical alignment will place items starting in the upper left and moving down.'),
+    );
+    
+    $form['fill_single_line'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Fill up single line'),
+      '#description' => t('If you disable this option a grid with only one row will have the amount of items as tds. If you disable it this can cause problems with your css.'),
+      '#default_value' => !empty($this->options['fill_single_line']),
+    );
+
+    $form['summary'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Table summary'),
+      '#description' => t('This value will be displayed as table-summary attribute in the html. Set this for better accessiblity of your site.'),
+      '#default_value' => $this->options['summary'],
+    );
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_jump_menu.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_jump_menu.inc
new file mode 100644
index 0000000..3662553
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_jump_menu.inc
@@ -0,0 +1,155 @@
+<?php
+/**
+ * @file
+ * Contains the table style plugin.
+ */
+
+/**
+ * Style plugin to render each item as a row in a table.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_jump_menu extends views_plugin_style {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['hide'] = array('default' => FALSE);
+    $options['path'] = array('default' => '');
+    $options['text'] = array('default' => 'Go', 'translatable' => TRUE);
+    $options['choose'] = array('default' => '- Choose -', 'translatable' => TRUE);
+    $options['default_value'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  /**
+   * Render the given style.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $handlers = $this->display->handler->get_handlers('field');
+    if (empty($handlers)) {
+      $form['error_markup'] = array(
+        '#value' => t('You need at least one field before you can configure your jump menu settings'),
+        '#prefix' => '<div class="error form-item description">',
+        '#suffix' => '</div>',
+      );
+      return;
+    }
+
+    $form['markup'] = array(
+      '#value' => t('To properly configure a jump menu, you must select one field that will represent the path to utilize. You should then set that field to exclude. All other displayed fields will be part of the menu. Please note that all HTML will be stripped from this output as select boxes cannot show HTML.'),
+      '#prefix' => '<div class="form-item description">',
+      '#suffix' => '</div>',
+    );
+
+    foreach ($handlers as $id => $handler) {
+      $options[$id] = $handler->ui_name();
+    }
+
+    $form['path'] = array(
+      '#type' => 'select',
+      '#title' => t('Path field'),
+      '#options' => $options,
+      '#default_value' => $this->options['path'],
+    );
+
+    $form['hide'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Hide the "Go" button.'),
+      '#default_value' => !empty($this->options['hide']),
+      '#description' => t('If hidden, this button will only be hidden for users with javascript and the page will automatically jump when the select is changed.'),
+    );
+
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Button text'),
+      '#default_value' => $this->options['text'],
+    );
+
+    $form['choose'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Choose text'),
+      '#default_value' => $this->options['choose'],
+      '#description' => t('The text that will appear as the selected option in the jump menu.'),
+    );
+
+    $form['default_value'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Select the current argument.'),
+      '#default_value' => !empty($this->options['default_value']),
+      '#description' => t('If checked, the current path will be displayed as the default option in the jump menu, if applicable.'),
+    );
+  }
+
+  /**
+   * Render the display in this style.
+   *
+   * This is overridden so that we can render our grouping specially.
+   */
+  function render() {
+    $sets = $this->render_grouping($this->view->result, $this->options['grouping']);
+
+    // Turn this all into an $options array for the jump menu.
+    $this->view->row_index = 0;
+    $options = array();
+    $paths = array();
+
+    foreach ($sets as $title => $records) {
+      foreach ($records as $row_index => $row) {
+        $this->view->row_index = $row_index;
+        $path = html_entity_decode(strip_tags($this->get_field($this->view->row_index, $this->options['path'])), ENT_QUOTES);
+        // Putting a '/' in front messes up url() so let's take that out
+        // so users don't shoot themselves in the foot.
+        if (strpos($path, '/') === 0) {
+          $path = substr($path, 1);
+        }
+
+        // use parse_url() to preserve query and fragment in case the user
+        // wants to do fun tricks.
+        $url = parse_url($path);
+        $url_options = array();
+        if (isset($url['query'])) {
+          $path = strtr($path, array('?' . $url['query'] => ''));
+          $url_options['query'] = $url['query'];
+        }
+        if (isset($url['fragment'])) {
+          $path = strtr($path, array('#' . $url['fragment'] => ''));
+          $url_options['fragment'] = $url['fragment'];
+        }
+
+        $path = url($path, $url_options);
+        $field = html_entity_decode(strip_tags($this->row_plugin->render($row)), ENT_QUOTES);
+        if ($title) {
+          $options[$title][$path] = $field;
+        }
+        else {
+          $options[$path] = $field;
+        }
+        $paths[$path] = $path;
+        $this->view->row_index++;
+      }
+    }
+    unset($this->view->row_index);
+
+    $default_value = '';
+    if ($this->options['default_value'] && !empty($paths[url($_GET['q'])])) {
+      $default_value = url($_GET['q']);
+    }
+
+    ctools_include('jump-menu');
+    $settings = array(
+      'hide' => $this->options['hide'],
+      'button' => $this->options['text'],
+      'choose' => $this->options['choose'],
+      'default_value' => $default_value,
+    );
+
+    return drupal_get_form('ctools_jump_menu', $options, $settings);
+  }
+
+  function render_set($title, $records) {
+    $options = array();
+    $fields = $this->rendered_fields;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_list.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_list.inc
new file mode 100644
index 0000000..cee39eb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_list.inc
@@ -0,0 +1,37 @@
+<?php
+/**
+ * @file
+ * Contains the list style plugin.
+ */
+
+/**
+ * Style plugin to render each item in an ordered or unordered list.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_list extends views_plugin_style {
+  /**
+   * Set default options
+   */
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['type'] = array('default' => 'ul');
+
+    return $options;
+  }
+
+  /**
+   * Render the given style.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['type'] = array(
+      '#type' => 'radios',
+      '#title' => t('List type'),
+      '#options' => array('ul' => t('Unordered list'), 'ol' => t('Ordered list')),
+      '#default_value' => $this->options['type'],
+    );
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_rss.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_rss.inc
new file mode 100644
index 0000000..59dd89b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_rss.inc
@@ -0,0 +1,109 @@
+<?php
+/**
+ * @file
+ * Contains the RSS style plugin.
+ */
+
+/**
+ * Default style plugin to render an RSS feed.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_rss extends views_plugin_style {
+  function attach_to($display_id, $path, $title) {
+    $display = $this->view->display[$display_id]->handler;
+    $url_options = array();
+    $input = $this->view->get_exposed_input();
+    if ($input) {
+      $url_options['query'] = $input;
+    }
+
+    $url = url($this->view->get_url(NULL, $path), $url_options);
+    if ($display->has_path()) {
+      if (empty($this->preview)) {
+        drupal_add_feed($url, $title);
+      }
+    }
+    else {
+      if (empty($this->view->feed_icon)) {
+        $this->view->feed_icon = '';
+      }
+
+      $this->view->feed_icon .= theme('feed_icon', $url, $title);
+      drupal_add_link(array(
+        'rel' => 'alternate',
+        'type' => 'application/rss+xml',
+        'title' => $title,
+        'href' => $url
+      ));
+    }
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['description'] = array('default' => '', 'translatable' => TRUE);
+    $options['mission_description'] = array('default' => '', 'translatable' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['mission_description'] = array(
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['mission_description']),
+      '#title' => t('Use the site mission for the description'),
+    );
+    $form['description'] = array(
+      '#type' => 'textfield',
+      '#title' => t('RSS description'),
+      '#default_value' => $this->options['description'],
+      '#description' => t('This will appear in the RSS feed itself.'),
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-style-options-override' => array(FALSE)),
+    );
+  }
+
+  /**
+   * Return an array of additional XHTML elements to add to the channel.
+   *
+   * @return
+   *   An array that can be passed to format_xml_elements().
+   */
+  function get_channel_elements() {
+    return array();
+  }
+
+  function render() {
+    if (empty($this->row_plugin)) {
+      vpr('views_plugin_style_default: Missing row plugin');
+      return;
+    }
+    $rows = '';
+
+    // This will be filled in by the row plugin and is used later on in the
+    // theming output.
+    $this->namespaces = array();
+
+    // Fetch any additional elements for the channel and merge in their
+    // namespaces.
+    $this->channel_elements = $this->get_channel_elements();
+    foreach ($this->channel_elements as $element) {
+      if (isset($element['namespace'])) {
+        $this->namespaces = array_merge($this->namespaces, $element['namespace']);
+      }
+    }
+
+    foreach ($this->view->result as $row_index => $row) {
+      $this->view->row_index = $row_index;
+      $rows .= $this->row_plugin->render($row);
+    }
+
+    $output = theme($this->theme_functions(), $this->view, $this->options, $rows);
+    unset($this->view->row_index);
+
+    return $output;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary.inc
new file mode 100644
index 0000000..706d5d3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary.inc
@@ -0,0 +1,69 @@
+<?php
+/**
+ * @file
+ * Contains the default summary style plugin, which displays items in an HTML list.
+ */
+
+/**
+ * The default style plugin for summaries.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_summary extends views_plugin_style {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['base_path'] = array('default' => '');
+    $options['count'] = array('default' => TRUE);
+    $options['override'] = array('default' => FALSE);
+    $options['items_per_page'] = array('default' => 25);
+
+    return $options;
+  }
+
+  function query() {
+    if (!empty($this->options['override'])) {
+      $this->view->set_items_per_page(intval($this->options['items_per_page']));
+    }
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['base_path'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Base path'),
+      '#default_value' => $this->options['base_path'],
+      '#description' => t('Define the base path for links in this summary
+        view, i.e. http://example.com/<strong>your_view_path/archive</strong>.
+        Do not include beginning and ending forward slash. If this value
+        is empty, views will use the first path found as the base path,
+        in page displays, or / if no path could be found.'),
+    );
+    $form['count'] = array(
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['count']),
+      '#title' => t('Display record count with link'),
+    );
+    $form['override'] = array(
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['override']),
+      '#title' => t('Override number of items to display'),
+    );
+    $form['items_per_page'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Items to display'),
+      '#default_value' => $this->options['items_per_page'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array('edit-style-options-override' => array(TRUE)),
+    );
+  }
+
+  function render() {
+    $rows = array();
+    foreach ($this->view->result as $row) {
+      // @todo: Include separator as an option.
+      $rows[] = $row;
+    }
+    return theme($this->theme_functions(), $this->view, $this->options, $rows);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary_jump_menu.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary_jump_menu.inc
new file mode 100644
index 0000000..e4c199e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary_jump_menu.inc
@@ -0,0 +1,123 @@
+<?php
+/**
+ * @file
+ * Contains the default summary style plugin, which displays items in an HTML list.
+ */
+
+/**
+ * The default style plugin for summaries.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_summary_jump_menu extends views_plugin_style {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['base_path'] = array('default' => '');
+    $options['count'] = array('default' => TRUE);
+    $options['hide'] = array('default' => FALSE);
+    $options['text'] = array('default' => 'Go', 'translatable' => TRUE);
+    $options['choose'] = array('default' => '- Choose -', 'translatable' => TRUE);
+    $options['default_value'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  function query() {
+    // We can't have an offset without a limit, so provide a very large limit instead.
+    if (!empty($this->display->handler->options['offset'])) {
+      $this->view->set_items_per_page(999999);
+    }
+    else {
+      $this->view->set_items_per_page(0);
+      $this->view->set_use_pager(0);
+    }
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['base_path'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Base path'),
+      '#default_value' => $this->options['base_path'],
+      '#description' => t('Define the base path for links in this summary
+        view, i.e. http://example.com/<strong>your_view_path/archive</strong>.
+        Do not include beginning and ending forward slash. If this value
+        is empty, views will use the first path found as the base path,
+        in page displays, or / if no path could be found.'),
+    );
+    $form['count'] = array(
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['count']),
+      '#title' => t('Display record count with link'),
+    );
+
+    $form['hide'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Hide the "Go" button.'),
+      '#default_value' => !empty($this->options['hide']),
+      '#description' => t('If hidden, this button will only be hidden for users with javascript and the page will automatically jump when the select is changed.'),
+    );
+
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Button text'),
+      '#default_value' => $this->options['text'],
+    );
+
+    $form['choose'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Choose text'),
+      '#default_value' => $this->options['choose'],
+      '#description' => t('The text that will appear as the selected option in the jump menu.'),
+    );
+
+    $form['default_value'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Select the current argument.'),
+      '#default_value' => !empty($this->options['default_value']),
+      '#description' => t('If checked, the current argument setting will be displayed as the default option in the jump menu, if applicable.'),
+    );
+  }
+
+  function render() {
+    $argument = $this->view->argument[$this->view->build_info['summary_level']];
+
+    $url_options = array();
+
+    if (!empty($this->view->exposed_raw_input)) {
+      $url_options['query'] = $this->view->exposed_raw_input;
+    }
+
+    $options = array();
+    $default_value = '';
+    foreach ($this->view->result as $id => $row) {
+      $args = $this->view->args;
+      $args[$argument->position] = $argument->summary_argument($row);
+      $base_path = NULL;
+      if (!empty($argument->options['style_options']['base_path'])) {
+        $base_path = $argument->options['style_options']['base_path'];
+      }
+      $path = url($this->view->get_url($args, $base_path), $url_options);
+
+      $options[$path] = strip_tags($argument->summary_name($row));
+      if (!empty($this->options['count'])) {
+        $options[$path] .= ' (' . intval($row->{$argument->count_alias}) . ')';
+      }
+      if ($this->options['default_value'] && $_GET['q'] == $this->view->get_url($args)) {
+        $default_value = $path;
+      }
+    }
+
+    ctools_include('jump-menu');
+    $settings = array(
+      'hide' => $this->options['hide'],
+      'button' => $this->options['text'],
+      'choose' => $this->options['choose'],
+      'default_value' => $default_value,
+    );
+
+    return drupal_get_form('ctools_jump_menu', $options, $settings);
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary_unformatted.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary_unformatted.inc
new file mode 100644
index 0000000..69a8d72
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_summary_unformatted.inc
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @file
+ * Contains the unformatted summary style plugin.
+ */
+
+/**
+ * The default style plugin for summaries.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_summary_unformatted extends views_plugin_style_summary {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['inline'] = array('default' => FALSE);
+    $options['separator'] = array('default' => '');
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['inline'] = array(
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['inline']),
+      '#title' => t('Display items inline'),
+    );
+    $form['separator'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Separator'),
+      '#default_value' => $this->options['separator'],
+    );
+  }
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_table.inc b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_table.inc
new file mode 100644
index 0000000..0454fd1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/plugins/views_plugin_style_table.inc
@@ -0,0 +1,254 @@
+<?php
+/**
+ * @file
+ * Contains the table style plugin.
+ */
+
+/**
+ * Style plugin to render each item as a row in a table.
+ *
+ * @ingroup views_style_plugins
+ */
+class views_plugin_style_table extends views_plugin_style {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['columns'] = array('default' => array());
+    $options['default'] = array('default' => '');
+    $options['info'] = array('default' => array());
+    $options['override'] = array('default' => TRUE);
+    $options['sticky'] = array('default' => FALSE);
+    $options['order'] = array('default' => 'asc');
+    $options['summary'] = array('default' => '');
+
+    return $options;
+  }
+
+  /**
+   * Determine if we should provide sorting based upon $_GET inputs.
+   */
+  function build_sort() {
+    if (!isset($_GET['order']) && ($this->options['default'] == -1 || empty($this->view->field[$this->options['default']]))) {
+      return TRUE;
+    }
+
+    // If a sort we don't know anything about gets through, exit gracefully.
+    if (isset($_GET['order']) && empty($this->view->field[$_GET['order']])) {
+      return TRUE;
+    }
+
+    // Let the builder know whether or not we're overriding the default sorts.
+    return empty($this->options['override']);
+  }
+
+  /**
+   * Add our actual sort criteria
+   */
+  function build_sort_post() {
+    if (!isset($_GET['order'])) {
+      // check for a 'default' clicksort. If there isn't one, exit gracefully.
+      if (empty($this->options['default'])) {
+        return;
+      }
+      $sort = $this->options['default'];
+      $this->order = !empty($this->options['order']) ? $this->options['order'] : 'asc';
+    }
+    else {
+      $sort = $_GET['order'];
+      // Store the $order for later use.
+      $this->order = !empty($_GET['sort']) ? strtolower($_GET['sort']) : 'asc';
+    }
+
+    // If a sort we don't know anything about gets through, exit gracefully.
+    if (empty($this->view->field[$sort])) {
+      return;
+    }
+
+    // Ensure $this->order is valid.
+    if ($this->order != 'asc' && $this->order != 'desc') {
+      $this->order = 'asc';
+    }
+
+    // Store the $sort for later use.
+    $this->active = $sort;
+
+    // Tell the field to click sort.
+    $this->view->field[$sort]->click_sort($this->order);
+  }
+
+  /**
+   * Normalize a list of columns based upon the fields that are
+   * available. This compares the fields stored in the style handler
+   * to the list of fields actually in the view, removing fields that
+   * have been removed and adding new fields in their own column.
+   *
+   * - Each field must be in a column.
+   * - Each column must be based upon a field, and that field
+   *   is somewhere in the column.
+   * - Any fields not currently represented must be added.
+   * - Columns must be re-ordered to match the fields.
+   *
+   * @param $columns
+   *   An array of all fields; the key is the id of the field and the
+   *   value is the id of the column the field should be in.
+   * @param $fields
+   *   The fields to use for the columns. If not provided, they will
+   *   be requested from the current display. The running render should
+   *   send the fields through, as they may be different than what the
+   *   display has listed due to access control or other changes.
+   */
+  function sanitize_columns($columns, $fields = NULL) {
+    $sanitized = array();
+    if ($fields === NULL) {
+      $fields = $this->display->handler->get_option('fields');
+    }
+
+    // Preconfigure the sanitized array so that the order is retained.
+    foreach ($fields as $field => $info) {
+      // Set to itself so that if it isn't touched, it gets column
+      // status automatically.
+      $sanitized[$field] = $field;
+    }
+
+    foreach ($columns as $field => $column) {
+      // first, make sure the field still exists.
+      if (!isset($sanitized[$field])) {
+        continue;
+      }
+
+      // If the field is the column, mark it so, or the column
+      // it's set to is a column, that's ok
+      if ($field == $column || $columns[$column] == $column && !empty($sanitized[$column])) {
+        $sanitized[$field] = $column;
+      }
+      // Since we set the field to itself initially, ignoring
+      // the condition is ok; the field will get its column
+      // status back.
+    }
+
+    return $sanitized;
+  }
+
+  /**
+   * Render the given style.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $handlers = $this->display->handler->get_handlers('field');
+    if (empty($handlers)) {
+      $form['error_markup'] = array(
+        '#value' => t('You need at least one field before you can configure your table settings'),
+        '#prefix' => '<div class="error form-item description">',
+        '#suffix' => '</div>',
+      );
+      return;
+    }
+
+    $form['override'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Override normal sorting if click sorting is used'),
+      '#default_value' => !empty($this->options['override']),
+    );
+
+    $form['sticky'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Enable Drupal style "sticky" table headers (Javascript)'),
+      '#default_value' => !empty($this->options['sticky']),
+      '#description' => t('(Sticky header effects will not be active for preview below, only on live output.)'),
+    );
+
+    $form['order'] = array(
+      '#type' => 'select',
+      '#title' => t('Default sort order'),
+      '#options' => array('asc' => t('Ascending'), 'desc' => t('Descending')),
+      '#default_value' => $this->options['order'],
+      '#description' => t('If a default sort order is selected, what order should it use by default.'),
+    );
+
+    $form['summary'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Table summary'),
+      '#description' => t('This value will be displayed as table-summary attribute in the html. Set this for better accessiblity of your site.'),
+      '#default_value' => $this->options['summary'],
+    );
+
+    // Note: views UI registers this theme handler on our behalf. Your module
+    // will have to register your theme handlers if you do stuff like this.
+    $form['#theme'] = 'views_ui_style_plugin_table';
+
+    $columns = $this->sanitize_columns($this->options['columns']);
+
+    // Create an array of allowed columns from the data we know:
+    $field_names = $this->display->handler->get_field_labels();
+
+    if (isset($this->options['default'])) {
+      $default = $this->options['default'];
+      if (!isset($columns[$default])) {
+        $default = -1;
+      }
+    }
+    else {
+      $default = -1;
+    }
+
+    foreach ($columns as $field => $column) {
+      $safe = str_replace(array('][', '_', ' '), '-', $field);
+      // the $id of the column for dependency checking.
+      $id = 'edit-style-options-columns-' . $safe;
+
+      $form['columns'][$field] = array(
+        '#type' => 'select',
+        '#options' => $field_names,
+        '#default_value' => $column,
+      );
+      if ($handlers[$field]->click_sortable()) {
+        $form['info'][$field]['sortable'] = array(
+          '#type' => 'checkbox',
+          '#default_value' => !empty($this->options['info'][$field]['sortable']),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array($id => array($field)),
+        );
+        // Provide an ID so we can have such things.
+        $radio_id = form_clean_id('edit-default-' . $field);
+        $form['default'][$field] = array(
+          '#type' => 'radio',
+          '#return_value' => $field,
+          '#parents' => array('style_options', 'default'),
+          '#id' => $radio_id,
+          // because 'radio' doesn't fully support '#id' =(
+          '#attributes' => array('id' => $radio_id),
+          '#default_value' => $default,
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array($id => array($field)),
+        );
+      }
+      $form['info'][$field]['separator'] = array(
+        '#type' => 'textfield',
+        '#size' => 10,
+        '#default_value' => isset($this->options['info'][$field]['separator']) ? $this->options['info'][$field]['separator'] : '',
+        '#process' => array('views_process_dependency'),
+        '#dependency' => array($id => array($field)),
+      );
+
+      // markup for the field name
+      $form['info'][$field]['name'] = array(
+        '#value' => $field_names[$field],
+      );
+    }
+
+    // Provide a radio for no default sort
+    $form['default'][-1] = array(
+      '#type' => 'radio',
+      '#return_value' => -1,
+      '#parents' => array('style_options', 'default'),
+      '#id' => 'edit-default-0',
+      '#default_value' => $default,
+    );
+
+    $form['description_markup'] = array(
+      '#prefix' => '<div class="description form-item">',
+      '#suffix' => '</div>',
+      '#value' => t('Place fields into columns; you may combine multiple fields into the same column. If you do, the separator in the column specified will be used to separate the fields. Check the sortable box to make that column click sortable, and check the default sort radio to determine which column will be sorted by default, if any. You may control column order and field labels in the fields section.'),
+    );
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/theme.inc b/drupal/sites/default/boinc/modules/contrib/views/theme/theme.inc
new file mode 100644
index 0000000..0ce0a20
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/theme.inc
@@ -0,0 +1,756 @@
+<?php
+
+/**
+ * @file theme.inc
+ *
+ * An array of preprocessors to fill variables for templates and helper
+ * functions to make theming easier.
+ */
+
+/**
+ * Provide a full array of possible themes to try for a given hook.
+ *
+ * @param $hook
+ *   The hook to use. This is the base theme/template name.
+ * @param $view
+ *   The view being rendered.
+ * @param $display
+ *   The display being rendered, if applicable.
+ */
+function _views_theme_functions($hook, $view, $display = NULL) {
+  $themes = array();
+
+  if ($display) {
+    $themes[] = $hook . '__' . $view->name . '__' . $display->id;
+    $themes[] = $hook . '__' . $display->id;
+    $themes[] = $hook . '__' . preg_replace('/[^a-z0-9]/', '_', strtolower($view->tag));
+    if ($display->id != $display->display_plugin) {
+      $themes[] = $hook . '__' . $view->name . '__' . $display->display_plugin;
+      $themes[] = $hook . '__' . $display->display_plugin;
+    }
+  }
+  $themes[] = $hook . '__' . $view->name;
+  $themes[] = $hook;
+  return $themes;
+}
+
+/**
+ * Preprocess the primary theme implementation for a view.
+ */
+function template_preprocess_views_view(&$vars) {
+  global $base_path;
+
+  $view = $vars['view'];
+
+  $vars['rows']       = !empty($view->result) || !empty($view->style_plugin->definition['even empty']) ? $view->style_plugin->render($view->result) : '';
+
+  $vars['css_name']   = views_css_safe($view->name);
+  $vars['name']       = $view->name;
+  $vars['display_id'] = $view->current_display;
+
+  // Basic classes
+  $vars['classes_array'] = array();
+  $vars['classes_array'][] = 'view';
+  $vars['classes_array'][] = 'view-' . views_css_safe($vars['name']);
+  $vars['classes_array'][] = 'view-id-' . $vars['name'];
+  $vars['classes_array'][] = 'view-display-id-' . $vars['display_id'];
+
+  $css_class = $view->display_handler->get_option('css_class');
+  if (!empty($css_class)) {
+    $vars['css_class'] = preg_replace('/[^a-zA-Z0-9- ]/', '-', $css_class);
+    $vars['classes_array'][] = $vars['css_class'];
+  }
+
+  if (!$vars['rows']) {
+    $vars['empty']    = $view->display_handler->render_empty();
+    if (!$view->display_handler->get_option('header_empty')) {
+      $vars['header'] = '';
+    }
+    if (!$view->display_handler->get_option('footer_empty')) {
+      $vars['footer'] = '';
+    }
+  }
+  else {
+    $vars['empty']    = '';
+    $header = TRUE;
+  }
+
+  $vars['exposed']    = !empty($view->exposed_widgets) ? $view->exposed_widgets : '';
+  if (!isset($vars['header'])) {
+    $vars['header']   = $view->display_handler->render_header();
+  }
+  if (!isset($vars['footer'])) {
+    $vars['footer']   = $view->display_handler->render_footer();
+  }
+  $vars['more']       = $view->display_handler->render_more_link();
+  $vars['feed_icon']  = !empty($view->feed_icon) ? $view->feed_icon : '';
+
+  $vars['attachment_before'] = !empty($view->attachment_before) ? $view->attachment_before : '';
+  $vars['attachment_after'] = !empty($view->attachment_after) ? $view->attachment_after : '';
+
+  $vars['pager']      = '';
+
+  $exposed_input = isset($view->exposed_raw_input) ? $view->exposed_raw_input: NULL;
+  if ($view->display_handler->render_pager()) {
+    $pager_type = ($view->pager['use_pager'] === 'mini' ? 'views_mini_pager' : 'pager');
+    $pager_theme = views_theme_functions($pager_type, $view, $view->display_handler->display);
+    $vars['pager']    = theme($pager_theme, $exposed_input, $view->pager['items_per_page'], $view->pager['element']);
+  }
+
+  // if administrator, add some links. These used to be tabs, but this is better.
+  if (user_access('administer views') && module_exists('views_ui') && empty($view->hide_admin_links) && !variable_get('views_no_hover_links', FALSE)) {
+    $vars['admin_links_raw'] = array(
+      array(
+        'title' => t('Edit'),
+        'alt' => t("Edit this view"),
+        'href' => "admin/build/views/edit/$view->name",
+        'fragment' => 'views-tab-' . $view->current_display,
+        'query' => drupal_get_destination(),
+      ),
+      array(
+        'title' => t('Export'),
+        'alt' => t("Export this view"),
+        'href' => "admin/build/views/export/$view->name",
+      ),
+      array(
+        'title' => t('Clone'),
+        'alt' => t("Create a copy of this view"),
+        'href' => "admin/build/views/clone/$view->name",
+      ),
+    );
+
+    drupal_alter('views_admin_links', $vars['admin_links_raw'], $view);
+    $vars['admin_links'] = theme('links', $vars['admin_links_raw']);
+  }
+  else {
+    $vars['admin_links'] = '';
+    $vars['admin_links_raw'] = array();
+  }
+
+  // Our JavaScript needs to have some means to find the HTML belonging to this
+  // view.
+  //
+  // It is true that the DIV wrapper has classes denoting the name of the view
+  // and its display ID, but this is not enough to unequivocally match a view
+  // with its HTML, because one view may appear several times on the page. So
+  // we set up a running counter, $dom_id, to issue a "unique" identifier for
+  // each view. This identifier is written to both Drupal.settings and the DIV
+  // wrapper.
+  static $dom_id = 1;
+  $vars['dom_id'] = !empty($view->dom_id) ? $view->dom_id : $dom_id++;
+  $vars['classes_array'][] = 'view-dom-id-' . $vars['dom_id'];
+
+  // If using AJAX, send identifying data about this view.
+  if ($view->use_ajax) {
+    $settings = array(
+      'views' => array(
+        'ajax_path' => url('views/ajax'),
+        'ajaxViews' => array(
+          array(
+            'view_name' => $view->name,
+            'view_display_id' => $view->current_display,
+            'view_args' => check_plain(implode('/', $view->args)),
+            'view_path' => check_plain($_GET['q']),
+            // Pass through URL to ensure we get e.g. language prefixes.
+//            'view_base_path' => isset($view->display['page']) ? substr(url($view->display['page']->display_options['path']), strlen($base_path)) : '',
+            'view_base_path' => $view->get_path(),
+            'view_dom_id' => $vars['dom_id'],
+            // To fit multiple views on a page, the programmer may have
+            // overridden the display's pager_element.
+            'pager_element' => $view->pager['element'],
+          ),
+        ),
+      ),
+    );
+
+    drupal_add_js($settings, 'setting');
+    views_add_js('ajax_view');
+  }
+  // Flatten the classes to a string for the template file.
+  $vars['classes'] = implode(' ', $vars['classes_array']);
+}
+
+/**
+ * Preprocess theme function to print a single record from a row, with fields
+ */
+function template_preprocess_views_view_fields(&$vars) {
+  $view = $vars['view'];
+
+  // Loop through the fields for this view.
+  $inline = FALSE;
+  $vars['fields'] = array(); // ensure it's at least an empty array.
+  foreach ($view->field as $id => $field) {
+    // render this even if set to exclude so it can be used elsewhere.
+    $field_output = $view->style_plugin->get_field($view->row_index, $id);
+    $empty = $field_output !== 0 && empty($field_output);
+    if (empty($field->options['exclude']) && (!$empty || (empty($field->options['hide_empty']) && empty($vars['options']['hide_empty'])))) {
+      $object = new stdClass();
+
+      $object->content = $field_output;
+      if (isset($view->field[$id]->field_alias) && isset($vars['row']->{$view->field[$id]->field_alias})) {
+        $object->raw = $vars['row']->{$view->field[$id]->field_alias};
+      }
+      else {
+        $object->raw = NULL; // make sure it exists to reduce NOTICE
+      }
+      $object->inline = !empty($vars['options']['inline'][$id]);
+      $object->inline_html = $object->inline ? 'span' : 'div';
+      if (!empty($vars['options']['separator']) && $inline && $object->inline && $object->content) {
+        $object->separator = filter_xss_admin($vars['options']['separator']);
+      }
+
+      $inline = $object->inline;
+
+      $object->handler = &$view->field[$id];
+      $object->element_type = $object->handler->element_type();
+
+      $object->class = views_css_safe($id);
+      $object->label = check_plain($view->field[$id]->label());
+      $vars['fields'][$id] = $object;
+    }
+  }
+
+}
+
+/**
+ * Display a single views field.
+ *
+ * Interesting bits of info:
+ * $field->field_alias says what the raw value in $row will be. Reach it like
+ * this: @code { $row->{$field->field_alias} @endcode
+ */
+function theme_views_view_field($view, $field, $row) {
+  // Reference safe for PHP 4:
+  return $view->field[$field->options['id']]->advanced_render($row);
+}
+
+/**
+ * Process a single field within a view.
+ *
+ * This preprocess function isn't normally run, as a function is used by
+ * default, for performance. However, by creating a template, this
+ * preprocess should get picked up.
+ */
+function template_preprocess_views_view_field(&$vars) {
+  $vars['output'] = $vars['field']->advanced_render($vars['row']);
+}
+
+/**
+ * Preprocess theme function to print a single record from a row, with fields
+ */
+function template_preprocess_views_view_summary(&$vars) {
+  $view     = $vars['view'];
+  $argument = $view->argument[$view->build_info['summary_level']];
+
+  $url_options = array();
+
+  if (!empty($view->exposed_raw_input)) {
+    $url_options['query'] = $view->exposed_raw_input;
+  }
+  $vars['classes'] = array();
+  foreach ($vars['rows'] as $id => $row) {
+    $vars['rows'][$id]->link = $argument->summary_name($row);
+    $args = $view->args;
+    $args[$argument->position] = $argument->summary_argument($row);
+
+    $base_path = NULL;
+    if (!empty($argument->options['style_options']['base_path'])) {
+      $base_path = $argument->options['style_options']['base_path'];
+    }
+    $vars['rows'][$id]->url = url($view->get_url($args, $base_path), $url_options);
+    $vars['rows'][$id]->count = intval($row->{$argument->count_alias});
+    if ($vars['rows'][$id]->url == base_path() . $_GET['q'] || $vars['rows'][$id]->url == base_path() . drupal_get_path_alias($_GET['q'])) {
+      $vars['classes'][$id] = 'active';
+    }
+  }
+}
+
+/**
+ * Template preprocess theme function to print summary basically
+ * unformatted.
+ */
+function template_preprocess_views_view_summary_unformatted(&$vars) {
+  $view     = $vars['view'];
+  $argument = $view->argument[$view->build_info['summary_level']];
+  $vars['classes'] = array();
+
+  $url_options = array();
+
+  if (!empty($view->exposed_raw_input)) {
+    $url_options['query'] = $view->exposed_raw_input;
+  }
+
+  $count = 0;
+  foreach ($vars['rows'] as $id => $row) {
+    // only false on first time:
+    if ($count++) {
+      $vars['rows'][$id]->separator = filter_xss_admin($vars['options']['separator']);
+    }
+    $vars['rows'][$id]->link = $argument->summary_name($row);
+    $args = $view->args;
+    $args[$argument->position] = $argument->summary_argument($row);
+
+    $base_path = NULL;
+    if (!empty($argument->options['style_options']['base_path'])) {
+      $base_path = $argument->options['style_options']['base_path'];
+    }
+    $vars['rows'][$id]->url = url($view->get_url($args, $base_path), $url_options);
+    $vars['rows'][$id]->count = intval($row->{$argument->count_alias});
+    if ($vars['rows'][$id]->url == base_path() . $_GET['q'] || $vars['rows'][$id]->url == base_path() . drupal_get_path_alias($_GET['q'])) {
+      $vars['classes'][$id] = 'active';
+    }
+  }
+}
+
+/**
+ * Display a view as a table style.
+ */
+function template_preprocess_views_view_table(&$vars) {
+  $view     = $vars['view'];
+
+  // We need the raw data for this grouping, which is passed in as $vars['rows'].
+  // However, the template also needs to use for the rendered fields.  We
+  // therefore swap the raw data out to a new variable and reset $vars['rows']
+  // so that it can get rebuilt.
+  // Store rows so that they may be used by further preprocess functions.
+  $result   = $vars['result'] = $vars['rows'];
+  $vars['rows'] = array();
+
+  $options  = $view->style_plugin->options;
+  $handler  = $view->style_plugin;
+
+  $fields   = &$view->field;
+  $columns  = $handler->sanitize_columns($options['columns'], $fields);
+
+  $active   = !empty($handler->active) ? $handler->active : '';
+  $order    = !empty($handler->order) ? $handler->order : 'asc';
+
+  parse_str(tablesort_get_querystring(), $query);
+  if (isset($view->exposed_raw_input)) {
+    $query += $view->exposed_raw_input;
+  }
+  $query = empty($query) ? '' : '&' . http_build_query($query, '', '&');
+
+  $header = array();
+
+  // Fields must be rendered in order as of Views 2.3, so we will pre-render
+  // everything.
+  $renders = $handler->render_fields($result);
+
+  foreach ($columns as $field => $column) {
+    // render the header labels
+    if ($field == $column && empty($fields[$field]->options['exclude'])) {
+      $label = check_plain(!empty($fields[$field]) ? $fields[$field]->label() : '');
+      if (empty($options['info'][$field]['sortable']) || !$fields[$field]->click_sortable()) {
+        $vars['header'][$field] = $label;
+      }
+      else {
+        // @todo -- make this a setting
+        $initial = 'asc';
+
+        if ($active == $field && $order == 'asc') {
+          $initial = 'desc';
+        }
+
+        $title = t('sort by @s', array('@s' => $label));
+        if ($active == $field) {
+          $label .= theme('tablesort_indicator', $initial);
+        }
+        $link_options = array(
+          'html' => true,
+          'attributes' => array('title' => $title),
+          'query' => 'order=' . urlencode($field) . '&sort=' . $initial . $query,
+        );
+        $vars['header'][$field] = l($label, $_GET['q'], $link_options);
+      }
+    }
+
+    // Create a second variable so we can easily find what fields we have and what the
+    // CSS classes should be.
+    $vars['fields'][$field] = views_css_safe($field);
+    if ($active == $field) {
+      $vars['fields'][$field] .= ' active';
+    }
+
+    // Render each field into its appropriate column.
+    foreach ($result as $num => $row) {
+      if (!empty($fields[$field]) && empty($fields[$field]->options['exclude'])) {
+        $field_output = $renders[$num][$field];
+
+        if (!isset($vars['rows'][$num][$column])) {
+          $vars['rows'][$num][$column] = '';
+        }
+
+        // Don't bother with separators and stuff if the field does not show up.
+        if ($field_output === '') {
+          continue;
+        }
+
+        // Place the field into the column, along with an optional separator.
+        if ($vars['rows'][$num][$column] !== '') {
+          if (!empty($options['info'][$column]['separator'])) {
+            $vars['rows'][$num][$column] .= filter_xss_admin($options['info'][$column]['separator']);
+          }
+        }
+
+        $vars['rows'][$num][$column] .= $field_output;
+      }
+    }
+  }
+
+  $count = 0;
+  foreach ($vars['rows'] as $num => $row) {
+    $vars['row_classes'][$num][] = ($count++ % 2 == 0) ? 'odd' : 'even';
+  }
+
+  $vars['row_classes'][0][] = 'views-row-first';
+  $vars['row_classes'][count($vars['row_classes']) - 1][] = 'views-row-last';
+
+  $vars['class'] = 'views-table';
+  if (!empty($options['sticky'])) {
+    drupal_add_js('misc/tableheader.js');
+    $vars['class'] .= " sticky-enabled";
+  }
+  $vars['class'] .= ' cols-' . count($vars['header']);
+
+  $vars['attributes'] = '';
+  if (!empty($handler->options['summary'])) {
+    $vars['attributes'] = drupal_attributes(array('summary' => $handler->options['summary']));
+  }
+}
+
+/**
+ * Display a view as a grid style.
+ */
+function template_preprocess_views_view_grid(&$vars) {
+  $view     = $vars['view'];
+  $result   = $view->result;
+  $options  = $view->style_plugin->options;
+  $handler  = $view->style_plugin;
+
+  $columns  = $options['columns'];
+
+  $rows = array();
+
+  if ($options['alignment'] == 'horizontal') {
+    $row = array();
+    $row_count = 0;
+    foreach ($vars['rows'] as $count => $item) {
+      $row[] = $item;
+      $row_count++;
+      if (($count + 1) % $columns == 0) {
+        $rows[] = $row;
+        $row = array();
+        $row_count = 0;
+      }
+    }
+    if ($row) {
+      // Fill up the last line only if it's configured, but this is default.
+      if (!empty($handler->options['fill_single_line']) || count($rows)) {
+        for ($i = 0; $i < ($columns - $row_count); $i++) {
+          $row[] = '';
+        }
+      }
+      $rows[] = $row;
+    }
+  }
+  else {
+    $num_rows = floor(count($vars['rows']) / $columns);
+    // The remainders are the 'odd' columns that are slightly longer.
+    $remainders = count($vars['rows']) % $columns;
+    $row = 0;
+    $col = 0;
+    foreach ($vars['rows'] as $count => $item) {
+      $rows[$row][$col] = $item;
+      $row++;
+
+      if (!$remainders && $row == $num_rows) {
+        $row = 0;
+        $col++;
+      }
+      else if ($remainders && $row == $num_rows + 1) {
+        $row = 0;
+        $col++;
+        $remainders--;
+      }
+    }
+    for ($i = 0; $i < count($rows[0]); $i++) {
+      // This should be string so that's okay :)
+      if (!isset($rows[count($rows) - 1][$i])) {
+        $rows[count($rows) - 1][$i] = '';
+      }
+    }
+  }
+  // Add first/last column class
+  foreach ($rows as $row_number => $row) {
+    foreach ($row as $column_number => $column) {
+      $column_classes[$row_number][$column_number] = 'col-' . ($column_number + 1);
+      if ($column_number == 0) {
+        $column_classes[$row_number][$column_number] .= ' col-first';
+      }
+      elseif (count($rows[$row_number]) == ($column_number + 1)) {
+        $column_classes[$row_number][$column_number] .= ' col-last';
+      }
+    }
+  }
+  $vars['column_classes'] = $column_classes;
+  $vars['rows'] = $rows;
+  $vars['class'] = 'views-view-grid col-' . $columns;
+  $vars['attributes'] = '';
+  if (!empty($handler->options['summary'])) {
+    $vars['attributes'] = drupal_attributes(array('summary' => $handler->options['summary']));
+  }
+}
+
+/**
+ * Display the simple view of rows one after another
+ */
+function template_preprocess_views_view_unformatted(&$vars) {
+  $view     = $vars['view'];
+  $rows     = $vars['rows'];
+
+  $vars['classes'] = array();
+  // Set up striping values.
+  foreach ($rows as $id => $row) {
+    $row_classes = array();
+    $row_classes[] = 'views-row';
+    $row_classes[] = 'views-row-' . ($id + 1);
+    $row_classes[] = 'views-row-' . ($id % 2 ? 'even' : 'odd');
+    if ($id == 0) {
+      $row_classes[] = 'views-row-first';
+    }
+    if ($id == count($rows) -1) {
+      $row_classes[] = 'views-row-last';
+    }
+    // Flatten the classes to a string for each row for the template file.
+    $vars['classes'][$id] = implode(' ', $row_classes);
+  }
+}
+
+/**
+ * Display the view as an HTML list element
+ */
+function template_preprocess_views_view_list(&$vars) {
+  template_preprocess_views_view_unformatted($vars);
+}
+
+/**
+ * Preprocess an RSS feed
+ */
+function template_preprocess_views_view_rss(&$vars) {
+  global $base_url;
+  global $language;
+
+  $view     = &$vars['view'];
+  $options  = &$vars['options'];
+  $items    = &$vars['rows'];
+
+  $style    = &$view->style_plugin;
+
+  if (!empty($options['mission_description'])) {
+    $description = variable_get('site_mission', '');
+  }
+  else {
+    $description = $options['description'];
+  }
+  // The RSS 2.0 "spec" doesn't indicate HTML can be used in the description.
+  // We strip all HTML tags, but need to prevent double encoding from properly
+  // escaped source data (such as &amp becoming &amp;).
+  $vars['description'] = check_plain(decode_entities(strip_tags($description)));
+
+  if ($view->display_handler->get_option('sitename_title')) {
+    $title = variable_get('site_name', 'Drupal');
+    if ($slogan = variable_get('site_slogan', '')) {
+      $title .= ' - ' . $slogan;
+    }
+  }
+  else {
+    $title = $view->get_title();
+  }
+  $vars['title'] = check_plain($title);
+
+  // Figure out which display which has a path we're using for this feed. If there isn't
+  // one, use the global $base_url
+  $link_display_id = $view->display_handler->get_link_display();
+  if ($link_display_id && !empty($view->display[$link_display_id])) {
+    $path = $view->display[$link_display_id]->handler->get_path();
+  }
+
+  if ($path) {
+    $path = $view->get_url(NULL, $path);
+    $url_options = array('absolute' => TRUE);
+    if (!empty($view->exposed_raw_input)) {
+      $url_options['query'] = $view->exposed_raw_input;
+    }
+
+    // Compare the link to the default home page; if it's the default home page, just use $base_url.
+    if ($path == variable_get('site_frontpage', 'node')) {
+      $path = '';
+    }
+
+    $vars['link'] = check_url(url($path, $url_options));
+  }
+
+  $vars['langcode'] = check_plain($language->language);
+  $vars['namespaces'] = drupal_attributes($style->namespaces);
+  $vars['items'] = $items;
+  $vars['channel_elements'] = format_xml_elements($style->channel_elements);
+
+  drupal_set_header('Content-Type: application/rss+xml; charset=utf-8');
+}
+
+/**
+ * Default theme function for all RSS rows.
+ */
+function template_preprocess_views_view_row_rss(&$vars) {
+  $view     = &$vars['view'];
+  $options  = &$vars['options'];
+  $item     = &$vars['row'];
+
+  $vars['title'] = check_plain($item->title);
+  $vars['link'] = check_url($item->link);
+  $vars['description'] = check_plain($item->description);
+  $vars['item_elements'] = empty($item->elements) ? '' : format_xml_elements($item->elements);
+}
+
+/**
+ * Default theme function for all filter forms.
+ */
+function template_preprocess_views_exposed_form(&$vars) {
+  $form = &$vars['form'];
+
+  // Put all single checkboxes together in the last spot.
+  $checkboxes = '';
+
+  if (!empty($form['q'])) {
+    $vars['q'] = drupal_render($form['q']);
+  }
+
+  $vars['widgets'] = array();
+  foreach ($form['#info'] as $id => $info) {
+    // Set aside checkboxes.
+    if (isset($form[$info['value']]['#type']) && $form[$info['value']]['#type'] == 'checkbox') {
+      $checkboxes .= drupal_render($form[$info['value']]);
+      continue;
+    }
+    $widget = new stdClass;
+    // set up defaults so that there's always something there.
+    $widget->label = $widget->operator = $widget->widget = NULL;
+
+    $widget->id = $form[$info['value']]['#id'];
+    if (!empty($info['label'])) {
+      $widget->label = $info['label'];
+    }
+    if (!empty($info['operator'])) {
+      $widget->operator = drupal_render($form[$info['operator']]);
+    }
+    $widget->widget = drupal_render($form[$info['value']]);
+    $vars['widgets'][$id] = $widget;
+  }
+
+  // Wrap up all the checkboxes we set aside into a widget.
+  if ($checkboxes) {
+    $widget = new stdClass;
+    // set up defaults so that there's always something there.
+    $widget->label = $widget->operator = $widget->widget = NULL;
+    $widget->widget = $checkboxes;
+    $vars['widgets']['checkboxes'] = $widget;
+  }
+
+  // Don't render these:
+  unset($form['form_id']);
+  unset($form['form_build_id']);
+  unset($form['form_token']);
+
+  // This includes the submit button.
+  $vars['button'] = drupal_render($form);
+}
+
+function theme_views_mini_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 9) {
+  global $pager_page_array, $pager_total;
+
+  // Calculate various markers within this pager piece:
+  // Middle is used to "center" pages around the current page.
+  $pager_middle = ceil($quantity / 2);
+  // current is the page we are currently paged to
+  $pager_current = $pager_page_array[$element] + 1;
+  // max is the maximum page number
+  $pager_max = $pager_total[$element];
+  // End of marker calculations.
+
+
+  $li_previous = theme('pager_previous', (isset($tags[1]) ? $tags[1] : t('‹‹')), $limit, $element, 1, $parameters);
+  if (empty($li_previous)) {
+    $li_previous = " ";
+  }
+
+  $li_next = theme('pager_next', (isset($tags[3]) ? $tags[3] : t('››')), $limit, $element, 1, $parameters);
+  if (empty($li_next)) {
+    $li_next = " ";
+  }
+
+  if ($pager_total[$element] > 1) {
+    $items[] = array(
+      'class' => 'pager-previous',
+      'data' => $li_previous,
+    );
+
+    $items[] = array(
+      'class' => 'pager-current',
+      'data' => t('@current of @max', array('@current' => $pager_current, '@max' => $pager_max)),
+    );
+
+    $items[] = array(
+      'class' => 'pager-next',
+      'data' => $li_next,
+    );
+    return theme('item_list', $items, NULL, 'ul', array('class' => 'pager'));
+  }
+}
+
+/**
+ * @defgroup views_templates Views' template files
+ * @{
+ * All views templates can be overridden with a variety of names, using
+ * the view, the display ID of the view, the display type of the view,
+ * or some combination thereof.
+ *
+ * For each view, there will be a minimum of two templates used. The first
+ * is used for all views: views-view.tpl.php.
+ *
+ * The second template is determined by the style selected for the view. Note
+ * that certain aspects of the view can also change which style is used; for
+ * example, arguments which provide a summary view might change the style to
+ * one of the special summary styles.
+ *
+ * The default style for all views is views-view-unformatted.tpl.php
+ *
+ * Many styles will then farm out the actual display of each row to a row
+ * style; the default row style is views-view-fields.tpl.php.
+ *
+ * Here is an example of all the templates that will be tried in the following
+ * case:
+ *
+ * View, named foobar. Style: unformatted. Row style: Fields. Display: Page.
+ *
+ * - views-view--foobar--page.tpl.php
+ * - views-view--page.tpl.php
+ * - views-view--foobar.tpl.php
+ * - views-view.tpl.php
+ *
+ * - views-view-unformatted--foobar--page.tpl.php
+ * - views-view-unformatted--page.tpl.php
+ * - views-view-unformatted--foobar.tpl.php
+ * - views-view-unformatted.tpl.php
+ *
+ * - views-view-fields--foobar--page.tpl.php
+ * - views-view-fields--page.tpl.php
+ * - views-view-fields--foobar.tpl.php
+ * - views-view-fields.tpl.php
+ *
+ * Important! When adding a new template to your theme, be sure to flush the
+ * theme registry cache!
+ *
+ * @see _views_theme_functions
+ * @}
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-exposed-form.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-exposed-form.tpl.php
new file mode 100644
index 0000000..51f52a7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-exposed-form.tpl.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @file views-exposed-form.tpl.php
+ *
+ * This template handles the layout of the views exposed filter form.
+ *
+ * Variables available:
+ * - $widgets: An array of exposed form widgets. Each widget contains:
+ * - $widget->label: The visible label to print. May be optional.
+ * - $widget->operator: The operator for the widget. May be optional.
+ * - $widget->widget: The widget itself.
+ * - $button: The submit button for the form.
+ *
+ * @ingroup views_templates
+ */
+?>
+<?php if (!empty($q)): ?>
+  <?php
+    // This ensures that, if clean URLs are off, the 'q' is added first so that
+    // it shows up first in the URL.
+    print $q;
+  ?>
+<?php endif; ?>
+<div class="views-exposed-form">
+  <div class="views-exposed-widgets clear-block">
+    <?php foreach ($widgets as $id => $widget): ?>
+      <div class="views-exposed-widget views-widget-<?php print $id; ?>">
+        <?php if (!empty($widget->label)): ?>
+          <label for="<?php print $widget->id; ?>">
+            <?php print $widget->label; ?>
+          </label>
+        <?php endif; ?>
+        <?php if (!empty($widget->operator)): ?>
+          <div class="views-operator">
+            <?php print $widget->operator; ?>
+          </div>
+        <?php endif; ?>
+        <div class="views-widget">
+          <?php print $widget->widget; ?>
+        </div>
+      </div>
+    <?php endforeach; ?>
+    <div class="views-exposed-widget views-submit-button">
+      <?php print $button; ?>
+    </div>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-more.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-more.tpl.php
new file mode 100644
index 0000000..f002514
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-more.tpl.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * @file views-more.tpl.php
+ * Theme the more link
+ *
+ * - $more_url: the url for the more link
+ *
+ * @ingroup views_templates
+ */
+?>
+
+<div class="more-link">
+  <a href="<?php print $more_url ?>">
+    <?php print $link_text; ?>
+  </a>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-item.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-item.tpl.php
new file mode 100644
index 0000000..a82aca9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-item.tpl.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * @file views-ui-edit-item.tpl.php
+ *
+ * This template handles the printing of fields/filters/sort criteria/arguments or relationships.
+ */
+?>
+<?php print $rearrange; ?>
+<?php print $add; ?>
+<div class="views-category-title<?php
+  if ($overridden) {
+    print ' overridden';
+  }
+  if ($defaulted) {
+    print ' defaulted';
+  }
+  ?>">
+  <?php print $item_help_icon; ?>
+  <?php print $title; ?>
+</div>
+
+<div class="views-category-content<?php
+  if ($overridden) {
+    print ' overridden';
+  }
+  if ($defaulted) {
+    print ' defaulted';
+  }
+  ?>">
+  <?php if (!empty($no_fields)): ?>
+    <div><?php print t('The style selected does not utilize fields.'); ?></div>
+  <?php elseif (empty($fields)): ?>
+    <div><?php print t('None defined'); ?></div>
+  <?php else: ?>
+    <?php foreach ($fields as $pid => $field): ?>
+      <?php if (!empty($field['links'])): ?>
+        <?php print $field['links']; ?>
+      <?php endif; ?>
+      <div class="<?php print $field['class']; if (!empty($field['changed'])) { print ' changed'; } ?>">
+        <?php print $field['title']; ?>
+        <?php print $field['info']; ?>
+      </div>
+    <?php endforeach; ?>
+  <?php endif; ?>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-tab.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-tab.tpl.php
new file mode 100644
index 0000000..cac06bb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-tab.tpl.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ * @file views-ui-edit-tab.tpl.php
+ * Template for the primary view editing window.
+ */
+?>
+<div class="clear-block views-display views-display-<?php print $display->id; if (!empty($display->deleted)) { print ' views-display-deleted'; }; ?>">
+  <?php // top section ?>
+  <?php if ($remove): ?>
+    <div class="remove-display"><?php print $remove ?></div>
+  <?php endif; ?>
+  <?php if ($clone): ?>
+    <div class="clone-display"><?php print $clone ?></div>
+  <?php endif; ?>
+  <div class="top">
+    <div class="inside">
+      <?php print $display_help_icon; ?>
+      <span class="display-title">
+        <?php print $title; ?>
+      </span>
+      <span class="display-description">
+        <?php print $description; ?>
+      </span>
+    </div>
+  </div>
+
+  <?php // left section ?>
+  <div class="left tab-section">
+    <div class="inside">
+      <?php // If this is the default display, add some basic stuff here. ?>
+      <?php if ($default): ?>
+        <div class="views-category">
+          <div class="views-category-title"><?php print t('View settings'); ?></div>
+          <div class="views-category-content">
+            <div class="<?php $details_class; if (!empty($details_changed)) { print ' changed'; }?>">
+              <?php print $details ?>
+            </div>
+          </div>
+        </div>
+      <?php endif; ?>
+
+      <?php foreach ($categories as $category_id => $category): ?>
+        <div class="views-category">
+          <div class="views-category-title views-category-<?php print $category_id; ?>">
+            <?php print $category['title']; ?>
+          </div>
+          <div class="views-category-content">
+            <?php foreach ($category['data'] as $data): ?>
+              <div class="<?php
+                print $data['class'];
+                if (!empty($data['overridden'])) {
+                  print ' overridden';
+                }
+                if (!empty($data['defaulted'])) {
+                  print ' defaulted';
+                }
+                if (!empty($data['changed'])) {
+                  print ' changed';
+                }?>">
+                <?php print $data['links'] . $data['content'] ?>
+              </div>
+            <?php endforeach; ?>
+          </div>
+        </div>
+      <?php endforeach; ?>
+    </div>
+  </div>
+
+  <?php // middle section ?>
+  <div class="middle tab-section">
+    <div class="inside">
+      <div class="views-category">
+        <?php print $relationships; ?>
+      </div>
+      <div class="views-category">
+        <?php print $arguments; ?>
+      </div>
+      <?php if (!empty($fields)): ?>
+        <div class="views-category">
+          <?php print $fields; ?>
+        </div>
+      <?php endif; ?>
+    </div>
+  </div>
+
+  <?php // right section ?>
+  <div class="right tab-section">
+    <div class="inside">
+      <div class="views-category">
+        <?php print $sorts; ?>
+      </div>
+      <div class="views-category">
+        <?php print $filters; ?>
+      </div>
+    </div>
+  </div>
+
+</div>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-view.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-view.tpl.php
new file mode 100644
index 0000000..457b9c9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-edit-view.tpl.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * @file views-ui-edit-view.tpl.php
+ * Template for the primary view editing window.
+ */
+?>
+<div class="views-edit-view">
+  <?php if ($locked): ?>
+    <div class="view-locked">
+       <?php print t('This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href="!break">break this lock</a>.', array('!user' => $locked, '!age' => $lock_age, '!break' => $break)); ?>
+    </div>
+  <?php endif; ?>
+  <div class="views-basic-info clear-block<?php if (!empty($view->changed)) { print " changed"; }?>">
+    <?php if (!is_numeric($view->vid)): ?>
+      <div class="view-changed view-new"><?php print t('New view'); ?></div>
+    <?php else: ?>
+      <div class="view-changed"><?php print t('Changed view'); ?></div>
+    <?php endif; ?>
+    <div class="views-quick-links">
+      <?php print $quick_links ?>
+    </div>
+    <?php print t('View %name, displaying items of type <strong>@base</strong>.',
+        array('%name' => $view->name, '@base' => $base_table)); ?>
+  </div>
+
+  <?php print $tabs; ?>
+
+  <div id="views-ajax-form">
+    <div id="views-ajax-title">
+      <?php // This is initially empty ?>
+    </div>
+    <div id="views-ajax-pad">
+      <?php /* This is sent in because it is also sent out through settings and
+      needs to be consistent. */ ?>
+      <?php print $message; ?>
+    </div>
+  </div>
+
+  <?php print $save_button ?>
+
+  <h2><?php print t('Live preview'); ?></h2>
+  <div id='views-live-preview'>
+    <?php print $preview ?>
+  </div>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-list-views.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-list-views.tpl.php
new file mode 100644
index 0000000..1377f21
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-ui-list-views.tpl.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * @file
+ *
+ * Displays the list of views on the administration screen.
+ */
+?>
+<p><?php print $help; ?></p>
+<?php print $widgets; ?>
+<?php foreach ($views as $view): ?>
+  <table class="views-entry <?php print $view->classes; ?>">
+    <tbody>
+      <tr>
+        <td class="view-name">
+          <?php print $help_type_icon; ?>
+          <?php print t('<em>@type</em> @base view: <strong>@view</strong>', array('@type' => $view->type, '@view' => $view->name, '@base' => $view->base)); ?>
+          <?php if (!empty($view->tag)): ?>
+             (<?php print $view->tag; ?>)
+          <?php endif; ?>
+        </td>
+        <td class="view-ops"><?php print $view->ops ?></td>
+      </tr>
+      <tr>
+        <td>
+          <?php if ($view->title): ?>
+            <?php print t('Title: @title', array('@title' => $view->title)); ?> <br />
+          <?php endif; ?>
+          <?php if ($view->path): ?>
+            <?php print t('Path: !path', array('!path' => $view->path)); ?> <br />
+          <?php endif; ?>
+          <?php if ($view->displays): ?>
+            <em><?php print $view->displays; ?> </em><br />
+          <?php endif; ?>
+        </td>
+        <td colspan="2" class="description">
+          <?php print $view->description; ?>
+        </td>
+      </tr>
+    </tbody>
+  </table>
+<?php endforeach; ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-field.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-field.tpl.php
new file mode 100644
index 0000000..6aebd27
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-field.tpl.php
@@ -0,0 +1,22 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php print $output; ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-fields.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-fields.tpl.php
new file mode 100644
index 0000000..7775c91
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-fields.tpl.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * @file views-view-fields.tpl.php
+ * Default simple view template to all the fields as a row.
+ *
+ * - $view: The view in use.
+ * - $fields: an array of $field objects. Each one contains:
+ *   - $field->content: The output of the field.
+ *   - $field->raw: The raw data for the field, if it exists. This is NOT output safe.
+ *   - $field->class: The safe class id to use.
+ *   - $field->handler: The Views field handler object controlling this field. Do not use
+ *     var_export to dump this object, as it can't handle the recursion.
+ *   - $field->inline: Whether or not the field should be inline.
+ *   - $field->inline_html: either div or span based on the above flag.
+ *   - $field->separator: an optional separator that may appear before a field.
+ * - $row: The raw result object from the query, with all data it fetched.
+ *
+ * @ingroup views_templates
+ */
+?>
+<?php foreach ($fields as $id => $field): ?>
+  <?php if (!empty($field->separator)): ?>
+    <?php print $field->separator; ?>
+  <?php endif; ?>
+
+  <<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>">
+    <?php if ($field->label): ?>
+      <label class="views-label-<?php print $field->class; ?>">
+        <?php print $field->label; ?>:
+      </label>
+    <?php endif; ?>
+      <?php
+      // $field->element_type is either SPAN or DIV depending upon whether or not
+      // the field is a 'block' element type or 'inline' element type.
+      ?>
+      <<?php print $field->element_type; ?> class="field-content"><?php print $field->content; ?></<?php print $field->element_type; ?>>
+  </<?php print $field->inline_html;?>>
+<?php endforeach; ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-grid.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-grid.tpl.php
new file mode 100644
index 0000000..9fe5e97
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-grid.tpl.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * @file views-view-grid.tpl.php
+ * Default simple view template to display a rows in a grid.
+ *
+ * - $rows contains a nested array of rows. Each row contains an array of
+ *   columns.
+ * - $class contains the class of the table.
+ * - $attributes contains other attributes for the table.
+ * @ingroup views_templates
+ */
+?>
+<?php if (!empty($title)) : ?>
+  <h3><?php print $title; ?></h3>
+<?php endif; ?>
+<table class="<?php print $class; ?>"<?php print $attributes; ?>>
+  <tbody>
+    <?php foreach ($rows as $row_number => $columns): ?>
+      <?php
+        $row_class = 'row-' . ($row_number + 1);
+        if ($row_number == 0) {
+          $row_class .= ' row-first';
+        }
+        if (count($rows) == ($row_number + 1)) {
+          $row_class .= ' row-last';
+        }
+      ?>
+      <tr class="<?php print $row_class; ?>">
+        <?php foreach ($columns as $column_number => $item): ?>
+          <td class="<?php print $column_classes[$row_number][$column_number]; ?>">
+            <?php print $item; ?>
+          </td>
+        <?php endforeach; ?>
+      </tr>
+    <?php endforeach; ?>
+  </tbody>
+</table>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-list.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-list.tpl.php
new file mode 100644
index 0000000..7851ba5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-list.tpl.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * @file views-view-list.tpl.php
+ * Default simple view template to display a list of rows.
+ *
+ * - $title : The title of this group of rows.  May be empty.
+ * - $options['type'] will either be ul or ol.
+ * @ingroup views_templates
+ */
+?>
+<div class="item-list">
+  <?php if (!empty($title)) : ?>
+    <h3><?php print $title; ?></h3>
+  <?php endif; ?>
+  <<?php print $options['type']; ?>>
+    <?php foreach ($rows as $id => $row): ?>
+      <li class="<?php print $classes[$id]; ?>"><?php print $row; ?></li>
+    <?php endforeach; ?>
+  </<?php print $options['type']; ?>>
+</div>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-comment.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-comment.tpl.php
new file mode 100644
index 0000000..b6fa85c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-comment.tpl.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * @file views-view-row-comment.tpl.php
+ * Default simple view template to display a single comment.
+ *
+ * Rather than doing anything with this particular template, it is more
+ * efficient to use a variant of the comment.tpl.php based upon the view,
+ * which will be named comment-view-VIEWNAME.tpl.php. This isn't actually
+ * a views template, which is why it's not used here, but is a template
+ * 'suggestion' given to the comment template, and is used exactly
+ * the same as any other variant of the comment template file, such as
+ * node-nodeTYPE.tpl.php
+ *
+ * @ingroup views_templates
+ */
+?>
+<?php print $comment; ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-node.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-node.tpl.php
new file mode 100644
index 0000000..cb6f1bf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-node.tpl.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * @file views-view-row-node.tpl.php
+ * Default simple view template to display a single node.
+ *
+ * Rather than doing anything with this particular template, it is more
+ * efficient to use a variant of the node.tpl.php based upon the view,
+ * which will be named node-view-VIEWNAME.tpl.php. This isn't actually
+ * a views template, which is why it's not used here, but is a template
+ * 'suggestion' given to the node template, and is used exactly
+ * the same as any other variant of the node template file, such as
+ * node-NODETYPE.tpl.php
+ *
+ * @ingroup views_templates
+ */
+?>
+<?php print $node; ?>
+<?php if ($comments): ?>
+  <?php print $comments; ?>
+<?php endif; ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-rss.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-rss.tpl.php
new file mode 100644
index 0000000..03c6acf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-row-rss.tpl.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * @file views-view-row-rss.tpl.php
+ * Default view template to display a item in an RSS feed.
+ *
+ * @ingroup views_templates
+ */
+?>
+  <item>
+    <title><?php print $title; ?></title>
+    <link><?php print $link; ?></link>
+    <description><?php print $description; ?></description>
+    <?php print $item_elements; ?>
+  </item>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-rss.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-rss.tpl.php
new file mode 100644
index 0000000..54e4dc9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-rss.tpl.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * @file views-view-rss.tpl.php
+ * Default template for feed displays that use the RSS style.
+ *
+ * @ingroup views_templates
+ */
+?>
+<?php print "<?xml"; ?> version="1.0" encoding="utf-8" <?php print "?>"; ?>
+<rss version="2.0" xml:base="<?php print $link; ?>"<?php print $namespaces; ?>>
+  <channel>
+    <title><?php print $title; ?></title>
+    <link><?php print $link; ?></link>
+    <description><?php print $description; ?></description>
+    <language><?php print $langcode; ?></language>
+    <?php print $channel_elements; ?>
+    <?php print $items; ?>
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-summary-unformatted.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-summary-unformatted.tpl.php
new file mode 100644
index 0000000..1e7de02
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-summary-unformatted.tpl.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * @file views-view-summary-unformatted.tpl.php
+ * Default simple view template to display a group of summary lines
+ *
+ * This wraps items in a span if set to inline, or a div if not.
+ *
+ * @ingroup views_templates
+ */
+?>
+<?php foreach ($rows as $id => $row): ?>
+  <?php print (!empty($options['inline']) ? '<span' : '<div') . ' class="views-summary views-summary-unformatted">'; ?>
+    <?php if (!empty($row->separator)) { print $row->separator; } ?>
+    <a href="<?php print $row->url; ?>"<?php print !empty($classes[$id]) ? ' class="'. $classes[$id] .'"' : ''; ?>><?php print $row->link; ?></a>
+    <?php if (!empty($options['count'])): ?>
+      (<?php print $row->count; ?>)
+    <?php endif; ?>
+  <?php print !empty($options['inline']) ? '</span>' : '</div>'; ?>
+<?php endforeach; ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-summary.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-summary.tpl.php
new file mode 100644
index 0000000..2d910dc
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-summary.tpl.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * @file views-view-summary.tpl.php
+ * Default simple view template to display a list of summary lines
+ *
+ * @ingroup views_templates
+ */
+?>
+<div class="item-list">
+  <ul class="views-summary">
+  <?php foreach ($rows as $id => $row): ?>
+    <li><a href="<?php print $row->url; ?>"<?php print !empty($classes[$id]) ? ' class="'. $classes[$id] .'"' : ''; ?>><?php print $row->link; ?></a>
+      <?php if (!empty($options['count'])): ?>
+        (<?php print $row->count?>)
+      <?php endif; ?>
+    </li>
+  <?php endforeach; ?>
+  </ul>
+</div>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-table.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-table.tpl.php
new file mode 100644
index 0000000..f1ce270
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-table.tpl.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * @file views-view-table.tpl.php
+ * Template to display a view as a table.
+ *
+ * - $title : The title of this group of rows.  May be empty.
+ * - $header: An array of header labels keyed by field id.
+ * - $fields: An array of CSS IDs to use for each field id.
+ * - $class: A class or classes to apply to the table, based on settings.
+ * - $row_classes: An array of classes to apply to each row, indexed by row
+ *   number. This matches the index in $rows.
+ * - $rows: An array of row items. Each row is an array of content.
+ *   $rows are keyed by row number, fields within rows are keyed by field ID.
+ * @ingroup views_templates
+ */
+?>
+<table class="<?php print $class; ?>"<?php print $attributes; ?>>
+  <?php if (!empty($title)) : ?>
+    <caption><?php print $title; ?></caption>
+  <?php endif; ?>
+  <thead>
+    <tr>
+      <?php foreach ($header as $field => $label): ?>
+        <th class="views-field views-field-<?php print $fields[$field]; ?>">
+          <?php print $label; ?>
+        </th>
+      <?php endforeach; ?>
+    </tr>
+  </thead>
+  <tbody>
+    <?php foreach ($rows as $count => $row): ?>
+      <tr class="<?php print implode(' ', $row_classes[$count]); ?>">
+        <?php foreach ($row as $field => $content): ?>
+          <td class="views-field views-field-<?php print $fields[$field]; ?>">
+            <?php print $content; ?>
+          </td>
+        <?php endforeach; ?>
+      </tr>
+    <?php endforeach; ?>
+  </tbody>
+</table>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-unformatted.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-unformatted.tpl.php
new file mode 100644
index 0000000..e927e49
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view-unformatted.tpl.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * @file views-view-unformatted.tpl.php
+ * Default simple view template to display a list of rows.
+ *
+ * @ingroup views_templates
+ */
+?>
+<?php if (!empty($title)): ?>
+  <h3><?php print $title; ?></h3>
+<?php endif; ?>
+<?php foreach ($rows as $id => $row): ?>
+  <div class="<?php print $classes[$id]; ?>">
+    <?php print $row; ?>
+  </div>
+<?php endforeach; ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/theme/views-view.tpl.php b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view.tpl.php
new file mode 100644
index 0000000..be1840a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/theme/views-view.tpl.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ * @file views-view.tpl.php
+ * Main view template
+ *
+ * Variables available:
+ * - $classes_array: An array of classes determined in
+ *   template_preprocess_views_view(). Default classes are:
+ *     .view
+ *     .view-[css_name]
+ *     .view-id-[view_name]
+ *     .view-display-id-[display_name]
+ *     .view-dom-id-[dom_id]
+ * - $classes: A string version of $classes_array for use in the class attribute
+ * - $css_name: A css-safe version of the view name.
+ * - $css_class: The user-specified classes names, if any
+ * - $header: The view header
+ * - $footer: The view footer
+ * - $rows: The results of the view query, if any
+ * - $empty: The empty text to display if the view is empty
+ * - $pager: The pager next/prev links to display, if any
+ * - $exposed: Exposed widget form/info to display
+ * - $feed_icon: Feed icon to display, if any
+ * - $more: A link to view more, if any
+ * - $admin_links: A rendered list of administrative links
+ * - $admin_links_raw: A list of administrative links suitable for theme('links')
+ *
+ * @ingroup views_templates
+ */
+?>
+<div class="<?php print $classes; ?>">
+  <?php if ($admin_links): ?>
+    <div class="views-admin-links views-hide">
+      <?php print $admin_links; ?>
+    </div>
+  <?php endif; ?>
+  <?php if ($header): ?>
+    <div class="view-header">
+      <?php print $header; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($exposed): ?>
+    <div class="view-filters">
+      <?php print $exposed; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($attachment_before): ?>
+    <div class="attachment attachment-before">
+      <?php print $attachment_before; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($rows): ?>
+    <div class="view-content">
+      <?php print $rows; ?>
+    </div>
+  <?php elseif ($empty): ?>
+    <div class="view-empty">
+      <?php print $empty; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($pager): ?>
+    <?php print $pager; ?>
+  <?php endif; ?>
+
+  <?php if ($attachment_after): ?>
+    <div class="attachment attachment-after">
+      <?php print $attachment_after; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($more): ?>
+    <?php print $more; ?>
+  <?php endif; ?>
+
+  <?php if ($footer): ?>
+    <div class="view-footer">
+      <?php print $footer; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($feed_icon): ?>
+    <div class="feed-icon">
+      <?php print $feed_icon; ?>
+    </div>
+  <?php endif; ?>
+
+</div> <?php /* class view */ ?>
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views.drush.inc b/drupal/sites/default/boinc/modules/contrib/views/views.drush.inc
new file mode 100644
index 0000000..4a4c7a3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views.drush.inc
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * @file
+ * Drush integration of views.
+ */
+
+/**
+ * Adds a cache clear option for views.
+ */
+function views_drush_cache_clear(&$types) {
+  $types['views'] = 'views_invalidate_cache';
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views.info b/drupal/sites/default/boinc/modules/contrib/views/views.info
new file mode 100644
index 0000000..652ccdf
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views.info
@@ -0,0 +1,10 @@
+name = Views
+description = Create customized lists and queries from your database.
+package = Views
+core = 6.x
+
+; Information added by Drupal.org packaging script on 2015-02-11
+version = "6.x-2.18-boinc-3-dev"
+core = "6.x"
+project = "views"
+datestamp = "1497457987"
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views.install b/drupal/sites/default/boinc/modules/contrib/views/views.install
new file mode 100644
index 0000000..8239ce1
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views.install
@@ -0,0 +1,518 @@
+<?php
+/**
+ * @file views.install
+ * Contains install and update functions for Views.
+ */
+
+/**
+ * Implementation of hook_install().
+ */
+function views_install() {
+  if ($GLOBALS['db_type'] == 'pgsql') {
+    db_query('CREATE OR REPLACE FUNCTION first(anyelement, anyelement) RETURNS anyelement AS \'SELECT COALESCE($1, $2);\' LANGUAGE \'sql\';');
+    db_query("DROP AGGREGATE IF EXISTS first(anyelement)");
+    db_query("CREATE AGGREGATE first(sfunc = first, basetype = anyelement, stype = anyelement);");
+  }
+  drupal_install_schema('views');
+  db_query("UPDATE {system} SET weight = 10 WHERE name = 'views'");
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function views_uninstall() {
+  drupal_uninstall_schema('views');
+}
+
+/**
+ * Implementation of hook_schema().
+ *
+ * Generate the current version of the database schema from
+ * the sequence of schema update functions. Uses a similar
+ * method to install.inc's drupal_get_schema_versions() to
+ * establish the update sequence.
+ *
+ * To change the schema, add a new views_schema_N()
+ * function to match the associated views_update_N()
+ *
+ * @param $caller_function
+ *   The name of the function that called us.
+ *   Used internally, if requesting a specific schema version.
+ */
+function views_schema($caller_function = FALSE) {
+  static $get_current;
+  static $schemas = array();
+
+  // If called with no arguments, get the latest version of the schema.
+  if (!isset($get_current)) {
+    $get_current = $caller_function ? FALSE : TRUE;
+  }
+
+  // Generate a sorted list of available schema update functions.
+  if ($get_current || empty($schemas)) {
+    $get_current = FALSE;
+    $functions = get_defined_functions();
+    foreach ($functions['user'] as $function) {
+      if (strpos($function, 'views_schema_') === 0) {
+        $version = substr($function, strlen('views_schema_'));
+        if (is_numeric($version)) {
+          $schemas[] = $version;
+        }
+      }
+    }
+    if ($schemas) {
+      sort($schemas, SORT_NUMERIC);
+
+      // If a specific version was requested, drop any later
+      // updates from the sequence.
+      if ($caller_function) {
+        do {
+          $schema = array_pop($schemas);
+        } while ($schemas && $caller_function != 'views_schema_'. $schema);
+      }
+    }
+  }
+
+  // Call views_schema_<n>, for the highest available <n>.
+  if ($schema = array_pop($schemas)) {
+    $function = 'views_schema_'. $schema;
+    return $function();
+  }
+
+  return array();
+}
+
+/**
+ * Views 2's initial schema.
+ * Called directly by views_update_6000() for updates from Drupal 5.
+ *
+ * Important: Do not edit this schema!
+ *
+ * Updates to the views schema must be provided as views_schema_6xxx() functions,
+ * which views_schema() automatically sees and applies. See below for examples.
+ *
+ * Please do document updates with comments in this function, however.
+ */
+function views_schema_6000() {
+  $schema['views_view'] = array(
+    'description' => 'Stores the general data for a view.',
+    'fields' => array(
+      'vid' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => 'The view ID of the field, defined by the database.',
+        'no export' => TRUE,
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => '32',
+        'default' => '',
+        'not null' => TRUE,
+        'description' => 'The unique name of the view. This is the primary field views are loaded from, and is used so that views may be internal and not necessarily in the database. May only be alphanumeric characters plus underscores.',
+      ),
+      'description' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'default' => '',
+        'description' => 'A description of the view for the admin interface.',
+      ),
+      'tag' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'default' => '',
+        'description' => 'A tag used to group/sort views in the admin interface',
+      ),
+      'view_php' => array(
+        'type' => 'blob',
+        'description' => 'A chunk of PHP code that can be used to provide modifications to the view prior to building.',
+      ),
+      'base_table' => array(
+        'type' => 'varchar',
+        'length' => '32', // Updated to '64' in views_schema_6005()
+        'default' => '',
+        'not null' => TRUE,
+        'description' => 'What table this view is based on, such as node, user, comment, or term.',
+      ),
+      'is_cacheable' => array(
+        'type' => 'int',
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => 'A boolean to indicate whether or not this view may have its query cached.',
+      ),
+    ),
+    'primary key' => array('vid'),
+    'unique key' => array('name' => array('name')), // Updated to 'unique keys' in views_schema_6003()
+  );
+
+  $schema['views_display'] = array(
+    'description' => 'Stores information about each display attached to a view.',
+    'fields' => array(
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => 'The view this display is attached to.',
+        'no export' => TRUE,
+      ),
+      'id' => array(
+        'type' => 'varchar',
+        'length' => '64',
+        'default' => '',
+        'not null' => TRUE,
+        'description' => 'An identifier for this display; usually generated from the display_plugin, so should be something like page or page_1 or block_2, etc.',
+      ),
+      'display_title' => array(
+        'type' => 'varchar',
+        'length' => '64',
+        'default' => '',
+        'not null' => TRUE,
+        'description' => 'The title of the display, viewable by the administrator.',
+      ),
+      'display_plugin' => array(
+        'type' => 'varchar',
+        'length' => '64',
+        'default' => '',
+        'not null' => TRUE,
+        'description' => 'The type of the display. Usually page, block or embed, but is pluggable so may be other things.',
+      ),
+      'position' => array(
+        'type' => 'int',
+        'default' => 0,
+        'description' => 'The order in which this display is loaded.',
+      ),
+      'display_options' => array(
+        // Type corrected in update 6009
+        'type' => 'blob',
+        'description' => 'A serialized array of options for this display; it contains options that are generally only pertinent to that display plugin type.',
+        'serialize' => TRUE,
+        'serialized default' => 'a:0:{}',
+      ),
+    ),
+    'indexes' => array('vid' => array('vid', 'position')),
+  );
+
+  $schema['cache_views'] = drupal_get_schema_unprocessed('system', 'cache');
+
+  $schema['views_object_cache'] = array(
+    'description' => 'A special cache used to store objects that are being edited; it serves to save state in an ordinarily stateless environment.',
+    'fields' => array(
+      'sid' => array(
+        'type' => 'varchar',
+        'length' => '64',
+        'description' => 'The session ID this cache object belongs to.',
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => '32',
+        'description' => 'The name of the view this cache is attached to.',
+      ),
+      'obj' => array(
+        'type' => 'varchar',
+        'length' => '32',
+        'description' => 'The name of the object this cache is attached to; this essentially represents the owner so that several sub-systems can use this cache.',
+      ),
+      'updated' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => 'The time this cache was created or updated.',
+      ),
+      'data' => array(
+        'type' => 'blob', // Updated to 'text' (with size => 'big') in views_schema_6004()
+        'description' => 'Serialized data being stored.',
+        'serialize' => TRUE,
+      ),
+    ),
+    'indexes' => array(
+      'sid_obj_name' => array('sid', 'obj', 'name'),
+      'updated' => array('updated'),
+    ),
+  );
+
+  // $schema['cache_views_data'] added in views_schema_6006()
+
+  return $schema;
+}
+
+/**
+ * Update a site to Drupal 6! Contains a bit of special code to detect
+ * if you've been running a beta version or something.
+ */
+function views_update_6000() {
+  $ret = array();
+  if (db_table_exists('views_view')) {
+    return $ret;
+  }
+
+  // This has the beneficial effect of wiping out any Views 1 cache at the
+  // same time; not wiping that cache could easily cause problems with Views 2.
+  if (db_table_exists('cache_views')) {
+    db_drop_table($ret, 'cache_views');
+  }
+
+  // This is mostly the same as drupal_install_schema, but it forces
+  // views_schema_6000() rather than the default views_schema().
+  // This is important for processing subsequent table updates.
+  $schema = views_schema_6000();
+  _drupal_initialize_schema('views', $schema);
+
+  foreach ($schema as $name => $table) {
+    db_create_table($ret, $name, $table);
+  }
+  return $ret;
+}
+
+/**
+ * Remove '$' symbol in special blocks, as it is invalid for theming.
+ */
+function views_update_6001() {
+  $ret = array();
+  $result = db_query("SELECT * FROM {blocks} WHERE module = 'views' AND delta LIKE '\$exp%'");
+  while ($block = db_fetch_object($result)) {
+    $new = strtr($block->delta, '$', '-');
+    $ret[] = update_sql("UPDATE {blocks} SET delta = '" . db_escape_string($new) . "' WHERE module = 'views' AND delta = '" . db_escape_string($block->delta) . "'");
+  }
+  $result = db_query("SELECT * FROM {blocks} WHERE module = 'views'");
+  while ($block = db_fetch_object($result)) {
+    $new = $block->delta .= '-block_1';
+    if (strlen($new) >= 32) {
+      $new = md5($new);
+    }
+    $ret[] = update_sql("UPDATE {blocks} SET delta = '$new' WHERE bid = $block->bid");
+  }
+
+  return $ret;
+}
+
+// NOTE: Update 6002 removed because it did not always work.
+// Update 6004 implements the change correctly.
+
+/**
+ * Add missing unique key.
+ */
+function views_schema_6003() {
+  $schema = views_schema(__FUNCTION__);
+  $schema['views_view']['unique keys'] = array('name' => array('name'));
+  unset($schema['views_view']['unique key']);
+  return $schema;
+}
+function views_update_6003() {
+  $ret = array();
+  db_add_unique_key($ret, 'views_view', 'name', array('name'));
+  return $ret;
+}
+
+/**
+ * Enlarge the views_object_cache.data column to prevent truncation and JS
+ * errors.
+ */
+function views_schema_6004() {
+  $schema = views_schema(__FUNCTION__);
+  $schema['views_object_cache']['fields']['data']['type'] = 'text';
+  $schema['views_object_cache']['fields']['data']['size'] = 'big';
+  return $schema;
+}
+function views_update_6004() {
+  $ret = array();
+
+  $new_field = array(
+    'type' => 'text',
+    'size' => 'big',
+    'description' => 'Serialized data being stored.',
+    'serialize' => TRUE,
+  );
+
+  // Drop and re-add this field because there is a bug in
+  // db_change_field that causes this to fail when trying to cast the data.
+  db_drop_field($ret, 'views_object_cache', 'data');
+  db_add_field($ret, 'views_object_cache', 'data', $new_field);
+
+  return $ret;
+}
+
+/**
+ * Enlarge the base_table column
+ */
+function views_schema_6005() {
+  $schema = views_schema(__FUNCTION__);
+  $schema['views_view']['fields']['base_table']['length'] = 64;
+  return $schema;
+}
+function views_update_6005() {
+  $ret = array();
+
+  $new_field = array(
+    'type' => 'varchar',
+    'length' => '64',
+    'default' => '',
+    'not null' => TRUE,
+    'description' => 'What table this view is based on, such as node, user, comment, or term.',
+  );
+  db_change_field($ret, 'views_view', 'base_table', 'base_table', $new_field);
+  return $ret;
+}
+
+/**
+ * Add the cache_views_data table to support standard caching.
+ */
+function views_schema_6006() {
+  $schema = views_schema(__FUNCTION__);
+  $schema['cache_views_data'] = drupal_get_schema_unprocessed('system', 'cache');
+  $schema['cache_views_data']['description'] = 'Cache table for views to store pre-rendered queries, results, and display output.';
+  $schema['cache_views_data']['fields']['serialized']['default'] = 1;
+  return $schema;
+}
+function views_update_6006() {
+  $ret = array();
+
+  $table = drupal_get_schema_unprocessed('system', 'cache');
+  $table['description'] = 'Cache table for views to store pre-rendered queries, results, and display output.';
+  $table['fields']['serialized']['default'] = 1;
+
+  db_create_table($ret, 'cache_views_data', $table);
+
+  return $ret;
+}
+
+/**
+ * Add aggregate function to PostgreSQL so GROUP BY can be used to force only
+ * one result to be returned for each item.
+ */
+function views_update_6007() {
+  $ret = array();
+  if ($GLOBALS['db_type'] == 'pgsql') {
+    $ret[] = update_sql('CREATE OR REPLACE FUNCTION first(anyelement, anyelement) RETURNS anyelement AS \'SELECT COALESCE($1, $2);\' LANGUAGE \'sql\';');
+    $ret[] = update_sql("DROP AGGREGATE IF EXISTS first(anyelement)");
+    $ret[] = update_sql("CREATE AGGREGATE first(sfunc = first, basetype = anyelement, stype = anyelement);");
+  }
+  return $ret;
+}
+
+/**
+ * Add the primary key to views_display table.
+ */
+function views_schema_6008() {
+  $schema = views_schema(__FUNCTION__);
+  $schema['views_display']['primary key'] = array('vid', 'id');
+  return $schema;
+}
+
+/**
+ * Add the primary key to the views_display table.
+ */
+function views_update_6008() {
+  $ret = array();
+
+  db_add_primary_key($ret, 'views_display', array('vid', 'id'));
+
+  return $ret;
+}
+
+/**
+ * Enlarge the views_display.display_options field to accomodate a larger set
+ * of configurations (e. g. fields, filters, etc.) on a display.
+ */
+function views_schema_6009() {
+  $schema = views_schema(__FUNCTION__);
+  $schema['views_display']['fields']['display_options'] = array(
+    'type' => 'text',
+    'size' => 'big',
+    'description' => 'A serialized array of options for this display; it contains options that are generally only pertinent to that display plugin type.',
+    'serialize' => TRUE,
+    'serialized default' => 'a:0:{}',
+  );
+  return $schema;
+}
+
+function views_update_6009() {
+  $ret = array();
+
+  $schema = views_schema_6009();
+
+  if ($GLOBALS['db_type'] == 'pgsql') {
+    $ret[] = update_sql('ALTER TABLE {views_display} RENAME "display_options" TO "display_options_old"');
+    db_add_field($ret, 'views_display', 'display_options', $schema['views_display']['fields']['display_options']);
+
+    $sql = "SELECT vid, id, display_options_old FROM {views_display}";
+    $result = db_query($sql);
+    while ($row = db_fetch_array($result)) {
+      $row['display_options_old'] = db_decode_blob($row['display_options_old']);
+      $sql = "UPDATE {views_display} SET display_options = '%s' WHERE vid = %d AND id = '%s'";
+      db_query($sql, $row['display_options_old'], $row['vid'], $row['id']);
+    }
+
+    db_drop_field($ret, 'views_display', 'display_options_old');
+  }
+  else {
+    db_change_field($ret, 'views_display', 'display_options', 'display_options', $schema['views_display']['fields']['display_options']);
+  }
+
+  return $ret;
+}
+
+/**
+ * Remove the view_php field
+ */
+function views_schema_6010() {
+  $schema = views_schema(__FUNCTION__);
+  unset($schema['views_view']['fields']['view_php']);
+  unset($schema['views_view']['fields']['is_cacheable']);
+  return $schema;
+}
+
+/**
+ * Remove the view_php and is_cacheable field
+ */
+function views_update_6010() {
+  $ret = array();
+
+  db_drop_field($ret, 'views_view', 'view_php');
+  db_drop_field($ret, 'views_view', 'is_cacheable');
+
+
+  return $ret;
+}
+
+/**
+ * Correct the cache setting for exposed filter blocks.
+ *
+ * @see http://drupal.org/node/910864
+ */
+function views_update_6011() {
+  $ret = array();
+
+  // There is only one simple query to run.
+  $ret[] = update_sql("UPDATE {blocks} SET cache = " . BLOCK_NO_CACHE . " WHERE module = 'views' AND delta LIKE '-exp-%'");
+  
+  return $ret;
+}
+
+function views_schema_6013() {
+  $schema = views_schema(__FUNCTION__);
+  $schema['views_view']['fields']['core'] = array(
+    'type' => 'int',
+    'default' => 0,
+    'description' => 'Stores the drupal core version of the view.',
+  );
+  return $schema;
+}
+
+/**
+ * Add a drupal core version field.
+ */
+function views_update_6013() {
+  $ret = array();
+  $new_field = array(
+    'type' => 'int',
+    'default' => 0,
+    'description' => 'Stores the drupal core version of the view.',
+  );
+
+  db_add_field($ret, 'views_view', 'core', $new_field);
+
+  return $ret;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views.module b/drupal/sites/default/boinc/modules/contrib/views/views.module
new file mode 100644
index 0000000..4a587f4
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views.module
@@ -0,0 +1,1374 @@
+<?php
+/**
+ * @file
+ * Primarily Drupal hooks and global API functions to manipulate views.
+ *
+ * This is the main module file for Views. The main entry points into
+ * this module are views_page() and views_block(), where it handles
+ * incoming page and block requests.
+ */
+
+/**
+ * Advertise the current views api version
+ */
+function views_api_version() {
+  return 2.0;
+}
+
+/**
+ * Implementation of hook_init().
+ */
+function views_init() {
+  drupal_add_css(drupal_get_path('module', 'views') . '/css/views.css');
+}
+
+/**
+ * Implementation of hook_theme(). Register views theming functions.
+ */
+function views_theme() {
+  $path = drupal_get_path('module', 'views');
+  require_once "./$path/theme/theme.inc";
+
+  // Some quasi clever array merging here.
+  $base = array(
+    'file' => 'theme.inc',
+    'path' => "$path/theme",
+  );
+
+  // Our extra version of pager from pager.inc
+  $hooks['views_mini_pager'] = $base + array(
+    'arguments' => array('tags' => array(), 'limit' => 10, 'element' => 0, 'parameters' => array()),
+    'pattern' => 'views_mini_pager__',
+  );
+
+  $arguments = array(
+    'display' => array('view' => NULL),
+    'style' => array('view' => NULL, 'options' => NULL, 'rows' => NULL, 'title' => NULL),
+    'row' => array('view' => NULL, 'options' => NULL, 'row' => NULL, 'field_alias' => NULL),
+  );
+
+  // Default view themes
+  $hooks['views_view_field'] = $base + array(
+    'pattern' => 'views_view_field__',
+    'arguments' => array('view' => NULL, 'field' => NULL, 'row' => NULL),
+  );
+
+  $plugins = views_fetch_plugin_data();
+
+  // Register theme functions for all style plugins
+  foreach ($plugins as $type => $info) {
+    foreach ($info as $plugin => $def) {
+      if (isset($def['theme'])) {
+        $hooks[$def['theme']] = array(
+          'pattern' => $def['theme'] . '__',
+          'file' => $def['theme file'],
+          'path' => $def['theme path'],
+          'arguments' => $arguments[$type],
+        );
+
+        $include = './' . $def['theme path'] . '/' . $def['theme file'];
+        if (file_exists($include)) {
+          require_once $include;
+        }
+
+        if (!function_exists('theme_' . $def['theme'])) {
+          $hooks[$def['theme']]['template'] = views_css_safe($def['theme']);
+        }
+      }
+      if (isset($def['additional themes'])) {
+        foreach ($def['additional themes'] as $theme => $theme_type) {
+          if (empty($theme_type)) {
+            $theme = $theme_type;
+            $theme_type = $type;
+          }
+
+          $hooks[$theme] = array(
+            'pattern' => $theme . '__',
+            'file' => $def['theme file'],
+            'path' => $def['theme path'],
+            'arguments' => $arguments[$theme_type],
+          );
+
+          if (!function_exists('theme_' . $theme)) {
+            $hooks[$theme]['template'] = views_css_safe($theme);
+          }
+        }
+      }
+    }
+  }
+
+  $hooks['views_exposed_form'] = $base + array(
+    'template' => 'views-exposed-form',
+    'pattern' => 'views_exposed_form__',
+    'arguments' => array('form' => NULL),
+  );
+
+  $hooks['views_more'] = $base + array(
+    'template' => 'views-more',
+    'pattern' => 'views_more__',
+    'arguments' => array('more_url' => NULL, 'link_text' => 'more'),
+  );
+  return $hooks;
+}
+
+/**
+ * A theme preprocess function to automatically allow view-based node
+ * templates if called from a view.
+ *
+ * The 'modules/node.views.inc' file is a better place for this, but
+ * we haven't got a chance to load that file before Drupal builds the
+ * node portion of the theme registry.
+ */
+function views_preprocess_node(&$vars) {
+  // The 'view' attribute of the node is added in template_preprocess_views_view_row_node()
+  if (!empty($vars['node']->view) && !empty($vars['node']->view->name)) {
+    $vars['view'] = &$vars['node']->view;
+    $vars['template_files'][] = 'node-view-' . $vars['node']->view->name;
+    if(!empty($vars['node']->view->current_display)) {
+      $vars['template_files'][] = 'node-view-' . $vars['node']->view->name . '-' . $vars['node']->view->current_display;
+    }
+  }
+}
+
+/**
+ * A theme preprocess function to automatically allow view-based node
+ * templates if called from a view.
+ */
+function views_preprocess_comment(&$vars) {
+  // The 'view' attribute of the node is added in template_preprocess_views_view_row_comment()
+  if (!empty($vars['node']->view) && !empty($vars['node']->view->name)) {
+    $vars['view'] = &$vars['node']->view;
+    $vars['template_files'][] = 'comment-view-' . $vars['node']->view->name;
+    if(!empty($vars['node']->view->current_display)) {
+      $vars['template_files'][] = 'comment-view-' . $vars['node']->view->name . '-' . $vars['node']->view->current_display;
+    }
+  }
+}
+
+/*
+ * Implementation of hook_perm()
+ */
+function views_perm() {
+  return array('access all views', 'administer views');
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function views_menu() {
+  // Any event which causes a menu_rebuild could potentially mean that the
+  // Views data is updated -- module changes, profile changes, etc.
+  views_invalidate_cache();
+  $items = array();
+  $items['views/ajax'] = array(
+    'title' => 'Views',
+    'page callback' => 'views_ajax',
+    'access callback' => TRUE,
+    'description' => 'Ajax callback for view loading.',
+    'file' => 'includes/ajax.inc',
+    'type' => MENU_CALLBACK,
+  );
+  // Path is not admin/build/views due to menu complications with the wildcards from
+  // the generic ajax callback.
+  $items['admin/views/ajax/autocomplete/user'] = array(
+    'page callback' => 'views_ajax_autocomplete_user',
+    'access callback' => 'user_access',
+    'access arguments' => array('access content'),
+    'file' => 'includes/ajax.inc',
+    'type' => MENU_CALLBACK,
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_menu_alter().
+ */
+function views_menu_alter(&$callbacks) {
+  $our_paths = array();
+  $views = views_get_applicable_views('uses hook menu');
+  foreach ($views as $data) {
+    list($view, $display_id) = $data;
+    $result = $view->execute_hook_menu($display_id, $callbacks);
+    if (is_array($result)) {
+      // The menu system doesn't support having two otherwise
+      // identical paths with different placeholders.  So we
+      // want to remove the existing items from the menu whose
+      // paths would conflict with ours.
+
+      // First, we must find any existing menu items that may
+      // conflict.  We use a regular expression because we don't
+      // know what placeholders they might use.  Note that we
+      // first construct the regex itself by replacing %views_arg
+      // in the display path, then we use this constructed regex
+      // (which will be something like '#^(foo/%[^/]*/bar)$#') to
+      // search through the existing paths.
+      $regex = '#^(' . preg_replace('#%views_arg#', '%[^/]*', implode('|', array_keys($result))) . ')$#';
+      $matches = preg_grep($regex, array_keys($callbacks));
+
+      // Remove any conflicting items that were found.
+      foreach ($matches as $path) {
+        // Don't remove the paths we just added!
+        if (!isset($our_paths[$path])) {
+          unset($callbacks[$path]);
+        }
+      }
+      foreach ($result as $path => $item) {
+        if (!isset($callbacks[$path])) {
+          // Add a new item, possibly replacing (and thus effectively
+          // overriding) one that we removed above.
+          $callbacks[$path] = $item;
+        }
+        else {
+          // This item already exists, so it must be one that we added.
+          // We change the various callback arguments to pass an array
+          // of possible display IDs instead of a single ID.
+          $callbacks[$path]['page arguments'][1] = (array)$callbacks[$path]['page arguments'][1];
+          $callbacks[$path]['page arguments'][1][] = $display_id;
+          $callbacks[$path]['access arguments'][] = $item['access arguments'][0];
+          $callbacks[$path]['load arguments'][1] = (array)$callbacks[$path]['load arguments'][1];
+          $callbacks[$path]['load arguments'][1][] = $display_id;
+        }
+        $our_paths[$path] = TRUE;
+      }
+    }
+  }
+
+  // Save memory: Destroy those views.
+  foreach ($views as $data) {
+    list($view, $display_id) = $data;
+    $view->destroy();
+  }
+}
+
+/**
+ * Helper function for menu loading. This will automatically be
+ * called in order to 'load' a views argument; primarily it
+ * will be used to perform validation.
+ *
+ * @param $value
+ *   The actual value passed.
+ * @param $name
+ *   The name of the view. This needs to be specified in the 'load function'
+ *   of the menu entry.
+ * @param $display_id
+ *   The display id that will be loaded for this menu item.
+ * @param $index
+ *   The menu argument index. This counts from 1.
+ */
+function views_arg_load($value, $name, $display_id, $index) {
+  static $views = array();
+
+  // Make sure we haven't already loaded this views argument for a similar menu
+  // item elsewhere.
+  $key = $name . ':' . $display_id . ':' . $value . ':' . $index;
+  if (isset($views[$key])) {
+    return $views[$key];
+  }
+
+  if ($view = views_get_view($name)) {
+    $view->set_display($display_id);
+    $view->init_handlers();
+
+    $ids = array_keys($view->argument);
+
+    $indexes = array();
+    $path = explode('/', $view->get_path());
+
+    foreach ($path as $id => $piece) {
+      if ($piece == '%' && !empty($ids)) {
+        $indexes[$id] = array_shift($ids);
+      }
+    }
+
+    if (isset($indexes[$index])) {
+      if (isset($view->argument[$indexes[$index]])) {
+        $arg = $view->argument[$indexes[$index]]->validate_argument($value) ? $value : FALSE;
+        $view->destroy();
+
+        // Store the output in case we load this same menu item again.
+        $views[$key] = $arg;
+        return $arg;
+      }
+    }
+    $view->destroy();
+  }
+}
+
+/**
+ * Page callback entry point; requires a view and a display id, then
+ * passes control to the display handler.
+ */
+function views_page() {
+  $args = func_get_args();
+  $name = array_shift($args);
+  $display_id = array_shift($args);
+
+  // Load the view
+  if ($view = views_get_view($name)) {
+    return $view->execute_display($display_id, $args);
+  }
+
+  // Fallback; if we get here no view was found or handler was not valid.
+  return drupal_not_found();
+}
+
+/**
+ * Implementation of hook_block
+ */
+function views_block($op = 'list', $delta = 0, $edit = array()) {
+  switch ($op) {
+    case 'list':
+      // Try to avoid instantiating all the views just to get the blocks info.
+      views_include('cache');
+      $cache = views_cache_get('views_block_items', TRUE);
+      if ($cache && is_array($cache->data)) {
+        return $cache->data;
+      }
+
+      $items = array();
+      $views = views_get_all_views();
+      foreach ($views as $view) {
+        // disabled views get nothing.
+        if (!empty($view->disabled)) {
+          continue;
+        }
+
+        $view->init_display();
+        foreach ($view->display as $display_id => $display) {
+
+          if (isset($display->handler) && !empty($display->handler->definition['uses hook block'])) {
+            $result = $display->handler->execute_hook_block();
+            if (is_array($result)) {
+              $items = array_merge($items, $result);
+            }
+          }
+
+          if (isset($display->handler) && $display->handler->get_option('exposed_block')) {
+            $result = $display->handler->get_special_blocks();
+            if (is_array($result)) {
+              $items = array_merge($items, $result);
+            }
+          }
+        }
+      }
+
+      // block.module has a delta length limit of 32, but our deltas can
+      // unfortunately be longer because view names can be 32 and display IDs
+      // can also be 32. So for very long deltas, change to md5 hashes.
+      $hashes = array();
+
+      // get the keys because we're modifying the array and we don't want to
+      // confuse PHP too much.
+      $keys = array_keys($items);
+      foreach ($keys as $delta) {
+        if (strlen($delta) >= 32) {
+          $hash = md5($delta);
+          $hashes[$hash] = $delta;
+          $items[$hash] = $items[$delta];
+          unset($items[$delta]);
+        }
+      }
+
+      // Only save hashes if they have changed.
+      $old_hashes = variable_get('views_block_hashes', array());
+      if ($hashes != $old_hashes) {
+        variable_set('views_block_hashes', $hashes);
+      }
+      // Save memory: Destroy those views.
+      foreach ($views as $view) {
+        $view->destroy();
+      }
+
+      views_cache_set('views_block_items', $items, TRUE);
+
+      return $items;
+    case 'view':
+      $start = views_microtime();
+      // if this is 32, this should be an md5 hash.
+      if (strlen($delta) == 32) {
+        $hashes = variable_get('views_block_hashes', array());
+        if (!empty($hashes[$delta])) {
+          $delta = $hashes[$delta];
+        }
+      }
+
+      // This indicates it's a special one.
+      if (substr($delta, 0, 1) == '-') {
+        list($nothing, $type, $name, $display_id) = explode('-', $delta);
+        // Put the - back on.
+        $type = '-' . $type;
+        if ($view = views_get_view($name)) {
+          if ($view->access($display_id)) {
+            $view->set_display($display_id);
+            if (isset($view->display_handler)) {
+              $output = $view->display_handler->view_special_blocks($type);
+              $view->destroy();
+              return $output;
+            }
+          }
+          $view->destroy();
+        }
+      }
+
+      list($name, $display_id) = explode('-', $delta);
+      // Load the view
+      if ($view = views_get_view($name)) {
+        if ($view->access($display_id)) {
+          $output = $view->execute_display($display_id);
+          vpr("Block $view->name execute time: " . (views_microtime() - $start) * 1000 . "ms");
+          $view->destroy();
+          return $output;
+        }
+        $view->destroy();
+      }
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_flush_caches().
+ */
+function views_flush_caches() {
+  return array('cache_views', 'cache_views_data');
+}
+
+/**
+ * Invalidate the views cache, forcing a rebuild on the next grab of table data.
+ */
+function views_invalidate_cache() {
+  cache_clear_all('*', 'cache_views', true);
+}
+
+/**
+ * Access callback to determine if the user can import Views.
+ *
+ * View imports require an additional access check because they are PHP
+ * code and PHP is more locked down than administer views.
+ */
+function views_import_access() {
+  return user_access('administer views') && user_access('use PHP for block visibility');
+}
+
+/**
+ * Determine if the logged in user has access to a view.
+ *
+ * This function should only be called from a menu hook or some other
+ * embedded source. Each argument is the result of a call to
+ * views_plugin_access::get_access_callback() which is then used
+ * to determine if that display is accessible. If *any* argument
+ * is accessible, then the view is accessible.
+ */
+function views_access() {
+  $args = func_get_args();
+  foreach ($args as $arg) {
+    if ($arg === TRUE) {
+      return TRUE;
+    }
+
+    if (!is_array($arg)) {
+      continue;
+    }
+
+    list($callback, $arguments) = $arg;
+    $arguments = $arguments ? $arguments : array();
+    if (function_exists($callback) && call_user_func_array($callback, $arguments)) {
+      return TRUE;
+    }
+  }
+
+  return FALSE;
+}
+
+/**
+ * Access callback for the views_plugin_access_perm access plugin.
+ *
+ * Determine if the specified user has access to a view on the basis of
+ * permissions. If the $account argument is omitted, the current user
+ * is used.
+ */
+function views_check_perm($perm, $account = NULL) {
+  return user_access($perm, $account) || user_access('access all views', $account);
+}
+
+/**
+ * Access callback for the views_plugin_access_role access plugin.
+
+ * Determine if the specified user has access to a view on the basis of any of
+ * the requested roles. If the $account argument is omitted, the current user
+ * is used.
+ */
+function views_check_roles($rids, $account = NULL) {
+  global $user;
+  $account = isset($account) ? $account : $user;
+  $roles = array_keys($account->roles);
+  $roles[] = $account->uid ? DRUPAL_AUTHENTICATED_RID : DRUPAL_ANONYMOUS_RID;
+  return user_access('access all views', $account) || array_intersect(array_filter($rids), $roles);
+}
+// ------------------------------------------------------------------
+// Functions to help identify views that are running or ran
+
+/**
+ * Set the current 'page view' that is being displayed so that it is easy
+ * for other modules or the theme to identify.
+ */
+function &views_set_page_view($view = NULL) {
+  static $cache = NULL;
+  if (isset($view)) {
+    $cache = $view;
+  }
+
+  return $cache;
+}
+
+/**
+ * Find out what, if any, page view is currently in use. Please note that
+ * this returns a reference, so be careful! You can unintentionally modify the
+ * $view object.
+ */
+function &views_get_page_view() {
+  return views_set_page_view();
+}
+
+/**
+ * Set the current 'current view' that is being built/rendered so that it is
+ * easy for other modules or items in drupal_eval to identify
+ */
+function &views_set_current_view($view = NULL) {
+  static $cache = NULL;
+  if (isset($view)) {
+    $cache = $view;
+  }
+
+  return $cache;
+}
+
+/**
+ * Find out what, if any, current view is currently in use. Please note that
+ * this returns a reference, so be careful! You can unintentionally modify the
+ * $view object.
+ */
+function &views_get_current_view() {
+  return views_set_current_view();
+}
+
+// ------------------------------------------------------------------
+// Include file helpers
+
+/**
+ * Include views .inc files as necessary.
+ */
+function views_include($file) {
+  static $used = array();
+  if (!isset($used[$file])) {
+    require_once './' . drupal_get_path('module', 'views') . "/includes/$file.inc";
+  }
+
+  $used[$file] = TRUE;
+}
+
+/**
+ * Load views files on behalf of modules.
+ */
+function views_module_include($file) {
+  foreach (views_get_module_apis() as $module => $info) {
+    if (file_exists("./$info[path]/$module.$file")) {
+      require_once "./$info[path]/$module.$file";
+    }
+  }
+}
+
+/**
+ * Get a list of modules that support the current views API.
+ */
+function views_get_module_apis() {
+  static $cache = NULL;
+  if (!isset($cache)) {
+    $cache = array();
+    foreach (module_implements('views_api') as $module) {
+      $function = $module . '_views_api';
+      $info = $function();
+      if (isset($info['api']) && $info['api'] == 2.000) {
+        if (!isset($info['path'])) {
+          $info['path'] = drupal_get_path('module', $module);
+        }
+        $cache[$module] = $info;
+      }
+    }
+  }
+
+  return $cache;
+}
+
+/**
+ * Include views .css files.
+ */
+function views_add_css($file) {
+  // We set preprocess to FALSE because we are adding the files conditionally,
+  // and we don't want to generate duplicate cache files.
+  // TODO: at some point investigate adding some files unconditionally and
+  // allowing preprocess.
+  drupal_add_css(drupal_get_path('module', 'views') . "/css/$file.css", 'module', 'all', FALSE);
+}
+
+/**
+ * Include views .js files.
+ */
+function views_add_js($file) {
+  // If javascript has been disabled by the user, never add js files.
+  if (variable_get('views_no_javascript', FALSE)) {
+    return;
+  }
+
+  static $base = TRUE;
+  if ($base) {
+    drupal_add_js(drupal_get_path('module', 'views') . "/js/base.js");
+    $base = FALSE;
+  }
+  drupal_add_js(drupal_get_path('module', 'views') . "/js/$file.js");
+}
+
+/**
+ * Load views files on behalf of modules.
+ */
+function views_include_handlers() {
+  static $finished = FALSE;
+  // Ensure this only gets run once.
+  if ($finished) {
+    return;
+  }
+
+  views_include('base');
+  views_include('handlers');
+  views_include('cache');
+  views_include('plugins');
+  _views_include_handlers();
+  $finished = TRUE;
+}
+
+/**
+ * Load default views files on behalf of modules.
+ */
+function views_include_default_views() {
+  static $finished = FALSE;
+  // Ensure this only gets run once.
+  if ($finished) {
+    return;
+  }
+
+  // Default views hooks may be in the normal handler file,
+  // or in a separate views_default file at the discretion of
+  // the module author.
+  views_include_handlers();
+
+  _views_include_default_views();
+  $finished = TRUE;
+}
+
+// -----------------------------------------------------------------------
+// Views handler functions
+
+/**
+ * Fetch a handler from the data cache.
+ *
+ * @param $table
+ *   The name of the table this handler is from.
+ * @param $field
+ *   The name of the field this handler is from.
+ * @param $key
+ *   The type of handler. i.e, sort, field, argument, filter, relationship
+ *
+ * @return views_handler
+ *   An instance of a handler object. May be views_handler_broken.
+ */
+function views_get_handler($table, $field, $key) {
+  $data = views_fetch_data($table);
+  if (isset($data[$field][$key])) {
+    // Set up a default handler:
+    if (empty($data[$field][$key]['handler'])) {
+      $data[$field][$key]['handler'] = 'views_handler_' . $key;
+    }
+    return _views_prepare_handler($data[$field][$key], $data, $field);
+  }
+  // DEBUG -- identify missing handlers
+  vpr("Missing handler: $table $field $key");
+  $broken = array(
+    'title' => t('Broken handler @table. at field', array('@table' => $table, '@field' => $field)),
+    'handler' => 'views_handler_' . $key . '_broken',
+    'table' => $table,
+    'field' => $field,
+  );
+  return _views_create_handler($broken);
+}
+
+/**
+ * Fetch Views' data from the cache
+ */
+function views_fetch_data($table = NULL) {
+  views_include('cache');
+  return _views_fetch_data($table);
+}
+
+// -----------------------------------------------------------------------
+// Views plugin functions
+
+/**
+ * Fetch the plugin data from cache.
+ */
+function views_fetch_plugin_data($type = NULL, $plugin = NULL) {
+  views_include('cache');
+  return _views_fetch_plugin_data($type, $plugin);
+}
+
+/**
+ * Get a handler for a plugin
+ *
+ * @return views_plugin
+ *
+ * The created plugin object.
+ */
+function views_get_plugin($type, $plugin) {
+  $definition = views_fetch_plugin_data($type, $plugin);
+  if (!empty($definition)) {
+    return _views_create_handler($definition, $type);
+  }
+}
+
+// -----------------------------------------------------------------------
+// Views database functions
+
+/**
+ * Get a view from the default views defined by modules.
+ *
+ * Default views are cached per-language.  This function will rescan the
+ * default_views hook if necessary.
+ *
+ * @param $view_name
+ *   The name of the view to load.
+ * @return
+ *   A view object or NULL if it is not available.
+ */
+function &views_get_default_view($view_name) {
+  $null = NULL;
+
+  // Attempt to load individually cached view from cache.
+  views_include('cache');
+  $data = views_cache_get("views_default:{$view_name}", TRUE);
+  if (isset($data->data) && is_object($data->data)) {
+    return $data->data;
+  }
+
+  // Otherwise, allow entire cache to be rebuilt.
+  $cache = views_discover_default_views();
+  if (isset($cache[$view_name])) {
+    return $cache[$view_name];
+  }
+  return $null;
+}
+
+/**
+ * Create an empty view to work with.
+ *
+ * @return view
+ *   A fully formed, empty $view object. This object must be populated before
+ *   it can be successfully saved.
+ */
+function views_new_view() {
+  views_include('view');
+  $view = new view();
+  $view->vid = 'new';
+  $view->add_display('default');
+
+  return $view;
+}
+
+/**
+ * Scan all modules for default views and rebuild the default views cache.
+ *
+ * @return An associative array of all known default views.
+ */
+function views_discover_default_views() {
+  static $cache = array();
+
+  if (empty($cache)) {
+    views_include('cache');
+    $cache = _views_discover_default_views();
+  }
+  return $cache;
+}
+
+/**
+ * Return a list of all views and display IDs that have a particular
+ * setting in their display's plugin settings.
+ *
+ * @return
+ * @code
+ * array(
+ *   array($view, $display_id),
+ *   array($view, $display_id),
+ * );
+ * @endcode
+ */
+function views_get_applicable_views($type) {
+  // @todo: Use a smarter flagging system so that we don't have to
+  // load every view for this.
+  $result = array();
+  $views = views_get_all_views();
+
+  foreach ($views as $view) {
+    // Skip disabled views.
+    if (!empty($view->disabled)) {
+      continue;
+    }
+
+    if (empty($view->display)) {
+      // Skip this view as it is broken.
+      vsm(t("Skipping broken view @view", array('@view' => $view->name)));
+      continue;
+    }
+
+    // Loop on array keys because something seems to muck with $view->display
+    // a bit in PHP4.
+    foreach (array_keys($view->display) as $id) {
+      $plugin = views_fetch_plugin_data('display', $view->display[$id]->display_plugin);
+      if (!empty($plugin[$type])) {
+        // This view uses hook menu. Clone it so that different handlers
+        // don't trip over each other, and add it to the list.
+        $v = $view->clone_view();
+        if ($v->set_display($id)) {
+          $result[] = array($v, $id);
+        }
+        // In PHP 4.4.7 and presumably earlier, if we do not unset $v
+        // here, we will find that it actually overwrites references
+        // possibly due to shallow copying issues.
+        unset($v);
+      }
+    }
+  }
+  return $result;
+}
+
+/**
+ * Return an array of all views as fully loaded $view objects.
+ *
+ * @param $reset
+ *   If TRUE, reset the static cache forcing views to be reloaded.
+ */
+function views_get_all_views($reset = FALSE) {
+  static $views = array();
+
+  if (empty($views) || $reset) {
+    $views = array();
+
+    // First, get all applicable views.
+    views_include('view');
+    $views = view::load_views();
+
+    // Get all default views.
+    $status = variable_get('views_defaults', array());
+
+    foreach (views_discover_default_views() as $view) {
+      // Determine if default view is enabled or disabled.
+      if (isset($status[$view->name])) {
+        $view->disabled = $status[$view->name];
+      }
+
+      // If overridden, also say so.
+      if (!empty($views[$view->name])) {
+        $views[$view->name]->type = t('Overridden');
+      }
+      else {
+        $view->type = t('Default');
+        $views[$view->name] = $view;
+      }
+    }
+
+  }
+  return $views;
+}
+
+/**
+ * Get a view from the database or from default views.
+ *
+ * This function is just a static wrapper around views::load(). This function
+ * isn't called 'views_load()' primarily because it might get a view
+ * from the default views which aren't technically loaded from the database.
+ *
+ * @param $name
+ *   The name of the view.
+ * @param $reset
+ *   If TRUE, reset this entry in the load cache.
+ * @return view
+ *   A reference to the $view object. Use $reset if you're sure you want
+ *   a fresh one.
+ */
+function views_get_view($name, $reset = FALSE) {
+  views_include('view');
+  $view = view::load($name, $reset);
+  $default_view = views_get_default_view($name);
+
+   // The view does not exist.
+  if (empty($view) && empty($default_view)) {
+    return;
+  }
+  // The view is defined in code.
+  elseif (empty($view) && !empty($default_view)) {
+    $status = variable_get('views_defaults', array());
+    if (isset($status[$default_view->name])) {
+      $default_view->disabled = $status[$default_view->name];
+    }
+    $default_view->type = t('Default');
+    return $default_view->clone_view();
+  }
+  // The view is overriden/defined in the database.
+  elseif (!empty($view) && !empty($default_view)) {
+    $view->type = t('Overridden');
+  }
+
+  return $view->clone_view();
+}
+
+// ------------------------------------------------------------------
+// Views debug helper functions
+
+/**
+ * Provide debug output for Views. This relies on devel.module
+ */
+function views_debug($message) {
+  if (module_exists('devel') && variable_get('views_devel_output', FALSE) && user_access('access devel information')) {
+    if (is_string($message)) {
+      $output = $message;
+    }
+    else {
+      $output = var_export($message, TRUE);
+    }
+    if (variable_get('views_devel_region', 'footer') != 'watchdog') {
+      drupal_set_content(variable_get('views_devel_region', 'footer'), '<pre>' . $output . '</pre>');
+    }
+    else {
+      watchdog('views_logging', '<pre>' . $output . '</pre>');
+    }
+  }
+}
+
+/**
+ * Shortcut to views_debug()
+ */
+function vpr($message) {
+  views_debug($message);
+}
+
+/**
+ * Debug messages
+ */
+function vsm($message) {
+  if (module_exists('devel')) {
+    dsm($message);
+  }
+}
+
+function views_trace() {
+  $message = '';
+  foreach (debug_backtrace() as $item) {
+    if (!empty($item['file']) && !in_array($item['function'], array('vsm_trace', 'vpr_trace', 'views_trace'))) {
+      $message .= basename($item['file']) . ": " . (empty($item['class']) ? '' : ($item['class'] . '->')) . "$item[function] line $item[line]" . "\n";
+    }
+  }
+  return $message;
+}
+
+function vsm_trace() {
+  vsm(views_trace());
+}
+
+function vpr_trace() {
+  dpr(views_trace());
+}
+
+// ------------------------------------------------------------------
+// Exposed widgets form
+
+/**
+ * Form builder for the exposed widgets form.
+ *
+ * Be sure that $view and $display are references.
+ */
+function views_exposed_form(&$form_state) {
+  // Don't show the form when batch operations are in progress.
+  if ($batch = batch_get() && isset($batch['current_set'])) {
+    return array(
+      // Set the theme callback to be nothing to avoid errors in template_preprocess_views_exposed_form().
+      '#theme' => '',
+    );
+  }
+
+  // Make sure that we validate because this form might be submitted
+  // multiple times per page.
+  $form_state['must_validate'] = TRUE;
+  $view = &$form_state['view'];
+  $display = &$form_state['display'];
+
+  $form_state['input'] = $view->get_exposed_input();
+
+  // Let form plugins know this is for exposed widgets.
+  $form_state['exposed'] = TRUE;
+  // Check if the form was already created
+  if ($cache = views_exposed_form_cache($view->name, $view->current_display)) {
+    return $cache;
+  }
+
+  $form['#info'] = array();
+
+  if (!variable_get('clean_url', FALSE)) {
+    $form['q'] = array(
+      '#type' => 'hidden',
+      '#value' => $view->get_url(),
+    );
+  }
+
+  // Go through each filter and let it generate its info.
+  foreach ($view->filter as $id => $filter) {
+    $view->filter[$id]->exposed_form($form, $form_state);
+    if ($info = $view->filter[$id]->exposed_info()) {
+      $form['#info']['filter-' . $id] = $info;
+    }
+  }
+
+  // @todo deal with exposed sorts
+
+  $form['submit'] = array(
+    '#name' => '', // prevent from showing up in $_GET.
+    '#type' => 'submit',
+    '#value' => t('Apply'),
+    '#id' => form_clean_id('edit-submit-' . $view->name),
+  );
+
+  $form['#action'] = url($view->get_url());
+  $form['#theme'] = views_theme_functions('views_exposed_form', $view, $display);
+  $form['#id'] = views_css_safe('views_exposed_form-' . check_plain($view->name) . '-' . check_plain($display->id));
+//  $form['#attributes']['class'] = array('views-exposed-form');
+
+  // If using AJAX, we need the form plugin.
+  if ($view->use_ajax) {
+    drupal_add_js('misc/jquery.form.js');
+  }
+  views_add_js('dependent');
+
+  // Save the form
+  views_exposed_form_cache($view->name, $view->current_display, $form);
+
+  return $form;
+}
+
+/**
+ * Validate handler for exposed filters
+ */
+function views_exposed_form_validate(&$form, &$form_state) {
+  foreach (array('field', 'filter') as $type) {
+    $handlers = &$form_state['view']->$type;
+    foreach ($handlers as $key => $handler) {
+      $handlers[$key]->exposed_validate($form, $form_state);
+    }
+  }
+}
+
+/**
+ * Submit handler for exposed filters
+ */
+function views_exposed_form_submit(&$form, &$form_state) {
+  foreach (array('field', 'filter') as $type) {
+    $handlers = &$form_state['view']->$type;
+    foreach ($handlers as $key => $info) {
+      $handlers[$key]->exposed_submit($form, $form_state);
+    }
+  }
+  $form_state['view']->exposed_data = $form_state['values'];
+  $form_state['view']->exposed_raw_input = array();
+
+  foreach ($form_state['values'] as $key => $value) {
+    if (!in_array($key, array('q', 'submit', 'form_build_id', 'form_id', 'form_token', ''))) {
+      $form_state['view']->exposed_raw_input[$key] = $value;
+    }
+  }
+}
+
+/**
+ * Save the Views exposed form for later use.
+ *
+ * @param $views_name
+ *   String. The views name.
+ * @param $display_name
+ *   String. The current view display name.
+ * @param $form_output
+ *   Array (optional). The form structure. Only needed when inserting the value.
+ * @return
+ *   Array. The form structure, if any. Otherwise, return FALSE.
+ */
+function views_exposed_form_cache($views_name, $display_name, $form_output = NULL) {
+  static $views_exposed;
+
+  // Save the form output
+  if (!empty($form_output)) {
+    $views_exposed[$views_name][$display_name] = $form_output;
+    return;
+  }
+
+  // Return the form output, if any
+  return empty($views_exposed[$views_name][$display_name]) ? FALSE : $views_exposed[$views_name][$display_name];
+}
+
+// ------------------------------------------------------------------
+// Misc helpers
+
+/**
+ * Build a list of theme function names for use most everywhere.
+ */
+function views_theme_functions($hook, $view, $display = NULL) {
+  require_once './' . drupal_get_path('module', 'views') . "/theme/theme.inc";
+  return _views_theme_functions($hook, $view, $display);
+}
+
+/**
+ * Views' replacement for drupal_get_form so that we can do more with
+ * less.
+ *
+ * Items that can be set on the form_state include:
+ * - input: The source of input. If unset this will be $_POST.
+ * - no_redirect: Absolutely do not redirect the form even if instructed
+ *   to do so.
+ * - rerender: If no_redirect is set and the form was successfully submitted,
+ *   rerender the form. Otherwise it will just return.
+ *
+ */
+function drupal_build_form($form_id, &$form_state) {
+  views_include('form');
+  return _drupal_build_form($form_id, $form_state);
+}
+
+/**
+ * Substitute current time; this works with cached queries.
+ */
+function views_views_query_substitutions($view) {
+  global $language;
+  return array(
+    '***CURRENT_VERSION***' => VERSION,
+    '***CURRENT_TIME***' => time(),
+    '***CURRENT_LANGUAGE***' => $language->language,
+    '***DEFAULT_LANGUAGE***' => language_default('language'),
+    '***NO_LANGUAGE***' => '',
+  );
+}
+
+/**
+ * Embed a view using a PHP snippet.
+ *
+ * This function is meant to be called from PHP snippets, should one wish to
+ * embed a view in a node or something. It's meant to provide the simplest
+ * solution and doesn't really offer a lot of options, but breaking the function
+ * apart is pretty easy, and this provides a worthwhile guide to doing so.
+ *
+ * Note that this function does NOT display the title of the view. If you want
+ * to do that, you will need to do what this function does manually, by
+ * loading the view, getting the preview and then getting $view->get_title().
+ *
+ * @param $name
+ *   The name of the view to embed.
+ * @param $display_id
+ *   The display id to embed. If unsure, use 'default', as it will always be
+ *   valid. But things like 'page' or 'block' should work here.
+ * @param ...
+ *   Any additional parameters will be passed as arguments.
+ */
+function views_embed_view($name, $display_id = 'default') {
+  $args = func_get_args();
+  array_shift($args); // remove $name
+  if (count($args)) {
+    array_shift($args); // remove $display_id
+  }
+
+  $view = views_get_view($name);
+  if (!$view || !$view->access($display_id)) {
+    return;
+  }
+
+  return $view->preview($display_id, $args);
+}
+
+/**
+* Get the result of a view.
+*
+* @param string $name
+*      The name of the view to retrieve the data from.
+* @param string $display_id
+*      The display id. On the edit page for the view in question, you'll find
+*      a list of displays at the left side of the control area. "Defaults"
+*      will be at the top of that list. Hover your cursor over the name of the
+*      display you want to use. An URL will appear in the status bar of your
+*      browser. This is usually at the bottom of the window, in the chrome.
+*      Everything after #views-tab- is the display ID, e.g. page_1.
+ * @param ...
+ *   Any additional parameters will be passed as arguments.
+* @return
+*      array
+*          An array containing an object for each view item.
+*/
+function views_get_view_result($name, $display_id = NULL) {
+  $args = func_get_args();
+  array_shift($args); // remove $name
+  if (count($args)) {
+    array_shift($args); // remove $display_id
+  }
+
+  $view = views_get_view($name);
+  if (is_object($view)) {
+    if (is_array($args)) {
+      $view->set_arguments($args);
+    }
+    if (is_string($display_id)) {
+      $view->set_display($display_id);
+    }
+    else {
+      $view->init_display();
+    }
+    $view->pre_execute();
+    $view->execute();
+    return $view->result;
+  }
+  else {
+    return array();
+  }
+}
+
+/**
+ * Export a field.
+ */
+function views_var_export($var, $prefix = '', $init = TRUE) {
+  if (is_array($var)) {
+    if (empty($var)) {
+      $output = 'array()';
+    }
+    else {
+      $output = "array(\n";
+      foreach ($var as $key => $value) {
+        $output .= "  " . views_var_export($key, '', FALSE) . " => " . views_var_export($value, '  ', FALSE) . ",\n";
+      }
+      $output .= ')';
+    }
+  }
+  else if (is_bool($var)) {
+    $output = $var ? 'TRUE' : 'FALSE';
+  }
+  else if (is_string($var) && strpos($var, "\n") !== FALSE) {
+    // Replace line breaks in strings with a token for replacement
+    // at the very end. This protects multi-line strings from
+    // unintentional indentation.
+    $var = str_replace("\n", "***BREAK***", $var);
+    $output = var_export($var, TRUE);
+  }
+  else {
+    $output = var_export($var, TRUE);
+  }
+
+  if ($prefix) {
+    $output = str_replace("\n", "\n$prefix", $output);
+  }
+
+  if ($init) {
+    $output = str_replace("***BREAK***", "\n", $output);
+  }
+
+  return $output;
+}
+
+/**
+ * Prepare the specified string for use as a CSS identifier.
+ */
+function views_css_safe($string) {
+  return str_replace('_', '-', $string);
+}
+
+/**
+ * Implementation of hook_views_exportables().
+ */
+function views_views_exportables($op = 'list', $views = NULL, $name = 'foo') {
+  $all_views = views_get_all_views();
+  if ($op == 'list') {
+
+    foreach ($all_views as $name => $view) {
+      // in list, $views is a list of tags.
+      if (empty($views) || in_array($view->tag, $views)) {
+        $return[$name] = array(
+          'name' => check_plain($name),
+          'desc' => check_plain($view->description),
+          'tag' => check_plain($view->tag)
+        );
+      }
+    }
+    return $return;
+  }
+
+  if ($op == 'export') {
+    $code = "/**\n";
+    $code .= " * Implementation of hook_views_default_views().\n";
+    $code .= " */\n";
+    $code .= "function " . $name . "_views_default_views() {\n";
+    foreach ($views as $view => $truth) {
+      $code .= "  /*\n";
+      $code .= "   * View ". var_export($all_views[$view]->name, TRUE) ."\n";
+      $code .= "   */\n";
+      $code .= $all_views[$view]->export('  ');
+      $code .= '  $views[$view->name] = $view;' . "\n\n";
+    }
+    $code .= "  return \$views;\n";
+    $code .= "}\n";
+
+    return $code;
+  }
+}
+
+/**
+ * Microtime helper function to return a float time value (php4 & php5 safe).
+ */
+function views_microtime() {
+  list($usec, $sec) = explode(' ', microtime());
+  return (float)$sec + (float)$usec;
+}
+
+/**
+ * Trim the field down to the specified length.
+ *
+ * @param $alter
+ *   - max_length: Maximum lenght of the string, the rest gets truncated.
+ *   - word_boundary: Trim only on a word boundary.
+ *   - ellipsis: Trim only on a word boundary.
+ *   - html: Take sure that the html is correct.
+ */
+function views_trim_text($alter, $value) {
+  if (drupal_strlen($value) > $alter['max_length']) {
+    $value = drupal_substr($value, 0, $alter['max_length']);
+    // TODO: replace this with cleanstring of ctools
+    if (!empty($alter['word_boundary'])) {
+      $regex = "(.*)\b.+";
+      if (function_exists('mb_ereg')) {
+        mb_regex_encoding('UTF-8');
+        $found = mb_ereg($regex, $value, $matches);
+      }
+      else {
+        $found = preg_match("/$regex/us", $value, $matches);
+      }
+      if ($found) {
+        $value = $matches[1];
+      }
+    }
+    // Remove scraps of HTML entities from the end of a strings
+    $value = rtrim(preg_replace('/(?:<(?!.+>)|&(?!.+;)).*$/us', '', $value));
+
+    if (!empty($alter['ellipsis'])) {
+      $value .= '...';
+    }
+  }
+  if (!empty($alter['html'])) {
+    $value = _filter_htmlcorrector($value);
+  }
+
+  return $value;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views2.doxy b/drupal/sites/default/boinc/modules/contrib/views/views2.doxy
new file mode 100644
index 0000000..7d95c1a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views2.doxy
@@ -0,0 +1,1252 @@
+# Doxyfile 1.4.7
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           =  Views
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 2.0
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 4096 sub-directories (in 2 levels) under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of 
+# source files, where putting all generated files in the same directory would 
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 
+# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 
+# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 
+# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 
+# Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# This tag can be used to specify the encoding used in the generated output. 
+# The encoding is not always determined by the language that is chosen, 
+# but also whether or not the output is meant for Windows or non-Windows users. 
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
+# forces the Windows encoding (this is the default for the Windows binary), 
+# whereas setting the tag to NO uses a Unix-style encoding (the default for 
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is 
+# used as the annotated text. Otherwise, the brief description is used as-is. 
+# If left blank, the following values are used ("$name" is automatically 
+# replaced with the name of the entity): "The $name class" "The $name widget" 
+# "The $name file" "is" "provides" "specifies" "contains" 
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
+# inherited members of a class in the documentation of that class as if those 
+# members were ordinary class members. Constructors, destructors and assignment 
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
+# a new page for each member. If set to NO, the documentation of a member will 
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 2
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
+# sources only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
+# sources only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
+# include (a tag file for) the STL sources as input, then you should 
+# set this tag to YES in order to let doxygen match functions declarations and 
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
+# func(std::string) {}). This also make the inheritance and collaboration 
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories 
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
+# doxygen should invoke to get the current version for each file (typically from the 
+# version control system). Doxygen will invoke the program by executing (via 
+# popen()) the command <command> <input-file>, where <command> is the value of 
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
+# provided by doxygen. Whatever the program writes to standard output 
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = NO
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for 
+# functions that are documented, but have no documentation for their parameters 
+# or return value. If set to NO (the default) doxygen will only warn about 
+# wrong or incomplete parameter documentation, but not about the absence of 
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text. Optionally the format may contain 
+# $version, which will be replaced by the version of the file (if it could 
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                  = 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS          = *.module *.inc *.php
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
+# directories that are symbolic links (a Unix filesystem feature) are excluded 
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories. Note that the wildcards are matched 
+# against the file with absolute path, so to exclude all test directories 
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# ignored.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
+# basis.  Doxygen will compare the file name with each pattern and apply the 
+# filter if there is a match.  The filters are a list of the form: 
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
+# is applied to all files.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = YES
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.  Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code 
+# will point to the HTML generated by the htags(1) tool instead of doxygen 
+# built-in source browser. The htags tool is part of GNU's global source 
+# tagging system (see http://www.gnu.org/software/global/global.html). You 
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = NO
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed. To prevent a macro definition from being 
+# undefined via #undef or recursively expanded use the := operator 
+# instead of the = operator.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse 
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
+# or super classes. Setting the tag to NO turns the diagrams off. Note that 
+# this option is superseded by the HAVE_DOT option below. This is only a 
+# fallback. It is recommended to install and use dot, since it yields more 
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a caller dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable caller graphs for selected 
+# functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
+# then doxygen will show the dependencies a directory has on other directories 
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes 
+# that lay further from the root node will be omitted. Note that setting this 
+# option to 1 or 2 may greatly reduce the computation time needed for large 
+# code bases. Also note that a graph may be further truncated if the graph's 
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
+# background. This is disabled by default, which results in a white background. 
+# Warning: Depending on the platform used, enabling this option may lead to 
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
+# read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
+# files in one run (i.e. multiple -o and -T options on the command line). This 
+# makes dot run faster, but since only newer versions of dot (>1.8.10) 
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.css b/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.css
new file mode 100644
index 0000000..4887ad3
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.css
@@ -0,0 +1,12 @@
+
+div.export-container table input,
+div.export-container table th,
+div.export-container table td {
+  padding: 0 0 0 .5em;
+  margin: 0;
+  vertical-align: top;
+}
+
+div.export-container table td input {
+  margin-top: .25em;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.info b/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.info
new file mode 100644
index 0000000..9cb4051
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.info
@@ -0,0 +1,12 @@
+
+name = Views exporter
+description = Allows exporting multiple views at once.
+package = "Views"
+dependencies[] = views
+core = 6.x
+
+; Information added by Drupal.org packaging script on 2015-02-11
+version = "6.x-2.18-boinc-1-dev"
+core = "6.x"
+project = "views"
+datestamp = "1494530273"
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.module b/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.module
new file mode 100644
index 0000000..28efc42
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views_export/views_export.module
@@ -0,0 +1,256 @@
+<?php
+
+/**
+ * @file views_export.module
+ *
+ * Provides functionality to export multiple items at once to make it easy to
+ * dump a set of views into code.
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function views_export_menu() {
+  $items = array();
+  $items['admin/build/views/tools/export'] = array(
+    'title' => 'Bulk export',
+    'access arguments' => array('use views exporter'),
+    'page callback' => 'views_export_export',
+    'type' => MENU_LOCAL_TASK,
+  );
+
+  $items['admin/build/views/tools/export/results'] = array(
+    'title' => 'Bulk export results',
+    'access arguments' => array('use views exporter'),
+    'page callback' => 'views_export_export',
+    'type' => MENU_LOCAL_TASK,
+  );
+
+  return $items;
+}
+
+function views_export_theme() {
+  return array(
+    'views_export_export_form' => array(
+      'args' => array('form' => NULL),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_perm().
+ */
+function views_export_perm() {
+  return array('use views exporter');
+}
+
+/**
+ * Page callback to export views in bulk.
+ */
+function views_export_export() {
+  $tags = array();
+  if (!empty($_GET['tags'])) {
+    $tags = explode(',', $_GET['tags']);
+  }
+
+  $exportables = array();
+  foreach (module_implements('views_exportables') as $module) {
+    $function = $module . '_views_exportables';
+    $exportables[$module] = $function('list', $tags);
+    asort($exportables[$module]);
+  }
+
+  if ($exportables) {
+    $form_state = array(
+      'no_redirect' => TRUE,
+      'exportables' => $exportables,
+      'tags' => $tags,
+    );
+
+    $output = drupal_build_form('views_export_export_form', $form_state);
+    if (!$output) {
+      $output = $form_state['output'];
+    }
+    return $output;
+  }
+  else {
+    return t('There are no views to be exported at this time.');
+  }
+}
+
+/**
+ * Form to choose a group of views to export.
+ */
+function views_export_export_form(&$form_state) {
+  foreach ($form_state['exportables'] as $module => $views) {
+    foreach ($views as $name => $data) {
+      $options[$name] = $data['name'];
+    }
+
+    $form['modules']['#tree'] = TRUE;
+    $form['modules'][$module] = array(
+      '#type' => 'checkboxes',
+      '#options' => $options,
+      '#default_value' => array(),
+    );
+  }
+
+  $tags = array();
+  foreach (views_get_all_views() as $name => $view) {
+    if (!empty($view->tag)) {
+      $tags[$view->tag] = $view->tag;
+    }
+  }
+
+  asort($tags);
+
+  $form['tags'] = array(
+    '#type' => 'select',
+    '#title' => t('Show only these tags'),
+    '#options' => $tags,
+    '#default_value' => $form_state['tags'],
+    '#multiple' => TRUE,
+  );
+
+  $form['apply'] = array(
+    '#type' => 'submit',
+    '#value' => t('Apply'),
+    '#submit' => array('views_export_export_form_apply'),
+  );
+
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Module name'),
+    '#description' => t('Enter the module name to export code to.'),
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Export'),
+  );
+
+  $form['#action'] = url('admin/build/views/tools/export/results');
+  $form['#redirect'] = FALSE;
+  $form['#exportables'] = $form_state['exportables'];
+  return $form;
+}
+
+function theme_views_export_export_form($form) {
+  $output = '';
+  $files = module_rebuild_cache();
+  $exportables = $form['#exportables'];
+  $output .= drupal_render($form['tags']);
+  $output .= drupal_render($form['apply']);
+  $output .= '<div class="clear-block">';
+
+  foreach ($exportables as $module => $views) {
+    $header = array(theme('table_select_header_cell'), $files[$module]->info['name'], t('Tag'), t('Description'));
+    $rows = array();
+    foreach ($views as $name => $view) {
+      $title = $form['modules'][$module][$name]['#title'];
+      unset($form['modules'][$module][$name]['#title']);
+      $rows[] = array(drupal_render($form['modules'][$module][$name]), $title, $view['tag'], '<div class="description">' . $view['desc'] . '</div>');
+    }
+    $output .= '<div class="export-container">';
+    $output .= theme('table', $header, $rows);
+    $output .= "</div>\n";
+  }
+  $output .= '</div>';
+  drupal_add_css(drupal_get_path('module', 'views_export') . '/views_export.css');
+  $output .= drupal_render($form);
+  return $output;
+}
+
+function views_export_export_form_apply(&$form, &$form_state) {
+  $tags = $form_state['values']['tags'];
+  if ($tags) {
+    drupal_goto('admin/build/views/tools/export', array('tags' => implode(',', $tags)));
+  }
+  else {
+    drupal_goto('admin/build/views/tools/export');
+  }
+}
+
+function views_export_export_form_submit(&$form, &$form_state) {
+  $code = '';
+  if (empty($form_state['values']['name'])) {
+    $form_state['values']['name'] = 'foo';
+  }
+
+  foreach ($form_state['values']['modules'] as $module => $views) {
+    $views = array_filter($views);
+    asort($views);
+    if ($views) {
+      $code .= module_invoke($module, 'views_exportables', 'export', $views, $form_state['values']['name']) . "\n\n";
+    }
+  }
+
+  $lines = substr_count($code, "\n");
+
+  $types = system_elements();
+
+  $info  = "; \$Id" . ": $\n"; // The break in the string prevents CVS.
+  $info .= "\n";
+  $info .= strtr("name = @module Export Module\n", array('@module' => $form_state['values']['name']));
+  $info .= strtr("description = Exports some views of @module\n", array('@module' => $form_state['values']['name']));
+  $info .= "dependencies[] = views\n";
+  $info .= "core = 6.x\n";
+
+
+  $element_info = array(
+    '#title' => t('Put this in @module.info in your modules/@module directory',  array('@module' => $form_state['values']['name'])),
+    '#type' => 'textarea',
+    '#id' => 'export-info-textarea',
+    '#name' => 'export-info-textarea',
+    '#attributes' => array(),
+    '#rows' => 9,
+    '#cols' => 60,
+    '#value' => $info,
+    '#parents' => array('dummy'),
+    '#required' => FALSE,
+  ) + $types['textarea'];
+
+  $api  = "/**\n";
+  $api .= " * Implementation of hook_views_api().\n";
+  $api .= " */\n";
+  $api .= "function @module_views_api() {\n";
+  $api .= "  return array(\n";
+  $api .= "    'api' => '" . views_api_version() . "',\n";
+  $api .= "    'path' => drupal_get_path('module', '@module'),\n";
+  $api .= "    //'path' => drupal_get_path('module', '@module') . '/includes',\n";
+  $api .= "  );\n";
+  $api .= "}";
+
+  $api = strtr($api, array('@module' => check_plain($form_state['values']['name'])));
+
+  $element_api = array(
+    '#title' => t('Put this in @module.module in your modules/@module directory (place a <?php at the top of the file so the webserver knows that it is PHP code)', array('@module' => $form_state['values']['name'])),
+    '#type' => 'textarea',
+    '#id' => 'export-api-textarea',
+    '#name' => 'export-api-textarea',
+    '#attributes' => array( 'dir' => 'ltr' ),
+    '#rows' => 9,
+    '#cols' => 60,
+    '#value' => $api,
+    '#parents' => array('dummy'),
+    '#required' => FALSE,
+  ) + $types['textarea'];
+
+  $element_hook = array(
+    '#title' => t('Put this in @module.views_default.inc in your modules/@module directory or modules/@module/includes directory (place a <?php at the top of the file so the webserver knows that it is PHP code)', array('@module' => $form_state['values']['name'])),
+    '#type' => 'textarea',
+    '#id' => 'export-textarea',
+    '#name' => 'export-textarea',
+    '#attributes' => array( 'dir' => 'ltr' ),
+    '#rows' => min($lines, 150),
+    '#value' => $code,
+    '#parents' => array('dummy'),
+    '#required' => FALSE,
+  ) + $types['textarea'];
+
+
+  $form_state['output'] = theme('textarea', $element_info);
+  $form_state['output'] .= theme('textarea', $element_api);
+  $form_state['output'] .= theme('textarea', $element_hook);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views_revert.drush.inc b/drupal/sites/default/boinc/modules/contrib/views/views_revert.drush.inc
new file mode 100644
index 0000000..b72fcc0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views_revert.drush.inc
@@ -0,0 +1,154 @@
+<?php
+/**
+ * @file
+ * views-revert - Drush command to revert views overridden in the system.
+ */
+
+/**
+ * Implement hook_drush_help().
+ */
+function views_revert_drush_help($section) {
+  switch ($section) {
+    case 'drush:revert-views':
+      return dt('Reverts all views in the drupal installation that have been overriden. Careful, use with care.');
+  }
+}
+
+/**
+ * Implement hook_drush_command().
+ */
+function views_revert_drush_command() {
+  $items = array();
+
+  $items['views-revert'] = array(
+    'callback' => 'views_revert_views',
+    'drupal dependencies' => array('views'),
+    'description' => dt('Revert overridden views to their default state. Make sure to backup first.'),
+    'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL,
+    'aliases' => array('vr'),
+  );
+
+  return $items;
+}
+
+/**
+ * Callback function for views-revert command.
+ */
+function views_revert_views() {
+  $views = views_get_all_views();
+  $i = 0;
+  // The provided view names specified in the command.
+  $viewnames = _convert_csv_to_array(func_get_args());
+
+  // Find all overridden views.
+  foreach ($views as $view) {
+    if ($view->disabled) {
+      continue;
+    }
+    if ($view->type == dt('Overridden')) {
+      $overridden[$view->name] = $view->name;
+    }
+  }
+
+  // Return early if there are no views overridden in the system.
+  if (empty($overridden)) {
+    return drush_set_error(dt('There are no overridden views in the system.'));
+  }
+
+  // If the user specified in the command the views to be overridden.
+  if (!empty($viewnames)) {
+    foreach ($viewnames as $key => $viewname) {
+      $is_overridden = key_exists($viewname, $overridden);
+      // Check if the provided view name is in the system
+      if ($viewname && !key_exists($viewname, $views)) {
+        drush_set_error(dt("'@viewname' view is not present in the system.", array('@viewname' => $viewname)));
+      }
+      // Check if the provided view is overridden.
+      elseif (!$is_overridden) {
+        drush_set_error(dt("The view specified '@viewname' is not overridden.", array('@viewname' => $viewname)));
+      }
+      // If the view is overriden, revert it.
+      elseif ($is_overridden){
+        views_revert_view($views[$viewname]);
+        $i++;
+      }
+      // We should never get here but well...
+      else {
+        drush_set_error(dt("The view specified '@viewname' is not provided in code, and thus cannot be reverted.", array('@viewname' => $viewname)));
+      }
+    }
+  }
+
+  // The user did not specify any views in the command, prompt the user
+  else {
+    // list of choices for the user
+    $overridden['all'] = dt('Revert all overridden views'); // add a choice at the end
+    $choice = drush_choice($overridden, 'Enter a number to choose which view to revert.', '!key'); // prompt the user
+
+    if ($choice !== FALSE) {
+      // revert all views option
+      if ($choice == 'all') {
+        $i = views_revert_allviews($views);
+      }
+      // else the user specified a single view
+      else {
+        views_revert_view($views[$choice]);
+        $i++;
+      }
+    }
+
+  }
+
+  // final results output
+  if ($i == 0) {
+    drush_log(dt('No views were reverted.'), 'ok');
+  }
+  else {
+    drush_log(dt('Reverted a total of @count views.', array('@count' => $i)), 'ok');
+  }
+}
+
+/**
+ * Reverts all views
+ * @param $views
+ * All views in the system as provided by views_get_all_views().
+ */
+function views_revert_allviews($views) {
+  $i = 0;
+  foreach ($views as $view) {
+    if ($view->disabled) {
+      continue;
+    }
+
+    if ($view->type == t('Overridden')) {
+      views_revert_view($view);
+      $i++;
+    }
+  }
+  return $i;
+}
+
+/**
+ * Revert a specified view
+ * @param $view
+ * The view object to be reverted
+ *
+ * Checks on wether or not the view is overridden is handled in views_revert_views_revert()
+ * We perform a check here anyway in case someone somehow calls this function on their own...
+ */
+function views_revert_view($view) {
+  // check anyway just in case
+  if ($view->type == t('Overridden')) {
+    // Revert the view.
+    $view->delete();
+    // Clear its cache.
+    views_object_cache_clear('view', $view->name);
+    // Give feedback.
+    $message = dt("Reverted the view '@viewname'", array('@viewname' => $view->name));
+    drush_log($message, 'success');
+    // Reverted one more view.
+  }
+  else {
+    drush_set_error(dt("The view '@viewname' is not overridden.", array('@viewname' => $view->name)));
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views_ui.info b/drupal/sites/default/boinc/modules/contrib/views/views_ui.info
new file mode 100644
index 0000000..56a4b45
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views_ui.info
@@ -0,0 +1,11 @@
+name = Views UI
+description = Administrative interface to views. Without this module, you cannot create or edit your views.
+package = Views
+core = 6.x
+dependencies[] = views
+
+; Information added by Drupal.org packaging script on 2015-02-11
+version = "6.x-2.18-boinc-1-dev"
+core = "6.x"
+project = "views"
+datestamp = "1494530273"
diff --git a/drupal/sites/default/boinc/modules/contrib/views/views_ui.module b/drupal/sites/default/boinc/modules/contrib/views/views_ui.module
new file mode 100644
index 0000000..a8b719e
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/views/views_ui.module
@@ -0,0 +1,301 @@
+<?php
+/**
+ * @file views_ui.module
+ * Provide structure for the administrative interface to Views.
+ */
+
+/*
+ * Implementation of hook_menu()
+ */
+function views_ui_menu() {
+  $items = array();
+
+  // Minor code reduction technique
+  $base = array(
+    'access callback' => 'user_access',
+    'access arguments' => array('administer views'),
+    'file' => 'includes/admin.inc',
+  );
+
+  $callback = $base + array('type' => MENU_CALLBACK);
+
+  $convert = array('file' => 'includes/convert.inc') + $base;
+
+  $items['admin/build/views'] = $base + array(
+    'title' => 'Views',
+    'page callback' => 'views_ui_list_views',
+    'description' => 'Views are customized lists of content on your system; they are highly configurable and give you control over how lists of content are presented.',
+    'type' => MENU_NORMAL_ITEM
+  );
+  $items['admin/build/views/list'] = $base + array(
+    'title' => 'List',
+    'page callback' => 'views_ui_list_views',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => '-1'
+  );
+  $items['admin/build/views/add'] = $base + array(
+    'title' => 'Add',
+    'page callback' => 'views_ui_add_page',
+    'type' => MENU_LOCAL_TASK
+  );
+  $items['admin/build/views/import'] = array(
+    'title' => 'Import',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_ui_import_page'),
+    'access callback' => 'views_import_access',
+    'type' => MENU_LOCAL_TASK
+  ) + $base;
+  $items['admin/build/views/tools'] = $base + array(
+    'title' => 'Tools',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_ui_admin_tools'),
+    'type' => MENU_LOCAL_TASK
+  );
+  $items['admin/build/views/tools/basic'] = $base + array(
+    'title' => 'Basic',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_ui_admin_tools'),
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  );
+
+  $items['admin/build/views/tools/convert'] = $convert + array(
+    'title' => 'Convert',
+    'description' => 'Convert stored Views 1 views.',
+    'page callback' => 'views_ui_admin_convert',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 1,
+  );
+  $items['admin/build/views1/delete'] = $convert + array(
+    'title' => 'Delete view',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_ui_delete1_confirm', 4),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/build/views1/convert'] = $convert + array(
+    'title' => 'Convert view',
+    'page callback' => 'views_ui_convert1',
+    'page arguments' => array(4),
+    'type' => MENU_CALLBACK,
+  );
+
+  $items['admin/build/views/delete/%views_ui_cache'] = $callback + array(
+    'title' => 'Delete view',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_ui_delete_confirm', 4),
+  );
+  $items['admin/build/views/break-lock/%views_ui_cache'] = $callback + array(
+    'title' => 'Delete view',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_ui_break_lock_confirm', 4),
+  );
+  $items['admin/build/views/export/%views_ui_cache'] = $callback + array(
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_ui_export_page', 4),
+    'type' => MENU_LOCAL_TASK
+  );
+  $items['admin/build/views/clone/%views_ui_cache'] = $callback + array(
+    'page callback' => 'views_ui_clone_page',
+    'page arguments' => array(4),
+    'type' => MENU_LOCAL_TASK
+  );
+  $items['admin/build/views/enable/%views_ui_default'] = $callback + array(
+    'page callback' => 'views_ui_enable_page',
+    'page arguments' => array(4),
+  );
+  $items['admin/build/views/disable/%views_ui_default'] = $callback + array(
+    'page callback' => 'views_ui_disable_page',
+    'page arguments' => array(4),
+  );
+
+  // Many line items for editing a view.
+  $items['admin/build/views/edit/%views_ui_cache'] = $base + array(
+    'title' => 'Edit',
+    'page callback' => 'views_ui_edit_page',
+    'page arguments' => array(4),
+    'type' => MENU_LOCAL_TASK
+  );
+  // lots of little edit form pieces.
+  $items['admin/build/views/%views_ui_js/analyze/%views_ui_cache'] = $callback + array(
+    'page callback' => 'views_ui_analyze_view',
+    'page arguments' => array(3, 5),
+  );
+  $items['admin/build/views/%views_ui_js/details/%views_ui_cache'] = $callback + array(
+    'page callback' => 'views_ui_edit_details',
+    'page arguments' => array(3, 5),
+  );
+  $items['admin/build/views/%views_ui_js/add-display/%views_ui_cache'] = $callback + array(
+    'page callback' => 'views_ui_add_display',
+    'page arguments' => array(3, 5),
+  );
+    $items['admin/build/views/%views_ui_js/clone-display/%views_ui_cache'] = $callback + array(
+    'page callback' => 'views_ui_clone_display',
+    'page arguments' => array(3, 5, 6),
+  );
+  // Live preview
+  $items['admin/build/views/%views_ui_js/preview/%views_ui_cache'] = $callback + array(
+    'page callback' => 'views_ui_preview',
+    'page arguments' => array(3, 5),
+  );
+
+  // autocompletes for handlers and such
+  $items['admin/views/ajax/autocomplete/tag'] = $callback + array(
+    'page callback' => 'views_ui_autocomplete_tag',
+  );
+
+
+  // Generic ajax callback
+  // display specific parameters
+  $items['admin/build/views/%views_ui_js/%/%views_ui_cache'] = $callback + array(
+    'page callback' => 'views_ui_ajax_form',
+    'page arguments' => array(3, 4, 5),
+  );
+
+  return $items;
+}
+
+/*
+ * Implementation of hook_help()
+ */
+function views_ui_help($path, $arg = '') {
+  switch ($path) {
+    case 'admin/build/views/tools/convert':
+      return '<p>' . t('The converter will make a best-effort attempt to convert a Views 1 view to Views 2. This conversion is not reliable; you will very likely have to make adjustments to your view to get it to match. You can import Views 1 views through the normal Import tab.') . '</p>';
+  }
+}
+
+/*
+ * Implementation of hook_theme()
+ */
+function views_ui_theme() {
+  $path = drupal_get_path('module', 'views');
+  require_once "./$path/includes/admin.inc";
+
+  return array(
+    // edit a view
+    'views_ui_edit_view' => array(
+      'arguments' => array('view' => NULL),
+      'template' => 'views-ui-edit-view',
+      'path' => "$path/theme",
+    ),
+    'views_ui_edit_tab' => array(
+      'arguments' => array('view' => NULL, 'display' => NULL),
+      'template' => 'views-ui-edit-tab',
+      'path' => "$path/theme",
+    ),
+    'views_ui_edit_item' => array(
+      'arguments' => array('type' => NULL, 'view' => NULL, 'display' => NULL, 'no_fields' => FALSE),
+      'template' => 'views-ui-edit-item',
+      'path' => "$path/theme",
+    ),
+    'views_ui_rearrange_form' => array(
+      'arguments' => array('form' => NULL),
+      'file' => 'includes/admin.inc',
+    ),
+
+    // list views
+    'views_ui_list_views' => array(
+      'template' => 'views-ui-list-views',
+      'path' => "$path/theme",
+    ),
+    'views_ui_list_views_form' => array(
+      'file' => 'includes/admin.inc',
+      'arguments' => array('form' => NULL),
+    ),
+
+    // tab themes
+    'views_tabset' => array(
+      'arguments' => array('tabs' => NULL),
+      'file' => 'includes/tabs.inc',
+    ),
+    'views_tab' => array(
+      'arguments' => array('body' => NULL),
+      'file' => 'includes/tabs.inc',
+    ),
+
+    // On behalf of a plugin
+    'views_ui_style_plugin_table' => array(
+      'arguments' => array('form' => NULL),
+      'file' => 'includes/admin.inc',
+    ),
+  );
+}
+
+/**
+ * Specialized menu callback to load a view either out of the cache or just
+ * load it.
+ */
+function views_ui_cache_load($name) {
+  views_include('cache');
+  views_include('view');
+  $view = views_object_cache_get('view', $name);
+
+  if (empty($view)) {
+    $view = views_get_view($name);
+
+    if (!empty($view)) {
+      // Check to see if someone else is already editing this view.
+      global $user;
+      $view->locked = db_fetch_object(db_query("SELECT s.uid, v.updated FROM {views_object_cache} v INNER JOIN {sessions}  s ON v.sid = s.sid WHERE s.sid != '%s' and v.name = '%s' and v.obj = 'view' ORDER BY v.updated ASC", session_id(), $view->name));
+    }
+  }
+
+  if (empty($view)) {
+    return FALSE;
+  }
+
+  else {
+    return $view;
+  }
+}
+
+function views_ui_check_lock($view) {
+
+}
+
+/**
+ * Specialized cache function to add a flag to our view, include an appropriate
+ * include, and cache more easily.
+ */
+function views_ui_cache_set(&$view) {
+  if (!empty($view->locked)) {
+    drupal_set_message(t('Changes cannot be made to a locked view.'), 'error');
+    return;
+  }
+  views_include('cache');
+  $view->changed = TRUE; // let any future object know that this view has changed.
+
+  // Unset handlers; we don't want to write these into the cache
+  unset($view->display_handler);
+  unset($view->current_display);
+  unset($view->default_display);
+  foreach (array_keys($view->display) as $id) {
+    unset($view->display[$id]->handler);
+    unset($view->display[$id]->default_display);
+  }
+  views_object_cache_set('view', $view->name, $view);
+}
+
+
+/**
+ * Specialized menu callback to load a view that is only a default
+ * view.
+ */
+function views_ui_default_load($name) {
+  $view = views_get_view($name);
+  if ($view->type == t('Default')) {
+    return $view;
+  }
+
+  return FALSE;
+}
+
+/**
+ * Check to see if the incoming menu item is js capable or not.
+ */
+function views_ui_js_load($js) {
+  if ($js == 'ajax') {
+    return TRUE;
+  }
+  return 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/CHANGELOG.txt b/drupal/sites/default/boinc/modules/contrib/wysiwyg/CHANGELOG.txt
new file mode 100644
index 0000000..bf7f1f5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/CHANGELOG.txt
@@ -0,0 +1,306 @@
+
+Wysiwyg 6.x-2.x, xxxx-xx-xx
+---------------------------
+
+
+Wysiwyg 6.x-2.4, 2011-06-19
+---------------------------
+#524126 by sun: Re-added #wysiwyg property to enforce no editor via code.
+#1153458 by Deciphered: Fixed TinyMCE 'Verify HTML' setting being ignored.
+#1079694 by TwoD: Fixed Whizzywig not restoring textarea styles when detached.
+#1132142 by tacituseu, TwoD, sun: Fixed nicEdit not removing its submit handler.
+#1143104 by EugenMayer: Fixed CKEditor 3.5.4 version detection.
+#1009880 by AndyF: Fixed another CKEditor selection handling issue.
+#1048556 by cousin_itt, TwoD: Fixed TinyMCE insertdatetime plugin setting.
+#1036900 by mattyoung: Minor code clean-up in wysiwyg_tinymce_version().
+
+
+Wysiwyg 6.x-2.3, 2011-01-30
+---------------------------
+#1025296 by TwoD: Updated CKEditor to support iFrame button.
+#737318 by TwoD: Fixed CKEditor default skin array not being reindexed.
+by sun: Fixed coding style in wysiwyg_schema().
+#964978 by sun, TwoD: Added hook_wysiwyg_editor_settings_alter() documentation.
+#775972 by TwoD, Agileware, sun: Fixed broken user default status preferences.
+#1007066 by TwoD, penguin25: Fixed CKEditor ignores resizable option.
+#613944 by TwoD, sun: Fixed data.node not always present in CKEditor.
+#1009880 by TwoD: Fixed selection handling broken in CKEditor.
+
+
+Wysiwyg 6.x-2.2, 2010-12-20
+---------------------------
+#613944 by TwoD, sun: Fixed data.node not available in CKEditor.
+#748888 by TwoD, sun: Fixed isNode() not called in CKEditor.
+#767550 by TwoD, sun, ungeek: Fixed invalid API docs and logic for
+  $plugin['filename'].
+#988200 by sun: Changed static language list to ISO 639 defaults of Drupal core.
+#973808 by David_Rothstein: Fixed CKEditor incorrectly formatting the <br> tag.
+#773856 by Roi Danton: Added CSS path and file documentation.
+#735186 by TwoD, torbs: Fixed missing Norwegian language code.
+#678580 by TwoD, sun: Fixed Drupal.wysiwygAttachToggleLink breaks click events.
+#497654 by TwoD: Fixed Drupal plugins disabled in FCKeditor/WebKit browsers.
+#735624 by sun: Fixed enabling one button removes default editor toolbar.
+#755610 by sun, TwoD, BrightBold: Fixed white-space in block formats setting
+  breaks editors.
+#713942 by TwoD, sun: Fixed jQuery closure breaks OpenWYSIWYG.
+#679056 by sun, TwoD: Fixed pressing enter in autocomplete detaches editors.
+#80170 by sun: Changed dialog/plugin API for Inline API compatibility.
+#855554 by sun: Merged various changes from 3.x into 2.x.
+#803466 by hotspoons: Fixed TinyMCE image map support in advimage plugin.
+#922436 by TwoD: Fixed Whizzywig Uncaught TypeError in Chrome.
+#922520 by TwoD: Fixed Whizzywig is not detached properly.
+#907186 by TwoD: Fixed Whizzywig v60+ compatibility.
+#765292 by TwoD: Added TinyMCE WordCount plugin.
+#768726 by TwoD: Added TinyMCE AutoResize plugin.
+#781086 by TwoD: Fixed TinyMCE plugin options merged wrongly.
+#767628 by TwoD: Fixed 'The version of markItUp could not be detected' error.
+#651490 by TwoD: Fixed Whizzywig width.
+#715228 by TwoD: Fixed TinyMCE image popups not launching for existing images.
+#606952 by TwoD: Fixed inserting content in fullscreen TinyMCE.
+#593008 by TwoD: Fixed third-party scripts breaking Wysiwyg.
+#695398 by RichieB, Cl1mh4224rd, mcpuddin: Fixed TinyMCE 3.3.9.1 detection.
+#737318 by dboune: Fixed CKEditor default skin depends on filesystem order.
+#775608 by TwoD: Fixed FCKEditor crashes IE on save.
+#824710 by TwoD: CKEditor not disabled upon enabling.
+#752516 by nquocbao, sun: Fixed openwysiwyg version callback.
+#753536 by TwoD: Fixed version detection for Whizzywig.
+#752516 by nquocbao, sun: Fixed file stream warnings in version callbacks.
+
+
+Wysiwyg 6.x-2.1, 2010-03-08
+---------------------------
+#628110 by quicksketch, sun, markus_petrux: Added editor settings alter hook.
+#689218 by wwalc, TwoD, sun: Improved support for CKEditor.
+#695398 by TwoD: Updated support for TinyMCE 3.3.
+#613096 by Scott Reynolds: Fixed no editor appearing for user signature field.
+#696040 by Dave Reid: Fixed missing Cancel link on profile form.
+#594322 by TwoD: Added insert method for NicEdit.
+#659200 by TwoD: Fixed YUI Editor content lost in IE.
+#594928 by ericbellot, TwoD, sun: Fixed 'attribs' button missing in TinyMCE.
+#557090 by TwoD: Fixed Whizzywig 56 instance not removed on detach().
+#667848 by TwoD, kaakuu: Fixed FCKeditor is not properly detached in IE.
+#695768 by sun: Fixed #resizable removed when no editor profiles are loaded.
+#631494 by TwoD: Fixed multi-site libraries directory failure for WYMeditor.
+#660080 by TwoD: Fixed Notice: Undefined offset.
+#613922 by TwoD, sun: Fixed PHP warning when saving profiles.
+#582298 by dereine: Added auto-paste from Word detection for FCKeditor.
+#597852 by sun: Fixed missing Turkish in language list.
+#620176 by sun: Fixed missing Ukrainian in language list.
+#613480 by TwoD, Dave Reid: Fixed PHP 5.3 compatibility.
+#462146 by TwoD: Cleaned up CKEditor implementation.
+#380586 by SimonEast: Updated YUI editor: Version detection not working.
+#610132 by TwoD: Updated CKEditor 3.0.1, stylesheets and version check.
+#620858 by quicksketch: Fixed focus event not firing for CKeditor.
+#585932 by sun: Synced various clean-ups from 7.x.
+#489156 by sun: Removed orphan global 'showToggle' JS setting.
+#462146 by sun, Niels Hackius: Fixed version detection for CKeditor.
+#545210 by sun: Fixed default value for editor toggle link.
+#372826 by Roi Danton, sun: Added Wysiwyg API developer documentation.
+by sun: Fixed PHP notice.
+#514912 by Likeless, sun: Added plugin/button handling for WYMeditor.
+#538996 by darktygur: Fixed 404 errors for non-existing theme CSS files.
+#509570 by Rob Loach, sun: Added forced detaching of editor upon form submit.
+#526644 by Darren Oh: Fixed broken editor theme validation.
+#490914 by sun: Fixed JS/CSS not updated after update with caching enabled.
+#522440 by authentictech, sun: UX: Fixed user interface for Wysiwyg profiles.
+#507608 by jfh: Added WYMeditor instance API methods.
+by sun: Fixed form_build_id not removed from serialized profile settings.
+#496744 by TwoD: Fixed FCKeditor: "Apply source formatting" not working.
+#462146 by TwoD, et al: Added support for CKeditor.
+#490270 by sun: Fixed openWYSIWYG displays no buttons by default.
+#490266 by sun: Fixed JS error when wysiwyg profile contains no buttons.
+#400482 by sun: Fixed editor.instance.prepareContent() breaks editor's native
+  markup handling. Drupal plugin authors should add the CSS class
+  'drupal-content' to prevent the editor selection to activate internal editor
+  buttons.
+#394068 by kswan: Fixed missing button icons in markItUp.
+
+
+Wysiwyg 6.x-2.0, 2009-06-10
+---------------------------
+#474908 by TwoD: Fixed Teaser break causing error in IE8.
+by sun: Major code clean-up.
+#331089 by wwalc: Fixed FCKeditor toolbar buttons do not wrap.
+#407014 by sun: Fixed/removed migration from other editor integration modules.
+#485264 by sun: Changed installation instructions to be more concise.
+#479514 by sun: Fixed native plugin loading for TinyMCE (follow-up).
+#434590 by sun: Fixed path admin/settings/wysiwyg not found.
+#479514 by TwoD, sun: Added native plugin support for FCKeditor.
+#341054 by sun: Fixed toggle link configuration setting not working.
+by sun: Fixed markItUp button icons are not displayed.
+by sun: Added openWYSIWYG editor support.
+#362137 by jfh, sun: Fixed WYMeditor broken when JS/CSS aggregation is enabled.
+#328252 by sun: Added TinyMCE plugin BBCode for 3.x.
+#429926 by TwoD, sun: Fixed TinyMCE broken due to renamed Flash/Media plugin.
+#342864 by davexoxide, sun: Added YUI editor support.
+#332139 by sun: Fixed editor must not be changed when profile is configured.
+#362137 by jfh: Added WYMeditor support.
+#470928 by jfh, sun: Fixed Drupal.wysiwyg.clone turns arrays into objects.
+#445826 by TwoD: Fixed FCKeditor: Drupal.wysiwyg.activeId not updated.
+#478324 by jeffschuler: Fixed typo in profile configuration form.
+#373542 by sun: Fixed encoding of HTML entities for certain languages.
+#320562 by sun: Changed location for external editor libraries.
+#449134 by sun: Fixed stylesheets of theme missing in node form previews.
+
+
+Wysiwyg 6.x-2.0-ALPHA1, 2009-05-17
+----------------------------------
+#403728 by jfduchesneau: Fixed none.js breaks if textarea.js is not loaded.
+#454992 by sun: Fixed drupal_get_js() query string 'q' breaks plugin loading.
+#419696 by sun: Fixed native plugins plugins are not loaded for all profiles.
+#414768 by sun: Fixed Wysiwyg API not working in Konqueror.
+#293803 by sun: Fixed "Show summary in full view" checkbox not displayed.
+#416742 by sun: Fixed type casting of $profile in profile configuration form.
+#404532 by TwoD: Fixed Teaser break comment stripped in IE.
+#380698 by TwoD: Added Drupal plugin support for FCKeditor.
+#380698 by TwoD, sun: Added Drupal plugin support for FCKeditor (part I).
+#398848 by sun: Added support for TinyMCE 3.1.
+#394068 by StephaneC: markItUp: Fixed icons not displayed due to #385736.
+#385974 by sun: Fixed form element description for CSS path (for Define CSS).
+#390460 by sun: Fixed broken plugin loading due to #359626.
+#385736 by sun: Fixed markItUp: Wrong editor library location.
+#308912 by sun: Fixed TinyMCE: Buttons do not wrap in IE/Chrome.
+#380586 by sun, hass: YUI editor: Fixed version detection.
+#390224 by hass: Fixed JS error YAHOO.widget.Editor is not a constructor.
+#359626 by sun: Fixed external/Drupal plugins are not loaded for all profiles.
+#369115 by sun: Fixed TinyMCE's URL conversion magic breaks some input filters.
+#376400 by TwoD: Fixed bad grammar in help text on profile overview page.
+#367632 by sun: Fixed $this and i JavaScript variables defined in global scope.
+#319363 by sun: Fixed missing spacer.gif for Teaser break plugin.
+#373672 by chawl: Added (native) xhtmlextras plugin for TinyMCE 3.
+#287025 by sun: Fixed native editor plugin options for TinyMCE and FCKeditor.
+#373542 by sun: Fixed TinyMCE: entity_encoding 'raw' removes HTML entities.
+#372806 by sun: Fixed block format configuration form element description.
+#370277 by sun: Fixed "Uncaught SyntaxError: Unexpected token" in IE/Chrome.
+#367632 by sun: Fixed "Unexpected identifier, string or number" error in IE.
+#367632 by sun: Fixed invalid JavaScript syntax.
+#319363 by sun: Follow-up: Synced 1.x with 2.x where possible.
+#319363 by sun, quicksketch: Rewrote editor plugin API.  The new plugin API
+  allows Drupal modules to expose editor plugins for ANY editor without
+  implementing editor-specific code.  Major milestone for better content-editing
+  in Drupal.
+#364782 by sun: Fixed theme stylesheets not properly loaded.
+#352938 by sun: Fixed JS error (blank page) in IE when plugins are loaded.
+#331089 by wwalc, sun: Added custom toolbar configuration support for FCKeditor.
+#331089 by sun: Fixed PHP notice for 'user_choose'; FCKeditor clean-up.
+#344230 by wwalc: Fixed wrong editor base path setting for FCKeditor.
+#361289 by sun: Fixed CSS files do not need to use media 'screen'.
+#360696 by sun: Fixed IE does not trigger onChange event when selecting an input
+  format.
+#342376 by sun: Extended API to allow "preprocess" JavaScript option for some
+  editors.
+#352295 by sun: Added markItUp editor support.
+#352703 by sun: Fixed wrong default configuration options for TinyMCE 3.2.1+.
+#348317 by sun: Fixed TinyMCE's extended_valid_elements for advlink/advimage
+  plugin.
+#348986 by sun: Added CSS class for toggle link container.
+#342864 by davexoxide, sun: Added YUI editor support.
+#343217 by sun: Fixed improperly capitalized library script name for nicEdit.
+#341267 by sun: Fixed improper test for internal editor plugins.
+#341996 by sun: Fixed editor cannot be re-enabled with one input format only.
+#341267 by sun: Added support for extensions that do not need to be loaded.
+
+
+Wysiwyg 6.x-0.5, 2008-12-01
+---------------------------
+#340758 by sun: Changed installation instructions to be displayed permanently.
+#322657 by sun: Fixed "Enabled by default" option does not work when disabled.
+#328052 by sun: Fixed switching input formats leads to wrong editor/state.
+#337569 by sun: Fixed different profiles for same editor are not respected.
+#340195 by sun: Fixed #after_build function not invoked on all forms.
+#333521 by sun: Fixed TinyMCE version detection to look at the actual script.
+#329657 by svendecabooter, sun: Added Whizzywig support.
+#333521 by sun: Fixed TinyMCE version detection docs.
+#327100 by sun: Changed access permission for settings page to 'administer
+  filters' to prevent incomplete updates.
+#322731 by sun: Fixed improper use of t() in module install file.
+#329410 by sun: Fixed editor not loaded if there is only one input format.
+#324366 by sun: Fixed "Illegal offset type" error on custom content-types.
+#328948 by sun: Fixed PHP notices when editors are assigned, but not configured.
+#327710 by sun: Fixed nicEdit version could not be detected.
+#328116 by sun: Added Safari plugin for TinyMCE 3.
+#327710 by sun: Added nicEdit support.
+#323855 by sun: Increased supported version of jWYSIWYG to 0.5.
+#323671 by sun: Fixed TinyMCE editor not resized when browser is resized.
+#327152 by sun: Fixed breadcrumbs for profile configuration pages.
+#323855 by Rob Loach, sun: Added jWYSIWYG support.
+#327100 by sun: Associate editors/profiles with input formats. Major milestone.
+#325980 by markus_petrux: Added Spanish/Catalan translation for Break plugin.
+#323795 by sun: Removed obsolete Wysiwyg Editor module files.
+#308912 by sun: Fixed alignment of editor buttons in TinyMCE 3.
+#316507 by sun: Fixed TinyMCE 3 not detached properly from AJAX contents.
+#320559 by markus_petrux, sun: Added confirmation form to delete profiles.
+
+
+Wysiwyg 6.x-0.4, 2008-10-14
+---------------------------
+#321216 by sun: Replaced Wysiwyg Editor module with Wysiwyg module.
+#321086 by sun: Fixed (old-style) Teaser break plugin breaks TinyMCE 3.
+#316507 by sun: Code clean-up; editor settings should be cloned for init, too.
+#282717 by sun: Fixed FCKeditor default settings while FCKeditor maintainers get
+  up and running.
+#319363 by sun: Changed JS settings namespace 'wysiwygEditor' to 'wysiwyg'.
+#319363 by sun: Code clean-up; fixed missing namespace change in tinymce-3.js.
+#273408 by quicksketch: Added blockquote button for TinyMCE 3.
+#319363 by sun: Changed JavaScript namespaces and centralized namespace
+  initialization.
+#270780 by sun: Fixed TinyMCE 3 support for external plugins.
+#309832 by sun: Fixed README.txt.
+#253600 by sun: Changed editor integration so that client-side editors attach to
+  input formats instead of textareas and are invoked for input format enabled
+  textareas only.
+#282717 by sun: Added (basic) FCKeditor support.
+#316507 by sun: Added Drupal.wysiwyg function stacks to execute editor library
+  specific actions upon initializing, attaching, detaching, and toggling an
+  editor. Editor specific JavaScript resides in separate files now, as specified
+  and returned by implementations of hook_editor().
+  Wysiwyg is a real API finally, supporting multiple editors and editor versions.
+#316507 by sun: Rewrote Wysiwyg API's internal architecture to support multiple
+  editors.
+
+
+Wysiwyg 6.x-0.3, 2008-09-12
+---------------------------
+#125267 by sun: Removed Safari browser warning configuration option.
+#304243 by sun: Fixed profile configuration improperly passed to JavaScript.
+#304243 by sun: Code clean-up for wysiwyg_editor_profile_overview().
+#289218 by gustav: Fixed E^ALL notice if node has no body field.
+#304243 by sun: Code clean-up for wysiwyg_editor_user_status().
+#299108 by toniw: Added setting for TinyMCE's auto-cleanup paste feature.
+#293916 by sun: Clarified TinyMCE compatibility in README.txt.
+#293425 by sun: Fixed foreach warning during upgrade from TinyMCE module.
+#292517 by sun: Fixed SQL error during upgrade from TinyMCE module.
+#286470 by chayner, sun: Fixed wrong editorBasePath in editor configuration.
+#227687 by sun: Fixed improperly capitalized package name.
+#288028 by Matthew Davidson: Fixed outdated check for PHP input filter.
+#280727 by sun: Removed gzip compressor from installation instructions.
+
+
+Wysiwyg 5.x-0.2, 2008-07-16
+---------------------------
+by sun: Fixed JavaScript errors when JS aggregation/compression is enabled.
+#268562 by sun: Code clean-up; changed format for custom defined CSS classes
+  and removed error-prone auto-layout of buttons in favor of aligning them in
+  one row with a stylesheet; may break existing profiles.
+#270730 by hass, sun: Added German translation for Teaser break plugin.
+#268838 by sun: Fixed PHP warning if no buttons are enabled for a profile.
+#268838 by sun: Ported to Drupal 6.x.
+#152046 by sun: Added hook_wysiwyg_plugin().
+#268562 by sun: Code clean-up.
+#60667 by sun: Fixed wrong editor profile is loaded when user is granted access
+  to more than one profile.
+#264739 by sun: Fixed missing t() around some profile settings options.
+
+
+Wysiwyg 5.x-0.1, 2008-06-07
+---------------------------
+#264739 by sun: Improved output strings.
+#264739 by hass, sun: Fixed potx error due to wrong t() string.
+#264411 by sun: Cleaned coding-style using coder_format script.
+#264411 by sun: Moved admin functions into separate include file.
+#264411 by sun: Added TinyMCE data import upon installation.
+#264411 by sun: Renamed module to Wysiwyg Editor.
+#118747 by nedjo, sun: Upgraded code for jQuery.
+Initial fork of TinyMCE module (2008-05-30).
+
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/LICENSE.txt b/drupal/sites/default/boinc/modules/contrib/wysiwyg/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/README.txt b/drupal/sites/default/boinc/modules/contrib/wysiwyg/README.txt
new file mode 100644
index 0000000..c283b93
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/README.txt
@@ -0,0 +1,52 @@
+
+-- SUMMARY --
+
+Wysiwyg API allows to users of your site to use WYSIWYG/rich-text, and other
+client-side editors for editing contents.  This module depends on third-party
+editor libraries, most often based on JavaScript.
+
+For a full description visit the project page:
+  http://drupal.org/project/wysiwyg
+Bug reports, feature suggestions and latest developments:
+  http://drupal.org/project/issues/wysiwyg
+
+
+-- REQUIREMENTS --
+
+* None.
+
+
+-- INSTALLATION --
+
+* Install as usual, see http://drupal.org/node/70151 for further information.
+
+* Go to Administer > Site configuration > Wysiwyg, and follow the displayed
+  installation instructions to download and install one of the supported
+  editors.
+
+
+-- CONFIGURATION --
+
+* Go to Administer > Site configuration > Input formats and
+
+  - either configure the Full HTML format, assign it to trusted roles, and
+    disable "HTML filter", "Line break converter", and (optionally) "URL filter".
+
+  - or add a new input format, assign it to trusted roles, and ensure that above
+    mentioned input filters are disabled.
+
+* Setup editor profiles in Administer > Site configuration > Wysiwyg.
+
+
+-- CONTACT --
+
+Current maintainers:
+* Daniel F. Kudwien (sun) - http://drupal.org/user/54136
+* Henrik Danielsson (TwoD) - http://drupal.org/user/244227
+
+This project has been sponsored by:
+* UNLEASHED MIND
+  Specialized in consulting and planning of Drupal powered sites, UNLEASHED
+  MIND offers installation, development, theming, customization, and hosting
+  to get you started. Visit http://www.unleashedmind.com for more information.
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/ckeditor.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/ckeditor.inc
new file mode 100644
index 0000000..0a56fe0
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/ckeditor.inc
@@ -0,0 +1,333 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for CKEditor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_ckeditor_editor() {
+  $editor['ckeditor'] = array(
+    'title' => 'CKEditor',
+    'vendor url' => 'http://ckeditor.com',
+    'download url' => 'http://ckeditor.com/download',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Default',
+        'files' => array(
+          'ckeditor.js' => array('preprocess' => FALSE),
+        ),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array(
+          'ckeditor_source.js' => array('preprocess' => FALSE),
+        ),
+      ),
+    ),
+    'version callback' => 'wysiwyg_ckeditor_version',
+    'themes callback' => 'wysiwyg_ckeditor_themes',
+    'settings callback' => 'wysiwyg_ckeditor_settings',
+    'plugin callback' => 'wysiwyg_ckeditor_plugins',
+    'plugin settings callback' => 'wysiwyg_ckeditor_plugin_settings',
+    'proxy plugin' => array(
+      'drupal' => array(
+        'load' => TRUE,
+        'proxy' => TRUE,
+      ),
+    ),
+    'proxy plugin settings callback' => 'wysiwyg_ckeditor_proxy_plugin_settings',
+    'versions' => array(
+      '3.0.0.3665' => array(
+        'js files' => array('ckeditor-3.0.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_ckeditor_version($editor) {
+  $library = $editor['library path'] . '/ckeditor.js';
+  if (!file_exists($library)) {
+    return;
+  }
+  $library = fopen($library, 'r');
+  $max_lines = 8;
+  while ($max_lines && $line = fgets($library, 500)) {
+    // version:'CKEditor 3.0 SVN',revision:'3665'
+    // version:'3.0 RC',revision:'3753'
+    // version:'3.0.1',revision:'4391'
+    if (preg_match('@version:\'(?:CKEditor )?([\d\.]+)(?:.+revision:\'([\d]+))?@', $line, $version)) {
+      fclose($library);
+      // Version numbers need to have three parts since 3.0.1.
+      $version[1] = preg_replace('/^(\d+)\.(\d+)$/', '${1}.${2}.0', $version[1]);
+      return $version[1] . '.' . $version[2];
+    }
+    $max_lines--;
+  }
+  fclose($library);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_ckeditor_themes($editor, $profile) {
+  // @todo Skins are not themes but this will do for now.
+  $path = $editor['library path'] . '/skins/';
+  if (file_exists($path) && ($dir_handle = opendir($path))) {
+    $themes = array();
+    while ($file = readdir($dir_handle)) {
+      if (is_dir($path . $file) && substr($file, 0, 1) != '.' && $file != 'CVS') {
+        $themes[] = $file;
+      }
+    }
+    closedir($dir_handle);
+    natcasesort($themes);
+    $themes = array_values($themes);
+    return !empty($themes) ? $themes : array('default');
+  }
+  else {
+    return array('default');
+  }
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_ckeditor_settings($editor, $config, $theme) {
+  $settings = array(
+    'baseHref' => $GLOBALS['base_url'] . '/',
+    'width' => '100%',
+    // For better compatibility with smaller textareas.
+    'resize_minWidth' => 450,
+    'height' => 420,
+    // @todo Do not use skins as themes and add separate skin handling.
+    'theme' => 'default',
+    'skin' => !empty($theme) ? $theme : 'kama',
+    // By default, CKEditor converts most characters into HTML entities. Since
+    // it does not support a custom definition, but Drupal supports Unicode, we
+    // disable at least the additional character sets. CKEditor always converts
+    // XML default characters '&', '<', '>'.
+    // @todo Check whether completely disabling ProcessHTMLEntities is an option.
+    'entities_latin' => FALSE,
+    'entities_greek' => FALSE,
+  );
+
+  // Add HTML block format settings; common block formats are already predefined
+  // by CKEditor.
+  if (isset($config['block_formats'])) {
+    $block_formats = explode(',', drupal_strtolower($config['block_formats']));
+    $predefined_formats = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'address', 'div');
+    foreach (array_diff($block_formats, $predefined_formats) as $tag) {
+      $tag = trim($tag);
+      $settings["format_$tag"] = array('element' => $tag);
+    }
+    $settings['format_tags'] = implode(';', $block_formats);
+  }
+
+  if (isset($config['apply_source_formatting'])) {
+    $settings['apply_source_formatting'] = $config['apply_source_formatting'];
+  }
+
+  if (isset($config['css_setting'])) {
+    // Versions below 3.0.1 could only handle one stylesheet.
+    if (version_compare($editor['installed version'], '3.0.1.4391', '<')) {
+      if ($config['css_setting'] == 'theme') {
+        $settings['contentsCss'] = reset(wysiwyg_get_css());
+      }
+      elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+        $settings['contentsCss'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+      }
+    }
+    else {
+      if ($config['css_setting'] == 'theme') {
+        $settings['contentsCss'] = wysiwyg_get_css();
+      }
+      elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+        $settings['contentsCss'] = explode(',', strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())));
+      }
+    }
+  }
+
+  if (isset($config['language'])) {
+    $settings['language'] = $config['language'];
+  }
+  if (isset($config['resizing'])) {
+    // CKEditor tests "!== false", so ensure it is a Boolean.
+    $settings['resize_enabled'] = (bool) $config['resizing'];
+  }
+  if (isset($config['toolbar_loc'])) {
+    $settings['toolbarLocation'] = $config['toolbar_loc'];
+  }
+
+  $settings['toolbar'] = array();
+  if (!empty($config['buttons'])) {
+    $extra_plugins = array();
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['toolbar'][] = $button;
+          }
+          // Add external Drupal plugins to the list of extensions.
+          if ($type == 'buttons' && !empty($plugins[$plugin]['proxy'])) {
+            $extra_plugins[] = $button;
+          }
+          // Add external plugins to the list of extensions.
+          elseif ($type == 'buttons' && empty($plugins[$plugin]['internal'])) {
+            $extra_plugins[] = $plugin;
+          }
+          // Add internal buttons that also need to be loaded as extension.
+          elseif ($type == 'buttons' && !empty($plugins[$plugin]['load'])) {
+            $extra_plugins[] = $plugin;
+          }
+          // Add plain extensions.
+          elseif ($type == 'extensions' && !empty($plugins[$plugin]['load'])) {
+            $extra_plugins[] = $plugin;
+          }
+          // Allow plugins to add or override global configuration settings.
+          if (!empty($plugins[$plugin]['options'])) {
+            $settings = array_merge($settings, $plugins[$plugin]['options']);
+          }
+        }
+      }
+    }
+    if (!empty($extra_plugins)) {
+      $settings['extraPlugins'] = implode(',', $extra_plugins);
+    }
+  }
+  // For now, all buttons are placed into one row.
+  $settings['toolbar'] = array($settings['toolbar']);
+
+  return $settings;
+}
+
+/**
+ * Build a JS settings array of native external plugins that need to be loaded separately.
+ */
+function wysiwyg_ckeditor_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Register all plugins that need to be loaded.
+    if (!empty($plugin['load'])) {
+      $settings[$name] = array();
+      // Add path for native external plugins.
+      if (empty($plugin['internal']) && isset($plugin['path'])) {
+        $settings[$name]['path'] = base_path() . $plugin['path'] . '/';
+      }
+      // Force native internal plugins to use the standard path.
+      else {
+        $settings[$name]['path'] = base_path() . $editor['library path'] . '/plugins/' . $name . '/';
+      }
+      // CKEditor defaults to 'plugin.js' on its own when filename is not set.
+      if (!empty($plugin['filename'])) {
+        $settings[$name]['fileName'] = $plugin['filename'];
+      }
+    }
+  }
+  return $settings;
+}
+
+/**
+ * Build a JS settings array for Drupal plugins loaded via the proxy plugin.
+ */
+function wysiwyg_ckeditor_proxy_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Populate required plugin settings.
+    $settings[$name] = $plugin['dialog settings'] + array(
+      'title' => $plugin['title'],
+      'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'],
+      'iconTitle' => $plugin['icon title'],
+      // @todo These should only be set if the plugin defined them.
+      'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'],
+    );
+  }
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_ckeditor_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'Bold' => t('Bold'), 'Italic' => t('Italic'), 'Underline' => t('Underline'),
+        'Strike' => t('Strike-through'),
+        'JustifyLeft' => t('Align left'), 'JustifyCenter' => t('Align center'), 'JustifyRight' => t('Align right'), 'JustifyBlock' => t('Justify'),
+        'BulletedList' => t('Bullet list'), 'NumberedList' => t('Numbered list'),
+        'Outdent' => t('Outdent'), 'Indent' => t('Indent'),
+        'Undo' => t('Undo'), 'Redo' => t('Redo'),
+        'Link' => t('Link'), 'Unlink' => t('Unlink'), 'Anchor' => t('Anchor'),
+        'Image' => t('Image'),
+        'TextColor' => t('Forecolor'), 'BGColor' => t('Backcolor'),
+        'Superscript' => t('Superscript'), 'Subscript' => t('Subscript'),
+        'Blockquote' => t('Blockquote'), 'Source' => t('Source code'),
+        'HorizontalRule' => t('Horizontal rule'),
+        'Cut' => t('Cut'), 'Copy' => t('Copy'), 'Paste' => t('Paste'),
+        'PasteText' => t('Paste Text'), 'PasteFromWord' => t('Paste from Word'),
+        'ShowBlocks' => t('Show blocks'),
+        'RemoveFormat' => t('Remove format'),
+        'SpecialChar' => t('Character map'),
+        'Format' => t('HTML block format'), 'Font' => t('Font'), 'FontSize' => t('Font size'), 'Styles' => t('Font style'),
+        'Table' => t('Table'),
+        'SelectAll' => t('Select all'), 'Find' => t('Search'), 'Replace' => t('Replace'),
+        'Flash' => t('Flash'), 'Smiley' => t('Smiley'),
+        'CreateDiv' => t('Div container'),
+        'Iframe' => t('iFrame'),
+        'Maximize' => t('Maximize'),
+        'SpellChecker' => t('Check spelling'), 'Scayt' => t('Check spelling as you type'),
+        'About' => t('About'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+
+  if (version_compare($editor['installed version'], '3.1.0.4885', '<')) {
+    unset($plugins['default']['buttons']['CreateDiv']);
+  }
+  if (version_compare($editor['installed version'], '3.5.0.6260', '<')) {
+    unset($plugins['default']['buttons']['Iframe']);
+  }
+  return $plugins;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/openwysiwyg.css b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/openwysiwyg.css
new file mode 100644
index 0000000..2fea7fb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/openwysiwyg.css
@@ -0,0 +1,11 @@
+
+/**
+ * openWYSIWYG.
+ */
+table.tableTextareaEditor, table.tableTextareaEditor table {
+  margin: 0;
+  border-collapse: separate;
+}
+table.tableTextareaEditor td {
+  padding: 0;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/tinymce-2.css b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/tinymce-2.css
new file mode 100644
index 0000000..4aa201d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/tinymce-2.css
@@ -0,0 +1,27 @@
+
+/**
+ * TinyMCE 2.x
+ */
+table.mceEditor {
+  clear: left;
+}
+
+/**
+ * Align all buttons and separators in a single row, so they wrap into multiple
+ * rows if required.
+ */
+.mceToolbarTop a, .mceToolbarBottom a {
+  float: left;
+}
+.mceSeparatorLine {
+  float: left;
+  margin-top: 3px;
+}
+.mceSelectList {
+  float: left;
+  margin-bottom: 1px;
+}
+/* Place table plugin buttons into new row */
+#mce_editor_0_table, #mce_editor_1_table {
+  clear: left;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/tinymce-3.css b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/tinymce-3.css
new file mode 100644
index 0000000..5d0ebe9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/css/tinymce-3.css
@@ -0,0 +1,24 @@
+
+/**
+ * TinyMCE 3.x
+ */
+table.mceLayout {
+  clear: left;
+}
+
+/**
+ * Align all buttons and separators in a single row, so they wrap into multiple
+ * rows if required.
+ */
+.mceToolbar td {
+  display: inline;
+}
+.mceToolbar a,
+.mceSeparator {
+  float: left;
+}
+.mceListBox,
+.mceSplitButton {
+  float: left;
+  margin-bottom: 1px;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/fckeditor.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/fckeditor.inc
new file mode 100644
index 0000000..70954da
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/fckeditor.inc
@@ -0,0 +1,292 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for FCKeditor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_fckeditor_editor() {
+  $editor['fckeditor'] = array(
+    'title' => 'FCKeditor',
+    'vendor url' => 'http://www.fckeditor.net',
+    'download url' => 'http://www.fckeditor.net/download',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Default',
+        'files' => array('fckeditor.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_fckeditor_version',
+    'themes callback' => 'wysiwyg_fckeditor_themes',
+    'settings callback' => 'wysiwyg_fckeditor_settings',
+    'plugin callback' => 'wysiwyg_fckeditor_plugins',
+    'plugin settings callback' => 'wysiwyg_fckeditor_plugin_settings',
+    'proxy plugin' => array(
+      'drupal' => array(
+        'load' => TRUE,
+        'proxy' => TRUE,
+      ),
+    ),
+    'proxy plugin settings callback' => 'wysiwyg_fckeditor_proxy_plugin_settings',
+    'versions' => array(
+      '2.6' => array(
+        'js files' => array('fckeditor-2.6.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_fckeditor_version($editor) {
+  $library = $editor['library path'] . '/fckeditor.js';
+  if (!file_exists($library)) {
+    return;
+  }
+  $library = fopen($library, 'r');
+  $max_lines = 100;
+  while ($max_lines && $line = fgets($library, 60)) {
+    if (preg_match('@^FCKeditor.prototype.Version\s*= \'([\d\.]+)@', $line, $version)) {
+      fclose($library);
+      return $version[1];
+    }
+    $max_lines--;
+  }
+  fclose($library);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_fckeditor_themes($editor, $profile) {
+  return array('default', 'office2003', 'silver');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_fckeditor_settings($editor, $config, $theme) {
+  $settings = array(
+    'EditorPath' => base_path() . $editor['library path'] . '/',
+    'SkinPath' => base_path() . $editor['library path'] . '/editor/skins/' . $theme . '/',
+    'CustomConfigurationsPath' => base_path() . drupal_get_path('module', 'wysiwyg') . '/editors/js/fckeditor.config.js',
+    'Width' => '100%',
+    'Height' => 420,
+    'LinkBrowser' => FALSE,
+    'LinkUpload' => FALSE,
+    'ImageBrowser' => FALSE,
+    'ImageUpload' => FALSE,
+    'FlashBrowser' => FALSE,
+    'FlashUpload' => FALSE,
+    // By default, FCKeditor converts most characters into HTML entities. Since
+    // it does not support a custom definition, but Drupal supports Unicode, we
+    // disable at least the additional character sets. FCKeditor always converts
+    // XML default characters '&', '<', '>'.
+    // @todo Check whether completely disabling ProcessHTMLEntities is an option.
+    'IncludeLatinEntities' => FALSE,
+    'IncludeGreekEntities' => FALSE,
+  );
+  if (isset($config['block_formats'])) {
+    $settings['FontFormats'] = strtr($config['block_formats'], array(',' => ';'));
+  }
+  if (isset($config['apply_source_formatting'])) {
+    $settings['FormatOutput'] = $settings['FormatSource'] = $config['apply_source_formatting'];
+  }
+  if (isset($config['paste_auto_cleanup_on_paste'])) {
+    $settings['AutoDetectPasteFromWord'] = $config['paste_auto_cleanup_on_paste'];
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['EditorAreaCSS'] = implode(',', wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['EditorAreaCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  // Use our custom toolbar set.
+  $settings['ToolbarSet'] = 'Wysiwyg';
+  // Populate our custom toolbar set for fckeditor.config.js.
+  $settings['buttons'] = array();
+  if (!empty($config['buttons'])) {
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['buttons'][] = $button;
+          }
+          // Allow plugins to add or override global configuration settings.
+          if (!empty($plugins[$plugin]['options'])) {
+            $settings = array_merge($settings, $plugins[$plugin]['options']);
+          }
+        }
+      }
+    }
+  }
+  // For now, all buttons are placed into one row.
+  $settings['buttons'] = array($settings['buttons']);
+
+  return $settings;
+}
+
+/**
+ * Build a JS settings array of native external plugins that need to be loaded separately.
+ */
+function wysiwyg_fckeditor_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Register all plugins that need to be loaded.
+    if (!empty($plugin['load'])) {
+      $settings[$name] = array();
+      // Add path for native external plugins; internal ones do not need a path.
+      if (empty($plugin['internal']) && isset($plugin['path'])) {
+        // All native FCKeditor plugins use the filename fckplugin.js.
+        $settings[$name]['path'] = base_path() . $plugin['path'] . '/';
+      }
+      if (!empty($plugin['languages'])) {
+        $settings[$name]['languages'] = $plugin['languages'];
+      }
+    }
+  }
+  return $settings;
+}
+
+/**
+ * Build a JS settings array for Drupal plugins loaded via the proxy plugin.
+ */
+function wysiwyg_fckeditor_proxy_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Populate required plugin settings.
+    $settings[$name] = $plugin['dialog settings'] + array(
+      'title' => $plugin['title'],
+      'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'],
+      'iconTitle' => $plugin['icon title'],
+      // @todo These should only be set if the plugin defined them.
+      'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'],
+    );
+  }
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_fckeditor_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'Bold' => t('Bold'), 'Italic' => t('Italic'), 'Underline' => t('Underline'),
+        'StrikeThrough' => t('Strike-through'),
+        'JustifyLeft' => t('Align left'), 'JustifyCenter' => t('Align center'), 'JustifyRight' => t('Align right'), 'JustifyFull' => t('Justify'),
+        'UnorderedList' => t('Bullet list'), 'OrderedList' => t('Numbered list'),
+        'Outdent' => t('Outdent'), 'Indent' => t('Indent'),
+        'Undo' => t('Undo'), 'Redo' => t('Redo'),
+        'Link' => t('Link'), 'Unlink' => t('Unlink'), 'Anchor' => t('Anchor'),
+        'Image' => t('Image'),
+        'TextColor' => t('Forecolor'), 'BGColor' => t('Backcolor'),
+        'Superscript' => t('Superscript'), 'Subscript' => t('Subscript'),
+        'Blockquote' => t('Blockquote'), 'Source' => t('Source code'),
+        'Rule' => t('Horizontal rule'),
+        'Cut' => t('Cut'), 'Copy' => t('Copy'), 'Paste' => t('Paste'),
+        'PasteText' => t('Paste Text'), 'PasteWord' => t('Paste from Word'),
+        'ShowBlocks' => t('Show blocks'),
+        'RemoveFormat' => t('Remove format'),
+        'SpecialChar' => t('Character map'),
+        'About' => t('About'),
+        'FontFormat' => t('HTML block format'), 'FontName' => t('Font'), 'FontSize' => t('Font size'), 'Style' => t('Font style'),
+        'Table' => t('Table'),
+        'Find' => t('Search'), 'Replace' => t('Replace'), 'SelectAll' => t('Select all'),
+        'CreateDiv' => t('Create DIV container'),
+        'Flash' => t('Flash'), 'Smiley' => t('Smiley'),
+        'FitWindow' => t('FitWindow'),
+        'SpellCheck' => t('Check spelling'),
+      ),
+      'internal' => TRUE,
+    ),
+    'autogrow' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'extensions' => array(
+        'autogrow' => t('Autogrow'),
+      ),
+      'options' => array(
+        'AutoGrowMax' => 800,
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'bbcode' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'extensions' => array(
+        'bbcode' => t('BBCode'),
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'dragresizetable' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'extensions' => array(
+        'dragresizetable' => t('Table drag/resize'),
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'tablecommands' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'buttons' => array(
+        'TableCellProp' => t('Table: Cell properties'),
+        'TableInsertRowAfter' => t('Table: Insert row after'),
+        'TableInsertColumnAfter' => t('Table: Insert column after'),
+        'TableInsertCellAfter' => t('Table: Insert cell after'),
+        'TableDeleteRows' => t('Table: Delete rows'),
+        'TableDeleteColumns' => t('Table: Delete columns'),
+        'TableDeleteCells' => t('Table: Delete cells'),
+        'TableMergeCells' => t('Table: Merge cells'),
+        'TableHorizontalSplitCell' => t('Table: Horizontal split cell'),
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+  );
+  return $plugins;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/ckeditor-3.0.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/ckeditor-3.0.js
new file mode 100644
index 0000000..d2cf300
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/ckeditor-3.0.js
@@ -0,0 +1,217 @@
+(function($) {
+
+Drupal.wysiwyg.editor.init.ckeditor = function(settings) {
+  // Plugins must only be loaded once. Only the settings from the first format
+  // will be used but they're identical anyway.
+  var registeredPlugins = {};
+  for (var format in settings) {
+    if (Drupal.settings.wysiwyg.plugins[format]) {
+      // Register native external plugins.
+      // Array syntax required; 'native' is a predefined token in JavaScript.
+      for (var pluginName in Drupal.settings.wysiwyg.plugins[format]['native']) {
+        if (!registeredPlugins[pluginName]) {
+          var plugin = Drupal.settings.wysiwyg.plugins[format]['native'][pluginName];
+          CKEDITOR.plugins.addExternal(pluginName, plugin.path, plugin.fileName);
+          registeredPlugins[pluginName] = true;
+        }
+      }
+      // Register Drupal plugins.
+      for (var pluginName in Drupal.settings.wysiwyg.plugins[format].drupal) {
+        if (!registeredPlugins[pluginName]) {
+          Drupal.wysiwyg.editor.instance.ckeditor.addPlugin(pluginName, Drupal.settings.wysiwyg.plugins[format].drupal[pluginName], Drupal.settings.wysiwyg.plugins.drupal[pluginName]);
+          registeredPlugins[pluginName] = true;
+        }
+      }
+    }
+  }
+};
+
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.ckeditor = function(context, params, settings) {
+  // Apply editor instance settings.
+  CKEDITOR.config.customConfig = '';
+
+  settings.on = {
+    instanceReady: function(ev) {
+      var editor = ev.editor;
+      // Get a list of block, list and table tags from CKEditor's XHTML DTD.
+      // @see http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Output_Formatting.
+      var dtd = CKEDITOR.dtd;
+      var tags = CKEDITOR.tools.extend({}, dtd.$block, dtd.$listItem, dtd.$tableContent);
+      // Set source formatting rules for each listed tag except <pre>.
+      // Linebreaks can be inserted before or after opening and closing tags.
+      if (settings.apply_source_formatting) {
+        // Mimic FCKeditor output, by breaking lines between tags.
+        for (var tag in tags) {
+          if (tag == 'pre') {
+            continue;
+          }
+          this.dataProcessor.writer.setRules(tag, {
+            indent: true,
+            breakBeforeOpen: true,
+            breakAfterOpen: false,
+            breakBeforeClose: false,
+            breakAfterClose: true
+          });
+        }
+      }
+      else {
+        // CKEditor adds default formatting to <br>, so we want to remove that
+        // here too.
+        tags.br = 1;
+        // No indents or linebreaks;
+        for (var tag in tags) {
+          if (tag == 'pre') {
+            continue;
+          }
+          this.dataProcessor.writer.setRules(tag, {
+            indent: false,
+            breakBeforeOpen: false,
+            breakAfterOpen: false,
+            breakBeforeClose: false,
+            breakAfterClose: false
+          });
+        }
+      }
+    },
+
+    pluginsLoaded: function(ev) {
+      // Override the conversion methods to let Drupal plugins modify the data.
+      var editor = ev.editor;
+      if (editor.dataProcessor && Drupal.settings.wysiwyg.plugins[params.format]) {
+        editor.dataProcessor.toHtml = CKEDITOR.tools.override(editor.dataProcessor.toHtml, function(originalToHtml) {
+          // Convert raw data for display in WYSIWYG mode.
+          return function(data, fixForBody) {
+            for (var plugin in Drupal.settings.wysiwyg.plugins[params.format].drupal) {
+              if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+                data = Drupal.wysiwyg.plugins[plugin].attach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], editor.name);
+                data = Drupal.wysiwyg.instances[params.field].prepareContent(data);
+              }
+            }
+            return originalToHtml.call(this, data, fixForBody);
+          };
+        });
+        editor.dataProcessor.toDataFormat = CKEDITOR.tools.override(editor.dataProcessor.toDataFormat, function(originalToDataFormat) {
+          // Convert WYSIWYG mode content to raw data.
+          return function(data, fixForBody) {
+            data = originalToDataFormat.call(this, data, fixForBody);
+            for (var plugin in Drupal.settings.wysiwyg.plugins[params.format].drupal) {
+              if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+                data = Drupal.wysiwyg.plugins[plugin].detach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], editor.name);
+              }
+            }
+            return data;
+          };
+        });
+      }
+    },
+
+    selectionChange: function (event) {
+      var pluginSettings = Drupal.settings.wysiwyg.plugins[params.format];
+      if (pluginSettings && pluginSettings.drupal) {
+        $.each(pluginSettings.drupal, function (name) {
+          var plugin = Drupal.wysiwyg.plugins[name];
+          if ($.isFunction(plugin.isNode)) {
+            var node = event.data.selection.getSelectedElement();
+            var state = plugin.isNode(node ? node.$ : null) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF;
+            event.editor.getCommand(name).setState(state);
+          }
+        });
+      }
+    },
+
+    focus: function(ev) {
+      Drupal.wysiwyg.activeId = ev.editor.name;
+    }
+  };
+
+  // Attach editor.
+  CKEDITOR.replace(params.field, settings);
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * @todo 3.x: editor.prototype.getInstances() should always return an array
+ *   containing all instances or the passed in params.field instance, but
+ *   always return an array to simplify all detach functions.
+ */
+Drupal.wysiwyg.editor.detach.ckeditor = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = CKEDITOR.instances[params.field];
+    if (instance) {
+      instance.destroy();
+    }
+  }
+  else {
+    for (var instanceName in CKEDITOR.instances) {
+      CKEDITOR.instances[instanceName].destroy();
+    }
+  }
+};
+
+Drupal.wysiwyg.editor.instance.ckeditor = {
+  addPlugin: function(pluginName, settings, pluginSettings) {
+    CKEDITOR.plugins.add(pluginName, {
+      // Wrap Drupal plugin in a proxy pluygin.
+      init: function(editor) {
+        if (settings.css) {
+          editor.on('mode', function(ev) {
+            if (ev.editor.mode == 'wysiwyg') {
+              // Inject CSS files directly into the editing area head tag.
+              $('head', $('#cke_contents_' + ev.editor.name + ' iframe').eq(0).contents()).append('<link rel="stylesheet" href="' + settings.css + '" type="text/css" >');
+            }
+          });
+        }
+        if (typeof Drupal.wysiwyg.plugins[pluginName].invoke == 'function') {
+          var pluginCommand = {
+            exec: function (editor) {
+              var data = { format: 'html', node: null, content: '' };
+              var selection = editor.getSelection();
+              if (selection) {
+                data.node = selection.getSelectedElement();
+                if (data.node) {
+                  data.node = data.node.$;
+                }
+                if (selection.getType() == CKEDITOR.SELECTION_TEXT) {
+                  if (CKEDITOR.env.ie) {
+                    data.content = selection.getNative().createRange().text;
+                  }
+                  else {
+                    data.content = selection.getNative().toString();
+                  }
+                }
+                else if (data.node) {
+                  // content is supposed to contain the "outerHTML".
+                  data.content = data.node.parentNode.innerHTML;
+                }
+              }
+              Drupal.wysiwyg.plugins[pluginName].invoke(data, pluginSettings, editor.name);
+            }
+          };
+          editor.addCommand(pluginName, pluginCommand);
+        }
+        editor.ui.addButton(pluginName, {
+          label: settings.iconTitle,
+          command: pluginName,
+          icon: settings.icon
+        });
+
+        // @todo Add button state handling.
+      }
+    });
+  },
+  prepareContent: function(content) {
+    // @todo Don't know if we need this yet.
+    return content;
+  },
+  insert: function(content) {
+    content = this.prepareContent(content);
+    CKEDITOR.instances[this.field].insertHtml(content);
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/fckeditor-2.6.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/fckeditor-2.6.js
new file mode 100644
index 0000000..4ee2cff
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/fckeditor-2.6.js
@@ -0,0 +1,181 @@
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.fckeditor = function(context, params, settings) {
+  var FCKinstance = new FCKeditor(params.field, settings.Width, settings.Height, settings.ToolbarSet);
+  // Apply editor instance settings.
+  FCKinstance.BasePath = settings.EditorPath;
+  FCKinstance.Config.wysiwygFormat = params.format;
+  FCKinstance.Config.CustomConfigurationsPath = settings.CustomConfigurationsPath;
+
+  // Load Drupal plugins and apply format specific settings.
+  // @see fckeditor.config.js
+  // @see Drupal.wysiwyg.editor.instance.fckeditor.init()
+
+  // Attach editor.
+  FCKinstance.ReplaceTextarea();
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.fckeditor = function(context, params) {
+  var instances = [];
+  if (typeof params != 'undefined' && typeof FCKeditorAPI != 'undefined') {
+    var instance = FCKeditorAPI.GetInstance(params.field);
+    if (instance) {
+      instances[params.field] = instance;
+    }
+  }
+  else {
+    instances = FCKeditorAPI.__Instances;
+  }
+
+  for (var instanceName in instances) {
+    var instance = instances[instanceName];
+    instance.UpdateLinkedField();
+    // Since we already detach the editor and update the textarea, the submit
+    // event handler needs to be removed to prevent data loss (in IE).
+    // FCKeditor uses 2 nested iFrames; instance.EditingArea.Window is the
+    // deepest. Its parent is the iFrame containing the editor.
+    var instanceScope = instance.EditingArea.Window.parent;
+    instanceScope.FCKTools.RemoveEventListener(instance.GetParentForm(), 'submit', instance.UpdateLinkedField); 
+    // Run cleanups before forcing an unload of the iFrames or IE crashes.
+    // This also deletes the instance from the FCKeditorAPI.__Instances array.
+    instanceScope.FCKTools.RemoveEventListener(instanceScope, 'unload', instanceScope.FCKeditorAPI_Cleanup);
+    instanceScope.FCKTools.RemoveEventListener(instanceScope, 'beforeunload', instanceScope.FCKeditorAPI_ConfirmCleanup);
+    if (jQuery.isFunction(instanceScope.FCKIECleanup_Cleanup)) {
+      instanceScope.FCKIECleanup_Cleanup();
+    }
+    instanceScope.FCKeditorAPI_ConfirmCleanup();
+    instanceScope.FCKeditorAPI_Cleanup();
+    // Remove the editor elements.
+    $('#' + instanceName + '___Config').remove();
+    $('#' + instanceName + '___Frame').remove();
+    $('#' + instanceName).show();
+  }
+};
+
+Drupal.wysiwyg.editor.instance.fckeditor = {
+  init: function(instance) {
+    // Track which editor instance is active.
+    instance.FCK.Events.AttachEvent('OnFocus', function(editorInstance) {
+      Drupal.wysiwyg.activeId = editorInstance.Name;
+    });
+
+    // Create a custom data processor to wrap the default one and allow Drupal
+    // plugins modify the editor contents.
+    var wysiwygDataProcessor = function() {};
+    wysiwygDataProcessor.prototype = new instance.FCKDataProcessor();
+    // Attach: Convert text into HTML.
+    wysiwygDataProcessor.prototype.ConvertToHtml = function(data) {
+      // Called from SetData() with stripped comments/scripts, revert those
+      // manipulations and attach Drupal plugins.
+      var data = instance.FCKConfig.ProtectedSource.Revert(data);
+      if (Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat] && Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+        for (var plugin in Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+            data = Drupal.wysiwyg.plugins[plugin].attach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], instance.FCK.Name);
+            data = Drupal.wysiwyg.editor.instance.fckeditor.prepareContent(data);
+          }
+        }
+      }
+      // Re-protect the source and use the original data processor to convert it
+      // into XHTML.
+      data = instance.FCKConfig.ProtectedSource.Protect(data);
+      return instance.FCKDataProcessor.prototype.ConvertToHtml.call(this, data);
+    };
+    // Detach: Convert HTML into text.
+    wysiwygDataProcessor.prototype.ConvertToDataFormat = function(rootNode, excludeRoot, ignoreIfEmptyParagraph, format) {
+      // Called from GetData(), convert the content's DOM into a XHTML string
+      // using the original data processor and detach Drupal plugins.
+      var data = instance.FCKDataProcessor.prototype.ConvertToDataFormat.call(this, rootNode, excludeRoot, ignoreIfEmptyParagraph, format);
+      if (Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat] && Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+        for (var plugin in Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+            data = Drupal.wysiwyg.plugins[plugin].detach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], instance.FCK.Name);
+          }
+        }
+      }
+      return data;
+    };
+    instance.FCK.DataProcessor = new wysiwygDataProcessor();
+  },
+
+  addPlugin: function(plugin, settings, pluginSettings, instance) {
+    if (typeof Drupal.wysiwyg.plugins[plugin] != 'object') {
+      return;
+    }
+
+    if (Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal[plugin].css) {
+      instance.FCKConfig.EditorAreaCSS += ',' + Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal[plugin].css;
+    }
+
+    // @see fckcommands.js, fck_othercommands.js, fckpastewordcommand.js
+    instance.FCKCommands.RegisterCommand(plugin, {
+      // Invoke the plugin's button.
+      Execute: function () {
+        if (typeof Drupal.wysiwyg.plugins[plugin].invoke == 'function') {
+          var data = { format: 'html', node: instance.FCKSelection.GetParentElement() };
+          // @todo This is NOT the same as data.node.
+          data.content = data.node.innerHTML;
+          Drupal.wysiwyg.plugins[plugin].invoke(data, pluginSettings, instance.FCK.Name);
+        }
+      },
+
+      // isNode: Return whether the plugin button should be enabled for the
+      // current selection.
+      // @see FCKUnlinkCommand.prototype.GetState()
+      GetState: function () {
+        // Always disabled if not in WYSIWYG mode.
+        if (instance.FCK.EditMode != FCK_EDITMODE_WYSIWYG) {
+          return FCK_TRISTATE_DISABLED;
+        }
+        var state = instance.FCK.GetNamedCommandState(this.Name);
+        // FCKeditor sets the wrong state in WebKit browsers.
+        if (!$.support.queryCommandEnabled && state == FCK_TRISTATE_DISABLED) {
+          state = FCK_TRISTATE_OFF;
+        }
+        if (state == FCK_TRISTATE_OFF && instance.FCK.EditMode == FCK_EDITMODE_WYSIWYG) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') {
+            var node = instance.FCKSelection.GetSelectedElement();
+            state = Drupal.wysiwyg.plugins[plugin].isNode(node) ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF;
+          }
+        }
+        return state;
+      },
+
+      /**
+       * Return information about the plugin as a name/value array.
+       */
+      Name: plugin
+    });
+
+    // Register the plugin button.
+    // Arguments: commandName, label, tooltip, style, sourceView, contextSensitive, icon.
+    instance.FCKToolbarItems.RegisterItem(plugin, new instance.FCKToolbarButton(plugin, settings.iconTitle, settings.iconTitle, null, false, true, settings.icon));
+  },
+
+  openDialog: function(dialog, params) {
+    // @todo Implement open dialog.
+  },
+
+  closeDialog: function(dialog) {
+    // @todo Implement close dialog.
+  },
+
+  prepareContent: function(content) {
+    // @todo Not needed for FCKeditor?
+    return content;
+  },
+
+  insert: function(content) {
+    var instance = FCKeditorAPI.GetInstance(this.field);
+    // @see FCK.InsertHtml(), FCK.InsertElement()
+    instance.InsertHtml(content);
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/fckeditor.config.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/fckeditor.config.js
new file mode 100644
index 0000000..d3fbc2f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/fckeditor.config.js
@@ -0,0 +1,73 @@
+
+Drupal = window.parent.Drupal;
+
+/**
+ * Fetch and provide original editor settings as local variable.
+ *
+ * FCKeditor does not support to pass complex variable types to the editor.
+ * Instance settings passed to FCKinstance.Config are temporarily stored in
+ * FCKConfig.PageConfig.
+ */
+var wysiwygFormat = FCKConfig.PageConfig.wysiwygFormat;
+var wysiwygSettings = Drupal.settings.wysiwyg.configs.fckeditor[wysiwygFormat];
+var pluginSettings = (Drupal.settings.wysiwyg.plugins[wysiwygFormat] ? Drupal.settings.wysiwyg.plugins[wysiwygFormat] : { 'native': {}, 'drupal': {} });
+
+/**
+ * Apply format-specific settings.
+ */
+for (var setting in wysiwygSettings) {
+  if (setting == 'buttons') {
+    // Apply custom Wysiwyg toolbar for this format.
+    // FCKConfig.ToolbarSets['Wysiwyg'] = wysiwygSettings.buttons;
+
+    // Temporarily stack buttons into multiple button groups and remove
+    // separators until #277954 is solved.
+    FCKConfig.ToolbarSets['Wysiwyg'] = [];
+    for (var i = 0; i < wysiwygSettings.buttons[0].length; i++) {
+      FCKConfig.ToolbarSets['Wysiwyg'].push([wysiwygSettings.buttons[0][i]]);
+    }
+    FCKTools.AppendStyleSheet(document, '#xToolbar .TB_Start { display:none; }');
+    // Set valid height of select element in silver and office2003 skins.
+    if (FCKConfig.SkinPath.match(/\/office2003\/$/)) {
+      FCKTools.AppendStyleSheet(document, '#xToolbar .SC_FieldCaption { height: 24px; } #xToolbar .TB_End { display: none; }');
+    }
+    else if (FCKConfig.SkinPath.match(/\/silver\/$/)) {
+      FCKTools.AppendStyleSheet(document, '#xToolbar .SC_FieldCaption { height: 27px; }');
+    }
+  }
+  else {
+    FCKConfig[setting] = wysiwygSettings[setting];
+  }
+}
+
+/**
+ * Initialize this editor instance.
+ */
+Drupal.wysiwyg.editor.instance.fckeditor.init(window);
+
+/**
+ * Register native plugins for this input format.
+ *
+ * Parameters to Plugins.Add are:
+ * - Plugin name.
+ * - Languages the plugin is available in.
+ * - Location of the plugin folder; <plugin_name>/fckplugin.js is appended.
+ */
+for (var plugin in pluginSettings['native']) {
+  // Languages and path may be undefined for internal plugins.
+  FCKConfig.Plugins.Add(plugin, pluginSettings['native'][plugin].languages, pluginSettings['native'][plugin].path);
+}
+
+/**
+ * Register Drupal plugins for this input format.
+ *
+ * Parameters to addPlugin() are:
+ * - Plugin name.
+ * - Format specific plugin settings.
+ * - General plugin settings.
+ * - A reference to this window so the plugin setup can access FCKConfig.
+ */
+for (var plugin in pluginSettings.drupal) {
+  Drupal.wysiwyg.editor.instance.fckeditor.addPlugin(plugin, pluginSettings.drupal[plugin], Drupal.settings.wysiwyg.plugins.drupal[plugin], window);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/jwysiwyg.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/jwysiwyg.js
new file mode 100644
index 0000000..ae47853
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/jwysiwyg.js
@@ -0,0 +1,25 @@
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.jwysiwyg = function(context, params, settings) {
+  // Attach editor.
+  $('#' + params.field).wysiwyg();
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.jwysiwyg = function(context, params) {
+  var $field = $('#' + params.field);
+  var editor = $field.data('wysiwyg');
+  if (typeof editor != 'undefined') {
+    editor.saveContent();
+    editor.element.remove();
+  }
+  $field.removeData('wysiwyg');
+  $field.show();
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/markitup.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/markitup.js
new file mode 100644
index 0000000..6691811
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/markitup.js
@@ -0,0 +1,29 @@
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.markitup = function(context, params, settings) {
+  $('#' + params.field, context).markItUp(settings);
+
+  // Adjust CSS for editor buttons.
+  $.each(settings.markupSet, function (button) {
+    $('.' + settings.nameSpace + ' .' + this.className + ' a')
+      .css({ backgroundImage: 'url(' + settings.root + 'sets/default/images/' + button + '.png' + ')' })
+      .parents('li').css({ backgroundImage: 'none' });
+  });
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.markitup = function(context, params) {
+  if (typeof params != 'undefined') {
+    $('#' + params.field, context).markItUpRemove();
+  }
+  else {
+    $('.markItUpEditor', context).markItUpRemove();
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/nicedit.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/nicedit.js
new file mode 100644
index 0000000..d5d9795
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/nicedit.js
@@ -0,0 +1,95 @@
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.nicedit = function(context, params, settings) {
+  // Intercept and ignore submit handlers or they will revert changes made
+  // since the instance was removed. The handlers are anonymous and hidden out
+  // of scope in a closure so we can't unbind them. The same operations are
+  // performed when the instance is detached anyway.
+  var oldAddEvent = bkLib.addEvent;
+  bkLib.addEvent = function(obj, type, fn) {
+    if (type != 'submit') {
+      oldAddEvent(obj, type, fn);
+    }
+  }
+  // Attach editor.
+  var editor = new nicEditor(settings);
+  editor.panelInstance(params.field);
+  // The old addEvent() must be restored after creating a new instance, as
+  // plugins with dialogs use it to bind submit handlers to their forms.
+  bkLib.addEvent = oldAddEvent;
+  editor.addEvent('focus', function () {
+    Drupal.wysiwyg.activeId = params.field;
+  });
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full description of this hook.
+ */
+Drupal.wysiwyg.editor.detach.nicedit = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = nicEditors.findEditor(params.field);
+    if (instance) {
+      instance.ne.removeInstance(params.field);
+      instance.ne.removePanel();
+    }
+  }
+  else {
+    for (var e in nicEditors.editors) {
+      // Save contents of all editors back into textareas.
+      var instances = nicEditors.editors[e].nicInstances;
+      for (var i = 0; i < instances.length; i++) {
+        instances[i].remove();
+      }
+      // Remove all editor instances.
+      nicEditors.editors[e].nicInstances = [];
+    }
+  }
+};
+
+/**
+ * Instance methods for nicEdit.
+ */
+Drupal.wysiwyg.editor.instance.nicedit = {
+  insert: function (content) {
+    var instance = nicEditors.findEditor(this.field);
+    var editingArea = instance.getElm();
+    var sel = instance.getSel();
+    // IE.
+    if (document.selection) {
+      editingArea.focus();
+      sel.createRange().text = content;
+    }
+    else {
+      // Convert selection to a range.
+      var range;
+      // W3C compatible.
+      if (sel.getRangeAt) {
+        range = sel.getRangeAt(0);
+      }
+      // Safari.
+      else {
+        range = editingArea.ownerDocument.createRange();
+        range.setStart(sel.anchorNode, sel.anchorOffset);
+        range.setEnd(sel.focusNode, userSeletion.focusOffset);
+      }
+      // The code below doesn't work in IE, but it never gets here.
+      var fragment = editingArea.ownerDocument.createDocumentFragment();
+      // Fragments don't support innerHTML.
+      var wrapper = editingArea.ownerDocument.createElement('div');
+      wrapper.innerHTML = content;
+      while (wrapper.firstChild) {
+        fragment.appendChild(wrapper.firstChild);
+      }
+      range.deleteContents();
+      // Only fragment children are inserted.
+      range.insertNode(fragment);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/none.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/none.js
new file mode 100644
index 0000000..f83c059
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/none.js
@@ -0,0 +1,72 @@
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters. Default parameters are:
+ *   - editor: The internal editor name.
+ *   - theme: The name/key of the editor theme/profile to use.
+ *   - field: The CSS id of the target element.
+ * @param settings
+ *   An object containing editor settings for all enabled editor themes.
+ */
+Drupal.wysiwyg.editor.attach.none = function(context, params, settings) {
+  if (params.resizable) {
+    $('#' + params.field).addClass('resizable');
+    $('#' + params.field).css({display: ''});
+    if (Drupal.behaviors.textarea) {
+      Drupal.behaviors.textarea();
+    }
+  }
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   (optional) An object containing input format parameters. If defined,
+ *   only the editor instance in params.field should be detached. Otherwise,
+ *   all editors should be detached and saved, so they can be submitted in
+ *   AJAX/AHAH applications.
+ */
+Drupal.wysiwyg.editor.detach.none = function(context, params) {
+  if (typeof params != 'undefined') {
+    var $textarea = $('#' + params.field, context).removeClass('textarea-processed');
+    var $div = $textarea.parents('div.resizable-textarea');
+    $div.before($textarea);
+    $div.remove();
+  }
+};
+
+/**
+ * Instance methods for plain text areas.
+ */
+Drupal.wysiwyg.editor.instance.none = {
+  insert: function(content) {
+    var editor = document.getElementById(this.field);
+
+    // IE support.
+    if (document.selection) {
+      editor.focus();
+      var sel = document.selection.createRange();
+      sel.text = content;
+    }
+    // Mozilla/Firefox/Netscape 7+ support.
+    else if (editor.selectionStart || editor.selectionStart == '0') {
+      var startPos = editor.selectionStart;
+      var endPos = editor.selectionEnd;
+      editor.value = editor.value.substring(0, startPos) + content + editor.value.substring(endPos, editor.value.length);
+    }
+    // Fallback, just add to the end of the content.
+    else {
+      editor.value += content;
+    }
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/openwysiwyg.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/openwysiwyg.js
new file mode 100644
index 0000000..89a5337
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/openwysiwyg.js
@@ -0,0 +1,68 @@
+
+// Backup $ and reset it to jQuery.
+Drupal.wysiwyg._openwysiwyg = $;
+$ = jQuery;
+
+// Wrap openWYSIWYG's methods to temporarily use its version of $.
+jQuery.each(WYSIWYG, function (key, value) {
+  if (jQuery.isFunction(value)) {
+    WYSIWYG[key] = function () {
+      var old$ = $;
+      $ = Drupal.wysiwyg._openwysiwyg;
+      var result = value.apply(this, arguments);
+      $ = old$;
+      return result;
+    };
+  }
+});
+
+// Override editor functions.
+WYSIWYG.getEditor = function (n) {
+  return Drupal.wysiwyg._openwysiwyg("wysiwyg" + n);
+};
+
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.openwysiwyg = function(context, params, settings) {
+  // Initialize settings.
+  settings.ImagesDir = settings.path + 'images/';
+  settings.PopupsDir = settings.path + 'popups/';
+  settings.CSSFile = settings.path + 'styles/wysiwyg.css';
+  //settings.DropDowns = [];
+  var config = new WYSIWYG.Settings();
+  for (var setting in settings) {
+    config[setting] = settings[setting];
+  }
+  // Attach editor.
+  WYSIWYG.setSettings(params.field, config);
+  WYSIWYG_Core.includeCSS(WYSIWYG.config[params.field].CSSFile);
+  WYSIWYG._generate(params.field, config);
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.openwysiwyg = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = WYSIWYG.config[params.field];
+    if (typeof instance != 'undefined') {
+      WYSIWYG.updateTextArea(params.field);
+      jQuery('#wysiwyg_div_' + params.field).remove();
+      delete instance;
+    }
+    jQuery('#' + params.field).show();
+  }
+  else {
+    jQuery.each(WYSIWYG.config, function(field) {
+      WYSIWYG.updateTextArea(field);
+      jQuery('#wysiwyg_div_' + field).remove();
+      delete this;
+      jQuery('#' + field).show();
+    });
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/tinymce-2.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/tinymce-2.js
new file mode 100644
index 0000000..088021f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/tinymce-2.js
@@ -0,0 +1,213 @@
+(function($) {
+
+/**
+ * Initialize editor instances.
+ *
+ * This function needs to be called before the page is fully loaded, as
+ * calling tinyMCE.init() after the page is loaded breaks IE6.
+ *
+ * @param editorSettings
+ *   An object containing editor settings for each input format.
+ */
+Drupal.wysiwyg.editor.init.tinymce = function(settings) {
+  // If JS compression is enabled, TinyMCE is unable to autodetect its global
+  // settinge, hence we need to define them manually.
+  // @todo Move global library settings somewhere else.
+  tinyMCE.baseURL = settings.global.editorBasePath;
+  tinyMCE.srcMode = (settings.global.execMode == 'src' ? '_src' : '');
+  tinyMCE.gzipMode = (settings.global.execMode == 'gzip');
+
+  // Initialize editor configurations.
+  for (var format in settings) {
+    if (format == 'global') {
+      continue;
+    }
+    tinyMCE.init(settings[format]);
+    if (Drupal.settings.wysiwyg.plugins[format]) {
+      // Load native external plugins.
+      // Array syntax required; 'native' is a predefined token in JavaScript.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format]['native']) {
+        tinyMCE.loadPlugin(plugin, Drupal.settings.wysiwyg.plugins[format]['native'][plugin]);
+      }
+      // Load Drupal plugins.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format].drupal) {
+        Drupal.wysiwyg.editor.instance.tinymce.addPlugin(plugin, Drupal.settings.wysiwyg.plugins[format].drupal[plugin], Drupal.settings.wysiwyg.plugins.drupal[plugin]);
+      }
+    }
+  }
+};
+
+/**
+ * Attach this editor to a target element.
+ *
+ * See Drupal.wysiwyg.editor.attach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.attach.tinymce = function(context, params, settings) {
+  // Configure editor settings for this input format.
+  for (var setting in settings) {
+    tinyMCE.settings[setting] = settings[setting];
+  }
+
+  // Remove TinyMCE's internal mceItem class, which was incorrectly added to
+  // submitted content by Wysiwyg <2.1. TinyMCE only temporarily adds the class
+  // for placeholder elements. If preemptively set, the class prevents (native)
+  // editor plugins from gaining an active state, so we have to manually remove
+  // it prior to attaching the editor. This is done on the client-side instead
+  // of the server-side, as Wysiwyg has no way to figure out where content is
+  // stored, and the class only affects editing.
+  $field = $('#' + params.field);
+  $field.val($field.val().replace(/(<.+?\s+class=['"][\w\s]*?)\bmceItem\b([\w\s]*?['"].*?>)/ig, '$1$2'));
+
+  // Attach editor.
+  tinyMCE.execCommand('mceAddControl', true, params.field);
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.detach.tinymce = function(context, params) {
+  if (typeof params != 'undefined') {
+    tinyMCE.removeMCEControl(tinyMCE.getEditorId(params.field));
+    $('#' + params.field).removeAttr('style');
+  }
+//  else if (tinyMCE.activeEditor) {
+//    tinyMCE.triggerSave();
+//    tinyMCE.activeEditor.remove();
+//  }
+};
+
+Drupal.wysiwyg.editor.instance.tinymce = {
+  addPlugin: function(plugin, settings, pluginSettings) {
+    if (typeof Drupal.wysiwyg.plugins[plugin] != 'object') {
+      return;
+    }
+    tinyMCE.addPlugin(plugin, {
+
+      // Register an editor command for this plugin, invoked by the plugin's button.
+      execCommand: function(editor_id, element, command, user_interface, value) {
+        switch (command) {
+          case plugin:
+            if (typeof Drupal.wysiwyg.plugins[plugin].invoke == 'function') {
+              var ed = tinyMCE.getInstanceById(editor_id);
+              var data = { format: 'html', node: ed.getFocusElement(), content: ed.getFocusElement() };
+              Drupal.wysiwyg.plugins[plugin].invoke(data, pluginSettings, ed.formTargetElementId);
+              return true;
+            }
+        }
+        // Pass to next handler in chain.
+        return false;
+      },
+
+      // Register the plugin button.
+      getControlHTML: function(control_name) {
+        switch (control_name) {
+          case plugin:
+            return tinyMCE.getButtonHTML(control_name, settings.iconTitle, settings.icon, plugin);
+        }
+        return '';
+      },
+
+      // Load custom CSS for editor contents on startup.
+      initInstance: function(ed) {
+        if (settings.css) {
+          tinyMCE.importCSS(ed.getDoc(), settings.css);
+        }
+      },
+
+      cleanup: function(type, content) {
+        switch (type) {
+          case 'insert_to_editor':
+            // Attach: Replace plain text with HTML representations.
+            if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+              content = Drupal.wysiwyg.plugins[plugin].attach(content, pluginSettings, tinyMCE.selectedInstance.editorId);
+              content = Drupal.wysiwyg.editor.instance.tinymce.prepareContent(content);
+            }
+            break;
+
+          case 'get_from_editor':
+            // Detach: Replace HTML representations with plain text.
+            if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+              content = Drupal.wysiwyg.plugins[plugin].detach(content, pluginSettings, tinyMCE.selectedInstance.editorId);
+            }
+            break;
+        }
+        // Pass through to next handler in chain
+        return content;
+      },
+
+      // isNode: Return whether the plugin button should be enabled for the
+      // current selection.
+      handleNodeChange: function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+        if (node === null) {
+          return;
+        }
+        if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') {
+          if (Drupal.wysiwyg.plugins[plugin].isNode(node)) {
+            tinyMCE.switchClass(editor_id + '_' + plugin, 'mceButtonSelected');
+            return true;
+          }
+        }
+        tinyMCE.switchClass(editor_id + '_' + plugin, 'mceButtonNormal');
+        return true;
+      },
+
+      /**
+       * Return information about the plugin as a name/value array.
+       */
+      getInfo: function() {
+        return {
+          longname: settings.title
+        };
+      }
+    });
+  },
+
+  openDialog: function(dialog, params) {
+    var editor = tinyMCE.getInstanceById(this.field);
+    tinyMCE.openWindow({
+      file: dialog.url + '/' + this.field,
+      width: dialog.width,
+      height: dialog.height,
+      inline: 1
+    }, params);
+  },
+
+  closeDialog: function(dialog) {
+    var editor = tinyMCE.getInstanceById(this.field);
+    tinyMCEPopup.close();
+  },
+
+  prepareContent: function(content) {
+    // Certain content elements need to have additional DOM properties applied
+    // to prevent this editor from highlighting an internal button in addition
+    // to the button of a Drupal plugin.
+    var specialProperties = {
+      img: { 'name': 'mce_drupal' }
+    };
+    var $content = $('<div>' + content + '</div>'); // No .outerHTML() in jQuery :(
+    jQuery.each(specialProperties, function(element, properties) {
+      $content.find(element).each(function() {
+        for (var property in properties) {
+          if (property == 'class') {
+            $(this).addClass(properties[property]);
+          }
+          else {
+            $(this).attr(property, properties[property]);
+          }
+        }
+      });
+    });
+    return $content.html();
+  },
+
+  insert: function(content) {
+    content = this.prepareContent(content);
+    var editor = tinyMCE.getInstanceById(this.field);
+    editor.execCommand('mceInsertContent', false, content);
+    editor.repaint();
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/tinymce-3.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/tinymce-3.js
new file mode 100644
index 0000000..d2da02c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/tinymce-3.js
@@ -0,0 +1,239 @@
+(function($) {
+
+/**
+ * Initialize editor instances.
+ *
+ * @todo Is the following note still valid for 3.x?
+ * This function needs to be called before the page is fully loaded, as
+ * calling tinyMCE.init() after the page is loaded breaks IE6.
+ *
+ * @param editorSettings
+ *   An object containing editor settings for each input format.
+ */
+Drupal.wysiwyg.editor.init.tinymce = function(settings) {
+  // @see #454992: drupal_get_js() must not use 'q' as query string.
+  if (tinymce.query == 'q') {
+    tinymce.query = '';
+  }
+  // If JS compression is enabled, TinyMCE is unable to autodetect its global
+  // settinge, hence we need to define them manually.
+  // @todo Move global library settings somewhere else.
+  tinyMCE.baseURL = settings.global.editorBasePath;
+  tinyMCE.srcMode = (settings.global.execMode == 'src' ? '_src' : '');
+  tinyMCE.gzipMode = (settings.global.execMode == 'gzip');
+
+  // Initialize editor configurations.
+  for (var format in settings) {
+    if (format == 'global') {
+      continue;
+    };
+    tinyMCE.init(settings[format]);
+    if (Drupal.settings.wysiwyg.plugins[format]) {
+      // Load native external plugins.
+      // Array syntax required; 'native' is a predefined token in JavaScript.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format]['native']) {
+        tinymce.PluginManager.load(plugin, Drupal.settings.wysiwyg.plugins[format]['native'][plugin]);
+      }
+      // Load Drupal plugins.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format].drupal) {
+        Drupal.wysiwyg.editor.instance.tinymce.addPlugin(plugin, Drupal.settings.wysiwyg.plugins[format].drupal[plugin], Drupal.settings.wysiwyg.plugins.drupal[plugin]);
+      }
+    }
+  }
+};
+
+/**
+ * Attach this editor to a target element.
+ *
+ * See Drupal.wysiwyg.editor.attach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.attach.tinymce = function(context, params, settings) {
+  // Configure editor settings for this input format.
+  var ed = new tinymce.Editor(params.field, settings);
+  // Reset active instance id on any event.
+  ed.onEvent.add(function(ed, e) {
+    Drupal.wysiwyg.activeId = ed.id;
+  });
+  // Make toolbar buttons wrappable (required for IE).
+  ed.onPostRender.add(function (ed) {
+    var $toolbar = $('<div class="wysiwygToolbar"></div>');
+    $('#' + ed.editorContainer + ' table.mceToolbar > tbody > tr > td').each(function () {
+      $('<div></div>').addClass(this.className).append($(this).children()).appendTo($toolbar);
+    });
+    $('#' + ed.editorContainer + ' table.mceLayout td.mceToolbar').append($toolbar);
+    $('#' + ed.editorContainer + ' table.mceToolbar').remove();
+  });
+
+  // Remove TinyMCE's internal mceItem class, which was incorrectly added to
+  // submitted content by Wysiwyg <2.1. TinyMCE only temporarily adds the class
+  // for placeholder elements. If preemptively set, the class prevents (native)
+  // editor plugins from gaining an active state, so we have to manually remove
+  // it prior to attaching the editor. This is done on the client-side instead
+  // of the server-side, as Wysiwyg has no way to figure out where content is
+  // stored, and the class only affects editing.
+  $field = $('#' + params.field);
+  $field.val($field.val().replace(/(<.+?\s+class=['"][\w\s]*?)\bmceItem\b([\w\s]*?['"].*?>)/ig, '$1$2'));
+
+  // Attach editor.
+  ed.render();
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.detach.tinymce = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = tinyMCE.get(params.field);
+    if (instance) {
+      instance.save();
+      instance.remove();
+    }
+  }
+  else {
+    // Save contents of all editors back into textareas.
+    tinyMCE.triggerSave();
+    // Remove all editor instances.
+    for (var instance in tinyMCE.editors) {
+      tinyMCE.editors[instance].remove();
+    }
+  }
+};
+
+Drupal.wysiwyg.editor.instance.tinymce = {
+  addPlugin: function(plugin, settings, pluginSettings) {
+    if (typeof Drupal.wysiwyg.plugins[plugin] != 'object') {
+      return;
+    }
+    tinymce.create('tinymce.plugins.' + plugin, {
+      /**
+       * Initialize the plugin, executed after the plugin has been created.
+       *
+       * @param ed
+       *   The tinymce.Editor instance the plugin is initialized in.
+       * @param url
+       *   The absolute URL of the plugin location.
+       */
+      init: function(ed, url) {
+        // Register an editor command for this plugin, invoked by the plugin's button.
+        ed.addCommand(plugin, function() {
+          if (typeof Drupal.wysiwyg.plugins[plugin].invoke == 'function') {
+            var data = { format: 'html', node: ed.selection.getNode(), content: ed.selection.getContent() };
+            // TinyMCE creates a completely new instance for fullscreen mode.
+            var instanceId = ed.id == 'mce_fullscreen' ? ed.getParam('fullscreen_editor_id') : ed.id;
+            Drupal.wysiwyg.plugins[plugin].invoke(data, pluginSettings, instanceId);
+          }
+        });
+
+        // Register the plugin button.
+        ed.addButton(plugin, {
+          title : settings.iconTitle,
+          cmd : plugin,
+          image : settings.icon
+        });
+
+        // Load custom CSS for editor contents on startup.
+        ed.onInit.add(function() {
+          if (settings.css) {
+            ed.dom.loadCSS(settings.css);
+          }
+        });
+
+        // Attach: Replace plain text with HTML representations.
+        ed.onBeforeSetContent.add(function(ed, data) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+            data.content = Drupal.wysiwyg.plugins[plugin].attach(data.content, pluginSettings, ed.id);
+            data.content = Drupal.wysiwyg.editor.instance.tinymce.prepareContent(data.content);
+          }
+        });
+
+        // Detach: Replace HTML representations with plain text.
+        ed.onGetContent.add(function(ed, data) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+            data.content = Drupal.wysiwyg.plugins[plugin].detach(data.content, pluginSettings, ed.id);
+          }
+        });
+
+        // isNode: Return whether the plugin button should be enabled for the
+        // current selection.
+        ed.onNodeChange.add(function(ed, command, node) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') {
+            command.setActive(plugin, Drupal.wysiwyg.plugins[plugin].isNode(node));
+          }
+        });
+      },
+
+      /**
+       * Return information about the plugin as a name/value array.
+       */
+      getInfo: function() {
+        return {
+          longname: settings.title
+        };
+      }
+    });
+
+    // Register plugin.
+    tinymce.PluginManager.add(plugin, tinymce.plugins[plugin]);
+  },
+
+  openDialog: function(dialog, params) {
+    var instanceId = this.isFullscreen() ? 'mce_fullscreen' : this.field;
+    var editor = tinyMCE.get(instanceId);
+    editor.windowManager.open({
+      file: dialog.url + '/' + instanceId,
+      width: dialog.width,
+      height: dialog.height,
+      inline: 1
+    }, params);
+  },
+
+  closeDialog: function(dialog) {
+    var instanceId = this.isFullscreen() ? 'mce_fullscreen' : this.field;
+    var editor = tinyMCE.get(instanceId);
+    editor.windowManager.close(dialog);
+  },
+
+  prepareContent: function(content) {
+    // Certain content elements need to have additional DOM properties applied
+    // to prevent this editor from highlighting an internal button in addition
+    // to the button of a Drupal plugin.
+    var specialProperties = {
+      img: { 'class': 'mceItem' }
+    };
+    var $content = $('<div>' + content + '</div>'); // No .outerHTML() in jQuery :(
+    // Find all placeholder/replacement content of Drupal plugins.
+    $content.find('.drupal-content').each(function() {
+      // Recursively process DOM elements below this element to apply special
+      // properties.
+      var $drupalContent = $(this);
+      $.each(specialProperties, function(element, properties) {
+        $drupalContent.find(element).andSelf().each(function() {
+          for (var property in properties) {
+            if (property == 'class') {
+              $(this).addClass(properties[property]);
+            }
+            else {
+              $(this).attr(property, properties[property]);
+            }
+          }
+        });
+      });
+    });
+    return $content.html();
+  },
+
+  insert: function(content) {
+    content = this.prepareContent(content);
+    var instanceId = this.isFullscreen() ? 'mce_fullscreen' : this.field;
+    tinyMCE.execInstanceCommand(instanceId, 'mceInsertContent', false, content);
+  },
+
+  isFullscreen: function() {
+    // TinyMCE creates a completely new instance for fullscreen mode.
+    return tinyMCE.activeEditor.id == 'mce_fullscreen' && tinyMCE.activeEditor.getParam('fullscreen_editor_id') == this.field;
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig-56.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig-56.js
new file mode 100644
index 0000000..229a70b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig-56.js
@@ -0,0 +1,133 @@
+
+var wysiwygWhizzywig = { currentField: null, fields: {} };
+var buttonPath = null;
+
+/**
+ * Override Whizzywig's document.write() function.
+ *
+ * Whizzywig uses document.write() by default, which leads to a blank page when
+ * invoked in jQuery.ready().  Luckily, Whizzywig developers implemented a
+ * shorthand w() substitute function that we can override to redirect the output
+ * into the global wysiwygWhizzywig variable.
+ *
+ * @see o()
+ */
+var w = function (string) {
+  if (string) {
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] += string;
+  }
+  return wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField];
+};
+
+/**
+ * Override Whizzywig's document.getElementById() function.
+ *
+ * Since we redirect the output of w() into a temporary string upon attaching
+ * an editor, we also have to override the o() shorthand substitute function
+ * for document.getElementById() to search in the document or our container.
+ * This override function also inserts the editor instance when Whizzywig
+ * tries to access its IFRAME, so it has access to the full/regular window
+ * object.
+ *
+ * @see w()
+ */
+var o = function (id) {
+  // Upon first access to "whizzy" + id, Whizzywig tries to access its IFRAME,
+  // so we need to insert the editor into the DOM.
+  if (id == 'whizzy' + wysiwygWhizzywig.currentField && wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField]) {
+    jQuery('#' + wysiwygWhizzywig.currentField).after('<div id="' + wysiwygWhizzywig.currentField + '-whizzywig"></div>');
+    // Iframe's .contentWindow becomes null in Webkit if inserted via .after().
+    jQuery('#' + wysiwygWhizzywig.currentField + '-whizzywig').html(w());
+    // Prevent subsequent invocations from inserting the editor multiple times.
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  }
+  // If id exists in the regular window.document, return it.
+  if (jQuery('#' + id).size()) {
+    return jQuery('#' + id).get(0);
+  }
+  // Otherwise return id from our container.
+  return jQuery('#' + id, w()).get(0);
+};
+
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.whizzywig = function(context, params, settings) {
+  // Previous versions used per-button images found in this location,
+  // now it is only used for custom buttons.
+  if (settings.buttonPath) {
+    window.buttonPath = settings.buttonPath;
+  }
+  // Assign the toolbar image path used for native buttons, if available.
+  if (settings.toolbarImagePath) {
+    btn._f = settings.toolbarImagePath;
+  }
+  // Fall back to text labels for all buttons.
+  else {
+    window.buttonPath = 'textbuttons';
+  }
+  // Create Whizzywig container.
+  wysiwygWhizzywig.currentField = params.field;
+  wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  // Whizzywig needs to have the width set 'inline'.
+  $field = $('#' + params.field);
+  var originalValues = Drupal.wysiwyg.instances[params.field];
+  originalValues.originalStyle = $field.attr('style');
+  $field.css('width', $field.width() + 'px');
+
+  // Attach editor.
+  makeWhizzyWig(params.field, (settings.buttons ? settings.buttons : 'all'));
+  // Whizzywig fails to detect and set initial textarea contents.
+  var instance = $('#whizzy' + params.field).get(0);
+  if (instance) {
+    instance.contentWindow.document.body.innerHTML = tidyD($field.val());
+  }
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.whizzywig = function(context, params) {
+  var detach = function (index) {
+    var id = whizzies[index];
+    var instance = $('#whizzy' + id).get(0);
+    if (!instance) {
+      return;
+    }
+    var editingArea = instance.contentWindow.document;
+    var $field = $('#' + id);
+    // Whizzywig shows the original textarea in source mode.
+    if ($field.css('display') == 'block') {
+      editingArea.body.innerHTML = $field.val();
+    }
+
+    // Save contents of editor back into textarea.
+    $field.val(tidyH(editingArea));
+    // Remove editor instance.
+    $('#' + id + '-whizzywig').remove();
+    whizzies.splice(index, 1);
+
+    // Restore original textarea styling.
+    var originalValues = Drupal.wysiwyg.instances[id];
+    $field.removeAttr('style');
+    $field.attr('style', originalValues.originalStyle);
+  };
+
+  if (typeof params != 'undefined') {
+    for (var i = 0; i < whizzies.length; i++) {
+      if (whizzies[i] == params.field) {
+        detach(i);
+        break;
+      }
+    }
+  }
+  else {
+    while (whizzies.length > 0) {
+      detach(0);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig-60.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig-60.js
new file mode 100644
index 0000000..dc995f6
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig-60.js
@@ -0,0 +1,85 @@
+
+var buttonPath = null;
+
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.whizzywig = function(context, params, settings) {
+  // Previous versions used per-button images found in this location,
+  // now it is only used for custom buttons.
+  if (settings.buttonPath) {
+    window.buttonPath = settings.buttonPath;
+  }
+  // Assign the toolbar image path used for native buttons, if available.
+  if (settings.toolbarImagePath) {
+    btn._f = settings.toolbarImagePath;
+  }
+  // Fall back to text labels for all buttons.
+  else {
+    window.buttonPath = 'textbuttons';
+  }
+  // Whizzywig needs to have the width set 'inline'.
+  $field = $('#' + params.field);
+  var originalValues = Drupal.wysiwyg.instances[params.field];
+  originalValues.originalStyle = $field.attr('style');
+  $field.css('width', $field.width() + 'px');
+
+  // Attach editor.
+  makeWhizzyWig(params.field, (settings.buttons ? settings.buttons : 'all'));
+  // Whizzywig fails to detect and set initial textarea contents.
+  var instance = $('#whizzy' + params.field).get(0);
+  if (instance) {
+    instance.contentWindow.document.body.innerHTML = tidyD($field.val());
+  }
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.whizzywig = function(context, params) {
+  var detach = function (index) {
+    var id = whizzies[index];
+    var instance = $('#whizzy' + id).get(0);
+    if (!instance) {
+      return;
+    }
+    var editingArea = instance.contentWindow.document;
+    var $field = $('#' + id);
+    // Whizzywig shows the original textarea in source mode.
+    if ($field.css('display') == 'block') {
+      editingArea.body.innerHTML = $field.val();
+    }
+
+    // Save contents of editor back into textarea.
+    $field.val(tidyH(editingArea));
+    // Move original textarea back to its previous location.
+    $container = $('#CONTAINER' + id);
+    $field.insertBefore($container);
+    // Remove editor instance.
+    $container.remove();
+    whizzies.splice(index, 1);
+
+    // Restore original textarea styling.
+    var originalValues = Drupal.wysiwyg.instances[id];
+    $field.removeAttr('style');
+    $field.attr('style', originalValues.originalStyle);
+  }
+
+  if (typeof params != 'undefined') {
+    for (var i = 0; i < whizzies.length; i++) {
+      if (whizzies[i] == params.field) {
+        detach(i);
+        break;
+      }
+    }
+  }
+  else {
+    while (whizzies.length > 0) {
+      detach(0);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig.js
new file mode 100644
index 0000000..e98bc4d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/whizzywig.js
@@ -0,0 +1,126 @@
+
+var wysiwygWhizzywig = { currentField: null, fields: {} };
+var buttonPath = null;
+
+/**
+ * Override Whizzywig's document.write() function.
+ *
+ * Whizzywig uses document.write() by default, which leads to a blank page when
+ * invoked in jQuery.ready().  Luckily, Whizzywig developers implemented a
+ * shorthand w() substitute function that we can override to redirect the output
+ * into the global wysiwygWhizzywig variable.
+ *
+ * @see o()
+ */
+var w = function (string) {
+  if (string) {
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] += string;
+  }
+  return wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField];
+};
+
+/**
+ * Override Whizzywig's document.getElementById() function.
+ *
+ * Since we redirect the output of w() into a temporary string upon attaching
+ * an editor, we also have to override the o() shorthand substitute function
+ * for document.getElementById() to search in the document or our container.
+ * This override function also inserts the editor instance when Whizzywig
+ * tries to access its IFRAME, so it has access to the full/regular window
+ * object.
+ *
+ * @see w()
+ */
+var o = function (id) {
+  // Upon first access to "whizzy" + id, Whizzywig tries to access its IFRAME,
+  // so we need to insert the editor into the DOM.
+  if (id == 'whizzy' + wysiwygWhizzywig.currentField && wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField]) {
+    jQuery('#' + wysiwygWhizzywig.currentField).after('<div id="' + wysiwygWhizzywig.currentField + '-whizzywig"></div>');
+    // Iframe's .contentWindow becomes null in Webkit if inserted via .after().
+    jQuery('#' + wysiwygWhizzywig.currentField + '-whizzywig').html(w());
+    // Prevent subsequent invocations from inserting the editor multiple times.
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  }
+  // If id exists in the regular window.document, return it.
+  if (jQuery('#' + id).size()) {
+    return jQuery('#' + id).get(0);
+  }
+  // Otherwise return id from our container.
+  return jQuery('#' + id, w()).get(0);
+};
+
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.whizzywig = function(context, params, settings) {
+  // Assign button images path, if available.
+  if (settings.buttonPath) {
+    window.buttonPath = settings.buttonPath;
+  }
+  // Create Whizzywig container.
+  wysiwygWhizzywig.currentField = params.field;
+  wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  // Whizzywig needs to have the width set 'inline'.
+  $field = $('#' + params.field);
+  var originalValues = Drupal.wysiwyg.instances[params.field];
+  originalValues.originalStyle = $field.attr('style');
+  $field.css('width', $field.width() + 'px');
+
+  // Attach editor.
+  makeWhizzyWig(params.field, (settings.buttons ? settings.buttons : 'all'));
+  // Whizzywig fails to detect and set initial textarea contents.
+  var instance = $('#whizzy' + params.field).get(0);
+  if (instance) {
+    instance.contentWindow.document.body.innerHTML = tidyD($field.val());
+  }
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.whizzywig = function(context, params) {
+  var detach = function (index) {
+    var id = whizzies[index];
+    var instance = $('#whizzy' + id).get(0);
+    if (!instance) {
+      return;
+    }
+    var body = instance.contentWindow.document.body;
+    var $field = $('#' + id);
+    // Whizzywig shows the original textarea in source mode.
+    if ($field.css('display') == 'block') {
+      body.innerHTML = $field.val();
+    }
+    body.innerHTML = tidyH(body.innerHTML);
+
+    // Save contents of editor back into textarea.
+    $field.val(window.get_xhtml ? get_xhtml(body) : body.innerHTML);
+    $field.val($field.val().replace(location.href + '#', '#'));
+    // Remove editor instance.
+    $('#' + id + '-whizzywig').remove();
+    whizzies.splice(index, 1);
+
+    // Restore original textarea styling.
+    var originalValues = Drupal.wysiwyg.instances[id];
+    $field.removeAttr('style');
+    $field.attr('style', originalValues.originalStyle);
+  };
+
+  if (typeof params != 'undefined') {
+    for (var i = 0; i < whizzies.length; i++) {
+      if (whizzies[i] == params.field) {
+        detach(i);
+        break;
+      }
+    }
+  }
+  else {
+    while (whizzies.length > 0) {
+      detach(0);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/wymeditor.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/wymeditor.js
new file mode 100644
index 0000000..ed66784
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/wymeditor.js
@@ -0,0 +1,56 @@
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.wymeditor = function (context, params, settings) {
+  // Prepend basePath to wymPath.
+  settings.wymPath = settings.basePath + settings.wymPath;
+  // Update activeId on focus.
+  settings.postInit = function (instance) {
+    $(instance._doc).focus(function () {
+      Drupal.wysiwyg.activeId = params.field;
+    });
+  };
+  // Attach editor.
+  $('#' + params.field).wymeditor(settings);
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.wymeditor = function (context, params) {
+  if (typeof params != 'undefined') {
+    var $field = $('#' + params.field);
+    var index = $field.data(WYMeditor.WYM_INDEX);
+    if (typeof index != 'undefined') {
+      var instance = WYMeditor.INSTANCES[index];
+      instance.update();
+      $(instance._box).remove();
+      $(instance._element).show();
+      delete instance;
+    }
+    $field.show();
+  }
+  else {
+    jQuery.each(WYMeditor.INSTANCES, function () {
+      this.update();
+      $(this._box).remove();
+      $(this._element).show();
+      delete this;
+    });
+  }
+};
+
+Drupal.wysiwyg.editor.instance.wymeditor = {
+  insert: function (content) {
+    var $field = $('#' + this.field);
+    var index = $field.data(WYMeditor.WYM_INDEX);
+    if (typeof index != 'undefined') {
+      var instance = WYMeditor.INSTANCES[index];
+      instance.insert(content);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/yui.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/yui.js
new file mode 100644
index 0000000..ad8be36
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/js/yui.js
@@ -0,0 +1,35 @@
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.yui = function(context, params, settings) {
+  // Apply theme.
+  $('#' + params.field).parent().addClass('yui-skin-' + settings.theme);
+  // Attach editor.
+  var editor = new YAHOO.widget.Editor(params.field, settings);
+  editor.render();
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.detach.yui = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = YAHOO.widget.EditorInfo.getEditorById(params.field);
+    if (instance) {
+      instance.destroy();
+    }
+  }
+  else {
+    for (var e in YAHOO.widget.EditorInfo._instances) {
+      // Save contents of all editors back into textareas.
+      var instance = YAHOO.widget.EditorInfo._instances[e];
+      instance.destroy();
+    }
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/jwysiwyg.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/jwysiwyg.inc
new file mode 100644
index 0000000..fa65b74
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/jwysiwyg.inc
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for jWYSIWYG.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_jwysiwyg_editor() {
+  $editor['jwysiwyg'] = array(
+    'title' => 'jWYSIWYG',
+    'vendor url' => 'http://code.google.com/p/jwysiwyg/',
+    'download url' => 'http://code.google.com/p/jwysiwyg/downloads/list',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Source',
+        'files' => array('jquery.wysiwyg.js'),
+      ),
+      'pack' => array(
+        'title' => 'Packed',
+        'files' => array('jquery.wysiwyg.pack.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_jwysiwyg_version',
+    // @todo Wrong property; add separate properties for editor requisites.
+    'css path' => wysiwyg_get_path('jwysiwyg'),
+    'versions' => array(
+      '0.5' => array(
+        'js files' => array('jwysiwyg.js'),
+        'css files' => array('jquery.wysiwyg.css'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_jwysiwyg_version($editor) {
+  $script = $editor['library path'] . '/jquery.wysiwyg.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  fgets($script);
+  $line = fgets($script);
+  if (preg_match('@([0-9\.]+)$@', $line, $version)) {
+    fclose($script);
+    return $version[1];
+  }
+  fclose($script);
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/markitup.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/markitup.inc
new file mode 100644
index 0000000..9c29e24
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/markitup.inc
@@ -0,0 +1,186 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for markItUp.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_markitup_editor() {
+  $editor['markitup'] = array(
+    'title' => 'markItUp',
+    'vendor url' => 'http://markitup.jaysalvat.com',
+    'download url' => 'http://markitup.jaysalvat.com/downloads',
+    'library path' => wysiwyg_get_path('markitup'),
+    'libraries' => array(
+      '' => array(
+        'title' => 'Source',
+        'files' => array('markitup/jquery.markitup.js'),
+      ),
+      'pack' => array(
+        'title' => 'Packed',
+        'files' => array('markitup/jquery.markitup.pack.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_markitup_version',
+    'themes callback' => 'wysiwyg_markitup_themes',
+    'settings callback' => 'wysiwyg_markitup_settings',
+    'plugin callback' => 'wysiwyg_markitup_plugins',
+    'versions' => array(
+      '1.1.5' => array(
+        'js files' => array('markitup.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_markitup_version($editor) {
+  // Changelog was in markitup/markitup/readme.txt <= 1.1.5.
+  $changelog = $editor['library path'] . '/markitup/readme.txt';
+  if (!file_exists($changelog)) {
+    // Changelog was moved up to markitup/CHANGELOG.md after 1.1.5.
+    $changelog = $editor['library path'] . '/CHANGELOG.md';
+    if (!file_exists($changelog)) {
+      return;
+    }
+  }
+  $changelog = fopen($changelog, 'r');
+  $line = fgets($changelog);
+  if (preg_match('@([0-9\.]+)@', $line, $version)) {
+    fclose($changelog);
+    return $version[1];
+  }
+  fclose($changelog);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_markitup_themes($editor, $profile) {
+  return array('simple', 'markitup');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_markitup_settings($editor, $config, $theme) {
+  // Whoever is guilty for adding this horrible CSS-file-without-filepath
+  // override "feature" to Drupal core... stand in the corner!
+  drupal_add_css($editor['library path'] . '/markitup/skins/' . $theme . '/style.css', 'theme');
+
+  $settings = array(
+    'root' => base_path() . $editor['library path'] . '/markitup/',
+    'nameSpace' => $theme,
+    'markupSet' => array(),
+  );
+
+  // Add configured buttons or all available.
+  $default_buttons = array(
+    'bold' => array(
+      'name' => t('Bold'),
+      'className' => 'markitup-bold',
+      'key' => 'B',
+      'openWith' => '(!(<strong>|!|<b>)!)',
+      'closeWith' => '(!(</strong>|!|</b>)!)',
+    ),
+    'italic' => array(
+      'name' => t('Italic'),
+      'className' => 'markitup-italic',
+      'key' => 'I',
+      'openWith' => '(!(<em>|!|<i>)!)',
+      'closeWith' => '(!(</em>|!|</i>)!)',
+    ),
+    'stroke' => array(
+      'name' => t('Strike-through'),
+      'className' => 'markitup-stroke',
+      'key' => 'S',
+      'openWith' => '<del>',
+      'closeWith' => '</del>',
+    ),
+    'image' => array(
+      'name' => t('Image'),
+      'className' => 'markitup-image',
+      'key' => 'P',
+      'replaceWith' => '<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />',
+    ),
+    'link' => array(
+      'name' => t('Link'),
+      'className' => 'markitup-link',
+      'key' => 'K',
+      'openWith' => '<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>',
+      'closeWith' => '</a>',
+      'placeHolder' => 'Your text to link...',
+    ),
+    // @todo
+    // 'cleanup' => array('name' => t('Clean-up'), 'className' => 'markitup-cleanup', 'replaceWith' => 'function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") }'),
+    'preview' => array(
+      'name' => t('Preview'),
+      'className' => 'markitup-preview',
+      'call' => 'preview',
+    ),
+  );
+  $settings['markupSet'] = array();
+  if (!empty($config['buttons'])) {
+    foreach ($config['buttons'] as $plugin) {
+      foreach ($plugin as $button => $enabled) {
+        if (isset($default_buttons[$button])) {
+          $settings['markupSet'][$button] = $default_buttons[$button];
+        }
+      }
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_markitup_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'),
+        'stroke' => t('Strike-through'),
+        'link' => t('Link'),
+        'image' => t('Image'),
+        // 'cleanup' => t('Clean-up'),
+        'preview' => t('Preview'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/nicedit.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/nicedit.inc
new file mode 100644
index 0000000..779660c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/nicedit.inc
@@ -0,0 +1,119 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for NicEdit.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_nicedit_editor() {
+  $editor['nicedit'] = array(
+    'title' => 'NicEdit',
+    'vendor url' => 'http://nicedit.com',
+    'download url' => 'http://nicedit.com/download.php',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Source',
+        'files' => array('nicEdit.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_nicedit_version',
+    'settings callback' => 'wysiwyg_nicedit_settings',
+    'plugin callback' => 'wysiwyg_nicedit_plugins',
+    'versions' => array(
+      '0.9' => array(
+        'js files' => array('nicedit.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_nicedit_version($editor) {
+  // @see http://nicedit.com/forums/viewtopic.php?t=425
+  return '0.9';
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_nicedit_settings($editor, $config, $theme) {
+  $settings = array(
+    'iconsPath' => base_path() . $editor['library path'] . '/nicEditorIcons.gif',
+  );
+
+  // Add configured buttons or all available.
+  $settings['buttonList'] = array();
+  if (!empty($config['buttons'])) {
+    $buttons = array();
+    foreach ($config['buttons'] as $plugin) {
+      $buttons = array_merge($buttons, $plugin);
+    }
+    $settings['buttonList'] = array_keys($buttons);
+  }
+
+  // Add editor content stylesheet.
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $css = path_to_theme() . '/style.css';
+      if (file_exists($css)) {
+        $settings['externalCSS'] = base_path() . $css;
+      }
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['externalCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_nicedit_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'left' => t('Align left'), 'center' => t('Align center'), 'right' => t('Align right'),
+        'ul' => t('Bullet list'), 'ol' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'image' => t('Image'),
+        'forecolor' => t('Forecolor'), 'bgcolor' => t('Backcolor'),
+        'superscript' => t('Superscript'), 'subscript' => t('Subscript'),
+        'hr' => t('Horizontal rule'),
+        // @todo New challenge: Optional internal plugins packaged into editor
+        //   library.
+        'link' => t('Link'), 'unlink' => t('Unlink'),
+        'fontFormat' => t('HTML block format'), 'fontFamily' => t('Font'), 'fontSize' => t('Font size'),
+        'xhtml' => t('Source code'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/openwysiwyg.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/openwysiwyg.inc
new file mode 100644
index 0000000..f521da5
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/openwysiwyg.inc
@@ -0,0 +1,173 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for openWYSIWYG.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_openwysiwyg_editor() {
+  $editor['openwysiwyg'] = array(
+    'title' => 'openWYSIWYG',
+    'vendor url' => 'http://www.openwebware.com',
+    'download url' => 'http://www.openwebware.com/download.shtml',
+    'library path' => wysiwyg_get_path('openwysiwyg') . '/scripts',
+    'libraries' => array(
+      'src' => array(
+        'title' => 'Source',
+        'files' => array('wysiwyg.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_openwysiwyg_version',
+    'themes callback' => 'wysiwyg_openwysiwyg_themes',
+    'settings callback' => 'wysiwyg_openwysiwyg_settings',
+    'plugin callback' => 'wysiwyg_openwysiwyg_plugins',
+    'versions' => array(
+      '1.4.7' => array(
+        'js files' => array('openwysiwyg.js'),
+        'css files' => array('openwysiwyg.css'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_openwysiwyg_version($editor) {
+  // 'library path' has '/scripts' appended already.
+  $changelog = $editor['editor path'] . '/changelog';
+  if (!file_exists($changelog)) {
+    return;
+  }
+  $changelog = fopen($changelog, 'r');
+  $line = fgets($changelog, 20);
+  if (preg_match('@v([\d\.]+)@', $line, $version)) {
+    fclose($changelog);
+    return $version[1];
+  }
+  fclose($changelog);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_openwysiwyg_themes($editor, $profile) {
+  return array('default');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_openwysiwyg_settings($editor, $config, $theme) {
+  $settings = array(
+    'path' => base_path() . $editor['editor path'] . '/',
+    'Width' => '100%',
+  );
+
+  if (isset($config['path_loc']) && $config['path_loc'] == 'none') {
+    $settings['StatusBarEnabled'] = FALSE;
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['CSSFile'] = reset(wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['CSSFile'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  $settings['Toolbar'] = array();
+  if (!empty($config['buttons'])) {
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['Toolbar'][0][] = $button;
+          }
+        }
+      }
+    }
+  }
+
+  // @todo 
+//  if (isset($config['block_formats'])) {
+//    $settings['DropDowns']['headings']['elements'] = explode(',', $config['block_formats']);
+//  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_openwysiwyg_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'justifyleft' => t('Align left'), 'justifycenter' => t('Align center'), 'justifyright' => t('Align right'), 'justifyfull' => t('Justify'),
+        'unorderedlist' => t('Bullet list'), 'orderedlist' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'createlink' => t('Link'),
+        'insertimage' => t('Image'),
+        'cleanup' => t('Clean-up'),
+        'forecolor' => t('Forecolor'), 'backcolor' => t('Backcolor'),
+        'superscript' => t('Sup'), 'subscript' => t('Sub'),
+        'blockquote' => t('Blockquote'), 'viewSource' => t('Source code'),
+        'hr' => t('Horizontal rule'),
+        'cut' => t('Cut'), 'copy' => t('Copy'), 'paste' => t('Paste'),
+        'visualaid' => t('Visual aid'),
+        'removeformat' => t('Remove format'),
+        'charmap' => t('Character map'),
+        'headings' => t('HTML block format'), 'font' => t('Font'), 'fontsize' => t('Font size'),
+        'maximize' => t('Fullscreen'),
+        'preview' => t('Preview'),
+        'print' => t('Print'),
+        'inserttable' => t('Table'),
+        'help' => t('Help'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+  return $plugins;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/tinymce.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/tinymce.inc
new file mode 100644
index 0000000..6f6c86f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/tinymce.inc
@@ -0,0 +1,618 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for TinyMCE.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ *
+ * @todo wysiwyg_<editor>_alter() to add/inject optional libraries like gzip.
+ */
+function wysiwyg_tinymce_editor() {
+  $editor['tinymce'] = array(
+    'title' => 'TinyMCE',
+    'vendor url' => 'http://tinymce.moxiecode.com',
+    'download url' => 'http://tinymce.moxiecode.com/download.php',
+    'library path' => wysiwyg_get_path('tinymce') . '/jscripts/tiny_mce',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Minified',
+        'files' => array('tiny_mce.js'),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array('tiny_mce_src.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_tinymce_version',
+    'themes callback' => 'wysiwyg_tinymce_themes',
+    'settings callback' => 'wysiwyg_tinymce_settings',
+    'plugin callback' => 'wysiwyg_tinymce_plugins',
+    'plugin settings callback' => 'wysiwyg_tinymce_plugin_settings',
+    'proxy plugin' => array(
+      'drupal' => array(
+        'load' => TRUE,
+        'proxy' => TRUE,
+      ),
+    ),
+    'proxy plugin settings callback' => 'wysiwyg_tinymce_proxy_plugin_settings',
+    'versions' => array(
+      '2.1' => array(
+        'js files' => array('tinymce-2.js'),
+        'css files' => array('tinymce-2.css'),
+        'download url' => 'http://sourceforge.net/project/showfiles.php?group_id=103281&package_id=111430&release_id=557383',
+      ),
+      // @todo Starting from 3.3, tiny_mce.js may support JS aggregation.
+      '3.1' => array(
+        'js files' => array('tinymce-3.js'),
+        'css files' => array('tinymce-3.css'),
+        'libraries' => array(
+          '' => array(
+            'title' => 'Minified',
+            'files' => array(
+              'tiny_mce.js' => array('preprocess' => FALSE),
+            ),
+          ),
+          'jquery' => array(
+            'title' => 'jQuery',
+            'files' => array('tiny_mce_jquery.js'),
+          ),
+          'src' => array(
+            'title' => 'Source',
+            'files' => array('tiny_mce_src.js'),
+          ),
+        ),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_tinymce_version($editor) {
+  $script = $editor['library path'] . '/tiny_mce.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  // Version is contained in the first 200 chars.
+  $line = fgets($script, 200);
+  fclose($script);
+  // 2.x: this.majorVersion="2";this.minorVersion="1.3"
+  // 3.x: majorVersion:'3',minorVersion:'2.0.1'
+  if (preg_match('@majorVersion[=:]["\'](\d).+?minorVersion[=:]["\']([\d\.]+)@', $line, $version)) {
+    return $version[1] . '.' . $version[2];
+  }
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_tinymce_themes($editor, $profile) {
+  /*
+  $themes = array();
+  $dir = $editor['library path'] . '/themes/';
+  if (is_dir($dir) && $dh = opendir($dir)) {
+    while (($file = readdir($dh)) !== FALSE) {
+      if (!in_array($file, array('.', '..', 'CVS', '.svn')) && is_dir($dir . $file)) {
+        $themes[$file] = $file;
+      }
+    }
+    closedir($dh);
+    asort($themes);
+  }
+  return $themes;
+  */
+  return array('advanced', 'simple');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_tinymce_settings($editor, $config, $theme) {
+  $settings = array(
+    'button_tile_map' => TRUE, // @todo Add a setting for this.
+    'document_base_url' => base_path(),
+    'mode' => 'none',
+    'plugins' => array(),
+    'theme' => $theme,
+    'width' => '100%',
+    // Strict loading mode must be enabled; otherwise TinyMCE would use
+    // document.write() in IE and Chrome.
+    'strict_loading_mode' => TRUE,
+    // TinyMCE's URL conversion magic breaks Drupal modules that use a special
+    // syntax for paths. This makes 'relative_urls' obsolete.
+    'convert_urls' => FALSE,
+    // The default entity_encoding ('named') converts too many characters in
+    // languages (like Greek). Since Drupal supports Unicode, we only convert
+    // HTML control characters and invisible characters. TinyMCE always converts
+    // XML default characters '&', '<', '>'.
+    'entities' => '160,nbsp,173,shy,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm',
+  );
+  if (isset($config['apply_source_formatting'])) {
+    $settings['apply_source_formatting'] = $config['apply_source_formatting'];
+  }
+  if (isset($config['convert_fonts_to_spans'])) {
+    $settings['convert_fonts_to_spans'] = $config['convert_fonts_to_spans'];
+  }
+  if (isset($config['language'])) {
+    $settings['language'] = $config['language'];
+  }
+  if (isset($config['paste_auto_cleanup_on_paste'])) {
+    $settings['paste_auto_cleanup_on_paste'] = $config['paste_auto_cleanup_on_paste'];
+  }
+  if (isset($config['preformatted'])) {
+    $settings['preformatted'] = $config['preformatted'];
+  }
+  if (isset($config['remove_linebreaks'])) {
+    $settings['remove_linebreaks'] = $config['remove_linebreaks'];
+  }
+  if (isset($config['verify_html'])) {
+    $settings['verify_html'] = (bool) $config['verify_html'];
+  }
+
+  if (!empty($config['css_classes'])) {
+    $settings['theme_advanced_styles'] = implode(';', array_filter(explode("\n", str_replace("\r", '', $config['css_classes']))));
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['content_css'] = implode(',', wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['content_css'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  // Find the enabled buttons and the button row they belong on.
+  // Also map the plugin metadata for each button.
+  // @todo What follows is a pain; needs a rewrite.
+  // $settings['buttons'] are stacked into $settings['theme_advanced_buttons1']
+  // later.
+  $settings['buttons'] = array();
+  if (!empty($config['buttons']) && is_array($config['buttons'])) {
+    // Only array keys in $settings['extensions'] matter; added to
+    // $settings['plugins'] later.
+    $settings['extensions'] = array();
+    // $settings['extended_valid_elements'] are just stacked, unique'd later,
+    // and transformed into a comma-separated string in
+    // wysiwyg_add_editor_settings().
+    // @todo Needs a complete plugin API redesign using arrays for
+    //   tag => attributes definitions and array_merge_recursive().
+    $settings['extended_valid_elements'] = array();
+
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['buttons'][] = $button;
+          }
+          // Add external Drupal plugins to the list of extensions.
+          if ($type == 'buttons' && !empty($plugins[$plugin]['proxy'])) {
+            $settings['extensions'][_wysiwyg_tinymce_plugin_name('add', $button)] = 1;
+          }
+          // Add external plugins to the list of extensions.
+          else if ($type == 'buttons' && empty($plugins[$plugin]['internal'])) {
+            $settings['extensions'][_wysiwyg_tinymce_plugin_name('add', $plugin)] = 1;
+          }
+          // Add internal buttons that also need to be loaded as extension.
+          else if ($type == 'buttons' && !empty($plugins[$plugin]['load'])) {
+            $settings['extensions'][$plugin] = 1;
+          }
+          // Add plain extensions.
+          else if ($type == 'extensions' && !empty($plugins[$plugin]['load'])) {
+            $settings['extensions'][$plugin] = 1;
+          }
+          // Allow plugins to add valid HTML elements.
+          if (!empty($plugins[$plugin]['extended_valid_elements'])) {
+            $settings['extended_valid_elements'] = array_merge($settings['extended_valid_elements'], $plugins[$plugin]['extended_valid_elements']);
+          }
+          // Allow plugins to add or override global configuration settings.
+          if (!empty($plugins[$plugin]['options'])) {
+            $settings = array_merge($settings, $plugins[$plugin]['options']);
+          }
+        }
+      }
+    }
+    // Clean-up.
+    $settings['extended_valid_elements'] = array_unique($settings['extended_valid_elements']);
+    if ($settings['extensions']) {
+      $settings['plugins'] = array_keys($settings['extensions']);
+    }
+    unset($settings['extensions']);
+  }
+
+  // Add theme-specific settings.
+  switch ($theme) {
+    case 'advanced':
+      $settings += array(
+        'theme_advanced_resize_horizontal' => FALSE,
+        'theme_advanced_resizing_use_cookie' => FALSE,
+        'theme_advanced_path_location' => isset($config['path_loc']) ? $config['path_loc'] : 'bottom',
+        'theme_advanced_resizing' => isset($config['resizing']) ? $config['resizing'] : 1,
+        'theme_advanced_toolbar_location' => isset($config['toolbar_loc']) ? $config['toolbar_loc'] : 'top',
+        'theme_advanced_toolbar_align' => isset($config['toolbar_align']) ? $config['toolbar_align'] : 'left',
+      );
+      if (isset($config['block_formats'])) {
+        $settings['theme_advanced_blockformats'] = $config['block_formats'];
+      }
+      if (isset($settings['buttons'])) {
+        // These rows explicitly need to be set to be empty, otherwise TinyMCE
+        // loads its default buttons of the advanced theme for each row.
+        $settings += array(
+          'theme_advanced_buttons1' => array(),
+          'theme_advanced_buttons2' => array(),
+          'theme_advanced_buttons3' => array(),
+        );
+        // @todo Allow to sort/arrange editor buttons.
+        for ($i = 0; $i < count($settings['buttons']); $i++) {
+          $settings['theme_advanced_buttons1'][] = $settings['buttons'][$i];
+        }
+      }
+      break;
+  }
+  unset($settings['buttons']);
+
+  // Convert the config values into the form expected by TinyMCE.
+  $csv_settings = array('plugins', 'extended_valid_elements', 'theme_advanced_buttons1', 'theme_advanced_buttons2', 'theme_advanced_buttons3');
+  foreach ($csv_settings as $key) {
+    if (isset($settings[$key]) && is_array($settings[$key])) {
+      $settings[$key] = implode(',', $settings[$key]);
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Build a JS settings array of native external plugins that need to be loaded separately.
+ *
+ * TinyMCE requires that external plugins (i.e. not residing in the editor's
+ * directory) are loaded (once) upon initializing the editor.
+ */
+function wysiwyg_tinymce_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    if (!empty($plugin['load'])) {
+      // Add path for native external plugins; internal ones are loaded
+      // automatically.
+      if (empty($plugin['internal']) && isset($plugin['path'])) {
+        // TinyMCE plugins commonly use the filename editor_plugin.js, but there
+        // is no default. Previously, Wysiwyg's API documentation suggested to
+        // have the 'path' contain the 'filename' property, so if 'filename' is
+        // not defined, automatically extract it from 'path' for backwards
+        // compatibility.
+        if (!isset($plugin['filename'])) {
+          $parts = explode('/', $plugin['path']);
+          $plugin['filename'] = array_pop($parts);
+          $plugin['path'] = implode('/', $parts);
+        }
+        $settings[$name] = base_path() . $plugin['path'] . '/' . $plugin['filename'];
+      }
+    }
+  }
+  return $settings;
+}
+
+/**
+ * Build a JS settings array for Drupal plugins loaded via the proxy plugin.
+ */
+function wysiwyg_tinymce_proxy_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Populate required plugin settings.
+    $settings[$name] = $plugin['dialog settings'] + array(
+      'title' => $plugin['title'],
+      'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'],
+      'iconTitle' => $plugin['icon title'],
+    );
+    if (isset($plugin['css file'])) {
+      $settings[$name]['css'] = base_path() . $plugin['css path'] . '/' . $plugin['css file'];
+    }
+  }
+  return $settings;
+}
+
+/**
+ * Add or remove leading hiven to/of external plugin names.
+ *
+ * TinyMCE requires that external plugins, which should not be loaded from
+ * its own plugin repository are prefixed with a hiven in the name.
+ *
+ * @param string $op
+ *   Operation to perform, 'add' or 'remove' (hiven).
+ * @param string $name
+ *   A plugin name.
+ */
+function _wysiwyg_tinymce_plugin_name($op, $name) {
+  if ($op == 'add') {
+    if (strpos($name, '-') !== 0) {
+      return '-' . $name;
+    }
+    return $name;
+  }
+  else if ($op == 'remove') {
+    if (strpos($name, '-') === 0) {
+      return substr($name, 1);
+    }
+    return $name;
+  }
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_tinymce_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'path' => $editor['library path'] . '/themes/advanced',
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'justifyleft' => t('Align left'), 'justifycenter' => t('Align center'), 'justifyright' => t('Align right'), 'justifyfull' => t('Justify'),
+        'bullist' => t('Bullet list'), 'numlist' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'link' => t('Link'), 'unlink' => t('Unlink'), 'anchor' => t('Anchor'),
+        'image' => t('Image'),
+        'cleanup' => t('Clean-up'),
+        'forecolor' => t('Forecolor'), 'backcolor' => t('Backcolor'),
+        'sup' => t('Superscript'), 'sub' => t('Subscript'),
+        'blockquote' => t('Blockquote'), 'code' => t('Source code'),
+        'hr' => t('Horizontal rule'),
+        'cut' => t('Cut'), 'copy' => t('Copy'), 'paste' => t('Paste'),
+        'visualaid' => t('Visual aid'),
+        'removeformat' => t('Remove format'),
+        'charmap' => t('Character map'),
+        'help' => t('Help'),
+      ),
+      'internal' => TRUE,
+    ),
+    'advhr' => array(
+      'path' => $editor['library path'] . '/plugins/advhr',
+      'buttons' => array('advhr' => t('Advanced horizontal rule')),
+      'extended_valid_elements' => array('hr[class|width|size|noshade]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'advimage' => array(
+      'path' => $editor['library path'] . '/plugins/advimage',
+      'extensions' => array('advimage' => t('Advanced image')),
+      'extended_valid_elements' => array('img[src|alt|title|align|width|height|usemap|hspace|vspace|border|style|class|onmouseover|onmouseout|id|name]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'advlink' => array(
+      'path' => $editor['library path'] . '/plugins/advlink',
+      'extensions' => array('advlink' => t('Advanced link')),
+      'extended_valid_elements' => array('a[name|href|target|title|class|onfocus|onblur|onclick|ondlbclick|onmousedown|onmouseup|onmouseover|onmouseout|onkeypress|onkeydown|onkeyup|id|style|rel]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'autosave' => array(
+      'path' => $editor['library path'] . '/plugins/autosave',
+      'extensions' => array('autosave' => t('Auto save')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'contextmenu' => array(
+      'path' => $editor['library path'] . '/plugins/contextmenu',
+      'extensions' => array('contextmenu' => t('Context menu')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'directionality' => array(
+      'path' => $editor['library path'] . '/plugins/directionality',
+      'buttons' => array('ltr' => t('Left-to-right'), 'rtl' => t('Right-to-left')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'emotions' => array(
+      'path' => $editor['library path'] . '/plugins/emotions',
+      'buttons' => array('emotions' => t('Emotions')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'font' => array(
+      'path' => $editor['library path'] . '/plugins/font',
+      'buttons' => array('formatselect' => t('HTML block format'), 'fontselect' => t('Font'), 'fontsizeselect' => t('Font size'), 'styleselect' => t('Font style')),
+      'extended_valid_elements' => array('font[face|size|color|style],span[class|align|style]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/font',
+      'internal' => TRUE,
+    ),
+    'fullscreen' => array(
+      'path' => $editor['library path'] . '/plugins/fullscreen',
+      'buttons' => array('fullscreen' => t('Fullscreen')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'inlinepopups' => array(
+      'path' => $editor['library path'] . '/plugins/inlinepopups',
+      'extensions' => array('inlinepopups' => t('Inline popups')),
+      'options' => array(
+        'dialog_type' => array('modal'),
+      ),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'insertdatetime' => array(
+      'path' => $editor['library path'] . '/plugins/insertdatetime',
+      'buttons' => array('insertdate' => t('Insert date'), 'inserttime' => t('Insert time')),
+      'options' => array(
+        'plugin_insertdate_dateFormat' => '%Y-%m-%d',
+        'plugin_insertdate_timeFormat' => '%H:%M:%S',
+      ),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'layer' => array(
+      'path' => $editor['library path'] . '/plugins/layer',
+      'buttons' => array('insertlayer' => t('Insert layer'), 'moveforward' => t('Move forward'), 'movebackward' => t('Move backward'), 'absolute' => t('Absolute')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'paste' => array(
+      'path' => $editor['library path'] . '/plugins/paste',
+      'buttons' => array('pastetext' => t('Paste text'), 'pasteword' => t('Paste from Word'), 'selectall' => t('Select all')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'preview' => array(
+      'path' => $editor['library path'] . '/plugins/preview',
+      'buttons' => array('preview' => t('Preview')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'print' => array(
+      'path' => $editor['library path'] . '/plugins/print',
+      'buttons' => array('print' => t('Print')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'searchreplace' => array(
+      'path' => $editor['library path'] . '/plugins/searchreplace',
+      'buttons' => array('search' => t('Search'), 'replace' => t('Replace')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'style' => array(
+      'path' => $editor['library path'] . '/plugins/style',
+      'buttons' => array('styleprops' => t('Style properties')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'table' => array(
+      'path' => $editor['library path'] . '/plugins/table',
+      'buttons' => array('tablecontrols' => t('Table')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+  );
+  if (version_compare($editor['installed version'], '3', '<')) {
+    $plugins['flash'] = array(
+      'path' => $editor['library path'] . '/plugins/flash',
+      'buttons' => array('flash' => t('Flash')),
+      'extended_valid_elements' => array('img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|obj|param|embed]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/flash',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  if (version_compare($editor['installed version'], '2.0.6', '>')) {
+    $plugins['media'] = array(
+      'path' => $editor['library path'] . '/plugins/media',
+      'buttons' => array('media' => t('Media')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+    $plugins['xhtmlxtras'] = array(
+      'path' => $editor['library path'] . '/plugins/xhtmlxtras',
+      'buttons' => array('cite' => t('Citation'), 'del' => t('Deleted'), 'abbr' => t('Abbreviation'), 'acronym' => t('Acronym'), 'ins' => t('Inserted'), 'attribs' => t('HTML attributes')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  if (version_compare($editor['installed version'], '3', '>')) {
+    $plugins['bbcode'] = array(
+      'path' => $editor['library path'] . '/plugins/bbcode',
+      'extensions' => array('bbcode' => t('BBCode')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+    if (version_compare($editor['installed version'], '3.3', '<')) {
+      $plugins['safari'] = array(
+        'path' => $editor['library path'] . '/plugins/safari',
+        'extensions' => array('safari' => t('Safari compatibility')),
+        'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
+        'internal' => TRUE,
+        'load' => TRUE,
+      );
+    }
+  }
+  if (version_compare($editor['installed version'], '3.2.5', '>=')) {
+    $plugins['autoresize'] = array(
+      'path' => $editor['library path'] . '/plugins/autoresize',
+      'extensions' => array('autoresize' => t('Auto resize')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  if (version_compare($editor['installed version'], '3.3', '>=')) {
+    $plugins['advlist'] = array(
+      'path' => $editor['library path'] . '/plugins/advlist',
+      'extensions' => array('advlist' => t('Advanced list')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlist',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  if (version_compare($editor['installed version'], '3.2.6', '>=')) {
+    $plugins['wordcount'] = array(
+      'path' => $editor['library path'] . '/plugins/wordcount',
+      'extensions' => array('wordcount' => t('Word count')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  return $plugins;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/whizzywig.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/whizzywig.inc
new file mode 100644
index 0000000..d82cc0f
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/whizzywig.inc
@@ -0,0 +1,147 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for Whizzywig.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_whizzywig_editor() {
+  $editor['whizzywig'] = array(
+    'title' => 'Whizzywig',
+    'vendor url' => 'http://www.unverse.net',
+    'download url' => 'http://www.unverse.net/whizzywig-download.html',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Default',
+        'files' => array('whizzywig.js', 'xhtml.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_whizzywig_version',
+    'settings callback' => 'wysiwyg_whizzywig_settings',
+    'plugin callback' => 'wysiwyg_whizzywig_plugins',
+    'versions' => array(
+      '55' => array(
+        'js files' => array('whizzywig.js'),
+      ),
+      '56' => array(
+        'js files' => array('whizzywig-56.js'),
+      ),
+      '60' => array(
+        'js files' => array('whizzywig-60.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_whizzywig_version($editor) {
+  $script = $editor['library path'] . '/whizzywig.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  $line = fgets($script, 43);
+  // 55: Whizzywig v55i
+  // 60: Whizzywig 60
+  if (preg_match('@Whizzywig v?([0-9]+)@', $line, $version)) {
+    fclose($script);
+    return $version[1];
+  }
+  fclose($script);
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_whizzywig_settings($editor, $config, $theme) {
+  $settings = array();
+
+  // Add path to button images, if available.
+  if (is_dir($editor['library path'] . '/btn')) {
+    $settings['buttonPath'] = base_path() . $editor['library path'] . '/btn/';
+  }
+  if (file_exists($editor['library path'] . '/WhizzywigToolbar.png')) {
+    $settings['toolbarImagePath'] = base_path() . $editor['library path'] . '/WhizzywigToolbar.png';
+  }
+  // Filename changed in version 60.
+  elseif (file_exists($editor['library path'] . '/icons.png')) {
+    $settings['toolbarImagePath'] = base_path() . $editor['library path'] . '/icons.png';
+  }
+
+  // Add configured buttons or all available.
+  $settings['buttons'] = array();
+  if (!empty($config['buttons'])) {
+    $buttons = array();
+    foreach ($config['buttons'] as $plugin) {
+      $buttons = array_merge($buttons, $plugin);
+    }
+    $settings['buttons'] = implode(' ', array_keys($buttons));
+  }
+
+  // Add editor content stylesheet.
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $css = path_to_theme() . '/style.css';
+      if (file_exists($css)) {
+        $settings['externalCSS'] = base_path() . $css;
+      }
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['externalCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_whizzywig_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'formatblock' => t('HTML block format'), 'fontname' => t('Font'), 'fontsize' => t('Font size'),
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'left' => t('Align left'), 'center' => t('Align center'), 'right' => t('Align right'),
+        'bullet' => t('Bullet list'), 'number' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'image' => t('Image'),
+        'color' => t('Forecolor'), 'hilite' => t('Backcolor'),
+        'rule' => t('Horizontal rule'),
+        'link' => t('Link'),
+        'image' => t('Image'),
+        'table' => t('Table'),
+        'clean' => t('Clean-up'),
+        'html' => t('Source code'),
+        'spellcheck' => t('Spell check'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/wymeditor.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/wymeditor.inc
new file mode 100644
index 0000000..3e8ffd2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/wymeditor.inc
@@ -0,0 +1,233 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for WYMeditor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_wymeditor_editor() {
+  $editor['wymeditor'] = array(
+    'title' => 'WYMeditor',
+    'vendor url' => 'http://www.wymeditor.org/',
+    'download url' => 'http://www.wymeditor.org/download/',
+    'library path' => wysiwyg_get_path('wymeditor') . '/wymeditor',
+    'libraries' => array(
+      'min' => array(
+        'title' => 'Minified',
+        'files' => array('jquery.wymeditor.min.js'),
+      ),
+      'pack' => array(
+        'title' => 'Packed',
+        'files' => array('jquery.wymeditor.pack.js'),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array('jquery.wymeditor.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_wymeditor_version',
+    'themes callback' => 'wysiwyg_wymeditor_themes',
+    'settings callback' => 'wysiwyg_wymeditor_settings',
+    'plugin callback' => 'wysiwyg_wymeditor_plugins',
+    'versions' => array(
+      '0.5-rc1' => array(
+        'js files' => array('wymeditor.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_wymeditor_version($editor) {
+  $script = $editor['library path'] . '/jquery.wymeditor.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  fgets($script);
+  $line = fgets($script);
+  if (preg_match('@version\s+([0-9a-z\.-]+)@', $line, $version)) {
+    fclose($script);
+    return $version[1];
+  }
+  fclose($script);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_wymeditor_themes($editor, $profile) {
+  return array('compact', 'default', 'minimal', 'silver', 'twopanels');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_wymeditor_settings($editor, $config, $theme) {
+  // @todo Setup $library in wysiwyg_load_editor() already.
+  $library = (isset($editor['library']) ? $editor['library'] : key($editor['libraries']));
+  $settings = array(
+    'basePath' => base_path() . $editor['library path'] . '/',
+    'wymPath' => $editor['libraries'][$library]['files'][0],
+    // @todo Does not work in Drupal; jQuery can live anywhere.
+    'jQueryPath' => base_path() . 'misc/jquery.js',
+    'updateSelector' => '.form-submit',
+    'skin' => $theme,
+  );
+
+  if (isset($config['language'])) {
+    $settings['lang'] = $config['language'];
+  }
+
+  // Add configured buttons.
+  $settings['toolsItems'] = array();
+  if (!empty($config['buttons'])) {
+    $buttoninfo = _wysiwyg_wymeditor_button_info();
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            // Merge meta-data for internal default buttons.
+            if (isset($buttoninfo[$button])) {
+              $buttoninfo[$button] += array('name' => $button);
+              $settings['toolsItems'][] = $buttoninfo[$button];
+            }
+            // For custom buttons, try to provide a valid button definition.
+            else {
+              $settings['toolsItems'][] = array(
+                'name' => $button,
+                'title' => $plugins[$plugin][$type][$button],
+                'css' => 'wym_tools_' . $button,
+              );
+            }
+          }
+        }
+      }
+    }
+  }
+
+  if (!empty($config['block_formats'])) {
+    $containers = array(
+      'p' => 'Paragraph',
+      'h1' => 'Heading_1',
+      'h2' => 'Heading_2',
+      'h3' => 'Heading_3',
+      'h4' => 'Heading_4',
+      'h5' => 'Heading_5',
+      'h6' => 'Heading_6',
+      'pre' => 'Preformatted',
+      'blockquote' => 'Blockquote',
+      'th' => 'Table_Header',
+    );
+    foreach (explode(',', $config['block_formats']) as $tag) {
+      if (isset($containers[$tag])) {
+        $settings['containersItems'][] = array(
+          'name' => strtoupper($tag),
+          'title' => $containers[$tag],
+          'css' => 'wym_containers_' . $tag,
+        );
+      }
+    }
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      // WYMeditor only supports one CSS file currently.
+      $settings['stylesheet'] = reset(wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['stylesheet'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_wymeditor_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'Bold' => t('Bold'), 'Italic' => t('Italic'),
+        'InsertOrderedList' => t('Bullet list'), 'InsertUnorderedList' => t('Numbered list'),
+        'Outdent' => t('Outdent'), 'Indent' => t('Indent'),
+        'Undo' => t('Undo'), 'Redo' => t('Redo'),
+        'CreateLink' => t('Link'), 'Unlink' => t('Unlink'),
+        'InsertImage' => t('Image'),
+        'Superscript' => t('Superscript'), 'Subscript' => t('Subscript'),
+        'ToggleHtml' => t('Source code'),
+        'Paste' => t('Paste'),
+        'InsertTable' => t('Table'),
+        'Preview' => t('Preview'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+  return $plugins;
+}
+
+/**
+ * Helper function to provide additional meta-data for internal default buttons.
+ */
+function _wysiwyg_wymeditor_button_info() {
+  return array(
+    'Bold' => array('title'=> 'Strong', 'css'=> 'wym_tools_strong'),
+    'Italic' => array('title'=> 'Emphasis', 'css'=> 'wym_tools_emphasis'),
+    'Superscript' => array('title'=> 'Superscript', 'css'=> 'wym_tools_superscript'),
+    'Subscript' => array('title'=> 'Subscript', 'css'=> 'wym_tools_subscript'),
+    'InsertOrderedList' => array('title'=> 'Ordered_List', 'css'=> 'wym_tools_ordered_list'),
+    'InsertUnorderedList' => array('title'=> 'Unordered_List', 'css'=> 'wym_tools_unordered_list'),
+    'Indent' => array('title'=> 'Indent', 'css'=> 'wym_tools_indent'),
+    'Outdent' => array('title'=> 'Outdent', 'css'=> 'wym_tools_outdent'),
+    'Undo' => array('title'=> 'Undo', 'css'=> 'wym_tools_undo'),
+    'Redo' => array('title'=> 'Redo', 'css'=> 'wym_tools_redo'),
+    'CreateLink' => array('title'=> 'Link', 'css'=> 'wym_tools_link'),
+    'Unlink' => array('title'=> 'Unlink', 'css'=> 'wym_tools_unlink'),
+    'InsertImage' => array('title'=> 'Image', 'css'=> 'wym_tools_image'),
+    'InsertTable' => array('title'=> 'Table', 'css'=> 'wym_tools_table'),
+    'Paste' => array('title'=> 'Paste_From_Word', 'css'=> 'wym_tools_paste'),
+    'ToggleHtml' => array('title'=> 'HTML', 'css'=> 'wym_tools_html'),
+    'Preview' => array('title'=> 'Preview', 'css'=> 'wym_tools_preview'),
+  );
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/yui.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/yui.inc
new file mode 100644
index 0000000..7e3c697
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/editors/yui.inc
@@ -0,0 +1,297 @@
+<?php
+
+/**
+ * @file
+ * Editor integration functions for YUI editor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_yui_editor() {
+  $editor['yui'] = array(
+    'title' => 'YUI editor',
+    'vendor url' => 'http://developer.yahoo.com/yui/editor/',
+    'download url' => 'http://developer.yahoo.com/yui/download/',
+    'library path' => wysiwyg_get_path('yui') . '/build',
+    'libraries' => array(
+      'min' => array(
+        'title' => 'Minified',
+        'files' => array(
+          'yahoo-dom-event/yahoo-dom-event.js',
+          'animation/animation-min.js',
+          'element/element-min.js',
+          'container/container-min.js',
+          'menu/menu-min.js',
+          'button/button-min.js',
+          'editor/editor-min.js',
+        ),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array(
+          'yahoo-dom-event/yahoo-dom-event.js',
+          'animation/animation.js',
+          'element/element.js',
+          'container/container.js',
+          'menu/menu.js',
+          'button/button.js',
+          'editor/editor.js',
+        ),
+      ),
+    ),
+    'version callback' => 'wysiwyg_yui_version',
+    'themes callback' => 'wysiwyg_yui_themes',
+    'load callback' => 'wysiwyg_yui_load',
+    'settings callback' => 'wysiwyg_yui_settings',
+    'plugin callback' => 'wysiwyg_yui_plugins',
+    'versions' => array(
+      '2.7.0' => array(
+        'js files' => array('yui.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_yui_version($editor) {
+  $library = $editor['library path'] . '/editor/editor.js';
+  if (!file_exists($library)) {
+    return;
+  }
+  $library = fopen($library, 'r');
+  $max_lines = 10;
+  while ($max_lines && $line = fgets($library, 60)) {
+    if (preg_match('@version:\s([0-9\.]+)@', $line, $version)) {
+      fclose($library);
+      return $version[1];
+    }
+    $max_lines--;
+  }
+  fclose($library);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_yui_themes($editor, $profile) {
+  return array('sam');
+}
+
+/**
+ * Perform additional actions upon loading this editor.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $library
+ *   The internal library name (array key) to use.
+ */
+function wysiwyg_yui_load($editor, $library) {
+  drupal_add_css($editor['library path'] . '/menu/assets/skins/sam/menu.css');
+  drupal_add_css($editor['library path'] . '/button/assets/skins/sam/button.css');
+  drupal_add_css($editor['library path'] . '/fonts/fonts-min.css');
+  drupal_add_css($editor['library path'] . '/container/assets/skins/sam/container.css');
+  drupal_add_css($editor['library path'] . '/editor/assets/skins/sam/editor.css');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_yui_settings($editor, $config, $theme) {
+  $settings = array(
+    'theme' => $theme,
+    'animate' => TRUE,
+    'handleSubmit' => TRUE,
+    'markup' => 'xhtml',
+    'ptags' => TRUE,
+  );
+
+  if (isset($config['path_loc']) && $config['path_loc'] != 'none') {
+    $settings['dompath'] = $config['path_loc'];
+  }
+  // Enable auto-height feature when editor should be resizable.
+  if (!empty($config['resizing'])) {
+    $settings['autoHeight'] = TRUE;
+  }
+
+  $settings += array(
+    'toolbar' => array(
+      'collapse' => FALSE,
+      'draggable' => TRUE,
+      'buttonType' => 'advanced',
+      'buttons' => array(),
+    ),
+  );
+  if (!empty($config['buttons'])) {
+    $buttons = array();
+    foreach ($config['buttons'] as $plugin => $enabled_buttons) {
+      foreach ($enabled_buttons as $button => $enabled) {
+        $extra = array();
+        if ($button == 'heading') {
+          $extra = array('menu' => array(
+            array('text' => 'Normal', 'value' => 'none', 'checked' => TRUE),
+          ));
+          if (!empty($config['block_formats'])) {
+            $headings = array(
+              'p' => array('text' => 'Paragraph', 'value' => 'p'),
+              'h1' => array('text' => 'Heading 1', 'value' => 'h1'),
+              'h2' => array('text' => 'Heading 2', 'value' => 'h2'),
+              'h3' => array('text' => 'Heading 3', 'value' => 'h3'),
+              'h4' => array('text' => 'Heading 4', 'value' => 'h4'),
+              'h5' => array('text' => 'Heading 5', 'value' => 'h5'),
+              'h6' => array('text' => 'Heading 6', 'value' => 'h6'),
+            );
+            foreach (explode(',', $config['block_formats']) as $tag) {
+              if (isset($headings[$tag])) {
+                $extra['menu'][] = $headings[$tag];
+              }
+            }
+          }
+        }
+        else if ($button == 'fontname') {
+          $extra = array('menu' => array(
+            array('text' => 'Arial', 'checked' => TRUE),
+            array('text' => 'Arial Black'),
+            array('text' => 'Comic Sans MS'),
+            array('text' => 'Courier New'),
+            array('text' => 'Lucida Console'),
+            array('text' => 'Tahoma'),
+            array('text' => 'Times New Roman'),
+            array('text' => 'Trebuchet MS'),
+            array('text' => 'Verdana'),
+          ));
+        }
+        $buttons[] = wysiwyg_yui_button_setting($editor, $plugin, $button, $extra);
+      }
+    }
+    // Group buttons in a dummy group.
+    $buttons = array('group' => 'default', 'label' => '', 'buttons' => $buttons);
+    $settings['toolbar']['buttons'] = array($buttons);
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['extracss'] = wysiwyg_get_css();
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['extracss'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+      $settings['extracss'] = explode(',', $settings['extracss']);
+    }
+    // YUI only supports inline CSS, so we need to use @import directives.
+    // Syntax: '@import "/base/path/to/theme/style.css"; '
+    if (!empty($settings['extracss'])) {
+      $settings['extracss'] = '@import "' . implode('"; @import "', $settings['extracss']) . '";';
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Create the JavaScript structure for a YUI button.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $plugin
+ *   The internal name of a plugin.
+ * @param $button
+ *   The internal name of a button, defined by $plugin.
+ * @param $extra
+ *   (optional) An array containing arbitrary other elements to add to the
+ *   resulting button.
+ */
+function wysiwyg_yui_button_setting($editor, $plugin, $button, $extra = array()) {
+  static $plugins;
+
+  if (!isset($plugins)) {
+    // @todo Invoke all enabled plugins, not just internals.
+    $plugins = wysiwyg_yui_plugins($editor);
+  }
+
+  // Return a simple separator.
+  if ($button === 'separator') {
+    return array('type' => 'separator');
+  }
+  // Setup defaults.
+  $type = 'push';
+  $label = $plugins[$plugin]['buttons'][$button];
+
+  // Special handling for certain buttons.
+  if (in_array($button, array('heading', 'fontname'))) {
+    $type = 'select';
+    $label = $extra['menu'][0]['text'];
+  }
+  elseif (in_array($button, array('fontsize'))) {
+    $type = 'spin';
+  }
+  elseif (in_array($button, array('forecolor', 'backcolor'))) {
+    $type = 'color';
+  }
+
+  $button = array(
+    'type' => $type,
+    'label' => $label,
+    'value' => $button,
+  );
+  // Add arbitrary other elements, if defined.
+  if (!empty($extra)) {
+    $button = array_merge($button, $extra);
+  }
+  return $button;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_yui_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'justifyleft' => t('Align left'), 'justifycenter' => t('Align center'), 'justifyright' => t('Align right'), 'justifyfull' => t('Justify'),
+        'insertunorderedlist' => t('Bullet list'), 'insertorderedlist' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'createlink' => t('Link'),
+        'insertimage' => t('Image'),
+        'forecolor' => t('Font Color'), 'backcolor' => t('Background Color'),
+        'superscript' => t('Sup'), 'subscript' => t('Sub'),
+        'hiddenelements' => t('Show/hide hidden elements'),
+        'removeformat' => t('Remove format'),
+        'heading' => t('HTML block format'), 'fontname' => t('Font'), 'fontsize' => t('Font size'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break.inc
new file mode 100644
index 0000000..887d590
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break.inc
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * @file
+ * Wysiwyg API integration on behalf of Node module.
+ */
+
+/**
+ * Implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_break_plugin() {
+  $plugins['break'] = array(
+    'title' => t('Teaser break'),
+    'vendor url' => 'http://drupal.org/project/wysiwyg',
+    'icon file' => 'break.gif',
+    'icon title' => t('Separate the teaser and body of this content'),
+    'settings' => array(),
+  );
+  return $plugins;
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/break.css b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/break.css
new file mode 100644
index 0000000..4aaab76
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/break.css
@@ -0,0 +1,10 @@
+
+.wysiwyg-break {
+  display: block;
+  border: 0;
+  border-top: 1px dotted #ccc;
+  margin-top: 1em;
+  width: 100%;
+  height: 12px;
+  background: transparent url(images/breaktext.gif) no-repeat center top;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/break.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/break.js
new file mode 100644
index 0000000..54aac4c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/break.js
@@ -0,0 +1,68 @@
+(function ($) {
+
+// @todo Array syntax required; 'break' is a predefined token in JavaScript.
+Drupal.wysiwyg.plugins['break'] = {
+
+  /**
+   * Return whether the passed node belongs to this plugin.
+   */
+  isNode: function(node) {
+    return ($(node).is('img.wysiwyg-break'));
+  },
+
+  /**
+   * Execute the button.
+   */
+  invoke: function(data, settings, instanceId) {
+    if (data.format == 'html') {
+      // Prevent duplicating a teaser break.
+      if ($(data.node).is('img.wysiwyg-break')) {
+        return;
+      }
+      var content = this._getPlaceholder(settings);
+    }
+    else {
+      // Prevent duplicating a teaser break.
+      // @todo data.content is the selection only; needs access to complete content.
+      if (data.content.match(/<!--break-->/)) {
+        return;
+      }
+      var content = '<!--break-->';
+    }
+    if (typeof content != 'undefined') {
+      Drupal.wysiwyg.instances[instanceId].insert(content);
+    }
+  },
+
+  /**
+   * Replace all <!--break--> tags with images.
+   */
+  attach: function(content, settings, instanceId) {
+    content = content.replace(/<!--break-->/g, this._getPlaceholder(settings));
+    return content;
+  },
+
+  /**
+   * Replace images with <!--break--> tags in content upon detaching editor.
+   */
+  detach: function(content, settings, instanceId) {
+    var $content = $('<div>' + content + '</div>'); // No .outerHTML() in jQuery :(
+    // #404532: document.createComment() required or IE will strip the comment.
+    // #474908: IE 8 breaks when using jQuery methods to replace the elements.
+    // @todo Add a generic implementation for all Drupal plugins for this.
+    $.each($('img.wysiwyg-break', $content), function (i, elem) {
+      elem.parentNode.insertBefore(document.createComment('break'), elem);
+      elem.parentNode.removeChild(elem);
+    });
+    return $content.html();
+  },
+
+  /**
+   * Helper function to return a HTML placeholder.
+   */
+  _getPlaceholder: function (settings) {
+    return '<img src="' + settings.path + '/images/spacer.gif" alt="<--break->" title="<--break-->" class="wysiwyg-break drupal-content" />';
+  }
+};
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/break.gif b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/break.gif
new file mode 100644
index 0000000..4ff564d
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/break.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/breaktext.gif b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/breaktext.gif
new file mode 100644
index 0000000..6197873
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/breaktext.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/spacer.gif b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/spacer.gif
new file mode 100644
index 0000000..3884865
Binary files /dev/null and b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/images/spacer.gif differ
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/ca.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/ca.js
new file mode 100644
index 0000000..5ead938
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/ca.js
@@ -0,0 +1,6 @@
+
+tinyMCE.addToLang('break', {
+  title: 'Inserir marcador de document retallat',
+  desc: 'Generar el punt de separació entre la versió retallada del document i la resta del contingut'
+});
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/de.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/de.js
new file mode 100644
index 0000000..d869a69
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/de.js
@@ -0,0 +1,6 @@
+
+tinyMCE.addToLang('break', {
+  title: 'Anrisstext trennen',
+  desc: 'Separiert den Anrisstext und Textkörper des Inhalts an dieser Stelle'
+});
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/en.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/en.js
new file mode 100644
index 0000000..6d75ef7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/en.js
@@ -0,0 +1,6 @@
+
+tinyMCE.addToLang('break', {
+  title: 'Insert teaser break',
+  desc: 'Separate teaser and body of this content'
+});
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/es.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/es.js
new file mode 100644
index 0000000..206023d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/plugins/break/langs/es.js
@@ -0,0 +1,6 @@
+
+tinyMCE.addToLang('break', {
+  title: 'Insertar marcador de documento recortado',
+  desc: 'Generar el punto de separación entre la versión recortada del documento y el resto del contenido'
+});
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg-dialog-page.tpl.php b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg-dialog-page.tpl.php
new file mode 100644
index 0000000..0811ae7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg-dialog-page.tpl.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * @file
+ * Theme template to display a single Wysiwyg (plugin) dialog page.
+ *
+ * Available variables:
+ *
+ * General utility variables:
+ * - $base_path: The base URL path of the Drupal installation. At the very
+ *   least, this will always default to /.
+ * - $css: An array of CSS files for the current page.
+ * - $directory: The directory the theme is located in, e.g. themes/garland or
+ *   themes/garland/minelli.
+ * - $logged_in: TRUE if the user is registered and signed in.
+ * - $is_admin: TRUE if the user has permission to access administration pages.
+ *
+ * Page metadata:
+ * - $language: (object) The language the site is being displayed in.
+ *   $language->language contains its textual representation.
+ *   $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
+ * - $head_title: A modified version of the page title, for use in the TITLE tag.
+ * - $head: Markup for the HEAD section (including meta tags, keyword tags, and
+ *   so on).
+ * - $styles: Style tags necessary to import all CSS files for the page.
+ * - $scripts: Script tags necessary to load the JavaScript files and settings
+ *   for the page.
+ *
+ * Site identity:
+ * - $site_name: The name of the site, empty when display has been disabled
+ *   in theme settings.
+ *
+ * Page content (in order of occurrance in the default page.tpl.php):
+ * - $breadcrumb: The breadcrumb trail for the current page.
+ * - $title: The page title, for use in the actual HTML content.
+ * - $help: Dynamic help text, mostly for admin pages.
+ * - $messages: HTML for status and error messages. Should be displayed prominently.
+ * - $tabs: Tabs linking to any sub-pages beneath the current page (e.g., the view
+ *   and edit tabs when displaying a node).
+ *
+ * - $content: The main content of the current Drupal page.
+ *
+ * Footer/closing data:
+ * - $footer : The footer region.
+ * - $closure: Final closing markup from any modules that have altered the page.
+ *   This variable should always be output last, after all other dynamic content.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_wysiwyg_dialog_page()
+ */
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
+
+<head>
+  <title><?php print $head_title; ?></title>
+  <?php print $head; ?>
+  <?php print $styles; ?>
+  <?php print $scripts; ?>
+  <script type="text/javascript"><?php /* Needed to avoid Flash of Unstyled Content in IE */ ?> </script>
+</head>
+<body>
+  <div id="page">
+    <div id="container" class="clear-block">
+      <div id="main" class="column">
+        <?php if (!empty($breadcrumb)): ?><div id="breadcrumb"><?php print $breadcrumb; ?></div><?php endif; ?>
+
+        <div id="content">
+          <?php if (!empty($title)): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
+          <?php if (!empty($tabs)): ?><div class="tabs"><?php print $tabs; ?></div><?php endif; ?>
+          <?php if (!empty($messages)): print $messages; endif; ?>
+          <?php if (!empty($help)): print $help; endif; ?>
+          <div id="content-content" class="clear-block">
+            <?php print $content; ?>
+          </div>
+        </div>
+
+      </div>
+    </div>
+  </div>
+<?php print $closure; ?>
+</body>
+</html>
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg-exportables-and-features-support-for-6.x-1060846-31.patch b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg-exportables-and-features-support-for-6.x-1060846-31.patch
new file mode 100644
index 0000000..a80b4e2
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg-exportables-and-features-support-for-6.x-1060846-31.patch
@@ -0,0 +1,406 @@
+From 26e8e5785649eb9b4ee120d4876ceeeee6e4679d Mon Sep 17 00:00:00 2001
+From: scottrigby <scott at basekamp.com>
+Date: Mon, 10 Oct 2011 18:39:39 -0400
+Subject: [PATCH] Issue #1060846: Exportables and Features support for 6.x
+
+---
+ wysiwyg.admin.inc |   68 ++++++++++++++++++++++++++--------
+ wysiwyg.install   |   76 +++++++++++++++++++++++++++++++++++++-
+ wysiwyg.module    |  107 ++++++++++++++++++++++++++++++++++++++++++++++++----
+ 3 files changed, 225 insertions(+), 26 deletions(-)
+
+diff --git a/wysiwyg.admin.inc b/wysiwyg.admin.inc
+index 8a75ed2..62a537d 100644
+--- a/wysiwyg.admin.inc
++++ b/wysiwyg.admin.inc
+@@ -331,8 +331,20 @@ function wysiwyg_profile_form_submit($form, &$form_state) {
+   // @see system_settings_form_submit()
+   unset($values['submit'], $values['form_id'], $values['op'], $values['form_token'], $values['form_build_id']);
+ 
++  // Determine if this is an update.
++  if (!db_result(db_query("SELECT 1 FROM {wysiwyg} WHERE format = %d", $format))) {
++    $update = array();
++  }
++  else {
++    $update = array('format');
++  }
++  $wysiwyg = new stdClass();
++  $wysiwyg->format = $format;
++  $wysiwyg->editor = $editor;
++  $wysiwyg->settings = $values;
++
+   // Insert new profile data.
+-  db_query("UPDATE {wysiwyg} SET settings = '%s' WHERE format = %d", serialize($values), $format);
++  drupal_write_record('wysiwyg', $wysiwyg, $update);
+ 
+   drupal_set_message(t('Wysiwyg profile for %format has been saved.', array('%format' => $input_format)));
+ 
+@@ -431,7 +443,8 @@ function wysiwyg_profile_overview() {
+   }
+ 
+   $formats = filter_formats();
+-  $profiles = wysiwyg_profile_load_all();
++  // Reset Wysiwyg cache
++  $profiles = wysiwyg_profile_load_all(TRUE);
+   $form['formats'] = array(
+     '#type' => 'item',
+     '#description' => t('To assign a different editor to a text format, click "delete" to remove the existing first.'),
+@@ -439,6 +452,7 @@ function wysiwyg_profile_overview() {
+   );
+ 
+   $enable_save = FALSE;
++  $in_code_only = FALSE;
+   foreach ($formats as $id => $format) {
+     $form['formats'][$id]['name'] = array(
+       '#value' => check_plain($format->name),
+@@ -446,9 +460,13 @@ function wysiwyg_profile_overview() {
+     // Only display editor selection for associated input formats to avoid
+     // confusion about disabled selection.
+     if (isset($profiles[$id]) && !empty($profiles[$id]->editor)) {
++      $in_code_only = !empty($profiles[$id]->in_code_only);
+       $form['formats'][$id]['editor'] = array(
+         '#value' => $options[$profiles[$id]->editor],
+       );
++      if ($in_code_only) {
++        $form['formats'][$id]['name']['#value'] .= ' <em>(' . t('From: !module module', array('!module' => $profiles[$id]->export_module)) . ')</em>';
++      }
+     }
+     else {
+       $form['formats'][$id]['editor'] = array(
+@@ -459,12 +477,17 @@ function wysiwyg_profile_overview() {
+       $enable_save = TRUE;
+     }
+     if (isset($profiles[$id]) && !empty($profiles[$id]->editor)) {
++      $edit = !empty($profiles[$id]->in_code_only)?t('Override'):t('Edit');
+       $form['formats'][$id]['edit'] = array(
+-        '#value' => l(t('Edit'), "admin/settings/wysiwyg/profile/$id/edit"),
+-      );
+-      $form['formats'][$id]['delete'] = array(
+-        '#value' => l(t('Delete'), "admin/settings/wysiwyg/profile/$id/delete"),
++        '#value' => l($edit, "admin/settings/wysiwyg/profile/$id/edit"),
+       );
++      // Only display delete/revert links for wysiwyg loaded from the database
++      if (!$in_code_only) {
++        $delete = (empty($profiles[$id]->type) || $profiles[$id]->type == t('Normal'))?t('Delete'):t('Revert');
++        $form['formats'][$id]['delete'] = array(
++          '#value' => l($delete, "admin/settings/wysiwyg/profile/$id/delete"),
++        );
++      }
+     }
+   }
+ 
+@@ -483,7 +506,7 @@ function theme_wysiwyg_profile_overview($form) {
+     return;
+   }
+   $output = '';
+-  $header = array(t('Input format'), t('Editor'), array('data' => t('Operations'), 'colspan' => 2));
++  $header = array(t('Input format'), t('Editor'), array('data' => t('Operations'), 'colspan' => 3));
+   $rows = array();
+   foreach (element_children($form['formats']) as $item) {
+     $format = &$form['formats'][$item];
+@@ -491,6 +514,7 @@ function theme_wysiwyg_profile_overview($form) {
+       drupal_render($format['name']),
+       drupal_render($format['editor']),
+       isset($format['edit']) ? drupal_render($format['edit']) : '',
++      isset($format['export']) ? drupal_render($format['export']) : '',
+       isset($format['delete']) ? drupal_render($format['delete']) : '',
+     );
+   }
+@@ -518,6 +542,18 @@ function wysiwyg_profile_delete_confirm(&$form_state, $profile) {
+   $formats = filter_formats();
+   $format = $formats[$profile->format];
+   $form['format'] = array('#type' => 'value', '#value' => $format);
++  if (isset($profile->type) && $profile->type == t('Overridden')) {
++    $form['revert'] = array(
++      '#type' => 'value',
++      '#value' => TRUE,
++    );
++    return confirm_form(
++      $form,
++      t('Are you sure you want to revert the profile settings for %name?', array('%name' => $format->name)),
++      'admin/settings/wysiwyg',
++      t('This action cannot be undone.'), t('Revert'), t('Cancel')
++    );
++  }
+   return confirm_form(
+     $form,
+     t('Are you sure you want to remove the profile for %name?', array('%name' => $format->name)),
+@@ -533,15 +569,15 @@ function wysiwyg_profile_delete_confirm(&$form_state, $profile) {
+  */
+ function wysiwyg_profile_delete_confirm_submit($form, &$form_state) {
+   $format = $form_state['values']['format'];
+-  wysiwyg_profile_delete($format->format);
+-  drupal_set_message(t('Wysiwyg profile for %name has been deleted.', array('%name' => $format->name)));
++  $wysiwyg = new stdClass();
++  $wysiwyg->format = $format->format;
++  wysiwyg_profile_delete($wysiwyg);
++  if (!empty($form_state['values']['revert'])) {
++    drupal_set_message(t('Wysiwyg profile settings for %name has been reverted.', array('%name' => $format->name)));
++  }
++  else {
++    drupal_set_message(t('Wysiwyg profile for %name has been deleted.', array('%name' => $format->name)));
++  }
+   $form_state['redirect'] = 'admin/settings/wysiwyg';
+ }
+ 
+-/**
+- * Remove a profile from the database.
+- */
+-function wysiwyg_profile_delete($format) {
+-  db_query("DELETE FROM {wysiwyg} WHERE format = %d", $format);
+-}
+-
+diff --git a/wysiwyg.install b/wysiwyg.install
+index 5faf0ec..7d69e77 100644
+--- a/wysiwyg.install
++++ b/wysiwyg.install
+@@ -5,7 +5,32 @@
+  */
+ function wysiwyg_schema() {
+   $schema['wysiwyg'] = array(
+-    'description' => 'Stores Wysiwyg profiles.',
++    'description' => t('Stores Wysiwyg profiles.'),
++    'join' => array(
++      'exportables' => array(
++        'table' => 'exportables',
++        'left_key' => 'format',
++        'right_key' => 'id',
++        'extra' => "AND t__1.type = 'input_formats' AND t__0.editor != ''",
++        'load' => array(
++          'machine',
++        ),
++      ),
++    ),
++    'export' =>  array(
++      'key' => 'machine',
++      'key in table' => 'exportables',
++      'identifier' => 'wysiwyg',
++      'export module' => 'wysiwyg',
++      'api' => array(
++        'owner' => 'wysiwyg',
++        'api' => 'wysiwyg',
++        'minimum_version' => 2,
++        'current_version' => 2,
++      ),
++	  'list callback' => 'wysiwyg_profile_list',
++      'delete callback' => 'wysiwyg_profile_delete',
++    ),
+     'fields' => array(
+       'format' => array(
+         'description' => 'The {filter_formats}.format of the text format.',
+@@ -13,6 +38,7 @@ function wysiwyg_schema() {
+         // Primary keys are implicitly not null.
+         'not null' => TRUE,
+         'default' => 0,
++        'no export' => TRUE,
+       ),
+       'editor' => array(
+         'description' => 'Internal name of the editor attached to the text format.',
+@@ -25,6 +51,7 @@ function wysiwyg_schema() {
+         'description' => 'Configuration settings for the editor.',
+         'type' => 'text',
+         'size' => 'normal',
++        'serialize' => TRUE,
+       ),
+     ),
+     'primary key' => array('format'),
+@@ -285,3 +312,50 @@ function wysiwyg_update_6201() {
+   }
+   return $ret;
+ }
++
++/**
++ * Implementation of hook_requirements().
++ *
++ * Display information about getting features support working.
++ */
++function wysiwyg_requirements($phase) {
++  $requirements = array();
++  // Ensure translations don't break at install time
++  $t = get_t();
++
++  if ($phase == 'runtime') {
++    $ctools = $exportables = FALSE;
++    if (module_exists('ctools')) {
++      $ctools = ctools_api_version('1.7');
++    }
++    if (module_exists('exportables')) {
++      $exportables = exportables_api_version('2.0');
++    }
++    if (!$ctools || !$exportables) {
++      $value = $t('Not enabled');
++      $description = t('Wysiwyg is unabled to provide or load wysiwyg profiles in code because you need !ctools (6.x-1.7 or greather) and !exportables (6.x-2.x or greather).',
++        array(
++          '!ctools' => l('CTools', 'http://drupal.org/project/ctools'),
++          '!exportables' => l('Exportables', 'http://drupal.org/project/exportables'),
++        )
++      );
++      $severity = REQUIREMENT_INFO;
++    }
++    else {
++      $value = $t('Wysiwyg can provide exportables objects using !features and load profiles from code.',
++        array(
++          '!features' => l('Features', 'http://drupal.org/project/features'),
++        )
++      );
++      $severity = REQUIREMENT_OK;
++    }
++    $requirements['wysiwyg_features'] = array(
++      'title' => $t('Wysiwyg from code'),
++      'value' => $value,
++      'severity' => $severity,
++      'description' => $description,
++    );
++  }
++
++  return $requirements;
++}
+diff --git a/wysiwyg.module b/wysiwyg.module
+index 1e3f951..8e0d5bd 100644
+--- a/wysiwyg.module
++++ b/wysiwyg.module
+@@ -86,6 +86,13 @@ function wysiwyg_help($path, $arg) {
+ }
+ 
+ /**
++ * Clear wysiwyg cache on admin/build/modules form.
++ */
++function wysiwyg_form_system_modules_alter(&$form, $form_state) {
++  wysiwyg_profile_load_all(TRUE);
++}
++
++/**
+  * Implementation of hook_form_alter().
+  *
+  * Before Drupal 7, there is no way to easily identify form fields that are
+@@ -604,11 +611,7 @@ function wysiwyg_profile_load($format) {
+   static $profiles;
+ 
+   if (!isset($profiles) || !array_key_exists($format, $profiles)) {
+-    $result = db_query('SELECT format, editor, settings FROM {wysiwyg} WHERE format = %d', $format);
+-    while ($profile = db_fetch_object($result)) {
+-      $profile->settings = unserialize($profile->settings);
+-      $profiles[$profile->format] = $profile;
+-    }
++    $profiles = wysiwyg_profile_load_all();
+   }
+ 
+   return (isset($profiles[$format]) ? $profiles[$format] : FALSE);
+@@ -617,20 +620,70 @@ function wysiwyg_profile_load($format) {
+ /**
+  * Load all profiles.
+  */
+-function wysiwyg_profile_load_all() {
++function wysiwyg_profile_load_all($reset = FALSE) {
+   static $profiles;
+ 
+-  if (!isset($profiles)) {
++  if ($reset || !isset($profiles)) {
+     $profiles = array();
++    if (!$reset && ($cache = cache_get('wysiwyg:profiles', 'cache')) && is_array($cache->data)) {
++      $profiles = $cache->data;
++      return $profiles;
++    }
++    // If Exportables and CTools are installed, use their API to load both
++    // wysiwyg profiles from code and from the database
++    if (module_exists('ctools') && module_exists('exportables')) {
++      if (exportables_api_version('2.0') && ctools_api_version('1.7')) {
++        $input_formats = exportables_load_all('input_formats');
++        ctools_include('export');
++        $ctools_profiles = ctools_export_load_object('wysiwyg');
++        // Wysiwyg module still use numeric ids as keys
++        foreach ($ctools_profiles as $machine_name => $profile) {
++          $profile->format = $input_formats[$machine_name];
++          $profiles[$profile->format] = $profile;
++        }
++      }
++    }
++
++    // DB profiles will always override Features profiles from flat files.
+     $result = db_query('SELECT format, editor, settings FROM {wysiwyg}');
+     while ($profile = db_fetch_object($result)) {
+-      $profile->settings = unserialize($profile->settings);
+-      $profiles[$profile->format] = $profile;
++      if (!isset($profiles[$profile->format])) {
++        $profile->settings = unserialize($profile->settings);
++        $profiles[$profile->format] = $profile;
++      }
+     }
++
++    drupal_alter('wysiwyg_load_profiles', $profiles);
++    cache_set('wysiwyg:profiles', $profiles);
+   }
+ 
+   return $profiles;
+ }
++ /**
++ * Wysiwyg profiles list callback.
++ */
++function wysiwyg_profile_list() {
++  $profiles = wysiwyg_profile_load_all(TRUE);
++  $filter_formats = filter_formats();
++  $list = array();
++  foreach ($profiles as $profile) {
++    $list[$profile->machine] = t('@format (@editor)', array('@editor' => $profile->editor, '@format' => $filter_formats[$profile->format]->name));
++  }
++  return $list;
++}
++
++/**
++ * Remove a profile from the database.
++ */
++function wysiwyg_profile_delete($wysiwyg) {
++  if (!isset($wysiwyg->format)) {
++    $input_formats = exportables_load_all('input_formats');
++    $wysiwyg->format = $input_formats[$wysiwyg->machine];
++  }
++  db_query("DELETE FROM {wysiwyg} WHERE format = %d", $wysiwyg->format);
++}
++
++
+ 
+ /**
+  * Implementation of hook_user().
+@@ -1014,3 +1067,39 @@ function _wysiwyg_process_include($module, $identifier, $path, $hook) {
+  * @} End of "defgroup wysiwyg_api".
+  */
+ 
++/**
++ * @defgroup features_integration Features Integration
++ * @{
++ */
++
++/**
++ * Implementation of hook_features_api().
++ *
++ * Provide features integration only when ctools and exportables are
++ * installed.
++ */
++function wysiwyg_features_api() {
++  $return = array();
++  if (module_exists('exportables') && module_exists('ctools')) {
++    module_load_include('inc', 'features', 'includes/features.ctools');
++    $return = ctools_component_features_api('wysiwyg');
++  }
++  return $return;
++}
++
++/**
++ * Implementation of hook_features_export().
++ *
++ * Includes exportables as a dependency.
++ */
++function wysiwyg_features_export($data, &$export, $module_name = '') {
++
++  $return = ctools_component_features_export('wysiwyg', $data, $export, $module_name);
++  $export['dependencies']['exportables'] = 'exportables';
++
++  return $return;
++}
++
++/**
++ * @} End of "defgroup features_integration".
++ */
+-- 
+1.7.6.1
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.admin.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.admin.inc
new file mode 100644
index 0000000..2ca414a
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.admin.inc
@@ -0,0 +1,583 @@
+<?php
+
+/**
+ * @file
+ * Integrate Wysiwyg editors into Drupal.
+ */
+
+/**
+ * Form builder for Wysiwyg profile form.
+ */
+function wysiwyg_profile_form($form_state, $profile) {
+  // Merge in defaults.
+  $profile = (array) $profile;
+  $profile += array(
+    'format' => 0,
+    'editor' => '',
+  );
+  if (empty($profile['settings'])) {
+    $profile['settings'] = array();
+  }
+  $profile['settings'] += array(
+    'default' => TRUE,
+    'user_choose' => FALSE,
+    'show_toggle' => TRUE,
+    'theme' => 'advanced',
+    'language' => 'en',
+    'access' => 1,
+    'access_pages' => "node/*\nuser/*\ncomment/*",
+    'buttons' => array(),
+    'toolbar_loc' => 'top',
+    'toolbar_align' => 'left',
+    'path_loc' => 'bottom',
+    'resizing' => TRUE,
+    // Also available, but buggy in TinyMCE 2.x: blockquote,code,dt,dd,samp.
+    'block_formats' => 'p,address,pre,h2,h3,h4,h5,h6,div',
+    'verify_html' => TRUE,
+    'preformatted' => FALSE,
+    'convert_fonts_to_spans' => TRUE,
+    'remove_linebreaks' => TRUE,
+    'apply_source_formatting' => FALSE,
+    'paste_auto_cleanup_on_paste' => FALSE,
+    'css_setting' => 'theme',
+    'css_path' => NULL,
+    'css_classes' => NULL,
+  );
+  $profile = (object) $profile;
+
+  $formats = filter_formats();
+  $editor = wysiwyg_get_editor($profile->editor);
+  drupal_set_title(t('%editor profile for %format', array('%editor' => $editor['title'], '%format' => $formats[$profile->format]->name)));
+
+  $form['format'] = array('#type' => 'value', '#value' => $profile->format);
+  $form['input_format'] = array('#type' => 'value', '#value' => $formats[$profile->format]->name);
+  $form['editor'] = array('#type' => 'value', '#value' => $profile->editor);
+
+  $form['basic'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Basic setup'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['basic']['default'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enabled by default'),
+    '#default_value' => $profile->settings['default'],
+    '#return_value' => 1,
+    '#description' => t('The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled.'),
+  );
+
+  $form['basic']['user_choose'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Allow users to choose default'),
+    '#default_value' => $profile->settings['user_choose'],
+    '#return_value' => 1,
+    '#description' => t('If allowed, users will be able to choose their own editor default state in their user account settings.'),
+  );
+
+  $form['basic']['show_toggle'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show <em>enable/disable rich text</em> toggle link'),
+    '#default_value' => $profile->settings['show_toggle'],
+    '#return_value' => 1,
+    '#description' => t('Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above).'),
+  );
+
+  $form['basic']['theme'] = array(
+    '#type' => 'hidden',
+    '#value' => $profile->settings['theme'],
+  );
+
+  $form['basic']['language'] = array(
+    '#type' => 'select',
+    '#title' => t('Interface language'),
+    '#default_value' => $profile->settings['language'],
+  );
+  // @see _locale_prepare_predefined_list()
+  require_once './includes/locale.inc';
+  $predefined = _locale_get_predefined_list();
+  foreach ($predefined as $key => $value) {
+    // Include native name in output, if possible
+    if (count($value) > 1) {
+      $tname = t($value[0]);
+      $predefined[$key] = ($tname == $value[1]) ? $tname : "$tname ($value[1])";
+    }
+    else {
+      $predefined[$key] = t($value[0]);
+    }
+  }
+  asort($predefined);
+  $form['basic']['language']['#options'] = $predefined;
+
+  $form['buttons'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Buttons and plugins'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#tree' => TRUE,
+    '#theme' => 'wysiwyg_admin_button_table',
+  );
+
+  $plugins = wysiwyg_get_plugins($profile->editor);
+  // Generate the button list.
+  foreach ($plugins as $name => $meta) {
+    if (isset($meta['buttons']) && is_array($meta['buttons'])) {
+      foreach ($meta['buttons'] as $button => $title) {
+        $icon = '';
+        if (!empty($meta['path'])) {
+          // @todo Button icon locations are different in editors, editor versions,
+          //   and contrib/custom plugins (like Image Assist, f.e.).
+          $img_src = $meta['path'] . "/images/$name.gif";
+          // Handle plugins that have more than one button.
+          if (!file_exists($img_src)) {
+            $img_src = $meta['path'] . "/images/$button.gif";
+          }
+          $icon = file_exists($img_src) ? '<img src="' . base_path() . $img_src . '" title="' . $button . '" style="border: 1px solid grey; vertical-align: middle;" />' : '';
+        }
+        $title = (isset($meta['url']) ? l($title, $meta['url'], array('target' => '_blank')) : $title);
+        $title = (!empty($icon) ? $icon . ' ' . $title : $title);
+        $form['buttons'][$name][$button] = array(
+          '#type' => 'checkbox',
+          '#title' => $title,
+          '#default_value' => !empty($profile->settings['buttons'][$name][$button]) ? $profile->settings['buttons'][$name][$button] : FALSE,
+        );
+      }
+    }
+    else if (isset($meta['extensions']) && is_array($meta['extensions'])) {
+      foreach ($meta['extensions'] as $extension => $title) {
+        $form['buttons'][$name][$extension] = array(
+          '#type' => 'checkbox',
+          '#title' => isset($meta['url']) ? l($title, $meta['url'], array('target' => '_blank')) : $title,
+          '#default_value' => !empty($profile->settings['buttons'][$name][$extension]) ? $profile->settings['buttons'][$name][$extension] : FALSE,
+        );
+      }
+    }
+  }
+
+  $form['appearance'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Editor appearance'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['appearance']['toolbar_loc'] = array(
+    '#type' => 'select',
+    '#title' => t('Toolbar location'),
+    '#default_value' => $profile->settings['toolbar_loc'],
+    '#options' => array('bottom' => t('Bottom'), 'top' => t('Top')),
+    '#description' => t('This option controls whether the editor toolbar is displayed above or below the editing area.'),
+  );
+
+  $form['appearance']['toolbar_align'] = array(
+    '#type' => 'select',
+    '#title' => t('Button alignment'),
+    '#default_value' => $profile->settings['toolbar_align'],
+    '#options' => array('center' => t('Center'), 'left' => t('Left'), 'right' => t('Right')),
+    '#description' => t('This option controls the alignment of icons in the editor toolbar.'),
+  );
+
+  $form['appearance']['path_loc'] = array(
+    '#type' => 'select',
+    '#title' => t('Path location'),
+    '#default_value' => $profile->settings['path_loc'],
+    '#options' => array('none' => t('Hide'), 'top' => t('Top'), 'bottom' => t('Bottom')),
+    '#description' => t('Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>).'),
+  );
+
+  $form['appearance']['resizing'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable resizing button'),
+    '#default_value' => $profile->settings['resizing'],
+    '#return_value' => 1,
+    '#description' => t('This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to "Top" or "Bottom" in order to display the resize icon.'),
+  );
+
+  $form['output'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Cleanup and output'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['output']['verify_html'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Verify HTML'),
+    '#default_value' => $profile->settings['verify_html'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, potentially malicious code like <code><HEAD></code> tags will be removed from HTML contents.'),
+  );
+
+  $form['output']['preformatted'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Preformatted'),
+    '#default_value' => $profile->settings['preformatted'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does.'),
+  );
+
+  $form['output']['convert_fonts_to_spans'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Convert <font> tags to styles'),
+    '#default_value' => $profile->settings['convert_fonts_to_spans'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles.'),
+  );
+
+  $form['output']['remove_linebreaks'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Remove linebreaks'),
+    '#default_value' => $profile->settings['remove_linebreaks'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters.'),
+  );
+
+  $form['output']['apply_source_formatting'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Apply source formatting'),
+    '#default_value' => $profile->settings['apply_source_formatting'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters.'),
+  );
+
+  $form['output']['paste_auto_cleanup_on_paste'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Force cleanup on standard paste'),
+    '#default_value' => $profile->settings['paste_auto_cleanup_on_paste'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the "paste from word" plugin function.'),
+  );
+
+  $form['css'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('CSS'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['css']['block_formats'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Block formats'),
+    '#default_value' => $profile->settings['block_formats'],
+    '#size' => 40,
+    '#maxlength' => 250,
+    '#description' => t('Comma separated list of HTML block formats. Possible values: <code>@format-list</code>.', array('@format-list' => 'p,h1,h2,h3,h4,h5,h6,div,blockquote,address,pre,code,dt,dd')),
+  );
+
+  $form['css']['css_setting'] = array(
+    '#type' => 'select',
+    '#title' => t('Editor CSS'),
+    '#default_value' => $profile->settings['css_setting'],
+    '#options' => array('theme' => t('Use theme CSS'), 'self' => t('Define CSS'), 'none' => t('Editor default CSS')),
+    '#description' => t('Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor.'),
+  );
+
+  $form['css']['css_path'] = array(
+    '#type' => 'textfield',
+    '#title' => t('CSS path'),
+    '#default_value' => $profile->settings['css_path'],
+    '#size' => 40,
+    '#maxlength' => 255,
+    '#description' => t('If "Define CSS" was selected above, enter path to a CSS file or a list of CSS files separated by a comma.') . '<br />' . t('Available tokens: <code>%b</code> (base path, eg: <code>/</code>), <code>%t</code> (path to theme, eg: <code>themes/garland</code>)') . '<br />' . t('Example:') . ' css/editor.css,/themes/garland/style.css,%b%t/style.css,http://example.com/external.css',
+  );
+
+  $form['css']['css_classes'] = array(
+    '#type' => 'textarea',
+    '#title' => t('CSS classes'),
+    '#default_value' => $profile->settings['css_classes'],
+    '#description' => t('Optionally define CSS classes for the "Font style" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s).', array('!format' => '<code>[title]=[class]</code>', '!example' => 'My heading=header1')),
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+    '#weight' => 100,
+  );
+  $form['cancel'] = array(
+    '#value' => l(t('Cancel'), 'admin/settings/wysiwyg'),
+    '#weight' => 110,
+  );
+
+  return $form;
+}
+
+/**
+ * Submit callback for Wysiwyg profile form.
+ *
+ * @see wysiwyg_profile_form()
+ */
+function wysiwyg_profile_form_submit($form, &$form_state) {
+  $values = $form_state['values'];
+  if (isset($values['buttons'])) {
+    // Store only enabled buttons for each plugin.
+    foreach ($values['buttons'] as $plugin => $buttons) {
+      $values['buttons'][$plugin] = array_filter($values['buttons'][$plugin]);
+    }
+    // Store only enabled plugins.
+    $values['buttons'] = array_filter($values['buttons']);
+  }
+  // Remove any white-space from 'block_formats' setting, since editor
+  // implementations rely on a comma-separated list to explode().
+  $values['block_formats'] = preg_replace('@\s+@', '', $values['block_formats']);
+
+  // Remove input format name.
+  $format = $values['format'];
+  $input_format = $values['input_format'];
+  $editor = $values['editor'];
+  unset($values['format'], $values['input_format'], $values['editor']);
+
+  // Remove FAPI values.
+  // @see system_settings_form_submit()
+  unset($values['submit'], $values['form_id'], $values['op'], $values['form_token'], $values['form_build_id']);
+
+  // Determine if this is an update.
+  if (!db_result(db_query("SELECT 1 FROM {wysiwyg} WHERE format = %d", $format))) {
+    $update = array();
+  }
+  else {
+    $update = array('format');
+  }
+  $wysiwyg = new stdClass();
+  $wysiwyg->format = $format;
+  $wysiwyg->editor = $editor;
+  $wysiwyg->settings = $values;
+
+  // Insert new profile data.
+  drupal_write_record('wysiwyg', $wysiwyg, $update);
+
+  drupal_set_message(t('Wysiwyg profile for %format has been saved.', array('%format' => $input_format)));
+
+  $form_state['redirect'] = 'admin/settings/wysiwyg';
+}
+
+/**
+ * Layout for the buttons in the Wysiwyg Editor profile form.
+ */
+function theme_wysiwyg_admin_button_table($form) {
+  $buttons = array();
+
+  // Flatten forms array.
+  foreach (element_children($form) as $name) {
+    foreach (element_children($form[$name]) as $button) {
+      $buttons[] = drupal_render($form[$name][$button]);
+    }
+  }
+
+  // Split checkboxes into rows with 3 columns.
+  $total = count($buttons);
+  $rows = array();
+  for ($i = 0; $i < $total; $i++) {
+    $row = array();
+    $row[] = array('data' => $buttons[$i]);
+    if (isset($buttons[++$i])) {
+      $row[] = array('data' => $buttons[$i]);
+    }
+    if (isset($buttons[++$i])) {
+      $row[] = array('data' => $buttons[$i]);
+    }
+    $rows[] = $row;
+  }
+
+  $output = theme('table', array(), $rows, array('width' => '100%'));
+
+  return $output;
+}
+
+/**
+ * Display overview of setup Wysiwyg Editor profiles; menu callback.
+ */
+function wysiwyg_profile_overview() {
+  include_once './includes/install.inc';
+
+  // Check which wysiwyg editors are installed.
+  $editors = wysiwyg_get_all_editors();
+  $count = count($editors);
+  $status = array();
+  $options = array('' => t('No editor'));
+
+  foreach ($editors as $name => $editor) {
+    $status[$name] = array(
+      'severity' => (isset($editor['error']) ? REQUIREMENT_ERROR : ($editor['installed'] ? REQUIREMENT_OK : REQUIREMENT_INFO)),
+      'title' => t('<a href="!vendor-url">@editor</a> (<a href="!download-url">Download</a>)', array('!vendor-url' => $editor['vendor url'], '@editor' => $editor['title'], '!download-url' => $editor['download url'])),
+      'value' => (isset($editor['installed version']) ? $editor['installed version'] : t('Not installed.')),
+      'description' => (isset($editor['error']) ? $editor['error'] : ''),
+    );
+    if ($editor['installed']) {
+      $options[$name] = $editor['title'] . (isset($editor['installed version']) ? ' ' . $editor['installed version'] : '');
+    }
+    else {
+      // Build on-site installation instructions.
+      // @todo Setup $library in wysiwyg_load_editor() already.
+      $library = (isset($editor['library']) ? $editor['library'] : key($editor['libraries']));
+      $targs = array(
+        '@editor-path' => $editor['editor path'],
+        '@library-filepath' => $editor['library path'] . '/' . (isset($editor['libraries'][$library]['files'][0]) ? $editor['libraries'][$library]['files'][0] : key($editor['libraries'][$library]['files'])),
+      );
+      $instructions = '<p>' . t('Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>', $targs) . '</p>';
+      $instructions .= '<p>' . t('So the actual library can be found at:<br /><code>@library-filepath</code>', $targs) . '</p>';
+
+      $status[$name]['description'] .= $instructions;
+      $count--;
+    }
+    // In case there is an error, always show installation instructions.
+    if (isset($editor['error'])) {
+      $show_instructions = TRUE;
+    }
+  }
+  if (!$count) {
+    $show_instructions = TRUE;
+  }
+  $form['status'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Installation instructions'),
+    '#collapsible' => TRUE,
+    '#collapsed' => !isset($show_instructions),
+    '#description' => (!$count ? t('There are no editor libraries installed currently. The following list contains a list of currently supported editors:') : ''),
+    '#weight' => 10,
+  );
+  $form['status']['report'] = array('#value' => theme('status_report', $status));
+
+  if (!$count) {
+    return $form;
+  }
+
+  $formats = filter_formats();
+  // Reset Wysiwyg cache
+  $profiles = wysiwyg_profile_load_all(TRUE);
+  $form['formats'] = array(
+    '#type' => 'item',
+    '#description' => t('To assign a different editor to a text format, click "delete" to remove the existing first.'),
+    '#tree' => TRUE,
+  );
+
+  $enable_save = FALSE;
+  $in_code_only = FALSE;
+  foreach ($formats as $id => $format) {
+    $form['formats'][$id]['name'] = array(
+      '#value' => check_plain($format->name),
+    );
+    // Only display editor selection for associated input formats to avoid
+    // confusion about disabled selection.
+    if (isset($profiles[$id]) && !empty($profiles[$id]->editor)) {
+      $in_code_only = !empty($profiles[$id]->in_code_only);
+      $form['formats'][$id]['editor'] = array(
+        '#value' => $options[$profiles[$id]->editor],
+      );
+      if ($in_code_only) {
+        $form['formats'][$id]['name']['#value'] .= ' <em>(' . t('From: !module module', array('!module' => $profiles[$id]->export_module)) . ')</em>';
+      }
+    }
+    else {
+      $form['formats'][$id]['editor'] = array(
+        '#type' => 'select',
+        '#default_value' => '',
+        '#options' => $options,
+      );
+      $enable_save = TRUE;
+    }
+    if (isset($profiles[$id]) && !empty($profiles[$id]->editor)) {
+      $edit = !empty($profiles[$id]->in_code_only)?t('Override'):t('Edit');
+      $form['formats'][$id]['edit'] = array(
+        '#value' => l($edit, "admin/settings/wysiwyg/profile/$id/edit"),
+      );
+      // Only display delete/revert links for wysiwyg loaded from the database
+      if (!$in_code_only) {
+        $delete = (empty($profiles[$id]->type) || $profiles[$id]->type == t('Normal'))?t('Delete'):t('Revert');
+        $form['formats'][$id]['delete'] = array(
+          '#value' => l($delete, "admin/settings/wysiwyg/profile/$id/delete"),
+        );
+      }
+    }
+  }
+
+  // Submitting the form when no editors can be selected causes errors.
+  if ($enable_save) {
+    $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  }
+  return $form;
+}
+
+/**
+ * Return HTML for the Wysiwyg profile overview form.
+ */
+function theme_wysiwyg_profile_overview($form) {
+  if (!isset($form['formats'])) {
+    return;
+  }
+  $output = '';
+  $header = array(t('Input format'), t('Editor'), array('data' => t('Operations'), 'colspan' => 3));
+  $rows = array();
+  foreach (element_children($form['formats']) as $item) {
+    $format = &$form['formats'][$item];
+    $rows[] = array(
+      drupal_render($format['name']),
+      drupal_render($format['editor']),
+      isset($format['edit']) ? drupal_render($format['edit']) : '',
+      isset($format['export']) ? drupal_render($format['export']) : '',
+      isset($format['delete']) ? drupal_render($format['delete']) : '',
+    );
+  }
+  $form['formats']['table']['#value'] = theme('table', $header, $rows);
+  $output .= drupal_render($form);
+  return $output;
+}
+
+/**
+ * Submit callback for Wysiwyg profile overview form.
+ */
+function wysiwyg_profile_overview_submit($form, &$form_state) {
+  foreach ($form_state['values']['formats'] as $format => $values) {
+    db_query("UPDATE {wysiwyg} SET editor = '%s' WHERE format = %d", $values['editor'], $format);
+    if (!db_affected_rows()) {
+      db_query("INSERT INTO {wysiwyg} (format, editor) VALUES (%d, '%s')", $format, $values['editor']);
+    }
+  }
+}
+
+/**
+ * Delete editor profile confirmation form.
+ */
+function wysiwyg_profile_delete_confirm(&$form_state, $profile) {
+  $formats = filter_formats();
+  $format = $formats[$profile->format];
+  $form['format'] = array('#type' => 'value', '#value' => $format);
+  if (isset($profile->type) && $profile->type == t('Overridden')) {
+    $form['revert'] = array(
+      '#type' => 'value',
+      '#value' => TRUE,
+    );
+    return confirm_form(
+      $form,
+      t('Are you sure you want to revert the profile settings for %name?', array('%name' => $format->name)),
+      'admin/settings/wysiwyg',
+      t('This action cannot be undone.'), t('Revert'), t('Cancel')
+    );
+  }
+  return confirm_form(
+    $form,
+    t('Are you sure you want to remove the profile for %name?', array('%name' => $format->name)),
+    'admin/settings/wysiwyg',
+    t('This action cannot be undone.'), t('Remove'), t('Cancel')
+  );
+}
+
+/**
+ * Submit callback for Wysiwyg profile delete form.
+ *
+ * @see wysiwyg_profile_delete_confirm()
+ */
+function wysiwyg_profile_delete_confirm_submit($form, &$form_state) {
+  $format = $form_state['values']['format'];
+  $wysiwyg = new stdClass();
+  $wysiwyg->format = $format->format;
+  wysiwyg_profile_delete($wysiwyg);
+  if (!empty($form_state['values']['revert'])) {
+    drupal_set_message(t('Wysiwyg profile settings for %name has been reverted.', array('%name' => $format->name)));
+  }
+  else {
+    drupal_set_message(t('Wysiwyg profile for %name has been deleted.', array('%name' => $format->name)));
+  }
+  $form_state['redirect'] = 'admin/settings/wysiwyg';
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.api.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.api.js
new file mode 100644
index 0000000..0318b0b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.api.js
@@ -0,0 +1,97 @@
+
+/**
+ * Wysiwyg plugin button implementation for Awesome plugin.
+ */
+Drupal.wysiwyg.plugins.awesome = {
+  /**
+   * Return whether the passed node belongs to this plugin.
+   *
+   * @param node
+   *   The currently focused DOM element in the editor content.
+   */
+  isNode: function(node) {
+    return ($(node).is('img.mymodule-awesome'));
+  },
+
+  /**
+   * Execute the button.
+   *
+   * @param data
+   *   An object containing data about the current selection:
+   *   - format: 'html' when the passed data is HTML content, 'text' when the
+   *     passed data is plain-text content.
+   *   - node: When 'format' is 'html', the focused DOM element in the editor.
+   *   - content: The textual representation of the focused/selected editor
+   *     content.
+   * @param settings
+   *   The plugin settings, as provided in the plugin's PHP include file.
+   * @param instanceId
+   *   The ID of the current editor instance.
+   */
+  invoke: function(data, settings, instanceId) {
+    // Generate HTML markup.
+    if (data.format == 'html') {
+      // Prevent duplicating a teaser break.
+      if ($(data.node).is('img.mymodule-awesome')) {
+        return;
+      }
+      var content = this._getPlaceholder(settings);
+    }
+    // Generate plain text.
+    else {
+      var content = '<!--break-->';
+    }
+    // Insert new content into the editor.
+    if (typeof content != 'undefined') {
+      Drupal.wysiwyg.instances[instanceId].insert(content);
+    }
+  },
+
+  /**
+   * Prepare all plain-text contents of this plugin with HTML representations.
+   *
+   * Optional; only required for "inline macro tag-processing" plugins.
+   *
+   * @param content
+   *   The plain-text contents of a textarea.
+   * @param settings
+   *   The plugin settings, as provided in the plugin's PHP include file.
+   * @param instanceId
+   *   The ID of the current editor instance.
+   */
+  attach: function(content, settings, instanceId) {
+    content = content.replace(/<!--break-->/g, this._getPlaceholder(settings));
+    return content;
+  },
+
+  /**
+   * Process all HTML placeholders of this plugin with plain-text contents.
+   *
+   * Optional; only required for "inline macro tag-processing" plugins.
+   *
+   * @param content
+   *   The HTML content string of the editor.
+   * @param settings
+   *   The plugin settings, as provided in the plugin's PHP include file.
+   * @param instanceId
+   *   The ID of the current editor instance.
+   */
+  detach: function(content, settings, instanceId) {
+    var $content = $('<div>' + content + '</div>');
+    $.each($('img.mymodule-awesome', $content), function (i, elem) {
+      //...
+    });
+    return $content.html();
+  },
+
+  /**
+   * Helper function to return a HTML placeholder.
+   *
+   * The 'drupal-content' CSS class is required for HTML elements in the editor
+   * content that shall not trigger any editor's native buttons (such as the
+   * image button for this example placeholder markup).
+   */
+  _getPlaceholder: function (settings) {
+    return '<img src="' + settings.path + '/images/spacer.gif" alt="<--break->" title="<--break-->" class="wysiwyg-break drupal-content" />';
+  }
+};
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.api.php b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.api.php
new file mode 100644
index 0000000..03716db
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.api.php
@@ -0,0 +1,206 @@
+<?php
+
+/**
+ * @file
+ * Wysiwyg API documentation.
+ *
+ * To implement a "Drupal plugin" button, you need to write a Wysiwyg plugin:
+ * - Implement hook_wysiwyg_include_directory() to register the directory
+ *   containing plugin definitions.
+ * - In each plugin definition file, implement hook_INCLUDE_plugin().
+ * - For each plugin button, implement a JavaScript integration and an icon for
+ *   the button.
+ *
+ * @todo Icon: Recommended size and type of image.
+ *
+ * For example implementations you may want to look at
+ * - Image Assist (img_assist)
+ * - Teaser break plugin (plugins/break; part of WYSIWYG)
+ * - IMCE (imce_wysiwyg)
+ */
+
+/**
+ * Return an array of native editor plugins.
+ *
+ * Only to be used for native (internal) editor plugins.
+ *
+ * @see hook_wysiwyg_include_directory()
+ *
+ * @param $editor
+ *   The internal name of the currently processed editor.
+ * @param $version
+ *   The version of the currently processed editor.
+ *
+ * @return
+ *   An associative array having internal plugin names as keys and an array of
+ *   plugin meta-information as values.
+ */
+function hook_wysiwyg_plugin($editor, $version) {
+  switch ($editor) {
+    case 'tinymce':
+      if ($version > 3) {
+        return array(
+          'myplugin' => array(
+            // A URL to the plugin's homepage.
+            'url' => 'http://drupal.org/project/img_assist',
+            // The full path to the native editor plugin, no trailing slash.
+            // Ignored when 'internal' is set to TRUE below.
+            'path' => drupal_get_path('module', 'img_assist') . '/drupalimage',
+            // The name of the plugin's main JavaScript file.
+            // Ignored when 'internal' is set to TRUE below.
+            // Default value depends on which editor the plugin is for.
+            'filename' => 'editor_plugin.js',
+            // A list of buttons provided by this native plugin. The key has to
+            // match the corresponding JavaScript implementation. The value is
+            // is displayed on the editor configuration form only.
+            'buttons' => array(
+              'img_assist' => t('Image Assist'),
+            ),
+            // A list of editor extensions provided by this native plugin.
+            // Extensions are not displayed as buttons and touch the editor's
+            // internals, so you should know what you are doing.
+            'extensions' => array(
+              'imce' => t('IMCE'),
+            ),
+            // A list of global, native editor configuration settings to
+            // override. To be used rarely and only when required.
+            'options' => array(
+              'file_browser_callback' => 'imceImageBrowser',
+              'inline_styles' => TRUE,
+            ),
+            // Boolean whether the editor needs to load this plugin. When TRUE,
+            // the editor will automatically load the plugin based on the 'path'
+            // variable provided. If FALSE, the plugin either does not need to
+            // be loaded or is already loaded by something else on the page.
+            // Most plugins should define TRUE here.
+            'load' => TRUE,
+            // Boolean whether this plugin is a native plugin, i.e. shipped with
+            // the editor. Definition must be ommitted for plugins provided by
+            // other modules. TRUE means 'path' and 'filename' above are ignored
+            // and the plugin is instead loaded from the editor's plugin folder.
+            'internal' => TRUE,
+            // TinyMCE-specific: Additional HTML elements to allow in the markup.
+            'extended_valid_elements' => array(
+              'img[class|src|border=0|alt|title|width|height|align|name|style]',
+            ),
+          ),
+        );
+      }
+      break;
+  }
+}
+
+/**
+ * Register a directory containing Wysiwyg plugins.
+ *
+ * @param $type
+ *   The type of objects being collected: either 'plugins' or 'editors'.
+ * @return
+ *   A sub-directory of the implementing module that contains the corresponding
+ *   plugin files. This directory must only contain integration files for
+ *   Wysiwyg module.
+ */
+function hook_wysiwyg_include_directory($type) {
+  switch ($type) {
+    case 'plugins':
+      // You can just return $type, if you place your Wysiwyg plugins into a
+      // sub-directory named 'plugins'.
+      return $type;
+  }
+}
+
+/**
+ * Define a Wysiwyg plugin.
+ *
+ * Supposed to be used for "Drupal plugins" (cross-editor plugins) only.
+ *
+ * @see hook_wysiwyg_plugin()
+ *
+ * Each plugin file in the specified plugin directory of a module needs to
+ * define meta information about the particular plugin provided.
+ * The plugin's hook implementation function name is built out of the following:
+ * - 'hook': The name of the module providing the plugin.
+ * - 'INCLUDE': The basename of the file containing the plugin definition.
+ * - 'plugin': Static.
+ *
+ * For example, if your module's name is 'mymodule' and
+ * mymodule_wysiwyg_include_directory() returned 'plugins' as plugin directory,
+ * and this directory contains an "awesome" plugin file named 'awesome.inc', i.e.
+ *   sites/all/modules/mymodule/plugins/awesome.inc
+ * then the corresponding plugin hook function name is:
+ *   mymodule_awesome_plugin()
+ *
+ * @see hook_wysiwyg_include_directory()
+ *
+ * @return
+ *   Meta information about the buttons provided by this plugin.
+ */
+function hook_INCLUDE_plugin() {
+  $plugins['awesome'] = array(
+    // The plugin's title; defaulting to its internal name ('awesome').
+    'title' => t('Awesome plugin'),
+    // The (vendor) homepage of this plugin; defaults to ''.
+    'vendor url' => 'http://drupal.org/project/wysiwyg',
+    // The path to the button's icon; defaults to
+    // '/[path-to-module]/[plugins-directory]/[plugin-name]/images'.
+    'icon path' => 'path to icon',
+    // The button image filename; defaults to '[plugin-name].png'.
+    'icon file' => 'name of the icon file with extension',
+    // The button title to display on hover.
+    'icon title' => t('Do something'),
+    // An alternative path to the integration JavaScript; defaults to
+    // '[path-to-module]/[plugins-directory]/[plugin-name]'.
+    'js path' => drupal_get_path('module', 'mymodule') . '/awesomeness',
+    // An alternative filename of the integration JavaScript; defaults to
+    // '[plugin-name].js'.
+    'js file' => 'awesome.js',
+    // An alternative path to the integration stylesheet; defaults to
+    // '[path-to-module]/[plugins-directory]/[plugin-name]'.
+    'css path' => drupal_get_path('module', 'mymodule') . '/awesomeness',
+    // An alternative filename of the integration stylesheet; defaults to
+    // '[plugin-name].css'.
+    'css file' => 'awesome.css',
+    // An array of settings for this button. Required, but API is still in flux.
+    'settings' => array(
+    ),
+    // TinyMCE-specific: Additional HTML elements to allow in the markup.
+    'extended_valid_elements' => array(
+      'tag1[attribute1|attribute2]',
+      'tag2[attribute3|attribute4]',
+    ),
+  );
+  return $plugins;
+}
+
+/**
+ * Act on editor profile settings.
+ *
+ * This hook is invoked from wysiwyg_get_editor_config() after the JavaScript
+ * settings have been generated for an editor profile and before the settings
+ * are added to the page. The settings may be customized or enhanced; typically
+ * with options that cannot be controlled through Wysiwyg module's
+ * administrative UI currently.
+ *
+ * Modules implementing this hook to enforce settings that can also be
+ * controlled through the UI should also implement
+ * hook_form_wysiwyg_profile_form_alter() to adjust or at least indicate on the
+ * editor profile configuration form that certain/affected settings cannot be
+ * changed.
+ *
+ * @param $settings
+ *   An associative array of JavaScript settings to pass to the editor.
+ * @param $context
+ *   An associative array containing additional context information:
+ *   - editor: The plugin definition array of the editor.
+ *   - profile: The editor profile object, as loaded from the database.
+ *   - theme: The name of the editor theme/skin.
+ */
+function hook_wysiwyg_editor_settings_alter(&$settings, $context) {
+  // Each editor has its own collection of native settings that may be extended
+  // or overridden. Please consult the respective official vendor documentation
+  // for details.
+  if ($context['profile']->editor == 'tinymce') {
+    // Supported values to JSON data types.
+    $settings['cleanup_on_startup'] = TRUE;
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.dialog.inc b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.dialog.inc
new file mode 100644
index 0000000..500f78d
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.dialog.inc
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * @file
+ * Wysiwyg dialog page handling functions.
+ */
+
+/**
+ * Menu callback; Output a wysiwyg plugin dialog page.
+ */
+function wysiwyg_dialog($plugin, $instance) {
+  $plugins = wysiwyg_get_all_plugins();
+  if (!isset($plugins[$plugin])) {
+    return drupal_access_denied();
+  }
+  $callback = $plugin . '_wysiwyg_dialog';
+  if (!function_exists($callback)) {
+    return drupal_not_found();
+  }
+
+  // Suppress admin menu.
+  module_invoke('admin_menu', 'suppress');
+  // Add editor instance id to Drupal.settings.
+  $settings = array(
+    'plugin' => $plugin,
+    'instance' => $instance,
+  );
+  drupal_add_js(array('wysiwyg' => $settings), 'setting');
+
+  echo theme('wysiwyg_dialog_page', $callback($instance));
+}
+
+/**
+ * Template preprocess function for theme_wysiwyg_dialog_page().
+ *
+ * @see wysiwyg_dialog()
+ * @see wysiwyg-dialog-page.tpl.php
+ * @see template_preprocess()
+ */
+function template_preprocess_wysiwyg_dialog_page(&$variables) {
+  // Construct page title
+  $head_title = array(strip_tags(drupal_get_title()), variable_get('site_name', 'Drupal'));
+
+  $variables['head_title']        = implode(' | ', $head_title);
+  $variables['base_path']         = base_path();
+  $variables['front_page']        = url();
+  // @todo Would a breadcrumb make sense / possible at all?
+  // $variables['breadcrumb']        = theme('breadcrumb', drupal_get_breadcrumb());
+  $variables['head']              = drupal_get_html_head();
+  $variables['help']              = theme('help');
+  $variables['language']          = $GLOBALS['language'];
+  $variables['language']->dir     = $GLOBALS['language']->direction ? 'rtl' : 'ltr';
+  $variables['messages']          = $variables['show_messages'] ? theme('status_messages') : '';
+  $variables['site_name']         = (theme_get_setting('toggle_name') ? variable_get('site_name', 'Drupal') : '');
+  $variables['css']               = drupal_add_css();
+  $variables['styles']            = drupal_get_css();
+  $variables['scripts']           = drupal_get_js();
+  $variables['tabs']              = theme('menu_local_tasks');
+  $variables['title']             = drupal_get_title();
+  // Closure should be filled last.
+  $variables['closure']           = theme('closure');
+}
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.info b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.info
new file mode 100644
index 0000000..d75199b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.info
@@ -0,0 +1,10 @@
+name = Wysiwyg
+description = Allows users to edit contents with client-side editors.
+package = User interface
+core = 6.x
+
+; Information added by drupal.org packaging script on 2011-06-19
+version = "6.x-2.4-boinc-1-dev"
+core = "6.x"
+project = "wysiwyg"
+datestamp = "1453962141"
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.init.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.init.js
new file mode 100644
index 0000000..3b78dc7
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.init.js
@@ -0,0 +1,21 @@
+
+jQuery.support = jQuery.support || {}; // D6- only.
+
+Drupal.wysiwyg = Drupal.wysiwyg || { 'instances': {} };
+
+Drupal.wysiwyg.editor = Drupal.wysiwyg.editor || { 'init': {}, 'attach': {}, 'detach': {}, 'instance': {} };
+
+Drupal.wysiwyg.plugins = Drupal.wysiwyg.plugins || {};
+
+(function ($) {
+  // Determine support for queryCommandEnabled().
+  // An exception should be thrown for non-existing commands.
+  // Safari and Chrome (WebKit based) return -1 instead.
+  try {
+    document.queryCommandEnabled('__wysiwygTestCommand');
+    $.support.queryCommandEnabled = false;
+  }
+  catch (error) {
+    $.support.queryCommandEnabled = true;
+  }
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.install b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.install
new file mode 100644
index 0000000..7d69e77
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.install
@@ -0,0 +1,361 @@
+<?php
+
+/**
+ * Implementation of hook_schema().
+ */
+function wysiwyg_schema() {
+  $schema['wysiwyg'] = array(
+    'description' => t('Stores Wysiwyg profiles.'),
+    'join' => array(
+      'exportables' => array(
+        'table' => 'exportables',
+        'left_key' => 'format',
+        'right_key' => 'id',
+        'extra' => "AND t__1.type = 'input_formats' AND t__0.editor != ''",
+        'load' => array(
+          'machine',
+        ),
+      ),
+    ),
+    'export' =>  array(
+      'key' => 'machine',
+      'key in table' => 'exportables',
+      'identifier' => 'wysiwyg',
+      'export module' => 'wysiwyg',
+      'api' => array(
+        'owner' => 'wysiwyg',
+        'api' => 'wysiwyg',
+        'minimum_version' => 2,
+        'current_version' => 2,
+      ),
+	  'list callback' => 'wysiwyg_profile_list',
+      'delete callback' => 'wysiwyg_profile_delete',
+    ),
+    'fields' => array(
+      'format' => array(
+        'description' => 'The {filter_formats}.format of the text format.',
+        'type' => 'int',
+        // Primary keys are implicitly not null.
+        'not null' => TRUE,
+        'default' => 0,
+        'no export' => TRUE,
+      ),
+      'editor' => array(
+        'description' => 'Internal name of the editor attached to the text format.',
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'settings' => array(
+        'description' => 'Configuration settings for the editor.',
+        'type' => 'text',
+        'size' => 'normal',
+        'serialize' => TRUE,
+      ),
+    ),
+    'primary key' => array('format'),
+    'foreign keys' => array(
+      'format' => array(
+        'table' => 'filter_formats',
+        'columns' => array('format' => 'format'),
+      ),
+    ),
+  );
+  $schema['wysiwyg_user'] = array(
+    'description' => 'Stores user preferences for wysiwyg profiles.',
+    'fields' => array(
+      'uid' => array(
+        'description' => 'The {users}.uid of the user.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'format' => array(
+        'description' => 'The {filter_formats}.format of the text format.',
+        'type' => 'int',
+        'not null' => FALSE,
+      ),
+      'status' => array(
+        'description' => 'Boolean indicating whether the format is enabled by default.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+      ),
+    ),
+    'indexes' => array(
+      'uid' => array('uid'),
+      'format' => array('format'),
+    ),
+    'foreign keys' => array(
+      'uid' => array(
+        'table' => 'users',
+        'columns' => array('uid' => 'uid'),
+      ),
+      'format' => array(
+        'table' => 'filter_formats',
+        'columns' => array('format' => 'format'),
+      ),
+    ),
+  );
+  return $schema;
+}
+
+/**
+ * Implementation of hook_install().
+ */
+function wysiwyg_install() {
+  drupal_install_schema('wysiwyg');
+}
+
+/**
+ * Implementation of hook_uninstall()
+ */
+function wysiwyg_uninstall() {
+  drupal_uninstall_schema('wysiwyg');
+}
+
+/**
+ * Implementation of hook_enable().
+ */
+function wysiwyg_enable() {
+  // Disable conflicting, obsolete editor integration modules whenever this
+  // module is enabled. This is crude, but the only way to ensure no conflicts.
+  module_disable(array(
+    'ckeditor',
+    'editarea',
+    'editonpro',
+    'editor',
+    'fckeditor',
+    'freerte',
+    'htmlarea',
+    'htmlbox',
+    'jwysiwyg',
+    'markitup',
+    'nicedit',
+    'openwysiwyg',
+    'pegoeditor',
+    'quicktext',
+    'tinymce',
+    'tinymce_autoconf',
+    'tinytinymce',
+    'whizzywig',
+    'widgeditor',
+    'wymeditor',
+    'xstandard',
+    'yui_editor',
+  ));
+}
+
+/**
+ * Retrieve a list of input formats to associate profiles to.
+ */
+function _wysiwyg_install_get_formats() {
+  $formats = array();
+  $result = db_query("SELECT format, name FROM {filter_formats}");
+  while ($format = db_fetch_object($result)) {
+    // Build a list of all formats.
+    $formats[$format->format] = $format->name;
+    // Fetch filters.
+    $result2 = db_query("SELECT module, delta FROM {filters} WHERE format = %d", $format->format);
+    while ($filter = db_fetch_object($result2)) {
+      // If PHP filter is enabled, remove this format.
+      if ($filter->module == 'php') {
+        unset($formats[$format->format]);
+        break;
+      }
+    }
+  }
+  return $formats;
+}
+
+/**
+ * Associate Wysiwyg profiles with input formats.
+ *
+ * Since there was no association yet, we can only assume that there is one
+ * profile only, and that profile must be duplicated and assigned to all input
+ * formats (except PHP code format).  Also, input formats already have
+ * titles/names, so Wysiwyg profiles do not need an own.
+ *
+ * Because input formats are already granted to certain user roles only, we can
+ * remove our custom Wysiwyg profile permissions.  A 1:1 relationship between
+ * input formats and permissions makes plugin_count obsolete, too.
+ *
+ * Since the resulting table is completely different, a new schema is installed.
+ */
+function wysiwyg_update_6001() {
+  $ret = array();
+  if (db_table_exists('wysiwyg')) {
+    return $ret;
+  }
+  // Install new schema.
+  db_create_table($ret, 'wysiwyg', array(
+    'fields' => array(
+      'format' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+      'editor' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+      'settings' => array('type' => 'text', 'size' => 'normal'),
+    ),
+    'primary key' => array('format'),
+  ));
+
+  // Fetch all input formats.
+  $formats = _wysiwyg_install_get_formats();
+
+  // Fetch all profiles.
+  $result = db_query("SELECT name, settings FROM {wysiwyg_profile}");
+  while ($profile = db_fetch_object($result)) {
+    $profile->settings = unserialize($profile->settings);
+    // Extract editor name from profile settings.
+    $profile->editor = $profile->settings['editor'];
+    // Clean-up.
+    unset($profile->settings['editor']);
+    unset($profile->settings['old_name']);
+    unset($profile->settings['name']);
+    unset($profile->settings['rids']);
+    // Sorry.  There Can Be Only One. ;)
+    break;
+  }
+
+  if ($profile) {
+    // Rebuild profiles and associate with input formats.
+    foreach ($formats as $format => $name) {
+      // Insert profiles.
+      // We can't use update_sql() here because of curly braces in serialized
+      // array.
+      db_query("INSERT INTO {wysiwyg} (format, editor, settings) VALUES (%d, '%s', '%s')", $format, $profile->editor, serialize($profile->settings));
+      $ret[] = array(
+        'success' => TRUE,
+        'query' => strtr('Wysiwyg profile %profile converted and associated with input format %format.', array('%profile' => check_plain($profile->name), '%format' => check_plain($name))),
+      );
+    }
+  }
+
+  // Drop obsolete tables {wysiwyg_profile} and {wysiwyg_role}.
+  db_drop_table($ret, 'wysiwyg_profile');
+  db_drop_table($ret, 'wysiwyg_role');
+
+  return $ret;
+}
+
+/**
+ * Clear JS/CSS caches to ensure that clients load fresh copies.
+ */
+function wysiwyg_update_6200() {
+  $ret = array();
+  // Change query-strings on css/js files to enforce reload for all users.
+  _drupal_flush_css_js();
+
+  drupal_clear_css_cache();
+  drupal_clear_js_cache();
+
+  // Rebuild the menu to remove old admin/settings/wysiwyg/profile item.
+  menu_rebuild();
+
+  // Flush content caches.
+  cache_clear_all();
+
+  $ret[] = array(
+    'success' => TRUE,
+    'query' => 'Caches have been flushed.',
+  );
+  return $ret;
+}
+
+/**
+ * Create the {wysiwyg_user} table.
+ */
+function wysiwyg_update_6201() {
+  $ret = array();
+  if (!db_table_exists('wysiwyg_user')) {
+    db_create_table($ret, 'wysiwyg_user', array(
+      'description' => 'Stores user preferences for wysiwyg profiles.',
+      'fields' => array(
+        'uid' => array(
+          'description' => 'The {users}.uid of the user.',
+          'type' => 'int',
+          'unsigned' => TRUE,
+          'not null' => TRUE,
+          'default' => 0,
+        ),
+        'format' => array(
+          'description' => 'The {filter_formats}.format of the text format.',
+          'type' => 'int',
+          'not null' => FALSE,
+        ),
+        'status' => array(
+          'description' => 'Boolean indicating whether the format is enabled by default.',
+          'type' => 'int',
+          'unsigned' => TRUE,
+          'not null' => TRUE,
+          'default' => 0,
+          'size' => 'tiny',
+        ),
+      ),
+      'indexes' => array(
+        'uid' => array('uid'),
+        'format' => array('format'),
+      ),
+      'foreign keys' => array(
+        'uid' => array(
+          'table' => 'users',
+          'columns' => array('uid' => 'uid'),
+        ),
+        'format' => array(
+          'table' => 'filter_formats',
+          'columns' => array('format' => 'format'),
+        ),
+      ),
+    ));
+  }
+  return $ret;
+}
+
+/**
+ * Implementation of hook_requirements().
+ *
+ * Display information about getting features support working.
+ */
+function wysiwyg_requirements($phase) {
+  $requirements = array();
+  // Ensure translations don't break at install time
+  $t = get_t();
+
+  if ($phase == 'runtime') {
+    $ctools = $exportables = FALSE;
+    if (module_exists('ctools')) {
+      $ctools = ctools_api_version('1.7');
+    }
+    if (module_exists('exportables')) {
+      $exportables = exportables_api_version('2.0');
+    }
+    if (!$ctools || !$exportables) {
+      $value = $t('Not enabled');
+      $description = t('Wysiwyg is unabled to provide or load wysiwyg profiles in code because you need !ctools (6.x-1.7 or greather) and !exportables (6.x-2.x or greather).',
+        array(
+          '!ctools' => l('CTools', 'http://drupal.org/project/ctools'),
+          '!exportables' => l('Exportables', 'http://drupal.org/project/exportables'),
+        )
+      );
+      $severity = REQUIREMENT_INFO;
+    }
+    else {
+      $value = $t('Wysiwyg can provide exportables objects using !features and load profiles from code.',
+        array(
+          '!features' => l('Features', 'http://drupal.org/project/features'),
+        )
+      );
+      $severity = REQUIREMENT_OK;
+    }
+    $requirements['wysiwyg_features'] = array(
+      'title' => $t('Wysiwyg from code'),
+      'value' => $value,
+      'severity' => $severity,
+      'description' => $description,
+    );
+  }
+
+  return $requirements;
+}
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.js b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.js
new file mode 100644
index 0000000..d14851b
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.js
@@ -0,0 +1,231 @@
+(function($) {
+
+/**
+ * Initialize editor libraries.
+ *
+ * Some editors need to be initialized before the DOM is fully loaded. The
+ * init hook gives them a chance to do so.
+ */
+Drupal.wysiwygInit = function() {
+  // This breaks in Konqueror. Prevent it from running.
+  if (/KDE/.test(navigator.vendor)) {
+    return;
+  }
+
+  jQuery.each(Drupal.wysiwyg.editor.init, function(editor) {
+    // Clone, so original settings are not overwritten.
+    this(jQuery.extend(true, {}, Drupal.settings.wysiwyg.configs[editor]));
+  });
+};
+
+/**
+ * Attach editors to input formats and target elements (f.e. textareas).
+ *
+ * This behavior searches for input format selectors and formatting guidelines
+ * that have been preprocessed by Wysiwyg API. All CSS classes of those elements
+ * with the prefix 'wysiwyg-' are parsed into input format parameters, defining
+ * the input format, configured editor, target element id, and variable other
+ * properties, which are passed to the attach/detach hooks of the corresponding
+ * editor.
+ *
+ * Furthermore, an "enable/disable rich-text" toggle link is added after the
+ * target element to allow users to alter its contents in plain text.
+ *
+ * This is executed once, while editor attach/detach hooks can be invoked
+ * multiple times.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ */
+Drupal.behaviors.attachWysiwyg = function(context) {
+  // This breaks in Konqueror. Prevent it from running.
+  if (/KDE/.test(navigator.vendor)) {
+    return;
+  }
+
+  $('.wysiwyg:not(.wysiwyg-processed)', context).each(function() {
+    var params = Drupal.wysiwyg.getParams(this);
+    var $this = $(this).addClass('wysiwyg-processed');
+    // Directly attach this editor, if the input format is enabled or there is
+    // only one input format at all.
+    if (($this.is(':input') && $this.is(':checked')) || $this.is('div')) {
+      Drupal.wysiwygAttach(context, params);
+    }
+    // Attach onChange handlers to input format selector elements.
+    if ($this.is(':input')) {
+      $this.change(function() {
+        // If not disabled, detach the current and attach a new editor.
+        Drupal.wysiwygDetach(context, params);
+        Drupal.wysiwygAttach(context, params);
+      });
+      // IE triggers onChange after blur only.
+      if ($.browser.msie) {
+        $this.click(function () {
+          this.blur();
+        });
+      }
+    }
+    // Detach any editor when the containing form is submitted.
+    $('#' + params.field).parents('form').submit(function (event) {
+      // Do not detach if the event was cancelled.
+      if (event.originalEvent.returnValue === false) {
+        return;
+      }
+      Drupal.wysiwygDetach(context, params);
+    });
+  });
+};
+
+/**
+ * Attach an editor to a target element.
+ *
+ * This tests whether the passed in editor implements the attach hook and
+ * invokes it if available. Editor profile settings are cloned first, so they
+ * cannot be overridden. After attaching the editor, the toggle link is shown
+ * again, except in case we are attaching no editor.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters.
+ */
+Drupal.wysiwygAttach = function(context, params) {
+  if (typeof Drupal.wysiwyg.editor.attach[params.editor] == 'function') {
+    // (Re-)initialize field instance.
+    Drupal.wysiwyg.instances[params.field] = {};
+    // Provide all input format parameters to editor instance.
+    jQuery.extend(Drupal.wysiwyg.instances[params.field], params);
+    // Provide editor callbacks for plugins, if available.
+    if (typeof Drupal.wysiwyg.editor.instance[params.editor] == 'object') {
+      jQuery.extend(Drupal.wysiwyg.instances[params.field], Drupal.wysiwyg.editor.instance[params.editor]);
+    }
+    // Store this field id, so (external) plugins can use it.
+    // @todo Wrong point in time. Probably can only supported by editors which
+    //   support an onFocus() or similar event.
+    Drupal.wysiwyg.activeId = params.field;
+    // Attach or update toggle link, if enabled.
+    if (params.toggle) {
+      Drupal.wysiwygAttachToggleLink(context, params);
+    }
+    // Otherwise, ensure that toggle link is hidden.
+    else {
+      $('#wysiwyg-toggle-' + params.field).hide();
+    }
+    // Attach editor, if enabled by default or last state was enabled.
+    if (params.status) {
+      Drupal.wysiwyg.editor.attach[params.editor](context, params, (Drupal.settings.wysiwyg.configs[params.editor] ? jQuery.extend(true, {}, Drupal.settings.wysiwyg.configs[params.editor][params.format]) : {}));
+    }
+    // Otherwise, attach default behaviors.
+    else {
+      Drupal.wysiwyg.editor.attach.none(context, params);
+      Drupal.wysiwyg.instances[params.field].editor = 'none';
+    }
+  }
+};
+
+/**
+ * Detach all editors from a target element.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters.
+ */
+Drupal.wysiwygDetach = function(context, params) {
+  var editor = Drupal.wysiwyg.instances[params.field].editor;
+  if (jQuery.isFunction(Drupal.wysiwyg.editor.detach[editor])) {
+    Drupal.wysiwyg.editor.detach[editor](context, params);
+  }
+};
+
+/**
+ * Append or update an editor toggle link to a target element.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters.
+ */
+Drupal.wysiwygAttachToggleLink = function(context, params) {
+  if (!$('#wysiwyg-toggle-' + params.field).length) {
+    var text = document.createTextNode(params.status ? Drupal.settings.wysiwyg.disable : Drupal.settings.wysiwyg.enable);
+    var a = document.createElement('a');
+    $(a).attr({ id: 'wysiwyg-toggle-' + params.field, href: 'javascript:void(0);' }).append(text);
+    var div = document.createElement('div');
+    $(div).addClass('wysiwyg-toggle-wrapper').append(a);
+    $('#' + params.field).after(div);
+  }
+  $('#wysiwyg-toggle-' + params.field)
+    .html(params.status ? Drupal.settings.wysiwyg.disable : Drupal.settings.wysiwyg.enable).show()
+    .unbind('click.wysiwyg', Drupal.wysiwyg.toggleWysiwyg)
+    .bind('click.wysiwyg', { params: params, context: context }, Drupal.wysiwyg.toggleWysiwyg);
+
+  // Hide toggle link in case no editor is attached.
+  if (params.editor == 'none') {
+    $('#wysiwyg-toggle-' + params.field).hide();
+  }
+};
+
+/**
+ * Callback for the Enable/Disable rich editor link.
+ */
+Drupal.wysiwyg.toggleWysiwyg = function (event) {
+  var context = event.data.context;
+  var params = event.data.params;
+  if (params.status) {
+    // Detach current editor.
+    params.status = false;
+    Drupal.wysiwygDetach(context, params);
+    // After disabling the editor, re-attach default behaviors.
+    // @todo We HAVE TO invoke Drupal.wysiwygAttach() here.
+    Drupal.wysiwyg.editor.attach.none(context, params);
+    Drupal.wysiwyg.instances[params.field] = Drupal.wysiwyg.editor.instance.none;
+    Drupal.wysiwyg.instances[params.field].editor = 'none';
+    $(this).html(Drupal.settings.wysiwyg.enable).blur();
+  }
+  else {
+    // Before enabling the editor, detach default behaviors.
+    Drupal.wysiwyg.editor.detach.none(context, params);
+    // Attach new editor using parameters of the currently selected input format.
+    Drupal.wysiwyg.getParams($('.wysiwyg-field-' + params.field + ':checked, div.wysiwyg-field-' + params.field, context).get(0), params);
+    params.status = true;
+    Drupal.wysiwygAttach(context, params);
+    $(this).html(Drupal.settings.wysiwyg.disable).blur();
+  }
+}
+
+/**
+ * Parse the CSS classes of an input format DOM element into parameters.
+ *
+ * Syntax for CSS classes is "wysiwyg-name-value".
+ *
+ * @param element
+ *   An input format DOM element containing CSS classes to parse.
+ * @param params
+ *   (optional) An object containing input format parameters to update.
+ */
+Drupal.wysiwyg.getParams = function(element, params) {
+  var classes = element.className.split(' ');
+  var params = params || {};
+  for (var i = 0; i < classes.length; i++) {
+    if (classes[i].substr(0, 8) == 'wysiwyg-') {
+      var parts = classes[i].split('-');
+      var value = parts.slice(2).join('-');
+      params[parts[1]] = value;
+    }
+  }
+  // Convert format id into string.
+  params.format = 'format' + params.format;
+  // Convert numeric values.
+  params.status = parseInt(params.status, 10);
+  params.toggle = parseInt(params.toggle, 10);
+  params.resizable = parseInt(params.resizable, 10);
+  return params;
+};
+
+/**
+ * Allow certain editor libraries to initialize before the DOM is loaded.
+ */
+Drupal.wysiwygInit();
+
+})(jQuery);
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.module b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.module
new file mode 100644
index 0000000..8e0d5bd
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.module
@@ -0,0 +1,1105 @@
+<?php
+
+/**
+ * @file
+ * Integrate client-side editors with Drupal.
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function wysiwyg_menu() {
+  $items['admin/settings/wysiwyg'] = array(
+    'title' => 'Wysiwyg profiles',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_overview'),
+    'description' => 'Configure client-side editors.',
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+  );
+  $items['admin/settings/wysiwyg/profile'] = array(
+    'title' => 'List',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+  );
+  $items['admin/settings/wysiwyg/profile/%wysiwyg_profile/edit'] = array(
+    'title' => 'Edit',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_form', 4),
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+    'tab_root' => 'admin/settings/wysiwyg/profile',
+    'tab_parent' => 'admin/settings/wysiwyg/profile/%wysiwyg_profile',
+    'type' => MENU_LOCAL_TASK,
+  );
+  $items['admin/settings/wysiwyg/profile/%wysiwyg_profile/delete'] = array(
+    'title' => 'Remove',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_delete_confirm', 4),
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+    'tab_root' => 'admin/settings/wysiwyg/profile',
+    'tab_parent' => 'admin/settings/wysiwyg/profile/%wysiwyg_profile',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 10,
+  );
+  $items['wysiwyg/%'] = array(
+    'page callback' => 'wysiwyg_dialog',
+    'page arguments' => array(1),
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+    'file' => 'wysiwyg.dialog.inc',
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ *
+ * @see drupal_common_theme(), common.inc
+ * @see template_preprocess_page(), theme.inc
+ */
+function wysiwyg_theme() {
+  return array(
+    'wysiwyg_profile_overview' => array(
+      'arguments' => array('form' => NULL),
+    ),
+    'wysiwyg_admin_button_table' => array(
+      'arguments' => array('form' => NULL),
+    ),
+    'wysiwyg_dialog_page' => array(
+      'arguments' => array('content' => NULL, 'show_messages' => TRUE),
+      'file' => 'wysiwyg.dialog.inc',
+      'template' => 'wysiwyg-dialog-page',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_help().
+ */
+function wysiwyg_help($path, $arg) {
+  switch ($path) {
+    case 'admin/settings/wysiwyg':
+      $output = '<p>' . t('A Wysiwyg profile is associated with an input format. A Wysiwyg profile defines which client-side editor is loaded with a particular input format, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions.') . '</p>';
+      return $output;
+  }
+}
+
+/**
+ * Clear wysiwyg cache on admin/build/modules form.
+ */
+function wysiwyg_form_system_modules_alter(&$form, $form_state) {
+  wysiwyg_profile_load_all(TRUE);
+}
+
+/**
+ * Implementation of hook_form_alter().
+ *
+ * Before Drupal 7, there is no way to easily identify form fields that are
+ * input format enabled. As a workaround, we assign a form #after_build
+ * processing callback that is executed on all forms after they have been
+ * completely built, so form elements are in their effective order
+ * and position already.
+ *
+ * @see wysiwyg_process_form()
+ */
+function wysiwyg_form_alter(&$form, &$form_state) {
+  $form['#after_build'][] = 'wysiwyg_process_form';
+  // Teaser splitter is unconditionally removed and NOT supported.
+  if (isset($form['body_field'])) {
+    unset($form['body_field']['teaser_js']);
+  }
+}
+
+/**
+ * Process a textarea for Wysiwyg Editor.
+ *
+ * This way, we can recurse into the form and search for certain, hard-coded
+ * elements that have been added by filter_form(). If an input format selector
+ * or input format guidelines element is found, we assume that the preceding
+ * element is the corresponding textarea and use it's #id for attaching
+ * client-side editors.
+ *
+ * @see wysiwyg_elements(), filter_form()
+ */
+function wysiwyg_process_form(&$form) {
+  // Iterate over element children; resetting array keys to access last index.
+  if ($children = array_values(element_children($form))) {
+    foreach ($children as $index => $item) {
+      $element = &$form[$item];
+
+      // filter_form() always uses the key 'format'. We need a type-agnostic
+      // match to prevent false positives. Also, there must have been at least
+      // one element on this level.
+      if (($item === 'format' || $item === 'signature_format') && $index > 0) {
+        // Make sure we either match a input format selector or input format
+        // guidelines (displayed if user has access to one input format only).
+        if ((isset($element['#type']) && $element['#type'] == 'fieldset') || isset($element['format']['guidelines'])) {
+          // The element before this element is the target form field.
+          $field = &$form[$children[$index - 1]];
+
+          // Allow modules to programmatically enforce no client-side editor by
+          // setting the #wysiwyg property to FALSE.
+          if (isset($field['#wysiwyg']) && !$field['#wysiwyg']) {
+            // A 'format' element should not have any child elements that may
+            // need processing, so it should be safe to skip the recursion that
+            // happens at the end of this function, and move on to the next
+            // element on the same level.
+            continue;
+          }
+
+          // If this textarea is #resizable and we will load at least one
+          // editor, then only load the behavior and let the 'none' editor
+          // attach/detach it to avoid hi-jacking the UI. Due to our CSS class
+          // parsing, we can add arbitrary parameters for each input format.
+          // The #resizable property will be removed below, if at least one
+          // profile has been loaded.
+          $extra_class = '';
+          if (!empty($field['#resizable'])) {
+            $extra_class = ' wysiwyg-resizable-1';
+            drupal_add_js('misc/textarea.js');
+          }
+
+          // Determine the available input formats. The last child element is a
+          // link to "More information about formatting options". When only one
+          // input format is displayed, we also have to remove formatting
+          // guidelines, stored in the child 'format'.
+          $formats = element_children($element);
+          array_pop($formats);
+          if (($key = array_search('format', $formats)) !== FALSE) {
+            unset($formats[$key]);
+          }
+          foreach ($formats as $format) {
+            // Default to 'none' editor (Drupal's default behaviors).
+            $editor = 'none';
+            $status = 1;
+            $toggle = 1;
+            // Fetch the profile associated to this input format.
+            $profile = wysiwyg_get_profile($format);
+            if ($profile) {
+              $loaded = TRUE;
+              $editor = $profile->editor;
+              $status = (int) wysiwyg_user_get_status($profile);
+              if (isset($profile->settings['show_toggle'])) {
+                $toggle = (int) $profile->settings['show_toggle'];
+              }
+              // Check editor theme (and reset it if not/no longer available).
+              $theme = wysiwyg_get_editor_themes($profile, (isset($profile->settings['theme']) ? $profile->settings['theme'] : ''));
+
+              // Add plugin settings (first) for this input format.
+              wysiwyg_add_plugin_settings($profile);
+              // Add profile settings for this input format.
+              wysiwyg_add_editor_settings($profile, $theme);
+            }
+
+            // Use a prefix/suffix for a single input format, or attach to input
+            // format selector radio buttons.
+            if (isset($element['format']['guidelines'])) {
+              $element['format']['guidelines']['#prefix'] = '<div class="wysiwyg wysiwyg-format-' . $format . ' wysiwyg-editor-' . $editor . ' wysiwyg-field-' . $field['#id'] . ' wysiwyg-status-' . $status . ' wysiwyg-toggle-' . $toggle . $extra_class . '">';
+              $element['format']['guidelines']['#suffix'] = '</div>';
+              // Edge-case: Default format contains no input filters.
+              if (empty($element['format']['guidelines']['#value'])) {
+                $element['format']['guidelines']['#value'] = ' ';
+              }
+            }
+            else {
+              $element[$format]['#attributes']['class'] = (isset($element[$format]['#attributes']['class']) ? $element[$format]['#attributes']['class'] . ' ' : '');
+              $element[$format]['#attributes']['class'] .= 'wysiwyg wysiwyg-format-' . $format . ' wysiwyg-editor-' . $editor . ' wysiwyg-field-' . $field['#id'] . ' wysiwyg-status-' . $status . ' wysiwyg-toggle-' . $toggle . $extra_class;
+            }
+          }
+
+          // If we loaded at least one editor, then the 'none' editor will
+          // handle resizable textareas instead of core.
+          if (isset($loaded) && !empty($field['#resizable'])) {
+            $field['#resizable'] = FALSE;
+          }
+        }
+        // If this element is 'format', do not recurse further.
+        continue;
+      }
+      // Recurse into children.
+      wysiwyg_process_form($element);
+    }
+  }
+  return $form;
+}
+
+/**
+ * Determine the profile to use for a given input format id.
+ *
+ * This function also performs sanity checks for the configured editor in a
+ * profile to ensure that we do not load a malformed editor.
+ *
+ * @param $format
+ *   The internal id of an input format.
+ *
+ * @return
+ *   A wysiwyg profile.
+ *
+ * @see wysiwyg_load_editor(), wysiwyg_get_editor()
+ */
+function wysiwyg_get_profile($format) {
+  if ($profile = wysiwyg_profile_load($format)) {
+    if (wysiwyg_load_editor($profile)) {
+      return $profile;
+    }
+  }
+  return FALSE;
+}
+
+/**
+ * Load an editor library and initialize basic Wysiwyg settings.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   TRUE if the editor has been loaded, FALSE if not.
+ *
+ * @see wysiwyg_get_profile()
+ */
+function wysiwyg_load_editor($profile) {
+  static $settings_added;
+  static $loaded = array();
+
+  $name = $profile->editor;
+  // Library files must be loaded only once.
+  if (!isset($loaded[$name])) {
+    // Load editor.
+    $editor = wysiwyg_get_editor($name);
+    if ($editor) {
+      // Determine library files to load.
+      // @todo Allow to configure the library/execMode to use.
+      if (isset($profile->settings['library']) && isset($editor['libraries'][$profile->settings['library']])) {
+        $library = $profile->settings['library'];
+        $files = $editor['libraries'][$library]['files'];
+      }
+      else {
+        // Fallback to the first defined library by default (external libraries can change).
+        $library = key($editor['libraries']);
+        $files = array_shift($editor['libraries']);
+        $files = $files['files'];
+      }
+      foreach ($files as $file => $options) {
+        if (is_array($options)) {
+          $options += array('type' => 'module', 'scope' => 'header', 'defer' => FALSE, 'cache' => TRUE, 'preprocess' => TRUE);
+          drupal_add_js($editor['library path'] . '/' . $file, $options['type'], $options['scope'], $options['defer'], $options['cache'], $options['preprocess']);
+        }
+        else {
+          drupal_add_js($editor['library path'] . '/' . $options);
+        }
+      }
+      // If editor defines an additional load callback, invoke it.
+      // @todo Isn't the settings callback sufficient?
+      if (isset($editor['load callback']) && function_exists($editor['load callback'])) {
+        $editor['load callback']($editor, $library);
+      }
+      // Load JavaScript integration files for this editor.
+      $files = array();
+      if (isset($editor['js files'])) {
+        $files = $editor['js files'];
+      }
+      foreach ($files as $file) {
+        drupal_add_js($editor['js path'] . '/' . $file);
+      }
+      // Load CSS stylesheets for this editor.
+      $files = array();
+      if (isset($editor['css files'])) {
+        $files = $editor['css files'];
+      }
+      foreach ($files as $file) {
+        drupal_add_css($editor['css path'] . '/' . $file);
+      }
+
+      drupal_add_js(array('wysiwyg' => array(
+        'configs' => array($editor['name'] => array('global' => array(
+          // @todo Move into (global) editor settings.
+          // If JS compression is enabled, at least TinyMCE is unable to determine
+          // its own base path and exec mode since it can't find the script name.
+          'editorBasePath' => base_path() . $editor['library path'],
+          'execMode' => $library,
+        ))),
+      )), 'setting');
+
+      $loaded[$name] = TRUE;
+    }
+    else {
+      $loaded[$name] = FALSE;
+    }
+  }
+
+  // Add basic Wysiwyg settings if any editor has been added.
+  if (!isset($settings_added) && $loaded[$name]) {
+    drupal_add_js(array('wysiwyg' => array(
+      'configs' => array(),
+      'plugins' => array(),
+      'disable' => t('Disable rich-text'),
+      'enable' => t('Enable rich-text'),
+    )), 'setting');
+
+    $path = drupal_get_path('module', 'wysiwyg');
+    // Initialize our namespaces in the *header* to do not force editor
+    // integration scripts to check and define Drupal.wysiwyg on its own.
+    drupal_add_js($path . '/wysiwyg.init.js', 'core');
+
+    // The 'none' editor is a special editor implementation, allowing us to
+    // attach and detach regular Drupal behaviors just like any other editor.
+    drupal_add_js($path . '/editors/js/none.js');
+
+    // Add wysiwyg.js to the footer to ensure it's executed after the
+    // Drupal.settings array has been rendered and populated. Also, since editor
+    // library initialization functions must be loaded first by the browser,
+    // and Drupal.wysiwygInit() must be executed AFTER editors registered
+    // their callbacks and BEFORE Drupal.behaviors are applied, this must come
+    // last.
+    drupal_add_js($path . '/wysiwyg.js', 'module', 'footer');
+
+    $settings_added = TRUE;
+  }
+
+  return $loaded[$name];
+}
+
+/**
+ * Add editor settings for a given input format.
+ */
+function wysiwyg_add_editor_settings($profile, $theme) {
+  static $formats = array();
+
+  if (!isset($formats[$profile->format])) {
+    $config = wysiwyg_get_editor_config($profile, $theme);
+    // drupal_to_js() does not properly convert numeric array keys, so we need
+    // to use a string instead of the format id.
+    if ($config) {
+      drupal_add_js(array('wysiwyg' => array('configs' => array($profile->editor => array('format' . $profile->format => $config)))), 'setting');
+    }
+    $formats[$profile->format] = TRUE;
+  }
+}
+
+/**
+ * Add settings for external plugins.
+ *
+ * Plugins can be used in multiple profiles, but not necessarily in all. Because
+ * of that, we need to process plugins for each profile, even if most of their
+ * settings are not stored per profile.
+ *
+ * Implementations of hook_wysiwyg_plugin() may execute different code for each
+ * editor. Therefore, we have to invoke those implementations for each editor,
+ * but process the resulting plugins separately for each profile.
+ *
+ * Drupal plugins differ to native plugins in that they have plugin-specific
+ * definitions and settings, which need to be processed only once. But they are
+ * also passed to the editor to prepare settings specific to the editor.
+ * Therefore, we load and process the Drupal plugins only once, and hand off the
+ * effective definitions for each profile to the editor.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @todo Rewrite wysiwyg_process_form() to build a registry of effective
+ *   profiles in use, so we can process plugins in multiple profiles in one shot
+ *   and simplify this entire function.
+ */
+function wysiwyg_add_plugin_settings($profile) {
+  static $plugins = array();
+  static $processed_plugins = array();
+  static $processed_formats = array();
+
+  // Each input format must only processed once.
+  // @todo ...as long as we do not have multiple profiles per format.
+  if (isset($processed_formats[$profile->format])) {
+    return;
+  }
+  $processed_formats[$profile->format] = TRUE;
+
+  $editor = wysiwyg_get_editor($profile->editor);
+
+  // Collect native plugins for this editor provided via hook_wysiwyg_plugin()
+  // and Drupal plugins provided via hook_wysiwyg_include_directory().
+  if (!array_key_exists($editor['name'], $plugins)) {
+    $plugins[$editor['name']] = wysiwyg_get_plugins($editor['name']);
+  }
+
+  // Nothing to do, if there are no plugins.
+  if (empty($plugins[$editor['name']])) {
+    return;
+  }
+
+  // Determine name of proxy plugin for Drupal plugins.
+  $proxy = (isset($editor['proxy plugin']) ? key($editor['proxy plugin']) : '');
+
+  // Process native editor plugins.
+  if (isset($editor['plugin settings callback'])) {
+    // @todo Require PHP 5.1 in 3.x and use array_intersect_key().
+    $profile_plugins_native = array();
+    foreach ($plugins[$editor['name']] as $plugin => $meta) {
+      // Skip Drupal plugins (handled below).
+      if ($plugin === $proxy) {
+        continue;
+      }
+      // Only keep native plugins that are enabled in this profile.
+      if (isset($profile->settings['buttons'][$plugin])) {
+        $profile_plugins_native[$plugin] = $meta;
+      }
+    }
+    // Invoke the editor's plugin settings callback, so it can populate the
+    // settings for native external plugins with required values.
+    $settings_native = call_user_func($editor['plugin settings callback'], $editor, $profile, $profile_plugins_native);
+
+    if ($settings_native) {
+      drupal_add_js(array('wysiwyg' => array('plugins' => array('format' . $profile->format => array('native' => $settings_native)))), 'setting');
+    }
+  }
+
+  // Process Drupal plugins.
+  if ($proxy && isset($editor['proxy plugin settings callback'])) {
+    $profile_plugins_drupal = array();
+    foreach (wysiwyg_get_all_plugins() as $plugin => $meta) {
+      if (isset($profile->settings['buttons'][$proxy][$plugin])) {
+        // JavaScript and plugin-specific settings for Drupal plugins must be
+        // loaded and processed only once. Plugin information is cached
+        // statically to pass it to the editor's proxy plugin settings callback.
+        if (!isset($processed_plugins[$proxy][$plugin])) {
+          $profile_plugins_drupal[$plugin] = $processed_plugins[$proxy][$plugin] = $meta;
+          // Load the Drupal plugin's JavaScript.
+          drupal_add_js($meta['js path'] . '/' . $meta['js file']);
+          // Add plugin-specific settings.
+          if (isset($meta['settings'])) {
+            drupal_add_js(array('wysiwyg' => array('plugins' => array('drupal' => array($plugin => $meta['settings'])))), 'setting');
+          }
+        }
+        else {
+          $profile_plugins_drupal[$plugin] = $processed_plugins[$proxy][$plugin];
+        }
+      }
+    }
+    // Invoke the editor's proxy plugin settings callback, so it can populate
+    // the settings for Drupal plugins with custom, required values.
+    $settings_drupal = call_user_func($editor['proxy plugin settings callback'], $editor, $profile, $profile_plugins_drupal);
+
+    if ($settings_drupal) {
+      drupal_add_js(array('wysiwyg' => array('plugins' => array('format' . $profile->format => array('drupal' => $settings_drupal)))), 'setting');
+    }
+  }
+}
+
+/**
+ * Retrieve available themes for an editor.
+ *
+ * Editor themes control the visual presentation of an editor.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile; passed/altered by reference.
+ * @param $selected_theme
+ *   An optional theme name that ought to be used.
+ *
+ * @return
+ *   An array of theme names, or a single, checked theme name if $selected_theme
+ *   was given.
+ */
+function wysiwyg_get_editor_themes(&$profile, $selected_theme = NULL) {
+  static $themes = array();
+
+  if (!isset($themes[$profile->editor])) {
+    $editor = wysiwyg_get_editor($profile->editor);
+    if (isset($editor['themes callback']) && function_exists($editor['themes callback'])) {
+      $themes[$editor['name']] = $editor['themes callback']($editor, $profile);
+    }
+    // Fallback to 'default' otherwise.
+    else {
+      $themes[$editor['name']] = array('default');
+    }
+  }
+
+  // Check optional $selected_theme argument, if given.
+  if (isset($selected_theme)) {
+    // If the passed theme name does not exist, use the first available.
+    if (!in_array($selected_theme, $themes[$profile->editor])) {
+      $selected_theme = $profile->settings['theme'] = $themes[$profile->editor][0];
+    }
+  }
+
+  return isset($selected_theme) ? $selected_theme : $themes[$profile->editor];
+}
+
+/**
+ * Return plugin metadata from the plugin registry.
+ *
+ * @param $editor_name
+ *   The internal name of an editor to return plugins for.
+ *
+ * @return
+ *   An array for each plugin.
+ */
+function wysiwyg_get_plugins($editor_name) {
+  $plugins = array();
+  if (!empty($editor_name)) {
+    $editor = wysiwyg_get_editor($editor_name);
+    // Add internal editor plugins.
+    if (isset($editor['plugin callback']) && function_exists($editor['plugin callback'])) {
+      $plugins = $editor['plugin callback']($editor);
+    }
+    // Add editor plugins provided via hook_wysiwyg_plugin().
+    $plugins = array_merge($plugins, module_invoke_all('wysiwyg_plugin', $editor['name'], $editor['installed version']));
+    // Add API plugins provided by Drupal modules.
+    // @todo We need to pass the filepath to the plugin icon for Drupal plugins.
+    if (isset($editor['proxy plugin'])) {
+      $plugins += $editor['proxy plugin'];
+      $proxy = key($editor['proxy plugin']);
+      foreach (wysiwyg_get_all_plugins() as $plugin_name => $info) {
+        $plugins[$proxy]['buttons'][$plugin_name] = $info['title'];
+      }
+    }
+  }
+  return $plugins;
+}
+
+/**
+ * Return an array of initial editor settings for a Wysiwyg profile.
+ */
+function wysiwyg_get_editor_config($profile, $theme) {
+  $editor = wysiwyg_get_editor($profile->editor);
+  $settings = array();
+  if (!empty($editor['settings callback']) && function_exists($editor['settings callback'])) {
+    $settings = $editor['settings callback']($editor, $profile->settings, $theme);
+
+    // Allow other modules to alter the editor settings for this format.
+    $context = array('editor' => $editor, 'profile' => $profile, 'theme' => $theme);
+    drupal_alter('wysiwyg_editor_settings', $settings, $context);
+  }
+  return $settings;
+}
+
+/**
+ * Retrieve stylesheets for HTML/IFRAME-based editors.
+ *
+ * This assumes that the content editing area only needs stylesheets defined
+ * for the scope 'theme'.
+ *
+ * @return
+ *   An array containing CSS files, including proper base path.
+ */
+function wysiwyg_get_css() {
+  static $files;
+
+  if (isset($files)) {
+    return $files;
+  }
+  // In node form previews, the theme has not been initialized yet.
+  if (!empty($_POST)) {
+    init_theme();
+  }
+
+  $files = array();
+  foreach (drupal_add_css() as $media => $css) {
+    if ($media != 'print') {
+      foreach ($css['theme'] as $filepath => $preprocess) {
+        if (file_exists($filepath)) {
+          $files[] = base_path() . $filepath;
+        }
+      }
+    }
+  }
+  return $files;
+}
+
+/**
+ * Load profile for a given input format.
+ */
+function wysiwyg_profile_load($format) {
+  static $profiles;
+
+  if (!isset($profiles) || !array_key_exists($format, $profiles)) {
+    $profiles = wysiwyg_profile_load_all();
+  }
+
+  return (isset($profiles[$format]) ? $profiles[$format] : FALSE);
+}
+
+/**
+ * Load all profiles.
+ */
+function wysiwyg_profile_load_all($reset = FALSE) {
+  static $profiles;
+
+  if ($reset || !isset($profiles)) {
+    $profiles = array();
+    if (!$reset && ($cache = cache_get('wysiwyg:profiles', 'cache')) && is_array($cache->data)) {
+      $profiles = $cache->data;
+      return $profiles;
+    }
+    // If Exportables and CTools are installed, use their API to load both
+    // wysiwyg profiles from code and from the database
+    if (module_exists('ctools') && module_exists('exportables')) {
+      if (exportables_api_version('2.0') && ctools_api_version('1.7')) {
+        $input_formats = exportables_load_all('input_formats');
+        ctools_include('export');
+        $ctools_profiles = ctools_export_load_object('wysiwyg');
+        // Wysiwyg module still use numeric ids as keys
+        foreach ($ctools_profiles as $machine_name => $profile) {
+          $profile->format = $input_formats[$machine_name];
+          $profiles[$profile->format] = $profile;
+        }
+      }
+    }
+
+    // DB profiles will always override Features profiles from flat files.
+    $result = db_query('SELECT format, editor, settings FROM {wysiwyg}');
+    while ($profile = db_fetch_object($result)) {
+      if (!isset($profiles[$profile->format])) {
+        $profile->settings = unserialize($profile->settings);
+        $profiles[$profile->format] = $profile;
+      }
+    }
+
+    drupal_alter('wysiwyg_load_profiles', $profiles);
+    cache_set('wysiwyg:profiles', $profiles);
+  }
+
+  return $profiles;
+}
+ /**
+ * Wysiwyg profiles list callback.
+ */
+function wysiwyg_profile_list() {
+  $profiles = wysiwyg_profile_load_all(TRUE);
+  $filter_formats = filter_formats();
+  $list = array();
+  foreach ($profiles as $profile) {
+    $list[$profile->machine] = t('@format (@editor)', array('@editor' => $profile->editor, '@format' => $filter_formats[$profile->format]->name));
+  }
+  return $list;
+}
+
+/**
+ * Remove a profile from the database.
+ */
+function wysiwyg_profile_delete($wysiwyg) {
+  if (!isset($wysiwyg->format)) {
+    $input_formats = exportables_load_all('input_formats');
+    $wysiwyg->format = $input_formats[$wysiwyg->machine];
+  }
+  db_query("DELETE FROM {wysiwyg} WHERE format = %d", $wysiwyg->format);
+}
+
+
+
+/**
+ * Implementation of hook_user().
+ */
+function wysiwyg_user($op, &$edit, $account, $category = NULL) {
+  if ($op == 'form' && $category == 'account') {
+    $user_formats = filter_formats();
+    $options = array();
+    $options_default = array();
+    foreach (wysiwyg_profile_load_all() as $format => $profile) {
+      // Only show profiles that have user_choose enabled.
+      if (!empty($profile->settings['user_choose']) && isset($user_formats[$format])) {
+        $options[$format] = check_plain($user_formats[$format]->name);
+        if (wysiwyg_user_get_status($profile, $account)) {
+          $options_default[] = $format;
+        }
+      }
+    }
+    if (!empty($options)) {
+      $form['wysiwyg']['wysiwyg_status'] = array(
+        '#type' => 'checkboxes',
+        '#title' => t('Text formats enabled for rich-text editing'),
+        '#options' => $options,
+        '#default_value' => $options_default,
+      );
+      return $form;
+    }
+  }
+  elseif ($op == 'insert' || $op == 'update') {
+    if (isset($edit['wysiwyg_status'])) {
+      db_query("DELETE FROM {wysiwyg_user} WHERE uid = %d", $account->uid);
+      foreach ($edit['wysiwyg_status'] as $format => $status) {
+        db_query("INSERT INTO {wysiwyg_user} (uid, format, status) VALUES (%d, %d, %d)", array(
+          $account->uid,
+          $format,
+          (int) (bool) $status,
+        ));
+      }
+    }
+  }
+}
+
+function wysiwyg_user_get_status($profile, $account = NULL) {
+  global $user;
+
+  if (!isset($account)) {
+    $account = $user;
+  }
+
+  // Default wysiwyg editor status information is only required on forms, so we
+  // do not pre-emptively load and attach this information on every user_load().
+  if (!isset($account->wysiwyg_status)) {
+    $account->wysiwyg_status = array();
+    $result = db_query("SELECT format, status FROM {wysiwyg_user} WHERE uid = %d", $account->uid);
+    while ($row = db_fetch_object($result)) {
+      $account->wysiwyg_status[$row->format] = $row->status;
+    }
+  }
+
+  if (!empty($profile->settings['user_choose']) && isset($account->wysiwyg_status[$profile->format])) {
+    $status = $account->wysiwyg_status[$profile->format];
+  }
+  else {
+    $status = isset($profile->settings['default']) ? $profile->settings['default'] : TRUE;
+  }
+
+  return (bool) $status;
+}
+
+/**
+ * @defgroup wysiwyg_api Wysiwyg API
+ * @{
+ *
+ * @todo Forked from Panels; abstract into a separate API module that allows
+ *   contrib modules to define supported include/plugin types.
+ */
+
+/**
+ * Return library information for a given editor.
+ *
+ * @param $name
+ *   The internal name of an editor.
+ *
+ * @return
+ *   The library information for the editor, or FALSE if $name is unknown or not
+ *   installed properly.
+ */
+function wysiwyg_get_editor($name) {
+  $editors = wysiwyg_get_all_editors();
+  return isset($editors[$name]) && $editors[$name]['installed'] ? $editors[$name] : FALSE;
+}
+
+/**
+ * Compile a list holding all supported editors including installed editor version information.
+ */
+function wysiwyg_get_all_editors() {
+  static $editors;
+
+  if (isset($editors)) {
+    return $editors;
+  }
+
+  $editors = wysiwyg_load_includes('editors', 'editor');
+  foreach ($editors as $editor => $properties) {
+    // Fill in required properties.
+    $editors[$editor] += array(
+      'title' => '',
+      'vendor url' => '',
+      'download url' => '',
+      'editor path' => wysiwyg_get_path($editors[$editor]['name']),
+      'library path' => wysiwyg_get_path($editors[$editor]['name']),
+      'libraries' => array(),
+      'version callback' => NULL,
+      'themes callback' => NULL,
+      'settings callback' => NULL,
+      'plugin callback' => NULL,
+      'plugin settings callback' => NULL,
+      'versions' => array(),
+      'js path' => $editors[$editor]['path'] . '/js',
+      'css path' => $editors[$editor]['path'] . '/css',
+    );
+    // Check whether library is present.
+    if (!($editors[$editor]['installed'] = file_exists($editors[$editor]['library path']))) {
+      continue;
+    }
+    // Detect library version.
+    if (function_exists($editors[$editor]['version callback'])) {
+      $editors[$editor]['installed version'] = $editors[$editor]['version callback']($editors[$editor]);
+    }
+    if (empty($editors[$editor]['installed version'])) {
+      $editors[$editor]['error'] = t('The version of %editor could not be detected.', array('%editor' => $properties['title']));
+      $editors[$editor]['installed'] = FALSE;
+      continue;
+    }
+    // Determine to which supported version the installed version maps.
+    ksort($editors[$editor]['versions']);
+    $version = 0;
+    foreach ($editors[$editor]['versions'] as $supported_version => $version_properties) {
+      if (version_compare($editors[$editor]['installed version'], $supported_version, '>=')) {
+        $version = $supported_version;
+      }
+    }
+    if (!$version) {
+      $editors[$editor]['error'] = t('The installed version %version of %editor is not supported.', array('%version' => $editors[$editor]['installed version'], '%editor' => $editors[$editor]['title']));
+      $editors[$editor]['installed'] = FALSE;
+      continue;
+    }
+    // Apply library version specific definitions and overrides.
+    $editors[$editor] = array_merge($editors[$editor], $editors[$editor]['versions'][$version]);
+    unset($editors[$editor]['versions']);
+  }
+  return $editors;
+}
+
+/**
+ * Invoke hook_wysiwyg_plugin() in all modules.
+ */
+function wysiwyg_get_all_plugins() {
+  static $plugins;
+
+  if (isset($plugins)) {
+    return $plugins;
+  }
+
+  $plugins = wysiwyg_load_includes('plugins', 'plugin');
+  foreach ($plugins as $name => $properties) {
+    $plugin = &$plugins[$name];
+    // Fill in required/default properties.
+    $plugin += array(
+      'title' => $plugin['name'],
+      'vendor url' => '',
+      'js path' => $plugin['path'] . '/' . $plugin['name'],
+      'js file' => $plugin['name'] . '.js',
+      'css path' => $plugin['path'] . '/' . $plugin['name'],
+      'css file' => $plugin['name'] . '.css',
+      'icon path' => $plugin['path'] . '/' . $plugin['name'] . '/images',
+      'icon file' => $plugin['name'] . '.png',
+      'dialog path' => $plugin['name'],
+      'dialog settings' => array(),
+      'settings callback' => NULL,
+      'settings form callback' => NULL,
+    );
+    // Fill in default settings.
+    $plugin['settings'] += array(
+      'path' => base_path() . $plugin['path'] . '/' . $plugin['name'],
+    );
+    // Check whether library is present.
+    if (!($plugin['installed'] = file_exists($plugin['js path'] . '/' . $plugin['js file']))) {
+      continue;
+    }
+  }
+  return $plugins;
+}
+
+/**
+ * Load include files for wysiwyg implemented by all modules.
+ *
+ * @param $type
+ *   The type of includes to search for, can be 'editors'.
+ * @param $hook
+ *   The hook name to invoke.
+ * @param $file
+ *   An optional include file name without .inc extension to limit the search to.
+ *
+ * @see wysiwyg_get_directories(), _wysiwyg_process_include()
+ */
+function wysiwyg_load_includes($type = 'editors', $hook = 'editor', $file = NULL) {
+  // Determine implementations.
+  $directories = wysiwyg_get_directories($type);
+  $directories['wysiwyg'] = drupal_get_path('module', 'wysiwyg') . '/' . $type;
+  $file_list = array();
+  foreach ($directories as $module => $path) {
+    $file_list[$module] = drupal_system_listing("$file" . '.inc$', $path, 'name', 0);
+  }
+
+  // Load implementations.
+  $info = array();
+  foreach (array_filter($file_list) as $module => $files) {
+    foreach ($files as $file) {
+      include_once './' . $file->filename;
+      $result = _wysiwyg_process_include($module, $module . '_' . $file->name, dirname($file->filename), $hook);
+      if (is_array($result)) {
+        $info = array_merge($info, $result);
+      }
+    }
+  }
+  return $info;
+}
+
+/**
+ * Helper function to build paths to libraries.
+ *
+ * @param $library
+ *   The external library name to return the path for.
+ * @param $base_path
+ *   Whether to prefix the resulting path with base_path().
+ *
+ * @return
+ *   The path to the specified library.
+ *
+ * @ingroup libraries
+ */
+function wysiwyg_get_path($library, $base_path = FALSE) {
+  static $libraries;
+
+  if (!isset($libraries)) {
+    $libraries = wysiwyg_get_libraries();
+  }
+  if (!isset($libraries[$library])) {
+    // Most often, external libraries can be shared across multiple sites.
+    return 'sites/all/libraries/' . $library;
+  }
+
+  $path = ($base_path ? base_path() : '');
+  $path .= $libraries[$library];
+
+  return $path;
+}
+
+/**
+ * Return an array of library directories.
+ *
+ * Returns an array of library directories from the all-sites directory
+ * (i.e. sites/all/libraries/), the profiles directory, and site-specific
+ * directory (i.e. sites/somesite/libraries/). The returned array will be keyed
+ * by the library name. Site-specific libraries are prioritized over libraries
+ * in the default directories. That is, if a library with the same name appears
+ * in both the site-wide directory and site-specific directory, only the
+ * site-specific version will be listed.
+ *
+ * @return
+ *   A list of library directories.
+ *
+ * @ingroup libraries
+ */
+function wysiwyg_get_libraries() {
+  global $profile;
+
+  // When this function is called during Drupal's initial installation process,
+  // the name of the profile that is about to be installed is stored in the
+  // global $profile variable. At all other times, the regular system variable
+  // contains the name of the current profile, and we can call variable_get()
+  // to determine the profile.
+  if (!isset($profile)) {
+    $profile = variable_get('install_profile', 'default');
+  }
+
+  $directory = 'libraries';
+  $searchdir = array();
+  $config = conf_path();
+
+  // The 'profiles' directory contains pristine collections of modules and
+  // themes as organized by a distribution.  It is pristine in the same way
+  // that /modules is pristine for core; users should avoid changing anything
+  // there in favor of sites/all or sites/<domain> directories.
+  if (file_exists("profiles/$profile/$directory")) {
+    $searchdir[] = "profiles/$profile/$directory";
+  }
+
+  // Always search sites/all/*.
+  $searchdir[] = 'sites/all/' . $directory;
+
+  // Also search sites/<domain>/*.
+  if (file_exists("$config/$directory")) {
+    $searchdir[] = "$config/$directory";
+  }
+
+  // Retrieve list of directories.
+  // @todo Core: Allow to scan for directories.
+  $directories = array();
+  $nomask = array('CVS');
+  foreach ($searchdir as $dir) {
+    if (is_dir($dir) && $handle = opendir($dir)) {
+      while (FALSE !== ($file = readdir($handle))) {
+        if (!in_array($file, $nomask) && $file[0] != '.') {
+          if (is_dir("$dir/$file")) {
+            $directories[$file] = "$dir/$file";
+          }
+        }
+      }
+      closedir($handle);
+    }
+  }
+
+  return $directories;
+}
+
+/**
+ * Return a list of directories by modules implementing wysiwyg_include_directory().
+ *
+ * @param $plugintype
+ *   The type of a plugin; can be 'editors'.
+ *
+ * @return
+ *   An array containing module names suffixed with '_' and their defined
+ *   directory.
+ *
+ * @see wysiwyg_load_includes(), _wysiwyg_process_include()
+ */
+function wysiwyg_get_directories($plugintype) {
+  $directories = array();
+  foreach (module_implements('wysiwyg_include_directory') as $module) {
+    $result = module_invoke($module, 'wysiwyg_include_directory', $plugintype);
+    if (isset($result) && is_string($result)) {
+      $directories[$module] = drupal_get_path('module', $module) . '/' . $result;
+    }
+  }
+  return $directories;
+}
+
+/**
+ * Process a single hook implementation of a wysiwyg editor.
+ *
+ * @param $module
+ *   The module that owns the hook.
+ * @param $identifier
+ *   Either the module or 'wysiwyg_' . $file->name
+ * @param $hook
+ *   The name of the hook being invoked.
+ */
+function _wysiwyg_process_include($module, $identifier, $path, $hook) {
+  $function = $identifier . '_' . $hook;
+  if (!function_exists($function)) {
+    return NULL;
+  }
+  $result = $function();
+  if (!isset($result) || !is_array($result)) {
+    return NULL;
+  }
+
+  // Fill in defaults.
+  foreach ($result as $editor => $properties) {
+    $result[$editor]['module'] = $module;
+    $result[$editor]['name'] = $editor;
+    $result[$editor]['path'] = $path;
+  }
+  return $result;
+}
+
+/**
+ * @} End of "defgroup wysiwyg_api".
+ */
+
+/**
+ * @defgroup features_integration Features Integration
+ * @{
+ */
+
+/**
+ * Implementation of hook_features_api().
+ *
+ * Provide features integration only when ctools and exportables are
+ * installed.
+ */
+function wysiwyg_features_api() {
+  $return = array();
+  if (module_exists('exportables') && module_exists('ctools')) {
+    module_load_include('inc', 'features', 'includes/features.ctools');
+    $return = ctools_component_features_api('wysiwyg');
+  }
+  return $return;
+}
+
+/**
+ * Implementation of hook_features_export().
+ *
+ * Includes exportables as a dependency.
+ */
+function wysiwyg_features_export($data, &$export, $module_name = '') {
+
+  $return = ctools_component_features_export('wysiwyg', $data, $export, $module_name);
+  $export['dependencies']['exportables'] = 'exportables';
+
+  return $return;
+}
+
+/**
+ * @} End of "defgroup features_integration".
+ */
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.module.old b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.module.old
new file mode 100644
index 0000000..1e3f951
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg/wysiwyg.module.old
@@ -0,0 +1,1016 @@
+<?php
+
+/**
+ * @file
+ * Integrate client-side editors with Drupal.
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function wysiwyg_menu() {
+  $items['admin/settings/wysiwyg'] = array(
+    'title' => 'Wysiwyg profiles',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_overview'),
+    'description' => 'Configure client-side editors.',
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+  );
+  $items['admin/settings/wysiwyg/profile'] = array(
+    'title' => 'List',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+  );
+  $items['admin/settings/wysiwyg/profile/%wysiwyg_profile/edit'] = array(
+    'title' => 'Edit',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_form', 4),
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+    'tab_root' => 'admin/settings/wysiwyg/profile',
+    'tab_parent' => 'admin/settings/wysiwyg/profile/%wysiwyg_profile',
+    'type' => MENU_LOCAL_TASK,
+  );
+  $items['admin/settings/wysiwyg/profile/%wysiwyg_profile/delete'] = array(
+    'title' => 'Remove',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_delete_confirm', 4),
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+    'tab_root' => 'admin/settings/wysiwyg/profile',
+    'tab_parent' => 'admin/settings/wysiwyg/profile/%wysiwyg_profile',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 10,
+  );
+  $items['wysiwyg/%'] = array(
+    'page callback' => 'wysiwyg_dialog',
+    'page arguments' => array(1),
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+    'file' => 'wysiwyg.dialog.inc',
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ *
+ * @see drupal_common_theme(), common.inc
+ * @see template_preprocess_page(), theme.inc
+ */
+function wysiwyg_theme() {
+  return array(
+    'wysiwyg_profile_overview' => array(
+      'arguments' => array('form' => NULL),
+    ),
+    'wysiwyg_admin_button_table' => array(
+      'arguments' => array('form' => NULL),
+    ),
+    'wysiwyg_dialog_page' => array(
+      'arguments' => array('content' => NULL, 'show_messages' => TRUE),
+      'file' => 'wysiwyg.dialog.inc',
+      'template' => 'wysiwyg-dialog-page',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_help().
+ */
+function wysiwyg_help($path, $arg) {
+  switch ($path) {
+    case 'admin/settings/wysiwyg':
+      $output = '<p>' . t('A Wysiwyg profile is associated with an input format. A Wysiwyg profile defines which client-side editor is loaded with a particular input format, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions.') . '</p>';
+      return $output;
+  }
+}
+
+/**
+ * Implementation of hook_form_alter().
+ *
+ * Before Drupal 7, there is no way to easily identify form fields that are
+ * input format enabled. As a workaround, we assign a form #after_build
+ * processing callback that is executed on all forms after they have been
+ * completely built, so form elements are in their effective order
+ * and position already.
+ *
+ * @see wysiwyg_process_form()
+ */
+function wysiwyg_form_alter(&$form, &$form_state) {
+  $form['#after_build'][] = 'wysiwyg_process_form';
+  // Teaser splitter is unconditionally removed and NOT supported.
+  if (isset($form['body_field'])) {
+    unset($form['body_field']['teaser_js']);
+  }
+}
+
+/**
+ * Process a textarea for Wysiwyg Editor.
+ *
+ * This way, we can recurse into the form and search for certain, hard-coded
+ * elements that have been added by filter_form(). If an input format selector
+ * or input format guidelines element is found, we assume that the preceding
+ * element is the corresponding textarea and use it's #id for attaching
+ * client-side editors.
+ *
+ * @see wysiwyg_elements(), filter_form()
+ */
+function wysiwyg_process_form(&$form) {
+  // Iterate over element children; resetting array keys to access last index.
+  if ($children = array_values(element_children($form))) {
+    foreach ($children as $index => $item) {
+      $element = &$form[$item];
+
+      // filter_form() always uses the key 'format'. We need a type-agnostic
+      // match to prevent false positives. Also, there must have been at least
+      // one element on this level.
+      if (($item === 'format' || $item === 'signature_format') && $index > 0) {
+        // Make sure we either match a input format selector or input format
+        // guidelines (displayed if user has access to one input format only).
+        if ((isset($element['#type']) && $element['#type'] == 'fieldset') || isset($element['format']['guidelines'])) {
+          // The element before this element is the target form field.
+          $field = &$form[$children[$index - 1]];
+
+          // Allow modules to programmatically enforce no client-side editor by
+          // setting the #wysiwyg property to FALSE.
+          if (isset($field['#wysiwyg']) && !$field['#wysiwyg']) {
+            // A 'format' element should not have any child elements that may
+            // need processing, so it should be safe to skip the recursion that
+            // happens at the end of this function, and move on to the next
+            // element on the same level.
+            continue;
+          }
+
+          // If this textarea is #resizable and we will load at least one
+          // editor, then only load the behavior and let the 'none' editor
+          // attach/detach it to avoid hi-jacking the UI. Due to our CSS class
+          // parsing, we can add arbitrary parameters for each input format.
+          // The #resizable property will be removed below, if at least one
+          // profile has been loaded.
+          $extra_class = '';
+          if (!empty($field['#resizable'])) {
+            $extra_class = ' wysiwyg-resizable-1';
+            drupal_add_js('misc/textarea.js');
+          }
+
+          // Determine the available input formats. The last child element is a
+          // link to "More information about formatting options". When only one
+          // input format is displayed, we also have to remove formatting
+          // guidelines, stored in the child 'format'.
+          $formats = element_children($element);
+          array_pop($formats);
+          if (($key = array_search('format', $formats)) !== FALSE) {
+            unset($formats[$key]);
+          }
+          foreach ($formats as $format) {
+            // Default to 'none' editor (Drupal's default behaviors).
+            $editor = 'none';
+            $status = 1;
+            $toggle = 1;
+            // Fetch the profile associated to this input format.
+            $profile = wysiwyg_get_profile($format);
+            if ($profile) {
+              $loaded = TRUE;
+              $editor = $profile->editor;
+              $status = (int) wysiwyg_user_get_status($profile);
+              if (isset($profile->settings['show_toggle'])) {
+                $toggle = (int) $profile->settings['show_toggle'];
+              }
+              // Check editor theme (and reset it if not/no longer available).
+              $theme = wysiwyg_get_editor_themes($profile, (isset($profile->settings['theme']) ? $profile->settings['theme'] : ''));
+
+              // Add plugin settings (first) for this input format.
+              wysiwyg_add_plugin_settings($profile);
+              // Add profile settings for this input format.
+              wysiwyg_add_editor_settings($profile, $theme);
+            }
+
+            // Use a prefix/suffix for a single input format, or attach to input
+            // format selector radio buttons.
+            if (isset($element['format']['guidelines'])) {
+              $element['format']['guidelines']['#prefix'] = '<div class="wysiwyg wysiwyg-format-' . $format . ' wysiwyg-editor-' . $editor . ' wysiwyg-field-' . $field['#id'] . ' wysiwyg-status-' . $status . ' wysiwyg-toggle-' . $toggle . $extra_class . '">';
+              $element['format']['guidelines']['#suffix'] = '</div>';
+              // Edge-case: Default format contains no input filters.
+              if (empty($element['format']['guidelines']['#value'])) {
+                $element['format']['guidelines']['#value'] = ' ';
+              }
+            }
+            else {
+              $element[$format]['#attributes']['class'] = (isset($element[$format]['#attributes']['class']) ? $element[$format]['#attributes']['class'] . ' ' : '');
+              $element[$format]['#attributes']['class'] .= 'wysiwyg wysiwyg-format-' . $format . ' wysiwyg-editor-' . $editor . ' wysiwyg-field-' . $field['#id'] . ' wysiwyg-status-' . $status . ' wysiwyg-toggle-' . $toggle . $extra_class;
+            }
+          }
+
+          // If we loaded at least one editor, then the 'none' editor will
+          // handle resizable textareas instead of core.
+          if (isset($loaded) && !empty($field['#resizable'])) {
+            $field['#resizable'] = FALSE;
+          }
+        }
+        // If this element is 'format', do not recurse further.
+        continue;
+      }
+      // Recurse into children.
+      wysiwyg_process_form($element);
+    }
+  }
+  return $form;
+}
+
+/**
+ * Determine the profile to use for a given input format id.
+ *
+ * This function also performs sanity checks for the configured editor in a
+ * profile to ensure that we do not load a malformed editor.
+ *
+ * @param $format
+ *   The internal id of an input format.
+ *
+ * @return
+ *   A wysiwyg profile.
+ *
+ * @see wysiwyg_load_editor(), wysiwyg_get_editor()
+ */
+function wysiwyg_get_profile($format) {
+  if ($profile = wysiwyg_profile_load($format)) {
+    if (wysiwyg_load_editor($profile)) {
+      return $profile;
+    }
+  }
+  return FALSE;
+}
+
+/**
+ * Load an editor library and initialize basic Wysiwyg settings.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   TRUE if the editor has been loaded, FALSE if not.
+ *
+ * @see wysiwyg_get_profile()
+ */
+function wysiwyg_load_editor($profile) {
+  static $settings_added;
+  static $loaded = array();
+
+  $name = $profile->editor;
+  // Library files must be loaded only once.
+  if (!isset($loaded[$name])) {
+    // Load editor.
+    $editor = wysiwyg_get_editor($name);
+    if ($editor) {
+      // Determine library files to load.
+      // @todo Allow to configure the library/execMode to use.
+      if (isset($profile->settings['library']) && isset($editor['libraries'][$profile->settings['library']])) {
+        $library = $profile->settings['library'];
+        $files = $editor['libraries'][$library]['files'];
+      }
+      else {
+        // Fallback to the first defined library by default (external libraries can change).
+        $library = key($editor['libraries']);
+        $files = array_shift($editor['libraries']);
+        $files = $files['files'];
+      }
+      foreach ($files as $file => $options) {
+        if (is_array($options)) {
+          $options += array('type' => 'module', 'scope' => 'header', 'defer' => FALSE, 'cache' => TRUE, 'preprocess' => TRUE);
+          drupal_add_js($editor['library path'] . '/' . $file, $options['type'], $options['scope'], $options['defer'], $options['cache'], $options['preprocess']);
+        }
+        else {
+          drupal_add_js($editor['library path'] . '/' . $options);
+        }
+      }
+      // If editor defines an additional load callback, invoke it.
+      // @todo Isn't the settings callback sufficient?
+      if (isset($editor['load callback']) && function_exists($editor['load callback'])) {
+        $editor['load callback']($editor, $library);
+      }
+      // Load JavaScript integration files for this editor.
+      $files = array();
+      if (isset($editor['js files'])) {
+        $files = $editor['js files'];
+      }
+      foreach ($files as $file) {
+        drupal_add_js($editor['js path'] . '/' . $file);
+      }
+      // Load CSS stylesheets for this editor.
+      $files = array();
+      if (isset($editor['css files'])) {
+        $files = $editor['css files'];
+      }
+      foreach ($files as $file) {
+        drupal_add_css($editor['css path'] . '/' . $file);
+      }
+
+      drupal_add_js(array('wysiwyg' => array(
+        'configs' => array($editor['name'] => array('global' => array(
+          // @todo Move into (global) editor settings.
+          // If JS compression is enabled, at least TinyMCE is unable to determine
+          // its own base path and exec mode since it can't find the script name.
+          'editorBasePath' => base_path() . $editor['library path'],
+          'execMode' => $library,
+        ))),
+      )), 'setting');
+
+      $loaded[$name] = TRUE;
+    }
+    else {
+      $loaded[$name] = FALSE;
+    }
+  }
+
+  // Add basic Wysiwyg settings if any editor has been added.
+  if (!isset($settings_added) && $loaded[$name]) {
+    drupal_add_js(array('wysiwyg' => array(
+      'configs' => array(),
+      'plugins' => array(),
+      'disable' => t('Disable rich-text'),
+      'enable' => t('Enable rich-text'),
+    )), 'setting');
+
+    $path = drupal_get_path('module', 'wysiwyg');
+    // Initialize our namespaces in the *header* to do not force editor
+    // integration scripts to check and define Drupal.wysiwyg on its own.
+    drupal_add_js($path . '/wysiwyg.init.js', 'core');
+
+    // The 'none' editor is a special editor implementation, allowing us to
+    // attach and detach regular Drupal behaviors just like any other editor.
+    drupal_add_js($path . '/editors/js/none.js');
+
+    // Add wysiwyg.js to the footer to ensure it's executed after the
+    // Drupal.settings array has been rendered and populated. Also, since editor
+    // library initialization functions must be loaded first by the browser,
+    // and Drupal.wysiwygInit() must be executed AFTER editors registered
+    // their callbacks and BEFORE Drupal.behaviors are applied, this must come
+    // last.
+    drupal_add_js($path . '/wysiwyg.js', 'module', 'footer');
+
+    $settings_added = TRUE;
+  }
+
+  return $loaded[$name];
+}
+
+/**
+ * Add editor settings for a given input format.
+ */
+function wysiwyg_add_editor_settings($profile, $theme) {
+  static $formats = array();
+
+  if (!isset($formats[$profile->format])) {
+    $config = wysiwyg_get_editor_config($profile, $theme);
+    // drupal_to_js() does not properly convert numeric array keys, so we need
+    // to use a string instead of the format id.
+    if ($config) {
+      drupal_add_js(array('wysiwyg' => array('configs' => array($profile->editor => array('format' . $profile->format => $config)))), 'setting');
+    }
+    $formats[$profile->format] = TRUE;
+  }
+}
+
+/**
+ * Add settings for external plugins.
+ *
+ * Plugins can be used in multiple profiles, but not necessarily in all. Because
+ * of that, we need to process plugins for each profile, even if most of their
+ * settings are not stored per profile.
+ *
+ * Implementations of hook_wysiwyg_plugin() may execute different code for each
+ * editor. Therefore, we have to invoke those implementations for each editor,
+ * but process the resulting plugins separately for each profile.
+ *
+ * Drupal plugins differ to native plugins in that they have plugin-specific
+ * definitions and settings, which need to be processed only once. But they are
+ * also passed to the editor to prepare settings specific to the editor.
+ * Therefore, we load and process the Drupal plugins only once, and hand off the
+ * effective definitions for each profile to the editor.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @todo Rewrite wysiwyg_process_form() to build a registry of effective
+ *   profiles in use, so we can process plugins in multiple profiles in one shot
+ *   and simplify this entire function.
+ */
+function wysiwyg_add_plugin_settings($profile) {
+  static $plugins = array();
+  static $processed_plugins = array();
+  static $processed_formats = array();
+
+  // Each input format must only processed once.
+  // @todo ...as long as we do not have multiple profiles per format.
+  if (isset($processed_formats[$profile->format])) {
+    return;
+  }
+  $processed_formats[$profile->format] = TRUE;
+
+  $editor = wysiwyg_get_editor($profile->editor);
+
+  // Collect native plugins for this editor provided via hook_wysiwyg_plugin()
+  // and Drupal plugins provided via hook_wysiwyg_include_directory().
+  if (!array_key_exists($editor['name'], $plugins)) {
+    $plugins[$editor['name']] = wysiwyg_get_plugins($editor['name']);
+  }
+
+  // Nothing to do, if there are no plugins.
+  if (empty($plugins[$editor['name']])) {
+    return;
+  }
+
+  // Determine name of proxy plugin for Drupal plugins.
+  $proxy = (isset($editor['proxy plugin']) ? key($editor['proxy plugin']) : '');
+
+  // Process native editor plugins.
+  if (isset($editor['plugin settings callback'])) {
+    // @todo Require PHP 5.1 in 3.x and use array_intersect_key().
+    $profile_plugins_native = array();
+    foreach ($plugins[$editor['name']] as $plugin => $meta) {
+      // Skip Drupal plugins (handled below).
+      if ($plugin === $proxy) {
+        continue;
+      }
+      // Only keep native plugins that are enabled in this profile.
+      if (isset($profile->settings['buttons'][$plugin])) {
+        $profile_plugins_native[$plugin] = $meta;
+      }
+    }
+    // Invoke the editor's plugin settings callback, so it can populate the
+    // settings for native external plugins with required values.
+    $settings_native = call_user_func($editor['plugin settings callback'], $editor, $profile, $profile_plugins_native);
+
+    if ($settings_native) {
+      drupal_add_js(array('wysiwyg' => array('plugins' => array('format' . $profile->format => array('native' => $settings_native)))), 'setting');
+    }
+  }
+
+  // Process Drupal plugins.
+  if ($proxy && isset($editor['proxy plugin settings callback'])) {
+    $profile_plugins_drupal = array();
+    foreach (wysiwyg_get_all_plugins() as $plugin => $meta) {
+      if (isset($profile->settings['buttons'][$proxy][$plugin])) {
+        // JavaScript and plugin-specific settings for Drupal plugins must be
+        // loaded and processed only once. Plugin information is cached
+        // statically to pass it to the editor's proxy plugin settings callback.
+        if (!isset($processed_plugins[$proxy][$plugin])) {
+          $profile_plugins_drupal[$plugin] = $processed_plugins[$proxy][$plugin] = $meta;
+          // Load the Drupal plugin's JavaScript.
+          drupal_add_js($meta['js path'] . '/' . $meta['js file']);
+          // Add plugin-specific settings.
+          if (isset($meta['settings'])) {
+            drupal_add_js(array('wysiwyg' => array('plugins' => array('drupal' => array($plugin => $meta['settings'])))), 'setting');
+          }
+        }
+        else {
+          $profile_plugins_drupal[$plugin] = $processed_plugins[$proxy][$plugin];
+        }
+      }
+    }
+    // Invoke the editor's proxy plugin settings callback, so it can populate
+    // the settings for Drupal plugins with custom, required values.
+    $settings_drupal = call_user_func($editor['proxy plugin settings callback'], $editor, $profile, $profile_plugins_drupal);
+
+    if ($settings_drupal) {
+      drupal_add_js(array('wysiwyg' => array('plugins' => array('format' . $profile->format => array('drupal' => $settings_drupal)))), 'setting');
+    }
+  }
+}
+
+/**
+ * Retrieve available themes for an editor.
+ *
+ * Editor themes control the visual presentation of an editor.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile; passed/altered by reference.
+ * @param $selected_theme
+ *   An optional theme name that ought to be used.
+ *
+ * @return
+ *   An array of theme names, or a single, checked theme name if $selected_theme
+ *   was given.
+ */
+function wysiwyg_get_editor_themes(&$profile, $selected_theme = NULL) {
+  static $themes = array();
+
+  if (!isset($themes[$profile->editor])) {
+    $editor = wysiwyg_get_editor($profile->editor);
+    if (isset($editor['themes callback']) && function_exists($editor['themes callback'])) {
+      $themes[$editor['name']] = $editor['themes callback']($editor, $profile);
+    }
+    // Fallback to 'default' otherwise.
+    else {
+      $themes[$editor['name']] = array('default');
+    }
+  }
+
+  // Check optional $selected_theme argument, if given.
+  if (isset($selected_theme)) {
+    // If the passed theme name does not exist, use the first available.
+    if (!in_array($selected_theme, $themes[$profile->editor])) {
+      $selected_theme = $profile->settings['theme'] = $themes[$profile->editor][0];
+    }
+  }
+
+  return isset($selected_theme) ? $selected_theme : $themes[$profile->editor];
+}
+
+/**
+ * Return plugin metadata from the plugin registry.
+ *
+ * @param $editor_name
+ *   The internal name of an editor to return plugins for.
+ *
+ * @return
+ *   An array for each plugin.
+ */
+function wysiwyg_get_plugins($editor_name) {
+  $plugins = array();
+  if (!empty($editor_name)) {
+    $editor = wysiwyg_get_editor($editor_name);
+    // Add internal editor plugins.
+    if (isset($editor['plugin callback']) && function_exists($editor['plugin callback'])) {
+      $plugins = $editor['plugin callback']($editor);
+    }
+    // Add editor plugins provided via hook_wysiwyg_plugin().
+    $plugins = array_merge($plugins, module_invoke_all('wysiwyg_plugin', $editor['name'], $editor['installed version']));
+    // Add API plugins provided by Drupal modules.
+    // @todo We need to pass the filepath to the plugin icon for Drupal plugins.
+    if (isset($editor['proxy plugin'])) {
+      $plugins += $editor['proxy plugin'];
+      $proxy = key($editor['proxy plugin']);
+      foreach (wysiwyg_get_all_plugins() as $plugin_name => $info) {
+        $plugins[$proxy]['buttons'][$plugin_name] = $info['title'];
+      }
+    }
+  }
+  return $plugins;
+}
+
+/**
+ * Return an array of initial editor settings for a Wysiwyg profile.
+ */
+function wysiwyg_get_editor_config($profile, $theme) {
+  $editor = wysiwyg_get_editor($profile->editor);
+  $settings = array();
+  if (!empty($editor['settings callback']) && function_exists($editor['settings callback'])) {
+    $settings = $editor['settings callback']($editor, $profile->settings, $theme);
+
+    // Allow other modules to alter the editor settings for this format.
+    $context = array('editor' => $editor, 'profile' => $profile, 'theme' => $theme);
+    drupal_alter('wysiwyg_editor_settings', $settings, $context);
+  }
+  return $settings;
+}
+
+/**
+ * Retrieve stylesheets for HTML/IFRAME-based editors.
+ *
+ * This assumes that the content editing area only needs stylesheets defined
+ * for the scope 'theme'.
+ *
+ * @return
+ *   An array containing CSS files, including proper base path.
+ */
+function wysiwyg_get_css() {
+  static $files;
+
+  if (isset($files)) {
+    return $files;
+  }
+  // In node form previews, the theme has not been initialized yet.
+  if (!empty($_POST)) {
+    init_theme();
+  }
+
+  $files = array();
+  foreach (drupal_add_css() as $media => $css) {
+    if ($media != 'print') {
+      foreach ($css['theme'] as $filepath => $preprocess) {
+        if (file_exists($filepath)) {
+          $files[] = base_path() . $filepath;
+        }
+      }
+    }
+  }
+  return $files;
+}
+
+/**
+ * Load profile for a given input format.
+ */
+function wysiwyg_profile_load($format) {
+  static $profiles;
+
+  if (!isset($profiles) || !array_key_exists($format, $profiles)) {
+    $result = db_query('SELECT format, editor, settings FROM {wysiwyg} WHERE format = %d', $format);
+    while ($profile = db_fetch_object($result)) {
+      $profile->settings = unserialize($profile->settings);
+      $profiles[$profile->format] = $profile;
+    }
+  }
+
+  return (isset($profiles[$format]) ? $profiles[$format] : FALSE);
+}
+
+/**
+ * Load all profiles.
+ */
+function wysiwyg_profile_load_all() {
+  static $profiles;
+
+  if (!isset($profiles)) {
+    $profiles = array();
+    $result = db_query('SELECT format, editor, settings FROM {wysiwyg}');
+    while ($profile = db_fetch_object($result)) {
+      $profile->settings = unserialize($profile->settings);
+      $profiles[$profile->format] = $profile;
+    }
+  }
+
+  return $profiles;
+}
+
+/**
+ * Implementation of hook_user().
+ */
+function wysiwyg_user($op, &$edit, $account, $category = NULL) {
+  if ($op == 'form' && $category == 'account') {
+    $user_formats = filter_formats();
+    $options = array();
+    $options_default = array();
+    foreach (wysiwyg_profile_load_all() as $format => $profile) {
+      // Only show profiles that have user_choose enabled.
+      if (!empty($profile->settings['user_choose']) && isset($user_formats[$format])) {
+        $options[$format] = check_plain($user_formats[$format]->name);
+        if (wysiwyg_user_get_status($profile, $account)) {
+          $options_default[] = $format;
+        }
+      }
+    }
+    if (!empty($options)) {
+      $form['wysiwyg']['wysiwyg_status'] = array(
+        '#type' => 'checkboxes',
+        '#title' => t('Text formats enabled for rich-text editing'),
+        '#options' => $options,
+        '#default_value' => $options_default,
+      );
+      return $form;
+    }
+  }
+  elseif ($op == 'insert' || $op == 'update') {
+    if (isset($edit['wysiwyg_status'])) {
+      db_query("DELETE FROM {wysiwyg_user} WHERE uid = %d", $account->uid);
+      foreach ($edit['wysiwyg_status'] as $format => $status) {
+        db_query("INSERT INTO {wysiwyg_user} (uid, format, status) VALUES (%d, %d, %d)", array(
+          $account->uid,
+          $format,
+          (int) (bool) $status,
+        ));
+      }
+    }
+  }
+}
+
+function wysiwyg_user_get_status($profile, $account = NULL) {
+  global $user;
+
+  if (!isset($account)) {
+    $account = $user;
+  }
+
+  // Default wysiwyg editor status information is only required on forms, so we
+  // do not pre-emptively load and attach this information on every user_load().
+  if (!isset($account->wysiwyg_status)) {
+    $account->wysiwyg_status = array();
+    $result = db_query("SELECT format, status FROM {wysiwyg_user} WHERE uid = %d", $account->uid);
+    while ($row = db_fetch_object($result)) {
+      $account->wysiwyg_status[$row->format] = $row->status;
+    }
+  }
+
+  if (!empty($profile->settings['user_choose']) && isset($account->wysiwyg_status[$profile->format])) {
+    $status = $account->wysiwyg_status[$profile->format];
+  }
+  else {
+    $status = isset($profile->settings['default']) ? $profile->settings['default'] : TRUE;
+  }
+
+  return (bool) $status;
+}
+
+/**
+ * @defgroup wysiwyg_api Wysiwyg API
+ * @{
+ *
+ * @todo Forked from Panels; abstract into a separate API module that allows
+ *   contrib modules to define supported include/plugin types.
+ */
+
+/**
+ * Return library information for a given editor.
+ *
+ * @param $name
+ *   The internal name of an editor.
+ *
+ * @return
+ *   The library information for the editor, or FALSE if $name is unknown or not
+ *   installed properly.
+ */
+function wysiwyg_get_editor($name) {
+  $editors = wysiwyg_get_all_editors();
+  return isset($editors[$name]) && $editors[$name]['installed'] ? $editors[$name] : FALSE;
+}
+
+/**
+ * Compile a list holding all supported editors including installed editor version information.
+ */
+function wysiwyg_get_all_editors() {
+  static $editors;
+
+  if (isset($editors)) {
+    return $editors;
+  }
+
+  $editors = wysiwyg_load_includes('editors', 'editor');
+  foreach ($editors as $editor => $properties) {
+    // Fill in required properties.
+    $editors[$editor] += array(
+      'title' => '',
+      'vendor url' => '',
+      'download url' => '',
+      'editor path' => wysiwyg_get_path($editors[$editor]['name']),
+      'library path' => wysiwyg_get_path($editors[$editor]['name']),
+      'libraries' => array(),
+      'version callback' => NULL,
+      'themes callback' => NULL,
+      'settings callback' => NULL,
+      'plugin callback' => NULL,
+      'plugin settings callback' => NULL,
+      'versions' => array(),
+      'js path' => $editors[$editor]['path'] . '/js',
+      'css path' => $editors[$editor]['path'] . '/css',
+    );
+    // Check whether library is present.
+    if (!($editors[$editor]['installed'] = file_exists($editors[$editor]['library path']))) {
+      continue;
+    }
+    // Detect library version.
+    if (function_exists($editors[$editor]['version callback'])) {
+      $editors[$editor]['installed version'] = $editors[$editor]['version callback']($editors[$editor]);
+    }
+    if (empty($editors[$editor]['installed version'])) {
+      $editors[$editor]['error'] = t('The version of %editor could not be detected.', array('%editor' => $properties['title']));
+      $editors[$editor]['installed'] = FALSE;
+      continue;
+    }
+    // Determine to which supported version the installed version maps.
+    ksort($editors[$editor]['versions']);
+    $version = 0;
+    foreach ($editors[$editor]['versions'] as $supported_version => $version_properties) {
+      if (version_compare($editors[$editor]['installed version'], $supported_version, '>=')) {
+        $version = $supported_version;
+      }
+    }
+    if (!$version) {
+      $editors[$editor]['error'] = t('The installed version %version of %editor is not supported.', array('%version' => $editors[$editor]['installed version'], '%editor' => $editors[$editor]['title']));
+      $editors[$editor]['installed'] = FALSE;
+      continue;
+    }
+    // Apply library version specific definitions and overrides.
+    $editors[$editor] = array_merge($editors[$editor], $editors[$editor]['versions'][$version]);
+    unset($editors[$editor]['versions']);
+  }
+  return $editors;
+}
+
+/**
+ * Invoke hook_wysiwyg_plugin() in all modules.
+ */
+function wysiwyg_get_all_plugins() {
+  static $plugins;
+
+  if (isset($plugins)) {
+    return $plugins;
+  }
+
+  $plugins = wysiwyg_load_includes('plugins', 'plugin');
+  foreach ($plugins as $name => $properties) {
+    $plugin = &$plugins[$name];
+    // Fill in required/default properties.
+    $plugin += array(
+      'title' => $plugin['name'],
+      'vendor url' => '',
+      'js path' => $plugin['path'] . '/' . $plugin['name'],
+      'js file' => $plugin['name'] . '.js',
+      'css path' => $plugin['path'] . '/' . $plugin['name'],
+      'css file' => $plugin['name'] . '.css',
+      'icon path' => $plugin['path'] . '/' . $plugin['name'] . '/images',
+      'icon file' => $plugin['name'] . '.png',
+      'dialog path' => $plugin['name'],
+      'dialog settings' => array(),
+      'settings callback' => NULL,
+      'settings form callback' => NULL,
+    );
+    // Fill in default settings.
+    $plugin['settings'] += array(
+      'path' => base_path() . $plugin['path'] . '/' . $plugin['name'],
+    );
+    // Check whether library is present.
+    if (!($plugin['installed'] = file_exists($plugin['js path'] . '/' . $plugin['js file']))) {
+      continue;
+    }
+  }
+  return $plugins;
+}
+
+/**
+ * Load include files for wysiwyg implemented by all modules.
+ *
+ * @param $type
+ *   The type of includes to search for, can be 'editors'.
+ * @param $hook
+ *   The hook name to invoke.
+ * @param $file
+ *   An optional include file name without .inc extension to limit the search to.
+ *
+ * @see wysiwyg_get_directories(), _wysiwyg_process_include()
+ */
+function wysiwyg_load_includes($type = 'editors', $hook = 'editor', $file = NULL) {
+  // Determine implementations.
+  $directories = wysiwyg_get_directories($type);
+  $directories['wysiwyg'] = drupal_get_path('module', 'wysiwyg') . '/' . $type;
+  $file_list = array();
+  foreach ($directories as $module => $path) {
+    $file_list[$module] = drupal_system_listing("$file" . '.inc$', $path, 'name', 0);
+  }
+
+  // Load implementations.
+  $info = array();
+  foreach (array_filter($file_list) as $module => $files) {
+    foreach ($files as $file) {
+      include_once './' . $file->filename;
+      $result = _wysiwyg_process_include($module, $module . '_' . $file->name, dirname($file->filename), $hook);
+      if (is_array($result)) {
+        $info = array_merge($info, $result);
+      }
+    }
+  }
+  return $info;
+}
+
+/**
+ * Helper function to build paths to libraries.
+ *
+ * @param $library
+ *   The external library name to return the path for.
+ * @param $base_path
+ *   Whether to prefix the resulting path with base_path().
+ *
+ * @return
+ *   The path to the specified library.
+ *
+ * @ingroup libraries
+ */
+function wysiwyg_get_path($library, $base_path = FALSE) {
+  static $libraries;
+
+  if (!isset($libraries)) {
+    $libraries = wysiwyg_get_libraries();
+  }
+  if (!isset($libraries[$library])) {
+    // Most often, external libraries can be shared across multiple sites.
+    return 'sites/all/libraries/' . $library;
+  }
+
+  $path = ($base_path ? base_path() : '');
+  $path .= $libraries[$library];
+
+  return $path;
+}
+
+/**
+ * Return an array of library directories.
+ *
+ * Returns an array of library directories from the all-sites directory
+ * (i.e. sites/all/libraries/), the profiles directory, and site-specific
+ * directory (i.e. sites/somesite/libraries/). The returned array will be keyed
+ * by the library name. Site-specific libraries are prioritized over libraries
+ * in the default directories. That is, if a library with the same name appears
+ * in both the site-wide directory and site-specific directory, only the
+ * site-specific version will be listed.
+ *
+ * @return
+ *   A list of library directories.
+ *
+ * @ingroup libraries
+ */
+function wysiwyg_get_libraries() {
+  global $profile;
+
+  // When this function is called during Drupal's initial installation process,
+  // the name of the profile that is about to be installed is stored in the
+  // global $profile variable. At all other times, the regular system variable
+  // contains the name of the current profile, and we can call variable_get()
+  // to determine the profile.
+  if (!isset($profile)) {
+    $profile = variable_get('install_profile', 'default');
+  }
+
+  $directory = 'libraries';
+  $searchdir = array();
+  $config = conf_path();
+
+  // The 'profiles' directory contains pristine collections of modules and
+  // themes as organized by a distribution.  It is pristine in the same way
+  // that /modules is pristine for core; users should avoid changing anything
+  // there in favor of sites/all or sites/<domain> directories.
+  if (file_exists("profiles/$profile/$directory")) {
+    $searchdir[] = "profiles/$profile/$directory";
+  }
+
+  // Always search sites/all/*.
+  $searchdir[] = 'sites/all/' . $directory;
+
+  // Also search sites/<domain>/*.
+  if (file_exists("$config/$directory")) {
+    $searchdir[] = "$config/$directory";
+  }
+
+  // Retrieve list of directories.
+  // @todo Core: Allow to scan for directories.
+  $directories = array();
+  $nomask = array('CVS');
+  foreach ($searchdir as $dir) {
+    if (is_dir($dir) && $handle = opendir($dir)) {
+      while (FALSE !== ($file = readdir($handle))) {
+        if (!in_array($file, $nomask) && $file[0] != '.') {
+          if (is_dir("$dir/$file")) {
+            $directories[$file] = "$dir/$file";
+          }
+        }
+      }
+      closedir($handle);
+    }
+  }
+
+  return $directories;
+}
+
+/**
+ * Return a list of directories by modules implementing wysiwyg_include_directory().
+ *
+ * @param $plugintype
+ *   The type of a plugin; can be 'editors'.
+ *
+ * @return
+ *   An array containing module names suffixed with '_' and their defined
+ *   directory.
+ *
+ * @see wysiwyg_load_includes(), _wysiwyg_process_include()
+ */
+function wysiwyg_get_directories($plugintype) {
+  $directories = array();
+  foreach (module_implements('wysiwyg_include_directory') as $module) {
+    $result = module_invoke($module, 'wysiwyg_include_directory', $plugintype);
+    if (isset($result) && is_string($result)) {
+      $directories[$module] = drupal_get_path('module', $module) . '/' . $result;
+    }
+  }
+  return $directories;
+}
+
+/**
+ * Process a single hook implementation of a wysiwyg editor.
+ *
+ * @param $module
+ *   The module that owns the hook.
+ * @param $identifier
+ *   Either the module or 'wysiwyg_' . $file->name
+ * @param $hook
+ *   The name of the hook being invoked.
+ */
+function _wysiwyg_process_include($module, $identifier, $path, $hook) {
+  $function = $identifier . '_' . $hook;
+  if (!function_exists($function)) {
+    return NULL;
+  }
+  $result = $function();
+  if (!isset($result) || !is_array($result)) {
+    return NULL;
+  }
+
+  // Fill in defaults.
+  foreach ($result as $editor => $properties) {
+    $result[$editor]['module'] = $module;
+    $result[$editor]['name'] = $editor;
+    $result[$editor]['path'] = $path;
+  }
+  return $result;
+}
+
+/**
+ * @} End of "defgroup wysiwyg_api".
+ */
+
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg_tweaks/wysiwyg_tweaks.info b/drupal/sites/default/boinc/modules/contrib/wysiwyg_tweaks/wysiwyg_tweaks.info
new file mode 100644
index 0000000..e93847c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg_tweaks/wysiwyg_tweaks.info
@@ -0,0 +1,4 @@
+name = Wysiwyg tweaks
+description = Add custom tweaks to Wysiwyg
+core = 6.x
+dependencies[] = wysiwyg
diff --git a/drupal/sites/default/boinc/modules/contrib/wysiwyg_tweaks/wysiwyg_tweaks.module b/drupal/sites/default/boinc/modules/contrib/wysiwyg_tweaks/wysiwyg_tweaks.module
new file mode 100644
index 0000000..7878891
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/contrib/wysiwyg_tweaks/wysiwyg_tweaks.module
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * @file
+ * Add custom tweaks to the Wysiwyg module
+ */
+
+/**
+ * Implementation of hook_wysiwyg_editor_settings_alter().
+ */
+function wysiwyg_tweaks_wysiwyg_editor_settings_alter(&$settings, $context) {
+  if ($context['profile']->editor == 'tinymce') {
+    $settings['browser_spellcheck'] = TRUE;
+    $settings['gecko_spellcheck'] = TRUE;
+    // Any init setting taking a string, boolean, number, or an array/object
+    // holding those types can be overridden/forced here.
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/flag_comment_notify/flag_comment_notify.info b/drupal/sites/default/boinc/modules/flag_comment_notify/flag_comment_notify.info
new file mode 100644
index 0000000..02da758
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/flag_comment_notify/flag_comment_notify.info
@@ -0,0 +1,10 @@
+; $Id$
+name = Flag Comment Notify
+description = Notify users of comments on flagged content
+core = 6.x
+package = Flags
+dependencies[] = comment
+dependencies[] = drupal_queue
+dependencies[] = flag
+dependencies[] = node
+dependencies[] = user
diff --git a/drupal/sites/default/boinc/modules/flag_comment_notify/flag_comment_notify.module b/drupal/sites/default/boinc/modules/flag_comment_notify/flag_comment_notify.module
new file mode 100644
index 0000000..8fb2f88
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/flag_comment_notify/flag_comment_notify.module
@@ -0,0 +1,100 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provides notifications when comments are posted to flagged content
+ *
+ * The flag module does not provide a mechanism for notifying users when nodes
+ * that they have flagged have new comments. Drupal does provide a hook for
+ * comments, so this module provides the missing functionality.
+ */
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Includes that provide supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+// ...
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Hooks into core modules
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+ 
+/**
+ * Implementation of hook_comment(); 
+ */
+function flag_comment_notify_comment(&$a1, $op) {
+  switch ($op) {
+  case 'insert':
+    module_load_include('inc', 'drupal_queue', 'drupal_queue');
+    $queue = DrupalQueue::get('flag_comment_notify');
+    $subscribed_users = array_keys((array) flag_get_content_flags('node', $a1['nid'], 'subscriptions'));
+    foreach ($subscribed_users as $uid) {
+      $queue->createItem(array('uid' => $uid, 'cid' => (int) $a1['cid']));
+    }
+    break;
+  default:
+  }
+}
+
+/**
+ * Implementation of hook_cron_queue_info()
+ */
+function flag_comment_notify_cron_queue_info() {
+  $queues = array();
+  $queues['flag_comment_notify'] = array(
+    'worker callback' => 'flag_comment_notify_send_notification',
+    'time' => 60,
+  );
+  return $queues;
+}
+
+
+/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
+ * Supporting functions
+ *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
+
+function flag_comment_notify_send_notification($data) {
+  $account = user_load($data['uid']);
+  $comment = _comment_load($data['cid']);
+  $node = node_load($comment->nid);
+  $author = user_load($comment->uid);
+  if ($account->mail AND $node->nid) {
+    // Don't send notifications to the author of the comment
+    if ($account->uid != $author->uid) {
+      $params['account'] = $account;
+      $params['comment'] = $comment;
+      $params['node'] = $node;
+      $params['author'] = $author;
+      drupal_mail('flag_comment_notify', 'comment_posted', $account->mail,
+        user_preferred_language($account), $params);
+    }
+  }
+}
+
+
+function flag_comment_notify_mail($key, &$message, $params) {
+  $language = $message['language'];
+  $variables = user_mail_tokens($params['account'], $language);
+  $variables['!comment_url'] = url(
+    "goto/comment/{$params['comment']->cid}",
+    array(
+      'absolute' => TRUE,
+    )
+  );
+  $variables['!topic_name'] = $params['node']->title;
+  $variables['!author'] = $params['author']->name;
+  switch($key) {
+  case 'comment_posted':
+    $message['subject'] = bts('!site: comment posted to "!topic_name"', $variables,
+      $language->language, 'boinc:forum-topic-subscription-email-notification');
+    $message['body'][] = bts('!author has posted a reply to "!topic_name".',
+      $variables, $language->language, 'boinc:forum-topic-subscription-email-notification');
+    $message['body'][] = bts("To view this topic at !site, click here: \n!comment_url",
+      $variables, $language->language, 'boinc:forum-topic-subscription-email-notification');
+    break;
+  default:
+  }
+}
diff --git a/drupal/sites/default/boinc/modules/node_comment_block/LICENSE.txt b/drupal/sites/default/boinc/modules/node_comment_block/LICENSE.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/node_comment_block/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drupal/sites/default/boinc/modules/node_comment_block/README.txt b/drupal/sites/default/boinc/modules/node_comment_block/README.txt
new file mode 100644
index 0000000..7e3a5cb
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/node_comment_block/README.txt
@@ -0,0 +1,28 @@
+
+CONTENTS OF THIS FILE
+---------------------
+
+ * About this module
+ * Usage
+
+ABOUT THIS MODULE
+-----------------
+
+Current maintainer: Oliver Davies (http://drupal.org/user/381388).
+
+This module moves any node comments from within the node variables and into a
+block - allowit it to be placed within any region in your page, or place blocks
+between the end of the main content and the comments.
+
+USAGE
+-----
+
+ * Download and enable the module.
+ * Go to admin/structure/blocks and place the 'Node comments' block into a
+   region.
+ * Optionally, configure it to only display on certain content types,
+   for certain roles etc., depending on your requirements.
+
+With the block placed in a region, it loads any node on which it is placed. If
+comments are enabled on the node, and comments are found, they are removed from
+the usual node variables and placed into the block.
diff --git a/drupal/sites/default/boinc/modules/node_comment_block/node-comment-block.css b/drupal/sites/default/boinc/modules/node_comment_block/node-comment-block.css
new file mode 100644
index 0000000..b0d672c
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/node_comment_block/node-comment-block.css
@@ -0,0 +1,3 @@
+#block-node-comment-block-node-comments #comments {
+  margin-top: 0;
+}
diff --git a/drupal/sites/default/boinc/modules/node_comment_block/node_comment_block.info b/drupal/sites/default/boinc/modules/node_comment_block/node_comment_block.info
new file mode 100644
index 0000000..583e852
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/node_comment_block/node_comment_block.info
@@ -0,0 +1,5 @@
+name = Node Comment Block
+description = Moves the comments for a node into a block.
+core = 6.x
+dependencies[] = block
+dependencies[] = comment
diff --git a/drupal/sites/default/boinc/modules/node_comment_block/node_comment_block.module b/drupal/sites/default/boinc/modules/node_comment_block/node_comment_block.module
new file mode 100644
index 0000000..36921c9
--- /dev/null
+++ b/drupal/sites/default/boinc/modules/node_comment_block/node_comment_block.module
@@ -0,0 +1,122 @@
+<?php
+
+/**
+ * @file
+ * Moves the comments for a node into a block.
+ */
+
+/**
+ * Implements hook_block() for Drupal 6 compatibility
+ */
+function node_comment_block_block($op = 'list', $delta = 0, $edit = array()) {
+  switch ($op) {
+  case 'view':
+    //$block = node_comment_block_block_view($delta);
+    $block = array();
+    if ($delta == 'node_comments') {
+      if (arg(0) == 'node' && is_numeric($nid = arg(1)) && !arg(2)) {
+        $node = node_load($nid);
+        if ($node->comment !== 0) {
+          $block['subject'] = NULL; // This should be NULL otherwise there will be duplicate h2 elements.
+          $block['content'] = '';
+          if ($node->comment) {
+            $block['content'] .= comment_render($node);
+          }
+        }
+      }
+    }
+    break;
+  case 'list':
+    $blocks = node_comment_block_block_info();
+    return $blocks;
+    break;
+  default:
+  }
+  return $block;
+}
+
+/**
+ * Port Drupal 7 render() function to Drupal 6
+ */
+function render(&$element) {
+  if (is_array($element)) {
+    show($element);
+    return drupal_render($element);
+  }
+  else {
+    // Safe-guard for inappropriate use of render() on flat variables: return
+    // the variable as-is.
+    return $element;
+  }
+}
+
+
+
+/**
+ * Implements hook_block_info().
+ */
+function node_comment_block_block_info() {
+  $blocks['node_comments'] = array(
+    'info' => t('Node comments'),
+  );
+
+  return $blocks;
+}
+
+/**
+ * Implements hook_block_view().
+ */
+function node_comment_block_block_view($delta = '') {
+  $block = array();
+
+  if ($delta == 'node_comments') {
+    if (arg(0) == 'node' && is_numeric($nid = arg(1)) && !arg(2)) {
+      $node = node_load($nid);
+
+      if ($node->comment !== 0) {
+        $block['subject'] = NULL; // This should be NULL otherwise there will be duplicate h2 elements.
+        $block['content'] = '';
+
+        $node = node_view($node);
+
+        if ($node['comments']) {
+          $block['content'] .= render($node['comments']);
+        }
+      }
+    }
+  }
+
+  return $block;
+}
+
+/**
+ * Implements hook_preprocess_HOOK() for nodes.
+ */
+function node_comment_block_preprocess_node(&$variables) {
+  $node = $variables['node'];
+  // Only hide standard comments for news content
+  if ($variables['type'] == 'news') {
+    $variables['node']->comment = 0;
+  }
+  
+  /* Drupal 7...
+  if ($node->comment !== 0 && $variables['view_mode'] == 'full') {
+    if (isset($variables['content']['comments'])) {
+      unset($variables['content']['comments']);
+      drupal_add_css(drupal_get_path('module', 'node_comment_block') . '/node-comment-block.css');
+    }
+  }
+  */
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter() for block_admin_configure.
+ */
+function node_comment_block_form_block_admin_configure_alter(&$form, &$form_state) {
+  if (isset($form['delta'])) {
+    if ($form['delta']['#value'] == 'node_comments') {
+      $form['settings']['title']['#disabled'] = TRUE;
+      $form['settings']['title']['#description'] = t('The title for this block cannot be overridden.');
+    }
+  }
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/README.txt b/drupal/sites/default/boinc/themes/boinc/README.txt
new file mode 100644
index 0000000..a26fd2c
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/README.txt
@@ -0,0 +1,118 @@
+// $Id: README.txt,v 1.3 2009/11/08 18:28:48 johnalbin Exp $
+
+BUILD YOUR OWN SUB-THEME
+------------------------
+
+*** IMPORTANT ***
+
+* In Drupal 6, the theme system caches template files and which theme functions
+  should be called. What that means is if you add a new theme or preprocess
+  function to your template.php file or add a new template (.tpl.php) file to
+  your sub-theme, you will need to rebuild the "theme registry." See
+  http://drupal.org/node/173880#theme-registry
+
+* Drupal 6 also stores a cache of the data in .info files. If you modify any
+  lines in your sub-theme's .info file, you MUST refresh Drupal 6's cache by
+  simply visiting the admin/build/themes page.
+
+
+The base Zen theme is designed to be easily extended by its sub-themes. You
+shouldn't modify any of the CSS or PHP files in the zen/ folder; but instead you
+should create a sub-theme of zen which is located in a folder outside of the
+root zen/ folder. The examples below assume zen and your sub-theme will be
+installed in sites/all/themes/, but any valid theme directory is acceptable
+(read the sites/default/default.settings.php for more info.)
+
+  Why? To learn why you shouldn't modify any of the files in the zen/ folder,
+  see http://drupal.org/node/245802
+
+ 1. Copy the STARTERKIT folder out of the zen/ folder and rename it to be your
+    new sub-theme. IMPORTANT: Only lowercase letters and underscores should be
+    used for the name of your sub-theme.
+
+    For example, copy the sites/all/themes/zen/STARTERKIT folder and rename it
+    as sites/all/themes/foo.
+
+      Why? Each theme should reside in its own folder. To make it easier to
+      upgrade Zen, sub-themes should reside in a folder separate from their base
+      theme.
+
+ 2. In your new sub-theme folder, rename the STARTERKIT.info.txt file to include
+    the name of your new sub-theme and remove the ".txt" extension. Then edit
+    the .info file by editing the name and description field.
+
+    For example, rename the foo/STARTERKIT.info file to foo/foo.info. Edit the
+    foo.info file and change "name = Zen Sub-theme Starter Kit" to "name = Foo"
+    and "description = Read..." to "description = A Zen sub-theme".
+
+      Why? The .info file describes the basic things about your theme: its
+      name, description, features, template regions, CSS files, and JavaScript
+      files. See the Drupal 6 Theme Guide for more info:
+      http://drupal.org/node/171205
+
+    Then, visit your site's admin/build/themes to refresh Drupal 6's cache of
+    .info file data.
+
+ 3. By default your new sub-theme is using a fixed-width layout. If you want a
+    liquid layout for your theme, delete the unneeded layout-fixed.css and
+    layout-fixed-rtl.css files and edit your sub-theme's .info file and replace
+    the reference to layout-fixed.css with layout-liquid.css.
+
+    For example, edit foo/foo.info and change this line:
+      stylesheets[all][]   = css/layout-fixed.css
+    to:
+      stylesheets[all][]   = css/layout-liquid.css
+
+      Why? The "stylesheets" lines in your .info file describe the media type
+      and path to the CSS file you want to include. The format for these lines
+      is:  stylesheets[MEDIA][] = path/to/file.css
+
+    Then, visit your site's admin/build/themes to refresh Drupal 6's cache of
+    .info file data.
+
+    Alternatively, if you are more familiar with a different CSS layout method,
+    such as Blueprint or 960.gs, you can replace the "css/layout-fixed.css" line
+    in your .info file with a line pointing at your choice of layout CSS file.
+
+ 4. Edit the template.php and theme-settings.php files in your sub-theme's
+    folder; replace ALL occurrences of "STARTERKIT" with the name of your
+    sub-theme.
+
+    For example, edit foo/template.php and foo/theme-settings.php and replace
+    every occurrence of "STARTERKIT" with "foo".
+
+    It is recommended to use a text editing application with search and
+    "replace all" functionality.
+
+ 5. Log in as an administrator on your Drupal site and go to Administer > Site
+    building > Themes (admin/build/themes) and enable your new sub-theme.
+
+
+Optional:
+
+ 6. MODIFYING ZEN CORE TEMPLATE FILES:
+    If you decide you want to modify any of the .tpl.php template files in the
+    zen folder, copy them to your sub-theme's folder before making any changes.
+    And then rebuild the theme registry.
+
+    For example, copy zen/templates/page.tpl.php to foo/templates/page.tpl.php.
+
+ 7. THEMEING DRUPAL'S SEARCH FORM:
+    Copy the search-theme-form.tpl.php template file from the modules/search/
+    folder and place it in your sub-theme's folder. And then rebuild the theme
+    registry.
+
+    You can find a full list of Drupal templates that you can override in the
+    templates/README.txt file or http://drupal.org/node/190815
+
+      Why? In Drupal 6 theming, if you want to modify a template included by a
+      module, you should copy the template file from the module's directory to
+      your sub-theme's directory and then rebuild the theme registry. See the
+      Drupal 6 Theme Guide for more info: http://drupal.org/node/173880
+
+ 8. FURTHER EXTENSIONS OF YOUR SUB-THEME:
+    Discover further ways to extend your sub-theme by reading Zen's
+    documentation online at:
+      http://drupal.org/node/193318
+    and Drupal 6's Theme Guide online at:
+      http://drupal.org/theme-guide
diff --git a/drupal/sites/default/boinc/themes/boinc/boinc.info b/drupal/sites/default/boinc/themes/boinc/boinc.info
new file mode 100644
index 0000000..a4b3dfe
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/boinc.info
@@ -0,0 +1,109 @@
+; $Id: STARTERKIT.info.txt,v 1.16.2.2 2010/06/26 16:05:31 johnalbin Exp $
+
+
+  ; The name and description of the theme used on the admin/build/themes page.
+name        = BOINC
+description = A default theme for BOINC sites
+
+  ; The screenshot used on the admin/build/themes page.
+screenshot = screenshot.png
+
+  ; "core" specifies the version of Drupal that this theme is compatible with.
+  ; "base theme" specifies that this is a theme that uses the "zen" theme as its
+  ; base theme. Its unlikely you will ever need to change these, but they are
+  ; required fields for a Zen sub-theme. The "engine" field is not used in a
+  ; sub-theme since the engine is inherited from its base theme.
+core       = 6.x
+base theme = zen
+
+  ; This section adds CSS files to your theme. The media type is specified in
+  ; the brackets. Typical CSS media types include "all", "screen", "print", and
+  ; "handheld". See http://www.w3.org/TR/CSS21/media.html#media-types for a full
+  ; list of stylesheet media types in CSS 2.1. The iPhone's preferred media type
+  ; is based on the CSS3 Media queries. http://www.w3.org/TR/css3-mediaqueries/
+  ;
+  ; You can also override any of Zen's stylesheets or any module's stylesheets,
+  ; an /extremely/ useful feature. See the excellent Drupal 6 Theme Guide at
+  ; http://drupal.org/node/171209 for more details.
+stylesheets[all][]   = css/html-reset.css
+stylesheets[all][]   = css/wireframes.css
+stylesheets[all][]   = css/layout-fixed.css
+stylesheets[all][]   = css/page-backgrounds.css
+stylesheets[all][]   = css/tabs.css
+stylesheets[all][]   = css/messages.css
+stylesheets[all][]   = css/pages.css
+stylesheets[all][]   = css/block-editing.css
+stylesheets[all][]   = css/blocks.css
+stylesheets[all][]   = css/navigation.css
+stylesheets[all][]   = css/panels-styles.css
+stylesheets[all][]   = css/views-styles.css
+stylesheets[all][]   = css/nodes.css
+stylesheets[all][]   = css/comments.css
+stylesheets[all][]   = css/forms.css
+stylesheets[all][]   = css/fields.css
+stylesheets[all][]   = css/font-awesome.css
+stylesheets[all][]   = css/responsive-media.css
+stylesheets[all][]   = css/responsive-jswidth.css
+stylesheets[print][] = css/print.css
+; stylesheets[handheld][] = css/mobile.css
+; stylesheets[only screen and (max-device-width: 480px)][] = css/iphone.css
+
+  ; Set the conditional stylesheets that are processed by IE.
+conditional-stylesheets[if IE][all][]       = css/ie.css
+conditional-stylesheets[if lte IE 6][all][] = css/ie6.css
+
+  ; Optionally add some JavaScripts to your theme.
+scripts[] = js/fancy-radios.js
+scripts[] = js/jquery.equalheights.js
+scripts[] = js/script.js
+scripts[] = js/jquery.detectwidths.js
+scripts[] = js/jquery.headerwidth.js
+
+  ; The regions defined in Zen's default page.tpl.php file.  The name in
+  ; brackets is the name of the variable in the page.tpl.php file, (e.g.
+  ; "[content_top]" in the .info file means there should be a $content_top
+  ; variable in the page.tpl.php file.) The text after the equals sign is a
+  ; descriptive text used on the admin/build/blocks page.
+  ;
+  ; To add a new region, copy Zen's page.tpl.php to your sub-theme's directory,
+  ; add a line line to this file, and then add the new variable to your
+  ; page.tpl.php template.
+regions[sidebar_first]  = First sidebar
+regions[sidebar_second] = Second sidebar
+regions[navigation]     = Navigation bar
+regions[highlight]      = Highlighted content
+regions[content_top]    = Content top
+regions[content_bottom] = Content bottom
+regions[header]         = Header
+regions[footer]         = Footer
+regions[page_closure]   = Page closure
+
+  ; Various page elements output by the theme can be toggled on and off. The
+  ; "features" control which of these check boxes display on the
+  ; admin/build/themes config page. This is useful for suppressing check boxes
+  ; for elements not used by your sub-theme. To suppress a check box, omit the
+  ; entry for it below. See the Drupal 6 Theme Guide for more info:
+  ; http://drupal.org/node/171205#features
+features[] = logo
+features[] = name
+features[] = slogan
+features[] = mission
+features[] = node_user_picture
+features[] = comment_user_picture
+features[] = search
+features[] = favicon
+features[] = primary_links
+features[] = secondary_links
+
+  ; Set the default settings to be used in theme-settings.php
+settings[zen_block_editing]        = 1
+settings[zen_breadcrumb]           = yes
+settings[zen_breadcrumb_separator] = ' › '
+settings[zen_breadcrumb_home]      = 1
+settings[zen_breadcrumb_trailing]  = 1
+settings[zen_breadcrumb_title]     = 0
+settings[zen_rebuild_registry]     = 1
+settings[zen_wireframes]           = 0
+
+settings[boinc_stats_chart_color]  = '#FAA341'
+settings[boinc_stats_chart_bcolor] = '#FFFFFF'
diff --git a/drupal/sites/default/boinc/themes/boinc/css/README.txt b/drupal/sites/default/boinc/themes/boinc/css/README.txt
new file mode 100644
index 0000000..0bac461
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/README.txt
@@ -0,0 +1,24 @@
+// $Id: README.txt,v 1.1 2009/08/12 06:49:46 johnalbin Exp $
+
+ZEN'S STYLESHEETS
+-----------------
+
+In these stylesheets, we have included all of the classes and IDs from this
+theme's tpl.php files. We have also included many of the useful Drupal core
+styles to make it easier for theme developers to see them.
+
+Many of these styles are over-riding Drupal's core stylesheets, so if you remove
+a declaration from them, the styles may still not be what you want since
+Drupal's core stylesheets are still styling the element. See the
+drupal6-reference.css file for a list of all Drupal 6.x core styles.
+
+In addition to the style declarations in these stylesheets, other Drupal styles
+that you might want to override or augment are those for:
+
+  Book Navigation  See line 74  of drupal6-reference.css file
+  Forum            See line 197 of drupal6-reference.css file
+  Menus            See line 667 of drupal6-reference.css file
+  News Aggregator  See line 20  of drupal6-reference.css file
+  Polls            See line 287 of drupal6-reference.css file
+  Search           See line 320 of drupal6-reference.css file
+  User Profiles    See line 945 of drupal6-reference.css file
diff --git a/drupal/sites/default/boinc/themes/boinc/css/block-editing-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/block-editing-rtl.css
new file mode 100644
index 0000000..84536ee
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/block-editing-rtl.css
@@ -0,0 +1,11 @@
+/* $Id: block-editing-rtl.css,v 1.2 2009/08/12 08:03:52 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the block-editing.css file.
+ */
+
+
+div.block.with-block-editing div.edit {
+  left: 0;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/block-editing.css b/drupal/sites/default/boinc/themes/boinc/css/block-editing.css
new file mode 100644
index 0000000..4a71e6d
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/block-editing.css
@@ -0,0 +1,27 @@
+/* $Id: block-editing.css,v 1.3 2009/11/05 14:01:26 johnalbin Exp $ */
+
+/**
+ * @file
+ * Zen's rollover edit links for blocks.
+ */
+
+
+div.block.with-block-editing {
+  position: relative;
+}
+
+div.block.with-block-editing div.edit {
+  display: none;
+  position: absolute;
+  right: 0; /* LTR */
+  top: 0;
+  z-index: 40;
+  border: 1px solid #eee;
+  padding: 0 2px;
+  font-size: 0.75em;
+  background-color: #fff;
+}
+
+div.block.with-block-editing:hover div.edit {
+  display: block;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/blocks.css b/drupal/sites/default/boinc/themes/boinc/css/blocks.css
new file mode 100644
index 0000000..271551d
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/blocks.css
@@ -0,0 +1,96 @@
+/* $Id: blocks.css,v 1.4 2009/11/05 11:05:39 johnalbin Exp $ */
+
+/**
+ * @file
+ * Block Styling
+ */
+
+
+.block /* Block wrapper */ {
+  /*margin-bottom: 1em;*/
+}
+
+.block.region-odd /* Zebra striping for each block in the region */ {
+}
+
+.block.region-even /* Zebra striping for each block in the region */ {
+}
+
+.block.odd /* Zebra striping independent of each region */ {
+}
+
+.block.even /* Zebra striping independent of each region */ {
+}
+
+.region-count-1 /* Incremental count for each block in the region */ {
+}
+
+.count-1 /* Incremental count independent of each region */ {
+}
+
+.block #comments {
+  margin: 0;
+}
+
+.block h2.title /* Block title */ {
+}
+
+.block .content /* Block's content wrapper */ {
+}
+
+#block-aggregator-category-1 /* Block for the latest news items in the first category */ {
+}
+
+#block-aggregator-feed-1 /* Block for the latest news items in the first feed */ {
+}
+
+#block-block-1 /* First administrator-defined block */ {
+}
+
+#block-blog-0 /* "Recent blog posts" block */ {
+}
+
+#block-book-0 /* "Book navigation" block for the current book's table of contents */ {
+}
+
+#block-comment-0 /* "Recent comments" block */ {
+}
+
+#block-forum-0 /* "Active forum topics" block */ {
+}
+
+#block-forum-1 /* "New forum topics" block */ {
+}
+
+#block-menu-primary-links /* "Primary links" block */ {
+}
+
+#block-menu-secondary-links /* "Secondary links" block */ {
+}
+
+#block-node-0 /* "Syndicate" block for primary RSS feed */ {
+}
+
+#block-poll-0 /* "Most recent poll" block */ {
+}
+
+#block-profile-0 /* "Author information" block for the profile of the page's author */ {
+}
+
+#block-search-0 /* "Search form" block */ {
+}
+
+#block-statistics-0 /* "Popular content" block */ {
+}
+
+#block-user-0 /* "User login form" block */ {
+}
+
+#block-user-1 /* "Navigation" block for Drupal navigation menu */ {
+}
+
+#block-user-2 /* "Who's new" block for a list of the newest users */ {
+}
+
+#block-user-3 /* "Who's online" block for a list of the online users */ {
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/comments.css b/drupal/sites/default/boinc/themes/boinc/css/comments.css
new file mode 100644
index 0000000..7e21eee
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/comments.css
@@ -0,0 +1,414 @@
+/* $Id: comments.css,v 1.5 2009/11/01 20:54:20 johnalbin Exp $ */
+
+/**
+ * @file
+ * Comment Styling
+ */
+
+
+#comments /* Wrapper for the list of comments and its title */ {
+  margin: 0;
+}
+
+#comments .title /* Heading for the list of comments */ {
+}
+
+.comment /* Wrapper for a single comment */ {
+  border-top: 1px dotted #aaa;
+  position: relative;
+}
+
+.comment-preview /* Preview of the comment before submitting new or updated comment */ {
+}
+
+.comment.new /* A new comment since the user last viewed the page. */ {
+}
+
+.comment.first /* The first comment in the list of comments */ {
+  border-top: 1px dotted #aaa;
+}
+
+.comment.odd /* An odd-numbered comment in the list of comments */ {
+  background-color: #fcfcf8;
+}
+
+.comment.even /* An even-numbered comment in the list of comments */ {
+}
+
+.comment.last /* The last comment in the list of comments */ {
+}
+
+.comment-unpublished /* Unpublished comments */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. See also the div.unpublished declaration in the nodes.css. */ {
+}
+
+.comment-by-anonymous /* A comment created by an anonymous user */ {
+}
+
+.comment-by-node-author /* A comment created by the node's author */ {
+}
+
+.comment-by-viewer /* A comment created by the current user */ {
+}
+
+.comment h3.title /* Comment title */ {
+  margin-bottom: 1px;
+  padding: 0;
+}
+.comment h3.title a {
+  color: #000;
+}
+.comment h3.title a:hover {
+  text-decoration: none;
+}
+
+.new /* "New" marker for comments that are new for the current user */ {
+  color: #c00;
+}
+
+.comment .picture /* The picture of the comment author */ {
+  max-height: 100px;
+  overflow: hidden;
+}
+div.node-type-forum {
+  position: relative;
+}
+div.node-type-forum.not-first-page {
+  padding-bottom: 4px;
+}
+.node-type-forum h2.title {
+  margin: 14px 0 24px;
+}
+.node-type-forum.not-first-page h2.title {
+  margin-bottom: 0;
+}
+.comment .user,
+.node-type-forum .user,
+#comment-form .user {
+  padding: 24px 3px 24px 16px;
+  position: absolute;
+  right: 0;
+  width: 130px;
+}
+.comment .user,
+#comment-form .user {
+}
+#comment-form .user {
+  height: auto;
+}
+.comment .user .picture img,
+#comment-form .user .picture img {
+  margin: 0;
+  width: 100px;
+}
+.comment .user .name,
+.node-type-forum .user .name,
+.node-type-team-forum .user .name,
+#comment-form .user .name {
+  color: #5A5758;
+  font-size: 10px;
+  font-weight: bold;
+  letter-spacing: 1px;
+  padding: 8px 0 2px;
+  text-transform: uppercase;
+}
+.comment .user .join-date,
+.comment .user .post-count,
+.comment .user .credit,
+.comment .user .rac,
+.node-type-forum .user .join-date,
+.node-type-forum .user .post-count,
+.node-type-forum .user .credit,
+.node-type-forum .user .rac,
+.node-type-team-forum .user .join-date,
+.node-type-team-forum .user .post-count,
+.node-type-team-forum .user .credit,
+.node-type-team-forum .user .rac,
+#comment-form .user .join-date,
+#comment-form .user .post-count,
+#comment-form .user .credit,
+#comment-form .user .rac {
+  font-size: 10px;
+  color: #999;
+  letter-spacing: 1px;
+  line-height: 13px;
+  margin-left: 1px;
+}
+.comment .user .user-links,
+.node-type-forum .user .user-links,
+.node-type-team-forum .user .user-links {
+  padding-top: 8px;
+}
+.comment .user .ignore-link,
+.comment .user .pm-link,
+.node-type-forum .user .ignore-link,
+.node-type-team-forum .user .ignore-link,
+.node-type-forum .user .pm-link,
+.node-type-team-forum .user .pm-link {
+  font-weight: bold;
+}
+.comment .user .ignore-link a,
+.comment .user .pm-link a,
+.node-type-forum .user .ignore-link a,
+.node-type-team-forum .user .ignore-link a,
+.node-type-forum .user .pm-link a,
+.node-type-team-forum .user .pm-link a {
+  color: #808080; /*#5A5758;*/
+  font-size: 10px;
+  letter-spacing: 1px;
+  text-transform: uppercase;
+}
+
+.comment-body,
+.node-type-forum .node-body,
+.node-type-team-forum .node-body,
+#comment-form .form-body {
+  margin: 16px 150px 16px 0;
+  padding: 8px 16px 8px 3px;
+  border-right: 1px dotted #aaa;
+  min-height: 225px;
+}
+#comment-form .form-body {
+  border: none;
+  margin-bottom: 12px;
+  padding-top: 0;
+  padding-bottom: 0;
+  overflow: hidden;
+}
+#comment-form .form-control,
+#comment-form .bbcode_help {
+  margin-right: 150px;
+  margin-bottom: 0;
+}
+.comment-body .links,
+.node-type-forum .node-body .links,
+.node-type-team-forum .node-body .links {
+  margin: 0;
+  width: 640px;
+}
+.comment-body .links li.first {
+  /*padding-left: 0;*/
+}
+.node-type-forum .user .pm-link,
+.node-type-team-forum .user .pm-link {
+}
+.node-type-forum .node-body .links,
+.node-type-team-forum .node-body .links {
+}
+.comment .user .pm-link {
+}
+.comment-body .links,
+.node-type-forum .node-body .links,
+.node-type-team-forum .node-body .links {
+}
+.comment-body .standard-links ul.links li,
+.comment-body .moderator-links li,
+.node-type-forum .node-body .links li,
+.node-type-team-forum .node-body .links li {
+  border-left: 1px solid #808080;
+  margin-left: 0.3em;
+  margin-right: 0.3em;
+  padding: 0 0 0 0.6em;
+}
+.comment-body .moderator-links li.first,
+.node-type-forum .node-body .moderator-links .links li.first,
+.node-type-team-forum .node-body .moderator-links .links li.first,
+.comment-body .links li.comment_forbidden.first.last {
+  border-width: 0;
+  margin-left: 0;
+  padding-left: 0;
+}
+.node-type-forum .terms,
+.node-type-team-forum .terms {
+  float: right;
+}
+.node-type-forum .terms .links,
+.node-type-team-forum .terms .links {
+  width: auto;
+  position: relative;
+}
+.node-type-forum #content .box,
+.node-type-team-forum #content .box,
+.node-type-news #content .box {
+  margin: 24px 0 0 0;
+}
+.node-type-forum #content .box label,
+.node-type-team-forum #content .box label,
+.node-type-news #content .box label,
+#comment-form .form-item label {
+  width: auto;
+  margin-right: 32px;
+  line-height: 22px;
+}
+
+.block .content h2 {
+  margin-top: 0;
+}
+.block .content .box h2,
+#block-node_comment_block-forum_comment_form h2,
+#block-node_comment_block-team-forum_comment_form h2 {
+  margin-bottom: 24px;
+  border-bottom: 1px dotted #aaa;
+  padding-bottom: 0.667em;
+}
+
+.comment .submitted, /* The "posted by" information */
+.comment .comment-id,
+.comment .standard-links,
+.comment .moderator-links,
+.node-type-forum .submitted,
+.node-type-forum .topic-id,
+.node-type-forum .standard-links,
+.node-type-forum .moderator-links,
+.node-type-team-forum .submitted,
+.node-type-team-forum .topic-id,
+.node-type-team-forum .standard-links,
+.node-type-team-forum .moderator-links {
+  color: #808080;
+  display: inline;
+  font-size: 10px;
+  font-style: italic;
+}
+.comment .moderator-links,
+.node-type-forum .moderator-links,
+.node-type-team-forum .moderator-links {
+  display: block;
+}
+.moderator-links .label {
+  display: none;
+}
+.comment .comment-id a,
+.comment .standard-links ul.links li a,
+.comment .moderator-links a,
+.node-type-forum .topic-id,
+.node-type-forum .standard-links a,
+.node-type-forum .moderator-links a,
+.node-type-team-forum .topic-id,
+.node-type-team-forum .standard-links a,
+.node-type-team-forum .moderator-links a {
+  color: #aaa;
+  font-weight: bold;
+  text-transform: uppercase;
+}
+.node-type-forum .topic-id,
+.node-type-team-forum .topic-id {
+  display: none;
+}
+
+.comment .content, /* Comment's content wrapper */
+.node-type-forum .content,
+.node-type-team-forum .content {
+  padding: 0;
+}
+
+.comment .user-signature, /* The user's signature */
+.node-type-forum .user-signature,
+.node-type-team-forum .user-signature {
+  color: #808080;
+}
+
+.comment ul.links /* Comment links. See also the ul.links declaration in the pages.css. */ {
+/*  font-size: 10px;
+  font-weight: bold;
+  text-transform: uppercase;
+  color: #808080;
+  letter-spacing: 1px; */
+}
+
+.indented /* Nested comments are indented */ {
+  /* margin-left: 25px; */ /* Drupal core uses a 25px left margin */
+}
+
+.preview .comment /* Preview of the comment before submitting new or updated comment */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+  border: none;
+  margin-top: 24px;
+  padding-top: 0;
+}
+.preview h2 {
+  border-bottom: 1px dotted #aaa;
+  margin-bottom: 24px;
+  padding-bottom: 12px;
+}
+
+#comment-form .preview + .user {
+  height: auto;
+}
+#comment-form .comment .user {
+  border: none;
+}
+
+div.preview + .comment {
+  padding-top: 24px;
+  margin-top: 24px;
+}
+
+/* Comment form */
+#comment-form #edit-comment-wrapper {
+  margin: 0;
+}
+#comment-form #edit-subject-wrapper,
+#comment-form #edit-comment-wrapper label {
+}
+
+/* BBcode styling */
+.bb-code {
+  width: 100%;
+  border: 1px solid #bfd0d9;
+  border-left: 4px solid #bfd0d9;
+}
+.bb-code-block {}
+.bb-list {}
+.bb-url {}
+.bb-email {}
+.bb-image {
+  max-width: 100%;
+  width: expression(this.width > 500 ? "500px" : this.width);
+}
+.bb-quote {}
+.bb-quote-body {
+  border: 1px dashed #ccc;
+  padding: 16px;
+  background-color: #f8f8f8;
+}
+.bb-table {
+  border: 1px solid #660000;
+}
+.bb-hr {}
+.bb-br {}
+
+/* Vote Up/down */
+.comment .vud-widget-updown {
+  width: 48px;
+  float: none;
+  position: absolute;
+  bottom: 8px;
+  right: 36px;
+}
+.comment .vud-widget-updown .updown-score {
+  border: none;
+  float: none;
+} 
+.comment .vud-widget-updown .updown-score .updown-current-score {
+  display: inline;
+  font-size: 10px;
+}
+.comment .vud-widget-updown .up-active, .vud-widget-updown .down-active,
+.comment .vud-widget-updown .up-inactive, .vud-widget-updown .down-inactive {
+  border: none;
+}
+
+.flag-wrapper {
+    margin-left: -0.3em;
+}
+
+/* Really stupid, but since user preference for comments per page isn't
+ * respected unless comment controls are enabled for a given content type,
+ * we have to enable controls and then hide them in order for global settings
+ * to do anything */
+#comment-controls {
+  display: none;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/drupal6-reference.css b/drupal/sites/default/boinc/themes/boinc/css/drupal6-reference.css
new file mode 100644
index 0000000..d37f65b
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/drupal6-reference.css
@@ -0,0 +1,1985 @@
+/* $Id: drupal6-reference.css,v 1.1 2009/08/12 04:25:15 johnalbin Exp $ */
+
+/**
+ * @file
+ * DRUPAL 6.x Reference CSS
+ *
+ * THIS FILE IS FOR REFERENCE ONLY AND IS NOT USED IN ANY WAY BY THE ZEN THEME.
+ *
+ * Drupal has very modular CSS. Which means that only the CSS that is needed
+ * for a particular page is loaded. This is a good thing.
+ *
+ * However, this makes it difficult for theme developers to discover how and
+ * where a particular style is coming from. So, here in all its glory is the
+ * complete CSS included with Drupal core 6.x.
+ *
+ * And, if you're not already, you should check out the free Firebug extension
+ * for Firefox. With it, you can inspect elements and easily view and play with
+ * its CSS styles.  http://www.getfirebug.com
+ */
+
+
+/*
+ * modules/aggregator/aggregator-rtl.css
+ */
+
+#aggregator .feed-source .feed-icon {
+  float: left;
+}
+
+
+/*
+ * modules/aggregator/aggregator.css
+ */
+
+#aggregator .feed-source .feed-title {
+  margin-top: 0;
+}
+#aggregator .feed-source .feed-image img {
+  margin-bottom: 0.75em;
+}
+#aggregator .feed-source .feed-icon {
+  float: right; /* LTR */
+  display: block;
+}
+#aggregator .feed-item {
+  margin-bottom: 1.5em;
+}
+#aggregator .feed-item-title {
+  margin-bottom: 0;
+  font-size: 1.3em;
+}
+#aggregator .feed-item-meta, #aggregator .feed-item-body {
+  margin-bottom: 0.5em;
+}
+#aggregator .feed-item-categories {
+  font-size: 0.9em;
+}
+#aggregator td {
+  vertical-align: bottom;
+}
+#aggregator td.categorize-item {
+  white-space: nowrap;
+}
+#aggregator .categorize-item .news-item .body {
+  margin-top: 0;
+}
+#aggregator .categorize-item h3 {
+  margin-bottom: 1em;
+  margin-top: 0;
+}
+
+
+/*
+ * modules/block/block.css
+ */
+
+#blocks td.region {
+  font-weight: bold;
+}
+#blocks tr.region-message {
+  font-weight: normal;
+  color: #999;
+}
+#blocks tr.region-populated {
+  display: none;
+}
+.block-region {
+  background-color: #ff6;
+  margin-top: 4px;
+  margin-bottom: 4px;
+  padding: 3px;
+}
+
+
+/*
+ * modules/book/book-rtl.css
+ */
+
+.book-navigation .page-previous {
+  float: right;
+}
+.book-navigation .page-up {
+  float: right;
+}
+
+
+/*
+ * modules/book/book.css
+ */
+
+.book-navigation .menu {
+  border-top: 1px solid #888;
+  padding: 1em 0 0 3em;
+}
+.book-navigation .page-links {
+  border-top: 1px solid #888;
+  border-bottom: 1px solid #888;
+  text-align: center;
+  padding: 0.5em;
+}
+.book-navigation .page-previous {
+  text-align: left;
+  width: 42%;
+  display: block;
+  float: left; /* LTR */
+}
+.book-navigation .page-up {
+  margin: 0 5%;
+  width: 4%;
+  display: block;
+  float: left; /* LTR */
+}
+.book-navigation .page-next {
+  text-align: right;
+  width: 42%;
+  display: block;
+  float: right;
+}
+#book-outline {
+  min-width: 56em;
+}
+.book-outline-form .form-item {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+#edit-book-bid-wrapper .description {
+  clear: both;
+}
+#book-admin-edit select {
+  margin-right: 24px;
+}
+#book-admin-edit select.progress-disabled {
+  margin-right: 0;
+}
+#book-admin-edit tr.ahah-new-content {
+  background-color: #ffd;
+}
+#book-admin-edit .form-item {
+  float: left;
+}
+
+
+/*
+ * modules/color/color-rtl.css
+ */
+
+#placeholder {
+  left: 0;
+  right: auto;
+}
+
+/* Palette */
+.color-form .form-item {
+  padding-left: 0;
+  padding-right: 1em;
+}
+.color-form label {
+  float: right;
+  clear: right;
+}
+.color-form .form-text, .color-form .form-select {
+  float: right;
+}
+.color-form .form-text {
+  margin-right: 0;
+  margin-left: 5px;
+}
+
+#palette .hook {
+  float: right;
+}
+#palette .down, #palette .up, #palette .both {
+  background: url(images/hook-rtl.png) no-repeat 0 0;
+}
+#palette .up {
+  background-position: 0 -27px;
+}
+#palette .both {
+  background-position: 0 -54px;
+}
+
+#palette .lock {
+  float: right;
+  right: -10px;
+}
+html.js #preview {
+  float: right;
+}
+
+
+/*
+ * modules/color/color.css
+ */
+
+/* Farbtastic placement */
+.color-form {
+  max-width: 50em;
+  position: relative;
+}
+#placeholder {
+  position: absolute;
+  top: 0;
+  right: 0; /* LTR */
+}
+
+/* Palette */
+.color-form .form-item {
+  height: 2em;
+  line-height: 2em;
+  padding-left: 1em; /* LTR */
+  margin: 0.5em 0;
+}
+.color-form label {
+  float: left; /* LTR */
+  clear: left; /* LTR */
+  width: 10em;
+}
+.color-form .form-text, .color-form .form-select {
+  float: left; /* LTR */
+}
+.color-form .form-text {
+  text-align: center;
+  margin-right: 5px; /* LTR */
+  cursor: pointer;
+}
+
+#palette .hook {
+  float: left; /* LTR */
+  margin-top: 3px;
+  width: 16px;
+  height: 16px;
+}
+#palette .down, #palette .up, #palette .both {
+  background: url(images/hook.png) no-repeat 100% 0; /* LTR */
+}
+#palette .up {
+  background-position: 100% -27px; /* LTR */
+}
+#palette .both {
+  background-position: 100% -54px; /* LTR */
+}
+
+#palette .lock {
+  float: left; /* LTR */
+  position: relative;
+  top: -1.4em;
+  left: -10px; /* LTR */
+  width: 20px;
+  height: 25px;
+  background: url(images/lock.png) no-repeat 50% 2px;
+  cursor: pointer;
+}
+#palette .unlocked {
+  background-position: 50% -22px;
+}
+#palette .form-item {
+  width: 20em;
+}
+#palette .item-selected {
+  background: #eee;
+}
+
+/* Preview */
+#preview {
+  display: none;
+}
+html.js #preview {
+  display: block;
+  position: relative;
+  float: left; /* LTR */
+}
+
+
+/*
+ * modules/comment/comment-rtl.css
+ */
+
+.indented {
+  margin-left: 0;
+  margin-right: 25px;
+}
+
+
+/*
+ * modules/comment/comment.css
+ */
+
+.indented {
+  margin-left: 25px; /* LTR */
+}
+.comment-unpublished {
+  background-color: #fff4f4;
+}
+.preview .comment {
+  background-color: #ffffea;
+}
+
+
+/*
+ * modules/dblog/dblog-rtl.css
+ */
+
+#edit-type-wrapper, #edit-severity-wrapper {
+  float: right;
+  padding-right: 0;
+  padding-left: .8em;
+}
+
+
+/*
+ * modules/dblog/dblog.css
+ */
+
+#edit-type-wrapper, #edit-severity-wrapper {
+  float: left; /* LTR */
+  padding-right: .8em; /* LTR */
+  margin: 0.1em;
+  /**
+   * In Opera 9, DOM elements with the property of "overflow: auto"
+   * will partially hide its contents with unnecessary scrollbars when
+   * its immediate child is floated without an explicit width set.
+   */
+  width: 15em;
+}
+#dblog-filter-form .form-item select.form-select {
+  width: 100%;
+}
+tr.dblog-user {
+  background: #ffd;
+}
+tr.dblog-user .active {
+  background: #eed;
+}
+tr.dblog-content {
+  background: #ddf;
+}
+tr.dblog-content .active {
+  background: #cce;
+}
+tr.dblog-page-not-found, tr.dblog-access-denied {
+  background: #dfd;
+}
+tr.dblog-page-not-found .active, tr.dblog-access-denied .active {
+  background: #cec;
+}
+tr.dblog-error {
+  background: #ffc9c9;
+}
+tr.dblog-error .active {
+  background: #eeb9b9;
+}
+
+
+/*
+ * modules/forum/forum-rtl.css
+ */
+
+#forum tr td.forum {
+  padding-left: 0.5em;
+  padding-right: 25px;
+  background-position: 98% 2px;
+}
+.forum-topic-navigation {
+  padding: 1em 3em 0 0;
+}
+.forum-topic-navigation .topic-previous {
+  text-align: left;
+  float: right;
+}
+.forum-topic-navigation .topic-next {
+  text-align: right;
+  float: left;
+}
+
+
+/*
+ * modules/forum/forum.css
+ */
+
+#forum .description {
+  font-size: 0.9em;
+  margin: 0.5em;
+}
+#forum td.created, #forum td.posts, #forum td.topics, #forum td.last-reply, #forum td.replies, #forum td.pager {
+  white-space: nowrap;
+}
+#forum td.posts, #forum td.topics, #forum td.replies, #forum td.pager {
+  text-align: center;
+}
+#forum tr td.forum {
+  padding-left: 25px; /* LTR */
+  background-position: 2px 2px; /* LTR */
+  background-image: url(../../misc/forum-default.png);
+  background-repeat: no-repeat;
+}
+#forum tr.new-topics td.forum {
+  background-image: url(../../misc/forum-new.png);
+}
+#forum div.indent {
+  margin-left: 20px;
+}
+
+.forum-topic-navigation {
+  padding: 1em 0 0 3em; /* LTR */
+  border-top: 1px solid #888;
+  border-bottom: 1px solid #888;
+  text-align: center;
+  padding: 0.5em;
+}
+.forum-topic-navigation .topic-previous {
+  text-align: right; /* LTR */
+  float: left; /* LTR */
+  width: 46%;
+}
+.forum-topic-navigation .topic-next {
+  text-align: left; /* LTR */
+  float: right; /* LTR */
+  width: 46%;
+}
+
+
+/*
+ * modules/help/help-rtl.css
+ */
+
+.help-items {
+  float: right;
+  padding-right: 0;
+  padding-left: 3%;
+}
+.help-items-last {
+  padding-right: 0;
+  padding-left: 0;
+}
+
+
+/*
+ * modules/help/help.css
+ */
+
+.help-items {
+  float: left; /* LTR */
+  width: 22%;
+  padding-right: 3%; /* LTR */
+}
+.help-items-last {
+  padding-right: 0; /* LTR */
+}
+
+
+/*
+ * modules/locale/locale.css
+ */
+
+.locale-untranslated {
+  font-style: normal;
+  text-decoration: line-through;
+}
+
+
+/*
+ * modules/node/node-rtl.css
+ */
+
+#node-admin-buttons {
+  float: right;
+  margin-left: 0;
+  margin-right: 0.5em;
+  clear: left;
+}
+
+
+/*
+ * modules/node/node.css
+ */
+
+.node-unpublished {
+  background-color: #fff4f4;
+}
+.preview .node {
+  background-color: #ffffea;
+}
+#node-admin-filter ul {
+  list-style-type: none;
+  padding: 0;
+  margin: 0;
+  width: 100%;
+}
+#node-admin-buttons {
+  float: left; /* LTR */
+  margin-left: 0.5em; /* LTR */
+  clear: right; /* LTR */
+}
+td.revision-current {
+  background: #ffc;
+}
+.node-form .form-text {
+  display: block;
+  width: 95%;
+}
+.node-form .container-inline .form-text {
+  display: inline;
+  width: auto;
+}
+.node-form .standard {
+  clear: both;
+}
+.node-form textarea {
+  display: block;
+  width: 95%;
+}
+.node-form .attachments fieldset {
+  float: none;
+  display: block;
+}
+.terms-inline {
+  display: inline;
+}
+
+
+/*
+ * modules/openid/openid.css
+ */
+
+#edit-openid-identifier {
+  background-image: url("login-bg.png");
+  background-position: 0% 50%;
+  background-repeat: no-repeat;
+  padding-left: 20px;
+}
+div#edit-openid-identifier-wrapper {
+  display: block;
+}
+html.js #user-login-form div#edit-openid-identifier-wrapper,
+html.js #user-login div#edit-openid-identifier-wrapper {
+  display: none;
+}
+html.js #user-login-form li.openid-link,
+html.js #user-login li.openid-link {
+  display : block;
+  list-style: none;
+}
+#user-login-form ul {
+  margin-top: 0;
+}
+#user-login ul {
+  margin: 0 0 5px;
+}
+#user-login ul li {
+  margin: 0;
+}
+#user-login-form li.openid-link,
+#user-login-form li.user-link,
+#user-login li.openid-link,
+#user-login li.user-link {
+  display: none;
+}
+#user-login-form li.openid-link a,
+#user-login li.openid-link a {
+  background: transparent url("login-bg.png") no-repeat 0 2px;
+  padding: 0 20px;
+}
+
+
+/*
+ * modules/poll/poll-rtl.css
+ */
+
+.poll .bar .foreground {
+  float: right;
+}
+.poll .percent {
+  text-align: left;
+}
+.poll .vote-form .choices {
+  text-align: right;
+}
+
+
+/*
+ * modules/poll/poll.css
+ */
+
+.poll .bar {
+  height: 1em;
+  margin: 1px 0;
+  background-color: #ddd;
+}
+.poll .bar .foreground {
+  background-color: #000;
+  height: 1em;
+  float: left; /* LTR */
+}
+.poll .links {
+  text-align: center;
+}
+.poll .percent {
+  text-align: right; /* LTR */
+}
+.poll .total {
+  text-align: center;
+}
+.poll .vote-form {
+  text-align: center;
+}
+.poll .vote-form .choices {
+  text-align: left; /* LTR */
+  margin: 0 auto;
+  display: table;
+}
+.poll .vote-form .choices .title {
+  font-weight: bold;
+}
+.node-form #edit-poll-more {
+  margin: 0;
+}
+td.poll-chtext {
+  width: 80%;
+}
+td.poll-chvotes .form-text {
+  width: 85%;
+}
+
+
+/*
+ * modules/profile/profile.css
+ */
+
+#profile-fields td.category {
+  font-weight: bold;
+}
+#profile-fields tr.category-message {
+  color: #999;
+}
+#profile-fields tr.category-populated {
+  display: none;
+}
+
+
+/*
+ * modules/search/search-rtl.css
+ */
+
+.search-advanced .criterion {
+  float: right;
+  margin-right: 0;
+  margin-left: 2em;
+}
+.search-advanced .action {
+  float: right;
+  clear: right;
+}
+
+
+/*
+ * modules/search/search.css
+ */
+
+.search-form {
+  margin-bottom: 1em;
+}
+.search-form input {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.search-results p {
+  margin-top: 0;
+}
+.search-results dt {
+  font-size: 1.1em;
+}
+.search-results dd {
+  margin-bottom: 1em;
+}
+.search-results .search-info {
+  font-size: 0.85em;
+}
+.search-advanced .criterion {
+  float: left; /* LTR */
+  margin-right: 2em; /* LTR */
+}
+.search-advanced .action {
+  float: left; /* LTR */
+  clear: left; /* LTR */
+}
+
+
+/*
+ * modules/system/admin-rtl.css
+ */
+
+div.admin-panel .body {
+  padding: 0 8px 2px 4px;
+}
+
+div.admin .expert-link {
+  text-align: left;
+  margin-right: 0;
+  margin-left: 1em;
+  padding-right: 0;
+  padding-left: 4px;
+}
+
+table.system-status-report th, table.system-status-report tr.merge-up td {
+  padding-right: 30px;
+}
+
+table.system-status-report th {
+  background-position: 95% 50%;
+}
+
+table.screenshot {
+  margin-left: 1em;
+}
+
+.date-container {
+  clear: right;
+}
+.date-container .select-container, .date-container .custom-container {
+  float: right;
+}
+.date-container .custom-container {
+  margin-left: 0;
+  margin-right: 15px;
+}
+
+
+/*
+ * modules/system/admin.css
+ */
+
+/*
+** Formatting for administration page
+*/
+div.admin-panel {
+  margin: 0;
+  padding: 5px 5px 15px 5px;
+}
+
+div.admin-panel .description {
+  margin: 0 0 3px;
+  padding: 2px 0 3px 0;
+}
+
+div.admin-panel .body {
+  padding: 0 4px 2px 8px; /* LTR */
+}
+
+div.admin {
+  padding-top: 15px;
+}
+
+div.admin .left {
+  float: left;
+  width: 47%;
+  margin-left: 1em;
+}
+div.admin .right {
+  float: right;
+  width: 47%;
+  margin-right: 1em;
+}
+
+div.admin .expert-link {
+  text-align: right; /* LTR */
+  margin-right: 1em; /* LTR */
+  padding-right: 4px; /* LTR */
+}
+
+table.package {
+  width: 100%;
+}
+table.package .description {
+  width: 100%;
+}
+table.package .version {
+  direction: ltr;
+}
+div.admin-dependencies, div.admin-required {
+  font-size: 0.9em;
+  color: #444;
+}
+span.admin-disabled {
+  color: #800;
+}
+span.admin-enabled {
+  color: #080;
+}
+span.admin-missing {
+  color: #f00;
+}
+
+/**
+ * Formatting for status report
+ */
+table.system-status-report th {
+  border-bottom: 1px solid #ccc;
+}
+table.system-status-report th, table.system-status-report tr.merge-up td {
+  padding-left: 30px; /* LTR */
+}
+table.system-status-report th {
+  background-repeat: no-repeat;
+  background-position: 5px 50%; /* LTR */
+  padding-top: 6px;
+  padding-bottom: 6px;
+}
+table.system-status-report tr.error th {
+  background-image: url(../../misc/watchdog-error.png);
+}
+table.system-status-report tr.warning th {
+  background-image: url(../../misc/watchdog-warning.png);
+}
+table.system-status-report tr.ok th {
+  background-image: url(../../misc/watchdog-ok.png);
+}
+
+/**
+ * Formatting for theme configuration
+ */
+.theme-settings-left {
+  float: left;
+  width: 49%;
+}
+.theme-settings-right {
+  float: right;
+  width: 49%;
+}
+.theme-settings-bottom {
+  clear: both;
+}
+
+/**
+ * Formatting for theme overview
+ */
+table.screenshot {
+  margin-right: 1em; /* LTR */
+}
+.theme-info h2 {
+  margin-bottom: 0;
+}
+.theme-info p {
+  margin-top: 0;
+}
+
+
+/**
+ * Date and time settings page
+ */
+.date-container {
+  overflow: auto;
+  clear: left; /* LTR */
+}
+.date-container .form-item {
+  margin-top: 0;
+}
+.date-container .select-container, .date-container .custom-container {
+  float: left; /* LTR */
+}
+.date-container .custom-container {
+  margin-left: 15px; /* LTR */
+  width: 50%;
+}
+html.js .custom-container label {
+  visibility: hidden;
+}
+
+
+/*
+ * modules/system/defaults-rtl.css
+ */
+
+th {
+  text-align: right;
+  padding-right: 0;
+  padding-left: 1em;
+}
+
+
+/*
+ * modules/system/defaults.css
+ */
+
+/*
+** HTML elements
+*/
+fieldset {
+  margin-bottom: 1em;
+  padding: .5em;
+}
+form {
+  margin: 0;
+  padding: 0;
+}
+hr {
+  height: 1px;
+  border: 1px solid gray;
+}
+img {
+  border: 0;
+}
+table {
+  border-collapse: collapse;
+}
+th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+/*
+** Markup free clearing
+** Details: http://www.positioniseverything.net/easyclearing.html
+*/
+.clear-block:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+
+.clear-block {
+  display: inline-block;
+}
+
+/* Hides from IE-mac \*/
+* html .clear-block {
+  height: 1%;
+}
+.clear-block {
+  display: block;
+}
+/* End hide from IE-mac */
+
+
+/*
+ * modules/system/maintenance.css
+ */
+
+/* Update styles */
+#update-results {
+  margin-top: 3em;
+  padding: 0.25em;
+  border: 1px solid #ccc;
+  background: #eee;
+  font-size: smaller;
+}
+#update-results h2 {
+  margin-top: 0.25em;
+}
+#update-results h4 {
+  margin-bottom: 0.25em;
+}
+#update-results li.none {
+  color: #888;
+  font-style: italic;
+}
+#update-results li.failure strong {
+  color: #b63300;
+}
+
+
+/*
+ * modules/system/system-menus-rtl.css
+ */
+
+ul.menu {
+  text-align:right;
+}
+ul.menu li {
+  margin: 0 0.5em 0 0;
+}
+li.expanded {
+  padding: 0.2em 0 0 0.5em;
+}
+li.collapsed {
+  list-style-image: url(../../misc/menu-collapsed-rtl.png);
+  padding: 0.2em 0 0 0.5em;
+}
+li.leaf {
+  padding: 0.2em 0 0 0.5em;
+}
+
+
+/*
+ * modules/system/system-menus.css
+ */
+
+ul.menu {
+  list-style: none;
+  border: none;
+  text-align:left; /* LTR */
+}
+ul.menu li {
+  margin: 0 0 0 0.5em; /* LTR */
+}
+li.expanded {
+  list-style-type: circle;
+  list-style-image: url(../../misc/menu-expanded.png);
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li.collapsed {
+  list-style-type: disc;
+  list-style-image: url(../../misc/menu-collapsed.png); /* LTR */
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li.leaf {
+  list-style-type: square;
+  list-style-image: url(../../misc/menu-leaf.png);
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li a.active {
+  color: #000;
+}
+td.menu-disabled {
+  background: #ccc;
+}
+ul.links {
+  margin: 0;
+  padding: 0;
+}
+ul.links.inline {
+  display: inline;
+}
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+.block ul {
+  margin: 0;
+  padding: 0 0 0.25em 1em; /* LTR */
+}
+
+
+/*
+ * modules/system/system-rtl.css
+ */
+
+thead th {
+  text-align: right;
+  padding-left: 1em;
+  padding-right: 0.5em;
+}
+
+.item-list .icon {
+  float: left;
+  padding-left: 0;
+  padding-right: 0.25em;
+  clear: left;
+}
+.item-list ul li {
+  margin: 0 1.5em 0.25em 0;
+}
+
+.more-link {
+  text-align: left;
+}
+.more-help-link {
+  text-align: left;
+}
+
+dl.multiselect dt, dl.multiselect dd {
+  float: right;
+  margin: 0 0 0 1em;
+}
+
+.block ul {
+  padding: 0 1em 0.25em 0;
+}
+
+ul.primary {
+  padding: 0 1em 0 0;
+}
+ul.primary li a {
+  margin-right: 5px;
+  margin-left: 0.5em;
+}
+ul.secondary li {
+  display: inline;
+  padding: 0 1em;
+  border-right: none;
+  border-left: 1px solid #ccc;
+}
+html.js input.form-autocomplete {
+  background-position: 0% 2px;
+}
+html.js input.throbbing {
+  background-position: 0% -18px;
+}
+
+html.js fieldset.collapsible legend a {
+  padding-left: 0;
+  padding-right: 15px;
+  background-position: 98% 75%;
+}
+html.js fieldset.collapsed legend a {
+  background-image: url(../../misc/menu-collapsed-rtl.png);
+  background-position: 98% 50%;
+}
+
+div.teaser-button-wrapper {
+  float: left;
+  padding-right: 0;
+  padding-left: 5%;
+}
+.teaser-checkbox div.form-item {
+  float: left;
+  margin: 0 0 0 5%;
+}
+.progress .percentage {
+  float: left;
+}
+.progess-disabled {
+  float: right;
+}
+.ahah-progress {
+  float: right;
+}
+.ahah-progress .throbber {
+  float: right;
+}
+input.password-field {
+  margin-left: 10px;
+  margin-right: 0;
+}
+input.password-confirm {
+  margin-left: 10px;
+  margin-right: 0;
+}
+
+.draggable a.tabledrag-handle {
+  float: right;
+  margin: -0.4em -0.5em -0.4em 0;
+  padding: 0.42em 0.5em 0.42em 1.5em;
+}
+div.indentation {
+  margin: -0.4em -0.4em -0.4em 0.2em;
+  padding: 0.42em 0.6em 0.42em 0;
+  float: right;
+}
+div.tree-child, div.tree-child-last {
+  background-position: -65px center;
+}
+
+
+/*
+ * modules/system/system.css
+ */
+
+/*
+** HTML elements
+*/
+body.drag {
+  cursor: move;
+}
+th.active img {
+  display: inline;
+}
+tr.even, tr.odd {
+  background-color: #eee;
+  border-bottom: 1px solid #ccc;
+  padding: 0.1em 0.6em;
+}
+tr.drag {
+  background-color: #fffff0;
+}
+tr.drag-previous {
+  background-color: #ffd;
+}
+td.active {
+  background-color: #ddd;
+}
+td.checkbox, th.checkbox {
+  text-align: center;
+}
+tbody {
+  border-top: 1px solid #ccc;
+}
+tbody th {
+  border-bottom: 1px solid #ccc;
+}
+thead th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+/*
+** Other common styles
+*/
+.breadcrumb {
+  padding-bottom: .5em
+}
+div.indentation {
+  width: 20px;
+  height: 1.7em;
+  margin: -0.4em 0.2em -0.4em -0.4em; /* LTR */
+  padding: 0.42em 0 0.42em 0.6em; /* LTR */
+  float: left; /* LTR */
+}
+div.tree-child {
+  background: url(../../misc/tree.png) no-repeat 11px center; /* LTR */
+}
+div.tree-child-last {
+  background: url(../../misc/tree-bottom.png) no-repeat 11px center; /* LTR */
+}
+div.tree-child-horizontal {
+  background: url(../../misc/tree.png) no-repeat -11px center;
+}
+.error {
+  color: #e55;
+}
+div.error {
+  border: 1px solid #d77;
+}
+div.error, tr.error {
+  background: #fcc;
+  color: #200;
+  padding: 2px;
+}
+.warning {
+  color: #e09010;
+}
+div.warning {
+  border: 1px solid #f0c020;
+}
+div.warning, tr.warning {
+  background: #ffd;
+  color: #220;
+  padding: 2px;
+}
+.ok {
+  color: #008000;
+}
+div.ok {
+  border: 1px solid #00aa00;
+}
+div.ok, tr.ok {
+  background: #dfd;
+  color: #020;
+  padding: 2px;
+}
+.item-list .icon {
+  color: #555;
+  float: right; /* LTR */
+  padding-left: 0.25em; /* LTR */
+  clear: right; /* LTR */
+}
+.item-list .title {
+  font-weight: bold;
+}
+.item-list ul {
+  margin: 0 0 0.75em 0;
+  padding: 0;
+}
+.item-list ul li {
+  margin: 0 0 0.25em 1.5em; /* LTR */
+  padding: 0;
+  list-style: disc;
+}
+ol.task-list li.active {
+  font-weight: bold;
+}
+.form-item {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+tr.odd .form-item, tr.even .form-item {
+  margin-top: 0;
+  margin-bottom: 0;
+  white-space: nowrap;
+}
+tr.merge-down, tr.merge-down td, tr.merge-down th {
+  border-bottom-width: 0 !important;
+}
+tr.merge-up, tr.merge-up td, tr.merge-up th {
+  border-top-width: 0 !important;
+}
+.form-item input.error, .form-item textarea.error, .form-item select.error {
+  border: 2px solid red;
+}
+.form-item .description {
+  font-size: 0.85em;
+}
+.form-item label {
+  display: block;
+  font-weight: bold;
+}
+.form-item label.option {
+  display: inline;
+  font-weight: normal;
+}
+.form-checkboxes, .form-radios {
+  margin: 1em 0;
+}
+.form-checkboxes .form-item, .form-radios .form-item {
+  margin-top: 0.4em;
+  margin-bottom: 0.4em;
+}
+.marker, .form-required {
+  color: #f00;
+}
+.more-link {
+  text-align: right; /* LTR */
+}
+.more-help-link {
+  font-size: 0.85em;
+  text-align: right; /* LTR */
+}
+.nowrap {
+  white-space: nowrap;
+}
+.item-list .pager {
+  clear: both;
+  text-align: center;
+}
+.item-list .pager li {
+  background-image:none;
+  display:inline;
+  list-style-type:none;
+  padding: 0.5em;
+}
+.pager-current {
+  font-weight:bold;
+}
+.tips {
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-top: 0;
+  padding-bottom: 0;
+  font-size: 0.9em;
+}
+dl.multiselect dd.b, dl.multiselect dd.b .form-item, dl.multiselect dd.b select {
+  font-family: inherit;
+  font-size: inherit;
+  width: 14em;
+}
+dl.multiselect dd.a, dl.multiselect dd.a .form-item {
+  width: 8em;
+}
+dl.multiselect dt, dl.multiselect dd {
+  float: left; /* LTR */
+  line-height: 1.75em;
+  padding: 0;
+  margin: 0 1em 0 0; /* LTR */
+}
+dl.multiselect .form-item {
+  height: 1.75em;
+  margin: 0;
+}
+
+/*
+** Inline items (need to override above)
+*/
+.container-inline div, .container-inline label {
+  display: inline;
+}
+
+/*
+** Tab navigation
+*/
+ul.primary {
+  border-collapse: collapse;
+  padding: 0 0 0 1em; /* LTR */
+  white-space: nowrap;
+  list-style: none;
+  margin: 5px;
+  height: auto;
+  line-height: normal;
+  border-bottom: 1px solid #bbb;
+}
+ul.primary li {
+  display: inline;
+}
+ul.primary li a {
+  background-color: #ddd;
+  border-color: #bbb;
+  border-width: 1px;
+  border-style: solid solid none solid;
+  height: auto;
+  margin-right: 0.5em; /* LTR */
+  padding: 0 1em;
+  text-decoration: none;
+}
+ul.primary li.active a {
+  background-color: #fff;
+  border: 1px solid #bbb;
+  border-bottom: #fff 1px solid;
+}
+ul.primary li a:hover {
+  background-color: #eee;
+  border-color: #ccc;
+  border-bottom-color: #eee;
+}
+ul.secondary {
+  border-bottom: 1px solid #bbb;
+  padding: 0.5em 1em;
+  margin: 5px;
+}
+ul.secondary li {
+  display: inline;
+  padding: 0 1em;
+  border-right: 1px solid #ccc; /* LTR */
+}
+ul.secondary a {
+  padding: 0;
+  text-decoration: none;
+}
+ul.secondary a.active {
+  border-bottom: 4px solid #999;
+}
+
+/*
+** Autocomplete styles
+*/
+/* Suggestion list */
+#autocomplete {
+  position: absolute;
+  border: 1px solid;
+  overflow: hidden;
+  z-index: 100;
+}
+#autocomplete ul {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+#autocomplete li {
+  background: #fff;
+  color: #000;
+  white-space: pre;
+  cursor: default;
+}
+#autocomplete li.selected {
+  background: #0072b9;
+  color: #fff;
+}
+/* Animated throbber */
+html.js input.form-autocomplete {
+  background-image: url(../../misc/throbber.gif);
+  background-repeat: no-repeat;
+  background-position: 100% 2px; /* LTR */
+}
+html.js input.throbbing {
+  background-position: 100% -18px; /* LTR */
+}
+
+/*
+** Collapsing fieldsets
+*/
+html.js fieldset.collapsed {
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  margin-bottom: 0;
+  height: 1em;
+}
+html.js fieldset.collapsed * {
+  display: none;
+}
+html.js fieldset.collapsed legend {
+  display: block;
+}
+html.js fieldset.collapsible legend a {
+  padding-left: 15px; /* LTR */
+  background: url(../../misc/menu-expanded.png) 5px 75% no-repeat; /* LTR */
+}
+html.js fieldset.collapsed legend a {
+  background-image: url(../../misc/menu-collapsed.png); /* LTR */
+  background-position: 5px 50%; /* LTR */
+}
+/* Note: IE-only fix due to '* html' (breaks Konqueror otherwise). */
+* html.js fieldset.collapsed legend,
+* html.js fieldset.collapsed legend *,
+* html.js fieldset.collapsed table * {
+  display: inline;
+}
+/* For Safari 2 to prevent collapsible fieldsets containing tables from dissapearing due to tableheader.js. */
+html.js fieldset.collapsible {
+  position: relative;
+}
+html.js fieldset.collapsible legend a {
+  display: block;
+}
+/* Avoid jumping around due to margins collapsing into collapsible fieldset border */
+html.js fieldset.collapsible .fieldset-wrapper {
+  overflow: auto;
+}
+
+/*
+** Resizable text areas
+*/
+.resizable-textarea {
+  width: 95%;
+}
+.resizable-textarea .grippie {
+  height: 9px;
+  overflow: hidden;
+  background: #eee url(../../misc/grippie.png) no-repeat center 2px;
+  border: 1px solid #ddd;
+  border-top-width: 0;
+  cursor: s-resize;
+}
+html.js .resizable-textarea textarea {
+  margin-bottom: 0;
+  width: 100%;
+  display: block;
+}
+
+/*
+** Table drag and drop.
+*/
+.draggable a.tabledrag-handle {
+  cursor: move;
+  float: left; /* LTR */
+  height: 1.7em;
+  margin: -0.4em 0 -0.4em -0.5em; /* LTR */
+  padding: 0.42em 1.5em 0.42em 0.5em; /* LTR */
+  text-decoration: none;
+}
+a.tabledrag-handle:hover {
+  text-decoration: none;
+}
+a.tabledrag-handle .handle {
+  margin-top: 4px;
+  height: 13px;
+  width: 13px;
+  background: url(../../misc/draggable.png) no-repeat 0 0;
+}
+a.tabledrag-handle-hover .handle {
+  background-position: 0 -20px;
+}
+
+/*
+** Teaser splitter
+*/
+.joined + .grippie {
+  height: 5px;
+  background-position: center 1px;
+  margin-bottom: -2px;
+}
+/* Keeps inner content contained in Opera 9. */
+.teaser-checkbox {
+  padding-top: 1px;
+}
+div.teaser-button-wrapper {
+  float: right; /* LTR */
+  padding-right: 5%; /* LTR */
+  margin: 0;
+}
+.teaser-checkbox div.form-item {
+  float: right; /* LTR */
+  margin: 0 5% 0 0; /* LTR */
+  padding: 0;
+}
+textarea.teaser {
+  display: none;
+}
+html.js .no-js {
+  display: none;
+}
+
+/*
+** Progressbar styles
+*/
+.progress {
+  font-weight: bold;
+}
+.progress .bar {
+  background: #fff url(../../misc/progress.gif);
+  border: 1px solid #00375a;
+  height: 1.5em;
+  margin: 0 0.2em;
+}
+.progress .filled {
+  background: #0072b9;
+  height: 1em;
+  border-bottom: 0.5em solid #004a73;
+  width: 0%;
+}
+.progress .percentage {
+  float: right; /* LTR */
+}
+.progress-disabled {
+  float: left; /* LTR */
+}
+.ahah-progress {
+  float: left; /* LTR */
+}
+.ahah-progress .throbber {
+  width: 15px;
+  height: 15px;
+  margin: 2px;
+  background: transparent url(../../misc/throbber.gif) no-repeat 0px -18px;
+  float: left; /* LTR */
+}
+tr .ahah-progress .throbber {
+  margin: 0 2px;
+}
+.ahah-progress-bar {
+  width: 16em;
+}
+
+/*
+** Formatting for welcome page
+*/
+#first-time strong {
+  display: block;
+  padding: 1.5em 0 .5em;
+}
+
+/*
+** To be used with tableselect.js
+*/
+tr.selected td {
+  background: #ffc;
+}
+
+/*
+** Floating header for tableheader.js
+*/
+table.sticky-header {
+  margin-top: 0;
+  background: #fff;
+}
+
+/*
+** Installation clean URLs
+*/
+#clean-url.install {
+  display: none;
+}
+
+/*
+** For anything you want to hide on page load when JS is enabled, so
+** that you can use the JS to control visibility and avoid flicker.
+*/
+html.js .js-hide {
+  display: none;
+}
+
+/*
+** Styles for the system modules page (admin/build/modules)
+*/
+#system-modules div.incompatible {
+  font-weight: bold;
+}
+
+/*
+** Styles for the system themes page (admin/build/themes)
+*/
+#system-themes-form div.incompatible {
+  font-weight: bold;
+}
+
+/*
+** Password strength indicator
+*/
+span.password-strength {
+  visibility: hidden;
+}
+input.password-field {
+  margin-right: 10px; /* LTR */
+}
+div.password-description {
+  padding: 0 2px;
+  margin: 4px 0 0 0;
+  font-size: 0.85em;
+  max-width: 500px;
+}
+div.password-description ul {
+  margin-bottom: 0;
+}
+.password-parent {
+  margin: 0 0 0 0;
+}
+/*
+** Password confirmation checker
+*/
+input.password-confirm {
+  margin-right: 10px; /* LTR */
+}
+.confirm-parent {
+  margin: 5px 0 0 0;
+}
+span.password-confirm {
+  visibility: hidden;
+}
+span.password-confirm span {
+  font-weight: normal;
+}
+
+
+/*
+ * modules/taxonomy/taxonomy.css
+ */
+
+tr.taxonomy-term-preview {
+  background-color: #EEE;
+}
+tr.taxonomy-term-divider-top {
+  border-bottom: none;
+}
+tr.taxonomy-term-divider-bottom {
+  border-top: 1px dotted #CCC;
+}
+.taxonomy-term-description {
+  margin: 5px 0 20px;
+}
+
+
+/*
+ * modules/tracker/tracker.css
+ */
+
+#tracker td.replies {
+  text-align: center;
+}
+#tracker table {
+  width: 100%;
+}
+
+
+/*
+ * modules/update/update-rtl.css
+ */
+
+.update .project {
+  padding-right: .25em;
+}
+
+.update .version-status {
+  float: left;
+  padding-left: 10px;
+}
+
+.update .version-status .icon {
+  padding-right: .5em;
+}
+
+.update table.version .version-title {
+  padding-left: 1em;
+}
+
+.update table.version .version-details {
+  padding-left: .5em;
+  direction: ltr;
+}
+
+.update table.version .version-links {
+  text-align: left;
+  padding-left: 1em;
+}
+
+.update .check-manually {
+  padding-right: 1em;
+}
+
+
+/*
+ * modules/update/update.css
+ */
+
+.update .project {
+  font-weight: bold;
+  font-size: 110%;
+  padding-left: .25em; /* LTR */
+  height: 22px;
+}
+
+.update .version-status {
+  float: right; /* LTR */
+  padding-right: 10px; /* LTR */
+  font-size: 110%;
+  height: 20px;
+}
+
+.update .version-status .icon {
+  padding-left: .5em; /* LTR */
+}
+
+.update .version-date {
+  white-space: nowrap;
+}
+
+.update .info {
+  margin: 0;
+  padding: 1em 1em .25em 1em;
+}
+
+.update tr td {
+  border-top: 1px solid #ccc;
+  border-bottom: 1px solid #ccc;
+}
+
+.update tr.error {
+  background: #fcc;
+}
+
+.update tr.error .version-recommended {
+  background: #fdd;
+}
+
+.update tr.ok {
+  background: #dfd;
+}
+
+.update tr.warning {
+  background: #ffd;
+}
+
+.update tr.warning .version-recommended {
+  background: #ffe;
+}
+
+.current-version, .new-version {
+  direction: ltr; /* Note: version numbers should always be LTR. */
+}
+
+.update tr.unknown {
+  background: #ddd;
+}
+
+table.update,
+.update table.version {
+  width: 100%;
+  margin-top: .5em;
+}
+
+.update table.version tbody {
+  border: none;
+}
+
+.update table.version tr,
+.update table.version td {
+  line-height: .9em;
+  padding: 0;
+  margin: 0;
+  border: none;
+}
+
+.update table.version .version-title {
+  padding-left: 1em; /* LTR */
+  width: 14em;
+}
+
+.update table.version .version-details {
+  padding-right: .5em; /* LTR */
+}
+
+.update table.version .version-links {
+  text-align: right; /* LTR */
+  padding-right: 1em; /* LTR */
+}
+
+.update table.version-security .version-title {
+  color: #970F00;
+}
+
+.update table.version-recommended-strong .version-title {
+  font-weight: bold;
+}
+
+.update .security-error {
+  font-weight: bold;
+  color: #970F00;
+}
+
+.update .check-manually {
+  padding-left: 1em; /* LTR */
+}
+
+
+/*
+ * modules/user/user-rtl.css
+ */
+
+#permissions td.permission {
+  padding-left: 0;
+  padding-right: 1.5em;
+}
+#access-rules .access-type, #access-rules .rule-type {
+  margin-right: 0;
+  margin-left: 1em;
+  float: right;
+}
+#user-admin-buttons {
+  float: right;
+  margin-left: 0;
+  margin-right: 0.5em;
+  clear: left;
+}
+
+.profile .picture {
+  float: left;
+  margin: 0 0 1em 1em;
+}
+
+
+/*
+ * modules/user/user.css
+ */
+
+#permissions td.module {
+  font-weight: bold;
+}
+#permissions td.permission {
+  padding-left: 1.5em; /* LTR */
+}
+#access-rules .access-type, #access-rules .rule-type {
+  margin-right: 1em; /* LTR */
+  float: left; /* LTR */
+}
+#access-rules .access-type .form-item, #access-rules .rule-type .form-item {
+  margin-top: 0;
+}
+#access-rules .mask {
+  clear: both;
+}
+#user-login-form {
+  text-align: center;
+}
+#user-admin-filter ul {
+  list-style-type: none;
+  padding: 0;
+  margin: 0;
+  width: 100%;
+}
+#user-admin-buttons {
+  float: left; /* LTR */
+  margin-left: 0.5em; /* LTR */
+  clear: right; /* LTR */
+}
+#user-admin-settings fieldset .description {
+  font-size: 0.85em;
+  padding-bottom: .5em;
+}
+
+/* Generated by user.module but used by profile.module: */
+.profile {
+  clear: both;
+  margin: 1em 0;
+}
+.profile .picture {
+  float: right; /* LTR */
+  margin: 0 1em 1em 0; /* LTR */
+}
+.profile h3 {
+  border-bottom: 1px solid #ccc;
+}
+.profile dl {
+  margin: 0 0 1.5em 0;
+}
+.profile dt {
+  margin: 0 0 0.2em 0;
+  font-weight: bold;
+}
+.profile dd {
+  margin: 0 0 1em 0;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/fields.css b/drupal/sites/default/boinc/themes/boinc/css/fields.css
new file mode 100644
index 0000000..54183a2
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/fields.css
@@ -0,0 +1,46 @@
+/* $Id: fields.css,v 1.3 2009/08/12 08:03:52 johnalbin Exp $ */
+
+/**
+ * @file
+ * Field Styling
+ */
+
+
+/*
+ * Field types
+ */
+
+.field /* Wrapper for any CCK field. */ {
+}
+
+.field-type-datetime /* Always use "datetime" when creating new CCK date fields. "date" and "datestamp" are legacy types. */ {
+}
+
+.field-type-filefield /* Field from filefield module */ {
+}
+
+.field-type-nodereference {
+}
+
+.field-type-number-decimal {
+}
+
+.field-type-number-float {
+}
+
+.field-type-number-integer {
+}
+
+.field-type-text {
+}
+
+.field-type-userreference {
+}
+
+
+/*
+ * Named fields
+ */
+
+.field-field-FIELDNAME /* Underscores in field name are replaced with dashes. */ {
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/font-awesome.css b/drupal/sites/default/boinc/themes/boinc/css/font-awesome.css
new file mode 100644
index 0000000..a0b879f
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/font-awesome.css
@@ -0,0 +1,2199 @@
+/*!
+ *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+ at font-face {
+  font-family: 'FontAwesome';
+  src: url('../fonts/fontawesome-webfont.eot?v=4.6.3');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.fa {
+  display: inline-block;
+  font: normal normal normal 14px/1 FontAwesome;
+  font-size: inherit;
+  text-rendering: auto;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.33333333em;
+  line-height: 0.75em;
+  vertical-align: -15%;
+}
+.fa-2x {
+  font-size: 2em;
+}
+.fa-3x {
+  font-size: 3em;
+}
+.fa-4x {
+  font-size: 4em;
+}
+.fa-5x {
+  font-size: 5em;
+}
+.fa-fw {
+  width: 1.28571429em;
+  text-align: center;
+}
+.fa-ul {
+  padding-left: 0;
+  margin-left: 2.14285714em;
+  list-style-type: none;
+}
+.fa-ul > li {
+  position: relative;
+}
+.fa-li {
+  position: absolute;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
+  text-align: center;
+}
+.fa-li.fa-lg {
+  left: -1.85714286em;
+}
+.fa-border {
+  padding: .2em .25em .15em;
+  border: solid 0.08em #eeeeee;
+  border-radius: .1em;
+}
+.fa-pull-left {
+  float: left;
+}
+.fa-pull-right {
+  float: right;
+}
+.fa.fa-pull-left {
+  margin-right: .3em;
+}
+.fa.fa-pull-right {
+  margin-left: .3em;
+}
+/* Deprecated as of 4.4.0 */
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
+.fa.pull-left {
+  margin-right: .3em;
+}
+.fa.pull-right {
+  margin-left: .3em;
+}
+.fa-spin {
+  -webkit-animation: fa-spin 2s infinite linear;
+  animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+  animation: fa-spin 1s infinite steps(8);
+}
+ at -webkit-keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+ at keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+.fa-rotate-90 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.fa-rotate-180 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.fa-rotate-270 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  filter: none;
+}
+.fa-stack {
+  position: relative;
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  line-height: 2em;
+  vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  text-align: center;
+}
+.fa-stack-1x {
+  line-height: inherit;
+}
+.fa-stack-2x {
+  font-size: 2em;
+}
+.fa-inverse {
+  color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.fa-glass:before {
+  content: "\f000";
+}
+.fa-music:before {
+  content: "\f001";
+}
+.fa-search:before {
+  content: "\f002";
+}
+.fa-envelope-o:before {
+  content: "\f003";
+}
+.fa-heart:before {
+  content: "\f004";
+}
+.fa-star:before {
+  content: "\f005";
+}
+.fa-star-o:before {
+  content: "\f006";
+}
+.fa-user:before {
+  content: "\f007";
+}
+.fa-film:before {
+  content: "\f008";
+}
+.fa-th-large:before {
+  content: "\f009";
+}
+.fa-th:before {
+  content: "\f00a";
+}
+.fa-th-list:before {
+  content: "\f00b";
+}
+.fa-check:before {
+  content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+  content: "\f00d";
+}
+.fa-search-plus:before {
+  content: "\f00e";
+}
+.fa-search-minus:before {
+  content: "\f010";
+}
+.fa-power-off:before {
+  content: "\f011";
+}
+.fa-signal:before {
+  content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+  content: "\f013";
+}
+.fa-trash-o:before {
+  content: "\f014";
+}
+.fa-home:before {
+  content: "\f015";
+}
+.fa-file-o:before {
+  content: "\f016";
+}
+.fa-clock-o:before {
+  content: "\f017";
+}
+.fa-road:before {
+  content: "\f018";
+}
+.fa-download:before {
+  content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+  content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+  content: "\f01b";
+}
+.fa-inbox:before {
+  content: "\f01c";
+}
+.fa-play-circle-o:before {
+  content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+  content: "\f01e";
+}
+.fa-refresh:before {
+  content: "\f021";
+}
+.fa-list-alt:before {
+  content: "\f022";
+}
+.fa-lock:before {
+  content: "\f023";
+}
+.fa-flag:before {
+  content: "\f024";
+}
+.fa-headphones:before {
+  content: "\f025";
+}
+.fa-volume-off:before {
+  content: "\f026";
+}
+.fa-volume-down:before {
+  content: "\f027";
+}
+.fa-volume-up:before {
+  content: "\f028";
+}
+.fa-qrcode:before {
+  content: "\f029";
+}
+.fa-barcode:before {
+  content: "\f02a";
+}
+.fa-tag:before {
+  content: "\f02b";
+}
+.fa-tags:before {
+  content: "\f02c";
+}
+.fa-book:before {
+  content: "\f02d";
+}
+.fa-bookmark:before {
+  content: "\f02e";
+}
+.fa-print:before {
+  content: "\f02f";
+}
+.fa-camera:before {
+  content: "\f030";
+}
+.fa-font:before {
+  content: "\f031";
+}
+.fa-bold:before {
+  content: "\f032";
+}
+.fa-italic:before {
+  content: "\f033";
+}
+.fa-text-height:before {
+  content: "\f034";
+}
+.fa-text-width:before {
+  content: "\f035";
+}
+.fa-align-left:before {
+  content: "\f036";
+}
+.fa-align-center:before {
+  content: "\f037";
+}
+.fa-align-right:before {
+  content: "\f038";
+}
+.fa-align-justify:before {
+  content: "\f039";
+}
+.fa-list:before {
+  content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+  content: "\f03b";
+}
+.fa-indent:before {
+  content: "\f03c";
+}
+.fa-video-camera:before {
+  content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+  content: "\f03e";
+}
+.fa-pencil:before {
+  content: "\f040";
+}
+.fa-map-marker:before {
+  content: "\f041";
+}
+.fa-adjust:before {
+  content: "\f042";
+}
+.fa-tint:before {
+  content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+  content: "\f044";
+}
+.fa-share-square-o:before {
+  content: "\f045";
+}
+.fa-check-square-o:before {
+  content: "\f046";
+}
+.fa-arrows:before {
+  content: "\f047";
+}
+.fa-step-backward:before {
+  content: "\f048";
+}
+.fa-fast-backward:before {
+  content: "\f049";
+}
+.fa-backward:before {
+  content: "\f04a";
+}
+.fa-play:before {
+  content: "\f04b";
+}
+.fa-pause:before {
+  content: "\f04c";
+}
+.fa-stop:before {
+  content: "\f04d";
+}
+.fa-forward:before {
+  content: "\f04e";
+}
+.fa-fast-forward:before {
+  content: "\f050";
+}
+.fa-step-forward:before {
+  content: "\f051";
+}
+.fa-eject:before {
+  content: "\f052";
+}
+.fa-chevron-left:before {
+  content: "\f053";
+}
+.fa-chevron-right:before {
+  content: "\f054";
+}
+.fa-plus-circle:before {
+  content: "\f055";
+}
+.fa-minus-circle:before {
+  content: "\f056";
+}
+.fa-times-circle:before {
+  content: "\f057";
+}
+.fa-check-circle:before {
+  content: "\f058";
+}
+.fa-question-circle:before {
+  content: "\f059";
+}
+.fa-info-circle:before {
+  content: "\f05a";
+}
+.fa-crosshairs:before {
+  content: "\f05b";
+}
+.fa-times-circle-o:before {
+  content: "\f05c";
+}
+.fa-check-circle-o:before {
+  content: "\f05d";
+}
+.fa-ban:before {
+  content: "\f05e";
+}
+.fa-arrow-left:before {
+  content: "\f060";
+}
+.fa-arrow-right:before {
+  content: "\f061";
+}
+.fa-arrow-up:before {
+  content: "\f062";
+}
+.fa-arrow-down:before {
+  content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+  content: "\f064";
+}
+.fa-expand:before {
+  content: "\f065";
+}
+.fa-compress:before {
+  content: "\f066";
+}
+.fa-plus:before {
+  content: "\f067";
+}
+.fa-minus:before {
+  content: "\f068";
+}
+.fa-asterisk:before {
+  content: "\f069";
+}
+.fa-exclamation-circle:before {
+  content: "\f06a";
+}
+.fa-gift:before {
+  content: "\f06b";
+}
+.fa-leaf:before {
+  content: "\f06c";
+}
+.fa-fire:before {
+  content: "\f06d";
+}
+.fa-eye:before {
+  content: "\f06e";
+}
+.fa-eye-slash:before {
+  content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+  content: "\f071";
+}
+.fa-plane:before {
+  content: "\f072";
+}
+.fa-calendar:before {
+  content: "\f073";
+}
+.fa-random:before {
+  content: "\f074";
+}
+.fa-comment:before {
+  content: "\f075";
+}
+.fa-magnet:before {
+  content: "\f076";
+}
+.fa-chevron-up:before {
+  content: "\f077";
+}
+.fa-chevron-down:before {
+  content: "\f078";
+}
+.fa-retweet:before {
+  content: "\f079";
+}
+.fa-shopping-cart:before {
+  content: "\f07a";
+}
+.fa-folder:before {
+  content: "\f07b";
+}
+.fa-folder-open:before {
+  content: "\f07c";
+}
+.fa-arrows-v:before {
+  content: "\f07d";
+}
+.fa-arrows-h:before {
+  content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+  content: "\f080";
+}
+.fa-twitter-square:before {
+  content: "\f081";
+}
+.fa-facebook-square:before {
+  content: "\f082";
+}
+.fa-camera-retro:before {
+  content: "\f083";
+}
+.fa-key:before {
+  content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+  content: "\f085";
+}
+.fa-comments:before {
+  content: "\f086";
+}
+.fa-thumbs-o-up:before {
+  content: "\f087";
+}
+.fa-thumbs-o-down:before {
+  content: "\f088";
+}
+.fa-star-half:before {
+  content: "\f089";
+}
+.fa-heart-o:before {
+  content: "\f08a";
+}
+.fa-sign-out:before {
+  content: "\f08b";
+}
+.fa-linkedin-square:before {
+  content: "\f08c";
+}
+.fa-thumb-tack:before {
+  content: "\f08d";
+}
+.fa-external-link:before {
+  content: "\f08e";
+}
+.fa-sign-in:before {
+  content: "\f090";
+}
+.fa-trophy:before {
+  content: "\f091";
+}
+.fa-github-square:before {
+  content: "\f092";
+}
+.fa-upload:before {
+  content: "\f093";
+}
+.fa-lemon-o:before {
+  content: "\f094";
+}
+.fa-phone:before {
+  content: "\f095";
+}
+.fa-square-o:before {
+  content: "\f096";
+}
+.fa-bookmark-o:before {
+  content: "\f097";
+}
+.fa-phone-square:before {
+  content: "\f098";
+}
+.fa-twitter:before {
+  content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before {
+  content: "\f09a";
+}
+.fa-github:before {
+  content: "\f09b";
+}
+.fa-unlock:before {
+  content: "\f09c";
+}
+.fa-credit-card:before {
+  content: "\f09d";
+}
+.fa-feed:before,
+.fa-rss:before {
+  content: "\f09e";
+}
+.fa-hdd-o:before {
+  content: "\f0a0";
+}
+.fa-bullhorn:before {
+  content: "\f0a1";
+}
+.fa-bell:before {
+  content: "\f0f3";
+}
+.fa-certificate:before {
+  content: "\f0a3";
+}
+.fa-hand-o-right:before {
+  content: "\f0a4";
+}
+.fa-hand-o-left:before {
+  content: "\f0a5";
+}
+.fa-hand-o-up:before {
+  content: "\f0a6";
+}
+.fa-hand-o-down:before {
+  content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+  content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+  content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+  content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+  content: "\f0ab";
+}
+.fa-globe:before {
+  content: "\f0ac";
+}
+.fa-wrench:before {
+  content: "\f0ad";
+}
+.fa-tasks:before {
+  content: "\f0ae";
+}
+.fa-filter:before {
+  content: "\f0b0";
+}
+.fa-briefcase:before {
+  content: "\f0b1";
+}
+.fa-arrows-alt:before {
+  content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+  content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+  content: "\f0c1";
+}
+.fa-cloud:before {
+  content: "\f0c2";
+}
+.fa-flask:before {
+  content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+  content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+  content: "\f0c5";
+}
+.fa-paperclip:before {
+  content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+  content: "\f0c7";
+}
+.fa-square:before {
+  content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+  content: "\f0c9";
+}
+.fa-list-ul:before {
+  content: "\f0ca";
+}
+.fa-list-ol:before {
+  content: "\f0cb";
+}
+.fa-strikethrough:before {
+  content: "\f0cc";
+}
+.fa-underline:before {
+  content: "\f0cd";
+}
+.fa-table:before {
+  content: "\f0ce";
+}
+.fa-magic:before {
+  content: "\f0d0";
+}
+.fa-truck:before {
+  content: "\f0d1";
+}
+.fa-pinterest:before {
+  content: "\f0d2";
+}
+.fa-pinterest-square:before {
+  content: "\f0d3";
+}
+.fa-google-plus-square:before {
+  content: "\f0d4";
+}
+.fa-google-plus:before {
+  content: "\f0d5";
+}
+.fa-money:before {
+  content: "\f0d6";
+}
+.fa-caret-down:before {
+  content: "\f0d7";
+}
+.fa-caret-up:before {
+  content: "\f0d8";
+}
+.fa-caret-left:before {
+  content: "\f0d9";
+}
+.fa-caret-right:before {
+  content: "\f0da";
+}
+.fa-columns:before {
+  content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+  content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+  content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+  content: "\f0de";
+}
+.fa-envelope:before {
+  content: "\f0e0";
+}
+.fa-linkedin:before {
+  content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+  content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+  content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+  content: "\f0e4";
+}
+.fa-comment-o:before {
+  content: "\f0e5";
+}
+.fa-comments-o:before {
+  content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+  content: "\f0e7";
+}
+.fa-sitemap:before {
+  content: "\f0e8";
+}
+.fa-umbrella:before {
+  content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+  content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+  content: "\f0eb";
+}
+.fa-exchange:before {
+  content: "\f0ec";
+}
+.fa-cloud-download:before {
+  content: "\f0ed";
+}
+.fa-cloud-upload:before {
+  content: "\f0ee";
+}
+.fa-user-md:before {
+  content: "\f0f0";
+}
+.fa-stethoscope:before {
+  content: "\f0f1";
+}
+.fa-suitcase:before {
+  content: "\f0f2";
+}
+.fa-bell-o:before {
+  content: "\f0a2";
+}
+.fa-coffee:before {
+  content: "\f0f4";
+}
+.fa-cutlery:before {
+  content: "\f0f5";
+}
+.fa-file-text-o:before {
+  content: "\f0f6";
+}
+.fa-building-o:before {
+  content: "\f0f7";
+}
+.fa-hospital-o:before {
+  content: "\f0f8";
+}
+.fa-ambulance:before {
+  content: "\f0f9";
+}
+.fa-medkit:before {
+  content: "\f0fa";
+}
+.fa-fighter-jet:before {
+  content: "\f0fb";
+}
+.fa-beer:before {
+  content: "\f0fc";
+}
+.fa-h-square:before {
+  content: "\f0fd";
+}
+.fa-plus-square:before {
+  content: "\f0fe";
+}
+.fa-angle-double-left:before {
+  content: "\f100";
+}
+.fa-angle-double-right:before {
+  content: "\f101";
+}
+.fa-angle-double-up:before {
+  content: "\f102";
+}
+.fa-angle-double-down:before {
+  content: "\f103";
+}
+.fa-angle-left:before {
+  content: "\f104";
+}
+.fa-angle-right:before {
+  content: "\f105";
+}
+.fa-angle-up:before {
+  content: "\f106";
+}
+.fa-angle-down:before {
+  content: "\f107";
+}
+.fa-desktop:before {
+  content: "\f108";
+}
+.fa-laptop:before {
+  content: "\f109";
+}
+.fa-tablet:before {
+  content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+  content: "\f10b";
+}
+.fa-circle-o:before {
+  content: "\f10c";
+}
+.fa-quote-left:before {
+  content: "\f10d";
+}
+.fa-quote-right:before {
+  content: "\f10e";
+}
+.fa-spinner:before {
+  content: "\f110";
+}
+.fa-circle:before {
+  content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+  content: "\f112";
+}
+.fa-github-alt:before {
+  content: "\f113";
+}
+.fa-folder-o:before {
+  content: "\f114";
+}
+.fa-folder-open-o:before {
+  content: "\f115";
+}
+.fa-smile-o:before {
+  content: "\f118";
+}
+.fa-frown-o:before {
+  content: "\f119";
+}
+.fa-meh-o:before {
+  content: "\f11a";
+}
+.fa-gamepad:before {
+  content: "\f11b";
+}
+.fa-keyboard-o:before {
+  content: "\f11c";
+}
+.fa-flag-o:before {
+  content: "\f11d";
+}
+.fa-flag-checkered:before {
+  content: "\f11e";
+}
+.fa-terminal:before {
+  content: "\f120";
+}
+.fa-code:before {
+  content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+  content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+  content: "\f123";
+}
+.fa-location-arrow:before {
+  content: "\f124";
+}
+.fa-crop:before {
+  content: "\f125";
+}
+.fa-code-fork:before {
+  content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+  content: "\f127";
+}
+.fa-question:before {
+  content: "\f128";
+}
+.fa-info:before {
+  content: "\f129";
+}
+.fa-exclamation:before {
+  content: "\f12a";
+}
+.fa-superscript:before {
+  content: "\f12b";
+}
+.fa-subscript:before {
+  content: "\f12c";
+}
+.fa-eraser:before {
+  content: "\f12d";
+}
+.fa-puzzle-piece:before {
+  content: "\f12e";
+}
+.fa-microphone:before {
+  content: "\f130";
+}
+.fa-microphone-slash:before {
+  content: "\f131";
+}
+.fa-shield:before {
+  content: "\f132";
+}
+.fa-calendar-o:before {
+  content: "\f133";
+}
+.fa-fire-extinguisher:before {
+  content: "\f134";
+}
+.fa-rocket:before {
+  content: "\f135";
+}
+.fa-maxcdn:before {
+  content: "\f136";
+}
+.fa-chevron-circle-left:before {
+  content: "\f137";
+}
+.fa-chevron-circle-right:before {
+  content: "\f138";
+}
+.fa-chevron-circle-up:before {
+  content: "\f139";
+}
+.fa-chevron-circle-down:before {
+  content: "\f13a";
+}
+.fa-html5:before {
+  content: "\f13b";
+}
+.fa-css3:before {
+  content: "\f13c";
+}
+.fa-anchor:before {
+  content: "\f13d";
+}
+.fa-unlock-alt:before {
+  content: "\f13e";
+}
+.fa-bullseye:before {
+  content: "\f140";
+}
+.fa-ellipsis-h:before {
+  content: "\f141";
+}
+.fa-ellipsis-v:before {
+  content: "\f142";
+}
+.fa-rss-square:before {
+  content: "\f143";
+}
+.fa-play-circle:before {
+  content: "\f144";
+}
+.fa-ticket:before {
+  content: "\f145";
+}
+.fa-minus-square:before {
+  content: "\f146";
+}
+.fa-minus-square-o:before {
+  content: "\f147";
+}
+.fa-level-up:before {
+  content: "\f148";
+}
+.fa-level-down:before {
+  content: "\f149";
+}
+.fa-check-square:before {
+  content: "\f14a";
+}
+.fa-pencil-square:before {
+  content: "\f14b";
+}
+.fa-external-link-square:before {
+  content: "\f14c";
+}
+.fa-share-square:before {
+  content: "\f14d";
+}
+.fa-compass:before {
+  content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+  content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+  content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+  content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+  content: "\f153";
+}
+.fa-gbp:before {
+  content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+  content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+  content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+  content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+  content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+  content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+  content: "\f15a";
+}
+.fa-file:before {
+  content: "\f15b";
+}
+.fa-file-text:before {
+  content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+  content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+  content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+  content: "\f160";
+}
+.fa-sort-amount-desc:before {
+  content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+  content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+  content: "\f163";
+}
+.fa-thumbs-up:before {
+  content: "\f164";
+}
+.fa-thumbs-down:before {
+  content: "\f165";
+}
+.fa-youtube-square:before {
+  content: "\f166";
+}
+.fa-youtube:before {
+  content: "\f167";
+}
+.fa-xing:before {
+  content: "\f168";
+}
+.fa-xing-square:before {
+  content: "\f169";
+}
+.fa-youtube-play:before {
+  content: "\f16a";
+}
+.fa-dropbox:before {
+  content: "\f16b";
+}
+.fa-stack-overflow:before {
+  content: "\f16c";
+}
+.fa-instagram:before {
+  content: "\f16d";
+}
+.fa-flickr:before {
+  content: "\f16e";
+}
+.fa-adn:before {
+  content: "\f170";
+}
+.fa-bitbucket:before {
+  content: "\f171";
+}
+.fa-bitbucket-square:before {
+  content: "\f172";
+}
+.fa-tumblr:before {
+  content: "\f173";
+}
+.fa-tumblr-square:before {
+  content: "\f174";
+}
+.fa-long-arrow-down:before {
+  content: "\f175";
+}
+.fa-long-arrow-up:before {
+  content: "\f176";
+}
+.fa-long-arrow-left:before {
+  content: "\f177";
+}
+.fa-long-arrow-right:before {
+  content: "\f178";
+}
+.fa-apple:before {
+  content: "\f179";
+}
+.fa-windows:before {
+  content: "\f17a";
+}
+.fa-android:before {
+  content: "\f17b";
+}
+.fa-linux:before {
+  content: "\f17c";
+}
+.fa-dribbble:before {
+  content: "\f17d";
+}
+.fa-skype:before {
+  content: "\f17e";
+}
+.fa-foursquare:before {
+  content: "\f180";
+}
+.fa-trello:before {
+  content: "\f181";
+}
+.fa-female:before {
+  content: "\f182";
+}
+.fa-male:before {
+  content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before {
+  content: "\f184";
+}
+.fa-sun-o:before {
+  content: "\f185";
+}
+.fa-moon-o:before {
+  content: "\f186";
+}
+.fa-archive:before {
+  content: "\f187";
+}
+.fa-bug:before {
+  content: "\f188";
+}
+.fa-vk:before {
+  content: "\f189";
+}
+.fa-weibo:before {
+  content: "\f18a";
+}
+.fa-renren:before {
+  content: "\f18b";
+}
+.fa-pagelines:before {
+  content: "\f18c";
+}
+.fa-stack-exchange:before {
+  content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+  content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+  content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+  content: "\f191";
+}
+.fa-dot-circle-o:before {
+  content: "\f192";
+}
+.fa-wheelchair:before {
+  content: "\f193";
+}
+.fa-vimeo-square:before {
+  content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+  content: "\f195";
+}
+.fa-plus-square-o:before {
+  content: "\f196";
+}
+.fa-space-shuttle:before {
+  content: "\f197";
+}
+.fa-slack:before {
+  content: "\f198";
+}
+.fa-envelope-square:before {
+  content: "\f199";
+}
+.fa-wordpress:before {
+  content: "\f19a";
+}
+.fa-openid:before {
+  content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+  content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+  content: "\f19d";
+}
+.fa-yahoo:before {
+  content: "\f19e";
+}
+.fa-google:before {
+  content: "\f1a0";
+}
+.fa-reddit:before {
+  content: "\f1a1";
+}
+.fa-reddit-square:before {
+  content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+  content: "\f1a3";
+}
+.fa-stumbleupon:before {
+  content: "\f1a4";
+}
+.fa-delicious:before {
+  content: "\f1a5";
+}
+.fa-digg:before {
+  content: "\f1a6";
+}
+.fa-pied-piper-pp:before {
+  content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+  content: "\f1a8";
+}
+.fa-drupal:before {
+  content: "\f1a9";
+}
+.fa-joomla:before {
+  content: "\f1aa";
+}
+.fa-language:before {
+  content: "\f1ab";
+}
+.fa-fax:before {
+  content: "\f1ac";
+}
+.fa-building:before {
+  content: "\f1ad";
+}
+.fa-child:before {
+  content: "\f1ae";
+}
+.fa-paw:before {
+  content: "\f1b0";
+}
+.fa-spoon:before {
+  content: "\f1b1";
+}
+.fa-cube:before {
+  content: "\f1b2";
+}
+.fa-cubes:before {
+  content: "\f1b3";
+}
+.fa-behance:before {
+  content: "\f1b4";
+}
+.fa-behance-square:before {
+  content: "\f1b5";
+}
+.fa-steam:before {
+  content: "\f1b6";
+}
+.fa-steam-square:before {
+  content: "\f1b7";
+}
+.fa-recycle:before {
+  content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+  content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+  content: "\f1ba";
+}
+.fa-tree:before {
+  content: "\f1bb";
+}
+.fa-spotify:before {
+  content: "\f1bc";
+}
+.fa-deviantart:before {
+  content: "\f1bd";
+}
+.fa-soundcloud:before {
+  content: "\f1be";
+}
+.fa-database:before {
+  content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+  content: "\f1c1";
+}
+.fa-file-word-o:before {
+  content: "\f1c2";
+}
+.fa-file-excel-o:before {
+  content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+  content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+  content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+  content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+  content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+  content: "\f1c8";
+}
+.fa-file-code-o:before {
+  content: "\f1c9";
+}
+.fa-vine:before {
+  content: "\f1ca";
+}
+.fa-codepen:before {
+  content: "\f1cb";
+}
+.fa-jsfiddle:before {
+  content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+  content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+  content: "\f1ce";
+}
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+  content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+  content: "\f1d1";
+}
+.fa-git-square:before {
+  content: "\f1d2";
+}
+.fa-git:before {
+  content: "\f1d3";
+}
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+  content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+  content: "\f1d5";
+}
+.fa-qq:before {
+  content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+  content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+  content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+  content: "\f1d9";
+}
+.fa-history:before {
+  content: "\f1da";
+}
+.fa-circle-thin:before {
+  content: "\f1db";
+}
+.fa-header:before {
+  content: "\f1dc";
+}
+.fa-paragraph:before {
+  content: "\f1dd";
+}
+.fa-sliders:before {
+  content: "\f1de";
+}
+.fa-share-alt:before {
+  content: "\f1e0";
+}
+.fa-share-alt-square:before {
+  content: "\f1e1";
+}
+.fa-bomb:before {
+  content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+  content: "\f1e3";
+}
+.fa-tty:before {
+  content: "\f1e4";
+}
+.fa-binoculars:before {
+  content: "\f1e5";
+}
+.fa-plug:before {
+  content: "\f1e6";
+}
+.fa-slideshare:before {
+  content: "\f1e7";
+}
+.fa-twitch:before {
+  content: "\f1e8";
+}
+.fa-yelp:before {
+  content: "\f1e9";
+}
+.fa-newspaper-o:before {
+  content: "\f1ea";
+}
+.fa-wifi:before {
+  content: "\f1eb";
+}
+.fa-calculator:before {
+  content: "\f1ec";
+}
+.fa-paypal:before {
+  content: "\f1ed";
+}
+.fa-google-wallet:before {
+  content: "\f1ee";
+}
+.fa-cc-visa:before {
+  content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+  content: "\f1f1";
+}
+.fa-cc-discover:before {
+  content: "\f1f2";
+}
+.fa-cc-amex:before {
+  content: "\f1f3";
+}
+.fa-cc-paypal:before {
+  content: "\f1f4";
+}
+.fa-cc-stripe:before {
+  content: "\f1f5";
+}
+.fa-bell-slash:before {
+  content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+  content: "\f1f7";
+}
+.fa-trash:before {
+  content: "\f1f8";
+}
+.fa-copyright:before {
+  content: "\f1f9";
+}
+.fa-at:before {
+  content: "\f1fa";
+}
+.fa-eyedropper:before {
+  content: "\f1fb";
+}
+.fa-paint-brush:before {
+  content: "\f1fc";
+}
+.fa-birthday-cake:before {
+  content: "\f1fd";
+}
+.fa-area-chart:before {
+  content: "\f1fe";
+}
+.fa-pie-chart:before {
+  content: "\f200";
+}
+.fa-line-chart:before {
+  content: "\f201";
+}
+.fa-lastfm:before {
+  content: "\f202";
+}
+.fa-lastfm-square:before {
+  content: "\f203";
+}
+.fa-toggle-off:before {
+  content: "\f204";
+}
+.fa-toggle-on:before {
+  content: "\f205";
+}
+.fa-bicycle:before {
+  content: "\f206";
+}
+.fa-bus:before {
+  content: "\f207";
+}
+.fa-ioxhost:before {
+  content: "\f208";
+}
+.fa-angellist:before {
+  content: "\f209";
+}
+.fa-cc:before {
+  content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+  content: "\f20b";
+}
+.fa-meanpath:before {
+  content: "\f20c";
+}
+.fa-buysellads:before {
+  content: "\f20d";
+}
+.fa-connectdevelop:before {
+  content: "\f20e";
+}
+.fa-dashcube:before {
+  content: "\f210";
+}
+.fa-forumbee:before {
+  content: "\f211";
+}
+.fa-leanpub:before {
+  content: "\f212";
+}
+.fa-sellsy:before {
+  content: "\f213";
+}
+.fa-shirtsinbulk:before {
+  content: "\f214";
+}
+.fa-simplybuilt:before {
+  content: "\f215";
+}
+.fa-skyatlas:before {
+  content: "\f216";
+}
+.fa-cart-plus:before {
+  content: "\f217";
+}
+.fa-cart-arrow-down:before {
+  content: "\f218";
+}
+.fa-diamond:before {
+  content: "\f219";
+}
+.fa-ship:before {
+  content: "\f21a";
+}
+.fa-user-secret:before {
+  content: "\f21b";
+}
+.fa-motorcycle:before {
+  content: "\f21c";
+}
+.fa-street-view:before {
+  content: "\f21d";
+}
+.fa-heartbeat:before {
+  content: "\f21e";
+}
+.fa-venus:before {
+  content: "\f221";
+}
+.fa-mars:before {
+  content: "\f222";
+}
+.fa-mercury:before {
+  content: "\f223";
+}
+.fa-intersex:before,
+.fa-transgender:before {
+  content: "\f224";
+}
+.fa-transgender-alt:before {
+  content: "\f225";
+}
+.fa-venus-double:before {
+  content: "\f226";
+}
+.fa-mars-double:before {
+  content: "\f227";
+}
+.fa-venus-mars:before {
+  content: "\f228";
+}
+.fa-mars-stroke:before {
+  content: "\f229";
+}
+.fa-mars-stroke-v:before {
+  content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+  content: "\f22b";
+}
+.fa-neuter:before {
+  content: "\f22c";
+}
+.fa-genderless:before {
+  content: "\f22d";
+}
+.fa-facebook-official:before {
+  content: "\f230";
+}
+.fa-pinterest-p:before {
+  content: "\f231";
+}
+.fa-whatsapp:before {
+  content: "\f232";
+}
+.fa-server:before {
+  content: "\f233";
+}
+.fa-user-plus:before {
+  content: "\f234";
+}
+.fa-user-times:before {
+  content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+  content: "\f236";
+}
+.fa-viacoin:before {
+  content: "\f237";
+}
+.fa-train:before {
+  content: "\f238";
+}
+.fa-subway:before {
+  content: "\f239";
+}
+.fa-medium:before {
+  content: "\f23a";
+}
+.fa-yc:before,
+.fa-y-combinator:before {
+  content: "\f23b";
+}
+.fa-optin-monster:before {
+  content: "\f23c";
+}
+.fa-opencart:before {
+  content: "\f23d";
+}
+.fa-expeditedssl:before {
+  content: "\f23e";
+}
+.fa-battery-4:before,
+.fa-battery-full:before {
+  content: "\f240";
+}
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+  content: "\f241";
+}
+.fa-battery-2:before,
+.fa-battery-half:before {
+  content: "\f242";
+}
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+  content: "\f243";
+}
+.fa-battery-0:before,
+.fa-battery-empty:before {
+  content: "\f244";
+}
+.fa-mouse-pointer:before {
+  content: "\f245";
+}
+.fa-i-cursor:before {
+  content: "\f246";
+}
+.fa-object-group:before {
+  content: "\f247";
+}
+.fa-object-ungroup:before {
+  content: "\f248";
+}
+.fa-sticky-note:before {
+  content: "\f249";
+}
+.fa-sticky-note-o:before {
+  content: "\f24a";
+}
+.fa-cc-jcb:before {
+  content: "\f24b";
+}
+.fa-cc-diners-club:before {
+  content: "\f24c";
+}
+.fa-clone:before {
+  content: "\f24d";
+}
+.fa-balance-scale:before {
+  content: "\f24e";
+}
+.fa-hourglass-o:before {
+  content: "\f250";
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+  content: "\f251";
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+  content: "\f252";
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+  content: "\f253";
+}
+.fa-hourglass:before {
+  content: "\f254";
+}
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+  content: "\f255";
+}
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+  content: "\f256";
+}
+.fa-hand-scissors-o:before {
+  content: "\f257";
+}
+.fa-hand-lizard-o:before {
+  content: "\f258";
+}
+.fa-hand-spock-o:before {
+  content: "\f259";
+}
+.fa-hand-pointer-o:before {
+  content: "\f25a";
+}
+.fa-hand-peace-o:before {
+  content: "\f25b";
+}
+.fa-trademark:before {
+  content: "\f25c";
+}
+.fa-registered:before {
+  content: "\f25d";
+}
+.fa-creative-commons:before {
+  content: "\f25e";
+}
+.fa-gg:before {
+  content: "\f260";
+}
+.fa-gg-circle:before {
+  content: "\f261";
+}
+.fa-tripadvisor:before {
+  content: "\f262";
+}
+.fa-odnoklassniki:before {
+  content: "\f263";
+}
+.fa-odnoklassniki-square:before {
+  content: "\f264";
+}
+.fa-get-pocket:before {
+  content: "\f265";
+}
+.fa-wikipedia-w:before {
+  content: "\f266";
+}
+.fa-safari:before {
+  content: "\f267";
+}
+.fa-chrome:before {
+  content: "\f268";
+}
+.fa-firefox:before {
+  content: "\f269";
+}
+.fa-opera:before {
+  content: "\f26a";
+}
+.fa-internet-explorer:before {
+  content: "\f26b";
+}
+.fa-tv:before,
+.fa-television:before {
+  content: "\f26c";
+}
+.fa-contao:before {
+  content: "\f26d";
+}
+.fa-500px:before {
+  content: "\f26e";
+}
+.fa-amazon:before {
+  content: "\f270";
+}
+.fa-calendar-plus-o:before {
+  content: "\f271";
+}
+.fa-calendar-minus-o:before {
+  content: "\f272";
+}
+.fa-calendar-times-o:before {
+  content: "\f273";
+}
+.fa-calendar-check-o:before {
+  content: "\f274";
+}
+.fa-industry:before {
+  content: "\f275";
+}
+.fa-map-pin:before {
+  content: "\f276";
+}
+.fa-map-signs:before {
+  content: "\f277";
+}
+.fa-map-o:before {
+  content: "\f278";
+}
+.fa-map:before {
+  content: "\f279";
+}
+.fa-commenting:before {
+  content: "\f27a";
+}
+.fa-commenting-o:before {
+  content: "\f27b";
+}
+.fa-houzz:before {
+  content: "\f27c";
+}
+.fa-vimeo:before {
+  content: "\f27d";
+}
+.fa-black-tie:before {
+  content: "\f27e";
+}
+.fa-fonticons:before {
+  content: "\f280";
+}
+.fa-reddit-alien:before {
+  content: "\f281";
+}
+.fa-edge:before {
+  content: "\f282";
+}
+.fa-credit-card-alt:before {
+  content: "\f283";
+}
+.fa-codiepie:before {
+  content: "\f284";
+}
+.fa-modx:before {
+  content: "\f285";
+}
+.fa-fort-awesome:before {
+  content: "\f286";
+}
+.fa-usb:before {
+  content: "\f287";
+}
+.fa-product-hunt:before {
+  content: "\f288";
+}
+.fa-mixcloud:before {
+  content: "\f289";
+}
+.fa-scribd:before {
+  content: "\f28a";
+}
+.fa-pause-circle:before {
+  content: "\f28b";
+}
+.fa-pause-circle-o:before {
+  content: "\f28c";
+}
+.fa-stop-circle:before {
+  content: "\f28d";
+}
+.fa-stop-circle-o:before {
+  content: "\f28e";
+}
+.fa-shopping-bag:before {
+  content: "\f290";
+}
+.fa-shopping-basket:before {
+  content: "\f291";
+}
+.fa-hashtag:before {
+  content: "\f292";
+}
+.fa-bluetooth:before {
+  content: "\f293";
+}
+.fa-bluetooth-b:before {
+  content: "\f294";
+}
+.fa-percent:before {
+  content: "\f295";
+}
+.fa-gitlab:before {
+  content: "\f296";
+}
+.fa-wpbeginner:before {
+  content: "\f297";
+}
+.fa-wpforms:before {
+  content: "\f298";
+}
+.fa-envira:before {
+  content: "\f299";
+}
+.fa-universal-access:before {
+  content: "\f29a";
+}
+.fa-wheelchair-alt:before {
+  content: "\f29b";
+}
+.fa-question-circle-o:before {
+  content: "\f29c";
+}
+.fa-blind:before {
+  content: "\f29d";
+}
+.fa-audio-description:before {
+  content: "\f29e";
+}
+.fa-volume-control-phone:before {
+  content: "\f2a0";
+}
+.fa-braille:before {
+  content: "\f2a1";
+}
+.fa-assistive-listening-systems:before {
+  content: "\f2a2";
+}
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+  content: "\f2a3";
+}
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+  content: "\f2a4";
+}
+.fa-glide:before {
+  content: "\f2a5";
+}
+.fa-glide-g:before {
+  content: "\f2a6";
+}
+.fa-signing:before,
+.fa-sign-language:before {
+  content: "\f2a7";
+}
+.fa-low-vision:before {
+  content: "\f2a8";
+}
+.fa-viadeo:before {
+  content: "\f2a9";
+}
+.fa-viadeo-square:before {
+  content: "\f2aa";
+}
+.fa-snapchat:before {
+  content: "\f2ab";
+}
+.fa-snapchat-ghost:before {
+  content: "\f2ac";
+}
+.fa-snapchat-square:before {
+  content: "\f2ad";
+}
+.fa-pied-piper:before {
+  content: "\f2ae";
+}
+.fa-first-order:before {
+  content: "\f2b0";
+}
+.fa-yoast:before {
+  content: "\f2b1";
+}
+.fa-themeisle:before {
+  content: "\f2b2";
+}
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+  content: "\f2b3";
+}
+.fa-fa:before,
+.fa-font-awesome:before {
+  content: "\f2b4";
+}
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  padding: 0;
+  margin: -1px;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+  position: static;
+  width: auto;
+  height: auto;
+  margin: 0;
+  overflow: visible;
+  clip: auto;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/font-awesome.min.css b/drupal/sites/default/boinc/themes/boinc/css/font-awesome.min.css
new file mode 100644
index 0000000..9b27f8e
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:norma [...]
diff --git a/drupal/sites/default/boinc/themes/boinc/css/forms-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/forms-rtl.css
new file mode 100644
index 0000000..ab49d4e
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/forms-rtl.css
@@ -0,0 +1,48 @@
+/* $Id: forms-rtl.css,v 1.3 2009/08/12 08:37:42 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the forms.css file.
+ */
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: right;
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-left: 0;
+  margin-right: -20px; /* Un-do some of the padding on the ul list. */
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: 0;
+  margin-right: -2em; /* Un-do all of the padding on the ul list. */
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form th,
+form thead th {
+  text-align: right;
+  padding-left: 1em;
+  padding-right: 0;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/forms.css b/drupal/sites/default/boinc/themes/boinc/css/forms.css
new file mode 100644
index 0000000..61805c7
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/forms.css
@@ -0,0 +1,623 @@
+/* $Id: forms.css,v 1.3 2009/08/12 08:37:42 johnalbin Exp $ */
+
+/**
+ * @file
+ * Form Styling
+ */
+
+.node-form .text {
+  width: 95%;
+}
+table .form-item label {
+  width: auto;
+  margin-right: 0;
+}
+
+fieldset {
+  padding: 0;
+}
+fieldset fieldset {
+  padding: 0.5em;
+}
+fieldset legend {
+  text-transform: uppercase;
+  font-weight: bold;
+  font-size: 12px;
+  letter-spacing: 1px;
+  padding-left: 0;
+}
+fieldset.collapsible {
+  margin: 2em 0;
+}
+fieldset.collapsible legend a {
+  color: #000;
+  font-size: 16px;
+  margin-left: -4px;
+  padding-left: 0.5em;
+}
+fieldset.collapsible fieldset,
+fieldset.collapsible .fieldset-wrapper {
+  margin: 0 1em;
+}
+fieldset.collapsible fieldset legend {
+  margin-bottom: 1em;
+}
+fieldset.collapsible legend a:hover {
+  text-decoration: none;
+}
+
+.form-item {
+  clear: both;
+}
+
+.form-item,
+.form-checkboxes,
+.form-radios /* Wrapper for a form element (or group of form elements) and its label */ {
+  margin: 0.5em 0;
+}
+
+.form-item.slim {
+  margin-top: 0;
+}
+
+.form-item input[type="text"] {
+  width: auto;
+}
+
+.form-item input.error,
+.form-item textarea.error,
+.form-item select.error /* Highlight the form elements that caused a form submission error */ {
+  border: 2px solid #c00;
+}
+
+.form-item label /* The label for a form element */ {
+  display: block;
+  clear: left;
+  float: left;
+  font-size: 14px;
+  line-height: 24px;
+  font-weight: normal;
+}
+.form-item label,
+.form-item .description {
+  width: 320px;
+  margin-right: 40px;
+  font-size: 12px;
+}
+.panel-col-first .form-item label {
+  width: 200px;
+}
+
+.form-item label.option /* The label for a radio button or checkbox */ {
+  display: inline;
+  font-weight: normal;
+  width: auto;
+}
+
+.form-required /* The part of the label that indicates a required field */ {
+  color: #c00;
+}
+
+table.preferences.combined {
+  width: 100%;
+}
+table.preferences.combined .description {
+  display: none;
+}
+table.preferences.combined .tab {
+  padding: 3px 0;
+  border: none;
+  display: block;
+}
+.preferences .description,
+.form-item .description /* The descriptive help text (separate from the label) */ {
+  font-size: 12px;
+  clear: left;
+  color: #707070;
+  min-height: 16px;
+}
+
+.form-checkboxes .form-item,
+.form-radios .form-item /* Pack groups of checkboxes and radio buttons closer together */ {
+  margin: 0;
+  clear: none;
+}
+.form-radios .form-item {
+  float: left;
+} 
+.simple-form-controls .form-item .description,
+.simple-form-controls .form-item label {
+  width: auto;
+  margin-right: 4px;
+}
+.simple-form-controls .form-item.venue {
+  margin: 2em 0;
+}
+.simple-form-controls .form-item.venue label {
+  font-weight: bold;
+}
+#prefs-wrapper .simple-form-controls .form-item label {
+  float: none;
+  line-height: inherit;
+}
+.form-radios.fancy .form-item input {
+  position: absolute;
+  z-index: -1000;
+}
+.form-radios.fancy .form-item label.option {
+  padding: 0 5px;
+  border-left: 1px solid #000;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  font-weight: bold;
+  cursor: pointer;
+  color: #707070;
+  font-size: 12px;
+  line-height: 20px;
+  margin: 2px 0;
+  width: auto;
+}
+.form-radios.fancy .form-item label.selected {
+  color: #000;
+}
+.form-radios.fancy .form-item label.first.option {
+  border-left: 0;
+}
+
+.form-item.venue form.jump-quickly {
+}
+form.jump-quickly input.form-submit {
+  display: none;
+}
+#prefs-wrapper fieldset {
+  padding-top: 0;
+  margin: 2em 0;
+}
+#prefs-wrapper fieldset.ahah-container {
+  margin: 0;
+}
+
+form ul.tab-list {
+  padding: 30px 0 0;
+  margin-bottom: 10px;
+}
+.form-submit /* The submit button */ {
+  border: none;
+  background: transparent;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  font-weight: bold;
+  font-size: 11px;
+  color: #faa341;
+  cursor: pointer;
+  padding: 0;
+  margin: 0;
+}
+.form-submit:hover {
+  text-decoration: underline;
+}
+
+.container-inline div,
+.container-inline label /* Inline labels and form divs */ {
+  display: inline;
+}
+
+.tips /* Tips for Drupal's input formats */ {
+}
+
+
+/*
+ * Comment form
+ */
+#comment-form {
+  position: relative;
+}
+#comment-form .user {
+  height: 100%;
+  margin: 0;
+  padding-top: 0;
+  padding-bottom: 0;
+  border-left: 1px dotted #aaa;
+}
+#comment-form .form-item input[type="text"] {
+  width: 100%;
+}
+
+
+/*
+ * Login form
+ */
+#user-login .form-item,
+#user-pass .form-item {
+  margin: 1.5em 0;
+}
+#user-login .form-item label,
+#user-pass .form-item label {
+  margin-right: 20px;
+  width: 140px;
+}
+#user-login .form-item input,
+#user-pass .form-item input {
+  width: 250px;
+}
+#user-login .description {
+  display: none;
+}
+#user-pass .description {
+  margin-left: 160px;
+  width: 250px;
+}
+#user-login .form-submit,
+#user-pass .form-submit {
+  margin-top: 14px;
+}
+
+span.password-strength,
+span.password-confirm {
+  color: #707070;
+}
+#user-register span.password-strength,
+#user-register span.password-confirm {
+  margin-left: 7px;
+}
+
+/*
+ * Search form and results
+ */
+.section-find .box{
+  
+  margin-top: 2.0em;
+  padding-top: 1.0em;
+  border-top: 2px dotted #aaa;
+}
+#search label[for=edit-keys] {
+  /* like an h1 heading */
+  font-size: 2em;
+  font-weight: bold;
+  line-height: 1.3em;
+  text-transform: uppercase;
+}
+.section-find .box h2 {
+  display: none;
+}
+.section-find .box .content h2 {
+  display: block;
+}
+
+.section-find .result {
+  margin-bottom: 1.5em;
+  padding-bottom: 1.5em;
+  border-bottom: 1px dotted #ccc;
+  clear: both;
+}
+.section-find .result .title,
+.section-find .result.user .name {
+  font-size: 1.2em;
+  text-transform: uppercase;
+  margin-bottom: 0.25em;
+}
+.section-find .result .details p {
+  margin: 0.25em 0;
+}
+.section-find .result .search-info,
+.section-find .result.user .user-stats {
+  color: #808080;
+}
+
+.section-find .result.user .picture {
+  width: 110px;
+  float: left;
+}
+.section-find .result.user .picture img {
+  margin: 0;
+}
+.section-find .result.user .user-stats {
+  font-size: 0.85em;
+  
+}
+
+
+/*
+ * Search (search-theme-form.tpl.php)
+ */
+#search-box /* Wrapper for the search form */ {
+}
+
+#edit-search-theme-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Search (search-block-form.tpl.php)
+ */
+#search-block-form /* Wrapper for the search form */ {
+}
+
+#edit-search-block-form-1-wrapper label /* Label that says "Search this site:" */ {
+  display: none;
+}
+
+
+/*
+ * Drupal's default login form block
+ */
+#user-login-form {
+  text-align: left; /* LTR */
+}
+
+
+/*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+
+#user-login-form ul /* OpenID creates a new ul above the login form's links. */ {
+  margin-bottom: 0; /* Position OpenID's ul next to the rest of the links. */
+}
+
+#user-login-form li.openid-link /* The "Log in using OpenID" link. */ {
+  margin-top: 1em;
+  margin-left: -20px; /* LTR */ /* Un-do some of the padding on the ul list. */
+}
+
+#user-login-form li.user-link /* The "Cancel OpenID login" link. */ {
+  margin-top: 1em;
+}
+
+#user-login ul {
+  margin: 1em 0;
+}
+
+#user-login li.openid-link,
+#user-login li.user-link /* The OpenID links on the /user form. */ {
+  margin-left: -2em; /* LTR */ /* Un-do all of the padding on the ul list. */
+}
+
+
+/* Account info form */
+#user-profile-form #edit-mail-wrapper .description {
+  display: none;
+}
+#user-profile-form .password-parent {
+  float: left;
+}
+#user-profile-form .password-parent span.password-strength,
+#user-profile-form .confirm-parent span.password-confirm {
+  display: block;
+  padding-top: 7px;
+}
+#user-profile-form .password-parent span.password-strength {
+  margin-left: 360px;
+}
+#user-profile-form .confirm-parent {
+  float: left;
+  clear: none;
+  margin-left: 7px;
+}
+#user-profile-form .confirm-parent label {
+  display: none;
+}
+#user-profile-form #edit-pass-wrapper .password-description {
+  clear: both;
+  margin-left: 360px;
+  width: 383px;
+}
+#user-profile-form #edit-pass-wrapper .description {
+  display: none;
+}
+#user-profile-form #edit-current-pass-wrapper .description {
+  display: none;
+}
+#user-profile-form .form-submit {
+  margin: 0;
+  padding: 0;
+}
+#user-profile-form fieldset {
+  margin-top: 2em;
+}
+#user-profile-form fieldset legend {
+  margin-bottom: 1em;
+}
+
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+
+form tbody {
+  border-top: 1px solid #ccc;
+}
+
+form th,
+form thead th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+
+form tbody th {
+  border-bottom: 1px solid #ccc;
+}
+
+
+/*
+ * Preferences
+ */
+.simple-form-controls .description {
+  min-height: auto;
+}
+
+fieldset.advanced-settings {
+  padding: 0;
+}
+fieldset.advanced-settings fieldset {
+  padding-bottom: 0;
+}
+fieldset.advanced-settings .fieldset-wrapper {
+  margin: 0;
+}
+form ul.form-control {
+  margin: 1.5em 0 0.5em;
+  padding: 0;
+  /*position: absolute;
+  bottom: 1em;
+  left: 0;
+  width: 100%;*/
+}
+html.js fieldset.collapsible legend a,
+.form-control li.tab,
+.form-control li.tab a,
+.form-control li.tab .form-submit {
+  /* background: transparent; */
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  font-weight: bold;
+  font-size: 11px;
+  color: #525758;
+  cursor: pointer;
+}
+.fieldset-wrapper .form-item:first-child {
+  margin-top: 0.5em;
+}
+.fieldset-wrapper .form-item div .form-item:first-child {
+  margin-top: auto;
+}
+.form-control li.tab {
+  margin: 0 0 0 1em;
+  padding: 0 0 0 1em;
+}
+.form-control li.first.tab {
+  color: #faa341;
+  margin-left: 0;
+  padding: 0;
+  border: none;
+}
+.form-control li.first.tab .form-submit {
+  color: #faa341;
+}
+.form-control li.first.alt.tab {
+  margin-right: 25px;
+}
+
+.preferences.combined .section-heading td {
+  padding-top: 2.5em;
+}
+
+#edit-prefs-advanced-processor-start-hour-wrapper,
+#edit-prefs-advanced-processor-end-hour-wrapper, 
+#edit-prefs-advanced-network-net-start-hour-wrapper,
+#edit-prefs-advanced-network-net-end-hour-wrapper,
+#edit-prefs-advanced-network-daily-xfer-limit-mb-wrapper,
+#edit-prefs-advanced-network-daily-xfer-period-days-wrapper,
+#edit-comments-per-page-wrapper {
+  display: inline;
+}
+
+#edit-signature-wrapper,
+#edit-signature-wrapper .description {
+  width: 550px;
+  margin: 0;
+}
+#edit-comments-per-page-wrapper label[for=edit-comments-per-page] {
+  padding-bottom: 20px;
+}
+
+#communityprefs-form .form-link {
+  line-height: 24px;
+}
+#communityprefs-form .filefield-element {
+  margin-bottom: 16px;
+}
+#communityprefs-form .filefield-upload {
+  margin-bottom: 10px;
+}
+#communityprefs-form label.placeholder {
+  color: #707070;
+  font-size: 12px;
+}
+
+
+/*
+ * Rich text editor
+ */
+#tinymce {
+  font-size: 12px;
+  line-height: 1.4em;
+  margin: 16px;
+}
+.wysiwyg ul.tips {
+  display: none;
+}
+.wysiwyg-toggle-wrapper {
+  margin: 5px 0;
+}
+.wysiwyg-toggle-wrapper a {
+  color: #808080;
+}
+.wysiwyg-toggle-wrapper a:before {
+  content: "(";
+}
+.wysiwyg-toggle-wrapper a:after {
+  content: ") ";
+}
+
+.standalone-image {
+}
+.image-left {
+  float: left;
+}
+.image-right {
+  float: right;
+}
+.caption {
+  font-size: .9em;
+  font-style: italic;
+  padding-bottom: 7px;
+  text-align: center;
+}
+
+/* Hide useless buttons */
+.mce_convert_linebreaks {
+  visibility: hidden;
+}
+
+/* Center emoticons */
+#tinymce img,
+.comment img {
+  margin: -2px 0 0;
+  vertical-align: bottom;
+}
+
+/* Hide rich text areas on submit */
+#edit-comment,
+#edit-content,
+#edit-signature {
+	color: #fff;
+	background-color: #fff;
+	padding: 0;
+	width: 100%;
+}
+
+/* Styling when rich text is disabled */
+#edit-comment.textarea-processed,
+#edit-content.textarea-processed,
+#edit-signature.textarea-processed {
+  color: inherit;
+  font-size: 12px;
+  line-height: 1.4em;
+  padding: 16px;
+}
+
+/* Re-captcha tweaks */
+.captcha {
+	margin-left: 360px;
+}
+#recaptcha_response_field {
+	left: 0;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/css/html-reset-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/html-reset-rtl.css
new file mode 100644
index 0000000..f81db26
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/html-reset-rtl.css
@@ -0,0 +1,39 @@
+/* $Id: html-reset-rtl.css,v 1.1 2009/08/12 17:49:26 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the html-reset.css file.
+ */
+
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  padding-left: 0;
+  padding-right: 2em;
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  padding: 0 2em 0 0;
+}
+
+dd {
+  margin: 0 2em 0 0;
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+th,
+thead th,
+tbody th {
+  text-align: right;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/html-reset.css b/drupal/sites/default/boinc/themes/boinc/css/html-reset.css
new file mode 100644
index 0000000..1d0474a
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/html-reset.css
@@ -0,0 +1,346 @@
+/* $Id: html-reset.css,v 1.6.2.2 2010/06/26 15:36:03 johnalbin Exp $ */
+
+/**
+ * @file
+ * HTML Element Styling
+ *
+ * Ok, I admit it. I fooled you. This isn't a "reset" stylesheet. Instead this
+ * is the place where you should set (not reset) the default styling for all
+ * HTML elements.
+ *
+ * @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/
+ * @see http://snook.ca/archives/html_and_css/no_css_reset/
+ */
+
+
+/*
+ * Fonts
+ *
+ * Our font size and line height declarations are based on the following ALA
+ * article:
+ *   http://www.alistapart.com/articles/howtosizetextincss
+ *
+ * All modern browsrs use a 16px default font size. Specifying the font-size
+ * and line-height in ems (relative to the 16px default font) allows the user
+ * to resize the font in the browser and produces the most consistent results
+ * across different browsers.
+ */
+body {
+  font-size: 100%; /* Fixes exaggerated text resizing in IE6 and IE7 */
+}
+
+#skip-link,
+#page {
+  /*
+   * To use a 12px font size on the page, delete the 14px declarations.
+   * to use a 14px font size on the page, delete the 12px declarations.
+   */
+
+  /* Use a 12px base font size with a 16px line height */
+  font-size: 0.75em; /* 16px x .75 = 12px */
+  /*line-height: 1.333em; /* 12px x 1.333 = 16px */
+  line-height: 16px;
+  
+  /* Use a 14px base font size with a 18px line height */
+  /*font-size: 0.875em; /* 16px x .875 = 14px */
+  /*line-height: 1.286em; /* 14px x 1.286 = 18px */
+}
+
+body,
+caption,
+th,
+td,
+input,
+textarea,
+select,
+option,
+legend,
+fieldset {
+  /* The following font family declarations are based on the Microsoft core web
+   * fonts which are common fonts available on most computer systems. The DejaVu
+   * fonts are commonly available on Linux systems where the MS fonts are less
+   * common. Tahoma and Helvetica are also widely available.
+   *
+   * A user's web browser will look at the comma-separated list and will
+   * attempt to use each font in turn until it finds one that is available
+   * on the user's computer. The final "generic" font (sans-serif or serif)
+   * hints at what type of font to use if the web browser doesn't find any
+   * of the fonts in the list.
+
+  font-family: "Times New Roman", Times, Georgia, "DejaVu Serif", serif;
+  font-family: Times, "Times New Roman", Georgia, "DejaVu Serif", serif;
+  font-family: Georgia, "Times New Roman", "DejaVu Serif", serif;
+
+  font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif;
+  font-family: Tahoma, Verdana, "DejaVu Sans", sans-serif;
+  font-family: Helvetica, Arial, "Nimbus Sans L", sans-serif;
+  font-family: Arial, Helvetica, "Nimbus Sans L", sans-serif;
+
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+
+   */
+
+  font-family: "DejaVu Sans", Verdana, Tahoma, sans-serif;
+}
+/*@font-face {
+  font-family: 'DejaVuSans';
+  src: url('DejaVuSans.eot');
+  src: url('WC_DejaVuSans.eot?#iefix') format('embedded-opentype'),
+    url('DejaVuSans.woff') format('woff'),
+    url('DejaVuSans.ttf') format('truetype'),
+    url('DejaVuSans.svg#DejaVuSans') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}*/
+
+pre,
+code {
+  font-size: 1.1em; /* Monospace fonts can be hard to read */
+  font-family: "Courier New", "DejaVu Sans Mono", monospace;
+}
+
+pre {
+  white-space: pre-wrap;
+}
+
+code {
+  background-color: #f8f8f8;
+  border: 1px dashed #aaa;
+  display: block;
+  padding: 8px;
+  overflow: auto;
+}
+
+/*
+ * Headings
+ */
+h1 {
+  font-size: 2em;
+  line-height: 1.3em;
+  margin-top: 0;
+  margin-bottom: 0.5em; /* 0.5em is equavalent to 1em in the page's base font.
+                           Remember, a margin specified in ems is relative to
+                           the element's font-size, not to the pages' base
+                           font size. So, for example, if we want a 1em margin
+                           (relative to the base font), we have to divide that
+                           length by the element's font-size:
+                           1em / 2em = 0.5em */
+}
+
+h2 {
+  font-size: 1.5em;
+  line-height: 1.3em;
+  margin-top: 0.667em; /* Equivalent to 1em in the page's base font: 1 / 1.5 = 0.667em */
+  margin-bottom: 0.667em;
+}
+
+h3 {
+  font-size: 1.3em;
+  line-height: 1.3em;
+  margin-top: 0.769em; /* Equivalent to 1em in the page's base font: 1 / 1.3 = 0.769 */
+  margin-bottom: 0.769em;
+}
+
+h4,
+h5,
+h6 {
+  font-size: 1.1em;
+  line-height: 1.3em;
+  margin-top: 0.909em; /* Equivalent to 1em in the page's base font: 1 / 1.1 = 0.909 */
+  margin-bottom: 0.909em;
+}
+
+/*
+ * Block-level elements
+ */
+p,
+ul,
+ol,
+dl,
+pre,
+table,
+fieldset {
+  margin: 1em 0;
+}
+
+blockquote {
+  margin: 1em 2em;
+}
+
+/*
+ * Lists
+ *
+ * We need to standardize the list item indentation.
+ */
+ul,
+ol {
+  margin-left: 0;
+  padding-left: 2em; /* LTR */
+}
+
+.block ul,
+.item-list ul /* Drupal overrides */ {
+  margin: 1em 0;
+  padding: 0 0 0 2em; /* LTR */
+}
+
+ul ul, ul ol,
+ol ol, ol ul,
+.block ul ul, .block ul ol,
+.block ol ol, .block ol ul,
+.item-list ul ul, .item-list ul ol,
+.item-list ol ol, .item-list ol ul {
+  margin: 0;
+}
+
+li {
+  margin: 0;
+  padding: 0;
+}
+
+.item-list ul li /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+  list-style: inherit;
+}
+
+ul.menu li,
+li.expanded,
+li.collapsed,
+li.leaf /* Drupal override */ {
+  margin: 0;
+  padding: 0;
+}
+
+ul          { list-style-type: disc; }
+ul ul       { list-style-type: circle; }
+ul ul ul    { list-style-type: square; }
+ul ul ul ul { list-style-type: circle; }
+ol          { list-style-type: decimal; }
+ol ol       { list-style-type: lower-alpha; }
+ol ol ol    { list-style-type: decimal; }
+
+dt {
+  margin: 0;
+  padding: 0;
+}
+
+dd {
+  margin: 0 0 0 2em;
+  padding: 0;
+}
+
+/*
+ * Links
+ *
+ * The order of link states are based on Eric Meyer's article:
+ * http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states
+ */
+a:link {
+}
+
+a:visited {
+}
+
+a:hover,
+a:focus {
+}
+
+a:active {
+}
+
+/*
+ * Tables
+ *
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+table {
+  border-collapse: collapse;
+  /* width: 100%; */ /* Prevent cramped-looking tables */
+}
+
+th,
+thead th,
+tbody th,
+tbody tr.section-heading {
+  text-align: left; /* LTR */
+  padding: 0 5px 10px;
+  border-bottom: 1px dotted #aaa;
+  font-size: 10px;
+  font-weight: bold;
+  text-transform: uppercase;
+  vertical-align: bottom;
+}
+th.numeric,
+thead th.numeric,
+tbody th.numeric,
+td.numeric,
+tbody td.numeric {
+  text-align: right;
+}
+
+tbody {
+  border-top: none;
+}
+
+/*
+ * Abbreviations
+ */
+abbr {
+  border-bottom: 1px dotted #666;
+  cursor: help;
+  white-space: nowrap;
+}
+
+abbr.created /* Date-based "abbreviations" show computer-friendly timestamps which are not human-friendly. */ {
+  border: none;
+  cursor: auto;
+  white-space: normal;
+}
+
+/*
+ * Images
+ */
+img {
+  border: 0;
+  margin: 5px;
+}
+
+/*
+ * Horizontal rules
+ */
+hr {
+  background-color: #aaa;
+  border: 0;
+  border-bottom: 1px dashed #777;
+  height: 0;
+  margin-right: 5px;
+}
+
+/*
+ * Forms
+ */
+form {
+  margin: 0;
+  padding: 0;
+}
+
+fieldset {
+  margin: 1em 0;
+  padding: 0.5em;
+  border: none;
+}
+
+input[type=text],
+input[type=password],
+select {
+	background: #fff;
+	border: 1px solid #aaa;
+	margin: 0;
+	padding: 3px 0 1px 5px;
+}
+
+textarea {
+	clear: left;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/ie.css b/drupal/sites/default/boinc/themes/boinc/css/ie.css
new file mode 100644
index 0000000..43dfa0a
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/ie.css
@@ -0,0 +1,51 @@
+/* $Id: ie.css,v 1.2.2.1 2010/01/20 20:11:52 johnalbin Exp $ */
+
+/**
+ * @file
+ * CSS targeted specifically for Internet Explorer for Windows.
+ *
+ * Any CSS in this file will apply to all versions of IE. You can target
+ * specific versions of IE by using conditional comments. See your sub-theme's
+ * .info file for an easy way to use them.
+ *
+ * While building your theme, you should be aware that IE limits Drupal to 31
+ * stylesheets total. The work-around for the bug is to enable CSS aggregation
+ * under: admin / settings / performance.
+ */
+
+
+/*
+ * Tabs
+ */
+
+ul.primary li a,
+ul.primary li a .tab,
+ul.secondary li a,
+ul.secondary li a .tab {
+  cursor: pointer;
+}
+
+/*
+ * Drupal nodes
+ */
+
+.node-unpublished .node-inner>* {
+  position: relative; /* Otherwise these elements will appear below the "Unpublished" text. */
+}
+
+/*
+ * Drupal admin tables
+ */
+tr.even th,
+tr.even td,
+tr.odd th,
+tr.odd td {
+  border-bottom: 1px solid #ccc; /* IE doesn't display borders on table rows */
+}
+
+/*
+ * Markup free clearing
+ */
+.clearfix {
+  zoom: 1;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/ie6-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/ie6-rtl.css
new file mode 100644
index 0000000..b7b47f5
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/ie6-rtl.css
@@ -0,0 +1,14 @@
+/* $Id: ie6-rtl.css,v 1.2 2009/08/12 08:03:52 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the ie6.css file.
+ */
+
+
+/*
+ * Layout CSS
+ */
+#page {
+  text-align: right; /* 2nd part of IE5/IE6quirks centering hack */
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/ie6.css b/drupal/sites/default/boinc/themes/boinc/css/ie6.css
new file mode 100644
index 0000000..bf5b3ff
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/ie6.css
@@ -0,0 +1,103 @@
+/* $Id: ie6.css,v 1.6 2009/11/04 20:16:50 johnalbin Exp $ */
+
+/**
+ * @file
+ * CSS targeted specifically for Internet Explorer 5 and 6 for Windows.
+ *
+ * Any CSS in this file will override the rules specified in the ie.css file.
+ */
+
+
+/*
+ * Layout CSS
+ */
+
+body {
+  text-align: center; /* 1st part of IE5/IE6quirks centering hack */
+}
+
+#page {
+  text-align: left; /* LTR */ /* 2nd part of IE5/IE6quirks centering hack */
+}
+
+#main-wrapper {
+  zoom: 1; /* Otherwise with a liquid layout, sidebars disappear when resizing the windows in IE6 */
+}
+
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second /* Floating divs */ {
+  display: inline; /* display inline or double your floated margin! [1] */
+  overflow: hidden; /* in ie6, overflow auto is broken [2] and so is overflow visible [3] */
+  overflow-y: visible;
+}
+
+/*
+ * Tabs - IE 5 and 6 don't support PNGs with alpha transparency.
+ */
+
+ul.primary li a,
+ul.primary li a .tab,
+ul.secondary li a,
+ul.secondary li a .tab {
+  display: inline-block; /* Otherwise the blocks mistakenly get 100% width in IE6 */
+}
+
+ul.primary li a {
+  background: url(../images/tab-left-ie6.png) no-repeat left -38px;
+}
+
+ul.primary li a .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right -38px;
+}
+
+ul.primary li a:hover {
+  background: url(../images/tab-left-ie6.png) no-repeat left -76px;
+}
+
+ul.primary li a:hover .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right -76px;
+}
+
+ul.primary li.active a,
+ul.primary li.active a:hover {
+  background: url(../images/tab-left-ie6.png) no-repeat left 0;
+}
+
+ul.primary li.active a .tab,
+ul.primary li.active a:hover .tab {
+  background: url(../images/tab-right-ie6.png) no-repeat right 0;
+}
+
+/*
+ * Messages - IE 5 and 6 don't support PNGs with alpha transparency.
+ */
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  background-image: url(../images/messages-status-ie6.png);
+}
+
+div.warning /* Medium priority messages */ {
+  background-image: url(../images/messages-warning-ie6.png);
+}
+
+div.error /* High priority messages. See also the .error declaration below. */ {
+  background-image: url(../images/messages-error-ie6.png);
+}
+
+
+/*
+ * REFERENCES
+ *
+
+1. http://www.positioniseverything.net/explorer/doubled-margin.html
+2. http://browservulsel.blogspot.com/2005/04/ie-overflow-auto-scrollbar-overlap.html
+3. http://www.howtocreate.co.uk/wrongWithIE/?chapter=overflow%3Avisible%3B
+4. http://www.ryanbrill.com/archives/multiple-classes-in-ie
+
+ *
+ */
diff --git a/drupal/sites/default/boinc/themes/boinc/css/layout-fixed-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/layout-fixed-rtl.css
new file mode 100644
index 0000000..d4b85fc
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/layout-fixed-rtl.css
@@ -0,0 +1,76 @@
+/* $Id: layout-fixed-rtl.css,v 1.6 2009/11/04 20:16:50 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the layout-fixed.css file.
+ */
+
+
+/*
+ * Content
+ */
+#content,
+.no-sidebars #content {
+  float: right;
+  margin-left: -960px;
+  margin-right: 0; /* Negative value of #content's width + left margin. */
+}
+
+.sidebar-first #content {
+  margin-left: -960px; /* The width of .region-sidebar-first. */
+  margin-right: 200px; /* Negative value of #content's width + left margin. */
+}
+
+.sidebar-second #content {
+  margin-left: -760px;
+  margin-right: 0; /* Negative value of #content's width + left margin. */
+}
+
+.two-sidebars #content {
+  margin-left: -760px; /* The width of .region-sidebar-first */
+  margin-right: 200px; /* Negative value of #content's width + left margin. */
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: right;
+  margin-left: -100%;
+  margin-right: 0; /* Negative value of #navigation's width + left margin. */
+}
+
+#navigation ul /* Primary and secondary links */ {
+  text-align: right;
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: right;
+  padding: 0 0 0 10px;
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: right;
+  margin-left: -200px;
+  margin-right: 0; /* Negative value of .region-sidebar-first's width + left margin. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 0 0 20px;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: right;
+  margin-left: -960px; /* Width of content + sidebar-first. */
+  margin-right: 760px; /* Negative value of .region-sidebar-second's width + left margin. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 20px 0 0;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/layout-fixed.css b/drupal/sites/default/boinc/themes/boinc/css/layout-fixed.css
new file mode 100644
index 0000000..cefe3bb
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/layout-fixed.css
@@ -0,0 +1,307 @@
+/* $Id: layout-fixed.css,v 1.17 2009/11/05 12:09:53 johnalbin Exp $ */
+
+/**
+ * @file
+ * Layout Styling (DIV Positioning)
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout is based on the Zen Columns layout method.
+ *   http://drupal.org/node/201428
+ *
+ * Only CSS that affects the layout (positioning) of major elements should be
+ * listed here.  Such as:
+ *   display, position, float, clear, width, height, min-width, min-height
+ *   margin, border, padding, overflow
+ */
+
+
+/*
+ * Body
+ */
+body {
+}
+
+#page-wrapper {
+}
+
+.region-page-closure {
+  /*
+   * If you want to make the page a fixed width and centered in the viewport,
+   * this is the standards-compliant way to do that. See also the ie6.css file
+   * for the necessary IE5/IE6quirks hack to center a div.
+   */
+  margin-left: auto;
+  margin-right: auto;
+  max-width: 960px;
+}
+
+#page {
+	margin: 0px;
+}
+
+/*
+ * Header
+ */
+#header {
+	height: 94px;
+	clear: both;
+}
+
+#header .section {
+}
+
+#search-box {
+}
+
+.region-header {
+  clear: both; /* Clear the logo */
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+  margin: 16px auto 0;
+  max-width: 960px;
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content,
+.no-sidebars #content {
+  float: left; /* LTR */
+  max-width: 960px;
+  margin-left: 0; /* LTR */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
+  width: 100%;
+}
+
+.sidebar-first #content {
+  width: 760px;
+  margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first. */
+  margin-right: -960px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+.sidebar-second #content {
+  width: 650px;
+  margin-left: 0; /* LTR */
+  margin-right: -650px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+.two-sidebars #content {
+  width: 460px;
+  margin-left: 200px; /* LTR */ /* The width of .region-sidebar-first */
+  margin-right: -660px; /* LTR */ /* Negative value of #content's width + left margin. */
+}
+
+#content .section {
+  margin: 0;
+  /*padding: 0;*/
+}
+
+#content .section.bottom {
+  margin-top: 16px;
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  /*float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
+  /*height: 30px; /* The navigation can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+  background: #fff url(../images/orange-bars-nav.png) repeat-x left top;
+}
+
+.with-navigation #content,
+.with-navigation .region-sidebar-first,
+.with-navigation .region-sidebar-second {
+  /*margin-top: 31px; /* Set this to the same value as the navigation height above. */
+}
+
+#navigation .section {
+  margin: 0 auto;
+  max-width: 980px;
+}
+
+#navigation ul /* Primary and secondary links */ {
+  margin: 0;
+  padding: 0;
+  text-align: left; /* LTR */
+  height: 31px;
+  float: left;
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: left; /* LTR */
+  padding: 0; /* LTR */
+  list-style: none;
+}
+#navigation li a {
+  padding: 0 12px;
+  /* background: transparent url(../images/menu-separator.png) no-repeat bottom left; */
+  height: 31px;
+  line-height: 28px;
+  display: block;
+  font-size: 14px;
+  font-weight: bold;
+  text-transform: uppercase;
+}
+#navigation li a:hover {
+  text-decoration: none;
+}
+#navigation #main-menu li.active,
+#navigation #main-menu li.active-trail {
+  background: #fafafa;
+  -webkit-box-shadow: 0 0 16px #ebebeb;
+  -moz-box-shadow: 0 0 16px #ebebeb;
+  box-shadow: 0 0 16px #ebebeb;
+}
+#navigation li a.active,
+#navigation li.active-trail a {
+  color: #000;
+}
+#navigation li a, 
+#navigation li a.visited,
+#action-links a {
+  color: #222;
+}
+#navigation li a.compound {
+  display: inline-block;
+  padding-right: 1px;
+}
+#navigation li a.compound.secondary {
+  padding-left: 0;
+  padding-right: 12px;
+}
+#navigation li a .item-count-wrapper {
+  margin-left: 3px;
+}
+
+#action-links {
+  float: right;
+}
+#action-links li a {
+  padding: 0;
+}
+#action-links .tab {
+  height: 24px;
+  font-size: 14px;
+}
+#action-links .search .tab {
+  color: #808080;
+  padding-left: 28px;
+  background: url(../images/search.png) no-repeat 12px 2px;
+}
+#action-links .secondary-link {
+}
+#action-links li.first .tab {
+  border-left: none;
+}
+#action-links li.last .tab {
+  padding-right: 10px;
+}
+
+/* Mobile Menu */
+#mobile-menu-toggle .mmt-menu {
+    position: relative;
+    bottom: 3px;
+    font-size: 14px;
+    font-family: "DejaVu Sans", Verdana, Tahoma, sans-serif;
+    font-weight: bold;
+    padding-left: 3px;
+    text-transform: uppercase;
+    text-decoration: none;
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 0; /* LTR */
+  margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 20px 0 0; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: left; /* LTR */
+  width: 310px;
+  margin-left: 650px; /* LTR */ /* Width of content + sidebar-first. */
+  margin-right: -960px; /* LTR */ /* Negative value of .region-sidebar-second's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 0 0 12px; /* LTR */
+  padding: 15px 18px;
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
+}
+
+/*
+ * Prevent overflowing content
+ */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.region-page-closure {
+  overflow: visible;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+#navigation {
+  overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
+}
+
+/*
+ * If a div.clearfix doesn't have any content after it and its bottom edge
+ * touches the bottom of the viewport, Firefox and Safari will mistakenly
+ * place several pixels worth of space between the bottom of the div and the
+ * bottom of the viewport. Uncomment this CSS property to fix this.
+ * Note: with some over-large content, this property might cause scrollbars
+ * to appear on the #page-wrapper div.
+ */
+/*
+#page-wrapper {
+  overflow-y: hidden;
+}
+*/
diff --git a/drupal/sites/default/boinc/themes/boinc/css/layout-liquid-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/layout-liquid-rtl.css
new file mode 100644
index 0000000..5267c65
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/layout-liquid-rtl.css
@@ -0,0 +1,70 @@
+/* $Id: layout-liquid-rtl.css,v 1.7 2009/11/04 20:16:50 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the layout-liquid.css file.
+ */
+
+
+/*
+ * Content
+ */
+#content {
+  float: right;
+  margin-left: -100%;
+  margin-right: 0; /* Negative value of #content's width + left margin. */
+}
+
+.sidebar-first #content .section {
+  padding-left: 0; /* The width + left margin of .region-sidebar-first. */
+  padding-right: 200px;
+}
+
+.sidebar-second #content .section {
+  padding-left: 200px;
+  padding-right: 0; /* The width + right margin of .region-sidebar-second. */
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: right;
+  margin-left: -100%;
+  margin-right: 0; /* Negative value of #navigation's width + left margin. */
+}
+
+#navigation ul /* Primary and secondary links */ {
+  text-align: right;
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: right;
+  padding: 0 0 0 10px;
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: right;
+  margin-left: -200px;
+  margin-right: 0; /* Negative value of .region-sidebar-first's width + left margin. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 0 0 20px;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: left;
+  margin-left: 0; /* Negative value of .region-sidebar-second's width + right margin. */
+  margin-right: -200px;
+}
+
+.region-sidebar-second .section {
+  margin: 0 20px 0 0;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/layout-liquid.css b/drupal/sites/default/boinc/themes/boinc/css/layout-liquid.css
new file mode 100644
index 0000000..3ba47bc
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/layout-liquid.css
@@ -0,0 +1,204 @@
+/* $Id: layout-liquid.css,v 1.17 2009/11/05 12:09:53 johnalbin Exp $ */
+
+/**
+ * @file
+ * Layout Styling (DIV Positioning)
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout is based on the Zen Columns layout method.
+ *   http://drupal.org/node/201428
+ *
+ * Only CSS that affects the layout (positioning) of major elements should be
+ * listed here.  Such as:
+ *   display, position, float, clear, width, height, min-width, min-height
+ *   margin, border, padding, overflow
+ */
+
+
+/*
+ * Body
+ */
+body {
+}
+
+#page-wrapper,
+.region-page-closure {
+  min-width: 960px; /* Don't allow the browser to make the site unreadable. */
+}
+
+#page {
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#search-box {
+}
+
+.region-header {
+  clear: both; /* Clear the logo */
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+  position: relative;
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */
+}
+
+#content .section,
+.no-sidebars #content .section {
+  margin: 0;
+  padding: 0;
+}
+
+.sidebar-first #content .section {
+  padding-left: 200px; /* LTR */ /* The width + left margin of .region-sidebar-first. */
+  padding-right: 0; /* LTR */
+}
+
+.sidebar-second #content .section {
+  padding-left: 0; /* LTR */
+  padding-right: 200px; /* LTR */ /* The width + right margin of .region-sidebar-second. */
+}
+
+.two-sidebars #content .section {
+  padding-left: 200px; /* The width + left margin of .region-sidebar-first. */
+  padding-right: 200px; /* The width + right margin of .region-sidebar-second. */
+}
+
+/*
+ * Navigation
+ */
+#navigation {
+  float: left; /* LTR */
+  width: 100%;
+  margin-left: 0; /* LTR */
+  margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */
+  height: 2.3em; /* The navigation can have any arbritrary height. We picked one
+                    that is the line-height plus 1em: 1.3 + 1 = 2.3
+                    Set this to the same value as the margin-top below. */
+}
+
+.with-navigation #content,
+.with-navigation .region-sidebar-first,
+.with-navigation .region-sidebar-second {
+  margin-top: 2.3em; /* Set this to the same value as the navigation height above. */
+}
+
+#navigation .section {
+}
+
+#navigation ul /* Primary and secondary links */ {
+  margin: 0;
+  padding: 0;
+  text-align: left; /* LTR */
+}
+
+#navigation li /* A simple method to get navigation links to appear in one line. */ {
+  float: left; /* LTR */
+  padding: 0 10px 0 0; /* LTR */
+}
+
+/*
+ * First sidebar
+ */
+.region-sidebar-first {
+  float: left; /* LTR */
+  width: 200px;
+  margin-left: 0; /* LTR */
+  margin-right: -200px; /* LTR */ /* Negative value of .region-sidebar-first's width + left margin. */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-first .section. */
+}
+
+.region-sidebar-first .section {
+  margin: 0 20px 0 0; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Second sidebar
+ */
+.region-sidebar-second {
+  float: right; /* LTR */
+  width: 200px;
+  margin-left: -200px; /* LTR */ /* Negative value of .region-sidebar-second's width + right margin. */
+  margin-right: 0; /* LTR */
+  padding: 0; /* DO NOT CHANGE. Add padding or margin to .region-sidebar-second .section. */
+}
+
+.region-sidebar-second .section {
+  margin: 0 0 0 20px; /* LTR */
+  padding: 0;
+}
+
+/*
+ * Footer
+ */
+#footer {
+}
+
+#footer .section {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* See also the #page-wrapper declaration above that this div shares. */ {
+}
+
+/*
+ * Prevent overflowing content
+ */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.region-page-closure {
+  overflow: visible;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+#navigation {
+  overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */
+}
+
+/*
+ * If a div.clearfix doesn't have any content after it and its bottom edge
+ * touches the bottom of the viewport, Firefox and Safari will mistakenly
+ * place several pixels worth of space between the bottom of the div and the
+ * bottom of the viewport. Uncomment this CSS property to fix this.
+ * Note: with some over-large content, this property might cause scrollbars
+ * to appear on the #page-wrapper div.
+ */
+/*
+#page-wrapper {
+  overflow-y: hidden;
+}
+*/
diff --git a/drupal/sites/default/boinc/themes/boinc/css/messages-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/messages-rtl.css
new file mode 100644
index 0000000..7fc71ac
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/messages-rtl.css
@@ -0,0 +1,15 @@
+/* $Id: messages-rtl.css,v 1.3 2009/08/12 08:37:42 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the messages.css file.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  padding: 5px 35px 5px 5px;
+  background-position: 99.5% 5px;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/messages.css b/drupal/sites/default/boinc/themes/boinc/css/messages.css
new file mode 100644
index 0000000..465cb49
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/messages.css
@@ -0,0 +1,55 @@
+/* $Id: messages.css,v 1.3 2009/08/12 08:37:42 johnalbin Exp $ */
+
+/**
+ * @file
+ * Message Styling
+ *
+ * Sensible styling for Drupal's error/warning/status messages.
+ */
+
+
+div.messages,
+div.status,
+div.warning,
+div.error /* Important messages (status, warning, and error) for the user */ {
+  min-height: 21px;
+  margin: 0 1em 5px 1em;
+  border: 2px solid #ff7;
+  padding: 5px 5px 5px 35px; /* LTR */
+  color: #000;
+  background-color: #ffc;
+  background-image: url(../images/messages-status.png);
+  background-repeat: no-repeat;
+  background-position: 5px 5px; /* LTR */
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning /* Medium priority messages */ {
+  border-color: #fc0;
+  background-image: url(../images/messages-warning.png);
+}
+
+div.warning,
+tr.warning {
+  color: #000; /* Drupal core uses #220 */
+  background-color: #ffc;
+}
+
+div.error /* High priority messages. See also the .error declaration in pages.css. */ {
+  /* border: 1px solid #d77; */ /* Drupal core uses: 1px solid #d77 */
+  border-color: #c00;
+  background-image: url(../images/messages-error.png);
+}
+
+div.error,
+tr.error {
+  color: #900; /* Drupal core uses #200 */
+  background-color: #fee;
+}
+
+div.messages ul {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/navigation.css b/drupal/sites/default/boinc/themes/boinc/css/navigation.css
new file mode 100644
index 0000000..6e7bac2
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/navigation.css
@@ -0,0 +1,104 @@
+/* $Id: navigation.css,v 1.5 2009/11/04 19:42:41 johnalbin Exp $ */
+
+/**
+ * @file
+ * Navigation Styling
+ */
+
+
+/*
+ * The active item in a Drupal menu
+ */
+li a.active {
+  color: #000;
+}
+
+/*
+ * Navigation bar
+ */
+#navigation {
+}
+
+.region-navigation {
+}
+
+/*
+ * Primary and Secondary menu links
+ */
+#main-menu {
+}
+
+#secondary-menu,
+ul#secondary-menu,
+#navigation .block .menu {
+  height: auto;
+  line-height: 33px;
+  margin: 0 0 0 -1px;
+  float: left;
+  clear: both;
+  padding: 7px 0;
+}
+#navigation .block .menu {
+  border-top: 1px dashed #ccc;
+  width: 100%;
+}
+#secondary-menu li,
+#navigation .block .menu li {
+  padding: 0;
+  border-left: 1px solid #5a5758;
+}
+#secondary-menu li.first,
+#navigation .block .menu li.first {
+  border: none;
+}
+#secondary-menu li.last,
+#navigation .block .menu li.last {
+  border-right: none;
+}
+#secondary-menu li a,
+#navigation .block .menu li a {
+  color: gray;
+  font-size: 11px;
+  letter-spacing: 1px;
+  height: 18px;
+  line-height: 20px;
+  text-transform: uppercase;
+}
+#secondary-menu li a.active,
+#secondary-menu li a:hover,
+#navigation .block .menu li a.active,
+#navigation .block .menu li a:hover {
+  color: #000;
+  text-decoration: none;
+}
+
+#footer-links {
+  line-height: 40px;
+  margin: 0 12px;
+  float: left;
+}
+#footer-links li {
+  padding: 0;
+}
+#footer-links li.first {
+}
+#footer-links a {
+}
+#footer-links li a:before {
+  content: " / ";
+}
+#footer-links li.first a:before {
+  content: none;
+}
+
+/*
+ * Menu blocks
+ */
+.block-menu {
+}
+
+/*
+ * "Menu block" blocks. See http://drupal.org/project/menu_block
+ */
+.block-menu_block {
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/nodes.css b/drupal/sites/default/boinc/themes/boinc/css/nodes.css
new file mode 100644
index 0000000..66176bd
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/nodes.css
@@ -0,0 +1,93 @@
+/* $Id: nodes.css,v 1.6 2009/11/02 15:37:29 johnalbin Exp $ */
+
+/**
+ * @file
+ * Node Styling
+ *
+ * Style anything that isn't in the $content variable.
+ */
+
+
+.node /* Node wrapper */ {
+}
+
+.node-sticky /* A sticky node (displayed before others in a list) */ {
+}
+
+.node-unpublished /* Unpublished nodes */ {
+  /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */
+}
+
+.node-unpublished div.unpublished,
+.comment-unpublished div.unpublished /* The word "Unpublished" displayed underneath the content. */ {
+  height: 0;
+  overflow: visible;
+  color: #d8d8d8;
+  font-size: 75px;
+  line-height: 1;
+  font-family: Impact, "Arial Narrow", Helvetica, sans-serif;
+  font-weight: bold;
+  text-transform: uppercase;
+  text-align: center;
+  word-wrap: break-word; /* A very nice CSS3 property */
+}
+
+.node-by-viewer /* A node created by the current user */ {
+}
+
+.node-teaser /* A node displayed as teaser */ {
+}
+
+/* All nodes are given a node-type-FOO class that describes the type of
+ * content that it is. If you create a new content type called
+ * "my-custom-type", it will receive a "node-type-my-custom-type" class.
+ */
+.node-type-page /* Page content node */ {
+}
+
+.node-type-story /* Story content node */ {
+}
+
+.node h2.title /* Node title */ {
+}
+
+.marker /* "New" or "Updated" marker for content that is new or updated for the current user */ {
+  color: #c00;
+}
+
+.node .picture /* The picture of the node author */ {
+  max-height: 100px;
+  overflow: hidden;
+}
+.node .user .picture img {
+  margin: 0;
+  width: 100px;
+}
+
+.node.node-unpublished .picture,
+.comment.comment-unpublished .picture {
+  position: relative; /* Otherwise floated pictures will appear below the "Unpublished" text. */
+}
+
+.node .meta /* Wrapper for submitted and terms data */ {
+}
+
+.node .submitted /* The "posted by" information */ {
+  font-style: italic;
+  font-size: 10px;
+  color: #808080;
+}
+
+.node .terms /* Node terms (taxonomy) */ {
+}
+
+.node .content /* Node's content wrapper */ {
+  position: relative;
+}
+
+.node ul.links /* Node links. See also the ul.links declaration in the pages.css. */ {
+}
+
+.preview .node /* Preview of the content before submitting new or updated content */ {
+  /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/page-backgrounds.css b/drupal/sites/default/boinc/themes/boinc/css/page-backgrounds.css
new file mode 100644
index 0000000..77efcd1
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/page-backgrounds.css
@@ -0,0 +1,41 @@
+/* $Id: page-backgrounds.css,v 1.8 2009/11/04 20:57:49 johnalbin Exp $ */
+
+/**
+ * @file
+ * Page Background Styling
+ *
+ * The default layout method of Zen doesn't give themers equal-height columns.
+ * However, equal-height columns are difficult to achieve and totally
+ * unnecessary. Instead, use the Faux Columns method described in the following
+ * ALA article:
+ *   http://www.alistapart.com/articles/fauxcolumns/
+ */
+
+
+body {
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+#header {
+  background: #f2f2f2 url('../images/orange-bars.png') repeat-x left bottom;
+}
+
+#header .section {
+}
+
+#main-wrapper {
+}
+
+#main {
+}
+
+#footer {
+}
+
+#footer .section {
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/pages-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/pages-rtl.css
new file mode 100644
index 0000000..14929e2
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/pages-rtl.css
@@ -0,0 +1,21 @@
+/* $Id: pages-rtl.css,v 1.6 2009/11/05 11:07:02 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the pages.css file.
+ */
+
+
+/*
+ * Header
+ */
+#logo /* Wrapping link for logo */ {
+  float: right;
+}
+
+/*
+ * Content
+ */
+.more-link /* Aggregator, blog, and forum more link */ {
+  text-align: left;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/pages.css b/drupal/sites/default/boinc/themes/boinc/css/pages.css
new file mode 100644
index 0000000..ac720fd
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/pages.css
@@ -0,0 +1,984 @@
+/* $Id: pages.css,v 1.18.2.3 2010/06/26 17:18:58 johnalbin Exp $ */
+
+/**
+ * @file
+ * Page Styling
+ *
+ * Style the markup found in page.tpl.php. Also includes some styling of
+ * miscellaneous Drupal elements that appear in the $content variable, such as
+ * ul.links, .pager, .more-link, etc.
+ */
+
+
+/*
+ * Body
+ */
+body {
+  margin: 0;
+  padding: 0;
+}
+
+#page-wrapper {
+}
+
+#page {
+}
+
+/*
+ * The skip navigation link will be completely hidden until a user tabs to the
+ * link. See http://www.webaim.org/techniques/skipnav/
+ */
+#skip-link a,
+#skip-link a:visited {
+  position: absolute;
+  display: block;
+  left: 0;
+  top: -500px;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  text-align: center;
+  background-color: #666;
+  color: #fff;
+}
+
+#skip-link a:hover,
+#skip-link a:active,
+#skip-link a:focus {
+  position: static;
+  width: 100%;
+  height: auto;
+  padding: 2px 0 3px 0;
+}
+
+/*
+ * Header
+ */
+#header {
+}
+
+#header .section {
+}
+
+#logo /* Wrapping link for logo */ {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+#logo img {
+  vertical-align: bottom;
+}
+
+#name-and-slogan /* Wrapper for website name and slogan */ {
+}
+
+h1#site-name,
+div#site-name /* The name of the website */ {
+  margin: 0 auto;
+  max-width: 960px;
+  font-size: 45px;
+  line-height: 96px;
+}
+
+#site-name a:link,
+#site-name a:visited {
+  color: #FFF;
+  text-decoration: none;
+}
+
+#site-name a:hover,
+#site-name a:focus {
+}
+
+#site-slogan /* The slogan (or tagline) of a website */ {
+}
+
+.region-header /* Wrapper for any blocks placed in the header region */ {
+}
+
+/*
+ * Main (container for everything else)
+ */
+#main-wrapper {
+  clear: both;
+}
+
+#main {
+}
+
+/*
+ * Content
+ */
+#content {
+}
+
+#content .section {
+  position: relative;
+}
+
+#mission /* The mission statement of the site (displayed on homepage) */ {
+}
+
+.region-content-top /* Wrapper for any blocks placed in the "content top" region */ {
+}
+
+.breadcrumb /* The path to the current page in the form of a list of links */ {
+  padding-bottom: 0; /* Undo system.css */
+}
+
+a:link, a:visited {
+  color: #faa341;
+  text-decoration: none;
+}
+a:link:hover {
+  text-decoration: underline;
+}
+
+h1.title, /* The title of the page */
+h2.title, /* Block title or the title of a piece of content when it is given in a list of content */
+h3.title /* Comment title */ {
+  margin-top: 0;
+  margin-left: 0;
+  margin-right: 0;
+}
+h2.title a {
+  color: #5A5758;
+}
+
+thead th {
+  /*background: #fff url(../images/heading-bg.png) repeat-x bottom;
+  border-bottom: 1px solid #ccc;
+  color: #494949;
+  font-weight: bold;
+  text-align: center;*/
+}
+
+td, th {
+  padding: .3em .5em;
+}
+td {
+  padding: 7px 5px;
+  border-bottom: 1px dotted #aaa;
+  vertical-align: top;
+}
+tr.heading {
+  font-weight: bold;
+}
+tr.heading > td {
+  padding-top: 38px;
+}
+th.primary, td.primary {
+  font-size: 1.5em;
+}
+th.active img {
+  margin: 0 0 0 5px;
+}
+tr.even, tr.odd {
+  background-color: transparent;
+  border: none;
+  padding: 0;
+}
+tr.even /* Some tables have rows marked even or odd. */ {
+  /*background-color: #f2f2f2;*/
+}
+
+tr.odd {
+  /*background-color: #dedede; */
+}
+tr.even td.active,
+tr.odd td.active {
+  background-color: transparent;
+}
+tbody tr:hover {
+  background-color: #fbfbfa;
+}
+table.sticky-header {
+  background-color: #d1d1d1;
+}
+
+table.tableSelect-processed {
+  width: 100%;
+}
+table.tableSelect-processed th {
+  line-height: 21px;
+  padding-bottom: 4px;
+}
+table.tableSelect-processed th.select-all {
+  padding-bottom: 2px;
+}
+table.tableSelect-processed td {
+  line-height: 21px;
+}
+table.selection-list .form-checkboxes {
+  margin: 0;
+}
+
+div.messages /* Important messages (status, warning, and error) for the user. See also the declarations in messages.css. */ {
+  margin: 0 0 16px;
+}
+
+div.status /* Normal priority messages */ {
+}
+
+div.warning,
+tr.warning /* Medium priority messages */ {
+  /* border: 1px solid #f0c020; */ /* Drupal core uses: 1px solid #f0c020 */
+}
+
+div.error,
+tr.error /* High priority messages. See also the .error declaration below. */ {
+}
+
+.error /* Errors that are separate from div.messages status messages. */ {
+  /* color: #e55; */ /* Drupal core uses a #e55 background */
+}
+
+.warning /* Warnings that are separate from div.messages status messages. */ {
+  /* color: #e09010; */ /* Drupal core uses a #e09010 background */
+}
+
+.ok {
+  color: #008000;
+}
+
+div.tabs /* See also the tabs.css file. */ {
+}
+
+.fine-print {
+  color: #bbb;
+}
+
+.framing {
+  padding: 25px;
+}
+
+.shadow {
+  -webkit-box-shadow:0 0 16px #ebebeb;
+  -moz-box-shadow:0 0 16px #ebebeb;
+  box-shadow: 0 0 16px #ebebeb;
+}
+.container {
+  background-color: #fff;
+}
+
+.help /* Help text on a page */ {
+  margin: 1em 0;
+}
+
+.more-help-link /* Link to more help */ {
+  font-size: 0.85em;
+  text-align: right;
+}
+
+#content-area /* Wrapper for the actual page content */ {
+}
+
+ul.links /* List of links */ {
+  margin: 1em 0;
+  padding: 0;
+  display: inline;
+  font-weight: bold;
+}
+
+ul.links.inline {
+  margin: 0;
+  display: inline;
+}
+
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+ul.links li.first {
+  border: none;
+  padding-left: 0;
+}
+ul.links li a {
+  color: #faa341;
+  text-transform: uppercase;
+}
+
+.subscribe {
+  position: absolute;
+  right: 20px;
+  top: 20px;
+  z-index: 10;
+}
+.subscribe a {
+  color: #5A5758;
+  font-size: 10px;
+  font-weight: bold;
+  letter-spacing: 1px;
+  line-height: 2.35em;
+  text-transform: uppercase;
+}
+.subscribe .flag-message,
+.view-subscriptions .flag-message {
+  left: initial;
+  right: 0;
+  text-align: right;
+}
+
+.toc {
+  background-color: transparent;
+  border: none;
+  border-bottom: 1px dotted #aaa;
+  padding: 10px 0;
+  margin-bottom: 30px;
+  font-size: 100%;
+}
+.toc .toc-title {
+  text-align: left;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  font-size: 95%;
+}
+.toc ul {
+  list-style-type: disc;
+  margin: 0 0 16px;
+  padding-left: 16px;
+}
+.toc ul li {
+  padding-top: 5px;
+}
+.toc,
+.toc a {
+  color: #777;
+}
+.toc a:hover {
+  color: #faa341;
+  text-decoration: none;
+}
+.toc-back-to-top {
+  background: transparent;
+  font-style: inherit;
+  padding: 0 0 10px;
+  margin: 0;
+  text-align: left;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  font-weight: bold;
+  font-size: 10px;
+}
+
+.pager /* A list of page numbers when more than 1 page of content is available */ {
+  clear: both;
+  margin: 1em 0;
+  text-align: center;
+}
+
+.pager a,
+.pager strong.pager-current /* Each page number in the pager list */ {
+  padding: 0.5em;
+}
+
+.feed-icons /* The links to the RSS or Atom feeds for the current list of content */ {
+  margin: 1em 0;
+}
+
+.more-link /* Aggregator, blog, and forum more link */ {
+  /*text-align: right; /* LTR */
+  text-align: left;
+  padding: 10px 0 0 5px;
+  clear: both;
+}
+.more-link a {
+  font-size: 10px;
+  font-weight: bold;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+}
+.tab-list.more-link {
+  margin: 10px 5px 0;
+}
+.tab-list.more-link li.first.alt.tab {
+  padding-right: 0;
+}
+.tab-list .tab a,
+.tab-list .first.alt.tab a {
+  color: #525758;
+}
+.tab-list .first.tab a{
+  color: #faa341;
+}
+
+.on-time {
+  color: #33cc33;
+}
+.past-due {
+  color: #ff3333;
+}
+
+.region-content-bottom /* Wrapper for any blocks placed in the "content bottom" region */ {
+}
+
+/*
+ * First sidebar (on left in LTR languages, on right in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-first
+ * (see the layout.css file.)
+ */
+.region-sidebar-first {
+}
+
+.region-sidebar-first .section {
+}
+
+/*
+ * Second sidebar (on right in LTR languages, on left in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-second
+ * (see the layout.css file.)
+ */
+.region-sidebar-second {
+}
+
+.region-sidebar-second .section {
+}
+
+/*
+ * Two column stacked panels
+ */
+.panel-2col-stacked .panel-col-first .inside {
+  margin: 0 1em 1em 0;
+}
+.panel-2col-stacked .panel-col-last .inside {
+  margin: 0 0 1em 1em;
+}
+
+/*
+ * Footer
+ */
+#footer {
+  max-width: 960px;
+  margin: 0 auto;
+  padding: 50px 5px;
+}
+
+#footer .section {
+}
+
+#footer-menu {
+  background: #ebebeb;
+}
+#footer-menu a {
+  color: #000;
+  font-size: 11px;
+  font-weight: bold;
+  letter-spacing: 1px;
+}
+#footer-menu a:hover {
+  text-decoration: none;
+}
+
+#server-status {
+  float: right;
+  line-height: 40px;
+  margin: 0 12px;
+}
+#server-status li {
+  display: inline;
+  padding-top: 4px;
+  padding-bottom: 5px;
+  letter-spacing: 0;
+  /*background: url(../images/menu-divider.png) no-repeat left middle;*/
+}
+#server-status .tab {
+  font-size: 11px;
+}
+#server-status li a {
+}
+#server-status-highlights {
+  display: inline;
+  padding: 0;
+}
+#server-status-highlights li {
+  background: url(../images/icon-yellow-light.png) no-repeat left;
+  border: none;
+  margin-left: 12px;
+  padding-left: 18px;
+}
+#server-status-highlights li.first {
+  margin-left: 0;
+}
+#server-status-highlights li.good {
+  background: url(../images/icon-green-light.png) no-repeat left;
+}
+#server-status-highlights li.bad {
+  background: url(../images/icon-red-light.png) no-repeat left;
+}
+
+#footer-info {
+  margin: 15px 0;
+}
+#content-management-links {
+  margin: 12px 0;
+}
+#language {
+  font-size: 12px;
+  float: right;
+  padding: 0 28px 0 0;
+  background: url(../images/icon-us.png) no-repeat right;
+}
+
+#footer-message /* Wrapper for the footer message from Drupal's "Site information"
+                   and for any blocks placed in the footer region */ {
+}
+
+.region-footer {
+}
+
+/*
+ * Closure
+ */
+.region-page-closure /* Wrapper for any blocks placed in the closure region */ {
+}
+
+/*
+ * Drupal boxes
+ *
+ * Wrapper for Comment form, Comment viewing options, Menu admin, and
+ * Search results.
+ */
+.box /* Wrapper for box */ {
+}
+
+.box h2 /* Box title */ {
+}
+
+.box .content /* Box's content wrapper */ {
+}
+
+/*
+ * Markup free clearing (See: http://www.positioniseverything.net/easyclearing.html )
+ */
+.clearfix:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+.separator {
+  height: 1px;
+  border-width: 2px 0 0;
+  border-style: dotted;
+  border-color: #aaa;
+  margin: 2em 0;
+}
+.separator.buttons {
+  border-top-width: 1px;
+}
+
+/**
+ * Hide elements from all users.
+ *
+ * Used for elements which should not be immediately displayed to any user. An
+ * example would be a collapsible fieldset that will be expanded with a click
+ * from a user. The effect of this class can be toggled with the jQuery show()
+ * and hide() functions.
+ */
+.element-hidden {
+  display: none;
+}
+
+/**
+ * Hide elements visually, but keep them available for screen-readers.
+ *
+ * Used for information required for screen-reader users to understand and use
+ * the site where visual display is undesirable. Information provided in this
+ * manner should be kept concise, to avoid unnecessary burden on the user. Must
+ * not be used for focusable elements (such as links and form elements) as this
+ * causes issues for keyboard only or voice recognition users. "!important" is
+ * used to prevent unintentional overrides.
+ */
+.element-invisible {
+  position: absolute !important;
+  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+  clip: rect(1px, 1px, 1px, 1px);
+}
+
+
+/**
+ *
+ */
+a.button {
+  color: #fff;
+  font-size: 22px;
+  font-weight: bold;
+  text-transform: uppercase;
+  height: 36px;
+  line-height: 36px;
+  padding: 0 15px;
+  background: #faa341;
+  display: inline-block;
+}
+a.button:hover {
+  text-decoration: none;
+}
+
+/**
+ * Home page elements
+ */
+a.join.button {
+  margin: 40px 0 0;
+}
+
+a.help.button {
+  margin: 60px 0;
+}
+
+.tab-list .tab,
+.stats, .stats .tab {
+  text-transform: uppercase;
+  font-size: 13px;
+  letter-spacing: normal;
+}
+/*.stats .tab {
+  padding-left: 12px;
+  padding-right: 12px;
+}*/
+.stats .first .tab, .stats .first.tab {
+  padding-left: 0;
+}
+.stats .last .tab, .stats .last.tab {
+  padding-right: 0;
+}
+.tab-list .tab,
+.stats label, .stats a,
+.stats .tab label, .stats .tab a {
+  font-weight: bold;
+  font-size: 10px;
+  letter-spacing: 1px;
+}
+.tab.alt {
+  float: right;
+}
+.chart img {
+  margin: 0;
+  padding-top: 5px;
+}
+.page-account-dashboard .chart img {
+  height: 155px;
+  width: 589px;
+}
+
+table tr.link:hover {
+}
+table tr.inactive {
+  color: #d0d0d0;
+}
+.page-account-dashboard table {
+  width: 100%;
+  margin: 0;
+}
+#mini-panel-dashboard_tables table tr td:first-child {
+  width: 140px;
+}
+table.user-projects {
+  margin: 0;
+}
+
+.item-count-wrapper {
+  display: inline-block;
+  height: 21px;
+  margin-left: 10px;
+  background: url(../images/speech-bubble-tail.png) no-repeat bottom center;
+  vertical-align: middle;
+}
+.item-count {
+  color: #fff;
+  display: inline-block;
+  font-size: 10px;
+  font-weight: bold;
+  padding: 3px 5px 1px;
+  background: #747477;
+  vertical-align: top;
+}
+
+.item-list .pager {
+  font-size: 10px;
+  font-weight: bold;
+  text-transform: uppercase;
+  letter-spacing: 1px; 
+}
+.node-type-forum .item-list .pager {
+  border-top: 1px dotted #aaa;
+  margin-top: 0;
+  padding-top: 16px;
+}
+
+.item-list .pager-item a,
+.item-list .pager-first a,
+.item-list .pager-previous a,
+.item-list .pager-next a,
+.item-list .pager-last a {
+  color: #808080;
+}
+.item-list .pager-current a {
+  color: #000;
+}
+.item-list .pager a:hover {
+  text-decoration: none;
+  color: #000;
+}
+
+/**
+ * User profiles
+ */
+.user-profile .picture {
+  float: left;
+  max-height: 100px;
+  overflow: hidden;
+}
+.user-profile .picture img {
+  width: 100px;
+  margin: 0;
+}
+.user-profile .general-info {
+  margin: 0 0 5px 0;
+  padding: 0 0 14px 120px;
+  border-bottom: 1px dotted #AAA;
+  font-size: 10px;
+  line-height: 20px;
+  letter-spacing: 1px;
+  text-transform: uppercase;
+  position: relative;
+}
+.user-profile .general-info ul.tab-list {
+  margin-top: 10px;
+}
+.user-profile .bio {
+  clear: both;
+  margin: 5px 0;
+  border-top: 1px dotted #AAA;
+}
+.user-profile .bio .messages {
+  margin-top: 10px;
+}
+.user-profile .bio .background,
+.user-profile .bio .opinions {
+  padding-top: 14px;
+}
+.user-profile .general-info .name,
+.user-profile .bio .background .label,
+.user-profile .bio .opinions .label {
+  display: block;
+  font-size: 18px;
+  font-weight: bold;
+  text-transform: uppercase;
+  margin: 10px 0;
+}
+.user-profile .general-info .name {
+  margin-top: 0;
+}
+.user-profile .bio .background .value,
+.user-profile .bio .opinions .value {
+  display: block;
+}
+
+/* Forums */
+#forum-0 {
+  margin-top: -32px; /* [TODO] Add search box and remove this! */
+  margin-bottom: 32px;
+}
+#forum h2.title {
+  margin: 14px 3px 16px;
+}
+#forum .heading .primary .name {
+  text-transform: uppercase;
+}
+#forum .description {
+  font-size: inherit;
+  margin: 0;
+}
+#forum th {
+  border: none;
+}
+#forum td {
+  border-top: 1px dotted #aaa;
+  border-bottom: none;
+}
+#forum tr.heading td {
+  border-top: none;
+}
+#forum tr.sticky {
+}
+
+#forum tr.sticky:hover {
+  background-color: #f6f6f2;
+}
+#forum tr.first td {
+  /* border-color: #333; */
+}
+#forum tr.first-non-sticky td {
+  /* border-color: #333; */
+}
+#forum tr.last td {
+  border-bottom: 1px dotted #aaa;
+}
+#forum td.icon {
+    color: #5A5758;
+}
+#forum td.title a {
+  color: #5A5758;
+}
+#forum td.created, #forum td.posts, #forum td.topics, #forum td.last-reply, #forum td.replies, #forum td.pager {
+  white-space: nowrap;
+}
+#forum td.posts, #forum td.topics, #forum td.replies, #forum td.pager {
+  text-align: center;
+}
+#forum tr td.forum {
+  padding-left: 5px;
+  background-image: none;
+}
+#forum tr.new-topics td.forum {
+  background-image: none;
+}
+#forum div.indent {
+  margin-left: 0;
+}
+#forum > table {
+  width: 100%;
+}
+#forum > .item-list { /* pager */
+  float: right;
+}
+#forum > ul.links {
+  float: left;
+  font-size: 10px;
+}
+#forum > ul.links li {
+  margin: 1em 0;
+}
+#forum .subscriptions {
+  margin: 32px 5px;
+}
+#forum .topic.updated .title,
+.view-subscriptions .title.updated {
+  font-weight: bold;
+}
+.forum-topic-navigation {
+  padding: 1em 0 0 3em; /* LTR */
+  border-top: 1px solid #aaa;
+  border-bottom: 1px solid #aaa;
+  text-align: center;
+  padding: 0.5em;
+  margin: 2em 0;
+}
+.forum-topic-navigation .topic-previous,
+.forum-topic-navigation .topic-next {
+  text-align: right; /* LTR */
+  float: left; /* LTR */
+  width: 46%;
+  color: #808080;
+}
+.forum-topic-navigation .topic-next {
+  text-align: left; /* LTR */
+  float: right; /* LTR */
+}
+
+.node-type-forum .links {
+  font-size: 10px;
+  font-weight: bold;
+  text-transform: uppercase;
+  color: #808080;
+  letter-spacing: 1px; 
+}
+
+/* Join */
+.join {
+  font-size: 14px;
+}
+.join li {
+  margin: 1em 0;
+}
+
+/* Search */
+.page-search-site #content {
+  width: 650px;
+}
+.page-search-site .framing {
+  padding-bottom: 13px;
+}
+.page-search-site h1.title {
+  display: none;
+}
+#search-form {
+  margin-bottom: 1em;
+}
+#search-form #edit-keys-wrapper {
+  margin-top: 0;
+}
+#search-form .form-item label {
+  float: none;
+}
+#search-form .form-item label[for=edit-keys] {
+  width: 120px;
+  text-transform: uppercase;
+  font-size: 2em;
+  font-weight: bold;
+  line-height: 1.3em;
+  margin-bottom: 0.5em;
+  padding-bottom: 7px;
+  float: left;
+}
+#search-form .form-item input#edit-keys {
+  margin-top: 3px;
+}
+#search-form .form-submit {
+  padding: 0;
+}
+.spelling-suggestions {
+  border-top: 1px dotted #ccc;
+}
+.spelling-suggestions dt {
+  float: left;
+  margin-right: 5px;
+}
+.spelling-suggestions dt:after {
+  content: ':';
+}
+.search-results {
+  border-top: 2px dotted #aaa;
+}
+.search-results .result,
+.search-results dt {
+  border-top: 1px dotted #ccc;
+  padding: 1em 0;
+  clear: both;
+}
+.search-results .result:first-child,
+.search-results dt:first-child {
+  border: none;
+}
+.search-results .result.user .picture {
+  width: 120px;
+  margin-bottom: 30px;
+  float: left;
+  max-height: 100px;
+  overflow: hidden;
+}
+.search-results .result.user .picture img {
+  width: 100px;
+  margin: 0;
+}
+.search-results .result.user .details,
+.search-results .result.user .search-snippet {
+  padding-top: 7px;
+  margin: 0 0 0 120px;
+}
+
+/* Search pane */
+.panel-secondary #search-form #edit-keys-wrapper {
+  margin-right: 7px;
+}
+.panel-secondary #search-form label[for=edit-keys] {
+  display: none;
+}
+.panel-secondary #search-form #edit-keys {
+  width: 100%;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/css/panels-styles.css b/drupal/sites/default/boinc/themes/boinc/css/panels-styles.css
new file mode 100644
index 0000000..0b80afc
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/panels-styles.css
@@ -0,0 +1,180 @@
+/* $Id: panels-styles.css,v 1.1.2.1 2009/12/12 15:31:54 johnalbin Exp $ */
+
+/**
+ * @file
+ * Panels Styling
+ */
+
+.panel-display .panel-content {
+  width: 650px;
+}
+.panel-display .panel-sidebar-first {
+  width: 310px;
+}
+.panel-display .panel-sidebar-first .panel-sidebar-first-inner {
+  margin-left: 12px;
+}
+.panel-primary {
+  padding: 25px
+}
+.front .panel-primary {
+  padding: 30px 36px;
+}
+
+.panel-secondary {
+  padding: 15px;
+}
+.panel-region-separator {
+  margin-bottom: 16px;
+}
+.panel-pane {
+}
+.pane-title {
+  margin-top: 0;
+}
+.panel-primary .pane-title {
+  font-size: 18px;
+  text-transform: uppercase;
+  border-bottom: 1px dotted #aaa;
+  padding-bottom: 5px;
+}
+.front .panel-primary .pane-title {
+  font-size: 36px;
+  text-transform: none;
+  border: none;
+  padding-bottom: 0;
+}
+.panel-secondary h2 {
+  font-size: 12px;
+  text-transform: uppercase;
+  margin-top: 0;
+}
+
+.boinc-overview {
+  font-size: 24px;
+  line-height: 28px;
+}
+
+.boinc-overview-details {
+  height: 66px;
+  position: relative;
+}
+.boinc-overview-details .detail-container {
+  padding: 5px 0;
+  position: absolute;
+  bottom: 0;
+}
+.boinc-overview-details .detail {
+  font-size: 12px;
+  font-weight: bold;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  padding: 5px;
+}
+.boinc-overview-details .user-of-the-day {
+  display: block;
+  float: left;
+  max-width: 195px;
+}
+.boinc-overview-details a.user-of-the-day,
+.boinc-overview-details a.user-of-the-day:hover {
+  text-decoration: none;
+}
+.boinc-overview-details .user-of-the-day .text,
+.boinc-overview-details .user-of-the-day .detail {
+  margin-left: 60px;
+  max-width: 135px;
+}
+.boinc-overview-details .user-of-the-day .text {
+  color: #000;
+}
+.boinc-overview-details .user-of-the-day .picture {
+  float: left;
+  margin-top: -7px;
+  max-height: 50px;
+  overflow: hidden;
+}
+.boinc-overview-details .user-of-the-day .picture img {
+  width: 50px;
+  margin: 0;
+}
+.boinc-overview-details .volunteers {
+  float: left;
+  margin: 0 0 0 40px;
+  max-width: 342px;
+}
+.boinc-overview-details .text {
+  font-size: 15px;
+  font-weight: bold;
+  line-height: 17px;
+}
+.boinc-overview-details .about {
+  width: 120px;
+  margin: 0 0 0 65px;
+}
+.boinc-overview-details .platforms {
+  padding: 1px 0;
+}
+.boinc-overview-details .platform {
+  float: left;
+  padding-left: 30px;
+  padding-right: 16px;
+}
+.platform.linux {
+  background: url(../images/icon-linux.png) no-repeat top left;
+}
+.platform.mac {
+  background: url(../images/icon-mac.png) no-repeat top left;
+}
+.platform.windows {
+  background: url(../images/icon-windows.png) no-repeat top left;
+}
+
+.panel-secondary h2.pane-title,
+.panel-secondary .views-field-title {
+  margin-bottom: 1px;
+  padding: 0;
+}
+
+.pane-project-stats-overview {
+}
+.pane-project-stats-overview .overlay span {
+  color: #808080;
+  font-size: 11px;
+}
+.pane-project-stats-overview .chart img {
+  height: 80px;
+  width: 266px;
+}
+
+.panel-secondary.pane-news {
+  padding-left: 10px;
+  padding-right: 10px;
+  position: relative;
+}
+.panel-secondary.pane-news .views-field-view-node,
+.panel-secondary.pane-news .views-field-phpcode {
+  border-left: 1px solid #808080;
+  margin-left: 1em;
+  padding-left: 1em;
+  clear: none;
+}
+.panel-secondary.pane-news .more-link {
+  padding-top: 16px;
+}
+.panel-secondary.pane-news .feed {
+  position: absolute;
+  bottom: 8px;
+  right: 10px;
+}
+
+/* Account panes */
+.pane-user-project-list table th.numeric,
+.view-boinc-account-computers table th.numeric {
+  max-width: 64px;
+}
+
+.pane-user-mail-summary h2.pane-title,
+.pane-boinc-friends h2.pane-title {
+  margin-bottom: 10px;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/css/print.css b/drupal/sites/default/boinc/themes/boinc/css/print.css
new file mode 100644
index 0000000..dc9b6ce
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/print.css
@@ -0,0 +1,75 @@
+/* $Id: print.css,v 1.8.2.1 2010/06/26 15:36:04 johnalbin Exp $ */
+
+/**
+ * @file
+ * Print styling
+ *
+ * We provide some sane print styling for Drupal using Zen's layout method.
+ */
+
+
+/* underline all links */
+a:link,
+a:visited {
+  text-decoration: underline !important;
+}
+
+/* Don't underline header */
+#site-name a:link,
+#site-name a:visited {
+  text-decoration: none !important;
+}
+
+/* CSS2 selector to add visible href after links */
+#content a:link:after,
+#content a:visited:after {
+  content: " (" attr(href) ") ";
+  font-size: 0.8em;
+  font-weight: normal;
+}
+
+/* Un-float the content */
+#content,
+#content .section {
+  float: none;
+  width: 100%;
+  margin: 0 !important;
+  padding: 0 !important;
+}
+
+/* Turn off any background colors or images */
+body,
+#page-wrapper,
+#page,
+#main-wrapper,
+#main,
+#content,
+#content .section {
+  color: #000;
+  background-color: transparent !important;
+  background-image: none !important;
+}
+
+/* Hide sidebars and nav elements */
+#skip-link,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer,
+.breadcrumb,
+div.tabs,
+.links,
+.taxonomy,
+.book-navigation,
+.forum-topic-navigation,
+.pager,
+.feed-icons {
+  visibility: hidden;
+  display: none;
+}
+
+/* If you un-comment the "page { overflow-y: hidden; }" ruleset, Firefox clips
+   the content after the first page. */
+#page-wrapper {
+  overflow-y: visible;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/responsive-jswidth.css b/drupal/sites/default/boinc/themes/boinc/css/responsive-jswidth.css
new file mode 100644
index 0000000..379e059
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/responsive-jswidth.css
@@ -0,0 +1,117 @@
+/* Id */
+
+/**
+ * @file
+ * Responsive Javascript Styling
+ *
+ * Contains CSS styles to handle different screen sizes. This CSS file is used
+ * for the responsive Javascript width theme. 
+ */
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * CSS Style with menu links in navigation bar
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* Hide the mobile menu icon. */
+.has-js #block-mobile_menu_toggle-0.usenavbar {
+  display: none;
+}
+
+.has-js #navigation-mmt.usenavbar {
+  display: none;
+}
+
+/* Show the non-mobile menus in the navigation bar. */
+.has-js #main-menu.usenavbar ul,
+.has-js #sub-menu.usenavbar ul,
+.has-js #action-links.usenavbar ul {
+  display: block;
+}
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * CSS Style with hamburger menu
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* Set the navigation bar space for the mobile menu. */
+.has-js #navigation.usehamburger {
+  overflow: visible;
+  min-height: 31px;
+}
+
+/* Show the hamburger menu and the menu block. */
+.has-js #block-mobile_menu_toggle-0.usehamburger {
+  display: block;
+  position: relative;
+  padding-top: 3px;
+  margin: 0 auto;
+  max-width: 980px;
+  padding-left: 20px;
+}
+
+.has-js #mobile-menu-toggle {
+  text-decoration: none; /* Removes the underline beneath links. */
+}
+
+/* By default, hide the mobile menu. User must click the menu to
+   toggle its visibility. */
+.has-js #navigation-mmt.usehamburger {
+  display: none;
+  margin-left: 39px;
+  padding-top: 31px;
+}
+
+/* Hide the non-mobiles menus. */
+.has-js #main-menu.usehamburger ul,
+.has-js #sub-menu.usehamburger ul,
+.has-js #action-links.usehamburger ul {
+  display: none;
+}
+
+/* Modifty the navigation CSS so that mobile menu links are arranged
+   vertically.*/
+.has-js #navigation.usehamburger .block .menu {
+  width: auto;
+  float: none;
+  border: none;
+  padding: 2px 0 0 0;
+}
+
+.has-js #navigation.usehamburger .block .menu li {
+  float: none;
+  border: none;
+}
+
+.has-js #navigation.usehamburger li.expanded ul.menu {
+  padding: 0 20px;
+}
+  
+/* Set base mobile menu font color and size. */
+.has-js #navigation.usehamburger .block .menu li a {
+  color: #faa341;
+  font-size: 14px;
+  height: auto;
+  padding: 0;
+}
+
+/* Add active and hover color for links in mobile menu. */
+.has-js #navigation.usehamburger .block .menu li a.active,
+.has-js #navigation.usehamburger .block .menu li a:hover {
+  color: black;
+}
+
+/* Add caret left/down icons to the mobile menu for items that
+   expand. */
+.has-js #navigation.usehamburger li.dhtml-menu.collapsed>a:after {
+    /* Caret left */
+    content: "\f0da";
+    font-family: FontAwesome;
+    padding-left: 5px;
+}
+
+.has-js #navigation.usehamburger li.dhtml-menu.expanded>a:after {
+    /* Caret down */
+    content: "\f0d7";
+    font-family: FontAwesome;
+    padding-left: 5px;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/responsive-media.css b/drupal/sites/default/boinc/themes/boinc/css/responsive-media.css
new file mode 100644
index 0000000..30420ee
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/responsive-media.css
@@ -0,0 +1,156 @@
+/* Id */
+
+/**
+ * @file
+ * Responsive Media Styling
+ *
+ * Contains CSS styles to handle different screen sizes. This CSS file is 
+ * used mainly for browsers with Javascript DISABLED. 
+ */
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * CSS Style designed for large desktop screens
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ at media only screen and (min-width: 980px) {
+  #main-wrapper {
+    margin: 16px auto 0;
+  }
+
+  /* Hide the mobile menu icon. Hide the mobile navigation menu. */
+  #navigation-mmt {
+    display: none;
+  }
+  #block-mobile_menu_toggle-0 {
+    display: none;
+  }
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * CSS Style designed screens less than 980px. 980px is the fixed
+ * width of the desktop site.
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+ at media only screen and (max-width: 979px) {
+  /* Main wrapper margin set to 16px top, 12px left & right. */
+  #main-wrapper {
+    margin: 16px 12px 12px;
+  }
+
+  /* Header adjustment when hamburger menu is onscreen. */
+  #header {
+    max-width: none;
+  }
+
+  /* Hide the mobile menu icon. Hide the mobile navigation menu. */
+  #navigation-mmt {
+    display: none;
+  }
+  #block-mobile_menu_toggle-0 {
+    display: none;
+  }
+
+  /* Main content pane should have flexible width. */
+  #content,
+  .no-sidebars #content {
+    width: auto;
+  }
+
+  /* Adjust forum wrapping for smaller screens. */
+  #forum td.created,
+  #forum td.posts,
+  #forum td.topics,
+  #forum td.last-reply,
+  #forum td.replies,
+  #forum td.pager,
+  #forum td.icon {
+    white-space: normal;
+  }
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
+ * CSS Style designed for mobile screens
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+ at media only screen and (max-width: 750px) {
+  /* Hide the primary and secondary menus */
+  #main-menu ul,
+  #sub-menu ul,
+  #action-links ul {
+    display: none;
+  }
+
+  /* Header adjustment when hamburger menu is onscreen. */
+  #header {
+    max-width: none;
+  }
+
+  /* Set the navigation bar space for the mobile menu.*/
+  #navigation {
+    overflow: visible;
+    min-height: 31px;
+  }
+
+  /* Hide the hamburger menu icon. */
+  #block-mobile_menu_toggle-0 {
+    display: none;
+  }
+
+  /* Show the mobile menu always, instead of being toggled by JS. */
+  #navigation-mmt {
+    display: block;
+    margin-left: 39px;
+    padding-top: 31px;
+  }
+
+  /* Modifty the navigation/mobile menu CSS so that menu links are
+   arranged vertically.*/
+  #navigation .block .menu {
+    width: auto;
+    float: none;
+    border: none;
+    padding: 2px 0 0 0;
+  }
+
+  #navigation .block .menu li {
+    float: none;
+    border: none;
+  }
+
+  #navigation li.expanded ul.menu {
+    padding: 0 20px;
+  }
+  
+  /* Set base mobile menu font color and size. */
+  #navigation .block .menu li a {
+    color: #faa341;
+    font-size: 14px;
+    height: auto;
+  }
+
+  /* Add active and hover color for links in mobile menu. */
+  #navigation .block .menu li a.active,
+  #navigation .block .menu li a:hover {
+    color: black;
+  }
+  
+  /* Add caret left/down icons to the mobile menu for items that
+   expand. */
+  #navigation li.expanded.dhtml-menu.collapsed>a:after {
+    /* Caret left */
+    content: "\f0da";
+    font-family: FontAwesome;
+    padding-left: 5px;
+  }
+
+  #navigation li.expanded.dhtml-menu.active-trail>a:after {
+    /* Caret down */
+    content: "\f0d7";
+    font-family: FontAwesome;
+    padding-left: 5px;
+  }
+
+  /* Reset CSS on tabs class for mobile menus. */
+  .tab {
+    all: unset;
+  }
+
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/tabs-rtl.css b/drupal/sites/default/boinc/themes/boinc/css/tabs-rtl.css
new file mode 100644
index 0000000..83ca20d
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/tabs-rtl.css
@@ -0,0 +1,24 @@
+/* $Id: tabs-rtl.css,v 1.2 2009/08/12 08:03:53 johnalbin Exp $ */
+
+/**
+ * @file
+ * RTL companion for the tabs.css file.
+ */
+
+
+ul.primary {
+  padding: 0 10px 0 0;
+}
+
+ul.primary li {
+  float: right;
+}
+
+ul.secondary {
+  padding: 0 5px 0 0;
+}
+
+ul.secondary li {
+  float: right;
+  border-left: none;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/tabs.css b/drupal/sites/default/boinc/themes/boinc/css/tabs.css
new file mode 100644
index 0000000..f95828c
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/tabs.css
@@ -0,0 +1,177 @@
+/* $Id: tabs.css,v 1.2 2009/08/12 08:03:53 johnalbin Exp $ */
+
+/**
+ * @file
+ * Tabs Styling
+ *
+ * Adds styles for the primary and secondary tabs.
+ *
+ * Compare this with default CSS found in the system module's stylesheet (a copy
+ * of which is in drupal6-reference.css, line 510.)
+ */
+
+
+div.tabs {
+  margin: 0 0 10px 0;
+}
+div.tabs .tab {
+  font-size: 11px;
+}
+div.tabs h1 {
+  float: left;
+  line-height: 56px;
+  margin: 0 20px 0 25px;
+  padding: 0;
+  border: none;
+}
+
+.tab {
+  font-size: 10px;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  border-left: 1px solid #5a5758;
+  padding-left: 14px;
+  padding-right: 14px;
+}
+.first.tab,
+ul.tabs li.first span.tab {
+  border: none;
+  padding-left: 0;
+}
+.last .tab, .last.tab {
+  padding-right: 0;
+}
+.tab a {
+  font-weight: bold;
+}
+li.tab {
+  display: inline-block;
+}
+
+ul.tab-list {
+  margin: 0;
+  padding: 0;
+}
+ul.tab-list a {
+  display: inline-block;
+}
+
+ul.primary, ul.secondary {
+  margin: 0 auto;
+  padding: 0 0 0 12px; /* LTR */
+  border-width: 0;
+  list-style: none;
+  white-space: nowrap;
+  line-height: normal;
+  /*background: url(../images/tab-bar.png) repeat-x left bottom;*/
+}
+
+ul.primary li, ul.secondary li {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0;
+}
+
+ul.primary li a, ul.secondary li a {
+  display: block;
+  height: 33px;
+  margin: 0;
+  padding: 0; /* width of tab-left.png */
+  border-width: 0;
+  font-weight: bold;
+  text-decoration: none;
+  color: #808080;
+  background-color: transparent;
+  /*background: url(../images/tab-left.png) no-repeat left -38px;*/
+}
+
+ul.primary li a .tab, ul.secondary li a .tab {
+  display: block;
+  line-height: 24px;
+  margin: 16px 0;
+  padding: 0 12px;
+  /*background: url(../images/tab-right.png) no-repeat right -38px;*/
+}
+ul.primary li.first a .tab, ul.secondary li.first a .tab {
+  padding-left: 5px;
+}
+
+ul.primary li a:hover {
+  border-width: 0;
+  background-color: transparent;
+  text-decoration: none;
+  color: #000;
+  /*background: url(../images/tab-left.png) no-repeat left -76px;*/
+}
+
+ul.primary li a:hover .tab {
+  /*background: url(../images/tab-right.png) no-repeat right -76px;*/
+}
+
+ul.primary li.active a,
+ul.primary li.active a:hover,
+ul.secondary li.active a,
+ul.secondary li.active a:hover {
+  border-width: 0;
+  color: #000;
+  background-color: transparent;
+  /*background: url(../images/tab-left.png) no-repeat left 0;*/
+}
+
+ul.primary li.active a .tab,
+ul.primary li.active a:hover .tab {
+  /*background: url(../images/tab-right.png) no-repeat right 0;*/
+}
+
+ul.secondary {
+}
+
+ul.secondary li {
+  border-right: none;
+}
+
+ul.secondary a {
+}
+
+ul.secondary a .tab {
+}
+ul.secondary .last .tab, ul.secondary .last.tab {
+  border-right: none;
+}
+
+ul.secondary a:hover {
+  color: #000;
+  text-decoration: none;
+}
+
+ul.secondary a.active,
+ul.secondary a.active:hover {
+  border-bottom: none;
+}
+
+
+
+ul.content-sub-menu {
+  padding: 1em 0 5px;
+  margin: 0 0 30px;
+  border-bottom: 1px dotted #aaa;
+}
+ul.content-sub-menu li {
+  color: gray;
+  font-size: 9px;
+  font-weight: bold;
+  border: none;
+}
+ul.content-sub-menu li.active {
+  color: #000;
+}
+
+ul.content-footer-menu {
+  position: absolute;
+  bottom: -40px;
+  right: 0;
+  
+}
+ul.content-footer-menu li {
+  font-size: 9px;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/css/views-styles.css b/drupal/sites/default/boinc/themes/boinc/css/views-styles.css
new file mode 100644
index 0000000..d5f9f45
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/views-styles.css
@@ -0,0 +1,239 @@
+/* $Id: views-styles.css,v 1.1 2009/08/12 04:25:15 johnalbin Exp $ */
+
+/**
+ * @file
+ * Views Styling
+ */
+
+.view-empty h2 {
+  margin-top: 0;
+}
+.view-content div {
+  padding: 0 0 5px;
+  clear: left;
+}
+.view-content label {
+  width: 200px;
+  display: block;
+  float: left;
+  margin: 0 10px 0 0;
+}
+.view-content table {
+  width: 100%;
+  margin: 0;
+  clear: both;
+}
+.view-content table th.sort-asc a {
+  padding-right: 16px;
+  background: url(../images/arrow-asc.png) no-repeat right -3px;
+}
+.view-content table th.sort-desc a {
+  padding-right: 16px;
+  background: url(../images/arrow-desc.png) no-repeat right -3px;
+}
+.view-content span.field-content {
+  
+}
+
+/**
+ * News
+ */
+.view-news .views-row {
+  border-bottom: 1px dotted #aaa;
+  padding: 15px 0 0 5px;
+}
+.view-news .views-row-first {
+  padding-top: 0;
+}
+.view-news .views-field-title {
+  margin-bottom: 1px;
+  padding: 0;
+}
+.view-news .views-field-title h2 {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.view-news .views-field-created, .view-news .views-field-name {
+  font-size: 11px;
+}
+.view-news .views-field-created {
+  float: left;
+  margin-right: 5px;
+  color: #808080;
+  padding-bottom: 8px;
+}
+.view-news .views-field-name {
+  clear: none;
+}
+.view-news .views-field-teaser,
+.view-news .views-field-teaser .field-content {
+  padding-bottom: 0;
+}
+.view-news .views-field-view-node,
+.view-news .views-field-view-node-1,
+.view-news .views-field-phpcode {
+  float: left;
+  font-size: 10px;
+  font-weight: bold;
+  text-transform: uppercase;
+  letter-spacing: 1px;
+  line-height: 18px;
+  padding-bottom: 0;
+}
+.view-news .views-field-comment-count {
+  clear: none;
+  float: left;
+  margin-left: 10px;
+  padding-bottom: 3px;
+  background: url(../images/speech-bubble-tail.png) no-repeat bottom center
+}
+.view-news .views-field-comment-count .field-content {
+  color: #fff;
+  font-size: 10px;
+  font-weight: bold;
+  padding: 3px 5px 1px;
+  background: #747477;
+}
+.view-news .views-field-nothing {
+  padding: 0 0 8px;
+  margin: 0;
+  height: 0;
+}
+.view-news .views-row-last .views-field-nothing {
+}
+
+/**
+ * Account stats
+ */
+.view-boinc-account-stats {
+}
+.view-boinc-account-stats .view-content {
+}
+.view-boinc-account-stats .view-content div {
+  padding: 0;
+}
+.view-boinc-account-stats .view-content label {
+  width: auto;
+  display: inline;
+  float: none;
+  margin: 0;
+}
+.view-boinc-account-stats.view-display-id-panel_pane_1 {
+  padding-bottom: 5px;
+  margin-bottom: 35px;
+  border-bottom: 1px dotted #aaa;
+}
+.view-boinc-account-stats.view-display-id-panel_pane_1 .view-content {
+  padding-bottom: 20px;
+  border-bottom: 1px dotted #aaa;
+}
+.view-boinc-account-stats ul.stats {
+  padding: 16px 0 30px;
+}
+.view-boinc-account-stats ul.stats li {
+  display: inline-block;
+}
+.view-boinc-account-stats ul.stats li label {
+  display: inline;
+  float: none;
+  margin: 0;
+}
+
+.view-boinc-account-computers {
+
+}
+
+/**
+ * Computer and task lists
+ */
+.sticky-header .views-field-expavg-credit,
+.sticky-header .views-field-total-credit,
+.sticky-header .views-field-elapsed-time,
+.sticky-header .views-field-cpu-time,
+.sticky-header .views-field-claimed-credit-1,
+.sticky-header .views-field-granted-credit {
+  text-align: right;
+}
+.views-table .views-field-expavg-credit,
+.views-table .views-field-total-credit,
+.views-table .views-field-elapsed-time,
+.views-table .views-field-cpu-time,
+.views-table .views-field-claimed-credit-1,
+.views-table .views-field-granted-credit {
+  text-align: right;
+}
+.views-table .views-field .task-name {
+  word-break: break-all;
+}
+
+/**
+ * Friends block
+ */
+.view-friends .imagefield,
+.view-boinc-friends .imagefield {
+  width: 50px;
+  height: 50px;
+  margin: 0 1px;
+}
+.view-friends .views-row,
+.view-boinc-friends .views-row {
+  float: left;
+  clear: none;
+  padding: 0;
+}
+.view-friends .more-link,
+.view-boinc-friends .more-link {
+  clear: both;
+}
+
+/**
+ * Search pages
+ */
+.views-exposed-form {
+	border-bottom: 2px dotted #aaa;
+	margin-bottom: 40px;
+}
+.views-exposed-widgets {
+	border-bottom: 2px dotted #aaa;
+}
+.views-exposed-form .views-exposed-widget {
+	float: none;
+	clear: both;
+}
+.views-exposed-form label{
+	float: left;
+	clear: left;
+	line-height: 24px;
+	width: 100px;
+	margin-right: 40px;
+}
+.views-exposed-form .views-widget {
+	float: left;
+}
+.views-exposed-form .views-exposed-widget .form-submit{
+	margin: 2.4em 0 1.6em;
+}
+
+.view-user-list .imagefield {
+	width: 25px;
+	height: 25px;
+}
+
+/**
+ * Subscriptions
+ */
+.view-subscriptions .views-field-ops {
+  text-align: right;
+}
+
+/**
+ * Hosts
+ */
+.view-boinc-host .jump-quickly div {
+  display: inline-block;
+}
+.view-boinc-host .jump-quickly .container-inline,
+.view-boinc-host .jump-quickly #edit-jump-goto-wrapper {
+  margin: 0;
+  padding: 0;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/css/wireframes.css b/drupal/sites/default/boinc/themes/boinc/css/wireframes.css
new file mode 100644
index 0000000..2a4ccbf
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/css/wireframes.css
@@ -0,0 +1,26 @@
+/* $Id: wireframes.css,v 1.10 2009/11/04 21:01:11 johnalbin Exp $ */
+
+/**
+ * @file
+ * Wireframes Styling
+ *
+ * Add wireframes to the basic layout elements.
+ */
+
+
+.with-wireframes #header .section,
+.with-wireframes #content .section,
+.with-wireframes #navigation .section,
+.with-wireframes .region-sidebar-first .section,
+.with-wireframes .region-sidebar-second .section,
+.with-wireframes #footer .section {
+  margin: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
+
+.with-wireframes .region-page-closure {
+  margin-top: 1px;
+  padding: 2px;
+  border: 1px solid #ccc;
+}
diff --git a/drupal/sites/default/boinc/themes/boinc/favicon.ico b/drupal/sites/default/boinc/themes/boinc/favicon.ico
new file mode 100644
index 0000000..0f9909a
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/favicon.ico differ
diff --git a/drupal/sites/default/boinc/themes/boinc/fonts/FontAwesome.otf b/drupal/sites/default/boinc/themes/boinc/fonts/FontAwesome.otf
new file mode 100644
index 0000000..d4de13e
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/fonts/FontAwesome.otf differ
diff --git a/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.eot b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..c7b00d2
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.eot differ
diff --git a/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.svg b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..8b66187
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.svg
@@ -0,0 +1,685 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="fontawesomeregular" horiz-adv-x="1536" >
+<font-face units-per-em="1792" ascent="1536" descent="-256" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode=" "  horiz-adv-x="448" />
+<glyph unicode="&#x09;" horiz-adv-x="448" />
+<glyph unicode="&#xa0;" horiz-adv-x="448" />
+<glyph unicode="&#xa8;" horiz-adv-x="1792" />
+<glyph unicode="&#xa9;" horiz-adv-x="1792" />
+<glyph unicode="&#xae;" horiz-adv-x="1792" />
+<glyph unicode="&#xb4;" horiz-adv-x="1792" />
+<glyph unicode="&#xc6;" horiz-adv-x="1792" />
+<glyph unicode="&#xd8;" horiz-adv-x="1792" />
+<glyph unicode="&#x2000;" horiz-adv-x="768" />
+<glyph unicode="&#x2001;" horiz-adv-x="1537" />
+<glyph unicode="&#x2002;" horiz-adv-x="768" />
+<glyph unicode="&#x2003;" horiz-adv-x="1537" />
+<glyph unicode="&#x2004;" horiz-adv-x="512" />
+<glyph unicode="&#x2005;" horiz-adv-x="384" />
+<glyph unicode="&#x2006;" horiz-adv-x="256" />
+<glyph unicode="&#x2007;" horiz-adv-x="256" />
+<glyph unicode="&#x2008;" horiz-adv-x="192" />
+<glyph unicode="&#x2009;" horiz-adv-x="307" />
+<glyph unicode="&#x200a;" horiz-adv-x="85" />
+<glyph unicode="&#x202f;" horiz-adv-x="307" />
+<glyph unicode="&#x205f;" horiz-adv-x="384" />
+<glyph unicode="&#x2122;" horiz-adv-x="1792" />
+<glyph unicode="&#x221e;" horiz-adv-x="1792" />
+<glyph unicode="&#x2260;" horiz-adv-x="1792" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 [...]
+<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
+<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 [...]
+<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40  [...]
+<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40  [...]
+<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343  [...]
+<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150  [...]
+<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0  [...]
+<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t [...]
+<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5 [...]
+<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q [...]
+<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+<glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
+<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t2 [...]
+<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q4 [...]
+<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
+<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 2 [...]
+<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5  [...]
+<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -1 [...]
+<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185  [...]
+<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56  [...]
+<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l7 [...]
+<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 [...]
+<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-4 [...]
+<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v [...]
+<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q- [...]
+<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q [...]
+<glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 [...]
+<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 - [...]
+<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22 [...]
+<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q- [...]
+<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
+<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
+<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 12 [...]
+<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34 [...]
+<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263  [...]
+<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256  [...]
+<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
+<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
+<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
+<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
+<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 - [...]
+<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-38 [...]
+<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h [...]
+<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385. [...]
+<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
+<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
+<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 [...]
+<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 3 [...]
+<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150. [...]
+<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 [...]
+<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 [...]
+<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h28 [...]
+<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -1 [...]
+<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 [...]
+<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5  [...]
+<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 [...]
+<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t [...]
+<glyph unicode="&#xf082;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" />
+<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 - [...]
+<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189  [...]
+<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11  [...]
+<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 [...]
+<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 4 [...]
+<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h [...]
+<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -6 [...]
+<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t4 [...]
+<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q2 [...]
+<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -2 [...]
+<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 4 [...]
+<glyph unicode="&#xf092;" d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 9 [...]
+<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 [...]
+<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t- [...]
+<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5  [...]
+<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216. [...]
+<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+<glyph unicode="&#xf09b;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -4 [...]
+<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5 [...]
+<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q- [...]
+<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+<glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 4 [...]
+<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 [...]
+<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-1 [...]
+<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32z [...]
+<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 - [...]
+<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -4 [...]
+<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5 [...]
+<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0  [...]
+<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -7 [...]
+<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3. [...]
+<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
+<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 [...]
+<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0  [...]
+<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 [...]
+<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22. [...]
+<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t- [...]
+<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -3 [...]
+<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -1 [...]
+<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -2 [...]
+<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5  [...]
+<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11 [...]
+<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 - [...]
+<glyph unicode="&#xf0d4;" d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0d5;" horiz-adv-x="2304" d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
+<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45  [...]
+<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t11 [...]
+<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 - [...]
+<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 - [...]
+<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37 [...]
+<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26  [...]
+<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q [...]
+<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h [...]
+<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 2 [...]
+<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q [...]
+<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 [...]
+<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 - [...]
+<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
+<glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t1 [...]
+<glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 [...]
+<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22 [...]
+<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22 [...]
+<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23  [...]
+<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 15 [...]
+<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
+<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75  [...]
+<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 [...]
+<glyph unicode="&#xf110;" horiz-adv-x="1792" d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-11 [...]
+<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM16 [...]
+<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 [...]
+<glyph unicode="&#xf116;" horiz-adv-x="1792" />
+<glyph unicode="&#xf117;" horiz-adv-x="1792" />
+<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-2 [...]
+<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248 [...]
+<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136. [...]
+<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -1 [...]
+<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16z [...]
+<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -9 [...]
+<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q [...]
+<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10 [...]
+<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 - [...]
+<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 13 [...]
+<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239 [...]
+<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 [...]
+<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t- [...]
+<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t- [...]
+<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t [...]
+<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 [...]
+<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-2 [...]
+<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 [...]
+<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
+<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 2 [...]
+<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23z [...]
+<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
+<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126  [...]
+<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5  [...]
+<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q [...]
+<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-1 [...]
+<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0 [...]
+<glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+<glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l- [...]
+<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567 [...]
+<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14  [...]
+<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14  [...]
+<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 [...]
+<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -4 [...]
+<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24  [...]
+<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 [...]
+<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86 [...]
+<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39  [...]
+<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
+<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
+<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+<glyph unicode="&#xf16c;" d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
+<glyph unicode="&#xf16d;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270 q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11  [...]
+<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q- [...]
+<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 4 [...]
+<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
+<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11 [...]
+<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78  [...]
+<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69 [...]
+<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q [...]
+<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 - [...]
+<glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 5 [...]
+<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65. [...]
+<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 2 [...]
+<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 [...]
+<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91 [...]
+<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 [...]
+<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70  [...]
+<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
+<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455 [...]
+<glyph unicode="&#xf194;" d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 20 [...]
+<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-2 [...]
+<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 - [...]
+<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 [...]
+<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5 [...]
+<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+<glyph unicode="&#xf1a0;" d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
+<glyph unicode="&#xf1a1;" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q- [...]
+<glyph unicode="&#xf1a2;" d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42 [...]
+<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385 [...]
+<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
+<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h- [...]
+<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5  [...]
+<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 [...]
+<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 1 [...]
+<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q [...]
+<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 - [...]
+<glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-6 [...]
+<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 [...]
+<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
+<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l [...]
+<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96 [...]
+<glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 - [...]
+<glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -32 [...]
+<glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 2 [...]
+<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 6 [...]
+<glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94  [...]
+<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 [...]
+<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t [...]
+<glyph unicode="&#xf1bd;" horiz-adv-x="1024" d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
+<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l [...]
+<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280  [...]
+<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t13 [...]
+<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 - [...]
+<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q [...]
+<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137. [...]
+<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -1 [...]
+<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6 [...]
+<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 10 [...]
+<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44  [...]
+<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-2 [...]
+<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
+<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115 [...]
+<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241 [...]
+<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387 [...]
+<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 10 [...]
+<glyph unicode="&#xf1d4;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186 [...]
+<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 - [...]
+<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -7 [...]
+<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
+<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 - [...]
+<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5 [...]
+<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+<glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1 [...]
+<glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+<glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 [...]
+<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q- [...]
+<glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l13 [...]
+<glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t [...]
+<glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
+<glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1 [...]
+<glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+<glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 [...]
+<glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+<glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73 [...]
+<glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90. [...]
+<glyph unicode="&#xf1ed;" d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 3 [...]
+<glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M441 864q32 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" />
+<glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24 [...]
+<glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39  [...]
+<glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0  [...]
+<glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1 [...]
+<glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q [...]
+<glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 - [...]
+<glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68  [...]
+<glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7 [...]
+<glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v [...]
+<glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 - [...]
+<glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0  [...]
+<glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+<glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+<glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-3 [...]
+<glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+<glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43. [...]
+<glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t [...]
+<glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -13 [...]
+<glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+<glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 3 [...]
+<glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 - [...]
+<glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5  [...]
+<glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169  [...]
+<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65 [...]
+<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -8 [...]
+<glyph unicode="&#xf20d;" d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
+<glyph unicode="&#xf20e;" horiz-adv-x="2048" d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t [...]
+<glyph unicode="&#xf210;" d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
+<glyph unicode="&#xf211;" d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
+<glyph unicode="&#xf212;" horiz-adv-x="2048" d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-17 [...]
+<glyph unicode="&#xf213;" horiz-adv-x="2048" d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 - [...]
+<glyph unicode="&#xf214;" d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l10 [...]
+<glyph unicode="&#xf215;" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
+<glyph unicode="&#xf216;" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 - [...]
+<glyph unicode="&#xf217;" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1  [...]
+<glyph unicode="&#xf218;" horiz-adv-x="1664" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 [...]
+<glyph unicode="&#xf219;" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
+<glyph unicode="&#xf21a;" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 4 [...]
+<glyph unicode="&#xf21b;" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 [...]
+<glyph unicode="&#xf21c;" horiz-adv-x="2304" d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5 [...]
+<glyph unicode="&#xf21d;" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 - [...]
+<glyph unicode="&#xf21e;" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t [...]
+<glyph unicode="&#xf221;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
+<glyph unicode="&#xf222;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf223;" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -2 [...]
+<glyph unicode="&#xf224;" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 13 [...]
+<glyph unicode="&#xf225;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l [...]
+<glyph unicode="&#xf226;" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -12 [...]
+<glyph unicode="&#xf227;" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -7 [...]
+<glyph unicode="&#xf228;" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q1 [...]
+<glyph unicode="&#xf229;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 [...]
+<glyph unicode="&#xf22a;" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t [...]
+<glyph unicode="&#xf22b;" horiz-adv-x="2048" d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131. [...]
+<glyph unicode="&#xf22c;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf22d;" horiz-adv-x="1280" d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
+<glyph unicode="&#xf22e;" horiz-adv-x="1792" />
+<glyph unicode="&#xf22f;" horiz-adv-x="1792" />
+<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
+<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 9 [...]
+<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 - [...]
+<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
+<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h [...]
+<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91 [...]
+<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" />
+<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
+<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
+<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
+<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
+<glyph unicode="&#xf23b;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
+<glyph unicode="&#xf23c;" horiz-adv-x="2296" d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5z [...]
+<glyph unicode="&#xf23d;" horiz-adv-x="2304" d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98 [...]
+<glyph unicode="&#xf23e;" horiz-adv-x="1792" d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 - [...]
+<glyph unicode="&#xf240;" horiz-adv-x="2304" d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf241;" horiz-adv-x="2304" d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf242;" horiz-adv-x="2304" d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf243;" horiz-adv-x="2304" d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf244;" horiz-adv-x="2304" d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf245;" horiz-adv-x="1280" d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
+<glyph unicode="&#xf246;" horiz-adv-x="1024" d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
+<glyph unicode="&#xf247;" horiz-adv-x="2048" d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
+<glyph unicode="&#xf248;" horiz-adv-x="2304" d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v [...]
+<glyph unicode="&#xf249;" d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
+<glyph unicode="&#xf24a;" d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 z" />
+<glyph unicode="&#xf24b;" horiz-adv-x="2304" d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-12 [...]
+<glyph unicode="&#xf24c;" horiz-adv-x="2304" d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323  [...]
+<glyph unicode="&#xf24d;" horiz-adv-x="1792" d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 - [...]
+<glyph unicode="&#xf24e;" horiz-adv-x="2304" d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t2 [...]
+<glyph unicode="&#xf250;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11 [...]
+<glyph unicode="&#xf251;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -1 [...]
+<glyph unicode="&#xf252;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
+<glyph unicode="&#xf253;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11 [...]
+<glyph unicode="&#xf254;" d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14  [...]
+<glyph unicode="&#xf255;" d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 [...]
+<glyph unicode="&#xf256;" horiz-adv-x="1792" d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -17 [...]
+<glyph unicode="&#xf257;" horiz-adv-x="1792" d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79 [...]
+<glyph unicode="&#xf258;" horiz-adv-x="2048" d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 [...]
+<glyph unicode="&#xf259;" horiz-adv-x="2048" d="M816 1408q-48 0 -79.5 -34t-31.5 -82q0 -14 3 -28l150 -624h-26l-116 482q-9 38 -39.5 62t-69.5 24q-47 0 -79 -34t-32 -81q0 -11 4 -29q3 -13 39 -161t68 -282t32 -138v-227l-307 230q-34 26 -77 26q-52 0 -89.5 -36.5t-37.5 -88.5q0 -67 56 -110l507 -379 q34 -26 76 -26h694q33 0 59 20.5t34 52.5l100 401q8 30 10 88t9 86l116 478q3 12 3 26q0 46 -33 79t-80 33q-38 0 -69 -25.5t-40 -62.5l-99 -408h-26l132 547q3 14 3 28q0 47 -32 80t-80 33q-38 0 -68.5 -24t-39.5 -62l-1 [...]
+<glyph unicode="&#xf25a;" horiz-adv-x="1792" d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47  [...]
+<glyph unicode="&#xf25b;" d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 - [...]
+<glyph unicode="&#xf25c;" horiz-adv-x="1973" d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51 [...]
+<glyph unicode="&#xf25d;" horiz-adv-x="1792" d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5  [...]
+<glyph unicode="&#xf25e;" horiz-adv-x="1792" d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q [...]
+<glyph unicode="&#xf260;" horiz-adv-x="2048" d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
+<glyph unicode="&#xf261;" horiz-adv-x="1792" d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf262;" horiz-adv-x="2304" d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q [...]
+<glyph unicode="&#xf263;" horiz-adv-x="1280" d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 3 [...]
+<glyph unicode="&#xf264;" d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 [...]
+<glyph unicode="&#xf265;" horiz-adv-x="1720" d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
+<glyph unicode="&#xf266;" horiz-adv-x="2304" d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5  [...]
+<glyph unicode="&#xf267;" horiz-adv-x="1792" d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 1 [...]
+<glyph unicode="&#xf268;" horiz-adv-x="1792" d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5  [...]
+<glyph unicode="&#xf269;" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31. [...]
+<glyph unicode="&#xf26a;" horiz-adv-x="1792" d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83  [...]
+<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 [...]
+<glyph unicode="&#xf26c;" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf26d;" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12  [...]
+<glyph unicode="&#xf26e;" d="M1401 -11l-6 -6q-113 -114 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q [...]
+<glyph unicode="&#xf270;" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 - [...]
+<glyph unicode="&#xf271;" horiz-adv-x="1792" d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408 [...]
+<glyph unicode="&#xf272;" horiz-adv-x="1792" d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 1 [...]
+<glyph unicode="&#xf273;" horiz-adv-x="1792" d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -1 [...]
+<glyph unicode="&#xf274;" horiz-adv-x="1792" d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 5 [...]
+<glyph unicode="&#xf275;" horiz-adv-x="1792" d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
+<glyph unicode="&#xf276;" horiz-adv-x="1024" d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q61 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
+<glyph unicode="&#xf277;" horiz-adv-x="1792" d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
+<glyph unicode="&#xf278;" horiz-adv-x="2048" d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
+<glyph unicode="&#xf279;" horiz-adv-x="1792" d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
+<glyph unicode="&#xf27a;" horiz-adv-x="1792" d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5  [...]
+<glyph unicode="&#xf27b;" horiz-adv-x="1792" d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171 [...]
+<glyph unicode="&#xf27c;" horiz-adv-x="1024" d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
+<glyph unicode="&#xf27d;" horiz-adv-x="1792" d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
+<glyph unicode="&#xf27e;" d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
+<glyph unicode="&#xf280;" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 [...]
+<glyph unicode="&#xf281;" horiz-adv-x="1792" d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105 [...]
+<glyph unicode="&#xf282;" horiz-adv-x="1792" d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -16 [...]
+<glyph unicode="&#xf283;" horiz-adv-x="2304" d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
+<glyph unicode="&#xf284;" horiz-adv-x="1792" d="M1549 857q55 0 85.5 -28.5t30.5 -83.5t-34 -82t-91 -27h-136v-177h-25v398h170zM1710 267l-4 -11l-5 -10q-113 -230 -330.5 -366t-474.5 -136q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q244 0 454.5 -124t329.5 -338l2 -4l8 -16 q-30 -15 -136.5 -68.5t-163.5 -84.5q-6 -3 -479 -268q384 -183 799 -366zM896 -234q250 0 462.5 132.5t322.5 357.5l-287 129q-72 -140 -206 -222t-292 -82q-151 0 -280 75t-204 204t-75 280t75 280t204 204t280 75t2 [...]
+<glyph unicode="&#xf285;" horiz-adv-x="1792" d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
+<glyph unicode="&#xf286;" horiz-adv-x="1792" d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 - [...]
+<glyph unicode="&#xf287;" horiz-adv-x="2304" d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t [...]
+<glyph unicode="&#xf288;" horiz-adv-x="1792" d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf289;" horiz-adv-x="2304" d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 22 [...]
+<glyph unicode="&#xf28a;" d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t- [...]
+<glyph unicode="&#xf28b;" d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf28c;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
+<glyph unicode="&#xf28d;" d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="&#xf28e;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
+<glyph unicode="&#xf290;" horiz-adv-x="1792" d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 11 [...]
+<glyph unicode="&#xf291;" horiz-adv-x="2048" d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t- [...]
+<glyph unicode="&#xf292;" horiz-adv-x="1792" d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 3 [...]
+<glyph unicode="&#xf293;" d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
+<glyph unicode="&#xf294;" horiz-adv-x="1024" d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
+<glyph unicode="&#xf295;" d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5  [...]
+<glyph unicode="&#xf296;" horiz-adv-x="1792" d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" />
+<glyph unicode="&#xf297;" horiz-adv-x="1792" d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -3 [...]
+<glyph unicode="&#xf298;" d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" />
+<glyph unicode="&#xf299;" horiz-adv-x="1792" d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9. [...]
+<glyph unicode="&#xf29a;" horiz-adv-x="1792" d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37 [...]
+<glyph unicode="&#xf29b;" d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -5 [...]
+<glyph unicode="&#xf29c;" d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768  [...]
+<glyph unicode="&#xf29d;" horiz-adv-x="1408" d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 q-67 -192 -92 -234q-16 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 2 [...]
+<glyph unicode="&#xf29e;" horiz-adv-x="2304" d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-5 [...]
+<glyph unicode="&#xf2a0;" horiz-adv-x="1408" d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t- [...]
+<glyph unicode="&#xf2a1;" horiz-adv-x="2176" d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113  [...]
+<glyph unicode="&#xf2a2;" horiz-adv-x="1792" d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 [...]
+<glyph unicode="&#xf2a3;" horiz-adv-x="2304" d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 [...]
+<glyph unicode="&#xf2a4;" horiz-adv-x="1792" d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19  [...]
+<glyph unicode="&#xf2a5;" d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39 [...]
+<glyph unicode="&#xf2a6;" horiz-adv-x="1535" d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19 [...]
+<glyph unicode="&#xf2a7;" horiz-adv-x="1664" d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 7 [...]
+<glyph unicode="&#xf2a8;" horiz-adv-x="1792" d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q [...]
+<glyph unicode="&#xf2a9;" horiz-adv-x="1280" d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 2 [...]
+<glyph unicode="&#xf2aa;" d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86  [...]
+<glyph unicode="&#xf2ab;" d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39 [...]
+<glyph unicode="&#xf2ac;" horiz-adv-x="1664" d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q [...]
+<glyph unicode="&#xf2ad;" d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 [...]
+<glyph unicode="&#xf2ae;" horiz-adv-x="2304" d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7 q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2 [...]
+<glyph unicode="&#xf2b0;" d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104 q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-10 [...]
+<glyph unicode="&#xf2b1;" horiz-adv-x="1664" d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5 t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 - [...]
+<glyph unicode="&#xf2b2;" horiz-adv-x="1792" d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5 t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -2 [...]
+<glyph unicode="&#xf2b3;" d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110 h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf2b4;" d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5 q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf2b5;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2b6;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2b7;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2b8;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2b9;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2ba;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2bb;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2bc;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2bd;" horiz-adv-x="1792" />
+<glyph unicode="&#xf2be;" horiz-adv-x="1792" />
+<glyph unicode="&#xf500;" horiz-adv-x="1792" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.ttf b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..f221e50
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.ttf differ
diff --git a/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.woff b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..6e7483c
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.woff differ
diff --git a/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.woff2 b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000..7eb74fd
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/fonts/fontawesome-webfont.woff2 differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images-source/messages.psd b/drupal/sites/default/boinc/themes/boinc/images-source/messages.psd
new file mode 100644
index 0000000..a155d1c
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images-source/messages.psd differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images-source/panels-layouts.psd b/drupal/sites/default/boinc/themes/boinc/images-source/panels-layouts.psd
new file mode 100644
index 0000000..1f0aecb
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images-source/panels-layouts.psd differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images-source/screenshot.psd b/drupal/sites/default/boinc/themes/boinc/images-source/screenshot.psd
new file mode 100644
index 0000000..6762e48
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images-source/screenshot.psd differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images-source/tabs.psd b/drupal/sites/default/boinc/themes/boinc/images-source/tabs.psd
new file mode 100644
index 0000000..dfd82aa
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images-source/tabs.psd differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/ar.png b/drupal/sites/default/boinc/themes/boinc/images/flags/ar.png
new file mode 100644
index 0000000..3d048ef
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/ar.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/bg.png b/drupal/sites/default/boinc/themes/boinc/images/flags/bg.png
new file mode 100644
index 0000000..d7ad543
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/bg.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/ca.png b/drupal/sites/default/boinc/themes/boinc/images/flags/ca.png
new file mode 100644
index 0000000..772361d
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/ca.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/cs.png b/drupal/sites/default/boinc/themes/boinc/images/flags/cs.png
new file mode 100644
index 0000000..15bc88d
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/cs.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/da.png b/drupal/sites/default/boinc/themes/boinc/images/flags/da.png
new file mode 100644
index 0000000..1504e21
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/da.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/de.png b/drupal/sites/default/boinc/themes/boinc/images/flags/de.png
new file mode 100644
index 0000000..41fea25
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/de.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/el.png b/drupal/sites/default/boinc/themes/boinc/images/flags/el.png
new file mode 100644
index 0000000..64e2ebe
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/el.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/en.png b/drupal/sites/default/boinc/themes/boinc/images/flags/en.png
new file mode 120000
index 0000000..ea19c57
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/images/flags/en.png
@@ -0,0 +1 @@
+us.png
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/eo.png b/drupal/sites/default/boinc/themes/boinc/images/flags/eo.png
new file mode 100644
index 0000000..fde2954
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/eo.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/es.png b/drupal/sites/default/boinc/themes/boinc/images/flags/es.png
new file mode 100644
index 0000000..bf2b5b8
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/es.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/et.png b/drupal/sites/default/boinc/themes/boinc/images/flags/et.png
new file mode 100644
index 0000000..6f01c6a
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/et.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/eu.png b/drupal/sites/default/boinc/themes/boinc/images/flags/eu.png
new file mode 100644
index 0000000..a58d682
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/eu.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/fa.png b/drupal/sites/default/boinc/themes/boinc/images/flags/fa.png
new file mode 100644
index 0000000..69cebb7
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/fa.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/fi.png b/drupal/sites/default/boinc/themes/boinc/images/flags/fi.png
new file mode 100644
index 0000000..253fd47
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/fi.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/fo.png b/drupal/sites/default/boinc/themes/boinc/images/flags/fo.png
new file mode 100644
index 0000000..cc8439c
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/fo.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/fr.png b/drupal/sites/default/boinc/themes/boinc/images/flags/fr.png
new file mode 100644
index 0000000..58be00a
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/fr.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/ga.png b/drupal/sites/default/boinc/themes/boinc/images/flags/ga.png
new file mode 100644
index 0000000..ab14e96
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/ga.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/gb.png b/drupal/sites/default/boinc/themes/boinc/images/flags/gb.png
new file mode 100644
index 0000000..84b934a
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/gb.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/gl.png b/drupal/sites/default/boinc/themes/boinc/images/flags/gl.png
new file mode 100644
index 0000000..84a1802
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/gl.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/he.png b/drupal/sites/default/boinc/themes/boinc/images/flags/he.png
new file mode 100644
index 0000000..e32439c
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/he.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/hi.png b/drupal/sites/default/boinc/themes/boinc/images/flags/hi.png
new file mode 100644
index 0000000..d75f559
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/hi.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/hr.png b/drupal/sites/default/boinc/themes/boinc/images/flags/hr.png
new file mode 100644
index 0000000..24fa77a
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/hr.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/hu.png b/drupal/sites/default/boinc/themes/boinc/images/flags/hu.png
new file mode 100644
index 0000000..d967480
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/hu.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/id.png b/drupal/sites/default/boinc/themes/boinc/images/flags/id.png
new file mode 100644
index 0000000..6bf9bfe
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/id.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/is.png b/drupal/sites/default/boinc/themes/boinc/images/flags/is.png
new file mode 100644
index 0000000..3987457
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/is.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/it.png b/drupal/sites/default/boinc/themes/boinc/images/flags/it.png
new file mode 100644
index 0000000..7131202
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/it.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/ja.png b/drupal/sites/default/boinc/themes/boinc/images/flags/ja.png
new file mode 100644
index 0000000..8eabe66
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/ja.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/km.png b/drupal/sites/default/boinc/themes/boinc/images/flags/km.png
new file mode 100644
index 0000000..af10328
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/km.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/ko.png b/drupal/sites/default/boinc/themes/boinc/images/flags/ko.png
new file mode 100644
index 0000000..10a73bd
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/ko.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/lb.png b/drupal/sites/default/boinc/themes/boinc/images/flags/lb.png
new file mode 100644
index 0000000..6e596bb
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/lb.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/lt.png b/drupal/sites/default/boinc/themes/boinc/images/flags/lt.png
new file mode 100644
index 0000000..a1bdc47
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/lt.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/lv.png b/drupal/sites/default/boinc/themes/boinc/images/flags/lv.png
new file mode 100644
index 0000000..f8adb5d
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/lv.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/mn.png b/drupal/sites/default/boinc/themes/boinc/images/flags/mn.png
new file mode 100644
index 0000000..355b43d
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/mn.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/nb.png b/drupal/sites/default/boinc/themes/boinc/images/flags/nb.png
new file mode 100644
index 0000000..9033598
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/nb.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/nl.png b/drupal/sites/default/boinc/themes/boinc/images/flags/nl.png
new file mode 100644
index 0000000..ad752ce
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/nl.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/nn.png b/drupal/sites/default/boinc/themes/boinc/images/flags/nn.png
new file mode 100644
index 0000000..9033598
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/nn.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/pl.png b/drupal/sites/default/boinc/themes/boinc/images/flags/pl.png
new file mode 100644
index 0000000..1a0988b
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/pl.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/pt-br.png b/drupal/sites/default/boinc/themes/boinc/images/flags/pt-br.png
new file mode 100644
index 0000000..22a8df7
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/pt-br.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/pt-pt.png b/drupal/sites/default/boinc/themes/boinc/images/flags/pt-pt.png
new file mode 100644
index 0000000..66d5bd7
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/pt-pt.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/ro.png b/drupal/sites/default/boinc/themes/boinc/images/flags/ro.png
new file mode 100644
index 0000000..a5be3be
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/ro.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/ru.png b/drupal/sites/default/boinc/themes/boinc/images/flags/ru.png
new file mode 100644
index 0000000..97c436d
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/ru.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/sco.png b/drupal/sites/default/boinc/themes/boinc/images/flags/sco.png
new file mode 100644
index 0000000..d3bd37a
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/sco.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/se.png b/drupal/sites/default/boinc/themes/boinc/images/flags/se.png
new file mode 100644
index 0000000..0d73a70
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/se.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/sk.png b/drupal/sites/default/boinc/themes/boinc/images/flags/sk.png
new file mode 100644
index 0000000..5d303f7
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/sk.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/sl.png b/drupal/sites/default/boinc/themes/boinc/images/flags/sl.png
new file mode 100644
index 0000000..356442f
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/sl.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/sq.png b/drupal/sites/default/boinc/themes/boinc/images/flags/sq.png
new file mode 100644
index 0000000..3244bbd
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/sq.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/sr.png b/drupal/sites/default/boinc/themes/boinc/images/flags/sr.png
new file mode 100644
index 0000000..bca54f1
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/sr.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/sv.png b/drupal/sites/default/boinc/themes/boinc/images/flags/sv.png
new file mode 100644
index 0000000..bb27ed1
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/sv.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/tg.png b/drupal/sites/default/boinc/themes/boinc/images/flags/tg.png
new file mode 100644
index 0000000..9a377f4
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/tg.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/th.png b/drupal/sites/default/boinc/themes/boinc/images/flags/th.png
new file mode 100644
index 0000000..9e9abd2
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/th.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/tl.png b/drupal/sites/default/boinc/themes/boinc/images/flags/tl.png
new file mode 100644
index 0000000..ffd461d
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/tl.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/tr.png b/drupal/sites/default/boinc/themes/boinc/images/flags/tr.png
new file mode 100644
index 0000000..60287a4
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/tr.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/uk.png b/drupal/sites/default/boinc/themes/boinc/images/flags/uk.png
new file mode 100644
index 0000000..485b5d0
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/uk.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/us.png b/drupal/sites/default/boinc/themes/boinc/images/flags/us.png
new file mode 100644
index 0000000..077f38f
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/us.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/vi.png b/drupal/sites/default/boinc/themes/boinc/images/flags/vi.png
new file mode 100644
index 0000000..2adcc20
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/vi.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/zh-cn.png b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-cn.png
new file mode 120000
index 0000000..d7830e4
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-cn.png
@@ -0,0 +1 @@
+zh-hans.png
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/zh-hans.png b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-hans.png
new file mode 100644
index 0000000..3665064
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-hans.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/zh-hant.png b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-hant.png
new file mode 100644
index 0000000..9c75444
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-hant.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/flags/zh-tw.png b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-tw.png
new file mode 120000
index 0000000..55922ba
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/images/flags/zh-tw.png
@@ -0,0 +1 @@
+zh-hant.png
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/images/heading-bg.png b/drupal/sites/default/boinc/themes/boinc/images/heading-bg.png
new file mode 100644
index 0000000..a476666
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/heading-bg.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/icon-green-light.png b/drupal/sites/default/boinc/themes/boinc/images/icon-green-light.png
new file mode 100644
index 0000000..509c4a3
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/icon-green-light.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/icon-linux.png b/drupal/sites/default/boinc/themes/boinc/images/icon-linux.png
new file mode 100644
index 0000000..bfcc9c6
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/icon-linux.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/icon-mac.png b/drupal/sites/default/boinc/themes/boinc/images/icon-mac.png
new file mode 100644
index 0000000..f412a47
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/icon-mac.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/icon-red-light.png b/drupal/sites/default/boinc/themes/boinc/images/icon-red-light.png
new file mode 100644
index 0000000..41b4cc4
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/icon-red-light.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/icon-screensaver.png b/drupal/sites/default/boinc/themes/boinc/images/icon-screensaver.png
new file mode 100644
index 0000000..b63b0b3
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/icon-screensaver.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/icon-windows.png b/drupal/sites/default/boinc/themes/boinc/images/icon-windows.png
new file mode 100644
index 0000000..8a1add8
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/icon-windows.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/icon-yellow-light.png b/drupal/sites/default/boinc/themes/boinc/images/icon-yellow-light.png
new file mode 100644
index 0000000..72c51d5
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/icon-yellow-light.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/menu-bg-active.png b/drupal/sites/default/boinc/themes/boinc/images/menu-bg-active.png
new file mode 100644
index 0000000..703f0a8
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/menu-bg-active.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/menu-bg.png b/drupal/sites/default/boinc/themes/boinc/images/menu-bg.png
new file mode 100644
index 0000000..1b0c1e2
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/menu-bg.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/menu-divider.png b/drupal/sites/default/boinc/themes/boinc/images/menu-divider.png
new file mode 100644
index 0000000..8639eec
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/menu-divider.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/menu-separator.png b/drupal/sites/default/boinc/themes/boinc/images/menu-separator.png
new file mode 100644
index 0000000..ef54454
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/menu-separator.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/messages-error-ie6.png b/drupal/sites/default/boinc/themes/boinc/images/messages-error-ie6.png
new file mode 100644
index 0000000..054b9f2
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/messages-error-ie6.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/messages-error.png b/drupal/sites/default/boinc/themes/boinc/images/messages-error.png
new file mode 100644
index 0000000..012813b
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/messages-error.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/messages-status-ie6.png b/drupal/sites/default/boinc/themes/boinc/images/messages-status-ie6.png
new file mode 100644
index 0000000..f9eb63f
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/messages-status-ie6.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/messages-status.png b/drupal/sites/default/boinc/themes/boinc/images/messages-status.png
new file mode 100644
index 0000000..9f07a42
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/messages-status.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/messages-warning-ie6.png b/drupal/sites/default/boinc/themes/boinc/images/messages-warning-ie6.png
new file mode 100644
index 0000000..551a9db
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/messages-warning-ie6.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/messages-warning.png b/drupal/sites/default/boinc/themes/boinc/images/messages-warning.png
new file mode 100644
index 0000000..e727711
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/messages-warning.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/orange-bars-nav.png b/drupal/sites/default/boinc/themes/boinc/images/orange-bars-nav.png
new file mode 100644
index 0000000..3ee9a00
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/orange-bars-nav.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/orange-bars.png b/drupal/sites/default/boinc/themes/boinc/images/orange-bars.png
new file mode 100644
index 0000000..01284bf
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/orange-bars.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/search.png b/drupal/sites/default/boinc/themes/boinc/images/search.png
new file mode 100644
index 0000000..36b9e9c
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/search.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/speech-bubble-tail.png b/drupal/sites/default/boinc/themes/boinc/images/speech-bubble-tail.png
new file mode 100644
index 0000000..f76ec18
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/speech-bubble-tail.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/tab-bar.png b/drupal/sites/default/boinc/themes/boinc/images/tab-bar.png
new file mode 100644
index 0000000..0b380be
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/tab-bar.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/tab-left-ie6.png b/drupal/sites/default/boinc/themes/boinc/images/tab-left-ie6.png
new file mode 100644
index 0000000..5c512ae
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/tab-left-ie6.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/tab-left.png b/drupal/sites/default/boinc/themes/boinc/images/tab-left.png
new file mode 100644
index 0000000..dd925f7
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/tab-left.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/tab-right-ie6.png b/drupal/sites/default/boinc/themes/boinc/images/tab-right-ie6.png
new file mode 100644
index 0000000..1c00281
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/tab-right-ie6.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/tab-right.png b/drupal/sites/default/boinc/themes/boinc/images/tab-right.png
new file mode 100644
index 0000000..9ed9cb2
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/tab-right.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/tab-secondary-bg.png b/drupal/sites/default/boinc/themes/boinc/images/tab-secondary-bg.png
new file mode 100644
index 0000000..a5a617e
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/tab-secondary-bg.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/images/tab-secondary.png b/drupal/sites/default/boinc/themes/boinc/images/tab-secondary.png
new file mode 100644
index 0000000..bf4e8d2
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/images/tab-secondary.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/js/README.txt b/drupal/sites/default/boinc/themes/boinc/js/README.txt
new file mode 100644
index 0000000..c57a074
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/js/README.txt
@@ -0,0 +1,16 @@
+// $Id: README.txt,v 1.2 2009/11/08 18:28:49 johnalbin Exp $
+
+Your theme can add JavaScript files in two ways:
+
+1. To add a JavaScript file to all pages on your website, edit your sub-theme's
+   .info file and add a line like this one:
+
+     scripts[] = js/my-jquery-script.js
+
+2. To add a JavaScript file depending on a certain condition, you can add it
+   using some PHP code in a preprocess function:
+
+     drupal_add_js('js/my-jquery-script.js', 'theme');
+
+   For the full documentation of drupal_add_js(), see:
+     http://api.drupal.org/api/function/drupal_add_js
diff --git a/drupal/sites/default/boinc/themes/boinc/js/fancy-radios.js b/drupal/sites/default/boinc/themes/boinc/js/fancy-radios.js
new file mode 100644
index 0000000..edf9373
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/js/fancy-radios.js
@@ -0,0 +1,30 @@
+
+  function setupLabel() {
+      if ($('.label_check input').length) {
+          $('.label_check').each(function(){ 
+              $(this).removeClass('selected');
+          });
+          $('.label_check input:checked').each(function(){ 
+              $(this).parent('label').addClass('selected');
+          });                
+      };
+      if ($('.form-radios.fancy .form-item label input').length) {
+          $('.form-radios.fancy .form-item:first-child label').addClass('first');
+          $('.form-radios.fancy .form-item label').each(function(){
+              $(this).removeClass('selected');
+          });
+          $('.form-radios.fancy .form-item label input:checked').each(function(){ 
+              $(this).parent('.form-radios.fancy .form-item label').addClass('selected');
+          });
+      };
+  };
+  function fancyRadiosInit(){
+      $('.label_check, .form-radios.fancy .form-item label').click(function(){
+          setupLabel();
+      });
+      setupLabel(); 
+  };
+  $(document).ready(function(){
+      $('body').addClass('has-js');
+      fancyRadiosInit();
+  });
diff --git a/drupal/sites/default/boinc/themes/boinc/js/jquery.detectwidths.js b/drupal/sites/default/boinc/themes/boinc/js/jquery.detectwidths.js
new file mode 100644
index 0000000..55aed2c
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/js/jquery.detectwidths.js
@@ -0,0 +1,132 @@
+/**
+ * JQuery functions used to determine whether the theme layout should
+ * use a fixed-width navigation bar or a mobile hamburger style menu. 
+ *
+ * The functions determine the width of the navigation bar text. This
+ * text is translated into many languages, and is not static. If the
+ * text width is too wide for the screen, inject CSS to toggle between
+ * using a hamburger menu (usehamburger) or a navigation bar
+ * (usenavbar).
+ *
+ * If the menubar text is so wide it will not fit on the desktop width
+ * site (980 px), then the CSS class (oversizemenubar) will be
+ * used. In addition, the oversize flag will be set. This flag informs
+ * the resize function not to swap out the hamburger menu
+ * (userhamburger) for the navigation bar, as the latter will be too
+ * wide for the layout.
+ */
+
+/* 
+ * The mobile and desktop minimum breakpoints set here must match the
+ * breakpoints set in the CSS @media query. See file
+ * css/responsive-media.css.
+ *
+ * N.B. These breakpoints may be different if you are using a sub-theme.
+ */ 
+var padding = 30;
+var mobile_bp = 750;
+var desktop_min = 980;
+var oversize = 0;
+
+/*
+ * jQuery plugin from http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/
+ * Obtains the width of the hidden item.
+ * Returns a dim object containing the items heights and widths.
+ */
+(function ($) {
+$.fn.getHiddenDimensions = function (includeMargin) {
+    var $item = this,
+    props = { display: 'block' },
+    dim = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 },
+    $hiddenParents = $item.parents().andSelf().not(':visible'),
+    includeMargin = (includeMargin == null) ? false : includeMargin;
+
+    var oldProps = [];
+    $hiddenParents.each(function () {
+        var old = {};
+
+        for (var name in props) {
+            old[name] = this.style[name];
+            this.style[name] = props[name];
+        }
+
+        oldProps.push(old);
+    });
+
+    dim.width = $item.width();
+    dim.outerWidth = $item.outerWidth(includeMargin);
+    dim.innerWidth = $item.innerWidth();
+    dim.height = $item.height();
+    dim.innerHeight = $item.innerHeight();
+    dim.outerHeight = $item.outerHeight(includeMargin);
+
+    $hiddenParents.each(function (i) {
+        var old = oldProps[i];
+        for (var name in props) {
+            this.style[name] = old[name];
+        }
+    });
+
+    return dim;
+}
+}(jQuery));
+
+
+/**
+ * Helper function to obtain the width of the navigation bar elements,
+ * regardless of its visibility.
+ *
+ * Returns the total width of the two menu items plus padding.
+ */
+function getNavWidth() {
+  var maindims   = $('#main-menu ul').getHiddenDimensions();
+  var actiondims = $('#action-links ul').getHiddenDimensions();
+  var total_width = maindims.outerWidth + actiondims.outerWidth + padding;
+  return total_width;
+}
+
+$(document).ready(function() {
+  var window_width = $(window).width();
+  var total_width = getNavWidth();
+  if ( ((total_width) > Math.min(window_width, desktop_min)) || window_width <= mobile_bp ) {
+    $('#header-wrapper div').addClass('usehamburger');
+  } else {
+    $('#header-wrapper div').addClass('usenavbar');
+  }
+  if (total_width > desktop_min) {
+    oversize = 1;
+    if (window_width > desktop_min) {
+      $('#header-wrapper div').addClass('oversizemenubar');
+    }
+  }
+});
+
+
+$(window).resize(function() {
+  var window_width = $(window).width();
+  var total_width = getNavWidth();
+
+  if (total_width > desktop_min) {
+    oversize = 1;
+    if (window_width > desktop_min) {
+      $('#header-wrapper div').addClass('oversizemenubar');
+    } else {
+      $('#header-wrapper div').removeClass('oversizemenubar');
+    }
+  }
+
+  if ($('#header-wrapper div').hasClass('usenavbar')) {
+    if ( total_width > Math.min(window_width, desktop_min) || window_width <= mobile_bp ) {
+      $('#header-wrapper div').removeClass('usenavbar');
+      $('#header-wrapper div').addClass('usehamburger');
+    }
+  }
+  if ($('#header-wrapper div').hasClass('usehamburger')) {
+    if ( (window_width >= desktop_min) && !oversize ) {
+      $('#header-wrapper div').removeClass('usehamburger');
+      $('#header-wrapper div').addClass('usenavbar');
+    }
+    // Set CSS of mobile menu to display: none when window is resized.
+    document.getElementById("navigation-mmt").style.display = "none";
+  }
+});
diff --git a/drupal/sites/default/boinc/themes/boinc/js/jquery.equalheights.js b/drupal/sites/default/boinc/themes/boinc/js/jquery.equalheights.js
new file mode 100644
index 0000000..c574a37
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/js/jquery.equalheights.js
@@ -0,0 +1,98 @@
+/**
+ * Equal Heights Plugin
+ * Equalize the heights of elements. Great for columns or any elements
+ * that need to be the same size (floats, etc).
+ * 
+ * Version 1.0
+ * Updated 12/10/2008
+ *
+ * Copyright (c) 2008 Rob Glazebrook (cssnewbie.com) 
+ *
+ * Usage: $(object).equalHeights([minHeight], [maxHeight]);
+ * 
+ * Example 1: $(".cols").equalHeights(); Sets all columns to the same height.
+ * Example 2: $(".cols").equalHeights(400); Sets all cols to at least 400px tall.
+ * Example 3: $(".cols").equalHeights(100,300); Cols are at least 100 but no more
+ * than 300 pixels tall. Elements with too much content will gain a scrollbar.
+ * 
+ */
+
+(function($) {
+  $.fn.equalHeights = function(minHeight, maxHeight) {
+    
+    tallest = (minHeight) ? minHeight : 0;
+    primaryExclude = 0;
+    primaryPadding = 0;
+    secondaryPadding = 0;
+    secondaryHeight = 0;
+    secondaryExclude = 0;
+    secondaryCount = 0;
+    
+    // Look at each element to find the tallest of them
+    this.each(function() {
+      if ($(this).hasClass('panel-secondary')) {
+        // This is designed to line up multiple secondary panels with a single
+        // primary panel; see how tall the secondary panels are combined
+        secondaryCount++;
+        thisHeight = $(this).outerHeight(true);
+        // Test that child elements are somehow larger than the parent
+        childrenHeight = 0;
+        $(this).children().each(function() {
+          childrenHeight = childrenHeight + $(this).outerHeight(true);
+        });
+        if (childrenHeight > thisHeight) {
+          thisHeight = childrenHeight;
+        }
+        // Keep a running total, but we don't want to resize the adjustable
+        // secondary panel to be the size of all of them together
+        secondaryHeight = secondaryHeight + thisHeight;
+        if ($(this).hasClass('no-resize')) {
+          secondaryExclude = secondaryExclude + thisHeight;
+        }
+        else {
+          secondaryPadding = parseInt($(this).css('paddingTop')) + parseInt($(this).css('paddingBottom'));
+        }
+      }
+      else {
+        // If not a secondary panel, things are simpler
+        if ($(this).outerHeight(true) > tallest) {
+          tallest = $(this).outerHeight(true);
+        }
+        if (!$(this).hasClass('panel-primary')) {
+          // If this is a child of the primary panel, we need to see how much
+          // smaller it is and exclude the difference when resizing later
+          primaryExclude = $('.panel-primary').outerHeight() - $(this).outerHeight();
+        }
+        primaryPadding = parseInt($(this).css('paddingTop')) + parseInt($(this).css('paddingBottom'));
+      }
+    });
+    // Account for any gaps between secondary panels
+    panelGap = parseInt($('.panel-region-separator').css('marginBottom'));
+    if ((secondaryHeight) && (tallest < secondaryHeight)) {
+      tallest = secondaryHeight;
+      if (secondaryCount > 1) {
+        tallest = tallest + ((secondaryCount-1) * panelGap);
+      }
+    }
+    secondaryExclude = secondaryExclude - (primaryPadding - secondaryPadding);
+    if (secondaryCount > 1) {
+      secondaryExclude = secondaryExclude + ((secondaryCount-1) * panelGap);
+    }
+    // If a maxHeight is set, be sure not to exceed it
+    if ((maxHeight) && (tallest > maxHeight)) tallest = maxHeight;
+    return this.each(function() {
+      // Resize each element appropriately
+      if (!$(this).hasClass('no-resize')) {
+        if ($(this).hasClass('panel-primary')) {
+          $(this).height(tallest).css("overflow","auto");
+        }
+        else if ($(this).hasClass('panel-secondary')) {
+          $(this).height(tallest - secondaryExclude).css('overflow','auto');
+        }
+        else {
+          $(this).height(tallest - primaryExclude).css("overflow","auto");
+        }
+      }
+    });
+  }
+})(jQuery);
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/js/jquery.headerwidth.js b/drupal/sites/default/boinc/themes/boinc/js/jquery.headerwidth.js
new file mode 100644
index 0000000..615c490
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/js/jquery.headerwidth.js
@@ -0,0 +1,32 @@
+/**
+ * Jquery function to change the header width dependning on whether or
+ * not the document elements are too wide for the screen. Uses
+ * clientWidth and scrollWidth, if the scrollWidth is larger than
+ * clientWidth, then some element is too wide for the screen. The
+ * header width is set to the scrollWidth.
+ *
+ * The actual HTML element set is div id=page. The CSS width is set to
+ * the scrollWidth.
+ */
+function setheaderwidth() {
+  var cw  = document.documentElement["clientWidth"];
+  var swh = document.documentElement["scrollWidth"];
+  var swb = document.body["scrollWidth"];
+  var sw = Math.max(swh, swb);
+
+  if (cw < sw) {
+    $('#page').css('width', sw+'px');
+  }
+  else {
+    $('#page').css('width', '');
+  }
+}
+
+$(document).ready(function() {
+  setheaderwidth();
+});
+
+
+$(window).resize(function() {
+  setheaderwidth();
+})
diff --git a/drupal/sites/default/boinc/themes/boinc/js/prefs.js b/drupal/sites/default/boinc/themes/boinc/js/prefs.js
new file mode 100644
index 0000000..bef0b57
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/js/prefs.js
@@ -0,0 +1,10 @@
+
+  function customPrefsListener() {
+    $('.advanced-settings input, .advanced-settings select, .advanced-settings textarea').change(function(){
+      $('#edit-prefs-preset-custom').attr('checked', true);
+    });
+  };
+  
+  $(document).ready(function(){
+    customPrefsListener();
+  });
diff --git a/drupal/sites/default/boinc/themes/boinc/js/script.js b/drupal/sites/default/boinc/themes/boinc/js/script.js
new file mode 100644
index 0000000..61c2740
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/js/script.js
@@ -0,0 +1,5 @@
+
+  $(document).ready(function() {
+    $(".balance-height").equalHeights();
+    $(".balance-height-front").equalHeights(440);
+  });
diff --git a/drupal/sites/default/boinc/themes/boinc/logo.png b/drupal/sites/default/boinc/themes/boinc/logo.png
new file mode 100644
index 0000000..872bd21
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/logo.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/screenshot.png b/drupal/sites/default/boinc/themes/boinc/screenshot.png
new file mode 100644
index 0000000..527f614
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/screenshot.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/blue_gradient.png b/drupal/sites/default/boinc/themes/boinc/shared/blue_gradient.png
new file mode 100644
index 0000000..e169a3b
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/blue_gradient.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/boinc_fade_600.png b/drupal/sites/default/boinc/themes/boinc/shared/boinc_fade_600.png
new file mode 100644
index 0000000..b174eed
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/boinc_fade_600.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/boinc_logo_trans.gif b/drupal/sites/default/boinc/themes/boinc/shared/boinc_logo_trans.gif
new file mode 100644
index 0000000..de7b471
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/boinc_logo_trans.gif differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/boincstats_icon.png b/drupal/sites/default/boinc/themes/boinc/shared/boincstats_icon.png
new file mode 100644
index 0000000..4f44083
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/boincstats_icon.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/donor.png b/drupal/sites/default/boinc/themes/boinc/shared/donor.png
new file mode 100644
index 0000000..e52f4a7
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/donor.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/emphasized_post.png b/drupal/sites/default/boinc/themes/boinc/shared/emphasized_post.png
new file mode 100644
index 0000000..876493e
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/emphasized_post.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/filtered_post.png b/drupal/sites/default/boinc/themes/boinc/shared/filtered_post.png
new file mode 100644
index 0000000..cc44577
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/filtered_post.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/flags/da.png b/drupal/sites/default/boinc/themes/boinc/shared/flags/da.png
new file mode 100644
index 0000000..045552f
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/flags/da.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/freedc_icon.png b/drupal/sites/default/boinc/themes/boinc/shared/freedc_icon.png
new file mode 100644
index 0000000..ac5b4ef
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/freedc_icon.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/gray_gradient.png b/drupal/sites/default/boinc/themes/boinc/shared/gray_gradient.png
new file mode 100644
index 0000000..1760407
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/gray_gradient.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/head.png b/drupal/sites/default/boinc/themes/boinc/shared/head.png
new file mode 100644
index 0000000..2b34648
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/head.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/head_20.png b/drupal/sites/default/boinc/themes/boinc/shared/head_20.png
new file mode 100644
index 0000000..108c0b2
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/head_20.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/locked_post.png b/drupal/sites/default/boinc/themes/boinc/shared/locked_post.png
new file mode 100644
index 0000000..eb13ee1
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/locked_post.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/paypal_logo.png b/drupal/sites/default/boinc/themes/boinc/shared/paypal_logo.png
new file mode 100644
index 0000000..e2c75ba
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/paypal_logo.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/pb_boinc.gif b/drupal/sites/default/boinc/themes/boinc/shared/pb_boinc.gif
new file mode 100644
index 0000000..82c418f
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/pb_boinc.gif differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/pm.png b/drupal/sites/default/boinc/themes/boinc/shared/pm.png
new file mode 100644
index 0000000..3b98b66
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/pm.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/rate_negative.png b/drupal/sites/default/boinc/themes/boinc/shared/rate_negative.png
new file mode 100644
index 0000000..5ae3414
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/rate_negative.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/rate_positive.png b/drupal/sites/default/boinc/themes/boinc/shared/rate_positive.png
new file mode 100644
index 0000000..b261639
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/rate_positive.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/report_post.png b/drupal/sites/default/boinc/themes/boinc/shared/report_post.png
new file mode 100644
index 0000000..aff8baf
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/report_post.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/rss_icon.gif b/drupal/sites/default/boinc/themes/boinc/shared/rss_icon.gif
new file mode 100644
index 0000000..2b31987
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/rss_icon.gif differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/sticky_locked_post.png b/drupal/sites/default/boinc/themes/boinc/shared/sticky_locked_post.png
new file mode 100644
index 0000000..a754718
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/sticky_locked_post.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/sticky_post.png b/drupal/sites/default/boinc/themes/boinc/shared/sticky_post.png
new file mode 100644
index 0000000..e5b5bb4
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/sticky_post.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/unread_locked.png b/drupal/sites/default/boinc/themes/boinc/shared/unread_locked.png
new file mode 100644
index 0000000..e089bae
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/unread_locked.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/unread_post.png b/drupal/sites/default/boinc/themes/boinc/shared/unread_post.png
new file mode 100644
index 0000000..103ef00
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/unread_post.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/unread_sticky.png b/drupal/sites/default/boinc/themes/boinc/shared/unread_sticky.png
new file mode 100644
index 0000000..9629bf0
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/unread_sticky.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/unread_sticky_locked.png b/drupal/sites/default/boinc/themes/boinc/shared/unread_sticky_locked.png
new file mode 100644
index 0000000..5e5ff64
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/unread_sticky_locked.png differ
diff --git a/drupal/sites/default/boinc/themes/boinc/shared/xml.gif b/drupal/sites/default/boinc/themes/boinc/shared/xml.gif
new file mode 100644
index 0000000..787db27
Binary files /dev/null and b/drupal/sites/default/boinc/themes/boinc/shared/xml.gif differ
diff --git a/drupal/sites/default/boinc/themes/boinc/template.php b/drupal/sites/default/boinc/themes/boinc/template.php
new file mode 100644
index 0000000..5d316ce
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/template.php
@@ -0,0 +1,836 @@
+<?php
+// $Id: template.php,v 1.21 2009/08/12 04:25:15 johnalbin Exp $
+
+/**
+ * @file
+ * Contains theme override functions and preprocess functions for the theme.
+ *
+ * ABOUT THE TEMPLATE.PHP FILE
+ *
+ *   The template.php file is one of the most useful files when creating or
+ *   modifying Drupal themes. You can add new regions for block content, modify
+ *   or override Drupal's theme functions, intercept or make additional
+ *   variables available to your theme, and create custom PHP logic. For more
+ *   information, please visit the Theme Developer's Guide on Drupal.org:
+ *   http://drupal.org/theme-guide
+ *
+ * OVERRIDING THEME FUNCTIONS
+ *
+ *   The Drupal theme system uses special theme functions to generate HTML
+ *   output automatically. Often we wish to customize this HTML output. To do
+ *   this, we have to override the theme function. You have to first find the
+ *   theme function that generates the output, and then "catch" it and modify it
+ *   here. The easiest way to do it is to copy the original function in its
+ *   entirety and paste it here, changing the prefix from theme_ to boinc_.
+ *   For example:
+ *
+ *     original: theme_breadcrumb()
+ *     theme override: boinc_breadcrumb()
+ *
+ *   where boinc is the name of your sub-theme. For example, the
+ *   zen_classic theme would define a zen_classic_breadcrumb() function.
+ *
+ *   If you would like to override any of the theme functions used in Zen core,
+ *   you should first look at how Zen core implements those functions:
+ *     theme_breadcrumbs()      in zen/template.php
+ *     theme_menu_item_link()   in zen/template.php
+ *     theme_menu_local_tasks() in zen/template.php
+ *
+ *   For more information, please visit the Theme Developer's Guide on
+ *   Drupal.org: http://drupal.org/node/173880
+ *
+ * CREATE OR MODIFY VARIABLES FOR YOUR THEME
+ *
+ *   Each tpl.php template file has several variables which hold various pieces
+ *   of content. You can modify those variables (or add new ones) before they
+ *   are used in the template files by using preprocess functions.
+ *
+ *   This makes THEME_preprocess_HOOK() functions the most powerful functions
+ *   available to themers.
+ *
+ *   It works by having one preprocess function for each template file or its
+ *   derivatives (called template suggestions). For example:
+ *     THEME_preprocess_page    alters the variables for page.tpl.php
+ *     THEME_preprocess_node    alters the variables for node.tpl.php or
+ *                              for node-forum.tpl.php
+ *     THEME_preprocess_comment alters the variables for comment.tpl.php
+ *     THEME_preprocess_block   alters the variables for block.tpl.php
+ *
+ *   For more information on preprocess functions and template suggestions,
+ *   please visit the Theme Developer's Guide on Drupal.org:
+ *   http://drupal.org/node/223440
+ *   and http://drupal.org/node/190815#template-suggestions
+ */
+
+
+/**
+ * Implementation of HOOK_theme().
+ */
+function boinc_theme(&$existing, $type, $theme, $path) {
+  $hooks = zen_theme($existing, $type, $theme, $path);
+  // Add your theme hooks like this:
+  /*
+  $hooks['hook_name_here'] = array( // Details go here );
+  */
+  // @TODO: Needs detailed comments. Patches welcome!
+  return $hooks;
+}
+
+
+/**
+ * Adjust the rendering of the menu
+ */
+function boinc_links__system_main_menu($links, $menu, $element) {
+  $html .= '<ul id="' . $menu['id'] . '" class="' . $menu['class'] . '">' . "\n";
+  $item_count = count($links);
+  $i = 1;
+  foreach ($links as $key => $link) {
+    $classes = array($key);
+    if (strpos($key, 'active-trail')) $classes[] = 'active';
+    if ($i == 1) $classes[] = 'first';
+    if ($i == $item_count) $classes[] = 'last';
+    $html .= '<li class="' . implode(' ', $classes) .'">';
+    if ($link['title'] == 'Home') {
+      $link['title'] = bts('Home', array(), NULL, 'boinc:menu-link');
+    }
+    if (module_exists('privatemsg')) {
+      // Put a new mail notification next to the Account menu item
+      if ($link['href'] == 'dashboard') {
+        $item_count = privatemsg_unread_count();
+        if ($item_count) {
+          $link['title'] .= '</a> <a href="' . url('messages') . '" class="compound secondary"><div class="item-count-wrapper"><span class="item-count">' . $item_count . '</span></div>';
+          $link['html'] = TRUE;
+          $link['attributes']['class'] = 'compound';
+        }
+      }
+    }
+    // Put a count of items on the Moderation menu item
+    if ($link['href'] == 'moderate') {
+      $item_count = boincuser_moderation_queue_count();
+      if ($item_count) {
+        $link['title'] .= ' <div class="item-count-wrapper"><span class="item-count">' . $item_count . '</span></div>';
+        $link['html'] = TRUE;
+      }
+    }
+    $html .= l($link['title'], $link['href'], $link);
+    $html .= '</li>';
+    $i++;
+  }
+  $html .= '</ul>' . "\n";
+  return $html;
+}
+
+
+/**
+ * Remove undesired local task tabs
+ */
+function boinc_menu_local_task($link, $active = FALSE) {
+  if (strpos($link, 'admin/build/pages') !== FALSE
+  AND strpos($link, 'Edit Panel')) {
+    // Remove Edit Panel tab
+    return '';
+  }
+  else {
+    return '<li '. ($active ? 'class="active" ' : '') .'>'. $link ."</li>\n";
+  }
+}
+
+
+/**
+ * Override or insert variables into all templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered (name of the .tpl.php file.)
+ */
+/* -- Delete this line if you want to use this function
+function boinc_preprocess(&$vars, $hook) {
+  //$vars['sample_variable'] = t('Lorem ipsum.');
+  drupal_add_feed(
+    url(
+      'rss.xml',
+      array('absolute' => TRUE)
+    ),
+    'BOINC'
+  );
+  $vars['head'] = drupal_get_html_head();
+  $vars['feed_icons'] = drupal_get_feeds();
+}
+// */
+
+/**
+ * Override or insert variables into the page templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("page" in this case.)
+ */
+function boinc_preprocess_page(&$vars, $hook) {
+  // Responsive Design: Add viewport meta tag to HTML head
+  drupal_set_html_head('<meta name="viewport" content="width=device-width, initial-scale=1.0" />');
+  $vars['head'] = drupal_get_html_head();
+  //dpm($vars['head'], "preprocess (all) vars[head]");
+
+  // Expose comments to template files; this is needed so that comments can be
+  // rendered in locations other than directly below the node content
+  $vars['comments'] = $vars['comment_form'] = '';
+  if (module_exists('comment') && isset($vars['node'])) {
+    $vars['comments'] = comment_render($vars['node']);
+    $vars['comment_form'] = drupal_get_form('comment_form', array('nid' => $vars['node']->nid));
+  }
+
+  // Determine locale region code so the correct flag is displayed in footer
+  global $language;
+  global $theme_path;
+  $locality = $language->language;
+  if (strpos($language->language, '-')) {
+    $flag_icon = "{$theme_path}/images/flags/{$language->language}.png";
+    if (!file_exists($flag_icon)) {
+      $lang_code = explode('-', $language->language);
+      $locality = $lang_code[0];
+    }
+  }
+  $vars['flag_path'] = base_path() . path_to_theme() . "/images/flags/{$locality}.png";
+
+  $server_status_url = variable_get('boinc_server_status_url', '');
+  if (!$server_status_url) {
+    $server_status_url = 'server_status.php';
+  }
+  $vars['server_status_url'] = $server_status_url;
+
+  $app_list_url = variable_get('boinc_app_list_url', '');
+  if (!$app_list_url) {
+    $app_list_url = 'apps.php';
+  }
+  $vars['app_list_url'] = $app_list_url;
+
+  // Remove title from search page
+  if (arg(0) == 'search') {
+    unset($vars['title']);
+  }
+
+  // Apply classes to tabs to allow for better styling options
+  $tabs = explode("\n", $vars['tabs']);
+  array_pop($tabs);
+  end($tabs);
+  $last_key = key($tabs);
+
+  foreach ($tabs as $key => &$tab) {
+      if (strpos($tab, 'li class=')) {
+          if ($key == 0) {
+              $tab = str_replace('li class="', 'li class="first ', $tab);
+          }
+          if ($key == $last_key) {
+              $tab = str_replace('li class="', 'li class="last ', $tab) . '</ul>';
+          }
+      }
+      elseif (strpos($tab, 'li ')) {
+          if ($key == 0) {
+              $tab = str_replace('li ', 'li class="first" ', $tab);
+          }
+          if ($key == $last_key) {
+              $tab = str_replace('li ', 'li class="last" ', $tab) . '</ul>';
+          }
+      }
+  }
+  $vars['tabs'] = implode("\n", $tabs);
+
+  // Get the main menu but only for the branch the page is on.
+  $vars['menu_tree_onlyactive'] = menu_tree('primary-links');
+
+  // Create tertiary menu
+  $vars['tertiary_links'] = menu_navigation_links(variable_get('menu_primary_links_source', 'primary-links'), 2);
+
+  // Create action links
+  $vars['action_links'] = _boinc_action_links();
+}
+
+/**
+ * Override or insert variables into the node templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("node" in this case.)
+ */
+function boinc_preprocess_node(&$vars, $hook) {
+
+  //$vars['sample_variable'] = t('Lorem ipsum.');
+
+  // Detach subscribe link from the links list. Subscribe link will be placed
+  // on page separately from links.
+  if (!empty($vars['node']->links['flag-subscriptions']['title'])) {
+    $vars['subscribe_link'] = $vars['node']->links['flag-subscriptions']['title'];
+    unset($vars['node']->links['flag-subscriptions']);
+  }
+
+  // Optionally, run node-type-specific preprocess functions, like
+  // boinc_preprocess_node_page() or boinc_preprocess_node_story().
+  $function = __FUNCTION__ . '_' . $vars['node']->type;
+  if (function_exists($function)) {
+    $function($vars, $hook);
+  }
+}
+
+/**
+ * Preprocessing for forum lists
+ */
+function boinc_preprocess_forums(&$vars, $hook) {
+  // Add a link to mark all forums as read
+  module_load_include('inc', 'forum_tweaks', 'includes/mark-read');
+  forum_tweaks_get_mark_read_link($vars['tid'], $vars['links']);
+  if (!$vars['parents']) {
+    // Remove the "Post new forum topic" link from the top level forum list
+    unset($vars['links']['forum']);
+    // Add a link to manage subscriptions for the user
+    $vars['links']['subscriptions'] = array(
+      'title' => bts('Manage subscriptions', array(), NULL, 'boinc:forum-footer'),
+      'href' => 'account/prefs/subscriptions',
+    );
+  }
+}
+
+/**
+ * Preprocessing for forum type nodes
+ */
+function boinc_preprocess_node_forum(&$vars, $hook) {
+  global $language;
+  global $user;
+
+  // Locality
+  $vars['locality'] = $language->language;
+
+  // Get the author of the node
+  $account = user_load($vars['uid']);
+  $comments_per_page = ($user->comments_per_page) ? $user->comments_per_page : variable_get("comment_default_per_page_{$vars['node']->type}", 50);
+  
+  // Add signature
+  $vars['signature'] = check_markup($account->signature, $vars['node']->format);
+  
+  // Show signatures based on user preference
+  $vars['show_signatures'] = ($user->hide_signatures) ? FALSE : TRUE;
+  
+  // Expose comment sort order so that the template can put the topic node
+  // content (i.e. initial post) at the very end if "Newest post first" is the
+  // preference used by this user
+  $vars['oldest_post_first'] = ($user->sort != 1) ? TRUE : FALSE;
+  $vars['node']->comment = 0;
+  
+  $vars['first_page'] = (!isset($_GET['page']) OR ($_GET['page'] < 1));
+  $page_count = max(ceil($vars['comment_count'] / $comments_per_page), 1);
+  $vars['last_page'] = ($page_count == 1 OR ($page_count > 1 AND $_GET['page'] == $page_count - 1));
+
+  $links = $vars['links'];
+  $moderator_links = array();
+  _boinc_create_moderator_links($links, $moderator_links);
+  $vars['links'] = $links;
+  $vars['moderator_links'] = $moderator_links;
+}
+
+
+/**
+ * Preprocessing for team_forum type nodes
+ */
+function boinc_preprocess_node_team_forum(&$vars, $hook) {
+    // Process this node in the same way as node_forum
+    boinc_preprocess_node_forum($vars, $hook);
+}
+    
+/**
+ * Override or insert variables into the comment templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("comment" in this case.)
+ */
+function boinc_preprocess_comment(&$vars, $hook) {
+  global $language;
+  global $user;
+
+  // Locality
+  $vars['locality'] = $language->language;
+
+  // Show signatures based on user preference
+  $vars['show_signatures'] = ($user->hide_signatures) ? FALSE : TRUE;
+
+  $links = $vars['links'];
+  $moderator_links = array();
+  _boinc_create_moderator_links($links, $moderator_links);
+  $vars['links'] = $links;
+  $vars['moderator_links'] = $moderator_links;
+}
+
+/**
+ *
+ */
+function boinc_preprocess_forum_topic_list(&$variables) {
+  if (!empty($variables['topics'])) {
+    foreach ($variables['topics'] as $id => $topic) {
+      if ($topic->new_replies) {
+        $cid = boincuser_get_first_unread_comment_id($topic->nid);
+        if ($cid) {
+          $variables['topics'][$id]->new_url = url("goto/comment/{$cid}");
+        }
+        else {
+          // User hasn't visited this topic before, so all replies are new...
+          $topic->new_replies = NULL;
+        }
+      }
+      // Use same logic in forum.module to change message if topic has
+      // moved. Changed link to match boinc path-added "community".
+      if ($topic->forum_tid != $variables['tid']) {
+        $variables['topics'][$id]->message = l(t('This topic has been moved'), "community/forum/$topic->forum_tid");
+      }
+    }
+  }
+}
+
+/**
+ * Override or insert variables into the default view template.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered
+ */
+///* -- Delete this line if you want to use this function
+function boinc_preprocess_views_view(&$vars, $hook) {
+  switch ($vars['name']) {
+  case 'boinc_account_computers': 
+    switch ($vars['display_id']) {
+    case 'page_1':
+    case 'panel_pane_1':
+      $vars['empty'] = boincwork_views_host_list_empty_text();
+      break;
+    case 'page_2':
+      $vars['empty'] = boincwork_views_host_list_empty_text('active');
+      break;
+    case 'block_1':
+      $vars['empty'] = boincwork_views_host_list_empty_text('preferences');
+      break;
+    default:
+    }
+    break;
+  case 'boinc_account_tasks_all':
+    $vars['empty'] = boincwork_views_task_list_empty_text();
+    break;
+  case 'boinc_friends':
+    if ($vars['display_id'] == 'block_1') {
+      $vars['header'] = boincuser_views_friends_block_header(); 
+    }
+    break;
+  case 'boinc_host_list':
+    if ($vars['display_id'] == 'page_2') {
+     $vars['empty'] = boincwork_views_host_list_empty_text();
+    }
+    elseif ($vars['display_id'] == 'page_1') {
+      $vars['empty'] = boincwork_views_host_list_empty_text('active');
+    }
+    break;
+  case 'boinc_task':
+    // Load view object (view data is not available in header / footer); execute view query
+    $view = views_get_current_view();
+    $view->execute();
+    $result = reset($view->result);
+    // Display the stderr output in the footer
+    $vars['footer'] = '<h3>' . bts('Stderr output', array(), NULL, 'boinc:task-dtails-errorlog') .'</h3>';
+    $vars['footer'] .= '<pre>' . htmlspecialchars($result->result_stderr_out) . '</pre>';
+    break;
+  case 'boinc_teams':
+    if ($vars['display_id'] == 'panel_pane_3') {
+      $team_id = arg(2);
+      $vars['header'] = boincteam_manage_admins_panel_header($team_id);
+    }
+    break;
+  case 'boinc_workunit':
+    ob_start();
+    // Get the workunit ID from the URL
+    $result_id = arg(1);
+    require_boinc(array('util','boinc_db'));
+    $wu = BoincWorkunit::lookup_id($result_id);
+    project_workunit($wu);
+    // Output of project_workunit() gets caught in the buffer
+    $vars['footer'] = ob_get_clean();
+  default:
+  }
+}
+// */
+
+/**
+ * Override or insert variables into the privatemsg view templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ */
+///* -- Delete this line if you want to use this function
+function boinc_preprocess_privatemsg_view(&$vars, $hook) {
+  $author_picture = '<div class="picture">';
+  $user_image = boincuser_get_user_profile_image($vars['message']['author']->uid);
+  if ($user_image) {
+    if (is_array($user_image) AND $user_image['image']['filepath']) {
+      $author_picture .= theme('imagefield_image', $user_image['image'], $user_image['alt'], $user_image['alt'], array(), false);
+    }
+    elseif (is_string($user_image)) {
+      $author_picture .= '<img src="' . $user_image . '"/>';
+    }
+  }
+  $author_picture .= '</div>';
+  $vars['author_picture'] = $author_picture;
+  $vars['message_timestamp'] = date('j M Y H:i:s T', $vars['message']['timestamp']);
+}
+// */
+
+/**
+ * Override or insert variables into the block templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("block" in this case.)
+ */
+/* -- Delete this line if you want to use this function
+function boinc_preprocess_block(&$vars, $hook) {
+  $vars['sample_variable'] = t('Lorem ipsum.');
+}
+// */ 
+
+function boinc_preprocess_search_result(&$variables) {
+  global $language;
+  // Locality
+  $variables['locality'] = $language->language;
+
+  $type = strtolower($variables['result']['bundle']);
+  switch ($type) {
+  case 'profile':
+  case 'user':
+    $node = $variables['result']['node'];
+    $variables['url'] = url('account/' . $node->is_uid);
+    $variables['title'] = $node->tos_name;
+    $variables['user_image'] = boincuser_get_user_profile_image($node->is_uid);
+    $variables['account'] = user_load($node->is_uid);
+    break;
+  case 'team':
+    $node = $variables['result']['node'];
+    $variables['url'] = url('/community/teams/' . $node->entity_id);;
+    break;
+  case 'forum':
+    $node = $variables['result']['node'];
+    $drupalnode = node_load($node->entity_id);
+    // Get the taxonomy for the node, creates a link to the parent forum
+    $taxonomy = reset($drupalnode->taxonomy);
+    if ($vocab = taxonomy_vocabulary_load($taxonomy->vid)) {
+      $variables['parent_forum'] = l($taxonomy->name, "community/forum/{$taxonomy->tid}");
+    }
+    break;
+  case 'comment':
+    // Get the node id for this comment
+    $nid = $variables['result']['fields']['tos_content_extra'];
+    $drupalnode = node_load($nid);
+    // Parent forum topic title
+    $variables['parent_title'] = $drupalnode->title;
+    // Link to the parent forum topic
+    $variables['parent_topic'] = l($drupalnode->title, drupal_get_path_alias('node/' . $nid) );
+    // Get the taxonomy for the node, creates a link to the parent forum
+    $taxonomy = reset($drupalnode->taxonomy);
+    if ($vocab = taxonomy_vocabulary_load($taxonomy->vid)) {
+      $variables['parent_forum'] = l($taxonomy->name, "community/forum/{$taxonomy->tid}");
+    }
+  break;
+  default:
+  }
+}
+
+// Remove the mess of text under the search form and don't display "no results"
+// if a search hasn't even been submitted
+function boinc_apachesolr_search_noresults() {
+  $message = bts('No results found...', array(), NULL, 'boinc:search-with-no-results');
+  if (!arg(2)) {
+    $message = '';
+  }
+  return '<p>' . $message . '</p>';
+}
+
+/**
+ * Override the username theme function so that it returns a display name
+ * rather than the unique Drupal auth name
+ */
+function phptemplate_username($object) {
+  
+  if ($object->uid && $object->name) {
+    
+    // Show the profile name in general, not the username
+    $name = user_load($object->uid)->boincuser_name;
+    
+    // Shorten the name when it is too long or it will break many tables.
+    if (drupal_strlen($name) > 20) {
+      $name = drupal_substr($name, 0, 15) . '...';
+    }
+
+    if (user_access('access user profiles')) {
+      $output = l($name, 'account/' . $object->uid, array('attributes' => array('title' => bts('View user profile.', array(), NULL, 'boinc:users-table'))));
+    }
+    else {
+      $output = check_plain($name);
+    }
+  }
+  else if ($object->name) {
+    // Sometimes modules display content composed by people who are
+    // not registered members of the site (e.g. mailing list or news
+    // aggregator modules). This clause enables modules to display
+    // the true author of the content.
+    if (!empty($object->homepage)) {
+      $output = l($object->name, $object->homepage, array('attributes' => array('rel' => 'nofollow')));
+    }
+    else {
+      $output = check_plain($object->name);
+    }
+
+    $output .= ' (' . bts('not verified', array(), NULL, 'boinc:user-not-found') . ')';
+  }
+  else {
+    $output = check_plain(variable_get('anonymous', bts('Anonymous', array(), NULL, 'boinc:anonymous-user')));
+  }
+
+  return $output;
+}
+
+/**
+ * Remove the link under text areas that reads:
+ * "More information about formatting options"
+ */
+function boinc_filter_tips_more_info () {
+  return '';
+}
+
+/**
+ * Theme outgoing email messages for adding friends.
+ *
+ * @param $status
+ *   Status of the friendship.
+ * @param $flag
+ *   The flag object.
+ * @param $recipient
+ *   The user object of the person receiving the email.
+ * @param $sender
+ *   The user object of the person sending the email.
+ * @return
+ *   An array containing the email [type] (mailkey), [subject] and [body].
+ */
+function boinc_flag_friend_message_email($status, $flag, $recipient, $sender) {
+  $email = array();
+  $email['type'] = 'flag-friend';
+  // Reload the sender to get a full user object
+  $sender = user_load($sender->uid);
+  
+  switch ($status) {
+    case FLAG_FRIEND_FLAGGED:
+      // Sender accepted recipient's friend request
+      $email['subject'] = bts('!name accepted your friend request [!site]', array(
+        '!name' => $sender->boincuser_name,
+        '!site' => variable_get('site_name', ''),
+        ), NULL, 'boinc:friend-request-email');
+      $email['body'] = bts('!name confirmed you as a friend on !site.
+
+Follow this link to view his or her profile:
+!link
+
+!message
+
+Thanks,
+The !site team', array(
+        '!name' => isset($sender->boincuser_name) ? $sender->boincuser_name : $sender->name,
+        '!site' => variable_get('site_name', ''),
+        '!message' => $flag->friend_message ? bts('Message', array(), NULL, 'boinc:friend-request-email:-1:a-private-message') . ': ' . $flag->friend_message : '',
+        '!link' => url('account/'. $sender->uid, array('absolute' => TRUE)),
+        ), array(), NULL, 'boinc:friend-request-email');
+      break;
+
+    case FLAG_FRIEND_PENDING:
+      // Sender is requesting to be recipient's friend
+      $email['subject'] = bts('Friend request from !name [!site]', array('!name' => $sender->boincuser_name, '!site' => variable_get('site_name', '')), NULL, 'boinc:friend-request-email');
+      $email['body'] = bts('!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.
+
+Follow the link below to view this request:
+!link
+
+!message
+
+Thanks,
+The !site team', array(
+        '!name' => isset($sender->boincuser_name) ? $sender->boincuser_name : $sender->name,
+        '!site' => variable_get('site_name', ''),
+        '!message' => $flag->friend_message ? bts('Message', array(), NULL, 'boinc:friend-request-email:-1:a-private-message') . ': ' . $flag->friend_message : '',
+        '!link' => url('goto/friend-requests', array('absolute' => TRUE)),
+        ),
+      array(), NULL, 'boinc:friend-request-email');
+      break;
+  }
+  return $email;
+}
+
+/**
+ * Edit action links
+ */
+function phptemplate_links($links, $attributes = array('class' => 'links')) {
+  if ($links){
+    // Remove flag-subscriptions link. It will be placed elsewhere.
+    if (isset($links['flag-subscriptions'])) {
+      unset($links['flag-subscriptions']);
+    }
+    // Reorder the links however you need them.
+    $links = reorder_links($links, array('comment_edit','quote','comment_add','comment_reply','flag-abuse_comment','flag-abuse_node'), array('comment_delete'));
+    // Use the built-in theme_links() function to format the $links array.
+    return theme_links($links, $attributes);
+  }
+}
+
+/**
+ * Reorder links before passing them to default link theme function.
+ * @param $links
+ *   A keyed array of links to be themed.
+ * @param $first_keys
+ *   An array of keys which should be at the beginning of the $links array.
+ * @param $last_keys
+ *   An array of keys which should be at the end of the $links array.
+ * @return
+ *   A string containing an unordered list of links.
+ *
+ * Usage Note: The order in which you specify $first/last_keys is the order in
+ * which they will be sorted.
+ */
+function reorder_links($links, $first_keys = array(), $last_keys = array()) {
+    $first_links = array();
+    foreach ($first_keys as $key) {
+        if (isset($links[$key])) {
+            $first_links[$key] = $links[$key];
+            unset($links[$key]);
+        }
+    }
+    $links = array_merge($first_links, $links);
+
+    $last_links = array();
+    foreach ($last_keys as $key) {
+        if (isset($links[$key])) {
+            $last_links[$key] = $links[$key];
+            unset($links[$key]);
+        }
+    }
+    $links = array_merge($links, $last_links);
+   
+    return $links;
+}
+
+/*
+ * Override the style of table sort arrows to make it managable by CSS.
+ * That is to say, get rid of it and use the views-view-table.tpl.php template.
+ */
+function boinc_tablesort_indicator($style) {
+  return '';
+  /*
+  if ($style == "asc") {
+    return theme('image', 'misc/arrow-asc.png', t('sort icon'), t('sort ascending'));
+  }
+  else {
+    return theme('image', 'misc/arrow-desc.png', t('sort icon'), t('sort descending'));
+  }
+  */
+}
+
+/*
+ * Private function to process the $links string, separate it into two
+ * strings for $links and $moderator_links.
+ * 
+ * Parameters: 
+ *   @params $links
+ *     links is a string of links to manipulate. The function will
+ *     return a altered string of links.
+ *   @params $moderator_links
+ *     moderator_links will be filled from elements from $links.
+ *
+ */
+function _boinc_create_moderator_links(&$links, &$moderator_links) {
+  // If there are no links, then do nothing
+  if (empty($links)) {
+    return;
+  }
+
+  $alllinks = array();
+  $modlinks = array();
+
+  // Create an array of HTML elements from the $links string, keys
+  // are the class attribute for the <li> tags.
+  $dom = new DOMDocument;
+  $dom->loadHTML(mb_convert_encoding($links, 'HTML-ENTITIES', 'UTF-8'));
+  foreach($dom->getElementsByTagName('li') as $node) {
+    $key = $node->getAttribute("class");
+    $alllinks[$key] = $dom->saveHTML($node);
+  }
+
+  // Select classes to be placed into moderator links array
+  $selected_classes = array(
+    "make_sticky", "make_unsticky",
+    "lock", "unlock",
+    "convert",
+    "hide", "unhide",
+    "comment_delete",
+  );
+  foreach(array_keys($alllinks) as $key1) {
+    // Select string up to first space, if present.
+    $class1 = strtok($key1, ' ');
+    if (in_array($class1, $selected_classes)) {
+      if (empty($modlinks)) {
+        _boinc_firstlink($alllinks[$key1]);
+      }
+      $modlinks[$key1] = $alllinks[$key1];
+      unset($alllinks[$key1]);
+    }
+  }
+  // Convert the HTML arrays back into strings, wrap them in <ul>
+  // tags
+  $links = "<ul class=\"links\">".implode($alllinks)."</ul>";
+  $moderator_links = "<ul class=\"links\">".implode($modlinks)."</ul>";
+
+  return;
+}
+
+/*
+ * Private function that modifies a single link, adding the 'first'
+ * attribute to class.
+ */
+function _boinc_firstlink(&$alink) {
+  if (!empty($alink)) {
+    $dom = new DomDocument;
+    $dom->loadHTML(mb_convert_encoding($alink, 'HTML-ENTITIES', 'UTF-8'));
+
+    $myli = $dom->getElementsByTagName('li');
+    if ($myli->length>0) {
+      $newclasses = trim(($myli[0]->getAttribute("class"))." first");
+      $myli[0]->setAttribute("class", $newclasses);
+      $alink = $dom->saveHTML($myli[0]);
+    }
+  }
+}
+
+/*
+ * Private function to generate the action links
+ */
+function _boinc_action_links() {
+  global $user;
+  global $base_path;
+
+  $output = '<ul class="menu"><li class="first">';
+  if ($user->uid) {
+    $output .= '<a href="' . url('logout') . '">' . bts('Logout', array(), NULL, 'boinc:menu-link') . '</a>';
+  } else {
+    $output .= '<a href="' . url('user/login', array('query' => drupal_get_destination()) ) . '">' . bts('Login', array(), NULL, 'boinc:menu-link') . '</a>';
+  }
+  $output .= '</li>';
+  if (module_exists('global_search') OR module_exists('global_search_solr')) {
+    $output .= '<li class="last"> <a class="search" href="' . url('search/site') . '">' . bts('search', array(), NULL, 'boinc:menu-link') .'</a> </l1>';
+  }
+  $output .= '</ul>';
+  return $output;
+}
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/README.txt b/drupal/sites/default/boinc/themes/boinc/templates/README.txt
new file mode 100644
index 0000000..85cfc42
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/README.txt
@@ -0,0 +1,84 @@
+// $Id: README.txt,v 1.3.2.1 2010/01/12 16:32:29 johnalbin Exp $
+
+TEMPLATES
+---------
+
+Drupal 6 contains the following template files which you can override and modify
+by copying them to your sub-theme. The Zen theme overrides a handful of Drupal's
+templates. In order to override those templates, you should copy them from the
+zen/templates folder to your sub-theme's templates folder.
+
+As always, when adding a new template file to your sub-theme, you will need to
+rebuild the "theme registry" in order for Drupal to see it. For more info, see:
+  http://drupal.org/node/173880#theme-registry
+
+Located in zen/templates:
+  page.tpl.php
+  maintenance-page.tpl.php
+  node.tpl.php
+  block.tpl.php
+  comment-wrapper.tpl.php
+  comment.tpl.php
+  views-view.tpl.php
+
+Located in /modules/aggregator:
+  aggregator-feed-source.tpl.php
+  aggregator-item.tpl.php
+  aggregator-summary-item.tpl.php
+  aggregator-summary-items.tpl.php
+  aggregator-wrapper.tpl.php
+
+Located in /modules/block:
+  block-admin-display-form.tpl.php
+
+Located in /modules/book:
+  book-all-books-block.tpl.php
+  book-export-html.tpl.php
+  book-navigation.tpl.php
+  book-node-export-html.tpl.php
+
+Located in /modules/comment:
+  comment-folded.tpl.php
+  comment-wrapper.tpl.php  (overridden by Zen)
+  comment.tpl.php  (overridden by Zen)
+
+Located in /modules/forum:
+  forum-icon.tpl.php
+  forum-list.tpl.php
+  forum-submitted.tpl.php
+  forum-topic-list.tpl.php
+  forum-topic-navigation.tpl.php
+  forums.tpl.php
+
+Located in /modules/node:
+  node.tpl.php  (overridden by Zen)
+
+Located in /modules/poll:
+  poll-bar-block.tpl.php
+  poll-bar.tpl.php
+  poll-results-block.tpl.php
+  poll-results.tpl.php
+  poll-vote.tpl.php
+
+Located in /modules/profile:
+  profile-block.tpl.php
+  profile-listing.tpl.php
+  profile-wrapper.tpl.php
+
+Located in /modules/search:
+  search-block-form.tpl.php
+  search-result.tpl.php
+  search-results.tpl.php
+  search-theme-form.tpl.php
+
+Located in /modules/system:
+  block.tpl.php  (overridden by Zen)
+  box.tpl.php
+  maintenance-page.tpl.php  (overridden by Zen)
+  page.tpl.php  (overridden by Zen)
+
+Located in /modules/user:
+  user-picture.tpl.php
+  user-profile-category.tpl.php
+  user-profile-item.tpl.php
+  user-profile.tpl.php
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/block.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/block.tpl.php
new file mode 100644
index 0000000..a102138
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/block.tpl.php
@@ -0,0 +1,66 @@
+<?php
+// $Id: block.tpl.php,v 1.6.2.1 2010/06/24 03:40:16 johnalbin Exp $
+
+/**
+ * @file
+ * Theme implementation to display a block.
+ *
+ * Available variables:
+ * - $title: Block title.
+ * - $content: Block content.
+ * - $block->module: Module that generated the block.
+ * - $block->delta: An ID for the block, unique within each module.
+ * - $block->region: The block region embedding the current block.
+ * - $edit_links: A list of contextual links for the block. It can be
+ *   manipulated through the variable $edit_links_array from preprocess
+ *   functions.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - block: The current template type, i.e., "theming hook".
+ *   - block-[module]: The module generating the block. For example, the user
+ *     module is responsible for handling the default user navigation block. In
+ *     that case the class would be "block-user".
+ *   - region-count-[x]: The position of the block in the list of blocks in the
+ *     current region.
+ *   - region-odd: An odd-numbered block of the list of blocks in the current
+ *     region.
+ *   - region-even: An even-numbered block of the list of blocks in the current
+ *     region.
+ *   - count-[x]: The position of the block in the list of blocks on the current
+ *     page.
+ *   - odd: An odd-numbered block of the list of blocks on the current page.
+ *   - even: An even-numbered block of the list of blocks on the current page.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $edit_links_array: An array of contextual links for the block.
+ * - $block_zebra: Outputs 'odd' and 'even' dependent on each block region.
+ * - $zebra: Same output as $block_zebra but independent of any block region.
+ * - $block_id: Counter dependent on each block region.
+ * - $id: Same output as $block_id but independent of any block region.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ * - $is_admin: Flags true when the current user is an administrator.
+ * - $block_html_id: A valid HTML ID and guaranteed unique.
+ *
+ * @see template_preprocess()
+ * @see zen_preprocess()
+ * @see template_preprocess_block()
+ * @see zen_preprocess_block()
+ * @see zen_process()
+ */
+?>
+<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>">
+  <?php if ($title): ?>
+    <h2 class="title"><?php print $title; ?></h2>
+  <?php endif; ?>
+
+  <div class="content">
+    <?php print $content; ?>
+  </div>
+
+  <?php print $edit_links; ?>
+</div> <!-- /.block -->
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/comment-wrapper.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/comment-wrapper.tpl.php
new file mode 100644
index 0000000..2d7ca2a
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/comment-wrapper.tpl.php
@@ -0,0 +1,47 @@
+<?php
+// $Id: comment-wrapper.tpl.php,v 1.3 2009/11/01 19:47:40 johnalbin Exp $
+
+/**
+ * @file
+ * Default theme implementation to wrap comments.
+ *
+ * Available variables:
+ * - $content: All comments for a given page. Also contains sorting controls
+ *   and comment forms if the site is configured for it.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default value has the following:
+ *   - comment-wrapper: The current template type, i.e., "theming hook".
+ *
+ * The following variables are provided for contextual information.
+ * - $node: Node object the comments are attached to.
+ * The constants below the variables show the possible values and should be
+ * used for comparison.
+ * - $display_mode
+ *   - COMMENT_MODE_FLAT_COLLAPSED
+ *   - COMMENT_MODE_FLAT_EXPANDED
+ *   - COMMENT_MODE_THREADED_COLLAPSED
+ *   - COMMENT_MODE_THREADED_EXPANDED
+ * - $display_order
+ *   - COMMENT_ORDER_NEWEST_FIRST
+ *   - COMMENT_ORDER_OLDEST_FIRST
+ * - $comment_controls_state
+ *   - COMMENT_CONTROLS_ABOVE
+ *   - COMMENT_CONTROLS_BELOW
+ *   - COMMENT_CONTROLS_ABOVE_BELOW
+ *   - COMMENT_CONTROLS_HIDDEN
+ *
+ * Other variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * @see template_preprocess_comment_wrapper()
+ */
+?>
+<div id="comments" class="<?php print $classes; ?>">
+  <?php if ( ($node->type != 'forum') AND ($node->type != 'team_forum') ): ?>
+    <h2 class="title"><?php print bts('Comments', array(), NULL, 'boinc:Comments-section-header'); ?></h2>
+  <?php endif; ?>
+
+  <?php print $content; ?>
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/comment.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/comment.tpl.php
new file mode 100644
index 0000000..75a7d81
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/comment.tpl.php
@@ -0,0 +1,195 @@
+<?php
+// $Id: comment.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin Exp $
+
+/**
+ * @file
+ * Default theme implementation for comments.
+ *
+ * Available variables:
+ * - $author: Comment author. Can be link or plain text.
+ * - $content: Body of the comment.
+ * - $created: Formatted date and time for when the comment was created.
+ *   Preprocess functions can reformat it by calling format_date() with the
+ *   desired parameters on the $comment->timestamp variable.
+ * - $new: New comment marker.
+ * - $picture: Authors picture.
+ * - $signature: Authors signature.
+ * - $status: Comment status. Possible values are:
+ *   comment-unpublished, comment-published or comment-preview.
+ * - $title: Linked title.
+ * - $links: Various operational links.
+ * - $unpublished: An unpublished comment visible only to administrators.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the following:
+ *   - comment: The current template type, i.e., "theming hook".
+ *   - comment-by-anonymous: Comment by an unregistered user.
+ *   - comment-by-node-author: Comment by the author of the parent node.
+ *   - comment-preview: When previewing a new or edited comment.
+ *   - first: The first comment in the list of displayed comments.
+ *   - last: The last comment in the list of displayed comments.
+ *   - odd: An odd-numbered comment in the list of displayed comments.
+ *   - even: An even-numbered comment in the list of displayed comments.
+ *   The following applies only to viewers who are registered users:
+ *   - comment-by-viewer: Comment by the user currently viewing the page.
+ *   - comment-unpublished: An unpublished comment visible only to administrators.
+ *   - comment-new: New comment since the last visit.
+ *
+ * These two variables are provided for context:
+ * - $comment: Full comment object.
+ * - $node: Node object the comments are attached to.
+ *
+ * Other variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * The following variables are deprecated and will be removed in Drupal 7:
+ * - $date: Formatted date and time for when the comment was created.
+ * - $submitted: By line with date and time.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_comment()
+ * @see zen_preprocess()
+ * @see zen_preprocess_comment()
+ * @see zen_process()
+ */
+?>
+<div class="<?php print $classes; ?> clearfix">
+  <?php
+    static $authors;
+    if (_ignore_user_ignored_user($comment->uid)) {
+      if (!$authors[$comment->uid]) {
+        $authors[$comment->uid] = user_load(array('uid' => $comment->uid));
+      }
+      // Remove the wrapper the Ignore User module puts around node->content.
+      // It should be around the whole comment, not one part...
+      // Absurd nested functions to remove wrappers are as follows.
+      $wrapper = explode('<div class="ignore-user-content">', $content);
+      $wrapper = end($wrapper);
+      $content = strstr($wrapper, '</div></div>', TRUE);
+      print '<div class="ignore-user-container">';
+      print bts('!username is on your !ignore_list. Click !here to view this post.',
+        array(
+          '!username' => theme('username', $authors[$comment->uid]),
+          '!ignore_list' => l(bts('ignore list', array(), NULL, 'boinc:ignore-user-content'), 'ignore_user/list'),
+          '!here' => l(bts('here', array(), NULL, 'boinc:ignore-user-content'), "node/{$comment->nid}#comment-{$comment->cid}",
+            array(
+              'attributes' => array('class' => 'ignore-user-content-link')
+            ))
+          ),
+        NULL, 'boinc:coment-from-ignored-user');
+      print '<div class="ignore-user-content">';
+    } 
+    ?>
+  
+  <div class="user">
+    <?php
+      $account = user_load(array('uid' => $comment->uid));
+      $user_image = boincuser_get_user_profile_image($comment->uid);
+      if ($user_image) {
+        print '<div class="picture">';
+        if (is_array($user_image) AND $user_image['image']['filepath']) {
+          //print theme('imagecache', 'thumbnail', $user_image['image']['filepath'], $user_image['alt'], $user_image['alt']);
+          print theme('imagefield_image', $user_image['image'], $user_image['alt'], $user_image['alt'], array(), false);
+        }
+        elseif (is_string($user_image)) {
+          print '<img src="' . $user_image . '"/>';
+        }
+        print '</div>';
+      }
+      // Generate ignore user link
+      $ignore_link = ignore_user_link('comment', $comment);
+      //echo '<pre>' . print_r($links, TRUE) . '</pre>';
+    ?>
+    <div class="name"><?php print $author; ?></div>
+    <?php if ($account->uid): ?>
+      <?php $nf = new NumberFormatter($locality, NumberFormatter::DECIMAL); ;?>
+      <div class="join-date"><?php print bts('Joined: @join_date', array( '@join_date' => date('j M y', $account->created) ), NULL, 'boinc:mini-user-stats'); ?></div>
+      <div class="post-count"><?php print bts('Posts: @post_count', array( '@post_count' => $nf->format($account->post_count) ), NULL, 'boinc:mini-user-stats'); ?></div>
+      <div class="credit"><?php print bts('Credit: @user_credits', array( '@user_credits' => $nf->format($account->boincuser_total_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+      <div class="rac"><?php print bts('RAC: @user_rac', array( '@user_rac' => $nf->format($account->boincuser_expavg_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+      <div class="user-links">
+        <div class="ignore-link"><?php print l($ignore_link['ignore_user']['title'],
+          $ignore_link['ignore_user']['href'],
+          array('query' => $ignore_link['ignore_user']['query'])); ?>
+        </div>
+        <div class="pm-link"><?php
+          if ($user->uid AND ($user->uid != $account->uid)) {
+            print l(bts('Send message', array(), NULL, 'boinc:private-message'),
+            privatemsg_get_link(array($account)),
+            array('query' => drupal_get_destination()));
+          } ?>
+        </div>
+      </div>
+    <?php endif; ?>
+  </div>
+  <div class="comment-body">
+    <?php if ($title): ?>
+      <h3 class="title">
+        <?php print $title; ?>
+        <?php if ($new): ?>
+          <span class="new"><?php print $new; ?></span>
+        <?php endif; ?>
+      </h3>
+    <?php elseif ($new): ?>
+      <div class="new"><?php print $new; ?></div>
+    <?php endif; ?>
+
+    <?php if ($unpublished): ?>
+      <div class="unpublished"><?php print bts('Unpublished', array(), NULL, 'boinc:comment-action-link'); ?></div>
+    <?php endif; ?>
+
+    <div class="submitted">
+      <?php print date('j M Y H:i:s T', $comment->timestamp); ?>
+    </div>
+    <div class="comment-id">
+      <?php echo l(bts('Message @id', array('@id' => $comment->cid), NULL, 'boinc:message-header'),
+        "goto/comment/{$comment->cid}"); ?>
+      <?php 
+        if ($comment->pid):
+          $parent = _comment_load($comment->pid);
+          if ($parent->status == COMMENT_PUBLISHED) {
+            $parent_link = l(bts('message @id', array('@id' => $comment->pid), NULL, 'boinc:message-header'),
+            "goto/comment/{$comment->pid}");
+          }
+          else {
+            $parent_link = '(' . bts('parent removed', array(), NULL, 'boinc:message-header') . ')';
+          }
+          echo bts(' in response to !parent', array(
+            '!parent' => $parent_link
+          ), NULL, 'boinc:message-header');
+        endif;
+      ?>
+    </div>
+    <div class="standard-links">
+      <?php print $links; ?>
+    </div>
+    <?php if ($moderator_links): ?>
+      <div class="moderator-links">
+        <span class="label">(<?php print bts('moderation', array(), NULL, 'boinc:comment-action-links'); ?>:</span>
+        <?php print $moderator_links; ?>
+        <span class="label">)</span>
+      </div>
+    <?php endif; ?>
+    <div class="content">
+      <?php print $content; ?>
+      <?php if ($signature AND $show_signatures): ?>
+        <div class="user-signature clearfix">
+          <?php print $signature; ?>
+        </div>
+      <?php endif; ?>
+    </div>
+  </div> <!-- /.comment-body -->
+
+  <?php
+    if (_ignore_user_ignored_user($comment->uid)) {
+      print '</div> <!-- /.ignore-user-content -->';
+      print '</div> <!-- /.ignore-user-container -->';
+    }
+  ?>
+
+</div> <!-- /.comment -->
+
+<?php if ($status == 'comment-preview'): ?>
+  <h2 class="title"><?php print bts('Revise or post comment', array(), NULL, 'boinc:comment-preview-title'); ?></h2>
+<?php endif; ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/forum-icon.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/forum-icon.tpl.php
new file mode 100644
index 0000000..f39aa1f
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/forum-icon.tpl.php
@@ -0,0 +1,25 @@
+<?php
+// $Id: forum-icon.tpl.php,v 1.3 2007/12/20 09:35:09 goba Exp $
+
+/**
+ * @file forum-icon.tpl.php
+ * Display an appropriate icon for a forum post.
+ *
+ * Available variables:
+ * - $new_posts: Indicates whether or not the topic contains new posts.
+ * - $icon: The icon to display. May be one of 'hot', 'hot-new', 'new',
+ *   'default', 'closed', or 'sticky'.
+ *
+ * @see template_preprocess_forum_icon()
+ * @see theme_forum_icon()
+ */
+?>
+<?php if ($new_posts): ?>
+  <a name="new">
+<?php endif; ?>
+
+<?php print theme('image', "misc/forum-$icon.png") ?>
+
+<?php if ($new_posts): ?>
+  </a>
+<?php endif; ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/forum-list.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/forum-list.tpl.php
new file mode 100644
index 0000000..35086c4
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/forum-list.tpl.php
@@ -0,0 +1,122 @@
+<?php
+// $Id: forum-list.tpl.php,v 1.4 2007/08/30 18:58:12 goba Exp $
+
+/**
+ * @file forum-list.tpl.php
+ * Default theme implementation to display a list of forums and containers.
+ *
+ * Available variables:
+ * - $forums: An array of forums and containers to display. It is keyed to the
+ *   numeric id's of all child forums and containers.
+ * - $forum_id: Forum id for the current forum. Parent to all items within
+ *   the $forums array.
+ *
+ * Each $forum in $forums contains:
+ * - $forum->is_container: Is TRUE if the forum can contain other forums. Is
+ *   FALSE if the forum can contain only topics.
+ * - $forum->depth: How deep the forum is in the current hierarchy.
+ * - $forum->zebra: 'even' or 'odd' string used for row class.
+ * - $forum->name: The name of the forum.
+ * - $forum->link: The URL to link to this forum.
+ * - $forum->description: The description of this forum.
+ * - $forum->new_topics: True if the forum contains unread posts.
+ * - $forum->new_url: A URL to the forum's unread posts.
+ * - $forum->new_text: Text for the above URL which tells how many new posts.
+ * - $forum->old_topics: A count of posts that have already been read.
+ * - $forum->num_posts: The total number of posts in the forum.
+ * - $forum->last_reply: Text representing the last time a forum was posted or
+ *   commented in.
+ *
+ * @see template_preprocess_forum_list()
+ * @see theme_forum_list()
+ */
+?>
+<table id="forum-<?php print $forum_id; ?>">
+  <tbody>
+  
+  <?php foreach ($forums as $child_id => $forum): ?>
+  
+    <?php if ($forum->is_container): ?>
+      <tr class="heading">
+        <td class="primary"><div class="name"><?php print $forum->name; ?></div></td>
+        <td><?php print bts('Threads', array(), NULL, 'boinc:forum-column');?></td>
+        <td><?php print bts('Posts', array(), NULL, 'boinc:forum-column'); ?></td>
+        <td><?php print bts('Last post', array(), NULL, 'boinc:forum-column'); ?></td>
+      </tr>
+    <?php else: ?>
+      <tr id="forum-list-<?php print $child_id; ?>" class="<?php print $forum->zebra; ?>">
+        <td class="forum">
+          <?php /* Enclose the contents of this cell with X divs, where X is the
+                 * depth this forum resides at. This will allow us to use CSS
+                 * left-margin for indenting.
+                 */ ?>
+          <?php print str_repeat('<div class="indent">', $forum->depth); ?>
+            <div class="name"><?php print l($forum->name, "community/forum/{$forum->tid}", array('html' => TRUE)); ?></div>
+            <?php if ($forum->description): ?>
+              <div class="description"><?php print $forum->description; ?></div>
+            <?php endif; ?>
+          <?php print str_repeat('</div>', $forum->depth); ?>
+        </td>
+        <td class="topics">
+          <?php if ($forum->new_topics): ?>
+            <?php print l($forum->num_topics, "community/forum/{$forum->tid}"); ?>
+          <?php else: ?>
+            <?php print $forum->num_topics; ?>
+          <?php endif; ?>
+        </td>
+        <td class="posts"><?php print $forum->num_posts ?></td>
+        <td class="last-reply"><?php print $forum->last_reply ?></td>
+      </tr>
+    <?php endif; ?>
+    
+  <?php endforeach; ?>
+  
+  <?php // Show the team forum, if available ?>
+  
+  <?php if (module_exists('boincteam_forum')
+      AND $team_forums = boincteam_forum_list()): ?>
+      <tr class="heading">
+        <td class="primary"><div class="name"><?php echo bts('Team', array(), NULL, 'boinc:team-dashboard'); ?></div></td>
+        <td><?php print bts('Threads', array(), NULL, 'boinc:forum-column');?></td>
+        <td><?php print bts('Posts', array(), NULL, 'boinc:forum-column'); ?></td>
+        <td><?php print bts('Last post', array(), NULL, 'boinc:forum-column'); ?></td>
+      </tr>
+  
+    <?php foreach ($team_forums as $child_id => $forum): ?>
+      <tr id="team-forum-list<?php print $child_id; ?>" class="<?php print $forum->zebra; ?>">
+        <td class="forum">
+            <div class="name"><a href="<?php print $forum->link; ?>"><?php print $forum->title; ?></a></div>
+            <?php if ($forum->description): ?>
+              <div class="description"><?php print $forum->description; ?></div>
+            <?php endif; ?>
+        </td>
+        <td class="topics">
+          <?php if ($forum->new_topics): ?>
+            <a href="<?php print $forum->link; ?>">
+          <?php endif; ?>
+          <?php print $forum->num_topics ?>
+          <?php if ($forum->new_topics): ?>
+            <?php //print $forum->new_text; ?>
+            </a>
+          <?php endif; ?>
+        </td>
+        <td class="posts"><?php print $forum->num_posts ?></td>
+        <td class="last-reply"><?php print $forum->last_reply ?></td>
+      </tr>
+    <?php endforeach; // Team forum ?>
+  <?php endif; // Team forums exist ?>
+  </tbody>
+</table>
+
+<div class="fine-print">
+  <p>
+    <?php print bts('Please be responsible in what you write and do not create posts which are offensive or insulting. Offensive posts or threads may be deleted by forum moderators without warning or discussion. Do not respond to offensive postings. Click on the "report" button at the bottom of the post to call it to the attention of the moderators.', array(), NULL, 'boinc:forum-fine-print'); ?>
+  </p>
+  <p>
+    <?php print bts('We also ask that you keep all discussion on the message boards related to @project or BOINC with the small exception of the Science message board where you are free to discuss anything relevant to the underlying science. Participants interested in broader discussions should post to unofficial forums for @project.',
+      array('@project' => variable_get('site_name', bts('this project'))), NULL, 'boinc:forum-fine-print'); ?>
+  </p>
+  <p>
+    <?php print bts('These message boards now support BBCode tags only.', array(), NULL, 'boinc:forum-fine-print'); ?>
+  </p>
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/forum-submitted.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/forum-submitted.tpl.php
new file mode 100644
index 0000000..e485a15
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/forum-submitted.tpl.php
@@ -0,0 +1,29 @@
+<?php
+// $Id: forum-submitted.tpl.php,v 1.3 2007/08/07 08:39:35 goba Exp $
+
+/**
+ * @file forum-submitted.tpl.php
+ * Default theme implementation to format a simple string indicated when and
+ * by whom a topic was submitted.
+ *
+ * Available variables:
+ *
+ * - $author: The author of the post.
+ * - $time: How long ago the post was created.
+ * - $topic: An object with the raw data of the post. Unsafe, be sure
+ *   to clean this data before printing.
+ *
+ * @see template_preprocess_forum_submitted()
+ * @see theme_forum_submitted()
+ */
+?>
+<?php if ($time): ?>
+  <?php print bts('@time ago', array('@time' => $time), NULL, 'boinc:forum-post-posted-time-ago'); ?>
+  <?php /* print bts(
+  '@time ago <br />by !author', array(
+    '@time' => $time,
+    '!author' => $author,
+    )); */ ?>
+<?php else: ?>
+  <?php print bts('n/a', array(), NULL, 'boinc:forum-post-posted-time-not-available'); ?>
+<?php endif; ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/forum-topic-list.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/forum-topic-list.tpl.php
new file mode 100644
index 0000000..c69de7c
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/forum-topic-list.tpl.php
@@ -0,0 +1,130 @@
+<?php
+// $Id: forum-topic-list.tpl.php,v 1.4.2.1 2008/10/22 18:22:51 dries Exp $
+
+/**
+ * @file forum-topic-list.tpl.php
+ * Theme implementation to display a list of forum topics.
+ *
+ * Available variables:
+ * - $header: The table header. This is pre-generated with click-sorting
+ *   information. If you need to change this, @see template_preprocess_forum_topic_list().
+ * - $pager: The pager to display beneath the table.
+ * - $topics: An array of topics to be displayed.
+ * - $topic_id: Numeric id for the current forum topic.
+ *
+ * Each $topic in $topics contains:
+ * - $topic->icon: The icon to display.
+ * - $topic->moved: A flag to indicate whether the topic has been moved to
+ *   another forum.
+ * - $topic->title: The title of the topic. Safe to output.
+ * - $topic->message: If the topic has been moved, this contains an
+ *   explanation and a link.
+ * - $topic->zebra: 'even' or 'odd' string used for row class.
+ * - $topic->num_comments: The number of replies on this topic.
+ * - $topic->new_replies: A flag to indicate whether there are unread comments.
+ * - $topic->new_url: If there are unread replies, this is a link to them.
+ * - $topic->new_text: Text containing the translated, properly pluralized count.
+ * - $topic->created: An outputtable string represented when the topic was posted.
+ * - $topic->last_reply: An outputtable string representing when the topic was
+ *   last replied to.
+ * - $topic->timestamp: The raw timestamp this topic was posted.
+ *
+ * @see template_preprocess_forum_topic_list()
+ * @see theme_forum_topic_list()
+ */
+?>
+<table id="forum-topic-<?php print $topic_id; ?>">
+  
+  <?php
+    // Get vocabulary name and use that as the title
+    $topic = current($topics);
+    $taxonomy = taxonomy_get_term($topic->tid);
+    if (module_exists('internationalization')) {
+      $imv = i18ntaxonomy_localize_terms(array($taxonomy));
+      $taxonomy = reset($imv);
+    }
+    if ($forum_vocab = taxonomy_vocabulary_load($taxonomy->vid)) {
+      if (module_exists('internationalization')) {
+        $forum_vocab->name = i18ntaxonomy_translate_vocabulary_name($forum_vocab);
+      }
+      drupal_set_title($forum_vocab->name);
+    }
+    // Get the count of topics on this page
+    $topic_count = count($topics);
+    $topic_index = 0;
+    $first_non_sticky = FALSE;
+  ?>
+  
+  <h2 class="title">
+    <?php print l($forum_vocab->name, 'community/forum') . ' › '; ?>
+    <?php print $taxonomy->name; ?>
+  </h2>
+  
+  <thead>
+    <tr><?php print $header; ?></tr>
+  </thead>
+  <tbody>
+  <?php foreach ($topics as $topic): ?>
+    <?php
+      node_load($topic->id);
+      $author = user_load($topic->uid);
+      $topic_index++;
+      $row_class = 'topic ' . $topic->zebra;
+      if ($topic_index == 1) {
+        $row_class .= ' first';
+      }
+      if ($topic->sticky) {
+        $row_class .= ' sticky';
+      }
+      elseif (!$first_non_sticky AND !$topic->sticky) {
+        $row_class .= ' first-non-sticky';
+        $first_non_sticky = TRUE;
+      }
+      if ($topic_index == $topic_count) {
+        $row_class .= ' last';
+      }
+      if ($topic->new) {
+        $row_class .= ' updated';
+      }
+    ?>
+    <tr class="<?php print $row_class;?>">
+      <td class="icon"><?php //print $topic->icon; ?>
+        <?php if ($topic->sticky): ?>
+          <span class='fa fa-thumb-tack'></span>
+        <?php endif; ?>
+        <?php if ($topic->comment_mode != COMMENT_NODE_READ_WRITE): ?>
+          <span class='fa fa-lock'></span>
+        <?php endif; ?>
+        <?php if (($topic->new) AND ($topic->new_replies)): ?>
+            <span class='fa fa-bell-o'></span>
+        <?php elseif ($topic->new): ?>
+            <span class='fa fa-star-o'></span>
+        <?php endif; ?>
+      </td>
+      <td class="title" title="<?php print $author->boincuser_name; ?>">
+        <?php print $topic->title; ?>
+      </td>
+    <?php if ($topic->moved): ?>
+      <td colspan="3"><?php print $topic->message; ?></td>
+    <?php else: ?>
+      <td class="replies">
+        <?php if ($topic->new_replies): ?>
+          <a href="<?php print $topic->new_url; ?>">
+        <?php endif; ?>
+        <?php print $topic->num_comments; ?>
+        <?php if ($topic->new_replies): ?>
+          <?php //print $topic->new_text; ?>
+          </a>
+        <?php endif; ?>
+      </td>
+      <td class="created">
+        <?php print $topic->created; ?></td>
+      <td class="last-reply">
+        <?php print $topic->last_reply; ?>
+      </td>
+    <?php endif; ?>
+    </tr>
+  <?php endforeach; ?>
+  </tbody>
+</table>
+<?php print $pager; ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/forum-topic-navigation.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/forum-topic-navigation.tpl.php
new file mode 100644
index 0000000..7f7314c
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/forum-topic-navigation.tpl.php
@@ -0,0 +1,35 @@
+<?php
+// $Id: forum-topic-navigation.tpl.php,v 1.2 2007/08/07 08:39:35 goba Exp $
+
+/**
+ * @file forum-topic-navigation.tpl.php
+ * Default theme implementation to display the topic navigation string at the
+ * bottom of all forum topics.
+ *
+ * Available variables:
+ *
+ * - $prev: The node ID of the previous post.
+ * - $prev_url: The URL of the previous post.
+ * - $prev_title: The title of the previous post.
+ *
+ * - $next: The node ID of the next post.
+ * - $next_url: The URL of the next post.
+ * - $next_title: The title of the next post.
+ *
+ * - $node: The raw node currently being viewed. Contains unsafe data
+ *   and any data in this must be cleaned before presenting.
+ *
+ * @see template_preprocess_forum_topic_navigation()
+ * @see theme_forum_topic_navigation()
+ */
+?>
+<?php /*if ($prev || $next): ?>
+  <div class="forum-topic-navigation clear-block">
+    <?php if ($prev): ?>
+      <a href="<?php print $prev_url; ?>" class="topic-previous" title="<?php print t('Go to previous forum topic') ?>">‹ <?php print $prev_title ?></a>
+    <?php endif; ?>
+    <?php if ($next): ?>
+      <a href="<?php print $next_url; ?>" class="topic-next" title="<?php print t('Go to next forum topic') ?>"><?php print $next_title ?> ›</a>
+    <?php endif; ?>
+  </div>
+<?php endif;*/ ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/forums.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/forums.tpl.php
new file mode 100644
index 0000000..2301d3e
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/forums.tpl.php
@@ -0,0 +1,29 @@
+<?php
+// $Id: forums.tpl.php,v 1.4 2007/08/07 08:39:35 goba Exp $
+
+/**
+ * @file forums.tpl.php
+ * Default theme implementation to display a forum which may contain forum
+ * containers as well as forum topics.
+ *
+ * Variables available:
+ * - $links: An array of links that allow a user to post new forum topics.
+ *   It may also contain a string telling a user they must log in in order
+ *   to post.
+ * - $forums: The forums to display (as processed by forum-list.tpl.php)
+ * - $topics: The topics to display (as processed by forum-topic-list.tpl.php)
+ * - $forums_defined: A flag to indicate that the forums are configured.
+ *
+ * @see template_preprocess_forums()
+ * @see theme_forums()
+ */
+?>
+<?php if ($forums_defined): ?>
+<div id="forum">
+  <?php print $forums; ?>
+  <?php print $topics; ?>
+  <?php print theme('links', $links); ?>
+  <div class="clearfix"></div>
+</div>
+
+<?php endif; ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/maintenance-page.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/maintenance-page.tpl.php
new file mode 100644
index 0000000..2072fb2
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/maintenance-page.tpl.php
@@ -0,0 +1,113 @@
+<?php
+// $Id: maintenance-page.tpl.php,v 1.17 2009/11/04 20:49:23 johnalbin Exp $
+
+/**
+ * @file maintenance-page.tpl.php
+ *
+ * Theme implementation to display a single Drupal page while off-line.
+ *
+ * All the available variables are mirrored in page.tpl.php. Some may be left
+ * blank but they are provided for consistency.
+ *
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_maintenance_page()
+ */
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" lang="<?php print $language->language; ?>" dir="<?php print $language->dir; ?>">
+
+<head>
+  <title><?php print $head_title; ?></title>
+  <?php print $head; ?>
+  <?php print $styles; ?>
+  <?php print $scripts; ?>
+</head>
+<body class="<?php print $classes; ?>">
+
+  <div id="page-wrapper"><div id="page">
+    
+    <div id="header-wrapper" class="shadow">
+
+    <div id="header"><div class="section clearfix">
+
+      <?php if ($logo): ?>
+        <a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"><img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /></a>
+      <?php endif; ?>
+
+      <?php if ($site_name || $site_slogan): ?>
+        <div id="name-and-slogan">
+          <?php if ($site_name): ?>
+            <div id="site-name"><strong>
+              <a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>" rel="home">
+              <?php print $site_name; ?>
+              </a>
+            </strong></div>
+          <?php endif; ?>
+          <?php if ($site_slogan): ?>
+            <div id="site-slogan"><?php print $site_slogan; ?></div>
+          <?php endif; ?>
+        </div> <!-- /#name-and-slogan -->
+      <?php endif; ?>
+
+      <?php print $header; ?>
+
+    </div></div> <!-- /.section, /#header -->
+    
+    </div> <!-- /.shadow -->
+
+    <div id="main-wrapper"><div id="main" class="clearfix<?php if ($navigation) { print ' with-navigation'; } ?>">
+
+      <div id="content" class="column"><div class="section">
+
+        <?php print $highlight; ?>
+
+        <?php if ($title): ?>
+          <h1 class="title"><?php print $title; ?></h1>
+        <?php endif; ?>
+        <?php if ($messages): print $messages; endif; ?>
+
+        <?php print $content_top; ?>
+
+        <div id="content-area">
+          <?php print $content; ?>
+        </div>
+
+        <?php print $content_bottom; ?>
+
+      </div></div> <!-- /.section, /#content -->
+
+      <?php if ($navigation): ?>
+        <div id="navigation"><div class="section clearfix">
+
+          <?php print $navigation; ?>
+
+        </div></div> <!-- /.section, /#navigation -->
+      <?php endif; ?>
+
+      <?php print $sidebar_first; ?>
+
+      <?php print $sidebar_second; ?>
+
+    </div></div> <!-- /#main, /#main-wrapper -->
+
+    <?php if ($footer || $footer_message): ?>
+      <div id="footer"><div class="section">
+
+        <?php if ($footer_message): ?>
+          <div id="footer-message"><?php print $footer_message; ?></div>
+        <?php endif; ?>
+
+        <?php print $footer; ?>
+
+      </div></div> <!-- /.section, /#footer -->
+    <?php endif; ?>
+
+  </div></div> <!-- /#page, /#page-wrapper -->
+
+  <?php print $page_closure; ?>
+
+  <?php print $closure; ?>
+
+</body>
+</html>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/mobile_menu_toggle.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/mobile_menu_toggle.tpl.php
new file mode 100644
index 0000000..53f75b6
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/mobile_menu_toggle.tpl.php
@@ -0,0 +1,4 @@
+<a id="mobile-menu-toggle" href="javascript;;">
+  <i class="fa fa-bars fa-2x" aria-hidden="true"></i>
+  <span class="mmt-menu"> <?php print bts('Menu', array(), NULL, 'project:mobile-menu-title');?> </span>
+</a>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/node-forum.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/node-forum.tpl.php
new file mode 100644
index 0000000..a846b29
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/node-forum.tpl.php
@@ -0,0 +1,213 @@
+<?php
+// $Id: node.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin Exp $
+
+/**
+ * @file
+ * Theme implementation to display a node.
+ *
+ * Available variables:
+ * - $title: the (sanitized) title of the node.
+ * - $content: Node body or teaser depending on $teaser flag.
+ * - $user_picture: The node author's picture from user-picture.tpl.php.
+ * - $date: Formatted creation date. Preprocess functions can reformat it by
+ *   calling format_date() with the desired parameters on the $created variable.
+ * - $name: Themed username of node author output from theme_username().
+ * - $node_url: Direct url of the current node.
+ * - $terms: the themed list of taxonomy term links output from theme_links().
+ * - $display_submitted: whether submission information should be displayed.
+ * - $links: Themed links like "Read more", "Add new comment", etc. output
+ *   from theme_links().
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - node: The current template type, i.e., "theming hook".
+ *   - node-[type]: The current node type. For example, if the node is a
+ *     "Blog entry" it would result in "node-blog". Note that the machine
+ *     name will often be in a short form of the human readable label.
+ *   - node-teaser: Nodes in teaser form.
+ *   - node-preview: Nodes in preview mode.
+ *   The following are controlled through the node publishing options.
+ *   - node-promoted: Nodes promoted to the front page.
+ *   - node-sticky: Nodes ordered above other non-sticky nodes in teaser
+ *     listings.
+ *   - node-unpublished: Unpublished nodes visible only to administrators.
+ *   The following applies only to viewers who are registered users:
+ *   - node-by-viewer: Node is authored by the user currently viewing the page.
+ *
+ * Other variables:
+ * - $node: Full node object. Contains data that may not be safe.
+ * - $type: Node type, i.e. story, page, blog, etc.
+ * - $comment_count: Number of comments attached to the node.
+ * - $uid: User ID of the node author.
+ * - $created: Time the node was published formatted in Unix timestamp.
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
+ *   teaser listings.
+ * - $id: Position of the node. Increments each time it's output.
+ *
+ * Node status variables:
+ * - $build_mode: Build mode, e.g. 'full', 'teaser'...
+ * - $teaser: Flag for the teaser state (shortcut for $build_mode == 'teaser').
+ * - $page: Flag for the full page state.
+ * - $promote: Flag for front page promotion state.
+ * - $sticky: Flags for sticky post setting.
+ * - $status: Flag for published status.
+ * - $comment: State of comment settings for the node.
+ * - $readmore: Flags true if the teaser content of the node cannot hold the
+ *   main body content.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ * - $is_admin: Flags true when the current user is an administrator.
+ *
+ * The following variables are deprecated and will be removed in Drupal 7:
+ * - $picture: This variable has been renamed $user_picture in Drupal 7.
+ * - $submitted: Themed submission information output from
+ *   theme_node_submitted().
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_node()
+ * @see zen_preprocess()
+ * @see zen_preprocess_node()
+ * @see zen_process()
+ */
+?>
+
+<?php if ($subscribe_link): ?>
+  <div class="subscribe">
+    <?php print $subscribe_link; ?>
+  </div>
+<?php endif; ?>
+
+<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix<?php echo ($first_page) ? '' : ' not-first-page'; ?>">
+  
+  <?php 
+    if ($page) {
+      // Set topic title as page title
+      drupal_set_title($title);
+      $subtitle = array();
+      // Get vocabulary name and taxonomy name for subtitle breadcrumbs
+      $taxonomy = taxonomy_get_term($node->forum_tid);
+      if ($forum_vocab = taxonomy_vocabulary_load($taxonomy->vid)) {
+        $subtitle[] = l($forum_vocab->name, 'community/forum');
+      }
+      if (isset($taxonomy->name)) {
+        $subtitle[] = l($taxonomy->name, "community/forum/{$taxonomy->tid}");
+      }
+      $subtitle = implode(' › ', $subtitle);
+    }
+  ?>
+  
+  <h2 class="title"><?php print $subtitle; ?></h2>
+  
+  <?php if ($unpublished): ?>
+    <div class="unpublished"><?php print bts('Unpublished', array(), NULL, 'boinc:comment-action-links'); ?></div>
+  <?php endif; ?>
+  
+  <?php 
+    if (!$oldest_post_first) {
+      print comment_render($node);
+    }
+  ?>
+  <?php // Only show this post on the first or last page, depending on sort ?>
+  <?php if (($oldest_post_first AND $first_page) OR (!$oldest_post_first AND $last_page)): ?>
+
+<?// DBOINCP-300: added node comment count condition in order to get Preview working ?>
+    <?php if ( (!$oldest_post_first) AND ($comment_count>0) ): ?>
+          </div>
+        </div>
+      </div>
+      <div class="section bottom framing container shadow">
+        <div id="content-area-alt">
+          <div id="node-<?php print $node->nid; ?>-alt" class="<?php print $classes; ?> clearfix<?php echo ($first_page) ? '' : ' not-first-page'; ?>">
+    <?php endif; ?>
+    
+    <div class="user">
+      <?php
+        $account = user_load(array('uid' => $uid));
+        $user_image = boincuser_get_user_profile_image($uid);
+        if ($user_image) {
+          print '<div class="picture">';
+          if (is_array($user_image) AND $user_image['image']['filepath']) {
+            //print theme('imagecache', 'thumbnail', $user_image['image']['filepath'], $user_image['alt'], $user_image['alt']);
+            print theme('imagefield_image', $user_image['image'], $user_image['alt'], $user_image['alt'], array(), false);
+          }
+          elseif (is_string($user_image)) {
+            print '<img src="' . $user_image . '"/>';
+          }
+          print '</div>';
+        }
+        // Generate ignore user link
+        $ignore_link = ignore_user_link('node', $node);
+        //echo '<pre>' . print_r($node->links, TRUE) . '</pre>';
+      ?>
+      <div class="name"><?php print $name; ?></div>
+      <?php if ($account->uid): ?>
+        <?php $nf = new NumberFormatter($locality, NumberFormatter::DECIMAL); ;?>
+        <div class="join-date"><?php print bts('Joined: @join_date', array( '@join_date' => date('j M y', $account->created) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="post-count"><?php print bts('Posts: @post_count', array( '@post_count' => $nf->format($account->post_count) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="credit"><?php print bts('Credit: @user_credits', array( '@user_credits' => $nf->format($account->boincuser_total_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="rac"><?php print bts('RAC: @user_rac', array( '@user_rac' => $nf->format($account->boincuser_expavg_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="user-links">
+          <div class="ignore-link"><?php print l($ignore_link['ignore_user']['title'],
+            $ignore_link['ignore_user']['href'],
+            array('query' => $ignore_link['ignore_user']['query'])); ?>
+          </div>
+          <div class="pm-link"><?php
+            if ($user->uid AND ($user->uid != $account->uid)) {
+              print l(bts('Send message', array(), NULL, 'boinc:private-message'),
+              privatemsg_get_link(array($account)),
+              array('query' => drupal_get_destination()));
+            } ?>
+          </div>
+        </div>
+      <?php endif; ?>
+    </div>
+    
+    <div class="node-body">
+      
+      <?php /* if ($terms): ?>
+        <div class="terms terms-inline"><?php print $terms; ?></div>
+      <?php endif; */ ?>
+      
+      <?php if ($display_submitted): ?>
+        <div class="submitted">
+          <?php print date('j M Y H:i:s T', $node->created); ?>
+        </div>
+      <?php endif; ?>
+      <div class="topic-id">
+        Topic <?php print $node->nid; ?>
+      </div>
+      <div class="standard-links">
+        <?php print $links; ?>
+      </div>
+      <?php if ($moderator_links): ?>
+        <div class="moderator-links">
+          <span class="label">(<?php print bts('moderation', array(), NULL, 'boinc:comment-action-links'); ?>:</span>
+          <?php print $moderator_links; ?>
+          <span class="label">)</span>
+        </div>
+      <?php endif; ?>
+      
+      <div class="content">
+        <?php print $content; ?>
+        <?php if ($signature AND $show_signatures): ?>
+          <div class="user-signature clearfix">
+            <?php print $signature; ?>
+          </div>
+        <?php endif; ?>
+      </div>
+
+      
+    </div> <!-- /.node-body -->
+    
+  <?php endif; // page with topic starter post ?>
+  
+  <?php 
+    if ($oldest_post_first) {
+      print comment_render($node);
+    }
+  ?>
+  
+</div> <!-- /.node -->
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/node-team_forum.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/node-team_forum.tpl.php
new file mode 100644
index 0000000..83f4970
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/node-team_forum.tpl.php
@@ -0,0 +1,230 @@
+<?php
+// $Id: node.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin Exp $
+
+/**
+ * @file
+ * Theme implementation to display a node.
+ *
+ * Available variables:
+ * - $title: the (sanitized) title of the node.
+ * - $content: Node body or teaser depending on $teaser flag.
+ * - $user_picture: The node author's picture from user-picture.tpl.php.
+ * - $date: Formatted creation date. Preprocess functions can reformat it by
+ *   calling format_date() with the desired parameters on the $created variable.
+ * - $name: Themed username of node author output from theme_username().
+ * - $node_url: Direct url of the current node.
+ * - $terms: the themed list of taxonomy term links output from theme_links().
+ * - $display_submitted: whether submission information should be displayed.
+ * - $links: Themed links like "Read more", "Add new comment", etc. output
+ *   from theme_links().
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - node: The current template type, i.e., "theming hook".
+ *   - node-[type]: The current node type. For example, if the node is a
+ *     "Blog entry" it would result in "node-blog". Note that the machine
+ *     name will often be in a short form of the human readable label.
+ *   - node-teaser: Nodes in teaser form.
+ *   - node-preview: Nodes in preview mode.
+ *   The following are controlled through the node publishing options.
+ *   - node-promoted: Nodes promoted to the front page.
+ *   - node-sticky: Nodes ordered above other non-sticky nodes in teaser
+ *     listings.
+ *   - node-unpublished: Unpublished nodes visible only to administrators.
+ *   The following applies only to viewers who are registered users:
+ *   - node-by-viewer: Node is authored by the user currently viewing the page.
+ *
+ * Other variables:
+ * - $node: Full node object. Contains data that may not be safe.
+ * - $type: Node type, i.e. story, page, blog, etc.
+ * - $comment_count: Number of comments attached to the node.
+ * - $uid: User ID of the node author.
+ * - $created: Time the node was published formatted in Unix timestamp.
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
+ *   teaser listings.
+ * - $id: Position of the node. Increments each time it's output.
+ *
+ * Node status variables:
+ * - $build_mode: Build mode, e.g. 'full', 'teaser'...
+ * - $teaser: Flag for the teaser state (shortcut for $build_mode == 'teaser').
+ * - $page: Flag for the full page state.
+ * - $promote: Flag for front page promotion state.
+ * - $sticky: Flags for sticky post setting.
+ * - $status: Flag for published status.
+ * - $comment: State of comment settings for the node.
+ * - $readmore: Flags true if the teaser content of the node cannot hold the
+ *   main body content.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ * - $is_admin: Flags true when the current user is an administrator.
+ *
+ * The following variables are deprecated and will be removed in Drupal 7:
+ * - $picture: This variable has been renamed $user_picture in Drupal 7.
+ * - $submitted: Themed submission information output from
+ *   theme_node_submitted().
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_node()
+ * @see zen_preprocess()
+ * @see zen_preprocess_node()
+ * @see zen_process()
+ */
+?>
+<?php $first_page = (!isset($_GET['page']) OR ($_GET['page'] < 1)); ?>
+
+<?php if ($subscribe_link): ?>
+  <div class="subscribe">
+    <?php print $subscribe_link; ?>
+  </div>
+<?php endif; ?>
+
+<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix<?php echo ($first_page) ? '' : ' not-first-page'; ?>">
+  
+  <?php 
+    if ($page) {
+      // Set topic title as page title
+      drupal_set_title($title);
+      $subtitle = array();
+      $team_forum_id = db_result(db_query("
+        SELECT tfid FROM {boincteam_forum_node} WHERE nid = %d", $node->nid
+      ));
+      $team_forum = boincteam_forum_load($team_forum_id);
+      // Grab a sample forum topic node to get the forum vocabulary name
+      $sample = db_result(db_query("
+        SELECT nid FROM {node} WHERE type = 'forum' LIMIT 1"
+      ));
+      $forum_node = node_load($sample);
+      // Get vocabulary name and taxonomy name for subtitle breadcrumbs
+      $taxonomy = taxonomy_get_term($forum_node->tid);
+      if (module_exists('internationalization')) {
+        $imv = i18ntaxonomy_localize_terms(array($taxonomy));
+        $taxonomy = reset($imv);
+      }
+      if ($forum_vocab = taxonomy_vocabulary_load($taxonomy->vid)) {
+        if (module_exists('internationalization')) {
+          $forum_vocab->name = i18ntaxonomy_translate_vocabulary_name($forum_vocab);
+        }
+        $subtitle[] = l($forum_vocab->name, 'community/forum');
+      }
+      if ($team_forum) {
+        $subtitle[] = l($team_forum->title, "community/teams/{$team_forum->nid}/forum/{$team_forum->tfid}");
+      }
+      $subtitle = implode(' › ', $subtitle);
+    }
+  ?>
+  
+  <h2 class="title"><?php print $subtitle; ?></h2>
+  
+  <?php if ($unpublished): ?>
+    <div class="unpublished"><?php print bts('Unpublished', array(), NULL, 'boinc:comment-action-links'); ?></div>
+  <?php endif; ?>
+  
+  <?php 
+    if (!$oldest_post_first) {
+      print comment_render($node);
+    }
+  ?>
+  <?php // Only show this post on the first or last page, depending on sort ?>
+  <?php if (($oldest_post_first AND $first_page) OR (!$oldest_post_first AND $last_page)): ?>
+
+<?// DBOINCP-300: added node comment count condition in order to get Preview working ?>
+    <?php if ( (!$oldest_post_first) AND ($comment_count>0) ): ?>
+          </div>
+        </div>
+      </div>
+      <div class="section bottom framing container shadow">
+        <div id="content-area-alt">
+          <div id="node-<?php print $node->nid; ?>-alt" class="<?php print $classes; ?> clearfix<?php echo ($first_page) ? '' : ' not-first-page'; ?>">
+    <?php endif; ?>
+
+    <div class="user">
+      <?php
+        $account = user_load(array('uid' => $uid));
+        $user_image = boincuser_get_user_profile_image($uid);
+        if ($user_image) {
+          print '<div class="picture">';
+          if (is_array($user_image) AND $user_image['image']['filepath']) {
+            //print theme('imagecache', 'thumbnail', $user_image['image']['filepath'], $user_image['alt'], $user_image['alt']);
+            print theme('imagefield_image', $user_image['image'], $user_image['alt'], $user_image['alt'], array(), false);
+          }
+          elseif (is_string($user_image)) {
+            print '<img src="' . $user_image . '"/>';
+          }
+          print '</div>';
+        }
+        // Generate ignore user link
+        $ignore_link = ignore_user_link('node', $node);
+        //echo '<pre>' . print_r($node->links, TRUE) . '</pre>';
+      ?>
+      <div class="name"><?php print $name; ?></div>
+      <?php if ($account->uid): ?>
+        <?php $nf = new NumberFormatter($locality, NumberFormatter::DECIMAL); ;?>
+        <div class="join-date"><?php print bts('Joined: @join_date', array( '@join_date' => date('j M y', $account->created) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="post-count"><?php print bts('Posts: @post_count', array( '@post_count' => $nf->format($account->post_count) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="credit"><?php print bts('Credit: @user_credits', array( '@user_credits' => $nf->format($account->boincuser_total_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="rac"><?php print bts('RAC: @user_rac', array( '@user_rac' => $nf->format($account->boincuser_expavg_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="user-links">
+          <div class="ignore-link"><?php print l($ignore_link['ignore_user']['title'],
+            $ignore_link['ignore_user']['href'],
+            array('query' => $ignore_link['ignore_user']['query'])); ?>
+          </div>
+          <div class="pm-link"><?php
+            if ($user->uid AND ($user->uid != $account->uid)) {
+              print l(bts('Send message', array(), NULL, 'boinc:private-message'),
+              privatemsg_get_link(array($account)),
+              array('query' => drupal_get_destination()));
+            } ?>
+          </div>
+        </div>
+      <?php endif; ?>
+    </div>
+    
+    <div class="node-body">
+      
+      <?php /* if ($terms): ?>
+        <div class="terms terms-inline"><?php print $terms; ?></div>
+      <?php endif; */ ?>
+      
+      <?php if ($display_submitted): ?>
+        <div class="submitted">
+          <?php print date('j M Y H:i:s T', $node->created); ?>
+        </div>
+      <?php endif; ?>
+      <div class="topic-id">
+        Topic <?php print $node->nid; ?>
+      </div>
+      <div class="standard-links">
+        <?php print $links; ?>
+      </div>
+      <?php if ($moderator_links): ?>
+        <div class="moderator-links">
+          <span class="label">(<?php print bts('moderation', array(), NULL, 'boinc:comment-action-links'); ?>:</span>
+          <?php print $moderator_links; ?>
+          <span class="label">)</span>
+        </div>
+      <?php endif; ?>
+      
+      <div class="content">
+        <?php print $content; ?>
+        <?php if ($signature AND $show_signatures): ?>
+          <div class="user-signature clearfix">
+            <?php print $signature; ?>
+          </div>
+        <?php endif; ?>
+      </div>
+
+            
+    </div> <!-- /.node-body -->
+    
+  <?php endif; // page with topic starter post ?>
+  
+  <?php 
+    if ($oldest_post_first) {
+      print comment_render($node);
+    }
+  ?>
+  
+</div> <!-- /.node -->
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/node.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/node.tpl.php
new file mode 100644
index 0000000..c4bcbb9
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/node.tpl.php
@@ -0,0 +1,121 @@
+<?php
+// $Id: node.tpl.php,v 1.10 2009/11/02 17:42:27 johnalbin Exp $
+
+/**
+ * @file
+ * Theme implementation to display a node.
+ *
+ * Available variables:
+ * - $title: the (sanitized) title of the node.
+ * - $content: Node body or teaser depending on $teaser flag.
+ * - $user_picture: The node author's picture from user-picture.tpl.php.
+ * - $date: Formatted creation date. Preprocess functions can reformat it by
+ *   calling format_date() with the desired parameters on the $created variable.
+ * - $name: Themed username of node author output from theme_username().
+ * - $node_url: Direct url of the current node.
+ * - $terms: the themed list of taxonomy term links output from theme_links().
+ * - $display_submitted: whether submission information should be displayed.
+ * - $links: Themed links like "Read more", "Add new comment", etc. output
+ *   from theme_links().
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - node: The current template type, i.e., "theming hook".
+ *   - node-[type]: The current node type. For example, if the node is a
+ *     "Blog entry" it would result in "node-blog". Note that the machine
+ *     name will often be in a short form of the human readable label.
+ *   - node-teaser: Nodes in teaser form.
+ *   - node-preview: Nodes in preview mode.
+ *   The following are controlled through the node publishing options.
+ *   - node-promoted: Nodes promoted to the front page.
+ *   - node-sticky: Nodes ordered above other non-sticky nodes in teaser
+ *     listings.
+ *   - node-unpublished: Unpublished nodes visible only to administrators.
+ *   The following applies only to viewers who are registered users:
+ *   - node-by-viewer: Node is authored by the user currently viewing the page.
+ *
+ * Other variables:
+ * - $node: Full node object. Contains data that may not be safe.
+ * - $type: Node type, i.e. story, page, blog, etc.
+ * - $comment_count: Number of comments attached to the node.
+ * - $uid: User ID of the node author.
+ * - $created: Time the node was published formatted in Unix timestamp.
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
+ *   teaser listings.
+ * - $id: Position of the node. Increments each time it's output.
+ *
+ * Node status variables:
+ * - $build_mode: Build mode, e.g. 'full', 'teaser'...
+ * - $teaser: Flag for the teaser state (shortcut for $build_mode == 'teaser').
+ * - $page: Flag for the full page state.
+ * - $promote: Flag for front page promotion state.
+ * - $sticky: Flags for sticky post setting.
+ * - $status: Flag for published status.
+ * - $comment: State of comment settings for the node.
+ * - $readmore: Flags true if the teaser content of the node cannot hold the
+ *   main body content.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ * - $is_admin: Flags true when the current user is an administrator.
+ *
+ * The following variables are deprecated and will be removed in Drupal 7:
+ * - $picture: This variable has been renamed $user_picture in Drupal 7.
+ * - $submitted: Themed submission information output from
+ *   theme_node_submitted().
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_node()
+ * @see zen_preprocess()
+ * @see zen_preprocess_node()
+ * @see zen_process()
+ */
+?>
+
+<?php if ($subscribe_link): ?>
+  <div class="subscribe">
+    <?php print $subscribe_link; ?>
+  </div>
+<?php endif; ?>
+
+<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix">
+  <?php print $user_picture; ?>
+
+  <?php if (!$page): ?>
+    <h2 class="title"><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
+  <?php endif; ?>
+
+  <?php if ($unpublished): ?>
+    <div class="unpublished"><?php print bts('Unpublished', array(), NULL, 'boinc:comment-action-links'); ?></div>
+  <?php endif; ?>
+
+  <?php if ($display_submitted || $terms): ?>
+    <div class="meta">
+      <?php if ($display_submitted): ?>
+        <span class="submitted">
+          <?php
+            if ($type == 'news') {
+              print bts('Submitted on !datetime', array('!datetime' => date('j M Y H:i:s T', $node->created)), NULL, 'boinc:news-submitted-info');
+            }
+            else {
+              print bts('Submitted by !username on !datetime',
+                array('!username' => $name, '!datetime' => date('j M Y H:i:s T', $node->created)), NULL, 'boinc:page-submitted-info');
+            }
+          ?>
+        </span>
+      <?php endif; ?>
+
+      <?php if ($terms): ?>
+        <div class="terms terms-inline"><?php print $terms; ?></div>
+      <?php endif; ?>
+    </div>
+  <?php endif; ?>
+
+  <div class="content">
+    <?php print $content; ?>
+  </div>
+
+  <?php //print $links; ?>
+</div> <!-- /.node -->
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/page.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/page.tpl.php
new file mode 100644
index 0000000..43fc1d8
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/page.tpl.php
@@ -0,0 +1,410 @@
+<?php
+// $Id: page.tpl.php,v 1.26.2.3 2010/06/26 15:36:04 johnalbin Exp $
+
+/**
+ * @file
+ * Theme implementation to display a single Drupal page.
+ *
+ * Available variables:
+ *
+ * General utility variables:
+ * - $base_path: The base URL path of the Drupal installation. At the very
+ *   least, this will always default to /.
+ * - $css: An array of CSS files for the current page.
+ * - $directory: The directory the template is located in, e.g. modules/system
+ *   or themes/garland.
+ * - $is_front: TRUE if the current page is the front page. Used to toggle the mission statement.
+ * - $logged_in: TRUE if the user is registered and signed in.
+ * - $is_admin: TRUE if the user has permission to access administration pages.
+ *
+ * Page metadata:
+ * - $language: (object) The language the site is being displayed in.
+ *   $language->language contains its textual representation.
+ *   $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
+ * - $head_title: A modified version of the page title, for use in the TITLE tag.
+ * - $head: Markup for the HEAD section (including meta tags, keyword tags, and
+ *   so on).
+ * - $styles: Style tags necessary to import all CSS files for the page.
+ * - $scripts: Script tags necessary to load the JavaScript files and settings
+ *   for the page.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It should be placed within the <body> tag. When selecting through CSS
+ *   it's recommended that you use the body tag, e.g., "body.front". It can be
+ *   manipulated through the variable $classes_array from preprocess functions.
+ *   The default values can be one or more of the following:
+ *   - front: Page is the home page.
+ *   - not-front: Page is not the home page.
+ *   - logged-in: The current viewer is logged in.
+ *   - not-logged-in: The current viewer is not logged in.
+ *   - node-type-[node type]: When viewing a single node, the type of that node.
+ *     For example, if the node is a "Blog entry" it would result in "node-type-blog".
+ *     Note that the machine name will often be in a short form of the human readable label.
+ *   - page-views: Page content is generated from Views. Note: a Views block
+ *     will not cause this class to appear.
+ *   - page-panels: Page content is generated from Panels. Note: a Panels block
+ *     will not cause this class to appear.
+ *   The following only apply with the default 'sidebar_first' and 'sidebar_second' block regions:
+ *     - two-sidebars: When both sidebars have content.
+ *     - no-sidebars: When no sidebar content exists.
+ *     - one-sidebar and sidebar-first or sidebar-second: A combination of the
+ *       two classes when only one of the two sidebars have content.
+ * - $node: Full node object. Contains data that may not be safe. This is only
+ *   available if the current page is on the node's primary url.
+ * - $menu_item: (array) A page's menu item. This is only available if the
+ *   current page is in the menu.
+ *
+ * Site identity:
+ * - $front_page: The URL of the front page. Use this instead of $base_path,
+ *   when linking to the front page. This includes the language domain or prefix.
+ * - $logo: The path to the logo image, as defined in theme configuration.
+ * - $site_name: The name of the site, empty when display has been disabled
+ *   in theme settings.
+ * - $site_slogan: The slogan of the site, empty when display has been disabled
+ *   in theme settings.
+ * - $mission: The text of the site mission, empty when display has been disabled
+ *   in theme settings.
+ *
+ * Navigation:
+ * - $search_box: HTML to display the search box, empty if search has been disabled.
+ * - $primary_links (array): An array containing the Primary menu links for the
+ *   site, if they have been configured.
+ * - $secondary_links (array): An array containing the Secondary menu links for
+ *   the site, if they have been configured.
+ * - $breadcrumb: The breadcrumb trail for the current page.
+ *
+ * Page content (in order of occurrence in the default page.tpl.php):
+ * - $title: The page title, for use in the actual HTML content.
+ * - $messages: HTML for status and error messages. Should be displayed prominently.
+ * - $tabs: Tabs linking to any sub-pages beneath the current page (e.g., the
+ *   view and edit tabs when displaying a node).
+ * - $help: Dynamic help text, mostly for admin pages.
+ * - $content: The main content of the current page.
+ * - $feed_icons: A string of all feed icons for the current page.
+ *
+ * Footer/closing data:
+ * - $footer_message: The footer message as defined in the admin settings.
+ * - $closure: Final closing markup from any modules that have altered the page.
+ *   This variable should always be output last, after all other dynamic content.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * Regions:
+ * - $content_top: Items to appear above the main content of the current page.
+ * - $content_bottom: Items to appear below the main content of the current page.
+ * - $navigation: Items for the navigation bar.
+ * - $sidebar_first: Items for the first sidebar.
+ * - $sidebar_second: Items for the second sidebar.
+ * - $header: Items for the header region.
+ * - $footer: Items for the footer region.
+ * - $page_closure: Items to appear below the footer.
+ *
+ * The following variables are deprecated and will be removed in Drupal 7:
+ * - $body_classes: This variable has been renamed $classes in Drupal 7.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_page()
+ * @see zen_preprocess()
+ * @see zen_process()
+ */
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" lang="<?php print $language->language; ?>" dir="<?php print $language->dir; ?>">
+
+<head>
+  <title><?php print $head_title; ?></title>
+  <?php print $head; ?>
+  <?php print $styles; ?>
+  <?php print $scripts; ?>
+  <?php if ($is_front): ?>
+    <?php
+      // Insert the scheduler tags
+      $scheduler_tags = boinc_get_scheduler_tags();
+      if ($use_old_tags = variable_get('boinc_scheduler_tag_format_old', 1)) {
+        print "<!-- Project scheduling servers -->\n";
+        print "<!--\n";
+        foreach ($scheduler_tags as $tag) {
+          print "  <scheduler>{$tag}</scheduler>\n";
+        }
+        print "-->\n";
+      }
+      if ($use_new_tags = variable_get('boinc_scheduler_tag_format_new', 1)) {
+        foreach ($scheduler_tags as $tag) {
+          print "  <link rel=\"boinc_scheduler\" href=\"{$tag}\">\n";
+        }
+      }
+    ?>
+  <?php endif; ?>
+</head>
+<body class="<?php print $classes; ?>">
+
+  <?php if ($primary_links): ?>
+    <div id="skip-link"><a href="#main-menu"><?php print t('Jump to Navigation'); ?></a></div>
+  <?php endif; ?>
+
+  <div id="page-wrapper"><div id="page">
+    
+    <div id="header-wrapper" class="shadow">
+    
+    <div id="header"><div class="section clearfix">
+
+      <?php if ($logo): ?>
+        <a href="<?php print $front_page; ?>" title="<?php print bts('Home', array(), NULL, 'boinc:menu-link'); ?>" rel="home" id="logo"><img src="<?php print $logo; ?>" alt="<?php print bts('Home', array(), NULL, 'boinc:menu-link'); ?>" /></a>
+      <?php endif; ?>
+
+      <?php if ($site_name || $site_slogan): ?>
+        <div id="name-and-slogan">
+          <?php if ($site_name): ?>
+            <?php if ($title): ?>
+              <div id="site-name"><strong>
+                <a href="<?php print $front_page; ?>" title="<?php print bts('Home', array(), NULL, 'boinc:menu-link'); ?>" rel="home"><span><?php print strtoupper($site_name); ?></span></a>
+              </strong></div>
+            <?php else: // Use h1 when the content title is empty  ?>
+              <h1 id="site-name">
+                <a href="<?php print $front_page; ?>" title="<?php print bts('Home', array(), NULL, 'boinc:menu-link'); ?>" rel="home"><span><?php print strtoupper($site_name); ?></span></a>
+              </h1>
+            <?php endif; ?>
+          <?php endif; ?>
+
+          <?php if ($site_slogan): ?>
+            <div id="site-slogan"><?php print $site_slogan; ?></div>
+          <?php endif; ?>
+        </div> <!-- /#name-and-slogan -->
+      <?php endif; ?>
+
+      <?php if ($search_box): ?>
+        <div id="search-box"><?php print $search_box; ?></div>
+      <?php endif; ?>
+
+      <?php print $header; ?>
+
+    </div></div> <!-- /.section, /#header -->
+    
+    <?php if ($primary_links || $navigation): ?>
+      <div id="navigation"><div class="section clearfix">
+        <div id="main-menu">
+          <?php print theme(array('links__system_main_menu', 'links'), $primary_links,
+            array(
+              'id' => 'main-menu',
+              'class' => 'links clearfix',
+            ),
+            array(
+              'text' => t('Main menu'),
+              'level' => 'h2',
+              'class' => 'element-invisible',
+            ));
+          ?>
+        </div>
+        
+        <div id="action-links">
+          <ul><li class="first">
+            <?php 
+              global $user;
+              if ($user->uid):
+                echo '<a href="' . url('logout') . '"><span class="secondary-link tab">' . bts('Logout', array(), NULL, 'boinc:menu-link') . '</span></a>';
+              else:
+                echo '<a href="' . url('user/login', array('query' => drupal_get_destination()) ) . '"><span class="secondary-link tab">' . bts('Login', array(), NULL, 'boinc:menu-link') . '</span></a>';
+              endif;
+            ?>
+            </li>
+            <?php if (module_exists('global_search') OR module_exists('global_search_solr')): ?>
+              <li class="last"><a class="search" href="<?php print url('search/site') ?>"><span class="tab"><?php print bts('search', array(), NULL, 'boinc:menu-link'); ?></span></a></li>
+            <?php endif; ?>
+          </ul>
+        </div>
+
+        <div id="sub-menu">
+          <?php print theme(array('links__system_secondary_menu', 'links'), $secondary_links,
+            array(
+              'id' => 'secondary-menu',
+              'class' => 'links clearfix',
+            ),
+            array(
+              'text' => t('Secondary menu'),
+              'level' => 'h2',
+              'class' => 'element-invisible',
+            ));
+          ?>
+        </div>
+
+        <?php if (isset($tertiary_links)) : ?>
+          <div id="sub-menu">
+            <?php print theme(array('links__system_tertiary_menu', 'links'), $tertiary_links,
+              array(
+                'id' => 'tertiary-menu',
+                'class' => 'links clearfix',
+              ),
+              array(
+                'text' => t('Tertiary menu'),
+                'level' => 'h2',
+                'class' => 'element-invisible',
+              ));
+            ?>
+          </div>
+        <?php endif; ?>
+
+        <div id="navigation-mmt">
+          <div id="hamburger-menu" class="block">
+            <?php print render($menu_tree_onlyactive); ?>
+            <?php print $action_links; ?>
+          </div>
+        </div>
+
+      </div></div> <!-- /.section, /#navigation -->
+    <?php endif; ?>
+    
+    </div> <!-- /.shadow -->
+    
+    <div id="main-wrapper"><div id="main" class="clearfix<?php if ($primary_links || $navigation) { print ' with-navigation'; } ?>">
+      
+      <?php print $messages; ?>
+      
+    <?php if ($tabs): ?>
+      <?php
+        $active_menu_item = '';
+        $current_path = $_GET['q'];
+        $heading_overrides = array(
+          'join' => bts('Join now', array(), NULL, 'boinc:front-page'),
+          'user/login' => bts('Account', array(), NULL, 'boinc:user-account'),
+          'user/password' => bts('Account', array(), NULL, 'boinc:user-account'),
+        );
+        if (isset($heading_overrides[$current_path])) {
+          $active_menu_item = $heading_overrides[$current_path];
+        }
+        else {
+          $target_menu = ($secondary_links) ? $secondary_links : $primary_links;
+          foreach ($target_menu as $key => $entry) {
+            if (strstr($key, 'active')) {
+              $active_menu_item = $target_menu[$key]['title'];
+              break;
+            }
+          }
+        }
+      ?>
+      <div class="tabs container shadow">
+      <?php if ($active_menu_item): ?>
+        <h1><?php print $active_menu_item; ?></h1>
+      <?php endif; ?>
+      <?php print $tabs; ?>
+      </div>
+    <?php endif; ?>
+      
+      <?php $class_list = explode(' ', $classes); ?>
+      <div id="content" class="column">
+      
+        <div class="section<?php echo (!array_intersect(array('page-panels','section-users'), $class_list)) ? ' framing container shadow' : ''; ?>">
+          
+          <?php if ($mission): ?>
+            <div id="mission"><?php print $mission; ?></div>
+          <?php endif; ?>
+
+          <?php print $highlight; ?>
+
+          <?php //print $breadcrumb; ?>
+          <?php if ($title): ?>
+            <h1 class="title"><?php print $title; ?></h1>
+          <?php endif; ?>
+          <?php print $help; ?>
+
+          <?php print $content_top; ?>
+
+          <div id="content-area">
+            <?php print $content; ?>
+          </div>
+
+        </div> <!-- /.section -->
+        
+        <?php if ($content_bottom): ?>
+          <div class="section bottom<?php echo (!array_intersect(array('page-panels','section-users'), $class_list)) ? ' framing container shadow' : ''; ?>">
+            
+            <?php print $content_bottom; ?>
+
+            <?php if ($feed_icons AND !$is_front): ?>
+              <div class="feed-icons"><?php print $feed_icons; ?></div>
+            <?php endif; ?>
+
+          </div> <!-- /.section.bottom -->
+        <?php endif; ?>
+        
+      </div> <!-- /#content -->
+
+      <?php print $sidebar_first; ?>
+
+      <?php print $sidebar_second; ?>
+
+    </div></div> <!-- /#main, /#main-wrapper -->
+
+    <?php $footer_links = menu_navigation_links('menu-footer-links',0); ?>
+    <?php if ($footer || $footer_message || $footer_links): ?>
+      <div id="footer"><div class="section">
+        
+        <div id="footer-menu">
+          
+          <?php print theme(array('links__system_secondary_menu', 'links'), $footer_links,
+            array(
+              'id' => 'footer-links',
+              'class' => 'links clearfix',
+            ),
+            array(
+              'text' => t('Footer links'),
+              'level' => 'h2',
+              'class' => 'element-invisible',
+            ));
+          ?>
+          
+          <ul id="server-status" class="tab-list">
+            
+            <li class="first tab">
+              <?php print l(bts('Applications', array(), NULL, 'boinc:footer-link:-1:ignoreoverwrite'), $app_list_url); ?>
+            </li>
+            <li class="last tab">
+              <?php print l(bts('Server status', array(), NULL, 'boinc:footer-link'), $server_status_url); ?>
+            </li>
+            <!--<li class="first tab">Server status</li>
+            <li class="tab">
+              <ul id="server-status-highlights">
+                <li class="first good">Work available</li>
+                <li class="good">Website</li>
+              </ul>
+            </li>
+            <li class="last tab"><a href="status">More</a></li>-->
+            
+          </ul>
+          <div class="clearfix"></div>
+          
+        </div>
+        
+        <div id="footer-info">
+          
+          <div id="language"
+            style="background: url(<?php print $flag_path; ?>) no-repeat right;">
+              <?php print bts('Language', array(), NULL, 'boinc:footer-link:-1:ignoreoverwrite'); ?>
+          </div>
+          
+          <?php if ($footer_message): ?>
+            <div id="footer-message"><?php print $footer_message; ?></div>
+          <?php endif; ?>
+          
+          <?php if (user_access('create page content') OR user_access('create news content')): ?>
+            <div id="content-management-links">
+              <?php print l(bts('Create content', array(), NULL, 'boinc:footer-link'), 'node/add'); ?>
+            </div>
+          <?php endif; ?>
+          
+          <div class="clearfix"></div>
+
+          <?php print $footer; ?>
+        </div>
+
+      </div></div> <!-- /.section, /#footer -->
+    <?php endif; ?>
+
+  </div></div> <!-- /#page, /#page-wrapper -->
+
+  <?php print $page_closure; ?>
+
+  <?php print $closure; ?>
+
+</body>
+</html>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/privatemsg-recipients.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/privatemsg-recipients.tpl.php
new file mode 100644
index 0000000..67b84c3
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/privatemsg-recipients.tpl.php
@@ -0,0 +1,9 @@
+<?php
+// Each file loads it's own styles because we cant predict which file will be
+// loaded.
+drupal_add_css(drupal_get_path('module', 'privatemsg') . '/styles/privatemsg-recipients.css');
+?>
+<?php /*
+<div class="message-participants">
+  <?php print $participants; ?>
+</div> */ ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/privatemsg-view.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/privatemsg-view.tpl.php
new file mode 100644
index 0000000..1988c58
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/privatemsg-view.tpl.php
@@ -0,0 +1,26 @@
+<?php
+// Each file loads it's own styles because we cant predict which file will be
+// loaded.
+drupal_add_css(drupal_get_path('module', 'privatemsg') . '/styles/privatemsg-view.css');
+?>
+<?php print $anchors; ?>
+
+<div id="privatemsg-mid-<?php print $mid; ?>" class="privatemsg-box-fb <?php print $zebra; ?> clearfix">
+
+  <div class="user">
+    <?php print $author_picture; ?>
+  </div>
+  <div class="message-body">
+    <div class="submitted">
+      <div class="name"><?php print $author_name_link; ?></div>
+      <?php print $message_timestamp; ?>
+    </div>
+    <?php if (isset($new)) : ?>
+      <span class="new"><?php print $new ?></span>
+    <?php endif ?>
+    <?php print $message_body; ?>
+    <?php if (isset($message_actions)) : ?>
+       <?php //print $message_actions ?>
+    <?php endif ?>
+  </div> <!-- /.message-body -->
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/region-sidebar.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/region-sidebar.tpl.php
new file mode 100644
index 0000000..82c03f2
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/region-sidebar.tpl.php
@@ -0,0 +1,33 @@
+<?php
+// $Id: region-sidebar.tpl.php,v 1.2 2009/11/04 20:04:20 johnalbin Exp $
+
+/**
+ * @file
+ * Default theme implementation to display a region.
+ *
+ * Available variables:
+ * - $content: The content for this region, typically blocks.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the following:
+ *   - region: The current template type, i.e., "theming hook".
+ *   - region-[name]: The name of the region with underscores replaced with
+ *     dashes. For example, the page_top region would have a region-page-top class.
+ * - $region: The name of the region variable as defined in the theme's .info file.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $is_admin: Flags true when the current user is an administrator.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ *
+ * @see template_preprocess()
+ * @see zen_preprocess()
+ * @see zen_preprocess_region()
+ * @see zen_process()
+ */
+?>
+<div class="<?php print $classes; ?>"><div class="section framing container shadow">
+  <?php print $content; ?>
+</div></div> <!-- /.section, /.region -->
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/region.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/region.tpl.php
new file mode 100644
index 0000000..4ceb524
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/region.tpl.php
@@ -0,0 +1,33 @@
+<?php
+// $Id: region.tpl.php,v 1.3 2009/11/04 18:19:58 johnalbin Exp $
+
+/**
+ * @file
+ * Default theme implementation to display a region.
+ *
+ * Available variables:
+ * - $content: The content for this region, typically blocks.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the following:
+ *   - region: The current template type, i.e., "theming hook".
+ *   - region-[name]: The name of the region with underscores replaced with
+ *     dashes. For example, the page_top region would have a region-page-top class.
+ * - $region: The name of the region variable as defined in the theme's .info file.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $is_admin: Flags true when the current user is an administrator.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ *
+ * @see template_preprocess()
+ * @see zen_preprocess()
+ * @see zen_preprocess_region()
+ * @see zen_process()
+ */
+?>
+<div class="<?php print $classes; ?>">
+  <?php print $content; ?>
+</div> <!-- /.region -->
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/search-result.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/search-result.tpl.php
new file mode 100644
index 0000000..878ba51
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/search-result.tpl.php
@@ -0,0 +1,139 @@
+<?php
+// $Id: search-result.tpl.php,v 1.1.2.1 2008/08/28 08:21:44 dries Exp $
+
+/**
+ * @file search-result.tpl.php
+ * Default theme implementation for displaying a single search result.
+ *
+ * This template renders a single search result and is collected into
+ * search-results.tpl.php. This and the parent template are
+ * dependent to one another sharing the markup for definition lists.
+ *
+ * Available variables:
+ * - $url: URL of the result.
+ * - $title: Title of the result.
+ * - $snippet: A small preview of the result. Does not apply to user searches.
+ * - $info: String of all the meta information ready for print. Does not apply
+ *   to user searches.
+ * - $info_split: Contains same data as $info, split into a keyed array.
+ * - $type: The type of search, e.g., "node" or "user".
+ *
+ * Default keys within $info_split:
+ * - $info_split['type']: Node type.
+ * - $info_split['user']: Author of the node linked to users profile. Depends
+ *   on permission.
+ * - $info_split['date']: Last update of the node. Short formatted.
+ * - $info_split['comment']: Number of comments output as "% comments", %
+ *   being the count. Depends on comment.module.
+ * - $info_split['upload']: Number of attachments output as "% attachments", %
+ *   being the count. Depends on upload.module.
+ *
+ * Since $info_split is keyed, a direct print of the item is possible.
+ * This array does not apply to user searches so it is recommended to check
+ * for their existance before printing. The default keys of 'type', 'user' and
+ * 'date' always exist for node searches. Modules may provide other data.
+ *
+ *   <?php if (isset($info_split['comment'])) : ?>
+ *     <span class="info-comment">
+ *       <?php print $info_split['comment']; ?>
+ *     </span>
+ *   <?php endif; ?>
+ *
+ * To check for all available data within $info_split, use the code below.
+ *
+ *   <?php print '<pre>'. check_plain(print_r($info_split, 1)) .'</pre>'; ?>
+ *
+ * @see template_preprocess_search_result()
+ */
+?>
+<?php switch ($result['bundle']): ?>
+<?php
+  case 'Profile':
+  case 'profile':
+  case 'User':
+  case 'user':
+  ?>
+  <div class="result user">
+    <?php if ($user_image['image']['filepath']): ?>
+      <div class="picture">
+        <?php print theme('imagefield_image', $user_image['image'], $user_image['alt'], $user_image['alt'], array(), false); ?>
+      </div>
+    <?php endif; ?>
+    <div class="name"><a href="<?php print $url; ?>"><?php print $title; ?></a></div>
+    <div class="details">
+      <div class="user-stats">
+        <?php $nf = new NumberFormatter($locality, NumberFormatter::DECIMAL); ;?>
+        <div class="join-date"><?php print bts('Joined: @join_date', array( '@join_date' => date('j M y', $account->created) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="post-count"><?php print bts('Posts: @post_count', array( '@post_count' => $nf->format($account->post_count) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="credit"><?php print bts('Credit: @user_credits', array( '@user_credits' => $nf->format($account->boincuser_total_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+        <div class="rac"><?php print bts('RAC: @user_rac', array( '@user_rac' => $nf->format($account->boincuser_expavg_credit) ), NULL, 'boinc:mini-user-stats'); ?></div>
+      </div>
+    </div>
+    <?php if ($snippet) : ?>
+      <p class="search-snippet"><?php print $snippet; ?></p>
+    <?php endif; ?>
+  </div>
+  
+  <?php break; ?>
+  
+<?php
+  case 'Forum':
+  case 'forum':
+  ?>
+  <div class="result forum">
+    <dt class="title">
+      <?php if ($parent_forum): ?>
+        <?php print $parent_forum . " : "; ?>
+      <?php endif; ?>
+      <a href="<?php print $url; ?>"><?php print $title; ?></a>
+    </dt>
+    <dd class="details">
+      <?php if ($snippet) : ?>
+        <p class="search-snippet"><?php print $snippet; ?></p>
+      <?php endif; ?>
+      <?php if ($info) : ?>
+        <p class="search-info"><?php print $info; ?></p>
+      <?php endif; ?>
+    </dd>
+  </div>
+  <?php break; ?>
+
+<?php
+  case 'Comment':
+  case 'comment':
+  ?>
+  <div class="result">
+    <dt class="title">
+      <?php if ($parent_forum): ?>
+        <?php print $parent_forum . " : "; ?>
+      <?php endif; ?>
+      <a href="<?php print $url; ?>"><?php print $parent_title; ?></a>
+    </dt>
+    <dd>
+      <?php if ($snippet) : ?>
+        <p class="search-snippet"><?php print $snippet; ?></p>
+      <?php endif; ?>
+      <?php if ($info) : ?>
+        <p class="search-info"><?php print $info; ?>
+        </p>
+      <?php endif; ?>
+    </dd>
+  </div>
+<?php break; ?>
+
+<?php default: ?>
+  <div class="result">
+    <dt class="title">
+      <a href="<?php print $url; ?>"><?php print $title; ?></a>
+    </dt>
+    <dd>
+      <?php if ($snippet) : ?>
+        <p class="search-snippet"><?php print $snippet; ?></p>
+      <?php endif; ?>
+      <?php if ($info) : ?>
+      <p class="search-info"><?php print $info; ?></p>
+      <?php endif; ?>
+    </dd>
+  </div>
+<?php endswitch; ?>
+<?php //print '<pre>'. check_plain(print_r($info_split, 1)) .'</pre>'; ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/user-picture.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/user-picture.tpl.php
new file mode 100644
index 0000000..1ccb78a
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/user-picture.tpl.php
@@ -0,0 +1,20 @@
+<?php
+// $Id: user-picture.tpl.php,v 1.2 2007/08/07 08:39:36 goba Exp $
+
+/**
+ * @file user-picture.tpl.php
+ * Default theme implementation to present an picture configured for the
+ * user's account.
+ *
+ * Available variables:
+ * - $picture: Image set by the user or the site's default. Will be linked
+ *   depending on the viewer's permission to view the users profile page.
+ * - $account: Array of account information. Potentially unsafe. Be sure to
+ *   check_plain() before use.
+ *
+ * @see template_preprocess_user_picture()
+ */
+?>
+<div class="picture">
+  <?php print $picture; ?>
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/user-profile-category.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/user-profile-category.tpl.php
new file mode 100644
index 0000000..8d74783
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/user-profile-category.tpl.php
@@ -0,0 +1,34 @@
+<?php
+// $Id: user-profile-category.tpl.php,v 1.2 2007/08/07 08:39:36 goba Exp $
+
+/**
+ * @file user-profile-category.tpl.php
+ * Default theme implementation to present profile categories (groups of
+ * profile items).
+ *
+ * Categories are defined when configuring user profile fields for the site.
+ * It can also be defined by modules. All profile items for a category will be
+ * output through the $profile_items variable.
+ *
+ * @see user-profile-item.tpl.php
+ *      where each profile item is rendered. It is implemented as a definition
+ *      list by default.
+ * @see user-profile.tpl.php
+ *      where all items and categories are collected and printed out.
+ *
+ * Available variables:
+ * - $title: Category title for the group of items.
+ * - $profile_items: All the items for the group rendered through
+ *   user-profile-item.tpl.php.
+ * - $attributes: HTML attributes. Usually renders classes.
+ *
+ * @see template_preprocess_user_profile_category()
+ */
+?>
+<?php if ($title) : ?>
+  <h3><?php print $title; ?></h3>
+<?php endif; ?>
+
+<dl<?php print $attributes; ?>>
+  <?php print $profile_items; ?>
+</dl>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/user-profile-item.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/user-profile-item.tpl.php
new file mode 100644
index 0000000..5a3b083
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/user-profile-item.tpl.php
@@ -0,0 +1,27 @@
+<?php
+// $Id: user-profile-item.tpl.php,v 1.2 2007/08/07 08:39:36 goba Exp $
+
+/**
+ * @file user-profile-item.tpl.php
+ * Default theme implementation to present profile items (values from user
+ * account profile fields or modules).
+ *
+ * This template is used to loop through and render each field configured
+ * for the user's account. It can also be the data from modules. The output is
+ * grouped by categories.
+ *
+ * @see user-profile-category.tpl.php
+ *      for the parent markup. Implemented as a definition list by default.
+ * @see user-profile.tpl.php
+ *      where all items and categories are collected and printed out.
+ *
+ * Available variables:
+ * - $title: Field title for the profile item.
+ * - $value: User defined value for the profile item or data from a module.
+ * - $attributes: HTML attributes. Usually renders classes.
+ *
+ * @see template_preprocess_user_profile_item()
+ */
+?>
+<dt<?php print $attributes; ?>><?php print $title; ?></dt>
+<dd<?php print $attributes; ?>><?php print $value; ?></dd>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/user-profile.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/user-profile.tpl.php
new file mode 100644
index 0000000..260beb3
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/user-profile.tpl.php
@@ -0,0 +1,187 @@
+<?php
+// $Id: user-profile.tpl.php,v 1.2.2.2 2009/10/06 11:50:06 goba Exp $
+
+/**
+ * @file user-profile.tpl.php
+ * Default theme implementation to present all user profile data.
+ *
+ * This template is used when viewing a registered member's profile page,
+ * e.g., example.com/user/123. 123 being the users ID.
+ *
+ * By default, all user profile data is printed out with the $user_profile
+ * variable. If there is a need to break it up you can use $profile instead.
+ * It is keyed to the name of each category or other data attached to the
+ * account. If it is a category it will contain all the profile items. By
+ * default $profile['summary'] is provided which contains data on the user's
+ * history. Other data can be included by modules. $profile['user_picture'] is
+ * available by default showing the account picture.
+ *
+ * Also keep in mind that profile items and their categories can be defined by
+ * site administrators. They are also available within $profile. For example,
+ * if a site is configured with a category of "contact" with
+ * fields for of addresses, phone numbers and other related info, then doing a
+ * straight print of $profile['contact'] will output everything in the
+ * category. This is useful for altering source order and adding custom
+ * markup for the group.
+ *
+ * To check for all available data within $profile, use the code below.
+ * @code
+ *   print '<pre>'. check_plain(print_r($profile, 1)) .'</pre>';
+ * @endcode
+ *
+ * Available variables:
+ *   - $user_profile: All user profile data. Ready for print.
+ *   - $profile: Keyed array of profile categories and their items or other data
+ *     provided by modules.
+ *
+ * @see user-profile-category.tpl.php
+ *   Where the html is handled for the group.
+ * @see user-profile-item.tpl.php
+ *   Where the html is handled for each item in the group.
+ * @see template_preprocess_user_profile()
+ */
+?>
+<?php
+
+global $user;
+drupal_set_title('');
+$account = user_load($account->uid);
+$content_profile = content_profile_load('profile', $account->uid);
+$name = check_plain($account->boincuser_name);
+$join_date = date('d F Y', $account->created);
+$country = check_plain($content_profile->field_country[0]['value']);
+$website = check_plain($content_profile->field_url[0]['value']);
+$background = check_markup($content_profile->field_background[0]['value'], $content_profile->format, FALSE);
+$opinions = check_markup($content_profile->field_opinions[0]['value'], $content_profile->format, FALSE);
+$user_links = array();
+$profile_is_approved = ($content_profile->status AND !$content_profile->moderate);
+$user_is_moderator = user_access('edit any profile content');
+$is_own_profile = ($user->uid == $account->uid);
+
+if ($user->uid AND ($user->uid != $account->uid)) {
+  if (module_exists('private_messages')) {
+  // if (function_exists('privatemsg_get_link')) {
+    $user_links[] = array(
+      'title' => bts('Send message', array(), NULL, 'boinc:private-message'),
+      'href' => privatemsg_get_link(array($account))
+    );
+  }
+  
+  if (module_exists('friends')) {
+    $flag = flag_get_flag('friend');
+    $friend_status = flag_friend_determine_friend_status($flag, $account->uid, $user->uid);
+    switch ($friend_status) {
+    case FLAG_FRIEND_BOTH:
+    case FLAG_FRIEND_FLAGGED:
+      $user_links[] = array(
+        'title' => bts('Remove friend', array(), NULL, 'boinc:friend-remove'),
+        'href' => "flag/confirm/unfriend/friend/{$account->uid}"
+      );
+      break;
+    case FLAG_FRIEND_PENDING:
+      $user_links[] = array(
+        'title' => bts('Cancel friend request', array(), NULL, 'boinc:friend-cancel'),
+        'href' => "flag/confirm/unflag/friend/{$account->uid}"
+      );
+      break;
+    case FLAG_FRIEND_APPROVAL:
+       $user_links[] = array(
+        'title' => bts('Approve friend request', array(), NULL, 'boinc:friend-approve'),
+        'href' => "flag/confirm/flag/friend/{$account->uid}"
+      );
+      break;
+    case FLAG_FRIEND_UNFLAGGED:
+    default:
+      $user_links[] = array(
+        'title' => bts('Add as friend', array(), NULL, 'boinc:friend-add'),
+        'href' => "flag/confirm/flag/friend/{$account->uid}"
+      );
+    }
+  }
+  
+  if (user_access('assign community member role')
+      OR user_access('assign all roles')) {
+    if (array_search('community member', $account->roles)) {
+      $user_links[] = array(
+        'title' => bts('Ban user', array(), NULL, 'boinc:moderate-ban-user'),
+        'href' => "moderate/user/{$account->uid}/ban"
+      );
+    }
+    else {
+      $user_links[] = array(
+        'title' => bts('Lift user ban', array(), NULL, 'boinc:moderate-unban-user'),
+        'href' => "user_control/{$account->uid}/lift-ban"
+      );
+    }
+  }
+}
+
+?>
+<div class="user-profile">
+  <div class="picture">
+    <?php 
+      $user_image = boincuser_get_user_profile_image($account->uid, FALSE);
+      print theme('imagefield_image', $user_image['image'], $user_image['alt'],
+        $user_image['alt'], array(), false);
+    ?>
+  </div>
+  <div class="general-info">
+    <div class="name">
+      <span class="label"></span>
+      <span class="value"><?php print $name; ?></span>
+    </div>
+    <div class="join-date">
+      <span class="label"><?php print bts('Member since', array(), NULL, 'boinc:user-info'); ?>:</span>
+      <span class="value"><?php print $join_date; ?></span>
+    </div>
+    <div class="country">
+      <span class="label"><?php print bts('Country', array(), NULL, 'boinc:country-of-origin'); ?>:</span>
+      <span class="value"><?php print $country; ?></span>
+    </div>
+    <?php if ($website AND ($profile_is_approved OR $user_is_moderator OR $is_own_profile)): ?>
+      <div class="website">
+        <span class="label"><?php print bts('Website', array(), NULL, 'boinc:website-of-user-of-team'); ?>:</span>
+        <span class="value"><?php print l($website, (strpos($website, 'http') === false) ? "http://{$website}" : $website); ?></span>
+      </div>
+    <?php endif; ?>
+    <?php if ($user->uid AND ($user->uid != $account->uid)): ?>
+      <ul class="tab-list">
+        <?php foreach ($user_links as $key => $link): ?>
+          <li class="primary <?php print ($key == 0) ? 'first ' : ''; ?>tab<?php print ($key == count($user_links)-1) ? ' last' : ''; ?>">
+            <?php print l($link['title'], $link['href'], array('query' => drupal_get_destination())); ?>
+          </li>
+          <!--
+          <?php if (module_exists('private_messages')): ?>
+            <li class="first tab"><?php print l(bts('Send message', array(), NULL, 'boinc:private-message'), privatemsg_get_link(array($account)), array('query' => drupal_get_destination())); ?></li>
+          <?php endif; ?>
+          <li class="last tab"><?php print l(bts('Add as friend', array(), NULL, 'boinc:friend-add'), "flag/confirm/flag/friend/{$account->uid}", array('query' => drupal_get_destination())); ?></li>
+          -->
+        <?php endforeach; ?>
+      </ul>
+    <?php endif; ?>
+    <div class="clearfix"></div>
+  </div>
+  <?php if ($background OR $opinions): ?>
+    <div class="bio">
+      <?php if (!$profile_is_approved): ?>
+        <div class="messages warning">
+          <?php print bts('Profile awaiting moderator approval', array(), NULL, 'boinc:user-profile:-1:message-shown-when-awating-moderation'); ?>
+        </div>
+      <?php endif; ?>
+      <?php if ($profile_is_approved OR $user_is_moderator OR $is_own_profile): ?>
+        <?php if ($background): ?>
+          <div class="background">
+            <span class="label"><?php print bts('Background', array(), NULL, 'boinc:user-profile'); ?></span>
+            <span class="value"><?php print $background; ?></span>
+          </div>
+        <?php endif; ?>
+        <?php if ($opinions): ?>
+          <div class="opinions">
+            <span class="label"><?php print bts('Opinion', array(), NULL, 'boinc:user-profile'); ?></span>
+            <span class="value"><?php print $opinions; ?></span>
+          </div>
+        <?php endif; ?>
+      <?php endif; ?>
+    </div>
+  <?php endif; ?>
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view--boinc-team-forum-topics.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view--boinc-team-forum-topics.tpl.php
new file mode 100644
index 0000000..72488a3
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view--boinc-team-forum-topics.tpl.php
@@ -0,0 +1,135 @@
+<?php
+/**
+ * @file views-view.tpl.php
+ * Main view template
+ *
+ * Variables available:
+ * - $classes_array: An array of classes determined in
+ *   template_preprocess_views_view(). Default classes are:
+ *     .view
+ *     .view-[css_name]
+ *     .view-id-[view_name]
+ *     .view-display-id-[display_name]
+ *     .view-dom-id-[dom_id]
+ * - $classes: A string version of $classes_array for use in the class attribute
+ * - $css_name: A css-safe version of the view name.
+ * - $css_class: The user-specified classes names, if any
+ * - $header: The view header
+ * - $footer: The view footer
+ * - $rows: The results of the view query, if any
+ * - $empty: The empty text to display if the view is empty
+ * - $pager: The pager next/prev links to display, if any
+ * - $exposed: Exposed widget form/info to display
+ * - $feed_icon: Feed icon to display, if any
+ * - $more: A link to view more, if any
+ * - $admin_links: A rendered list of administrative links
+ * - $admin_links_raw: A list of administrative links suitable for theme('links')
+ *
+ * @ingroup views_templates
+ */
+?>
+<div class="<?php print $classes; ?>">
+  <?php if ($admin_links): ?>
+    <div class="views-admin-links views-hide">
+      <?php print $admin_links; ?>
+    </div>
+  <?php endif; ?>
+  <?php if ($header): ?>
+    <div class="view-header">
+      <?php print $header; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($exposed): ?>
+    <div class="view-filters">
+      <?php print $exposed; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($attachment_before): ?>
+    <div class="attachment attachment-before">
+      <?php print $attachment_before; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($rows OR $empty): ?>
+    <div class="view-content">
+      <?php
+        
+        $team_forum_id = arg(4);
+        $team_forum = boincteam_forum_load($team_forum_id);
+        
+        // Grab a sample forum topic node to get the forum vocabulary name
+        $sample = db_result(db_query("
+          SELECT nid FROM {node} WHERE type = 'forum' LIMIT 1"
+        ));
+        $forum_node = node_load($sample);
+        // Get vocabulary name and use that as the page title
+        $taxonomy = taxonomy_get_term($forum_node->tid);
+        if (module_exists('internationalization')) {
+          $imv = i18ntaxonomy_localize_terms(array($taxonomy));
+          $taxonomy = reset($imv);
+        }
+        if ($forum_vocab = taxonomy_vocabulary_load($taxonomy->vid)) {
+          if (module_exists('internationalization')) {
+            $forum_vocab->name = i18ntaxonomy_translate_vocabulary_name($forum_vocab);
+          }
+          drupal_set_title($forum_vocab->name);
+        }
+        
+      ?>
+
+      <h1 class="title"><?php print $forum_vocab->name; ?></h1>
+      
+      <div id="forum">
+        <h2 class="title">
+          <?php print l($forum_vocab->name, 'community/forum') . ' › '; ?>
+          <?php print $team_forum->title; ?>
+        </h2>
+        <?php if ($rows): ?>
+          <?php print $rows; ?>
+        <?php elseif ($empty): ?>
+          <?php print $empty; ?>
+        <?php endif; ?>
+      </div>
+      
+    </div>
+  <?php endif; ?>
+
+  <?php if ($pager): ?>
+    <?php print $pager; ?>
+  <?php endif; ?>
+  
+  <ul class="links">
+    <li class="forum first last">
+      <?php $account=user_load($user->uid); ?>
+      <?php if ($account->team AND $account->team == $team_forum->nid): ?>
+        <?php print l(bts('Post new topic', array(), NULL, 'boinc:forum-post-new-topic'), "node/add/team-forum/{$team_forum_id}"); ?>
+      <?php endif; ?>
+    </li>
+  </ul>
+  <div class="clearfix"></div>
+  
+  <?php if ($attachment_after): ?>
+    <div class="attachment attachment-after">
+      <?php print $attachment_after; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($more): ?>
+    <?php print $more; ?>
+  <?php endif; ?>
+
+  <?php if ($footer): ?>
+    <div class="view-footer">
+      <?php print $footer; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($feed_icon): ?>
+    <div class="feed-icon">
+      <?php print $feed_icon; ?>
+    </div>
+  <?php endif; ?>
+
+</div> <?php /* class view */ ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view--boinc-workunit--page.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view--boinc-workunit--page.tpl.php
new file mode 100644
index 0000000..3ffdfa6
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view--boinc-workunit--page.tpl.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * @file views-view.tpl.php
+ * Main view template
+ *
+ * Variables available:
+ * - $classes_array: An array of classes determined in
+ *   template_preprocess_views_view(). Default classes are:
+ *     .view
+ *     .view-[css_name]
+ *     .view-id-[view_name]
+ *     .view-display-id-[display_name]
+ *     .view-dom-id-[dom_id]
+ * - $classes: A string version of $classes_array for use in the class attribute
+ * - $css_name: A css-safe version of the view name.
+ * - $css_class: The user-specified classes names, if any
+ * - $header: The view header
+ * - $footer: The view footer
+ * - $rows: The results of the view query, if any
+ * - $empty: The empty text to display if the view is empty
+ * - $pager: The pager next/prev links to display, if any
+ * - $exposed: Exposed widget form/info to display
+ * - $feed_icon: Feed icon to display, if any
+ * - $more: A link to view more, if any
+ * - $admin_links: A rendered list of administrative links
+ * - $admin_links_raw: A list of administrative links suitable for theme('links')
+ *
+ * @ingroup views_templates
+ */
+?>
+<div class="<?php print $classes; ?>">
+  <?php if ($admin_links): ?>
+    <div class="views-admin-links views-hide">
+      <?php print $admin_links; ?>
+    </div>
+  <?php endif; ?>
+  <?php if ($header): ?>
+    <div class="view-header">
+      <?php print $header; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($exposed): ?>
+    <div class="view-filters">
+      <?php print $exposed; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($attachment_before): ?>
+    <div class="attachment attachment-before">
+      <?php print $attachment_before; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($rows): ?>
+    <div class="view-content">
+      <?php print $rows; ?>
+    </div>
+  <?php elseif ($empty): ?>
+    <div class="view-empty">
+      <?php print $empty; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($pager): ?>
+    <?php print $pager; ?>
+  <?php endif; ?>
+
+  <?php if ($attachment_after): ?>
+    <div class="attachment attachment-after">
+      <?php print $attachment_after; ?>
+    </div>
+  <?php endif; ?>
+  
+
+  <?php if ($more): ?>
+    <?php print $more; ?>
+  <?php endif; ?>
+
+  <?php if ($footer): ?>
+    <div class="view-footer">
+      <?php print $footer; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($feed_icon): ?>
+    <div class="feed-icon">
+      <?php print $feed_icon; ?>
+    </div>
+  <?php endif; ?>
+
+</div> <?php /* class view */ ?>
+  
+  <?php
+    // Inject the task list for this workunit 
+    //$view = views_get_view('boinc_workunit_tasks_all');
+
+    // Get the results of the view in order to retrieve the fields.
+    $myres = $view->result[0];
+    print '<div class="separator"></div>';
+    if ( ($myres->app_workunit_target_nresults>0) AND !($myres->workunit_canonical_resultid) AND !($myres->workunit_error_mask) AND !($myres->dontsuppresspending) ) {
+        print bts('Tasks are pending for this workunit.', array(), NULL, 'boinc:tasks-pending');
+    } else {
+        print views_embed_view('boinc_workunit_tasks_all', $display_id = 'page_1', arg(1));
+    }
+  ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-account-tasks-all--id.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-account-tasks-all--id.tpl.php
new file mode 100644
index 0000000..2b75f3d
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-account-tasks-all--id.tpl.php
@@ -0,0 +1,25 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php // Fix wrapping issue in Firefox (see DBOINCP-244) - replaced span tag with div ?>
+<div class="task-name">
+  <?php print l($row->result_name, "task/{$row->id}"); ?>
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--ops.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--ops.tpl.php
new file mode 100644
index 0000000..6c438ec
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--ops.tpl.php
@@ -0,0 +1,26 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php if ($output): ?>
+<ul class="tab-list">
+  <li class="first last alt tab"><?php print $output; ?></li>
+</ul>
+<?php endif;  ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page--uid.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page--uid.tpl.php
new file mode 100644
index 0000000..d3e081f
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page--uid.tpl.php
@@ -0,0 +1,26 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php if ($output): ?>
+  <ul class="tab-list">
+    <li class="first last alt tab"><?php print $output; ?></li>
+  </ul>
+<?php endif; ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page-2--ops.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page-2--ops.tpl.php
new file mode 100644
index 0000000..6aebd27
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page-2--ops.tpl.php
@@ -0,0 +1,22 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php print $output; ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page-2--uid.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page-2--uid.tpl.php
new file mode 100644
index 0000000..6aebd27
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-friends--page-2--uid.tpl.php
@@ -0,0 +1,22 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php print $output; ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-host-tasks-all--id.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-host-tasks-all--id.tpl.php
new file mode 100644
index 0000000..2b75f3d
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-host-tasks-all--id.tpl.php
@@ -0,0 +1,25 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php // Fix wrapping issue in Firefox (see DBOINCP-244) - replaced span tag with div ?>
+<div class="task-name">
+  <?php print l($row->result_name, "task/{$row->id}"); ?>
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-disk-usage.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-disk-usage.tpl.php
new file mode 100644
index 0000000..a5c9a87
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-disk-usage.tpl.php
@@ -0,0 +1,22 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php print round($row->result_peak_disk_usage/(1000000), 2); ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-swap-size.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-swap-size.tpl.php
new file mode 100644
index 0000000..381279a
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-swap-size.tpl.php
@@ -0,0 +1,22 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php print round($row->result_peak_swap_size/(1000000), 2); ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-working-set-size.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-working-set-size.tpl.php
new file mode 100644
index 0000000..57af32c
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-task--peak-working-set-size.tpl.php
@@ -0,0 +1,22 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php print round($row->result_peak_working_set_size/(1000000), 2); ?>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-workunit-tasks-all--id.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-workunit-tasks-all--id.tpl.php
new file mode 100644
index 0000000..2b75f3d
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-field--boinc-workunit-tasks-all--id.tpl.php
@@ -0,0 +1,25 @@
+<?php
+ /**
+  * This template is used to print a single field in a view. It is not
+  * actually used in default Views, as this is registered as a theme
+  * function which has better performance. For single overrides, the
+  * template is perfectly okay.
+  *
+  * Variables available:
+  * - $view: The view object
+  * - $field: The field handler object that can process the input
+  * - $row: The raw SQL result that can be used
+  * - $output: The processed output that will normally be used.
+  *
+  * When fetching output from the $row, this construct should be used:
+  * $data = $row->{$field->field_alias}
+  *
+  * The above will guarantee that you'll always get the correct data,
+  * regardless of any changes in the aliasing that might happen if
+  * the view is modified.
+  */
+?>
+<?php // Fix wrapping issue in Firefox (see DBOINCP-244) - replaced span tag with div ?>
+<div class="task-name">
+  <?php print l($row->result_name, "task/{$row->id}"); ?>
+</div>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-fields--boinc-account-stats--panel-pane-1.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-fields--boinc-account-stats--panel-pane-1.tpl.php
new file mode 100644
index 0000000..36ba505
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-fields--boinc-account-stats--panel-pane-1.tpl.php
@@ -0,0 +1,21 @@
+<ul class="stats tab-list">
+  <li class="first tab">
+    <label><?php echo $fields['total_credit']->label; ?>:</label>
+    <span class="field-content"><?php echo $fields['total_credit']->content; ?></span>
+  </li>
+  <li class="last tab">
+    <label><?php echo $fields['expavg_credit']->label; ?>:</label>
+    <span class="field-content"><?php echo $fields['expavg_credit']->content; ?></span>
+  </li>
+  <?php /*
+  <li class="tab">
+    <label><?php echo $fields['nothing_4']->label; ?></label>
+    <span class="field-content"><?php echo $fields['nothing_4']->content; ?></span>
+  </li>
+  */ ?>
+  <li class="first alt tab">
+    <label><?php echo $fields['nothing']->label; ?></label>
+    <span class="field-content"><?php echo $fields['nothing']->content; ?></span>
+  </li>
+</ul>
+<div class="chart"><?php echo $fields['phpcode']->content; ?></div>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-fields--boinc-friends--block-1.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-fields--boinc-friends--block-1.tpl.php
new file mode 100644
index 0000000..91e684a
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-fields--boinc-friends--block-1.tpl.php
@@ -0,0 +1,3 @@
+<a href="<?php echo url('account/' . $fields['uid']->content); ?>" title="<?php echo $fields['name']->content; ?>">
+  <?php echo $fields['field_image_fid']->content; ?>
+</a>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-rss--news.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-rss--news.tpl.php
new file mode 100644
index 0000000..cf0bd66
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-rss--news.tpl.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file views-view-rss.tpl.php
+ * Default template for feed displays that use the RSS style.
+ *
+ * @ingroup views_templates
+ */
+ 
+ // Set the feed description. Note that the title is set in the News view...
+ // that works there, this works here. Setting title here does not set the
+ // title in the RSS auto discovery link on the front page, and setting the
+ // description in the view does not allow the site_name variable.
+ $site_name = variable_get('site_name', 'BOINC');
+ $description = bts('The latest news from the @site_name project',
+    array('@site_name' => $site_name), NULL, 'boinc:rss-feed-description');
+  
+?>
+<?php print "<?xml"; ?> version="1.0" encoding="utf-8" <?php print "?>"; ?>
+<rss version="2.0" xml:base="<?php print $link; ?>"<?php print $namespaces; ?>>
+  <channel>
+    <title><?php print $title; ?></title>
+    <link><?php print $link; ?></link>
+    <description><?php print $description; ?></description>
+    <language><?php print $langcode; ?></language>
+    <?php print $channel_elements; ?>
+    <?php print $items; ?>
+  </channel>
+</rss>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-table--boinc-account-computers--panel-pane-1.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-table--boinc-account-computers--panel-pane-1.tpl.php
new file mode 100644
index 0000000..e6e1fbb
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-table--boinc-account-computers--panel-pane-1.tpl.php
@@ -0,0 +1,40 @@
+<?php
+  global $base_path;
+  // If a host hasn't been active in 30 days, set class to inactive
+  $inactive_threshold = time() - (30 * 24 * 60 * 60);
+?>
+
+<script>
+  $(document).ready(function() {
+    $("tr.link").click(function() {
+      window.location = $(this).attr("dest");
+    });
+  });
+</script>
+
+<table>
+<thead>
+  <tr>
+    <th><?php print bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'); ?></th>
+    <th class="numeric"><?php print bts('Avg credit', array(), NULL, 'boinc:account-dashboard'); ?></th>
+    <th class="numeric"><?php print bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits'); ?></th>
+  </tr>
+</thead>
+<tbody>
+  <?php foreach ($rows as $row): ?>
+    <tr class="link <?php print ($row['rpc_time'] < $inactive_threshold) ? 'inactive' : ''; ?>" dest="<?php print $base_path; ?>host/<?php print $row['id']; ?>">
+      <td><?php print l($row['domain_name'], "host/{$row['id']}"); ?>
+      <td class="numeric"><?php print $row['expavg_credit']; ?>
+      <td class="numeric"><?php print $row['total_credit']; ?>
+    </tr>
+  <?php endforeach; ?>
+</tbody>
+</table>
+<ul class="more-link tab-list">
+  <li class="first tab">
+    <?php print l(bts('More', array(), NULL, 'boinc:account-dashboard'), 'account/computers'); ?>
+  </li>
+  <li class="first alt tab">
+    <?php print l(bts('Tasks', array(), NULL, 'boinc:host-tasks-link'), 'account/tasks/active'); ?>
+  </li>
+</ul>
\ No newline at end of file
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-table--boinc-team-forum-topics.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-table--boinc-team-forum-topics.tpl.php
new file mode 100644
index 0000000..e81430f
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-table--boinc-team-forum-topics.tpl.php
@@ -0,0 +1,107 @@
+<?php
+/**
+ * @file views-view-table.tpl.php
+ * Template to display a view as a table.
+ *
+ * - $title : The title of this group of rows.  May be empty.
+ * - $header: An array of header labels keyed by field id.
+ * - $fields: An array of CSS IDs to use for each field id.
+ * - $class: A class or classes to apply to the table, based on settings.
+ * - $row_classes: An array of classes to apply to each row, indexed by row
+ *   number. This matches the index in $rows.
+ * - $rows: An array of row items. Each row is an array of content.
+ *   $rows are keyed by row number, fields within rows are keyed by field ID.
+ * @ingroup views_templates
+ */
+?>
+<?php
+  
+  $sort_by = isset($_GET['order']) ? $_GET['order'] : NULL;
+  $sort_order = isset($_GET['sort']) ? $_GET['sort'] : 'asc';
+  
+  $team_forum_id = arg(4);
+  
+  $topics = $rows;
+  
+  // Get the count of topics on this page
+  $topic_count = count($topics);
+  $topic_index = 0;
+  $first_non_sticky = FALSE;
+?>
+
+<table id="forum-topic-<?php print $team_forum_id; ?>">
+  
+  <thead>
+    <tr>
+      <th></th>
+      <th class="views-field views-field-title<?php print ($sort_by == 'title') ? " sort-{$sort_order}" : NULL; ?>"><?php print $header['title']; ?></th>
+      <th class="views-field views-field-comment-count<?php print ($sort_by == 'comment_count') ? " sort-{$sort_order}" : NULL; ?>"><?php print $header['comment_count']; ?></th>
+      <th class="views-field views-field-created<?php print ($sort_by == 'created') ? " sort-{$sort_order}" : NULL; ?>"><?php print $header['created']; ?></th>
+      <th class="views-field views-field-last-comment-timestamp<?php print ($sort_by == 'last_comment_timestamp') ? " sort-{$sort_order}" : NULL; ?>"><?php print $header['last_comment_timestamp']; ?></th>
+    </tr>
+  </thead>
+  <tbody>
+  <?php foreach ($topics as $id => $topic): ?>
+    <?php
+      $topic = (object) $topic;
+      $author = user_load($topic->uid);
+      $topic_index++;
+      $row_class = 'topic ' . $topic->zebra;
+      if ($topic_index == 1) {
+        $row_class .= ' first';
+      }
+      if ($result[$id]->node_boincteam_forum_node_sticky) {
+        $row_class .= ' sticky';
+      }
+      elseif (!$first_non_sticky AND !($result[$id]->node_boincteam_forum_node_sticky)) {
+        $row_class .= ' first-non-sticky';
+        $first_non_sticky = TRUE;
+      }
+      if ($topic_index == $topic_count) {
+        $row_class .= ' last';
+      }
+      if (!empty($topic->timestamp) OR $topic->new_comments) {
+        $row_class .= ' updated';
+      }
+    ?>
+    <tr class="<?php print $row_class;?>">
+      <td class="icon"><?php //print $topic->icon; ?>
+        <?php if ($result[$id]->node_boincteam_forum_node_sticky): ?>
+          <span class='fa fa-thumb-tack'></span>
+        <?php endif; ?>
+        <?php if ($result[$id]->node_boincteam_forum_node_comment != COMMENT_NODE_READ_WRITE): ?>
+          <span class='fa fa-lock'></span>
+        <?php endif; ?>
+        <?php if (!empty($topic->timestamp)): ?>
+            <span class='fa fa-star-o'></span>
+        <?php elseif ($topic->new_comments): ?>
+            <span class='fa fa-bell-o'></span>
+        <?php endif; ?>
+      </td>
+      <td class="title" title="<?php print $author->boincuser_name; ?>">
+        <?php print $topic->title; ?>
+      </td>
+    <?php if ($topic->moved): ?>
+      <td colspan="3"><?php print $topic->message; ?></td>
+    <?php else: ?>
+      <td class="replies">
+        <?php if ($topic->new_comments): ?>
+          <?php preg_match_all('/<a[^>]+href=([\'"])(.+?)\1[^>]*>/i', $topic->new_comments, $myresult); ?>
+          <a href="<?php print $myresult[2][0]; ?>">
+        <?php endif; ?>
+        <?php print $topic->comment_count; ?>
+        <?php if ($topic->new_comments): ?>
+          </a>           
+        <?php endif; ?>
+      </td>
+      <td class="created">
+        <?php print $topic->created; ?></td>
+      <td class="last-reply">
+        <?php print $topic->last_comment_timestamp; ?>
+      </td>
+    <?php endif; ?>
+    </tr>
+  <?php endforeach; ?>
+  </tbody>
+</table>
+<?php print $pager; ?>
diff --git a/drupal/sites/default/boinc/themes/boinc/templates/views-view-table.tpl.php b/drupal/sites/default/boinc/themes/boinc/templates/views-view-table.tpl.php
new file mode 100644
index 0000000..9faa59b
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/templates/views-view-table.tpl.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * @file views-view-table.tpl.php
+ * Template to display a view as a table.
+ *
+ * - $title : The title of this group of rows.  May be empty.
+ * - $header: An array of header labels keyed by field id.
+ * - $fields: An array of CSS IDs to use for each field id.
+ * - $class: A class or classes to apply to the table, based on settings.
+ * - $row_classes: An array of classes to apply to each row, indexed by row
+ *   number. This matches the index in $rows.
+ * - $rows: An array of row items. Each row is an array of content.
+ *   $rows are keyed by row number, fields within rows are keyed by field ID.
+ * @ingroup views_templates
+ */
+?>
+<?php
+  
+  $sort_by = isset($_GET['order']) ? $_GET['order'] : NULL;
+  $sort_order = isset($_GET['sort']) ? $_GET['sort'] : 'asc';
+  
+?>
+<table class="<?php print $class; ?>"<?php print $attributes; ?>>
+  <?php if (!empty($title)) : ?>
+    <caption><?php print $title; ?></caption>
+  <?php endif; ?>
+  <thead>
+    <tr>
+      <?php foreach ($header as $field => $label): ?>
+        <?php 
+          /*if (!$sort_by) {
+            // TODO: Should this be the default...?
+            $sort_by = $field;
+          }*/
+          $sort_class = ($sort_by == $field) ? " sort-{$sort_order}" : NULL;
+        ?>
+        <th class="views-field views-field-<?php print $fields[$field]; ?><?php print $sort_class; ?>">
+          <?php print $label; ?>
+        </th>
+      <?php endforeach; ?>
+    </tr>
+  </thead>
+  <tbody>
+    <?php foreach ($rows as $count => $row): ?>
+      <tr class="<?php print implode(' ', $row_classes[$count]); ?>">
+        <?php foreach ($row as $field => $content): ?>
+          <td class="views-field views-field-<?php print $fields[$field]; ?>">
+            <?php print $content; ?>
+          </td>
+        <?php endforeach; ?>
+      </tr>
+    <?php endforeach; ?>
+  </tbody>
+</table>
diff --git a/drupal/sites/default/boinc/themes/boinc/theme-settings.php b/drupal/sites/default/boinc/themes/boinc/theme-settings.php
new file mode 100644
index 0000000..7d3b4c0
--- /dev/null
+++ b/drupal/sites/default/boinc/themes/boinc/theme-settings.php
@@ -0,0 +1,56 @@
+<?php
+// $Id: theme-settings.php,v 1.7 2008/09/11 09:36:50 johnalbin Exp $
+
+// Include the definition of zen_settings() and zen_theme_get_default_settings().
+include_once './' . drupal_get_path('theme', 'zen') . '/theme-settings.php';
+
+
+/**
+ * Implementation of THEMEHOOK_settings() function.
+ *
+ * @param $saved_settings
+ *   An array of saved settings for this theme.
+ * @return
+ *   A form array.
+ */
+function boinc_settings($saved_settings) {
+
+  // Get the default values from the .info file.
+  $defaults = zen_theme_get_default_settings('boinc');
+
+  // Merge the saved variables and their default values.
+  $settings = array_merge($defaults, $saved_settings);
+
+  /*
+   * Create the form using Forms API: http://api.drupal.org/api/6
+   */
+  $form = array();
+  $form['boinc_stats_charts'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Chart settings'),
+    '#attributes' => array(
+      'class' => 'zen-settings',
+    ),
+  );
+  $form['boinc_stats_charts']['boinc_stats_chart_color'] = array(
+    '#type'          => 'textfield',
+    '#title'         => t('Chart color'),
+    '#default_value' => $settings['boinc_stats_chart_color'],
+    '#description'   => t('The primary color of the stats chart in hex format (e.g. #FAA341).'),
+  );
+  $form['boinc_stats_charts']['boinc_stats_chart_bcolor'] = array(
+    '#type'          => 'textfield',
+    '#title'         => t('Chart background color'),
+    '#default_value' => $settings['boinc_stats_chart_bcolor'],
+    '#description'   => t('The background color of the stats chart in hex format (e.g. #FFFFFF).'),
+  );
+
+  // Add the base theme's settings.
+  $form += zen_settings($saved_settings, $defaults);
+
+  // Remove some of the base theme's settings.
+  unset($form['themedev']['zen_layout']); // We don't need to select the base stylesheet.
+
+  // Return the form
+  return $form;
+}
diff --git a/drupal/sites/default/files b/drupal/sites/default/files
new file mode 120000
index 0000000..1bae6df
--- /dev/null
+++ b/drupal/sites/default/files
@@ -0,0 +1 @@
+project/files/
\ No newline at end of file
diff --git a/drupal/sites/default/modules/boinc b/drupal/sites/default/modules/boinc
new file mode 120000
index 0000000..cbede19
--- /dev/null
+++ b/drupal/sites/default/modules/boinc
@@ -0,0 +1 @@
+../boinc/modules/
\ No newline at end of file
diff --git a/drupal/sites/default/modules/project b/drupal/sites/default/modules/project
new file mode 120000
index 0000000..845aa5e
--- /dev/null
+++ b/drupal/sites/default/modules/project
@@ -0,0 +1 @@
+../project/modules/
\ No newline at end of file
diff --git a/drupal/sites/default/settings.php b/drupal/sites/default/settings.php
new file mode 100644
index 0000000..baf84b0
--- /dev/null
+++ b/drupal/sites/default/settings.php
@@ -0,0 +1,179 @@
+<?php
+// $Id: settings.php,v 1.39.2.3 2007/07/09 04:28:12 drumm Exp $
+
+/**
+ * @file
+ * Drupal site-specific configuration file.
+ *
+ * IMPORTANT NOTE:
+ * This file may have been set to read-only by the Drupal installation
+ * program. If you make changes to this file, be sure to protect it again
+ * after making your modifications. Failure to remove write permissions
+ * to this file is a security risk.
+ *
+ * The configuration file to be loaded is based upon the rules below.
+ *
+ * The configuration directory will be discovered by stripping the
+ * website's hostname from left to right and pathname from right to
+ * left. The first configuration file found will be used and any
+ * others will be ignored. If no other configuration file is found
+ * then the default configuration file at 'sites/default' will be used.
+ *
+ * For example, for a fictitious site installed at
+ * http://www.drupal.org/mysite/test/, the 'settings.php'
+ * is searched in the following directories:
+ *
+ *  1. sites/www.drupal.org.mysite.test
+ *  2. sites/drupal.org.mysite.test
+ *  3. sites/org.mysite.test
+ *
+ *  4. sites/www.drupal.org.mysite
+ *  5. sites/drupal.org.mysite
+ *  6. sites/org.mysite
+ *
+ *  7. sites/www.drupal.org
+ *  8. sites/drupal.org
+ *  9. sites/org
+ *
+ * 10. sites/default
+ *
+ * If you are installing on a non-standard port number, prefix the
+ * hostname with that number. For example,
+ * http://www.drupal.org:8080/mysite/test/ could be loaded from
+ * sites/8080.www.drupal.org.mysite.test/.
+ */
+
+/**
+ * Database settings:
+ *
+ * Note that the $db_url variable gets parsed using PHP's built-in
+ * URL parser (i.e. using the "parse_url()" function) so make sure
+ * not to confuse the parser. If your username, password
+ * or database name contain characters used to delineate
+ * $db_url parts, you can escape them via URI hex encodings:
+ *
+ *   : = %3a   / = %2f   @ = %40
+ *   + = %2b   ( = %28   ) = %29
+ *   ? = %3f   = = %3d   & = %26
+ *
+ * To specify multiple connections to be used in your site (i.e. for
+ * complex custom modules) you can also specify an associative array
+ * of $db_url variables with the 'default' element used until otherwise
+ * requested.
+ *
+ * You can optionally set prefixes for some or all database table names
+ * by using the $db_prefix setting. If a prefix is specified, the table
+ * name will be prepended with its value. Be sure to use valid database
+ * characters only, usually alphanumeric and underscore. If no prefixes
+ * are desired, leave it as an empty string ''.
+ *
+ * To have all database names prefixed, set $db_prefix as a string:
+ *
+ *   $db_prefix = 'main_';
+ *
+ * To provide prefixes for specific tables, set $db_prefix as an array.
+ * The array's keys are the table names and the values are the prefixes.
+ * The 'default' element holds the prefix for any tables not specified
+ * elsewhere in the array. Example:
+ *
+ *   $db_prefix = array(
+ *     'default'   => 'main_',
+ *     'users'     => 'shared_',
+ *     'sessions'  => 'shared_',
+ *     'role'      => 'shared_',
+ *     'authmap'   => 'shared_',
+ *     'sequences' => 'shared_',
+ *   );
+ *
+ * Database URL format:
+ *   $db_url = 'mysql://username:password@localhost/databasename';
+ *   $db_url = 'mysqli://username:password@localhost/databasename';
+ *   $db_url = 'pgsql://username:password@localhost/databasename';
+ */
+require_once('dbconfig.php');
+if (!isset($dbserver) || empty($dbserver))
+  $dbserver='localhost';
+$db_url = array(
+  'default' => "{$dbtype}://{$dbuser}:".urlencode($dbpass)."@{$dbserver}/{$dbname}",
+  'boinc' => "{$boinc_dbtype}://{$boinc_dbuser}:".urlencode($boinc_dbpass)."@{$boinc_dbserver}/{$boinc_dbname}"
+);
+$db_prefix = '';
+
+/**
+ * Base URL (optional).
+ *
+ * If you are experiencing issues with different site domains,
+ * uncomment the Base URL statement below (remove the leading hash sign)
+ * and fill in the URL to your Drupal installation.
+ *
+ * You might also want to force users to use a given domain.
+ * See the .htaccess file for more information.
+ *
+ * Examples:
+ *   $base_url = 'http://www.example.com';
+ *   $base_url = 'http://www.example.com:8888';
+ *   $base_url = 'http://www.example.com/drupal';
+ *   $base_url = 'https://www.example.com:8888/drupal';
+ *
+ * It is not allowed to have a trailing slash; Drupal will add it
+ * for you.
+ */
+# $base_url = 'http://www.example.com';  // NO trailing slash!
+if (stream_resolve_include_path('baseurl.php')) {
+  include_once('baseurl.php');
+}
+
+/**
+ * PHP settings:
+ *
+ * To see what PHP settings are possible, including whether they can
+ * be set at runtime (ie., when ini_set() occurs), read the PHP
+ * documentation at http://www.php.net/manual/en/ini.php#ini.list
+ * and take a look at the .htaccess file to see which non-runtime
+ * settings are used there. Settings defined here should not be
+ * duplicated there so as to avoid conflict issues.
+ */
+ini_set('arg_separator.output',     '&');
+ini_set('magic_quotes_runtime',     0);
+ini_set('magic_quotes_sybase',      0);
+ini_set('session.cache_expire',     200000);
+ini_set('session.cache_limiter',    'none');
+ini_set('session.cookie_lifetime',  2000000);
+ini_set('session.gc_maxlifetime',   200000);
+ini_set('session.save_handler',     'user');
+ini_set('session.use_only_cookies', 1);
+ini_set('session.use_trans_sid',    0);
+ini_set('url_rewriter.tags',        '');
+ini_set('memory_limit', '128M');
+ini_set('post_max_size', '8MB');
+ini_set('upload_max_filesize', '8MB');
+
+/**
+ * Drupal automatically generates a unique session cookie name for each site
+ * based on on its full domain name. If you have multiple domains pointing at
+ * the same Drupal site, you can either redirect them all to a single domain
+ * (see comment in .htaccess), or uncomment the line below and specify their
+ * shared base domain. Doing so assures that users remain logged in as they
+ * cross between your various domains.
+ */
+# $cookie_domain = 'example.com';
+
+/**
+ * Variable overrides:
+ *
+ * To override specific entries in the 'variable' table for this site,
+ * set them here. You usually don't need to use this feature. This is
+ * useful in a configuration file for a vhost or directory, rather than
+ * the default settings.php. Any configuration setting from the 'variable'
+ * table can be given a new value.
+ *
+ * Remove the leading hash signs to enable.
+ */
+# $conf = array(
+#   'site_name' => 'My Drupal site',
+#   'theme_default' => 'minnelli',
+#   'anonymous' => 'Visitor',
+# );
+$conf = array(
+  'maintenance_theme' => 'einstein',
+);
diff --git a/drupal/sites/default/themes/boinc b/drupal/sites/default/themes/boinc
new file mode 120000
index 0000000..7dff184
--- /dev/null
+++ b/drupal/sites/default/themes/boinc
@@ -0,0 +1 @@
+../boinc/themes/
\ No newline at end of file
diff --git a/drupal/sites/default/themes/project b/drupal/sites/default/themes/project
new file mode 120000
index 0000000..a403c5d
--- /dev/null
+++ b/drupal/sites/default/themes/project
@@ -0,0 +1 @@
+../project/themes/
\ No newline at end of file
diff --git a/gl.py b/gl.py
new file mode 100644
index 0000000..34ec1d7
--- /dev/null
+++ b/gl.py
@@ -0,0 +1,16 @@
+# This file is part of BOINC.
+# http://boinc.berkeley.edu
+# Copyright (C) 2017 University of California
+#
+# BOINC is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation,
+# either version 3 of the License, or (at your option) any later version.
+#
+# BOINC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/html/drupal/home b/html/drupal/home
deleted file mode 100644
index 2ff8959..0000000
--- a/html/drupal/home
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-$original_cwd = getcwd();
-chdir('includes/boinc');
-require_once('user.inc');
-
-function display_account($userid) {
-    $user = BoincUser::lookup_id($userid);
-    if (!$user) {
-        echo "<h3>No such user</h3>\n";
-        return;
-    }
-    show_account_private($user);
-}
-
-$userid = arg(2);
-if (!$userid) $userid = 1;
-$userid = 1;
-
-display_account($userid);
-
-chdir($original_cwd);
-?>
diff --git a/html/drupal/hosts_user b/html/drupal/hosts_user
deleted file mode 100644
index f6c605f..0000000
--- a/html/drupal/hosts_user
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-$original_cwd = getcwd();
-chdir('includes/boinc');
-require_once('host.inc');
-
-function display_hosts($userid) {
-    $user = BoincUser::lookup_id($userid);
-    if (!$user) {
-        echo "<h3>No such user</h3>\n";
-        return;
-    }
-    show_user_hosts($userid, true, true, "total_credit", false);
-}
-
-$userid = arg(2);
-if (!$userid) $userid = 1;
-$userid = 1;
-
-display_host($userid);
-
-chdir($original_cwd);
-?>
diff --git a/html/drupal/view_profile b/html/drupal/view_profile
deleted file mode 100644
index 0611beb..0000000
--- a/html/drupal/view_profile
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-$original_cwd = getcwd();
-chdir('includes/boinc');
-require_once('profile.inc');
-
-function display_profile($userid) {
-    $user = BoincUser::lookup_id($userid);
-    if (!$user) {
-        echo "<h3>No such user</h3>\n";
-        return;
-    }
-    $profile = get_profile($userid);
-    if (!$profile) {
-        echo "<h3>No profile exists for that user ID $userid</h3>";
-        return;
-    }
-    echo "<table>";
-    show_profile($user, null);
-    echo "</table>";
-}
-
-$userid = arg(2);
-if (!$userid) $userid = 1;
-$userid = 1;
-
-display_profile($userid);
-
-chdir($original_cwd);
-?>
diff --git a/html/inc/ReCaptcha/ReCaptcha.php b/html/inc/ReCaptcha/ReCaptcha.php
new file mode 100644
index 0000000..7139fae
--- /dev/null
+++ b/html/inc/ReCaptcha/ReCaptcha.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha;
+
+/**
+ * reCAPTCHA client.
+ */
+class ReCaptcha
+{
+    /**
+     * Version of this client library.
+     * @const string
+     */
+    const VERSION = 'php_1.1.2';
+
+    /**
+     * Shared secret for the site.
+     * @var type string
+     */
+    private $secret;
+
+    /**
+     * Method used to communicate with service. Defaults to POST request.
+     * @var RequestMethod
+     */
+    private $requestMethod;
+
+    /**
+     * Create a configured instance to use the reCAPTCHA service.
+     *
+     * @param string $secret shared secret between site and reCAPTCHA server.
+     * @param RequestMethod $requestMethod method used to send the request. Defaults to POST.
+     */
+    public function __construct($secret, RequestMethod $requestMethod = null)
+    {
+        if (empty($secret)) {
+            throw new \RuntimeException('No secret provided');
+        }
+
+        if (!is_string($secret)) {
+            throw new \RuntimeException('The provided secret must be a string');
+        }
+
+        $this->secret = $secret;
+
+        if (!is_null($requestMethod)) {
+            $this->requestMethod = $requestMethod;
+        } else {
+            $this->requestMethod = new RequestMethod\Post();
+        }
+    }
+
+    /**
+     * Calls the reCAPTCHA siteverify API to verify whether the user passes
+     * CAPTCHA test.
+     *
+     * @param string $response The value of 'g-recaptcha-response' in the submitted form.
+     * @param string $remoteIp The end user's IP address.
+     * @return Response Response from the service.
+     */
+    public function verify($response, $remoteIp = null)
+    {
+        // Discard empty solution submissions
+        if (empty($response)) {
+            $recaptchaResponse = new Response(false, array('missing-input-response'));
+            return $recaptchaResponse;
+        }
+
+        $params = new RequestParameters($this->secret, $response, $remoteIp, self::VERSION);
+        $rawResponse = $this->requestMethod->submit($params);
+        return Response::fromJson($rawResponse);
+    }
+}
diff --git a/html/inc/ReCaptcha/RequestMethod.php b/html/inc/ReCaptcha/RequestMethod.php
new file mode 100644
index 0000000..fc4dde5
--- /dev/null
+++ b/html/inc/ReCaptcha/RequestMethod.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha;
+
+/**
+ * Method used to send the request to the service.
+ */
+interface RequestMethod
+{
+
+    /**
+     * Submit the request with the specified parameters.
+     *
+     * @param RequestParameters $params Request parameters
+     * @return string Body of the reCAPTCHA response
+     */
+    public function submit(RequestParameters $params);
+}
diff --git a/html/inc/ReCaptcha/RequestMethod/Curl.php b/html/inc/ReCaptcha/RequestMethod/Curl.php
new file mode 100644
index 0000000..20ee530
--- /dev/null
+++ b/html/inc/ReCaptcha/RequestMethod/Curl.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha\RequestMethod;
+
+/**
+ * Convenience wrapper around the cURL functions to allow mocking.
+ */
+class Curl
+{
+
+    /**
+     * @see http://php.net/curl_init
+     * @param string $url
+     * @return resource cURL handle
+     */
+    public function init($url = null)
+    {
+        return curl_init($url);
+    }
+
+    /**
+     * @see http://php.net/curl_setopt_array
+     * @param resource $ch
+     * @param array $options
+     * @return bool
+     */
+    public function setoptArray($ch, array $options)
+    {
+        return curl_setopt_array($ch, $options);
+    }
+
+    /**
+     * @see http://php.net/curl_exec
+     * @param resource $ch
+     * @return mixed
+     */
+    public function exec($ch)
+    {
+        return curl_exec($ch);
+    }
+
+    /**
+     * @see http://php.net/curl_close
+     * @param resource $ch
+     */
+    public function close($ch)
+    {
+        curl_close($ch);
+    }
+}
diff --git a/html/inc/ReCaptcha/RequestMethod/CurlPost.php b/html/inc/ReCaptcha/RequestMethod/CurlPost.php
new file mode 100644
index 0000000..e06d1cc
--- /dev/null
+++ b/html/inc/ReCaptcha/RequestMethod/CurlPost.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha\RequestMethod;
+
+use ReCaptcha\RequestMethod;
+use ReCaptcha\RequestParameters;
+
+/**
+ * Sends cURL request to the reCAPTCHA service.
+ * Note: this requires the cURL extension to be enabled in PHP
+ * @see http://php.net/manual/en/book.curl.php
+ */
+class CurlPost implements RequestMethod
+{
+    /**
+     * URL to which requests are sent via cURL.
+     * @const string
+     */
+    const SITE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify';
+
+    /**
+     * Curl connection to the reCAPTCHA service
+     * @var Curl
+     */
+    private $curl;
+
+    public function __construct(Curl $curl = null)
+    {
+        if (!is_null($curl)) {
+            $this->curl = $curl;
+        } else {
+            $this->curl = new Curl();
+        }
+    }
+
+    /**
+     * Submit the cURL request with the specified parameters.
+     *
+     * @param RequestParameters $params Request parameters
+     * @return string Body of the reCAPTCHA response
+     */
+    public function submit(RequestParameters $params)
+    {
+        $handle = $this->curl->init(self::SITE_VERIFY_URL);
+
+        $options = array(
+            CURLOPT_POST => true,
+            CURLOPT_POSTFIELDS => $params->toQueryString(),
+            CURLOPT_HTTPHEADER => array(
+                'Content-Type: application/x-www-form-urlencoded'
+            ),
+            CURLINFO_HEADER_OUT => false,
+            CURLOPT_HEADER => false,
+            CURLOPT_RETURNTRANSFER => true,
+            CURLOPT_SSL_VERIFYPEER => true
+        );
+        $this->curl->setoptArray($handle, $options);
+
+        $response = $this->curl->exec($handle);
+        $this->curl->close($handle);
+
+        return $response;
+    }
+}
diff --git a/html/inc/ReCaptcha/RequestMethod/Post.php b/html/inc/ReCaptcha/RequestMethod/Post.php
new file mode 100644
index 0000000..7770d90
--- /dev/null
+++ b/html/inc/ReCaptcha/RequestMethod/Post.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha\RequestMethod;
+
+use ReCaptcha\RequestMethod;
+use ReCaptcha\RequestParameters;
+
+/**
+ * Sends POST requests to the reCAPTCHA service.
+ */
+class Post implements RequestMethod
+{
+    /**
+     * URL to which requests are POSTed.
+     * @const string
+     */
+    const SITE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify';
+
+    /**
+     * Submit the POST request with the specified parameters.
+     *
+     * @param RequestParameters $params Request parameters
+     * @return string Body of the reCAPTCHA response
+     */
+    public function submit(RequestParameters $params)
+    {
+        /**
+         * PHP 5.6.0 changed the way you specify the peer name for SSL context options.
+         * Using "CN_name" will still work, but it will raise deprecated errors.
+         */
+        $peer_key = version_compare(PHP_VERSION, '5.6.0', '<') ? 'CN_name' : 'peer_name';
+        $options = array(
+            'http' => array(
+                'header' => "Content-type: application/x-www-form-urlencoded\r\n",
+                'method' => 'POST',
+                'content' => $params->toQueryString(),
+                // Force the peer to validate (not needed in 5.6.0+, but still works
+                'verify_peer' => true,
+                // Force the peer validation to use www.google.com
+                $peer_key => 'www.google.com',
+            ),
+        );
+        $context = stream_context_create($options);
+        return file_get_contents(self::SITE_VERIFY_URL, false, $context);
+    }
+}
diff --git a/html/inc/ReCaptcha/RequestMethod/Socket.php b/html/inc/ReCaptcha/RequestMethod/Socket.php
new file mode 100644
index 0000000..f51f123
--- /dev/null
+++ b/html/inc/ReCaptcha/RequestMethod/Socket.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha\RequestMethod;
+
+/**
+ * Convenience wrapper around native socket and file functions to allow for
+ * mocking.
+ */
+class Socket
+{
+    private $handle = null;
+
+    /**
+     * fsockopen
+     * 
+     * @see http://php.net/fsockopen
+     * @param string $hostname
+     * @param int $port
+     * @param int $errno
+     * @param string $errstr
+     * @param float $timeout
+     * @return resource
+     */
+    public function fsockopen($hostname, $port = -1, &$errno = 0, &$errstr = '', $timeout = null)
+    {
+        $this->handle = fsockopen($hostname, $port, $errno, $errstr, (is_null($timeout) ? ini_get("default_socket_timeout") : $timeout));
+
+        if ($this->handle != false && $errno === 0 && $errstr === '') {
+            return $this->handle;
+        }
+        return false;
+    }
+
+    /**
+     * fwrite
+     * 
+     * @see http://php.net/fwrite
+     * @param string $string
+     * @param int $length
+     * @return int | bool
+     */
+    public function fwrite($string, $length = null)
+    {
+        return fwrite($this->handle, $string, (is_null($length) ? strlen($string) : $length));
+    }
+
+    /**
+     * fgets
+     * 
+     * @see http://php.net/fgets
+     * @param int $length
+     * @return string
+     */
+    public function fgets($length = null)
+    {
+        return fgets($this->handle, $length);
+    }
+
+    /**
+     * feof
+     * 
+     * @see http://php.net/feof
+     * @return bool
+     */
+    public function feof()
+    {
+        return feof($this->handle);
+    }
+
+    /**
+     * fclose
+     * 
+     * @see http://php.net/fclose
+     * @return bool
+     */
+    public function fclose()
+    {
+        return fclose($this->handle);
+    }
+}
diff --git a/html/inc/ReCaptcha/RequestMethod/SocketPost.php b/html/inc/ReCaptcha/RequestMethod/SocketPost.php
new file mode 100644
index 0000000..4754121
--- /dev/null
+++ b/html/inc/ReCaptcha/RequestMethod/SocketPost.php
@@ -0,0 +1,121 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha\RequestMethod;
+
+use ReCaptcha\RequestMethod;
+use ReCaptcha\RequestParameters;
+
+/**
+ * Sends a POST request to the reCAPTCHA service, but makes use of fsockopen()
+ * instead of get_file_contents(). This is to account for people who may be on
+ * servers where allow_furl_open is disabled.
+ */
+class SocketPost implements RequestMethod
+{
+    /**
+     * reCAPTCHA service host.
+     * @const string
+     */
+    const RECAPTCHA_HOST = 'www.google.com';
+
+    /**
+     * @const string reCAPTCHA service path
+     */
+    const SITE_VERIFY_PATH = '/recaptcha/api/siteverify';
+
+    /**
+     * @const string Bad request error
+     */
+    const BAD_REQUEST = '{"success": false, "error-codes": ["invalid-request"]}';
+
+    /**
+     * @const string Bad response error
+     */
+    const BAD_RESPONSE = '{"success": false, "error-codes": ["invalid-response"]}';
+
+    /**
+     * Socket to the reCAPTCHA service
+     * @var Socket
+     */
+    private $socket;
+
+    /**
+     * Constructor
+     *
+     * @param \ReCaptcha\RequestMethod\Socket $socket optional socket, injectable for testing
+     */
+    public function __construct(Socket $socket = null)
+    {
+        if (!is_null($socket)) {
+            $this->socket = $socket;
+        } else {
+            $this->socket = new Socket();
+        }
+    }
+
+    /**
+     * Submit the POST request with the specified parameters.
+     *
+     * @param RequestParameters $params Request parameters
+     * @return string Body of the reCAPTCHA response
+     */
+    public function submit(RequestParameters $params)
+    {
+        $errno = 0;
+        $errstr = '';
+
+        if (false === $this->socket->fsockopen('ssl://' . self::RECAPTCHA_HOST, 443, $errno, $errstr, 30)) {
+            return self::BAD_REQUEST;
+        }
+
+        $content = $params->toQueryString();
+
+        $request = "POST " . self::SITE_VERIFY_PATH . " HTTP/1.1\r\n";
+        $request .= "Host: " . self::RECAPTCHA_HOST . "\r\n";
+        $request .= "Content-Type: application/x-www-form-urlencoded\r\n";
+        $request .= "Content-length: " . strlen($content) . "\r\n";
+        $request .= "Connection: close\r\n\r\n";
+        $request .= $content . "\r\n\r\n";
+
+        $this->socket->fwrite($request);
+        $response = '';
+
+        while (!$this->socket->feof()) {
+            $response .= $this->socket->fgets(4096);
+        }
+
+        $this->socket->fclose();
+
+        if (0 !== strpos($response, 'HTTP/1.1 200 OK')) {
+            return self::BAD_RESPONSE;
+        }
+
+        $parts = preg_split("#\n\s*\n#Uis", $response);
+
+        return $parts[1];
+    }
+}
diff --git a/html/inc/ReCaptcha/RequestParameters.php b/html/inc/ReCaptcha/RequestParameters.php
new file mode 100644
index 0000000..cb66f26
--- /dev/null
+++ b/html/inc/ReCaptcha/RequestParameters.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha;
+
+/**
+ * Stores and formats the parameters for the request to the reCAPTCHA service.
+ */
+class RequestParameters
+{
+    /**
+     * Site secret.
+     * @var string
+     */
+    private $secret;
+
+    /**
+     * Form response.
+     * @var string
+     */
+    private $response;
+
+    /**
+     * Remote user's IP address.
+     * @var string
+     */
+    private $remoteIp;
+
+    /**
+     * Client version.
+     * @var string
+     */
+    private $version;
+
+    /**
+     * Initialise parameters.
+     *
+     * @param string $secret Site secret.
+     * @param string $response Value from g-captcha-response form field.
+     * @param string $remoteIp User's IP address.
+     * @param string $version Version of this client library.
+     */
+    public function __construct($secret, $response, $remoteIp = null, $version = null)
+    {
+        $this->secret = $secret;
+        $this->response = $response;
+        $this->remoteIp = $remoteIp;
+        $this->version = $version;
+    }
+
+    /**
+     * Array representation.
+     *
+     * @return array Array formatted parameters.
+     */
+    public function toArray()
+    {
+        $params = array('secret' => $this->secret, 'response' => $this->response);
+
+        if (!is_null($this->remoteIp)) {
+            $params['remoteip'] = $this->remoteIp;
+        }
+
+        if (!is_null($this->version)) {
+            $params['version'] = $this->version;
+        }
+
+        return $params;
+    }
+
+    /**
+     * Query string representation for HTTP request.
+     *
+     * @return string Query string formatted parameters.
+     */
+    public function toQueryString()
+    {
+        return http_build_query($this->toArray(), '', '&');
+    }
+}
diff --git a/html/inc/ReCaptcha/Response.php b/html/inc/ReCaptcha/Response.php
new file mode 100644
index 0000000..d2d8a8b
--- /dev/null
+++ b/html/inc/ReCaptcha/Response.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *
+ * @copyright Copyright (c) 2015, Google Inc.
+ * @link      http://www.google.com/recaptcha
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+namespace ReCaptcha;
+
+/**
+ * The response returned from the service.
+ */
+class Response
+{
+    /**
+     * Succes or failure.
+     * @var boolean
+     */
+    private $success = false;
+
+    /**
+     * Error code strings.
+     * @var array
+     */
+    private $errorCodes = array();
+
+    /**
+     * Build the response from the expected JSON returned by the service.
+     *
+     * @param string $json
+     * @return \ReCaptcha\Response
+     */
+    public static function fromJson($json)
+    {
+        $responseData = json_decode($json, true);
+
+        if (!$responseData) {
+            return new Response(false, array('invalid-json'));
+        }
+
+        if (isset($responseData['success']) && $responseData['success'] == true) {
+            return new Response(true);
+        }
+
+        if (isset($responseData['error-codes']) && is_array($responseData['error-codes'])) {
+            return new Response(false, $responseData['error-codes']);
+        }
+
+        return new Response(false);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param boolean $success
+     * @param array $errorCodes
+     */
+    public function __construct($success, array $errorCodes = array())
+    {
+        $this->success = $success;
+        $this->errorCodes = $errorCodes;
+    }
+
+    /**
+     * Is success?
+     *
+     * @return boolean
+     */
+    public function isSuccess()
+    {
+        return $this->success;
+    }
+
+    /**
+     * Get error codes.
+     *
+     * @return array
+     */
+    public function getErrorCodes()
+    {
+        return $this->errorCodes;
+    }
+}
diff --git a/html/inc/account.inc b/html/inc/account.inc
index 3dea844..74f1f98 100644
--- a/html/inc/account.inc
+++ b/html/inc/account.inc
@@ -19,6 +19,7 @@
 // forms for account creation and login
 
 function create_account_form($teamid, $next_url) {
+    global $recaptcha_public_key;
     echo "
         <form action=\"create_account_action.php\" method=\"post\">
         <input type=hidden name=next_url value=\"$next_url\">
@@ -35,18 +36,18 @@ function create_account_form($teamid, $next_url) {
     //
     if (defined('INVITE_CODES')) {
          row2(
-             tra("Invitation Code")."<br><p class=\"text-info\">".tra("A valid invitation code is required to create an account.")."</p>",
-             "<input type=\"text\" name=\"invite_code\" size=\"30\" >"
+             tra("Invitation Code")."<br><small>".tra("A valid invitation code is required to create an account.")."</small>",
+             '<input class="form-control" type="text" name="invite_code" size="30" >'
          );
     }
 
     row2(
-        tra("Name")."<br><p class=\"text-info\">".tra("Identifies you on our web site. Use your real name or a nickname.")."</p>",
-        "<input type=\"text\" name=\"new_name\" size=\"30\">"
+        tra("Name")."<br><small>".tra("Identifies you on our web site. Use your real name or a nickname.")."</small>",
+        '<input class="form-control" type="text" name="new_name" width="10">'
     );
     row2(
-        tra("Email Address")."<br><p class=\"text-info\">".tra("Must be a valid address of the form 'name at domain'.")."</p>",
-        "<input type=\"text\" name=\"new_email_addr\" size=\"50\">"
+        tra("Email Address")."<br><small>".tra("Must be a valid address of the form 'name at domain'.")."</small>",
+        '<input class="form-control" type="text" name="new_email_addr" size="50">'
     );
     $min_passwd_length = parse_element(get_config(), "<min_passwd_length>");
     if (!$min_passwd_length) {
@@ -55,30 +56,32 @@ function create_account_form($teamid, $next_url) {
 
     row2(
         tra("Password")
-        ."<br><p class=\"text-info\">".tra("Must be at least %1 characters", $min_passwd_length)."</p>",
-        "<input type=\"password\" name=\"passwd\">"
+        ."<br><small>".tra("Must be at least %1 characters", $min_passwd_length)."</small>",
+        '<input class="form-control" type="password" name="passwd">'
+    );
+    row2(
+        tra("Confirm password"),
+        '<input class="form-control" type="password" name="passwd2">'
     );
-    row2(tra("Confirm password"), "<input type=\"password\" name=\"passwd2\">");
     row2_init(
-        tra("Country")."<br><p class=\"text-info\">".tra("Select the country you want to represent, if any.")."</p>",
-        "<select name=\"country\">"
+        tra("Country")."<br><small>".tra("Select the country you want to represent, if any.")."</small>",
+        '<select class="form-control" style="width:240px;" name="country">'
     );
-    print_country_select();
+    echo country_select_options();
     echo "</select></td></tr>\n";
-    if (0) {
+    if (POSTAL_CODE) {
         row2(
-            tra("Postal or ZIP Code")."<br><p class=\"text-info\">".tra("Optional")."</p>",
+            tra("Postal or ZIP Code")."<br><small>".tra("Optional")."</small>",
             "<input type=\"text\" name=\"postal_code\" size=\"20\">"
         );
     }
 
-    // Check if we're reCaptcha to prevent spam accounts
+    // Check if we're using reCaptcha to prevent spam accounts
     //
-    $publickey = parse_config(get_config(), "<recaptcha_public_key>");
-    if ($publickey) {
+    if ($recaptcha_public_key) {
         row2(
             "",
-            recaptcha_get_html($publickey)
+            boinc_recaptcha_get_html($recaptcha_public_key)
         );
     }
 
@@ -100,11 +103,12 @@ function login_form($next_url) {
     } else {
         $x = tra("Email address:");
     }
-    row2($x . '<br><p class="text-muted"><a href="get_passwd.php">'.tra("forgot email address?")."</a></p>",
-        "<input name=email_addr type=\"text\" size=40 tabindex=1>"
-    );
-    row2(tra("Password:") . '<br><p class="text-muted"><a href="get_passwd.php">' . tra("forgot password?") . "</a></p>",
-        '<input type="password" name="passwd" size="40" tabindex="2">'
+    if (!parse_bool(get_config(), "no_computing")) {
+        $x .= '<br><small><a href="get_passwd.php">'.tra("forgot email address?")."</a></small>";
+    }
+    row2($x, '<input class="form-control" name=email_addr type="text" size=40 tabindex=1>');
+    row2(tra("Password:") . '<br><small><a href="get_passwd.php">' . tra("forgot password?") . "</a></small>",
+        '<input class="form-control" type="password" name="passwd" size="40" tabindex="2">'
     );
     row2(tra("Stay logged in"),
         '<input type="checkbox" name="stay_logged_in" checked>'
diff --git a/html/inc/akismet.inc b/html/inc/akismet.inc
index b9f5bde..cd435f7 100644
--- a/html/inc/akismet.inc
+++ b/html/inc/akismet.inc
@@ -17,15 +17,15 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 function akismet_check($user, $post) {
+    global $master_url;
     $config = get_config();
     $key = parse_config($config, "<akismet_key>");
     if (!$key) {
         return true;
     }
 
-    $master_url = parse_config($config, "<master_url>");
-    $master_url = urlencode($master_url);
-    $response = akismet_request("key=$key&blog=$master_url", "rest.akismet.com", "/1.1/verify-key");
+    $master_url_enc = urlencode($master_url);
+    $response = akismet_request("key=$key&blog=$master_url_enc", "rest.akismet.com", "/1.1/verify-key");
     if ("valid" == $response[1] ) {
         $post = urlencode($post);
         $ip = urlencode($_SERVER['REMOTE_ADDR']);
@@ -33,7 +33,7 @@ function akismet_check($user, $post) {
         $author = urlencode($user->name);
         $useragent = urlencode($_SERVER['HTTP_USER_AGENT']);
 
-        $request  = "blog=$master_url";
+        $request  = "blog=$master_url_enc";
         $request .= "&user_ip=$ip";
         $request .= "&user_agent=$useragent";
         $request .= "&referrer=$referrer";
diff --git a/html/inc/bbcode_html.inc b/html/inc/bbcode_html.inc
index 2754586..a5bf352 100644
--- a/html/inc/bbcode_html.inc
+++ b/html/inc/bbcode_html.inc
@@ -1,49 +1,28 @@
 <?php
 
-require_once("../inc/translation.inc");
+require_once("../inc/util.inc");
 
 $bbcode_js = "<script type=\"text/javascript\" src=\"bbcode_toolbar.js\"></script>";
 
 $bbcode_html = '
-<table width="40%" border="0" cellspacing="0" cellpadding="2" class="bbcode_buttons">
-          <tr align="center" valign="middle">
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onClick="bbstyle(0)" title="'.tra("Bold text: [b]text[/b]  (alt+b)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onClick="bbstyle(2)" title="'.tra("Italic text: [i]text[/i]  (alt+i)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onClick="bbstyle(4)" title="'.tra("Underline text: [u]text[/u]  (alt+u)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="k" name="addbbcode20" value=" k " style="text-decoration: line-through; width: 30px" onClick="bbstyle(20)" title="'.tra("Strikethrough text: [s]text[/s]  (alt+k)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onClick="bbstyle(6)" title="'.tra("Quote text: [quote]text[/quote]  (alt+q)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onClick="bbstyle(8)" title="'.tra("Code display: [code]code[/code]  (alt+c)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onClick="bbstyle(10)" title="'.tra("List: [list]text[/list] (alt+l)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onClick="bbstyle(12)" title="'.tra("Ordered list: [list=]text[/list]  (alt+o)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="p" name="addbbcode14" value="Img" style="width: 40px"  onClick="bbstyle(14)" title="'.tra("Insert image: [img]http://image_url[/img]  (alt+p)").'" />
-              </span></td>
-            <td><span class="genmed">
-              <input type="button" class="btn btn-default btn-sm" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onClick="bbstyle(16)" title="'.tra("Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)").'" />
-              </span></td>
+          <tr>
+            <td>
+              <input type="button" class="btn btn-default btn-sm" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; " onClick="bbstyle(0)" title="'.tra("Bold text: [b]text[/b]  (alt+b)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; " onClick="bbstyle(2)" title="'.tra("Italic text: [i]text[/i]  (alt+i)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; " onClick="bbstyle(4)" title="'.tra("Underline text: [u]text[/u]  (alt+u)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="k" name="addbbcode20" value=" k " style="text-decoration: line-through; " onClick="bbstyle(20)" title="'.tra("Strikethrough text: [s]text[/s]  (alt+k)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="q" name="addbbcode6" value="Quote" onClick="bbstyle(6)" title="'.tra("Quote text: [quote]text[/quote]  (alt+q)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="c" name="addbbcode8" value="Code" style="" onClick="bbstyle(8)" title="'.tra("Code display: [code]code[/code]  (alt+c)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="l" name="addbbcode10" value="List" style="" onClick="bbstyle(10)" title="'.tra("List: [list]text[/list] (alt+l)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="o" name="addbbcode12" value="List=1" style="" onClick="bbstyle(12)" title="'.tra("Ordered list: [list=1]text[/list]  (alt+o)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="p" name="addbbcode14" value="Img" style=""  onClick="bbstyle(14)" title="'.tra("Insert image: [img]http://image_url[/img]  (alt+p)").'" />
+              <input type="button" class="btn btn-default btn-sm" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; " onClick="bbstyle(16)" title="'.tra("Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)").'" />
+              </td>
           </tr>
           <tr>
-            <td colspan="9">
-              <table width="100%" border="0" cellspacing="0" cellpadding="0">
-                <tr>
-                  <td><nobr><span class="genmed"> '.tra("Font color").':
-                    <select name="addbbcode22" onChange="bbfontstyle(\'[color=\' + this.form.addbbcode22.options[this.form.addbbcode22.selectedIndex].value + \']\', \'[/color]\');this.selectedIndex=0;" title="'.tra("Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000").'" >
+            <td>
+                     '.tra("Font color").':
+                    <select style="color:#000;" name="addbbcode22" onChange="bbfontstyle(\'[color=\' + this.form.addbbcode22.options[this.form.addbbcode22.selectedIndex].value + \']\', \'[/color]\');this.selectedIndex=0;" title="'.tra("Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000").'" >
                       <option style="color:black" value="#000000" class="genmed">'.tra("Default").'</option>
                       <option style="color:darkred" value="darkred" class="genmed">'.tra("Dark Red").'</option>
                       <option style="color:red" value="red" class="genmed">'.tra("Red").'</option>
@@ -57,18 +36,16 @@ $bbcode_html = '
                       <option style="color:darkblue" value="darkblue" class="genmed">'.tra("Dark Blue").'</option>
                       <option style="color:indigo" value="indigo" class="genmed">'.tra("Indigo").'</option>
                       <option style="color:violet" value="violet" class="genmed">'.tra("Violet").'</option>
-                    </select> '.tra("Font size").':
-		    <select name="addbbcode24" onChange="bbfontstyle(\'[size=\' + this.form.addbbcode24.options[this.form.addbbcode24.selectedIndex].value + \']\', \'[/size]\');this.selectedIndex=0;" title="'.tra("Font size: [size=x-small]small text[/size]").'" >
+                    </select>
+                     '.tra("Font size").':
+		    <select style="color:#000;" name="addbbcode24" onChange="bbfontstyle(\'[size=\' + this.form.addbbcode24.options[this.form.addbbcode24.selectedIndex].value + \']\', \'[/size]\');this.selectedIndex=0;" title="'.tra("Font size: [size=x-small]small text[/size]").'" >
                       <option value="12" selected class="genmed">'.tra("Default").'</option>
             	      <option value="9" class="genmed">'.tra("Small").'</option>
                       <option value="12" class="genmed">'.tra("Normal").'</option>
                       <option value="18" class="genmed">'.tra("Large").'</option>
                     </select>
-                    </span></nobr></td>
-                  <td nowrap="nowrap" align="right"><span class="gensmall"><a href="javascript:bbstyle(-1)" class="genmed" title='.tra("Close all open bbCode tags").'>'.tra("Close Tags").'</a></span></td>
-                </tr>
-              </table>
+                   
+                  <a href="javascript:bbstyle(-1)" title='.tra("Close all open bbCode tags").'>'.tra("Close Tags").'</a>
             </td>
           </tr>
-        </table>
 ';
diff --git a/html/inc/boinc_db.inc b/html/inc/boinc_db.inc
index d6d279a..c0d6279 100644
--- a/html/inc/boinc_db.inc
+++ b/html/inc/boinc_db.inc
@@ -16,9 +16,13 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-$d = dirname(__FILE__);
-require_once("$d/db_conn.inc");
-require_once("$d/util_basic.inc");
+function incs() {
+    $d = dirname(__FILE__);
+    require_once("$d/db_conn.inc");
+    require_once("$d/util_basic.inc");
+}
+
+incs();
 
 class BoincDb extends DbConn {
     static $instance;
@@ -29,36 +33,84 @@ class BoincDb extends DbConn {
     // BoincDb::get(true);
     // at the top of it.
     //
-    static function get_aux($readonly) {
+    // Specify a $fallback_mode that is used when $readonly is true:
+    // 0: default, use db_user if no replica_db_user is specified,
+    //    first try replica_db_host (if specified) then db_host
+    // 1: only use replica_db_user, first try replica_db_host then db_host
+    // 2: only use replica_db_user, only try replica_db_host
+    // can be set projectwide using <replica_fallback_mode>
+    //
+    static function get_aux($readonly, $fallback_mode = 0) {
         $config = get_config();
         $user = parse_config($config, '<db_user>');
         $passwd = parse_config($config, '<db_passwd>');
         $host = parse_config($config, '<db_host>');
         $replica_host = parse_config($config, '<replica_db_host>');
         $name = parse_config($config, '<db_name>');
+        $fm = parse_config($config, '<replica_fallback_mode>');
+        if ($fm) {
+            // override parameter with config.xml setting
+            $fallback_mode = $fm;
+        }
         if ($host == null) {
             $host = "localhost";
         }
         $instance = new DbConn();
-        if ($readonly && $replica_host) {
-            $x = parse_config($config, '<replica_db_user>');
-            if ($x) $user = $x;
-            $x = parse_config($config, '<replica_db_passwd>');
-            if ($x) $passwd = $x;
-            $x = parse_config($config, '<replica_db_name>');
-            if ($x) $name = $x;
-            $retval = $instance->init_conn($user, $passwd, $replica_host, $name);
-            if ($retval) {
+        if ($readonly) {
+            if (($fallback_mode > 0) && (!$replica_host)) {
+                error_log("BoincDb::get_aux(): <replica_db_host> required for \$fallback_mode > 0 (giving up)");
+                $instance = null;
+                self::$instance = $instance;
+                return $instance;
+            }
+            $u = parse_config($config, '<replica_db_user>');
+            $p = parse_config($config, '<replica_db_passwd>');
+            $n = parse_config($config, '<replica_db_name>');
+            if (($fallback_mode > 0) && (!$u || !$p || !$n)) {
+                error_log("BoincDb::get_aux(): <replica_db_*> required for \$fallback_mode > 0 (giving up)");
+                $instance = null;
                 self::$instance = $instance;
                 return $instance;
+            } else {
+                // use replica user if given or use normal user for $fallback_mode == 0
+                if ($u) $user = $u;
+                if ($p) $passwd = $p;
+                if ($n) $name = $n;
+            }
+            // skip this block if no $replica_host is specified for $fallback_mode == 0
+            if ($replica_host) {
+                $retval = $instance->init_conn(
+                    $user, $passwd, $replica_host, $name, true
+                );
+                if ($retval) {
+                    // needed for places where we do direct queries
+                    if (!$instance->do_query("use $name")) {
+                        error_log("BoincDb::get_aux(): Couldn't select database $name on $replica_host (giving up)");
+                        $instance = null;
+                    }
+                    self::$instance = $instance;
+                    return $instance;
+                } elseif ($fallback_mode == 2) {
+                    // no fallback to master in this case
+                    error_log("BoincDb::get_aux(): Couldn't connect to $user@$replica_host (giving up)");
+                    $instance = null;
+                    self::$instance = $instance;
+                    return $instance;
+                } else {
+                    error_log("BoincDb::get_aux(): Couldn't connect to $user@$replica_host (trying $user@$host next)");
+                }
             }
         }
-        $retval = $instance->init_conn($user, $passwd, $host, $name);
+        $retval = $instance->init_conn($user, $passwd, $host, $name, false);
         if (!$retval) {
             $instance = null;
+            error_log("BoincDb::get_aux(): Couldn't connect to $user@$host (giving up)");
         } else {
-            $instance->do_query("use $name");
-                // needed for places where we do direct queries
+            // needed for places where we do direct queries
+            if (!$instance->do_query("use $name")) {
+                error_log("BoincDb::get_aux(): Couldn't select database $name on $host (giving up)");
+                $instance = null;
+            }
         }
         self::$instance = $instance;
         return $instance;
@@ -68,7 +120,7 @@ class BoincDb extends DbConn {
     // 1) check for a cached connection
     // 2) check whether the "stop_web" trigger file is present
     //
-    static function get($readonly = false) {
+    static function get($readonly = false, $fallback_mode = 0) {
         global $generating_xml;
         if (!isset(self::$instance)) {
             if (web_stopped()) {
@@ -81,7 +133,7 @@ class BoincDb extends DbConn {
                     exit;
                 }
             }
-            self::get_aux($readonly);
+            self::get_aux($readonly, $fallback_mode);
             if (!self::$instance) {
                 if ($generating_xml) {
                     xml_error(-138, "the project's database server is down");
@@ -141,16 +193,12 @@ class BoincUser {
         $email_addr = BoincDb::escape_string($email_addr);
         return self::lookup("email_addr='$email_addr'");
     }
+    // name is not necessarily unique
+    //
     static function lookup_name($name) {
         $name = BoincDb::escape_string($name);
         $users = BoincUser::enum("name='$name'");
-        switch (sizeof($users)) {
-        case 1:
-            return $users[0];
-        case 0:
-            return null;
-        }
-        return -1;
+        return $users;
     }
     static function count($clause) {
         $db = BoincDb::get();
@@ -217,9 +265,9 @@ class BoincTeam {
         $db = BoincDb::get();
         return $db->update($this, 'team', $clause);
     }
-    static function enum($clause, $clause2=null) {
+    static function enum($where_clause, $order_clause=null) {
         $db = BoincDb::get();
-        return $db->enum('team', 'BoincTeam', $clause, $clause2);
+        return $db->enum('team', 'BoincTeam', $where_clause, $order_clause);
     }
     static function lookup($clause) {
         $db = BoincDb::get();
@@ -255,9 +303,9 @@ class BoincTeamDelta {
         $db = BoincDb::get();
         return $db->insert('team_delta', $clause);
     }
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('team_delta', 'BoincTeamDelta', $clause);
+        return $db->enum('team_delta', 'BoincTeamDelta', $where_clause);
     }
 }
 
@@ -274,14 +322,31 @@ class BoincHost {
         $db = BoincDb::get();
         return $db->delete($this, 'host');
     }
-    static function enum($clause, $clause2=null) {
+    static function enum($where_clause, $order_clause=null) {
+        $db = BoincDb::get();
+        return $db->enum('host', 'BoincHost', $where_clause, $order_clause);
+    }
+    static function enum_fields($fields, $where_clause, $order_clause=null) {
         $db = BoincDb::get();
-        return $db->enum('host', 'BoincHost', $clause, $clause2);
+        return $db->enum_fields(
+            'host', 'BoincHost', $fields, $where_clause, $order_clause
+        );
     }
     static function count($clause) {
         $db = BoincDb::get();
         return $db->count('host', $clause);
     }
+    static function lookup_cpid($cpid) {
+        $db = BoincDb::get();
+        $cpid = BoincDb::escape_string($cpid);
+        return $db->lookup('host', 'BoincHost', "host_cpid='$cpid'");
+    }
+    static function insert($clause) {
+        $db = BoincDb::get();
+        $ret = $db->insert('host', $clause);
+        if (!$ret) return $ret;
+        return $db->insert_id();
+    }
 }
 
 class BoincResult {
@@ -289,9 +354,9 @@ class BoincResult {
         $db = BoincDb::get();
         return $db->count('result', $clause);
     }
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('result', 'BoincResult', $clause);
+        return $db->enum('result', 'BoincResult', $where_clause);
     }
 	static function enum_fields($fields, $where_clause, $order_clause) {
         $db = BoincDb::get();
@@ -335,9 +400,9 @@ class BoincWorkunit {
         if (!$ret) return $ret;
         return $db->insert_id();
     }
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('workunit', 'BoincWorkunit', $clause);
+        return $db->enum('workunit', 'BoincWorkunit', $where_clause);
     }
     function update($clause) {
         $db = BoincDb::get();
@@ -362,9 +427,9 @@ class BoincApp {
         $db = BoincDb::get();
         return $db->lookup('app', 'BoincApp', $clause);
     }
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('app', 'BoincApp', $clause);
+        return $db->enum('app', 'BoincApp', $where_clause);
     }
     static function insert($clause) {
         $db = BoincDb::get();
@@ -376,16 +441,16 @@ class BoincApp {
         $db = BoincDb::get();
         return $db->update($this, 'app', $clause);
     }
-    static function sum($field) {
+    static function sum($field, $clause=null) {
         $db = BoincDb::get();
-        return $db->sum('app', $field);
+        return $db->sum('app', $field, $clause);
     }
 }
 
 class BoincAppVersion {
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('app_version', 'BoincAppVersion', $clause);
+        return $db->enum('app_version', 'BoincAppVersion', $where_clause);
     }
     static function lookup($clause) {
         $db = BoincDb::get();
@@ -416,6 +481,14 @@ class BoincProfile {
         $db = BoincDb::get();
         return $db->lookup('profile', 'BoincProfile', $clause);
     }
+    static function lookup_userid($userid) {
+        $db = BoincDb::get();
+        return $db->lookup('profile', 'BoincProfile', 'userid='.$userid);
+    }
+    function update($clause) {
+        $db = BoincDb::get();
+        return $db->update_aux('profile', $clause.' where userid='.$this->userid);
+    }
     static function update_aux($clause) {
         $db = BoincDb::get();
         return $db->update_aux('profile', $clause);
@@ -424,14 +497,18 @@ class BoincProfile {
         $db = BoincDb::get();
         return $db->insert('profile', $clause);
     }
-    static function enum($clause=null, $clause2=null) {
+    static function enum($where_clause=null, $order_clause=null) {
         $db = BoincDb::get();
-        return $db->enum('profile', 'BoincProfile', $clause, $clause2);
+        return $db->enum('profile', 'BoincProfile', $where_clause, $order_clause);
     }
     static function enum_fields($fields, $where_clause=null, $order_clause=null) {
         $db = BoincDb::get();
         return $db->enum_fields('profile', 'BoincProfile', $fields, $where_clause, $order_clause);
     }
+    function delete() {
+        $db = BoincDb::get();
+        return $db->delete_aux('profile', 'userid='.$this->userid);
+    }
     static function delete_aux($clause) {
         $db = BoincDb::get();
         return $db->delete_aux('profile', $clause);
@@ -443,9 +520,9 @@ class BoincTeamAdmin {
         $db = BoincDb::get();
         return $db->insert('team_admin', $clause);
     }
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('team_admin', 'BoincTeamAdmin', $clause);
+        return $db->enum('team_admin', 'BoincTeamAdmin', $where_clause);
     }
     static function delete($clause) {
         $db = BoincDb::get();
@@ -466,9 +543,9 @@ class BoincPrivateMessage {
         $db = BoincDb::get();
         return $db->update($this, 'private_messages', $clause);
     }
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('private_messages', 'BoincPrivateMessage', $clause);
+        return $db->enum('private_messages', 'BoincPrivateMessage', $where_clause);
     }
     static function insert($clause) {
         $db = BoincDb::get();
@@ -491,9 +568,9 @@ class BoincPrivateMessage {
 }
 
 class BoincPlatform {
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('platform', 'BoincPlatform', $clause);
+        return $db->enum('platform', 'BoincPlatform', $where_clause);
     }
     static function lookup_id($id) {
         $db = BoincDb::get();
@@ -514,9 +591,9 @@ class BoincPlatform {
 }
 
 class BoincHostAppVersion {
-    static function enum($clause) {
+    static function enum($where_clause) {
         $db = BoincDb::get();
-        return $db->enum('host_app_version', 'BoincHostAppVersion', $clause);
+        return $db->enum('host_app_version', 'BoincHostAppVersion', $where_clause);
     }
     static function lookup($host_id, $app_version_id) {
         $db = BoincDb::get();
@@ -678,6 +755,10 @@ class BoincCreditUser {
         $db = BoincDb::get();
         $db->delete_aux('credit_user', "userid=$user->id");
     }
+    static function get_list($where_clause, $order_clause, $limit) {
+        $db = BoincDB::get();
+        return $db->get_list('user', 'credit_user', 'id', 'userid', 'BoincCreditUser', '*', $where_clause, $order_clause, $limit);
+    }
 }
 
 class BoincCreditTeam {
@@ -697,6 +778,10 @@ class BoincCreditTeam {
         $db = BoincDb::get();
         return $db->update_aux('credit_team', $clause);
     }
+    static function get_list($where_clause, $order_clause, $limit) {
+        $db = BoincDB::get();
+        return $db->get_list('team', 'credit_team', 'id', 'teamid', 'BoincCreditTeam', '*', $where_clause, $order_clause, $limit);
+    }
 }
 
 // DEPRECATED: use BoincDb::escape_string where possible
diff --git a/html/inc/bootstrap.inc b/html/inc/bootstrap.inc
new file mode 100644
index 0000000..6163339
--- /dev/null
+++ b/html/inc/bootstrap.inc
@@ -0,0 +1,391 @@
+<?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2008 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+// An interface to bootstrap navbars and grids.
+
+$fixed_navbar = false;
+
+if (defined('REMOTE_JOB_SUBMISSION') && REMOTE_JOB_SUBMISSION) {
+    require_once("../inc/submit_db.inc");
+}
+
+////////////// NAVBAR ////////////////
+
+// call this to start the navbar.
+// $brand: the text or image to show at left of navbar
+// If text, put it in <a class="navbar-brand" ...
+//
+function navbar_start($brand, $fixed, $inverse) {
+    global $fixed_navbar;
+    $class = "navbar";
+    if ($inverse) {
+        $class .= " navbar-inverse";
+    } else {
+        $class .= " navbar-default";
+    }
+    if ($fixed) {
+        $class .= " navbar-fixed-top";
+        $fixed_navbar = true;
+    }
+    echo "<nav class=\"$class\">\n";
+    echo '
+  <div class="container-fluid">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+      '.$brand.'
+    </div>
+    <div class="collapse navbar-collapse" id="myNavbar">
+      <ul class="nav navbar-nav">
+    ';
+}
+
+// call this to end it
+//
+function navbar_end() {
+    echo '
+      </ul>
+    </div>
+  </div>
+</nav>
+    ';
+}
+
+// put the login/logout stuff at the right side of navbar
+//
+function navbar_right($user) {
+    global $is_login_page;
+    echo '
+      </ul>
+      <ul class="nav navbar-nav navbar-right">
+    ';
+    if (!$is_login_page) {
+        if ($user) {
+            echo sprintf('
+                <li><a href=%shome.php>'.$user->name.'</a></li>
+                ', url_base()
+            );
+            $url_tokens = url_tokens($user->authenticator);
+            echo sprintf('<li><a href="%slogout.php?%s">Log out</a></li>',
+                url_base(), $url_tokens
+            );
+        } else {
+            echo sprintf('
+                <li><a href="%screate_account_form.php">Sign Up</a></li>
+                <li><a href="%slogin_form.php">Login</a></li>
+                ', url_base(), url_base()
+            );
+        }
+    }
+}
+
+// add a dropdown menu
+//
+function navbar_menu($name, $items) {
+    echo '
+      <li class="dropdown">
+        <a class="dropdown-toggle" data-toggle="dropdown" href="#">'.$name.'
+        <span class="caret"></span></a>
+        <ul class="dropdown-menu">
+    ';
+    foreach ($items as $item) {
+        if (is_array($item)) {
+            echo '<li><a href="'.$item[1].'">'.$item[0].'</a></li>
+            ';
+        } else {
+            echo '<li class="dropdown-header">'.$item.'</li>
+            ';
+        }
+    }
+    echo '
+        </ul>
+      </li>
+    ';
+}
+
+// add a single item (not menu)
+//
+function navbar_item($name, $url) {
+    echo '<li><a href="'.$url.'">'.$name.'</a></li>
+    ';
+}
+
+// A generic navbar.
+// Call this from project_banner().
+// If you want to customized it, copy it to your project.inc
+// and give it a new name
+//
+function sample_navbar(
+    $url_prefix,
+        // prefix for links; needed for pages not in top dir
+    $user,
+        // logged-in user, if any
+    $fixed=false,
+        // if true, navbar is fixed at top of page.
+        // NOTE: if you do this, you must set a global var $fixed_navbar
+        // to true at compile time
+        // (it needs to be set when page_head() is called).
+    $inverse=false
+        // white on black?
+) {
+    global $master_url;
+
+    $brand = "<a class=\"navbar-brand\" href=$master_url>".PROJECT."</a>";
+    navbar_start($brand, $fixed, $inverse);
+
+    $x = array();
+    if ($user) {
+        $x[] = array(tra("Account"), $url_prefix."home.php");
+        $x[] = array(tra("Join"), $url_prefix."join.php");
+        $x[] = array(tra("Preferences"), $url_prefix."prefs.php?subset=project");
+    }
+    $x[] = array(tra("About %1", PROJECT), $url_prefix."about.php");
+    $x[] = array(tra("Help"), $url_prefix."help.php");
+    navbar_menu(tra("Project"), $x);
+
+    if (defined('NO_COMPUTING')) {
+        // this is for projects that don't do computing, e.g. BOSSA-based
+        //
+        if (defined('BOSSA')) {
+            navbar_menu(tra("Participate"), array(
+                array(tra("Do work"), $url_prefix."bossa_apps.php"),
+            ));
+        }
+    } else {
+        $x = array(
+            array(tra("Preferences"), $url_prefix."prefs.php?subset=global"),
+            array(tra("Server status"), $url_prefix."server_status.php"),
+            array(tra("Statistics"), $url_prefix."stats.php"),
+            array(tra("Applications"), $url_prefix."apps.php"),
+        );
+        if (defined('REMOTE_JOB_SUBMISSION') && REMOTE_JOB_SUBMISSION) {
+            if ($user && BoincUserSubmit::lookup_userid($user->id)) {
+                $x[] = array("Job submission", $url_prefix."submit.php");
+            }
+        }
+        $x = array_merge($x,
+            array(
+                'Leader boards:',
+                array(tra("Participants"), $url_prefix."top_users.php"),
+                array(tra("Computers"), $url_prefix."top_hosts.php"),
+                array(tra("Teams"), $url_prefix."top_teams.php"),
+                array(tra("GPU models"), $url_prefix."gpu_list.php"),
+                array(tra("CPU models"), $url_prefix."cpu_list.php"),
+            )
+        );
+        navbar_menu(tra("Computing"), $x);
+    }
+
+    navbar_menu(tra("Community"), array(
+        array(tra("Message boards"), $url_prefix."forum_index.php"),
+        //array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+        array(tra("Teams"), $url_prefix."team.php", tra("create or join a team")),
+        array(tra("Profiles"), $url_prefix."profile_menu.php"),
+        array(tra("Preferences"), $url_prefix."edit_forum_preferences_form.php"),
+        array(tra("User search"), $url_prefix."user_search.php"),
+        array(tra("User of the day"), $url_prefix."uotd.php"),
+        array(tra("Certificate"), $url_prefix."cert1.php", "", "_blank"),
+    ));
+    navbar_menu(tra("Site"), array(
+        array(tra("Site search"), $url_prefix."site_search.php"),
+        array(tra("Languages"), $url_prefix."language_select.php")
+    ));
+
+    // add your own menu here if you want
+
+    navbar_right($user);
+    navbar_end();
+}
+
+// output a panel.
+// $content_func is a function that generates the panel contents
+//
+function panel($title, $content_func) {
+    echo '
+    <div class="panel panel-primary">
+    ';
+    if ($title) {
+        echo '
+            <div class="panel-heading">
+                <h1 class="panel-title">'.$title.'</h1>
+            </div>
+        ';
+    }
+    echo '
+        <div class="panel-body">
+    ';
+    $content_func();
+    echo '
+        </div>
+        </div>
+    ';
+}
+
+// grid layout with a full-width row followed by two equal columns
+// $top_func, $left_func, and $right_func
+// are functions that generate the top, left, and right content
+// $left_width is the width of left column in 1/12 units.
+//
+function grid($top_func, $left_func, $right_func, $left_width=6) {
+    echo '
+        <div class="container-fluid">
+    ';
+    if ($top_func) {
+        echo '
+            <div class="row">
+            <div class="col-sm-12">
+        ';
+        $top_func();
+        echo '
+            </div>
+            </div>
+        ';
+    }
+    $right_width = 12-$left_width;
+    echo '
+        <div class="row">
+        <div class="col-sm-'.$left_width.'">
+    ';
+    $left_func();
+    echo '
+        </div>
+        <div class="col-sm-'.$right_width.'">
+    ';
+    $right_func();
+    echo '
+        </div>
+        </div>
+        </div>
+    ';
+}
+
+function form_start($action, $method='get') {
+    echo sprintf(
+        '<div class="container">
+        <form class="form-horizontal" method="%s" action="%s">'
+        ,
+        $method, $action
+    );
+}
+
+function form_input_hidden($name, $value) {
+    echo '<input type="hidden" name="'.$name.'" value="'.$value.'">
+    ';
+}
+
+function form_end() {
+    echo '</form>
+        </div>
+    ';
+}
+
+function form_input_text($label, $name, $value='', $type='text', $attrs='') {
+    echo '
+        <div class="form-group">
+            <label class="control-label col-sm-2" for="'.$name.'">'.$label.'</label>
+            <div class="col-sm-10">
+                <input '.$attrs.' type="'.$type.'" class="form-control" id="'.$name.'" name="'.$name.'" value="'.$value.'">
+            </div>
+        </div>
+    ';
+}
+
+// display name/value with same formatting as form
+//
+function form_attr($name, $value) {
+    echo sprintf('
+        <div class="form-group">
+            <div class="col-sm-2 text-right">%s</div>
+            <div class="col-sm-10">%s</div>
+        </div>
+    ', $name, $value
+    );
+}
+
+function form_input_textarea($label, $name, $value='') {
+    echo '
+        <div class="form-group">
+            <label class="control-label col-sm-2" for="'.$name.'">'.$label.'</label>
+            <div class="col-sm-10">
+                <textarea rows="6" class="form-control" id="'.$name.'" name="'.$name.'">'.$value.'</textarea>
+            </div>
+        </div>
+    ';
+}
+
+// $items is either a string of <option> elements, or an array
+//
+function form_select($label, $name, $items) {
+    echo '
+        <div class="form-group">
+            <label class="control-label col-sm-2" for="'.$name.'">'.$label.'</label>
+            <div class="col-sm-10">
+                <select class="form-control" id="'.$name.'" name="'.$name.'">
+    ';
+    if (is_array($items)) {
+        foreach ($items as $i) {
+            echo '<option value="'.$i[0].'">'.$i[1].'</option>
+            ';
+        }
+    } else {
+        echo $items;
+    }
+    echo "</select></div></div>\n";
+}
+
+// same, for multiple select.
+// flags, if non-null, says which ones are selected
+//
+function form_select_multiple($label, $name, $items, $flags) {
+    echo '
+        <div class="form-group">
+            <label class="control-label col-sm-2" for="'.$name.'">'.$label.'</label>
+            <div class="col-sm-10">
+                <select multiple class="form-control" id="'.$name.'" name="'.$name.'[]">
+    ';
+    $n = 0;
+    foreach ($items as $i) {
+        $s = ($flags && $flags[$n])?'selected':'';
+        echo '<option '.$s.' value="'.$i[0].'">'.$i[1].'</option>
+        ';
+        $n++;
+    }
+    echo "</select></div></div>\n";
+}
+
+function form_submit($text) {
+    echo '
+        <div class="form-group">
+            <div class="col-sm-offset-2 col-sm-10">
+                <button type="submit" class="btn btn-success">'.$text.'</button>
+            </div>
+        </div>
+    ';
+}
+
+function form_checkbox($label, $name, $checked=false) {
+    echo sprintf('
+        <div class="form-group">
+            <input type="checkbox" name="%s" %s>   <span class="lead">%s</span>
+        </div>
+        ', $name, $checked?"checked":"", $label
+    );
+}
diff --git a/html/inc/common_defs.inc b/html/inc/common_defs.inc
index e192ca7..6bc085d 100644
--- a/html/inc/common_defs.inc
+++ b/html/inc/common_defs.inc
@@ -81,6 +81,7 @@ define('RESULT_ABORTED',             6);
 define('RESULT_UPLOAD_FAILED',       7);
 
 // from lib/error_numbers.h
+// returned by some web RPCs
 //
 define('ERR_XML_PARSE',               -112);
 define('ERR_DB_NOT_FOUND',            -136);
diff --git a/html/inc/countries.inc b/html/inc/countries.inc
index 1879199..e38db4c 100644
--- a/html/inc/countries.inc
+++ b/html/inc/countries.inc
@@ -1,7 +1,26 @@
 <?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2017 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 // $Id$
+
+
 // list of countries taken from http://www.cia.gov
 
+global $countries;
 $countries = array(
     "None",
     "International",
@@ -472,12 +491,15 @@ $country_to_iso3166_2 = array (
     "Zimbabwe" => "zw"
 );
 
-function print_country_select($selected_country="None") {
+// return a list of country options for a <select>
+//
+function country_select_options($selected_country="None") {
     global $countries;
 
     require_once("../inc/geoip.inc"); 
 
-    //See if we can find the user's country and select it as default:
+    // See if we can find the user's country and select it as default:
+    //
     $gi = geoip_open("../inc/GeoIP.dat",GEOIP_STANDARD);
     $geoip_country = geoip_country_name_by_addr($gi,$_SERVER["REMOTE_ADDR"]);
     geoip_close($gi);
@@ -487,12 +509,12 @@ function print_country_select($selected_country="None") {
         $selected_country=$geoip_country;
     }
 
-    $numCountries = count($countries);
-    for ($i=0; $i<$numCountries; $i++) {
-        $country = $countries[$i];
+    $x = "";
+    foreach ($countries as $country) {
         $selected = ($selected_country == $country ? "selected":"");
-        echo "<option value=\"$country\" $selected>$country</option>\n";
+        $x .= "<option value=\"$country\" $selected>$country</option>\n";
     }
+    return $x;
 } 
 
 function is_valid_country($country) {
diff --git a/html/inc/db.inc b/html/inc/db.inc
index 25eb47a..0238e80 100644
--- a/html/inc/db.inc
+++ b/html/inc/db.inc
@@ -49,7 +49,7 @@ if (MYSQLI) {
         } else {
             $port = null;
         }
-        $mysqli = new mysqli($host, $user, $pass, $dbname, $port);
+        $mysqli = @new mysqli($host, $user, $pass, $dbname, $port);
         return $mysqli;
     }
     function _mysql_query($q) {
@@ -105,6 +105,9 @@ if (MYSQLI) {
         global $mysqli;
         return mysqli_error($mysqli);
     }
+    function _mysql_fetch_array($r) {
+        return mysqli_fetch_array($r);
+    }
 } else {
     function _mysql_connect($host, $user, $pass, $db_name) {
         $link = mysql_pconnect($host, $user, $pass);
@@ -154,6 +157,9 @@ if (MYSQLI) {
     function _mysql_error() {
         return mysql_error();
     }
+    function _mysql_fetch_array($r) {
+        return mysql_fetch_array($r);
+    }
 }
 
 function db_init_aux($try_replica=false) {
@@ -185,14 +191,14 @@ function db_init_aux($try_replica=false) {
             return 1;
         }
     } else {
-    $link = mysql_pconnect($host, $user, $pass);
-    if (!$link) {
-        return 1;
-    }
-    if (!mysql_select_db($db_name, $link)) {
-        echo "selecting $db_name\n";
-        return 2;
-    }
+        $link = mysql_pconnect($host, $user, $pass);
+        if (!$link) {
+            return 1;
+        }
+        if (!mysql_select_db($db_name, $link)) {
+            echo "selecting $db_name\n";
+            return 2;
+        }
     }
 
     return 0;
diff --git a/html/inc/db_conn.inc b/html/inc/db_conn.inc
index 671cc8a..e8256e3 100644
--- a/html/inc/db_conn.inc
+++ b/html/inc/db_conn.inc
@@ -24,8 +24,9 @@ require_once("../inc/db.inc");
 class DbConn {
     var $db_conn;
     var $db_name;
+    var $readonly;
 
-    function init_conn($user, $passwd, $host, $name) {
+    function init_conn($user, $passwd, $host, $name, $readonly) {
         if (MYSQLI) {
             $x = explode(":", $host);
             if (sizeof($x)>1) {
@@ -36,19 +37,24 @@ class DbConn {
             }
             //if (version_compare(PHP_VERSION, '5.3.0') < 0) {
             if (1) {        // don't use persistent connections for now
-                $this->db_conn = new mysqli($host, $user, $passwd, $name, $port);
+                $this->db_conn = @new mysqli($host, $user, $passwd, $name, $port);
             } else {
-                $this->db_conn = new mysqli("p:".$host, $user, $passwd, $name, $port);
+                $this->db_conn = @new mysqli("p:".$host, $user, $passwd, $name, $port);
+            }
+            // mysqli returns an object even if the connection is not established
+            if (mysqli_connect_error()) {
+                return false;
             }
             global $mysqli;
             $mysqli = $this->db_conn;
         } else {
-            $this->db_conn = mysql_pconnect($host, $user, $passwd);
+            $this->db_conn = @mysql_pconnect($host, $user, $passwd);
         }
         if (!$this->db_conn) {
             return false;
         }
         $this->db_name = $name;
+        $this->readonly = $readonly;
         return true;
     }
 
@@ -86,6 +92,25 @@ class DbConn {
         }
     }
 
+    function get_list($table1, $table2, $joinfield1, $joinfield2, $classname, $fields, $where_clause, $order_clause, $limit) {
+        $query = "select $fields from DBNAME.$table1 a join DBNAME.$table2 b on a.$joinfield1=b.$joinfield2 where $where_clause order by $order_clause desc limit $limit";
+        $result = $this->do_query($query);
+        if (!$result) return null;
+        $x = array();
+        if (MYSQLI) {
+            while ($obj = $result->fetch_object($classname)) {
+                $x[] = $obj;
+            }
+            $result->free();
+        } else {
+            while ($obj = mysql_fetch_object($result, $classname)) {
+                $x[] = $obj;
+            }
+            mysql_free_result($result);
+        }
+        return $x;
+    }
+
     function lookup_fields($table, $classname, $fields, $clause) {
         $query = "select $fields from DBNAME.$table where $clause";
         $result = $this->do_query($query);
@@ -236,16 +261,18 @@ class DbConn {
             return mysql_error($this->db_conn);
         }
     }
-    function table_exists($table_name) {
-        $result = $this->do_query("show tables from DBNAME like '$table_name'");
-        if (!$result) error_page("database error on query $query");
+    function base_errno() {
         if (MYSQLI) {
-            $t = $result->fetch_array();
-            $result->free();
+            return $this->db_conn->errno;
         } else {
-            $t = mysql_fetch_array($result);
-            mysql_free_result($result);
+            return mysql_errno($this->db_conn);
         }
+    }
+    function table_exists($table_name) {
+        $result = $this->do_query("show tables from DBNAME like '$table_name'");
+        if (!$result) error_page("database error on query $query");
+        $t = _mysql_fetch_array($result);
+        _mysql_free_result($result);
         if ($t[0] == "$table_name") return true;
         return false;
     }
diff --git a/html/inc/db_ops.inc b/html/inc/db_ops.inc
index dc478a5..35053aa 100644
--- a/html/inc/db_ops.inc
+++ b/html/inc/db_ops.inc
@@ -23,7 +23,9 @@ ini_set('display_errors', true);
 ini_set('display_startup_errors', true);
 
 require_once("../inc/util_basic.inc");
+require_once("../inc/util_ops.inc");
 require_once("../inc/result.inc");
+require_once("../inc/boinc_db.inc");
 
 class BoincAssignment {
     static function enum($where_clause = null) {
@@ -62,11 +64,49 @@ function mysqltime_str($x) {
     return time_str($time);
 }
 
+// translate type_id into humand readable text
+// http://php.net/manual/de/mysqli-result.fetch-field-direct.php
+//
+function mysql_fieldtype_str($type_id) {
+    static $types;
+    // maps php constants to well known mysql definitions
+    static $mysql_data_type_hash = array(
+        MYSQLI_TYPE_TINY=>'tinyint',
+        MYSQLI_TYPE_SHORT=>'smallint',
+        MYSQLI_TYPE_LONG=>'int',
+        MYSQLI_TYPE_FLOAT=>'float',
+        MYSQLI_TYPE_DOUBLE=>'double',
+        MYSQLI_TYPE_TIMESTAMP=>'timestamp',
+        MYSQLI_TYPE_LONGLONG=>'bigint',
+        MYSQLI_TYPE_INT24=>'mediumint',
+        MYSQLI_TYPE_DATE=>'date',
+        MYSQLI_TYPE_TIME=>'time',
+        MYSQLI_TYPE_DATETIME=>'datetime',
+        MYSQLI_TYPE_YEAR=>'year',
+        MYSQLI_TYPE_BIT=>'bit',
+        MYSQLI_TYPE_BLOB=>'blob',
+        MYSQLI_TYPE_VAR_STRING=>'varchar',
+        MYSQLI_TYPE_STRING=>'char',
+        MYSQLI_TYPE_DECIMAL=>'decimal'
+    );
+    if (array_key_exists($type_id, $mysql_data_type_hash)) {
+        return $mysql_data_type_hash[$type_id];
+    }
+    // $type_id is not well known or new so get the constant name and return that
+    if (!isset($types)) {
+        $types = array();
+        $constants = get_defined_constants(true);
+        foreach ($constants['mysqli'] as $c => $n) if (preg_match('/^MYSQLI_TYPE_(.*)/', $c, $m)) $types[$n] = $m[1];
+    }
+    return array_key_exists($type_id, $types)? strtolower($types[$type_id]) : "unknown";
+}
+
 // Function prints a description of $table 
 //
 function print_describe_table_onecol($table, $which, $columns) {
-    $result = _mysql_query("SELECT * from $table LIMIT 1");
-    $fields = _mysql_num_fields($result);
+    $db = BoincDb::get(true);
+    $result = $db->do_query("SELECT * from $table LIMIT 1");
+    $fields = $result->field_count;
 
     $avgnum=(int)($fields/$columns);
     if ($avgnum*$columns<$fields) {
@@ -92,9 +132,9 @@ function print_describe_table_onecol($table, $which, $columns) {
     echo "<tr><th align=\"left\">NAME</th><th align=\"left\">Type</th><th align=\"left\">Bytes</th>\n";
     for ($count=$bot; $count<$top; $count++) {
         if ($count<$fields) {
-            $x = _mysql_field_attrs($result, $count);
+            $x = $result->fetch_field_direct($count);
             $name = $x->name;
-            $type = $x->type;
+            $type = mysql_fieldtype_str($x->type);
             $length = $x->length;
         } else {
             $name="<br/> ";
@@ -104,6 +144,7 @@ function print_describe_table_onecol($table, $which, $columns) {
         echo "\t<tr><td><b>$name</b></td><td>$type</td><td>$length</td></tr>\n";
     }
     echo "</table></td>";
+    $result->free();
     return 0;
 }
 
@@ -195,7 +236,7 @@ class SqlQueryString {
     var $query;
     var $urlquery;
 
-    function SqlQueryString() {
+    function __construct() {
         if (isset($_GET['table'])) {
             $this->table = $_GET['table'];
         } else {
@@ -281,11 +322,11 @@ class SqlQueryString {
 
     function count() {
         $count_query = "select count(*) as cnt from $this->table $this->query";
-
-        $result = _mysql_query($count_query);
+        $db = BoincDb::get(true);
+        $result = $db->do_query($count_query);
         if (!$result) return 0;
-        $res = _mysql_fetch_object($result);
-        _mysql_free_result($result);
+        $res = $result->fetch_object();
+        $result->free();
         return $res->cnt;
     }
 
@@ -360,7 +401,7 @@ function stderr_error_string($stderr_out){
     if (0<=$x && $x<=9) {
         return FALSE;
     } else {
-        return "$x ".result_error_mask_str($x);
+        return "$x ".error_code_str($x);
     }
 }
 
@@ -471,13 +512,14 @@ FROM result WHERE true
     }
 
     $urlquery = $q->urlquery;
-    $result = _mysql_query($main_query);
+    $db = BoincDb::get(true);
+    $result = $db->do_query($main_query);
 
     // echo "Main query was $main_query<br/>";
 
     if ($result) {
 
-        $res = _mysql_fetch_object($result);
+        $res = $result->fetch_object();
         $ntotal          = $res->nTotal;
 
         $server_state[1] = $res->serverstate_inactive;
@@ -515,7 +557,7 @@ FROM result WHERE true
         $file_delete[3]  = $res->filedeletestate_error;
 
         $nfile_deleted   = $res->filedeletestate_ready + $res->filedeletestate_done + $res->filedeletestate_error;
-        _mysql_free_result($result);
+        $result->free();
     }
 
 
@@ -714,6 +756,7 @@ function show_app_version($app_version) {
     row("Application", "<a href=\"db_action.php?table=app&id=$app_version->appid\">" . app_name_by_id($app_version->appid) . "</a>");
     row("Version num", $app_version->version_num);
     row("Platform", "<a href=\"db_action.php?table=platform&id=$app_version->platformid\">" . platform_name_by_id($app_version->platformid) . "</a>" );
+    row("Plan Class", $app_version->plan_class);
     row("XML doc", "<pre>".htmlspecialchars($app_version->xml_doc)."</pre>");
     row("min_core_version", $app_version->min_core_version);
     row("max_core_version", $app_version->max_core_version);
@@ -729,6 +772,7 @@ function app_version_short_header() {
         <th>Application</th>
         <th>Version</th>
         <th>Platform</th>
+        <th>Plan Class</th>
         </tr>
     ";
 }
@@ -742,6 +786,7 @@ function show_app_version_short($app_version) {
         <td><a href=\"db_action.php?table=app&id=$app_version->appid\">$x</a></td>
         <td>$app_version->version_num</td>
         <td><a href=\"db_action.php?table=platform&id=$app_version->platformid\">$y</a></td>
+        <td>$app_version->plan_class</td>
         </tr>
     ";
 }
@@ -851,25 +896,29 @@ function show_host($host) {
     row("CPU", "$host->p_vendor $host->p_model");
     row("GFLOPS", number_format($host->p_fpops/1e9, 2));
     row("GIOPS", number_format($host->p_iops/1e9, 2));
-    row("memory bandwidth", $host->p_membw);
+    $x = $host->p_membw/(1024*1024);
+    $y = number_format($x, 2);
+    row("Memory bandwidth", "$y MB/sec");
     row("Operating System", "$host->os_name $host->os_version");
     $x = $host->m_nbytes/(1024*1024);
-    $y = round($x, 2);
+    $y = number_format($x, 2);
     row("Memory", "$y MB");
     $x = $host->m_cache/1024;
-    $y = round($x, 2);
+    $y = number_format($x, 2);
     row("Cache", "$y KB");
     $x = $host->m_swap/(1024*1024);
-    $y = round($x, 2);
+    $y = number_format($x, 2);
     row("Swap Space", "$y MB");
     $x = $host->d_total/(1024*1024*1024);
-    $y = round($x, 2);
+    $y = number_format($x, 2);
     row("Total Disk Space", "$y GB");
     $x = $host->d_free/(1024*1024*1024);
-    $y = round($x, 2);
+    $y = number_format($x, 2);
     row("Free Disk Space", "$y GB");
-    row("Avg network bandwidth (upstream)", "$host->n_bwup bytes/sec");
-    row("Avg network bandwidth (downstream)", "$host->n_bwdown bytes/sec");
+    $x = number_format($host->n_bwup/1024);
+    row("Avg network bandwidth (upstream)", "$x kB/sec");
+    $x = number_format($host->n_bwdown/1024);
+    row("Avg network bandwidth (downstream)", "$x kB/sec");
     row("Average turnaround", days_string($host->avg_turnaround));
     row("Number of RPCs", $host->rpc_seqno);
     row("Last RPC", time_str($host->rpc_time));
@@ -894,10 +943,16 @@ function show_workunit($wu) {
     row("XML doc", "<pre>".htmlspecialchars($wu->xml_doc)."</pre>");
     row("Application", "<a href=\"db_action.php?table=app&id=$wu->appid\">" . app_name_by_id($wu->appid) . " [".$wu->appid."]</a>");
     row("Batch", $wu->batch);
-    row("Estimated FP Operations", $wu->rsc_fpops_est);
-    row("Max FP Operations", $wu->rsc_fpops_bound);
-    row("Max Memory Usage", $wu->rsc_memory_bound);
-    row("Max Disk Usage", $wu->rsc_disk_bound);
+    $x = number_format($wu->rsc_fpops_est/1e9, 2);
+    row("Estimated FP Operations", "$x GFLOPS");
+    $x = number_format($wu->rsc_fpops_bound/1e9, 2);
+    row("Max FP Operations", "$x GFLOPS");
+    $x = $wu->rsc_memory_bound/(1024*1024);
+    $y = number_format($x, 2);
+    row("Max Memory Usage", "$y MB");
+    $x = $wu->rsc_disk_bound/(1024*1024);
+    $y = number_format($x, 2);
+    row("Max Disk Usage", "$y MB");
     row("Need validate?", ($wu->need_validate?"yes [":"no [").$wu->need_validate."]");
     row("Canonical resultid",
             "<a href=\"db_action.php?table=result&id=$wu->canonical_resultid\">".$wu->canonical_resultid."</a>");
@@ -962,16 +1017,11 @@ function host_user_link($hostid) {
     if (!$hostid) return '---';
 
     $h = "<a href=\"db_action.php?table=host&id=$hostid\">$hostid</a>";
-    $result = _mysql_query("select userid from host where id='$hostid' limit 1");
-    if (!$result) return $h;
-    $host = _mysql_fetch_object($result);
-    _mysql_free_result($result);
-    if (!$host->userid) return $h;
-    $result = _mysql_query("select id, name from user where id='$host->userid' limit 1");
-    if (!$result) return $h;
-    $user = _mysql_fetch_object($result);
-    _mysql_free_result($result);
-    return "$h<br><small>(<a href=\"db_action.php?table=user&id=$user->id\">$user->name</a>)</small>";
+    $host = BoincHost::enum_fields("userid", "id=".$hostid, "limit 1");
+    if (!$host) return $h;
+    $user = BoincUser::enum_fields("id, name", "id=".$host[0]->userid, "limit 1");
+    if (!$user) return $h;
+    return "$h<br><small>(<a href=\"db_action.php?table=user&id=".$user[0]->id."\">".$user[0]->name."</a>)</small>";
 }
 
 function validate_color($validate_state) {
@@ -1044,7 +1094,14 @@ function show_result_ops($result) {
     row("Priority",$result->priority);
     row("XML doc in", "<pre>".htmlspecialchars($result->xml_doc_in)."</pre>");
     row("XML doc out", "<pre>".htmlspecialchars($result->xml_doc_out)."</pre>");
-    row("stderr out", "<pre>".htmlspecialchars($result->stderr_out)."</pre>");
+    row("stderr out", "<pre>"
+        .htmlspecialchars(
+            $result->stderr_out,
+            ENT_QUOTES | (defined('ENT_SUBSTITUTE')?ENT_SUBSTITUTE:0),
+            'utf-8'
+        )
+        ."</pre>"
+    );
     end_table();
     echo "
         <center>
@@ -1100,12 +1157,12 @@ function show_result_short($result) {
             $received = "<font color=\"#ff3333\">". time_str($result->report_deadline) . "</font>";
         }
     }
-    $version = app_version_string($result);
+    $version = app_version_string($result)." (<a href=\"db_action.php?table=app_version&id=$result->app_version_id\">$result->app_version_id</a>)";
     $outcome_color = outcome_color($result->outcome);
     $validate_color = validate_color($result->validate_state);
     $host_user = host_user_link($result->hostid);
     $cpu_hours = sprintf("%.1f",$result->cpu_time / 3600);
-    $granted_credit = "<a href=credit.php?resultid=$result->id>".credit_str($result->granted_credit)."</a>";
+    $granted_credit = "<a href=credit.php?wu_id=$result->workunitid>".credit_str($result->granted_credit)."</a>";
     $delete_state = file_delete_state_str($result->file_delete_state);
 
     echo "
@@ -1132,8 +1189,11 @@ function show_user($user) {
     row("ID", $user->id);
     row("Created", time_str($user->create_time));
     row("Name", $user->name);
-    row("Authenticator", $user->authenticator);
+    if(!in_rops()) {
+        row("Authenticator", $user->authenticator);
+    }
     row("Email address", $user->email_addr);
+    row("OK to send Email?", $user->send_email);
     row("Country", $user->country);
     row("Postal code", $user->postal_code);
     row("Total credit", $user->total_credit);
@@ -1142,7 +1202,9 @@ function show_user($user) {
     row("Default venue", $user->venue);
     row("Hosts", "<a href=\"db_action.php?table=host&userid=$user->id&detail=low\">click</a>");
     row("Cross project ID", $user->cross_project_id);
-    row("Password Hash", $user->passwd_hash);
+    if(!in_rops()) {
+        row("Password Hash", $user->passwd_hash);
+    }
     row("Donated", $user->donated);
     end_table();
 }
@@ -1150,31 +1212,29 @@ function show_user($user) {
 function show_user_summary($maxuser) {
     $top_country = array();
     $top_language = array();
-    $stats_res = _mysql_query("select max(id) as maxuser,
+    $db = BoincDb::get(true);
+    $stats_res = $db->do_query("select max(id) as maxuser,
         SUM(case when has_profile = '1' then 1 else 0 end) as profuser,
         SUM(case when teamid != '0' then 1 else 0 end) as teamuser
         from user"
     );
-    $stats = _mysql_fetch_assoc($stats_res);
+    $stats = $stats_res->fetch_assoc();
     if ($maxuser > $stats['maxuser']) {
         $maxuser = $stats['maxuser'];
     }
-    $user_res = _mysql_query("select * from user order by posts desc limit ".$maxuser);
-    $profile_res = _mysql_query("select * from profile order by posts desc limit ".$maxuser);
-    for ($i=1;$i<=$maxuser;$i++) {
-        $user = _mysql_fetch_object($user_res);
+    // TODO: what is in profile.posts? A user can post in the forums without a profile.
+    $users = BoincUser::enum(null, "order by posts desc limit ".$maxuser);
+    $profiles = BoincProfile::enum(null, "order by posts desc limit ".$maxuser);
+    foreach ($users as $user) {
         $top10poster[$i] = $user;
         $top_country[$user->country] += 1;
     }
-    for ($i=1;$i<=$maxuser;$i++) {
-        $profile = _mysql_fetch_object($profile_res);    
+    foreach ($profiles as $profile) {
         if ($profile->language != '') {
             $top_language[$profile->language] += 1;
         }
     }
-    _mysql_free_result($user_res);
-    _mysql_free_result($profile_res);
-    _mysql_free_result($stats_res);
+    $stats_res->free();
     echo "<table>
           <tr valign=\"top\">
             <td><h2>General</h2></td>
@@ -1243,40 +1303,37 @@ function show_team($team) {
 }
 
 function team_name_by_id($teamid) {
-    $result = _mysql_query("select * from team where id = $teamid");
-    $team = _mysql_fetch_object($result);
+    $team = BoincTeam::lookup_id($teamid);
+    if (!$team) return "No team";
     return $team->name;
 }
 
 function user_name_by_id($user_id) {
-    $result = _mysql_query("select * from user where id = $user_id");
-    $user = _mysql_fetch_object($result);
+    $user = BoincUser::lookup_id($user_id);
     if (!$user) return "No user";
     return $user->name;
 }
 
 function app_name_by_id($appid) {
-    $result = _mysql_query("select * from app where id = $appid");
-    $app = _mysql_fetch_object($result);
+    $app = BoincApp::lookup_id($appid);
+    if (!$app) return "No app";
     return $app->name;
 }
 
 function wu_name_by_id($workunitid) {
-    $result = _mysql_query("select * from workunit where id = $workunitid");
-    $wu = _mysql_fetch_object($result);
+    $wu = BoincWorkunit::lookup_id($workunitid);
     if (!$wu) return "Missing workunit";
     return $wu->name;
 }
 
 function platform_name_by_id($platformid) {
-    $result = _mysql_query("select * from platform where id = $platformid");
-    $plat = _mysql_fetch_object($result);
+    $plat = BoincPlatform::lookup_id($platformid);
+    if (!$plat) return "Missing platform";
     return $plat->name;
 }
 
 function host_name_by_id($hostid) {
-    $result = _mysql_query("select * from host where id = $hostid");
-    $host = _mysql_fetch_object($result);
+    $host = BoincHost::lookup_id($hostid);
     if (!$host) return "No host";
     if (!strlen($host->domain_name) && !strlen($host->last_ip_addr)) {
         return "(blank)";
@@ -1285,5 +1342,4 @@ function host_name_by_id($hostid) {
     }
 }
 
-$cvs_version_tracker[]="\$Id$";  //Generated automatically - do not edit
 ?>
diff --git a/html/inc/dir_hier.inc b/html/inc/dir_hier.inc
index 0b24324..93ac046 100644
--- a/html/inc/dir_hier.inc
+++ b/html/inc/dir_hier.inc
@@ -16,7 +16,7 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// PHP versions of functions in sched/sched_util.C
+// PHP versions of functions in sched/sched_util.cpp
 
 function filename_hash($filename, $fanout) {
     $m = md5($filename);
@@ -29,7 +29,9 @@ function dir_hier_path($filename, $root, $fanout) {
     $dir = filename_hash($filename, $fanout);
     $dirpath = "$root/$dir";
     if (!is_dir($dirpath)) {
-        mkdir($dirpath);
+        if (!mkdir($dirpath)) {
+            echo "failed to mkdir: $dirpath\n";
+        }
     }
     return "$dirpath/$filename";
 }
@@ -39,4 +41,73 @@ function dir_hier_url($filename, $base, $fanout) {
     return "$base/$dir/$filename";
 }
 
+// we're about to put a file with the given path into the download hier;
+// return
+// 0 if same file is already there and we don't need to copy
+// 1 if file isn't there, need to copy
+// -1 if a different file is there
+// -2 if a file operation failed
+//
+// in cases 0 and 1 we make sure a .md5 file is there; create if needed
+//
+// Assume that if there's a .md5 file, it's correct.
+//
+function check_download_file($path, $dl_path) {
+    $dl_md5_path = "$dl_path.md5";
+    $have_md5_file = false;
+    $md5 = md5_file($path);
+    if ($md5 === FALSE) {
+        return -2;
+    }
+    $size = filesize($path);
+    if ($size === FALSE) {
+        return -2;
+    }
+
+    if (file_exists($dl_md5_path)) {
+        $x = file_get_contents($dl_md5_path);
+        if ($x === FALSE) {
+            return -2;
+        }
+        $x = explode(" ", $x);
+        $dl_md5 = $x[0];
+        $dl_size = $x[1];
+        $have_md5_file = true;
+    }
+
+    if (file_exists($dl_path)) {
+        if ($have_md5_file) {
+            $s = filesize($dl_path);
+            if ($s === FALSE) {
+                return -2;
+            }
+            if ($s == $dl_size && $dl_md5 == $md5) {
+                // looks like the right file is there
+                //
+                return 0;
+            }
+            return -1;
+        } else {
+            // missing the .md5 file; need to look at the file
+            //
+            $m = md5_file($dl_path);
+            if ($m === FALSE) {
+                return -2;
+            }
+            if ($m == $md5) {
+                if (file_put_contents($dl_md5_path, "$md5 $size\n") === FALSE) {
+                    return -2;
+                }
+                return 0;
+            }
+            return -1;
+        }
+    } else {
+        if (file_put_contents($dl_md5_path, "$md5 $size\n") === FALSE) {
+            return -2;
+        }
+        return 1;
+    }
+}
+
 ?>
diff --git a/html/inc/email.inc b/html/inc/email.inc
index 0e503a3..d7caded 100644
--- a/html/inc/email.inc
+++ b/html/inc/email.inc
@@ -73,14 +73,14 @@ function send_auth_email($user) {
     $body = "This email was sent in response to a request on the ".PROJECT." web site.
 
 To log in to your ".PROJECT." account, visit:
-".URL_BASE."login_action.php?id=$user->id&t=$now&h=$x
+".secure_url_base()."login_action.php?id=$user->id&t=$now&h=$x
 (This link is valid for 1 day).
 After logging in, you can change your account's password or email address.
 ";
 
 $body .= "
 For further information and assistance with ".PROJECT.", visit
-".URL_BASE."
+".secure_url_base()."
 ";
 
     return send_email($user, $subject, $body);
@@ -109,6 +109,6 @@ function salted_key($key) {
 }
 
 function opt_out_url($user) {
-    return URL_BASE."opt_out.php?code=".salted_key($user->authenticator)."&userid=$user->id";
+    return secure_url_base()."opt_out.php?code=".salted_key($user->authenticator)."&userid=$user->id";
 }
 ?>
diff --git a/html/inc/forum.inc b/html/inc/forum.inc
index cd29472..bf2087d 100644
--- a/html/inc/forum.inc
+++ b/html/inc/forum.inc
@@ -25,16 +25,18 @@ require_once("../inc/text_transform.inc");
 
 define('THREADS_PER_PAGE', 50);
 
-// sorting styles
+// sorting styles (for both threads and posts)
+//
 define('MODIFIED_NEW', 1);
-define('MODIFIED_OLD',2);
-define('VIEWS_MOST',3);
-define('REPLIES_MOST',4);
-define('CREATE_TIME_NEW',5);
-define('CREATE_TIME_OLD',6);
-define('POST_SCORE',7);
+define('MODIFIED_OLD', 2);
+define('VIEWS_MOST', 3);
+define('REPLIES_MOST', 4);
+define('CREATE_TIME_NEW', 5);
+define('CREATE_TIME_OLD', 6);
+define('POST_SCORE', 7);
 
 // names for the above
+//
 $thread_sort_styles[CREATE_TIME_OLD] = tra("Oldest first");
 $thread_sort_styles[CREATE_TIME_NEW] = tra("Newest first");
 $thread_sort_styles[POST_SCORE] = tra("Highest rated posts first");
@@ -113,23 +115,24 @@ $special_user_bitfield[S_HELP_DESK_EXPERT] = tra("Help desk expert");
 // show a banner with search form on left and PM info on right
 //
 function show_forum_header($user) {
-    echo "<form action=\"forum_search_action.php\" method=\"POST\">
-    ";
-    echo "<table cellpadding=\"5\" width=\"100%\" class=\"forum_header\">";
-    echo "<tr>
-    ";
+    echo '<form action="forum_search_action.php" method="POST">
+    ';
+    start_table();
+    echo '
+        <tr>
+    ';
 
     // Search
-    echo "
+    echo '
         <td>
-        <input type=\"hidden\" name=\"search_max_time\" value=\"30\">
-        <input type=\"hidden\" name=\"search_forum\" value=\"-1\">
-        <input type=\"hidden\" name=\"search_sort\" value=\"5\">
-        <input type=\"text\" name=\"search_keywords\">
-        <input class=\"btn btn-default\" title=\"".tra("Search for words in forum messages")."\" type=\"submit\" value=\"".tra("Search forums")."\"><br>
-        <small><a href=\"forum_search.php\">".tra("Advanced search")."</a></small>
+        <input type="hidden" name="search_max_time" value="30">
+        <input type="hidden" name="search_forum" value="-1">
+        <input type="hidden" name="search_sort" value="5">
+        <input type="text" class="" name="search_keywords">
+        <input class="btn btn-primary btn-sm" title="'.tra("Search for words in forum messages").'" type="submit" value="'.tra("Search forums").'"><br>
+        <small><a href="forum_search.php">'.tra("Advanced search").'</a></small>
         </td>
-    ";
+    ';
 
     if ($user) {
         echo "<td align=\"right\">\n";
@@ -201,27 +204,18 @@ function show_team_forum_title($forum, $thread=null, $link_thread=false) {
     echo "</span>";
 }
 
-function start_forum_table($headings, $extra=null) {
-    $span = null;
-    
-    start_table($extra." width=\"100%\"");
-    echo "<tr>";
-
-    for ($i=0; $i<count($headings); $i++) {
-        if (is_array($headings[$i])){
-            $title = $headings[$i][0];
-            $class = $headings[$i][1]?$headings[$i][1]:"heading";
-            if (isset($headings[$i][2])) {
-                $span = " colspan=\"".$headings[$i][2]."\" ";
-            }
-        } else {
-            $title = $headings[$i];
-            $class = "heading";
-            $span="";
-        }
-        echo "<th class=$class$span>$title</th>\n";
-    }
-    echo "</tr>\n";
+// start a table containing messages, where the layout is fixed
+// (to accommodate long [pre] lines)
+// and the left column (author info) has fixed size
+//
+function start_forum_table($headings) {
+    $a = array();
+    foreach ($headings as $h) {
+        $a[] = null;
+    }
+    $a[0] = 'style="width: 10em;"';
+    start_table('table-striped', 'table-layout:fixed');
+    row_heading_array($headings, $a);
 }
 
 function page_link($url, $page_num, $items_per_page, $text) {
@@ -321,8 +315,6 @@ function can_reply($thread, $forum, $user) {
 function show_posts(
     $thread, $forum, $start, $postid, $sort_style, $filter, $logged_in_user
 ) {
-    $n = 1;
-
     $num_to_show = 20;
     if ($logged_in_user && $logged_in_user->prefs->display_wrap_postcount > 0) {
         $num_to_show = $logged_in_user->prefs->display_wrap_postcount;
@@ -392,6 +384,8 @@ function show_posts(
                 }
                 $i++;
             }
+            // if jump to post, figure out what page to show
+            //
             if ($jump_to_post) {
                 $start = $ibest - ($ibest % $num_to_show);
             } else {
@@ -413,8 +407,8 @@ function show_posts(
 
     $num_shown = 0;
     $num_skipped = 0;
-    $headings = array(array(tra("Author"),"authorcol"), array(tra("Message"),""));
-    start_forum_table($headings, "id=\"thread\" cellspacing=0");
+    $headings = array(tra("Author"), tra("Message"));
+    start_forum_table($headings);
 
     $latest_shown_timestamp = 0;
     foreach ($posts as $post) {
@@ -426,10 +420,9 @@ function show_posts(
             break;
         }
         show_post(
-            $post, $thread, $forum, $logged_in_user, $latest_viewed, $n,
+            $post, $thread, $forum, $logged_in_user, $start, $latest_viewed,
             FORUM_CONTROLS, $filter
         );
-        $n = ($n+1)%2;
         
         if ($post->timestamp > $latest_shown_timestamp) {
             $latest_shown_timestamp = $post->timestamp;
@@ -486,11 +479,18 @@ function is_ignoring($user, $other_user) {
     return in_array($other_user->id, $list);
 }
 
-// Display an individual post
+// if avatar is from gravatar, make it HTTPS
+//
+function avatar_url($url) {
+    return str_replace('http:', 'https:', $url);
+}
+
+// Display an individual post.
+// Generates a table row with two cells: author and message
 //
 function show_post(
-    $post, $thread, $forum, $logged_in_user, $latest_viewed, $n,
-    $controls=FORUM_CONTROLS, $filter=true
+    $post, $thread, $forum, $logged_in_user, $start=0,
+    $latest_viewed=0, $controls=FORUM_CONTROLS, $filter=true
 ) {
     global $country_to_iso3166_2;
 
@@ -562,29 +562,33 @@ function show_post(
     } else {
         $highlight = $is_posted_by_special;
     }
+    $class = $highlight?' style="border-left: 5px solid LightGreen" ':'';
+
+    // row and start of author col
+    //
     echo "
         <tr>
-        <td class=\"leftcol ".($highlight?"highlighted_":"")."row$n\" rowspan=\"3\">
+        <td $class>
         <a name=\"$post->id\"></a>
-        <div class=\"authorcol\">
     ";
 
     echo user_links($user, 0);
     echo "<br>";
     if ($user->create_time > time()-ST_NEW_TIME) $fstatus.=ST_NEW."<br>";
-    if ($fstatus) echo "<font size=\"-2\">$fstatus</font>";
+    echo "<span class=\"small\">";
+    if ($fstatus) echo "$fstatus";
 
-    echo "<span class=\"authorinfo\">";
     if (!$filter || !$ignore_poster){
         if ($user->prefs && $user->prefs->avatar!="" && (!$logged_in_user || ($logged_in_user->prefs->hide_avatars==false))) {
-            echo "<img class=authorinfo width=\"".AVATAR_WIDTH."\" height=\"".AVATAR_HEIGHT."\" src=\"".$user->prefs->avatar."\" alt=\"Avatar\"><br>";
+            echo "<img width=\"".AVATAR_WIDTH."\" height=\"".AVATAR_HEIGHT."\" src=\"".avatar_url($user->prefs->avatar)."\" alt=\"Avatar\"><br>";
         }
     }
+    echo "<p> </p>";
     
     $url = "pm.php?action=new&userid=".$user->id;
     $name = $user->name;
-    show_button($url, tra("Send message"), tra("Send %1 a private message",$name));
-    echo "<br>".tra("Joined: %1", gmdate('j M y', $user->create_time)), "<br>";
+    show_button($url, tra("Send message"), tra("Send %1 a private message",$name));
+    echo '<br>'.tra("Joined: %1", gmdate('j M y', $user->create_time)), "<br>";
 
     if (!isset($user->nposts)) {
         $user->nposts = BoincPost::count("user=$user->id");
@@ -616,14 +620,20 @@ function show_post(
         }
         echo badges_string(true, $user, BADGE_HEIGHT_SMALL);
     }
-    echo "</span></div></td>";
 
-    echo "<td class=\"postheader\">";
+    // end of author col, start of message col
+    //
+    echo '</span>
+        </td>
+        <td height="1%">
+        <div class="small">
+    ';
+
     if ($controls == FORUM_CONTROLS) {
         echo "<form action=\"forum_rate.php?post=", $post->id, "\" method=\"post\">";
     }
 
-    if ($logged_in_user && $post->timestamp>$latest_viewed){
+    if ($logged_in_user && $post->timestamp > $latest_viewed){
         show_image(NEW_IMAGE, tra("You haven't read this message yet"), tra("Unread"), NEW_IMAGE_HEIGHT);
     }
 
@@ -632,7 +642,7 @@ function show_post(
     echo tra("Posted: %1", pretty_time_str($post->timestamp)), " ";
 
     if ($post->parent_post) {
-        echo tra(" - in response to ")."<a href=\"forum_thread.php?id=".$thread->id."&postid=".$post->parent_post."\">".tra("Message %1", $post->parent_post)."</a>.";
+        echo tra(" - in response to ")."<a href=\"forum_thread.php?id=".$thread->id."&postid=".$post->parent_post."\">".tra("Message %1", $post->parent_post)."</a>.   ";
     }
     if ($can_edit && $controls != NO_CONTROLS) {
         show_button("forum_edit.php?id=".$post->id."$tokens", tra("Edit"), tra("Edit this message"));
@@ -644,15 +654,17 @@ function show_post(
         echo "<br>".tra("Last modified: %1", pretty_time_Str($post->modified));
     }
     if ($ignore_poster && $filter){
-        echo "<br>".tra("This post is not shown because the sender is on your 'ignore' list.  Click %1here%2 to view this post","<a href=\"?id=".$thread->id."&filter=false#".$post->id."\">","</a>");
+        echo "<br>" .tra(
+            "This post is hidden because the sender is on your 'ignore' list.  Click %1here%2 to view hidden posts",
+            "<a href=\"?id=".$thread->id."&filter=false&start=$start#".$post->id."\">",
+            "</a>"
+        );
     }
     if ($controls == FORUM_CONTROLS) {
         echo "</form>\n";
     }
-    echo "</td>
-        </tr>
-        <tr class=\"".($highlight?"highlighted_":"")."row$n\">
-        <td class=\"postbody\">
+    echo "</div>
+        <p>
     ";
 
     if (!$filter || !$ignore_poster){
@@ -662,21 +674,30 @@ function show_post(
         // wants it to be shown for this post AND the logged in
         // user has signatures enabled: show it
         //
+        $posttext = output_transform($posttext, $options);
         if ($post->signature && (!$logged_in_user || !$logged_in_user->prefs->hide_signatures)){
-            $posttext.="\n____________\n".$user->prefs->signature;
+            $sig = output_transform($user->prefs->signature, $options);
+            $posttext .= "<hr>$sig\n";
         }
 
-        $posttext = output_transform($posttext, $options);
-        
-        echo "<p>", $posttext, "</p>";
-        echo "</td></tr><tr><td class=\"postfooter\"><span>ID: <i>", $post->id;
+        // show message in a panel
+        //
+        echo '<div class="panel panel-default">
+            <div class="panel-body">'
+            .$posttext
+            .'</div></div>
+        ';
+
+        echo '<div class="small"
+            <span>ID: '. $post->id
+        ;
         if ($no_forum_rating) {
             echo " · <a href=\"forum_report_post.php?post=".$post->id."\">";
             show_image(REPORT_POST_IMAGE, tra("Report this post as offensive"), tra("Report as offensive"), REPORT_POST_IMAGE_HEIGHT);
             echo "</a>";
         } else {
             $rating = $post->rating();
-            echo " · ".tra("Rating: %1", $rating)."</i> · ".tra("rate: ")."
+            echo " · ".tra("Rating: %1", $rating)." · ".tra("rate: ")."
                 <a href=\"forum_rate.php?post=".$post->id."&choice=p$tokens\">
             ";
             show_image(RATE_POSITIVE_IMAGE, tra("Click if you like this message"), tra("Rate +"), RATE_POSITIVE_IMAGE_HEIGHT);
@@ -689,15 +710,19 @@ function show_post(
         if (($controls == FORUM_CONTROLS) && (can_reply($thread, $forum, $logged_in_user))) {
             echo "    ";
             $url = "forum_reply.php?thread=" . $thread->id . "&post=" . $post->id . "&no_quote=1#input";
+            // "Reply" is used as a verb
             show_button($url, tra("Reply"), tra("Post a reply to this message"));
             $url = "forum_reply.php?thread=" . $thread->id . "&post=" . $post->id . "#input";
+            // "Quote" is used as a verb
             show_button($url, tra("Quote"), tra("Post a reply by quoting this message"));
         }
-        echo "</span></td></tr>";
-    } else {
-        echo "</td></tr><tr><td class=\"postfooter\">";
+        echo "</span>";
     }
-    echo "<tr class=\"postseparator\"><td colspan=2></td></tr>";
+    // end of message col and row; add separator row
+    //
+    echo "</td></tr>
+        <tr><td colspan=2></td></tr>
+    ";
 }
 
 // Show a post and its context (e.g. for search results, user posts)
@@ -710,14 +735,13 @@ function show_post_and_context($post, $thread, $forum, $options, $n) {
     $when = time_diff_str($post->timestamp, time());
     $user = BoincUser::lookup_id($post->user);
     $title = cleanup_title($thread->title);
-    $m = $n%2;
     if ($post->hidden) {
         $deleted = "<br><font color=red>[".tra("Hidden by a moderator")."]</font>";
     } else {
         $deleted = "";
     }
     echo "
-        <tr class=row$m>
+        <tr>
         <td>
             $n)
     ";
@@ -734,6 +758,8 @@ function show_post_and_context($post, $thread, $forum, $options, $n) {
         (<a href=\"forum_thread.php?id=".$thread->id."&postid=".$post->id."\">".tra("Message %1", $post->id)."</a>)
         <br>
         ".tra("Posted %1 by %2", $when, user_links($user))." $deleted
+        <br>
+        Post:
         <hr>
         $content
         </td></tr>
@@ -772,9 +798,11 @@ function post_rules() {
             gambling, or intolerance of others.
         <li> No messages intended to annoy or antagonize other people,
             or to hijack a thread.
-        <li> No messages that are deliberately hostile or insulting.
+        <li> No messages that are deliberately hostile, threatening, or insulting.
         <li> No abusive comments involving race, religion,
             nationality, gender, class or sexuality.
+        <li> The posting privileges of violators may be suspended or revoked.
+        <li> If your account is suspended, don't create a new one.
         ").$project_rules."
         </ul>
     ";
@@ -834,7 +862,7 @@ function create_post($content, $parent_id, $user, $forum, $thread, $signature) {
     $content = BoincDb::escape_string($content);
     $now = time();
     $sig = $signature?1:0;
-    $id = BoincPost::insert("(thread, user, timestamp, content, parent_post, signature) values ($thread->id, $user->id, $now, '$content', $parent_id, $sig)");
+    $id = BoincPost::insert("(thread, user, timestamp, content, modified, parent_post, score, votes, signature, hidden) values ($thread->id, $user->id, $now, '$content', 0, $parent_id, 0, 0, $sig, 0)");
     if (!$id) return null;
 
     notify_subscribers($thread, $user);
@@ -873,7 +901,7 @@ function create_thread($title, $content, $user, $forum, $signature, $export) {
     if (is_news_forum($forum) && !$export) {
         $status = 1;
     }
-    $id  = BoincThread::insert("(forum, owner, title, create_time, timestamp, replies, status) values ($forum->id, $user->id, '$title', $now, $now, -1, $status)");
+    $id  = BoincThread::insert("(forum, owner, status, title, timestamp, views, replies, activity, sufferers, score, votes, create_time, hidden, sticky, locked) values ($forum->id, $user->id, $status, '$title', $now, 0, -1, 0, 0, 0, 0, $now, 0, 0, 0)");
     if (!$id) return null;
     $thread = BoincThread::lookup_id($id);
     create_post($content, 0, $user, $forum, $thread, $signature);
@@ -884,8 +912,8 @@ function create_thread($title, $content, $user, $forum, $signature, $export) {
 function hide_post($post, $thread, $forum) {
     $ret = $post->update("hidden=1");
     if (!$ret) return $ret;
-    $thread->update("replies=replies-1");
-    $forum->update("posts=posts-1");
+    $thread->update("replies=if(replies>0, replies-1, 0)");
+    $forum->update("posts=if(posts>0, posts-1, 0)");
     update_thread_timestamp($thread);
     update_forum_timestamp($forum);
     return true;
@@ -904,13 +932,13 @@ function unhide_post($post, $thread, $forum) {
 function delete_post($post, $thread, $forum) {
     $post->delete();
     if (!$post->hidden) {
-        $thread->update("replies=replies-1");
-        $forum->update("posts=posts-1");
+        $thread->update("replies=if(replies>0, replies-1, 0)");
+        $forum->update("posts=if(posts>0, posts-1, 0)");
     }
     $count = BoincPost::count("thread=$thread->id");
     if ($count == 0) {
         if (!$thread->hidden) {
-            $forum->update("threads=threads-1");
+            $forum->update("threads=if(threads>0, threads-1, 0)");
         }
         $thread->delete();
     } else {
@@ -924,7 +952,7 @@ function delete_thread($thread, $forum) {
     $forum->update("posts=posts-$nposts");
     BoincPost::delete_aux("thread=$thread->id");
     if (!$thread->hidden) {
-        $forum->update("threads=threads-1");
+        $forum->update("threads=if(threads>0, threads-1, 0)");
     }
     $thread->delete();
 }
@@ -952,9 +980,9 @@ function forum_delete_user($user) {
 function move_post($post, $old_thread, $old_forum, $new_thread, $new_forum) {
     global $g_logged_in_user;
     $post->update("thread=$new_thread->id");
-    $old_thread->update("replies=replies-1");
+    $old_thread->update("replies=if(replies>0, replies-1, 0)");
     $new_thread->update("replies=replies+1");
-    $old_forum->update("posts=posts-1");
+    $old_forum->update("posts=if(posts>0, posts-1, 0)");
     $new_forum->update("posts=posts+1");
     update_thread_timestamp($old_thread);
     update_thread_timestamp($new_thread);
@@ -967,7 +995,7 @@ function move_post($post, $old_thread, $old_forum, $new_thread, $new_forum) {
 function hide_thread($thread, $forum) {
     $ret = $thread->update("hidden=1");
     if (!$ret) return $ret;
-    $forum->update("threads=threads-1");
+    $forum->update("threads=if(threads>0, threads-1, 0)");
     $forum->update("posts=posts-$thread->replies-1");
     update_forum_timestamp($forum);
     return true;
@@ -983,7 +1011,7 @@ function unhide_thread($thread, $forum) {
 
 function move_thread($thread, $old_forum, $new_forum) {
     $now = time();
-    $old_forum->update("threads=threads-1, posts=posts-$thread->replies-1");
+    $old_forum->update("threads=if(threads>0, threads-1, 0), posts=posts-$thread->replies-1");
     $new_forum->update("threads=threads+1, posts=posts+$thread->replies+1, timestamp=$now");
     return $thread->update("forum=$new_forum->id");
 }
@@ -1153,6 +1181,8 @@ function user_can_create_thread($user, $forum) {
 }
 
 function check_post_access($user, $forum) {
+    if (is_admin($user)) return;
+
     switch ($forum->parent_type) {
     case 0:
         if ($user->prefs->privilege(S_MODERATOR)) return;
@@ -1174,14 +1204,14 @@ function check_post_access($user, $forum) {
     // no need to make it easy for them to break the system.
     //
     if ($user->total_credit<$forum->post_min_total_credit || $user->expavg_credit<$forum->post_min_expavg_credit) {
-        error_page(tra("In order to create a new thread in %1 you must have a certain amount of credit. This is to prevent and protect against abuse of the system.", $forum->title));
+        error_page(tra("To create a new thread in %1 you must have a certain level of average credit. This is to protect against abuse of the system.", $forum->title));
     }
 
     // If the user is posting faster than forum regulations allow
     // Tell the user to wait a while before creating any more posts
     //
     if (time()-$user->prefs->last_post <$forum->post_min_interval) {
-        error_page(tra("You cannot create any more threads right now. Please wait a while before trying again. This delay has been enforced to protect against abuse of the system."));
+        error_page(tra("You cannot create threads right now. Please wait before trying again. This is to protect against abuse of the system."));
     }
 }
 
@@ -1226,7 +1256,8 @@ function is_moderator($user, $forum) {
 }
 
 function show_thread_and_context_header() {
-    start_forum_table(array(
+    start_table('table-striped');
+    row_heading_array(array(
         tra("Thread"),
         tra("Posts"),
         tra("Author"),
@@ -1238,13 +1269,12 @@ function show_thread_and_context_header() {
 // show a 1-line summary of thread and its forum.
 // Used for search results and subscription list
 //
-function show_thread_and_context($thread, $user, $i) {
+function show_thread_and_context($thread, $user) {
     $thread_forum = BoincForum::lookup_id($thread->forum);
     if (!$thread_forum) return;
     if (!is_forum_visible_to_user($thread_forum, $user)) return;
     $owner = BoincUser::lookup_id($thread->owner);
-    $j = $i % 2;
-    echo "<tr class=row$j><td>\n";
+    echo "<tr><td>\n";
     switch($thread_forum->parent_type) {
     case 0:
         $category = BoincCategory::lookup_id($thread_forum->category);
@@ -1296,7 +1326,7 @@ function subscribe_rss($notify, &$title, &$msg, &$url) {
     $thread = BoincThread::lookup_id($notify->opaque);
     $title = tra("New posts in subscribed thread");
     $msg = tra("There are new posts in the thread '%1'",$thread->title);
-    $url = URL_BASE."forum_thread.php?id=$thread->id";
+    $url = secure_url_base()."forum_thread.php?id=$thread->id";
 }
 
 function show_mark_as_read_button($user) {
diff --git a/html/inc/forum_db.inc b/html/inc/forum_db.inc
index 8488763..ff0b72d 100644
--- a/html/inc/forum_db.inc
+++ b/html/inc/forum_db.inc
@@ -150,6 +150,10 @@ class BoincForumPrefs {
         } else {
             $prefs = self::lookup_userid($user->id);
             if (!$prefs) {
+                $db = BoincDb::get();
+                if ($db->readonly) {
+                    return;
+                }
                 self::insert("(userid, last_post, forum_sorting, thread_sorting, rated_posts, ignorelist, pm_notification) values ($user->id, 0, 0, 8, '', '', 0)");
                 $prefs = self::lookup_userid($user->id);
                 $prefs->userid = $user->id;
diff --git a/html/inc/forum_email.inc b/html/inc/forum_email.inc
index 0bd6d4b..bcb92fc 100644
--- a/html/inc/forum_email.inc
+++ b/html/inc/forum_email.inc
@@ -60,7 +60,8 @@ function mail_report_list($forum, $subject, $body, $must_send=false) {
 //////////////////// post hidden/unhidden ///////////
 //
 function send_moderation_email($forum, $post, $thread, $explanation, $action) {
-    $master_url = parse_config(get_config(), "<master_url>");
+    global $master_url;
+
     $moderator=get_logged_in_user();
     $body = "";
     $user = BoincUser::lookup_id($post->user);
@@ -68,7 +69,7 @@ function send_moderation_email($forum, $post, $thread, $explanation, $action) {
     $subject = PROJECT." moderation notice";
 
     $body = "Your post [ID $post->id] in thread '$thread->title'
-".URL_BASE."forum_thread.php?id=$thread->id#$post->id
+".secure_url_base()."forum_thread.php?id=$thread->id#$post->id
 has been $action by moderator $moderator->name (ID $moderator->id).
 $explanation
 
@@ -78,11 +79,11 @@ $post->content
 For assistance with ".PROJECT." go to ".$master_url;
 
     $success = send_email($user, $subject, $body);
-    pm_send($user, $user, $subject, $body, false);
+    pm_send_msg($user, $user, $subject, $body, false);
 
     $body = "Because of moderation by $moderator->name (ID $moderator->id),
 The following email was sent to $user->name (ID $user->id)
-".URL_BASE."forum_user_posts.php?userid=$user->id
+".secure_url_base()."forum_user_posts.php?userid=$user->id
 ------------------------------
 Subject: $subject
 
@@ -98,14 +99,15 @@ $body
 function send_thread_moderation_email(
     $forum, $thread, $message, $action_name, $explanation
 ) {
-    $master_url = parse_config(get_config(), "<master_url>");
+    global $master_url;
+
     $moderator = get_logged_in_user();
     $user = BoincUser::lookup_id($thread->owner);
     $body = "";
 
     $subject = PROJECT." forum moderation notice";
     $body = "Your thread '$thread->title'
-".URL_BASE."forum_thread.php?id=$thread->id
+".secure_url_base()."forum_thread.php?id=$thread->id
 has been $action_name by moderator $moderator->name (ID $moderator->id).
 $explanation
 
@@ -114,7 +116,7 @@ For assistance with ".PROJECT." go to ".$master_url;
     $subject = "THREAD $action REPORT: $thread->title";
     $success = mail_report_list($forum, $subject, $body);
     $success &= send_email($user, $subject, $body);
-    pm_send($user, $user, $subject, $body, false);
+    pm_send_msg($user, $user, $subject, $body, false);
     return $success;
 }
 
@@ -123,14 +125,14 @@ For assistance with ".PROJECT." go to ".$master_url;
 //
 function send_reply_notification_email($thread, $user){
     $title = PROJECT . ": A user has posted to '". $thread->title ."'";
-    $link = URL_BASE . "forum_thread.php?id=" . $thread->id;
+    $link = secure_url_base() . "forum_thread.php?id=" . $thread->id;
     $body = "Another " . PROJECT . " user has posted to the thread
 \"" . $thread->title . "\".\n"
            ."To view the updated thread, visit:\n$link
 
 --------------------------
 To change email preferences, visit:
-".URL_BASE."edit_forum_preferences_form.php
+".secure_url_base()."edit_forum_preferences_form.php
 Do not reply to this message.
 ";
     return send_email($user, $title, $body);
@@ -139,7 +141,8 @@ Do not reply to this message.
 //////////////////// a user clicks the red "x" to report a post ///////////
 //
 function send_report_post_email($user, $forum, $thread,  $post, $message) {
-	$master_url = parse_config(get_config(), "<master_url>");
+	global $master_url;
+
     $body = "";
     $owner = BoincUser::lookup_id($post->user);
 
@@ -150,7 +153,7 @@ A post in the ".PROJECT." forums was reported as offensive.
     Thread:         $thread->title
     Post:           $post->id by $owner->id ($owner->name)
     Reporting User: $user->id ($user->name)
-    Link:           ".URL_BASE."forum_thread.php?id=$thread->id#$post->id
+    Link:           ".secure_url_base()."forum_thread.php?id=$thread->id#$post->id
     
 Comments from reporting user:
 $message
@@ -187,14 +190,14 @@ because your postings have not followed our guidelines.
     }
     $success = mail_report_list($forum, "$user->name (ID $user->id) has been banished.", $body);
     $success &= send_email($user, $subject, $body);
-    pm_send($user, $user, $subject, $body, false);
+    pm_send_msg($user, $user, $subject, $body, false);
     return $success;
 }
 
 //////////////////// a banishment vote has been started  ///////////
 //
 function send_banish_vote_email($user, $duration, $reason, $end_time) {
-	$master_url = parse_config(get_config(), "<master_url>");
+	global $master_url;
     $now=time();
     $subject = PROJECT." banishment vote underway";
     $vote_url = $master_url."forum_banishment_vote.php";
@@ -213,7 +216,7 @@ able to resume posting at that time.
         $body .= $reason;
     }
     $success = send_email($user, $subject, $body);
-    pm_send($user, $user, $subject, $body, false);
+    pm_send_msg($user, $user, $subject, $body, false);
 
     $body .= "\n\n<a href=".$vote_url."?action=yes&userid="
              .$user->id
diff --git a/html/inc/forum_rss.inc b/html/inc/forum_rss.inc
index a3f1144..7a6458d 100644
--- a/html/inc/forum_rss.inc
+++ b/html/inc/forum_rss.inc
@@ -30,7 +30,7 @@ function contains_image_or_video($x) {
 }
 
 function show_forum_rss_item($thread, $userid, $threads_only, $no_images) {
-    $unique_url=URL_BASE."forum_thread.php?id=".$thread->id;
+    $unique_url=secure_url_base()."forum_thread.php?id=".$thread->id;
 
     $clause2 = " and hidden=0 ";
     if ($userid) $clause2 .= "and user=$userid";
@@ -102,20 +102,20 @@ function forum_rss($forumid, $userid, $threads_only, $ndays) {
     if ($userid) {
         $description .= " (posts by $user->name)";
     }
-    $channel_image = URL_BASE . "rss_image.gif";
+    $channel_image = secure_url_base() . "rss_image.gif";
     $language = "en-us";
     echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
         <rss version=\"2.0\">
         <channel>
         <title>".$description."</title>
-        <link>".URL_BASE."</link>
+        <link>".secure_url_base()."</link>
         <copyright>".COPYRIGHT_HOLDER."</copyright>
         <lastBuildDate>".$create_date."</lastBuildDate>
         <language>".$language."</language>
         <image>
             <url>".$channel_image."</url>
             <title>".PROJECT."</title>
-            <link>".URL_BASE."</link>
+            <link>".secure_url_base()."</link>
         </image>
     ";
 
diff --git a/html/inc/friend.inc b/html/inc/friend.inc
index b0a83e8..a5e36fb 100644
--- a/html/inc/friend.inc
+++ b/html/inc/friend.inc
@@ -61,11 +61,11 @@ $src_user->name says: $msg
 
     $message .= "
 Please accept or decline by visiting
-".URL_BASE."home.php
+".secure_url_base()."home.php
 
 --------------------------
 To change email preferences, visit:
-".URL_BASE."edit_forum_preferences_form.php
+".secure_url_base()."edit_forum_preferences_form.php
 Do not reply to this message.
 " ;
     send_email($dest_user, "[".PROJECT."] friend request", $message);
@@ -83,11 +83,11 @@ $dest_user->name says: $msg
 
     $message .= "
 Visit your Account page at
-".URL_BASE."home.php
+".secure_url_base()."home.php
 
 --------------------------
 To change email preferences, visit:
-".URL_BASE."edit_forum_preferences_form.php
+".secure_url_base()."edit_forum_preferences_form.php
 Do not reply to this message.
 " ;
     send_email($src_user, "[".PROJECT."] friend confirmed", $message);
@@ -101,7 +101,7 @@ function friend_req_rss($notify, &$title, &$msg, &$url) {
     }
     $title = "Friend request";
     $msg = "$src_user->name has requested friendship with you. Please accept or decline.";
-    $url = URL_BASE."friend.php?action=query&target_userid=$notify->userid&userid=$notify->opaque";
+    $url = secure_url_base()."friend.php?action=query&target_userid=$notify->userid&userid=$notify->opaque";
 }
 
 function friend_accept_rss($notify, &$title, &$msg, &$url) {
@@ -112,7 +112,7 @@ function friend_accept_rss($notify, &$title, &$msg, &$url) {
     }
     $title = "Friendship confirmation";
     $msg = "$src_user->name has confirmed you as a friend";
-    $url = URL_BASE."home.php";
+    $url = secure_url_base()."home.php";
 }
 
 ?>
diff --git a/html/inc/host.inc b/html/inc/host.inc
index de1bb70..516a345 100644
--- a/html/inc/host.inc
+++ b/html/inc/host.inc
@@ -51,13 +51,14 @@ function location_form($host) {
     if ($host->venue == "school") $s = "selected";
     $x = "<form action=host_venue_action.php>
         <input type=hidden name=hostid value=$host->id>
-        <select name=venue>
+        <select class=\"form-control\" name=venue>
         <option value=\"\" $none>---
         <option value=home $h>".tra("Home")."
         <option value=work $w>".tra("Work")."
         <option value=school $s>".tra("School")."
         </select>
-        <input class=\"btn btn-primary\" type=submit value=".tra("Update").">
+        <p></p>
+        <input class=\"btn btn-primary btn-sm\" type=submit value=\"".tra("Update location")."\">
         </form>
     ";
     return $x;
@@ -70,7 +71,7 @@ function cross_project_links($host) {
         $url = $h[0];
         $name = $h[1];
         $img = $h[2];
-        $x .= "<a href=$url".$host->host_cpid."><img border=2 src=img/$img alt=\"$name\"></a>\n";
+        $x .= "<a href=$url".$host->host_cpid."><img class=\"icon\" border=2 src=img/$img alt=\"$name\"></a> ";
     }
     return $x;
 }
@@ -124,9 +125,9 @@ function show_host($host, $user, $ipprivate) {
     if ($v) {
         row2(tra("BOINC version"), $v);
     }
-    $x = $host->m_nbytes/MEGA;
+    $x = $host->m_nbytes/GIGA;
     $y = round($x, 2);
-    row2(tra("Memory"), tra("%1 MB", $y));
+    row2(tra("Memory"), tra("%1 GB", $y));
     if ($host->m_cache > 0) {
         $x = $host->m_cache/KILO;
         $y = round($x, 2);
@@ -134,9 +135,9 @@ function show_host($host, $user, $ipprivate) {
     }
 
     if ($user) {
-        $x = $host->m_swap/MEGA;
+        $x = $host->m_swap/GIGA;
         $y = round($x, 2);
-        row2(tra("Swap space"), tra("%1 MB", $y));
+        row2(tra("Swap space"), tra("%1 GB", $y));
         $x = $host->d_total/GIGA;
         $y = round($x, 2);
         row2(tra("Total disk space"), tra("%1 GB", $y));
@@ -144,12 +145,12 @@ function show_host($host, $user, $ipprivate) {
         $y = round($x, 2);
         row2(tra("Free Disk Space"), tra("%1 GB", $y));
     }
-    $x = $host->p_fpops/(1000*1000);
+    $x = $host->p_fpops/1e9;
     $y = round($x, 2);
-    row2(tra("Measured floating point speed"), tra("%1 million ops/sec", $y));
-    $x = $host->p_iops/(1000*1000);
+    row2(tra("Measured floating point speed"), tra("%1 billion ops/sec", $y));
+    $x = $host->p_iops/1e9;
     $y = round($x, 2);
-    row2(tra("Measured integer speed"), tra("%1 million ops/sec", $y));
+    row2(tra("Measured integer speed"), tra("%1 billion ops/sec", $y));
     $x = $host->n_bwup/KILO;
     $y = round($x, 2);
     if ($y > 0) {
@@ -201,11 +202,11 @@ function show_host($host, $user, $ipprivate) {
         } else {
             $x = "";
         }
-        row2(tra("Merge duplicate records of this computer"), "<a href=host_edit_form.php?hostid=$host->id>".tra("Merge")."</a> $x");
+        row2(tra("Merge duplicate records of this computer"), "<a class=\"btn btn-primary btn-sm\" href=host_edit_form.php?hostid=$host->id>".tra("Merge")."</a> $x");
     } else {
         row2(tra("Number of times client has contacted server"), $host->rpc_seqno);
         row2(tra("Last contact"), date_str($host->rpc_time));
-	}
+    }
     echo "</table>\n";
 
 }
@@ -215,29 +216,26 @@ function show_host($host, $user, $ipprivate) {
 function top_host_table_start($sort_by) {
     global $host_sites;
     shuffle($host_sites);
-    start_table();
-    echo "<tr>";
-    echo "<th>".tra("Computer info")."</th>\n";
-    echo "<th>".tra("Rank")."</th>";
-    echo "<th>".tra("Owner")."</th>\n";
+    start_table('table-striped');
+    $x = array(
+        tra("Computer info"),
+        tra("Rank"),
+        tra("Owner"),
+    );
     if ($sort_by == 'total_credit') {
-        echo "
-            <th><a href=top_hosts.php?sort_by=expavg_credit>".tra("Avg. credit")."</a></th>
-            <th>".tra("Total credit")."</th>
-        ";
+        $x[] = "<a href=top_hosts.php?sort_by=expavg_credit>".tra("Avg. credit")."</a>";
+        $x[] = tra("Total credit");
     } else {
-        echo "
-            <th>".tra("Recent average credit")."</th>
-            <th><a href=top_hosts.php?sort_by=total_credit>".tra("Total credit")."</a></th>
-        ";
-    }
-    echo "
-        <th>".tra("BOINC version")."</th>
-        <th>".tra("CPU")."</th>
-        <th>".tra("GPU")."</th>
-        <th>".tra("Operating system")."</th>
-        </tr>
-    ";
+        $x[] = tra("Recent average credit");
+        $x[] = "<a href=top_hosts.php?sort_by=total_credit>".tra("Total credit")."</a>";
+    }
+    $x[] = tra("BOINC version");
+    $x[] = tra("CPU");
+    $x[] = tra("GPU");
+    $x[] = tra("Operating system");
+    $s = 'style="text-align:right;"';
+    $a = array("", "", "", $s, $s, "", "", "", "");
+    row_heading_array($x, $a, "bg-default");
 }
 
 function host_nresults($host) {
@@ -255,14 +253,16 @@ function gpu_desc($x) {
         $desc = trim($desc, "[");
         $d = explode("|", $desc);
         //print_r($d);
-		if ($d[0] == "BOINC") continue;
-		if ($d[0] == "vbox") continue;
-		if ($str) $str .= ", ";
+        if ($d[0] == "BOINC") continue;
+        if ($d[0] == "vbox") continue;
+        if ($str) $str .= "<p>";
         if ($d[2]!="" && $d[2]!="1") $str .= "[".$d[2]."] ";
         if ($d[0] == "CUDA") {
             $str .= "NVIDIA";
         } else if ($d[0] == "CAL") {
             $str .= "AMD";
+        } else if ($d[0] == "opencl_gpu") {
+            $str .= "OpenCL GPU";
         } else {
             $str .= $d[0];
         }
@@ -325,7 +325,6 @@ function cpu_desc($host) {
 // If private is false, show the owner's name only if they've given permission
 //
 function show_host_row($host, $i, $private, $show_owner, $any_product_name) {
-    $j = $i % 2;
     $anonymous = false;
     if (!$private) {
         if ($show_owner) {
@@ -336,13 +335,13 @@ function show_host_row($host, $i, $private, $show_owner, $any_product_name) {
             }
         }
     }
-    echo "<tr class=row$j><td>ID: $host->id
+    echo "<tr><td>ID: $host->id
         <br><a href=show_host_detail.php?hostid=$host->id>".tra("Details")."</a> |
         <a href=results.php?hostid=$host->id>".tra("Tasks")."</a>
     ";
     if (!$anonymous) {
         echo "
-            <br><nobr><p class=\"text-muted\">".tra("Cross-project stats:")."</p></nobr><br>".cross_project_links($host);
+            <br><nobr><small>".tra("Cross-project stats:")."</small></nobr><br>".cross_project_links($host);
     }
     echo "
         </td>
@@ -389,7 +388,7 @@ function show_host_row($host, $i, $private, $show_owner, $any_product_name) {
             <td>%s</td>
             <td>%s</td>
             <td>%s</td>
-            <td>%s<br><p class=\"text-muted\">%s</p></td>
+            <td>%s<br><small>%s</small></td>
             <td>%s</td>
             ",
             format_credit($host->expavg_credit),
@@ -665,33 +664,49 @@ function more_or_less($sort, $rev, $show_all) {
 function user_host_table_start(
     $private, $sort, $rev, $show_all, $any_product_name
 ) {
-    start_table();
-    echo "<tr>";
+    start_table('table-striped');
+    $x = array();
+    $a = array();
+
     $url = link_url_rev($sort, "id", $rev, $show_all);
-    echo "<th><a href=$url>".tra("Computer ID")."</a></th>\n";
+    $x[] = "<a href=$url>".tra("Computer ID")."</a>";
+    $a[] = '';
+
     if ($private) {
         $url = link_url_rev($sort, "name", $rev, $show_all);
-        echo "<th><a href=$url>".tra("Name")."</a></th>\n";
+        $x[] = "<a href=$url>".tra("Name")."</a>";
+        $a[] = null;
         $url = link_url_rev($sort, "venue", $rev, $show_all);
         if ($any_product_name) {
-            echo "<th>Model</th>\n";
+            $x[] = tra("Model");
+            $a[] = null;
         }
-        echo "<th><a href=$url>".tra("Location")."</th>\n";
+        $x[] = "<a href=$url>".tra("Location")."</a>";
+        $a[] = null;
     } else {
-        echo "<th>".tra("Rank")."</th>";
+        $x[] = tra("Rank");
+        $a[] = null;
     }
     $url = link_url_rev($sort, "expavg_credit", $rev, $show_all);
-    echo "<th><a href=$url>".tra("Avg. credit")."</a></th>\n";
+    $x[] = "<a href=$url>".tra("Avg. credit")."</a>";
+    $a[] = ALIGN_RIGHT;
     $url = link_url_rev($sort, "total_credit", $rev, $show_all);
-    echo "<th><a href=$url>".tra("Total credit")."</a></th>\n";
-    echo "<th>".tra("BOINC<br>version")."</th>\n";
+    $x[] = "<a href=$url>".tra("Total credit")."</a>";
+    $a[] = ALIGN_RIGHT;
+    $x[] = tra("BOINC<br>version");
+    $a[] = null;
     $url = link_url_rev($sort, "cpu", $rev, $show_all);
-    echo "<th><a href=$url>".tra("CPU")."</a></th>\n";
-    echo "<th>".tra("GPU")."</th>\n";
+    $x[] = "<a href=$url>".tra("CPU")."</a>";
+    $a[] = null;
+    $x[] = tra("GPU");
+    $a[] = null;
     $url = link_url_rev($sort, "os", $rev, $show_all);
-    echo "<th><a href=$url>".tra("Operating System")."</a></th>\n";
+    $x[] = "<a href=$url>".tra("Operating System")."</a>";
+    $a[] = null;
     $url = link_url_rev($sort, "rpc_time", $rev, $show_all);
-    echo "<th><a href=$url>".tra("Last contact")."</a></th>\n";
+    $x[] = "<a href=$url>".tra("Last contact")."</a>";
+    $a[] = null;
+    row_heading_array($x, $a, "bg-default");
 }
 
 function show_user_hosts($userid, $private, $show_all, $sort, $rev) {
@@ -739,7 +754,7 @@ function show_user_hosts($userid, $private, $show_all, $sort, $rev) {
         show_host_row($host, $i, $private, false, $any_product_name);
         $i++;
     }
-    echo "</table>\n";
+    end_table();
 
     if ($old_hosts>0) {
         more_or_less($sort, $rev, $show_all);
diff --git a/html/inc/image.inc b/html/inc/image.inc
index ffe39dc..053765c 100644
--- a/html/inc/image.inc
+++ b/html/inc/image.inc
@@ -21,7 +21,9 @@
 //
 function intelligently_scale_image($sourcefile, $fw, $fh) {
     $gd_info = gd_info();
-    $newGD = (strstr($gd_info["GD Version"], "2.0")!="");
+    // libgd version numbers seem to be always three numbers
+    preg_match('/(\d).(\d).(\d)/', $gd_info['GD Version'], $match);
+    $newGD = ($match[1]>=2);
 
     list($ow, $oh, $from_type) = getimagesize($sourcefile);
     switch($from_type) {
diff --git a/html/inc/language_names.inc b/html/inc/language_names.inc
index 5cdb868..3c7ed3b 100644
--- a/html/inc/language_names.inc
+++ b/html/inc/language_names.inc
@@ -55,42 +55,52 @@ $language_names = array(
     array("zh_TW", "繁體中文", "Chinese (Taiwan)"),
 );
 
-function language_select() {
+function language_select($cur_lang_name) {
     global $language_names;
     $supported_languages = get_supported_languages();
     $supported_languages[] = "en";
-    $bd = tra("Browser default");
+    $sel = $cur_lang_name?"":"selected";
     echo "
-        <option value=auto selected=\"selected\">-- language --
-        <option value=auto>$bd
+        <option $sel value=auto> Browser default
     ";
-    if ($bd != "Browser default") echo " (Browser default)";
     foreach ($language_names as $lang) {
         if (!in_array($lang[0], $supported_languages)) continue;
+        $sel = ($cur_lang_name == $lang[0])?"selected":"";
         if ($lang[0] == "en") {
-            echo "<option value=".$lang[0].">".$lang[1];
+            echo "<option $sel value=".$lang[0].">".$lang[1];
         } else {
-            echo "<option value=".$lang[0].">".$lang[1]." (".$lang[2].")";
+            echo "<option $sel value=".$lang[0].">".$lang[1]." (".$lang[2].")";
         }
+        echo "\n";
     }
 }
 
 // show a menu of supported languages
 //
-function language_form() {
-    echo "
-        <table><tr><td>
-        <form name=language method=get action=set_language.php>
-        <select class=selectbox name=lang onchange=\"javascript: submit()\">
-    ";
-    language_select();
-    echo "</select>
+function language_form($cur_lang_name=null) {
+    echo '
+        <form name="language" method="get" action="set_language.php">
+        <select class="selectbox form-control" name="lang" onchange="javascript: submit()">
+    ';
+    language_select($cur_lang_name);
+    echo '</select>
         </form>
-        <script type=\"text/javascript\">
-        document.language.lang.selectedIndex=0;
-        </script>
-        </td></tr></table>
-    ";
+    ';
+}
+
+// given a language code, return a string of the form "(int-name/native-name)"
+//
+function language_desc($code) {
+    global $language_names;
+    if ($code == 'en') {
+        return '(English)';
+    }
+    foreach ($language_names as $lang) {
+        if ($code == $lang[0]) {
+            return "'$code'".' ('.$lang[1].'/'.$lang[2].')';
+        }
+    }
+    return "'$code'";
 }
 
 ?>
diff --git a/html/inc/news.inc b/html/inc/news.inc
index f18ca56..336d426 100644
--- a/html/inc/news.inc
+++ b/html/inc/news.inc
@@ -19,7 +19,7 @@
 function news_item($date, $title, $post) {
     echo "<p>";
     if ($title) {
-        echo "<span class=news_title>$title</span><br>\n";
+        echo "<span class=\"lead\">$title</span><br>\n";
     }
     $d = time_str($date);
     $options = new output_options();
@@ -32,17 +32,18 @@ function news_item($date, $title, $post) {
         $text = output_transform($post->content, $options);
     }
     echo "
-        <span class=news_content>$text</span>
-        <span class=news_date>$d
+        $text
+        <br>
+        <span class=\"small\">$d
     ";
     if ($forum_link && !DISABLE_FORUMS) {
         echo "
-            · <a href=".URL_BASE."forum_thread.php?id=$post->thread> ".tra("Comment")."</a>
+            · <a href=\"".url_base()."forum_thread.php?id=$post->thread\"> ".tra("Discuss")."</a>
         ";
     }
     echo "</span>
         <br clear=all>
-        <hr size=0 class=news_line>
+        <hr>
     ";
 }
 
@@ -103,7 +104,7 @@ function show_news($start, $count) {
     }
 
     if ($count) {
-        echo "<a href=".URL_BASE."old_news.php>... more</a>";
+        echo "<a href=".url_base()."old_news.php>... more</a>";
     }
     echo "
         <br><br><small>
diff --git a/html/inc/notify.inc b/html/inc/notify.inc
index da1c14a..8c1d179 100644
--- a/html/inc/notify.inc
+++ b/html/inc/notify.inc
@@ -23,7 +23,7 @@ function notify_rss_auth($user) {
 }
 
 function notify_rss_url($user) {
-    return URL_BASE."notify_rss.php?userid=$user->id&auth=".notify_rss_auth($user);
+    return secure_url_base()."notify_rss.php?userid=$user->id&auth=".notify_rss_auth($user);
 }
 
 function show_notify_rss_item($notify) {
@@ -49,7 +49,7 @@ function show_notify_rss_item($notify) {
     $news_date=gmdate('D, d M Y H:i:s',$notify->create_time) . ' GMT';
     echo "<item>
         <title><![CDATA[$title]]></title>
-        <guid>".URL_BASE."_notify_$notify->id</guid>
+        <guid>".url_base()."_notify_$notify->id</guid>
         <link>".htmlentities($url)."</link>
         <description><![CDATA[$msg]]></description>
         <pubDate>$news_date</pubDate>
diff --git a/html/inc/pm.inc b/html/inc/pm.inc
index 268f6d9..ca9349c 100644
--- a/html/inc/pm.inc
+++ b/html/inc/pm.inc
@@ -27,17 +27,69 @@ function pm_header() {
     echo "</div>\n";
 }
 
+function pm_team_form($user, $teamid, $error=null) {
+    global $bbcode_html, $bbcode_js;
+    $team = BoincTeam::lookup_id($teamid);
+    if (!$team) {
+        error_page("no such team");
+    }
+    if (!is_team_admin($user, $team)) {
+        error_page("not admin");
+    }
+
+    page_head(tra("Send message to team"),'','','', $bbcode_js);
+
+    $subject = post_str("subject", true);
+    $content = post_str("content", true);
+    if (post_str("preview", true) == tra("Preview")) {
+        panel(tra('Preview'),
+            function() use($content) {
+                echo output_transform($content, null);
+            }
+        );
+    }
+    if ($error) {
+        echo "<p class=\"text-danger\">".$error."</p>\n";
+    }
+    
+    echo "<form action=\"pm.php\" method=\"post\" name=\"post\" onsubmit=\"return checkForm(this)\">\n";
+    echo "<input type=\"hidden\" name=\"action\" value=\"send\">\n";
+    echo "<input type=\"hidden\" name=\"teamid\" value=\"$teamid\">\n";
+    echo form_tokens($user->authenticator);
+    start_table();
+    row2(
+        tra("Subject"),
+        "<input type=\"text\" class=\"form-control\" name=\"subject\" value=\"$subject\">",
+        null, '20%'
+    );
+    row2_init(tra("Message")."<small>".html_info()."</small>", "", '20%');
+    start_table();
+    echo $bbcode_html;
+    echo "<tr><td>\n";
+    echo "<textarea name=\"content\" class=\"form-control\" rows=\"18\">$content</textarea>";
+    echo "</td></tr>\n";
+    end_table();
+    echo "<tr><td></td><td>
+        <input class=\"btn btn-default\" type=\"submit\" name=\"preview\" value=\"".tra("Preview")."\">
+        <input class=\"btn btn-primary\" type=\"submit\" value=\"".tra("Send message")."\">
+        </td></tr>\n
+    ";
+    end_table();
+    page_tail();
+}
+
 function pm_form($replyto, $userid, $error = null) {
     global $bbcode_html, $bbcode_js;
     global $g_logged_in_user;
     page_head(tra("Send private message"),'','','', $bbcode_js);
     
     if (post_str("preview", true) == tra("Preview")) {
-        $options = new output_options;
-        echo tra("Preview");
-        echo "<div class=\"pm_preview\">\n";
-        echo output_transform(post_str("content", true), $options);
-        echo "</div>\n";
+        $content = post_str("content", true);
+        panel(tra('Preview'),
+            function() use($content) {
+                echo output_transform($content, null);
+            }
+        );
     }
     
     $subject = null;
@@ -50,18 +102,20 @@ function pm_form($replyto, $userid, $error = null) {
         $content = "[quote]".$message->content."[/quote]\n";
         $userid = $message->senderid;
         $user = BoincUser::lookup_id($userid);
-        if ($user) {
-            $writeto = $userid." (".$user->name.")";
+        if (!$user) {
+            error_page("Sender no longer exists");
         }
+        $writeto = $userid." (".$user->name.")";
         $subject = $message->subject;
         if (substr($subject, 0, 3) != "re:") {
             $subject = "re: ".$subject;
         }
     } elseif ($userid) {
         $user = BoincUser::lookup_id($userid);
-        if ($user) {
-            $writeto = $userid." (".$user->name.")";
+        if (!$user) {
+            error_page("Sender no longer exists");
         }
+        $writeto = $userid." (".$user->name.")";
     } else {
         $writeto = sanitize_tags(post_str("to", true));
         $subject = post_str("subject", true);
@@ -80,12 +134,25 @@ function pm_form($replyto, $userid, $error = null) {
     echo form_tokens($g_logged_in_user->authenticator);
     start_table();
     row2(tra("To")."<br /><small>".tra("User IDs or unique usernames, separated with commas")."</small>",
-        "<input type=\"text\" name=\"to\" value=\"$writeto\" size=\"60\">"
+        "<input type=\"text\" class=\"form-control\" name=\"to\" value=\"$writeto\">",
+        null, '20%'
     );
-    row2(tra("Subject"), "<input type=\"text\" name=\"subject\" value=\"$subject\" size=\"60\">");
-    row2(tra("Message")."<small>".html_info()."</small>",
-        $bbcode_html."<textarea name=\"content\" class=\"input-block-level\" rows=\"18\" cols=\"80\">$content</textarea>"
+    row2(
+        tra("Subject"),
+            "<input type=\"text\" class=\"form-control\" name=\"subject\" value=\"$subject\">",
+        null, '20%'
     );
+    row2_init(
+        tra("Message")."<small>".html_info()."</small>",
+        "",
+        '20%'
+    );
+    start_table();
+    echo $bbcode_html;
+    echo "<tr><td>\n";
+    echo "<textarea name=\"content\" class=\"form-control\" rows=\"18\">$content</textarea>";
+    echo "</td></tr>\n";
+    end_table();
     echo "<tr><td></td><td><input class=\"btn btn-default\" type=\"submit\" name=\"preview\" value=\"".tra("Preview")."\"> <input class=\"btn btn-primary\" type=\"submit\" value=\"".tra("Send message")."\"></td></tr>\n";
     end_table();
     
@@ -106,10 +173,10 @@ $content
 
 --------------------------
 To delete or respond to this message, visit:
-".URL_BASE."pm.php
+".secure_url_base()."pm.php
 
 To change email preferences, visit:
-".URL_BASE."edit_forum_preferences_form.php
+".secure_url_base()."edit_forum_preferences_form.php
 Do not reply to this message.
 " ;
     send_email($to_user, "[".PROJECT."] - private message", $message);
@@ -129,7 +196,7 @@ function pm_web_line($notify) {
     return "<a href=pm.php>".tra("Private message%1 from %2, subject:" , "</a>", $from_user->name )." $pm->subject";
 }
 
-function pm_send($from_user, $to_user, $subject, $content, $send_email) {
+function pm_send_msg($from_user, $to_user, $subject, $content, $send_email) {
     $sql_subject = BoincDb::escape_string(sanitize_tags($subject));
     $sql_content = BoincDb::escape_string($content);
     $mid = BoincPrivateMessage::insert("(userid, senderid, date, subject, content) VALUES ($to_user->id, $from_user->id, UNIX_TIMESTAMP(), '$sql_subject', '$sql_content')");
@@ -159,7 +226,14 @@ function pm_send($from_user, $to_user, $subject, $content, $send_email) {
 
 function pm_count($userid, $duration) {
     $time = time() - $duration;
-    return BoincPrivateMessage::count("senderid=$userid AND date>$time");
+
+    // we don't want to include team messages in this count.
+    // Kludge for excluding them based on subject.
+    // Should add a flag to private_message to distinguish them.
+    //
+    return BoincPrivateMessage::count(
+        "senderid=$userid AND date>$time AND subject not like 'Message from team%'"
+    );
 }
 
 function check_pm_count($userid) {
@@ -183,12 +257,12 @@ function pm_notification($user) {
 
 function pm_email_remind($user) {
     if (!$user->prefs->pm_notification) {
-        return "<br><p class=\"text-muted\">" .
+        return "<br><small>" .
             tra(
                 "For email notification, %1edit community prefs%2",
                 '<a href="edit_forum_preferences_form.php">', '</a>'
             ) .
-            "</p>"
+            "</small>"
         ;
     }
     return "";
@@ -202,8 +276,8 @@ function pm_rss($notify, &$title, &$msg, &$url) {
         return;
     }
     $title = tra("Private message");
-    $msg = "You have received a <a href=".URL_BASE."pm.php>private message</a>.";
-    $url = URL_BASE."pm.php";
+    $msg = "You have received a <a href=".secure_url_base()."pm.php>private message</a>.";
+    $url = secure_url_base()."pm.php";
 }
 
 function pm_delete_user($user) {
diff --git a/html/inc/prefs.inc b/html/inc/prefs.inc
index 8240e85..1fb7cc0 100644
--- a/html/inc/prefs.inc
+++ b/html/inc/prefs.inc
@@ -40,6 +40,12 @@
 // and also to/from HTML form elements
 
 include_once("../inc/prefs_util.inc");
+include_once("../inc/translation.inc");
+
+global $cpu_prefs;
+global $disk_prefs;
+global $mem_prefs;
+global $net_prefs;
 
 $cpu_prefs = array(
     tra("Usage limits"),
@@ -116,14 +122,14 @@ $cpu_prefs = array(
         new NUM_SPEC(tra("days of work"), 0, 10, .5)
     ),
     new PREF_NUM(
-        tra("Switch between tasks about every"),
+        tra("Switch between tasks every"),
         tra("If you run several projects, BOINC may switch between them this often."),
         "cpu_scheduling_period_minutes",
         new NUM_SPEC(tra("minutes"), 1, 9999, 60)
     ),
     new PREF_NUM(
         tra("Request tasks to checkpoint at most every"),
-        tra("This controls how often tasks save their state to disk, so that they can be restarted later."),
+        tra("This controls how often tasks save their state to disk, so that later they can be continued from that point."),
         "disk_interval",
         new NUM_SPEC(tra("seconds"), 0, 9999999, 60)
     ),
@@ -189,13 +195,13 @@ $net_prefs = array(
         tra("Limit download rate to"),
         tra("Limit the download rate of file transfers."),
         "max_bytes_sec_down",
-        new NUM_SPEC(tra("KB/second"), 0, 9999999, 0, 1000, 100)
+        new NUM_SPEC(tra("KB/second"), 0, 9999999, 0, 1024, 100)
     ),
     new PREF_OPT_NUM(
         tra("Limit upload rate to"),
         tra("Limit the upload rate of file transfers."),
         "max_bytes_sec_up",
-        new NUM_SPEC(tra("KB/second"), 0, 9999999, 0, 1000, 100)
+        new NUM_SPEC(tra("KB/second"), 0, 9999999, 0, 1024, 100)
     ),
     new PREF_NUM2(
         tra("Limit usage to"),
@@ -286,7 +292,7 @@ function get_disk_space_config() {
 }
 
 function group_header($t) {
-    echo "<tr><th class=subheading>$t</th><td colspan=4><br></td></tr>\n";
+    echo "<tr><th class=\"bg-info\">$t</th><td class=\"bg-info\" colspan=4><br></td></tr>\n";
 }
 
 // functions to parse preferences XML into a struct
@@ -300,7 +306,11 @@ function element_start_global($parser, $name, $attrs) {
 
     switch($name) {
     case "venue":
-        $venue_name = $attrs["name"];
+        if (array_key_exists("name", $attrs)) {
+            $venue_name = $attrs["name"];
+        } else {
+            $venue_name = "home";
+        }
         $top_parse_result = $parse_result;
         $parse_result = default_prefs_global();
         break;
@@ -469,7 +479,7 @@ function prefs_show_global($prefs) {
 }
 
 function subset_name($subset) {
-    if ($subset == "global") return tra("computing");
+    if ($subset == "global") return tra("Computing");
     return PROJECT;
 }
 
@@ -480,9 +490,8 @@ function prefs_display_venue($prefs, $venue, $subset) {
     if (isset($prefs->$venue)) $x = $prefs->$venue;
 
     if ($x) {
-        echo "<h2>".tra("Separate preferences for %1", $venue)."</h2>";
-        echo "<tr><td colspan=2>";
         start_table();
+        row_heading(tra("Separate preferences for %1", $venue));
         if ($subset == "global") {
             prefs_show_global($x);
         } else {
@@ -512,14 +521,14 @@ function print_prefs_display_global($user, $columns=false) {
     ";
     $switch_link = " <font size=\"-1\"><a href=prefs.php?subset=global&cols=". (int)!$columns .">".tra("(Switch view)")."</a></font>";
     if ($columns) {
-        echo "<h2>".tra("Combined preferences").$switch_link."</h2>";
+        echo "<h3>".tra("Combined preferences").$switch_link."</h3>";
         start_table();
         prefs_show_columns_global($global_prefs);
         end_table();
 
     } else {
         if (isset($global_prefs->home) || isset($global_prefs->work) || isset($global_prefs->school)) {
-            echo "<h2>".tra("Primary (default) preferences").$switch_link."</h2>";
+            echo "<h3>".tra("Primary (default) preferences").$switch_link."</h3>";
         }
         start_table();
         prefs_show_global($global_prefs);
@@ -556,7 +565,7 @@ function print_prefs_form(
         $script = "prefs_edit.php";
         $submit_value = tra("Update preferences");
     }
-    echo "<form action=$script><input type=hidden name=subset value=$subset>
+    echo "<form class=\"form-inline\" action=$script><input type=hidden name=subset value=$subset>
         ".form_tokens($user->authenticator);
     if ($venue) {
         echo "<input type=hidden name=venue value=$venue>\n";
@@ -640,8 +649,8 @@ define('VENUE_TOOLTIP', tra('New computers will use this location for computing
 
 function tooltip_row2($t, $x, $y) {
     echo "<tr title=\"$t\">
-        <td class=fieldname>$x</td>
-        <td>$y</td>
+        <td ".NAME_ATTRS.">$x</td>
+        <td ".VALUE_ATTRS.">$y</td>
         </tr>
     ";
 }
@@ -660,7 +669,7 @@ function venue_form($user) {
     tooltip_row2(
         VENUE_TOOLTIP,
         VENUE_DESC,
-        "<select name=default_venue>
+        "<select class=\"form-control input-sm\" name=default_venue>
         <option value=\"\" $n>---
         <option value=home $h>".tra("Home")."
         <option value=work $w>".tra("Work")."
diff --git a/html/inc/prefs_project.inc b/html/inc/prefs_project.inc
index 0a264d0..be599fd 100644
--- a/html/inc/prefs_project.inc
+++ b/html/inc/prefs_project.inc
@@ -45,8 +45,10 @@
 include_once("../inc/prefs_util.inc");
 include_once("../project/project_specific_prefs.inc");
 
+global $app_types;
 $app_types = get_app_types();
 
+global $project_pref_descs;
 $project_pref_descs = array(
     new PREF_NUM(
         tra("Resource share"),
@@ -111,9 +113,9 @@ if (project_has_beta()) {
     );
 }
 if (defined("EMAIL_FROM")) {
-    $x = "<br><p class=\"text-muted\">"
+    $x = "<br><small>"
         .tra("Emails will be sent from %1; make sure your spam filter accepts this address.", EMAIL_FROM)
-        ."</p>";
+        ."</small>";
 } else {
     $x = "";
 }
@@ -269,8 +271,8 @@ function print_prefs_display_project($user, $columns=false) {
 
     $switch_link = " <font size=\"-1\"><a href=prefs.php?subset=project&cols=". (int)!$columns .">".tra("(Switch View)")."</a></font>";
     if ($columns) {
-        echo "<h2>".tra("Combined preferences").$switch_link."</h2>";
         start_table();
+        row_heading(tra("Combined preferences").$switch_link);
         prefs_show_privacy($user, true);
         venue_show($user);
         row_top(tra("Project specific settings"));
@@ -279,10 +281,10 @@ function print_prefs_display_project($user, $columns=false) {
         row_links("project", $project_prefs);
         end_table();
     } else {
+        start_table();
         if (isset($project_prefs->home) || isset($project_prefs->work) || isset($project_prefs->school)) {
-            echo "<h2>".tra("Primary (default) preferences").$switch_link."</h2>";
+            row_heading(tra("Primary (default) preferences").$switch_link);
         }
-        start_table();
         prefs_show_project($project_prefs, false);
         prefs_show_privacy($user, false);
         venue_show($user);
diff --git a/html/inc/prefs_util.inc b/html/inc/prefs_util.inc
index 0a1e666..954d14a 100644
--- a/html/inc/prefs_util.inc
+++ b/html/inc/prefs_util.inc
@@ -69,7 +69,7 @@ abstract class PREF {
     function show_cols($prefs) {
         global $venues;
         $this->tooltip_tr();
-        echo "<td class=fieldname>$this->desc</td>";
+        echo "<td class=\"text-right \">$this->desc</td>";
         $tag = $this->tag;
         if (isset($prefs->$tag)) {
             $this->show_value($prefs);
@@ -90,7 +90,7 @@ abstract class PREF {
     //
     function show($prefs) {
         $this->tooltip_tr();
-        echo "<td class=fieldname>$this->desc</td>";
+        echo "<td class=\"text-right \">$this->desc</td>";
         $tag = $this->tag;
         if (isset($prefs->$tag)) {
             $this->show_value($prefs);
@@ -103,10 +103,8 @@ abstract class PREF {
     // show form row
     //
     function show_form_row($prefs, $error) {
-        $tag = $this->tag;
-        $class = isset($error->$tag)?"fieldname_error":"fieldname";
         $this->tooltip_tr();
-        echo "<td class=$class>$this->desc</td>";
+        echo "<td ".NAME_ATTRS.">$this->desc</td>";
         $this->show_form($prefs, $error);
         echo "</tr>\n";
     }
@@ -140,7 +138,7 @@ class PREF_BOOL extends PREF {
         } else {
             $checked = $prefs->$tag;
         }
-        echo "<td class=fieldvalue>"
+        echo "<td ".VALUE_ATTRS.">"
             ."<input type=checkbox name=$this->tag "
             . ($checked?"checked":"")
             ."></td>
@@ -182,11 +180,7 @@ class NUM_SPEC {
     public $scale;
 
     function __construct($suffix, $min, $max, $default, $scale=1, $default2=0) {
-        if (substr($suffix, 0, 1) == "%") {
-            $this->suffix = $suffix;
-        } else {
-            $this->suffix = " $suffix";
-        }
+        $this->suffix = " $suffix";
         $this->min = $min;
         $this->max = $max;
         $this->default = $default;
@@ -212,8 +206,8 @@ class NUM_SPEC {
             }
         }
         if ($disabled) $v = "";
-        $i = $id?"id=$id":"";
-        return "<input type=text size=5 name=$tag value='$v' $disabled $i>$this->suffix ";
+        $i = $id?"id=\"$id\"":"";
+        return '<input type="text" size="5" class="form-control input-sm" name="'.$tag.'" value="'.$v."\" $disabled $i>   $this->suffix ";
     }
     function form_convert($in, &$out, &$error) {
         $error = false;
@@ -249,8 +243,8 @@ class PREF_NUM extends PREF {
     function show_form($prefs, $error) {
         $tag = $this->tag;
         $had_error = isset($error->$tag);
-        $class = $had_error ?"fieldvalue_error":"fieldvalue";
-        echo "<td class=$class>"
+        $attrs = $had_error ?VALUE_ATTRS_ERR:VALUE_ATTRS;
+        echo "<td $attrs>"
             .$this->num_spec->form_str($tag, $prefs->$tag, $had_error)
             ."</td>
         ";
@@ -330,15 +324,15 @@ class PREF_OPT_NUM extends PREF {
     function show_form($prefs, $error) {
         $tag = $this->tag;
         $had_error = isset($error->$tag);
-        $class = $had_error ?"fieldvalue_error":"fieldvalue";
+        $attrs = $had_error ?VALUE_ATTRS_ERR:VALUE_ATTRS;
         $checkbox_id = $this->tag."_cb";
         $text_id = $this->tag;
         $default = $this->num_spec->get_default();
         $val = $prefs->$tag;
         $c = $val?"checked":"";
         $d = $val?"":"disabled";
-        echo "<td class=$class>"
-            ."<input type=checkbox id=$checkbox_id onClick=\"checkbox_clicked('$checkbox_id', '$text_id', $default)\" $c>"
+        echo "<td $attrs>"
+            ."<input type=checkbox id=$checkbox_id onClick=\"checkbox_clicked('$checkbox_id', '$text_id', $default)\" $c>  "
             .$this->num_spec->form_str($tag, $prefs->$tag, $had_error, $d, $text_id)
             ."</td>
         ";
@@ -393,7 +387,7 @@ class PREF_NUM2 extends PREF {
         $tag = $this->tag;
         $tag2 = $this->tag2;
         $had_error = isset($error->$tag) || isset($error->$tag2);
-        $class = $had_error?"fieldvalue_error":"fieldvalue";
+        $attrs = $had_error ?VALUE_ATTRS_ERR:VALUE_ATTRS;
         $checkbox_id = $this->tag."_cb";
         $t1_id = $this->tag."_t1";
         $t2_id = $this->tag."_t2";
@@ -408,8 +402,8 @@ class PREF_NUM2 extends PREF {
         }
         $def1 = $this->num_spec1->get_default();
         $def2 = $this->num_spec2->get_default();
-        echo "<td class=$class>"
-            ."<input type=checkbox id=$checkbox_id onClick=\"checkbox_clicked2('$checkbox_id', '$t1_id', '$t2_id', $def1, $def2)\" $c>"
+        echo "<td $attrs>"
+            ."<input type=checkbox id=$checkbox_id onClick=\"checkbox_clicked2('$checkbox_id', '$t1_id', '$t2_id', $def1, $def2)\" $c> "
             .$this->num_spec1->form_str($tag, $prefs->$tag, $had_error, $d, $t1_id)
             .$this->num_spec2->form_str($tag2, $prefs->$tag2, $had_error, $d, $t2_id)
             ."</td>
@@ -448,12 +442,12 @@ class PREF_NUM2 extends PREF {
 
 function hour_select($x, $name, $id, $d) {
     $s = "";
-    $s = $s. "<select name=$name id=$id $d>\n";
+    $s .= "<select class=\"selectbox form-control input-sm\" name=$name id=$id $d>\n";
     for ($i=0; $i<24; $i++) {
         $sel = ($x == $i)?"selected":"";
-        $s = $s."<option value=$i $sel> $i:00";
+        $s .= "<option value=$i $sel> $i:00";
     }
-    $s = $s."</select>\n";
+    $s .= "</select>\n";
     return $s;
 }
 
@@ -492,13 +486,13 @@ class PREF_HOUR_RANGE extends PREF {
             $c = "checked";
             $d = "";
         }
-        echo "<td class=fieldvalue>"
-            ."<input type=checkbox id=$checkbox_id onClick=\"checkbox_clicked2('$checkbox_id', '$t1_id', '$t2_id', 0, 23)\" $c>"
+        echo "<td ".VALUE_ATTRS.">"
+            ."<input type=checkbox id=$checkbox_id onClick=\"checkbox_clicked2('$checkbox_id', '$t1_id', '$t2_id', 0, 23)\" $c>   "
 
             .hour_select($prefs->$tag, $tag, $t1_id, $d)
-            ." "
+            ."   "
             .tra("and")
-            ." "
+            ."   "
             .hour_select($prefs->$tag2, $tag2, $t2_id, $d)
             ."
         ";
@@ -537,22 +531,18 @@ class PREF_HOUR_RANGE extends PREF {
     }
 }
 
-////////////////////////////////////////////
+// display preference subsets as columns
 //
-// display preference subsets as Columns
-//
-function row_top($x, $ncols=6, $class="heading") {
-    echo "<tr><th class=$class width=35%>$x</th>";
-    echo "<th class=$class width=10%><b>".tra("Default")."</b></th>
-        <th class=$class width=10%><b>".tra("Home")."</b></th>
-        <th class=$class width=10%><b>".tra("School")."</b></th>
-        <th class=$class width=10%><b>".tra("Work")."</b></th>
+function row_top($x) {
+    echo "<tr class=\"bg-primary\"><th width=35%>$x</th>";
+    echo "<th ><b>".tra("Default")."</b></th>
+        <th ><b>".tra("Home")."</b></th>
+        <th ><b>".tra("School")."</b></th>
+        <th ><b>".tra("Work")."</b></th>
     ";
-    //echo "<th width=15%><br></th>
     echo "</tr>\n";
 }
 
-//
 // row_defs - Display a value for all 4 venues in one row
 //
 function row_defs($pre, $item, $post, $type, $prefs, $tooltip=null) {
@@ -566,7 +556,7 @@ function row_defs($pre, $item, $post, $type, $prefs, $tooltip=null) {
     } else {
         echo "<tr>";
     }
-    echo "<td class=fieldname>$pre</td>";
+    echo "<td ".NAME_ATTRS.">$pre</td>";
     row_field($gen,  $type);
     row_field($hom,  $type);
     row_field($schl, $type);
@@ -578,7 +568,7 @@ function row_defs($pre, $item, $post, $type, $prefs, $tooltip=null) {
 // row_field - Display each field value, with selectable display modes
 //
 function row_field($value, $type) {
-    echo "<td class=f_val valign=top>";
+    echo "<td>";
     $type = $value === "--" ? "--" : $type;
     switch($type) {
     case "yesno":
@@ -624,7 +614,7 @@ function row_links($subset, $prefs) {
     $schl = isset($prefs->school) ? $pre_edit."school".$post_edit : $pre_add."school".$post_add;
     $wrk  = isset($prefs->work) ? $pre_edit."work".$post_edit : $pre_add."work".$post_add;
 
-    echo "<tr><td class=fieldname> </td>";
+    echo "<tr><td class=\"text-right \"> </td>";
     echo "<td>$gen</td>";
     echo "<td>$hom</td>";
     echo "<td>$schl</td>";
@@ -635,7 +625,7 @@ function row_links($subset, $prefs) {
     $schl = isset($prefs->school) ? $pre_remove."school".$post_remove : "<br>";
     $wrk  = isset($prefs->work) ? $pre_remove."work".$post_remove : "<br>";
 
-    echo "<tr><td class=fieldname> </td>";
+    echo "<tr><td class=\"text-right \"> </td>";
     echo "<td> </td>";
     echo "<td>$hom</td>";
     echo "<td>$schl</td>";
diff --git a/html/inc/profile.inc b/html/inc/profile.inc
index 9f924e0..69a7660 100644
--- a/html/inc/profile.inc
+++ b/html/inc/profile.inc
@@ -24,7 +24,6 @@ require_once("../inc/user.inc");
 require_once("../inc/translation.inc");
 require_once("../inc/text_transform.inc");
 require_once("../inc/forum.inc");
-require_once("../inc/recaptchalib.php");
 
 define('SMALL_IMG_WIDTH', 64);
 define('SMALL_IMG_HEIGHT', 64);
@@ -61,11 +60,11 @@ function profile_thumb_path($userid) {
 }
 
 function profile_image_url($userid) {
-    return URL_BASE.IMAGE_URL.$userid.'.jpg';
+    return url_base().IMAGE_URL.$userid.'.jpg';
 }
 
 function profile_thumb_url($userid) {
-    return URL_BASE.IMAGE_URL.$userid.'_sm.jpg';
+    return url_base().IMAGE_URL.$userid.'_sm.jpg';
 }
 
 function profile_user_thumb_url($user) {
@@ -176,13 +175,15 @@ function get_profile_summary($profile) {
     $description = "";
 
     if (strlen($profile->response1) != 0) {
-        $temp = output_transform($profile->response1);
+        $options = new output_options();
+        $options->htmlitems = false;
+        $temp = output_transform($profile->response1, $options);
         $temp = sanitize_tags($temp);
         $description = "(\"" . sub_sentence($temp, ' ', MAX_DESC_LENGTH, true) . "\")";
 
     }
 
-    $summary = "<a href=\"".URL_BASE."view_profile.php?userid=".$profile->userid."\">".$user->name."</a> ".$description;
+    $summary = "<a href=\"".url_base()."view_profile.php?userid=".$profile->userid."\">".$user->name."</a> ".$description;
     return $summary;
 }
 
@@ -216,7 +217,10 @@ function show_profile($user, $logged_in_user, $screen_mode = false) {
     $can_edit = $logged_in_user && $user->id == $logged_in_user->id;
 
     if ($can_edit) {
-        row1("<a href=\"create_profile.php\">".tra("Edit your profile")."</a>");
+        echo "<tr><td>";
+        show_button("create_profile.php", tra("Edit your profile"));
+        echo "</td></tr>
+        ";
     }
 
     // If screening is enabled, only show picture in certain situations
@@ -247,6 +251,7 @@ function show_profile($user, $logged_in_user, $screen_mode = false) {
     //
     BoincForumPrefs::lookup($logged_in_user);
     $options = get_output_options($logged_in_user);
+    $options->htmlitems = false;
 
     if (!empty($profile->response1)) {
         row1(show_profile_heading1());
diff --git a/html/inc/recaptcha_loader.php b/html/inc/recaptcha_loader.php
new file mode 100644
index 0000000..b7f475f
--- /dev/null
+++ b/html/inc/recaptcha_loader.php
@@ -0,0 +1,42 @@
+<?php
+
+/* This is a copy of src/autoloader.php of the Google ReCaptcha implementation at
+ * https://github.com/google/recaptcha
+ */
+
+/* An autoloader for ReCaptcha\Foo classes. This should be require()d
+ * by the user before attempting to instantiate any of the ReCaptcha
+ * classes.
+ */
+
+spl_autoload_register(function ($class) {
+    if (substr($class, 0, 10) !== 'ReCaptcha\\') {
+      /* If the class does not lie under the "ReCaptcha" namespace,
+       * then we can exit immediately.
+       */
+      return;
+    }
+
+    /* All of the classes have names like "ReCaptcha\Foo", so we need
+     * to replace the backslashes with frontslashes if we want the
+     * name to map directly to a location in the filesystem.
+     */
+    $class = str_replace('\\', '/', $class);
+
+    /* First, check under the current directory. It is important that
+     * we look here first, so that we don't waste time searching for
+     * test classes in the common case.
+     */
+    $path = dirname(__FILE__).'/'.$class.'.php';
+    if (is_readable($path)) {
+        require_once $path;
+    }
+
+    /* If we didn't find what we're looking for already, maybe it's
+     * a test class?
+     */
+    $path = dirname(__FILE__).'/../tests/'.$class.'.php';
+    if (is_readable($path)) {
+        require_once $path;
+    }
+});
diff --git a/html/inc/recaptchalib.php b/html/inc/recaptchalib.php
index f8efafc..c0d27ec 100644
--- a/html/inc/recaptchalib.php
+++ b/html/inc/recaptchalib.php
@@ -1,140 +1,55 @@
 <?php
-/**
- * This is a PHP library that handles calling reCAPTCHA.
- *    - Documentation and latest version
- *          https://developers.google.com/recaptcha/docs/php
- *    - Get a reCAPTCHA API Key
- *          https://www.google.com/recaptcha/admin/create
- *    - Discussion group
- *          http://groups.google.com/group/recaptcha
- *
- * @copyright Copyright (c) 2014, Google Inc.
- * @link      http://www.google.com/recaptcha
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * A ReCaptchaResponse is returned from checkAnswer().
- */
-class ReCaptchaResponse
-{
-    public $success;
-    public $errorCodes;
-}
-
-class ReCaptcha
-{
-    private static $_signupUrl = "https://www.google.com/recaptcha/admin";
-    private static $_siteVerifyUrl =
-        "https://www.google.com/recaptcha/api/siteverify?";
-    private $_secret;
-    private static $_version = "php_1.0";
-
-    /**
-     * Constructor.
-     *
-     * @param string $secret shared secret between site and ReCAPTCHA server.
-     */
-    function ReCaptcha($secret)
-    {
-        if ($secret == null || $secret == "") {
-            die("To use reCAPTCHA you must get an API key from <a href='"
-                . self::$_signupUrl . "'>" . self::$_signupUrl . "</a>");
-        }
-        $this->_secret=$secret;
-    }
-
-    /**
-     * Encodes the given data into a query string format.
-     *
-     * @param array $data array of string elements to be encoded.
-     *
-     * @return string - encoded request.
-     */
-    private function _encodeQS($data)
-    {
-        $req = "";
-        foreach ($data as $key => $value) {
-            $req .= $key . '=' . urlencode(stripslashes($value)) . '&';
-        }
-
-        // Cut the last '&'
-        $req=substr($req, 0, strlen($req)-1);
-        return $req;
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2015 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+// recaptcha utilities
+
+// do not include the loader from somewhere else
+require('../inc/recaptcha_loader.php');
+
+function boinc_recaptcha_get_head_extra() {
+    global $recaptcha_public_key;
+    if ($recaptcha_public_key) {
+        return '<script src="https://www.google.com/recaptcha/api.js" async defer></script>
+        ';
     }
+    return "";
+}
 
-    /**
-     * Submits an HTTP GET to a reCAPTCHA server.
-     *
-     * @param string $path url path to recaptcha server.
-     * @param array  $data array of parameters to be sent.
-     *
-     * @return array response
-     */
-    private function _submitHTTPGet($path, $data)
-    {
-        $req = $this->_encodeQS($data);
-        $response = file_get_contents($path . $req);
-        return $response;
+function boinc_recaptcha_get_html($publickey) {
+    if ($publickey) {
+        return '<div class="g-recaptcha" data-sitekey="' . $publickey . '"></div>';
+    } else {
+        return '';
     }
+}
 
-    /**
-     * Calls the reCAPTCHA siteverify API to verify whether the user passes
-     * CAPTCHA test.
-     *
-     * @param string $remoteIp   IP address of end user.
-     * @param string $response   response string from recaptcha verification.
-     *
-     * @return ReCaptchaResponse
-     */
-    public function verifyResponse($remoteIp, $response)
-    {
-        // Discard empty solution submissions
-        if ($response == null || strlen($response) == 0) {
-            $recaptchaResponse = new ReCaptchaResponse();
-            $recaptchaResponse->success = false;
-            $recaptchaResponse->errorCodes = 'missing-input';
-            return $recaptchaResponse;
-        }
-
-        $getResponse = $this->_submitHttpGet(
-            self::$_siteVerifyUrl,
-            array (
-                'secret' => $this->_secret,
-                'remoteip' => $remoteIp,
-                'v' => self::$_version,
-                'response' => $response
-            )
-        );
-        $answers = json_decode($getResponse, true);
-        $recaptchaResponse = new ReCaptchaResponse();
-
-        if (trim($answers ['success']) == true) {
-            $recaptchaResponse->success = true;
-        } else {
-            $recaptchaResponse->success = false;
-            $recaptchaResponse->errorCodes = $answers["error-codes"];
-        }
-
-        return $recaptchaResponse;
+// wrapper for ReCaptcha implementation
+// returns true if the captcha was correct or no $privatekey was supplied
+// everything else means there was an error verifying the captcha
+//
+function boinc_recaptcha_isValidated($privatekey) {
+    if ($privatekey) {
+        // tells ReCaptcha to use fsockopen() instead of get_file_contents()
+        $recaptcha = new \ReCaptcha\ReCaptcha($privatekey, new \ReCaptcha\RequestMethod\SocketPost());
+        $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
+        return $resp->isSuccess();
     }
+    return true;
 }
 
 ?>
diff --git a/html/inc/result.inc b/html/inc/result.inc
index 14a569d..7065389 100644
--- a/html/inc/result.inc
+++ b/html/inc/result.inc
@@ -22,16 +22,39 @@ require_once("../inc/common_defs.inc");
 
 // used by app_version_string(), see below
 //
+global $apps;
+global $app_versions;
+global $platforms;
 $apps = array();
 $app_versions = array();
+$platforms = array();
 
-function anon_platform_string($result, $rsc_name=null) {
+function get_app($id) {
     global $apps;
-    if (!array_key_exists($result->appid, $apps)) {
-        $app = BoincApp::lookup_id($result->appid);
-        $apps[$result->appid] = $app;
+    if (!array_key_exists($id, $apps)) {
+        $apps[$id] = BoincApp::lookup_id($id);
+    }
+    return $apps[$id];
+}
+
+function get_app_version($id) {
+    global $app_versions;
+    if (!array_key_exists($id, $app_versions)) {
+        $app_versions[$id] = BoincAppVersion::lookup_id($id);
+    }
+    return $app_versions[$id];
+}
+
+function get_platform($id) {
+    global $platforms;
+    if (!array_key_exists($id, $platforms)) {
+        $platforms[$id] = BoincPlatform::lookup_id($id);
     }
-    $app = $apps[$result->appid];
+    return $platforms[$id];
+}
+
+function anon_platform_string($result, $rsc_name=null) {
+    $app = get_app($result->appid);
     $n = $app->user_friendly_name."<br>".  tra("Anonymous platform");
     if ($rsc_name) {
         $n .= " ($rsc_name)";
@@ -56,18 +79,9 @@ function app_version_string($result) {
     case ANON_PLATFORM_INTEL:
         return anon_platform_string($result, tra("Intel GPU"));
     }
-    if (array_key_exists($id, $app_versions)) {
-        $av = $app_versions[$id];
-        $app = $apps[$av->appid];
-    } else {
-        $av = BoincAppVersion::lookup_id($id);
-        if (!$av) {
-            return tra("Not in DB");
-        }
-        $app_versions[$id] = $av;
-        $app = BoincApp::lookup_id($av->appid);
-        $apps[$av->appid] = $app;
-    }
+    $av = get_app_version($id);
+    $app = get_app($av->appid);
+    $platform = get_platform($av->platformid);
     $n = $app->user_friendly_name;
     $v = sprintf("%d.%02d", $av->version_num/100, $av->version_num%100);
     if ($av->plan_class) {
@@ -75,7 +89,7 @@ function app_version_string($result) {
     } else {
         $c = "";
     }
-    return "$n v$v $c";
+    return "$n v$v $c<br>$platform->name";
 }
 
 function result_granted_credit_string($result, $string_to_show) {
@@ -131,42 +145,42 @@ $state_clause = array(
 );
 
 function state_num($result) {
-	if ($result->server_state == RESULT_SERVER_STATE_IN_PROGRESS) return 1;
-	if ($result->server_state == RESULT_SERVER_STATE_OVER && $result->outcome == RESULT_OUTCOME_SUCCESS) {
+    if ($result->server_state == RESULT_SERVER_STATE_IN_PROGRESS) return 1;
+    if ($result->server_state == RESULT_SERVER_STATE_OVER && $result->outcome == RESULT_OUTCOME_SUCCESS) {
         if ($result->validate_state == VALIDATE_STATE_INIT) {
             return STATE_PENDING;
         }
         if ($result->validate_state == VALIDATE_STATE_INCONCLUSIVE) {
             return STATE_INCONCLUSIVE;
         }
-	}
-	if ($result->server_state == RESULT_SERVER_STATE_OVER
-		&& $result->outcome == RESULT_OUTCOME_SUCCESS
-		&& $result->validate_state == VALIDATE_STATE_VALID
-	) {
-		return STATE_VALID;
-	}
-	if ($result->server_state == RESULT_SERVER_STATE_OVER
-		&& ($result->outcome == RESULT_OUTCOME_VALIDATE_ERROR
-			|| ($result->outcome == RESULT_OUTCOME_SUCCESS
-				&& ($result->validate_state == VALIDATE_STATE_INVALID
-					|| $result->validate_state == VALIDATE_STATE_NO_CHECK
-					|| $result->validate_state == VALIDATE_STATE_TOO_LATE
-				)
-			)
-		)
-	) {
-		return STATE_INVALID;
-	}
-	if ($result->server_state == RESULT_SERVER_STATE_OVER
-		&& ($result->outcome == RESULT_OUTCOME_CLIENT_ERROR
-			|| $result->outcome = RESULT_OUTCOME_NO_REPLY
-			|| $result->outcome = RESULT_OUTCOME_CLIENT_DETACHED
-		)
-	) {
-		return STATE_ERROR;
-	}
-	return 0;
+    }
+    if ($result->server_state == RESULT_SERVER_STATE_OVER
+        && $result->outcome == RESULT_OUTCOME_SUCCESS
+        && $result->validate_state == VALIDATE_STATE_VALID
+    ) {
+        return STATE_VALID;
+    }
+    if ($result->server_state == RESULT_SERVER_STATE_OVER
+        && ($result->outcome == RESULT_OUTCOME_VALIDATE_ERROR
+            || ($result->outcome == RESULT_OUTCOME_SUCCESS
+                && ($result->validate_state == VALIDATE_STATE_INVALID
+                    || $result->validate_state == VALIDATE_STATE_NO_CHECK
+                    || $result->validate_state == VALIDATE_STATE_TOO_LATE
+                )
+            )
+        )
+    ) {
+        return STATE_INVALID;
+    }
+    if ($result->server_state == RESULT_SERVER_STATE_OVER
+        && ($result->outcome == RESULT_OUTCOME_CLIENT_ERROR
+            || $result->outcome = RESULT_OUTCOME_NO_REPLY
+            || $result->outcome = RESULT_OUTCOME_CLIENT_DETACHED
+        )
+    ) {
+        return STATE_ERROR;
+    }
+    return 0;
 }
 
 function state_string($result) {
@@ -203,7 +217,7 @@ function state_string($result) {
             case RESULT_FILES_DOWNLOADED:
             case RESULT_COMPUTE_ERROR: return tra("Error while computing");
             case RESULT_FILES_UPLOADING: return tra("Error while uploading");
-            case RESULT_ABORTED: return tra("Aborted by user");
+            case RESULT_ABORTED: return tra("Aborted");
             case RESULT_UPLOAD_FAILED: return tra("Upload failed");
             }
             return tra("Error");
@@ -343,47 +357,56 @@ function result_page_url($info) {
 }
 
 function result_table_start($show_wu_link, $show_host_link, $info) {
-    start_table();
-    echo "<tr>";
+    start_table('table-striped');
+    $x = array();
+    $a = array(null);
+
     if ($info) {
         if ($info->show_names) {
             $i2 = clone $info;
             $i2->show_names = 0;
             $url = result_page_url($i2);
-            echo "<th>".tra("Task name")."<br><small>".tra("click for details")."<br><a href=$url>".tra("Show IDs")."</a></small></th>\n";
+            $x[] = tra("Task name")."<br><small>".tra("click for details")."<br><a href=$url>".tra("Show IDs")."</a></small>";
         } else {
             $i2 = clone $info;
             $i2->show_names = 1;
             $url = result_page_url($i2);
-            echo "<th>Task<br><small>".tra("click for details")."<br><a href=$url>".tra("Show names")."</a></small></th>\n";
+            $x[] = "Task<br><small>".tra("click for details")."<br><a href=$url>".tra("Show names")."</a></small>";
         }
     } else {
-        echo "<th>".tra("Task")."<br><small>".tra("click for details")."</small></th>\n";
+        $x[] = tra("Task")."<br><small>".tra("click for details")."</small>";
     }
     if ($show_wu_link) {
-        echo "<th>".tra("Work unit")."<br><small>".tra("click for details")."</small></th>\n";
+        $x[] = tra("Work unit")."<br><small>".tra("click for details")."</small>";
+        $a[] = null;
         if (function_exists('project_result_info_heading')) {
-            $x = project_result_info_heading();
-            if ($x) {
-                echo "<th>$x</th>\n";
+            $y = project_result_info_heading();
+            if ($y) {
+                $x[] = $y;
+                $a[] = null;
             }
         }
     }
     if ($show_host_link) {
-        echo "<th>".tra("Computer")."</th>\n";
-    }
-    echo "
-        <th>".tra("Sent")."</th>
-        <th>".tra("Time reported<br />or deadline")."
-            <br><small><a href=\"explain_state.php?field=result_time\">".tra("explain")."</a></small>
-        </th>
-        <th>".tra("Status")."</th>
-        <th>".tra("Run time<br />(sec)")."</th>
-        <th>".tra("CPU time<br />(sec)")."</th>
-        <th>".tra("Credit")."</th>
-        <th>".tra("Application")."</th>
-        </tr>
-    ";
+        $x[] = tra("Computer");
+        $a[] = null;
+    }
+    $x[] = tra("Sent");
+    $x[] = tra("Time reported<br />or deadline")."
+        <br><small><a href=\"explain_state.php?field=result_time\">".tra("explain")."</a></small>";
+    $x[] = tra("Status");
+    $a[] = null;
+    $a[] = null;
+    $a[] = null;
+    $x[] = tra("Run time<br />(sec)");
+    $x[] = tra("CPU time<br />(sec)");
+    $x[] = tra("Credit");
+    $a[] = ALIGN_RIGHT;
+    $a[] = ALIGN_RIGHT;
+    $a[] = ALIGN_RIGHT;
+    $x[] = tra("Application");
+    $a[] = null;
+    row_heading_array($x, $a);
 }
 
 // was result invalid or timed out?
@@ -394,9 +417,7 @@ function bad_result($result) {
     return false;
 }
 
-function show_result_row(
-    $result, $show_wu_link, $show_host_link, $show_name, $i
-) {
+function show_result_row($result, $show_wu_link, $show_host_link, $show_name) {
     $s = time_str($result->sent_time);
     // if result has been reported, show the received time,
     // else show the reporting deadline in green if in the future
@@ -416,8 +437,7 @@ function show_result_row(
     $ss = state_string($result);
     $result_granted_credit = format_credit($result->granted_credit);
     $result_granted_credit = result_granted_credit_string($result, $result_granted_credit);
-    $j = $i % 2;
-    echo "<tr class=row$j>";
+    echo "<tr>";
     if ($show_name) {
         $x = $result->name;
     } else {
@@ -464,33 +484,69 @@ function version_string($version_num) {
     }
 }
 
+// transform a 4byte integer to an 8 character hex representation
+//
+// @return String The hex representation (uppercased) starting with 0x. Length is always 10 characters!
+// @param Integer $dec A signed integer
+//
+function int2hex($dec) {
+    return "0x".strtoupper(substr(sprintf("%08x",$dec), -8));
+}
+
+// Decode a windows error number into semi-human-readable,
+// taken from ntstatus.h for selected codes
+// They need to be uppercase after 0x!
+//
+// @return String A human readable error message
+// @param Integer $x An error number
+//
+function windows_error_code_str($x){
+    $h=int2hex($x);
+    switch($h){
+    case "0xC0000005": return "STATUS_ACCESS_VIOLATION";
+    case "0xC000001D": return "STATUS_ILLEGAL_INSTRUCTION";
+    case "0xC0000094": return "STATUS_INTEGER_DIVIDE_BY_ZERO";
+    case "0xC00000FD": return "STATUS_STACK_OVERFLOW";
+    case "0xC0000135": return "STATUS_DLL_NOT_FOUND";
+    case "0xC0000139": return "STATUS_ENTRYPOINT_NOT_FOUND";
+    case "0xC0000142": return "STATUS_DLL_INIT_FAILED";
+    case "0xC000026B": return "STATUS_DLL_INIT_FAILED_LOGOFF";
+    case "0xC0000409": return "STATUS_STACK_BUFFER_OVERRUN";
+    //case "": return "";
+    default: return "Unknown error code";
+    }
+}
+
 // Decode ErrorNumber into semi-human-readable,
 // taken from lib/error_numbers.h keep this up to date
+//
 // @return String A human readable error message
 // @param Integer $x An error number
 //
-function result_error_mask_str($x){
+function error_code_str($x){
+    // severe Windows error numbers are always large negative integers
+    if ($x<-400) return windows_error_code_str($x);
     switch($x){
     case 0: return "";
-	case 192: return "EXIT_STATEFILE_WRITE";
-	case 193: return "EXIT_SIGNAL";
-	case 194: return "EXIT_ABORTED_BY_CLIENT";
-	case 195: return "EXIT_CHILD_FAILED";
-	case 196: return "EXIT_DISK_LIMIT_EXCEEDED";
-	case 197: return "EXIT_TIME_LIMIT_EXCEEDED";
-	case 198: return "EXIT_MEM_LIMIT_EXCEEDED";
-	case 199: return "EXIT_CLIENT_EXITING";
-	case 200: return "EXIT_UNSTARTED_LATE";
-	case 201: return "EXIT_MISSING_COPROC";
-	case 202: return "EXIT_ABORTED_BY_PROJECT";
-	case 203: return "EXIT_ABORTED_VIA_GUI";
-	case 204: return "EXIT_UNKNOWN";
-	case 205: return "EXIT_OUT_OF_MEMORY";
-	case 206: return "EXIT_INIT_FAILURE";	
-	case 207: return "EXIT_NO_JOBS";
-	case 208: return "EXIT_JOB_FAILURE";
-	case -100: return "ERR_SELECT";
-	case -102: return "ERR_READ";
+    case 192: return "EXIT_STATEFILE_WRITE";
+    case 193: return "EXIT_SIGNAL";
+    case 194: return "EXIT_ABORTED_BY_CLIENT";
+    case 195: return "EXIT_CHILD_FAILED";
+    case 196: return "EXIT_DISK_LIMIT_EXCEEDED";
+    case 197: return "EXIT_TIME_LIMIT_EXCEEDED";
+    case 198: return "EXIT_MEM_LIMIT_EXCEEDED";
+    case 199: return "EXIT_CLIENT_EXITING";
+    case 200: return "EXIT_UNSTARTED_LATE";
+    case 201: return "EXIT_MISSING_COPROC";
+    case 202: return "EXIT_ABORTED_BY_PROJECT";
+    case 203: return "EXIT_ABORTED_VIA_GUI";
+    case 204: return "EXIT_UNKNOWN";
+    case 205: return "EXIT_OUT_OF_MEMORY";
+    case 206: return "EXIT_INIT_FAILURE";
+    case 207: return "EXIT_NO_SUB_TASKS";
+    case 208: return "EXIT_SUB_TASK_FAILURE";
+    case -100: return "ERR_SELECT";
+    case -102: return "ERR_READ";
     case -103: return "ERR_WRITE";
     case -104: return "ERR_FREAD";
     case -105: return "ERR_FWRITE";
@@ -623,12 +679,12 @@ function result_error_mask_str($x){
     case -233: return "ERR_UNSTARTED_LATE";
     case -234: return "ERR_MISSING_COPROC";
     case -235: return "ERR_PROC_PARSE";
-    default: return "Unknown error number";
+    default: return "Unknown error code";
     }
 }
 
 function exit_status_string($x) {
-    return sprintf("%d (0x%x)", $x, $x). " ".result_error_mask_str($x);
+    return $x." (".int2hex($x).") ".error_code_str($x);
 }
 
 function show_result($result, $show_outfile_links=false) {
@@ -677,39 +733,46 @@ function show_result($result, $show_outfile_links=false) {
         row2(tra("Output files"), $x);
     }
     end_table();
-    echo "<h3>".tra("Stderr output")."</h3> <pre>".htmlspecialchars($result->stderr_out)."</pre>";
+    echo "<h3>".tra("Stderr output")."</h3> <pre>"
+        .htmlspecialchars(
+            $result->stderr_out,
+            ENT_QUOTES | (defined('ENT_SUBSTITUTE')?ENT_SUBSTITUTE:0),
+            'utf-8'
+        )
+        ."</pre>"
+    ;
 }
 
 function result_navigation($info, $where_clause) {
     global $state_name;
-	$state_count = array();
-	$app_count = array();
-	$x = "";
+    $state_count = array();
+    $app_count = array();
+    $x = "";
 
     $apps = BoincApp::enum('deprecated=0 ORDER BY user_friendly_name');
 
     for ($i=0; $i<NSTATES; $i++) {
-		$state_count[$i] = 0;
-	}
+        $state_count[$i] = 0;
+    }
     foreach ($apps as $app) {
-		$app_count[$app->id] = 0;
-	}
-	$app_count[0] = 0;
+        $app_count[$app->id] = 0;
+    }
+    $app_count[0] = 0;
 
-	$results = BoincResult::enum_fields(
+    $results = BoincResult::enum_fields(
         "appid, server_state, outcome, validate_state",
         $where_clause, null
     );
-	foreach ($results as $r) {
+    foreach ($results as $r) {
         if (array_key_exists($r->appid, $app_count)) {
             $app_count[$r->appid]++;
         }
-		$app_count[0]++;
+        $app_count[0]++;
         if (!$info->appid || ($r->appid == $info->appid)) {
             $state_count[state_num($r)]++;
             $state_count[0]++;
         }
-	}
+    }
 
     $x .= "<br><center>";
     $show_prev = ($info->offset >= $info->results_per_page);
@@ -741,7 +804,7 @@ function result_navigation($info, $where_clause) {
             $url = result_page_url($i2);
             $x .= "<a href=$url>".$state_name[$i]."</a>";
         }
-		$x .= " (".$state_count[$i].") ";
+        $x .= " (".$state_count[$i].") ";
     }
 
     if (count($apps) > 1) {
@@ -755,7 +818,7 @@ function result_navigation($info, $where_clause) {
         } else {
             $x .= 'All';
         }
-		$x .= " (".$app_count[0].") ";
+        $x .= " (".$app_count[0].") ";
 
         foreach ($apps as $app) {
             $i2->appid = $app->id;
@@ -766,13 +829,13 @@ function result_navigation($info, $where_clause) {
             } else {
                 $x .= '<a href="'.$url.'">'.$app->user_friendly_name.'</a>';
             }
-			$x .= " (".$app_count[$app->id].") ";
+            $x .= " (".$app_count[$app->id].") ";
         }
     }
 
-    $x .= "<form action=result.php>".tra("Task name:")."<input size=40 name=result_name><input class=\"btn btn-primary\" type=submit value='OK'></form>";
+    $x .= '<form action="result.php">'.tra("Task name:").' <input "size=40" name="result_name"> <input class="btn btn-primary" type="submit" value="OK"></form>';
     $x .= "</center><br>";
-	return $x;
+    return $x;
 }
 
 $cvs_version_tracker[]="\$Id$";  //Generated automatically - do not edit
diff --git a/html/inc/sandbox.inc b/html/inc/sandbox.inc
index 1729dbf..c2f1e7a 100644
--- a/html/inc/sandbox.inc
+++ b/html/inc/sandbox.inc
@@ -119,7 +119,7 @@ function sandbox_file_select($user, $select_name, $regexp = null, $allow_none =
     if ($regexp === null) {
         $regexp = $select_name;
     }
-    $x = "<select name=$select_name>\n";
+    $x = "<select class=\"form-control\" name=$select_name>\n";
     if ($allow_none) {
         $x .= "<option value=\"\">--- None</option>\n";
     }
diff --git a/html/inc/stats_sites.inc b/html/inc/stats_sites.inc
index 80ac93f..fbe76e4 100644
--- a/html/inc/stats_sites.inc
+++ b/html/inc/stats_sites.inc
@@ -18,15 +18,18 @@
 
 // the following sites generate stats for a given CPID
 //
+global $cpid_stats_sites;
 $cpid_stats_sites = array(
     array("Free-DC",
         "http://stats.free-dc.org/stats.php?page=userbycpid&cpid=%s"
     ),
+/* is not importing fresh data from projects since November 2015
     array("BOINC all Project Stats",
         "http://www.allprojectstats.com/showuser.php?id=%s"
     ),
+*/
     array("BOINCstats",
-        "http://www.boincstats.com/en/stats/-1/user/detail/%s"
+        "http://boincstats.com/en/stats/-1/user/detail/%s"
     ),
     array("BOINC Statistics for the WORLD!",
         "http://www.boincsynergy.com/stats/boinc-individual.php?cpid=%s"
@@ -34,9 +37,6 @@ $cpid_stats_sites = array(
     array("BOINC Combined Statistics",
         "http://boinc.netsoft-online.com/e107_plugins/boinc/get_user.php?cpid=%s&html=1"
     ),
-    array("The Knights Who Say 'Ni!'",
-        "http://stats.kwsn.info/user.php?proj=all&cpid=%s"
-    ),
 );
 
 $stats_sites = array(
@@ -46,30 +46,35 @@ $stats_sites = array(
         "(Team ranking based on position within projects,
         as in Formula 1 racing, rather than total points)"
     ),
+/* is not importing fresh data from projects since November 2015
     array(
         "http://www.allprojectstats.com/",
         "BOINC All Project Stats",
         ""
     ),
+*/
     array(
         "http://stats.free-dc.org",
         "Free-DC",
         "(Includes non-BOINC projects and completed projects.)"
     ),
+/* page shows: Could not connect to the data server. Unable to proceed.
+ * not mentioning statistics on the webpage, seems retired
     array(
         "http://www.boincuk.com/globalprojectstats.php",
         "BOINC UK",
         ""
     ),
+*/
     array("http://www.boincsynergy.com/stats/index.php",
         "BOINC Statistics for the WORLD!",
-        "developed by Zain Upton (email: zain.upton at boincsynergy.com)"
+        "developed by Zain Upton"
     ),
     array("http://boinc.netsoft-online.com/",
         "BOINC Combined Statistics",
         "developed by James Drews"
     ),
-    array("http://www.boincstats.com/",
+    array("http://boincstats.com/",
         "BOINCstats",
         "by Willy de Zutter"
     ),
@@ -81,10 +86,6 @@ $stats_sites = array(
         "SETI at Netherlands stats page",
         ""
     ),
-    array("http://stats.kwsn.info/",
-        "The Knights Who Say 'Ni' stats",
-        ""
-    ),
     array("http://www.teamocuk.co.uk/",
         "Team OcUK stats",
         ""
@@ -98,16 +99,17 @@ $stats_sites = array(
 $team_stats_sites = array(
     array("http://stats.czechnationalteam.cz/", "Czech National Team", "(in Czech)"),
     array("http://www.boincitaly.org/", "BOINC.Italy"),
+    array("https://www.crunchersansfrontieres.org/", "CRUNCHERS SANS FRONTIERES", "(French"),
     //array("http://www.spacepage.be/component/option,com_boinc/", "Spacepage"),
-    array("http://boinc.radax.net/de_boinc.htm", "BOINC at Austria"),
+    //array("http://boinc.radax.net/de_boinc.htm", "BOINC at Austria"),
     //array("http://www.myboinc.com/scores/", "L'Alliance Francophone"),
-    array("http://boincdenmark.dk/", "BOINC at Denmark", "(Danish)"),
-    array("http://boincdenmark.dk/default_en.html", "BOINC at Denmark", "(English)"),
+    //array("http://boincdenmark.dk/", "BOINC at Denmark", "(Danish)"),
+    //array("http://boincdenmark.dk/default_en.html", "BOINC at Denmark", "(English)"),
     //array("http://www.bigbee.be/comp/boinc/index.php",
     //    "Boinc.be team stats",
     //    ""
     //),
-    array("http://www.seti-teamartbell.com/", "Team Art Bell", ""),
+    //array("http://www.seti-teamartbell.com/", "Team Art Bell", ""),
     array("http://www.crunchers-freiburg.de/", "crunchers at freiburg", "(German)"),
 );
 
@@ -135,7 +137,7 @@ $sig_sites = array(
     //    "boinc.be",
     //    ""
     //),
-    array("http://www.boincstats.com/page/faq.php#3",
+    array("http://boincstats.com/page/faq.php#3",
         "BOINCstats",
         "by Willy de Zutter"
     ),
@@ -168,6 +170,7 @@ $team_name_sites = array(
     ),
 );
 
+global $host_sites;
 $host_sites = array(
     array(
         "http://boincstats.com/en/stats/-1/host/detail/",
diff --git a/html/inc/submit.inc b/html/inc/submit.inc
index 10b8e45..0aa1751 100644
--- a/html/inc/submit.inc
+++ b/html/inc/submit.inc
@@ -33,6 +33,9 @@
 //// Implementation stuff follows
 
 function req_to_xml($req, $op) {
+    if (!isset($req->batch_name)) {
+        $req->batch_name = "batch_".time();
+    }
     $x = "<$op>
     <authenticator>$req->authenticator</authenticator>
     <batch>
@@ -74,6 +77,14 @@ function req_to_xml($req, $op) {
             }
             $x .= "        </input_file>\n";
         }
+        // send templates for both estimate and submit ops
+        //
+        if (isset($job->wu_template)) {
+            $x .= "    <wu_template>\n$job->wu_template\n    </wu_template>\n";
+        }
+        if (isset($job->result_template)) {
+            $x .= "    <result_template>\n$job->result_template\n    </result_template>\n";
+        }
         $x .= "    </job>
 ";
     }
@@ -155,44 +166,58 @@ function batch_xml_to_object($batch) {
     $b->credit_canonical = (double)($batch->credit_canonical);
     $b->name = (string)($batch->name);
     $b->app_name = (string)($batch->app_name);
+    $b->total_cpu_time = (double)($batch->total_cpu_time);
     return $b;
 }
 
+// if RPC had a fatal error, return the message
+//
+function get_error($reply, $outer_tag) {
+    $name = $reply->getName();
+    if ($name != $outer_tag) {
+        return "Bad reply outer tag";
+    }
+    foreach ($reply->error as $error) {
+        if (isset($error->error_num)) {
+            return (string)$error->error_msg;
+        }
+    }
+    return null;
+}
+
 //// API functions follow
 
 function boinc_estimate_batch($req) {
     list($reply, $errmsg) = do_batch_op($req, "estimate_batch");
     if ($errmsg) return array(0, $errmsg);
-    $name = $reply->getName();
-    if ($name == 'estimate') {
-        return array((string)$reply->seconds, null);
-    } else if ($name == 'error') {
-        return array(null, (string)$reply->message);
-    } else {
-        return array(null, "Bad reply message");
+    if ($x = get_error($reply, "estimate_batch")) {
+        return array(null, $x);
     }
+    return array((string)$reply->seconds, null);
 }
 
 function boinc_submit_batch($req) {
     list($reply, $errmsg) = do_batch_op($req, "submit_batch");
     if ($errmsg) return array(0, $errmsg);
-    $name = $reply->getName();
-    if ($name == 'batch_id') {
-        return array((int)$reply, null);
-    }  else if ($name == 'error') {
-        return array(null, (string)$reply->err_message);
-    } else {
-        return array(null, "Bad reply message");
+    if ($x = get_error($reply, "submit_batch")) {
+        return array(null, $x);
     }
+    return array((int)$reply->batch_id, null);
 }
 
 function boinc_query_batches($req) {
     $req_xml = "<query_batches>
     <authenticator>$req->authenticator</authenticator>
-</query_batches>
 ";
+    if (!empty($req->get_cpu_time)) {
+        $req_xml .= "   <get_cpu_time>1</get_cpu_time>\n";
+    }
+    $req_xml .= "</query_batches>\n";
     list($reply, $errmsg) = do_http_op($req, $req_xml, "");
     if ($errmsg) return array(null, $errmsg);
+    if ($x = get_error($reply, "query_batches")) {
+        return array(null, $x);
+    }
     $batches = array();
     foreach ($reply->batch as $batch) {
         $b = batch_xml_to_object($batch);
@@ -205,10 +230,19 @@ function boinc_query_batch($req) {
     $req_xml = "<query_batch>
     <authenticator>$req->authenticator</authenticator>
     <batch_id>$req->batch_id</batch_id>
-</query_batch>
 ";
+    if (!empty($req->get_cpu_time)) {
+        $req_xml .= "   <get_cpu_time>1</get_cpu_time>\n";
+    }
+    if (!empty($req->get_job_details)) {
+        $req_xml .= "   <get_job_details>1</get_job_details>\n";
+    }
+    echo "</query_batch>\n";
     list($reply, $errmsg) = do_http_op($req, $req_xml, "");
     if ($errmsg) return array(null, $errmsg);
+    if ($x = get_error($reply, "query_batch")) {
+        return array(null, $x);
+    }
     $jobs = array();
     foreach ($reply->job as $job) {
         $j = new StdClass;
@@ -229,6 +263,9 @@ function boinc_query_job($req) {
 ";
     list($reply, $errmsg) = do_http_op($req, $req_xml, "");
     if ($errmsg) return array(null, $errmsg);
+    if ($x = get_error($reply, "query_job")) {
+        return array(null, $x);
+    }
     $instances = array();
     foreach ($reply->instance as $instance) {
         $i = new StdClass;
@@ -256,11 +293,10 @@ function boinc_abort_batch($req) {
 ";
     list($reply, $errmsg) = do_http_op($req, $req_xml, "");
     if ($errmsg) return $errmsg;
-    $name = $reply->getName();
-    if ($name == 'error') {
-        return (string)($reply->message);
+    if ($x = get_error($reply, "abort_batch")) {
+        return array(null, $x);
     }
-    return null;
+    return array(true, null);
 }
 
 function boinc_get_output_file($req) {
@@ -284,36 +320,77 @@ function boinc_retire_batch($req) {
 ";
     list($reply, $errmsg) = do_http_op($req, $req_xml, "");
     if ($errmsg) return $errmsg;
-    $name = $reply->getName();
-    if ($name == 'error') {
-        return (string)($reply->message);
+    if ($x = get_error($reply, "retire_batch")) {
+        return array(null, $x);
     }
-    return null;
+    return array(true, null);
 }
 
 //// example usage follows
-/*
-$req->project = "http://isaac.ssl.berkeley.edu/test/";
-$req->authenticator = "x";
 if (0) {
+    $req = new StdClass;
+    $req->project = "http://isaac.ssl.berkeley.edu/test/";
+    $req->authenticator = trim(file_get_contents("test_auth"));
     $req->app_name = "uppercase";
     $req->batch_name = "batch_name3";
     $req->jobs = array();
 
+    $job = new StdClass;
     $job->input_files = array();
+
+    $f = new StdClass;
     $f->mode = "remote";
     $f->url = "http://isaac.ssl.berkeley.edu/validate_logic.txt";
     $f->md5 = "eec5a142cea5202c9ab2e4575a8aaaa7";
     $f->nbytes = 4250;
     $job->input_files[] = $f;
+
     $f = new StdClass;
     $f->mode = "local";
     $f->source = "foobar";
     //$job->input_files[] = $f;
 
-    for ($i=10; $i<11; $i++) {
+    $it = "
+<input_template>
+    <file_info>
+    </file_info>
+    <workunit>
+        <file_ref>
+            <open_name>in</open_name>
+        </file_ref>
+        <target_nresults>1</target_nresults>
+        <min_quorum>1</min_quorum>
+        <rsc_fpops_est>   60e9  </rsc_fpops_est>
+        <rsc_fpops_bound> 60e12 </rsc_fpops_bound>
+        <rsc_disk_bound>2e6</rsc_disk_bound>
+        <rsc_memory_bound>1e6</rsc_memory_bound>
+        <delay_bound>3600</delay_bound>
+        <credit>1</credit>
+    </workunit>
+</input_template>
+";
+    $ot = "
+<output_template>
+    <file_info>
+        <name><OUTFILE_0/></name>
+        <generated_locally/>
+        <upload_when_present/>
+        <max_nbytes>5000000</max_nbytes>
+        <url><UPLOAD_URL/></url>
+    </file_info>
+    <result>
+        <file_ref>
+            <file_name><OUTFILE_0/></file_name>
+            <open_name>out</open_name>
+        </file_ref>
+    </result>
+</output_template>
+";
+    for ($i=0; $i<2; $i++) {
         $job->rsc_fpops_est = $i*1e9;
         $job->command_line = "--t $i";
+        $job->wu_template = $it;
+        $job->result_template = $ot;
         $req->jobs[] = $job;
     }
 
@@ -352,5 +429,4 @@ if (0) {
         print_r($jobs);
     }
 }
-*/
 ?>
diff --git a/html/inc/submit_db.inc b/html/inc/submit_db.inc
index 11824c3..20b7371 100644
--- a/html/inc/submit_db.inc
+++ b/html/inc/submit_db.inc
@@ -48,6 +48,14 @@ class BoincBatch {
         $db = BoincDb::get();
         return $db->update_aux('batch', $clause);
     }
+    function get_cpu_time() {
+        $db = BoincDb::get();
+        $x = $db->get_double(
+            "select sum(result.cpu_time) as total_cpu_time from workunit join result on workunit.id = result.workunitid where workunit.batch=$this->id",
+            "total_cpu_time"
+        );
+        return $x;
+    }
 }
 
 class BoincUserSubmit {
@@ -92,11 +100,11 @@ class BoincUserSubmitApp {
     }
     static function delete_user($user_id) {
         $db = BoincDb::get();
-        $db->delete_aux('user_submit_app', "user_id=$user_id");
+        return $db->delete_aux('user_submit_app', "user_id=$user_id");
     }
     function update($clause) {
         $db = BoincDb::get();
-        $db->update_aux('user_submit_app', "$clause where user_id=$this->user_id and app_id=$this->app_id");
+        return $db->update_aux('user_submit_app', "$clause where user_id=$this->user_id and app_id=$this->app_id");
     }
 }
 
@@ -105,15 +113,15 @@ class BoincJobFile {
         $db = BoincDb::get();
         $ret = $db->insert('job_file', $clause);
         if (!$ret) return false;
-        return true;
+        return $db->insert_id();
     }
-    static function lookup_md5($md5) {
+    static function lookup_name($name) {
         $db = BoincDb::get();
-        return $db->lookup('job_file', 'BoincJobFile', "md5='$md5'");
+        return $db->lookup('job_file', 'BoincJobFile', "name='$name'");
     }
     function delete() {
         $db = BoincDb::get();
-        $db->delete($this, 'job_file');
+        return $db->delete($this, 'job_file');
     }
     function update($clause) {
         $db = BoincDb::get();
@@ -134,13 +142,13 @@ class BoincBatchFileAssoc {
     }
     function delete() {
         $db = BoincDb::get();
-        $db->delete_aux('batch_file_assoc',
+        return $db->delete_aux('batch_file_assoc',
             "job_file_id=$this->job_file_id and batch_id=$this->batch_id"
         );
     }
     static function delete_batch($batch_id) {
         $db = BoincDb::get();
-        $db->delete_aux('batch_file_assoc',
+        return $db->delete_aux('batch_file_assoc',
             "batch_id=$batch_id"
         );
     }
diff --git a/html/inc/submit_util.inc b/html/inc/submit_util.inc
index 5baf95e..063af2c 100644
--- a/html/inc/submit_util.inc
+++ b/html/inc/submit_util.inc
@@ -21,8 +21,10 @@
 
 require_once("../inc/submit_db.inc");
 
-// the physical name of a file is jf_(md5).
-// Prepend the jf_ to make the source of the file clear
+// in remote job submission,
+// for input files of type local, semilocal, and inline,
+// we need to give a unique physical name based on its content.
+// Prepend the jf_ to make the origin of the file clear
 //
 function job_file_name($md5) {
     return "jf_$md5";
@@ -45,8 +47,10 @@ function authenticate_user($r, $app) {
     return array($user, $user_submit);
 }
 
-// given its WUs, compute params of a batch
-// NOTE: eventually this should be done by server components
+// given its WUs, compute progress of a batch
+// (fraction done, est completion time etc.)
+// NOTE: this is inefficient because we need all the WUs.
+// it could be done by server components
 // (transitioner, validator etc.) as jobs complete or time out
 //
 // TODO: update est_completion_time
@@ -187,9 +191,8 @@ function boinc_get_output_files_url($user, $batch_id) {
 }
 
 function boinc_get_wu_output_files_url($user, $wu_id) {
-    
-    //echo "url: user authenticator= $user->authenticator, wu_id=$wu_id<br/>";
     $auth_str =  md5($user->authenticator.$wu_id);
     return "get_output.php?cmd=workunit_files&wu_id=$wu_id&auth_str=$auth_str";
 }
+
 ?>
diff --git a/html/inc/team.inc b/html/inc/team.inc
index fa54a9b..9510e58 100644
--- a/html/inc/team.inc
+++ b/html/inc/team.inc
@@ -38,13 +38,14 @@ function team_search_form($params) {
     echo '<form name="form" action="team_search.php">';
     start_table();
     row2('<b>'.tra('Search criteria (use one or more)').'</b>', '');
-    row2(tra('Key words').'<br><p class=\"text-muted\">'.tra('Find teams with these words in their names or descriptions').'</p>',
-        '<input type="text" name="keywords" value="' . htmlspecialchars($params->keywords) . '">');
+    row2(
+        tra('Key words').'<br><small>'.tra('Find teams with these words in their names or descriptions').'</small>',
+        '<input class="form-control" type="text" name="keywords" value="' . htmlspecialchars($params->keywords) . '">');
     row2_init(tra('Country'), '');
-    echo '<select name="country"><option value="" selected>---</option>';
+    echo '<select class="form-control" name="country"><option value="" selected>---</option>';
     $country = $params->country;
     if (!$country || $country == 'None') $country = "XXX";
-    print_country_select($country);
+    echo country_select_options($country);
     echo "</select></td></tr>\n";
     row2(tra('Type of team'), team_type_select($params->type, true));
     $checked = $params->active?"checked":"";
@@ -106,7 +107,7 @@ function display_team_page($team, $user) {
         row2(tra('Web site'), "<a href=$x>$x</a>");
     }
 
-    if (!no_computing()) {
+    if (!NO_COMPUTING) {
         row2(tra('Total credit'), format_credit_large($team->total_credit));
         row2(tra('Recent average credit'), format_credit_large($team->expavg_credit));
         if (function_exists('project_team_credit')) {
@@ -220,33 +221,29 @@ function display_team_members($team, $offset, $sort_by) {
     }
 
     start_table();
-    echo '<tr>
-        <th>'.tra('Name').'</th>
-    ';
-    if (!no_computing()) {
+    $x = array();
+    $x[] = tra('Name');
+    if (!NO_COMPUTING) {
         if ($nosort) {
-            echo '
-                <th>'.tra('Total credit').'</th>
-                <th>'.tra('Recent average credit').'</th>
-            ';
+            $x[] = tra('Total credit');
+            $x[] = tra('Recent average credit');
         } else {
             if ($sort_by == "total_credit") {
-                echo '<th>'.tra('Total credit').'</th>';
+                $x[] = tra('Total credit');
             } else {
-                echo "<th><a href=team_members.php?teamid=$team->id&sort_by=total_credit&offset=$offset>".tra('Total credit')."</a></th>";
+                $x[] = "<href=team_members.php?teamid=$team->id&sort_by=total_credit&offset=$offset>".tra('Total credit')."</a>";
             }
             if ($sort_by == "expavg_credit") {
-                echo '<th>'.tra('Recent average credit').'</th>';
+                $x[] = tra('Recent average credit');
             } else {
-                echo "<th><a href=team_members.php?teamid=$team->id&sort_by=expavg_credit&offset=$offset>".tra('Recent average credit').'</a></th>';
+                $x[] = "<href=team_members.php?teamid=$team->id&sort_by=expavg_credit&offset=$offset>".tra('Recent average credit').'</a>';
             }
         }
     }
 
-    echo '
-        <th>'.tra('Country').'</th>
-        </tr>
-    ';
+    $x[] = tra('Country');
+    $a = array("", ALIGN_RIGHT, ALIGN_RIGHT, "");
+    row_heading_array($x, $a);
     
     $cache_args = "teamid=".$team->id."&mosort=".$nosort."&order=".$sort_clause."&limit=".$offset."_".$n;
     $users = unserialize(get_cached_data(TEAM_PAGE_TTL, $cache_args));
@@ -271,15 +268,15 @@ function display_team_members($team, $offset, $sort_by) {
         }
         echo "<tr class=row1>
             <td align=left>$j) $x
-        ";
-        if (!no_computing()) {
+        </td>";
+        if (!NO_COMPUTING) {
             echo "
                 <td align=right>$user_total_credit</td>
                 <td align=right>$user_expavg_credit</td>
             ";
         }
         echo "
-            <td align=center>$user->country</td>
+            <td>$user->country</td>
             </tr>
         ";
         $j++;
@@ -367,27 +364,22 @@ function admin_list($teamid) {
 }
 
 function team_table_start($sort_by, $type_url) {
-    echo "<tr>
-        <th>".tra('Rank')."</th>
-        <th>".tra('Name')."</th>
-        <th>".tra('Members')."</th>
-    ";
+    $x = array();
+    $x[] = tra('Rank');
+    $x[] = tra('Name');
+    $x[] = tra('Members');
     if ($sort_by == "total_credit") {
-        echo "
-            <th><a href=top_teams.php?sort_by=expavg_credit".$type_url.">".tra('Recent average credit')."</a></th>
-            <th>".tra('Total credit')."</th>
-        ";
+        $x[] = "<a href=top_teams.php?sort_by=expavg_credit".$type_url.">".tra('Recent average credit')."</a>";
+        $x[] = tra('Total credit');
     } else {
-        echo "
-            <th>".tra('Recent average credit')."</th>
-            <th><a href=top_teams.php?sort_by=total_credit".$type_url.">".tra('Total credit')."</a></th>
-        ";
+        $x[] = tra('Recent average credit');
+        $x[] = "<a href=top_teams.php?sort_by=total_credit".$type_url.">".tra('Total credit')."</a>";
     }
-    echo "
-        <th>".tra('Country')."</th>
-        <th>".tra("Type")."</th>
-        </tr>
-    ";
+    $x[] = tra('Country');
+    $x[] = tra("Type");
+
+    $a = array("", "", ALIGN_RIGHT, ALIGN_RIGHT, ALIGN_RIGHT, "", "");
+    row_heading_array($x, $a);
 }
 
 function team_links($team) {
@@ -398,8 +390,7 @@ function team_links($team) {
 function show_team_row($team, $i) {
     $team_expavg_credit = format_credit_large($team->expavg_credit);
     $team_total_credit = format_credit_large($team->total_credit);
-    $j = $i % 2;
-    echo"<tr class=row$j>
+    echo "<tr>
         <td>$i</td>
         <td>".team_links($team)."</td>
         <td align=right>".$team->nusers."</td>
@@ -407,7 +398,8 @@ function show_team_row($team, $i) {
         <td align=right>$team_total_credit</td>
         <td>$team->country</td>
         <td>".team_type_name($team->type)."</td>
-        </tr>\n";
+        </tr>
+    ";
 }
 
 function user_join_team($team, $user) {
@@ -434,7 +426,7 @@ function user_quit_team($user) {
 }
 
 function team_edit_form($team, $label, $url) {
-    global $team_types;
+    global $team_types, $recaptcha_public_key;
     echo "<form method=post action=$url>\n";
     if ($team) {
         echo "<input type=hidden name=teamid value=$team->id>\n";
@@ -451,35 +443,43 @@ function team_edit_form($team, $label, $url) {
     start_table();
     row2(tra('Team name, text version').'
         <br><p class=\"text-muted\">'.tra('Don\'t use HTML tags.').'</p>',
-        "<input name=name type=text size=50 value='".($team?$team->name:"")."'>"
+        '<input class="form-control" name="name" type="text" size="50" value="'.($team?$team->name:"").'">'
     );
     row2(tra('Team name, HTML version').'
         <br><p class=\"text-muted\">
         '.tra('You may use %1limited HTML tags%2.', '<a href="html.php" target="_new">', '</a>').'
         '.tra('If you don\'t know HTML, leave this box blank.').'</p>',
-        "<input name=name_html type=text size=50 value=\"".str_replace('"',"'",($team?$team->name_html:""))."\">"
+        '<input class="form-control" name="name_html" type="text" size="50" value="'.str_replace('"',"'",($team?$team->name_html:"")).'">'
     );
     row2(tra('URL of team web page, if any').':<br><font size=-2>('.tra('without "http://"').')
         '.tra('This URL will be linked to from the team\'s page on this site.'),
-        "<input type=text name=url size=60 value='".($team?$team->url:"")."'>"
+        '<input class="form-control" type="text" name="url" size="60" value="'.($team?$team->url:"").'">'
     );
     row2(tra('Description of team').':
         <br><p class=\"text-muted\">
         '.tra('You may use %1limited HTML tags%2.', '<a href="html.php" target="_new">', '</a>').'
         </p>',
-        "<textarea name=description cols=60 rows=10>".($team?$team->description:"")."</textarea>"
+        '<textarea class="form-control" name="description" rows=10>'.($team?$team->description:"").'</textarea>'
     );
 
     row2(tra('Type of team').':', team_type_select($team?$team->type:null));
 
     row2_init(tra('Country'),
-        "<select name=country>"
+        '<select class="form-control" name="country">'
     );
-    print_country_select($team?$team->country:null);
+    echo country_select_options($team?$team->country:null);
 
     echo "</select></td></tr>\n";
-    $x = ($team && $team->joinable)?"checked":"";
+    $x = (!$team || $team->joinable)?"checked":"";
     row2(tra("Accept new members?"), "<input type=checkbox name=joinable $x>");
+    // Check if we're using reCaptcha to prevent spam accounts
+    //
+    if (!$team && $recaptcha_public_key) {
+        row2(
+            "",
+            boinc_recaptcha_get_html($recaptcha_public_key)
+        );
+    }
     row2("",
         "<input class=\"btn btn-primary\" type=submit name=new value='$label'>"
     );
diff --git a/html/inc/team_types.inc b/html/inc/team_types.inc
index a302402..fb94087 100644
--- a/html/inc/team_types.inc
+++ b/html/inc/team_types.inc
@@ -16,20 +16,23 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+include_once("../inc/translation.inc");
+
+global $team_types;
 $team_types = array(
     "",
-    "None",
-    "Company",
-    "Primary school",
-    "Secondary school",
-    "Junior college",
-    "University or department",
-    "Government agency",
-    "Non-profit organization",
-    "National",
-    "Local/regional",
-    "Computer type",
-    "Social/political/religious"
+    tra("None"),
+    tra("Company"),
+    tra("Primary school"),
+    tra("Secondary school"),
+    tra("Junior college"),
+    tra("University or department"),
+    tra("Government agency"),
+    tra("Non-profit organization"),
+    tra("National"),
+    tra("Local/regional"),
+    tra("Computer type"),
+    tra("Social/political/religious")
 );
 
 function team_type_name($num) {
diff --git a/html/inc/text_transform.inc b/html/inc/text_transform.inc
index be15471..1f7bc18 100644
--- a/html/inc/text_transform.inc
+++ b/html/inc/text_transform.inc
@@ -16,8 +16,6 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-require_once('../inc/sanitize_html.inc');
-
 // Functions that process user-supplied text (e.g. messages)
 // prior to displaying it to users.
 // Goals:
@@ -25,6 +23,8 @@ require_once('../inc/sanitize_html.inc');
 // - obey user preferences
 // - improve formatting (e.g., convert newlines to <br> tags)
 
+require_once('../inc/sanitize_html.inc');
+
 class output_options {
     var $bb2html;            // BBCode as HTML? (on)
     var $images_as_links;    // Images as hyperlinks? (off)
@@ -36,7 +36,7 @@ class output_options {
 
     // Constructor - set the defaults.
 
-    function output_options() {
+    function __construct() {
         $this->bb2html = 1;
         $this->images_as_links = 0;
         $this->link_popup = 0;
@@ -134,7 +134,7 @@ function replace_pre_code($text, $export) {
                 $x = remove_br(substr($matches[0], 5, -6));
                 $x = htmlspecialchars($x, ENT_COMPAT, "UTF-8", false);
                 $x = str_replace("[", "[", $x);
-                return "<div class=\"pre\">$x</div>";
+                return "<pre>$x</pre>";
             },
             $text
         );
@@ -144,7 +144,7 @@ function replace_pre_code($text, $export) {
                 $x = remove_br(substr($matches[0], 6, -7));
                 $x = htmlspecialchars($x, ENT_COMPAT, "UTF-8", false);
                 $x = str_replace("[", "[", $x);
-                return "<div class=\"code\">$x</div>";
+                return "<pre style=\"white-space:pre-wrap; \">$x</pre>";
             },
             $text
         );
@@ -153,6 +153,22 @@ function replace_pre_code($text, $export) {
 
 function bb2html($text, $export=false) {
     $urlregex = "(?:\"?)(?:(http\:\/\/)?)([^\[\"<\ ]+)(?:\"?)";
+    // NOTE:
+    // This matches https:// too; I don't understand why.
+    // sample results:
+    // Array
+    // (
+    //     [0] => [img]https://a.b.c[/img]
+    //     [1] =>
+    //     [2] => https://a.b.c
+    // )
+    // Array
+    // (
+    //     [0] => [img]http://a.b.c[/img]
+    //     [1] => http://
+    //     [2] => a.b.c
+    // )
+
     $httpsregex = "(?:\"?)https\:\/\/([^\[\"<\ ]+)(?:\"?)";
     // List of allowable tags
     $bbtags = array (
@@ -172,17 +188,14 @@ function bb2html($text, $export=false) {
         "@\[list\](.*?)\[/list\]@is",
         "@\[list=1\](.*?)\[/list\]@is",  
         "@\[img\]$urlregex\[/img\]@is",
+        "@\[sm_img\]$urlregex\[/sm_img\]@is",
         "@\[color=(?:\"?)(.{3,8})(?:\"?)\](.*?)\[/color\]@is",
         "@((?:<ol>|<ul>).*?)\n\*([^\n]+)\n(.*?(</ol>|</ul>))@is",
         "@\[size=([1-9]|[0-2][0-9])\](.*?)\[/size\]@is",
         "@\[mailto\](.*?)\[/mailto\]@is",
         "@\[email\](.*?)\[/email\]@is",
-        "@\[trac\](?:\#|ticket:)(\d+)\[/trac\]@is",
-        "@\[trac\]wiki:(.*?)\[/trac\]@is",
-        "@\[trac\]changeset:(\d+)\[/trac\]@is"
-        //Note:    The above list array member ensures we're within a list
-        //when doing list item transformations.
-        //TODO: Make sure we're not between two lists
+        "@\[github\](?:\#|ticket:)(\d+)\[/github\]@is",
+        "@\[github\]wiki:(.*?)\[/github\]@is",
     );
     
     // What the above tags are turned in to
@@ -203,15 +216,15 @@ function bb2html($text, $export=false) {
             "<blockquote>\\1</blockquote>",
             "<ul>\\1</ul><p>",
             "<ol>\\1</ol><p>",
-            "<img hspace=\"8\" src=\"http://\\2\"> ",
+            "<img hspace=\"8\" src=\"\\1\\2\"> ",
+            "<img hspace=\"8\" width=400 src=\"\\1\\2\"> ",
             "<font color=\"\\1\">\\2</font>",
             "\\1<li>\\2\n\\3",
             "<span style=\"font-size: \\1px;\">\\2</span>",
             "<a href=\"mailto:\\1\">\\1</a>",
             "<a href=\"mailto:\\1\">\\1</a>",
-            "<a href=\"http://boinc.berkeley.edu/trac/ticket/\\1\">#\\1</a>",
-            "<a href=\"http://boinc.berkeley.edu/trac/wiki/\\1\">\\1</a>",
-            "<a href=\"http://boinc.berkeley.edu/trac/changeset/\\1\">[\\1]</a>"
+            "<a href=\"https://github.com/BOINC/boinc/issues/\\1\">#\\1</a>",
+            "<a href=\"https://github.com/BOINC/boinc-dev-doc/wiki/\\1\">\\1</a>",
         );
     } else {
         $htmltags = array (
@@ -226,19 +239,19 @@ function bb2html($text, $export=false) {
             "<a href=\"http://\\2\" rel=\"nofollow\">http://\\2</a>",
             "<a href=\"http://\\2\" rel=\"nofollow\">\\3</a>",
             "<a href=\"http://\\2\" rel=\"nofollow\">http://\\2</a>",
-            "<div style='font-style: oblique'>\\1 wrote:</div><blockquote class='postbody'>\\2</blockquote>",
-            "<blockquote class='postbody'>\\1</blockquote>",
+            "<em>\\1 wrote:</em><blockquote>\\2</blockquote>",
+            "<blockquote>\\1</blockquote>",
             "<ul>\\1</ul><p>",
             "<ol>\\1</ol><p>",
-            "<img hspace=\"8\" src=\"http://\\2\"> ",
+            "<img hspace=\"8\" class=\"img-responsive\" src=\"\\1\\2\"> ",
+            "<img hspace=\"8\" width=400 src=\"\\1\\2\"> ",
             "<font color=\"\\1\">\\2</font>",
             "\\1<li>\\2\n\\3",
             "<span style=\"font-size: \\1px;\">\\2</span>",
             "<a href=\"mailto:\\1\">\\1</a>",
             "<a href=\"mailto:\\1\">\\1</a>",
-            "<a href=\"http://boinc.berkeley.edu/trac/ticket/\\1\">#\\1</a>",
-            "<a href=\"http://boinc.berkeley.edu/trac/wiki/\\1\">\\1</a>",
-            "<a href=\"http://boinc.berkeley.edu/trac/changeset/\\1\">[\\1]</a>"
+            "<a href=\"https://github.com/BOINC/boinc/issues/\\1\">#\\1</a>",
+            "<a href=\"https://github.com/BOINC/boinc-dev-doc/wiki/\\1\">\\1</a>",
         );
     }
     
@@ -303,7 +316,7 @@ function highlight_terms($text, $terms) {
     $replace = array();
 
     foreach ($search as $key => $value) {
-        $replace[$key] = "<span class=\"highlight\">".$value."</span>";
+        $replace[$key] = "<span class=\"mark\">".$value."</span>";
     }
     if (substr(phpversion(), 0, 1) > 4) {   // PHP 4.x doesn't support str_ireplace
         return str_ireplace($search, $replace, $text);
diff --git a/html/inc/translation.inc b/html/inc/translation.inc
index 945adff..39d33dc 100644
--- a/html/inc/translation.inc
+++ b/html/inc/translation.inc
@@ -277,7 +277,7 @@ for ($i=0; $i<sizeof($client_languages); $i++) {
 
     // if main language is english, look no further
     //
-    if ($i == 0 && ($language == 'en' || $language2 == 'en')) {
+    if ((count($languages_in_use)==0) && ($language == 'en' || $language2 == 'en')) {
         break;
     }
 
diff --git a/html/inc/uotd.inc b/html/inc/uotd.inc
index 93ad004..761dbfc 100644
--- a/html/inc/uotd.inc
+++ b/html/inc/uotd.inc
@@ -1,7 +1,7 @@
 <?php
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -27,7 +27,7 @@ if (!defined('UOTD_THRESHOLD')) {
 
 function uotd_thumbnail($profile, $user) {
     if ($profile->has_picture) {
-        return "<a href=\"".URL_BASE."view_profile.php?userid=$user->id\"><img border=0 vspace=4 hspace=8 align=left src=\"".profile_thumb_url($user->id)."\" alt=\"".tra("User profile")."\"></a>";
+        return "<a href=\"".url_base()."view_profile.php?userid=$user->id\"><img border=0 vspace=4 hspace=8 align=left src=\"".profile_thumb_url($user->id)."\" alt=\"".tra("User profile")."\"></a>";
     } else {
         return "";
     }
@@ -47,7 +47,7 @@ function show_uotd($profile) {
 // return the last UOTD profile, or null
 //
 function get_current_uotd() {
-    $profiles = BoincProfile::enum(null, "ORDER BY uotd_time DESC LIMIT 1");
+    $profiles = BoincProfile::enum("uotd_time is not NULL and uotd_time>0", "ORDER BY uotd_time DESC LIMIT 1");
     if (sizeof($profiles)) {
         return $profiles[0];
     }
@@ -56,10 +56,10 @@ function get_current_uotd() {
 
 // Select a (possibly new) UOTD
 //
-function select_uotd() {
+function select_uotd($force_new = false) {
     echo gmdate("F d Y", time())." UTC: Starting\n";
     $current_uotd = get_current_uotd();
-    if ($current_uotd) {
+    if ($current_uotd && !$force_new) {
         $assigned = getdate($current_uotd->uotd_time);
         $now = getdate(time());
         if ($assigned['mday'] == $now['mday']) {
@@ -69,60 +69,82 @@ function select_uotd() {
             exit();
         }
     }
+    if ($force_new) {
+        echo "Forcing new UOTD\n";
+    }
 
     // get a list of profiles that have been 'approved' for UOTD,
     // using a project-specific query if supplied in project.inc
     //
     if (function_exists('uotd_candidates_query')) {
         $query = uotd_candidates_query();
+        echo "using project supplied candidates_query\n";
     } else {
         $query = default_uotd_candidates_query();
+        echo "using default candidates_query\n";
     }
-    $result = _mysql_query($query);
+    $db = BoincDb::get();
+    $result = $db->do_query($query);
 
     // If the number of approved profiles dips below a threshold,
     // email the sys admin every time we pick a new one.
     //
     if (defined('UOTD_ADMIN_EMAIL')
         && $result
-        && _mysql_num_rows($result) < UOTD_THRESHOLD
+        && $result->num_rows < UOTD_THRESHOLD
     ) {
+        echo "approved candidates for UOTD under UOTD_THRESHOLD\n";
         $u = new BoincUser;
         $u->email_addr = UOTD_ADMIN_EMAIL;
         $u->name = "UOTD admin";
         send_email($u,
             PROJECT . ": User of the Day pool is running low!",
             "The pool of approved candidates for User of the Day has".
-            " reached your assigned threshold: there are now only " . _mysql_num_rows($result) . " approved users.\n\n".
+            " reached your assigned threshold: there are now only " . $result->num_rows . " approved users.\n\n".
             "To approve more candidates for User of the Day,".
             " go to the " . PROJECT . " administration page and click \"Screen user profiles\""
         );
     }
 
-    if ($result && _mysql_num_rows($result) == 0) {
+    if ($result && $result->num_rows == 0) {
+        echo "no new verified profile found, selecting old UOTD that was shown least recently\n";
+        $result->free();
         // If all verified profiles have been selected as UOTD,
-        // reshow the one that was shown least recently.
+        // reshow a random one of the 100 least recently shown profiles.
         //
-        $result = _mysql_query("SELECT * FROM profile,user WHERE profile.userid=user.id AND verification=1 ORDER BY uotd_time ASC LIMIT 1");
+        $inner = "SELECT profile.userid FROM profile,user WHERE profile.userid=user.id AND verification=1 AND uotd_time>0 ORDER BY uotd_time ASC LIMIT 100";
+        $result = $db->do_query("SELECT * from ($inner) as t ORDER BY RAND() LIMIT 1");
     }
 
-    if (!$result || _mysql_num_rows($result) == 0) {
+    if (!$result || $result->num_rows == 0) {
         // No valid users of the day - do something.
         echo "No screened users found\n";
         exit();
     }
-    $profile = _mysql_fetch_object($result);
-    $user = BoincUser::lookup_id($profile->userid);
+    $candidate = $result->fetch_object();
+    $result->free();
+
+    // depending on the candidates query the profile must not exist
+    //
+    $profile = BoincProfile::lookup_userid($candidate->userid);
+    if (!$profile) {
+        echo "Could not find profile returned from candidates query.\n";
+        exit();
+    }
 
-    // if profile is "orphaned", delete it and try again
+    // "orphaned" profiles can only be detected if the candidate query doesn't join profile and user table
+    // if this happens, delete the profile and try again
     //
+    $user = BoincUser::lookup_id($candidate->userid);
     if (!$user) {
-        $profile->delete_aux("userid=$profile->userid");
-        select_uotd();
+        echo "Profile for user $candidate->userid is orphaned and will be deleted\n";
+        $profile->delete();
+        select_uotd($force_new);
+        exit();
     }
 
-    $sql = "UPDATE profile SET uotd_time = ".time()." WHERE userid=$user->id";
-    _mysql_query($sql);
+    $profile->uotd_time = time();
+    $profile->update("uotd_time = ".time());
 
     send_email($user,
         "You're the " . PROJECT . " user of the day!",
@@ -131,7 +153,7 @@ function select_uotd() {
         Your profile will be featured on the " . PROJECT . " website for the next 24 hours."
     );
     echo "Chose user $user->id as UOTD\n";
-    $profile->uotd_time = time();
+
     generate_uotd_gadget($profile, $user);
 }
 
@@ -143,7 +165,7 @@ function default_uotd_candidates_query(){
     $query = "SELECT * FROM profile,user WHERE profile.userid=user.id ";
     $query .= " AND verification=1 ";
     $query .= " AND expavg_credit>1 ";
-    $query .= " AND uotd_time IS NULL ";
+    $query .= " AND (uotd_time IS NULL or uotd_time=0) ";
     $query .= "ORDER BY RAND()";
     return $query;
 }
@@ -159,11 +181,12 @@ function count_uotd_candidates(){
         $query = default_uotd_candidates_query();
     }
     
-    $result = _mysql_query($query);
+    $db = BoincDb::get();
+    $result = $db->do_query($query);
     if($result) {
-        $n = _mysql_num_rows($result);
+        $n = $result->num_rows;
     }
-    _mysql_free_result($result);
+    $result->free();
     
     return $n;
 }
diff --git a/html/inc/user.inc b/html/inc/user.inc
index b1aa020..41af691 100644
--- a/html/inc/user.inc
+++ b/html/inc/user.inc
@@ -25,70 +25,72 @@ require_once("../inc/forum_db.inc");
 require_once("../inc/notify.inc");
 require_once("../inc/ldap.inc");
 
-function parse_project($f) {
-    $p = new StdClass;
-    $p->total_credit = 0.0;
-    $p->expavg_credit = 0.0;
-    while (!feof($f)) {
-        $buf = fgets($f);
-        if (strstr($buf, "</project>")) break;
-        if ($x = parse_element($buf, "<name>")) {
-            $p->name = $x;
-        }
-        if ($x = parse_element($buf, "<url>")) {
-            $p->url = $x;
-        }
-        if ($x = parse_element($buf, "<total_credit>")) {
-            $p->total_credit = $x;
-        }
-        if ($x = parse_element($buf, "<expavg_credit>")) {
-            $p->expavg_credit = $x;
-        }
-        if ($x = parse_element($buf, "<id>")) {
-            $p->id = $x;
-        }
-        if ($x = parse_element($buf, "<country>")) {
-            $p->country = $x;
-        }
-        if ($x = parse_element($buf, "<team_id>")) {
-            $p->team_id = $x;
-        }
-        if ($x = parse_element($buf, "<team_name>")) {
-            $p->team_name = $x;
-        }
-        if ($x = parse_element($buf, "<create_time>")) {
-            $p->create_time = $x;
-        }
-    }
-    return $p;
-}
-
-function parse_user($f, $user) {
-    $user->projects = array();
-    while (!feof($f)) {
-        $buf = fgets($f);
-        if (strstr($buf, "</user>")) break;
-        if (strstr($buf, "<project>")) {
-            $user->projects[] = parse_project($f);
-        }
-    }
-    return $user;
+if (!defined('REMOTE_PROJECTS_TTL')) {
+    define('REMOTE_PROJECTS_TTL', 86400);
 }
 
+// add an element "projects" to user consisting of array of projects
+// they've participated in
+//
 function get_other_projects($user) {
     $cpid = md5($user->cross_project_id . $user->email_addr);
+    $url = "http://boinc.netsoft-online.com/get_user.php?cpid=".$cpid;
+
+    // Check the cache for that URL
+    //
+    $cacheddata = get_cached_data(REMOTE_PROJECTS_TTL, $url);
+    if ($cacheddata){
+        $remote = unserialize($cacheddata);
+    } else {
+        // Fetch the XML, use curl if fopen() is disallowed
+        //
+        if (ini_get('allow_url_fopen')) {
+            $timeout = 3;
+            $old_timeout = ini_set('default_socket_timeout', $timeout);
+            $xml_object = null;
+            $f = @file_get_contents($url);
+            if ($f) {
+                $xml_object = @simplexml_load_string($f);
+            }
+            ini_set('default_socket_timeout', $old_timeout);
+            if (!$xml_object) {
+                return $user;
+            }
+        } else {
+            $ch = curl_init($url);
+            curl_setopt($ch, CURLOPT_HEADER, false);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+            curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
+            curl_setopt($ch, CURLOPT_TIMEOUT, 3);
+            $rawxml = @curl_exec($ch);
+            $xml_object = null;
+            if ($rawxml) {
+                $xml_object = @simplexml_load_string($rawxml);
+            }
+            curl_close($ch);
+            if (!xml_object) {
+                return $user;
+            }
+        }
+
+        // auto-cast the project list to an array of stdClass projects
+        //
+        $remote = @json_decode(json_encode((array)$xml_object))->project;
+        if (count($remote) == 1) {
+            $remote = array($remote);
+        }
+        
+        if (!$remote) {
+            return $user;
+        } else {
+            // Cache the results
+            set_cached_data(REMOTE_PROJECTS_TTL, serialize($remote), $url);
+        }
+    }
     
-    $timeout = 3;
-    $old_timeout = ini_set('default_socket_timeout', $timeout);
-    $url = "http://boinc.netsoft-online.com/get_user.php?cpid=$cpid";
-    $f = @fopen($url, "r");
-    ini_set('default_socket_timeout', $old_timeout);
-    if (!$f) {
-        return $user;
-    }
-    $u = parse_user($f, $user);
-    fclose($f);
-    return $u;
+    $user->projects = $remote;
+    return $user;
 }
 
 function show_project($project) {
@@ -117,14 +119,20 @@ function show_other_projects($user, $personal) {
 
     usort($user->projects, "cmp");
     if ($personal) {
-        echo "<h2>".tra("Projects in which you are participating")."</h2>";
+        echo "<h3>".tra("Projects in which you are participating")."</h3>";
     } else {
-        echo "<h2>".tra("Projects in which %1 is participating", $user->name)."</h2>";
-    }
-    start_table();
-    row_heading_array(array(
-        tra("Project")."<br/><p class=\"text-muted\">".tra("Click for user page")."</p>", tra("Total credit"), tra("Average credit"), tra("Since")
-    ));
+        echo "<h3>".tra("Projects in which %1 is participating", $user->name)."</h3>";
+    }
+    start_table('table-striped');
+    row_heading_array(
+        array(
+            tra("Project")."<br/><small>".tra("Click for user page")."</small>",
+            tra("Total credit"),
+            tra("Average credit"),
+            tra("Since")
+        ),
+        array("", ALIGN_RIGHT, ALIGN_RIGHT, ALIGN_RIGHT)
+    );
     foreach($user->projects as $project) {
         show_project($project);
     }
@@ -169,7 +177,7 @@ function show_user_stats_private($user) {
     }
     $x .= ' · <a href="cert_all.php">'.tra("Cross-project").'</a>';
     row2(tra("Certificate"), $x);
-    row2(tra("Stats on your cell phone"), URL_BASE."userw.php?id=$user->id");
+    row2(tra("Stats on your cell phone"), url_base()."userw.php?id=$user->id");
 }
 
 function notify_description($notify) {
@@ -191,10 +199,27 @@ function weak_auth($user) {
     return "{$user->id}_$x";
 }
 
+// originally user URLs were assumed to be http://,
+// and this prefix wasn't stored.
+// Now the prefix can be http:// or https://.
+// This function takes a user URL in any form and converts
+// it to a canonical form, with the protocol prefix.
+//
+function normalize_user_url($url) {
+    $x = strtolower($url);
+    if (substr($x, 0, 7) == 'http://') {
+        return 'http://'.substr($url, 7);
+    }
+    if (substr($x, 0, 8) == 'https://') {
+        return 'https://'.substr($url, 8);
+    }
+    return 'http://'.$url;
+}
+
 // show static user info (private)
 //
 function show_user_info_private($user) {
-    row1(tra("Account information"));
+    row1(tra("Account information"), 2, 'heading');
     row2(tra("Name"), $user->name);
     if (LDAP_HOST && is_ldap_email($user->email_addr)) {
         row2("LDAP ID", ldap_email_to_uid($user->email_addr));
@@ -206,11 +231,13 @@ function show_user_info_private($user) {
         row2(tra("Email address"), $email_text);
     }
     if (strlen($user->url)) {
-        $x = "<a href=http://$user->url>http://$user->url</a>";
-        row2(tra("URL"), $x);
+        $u = normalize_user_url($user->url);
+        row2(tra("URL"), sprintf('<a href="%s">%s</a>', $u, $u));
     }
     row2(tra("Country"), $user->country);
-    row2(tra("Postal code"), $user->postal_code);
+    if (POSTAL_CODE) {
+        row2(tra("Postal code"), $user->postal_code);
+    }
     row2(tra("%1 member since", PROJECT), date_str($user->create_time));
     $url_tokens = url_tokens($user->authenticator);
     if (LDAP_HOST && is_ldap_email($user->email_addr)) {
@@ -226,8 +253,8 @@ function show_user_info_private($user) {
             · <a href=\"edit_user_info_form.php?$url_tokens\">".tra("other account info")."</a>"
         );
     }
-    row2(tra("User ID")."<br/><p class=\"text-muted\">".tra("Used in community functions")."</p>", $user->id);
-    if (!no_computing()) {
+    row2(tra("User ID")."<br/><p class=\"small\">".tra("Used in community functions")."</p>", $user->id);
+    if (!NO_COMPUTING) {
         row2(
             tra("Account keys"),
             "<a href=\"weak_auth.php\">".tra("View")."</a>"
@@ -235,7 +262,7 @@ function show_user_info_private($user) {
     }
 
     row1("<a name=\"prefs\"></a>".tra("Preferences"));
-    if (!no_computing()) {
+    if (!NO_COMPUTING) {
         row2(
             tra("When and how BOINC uses your computer"),
             "<a href=\"prefs.php?subset=global\">".tra("Computing preferences")."</a>"
@@ -244,7 +271,7 @@ function show_user_info_private($user) {
     row2(tra("Message boards and private messages"),
         "<a href=\"edit_forum_preferences_form.php\">".tra("Community preferences")."</a>"
     );
-    if (!no_computing()) {
+    if (!NO_COMPUTING) {
         row2(tra("Preferences for this project"),
             "<a href=\"prefs.php?subset=project\">".tra("%1 preferences", PROJECT)."</a>"
         );
@@ -261,17 +288,21 @@ function friend_links($user) {
         if ($profile && $profile->has_picture) {
             $img_url = profile_thumb_url($user->id);
         } else {
-            $img_url = URL_BASE."img/head_20.png";
+            $img_url = url_base()."img/head_20.png";
         }
         $title = tra("View the profile of %1", $user->name);
         $alt = tra("Profile");
-        $x .= ' <a href="'.URL_BASE.'view_profile.php?userid='.$user->id.'"><img title="'.$title.'" src="'.$img_url.'" alt="'.$alt.'"></a><br>';
+        $x .= ' <a href="'.url_base().'view_profile.php?userid='.$user->id.'"><img title="'.$title.'" src="'.$img_url.'" alt="'.$alt.'"></a><br>';
     }
-    $x .= " <a href=\"".URL_BASE."show_user.php?userid=".$user->id."\">".$user->name."</a>";
+    $x .= " <a href=\"".url_base()."show_user.php?userid=".$user->id."\">".$user->name."</a>";
     if ($user->donated == 1) {
         require_once("../project/donations.inc");
         $x .= DONATION_LINK;
     }
+    if ($user->donated == 2) {
+        require_once("../project/donations.inc");
+        $x .= DONATION_LINK_TWO;
+    }
     $x .= "</td></tr></table>\n";
     return $x;
 }
@@ -286,14 +317,18 @@ function user_links($user, $badge_height=0) {
     }
     $x = "";
     if ($user->has_profile) {
-        $img_url = URL_BASE."img/head_20.png";
-        $x .= ' <a href="'.URL_BASE.'view_profile.php?userid='.$user->id.'"><img title="View the profile of '.$user->name.'" src="'.$img_url.'" alt="Profile"></a>';
+        $img_url = url_base()."img/head_20.png";
+        $x .= ' <a href="'.url_base().'view_profile.php?userid='.$user->id.'"><img title="View the profile of '.$user->name.'" src="'.$img_url.'" alt="Profile"></a>';
     }
-    $x .= " <a href=\"".URL_BASE."show_user.php?userid=".$user->id."\">".$user->name."</a>";
+    $x .= " <a href=\"".url_base()."show_user.php?userid=".$user->id."\">".$user->name."</a>";
     if ($user->donated == 1) {
         require_once("../project/donations.inc");
         $x .= DONATION_LINK;
     }
+    if ($user->donated == 2) {
+        require_once("../project/donations.inc");
+        $x .= DONATION_LINK_TWO;
+    }
     if ($badge_height) {
         $x .= badges_string(true, $user, $badge_height);
     }
@@ -304,6 +339,7 @@ function user_links($user, $badge_height=0) {
 }
 
 function show_community_private($user) {
+    start_table();
     row1(tra("Community"));
 
     show_badges_row(true, $user);
@@ -318,7 +354,7 @@ function show_community_private($user) {
     if (!DISABLE_FORUMS) {
         $tot = total_posts($user);
         if ($tot) {
-            row2(tra("Message boards"), "<a href=\"".URL_BASE."forum_user_posts.php?userid=$user->id\">".tra("%1 posts", $tot)."</a>");
+            row2(tra("Message boards"), "<a href=\"".url_base()."forum_user_posts.php?userid=$user->id\">".tra("%1 posts", $tot)."</a>");
         }
     }
     
@@ -340,8 +376,7 @@ function show_community_private($user) {
     }
 
     if (!DISABLE_TEAMS) {
-        if ($user->teamid) {
-            $team = BoincTeam::lookup_id($user->teamid);
+        if ($user->teamid && ($team = BoincTeam::lookup_id($user->teamid))) {
             $x = "<a href=\"team_display.php?teamid=$team->id\">$team->name</a>
                 · <a href=\"team_quit_form.php\">".tra("Quit team")."</a>";
             if (is_team_admin($user, $team)) {
@@ -362,7 +397,7 @@ function show_community_private($user) {
         foreach ($teams_founded as $team) {
             if ($team->id != $user->teamid) {
                 $x = "<a href=\"team_display.php?teamid=$team->id\">$team->name</a>";
-                $x .= "| <a href=\"team_manage.php?teamid=".$team->id."\">".tra("Administer")."</a>";
+                $x .= " | <a href=\"team_manage.php?teamid=".$team->id."\">".tra("Administer")."</a>";
                 if ($team->ping_user > 0) {
                     $x .= "<p class=\"text-danger\">".tra("(foundership change request pending)")."</span>";
                 }
@@ -384,6 +419,7 @@ function show_community_private($user) {
     } else {
         row2(tra("Friends"), $x);
     }
+    end_table();
 }
 
 // show summary of dynamic and static info (public)
@@ -396,15 +432,16 @@ function show_user_summary_public($user) {
     // don't show URL if user has no recent credit (spam suppression)
     //
     if (strlen($user->url)) {
-        if (no_computing() || $user->expavg_credit > 1) {
-            row2(tra("URL"), "<a href=\"http://$user->url\">http://$user->url</a>");
+        if (!NO_COMPUTING || $user->expavg_credit > 1) {
+            $u = normalize_user_url($user->url);
+            row2(tra("URL"), sprintf('<a href="%s">%s</a>', $u, $u));
         }
     }
-    if (!no_computing()) {
+    if (!NO_COMPUTING) {
         show_credit($user);
 
         if ($user->show_hosts) {
-            row2(tra("Computers"), "<a href=\"".URL_BASE."hosts_user.php?userid=$user->id\">".tra("View")."</a>");
+            row2(tra("Computers"), "<a href=\"".url_base()."hosts_user.php?userid=$user->id\">".tra("View")."</a>");
         } else {
             row2(tra("Computers"), tra("hidden"));
         }
@@ -415,6 +452,12 @@ function show_user_summary_public($user) {
             row2(tra("Donor"), DONATION_LINK);
         }
     }
+    if ($user->donated == 2) {
+        if (file_exists("../project/donations.inc")) {
+            require_once("../project/donations.inc");
+            row2(tra("Donor"), DONATION_LINK_TWO);
+        }
+    }
 }
 
 // Returns a cacheable community links data object
@@ -444,14 +487,14 @@ function community_links($clo, $logged_in_user){
     
     if (!DISABLE_TEAMS) {
         if ($user->teamid && $team) {
-            row2(tra("Team"), "<a href=\"".URL_BASE."team_display.php?teamid=$team->id\">$team->name</a>");
+            row2(tra("Team"), "<a href=\"".url_base()."team_display.php?teamid=$team->id\">$team->name</a>");
         } else {
             row2(tra("Team"), tra("None"));
         }
     }
     if (!DISABLE_FORUMS) {
         if ($tot) {
-            row2(tra("Message boards"), "<a href=\"".URL_BASE."forum_user_posts.php?userid=$user->id\">".tra("%1 posts", $tot)."</a>");
+            row2(tra("Message boards"), "<a href=\"".url_base()."forum_user_posts.php?userid=$user->id\">".tra("%1 posts", $tot)."</a>");
         }
     }
     if ($logged_in_user && $logged_in_user->id != $user->id) {
@@ -484,30 +527,30 @@ function show_profile_link($user) {
 }
 
 function show_account_private($user) {
-    start_table_noborder();
-    echo "<tr><td valign=top>";
-    start_table();
-    show_user_info_private($user);
-    if (!no_computing()) {
-        show_user_stats_private($user);
-    }
+    grid(
+        false,
+        function() use ($user) {
+            start_table();
+            show_user_info_private($user);
+            if (!NO_COMPUTING) {
+                show_user_stats_private($user);
+            }
 
-    if (file_exists("../project/donations.inc")) {
-        require_once("../project/donations.inc");
-        if (function_exists('show_user_donations_private')) {
-            show_user_donations_private($user);
+            if (file_exists("../project/donations.inc")) {
+                require_once("../project/donations.inc");
+                if (function_exists('show_user_donations_private')) {
+                    show_user_donations_private($user);
+                }
+            }
+            end_table();
+            show_other_projects($user, true);
+            project_user_page_private($user);
+            //echo "<a href=delete_account.php>Delete account</a>\n";
+        },
+        function() use ($user) {
+            show_community_private($user);
         }
-    }
-    end_table();
-    show_other_projects($user, true);
-    project_user_page_private($user);
-    //echo "<a href=delete_account.php>Delete account</a>\n";
-    echo "</td><td valign=top>";
-    start_table();
-    show_community_private($user);
-    end_table();
-
-    echo "</td></tr></table>";
+    );
 }
 
 function is_banned_email_addr($email_addr) {
diff --git a/html/inc/util.inc b/html/inc/util.inc
index 6bb901f..8fa299c 100644
--- a/html/inc/util.inc
+++ b/html/inc/util.inc
@@ -29,6 +29,14 @@ require_once("../inc/db.inc");
 require_once("../inc/boinc_db.inc");
 require_once("../inc/translation.inc");
 require_once("../inc/profile.inc");
+require_once("../inc/bootstrap.inc");
+
+// parse some stuff from config (do it here for efficiency)
+//
+$config = get_config();
+$master_url = parse_config($config , "<master_url>");
+$recaptcha_public_key = parse_config($config, "<recaptcha_public_key>");
+$recaptcha_private_key = parse_config($config, "<recaptcha_private_key>");
 
 // don't allow /... at the end of URL
 
@@ -68,6 +76,17 @@ if (!defined('BADGE_HEIGHT_LARGE')) {
 if (!defined('LDAP_HOST')) {
     define('LDAP_HOST', null);
 }
+if (!defined('POSTAL_CODE')) {
+    define('POSTAL_CODE', false);
+}
+if (!defined('NO_COMPUTING')) {
+    define('NO_COMPUTING', false);
+}
+
+// sleep this long on any login failure
+// (slow the rate of hacker attacks)
+//
+define('LOGIN_FAIL_SLEEP_SEC', 5);
 
 $caching = false;
     // if set, we're writing to a file rather than to client
@@ -89,13 +108,14 @@ function secure_url_base() {
 }
 
 function url_base() {
-    return is_https()?secure_url_base():URL_BASE;
+    return secure_url_base();
 }
 
 function send_cookie($name, $value, $permanent, $ops=false) {
+    global $master_url;
+
     // the following allows independent login for projects on the same server
     //
-    $master_url = parse_config(get_config(), "<master_url>");
     $url = parse_url($master_url);
     $path = $url['path'];
     if ($ops) {
@@ -107,7 +127,7 @@ function send_cookie($name, $value, $permanent, $ops=false) {
 }
 
 function clear_cookie($name, $ops=false) {
-    $master_url = parse_config(get_config(), "<master_url>");
+    global $master_url;
     $url = parse_url($master_url);
     $path = $url['path'];
     if ($ops) {
@@ -124,7 +144,7 @@ function get_logged_in_user($must_be_logged_in=true) {
     global $g_logged_in_user, $got_logged_in_user;
     if ($got_logged_in_user) return $g_logged_in_user;
 
-    check_web_stopped();
+    if (web_stopped()) return null;
 
     $authenticator = null;
     if (isset($_COOKIE['auth'])) $authenticator = $_COOKIE['auth'];
@@ -143,7 +163,7 @@ function get_logged_in_user($must_be_logged_in=true) {
             }
         }
         $next_url = urlencode($next_url);
-        Header("Location: login_form.php?next_url=$next_url");
+        Header("Location: ".url_base()."login_form.php?next_url=$next_url");
         exit;
     }
     $got_logged_in_user = true;
@@ -152,46 +172,55 @@ function get_logged_in_user($must_be_logged_in=true) {
 
 function show_login_info($prefix="") {
     $user = get_logged_in_user(false);
-    echo "
-        <table width=\"100%\" cellpadding=0 cellspacing=0>
-        <tr><td align=right>
-    ";
     if ($user) {
         $url_tokens = url_tokens($user->authenticator);
         echo "<nobr>$user->name · <a href=".$prefix."logout.php?$url_tokens>".tra("log out")."</a></nobr>";
     } else {
         echo "<a href=".$prefix."login_form.php>".tra("log in")."</a>";
     }
-    echo "
-        </td>
-        </tr>
-        </table>
-    ";
 }
 
 $cache_control_extra="";
+$is_login_page = false;
 
+// Call this to start pages.
+// Outputs some HTML boilerplate,
+// then calls project_banner() (in html/project/project.inc)
+// to output whatever you want at the top of your web pages.
+//
 // Page_head() is overridable so that projects that want to integrate BOINC
 // with an existing web framework can more easily do so.
 // To do so, define page_head() in the project include file.
 //
 if (!function_exists("page_head")){
 function page_head(
-    $title, $java_onload=null, $title_plain=null, $prefix="", $head_extra=null
+    $title,
+        // page title. Put in <title>, used as title for browser tab.
+    $body_attrs=null,
+        // <body XXXX>
+        // e.g. Javascript to put focus in an input field
+        // (onload="document.form.foo.focus()")
+        // or to jump to a particular post (onload="jumpToUnread();")
+    $is_main = false,
+        // if set, include schedulers.txt.
+        // also pass to project_banner() in case you want a different
+        // header for your main page.
+    $url_prefix="",
+        // prepend this to links.
+        // Use for web pages not in the top directory
+    $head_extra=null
+        // extra stuff to put in <head>. E.g.:
+        // reCAPTCHA code (create_profile.php)
+        // bbcode javascript (forums)
 ) {
     global $caching, $cache_control_extra, $did_page_head;
+    global $is_login_page, $fixed_navbar;
 
     $did_page_head = true;
     $url_base = url_base();
-    $stylesheet = $url_base.STYLESHEET;
+
     $rssname = PROJECT . " RSS 2.0";
     $rsslink = $url_base."rss_main.php";
-    if (defined('STYLESHEET2')) {
-        $stylesheet2 = $url_base.STYLESHEET2;
-    } else {
-        $stylesheet2 = null;
-    }
-
 
     if (!$caching) {
         header("Content-type: text/html; charset=utf-8");
@@ -201,66 +230,87 @@ function page_head(
         header ("Pragma: no-cache");                          // HTTP/1.0
     }
 
-    echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
-    
-    echo "<html><head>\n";
+    echo '<!DOCTYPE html>
+        <html lang="en">
+        <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+    ';
     if ($head_extra) {
         echo "\n$head_extra\n";
     }
-    if (!$title_plain) {
-        echo "<title>".sanitize_tags($title)."</title>\n";
-    } else {
-        echo "<title>".sanitize_tags($title_plain)."</title>\n";
+    if ($is_main && (!defined('NO_COMPUTING')||!NO_COMPUTING)) {
+        readfile("schedulers.txt");
     }
-    echo "<link rel=stylesheet type=\"text/css\" href=\"".$url_base."main.css\" media=\"all\">
-        <link rel=stylesheet type=\"text/css\" href=\"$stylesheet\">
-    ";
-    if ($stylesheet2) {
-        echo "<link rel=stylesheet type=\"text/css\" href=\"$stylesheet2\">\n";
+
+    $t = $title?$title:PROJECT;
+    echo "<title>$t</title>\n";
+    echo '
+        <meta charset="utf-8">
+        <link type="text/css" rel="stylesheet" href="'.secure_url_base().'/bootstrap.min.css" media="all">
+    ';
+    if (defined('STYLESHEET')) {
+        $stylesheet = $url_base.STYLESHEET;
+        echo "
+            <link rel=stylesheet type=\"text/css\" href=\"$stylesheet\">
+        ";
+    }
+    if (defined('STYLESHEET2')) {
+        $stylesheet2 = $url_base.STYLESHEET2;
+        echo "
+            <link rel=stylesheet type=\"text/css\" href=\"$stylesheet2\">
+        ";
     }
+
     if (defined("SHORTCUT_ICON")) {
-        echo '<link rel="icon" type="image/x-icon", href="'.SHORTCUT_ICON.'"/>
+        echo '<link rel="icon" type="image/x-icon" href="'.SHORTCUT_ICON.'"/>
 ';
     }
+
     echo "
         <link rel=alternate type=\"application/rss+xml\" title=\"$rssname\" href=\"$rsslink\">
         </head>
     ";
-    if ($java_onload){
-        echo "<body onload=\"".$java_onload."\">";
-    } else {
-        echo "<body>";
+    if ($fixed_navbar) {
+        $body_attrs .= ' style="padding-top:70px"';
     }
+    echo "<body $body_attrs>";
     display_cvs_versions();
+    echo '<div class="container-fluid">
+    ';
 
-    project_banner($title, $prefix);
     switch($title) {    //kludge
     case tra("Log in"):
     case tra("Create an account"):
     case tra("Server status page"):
+        $is_login_page = true;
         break;
     default:
-        show_login_info($prefix);
+        break;
     }
+    project_banner($title, $url_prefix, $is_main);
 
 }
 }
 
-function page_tail_aux($show_return, $show_date, $prefix="") {
-    project_footer($show_return, $show_date, $prefix);
-    echo "</body>
-        </html>
-    ";
-}
-function page_tail_main($show_date=false) {
-    page_tail_aux(false, $show_date);
-}
-
 // See the comments for page_head()
 //
 if (!function_exists("page_tail")){
-function page_tail($show_date=false, $prefix="") {
-    page_tail_aux(true, $show_date, $prefix);
+function page_tail(
+    $show_date=false,
+        // true for pages that are generated periodically rather than on the fly
+    $url_prefix="",
+        // use for pages not at top level
+    $is_main=false
+        // passed to project_footer;
+) {
+    project_footer($is_main, $show_date, $url_prefix);
+    echo '
+        <script src="'.secure_url_base().'/jquery.min.js"></script>
+        <script src="'.secure_url_base().'/bootstrap.min.js"></script>
+        </div>
+        </body>
+        </html>
+    ';
 }
 }
 
@@ -335,30 +385,38 @@ function pretty_time_str($x) {
     return time_str($x);
 }
 
-// TODO: currently only a few calls use the arguments, styling should only happen through CSS clases so $extra should be dropped in the future
-function start_table($extra="width=\"100%\"", $class="table-bordered") {
-    echo "<table class=\"table $class\" $extra>";
+function start_table_str($class="", $style="") {
+    $s = $style?'style="'.$style.'"':'';
+    return '<div class="table">
+      <table '.$s.' width="100%" class="table table-condensed '.$class.'" >
+    ';
+}
+
+function start_table($class="", $style="") {
+    echo start_table_str($class, $style);
 }
 
-// TODO: currently no call uses the arguments, styling should only happen through CSS clases so $extra could be dropped in the future
-function start_table_noborder($extra="width=\"100%\"", $class="noborder") {
-    echo "<table class=\"table $class\" $extra>";
+function end_table_str() {
+    return '</table>
+        </div>
+    ';
 }
 
 function end_table() {
-    echo "</table>\n";
+    echo end_table_str();
 }
 
 // Table header row with unlimited number of columns
 
 function table_header() {
     echo "<tr>\n";
+    $c = 'class="bg-primary"';
     for ($i = 0; $i < func_num_args(); $i++) {
         if (is_array(func_get_arg($i))) {
             $col = func_get_arg($i);
-            echo "<th ".$col[1].">".$col[0]."</th>\n";
+            echo "<th $c ".$col[1].">".$col[0]."</th>\n";
         } else {
-            echo "<th valign=top>".func_get_arg($i)."</th>\n";
+            echo "<th $c>".func_get_arg($i)."</th>\n";
         }
     }
     echo "</tr>\n";
@@ -381,27 +439,32 @@ function table_row() {
 
 function row1($x, $ncols=2, $class="heading") {
     if ($class == "heading") {
-        echo "<tr><th colspan=\"$ncols\">$x</th></tr>\n";
+        echo "<tr><th class=\"bg-primary\" colspan=\"$ncols\">$x</th></tr>\n";
     } else {
         echo "<tr><td class=\"$class\" colspan=\"$ncols\">$x</td></tr>\n";
     }
 }
 
-function row2($x, $y, $show_error=false) {
-    if ($x=="") $x="<br>";
+define('NAME_ATTRS', 'class="text-right " style="padding-right:12px"');
+define('VALUE_ATTRS', 'style="padding-left:12px"');
+define('VALUE_ATTRS_ERR', 'class="danger" style="padding-left:12px"');
+
+function row2($x, $y, $show_error=false, $lwidth='40%') {
+    if ($x==="") $x="<br>";
     if ($y==="") $y="<br>";
-    if ($show_error) {
-        $class1 = 'fieldname_error';
-        $class2 = 'fieldvalue_error';
-    } else {
-        $class1 = 'fieldname';
-        $class2 = 'fieldvalue';
-    }
-    echo "<tr><td width=\"40%\" class=$class1>$x</td><td class=$class2>$y</td></tr>\n";
+    $attrs = $show_error?VALUE_ATTRS_ERR:VALUE_ATTRS;
+    echo "<tr>
+        <td width=\"$lwidth\" ".NAME_ATTRS.">$x</td>
+        <td $attrs >$y</td>
+        </tr>
+    ";
 }
 
-function row2_init($x, $y) {
-    echo "<tr><td class=fieldname width=\"40%\">$x</td><td class=fieldvalue>$y\n";
+function row2_init($x, $y, $lwidth='40%') {
+    echo '<tr>
+        <td class="text-right " width="'.$lwidth.'"  style="padding-right: 20px;">'.$x.'</td>
+        <td '.VALUE_ATTRS.'>'.$y.'
+    ';
 }
 
 function row2_plain($x, $y) {
@@ -412,26 +475,32 @@ function rowify($string) {
     echo "<tr><td>$string</td></tr>";
 }
 
-function row_array($x, $class=null) {
-    if ($class) {
-        echo "<tr class='$class'>";
-    } else {
-        echo "<tr>";
-    }
+function row_array($x) {
+    echo "<tr>\n";
     foreach ($x as $h) {
-        echo "<td>$h</td>";
+        echo "<td>$h</td>\n";
     }
     echo "</tr>\n";
 }
 
-function row_heading_array($x) {
+define ('ALIGN_RIGHT', 'style="text-align:right;"');
+
+function row_heading_array($x, $attrs=null, $class='bg-primary') {
     echo "<tr>";
+    $i = 0;
     foreach ($x as $h) {
-        echo "<th>$h</th>";
+        $a = $attrs?$attrs[$i]:"";
+        echo "<th $a class=\"$class\">$h</th>";
+        $i++;
     }
     echo "</tr>\n";
 }
 
+function row_heading($x) {
+    echo '<tr><th class="bg-primary" colspan=99>'.$x.'</th></tr>
+    ';
+}
+
 function random_string() {
     return md5(uniqid(rand(), true));
 }
@@ -474,10 +543,6 @@ function check_tokens($auth) {
     );
 }
 
-function no_computing() {
-    return parse_bool(get_config(), "no_computing");
-}
-
 // Generates a legal filename from a parameter string.
 
 function get_legal_filename($name) {
@@ -618,6 +683,14 @@ function post_int($name, $optional=false) {
     return $y;
 }
 
+function get_array($name) {
+    if (isset($_GET[$name])) {
+        return $_GET[$name];
+    } else {
+        return array();
+    }
+}
+
 function get_str($name, $optional=false) {
     if (isset($_GET[$name])) {
         $x = $_GET[$name];
@@ -642,6 +715,18 @@ function post_str($name, $optional=false) {
     return undo_magic_quotes($x);
 }
 
+function post_arr($name, $optional=false) {
+    if (isset($_POST[$name]) && is_array($_POST[$name])) {
+        $x = $_POST[$name];
+    } else {
+        if (!$optional) {
+            error_page("missing or bad parameter: $name");
+        }
+        $x = null;
+    }
+    return $x;
+}
+
 function is_ascii($str) {
     // the mb_* functions are not included by default
     // return (mb_detect_encoding($passwd) -= 'ASCII');
@@ -669,25 +754,26 @@ function verify_numeric(&$value, $low, $high = false) {
     $number = str_replace('x', '', $number); //if someone enters '0x100'
     $number = str_replace(',', '.', $number); // replace the german decimal separator
     // if no value was entered and this is ok
-    if ($number=='' && $low=='') return true;
+    //
+    if ($number=='' && !$low) return true;
 
     // the supplied value contains alphabetic characters
+    //
     if (!is_numeric($number)) return false;
 
-    //if ($number < $low) $number = $low;
     if ($number < $low) return false;
 
     if ($high) {
-        //if ($number > $high) $number = $high;
         if ($number > $high) return false;
     }
     $value = (double)$number;
     return true;
 }
 
-// Generate a "select" HTML element from an array of values
-function select_from_array($name, $array, $selection) {
-    $out = "<select name=\"$name\">";
+// Generate a "select" element from an array of values
+//
+function select_from_array($name, $array, $selection=null, $width=240) {
+    $out = '<select style="color:#000;"class="form-control input-sm" style="width:'.$width.'px" name="'.$name.'">"';
 
     foreach ($array as $key => $value) {
         if ($value) {
@@ -695,10 +781,10 @@ function select_from_array($name, $array, $selection) {
             if ($key == $selection) {
                 $out .= "selected ";
             }
-            $out .= "value=\"".$key."\">".$value."</option>";
+            $out .= "value=\"".$key."\">".$value."</option>\n";
         }
     }
-    $out.= "</select>";
+    $out .= "</select>\n";
     return $out;
 }
 
@@ -739,13 +825,18 @@ function current_url() {
 // @param desc The title of the destination - typically used as a popup
 // @param class The optional CSS class of the button. Defaults to a standard button
 //
-function show_button($url, $text, $desc=null, $class="btn btn-default") {
-    if (!$desc) $desc = $text;
-    echo "<a href=\"".$url."\" title=\"$desc\" class=\"".$class."\">".$text."</a>\n";
+function show_button($url, $text, $desc=null, $class="btn btn-default btn-xs") {
+    if (!$desc) {
+        $desc = $text;
+    }
+    echo "<a href=\"".$url."\" title=\"$desc\" class=\"".$class."\">".$text."</a>
+    ";
 }
+
 function button_text($url, $text, $desc=null, $class="btn btn-default") {
     if (!$desc) $desc = $text;
-    return "<a href=\"".$url."\" title=\"$desc\" class=\"".$class."\">".$text."</a>\n";
+    return "<a href=\"".$url."\" title=\"$desc\" class=\"".$class."\">".$text."</a>
+    ";
 }
 
 // When multiple buttons (or actions) are presented in a list you can
@@ -761,12 +852,14 @@ function show_actionlist_button($url, $text, $desc, $class="btn btn-default"){
     echo "</li>";
 }
 
+// used for showing icons
+//
 function show_image($src, $title, $alt, $height=null) {
     $h = "";
     if ($height) {
         $h = "height=\"$height\"";
     }
-    echo "<img border=\"0\" title=\"$title\" alt=\"$alt\" src=\"$src\" $h>";
+    echo "<img class=\"icon\" border=\"0\" title=\"$title\" alt=\"$alt\" src=\"$src\" $h>";
 }
 
 function check_web_stopped() {
@@ -861,6 +954,8 @@ function sanitize_tags($x) {
 function sanitize_numeric($x) {
     if (is_numeric($x)) {
         return $x;
+    } else if (trim($x) == '' ) {
+        return '';
     } else {
         return "not numeric";
     }
@@ -971,7 +1066,7 @@ function text_counter_script() {
 //
 function textarea_with_counter($name, $maxlen, $text) {
     $rem_name = $name."_remaining";
-    return "<textarea name=\"$name\" rows=4 cols=50 id=\"$name\" onkeydown=\"text_counter(this.form.$name, this.form.$rem_name, $maxlen);\"
+    return "<textarea name=\"$name\" class=\"form-control\" rows=3 id=\"$name\" onkeydown=\"text_counter(this.form.$name, this.form.$rem_name, $maxlen);\"
         onkeyup=\"text_counter(this.form.$name, this.form.$rem_name, $maxlen);\">".$text."</textarea>
         <br><input name=\"$rem_name\" type=\"text\" id=\"$rem_name\" value=\"".($maxlen-strlen($text))."\" size=\"3\" maxlength=\"3\" readonly> ".tra("characters remaining")
     ;
@@ -987,27 +1082,17 @@ function version_string_maj_min_rel($v) {
     return sprintf("%d.%d.%d", $maj, $min, $v);
 }
 
-// recaptcha utilities
-
-function recaptcha_get_head_extra() {
-    // are we using recaptcha?
-    $publickey = parse_config(get_config(), "<recaptcha_public_key>");
-    if ($publickey) {
-        // the meta tag must be included
-        // for Recaptcha to work with some IE browsers
-        return '<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
-        <script src="https://www.google.com/recaptcha/api.js" async defer></script>';
-    } else {
-        return null;
-    }
-}
-
-function recaptcha_get_html($publickey) {
-    if ($publickey) {
-        return '<div class="g-recaptcha" data-sitekey="' . $publickey . '"></div>';
-    } else {
-        return '';
-    }
+function google_search_form($url) {
+    echo "
+        <nobr>
+        <form method=get action=\"https://google.com/search\">
+        <input type=hidden name=domains value=\"$url\">
+        <input type=hidden name=sitesearch value=\"$url\">
+        <input class=small name=q size=20>
+        <input class=small type=submit value=".tra("Search").">
+        </form>
+        </nobr>
+    ";
 }
 
 $cvs_version_tracker[]="\$Id$";  //Generated automatically - do not edit
diff --git a/html/inc/util_basic.inc b/html/inc/util_basic.inc
index 1dffd30..9f4de16 100644
--- a/html/inc/util_basic.inc
+++ b/html/inc/util_basic.inc
@@ -16,8 +16,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// minimal set of util functions;
-// doesn't pull in translation.inc etc.
+// minimal set of utility functions, usable outside a BOINC project.
+// Doesn't pull in translation.inc etc.
 
 $generating_xml = false;
 
@@ -44,7 +44,8 @@ function show_page($x, $y) {
     ";
 }
 
-function xml_error($num, $msg=null) {
+function xml_error($num, $msg=null, $file=null, $line=null) {
+    global $xml_outer_tag;
     if (!$msg) {
         switch($num) {
         case -112: $msg = "Invalid XML"; break;
@@ -64,8 +65,17 @@ function xml_error($num, $msg=null) {
     echo "<error>
     <error_num>$num</error_num>
     <error_msg>$msg</error_msg>
-</error>
 ";
+    if ($file) {
+        echo "    <file>$file</file>\n";
+    }
+    if ($line) {
+        echo "    <line>$line</line>\n";
+    }
+    echo "</error>\n";
+    if (isset($xml_outer_tag) && $xml_outer_tag != "") {
+        echo "</$xml_outer_tag>\n";
+    }
     exit();
 }
 
@@ -146,4 +156,49 @@ function is_gpu($plan_class) {
     return false;
 }
 
+// the same as file_get_contents() but uses curl
+//
+function url_get_contents($url) {
+    $ch = curl_init($url);
+    curl_setopt($ch, CURLOPT_HEADER, false);
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+    curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
+    $content = curl_exec($ch);
+    curl_close($ch);
+    return $content;
+}
+
+// Stuff related to password hashing.
+// Originally we hashed with MD5.
+// But MD5 is so fast that brute-force cracking would be easy
+// for hackers who break into a project's server.
+// So now we additionally hash with bcrypt,
+// if available (PHP >= 5.5) via PHP's password_hash() function.
+//
+// So there are two levels of hash:
+//
+// hash_0: md5(password.email_addr)
+// hash_1: password_hash(hash_0, PASSWORD_DEFAULT)
+//
+// hash_0 is what gets sent over the network,
+// from the client and account manager RPCs.
+//
+// hash_1 is what gets stored in the DB
+//   except that hash_0 is stored in the DB if
+//   - the project has pre-5.5 PHP, or
+//   - the project hasn't run the update script (see below)
+//
+// It would be slightly more secure if hash_1 was used on the network.
+// But that would require a client and account manager change,
+// and it would require them to know whether the server has password_hash().
+//
+// We supply a script update_password_hash.php.
+// This changes the user table from hash_0 to hash_1.
+// Projects can run it whenever they want;
+// those using old PHP can wait until they upgrade PHP.
+//
+// To simplify the transition:
+// - When we're authorizing a user, 
+
 ?>
diff --git a/html/inc/util_ops.inc b/html/inc/util_ops.inc
index 4227d61..71fe66b 100644
--- a/html/inc/util_ops.inc
+++ b/html/inc/util_ops.inc
@@ -76,7 +76,7 @@ function c_row2($color, $x, $y) {
 function show_profile_link_ops($user) {
     if ($user->has_profile) { 
         row2("Profile",
-            "<a href=\"".URL_BASE."view_profile.php?userid=$user->id\">View</a>"
+            "<a href=\"".url_base()."view_profile.php?userid=$user->id\">View</a>"
         );
     }
 }
@@ -355,35 +355,36 @@ if (!isset($skip_auth_ops) && array_key_exists("SERVER_PORT", $_SERVER)) {
     auth_ops();
 }
 
-// TODO: use DB interface layer
+// returns true when this is a readonly ops section
+// currently a dummy because this needs to be ported from Einstein at home
 //
+function in_rops() {
+    return false;
+}
+
 function cancel_wus_where($clause) {
     $q1 = "CREATE TEMPORARY TABLE tmp SELECT id FROM workunit WHERE $clause;";
-    $q2 = "UPDATE result SET server_state=5, outcome=5 WHERE server_state=2 AND workunitid in (SELECT id FROM tmp);";
-    $q3 = "UPDATE workunit SET error_mask=error_mask|16 WHERE id in (SELECT id FROM tmp);";
-    $q4 = "UPDATE workunit SET transition_time=0 WHERE id in (SELECT id FROM tmp);";
-    $q5 = "DROP TABLE tmp;";
+    $q2 = "UPDATE result r INNER JOIN tmp t on r.workunitid=t.id SET server_state=5, outcome=5 WHERE server_state=2;";
+    $q3 = "UPDATE workunit w INNER JOIN tmp t on w.id=t.id SET error_mask=error_mask|16, transition_time=0;";
+    $q4 = "DROP TABLE tmp;";
 
-    if (!_mysql_query($q1)) {
+    $db = BoincDb::get();
+
+    if (!$db->do_query($q1)) {
         echo "MySQL command '$q1' failed:<br/>unable to create temporary WU id table.<br>\n";
         return 1;
-    } else if (!_mysql_query($q2)) {
+    } else if (!$db->do_query($q2)) {
         echo "MySQL command '$q2' failed:<br/>unable to cancel unsent results.<br>\n";
-        _mysql_query($q5);
+        $db->do_query($q4);
         return 2;
-    } else if (!_mysql_query($q3)) {
-      echo "MySQL command '$q3' failed:<br/>unable to cancel workunits.<br>\n";
-        _mysql_query($q5);
+    } else if (!$db->do_query($q3)) {
+      echo "MySQL command '$q3' failed:<br/>unable to cancel workunits and trigger transitioner.<br>\n";
+        $db->do_query($q4);
         return 3;
-    } else if (!_mysql_query($q4)) {
-        echo "MySQL command '$q4' failed:<br/>unable to trigger transitioner.<br>\n";
-        _mysql_query($q5);
-        return 4;
-    } 
-    _mysql_query($q5);
+    }
+    $db->do_query($q4);
     echo "Successfully canceled WUs WHERE '$clause'<br>\n";
     return 0;
 }
 
-$cvs_version_tracker[]="\$Id$";  //Generated automatically - do not edit
 ?>
diff --git a/html/inc/web_rpc_api.inc b/html/inc/web_rpc_api.inc
index 36c2691..fe44b49 100644
--- a/html/inc/web_rpc_api.inc
+++ b/html/inc/web_rpc_api.inc
@@ -18,13 +18,30 @@
 
 // PHP interfaces to some of BOINC's Web RPCs
 
+// my PHP currently doesn't support file_get_contents(https://...)
+// so do it with Curl
+//
+function fetch_url($url) {
+    if (0) {
+        return file_get_contents($url);
+    } else {
+        $ch = curl_init();
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_HEADER, 0);
+        $x = curl_exec($ch);
+        curl_close($ch);
+        return $x;
+    }
+}
+
 function lookup_account(
     $project_url,
     $email_addr,
     $passwd_hash
 ) {
     $url = $project_url."/lookup_account.php?email_addr=".urlencode($email_addr)."&passwd_hash=$passwd_hash";
-    $reply = file_get_contents($url);
+    $reply = fetch_url($url);
     if (!$reply) return array(null, -1, "HTTP error");
     $r = @simplexml_load_string($reply);
     if (!$r) {
@@ -48,8 +65,10 @@ function create_account(
 ) {
     $url = $project_url."/create_account.php?email_addr=".urlencode($email_addr)."&passwd_hash=$passwd_hash&user_name=".urlencode($user_name);
 
-    $reply = file_get_contents($url);
+    //echo "url: $url\n";
+    $reply = fetch_url($url);
     if (!$reply) return array(null, -1, "HTTP error");
+    //echo "reply: $reply\n";
     $r = @simplexml_load_string($reply);
     if (!$r) {
         return array(null, -1, "Can't parse reply XML:\n$reply");
diff --git a/html/inc/xml.inc b/html/inc/xml.inc
index 7883f24..c7e5485 100644
--- a/html/inc/xml.inc
+++ b/html/inc/xml.inc
@@ -19,6 +19,7 @@
 require_once("../inc/boinc_db.inc");
 require_once("../inc/util.inc");
 require_once("../inc/common_defs.inc");
+require_once("../project/project.inc");
 
 function db_init_xml() {
     if (web_stopped()) {
@@ -29,13 +30,39 @@ function db_init_xml() {
     return 0;
 }
 
+// write PHP warnings as XML, so that the reply can be parsed by client
+//
+function error_handler($errno, $errstr, $errfile, $errline) {
+    if ($errno == E_WARNING) $errno = "Warning";
+    if ($errno == E_NOTICE) $errno = "Notice";
+    echo "<error>
+    <error_msg><![CDATA[$errstr]]></error_msg>
+    <type>$errno</type>
+    <file>$errfile</file>
+    <line>$errline</line>
+</error>
+";
+}
+
+
 function xml_header() {
     global $generating_xml;
+    if (defined("RPC_DEBUG") && RPC_DEBUG) {
+        set_error_handler('error_handler', E_WARNING|E_NOTICE);
+    }
     header('Content-type: text/xml');
     echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
     $generating_xml = true;
 }
 
+$xml_outer_tag = "";
+
+function xml_start_tag($tag) {
+    global $xml_outer_tag;
+    echo "<$tag>\n";
+    $xml_outer_tag = $tag;
+}
+
 // used only if host owner is the requesting user
 //
 function show_host_xml($host) {
@@ -68,6 +95,7 @@ function show_host_xml($host) {
 //
 function show_user_xml($user, $show_hosts) {
     $cpid = md5($user->cross_project_id.$user->email_addr);
+    $url = normalize_user_url($user->url);
     echo "<user>
     <id>$user->id</id>
     <cpid>$cpid</cpid>
@@ -78,7 +106,7 @@ function show_user_xml($user, $show_hosts) {
     <expavg_credit>$user->expavg_credit</expavg_credit>
     <expavg_time>$user->expavg_time</expavg_time>
     <teamid>$user->teamid</teamid>
-    <url>".htmlspecialchars($user->url)."</url>
+    <url>".htmlspecialchars($url)."</url>
     <has_profile>$user->has_profile</has_profile>
 ";
     if ($show_hosts) {
@@ -92,25 +120,21 @@ echo"</user>
 ";
 }
 
-function show_team_member($user, $show_email, $creditonly = false) {
+function show_team_member($user, $creditonly = false) {
     if ($creditonly && !$user->total_credit) { return; }
     $cpid = md5($user->cross_project_id.$user->email_addr);
+    $url = normalize_user_url($user->url);
     echo "<user>
     <id>$user->id</id>
     <cpid>$cpid</cpid>
-";
-    if ($show_email && $user->send_email) {
-        echo "    <email_addr>$user->email_addr</email_addr>
-";
-    }
-    echo "    <total_credit>$user->total_credit</total_credit>";
+    <total_credit>$user->total_credit</total_credit>";
     if (!$creditonly) {
         echo "    <create_time>$user->create_time</create_time>
     <name>".htmlspecialchars($user->name)."</name>
     <country>$user->country</country>
     <expavg_credit>$user->expavg_credit</expavg_credit>
     <expavg_time>$user->expavg_time</expavg_time>
-    <url>".htmlspecialchars($user->url)."</url>
+    <url>".htmlspecialchars($url)."</url>
     <has_profile>$user->has_profile</has_profile>
 ";
     }
diff --git a/html/languages/translations/ca.po b/html/languages/translations/ca.po
index 7efbc71..dd376f5 100644
--- a/html/languages/translations/ca.po
+++ b/html/languages/translations/ca.po
@@ -1,26 +1,27 @@
 # BOINC web translation
 # Copyright (C) 2008 University of California
+# 
 # This file is distributed under the same license as BOINC.
+# 
 # FileID  : $Id$
+# 
+# Translators:
+# Andry Blyshchak <youandrytube at gmail.com>, 2015
+# Xavier Mor-Mur <xavi.mormur at gmail.com>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-02-03 21:30+0000\n"
-"Last-Translator: Xavier <xavi.mormur at gmail.com>\n"
-"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
-"Language: ca\n"
+"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
+"Last-Translator: Xavier Mor-Mur <xavi.mormur at gmail.com>\n"
+"Language-Team: Catalan (http://www.transifex.com/boinc/boinc/language/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1391463057.0\n"
 
 msgid "LANG_NAME_NATIVE"
 msgstr "Català"
@@ -28,6 +29,97 @@ msgstr "Català"
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Catalan"
 
+#: ../inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Codi d'alta"
+
+#: ../inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Es requereix un codi d'invitació vàlid per a crear un compte."
+
+#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
+#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
+#: ../user/account_finish.php:41 ../user/team_admins.php:64
+#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
+#: ../user/top_users.php:49 ../user/user_search.php:124
+msgid "Name"
+msgstr "Nom"
+
+#: ../inc/account.inc:44 ../user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Us identifica a la pàgina web. Utilitzeu el vostre nom real o un àlies."
+
+#: ../inc/account.inc:48
+msgid "Email Address"
+msgstr "Adreça de correu electrònic"
+
+#: ../inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Ha de ser una adreça de correu vàlida del tipus 'nom at domini'."
+
+#: ../inc/account.inc:57 ../user/edit_email_form.php:47
+msgid "Password"
+msgstr "Contrasenya"
+
+#: ../inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Ha de tenir al menys %1 caràcters"
+
+#: ../inc/account.inc:61
+msgid "Confirm password"
+msgstr "Introduïu de nou la contrasenya"
+
+#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
+#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
+#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
+#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
+#: ../user/team_email_list.php:73 ../user/team_search.php:85
+#: ../user/top_users.php:63 ../user/user_search.php:53
+#: ../user/user_search.php:125
+msgid "Country"
+msgstr "País"
+
+#: ../inc/account.inc:63 ../user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Seleccioneu el país que voleu representar, si ho desitgeu."
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Codi postal o ZIP"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Optional"
+msgstr "Opcional"
+
+#: ../inc/account.inc:86
+msgid "Create account"
+msgstr "Crear un compte"
+
+#: ../inc/account.inc:101
+msgid "Email address:"
+msgstr "Adreça de correu:"
+
+#: ../inc/account.inc:103
+msgid "forgot email address?"
+msgstr "a oblidat l'adreça de correu electrònic?"
+
+#: ../inc/account.inc:106
+msgid "Password:"
+msgstr "Contrasenya:"
+
+#: ../inc/account.inc:106
+msgid "forgot password?"
+msgstr "ha oblidat la contrasenya?"
+
+#: ../inc/account.inc:109
+msgid "Stay logged in"
+msgstr "Segueixi connectat"
+
+#. kludge
+#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
+msgid "Log in"
+msgstr "Registrar-se"
+
 #: ../inc/bbcode_html.inc:11
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "Text en negreta: [b]text[/b]  (alt+b)"
@@ -41,329 +133,363 @@ msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "Subratllar el text: [u]text[/u]  (alt+u)"
 
 #: ../inc/bbcode_html.inc:20
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Text tatxat: [s]text[/s] (alt+k)"
+
+#: ../inc/bbcode_html.inc:23
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "Cita el text: [quote]text[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: ../inc/bbcode_html.inc:26
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "Mostrar el codi: [code]code[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: ../inc/bbcode_html.inc:29
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "Llista: [list]text[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
+#: ../inc/bbcode_html.inc:32
 msgid "Ordered list: [list=]text[/list]  (alt+o)"
 msgstr "Llista ordenada: [list=]text[/list]  (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: ../inc/bbcode_html.inc:35
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "Insereix una imatge: [img]http://image_url[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: ../inc/bbcode_html.inc:38
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Inserta URL: [url]http://url[/url] o [url=http://url]URL text[/url]  (alt+w)"
+msgstr "Inserta URL: [url]http://url[/url] o [url=http://url]URL text[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: ../inc/bbcode_html.inc:45
 msgid "Font color"
 msgstr "Color de la font"
 
-#: ../inc/bbcode_html.inc:43
+#: ../inc/bbcode_html.inc:46
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Color de la font: [color=red]text[/color]  Tip: you can also use "
-"color=#FF0000"
+msgstr "Color de la font: [color=red]text[/color]  Tip: you can also use color=#FF0000"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
+#: ../inc/prefs_util.inc:546
 msgid "Default"
 msgstr "Defecte"
 
-#: ../inc/bbcode_html.inc:45
+#: ../inc/bbcode_html.inc:48
 msgid "Dark Red"
 msgstr "Vermell fosc"
 
-#: ../inc/bbcode_html.inc:46
+#: ../inc/bbcode_html.inc:49
 msgid "Red"
 msgstr "Vermell"
 
-#: ../inc/bbcode_html.inc:47
+#: ../inc/bbcode_html.inc:50
 msgid "Orange"
 msgstr "Taronja"
 
-#: ../inc/bbcode_html.inc:48
+#: ../inc/bbcode_html.inc:51
 msgid "Brown"
 msgstr "Marró"
 
-#: ../inc/bbcode_html.inc:49
+#: ../inc/bbcode_html.inc:52
 msgid "Yellow"
 msgstr "Groc"
 
-#: ../inc/bbcode_html.inc:50
+#: ../inc/bbcode_html.inc:53
 msgid "Green"
 msgstr "Verd"
 
-#: ../inc/bbcode_html.inc:51
+#: ../inc/bbcode_html.inc:54
 msgid "Olive"
 msgstr "Oliva"
 
-#: ../inc/bbcode_html.inc:52
+#: ../inc/bbcode_html.inc:55
 msgid "Cyan"
 msgstr "Cyan"
 
-#: ../inc/bbcode_html.inc:53
+#: ../inc/bbcode_html.inc:56
 msgid "Blue"
 msgstr "Blau"
 
-#: ../inc/bbcode_html.inc:54
+#: ../inc/bbcode_html.inc:57
 msgid "Dark Blue"
 msgstr "Blau fosc"
 
-#: ../inc/bbcode_html.inc:55
+#: ../inc/bbcode_html.inc:58
 msgid "Indigo"
 msgstr "Indi"
 
-#: ../inc/bbcode_html.inc:56
+#: ../inc/bbcode_html.inc:59
 msgid "Violet"
 msgstr "Violeta"
 
-#: ../inc/bbcode_html.inc:57
+#: ../inc/bbcode_html.inc:60
 msgid "Font size"
 msgstr "Mida de la lletra"
 
-#: ../inc/bbcode_html.inc:58
+#: ../inc/bbcode_html.inc:61
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "Mida de la lletra: [size=x-small]small text[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: ../inc/bbcode_html.inc:63
 msgid "Small"
 msgstr "Petita"
 
-#: ../inc/bbcode_html.inc:61
+#: ../inc/bbcode_html.inc:64
 msgid "Normal"
 msgstr "Normal"
 
-#: ../inc/bbcode_html.inc:62
+#: ../inc/bbcode_html.inc:65
 msgid "Large"
 msgstr "Gran"
 
-#: ../inc/bbcode_html.inc:65
+#: ../inc/bbcode_html.inc:68
 msgid "Close all open bbCode tags"
 msgstr "Tancar totes les etiquetes bbCode obertes"
 
-#: ../inc/bbcode_html.inc:65
+#: ../inc/bbcode_html.inc:68
 msgid "Close Tags"
 msgstr "Tancar les etiquetes"
 
-#: ../inc/forum.inc:37
+#. names for the above
+#: ../inc/forum.inc:38
 msgid "Oldest first"
 msgstr "El més antic primer"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: ../inc/forum.inc:39 ../inc/forum.inc:45
 msgid "Newest first"
 msgstr "El més recent primer"
 
-#: ../inc/forum.inc:39
+#: ../inc/forum.inc:40
 msgid "Highest rated posts first"
 msgstr "El de més alta puntuació primer"
 
-#: ../inc/forum.inc:41
+#: ../inc/forum.inc:42
 msgid "Newest post first"
 msgstr "El més recent primer"
 
-#: ../inc/forum.inc:42
+#: ../inc/forum.inc:43
 msgid "Most views first"
 msgstr "Els més vistos primer"
 
-#: ../inc/forum.inc:43
+#: ../inc/forum.inc:44
 msgid "Most posts first"
 msgstr "Els de més missatges primer"
 
-#: ../inc/forum.inc:125
+#: ../inc/forum.inc:104
+msgid "Volunteer moderator"
+msgstr "Voluntari moderador"
+
+#: ../inc/forum.inc:105
+msgid "Project administrator"
+msgstr "Administrador del projecte"
+
+#: ../inc/forum.inc:106
+msgid "Project developer"
+msgstr "Responsable de projecte"
+
+#: ../inc/forum.inc:107
+msgid "Project tester"
+msgstr "Provador del projecte"
+
+#: ../inc/forum.inc:108
+msgid "Volunteer developer"
+msgstr "Desenvolupador voluntari"
+
+#: ../inc/forum.inc:109
+msgid "Volunteer tester"
+msgstr "Provador voluntari"
+
+#: ../inc/forum.inc:110
+msgid "Project scientist"
+msgstr "Científic del projecte"
+
+#: ../inc/forum.inc:111
+msgid "Help desk expert"
+msgstr "Plafó d'ajuda d'experts"
+
+#. Search
+#: ../inc/forum.inc:129
 msgid "Search for words in forum messages"
 msgstr "Cercar paraules en els fòrums de missatges"
 
-#: ../inc/forum.inc:125
+#: ../inc/forum.inc:129
 msgid "Search forums"
 msgstr "Cercar en els fòrums"
 
-#: ../inc/forum.inc:126
+#: ../inc/forum.inc:130
 msgid "Advanced search"
 msgstr "Recerca avançada"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
+#: ../user/pm.php:138
 msgid "Private messages"
 msgstr "Missatges privats"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: ../inc/forum.inc:155 ../user/forum_forum.php:74
+#: ../user/sample_index.php:128
 msgid "Questions and Answers"
 msgstr "Preguntes i respostes"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
+#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
+#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
+#: ../project.sample/project.inc:70
 msgid "Message boards"
 msgstr "Panells de missatges"
 
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: ../inc/forum.inc:191 ../inc/forum.inc:199
 msgid "%1 message board"
 msgstr "tauler de missatges %1"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: ../inc/forum.inc:249 ../inc/result.inc:717
 msgid "Previous"
 msgstr "Anterior"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: ../inc/forum.inc:287 ../inc/result.inc:726
 msgid "Next"
 msgstr "Següent"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
 msgid "Author"
 msgstr "Autor"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
+#: ../user/forum_edit.php:133 ../user/forum_post.php:120
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+#: ../user/pm.php:90 ../user/pm.php:149
 msgid "Message"
 msgstr "Missatge"
 
-#: ../inc/forum.inc:580
+#: ../inc/forum.inc:586
 msgid "Send message"
 msgstr "Enviar missatge"
 
-#: ../inc/forum.inc:580
+#: ../inc/forum.inc:586
 msgid "Send %1 a private message"
 msgstr "Enviar %1 un missatge privat"
 
-#: ../inc/forum.inc:581
+#: ../inc/forum.inc:587
 msgid "Joined: %1"
 msgstr "Unit: %1"
 
-#: ../inc/forum.inc:590
+#: ../inc/forum.inc:596
 msgid "Posts: %1"
 msgstr "Missatges: %1"
 
-#: ../inc/forum.inc:596
+#: ../inc/forum.inc:602
 msgid "Credit: %1"
 msgstr "Crèdit: %1"
 
-#: ../inc/forum.inc:597
+#: ../inc/forum.inc:603
 msgid "RAC: %1"
 msgstr "RAC: %1"
 
-#: ../inc/forum.inc:620
+#: ../inc/forum.inc:627
 msgid "You haven't read this message yet"
 msgstr "Encara no ha llegit aquest missatge"
 
-#: ../inc/forum.inc:620
+#: ../inc/forum.inc:627
 msgid "Unread"
 msgstr "No llegit"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
 msgid "Message %1"
 msgstr "Missatge %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
 msgid "hidden"
 msgstr "ocult"
 
-#: ../inc/forum.inc:625
+#: ../inc/forum.inc:632
 msgid "Posted: %1"
 msgstr "Publicat: %1"
 
-#: ../inc/forum.inc:628
+#: ../inc/forum.inc:635
 msgid " - in response to "
 msgstr " -en resposta a "
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: ../inc/forum.inc:638
 msgid "Edit"
 msgstr "Editar"
 
-#: ../inc/forum.inc:631
+#: ../inc/forum.inc:638
 msgid "Edit this message"
 msgstr "Edita aquest missatge"
 
-#: ../inc/forum.inc:637
+#: ../inc/forum.inc:644
 msgid "Last modified: %1"
 msgstr "Últim modificat: %1"
 
-#: ../inc/forum.inc:640
+#: ../inc/forum.inc:647
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Aquest missatge no es mostra perquè el remitent es troba a la seva llista "
-"'ignorar'.  Feu clic a %1aqui%2 per veure aquest missatge"
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Aquest missatge no es mostra perquè el remitent es troba a la seva llista 'ignorar'.  Feu clic a %1aqui%2 per veure aquest missatge"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
 msgid "Report this post as offensive"
 msgstr "Avisa d'aquest missatge com ofensiu"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
 msgid "Report as offensive"
 msgstr "Informa com ofensiu"
 
-#: ../inc/forum.inc:672
+#: ../inc/forum.inc:679
 msgid "Rating: %1"
 msgstr "Qualificació: %1"
 
-#: ../inc/forum.inc:672
+#: ../inc/forum.inc:679
 msgid "rate: "
 msgstr "qualifica: "
 
-# 83%
-#: ../inc/forum.inc:675
+#: ../inc/forum.inc:682
 msgid "Click if you like this message"
 msgstr "Fes clic aquí si t'agrada aquest missatge"
 
-#: ../inc/forum.inc:675
+#: ../inc/forum.inc:682
 msgid "Rate +"
 msgstr "Qualifica +"
 
-#: ../inc/forum.inc:677
+#: ../inc/forum.inc:684
 msgid "Click if you don't like this message"
 msgstr "Fes clic aquí si no t'agrada aquest missatge"
 
-#: ../inc/forum.inc:677
+#: ../inc/forum.inc:684
 msgid "Rate -"
 msgstr "Qualifica -"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
 msgid "Reply"
 msgstr "Contestar"
 
-#: ../inc/forum.inc:685
+#: ../inc/forum.inc:693
 msgid "Post a reply to this message"
 msgstr "Respon aquest missatge"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: ../inc/forum.inc:696
 msgid "Quote"
 msgstr "Remarca"
 
-#: ../inc/forum.inc:687
+#: ../inc/forum.inc:696
 msgid "Post a reply by quoting this message"
 msgstr "Respon remarcant aquest missatge"
 
-#: ../inc/forum.inc:708
+#: ../inc/forum.inc:717
 msgid "Hidden by a moderator"
 msgstr "Ocult per un moderador"
 
-#: ../inc/forum.inc:729
+#: ../inc/forum.inc:738
 msgid "Posted %1 by %2"
 msgstr "Missatges %1 de %2"
 
-#: ../inc/forum.inc:747
+#: ../inc/forum.inc:756
 msgid "You may not post or rate messages until %1"
 msgstr "No podeu enviar o valorar missatges fins %1"
 
-#: ../inc/forum.inc:758
+#: ../inc/forum.inc:767
 msgid ""
 "\n"
 "        <ul>\n"
@@ -379,370 +505,352 @@ msgid ""
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
 "        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Els missatges han de ser \"adequat per a nens\": no poden tenir\n"
-"            contingut que sigui obscè, d'odi inte-recial,\n"
-"            sexualment explícit o suggerent.\n"
-"        <li> No hi haurà anuncis comercials.\n"
-"        <li> No hi haurà enllaços a llocs web relacionats amb contingut "
-"sexual,\n"
-"            jocs d'atzar, o la intolerància dels altres.\n"
-"        <li> No hi haurà missatges destinats a molestar o antagonitzar a "
-"altres persones,\n"
-"            o per segrestar un fil.\n"
-"        <li> No hi haurà missatges que siguin deliberadament hostils o "
-"insultants.\n"
-"        <li> Cap comentari abusives en relació amb la raça, la religió,\n"
-"            nacionalitat, gènere, classe o sexualitat.\n"
-"        "
+msgstr "\n        <ul>\n        <li> Els missatges han de ser \"adequat per a nens\": no poden tenir\n            contingut que sigui obscè, d'odi inte-recial,\n            sexualment explícit o suggerent.\n        <li> No hi haurà anuncis comercials.\n        <li> No hi haurà enllaços a llocs web relacionats amb contingut sexual,\n            jocs d'atzar, o la intolerància dels altres.\n        <li> No hi haurà missatges destinats a molestar o antagonitzar a altres persones,\n          [...]
 
-#: ../inc/forum.inc:780
+#: ../inc/forum.inc:799
 msgid "Rules:"
 msgstr "Regles:"
 
-#: ../inc/forum.inc:781
+#: ../inc/forum.inc:800
 msgid "More info"
 msgstr "Més informació"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
 msgid "Unhide"
 msgstr "Fer visible"
 
-#: ../inc/forum.inc:1055
+#: ../inc/forum.inc:1098
 msgid "Unhide this post"
 msgstr "Fer visible aquest missatge"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
 msgid "Hide"
 msgstr "Ocultar"
 
-#: ../inc/forum.inc:1057
+#: ../inc/forum.inc:1100
 msgid "Hide this post"
 msgstr "Ocultar aquest missatge"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
 msgid "Move"
 msgstr "Moure"
 
-#: ../inc/forum.inc:1062
+#: ../inc/forum.inc:1105
 msgid "Move post to a different thread"
 msgstr "Moure el missatge a un altre fil"
 
-#: ../inc/forum.inc:1067
+#: ../inc/forum.inc:1110
 msgid "Banish author"
 msgstr "Expulsar l'autor"
 
-#: ../inc/forum.inc:1074
+#: ../inc/forum.inc:1117
 msgid "Vote to banish author"
 msgstr "Voti per expulsar l'autor"
 
-#: ../inc/forum.inc:1078
+#: ../inc/forum.inc:1121
 msgid "Vote not to banish author"
 msgstr "Voti per no expulsar l'autor"
 
-#: ../inc/forum.inc:1083
+#: ../inc/forum.inc:1126
 msgid "Start vote to banish author"
 msgstr "Iniciar votació per expulsar l'autor"
 
-#: ../inc/forum.inc:1116
+#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
+#: ../user/pm.php:112 ../user/pm.php:152
+msgid "Delete"
+msgstr "Esborrar"
+
+#: ../inc/forum.inc:1131
+msgid "Delete this post"
+msgstr "Esborrar aquesta entrada"
+
+#: ../inc/forum.inc:1169
 msgid "Only team members can post to the team message board"
-msgstr ""
-"Només els membres de l'equip poden publicar al tauler d'anuncis de l'equip"
+msgstr "Només els membres de l'equip poden publicar al tauler d'anuncis de l'equip"
 
-#: ../inc/forum.inc:1126
+#: ../inc/forum.inc:1179
 msgid ""
 "In order to create a new thread in %1 you must have a certain amount of "
 "credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Per poder crear un nou fil a %1 heu de tenir un mínim nombre de crèdits. "
-"Això es per prevenir i protegir d'un del sistema."
+msgstr "Per poder crear un nou fil a %1 heu de tenir un mínim nombre de crèdits. Això es per prevenir i protegir d'un del sistema."
 
-#: ../inc/forum.inc:1133
+#: ../inc/forum.inc:1186
 msgid ""
 "You cannot create any more threads right now. Please wait a while before "
 "trying again. This delay has been enforced to protect against abuse of the "
 "system."
-msgstr ""
-"No pot crear cap més fil en aquest moment. Si us plau esperi una estona "
-"abans de provar-ho de nou. Aquest espera es necessària per protegir d'un "
-"abús del sistema."
+msgstr "No pot crear cap més fil en aquest moment. Si us plau esperi una estona abans de provar-ho de nou. Aquest espera es necessària per protegir d'un abús del sistema."
 
-#: ../inc/forum.inc:1140
+#: ../inc/forum.inc:1193
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
-"Aquest fil està bloquejat. Només els moderadors del fòrum i els "
-"administradors poden publicar-hi."
+msgstr "Aquest fil està bloquejat. Només els moderadors del fòrum i els administradors poden publicar-hi."
 
-#: ../inc/forum.inc:1145
+#: ../inc/forum.inc:1198
 msgid "Can't post to a hidden thread."
 msgstr "No es pot publicar en un fil ocult."
 
-#: ../inc/forum.inc:1173
+#: ../inc/forum.inc:1232
 msgid "Thread"
 msgstr "Fil"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
+#: ../user/forum_index.php:99
 msgid "Posts"
 msgstr "Correu"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
 msgid "Views"
 msgstr "Opinions"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
+#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
 msgid "Last post"
 msgstr "Últim correu"
 
-#: ../inc/forum.inc:1235
+#: ../inc/forum.inc:1294
 msgid "New posts in the thread %1"
 msgstr "Nous missatges en el fil %1"
 
-#: ../inc/forum.inc:1240
+#: ../inc/forum.inc:1299
 msgid "New posts in subscribed thread"
 msgstr "Nous missatges en el fil subscrit"
 
-#: ../inc/forum.inc:1241
+#: ../inc/forum.inc:1300
 msgid "There are new posts in the thread '%1'"
 msgstr "Hi ha nous missatges en el fil '%1'"
 
-#: ../inc/forum.inc:1251
+#: ../inc/forum.inc:1310
 msgid "Mark all threads as read"
 msgstr "Marcar tots el fils com a llegits"
 
-#: ../inc/forum.inc:1252
+#: ../inc/forum.inc:1311
 msgid "Mark all threads in all message boards as read."
 msgstr "Marcar com a llegits tots els fils a tots els taulers de missatges."
 
-#: ../inc/host.inc:24
+#: ../inc/host.inc:25
 msgid "No host"
 msgstr "No hi ha servidor"
 
-#: ../inc/host.inc:26
+#: ../inc/host.inc:27
 msgid "Unavailable"
 msgstr "No disponible"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
 msgid "Home"
 msgstr "Inici"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
+#: ../user/server_status.php:142
 msgid "Work"
 msgstr "Treball"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
 msgid "School"
 msgstr "Escola"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mòbil"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
+#: ../user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "Actualitzar"
 
-#: ../inc/host.inc:85
+#: ../inc/host.inc:84
 msgid "Computer information"
 msgstr "Informació de l'ordinador"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: ../inc/host.inc:88 ../inc/host.inc:93
 msgid "IP address"
 msgstr "Adreça IP"
 
-#: ../inc/host.inc:89
+#: ../inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(el mateix els últims %1 cops)"
 
-#: ../inc/host.inc:91
+#: ../inc/host.inc:90
 msgid "External IP address"
 msgstr "Adreça IP externa"
 
-#: ../inc/host.inc:94
+#: ../inc/host.inc:93
 msgid "Show IP address"
 msgstr "Mostra l'adreça IP"
 
-#: ../inc/host.inc:96
+#: ../inc/host.inc:95
 msgid "Domain name"
 msgstr "Nom de domini"
 
-#: ../inc/host.inc:98
+#: ../inc/host.inc:97
 msgid "Product name"
 msgstr "Nom del producte"
 
-#: ../inc/host.inc:102
+#: ../inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "Temps Local Estàndard"
 
-#: ../inc/host.inc:102
+#: ../inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC %1 hores"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
 msgid "Owner"
 msgstr "Propietari"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: ../inc/host.inc:107 ../inc/host.inc:360
 msgid "Anonymous"
 msgstr "Anònim"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
 msgid "Created"
 msgstr "Creat"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
+#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
+#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
+#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
+#: ../user/profile_search_action.php:45
+#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
+#: ../user/top_users.php:59 ../user/user_search.php:125
 msgid "Total credit"
 msgstr "Crèdit total"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
+#: ../user/user_search.php:124
 msgid "Average credit"
 msgstr "Crèdit mitjà"
 
-#: ../inc/host.inc:116
+#: ../inc/host.inc:115
 msgid "Cross project credit"
 msgstr "Crèdit multi-projecte"
 
-#: ../inc/host.inc:118
+#: ../inc/host.inc:117
 msgid "CPU type"
 msgstr "Tipus de CPU"
 
-#: ../inc/host.inc:119
+#: ../inc/host.inc:118
 msgid "Number of processors"
 msgstr "Número de processadors"
 
-#: ../inc/host.inc:121
+#: ../inc/host.inc:120
 msgid "Coprocessors"
 msgstr "Coprocessadors"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: ../inc/host.inc:122 ../inc/host.inc:692
 msgid "Operating System"
 msgstr "Sistema Operatiu"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: ../inc/host.inc:125 ../inc/host.inc:235
 msgid "BOINC version"
 msgstr "Versió de BOINC"
 
-#: ../inc/host.inc:130
+#: ../inc/host.inc:129 ../inc/prefs.inc:237
 msgid "Memory"
 msgstr "Memòria"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: ../inc/host.inc:129 ../inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: ../inc/host.inc:133
 msgid "Cache"
 msgstr "Memòria cau"
 
-#: ../inc/host.inc:134
+#: ../inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: ../inc/host.inc:139
 msgid "Swap space"
 msgstr "Espai d'intercanvi"
 
-#: ../inc/host.inc:143
+#: ../inc/host.inc:142
 msgid "Total disk space"
 msgstr "Espai total en disc"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: ../inc/host.inc:142 ../inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: ../inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "Espai lliure al disc"
 
-#: ../inc/host.inc:150
+#: ../inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "Velocitat mesurada amb punt flotant"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: ../inc/host.inc:149 ../inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 milions ops/seg"
 
-#: ../inc/host.inc:153
+#: ../inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "Velocitat mesurada amb enters"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: ../inc/host.inc:156 ../inc/host.inc:158
 msgid "Average upload rate"
 msgstr "Velocitat mitja de càrrega"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: ../inc/host.inc:156 ../inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/sec"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
+#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
 #: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
 #: ../inc/result.inc:278 ../user/explain_state.php:56
 #: ../user/host_app_versions.php:30
 msgid "Unknown"
 msgstr "Desconegut"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: ../inc/host.inc:163 ../inc/host.inc:165
 msgid "Average download rate"
 msgstr "Velocitat mitja de descàrrega"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: ../inc/host.inc:168 ../user/host_app_versions.php:65
 msgid "Average turnaround time"
 msgstr "Temps de resposta mitjà"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../user/forum_search.php:50 ../user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 dies"
 
-#: ../inc/host.inc:170
+#: ../inc/host.inc:169
 msgid "Application details"
 msgstr "Característiques de l'aplicacion"
 
-#: ../inc/host.inc:171
+#: ../inc/host.inc:170
 msgid "Show"
 msgstr "Mostra"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
 msgid "Tasks"
 msgstr "Feines"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: ../inc/host.inc:184 ../inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "Nombre de vegades que el client s'ha posat en contacte amb el servidor"
 
-#: ../inc/host.inc:186
+#: ../inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "Últim vegada en contactar amb el servidor"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% de temps que BOINC s'està executant"
+#: ../inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Una fracció del temps que BOINC s'està executant"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Mentre s'executa BOINC, % de temps connexió a Internet"
+#: ../inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Mentre BOINC s'està executant, una fracció d'el temps s'utilitza en una connexió a Internet"
+
+#: ../inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Mentre BOINC s'està executant, una fracció de temps es dedica al càlcul"
 
 #: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Mentre s'executa BOINC, % de temps de treball permès"
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Mentre BOINC s'està executant, una fracció de temps es dedica al càlcul amb la GPU"
 
 #: ../inc/host.inc:193
 msgid "Average CPU efficiency"
@@ -752,7 +860,7 @@ msgstr "Mitjana d'eficiència de la CPU"
 msgid "Task duration correction factor"
 msgstr "Durada de la tasca del factor de correcció"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: ../inc/host.inc:198 ../inc/host.inc:679
 msgid "Location"
 msgstr "Ubicació"
 
@@ -768,7 +876,7 @@ msgstr "Combinar registres duplicats d'aquest equip"
 msgid "Merge"
 msgstr "Combinar"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: ../inc/host.inc:207 ../inc/host.inc:694
 msgid "Last contact"
 msgstr "Últim contacte"
 
@@ -776,30 +884,30 @@ msgstr "Últim contacte"
 msgid "Computer info"
 msgstr "Informació de l'ordinador"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
+#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
 #: ../user/top_users.php:48
 msgid "Rank"
 msgstr "Categoria"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: ../inc/host.inc:225 ../inc/host.inc:684
 msgid "Avg. credit"
 msgstr "Crèdit promig"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
+#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
+#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
+#: ../inc/team.inc:382 ../inc/user.inc:140
+#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
 #: ../user/top_users.php:58
 msgid "Recent average credit"
 msgstr "Crèdit mitjà més recent"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
+#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
 #: ../user/host_app_versions.php:25
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: ../inc/host.inc:237 ../inc/host.inc:690
 msgid "GPU"
 msgstr "GPU"
 
@@ -807,91 +915,83 @@ msgstr "GPU"
 msgid "Operating system"
 msgstr "Sistema operatiu"
 
-#: ../inc/host.inc:315
+#: ../inc/host.inc:320
 msgid "(%1 processors)"
 msgstr "(%1 processadors)"
 
-#: ../inc/host.inc:335
+#: ../inc/host.inc:340
 msgid "Details"
 msgstr "Detalls"
 
-#: ../inc/host.inc:340
+#: ../inc/host.inc:345
 msgid "Cross-project stats:"
 msgstr "Estadístiques multi-projecte:"
 
-#: ../inc/host.inc:515
+#: ../inc/host.inc:520
 msgid "Host %1 has overlapping lifetime:"
 msgstr "El host %1 supera el temps màxim:"
 
-#: ../inc/host.inc:522
+#: ../inc/host.inc:527
 msgid "Host %1 has an incompatible OS:"
 msgstr "El host %1 té un SO incompatible:"
 
-#: ../inc/host.inc:528
+#: ../inc/host.inc:533
 msgid "Host %1 has an incompatible CPU:"
 msgstr "El host %1 té una CPU incompatible:"
 
-#: ../inc/host.inc:595
+#: ../inc/host.inc:600
 msgid "same host"
 msgstr "mateix host"
 
-#: ../inc/host.inc:598
+#: ../inc/host.inc:603
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr "No es pot combinar el host %1 a %2 - són incompatibles"
 
-#: ../inc/host.inc:601
+#: ../inc/host.inc:606
 msgid "Merging host %1 into host %2"
 msgstr "Combinant el host %1 en el host %2"
 
-#: ../inc/host.inc:618
+#: ../inc/host.inc:623
 msgid "Couldn't update credit of new computer"
 msgstr "No es pot actualitzar el crèdit del nou ordinador"
 
-#: ../inc/host.inc:622
+#: ../inc/host.inc:627
 msgid "Couldn't update results"
 msgstr "No es poden actualitzar el resultats"
 
-#: ../inc/host.inc:627
+#: ../inc/host.inc:632
 msgid "Couldn't retire old computer"
 msgstr "No es pot treure l'ordinador vell"
 
-#: ../inc/host.inc:629
+#: ../inc/host.inc:634
 msgid "Retired old computer %1"
 msgstr "Tret l'ordinador vell %1"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "Show:"
 msgstr "Mostra:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "All computers"
 msgstr "Tots els ordinadors"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "Only computers active in past 30 days"
 msgstr "Només els ordinadors actius els darrers 30 dies"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: ../inc/host.inc:671 ../inc/result.inc:642
 msgid "Computer ID"
 msgstr "ID de l'ordinador"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nom"
-
-#: ../inc/host.inc:682
+#: ../inc/host.inc:687
 msgid "BOINC<br>version"
 msgstr "versió<br>BOINC"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: ../inc/host.inc:750 ../user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "Combinar ordinadors per el nom"
 
-#: ../inc/language_names.inc:61
+#: ../inc/language_names.inc:62
 msgid "Browser default"
 msgstr "Navegador defecte"
 
@@ -904,29 +1004,29 @@ msgstr "Comentari"
 msgid "News is available as an %sRSS feed%s"
 msgstr "Les notícies estan disponibles en format %sRSS%s"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
 msgid "Inbox"
 msgstr "Bústia d'entrada"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: ../inc/pm.inc:26 ../inc/pm.inc:180
 msgid "Write"
 msgstr "Escriure"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
+#: ../inc/pm.inc:33 ../inc/user.inc:458
 msgid "Send private message"
 msgstr "Enviar un missatge privat"
 
 #: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
 #: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
 #: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: ../user/forum_post.php:65 ../user/forum_post.php:91
+#: ../user/forum_post.php:93 ../user/forum_post.php:134
+#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
+#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
 msgid "Preview"
 msgstr "Vista prèvia"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: ../inc/pm.inc:48 ../user/pm.php:136
 msgid "no such message"
 msgstr "no existeix aquest missatge"
 
@@ -938,7 +1038,7 @@ msgstr "Per"
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "Identificadors ID o noms d'usuaris únics, separats per comes"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
+#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
 msgid "Subject"
 msgstr "Assumpte"
 
@@ -946,416 +1046,505 @@ msgstr "Assumpte"
 msgid "Send message"
 msgstr "Enviar missatge"
 
-#: ../inc/pm.inc:121
+#: ../inc/pm.inc:122
 msgid "sent you a private message; subject:"
 msgstr "ha enviat un missatge privat, assumpte:"
 
-#: ../inc/pm.inc:127
+#: ../inc/pm.inc:129
 msgid "Private message%1 from %2, subject:"
 msgstr "Missatge privat%1 de %2, assumpte:"
 
-#: ../inc/pm.inc:135
+#: ../inc/pm.inc:137
 msgid "Couldn't create message"
 msgstr "No s'ha pogut crear el missatge"
 
-#: ../inc/pm.inc:166
+#: ../inc/pm.inc:168
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
-msgstr ""
-"Vostè no te permès lliurar missatges tan sovint. Si us plau esperi una "
-"estona abans de lliurar nous missatges."
+msgstr "Vostè no te permès lliurar missatges tan sovint. Si us plau esperi una estona abans de lliurar nous missatges."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: ../inc/pm.inc:178 ../user/forum_forum.php:190
 msgid "unread"
 msgstr "no llegit"
 
-#: ../inc/pm.inc:186
+#: ../inc/pm.inc:188
 msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-"Per obtenir notificació per correu electrònic,%1editi les preferències de la "
-"comunitat%2"
+msgstr "Per obtenir notificació per correu electrònic,%1editi les preferències de la comunitat%2"
 
-#: ../inc/pm.inc:198
+#: ../inc/pm.inc:204
 msgid "Private message"
 msgstr "Missatge privat"
 
-#: ../inc/prefs.inc:77
+#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
+msgid "Usage limits"
+msgstr "Límits d'utilització"
+
+#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
+msgid "Use at most"
+msgstr "Utilitzar com a màxim"
+
+#: ../inc/prefs.inc:49
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Suspendre el treball mentre l'ordinador utilitza la bateria? %1 Únicament "
-"per als ordinadors portàtils %2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Conserva algunes CPU lliures per a altres aplicacions. Exemple: 75% significa l'ús de 6 nuclis en una CPU de 8 nuclis."
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Suspendre el treball mentre l'ordinador està en ús?"
+#: ../inc/prefs.inc:52
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% de les CPU"
 
-#: ../inc/prefs.inc:91
+#: ../inc/prefs.inc:57
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Suspendre el treball de la GPU mentre l'ordinador està en ús? %1 Imposat per "
-"la versió 6.6.21+ %2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Suspendre/reprendre el càlcul cada pocs segons per reduir la temperatura de la CPU i l'ús d'energia. Exemple: 75% vol dir calcula durant 3 segons, espera durant 1 segon, i repeteix."
+
+#: ../inc/prefs.inc:60
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% de temps de CPU"
+
+#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
+msgid "When to suspend"
+msgstr "Quan suspendre"
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
+#: ../inc/prefs.inc:64
+msgid "Suspend when computer is on battery"
+msgstr "Suspendre quan l'equip està connectat a la bateria"
+
+#: ../inc/prefs.inc:65
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Marca aquesta opció per suspendre la computació en els portàtils funcionant amb la bateria."
+
+#: ../inc/prefs.inc:70
+msgid "Suspend when computer is in use"
+msgstr "Suspendre quan l'ordinador estigui en us"
+
+#: ../inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Marca aquesta opció per suspendre la computació i la transferència d'arxius mentre estàs utilitzant l'ordinador."
+
+#: ../inc/prefs.inc:76
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Suspèn la computació amb la GPU mentre l'ordinador està en ús"
+
+#: ../inc/prefs.inc:77
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Marca aquesta opció per suspendre la computació amb la GPU mentre estàs utilitzant l'ordinador."
+
+#: ../inc/prefs.inc:82
+msgid "'In use' means mouse/keyboard input in last"
 msgstr "'En ús' significa activitat del ratolí/teclat"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
+#: ../inc/prefs.inc:83
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Això determina quan l'ordinador es considera \"en ús\"."
+
+#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
 msgid "minutes"
 msgstr "minuts"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Suspendre el treball si no hi ha activitat del ratolí/teclat en l'últim %1 "
-"Necessari per entrar en mode de baix consum en alguns ordinadors %2"
+#: ../inc/prefs.inc:89
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Suspendre quan no hi ha activitat del ratolí/teclat"
 
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Suspendre el treball si l'ús de CPU per programari no-BOINC és superior a %1 "
-"0 significa sense restricció<br>Imposat per la versió 6.10.30+ %2"
+#: ../inc/prefs.inc:90
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Això permet que alguns ordinadors accedeixin a l'estat de baix consum quan no estiguin en ús."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Només treballar entre les hores de %1 Sense restricció si es igual a %2"
+#: ../inc/prefs.inc:95
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Suspendre quan l'ús de la CPU per processos que no siguin de BOINC està per sobre de"
 
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Deixar les tasques en la memòria mentre està suspès? %1 Les tasques suspeses "
-"consumeixen espai d'intercanvi en cas 'afirmatiu' %2"
+#: ../inc/prefs.inc:96
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Suspendre la computació quan l'equip està ocupat executant altres programes."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Canviar de tasca cada %1 Recomanat: 60 minuts %2"
+#: ../inc/prefs.inc:101
+msgid "Compute only between"
+msgstr "Calcular només entre"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Amb multiprocessadors, utilitzar com a màxim"
+#: ../inc/prefs.inc:102
+msgid "Compute only during a particular period each day."
+msgstr "Calcular només durant un període determinat cada dia."
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "processadors"
+#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
+#: ../user/forum_banishment_vote.php:70
+#: ../user/forum_banishment_vote_action.php:65
+#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Un altre"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Amb multiprocessadors, utilitzar com a màxim %1 Imposat per la versió 6.1+ %"
-"2"
+#: ../inc/prefs.inc:107
+msgid "Store at least"
+msgstr "Emmagatzemar almenys"
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% dels processadors"
+#: ../inc/prefs.inc:108
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Emmagatzemar almenys prou feines per mantenir l'equip ocupat durant tant de temps."
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Utilitzar com a màxim %1 Pot ser utilitzat per reduir la escalfor de la CPU "
-"%2"
+#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
+msgid "days of work"
+msgstr "dies de treball"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% de temps de CPU"
+#: ../inc/prefs.inc:113
+msgid "Store up to an additional"
+msgstr "Emmagatzema fins a un màxim de"
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disc: utilitzar com a màxim"
+#: ../inc/prefs.inc:114
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Desar tasques addicionals per sobre del nivell mínim. Determina la quantitat de treball es demana al contactar amb un projecte."
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: ../inc/prefs.inc:119
+msgid "Switch between tasks about every"
+msgstr "Canviar entre tasques sobre cada"
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disc: deixar lliure al menys %1 Els valors inferiors a %2 s'ignoren %3"
+#: ../inc/prefs.inc:120
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Si executeu diversos projectes, BOINC pot canviar entre ells sovint."
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% del total"
+#: ../inc/prefs.inc:125
+msgid "Request tasks to checkpoint at most every"
+msgstr "Sol·licitar tasques al control almenys cada"
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Guardar els punts de control de les tasques a disc almenys cada"
+#: ../inc/prefs.inc:126
+msgid ""
+"This controls how often tasks save their state to disk, so that they can be "
+"restarted later."
+msgstr "Això controla la freqüència en la que les tasques guarden el seu estat a disc, de manera que es poden reiniciar més tard."
 
-#: ../inc/prefs.inc:196
+#: ../inc/prefs.inc:128
 msgid "seconds"
 msgstr "segons"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Espai d'intercanvi: utilitzar com a màxim"
+#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
+msgid "Use no more than"
+msgstr "No utilitzar més de"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Memòria: quan l'ordinador està en ús, utilitzar com a màxim"
+#: ../inc/prefs.inc:137
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Limitar l'espai total en disc utilitzat per BOINC."
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Memòria: quan l'ordinador no està en ús, utilitzar com a màxim"
+#: ../inc/prefs.inc:139
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-"Mantenir suficients tasques per mantenir-se ocupat durant almenys%1(màxim 10 "
-"dies).%2"
+#: ../inc/prefs.inc:142
+msgid "Leave at least"
+msgstr "Deixar al menys"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dies"
+#: ../inc/prefs.inc:143
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Limitar l'ús d'espai en disc per deixar-hi el màxim espai lliure on BOINC emmagatzema dades."
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... i fins a un màxim de"
+#: ../inc/prefs.inc:145
+msgid "GB free"
+msgstr "Gb lliures"
 
-#: ../inc/prefs.inc:232
+#: ../inc/prefs.inc:149
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Confirmar abans de connectar-se a Internet? %1 Tan sols si teniu un mòdem, "
-"ISDN o una connexió VPN %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "limitar el percentatge d'espai en disc utilitzat per BOINC en el volum en el qual emmagatzema dades."
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Desconnectar quan es finalitza? %1 Tan sols si teniu un mòdem, ISDN o una "
-"connexió VPN %2"
+#: ../inc/prefs.inc:152
+#, no-php-format
+msgid "% of total"
+msgstr "% del total"
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Taxa màxima de descàrrega:"
+#: ../inc/prefs.inc:158
+msgid "When computer is in use, use at most"
+msgstr "Quan l'ordinador està en ús, utilitzar com a màxim"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbytes/seg"
+#: ../inc/prefs.inc:159
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Limiti la memòria utilitzada per BOINC quan s'està utilitzant l'ordinador."
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Taxa màxima de càrrega:"
+#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Utilitzar la xarxa només entre les hores de"
+#: ../inc/prefs.inc:165
+msgid "When computer is not in use, use at most"
+msgstr "Memòria: quan l'ordinador no està en ús, utilitzar com a màxim"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Tranferir com a màxim %1 Imposat per la versió 6.10.46+ %2"
+#: ../inc/prefs.inc:166
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Limiti la memòria utilitzada per BOINC quan no s'estigui utilitzant l'equip."
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mbytes lliures"
+#: ../inc/prefs.inc:172
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Deixar les aplicacions que no son de GPU en memòria mentre estan en suspens"
 
-#: ../inc/prefs.inc:274
+#: ../inc/prefs.inc:173
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Evitar la verificació de l'arxiu imatge? %1 Seleccioneu aquesta opció NOMÉS "
-"si el vostre proveïdor d'Internet modifica els arxius imatge (per exemple "
-"UMTS ho fa). %2 Ometre la comprovació redueix la seguretat de BOINC. %3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Si es marca, les tasques suspeses romanen en la memòria, i es poden reprendre sense pèrdua de feina. Si no es marca, les tasques suspeses s'eliminen de la memòria, i es reprenen des del seu últim punt de control."
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Compartició de recursos %1 Determina la proporció dels recursos de "
-"l'ordinador assignats a aquest projecte. Exemple: si vostè participa a dos "
-"projectes BOINC, amb quotes de recursos de 100 i 200, el primer rebrà 1/3 "
-"dels seus recursos i el segon obtindrà 2/3. %2"
+#: ../inc/prefs.inc:178
+msgid "Page/swap file: use at most"
+msgstr "Espai d'intercanvi: utilitzar com a màxim"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accelerar les tasques de la GPU dedicant una CPU a cada un?"
+#: ../inc/prefs.inc:179
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Limitar l'espai de intercanvi (fitxer d'intercanvi) utilitzat per BOINC."
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la CPU %1 Imposat per la versió 6.10+ %2"
+#: ../inc/prefs.inc:189
+msgid "Limit download rate to"
+msgstr "Limita la taxa de baixada a"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la GPU ATI %1 Imposat per la versió 6.10+ %2"
+#: ../inc/prefs.inc:190
+msgid "Limit the download rate of file transfers."
+msgstr "Limitar la taxa de baixada en la transferència de fitxers."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la GPU NVIDIA %1 Imposat per la versió 6.10+ %2"
+#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
+msgid "KB/second"
+msgstr "Kb/segon"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Usar la GPU Intel %1 Imposat per la versió 7.2+ %2"
+#: ../inc/prefs.inc:195
+msgid "Limit upload rate to"
+msgstr "Taxa límit de pujada a"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Executar les aplicacions de prova? %1 Això ens ajuda a desenvolupar "
-"aplicacions, però pot causar errors en els treballs en el seu ordinador %2"
+#: ../inc/prefs.inc:196
+msgid "Limit the upload rate of file transfers."
+msgstr "Limitar la taxa de pujada en la transferència de fitxers."
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Missatges de correu electrònic seràn enviats des de %1; assegureu-vos que el "
-"seu filtre anti-spam accepta aquesta direcció."
+#: ../inc/prefs.inc:201
+msgid "Limit usage to"
+msgstr "Limita l'us fins"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Es OK per %1 i el seu equip (si n'hi ha) enviar-li per correu?"
+#: ../inc/prefs.inc:202
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Exemple: BOINC ha de transferir com a molt 2000 MB de dades cada 30 dies."
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Pot %1 mostrar els seus equips en el seu lloc web?"
+#: ../inc/prefs.inc:205
+msgid "MB every"
+msgstr "MB cada"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Ús de disc i memòria"
+#: ../inc/prefs.inc:206 ../inc/util.inc:303
+msgid "days"
+msgstr "dies"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Ús del processador"
+#: ../inc/prefs.inc:210
+msgid "Transfer files only between"
+msgstr "Transferir fitxers només entre"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Ús de la xarxa"
+#: ../inc/prefs.inc:211
+msgid "Transfer files only during a particular period each day."
+msgstr "Transferir fitxers només durant un període de temps cada dia."
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Aquestes preferències s'apliquen a tots els projectes BOINC en què vostè "
-"participa."
+#: ../inc/prefs.inc:216
+msgid "Skip data verification for image files"
+msgstr "Ometre la verificació de la data del fitxers imatge"
 
-#: ../inc/prefs.inc:395
+#: ../inc/prefs.inc:217
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1No es poden actualitzar les preferències.%2 Els valors marcats en vermell "
-"a continuació son fora de rang o no numèrics."
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Marcar només si el teu proveïdor d'Internet modifica els fitxer imatge. Ometre la verificació redueix la seguretat de BOINC."
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "lloc erroni: %1"
+#: ../inc/prefs.inc:222
+msgid "Confirm before connecting to Internet"
+msgstr "Confirmar abans de connectar-se a Internet"
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "subconjunt erroni: %1"
+#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Útil només si disposes d'una connexió per mòdem, ISDN o VPN."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "si"
+#: ../inc/prefs.inc:228
+msgid "Disconnect when done"
+msgstr "Desconnectar en finalitzar"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "no"
+#: ../inc/prefs.inc:235 ../user/explain_state.php:94
+msgid "Computing"
+msgstr "Computant"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "sense límit"
+#: ../inc/prefs.inc:236
+msgid "Disk"
+msgstr "Disc"
 
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Afegir"
+#: ../inc/prefs.inc:238
+msgid "Network"
+msgstr "Xarxa"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Eliminar"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: ../inc/prefs.inc:241
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Aquestes preferències s'apliquen a tots els projectes BOINC en què vostè participa."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Computant"
+#: ../inc/prefs.inc:244
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1No es poden actualitzar les preferències.%2 Els valors marcats en vermell a continuació son fora de rang o no numèrics."
 
-#: ../inc/prefs.inc:823
+#: ../inc/prefs.inc:472
+msgid "computing"
+msgstr "computació"
+
+#: ../inc/prefs.inc:483
 msgid "Separate preferences for %1"
 msgstr "Separa les preferències per %1"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
 msgid "Edit preferences"
 msgstr "Editar les preferències"
 
-#: ../inc/prefs.inc:839
+#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
+#: ../user/team_admins.php:36
+msgid "Remove"
+msgstr "Eliminar"
+
+#: ../inc/prefs.inc:499
 msgid "Add separate preferences for %1"
 msgstr "Afegir preferències independents per %1"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Canvar vista)"
+#: ../inc/prefs.inc:506
+msgid "These settings apply to all computers using this account except"
+msgstr "Aquesta configuració s'aplica a tots els ordinadors que utilitzen aquest compte excepte"
+
+#: ../inc/prefs.inc:508
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "ordinadors en els que has configurat preferències locals utilitzant l'Administrador BOINC"
+
+#: ../inc/prefs.inc:510
+msgid "Android devices"
+msgstr "Dispositius Android"
+
+#: ../inc/prefs.inc:513
+msgid "(Switch view)"
+msgstr "(Canviar vista)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
 msgid "Combined preferences"
 msgstr "Preferències combinades"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Configuració específica del projecte"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
 msgid "Primary (default) preferences"
 msgstr "Preferències principals (per defecte)"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Edita les preferències de %1"
+#: ../inc/prefs.inc:537
+msgid "Preferences last modified:"
+msgstr "Preferències modificades per última vegada:"
+
+#: ../inc/prefs.inc:553
+msgid "Add preferences"
+msgstr "Afegir preferències"
 
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Això s'aplica a tots els projectes BOINC en els que participes."
+#: ../inc/prefs.inc:557
+msgid "Update preferences"
+msgstr "Actualitzar les preferències"
+
+#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "yes"
+msgstr "si"
 
-#: ../inc/prefs.inc:887
+#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "no"
+msgstr "no"
+
+#. TODO: make this a subclass of PREF
+#: ../inc/prefs.inc:638
+msgid "Default computer location"
+msgstr "Ubicació defecte de l'equip"
+
+#: ../inc/prefs.inc:639
 msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"En els ordinador que participen en múltiples projectes, s'utilitzaran les "
-"preferències modificades més recentment."
+"New computers will use this location for computing and project preferences."
+msgstr "Els nous ordinadors utilitzaran aquesta ubicació per a les preferències de computació i dels projectes."
+
+#: ../inc/prefs_project.inc:52
+msgid "Resource share"
+msgstr "Compartició de recursos"
+
+#: ../inc/prefs_project.inc:53
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina la proporció dels recursos de l'ordinador assignats a aquest projecte. Per exemple: si participes a dos projectes BOINC, amb quotes de recursos de 100 i 200, el primer rebrà 1/3 dels seus recursos i el segon n'obtindrà 2/3."
+
+#: ../inc/prefs_project.inc:61
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Accelerar les tasques de la GPU dedicant una CPU a cada un?"
+
+#: ../inc/prefs_project.inc:70
+msgid "Use CPU"
+msgstr "Utilitza CPU"
+
+#: ../inc/prefs_project.inc:79
+msgid "Use ATI GPU"
+msgstr "Utilitza ATI GPU"
+
+#: ../inc/prefs_project.inc:88
+msgid "Use NVIDIA GPU"
+msgstr "Utilitza NVIDIA GPU"
+
+#: ../inc/prefs_project.inc:97
+msgid "Use Intel GPU"
+msgstr "Utilitza Intel GPU"
+
+#: ../inc/prefs_project.inc:107
+msgid "Run test applications?"
+msgstr "Executar el test d'aplicacions?"
+
+#: ../inc/prefs_project.inc:108
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Això ens ajuda a desenvolupar aplicacions, però pot provocar que les tasques fallin en el teu ordinador"
+
+#: ../inc/prefs_project.inc:115
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Missatges de correu electrònic seràn enviats des de %1; assegureu-vos que el seu filtre anti-spam accepta aquesta direcció."
+
+#: ../inc/prefs_project.inc:123
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Es OK per %1 i el seu equip (si n'hi ha) enviar-li per correu?"
 
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Aquestes preferències no s'apliquen a dispositius Android."
+#: ../inc/prefs_project.inc:130
+msgid "Should %1 show your computers on its web site?"
+msgstr "Pot %1 mostrar els seus equips en el seu lloc web?"
 
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Preferències modificades per última vegada:"
+#: ../inc/prefs_project.inc:270
+msgid "(Switch View)"
+msgstr "(Canvar vista)"
 
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Afegir preferències"
+#: ../inc/prefs_project.inc:276
+msgid "Project specific settings"
+msgstr "Configuració específica del projecte"
 
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Actualitzar les preferències"
+#: ../inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "lloc erroni: %1"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Ubicació defecte de l'equip"
+#: ../inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "subconjunt erroni: %1"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
 msgid "and"
 msgstr "i"
 
@@ -1363,19 +1552,15 @@ msgstr "i"
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr ""
-"El seu perfil serà visible per als altres, tan aviat com sigui aprovat pel "
-"projecte. Això pot tardar alguns dies."
+msgstr "El seu perfil serà visible per als altres, tan aviat com sigui aprovat pel projecte. Això pot tardar alguns dies."
 
 #: ../inc/profile.inc:92
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr ""
-"El seu perfil ha estat marcat com a inacceptable. No és visible als altres. "
-"Si us plau, canviï'l."
+msgstr "El seu perfil ha estat marcat com a inacceptable. No és visible als altres. Si us plau, canviï'l."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
 msgid "Database error"
 msgstr "Error de base de dades"
 
@@ -1383,10 +1568,7 @@ msgstr "Error de base de dades"
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Per evitar el correu brossa, els perfils d'usuaris amb un crèdit mitjà de "
-"menys de %1 només es mostren als usuaris registrats. Demanem disculpes per "
-"aquest inconvenient."
+msgstr "Per evitar el correu brossa, els perfils d'usuaris amb un crèdit mitjà de menys de %1 només es mostren als usuaris registrats. Demanem disculpes per aquest inconvenient."
 
 #: ../inc/profile.inc:197
 msgid "User is banished"
@@ -1396,7 +1578,7 @@ msgstr "Usuari expulsat"
 msgid "No profile exists for that user ID."
 msgstr "No hi ha cap perfil per aquest ID d'usuari."
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: ../inc/profile.inc:219 ../user/create_profile.php:317
 msgid "Edit your profile"
 msgstr "Editi el seu perfil"
 
@@ -1444,11 +1626,12 @@ msgstr "No en la DB"
 msgid "pending"
 msgstr "pendent"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: ../inc/result.inc:114 ../user/forum_search.php:62
 msgid "All"
 msgstr "Tot"
 
 #: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: ../user/server_status.php:167
 msgid "In progress"
 msgstr "En progrés"
 
@@ -1477,6 +1660,7 @@ msgid "Inactive"
 msgstr "Inactiu"
 
 #: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: ../user/server_status.php:167
 msgid "Unsent"
 msgstr "No enviats"
 
@@ -1641,127 +1825,135 @@ msgid "WU cancelled"
 msgstr "WU cancel·lada"
 
 #: ../inc/result.inc:322
+msgid "Canonical result is missing"
+msgstr "Falta el resultat canònic"
+
+#: ../inc/result.inc:326
 msgid "Unrecognized Error: %1"
 msgstr "Error no reconegut: %1"
 
-#: ../inc/result.inc:349
+#: ../inc/result.inc:353
 msgid "Task name"
 msgstr "Nom de la tasca"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
+#: ../inc/result.inc:364
 msgid "click for details"
 msgstr "feu clic per més detalls"
 
-#: ../inc/result.inc:349
+#: ../inc/result.inc:353
 msgid "Show IDs"
 msgstr "Mostra ID's"
 
-#: ../inc/result.inc:354
+#: ../inc/result.inc:358
 msgid "Show names"
 msgstr "Mostra els noms"
 
-#: ../inc/result.inc:357
+#: ../inc/result.inc:361 ../user/result.php:36
 msgid "Task"
 msgstr "Feina"
 
-#: ../inc/result.inc:360
+#: ../inc/result.inc:364
 msgid "Work unit"
 msgstr "Unitat de treball"
 
-#: ../inc/result.inc:369
+#: ../inc/result.inc:373
 msgid "Computer"
 msgstr "Ordinador"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: ../inc/result.inc:376 ../inc/result.inc:635
 msgid "Sent"
 msgstr "Lliurat"
 
-#: ../inc/result.inc:373
+#: ../inc/result.inc:377
 msgid "Time reported<br />or deadline"
 msgstr "Temps informat<br />o termini"
 
-#: ../inc/result.inc:374
+#: ../inc/result.inc:378
 msgid "explain"
 msgstr "explicar"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: ../inc/result.inc:380 ../user/server_status.php:113
 msgid "Status"
 msgstr "Estatus"
 
-#: ../inc/result.inc:377
+#: ../inc/result.inc:381
 msgid "Run time<br />(sec)"
 msgstr "Temps d'execució<br />(seg)"
 
-#: ../inc/result.inc:378
+#: ../inc/result.inc:382
 msgid "CPU time<br />(sec)"
 msgstr "Temps de CPU<br />(seg)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: ../inc/result.inc:383 ../inc/result.inc:646
 msgid "Credit"
 msgstr "Crèdit"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
 msgid "Application"
 msgstr "Aplicació"
 
-#: ../inc/result.inc:629
+#: ../inc/result.inc:633
 msgid "Workunit"
 msgstr "Workunit"
 
-#: ../inc/result.inc:632
+#: ../inc/result.inc:636
+msgid "Report deadline"
+msgstr "Informe termini"
+
+#: ../inc/result.inc:637
 msgid "Received"
 msgstr "Rebut"
 
-#: ../inc/result.inc:633
+#: ../inc/result.inc:638
 msgid "Server state"
 msgstr "Estat del servidor"
 
-#: ../inc/result.inc:634
+#: ../inc/result.inc:639
 msgid "Outcome"
 msgstr "Final"
 
-#: ../inc/result.inc:635
+#: ../inc/result.inc:640
 msgid "Client state"
 msgstr "Estat del client"
 
-#: ../inc/result.inc:636
+#: ../inc/result.inc:641
 msgid "Exit status"
 msgstr "L'estat de sortida"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Informe termini"
-
-#: ../inc/result.inc:639
+#: ../inc/result.inc:643
 msgid "Run time"
 msgstr "Temps d'execució"
 
-#: ../inc/result.inc:640
+#: ../inc/result.inc:644
 msgid "CPU time"
 msgstr "Temps de CPU"
 
-#: ../inc/result.inc:641
+#: ../inc/result.inc:645
 msgid "Validate state"
 msgstr "Validar l'estat"
 
-#: ../inc/result.inc:643
+#: ../inc/result.inc:647
+msgid "Device peak FLOPS"
+msgstr "Pic de FLOPS del dispositiu"
+
+#: ../inc/result.inc:648
 msgid "Application version"
 msgstr "Versió de l'aplicació"
 
-#: ../inc/result.inc:656
+#: ../inc/result.inc:673
 msgid "Output files"
 msgstr "Arxius de sortida"
 
-#: ../inc/result.inc:659
+#: ../inc/result.inc:676
 msgid "Stderr output"
 msgstr "Sortida stderr"
 
-#: ../inc/result.inc:706
+#: ../inc/result.inc:728
 msgid "State"
 msgstr "Estat"
 
-#: ../inc/result.inc:747
+#: ../inc/result.inc:769
 msgid "Task name:"
 msgstr "Nom de la tasca:"
 
@@ -1777,17 +1969,7 @@ msgstr "Paraules clau"
 msgid "Find teams with these words in their names or descriptions"
 msgstr "Trobar equips amb aquestes paraules en els seus noms o descripcions"
 
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "País"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: ../inc/team.inc:49 ../inc/team.inc:473
 msgid "Type of team"
 msgstr "Tipus d'equip"
 
@@ -1795,7 +1977,7 @@ msgstr "Tipus d'equip"
 msgid "Show only active teams"
 msgstr "Mostrar només equips actius"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
 msgid "Search"
 msgstr "Cerca"
 
@@ -1815,8 +1997,8 @@ msgstr "Sol·licitat per vostè"
 msgid "founder response deadline is %1"
 msgstr "el temps de resposta del fundador es %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
+#: ../inc/user.inc:449
 msgid "None"
 msgstr "Cap"
 
@@ -1828,503 +2010,483 @@ msgstr "Iniciï la petició"
 msgid "Deferred"
 msgstr "Posposat"
 
-#: ../inc/team.inc:87
+#: ../inc/team.inc:91
 msgid "Team info"
 msgstr "Informació de l'equip"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
 msgid "Description"
 msgstr "Descripció"
 
-#: ../inc/team.inc:97
+#: ../inc/team.inc:106
 msgid "Web site"
 msgstr "Pàgina web"
 
-#: ../inc/team.inc:120
+#: ../inc/team.inc:132
 msgid "Cross-project stats"
 msgstr "Estadístiques multi-projecte"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
 msgid "Type"
 msgstr "Tipus"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: ../inc/team.inc:139 ../user/team_manage.php:65
 msgid "Message board"
 msgstr "Panell de missatges"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
 msgid "Threads"
 msgstr "Fils"
 
-#: ../inc/team.inc:136
+#: ../inc/team.inc:148
 msgid "Join this team"
 msgstr "Ajuntar-se a aquest equip"
 
-#: ../inc/team.inc:137
+#: ../inc/team.inc:149
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"Nota: si activa 'PERMETRE email' a les preferències del projecte, en "
-"ajuntant-se a un equip permet als seus fundadors accedir a la vostra adreça "
-"de correu"
+msgstr "Nota: si activa 'PERMETRE email' a les preferències del projecte, en ajuntant-se a un equip permet als seus fundadors accedir a la vostra adreça de correu"
 
-#: ../inc/team.inc:140
+#: ../inc/team.inc:152
 msgid "Not accepting new members"
 msgstr "No s'accepten nous membres"
 
-#: ../inc/team.inc:147
+#: ../inc/team.inc:159
 msgid "Foundership change requested"
 msgstr "Canvi sol·licitat per el fundador"
 
-#: ../inc/team.inc:148
+#: ../inc/team.inc:160
 msgid "Respond by %1"
 msgstr "Resposta per %1"
 
-#: ../inc/team.inc:152
+#: ../inc/team.inc:164
 msgid "Team foundership change"
 msgstr "Canvi de l'equip fundador"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: ../inc/team.inc:168 ../inc/team.inc:373
 msgid "Members"
 msgstr "Membres"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: ../inc/team.inc:169 ../inc/team.inc:268
 msgid "Founder"
 msgstr "Fundador"
 
-#: ../inc/team.inc:169
+#: ../inc/team.inc:183
 msgid "Admins"
 msgstr "Administradors"
 
-#: ../inc/team.inc:184
+#: ../inc/team.inc:198
 msgid "New members in last day"
 msgstr "Nous membres en el darrer dia"
 
-#: ../inc/team.inc:185
+#: ../inc/team.inc:199
 msgid "Total members"
 msgstr "Total de membres"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
 msgid "view"
 msgstr "mirar"
 
-#: ../inc/team.inc:186
+#: ../inc/team.inc:200
 msgid "Active members"
 msgstr "Membres actius"
 
-#: ../inc/team.inc:187
+#: ../inc/team.inc:201
 msgid "Members with credit"
 msgstr "Membres amb crèdits"
 
-#: ../inc/team.inc:256
+#: ../inc/team.inc:270
 msgid "Admin"
 msgstr "Administrador"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
+#: ../user/top_hosts.php:93 ../user/top_teams.php:123
+#: ../user/top_users.php:128
 msgid "Previous %1"
 msgstr "Anteriors %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
+#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
+#: ../user/top_teams.php:128 ../user/top_users.php:133
 msgid "Next %1"
 msgstr "Següent %1"
 
-#: ../inc/team.inc:289
+#: ../inc/team.inc:303
 msgid "No such team."
 msgstr "Equip inexistent."
 
-#: ../inc/team.inc:302
+#: ../inc/team.inc:316
 msgid "This operation requires foundership."
 msgstr "Aquesta operació requereix ser fundador."
 
-#: ../inc/team.inc:326
+#: ../inc/team.inc:340
 msgid "This operation requires team admin privileges"
 msgstr "Aquesta operació requereix privilegis d'administrador d'equip"
 
-#: ../inc/team.inc:422
+#: ../inc/team.inc:442
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"ADVERTÈNCIA: Aquest és un equip de BOINC general. Si vostè fa canvis aquí, "
-"aviat seran sobreescrits. Modificar %1l'equip BOINC general%2."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "ADVERTÈNCIA: Aquest és un equip de BOINC general. Si vostè fa canvis aquí, aviat seran sobreescrits. Modificar %1l'equip BOINC general%2."
 
-#: ../inc/team.inc:428
+#: ../inc/team.inc:448
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Nota de privacitat%2: si vostè crea un equip, les preferències del seu "
-"projecte (compartició de recursos, preferències gràfiques) seran visibles "
-"per a tothom."
+msgstr "%1Nota de privacitat%2: si vostè crea un equip, les preferències del seu projecte (compartició de recursos, preferències gràfiques) seran visibles per a tothom."
 
-#: ../inc/team.inc:432
+#: ../inc/team.inc:452
 msgid "Team name, text version"
 msgstr "Nom de l'equip, versió text"
 
-#: ../inc/team.inc:433
+#: ../inc/team.inc:453
 msgid "Don't use HTML tags."
 msgstr "No utilitzi etiquetes HTML."
 
-#: ../inc/team.inc:436
+#: ../inc/team.inc:456
 msgid "Team name, HTML version"
 msgstr "Nom de l'equip, versió HTML"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: ../inc/team.inc:458 ../inc/team.inc:468
 msgid "You may use %1limited HTML tags%2."
 msgstr "Pot utilitzar %1algunes etiquetes HTML%2."
 
-#: ../inc/team.inc:439
+#: ../inc/team.inc:459
 msgid "If you don't know HTML, leave this box blank."
 msgstr "Si desconeix HTML, no seleccioni aquesta opció."
 
-#: ../inc/team.inc:442
+#: ../inc/team.inc:462
 msgid "URL of team web page, if any"
 msgstr "URL de la pàgina web de l'equip, si en té"
 
-#: ../inc/team.inc:442
+#: ../inc/team.inc:462
 msgid "without \"http://\""
 msgstr "sense \"http://\""
 
-#: ../inc/team.inc:443
+#: ../inc/team.inc:463
 msgid "This URL will be linked to from the team's page on this site."
 msgstr "Aquesta URL enllaçarà amb la pàgina de l'equip des d'aquest lloc."
 
-#: ../inc/team.inc:446
+#: ../inc/team.inc:466
 msgid "Description of team"
 msgstr "Descripció de l'equip"
 
-#: ../inc/team.inc:462
+#: ../inc/team.inc:482
 msgid "Accept new members?"
 msgstr "Acceptar nous membres?"
 
-#: ../inc/uotd.inc:28
+#: ../inc/uotd.inc:30
 msgid "User profile"
 msgstr "Perfil d'usuari"
 
-#: ../inc/user.inc:119
+#: ../inc/user.inc:120
 msgid "Projects in which you are participating"
 msgstr "Projectes en els quals esteu participant"
 
-#: ../inc/user.inc:121
+#: ../inc/user.inc:122
 msgid "Projects in which %1 is participating"
 msgstr "Projectes en els quals %1 està participant"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Project"
 msgstr "Projecte"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Click for user page"
 msgstr "Prémer per accedir a la pàgina de l'usuari"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Since"
 msgstr "Des de"
 
-#: ../inc/user.inc:148
+#: ../inc/user.inc:151
 msgid "Computing and credit"
 msgstr "Computació i crèdits"
 
-#: ../inc/user.inc:151
+#: ../inc/user.inc:154
 msgid "Computers on this account"
 msgstr "Ordinadors d'aquest compte"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
+#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
+#: ../user/view_profile.php:66
 msgid "View"
 msgstr "Mirar"
 
-#: ../inc/user.inc:161
+#: ../inc/user.inc:164
 msgid "Cross-project ID"
 msgstr "ID multi-projecte"
 
-#: ../inc/user.inc:162
+#: ../inc/user.inc:165
 msgid "Cross-project statistics"
 msgstr "Estadístiques multi-projecte"
 
-#: ../inc/user.inc:163
+#: ../inc/user.inc:166
 msgid "Account"
 msgstr "Compte"
 
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
+#: ../inc/user.inc:449 ../user/user_search.php:124
 msgid "Team"
 msgstr "Grup"
 
-#: ../inc/user.inc:167
+#: ../inc/user.inc:170
 msgid "Cross-project"
 msgstr "Multi-projecte"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
+#: ../inc/user.inc:171
 msgid "Certificate"
 msgstr "Certificat"
 
-#: ../inc/user.inc:169
+#: ../inc/user.inc:172
 msgid "Stats on your cell phone"
 msgstr "Estadístiques en el seu mòbil"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Tipus de notificació desconeguda: %1"
-
-#: ../inc/user.inc:198
+#: ../inc/user.inc:197
 msgid "Account information"
 msgstr "Informació del compte"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: ../inc/user.inc:206 ../user/get_passwd.php:31
+#: ../user/team_email_list.php:73
 msgid "Email address"
 msgstr "Adreça de correu"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: ../inc/user.inc:210 ../inc/user.inc:400
 msgid "URL"
 msgstr "URL"
 
-#: ../inc/user.inc:206
+#: ../inc/user.inc:213
 msgid "Postal code"
 msgstr "Codi postal"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: ../inc/user.inc:214 ../inc/user.inc:394
 msgid "%1 member since"
 msgstr "%1 membre des de"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: ../inc/user.inc:219 ../inc/user.inc:223
 msgid "Change"
 msgstr "Canviar"
 
-#: ../inc/user.inc:209
+#: ../inc/user.inc:224
 msgid "email address"
 msgstr "adreça de correu electrònic"
 
-#: ../inc/user.inc:210
+#: ../inc/user.inc:225
 msgid "password"
 msgstr "contrasenya"
 
-#: ../inc/user.inc:211
+#: ../inc/user.inc:226
 msgid "other account info"
 msgstr "altre informació del compte"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: ../inc/user.inc:229 ../inc/user.inc:393
 msgid "User ID"
 msgstr "ID d'usuari"
 
-#: ../inc/user.inc:213
+#: ../inc/user.inc:229
 msgid "Used in community functions"
 msgstr "Utilitzat en funcions comunitàries"
 
-# 91%
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: ../inc/user.inc:232 ../user/weak_auth.php:25
 msgid "Account keys"
 msgstr "Claus del compte"
 
-#: ../inc/user.inc:221
+#: ../inc/user.inc:237
 msgid "Preferences"
 msgstr "Preferències"
 
-#: ../inc/user.inc:224
+#: ../inc/user.inc:240
 msgid "When and how BOINC uses your computer"
 msgstr "Quan i com BOINC utilitza el seu ordinador"
 
-#: ../inc/user.inc:225
+#: ../inc/user.inc:241
 msgid "Computing preferences"
 msgstr "Preferències de computació"
 
-#: ../inc/user.inc:228
+#: ../inc/user.inc:244
 msgid "Message boards and private messages"
 msgstr "Panell de missatges i missatges privats"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "Preferències de la comunitat"
 
-#: ../inc/user.inc:232
+#: ../inc/user.inc:248
 msgid "Preferences for this project"
 msgstr "Preferències per a aquest projecte"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: ../inc/user.inc:249 ../user/prefs.php:30
 msgid "%1 preferences"
 msgstr "preferències de %1"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
+#: ../inc/user.inc:266
+msgid "View the profile of %1"
+msgstr "Veure el perfil de %1"
+
+#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
+msgid "Profile"
+msgstr "Perfil"
+
+#: ../inc/user.inc:307 ../user/sample_index.php:114
 msgid "Community"
 msgstr "Comunitat"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Esborrar"
-
-#: ../inc/user.inc:245
+#: ../inc/user.inc:314
 msgid "Create"
 msgstr "Crear"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Perfil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: ../inc/user.inc:321 ../inc/user.inc:454
 msgid "%1 posts"
 msgstr "%1 correus"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "Notificacions"
 
-#: ../inc/user.inc:269
+#: ../inc/user.inc:346
 msgid "Quit team"
 msgstr "Deixar el grup"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: ../inc/user.inc:348 ../inc/user.inc:365
 msgid "Administer"
 msgstr "Administrador"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: ../inc/user.inc:354 ../inc/user.inc:367
 msgid "(foundership change request pending)"
 msgstr "(petició de canvi del fundador pendent)"
 
-#: ../inc/user.inc:279
+#: ../inc/user.inc:356
 msgid "Member of team"
 msgstr "Membre de l'equip"
 
-#: ../inc/user.inc:281
+#: ../inc/user.inc:358
 msgid "find a team"
 msgstr "trobar un grup"
 
-#: ../inc/user.inc:292
+#: ../inc/user.inc:369
 msgid "Founder but not member of"
 msgstr "Fundador però no membre de"
 
-#: ../inc/user.inc:298
+#: ../inc/user.inc:375
 msgid "Find friends"
 msgstr "Trobar amics"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
+#: ../inc/user.inc:467 ../inc/user.inc:476
 msgid "Friends"
 msgstr "Amics"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
+#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
 msgid "Computers"
 msgstr "Ordinadors"
 
-#: ../inc/user.inc:338
+#: ../inc/user.inc:415
 msgid "Donor"
 msgstr "Donant"
 
-#: ../inc/user.inc:378
+#: ../inc/user.inc:458
 msgid "Contact"
 msgstr "Contactar"
 
-#: ../inc/user.inc:381
+#: ../inc/user.inc:461
 msgid "This person is a friend"
 msgstr "Aquesta persona és un amic"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: ../inc/user.inc:462 ../user/friend.php:240
 msgid "Cancel friendship"
 msgstr "Finalitzar amistat"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: ../inc/user.inc:465 ../user/friend.php:39
 msgid "Request pending"
 msgstr "Petició pendent"
 
-#: ../inc/user.inc:387
+#: ../inc/user.inc:467
 msgid "Add as friend"
 msgstr "Afegir com amic"
 
-#: ../inc/user.inc:446
+#: ../inc/user.inc:526
 msgid "user name cannot have leading or trailing white space"
 msgstr "el nom d'usuari no pot tenir espais en blanc al principi o al final"
 
-#: ../inc/user.inc:450
+#: ../inc/user.inc:530
 msgid "user name must be nonempty"
 msgstr "no es pot deixar en blanc el nom d'usuari"
 
-#: ../inc/user.inc:454
+#: ../inc/user.inc:534
 msgid "user name may not contain HTML tags"
 msgstr "el nom d'usuari no pot contenir etiquetes HTML"
 
-#: ../inc/util.inc:131
+#: ../inc/util.inc:161
 msgid "log out"
 msgstr "finalitzar la sessió"
 
-#: ../inc/util.inc:133
+#: ../inc/util.inc:163
 msgid "log in"
 msgstr "Registrar-se"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Registrar-se"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: ../inc/util.inc:239 ../user/create_account_form.php:41
 msgid "Create an account"
 msgstr "Crear un compte"
 
-#: ../inc/util.inc:206
+#: ../inc/util.inc:240
 msgid "Server status page"
 msgstr "Pàgina de l'estat del servidor"
 
-#: ../inc/util.inc:248
+#: ../inc/util.inc:277
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr ""
-"S'ha produit un error a la base de dades processant la seva sol.licitud; si "
-"us plau, torni provar-ho més tard."
+msgstr "S'ha produit un error a la base de dades processant la seva sol.licitud; si us plau, torni provar-ho més tard."
 
-#: ../inc/util.inc:257
+#: ../inc/util.inc:286
 msgid "Unable to handle request"
 msgstr "No es pot gestionar la sol licitud"
 
-#: ../inc/util.inc:277
+#: ../inc/util.inc:306
 msgid "hours"
 msgstr "hores"
 
-#: ../inc/util.inc:280
+#: ../inc/util.inc:309
 msgid "min"
 msgstr "min"
 
-#: ../inc/util.inc:283
+#: ../inc/util.inc:312
 msgid "sec"
 msgstr "seg"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"S'ha esgotat el temps per activar l'acces. Si us plau, feu clic a Enrere, "
-"carregui de nou la pàgina i torni a intentar-ho."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Veure el perfil de %1"
+#: ../inc/util.inc:473
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "S'ha esgotat el temps per activar l'acces. Si us plau, feu clic a Enrere, carregui de nou la pàgina i torni a intentar-ho."
 
-#: ../inc/util.inc:569
+#: ../inc/util.inc:552
 msgid "Use BBCode tags to format your text"
 msgstr "Utilitzar les marques BBCode per formatar el text"
 
-#: ../inc/util.inc:796
+#: ../inc/util.inc:779
 msgid "Project down for maintenance"
 msgstr "Projecte aturat per manteniment"
 
-#: ../inc/util.inc:799
+#: ../inc/util.inc:782
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 està temporalment aturat per manteniment.  Si us plau, provi-ho més tard."
+msgstr "%1 està temporalment aturat per manteniment.  Si us plau, provi-ho més tard."
 
-#: ../inc/util.inc:817
+#: ../inc/util.inc:800
 msgid "Unable to connect to database - please try again later"
 msgstr "No es pot connectar a la base de dades - si us plau, provi-ho més tard"
 
-#: ../inc/util.inc:821
+#: ../inc/util.inc:804
 msgid "Unable to select database - please try again later"
 msgstr "No es pot seleccionar la base de dades - si us plau, provi-ho més tard"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: ../inc/util.inc:976
+msgid "characters remaining"
+msgstr "caràcters restants"
+
+#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
 msgid "Stay logged in on this computer"
 msgstr "Mantenir-me en aquest ordinador"
 
@@ -2332,22 +2494,6 @@ msgstr "Mantenir-me en aquest ordinador"
 msgid "Finish account setup"
 msgstr "Finalitzar la configuració del compte"
 
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Us identifica a la pàgina web. Utilitzeu el vostre nom real o un àlies."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Seleccioneu el país que voleu representar, si ho desitgeu."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Codi postal o ZIP"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opcional"
-
 #: ../user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "Ha de proporcionar un nom per al seu compte"
@@ -2356,38 +2502,38 @@ msgstr "Ha de proporcionar un nom per al seu compte"
 msgid "HTML tags not allowed in name"
 msgstr "No estan permeses les etiquetes HTML en el nom"
 
-#: ../user/add_venue.php:81
+#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
+#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Edita les preferències de %1"
+
+#: ../user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "Afegir %1 les preferències per a %2"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
+#: ../user/apps.php:31 ../user/sample_index.php:104
 msgid "Applications"
 msgstr "Aplicacions"
 
-#: ../user/apps.php:33
+#: ../user/apps.php:32
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 actualment té les següents aplicacions. Quan participeu a %1, feina per "
-"una o més d'aquestes aplicacions és assignada al vostre ordinador. La versió "
-"actual de l’aplicació és descarregada al vostre ordinador. Això succeeix de "
-"manera automàtica; no necessita fer res."
+msgstr "%1 actualment té les següents aplicacions. Quan participes a %1, feina per una o més d'aquestes aplicacions és assignada al teu ordinador. La versió actual de l’aplicació és descarrega al teu ordinador. Això succeeix de manera automàtica; no necessites fer res."
 
-#: ../user/apps.php:50
+#: ../user/apps.php:54
 msgid "Platform"
 msgstr "Plataforma"
 
-#: ../user/apps.php:51
+#: ../user/apps.php:55
 msgid "Version"
 msgstr "Versió"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Temps d'instal·lació"
+#: ../user/apps.php:57
+msgid "Average computing"
+msgstr "Computació mitjana"
 
 #: ../user/bbcode.php:23
 msgid "BBCode tags"
@@ -2399,12 +2545,7 @@ msgid ""
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"Les etiquetes BBCode li permeten donar format al text en el seu perfil i en "
-"els missatges.\n"
-"És similar a l'HTML, però més simple. Les etiquetes comencen amb un [ (on\n"
-"utilitzaveu %1 en HTML) i acaba amb ] (on uutilitzaveu %2 en\n"
-"HTML)."
+msgstr "Les etiquetes BBCode li permeten donar format al text en el seu perfil i en els missatges.\nÉs similar a l'HTML, però més simple. Les etiquetes comencen amb un [ (on\nutilitzaveu %1 en HTML) i acaba amb ] (on uutilitzaveu %2 en\nHTML)."
 
 #: ../user/bbcode.php:31
 msgid "Examples"
@@ -2423,154 +2564,78 @@ msgid "Underline"
 msgstr "Subratllar"
 
 #: ../user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Ratllat"
+
+#: ../user/bbcode.php:36
 msgid "Superscript"
 msgstr "Super-índex"
 
-#: ../user/bbcode.php:36
+#: ../user/bbcode.php:37
 msgid "Big text"
 msgstr "Text gran"
 
-#: ../user/bbcode.php:37
+#: ../user/bbcode.php:38
 msgid "Red text"
 msgstr "Text en vermell"
 
-#: ../user/bbcode.php:38
+#: ../user/bbcode.php:39
 msgid "link to website"
 msgstr "enllaç al lloc web"
 
-#: ../user/bbcode.php:39
+#: ../user/bbcode.php:40
 msgid "Quoted text"
 msgstr "Text remarcat"
 
-#: ../user/bbcode.php:39
+#: ../user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "utilitzar per remarcar blocs de text"
 
-#: ../user/bbcode.php:40
+#: ../user/bbcode.php:41
 msgid "use to display an image"
 msgstr "utilitzar per a mostrar una imatge"
 
-#: ../user/bbcode.php:41
+#: ../user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "Fragment de codi aquí"
 
-#: ../user/bbcode.php:41
+#: ../user/bbcode.php:42
 msgid "use to display some code"
 msgstr "utilitzar per mostrar un codi"
 
-#: ../user/bbcode.php:42
+#: ../user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "Text amb format"
 
-#: ../user/bbcode.php:42
+#: ../user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr "utilitzar per mostrar text pre-formatat (en general sol espai)"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item 1"
 msgstr "Item 1"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item2"
 msgstr "Item2"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item 2"
 msgstr "Item 2"
 
-#: ../user/bbcode.php:45
+#: ../user/bbcode.php:46
 msgid "use to link to Trac ticket on BOINC website"
 msgstr "utilitzar per enllaçar al Trac de revisions al lloc web de BOINC"
 
-#: ../user/bbcode.php:47
+#: ../user/bbcode.php:48
 msgid "use to link to Trac Wiki on BOINC website"
 msgstr "utilitzar per enllaçar a Trac Wiki en la pàgina web de BOINC"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "utilitzar per enllaçar a SVN de canvis en el lloc web de BOINC"
-
-#: ../user/bbcode.php:53
+#: ../user/bbcode.php:52
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Si no tanca una etiqueta o no s'especifica un paràmetre correctament,\n"
-"es mostrarà l'etiqueta en lloc del text amb format."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Participants"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Fer feina"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "El seu compte"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "veure estats, modificar preferències"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Equips"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "crear o unir-se a equip"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Usuari del dia"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Estat del servidor"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Perfils"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Cerca un usuari"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Estadística"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Participants principals"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Ordinadors principals"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Grups principals"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Els millors models de GPU"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Idiomes"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Llegiu les regles i normes nostres"
+msgstr "Si no tanca una etiqueta o no s'especifica un paràmetre correctament,\nes mostrarà l'etiqueta en lloc del text amb format."
 
 #: ../user/create_account_action.php:26
 msgid "Can't create account"
@@ -2580,218 +2645,156 @@ msgstr "No es pot crear el compte"
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr "Feu clic a <b>Enrere</b> del navegador per intentar-ho de nou."
 
-#: ../user/create_account_action.php:47
+#: ../user/create_account_action.php:46
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "La seva resposta reCAPTCHA no es correcte. Si us plau, provi-ho de nou."
 
-#: ../user/create_account_action.php:70
+#: ../user/create_account_action.php:69
 msgid "You must supply an invitation code to create an account."
 msgstr "Heu d'introduir un codi d'alta per la creació d'un compte."
 
-#: ../user/create_account_action.php:73
+#: ../user/create_account_action.php:72
 msgid "The invitation code you gave is not valid."
 msgstr "El codi d'alta que heu introduït no és vàlid."
 
-#: ../user/create_account_action.php:84
+#: ../user/create_account_action.php:83
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Adreça de correu incorrecta: ha d'entrar una adreça de correu vàlida del "
-"tipus nom at domini"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Adreça de correu incorrecta: ha d'entrar una adreça de correu vàlida del tipus nom at domini"
 
-#: ../user/create_account_action.php:88
+#: ../user/create_account_action.php:87
 msgid "There's already an account with that email address."
 msgstr "Ja existeix un compte amb aquesta adreça de correu electrònic."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "Les contrasenyes noves son diferents"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "Les contrasenyes només poden contenir caràcters ASCII."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-"La nova contrasenya és massa curta: la longitud mínima de la contrasenya és "
-"de %1 caràcters."
+msgstr "La nova contrasenya és massa curta: la longitud mínima de la contrasenya és de %1 caràcters."
 
-#: ../user/create_account_action.php:127
+#: ../user/create_account_action.php:126
 msgid "Couldn't create account"
 msgstr "No es pot crear el compte"
 
-#: ../user/create_account_form.php:44
+#: ../user/create_account_form.php:45
 msgid ""
 "NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
 "select Add Project, and enter an email address and password."
-msgstr ""
-"NOTA: Si utilitzeu l'Administrador de BOINC, no utilitzeu aquest formulari. "
-"Executa BOINC, selecciona Afegir un projecte i escriviu una adreça de correu "
-"electrònic i contrasenya."
+msgstr "NOTA: Si utilitzeu l'Administrador de BOINC, no utilitzeu aquest formulari. Executa BOINC, selecciona Afegir un projecte i escriviu una adreça de correu electrònic i contrasenya."
 
-#: ../user/create_account_form.php:61
+#: ../user/create_account_form.php:57
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"Aquest compte formarà part del grup %1 i tindrà les preferències del creador "
-"del projecte."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Codi d'alta"
+msgstr "Aquest compte formarà part del grup %1 i tindrà les preferències del creador del projecte."
 
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Es requereix un codi d'invitació vàlid per a crear un compte."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Adreça de correu electrònic"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Ha de ser una adreça de correu vàlida del tipus 'nom at domini'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Contrasenya"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Ha de tenir al menys %1 caràcters"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Introduïu de nou la contrasenya"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Si us plau, introduïu les paraules que es mostren a la imatge."
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Crear un compte"
-
-#: ../user/create_profile.php:50
+#: ../user/create_profile.php:52
 msgid "Picture"
 msgstr "Imatge"
 
-#: ../user/create_profile.php:64
+#: ../user/create_profile.php:66
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1 La imatge del seu perfil es mostrarà a l'esquerra."
 
-#: ../user/create_profile.php:66
+#: ../user/create_profile.php:68
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Per canviar-ho, premi el botó \"Navegar\" i seleccioni un arxiu JPEG o PNG (%1 "
-"o menys)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Per canviar-ho, premi el botó \"Navegar\" i seleccioni un arxiu JPEG o PNG (%1 o menys)."
 
-#: ../user/create_profile.php:69
+#: ../user/create_profile.php:71
 msgid "To remove it from your profile, check this box:"
 msgstr "Per eliminar-lo del seu perfil, seleccioni aquesta casella:"
 
-#: ../user/create_profile.php:77
+#: ../user/create_profile.php:79
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Si desitja incloure una imatge en el seu perfil, premi el botó \"Navegar\" i "
-"seleccioni un fitxer JPEG o PNG. Si us plau seleccioni imatges de %1 o "
-"menys."
+msgstr "Si desitja incloure una imatge en el seu perfil, premi el botó \"Navegar\" i seleccioni un fitxer JPEG o PNG. Si us plau seleccioni imatges de %1 o menys."
 
-#: ../user/create_profile.php:89
+#: ../user/create_profile.php:91
 msgid "Language"
 msgstr "Idioma"
 
-#: ../user/create_profile.php:92
+#: ../user/create_profile.php:94
 msgid "Select the language in which your profile is written:"
 msgstr "Seleccioni l'idioma en el que està escrit el seu perfil:"
 
-#: ../user/create_profile.php:104
+#: ../user/create_profile.php:106
 msgid "Submit profile"
 msgstr "Lliurar el perfil"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Si us plau, introduïu les paraules que es mostren a la imatge."
-
-#: ../user/create_profile.php:115
+#: ../user/create_profile.php:112
 msgid "Create/edit profile"
 msgstr "Crear/editar el perfil"
 
-#: ../user/create_profile.php:137
+#: ../user/create_profile.php:134
 msgid "The format of your uploaded image is not supported."
 msgstr "El format d'imatge que ha lliurat no està suportat."
 
-#: ../user/create_profile.php:166
+#: ../user/create_profile.php:163
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
-msgstr ""
-"El seu %1perfil%2 li permet compartir les seves opinions i coneixements amb "
-"%3 comunitat."
+msgstr "El seu %1perfil%2 li permet compartir les seves opinions i coneixements amb %3 comunitat."
 
-#: ../user/create_profile.php:213
+#: ../user/create_profile.php:209
 msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-"La seva resposta ReCaptcha no es correcte.  Si us plau, provi-ho de nou."
+msgstr "La seva resposta ReCaptcha no es correcte.  Si us plau, provi-ho de nou."
 
-#: ../user/create_profile.php:222
+#: ../user/create_profile.php:218
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"La seva primera resposta ha estat marcada com spam per el sistema anti-spam "
-"Akimest.  Si us plau modifiqui el text i provi-ho de nou."
+msgstr "La seva primera resposta ha estat marcada com spam per el sistema anti-spam Akimest.  Si us plau modifiqui el text i provi-ho de nou."
 
-#: ../user/create_profile.php:230
+#: ../user/create_profile.php:226
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"La seva segona resposta ha estat marcada com spam per el sistema anti-spam "
-"Akismet.  Si us plau modifiqui el seu text i provi-ho de nou."
+msgstr "La seva segona resposta ha estat marcada com spam per el sistema anti-spam Akismet.  Si us plau modifiqui el seu text i provi-ho de nou."
 
-#: ../user/create_profile.php:246
+#: ../user/create_profile.php:242
 msgid "Your profile submission was empty."
 msgstr "El perfil que ha lliurat està buit."
 
-#: ../user/create_profile.php:285
+#: ../user/create_profile.php:283
 msgid "Could not update the profile: database error"
 msgstr "No es pot actualitzar el perfil: error de la base de dades"
 
-#: ../user/create_profile.php:297
+#: ../user/create_profile.php:299
 msgid "Could not create the profile: database error"
 msgstr "No es pot crear el perfil: error de la base de dades"
 
-#: ../user/create_profile.php:302
+#: ../user/create_profile.php:304
 msgid "Profile saved"
 msgstr "S'ha guardat el perfil"
 
-#: ../user/create_profile.php:304
+#: ../user/create_profile.php:306
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "Felicitats! El seu perfil ha estat incorporat a la base de dades."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Veure el seu perfil%2"
+#: ../user/create_profile.php:309
+msgid "View your profile"
+msgstr "Mostra el teu perfil"
 
-#: ../user/create_profile.php:315
+#: ../user/create_profile.php:319
 msgid "Create a profile"
 msgstr "Crear un perfil"
 
-#: ../user/create_profile.php:343
+#: ../user/create_profile.php:347
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Per prevenir l'spam, necessita un crèdit promitg de %1 o mes gran per crear "
-"o editar un perfil.  Disculpin aquestes molèsties."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Per prevenir l'spam, necessita un crèdit promitg de %1 o mes gran per crear o editar un perfil.  Disculpin aquestes molèsties."
 
 #: ../user/delete_account.php:57
 msgid "Couldn't delete account"
@@ -2816,28 +2819,21 @@ msgid ""
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"Eliminant el seu compte s'eliminarà tota la seva\n"
-"informació personal dels nostres servidors,\n"
-"incloent el seu perfil i els seus missages en el fòrum.\n"
-"No es lliuraran treballs als equips connectats\n"
-"a aquest compte."
+msgstr "Eliminant el seu compte s'eliminarà tota la seva\ninformació personal dels nostres servidors,\nincloent el seu perfil i els seus missages en el fòrum.\nNo es lliuraran treballs als equips connectats\na aquest compte."
 
 #: ../user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Això no es pot desfer.\n"
-"Un cop el compte ha estat eliminat, no podreu retrocedir."
+msgstr "Això no es pot desfer.\nUn cop el compte ha estat eliminat, no podreu retrocedir."
 
 #: ../user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "Estàs segur que vols eliminar el teu compte?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
+#: ../user/delete_account.php:79 ../user/delete_profile.php:54
+#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
+#: ../user/prefs_remove.php:53 ../user/user_search.php:59
 #: ../user/user_search.php:64
 msgid "Yes"
 msgstr "Si"
@@ -2846,8 +2842,8 @@ msgstr "Si"
 msgid "Delete this account"
 msgstr "Eliminar aquest compte"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
+#: ../user/delete_account.php:80 ../user/delete_profile.php:55
+#: ../user/friend.php:241 ../user/user_search.php:58
 #: ../user/user_search.php:63
 msgid "No"
 msgstr "No"
@@ -2856,49 +2852,44 @@ msgstr "No"
 msgid "Do not delete this account"
 msgstr "No eliminar aquest compte"
 
-#: ../user/delete_profile.php:30
+#: ../user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "no es pot eliminar el perfil - si us plau provi-ho més tard"
 
-#: ../user/delete_profile.php:33
+#: ../user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "Confirma la Eliminació"
 
-#: ../user/delete_profile.php:35
+#: ../user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "El teu perfil ha estat eliminat."
 
-#: ../user/delete_profile.php:40
+#: ../user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "Confirmar l'eliminació del perfil"
 
-#: ../user/delete_profile.php:43
+#: ../user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "Està segur?"
 
-#: ../user/delete_profile.php:44
+#: ../user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"En perfil eliminat ho es per sempres i no es pot recuperar --\n"
-"vostè haurà de començar de zero\n"
-"si vol un altre perfil en el futur."
+msgstr "En perfil eliminat ho es per sempres i no es pot recuperar --\nvostè haurà de començar de zero\nsi vol un altre perfil en el futur."
 
-#: ../user/delete_profile.php:48
+#: ../user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"Si esteu segur, premeu 'Si'\n"
-"per eliminar el vostre perfil de la nostra base de dades."
+msgstr "Si esteu segur, premeu 'Si'\nper eliminar el vostre perfil de la nostra base de dades."
 
-#: ../user/delete_profile.php:52
+#: ../user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "Eliminar el meu perfil"
 
-#: ../user/delete_profile.php:53
+#: ../user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "No eliminar el meu perfil"
 
@@ -2916,10 +2907,9 @@ msgstr "La seva donació ha estat competada."
 
 #: ../user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"La seva donació s'afegirà a la barra de progrés després de la confirmació a "
-"través de PayPal."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "La seva donació s'afegirà a la barra de progrés després de la confirmació a través de PayPal."
 
 #: ../user/donated.php:32
 msgid "You have canceled your donation."
@@ -2937,9 +2927,7 @@ msgstr "%1 donacions"
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"Aquest projecte està acceptant donacions a través de\n"
-"%1."
+msgstr "Aquest projecte està acceptant donacions a través de\n%1."
 
 #: ../user/donations.php:42
 msgid ""
@@ -2954,20 +2942,7 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"Per fer una donació, escriviu la quantitat que desitja donar utilitzant el "
-"camp de sota.\n"
-"        PayPal accepta múltiples monedes\n"
-"        (Dòlars canadencs, Euros, Lliures Esterlines, Dòlars dels EUA,\n"
-"         Iens, Dòlars Australians, Dòlars Neozelandesos,\n"
-"        Francs suïssos, Dòlars de Hong Kong, Dòlars de Singapur, Corones "
-"Sueques,\n"
-"        Corones Daneses, Zloty Polonès, Corones Norugues,\n"
-"        Florí Hongarès, Corona Txeca).\n"
-"        Podeu utilitzar el convertidor de moneda inclos\n"
-"        per veure la quantitat equivalent de donació en diferents monedes\n"
-"        (tingueu en compte que les taxes són només estimacions\n"
-"         i la quantitat real pot ser diferent)."
+msgstr "Per fer una donació, escriviu la quantitat que desitja donar utilitzant el camp de sota.\n        PayPal accepta múltiples monedes\n        (Dòlars canadencs, Euros, Lliures Esterlines, Dòlars dels EUA,\n         Iens, Dòlars Australians, Dòlars Neozelandesos,\n        Francs suïssos, Dòlars de Hong Kong, Dòlars de Singapur, Corones Sueques,\n        Corones Daneses, Zloty Polonès, Corones Norugues,\n        Florí Hongarès, Corona Txeca).\n        Podeu utilitzar el convertidor d [...]
 
 #: ../user/donations.php:316
 msgid "Amount you would like to donate"
@@ -2985,16 +2960,11 @@ msgstr "Donació anònima"
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Seleccioneu aquesta opció si no voleu que el vostre nom i número de compte "
-"apareixi a les\n"
-"llistes de donacions.<br>Si no està activada, apareixerà registrat com "
-"l'usuari de ID %1"
+msgstr "Seleccioneu aquesta opció si no voleu que el vostre nom i número de compte apareixi a les\nllistes de donacions.<br>Si no està activada, apareixerà registrat com l'usuari de ID %1"
 
 #: ../user/donations.php:324
 msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Per assignar la donació amb el seu ID d'usuari, si us plau registreu-vos."
+msgstr "Per assignar la donació amb el seu ID d'usuari, si us plau registreu-vos."
 
 #: ../user/donations.php:328
 msgid "Proceed"
@@ -3015,21 +2985,14 @@ msgstr "Pot descarregar aplicatius de diverses categories."
 #: ../user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Aquestes aplicacions no estan aprovades per %1 i les ha d'utilitzar sota la "
-"seva responsabilitat."
+msgstr "Aquestes aplicacions no estan aprovades per %1 i les ha d'utilitzar sota la seva responsabilitat."
 
 #: ../user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"No proporcionem instruccions per la instal·lació d'aquestes aplicacions.\n"
-"De totes maneres, es probable que l'autor hagi proporcionat algun tipus "
-"d'ajuda per la instal·lació o des-instal·lació de l'aplicació. \n"
-"Si no estès disponible contacti l'autor."
+msgstr "No proporcionem instruccions per la instal·lació d'aquestes aplicacions.\nDe totes maneres, es probable que l'autor hagi proporcionat algun tipus d'ajuda per la instal·lació o des-instal·lació de l'aplicació. \nSi no estès disponible contacti l'autor."
 
 #: ../user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
@@ -3071,9 +3034,7 @@ msgstr "Si us plau %1valideu aquesta adreça de correu electrònic%2."
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
-msgstr ""
-"No podem actualitzar la vostra adreça de correu electrònic a causa d'un "
-"problema de base de dades.  Si us plau provi-ho més tard."
+msgstr "No podem actualitzar la vostra adreça de correu electrònic a causa d'un problema de base de dades.  Si us plau provi-ho més tard."
 
 #: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
 msgid "Change email address"
@@ -3103,260 +3064,210 @@ msgstr "Confirmi que vol restaurar"
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Aquesta acció esborrarà tots els canvis realitzats en les preferències de la "
-"seva comunitat. Per cancel lar, feu clic al botó Enrere del navegador."
+msgstr "Aquesta acció esborrarà tots els canvis realitzats en les preferències de la seva comunitat. Per cancel lar, feu clic al botó Enrere del navegador."
 
 #: ../user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "Restablir les preferències"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: ../user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-"Error: No es el tipus correcte d'arxiu, només PNG i JPEG són compatibles."
+msgstr "Error: No es el tipus correcte d'arxiu, només PNG i JPEG són compatibles."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: ../user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-"La seva signatura era massa llarga, si us plau redueixi-la a un màxim de 250 "
-"caràcters."
+msgstr "La seva signatura era massa llarga, si us plau redueixi-la a un màxim de 250 caràcters."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "No existeix l'usuari: %1"
+#: ../user/edit_forum_preferences_action.php:139
+#: ../user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Usuari inexistent:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: ../user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"Com prefereixes que t'avisem dels nous missatges privats, sol·licituds "
-"d'amistat, missatges en les discussions subscrites, i altres esdeveniments?"
+msgstr "Com prefereixes que t'avisem dels nous missatges privats, sol·licituds d'amistat, missatges en les discussions subscrites, i altres esdeveniments?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: ../user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "A la pàgina del meu compte (no email)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: ../user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "Immediatament, per correu electrònic"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: ../user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "En un únic correu electrònic diàri"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: ../user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "Identitat del plafó de missatges"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: ../user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "Avatar"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: ../user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "Una imatge que el representi en els fòrums."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: ../user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "Format: JPG o PNG. Mida: màxim de 4 KB, 100x100 píxels"
 
-#: ../user/edit_forum_preferences_form.php:80
+#: ../user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "No usar un avatar"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: ../user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "Utilitzar un Avatar Reconegut Globalment proporcionat per %1"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: ../user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "Utilitzar aquest avatar enviat:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: ../user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "Vista prèvia del avatar"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: ../user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "Així és com es veurà el teu avatar"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: ../user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "Signatura per els missatges en el plafons d'anuncis"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: ../user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Fes una ullada a %1diversos serveis gratuïts%2\n"
-"<br> proporcionan 'imatges de la signatura' dinàmicament\n"
-"<br> mostrant la seva informació de crèdit més recent, notícies de "
-"projectes, etc."
+msgstr "Fes una ullada a %1diversos serveis gratuïts%2\n<br> proporcionan 'imatges de la signatura' dinàmicament\n<br> mostrant la seva informació de crèdit més recent, notícies de projectes, etc."
 
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "caràcters restants"
-
-#: ../user/edit_forum_preferences_form.php:105
+#: ../user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "Adjuntar signatura per defecte"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: ../user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "Vista prèvia de la signatura"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: ../user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "Aquesta és la forma en què la seva signatura es veurà en els fòrums"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: ../user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "Panell del missatge"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: ../user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "El que vol mostrar"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: ../user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "Amaga les imatges dels avatars"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: ../user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "Amaga les signatures"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: ../user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "Mostra les imatges com enllaços"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: ../user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "Obrir els enllaços en una nova finestra/pestanya"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: ../user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "Ressaltar usuaris especials"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: ../user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "Veure aquesta quantitat de missatges per pàgina"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: ../user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "Com ordenar"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: ../user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "Fils:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: ../user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "Missatges:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: ../user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "Anar al primer missatge nou en el fil de forma automàtica"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: ../user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "No moure els missatges fixats amunt"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: ../user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "Filtratge de missatges"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "Usuaris filtrats"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: ../user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
 msgstr "No feu cas dels missatges i dels missatges privats d'aquests usuaris."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: ../user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "ID d'usuari (per exemple: 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
 msgid "Add user to filter"
 msgstr "Afegir l'usuari al filtre"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: ../user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "Premeu aqui per actualitzar les preferències"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "Reinicialitza"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: ../user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr "O feu clic aquí per restablir les preferències als valors per defecte"
 
 #: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Clau de compte incorrecte"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "No s'ha trobat cap compta amb aquesta direcció de correu electrònic"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Contrasenya incorrecte"
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "No podem actualitzar la contrasenya a causa d'un problema de base de dades. Si us plau provi-ho més tard."
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
+#: ../user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "Canviï la contrasenya"
 
-#: ../user/edit_passwd_action.php:67
+#: ../user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "La seva contrasenya ha estat canviada."
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"No podem actualitzar la contrasenya a causa d'un problema de base de dades. "
-"Si us plau provi-ho més tard."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Vostè pot identificar-se utilitzant"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "la seva adreça de correu electrònic i la contrasenya antiga"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "clau del seu compte"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Contrasenya actual"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>O</b>: Clau del compte"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Obtenir la clau de compte per correu electrònic"
-
-#: ../user/edit_passwd_form.php:53
+#: ../user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "Nova contrasenya"
 
-#: ../user/edit_passwd_form.php:54
+#: ../user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "Nova contrasenya, una vegada més"
 
@@ -3401,18 +3312,13 @@ msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"A les tasques <b>estat del servidor</b> indica si la tasca ha estat enviada "
-"a un ordinador, i si és així si l'equip l'ha acabat. Els valors possibles "
-"són:"
+msgstr "A les tasques <b>estat del servidor</b> indica si la tasca ha estat enviada a un ordinador, i si és així si l'equip l'ha acabat. Els valors possibles són:"
 
 #: ../user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr ""
-"La tasca no està llesta per a enviar (per exemple, per que els seus arxius "
-"d'entrada no estan disponibles)"
+msgstr "La tasca no està llesta per a enviar (per exemple, per que els seus arxius d'entrada no estan disponibles)"
 
 #: ../user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
@@ -3430,9 +3336,7 @@ msgstr "La tasca ha estat enviada, esperant que es s'acabi."
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
-msgstr ""
-"La tasca ha estat enviada a un ordinador i o bé s'ha esgotat el temps o bé "
-"l'equip ha informat de la seva terminació."
+msgstr "La tasca ha estat enviada a un ordinador i o bé s'ha esgotat el temps o bé l'equip ha informat de la seva terminació."
 
 #: ../user/explain_state.php:49
 msgid "Outcomes"
@@ -3442,17 +3346,13 @@ msgstr "Resultats"
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
-msgstr ""
-"El <b>resultat</b> de una tasca es defineix si l'estat de servidor és "
-"<b>acabat</b>. Els valors possibles són:"
+msgstr "El <b>resultat</b> de una tasca es defineix si l'estat de servidor és <b>acabat</b>. Els valors possibles són:"
 
 #: ../user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
-msgstr ""
-"La tasca va ser enviada a un ordinador, però l'equip encara no ha completat "
-"el treball i informat dels resultats."
+msgstr "La tasca va ser enviada a un ordinador, però l'equip encara no ha completat el treball i informat dels resultats."
 
 #: ../user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
@@ -3462,9 +3362,7 @@ msgstr "Un equip ha finalitzat i reportartat la tasca amb èxit."
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
-msgstr ""
-"El servidor no ha pogut enviar la tasca a un equip (potser perquè les seves "
-"necessitats de recursos són massa grans)"
+msgstr "El servidor no ha pogut enviar la tasca a un equip (potser perquè les seves necessitats de recursos són massa grans)"
 
 #: ../user/explain_state.php:65
 msgid "Client error"
@@ -3478,25 +3376,19 @@ msgstr "La tasca s'ha enviat a un ordinador i s'ha produït un error."
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr ""
-"La tasca va ser enviada a un ordinador i no s'ha rebut resposta dins del "
-"termini."
+msgstr "La tasca va ser enviada a un ordinador i no s'ha rebut resposta dins del termini."
 
 #: ../user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"La tasca no s'ha enviat a un equip, ja n'hi ha prou d'altres tasques "
-"acabades per aquest workunit."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "La tasca no s'ha enviat a un equip, ja n'hi ha prou d'altres tasques acabades per aquest workunit."
 
 #: ../user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
-msgstr ""
-"Es va reportar el resultat de la tasca però no s'ha pogut validar, en "
-"general a causa de que els arxius de sortida en el servidor s'han perdut."
+msgstr "Es va reportar el resultat de la tasca però no s'ha pogut validar, en general a causa de que els arxius de sortida en el servidor s'han perdut."
 
 #: ../user/explain_state.php:80
 msgid "Client states"
@@ -3504,11 +3396,9 @@ msgstr "Estats del client"
 
 #: ../user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Un resultat de <b>estat del client</b> indica el grau de procés en què va "
-"produir."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Un resultat de <b>estat del client</b> indica el grau de procés en què va produir."
 
 #: ../user/explain_state.php:86
 msgid "The computer has not yet completed the task."
@@ -3538,9 +3428,7 @@ msgstr "Temps reportat i temps límit"
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr ""
-"El camp d'una tasca <b>Temps reportat i limit</b> depend de si ja s'ha "
-"reportat la tasca:"
+msgstr "El camp d'una tasca <b>Temps reportat i limit</b> depend de si ja s'ha reportat la tasca:"
 
 #: ../user/explain_state.php:110
 msgid "Already reported"
@@ -3584,41 +3472,35 @@ msgstr "Enviar un correu electrònic"
 
 #: ../user/ffmail_action.php:59
 msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Utilitzeu el botó del navegador cap enrere per tornar al formulari de "
-"missatges"
+msgstr "Utilitzeu el botó del navegador cap enrere per tornar al formulari de missatges"
 
 #: ../user/ffmail_action.php:63
 msgid "Sending emails"
 msgstr "Enviant correus electrònics"
 
-#: ../user/ffmail_action.php:84
+#: ../user/ffmail_action.php:82
 msgid "email sent successfully to %1"
 msgstr "correu electrònic enviat amb èxit a %1"
 
-#: ../user/ffmail_action.php:86
+#: ../user/ffmail_action.php:84
 msgid "failed to send email to %1: %2"
 msgstr "no s'ha pogut enviar el correu electrònic a %1: %2"
 
-#: ../user/ffmail_action.php:92
+#: ../user/ffmail_action.php:90
 msgid "Thanks for telling your friends about %1"
 msgstr "Gràcies per informar als seus amics sobre %1"
 
-#: ../user/ffmail_action.php:94
+#: ../user/ffmail_action.php:92
 msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Ha oblidat d'entrar els noms del seus amics i/o adreces de correu "
-"electrònic; Si us plau %1torneu al formulari%2 i entrreu-los."
+"You forgot to enter your friends' names and/or email addresses; Please "
+"%1return to the form%2 and enter them."
+msgstr "Ha oblidat d'entrar els noms del seus amics i/o adreces de correu electrònic; Si us plau %1torneu al formulari%2 i entrreu-los."
 
 #: ../user/ffmail_form.php:30
 msgid ""
 "This project hasn't created an email message - please notify its "
 "administrators"
-msgstr ""
-"Aquest projecte no ha creat un missatge de correu electrònic - si us plau "
-"notifica-ho als seus administradors"
+msgstr "Aquest projecte no ha creat un missatge de correu electrònic - si us plau notifica-ho als seus administradors"
 
 #: ../user/ffmail_form.php:33
 msgid "Tell your friends about %1"
@@ -3626,19 +3508,14 @@ msgstr "Informa als teus amics sobre %1"
 
 #: ../user/ffmail_form.php:37
 msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-"Ajuda'ns a infornar als teus amics, familiars i companys de treball sobre%1"
+msgstr "Ajuda'ns a infornar als teus amics, familiars i companys de treball sobre%1"
 
 #: ../user/ffmail_form.php:39
 msgid ""
 "Fill in this form with the names and email addresses of people you think "
 "might be interested in %1. We'll send them an email in your name, and you "
 "can add your own message if you like."
-msgstr ""
-"Ompli el següent formulari amb els noms i adreces de correu electrònic de "
-"persones que puguin estar interessades en %1. I els enviarem un correu "
-"electrònic en nom seu, i vostè pot afegir el seu propi missatge si ho "
-"desitja."
+msgstr "Ompli el següent formulari amb els noms i adreces de correu electrònic de persones que puguin estar interessades en %1. I els enviarem un correu electrònic en nom seu, i vostè pot afegir el seu propi missatge si ho desitja."
 
 #: ../user/ffmail_form.php:42
 msgid "Your name:"
@@ -3664,84 +3541,74 @@ msgstr "Missatge addicional (opcional)"
 msgid "Send"
 msgstr "Enviar"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: ../user/forum_banishment_vote.php:37
+#: ../user/forum_banishment_vote_action.php:35
 msgid "You are not authorized to banish users."
 msgstr "No està autoritzat per expulsar usuaris."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "Voti expulsió"
 
-#: ../user/forum_banishment_vote.php:50
+#: ../user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "No s'ha trobat cap usuari amb aquest ID."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
 msgid "User is already banished"
 msgstr "L'usuari ja està expulsat"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"Està segur que vol expulsar %1?<br/>Això evitarà que %1 posi missatges "
-"durant al període de temps especificat.<br/>S'ha de fer només si %1 mostrat "
-"un comportament controvertit."
+msgstr "Està segur que vol expulsar %1?<br/>Això evitarà que %1 posi missatges durant al període de temps especificat.<br/>S'ha de fer només si %1 mostrat un comportament controvertit."
 
-#: ../user/forum_banishment_vote.php:61
+#: ../user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Seleccioneu una raó de la llista, opcionalment escrigui una descripció més "
-"detallada de per què l'usuari ha de ser expulsat."
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Seleccioneu una raó de la llista, opcionalment escrigui una descripció més detallada de per què l'usuari ha de ser expulsat."
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "Categoria"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
+#: ../user/forum_banishment_vote.php:67
+#: ../user/forum_banishment_vote_action.php:59
+#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
 msgid "Obscene"
 msgstr "Obscè"
 
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
+#: ../user/forum_banishment_vote.php:68
+#: ../user/forum_banishment_vote_action.php:61
+#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
 msgid "Flame/Hate mail"
 msgstr "Correus amb ira/odi"
 
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
+#: ../user/forum_banishment_vote.php:69
+#: ../user/forum_banishment_vote_action.php:63
+#: ../user/forum_moderate_post.php:62
 msgid "User Request"
 msgstr "Sol.licitud d'usuari"
 
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Un altre"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
+#: ../user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "Raó"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "Enviat per correu si no està buit"
 
-#: ../user/forum_banishment_vote.php:74
+#: ../user/forum_banishment_vote.php:77
 msgid "Proceed with vote"
 msgstr "Procedir amb la votació"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
+#: ../user/forum_banishment_vote_action.php:41
+#: ../user/forum_moderate_post_action.php:66
 msgid "You must specify an action..."
 msgstr "Heu d'especificar una acció..."
 
@@ -3749,15 +3616,13 @@ msgstr "Heu d'especificar una acció..."
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr ""
-"Ja no es pot editar aquest missatge.<br/>Missatges només es poden editar en "
-"durant els %1 minuts posteriors a la seva creació."
+msgstr "Ja no es pot editar aquest missatge.<br/>Missatges només es poden editar en durant els %1 minuts posteriors a la seva creació."
 
 #: ../user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "No tens permís per editar aquest missatge."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
+#: ../user/forum_edit.php:86 ../user/forum_search.php:74
 msgid "Forum"
 msgstr "Fòrum"
 
@@ -3766,921 +3631,864 @@ msgid "Edit your message"
 msgstr "Edita el teu missatge"
 
 #: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: ../user/forum_post.php:113 ../user/forum_post.php:115
+#: ../user/team_forum.php:71
 msgid "Title"
 msgstr "Títol"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: ../user/forum_edit.php:144 ../user/forum_post.php:133
 msgid "Add my signature to this post"
 msgstr "Afegir la meva firma a aquest correu"
 
-#: ../user/forum_forum.php:41
+#: ../user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "No és visible per a tu"
 
-#: ../user/forum_forum.php:80
+#: ../user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "Equip del plafó de missatges de %1"
 
-#: ../user/forum_forum.php:96
+#: ../user/forum_forum.php:99
 msgid "New thread"
 msgstr "Nou fil"
 
-#: ../user/forum_forum.php:96
+#: ../user/forum_forum.php:99
 msgid "Add a new thread to this forum"
 msgstr "Afegir un nou fil a aquest fòrum"
 
-#: ../user/forum_forum.php:116
+#: ../user/forum_forum.php:119
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "Aquest plafó de missatges està disponible en format %1RSS%2"
 
-#: ../user/forum_forum.php:174
+#: ../user/forum_forum.php:178
 msgid "This thread is hidden"
 msgstr "Aquest fil es ocult"
 
-#: ../user/forum_forum.php:178
+#: ../user/forum_forum.php:182
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr "Aquest fil està fixat i tancat, i no l'has llegit encara"
 
-#: ../user/forum_forum.php:178
+#: ../user/forum_forum.php:182
 msgid "sticky/locked/unread"
 msgstr "fixat/tancat/no llegit"
 
-#: ../user/forum_forum.php:180
+#: ../user/forum_forum.php:184
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "Aquest fil està fixat i no l'has llegit encara"
 
-#: ../user/forum_forum.php:180
+#: ../user/forum_forum.php:184
 msgid "sticky/unread"
 msgstr "fixat/no llegit"
 
-#: ../user/forum_forum.php:184
+#: ../user/forum_forum.php:188
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "Encara no has llegit aquest fil i està tancat"
 
-#: ../user/forum_forum.php:184
+#: ../user/forum_forum.php:188
 msgid "unread/locked"
 msgstr "no llegit/tancat"
 
-#: ../user/forum_forum.php:186
+#: ../user/forum_forum.php:190
 msgid "You haven't read this thread yet"
 msgstr "Encara no has llegit aquest fil"
 
-#: ../user/forum_forum.php:192
+#: ../user/forum_forum.php:196
 msgid "This thread is sticky and locked"
 msgstr "Aquest fil està fixat i tancat"
 
-#: ../user/forum_forum.php:192
+#: ../user/forum_forum.php:196
 msgid "sticky/locked"
 msgstr "fixat/tancat"
 
-#: ../user/forum_forum.php:194
+#: ../user/forum_forum.php:198
 msgid "This thread is sticky"
 msgstr "Aquest fil està fixat"
 
-#: ../user/forum_forum.php:194
+#: ../user/forum_forum.php:198
 msgid "sticky"
 msgstr "fixar"
 
-#: ../user/forum_forum.php:198
+#: ../user/forum_forum.php:202
 msgid "This thread is locked"
 msgstr "Aquest fil està tancat"
 
-#: ../user/forum_forum.php:198
+#: ../user/forum_forum.php:202
 msgid "locked"
 msgstr "tancat"
 
-#: ../user/forum_forum.php:200
+#: ../user/forum_forum.php:204
 msgid "You read this thread"
 msgstr "Has llegit aquest fil"
 
-#: ../user/forum_forum.php:200
+#: ../user/forum_forum.php:204
 msgid "read"
 msgstr "llegeix"
 
-#: ../user/forum_help_desk.php:27
+#: ../user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "Preguntes i respostes"
 
-#: ../user/forum_help_desk.php:30
+#: ../user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Parla en viu a través de Skype amb un voluntari, en qualsevol de diversos "
-"idiomes. Vés a%1BOINC Ajuda en Línia%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Parla en viu a través de Skype amb un voluntari, en qualsevol de diversos idiomes. Vés a%1BOINC Ajuda en Línia%2."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
 msgid "Topic"
 msgstr "Tema"
 
-#: ../user/forum_help_desk.php:45
+#: ../user/forum_help_desk.php:47
 msgid "Questions"
 msgstr "Preguntes"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: ../user/forum_index.php:58 ../user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "Debat entre els membres de %1"
 
-#: ../user/forum_index.php:69
+#: ../user/forum_index.php:74
 msgid "%1 Message boards"
 msgstr "Panell de missatges de %1"
 
-#: ../user/forum_index.php:78
+#: ../user/forum_index.php:83
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
-msgstr ""
-"Si té alguna pregunta o problema, si us plau utilitzi la secció de %"
-"1Preguntes i Respostes%2 dels plafons de missatges."
+msgstr "Si té alguna pregunta o problema, si us plau utilitzi la secció de %1Preguntes i Respostes%2 dels plafons de missatges."
 
-#: ../user/forum_index.php:123
+#: ../user/forum_index.php:128
 msgid "Subscribed threads"
 msgstr "Fils subscrits"
 
-#: ../user/forum_moderate_post.php:43
+#: ../user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "Moderar missatges"
 
-#: ../user/forum_moderate_post.php:52
+#: ../user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "Ocultar el missatge"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "Correu brosa comercial"
 
-#: ../user/forum_moderate_post.php:58
+#: ../user/forum_moderate_post.php:61
 msgid "Doublepost"
 msgstr "Missatge doble"
 
-#: ../user/forum_moderate_post.php:63
+#: ../user/forum_moderate_post.php:66
 msgid "Move post"
 msgstr "Moure el missatge"
 
-#: ../user/forum_moderate_post.php:65
+#: ../user/forum_moderate_post.php:68
 msgid "Destination thread ID:"
 msgstr "ID destí del fil:"
 
-#: ../user/forum_moderate_post.php:78
+#: ../user/forum_moderate_post.php:81
 msgid "Banish user"
 msgstr "Expulsar l'usuari"
 
-#: ../user/forum_moderate_post.php:80
+#: ../user/forum_moderate_post.php:83
 msgid "Ban duration"
 msgstr "Durada de l'expulsió"
 
-#: ../user/forum_moderate_post.php:81
+#: ../user/forum_moderate_post.php:84
 msgid "4 hours"
 msgstr "4 hores"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
 msgid "1 day"
 msgstr "1 dia"
 
-#: ../user/forum_moderate_post.php:83
+#: ../user/forum_moderate_post.php:86
 msgid "1 week"
 msgstr "1 setmana"
 
-#: ../user/forum_moderate_post.php:84
+#: ../user/forum_moderate_post.php:87
 msgid "2 weeks"
 msgstr "2 setmanes"
 
-#: ../user/forum_moderate_post.php:85
+#: ../user/forum_moderate_post.php:88
 msgid "1 month"
 msgstr "1 mes"
 
-#: ../user/forum_moderate_post.php:86
+#: ../user/forum_moderate_post.php:89
 msgid "Forever"
 msgstr "Per sempre"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-"Explicació opcional %1 Aquesta s'inclou en el correu electrònic a l'usuari.%"
-"2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
+#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
+#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
+#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
 msgid "OK"
 msgstr "CORRECTE"
 
-#: ../user/forum_moderate_post_action.php:57
+#: ../user/forum_moderate_post.php:107
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Explicació opcional %1 Aquesta s'inclou en el correu electrònic a l'usuari.%2"
+
+#: ../user/forum_moderate_post_action.php:60
 msgid "You are not authorized to moderate this post."
 msgstr "No estas autoritzat a moderar aquest missatge."
 
-#: ../user/forum_moderate_post_action.php:85
+#: ../user/forum_moderate_post_action.php:105
 msgid "Can't move to different category type"
 msgstr "No es pot moure a un tipus diferent de categoria"
 
-#: ../user/forum_moderate_post_action.php:89
+#: ../user/forum_moderate_post_action.php:109
 msgid "Can't move to different category"
 msgstr "No es pot moure a una categoria diferent"
 
-#: ../user/forum_moderate_post_action.php:110
+#: ../user/forum_moderate_post_action.php:130
 msgid "Not authorized to banish users"
 msgstr "No tens permís per expulsar usuaris"
 
-#: ../user/forum_moderate_post_action.php:126
+#: ../user/forum_moderate_post_action.php:146
 msgid "Banishment"
 msgstr "Expulsió"
 
-#: ../user/forum_moderate_post_action.php:128
+#: ../user/forum_moderate_post_action.php:148
 msgid "User %1 has been banished."
 msgstr "L'usuari %1 ha estat expulsat."
 
-#: ../user/forum_moderate_post_action.php:131
+#: ../user/forum_moderate_post_action.php:151
 msgid "Action failed: possible database problem"
 msgstr "L'acció a fallat: possible problema de la base de dades"
 
-#: ../user/forum_moderate_thread.php:33
+#: ../user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "no autoritzat"
 
-#: ../user/forum_moderate_thread.php:36
+#: ../user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "Moderar el fil '%1'"
 
-#: ../user/forum_moderate_thread.php:48
+#: ../user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr ""
-"Selecciona la categoria de raó, o escriu una descripció més detallada de per "
-"què ocultes o tanques el fil, i després prem OK."
+msgstr "Selecciona la categoria de raó, o escriu una descripció més detallada de per què ocultes o tanques el fil, i després prem OK."
 
-#: ../user/forum_moderate_thread.php:72
+#: ../user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "Fòrum actual"
 
-#: ../user/forum_moderate_thread.php:73
+#: ../user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "Fòrum destí"
 
-#: ../user/forum_moderate_thread.php:77
+#: ../user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "Nou títol:"
 
-#: ../user/forum_post.php:40
+#: ../user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr ""
-"Només els administradors del projecte poden crear un fil aquí. No obstant "
-"això, ppots respondre a les discussions existents."
+msgstr "Només els administradors del projecte poden crear un fil aquí. No obstant això, ppots respondre a les discussions existents."
 
-#: ../user/forum_post.php:60
+#: ../user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"El teu missatge ha estat marcat com correu brossa per Akismet el sistema "
-"anti-correu brossa. Si us plau, modifica el text i torna a intentar-ho."
+msgstr "El teu missatge ha estat marcat com correu brossa per Akismet el sistema anti-correu brossa. Si us plau, modifica el text i torna a intentar-ho."
 
-#: ../user/forum_post.php:70
+#: ../user/forum_post.php:74
 msgid "Create new thread"
 msgstr "Crear un nou fil"
 
-#: ../user/forum_post.php:100
+#: ../user/forum_post.php:104
 msgid "Create a new thread"
 msgstr "Crear un nou fil"
 
-#: ../user/forum_post.php:105
+#: ../user/forum_post.php:109
 msgid "Remember to add a title"
 msgstr "Recordi que ha de afegir un títol"
 
-#: ../user/forum_post.php:127
+#: ../user/forum_post.php:131
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "Mostra aquest article com una Notícia a l'Administrador de BOINC"
 
-#: ../user/forum_post.php:127
+#: ../user/forum_post.php:131
 msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Fer-ho només per als articles que puguin ser d'interès per a tots els "
-"voluntaris."
+msgstr "Fer-ho només per als articles que puguin ser d'interès per a tots els voluntaris."
 
-#: ../user/forum_rate.php:26
+#: ../user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "Classificació fora de línia"
 
-#: ../user/forum_rate.php:27
+#: ../user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "Aquesta opció està desactivada per el projecte"
 
-#: ../user/forum_rate.php:58
+#: ../user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
 msgstr "Necessita més crèdit mitja o crèdit total per classificar una noticia."
 
-#: ../user/forum_rate.php:62
+#: ../user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "Vostè ja és valorat aquestmissatge."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
+#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
+#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
+#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "Tornar al fil"
 
-#: ../user/forum_rate.php:72
+#: ../user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "Entrada registrada"
 
-#: ../user/forum_rate.php:73
+#: ../user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "La seva entrada ha estat registrada. Gràcies per la seva ajuda."
 
-#: ../user/forum_rate.php:75
+#: ../user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "Vot Registrat"
 
-#: ../user/forum_rate.php:76
+#: ../user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "La seva valoració ha estat enregistrada. Mercés per el seu interes."
 
-#: ../user/forum_rate.php:80
+#: ../user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "Problemes en el Enviament del Vot"
 
-#: ../user/forum_reply.php:73
+#: ../user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"El seu missatge ha estat marcat com a correu brossa pel Akismet sistema "
-"anti-spam. Si us plau, modifiqui el text i torni a intentar-ho."
+msgstr "El seu missatge ha estat marcat com a correu brossa pel Akismet sistema anti-spam. Si us plau, modifiqui el text i torni a intentar-ho."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
+#: ../user/forum_thread.php:284
 msgid "Post to thread"
 msgstr "Publiqui-ho al fil"
 
-#: ../user/forum_reply.php:137
+#: ../user/forum_reply.php:143
 msgid "Message:"
 msgstr "Missatge:"
 
-#: ../user/forum_reply.php:140
+#: ../user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "respongui a %1ID Missatge%2:"
 
-#: ../user/forum_reply.php:166
+#: ../user/forum_reply.php:172
 msgid "Post reply"
 msgstr "Respongui amb un missatge"
 
-#: ../user/forum_reply.php:169
+#: ../user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "Afegir la meva firma a aquesta resposta"
 
-#: ../user/forum_report_post.php:45
+#: ../user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"Vostè necessita més crèdit de mitjana o total per per inserir un missatge."
+msgstr "Vostè necessita més crèdit de mitjana o total per per inserir un missatge."
 
-#: ../user/forum_report_post.php:65
+#: ../user/forum_report_post.php:68
 msgid "Report Registered"
 msgstr "Informe Registrat"
 
-# 92%
-#: ../user/forum_report_post.php:66
+#: ../user/forum_report_post.php:69
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "El seu informe ha estat enregistrat. Mercès per la seva aportació."
 
-#: ../user/forum_report_post.php:67
+#: ../user/forum_report_post.php:70
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr ""
-"Un moderador ara revisarà el seu informe i decidirà què fer - això pot "
-"trigar una mica, així que si us plau sigui pacient"
+msgstr "Un moderador ara revisarà el seu informe i decidirà què fer - això pot trigar una mica, així que si us plau sigui pacient"
 
-#: ../user/forum_report_post.php:71
+#: ../user/forum_report_post.php:74
 msgid "Report a forum post"
 msgstr "Informar d'un missatge en el fòrum"
 
-#: ../user/forum_report_post.php:73
+#: ../user/forum_report_post.php:76
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"Abans d'informar d'aquest missatge, pot utilitzar sistema +/- de "
-"classificació. Si un nombre important d'usuaris valora negativament un "
-"missatge, pot ser ocultat temporalment.<br />Vostè pot trobar el sistema de "
-"valoració en la part inferior del missatge."
+msgstr "Abans d'informar d'aquest missatge, pot utilitzar sistema +/- de classificació. Si un nombre important d'usuaris valora negativament un missatge, pot ser ocultat temporalment.<br />Vostè pot trobar el sistema de valoració en la part inferior del missatge."
 
-#: ../user/forum_report_post.php:80
+#: ../user/forum_report_post.php:83
 msgid "Report post"
 msgstr "Informar d'un missatge"
 
-#: ../user/forum_report_post.php:81
+#: ../user/forum_report_post.php:84
 msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
+"Why do you find the post offensive: %1Please include enough information so that a person that\n"
 "has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Per què trobeu ofensiu el missatge: %1Si us plau, inclogui informació "
-"suficient per que qui\n"
-"no l'ha llegit pugui identificar ràpidament el problema.%2"
+msgstr "Per què trobeu ofensiu el missatge: %1Si us plau, inclogui informació suficient per que qui\nno l'ha llegit pugui identificar ràpidament el problema.%2"
 
-#: ../user/forum_report_post.php:90
+#: ../user/forum_report_post.php:93
 msgid "Report not registered"
 msgstr "Informe no registrat"
 
-#: ../user/forum_report_post.php:91
+#: ../user/forum_report_post.php:94
 msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"El seu informe no es pot registrar. Si us plau, espereu una mica i torneu a "
-"intentar-ho."
+msgstr "El seu informe no es pot registrar. Si us plau, espereu una mica i torneu a intentar-ho."
 
-#: ../user/forum_report_post.php:92
+#: ../user/forum_report_post.php:95
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Si això no és un error temporal, si us plau informeu-ne als desenvolupadors "
-"del projecte."
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Si això no és un error temporal, si us plau informeu-ne als desenvolupadors del projecte."
 
-#: ../user/forum_rss.php:41
+#: ../user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 RSS"
 
-#: ../user/forum_rss.php:42
+#: ../user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "Aquest plafó de notícies està disponible en format RSS."
 
-#: ../user/forum_rss.php:43
+#: ../user/forum_rss.php:41
 msgid "Options:"
 msgstr "Opcions:"
 
-#: ../user/forum_rss.php:47
+#: ../user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Incloure només els missatges de l'usuari amb ID %1 (per defecte: tots els "
-"usuaris)."
+msgstr "Incloure només els missatges de l'usuari amb ID %1 (per defecte: tots els usuaris)."
 
-#: ../user/forum_rss.php:49
+#: ../user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "Incloure només els missatges dels darrers %1 dies (per defecte: 30)."
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Retellar els missatges: %1 (incloure només els primers 265 caracters de cada "
-"missatge)"
-
-#: ../user/forum_rss.php:53
+#: ../user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr "Només fils: %1 (incloure només el primer missatge de cada fil)"
 
-#: ../user/forum_search.php:27
+#: ../user/forum_search.php:29
 msgid "Forum search"
 msgstr "Recerca al fòrum"
 
-#: ../user/forum_search.php:31
+#: ../user/forum_search.php:33
 msgid "Search query"
 msgstr "Executar la cerca"
 
-#: ../user/forum_search.php:32
+#: ../user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "Cerca de paraules clau:"
 
-#: ../user/forum_search.php:33
+#: ../user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "Es mostraran els missatges que continguin totes les paraules"
 
-#: ../user/forum_search.php:35
+#: ../user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "Per exemple: \"congelació de pantalla\""
 
-#: ../user/forum_search.php:36
+#: ../user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "Cercar per l'ID de l'autor:"
 
-#: ../user/forum_search.php:37
+#: ../user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "Només es mostraran els missatges d'aquest autor"
 
-#: ../user/forum_search.php:39
+#: ../user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "Per exemple: \"43214\""
 
-#: ../user/forum_search.php:41
+#: ../user/forum_search.php:43
 msgid "Search options"
 msgstr "Opcions de cerca"
 
-#: ../user/forum_search.php:42
+#: ../user/forum_search.php:44
 msgid "Search limits"
 msgstr "Límits de la cerca"
 
-#: ../user/forum_search.php:43
+#: ../user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "Cercar com a molt aquest temps enrera"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: ../user/forum_search.php:52 ../user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 mesos"
 
-#: ../user/forum_search.php:52
+#: ../user/forum_search.php:54
 msgid "1 year"
 msgstr "1 any"
 
-#: ../user/forum_search.php:73
+#: ../user/forum_search.php:55
+msgid "no limit"
+msgstr "sense límit"
+
+#: ../user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "Només mostrar els missatges d'aquest forum"
 
-#: ../user/forum_search.php:84
+#: ../user/forum_search.php:86
 msgid "Sort by"
 msgstr "Ordenar per"
 
-#: ../user/forum_search.php:88
+#: ../user/forum_search.php:90
 msgid "Start the search"
 msgstr "Iniciar la cerca"
 
-#: ../user/forum_search_action.php:141
+#: ../user/forum_search_action.php:143
 msgid "Forum search results"
 msgstr "Resultats de la recerca al fòrum"
 
-#: ../user/forum_search_action.php:174
+#: ../user/forum_search_action.php:176
 msgid "Thread titles matching your query:"
 msgstr "Fils que concorden amb la seva cerca:"
 
-#: ../user/forum_search_action.php:194
+#: ../user/forum_search_action.php:196
 msgid "Messages matching your query:"
 msgstr "Missatges que concorden amb la seva cerca:"
 
-#: ../user/forum_search_action.php:217
+#: ../user/forum_search_action.php:219
 msgid ""
 "Sorry, couldn't find anything matching your search query. You can try to "
 "broaden your search by using less words (or less specific words)."
-msgstr ""
-"Ho sentim, no hem trobat res que coincideixi amb la seva de cerca. Pot "
-"tractar d'ampliar la cerca utilitzant menys paraules (o paraules menys "
-"específiques)."
+msgstr "Ho sentim, no hem trobat res que coincideixi amb la seva de cerca. Pot tractar d'ampliar la cerca utilitzant menys paraules (o paraules menys específiques)."
 
-#: ../user/forum_search_action.php:219
+#: ../user/forum_search_action.php:221
 msgid "You can also %1try the same search on Google.%2"
 msgstr "També pot %1intentar la mateixa cerca a Google.%2"
 
-#: ../user/forum_search_action.php:224
+#: ../user/forum_search_action.php:226
 msgid "Perform another search"
 msgstr "Fer un altre cerca"
 
-#: ../user/forum_subscribe.php:46
+#: ../user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "Subscripció satisfactoria"
 
-#: ../user/forum_subscribe.php:49
+#: ../user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
-msgstr ""
-"Ara està subscrit a %1. Vostè serà notificat cada vegada que hi ha un nou "
-"missatge."
+msgstr "Ara està subscrit a %1. Vostè serà notificat cada vegada que hi ha un nou missatge."
 
-#: ../user/forum_subscribe.php:51
+#: ../user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "A fallat la subscripció"
 
-#: ../user/forum_subscribe.php:52
+#: ../user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"En aquest moments no el podem subscriure a %1. Torni a provar-ho més tard.."
+msgstr "En aquest moments no el podem subscriure a %1. Torni a provar-ho més tard.."
 
-#: ../user/forum_subscribe.php:61
+#: ../user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "Cancel·lació de la suscripció satisfactoria"
 
-#: ../user/forum_subscribe.php:64
+#: ../user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
 msgstr "Ja no està subscrit a %1. Ja no rebrà més notificacions d'aquest fil."
 
-#: ../user/forum_subscribe.php:66
+#: ../user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "Ha fallat la cancel·lació de la suscripció"
 
-#: ../user/forum_subscribe.php:67
+#: ../user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"En aquests moments no podem cancel·lar la seva suscripció a %1. Si us plau "
-"provi-ho mes tard.."
+msgstr "En aquests moments no podem cancel·lar la seva suscripció a %1. Si us plau provi-ho mes tard.."
 
-#: ../user/forum_subscribe.php:74
+#: ../user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "Acció de suscripció desconeguda"
 
-#: ../user/forum_thread.php:61
+#: ../user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "Aquest fòrum no està disponible per a vostè."
 
-#: ../user/forum_thread.php:69
+#: ../user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "Aquest fil ha estat ocultat per els moderadors."
 
-#: ../user/forum_thread.php:128
+#: ../user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "La meva pregunta ja va ser contestada"
 
-#: ../user/forum_thread.php:129
+#: ../user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "Feu clic aquí si la seva pregunta ha estat resposta adequadament"
 
-#: ../user/forum_thread.php:137
+#: ../user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "Jo també m'he fet aquesta pregunta"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
 msgid "Add a new message to this thread"
 msgstr "Afegir un nou missatge a aquest fil"
 
-#: ../user/forum_thread.php:171
+#: ../user/forum_thread.php:172
 msgid "Unsubscribe"
 msgstr "Finalitzar subscripció"
 
-#: ../user/forum_thread.php:172
+#: ../user/forum_thread.php:173
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "Vostè està subscrit a aquest fil.  Premi aquí per finalitzar-la."
 
-#: ../user/forum_thread.php:178
+#: ../user/forum_thread.php:179
 msgid "Subscribe"
 msgstr "Subscriure"
 
-#: ../user/forum_thread.php:179
+#: ../user/forum_thread.php:180
 msgid "Click to get email when there are new posts in this thread"
 msgstr "Premi per obtenir un correu quan hi hagin nous missatges en aquest fil"
 
-#: ../user/forum_thread.php:190
+#: ../user/forum_thread.php:191
 msgid "Unhide this thread"
 msgstr "Fer visible aquest fil"
 
-#: ../user/forum_thread.php:196
+#: ../user/forum_thread.php:197
 msgid "Hide this thread"
 msgstr "Ocultar aquest fil"
 
-#: ../user/forum_thread.php:202
+#: ../user/forum_thread.php:203
 msgid "Make unsticky"
 msgstr "Des enganxar-se"
 
-#: ../user/forum_thread.php:203
+#: ../user/forum_thread.php:204
 msgid "Make this thread not sticky"
 msgstr "No permetre enganxar-se a aquest fil"
 
-#: ../user/forum_thread.php:208
+#: ../user/forum_thread.php:209
 msgid "Make sticky"
 msgstr "Enganxar-se"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Permetre enganxar-se a aquest fil"
+#: ../user/forum_thread.php:210
+msgid "Make this thread always appear at top of forum"
+msgstr "Fer que aquest fil aparegui a l'inici de fòrum"
 
-#: ../user/forum_thread.php:215
+#: ../user/forum_thread.php:216
 msgid "Unlock"
 msgstr "Des bloquejar"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Des bloquejar aquest fil"
+#: ../user/forum_thread.php:217
+msgid "Allow new posts in this thread"
+msgstr "Permetre nous missatges en aquest tema"
 
-#: ../user/forum_thread.php:221
+#: ../user/forum_thread.php:222
 msgid "Lock"
 msgstr "Bloquejar"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Bloquejar aquest fil"
+#: ../user/forum_thread.php:223
+msgid "Don't allow new posts in this thread"
+msgstr "No permetre nous missatges en aquest tema"
 
-#: ../user/forum_thread.php:229
+#: ../user/forum_thread.php:230
 msgid "Move this thread to a different forum"
 msgstr "Moure aquest fil a un altre fil"
 
-#: ../user/forum_thread.php:234
+#: ../user/forum_thread.php:235
 msgid "Edit title"
 msgstr "Editar el títol"
 
-#: ../user/forum_thread.php:235
+#: ../user/forum_thread.php:236
 msgid "Edit thread title"
 msgstr "Editar el títol del fil"
 
-#: ../user/forum_thread.php:245
+#: ../user/forum_thread.php:244
+msgid "Delete thread permanently"
+msgstr "Esborra tema permanent"
+
+#: ../user/forum_thread.php:254
 msgid "Export as Notice"
 msgstr "Exportar com a Avís"
 
-#: ../user/forum_thread.php:251
+#: ../user/forum_thread.php:260
 msgid "Don't export"
 msgstr "No exportar"
 
-#: ../user/forum_thread.php:252
+#: ../user/forum_thread.php:261
 msgid "Don't export this news item as a Notice"
 msgstr "No exportar aquesta noticia com Avís"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
 msgid "Sort"
 msgstr "Ordenar"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: ../user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "S'ha actualitzat l'estat del fil"
 
-#: ../user/forum_thread_status.php:50
+#: ../user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "S'ha actualitzat l'estat."
 
-#: ../user/forum_user_posts.php:73
+#: ../user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "Missatges de %1"
 
-#: ../user/friend.php:33
+#: ../user/friend.php:35
 msgid "Already friends"
 msgstr "Ja sou amics"
 
-#: ../user/friend.php:39
+#: ../user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "Heu sol·licitat l'amistat de %1 a %2."
 
-#: ../user/friend.php:41
+#: ../user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "Aquesta petició està pendent de confirmació."
 
-#: ../user/friend.php:52
+#: ../user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 no accepta les peticions d'amistat de vostè"
 
-#: ../user/friend.php:61
+#: ../user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "Vostè no pot ser amic de vostè mateix"
 
-#: ../user/friend.php:69
+#: ../user/friend.php:71
 msgid "Add friend"
 msgstr "Afegir un amic"
 
-#: ../user/friend.php:74
+#: ../user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Vostè ha demanat que afegir %1 com amic. Li notificarem a %1 i li demanarem "
-"confirmi que són amics."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Vostè ha demanat que afegir %1 com amic. Li notificarem a %1 i li demanarem confirmi que són amics."
 
-#: ../user/friend.php:77
+#: ../user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "Afegir aquí un missatge opcional:"
 
-#: ../user/friend.php:115
+#: ../user/friend.php:117
 msgid "Friend request sent"
 msgstr "Petició d'amic lliurada"
 
-#: ../user/friend.php:116
+#: ../user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "Hem notificat a %1 la seva petició."
 
-#: ../user/friend.php:126
+#: ../user/friend.php:128
 msgid "Please log in as %1"
 msgstr "Si us plau registris com %1"
 
-#: ../user/friend.php:127
+#: ../user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "Ha de registrar-se com %1 per veure aquesta sol.licitud d'amic"
 
-#: ../user/friend.php:138
+#: ../user/friend.php:140
 msgid "Friend request"
 msgstr "Petició d'amic"
 
-#: ../user/friend.php:141
+#: ../user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 ha sol·licitat l'amistat amb vosté."
 
-#: ../user/friend.php:143
+#: ../user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 diu: %2"
 
-#: ../user/friend.php:146
+#: ../user/friend.php:148
 msgid "Accept friendship"
 msgstr "Acceptar l'amistat"
 
-#: ../user/friend.php:146
+#: ../user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "Prémer acceptar si %1 efectivament un amic"
 
-#: ../user/friend.php:147
+#: ../user/friend.php:149
 msgid "Decline"
 msgstr "Rebutjar"
 
-#: ../user/friend.php:147
+#: ../user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "Prémer rebutjar si %1 no es un amic"
 
-#: ../user/friend.php:186
+#: ../user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "Amistat confirmada"
 
-#: ../user/friend.php:187
+#: ../user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "La seva amistat amb %1 ha estat confirmada."
 
-#: ../user/friend.php:205
+#: ../user/friend.php:207
 msgid "Friendship declined"
 msgstr "Amistat rebutjada"
 
-#: ../user/friend.php:206
+#: ../user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "Ha rebutjat l'amistat amb %1"
 
-#: ../user/friend.php:221
+#: ../user/friend.php:223
 msgid "Notification not found"
 msgstr "Notificació no trobada"
 
-#: ../user/friend.php:223
+#: ../user/friend.php:225
 msgid "Friend confirmed"
 msgstr "Amic confirmat"
 
-#: ../user/friend.php:224
+#: ../user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "Ara es amic de %1."
 
-#: ../user/friend.php:232
+#: ../user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "Finalitzar l'amistat?"
 
-#: ../user/friend.php:234
+#: ../user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "Està segur de que vol finalitzar l'amistat amb %1?"
 
-#: ../user/friend.php:239
+#: ../user/friend.php:241
 msgid "Stay friends"
 msgstr "Seguir sent amics"
 
-#: ../user/friend.php:249
+#: ../user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "Amistat cancel·lada"
 
-#: ../user/friend.php:250
+#: ../user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "La seva amistat amb %1 ha estat cancel·lada."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Ha oblidat la informació del seu compte?"
-
-#: ../user/get_passwd.php:28
+#: ../user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Si coneix l'adreça de correu electrònic del seu compte, i hi pot rebre "
-"correu electrònic:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Si coneix l'adreça de correu electrònic del seu compte, i hi pot rebre correu electrònic:"
 
-#: ../user/get_passwd.php:29
+#: ../user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr ""
-"Introduïu l'adreça de correu electrònic, i premeu OK. Se li enviaràn per "
-"correu electrònic les instruccions per restablir la seva contrasenya."
+msgstr "Introduïu l'adreça de correu electrònic, i premeu OK. Se li enviaràn per correu electrònic les instruccions per restablir la seva contrasenya."
 
 #: ../user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr ""
-"2) Si ha oblidat el compte de seva l'adreça de correu electrònic, o no hi "
-"pot rebre correu electrònic:"
+msgstr "2) Si ha oblidat el compte de seva l'adreça de correu electrònic, o no hi pot rebre correu electrònic:"
 
 #: ../user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr ""
-"Si heu executat BOINC amb aquest compte, pot accedir-hi. Així és com ho ha "
-"de fer:"
+msgstr "Si heu executat BOINC amb aquest compte, pot accedir-hi. Així és com ho ha de fer:"
 
 #: ../user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
-"Ves a la carpeta de dades de BOINC del teu ordinador (la localització es "
-"troba a l'inici del registre de'esdeveniments)"
+msgstr "Ves a la carpeta de dades de BOINC del teu ordinador (la localització es troba a l'inici del registre de'esdeveniments)"
 
 #: ../user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-"Cerqui l'arxiu del seu compte per a aquest projecte, que s'anomena <b>%"
-"1</b>."
+msgstr "Cerqui l'arxiu del seu compte per a aquest projecte, que s'anomena <b>%1</b>."
 
 #: ../user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Obri l'arxiu en un editor de text com el Bloc de notes. Veurà alguna cosa "
-"com"
+msgstr "Obri l'arxiu en un editor de text com el Bloc de notes. Veurà alguna cosa com"
 
 #: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Seleccioni i copií la cadena d'entre %1 i %2 (%3 en l'exemple anterior)."
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Seleccioni i copií la cadena d'entre %1 i %2 (%3 en l'exemple anterior)."
 
 #: ../user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
@@ -4690,25 +4498,30 @@ msgstr "Enganxi la cadena en el camp de sota i premi CORRECTE."
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr ""
-"Ara podrà accedir al seu compte, actualitzi el correu electrònic i la "
-"contrasenya del seu compte."
+msgstr "Ara podrà accedir al seu compte, actualitzi el correu electrònic i la contrasenya del seu compte."
 
 #: ../user/get_passwd.php:71
 msgid "Log in with authenticator"
 msgstr "Registrar-se amb autenticador"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: ../user/get_passwd.php:81
+msgid "Forgot your account info?"
+msgstr "Ha oblidat la informació del seu compte?"
+
+#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "No s'ha informat cap tasca GPU"
 
-#: ../user/gpu_list.php:183
+#: ../user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Els millors models de GPU"
+
+#: ../user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Les llistes següents mostren els models de GPU més productius en diferents "
-"plataformes.  Les velocitats relatives es mostren entre parèntesis."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Les llistes següents mostren els models de GPU més productius a diferents plataformes.  Les velocitats relatives, mesurades per la mitjana dels temps de les tasques, es mostren entre parèntesis."
 
 #: ../user/home.php:42
 msgid "Welcome to %1"
@@ -4716,14 +4529,16 @@ msgstr "Benvingut a %1"
 
 #: ../user/home.php:43
 msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Revisi i editi les preferències del seu compte utilitzant els vincles "
-"següents."
+msgstr "Revisi i editi les preferències del seu compte utilitzant els vincles següents."
 
 #: ../user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr "Si encara no ho ha fet, %1descarregui el programari client de BOINC %2."
 
+#: ../user/home.php:49 ../project.sample/project.inc:70
+msgid "Your account"
+msgstr "El seu compte"
+
 #: ../user/host_app_versions.php:37
 msgid "Anonymous platform, missing app"
 msgstr "Plataforma anònima, falta l'aplicació"
@@ -4777,10 +4592,7 @@ msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"No pot eliminar l'historial d'aquest equip, ja que la nostra base de dades "
-"conté encara treballs per ell. Ha d'esperar uns dies fins que la feina "
-"d'aquest equip hagi estat esborrada de la base de dades del projecte."
+msgstr "No pot eliminar l'historial d'aquest equip, ja que la nostra base de dades conté encara treballs per ell. Ha d'esperar uns dies fins que la feina d'aquest equip hagi estat esborrada de la base de dades del projecte."
 
 #: ../user/host_delete.php:40
 msgid "Delete record of computer"
@@ -4804,11 +4616,9 @@ msgstr "Combinar ordinadors"
 
 #: ../user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"De vegades BOINC assigna per error diferents identitats al mateix equip. Pot "
-"corregir això combinant les identitats antigues amb la més recent."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "De vegades BOINC assigna per error diferents identitats al mateix equip. Pot corregir això combinant les identitats antigues amb la més recent."
 
 #: ../user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
@@ -4821,9 +4631,7 @@ msgstr "Mostrar els detalls"
 #: ../user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"Comprovar els equips que són els mateixos que el %1 (creat %2, ID ordinador "
-"%3):"
+msgstr "Comprovar els equips que són els mateixos que el %1 (creat %2, ID ordinador %3):"
 
 #: ../user/host_edit_form.php:70 ../user/workunit.php:39
 msgid "name"
@@ -4845,10 +4653,14 @@ msgstr "no hi ha nom de l'ordinador central"
 msgid "Merge hosts"
 msgstr "Combinar ordinadors"
 
-#: ../user/host_update_credit.php:28
+#: ../user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "Actualitzant el crèdit de l'ordinador"
 
+#: ../user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "S'ha actualitzat el crèdit en el servidor"
+
 #: ../user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "Posició del ervidor actualitzada"
@@ -4865,9 +4677,7 @@ msgstr "La posició d'aquest servidor s'ha establert a %1."
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
-msgstr ""
-"Aquest canvi tindrà efecte la pròxima vegada que el servidor es comuniqui "
-"amb aquest projecte."
+msgstr "Aquest canvi tindrà efecte la pròxima vegada que el servidor es comuniqui amb aquest projecte."
 
 #: ../user/host_venue_action.php:50
 msgid "Return to host page"
@@ -4884,9 +4694,7 @@ msgstr "Ordinadors ocults"
 #: ../user/hosts_user.php:56
 msgid ""
 "This user has chosen not to show information about his or her computers."
-msgstr ""
-"Aquest usuari ha optat per no mostrar informació sobre ell o els seus "
-"equips."
+msgstr "Aquest usuari ha optat per no mostrar informació sobre ell o els seus equips."
 
 #: ../user/hosts_user.php:64
 msgid "Your computers"
@@ -4926,16 +4734,18 @@ msgstr "preformatejat"
 
 #: ../user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"imatge; l'alçada no pot superar els 450 píxels. Si us plau, no enllaceu amb "
-"les imatges sense el permís del lloc web on es troba la imatge."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "imatge; l'alçada no pot superar els 450 píxels. Si us plau, no enllaceu amb les imatges sense el permís del lloc web on es troba la imatge."
 
 #: ../user/html.php:35
 msgid "You can also use ampersand notation for special characters."
 msgstr "També pot utilitzar la notació amb ampersand per caràcters especials."
 
+#: ../user/info.php:24 ../user/sample_index.php:78
+msgid "Read our rules and policies"
+msgstr "Llegiu les regles i normes nostres"
+
 #: ../user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "Executeu %1 només en ordinadors autoritzats"
@@ -4945,10 +4755,7 @@ msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"Executi %1 només en els ordinadors propis, o per els que ha obtingut "
-"autorització del propietari. Algunes companyies i escoles tenen normes que "
-"prohibeixen la utilització dels seus ordinadors per projectes com %1."
+msgstr "Executi %1 només en els ordinadors propis, o per els que ha obtingut autorització del propietari. Algunes companyies i escoles tenen normes que prohibeixen la utilització dels seus ordinadors per projectes com %1."
 
 #: ../user/info.php:38
 msgid "How %1 will use your computer"
@@ -4959,19 +4766,13 @@ msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"Quan executeu %1 en el vostre ordinador, utilitzarà part de la potència de "
-"la CPU, espai en disc, i ample de banda de la xarxa. Podeu controlar la "
-"quantitat de recursos utilitzats per %1, i quan els utilitza."
+msgstr "Quan executeu %1 en el vostre ordinador, utilitzarà part de la potència de la CPU, espai en disc, i ample de banda de la xarxa. Podeu controlar la quantitat de recursos utilitzats per %1, i quan els utilitza."
 
 #: ../user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"El treball realitzat per el vostre ordinador contribueix a assolir les fites "
-"de %1, tal i com és descrit a la seva pàgina web. L’aplicació pot canviar "
-"en el temps."
+msgstr "El treball realitzat per el vostre ordinador contribueix a assolir les fites de %1, tal i com és descrit a la seva pàgina web. L’aplicació pot canviar en el temps."
 
 #: ../user/info.php:42
 msgid "Privacy policy"
@@ -4979,15 +4780,11 @@ msgstr "Normes de privadesa"
 
 #: ../user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"El vostre compte a %1 s'identifica per el nom que escolliu. Aquest nom es "
-"pot mostrar a la pàgina web de %1, amb un resum de la feina que vostre "
-"ordinador ha realitzat per a %1. Si voleu romandre anònim, escolliu un nom "
-"que no reveli la vostre identitat."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "El vostre compte a %1 s'identifica per el nom que escolliu. Aquest nom es pot mostrar a la pàgina web de %1, amb un resum de la feina que vostre ordinador ha realitzat per a %1. Si voleu romandre anònim, escolliu un nom que no reveli la vostre identitat."
 
 #: ../user/info.php:44
 msgid ""
@@ -4996,24 +4793,14 @@ msgid ""
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Si participeu a %1, informació respecte el vostre ordinador (com el tipus de "
-"processador, quantitat de memòria, etc.) serà registrada per %1 i "
-"utilitzada per decidir el tipus de feina a assignar al vostre ordinador. "
-"Aquesta informació també es mostrarà a les pàgines web de %1. No es mostrarà "
-"res que pugui revelar la localització del vostre ordinador (per exemple el "
-"seu nom de domini o adreça de xarxa)."
+msgstr "Si participeu a %1, informació respecte el vostre ordinador (com el tipus de processador, quantitat de memòria, etc.) serà registrada per %1 i utilitzada per decidir el tipus de feina a assignar al vostre ordinador. Aquesta informació també es mostrarà a les pàgines web de %1. No es mostrarà res que pugui revelar la localització del vostre ordinador (per exemple el seu nom de domini o adreça de xarxa)."
 
 #: ../user/info.php:45
 msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Per participar a %1, heu de subministrar una adreça on rebre correu "
-"electrònic. Aquesta adreça de correu no es mostrarà a la pàgina web de %1 o "
-"d'organitzacions associades. %1 podrà enviar-vos noticies periòdicament; en "
-"qualsevol cas, podeu optar per cancel·lar-ho."
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Per participar a %1, heu de subministrar una adreça on rebre correu electrònic. Aquesta adreça de correu no es mostrarà a la pàgina web de %1 o d'organitzacions associades. %1 podrà enviar-vos noticies periòdicament; en qualsevol cas, podeu optar per cancel·lar-ho."
 
 #: ../user/info.php:46
 msgid ""
@@ -5022,24 +4809,15 @@ msgid ""
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"El missatges privats a la web %1 només son visibles per qui els envia i el "
-"receptor.  %1 no comprova ni restringeix el continguts del missatges "
-"privats.  Si rep un missatge privat no desitjat d'un altre usuari %1, pot "
-"afegir-lo en el seu %2filtre de missatges%3.  Això evitarà que vegi cap "
-"missatge públic o privat d'aquest usuari."
+msgstr "El missatges privats a la web %1 només son visibles per qui els envia i el receptor.  %1 no comprova ni restringeix el continguts del missatges privats.  Si rep un missatge privat no desitjat d'un altre usuari %1, pot afegir-lo en el seu %2filtre de missatges%3.  Això evitarà que vegi cap missatge públic o privat d'aquest usuari."
 
 #: ../user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Si utilitza els fòrums de la nostra web ha de seguir les %2normes%3.  Els "
-"missatges que enviï missatges als fòrums de %1 seran visibles per tothom, "
-"inclosos els que no son membres.  Lliurant els missatges al fòrum, esteu "
-"autoritzant de forma incondicional a tothom a veure'ls i copiar-los."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Si utilitza els fòrums de la nostra web ha de seguir les %2normes%3.  Els missatges que enviï missatges als fòrums de %1 seran visibles per tothom, inclosos els que no son membres.  Lliurant els missatges al fòrum, esteu autoritzant de forma incondicional a tothom a veure'ls i copiar-los."
 
 #: ../user/info.php:48
 msgid "Is it safe to run %1?"
@@ -5049,35 +4827,23 @@ msgstr "Es segura l'execució de %1?"
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Sempre que descarregueu un programa d'Internet pot passar que: el programa "
-"tingui errors perillosos, o que el servidor de descàrrega hagi estat "
-"manipulat. %1 ha treballat per minimitzar aquests riscos. Hem verificat amb "
-"cura les nostres aplicacions. Els nostres servidors estan protegits per "
-"tallafocs que estan configurats per alta seguretat. Per assegurar la "
-"integritat de la descàrrega dels programes, tots els programes disposen "
-"d'una signatura digital en un ordinador que no està connectat a Internet."
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Sempre que descarregueu un programa d'Internet pot passar que: el programa tingui errors perillosos, o que el servidor de descàrrega hagi estat manipulat. %1 ha treballat per minimitzar aquests riscos. Hem verificat amb cura les nostres aplicacions. Els nostres servidors estan protegits per tallafocs que estan configurats per alta seguretat. Per assegurar la integritat de la descàrrega dels programes, tots els programes disposen d'una signatura digital en un ordinador que no està [...]
 
 #: ../user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Les aplicacions executades per %1 poden causar l’escalfament d'alguns "
-"ordinadors. Si passa això, atureu l'execució de %1 o utilitzeu un %2programa"
-"%3 que limiti la utilització de la CPU."
+msgstr "Les aplicacions executades per %1 poden causar l’escalfament d'alguns ordinadors. Si passa això, atureu l'execució de %1 o utilitzeu un %2programa%3 que limiti la utilització de la CPU."
 
 #: ../user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 ha estat desenvolupada per %2. BOINC ha estat desenvolupada a la "
-"Universitat de Califòrnia."
+msgstr "%1 ha estat desenvolupada per %2. BOINC ha estat desenvolupada a la Universitat de Califòrnia."
 
 #: ../user/info.php:53
 msgid "Liability"
@@ -5086,11 +4852,9 @@ msgstr "Responsabilitats"
 #: ../user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 i %2 no assumeixen responsabilitats per danys al vostre ordinador, pèrdua "
-"de informació, o qualsevol altre incidència deguda a la participació a %1."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 i %2 no assumeixen responsabilitats per danys al vostre ordinador, pèrdua de informació, o qualsevol altre incidència deguda a la participació a %1."
 
 #: ../user/info.php:56
 msgid "Other BOINC projects"
@@ -5098,24 +4862,17 @@ msgstr "Altres projectes BOINC"
 
 #: ../user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"Altres projectes utilitzen la mateixa plataforma, BOINC, com %1. Podeu "
-"considerar la participació a un o mes d'aquests projectes. Fent això, el "
-"vostre ordinador executarà feina útil encara que %1 no tingui feina "
-"disponible."
+msgstr "Altres projectes utilitzen la mateixa plataforma, BOINC, com %1. Podeu considerar la participació a un o mes d'aquests projectes. Fent això, el vostre ordinador executarà feina útil encara que %1 no tingui feina disponible."
 
 #: ../user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"Aquests altres projectes no estan associats amb %1, i no podem garantir la "
-"seva seguretat o la naturalesa de la seva recerca. Uniu-vos-hi sota la "
-"vostra responsabilitat."
+msgstr "Aquests altres projectes no estan associats amb %1, i no podem garantir la seva seguretat o la naturalesa de la seva recerca. Uniu-vos-hi sota la vostra responsabilitat."
 
 #: ../user/language_select.php:47
 msgid "Language selection"
@@ -5125,18 +4882,13 @@ msgstr "Selecció d'idioma"
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
-msgstr ""
-"Aquest lloc web està disponible en diversos idiomes. L'idioma seleccionat "
-"actualment és: %1."
+msgstr "Aquest lloc web està disponible en diversos idiomes. L'idioma seleccionat actualment és: %1."
 
 #: ../user/language_select.php:78
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Normalment, l'elecció de la llengua està determinada per la configuració "
-"d'idioma del seu navegador, que és: %1.  Podeu canviar aquesta configuració "
-"utilitzant:"
+msgstr "Normalment, l'elecció de la llengua està determinada per la configuració d'idioma del seu navegador, que és: %1.  Podeu canviar aquesta configuració utilitzant:"
 
 #: ../user/language_select.php:83
 msgid "Firefox: Tools/Options/General"
@@ -5151,10 +4903,7 @@ msgid ""
 "Or you can select a language by clicking on one of the links.  This will "
 "send your browser a cookie; make sure your browser accepts cookies from our "
 "domain."
-msgstr ""
-"O pot seleccionar un idioma fent clic en un dels enllaços.  Això enviarà al "
-"seu navegador una galeta, assegureu-vos que el vostre navegador accepti "
-"galetes del nostre domini."
+msgstr "O pot seleccionar un idioma fent clic en un dels enllaços.  Això enviarà al seu navegador una galeta, assegureu-vos que el vostre navegador accepti galetes del nostre domini."
 
 #: ../user/language_select.php:95
 msgid "Language name (click to select)"
@@ -5166,33 +4915,11 @@ msgstr "Utilitzar la configuració d'idioma del navegador"
 
 #: ../user/language_select.php:113
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Les traduccions són realitzades per voluntaris.  Si la seva llengua materna "
-"no és aquí, %1vosté pot proporcionar una traducció%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Adreça de correu:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "a oblidat l'adreça de correu electrònic?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Contrasenya:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "ha oblidat la contrasenya?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Segueixi connectat"
+"Translations are done by volunteers.  If your native language is not here, "
+"%1you can provide a translation%2."
+msgstr "Les traduccions són realitzades per voluntaris.  Si la seva llengua materna no és aquí, %1vosté pot proporcionar una traducció%2."
 
-#: ../user/login_form.php:62
+#: ../user/login_form.php:57
 msgid "or %1create an account%2."
 msgstr "o %1crei un compte%2."
 
@@ -5216,14 +4943,7 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"Aquesta operació combina els equips en base al seu nom de domini.\n"
-"        <p>\n"
-"        Per a cada nom de domini, es combinaran tots els ordinadors més "
-"antics\n"
-"        amb aquest nom amb el nou equip que tingui aquest nom.\n"
-"        Els ordinadors no compatibles no es poden combinar.\n"
-"        <p>"
+msgstr "Aquesta operació combina els equips en base al seu nom de domini.\n        <p>\n        Per a cada nom de domini, es combinaran tots els ordinadors més antics\n        amb aquest nom amb el nou equip que tingui aquest nom.\n        Els ordinadors no compatibles no es poden combinar.\n        <p>"
 
 #: ../user/merge_by_name.php:82
 msgid "Go ahead and do this"
@@ -5239,11 +4959,7 @@ msgid ""
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"Per augmentar al màxim la discussió i el flux d'informació,\n"
-"els taulers de missatges són moderats.\n"
-"Els missatges publicats estan subjectes a les següents normes:\n"
+msgstr "\nPer augmentar al màxim la discussió i el flux d'informació,\nels taulers de missatges són moderats.\nEls missatges publicats estan subjectes a les següents normes:\n"
 
 #: ../user/moderation.php:30
 msgid ""
@@ -5252,8 +4968,7 @@ msgid ""
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5282,48 +4997,7 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Els moderadors poden esborrar missatges que violin qualsevol d'aquestes "
-"regles.\n"
-"Els autors dels missatges esborrats seran notificats via correu electrònic.\n"
-"Delinqüents poden tenir la capacitat de poder publicar missatges tot hi "
-"estar revocat temporalment\n"
-"(encara que per evitar l'abús només els administradors tenen la capacitat de "
-"fer-ho).\n"
-"Accessos de mala conducta (\"analitzar\" missatges per atrapar a la\n"
-"adreces IP dels altres participants, creació excessiu de missatges per "
-"omplir d'spam\n"
-"els fòrums, etc), mentre que no figuren en les regles formals, pot\n"
-"donar lloc a sancions similars.\n"
-"<p>\n"
-"Si vostè creu que un missatge viola alguna de les regles de compatibilitat,\n"
-"feu clic a la X vermella al pal i omplir el formulari ;\n"
-"els moderadors seran notificats de la seva queixa.\n"
-"Empreu aquest botó només per violacions clares - no\n"
-"disputes personals.\n"
-"<p>\n"
-"Tractem de ser el més just com ens sigui possible, quan a la moderació,\n"
-"però en una gran comunitat d'usuaris, amb molts punts de vista diferents,\n"
-"sempre hi haurà algunes persones que no estaran d'acord\n"
-"amb les nostres decisions de moderació.\n"
-"Si bé lamentem que això passi,\n"
-"tingui en compte que no podem satisfer a tot el poble tot el temps\n"
-"i s'han de prendre decisions basades en els nostres recursos i\n"
-"el que és millor per al fòrum en general.\n"
-"Si us plau, no parlar de la nostra política de moderació en els fòrums. "
-"Nosaltres no som\n"
-"un projecte d'enginyeria social, ni estem en el negoci de crear\n"
-"un sistema perfectament just. Així que aquestes discussions tendeixen a ser "
-"contraproduents\n"
-"i potencialment incendiària. Si vostè té un reclam legítim,\n"
-"enviar un correu electrònic a l'adreça d'abaix.\n"
-"<p>\n"
-"Aquesta política de moderació és fixat per %1 del projecte.\n"
-"Si teniu algun comentari sobre la política, envieu un correu electrònic a %"
-"2.\n"
-"\n"
+msgstr "\n<p>\nEls moderadors poden esborrar missatges que violin qualsevol d'aquestes regles.\nEls autors dels missatges esborrats seran notificats via correu electrònic.\nDelinqüents poden tenir la capacitat de poder publicar missatges tot hi estar revocat temporalment\n(encara que per evitar l'abús només els administradors tenen la capacitat de fer-ho).\nAccessos de mala conducta (\"analitzar\" missatges per atrapar a la\nadreces IP dels altres participants, creació excessiu de missat [...]
 
 #: ../user/pending.php:66
 msgid "Pending credit"
@@ -5369,273 +5043,255 @@ msgstr "No teniu missatges privats."
 msgid "Sender and date"
 msgstr "Envio i data"
 
-#: ../user/pm.php:106
+#: ../user/pm.php:111
 msgid "Reply to this message"
 msgstr "Respondre a aquest missatge"
 
-#: ../user/pm.php:107
+#: ../user/pm.php:112
 msgid "Delete this message"
 msgstr "Esborrar aquest missatge"
 
-#: ../user/pm.php:112
+#: ../user/pm.php:117
 msgid "Select all"
 msgstr "Selecciona-ho tot"
 
-#: ../user/pm.php:114
+#: ../user/pm.php:119
 msgid "Unselect all"
 msgstr "Deseleccionar tots"
 
-#: ../user/pm.php:117
+#: ../user/pm.php:122
 msgid "Delete selected messages"
 msgstr "Esborrar el missatges seleccionats"
 
-#: ../user/pm.php:140
+#: ../user/pm.php:145
 msgid "Sender"
 msgstr "Enviar"
 
-#: ../user/pm.php:143
+#: ../user/pm.php:148
 msgid "Date"
 msgstr "Data"
 
-#: ../user/pm.php:185
+#: ../user/pm.php:190
 msgid "You need to fill all fields to send a private message"
 msgstr "Necessita omplir tots els camps per enviar un missatge privat"
 
-#: ../user/pm.php:188
+#: ../user/pm.php:193
 msgid ""
 "Your message was flagged as spam\n"
 "                by the Akismet anti-spam system.\n"
 "                Please modify your text and try again."
-msgstr ""
-"El teu missatge ha estat marcat com correu brossa\n"
-"                per Akismet el sistema anti-correu brossa.\n"
-"                Si us plau, modifica el text i torna a intentar-ho."
+msgstr "El teu missatge ha estat marcat com correu brossa\n                per Akismet el sistema anti-correu brossa.\n                Si us plau, modifica el text i torna a intentar-ho."
 
-#: ../user/pm.php:205
+#: ../user/pm.php:210
 msgid "Could not find user with id %1"
 msgstr "No es pot trobar l'usuari amb l'identificador %1"
 
-#: ../user/pm.php:210
+#: ../user/pm.php:215
 msgid "Could not find user with username %1"
 msgstr "No es pot trobar l'usuari de nom %1"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: ../user/pm.php:217
 msgid "%1 is not a unique username; you will have to use user ID"
 msgstr "%1 no es un nom d'usuari únic; teniu que utilitzar l'identificador ID"
 
-#: ../user/pm.php:217
+#: ../user/pm.php:222
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr "L'usuari %1 (ID: %2) no accepta missatges privats de vostè."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: ../user/pm.php:245 ../user/view_profile.php:28
 msgid "No such user"
 msgstr "No existeix l'usuari"
 
-#: ../user/pm.php:242
+#: ../user/pm.php:247
 msgid "Really block %1?"
 msgstr "Segur de bloquejar %1?"
 
-#: ../user/pm.php:243
+#: ../user/pm.php:248
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr ""
-"Està segur que vol bloquejar que l'usuari %1 li enviï missatges privats?"
+msgstr "Està segur que vol bloquejar que l'usuari %1 li enviï missatges privats?"
 
-#: ../user/pm.php:244
+#: ../user/pm.php:249
 msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Si us plau, tingui en compte que només pot bloquejar un nombre limitat "
-"d'usuaris."
+msgstr "Si us plau, tingui en compte que només pot bloquejar un nombre limitat d'usuaris."
 
-#: ../user/pm.php:245
+#: ../user/pm.php:250
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr ""
-"Un cop bloquejat un usuari el podeu desbloquejar utilitzant la pàgina de "
-"preferències del fòrum."
+msgstr "Un cop bloquejat un usuari el podeu desbloquejar utilitzant la pàgina de preferències del fòrum."
 
-#: ../user/pm.php:252
+#: ../user/pm.php:257
 msgid "No, cancel"
 msgstr "No, cancel·lar"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: ../user/pm.php:265 ../user/team_admins.php:100
 msgid "no such user"
 msgstr "aquest usuari no existeix"
 
-#: ../user/pm.php:263
+#: ../user/pm.php:268
 msgid "User %1 blocked"
 msgstr "L'usuari %1 està bloquejat"
 
-#: ../user/pm.php:265
+#: ../user/pm.php:270
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "L'usuari %1 té bloquejat el lliurament de missatges privats a vostè."
 
-#: ../user/pm.php:266
+#: ../user/pm.php:271
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "Per desbloquejar, visiti les %1preferències del panell de missatges%2"
 
-#: ../user/pm.php:302
+#: ../user/pm.php:307
 msgid "Unknown action"
 msgstr "Acció desconeguda"
 
-#: ../user/prefs.php:32
+#: ../user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Les seves preferències han estat actualitzades, i\n"
-"          entraràn en efecte quan l'ordinador es comuniqui amb %1\n"
-"          o utilitzi el comando %2Actualitzar%3 de l'Administrador BOINC."
+msgstr "Les seves preferències han estat actualitzades, i\n          entraràn en efecte quan l'ordinador es comuniqui amb %1\n          o utilitzi el comando %2Actualitzar%3 de l'Administrador BOINC."
 
-#: ../user/prefs.php:41
+#: ../user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Les teves preferències s'ha restablert als valors predeterminats, i\n"
-"          es faran efectius quan l'equip es comuniqui amb %1\n"
-"          o executis el comando %2 Actualitzar%3 des de l'Administrador de "
-"BOINC."
+msgstr "Les teves preferències s'ha restablert als valors predeterminats, i\n          es faran efectius quan l'equip es comuniqui amb %1\n          o executis el comando %2 Actualitzar%3 des de l'Administrador de BOINC."
 
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
 msgid "%1 for %2"
 msgstr "%1 de %2"
 
-#: ../user/prefs_edit.php:110
+#: ../user/prefs_edit.php:112
 msgid "Back to preferences"
 msgstr "Tornar a les preferències"
 
-#: ../user/prefs_remove.php:45
+#: ../user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "Confirmeu l'eliminació de les preferències"
 
-#: ../user/prefs_remove.php:48
+#: ../user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr "Estàs segur que voleu suprimir les preferències independents %1 de %2?"
 
-#: ../user/prefs_remove.php:52
+#: ../user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "Eliminar preferències"
 
-#: ../user/prefs_remove.php:54
+#: ../user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "Cancel·lar"
 
-#: ../user/profile_menu.php:35
+#: ../user/profile_menu.php:34 ../user/sample_index.php:119
+msgid "Profiles"
+msgstr "Perfils"
+
+#: ../user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"els %1Perfils%2 permet als usuaris compartir experiències i opinions amb la "
-"comunitat %3."
+msgstr "els %1Perfils%2 permet als usuaris compartir experiències i opinions amb la comunitat %3."
 
-#: ../user/profile_menu.php:36
+#: ../user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
-msgstr ""
-"Explori la diversitat de voluntaris com vostè, i contribueixi amb les seves "
-"opinions per que en gaudeixin altres."
+msgstr "Explori la diversitat de voluntaris com vostè, i contribueixi amb les seves opinions per que en gaudeixin altres."
 
-#: ../user/profile_menu.php:37
+#: ../user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"Si no ho ha fet encara, pot %1crear el seu propi perfil%2 per que les altres "
-"el puguin veure!"
+msgstr "Si no ho ha fet encara, pot %1crear el seu propi perfil%2 per que les altres el puguin veure!"
 
-#: ../user/profile_menu.php:42
+#: ../user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "Usuari del Dia"
 
-#: ../user/profile_menu.php:57
+#: ../user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "Explorador de Perfils d'Usuari"
 
-#: ../user/profile_menu.php:60
+#: ../user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "Veure la %1Galeria d'Imatges de l'Usuari%2."
 
-#: ../user/profile_menu.php:61
+#: ../user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "Veure els perfils %1per país%2."
 
-#: ../user/profile_menu.php:62
+#: ../user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr ""
-"Veure els perfils %1a l'atzar%2, %3a l'atzar amb imatges%2, or %4a l'atzar "
-"sense imatges%2."
+msgstr "Veure els perfils %1a l'atzar%2, %3a l'atzar amb imatges%2, or %4a l'atzar sense imatges%2."
 
-#: ../user/profile_menu.php:66
+#: ../user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "Llistat alfabètic de perfils:"
 
-#: ../user/profile_menu.php:72
+#: ../user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "Cerca un text en el perfil"
 
-#: ../user/profile_menu.php:98
+#: ../user/profile_menu.php:100
 msgid "No profiles"
 msgstr "No hi ha perfils"
 
-#: ../user/profile_menu.php:99
+#: ../user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "No hi ha perfils que coincideixin amb la seva cerca."
 
-#: ../user/profile_rate.php:29
+#: ../user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "Tipus de vot incorrecte:"
 
-#: ../user/profile_rate.php:34
+#: ../user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "Vot registrat"
 
-#: ../user/profile_rate.php:38
+#: ../user/profile_rate.php:40
 msgid "Thank you"
 msgstr "Mercès"
 
-#: ../user/profile_rate.php:41
+#: ../user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "La seva recomanació ha estat enregistrada."
 
-#: ../user/profile_rate.php:43
+#: ../user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "El vot per rebutjar aquest perfil ha estat enregistrat."
 
-#: ../user/profile_rate.php:46
+#: ../user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "Torna al perfil."
 
-#: ../user/profile_search_action.php:36
+#: ../user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "Perfils que continguin '%1'"
 
-#: ../user/profile_search_action.php:40
+#: ../user/profile_search_action.php:42
 msgid "User name"
 msgstr "Nom d'usuari"
 
-#: ../user/profile_search_action.php:41
+#: ../user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "Projecte adjuntat"
 
-#: ../user/profile_search_action.php:44
+#: ../user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "Crèdit recent"
 
-#: ../user/profile_search_action.php:54
+#: ../user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "No s'han trobat perfils que continguin '%1'"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Tasca %1"
+#: ../user/result.php:33
+msgid "No such task:"
+msgstr "Tasca inexistent:"
 
 #: ../user/results.php:29
 msgid "This feature is turned off temporarily"
@@ -5657,149 +5313,61 @@ msgstr "Falta L'ID de l'usuari o del servidor"
 msgid "No tasks to display"
 msgstr "No hi ha tasques per mostrar"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Executant"
+#: ../user/sample_index.php:195
+msgid "User of the day"
+msgstr "Usuari del dia"
 
-#: ../user/server_status.php:100
+#: ../user/server_status.php:59
 msgid "Not Running"
 msgstr "Aturat"
 
-#: ../user/server_status.php:103
+#: ../user/server_status.php:63
+msgid "Running"
+msgstr "Executant"
+
+#: ../user/server_status.php:67
 msgid "Disabled"
 msgstr "Desactivat"
 
-#: ../user/server_status.php:231
+#: ../user/server_status.php:105
 msgid "Project status"
 msgstr "Estat del projecte"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Versió del programari servidor: %1"
+#: ../user/server_status.php:110
+msgid "Server status"
+msgstr "Estat del servidor"
 
-#: ../user/server_status.php:241
+#: ../user/server_status.php:113
 msgid "Program"
 msgstr "Programa"
 
-#: ../user/server_status.php:241
+#: ../user/server_status.php:113
 msgid "Host"
 msgstr "Ordinador central"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "pàgines web amb dades auto-actualizables"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "carregar/baixar del servidor"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "planificador"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Executant:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "El programa està funcionant amb normalitat"
+#: ../user/server_status.php:125
+msgid "Database schema version: "
+msgstr "Versió de l'esquema de la base de dades:"
 
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "No s'està executant:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "El programa a fallat o el projecte està aturat"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Desactivat:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "El programa està desactivat"
-
-#: ../user/server_status.php:303
+#: ../user/server_status.php:138
 msgid "Computing status"
 msgstr "Estat del comput"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "El servidor de base de dades no és accessible"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Tasques a punt per enviar"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tasques en curs"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Workunits esperant la validació"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Workunits esperant l'assimilació"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Workunits esperant l'eliminació d'arxius"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Tasques esperan l'eliminació d'arxius"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Retard en les transicións (hores)"
-
-#: ../user/server_status.php:374
+#: ../user/server_status.php:153
 msgid "Users"
 msgstr "Usuaris"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "amb crèdit recent"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "amb crèdit"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "registrats en les últimes 24 hores"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "GigaFLOPs actuals"
-
-#: ../user/server_status.php:420
+#: ../user/server_status.php:165
 msgid "Tasks by application"
 msgstr "Tasques per aplicació"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "aplicació"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "no enviat"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "en progrés"
+#: ../user/server_status.php:168
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Mitjana de temps d'execució dels últims 100 resultats en hores: mitjana, mín, màx"
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "mitjana de temps d'execució dels últims 100 resultats en h (mín-màx)"
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "usuaris en les últimes 24 hores"
+#: ../user/server_status.php:169
+msgid "Users in last 24 hours"
+msgstr "Usuaris en les últimes 24 hores"
 
 #: ../user/show_host_detail.php:40
 msgid "Computer %1"
@@ -5809,753 +5377,701 @@ msgstr "Ordinador %1"
 msgid "Statistics and leaderboards"
 msgstr "Estadístiques i funcionament dels plafons"
 
-#: ../user/stats.php:28
+#: ../user/stats.php:30
 msgid "Statistics for %1"
 msgstr "Estadístiques de %1"
 
-#: ../user/stats.php:37
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/stats.php:32 ../user/top_users.php:117
+msgid "Top participants"
+msgstr "Participants principals"
+
+#: ../user/stats.php:40 ../user/team.php:48
+msgid "Top teams"
+msgstr "Grups principals"
+
+#: ../user/stats.php:47
+msgid "Top computers"
+msgstr "Ordinadors principals"
+
+#: ../user/stats.php:48
+msgid "GPU models"
+msgstr "Models GPU"
+
+#: ../user/stats.php:49
+msgid "CPU models"
+msgstr "models CPU"
+
+#: ../user/stats.php:53
 msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Estadístiques mes detallades de %1 i altres projectes BOINC disponibles a "
-"diverses pàgines web:"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Estadístiques mes detallades de %1 i altres projectes BOINC disponibles a diverses pàgines web:"
 
-#: ../user/stats.php:40
+#: ../user/stats.php:56
 msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
 msgstr "També pot obtenir les seves estadístiques en forma de \"imatge\":"
 
-#: ../user/stats.php:43
+#: ../user/stats.php:59
 msgid ""
 "Additionally you can get your individual statistics summed across all BOINC "
 "projects from several sites; see your %1home page%2."
-msgstr ""
-"També pot obtenir les seves estadístiques individuals com a suma de tots els "
-"projectes BOINC a partir de diverses pàgines web; vegi la seva %1pàgina "
-"principal%2."
+msgstr "També pot obtenir les seves estadístiques individuals com a suma de tots els projectes BOINC a partir de diverses pàgines web; vegi la seva %1pàgina principal%2."
 
 #: ../user/team.php:27
+msgid "Teams"
+msgstr "Equips"
+
+#: ../user/team.php:29
 msgid "%1 participants may form %2teams%3."
 msgstr "%1 participants poden formar %2equips%3."
 
-#: ../user/team.php:29
+#: ../user/team.php:31
 msgid ""
 "You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Només podeu pertànyer a un equip. Us podeu adjuntar o separar en qualsevol "
-"moment."
+msgstr "Només podeu pertànyer a un equip. Us podeu adjuntar o separar en qualsevol moment."
 
-#: ../user/team.php:31
+#: ../user/team.php:33
 msgid "Each team has a %1founder%2 who may:"
 msgstr "Cada equip te un %1fondador%2 que pot:"
 
-#: ../user/team.php:33
+#: ../user/team.php:35
 msgid "access team members' email addresses"
 msgstr "accés a les adreces de correu electrònic dels membres de l'equip"
 
-#: ../user/team.php:34
+#: ../user/team.php:36
 msgid "edit the team's name and description"
 msgstr "editar el nom i descripció de l'equip"
 
-#: ../user/team.php:35
+#: ../user/team.php:37
 msgid "add or remove team admins"
 msgstr "afegir o treure administradors d'equip"
 
-#: ../user/team.php:36
+#: ../user/team.php:38
 msgid "remove members from the team"
 msgstr "eliminar membres de l'equip"
 
-#: ../user/team.php:37
+#: ../user/team.php:39
 msgid "disband a team if it has no members"
 msgstr "dissoldre un equip si no te membres"
 
-#: ../user/team.php:40
+#: ../user/team.php:42
 msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Per adjuntar-vos a u equip, visiteu la seva pàgina i premeu %1Adjuntar-se a "
-"aquest equip%2."
+msgstr "Per adjuntar-vos a u equip, visiteu la seva pàgina i premeu %1Adjuntar-se a aquest equip%2."
 
-#: ../user/team.php:41 ../user/team_search.php:180
+#: ../user/team.php:43 ../user/team_search.php:201
 msgid "Find a team"
 msgstr "Trobar un grup"
 
-#: ../user/team.php:48
+#: ../user/team.php:50
 msgid "All teams"
 msgstr "Tots els equips"
 
-#: ../user/team.php:52
+#: ../user/team.php:54
 msgid "%1 teams"
 msgstr "%1 equips"
 
-#: ../user/team.php:58
+#: ../user/team.php:60
 msgid "Create a new team"
 msgstr "Crear un nou equip"
 
-#: ../user/team.php:59
+#: ../user/team.php:61
 msgid ""
 "If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Si no troba un equip que sigui adequat per a vostè, pot %1crear un equip%2."
+msgstr "Si no troba un equip que sigui adequat per a vostè, pot %1crear un equip%2."
 
-#: ../user/team_admins.php:34
+#: ../user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "Treure l'estatus d'Administrador de l'Equip a aquest membre"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: ../user/team_admins.php:42 ../user/team_admins.php:53
 msgid "Add or remove Team Admins"
 msgstr "Afegir o treure Administradors d'Equip"
 
-#: ../user/team_admins.php:41
+#: ../user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Vostè pot seleccionar els membres de l'equip com a 'Equip d'Administradors'. "
-"L'Equip d'Administradors pot:"
+msgstr "Vostè pot seleccionar els membres de l'equip com a 'Equip d'Administradors'. L'Equip d'Administradors pot:"
 
-#: ../user/team_admins.php:43
+#: ../user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "Editar la informació de l'equip (nom, URL, descripció, país)"
 
-#: ../user/team_admins.php:44
+#: ../user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "Veure l'historial unir-se/separar-se de l'equip"
 
-#: ../user/team_admins.php:45
+#: ../user/team_admins.php:47
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderar el fòrum d'equip, si és el cas (els administradors reben "
-"notificacions per de correu electrònic de la moderació i marca en vermell X "
-"informes)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Moderar el fòrum d'equip, si és el cas (els administradors reben notificacions per de correu electrònic de la moderació i marca en vermell X informes)"
 
-#: ../user/team_admins.php:47
+#: ../user/team_admins.php:49
 msgid "Team Admins cannot:"
 msgstr "Els Administradors de l'equip no poden:"
 
-#: ../user/team_admins.php:49
+#: ../user/team_admins.php:51
 msgid "Change the team founder"
 msgstr "Canviar el fundador de l'equip"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: ../user/team_admins.php:52 ../user/team_manage.php:56
 msgid "Remove members"
 msgstr "Eliminar membres"
 
-#: ../user/team_admins.php:53
+#: ../user/team_admins.php:55
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Si un administrador de l'equip deixa l'equip, deixerà de ser un "
-"administrador de l'equip."
+msgstr "Si un administrador de l'equip deixa l'equip, deixerà de ser un administrador de l'equip."
 
-#: ../user/team_admins.php:54
+#: ../user/team_admins.php:56
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr ""
-"Us recomanem que seleccioneu només les persones conegudes i de confieu molt "
-"bé com Administradors de l'Equip."
+msgstr "Us recomanem que seleccioneu només les persones conegudes i de confieu molt bé com Administradors de l'Equip."
 
-#: ../user/team_admins.php:59
+#: ../user/team_admins.php:61
 msgid "There are currently no Team Admins"
 msgstr "Actualment no hi ha cap Administrador d'Equip"
 
-#: ../user/team_admins.php:61
+#: ../user/team_admins.php:63
 msgid "Current Team Admins"
 msgstr "Administradors d'Equip actuals"
 
-#: ../user/team_admins.php:62
+#: ../user/team_admins.php:64
 msgid "Became Team Admin on"
 msgstr "Fer-se Administrador d'Equip de"
 
-#: ../user/team_admins.php:77
+#: ../user/team_admins.php:79
 msgid "Add Team Admin"
 msgstr "Afegir un Administrador d'Equip"
 
-#: ../user/team_admins.php:78
+#: ../user/team_admins.php:80
 msgid "Email address of team member:"
 msgstr "Adreça de correu electrònic dels membres de l'equip:"
 
-#: ../user/team_admins.php:90
+#: ../user/team_admins.php:81
+msgid "Add"
+msgstr "Afegir"
+
+#: ../user/team_admins.php:92
 msgid "failed to remove admin"
 msgstr "no s'ha pogut eliminar l'administrador"
 
-#: ../user/team_admins.php:99
+#: ../user/team_admins.php:101
 msgid "User is not member of team"
 msgstr "L'usuari no és membre de l'equip"
 
-#: ../user/team_admins.php:101
+#: ../user/team_admins.php:103
 msgid "%1 is already an admin of %2"
 msgstr "%1 ja és un administrador de %2"
 
-#: ../user/team_admins.php:105
+#: ../user/team_admins.php:107
 msgid "Couldn't add admin"
 msgstr "No s'ha pogut afegir l'administrador"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: ../user/team_admins.php:113 ../user/team_manage.php:85
+#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "Aquest equip no existeix"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: ../user/team_change_founder_action.php:32
+#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
+#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
+#: ../user/team_email_list.php:64
 msgid "no such team"
 msgstr "aquest equip no existeix"
 
-#: ../user/team_change_founder_action.php:38
+#: ../user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "L'usuari no és membre de %1"
 
-#: ../user/team_change_founder_action.php:41
+#: ../user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "Canviant el fundador de %1"
 
-#: ../user/team_change_founder_action.php:43
+#: ../user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 és ara el fundador de %2"
 
-#: ../user/team_change_founder_form.php:37
+#: ../user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "Canviar el fundador de %1"
 
-#: ../user/team_change_founder_form.php:43
+#: ../user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr ""
-"El membre de l'equip %1, va fer una petició al fundador d'aquest equip el %"
-"2, però ha deixat l'equip. per tant es cancel.la la petició."
+msgstr "El membre de l'equip %1, va fer una petició al fundador d'aquest equip el %2, però ha deixat l'equip. per tant es cancel.la la petició."
 
-#: ../user/team_change_founder_form.php:49
+#: ../user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"El membre de l'equip %1 ha contactat el fundador d'aquest equip. Això pot "
-"ser degut a que va deixar l'equip o no han tingut contacte amb l'equip "
-"durant molt de temps."
+msgstr "El membre de l'equip %1 ha contactat el fundador d'aquest equip. Això pot ser degut a que va deixar l'equip o no han tingut contacte amb l'equip durant molt de temps."
 
-#: ../user/team_change_founder_form.php:55
+#: ../user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "rebutjar la petició"
 
-#: ../user/team_change_founder_form.php:58
+#: ../user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Si no rebutja la petició de %1, %2 tindrà l'opció d'assumir la fundació de "
-"l'equip.<br /><br />\n"
-"                  Per acceptar la petició, assignar el fundador a %3 a "
-"través del formulari de sota."
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Si no rebutja la petició de %1, %2 tindrà l'opció d'assumir la fundació de l'equip.<br /><br />\n                  Per acceptar la petició, assignar el fundador a %3 a través del formulari de sota."
 
-#: ../user/team_change_founder_form.php:66
+#: ../user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "Cap sol·licitud de transferència està pendent."
 
-#: ../user/team_change_founder_form.php:69
+#: ../user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
 "member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Per assignar fundador d'aquest equip a un altre membre, marqui la casella al "
-"costat del nom d'usuari i a continuació faci clic a <strong>Canviar "
-"fundador</strong>."
+msgstr "Per assignar fundador d'aquest equip a un altre membre, marqui la casella al costat del nom d'usuari i a continuació faci clic a <strong>Canviar fundador</strong>."
 
-#: ../user/team_change_founder_form.php:76
+#: ../user/team_change_founder_form.php:78
 msgid "New founder?"
 msgstr "Nou fundador?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
 msgid "Change founder"
 msgstr "Canviar el fundador"
 
-#: ../user/team_change_founder_form.php:108
+#: ../user/team_change_founder_form.php:110
 msgid "There are no users to transfer team to."
 msgstr "No hi ha usuaris als que transferir l'equip."
 
-#: ../user/team_create_action.php:29
+#: ../user/team_create_action.php:31
 msgid "You must choose a non-blank team name"
 msgstr "Ha d'escollir un nom d'equip que no sigui en blanc"
 
-#: ../user/team_create_action.php:34
+#: ../user/team_create_action.php:36
 msgid "A team named %1 already exists - try another name"
 msgstr "Ja existeix un equip de nom %1 - provi un altre nom"
 
-#: ../user/team_create_action.php:54
+#: ../user/team_create_action.php:56
 msgid "Could not create team - please try later."
 msgstr "No es pot crear l'equip - si us plau provi-ho més tard."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
 msgid "Create a team"
 msgstr "Crear un equip"
 
-#: ../user/team_create_form.php:30
+#: ../user/team_create_form.php:32
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Vostè pertany a %1. Vostè ha de %2separar-se d'aquest equip%3 abans de "
-"crear-ne un de nou."
+msgstr "Vostè pertany a %1. Vostè ha de %2separar-se d'aquest equip%3 abans de crear-ne un de nou."
 
-#: ../user/team_delta.php:65
+#: ../user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "No hi ha fundador o administrador"
 
-#: ../user/team_delta.php:72
+#: ../user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "Història de l'equip per %1"
 
-#: ../user/team_delta.php:75
+#: ../user/team_delta.php:76
 msgid "When"
 msgstr "Quan"
 
-#: ../user/team_delta.php:76
+#: ../user/team_delta.php:77
 msgid "User"
 msgstr "Usuari"
 
-#: ../user/team_delta.php:77
+#: ../user/team_delta.php:78
 msgid "Action"
 msgstr "Acció"
 
-#: ../user/team_delta.php:78
+#: ../user/team_delta.php:79
 msgid "Total credit at time of action"
 msgstr "Crèdit total en el moment de l'acció"
 
-#: ../user/team_edit_action.php:53
+#: ../user/team_edit_action.php:55
 msgid "bad country"
 msgstr "pais erroni"
 
-#: ../user/team_edit_action.php:59
+#: ../user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "El nom de '%1' està sent utilitzat per un altre equip."
 
-#: ../user/team_edit_action.php:62
+#: ../user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "Heu d'especificar el nom de l'equip"
 
-#: ../user/team_edit_action.php:90
+#: ../user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "No es pot actualitzar l'equip - si us plau provi-ho més tard."
 
-#: ../user/team_edit_form.php:33
+#: ../user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "Editar %1"
 
-#: ../user/team_edit_form.php:34
+#: ../user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "Actualitzar la informació de l'equip"
 
-#: ../user/team_email_list.php:61
+#: ../user/team_email_list.php:70
 msgid "%1 Email List"
 msgstr "%1 Llista de correu electrònic"
 
-#: ../user/team_email_list.php:63
+#: ../user/team_email_list.php:72
 msgid "Member list of %1"
 msgstr "Llista de membres de %1"
 
-#: ../user/team_email_list.php:78
+#: ../user/team_email_list.php:87
 msgid "Show as plain text"
 msgstr "Mostra com text pla"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: ../user/team_forum.php:30 ../user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "Crear un Tauler de Missatges"
 
-#: ../user/team_forum.php:29
+#: ../user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "Vostè pot crear un tauler de missatges per a l'ús de %1."
 
-#: ../user/team_forum.php:31
+#: ../user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "Només els membres de l'equip podràn publicar-hi."
 
-#: ../user/team_forum.php:32
+#: ../user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "En la seva opció, només els membres ho podran llegir."
 
-#: ../user/team_forum.php:33
+#: ../user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr "Vostè i el seus Administradors d'Equip tindran privilegis de moderador."
 
-#: ../user/team_forum.php:40
+#: ../user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "Crea un tauler de missatges per %1"
 
-#: ../user/team_forum.php:48
+#: ../user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "L'equip ja té un tauler de missatges"
 
-#: ../user/team_forum.php:59
+#: ../user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "Tauler de Missatges de l'Equip"
 
-#: ../user/team_forum.php:71
+#: ../user/team_forum.php:73
 msgid "Minimum time between posts (seconds)"
 msgstr "Temps mínim entre peticions (segons)"
 
-#: ../user/team_forum.php:74
+#: ../user/team_forum.php:76
 msgid "Minimum total credit to post"
 msgstr "Crèdit total mínim per a enviar"
 
-#: ../user/team_forum.php:77
+#: ../user/team_forum.php:79
 msgid "Minimum average credit to post"
 msgstr "Crèdit mitja mínim per enviar"
 
-#: ../user/team_forum.php:80
+#: ../user/team_forum.php:82
 msgid "Submit"
 msgstr "Enviar"
 
-#: ../user/team_forum.php:89
+#: ../user/team_forum.php:91
 msgid "Remove your team's message board."
 msgstr "Eliminar el tauler d'missatges del seu equip."
 
-#: ../user/team_forum.php:97
+#: ../user/team_forum.php:99
 msgid "Really remove message board?"
 msgstr "Realment vol eliminar el tauler d'missatges?"
 
-#: ../user/team_forum.php:98
+#: ../user/team_forum.php:100
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"Esteu segur que voleu eliminar tauler d'missatges del seu equip? Tots els "
-"fils i missatges s'eliminaràn definitivament. (Vostè podrà, però, crear més "
-"endavant un nou tauler d'missatges)."
+msgstr "Esteu segur que voleu eliminar tauler d'missatges del seu equip? Tots els fils i missatges s'eliminaràn definitivament. (Vostè podrà, però, crear més endavant un nou tauler d'missatges)."
 
-#: ../user/team_forum.php:100
+#: ../user/team_forum.php:102
 msgid "Yes - remove message board"
 msgstr "Si - eliminar el tauler de missatges"
 
-#: ../user/team_forum.php:121
+#: ../user/team_forum.php:123
 msgid "Message board removed"
 msgstr "Tauler de missatges eliminat"
 
-#: ../user/team_forum.php:124
+#: ../user/team_forum.php:126
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"El tauler d'missatges del seu equip s'ha eliminat. Vostè ara pot %1crear-ne "
-"un de nou%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "El tauler d'missatges del seu equip s'ha eliminat. Vostè ara pot %1crear-ne un de nou%2."
 
-#: ../user/team_forum.php:143
+#: ../user/team_forum.php:145
 msgid "Team Message Board Updated"
 msgstr "Taule de Missatges de l'Equip actualitzat"
 
-#: ../user/team_forum.php:144
+#: ../user/team_forum.php:146
 msgid "Update successful"
 msgstr "Actualització satisfactoria"
 
-#: ../user/team_forum.php:147
+#: ../user/team_forum.php:149
 msgid "Update failed"
 msgstr "Error en l'actualització"
 
-#: ../user/team_forum.php:154
+#: ../user/team_forum.php:156
 msgid "Team has no forum"
 msgstr "L'equip no té cap fòrum"
 
-#: ../user/team_founder_transfer_action.php:36
+#: ../user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "Vostè ha de ser un membre d'un equip per accedir a aquesta pàgina."
 
-#: ../user/team_founder_transfer_action.php:90
+#: ../user/team_founder_transfer_action.php:92
 msgid "Requesting foundership of %1"
 msgstr "Sol.licitud al fundador de %1"
 
-#: ../user/team_founder_transfer_action.php:98
+#: ../user/team_founder_transfer_action.php:100
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"El fundador actual ha estat notificat de la seva petició per correu "
-"electrònic i missatge privat.<br /><br />\n"
-"                       Si el fundador no respon dins de 60 dies vostèpodrà "
-"convertir-se en el fundador."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "El fundador actual ha estat notificat de la seva petició per correu electrònic i missatge privat.<br /><br />\n                       Si el fundador no respon dins de 60 dies vostèpodrà convertir-se en el fundador."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: ../user/team_founder_transfer_action.php:104
+#: ../user/team_founder_transfer_action.php:115
 msgid "Foundership request not allowed now"
 msgstr "La petició al fundador no es pot fer en aquest moments"
 
-#: ../user/team_founder_transfer_action.php:109
+#: ../user/team_founder_transfer_action.php:111
 msgid "Assumed foundership of %1"
 msgstr "Assumit com fundador de %1"
 
-#: ../user/team_founder_transfer_action.php:111
+#: ../user/team_founder_transfer_action.php:113
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"Felicitacions, vostè és ara el fundador de l'equip %1. Vagi a %2Pàgina del "
-"seu compte%3 per a trobar les opcions d'administració de l'equip."
+msgstr "Felicitacions, vostè és ara el fundador de l'equip %1. Vagi a %2Pàgina del seu compte%3 per a trobar les opcions d'administració de l'equip."
 
-#: ../user/team_founder_transfer_action.php:120
+#: ../user/team_founder_transfer_action.php:122
 msgid "Decline founder change request"
 msgstr "Rebutjar la petició de canvi fundador"
 
-#: ../user/team_founder_transfer_action.php:127
+#: ../user/team_founder_transfer_action.php:129
 msgid "The foundership request from %1 has been declined."
 msgstr "La petició de fundador de %1 ha estat rebutjada."
 
-#: ../user/team_founder_transfer_action.php:130
+#: ../user/team_founder_transfer_action.php:132
 msgid "There were no foundership requests."
 msgstr "No hi han peticions de fundador."
 
-#: ../user/team_founder_transfer_action.php:134
+#: ../user/team_founder_transfer_action.php:136
 msgid "undefined action %1"
 msgstr "acció %1 desconeguda"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: ../user/team_founder_transfer_action.php:139
+#: ../user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "Tornar a la pàgina de l'equip"
 
-#: ../user/team_founder_transfer_form.php:28
+#: ../user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "Vostè necessita ser un membre d'un equip per accedir a aquesta pàgina."
 
-#: ../user/team_founder_transfer_form.php:31
+#: ../user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "Petició de fundador de %1"
 
-#: ../user/team_founder_transfer_form.php:38
+#: ../user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "Ara es fundador de l'equip %1."
 
-#: ../user/team_founder_transfer_form.php:44
+#: ../user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "La seva petició de fundador de %1 a %2."
 
-#: ../user/team_founder_transfer_form.php:47
+#: ../user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr ""
-"han transcorregut 60 dies des de la seva petició, i el fundador no ha "
-"respost. Ara pot convertir-se en fundador fent clic aquí:"
+msgstr "han transcorregut 60 dies des de la seva petició, i el fundador no ha respost. Ara pot convertir-se en fundador fent clic aquí:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: ../user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "Convertir-se en fundador"
 
-#: ../user/team_founder_transfer_form.php:54
+#: ../user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr ""
-"El fundador va ser notificat de la seva petició. Si ell/ella no respon per %"
-"1 se li donarà l'opció de convertir-se en el fundador."
+msgstr "El fundador va ser notificat de la seva petició. Si ell/ella no respon per %1 se li donarà l'opció de convertir-se en el fundador."
 
-#: ../user/team_founder_transfer_form.php:60
+#: ../user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"Si el fundador de l'equip no està actiu i vol assumir el paper de fundador, "
-"feu clic al botó de sota.  Al fundador actual se li enviarà un correu "
-"electrònicdetallant la seva petició, i podrà transferir-li la fundació a "
-"vostè oper rebutjar la seva petició. Si el fundador no respon en 60 dies, "
-"vostèpodrà convertir-se en el fundador.<br /><br />\n"
-"                       Esta segur que vol realitzar petició al fundador?"
-
-#: ../user/team_founder_transfer_form.php:65
+msgstr "Si el fundador de l'equip no està actiu i vol assumir el paper de fundador, feu clic al botó de sota.  Al fundador actual se li enviarà un correu electrònicdetallant la seva petició, i podrà transferir-li la fundació a vostè oper rebutjar la seva petició. Si el fundador no respon en 60 dies, vostèpodrà convertir-se en el fundador.<br /><br />\n                       Esta segur que vol realitzar petició al fundador?"
+
+#: ../user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "Petició al fundador"
 
-#: ../user/team_founder_transfer_form.php:74
+#: ../user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "La petició de canvi de fundador ja ha estat feta per %1 a %2."
 
-#: ../user/team_founder_transfer_form.php:77
+#: ../user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr ""
-"Una petició de canvi de fundador s0ha fet en els últims 90 dies, per tant no "
-"es permetent noves peticions. Torneu-ho a provar més tard."
+msgstr "Una petició de canvi de fundador s0ha fet en els últims 90 dies, per tant no es permetent noves peticions. Torneu-ho a provar més tard."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: ../user/team_join.php:34 ../user/team_join_action.php:34
+#: ../user/team_join_form.php:31
 msgid "The team %1 is not joinable."
 msgstr "No està permés unir-se al l'equip %1."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: ../user/team_join.php:37 ../user/team_join_action.php:37
 msgid "Already a member"
 msgstr "Ja es membre"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: ../user/team_join.php:38 ../user/team_join_action.php:38
 msgid "You are already a member of %1."
 msgstr "Vostè ja és membre de %1."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
+#: ../user/team_join.php:44 ../user/team_join_action.php:45
 msgid "Couldn't join team - please try again later."
 msgstr "No es pot unir a l'equip - si us plau provi-ho més tard."
 
-#: ../user/team_join_action.php:40
+#: ../user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "Antiguitat %1"
 
-#: ../user/team_join_action.php:41
+#: ../user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "S'ha unit a %1."
 
-#: ../user/team_join_form.php:32
+#: ../user/team_join_form.php:34
 msgid "Join %1"
 msgstr "Uneix-te a %1"
 
-#: ../user/team_join_form.php:33
+#: ../user/team_join_form.php:35
 msgid "Please note:"
 msgstr "Tingueu en compte:"
 
-#: ../user/team_join_form.php:35
+#: ../user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-"Unir-se a un equip li dóna accés al seu fundador a la seva adreça de correu "
-"electrònic."
+msgstr "Unir-se a un equip li dóna accés al seu fundador a la seva adreça de correu electrònic."
 
-#: ../user/team_join_form.php:36
+#: ../user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "Unir-se a un equip no afecta el crèdit del compte."
 
-#: ../user/team_join_form.php:43
+#: ../user/team_join_form.php:45
 msgid "Join team"
 msgstr "Unir-se a l'equip"
 
-#: ../user/team_lookup.php:84
+#: ../user/team_lookup.php:86
 msgid "Search Results"
 msgstr "Resultats de la cerca"
 
-#: ../user/team_lookup.php:86
+#: ../user/team_lookup.php:88
 msgid "Search results for '%1'"
 msgstr "Resultats de la cerca per '%1'"
 
-#: ../user/team_lookup.php:88
+#: ../user/team_lookup.php:90
 msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-"Vostè pot veure els membres d'aquests equips, les estadístiques i la "
-"informació."
+msgstr "Vostè pot veure els membres d'aquests equips, les estadístiques i la informació."
 
-#: ../user/team_lookup.php:98
+#: ../user/team_lookup.php:100
 msgid "More than 100 teams match your search. The first 100 are shown."
 msgstr "Hi han més de 100 equips en la cerca. Es mostren els 100 primers."
 
-#: ../user/team_lookup.php:104
+#: ../user/team_lookup.php:106
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Fi dels resultats. %1 Si no pot trobar l'equip que està buscant, vostè "
-"mateix pot %2crear un equip%3."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Fi dels resultats. %1 Si no pot trobar l'equip que està buscant, vostè mateix pot %2crear un equip%3."
 
-#: ../user/team_manage.php:26
+#: ../user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "Equip d'administració de %1"
 
-#: ../user/team_manage.php:29
+#: ../user/team_manage.php:31
 msgid "Edit team info"
 msgstr "Edita la informació de l'equip"
 
-#: ../user/team_manage.php:30
+#: ../user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "Canviar el nom de l'equip, URL, descripció, tipus, o país"
 
-#: ../user/team_manage.php:32
+#: ../user/team_manage.php:34
 msgid "Member list:"
 msgstr "Llista de membres:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: ../user/team_manage.php:35 ../user/team_manage.php:39
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: ../user/team_manage.php:36
 msgid "text"
 msgstr "text"
 
-#: ../user/team_manage.php:35
+#: ../user/team_manage.php:37
 msgid "View member names and email addresses"
 msgstr "Veure els noms dels membres i adreces de correu electrònic"
 
-#: ../user/team_manage.php:36
+#: ../user/team_manage.php:38
 msgid "View change history:"
 msgstr "Veure l'historial de canvis:"
 
-#: ../user/team_manage.php:38
+#: ../user/team_manage.php:40
 msgid "XML"
 msgstr "XML"
 
-#: ../user/team_manage.php:39
+#: ../user/team_manage.php:41
 msgid "See when members joined or quit this team"
 msgstr "Veure quan s'uneixen membres o abandonan aquest equip"
 
-#: ../user/team_manage.php:50
+#: ../user/team_manage.php:52
 msgid "Respond to foundership request."
 msgstr "Respondre a la sol·licitud del fundador."
 
-#: ../user/team_manage.php:50
+#: ../user/team_manage.php:52
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
 msgstr "Si no respon per %1, %2 pot assumir la fundació d'aquest equip."
 
-#: ../user/team_manage.php:55
+#: ../user/team_manage.php:57
 msgid "Remove inactive or unwanted members from this team"
 msgstr "Eliminar membres inactius o no desitjats d'aquest equip"
 
-#: ../user/team_manage.php:57
+#: ../user/team_manage.php:59
 msgid "Transfer foundership to another member"
 msgstr "Tansferir la fundació a un altre membre"
 
-#: ../user/team_manage.php:58
+#: ../user/team_manage.php:60
 msgid "Add/remove Team Admins"
 msgstr "Afegir/Eliminar Administradors de l'Equip"
 
-#: ../user/team_manage.php:59
+#: ../user/team_manage.php:61
 msgid "Give selected team members Team Admin privileges"
 msgstr "Donar als membres seleccionats privilegis d'Administrador de l'Equip"
 
-#: ../user/team_manage.php:61
+#: ../user/team_manage.php:63
 msgid "Remove team"
 msgstr "Eliminar equip"
 
-#: ../user/team_manage.php:62
+#: ../user/team_manage.php:64
 msgid "Allowed only if team has no members"
 msgstr "Només es permet si l'equip no té membres"
 
-#: ../user/team_manage.php:64
+#: ../user/team_manage.php:66
 msgid "Create or manage a team message board"
 msgstr "Crear o gestionar un taulell de missatges de l'equip"
 
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Per que aquest equip es crei a tots els projectes BOINC (actuals i futurs) "
-"pot convertir-lo en un %1equip Boinc-gloval%2."
-
 #: ../user/team_manage.php:73
 msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-"Animem als administradors d'equip a unir-se i participar en el grup Google "
-"de %1fundadors-d'equips-boinc%2."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Per que aquest equip es crei a tots els projectes BOINC (actuals i futurs) pot convertir-lo en un %1equip Boinc-gloval%2."
 
 #: ../user/team_manage.php:75
 msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Altres recursos per a administradors d'equip BOINC estan disponibles en un "
-"lloc de tercers, %1www.boincteams.com%2."
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "Animem als administradors d'equip a unir-se i participar en el grup Google de %1fundadors-d'equips-boinc%2."
 
 #: ../user/team_manage.php:91
 msgid "Can't delete non-empty team"
@@ -6565,145 +6081,128 @@ msgstr "No es pot eliminar equip que no estigui buit"
 msgid "Team %1 deleted"
 msgstr "Equip %1 eliminat"
 
-#: ../user/team_members.php:36
+#: ../user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr "Límit superat:  Només es poden mostrar els primers 1000 membres."
 
-#: ../user/team_members.php:49
+#: ../user/team_members.php:51
 msgid "Members of %1"
 msgstr "Membres de %1"
 
-#: ../user/team_quit_action.php:32
+#: ../user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "No es pot deixar d'equip"
 
-#: ../user/team_quit_action.php:33
+#: ../user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "Equip no existeix, o que no pertanyen a ella."
 
-#: ../user/team_quit_form.php:31
+#: ../user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "Sortir de %1"
 
-#: ../user/team_quit_form.php:32
+#: ../user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Tingueu en compte abans de sortir d'un equip:</strong>\n"
-"         <ul>\n"
-"         <li>Si surt d'un equip, pot tornar-hi més tard, o unir-se a "
-"qualsevol altre equip que desitji\n"
-"         <li>Deixar un equip no afecta de cap manera en el seu crèdit "
-"estadístic personal.\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>Tingueu en compte abans de sortir d'un equip:</strong>\n         <ul>\n         <li>Si surt d'un equip, pot tornar-hi més tard, o unir-se a qualsevol altre equip que desitji\n         <li>Deixar un equip no afecta de cap manera en el seu crèdit estadístic personal.\n         </ul>"
 
-#: ../user/team_quit_form.php:40
+#: ../user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "Deixar l'equip"
 
-#: ../user/team_remove_inactive_action.php:31
+#: ../user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "Eliminació dels usuaris de %1"
 
-#: ../user/team_remove_inactive_action.php:39
+#: ../user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1 no és membre de %2"
 
-#: ../user/team_remove_inactive_action.php:42
+#: ../user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 ha estat eliminat"
 
-#: ../user/team_remove_inactive_form.php:32
+#: ../user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "Eliminar membres de %1"
 
-#: ../user/team_remove_inactive_form.php:39
+#: ../user/team_remove_inactive_form.php:41
 msgid "Remove?"
 msgstr "Eliminar?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: ../user/team_remove_inactive_form.php:42
 msgid "Name (ID)"
 msgstr "Nom (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: ../user/team_remove_inactive_form.php:67
 msgid "No members are eligible for removal."
 msgstr "Els que no son membres són seleccionats per a ser eliminats."
 
-#: ../user/team_remove_inactive_form.php:68
+#: ../user/team_remove_inactive_form.php:70
 msgid "Remove users"
 msgstr "Eliminar usuaris"
 
-#: ../user/team_search.php:68
+#: ../user/team_search.php:76
 msgid "Team name"
 msgstr "Nom de l'equip"
 
-#: ../user/team_search.php:92
+#: ../user/team_search.php:113
 msgid "Team search results"
 msgstr "Resultats de la recerca de l'equip"
 
-#: ../user/team_search.php:94
+#: ../user/team_search.php:115
 msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"No s'han trobat equips amb la seu criteri de selecció. Provi una altra "
-"cerca."
+msgstr "No s'han trobat equips amb la seu criteri de selecció. Provi una altra cerca."
 
-#: ../user/team_search.php:96
+#: ../user/team_search.php:117
 msgid "Or you can %1create a new team%2."
 msgstr "O vostè pot %1crear un nou equip%2."
 
-#: ../user/team_search.php:100
+#: ../user/team_search.php:121
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"Els següents equips verifiquen un o més criteris de cerca.\n"
-"            Per a unir-se a un equip, feu clic en al seu nom per anar a la "
-"pàgina de l'equip,\n"
-"               després premi %1Unir-se a aquest equip%2."
+msgstr "Els següents equips verifiquen un o més criteris de cerca.\n            Per a unir-se a un equip, feu clic en al seu nom per anar a la pàgina de l'equip,\n               després premi %1Unir-se a aquest equip%2."
 
-#: ../user/team_search.php:107
+#: ../user/team_search.php:128
 msgid "Change your search"
 msgstr "Canviï la seva cerca"
 
-#: ../user/team_search.php:181
+#: ../user/team_search.php:202
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr ""
-"Vostè pot associar-se amb altres persones amb interessos similars, o del "
-"mateix país, empresa o escola."
+msgstr "Vostè pot associar-se amb altres persones amb interessos similars, o del mateix país, empresa o escola."
 
-#: ../user/team_search.php:183
+#: ../user/team_search.php:204
 msgid "Use this form to find teams that might be right for you."
-msgstr ""
-"Utilitzi aquest formulari per buscar els equips que siguin més adequats per "
-"a vostè."
+msgstr "Utilitzi aquest formulari per buscar els equips que siguin més adequats per a vostè."
 
-#: ../user/team_search.php:188
+#: ../user/team_search.php:209
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "%1No estic interessat%2 en unir-me a un equip en aquest moment."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: ../user/top_hosts.php:67 ../user/top_teams.php:102
+#: ../user/top_users.php:113
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "Límit superat - Ho sento, només els primers %1 elements"
 
+#. Now display what we've got (either gotten from cache or from DB)
 #: ../user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "Servidors principals"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/top_teams.php:107
 msgid "Top %1 teams"
 msgstr "Els %1 equips principals"
 
-#: ../user/top_teams.php:108
+#: ../user/top_teams.php:110
 msgid "There are no %1 teams"
 msgstr "No hi ha equips d'%1"
 
@@ -6711,11 +6210,11 @@ msgstr "No hi ha equips d'%1"
 msgid "Participant since"
 msgstr "Participant des de"
 
-#: ../user/uotd.php:29
+#: ../user/uotd.php:31
 msgid "No user of the day has been chosen."
 msgstr "No ha estat elegit cap usuari del dia."
 
-#: ../user/uotd.php:33
+#: ../user/uotd.php:35
 msgid "User of the Day for %1: %2"
 msgstr "Usuari del Dia de %1: %2"
 
@@ -6759,19 +6258,19 @@ msgstr "Disminuint el crèdit mitjana"
 msgid "Decreasing total credit"
 msgstr "Disminuint el crèdit total"
 
-#: ../user/user_search.php:100
+#: ../user/user_search.php:84
 msgid "search string must be at least 3 characters"
 msgstr "la paraula a cercar ha de ser de com a mínim 3 caràcters"
 
-#: ../user/user_search.php:133
+#: ../user/user_search.php:118
 msgid "User search results"
 msgstr "Resultats de la recerca de l'usuari"
 
-#: ../user/user_search.php:140
+#: ../user/user_search.php:125
 msgid "Joined"
 msgstr "Adjuntat"
 
-#: ../user/user_search.php:148
+#: ../user/user_search.php:133
 msgid "No users match your search criteria."
 msgstr "No hi ha usuaris que coincideixin amb els seus criteris de recerca."
 
@@ -6807,9 +6306,7 @@ msgstr "Validar adreça de correu electrònic BOINC"
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr ""
-"Si us plau, visiti el següent enllaç per a validar l'adreça de correu "
-"electrònic del seu %1 compte:"
+msgstr "Si us plau, visiti el següent enllaç per a validar l'adreça de correu electrònic del seu %1 compte:"
 
 #: ../user/validate_email_addr.php:34
 msgid "Validate email sent"
@@ -6819,9 +6316,7 @@ msgstr "S'ha enviat la validació del seu correu electrònic"
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr ""
-"Un correu electrònic li ha estat enviat a %1. Visiti l'enllaç que conté per "
-"a validar la sevaadreça de correu electrònic."
+msgstr "Un correu electrònic li ha estat enviat a %1. Visiti l'enllaç que conté per a validar la sevaadreça de correu electrònic."
 
 #: ../user/validate_email_addr.php:44
 msgid "No such user."
@@ -6833,8 +6328,7 @@ msgstr "Error en la URL - no es pot validar l'adreça de correu electrònic"
 
 #: ../user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
-msgstr ""
-"Error en l'actualització de base de dades - si us plau a provi-ho més tard."
+msgstr "Error en l'actualització de base de dades - si us plau a provi-ho més tard."
 
 #: ../user/validate_email_addr.php:57
 msgid "Validate email address"
@@ -6844,29 +6338,24 @@ msgstr "Validar adreça de correu electrònic"
 msgid "The email address of your account has been validated."
 msgstr "L'adreça de correu electrònic del vostre compte ha estat validada."
 
-#: ../user/view_profile.php:36
+#: ../user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "Aquest usuari no te perfil"
 
-#: ../user/view_profile.php:54
+#: ../user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "Perdil: %1"
 
-#: ../user/view_profile.php:63
+#: ../user/view_profile.php:65
 msgid "Account data"
 msgstr "Dades del compte"
 
 #: ../user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"Vostè pot accedir al seu compte, ja sigui per l'ús del seu correu electrònic "
-"i contrasenya,\n"
-"    o mitjançant l'ús de la 'clau de compte' assignada.\n"
-"    La seva clau de compte és:"
+msgstr "Vostè pot accedir al seu compte, ja sigui per l'ús del seu correu electrònic i contrasenya,\n    o mitjançant l'ús de la 'clau de compte' assignada.\n    La seva clau de compte és:"
 
 #: ../user/weak_auth.php:57
 msgid "This key can be used to:"
@@ -6882,12 +6371,7 @@ msgid ""
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"per connectar un ordinador al seu compte sense necessitat d'utilitzar "
-"l'Administrador de BOINC.\n"
-"       Per a això, instal·lar BOINC,\n"
-"       crear un arxiu anomenat %1 al BOINC\n"
-"       directori de dades, i establir el seu contingut a:"
+msgstr "per connectar un ordinador al seu compte sense necessitat d'utilitzar l'Administrador de BOINC.\n       Per a això, instal·lar BOINC,\n       crear un arxiu anomenat %1 al BOINC\n       directori de dades, i establir el seu contingut a:"
 
 #: ../user/weak_auth.php:73
 msgid "Weak account key"
@@ -6896,28 +6380,17 @@ msgstr "Clau de compte feble"
 #: ../user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"La teva 'clau de compte feble' es pot utilitzar per connectar ordinadors al "
-"teu compte\n"
-"    com es descriu més amunt, però no es pot utilitzar per iniciar sessió al "
-"teu compte o canviar-lo de cap manera.\n"
-"    Si vols connectar ordinadors no són de confiança o insegurs al teu "
-"compte,\n"
-"    fes-ho amb la teva clau de compte feble.\n"
-"    La teva clau de compte feble és:"
+msgstr "La teva 'clau de compte feble' es pot utilitzar per connectar ordinadors al teu compte\n    com es descriu més amunt, però no es pot utilitzar per iniciar sessió al teu compte o canviar-lo de cap manera.\n    Si vols connectar ordinadors no són de confiança o insegurs al teu compte,\n    fes-ho amb la teva clau de compte feble.\n    La teva clau de compte feble és:"
 
 #: ../user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
-"Si canvies la contrasenya, la teva clau de compte febles canvia, i "
-"l'anterior deixarà de ser vàlida."
+msgstr "Si canvies la contrasenya, la teva clau de compte febles canvia, i l'anterior deixarà de ser vàlida."
 
 #: ../user/workunit.php:32
 msgid "can't find workunit"
@@ -6927,6 +6400,10 @@ msgstr "no pot trobar workunit"
 msgid "Workunit %1"
 msgstr "Workunit %1"
 
+#: ../user/workunit.php:40
+msgid "application"
+msgstr "aplicació"
+
 #: ../user/workunit.php:43
 msgid "canonical result"
 msgstr "resultat canònic"
@@ -6936,6 +6413,10 @@ msgid "granted credit"
 msgstr "crèdit atorgat"
 
 #: ../user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Tasques en curs"
+
+#: ../user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "suprimit a l'espera de la conclusió"
 
@@ -6963,366 +6444,70 @@ msgstr "validació"
 msgid "Pending"
 msgstr "Pendent"
 
-#: ../project.sample/project.inc:43
+#: ../project.sample/project.inc:70
 msgid "Main page"
 msgstr "Pàgina principal"
 
-#: ../project.sample/project.inc:45
+#: ../project.sample/project.inc:72
 msgid "Copyright"
 msgstr "Copyright"
 
-#: ../project.sample/project.inc:48
+#: ../project.sample/project.inc:75
 msgid "Generated"
 msgstr "Generat"
 
-#: ../project.sample/project.inc:79
+#: ../project.sample/project.inc:106
 msgid "Your personal background."
 msgstr "Els seus antecedents personals."
 
-#: ../project.sample/project.inc:83
+#: ../project.sample/project.inc:110
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Expliqui'ns sobre vostè. Vostè podria dir-nos d'on es, la teva edat, "
-"ocupació, passatemps, o qualsevol altra cosa"
+msgstr "Expliqui'ns sobre vostè. Vostè podria dir-nos d'on es, la teva edat, ocupació, passatemps, o qualsevol altra cosa"
 
-#: ../project.sample/project.inc:87
+#: ../project.sample/project.inc:114
 msgid "Your opinions about %1"
 msgstr "Les seves opinions sobre %1"
 
-#: ../project.sample/project.inc:91
+#: ../project.sample/project.inc:118
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"Digui'ns la seva opinió sobre %1<ol>\n"
-"    <li>Per què executa %1?\n"
-"    <li>Quins són els seus punts de vista sobre el projecte?\n"
-"    <li>Algun suggeriment?\n"
-"    </ol>"
+msgstr "Digui'ns la seva opinió sobre %1<ol>\n    <li>Per què executa %1?\n    <li>Quins són els seus punts de vista sobre el projecte?\n    <li>Algun suggeriment?\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: ../project.sample/project_specific_prefs.inc:53
 msgid "Color scheme for graphics"
 msgstr "Combinació de colors per als gràfics"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: ../project.sample/project_specific_prefs.inc:55
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "Màxim % de la CPU per als gràfics%10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: ../project.sample/project_specific_prefs.inc:56
 msgid "Run only the selected applications"
 msgstr "Executar només les aplicacions seleccionades"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: ../project.sample/project_specific_prefs.inc:57
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Només aconseguir tasques per a certes aplicacions. Útil per centrar-se en aplicacions particulars, o per excloure-les."
+
+#: ../project.sample/project_specific_prefs.inc:58
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
-msgstr ""
-"Si no hi ha treball disponible per a les aplicacions seleccionades, acceptar "
-"feina d'altres aplicacions?"
+msgstr "Si no hi ha treball disponible per a les aplicacions seleccionades, acceptar feina d'altres aplicacions?"
+
+#: ../project.sample/project_specific_prefs.inc:59
+msgid "Use faster non-graphical applications if available?"
+msgstr "Utilitza aplicacions no gràfiques si estàn disponibles?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: ../project.sample/project_specific_prefs.inc:90
 msgid "(all applications)"
 msgstr "(totes les aplicacions)"
-
-#~ msgid "Error:"
-#~ msgstr "Error:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "La creació de comptes està desactivada"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Ho sentim, aquest projecte ha desactivat la creació de nous comptes.\n"
-#~ "Si us plau provar-ho més tard."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "La creació de comptes està desactivada. Si us plau provi-ho mes tard."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "GPU nvidia"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Aquest projecte no ha creat un missatge de correu electrònic - si us plau "
-#~ "notifiqui-ho als seus administradors"
-
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Usar la GPU Intel %1 Imposat per la versió 7.0+ %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Aixó s'aplica a tots els projectes BOINC en què vostè participa.<br>\n"
-#~ "             En els ordinadors connectats a múltiples projectes, "
-#~ "s'utilitzaràn les preferències modificades més recentment."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Exportar aquesta noticia com a Avís"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Aneu al directori de dades de BOINC en el vostre sistema (a Windows en "
-#~ "general és <b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> "
-#~ "o <b>C:\\Program Files\\BOINC</b>."
-
-#~ msgid "No such task"
-#~ msgstr "No és una tasca"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "L'ordinador està connectat a Internet cada %1 Deixar en blanc o 0 si està "
-#~ "sempre connectat. %2 BOINC tractarà de fer el màxim de feina (màx 10 dies). "
-#~ "%3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Mantenir prou feina per un període addicional"
-
-#~ msgid "Update failed: "
-#~ msgstr "Error en l'actualització: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Proporciona un %1accés limitat%2 al vostre compte"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "No utilitzi aquest formulari. Simplement executeu BOINC, seleccioneu Afegeix "
-#~ "projecte i introduïu una adreça de correu electrònic i contrasenya."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "No ordenar els missatges enganxats"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Si el fil conté més d'aquest nombre de missatges"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "només mostren el primer i llavors molts dels últims"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "El seu informe ha estat enregistrat. Mercés per la seva aportació."
-
-#~ msgid "Search type"
-#~ msgstr "Tipus de cerca"
-
-#~ msgid "User names starting with"
-#~ msgstr "Noms d'usuari que comencen per"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "El seu 'clau feble de compte' li permet vincular un ordinador al teu compte "
-#~ "sense donar-li la possibilitat d'accedir al seu compte o per canviar-lo de "
-#~ "cap manera."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Això només funciona amb projectes que tenen el seu programari servidor "
-#~ "actualitzat a la versió del 7 de Dec 2007 o posterior."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "La clau de compte feble per aquest projecte és:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Per utilitzar la clau de compte feble en un ordinador, trobeu o creeu 'el "
-#~ "fitxer del compte' per aquest projecte. El nom d'aquest fitxer és de la "
-#~ "forma <b>compte_URL_DEL_PROJECTE.xml</b>. El fitxer del compte per %1 és <b>"
-#~ "%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Crear aquest fitxer si és necessari. Configureu el seu contingut com:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "La seva clau de compte feble és una funció de la seva contrasenya. Si canvia "
-#~ "la contrasenya, la clau de compte feble canvia, i la clau de compte feble "
-#~ "anterior deixa de ser vàlida."
-
-#~ msgid "Account key"
-#~ msgstr "Clau del compte"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Proporciona accés total al vostre compte"
-
-#~ msgid "Export"
-#~ msgstr "Exportar"
-
-#~ msgid "- private message"
-#~ msgstr "- missatge privat"
-
-#~ msgid "Private message from"
-#~ msgstr "Missatge privat de"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Està pendent la verificació de l'adreça de correu electrònic"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Connectat com %1."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Connecteu-vos com algú més."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "No hi ha cap fil amb id %1. Si us plau comprovi l'accés i provi-ho de nou."
-
-#~ msgid "Request not found"
-#~ msgstr "Petició no trobada"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 l'ha afegit com amic."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Dades del compte %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "no s'ha pogut crear el tauler de missatges"
-
-#~ msgid "message board not found"
-#~ msgstr "no s'ha tobat el tauler de missatges"
-
-#~ msgid "no such forum"
-#~ msgstr "no existeix aquest fòrum"
-
-#~ msgid "unknown command %1"
-#~ msgstr "ordre %1 desconeguda"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "ERROR: %1 no existeix1  No es pot crear el quadre combinat.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Per protegir les pàgines del projectes de l'spam, li demanem que "
-#~ "introdueixi les dues paraules que es mostren en la imatge:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "Versió de client BOINC"
-
-#~ msgid "Client detached"
-#~ msgstr "Client independent"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "WU quota màxima diària per CPU"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/dia"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "Plataforma anònima - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "Plataforma anònima - GPU NVIDIA"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "Plataforma anònima - GPU ATI"
-
-#~ msgid "Task ID"
-#~ msgstr "Identificador de tasca"
-
-#~ msgid "Granted credit"
-#~ msgstr "Crèdit concedit"
-
-#~ msgid "Click to"
-#~ msgstr "Fes clic aquí per"
-
-#~ msgid "(no restriction if equal)"
-#~ msgstr "(sense restricció en cas d'igualtat)"
-
-#~ msgid "percent of CPU time"
-#~ msgstr "per cent del temps de CPU"
-
-#~ msgid "Leave at least"
-#~ msgstr "Deixa com a mínim"
-
-#~ msgid "% of page file (swap space)"
-#~ msgstr "% de l'arxiu de paginació (swap)"
-
-#~ msgid "Use ATI GPU if present %1(enforced by 6.10+ clients)%2"
-#~ msgstr "Usar la GPU ATI si està present %1(imposada pels clients 6.10+)%2"
-
-#~ msgid "KB/s"
-#~ msgstr "KB/s"
-
-#~ msgid "GB disk space"
-#~ msgstr "GB d'espai en disc"
-
-#~ msgid "GB disk space free"
-#~ msgstr "GB d'espai lliure"
-
-#~ msgid "(no restriction)"
-#~ msgstr "(sense restricció)"
-
-#~ msgid "%1 GB disk space"
-#~ msgstr "%1 GB d'espai en disc"
-
-#~ msgid "%1 GB disk space free"
-#~ msgstr "%1 GB d'espai lliure"
-
-#~ msgid ""
-#~ "Resource share %1If you participate in multiple BOINC projects, this is "
-#~ "the proportion of your resources used by %2%3"
-#~ msgstr ""
-#~ "Compartir recursos %1Si vostè participa en diversos projectes BOINC, "
-#~ "aquesta és la proporció dels recursos utilitzats per %2%3"
-
-#~ msgid "Gbytes"
-#~ msgstr "Gbytes"
-
-#~ msgid "Resource share"
-#~ msgstr "Compartir recursos"
-
-#~ msgid "stderr out"
-#~ msgstr "sortida stderr"
-
-#~ msgid "<p>"
-#~ msgstr "<p>"
-
-#~ msgid "preferences"
-#~ msgstr "preferències"
-
-#~ msgid "Last %1"
-#~ msgstr "Últim %1"
-
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Language symbol"
-#~ msgstr "Símbol de l'idioma"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Compartició de recursos i gràfics"
-
-#~ msgid "fll"
-#~ msgstr "f11"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Feines de l'ordinador %1"
diff --git a/html/languages/translations/cs.po b/html/languages/translations/cs.po
index 501e83e..b7d2e53 100644
--- a/html/languages/translations/cs.po
+++ b/html/languages/translations/cs.po
@@ -1,26 +1,28 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-08-30 20:59+0000\n"
-"Last-Translator: Lycan <santdel at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: cs\n"
+# 
+# Translators:
+# Jiří Chvátal <george.choose3d at gmail.com>, 2017
+# Martin Suchan <martin.suchan at outlook.com>, 2015
+# Pavel <xxxq at seznam.cz>, 2015
+# Petr Nekvinda <petr.nekvinda at gmail.com>, 2015
+# Petr Nekvinda <petr.nekvinda at gmail.com>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-05 13:31+0000\n"
+"Last-Translator: Jiří Chvátal <george.choose3d at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/boinc/boinc/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1377896370.0\n"
 
 msgid "LANG_NAME_NATIVE"
 msgstr "Čeština"
@@ -28,342 +30,573 @@ msgstr "Čeština"
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Czech"
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Pozvánkový kód"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Pro vytvoření účtu je zapotřebí platný povánkový kód."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Jméno"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Vaše identifikace na stránkách. Použijte skutečné jméno, nebo přezdívku."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "Emailová adresa"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Adresa musí být platného tvaru 'jmeno at domena'."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Heslo"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Musí mít délku aspoň %1 znaků"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Potvrďte heslo"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "Země"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Vyberte si zemi, kterou chcete reprezentovat."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "PSČ nebo ZIP kód"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Volitelné"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Vytvořit účet"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "Emailová adresa:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "zapomenutá emailová adresa?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Heslo:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "zapomenuté heslo?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Zústat přihlášen"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Přihlásit se"
+
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "Tučný text: [b]text[/b]  (alt+b)"
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr "Kurzíva: [i]text[/i]  (alt+i)"
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "Podtržený text: [u]text[/u]  (alt+u)"
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Přeškrtnutý text: [s]text[/s] (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "Citovat text: [quote]text[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "Zobrazit kód: [code]code[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "Seznam: [list]text[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Číslovaný seznam: [list=]text[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Číslovaný seznam: [list=1]text[/list] (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "Vložit obrázek: [img]http://image_url[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Vložit odkaz: [url]http://url[/url] nebo [url=http://url]text odkazu[/url]  "
-"(alt+w)"
+msgstr "Vložit odkaz: [url]http://url[/url] nebo [url=http://url]text odkazu[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr "Barva fontu"
 
-#: ../inc/bbcode_html.inc:43
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Barva fontu: [color=red]text[/color]  Lze použít anglické názvy barev, nebo "
-"přímo kód=#FF0000"
+msgstr "Barva fontu: [color=red]text[/color]  Lze použít anglické názvy barev, nebo přímo kód=#FF0000"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr "Výchozí"
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr "Tmavě červená"
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr "Červená"
 
-#: ../inc/bbcode_html.inc:47
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr "Oranžová"
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr "Hnědá"
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr "Žlutá"
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr "Zelená"
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr "Olivově zelená"
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr "Azurová"
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr "Modrá"
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr "Tmavě modrá"
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr "Indigově modrá"
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr "Fialová"
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr "Velikost fontu"
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "Velikost fontu: [size=x-small]malý text[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr "Malý"
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr "Normální"
 
-#: ../inc/bbcode_html.inc:62
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr "Velký"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr "Uzavřít všechny otevřené bbCode tagy"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr "Uzavřít tagy"
 
-#: ../inc/forum.inc:37
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Účet"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Připojit se"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "O %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Nápověda"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Projekt"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Účastnit se"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Práce"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Stav serveru"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Statistiky"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Aplikace"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Účastníci"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Počítače"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Týmy"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "GPU modely"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "CPU modely"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Počítání"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Komunita"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Diskuzní fóra"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "vytvoření nebo připojení k týmu"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Profily"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Vyhledání uživatele"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Uživatel dne"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Certifikát"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Stránky"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Vyhledávání"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Jazyky"
+
+#. names for the above
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr "Od nejstarších"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr "Od nejnovějších"
 
-#: ../inc/forum.inc:39
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr "Od nejlépe hodnocených příspěvků"
 
-#: ../inc/forum.inc:41
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr "Od nejnovějších příspěvků"
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr "Od nejvíce zobrazení"
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr "Od nejvíce příspěvků"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Dobrovolný moderátor"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Administrátor projektu"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Vývojář projektu"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Tester projektu"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Dobrovolný vývojář"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Dobrovolný tester"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Vědec projektu"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Odborník podpory"
+
+#. Search
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr "Vyhledat slova v diskuzích"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr "Hledat v diskuzních fórech"
 
-#: ../inc/forum.inc:126
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr "Pokročilé hledání"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr "Soukromé zprávy"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr "Otázky a odpovědi"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Diskuzní fóra"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr "Diskuzní fórum %1"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr "Předchozí"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr "Další"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
 msgid "Author"
 msgstr "Autor"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr "Zpráva"
 
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Poslat zprávu"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Odeslat zprávu"
 
-#: ../inc/forum.inc:580
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr "Poslat %1 soukromou zprávu"
 
-#: ../inc/forum.inc:581
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr "Připojen: %1"
 
-#: ../inc/forum.inc:590
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr "Příspěvků: %1"
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr "Kredit: %1"
 
-#: ../inc/forum.inc:597
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr "RAC: %1"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr "Tuto zprávu jste dosud nečetli"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr "Nepřečtené"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr "Zpráva %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr "skryté"
 
-#: ../inc/forum.inc:625
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
 msgstr "Odesláno: %1"
 
-#: ../inc/forum.inc:628
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr " - jako odpověď na "
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr "Upravit"
 
-#: ../inc/forum.inc:631
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr "Upravit tuto zprávu"
 
-#: ../inc/forum.inc:637
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr "Naposledy upraveno: %1"
 
-#: ../inc/forum.inc:640
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Příspěvek není zobrazen, protože jeho odesílatel je na vašem seznamu "
-"'ignorovaých uživatelů'. %1Klikněte zde%2 pro zobrazení tohoto příspěvku."
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Příspěvek není zobrazen, protože jeho odesílatel je na vašem seznamu 'ignorovaých uživatelů'. %1Klikněte zde%2 pro zobrazení tohoto příspěvku."
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr "Nahlásit tento příspěvek jako urážlivý"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr "Nahlásit jako urážlivý"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr "Hodnocení: %1"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "rate: "
 msgstr "hodnotit:"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr "Klikněte, pokud se vám líbí tento příspěvek"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr "Hodnotit +"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr "Klikněte pokud se vám nelíbí tato zpráva"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr "Hodnotit -"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr "Odpovědět"
 
-#: ../inc/forum.inc:685
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr "Klikněte pro napsání odpovědi na tento příspěvek"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr "Citovat"
 
-#: ../inc/forum.inc:687
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr "Klikněte pro citování tohoto příspěvku"
 
-#: ../inc/forum.inc:708
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr "Schováno moderátorem"
 
-#: ../inc/forum.inc:729
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr "Odesláno %1 od %2"
 
-#: ../inc/forum.inc:747
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr "Nemáte povoleno přispívat nebo hlasovat až do %1"
 
-#: ../inc/forum.inc:758
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -375,2551 +608,2471 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
 "        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Příspěvky musí být 'vhodné pro děti': nesmí obsahovat\n"
-"obsah, který je obscénní, nenávistný či\n"
-"se sesxuálně motivovaným obsahem.\n"
-"        <li> Žádné komerční nabídky.\n"
-"        <li> Žádné odkazy na stránky propagující sexuální obsah,\n"
-"hazard či nenávist k druhým.\n"
-"        <li> Žádné příspěvky c cílem urážet či znepřátelovat druhé,\n"
-"            či snažící se o zrušení smyslu diskuze.\n"
-"        <li> Žádné příspěvky, které jsou cíleně urážlivé či nenávistné.\n"
-"        <li> Žádné příspěvky urážející rasu, víru, národnost,\n"
-"pohlaví či sexuální orientaci.\n"
-"        "
+msgstr "\n        <ul>\n        <li> Příspěvky musí být 'vhodné pro děti': nesmí obsahovat\nobsah, který je obscénní, nenávistný či\nse sesxuálně motivovaným obsahem.\n        <li> Žádné komerční nabídky.\n        <li> Žádné odkazy na stránky propagující sexuální obsah,\nhazard či nenávist k druhým.\n        <li> Žádné příspěvky c cílem urážet či znepřátelovat druhé,\n            či snažící se o zrušení smyslu diskuze.\n        <li> Žádné příspěvky, které jsou cíleně urážlivé či nenávist [...]
 
-#: ../inc/forum.inc:780
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr "Pravidla:"
 
-#: ../inc/forum.inc:781
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr "Více informací"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr "Odkrýt"
 
-#: ../inc/forum.inc:1055
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr "Odkrýt tento příspěvek"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr "Skrýt"
 
-#: ../inc/forum.inc:1057
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr "Skrýt tento příspěvek"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr "Přesunout"
 
-#: ../inc/forum.inc:1062
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr "Přesunout příspěvek do jiného vlákna"
 
-#: ../inc/forum.inc:1067
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr "Vykázat autora"
 
-#: ../inc/forum.inc:1074
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr "Hlasovat pro vykázání autora"
 
-#: ../inc/forum.inc:1078
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr "Hlasovat pro nevykázání autora"
 
-#: ../inc/forum.inc:1083
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr "Začít hlasovat pro vykázání uživatele"
 
-#: ../inc/forum.inc:1116
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Smazat"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Vymazat tento příspěvek"
+
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
 msgstr "Jen členové týmu mohou přispívat do týmového fóra"
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Pro vytvoření nového vlákna v %1 musíte mít určité množství kreditu. Toto "
-"omezení slouží jako ochrana proti zneužití systému."
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "Pro založení nového téma v %1 musíte mít potřebnou úroveň kreditu. Toto je nutné kvůli ochraně systému před napadením."
 
-#: ../inc/forum.inc:1133
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Nové vlákno nemůžete vytvořit hned teď. Počkejte prosím chvíli a zkuste to "
-"znova. Tato prodleva byla zavedena proti zneužití systému."
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Nemůžete nyní založit nové téma. Prosím vyčkejte než to zkusíte znovu. Prodleva je nutná kvůli ochraně systému před napadením."
 
-#: ../inc/forum.inc:1140
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
-"Toto vlákno je zamčené, přispívat zde mohou jen moderátoři a administrátoři."
+msgstr "Toto vlákno je zamčené, přispívat zde mohou jen moderátoři a administrátoři."
 
-#: ../inc/forum.inc:1145
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr "Nelze posílat příspěvky do schovaného vlákna."
 
-#: ../inc/forum.inc:1173
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr "Vlákno"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr "Příspěvky"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr "Zobrazení"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr "Poslední příspěvek"
 
-#: ../inc/forum.inc:1235
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr "Nové příspěvky ve vláknu %1"
 
-#: ../inc/forum.inc:1240
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr "Nové příspěvky ve sledovaném vláknu"
 
-#: ../inc/forum.inc:1241
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr "Ve vláknu jsou nové příspěvky '%1'"
 
-#: ../inc/forum.inc:1251
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr "Označit všechna vlákna jako přečtená"
 
-#: ../inc/forum.inc:1252
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
 msgstr "Označit všechna vlákna na všech diskuzních fórech jako přečtená."
 
-#: ../inc/host.inc:24
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr "Žádný počítač"
 
-#: ../inc/host.inc:26
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr "Nedostupné"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr "Doma"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr "V práci"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
 msgstr "Ve škole"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "Aktualizovat"
 
-#: ../inc/host.inc:85
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr "Informace o počítači"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr "IP adresa"
 
-#: ../inc/host.inc:89
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(stejná u posledních %1 připojení)"
 
-#: ../inc/host.inc:91
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr "Veřejná IP adresa"
 
-#: ../inc/host.inc:94
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr "Zobrazit IP adresu"
 
-#: ../inc/host.inc:96
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr "Název domény"
 
-#: ../inc/host.inc:98
+#: html/inc/host.inc:97
 msgid "Product name"
-msgstr ""
+msgstr "Název produktu"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "Místní čas"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC %1 hodin"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr "Vlastník"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr "Anonymní"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr "Vytvořen"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr "Celkový kredit"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr "Průměrný kredit"
 
-#: ../inc/host.inc:116
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr "Meziprojektový kredit"
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr "Typ procesoru"
 
-#: ../inc/host.inc:119
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr "Počet procesorů"
 
-#: ../inc/host.inc:121
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr "Koprocesory"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr "Operační systém"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr "Verze BOINC"
 
-#: ../inc/host.inc:130
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr "Paměť"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr "Cache"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr "Odkládací prostor"
 
-#: ../inc/host.inc:143
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr "Celkové místo na disku"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "Volné místo na disku"
 
-#: ../inc/host.inc:150
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "Naměřená rychlost operací v plovoucí řádové čárce"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 milionů op/sek"
 
-#: ../inc/host.inc:153
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "Naměřená rychlost celočíselných operací"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr "Prům. rychlost odesílání"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/sek"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr "Neznámé"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr "Prům. rychlost stahování"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr "Průměrný doba pro vrácení zpracované jednotky"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 dní"
 
-#: ../inc/host.inc:170
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr "Detaily aplikace"
 
-#: ../inc/host.inc:171
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr "Zobrazit"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr "Úkoly"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "Kolikrát klient kontaktoval server"
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "Naposledy kontaktován server"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% času kdy je BOINC aktivní"
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Podíl času běžícího BOINC"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "% času kdy je dostupné připojení k Internetu z doby, kdy BOINC počítá"
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Je-li spuštěn BOINC, zlomek času je počítač připojen k Internetu"
 
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% času kdy je povolená práce z doby, kdy BOINC počítá"
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Je-li spuštěn BOINC, na zlomek času je počítání povoleno"
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Je-li spuštěn BOINC, na zlomek času je GPU počítání povoleno"
+
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr "Průměrná efektivita procesor"
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr "Korekční faktor pro dobu trvání"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr "Umístění"
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr "Smazat tento počítač"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr "Spojit duplicitní záznamy tohoto počítače"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr "Spojit"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr "Poslední kontakt"
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr "Informace o počítači"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr "Pozice"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr "Průměrný kredit"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr "Průměrný kredit uživatele"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr "Procesor"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr "GPU"
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr "Operační systém"
 
-#: ../inc/host.inc:315
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr "(%1 procesorů)"
 
-#: ../inc/host.inc:335
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr "Detaily"
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr "Statistiky napříč projekty:"
 
-#: ../inc/host.inc:515
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr "Počítač %1 má překrývající se životnost:"
 
-#: ../inc/host.inc:522
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr "Počítač %1 má nekompatibilní op. systém:"
 
-#: ../inc/host.inc:528
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr "Počítač  %1 má nekompatibilní procesor:"
 
-#: ../inc/host.inc:595
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr "stejný počítač"
 
-#: ../inc/host.inc:598
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr "Nelze spojit počítač %1 s %2 - nejsou vzájemně kompatibilní"
 
-#: ../inc/host.inc:601
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr "Spojuji počítač %1 s počítačem %2"
 
-#: ../inc/host.inc:618
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr "Nelze aktualizovat kredit nového počítače"
 
-#: ../inc/host.inc:622
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr "Nelze aktualizovat výsledky"
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr "Nelze vyřadit starý počítač"
 
-#: ../inc/host.inc:629
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr "Vyřazený starý počítač %1"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr "Zobrazit:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr "Všechny počítače"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr "Jen počítače aktivní za posledních 30 dnů"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr "ID počítače"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Jméno"
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Typ"
 
-#: ../inc/host.inc:682
+#: html/inc/host.inc:695
 msgid "BOINC<br>version"
 msgstr "BOINC<br/>verze"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "Spojit počítače podle jména"
 
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Komentář"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Diskuse"
 
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Novinky jsou dostupné jako %sRSS zprávy%s"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr "Schránka"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr "Psát zprávu"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Poslat soukromou zprávu"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Poslat zprávu teamu"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr "Náhled"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Předmět"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Poslat soukromou zprávu"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
 msgid "no such message"
 msgstr "nenalezena žádná zpráva"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "To"
 msgstr "Komu"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "Uživatelská ID nebo unikátní uživatelská jména, oddělená čárkami"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Předmět"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Odeslat zprávu"
-
-#: ../inc/pm.inc:121
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr "vám poslal soukromou zprávu. Předmět:"
 
-#: ../inc/pm.inc:127
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr "Soukromá zpráva%1 od %2, předmět:"
 
-#: ../inc/pm.inc:135
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr "Zprávu nelze vytvořit"
 
-#: ../inc/pm.inc:166
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
-msgstr ""
-"Není možné posílat tolik soukromých zpráv během tak krátké chvíle. Počkejte "
-"prosím před posláním další zprávy."
+msgstr "Není možné posílat tolik soukromých zpráv během tak krátké chvíle. Počkejte prosím před posláním další zprávy."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr "nepřečtené"
 
-#: ../inc/pm.inc:186
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
 msgstr "Pro zasílání novinek emailem %1upravit komunitní předvolby%2"
 
-#: ../inc/pm.inc:198
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr "Soukromá zpráva"
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Limity využití"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Použít nejvýše"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Přerušit práci když běží počítač na baterii? %1 Má smysl jen u přenosných "
-"počítačů %2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Zachovejte některé procesory volné pro jiné aplikace. Příklad: 75% znamená využívat 6 jader na 8-jádrovém procesoru."
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Přerušit práci, je-li počítač právě používán?"
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% procesorů"
 
-#: ../inc/prefs.inc:91
+#: html/inc/prefs.inc:63
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Přerušit práci na GPU když je počítač používán? %1 Podporováno od verze "
-"6.6.21+ %2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Pozastavení/obnovení počítání každých několik sekund na snížení teploty a energetického využití procesoru. Příklad: 75% znamená počítat 3 sekundy, čekat 1 sekundu a opakovat."
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'Používán' znamená aktivita myši či klávesnice během posledních"
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% procesorového času"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minut"
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Kdy pozastavit"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Přerušit práci při nulové aktivitě myši či klávesnice během posledních %1 "
-"Vyžadováno pro přechod do režimu spánku u některých počítačů %2"
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Pozastavit, když počítač běží z baterie"
 
-#: ../inc/prefs.inc:114
+#: html/inc/prefs.inc:71
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Přerušit práci při zatížení procesoru neBOINC procesy nad %1 0 znamená bez "
-"omezení<br/>Podporováno od verze 6.10.30+ %2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Zaškrtněte pro pozastavení počítání na přenosných zařízeních, když jsou napájeny z baterie."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"Pracovat pouze mezi hodinami %1 Bez omezení, pokud se hodnoty rovnají %2"
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Pozastavit, když je počítač používán"
 
-#: ../inc/prefs.inc:130
+#: html/inc/prefs.inc:77
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Ponechat v paměti uspané úkoly? %1 Uspané úkoly budou zabírat místo ve "
-"vyrovnávací paměti pokud 'ano' %2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Zaškrtněte pro pozastavení počítání a přenosu souborů, když je počítač používán."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Přepínat mezi aplikacemi každých %1 Doporučeno: 60 minut %2"
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Pozastavit GPU výpočty, kdy je počítač používán"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Na víceprocesorových systémech použít nejvýše"
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Zaškrtněte pro pozastavení GPU výpočtů během používání počítače."
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesorů"
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "\"V provozu\" znamená impuls z myši/klávesnice během"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Na víceprocesorových systémech použít nejvýše %1 Podporováno od verze 6.1+ %"
-"2"
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Určuje, kdy je počítač považován za \"v provozu\"."
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% procesorů"
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "minut"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "Využívat nejvýše %1 Lze použít pro snížení tepla procesoru %2"
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Pozastavit, pokud myš/klávesnice nebyla aktivní během"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% procesorového času"
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Toto umožňuje některým počítačům vstoupit do režimu nízké spotřeby, když není používán."
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disk: použít nejvýše"
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Pozastavit, pokud využití procesoru aplikacemi mimo BOINC je nad"
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Pozastavit výpočty když je váš počítač zaneprázdněn jinými spuštěnými programy."
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disk: ponechat volných aspoň %1 Hodnoty menší než %2 jsou ignorované %3"
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Počítat pouze mezi"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% celkového místa"
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Počítat pouze během určitého času každý den."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Ostatní"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Ukládat aspoň"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Zásoba aspoň na tolik úkolů aby počítač běžel takovou dobu."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "dnů práce"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Zásobovat až do další"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Uložit další úkoly nad minimální úroveň. Určuje, kolik práce je požadováno při kontaktování projektu."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Přepínat mezi úkoly každých"
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Ukládat kontrolní bod na disk nejvýše každých"
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Pokud počítáte několik projektů, BOINC mezi nimi může přepínat s těmito intervaly."
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Požádat úkoly o kontrolní bod nanejvýš každých"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Toto ovlivňuje jak často úloha ukládá svůj aktuálnís tav na disk, aby bylo možné později od tohoto bodu pokračovat."
+
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr "vteřin"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Odkládací paměť: využívat nejvýše"
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Nepoužívat více než"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Paměť: je-li počítač používán, použít nejvýše"
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Omezit celkovou hodnotu místa na disku, kterou BOINC používá."
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Paměť: není-li počítač používán, použít nejvýše"
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "Zajistit dostatek práce aspoň na %1(max 10 dní).%2"
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Ponechat aspoň"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dní"
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Omezení využití místa na disku. Ponechání takového volného místa na svazku, kde BOINC ukládá data."
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... a až na dalších"
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB volného místa"
 
-#: ../inc/prefs.inc:232
+#: html/inc/prefs.inc:155
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Zobrazit dotaz před připojením k Internetu? %1 Má smysl jen u připojení přes "
-"modem, ISDN či VPN %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Omezte procento využití disku používaného programem BOINC na svazku, kde ukládá data."
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Odpojit po ukončení komunikace? %1 Má smysl jen při u připojení přes modem, "
-"ISDN či VPN %2"
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% celkového místa"
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Max. rychlost stahování:"
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "V případě, že je počítač používán, využít maximálně"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "KB/s"
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Omezte paměť, kterou může BOINC použít, když používáte počítač."
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Max. rychlost odesílání:"
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Povolit přístup k Internetu pouze v těchto hodinách"
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Když počítač není používán, využít maximálně"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Přenést nejvýše %1 Podporováno od verze 6.10.46+ %2"
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Omezte paměť, kterou může BOINC použít, když nevyužíváte počítač."
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "MB každých"
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Ponechat úkoly nepoužívající GPU v paměti, když jsou výpočty pozastaveny"
 
-#: ../inc/prefs.inc:274
+#: html/inc/prefs.inc:179
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Přeskočit kontrolou obrázků? %1 Zaškrtněte POUZE pokud váš poskytovatel "
-"upravuje soubory s obrázky (dělá to např. UMTS). %2 Vynechání kontroly "
-"snižuje bezpečnost BOINCu. %3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Je-li políčko zaškrtnuto, pozastavené úlohy zůstanou v paměti a pokračování nebude znamenat žádnou ztrátu spočítané práce. Pokud políčko není zaškrtnuto, pozastavené úlohy jsou odstraněny z paměti a budou pokračovat od posledního kontrolního bodu."
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Podíl prostředků %1 Určuje podíl přostředků Vašeho počítače pro tento "
-"projekt. Příklad: pokud se podílíte ve dvou BOINC projektech s podílem 100 a "
-"200, první bude mít k dispozici 1/3 a druhý 2/3 prostředků počítače. %2"
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Stránkovací/odkládací soubor: použít maximálně"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-"Urychlit výpočty pomocí GPU přiřazením jednoho procesoru ke každému úkolu?"
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Omezte odkládací prostor (stránkovací soubor) použitý pro BOINC."
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Používat procesor %1 Podporováno od verze 6.10+ %2"
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Omezit rychlost stahování na"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Používat AMD GPU %1 Podporováno od verze 6.10+ %2"
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Omezte rychlost stahování souborů."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Používat nVidia GPU %1 Podporováno od verze 6.10+ %2"
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB za sekundu"
 
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Používat AMD GPU %1 Podporováno od verze 6.10+ %2"
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Omezit rychlost uploadu na"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Povolit běh testovacích aplikací? %1 Povolením pomůžete vyvíjet a lépe "
-"testovat aplikace, ale také to může způsobovat občasné selhání výpočtu na "
-"vašem počítači %2"
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Omezte rychlost odesílání souborů."
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Emaily budou zasílané z adresy %1, ujistěte se, že Vám tuto adresu "
-"nezachytává spam filtr."
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Omezit využití na"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Může Vám %1 či Váš tým zasílat občasné emaily?"
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Příklad: BOINC může přenést maximálně 2000 MB dat každých 30 dní."
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Má %1 zobrazovat vaše počítače na svých stránkách?"
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB každých"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Využití disku a paměti"
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "dní"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Využití procesoru"
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Přenášet soubory pouze mezi"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Využití Internetu"
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Přenos souborů pouze během určitého časového období každý den."
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Tyto předvolby se vztahují na všechny BOINC projekty ve kterých se podílíte."
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Přeskočit ověřování dat pro obrazové soubory"
 
-#: ../inc/prefs.inc:395
+#: html/inc/prefs.inc:223
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Nelze upravit předvolby.%2 Hodnoty označené červeně jsou mimo platný "
-"rozsah a nebo nejsou číselné."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "špatné místo: %1"
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Zaškrtněte pouze v případě, že váš poskytovatel Internetu upravuje soubory obrázků. Přeskočení ověřování snižuje bezpečnost BOINC."
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "špatný rozsah: %1"
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Potvrdit před připojením k Internetu"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "ano"
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Užitečné pouze v případě že máte modem, ISDN nebo VPN připojení."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "ne"
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Odpojit po ukončení komunikace"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "bez omezení"
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Disk"
 
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Přidat"
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Síť"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Odebrat"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Tyto předvolby se vztahují na všechny BOINC projekty ve kterých se podílíte."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Počítání"
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Nelze upravit předvolby.%2 Hodnoty označené červeně jsou mimo platný rozsah a nebo nejsou číselné."
 
-#: ../inc/prefs.inc:823
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr "Vlastní předvolby pro %1"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr "Upravit předvolby"
 
-#: ../inc/prefs.inc:839
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Odebrat"
+
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr "Přidat oddělené předvolby pro %1"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Přepnout vzhled)"
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Toto nastavení platí pro všechny počítače používající tento účet s výjimkou"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "počítače, kde jste nastavili předvolby lokálně pomocí správce BOINC"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Zařízení se systémem Android"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
+msgstr "(Přepnout zobrazení)"
+
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
 msgid "Combined preferences"
 msgstr "Společné předvolby"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Specifické nastavení projektu"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
 msgid "Primary (default) preferences"
 msgstr "Primární (výchozí) předvolby"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Upravit %1 předvolby"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr "Předvolby naposledy upraveny:"
 
-#: ../inc/prefs.inc:944
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr "Přidat předvolby"
 
-#: ../inc/prefs.inc:948
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr "Aktualizovat předvolby"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "ano"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "ne"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr "Výchozí umístění počítače"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Nové počítače použijí toto umístění pro výpočty a předvolby projektu."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Rozdělení práce"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Určuje podíl zdrojů vašeho počítače přidělených na tento projekt. Například pokud se účastníte dvou BOINC projektů s podíly zdrojů 100 a 200, první dostane 1/3 a druhý 2/3."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Urychlit výpočty pomocí GPU přiřazením jednoho procesoru ke každému úkolu?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "Použít procesor"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "Použít ATI GPU"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "Použít NVIDIA GPU"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Použít Intel GPU"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Povolit testovací aplikace?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Toto nám pomáhá vyvíjet aplikace, ale může způsobit pády úloh během výpočtu"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Emaily budou zasílané z adresy %1, ujistěte se, že Vám tuto adresu nezachytává spam filtr."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Může Vám %1 či Váš tým zasílat občasné emaily?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "Má %1 zobrazovat vaše počítače na svých stránkách?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Přepnout vzhled)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Specifické nastavení projektu"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "špatné místo: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "špatný rozsah: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
 msgid "and"
 msgstr "a"
 
-#: ../inc/profile.inc:86
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "bez omezení"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Přidat"
+
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr ""
-"Váš profil bude viditelný pro ostatní po schválení projektem, to může trvat "
-"pár dní."
+msgstr "Váš profil bude viditelný pro ostatní po schválení projektem, to může trvat pár dní."
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr ""
-"Váš profil byl označen jako závadný - momentálně není viditelný pro ostatní "
-"uživatele. Prosím upravte si jej."
+msgstr "Váš profil byl označen jako závadný - momentálně není viditelný pro ostatní uživatele. Prosím upravte si jej."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr "Chyba databáze"
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Abychom předcházeli spamu, jsou profily uživatelů s průměrným kreditem "
-"menším než %1 viditelné jen přihlášenými uživateli. Omlouváme se za tuto "
-"nepřijemnost."
+msgstr "Abychom předcházeli spamu, jsou profily uživatelů s průměrným kreditem menším než %1 viditelné jen přihlášenými uživateli. Omlouváme se za tuto nepřijemnost."
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr "Uživatel je vykázán"
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr "Pro dané ID neexistuje žádný uživatelský profil."
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr "Upravit váš profil"
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr "Vaše reakce k tomuto profilu"
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr "Doporučit tento profil na Uživatele dne:"
 
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr "%1Líbí%2 se mi tento profil"
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr "Upozornit administrátory na urážlivý profil:"
 
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr "%1Nelíbí%2 se mi tento profil"
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr "Anonymní platforma"
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr "nVidia GPU"
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr "AMD GPU"
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Není v DB"
+msgstr "Intel GPU"
 
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr "nevyřízené"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr "Všechny"
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr "Zpracováváno"
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr "Čeká na validaci"
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr "Neprůkazná validace"
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr "Validní"
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr "Neplatné"
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr "Chyba"
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr "Neaktivní"
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr "Neodeslané"
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr "Dokončeno, čeká se na validaci"
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr "Dokončeno a validováno"
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr "Dokončeno, označeno jako nevalidní"
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr "Dokončeno, nelze validovat"
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr "Dokončeno, částečně validováno"
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr "Dokončeno, příliš pozdě na validaci"
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr "Hotovo"
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr "Nelze odeslat"
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr "Zrušeno serverem"
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr "Nezapočato před uplynutím lhůty - zrušeno"
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr "Chyba při stahování"
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr "Chyba při výpočtu"
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr "Chyba při odesílání"
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Zrušeno uživatelem"
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Zrušeno"
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr "Odeslání selhalo"
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr "Vypršela lhůta - bez odpovědi"
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr "Nepotřebné"
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr "Chyba při validaci"
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr "Zrušeno"
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr "Pozdě"
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr "Úspěšně dokončeno"
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr "Chyba při výpočtu"
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr "Nadbytečný výsledek"
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr "Bez odpovědi"
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr "Nový"
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
 msgstr "Stahuji"
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr "Zpracovávané"
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr "Chyba při výpočtu"
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr "Odesílám"
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr "Hotovo"
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Zrušeno uživatelem"
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr "Počáteční"
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr "Nepotřebné"
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr "Chyba pracovní jednotky - kontrola vynechána"
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr "Zkontrolováno, ale zatím nerozhodnuto"
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr "Úkol byl nahlášen příliš pozdě pro validaci"
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr "Nelze odeslat výsledek"
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr "Příliš mnoho chyb (možná chyba v zadání)"
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr "Příliš mnoho různých výsledků (výpočet může být nedeterministický)"
 
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr "Příliš mnoho konečných výsledků"
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr "Pracovní jednotka zrušena"
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Chybí kanonický výsledek"
+
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr "Neznámá chyba: %1"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr "Název úkolu"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr "klikněte pro detaily"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr "Zobrazit ID"
 
-#: ../inc/result.inc:354
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr "Zobrazit názvy"
 
-#: ../inc/result.inc:357
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr "Úkol"
 
-#: ../inc/result.inc:360
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr "Pracovní jednotka"
 
-#: ../inc/result.inc:369
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr "Počítač"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr "Odesláno"
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr "Čas nahlášení<br/>nebo lhůta pro dokončení"
 
-#: ../inc/result.inc:374
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr "vysvětlení"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr "Stav"
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr "Čas běhu<br/>(sek)"
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr "Procesorový čas<br/>(sek)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr "Kredit"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr "Aplikace"
 
-#: ../inc/result.inc:629
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr "Pracovní jednotka"
 
-#: ../inc/result.inc:632
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Lhůta pro odevzdání"
+
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr "Přijato"
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr "Stav serveru"
 
-#: ../inc/result.inc:634
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr "Výsledek"
 
-#: ../inc/result.inc:635
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr "Stav klienta"
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr "Stav ukončení"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Lhůta pro odevzdání"
-
-#: ../inc/result.inc:639
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr "Čas běhu"
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr "Procesorový čas"
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr "Stav validace"
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "Maximální FLOPS zařízení"
+
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr "Verze aplikace"
 
-#: ../inc/result.inc:656
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr "Výstupní soubory"
 
-#: ../inc/result.inc:659
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr "Výstup stderr"
 
-#: ../inc/result.inc:706
+#: html/inc/result.inc:795
 msgid "State"
 msgstr "Stav"
 
-#: ../inc/result.inc:747
-#, fuzzy
+#: html/inc/result.inc:836
 msgid "Task name:"
-msgstr "Název úkolu"
+msgstr "Název úkolu:"
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr "Kriteria pro hledání (použijte jedno či více)"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr "Klíčová slova"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
 msgstr "Hledat týmy s těmito slovy v názvu nebo popisu"
 
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Země"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr "Typ týmu"
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr "Zobrazit pouze aktivní týmy"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr "Hledat"
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
 msgstr "Vaše žádosti, u nichž vypršela lhůta na odpověď vlastníka."
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr "Dokončit převod vlastnictví"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr "Požadováno vámi"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr "lhůta na odpověď vlastníka je %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr "Žádná"
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr "Podat žádost"
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr "Odložené"
 
-#: ../inc/team.inc:87
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr "Informace o týmu"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
 msgstr "Popis"
 
-#: ../inc/team.inc:97
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr "Webové stránky"
 
-#: ../inc/team.inc:120
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr "Meziprojektové statistiky"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr "Typ"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr "Diskuzní fórum"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr "Vlákna"
 
-#: ../inc/team.inc:136
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr "Připojit se k tomuto týmu"
 
-#: ../inc/team.inc:137
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"Poznámka: pokud máte v předvolbách projektu 'OK u emailu', připojením k týmu "
-"poskytnete jeho vlastníkovi přístup k vaší emailové adrese."
+msgstr "Poznámka: pokud máte v předvolbách projektu 'OK u emailu', připojením k týmu poskytnete jeho vlastníkovi přístup k vaší emailové adrese."
 
-#: ../inc/team.inc:140
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr "Nepřijímá nové členy"
 
-#: ../inc/team.inc:147
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr "Požádáno o změnu vlastnictví"
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr "Odpověď od %1"
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr "Změna vlastníka týmu"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr "Členové"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr "Vlastník"
 
-#: ../inc/team.inc:169
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr "Administrátoři"
 
-#: ../inc/team.inc:184
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr "Noví členové za poslední den"
 
-#: ../inc/team.inc:185
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr "Celkem členů"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr "zobrazit"
 
-#: ../inc/team.inc:186
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr "Aktivní členové"
 
-#: ../inc/team.inc:187
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr "Členové s kreditem"
 
-#: ../inc/team.inc:256
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr "Administrátor"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr "Předchozí %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr "Další %1"
 
-#: ../inc/team.inc:289
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr "Takový tým neexistije."
 
-#: ../inc/team.inc:302
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr "Tuto operaci může provádět jen vlastník."
 
-#: ../inc/team.inc:326
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr "Tuto operaci může provést jen administrátor týmu"
 
-#: ../inc/team.inc:422
+#: html/inc/team.inc:434
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"VAROVÁNÍ: toto je globální BOINC tým. Změny zanesené zde budou brzy "
-"přepsány. Upravte namísto toho přímo %1globální BOINC tým%2."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "VAROVÁNÍ: toto je globální BOINC tým. Změny zanesené zde budou brzy přepsány. Upravte namísto toho přímo %1globální BOINC tým%2."
 
-#: ../inc/team.inc:428
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Poznámka k soukromí%2: pokud založíte tým, vaše projektové předvolby "
-"(podíl prostředků, nastavení grafiky) budou veřejně viditelné."
+msgstr "%1Poznámka k soukromí%2: pokud založíte tým, vaše projektové předvolby (podíl prostředků, nastavení grafiky) budou veřejně viditelné."
 
-#: ../inc/team.inc:432
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr "Název týmu, textová verze"
 
-#: ../inc/team.inc:433
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr "Nepoužívejte HTML tagy."
 
-#: ../inc/team.inc:436
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr "Název týmu, HTML verze"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr "Můžete použít %1tyto HTML tagy%2."
 
-#: ../inc/team.inc:439
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr "Pokud neznáte HTML, nevyplňujte tento box."
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr "Webová stránka týmu, pokud je"
 
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "bez \"http://\""
+#: html/inc/team.inc:454
+msgid "without \"http://\""
+msgstr "bez \"http://\""
+
+#: html/inc/team.inc:455
+msgid "This URL will be linked to from the team's page on this site."
+msgstr "Tato adresa bude použita jako odkaz z hlavní týmové stránky na tomto webu."
+
+#: html/inc/team.inc:458
+msgid "Description of team"
+msgstr "Popis týmu"
+
+#: html/inc/team.inc:474
+msgid "Accept new members?"
+msgstr "Povolit nové členy?"
+
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Firma"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Základní škola"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Střední škola"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Vyšší odborná škola"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Univerzita"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Vládní agentura"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "Nevýdělečná organizace"
 
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-"Tato adresa bude použita jako odkaz z hlavní týmové stránky na tomto webu."
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "Národní"
 
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Popis týmu"
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Místní/regionální"
 
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Povolit nové členy?"
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Typ počítače"
 
-#: ../inc/uotd.inc:28
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Sociální/politické/náboženské"
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr "Profil uživatele"
 
-#: ../inc/user.inc:119
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr "Projekty, v nichž se účastníte"
 
-#: ../inc/user.inc:121
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr "Projeckty, ve kterých je %1 připojen"
 
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr "Klikněte pro zobrazení stránky uživatele"
 
-#: ../inc/user.inc:125
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr "Od"
 
-#: ../inc/user.inc:148
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr "Počítání a kredit"
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr "Počítače na tomto účtu"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr "Zobrazit"
 
-#: ../inc/user.inc:161
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr "Meziprojektové ID"
 
-#: ../inc/user.inc:162
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr "Meziprojektové statistiky"
 
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Účet"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr "Tým"
 
-#: ../inc/user.inc:167
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr "Meziprojektové"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certifikát"
-
-#: ../inc/user.inc:169
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
 msgstr "Statistiky ve vašem mobilu"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Neznámý typ zprávy: %1"
-
-#: ../inc/user.inc:198
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr "Informace o účtu"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr "Emailová adresa"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr "URL adresa"
 
-#: ../inc/user.inc:206
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr "Směrovací číslo"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr "Členem %1 od"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr "Změnit"
 
-#: ../inc/user.inc:209
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr "emailová adresa"
 
-#: ../inc/user.inc:210
+#: html/inc/user.inc:229
 msgid "password"
 msgstr "heslo"
 
-#: ../inc/user.inc:211
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr "další informace o účtu"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr "Uživatelské ID"
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr "Použito u komunitních funkcí"
 
-# 91%
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr "Klíče k účtu"
 
-#: ../inc/user.inc:221
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr "Předvolby"
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
 msgstr "Kdy a jak má BOINC používat váš počítač"
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr "Předvolby výpočtů"
 
-#: ../inc/user.inc:228
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr "Diskuzní fóra a soukromé zprávy"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "Předvolby komunity"
 
-#: ../inc/user.inc:232
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr "Předvolby pro tento projekt"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr "%1 předvolby"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Komunita"
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Zobrazit profil %1"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Smazat"
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Profil"
 
-#: ../inc/user.inc:245
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr "Vytvořit"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr "%1 příspěvků"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "Oznámení"
 
-#: ../inc/user.inc:269
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr "Opustit tým"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr "Spravovat"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr "(nevyřízený požadavek na změnu vlastnictví)"
 
-#: ../inc/user.inc:279
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr "Člen týmu"
 
-#: ../inc/user.inc:281
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr "najít tým"
 
-#: ../inc/user.inc:292
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr "Vlastník, ale ne člen týmu"
 
-#: ../inc/user.inc:298
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr "Najít přátele"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
 msgstr "Přátelé"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Počítače"
-
-#: ../inc/user.inc:338
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr "Dárce"
 
-#: ../inc/user.inc:378
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr "Kontakt"
 
-#: ../inc/user.inc:381
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr "Tento člověk je váš přítel"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr "Zrušit přátelství"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr "Nevyřízený požadavek"
 
-#: ../inc/user.inc:387
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr "Přidat mezi přátele"
 
-#: ../inc/user.inc:446
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr "uživatelské jméno nemůže začínat nebo končit mezerou"
 
-#: ../inc/user.inc:450
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr "uživatelské jméno nemůže být prázdné"
 
-#: ../inc/user.inc:454
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr "uživatelské jméno nemůže obsahovat HTML tagy"
 
-#: ../inc/util.inc:131
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr "odhlásit"
 
-#: ../inc/util.inc:133
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr "přihlásit se"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Přihlásit se"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr "Vytvořit účet"
 
-#: ../inc/util.inc:206
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr "Stránka se stavem serveru"
 
-#: ../inc/util.inc:248
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr ""
-"Při zpracování vašeho pořadavku nastala chyba databáze, zkuste to prosím "
-"později."
+msgstr "Při zpracování vašeho pořadavku nastala chyba databáze, zkuste to prosím později."
 
-#: ../inc/util.inc:257
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr "Nelze vyhodnotit požadavek"
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr "hod"
 
-#: ../inc/util.inc:280
+#: html/inc/util.inc:345
 msgid "min"
 msgstr "min"
 
-#: ../inc/util.inc:283
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr "sek"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Platnost odkazu vypršela. Klikněte prosím na Zpět, načtěte znova stránku a "
-"zkuste to znova."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Zobrazit profil %1"
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Platnost odkazu vypršela. Klikněte prosím na Zpět, načtěte znova stránku a zkuste to znova."
 
-#: ../inc/util.inc:569
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
 msgstr "Používejte BBCode tagy pro formátování vašeho textu"
 
-#: ../inc/util.inc:796
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr "Projekt odstavený z důvodu údržby"
 
-#: ../inc/util.inc:799
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
 msgstr "%1 je dočasně nedostupný kvůli údržbě. Zkuste to prosím později."
 
-#: ../inc/util.inc:817
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
 msgstr "Nelze se připojit k databázi - zkuste to prosím později."
 
-#: ../inc/util.inc:821
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
 msgstr "Nelze vybrat databázi - zkuste to prosím později."
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "zbývá znaků"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr "Zapamatovat si přihlášení na tomto počítači"
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Dokončit nastavení účtu"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Vaše identifikace na stránkách. Použijte skutečné jméno, nebo přezdívku."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Vyberte si zemi, kterou chcete reprezentovat."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "PSČ nebo ZIP kód"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Volitelné"
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "Je třeba zadat jméno k vašemu účtu"
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
 msgstr "Ve jméně nejsou povoleny HTML tagy"
 
-#: ../user/add_venue.php:81
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Dokončit nastavení účtu"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Upravit %1 předvolby"
+
+#: html/user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "Přidat %1 předvolby pro %2"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Aplikace"
-
-#: ../user/apps.php:33
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 nyní používá tyto aplikační programy. Pokud jste zapojen v %1, bude "
-"vašemu počítači přidělena práce pro jeden nebo více z těchto aplikačních "
-"programů. Aktuální verze aplikačního programu se vždy automaticky stáhne do "
-"vašeho počítače - není třeba pro to nic dělat."
+msgstr "%1 má v současnosti následující aplikace. Pokud se účastníte v %1, úkoly pro jednu nebo více z těchto aplikací budou přiřazeny k vašemu počítači. Aktuální verze aplikace se stáhne do vašeho počítače. To se děje automaticky, není nutné nic dělat."
 
-#: ../user/apps.php:50
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr "Platforma"
 
-#: ../user/apps.php:51
+#: html/user/apps.php:56
 msgid "Version"
 msgstr "Verze"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Čas instalace"
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Průměrný výpočet"
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr "BBCode značky"
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"BBCode značky vám umožňují formátovat text ve vašem profilu a v příspěvcích\n"
-"ve fóru. Jsou podobné značkám HTML, začínají [ (kde byste použili %1 v HTML)\n"
-"a končí ] (kde byste použili %2 v HTML)."
+msgstr "BBCode značky vám umožňují formátovat text ve vašem profilu a v příspěvcích\nve fóru. Jsou podobné značkám HTML, začínají [ (kde byste použili %1 v HTML)\na končí ] (kde byste použili %2 v HTML)."
 
-#: ../user/bbcode.php:31
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr "Příklady"
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr "Tučné"
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr "Kurzíva"
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr "Podtržení"
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Přeškrtnuté"
+
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr "Horní index"
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr "Velké písmo"
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr "Červený text"
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr "odkaz na webové stránky"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr "Citovaný text"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "použijte pro citovaný text"
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr "použijte pro zobrazení obrázku"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "Ukázky kódu zde"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr "použijte pro zobrazení kódu"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "Předformátovaný text"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr "použijte pro zobrazení předformátovaného, typicky u monospace písma"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr "Věc 1"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr "Věc2"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr "Věc 2"
 
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "použij k propojení s Trac tiketem na stránkách BOINC."
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "odkaz na Problémy v BOINC Github repozitáři."
 
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "použij k propojení s Trac Wiki na stránkách BOINC."
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "odkaz na Wiki stránku BOINC Github repozitáře"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "použij k propojení s SVN na stránkách BOINC."
-
-#: ../user/bbcode.php:53
+#: html/user/bbcode.php:55
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Pokud neuzavřete tag nebo nespecifikujete parametr správně, \n"
-"bude zobrazen samotný tag, místo formátovaného textu."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Váš účet"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Týmy"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Uživatel dne"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Stav serveru"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profily"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Nejlepší účastníci"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Nejlepší počítače"
+msgstr "Pokud neuzavřete tag nebo nespecifikujete parametr správně, \nbude zobrazen samotný tag, místo formátovaného textu."
 
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Nejlepší týmy"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Nejlepší modely GPU"
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Jazyk"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Přečtěte si naše pravidla a zásady"
-
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr "Nelze vytvořit účet"
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr "Zkuste znovu kliknutím na tlačítko <b>Zpět</b> ve vašem prohlížeči."
 
-#: ../user/create_account_action.php:47
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "Vaše 'reCAPTCHA' odpověď nebyla správná. Zkuste prosím znovu."
 
-#: ../user/create_account_action.php:70
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr "Pro vytvoření účtu je třeba vložit pozvánkový kód."
 
-#: ../user/create_account_action.php:73
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr "Vámi vložený pozvánkový kód je neplatný."
 
-#: ../user/create_account_action.php:84
+#: html/user/create_account_action.php:81
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Neplatná emailová adresa: Musíte zadat platnou adresu ve formátu "
-"jméno at doména"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Neplatná emailová adresa: Musíte zadat platnou adresu ve formátu jméno at doména"
 
-#: ../user/create_account_action.php:88
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr "Účet s touto emailovou adresou již existuje."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "Nová hesla nejsou stejná"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "Hesla smí obsahovat pouze ASCII znaky."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
 msgstr "Nové heslo je příliš krátké: minimální délka hesla je %1 znaků."
 
-#: ../user/create_account_action.php:127
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr "Nelze vytvořit účet"
 
-#: ../user/create_account_form.php:44
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"Poznámka: Pokud používáte BOINC Manager, tak namísto tohoto formuláře jen "
-"pusťte BOINC, zvolte Přidat projekt a zadejte emailovou adresu a heslo."
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "Poznámka: pro spuštění %1 na vašem počítači běžte %2sem%3 místo použití tohoto formuláře."
 
-#: ../user/create_account_form.php:61
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"Tento účet bude náležet týmu %1 a bude mít předvolby projektu po jeho "
-"vlastníkovi."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Pozvánkový kód"
+msgstr "Tento účet bude náležet týmu %1 a bude mít předvolby projektu po jeho vlastníkovi."
 
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Pro vytvoření účtu je zapotřebí platný povánkový kód."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Emailová adresa"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Adresa musí být platného tvaru 'jmeno at domena'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Heslo"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Musí mít délku aspoň %1 znaků"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Potvrďte heslo"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Zadejte prosím slova zobrazená na obrázku"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Vytvořit účet"
-
-#: ../user/create_profile.php:50
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr "Obrázek"
 
-#: ../user/create_profile.php:64
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1 Váš obrázek bude zobrazen vlevo."
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:69
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Pro změnu klikněte na tlačítko \"Hledat\" a vyberte soubor typu JPEG nebo PNG "
-"(do %1)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Pro změnu klikněte na tlačítko \"Hledat\" a vyberte soubor typu JPEG nebo PNG (do %1)."
 
-#: ../user/create_profile.php:69
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr "Pro odebrání obrázku z Vašeho profilu zaškrtněte toto pole:"
 
-#: ../user/create_profile.php:77
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Pokud si přejete mít u svého profilu obrázek, klikněte na \"Hledat\" a zvolte "
-"soubor typu JPEG nebo PNG. Obrázek může být velký maximálně %1."
+msgstr "Pokud si přejete mít u svého profilu obrázek, klikněte na \"Hledat\" a zvolte soubor typu JPEG nebo PNG. Obrázek může být velký maximálně %1."
 
-#: ../user/create_profile.php:89
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr "Jazyk"
 
-#: ../user/create_profile.php:92
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr "Zvolte jazyk, ve kterém je napsán Váš profil:"
 
-#: ../user/create_profile.php:104
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr "Uložit profil"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Zadejte prosím slova zobrazená na obrázku."
-
-#: ../user/create_profile.php:115
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr "Vytvořit/upravit profil"
 
-#: ../user/create_profile.php:137
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr "Formát vámi zvoleného obrázku není podporován."
 
-#: ../user/create_profile.php:166
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
 msgstr "Váš %1profil%2 vám umožňuje sdílet své názory a zázemí s %3 komunitou."
 
-#: ../user/create_profile.php:213
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "Vaše 'reCAPTCHA' odpověď nebyla správná. Zkuste prosím znovu."
 
-#: ../user/create_profile.php:222
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Váš první příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. "
-"Upravte ho prosím a zkuste jej vložit znova."
+msgstr "Váš první příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. Upravte ho prosím a zkuste jej vložit znova."
 
-#: ../user/create_profile.php:230
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Váš druhý příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. "
-"Upravte ho prosím a zkuste jej vložit znova."
+msgstr "Váš druhý příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. Upravte ho prosím a zkuste jej vložit znova."
 
-#: ../user/create_profile.php:246
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr "Váš profil k uložení je prázdný."
 
-#: ../user/create_profile.php:285
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr "Není možné upravit profil: chyba databáze"
 
-#: ../user/create_profile.php:297
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr "Není možné vytvořit profil: chyba databáze"
 
-#: ../user/create_profile.php:302
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr "Profil uložen"
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "Blahopřejeme! Váš profil byl úspěšně uložen v naší databázi."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Zobrazit profil%2"
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Zobrazit váš profil"
 
-#: ../user/create_profile.php:315
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr "Založit si profil"
 
-#: ../user/create_profile.php:343
+#: html/user/create_profile.php:346
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Jako ochrana proti spamu je vyžadován kredit aspoň %1 pro založení či úpravu "
-"profilu. Omlouváme se za tuto nepříjemnost."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Jako ochrana proti spamu je vyžadován kredit aspoň %1 pro založení či úpravu profilu. Omlouváme se za tuto nepříjemnost."
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr "Nelze smazat účet"
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr "Účet smazán"
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr "Váš účet byl smazán"
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr "Potvrďte smazání účtu"
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"Při smazání vašeho účtu dojde k odstranění  \n"
-"všech vašich osobních údajů z našich serverů, \n"
-"včetně vašeho profilu a příspěvků na nástence. \n"
-"Na žádný počítač připojený přes tento účet \n"
-"nebude zasílána žádná další práce."
+msgstr "Při smazání vašeho účtu dojde k odstranění  \nvšech vašich osobních údajů z našich serverů, \nvčetně vašeho profilu a příspěvků na nástence. \nNa žádný počítač připojený přes tento účet \nnebude zasílána žádná další práce."
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Tuto operaci nelze vrátit zpět. \n"
-"jakmile bude váš účet smazán, nepůjde žádným způsobem obnovit."
+msgstr "Tuto operaci nelze vrátit zpět. \njakmile bude váš účet smazán, nepůjde žádným způsobem obnovit."
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "Opravdu si přejete smazat váš účet?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr "Ano"
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr "Smazat tento účet"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr "Ne"
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr "Zachovat tento účet"
 
-#: ../user/delete_profile.php:30
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "nelze se smazat profil - zkuste to prosím později"
 
-#: ../user/delete_profile.php:33
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "Potvrďte smazání"
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "Váš profil byl smazán"
 
-#: ../user/delete_profile.php:40
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "Potvrzení smazání profilu"
 
-#: ../user/delete_profile.php:43
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "Jste si jisti?"
 
-#: ../user/delete_profile.php:44
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"Smazané profily zmizí navždy a nelze je obnovit --\n"
-"pokud budete chtít v budoucnu začít znova,\n"
-"budete si muset vytvořit nový profil."
+msgstr "Smazané profily zmizí navždy a nelze je obnovit --\npokud budete chtít v budoucnu začít znova,\nbudete si muset vytvořit nový profil."
 
-#: ../user/delete_profile.php:48
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"Pokud jste si jisti, kliknutím na 'Ano' ('Yes')\n"
-"odstraníte váš profil z naší databáze."
+msgstr "Pokud jste si jisti, kliknutím na 'Ano' ('Yes')\nodstraníte váš profil z naší databáze."
 
-#: ../user/delete_profile.php:52
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "Smažte můj profil"
 
-#: ../user/delete_profile.php:53
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "Zachovejte můj profil"
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr "PayPal - Transakce dokončena"
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr "Děkujeme za váš dar!"
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr "Vaše darování bylo dokončeno."
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
 msgstr "Váš dar bude zobrazen po potvrzení systémem PayPal."
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr "Zrušili jste váš dar."
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr "Tento projekt nepřijímá dary."
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr "%1 darů"
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"Tento projekt přijímá dary pomocí\n"
-"%1."
+msgstr "Tento projekt přijímá dary pomocí\n%1."
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -2932,2228 +3085,1995 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"Vyplňte částku, kterou chcete darovat, do kolonky níže.\n"
-"        PayPal příjímá čáskty v různých měnách:\n"
-"        Kanadský Dolar, Euro, Britská Libra, US Dolar,\n"
-"        Jen, Australský Dolar, Novozélandský Dolar,\n"
-"        Švýcarský Frank, Hongkongský Dolar, Singapurský Dolar,\n"
-"        Švédská Koruna, Dánská Koruna, Polský Zlotý,\n"
-"        Norská Koruna, Maďarský Forint, Česká Koruna.\n"
-"        Převaděč měny vám ukáže ekvivalent darované částky v různých měnách\n"
-"        Poznámka: měnové kurzy jsou pouze orientační, skutečná částka se "
-"může lišit."
-
-#: ../user/donations.php:316
+msgstr "Vyplňte částku, kterou chcete darovat, do kolonky níže.\n        PayPal příjímá čáskty v různých měnách:\n        Kanadský Dolar, Euro, Britská Libra, US Dolar,\n        Jen, Australský Dolar, Novozélandský Dolar,\n        Švýcarský Frank, Hongkongský Dolar, Singapurský Dolar,\n        Švédská Koruna, Dánská Koruna, Polský Zlotý,\n        Norská Koruna, Maďarský Forint, Česká Koruna.\n        Převaděč měny vám ukáže ekvivalent darované částky v různých měnách\n        Poznámka: m [...]
+
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr "Částka, kterou chcete darovat"
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr "Odhadovaná hodnota v"
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr "Anonymní dar"
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Zvolte tuto možnost, pokud si přejete, aby bylo vaše jméno a číslo účtu "
-"zobrazeno\n"
-"v seznamu dárců.<br>Pokud tuto možnost nezvolíte, budete zaznamenán jako "
-"uživatel č. %1"
+msgstr "Zvolte tuto možnost, pokud si přejete, aby bylo vaše jméno a číslo účtu zobrazeno\nv seznamu dárců.<br>Pokud tuto možnost nezvolíte, budete zaznamenán jako uživatel č. %1"
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Přihlašte se prosím, aby bylo možno přiřadit váš dar k vašemu uživatelskému "
-"jménu."
+msgstr "Přihlašte se prosím, aby bylo možno přiřadit váš dar k vašemu uživatelskému jménu."
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr "Pokračovat"
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr "Dary jsou přijímány přes"
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr "Stáhnout doplňkový software BOINC"
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr "Je možné si stáhnout aplikace různých typů."
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
 msgstr "Za tyto aplikace %1 nijak neručí, použití je na vaše riziko."
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"Neposkytujeme informace k instalaci těchto aplikací, nicméně autor aplikace "
-"obvykle poskytuje základní informace pro instalaci a odinstalování své "
-"aplikace. Pro získání více informací, zkuste kontaktovat autora."
+msgstr "Neposkytujeme informace k instalaci těchto aplikací, nicméně autor aplikace obvykle poskytuje základní informace pro instalaci a odinstalování své aplikace. Pro získání více informací, zkuste kontaktovat autora."
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
 msgstr "Instrukce pro instalaci a používání BOINCu jsou %1zde%2."
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr "Tento seznam je spravován centrálně na %1webových stránkách BOINC%2."
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr "Změnit emailovou adresu účtu"
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr "Nová emailová adresa '%1' je nepatná."
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
 msgstr "Nová emailová adresa je stejná jako ta původní. Nedošlo k žádné změně."
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr "Účet s touto emailovou adresou již existuje."
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr "Neplatné heslo."
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr "Emailová adresa vašeho účtu je nyní %1."
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr "Prosím %1ověřte tuto emailovou adresu%2."
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
-msgstr ""
-"Nelze upravit emailovou adresu, chyba přístupu k databázi. Zkuste to prosím "
-"později."
+msgstr "Nelze upravit emailovou adresu, chyba přístupu k databázi. Zkuste to prosím později."
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr "Změnit emailovou adresu"
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr "Změnit emailovou adresu vašeho účtu"
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr "Nová emailová adresa"
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr "Adresa musí být platného tvaru 'jmeno at domena'"
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr "Bez hesla?"
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr "Potvrďte reset"
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Touto akcí smažete všechny změny, které jste provedli v nastavení vaší "
-"komunity. Akci zrušíte kliknutím na tlačítko 'Zpět' ve vašem prohlížeči."
+msgstr "Touto akcí smažete všechny změny, které jste provedli v nastavení vaší komunity. Akci zrušíte kliknutím na tlačítko 'Zpět' ve vašem prohlížeči."
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "Resetovat předvolby"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
 msgstr "Chyba: Nesprávný typ souboru. Jsou podporovány pouze typy PNG a JPEG."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr "Váš podpis je příliš dlouhý. Maximální přípustná délka je 250 znaků."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Uživatel nenalezen: %1"
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Uživatel nenalezen:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"Jak vám máme oznamovat nové osobní zprávy, požadavky od přátel, příspěvky v "
-"odebíraných diskuzích a ostatní události?"
+msgstr "Jak vám máme oznamovat nové osobní zprávy, požadavky od přátel, příspěvky v odebíraných diskuzích a ostatní události?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "Na mé stránce s účtem (bez emalu)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "Okamžitě, pomocí emailu"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "Jednou denně v souhrnném emailu"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "Vaše identita na diskuzním fóru"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "Avatar"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "Obrázek, který je zobrazen u vašich příspěvků na nástěnkách."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "Formát: JPG nebo PNG. Velikost: nejvýše 4 KB, 100x100 bodů."
 
-#: ../user/edit_forum_preferences_form.php:80
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "Nezobrazovat avatar"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "Použít 'Globally Recognized Avatar' poskytnutý od %1"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "Toto je přijatý avatar:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "Náhled avataru"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "Takto bude váš avatar vypadat"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "Podpis pro příspěvky na fóru"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Podívejte se na %1zajímavé doplňky zdarma%2\n"
-"<br> nabízející dynamické 'obrázky do podpisu'\n"
-"<br> zobrazující váš aktuální kredit, projektové novinky, atd."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "zbývá znaků"
+msgstr "Podívejte se na %1zajímavé doplňky zdarma%2\n<br> nabízející dynamické 'obrázky do podpisu'\n<br> zobrazující váš aktuální kredit, projektové novinky, atd."
 
-#: ../user/edit_forum_preferences_form.php:105
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "Automaticky připojit podpis"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "Náhled podpisu"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "Takto bude váš podpis vypadat v diskuzích"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "Zobrazení zprávy"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "Co zobrazovat"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "Skrýt avatar"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "Skrýt podpisy"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "Zobrazovat obrázky jako odkazy"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "Otevírat odkazy v novém okně/panelu"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "Zvýraznit speciální uživatele"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "Zobrazit tolik zpráv na stránce"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "Jak řadit"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "Vlákna:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "Příspěvky:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "Automaticky přeskoč na první příspěvek v diskuzi"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "Nepřesouvat přišpendlené příspěvky na počátek"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "Filtrování zpráv"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "Fitrovaní uživatelé"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Ignorovat zprávy na diskuzním fóru a soukromé zprávy od těchto uživatelů."
+msgstr "Ignorovat zprávy na diskuzním fóru a soukromé zprávy od těchto uživatelů."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "ID uživatele (Například: 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr "Přidat uživatele do filtru"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "Klikněte pro nastavení předvoleb"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "Resetovat"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: html/user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr "Nebo vrať předvolby do základního nastavení kliknutím sem"
 
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Neplatný klíč k účtu"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Nebyl nalezen žádný účet s touto emailovou adresou"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Neplatné heslo"
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Nelze změnit vaše heslo z důvodu problémů s připojením k databázi - zkuste to prosím později."
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "Změnit heslo"
 
-#: ../user/edit_passwd_action.php:67
+#: html/user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "Vaše heslo bylo změněno."
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Nelze změnit vaše heslo z důvodu problémů s připojením k databázi - zkuste "
-"to prosím později."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Můžete se identifikovat buď"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "vaše emailová adresa a staré heslo"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "váš klíč k účtu"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Současné heslo"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>NEBO</b>: Klíč k účtu"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Získat klíč k účtu zadáním emailu"
-
-#: ../user/edit_passwd_form.php:53
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "Nové heslo"
 
-#: ../user/edit_passwd_form.php:54
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "Nové heslo, pro kontrolu"
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr "Ve vašem jméně nelze mít HTML tagy."
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr "Je třeba zadat jméno k vašemu účtu."
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr "Nelze upravit uživatelské údaje."
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr "Upravit informace o účtu"
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr "Jméno %1 pravé jméno nebo přezdívka%2"
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr "URL %1 vaší webové stránky, volitelné%2"
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr "Poštovní směrovací číslo %1 volitelné%2"
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr "Upravit údaje"
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr "Stav serveru"
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"<b>Stav serveru</b> u úkolu ukazuje, zda byl již úkol odeslán uživateli, a "
-"pokud ano, tak zda ho počítač uživatele dokončil. Možné hodnoty jsou:"
+msgstr "<b>Stav serveru</b> u úkolu ukazuje, zda byl již úkol odeslán uživateli, a pokud ano, tak zda ho počítač uživatele dokončil. Možné hodnoty jsou:"
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr ""
-"Úkol dosud není připraven k odeslání (například protože zdrojové soubory "
-"nejsou dostupné)"
+msgstr "Úkol dosud není připraven k odeslání (například protože zdrojové soubory nejsou dostupné)"
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr "Úkol je připraven k odeslání, ale nebyl dosud odeslán."
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr "Aktivní"
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr "Úkol byl zaslán, čeká se na dokončení."
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
-msgstr ""
-"Úkol byl odeslán uživateli a buď mu vypršela lhůta, nebo byl zpracován a "
-"nahlášen."
+msgstr "Úkol byl odeslán uživateli a buď mu vypršela lhůta, nebo byl zpracován a nahlášen."
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr "Výsledky"
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
-msgstr ""
-"<b>Výsledek</b> u úkolu popisuje stav úkolu na serveru po jeho "
-"<b>dokončení</b>. Možné hodnoty jsou:"
+msgstr "<b>Výsledek</b> u úkolu popisuje stav úkolu na serveru po jeho <b>dokončení</b>. Možné hodnoty jsou:"
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
-msgstr ""
-"Úkol byl odeslán uživateli, ale uživatelův počítač tento úkol dosud "
-"nedokončil a nenahlásil výsledek."
+msgstr "Úkol byl odeslán uživateli, ale uživatelův počítač tento úkol dosud nedokončil a nenahlásil výsledek."
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
 msgstr "Tento úkol byl počítačem uživatele úspěšně dokončen a odeslán."
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
-msgstr ""
-"Server nebyl schopen odeslat tento úkol uživateli (pravděpodobně z důvodu "
-"nedostatku systémových prostředků)"
+msgstr "Server nebyl schopen odeslat tento úkol uživateli (pravděpodobně z důvodu nedostatku systémových prostředků)"
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr "Chyba u uživatele"
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
 msgstr "Tento úkol byl odeslán uživateli a vyskytla se u něj chyba."
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr ""
-"Tento úkol byl odeslán uživateli a během lhůty pro vrácení nebyla doručena "
-"žádná odpověď."
+msgstr "Tento úkol byl odeslán uživateli a během lhůty pro vrácení nebyla doručena žádná odpověď."
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Úkol nebyl odeslán uživateli, protože pro danou pracovní jednotku bylo již "
-"dokončeno dostatečné množství dílčích úkolů."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "Úkol nebyl odeslán uživateli, protože pro danou pracovní jednotku bylo již dokončeno dostatečné množství dílčích úkolů."
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
-msgstr ""
-"Úkol byl dokončen, ale nemohl být na serveru ověřen, pravděpodobně kvůli "
-"tomu, že výsledné soubory se na serveru ztratily."
+msgstr "Úkol byl dokončen, ale nemohl být na serveru ověřen, pravděpodobně kvůli tomu, že výsledné soubory se na serveru ztratily."
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr "Stav klienta"
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"<b>Stav u klienta<b/> u výsledku popisuje fázi zpracování, během které "
-"nastala chyba."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "<b>Stav u klienta<b/> u výsledku popisuje fázi zpracování, během které nastala chyba."
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr "Počítač ještě nedokončil tento úkol."
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr "Počítač dokončil tento úkol úspěšně."
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
 msgstr "Počítači se nezdařilo stáhnout aplikaci nebo data tohoto úkolu"
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr "Během výpočtu nastala chyba"
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr "Počítači se nezdařilo odeslat výsledné soubory."
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr "Čas nahlášení nebo lhůta pro dokončení"
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr ""
-"<b>Čas nahlášení nebo ukončení</b> u úkolu popisuje, zda byl již výsledek "
-"úkolu odeslán nebo ne:"
+msgstr "<b>Čas nahlášení nebo ukončení</b> u úkolu popisuje, zda byl již výsledek úkolu odeslán nebo ne:"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr "Již náhlášeno"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr "Datum a čas nahlášení"
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr "Dosud nenahlášeno, lhůta ještě neuplynula"
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr "Lhůta, zobrazena zeleně."
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr "Dosud nenahlášeno, lhůta již uplynula"
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr "Lhůta, zobrazena červeně."
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr "Neznámé pole"
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Náhled emailu"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Váš email se zobrazí následujícím způsobem:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Odeslat email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Použijte tlačítko Zpět ve vašem prohlížeči na návrat ke zprávě od"
-
-#: ../user/ffmail_action.php:63
+#: html/user/ffmail_action.php:28
 msgid "Sending emails"
 msgstr "Odesílání emailů"
 
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "email odeslán úspěšně %1"
-
-#: ../user/ffmail_action.php:86
+#: html/user/ffmail_action.php:43
 msgid "failed to send email to %1: %2"
 msgstr "email se nepodařilo odeslat %1: %2"
 
-#: ../user/ffmail_action.php:92
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "selhalo odeslání emailu %1"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "email odeslán úspěšně %1"
+
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr "Děkujeme, že jste řekli svým přátelům o %1"
 
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Zapomněli jste zadat jména nebo emailové adresy vašich přátel. %1Vraťte se "
-"prosím do formuláře%2 a zadejte je."
-
-#: ../user/ffmail_form.php:30
+#: html/user/ffmail_action.php:57
 msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Zapoměl jste zadat emailovou adresu; Prosím %1vraťte se do formuláře%2 a zadejte jej."
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr "Řekněte vašim přátelům o %1"
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-"Pomožte nám tím, že řeknete svým přátelům, rodině či spolupracovníkům o %1"
-
-#: ../user/ffmail_form.php:39
+#: html/user/ffmail_form.php:49
 msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Vyplňte do tohoto formuláře jména a emailová adresy lidí, o kterých se "
-"domníváte, že by měli zájem o %1. Pošleme jim vašim jménem email, ke kterému "
-"můžete připojit i vlastní zprávu."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Vaše jméno:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Vaše emailová adresa:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Jméno přítele:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Emailová adresa přítele:"
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Použijte tento formulář pro poslání zpráv lidem, které by mohly zajímat %1."
 
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Doprovodná zpráva (volitelné)"
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "Komu:"
 
-#: ../user/ffmail_form.php:59
+#: html/user/ffmail_form.php:59
 msgid "Send"
 msgstr "Poslat"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
 msgid "You are not authorized to banish users."
 msgstr "Nemáte oprávnění vykazovat uživatele."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Je třeba vybrat akci..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Neslušný"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Útočný / Nenávistný email"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Požadavek uživatele"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "Hlasování o vykázání"
 
-#: ../user/forum_banishment_vote.php:50
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "Nenalezen žádný uživatel s tímto ID."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr "Uživatel již byl vykázán"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"Jste si jisti, že chcete vykázat %1?<br/>%1 nebude moci přispívat po určenou "
-"dobu.<br/>%1 by měl být vykázán jen tehdy, pokud se delší dobu opakovaně "
-"choval jako trol."
+msgstr "Jste si jisti, že chcete vykázat %1?<br/>%1 nebude moci přispívat po určenou dobu.<br/>%1 by měl být vykázán jen tehdy, pokud se delší dobu opakovaně choval jako trol."
 
-#: ../user/forum_banishment_vote.php:61
+#: html/user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Zvolte důvod a volitelně doplňte popis, proč by měl být uživatel vykázán."
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Zvolte důvod a volitelně doplňte popis, proč by měl být uživatel vykázán."
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "Kategorie"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Neslušný"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Útočný / Nenávistný email"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Požadavek uživatele"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Ostatní"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "Důvod"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "Poslán neprázdný"
 
-#: ../user/forum_banishment_vote.php:74
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr "Pokračovat s hlasováním"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Je třeba vybrat akci..."
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr ""
-"Tento příspěvek již nemůžete upravovat.<br/>Příspěvky mohou být upravované "
-"nejdéle %1 minut po vytvoření."
+msgstr "Tento příspěvek již nemůžete upravovat.<br/>Příspěvky mohou být upravované nejdéle %1 minut po vytvoření."
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "Nejste oprávněn upravovat tento příspěvek."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Fórum"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Editovat příspěvek"
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr "Upravit vaší zprávu"
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr "Název"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr "Přidat můj podpis k tomuto příspěvku"
 
-#: ../user/forum_forum.php:41
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "Není pro vás viditelné"
 
-#: ../user/forum_forum.php:80
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "Týmové diskuzní fórum pro %1"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr "Nové vlákno"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr "Přidat nové vlákno do tohoto fóra"
 
-#: ../user/forum_forum.php:116
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "Příspěvky tohoto fóra jsou dosupné jako %1RSS zprávy%2"
 
-#: ../user/forum_forum.php:174
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr "Toto vlákno je schované"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr "Toto vlákno je trvale viditelné a zamčené, dosud jste ho nečetli"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr "trvale viditelné/zamčené/nepřečtené"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "Toto vlákno je trvale viditelné a dosud jste ho nečetli"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr "trvale viditelné/nepřečtené"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "Toto vlákno, které je nyní zamčené, jste dosud nečetli"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr "nepřečtené/zamčené"
 
-#: ../user/forum_forum.php:186
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr "Toto vlákno jste dosud nečetli"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr "Toto vlákno je trvale viditelné a zamčené"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr "trvale viditelné/zamčené"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr "Toto vlákno je trvale viditelné"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr "trvale viditelné"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr "Toto vlákno je zamčené"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr "zamčené"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr "Čtete toto vlákno"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr "přečtené"
 
-#: ../user/forum_help_desk.php:27
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "Otázky a odpovědi"
 
-#: ../user/forum_help_desk.php:30
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Promluvte si pomocí programu Skype s dobrovolníky mluvícími mnoha jazyky. "
-"Jděte na %1BOINC Online nápověda%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Promluvte si pomocí programu Skype s dobrovolníky mluvícími mnoha jazyky. Jděte na %1BOINC Online nápověda%2."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr "Téma"
 
-#: ../user/forum_help_desk.php:45
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr "Otázky"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "Diskuze členů %1"
 
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Diskuzní fóra"
-
-#: ../user/forum_index.php:78
+#: html/user/forum_index.php:80
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
-msgstr ""
-"Pokud máte nějaké dotazy či problémy, podívejte se prosím na sekci %1Otázky "
-"a odpovědi%2 na diskuzním fóru."
+msgstr "Pokud máte nějaké dotazy či problémy, podívejte se prosím na sekci %1Otázky a odpovědi%2 na diskuzním fóru."
 
-#: ../user/forum_index.php:123
+#: html/user/forum_index.php:125
 msgid "Subscribed threads"
 msgstr "Sledovaná vlákna"
 
-#: ../user/forum_moderate_post.php:43
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Nejste oprávněn moderovat tento příspěvek."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Nelze přesunout do jiného typu kategorie"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Nelze přesunout do jiné kategorie"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Nemáte oprávnění vykazovat uživatele"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Vykázání"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "Uživatel %1 byl vykázán."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Akce selhala: Pravděpodobně problém s databází"
+
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "Moderovat příspěvek"
 
-#: ../user/forum_moderate_post.php:52
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "Skrýt příspěvek"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "Komerční spam"
 
-#: ../user/forum_moderate_post.php:58
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr "Dvojité odeslání"
 
-#: ../user/forum_moderate_post.php:63
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr "Přesunout příspěvek"
 
-#: ../user/forum_moderate_post.php:65
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr "Cílové ID vlákna:"
 
-#: ../user/forum_moderate_post.php:78
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr "Vykázat uživatele"
 
-#: ../user/forum_moderate_post.php:80
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr "Doba vykázání"
 
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 hodiny"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 hodin"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 hodin"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr "1 den"
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr "1 týden"
 
-#: ../user/forum_moderate_post.php:84
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr "2 týdny"
 
-#: ../user/forum_moderate_post.php:85
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr "1 měsíc"
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr "Navždy"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Volitelné vysvětlení %1 Toto bude součástí emailu uživateli.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr "OK"
 
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Nejste oprávněn moderovat tento příspěvek."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Nelze přesunout do jiného typu kategorie"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Nelze přesunout do jiné kategorie"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Nemáte oprávnění vykazovat uživatele"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Vykázání"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Uživatel %1 byl vykázán."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Akce selhala: Pravděpodobně problém s databází"
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Volitelné vysvětlení %1 Toto bude součástí emailu uživateli.%2"
 
-#: ../user/forum_moderate_thread.php:33
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "nemáte oprávnění"
 
-#: ../user/forum_moderate_thread.php:36
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "Moderovat vlákno '%1'"
 
-#: ../user/forum_moderate_thread.php:48
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr ""
-"Zvolte důvod, nebo jej napište ručně, proč schováváte nebo zamykáte toto "
-"vlákno, potom klikněte na OK."
+msgstr "Zvolte důvod, nebo jej napište ručně, proč schováváte nebo zamykáte toto vlákno, potom klikněte na OK."
 
-#: ../user/forum_moderate_thread.php:72
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "Aktuální forum"
 
-#: ../user/forum_moderate_thread.php:73
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "Cílové forum"
 
-#: ../user/forum_moderate_thread.php:77
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "Nový nadpis:"
 
-#: ../user/forum_post.php:40
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr ""
-"Zde mohou zakládat vlákna jen administrátoři projektu. Můžete ale přispívat "
-"do existujících vláken."
+msgstr "Zde mohou zakládat vlákna jen administrátoři projektu. Můžete ale přispívat do existujících vláken."
 
-#: ../user/forum_post.php:60
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Vaše zpráva byla ohodnocena anti-spamovým systémem Akismet jako spam. "
-"Upravte jí prosím a zkuste jí vložit znova."
+msgstr "Vaše zpráva byla ohodnocena anti-spamovým systémem Akismet jako spam. Upravte jí prosím a zkuste jí vložit znova."
 
-#: ../user/forum_post.php:70
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr "Vytvořit nové vlákno"
 
-#: ../user/forum_post.php:100
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr "Vytvořit nové vlákno"
 
-#: ../user/forum_post.php:105
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr "Nezapomeňte přidat nadpis"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "Zobraz tuto položku jako Zprávu v BOINC Manažeru"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Udělejte tak pouze pro položky, které mohou zajímat všechny dobrovolníky."
+msgstr "Udělejte tak pouze pro položky, které mohou zajímat všechny dobrovolníky."
 
-#: ../user/forum_rate.php:26
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "Hodnocení offline"
 
-#: ../user/forum_rate.php:27
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "Tato vlastnost je vypnutá projektem"
 
-#: ../user/forum_rate.php:58
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Potřebujete více průměrného nebo celkového kreditu pro ohodnocení příspěvku."
+msgstr "Potřebujete více průměrného nebo celkového kreditu pro ohodnocení příspěvku."
 
-#: ../user/forum_rate.php:62
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "Tento příspěvek již byl ohodnocen."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "Vrátit se do vlákna"
 
-#: ../user/forum_rate.php:72
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "Příspěvek zaznamenán"
 
-#: ../user/forum_rate.php:73
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "Váš příspěvek byl zaznamenán. Děkujeme za vaší pomoc."
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "Hlas uložen"
 
-#: ../user/forum_rate.php:76
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "Váš hlas byl uložen. Děkujeme za vaší pomoc."
 
-#: ../user/forum_rate.php:80
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "Problém s odesíláním hlasu"
 
-#: ../user/forum_reply.php:73
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Váš příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. "
-"Upravte ho prosím a zkuste jej vložit znova."
+msgstr "Váš příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. Upravte ho prosím a zkuste jej vložit znova."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr "Přidat příspěvek"
 
-#: ../user/forum_reply.php:137
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr "Zpráva:"
 
-#: ../user/forum_reply.php:140
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "odpovědět na %1ID zprávy%2:"
 
-#: ../user/forum_reply.php:166
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr "Odpovědět"
 
-#: ../user/forum_reply.php:169
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "Přidat můj podpis k této odpovědi"
 
-#: ../user/forum_report_post.php:45
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"Potřebujete více průměrného nebo celkového kreditu pro nahlášení příspěvku."
+msgstr "Potřebujete více průměrného nebo celkového kreditu pro nahlášení příspěvku."
 
-#: ../user/forum_report_post.php:65
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr "Nahlášení provedeno"
 
-# 92%
-#: ../user/forum_report_post.php:66
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "Vaše nahlášení bylo uloženo. Děkujeme za vaší pomoc."
 
-#: ../user/forum_report_post.php:67
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr ""
-"Moderátor nyní zkontroluje vaše nahlášení a rozhodne, co se stane dále - to "
-"může nějakou dobu trvat, prosíme o ztrpení"
+msgstr "Moderátor nyní zkontroluje vaše nahlášení a rozhodne, co se stane dále - to může nějakou dobu trvat, prosíme o ztrpení"
 
-#: ../user/forum_report_post.php:71
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr "Nahlásit příspěvek"
 
-#: ../user/forum_report_post.php:73
+#: html/user/forum_report_post.php:78
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"Před nahlášením tohoto příspěvku zvažte použití hodnocení pomocí +/-. Pokud "
-"dostatečný počet uživatelů udělí negativní  hodnocení, příspěvek bude "
-"schován.<br/>Hodnocení +/- najdete ve spodku příspěvku."
+msgstr "Před nahlášením tohoto příspěvku zvažte použití hodnocení pomocí +/-. Pokud dostatečný počet uživatelů udělí negativní  hodnocení, příspěvek bude schován.<br/>Hodnocení +/- najdete ve spodku příspěvku."
 
-#: ../user/forum_report_post.php:80
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr "Nahlásit příspěvek"
 
-#: ../user/forum_report_post.php:81
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Čím vás tento příspěvek uráží: %1Vyplňte prosím dostatek údajů, aby člověk,\n"
-"který příspěvek dosud nečetl, snadno našel daný problém.%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Čím vás tento příspěvek uráží: %1Vyplňte prosím dostatek údajů, aby člověk,\nkterý příspěvek dosud nečetl, snadno našel daný problém.%2"
 
-#: ../user/forum_report_post.php:90
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr "Nahlásit nepřihlášený"
 
-#: ../user/forum_report_post.php:91
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
 msgstr "Váš záznam nemohl být uložen. Počkejte prosím chvíli a zkuste to znova."
 
-#: ../user/forum_report_post.php:92
+#: html/user/forum_report_post.php:106
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
+"If this is not a temporary error, please report it to the project "
+"developers."
 msgstr "Pokud toto není vyjímečná chyba, kontaktujte prosím správce projektu."
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 RSS zprávy"
 
-#: ../user/forum_rss.php:42
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "Příspěvky tohoto fóra jsou dosupné jako RSS zprávy."
 
-#: ../user/forum_rss.php:43
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr "Možnosti:"
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Zahrnout pouze příspěvky od uživatele s ID %1 (výchozí: od všech uživatelů)"
+msgstr "Zahrnout pouze příspěvky od uživatele s ID %1 (výchozí: od všech uživatelů)"
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "Zahrnout pouze příspěvky za posledních %1 dní (výchozí: za 30 dní)."
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Zkrátit příspěvky: %1 (Zahrnout pouze prvních 265 znaků z každého příspěvku)"
-
-#: ../user/forum_rss.php:53
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr "Pouze vlákna: %1 (Zahrnout pouze první příspěvek v každém vláknu)"
 
-#: ../user/forum_search.php:27
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Výsledky hledání na fóru"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Vlákna odpovídající vašemu dotazu."
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Zprávy odpovídající vašemu dotazu."
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Bohužel, nebylo nalezeno nic, co by odpovídalo vašemu dotazu. Zkuste rozšířit výsledky vyhledávání použitím méně slov (nebo více specifických slov)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Můžete také zkusit %1vyhledat stejný dotaz pomocí Google.%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Zkusit jiné vyhledávání"
+
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr "Hledat na fóru"
 
-#: ../user/forum_search.php:31
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr "Vyhledávaný dotaz"
 
-#: ../user/forum_search.php:32
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "Hledat klíčová slova:"
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "Budou zobrazeny příspěvky, které obsahují všechna zadaná slova"
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "Například: \"spořič obrazovky zatuhává\""
 
-#: ../user/forum_search.php:36
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "Hledat ID autora:"
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "Budou zobrazeny pouze příspěvky od tohoto autora"
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "Například: \"43214\""
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr "Možnosti vyhledávání"
 
-#: ../user/forum_search.php:42
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr "Limity vyhledávání"
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "Hledat pouze tolik dní nazpět"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 měsíců"
 
-#: ../user/forum_search.php:52
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr "1 rok"
 
-#: ../user/forum_search.php:73
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Fórum"
+
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "Zobrazit pouze příspěvky z této diskuze"
 
-#: ../user/forum_search.php:84
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr "Třídit podle"
 
-#: ../user/forum_search.php:88
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr "Spustit hledání"
 
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Výsledky hledání na fóru"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Vlákna odpovídající vašemu dotazu."
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Zprávy odpovídající vašemu dotazu."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Bohužel, nebylo nalezeno nic, co by odpovídalo vašemu dotazu. Zkuste "
-"rozšířit výsledky vyhledávání použitím méně slov (nebo více specifických "
-"slov)."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Můžete také zkusit %1vyhledat stejný dotaz pomocí Google.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Zkusit jiné vyhledávání"
-
-#: ../user/forum_subscribe.php:46
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "Nastavení odebírání příspěvků bylo úspěšné"
 
-#: ../user/forum_subscribe.php:49
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
-msgstr ""
-"Jste nyní přihlášen k %1, budete nyní upozorněn kdykoliv zde přibyde nový "
-"příspěvek."
+msgstr "Jste nyní přihlášen k %1, budete nyní upozorněn kdykoliv zde přibyde nový příspěvek."
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "Nastavení odebírání příspěvků selhalo"
 
-#: ../user/forum_subscribe.php:52
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Momentálně není možné nastavit vám odebírání příspěvků z %1. Zkuste to "
-"prosím později."
+msgstr "Momentálně není možné nastavit vám odebírání příspěvků z %1. Zkuste to prosím později."
 
-#: ../user/forum_subscribe.php:61
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "Zrušení odebírání příspěvků bylo úspěšné"
 
-#: ../user/forum_subscribe.php:64
+#: html/user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Již nejste přihlášen k %1, nebudete dále dostávat upozornění o tomto vláknu."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Již nejste přihlášen k %1, nebudete dále dostávat upozornění o tomto vláknu."
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "Zrušení odebírání příspěvků selhalo"
 
-#: ../user/forum_subscribe.php:67
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Momentálně není možné zrušit vám odebírání příspěvků z %1. Zkuste to prosím "
-"později."
+msgstr "Momentálně není možné zrušit vám odebírání příspěvků z %1. Zkuste to prosím později."
 
-#: ../user/forum_subscribe.php:74
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "Neznámá akce pro odebírání příspěvků"
 
-#: ../user/forum_thread.php:61
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "Toto fórum pro vás není přístupné."
 
-#: ../user/forum_thread.php:69
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "Toto vlákno bylo schováno správcem."
 
-#: ../user/forum_thread.php:128
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "Má otázka byla zodpovězena."
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "Pokud byla vaše otázka dostatečně zodpovězena, klikněte prosím sem."
 
-#: ../user/forum_thread.php:137
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "Také mám tuto otázku"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr "Přidat zprávu do tohoto vlákna"
 
-#: ../user/forum_thread.php:171
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr "Zrušit odebírání příspěvků"
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-"Odebíráte příspěvky z tohoto vlákna. Klikněte sem pro zrušení odebírání."
+msgstr "Odebíráte příspěvky z tohoto vlákna. Klikněte sem pro zrušení odebírání."
 
-#: ../user/forum_thread.php:178
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr "Odebírat příspěvky"
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
 msgstr "Klikněte pro zasílání emailu při každém novém příspěvku v tomto vlákně."
 
-#: ../user/forum_thread.php:190
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr "Odkrýt toto vlákno"
 
-#: ../user/forum_thread.php:196
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr "Skrýt toto vlákno"
 
-#: ../user/forum_thread.php:202
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr "Zrušit trvalou viditelnost"
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr "Zrušit trvalou viditelnost tohoto vlákna"
 
-#: ../user/forum_thread.php:208
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr "Nastavit trvalou viditelnost"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Nastavit trvalou viditelnost tohoto vlákna"
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Udělat toto vlákno vždy se zobrazujícím v horní části fóra"
 
-#: ../user/forum_thread.php:215
+#: html/user/forum_thread.php:219
 msgid "Unlock"
 msgstr "Odemknout"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Odemknout toto vlákno"
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Povolit nové příspěvky v tomto vlákně"
 
-#: ../user/forum_thread.php:221
+#: html/user/forum_thread.php:225
 msgid "Lock"
 msgstr "Zamknout"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Zamknout toto vlákno"
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Nepovolovat nové příspěvky v tomto vlákně"
 
-#: ../user/forum_thread.php:229
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr "Přesunout toto vlákno do jiného fóra"
 
-#: ../user/forum_thread.php:234
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr "Upravit nadpis"
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr "Upravit nadpis vlákna"
 
-#: ../user/forum_thread.php:245
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Natrvalo odstranit vlákno"
+
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr "Exportovat jako Zprávu"
 
-#: ../user/forum_thread.php:251
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr "Neexportovat"
 
-#: ../user/forum_thread.php:252
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr "Neexportovat tuto novinku jako Zprávu"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr "Setřídit"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "Stav vlákna byl aktualizován"
 
-#: ../user/forum_thread_status.php:50
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "Status byl aktualizován."
 
-#: ../user/forum_user_posts.php:73
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "Příspěvky od %1"
 
-#: ../user/friend.php:33
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr "Současní přátelé"
 
-#: ../user/friend.php:39
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "Požádali jste o přátelství s %1 v %2."
 
-#: ../user/friend.php:41
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "Žádost stále očekává potvrzení."
 
-#: ../user/friend.php:52
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 nepřijímá vaše žádosti o přátelství"
 
-#: ../user/friend.php:61
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "Nemůžete mít jako přítele sami sebe"
 
-#: ../user/friend.php:69
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr "Přidat jako přítele"
 
-#: ../user/friend.php:74
+#: html/user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Požádali jste o přidání %1 jako svého přítele. %1 nyní dostane zprávu s vaší "
-"žádostí pro potvrzení přátelství."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Požádali jste o přidání %1 jako svého přítele. %1 nyní dostane zprávu s vaší žádostí pro potvrzení přátelství."
 
-#: ../user/friend.php:77
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "Přidat doprovodnou zprávu:"
 
-#: ../user/friend.php:115
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr "Žádost o přátelství zaslána"
 
-#: ../user/friend.php:116
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "%1 dostal vaší žádost."
 
-#: ../user/friend.php:126
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr "Přihlašte se prosím jako %1"
 
-#: ../user/friend.php:127
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "Musíte se přihlásit jako %1 pro zobrazení této žádosti o přátelství"
 
-#: ../user/friend.php:138
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr "Žádost o přátelství"
 
-#: ../user/friend.php:141
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 vás požádal o přátelství."
 
-#: ../user/friend.php:143
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 říká: %2"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr "Přijmout přátelství"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "Klikněte na přijmout, pokud je %1 vaším přítelem"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr "Odmítnout"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "Klikněte na odmítnout, pokud %1 není vaším přítelem"
 
-#: ../user/friend.php:186
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "Přátelství potvrzeno"
 
-#: ../user/friend.php:187
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "Vaše přátelství s %1 bylo potvrzeno."
 
-#: ../user/friend.php:205
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr "Přátelství zamítnuto"
 
-#: ../user/friend.php:206
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "Odmítli jste přítelství s %1"
 
-#: ../user/friend.php:221
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr "Oznámení nenalezeno"
 
-#: ../user/friend.php:223
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr "Přítel potvrzen"
 
-#: ../user/friend.php:224
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "%1 je nyní vaším přítelem."
 
-#: ../user/friend.php:232
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "Zrušit přátelství?"
 
-#: ../user/friend.php:234
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "Jste si jistí, že chcete zrušit vaše přátelství s %1?"
 
-#: ../user/friend.php:239
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr "Zůstat přáteli"
 
-#: ../user/friend.php:249
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "Přátelství zrušeno"
 
-#: ../user/friend.php:250
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "Vaše přátelství s %1 bylo zrušeno."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Zapomenout informace o vašem účtu?"
-
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Pokud víte emailovou adresu od vašeho a můžete na této adrese přijímat "
-"emaily:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Pokud víte emailovou adresu od vašeho a můžete na této adrese přijímat emaily:"
 
-#: ../user/get_passwd.php:29
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr ""
-"Zadejte tuto emailovou adresu níže a klikněte na OK. Budou vám zaslány "
-"informace k resetování vašeho hesla."
+msgstr "Zadejte tuto emailovou adresu níže a klikněte na OK. Budou vám zaslány informace k resetování vašeho hesla."
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr ""
-"2) Pokud jste zapomněli emailovou adresu od vašeho účtu, nebo u ní již nelze "
-"přijímat emaily:"
+msgstr "2) Pokud jste zapomněli emailovou adresu od vašeho účtu, nebo u ní již nelze přijímat emaily:"
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr ""
-"Pokud jste používali BOINC s tímto účtem, stále k němu můžete získat "
-"přístup. Postupujte takto:"
+msgstr "Pokud jste používali BOINC s tímto účtem, stále k němu můžete získat přístup. Postupujte takto:"
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
+msgstr "Jděte do datového adresáře BOINC na vašem počítači (jeho umístění je zapsáno v protokolu událostí při spuštění)."
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
 msgstr "Najděte soubor k účtu od tohoto projektu; bude pojmenován <b>%1</b>."
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Otevřete soubor v textovém editoru, např. Poznámkovém bloku. Uvidíte něco "
-"jako"
+msgstr "Otevřete soubor v textovém editoru, např. Poznámkovém bloku. Uvidíte něco jako"
 
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Vyberte a zkopírujte do stránky řetězec mezi %1 a %2 (%3 v uvedeném "
-"příkladu)."
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Vyberte a zkopírujte do stránky řetězec mezi %1 a %2 (%3 v uvedeném příkladu)."
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
 msgstr "Zkopírujte řetězec do pole níže a klikněte na OK."
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr ""
-"Nyní budete přihlášen do vašeho účtu, aktualizujte si email a heslo k vašemu "
-"účtu."
+msgstr "Nyní budete přihlášen do vašeho účtu, aktualizujte si email a heslo k vašemu účtu."
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
 msgstr "Příhlásit se pomocí autentikátoru"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Zapomenout informace o vašem účtu?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "Žádné úkoly pro GPU nebyly nahlášeny"
 
-#: ../user/gpu_list.php:183
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Nejlepší modely GPU"
+
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Následující seznam obsahuje nejproduktivnější modely GPU na různých "
-"platformách. Relativní výkon je uveden v závorkách."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Následující seznam ukazuje nejproduktivnější modely GPU na různých platformách. Relativní rychlost, měřená podle průměrných časů odevzdání úkolů je uvedena v závorkách."
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr "Vítejte v %1"
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Pro zobrazení a nastavení vlastností vašeho účtu použijte následující "
-"odkazy."
+msgstr "Pro zobrazení a nastavení vlastností vašeho účtu použijte následující odkazy."
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr "Pokud jste tak ještě neučinili, %1stáhněte si BOINC aplikaci%2."
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonymní platforma, neznámá aplikace"
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Váš účet"
 
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr "anonymní platforma"
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Chybí verze aplikace"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Chybějící aplikace"
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr "Chybí platforma"
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr "Počet dokončených úkolů"
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
 msgstr "Max úkolů na den"
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr "Počet úkolů za dnešek"
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr "Počet ověřených úkolů v řadě"
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr "Průměrná rychlost zpracování"
 
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr "Detaily aplikace pro stroj %1"
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr "Nemáme žádný záznam o tomto počítači."
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"Nelze smazat záznam tohoto počítače, protože naše databáze u něho stále "
-"eviduje práci. Musíte počkat pár dnů, než bude práce u tohoto počítače "
-"smazána z databáze."
+msgstr "Nelze smazat záznam tohoto počítače, protože naše databáze u něho stále eviduje práci. Musíte počkat pár dnů, než bude práce u tohoto počítače smazána z databáze."
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr "Smazat záznam počítače"
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr "Záznam smazán."
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr "Vrátit se na seznam svých počítačů"
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr "Spojit záznamy počítačů"
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr "Spojit počítače"
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"BOINC občas omylem přiřadí stejnému počítači více identit. Toto lze napravit "
-"propojením starších identit s tou nejnovější."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "BOINC občas omylem přiřadí stejnému počítači více identit. Toto lze napravit propojením starších identit s tou nejnovější."
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr "S tímto počítačem nelze propojit žádný další."
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr "Zobrazit detaily"
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"Zkontrolovat počítače, které jsou stejné jako %1 (vytvořen %2, ID počítače %"
-"3):"
+msgstr "Zkontrolovat počítače, které jsou stejné jako %1 (vytvořen %2, ID počítače %3):"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr "jméno"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr "vytvořena"
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr "ID počítače"
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr "žádná adresa"
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr "Spojt počítače"
 
-#: ../user/host_update_credit.php:28
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Počítače náležící %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Počítače jsou skryté"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Tento uživatel si nepřeje zobrazovat informace o svých počítačích."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Vaše počítače"
+
+#: html/user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "Aktualizuji kredit počítače"
 
-#: ../user/host_venue_action.php:41
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Kredit počítače aktualizován"
+
+#: html/user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "Umístění počítače aktualizováno"
 
-#: ../user/host_venue_action.php:43
+#: html/user/host_venue_action.php:43
 msgid "none"
 msgstr "žádné"
 
-#: ../user/host_venue_action.php:46
+#: html/user/host_venue_action.php:46
 msgid "The venue of this host has been set to %1."
 msgstr "Umístění tohoto počítače bylo nastaveno na %1."
 
-#: ../user/host_venue_action.php:48
+#: html/user/host_venue_action.php:48
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
 msgstr "Tato změna se provede až při příští komunikaci počítače s projektem."
 
-#: ../user/host_venue_action.php:50
+#: html/user/host_venue_action.php:50
 msgid "Return to host page"
 msgstr "Návrat na stránku počítačů"
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Počítače náležící %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Počítače jsou skryté"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Tento uživatel si nepřeje zobrazovat informace o svých počítačích."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Vaše počítače"
-
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr "Povolené HTML tagy"
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
 msgstr "Tyto HTML tagy jsou povolené v popisu týmu:"
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr "tučné"
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr "kurzíva"
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr "odkaz"
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr "odstavec"
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr "zalomení"
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr "předformátováno"
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"obrázek; výška nesmí překročit 450 pixelů. Prosím neodkazujte na obrázky bez "
-"souhlasu webových stránek, kde je tento obrázek uložen."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "obrázek; výška nesmí překročit 450 pixelů. Prosím neodkazujte na obrázky bez souhlasu webových stránek, kde je tento obrázek uložen."
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
 msgstr "Můžete použít i ampersandovou notaci pro speciální symboly."
 
-#: ../user/info.php:35
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Pravidla a zásady"
+
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "Používejte %1 jen na počítačích, kde to máte povoleno"
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"Používejte %1 pouze na počítačích které vlastníte, nebo na kterých vám to "
-"jejich vlastník povolil. Některé školy nebo firmy se řídí předpisy, které "
-"zakazují používat jejich počítače pro projekty jako je %1."
+msgstr "Používejte %1 pouze na počítačích které vlastníte, nebo na kterých vám to jejich vlastník povolil. Některé školy nebo firmy se řídí předpisy, které zakazují používat jejich počítače pro projekty jako je %1."
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
 msgstr "Jak bude %1 využívat váš počítač"
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"Při běhu bude %1 využívat část výpočetního výkonu, místa na disku a "
-"přenosové kapacity připojení vašeho počítače. Můžete ovlivnit, kolik "
-"prostředků bude %1 využívat a také kdy je bude využívat."
+msgstr "Při běhu bude %1 využívat část výpočetního výkonu, místa na disku a přenosové kapacity připojení vašeho počítače. Můžete ovlivnit, kolik prostředků bude %1 využívat a také kdy je bude využívat."
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"Práce vykonaná vaším počítačem přispěje k dosažení cílů %1, které jsou "
-"popsané na webových stránkách projektu. Cíle projektu se mohou čas od času "
-"měnit."
+msgstr "Práce vykonaná vaším počítačem přispěje k dosažení cílů %1, které jsou popsané na webových stránkách projektu. Cíle projektu se mohou čas od času měnit."
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr "Ochrana soukromí"
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Váš účet na %1 je identifikován podle jména, které si sami zvolíte. Toto "
-"jméno může být zobrazeno na stránkách %1 spolu s údaji o tom, kolik práce "
-"již váš počítač v %1 vykonal. Pokud si přejete zůstat v anonymitě, zvolte si "
-"takové jméno, které skryje vaší pravou identitu."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Váš účet na %1 je identifikován podle jména, které si sami zvolíte. Toto jméno může být zobrazeno na stránkách %1 spolu s údaji o tom, kolik práce již váš počítač v %1 vykonal. Pokud si přejete zůstat v anonymitě, zvolte si takové jméno, které skryje vaší pravou identitu."
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Pokud jste zapojen v %1, informace o vašem počítači (typ procesoru, velikost "
-"paměti atd.) bude zaznamenána v databázi %1 a použita pro určení, jaký typ "
-"práce bude vašemu počítači přidělen. Tyto informace budou také viditelné na "
-"stránkách %1. Nebude zobrazeno nic, co by odhalovalo umístění vašeho "
-"počítače, jako např. jméno domény či IP adresa."
+msgstr "Pokud jste zapojen v %1, informace o vašem počítači (typ procesoru, velikost paměti atd.) bude zaznamenána v databázi %1 a použita pro určení, jaký typ práce bude vašemu počítači přidělen. Tyto informace budou také viditelné na stránkách %1. Nebude zobrazeno nic, co by odhalovalo umístění vašeho počítače, jako např. jméno domény či IP adresa."
 
-#: ../user/info.php:45
+#: html/user/info.php:45
 msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Abyste se mohli zapojit do %1, musíte zadat vaší emailovou adresu, kterou "
-"používáte. Tato adresa nebude zobrazena na stránkách %1 ani sdělována jiným "
-"organizacím. %1 vám bude zasílat emailové novinky, které ovšem můžete "
-"kdykoliv zrušit."
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Abyste se mohli zapojit do %1, musíte zadat vaší emailovou adresu, kterou používáte. Tato adresa nebude zobrazena na stránkách %1 ani sdělována jiným organizacím. %1 vám bude zasílat emailové novinky, které ovšem můžete kdykoliv zrušit."
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"Soukromé zprávy poslané na webu %1 jsou viditelné jen odesílateli a "
-"příjemci. %1 nezkoumá ani nehodnotí obsah soukromých zpráv. Pokud dostáváte "
-"nevyžádané soukromé zprávy od jiného uživatele %1, je možné tohoto uživatele "
-"zablokovat pomocí %2filtru zpráv%3. Tím zabráníte doručování veřejných i "
-"soukromých zpráv od tohoto uživatele."
+msgstr "Soukromé zprávy poslané na webu %1 jsou viditelné jen odesílateli a příjemci. %1 nezkoumá ani nehodnotí obsah soukromých zpráv. Pokud dostáváte nevyžádané soukromé zprávy od jiného uživatele %1, je možné tohoto uživatele zablokovat pomocí %2filtru zpráv%3. Tím zabráníte doručování veřejných i soukromých zpráv od tohoto uživatele."
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Pokud navštěvujete diskuzní fórum na našem webu, je třeba dodržovat %"
-"2pravidla psaní příspěvků%3. Příspěvky vložené do fóra jsou viditelné všem "
-"uživatelům, včetně ne-členům. Přispíváním do fóra také dáváte všem "
-"nezrušitelné právo na čtení a kopírování vašich příspěvků."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Pokud navštěvujete diskuzní fórum na našem webu, je třeba dodržovat %2pravidla psaní příspěvků%3. Příspěvky vložené do fóra jsou viditelné všem uživatelům, včetně ne-členům. Přispíváním do fóra také dáváte všem nezrušitelné právo na čtení a kopírování vašich příspěvků."
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
 msgstr "Je bezpečné být zapojen v %1?"
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Kdykoliv si stahujete programy z Internetu, vystavujete se riziku, že "
-"program obsahuje nebezpečné chyby, nebo že server, ze kterého stahujete, byl "
-"napaden útočníkem. %1 vynakládá veškeré úsilí k minimalizaci těchto rizik. "
-"Naše servery jsou umístěny za firewallem a nastaveny na vysokou úroveň "
-"zabezpečení. Pro zajištění integrity byly všechny naše programy důkladně "
-"testovány a také digitálně podepsány na zabezpečeném počítači, který není "
-"připojen k Internetu."
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Kdykoliv si stahujete programy z Internetu, vystavujete se riziku, že program obsahuje nebezpečné chyby, nebo že server, ze kterého stahujete, byl napaden útočníkem. %1 vynakládá veškeré úsilí k minimalizaci těchto rizik. Naše servery jsou umístěny za firewallem a nastaveny na vysokou úroveň zabezpečení. Pro zajištění integrity byly všechny naše programy důkladně testovány a také digitálně podepsány na zabezpečeném počítači, který není připojen k Internetu."
 
-#: ../user/info.php:50
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Při běhu aplikačních programů %1 může docházet u některých počítačů k "
-"přehřívání. Pokud se tak stane, zastavte %1 nebo používejte %2pomocné "
-"programy%3 které sníží zatížení procesoru."
+msgstr "Při běhu aplikačních programů %1 může docházet u některých počítačů k přehřívání. Pokud se tak stane, zastavte %1 nebo používejte %2pomocné programy%3 které sníží zatížení procesoru."
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 byl vyvinut v %2. BOINC byl vyvinut na Kalifornské universitě v Berkeley."
+msgstr "%1 byl vyvinut v %2. BOINC byl vyvinut na Kalifornské universitě v Berkeley."
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr "Zodpovědnost"
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 a %2 nenese žádnou zodpovědnost za ztrátu dat nebo jakoukoliv jinou "
-"příhodu nebo stav, který může vzniknout jako následek používání %1."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 a %2 nenese žádnou zodpovědnost za ztrátu dat nebo jakoukoliv jinou příhodu nebo stav, který může vzniknout jako následek používání %1."
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr "Jiné BOINC projekty"
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"Prostředí BOINC využívají i další projekty, podobně jako %1. Můžete zvážit "
-"vaše přispění i do těchto projektů a pokud tak učiníte, váš počítač bude "
-"pracovat užitečně i v době, kdy %1 nebude mít nic na práci."
+msgstr "Prostředí BOINC využívají i další projekty, podobně jako %1. Můžete zvážit vaše přispění i do těchto projektů a pokud tak učiníte, váš počítač bude pracovat užitečně i v době, kdy %1 nebude mít nic na práci."
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"Tyto další projekty nejsou nijak sdružené s %1 a tudíž se vám nemůžeme nijak "
-"zaručit za jejich bezpečnost či předmět výzkumu. Připojte se k nim dle "
-"vašeho uvážení."
+msgstr "Tyto další projekty nejsou nijak sdružené s %1 a tudíž se vám nemůžeme nijak zaručit za jejich bezpečnost či předmět výzkumu. Připojte se k nim dle vašeho uvážení."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Jsem tu nový"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Jsem uživatel BOINCu"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Přečtěte si naše %1Pravidla a zásady%2."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Stažení BOINC pro stolní počítač."
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Stáhování"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Pro Android zařízení stáhněte BOINC z obchodu Google Play nebo z Amazon App Store."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Spusťte instalátor."
 
-#: ../user/language_select.php:47
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Vyberte %1 ze seznamu, nebo zadejte %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Instalace BOINC na tomto zařízení nebyla nenalezena."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Vyberte Nástroje / Přidat projekt. Vyberte %1 ze seznamu, nebo zadejte %2"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Pokud na vašem počítači používáte verzi BOINC pro příkazový řádek, %1vytvořte si účet%2, poté použijte příkaz %3boinccmd --project_attach%4 pro přidání projektu."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Připojit se k %1"
+
+#: html/user/language_select.php:46
 msgid "Language selection"
 msgstr "Výběr jazyka"
 
-#: ../user/language_select.php:73
+#: html/user/language_select.php:57
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
-msgstr ""
-"Tato webová stránka je dostupná ve více jazycích. Aktuálně vybraný jazyk je "
-"%1."
+msgstr "Tato webová stránka je dostupná ve více jazycích. Aktuálně vybraný jazyk je %1."
 
-#: ../user/language_select.php:78
+#: html/user/language_select.php:62
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Podle nastavení vašeho prohlížeče byl pro tyto stránky vybrán jazyk: %1. "
-"Toto nastavení lze změnit zde:"
+msgstr "Podle nastavení vašeho prohlížeče byl pro tyto stránky vybrán jazyk: %1. Toto nastavení lze změnit zde:"
 
-#: ../user/language_select.php:83
+#: html/user/language_select.php:67
 msgid "Firefox: Tools/Options/General"
 msgstr "Firefox: Menu/Možnosti/Obsah"
 
-#: ../user/language_select.php:85
+#: html/user/language_select.php:69
 msgid "Microsoft IE: Tools/Internet Options/Languages"
 msgstr "Microsoft Internet Explorer: Nástroje/Možnosti Internetu/Jazyky"
 
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Nebo si můžete vybrat jazyk kliknutím na jeden z těchto odkazů - tím si váš "
-"prohlížeč uloží cookie s nastavením. Ujistěte se prosím, že váš prohlížeč "
-"podporuje cookies."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Jméno jazyku (klikněte pro výběr)"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Nebo můžete vybrat jazyk z následujícího menu:"
 
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Použít jazyk podle nastavení prohlížeče"
-
-#: ../user/language_select.php:113
+#: html/user/language_select.php:85
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Překlady jsou tvořeny dobrovolníky. Pokud tu váš rodný jazyk dosud není, %"
-"1můžete pomoci s překladem%2."
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Překlady jsou tvořeny dobrovolníky. Pokud tu váš rodný jazyk dosud není, %1můžete pomoci s překladem%2."
 
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Emailová adresa:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "zapomenutá emailová adresa?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Heslo:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "zapomenuté heslo?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Zústat přihlášen"
-
-#: ../user/login_form.php:62
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr "nebo si %1vytvořit účet%2."
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr "Zpracovávám %1"
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr "%1 byl spojen s počítačem %2"
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
 msgstr "Vrátit se na seznam vašich počítačů"
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -5161,43 +5081,32 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"Tato operace sloučí počítače podle jejich doménového jména.\n"
-"<p>\n"
-"U všech nalezených doménových jmen sloučí všechny staší\n"
-"počítače s tímto jménem s nejnovějším počítačem s tímto jménem.\n"
-"Nekompatibilní záznamy nebudou sloučeny.\n"
-"<p>"
+msgstr "Tato operace sloučí počítače podle jejich doménového jména.\n<p>\nU všech nalezených doménových jmen sloučí všechny staší\npočítače s tímto jménem s nejnovějším počítačem s tímto jménem.\nNekompatibilní záznamy nebudou sloučeny.\n<p>"
 
-#: ../user/merge_by_name.php:82
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr "Provést tuto akci"
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr "Vrátit se na seznam počítačů"
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"Pro maximální přínos informací v této diskuzi,\n"
-"jsou diskuzní fóra moderována.\n"
-"Přispívání na diskuzní fóra se řídí těmito pravidly:\n"
+msgstr "\nPro maximální přínos informací v této diskuzi,\njsou diskuzní fóra moderována.\nPřispívání na diskuzní fóra se řídí těmito pravidly:\n"
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5226,1915 +5135,1521 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Moderátoři mohou mazat příspěvky porušující tato pravidla.\n"
-"Autoři takových příspěvků budou upozorněni emailem.\n"
-"Hrubě porušujícím uživatelům může být dočasně zakázáno přispívat\n"
-"(toto mohou provádět kvůli možnému zneužití jen projektoví administrátoři).\n"
-"Jiné obtěžující chování, jako např. nástrahy v příspěvcích pro zjištění IP "
-"adresy\n"
-"jiných uživatelů, masivní zakládání vláken či příspěvků, a pod. taktéž\n"
-"nebude tolerováno a může vést k podobnému postihu.\n"
-"<p>\n"
-"Pokud si myslíte, že některý příspěvek porušuje tato pravidla,\n"
-"klikněte na čerevené X u příspěvku a vyplňte formulář;\n"
-"moderátoři budou upozorněni na vaši stížnost.\n"
-"Toto tlačítko používejte jen u jasných porušení pravidel,\n"
-"ne u neshod s diskutujícím.\n"
-"<p>\n"
-"Při moderování diskuzí se vždy snažíme být co nejvíce fér\n"
-"ale u takto obrovské komunity uživatelů se vžy najdou takoví,\n"
-"kteří budou mít na věc jiný názor či nebudou souhlasit se\n"
-"způsobem moderování.\n"
-"Ač nás takové situace mrzí, berte prosím na vědomí, že se nikdy\n"
-"nemůžeme zavděčit všem a je třeba vždy dělat rozhodutí,\n"
-"která jsou správná pro většinu a rozvoj fóra.\n"
-"Neřešte prosím v diskuzích naše rozhodnutí při moderování.\n"
-"Nejsme projekt zkoumající sociální inženýrství či snažící se vytvořit\n"
-"dokonale férový systém. Podobné diskuze většinou k ničemu nevedou\n"
-"a často jen rozdmýchávají problémy.\n"
-"Pokud máte legitimní připomínku, zašlete prosím email\n"
-"na níže uvedenou adresu.\n"
-"<p>\n"
-"Tato pravidla moderování byla schválena projektem %1.\n"
-"Pokud máte připomínky k těmto pravidlům, pošlete nám email %2.\n"
-"\n"
+msgstr "\n<p>\nModerátoři mohou mazat příspěvky porušující tato pravidla.\nAutoři takových příspěvků budou upozorněni emailem.\nHrubě porušujícím uživatelům může být dočasně zakázáno přispívat\n(toto mohou provádět kvůli možnému zneužití jen projektoví administrátoři).\nJiné obtěžující chování, jako např. nástrahy v příspěvcích pro zjištění IP adresy\njiných uživatelů, masivní zakládání vláken či příspěvků, a pod. taktéž\nnebude tolerováno a může vést k podobnému postihu.\n<p>\nPokud si  [...]
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr "Očekávaný kredit"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr "ID výsledku"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr "ID pracovní jednotky"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr "ID počítače"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr "Získaný kredit"
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr "Očekávaný kredit: %1"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr "Blokovat zprávy od tohoto uživatele"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr "Zablokovat uživatele"
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr "Vaše zpráva byla odeslána."
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr "Nemáte žádné soukromé zprávy."
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr "Odesílatel a datum"
 
-#: ../user/pm.php:106
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr "Odpovědět na tuto zprávu"
 
-#: ../user/pm.php:107
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr "Smazat tuto zprávu"
 
-#: ../user/pm.php:112
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr "Vybrat vše"
 
-#: ../user/pm.php:114
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr "Odznačit vše"
 
-#: ../user/pm.php:117
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr "Smazat vybrané zprávy"
 
-#: ../user/pm.php:140
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr "Odesílatel"
 
-#: ../user/pm.php:143
+#: html/user/pm.php:137
 msgid "Date"
 msgstr "Datum"
 
-#: ../user/pm.php:185
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
 msgstr "Je třeba vyplnit všechna pole pro poslání soukromé zprávy"
 
-#: ../user/pm.php:188
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Zpráva odeslána"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Vaše zpráva byla odeslána %1 členům teamu."
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Vaše zpráva byla ohodnocena jako spam\n"
-"anti-spamovým systémem Akismet.\n"
-"Upravte jí prosím a zkuste jí vložit znova."
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Vaše zpráva byla označena jako SPAM\npomocí Akismet anti-spam systému.\nUpravte váš text a zkuste to znovu."
 
-#: ../user/pm.php:205
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr "Uživatel s ID %1 nenalezen"
 
-#: ../user/pm.php:210
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr "Uživatel se jménem %1 nenalezen"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
 msgstr "%1 není unikátní uživatelské jméno; budete muset použít uživatelské ID"
 
-#: ../user/pm.php:217
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr "Uživatel %1 (ID: %2) od vás nepřijímá soukromé zprávy."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr "Uživatel nenalezen"
 
-#: ../user/pm.php:242
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr "Opravdu zablokovat %1?"
 
-#: ../user/pm.php:243
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr ""
-"Jste si opravdu jisti, že chcete zablokovat uživatele %1, aby vám nemohl "
-"posílat soukromé zprávy?"
+msgstr "Jste si opravdu jisti, že chcete zablokovat uživatele %1, aby vám nemohl posílat soukromé zprávy?"
 
-#: ../user/pm.php:244
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Vemte prosím na vědomí, že můžete zablokovat jen určitý počet uživatelů."
+msgstr "Vemte prosím na vědomí, že můžete zablokovat jen určitý počet uživatelů."
 
-#: ../user/pm.php:245
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr ""
-"Uživatele, kterého jste zablokovali, můžete znova odblokovat ve vašem "
-"nastavení diskuzního fóra."
+msgstr "Uživatele, kterého jste zablokovali, můžete znova odblokovat ve vašem nastavení diskuzního fóra."
 
-#: ../user/pm.php:252
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr "Ne, nemazat"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr "uživatel nenalezen"
 
-#: ../user/pm.php:263
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr "Uživatel %1 zablokován"
 
-#: ../user/pm.php:265
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "Uživatel %1 byl zablokován, nemůže vám posílat soukromé zprávy."
 
-#: ../user/pm.php:266
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "Pro odblokování navštivte %1předvolby diskuzního fóra%2"
 
-#: ../user/pm.php:302
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr "Neznámá akce"
 
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Vaše předvolby byly upraveny, změny se projeví\n"
-"až po komunikaci vašeho počítače s %1\n"
-"nebo při vykonání požadavku %2Aktualizovat%3 ze Správce BOINC."
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 pro %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Zpět do předvoleb"
 
-#: ../user/prefs.php:41
+#: html/user/prefs.php:33
 msgid ""
-"Your preferences have been reset to the defaults, and\n"
+"Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Vaše předvolby byly vráceny na výchozí hodnoty,\n"
-"změny se projeví až po komunikaci vašeho počítače s %1\n"
-"nebo při vykonání požadavku %2Aktualizovat%3 ze Správce BOINC."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 pro %2"
+msgstr "Vaše předvolby byly upraveny, změny se projeví\naž po komunikaci vašeho počítače s %1\nnebo při vykonání požadavku %2Aktualizovat%3 ze Správce BOINC."
 
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Zpět do předvoleb"
+#: html/user/prefs.php:42
+msgid ""
+"Your preferences have been reset to the defaults, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Vaše předvolby byly vráceny na výchozí hodnoty,\nzměny se projeví až po komunikaci vašeho počítače s %1\nnebo při vykonání požadavku %2Aktualizovat%3 ze Správce BOINC."
 
-#: ../user/prefs_remove.php:45
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "Potvrdit smazání předvoleb"
 
-#: ../user/prefs_remove.php:48
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr "Jste si jisti, že chcete smazat vaše separátní %1 předvolby pro %2?"
 
-#: ../user/prefs_remove.php:52
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "Smazat předvolby"
 
-#: ../user/prefs_remove.php:54
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "Zrušit"
 
-#: ../user/profile_menu.php:35
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"%1Profily%2 umožňují uživatelům sdílet svá osobní zázemí a názory s "
-"komunitou %3."
+msgstr "%1Profily%2 umožňují uživatelům sdílet svá osobní zázemí a názory s komunitou %3."
 
-#: ../user/profile_menu.php:36
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
-msgstr ""
-"Prozkoumejte, jak různorodý svět je mezi Vámi dobrovolníky, a přispějte i "
-"vaším vlastním pohledem pro ostatní k nahlédnutí."
+msgstr "Prozkoumejte, jak různorodý svět je mezi Vámi dobrovolníky, a přispějte i vaším vlastním pohledem pro ostatní k nahlédnutí."
 
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"Pokud se tak ještě nestalo, můžete si %1vytvořit svůj vlastní uživatelský "
-"profil%2, který ukážete ostatním!"
+msgstr "Pokud se tak ještě nestalo, můžete si %1vytvořit svůj vlastní uživatelský profil%2, který ukážete ostatním!"
 
-#: ../user/profile_menu.php:42
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "Uživatel dne"
 
-#: ../user/profile_menu.php:57
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "Prohlížení uživatelských profilů"
 
-#: ../user/profile_menu.php:60
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "Prohlédněte si %1Galerii uživatelských obrázků%2."
 
-#: ../user/profile_menu.php:61
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "Procházet profily %1podle země%2."
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr ""
-"Procházet profily %1náhodně%2, %3náhodně s obrázky%2, nebo %4náhodně bez "
-"obrázků%2."
+msgstr "Procházet profily %1náhodně%2, %3náhodně s obrázky%2, nebo %4náhodně bez obrázků%2."
 
-#: ../user/profile_menu.php:66
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "Abecední výčet profilů:"
 
-#: ../user/profile_menu.php:72
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "Hledat v textech profilů"
 
-#: ../user/profile_menu.php:98
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr "Žádné profily"
 
-#: ../user/profile_menu.php:99
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "Nenalezen žádný profil odpovídající vašemu dotazu."
 
-#: ../user/profile_rate.php:29
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "Neplatný typ hlasu:"
 
-#: ../user/profile_rate.php:34
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "Hlas uložen"
 
-#: ../user/profile_rate.php:38
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr "Děkujeme"
 
-#: ../user/profile_rate.php:41
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "Vaše doporučení bylo uloženo."
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "Váš hlas pro zamítnutí tohoto profilu byl uložen."
 
-#: ../user/profile_rate.php:46
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "Vrátit se do profilu."
 
-#: ../user/profile_search_action.php:36
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "Profily obsahující '%1'"
 
-#: ../user/profile_search_action.php:40
+#: html/user/profile_search_action.php:42
 msgid "User name"
 msgstr "Jméno uživatele"
 
-#: ../user/profile_search_action.php:41
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "Připojil se k projektu"
 
-#: ../user/profile_search_action.php:44
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "Nedávný kredit"
 
-#: ../user/profile_search_action.php:54
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "Nenalezen žádný profil obsahující '%1'"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Úkol %1"
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Úkol nenalezen:"
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr "Tato vlastnost je dočasně nedostupná."
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr "Nenalezen žádný počítač s ID %1"
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr "Nemáte přístup"
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
 msgstr "Chybí uživatelské ID nebo ID počítače"
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr "Žádné zobrazitelné úkoly"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Počítám"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 je dočasně mimo provoz kvůli údržbě."
 
-#: ../user/server_status.php:100
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "Co je %1?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Novinky"
+
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr "Zastavený"
 
-#: ../user/server_status.php:103
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "Počítám"
+
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr "Vypnutý"
 
-#: ../user/server_status.php:231
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr "Stav projektu"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Verze software na serveru: %1"
-
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr "Program"
 
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr "Počítač"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "webové stránky s daty"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "server pro posílání/nahrávání dat"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "plánovač"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Spuštěný:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Program běží normálně"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Zastavený:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Program selhal, nebo je projekt odstavený"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Vypnutý:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Program je vypnutý"
-
-#: ../user/server_status.php:303
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr "Stav výpočtů"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Databázový server není dostupný"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Úkoly připravené k zaslání"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Probíhající úkoly"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Pracovní jednotky čekající na validaci"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Pracovní jednotky čekající na začlenění"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Pracovní jednotky čekající na smazání"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Úkoly čekající na smazání"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Zpoždění přechodového serveru (hod)"
-
-#: ../user/server_status.php:374
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr "Uživatelé"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "s nedávným kreditem"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "s kreditem"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "registrovaní během posledních 24 hod"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "aktuální výkon GigaFLOPů"
-
-#: ../user/server_status.php:420
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr "Úkoly podle aplikace"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "aplikační program"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "neodesláno"
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Trvání výpočtu posledních 100 úkolů v hodinách: průměr, min, max"
 
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "probíhá"
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Uživatelů během posledních 24 hodin"
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "průměrná doba běhu posledních 100 výsledků v h (min-max)"
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Verze schématu databáze: "
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "uživatelé během posledních 24 hodin"
-
-#: ../user/show_host_detail.php:40
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr "Počítač %1"
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr "Statistiky a žebříčky"
 
-#: ../user/stats.php:28
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr "Statistiky %1"
 
-#: ../user/stats.php:37
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "Nejlepší účastníci"
+
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "Nejlepší týmy"
+
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "Nejlepší počítače"
+
+#: html/user/stats.php:53
 msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Na mnoha webových stránkách jsou dostupné detailní statistiky o %1 a jiných "
-"BOINC projektech:"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Na mnoha webových stránkách jsou dostupné detailní statistiky o %1 a jiných BOINC projektech:"
 
-#: ../user/stats.php:40
+#: html/user/stats.php:56
 msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
 msgstr "Je též možné získat vaše statistiky ve formě \"obrázku do podpisu\":"
 
-#: ../user/stats.php:43
+#: html/user/stats.php:59
 msgid ""
 "Additionally you can get your individual statistics summed across all BOINC "
 "projects from several sites; see your %1home page%2."
-msgstr ""
-"Též je možné získat individuální statistiky ze všech BOINC projektů, kde "
-"jste zapojeni - na vaší %1domovské stránce%2."
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 účastníci mohou vytvořit %2týmy%3."
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Je možné být členem jen jednoho týmu v jeden okamžik. Tým můžete kdykoliv "
-"opustit a přidat se do jiného."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Každý tým má %1vlastníka%2, který může:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "přistupovat k emailovým adresám členů týmu"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "upravovat jméno a popis týmu"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "přidat nebo odebrat Správce týmu"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "vyloučit členy z týmu"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "rozpustit tým, pokud nebude mít žádné členy"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Pro připojení do týmu navštivte týmovou stránku a tam klikněte na %1Připojit "
-"se do týmu%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Najít tým"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Všechny týmy"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 týmy"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Vytvořit nový tým"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Pokud vám nevyhovuje žádný tým, můžete si %1vytvořit vlastní%2."
+msgstr "Též je možné získat individuální statistiky ze všech BOINC projektů, kde jste zapojeni - na vaší %1domovské stránce%2."
 
-#: ../user/team_admins.php:34
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "Odebrat tomuto členu práva Správce týmu"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr "Přidat nebo odebrat Správce týmu"
 
-#: ../user/team_admins.php:41
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
 msgstr "Můžete určit některé členy jako Správce týmu. Správci týmu mohou:"
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "Upravovat informace o týmu (jméno, URL, popis)"
 
-#: ../user/team_admins.php:44
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "Sledovat historii příchodů a odchodů v týmu"
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Poslat zprávy teamu"
+
+#: html/user/team_admins.php:48
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderovat týmové fórum, pokud nějaké je (správci dostávají upozornění "
-"emailem o významných událostech na fóru a označení závadných příspěvků)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Moderovat týmové fórum, pokud nějaké je (správci dostávají upozornění emailem o významných událostech na fóru a označení závadných příspěvků)"
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr "Správcí týmu nemohou:"
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr "Změnit vlastníka týmu"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr "Odebrat členy"
 
-#: ../user/team_admins.php:53
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
 msgstr "Pokud Správce týmu opustí tým, ztratí též svojí pozici Správce týmu"
 
-#: ../user/team_admins.php:54
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr ""
-"Doporučujeme vybrat jako Správce týmu pouze důvěryhodné členy, které dobře "
-"znáte."
+msgstr "Doporučujeme vybrat jako Správce týmu pouze důvěryhodné členy, které dobře znáte."
 
-#: ../user/team_admins.php:59
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr "Momentálně není žádný Správce týmu."
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr "Současní Správci týmu"
 
-#: ../user/team_admins.php:62
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr "Stát se Správcem týmu v"
 
-#: ../user/team_admins.php:77
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr "Přidat Správce týmu"
 
-#: ../user/team_admins.php:78
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr "Emailová adresa člena týmu:"
 
-#: ../user/team_admins.php:90
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr "nepodařilo se odebrat správce"
 
-#: ../user/team_admins.php:99
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr "Uživatel není členem týmu"
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr "%1 je již správcem %2"
 
-#: ../user/team_admins.php:105
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr "Nelze přidat správce"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "Tým nenalezen"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr "tým nenalezen"
 
-#: ../user/team_change_founder_action.php:38
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "Uživatel není členem %1"
 
-#: ../user/team_change_founder_action.php:41
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "Měním vlastníka %1"
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 je nyní vlastníkem %2"
 
-#: ../user/team_change_founder_form.php:37
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "Změnit vlastníka %1"
 
-#: ../user/team_change_founder_form.php:43
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr ""
-"Člen týmu %1 požádal o změnu vlastnictví tohoto týmu v %2, ale poté opustil "
-"tým, jeho požadavek byl zrušen."
+msgstr "Člen týmu %1 požádal o změnu vlastnictví tohoto týmu v %2, ale poté opustil tým, jeho požadavek byl zrušen."
 
-#: ../user/team_change_founder_form.php:49
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Člen týmu %1 požádal o vlastnictví tohoto týmu. Důvodem může být to, že jste "
-"opustil, nebo již delší dobu nekontaktoval tým."
+msgstr "Člen týmu %1 požádal o vlastnictví tohoto týmu. Důvodem může být to, že jste opustil, nebo již delší dobu nekontaktoval tým."
 
-#: ../user/team_change_founder_form.php:55
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "zamítnout žádost"
 
-#: ../user/team_change_founder_form.php:58
+#: html/user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Pokud nezamítnete žádost na změnu vlastnictví od %1, %2 dostane možnost "
-"převzít vlastnictví.<br/><br/>\n"
-"Pro přijetí nabídky převedení vlastnictví na %3 použijte následující "
-"formulář."
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Pokud nezamítnete žádost na změnu vlastnictví od %1, %2 dostane možnost převzít vlastnictví.<br/><br/>\nPro přijetí nabídky převedení vlastnictví na %3 použijte následující formulář."
 
-#: ../user/team_change_founder_form.php:66
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "Žádný nevyřízený požadavek na změnu vlastnictví."
 
-#: ../user/team_change_founder_form.php:69
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Pro převedení vlastnictví tohoto týmu na jiného člena, zaškrtněte políčko "
-"vedle jména člena a klikněte na <strong>Změnit vlastníka</strong>."
+"member name and click %1Change founder%2 below."
+msgstr "Přiřadit vlastnictví tohoto teamu jinému členovi, zkontrolujte jméno člena a klikněte níže na %1Změnit vlastníka%2."
 
-#: ../user/team_change_founder_form.php:76
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr "Nový vlastník?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr "Změnit vlastníka"
 
-#: ../user/team_change_founder_form.php:108
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
-msgstr ""
+msgstr "Žádní uživatelé k přenesení do týmu."
 
-#: ../user/team_create_action.php:29
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr "Je třeba zvolit neprázdné jméno týmu."
 
-#: ../user/team_create_action.php:34
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr "Tým pojmenovaný %1 již existuje - zvolte si prosím jiné jméno."
 
-#: ../user/team_create_action.php:54
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
 msgstr "Není možné vytvořit tým - zkuste to prosím později."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr "Vytvořit tým"
 
-#: ../user/team_create_form.php:30
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Nyní jste v %1. Musíte nejdříve %2opustit tento tým%3 před vytvářením "
-"nového."
+msgstr "Nyní jste v %1. Musíte nejdříve %2opustit tento tým%3 před vytvářením nového."
 
-#: ../user/team_delta.php:65
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "Není vlastník ani správce"
 
-#: ../user/team_delta.php:72
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "Historie týmu pro %1"
 
-#: ../user/team_delta.php:75
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr "Kdy"
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr "Uživatel"
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr "Akce"
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr "Celkový kredit v době akce"
 
-#: ../user/team_edit_action.php:53
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr "neplatná země"
 
-#: ../user/team_edit_action.php:59
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "Jméno \"%1\" již používá jiný tým."
 
-#: ../user/team_edit_action.php:62
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "Je třeba zadat jméno týmu"
 
-#: ../user/team_edit_action.php:90
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "Není možné upravit tým - zkuste to prosím později."
 
-#: ../user/team_edit_form.php:33
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "Upravit %1"
 
-#: ../user/team_edit_form.php:34
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "Aktualizovat popis týmu"
 
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 seznam emailů"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Členové %1"
 
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Seznam členů %1"
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
 
-#: ../user/team_email_list.php:78
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr "Zobrazit jako čistý text"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "Vytvořit Diskuzní fórum"
 
-#: ../user/team_forum.php:29
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "Je možné pro potřebu %1 vytvořit diskuzní fórum."
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "Přispívat budou moci pouze členové týmu."
 
-#: ../user/team_forum.php:32
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "Lze nastavit, aby toto fórum mohli číst jen členové týmu."
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr "Práva moderovat fórum budete mít vy a správci týmu."
 
-#: ../user/team_forum.php:40
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "Vytvořit diskuzní fórum pro %1."
 
-#: ../user/team_forum.php:48
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "Tým již má vlastní diskuzní fórum."
 
-#: ../user/team_forum.php:59
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "Týmové diskuzní fórum"
 
-#: ../user/team_forum.php:71
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr "Minimální čas mezi příspěvky (sek)"
 
-#: ../user/team_forum.php:74
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
 msgstr "Minimální celkový kredit potřebný pro přispívání"
 
-#: ../user/team_forum.php:77
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
 msgstr "Minimální nedávný kredit potřebný pro přispívání"
 
-#: ../user/team_forum.php:80
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr "Odeslat"
 
-#: ../user/team_forum.php:89
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr "Zrušit týmové diskuzní fórum."
 
-#: ../user/team_forum.php:97
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr "Opravdu zrušit diskuzní fórum?"
 
-#: ../user/team_forum.php:98
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"Jste si jisti, že chcete zrušit vaše týmové diskuzní fórum? Všechna vlákna a "
-"příspěvky budou smazána. (Je ale možné založit si později nové fórum)."
+msgstr "Jste si jisti, že chcete zrušit vaše týmové diskuzní fórum? Všechna vlákna a příspěvky budou smazána. (Je ale možné založit si později nové fórum)."
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr "Ano - zrušit diskuzní fórum"
 
-#: ../user/team_forum.php:121
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr "Diskuzní fórum zrušeno"
 
-#: ../user/team_forum.php:124
+#: html/user/team_forum.php:132
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Vaše týmové diskuzní fórum bylo zrušeno. Nyní si můžete %1vytvořit nové%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Vaše týmové diskuzní fórum bylo zrušeno. Nyní si můžete %1vytvořit nové%2."
 
-#: ../user/team_forum.php:143
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr "Týmové diskuzní fórum aktualizováno"
 
-#: ../user/team_forum.php:144
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr "Aktualizace byla úspěšná"
 
-#: ../user/team_forum.php:147
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr "Aktualizace selhala"
 
-#: ../user/team_forum.php:154
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr "Tým nemá vlastní fórum"
 
-#: ../user/team_founder_transfer_action.php:36
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "Musíte být členem tohoto týmu pro přístup k této stránce."
 
-#: ../user/team_founder_transfer_action.php:90
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr "Požadavek na vlastnictví %1"
 
-#: ../user/team_founder_transfer_action.php:98
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Aktuální vlastník byl upozorněn na váš požadavek emailem a soukromou "
-"zprávou.<br/><br/>\n"
-"Pokud vlastník neodpoví do 60 dnů, bude vám umožněno stát se vlastníkem."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "Aktuální vlastník byl upozorněn na váš požadavek emailem a soukromou zprávou.<br/><br/>\nPokud vlastník neodpoví do 60 dnů, bude vám umožněno stát se vlastníkem."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
 msgstr "Žádost o vlastnictví není momentálně povolena"
 
-#: ../user/team_founder_transfer_action.php:109
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr "Převzato vlastnictví %1"
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"Gratulujeme, nyní jste vlastníkem týmu %1. Na stránce %2Vašeho účtu%3 nyní "
-"naleznete volby pro administraci týmu."
+msgstr "Gratulujeme, nyní jste vlastníkem týmu %1. Na stránce %2Vašeho účtu%3 nyní naleznete volby pro administraci týmu."
 
-#: ../user/team_founder_transfer_action.php:120
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr "Odmítnout žádost na změnu vlastnictví"
 
-#: ../user/team_founder_transfer_action.php:127
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr "Žádost o vlastnictví z %1 byla zamítnuta."
 
-#: ../user/team_founder_transfer_action.php:130
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr "Nebyly žádné žádosti o změnu vlastnictví."
 
-#: ../user/team_founder_transfer_action.php:134
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr "neznámá akce %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "Návrat na týmovou stránku"
 
-#: ../user/team_founder_transfer_form.php:28
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "Je třeba být členem tohoto týmu pro přístup k této stránce."
 
-#: ../user/team_founder_transfer_form.php:31
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "Zažádat o vlastnictví %1"
 
-#: ../user/team_founder_transfer_form.php:38
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "Nyní jste vlastníkem týmu %1."
 
-#: ../user/team_founder_transfer_form.php:44
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "Požádal jste o vlastnictví týmu %1 v %2."
 
-#: ../user/team_founder_transfer_form.php:47
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr ""
-"Uplynulo 60 dní od vaší žádosti a vlastník nijak neodpověděl. Můžete nyní "
-"převzít vlastnictví týmu kliknutím zde:"
+msgstr "Uplynulo 60 dní od vaší žádosti a vlastník nijak neodpověděl. Můžete nyní převzít vlastnictví týmu kliknutím zde:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "Převzít vlastnictví"
 
-#: ../user/team_founder_transfer_form.php:54
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr ""
-"Vlastník obdržel vaší žádost. Pokud neodpoví do %1 bude vám dána možnost "
-"převzít vlastnictví."
+msgstr "Vlastník obdržel vaší žádost. Pokud neodpoví do %1 bude vám dána možnost převzít vlastnictví."
 
-#: ../user/team_founder_transfer_form.php:60
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"Pokud vlastník týmu není aktivní a máte zájem převzít vlastnictví týmu "
-"klikněte na následující tlačítko. Aktuálnímu vlastníkovi bude odeslán email "
-"s detaily vaší žádosti - bude mu umožněno předat vám vlastnictví či vaší "
-"žádost odmítnout. Pokud vlastník neodpoví do 60 dnů, bude vám umožněno "
-"převzít vlastnictví.<br/><br/>Chcete požádat o převzetí vlastnictví?"
+msgstr "Pokud vlastník týmu není aktivní a máte zájem převzít vlastnictví týmu klikněte na následující tlačítko. Aktuálnímu vlastníkovi bude odeslán email s detaily vaší žádosti - bude mu umožněno předat vám vlastnictví či vaší žádost odmítnout. Pokud vlastník neodpoví do 60 dnů, bude vám umožněno převzít vlastnictví.<br/><br/>Chcete požádat o převzetí vlastnictví?"
 
-#: ../user/team_founder_transfer_form.php:65
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "Zažádat o vlastnictví"
 
-#: ../user/team_founder_transfer_form.php:74
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "Žádost o vlastnictví byla odeslána uživatelem %1 v %2."
 
-#: ../user/team_founder_transfer_form.php:77
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr ""
-"Během posledních 90 dnů byla již odeslána žádost o vlastnictví, nové žádosti "
-"nejsou momentálně povolené. Zkuste to prosím později."
+msgstr "Během posledních 90 dnů byla již odeslána žádost o vlastnictví, nové žádosti nejsou momentálně povolené. Zkuste to prosím později."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr "Nelze se připojit k týmu %1."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr "Již členem"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr "Již jste členem týmu %1."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Nelze se připojit k týmu - zkuste to prosím později."
-
-#: ../user/team_join_action.php:40
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "Připojili jste se k %1"
 
-#: ../user/team_join_action.php:41
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "Připojili jste se k %1."
 
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Připojit se k %1"
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Nelze se připojit k týmu - zkuste to prosím později."
 
-#: ../user/team_join_form.php:33
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr "Upozornění:"
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
 msgstr "Připojením k týmu dáte jeho vlastníkovi přístup k vaší emailové adrese."
 
-#: ../user/team_join_form.php:36
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "Připojení k týmu nijak neovlivní váš kredit."
 
-#: ../user/team_join_form.php:43
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr "Připojit se k týmu"
 
-#: ../user/team_lookup.php:84
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr "Výsledky hledání"
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr "Výsledky hledání pro '%1'"
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
 msgstr "Je možné si zobrazit členy tohoto týmu, statistiky a další informace."
 
-#: ../user/team_lookup.php:98
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Pro váš dotaz bylo nalezeno více než 100 výsledků, zobrazeno je prvních 100."
+msgstr "Pro váš dotaz bylo nalezeno více než 100 výsledků, zobrazeno je prvních 100."
 
-#: ../user/team_lookup.php:104
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Konec výsledků. %1 Pokud vám nevyhovuje žádný tým, můžete si %2vytvořit "
-"vlastní%3."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Konec výsledků. %1 Pokud vám nevyhovuje žádný tým, můžete si %2vytvořit vlastní%3."
 
-#: ../user/team_manage.php:26
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "Administrace týmu pro %1"
 
-#: ../user/team_manage.php:29
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr "Upravit údaje o týmu"
 
-#: ../user/team_manage.php:30
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "Změnit jméno týmu, URL adresu, popis, typ či zemi"
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr "Seznam členů:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr "text"
 
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Zobrazit jména členů a jejich emailové adresy"
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Zobrazit info uživatele"
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:40
 msgid "View change history:"
 msgstr "Zobrazit historii změn:"
 
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
 msgstr "Zobrazit, kdy se k týmu přidávali či tým opouštěli členové"
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr "Odpovědět na žádost o předání vlastnictví."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
 msgstr "Pokud neodpovíte do %1, %2 bude moci převzít vlastnictví tohoto týmu."
 
-#: ../user/team_manage.php:55
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr "Odebrat neaktivní či nežádoucí členy týmu."
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr "Převést vlastnictví na jiného člena"
 
-#: ../user/team_manage.php:58
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr "Přidat/odebrat Správce týmu"
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
 msgstr "Nastavit vybraným členům týmu práva Správce týmu"
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr "Zrušit tým"
 
-#: ../user/team_manage.php:62
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr "Povoleno jen když tým nemá žádné členy"
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr "Vytvořit či spravovat týmové diskuzní fórum"
 
-#: ../user/team_manage.php:71
+#: html/user/team_manage.php:75
 msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Pro vytvoření týmu ve všech BOINC projektech, aktuálních i budoucích, lze "
-"založit %1Globální BOINC tým%2."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Pro vytvoření týmu ve všech BOINC projektech, aktuálních i budoucích, lze založit %1Globální BOINC tým%2."
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
-msgstr ""
-"Správcům týmů je doporučováno zapojit se do Google skupiny %1boinc-team-"
-"founders%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Na této stránce jsou dostupné další nástroje pro správce BOINC týmů: %"
-"1www.boincteams.com%2."
+msgstr "Správcům týmů je doporučováno zapojit se do Google skupiny %1boinc-team-founders%2."
 
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr "Nelze smazat neprázdný tým"
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr "Tým %1 smazán"
 
-#: ../user/team_members.php:36
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr "Překročen limit: Lze zobrazit jen prvních 1000 členů."
 
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Členové %1"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 účastníci mohou vytvořit %2týmy%3."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Je možné být členem jen jednoho týmu v jeden okamžik. Tým můžete kdykoliv opustit a přidat se do jiného."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Každý tým má %1vlastníka%2, který může:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "upravovat jméno a popis týmu"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "přidat nebo odebrat Správce týmu"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "vyloučit členy z týmu"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "rozpustit tým, pokud nebude mít žádné členy"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Pro připojení do týmu navštivte týmovou stránku a tam klikněte na %1Připojit se do týmu%2."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Najít tým"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Všechny týmy"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 týmy"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Vytvořit nový tým"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Pokud vám nevyhovuje žádný tým, můžete si %1vytvořit vlastní%2."
 
-#: ../user/team_quit_action.php:32
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "Nelze opustit tým"
 
-#: ../user/team_quit_action.php:33
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "Tým neexistuje, nebo nejste jeho členem."
 
-#: ../user/team_quit_form.php:31
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "Opustit %1"
 
-#: ../user/team_quit_form.php:32
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Upozornění před opuštěním týmu:</strong>\n"
-"         <ul>\n"
-"         <li>Pokud opustíte tým, můžete se do něj později vrátit, nebo se "
-"připojit do kteréhokoliv jiného týmu.</li>\n"
-"         <li>Opuštění týmu nemá žádný vliv na vaše statistiky či "
-"kredit.</li>\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>Upozornění před opuštěním týmu:</strong>\n         <ul>\n         <li>Pokud opustíte tým, můžete se do něj později vrátit, nebo se připojit do kteréhokoliv jiného týmu.</li>\n         <li>Opuštění týmu nemá žádný vliv na vaše statistiky či kredit.</li>\n         </ul>"
 
-#: ../user/team_quit_form.php:40
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "Opustit tým"
 
-#: ../user/team_remove_inactive_action.php:31
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "Odebrání členů z %1"
 
-#: ../user/team_remove_inactive_action.php:39
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1 není členem %2"
 
-#: ../user/team_remove_inactive_action.php:42
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 byl odebrán"
 
-#: ../user/team_remove_inactive_form.php:32
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "Odebrat členy z %1"
 
-#: ../user/team_remove_inactive_form.php:39
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr "Odebrat?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr "Jméno (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr "Není vhodný žádný člen pro odebrání."
 
-#: ../user/team_remove_inactive_form.php:68
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr "Odebrat uživatele"
 
-#: ../user/team_search.php:68
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr "Jméno týmu"
 
-#: ../user/team_search.php:92
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Validováno?"
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr "Výsledky hledání týmů"
 
-#: ../user/team_search.php:94
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
 msgstr "Nenalezen žádný tým podle vašeho dotazu. Zkuste prosím jiný dotaz."
 
-#: ../user/team_search.php:96
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr "Nebo si můžete %založit nový tým%2."
 
-#: ../user/team_search.php:100
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"Následující týmy odpovídají jednomu či více z vašich zadaných požadavků.\n"
-"Pro přidání klikněte na jméno týmu - tím se dostanete na stránku tohoto "
-"týmu,\n"
-"zde klikněte na %1Přidat se do týmu%2."
+msgstr "Následující týmy odpovídají jednomu či více z vašich zadaných požadavků.\nPro přidání klikněte na jméno týmu - tím se dostanete na stránku tohoto týmu,\nzde klikněte na %1Přidat se do týmu%2."
 
-#: ../user/team_search.php:107
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr "Změnit hledané údaje"
 
-#: ../user/team_search.php:181
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr ""
-"Můžete se přidat do týmu k lidem, kteří mají podobné zájmy, jsou ze stejné "
-"země, společnosti či školy."
+msgstr "Můžete se přidat do týmu k lidem, kteří mají podobné zájmy, jsou ze stejné země, společnosti či školy."
 
-#: ../user/team_search.php:183
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
 msgstr "K nalezení týmů, které by vás mohly zajímat, použijte tento formulář."
 
-#: ../user/team_search.php:188
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "%1Nemám zájem%2 připojovat se momentálně k týmu."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "Překročen limit - zobrazeno jen prvních %1 položek"
 
-#: ../user/top_hosts.php:82
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "Nejlepší počítače"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr "Nejlepší %1 týmy"
 
-#: ../user/top_teams.php:108
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr "Nenalezeny žádné %1 týmy"
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr "Účastníkem od"
 
-#: ../user/uotd.php:29
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr "Nebyl zvolen žádný Uživatel dne."
 
-#: ../user/uotd.php:33
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr "Uživatel dne pro %1: %2"
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr "Filtry"
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr "Uživatelské jméno začíná na"
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr "Všechny"
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr "S profilem?"
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr "Nebo"
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr "V týmu?"
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr "Řazení"
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr "Sestupně podle času registrace"
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr "Sestupně podle průměrného kreditu"
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr "Sestupně podle celkového kreditu"
 
-#: ../user/user_search.php:100
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr "hledaný řetězec musí být aspoň 3 znaky dlouhý"
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr "Výsledky hledání uživatelů"
 
-#: ../user/user_search.php:140
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr "Připojen"
 
-#: ../user/user_search.php:148
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr "Žádný uživatel neodpovídá vašim kriteriím."
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr "Uživatel nenalezen!"
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr "Data o účtu<br/>pro %1<br/>Čas:"
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr "Tým:"
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr "Celkový kredit týmu:"
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr "Průměrný nový kredit týmu:"
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr "Tým: žádný"
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr "Ověřit BOINC emailovou adresu"
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr ""
-"Klikněte prosím na tento odkaz pro ověření emailové adresy vašeho účtu %1:"
+msgstr "Klikněte prosím na tento odkaz pro ověření emailové adresy vašeho účtu %1:"
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr "Email pro ověření byl odeslán"
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr ""
-"Byl odeslán email na %1. Klikněte prosím na odkaz, který tento email "
-"obsahuje, pro ověření dané emailové adresy."
+msgstr "Byl odeslán email na %1. Klikněte prosím na odkaz, který tento email obsahuje, pro ověření dané emailové adresy."
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr "Uživatel nenalezen."
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
 msgstr "Chyba dat v URL - nelze validovat emailovou adresu"
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
 msgstr "Aktualizace databáze selhala - zkuste to prosím později."
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
 msgstr "Ověřit emailovou adresu"
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr "Emailová adresa vašeho účtu byla ověřena."
 
-#: ../user/view_profile.php:36
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "Tento uživatel nemá žádný profil"
 
-#: ../user/view_profile.php:54
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "Profil: %1"
 
-#: ../user/view_profile.php:63
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr "Data účtu"
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"K účtu můžete přistupovat buď pomocí vaší emailové adresy a hesla,\n"
-"nebo pomocí přiděleného \"klíče k účtu\".\n"
-"Váš klíč k účtu je:"
+msgstr "K účtu můžete přistupovat buď pomocí vaší emailové adresy a hesla,\nnebo pomocí přiděleného \"klíče k účtu\".\nVáš klíč k účtu je:"
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr "Tento klíč může být použít k:"
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr "přihlášení k účtu na webu"
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"pro přídání počítače k vašemu účtu bez Správce BOINC.\n"
-"K tomu je třeba nainstalovat BOINC,\n"
-"vytvořit soubor s názvem %1 ve složce, kde má BOINC data,\n"
-"a obsah tohoto souboru nastavit na:"
+msgstr "pro přídání počítače k vašemu účtu bez Správce BOINC.\nK tomu je třeba nainstalovat BOINC,\nvytvořit soubor s názvem %1 ve složce, kde má BOINC data,\na obsah tohoto souboru nastavit na:"
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr "Slabý klíč k účtu"
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"Váš slabý klíč k účtu může být použit pro připojení počítačů k účtu\n"
-"tak, jak je popsáno výše, ale nemůže být nijak použit pro přihlášení k "
-"vašemu účtu či změně údajů.\n"
-"Pokud chcete připojit k vašemu účtu nezabezpečené počítače,\n"
-"použijte k tomu váš slabý klíč k účtu.\n"
-"Váš slabý klíč k účtu je:"
+msgstr "Váš slabý klíč k účtu může být použit pro připojení počítačů k účtu\ntak, jak je popsáno výše, ale nemůže být nijak použit pro přihlášení k vašemu účtu či změně údajů.\nPokud chcete připojit k vašemu účtu nezabezpečené počítače,\npoužijte k tomu váš slabý klíč k účtu.\nVáš slabý klíč k účtu je:"
 
-#: ../user/weak_auth.php:81
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
-"Při změně hesla dojde též ke změně vašeho slabého klíče k účtu a váš "
-"předchozí slabý klíč se tak stane neplatným."
+msgstr "Při změně hesla dojde též ke změně vašeho slabého klíče k účtu a váš předchozí slabý klíč se tak stane neplatným."
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr "nelze najít pracovní jednotku"
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr "Pracovní jednotka %1"
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "aplikační program"
+
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr "částečný výsledek"
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr "přidělený kredit"
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Probíhající úkoly"
+
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "potlačeno očekávané dokončení"
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
 msgstr "minimální kvorum"
 
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr "počáteční replikace"
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
 msgstr "max # chyb/celkem/úspěšných úkolů"
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr "chyby"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr "validace"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr "Nevyřízené"
 
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Hlavní stránka"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Autorská práva"
-
-#: ../project.sample/project.inc:48
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr "Vytvořeno"
 
-#: ../project.sample/project.inc:79
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
 msgstr "Vaše osobní zázemí."
 
-#: ../project.sample/project.inc:83
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Řekněte nám něco o sobě. Můžete například uvést odkud jste, jaký je váš věk, "
-"povolání, koníčky či cokoliv dalšího o vás."
+msgstr "Řekněte nám něco o sobě. Můžete například uvést odkud jste, jaký je váš věk, povolání, koníčky či cokoliv dalšího o vás."
 
-#: ../project.sample/project.inc:87
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr "Vaše názory na %1"
 
-#: ../project.sample/project.inc:91
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"Řekněte nám, co si myslíte o %1<ol>\n"
-"    <li>Proč jste se zapojil do %1?</li>\n"
-"    <li>Jaké jsou vaše očekávání od projektu?</li>\n"
-"    <li>Nějaké připomínky?</li>\n"
-"    </ol>"
+msgstr "Řekněte nám, co si myslíte o %1<ol>\n    <li>Proč jste se zapojil do %1?</li>\n    <li>Jaké jsou vaše očekávání od projektu?</li>\n    <li>Nějaké připomínky?</li>\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr "Barevné schéma pro grafiku"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "Maximum CPU % pro grafiku %10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr "Povolit jen vybrané aplikace"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Dostávat úkoly jen pro určité aplikace. Užitečné při zaměření se na konkrétní aplikace, nebo pro jejich vyloučení."
+
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
-msgstr ""
-"Pokud není dostupná žádná práce pro vámi vybrané aplikace, přijímat práci i "
-"od jiných aplikací?"
+msgstr "Pokud není dostupná žádná práce pro vámi vybrané aplikace, přijímat práci i od jiných aplikací?"
+
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Jsou-li k dispozici rychlejší aplikace bez grafického prostředí, mají se použít?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr "(všechny aplikace)"
 
-#~ msgid "Error:"
-#~ msgstr "Chyba:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Vytváření účtů je zakázáno"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Omlouváme se, projekt má zakázáno vytváření nových účtů. \n"
-#~ "Zkuste to prosím později."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "Momentálně je zakázáno vytváření nových účtů. Zkuste to prosím později."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "nvidia GPU"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Tento projekt nemá nastavenou svojí emailovou adresu - kontaktujte prosím "
-#~ "administrátory."
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Tyto se vztahují na všechny BOINC projekty, ve kterých se účastníte.<br/>\n"
-#~ "U počítačů připojených do více projektů budou použity nejaktuálnější "
-#~ "předvolby."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Exportovat tuto novinku jako Zprávu"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Jděte do složky ve vašem počítači, kam BOINC ukládá svá data (u Windows to "
-#~ "je obvykle <b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> "
-#~ "nebo <b>C:\\Program Files\\BOINC</b>."
-
-#~ msgid "No such task"
-#~ msgstr "Úkol nenalezen"
-
-#~ msgid "Computer is connected to the Internet about every %1 Leave blank or 0 if always connected. %2 BOINC will try to maintain at least this much work (max 10 days). %3"
-#~ msgstr "Počítač bývá připojen k Internetu jednou za %1 Pokud je připojen trvale, ponechte prázdné či zadejte 0. %2 BOINC se pokusí obstarávat dostatek práce alespoň na tolik dnů (max.10): %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Zajistit dostatek práce na další"
-
-#~ msgid "Update failed: "
-#~ msgstr "Aktualizace selhala: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Poskytuje %1omezený přístup%2 k vašemu účtu"
-
-#~ msgid "Don't use this form. Just run BOINC, select Add Project, and enter an email address and password."
-#~ msgstr "Nepoužívejte tento formulář. Jednoduše spusťte BOINC, zvolte Přidat projekt a zadejte emailovou adresu a heslo."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Nepřerovnávat trvale viditelné příspěvky"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Pokud má diskuze více než"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "příspěvků, zobraz pouze první a pak tolik nejnovějších"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Vaše nahlášení bylo uloženo. Děkujeme za vaší pomoc."
-
-#~ msgid "Search type"
-#~ msgstr "Typ hledání"
-
-#~ msgid "User names starting with"
-#~ msgstr "Uživatelská jména začínající na"
-
-#~ msgid "Your 'weak account key' lets you link a computer to your account without giving it the ability to log in to your account or to change it in any way."
-#~ msgstr "Váš 'slabý klíč k ůčtu' umožňuje přidávat počítače s omezenými právy k vašemu účtu - bez možnosti přístupu na účet či ke změně nastavení."
-
-#~ msgid "This mechanism works only with projects that have upgraded their server software 7 Dec 2007 or later."
-#~ msgstr "Tento mechanismus funguje pouze tehdy, pokud byl software na serveru projektu aktualizován po 7. prosinci 2007."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Váš slabý klíč k účtu pro tento projekt je:"
-
-#~ msgid "To use your weak account key on a given host, find or create the 'account file' for this project. This file has a name of the form <b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr "K použití slabého klíče na daném stroji najděte nebo vytvořte 'soubor k účtu' k danému projektu. Tento soubor má jméno ve tvaru <b>account_ADRESA_PROJEKTU.xml</b>. Soubor s účtem pro %1 je <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Vytvořte tento soubor, pokud je to třeba. Nastavte jeho obsah na:"
-
-#~ msgid "Your weak account key is a function of your password. If you change your password, your weak account key changes, and your previous weak account key becomes invalid."
-#~ msgstr "Váš slabý klíč k účtu je provázán s vaším heslem. Pokud změníte vaše heslo, váš slabý klíč se také změní a váš předchozí slabý klíč se tímto zneplatní."
-
-#~ msgid "Account key"
-#~ msgstr "Klíč k účtu"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Poskytuje plný přístup k vašemu účtu"
-
-#~ msgid "Export"
-#~ msgstr "Exportovat"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Nevyřízené ověření emailové adresy"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Přihlášen jako %1."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Přihlásit jako někdo jiný."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Nenelezeno vlákno s id %1. Zkontrolujte si prosím odkaz a zkuste to znova."
-
-#~ msgid "Request not found"
-#~ msgstr "Žádost nenalezena"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 si vás přidal jako svého přítele."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Data o účtu %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "nelze vytvořit diskuzní fórum."
-
-#~ msgid "message board not found"
-#~ msgstr "diskuzní fórum nenalezeno"
-
-#~ msgid "no such forum"
-#~ msgstr "fórum nenalezeno"
-
-#~ msgid "unknown command %1"
-#~ msgstr "neznámý příkaz %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "CHYBA: %1 neexistuje! Nelze vytvořit nabídku s volbami.<br/>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Pro ochranu projektových stránek před spamem je vyžadováno zadání dvou "
-#~ "slov které prosím opište z tohoto obrázku:<br/>\n"
-
-#~ msgid "Last %1"
-#~ msgstr "Posledních %1"
-
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Využití prostředků a grafika"
-
-#~ msgid "fll"
-#~ msgstr "fll"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Úkoly pro počítač %1"
-
-#~ msgid "Provides"
-#~ msgstr "Poskytuje"
-
-#~ msgid "limited access"
-#~ msgstr "omezený přístup"
-
-#~ msgid "to your account"
-#~ msgstr "k Vašemu účtu"
-
-#~ msgid "Current version"
-#~ msgstr "Aktuální verze"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Označit jako nepřečtené"
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Bez limitu"
 
-#~ msgid "With selected"
-#~ msgstr "Vybrané zprávy"
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Max # úkolů pro tento projekt"
 
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Opravdu chcete smazat zprávu s předmětem "%1" (poslanou "
-#~ "uživatelem %2 v %3)?"
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Max # CPU pro tento projekt"
 
-#~ msgid "Yes, delete"
-#~ msgstr "Ano, smazat"
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "Max # úkolů"
 
-#~ msgid "No such message."
-#~ msgstr "Nenalezena žádná zpráva."
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "Max # CPU"
diff --git a/html/languages/translations/da.po b/html/languages/translations/da.po
deleted file mode 100644
index 64aad77..0000000
--- a/html/languages/translations/da.po
+++ /dev/null
@@ -1,6845 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC Project (Generic) 6.x\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-10-12 18:56+0000\n"
-"Last-Translator: pryds <thomas at pryds.eu>\n"
-"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
-"Language: da\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1381604174.0\n"
-
-#, fuzzy
-msgid "LANG_NAME_NATIVE"
-msgstr "Danish"
-
-#, fuzzy
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Danish"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-#, fuzzy
-msgid "Default"
-msgstr "Slet"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-#, fuzzy
-msgid "Orange"
-msgstr "Skift"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Søg efter ord i forum-posts"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Søg i forummet"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Avanceret søgning"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Personlige beskeder"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Spørgsmål og svar (Q&A)"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Forum"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "Forum for %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Forfatter"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Meddelelse"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send message"
-msgstr "Send meddelelse"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send %1 a private message"
-msgstr "Send %1 en personlig meddelelse"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-#, fuzzy
-msgid "Posts: %1"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:596
-#, fuzzy
-msgid "Credit: %1"
-msgstr "Opret"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "You haven't read this message yet"
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "Unread"
-msgstr "ulæst"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-#, fuzzy
-msgid "Message %1"
-msgstr "Meddelelse"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "skjult"
-
-#: ../inc/forum.inc:625
-#, fuzzy
-msgid "Posted: %1"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-#, fuzzy
-msgid "Edit this message"
-msgstr "Send meddelelse"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
-msgid "Report as offensive"
-msgstr "Sidste indlæg"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Svar"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-#, fuzzy
-msgid "Quote"
-msgstr "Forlad holdet"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-#, fuzzy
-msgid "Posted %1 by %2"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-#, fuzzy
-msgid "More info"
-msgstr "Hold-info"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-#, fuzzy
-msgid "Banish author"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"For at starte et nyt emne i %t skal du have optjent points. Denne "
-"begrænsning er til for at forhindre misbrug af systemet."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Du kan ikke lave flere emner lige nu. Vent venligst et stykke tid før "
-"du prøver igen. Denne begrænsning er til for at forhindre "
-"misbrug af systemet."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Emne"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Visninger"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Sidste indlæg"
-
-#: ../inc/forum.inc:1235
-#, fuzzy
-msgid "New posts in the thread %1"
-msgstr "Skriv indlæg"
-
-#: ../inc/forum.inc:1240
-#, fuzzy
-msgid "New posts in subscribed thread"
-msgstr "Tilmeld notificering"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Marker alle emner læst"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "Marker alle emner i alle fora 'læst'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Skole"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-#, fuzzy
-msgid "Created"
-msgstr "Opret"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Points ialt"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Løbende gennemsnit"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-#, fuzzy
-msgid "Application details"
-msgstr "Applikationer"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Jobs"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-#, fuzzy
-msgid "Merge"
-msgstr "Meddelelse"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rang"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Løbende gennemsnit"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-#, fuzzy
-msgid "Cross-project stats:"
-msgstr "Cross-project statistik"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-#, fuzzy
-msgid "All computers"
-msgstr "Computere"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-#, fuzzy
-msgid "Computer ID"
-msgstr "Computere"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Navn"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Indbakke"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Skriv"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Send personlig meddelelse"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Forhåndsvisning"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Til"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Bruger ID eller unikke brugernavne, separeret med komma"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Emne"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Send meddelelse"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Du kan ikke sende personlige meddelelser så ofte. Vent venligst et "
-"stykke tid før du sender flere meddelelser."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "ulæst"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "Personlige beskeder"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-#, fuzzy
-msgid "Edit preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-#, fuzzy
-msgid "Combined preferences"
-msgstr "Computer-indstillinger"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-#, fuzzy
-msgid "Edit %1 preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-#, fuzzy
-msgid "Add preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:948
-#, fuzzy
-msgid "Update preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-#, fuzzy
-msgid "Computation error"
-msgstr "Computere"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-#, fuzzy
-msgid "Done"
-msgstr "Ingen"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-#, fuzzy
-msgid "Task"
-msgstr "Jobs"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-#, fuzzy
-msgid "Computer"
-msgstr "Computere"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-#, fuzzy
-msgid "Sent"
-msgstr "Afsender"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-#, fuzzy
-msgid "Credit"
-msgstr "Opret"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-#, fuzzy
-msgid "Application"
-msgstr "Applikationer"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-#, fuzzy
-msgid "Application version"
-msgstr "Applikationer"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-#, fuzzy
-msgid "State"
-msgstr "Dato"
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Søge-kriterier (brug en eller flere)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Nøgleord"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Find hold med disse ord i deres navn eller beskrivelse"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Land"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Holdets type"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Vis kun aktive hold"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Søg"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Fuldfør overførslen af ejerskab"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Startet af dig"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "deadline for grundlæggerens svar er %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ingen"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Begynd forespørgsel"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Udskudt"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Hold-info"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Website"
-
-#: ../inc/team.inc:120
-#, fuzzy
-msgid "Cross-project stats"
-msgstr "Cross-project statistik"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Type"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Forum"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Emner"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Bliv medlem"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Note: hvis 'OK til email' er valgt i dine projekt-indstillinger vil hold-"
-"lederen af det hold du bliver medlem i få adgang til din email "
-"addresse."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Accepterer ikke nye medlemmer"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Medlemmer"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Hold-leder"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Admins"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Nye medlemmer siden igår"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Medlemmer ialt"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "se"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktive medlemmer"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Medlemmer med points"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Admin"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Næste %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Holdet findes ikke."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Denne funktion kræver at du er leder af holdet."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Denne funktion kræver at du har hold-administrator rettigheder"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Om sikkerheden%2: hvis du laver et hold vil dine projekt-indstillinger "
-"(dvs. resource-fordeling, grafik-indstillinger osv.) blive "
-"tilgængelige for offentligheden."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Hold navn, rentekst-udgave"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Brug ikke HTML tags."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Hold navn, HTML-udgave"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Du kan bruge %1nogle HTML tags%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Hvis ikke du kan HTML kan du lade feltet være tomt."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Holdets hjemmeside-URL, hvis den findes"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "uden \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-"Der vil blive linket til denne URL fra holdets side på dette website."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Beskrivelse af holdet"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projekter som du deltager i"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projekter som %1 deltager i"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Siden"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Udregninger og points"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Computere på denne konto"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Se"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Cross-project statistik"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Hold"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certifikat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistik på din mobil"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Konto-information"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Emailaddresse"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Postboks (områdenummer)"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "Medlem af %1 siden"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Skift"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "emailaddresse"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "password"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "anden konto-information"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Bruger ID"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Kontonøgle"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Indstillinger"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Hvornår og hvordan BOINC må bruge din computer"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Computer-indstillinger"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Forum og personlige meddelelser"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Forum-indstillinger"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Slet"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Opret"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 indlæg"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Notificering"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Forlad holdet"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administrer"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Medlem af hold"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "find et hold"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Leder men ikke medlem af"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Find venner"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Venner"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Computere"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donor"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Denne person er en ven"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Afbryd venskab"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Forespørgsel igang"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Tilføj som ven"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "Log ud"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Opret en konto"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Du kan bruge BBCode-tags til at formatere din tekst"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identificerer dig på vores website. Brug dit rigtige navn eller et "
-"dæknavn."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Vælg det land, om noget, du gerne vil repræsentere."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Postbox (områdenummer)"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Ikke påkrævet"
-
-#: ../user/account_finish_action.php:27
-#, fuzzy
-msgid "You must supply a name for your account"
-msgstr "Du skal angive en invitationskode for at oprette en konto."
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Applikationer"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 har i øjeblikket følgende applikationer. Når du "
-"deltager i %1, vil jobs til en eller flere af disse applikationer blive "
-"tildelt til din computer. Den nyeste version af applikationen vil blive "
-"downloaded til din computer. Dette sker helt automatisk; du behøver "
-"ikke at foretage dig noget."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platform"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Installeret"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "Beskrivelse"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "Forlad holdet"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Hold"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-#, fuzzy
-msgid "User of the day"
-msgstr "Dagens Bruger"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profiler"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Top deltagere"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-#, fuzzy
-msgid "Top computers"
-msgstr "Computere"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-#, fuzzy
-msgid "Top teams"
-msgstr "Top %1 hold"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Læs vores regler og politik"
-
-#: ../user/create_account_action.php:26
-#, fuzzy
-msgid "Can't create account"
-msgstr "Opret brugerkonto"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Du skal angive en invitationskode for at oprette en konto."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Den invitationskode du angav var ikke korrekt."
-
-#: ../user/create_account_action.php:84
-#, fuzzy
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "Det skal være en gyldig adresse på formen 'navn at domain'."
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "Opret brugerkonto"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Denne brugerkonto vil blive tilmeldt holder '%1' og vil få tildelt "
-"projekt-indstillingers fra dette holds leder."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Invitationskode"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "A valid invitation code is required to create an account."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Emailaddresse"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Det skal være en gyldig adresse på formen 'navn at domain'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Password"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Skal være på mindst %1 bogstaver"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Bekræft password"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Opret brugerkonto"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "Opret brugerkonto"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "Kontonøgle"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "Din besked blev sendt."
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "Opret brugerkonto"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "Computere på denne konto"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-#, fuzzy
-msgid "Do not delete this account"
-msgstr "Computere på denne konto"
-
-#: ../user/delete_profile.php:30
-#, fuzzy
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-#, fuzzy
-msgid "Your profile has been deleted."
-msgstr "Din besked blev sendt."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-#, fuzzy
-msgid "%1 donations"
-msgstr "%1 indlæg"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-#, fuzzy
-msgid "Change email address of account"
-msgstr "emailaddresse"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "emailaddresse"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "Bekræft password"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-#, fuzzy
-msgid "Change the email address of your account"
-msgstr "emailaddresse"
-
-#: ../user/edit_email_form.php:37
-#, fuzzy
-msgid "New email address"
-msgstr "emailaddresse"
-
-#: ../user/edit_email_form.php:38
-#, fuzzy
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Det skal være en gyldig adresse på formen 'navn at domain'."
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Bekræft password"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "%1-indstillinger"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "Brug ikke HTML tags."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Emner"
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Indlæg"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Forum og personlige meddelelser"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Tilføj bruger til filter"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "%1-indstillinger"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Svag kontonøgle"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Bekræft password"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Din besked blev sendt."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-#, fuzzy
-msgid "your account key"
-msgstr "Svag kontonøgle"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-#, fuzzy
-msgid "You must supply a name for your account."
-msgstr "Du skal angive en invitationskode for at oprette en konto."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-#, fuzzy
-msgid "Edit account information"
-msgstr "Konto-information"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Computere"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "Emailaddresse"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Send meddelelse"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Points der er i kø"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "emailaddresse"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Venner"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "emailaddresse"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Afsender"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Rang"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Send meddelelse"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Titel"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Tilføj min signatur til dette indlæg"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "Forum for %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Emne"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Tilføj min signatur til dette indlæg"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "ulæst"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "ulæst"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Emne"
-
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Spørgsmål og svar (Q&A)"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Emne"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Spørgsmål og svar (Q&A)"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Forum"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Tilmeld notificering"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Sidste indlæg"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Skriv indlæg"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "%1 indlæg"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Nuværende version"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Beskrivelse af holdet"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Opret nyt emne"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Opret nyt emne"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Skriv indlæg"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Skriv indlæg"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Meddelelse"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Tilføj min signatur til dette indlæg"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Sidste indlæg"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Sidste indlæg"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Ikke påkrævet"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Forum søgning"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Søg"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 indlæg"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Resultater af forum søgning"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Ingen profiler passede med din søgning."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Ingen profiler passede med din søgning."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Beskrivelse af holdet"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Afmeld notificering"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Afmeld notificering"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Tilmeld notificering"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Indlæg"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-#, fuzzy
-msgid "Add friend"
-msgstr "Tilføj som ven"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-#, fuzzy
-msgid "Cancel friendship?"
-msgstr "Afbryd venskab"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "anden konto-information"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Velkommen til %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Se og rediger dine konto-indstillinger ved at bruge nedenstående "
-"links."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Dagens Bruger"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Løbende gennemsnit"
-
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Applikationer"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Computere"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Navn"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-#, fuzzy
-msgid "created"
-msgstr "Opret"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Computere"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Holdet findes ikke."
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Meddelelse"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Ingen"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Computere på denne konto"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Computere"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Computere"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Brug ikke HTML tags."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Opret"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Du m&aring kun køre %1 på computere som du selv ejer eller hvor "
-"du har fået lov af ejeren. Nogle virksomheder og skoler har en "
-"computer-politik som forbyder at man bruger deres computere til projekter "
-"som %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Hvordan %1 vil bruge din computer"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Når du kører %1 på din computer vil den bruge en del af "
-"computerens CPU-kraft, diskplads og netværksbåndbredde. Du kan "
-"selv styre hvor mange af dine systemresourcer vil blive brugt af %1 - og "
-"hvornår de bliver brugt."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Arbejdet som din computer laver bidrager til %1's mål som beskrevet "
-"her på hjemmesiden. Applikationerne kan skifte fra tid til anden."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Informationspolitik"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Din brugetkonto på %1 er identificeret af et navn som du vælger. "
-"Dette navn vil blive vist på %1's website sammen med en opsummering "
-"af hvor meget arbejde din computer har fuldført for %1. Hvis du "
-"ønsker at være anonym bør du vælge et navn som "
-"ikke afslører din identitet."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Hvis du deltager i %1 vil information omkring din computer (som f.eks. dens "
-"processor type, mængden af hukkommelse, osv.) blive gemt af %1 og "
-"brugt til at afgøre hvilken type arbejde der sendes til din computer. "
-"Denne information vil også blive vist på %1's website. "
-"Information som kan afsløre computerens placering (som f.eks. "
-"domænenavn eller netværksadresse) vil dog ikke blive vist."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"For at deltage i %1 skal du angive en emailadresse hvor du kan modtage "
-"email. Denne adresse vil ikke blive vist p&aring %1's website og vil ikke "
-"blive delt med andre organisationer. %1 kan vælge at sende "
-"nyhedsbreve, som du kan tilmelde eller framelde dig hvornår det skal "
-"være."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Er det sikkert at køre %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Hver gang du downloader er program fra Internettet tager du en chance: "
-"programmet har måske farlige fejl eller download-serveren kan "
-"være blevet hacket. %1 har foretaget en solid indsats for at minimere "
-"disse risici. Vi har testet vores applikation for fejl. Vores servere er "
-"placeret bag en firewall og er blevet konfigureret til et højt "
-"sikkerhedsniveau. For at sikre integriteten af applikationerne bliver alle "
-"eksekverbare filer sikret med en digital signatur fra en computer der ikke "
-"er tilsluttet Internettet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Applikationerne som køres under %1 kan få nogle computere til "
-"at blive overbelastede pga. varme. Hvis dette sker bør du straks "
-"stoppe med at køre %1 og fremover kun køre %1 sammen med et %"
-"2add-on program%3 som begrænser CPU-forbruget."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 er udviklet af %2. BOINC er udviklet på 'University of California'."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Ansvarsfrasigelse"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 og %2 kan ikke holdes ansvarlige for skade på din computer, tab af "
-"data eller en hvilken som helst anden hændelse eller tilstand som "
-"måtte opstæ som resultat af deltagelse i %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Andre BOINC projekter"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Andre projekter bruger den samme platform, nemlig BOINC, som %1. Vi "
-"anbefaler at du overvejer at deltage i et eller flere andre af disse "
-"projekter. Ved at gøre dette vil din computer kunne udføre "
-"beregninger og arbejde selv når %1 ikke har arbejde til den."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Disse andre projekter har ingen sammenhæng med %1 og vi kan derfor "
-"ikke stå inde for deres sikkerhedspraksis eller deres forksning. "
-"Deltagelse sker på egen risiko."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-#, fuzzy
-msgid "Email address:"
-msgstr "Emailaddresse"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-#, fuzzy
-msgid "Password:"
-msgstr "Password"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Points der er i kø"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Points der er i kø"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Din besked blev sendt."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Afsender og dato"
-
-# 76%
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Computere på denne konto"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Computere på denne konto"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Afsender"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Dato"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Du skal udfylde alle felterne for at sende en personlig meddelelse"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Kunne ikke finde en bruger med id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Kunne ikke finde en bruger med brugernavn %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"%1 er ikke et unikt brugernavn; du bliver nødt til at bruge brugerens "
-"bruger-ID"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Brugeren %1 (ID: %2) accepterer ikke personlige meddelelser fra dig."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Skal %1 virkelig blokkeres?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Er du sikker på at du ønsker at blokkere %1 fra at sende dig "
-"personlige meddelelser?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Bemærk venligst at du kun kan blokkere et begrænset antal "
-"brugere."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Når brugeren er blevet blokkeret kan du genåbne adgangen igennem "
-"siden med forum-indstillinger."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nej, afbryd"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Bruger %1 er blokkeret"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-"Brugeren %1 er blevet blokkeret fra at sende dig personlige meddelelser."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "For at genåbne adgangen, besø %1forum-indstillingerne%2"
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "%1-indstillinger"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"%1Profiler%2 lader brugere dele deres baggrund og synspunkter med andre %"
-"3-brugere."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"Udforsk mangfoldigheden blandt de andre deltagere - og bidrag med dine egne "
-"synspunkter og holdninger"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"Hvis du ikke allere har gjort det kan du %1oprette din egen profil%2 "
-"så andre kan se den!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Dagens Bruger"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Bruger-profil Visning"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Se %1Brugernes Billedgalleri%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Gennemse profiler sortered %1efter land%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Gennemse profiler %1tilfældigt%2, %3tilfældigt med billeder%2, "
-"or %4tilfældigt uden billeder%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Alfabetisk profilliste:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Søg i profil-teksten"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Ingen profiler"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Ingen profiler passede med din søgning."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Bruger ID"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Applikationer"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Computere"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-#, fuzzy
-msgid "Find a team"
-msgstr "find et hold"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-#, fuzzy
-msgid "Create a new team"
-msgstr "Opret nyt emne"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Holdet findes ikke."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "Holdet findes ikke."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-#, fuzzy
-msgid "Create a team"
-msgstr "Opret nyt emne"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "Forum for %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Hold-info"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Forlad holdet"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Resultater af forum søgning"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top computere"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Top %1 hold"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Deltager siden"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Resultater af forum søgning"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Hold"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Svag kontonøgle"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Der er lukket for oprettelse af nye brugerkonti"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-#~ "prøv igen senere."
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "Holdet findes ikke."
-
-#, fuzzy
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Giver fuld adgang til din konto"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "NOTE: Hvis du bruger BOINC version 5.2+ sammen med BOINC Manageren skal du "
-#~ "ikke bruge denne side. Istedet skal du bare køre BOINC og vælge "
-#~ "'Attach Project' (eller 'Tilmeld projekt'), og indtaste en emailaddresse og "
-#~ "et password."
-
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Din 'svage kontonøgle' lader dig tilføje computere til din "
-#~ "konto til dette projekt uden at give mulighed for at logge ind på "
-#~ "kontoen eller ændre den på nogen måde."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Denne mekanisme virker kun på projekter som har opgraderet deres "
-#~ "software d. 7 Dec 2007 eller senere."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Din svage kontonøgle for dette projekt er:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "For at bruge din svage kontonøgle på en given maskine skal du "
-#~ "finde eller oprette 'konto filen' for projektet. Denne fil har et filnavn "
-#~ "på formen <b>account_PROJECT_URL.xml</b>. Konto-filen for %1 er <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr ""
-#~ "Opret denne fil hvis ikke den eksisterer allerede. Indholdet skal "
-#~ "være:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Din svage kontonøgle er baseret på dit password. Hvis du "
-#~ "ændrer dit password vil din svage kontonøgle også "
-#~ "ændres og den tidligere nøgle holder op med at virke."
-
-#~ msgid "Account key"
-#~ msgstr "Kontonøgle"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Giver fuld adgang til din konto"
-
-#~ msgid "Last %1"
-#~ msgstr "Sidste %1"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Resource-fordeling og grafik"
diff --git a/html/languages/translations/de.po b/html/languages/translations/de.po
index 9aa7cc8..5ebc649 100644
--- a/html/languages/translations/de.po
+++ b/html/languages/translations/de.po
@@ -1,383 +1,599 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC Project (Generic) 6.x\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-01-11 09:02+0000\n"
-"Last-Translator: Christian <djangofett at gmx.net>\n"
-"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
-"Language: de\n"
+# 
+# Translators:
+# Christian Beer <christian.beer at posteo.de>, 2015-2017
+# Wolf Dieter Dallinger <wolf.dieter at dallinger.de>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-20 13:46+0000\n"
+"Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
+"Language-Team: German (http://www.transifex.com/boinc/boinc/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1389430955.0\n"
 
-# The name of this language in this language
 msgid "LANG_NAME_NATIVE"
 msgstr "Deutsch"
 
-# The name of this language in an international language (English)
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "German"
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Einladungscode"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Zum Erstellen eines Kontos ist ein gültiger Einladungscode erforderlich."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Name"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Identifiziert Sie auf unserer Webseite. Verwenden Sie Ihren richtigen Namen oder ein Pseudonym."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "E-Mail-Adresse"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Muss eine gültige E-Mail-Adresse in der Form 'name at domain.tld' sein."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Passwort"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Muss aus mindestens %1 Zeichen bestehen."
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Passwort bestätigen"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "Land"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Wählen Sie, falls gewünscht, das Land, das Sie vertreten möchten."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Postleitzahl"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Freiwillig"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Konto erstellen"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "E-Mail-Adresse:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "E-Mail-Adresse vergessen?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Passwort:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "Passwort vergessen?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "angemeldet bleiben"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Anmelden"
+
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "Fettgeschriebener Text: [b]text[/b] (alt+b)"
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr "Kursivgeschriebener Text: [i]text[/i]  (alt+i)"
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "Unterstrichener Text: [u]text[/u]  (alt+u)"
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Durchgestrichener Text: [s]text[/s]  (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "Zitate: [quote]text[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "Quelltext anzeigen: [code]Quelltext[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "Listen: [list]text[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Nummerierte Listen: [list=]text[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Nummerierte Listen: [list=1]text[/list]  (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "Ein Bild einfügen: [img]http://bild_url[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Einen Link einfügen: [url]http://linkadresse[/url] oder "
-"[url=http://linkadresse]linktext[/url]  (alt+w)"
+msgstr "Einen Link einfügen: [url]http://linkadresse[/url] oder [url=http://linkadresse]linktext[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr "Schriftfarbe"
 
-#: ../inc/bbcode_html.inc:43
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Schriftfarbe: [color=red]text[/color]  Tipp: es funktioniert auch so: "
-"color=#FF0000"
+msgstr "Schriftfarbe: [color=red]text[/color]  Tipp: es funktioniert auch so: color=#FF0000"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr "Standard"
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr "Dunkelrot"
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr "Rot"
 
-#: ../inc/bbcode_html.inc:47
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr "Orange"
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr "Braun"
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr "Gelb"
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr "Grün"
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr "Olivgrün"
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr "Türkis"
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr "Blau"
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr "Dunkelblau"
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr "Indigo"
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr "Violett"
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr "Schriftgröße"
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "Schriftgröße: [size=x-small]kleiner Text[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr "Klein"
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr "Normal"
 
-#: ../inc/bbcode_html.inc:62
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr "Groß"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr "Alle offenen bbCodes schließen"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr "Tags schließen"
 
-#: ../inc/forum.inc:37
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Konto"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Beitreten"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "Über %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Hilfe"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Projekt"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Mitmachen"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Etwas tun"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Serverstatus"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Statistiken"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Anwendungen"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Teilnehmer"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Computer"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Teams"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "Grafikkarten-Modelle"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "Prozessor-Modelle"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Berechnung"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Community"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Diskussionsforen"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "ein Team erstellen oder beitreten"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Profile"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Benutzersuche"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Nutzer des Tages"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Urkunde"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Webseite"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Durchsuchen"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Sprachen"
+
+#. names for the above
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr "Älteste zuerst"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr "Neueste zuerst"
 
-#: ../inc/forum.inc:39
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr "Am besten bewertete Beiträge zuerst"
 
-#: ../inc/forum.inc:41
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr "Neuster Beitrag zuerst"
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr "Meist angesehene zuerst"
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr "Meiste Beiträge zuerst"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "freiwilliger Moderator"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Projektadministrator"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Projektentwickler"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Projekttester"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "freiwilliger Entwickler"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "freiwilliger Tester"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Projektwissenschaftler"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Helpdesk Experte"
+
+#. Search
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr "Suche in Forenbeiträgen"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr "Suche im Forum"
 
-#: ../inc/forum.inc:126
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr "Erweiterte Suche"
 
-# ########################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr "Private Nachrichten"
 
-# ########################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr "Fragen und Antworten"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Diskussionsforen"
-
-# ########################################<br />
-# Forum sample index page
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr "%1 Diskussionsforen"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr "Vorherige"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr "Nächste"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
 msgid "Author"
 msgstr "Autor"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr "Nachricht"
 
-#: ../inc/forum.inc:580
-msgid "Send message"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
 msgstr "Nachricht senden"
 
-#: ../inc/forum.inc:580
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr "Private Nachricht an %1 senden"
 
-#: ../inc/forum.inc:581
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr "Beigetreten: %1"
 
-# ########################################
-# Forum
-#: ../inc/forum.inc:590
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr "Beiträge: %1"
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr "Punkte: %1"
 
-#: ../inc/forum.inc:597
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr "Punktedurchschnitt pro Tag: %1"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr "Sie haben diese Nachricht noch nicht gelesen"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr "ungelesen"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr "Nachricht %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr "verborgen"
 
-# ########################################
-# Forum
-#: ../inc/forum.inc:625
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
 msgstr "Geschrieben: %1"
 
-#: ../inc/forum.inc:628
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr " - als Antwort für "
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: ../inc/forum.inc:631
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr "Diese Nachricht bearbeiten"
 
-#: ../inc/forum.inc:637
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr "Zuletzt geändert: %1"
 
-#: ../inc/forum.inc:640
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Dieser Beitrag wird nicht angezeigt weil der Absender von Ihnen geblockt "
-"wurde. %1Trotzdem anzeigen%2."
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Dieser Beitrag wird nicht angezeigt weil der Absender von Ihnen geblockt wurde. %1Trotzdem anzeigen%2."
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr "Diesen Beitrag als anstößig melden"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr "Als anstößig melden"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr "Bewertung: %1"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "rate: "
 msgstr "Bewerten: "
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr "Hier klicken wenn Sie diesen Beitrag hilfreich finden."
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr "positiv bewerten"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr "Hier klicken wenn Ihnen dieser Beitrag nicht gefällt."
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr "negativ bewerten"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr "Antworten"
 
-#: ../inc/forum.inc:685
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr "Auf diesen Beitrag antworten."
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr "Zitieren"
 
-#: ../inc/forum.inc:687
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr "Beim antworten diesen Beitrag zitieren"
 
-#: ../inc/forum.inc:708
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr "Von einem Moderator versteckt"
 
-# ########################################
-# Forum
-#: ../inc/forum.inc:729
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr "Geschrieben am %1 von %2"
 
-#: ../inc/forum.inc:747
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr "Sie können keine Beiträge schreiben oder bewerten bis %1."
 
-#: ../inc/forum.inc:758
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -389,2609 +605,2471 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
 "        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Beiträge müssen 'kinderfreundlich' sein: Sie dürfen keine\n"
-"            obszönen, hasserfüllten, sexuell freizügige\n"
-"            oder andeutende Inhalte haben.\n"
-"        <li> Keine kommerzielle Werbung.\n"
-"        <li> Keine Verlinkung auf Webseiten mit sexuellen Inhalten,\n"
-"            Glücksspiel, oder Intoleranz gegenüber anderen.\n"
-"        <li> Keine Beiträge die andere verärgern oder reizen sollen,\n"
-"            oder das Thema an sich reißen sollen.\n"
-"        <li> Keine Beiträge die mit Absicht feindselig oder beleidigend "
-"sind.\n"
-"        <li> Keine beleidigenden Kommentare zu Alter, Ethnie, Religion,\n"
-"            Nationalität, Geschlecht, Schicht oder Sexualität.\n"
-"        "
+msgstr "\n<ul>\n<li> Beiträge müssen 'kinderfreundlich' sein: Sie dürfen keine obszönen, hasserfüllten, sexuell freizügige oder andeutende Inhalte haben.\n<li> Keine kommerzielle Werbung.\n<li> Keine Verlinkung auf Webseiten mit sexuellen Inhalten, Glücksspiel, oder Intoleranz gegenüber anderen.\n<li> Keine Beiträge die andere verärgern oder reizen sollen, oder das Thema an sich reißen sollen.\n<li> Keine Beiträge die mit Absicht feindselig oder beleidigend sind.\n<li> Keine beleidigende [...]
 
-#: ../inc/forum.inc:780
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr "Regeln:"
 
-#: ../inc/forum.inc:781
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr "mehr Informationen"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr "Sichtbar machen"
 
-#: ../inc/forum.inc:1055
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr "Beitrag sichtbar machen"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr "Verstecken"
 
-#: ../inc/forum.inc:1057
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr "Beitrag verstecken"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr "Verschieben"
 
-#: ../inc/forum.inc:1062
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr "Diesen Beitrag in ein anderes Thema verschieben"
 
-#: ../inc/forum.inc:1067
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr "Autor verbannen"
 
-#: ../inc/forum.inc:1074
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr "Für die Verbannung des Autors abstimmen"
 
-#: ../inc/forum.inc:1078
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr "Gegen die Verbannung des Autors abstimmen"
 
-#: ../inc/forum.inc:1083
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr "Eine Abstimmung zur Verbannung des Autors starten"
 
-#: ../inc/forum.inc:1116
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Löschen"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Diesen Beitrag löschen"
+
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
 msgstr "Nur Teammitglieder können Beiträge im Teamforum erstellen."
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Um ein neues Thema in %1 anlegen zu können, müssen Sie über eine bestimmte "
-"Punkteanzahl verfügen. Dies soll vor Missbrauch des Systems schützen."
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "Um ein neues Thema in %1 anlegen zu können, müssen Sie über eine bestimmte Punkteanzahl verfügen. Dies soll vor Missbrauch des Systems schützen."
 
-#: ../inc/forum.inc:1133
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Sie können für den Moment keine weiteren Themen mehr anlegen. Bitte warten "
-"Sie einige Zeit und versuchen Sie es dann erneut. Diese Verzögerung wurde "
-"eingeführt, um Missbrauch des Systems vorzubeugen."
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Sie können für den Moment keine weiteren Themen mehr anlegen. Bitte warten Sie einige Zeit und versuchen Sie es dann erneut. Diese Verzögerung wurde eingeführt, um Missbrauch des Systems vorzubeugen."
 
-#: ../inc/forum.inc:1140
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
-"Dieses Thema ist geschlossen. Nur Moderatoren oder Administratoren dürfen "
-"hier Beiträge erstellen."
+msgstr "Dieses Thema ist geschlossen. Nur Moderatoren oder Administratoren dürfen hier Beiträge erstellen."
 
-#: ../inc/forum.inc:1145
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr "In einem versteckten Thema kann kein Beitrag erstellt werden."
 
-#: ../inc/forum.inc:1173
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr "Themen"
 
-# ########################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr "Beiträge"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr "Ansichten"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr "Letzter Beitrag"
 
-#: ../inc/forum.inc:1235
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr "Neue Beiträge im Thema %1"
 
-#: ../inc/forum.inc:1240
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr "Neue Beiträge in abonniertem Thema"
 
-#: ../inc/forum.inc:1241
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr "Es gibt neue Beiträge im Thema '%1'"
 
-#: ../inc/forum.inc:1251
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr "Alle Themen als gelesen markieren"
 
-#: ../inc/forum.inc:1252
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
 msgstr "Alle Themen in allen Bereichen als gelesen markieren."
 
-#: ../inc/host.inc:24
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr "Kein Computer angegeben"
 
-#: ../inc/host.inc:26
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr "Nicht verfügbar"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr "zu Hause"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr "Arbeit"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
 msgstr "in der Schule"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mobil"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "Aktualisieren"
 
-#: ../inc/host.inc:85
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr "Informationen zum Computer"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr "IP Adresse"
 
-#: ../inc/host.inc:89
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(die letzten %1 mal gleich)"
 
-#: ../inc/host.inc:91
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr "Externe IP-Adresse"
 
-#: ../inc/host.inc:94
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr "Zeige IP-Adresse"
 
-#: ../inc/host.inc:96
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr "Domäne"
 
-#: ../inc/host.inc:98
+#: html/inc/host.inc:97
 msgid "Product name"
 msgstr "Produktname"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "Ortszeit"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "GMT %1 Stunden"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr "Besitzer"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr "anonym"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr "Erstellt"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr "Gesamtguthaben"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr "Durchschnittliche Punkte"
 
-#: ../inc/host.inc:116
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr "Projektübergreifende Punkte"
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr "CPU Typ"
 
-#: ../inc/host.inc:119
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr "Anzahl der Prozessoren"
 
-#: ../inc/host.inc:121
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr "Koprozessor"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr "Betriebssystem"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr "BOINC Version"
 
-#: ../inc/host.inc:130
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr "Arbeitsspeicher"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr "CPU Cache"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr "Auslagerungsdatei"
 
-#: ../inc/host.inc:143
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr "gesamter Festplattenspeicher"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "freier Festplattenspeicher"
 
-#: ../inc/host.inc:150
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "ermittelte Geschwindigkeit für Gleitkommazahlen"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 Millionen Operationen/Sek"
 
-#: ../inc/host.inc:153
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "ermittelte Geschwindigkeit für ganze Zahlen"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr "mittlere Uploadgeschwindigkeit"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/sek"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr "mittlere Downloadgeschwindigkeit"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr "mittlere Taskdauer"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 Tage"
 
-# ########################################<br />
-# Apps page (apps.php)
-#: ../inc/host.inc:170
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr "Anwendungsdetails"
 
-#: ../inc/host.inc:171
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr "Zeige"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr "Aufgaben"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "Anzahl der Verbindungen zum Server"
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "letztmaliger Kontakt mit Server"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% der Gesamtlaufzeit von BOINC"
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Anteil der Gesamtlaufzeit von BOINC"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Während BOINC läuft, besteht % der Zeit eine Internetverbindung"
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Verfügbarkeit der Internetverbindung, während BOINC lief"
 
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Während BOINC läuft, sind in % der Zeit Berechnungen erlaubt"
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Verfügbarkeit der Rechenleistung, während BOINC lief"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Verfügbarkeit der Grafikkartenberechnung, während BOINC lief"
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr "mittlere CPU-Effizienz"
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr "Korrekturfaktor der Taskdauer"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr "Ort"
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr "Diesen Computer löschen"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr "Doppelte Einträge dieses Computer zusammenführen"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr "Zusammenführen"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr "Letzter Kontakt"
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr "Informationen zum Computer"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr "Rang"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr "Punktedurchschnitt"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr "aktueller Punktedurchschnitt"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr "GPU"
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr "Betriebssystem"
 
-#: ../inc/host.inc:315
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr "(%1 Prozessoren)"
 
-#: ../inc/host.inc:335
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr "Details"
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr "Projektübergreifende Statistiken:"
 
-#: ../inc/host.inc:515
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr "PC %1 hat eine überschneidende Nutzungszeit:"
 
-#: ../inc/host.inc:522
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr "PC %1 hat kein kompatibles Betriebssystem:"
 
-#: ../inc/host.inc:528
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr "PC %1 hat keinen kompatiblen Prozessor:"
 
-#: ../inc/host.inc:595
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr "gleicher Computer"
 
-#: ../inc/host.inc:598
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-"Der PC %1 kann nicht mit %2 zusammen geführt werden. Die Computer sind "
-"inkompatibel."
+msgstr "Der PC %1 kann nicht mit %2 zusammen geführt werden. Die Computer sind inkompatibel."
 
-#: ../inc/host.inc:601
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr "Führe PC %1 mit %2 zusammen."
 
-#: ../inc/host.inc:618
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr "Konnte Punkte für neuen Computer nicht aktualisieren."
 
-#: ../inc/host.inc:622
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr "Aufgaben konnten nicht aktualisiert werden"
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr "Konnte den alten Computer nicht zur Ruhe setzen"
 
-#: ../inc/host.inc:629
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr "Setze Computer %1 zur Ruhe"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr "Zeige:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr "Alle Computer"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr "Nur aktive Computer der letzten 30 Tage"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr "Computer ID"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Name"
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Model"
 
-#: ../inc/host.inc:682
+#: html/inc/host.inc:695
 msgid "BOINC<br>version"
 msgstr "BOINC<br>Version"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "Computer nach Namen zusammen führen"
 
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "Browsereinstellung"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Kommentieren"
 
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Kommentar"
-
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Nachrichten sind auch als %sRSS feed%s verfügbar."
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr "Posteingang"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr "Schreiben"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Private Nachricht versenden"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Nachricht an das Team senden"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr "Vorschau"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Betreff"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Private Nachricht versenden"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
 msgid "no such message"
 msgstr "Keine entsprechende Nachricht gefunden"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "To"
 msgstr "An"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "Benutzer-IDs oder eindeutige Benutzernamen, durch Kommas getrennt"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Betreff"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Nachricht senden"
-
-#: ../inc/pm.inc:121
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr "hat dir eine private Nachricht gesendet; Betreff:"
 
-#: ../inc/pm.inc:127
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr "Private Nachricht%1 von %2; Betreff:"
 
-#: ../inc/pm.inc:135
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr "Nachricht konnte nicht erstellt werden."
 
-#: ../inc/pm.inc:166
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
-msgstr ""
-"Sie dürfen nicht in so kurzen Abständen private Nachrichten versenden. Bitte "
-"warten Sie ein wenig, bis Sie weitere Nachrichten versenden."
+msgstr "Sie dürfen nicht in so kurzen Abständen private Nachrichten versenden. Bitte warten Sie ein wenig, bis Sie weitere Nachrichten versenden."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr "ungelesen"
 
-#: ../inc/pm.inc:186
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
 msgstr "E-Mail Benachrichtigungen in den %1Communityeinstellungen%2 einrichten."
 
-# ########################################
-# Private messages
-#: ../inc/pm.inc:198
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr "Private Nachricht"
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Nutzungsbegrenzungen"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Nutze höchstens"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Ausführung anhalten bei Batteriebetrieb? %1 (gilt nur für tragbare Computer) "
-"%2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Erlaubt es einige Prozessoren für andere Anwendungen zu reservieren. Beispiel: 75% benutzt nur 6 Kerne eines 8 Kern Prozessors."
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Ausführung anhalten wenn der Computer benutzt wird?"
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% der Prozessoren"
 
-#: ../inc/prefs.inc:91
+#: html/inc/prefs.inc:63
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Ausführung auf Grafikkarte anhalten wenn der Computer benutzt wird? %1 "
-"Unterstützt ab Version 6.6.21 %2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Die Berechnung alle paar Sekunden pausieren/fortsetzen um die Prozessortemperatur und den Energieverbrauch zu senken. Beispiel: 75% bedeutet 3 Sekunden zu rechnen und 1 Sekunde zu warten."
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'In Benutzung' bedeutet Maus/Tastatur Aktivitäten in den letzten"
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% der Prozessorzeit"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "Minuten"
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Wann pausiert werden soll"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Arbeit unterbrechen wenn keine Maus-/Tastaturaktivität für %1 Wird bei "
-"manchen PC zur Umschaltung in den Ruhemodus benötigt %2"
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Pausieren, während Rechner im Akku-Betrieb läuft"
 
-#: ../inc/prefs.inc:114
+#: html/inc/prefs.inc:71
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Arbeit anhalten solange die CPU-Last (nicht von BOINC) größer ist als %1 0 "
-"bedeutet keine Einschränkung<br>Unterstützt ab Version 6.10.30+ %2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Anklicken, damit die Berechnung pausiert, während der Rechner im Akku-Betrieb läuft."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"Erlaube Arbeit nur in der Zeit zwischen %1 Keine Einschränkung wenn gleich %"
-"2"
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Pausieren, während Rechner in Benutzung ist"
 
-#: ../inc/prefs.inc:130
+#: html/inc/prefs.inc:77
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Angehaltene Arbeitspakete im Speicher belassen? %1 wenn 'Ja', wird Speicher "
-"in der Auslagerungsdatei belegt %2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Anklicken, damit die Berechnung und die Datei-Übertragung pausiert, während der Rechner in Benutzung ist."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Wechsle zwischen den Tasks alle %1 Empfohlen: 60 Minuten %2"
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Verwendung des Grafik-Prozessors pausieren, während der Rechner in Benutzung ist."
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Bei mehreren Prozessoren, nutze höchstens"
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Anklicken, damit die Verwendung des Grafik-Prozessors pausiert wird, während der Rechner in Benutzung ist."
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "Prozessoren"
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'In Benutzung' meint Aktivität der Maus/Tastatur in den letzten"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Bei mehreren Prozessoren, nutze höchstens %1 Unterstützt ab Version 6.1 %2"
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Dies bestimmt, wann der Rechner als „in Benutzung“ angesehen wird."
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% der Prozessoren"
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "Minuten"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Nutze höchstens %1 Kann benutzt werden um CPU Überhitzung zu vermeiden %2"
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Pausieren wenn keine Aktivität der Maus/Tastatur in den letzten"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% der Prozessorzeit"
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Dies erlaubt einigen Rechnern, in den Energiesparmodus zu wechseln, wenn sie nicht in Benutzung sind."
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Festplatte: nutze höchstens"
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Pausieren, wenn die Prozessorauslastung durch andere Programme über folgenden Wert steigt:"
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Pausieren wenn der Computer mit anderen Anwendungen beschäftigt ist."
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Festplatte: mindestens frei zulassen %1 Werte kleiner als %2 werden "
-"ignoriert %3"
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Rechne nur zwischen:"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% von Gesamt"
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Berechnungen nur während eines bestimmten Zeitraumes eines jeden Tages durchführen.   "
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Sicherung der Aufgaben auf die Festplatte höchstens alle"
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Anderer"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Speichere mindestens"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Speichere ausreichend Aufträge, um den Rechner so lange zu beschäftigen."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "Tage"
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Speichere zusätzlich für weitere"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Speichere zusätzliche Aufgaben über dem Minimum. Bestimmt wie viele Aufgaben beim Kontakt mit dem Projekt angefordert werden."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Zwischen Aufgaben wechseln alle"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Wenn Sie mehrere Projekte bearbeiten, dann darf BOINC zwischen diesen so häufig wechseln."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Sicherung der Aufgaben höchstens alle"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Dies bestimmt wie oft Aufgaben auf die Festplatte gesichert werden, damit diese später fortgesetzt werden können."
+
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr "Sekunden"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Auslagerungsspeicher: nutze höchstens"
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Nutze nicht mehr als:"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Arbeitsspeicher: wenn Computer benutzt wird, nutze höchstens"
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Beschränke den Festplattenplatz, den BOINC benutzt."
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Arbeitsspeicher: wenn Computer nicht genutzt wird, nutze höchstens"
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "Genug Aufgaben für mindestens X Tage vorhalten%1(max. 10 Tage)%2."
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Lasse mindestens"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "Tage"
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Begrenzung des Festplattenplatzes damit so viel Speicher auf dem von BOINC genutzten Datenträger freibleibt."
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... und zusätzlich für weitere"
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB frei:"
 
-#: ../inc/prefs.inc:232
+#: html/inc/prefs.inc:155
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Bestätigen vor Verbindungsaufbau zum Internet? %1 Nur für Modem, ISDN oder "
-"VPN Verbindungen nötig. %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Prozentuale begrenzung des Festplattenplatzes den BOINC auf dem Datenträger nutzen darf."
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Trennen wenn Aufgabe/n erledigt? %1 Nur für Modem, ISDN oder VPN "
-"Verbindungen nötig.%2"
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% von Gesamt"
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Maximale Downloadrate:"
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "Wenn der Computer benutzt wird, nutze höchstens"
 
-# kB/s ist die offizielle Schreibweise, korrekt wäre auch KiB/s siehe entsprechende Wikipediaartikel zu SI-Einheiten und Byte
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "kB/s"
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Begrenzung des Arbeitsspeichers welcher von BOINC genutzt wird, während der Computer anderweitig genutzt wird."
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Maximale Uploadrate:"
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Nutze das Netzwerk nur in der Zeit von/bis"
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Wenn der Computer nicht genutzt wird, nutze höchstens"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Übertrage höchstens %1 Unterstützt ab Version 6.10.46 %2"
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Begrenzung des Arbeitsspeichers welcher von BOINC genutzt wird, während der Computer nicht anderweitig genutzt wird."
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "MB pro"
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Lasse nicht-GPU Aufgaben im Speicher, wenn sie pausiert sind"
 
-#: ../inc/prefs.inc:274
+#: html/inc/prefs.inc:179
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Bild-Dateien nicht prüfen? %1 Nur wählen, wenn der Internetanbieter "
-"Bilddateien verändert (z.B. bei UMTS). %2 Überspringen der Prüfung "
-"verringert die BOINC-Sicherheit. %3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Wenn ausgewählt verbleiben pausierte Aufgaben im Speicher und können ohne Verlust fortgesetzt werden. Wenn nicht ausgewählt wird der Speicher freigegeben und die Aufgaben vom letzten Sicherungspunkt fortgesetzt."
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Ressourcenverteilung %1 Bestimmt den Anteil an den Ressourcen des Computer "
-"die diesem Projekt zur Verfügung stehen. Beispiel: Bei einer Aufteilung "
-"zwischen zwei Projekten von 100 und 200 wird das erste 1/3 der Ressourcen "
-"bekommen und das andere 2/3. %2"
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Auslagerungsspeicher: nutze höchstens"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Beschleunige Berechnung, durch Bereitstellung jeweils einer CPU je GPU?"
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Beschränke den Auslagerungsspeicher (die Auslagerungsdatei), den BOINC benutzt."
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Benutze CPU %1 Unterstützt ab Version 6.10 %2"
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Begrenze Downloadrate auf"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Benutze ATI GPU %1 Unterstützt ab Version 6.10 %2"
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Begrenzt die Downloadrate von Dateiübertragungen."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Benutze Nvidia GPU %1 Unterstützt ab Version 6.10 %2"
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/Sekunde"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Benutze Intel GPU %1 Unterstützt ab Version 7.2 %2"
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Begrenze Uploadrate auf"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Testanwendungen erlauben? %1 Dies hilft uns, Anwendungen zu verbessern, kann "
-"aber zu Fehlern/Abstürzen des Computers führen %2"
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Begrenzt die Uploadrate von Dateiübertragungen."
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"E-Mails werden von %1 gesendet; Bitte sicher stellen, dass der Spamfilter "
-"diese Adresse akzeptiert."
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Begrenze Datentransfer auf"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Ist es OK für %1 und Dein Team (wenn beigetreten) Dich per E-Mail zu "
-"kontaktieren?"
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Beispiel: BOINC darf höchstens 2000 MB Daten alle 30 Tage übertragen."
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Sollen deine Computer auf der %1 Webseite angezeigt werden?"
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB pro"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Festplatten- und Speichernutzung"
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "Tage"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Prozessornutzung"
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Dateien übertragen zwischen:"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Netzwerknutzung"
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Erlaubt Dateiübertragungen nur innerhalb einer täglichen Zeitspanne."
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Diese Einstellung werden für alle BOINC-Projekte an denen Du teilnimmst "
-"verwendet."
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Die Datenverifikation von Bildern überspringen."
 
-#: ../inc/prefs.inc:395
+#: html/inc/prefs.inc:223
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1 Einstellungen aktualisieren nicht möglich! %2 Die rot markierten Werte "
-"sind außerhalb zulässiger Werte oder nicht numerisch!"
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Nur auswählen wenn der Internetprovider Bilder verändert. Das Überspringen der Verifikation reduziert die Sicherheit von BOINC."
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "fehlerhafter Ort: %1"
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Bestätigen, bevor mit dem Internet verbunden wird."
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "fehlerhafte Teilmenge: %1"
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Nur nützlich wenn Sie eine Verbindung via Modem, ISDN oder VPN aufbauen."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "ja"
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Verbindung trennen, wenn fertig"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nein"
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Festplatte"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "keine Einschränkung"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Hinzufügen"
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Netzwerk"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Entfernen"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Diese Einstellung werden für alle BOINC-Projekte an denen Sie teilnehmen verwendet."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Berechnung"
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1 Einstellungen aktualisieren nicht möglich! %2 Die rot markierten Werte sind außerhalb zulässiger Werte oder nicht numerisch!"
 
-#: ../inc/prefs.inc:823
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr "Separate Einstellungen für %1"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr "Einstellungen bearbeiten"
 
-#: ../inc/prefs.inc:839
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Entfernen"
+
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr "Separate Einstellungen für %1 hinzufügen"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Diese Einstellungen sind für alle Computer dieses Kontos gültig, außer"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "Computer, bei welchen mittels des BOINC Managers lokale Einstellungen gespeichert wurden"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Android Geräten"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
 msgstr "(Ansicht wechseln)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
 msgid "Combined preferences"
 msgstr "kombinierte Einstellungen"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Projektspezifische Einstellungen"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
 msgid "Primary (default) preferences"
 msgstr "Primäreinstellungen (Standard)"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "%1 Einstellungen bearbeiten"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Diese gelten für alle BOINC Projekte an denen Sie teilnehmen."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"Nimmt ein Rechner an mehreren Projekten teil, werden die neuesten "
-"Einstellungen verwendet."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Diese Einstellungen gelten nicht für Android-Geräte."
-
-#: ../inc/prefs.inc:892
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr "Letzte Änderung:"
 
-#: ../inc/prefs.inc:944
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr "Einstellungen hinzufügen"
 
-#: ../inc/prefs.inc:948
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr "Einstellungen aktualisieren"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "ja"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "nein"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr "Computerstandort (Standard)"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Neue Computer werden diesen Standort für die Einstellungen benutzen."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Ressourcenaufteilung"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Bestimmt den Anteil an den Ressourcen des Computer die diesem Projekt zur Verfügung stehen. Beispiel: Bei einer Aufteilung zwischen zwei Projekten von 100 und 200 wird das erste 1/3 der Ressourcen bekommen und das andere 2/3."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Beschleunige Berechnung, durch Bereitstellung jeweils einer CPU je GPU?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "CPU benutzen"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "ATI-Grafikprozessor benutzen"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "NVIDIA-Grafikprozessor benutzen"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Intel-Grafikprozessor benutzen"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Die Ausführung von Testanwendung erlauben?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Dies hilft uns, Anwendungen zu verbessern, kann aber zu fehlerhaften Aufgaben auf Ihrem Computers führen"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "E-Mails werden von %1 gesendet; Bitte sicher stellen, dass der Spamfilter diese Adresse akzeptiert."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Ist es OK für %1 und Dein Team (wenn beigetreten) Dich per E-Mail zu kontaktieren?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "Sollen deine Computer auf der %1 Webseite angezeigt werden?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Ansicht wechseln)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Projektspezifische Einstellungen"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "fehlerhafter Ort: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "fehlerhafte Teilmenge: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
 msgid "and"
 msgstr "und"
 
-#: ../inc/profile.inc:86
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "keine Einschränkung"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr ""
-"Dein Profil wird den anderen Benutzern veröffentlicht sobald es vom Projekt "
-"geprüft wurde. Dies dauert eventuell ein paar Tage."
+msgstr "Dein Profil wird den anderen Benutzern veröffentlicht sobald es vom Projekt geprüft wurde. Dies dauert eventuell ein paar Tage."
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr ""
-"Dein Profil wurde als unakzeptable markiert. Es ist für niemanden einsehbar. "
-"Bitte verändere es."
+msgstr "Dein Profil wurde als unakzeptable markiert. Es ist für niemanden einsehbar. Bitte verändere es."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr "Datenbankfehler"
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Um Spam zu vermeiden, werden Profile von Benutzern mit einem "
-"Punktedurchschnitt von unter %1 nur eingeloggten Benutzern angezeigt. Wir "
-"bitten, diese Unannehmlichkeit zu entschuldigen."
+msgstr "Um Spam zu vermeiden, werden Profile von Benutzern mit einem Punktedurchschnitt von unter %1 nur eingeloggten Benutzern angezeigt. Wir bitten, diese Unannehmlichkeit zu entschuldigen."
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr "Benutzer ist gesperrt"
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr "Es existiert kein Profil für diese Benuzer-ID."
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr "Profil bearbeiten"
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr "Ihre Meinung zu diesem Profil"
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr "Dieses Profil für den Benutzer des Tages vorschlagen:"
 
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr "Dieses Profil ist %1lesenswert%2"
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr "Den Administrator auf ein fragwürdiges Profil hinweisen:"
 
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr "Dieses Profil ist %1nicht lesenswert%2"
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr "Anonyme Plattform"
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr "NVIDIA Grafikkarte"
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr "ATI Grafikkarte"
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
 msgstr "Intel Grafikkarte"
 
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Nicht in der Datenbank"
-
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr "ausstehend"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr "Alle"
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr "In Bearbeitung"
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr "Überprüfung ausstehend"
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr "Überprüfung ohne Ergebnis"
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr "Gültig"
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr "Ungültig"
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr "Fehler"
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr "Inaktiv"
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr "Ungesendet"
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr "Fertig, Warte auf Bestätigung"
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr "Fertig und Bestätigt"
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr "Fertig, als ungültig markiert"
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr "Fertig, Bestätigung nicht möglich"
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr "Fertig, Bestätigung nicht eindeutig"
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr "Fertig, zu spät für Bestätigung"
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr "Fertig"
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr "Konnte nicht gesendet werden"
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr "Abgebrochen durch Server"
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr "Nicht vor Ablaufdatum gestartet - abgebrochen"
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr "Fehler beim Download"
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr "Fehler beim Berechnen"
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr "Fehler beim Hochladen"
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Abbruch durch Benutzer"
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Abgebrochen"
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr "Hochladen fehlgeschlagen"
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr "Zeitüberschreitung - keine Antwort"
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr "Wurde nicht benötigt"
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr "Bestätigungsfehler"
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr "Aufgegeben"
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr "Abgeschlossen"
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr "Erfolgreich"
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr "Berechnungsfehler"
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr "nicht benötigtes Ergebnis"
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr "keine Antwort"
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr "Neu"
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
-msgstr "am herunterladen"
+msgstr "lädt herunter"
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr "in Bearbeitung"
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr "Berechnungsfehler"
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr "am Hochladen"
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr "Fertig"
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Abbruch durch Benutzer"
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr "Initialisiert"
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr "nicht benötigt"
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr "Arbeitspaket fehlerhaft - Prüfung übersprungen"
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr "Überprüft, noch keine Übereinstimmung"
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr "Paket war zu spät für eine Überprüfung"
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr "Konnte Ergebnis nicht senden"
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr "Zu viele Fehler (evtl. ein Bug)"
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr "Zu viele Ergebnisse (evtl. nicht eindeutig)"
 
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr "Zu viele Ergebnisse insgesamt"
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr "Paket abgebrochen"
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "autorisiertes Ergebnis fehlt"
+
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr "Unbekannter Fehler: %1"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr "Paketname"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr "anklicken für Einzelheiten"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr "Zeige IDs"
 
-#: ../inc/result.inc:354
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr "Zeige Namen"
 
-#: ../inc/result.inc:357
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr "Aufgabe"
 
-#: ../inc/result.inc:360
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr "Arbeitspaket"
 
-#: ../inc/result.inc:369
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr "Computer"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr "Gesendet"
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr "Meldezeit<br />oder Ablaufdatum"
 
-#: ../inc/result.inc:374
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr "Erklärung"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr "Status"
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr "Laufzeit<br />(sek)"
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr "CPU Zeit<br />(sek)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr "Punkte"
 
-# ########################################<br />
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr "Anwendung"
 
-#: ../inc/result.inc:629
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr "Arbeitspaket"
 
-#: ../inc/result.inc:632
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Ablaufdatum"
+
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr "Empfangen"
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr "Serverstatus"
 
-#: ../inc/result.inc:634
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr "Resultat"
 
-#: ../inc/result.inc:635
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr "Clientstatus"
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr "Endstatus"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Ablaufdatum"
-
-#: ../inc/result.inc:639
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr "Laufzeit"
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr "CPU Zeit"
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr "Prüfungsstatus"
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "max. FLOPS des Gerätes"
+
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr "Anwendungsversion"
 
-#: ../inc/result.inc:656
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr "Ausgabedateien"
 
-#: ../inc/result.inc:659
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr "Stderr Ausgabe"
 
-#: ../inc/result.inc:706
+#: html/inc/result.inc:795
 msgid "State"
 msgstr "Status"
 
-#: ../inc/result.inc:747
+#: html/inc/result.inc:836
 msgid "Task name:"
 msgstr "Aufgabenname:"
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr "Suchkriterien (eins oder mehrere nutzbar)"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr "Schlagwörter"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
 msgstr "Findet Teams mit diesen Begriffen im Namen oder der Beschreibung."
 
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Land"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr "Typ des Teams"
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr "Nur aktive Teams anzeigen"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr "Suche"
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
 msgstr "Von Dir angefordert und die Rückmeldung des Gründers ist ausgeblieben."
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr "Transfer des Gründerstatus abschließen"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr "Von Ihnen angefordert"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr "Die Rückmeldezeit des Gründers beträgt %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr "Keines"
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr "Übernahme einleiten"
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr "laufende Übernahme"
 
-#: ../inc/team.inc:87
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr "Team Informationen"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
 msgstr "Beschreibung"
 
-#: ../inc/team.inc:97
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr "Internetseite"
 
-#: ../inc/team.inc:120
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr "Projektübergreifende Statistiken"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr "Typ"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr "Diskussionsforen"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr "Themen"
 
-#: ../inc/team.inc:136
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr "Diesem Team beitreten"
 
-#: ../inc/team.inc:137
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"Hinweis: Wenn Sie E-Mails in den Projekteinstellungen erlauben, kann der "
-"Gründer des Teams Ihre E-Mail-Adresse einsehen."
+msgstr "Hinweis: Wenn Sie E-Mails in den Projekteinstellungen erlauben, kann der Gründer des Teams Ihre E-Mail-Adresse einsehen."
 
-#: ../inc/team.inc:140
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr "Akzeptiert keine neuen Mitglieder"
 
-#: ../inc/team.inc:147
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr "Wechsel des Gründerstatus beantragt"
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr "Rückmeldung bis %1"
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr "Teamgründer wechseln"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr "Mitglieder"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr "Gründer"
 
-#: ../inc/team.inc:169
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr "Team-Admins"
 
-#: ../inc/team.inc:184
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr "Neue Mitglieder (letzte 24h)"
 
-#: ../inc/team.inc:185
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr "Mitglieder insgesamt"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr "Anzeigen"
 
-#: ../inc/team.inc:186
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr "aktive Mitglieder"
 
-#: ../inc/team.inc:187
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr "Mitglieder mit Punkten"
 
-#: ../inc/team.inc:256
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr "Admin"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr "Vorherige %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr "Nächste %1"
 
-#: ../inc/team.inc:289
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr "Kein Team gefunden."
 
-#: ../inc/team.inc:302
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr "Diese Aktion benötigt den Gründerstatus."
 
-#: ../inc/team.inc:326
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr "Diese Aktion benötigt die Team-Admin Berechtigung."
 
-#: ../inc/team.inc:422
+#: html/inc/team.inc:434
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"WARNUNG: dies ist ein BOINC-weites Team. Hier vorgenommene Änderungen werden "
-"automatisch wieder überschrieben. Bearbeite das %1BOINC-weite Team%2 "
-"stattdessen."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "WARNUNG: Dies ist ein BOINC-weites Team. Hier vorgenommene Änderungen werden automatisch wieder überschrieben. Bearbeiten Sie das %1BOINC-weite Team%2 stattdessen."
 
-#: ../inc/team.inc:428
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Datenschutzhinweis%2: Wenn Sie ein Team erstellen, werden Ihre "
-"Projekteinstellungen (Ressourcenverteilung, Grafikeinstellungen) für jeden "
-"sichtbar."
+msgstr "%1Datenschutzhinweis%2: Wenn Sie ein Team erstellen, werden Ihre Projekteinstellungen (Ressourcenverteilung, Grafikeinstellungen) für jeden sichtbar."
 
-#: ../inc/team.inc:432
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr "Teamname (Textversion)"
 
-#: ../inc/team.inc:433
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr "Keine HTML-Tags möglich."
 
-#: ../inc/team.inc:436
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr "Teamname (HTML-Version)"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr "Sie können nur %1bestimmte HTML-Tags%2 verwenden."
 
-#: ../inc/team.inc:439
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr "Wenn Sie HTML nicht kennen, lassen Sie dieses Feld frei."
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr "URL der Team-Internetseite, wenn vorhanden"
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "without \"http://\""
 msgstr "ohne \"http://\""
 
-#: ../inc/team.inc:443
+#: html/inc/team.inc:455
 msgid "This URL will be linked to from the team's page on this site."
 msgstr "Diese URL wird als Link zur Team-Internetseite benutzt."
 
-#: ../inc/team.inc:446
+#: html/inc/team.inc:458
 msgid "Description of team"
 msgstr "Beschreibung des Teams"
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:474
 msgid "Accept new members?"
 msgstr "Neue Mitglieder akzeptieren?"
 
-#: ../inc/uotd.inc:28
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Firma"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Grundschule"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Realschule/Gymnasium"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Junior college"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Universität oder Institut"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Regierungseinrichtung"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "gemeinnütziger Verein"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "überregional"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "lokal/regional"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Computer-bezogen"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "sozial/politisch/religiös"
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr "Benutzerprofil"
 
-#: ../inc/user.inc:119
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr "Projekte bei denen Sie teilnehmen"
 
-#: ../inc/user.inc:121
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr "Projekte bei denen %1 teilnimmt"
 
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr "Anklicken für mehr Infos"
 
-#: ../inc/user.inc:125
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr "Seit"
 
-#: ../inc/user.inc:148
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr "Berechnungen und Punkte"
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr "Computer, die zu diesem Konto gehören"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr "Anzeigen"
 
-#: ../inc/user.inc:161
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr "Projektübergreifende ID"
 
-#: ../inc/user.inc:162
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr "Projektübergreifende Statistiken"
 
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Konto"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr "Team"
 
-#: ../inc/user.inc:167
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr "Projektübergreifend"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Urkunde"
-
-#: ../inc/user.inc:169
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
 msgstr "Statistiken auf Ihrem Mobiltelefon"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Unbekannter Nachrichtentyp: %1"
-
-#: ../inc/user.inc:198
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr "Kontoinformationen"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr "E-Mail-Adresse"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr "URL"
 
-#: ../inc/user.inc:206
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr "Postleitzahl"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr "%1 Mitglied seit"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr "Ändern"
 
-#: ../inc/user.inc:209
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr "E-Mail-Adresse"
 
-#: ../inc/user.inc:210
+#: html/inc/user.inc:229
 msgid "password"
 msgstr "Passwort"
 
-#: ../inc/user.inc:211
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr "Andere Kontoinformationen"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr "Benutzer ID"
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr "für Community Funktionen"
 
-# 91%
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr "Kontoschlüssel"
 
-#: ../inc/user.inc:221
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
 msgstr "Wann und wie BOINC Ihren Computer verwenden darf"
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr "Berechnungseinstellungen"
 
-#: ../inc/user.inc:228
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr "Diskussionsforen und Private Nachrichten"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "Communityeinstellungen"
 
-#: ../inc/user.inc:232
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr "Einstellungen für dieses Projekt"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr "%1 Einstellungen"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Community"
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Das Profil von %1 anzeigen"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Löschen"
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Profil"
 
-#: ../inc/user.inc:245
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr "Erstellen"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr "%1 Beiträge"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "Benachrichtigungen"
 
-#: ../inc/user.inc:269
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr "Team verlassen"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr "Verwalten"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr "(ausstehender Gründerwechsel)"
 
-#: ../inc/user.inc:279
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr "Mitglied im Team"
 
-#: ../inc/user.inc:281
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr "Team finden"
 
-#: ../inc/user.inc:292
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr "Gründer aber nicht Mitglied von"
 
-#: ../inc/user.inc:298
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr "Freunde finden"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
 msgstr "Freunde"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Computer"
-
-#: ../inc/user.inc:338
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr "Spender"
 
-#: ../inc/user.inc:378
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr "Kontakt"
 
-#: ../inc/user.inc:381
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr "Diese Person ist ein Freund"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr "Freundschaft aufheben"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr "Anfrage läuft"
 
-#: ../inc/user.inc:387
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr "als Freund hinzufügen"
 
-#: ../inc/user.inc:446
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr "Der Benutzername kann keine Leerzeichen am Anfang oder Ende beinhalten"
 
-#: ../inc/user.inc:450
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr "Der Benutzername darf nicht leer sein."
 
-#: ../inc/user.inc:454
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr "Der Benutzername darf keine HTML-Tags beinhalten."
 
-#: ../inc/util.inc:131
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr "Abmelden"
 
-#: ../inc/util.inc:133
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr "Anmelden"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Anmelden"
-
-# ########################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr "Konto erstellen"
 
-#: ../inc/util.inc:206
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr "Serverstatus"
 
-#: ../inc/util.inc:248
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr ""
-"Ein Datenbankfehler ist bei Ihrer Anfrage aufgetreten. Bitte versuchen Sie "
-"es später noch einmal."
+msgstr "Ein Datenbankfehler ist bei Ihrer Anfrage aufgetreten. Bitte versuchen Sie es später noch einmal."
 
-#: ../inc/util.inc:257
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr "Verarbeitung der Anfrage nicht möglich"
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr "Stunden"
 
-#: ../inc/util.inc:280
+#: html/inc/util.inc:345
 msgid "min"
 msgstr "min."
 
-#: ../inc/util.inc:283
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr "sek."
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Die Zeit für den Aufruf der verlinkten Seite ist abgelaufen. Bitte klicken "
-"Sie in ihrem Browser auf die Taste 'Zurück', laden Sie die Seite neu und "
-"versuchen sie es erneut."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Das Profil von %1 anzeigen"
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Die Zeit für den Aufruf der verlinkten Seite ist abgelaufen. Bitte klicken Sie in ihrem Browser auf die Taste 'Zurück', laden Sie die Seite neu und versuchen sie es erneut."
 
-#: ../inc/util.inc:569
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
 msgstr "Der Text lässt sich mit Hilfe von BBCode-Tags formatieren"
 
-#: ../inc/util.inc:796
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr "Projekt wegen Wartungsarbeiten angehalten"
 
-#: ../inc/util.inc:799
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 ist momentan wegen Wartungsarbeiten nicht verfügbar. Bitte versuchen Sie "
-"es später noch einmal."
+msgstr "%1 ist momentan wegen Wartungsarbeiten nicht verfügbar. Bitte versuchen Sie es später noch einmal."
 
-#: ../inc/util.inc:817
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
-msgstr ""
-"Es ist momentan nicht möglich die Datenbank zu erreichen - Bitte versuchen "
-"Sie es später noch einmal."
+msgstr "Es ist momentan nicht möglich die Datenbank zu erreichen - Bitte versuchen Sie es später noch einmal."
 
-#: ../inc/util.inc:821
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
-msgstr ""
-"Es ist momentan nicht möglich die Datenbank auszuwählen - Bitte versuchen "
-"Sie es später noch einmal"
+msgstr "Es ist momentan nicht möglich die Datenbank auszuwählen - Bitte versuchen Sie es später noch einmal"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "verbleibende Zeichen"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr "Auf diesem Computer angemeldet bleiben"
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Kontoeinrichtung abschließen"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identifiziert Sie auf unserer Webseite. Verwenden Sie Ihren richtigen Namen "
-"oder einen Nicknamen."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Wählen Sie, falls gewünscht, das Land, das Sie vertreten möchten."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Postleitzahl"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Freiwillig"
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "Sie müssen einen Namen für Ihr Konto eintragen"
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
 msgstr "HTML-Tags im Namen sind nicht erlaubt"
 
-#: ../user/add_venue.php:81
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Kontoeinrichtung abschließen"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "%1 Einstellungen bearbeiten"
+
+#: html/user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "%1 Einstellungen für %2 hinzufügen"
 
-# ########################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Anwendungen"
-
-#: ../user/apps.php:33
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"Die folgenden Anwendungen gehören zur Zeit zu %1. Wenn Sie an %1 teilnehmen, "
-"wird Ihrem Computer Arbeit für eine oder mehrere dieser Anwendungen "
-"zugewiesen. Die aktuelle Version der jeweiligen Anwendung wird automatisch "
-"auf Ihren Computer heruntergeladen."
+msgstr "Die folgenden Anwendungen gehören zur Zeit zu %1. Wenn Sie an %1 teilnehmen, werden Ihrem Computer Aufgaben für eine oder mehrere dieser Anwendungen zugewiesen. Die aktuelle Version der jeweiligen Anwendung wird automatisch auf Ihren Computer heruntergeladen."
 
-#: ../user/apps.php:50
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr "Plattform"
 
-#: ../user/apps.php:51
+#: html/user/apps.php:56
 msgid "Version"
 msgstr "Version"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Installiert am"
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Durchschnittliche Leistung"
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr "BBCode tags"
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"Mit BBCode tags können Sie Text in Ihrem Profil und im Nachrichtenforum "
-"formatieren.\n"
-"Das ist vergleichbar mit HTML, aber einfacher. Die tags starten mit einem [ "
-"(wo sie mit\n"
-"HTML %1 verwendet hätten) und enden mit ] (wo sie mit HTML %2 verwendet "
-"hätten)."
-
-#: ../user/bbcode.php:31
+msgstr "Mit BBCode tags können Sie Text in Ihrem Profil und im Nachrichtenforum formatieren.\nDas ist vergleichbar mit HTML, aber einfacher. Die tags starten mit einem [ (wo sie mit\nHTML %1 verwendet hätten) und enden mit ] (wo sie mit HTML %2 verwendet hätten)."
+
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr "Beispiele"
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr "Fett"
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr "kursiv"
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr "unterstrichen"
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Durchstreichen"
+
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr "Hochgestellt"
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr "Große Schrift"
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr "Rote Schrift"
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr "Link zu einer Webseite"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr "Zitierter Text"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "Für Zitatblöcke benutzen"
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr "benutzen um ein Bild anzuzeigen"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "Quellcodeschnippsel hier"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr "benutzen um Quellcode anzuzeigen"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "vorformatierter Text"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-"Benutzen um vorformatierten Text (gewöhnlich in monospace Schrift) "
-"anzuzeigen"
+msgstr "Benutzen um vorformatierten Text (gewöhnlich in monospace Schrift) anzuzeigen"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr "Element 1"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr "Element 2"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr "Element 2"
 
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "benutzen um auf ein Trac-Ticket der BOINC Webseite zu verweisen"
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "zu einem Issue im BOINC Github Repository verlinken"
 
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "benutzen um auf das Trac-Wiki der BOINC Webseite zu verlinken"
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "zu einer Wikiseite im BOINC Github Repository verlinken"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "benutzen um auf ein SVN-Changeset auf der BOINC Webseite zu verlinken"
-
-#: ../user/bbcode.php:53
+#: html/user/bbcode.php:55
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Wenn Sie einen Tag nicht korrekt schließen oder einen Parameter nicht "
-"richtig angegeben haben,\n"
-"dann werden die Tags anstatt des formatierten Textes angezeigt."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Teilnehmer"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Etwas tun"
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Ihr Konto"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "Statistiken anschauen, Einstellungen verändern"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Teams"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "ein Team erstellen oder beitreten"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Benutzer des Tages"
+msgstr "Wenn Sie einen Tag nicht korrekt schließen oder einen Parameter nicht richtig angegeben haben,\ndann werden die Tags anstatt des formatierten Textes angezeigt."
 
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Serverstatus"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profile"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Benutzersuche"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Statistiken"
-
-# ########################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Die besten Benutzer"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Die besten Computer"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Die besten Teams"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Beste Grafikkarten"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Sprachen"
-
-# ########################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Unsere Regeln und Grundsätze"
-
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr "Konto kann nicht erstellt werden"
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-"Klicken Sie den <b>Zurück</b>-Knopf ihres Browser und versuchen Sie es "
-"erneut."
+msgstr "Klicken Sie den <b>Zurück</b>-Knopf ihres Browser und versuchen Sie es erneut."
 
-#: ../user/create_account_action.php:47
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-"Ihre Antwort im reCAPTCHA war nicht korrekt. Bitte versuchen Sie es noch "
-"einmal."
+msgstr "Ihre Antwort im reCAPTCHA war nicht korrekt. Bitte versuchen Sie es noch einmal."
 
-#: ../user/create_account_action.php:70
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr "Um ein Konto zu erstellen müssen Sie einen Einladungscode eingeben."
 
-#: ../user/create_account_action.php:73
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr "Dieser Einladungscode ist leider ungültig."
 
-#: ../user/create_account_action.php:84
+#: html/user/create_account_action.php:81
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Ungültige E-Mail-Adresse: Sie müssen eine gültige E-Mail-Adresse in der Form "
-"'name at domain.tld' eingeben."
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Ungültige E-Mail-Adresse: Sie müssen eine gültige E-Mail-Adresse in der Form 'name at domain.tld' eingeben."
 
-#: ../user/create_account_action.php:88
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr "Es besteht bereits ein Konto mit dieser E-Mail-Adresse."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "Die neuen Passwörter sind unterschiedlich"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "Passwörter dürfen nur aus ASCII-Zeichen bestehen."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
 msgstr "Das neue Passwort ist zu kurz: Bitte mindestens %1 Zeichen verwenden."
 
-#: ../user/create_account_action.php:127
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr "Das Konto konnte nicht erstellt werden."
 
-#: ../user/create_account_form.php:44
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"Hinweis: Wenn Sie den BOINC Manager benutzen, dann benötigen Sie dieses "
-"Formular nicht. Starten Sie BOINC und wählen Sie Projekt hinzufügen und "
-"geben Sie dort Ihre E-Mail-Adresse und Passwort ein."
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "Hinweis: um %1 auf Ihrem Computer einzurichten benutzen Sie bitte die %2Anleitung%3 an Stelle dieses Formulars."
 
-#: ../user/create_account_form.php:61
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"Dieses Konto wird dem Team %1 angehören und die Projekteinstellungen des "
-"Teamgründers besitzen."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Einladungs-Code"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-"Zum Erstellen eines Kontos ist ein gültiger Einladungscode erforderlich."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "E-Mail-Adresse"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Muss eine gültige E-Mail-Adresse in der Form 'name at domain.tld' sein."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Passwort"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Muss aus mindestens %1 Zeichen bestehen."
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Passwort bestätigen"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Bitte die im Bild angezeigten Wörter eingeben"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Konto erstellen"
+msgstr "Dieses Konto wird dem Team %1 angehören und die Projekteinstellungen des Teamgründers besitzen."
 
-#: ../user/create_profile.php:50
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr "Bild"
 
-#: ../user/create_profile.php:64
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1 Ihr Profilbild wird links angezeigt."
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:69
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Zum Ersetzen wählen Sie eine JPG oder PNG Datei (max. %1) mit der \"Browse\" "
-"Schaltfläche aus."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Zum Ersetzen wählen Sie eine JPG oder PNG Datei (max. %1) mit der \"Browse\" Schaltfläche aus."
 
-#: ../user/create_profile.php:69
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr "Um das Bild aus Ihrem Profil zu entfernen, das Kästchen auswählen:"
 
-#: ../user/create_profile.php:77
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Wenn Sie Ihr Profil mit einem Bild versehen wollen, wählen Sie eine JPEG "
-"oder PNG Datei mit der \"Browse\"-Schaltfläche aus. Bitte (%1 oder kleiner)"
+msgstr "Wenn Sie Ihr Profil mit einem Bild versehen wollen, wählen Sie eine JPEG oder PNG Datei mit der \"Browse\"-Schaltfläche aus. Maximale Dateigröße: %1"
 
-#: ../user/create_profile.php:89
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr "Sprache"
 
-#: ../user/create_profile.php:92
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr "Die Sprache auswählen in der Ihr Profil geschrieben ist:"
 
-#: ../user/create_profile.php:104
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr "Profil speichern"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Bitte die im Bild angezeigten Wörter eingeben."
-
-#: ../user/create_profile.php:115
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr "Profil erstellen/bearbeiten"
 
-#: ../user/create_profile.php:137
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr "Das Format Ihres hochgeladenen Bildes wird nicht unterstützt."
 
-#: ../user/create_profile.php:166
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
-msgstr ""
-"Mit Ihrem %1Profil%2 können Sie Ihre Ansichten und Meinungen der %3 "
-"Gemeinschaft mitteilen."
+msgstr "Mit Ihrem %1Profil%2 können Sie Ihre Ansichten und Meinungen der %3 Community mitteilen."
 
-#: ../user/create_profile.php:213
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-"Die reCaptcha Auswertung war nicht korrekt. Bitte versuchen Sie es erneut."
+msgstr "Die reCaptcha Auswertung war nicht korrekt. Bitte versuchen Sie es erneut."
 
-#: ../user/create_profile.php:222
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Ihre erste Anwort wurde vom Akismet Anti-Spam-System als Spam markiert. "
-"Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
+msgstr "Ihre erste Anwort wurde vom Akismet Anti-Spam-System als Spam markiert. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
 
-#: ../user/create_profile.php:230
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Ihre zweite Antwort wurde vom Akismet Anti-Spam-System als Spam markiert. "
-"Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
+msgstr "Ihre zweite Antwort wurde vom Akismet Anti-Spam-System als Spam markiert. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
 
-#: ../user/create_profile.php:246
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr "Ihr übertragenes Profil war leer."
 
-#: ../user/create_profile.php:285
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr "Datenbankfehler: Das Profil konnte nicht aktualisiert werden"
 
-#: ../user/create_profile.php:297
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr "Datenbankfehler: Das Profil konnte nicht erstellt werden"
 
-#: ../user/create_profile.php:302
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr "Profil gespeichert"
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "Glückwunsch! Ihr Profil wurde in unsere Datenbank aufgenommen."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Ihr Profil ansehen%2"
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Ihr Profil ansehen"
 
-#: ../user/create_profile.php:315
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr "Profil erstellen"
 
-#: ../user/create_profile.php:343
+#: html/user/create_profile.php:346
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Zum Schutz vor unerwünschter Werbung ist ein Punktedurchschnitt von min. %1 "
-"erforderlich um ein Profil zu erstellen. Wir entschuldigen uns für diese "
-"Unannehmlichkeit."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Zum Schutz vor unerwünschter Werbung ist ein Punktedurchschnitt von min. %1 erforderlich um ein Profil zu erstellen. Wir entschuldigen uns für diese Unannehmlichkeit."
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr "Das Konto konnte nicht gelöscht werden"
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr "Konto gelöscht"
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr "Ihr Konto wurde gelöscht."
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr "Kontolöschung bestätigen"
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"Bei der Löschung Ihres Kontos werden alle Ihre\n"
-"persönlichen Informationen von unseren Servern gelöscht,\n"
-"inklusive des Profils und Nachrichten im Forum.\n"
-"Keine Arbeit wird mehr an Computer verteilt die\n"
-"zu diesem Konto gehören."
+msgstr "Bei der Löschung Ihres Kontos werden alle Ihre\npersönlichen Informationen von unseren Servern gelöscht,\ninklusive des Profils und Nachrichten im Forum.\nKeine Arbeit wird mehr an Computer verteilt die\nzu diesem Konto gehören."
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Dies kann nicht rückgängig gemacht werden.\n"
-"Sobald das Konto gelöscht wurde, können Sie es nicht mehr zurückbekommen."
+msgstr "Dies kann nicht rückgängig gemacht werden.\nSobald das Konto gelöscht wurde, können Sie es nicht mehr zurückbekommen."
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "Sind Sie wirklich sicher, dass Sie Ihr Konto löschen wollen?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr "Ja"
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr "Dieses Konto löschen"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr "Nein"
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr "Dieses Konto NICHT löschen"
 
-#: ../user/delete_profile.php:30
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "Konnte Profil nicht löschen - Bitte versuchen Sie es später noch einmal"
 
-#: ../user/delete_profile.php:33
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "Bestätigung der Löschung"
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "Ihr Profil wurde gelöscht."
 
-#: ../user/delete_profile.php:40
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "Bestätigung der Profillöschung"
 
-#: ../user/delete_profile.php:43
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "Sind Sie sicher?"
 
-#: ../user/delete_profile.php:44
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"Gelöschte Profile sind für immer verloren und können nicht wiederhergestellt "
-"werden.\n"
-"Sie müssen alle Daten neu eingeben,\n"
-"wenn Sie ein neues Profil möchten."
+msgstr "Gelöschte Profile sind für immer verloren und können nicht wiederhergestellt werden.\nSie müssen alle Daten neu eingeben,\nwenn Sie ein neues Profil möchten."
 
-#: ../user/delete_profile.php:48
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"Wenn Sie absolut sicher sind Ihr Profil aus\n"
-"der Datenbank zu entfernen, dann klicken Sie 'Ja'."
+msgstr "Wenn Sie absolut sicher sind Ihr Profil aus\nder Datenbank zu entfernen, dann klicken Sie 'Ja'."
 
-#: ../user/delete_profile.php:52
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "Mein Profil löschen"
 
-#: ../user/delete_profile.php:53
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "Mein Profil soll nicht gelöscht werden"
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr "PayPal - Transaktion abgeschloßen"
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr "Danke für Ihre Spende!"
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr "Ihr Spendenvorgang wurde abgeschlossen."
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Ihre Spende wird dem Fortschrittsbalken nach der Bestätigung durch PayPal "
-"hinzugefügt."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "Ihre Spende wird dem Fortschrittsbalken nach der Bestätigung durch PayPal hinzugefügt."
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr "Sie haben Ihren Spendenvorgang abgebrochen."
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr "Dieses Projekt akzeptiert keine Spenden."
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr "%1 Spenden"
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"Dieses Projekt akzeptiert Spenden mittels\n"
-"%1"
+msgstr "Dieses Projekt akzeptiert Spenden mittels\n%1"
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -3004,2310 +3082,1995 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"Um zu spenden, einfach den Betrag den Sie spenden wollen in das folgende "
-"Feld eintragen.\n"
-"PayPal akzeptiert verschiedene Währungen\n"
-"(Kanadische Dollars, Euros, Pfund Sterling, U.S. Dollars.\n"
-"Yen, Australische Dollars, Neuseeland Dollars,\n"
-"Schweizer Franken, Hong Kong Dollars, Singapur Dollars, Schwedische Kronen,\n"
-"Dänische Kronen, Polnische Zloty, Norwegische Kronen,\n"
-"Ungarische Forint, Tschechische Kronen)\n"
-"Sie können den vorhandenen Währungskonverter benutzen\n"
-"um den eingegebenen Betrag in anderen Währungen angezeigt zu bekommen.\n"
-"(Bitte beachten Sie, dass es sich bei dem Wert der Währung nur um "
-"Schätzungen handelt\n"
-"und der tatsächliche Betrag sich unterscheidet)."
-
-#: ../user/donations.php:316
+msgstr "Um zu spenden, einfach den Betrag den Sie spenden wollen in das folgende Feld eintragen.\nPayPal akzeptiert verschiedene Währungen\n(Kanadische Dollars, Euros, Pfund Sterling, U.S. Dollars.\nYen, Australische Dollars, Neuseeland Dollars,\nSchweizer Franken, Hong Kong Dollars, Singapur Dollars, Schwedische Kronen,\nDänische Kronen, Polnische Zloty, Norwegische Kronen,\nUngarische Forint, Tschechische Kronen)\nSie können den vorhandenen Währungskonverter benutzen\num den eingegeben [...]
+
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr "Betrag den Sie spenden möchten"
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr "Geschätzter Wert in"
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr "Anonyme Spende"
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Hier auswählen wenn Ihr Name und Projektkonto<b>nicht</b>\n"
-"in der Liste der Spender angezeigt werden soll.<br> Falls nicht ausgewählt, "
-"dann werden sie aufgenommen als Benutzer ID %1"
+msgstr "Hier auswählen wenn Ihr Name und Projektkonto<b>nicht</b>\nin der Liste der Spender angezeigt werden soll.<br> Falls nicht ausgewählt, dann werden sie aufgenommen als Benutzer ID %1"
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
 msgstr "Bitte einloggen um die Spende ihrem Benutzerkonto zuweisen zu können."
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr "Fortfahren"
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr "Spenden werden akzeptiert mittels"
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr "BOINC Add-On's herunterladen"
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr "Sie können Anwendungen aus verschiedenen Kategorien herunterladen."
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Diese Anwendungen sind nicht von %1 unterstützt und die Benutzung erfolgt "
-"auf eigene Gefahr."
+msgstr "Diese Anwendungen sind nicht von %1 unterstützt und die Benutzung erfolgt auf eigene Gefahr."
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"Wir stellen keine Anleitungen zur Installation der Anwendungen bereit.\n"
-"Möglicherweise hat der Autor einiges an Hilfe über Installation oder "
-"Deinstallation der Anwendung bereitgestellt.\n"
-"Falls das nicht ausreicht sollten Sie den Autor/Herausgeber direkt "
-"kontaktieren."
+msgstr "Wir stellen keine Anleitungen zur Installation der Anwendungen bereit.\nMöglicherweise hat der Autor einiges an Hilfe über Installation oder Deinstallation der Anwendung bereitgestellt.\nFalls das nicht ausreicht sollten Sie den Autor/Herausgeber direkt kontaktieren."
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-"Anweisungen und Hilfe zur %1Installation und Nutzung von BOINC%2 sind "
-"ebenfalls erhältlich."
+msgstr "Anweisungen und Hilfe zur %1Installation und Nutzung von BOINC%2 sind ebenfalls erhältlich."
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr "Diese Liste ist zentral verwaltet von der %1BOINC Webseite%2."
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr "Die E-Mail-Adresse des Kontos ändern."
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr "Die neue E-Mail-Adresse '%1', ist ungültig."
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-"Die neue E-Mail-Adresse ist die gleiche wie die im Moment genutzte. Nichts "
-"wurde verändert."
+msgstr "Die neue E-Mail-Adresse ist die gleiche wie die im Moment genutzte. Nichts wurde verändert."
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr "Es existiert bereits ein Konto mit dieser E-Mail-Adresse."
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr "Ungültiges Passwort."
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr "Die E-Mail-Adresse Ihres Kontos ist jetzt %1."
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr "Bitte %1bestätigen Sie diese E-Mail-Adresse%2."
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
-msgstr ""
-"Wir konnten Ihre E-Mail-Adresse,wegen einem Problem mit der Datenbank, nicht "
-"aktualisieren. Bitte versuchen Sie es später noch einmal."
+msgstr "Wir konnten Ihre E-Mail-Adresse,wegen einem Problem mit der Datenbank, nicht aktualisieren. Bitte versuchen Sie es später noch einmal."
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr "E-Mail-Adresse ändern"
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr "Die E-Mail-Adresse Ihres Kontos ändern."
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr "neue E-Mail-Adresse"
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr "Muss eine gültige E-Mail-Adresse der Form 'name at domain.tld' sein."
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr "Kein Passwort?"
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr "Zurücksetzen bestätigen"
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Diese Aktion wird alle Änderungen die Sie in Ihren Community-Einstellungen "
-"gemacht haben löschen. Zum Abbrechen, den 'Zurück'-Schalter Ihres Browsers "
-"klicken."
+msgstr "Diese Aktion wird alle Änderungen die Sie in Ihren Community-Einstellungen gemacht haben löschen. Zum Abbrechen, den 'Zurück'-Schalter Ihres Browsers klicken."
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "Einstellungen zurücksetzen"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-"Fehler: Nicht der richtige Dateityp, nur Formate PNG und JPEG sind "
-"unterstützt."
+msgstr "Fehler: Nicht der richtige Dateityp, nur Formate PNG und JPEG sind unterstützt."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr "Ihre Signatur war zu lang, bitte bleiben Sie unter 250 Zeichen."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Kein solcher Benutzer: %1"
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Kein solcher Benutzer:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"Wie sollen wir Sie bei neuen privaten Nachrichten, Freundschaftsanfragen, "
-"Antworten in abonnierten Foren und bei anderen Ereignissen benachrichtigen?"
+msgstr "Wie sollen wir Sie bei neuen privaten Nachrichten, Freundschaftsanfragen, Antworten in abonnierten Foren und bei anderen Ereignissen benachrichtigen?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "Auf der Seite meines Kontos (keine E-Mail)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "Unverzüglich, per E-Mail"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "In einer täglichen E-Mail-Zusammenfassung"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "Identität in Diskussionsforen"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "Avatar"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "Ein Bild welches in den Diskussionsforen angezeigt wird."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "Format: JPEG oder PNG. Größe: max. 4KB, 100x100 pixel"
 
-#: ../user/edit_forum_preferences_form.php:80
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "Keinen Avatar benutzen"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "Benutze einen allgemein anerkannten und bereitgestellten Avatar von %1"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "Benutze diesen hochgeladenen Avatar:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "Avatar Vorschau"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "So wird Ihr Avatar aussehen"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "Signatur für Nachrichten in den Diskussionsforen"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Weitere %1 verschiedene freie Dienste%2 zur\n"
-"<br> Bereitstellung dynamischer 'Signaturbilder',\n"
-"<br> Anzeigen Ihrer aktuellen Punkte, Projektneuigkeiten, etc."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "verbleibende Zeichen"
+msgstr "Weitere %1 verschiedene freie Dienste%2 zur\n<br> Bereitstellung dynamischer 'Signaturbilder',\n<br> Anzeigen Ihrer aktuellen Punkte, Projektneuigkeiten, etc."
 
-#: ../user/edit_forum_preferences_form.php:105
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "Standardmäßig Signatur anhängen"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "Vorschau Signatur"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "So wird Ihre Signatur in den Diskussionsforen aussehen"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "Nachrichtenanzeige"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "Was soll angezeigt werden?"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "alle Avatarbilder ausblenden"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "alle Signaturen ausblenden"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "Bilder als Links anzeigen"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "Öffne Links in einem neuen Fenster/Tab"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "Besondere Benutzer hervorheben"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "Diese Anzahl Nachrichten pro Seite anzeigen."
 
-#: ../user/edit_forum_preferences_form.php:139
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "sortieren nach"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "Themen:"
 
-# ########################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "Beiträge:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "Automatisch zum ersten neuen Beitrag im Thema springen"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "Angepinnte Beiträge nicht nach oben bewegen"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "Nachrichtenfilter"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "Gefilterte Benutzer"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Ignoriere Beiträge in Diskussionsforen und Private Nachrichten von diesen "
-"Benutzern."
+msgstr "Ignoriere Beiträge in Diskussionsforen und Private Nachrichten von diesen Benutzern."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "Benutzer ID (zum Beispiel: 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr "Benutzer zum Filter hinzufügen"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "Hier klicken um die Einstellungen zu aktualisieren"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "Zurücksetzen"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: html/user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr "Oder hier klicken um auf die Standardvorgaben zurückzusetzen"
 
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "ungültiger Kontoschlüssel"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Kein Konto mit dieser E-Mail-Adresse wurde gefunden"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Ungültiges Passwort"
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Wir konnten Ihr Passwort wegen eines Datenbankproblems nicht ändern. Bitte versuchen Sie es später noch einmal."
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "Passwort ändern"
 
-#: ../user/edit_passwd_action.php:67
+#: html/user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "Ihr Passwort wurde geändert"
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Wir konnten Ihr Passwort wegen eines Datenbankproblems nicht ändern. Bitte "
-"versuchen Sie es später noch einmal."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Sie können sich identifizieren, entweder mit Hilfe von"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "Ihrer E-Mail-Adresse und dem alten Passwort"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "Ihrem Kontoschlüssel"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Aktuelles Passwort"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>ODER</b>: Kontoschlüssel"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Kontoschlüssel per E-Mail bekommen"
-
-#: ../user/edit_passwd_form.php:53
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "Neues Passwort"
 
-#: ../user/edit_passwd_form.php:54
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "Neues Passwort bestätigen"
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr "HTML-Tags sind in Ihrem Namen nicht erlaubt."
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr "Sie müssen einen Namen für das Konto angeben."
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr "Kontoinformationen konnten nicht aktualisiert werden."
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr "Kontoinformationen bearbeiten"
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr "Name %1 Echter Name oder Spitzname %2"
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr "URL %1 Ihrer Webseite; optional %2"
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr "Postleitzahl %1 optional %2"
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr "Angaben aktualisieren"
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr "Serverzustände"
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"Der <b>Serverzustand</b> einer Aufgabe zeigt an ob die Aufgabe zu einem "
-"Computer verschickt wurde, und wenn das so ist ob der Computer sie beendet "
-"hat. Mögliche Werte sind:"
+msgstr "Der <b>Serverzustand</b> einer Aufgabe zeigt an ob die Aufgabe zu einem Computer verschickt wurde, und wenn das so ist ob der Computer sie beendet hat. Mögliche Werte sind:"
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr ""
-"Die Aufgabe ist nicht fertig zum versenden (zum Beispiel, weil ihre "
-"Eingabedateien nicht verfügbar sind)"
+msgstr "Die Aufgabe ist nicht fertig zum versenden (zum Beispiel, weil ihre Eingabedateien nicht verfügbar sind)"
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr "Die Aufgabe ist fertig zum versenden, aber wurde noch nicht verschickt."
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr "In Bearbeitung"
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr "Die Aufgabe wurde verschickt; warte auf Fertigstellung."
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
-msgstr ""
-"Die Aufgabe wurde an einen Computer verschickt und entweder ist die "
-"Abgabefrist abgelaufen oder der Computer hat sie als fertig gemeldet."
+msgstr "Die Aufgabe wurde an einen Computer verschickt und entweder ist die Abgabefrist abgelaufen oder der Computer hat sie als fertig gemeldet."
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr "Resultate"
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
-msgstr ""
-"Das <b>Resultat</b> einer Aufgabe ist definiert wenn ihr Serverzustand "
-"<b>beendet</b> ist. Mögliche Werte sind:"
+msgstr "Das <b>Resultat</b> einer Aufgabe ist definiert wenn ihr Serverzustand <b>beendet</b> ist. Mögliche Werte sind:"
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
-msgstr ""
-"Die Aufgabe wurde zu einem Computer geschickt, aber der Computer hat die "
-"Arbeit noch nicht beendet und die Ergebnisse gemeldet."
+msgstr "Die Aufgabe wurde zu einem Computer geschickt, aber der Computer hat die Arbeit noch nicht beendet und die Ergebnisse gemeldet."
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
 msgstr "Ein Computer beendete und meldete die Aufgabe erfolgreich zurück."
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
-msgstr ""
-"Der Server war nicht in der Lage die Aufgabe zu einem Computer zu schicken "
-"(evtl. weil ihre Systemanforderungen zu groß waren)"
+msgstr "Der Server war nicht in der Lage die Aufgabe zu einem Computer zu schicken (evtl. weil ihre Systemanforderungen zu groß waren)"
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr "Clientfehler"
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-"Die Aufgabe wurde zu einem Computer geschickt und ein Fehler ist "
-"aufgetreten."
+msgstr "Die Aufgabe wurde zu einem Computer geschickt und ein Fehler ist aufgetreten."
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr ""
-"Die Aufgabe wurde zu einem Computer geschickt und keine Antwort wurde "
-"innerhalb der Zeitbegrenzung empfangen."
+msgstr "Die Aufgabe wurde zu einem Computer geschickt und keine Antwort wurde innerhalb der Zeitbegrenzung empfangen."
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Die Aufgabe wurde nicht an einen Computer geschickt weil bereits genug "
-"andere Aufgaben für dieses Arbeitspaket fertig sind."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "Die Aufgabe wurde nicht an einen Computer geschickt weil bereits genug andere Aufgaben für dieses Arbeitspaket fertig sind."
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
-msgstr ""
-"Die Aufgabe wurde gemeldet aber konnte nicht validiert werden, typisch wenn "
-"die Ausgabedateien auf dem Server weg sind."
+msgstr "Die Aufgabe wurde gemeldet aber konnte nicht validiert werden, typisch wenn die Ausgabedateien auf dem Server weg sind."
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr "Clientzustand"
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Der <b>Clientzustand</b> eines Ergebnisses zeigt die Phase der Verarbeitung "
-"an, in der ein Fehler aufgetreten ist."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Der <b>Clientzustand</b> eines Ergebnisses zeigt die Phase der Verarbeitung an, in der ein Fehler aufgetreten ist."
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr "Der Computer hat die Aufgabe noch nicht fertiggestellt."
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr "Der Computer hat die Aufgabe erfolgreich fertiggestellt."
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
-msgstr ""
-"Der Computer konnte die Anwendung oder die Eingabedateien nicht "
-"herunterladen."
+msgstr "Der Computer konnte die Anwendung oder die Eingabedateien nicht herunterladen."
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr "Ein Fehler ist während der Berechnung aufgetreten."
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr "Der Computer konnte die Ausgabedateien nicht hochladen."
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr "Zeitpunkt der Einreichung und Abgabefrist"
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr ""
-"Die Spalte <b>Zeitpunkt der Einreichung und Abgabefrist</b> hängt davon ab, "
-"ob die Aufgabe schon gemeldet wurde:"
+msgstr "Die Spalte <b>Zeitpunkt der Einreichung und Abgabefrist</b> hängt davon ab, ob die Aufgabe schon gemeldet wurde:"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr "bereits gemeldet"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr "Der Zeitpunkt wann sie gemeldet wurde"
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr "Noch nicht gemeldet, Abgabefrist in der Zukunft"
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr "Abgabefrist, in grün angezeigt."
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr "Noch nicht gemeldet, Abgabefrist in der Vergangenheit"
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr "Abgabefrist, in rot angezeigt."
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr "Unbekanntes Feld"
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Vorschau der E-Mail"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Ihre E-Mail wird wie folgt aussehen:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "E-Mail senden"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Benutzen Sie den Zurückschalter Ihres Browsers um auf das "
-"Nachrichtenformular zurück zu kehren"
-
-#: ../user/ffmail_action.php:63
+#: html/user/ffmail_action.php:28
 msgid "Sending emails"
 msgstr "E-Mails senden"
 
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "E-Mail erfolgreich an %1 gesendet"
-
-#: ../user/ffmail_action.php:86
+#: html/user/ffmail_action.php:43
 msgid "failed to send email to %1: %2"
 msgstr "Fehler beim versenden der E-Mail an %1: %2"
 
-#: ../user/ffmail_action.php:92
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "Fehler beim versenden der E-Mail an %1"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "E-Mail erfolgreich an %1 gesendet"
+
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr "Danke dass Sie ihren Freunden über %1 berichtet haben"
 
-#: ../user/ffmail_action.php:94
+#: html/user/ffmail_action.php:57
 msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Sie haben die Namen und/oder E-Mail-Adressen ihrer Freunde vergessen "
-"einzutragen; Bitte %1gehen Sie zu dem Formular zurück%2 und geben Sie sie "
-"ein."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-"Das Projekt konnte keine E-Mail versenden - bitte informieren Sie die "
-"Administratoren"
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Sie haben vergessen E-Mail-Adressen einzutragen; Bitte %1gehen Sie zu dem Formular zurück%2 und geben Sie sie ein."
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr "Erzählen Sie ihren Freunden von %1"
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-"Helfen Sie uns indem Sie Freunden, Familie und Mitarbeitern von %1 erzählen"
-
-#: ../user/ffmail_form.php:39
+#: html/user/ffmail_form.php:49
 msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Füllen Sie dieses Formular mit Namen und E-Mail-Adressen von Leuten aus von "
-"denen Sie denken sie währen an %1 interessiert. Wir werden ihnen in Ihrem "
-"Namen eine E-Mail schicken und Sie können wenn Sie mögen ihre eigene "
-"Nachricht hinzufügen ."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Ihr Name:"
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Benutzen Sie dieses Formular um E-Mails an Personen zu versenden welche ebenfalls an %1 interessiert sind."
 
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Ihre E-Mail-Adresse:"
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "An:"
 
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Name des Freundes:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "E-Mail-Adresse des Freundes:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Zusätzliche Nachricht (optional)"
-
-#: ../user/ffmail_form.php:59
+#: html/user/ffmail_form.php:59
 msgid "Send"
 msgstr "Senden"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
 msgid "You are not authorized to banish users."
 msgstr "Sie sind nicht befugt Benutzer zu verbannen."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Sie müssen eine Aktion bestimmen...."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Obszön"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Beleidigende/Hass Mail"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Benutzeranfrage"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "Abstimmung über Verbannung"
 
-#: ../user/forum_banishment_vote.php:50
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "Kein Benutzer mit dieser ID gefunden."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr "Benutzer ist bereits gebannt"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"Sind Sie sicher dass Sie %1 verbannen wollen?<br/>Das wird verhindern dass %"
-"1 für eine ausgewählte Zeit etwas schreiben kann.<br/>Das sollte nur "
-"geschehen wenn %1 dauerhaft schlechtes Verhalten gezeigt hat."
+msgstr "Sind Sie sicher dass Sie %1 verbannen wollen?<br/>Das wird verhindern dass %1 für eine ausgewählte Zeit etwas schreiben kann.<br/>Das sollte nur geschehen wenn %1 dauerhaft schlechtes Verhalten gezeigt hat."
 
-#: ../user/forum_banishment_vote.php:61
+#: html/user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Wählen Sie den Grund aus der Kategorie, optional schreiben Sie eine längere "
-"Erklärung warum der Benutzer gebannt werden sollte."
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Wählen Sie den Grund aus der Kategorie, optional schreiben Sie eine längere Erklärung warum der Benutzer gebannt werden sollte."
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "Kategorie"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Obszön"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Beleidigende/Hass Mail"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Benutzeranfrage"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Anderer"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "Grund"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "wird verschickt wenn nicht leer"
 
-#: ../user/forum_banishment_vote.php:74
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr "Mit Abstimmung fortfahren"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Sie müssen eine Aktion bestimmen...."
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr ""
-"Sie können diesen Beitrag nicht länger bearbeiten.<br/>Beiträge können nur "
-"bis zu %1 Minuten nachdem sie erstellt wurden bearbeitet werden."
+msgstr "Sie können diesen Beitrag nicht länger bearbeiten.<br/>Beiträge können nur bis zu %1 Minuten nachdem sie erstellt wurden bearbeitet werden."
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "Sie sind nicht befugt diesen Beitrag zu bearbeiten."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Forum"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Beitrag bearbeiten"
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr "Ihre Nachricht bearbeiten"
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr "Titel"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr "Diesem Beitrag meine Signatur anfügen"
 
-#: ../user/forum_forum.php:41
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "Für Sie nicht sichtbar"
 
-#: ../user/forum_forum.php:80
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "Team-Diskussionsforum für %1 "
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr "Neues Thema"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr "Ein neues Thema in diesem Forum erstellen"
 
-#: ../user/forum_forum.php:116
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "Dieses Diskussionsforum ist auch als %1RSS feed%2 verfügbar"
 
-# ########################################<br />
-# Forum thread
-#: ../user/forum_forum.php:174
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr "Dieses Thema ist versteckt"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-"Dieses Thema ist angepinnt und gesperrt und Sie haben es noch nicht gelesen"
+msgstr "Dieses Thema ist angepinnt und gesperrt und Sie haben es noch nicht gelesen"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr "angepinnt/gesperrt/ungelesen"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "Dieses Thema ist angepinnt und Sie haben es noch nicht gelesen"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr "angepinnt/ungelesen"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "Sie haben dieses Thema noch nicht gelesen und es ist gesperrt"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr "ungelesen/gesperrt"
 
-#: ../user/forum_forum.php:186
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr "Sie haben dieses Thema noch nicht gelesen"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr "Dieses Thema ist angepinnt und gesperrt"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr "angepinnt/gesperrt"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr "Dieses Thema ist angepinnt"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr "angepinnt"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr "Dieses Thema ist gesperrt"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr "gesperrt"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr "Sie haben dieses Thema gelesen"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr "gelesen"
 
-# ########################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "Fragen und Antworten"
 
-#: ../user/forum_help_desk.php:30
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Sprechen Sie live mit einem Helfer in einer der vielen Sprachen über Skype. "
-"Gehen Sie zur %1BOINC Online Hilfe%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Sprechen Sie live mit einem Helfer in einer der vielen Sprachen über Skype. Gehen Sie zur %1BOINC Online Hilfe%2."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr "Themengebiet"
 
-#: ../user/forum_help_desk.php:45
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr "Fragen"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "Diskussionen der Mitglieder von %1"
 
-# ########################################
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Diskussionsforen"
+#: html/user/forum_index.php:80
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "Wenn Sie eine Frage oder ein Problem haben, benutzen Sie bitte die %1Fragen & Antworten%2 Rubrik der Diskussionsforen."
+
+#: html/user/forum_index.php:125
+msgid "Subscribed threads"
+msgstr "Abonnierte Themen"
+
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Sie sind nicht befugt diesen Beitrag zu moderieren."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Kann nicht zu einem anderen Kategorietyp verschoben werden"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Kann nicht zu einer anderen Kategorie verschoben werden."
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Nicht befugt um Benutzer zu verbannen"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Verbannung"
 
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Wenn Sie eine Frage oder ein Problem haben, benutzen Sie bitte die %1Fragen "
-"& Antworten%2 Rubrik der Diskussionsforen."
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "Benutzer %1 wurde verbannt."
 
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Abonnierte Themen"
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Aktion fehlgeschlagen: mögliches Datenbankproblem"
 
-#: ../user/forum_moderate_post.php:43
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "Beitrag moderieren"
 
-#: ../user/forum_moderate_post.php:52
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "Beitrag verstecken"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "Kommerzieller Spam/Werbung"
 
-#: ../user/forum_moderate_post.php:58
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr "doppelter Beitrag"
 
-#: ../user/forum_moderate_post.php:63
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr "Verschiebe Beitrag"
 
-#: ../user/forum_moderate_post.php:65
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr "ID des Zielthemas:"
 
-#: ../user/forum_moderate_post.php:78
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr "Benutzer verbannen"
 
-#: ../user/forum_moderate_post.php:80
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr "Dauer der Verbannung"
 
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 Stunden"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 Stunden"
+
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 Stunden"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr "1 Tag"
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr "1 Woche"
 
-#: ../user/forum_moderate_post.php:84
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr "2 Wochen"
 
-#: ../user/forum_moderate_post.php:85
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr "1 Monat"
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr "Für immer"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-"Zusätzliche Erklärung %1 Diese ist in der E-Mail an Benutzer enthalten.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr "OK"
 
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Sie sind nicht befugt diesen Beitrag zu moderieren."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Kann nicht zu einem anderen Kategorietyp verschoben werden"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Kann nicht zu einer anderen Kategorie verschoben werden."
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Nicht befugt um Benutzer zu verbannen"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Verbannung"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Benutzer %1 wurde verbannt."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Aktion fehlgeschlagen: mögliches Datenbankproblem"
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Zusätzliche Erklärung %1 Diese ist in der E-Mail an Benutzer enthalten.%2"
 
-#: ../user/forum_moderate_thread.php:33
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "nicht befugt"
 
-#: ../user/forum_moderate_thread.php:36
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "Moderiere Thema '%1'"
 
-#: ../user/forum_moderate_thread.php:48
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr ""
-"Den Grund in der Kategorie auswählen, oder eine längere Beschreibung "
-"eingeben warum Sie das Thema sperren oder verstecken wollen; dann OK "
-"drücken."
+msgstr "Den Grund in der Kategorie auswählen, oder eine längere Beschreibung eingeben warum Sie das Thema sperren oder verstecken wollen; dann OK drücken."
 
-#: ../user/forum_moderate_thread.php:72
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "Aktuelles Forum"
 
-#: ../user/forum_moderate_thread.php:73
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "Zielforum"
 
-#: ../user/forum_moderate_thread.php:77
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "Neuer Titel:"
 
-#: ../user/forum_post.php:40
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr ""
-"Nur Projektadministratoren können hier ein Thema erstellen. Wie dem auch "
-"sei, Sie können vielleicht in bereits existierenden Themen antworten."
+msgstr "Nur Projektadministratoren können hier ein Thema erstellen. Wie dem auch sei, Sie können vielleicht in bereits existierenden Themen antworten."
 
-#: ../user/forum_post.php:60
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Ihr verwendeter Text wurde beim ersten Versuch vom Akismet Anti-Spam-System "
-"als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es "
-"erneut."
+msgstr "Ihr verwendeter Text wurde beim ersten Versuch vom Akismet Anti-Spam-System als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
 
-#: ../user/forum_post.php:70
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr "Neues Thema erstellen"
 
-#: ../user/forum_post.php:100
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr "Ein neues Thema erstellen"
 
-#: ../user/forum_post.php:105
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr "Denken Sie daran einen Titel anzugeben"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "Dieses Element als eine Nachricht im BOINC Manager anzeigen"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Machen Sie das nur für Elemente die von Interesse für die Benutzer sein "
-"könnten."
+msgstr "Machen Sie das nur für Elemente die von Interesse für die Benutzer sein könnten."
 
-#: ../user/forum_rate.php:26
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "Bewertung abgeschaltet"
 
-#: ../user/forum_rate.php:27
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "Diese Funktion ist zur Zeit vom Projekt abgeschaltet."
 
-#: ../user/forum_rate.php:58
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Sie brauchen eine höhere durchschnittliche Punktzahl oder Gesamtpunktzahl um "
-"einen Beitrag zu bewerten."
+msgstr "Sie brauchen eine höhere durchschnittliche Punktzahl oder Gesamtpunktzahl um einen Beitrag zu bewerten."
 
-#: ../user/forum_rate.php:62
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "Sie haben diesen Beitrag bereits bewertet."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "Zurück zum Thema"
 
-#: ../user/forum_rate.php:72
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "Eingabe gespeichert"
 
-#: ../user/forum_rate.php:73
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "Ihre Eingabe wurden gespeichert. Danke für Ihre Hilfe."
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "Stimme registriert"
 
-#: ../user/forum_rate.php:76
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "Ihre Bewertung wurde gespeichert. Danke für Ihre Eingabe."
 
-#: ../user/forum_rate.php:80
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "Problem bei der Abstimmung (Übermittlungsfehler)"
 
-#: ../user/forum_reply.php:73
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Ihr verwendeter Text wurde beim ersten Versuch von dem Akismet Anti-Spam-"
-"System als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es "
-"erneut."
+msgstr "Ihr verwendeter Text wurde beim ersten Versuch von dem Akismet Anti-Spam-System als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr "Zum Thema antworten"
 
-#: ../user/forum_reply.php:137
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr "Nachricht:"
 
-#: ../user/forum_reply.php:140
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "Antworte zur %1Nachricht ID%2:"
 
-#: ../user/forum_reply.php:166
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr "Antwort schreiben"
 
-#: ../user/forum_reply.php:169
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "Füge dieser Antwort meine Signatur hinzu"
 
-#: ../user/forum_report_post.php:45
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"Sie brauchen eine höhere durchschnittliche Punktzahl oder Gesamtpunktzahl um "
-"einen Beitrag zu melden."
+msgstr "Sie brauchen eine höhere durchschnittliche Punktzahl oder Gesamtpunktzahl um einen Beitrag zu melden."
 
-#: ../user/forum_report_post.php:65
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr "Bericht registriert"
 
-# 92%
-#: ../user/forum_report_post.php:66
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "Ihre Meldung wurde gespeichert. Danke für ihren Beitrag."
 
-#: ../user/forum_report_post.php:67
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr ""
-"Ein Moderator wird jetzt Ihre Meldung anschauen und entscheiden was "
-"passieren wird - dies kann eine Zeit lang dauern, gedulden Sie sich bitte"
+msgstr "Ein Moderator wird jetzt Ihre Meldung anschauen und entscheiden was passieren wird - dies kann eine Zeit lang dauern, gedulden Sie sich bitte"
 
-#: ../user/forum_report_post.php:71
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr "Forenbeitrag melden"
 
-#: ../user/forum_report_post.php:73
+#: html/user/forum_report_post.php:78
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"Bevor sie diesen Beitrag melden, überlegen Sie sich vielleicht stattdessen "
-"das Bewertungssystem (+/-) zu benutzen. Wenn genug Benutzer einen Beitrag "
-"negativ bewerten wird er evtl. versteckt werden.<br />Sie können das "
-"Bewertungssystem am Ende des Beitrags finden."
+msgstr "Bevor sie diesen Beitrag melden, überlegen Sie sich vielleicht stattdessen das Bewertungssystem (+/-) zu benutzen. Wenn genug Benutzer einen Beitrag negativ bewerten wird er evtl. versteckt werden.<br />Sie können das Bewertungssystem am Ende des Beitrags finden."
 
-#: ../user/forum_report_post.php:80
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr "Beitrag melden"
 
-#: ../user/forum_report_post.php:81
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Warum finden Sie diesen Beitrag unverschämt/angreifend: %1Bitte genug "
-"Information einfügen damit eine andere Person\n"
-"die das Thema noch nicht gelesen hat schnell das Problem erkennen kann.%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Warum finden Sie diesen Beitrag unverschämt/angreifend: %1Bitte genug Information einfügen damit eine andere Person\ndie das Thema noch nicht gelesen hat schnell das Problem erkennen kann.%2"
 
-#: ../user/forum_report_post.php:90
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr "Meldung nicht registriert"
 
-#: ../user/forum_report_post.php:91
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Ihre Meldung konnte nicht aufgezeichnet werden. Bitte warten Sie eine Weile "
-"und versuchen Sie es erneut."
+msgstr "Ihre Meldung konnte nicht aufgezeichnet werden. Bitte warten Sie eine Weile und versuchen Sie es erneut."
 
-#: ../user/forum_report_post.php:92
+#: html/user/forum_report_post.php:106
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Wenn das kein temporärer Fehler ist, dann melden Sie das bitte den "
-"Projektentwicklern."
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Wenn das kein temporärer Fehler ist, dann melden Sie das bitte den Projektentwicklern."
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 RSS feed"
 
-#: ../user/forum_rss.php:42
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "Dieses Diskussionsforum ist auch als RSS-Feed verfügbar."
 
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr "Optionen:"
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
 msgstr "Beinhaltet nur Beiträge von Benutzer-ID %1 (Standard: alle Benutzer)"
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "Beinhaltet nur Beiträge der letzten %1 Tage (Standard: 30)."
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Beiträge kürzen: %1 (Beinhaltet nur die ersten 265 Zeichen von jedem "
-"Beitrag)"
-
-#: ../user/forum_rss.php:53
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr "Nur Themen: %1 (Beinhaltet nur die ersten Beiträge eines jeden Themas)"
 
-# ########################################
-# Forum search features
-#: ../user/forum_search.php:27
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Ergebnisse der Forensuche"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Thementitel die Ihrer Anfrage entsprechen:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Nachrichten die Ihrer Anfrage entsprechen:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Entschuldigung, Es konnte nichts gefunden werden was Ihrer Suchanfrage entspricht. Sie können versuchen Ihre Suche unter Verwendung von weniger Wörtern zu erweitern (oder weniger spezielle Wörter verwenden)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Sie können ebenfalls %1die gleiche Suche auf Google probieren.%2 "
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Andere Suche ausführen"
+
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr "Forum durchsuchen"
 
-#: ../user/forum_search.php:31
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr "Suchanfrage"
 
-#: ../user/forum_search.php:32
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "Suche nach Schlüsselwörtern:"
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "Beiträge die die angegebenen Wörter enthalten werden angezeigt"
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "Zum Beispiel: \"Bildschirmschoner eingefroren\""
 
-#: ../user/forum_search.php:36
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "Suche nach Autor ID:"
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "Nur Beiträge dieses Benutzers werden angezeigt"
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "Zum Beispiel: \"43214\""
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr "Suchoptionen"
 
-#: ../user/forum_search.php:42
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr "Einschränkungen der Suche"
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "Suche maximal diese Anzahl von Tagen in der Vergangenheit."
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 Monate"
 
-#: ../user/forum_search.php:52
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr "1 Jahr"
 
-#: ../user/forum_search.php:73
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Forum"
+
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "Nur Beiträge aus diesem Forum anzeigen"
 
-#: ../user/forum_search.php:84
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr "Sortieren nach"
 
-#: ../user/forum_search.php:88
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr "Suche starten"
 
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Ergebnisse der Forensuche"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Thementitel die Ihrer Anfrage entsprechen:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Nachrichten die Ihrer Anfrage entsprechen:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Entschuldigung, Es konnte nichts gefunden werden was Ihrer Suchanfrage "
-"entspricht. Sie können versuchen Ihre Suche unter Verwendung von weniger "
-"Wörtern zu erweitern (oder weniger spezielle Wörter verwenden)."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Sie können ebenfalls %1die gleiche Suche auf Google probieren.%2 "
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Andere Suche ausführen"
-
-#: ../user/forum_subscribe.php:46
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "Abonnement erfolgreich"
 
-#: ../user/forum_subscribe.php:49
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
-msgstr ""
-"Sie sind nun Abonnent von %1. Sie werden benachrichtigt sobald ein neuer "
-"Beitrag existiert."
+msgstr "Sie sind nun Abonnent von %1. Sie werden benachrichtigt sobald ein neuer Beitrag existiert."
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "Abonnement fehlgeschlagen"
 
-#: ../user/forum_subscribe.php:52
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Wir sind momentan nicht in der Lage Sie %1 abonnieren zu lassen. Bitte "
-"versuchen Sie es später noch einmal."
+msgstr "Wir sind momentan nicht in der Lage Sie %1 abonnieren zu lassen. Bitte versuchen Sie es später noch einmal."
 
-#: ../user/forum_subscribe.php:61
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "Abmeldung vom Abonnement erfolgreich"
 
-#: ../user/forum_subscribe.php:64
+#: html/user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Sie abonnieren nicht länger %1. Sie werden keine Mitteilungen mehr für "
-"dieses Thema erhalten."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Sie abonnieren nicht länger %1. Sie werden keine Mitteilungen mehr für dieses Thema erhalten."
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "Abmeldung (Abonnement) fehlgeschlagen"
 
-#: ../user/forum_subscribe.php:67
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Wir sind momentan nicht in der Lage Sie von dem Abonnement %1 abzumelden. "
-"Bitte versuchen Sie es später noch einmal."
+msgstr "Wir sind momentan nicht in der Lage Sie von dem Abonnement %1 abzumelden. Bitte versuchen Sie es später noch einmal."
 
-#: ../user/forum_subscribe.php:74
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "Unbekannte Abonnement Aktion"
 
-#: ../user/forum_thread.php:61
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "Dieses Forum ist für Sie nicht sichtbar."
 
-# ########################################<br />
-# Forum thread
-#: ../user/forum_thread.php:69
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "Dieses Thema wurde von Moderatoren versteckt."
 
-#: ../user/forum_thread.php:128
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "Meine Frage wurde beantwortet"
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "Klicken Sie hier falls Ihre Frage hinlänglich beantwortet wurde."
 
-#: ../user/forum_thread.php:137
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "Ich habe auch diese Frage"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr "Eine neue Nachricht zu diesem Thema schreiben"
 
-#: ../user/forum_thread.php:171
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr "Nicht mehr abonnieren"
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "Sie haben dieses Thema abonniert. Hier klicken zum abbestellen."
 
-#: ../user/forum_thread.php:178
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr "Abonnieren"
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Anklicken um benachrichtigt zu werden, wenn neue Beiträge geschrieben "
-"wurden."
+msgstr "Anklicken um benachrichtigt zu werden, wenn neue Beiträge geschrieben wurden."
 
-#: ../user/forum_thread.php:190
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr "Dieses Thema sichtbar machen"
 
-#: ../user/forum_thread.php:196
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr "Dieses Thema vor der Öffentlichkeit verstecken"
 
-#: ../user/forum_thread.php:202
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr "Entpinnen"
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr "Dieses Thema nicht anpinnen"
 
-#: ../user/forum_thread.php:208
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr "Anpinnen"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Dieses Thema anpinnen"
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Diesen Strang immer am Anfang dieses Forums anzeigen "
 
-#: ../user/forum_thread.php:215
+#: html/user/forum_thread.php:219
 msgid "Unlock"
 msgstr "Entsperren"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Dieses Thema entsperren"
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Neue Beiträge in diesem Thema erlauben"
 
-#: ../user/forum_thread.php:221
+#: html/user/forum_thread.php:225
 msgid "Lock"
 msgstr "Sperren"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Dieses Thema sperren"
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Keine neuen Beiträge in diesem Thema erlauben"
 
-#: ../user/forum_thread.php:229
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr "Dieses Thema in ein anderes Forum verschieben"
 
-#: ../user/forum_thread.php:234
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr "Titel bearbeiten"
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr "Den Titel des Themas bearbeiten"
 
-#: ../user/forum_thread.php:245
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Thema endgültig löschen"
+
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr "Als Client-Nachricht exportieren"
 
-#: ../user/forum_thread.php:251
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr "Nicht exportieren"
 
-#: ../user/forum_thread.php:252
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr "Diesen Beitrag nicht als Client-Nachricht exportieren"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr "Sortieren"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "Themenstatus aktualisiert"
 
-#: ../user/forum_thread_status.php:50
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "Der Status wurde aktualisiert."
 
-# ########################################
-# Forum
-#: ../user/forum_user_posts.php:73
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "Beiträge von %1"
 
-#: ../user/friend.php:33
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr "Ihr seit bereits Freunde"
 
-#: ../user/friend.php:39
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "Sie haben die Freundschaft mit %1 am %2 angefragt."
 
-#: ../user/friend.php:41
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "Es wird noch auf eine Antwort gewartet."
 
-#: ../user/friend.php:52
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 hat einer Freundschaft mit Ihnen nicht zugestimmt"
 
-#: ../user/friend.php:61
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "Sie können nicht mit sich selbst Freundschaft schließen."
 
-#: ../user/friend.php:69
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr "als Freund hinzufügen"
 
-#: ../user/friend.php:74
+#: html/user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Sie möchten mit %1 Freundschaft schließen. Wir werden %2 benachrichtigen und "
-"Ihn/Sie bitten die Freundschaft zu bestätigen."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Sie möchten mit %1 Freundschaft schließen. Wir werden %1 benachrichtigen und Ihn/Sie bitten die Freundschaft zu bestätigen."
 
-#: ../user/friend.php:77
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "Eine Nachricht mitsenden (optional):"
 
-#: ../user/friend.php:115
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr "Freundschaftsanfrage gesendet"
 
-#: ../user/friend.php:116
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "Wir haben %1 über die Anfrage benachrichtigt."
 
-#: ../user/friend.php:126
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr "Bitte melden Sie sich als %1 an"
 
-#: ../user/friend.php:127
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "Sie müssen sich als %1 anmelden um die Freundschaftsanfrage zu sehen"
 
-#: ../user/friend.php:138
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr "Freundschaftsanfrage"
 
-#: ../user/friend.php:141
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 hat die Freundschaft mit Ihnen angefragt."
 
-#: ../user/friend.php:143
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 sagt: %2"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr "Freundschaft akzeptieren"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "Akzeptieren anklicken wenn %1 tatsächlich ein Freund ist"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr "Ablehnen"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "Ablehnen anklicken wenn %1 kein Freund ist"
 
-#: ../user/friend.php:186
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "Freundschaft bestätigt"
 
-#: ../user/friend.php:187
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "Ihre Freundschaft mit %1 wurde bestätigt."
 
-#: ../user/friend.php:205
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr "Freundschaft abgelehnt"
 
-#: ../user/friend.php:206
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "Sie haben die Freundschaft mit %1 abgelehnt."
 
-#: ../user/friend.php:221
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr "Benachrichtigung nicht gefunden"
 
-#: ../user/friend.php:223
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr "Freundschaft bestätigt"
 
-#: ../user/friend.php:224
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "Sie sind nun mit %1 befreundet."
 
-#: ../user/friend.php:232
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "Freundschaft aufheben"
 
-#: ../user/friend.php:234
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "Bist Du sicher die Freundschaft mit %1 aufzuheben?"
 
-#: ../user/friend.php:239
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr "Freunde bleiben"
 
-#: ../user/friend.php:249
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "Freundschaft aufgehoben"
 
-#: ../user/friend.php:250
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "Ihre Freundschaft mit %1 wurde aufgehoben."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Kontoinformationen vergessen?"
-
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Wenn Sie die E-Mail-Adresse des Kontos noch wissen und die E-Mails auch "
-"abrufen können:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Wenn Sie die E-Mail-Adresse des Kontos noch wissen und die E-Mails auch abrufen können:"
 
-#: ../user/get_passwd.php:29
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr ""
-"Bitte die E-Mail-Adresse eingeben und bestätigen. Eine E-Mail mit "
-"Anweisungen zum zurücksetzen Ihres Passwortes wird in kürze verschickt."
+msgstr "Bitte die E-Mail-Adresse eingeben und bestätigen. Eine E-Mail mit Anweisungen zum zurücksetzen Ihres Passwortes wird in kürze verschickt."
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr ""
-"2) Wenn Sie die E-Mail-Adresse Ihres Kontos vergessen haben oder die E-Mails "
-"nicht mehr abrufen können:"
+msgstr "2) Wenn Sie die E-Mail-Adresse Ihres Kontos vergessen haben oder die E-Mails nicht mehr abrufen können:"
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr ""
-"Wenn Sie BOINC mit diesem Konto eingesetzt haben gibt es einen weiteren Weg "
-"sich anzumelden:"
+msgstr "Wenn Sie BOINC mit diesem Konto eingesetzt haben gibt es einen weiteren Weg sich anzumelden:"
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
-"Navigieren Sie in das BOINC Datenverzeichnis auf Ihrem Computer (das "
-"Verzeichnis findet sich im Meldungsfenster nach dem Start)."
+msgstr "Navigieren Sie in das BOINC Datenverzeichnis auf Ihrem Computer (das Verzeichnis findet sich im Meldungsfenster nach dem Start)."
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-"Finden Sie Ihre Kontodatei des Projektes, der Dateiname lautet: <b>%1</b>."
+msgstr "Finden Sie Ihre Kontodatei des Projektes, der Dateiname lautet: <b>%1</b>."
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Öffnen Sie die Datei mit einem Texteditor (z.B. Editor oder WordPad). Sie "
-"sehen ungefähr folgendes:"
+msgstr "Öffnen Sie die Datei mit einem Texteditor (z.B. Editor oder WordPad). Sie sehen ungefähr folgendes:"
 
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Kopieren Sie die Zeichenfolge zwischen %1 und %2 (%3 im obigen Beispiel)."
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Kopieren Sie die Zeichenfolge zwischen %1 und %2 (%3 im obigen Beispiel)."
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
-msgstr ""
-"Fügen Sie die Zeichenfolge in das untere Feld ein und bestätigen mit OK."
+msgstr "Fügen Sie die Zeichenfolge in das untere Feld ein und bestätigen mit OK."
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr ""
-"Sie werden jetzt mit Ihrem Konto angemeldet, bitte aktualisieren Sie als "
-"erstes Ihre E-Mail-Adresse und Ihr Passwort."
+msgstr "Sie werden jetzt mit Ihrem Konto angemeldet, bitte aktualisieren Sie als erstes Ihre E-Mail-Adresse und Ihr Passwort."
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
-msgstr "Einloggen mit Authentikator"
+msgstr "Einloggen mit Kontoschlüssel"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Kontoinformationen vergessen?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "Es sind noch keine GPU Aufgaben zurückgemeldet."
 
-#: ../user/gpu_list.php:183
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Beste Grafikkarten"
+
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Die produktivsten Grafikkarten für die verschiedenen Plattformen zeigt diese "
-"Liste. Die relative Geschwindigkeit ist in Klammern angegeben."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Die produktivsten Grafikkarten für die verschiedenen Plattformen zeigt diese Liste. Die relative Geschwindigkeit, berechnet aus der durchschnittlichen Bearbeitungszeit, ist in Klammern angegeben."
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr "Willkommen bei %1"
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Die Kontoeinstellungen können Sie mit den folgenden Links anzeigen und "
-"bearbeiten."
+msgstr "Die Kontoeinstellungen können Sie mit den folgenden Links anzeigen und bearbeiten."
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-"Laden Sie die %1BOINC-Clientsoftware%2 herunter, wenn Sie das nicht bereits "
-"getan haben."
+msgstr "Laden Sie die %1BOINC-Clientsoftware%2 herunter, wenn Sie das nicht bereits getan haben."
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonyme Plattform, fehlende Anwendung"
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Ihr Konto"
 
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr "Anonyme Plattform"
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "fehlende Anwendungsversion"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "fehlende Anwendung"
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr "fehlende Plattform"
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr "Anzahl der abgeschloßenen Aufgaben"
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
 msgstr "Max. Aufgaben pro Tag"
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr "Anzahl der Aufgaben heute"
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr "Aufeinander-folgende, gültige Aufgaben"
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr "mittlere Berechnungsgeschwindigkeit"
 
-# ########################################<br />
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr "Anwendungsdetails für Rechner %1"
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr "Es gibt keine Aufzeichnungen zu diesem Computer."
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"Sie können den Eintrag für diesen Computer nicht löschen, da  für ihn noch "
-"Arbeitspakete in der Datenbank existieren. Bitte warten Sie einige Tage bis "
-"die Einträge vom Projekt gelöscht werden."
+msgstr "Sie können den Eintrag für diesen Computer nicht löschen, da  für ihn noch Arbeitspakete in der Datenbank existieren. Bitte warten Sie einige Tage bis die Einträge vom Projekt gelöscht werden."
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr "Den Eintrag für diesen Computer löschen"
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr "Eintrag gelöscht."
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr "Zurück zur Liste der Computer"
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr "Computereinträge zusammen führen"
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr "Computer zusammenführen"
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Es kann vorkommen das BOINC mehrere Einträge für einen Computer anlegt. Sie "
-"können dies korrigieren indem Sie ältere Einträge mit dem aktuellsten "
-"zusammenführen."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Es kann vorkommen das BOINC mehrere Einträge für einen Computer anlegt. Sie können dies korrigieren indem Sie ältere Einträge mit dem aktuellsten zusammenführen."
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr "Es gibt keine Computer die mit diesem zusammengeführt werden können."
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr "Details anzeigen"
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"Überprüfen der Computer die mit %1 übereinstimmen (erstellt %2, Computer ID "
-"%3):"
+msgstr "Überprüfen der Computer die mit %1 übereinstimmen (erstellt %2, Computer ID %3):"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr "Name"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr "erstellt"
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr "Computer ID"
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr "kein Computername"
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr "Computer zusammenführen"
 
-#: ../user/host_update_credit.php:28
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Computer von %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Computer sind versteckt"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Dieser Benutzer hat die Informationen zu seinen Computern verborgen."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Ihre Computer"
+
+#: html/user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "Punkte der Computer werden aktualisiert"
 
-#: ../user/host_venue_action.php:41
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Punkte des Computers aktualisiert"
+
+#: html/user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "Ort des Computer aktualisiert"
 
-#: ../user/host_venue_action.php:43
+#: html/user/host_venue_action.php:43
 msgid "none"
 msgstr "keine"
 
-#: ../user/host_venue_action.php:46
+#: html/user/host_venue_action.php:46
 msgid "The venue of this host has been set to %1."
 msgstr "Der Ort dieses Computer wurde auf %1 gesetzt."
 
-#: ../user/host_venue_action.php:48
+#: html/user/host_venue_action.php:48
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
-msgstr ""
-"Diese Änderung wird erst bei der nächsten Kommunikation des Computers mit "
-"dem Projekt wirksam."
+msgstr "Diese Änderung wird erst bei der nächsten Kommunikation des Computers mit dem Projekt wirksam."
 
-#: ../user/host_venue_action.php:50
+#: html/user/host_venue_action.php:50
 msgid "Return to host page"
 msgstr "Zurück zur Computerseite"
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Computer von %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Computer sind versteckt"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Dieser Benutzer hat die Informationen zu seinen Computern verborgen."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Ihre Computer"
-
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr "Erlaubte HTML-Tags"
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
 msgstr "Die folgenden HTML-Tags sind in der Teambeschreibung erlaubt:"
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr "Fett"
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr "kursiv"
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr "Verlinkung"
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr "Absatz"
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr "Zeilenumbruch"
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr "vorformatiert"
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"Bild, max. Höhe: 450 pixel. Bitte nicht auf Bilder, ohne das Einverständnis "
-"des Urhebers, verlinken."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "Bild, max. Höhe: 450 pixel. Bitte nicht auf Bilder, ohne das Einverständnis des Urhebers, verlinken."
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
-msgstr ""
-"Sie können auch die Kaufmännisch-Und Notation für spezielle Zeichen "
-"benutzen."
+msgstr "Sie können auch die kaufmännisch-Und Notation für spezielle Zeichen benutzen."
 
-#: ../user/info.php:35
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Regeln und Grundsätze"
+
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "Installieren Sie %1 nur, wenn Sie dazu befugt sind"
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"Installieren Sie %1 ausschliesslich auf Computern, die Sie besitzen, oder "
-"von denen Ihnen die Zugriffserlaubnis des Besitzers vorliegt. Die Regeln "
-"mancher Firmen und Schulen verbieten die Nutzung ihrer Computer für Projekte "
-"wie %1."
+msgstr "Installieren Sie %1 ausschliesslich auf Computern, die Sie besitzen, oder von denen Ihnen die Zugriffserlaubnis des Besitzers vorliegt. Die Regeln mancher Firmen und Schulen verbieten die Nutzung ihrer Computer für Projekte wie %1."
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
 msgstr "Wie %1 Ihren Computer verwendet"
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"Wenn Sie %1 auf Ihrem Computer arbeiten lassen, beansprucht es einen Teil "
-"der Rechenleistung, des Festplattenplatzes und der Netzwerkbandbreite. Sie "
-"können selbst bestimmen, wann und in welchem Umfang Ressourcen von %1 "
-"benutzt werden dürfen."
+msgstr "Wenn Sie %1 auf Ihrem Computer arbeiten lassen, beansprucht es einen Teil der Rechenleistung, des Festplattenplatzes und der Netzwerkbandbreite. Sie können selbst bestimmen, wann und in welchem Umfang Ressourcen von %1 benutzt werden dürfen."
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"Die von Ihrem Computer durchgeführte Arbeit trägt dazu bei, die Ziele von %1 "
-"zu erreichen, wie sie auf der Webseite beschrieben sind. Die "
-"Anwendungsprogramme können sich von Zeit zu Zeit ändern."
+msgstr "Die von Ihrem Computer durchgeführte Arbeit trägt dazu bei, die Ziele von %1 zu erreichen, wie sie auf der Webseite beschrieben sind. Die Anwendungsprogramme können sich dabei von Zeit zu Zeit ändern."
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr "Datenschutz"
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Ihr Konto bei %1 wird mit einem Namen ihrer Wahl identifiziert. Dieser Name "
-"wird auf der %1-Webseite angezeigt, zusammen mit einer Übersicht der Arbeit, "
-"die Ihr Computer für %1 geleistet hat. Wählen Sie einen Namen, der keine "
-"Rückschlüsse auf Ihre wahre Identität zulässt, wenn Sie anonym bleiben "
-"möchten."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Ihr Konto bei %1 wird mit einem Namen ihrer Wahl identifiziert. Dieser Name wird auf der %1-Webseite angezeigt, zusammen mit einer Übersicht der Arbeit, die Ihr Computer für %1 geleistet hat. Wählen Sie einen Namen, der keine Rückschlüsse auf Ihre wahre Identität zulässt, wenn Sie anonym bleiben möchten."
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Wenn Sie an %1 teilnehmen, werden Informationen über Ihren Computer  "
-"(darunter der Prozessortyp, die Speichergröße, usw.) aufgezeichnet und von %"
-"1 verwendet, um zu entscheiden, welche Art von Arbeit Ihrem Computer "
-"zugewiesen werden soll. Diese Informationen werden ebenfalls auf der "
-"Webseite von %1 gezeigt. Nichts, das Rückschlüsse auf den Standort Ihres "
-"Computers zulässt, (wie z. B. sein Domainnname oder seine Netzwerkadresse) "
-"wird angezeigt."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Um an %1 teilnehmen zu können, müssen Sie eine E-Mail-Adresse angeben, mit "
-"der Sie E-Mails empfangen können. Diese ist nicht auf der %1-Webseite "
-"einsehbar und wird auch nicht an Dritte weitergegeben. %1 wird Ihnen "
-"möglicherweise in regelmäßigen Abständen Newsletter senden; darauf können "
-"Sie aber jederzeit verzichten."
+msgstr "Wenn Sie an %1 teilnehmen, werden Informationen über Ihren Computer  (darunter der Prozessortyp, die Speichergröße, usw.) aufgezeichnet und von %1 verwendet, um zu entscheiden, welche Art von Aufgaben Ihrem Computer zugewiesen werden sollen. Diese Informationen werden ebenfalls auf der Webseite von %1 gezeigt. Es wird Nichts angezeigt, dass Rückschlüsse auf den Standort Ihres Computers zulässt (wie z. B. sein Domainnname oder seine Netzwerkadresse)."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Um an %1 teilnehmen zu können, müssen Sie eine E-Mail-Adresse angeben, mit der Sie E-Mails empfangen können. Diese ist nicht auf der %1-Webseite einsehbar und wird auch nicht an Dritte weitergegeben. %1 wird Ihnen möglicherweise in regelmäßigen Abständen Newsletter senden; darauf können Sie aber jederzeit verzichten."
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"Über die %1 Webseite versendete Private Nachrichten können nur vom Sender "
-"und Empfänger gelesen werden.  %1 unternimmt keine Überprüfung des Inhalts "
-"von privaten Nachrichten.  Wenn Sie ungewollt private Nachrichten von einem "
-"%1 Benutzer erhalten, können Sie diesen zu Ihrem %2Filter hinzufügen%3.  "
-"Damit sehen Sie keine öffentlichen und privaten Nachrichten dieses Benutzers "
-"mehr."
+msgstr "Über die %1 Webseite versendete private Nachrichten können nur vom Sender und Empfänger gelesen werden.  %1 unternimmt keine Überprüfung des Inhalts von privaten Nachrichten.  Wenn Sie ungewollt private Nachrichten von einem %1 anderen Nutzer erhalten, können Sie diesen zu Ihrem %2Filter hinzufügen%3.  Damit sehen Sie keine öffentlichen und privaten Nachrichten dieses Nutzers mehr."
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Wenn Sie unsere Diskussionsforen benutzen wollen, müssen Sie die %2Regeln & "
-"Grundsätze%3 befolgen. Nachrichten in den %1 Diskussionsforen sind "
-"öffentlich sichtbar. Mit dem veröffentlichen stimmen Sie zu das jedermann "
-"Ihre Nachrichten ansehen und kopieren darf."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Wenn Sie unsere Diskussionsforen benutzen wollen, müssen Sie die %2Regeln & Grundsätze%3 befolgen. Nachrichten in den %1 Diskussionsforen sind öffentlich sichtbar. Mit dem Veröffentlichen stimmen Sie zu, dass Jedermann Ihre Nachrichten ansehen und kopieren darf."
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
-msgstr "Sicherheit"
+msgstr "Ist es sicher an %1 teilzunehmen?"
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Wann immer Sie ein Programm aus dem Internet herunterladen, riskieren Sie, "
-"dass das Programm gefährliche Fehler enthalten, oder der Download-Server "
-"gehackt worden sein könnte. Für %1 wurden große Anstrengungen unternommen, "
-"diese Risiken zu minimieren. Wir haben unsere Anwendungen einer sorgfältigen "
-"Prüfung unterzogen. Unsere Server werden durch eine Firewall und weitere "
-"Sicherheitsmechanismen geschützt. Um sicherzustellen, dass die vom Programm "
-"heruntergeladenen Dateien nicht manipuliert worden sind, werden alle "
-"ausführbaren Dateien vom einem sicheren, nicht mit dem Internet verbundenen "
-"Computer digital signiert."
-
-#: ../user/info.php:50
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Wann immer Sie ein Programm aus dem Internet herunterladen, riskieren Sie, dass das Programm gefährliche Fehler enthält, oder der Download-Server gehackt worden sein könnte. %1 hat große Anstrengungen unternommen, diese Risiken zu minimieren. Wir haben unsere Anwendungen einer sorgfältigen Prüfung unterzogen. Unsere Server werden durch eine Firewall und weitere Sicherheitsmechanismen geschützt. Um sicherzustellen, dass die vom Programm heruntergeladenen Dateien nicht manipuliert  [...]
+
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Die Anwendungen von %1 können auf manchen Computern zu Überhitzung führen. "
-"Wenn dies passiert, sollten Sie aufhören, mit dem betreffenden Computer für "
-"%1 zu arbeiten oder ein %2Hilfprogramm%3 einsetzen, das die Prozessornutzung "
-"beschränkt."
+msgstr "Die Anwendungen von %1 können auf manchen Computern zu Überhitzung führen. Wenn dies passiert, sollten Sie aufhören, mit dem betreffenden Computer für %1 zu arbeiten oder ein %2Hilfprogramm%3 einsetzen, das die Prozessornutzung beschränkt."
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 wurde von %2 entwickelt. BOINC wurde an der Universität von Kalifornien "
-"entwickelt."
+msgstr "%1 wurde von %2 entwickelt. BOINC wurde an der Universität von Kalifornien entwickelt."
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr "Haftungsausschluss"
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 und %2 haften weder für Beschädigungen Ihres Computers, Datenverlust, "
-"noch irgend ein anderes Ereignis, das möglicherweise aus der Teilnahme an %1 "
-"resultieren könnte."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 und %2 haften weder für Beschädigungen Ihres Computers, Datenverlust, noch irgend ein anderes Ereignis, das möglicherweise aus der Teilnahme an %1 resultieren könnte."
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr "Andere BOINC-Projekte"
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"Es gibt andere Projekte, bei denen wie bei %1 die Softwareplattform BOINC "
-"zum Einsatz kommt. Möglicherweise ziehen Sie in Betracht, an einem oder "
-"mehreren dieser Projekte teilzunehmen. Dadurch wird Ihr Computer auch dann "
-"sinnvolle Arbeit verrichten, wenn von %1 gerade keine Arbeit verfügbar ist."
+msgstr "Es gibt andere Projekte, bei denen wie bei %1 die Softwareplattform BOINC zum Einsatz kommt. Möglicherweise ziehen Sie in Betracht, an einem oder mehreren dieser Projekte teilzunehmen. Dadurch wird Ihr Computer auch dann sinnvolle Arbeit verrichten, wenn von %1 gerade keine Arbeitspakete verfügbar sind."
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"Es besteht keinerlei Verbindung zwischen diesen anderen Projekten und %1 und "
-"wir können uns nicht für deren Sicherheitspraktiken und die Natur derer "
-"Nachforschungen verbürgen. Nehmen Sie an diesen Projekten auf eigene "
-"Verantwortung teil."
+msgstr "Es besteht keinerlei Verbindung zwischen diesen anderen Projekten und %1 und wir können uns nicht für deren Sicherheitspraktiken und die Natur derer Nachforschungen verbürgen. Nehmen Sie an diesen Projekten auf eigene Verantwortung teil."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Ich bin neu"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Ich bin ein BOINC-Benutzer"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Lesen Sie unsere %1Regeln und Grundsätze%2."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Herunterladen der BOINC Desktopanwendung"
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Herunterladen"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Bei Android Geräten sollte BOINC über den Google Play Store oder Amazon Appstore installiert werden."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Installer starten."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Wählen Sie %1 aus der Liste oder geben Sie %2 in das Textfeld ein"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Installieren Sie BOINC auf diesem Gerät wenn nicht bereits geschehen."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Klicken Sie auf Werkzeuge -> Projekt hinzufügen. Wählen Sie %1 aus der Liste oder geben Sie %2 in das Textfeld ein"
 
-#: ../user/language_select.php:47
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Wenn Sie eine Kommandozeilenversion von BOINC verwenden, erstellen Sie bitte zuerst ein %1neues Konto%2. Dann benutzen Sie %3boinccmd --project_attach%4 um das Projekt hinzuzufügen."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "%1 beitreten"
+
+#: html/user/language_select.php:46
 msgid "Language selection"
 msgstr "Sprachauswahl"
 
-#: ../user/language_select.php:73
+#: html/user/language_select.php:57
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
-msgstr ""
-"Diese Internetseite ist in mehreren Sprachen verfügbar. Die aktuelle "
-"Einstellung ist: %1 (%2)"
+msgstr "Diese Internetseite ist in mehreren Sprachen verfügbar. Die aktuelle Einstellung ist: %1 (%2)"
 
-#: ../user/language_select.php:78
+#: html/user/language_select.php:62
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Die aktuelle Sprache wird durch die Einstellungen Ihres Browsers bestimmt, "
-"diese sind: %1. Sie können die Einstellungen wie folgt ändern:"
+msgstr "Die aktuelle Sprache wird durch die Einstellungen Ihres Browsers bestimmt, diese ist: %1. Sie können die Einstellungen wie folgt ändern:"
 
-#: ../user/language_select.php:83
+#: html/user/language_select.php:67
 msgid "Firefox: Tools/Options/General"
 msgstr "Firefox: Extras/Einstellungen/Inhalt"
 
-#: ../user/language_select.php:85
+#: html/user/language_select.php:69
 msgid "Microsoft IE: Tools/Internet Options/Languages"
 msgstr "Internet Explorer: Extras/Internetoptionen/Allgemein/Sprachen"
 
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Oder Sie können auch direkt eine Sprache aus der unteren Liste auswählen. "
-"Dadurch wird ein Cookie gesetzt. Bitte stellen Sie sicher das Ihr Browser "
-"Cookies von unserer Domain gestattet."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Sprachauswahl (klicken zum auswählen)"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Oder Sie wählen eine Sprache aus der folgenden Auswahl:"
 
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Browsereinstellungen verwenden"
-
-#: ../user/language_select.php:113
+#: html/user/language_select.php:85
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Übersetzungen werden durch Freiwillige erstellt. Wenn Ihre Muttersprache "
-"nicht aufgeführt ist, können Sie selbst %1eine Übersetzung erstellen%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "E-Mail-Adresse:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "E-Mail-Adresse vergessen?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Passwort:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "Passwort vergessen?"
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Übersetzungen werden durch Freiwillige erstellt. Wenn Ihre Muttersprache nicht aufgeführt ist, können Sie selbst %1eine Übersetzung erstellen%2."
 
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "angemeldet bleiben"
-
-#: ../user/login_form.php:62
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr "oder %1Konto erstellen%2."
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr "Bearbeite %1"
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr "PC %1 in PC %2 integriert"
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
-msgstr "Zurück zur Liste der Computer"
+msgstr "Zurück zur Liste Ihrer Computer"
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -5315,42 +5078,32 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"Diese Aktion führt Computer anhand des Rechnernamens zusammen.\n"
-"        <p>\n"
-"        Alle Computer mit dem gleichen Rechnernamen,\n"
-"        werden in dem neuesten Computer zusammengeführt.\n"
-"        Inkompatible Computer werden nicht zusammengeführt.\n"
-"        <p>"
+msgstr "Diese Aktion führt Computer anhand des Rechnernamens zusammen.\n        <p>\n        Alle Computer mit dem gleichen Rechnernamen,\n        werden in dem neuesten Computer zusammengeführt.\n        Inkompatible Computer werden nicht zusammengeführt.\n        <p>"
 
-#: ../user/merge_by_name.php:82
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr "Mit der Aktion fortfahren"
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr "Zurück zur Liste der Computer"
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"Um eine angenehme Diskussion und den bestmöglichen Informationsfluss zu "
-"gewährleisten wird dieses Forum moderiert. Forenbeiträge müssen den "
-"folgenden Regeln entsprechen:"
+msgstr "\nUm eine angenehme Diskussion und den bestmöglichen Informationsfluss zu gewährleisten wird dieses Forum moderiert. Forenbeiträge müssen den folgenden Regeln entsprechen:\n"
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5379,2077 +5132,1521 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Moderatoren können Beiträge löschen die gegen einer dieser Regeln verstoßen.\n"
-"Die Autoren der gelöschten Beiträge werden per email benachrichtigt.\n"
-"Bei schwerwiegenden Verstößen wird dem Benutzer vorrübergehend die Fähigkeit "
-"Nachrichten zu schreiben entzogen.\n"
-"(Um Missbrauch zu verhindern haben daher nur Projektadministratoren die "
-"Möglichkeit dies zu tun).\n"
-"Weitere Arten von schlechtem Verhalten sind (\"Phishing\" das ausspähen von\n"
-"IP-Adressen und anderer Daten der Benutzer, übermäßige Erstellung von "
-"Beiträgen und Themen\n"
-"um das Forum zu zuspämmen, etc.), auch ähnliche Verstöße die nicht in den "
-"offiziellen Regeln aufgeführt sind\n"
-"können zu Strafen führen.\n"
-"<p>\n"
-"Wenn Sie denken das ein Beitrag gegen geltende Regeln verstößt,\n"
-"dann klicken Sie auf das rote x im Beitrag, und füllen Sie das Formular aus;\n"
-"Ihre Beschwerde wird den Moderatoren mitgeteilt.\n"
-"Bitte benutzen Sie den Button nur für klare Regelverstöße - nicht\n"
-"für persönliche Streitigkeiten.\n"
-"<p>\n"
-"Wir werden versuchen so gerecht wie möglich zu sein beim Moderieren,\n"
-"aber in einer großen Gemeinschaft von Nutzern, mit vielen unterschiedlichen "
-"Standpunkten,\n"
-"wird es immer einige Leute geben die nicht mit unseren\n"
-"Entscheidungen zufrieden sind.\n"
-"Wir bedauern wenn das passiert,\n"
-"Bitte sehen Sie ein das wir es nicht allen recht machen können,\n"
-"und wir unsere Entscheidungen auf der Grundlage der uns zur Verfügung "
-"stehenden Mittel und\n"
-"das was am besten für die Allgemeinheit im Forum ist treffen.\n"
-"Bitte Diskutieren Sie unsere Forumspolitik nicht im Forum! Wir sind kein\n"
-"Gesellschafts Wissentschaftsprojekt noch ist es unsere Pflicht\n"
-"ein perfektes faires System zu erschaffen. Da solche Diskussionen und "
-"eventuelle aufkommende beleidigende Äußerungen\n"
-"tendenziell kontra produktiv sind. Wenn Sie ein berechtigtes Anliegen haben,\n"
-"dann senden Sie uns eine email an die unten angegebene Adresse.\n"
-"<p>\n"
-"Diese Forum Moderations Regeln gelten für das %1 Project.\n"
-"Wenn Sie Fragen oder Kommentare zu diesem Bestimmungen haben, email %2.\n"
-"\n"
+msgstr "\n<p>\nModeratoren können Beiträge löschen die gegen eine der folgenden Regeln verstoßen.\nDie Autoren der gelöschten Beiträge werden per E-Mail benachrichtigt.\nBei schwerwiegenden Verstößen wird dem Benutzer vorrübergehend die Fähigkeit Nachrichten zu schreiben entzogen.\n(Um Missbrauch zu verhindern haben daher nur Projektadministratoren die Möglichkeit dies zu tun).\nWeitere Arten von schlechtem Verhalten sind (\"Phishing\" das Ausspähen von\nIP-Adressen und anderer Daten der [...]
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr "Ausstehende Punkte"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr "Aufgaben ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr "Job ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr "Rechner ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr "geforderte Punkte"
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr "Ausstehende Punkte: %1"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr "Nachrichten von diesem Nutzer blockieren"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr "Benutzer blockieren"
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr "Ihre Nachricht wurde versendet."
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr "Sie haben keine privaten Nachrichten."
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr "Absender und Zeit"
 
-#: ../user/pm.php:106
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr "Auf diese Nachricht antworten"
 
-#: ../user/pm.php:107
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr "Diese Nachricht löschen"
 
-#: ../user/pm.php:112
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr "Alle auswählen"
 
-#: ../user/pm.php:114
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr "Alle abwählen"
 
-#: ../user/pm.php:117
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr "Ausgewählte Nachrichten löschen"
 
-#: ../user/pm.php:140
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr "Absender"
 
-#: ../user/pm.php:143
+#: html/user/pm.php:137
 msgid "Date"
 msgstr "Datum"
 
-#: ../user/pm.php:185
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
-msgstr ""
-"Sie müssen alle Eingabefelder ausfüllen, um eine private Nachricht zu senden"
+msgstr "Sie müssen alle Eingabefelder ausfüllen, um eine private Nachricht zu senden"
 
-#: ../user/pm.php:188
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Nachricht gesendet"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Ihre Nachricht wurde an %1 Teammitglieder gesendet."
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Ihr verwendeter Text wurde vom Akismet Anti-Spam-System als Spam erkannt. "
-"Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Ihr verwendeter Text wurde vom Akismet Anti-Spam-System als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
 
-#: ../user/pm.php:205
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr "Benutzer mit der ID %1 konnte nicht gefunden werden"
 
-#: ../user/pm.php:210
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr "Benutzer mit dem Benutzernamen %1 konnte nicht gefunden werden"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"%1 ist kein einmaliger Benutzername; Sie müssen die Benutzer-ID verwenden"
+msgstr "%1 ist kein einmaliger Benutzername; Sie müssen die Benutzer-ID verwenden"
 
-#: ../user/pm.php:217
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-"Der Benutzer %1 (ID: %2) möchten keine privaten Nachrichten von Ihnen "
-"erhalten."
+msgstr "Der Benutzer %1 (ID: %2) möchten keine privaten Nachrichten von Ihnen erhalten."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr "Benutzer nicht gefunden"
 
-#: ../user/pm.php:242
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr "%1 wirklich blockieren?"
 
-#: ../user/pm.php:243
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr ""
-"Möchten Sie wirklich keine privaten Nachrichten mehr vom Benutzer %1 "
-"erhalten?"
+msgstr "Möchten Sie wirklich keine privaten Nachrichten mehr vom Benutzer %1 erhalten?"
 
-#: ../user/pm.php:244
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Bitte beachten Sie, dass Sie nur eine begrenzte Anzahl Benutzer blockieren "
-"können."
+msgstr "Bitte beachten Sie, dass Sie nur eine begrenzte Anzahl Benutzer blockieren können."
 
-#: ../user/pm.php:245
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr ""
-"Sobald Sie den Benutzer blockiert haben, können Sie die Blockierung in den "
-"Foren-Einstellungen wieder aufheben."
+msgstr "Sobald Sie den Benutzer blockiert haben, können Sie die Blockierung in den Foren-Einstellungen wieder aufheben."
 
-#: ../user/pm.php:252
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr "Nein, abbrechen"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr "Benutzer nicht gefunden"
 
-#: ../user/pm.php:263
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr "Benutzer %1 blockiert"
 
-#: ../user/pm.php:265
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "Benutzer %1 kann Ihnen keine weiteren privaten Nachrichten senden."
 
-#: ../user/pm.php:266
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-"Die Blockierung können Sie in den %1Einstellungen für das Diskussionsforum %"
-"2 aufheben."
+msgstr "Die Blockierung können Sie in den %1Einstellungen für das Diskussionsforum %2 aufheben."
 
-#: ../user/pm.php:302
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr "Unbekannte Aktion"
 
-#: ../user/prefs.php:32
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 für %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Zurück zu den Einstellungen"
+
+#: html/user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Ihre Einstellungen wurden aktualisiert. Clienteinstellungen\n"
-"werden aktiviert wenn der Computer mit %1 kommuniziert\n"
-"oder der %2Aktualisieren%3 Knopf im Manager geklickt wurde."
+msgstr "Ihre Einstellungen wurden aktualisiert. Clienteinstellungen\nwerden aktiviert wenn der Computer mit %1 kommuniziert\noder der %2Aktualisieren%3 Knopf im Manager geklickt wurde."
 
-#: ../user/prefs.php:41
+#: html/user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Ihre Einstellungen wurden auf den Standard zurückgesetzt. "
-"Clienteinstellungen\n"
-"werden aktiviert wenn der Computer mit %1 kommuniziert\n"
-"oder der %2Aktualisieren%3 Knopf im Manager geklickt wurde."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 für %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Zurück zu den Einstellungen"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Ihre Einstellungen wurden auf den Standard zurückgesetzt. Clienteinstellungen\nwerden aktiviert wenn der Computer mit %1 kommuniziert\noder der %2Aktualisieren%3 Knopf im Manager geklickt wurde."
 
-#: ../user/prefs_remove.php:45
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "Löschen der Einstellungen bestätigen"
 
-#: ../user/prefs_remove.php:48
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Bist du sicher das die %1 Einstellungen für %2 gelöscht werden sollen?"
+msgstr "Bist du sicher, dass die %1 Einstellungen für %2 gelöscht werden sollen?"
 
-#: ../user/prefs_remove.php:52
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "Einstellungen entfernen"
 
-#: ../user/prefs_remove.php:54
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: ../user/profile_menu.php:35
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"%1Profile%2 geben den Benutzern die Möglichkeit Ihre Ansichten und Meinungen "
-"zur %3 Community auszudrücken."
+msgstr "%1Profile%2 geben den Nutzern die Möglichkeit Ihre Ansichten und Meinungen zur %3 Community auszudrücken."
 
-#: ../user/profile_menu.php:36
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
-msgstr ""
-"Entdecken Sie die Vielfalt der anderen Benutzer und stellen Sie Ihre eigenen "
-"Ansichten dar."
+msgstr "Entdecken Sie die Vielfalt der anderen Freiwilligen und stellen Sie Ihre eigenen Ansichten dar."
 
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"Falls nicht schon vorhanden, sollten Sie Ihr %1eigenes Benutzerprofil "
-"anlegen%2 und den anderen Benutzern zeigen!"
+msgstr "Falls nicht schon vorhanden, sollten Sie Ihr %1eigenes Benutzerprofil anlegen%2 und den anderen Benutzern zeigen!"
 
-#: ../user/profile_menu.php:42
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
-msgstr "Benutzer des Tages"
+msgstr "Nutzer des Tages"
 
-#: ../user/profile_menu.php:57
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
-msgstr "Benutzerprofile entdecken"
+msgstr "Nutzerprofile entdecken"
 
-#: ../user/profile_menu.php:60
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
-msgstr "%1Bildergalerie der Benutzer%2 anschauen."
+msgstr "%1Bildergalerie der Nutzer%2 anschauen."
 
-#: ../user/profile_menu.php:61
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "Durchsuchen der Profile %1nach Ländern%2."
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr ""
-"Durchsuchen der Profile %1per Zufall%2, %3per Zufall mit Bildern%2 oder %"
-"4per Zufall ohne Bilder%2."
+msgstr "Durchsuchen der Profile %1per Zufall%2, %3per Zufall mit Bildern%2 oder %4per Zufall ohne Bilder%2."
 
-#: ../user/profile_menu.php:66
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "Profile nach Alphabet sortiert:"
 
-#: ../user/profile_menu.php:72
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "Profiltexte durchsuchen"
 
-#: ../user/profile_menu.php:98
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr "Keine Profile vorhanden"
 
-#: ../user/profile_menu.php:99
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "Keine Profile entsprachen Ihren Kriterien."
 
-#: ../user/profile_rate.php:29
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "Ungültige Wahl"
 
-#: ../user/profile_rate.php:34
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "Stimme gespeichert"
 
-#: ../user/profile_rate.php:38
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr "Dankeschön"
 
-#: ../user/profile_rate.php:41
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "Ihre Empfehlung wurde gespeichert."
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "Ihre Stimme zur Abweisung dieses Profils wurde gespeichert."
 
-#: ../user/profile_rate.php:46
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "Zum Profil zurückkehren."
 
-#: ../user/profile_search_action.php:36
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "Profile die '%1' enthalten"
 
-#: ../user/profile_search_action.php:40
+#: html/user/profile_search_action.php:42
 msgid "User name"
-msgstr "Benutzername"
+msgstr "Nutzername"
 
-#: ../user/profile_search_action.php:41
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
-msgstr "beigetreten am"
+msgstr "dem Projekt beigetreten am"
 
-#: ../user/profile_search_action.php:44
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "Zuletzt verdiente Punkte"
 
-#: ../user/profile_search_action.php:54
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "Keine Profile die '%1' enthalten gefunden"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Aufgabe %1"
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Keine solche Aufgabe:"
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr "Diese Funktion ist zur Zeit deaktiviert."
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr "Kein Computer mit der ID %1 gefunden"
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr "Zugang verweigert"
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
-msgstr "Fehlende Benutzer oder Rechner ID"
+msgstr "Fehlende Nutzer oder Rechner ID"
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr "Keine Aufgaben verfügbar"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Gestartet"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 ist momentan wegen Wartungsarbeiten nicht verfügbar."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "Was ist %1?"
 
-#: ../user/server_status.php:100
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Nachrichten"
+
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr "Nicht gestartet"
 
-#: ../user/server_status.php:103
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "Gestartet"
+
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr "Deaktiviert"
 
-#: ../user/server_status.php:231
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr "Projektstatus"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Softwareversion des Servers: %1"
-
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr "Programm"
 
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr "Rechner"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "Datenbankbasierte Webseiten"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "Upload/Download Server"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "Scheduler"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Gestartet:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Programm läuft normal"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Nicht gestartet:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Programm produzierte Fehler oder das Projekt ist gestoppt"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Deaktiviert:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Programm ist deaktiviert"
-
-#: ../user/server_status.php:303
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr "Status der Berechnung"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Der Datenbankserver ist nicht verfügbar."
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Aufgaben bereit zum versenden"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Aufgaben in Arbeit"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Arbeitspakete warten auf Überprüfung"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Arbeitspakete warten auf Aufnahme"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Arbeitspakete bereit zum Löschen"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Aufgaben bereit zum Löschen"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Rückstand des Transitioners (Stunden)"
-
-#: ../user/server_status.php:374
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr "Benutzer"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "mit zuletzt verdienten Punkten"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "mit Punkten"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "registriert in den letzten 24h"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "aktuelle GigaFLOPs"
-
-#: ../user/server_status.php:420
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr "Aufgaben pro Anwendung"
 
-# ########################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "Anwendung"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "ungesendet"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "in Bearbeitung"
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Laufzeiten der letzten 100 Aufgaben in h: durchschnitt, min, max"
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "Durchschnittliche Laufzeit der letzten 100 Berechnungen in h (min-max)"
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Benutzer in den letzten 24 Stunden"
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "Benutzer in den letzten 24h"
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Version des Datenbankschemas:"
 
-#: ../user/show_host_detail.php:40
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr "Computer %1"
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr "Statistiken und Ranglisten"
 
-#: ../user/stats.php:28
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr "Statistiken von %1"
 
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Mehr detaillierte Statistiken von %1 und anderen BOINC-basierten Projekten "
-"sind auf den folgenden Webseiten verfügbar:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Sie können außerdem Ihre aktuelle Statistik in Form eines Signaturbildes "
-"bekommen:"
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "Die besten Benutzer"
 
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Eine Zusammenfassung der Statistik für alle BOINC Projekte, an denen Sie "
-"teilnehmen, finden Sie auf %1Ihrer Kontoseite%2."
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "Die besten Teams"
 
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 Benutzer können %2Teams%3 bilden."
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "Die besten Computer"
 
-#: ../user/team.php:29
+#: html/user/stats.php:53
 msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Sie können nur einem Team gleichzeitig angehören. Sie können allerdings das "
-"Team jederzeit wechseln."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Jedes Team besitzt einen %1Gründer%2 welcher:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "die E-Mail-Adressen der Mitglieder einsehen kann,"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Mehr detaillierte Statistiken von %1 und anderen BOINC-basierten Projekten sind auf den folgenden Webseiten verfügbar:"
 
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "den Namen und die Beschreibung des Teams ändern kann,"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "Hinzufügen oder entfernen von Teamadmins"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "Mitglieder aus dem Team entfernen kann,"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "ein Team auflösen kann, wenn es keine Mitglieder mehr hat."
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Um einem Team beizutreten besuchen Sie die Teamseite und benutzen Sie den %"
-"1Diesem Team beitreten%2 Link."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Ein Team finden"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Alle Teams"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "Teams vom Typ %1"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Neues Team erstellen"
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Sie können außerdem Ihre aktuelle Statistik in Form eines Signaturbildes bekommen:"
 
-#: ../user/team.php:59
+#: html/user/stats.php:59
 msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Wenn Sie kein passendes Team finden können dann sollten Sie ein %1neues Team "
-"erstellen%2."
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Eine Zusammenfassung der Statistik für alle BOINC Projekte, an denen Sie teilnehmen, finden Sie auf %1Ihrer Kontoseite%2."
 
-#: ../user/team_admins.php:34
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "Teamadmin-Status von diesem Mitglied entfernen"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr "Hinzufügen oder entfernen von Teamadmins"
 
-#: ../user/team_admins.php:41
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
 msgstr "Sie können Mitglieder zu Team-Administratoren machen. Diese können:"
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "Teameinstellungen ändern (Name, URL, Beschreibung, Land)"
 
-#: ../user/team_admins.php:44
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "die Beitritts-/Austrittshistorie ansehen"
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Nachrichten an das Team senden"
+
+#: html/user/team_admins.php:48
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"das Teamforum moderieren, wenn vorhanden (Admins bekommen bei Vorkommnissen "
-"eine Nachricht per E-Mail)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "das Teamforum moderieren, wenn vorhanden (Admins bekommen bei Vorkommnissen eine Nachricht per E-Mail)"
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr "Team-Administratoren können nicht:"
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr "den Team-Gründer ändern"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr "Mitglieder entfernen"
 
-#: ../user/team_admins.php:53
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Wenn ein Administrator das Team verlässt ist er nicht mehr länger Team-"
-"Administrator."
+msgstr "Wenn ein Administrator das Team verlässt ist er nicht mehr länger Team-Administrator."
 
-#: ../user/team_admins.php:54
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr ""
-"Wir empfehlen das Sie nur Mitglieder zu Administratoren machen die Sie "
-"kennen und dievertrauenswürdig sind."
+msgstr "Wir empfehlen das Sie nur Mitglieder zu Administratoren machen die Sie kennen und die vertrauenswürdig sind."
 
-#: ../user/team_admins.php:59
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr "Es gibt zur Zeit keine Team-Administratoren."
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr "Aktuelle Team-Administratoren"
 
-#: ../user/team_admins.php:62
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr "Administrator seit"
 
-#: ../user/team_admins.php:77
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr "Team-Administrator hinzufügen"
 
-#: ../user/team_admins.php:78
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr "E-Mail-Adresse des Teammitglieds:"
 
-#: ../user/team_admins.php:90
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr "Entfernen des Admins fehlgeschlagen"
 
-#: ../user/team_admins.php:99
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr "Benutzer ist nicht Mitglied eines Teams"
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr "%1 ist bereits Admin von %2"
 
-#: ../user/team_admins.php:105
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr "Admin konnte nicht hinzugefügt werden"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "Kein Team gefunden"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr "Kein Team gefunden"
 
-#: ../user/team_change_founder_action.php:38
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "Benutzer ist nicht Mitglied von %1"
 
-#: ../user/team_change_founder_action.php:41
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "Gründer von %1 ändern"
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 ist jetzt der Gründer von %2"
 
-#: ../user/team_change_founder_form.php:37
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "Gründer von %1 ändern"
 
-#: ../user/team_change_founder_form.php:43
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr ""
-"Das Mitglied %1 wollte Gründer von %2 werden, hat das Team aber "
-"zwischenzeitlich verlassen. Daher wurde die Anfrage abgebrochen."
+msgstr "Das Mitglied %1 wollte Gründer von %2 werden, hat das Team aber zwischenzeitlich verlassen. Daher wurde die Anfrage abgebrochen."
 
-#: ../user/team_change_founder_form.php:49
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Das Mitglied %1 hat den Gründerstatus für dieses Team angefordert. Entweder "
-"haben Sie das Team verlassen oder schon lange keinen Kontakt mehr gesucht."
+msgstr "Das Mitglied %1 hat den Gründerstatus für dieses Team angefordert. Entweder haben Sie das Team verlassen oder schon lange keinen Kontakt mehr gesucht."
 
-#: ../user/team_change_founder_form.php:55
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "Anforderung ablehnen"
 
-#: ../user/team_change_founder_form.php:58
+#: html/user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Wenn Sie die Anfrage nicht bis %1 beantworten, wird %2 die Möglichkeit "
-"bekommen den Gründerstatus zu übernehmen.<br /><br />\n"
-"Um die Anfrage von %3 zu akzeptieren, benutze das untere Formular"
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Wenn Sie die Anfrage nicht bis %1 beantworten, wird %2 die Möglichkeit bekommen den Gründerstatus zu übernehmen.<br /><br />\nUm die Anfrage von %3 zu akzeptieren, einfach das folgende Formular benutzen."
 
-#: ../user/team_change_founder_form.php:66
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "Keine laufende Übernahmeanfrage."
 
-#: ../user/team_change_founder_form.php:69
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Um den Gründerstatus dieses Teams an einen anderen Benutzer zu geben muss "
-"die Box neben dem Namen gewählt werden und mit dem Knopf <strong>Gründer "
-"wechseln</strong> bestätigt werden."
+"member name and click %1Change founder%2 below."
+msgstr "Um den Gründerstatus dieses Teams an einen anderen Benutzer zu geben muss die Box neben dem Namen gewählt werden und mit dem Knopf %1Gründer wechseln%2 bestätigt werden."
 
-#: ../user/team_change_founder_form.php:76
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr "Neuer Gründer?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr "Gründer wechseln"
 
-#: ../user/team_change_founder_form.php:108
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
 msgstr "Es gibt keinen Benutzer der das Team übernehmen kann."
 
-#: ../user/team_create_action.php:29
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr "Der Name des Teams darf nicht leer sein."
 
-#: ../user/team_create_action.php:34
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr "Das Team %1 besteht bereits, bitte wählen Sie einen anderen Namen."
 
-#: ../user/team_create_action.php:54
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
-msgstr ""
-"Das Team konnte nicht erstellt werden, bitte später noch einmal probieren."
+msgstr "Das Team konnte nicht erstellt werden, bitte später noch einmal probieren."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr "Ein Team erstellen"
 
-#: ../user/team_create_form.php:30
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Du bist Mitglied von %1. Du musst aus dem %2Team austreten%3 um ein neues zu "
-"erstellen."
+msgstr "Du bist Mitglied von %1. Du musst aus dem %2Team austreten%3 um ein neues zu erstellen."
 
-#: ../user/team_delta.php:65
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "Nicht Gründer oder Admin"
 
-#: ../user/team_delta.php:72
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "Teamhistorie von %1"
 
-#: ../user/team_delta.php:75
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr "Wann"
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr "Benutzer"
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr "Aktion"
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr "Gesamtpunkte zum Zeitpunkt der Aktion"
 
-#: ../user/team_edit_action.php:53
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr "falsches Land"
 
-#: ../user/team_edit_action.php:59
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "Der Name '%1' wird bereits von einem anderen Team verwendet."
 
-#: ../user/team_edit_action.php:62
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "Ein Teamname muss angegeben werden."
 
-#: ../user/team_edit_action.php:90
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
-msgstr ""
-"Das Team konnte nicht aktualisiert werden, bitte später noch einmal "
-"probieren."
+msgstr "Das Team konnte nicht aktualisiert werden, bitte später noch einmal probieren."
 
-#: ../user/team_edit_form.php:33
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "%1 bearbeiten"
 
-#: ../user/team_edit_form.php:34
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "Teaminformationen aktualisieren"
 
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "E-Mailverzeichnis von %1"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Mitglieder von %1"
 
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Mitgliederverzeichnis von %1"
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
 
-# oder als Klartext anzeigen? Gemeint ist eine Anzeige ohne HTML-Elemente
-#: ../user/team_email_list.php:78
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr "Als reinen Text anzeigen"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "Diskussionsforum erstellen"
 
-#: ../user/team_forum.php:29
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "Ein Diskussionsforum zur Nutzung durch %1 erstellen."
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "Nur Mitglieder des Teams können Beiträge verfassen."
 
-#: ../user/team_forum.php:32
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "Optional können auch nur Mitglieder das Forum sehen."
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
-msgstr "Der Gründer und die Team-Admins haben Moderatorrechte."
+msgstr "Der Gründer und die Team-Admins haben Moderatorenrechte."
 
-#: ../user/team_forum.php:40
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "Ein Diskussionsforum für %1 erstellen"
 
-#: ../user/team_forum.php:48
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "Das Team hat bereits ein Diskussionsforum."
 
-#: ../user/team_forum.php:59
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "Diskussionsforum des Teams"
 
-#: ../user/team_forum.php:71
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr "Mindestzeit zwischen Beiträgen (Sekunden)"
 
-#: ../user/team_forum.php:74
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
 msgstr "Mindestpunktzahl (Gesamt) für Schreibrecht"
 
-#: ../user/team_forum.php:77
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
 msgstr "Mindestpunktzahl (Durchschnitt) für Schreibrecht"
 
-#: ../user/team_forum.php:80
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr "Übertragen"
 
-#: ../user/team_forum.php:89
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr "Diskussionsforum des Teams entfernen."
 
-#: ../user/team_forum.php:97
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr "Das Diskussionsforum wirklich entfernen?"
 
-#: ../user/team_forum.php:98
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"Soll das Diskussionsforum wirklich entfernt werden? Alle Beiträge werden "
-"unwiderruflich gelöscht. Es kann aber danach ein neues (leeres) "
-"Diskussionsforum angelegt werden."
+msgstr "Soll das Diskussionsforum wirklich entfernt werden? Alle Beiträge werden unwiderruflich gelöscht. Es kann aber danach ein neues (leeres) Diskussionsforum angelegt werden."
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr "Ja - Forum entfernen"
 
-#: ../user/team_forum.php:121
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr "Diskussionsforum entfernt"
 
-#: ../user/team_forum.php:124
+#: html/user/team_forum.php:132
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Das Diskussionsforum des Teams wurde entfernt. Es kann jetzt ein %1neues "
-"angelegt werden%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Das Diskussionsforum des Teams wurde entfernt. Es kann jetzt ein %1neues angelegt werden%2."
 
-#: ../user/team_forum.php:143
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr "Diskussionsforum des Teams aktualisiert"
 
-#: ../user/team_forum.php:144
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr "Aktualisierung erfolgreich"
 
-#: ../user/team_forum.php:147
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr "Aktualisierung fehlgeschlagen"
 
-#: ../user/team_forum.php:154
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr "Das Team hat kein Forum"
 
-#: ../user/team_founder_transfer_action.php:36
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "Nur Mitglieder dieses Teams haben Zugriff auf diese Seite."
 
-#: ../user/team_founder_transfer_action.php:90
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr "Gründerstatus für %1 anfordern"
 
-#: ../user/team_founder_transfer_action.php:98
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Der aktuelle Gründer wurde von der Anfrage per E-Mail und PN "
-"benachrichtigt.<br /><br />\n"
-"Wenn der Gründer nicht innerhalb von 60 Tagen reagiert wird der Wechsel "
-"möglich sein."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "Der aktuelle Gründer wurde von der Anfrage per E-Mail und PN benachrichtigt.<br /><br />\nWenn der Gründer nicht innerhalb von 60 Tagen reagiert wird der Wechsel möglich sein."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
 msgstr "Wechsel des Gründerstatus zur Zeit nicht erlaubt"
 
-#: ../user/team_founder_transfer_action.php:109
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr "Gründerstatus von %1 übernommen"
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"Glückwunsch, Du bist nun der Gründer von Team %1. Auf der %2Ihr Konto Seite%"
-"3 findet sich der Link zur Verwaltung des Teams."
+msgstr "Glückwunsch, Du bist nun der Gründer von Team %1. Auf der %2Ihr Konto Seite%3 findet sich der Link zur Verwaltung des Teams."
 
-#: ../user/team_founder_transfer_action.php:120
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr "Anfrage nach Gründerwechsel ablehnen"
 
-#: ../user/team_founder_transfer_action.php:127
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr "Die Anfrage zum Gründerwechsel von %1 wurde abgelehnt."
 
-#: ../user/team_founder_transfer_action.php:130
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr "Es gibt keine Anfragen zum Gründerwechsel."
 
-#: ../user/team_founder_transfer_action.php:134
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr "unbekannte Aktion %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "Zurück zur Teamseite"
 
-#: ../user/team_founder_transfer_form.php:28
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "Man muss Mitglied eines Teams sein um diese Seite anzusehen."
 
-#: ../user/team_founder_transfer_form.php:31
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "Gründerstatus für %1 anfordern"
 
-#: ../user/team_founder_transfer_form.php:38
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "Du bist nun der Gründer von Team %1."
 
-#: ../user/team_founder_transfer_form.php:44
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "Du hast den Gründerstatus von %1 am %2 angefragt."
 
-#: ../user/team_founder_transfer_form.php:47
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr ""
-"60 Tage sind seit der Anfrage vergangen und der Gründer hat nicht reagiert. "
-"Du kannst nun den Gründerstatus bekommen:"
+msgstr "60 Tage sind seit der Anfrage vergangen und der Gründer hat nicht reagiert. Du kannst nun den Gründerstatus bekommen:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "Gründerstatus anfordern"
 
-#: ../user/team_founder_transfer_form.php:54
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr ""
-"Der Gründer wurde über die Anfrage informiert. Wenn Er/Sie nicht bis %1 "
-"antwortet bekommst du die Möglichkeit den Gründerstatus zu übernehmen."
+msgstr "Der Gründer wurde über die Anfrage informiert. Wenn Er/Sie nicht bis %1 antwortet bekommst du die Möglichkeit den Gründerstatus zu übernehmen."
 
-#: ../user/team_founder_transfer_form.php:60
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"Wenn der Gründer des Teams nicht mehr Aktiv ist, kann der Gründerstatus von "
-"jedem Teammitglied übernommen werden. Der aktuelle Gründer bekommt eine "
-"E-Mail mit den Informationen und kann der Übertragung zustimmen oder diese "
-"ablehnen. Sollte der Gründer nicht innerhalb von 60 Tagen antworten, besteht "
-"dann die Möglichkeit den Gründerstatus zu übernehmen.<br /><br />\n"
-"Sicher das die Übernahme des Gründerstatus eingeleitet werden soll?"
-
-#: ../user/team_founder_transfer_form.php:65
+msgstr "Wenn der Gründer des Teams nicht mehr Aktiv ist, kann der Gründerstatus von jedem Teammitglied übernommen werden. Der aktuelle Gründer bekommt eine E-Mail mit den Informationen und kann der Übertragung zustimmen oder diese ablehnen. Sollte der Gründer nicht innerhalb von 60 Tagen antworten, besteht dann die Möglichkeit den Gründerstatus zu übernehmen.<br /><br />\nSicher das die Übernahme des Gründerstatus eingeleitet werden soll?"
+
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "Gründerstatus anfordern"
 
-#: ../user/team_founder_transfer_form.php:74
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "Der Gründerstatus wurde bereits von %1 am %2 beantragt."
 
-#: ../user/team_founder_transfer_form.php:77
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr ""
-"Innerhalb der letzten 90 Tage wurde der Gründerstatus bereits beantragt, "
-"neue Anfragen sind nicht erlaubt. Bitte später erneut versuchen."
+msgstr "Innerhalb der letzten 90 Tage wurde der Gründerstatus bereits beantragt, neue Anfragen sind nicht erlaubt. Bitte später erneut versuchen."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr "Dem Team %1 kann nicht beigetreten werden."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr "Bereits Mitglied des Teams"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr "Du bist bereits Mitglied im Team %1."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-"Dem Team konnte nicht beigetreten werden, bitte später noch einmal "
-"probieren."
-
-#: ../user/team_join_action.php:40
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "%1 beigetreten"
 
-#: ../user/team_join_action.php:41
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "Du bist %1 beigetreten."
 
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "%1 beitreten"
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Dem Team konnte nicht beigetreten werden, bitte später noch einmal probieren."
 
-#: ../user/team_join_form.php:33
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr "Bitte beachten:"
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
 msgstr "Als Mitglied ist deine E-Mail Adresse für den Gründer einsehbar"
 
-#: ../user/team_join_form.php:36
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "Der Beitritt hat keinen Einfluss auf deine Punkte."
 
-#: ../user/team_join_form.php:43
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr "Team beitreten"
 
-#: ../user/team_lookup.php:84
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr "Suchergebnisse"
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr "Suchergebnisse für '%1'"
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
 msgstr "Die Mitglieder, Statistiken und Informationen zu diesem Team anschauen."
 
-#: ../user/team_lookup.php:98
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Mehr als 100 Teams entsprachen der Suche. Nur die ersten 100 werden "
-"angezeigt."
+msgstr "Mehr als 100 Teams entsprachen der Suche. Nur die ersten 100 werden angezeigt."
 
-#: ../user/team_lookup.php:104
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Wenn kein passendes Team gefunden wurde dann kann auch ein %1neues Team "
-"erstellt%2 werden."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Wenn kein passendes Team gefunden wurde dann kann auch ein %1neues Team erstellt%2 werden."
 
-#: ../user/team_manage.php:26
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "Verwaltung von Team %1"
 
-#: ../user/team_manage.php:29
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr "Teaminformationen bearbeiten"
 
-#: ../user/team_manage.php:30
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
-msgstr ""
-"Den Namen des Teams, die URL, die Beschreibung, den Typ oder das Land "
-"ändern."
+msgstr "Den Namen des Teams, die URL, die Beschreibung, den Typ oder das Land ändern."
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr "Mitgliederliste:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr "Text"
 
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Mitgliedsnamen und E-Mail Adressen anzeigen"
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Informationen zu Mitglied"
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:40
 msgid "View change history:"
 msgstr "Änderungshistorie anzeigen:"
 
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
-msgstr ""
-"Zeigt welche Mitglieder wann dem Team beigetreten sind oder dieses verlassen "
-"haben."
+msgstr "Zeigt welche Mitglieder wann dem Team beigetreten sind oder dieses verlassen haben."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr "Auf eine Anfrage zum Gründerwechsel antworten."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-"Wenn nicht bis zum %1 geantwortet wurde, kann %2 den Gründerstatus dieses "
-"Teams bekommen."
+msgstr "Wenn nicht bis zum %1 geantwortet wurde, kann %2 den Gründerstatus dieses Teams bekommen."
 
-#: ../user/team_manage.php:55
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr "Inaktive oder unerwünschte Mitglieder dieses Teams entfernen."
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr "Den Gründerstatus auf ein anderes Mitglied übertragen."
 
-#: ../user/team_manage.php:58
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr "Hinzufügen/Entfernen von Teamadmins"
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
 msgstr "Die gewählten Mitglieder zu Teamadmins erklären,"
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr "Team entfernen"
 
-#: ../user/team_manage.php:62
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr "Nur erlaubt wenn das Team keine Mitglieder mehr hat."
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr "Ein Diskussionsforum für das Team erstellen oder verwalten."
 
-#: ../user/team_manage.php:71
+#: html/user/team_manage.php:75
 msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Um dieses Team in allen BOINC-Projekten (aktuelle und zukünftige) anzulegen, "
-"kann es zu einem %1BOINC-weitem Team%2 gemacht werden."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Um dieses Team in allen BOINC-Projekten (aktuelle und zukünftige) anzulegen, kann es zu einem %1BOINC-weitem Team%2 gemacht werden."
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
-msgstr ""
-"Teamadmins werden ersucht sich an der Google Gruppe %1boinc-team-founders%2 "
-"(englisch) zu beteiligen."
+msgstr "Teamadmins werden ersucht sich an der Google Gruppe %1boinc-team-founders%2 (englisch) zu beteiligen."
 
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Andere Hilfsmittel werden von der externen Webseite %1www.boincteams.com%2 "
-"angeboten."
-
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr "Nicht-leeres Team kann nicht gelöscht werden."
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr "Team %1 gelöscht"
 
-#: ../user/team_members.php:36
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-"Limit überschritten: Nur die ersten 1000 Mitglieder können angezeigt werden."
+msgstr "Limit überschritten: Nur die ersten 1000 Mitglieder können angezeigt werden."
 
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Mitglieder von %1"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 Benutzer können %2Teams%3 bilden."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Sie können nur einem Team gleichzeitig angehören. Sie können allerdings das Team jederzeit wechseln."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Jedes Team besitzt einen %1Gründer%2 welcher:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "den Namen und die Beschreibung des Teams ändern kann,"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "Team-Administratoren hinzufügen oder entfernen"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "Mitglieder aus dem Team entfernen kann,"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "ein Team auflösen kann, wenn es keine Mitglieder mehr hat."
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Um einem Team beizutreten besuchen Sie die Teamseite und benutzen Sie den %1Diesem Team beitreten%2 Link."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Ein Team finden"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Alle Teams"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "Teams vom Typ %1"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Neues Team erstellen"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Wenn Sie kein passendes Team finden können dann sollten Sie ein %1neues Team erstellen%2."
 
-#: ../user/team_quit_action.php:32
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "Team konnte nicht verlassen werden."
 
-#: ../user/team_quit_action.php:33
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "Das Team existiert nicht oder Sie sind kein Mitglied."
 
-#: ../user/team_quit_form.php:31
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "Verlasse %1"
 
-#: ../user/team_quit_form.php:32
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
-msgstr ""
-"<strong>Vor dem Verlassen eines Teams bitte beachten:</strong>\n"
-"<ul>\n"
-"<li>Nach dem verlassen, kann man einem anderen Team oder diesem Team wieder "
-"beitreten.</li>\n"
-"<li>Das Verlassen eines Teams beeinflußt nicht die Anzahl der eigenen "
-"Punkte.</li>\n"
-"</ul>"
-
-#: ../user/team_quit_form.php:40
+msgstr "<strong>Vor dem Verlassen eines Teams bitte beachten:</strong>\n<ul>\n<li>Nach dem verlassen, kann man einem anderen Team oder diesem Team wieder beitreten.</li>\n<li>Das Verlassen eines Teams beeinflußt nicht die Anzahl der eigenen Punkte.</li>\n</ul>"
+
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "Team verlassen"
 
-#: ../user/team_remove_inactive_action.php:31
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "Entferne Mitglieder aus %1"
 
-#: ../user/team_remove_inactive_action.php:39
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1 ist nicht Mitglied von %2"
 
-#: ../user/team_remove_inactive_action.php:42
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 wurde entfernt"
 
-#: ../user/team_remove_inactive_form.php:32
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "Entferne Mitglieder aus %1"
 
-#: ../user/team_remove_inactive_form.php:39
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr "Entfernen?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr "Name (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr "Keine Mitglieder können entfernt werden."
 
-#: ../user/team_remove_inactive_form.php:68
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr "Mitglieder entfernen"
 
-#: ../user/team_search.php:68
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr "Teamname"
 
-#: ../user/team_search.php:92
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Bestätigt?"
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr "Ergebnisse der Teamsuche"
 
-#: ../user/team_search.php:94
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
 msgstr "Keine Teams mit diesen Kriterien gefunden. Bitte neue Suche starten."
 
-#: ../user/team_search.php:96
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr "Oder ein %1neues Team erstellen%2."
 
-#: ../user/team_search.php:100
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"Ein oder Mehrere Suchkriterien passen zu den folgenden Teams.\n"
-"Um einem Team beizutreten, bitte erst auf den Namen und\n"
-"dann %1diesem Team beitreten%2 klicken."
+msgstr "Ein oder Mehrere Suchkriterien passen zu den folgenden Teams.\nUm einem Team beizutreten, bitte erst auf den Namen und\ndann %1diesem Team beitreten%2 klicken."
 
-#: ../user/team_search.php:107
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr "Suche ändern"
 
-#: ../user/team_search.php:181
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr ""
-"Du kannst dich mit Leuten in Teams zusammenschließen, welche die ähnlichen "
-"Interessen haben oder aus dem selben Land, Unternehmen oder Schule kommen."
+msgstr "Du kannst dich mit Leuten in Teams zusammenschließen, welche die ähnlichen Interessen haben oder aus dem selben Land, Unternehmen oder Schule kommen."
 
-#: ../user/team_search.php:183
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
-msgstr ""
-"Benutze dieses Formular um Teams zu finden, die vielleicht die richtigen für "
-"dich sind."
+msgstr "Benutze dieses Formular um Teams zu finden, die vielleicht die richtigen für dich sind."
 
-#: ../user/team_search.php:188
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "%1Ich bin im Moment nicht daran interessiert%2 einem Team beizutreten."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "Höchstgrenze erreicht - Nur die ersten %1 Einträge werden angezeigt"
 
-#: ../user/top_hosts.php:82
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "Die besten Rechner"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr "Die besten %1 Teams"
 
-#: ../user/top_teams.php:108
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr "Es gibt keine %1 Teams."
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr "Benutzer seit"
 
-#: ../user/uotd.php:29
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr "Kein Benutzer des Tages gewählt."
 
-#: ../user/uotd.php:33
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr "Benutzer des Tages am %1: %2"
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr "Filterkriterien"
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr "Benutzername beginnt mit"
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr "Jeder"
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr "Mit Profil?"
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr "Entweder"
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr "In einem Team?"
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr "Sortierung"
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr "Absteigendes Anmeldedatum"
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr "Absteigendes Durchschnittsguthaben"
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr "Absteigendes Gesamtguthaben"
 
-#: ../user/user_search.php:100
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr "Der Suchbegriff muss mindestens 3 Zeichen enthalten"
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr "Ergebnisse der Benutzersuche"
 
-#: ../user/user_search.php:140
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr "Beitritt"
 
-#: ../user/user_search.php:148
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr "Keine Benutzer entsprechen Ihren Suchkriterien."
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr "Benutzer nicht gefunden!"
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr "Kontodaten<br/>für %1<br/>Zeit:"
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr "Team:"
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr "Team GesPunkt:"
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr "Team DurchschnPunkt:"
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr "Team: Keins"
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr "Bestätige die BOINC E-Mail Adresse"
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr ""
-"Bitte besuchen Sie den folgenden Link um ihre E-Mail Adresse für Ihren %1 "
-"Account zu bestätigen:"
+msgstr "Bitte besuchen Sie den folgenden Link um ihre E-Mail Adresse für Ihren %1 Account zu bestätigen:"
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr "E-Mail zur Validierung gesendet"
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr ""
-"Es wurde eine E-Mail an die Adresse %1 gesendet. Bitte den enthaltenen Link "
-"aufrufen um die E-Mail Adresse zu validieren."
+msgstr "Es wurde eine E-Mail an die Adresse %1 gesendet. Bitte den enthaltenen Link aufrufen um die E-Mail Adresse zu validieren."
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr "Benutzer nicht gefunden."
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
 msgstr "Fehler in der URL - E-Mail Adresse konnte nicht bestätigt werden."
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
-msgstr ""
-"Aktualisierung der Datenbank fehlgeschlagen - Bitte später erneut probieren."
+msgstr "Aktualisierung der Datenbank fehlgeschlagen - Bitte später erneut probieren."
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
-msgstr " BOINC E-Mail Adresse bestätigen"
+msgstr "E-Mail Adresse bestätigen"
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr "Die E-Mail Adresse Ihres Kontos wurde bestätigt."
 
-#: ../user/view_profile.php:36
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "Dieser Benutzer hat kein Profil."
 
-#: ../user/view_profile.php:54
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "Profil: %1"
 
-#: ../user/view_profile.php:63
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr "Kontoinformationen"
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"Der Zugriff auf das Benutzerkonto kann per E-Mail-Adresse und Passwort,\n"
-"oder per 'Kontoschlüssel' erfolgen.\n"
-"Ihr Kontoschlüssel ist:"
+msgstr "Der Zugriff auf das Benutzerkonto kann per E-Mail-Adresse und Passwort,\noder per 'Kontoschlüssel' erfolgen.\nIhr Kontoschlüssel ist:"
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr "Dieser Schlüssel kann für folgendes verwendet werden:"
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr "einloggen in das Benutzerkonto per Browser"
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"Um einen Computer zu Ihrem Konto hinzuzufügen, ohne den BOINC-Manager zu "
-"verwenden, installieren Sie BOINC und erstellen eine Datei mit dem Namen '%"
-"1' im BOINC Datenverzeichnis und dem folgenden Inhalt:"
+msgstr "Um einen Computer zu Ihrem Konto hinzuzufügen, ohne den BOINC-Manager zu verwenden, installieren Sie BOINC und erstellen eine Datei mit dem Namen '%1' im BOINC Datenverzeichnis und dem folgenden Inhalt:"
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr "schwacher Kontoschlüssel"
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"                  Der 'schwache Kontoschlüssel' kann wie oben beschrieben "
-"zum hinzufügen von Computern\n"
-"zu Ihrem Konto genutzt werden, jedoch können damit keine Änderungen am "
-"Benutzerkonto selbst vorgenommen werden.\n"
-"Wenn Sie also unsichere oder nicht vertrauenswürdige Computer zu Ihrem Konto "
-"hinzufügen wollen,\n"
-"benutzen Sie bitte den schwachen Kontoschlüssel.\n"
-"Dieser lautet:                "
+msgstr "                  Der 'schwache Kontoschlüssel' kann wie oben beschrieben zum hinzufügen von Computern\nzu Ihrem Konto genutzt werden, jedoch können damit keine Änderungen am Benutzerkonto selbst vorgenommen werden.\nWenn Sie also unsichere oder nicht vertrauenswürdige Computer zu Ihrem Konto hinzufügen wollen,\nbenutzen Sie bitte den schwachen Kontoschlüssel.\nDieser lautet:                "
 
-#: ../user/weak_auth.php:81
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
-"Wenn Sie Ihr Passwort ändern, ändert sich auch der schwache Kontoschlüssel "
-"und der vorherige wird ungültig."
+msgstr "Wenn Sie Ihr Passwort ändern, ändert sich auch der schwache Kontoschlüssel und der vorherige wird ungültig."
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr "Arbeitspaket nicht gefunden"
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr "Paket %1"
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "Anwendung"
+
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr "autorisiertes Ergebnis"
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr "gewährte Punkte"
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Aufgaben in Arbeit"
+
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "unterdrückt bis zum Abschluss"
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
 msgstr "Mindestanzahl"
 
-# Das ist ein eher technischer Begriff der die Anzahl der zu Beginn erzeugten Kopien des Jobs ausdrückt.
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr "Anfängliche Kopien"
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
 msgstr "max # von Fehler/Gesamt/Erfolg Aufgaben"
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr "Fehler"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr "Gültigkeit"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr "Ausstehend"
 
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Startseite"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:48
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr "Erstellt"
 
-#: ../project.sample/project.inc:79
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
 msgstr "Informationen zu ihrer Person."
 
-#: ../project.sample/project.inc:83
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Erzähl uns etwas über dich. Du könntest etwas darüber erzählen wo du "
-"herkommst, dein Alter, Beschäftigung, Hobbys, oder andere Sachen über dich "
-"selbst."
+msgstr "Erzähl uns etwas über dich. Du könntest etwas darüber erzählen wo du herkommst, dein Alter, Beschäftigung, Hobbys, oder andere Sachen über dich selbst."
 
-#: ../project.sample/project.inc:87
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr "Deine Meinungen zu %1"
 
-#: ../project.sample/project.inc:91
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"Teilen Sie uns Ihre Gedanken zu %1 mit<ol>\n"
-"<li>Warum führen Sie %1 aus?\n"
-"<li>Wie ist Ihre Meinung zu diesem Projekt?\n"
-"<li>Haben Sie Hinweise oder Verbesserungsvorschläge?\n"
-"</ol>"
+msgstr "Teilen Sie uns Ihre Gedanken zu %1 mit<ol>\n<li>Warum führen Sie %1 aus?\n<li>Wie ist Ihre Meinung zu diesem Projekt?\n<li>Haben Sie Hinweise oder Verbesserungsvorschläge?\n</ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr "Farbschema für Grafiken"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "maximale CPU % für Grafiken%1 0 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr "Startet nur die ausgewählte Anwendung/en"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Nur Aufgaben für bestimmte Anwendungen erlauben. Nützlich um Anwendungen zu bevorzugen oder auszuschließen."
+
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
-msgstr ""
-"Wenn keine Aufgaben für die ausgewählten Anwendungen vorhanden sind, "
-"Aufgaben von anderen Anwendungen akzeptieren?"
+msgstr "Wenn keine Aufgaben für die ausgewählten Anwendungen vorhanden sind, Aufgaben von anderen Anwendungen akzeptieren?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Schnellere, nicht-grafische Anwendungen verwenden, sofern verfügbar?"
+
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr "(alle Anwendungen)"
 
-#~ msgid "Error:"
-#~ msgstr "Fehler:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Erstellung eines neuen Konto ist deaktiviert"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Entschuldigung, das Projekt hat die Erstellung neuer Konten deaktiviert.\n"
-#~ "Bitte versuchen Sie es später wieder."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Die Kontoerstellung ist zurzeit deaktiviert. Bitte versuchen Sie es später "
-#~ "noch einmal."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "nvidia Grafikkarte"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Das Projekt hat keine E-Mail-Nachricht erstellt - Bitte benachrichtigen Sie "
-#~ "deren Administratoren"
-
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Benutze Intel GPU %1 Unterstützt ab Version 7.0 %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Diese Einstellungen gelten für alle BOINC-Projekte an denen du "
-#~ "teilnimmst.<br>\n"
-#~ "Auf Computern mit mehreren Projekten werden die aktuellsten Einstellungen "
-#~ "verwendet."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Diesen Beitrag als Client-Nachricht exportieren"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Wechseln Sie in das BOINC Datenverzeichnis auf Ihrem Computer (unter Windows "
-#~ "normalerweise: <b>C:\\Dokumente und einstellungen\\All "
-#~ "Users\\Anwendungsdaten\\BOINC</b> oder <b>C:\\Programme\\BOINC</b>)."
-
-#~ msgid "No such task"
-#~ msgstr "Keine Aufgabe gefunden"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Computer ist mit dem Internet circa alle X verbunden. %1 Frei lassen oder 0 "
-#~ "eintragen bei dauerhafter Internetverbindung. %2 BOINC versucht genug Arbeit "
-#~ "für diese Zeitdauer zu bekommen. (Max. 10 Tage) %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Fordere genug Arbeit für weitere"
-
-#~ msgid "Update failed: "
-#~ msgstr "Aktualisierung fehlgeschlagen: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Ermöglicht %1eingeschränkten Zugriff%2 auf Ihr Konto"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Dieses Formular nicht verwenden. Einfach BOINC starten, im BOINC-Manager "
-#~ "\"Projekt hinzufügen\" auswählen und Ihre E-Mail-Adresse und Passwort "
-#~ "eingeben."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Fixierte Beiträge nicht umsortieren"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Wenn ein Thema mehr als diese Anzahl an Beiträgen enthält"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "Nur den Ersten und nur so viele von den letzten anzeigen"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Ihre Meldung wurde gespeichert. Danke für ihre Eingabe."
-
-#~ msgid "Search type"
-#~ msgstr "Suchkriterien"
-
-#~ msgid "User names starting with"
-#~ msgstr "Benutzernamen beginnend mit"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Mit Ihrem 'schwachen Kontoschlüssel' können Sie Computer zu Ihrem Konto bei "
-#~ "diesem Projekt hinzufügen, allerdings sind damit keine Änderungen des Kontos "
-#~ "möglich."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Diese Funktion existiert nur bei Projekten die Ihre Software nach dem 7. "
-#~ "Dezember 2007 aktualisiert haben."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Ihr schwacher Kontoschlüssel für dieses Projekt:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Um den schwachen Kontoschlüssel auf einem Computer zu verwenden, finden oder "
-#~ "erstellen Sie die 'Kontodatei' für dieses Projekt. Der Dateiname ist in "
-#~ "etwa <strong>account_PROJEKT_URL.xml</strong>. Die Kontodatei für %1 ist "
-#~ "<strong>%2</strong>"
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Erstellen Sie, falls nötig, die Datei mit diesem Inhalt:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Der schwache Kontoschlüssel ist abhängig von Ihrem Passwort. Wenn Sie das "
-#~ "Passwort ändern, ändert sich auch der schwache Kontoschlüssel und der "
-#~ "vorherige wird ungültig."
-
-#~ msgid "Account key"
-#~ msgstr "Kontoschlüssel"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Ermöglicht vollen Zugriff auf Ihr Konto"
-
-#~ msgid "Export"
-#~ msgstr "Exportieren"
-
-#~ msgid "- private message"
-#~ msgstr "- private Nachricht"
-
-# ########################################
-# Private messages
-#~ msgid "Private message from"
-#~ msgstr "Private Nachrichten von"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Überprüfung der E-Mail Adresse ausstehend"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Angemeldet als %1."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Als jemand anderes anmelden."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Kein Thema mit der ID %1 gefunden. Bitte überprüfen Sie den Link und "
-#~ "versuchen Sie es erneut."
-
-#~ msgid "Request not found"
-#~ msgstr "Anfrage nicht gefunden"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 hat Sie als Freund hinzugefügt."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Kontodaten von %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "Das Diskussionsforum konnte nicht erstellt werden."
-
-#~ msgid "message board not found"
-#~ msgstr "Diskussionsforum nicht gefunden"
-
-#~ msgid "no such forum"
-#~ msgstr "Forum nicht gefunden"
-
-#~ msgid "unknown command %1"
-#~ msgstr "unbekannter Befehl %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "FEHLER: %1 existiert nicht! Kombobox konnte nicht erstellt werden."
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Zum Schutz vor unerwünschter Werbung tragen Sie hier bitte die zwei "
-#~ "Wörter aus dem obigen Bild ein:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC-Client Version"
-
-#~ msgid "Client detached"
-#~ msgstr "Client abgemeldet"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "maximale Anzahl Arbeitspakete pro CPU pro Tag"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/Tag"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "Anonyme Plattform - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "Anonyme Plattform - NVIDIA GPU"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "Anonyme Plattform - ATI GPU"
-
-#~ msgid "Task ID"
-#~ msgstr "Paket ID"
-
-#~ msgid "Granted credit"
-#~ msgstr "bewilligte Punkte"
-
-#~ msgid "(no restriction if equal)"
-#~ msgstr "(keine Einschränkung wenn gleich)"
-
-#~ msgid "(no restriction)"
-#~ msgstr "(keine Einschränkung)"
-
-#~ msgid "Last %1"
-#~ msgstr "Vorherige %1"
-
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Ressourcenaufteilung und Grafik"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Aufgaben für Computer %1"
-
-#~ msgid "Provides"
-#~ msgstr "Ermöglicht"
-
-#~ msgid "limited access"
-#~ msgstr "eingeschränkten Zugriff"
-
-#~ msgid "to your account"
-#~ msgstr "auf Ihr Konto"
-
-#~ msgid "Current version"
-#~ msgstr "Aktuelle Version"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Als ungelesen markieren"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Möchten Sie die Nachricht mit dem Betreff "%1" wirklich löschen "
-#~ "(gesendet von %2 am %3)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Ja, löschen"
-
-#~ msgid "No such message."
-#~ msgstr "Keine entsprechende Nachricht gefunden."
-
-#~ msgid "Posts containing '%1'"
-#~ msgstr "Diskussionsbeiträge, die '%1' enthalten"
-
-#~ msgid "No titles containing '%1' could be found."
-#~ msgstr "Es wurden keine Überschriften gefunden, die '%1' enthalten."
-
-#~ msgid "No posts containing '%1' could be found."
-#~ msgstr "Es wurden keine Diskussionsbeiträge gefunden, die '%1' enthalten."
-
-#~ msgid "Create new"
-#~ msgstr "Neue Nachricht"
-
-#~ msgid "management functions"
-#~ msgstr "Verwaltungsfunktionen"
-
-#~ msgid "General preferences"
-#~ msgstr "Allgemeine Einstellungen"
-
-#~ msgid "View or edit"
-#~ msgstr "Anzeigen oder bearbeiten"
-
-#~ msgid "control resource share and customize graphics"
-#~ msgstr "Ressourcenverteilung regeln und Bildschirmschoner anpassen"
-
-#~ msgid "Message board preferences"
-#~ msgstr "Einstellungen für das Diskussionsforum"
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "keine Einschränkung"
 
-#~ msgid "configure features and appearance of message boards"
-#~ msgstr "Funktionen und Gestaltung der Diskussionsforen einrichten"
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Maximale Anzahl Aufgaben für dieses Projekt"
 
-#~ msgid "Work done"
-#~ msgstr "Geleistete Arbeit"
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Maximale Anzahl nutzbarer CPUs für dieses Projekt"
 
-#~ msgid "Account number"
-#~ msgstr "Kontonummer"
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "Maximale Anzahl Aufgaben"
 
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "Used in URLs"
-#~ msgstr "Wird in URLs verwendet"
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "Maximale Anzahl CPUs"
diff --git a/html/languages/translations/en.po b/html/languages/translations/en.po
deleted file mode 100644
index 8f7d941..0000000
--- a/html/languages/translations/en.po
+++ /dev/null
@@ -1,11 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-#
-# This file is distributed under the same license as BOINC.
-#
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
diff --git a/html/languages/translations/es.po b/html/languages/translations/es.po
deleted file mode 100644
index 6fa8d19..0000000
--- a/html/languages/translations/es.po
+++ /dev/null
@@ -1,7200 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-09-22 20:57+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: \n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1379883430.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Español"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Spanish"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Texto en negrita: [b]texto[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Texto en cursiva: [i]texto[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Texto subrayado: [u]texto[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Texto de cita: [quote]texto[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Visualización de código: [code]código[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Lista ordenada: [list=]texto[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Insertar imagen: [img]http://url_de_imagen[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Insertar URL: [url]http://url[/url] o [url=http://url]texto URL[/url]  "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Color de fuente"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Color de fuente: [color=red]texto[/color]  Nota: también puede usar "
-"color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Por defecto"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Rojo Oscuro"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Rojo"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Naranja"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Marrón"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Amarillo"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Verde"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliva"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Turquesa"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Azul"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Azul Oscuro"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Índigo"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Violeta"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Tamaño de fuente"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Tamaño de fuente: [size=x-small]texto pequeño[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Pequeña"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Grande"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Cerrar todas las etiquetas bbCode abiertas"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Cerrar Etiquetas"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Más antiguo primero"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Más nuevo primero"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Mensajes más valorados primero"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Mensajes más nuevos primero"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Buscar palabras en los mensajes del foro"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Buscar en los foros"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Búsqueda avanzada"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Mensajes privados"
-
-# ########################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Preguntas y Respuestas"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Foros"
-
-# ########################################
-# Forum sample index page
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "foro de %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Anterior"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Siguiente"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Mensaje"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Enviar mensaje"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Enviar a %1 un mensaje privado"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Unido: %1"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Mensajes: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Crédito: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "No ha leído este mensaje todavía"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "No leído"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Mensaje %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "oculto"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Enviados: %1"
-
-#: ../inc/forum.inc:628
-#, fuzzy
-msgid " - in response to "
-msgstr "Fuera de tiempo - sin respuesta"
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Editar"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Edite este mensaje"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Última modificación: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Informar este mensaje como ofensivo"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Informar como ofensivo"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Valoración: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "valoración: "
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Pulse si le gusta este mensaje"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Valoración +"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Pulse si no le gusta este mensaje"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Valoración -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Responder"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Enviar una respuesta a este mensaje"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Citar"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Enviar una respuesta citando este mensaje"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Oculto por un moderador"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Enviado %1 por %2"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "No tiene mensajes privados."
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-#, fuzzy
-msgid "More info"
-msgstr "Información del equipo"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Hacer visible"
-
-#: ../inc/forum.inc:1055
-#, fuzzy
-msgid "Unhide this post"
-msgstr "Hacer visible este hilo"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Ocultar"
-
-#: ../inc/forum.inc:1057
-#, fuzzy
-msgid "Hide this post"
-msgstr "Ocultar"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Mover"
-
-#: ../inc/forum.inc:1062
-#, fuzzy
-msgid "Move post to a different thread"
-msgstr "Mover este hilo a un foro diferente"
-
-#: ../inc/forum.inc:1067
-#, fuzzy
-msgid "Banish author"
-msgstr "No existe dicho usuario"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Para crear un nuevo hilo en %1 usted debe tener una cierta cantidad de "
-"créditos.Ésto es así para la prevención y protección contra abusos del "
-"sistema."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Usted no puede crear más hilos por ahora. Por favor espere un rato antes de "
-"intentarlo de nuevo. Este retraso ha sido implementado como protección ante "
-"abusos del sistema."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Hilo"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Mensajes"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Visitas"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Último mensaje"
-
-#: ../inc/forum.inc:1235
-#, fuzzy
-msgid "New posts in the thread %1"
-msgstr "Responder a este hilo"
-
-#: ../inc/forum.inc:1240
-#, fuzzy
-msgid "New posts in subscribed thread"
-msgstr "Suscribirse"
-
-#: ../inc/forum.inc:1241
-#, fuzzy
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-"Pulse para recibir correo electrónico cuando haya nuevos mensajes en este "
-"hilo"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Marcar todos los hilos como leídos"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "Marcar todos los hilos en todos los foros como 'leídos'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Sin servidor"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "No disponible"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Inicio"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Trabajo"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Escuela"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Actualizar"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Informacion del ordenador"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "Direccion IP"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(igual las últimas %1 veces)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Direccion IP externa"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Mostrar direccion IP"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Nombre de dominio"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Zona horaria"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 horas"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Propietario"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anónimo"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Creado"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Crédito total"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Crédito promedio"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Crédito de los proyectos"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Tipo de CPU"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Número de procesadores"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Coprocesadores"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Sistema Operativo"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Versión de BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Memoria"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Espacio de intercambio"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Espacio total en disco"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Espacio Libre en Disco"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Velocidad de punto flotante calculada"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 millones de operaciones/seg"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Velocidad de entero calculada"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Velocidad promedio de envío"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/seg"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Desconocido"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Velocidad promedio de descarga"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Tiempo promedio de finalización"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 días"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Destalles de la aplicación"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Mostrar"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Tareas"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-#, fuzzy
-msgid "Number of times client has contacted server"
-msgstr "Número de veces que BOINC ha contactado con el servidor"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Ultima vez que contactó con el servidor"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% del tiempo que BOINC se ejecuta"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Mientras se ejecuta BOINC, % de tiempo que el ordenador tiene una conexión a "
-"Internet"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Mientras se ejecuta BOINC, % del tiempo que se permite el trabajo"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Rendimiento promedio de la CPU"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Factor de corrección de la duración de la tarea"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Localización"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Eliminar este ordenador"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Fusionar registros duplicados de este ordenador"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Fusionar"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Último contacto"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Información del ordenador"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Posición"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Crédito promedio"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Sistema operativo"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 procesadores)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Detalles"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Estadísticas entre proyectos:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "El ordenador %1 tiene un SO incompatible:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "El ordenador %1 tiene una CPU incompatible:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "No se pudo actualizar los creditos del nuevo ordenador"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "No se ha podido actualizar los resultados"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "No se pudo eliminar el antiguo ordenador"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Eliminado el antiguo ordenador %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Mostrar:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Todos los ordenadores"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Sólo ordenadores activos en los últimos 30 días"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID del ordenador"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nombre"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "Versión<br>BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Unir ordenadores por nombre"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Comentario"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Las noticias están disponibles en formato %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Bandeja de entrada"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Escribir"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Enviar mensaje privado"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Previsualizar"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "No existe dicho mensaje"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Para"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "IDs de usuario o nombres de usuario únicos, separados con comas."
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Asunto"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Enviar mensaje"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Usted no está autorizado a enviar mensajes privados con tanta frecuencia. "
-"Por favor espere un tiempo antes de enviar más mensajes."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "no leído"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Para notificaciones por email, %1editar las preferencias comunitarias%2"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "Mensajes privados"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"¿Suspender el trabajo mientras el ordenador está funcionando con baterías? %"
-"1 Sólo importa para ordenadores portátiles %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "¿Suspender el trabajo mientras el ordenador está en uso?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"¿Suspender el trabajo de la GPU mientras el ordenador está en uso? %1 Válido "
-"desde la versión 6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'En uso' significa actividad del ratón/teclado en los últimos"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minutos"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Suspender el trabajo si no hay actividad del ratón/teclado en los últimos %1 "
-"Necesario para entrar en modo bajo consumo en algunos ordenadores %2"
-
-#: ../inc/prefs.inc:114
-#, fuzzy
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Suspender el trabajo de la CPU si su uso es superior al %1 0 significa sin "
-"restricciones<br>Válido desde la versión 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"Hacer trabajo sólo entre las horas %1 Sin restricciones si son iguales %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"¿Dejar las tareas en memoria mientras están suspendidas? %1 Las tareas "
-"suspendidas consumirán espacio de intercambio si se selecciona 'sí' %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Cambiar entre tareas cada %1 Recomendado: 60 minutos %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "En sistemas multiprocesador, usar como máximo"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesadores"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"En sistemas multiprocesador, usar como máximo %1 Obligatorio a partir de la "
-"versión 6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% de los procesadores"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Usar como máximo %1 Puede usarse para reducir la temperatura de la CPU %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% del tiempo de la CPU"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disco: usar como máximo"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disco: dejar libre al menos %1 Valores menores que %2 son ignorados %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% del total"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Las tareas vuelcan al disco al menos cada"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "segundos"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Espacio de intercambio: usar como máximo"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Memoria: cuando el ordendador está en uso, usar como máximo"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Memoria: cuando el ordenador no está en uso, usar como máximo"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "días"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"¿Confirmar antes de conectar a Internet? %1 Importa sólo si usted tiene una "
-"conexión por módem, RDSI o VPN  %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"¿Desconectar al terminar? %1 Importa sólo si tiene una conexión por módem, "
-"RDSI o VPN %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Velocidad máxima de descarga:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbytes/s"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Velocidad máxima de envío:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Usar la red sólo entre las horas"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Transferir como máximo %1 Obligatorio para la versión 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mbytes cada"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"¿No verific¡ficar los archivos de imagen? %1 Márquelo SÓLO si su proveedor "
-"de Internet modifica los archivos de imagenes (UMTS lo hace, por ejemplo). %"
-"2 No verificarlos reduce la seguridad de BOINC. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la CPU %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la GPU ATI %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la GPU NVIDIA %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Usar la GPU ATI %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"¿Ejecutar aplicaciones de pruebas? %1 Esto nos ayuda a desarrollar "
-"aplicaciones, pero puede provocar que los trabajos fallen en su ordenador %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Se enviarán correos electrónicos desde %1; asegurese de que su filtro "
-"antispam acepta esta dirección."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "¿Debería %1 mostrar sus ordenadores en este sitio web?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Uso de disco y memoria"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Uso del procesador"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Uso de la red"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Estas preferencias se aplican a todos los proyectos BOINC en los que usted "
-"participa."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1No se pudo actualizar sus preferencias.%2 Los valores marcados en rojo "
-"debajo están fuera de rango o no son numéricos."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "sí"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "no"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "sin límite"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Añadir"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Quitar"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Procesando"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Preferencias aparte para %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Editar las preferencias"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Añadir preferencias aparte para %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Cambiar Vista)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Preferencias combinadas"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Configuración específica del proyecto"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Preferencias principales (por defecto)"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Editar preferencias de %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Ultima modificación de las preferencias:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Añadir preferencias"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Actualizar preferencias"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Localización del ordenador por defecto"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "y"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Su perfil será hecho visible para otra gente tan pronto como haya sido "
-"aprobado por el proyecto. Esto puede tomar unos pocos días."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Su perfil ha sido marcado como inaceptable. No es visible para otra gente. "
-"Por favor, cámbielo."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Error de la base de datos"
-
-#: ../inc/profile.inc:193
-#, fuzzy
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Para evitar el spam, los perfiles de usuarios con un crédito promedio de "
-"menos que %1 son visualizados sólo a usuarios conectados.   Pedimos "
-"disculpas por las molestias."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "El usuario está prohibido"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "No hay perfil para este ID de usuario."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Edite su perfil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Su opinión sobre este perfil"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recomendar este perfil como Usuario del Día"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Me %1gusta%2 este perfil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Alerte a los administradores de un perfil ofensivo:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1No me gusta%2 este perfil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Plataforma anónima"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "No está en base de datos"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "pendiente"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Todo"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "En progreso"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Válido"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Inválido"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Error"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactivo"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "No enviado"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Completado, esperando validación"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Completado y validado"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Completado, marcado como inválido"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Completado, no se puede validar"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Completado, validación no concluyente"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Completado, demasiado tarde para validar"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Completado"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "No se pudo enviar"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Cancelado por el servidor"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Error en la descarga"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Error en ejecución"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Error en el envío"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Abortado por el usuario"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-#, fuzzy
-msgid "Upload failed"
-msgstr "Falló la actualización: "
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Fuera de tiempo - sin respuesta"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Error de validación"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Abandonado"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Con éxito"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Error de ejecución"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Resultado redundante"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Sin respuesta"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nuevo"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Descargando"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Procesando"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Error de ejecución"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Enviando"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Hecho"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Inicial"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "No necesario"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Error en la unidad de trabajo - comprobación no hecha"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Compobada, pero no hay consenso todavía"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "La tarea fue informada como demasiado tarde para validar"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "No se pudo enviar el resultado"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Demasiados errores (puede que haya un error de programación)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Demasiados resultados (puede no ser determinante)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Demasiados resultados totales"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Unidad de trabajo cancelada"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Error no reconocido: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Nombre de la tarea"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "pulse para ver detalles"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Mostrar IDs"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Mostrar nombres"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Tarea"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Unidad de trabajo"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Ordenador"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Enviado"
-
-#: ../inc/result.inc:373
-#, fuzzy
-msgid "Time reported<br />or deadline"
-msgstr "Límite de tiempo para informar"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Estado"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Tiempo de ejecución <br/>(seg)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Tiempo de CPU<br/> (seg)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Crédito"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Aplicación"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Unidad de trabajo"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Recibir"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Estado del servidor"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Resultado"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Estado del cliente"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Límite de tiempo para informar"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Tiempo de ejecución"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Tiempo de CPU"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Estado de validación"
-
-# ########################################<br /><br />
-# Apps page (apps.php)
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Versión de la aplicación"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-#, fuzzy
-msgid "State"
-msgstr "Estado"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Nombre de la tarea"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Criterio de búsqueda (use uno o varios)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Palabras clave"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Buscar equipos con estas palabras en sus nombres o descripciones"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "País"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Tipo de equipo"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Mostrar sólo equipos activos"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Buscar"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-"Solicitado por usted, y el tiempo límite de repuesta del fundador ha "
-"acabado."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Completar la transferencia de fundador"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Solicitado por usted"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "el tiempo límite para que el fundador responda es %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ninguno"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Iniciar solicitud"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Aplazado"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Información del equipo"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Descripción"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Sitio web"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Estadísticas entre proyectos"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tipo"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Foro"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Hilos"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Unirse a este equipo"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Nota: si 'OK to email' (permitir enviar correos) está seleccionado en las "
-"preferencias de su proyecto, uniéndose a un equipo le da a su fundador "
-"acceso a su dirección de correo electrónico."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "No se aceptan nuevos miembros"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Petición de cambio del fundador"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Respondido por %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Cambio del fundador del equipo"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Miembros"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Fundador"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administradores"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Miembros nuevos en el último día"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Total de miembros"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "ver"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Miembros activos"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Miembros con crédito"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administrador"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Anteriores %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Siguiente %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "No existe dicho equipo."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Esta operación requiere ser fundador."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Esta operación requiere privilegios de administrador de equipo"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Nota de privacidad%2: si usted crea un equipo, sus preferencias del "
-"proyecto (recursos compartidos, preferencia gráficas) serán visibles para el "
-"público."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Nombre del equipo, versión en texto"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "No use etiquetas HTML."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Nombre del equipo, versión HTML"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Puede usar un %1número limitado de etiquetas HTML%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Si no conoce el HTML, deje este recuadro en blanco."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "URL de la página web del equipo, si la hay"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "sin \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-"Este URL será puesto como vínculo en la página del equipo en este sitio."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Descripción del equipo"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "¿Aceptar nuevos miembros?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Perfil de usuario"
-
-# ########################################
-# Public user page (show_user.php)
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Proyectos en los que está usted participando"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Proyectos en los que %1 está participando"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Proyecto"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Pulse para ver la página de usuario"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Desde"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Trabajo  computacional y crédito"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Ordenadores en esta cuenta"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Ver"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "ID interproyectos"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Estadísticas interproyectos"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Cuenta"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Equipo"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Interproyectos"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certificado"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Estadísticas en su teléfono móvil"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Información de la cuenta"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Dirección de correo electrónico"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Código postal"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "miembro de %1 desde"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Cambiar"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "correo electrónico"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "contraseña"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "otros datos de la cuenta"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "ID de usuario"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Usado para funciones comunitarias"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Clave de cuenta"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Preferencias"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Cuándo y cómo BOINC usa su ordenador"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Preferencias de cálculo computacional"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Foros y mensajes privados"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferencias de la comunidad"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Preferencias para este proyecto"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "Preferencias de %1"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Comunidad"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Borrar"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Crear"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Perfil"
-
-# ########################################
-# Forum
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 mensajes"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Notificaciones"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Separase del equipo"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administrar"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(petición de modificación del fundador pendiente)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Miembro del equipo"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "buscar un equipo"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Fundador pero no miembro de"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Encontrar amigos"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Amigos"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Ordenadores"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donante"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Contactar"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Esta persona es un amigo"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Cancelar amistad"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Solicitud pediente"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Añadir como amigo"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "Salir"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "Iniciar sesión"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Iniciar sesión"
-
-# ########################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Creación de cuenta"
-
-#: ../inc/util.inc:206
-#, fuzzy
-msgid "Server status page"
-msgstr "Estado del servidor"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "No se ha podido procesar su petición"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Use etiquetas BBCode para formatear su texto"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-#, fuzzy
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Permanecer conectado en este ordenador"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Le identifica en nuestra página web. Utilice su nombre real o un apodo."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Seleccione el país que quiere representar, si lo hay."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Código Postal"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../user/account_finish_action.php:27
-#, fuzzy
-msgid "You must supply a name for your account"
-msgstr "Debe proporcionar un nombre para su cuenta."
-
-#: ../user/account_finish_action.php:30
-#, fuzzy
-msgid "HTML tags not allowed in name"
-msgstr "No se permiten etiquetas HTML en su nombre."
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Añadir %1 preferencias para %2"
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Programas"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 actualmente usa los siguientes programas. Cuando usted participa en %1, a "
-"su ordenador se le asigna trabajo para uno o más de estos programas. La "
-"versión actual del programa se descargará en su ordenador. Esto sucede "
-"automáticamente; usted no tiene que hacer nada."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Plataforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versión"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Instalada"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-#, fuzzy
-msgid "Italic"
-msgstr "Inválido"
-
-#: ../user/bbcode.php:34
-#, fuzzy
-msgid "Underline"
-msgstr "Declinar"
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "Descripción"
-
-#: ../user/bbcode.php:36
-#, fuzzy
-msgid "Big text"
-msgstr "Siguiente"
-
-#: ../user/bbcode.php:37
-#, fuzzy
-msgid "Red text"
-msgstr "Siguiente"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "Separase del equipo"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Su cuenta"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Equipo"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Usuario del día"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Estado del servidor"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Perfiles"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# ########################################<br />
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Top de participantes"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Top de computadoras"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Top de equipos"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Idioma"
-
-# ########################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Lea nuestras políticas y normas"
-
-#: ../user/create_account_action.php:26
-#, fuzzy
-msgid "Can't create account"
-msgstr "Crear cuenta"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-#, fuzzy
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-"La respuesta al ReCaptcha no es correcta.  Por favor inténtelo de nuevo."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Debe indicar un código de invitación para crear una cuenta."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "El código de invitación introducido no es válido."
-
-#: ../user/create_account_action.php:84
-#, fuzzy
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "Debe ser una dirección válida con la forma 'nombre at dominio'"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-#, fuzzy
-msgid "New passwords are different"
-msgstr "Nueva contraseña, de nuevo"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "Crear cuenta"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Esta cuenta pertenecerá al grupo %1 y tendrá las preferencias de proyecto de "
-"su fundador."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Código de Invitación"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Se necesita un código de invitación válido para crear una cuenta."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Dirección de Correo Electrónico"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Debe ser una dirección válida con la forma 'nombre at dominio'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Contraseña"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Debe ser al menos de %1 caracteres"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Confirme contraseña"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Crear cuenta"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Imagen"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Su imagen se muestra a la izquierda."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Para reemplazarla, haz click en el botón \"Explorar\" y elige una imagen en "
-"formato PNG o JPG (%1 o menor)"
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Para quitarla de tu perfil, marque este cuadro:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Si desea incluir una imagen en su perfil, haga clic en el botón \"Explorar\" y "
-"seleccione un archivo JPEG o PNG. Por favor seleccione imágenes de %1 o "
-"menos."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Idioma"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Seleccione el lenguaje en que está escrito su perfil:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Enviar perfil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Crear/editar perfil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "El formato de la imagen que ha enviado no está soportado."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"Su %1perfil%2 le permite compartir sus opiniones y experiencia con la %3 "
-"comunidad."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-"La respuesta al ReCaptcha no es correcta.  Por favor inténtelo de nuevo."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Su segunda respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "El envío de su perfil estaba vacío."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "No se pudo actualizar el perfil: error de la base de datos"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "No se pudo crear el perfil: error de la base de datos"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Perfil guardado"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-"¡Felicitaciones! Su perfil ha sido grabado correctamente en nuestra base de "
-"datos"
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Ver tu perfil%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Crear un perfil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Para evitar el Spam, necesitas un promedio de %1 créditos o más para crear o "
-"editar un perfil.  Sentimos las molestias."
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "No se pudo eliminar el antiguo ordenador"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "Datos de la cuenta"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "Crear cuenta"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-#, fuzzy
-msgid "Are you sure you want to delete your account?"
-msgstr "Esta seguro/segura de querer cancelar su amistad con %1?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Sí"
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "Eliminar este ordenador"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "No"
-
-#: ../user/delete_account.php:80
-#, fuzzy
-msgid "Do not delete this account"
-msgstr "Eliminar este ordenador"
-
-#: ../user/delete_profile.php:30
-#, fuzzy
-msgid "couldn't delete profile - please try again later"
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../user/delete_profile.php:33
-#, fuzzy
-msgid "Delete Confirmation"
-msgstr "Informacion del ordenador"
-
-#: ../user/delete_profile.php:35
-#, fuzzy
-msgid "Your profile has been deleted."
-msgstr "Su mensaje ha sido enviado."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-#, fuzzy
-msgid "Delete my profile"
-msgstr "Crear un perfil"
-
-#: ../user/delete_profile.php:53
-#, fuzzy
-msgid "Do not delete my profile"
-msgstr "%1No me gusta%2 este perfil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-#, fuzzy
-msgid "Your donation for has been completed."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-#, fuzzy
-msgid "This project is not accepting donations."
-msgstr "Esta petición está todavía pendiente de confirmación."
-
-#: ../user/donations.php:34
-#, fuzzy
-msgid "%1 donations"
-msgstr "%1 días"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-#, fuzzy
-msgid "Anonymous donation"
-msgstr "Plataforma anónima"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-#, fuzzy
-msgid "Proceed"
-msgstr "Perfil guardado"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Descarge extensiones para BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Usted puede descargar programas de varias categorías."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Estos programas no están aprobados por %1 y usted asume los riesgos de "
-"usarlos."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Nosotros no proporcionamos instrucciones para instalar estos programas.\n"
-"Sin embargo, el autor puede haber proporcionado ayuda para instalar o "
-"desinstalar el programa. \n"
-"Si esto no es suficiente deberá contactar con el autor."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instrucciones para instalar y ejecutar BOINC están %1aquí%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-"Esta lista es administrada centralmente desde %1el sitio web de BOINC%2."
-
-#: ../user/edit_email_action.php:31
-#, fuzzy
-msgid "Change email address of account"
-msgstr "Cambiar la dirección de correo de su cuenta"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "Nuevo correo electrónico"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "Confirme contraseña"
-
-#: ../user/edit_email_action.php:62
-#, fuzzy
-msgid "The email address of your account is now %1."
-msgstr "La dirección de correo de tu cuenta ha sido validada."
-
-#: ../user/edit_email_action.php:64
-#, fuzzy
-msgid "Please %1validate this email address%2."
-msgstr "Validar dirección de correo electrónico"
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Cambiar dirección de correo"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Cambiar la dirección de correo de su cuenta"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nuevo correo electrónico"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Debe ser una dirección válida con la forma 'nombre at dominio'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "¿Sin contraseña?"
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Confirme contraseña"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "Editar las preferencias"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "No existe dicho usuario"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-#, fuzzy
-msgid "On my Account page (no email)"
-msgstr "Obtener la clave de cuenta por correo electrónico"
-
-#: ../user/edit_forum_preferences_form.php:58
-#, fuzzy
-msgid "Immediately, by email"
-msgstr "Obtener la clave de cuenta por correo electrónico"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Foro"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "No use etiquetas HTML."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Foros"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Hilos"
-
-# ########################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Mensajes"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Foro"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Foros y mensajes privados"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Añadir usuario a filtrar"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "Actualizar preferencias"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Clave débil de cuenta"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Confirme contraseña"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Cambiar contraseña"
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Su mensaje ha sido enviado."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "su correo electrónico y su antigua contraseña"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "su clave de cuenta"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Contraseña actual"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>O</b>: Clave de cuenta"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Obtener la clave de cuenta por correo electrónico"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Nueva contraseña"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Nueva contraseña, de nuevo"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "No se permiten etiquetas HTML en su nombre."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Debe proporcionar un nombre para su cuenta."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-#, fuzzy
-msgid "Edit account information"
-msgstr "Información de la cuenta"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-#, fuzzy
-msgid "Server states"
-msgstr "Estado del servidor"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "En progreso"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-#, fuzzy
-msgid "Outcomes"
-msgstr "Resultado"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Error de validación"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-#, fuzzy
-msgid "Client states"
-msgstr "Estado del cliente"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Límite de tiempo para informar"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-#, fuzzy
-msgid "Already reported"
-msgstr "Ya amigos"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Desconocido"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "Dirección de correo electrónico"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Enviar mensaje"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Crédito pendiente"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-#, fuzzy
-msgid "Tell your friends about %1"
-msgstr "Tus opiniones sobre %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your name:"
-msgstr "Mostrar nombres"
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "correo electrónico"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Amigos"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "Nuevo correo electrónico"
-
-#: ../user/ffmail_form.php:56
-#, fuzzy
-msgid "Additional message (optional)"
-msgstr "Agregue un mensaje opcional aquí:"
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Remitente"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-#, fuzzy
-msgid "No user with this ID found."
-msgstr "No se encontró computadora con ID %1"
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "El usuario está prohibido"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-#, fuzzy
-msgid "User Request"
-msgstr "No hay petición"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Propietario"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Versión"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-#, fuzzy
-msgid "You must specify an action..."
-msgstr "Debe proporcionar un nombre para su cuenta."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-#, fuzzy
-msgid "You are not authorized to edit this post."
-msgstr "Ahora %1 y tu sois amigos."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Edite su perfil"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Título"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Añadir mi firma a éste mensaje"
-
-#: ../user/forum_forum.php:41
-#, fuzzy
-msgid "Not visible to you"
-msgstr "Este foro no es visible para usted."
-
-# ########################################
-# Forum sample index page
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "foro de %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Hilo"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Añadir un mensaje nuevo a este hilo"
-
-#: ../user/forum_forum.php:116
-#, fuzzy
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Las noticias están disponibles en formato %sRSS feed%s"
-
-# ########################################
-# Forum thread
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Este hilo está oculto por motivos administrativos"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "no leído"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "no leído"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "No tiene mensajes privados."
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Editar el título del hilo"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Editar el título del hilo"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "Desbloquear"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "You read this thread"
-msgstr "Ocultar este hilo"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Hilo"
-
-# ########################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Preguntas y Respuestas"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Versión"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-# ########################################
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Foros de %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Si tiene alguna pregunta o problema, por favor, use la sección %1Preguntas & "
-"Respuestas%2 de los foros."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Suscribirse"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Último mensaje"
-
-#: ../user/forum_moderate_post.php:52
-#, fuzzy
-msgid "Hide post"
-msgstr "Ocultar"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "Sin servidor"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Responder a este hilo"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "No existe dicho usuario"
-
-#: ../user/forum_moderate_post.php:80
-#, fuzzy
-msgid "Ban duration"
-msgstr "validación"
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "UTC %1 horas"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 días"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "%1 mensajes"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-#, fuzzy
-msgid "You are not authorized to moderate this post."
-msgstr "Ahora %1 y tu sois amigos."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "No enviado"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "El usuario está prohibido"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Contraseña actual"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Descripción del equipo"
-
-#: ../user/forum_moderate_thread.php:77
-#, fuzzy
-msgid "New title:"
-msgstr "Editar título"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-#, fuzzy
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Crear un hilo nuevo"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Crear un hilo nuevo"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-#, fuzzy
-msgid "This function is turned off by the project"
-msgstr "Esta opción está deshabilitada temporalmente"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Responder a este hilo"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-#, fuzzy
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-#, fuzzy
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-#, fuzzy
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Responder a este hilo"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Mensaje"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-#, fuzzy
-msgid "Post reply"
-msgstr "Sin respuesta"
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Añadir mi firma a éste mensaje"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Report Registered"
-msgstr "Límite de tiempo para informar"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Último mensaje"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Último mensaje"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-#, fuzzy
-msgid "Report not registered"
-msgstr "Límite de tiempo para informar"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-#, fuzzy
-msgid "This message board is available as an RSS feed."
-msgstr "Las noticias están disponibles en formato %sRSS feed%s"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Opcional"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Busqueda en el foro"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Buscar"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 mensajes"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-#, fuzzy
-msgid "Sort by"
-msgstr "Clasificar"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Resultados de la búsqueda en el foro"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "No hay perfiles que correspondan a su búsqueda."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "No hay perfiles que correspondan a su búsqueda."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Descripción del equipo"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Cancelar suscripción"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/forum_subscribe.php:74
-#, fuzzy
-msgid "Unknown subscription action"
-msgstr "Acción desconocida"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Este foro no es visible para usted."
-
-# ########################################
-# Forum thread
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "Este hilo está oculto por motivos administrativos"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Mi pregunta fue respondida."
-
-#: ../user/forum_thread.php:129
-#, fuzzy
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-"¡Si su pregunta ha sido respondida adecuadamente, por favor, pulse aquí para "
-"cerrarla!"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Yo también tengo esta pregunta"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Añadir un mensaje nuevo a este hilo"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Cancelar suscripción"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-"Usted está suscrito a este hilo.   Pulse aquí para cancelar la suscripción."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Suscribirse"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Pulse para recibir correo electrónico cuando haya nuevos mensajes en este "
-"hilo"
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Hacer visible este hilo"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Ocultar este hilo"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Desbloquear"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Desbloquear este hilo"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Bloquear"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Bloquear este hilo"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Mover este hilo a un foro diferente"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Editar título"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Editar el título del hilo"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Clasificar"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Mensajes"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Ya amigos"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Usted ha pedido amistad con %1 en %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Esta petición está todavía pendiente de confirmación."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 no está aceptando peticiones suyas de amistad"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "No puedes hacerte amigo de ti mismo."
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Añadir amigo"
-
-#: ../user/friend.php:74
-#, fuzzy
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Usted pidió agregar a %1 como amigo. Nosotros avisaremos a %2 y le pediremos "
-"que confirme que ustedes son amigos."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Agregue un mensaje opcional aquí:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Petición de amigo enviada"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Hemos notificado a %1 su petición."
-
-#: ../user/friend.php:126
-#, fuzzy
-msgid "Please log in as %1"
-msgstr "Por favor, inicie la sesión"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Petición de amigo"
-
-#: ../user/friend.php:141
-#, fuzzy
-msgid "%1 has requested friendship with you."
-msgstr "Usted ha pedido amistad con %1 en %2."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 dice: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Aceptar amistad"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Pulse aceptar si %1 es realmente un amigo"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Declinar"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Pulse declinar si %1 no es un amigo"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Amistad confirmada"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Su amistad con %1 ha sido confirmada."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Amistad declinada"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Usted ha declinado la amistad con %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Notificación no encontrada"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Amigo confirmado"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Ahora %1 y tu sois amigos."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "¿Cancelar amistad?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Esta seguro/segura de querer cancelar su amistad con %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Seguir siendo amigos"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Amistad cancelada"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Su amistad con %1 ha sido cancelada."
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "otros datos de la cuenta"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Bienvenido a %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Vea y edite las preferencias de su cuenta usando los enlaces de abajo."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-#, fuzzy
-msgid "Anonymous platform, missing app"
-msgstr "Plataforma anónima"
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Plataforma anónima"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Número de procesadores"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Velocidad promedio de envío"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Destalles de la aplicación"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "Fusionar registros duplicados de este ordenador"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Eliminar este ordenador"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "¿Desea borrarlo?"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "Unir ordenadores por nombre"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Unir ordenadores por nombre"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "Mostrar nombres"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Nombre"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-#, fuzzy
-msgid "created"
-msgstr "Crear"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "ID del ordenador"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Sin servidor"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Fusionar"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Hecho"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-#, fuzzy
-msgid "Return to host page"
-msgstr "Regresar al perfil."
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Información del ordenador"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Información del ordenador"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Top de computadoras"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "No use etiquetas HTML."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Creado"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Ejecute %1 sólo en ordenadores que le pertenezcan, o de los que haya "
-"obtenido permiso del propietario. Algunas compañías y escuelas tienen normas "
-"que prohiben usar sus ordenadores para proyectos como %1"
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Cómo usará %1 su ordenador"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Cuando ejecute %1 en su ordenador, utilizará parte de la potencia de su CPU, "
-"espacio en disco, y ancho de banda de red. Usted puede controlar la "
-"cantidad de recursos que usa %1, y cuándo son utilizados."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"El trabajo hecho por su ordenador contribuye a los objetivos de %1, como se "
-"describe en su página web. Los programas pueden cambiar cada cierto tiempo."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Política de privacidad"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Su cuenta en %1 es identificada por un nombre que usted elige. Éste nombre "
-"puede ser mostrado en la página web de %1, junto a un resumen del trabajo "
-"que su ordenador ha hecho para %1. Si quiere mantener su anonimato, elija un "
-"nombre que no revele su identidad."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Si usted participa en %1, información sobre su ordenador (como el tipo de "
-"procesador, cantidad de memoria, etc.) será guardada por %1 y usada para "
-"decidir qué tipo de trabajo se asigna a su ordenador. Ésta información se "
-"mostrará también en la página web de %1. Nada que permita conocer la "
-"situación de su ordenador (por ejemplo su nombre de dominio o dirección de "
-"red) será mostrado."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Para participar en %1, usted debe indicar una dirección donde recibir correo "
-"electrónico. Ésta dirección no se mostrará en la página web de %1 ni será "
-"compartida con otras organizaciones. %1 podrá mandarle boletines "
-"periódicamente; sin embargo  usted puede decidir desactivar su envío en "
-"cualquier momento."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"Los mensajes privados enviados en el sitio web de %1 son sólo visibles para "
-"la persona que los ha enviado y para la persona que los recibe.   %1 no "
-"examina o revisa el contenido de los mensajes privados.   Si usted recibe "
-"mensajes privados que no desea de otro usuario de %1, usted podrá agregarlo "
-"a su %2filtro de mensajes%3.   Esto evitará que usted vea más mensajes "
-"públicos o privados de ese usuario."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "¿Es seguro ejecutar %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Cada vez que descarga un programa de Internet está asumiendo un riesgo: el "
-"programa puede tener errores peligrosos, o el servidor del que se descarga "
-"puede haber sido pirateado. %1 ha hecho esfuerzos para minimizar estos "
-"riesgos. Hemos probado nuestros programas cuidadosamente. Nuestros "
-"servidores están detras de un cortafuegos y están configurados para una "
-"seguridad máxima. Para asegurar la integridad de la descarga de los "
-"programas, todos los ficheros ejecutables están firmados digitalmente en un "
-"ordenador seguro que no está conectado a Internet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Las aplicaciones ejecutadas por %1 pueden provocar que algunos ordenadores "
-"se sobrecalienten. Si ésto ocurre, no ejecute %1 o use un %programa "
-"complementario% que limite el uso de la CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 fue desarrolado por %2. BOINC fue desarrollado en la Universidad de "
-"California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Responsabilidades"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 y %2 no asumen ninguna responsabilidad por daños en su ordenador, pérdida "
-"de datos, o cualquier otro suceso o circunstancia que pueda ocurrir como "
-"resultado de participar en %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Otros proyectos BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Otros proyectos usan la misma plataforma, BOINC, como %1. Usted puede "
-"decidir si participar en uno o más de esos proyectos. Haciéndolo su "
-"ordenador hará trabajo útil incluso cuando %1 no tenga trabajo disponible."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Dichos proyectos no están relacionados con %1, y no podemos reponder por sus "
-"niveles de seguridad o la naturaleza de su investigación. Únase a ellos por "
-"su cuenta y riesgo."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Dirección de correo electrónico:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "¿Ha olvidado el correo electrónico?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "¿Ha olvidado su contraseña?"
-
-#: ../user/login_form.php:51
-#, fuzzy
-msgid "Stay logged in"
-msgstr "Permanecer conectado en este ordenador"
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "o %1cree una cuenta%2."
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Procesando"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Crédito pendiente"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Unidad de trabajo"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "crédito concedido"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Crédito pendiente"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Bloquear a usuario"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Su mensaje ha sido enviado."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "No tiene mensajes privados."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Remitente y fecha"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "No existe dicho mensaje"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Borrar los mensajes seleccionados"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Borrar los mensajes seleccionados"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Remitente"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Fecha"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Necesita rellenar todos los campos para enviar un mensaje privado"
-
-#: ../user/pm.php:188
-#, fuzzy
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "No se encontró ningún usuario con id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "No se encontró ningún usuario con nombre de usuario %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 es un nombre de usuario que no es único; debe usar el ID de usuario"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "El usuario %1 (ID: %2) no acepta mensajes privados de usted."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "No existe dicho usuario"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "¿Desea bloquear %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"¿Está usted seguro de que quiere bloquear al usuario %1 para que no le envíe "
-"mensajes privados?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Por favor, tenga en cuenta que usted sólo puede bloquear un número limitado "
-"de usuarios."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Una vez que el usuario ha sido bloqueado usted puede desbloquearlo en la "
-"página de preferencias del foro."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "No, cancelar"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "No existe dicho usuario"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Usuario %1 bloqueado"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-"El usuario %1 ha sido bloqueado para que no le pueda enviar mensajes  "
-"privados."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Para desbloquearlo, visite las %1preferencias del foro%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Acción desconocida"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Editar las preferencias"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"Los %1perfiles%2 permiten a los individuos compartir experiencias y "
-"opiniones con la comunidad %3."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"Explore la diversidad de voluntarios como usted, y contribuya con sus "
-"propias opiniones para entretenimiento de otros. "
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"¡Si no lo ha hecho todavía, usted puede %1crear su propio perfil de usuario%"
-"2 para que otros lo vean!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Usuario del Día"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Explorador de Perfiles de Usuario"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Ver la %1Galería de Imágenes de Usuario%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Ver perfiles %1por país%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Ver perfiles %1al azar%2, %3al azar con imágenes%2, o %4al azar sin imágenes"
-"%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Listado alfabético de perfiles:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Búsqueda de texto en perfiles"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "No hay perfiles"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "No hay perfiles que correspondan a su búsqueda."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Gracias"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Regresar al perfil."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Nombre de la tarea"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Esta opción está deshabilitada temporalmente"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "No se encontró computadora con ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Sin acceso"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Falta el ID de usuario o del host"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tareas en progreso"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Programas"
-
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "No enviado"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "En progreso"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Ordenador"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Estadísticas y tabla de posiciones"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Estadisticas de %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Estadisticas más detalladas de %1 y otros projectos basados en BOINC están "
-"disponibles en varios sitios web:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Usted también puede obtener sus estadísticas actuales en formato \"imagen "
-"para firmar\""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Adicionalmente usted podra acceder a sus estadísticas individuales sumadas "
-"de todos sus projectos BOINC desde varios sitios web; mire su %1página de "
-"incio%2."
-
-#: ../user/team.php:27
-#, fuzzy
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 participantes pueden formar %2equipos%3"
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Usted solo podrá pertenecer a un equipo. Usted puede unirse o salir de un "
-"equipo en cualquier momento."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Cada equipo tiene un %1fundador%2 que puede:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "acceder a las direcciones de e-mail de los miembros"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "editar el nombre y la descripción del equipo"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "quitar miembros del equipo"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "dar de baja el equipo si no tiene miembros"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Para unirse a un equipo, visite la página del equipo y pulse en %1Unirse a "
-"este equipo%2"
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Encontrar un equipo"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Todos los equipos"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 equipos"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Crear un nuevo equipo"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Si no encuentras un equipo que sea el indicado para ti, puedes %1crear un "
-"equipo%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "No existe dicho equipo."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "No existe dicho equipo."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "El nombre del equipo no puede estar en blanco"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Ya existe un equipo llamado %1- intente otro nombre"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Crear un equipo"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Usted pertenece a %1. Usted debe %2quitarse de este equipo%3 antes de crear "
-"uno nuevo."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-#, fuzzy
-msgid "Could not update team - please try again later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-# ########################################
-# Forum sample index page
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "foro de %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-#, fuzzy
-msgid "Update failed"
-msgstr "Falló la actualización: "
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Información del equipo"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-#, fuzzy
-msgid "Return to team page"
-msgstr "Regresar al perfil."
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-#, fuzzy
-msgid "Couldn't join team - please try again later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Perfil: %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Perfil: %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-#, fuzzy
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Si no encuentras un equipo que sea el indicado para ti, puedes %1crear un "
-"equipo%2."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-#, fuzzy
-msgid "text"
-msgstr "Siguiente"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Separase del equipo"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-#, fuzzy
-msgid "Remove?"
-msgstr "Quitar"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Resultados de la búsqueda en el foro"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Mejores ordenadores"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Mejores equipos de %1"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Participante desde"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Resultados de la búsqueda en el foro"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Equipo"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-#, fuzzy
-msgid "Validate BOINC email address"
-msgstr "Validar dirección de correo electrónico"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "No existe dicho usuario"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-"Ha fallado la actualización de la base de datos - por favor, inténtelo de "
-"nuevo más tarde."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Validar dirección de correo electrónico"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "La dirección de correo de tu cuenta ha sido validada."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Este usuario no tiene perfil"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Perfil: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Datos de la cuenta"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Clave débil de cuenta"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-# 81%
-#: ../user/workunit.php:35
-#, fuzzy
-msgid "Workunit %1"
-msgstr "Unidad de trabajo"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "crédito concedido"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "errores"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validación"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Pendiente"
-
-#: ../project.sample/project.inc:43
-#, fuzzy
-msgid "Main page"
-msgstr "Nombre de dominio"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Generado"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Tus opiniones sobre %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Esquema de color para gráficos"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Ejecutar sólo las aplicaciones seleccionadas"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(todas las aplicaciones)"
-
-#, fuzzy
-#~ msgid "Error:"
-#~ msgstr "Error"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "La creación de cuentas está desactivada."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#, fuzzy
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Estas se aplican a todos los proyectos BOINC en los que usted participa.<br>\n"
-#~ "                         En ordenadores unidos a múltiples proyectos, se "
-#~ "usarán las preferencias modificadas más recientemente."
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "No existe dicho equipo."
-
-#, fuzzy
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "El ordenador está conectado a Internet aproximadamente cada %1 Dejar en "
-#~ "blanco o 0 si siempre está conectado. %2 BOINC intentará mantener el mayor "
-#~ "trabajo posible. %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Mantener suficiente trabajo para otro"
-
-#~ msgid "Update failed: "
-#~ msgstr "Falló la actualización: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Proporciona %1acceso limitado%2 a su cuenta"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "NOTA: Si usted usa una versión de BOINC 5.2+ con el Administrador de BOINC, "
-#~ "no utilice éste formulario. Simplemente ejecute BOINC, seleccione Unirse a "
-#~ "un Proyecto, e introduzca una dirección de correo electrónico y una "
-#~ "contraseña. "
-
-#, fuzzy
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Su recomendación ha sido grabada."
-
-# ########################################
-# "Weak account key" page (weak_auth.php)
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Su 'clave débil de cuenta' le permite unir computadoras a su cuenta en este "
-#~ "proyecto, sin permitir entrar a su cuenta en el sitio web del proyecto o "
-#~ "cambiar datos de la cuenta de alguna forma."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Este mecanismo funciona sólo con los proyectos que hayan actualizado el "
-#~ "software de su servidor a la versión del 7 de Diciembre de 2007 o posterior."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Su clave débil de cuenta para este proyecto es:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Para usar su clave débil en cierta computadora, busque o cree el 'archivo de "
-#~ "cuenta' para este proyecto. El nombre de este archivo está en la forma "
-#~ "<b>cuenta_URL_DEL_PROYECTO.xml</b>. El archivo de cuenta para %1 es <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Cree este archivo si es necesario. Ponga en él lo siguiente:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Su clave débil de cuenta está basada en su contraseña. Si cambia su "
-#~ "contraseña, su clave débil cambiará también, y su clave anterior quedará "
-#~ "invalidada."
-
-#~ msgid "Account key"
-#~ msgstr "Clave de cuenta"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Proporciona acceso total  a su cuenta"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Clasificar"
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "No hay hilo con id %1. Por favor, pulse en el enlace y pruebe de nuevo."
-
-#~ msgid "Request not found"
-#~ msgstr "Petición no encontrada"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 le ha añadido como amigo."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Datos de la cuenta de %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr ""
-#~ "ERROR: %1 no existe!  No se puede crear el cuadro de lista combinada.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Para proteger las páginas web del proyecto del spam, por favor introduzca "
-#~ "las dos palabras que aparecen en la imagen:<br>"
-
-#~ msgid "BOINC client version"
-#~ msgstr "Versión del cliente BOINC"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "Cuota diaria máxima de unidad de trabajo por CPU"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/día"
-
-#~ msgid "Last %1"
-#~ msgstr "Último %1"
-
-# #########################################
-# Language: Spanish (Spain)
-# FileID  : $Id: es.po 16499 2008-11-17 06:28:03Z JensSeidler $
-# Author  : Janus Kristensen (Translator: Alejandro Martín Covarrubias)
-# Email   : jbk at visualgroup.dk (alex.covarrubias at gmail.com)
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Recursos usados y gráficos"
-
-#~ msgid "fll"
-#~ msgstr "fll"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Tareas para la computadora %1"
-
-#~ msgid "Provides"
-#~ msgstr "Proporciona"
-
-#~ msgid "limited access"
-#~ msgstr "acceso limitado"
-
-# ########################################
-# "Your account" page (home.php)
-#~ msgid "to your account"
-#~ msgstr "a su cuenta"
-
-#~ msgid "Current version"
-#~ msgstr "Versión actual"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Marcar como no leído"
-
-#~ msgid "With selected"
-#~ msgstr "Con los seleccionados"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "¿Está seguro de que quiere borrar el mensaje con asunto "%1" "
-#~ "(enviado por %2 el %3)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Sí, borrar"
-
-# ########################################
-# "Your account" page (home.php)
-# #########################################
-# Language: Spanish (Spain)
-# FileID  : $Id: es.po 16499 2008-11-17 06:28:03Z JensSeidler $
-# Author  : Janus Kristensen (Translator: Alejandro Martín Covarrubias)
-# Email   : jbk at visualgroup.dk (alex.covarrubias at gmail.com)
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "No such message."
-#~ msgstr "No existe dicho mensaje."
diff --git a/html/languages/translations/fi.po b/html/languages/translations/fi.po
deleted file mode 100644
index c3c1fc5..0000000
--- a/html/languages/translations/fi.po
+++ /dev/null
@@ -1,7149 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-06-22 06:09+0000\n"
-"Last-Translator: Sami Nordlund <sami.nordlund at kolumbus.fi>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: fi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1403417349.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Lihavoitu teksti: [b]teksti[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kursivoitu teksti: [i]teksti[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Alleviivattu teksti: [u]teksti[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Lainattu teksti: [quote]teksti[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Koodin näyttö: [code]koodi[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Listaus: [list]teksti[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Numeroitu listaus: [list=]teksti[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Liitä kuva: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Liitä URL: [url]http://url[/url] tai [url=http://url]URL teksti[/url]  "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Fontin väri"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Fontin väri: [color=red]teksti[/color]  Vinkki: voit myös käyttää "
-"color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Oletus"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Tummanpunainen"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Punainen"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Oranssi"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Ruskea"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Keltainen"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Vihreä"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliivinvihreä"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Syaani"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Sininen"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Tummansininen"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indigon sininen"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Violetti"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Fontin koko"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Fontin koko: [size=x-small]pieni teksti[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Pieni"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normaali"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Suuri"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Sulje kaikki avoimet bbCode -tagit"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Sulje tagit"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Vanhin ensin"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Uusin ensin"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Eniten arvioidut viestit ensin"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Uusin viesti ensin"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Eniten katsottu ensin"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Eniten viestejä ensin"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Etsi sanoja foorumin viesteistä"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Hae foorumeista"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Tarkennettu haku"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Yksityisviestit"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Kysymykset ja vastaukset"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Keskustelupalstat"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 keskustelupalsta"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Edellinen"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Seuraava"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Kirjoittaja"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Viesti"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Lähetä viesti"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Lähetä yksityisviesti käyttäjälle %1"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Liitytty: %1"
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Viestit: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Pisteet: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Et ole vielä lukenut tätä viestiä"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Lukematon"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Viesti %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "piilotettu"
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Lähetetty: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr " - vastauksena viestiin "
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Muokkaa"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Muokkaa tätä viestiä"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Muokattu viimeksi: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Viesti ei näy, koska lähettäjä on \"älä huomioi\" listallasi.  Napsauta %"
-"1tästä%2 katsoaksesi viestiä"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Raportoi tämä viesti loukkaavana"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Raportoi loukkaavana"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Arviointi: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "arvioi: "
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Napsauta jos pidät tästä viestistä"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Arvioi +"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Napsauta jos et pidä tästä viestistä"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Arvioi -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Vastaa"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Kirjoita vastaus tähän viestiin"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Lainaa"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Kirjoita vastaus lainaamalla viestiä"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Moderaattorin piilottama"
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Kirjoitettu %1 jäsen %2"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Et voi lähettää tai arvioida viestejä ennen %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Viestien tulee olla lapsille sopivia: ne eivät saa sisältää\n"
-"            aineistoa, joka on ruokotonta, vihaavaa,\n"
-"            seksuaalista tai vihjailevaa.\n"
-"        <li> Ei kaupallista mainontaa.\n"
-"        <li> Ei linkkejä sivuille, joilla on eroottista,\n"
-"            uhkapeli- tai suvaitsematonta aineistoa.\n"
-"        <li> Ei viestejä, joiden on tarkoitus ärsyttää tai vastustaa muita "
-"ihmisiä\n"
-"            tai kaapata viestiketju.\n"
-"        <li> Ei viestejä, jotka ovat tarkoituksella vihaavia tai loukkaavia.\n"
-"        <li> Ei loukkaavia kommentteja koskien rotua, uskontoa,\n"
-"            kansallisuutta, sukupuolta, yhteiskuntaluokkaa tai "
-"seksuaalisuutta.\n"
-"        "
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Säännöt:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Lisätiedot"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Poista piilotus"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Poista tämän viestin piilotus"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Piilota"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Piilota tämä viesti"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Siirrä"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Siirrä tämä viesti toiseen viestiketjuun"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Torju kirjoittaja"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Äänestä, että kirjoittaja torjutaan"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Äänestä, ettei kirjoittajaa torjuta"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Aloita äänestys kirjoittajan torjumiseksi"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "Vain tiimin jäsenet voivat kirjoittaa tiimin keskustelupalstalle"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Uuden viestiketjun aloittamiseksi tällä palstalla (%1) sinulla pitää olla "
-"tietty määrä pisteitä. Tällä pyritään estämään järjestelmän väärinkäytökset."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Et voi juuri nyt lisätä viestiketjuja. Odota hetken aikaa ennen kuin yrität "
-"uudelleen. Viive johtuu pyrkimyksestä estää järjestelmän väärinkäytökset."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Tämä viestiketju on lukittu. Ainoastaan foorumin moderaattorit ja "
-"ylläpitäjät voivat kirjoittaa viestejä ketjuun."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Piilotettuun ketjuun ei voi kirjoittaa."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Viestiketju"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Viestit"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Katsottu"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Viimeisin viesti"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Uudet viestit viestiketjussa %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Uudet viestit tilatussa viestiketjussa"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Viestiketjussa \"%1\" on uusia viestejä"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Merkitse kaikki ketjut luetuiksi"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Merkitse kaikkien palstojen kaikki viestiketjut luetuiksi."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Ei konetta"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Ei saatavissa"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Koti"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Työ"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Koulu"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mobiili"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Päivitä"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Tietokoneen tiedot"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP-osoite"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(sama viimeiset %1 kertaa)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Ulkoinen IP-osoite"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Näytä IP-osoite"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Domain-nimi"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr "Tuotenimi"
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Paikallinen normaaliaika"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 tuntia"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Omistaja"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonyymi"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Luotu"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Kokonaispisteet"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Keskim. pisteet"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Projektikohtaiset pisteet"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Keskusyksikön tyyppi"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Prosessorien lkm"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Apusuorittimet"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Käyttöjärjestelmä"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINCin versio"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Muistia"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 Mt"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Välimuisti"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 Kt"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Näennäismuisti"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Kokonaislevytila"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 Gt"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Vapaa levytila"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Mitattu liukulukulaskennan nopeus"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 miljoonaa laskutoimitusta sekunnissa"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Mitattu kokonaislukulaskennan nopeus"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Keskimääräinen lähetysnopeus"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 Kt/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Tuntematon"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Keskimääräinen latausnopeus"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Keskimääräinen läpimenoaika"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 päivää"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Sovellustiedot"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Näytä"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Tehtäviä"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Ohjelman yhteydenottokertojen määrä palvelimeen"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Viimeksi ollut yhteydessä palvelimeen"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% ajasta, jolloin BOINC on käynnissä"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "BOINCin ollessa käynnissä on internetyhteys käytössä % ajasta"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "BOINCin ollessa käynnissä on laskenta sallittu % ajasta"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Keskimääräinen CPU-tehokkuus"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Korjauskerroin tehtävän kestolle"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Sijainti"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Poista tämä tietokone"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Sulauta tämän tietokoneen duplikaattitiedot"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Sulauta"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Viimeksi yhteydessä"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Tietokoneen tiedot"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Sija"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Keskim. pisteet"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Lähiajan keskim. pisteet"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU (näytönohjain)"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Käyttöjärjestelmä"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 prosessoria)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Lisätiedot"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Projektikohtaiset tilastot:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Koneella %1 on päällekkäinen käyttöaika:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Koneella %1 ei ole yhteensopivaa käyttöjärjestelmää:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Koneella %1 ei ole yhteensopivaa suoritinta:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "sama kone"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-"Konetta %1 ei voi sulauttaa koneen %2 kanssa - ne eivät ole yhteensopivia"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Sulautetaan konetta %1 koneen %2 kanssa"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Uuden koneen pisteitä ei voitu päivittää"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Tuloksia ei voitu päivittää"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Vanhaa konetta ei voitu poistaa käytöstä"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Vanha kone %1 on poistettu käytöstä"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Näytä:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Kaikki tietokoneet"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Vain kuukauden aikana yhteydessä olleet koneet"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "Tietokoneen tunniste"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nimi"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br>versio"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Sulauta koneet nimien mukaan"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "Selaimen oletus"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Kommentti"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Uutiset saatavana %sRSS-syötteenä%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Saapuneet"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Kirjoita"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Lähetä yksityisviesti"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Esikatselu"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "viestiä ei ole"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Vastaanottaja"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Käyttäjien tunnisteet tai nimet pilkulla erotettuna"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Otsikko"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Lähetä viesti"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "lähetti sinulle yksityisviestin; otsikko:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Yksityisviesti%1 käyttäjältä %2, otsikko:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Viestin luonti ei onnistunut"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Et voi lähettää yksityisviestejä näin usein. Odota hetken aikaa ennen kuin "
-"lähetät lisää viestejä."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "lukemattomat"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Sähköposti-ilmoituksen saamiseksi %1muokkaa yhteisöasetuksia%2"
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Yksityisviesti"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Hyllytä työ koneen ollessa akkukäytöllä? %1 (koskee vain kannettavia) %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Hyllytä työ tietokoneen ollessa käytössä?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Hyllytä näytönohjaimen (GPU) työ tietokoneen ollessa käytössä? %1 versiosta "
-"6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "\"Käytössä\" tarkoittaa hiiren/näppäimistön käyttöä"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minuuttia"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Hyllytä työ jos hiirtä/näppäimistöä ei ole käytetty %1 (tarvitaan joissakin "
-"koneissa mentäessä virransäästötilaan) %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Hyllytä työ kun muu kuin BOINCin aiheuttama suorittimen käyttö on yli %1 0 "
-"tarkoittaa ei rajoitusta<br>versiosta 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Suorita vain %1 tuntien aikana. Ei rajoitusta jos samat arvot%2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Jätä tehtävät muistiin hyllytyksen ajaksi? %1 Hyllytetyt työt vievät "
-"näennaismuistia jos valinta on \"kyllä\" %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Vaihda tehtävien välillä %1 suositus: 60 minuuttia %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Monisuoritinkoneissa käytä enintään"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "prosessoria"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr "Monisuoritinkoneissa käytä enintään %1 versiosta 6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% prosessoreista"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "Käytä enintään %1 (vähentää suorittimen lämpöä) %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% suoritinajasta"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Levy: käytä enintään"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "Gt"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Levy: jätä vapaaksi vähintään %1 Arvoa %2 pienemmät jätetään huomiotta %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% kokonaismäärästä"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Aikaväli tarkistuspisteen kirjoittamiselle levylle"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "sekuntia"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Näennäismuisti: käytä enintään"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Muisti: koneen ollessa käytössä, käytä enintään"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Muisti: koneen ollessa jouten, käytä enintään"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "Pidä työtä vähintään%1(max 10 päivää).%2"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "päivää"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... ja lisäksi"
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Vahvista ennen internetyhteyden avaamista? %1 Vaikutusta jos on modeemi-, "
-"ISDN- tai VPN-yhteys %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr "Lopeta yhteys? %1 Vaikutusta jos on modeemi-, ISDN- tai VPN-yhteys %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Suurin latausnopeus:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbittiä/sek"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Suurin lähetysnopeus:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Verkkoyhteyttä käytetään vain tunteina"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Siirrä enintään %1 Versiosta 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Megatavua joka"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Ohitetaanko kuvatiedosto verifiointi? %1 Merkitse tämä VAIN jos "
-"operaattorisi muokkaa kuvatiedostoja (kuten UMTS tekee). %2 Ohitus heikentää "
-"BOINCin turvallisuutta. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Resurssien jako %1 Määrittää koneesi resurssit tälle projektille. Esim.: jos "
-"osallistut kahteen BOINC-projektiin resurssijaolla 100 ja 200, ensimmäinen "
-"saa 1/3 koneen resursseista ja toinen 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Nopeuta GPU paketteja antamalla jokaiselle oma CPU ydin?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Käytä keskusyksikköä %1 (versiosta 6.10+) %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Käytä ATI-näytönohjainta %1 (versiosta 6.10+) %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Käytä NVIDIA-näytönohjainta %1 (versiosta 6.10+) %2"
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Käytä Intel GPUta %1 (versiosta 7.2+) %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Ajetaanko testisovellukset? %1 Helpottaa sovellusten kehittämistä, mutta voi "
-"aiheuttaa ongelmia töiden kanssa %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Sähköpostit lähetetään osoitteesta %1; varmista, että roskapostisuodatin "
-"hyväksyy tämän osoitteen."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Saako %1 ja tiimisi (jos on) lähettää sinulle sähköpostia?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Saako %1 näyttää tietokoneesi nettisivullaan?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Levyn ja muistin käyttö"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Suorittimen käyttö"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Verkon käyttö"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Nämä asetukset vaikuttavat kaikkiin BOINC-projekteihin, joihin osallistut."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Asetusten päivitys ei onnistu.%2 Punaisella merkityt arvot ovat "
-"virheellisiä tai ne eivät ole numeerisia."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "väärä paikka: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "väärä osajoukko: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "kyllä"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "ei"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "ei rajoitusta"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Lisää"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Poista"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Laskenta"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Erilliset asetukset paikalle %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Muokkaa asetuksia"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Lisää erilliset asetukset paikalle %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(vaihda näkymää)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Yhdistetyt asetukset"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Projektikohtaiset asetukset"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Ensisijaiset (oletus) asetukset"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Muokkaa %1 asetuksia"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Nämä vaikuttavat kaikkiin BOINC-projekteihin joihin osallistut."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"Useisiin projekteihin osallistuvissa tietokoneissa käytetään viimeksi "
-"muokattuja asetuksia."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Nämä asetukset eivät vaikuta Android-laitteisiin."
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Asetuksia muokattu viimeksi:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Lisää asetukset"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Päivitä asetukset"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Tietokoneen oletussijainti"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "ja"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Profiilisi näkyy muille heti kun se on hyväksytty projektin taholta. Se voi "
-"kestää muutaman päivän."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Profiilisi on merkitty epätyydyttäväksi, joten se ei näy muille. Ole hyvä ja "
-"muuta sitä."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Tietokantavirhe"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Spämmin estämiseksi niiden käyttäjien profiilit, joiden keskim. pisteet ovat "
-"alle %1, näkyvät vain kirjautuneille käyttäjille. Pahoittelemme mahdollista "
-"haittaa."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Käyttäjä on torjuttu"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Tällä käyttäjätunnuksella ei ole profiilia."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Muokkaa profiilisia"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Palautteesi tästä profiilista"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Suosittele tätä profiilia \"Päivän käyttäjäksi\":"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Pidän %1tästä%2 profiilista"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Kerro ylläpidolle loukkaavasta profiilista:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "En %1pidä%2 tästä profiilista"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonyymi alusta"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIAn GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATIn GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Ei tietokannassa"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "odottaa"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Kaikki"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "Laskennassa"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Vahvistusta odottavat"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Vahvistus epäselvä"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Vahvistetut"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Vahvistamattomat"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Virheet"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Ei-aktiivinen"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Lähettämättä"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Valmis, odottaa vahvistusta"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Valmis ja vahvistettu"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Valmis, merkattu virheelliseksi"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Valmis, ei voida vahvistaa"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Valmis, vahvistus epäselvä"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Valmis, myöhästynyt vahvistamisesta"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Valmis"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Ei voitu lähettää"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Palvelimen peruuttama"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Ei aloitettu takarajaan mennessä - peruutettu"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Virhe latauksessa"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Virhe laskennassa"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Virhe lähetyksessä"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Käyttäjän keskeyttämä"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Lähetys epäonnistui"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Aika loppui - ei vastausta"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Ei tarvittu"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Vahvistusvirhe"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Hylätty"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Valmis"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Onnistui"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Laskentavirhe"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Ylimääräinen"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Ei vastausta"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Uusi"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Ladataan"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Käsitellään"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Laskentavirhe"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Lähetetään"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Valmis"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Alussa"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Ei tarvita"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Työpakettivirhe - tarkistus ohitettu"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Ei vielä selvyyttä"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Tehtävä raportoitiin liian myöhään vahvistettavaksi"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Tehtävää ei voitu lähettää"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Liian monta virhettä (mahdollisesti bugi)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Liian monta tehtävää (voi olla päättämätön)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Liian monta tehtävää kaikkiaan"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Työpaketti peruttu"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Tunnistamaton virhe: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Tehtävänimi"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "napsauta tietoihin"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Näytä tunnisteet"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Näytä nimet"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Tehtävä"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Työpaketti"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Tietokone"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Lähetetty"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Raportointiaika<br />tai takaraja"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "selite"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Tila"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Laskenta-aika<br />(sekuntia)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Suoritinaika<br />(sekuntia)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Pisteet"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Sovellus"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Työpaketti"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Vastaanotettu"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Tila palvelimella"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Tulos"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Tila ohjelmassa"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Exit status"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Raportoinnin takaraja"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Laskenta-aika"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Suoritinaika"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Vahvistuksen tila"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Sovellusversio"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Tulostetiedostot"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Stderr output"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Tila"
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr "Tehtävän nimi:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Hakuehto (yksi tai useampi)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Hakusanat"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Etsi tiimejä, joiden nimessä tai kuvauksessa ovat nämä sanat"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Maa"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Tiimin tyyppi"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Näytä vain aktiiviset tiimit"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Hae"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Pyyntösi, perustajan vastauksen takaraja saavutettu."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Päätä perustajuuden vaihto"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Sinun pyytämäsi"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "perustajan vastauksen takaraja on %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ei mikään"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Pyynnön aloitus"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Lykätty"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Tiimin tiedot"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Kuvaus"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Nettisivu"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Projektikohtaiset tilastot"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tyyppi"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Keskustelupalsta"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Viestiketjut"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Liity tähän tiimiin"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Huom: jos sallit sähköpostin lähettämisen projektin asetuksissa, tiimiin "
-"liittyessä sen perustaja saa sähköpostiosoitteesi."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Ei ota uusia jäseniä"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Pyyntö vaihtaa perustaja"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Vastaus %1 mennessä"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Tiimin perustajan vaihto"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Jäsenet"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Perustaja"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Ylläpitäjät"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Uusia jäseniä viimeisen vrk:n aikana"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Jäseniä kaikkiaan"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "katso"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktiivisia jäseniä"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Jäsenet, joilla pisteitä"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Ylläpitäjä"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Edelliset %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Seuraavat %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Tiimiä ei ole."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Toiminto vaatii perustajan oikeudet."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Toiminto vaatii ylläpitäjän oikeudet"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"VAROITUS: tämä on BOINC-laajuinen tiimi. Jos teet muutoksia tässä, ne "
-"tulevat pian ylikirjoitetuksi. Muokkaa sen sijaan %1BOINC-laajuista tiimiä%"
-"2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Yksityisyydestä%2: jos luot tiimin, projektisi asetukset (kuten resurssien "
-"jako) näkyvät kaikille."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Tiimin nimi, tekstiversio"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Älä käytä HTML-tageja."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Tiimin nimi, HTML-versio"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Voit käyttää %1HTML-tageja rajoitetusti%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Jätä tämä kohta tyhjäksi, jos et osaa HTML:ää."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Tiimin nettisivun osoite, jos on"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "ilman \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Tämä URL linkitetään tiimin sivulta tälle sivulle."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Tiimin kuvaus"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Sallii uudet jäsenet?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Käyttäjäprofiili"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projektit, joihin osallistut"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projektit, joihin %1 osallistuu"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekti"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Napsauta käyttäjän sivulle"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Mistä lähtien"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Laskenta ja pisteet"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Tämän tilin tietokoneet"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Katso"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Projektienvälinen tunniste"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Projektikohtaiset tilastot"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Tili"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Tiimi"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Projektikohtainen"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Todistus"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Tilastot kännykkääsi"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Tuntematon vahvistus: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Tilin tiedot"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Sähköpostiosoite"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Postinumero"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 jäsen alkaen"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Vaihda"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "sähköpostiosoite"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "salasana"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "muu tilitieto"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Käyttäjä-ID"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Käytetään yhteisötoiminnoissa"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Tiliavaimet"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Asetukset"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Milloin ja miten BOINC käyttää tietokonettasi"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Laskenta-asetukset"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Keskustelupalsta ja yksityisviestit"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Yhteisöasetukset"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Tämän projektin asetukset"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 asetukset"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Yhteisö"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Poista"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Luo"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profiili"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 viestiä"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Ilmoitukset"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Irrottaudu tiimistä"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Ylläpitäjä"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(perustajuuden vaihtopyyntö odottaa)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Tiimin jäsen"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "etsi tiimi"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Perustaja mutta ei jäsen tiimissä"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Etsi ystäviä"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Ystävät"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Tietokoneet"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Lahjoittaja"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Yhteydenotto"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Tämä henkilö on ystävä"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Peruuta ystävyys"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Pyyntö odottaa"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Lisää ystäväksi"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr "käyttäjänimen alussa tai lopussa ei saa olla välilyöntiä"
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr "käyttäjänimi ei saa olla tyhjä"
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr "käyttäjänimi ei saa sisältää HTML-tageja"
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "kirjaudu ulos"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "kirjaudu"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Kirjaudu"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Luo tili"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Palvelimen tilasivu"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Tapahtui tietokantavirhe, yritä myöhemmin uudelleen."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Pyyntöä ei voida käsitellä"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "tuntia"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "sek"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Linkki ei ole voimassa. Klikkaa Back-/Takaisin-nappia, lataa sivu ja yritä "
-"uudelleen."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Katso %1:n profiilia"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Tekstin muotoiluun voi käyttää BBCodea"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "Projekti suljettu ylläpidon ajaksi"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 on tilapäisesti suljettu ylläpitotoimien vuoksi.  Yritä myöhemmin "
-"uudelleen."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Tietokantaan ei saada yhteyttä - yritä myöhemmin uudelleen"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Tietokannan valinta ei onnistu - yritä myöhemmin uudelleen"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Pysy kirjautuneena tällä tietokoneella"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Tilin asennus valmis"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Sinut tunnistetaan tällä nettisivullamme. Voit käyttää oikeaa tai "
-"lempinimeä."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Valitse maa."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Postinumero"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Valinnainen"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Tilillesi täytyy antaa nimi"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML-tägit eivät ole sallittuja nimessä"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Lisää %1 asetukset paikalle %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Sovellukset"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 on tällä hetkellä seuraavat sovellukset. Osallistuessasi %1 -projektiin, "
-"yksi tai useampi työpaketti näistä sovelluksista annetaan tietokoneellesi. "
-"Viimeisin sovellusversio ladataan koneellesi. Tämä tapahtuu automaattisesti; "
-"sinun ei tarvitse tehdä mitään."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Alusta"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versio"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Asennusaika"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode tagit"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-"BBCode tageilla voit muokata profiilisi ja keskustelupalstan viestiesi "
-"tekstiä.\n"
-"Se on samantapaista kuin HTML, mutta yksinkertaisempi. Tagi alkaa [ "
-"-merkillä\n"
-"(HTML käyttää %1) ja päättyy merkkiin ] (HTML käyttää %2)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Esimerkit"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Lihavoitu"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Kursivoitu"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Alleviivattu"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Yläindeksi"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Iso teksti"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Punainen teksti"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "linkki nettisivulle"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Lainattu teksti"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "käytetään lainattuun tekstiosuuteen"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "käytetään näyttämään kuva"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Koodinpätkä tähän"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "käytetään näyttämään koodia"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Muotoilematon teksti"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "käytetään näyttämään muotoilematonta (yleensä tasavälinen) tekstiä"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Kohta 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Kohta2"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "Kohta 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "käytetään linkittämään Trac-lipukkeeseen BOINCin nettisivulla"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "käytetään linkittämään Trac Wikiin BOINCin nettisivulla"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "käytetään linkittämään SVN muutoksiin BOINCin nettisivulla"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Jos et päätä tagia tai määrittele parametriä oikein,\n"
-"itse tagi näkyy eikä tekstin muotoilu."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Osanottajat"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Suorita työtä"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Tilisi"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "katso tilastoja, muokkaa asetuksia"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Tiimit"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "luo tiimi tai liity tiimiin"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Päivän käyttäjä"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Palvelimen tila"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profiilit"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Käyttäjähaku"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Tilastot"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Osallistujien kärki"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Tietokoneiden kärki"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Tiimien kärki"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "GPU-mallien kärki"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Kielet"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Lue sääntömme ja periaatteemme"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Tiliä ei voi luoda"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Napsauta selaimesi <b>Back/Takaisin</b> nappia yrittääksesi uudelleen."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "reCAPTCHA-vastaus oli väärin. Yritä uudelleen."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Kutsukoodi tarvitaan tilin luomiseen."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Antamasi kutsukoodi on virheellinen."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Virheellinen sähköpostiosoite: osoitteen pitää olla oikean muotoinen tyyliin "
-"\"nimi at domain\""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Tällä sähköpostiosoitteella on jo tili."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Uudet salasanat ovat erilaisia"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "Salasanat voivat sisältää vain ASCII-merkkejä."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Uusi salasana on liian lyhyt: salasanan vähimmäispituus on %1 merkkiä."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Tilin luonti ei onnistunut"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"HUOMAA: Jos käytät BOINC Manageria, älä käytä tätä lomaketta. Käynnistä "
-"BOINC, valitse Lisää projekti ja anna sähköpostiosoite ja salasana."
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Tämä tili kuuluu tiimiin %1 ja projektiasetukset ovat perustajan tekemiä."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Kutsukoodi"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Tilin luomiseen tarvitaan voimassaoleva kutsukoodi."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Sähköpostiosoite"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Osoitteen pitää olla oikean muotoinen tyyliin \"nimi at domain\"."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Salasana"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Vähintään %1 merkkiä"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Vahvista salasana"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Syötä kuvassa näkyvät sanat"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Luo tili"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Kuva"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Profiilisi kuva näkyy vasemmalla."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Vaihda se napsauttamalla \"Selaa\" ja valitse joko JPEG- tai PNG-tiedosto (%1 "
-"tai vähemmän)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Poista se profiilistasi valitsemalla tämä kohta:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Jos haluat kuvan profiiliisi, napsauta \"Selaa\" ja valitse joko JPEG- tai "
-"PNG-tiedosto. Valitse kuva, joka on %1 tai vähemmän."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Kieli"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Valitse kieli, jolla profiilisi on kirjoitettu:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Lähetä profiili"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Syötä kuvassa näkyvät sanat."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Luo/muokkaa profiilia"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Lähettämäsi kuvatiedoston tyyppiä ei tueta."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "%1Profiilisi%2 avulla voit jakaa mielipiteitäsi %3 -yhteisön kanssa."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "ReCaptcha-vastaus oli väärin.  Yritä uudelleen."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Ensimmäinen kirjoituksesi merkittiin spämmiksi Akismet-"
-"spämminestojärjestelmän toimesta.  Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Toinen kirjoituksesi merkittiin spämmiksi Akismet-spämminestojärjestelmän "
-"toimesta.  Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "Jättämäsi profiili oli tyhjä."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Profiilin päivitys ei onnistunut: tietokantavirhe"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Profiilin luonti ei onnistunut: tietokantavirhe"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profiili tallennettu"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Onnittelut! Profiilisi tallennettiin tietokantaan."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Tarkastele profiiliasi%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Luo profiili"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Spämmin estämiseksi profiilin luonti tai muokkaus vaatii keskimääräisten "
-"pisteiden määräksi %1 tai enemmän.  Pahoittelut mahdollisesta haitasta."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Tilin poisto ei onnistunut"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Tili poistettu"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Tilisi on poistettu."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Vahvista tilin poisto"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-"Tilisi poistaminen poistaa kaikki\n"
-"tietosi palvelimelta mukaan lukien,\n"
-"profiilisi ja keskustelupalstan viestit.\n"
-"Tähän tiliin liitettyihin tietokoneisiin ei lähetetä\n"
-"töitä."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Tätä ei voi peruuttaa.\n"
-"Tiliä ei voi saada takaisin kun se on poistettu."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Haluatko varmasti poistaa tilisi?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Kyllä"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Poista tämä tili"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Ei"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Älä poista tätä tiliä"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "profiilin poisto ei onnistunut - yritä myöhemmin uudelleen"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Poiston vahvistus"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Profiilisi on poistettu."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Profiilin poiston vahvistus"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Oletko varma?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-"Profiilit poistetaan pysyvästi eikä niitä voi palauttaa --\n"
-"joudut aloittamaan täysin alusta\n"
-"jos haluat myöhemmin luoda toisen profiilin."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Jos olet varma, napsauta \"Kyllä\"\n"
-"poistaaksesi profiilisi tietokannastamme."
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Poista profiilini"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Älä poista profiiliani"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Tapahtuma valmis"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Kiitos lahjoituksesta!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Lahjoituksesi on suoritettu."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Lahjoituksesi lisätään lahjoituksia kuvaavaan palkkiin sen jälkeen kun "
-"PayPal on vahvistanut sen."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Olet peruuttanut lahjoituksesi."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Tämä projekti ei ota vastaan lahjoituksia."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 lahjoitukset"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Tämä projekti ottaa lahjoituksia vastaan\n"
-"%1:n kautta."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-"Anna haluamasi lahjoitussumma allaolevaan kenttään.\n"
-"        PayPal hyväksyy useita valuuttoja\n"
-"        (Kanadan dollari, euro, punta, Yhdysvaltain dollari,\n"
-"         jeni, Australian dollari, Uusi-Seelannin dollari,\n"
-"        Sveitsin frangi, Hong Kongin dollari, Singaporen dollari, Ruotsin "
-"kruunu,\n"
-"        Tanskan kruunu, Puolan zloty, Norjan kruunu,\n"
-"        Unkarin forintti, Tsekin koruna).\n"
-"        Voit käyttää valuuttamuunninta\n"
-"        nähdäksesi lahjoitussumman eri valuutoissa\n"
-"        (huomaa, että kurssit ovat arvioita\n"
-"         ja todellinen määrä voi olla eri)."
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Haluamasi lahjoitussumma"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Arvioitu arvo"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Nimetön lahjoitus"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Valitse tämä jos et halua nimeäsi ja tiliäsi näytettävän\n"
-"lahjoittajien listauksissa.<br>Jos ei ole valittu, sinut näytetään "
-"käyttäjätunnisteella %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Kirjaudu sisään jos haluat lahjoituksesi liitettävän käyttäjätunnisteeseesi."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Jatka"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Lahjoitukset välittää"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Lataa BOINCin ohjelmistolaajennoksia"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Sovelluksia voi ladata useista kategorioista."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Näitä sovelluksia ei ole hyväksytty %1 toimesta, joten käytät niitä omalla "
-"vastuulla."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Emme anna ohjeita näiden sovellusten asentamiseen.\n"
-"Tekijällä saattaa olla joitakin ohjeita sovelluksen asennukseen ja poistoon. "
-"\n"
-"Jos tämä ei riitä, sinun tulisi ottaa yhteyttä tekijään."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Ohjeet BOINCin asennukseen ja käyttöön löytyvät %1täältä%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Tätä listaa hoidetaan keskitetysti %1BOINC-nettisivulla%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Vaihda tilin sähköpostiosoite"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Uusi sähköpostiosoite \"%1\" on virheellinen."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Uusi sähköpostiosoite on sama kuin aiempi. Mitään ei muuteta."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Tällä sähköpostiosoitteella on jo olemassa tili"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Virheellinen salasana."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Tilisi sähköpostiosoite on nyt %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Vahvista %1tämä sähköpostiosoite%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Sähköpostiosoitettasi ei voida päivittää tietokantaongelman vuoksi.  Yritä "
-"myöhemmin uudelleen."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Vaihda sähköpostiosoite"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Vaihda tilisi sähköpostiosoite"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Uusi sähköpostiosoite"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Osoitteen pitää olla oikean muotoinen tyyliin \"nimi at domain\""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Ei salasanaa?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Vahvista nollaus"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Tämä pyyhkii kaikki muutokset, jotka olet tehnyt yhteisöasetuksissa. Peruuta "
-"napsauttamalla selaimesi Back/Takaisin painiketta."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Nollaa asetukset"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Virhe: Vääränlainen tiedosto, vain PNG ja JPEG ovat tuettuja."
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Sigusi on liian pitkä, pidä se alle 250 merkin mittaisena."
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Käyttäjää ei ole: %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-"Miten sinulle ilmoitetaan uusista yksityisviesteistä, ystävyyskutsuista, "
-"viesteistä tilatuissa viestiketjuissa ja muista tapahtumista?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Tilisivullani (ei sähköpostia)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Välittömästi sähköpostitse"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Yhdellä päivittäisellä sähköpostilla"
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr "Keskustelupalstan identiteetti"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Kuva, joka kuvaa sinua keskustelupalstoilla."
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Formaatti: JPG tai PNG. Koko: enintään 4 kt, 100x100 pikseliä"
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Älä käytä avataria"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Käytä avataria, jonka tarjoaa %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Käytä tätä lähetettyä avataria:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Avatarin esikatselu"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Tältä avatarisi näyttää"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Sigu keskustelupalstan viesteille"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Katso %1ilmaisia palveluja%2\n"
-"<br> jotka tarjoavat dynaamisia \"sigukuvia\"\n"
-"<br> joissa näkyvät viimeisimmät pisteet, projektiuutiset ym."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "merkkejä jäljellä"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Liitä sigu oletuksena"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Sigun esikatselu"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Tältä sigusi näyttää foorumeilla"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr "Viestin näyttäminen"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Mitä näytetään"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Piilota avatar-kuvat"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Piilota sigut"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Näytä kuvat linkkeinä"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Avaa linkit uudessa ikkunassa/välilehdessä"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Korosta erityiset käyttäjät"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr "Näytä näin monta viestiä sivua kohden"
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Kuinka järjestetään"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Viestiketjut:"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Viestit:"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr "Mene ketjun ensimmäiseen viestiin automaattisesti"
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr "Älä siirrä pysyviä viestejä ylös"
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Viestisuodatus"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Suodatetut käyttäjät"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Älä huomioi keskustelupalstojen viestejä ja yksityisviestejä näiltä "
-"käyttäjiltä."
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "Käyttäjätunniste (Esim. 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Lisää käyttäjä suodatettavaksi"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Napsauta tästä päivittääksesi asetukset"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Palauta"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Tai napsauta tästä palauttaaksesi oletusasetukset"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Virheellinen tiliavain"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Tällä sähköpostiosoitteella ei löydy tiliä"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Virheellinen salasana"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Vaihda salasana"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Salasanasi on vaihdettu."
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Tietokantaongelman vuoksi emme voi päivittää salasanaasi. Yritä myöhemmin "
-"uudelleen."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Voit tunnistautua joko"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "sähköpostiosoitteellasi ja vanhalla salasanalla"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "tiliavaimellasi"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Nykyinen salasana"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>TAI</b>: Tiliavain"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Tiliavain sähköpostitse"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Uusi salasana"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Uusi salasana uudelleen"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML-tägit eivät ole sallittuja nimessäsi."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Tilillesi täytyy antaa nimi."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Käyttäjätiedon päivitystä ei voitu tehdä."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Muokkaa tilitietoja"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Nimi, %1 oikea tai lempinimi%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL-osoite %1 kotisivullesi; valinnainen%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Postinumero %1 Valinnainen%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Päivitä tiedot"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Tilat palvelimella"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-"Tehtävän <b>tila palvelimella</b> kertoo, onko tehtävä lähetetty "
-"tietokoneelle ja jos on, onko tietokone jo suorittanut sen. Mahdolliset "
-"arvot ovat:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Tehtävä ei ole valmis lähetettäväksi (esim. jokin tiedosto puuttuu)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Tehtävä on valmis lähetettäväksi mutta sitä ei ole vielä lähetetty."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Laskennassa"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Tehtävä on lähetetty ja odottaa valmistumista."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-"Tehtävä on lähetetty tietokoneelle ja joko aika on loppunut tai tietokone on "
-"raportoinut sen valmistuneeksi."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Tulokset"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-"Tehtävän <b>tulos</b> on määritelty, jos sen tila palvelimella on "
-"<b>valmis</b>. Mahdolliset arvot ovat:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-"Tehtävä on lähetetty tietokoneelle, mutta tietokone ei ole vielä saanut sitä "
-"valmiiksi ja raportoinut tulosta."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Tietokone on saanut tehtävän valmiksi ja raportoinut sen onnistuneesti."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-"Palvelin ei kyennyt lähettämään tehtävää tietokoneelle (mahdollisesti sen "
-"resurssivaatimukset olivat liian suuret)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Ohjelman virhe"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Tehtävä lähetettiin tietokoneelle mutta tapahtui virhe."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-"Tehtävä lähetettiin tietokoneelle mutta vastausta ei saatu aikarajan "
-"kuluessa."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Tehtävää ei lähetetty tietokoneelle, koska riittävä määrä muita tehtäviä on "
-"saatu valmiiksi tässä työpaketissa."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-"Tehtävä raportoitiin mutta ei voitu vahvistaa, yleensä siksi, koska "
-"tulostetiedostot ovat kadonnut palvelimelta."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Tilat ohjelmassa"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Tehtävän <b>tila ohjelmassa</b> kertoo, missä vaiheessa käsittelyä tapahtui "
-"virhe."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Tietokone ei ole vielä saanut tehtävää valmiiksi."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Tietokone sai tehtävän valmiiksi onnistuneesti."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Tietokone ei voinut ladata sovellusta tai syötetiedostoja."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Laskennan aikana tapahtui virhe."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Tietokone ei voinut lähettää tulostetiedostoja."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Raportointiaika ja takaraja"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-"Tehtävän <b>Raportointiaika tai takaraja</b> -kenttä riippuu siitä, onko "
-"tehtävä jo raportoitu:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "On jo raportoitu"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Päiväys/aika jolloin se raportoitiin"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Ei vielä raportoitu, takaraja tulevaisuudessa"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Takaraja, näkyy vihreänä."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Ei vielä raportoitu, takaraja ohitettu"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Takaraja, näkyy punaisena."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Tuntematon kenttä"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Sähköpostin esikatselu"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Sähköpostisi näkyy näin:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Lähetä sähköposti"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Käytä selaimesi back/takaisin nappia palataksesi viestilomakkeelle"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Lähetetään sähköposteja"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "sähköposti lähetettiin osoitteeseen %1"
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr "sähköpostia ei voitu lähettää osoitteeseen %1: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Kiitos kun kerroit ystävillesi %1 -projektista"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Unohdit täyttää ystävän nimen ja/tai sähköpostiosoitteen; palaa %"
-"1lomakkeeseen%2 ja täytä kohdat."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Tämä projekti ei luonut sähköpostiviestiä - ilmoita asiasta ylläpidolle"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Kerro ystävillesi %1 -projektista"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Kerro ystävillesi, sukulaisillesi ja työkavereillesi %1 -projektista"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Täytä lomakkeeseen niiden ihmisten nimet ja sähköpostiosoitteet, joiden "
-"oletat olevan kiinnostunut projektista %1. Lähetämme heille sähköpostin "
-"nimissäsi, johon voit liittää oman viestisi halutessasi."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Nimesi:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Sähköpostiosoitteesi:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Ystävän nimi:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Ystävän sähköpostiosoite:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Lisäviesti (valinnainen)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Lähetä"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr "Sinulla ei ole oikeuksia torjua käyttäjiä."
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr "Torjuntaehdotus"
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr "Käyttäjää tällä tunnisteella ei löydy."
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr "Käyttäjä on jo torjuttu"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-"Haluatko varmasti torjua käyttäjän %1?<br/>Tämä estää käyttäjää %1 "
-"lähettämästä viestejä tietyn ajan.<br/>Tämä tulisi tehdä vain jos %1 on "
-"jatkuvasti harjoittanut trollaavaa käyttäytymistä."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Valitse syykategoria, vaihtoehtoisesti kirjoita kuvaus, miksi käyttäjä "
-"tulisi torjua."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Kategoria"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Säädytön"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Fleimi/vihaposti"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Käyttäjän pyyntö"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Muu"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Syy"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr "Postitetaan jos ei ole tyhjä"
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr "Jatka ehdotusta"
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Toiminto pitää määritellä..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-"Et voi enää muokata tätä viestiä.<br/>Viestiä voi muokata enintään %1 "
-"minuuttia viestin luomisen jälkeen."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Sinulla ei ole oikeuksia muokata tätä viestiä."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Foorumi"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Muokkaa viestiäsi"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Otsikko"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Lisää siguni tähän viestiin"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Ei näy sinulle"
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr "Tiimin keskustelupalsta %1"
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr "Uusi viestiketju"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Lisää uusi viestiketju tälle foorumille"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Tämä keskustelupalsta on saatavana %1RSS-syötteenä%2"
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr "Tämä viestiketju on piilotettu"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Tämä ketju on pysyvä ja lukittu etkä ole vielä lukenut sitä"
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr "pysyvä/lukittu/lukematon"
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Tämä ketju on pysyvä etkä ole vielä lukenut sitä"
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr "pysyvä/lukematon"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Et ole vielä lukenut tätä ketjua, ja se on lukittu"
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "lukematon/lukittu"
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Et ole vielä lukenut tätä ketjua"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr "Tämä ketju on pysyvä ja lukittu"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr "pysyvä/lukittu"
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr "Tämä ketju on pysyvä"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr "pysyvä"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr "Tämä viestiketju on lukittu"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "lukittu"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Olet lukenut tämän viestiketjun"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "luettu"
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Kysymykset ja vastaukset"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Keskustele vapaaehtoisen kanssa Skypen välityksellä jollakin useista "
-"kielistä. Mene %1BOINC Online -apuun%2."
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Aihe"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Kysymykset"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Keskustelua %1 -jäsenten kanssa"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Keskustelupalsta"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Jos on kysymyksiä tai ongelmia, käytä keskustelupalstan %1Kysymyksiä ja "
-"vastauksia%2 -osiota."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Tilatut viestiketjut"
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr "Moderoi viestiä"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Piilota viesti"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Kaupallinen spämmi"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Tuplaviesti"
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Siirrä viesti"
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr "Kohdeketjun tunniste:"
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr "Torju käyttäjä"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Torjunta kestää"
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 tuntia"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 päivä"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 viikko"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 viikkoa"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 kuukausi"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Ikuisesti"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Valinnainen selvitys %1 Tämä liitetään sähköpostiin käyttäjälle.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "Ok"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Sinulla ei ole oikeuksia moderoida tätä viestiä."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Ei voi siirtää toiseen kategoriatyyppiin"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Ei voi siirtää toiseen kategoriaan"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Ei oikeutta torjua käyttäjiä"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Torjunta"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Käyttäjä %1 on torjuttu."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Toiminto epäonnistui: mahdollisesti tietokantaongelma"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "ei oikeutta"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr "Moderoi viestiketjua \"%1\""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-"Valitse syykategoria tai kirjoita pidempi kuvaus, miksi piilotat tai "
-"lukitset viestiketjun ja napsauta OK."
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr "Nykyinen foorumi"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Kohdefoorumi"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Uusi otsikko:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-"Vain projektin ylläpitäjät voivat luoda tänne viestiketjun. Voit kuitenkin "
-"vastata olemassa oleviin ketjuihin."
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Viestisi merkittiin spämmiksi Akismet-spämminestojärjestelmän toimesta. "
-"Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Luo uusi viestiketju"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Luo uusi viestiketju"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr "Muista lisätä otsikko"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Näytä tämä BOINC Managerin ilmoituksissa"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Tee niin vain, jos se todennäköisesti kiinnostaa kaikkia."
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr "Arvioi ilman yhteyttä"
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Projekti on kytkenyt tämän toiminnon pois päältä"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Viestin arviointiin tarvitaan enemmän keskimääräisiä tai kokonaispisteitä."
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr "Olet jo arvioinut tämän viestin."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Takaisin viestiketjuun"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr "Palautteesi tallennettiin"
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Palautteesi on tallennettu. Kiitos avusta."
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Ehdotus rekisteröity"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Arviointisi tallennettiin. Kiitos."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr "Ongelma ehdotuksen lähettämisessä"
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Viestisi merkittiin spämmiksi Akismet-spämminestojärjestelmän toimesta. "
-"Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Kirjoita viestiketjuun"
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr "Viesti:"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr "vastaus viestiin %1Message ID%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr "Kirjoita vastaus"
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr "Lisää siguni tähän vastaukseen"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr "Tarvitset enemmän pisteitä raportoidaksesi viestistä."
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr "Raportti rekisteröity"
-
-# 92%
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Raporttisi on tallennettu. Kiitos palautteestasi."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-"Moderaattori katsoo raporttiasi ja päättää mitä tapahtuu - se voi viedä "
-"jonkin aikaa, joten ole kärsivällinen"
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr "Raportoi foorumin viestistä"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-"Ennen viestin raportointia kannattaa harkita +/- arviointijärjestelmän "
-"käyttöä. Jos tarpeeksi moni käyttäjä arvioi viestin negatiivisesti, se "
-"lopulta piilotetaan.<br />Arviointijärjestelmä löytyy viestin lopusta."
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr "Raportoi viestistä"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Miksi koet viestin loukkaavaksi: %1Anna tarpeeksi tietoa, jotta henkilö, "
-"joka ei vielä ole lukenut\n"
-"viestiketjua, saa nopean käsityksen asiasta.%2"
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr "Raporttia ei rekisteröity"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Raporttiasi ei pystytty tallentamaan. Odota hetki ja yritä uudelleen."
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Jos tämä ei ole tilapäinen virhe, raportoi asiasta projektin kehittäjille."
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr "%1 RSS syöte"
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr "Tämä keskustelupalsta on saatavana RSS-syötteenä."
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr "Valinnat:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Sisällytä vain viestit käyttäjätunnisteella %1 (oletus: kaikki käyttäjät)."
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Sisällytä vain viestit viimeisen %1 päivän ajalta (oletus: 30)."
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Lyhennä viestit: %1 (Sisällytä vain ensimmäiset 265 merkkiä jokaisesta "
-"viestistä)"
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-"Vain viestiketjut: %1 (Sisällytä jokaisesta ketjusta vain ensimmäinen "
-"viesti)"
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Hae foorumilta"
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr "Hakukysely"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Hae avainsanoja:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Viestit, jotka sisältävät kaikki annetut sanat, näytetään"
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "Esimerkiksi: \"screensaver freeze\""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr "Hae kirjoittajan tunnisteella:"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr "Vain tämän kirjoittajan viestit näytetään"
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Esimerkiksi: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Hakuehdot"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Haun rajoitukset"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Hae enintään näin monta päivää taaksepäin"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 kuukautta"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 vuosi"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr "Näytä vain tämän foorumin viestit"
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Järjestä"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr "Aloita haku"
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Foorumihaun tulokset"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Hakuasi vastaavat viestiketjujen otsikot:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Hakuasi vastaavat viestit:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Valitettavasti mitään hakuasi vastaavaa ei löytynyt. Voit laajentaa hakuasi "
-"käyttämällä vähemmän sanoja (tai vähemmän tarkkoja ilmauksia)."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Voit myös yrittää %1samaa hakua Googlessa.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Tee uusi haku"
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr "Tilaus onnistui"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Olet tilannut %1:n. Saat ilmoituksen kun uusi viesti tulee."
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr "Tilaus epäonnistui"
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "%1 tilaustasi ei saada alkamaan. Yritä myöhemmin uudelleen.."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr "Tilauksen päättäminen onnistui"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"%1 tilauksesi ei enää ole voimassa. Et saa ilmoituksia tästä viestiketjusta."
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr "Tilauksen päättäminen epäonnistui"
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "%1 tilaustasi ei saada lopetettua. Yritä myöhemmin uudelleen.."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr "Tuntematon tilaustoiminto"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Tämä foorumi ei näy sinulle."
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr "Tämä viestiketju on piilotettu moderaattorien toimesta."
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Kysymykseni sai vastauksen"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr "Napsauta tästä jos kysymykseesi on vastattu tyydyttävästi"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Kysyisin myös tätä"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Lisää viesti tähän viestiketjuun"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Peruuta tilaus"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Olet tilannut tämän viestiketjun.  Napsauta peruuttaaksesi tilauksen."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Tilaa"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Napsauta saadaksesi sähköpostia kun tähän viestiketjuun tulee uusia viestejä"
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Poista tämän viestiketjun piilotus"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Piilota tämä viestiketju"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "Poista pysyvyys"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "Poista viestiketjun pysyvyys"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "Tee pysyvä"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Tee tästä viestiketjusta pysyvä"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Vapauta"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Vapauta tämä viestiketju"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Lukitse"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Lukitse tämä viestiketju"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Siirrä tämä viestiketju"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Muokkaa otsikkoa"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Muokkaa viestiketjun otsikkoa"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr "Vie ilmoituksena"
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr "Älä vie"
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr "Älä vie tätä uutista ilmoituksena"
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Järjestä"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr "Ketjun tila päivitetty"
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr "Tila on päivitetty."
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr "%1 -käyttäjän viestit"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "On jo ystävä"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Pyysit ystävyyttä %1 kanssa %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Tämä pyyntö odottaa vahvistusta."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 ei hyväksy ystävyyspyyntöjä sinulta"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Et voi olla ystävä itsesi kanssa"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Lisää ystäväksi"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Olet pyytänyt, että %1 lisätään ystäväksesi. Ilmoitamme hänelle (%1) ja "
-"pyydämme häntä vahvistamaan ystävyytenne."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Lisää valinnainen viesti tähän:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Ystävyyskutsu lähetettiin"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Olemme ilmoittaneet %1 pyynnöstäsi."
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr "Ole hyvä ja kirjaudu käyttäjänä %1"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr "Sinun pitää kirjautua käyttäjänä %1 nähdäksesi tämän ystävyyspyynnön"
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Ystävyyspyyntö"
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr "%1 on pyytänyt ystävyyttä kanssasi."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 sanoo: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Hyväksy ystävyys"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Napsauta hyväksy, jos %1 on ystävä"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Kieltäydy"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Napsauta kieltäydy jos %1 ei ole ystävä"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Ystävyys vahvistettu"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Ystävyytesi %1 kanssa on vahvistettu."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Ystävyys torjuttu"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Torjuit ystävyyden %1 kanssa"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Ilmoitusta ei löydy"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Ystävä vahvistettu"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Olet nyt ystävä %1 kanssa."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Peruuta ystävyys?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Haluatko varmasti peruuttaa ystävyyden %1 kanssa?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Pysy ystävänä"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Ystävyys peruttu"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Ystävyytesi %1 kanssa on peruttu."
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Tilitieto unohtunut?"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Jos tilisi sähköpostiosoite on tiedossa ja pääset lukemaan sähköposteja "
-"siellä:"
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-"Anna sähköpostiosoitteesi ja napsauta OK. Saat ohjeet salasanan "
-"asettamiseksi."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-"2) Jos olet unohtanut tilisi sähköpostiosoitteen tai et pääse lukemaan "
-"sähköposteja siellä:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-"Jos olet ajanut BOINCia tällä tilillä, pääset siihen yhä käsiksi. Näin se "
-"tapahtuu:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-"Mene tietokoneen BOINC datahakemistoon (sijainti löytyy tapahtumalokin "
-"alusta)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Hae tämän projektin tilitiedosto; se on nimeltään <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Avaa tiedosto tekstieditorilla, esim. Notepadilla. Tiedosto näyttää "
-"tämäntapaiselta"
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Valitse ja kopioi merkkijono %1 ja %2 välillä (%3 ylläolevassa esimerkissä)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Liitä merkkijono allaolevaan kenttään ja napsauta OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Kirjaudut nyt tilillesi; päivitä tilisi sähköposti ja salasana."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Kirjaudu varmenteella"
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr "GPU tehtäviä ei ole raportoitu"
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Seuraava listaus näyttää tehokkaimmat GPU mallit eri alustoilla.  "
-"Suhteellinen nopeus on suluissa."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Tervetuloa %1 -projektiin"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Katso ja muokkaa tilisi asetuksia alla olevien linkkien kautta."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Jos et ole vielä tehnyt niin, %1lataa BOINC ohjelmisto%2."
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonyymi alusta, puuttuva sovellus"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "anonyymi alusta"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Puuttuva sovellusversio"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Puuttuva sovellus"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Puuttuva alusta"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Valmiiksi saatujen tehtävien määrä"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Suurin määrä tehtäviä päivää kohti"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Tehtävien määrä tänään"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Peräkkäiset vahvistetut tehtävät"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Keskimääräinen suoritusnopeus"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Koneen %1 sovellustiedot"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Tietokoneesta ei ole merkintää."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-"Et voi poistaa tämän tietokoneen merkintää, koska tietokannassamme on yhä "
-"työtä sille. Odota muutama päivä, jotta tietokoneen työt on poistettu "
-"projektin tietokannasta."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Poista merkintä tietokoneesta"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Merkintä poistettu."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Takaisin tietokonelistaasi"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Sulauta tietokoneiden merkinnät"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Sulauta koneet"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Joskus BOINC liittää vahingossa samalle koneelle eri tunnisteita. Voit "
-"korjata tämän sulauttamalla vanhat tunnisteet uusimman kanssa."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Tämän koneen kanssa sulautettavaksi sopivia koneita ei ole."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Näytä tiedot"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"Tarkista tietokoneet, jotka ovat samoja kuin %1 (luotu %2, koneen tunniste %"
-"3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "nimi"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "luotu"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "tietokoneen tunniste"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "ei konenimeä"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Sulauta koneet"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr "Päivitetään koneen pisteitä"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Koneen paikka päivitetty"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "ei mikään"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Tämän koneen paikka on asetettu paikkaan %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-"Tämä muutos tulee voimaan kun kone on seuraavan kerran yhteydessä "
-"projektiin."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Takaisin konesivulle"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Tietokoneet, jotka kuuluvat käyttäjälle %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Tietokoneet piilotettu"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Tämä käyttäjä ei ole halunnut näyttää tietokoneittensa tietoja."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Tietokoneesi"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Sallitut HTML-tagit"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Seuraavat HTML-tagit ovat sallittuja tiimin kuvauksessa:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "lihavointi"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "kursivointi"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlinkki"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "kappale"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "rivinvaihto"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "muotoilematon"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"kuva; korkeus enintään 450 pikseliä. Älä linkitä kuviin ilman nettisivuston, "
-"jolla kuva on, lupaa."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Voit käyttää et-merkkiä erikoismerkkeihin."
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Aja %1 vain koneella, johon sinulla on oikeus"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Aja %1 vain tietokoneella, jonka omistat tai jonka käyttöön olet saanut "
-"luvan. Jotkut yritykset ja koulut eivät salli tietokoneittensa käyttöä %1 "
-"tapaisiin projekteihin."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Kuinka %1 käyttää tietokonettasi"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Ajaessasi %1 -projektia koneellasi se käyttää tietokoneen keskusyksikön "
-"tehoa, levytilaa ja tietoliikenneyhteyttä. Voit vaikuttaa siihen, paljonko %"
-"1 käyttää näitä resursseja ja milloin."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Tietokoneesi tekemä työ hyödyttää %1 -projektin tavoitteita siten kuin sen "
-"nettisivuilla on kerrottu. Sovellusohjelmat voivat vaihtua aika ajoin."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Tietosuojalausunto"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"%1 -tilisi tunnistetaan valitsemallasi nimellä. Nimi saattaa näkyä %1 "
-"-projektin nettisivulla samoin kuin tietokoneesi suorittamat työt %1 "
-"-projektille. Jos haluat pysyä anonyyminä, valitse nimi joka ei paljasta "
-"identiteettiäsi."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Osallistuessasi %1 -projektiin, tietoja tietokoneestasi (suorittimen tyyppi, "
-"muistin määrä jne.) tallennetaan %1 -projektin toimesta ja sen perusteella "
-"päätetään, minkäläisiä töitä tietokoneellesi annetaan. Tiedot näkyvät myös %"
-"1 -projektin nettisivuilla. Sellaisia tietoja, joista voitaisiin nähdä "
-"tietokoneesi sijainti, ei näytetä (esim. domain-nimi tai verkko-osoite)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Osallistuessasi %1 -projektiin sinun tulee antaa toimiva sähköpostiosoite. "
-"Osoitetta ei näytetä %1 -nettisivulla eikä jaeta muille. %1 saattaa lähettää "
-"ajoittaisia uutiskirjeitä, jotka voit keskeyttää milloin vain."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"%1 -sivuston kautta lähetetyt yksityisviestit näkyvät vain lähettäjälle ja "
-"vastaanottajalle.  %1 ei tutki yksityisviestien sisältöä.  Jos saat ei-"
-"toivottuja yksityisviestejä %1 -käyttäjältä, voit lisätä heidät %"
-"2viestisuodattimeen%3.  Sen jälkeen et näe kyseisen käyttäjän yleisiä tai "
-"yksityisiä viestejä."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Käyttäessäsi nettifoorumiamme, noudata viestien lähettämistä koskevaa %"
-"2ohjeistusta%3.  %1 -foorumiin lähetetyt viestit näkyvät kaikille, myös "
-"niille, jotka eivät ole jäseniä.  Lähettämällä viestin foorumiin myönnät "
-"kaikille oikeuden katsoa ja kopioida viestejäsi."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Onko %1 turvallinen ajaa?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Aina ladatessasi ohjelman internetistä otat riskin: ohjelmassa saattaa olla "
-"vakavia virheitä tai latauspalvelimelle on murtauduttu. %1 on pyrkinyt "
-"minimoimaan nämä riskit. Sovellukset on testattu huolellisesti. Palvelimet "
-"ovat palomuurilla suojattu ja asennettu turvallisuutta ajatellen. "
-"Ladattavien ohjelmien eheys on varmistettu digitaalisella "
-"allekirjoituksella, joka on tehty tietokoneella, joka ei ole yhteydessä "
-"internettiin."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Sovellukset, jota %1 käyttää, voivat aiheuttaa joidenkin tietokoneiden "
-"ylikuumenemista. Jos niin käy, lopeta %1 tai käytä %2ohjelmaa%3 joka "
-"rajoittaa keskusyksikön kuormitusta."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 kehitettiin %2 toimesta. BOINC kehitettiin Kalifornian yliopistolla."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Vastuu"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 ja %2 eivät ota mitään vastuuta tietokoneellesi aiheutuvasta vahingosta, "
-"tietojen häviämisestä tai mistään muusta tapahtumasta, joka on seurausta "
-"osallistumisesta %1 -projektiin."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Muita BOINC-projekteja"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Muutkin projektit käyttävät samaa alustaa, BOINCia, kuten myös %1. Haluat "
-"ehkä osallistua yhteen tai useampaan näistä projekteista. Silloin "
-"tietokoneesi suorittaa hyödyllistä työtä silloinkin kun %1 -projektilla ei "
-"ole työtä."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Nämä muut projektit eivät ole missään yhteydessä %1 -projektiin emmekä voi "
-"taata heidän turvamenettelyjään tai tutkimusten luonnetta. Heidän "
-"projekteihinsa liittyminen tapahtuu omalla riskillä."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Kielivalinta"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Tämä nettisivu löytyy useammalla kielellä. Nykyinen kielivalinta on %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Kielivalinta perustuu yleensä selaimen kieliasetukseen, joka on: %1.  Voit "
-"muuttaa asetusta:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-"Firefox: Työkalut/Asetukset/Sisältö-välilehti, josta Kielet-kohta ja "
-"Valitse-nappi"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Työkalut/Internet-asetukset/Kielet"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Kielen voi myös valita napsauttamalla jotain linkeistä.  Tällöin "
-"selaimellesi lähetetään eväste. Varmista, että selaimesi hyväksyy meidän "
-"evästeet."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Kielen nimi (napsauta valitaksesi)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Käytä selaimen kieliasetusta"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Käännökset tehdään vapaaehtoisvoimin.  Jos oma kielesi ei ole listalla, %"
-"1voit tarjota käännöstä%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Sähköpostiosoite:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "sähköpostiosoite unohtunut?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Salasana:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "salasana unohtunut?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Pysy kirjautuneena"
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "tai %1luo tili%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Käsitellään %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Sulautettiin kone %1 koneeseen %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Takaisin tietokonelistaasi"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-"Tämä toiminto sulauttaa tietokoneet niiden domainnimen perusteella.\n"
-"        <p>\n"
-"        Jokainen vanha tietokone sulautetaan uusimman koneen\n"
-"        kanssa, jolla on sama domainnimi.\n"
-"        Epäyhteensopivia koneita ei sulauteta.\n"
-"        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Suorita tämä toiminto"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Takaisin tietokonelistaan"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"Keskustelun ja tiedonkulun varmistamiseksi,\n"
-"keskustelupalstamme ovat moderoituja.\n"
-"Palstojen viestien on täytettävä seuraavat säännöt:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Moderaattorit voivat poistaa viestit, jotka ovat sääntöjen vastaisia.\n"
-"Poistettujen viestien kirjoittajat saavat tiedon sähköpostitse.\n"
-"Sääntöjen rikkojat voivat menettää oikeudet viestien kirjoittamiseen "
-"joksikin aikaa\n"
-"(väärinkäytösten estämiseksi vain projektien ylläpitäjät voivat rajoittaa "
-"oikeuksia).\n"
-"Muutkin huonot tavat (kuten viestiketjujen luominen\n"
-"foorumin spämmäämiseksi)\n"
-"voivat johtaa vastaaviin\n"
-"rangaistuksiin.\n"
-"<p>\n"
-"Jos viesti mielestäsi rikkoo sääntöjä,\n"
-"napsauta punaista X-merkkiä ja täytä lomake;\n"
-"moderaattorit saavat tiedon valituksestasi.\n"
-"Käytä nappia vain selvissä tapauksissa - ei\n"
-"henkilökohtaisissa kiistoissa.\n"
-"<p>\n"
-"Yritämme olla mahdollisimman reiluja moderoinnissa,\n"
-"mutta suuren käyttäjämäärän ja eri näkemysten vuoksi,\n"
-"aina joku on tyytymätön\n"
-"moderointipäätökseen.\n"
-"Tämä on valitettavaa,\n"
-"emmekä voi olla mieliksi kaikille kaiken aikaa ja\n"
-"päätökset pitää tehdä voimavarojen mukaan sekä\n"
-"foorumin parhaaksi.\n"
-"Älä keskustele moderoinnista foorumilla. Emme ole sosiaalinen\n"
-"projekti emmekä ole tekemässä täydellistä järjestelmää.\n"
-"Moderointikeskustelut eivät siten ole tuottavia vaan mahdollisesti\n"
-"yllyttäviä. Jos sinulla on asiallinen vaatimus,\n"
-"lähetä sähköpostia alla olevaa osoitteeseen.\n"
-"<p>\n"
-"Moderointikäytäntö on %1 projektin tekemä.\n"
-"Kommentteja käytännöstä voi lähettää osoitteeseen %2.\n"
-"\n"
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Pisteitä odottavat"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Tehtävän tunniste"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "Työpaketin tunniste"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "Koneen tunniste"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Pyydetyt pisteet"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Odottavat pisteet: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Torju viestit tältä käyttäjältä"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Torju käyttäjä"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Viestisi on lähetetty."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Sinulle ei ole yksityisviestejä."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Lähettäjä ja päiväys"
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr "Vastaa tähän viestiin"
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr "Poista tämä viesti"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr "Valitse kaikki"
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr "Poista valinta kaikista"
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Poista valitut viestit"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Lähettäjä"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Päiväys"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Kaikki kentät pitää täyttää yksityisviestin lähettämiseksi"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Viestisi merkittiin spämmiksi\n"
-"                Akismet-spämminestojärjestelmän toimesta.\n"
-"                Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Käyttäjätunnistetta %1 ei löytynyt"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Käyttäjänimeä %1 ei löytynyt"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 ei ole kelvollinen käyttäjänimi; käytä käyttäjän ID:tä"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Käyttäjä %1 (tunniste: %2) ei halua sinulta yksityisviestejä."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Käyttäjää ei ole olemassa"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Estetäänkö %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Haluatko estää käyttäjää %1 lähettämästä yksityisviestejä?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Voit estää vain rajoitetun määrän käyttäjiä."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Foorumin asetukset-sivulta voi poistaa aiemmin tehdyn käyttäjäeston."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Ei, peruuta"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "käyttäjää ei ole"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Käyttäjä %1 estetty"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Käyttäjää %1 on estetty lähettämästä sinulle yksityisviestejä."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Esto poistetaan %1keskustelupalstan asetuksista%2"
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr "Tuntematon toiminto"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Asetukset on päivitetty ja ne tulevat voimaan\n"
-"          kun tietokoneesi on yhteydessä %1 kanssa\n"
-"          tai kun napsautat %2Päivitä%3 BOINC Managerissa."
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Asetukset on palautettu oletuksiinsa ja ne tulevat voimaan\n"
-"          kun tietokoneesi on yhteydessä %1 kanssa\n"
-"          tai kun napsautat %2Päivitä%3 BOINC Managerissa."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Takaisin asetuksiin"
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr "Vahvista asetusten poisto"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Haluatko poistaa erilliset %1 -asetukset paikalle %2?"
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "Poista asetukset"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "Peruuta"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"%1Profiilien%2 avulla voi jakaa taustatietojaan ja mielipiteitään %3 "
-"-yhteisön kanssa."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Tutustu muihin vapaaehtoisiin ja kerro omat ajatuksesi muille."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"Jos et ole jo tehnyt, niin voit luoda oman %1käyttäjäprofiilisi%2 muiden "
-"nähtäväksi."
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Päivän käyttäjä"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Käyttäjäprofiilien selaus"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Katso %1käyttäjien kuvagallerioita%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Selaa profiileja %1valtioittain%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Selaa profiileja %1satunnaisjärjestyksessä%2, %3satunnaisesti kuvilla%2 tai "
-"%4satunnaisesti ilman kuvia%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Aakkosellinen profiililistaus:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Hae profiilin tekstistä"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Ei profiileja"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Ei hakuehdot täyttäviä profiileja."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr "Virheellinen ehdotus:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Ehdotus tallennettiin"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Kiitos"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Suosituksesi tallennettiin."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Ehdotuksesi profiilin torjumiseksi on tallennettu."
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Takaisin profiiliin."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr "Profiilit, jotka sisältävät \"%1\""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr "Käyttäjänimi"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr "Liittynyt projektiin"
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr "Lähiajan pisteet"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr "Profiilit, jotka sisältävät \"%1\" ei löytynyt"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Tehtävä %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Tämä toiminto on tilapäisesti kytketty pois päältä"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Tietokonetta tunnisteella %1 ei löydy"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Ei pääsyä"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Käyttäjä- tai konetunniste puuttuu"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Näytettäviä tehtäviä ei ole"
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Käynnissä"
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr "Ei käynnissä"
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr "Sammutettu"
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "Projektin tila"
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Palvelimen ohjelmistoversio: %1"
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr "Ohjelma"
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr "Kone"
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "tietokantaa käyttävät sivut"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "lähettävä/vast.ottava palvelin"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "aikatauluttaja"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Käynnissä:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Ohjelma toimii normaalisti"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Ei käynnissä:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Ohjelma sammui tai projekti on suljettu"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Sammutettu:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Ohjelma on sammutettu"
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr "Laskennan tila"
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Tietokantapalvelimeen ei saada yhteyttä"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Tehtäviä lähetettävänä"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Suorituksessa olevat"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Varmennusta odottavat työpaketit"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Yhdistämistä odottavat työpaketit"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Poistoa odottavat työpaketit"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Poistoa odottavat paketit"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Siirtokasautuma (tuntia)"
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr "Käyttäjiä"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "joilla pisteitä hiljattain"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "joilla pisteitä"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "viimeisen vrk:n aikana rekisteröityneet"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "tämänhetkiset GigaFLOPSit"
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr "Tehtävät sovelluksittain"
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "sovellus"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "lähettämättä"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "laskennassa"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "viim. 100 paketin keskim. suoritusaika ed. tunnillta (min-max)"
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "käyttäjiä edellisen 24 tunnin aikana"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Tietokone %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Tilastot ja sijalistaukset"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Käyttäjän %1 tilastot"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Tarkemmat tilastot %1 -projektista ja muista BOINC-pohjaisista projekteista "
-"löytyvät useilta nettisivuilta:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr "Voit saada nykyiset tilastosi \"sigu-kuvana\":"
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Lisäksi voit saada omat tilastosi summattuna kaikkien BOINC-projektien "
-"kesken useilta nettisivuilta. Katso tarkemmin %1omalta sivultasi%2."
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 -osallistujat voivat perustaa %2tiimejä%3."
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Voit kuulua kerrallaan vain yhteen tiimiin. Tiimiin voi liittyä ja siitä "
-"erota milloin vain."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Jokaisella tiimillä on %1perustaja%2 joka:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "saa tiimin jäsenten sähköpostiosoitteet"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "voi muokata tiimin nimeä ja kuvausta"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "lisätä tai poistaa tiimin ylläpitäjiä"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "voi poistaa jäseniä tiimistä"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "voi lopettaa tiimin, jos siinä ei ole jäseniä"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Tiimiin voi liittyä käymällä sen nettisivuilla ja napsauttamalla %1Liity "
-"tähän tiimiin%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Hae tiimi"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Kaikki tiimit"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 tiimit"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Luo uusi tiimi"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Jos et löydä itsellesi sopivaa tiimiä, %1voit luoda sen%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr "Poista tiimin ylläpitäjän oikeudet tältä henkilöltä"
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "Lisää tai poista tiimin ylläpitäjä"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Voi valita tiimin jäsenen tiimin ylläpitäjäksi. Ylläpitäjä voi:"
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Muokata tiimin tietoja (nimeä, URL-osoitetta, kuvausta, valtiota)"
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr "Katsoa tiimin liittymis-/eroamishistoriaa"
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderoi tiimin foorumia (ylläpitäjät saavat sähköposti-ilmoituksen "
-"moderointitapahtumista)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "Tiimin ylläpitäjä ei voi:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "Vaihtaa tiimin perustajaa"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Poistaa jäseniä"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Jos tiimin ylläpitäjä eroaa tiimistä, myös hänen ylläpitäjän oikeutensa "
-"lakkaavat."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-"Tiimin ylläpitäjäksi tulisi valita henkilö, jonka tunnet hyvin ja johon "
-"luotat."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "Tällä hetkellä ei ole ylläpitäjiä"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "Nykyiset ylläpitäjät"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "Ylläpitäjäksi tiimiin"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "Lisää ylläpitäjä"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "Tiimin jäsenen sähköpostiosoite:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "ylläpitäjän poisto epäonnistui"
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr "Käyttäjä ei ole tiimin jäsen"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr "%1 on jo %2 -tiimin ylläpitäjä"
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr "Ylläpitäjän lisäys epäonnistui"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Tiimiä ei ole"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "tiimiä ei ole"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "Käyttäjä ei ole %1 jäsen"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "Vaihdetaan tiimin %1 perustajuutta"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 on nyt tiimin %2 perustaja"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "Vaihda tiimin %1 perustaja"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-"Tiimin jäsen %1 pyysi tämän tiimin perustajuutta %2, mutta erosi tiimistä "
-"samalla peruuttaen pyyntönsä."
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Tiimin jäsen %1 on pyytänyt tiimin perustajuutta. Tämä johtunee siitä, että "
-"olet irrottautunut tiimistä tai et ole ollut yhteydessä tiimiin pitkään "
-"aikaan."
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "torju pyyntö"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Jos et torju pyyntöä %1 mennessä, %2 saa mahdollisuuden ottaa tiimin "
-"perustajuus.<br /><br />\n"
-"                  Hyväksy pyyntö liittämällä perustajuus %3:lle allaolevalla "
-"lomakeella."
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "Siirtopyyntöjä ei ole odottamassa."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Vaihtaaksesi tämän tiimin perustajuuden toiselle jäsenelle, merkitse "
-"laatikko käyttäjän nimen vieressä ja napsauta alempana <strong>Vaihda "
-"perustaja</strong>."
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "Uusi perustaja?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "Vaihda perustaja"
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr "Tiimiin siirrettäviä käyttäjiä ei ole."
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Tiimille pitää valita jokin nimi"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Tiiminimi %1 on jo käytössä - kokeile toista nimeä"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Tiimin luonti ei onnistunut - yritä myöhemmin uudelleen."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Luo tiimi"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Kuulut tiimiin %1. Sinun pitää %2erota tästä tiimistä%3 ennen kuin voit "
-"luoda uuden."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr "Ei perustaja tai ylläpitäjä"
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "Tiimin %1 historia"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Milloin"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Käyttäjä"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "Toiminto"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr "Kokonaispisteet toiminnon tapahtuessa"
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "väärä maa"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "Nimi \"%1\" on toisen tiimin käytössä."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "Tiiminimi on annettava"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Tiimin päivitys ei onnistunut - yritä myöhemmin uudelleen."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Muokkaa %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Päivitä tiimitiedot"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 Postituslista"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "%1:n jäsenlista"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Näytä pelkkkänä tekstinä"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr "Luo keskustelupalsta"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr "Voit luoda keskustelupalstan %1 -tiimille."
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr "Vain tiimin jäsenet voivat lähettää viestejä."
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "Lukuoikeus voidaan rajoittaa vain jäsenille."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Sinulla ja tiimin ylläpitäjillä on moderaattorin oikeudet."
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr "Luo keskustelupalsta %1 -tiimille"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr "Tiimillä on jo keskustelupalsta"
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr "Tiimin keskustelupalsta"
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr "Lyhin aika viestien välillä (sekuntia)"
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr "Viestin lähettämiseen vaadittava pistemäärä"
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr "Viestin lähettämiseen vaadittava keskimääräinen pistemäärä"
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Lähetä"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr "Poista tiimisi keskustelupalsta."
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr "Poistetaanko keskustelupalsta?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-"Poistetaanko tiimin keskustelupalsta? Kaikki viestiketjut viesteineen "
-"poistetaan pysyvästi (voit luoda uuden keskustelupalstan myöhemmin)."
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr "Kyllä - poista keskustelupalsta"
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr "Keskustelupalsta poistettu"
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr "Tiimisi keskustelupalsta on poistettu. Voit %1luoda uuden%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr "Tiimin keskustelupalsta päivitetty"
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "Päivitys onnistui"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Päivitys epäonnistui"
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr "Tiimillä ei ole foorumia"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "Nähdäksesi sivun sinun pitää olla tiimin jäsen."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr "Pyydetään tiimin %1 perustajuutta"
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Nykyiselle perustajalle on ilmoitettu pyynnöstäsi sähköpostitse ja "
-"yksityisviestillä.<br /><br />\n"
-"                       Jos perustaja ei vastaa 60 päivän kuluessa, saat "
-"ryhtyä perustajaksi."
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr "Perustajuutta ei voi nyt pyytää"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr "Otettiin tiimin %1 perustajuus"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-"Onnittelut, olet nyt tiimin %1 perustaja. Käy %2tilisivulla%3 katsomassa "
-"ylläpitäjän asetukset."
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr "Torju pyyntö perustajan vaihdosta"
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr "Perustajuuspyyntö käyttäjältä %1 on torjuttu."
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr "Perustajuuspyyntöjä ei löytynyt."
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "määrittämätön toiminto %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "Takaisin tiimin sivulle"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "Sinun pitää olla tiimin jäsen nähdäksesi tämän sivun."
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr "Pyydä tiimin %1 perustajuutta"
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr "Olet nyt tiimin %1 perustaja."
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr "Pyysit %1 perustajuutta %2."
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-"60 päivää on kulunut pyynnöstäsi eikä perustaja ole vastannut. Voit nyt "
-"ottaa perustajuuden napsauttamalla tästä:"
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr "Ota perustajuus"
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-"Perustajalle ilmoitettiin pyynnöstäsi. Jos hän ei vastaa tietyn ajan "
-"kuluessa (%1) saat mahdollisuuden olla perustaja."
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-"Jos tiimin perustaja ei ole aktiivinen ja haluat omaksua perustajan roolin, "
-"napsauta allaolevaa nappia. Nykyiselle perustajalle lähetetään sähköposti "
-"koskien pyyntöäsi ja mahdollisuus siirtää tai evätä perustajuus. Jos "
-"perustaja ei vastaa 60 päivän kuluessa, voit saada perustajuuden.<br /><br "
-"/>\n"
-"                       Haluatko pyytää perustajuutta?"
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr "Pyydä perustajuutta"
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "%1 on jo pyytänyt perustajuuden vaihtoa %2."
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-"Perustajuuden vaihtoa on pyydetty viimeisen 90 päivän aikana, joten uusia "
-"pyyntöjä ei sallita. Yritä myöhemmin uudelleen."
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr "Tiimiin %1 ei voi liittyä."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "On jo jäsen"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Olet jo jäsenenä %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Tiimiin liittyminen epäonnistui - yritä myöhemmin uudelleen."
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "Liityttiin %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr "Liityit %1."
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Liity %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr "Huomaa:"
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Liittymällä tiimiin sen perustaja saa sähköpostiosoitteesi."
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr "Tiimiin liittyminen ei vaikuta mitenkään tilisi pisteisiin."
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr "Liity tiimiin"
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Hakutulokset"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Hakutulokset haulle \"%1\""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Voit katsoa näiden tiimien jäseniä, tilastoja ja tietoja."
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Yli 100 tiimiä vastaa hakuasi. Ensimmäiset 100 näytetään."
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Tulosten loppu. %1 Jos et löydä hakemaasi tiimiä, voit itse %2luoda tiimin%"
-"3."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr "%1 -tiimin ylläpitäjät"
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "Muokkaa tiimin tietoja"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "Muuta tiimin nimeä, URL-osoitetta, kuvausta, tyyppiä tai valtiota"
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Käyttäjälista:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "teksti"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Selaa jäsenten nimiä ja sähköpostiosoitteita"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr "Selaa muutoshistoriaa:"
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr "Tarkastele, milloin jäsenet ovat liittyneet tai eronneet tästä tiimistä"
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr "Vastaa perustajuuspyyntöön."
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Jos et vastaa %1 mennessä, %2 voi ottaa tämän tiimin perustajuuden."
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Poista ei-aktiiviset tai ei-toivotut jäsenet tästä tiimistä"
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr "Siirrä perustajuus toiselle jäsenelle"
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "Lisää/poista ylläpitäjiä"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr "Anna valituille jäsenille ylläpitäjän oikeudet"
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "Poista tiimi"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "Sallittu vain jos tiimillä ei ole jäseniä"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr "Luo tai hoida tiimin keskustelupalstaa"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Jotta tämä tiimi olisi kaikissa BOINC-projekteissa (nykyisissä ja tulevissa) "
-"voit tehdä siitä %1BOINC-laajuisen tiimin%2."
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-"Tiimin ylläpitäjiä rohkaistaan liittymään ja osallistumaan Googlen %1boinc-"
-"team-founders%2 -ryhmään."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Lisää tietoa BOINC-tiimien ylläpitäjille löytyy osoitteesta %"
-"1www.boincteams.com%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Tiimin pitää olla tyhjä ennen poistamista"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Tiimi %1 poistettu"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Raja saavutettu:  näytetään vain ensimmäiset 1000 jäsentä."
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "%1:n jäsenet"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "Tiimistä eroaminen ei onnistu"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Tiimiä ei ole tai et kuulu siihen."
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "Eroa %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Ennen tiimistä eroamista:</strong>\n"
-"         <ul>\n"
-"         <li>Tiimistä erotessasi voit liittyä myöhemmn uudelleen tai liittyä "
-"toiseen tiimiin\n"
-"         <li>Tiimistä eroaminen ei vaikuta mitenkään pistetilastoihisi.\n"
-"         </ul>"
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Eroa tiimistä"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Poistetaan käyttäjiä tiimistä %1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 ei ole %2 jäsen"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 on poistettu"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Poista jäseniä tiimistä %1"
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "Poista?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Nimi (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "Poistettavia jäseniä ei ole."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Poista käyttäjiä"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Tiiminimi"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Tiimihaun tulokset"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Hakuehdollasi ei löytynyt tiimiä. Kokeile uutta hakua."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Tai %1voit luoda uuden tiimin%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-"Seuraavat tiimit vastaavat hakuehtojasi.\n"
-"            Liittyäksesi tiimiin napsauta tiimin nimeä mennäksesi sen "
-"nettisivulle,\n"
-"               jossa napsauta %1Liity tähän tiimiin%2."
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "Muuta hakua"
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-"Tiimin voi perustaa ihmisten kanssa, joilla on samat mielenkiinnon kohteet "
-"tai ovat samasta maasta, yrityksestä tai koulusta."
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr "Käytä tätä lomaketta hakeaksesi itsellesi sopivia tiimejä."
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1En halua nyt%2 liittyä tiimiin."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Raja saavutettu - vain ensimmäiset %1 näytetään"
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Koneiden kärki"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "%1 -tiimien kärki"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr "%1 -tiimejä ei ole"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Osallistunut alkaen"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "Päivän käyttäjää ei ole valittu."
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr "%1:n päivän käyttäjä: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Suodattimet"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Käyttäjänimi alkaa"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Mikä tahansa"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Profiililla?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Molemmat"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "Tiimissä?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Järjestetään"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Aleneva järjestys liittymisajan mukaan"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Aleneva järjestys keskimääräisten pisteiden mukaan"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Aleneva järjestys kokonaispisteiden mukaan"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "hakuehdossa pitää olla väh. 3 merkkiä"
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Käyttäjähaun tulokset"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Liittynyt"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr "Hakuehdoilla ei löytynyt käyttäjiä."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Käyttäjää ei löytynyt!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Tilitiedot<br/>%1<br/>Aika:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Tiimi:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Tiimin kok.pisteet:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Tiimin keskim.pisteet:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Tiimi: Ei mikään"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Vahvista BOINC-sähköpostiosoite"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-"Napsauta oheista linkkiä vahvistaaksesi sähköpostisoitteen tilillesi %1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Vahvistussähköposti lähetetty"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-"Sähköposti on lähetetty osoitteeseen %1. Napsauta siinä olevaa linkkiä "
-"vahvistaaksesi sähköpostiosoitteesi."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Käyttäjää ei ole."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Virhe URL-osoitteessa - sähköpostiosoitetta ei voi vahvistaa"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Tietokannan päivitys epäonnistui, yritä myöhemmin uudelleen."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Vahvista sähköpostiosoite"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Tilisi sähköpostiosoite on vahvistettu."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Tällä käyttäjällä ei ole profiilia"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Profiili: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Tilitiedot"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-"Pääset tiliisi käyttämällä joko sähköpostiosoitettasi ja salasanaa,\n"
-"    tai käyttämällä \"tiliavainta\".\n"
-"    Tiliavaimesi on:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Tätä avainta voidaan käyttää:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "kirjautumiseen tiliisi netissä"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-"liittämään tietokone tiliisi ilman BOINC Manageria.\n"
-"       Toimi näin: asenna BOINC,\n"
-"       luo tiedosto nimeltään %1 BOINC\n"
-"       datahakemistoon ja laita sisällöksi:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Heikko tiliavain"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-"Heikkoa tiliavaintasi voidaan käyttää tietokoneitten littämiseen tiliisi\n"
-"    yllä kerrotulla tavalla, mutta sitä ei voi käyttää kirjautumiseen tai "
-"tilisi muuttamiseen.\n"
-"    Jos haluat liittää turvattoman tietokoneen tiliisi,\n"
-"    tee se käyttämällä heikkoa tiliavainta.\n"
-"    Heikko tiliavaimesi on:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-"Jos vaihdat salasanasi, heikko tiliavaimesi muuttuu ja aiempi heikko "
-"tiliavain mitätöityy."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "työpakettia ei löydy"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Työpaketti %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "kanoninen tulos"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "myönnetyt pisteet"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "julkaisuesto päättynyt"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "oikeita tuloksia vähintään"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "alustavia toisintoja"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "suurin lkm virheitä/kokonaismääriä/onnistuneita tehtäviä"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "virheet"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "vahvistus"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Odottavat"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Etusivu"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Tekijänoikeus"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Luotu"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr "Taustatietoja itsestäsi."
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Kerro itsestäsi. Voit kertoa mistä päin olet, ikäsi, ammattisi, "
-"harrastuksesi ja niin edelleen."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Mitä mieltä olet %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-"Kerro, mitä mieltä olet %1<ol>\n"
-"    <li>Miksi ajat %1?\n"
-"    <li>Minkälaisia näkemyksiä sinulla on projektista?\n"
-"    <li>Ehdotuksia?\n"
-"    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Grafiikan värivalinta"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Suurin CPU:n %-osuus grafiikalle%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Aja vain valittuja sovelluksia"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Jos valituille sovelluksille ei ole työtä, hyväksytäänkö työtä muille "
-"sovelluksille?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(kaikki sovellukset)"
-
-#~ msgid "Error:"
-#~ msgstr "Virhe:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Tilin luonti on pois käytöstä"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Valitettavasti tämä projekti ei salli uuden tilin luontia.\n"
-#~ "Yritä myöhemmin uudelleen."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Tilin luonti on tällä hetkellä pois käytöstä. Yritä myöhemmin uudelleen."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "nvidia GPU"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Tämä projekti ei vielä ole luonut sähköpostiviestiä - ilmoita asiasta "
-#~ "ylläpitäjille"
-
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Käytä Intel GPUta %1 (versiosta 7.0+) %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Nämä koskevat kaikkia BOINC-projekteja joihin osallistut.<br>\n"
-#~ "             Tuoreimpia asetuksia käytetään koneissa, jotka osallistuvat "
-#~ "useisiin projekteihin."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Vie tämä uutinen ilmoituksena"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Siirry BOINCin datahakemistoon (Windowsissa se on yleensä <b>C:\\Documents "
-#~ "and Settings\\All Users\\Application Data\\BOINC</b> tai <b>C:\\Program "
-#~ "Files\\BOINC</b>."
-
-#~ msgid "No such task"
-#~ msgstr "Tehtävää ei ole"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Kone on yhteydessä nettiin %1 Jätä tyhjäksi tai 0 jos yhteys on aina. %2 "
-#~ "BOINC yrittää pitää vähintään tämän verran työtä (enint. 10 päivää). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Pidä lisäksi työtä tämän verran"
-
-#~ msgid "Update failed: "
-#~ msgstr "Päivitys epäonnistui: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Sallii %1rajoitetun pääsyn%2 tiliisi"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Älä käytä tätä lomaketta. Käynnistä BOINC, valitse Lisää projekti ja syötä "
-#~ "sähköpostiosoite ja salasana."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Älä järjestele pysyviä viestejä"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Jos viestiketju sisältää enemmän kuin näin monta viestiä"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "näytä vain ensimmäinen ja näin monta lopuista"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Raporttisi on tallennettu. Kiitos."
-
-#~ msgid "Search type"
-#~ msgstr "Hakutapa"
-
-#~ msgid "User names starting with"
-#~ msgstr "Käyttäjänimet, jotka alkavat"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "\"Heikko tiliavain\" mahdollistaa tietokoneesi liittämisen tähän projektiin, "
-#~ "mutta ei anna kirjautua sisään tai muuttaa tiliä mitenkään."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Tämä toiminto toimii vain projekteissa, jotka ovat päivittäneet "
-#~ "palvelinohjelmistonsa 7.12.2007 tai sen jälkeen."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Tämän projektisi heikko tiliavain on:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Käyttääksesi heikkoa tiliavainta tietokoneella, etsi tai luo \"tilitiedosto\" "
-#~ "projektille. Tiedoston nimi on muotoa <b>account_PROJECT_URL.xml</b>. "
-#~ "Tilitiedosto projektille %1 on <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Luo tämä tiedosto tarvittaessa. Sisällöksi tulee:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Heikko tiliavaimesi perustuu salasanaasi. Jos muutat salasanaasi, heikko "
-#~ "tiliavain muuttuu ja vastaava aiempi avain muuttuu käyttökelvottomaksi."
-
-#~ msgid "Account key"
-#~ msgstr "Tilin avain"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Sallii täydet oikeudet tiliisi"
-
-#~ msgid "Export"
-#~ msgstr "Vie"
-
-#~ msgid "- private message"
-#~ msgstr "- yksityisviesti"
-
-#~ msgid "Private message from"
-#~ msgstr "Yksityisviesti käyttäjältä"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Sähköpostiosoitteen vahvistus odottaa"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Kirjauduttu nimellä %1."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Kirjaudu jonakin toisena."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Viestiketjua tunnisteella %1 ei ole. Tarkista linkki ja yritä uudelleen."
-
-#~ msgid "Request not found"
-#~ msgstr "Pyyntöä ei löydy"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 on lisännyt sinut ystäväkseen."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Käyttäjän %1 tilitiedot"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "keskustelupalstan luonti ei onnistunut"
-
-#~ msgid "message board not found"
-#~ msgstr "keskustelupalstaa ei löydy"
-
-#~ msgid "no such forum"
-#~ msgstr "foorumia ei ole"
-
-#~ msgid "unknown command %1"
-#~ msgstr "tuntematon kometo %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "VIRHE: %1 ei ole olemassa!  Valikkoa ei voi luoda.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Roskapostin estämiseksi pyydämme syöttämään kuvassa näkyvät sanat:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC-versio"
-
-#~ msgid "Client detached"
-#~ msgstr "Ohjelman lopettama"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "Suurin työpakettien päivittäinen määrä suoritinta kohden"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/päivä"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "Anonyymi alusta - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "Anonyymi alusta - NVIDIA GPU"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "Anonyymi alusta - ATI GPU"
-
-#~ msgid "Task ID"
-#~ msgstr "Tehtävän tunniste"
-
-#~ msgid "Granted credit"
-#~ msgstr "Myönnetyt pisteet"
diff --git a/html/languages/translations/fr.po b/html/languages/translations/fr.po
index 71fd34d..4d9ae22 100644
--- a/html/languages/translations/fr.po
+++ b/html/languages/translations/fr.po
@@ -1,367 +1,605 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-02-02 22:07+0000\n"
+# 
+# Translators:
+# Axel Coutemanche <brulavoineaxel at gmail.com>, 2016
+# Christian Beer <christian.beer at posteo.de>, 2016
+# Frederic94500 <frederictran at hotmail.fr>, 2017
+# Jerome Cadet <jerome.cadet at pobox.com>, 2015,2017
+# Jun Seo <seo.galileo at gmail.com>, 2015
+# Lucas Mascaro <mascaro.lucas at yahoo.fr>, 2017
+# Philippe Janocha, 2016
+# PINSET Romaric <inactive+RomaricP at transifex.com>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-07 11:18+0000\n"
 "Last-Translator: Jerome Cadet <jerome.cadet at pobox.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: fr\n"
+"Language-Team: French (http://www.transifex.com/boinc/boinc/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1391378827.0\n"
 
 msgid "LANG_NAME_NATIVE"
-msgstr "LANG_NAME_NATIVE"
+msgstr "Français"
 
 msgid "LANG_NAME_INTERNATIONAL"
-msgstr "LANG_NAME_INTERNATIONAL"
+msgstr "French"
+
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Code d'invitation"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Un code d'invitation valide est requis pour créer un compte."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Nom"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Vous identifie sur notre site web. Utilisez votre nom réel ou un pseudonyme."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "Adresse email"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Doit être une adresse valide de type 'nom at domaine'."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Mot de passe"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "1 caractères au moins"
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Confirmation du mot de passe"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "Pays"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Le cas échéant, choisissez le pays que vous voulez représenter (si il y en a)."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Code postal"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Facultatif"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Création de compte"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "Adresse email :"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "adresse email oubliée ?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Mot de passe :"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "mot de passe oublié ?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Rester connecté"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Connexion"
+
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "Texte en gras: [b]texte[/b]  (alt+b)"
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr "Texte en italique: [i]texte[/i]  (alt+i)"
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "Texte souligné: [u]texte[/u]  (alt+u)"
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Texte barré : [s]text[/s]  (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "Citation : [quote]texte[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "Affichage de code: [code]code[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "Liste: [list]texte[/list]  (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Liste triée: [list=]texte[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Liste triée: [list=1]texte[/list]  (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "Insérer une image: [img]http://image_url[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Insérer une adresse: [url]http://url[/url] ou [url=http://url]Texte de "
-"l'URL[/url]  (alt+w)"
+msgstr "Insérer une adresse: [url]http://url[/url] ou [url=http://url]Texte de l'URL[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr "Couleur de la police"
 
-#: ../inc/bbcode_html.inc:43
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Couleur de la police: [color=red]texte[/color] Astuce: vous pouvez aussi "
-"utiliser color=#FF0000"
+msgstr "Couleur de la police: [color=red]texte[/color] Astuce: vous pouvez aussi utiliser color=#FF0000"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr "Par défaut"
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr "Rouge foncé"
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr "Rouge"
 
-#: ../inc/bbcode_html.inc:47
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr "Orange"
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr "Marron"
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr "Jaune"
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr "Vert"
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr "Vert olive"
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr "Cyan"
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr "Bleu"
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr "Bleu foncé"
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr "Bleu foncé violacé (indigo)"
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr "Violet"
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr "Taille de la police"
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "Taille de la police: [size=x-small]texte en petit[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr "Petit"
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr "Normal"
 
-#: ../inc/bbcode_html.inc:62
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr "Grand"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr "Fermer toutes les balises bbCode ouvertes"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr "Fermer les balises"
 
-#: ../inc/forum.inc:37
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Compte"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Rejoindre"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "À propos de %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Aide"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Projet"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Participer"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Faire le travail"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "État du serveur"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Statistiques"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Applications"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Participants"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Ordinateurs"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Equipes"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "Modèles GPU"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "Modèles CPU"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Calculs en cours"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Communauté"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Forums"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "créer ou rejoindre une équipe"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Profils"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Recherche d'utilisateur"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Utilisateur du jour"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Certificat"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Site"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Recherche sur le site"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Langues"
+
+#. names for the above
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr "Le plus ancien en premier"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr "Le plus récent en premier"
 
-#: ../inc/forum.inc:39
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr "Les messages les mieux classés en premier"
 
-#: ../inc/forum.inc:41
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr "Les messages les plus récents en premier"
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr "Les plus lus en premier"
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr "Le plus de messages en premier "
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Modérateur"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Administrateur du projet"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Développeur du projet"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Testeur du projet"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Développeur bénévole"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Testeur bénévole"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Scientifique du projet"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Expert assistance"
+
+#. Search
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr "Chercher des mots dans les messages du forum"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr "Chercher dans les forums"
 
-#: ../inc/forum.inc:126
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr "Recherche avancée"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr "Messages privés"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr "Questions / Réponses"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Forums"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr "Forum %1"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr "Précédent"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr "Suivant"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
 msgid "Author"
 msgstr "Auteur"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr "Message"
 
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Envoyer  message"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Envoyer message"
 
-#: ../inc/forum.inc:580
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr "Envoyer à %1 un message privé"
 
-#: ../inc/forum.inc:581
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr "A rejoint: %1"
 
-#: ../inc/forum.inc:590
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr "Messages: %1"
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr "Crédit: %1"
 
-#: ../inc/forum.inc:597
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr "RAC: %1"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr "Vous n'avez pas encore lu ce message"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr "Non lu"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr "Message %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr "caché"
 
-#: ../inc/forum.inc:625
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
 msgstr "Publié par: %1"
 
-#: ../inc/forum.inc:628
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr " - en réponse à "
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr "Editer"
 
-#: ../inc/forum.inc:631
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr "Éditer ce message"
 
-#: ../inc/forum.inc:637
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr "Dernière modification: %1"
 
-#: ../inc/forum.inc:640
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Ce message n'est pas affiché car l'expéditeur est dans votre liste "
-"d'expéditeurs ignorés.   Cliquez %1ici%2 pour afficher ce message."
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Ce message n'est pas affiché car l'expéditeur est dans votre liste d'expéditeurs ignorés.   Cliquez %1ici%2 pour afficher ce message."
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr "Signaler ce message offensant"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr "Signaler comme offensant"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr "Classement: %1"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "rate: "
 msgstr "classer: "
 
-# 83%
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr "Cliquez si vous aimez ce message"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr "Classement +"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr "Cliquez si vous n'aimez pas ce message"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr "Classement -"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr "Répondre"
 
-#: ../inc/forum.inc:685
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr "Répondre à ce message"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr "Citer"
 
-#: ../inc/forum.inc:687
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr "Répondre en citant ce message"
 
-#: ../inc/forum.inc:708
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr "Caché par un modérateur"
 
-#: ../inc/forum.inc:729
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr "%1 Publié par %2"
 
-#: ../inc/forum.inc:747
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr "Vous ne pouvez pas répondre ou classer de message jusqu'au %1"
 
-#: ../inc/forum.inc:758
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -373,2613 +611,2471 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
 "        "
-msgstr ""
-"                                 <ul>\n"
-"                                 <li> Les messages doivent être «adapté aux "
-"enfants»: ils ne peuvent pas contenir\n"
-"                                              de contenu obscène, incitant à "
-"la haine,\n"
-"                                               sexuellement explicite ou "
-"suggestif.\n"
-"                                 <li> Pas de publicité commerciale.\n"
-"                                 <li> Pas de liens vers des sites Web ayant "
-"un contenu sexuel,\n"
-"                                              lié aux jeux d'argent ou à "
-"l'intolérance envers les autres.\n"
-"                                 <li> Aucun messages destinés à gêner ou "
-"contrarier d'autres personnes,\n"
-"                                              ou à détourner un sujet de "
-"conversation.\n"
-"                                 <li> Pas de messages délibérément hostiles "
-"ou insultants.\n"
-"                                 <li> Pas de commentaires abusifs impliquant "
-"la race, la religion,\n"
-"                                              la nationalité, le sexe, la "
-"classe ou la sexualité.\n"
-
-#: ../inc/forum.inc:780
+msgstr "\n                                 <ul>\n                                 <li> Les messages doivent être «adapté aux enfants»: ils ne peuvent pas contenir\n                                              de contenu obscène, incitant à la haine,\n                                               sexuellement explicite ou suggestif.\n                                 <li> Pas de publicité commerciale.\n                                 <li> Pas de liens vers des sites Web ayant un contenu [...]
+
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr "Règles:"
 
-#: ../inc/forum.inc:781
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr "Plus d'informations"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr "Démasquer"
 
-#: ../inc/forum.inc:1055
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr "Démasquer ce message"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr "Masquer"
 
-#: ../inc/forum.inc:1057
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr "Masquer ce message"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr "Déplacer"
 
-#: ../inc/forum.inc:1062
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr "Déplacer ce message vers une autre discussion"
 
-#: ../inc/forum.inc:1067
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr "Bannir l'utilisateur"
 
-#: ../inc/forum.inc:1074
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr "Voter pour bannir cet utilisateur"
 
-#: ../inc/forum.inc:1078
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr "Voter pour ne pas bannir cet utilisateur"
 
-#: ../inc/forum.inc:1083
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr "Débuter un vote pour bannir cet utilisateur"
 
-#: ../inc/forum.inc:1116
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Supprimer"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Supprimer ce message"
+
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
 msgstr "Seuls les membres d'équipes peuvent écrire dans le forum d'équipe"
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Pour pouvoir créer un nouveau sujet dans %1 vous devez disposer d'une "
-"certaine quantité de crédit. Cette mesure a pour but de prévenir les abus."
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "Pour pouvoir créer un nouveau sujet dans %1 vous devez disposer d'une certaine moyenne de crédit. Cette mesure a pour but de prévenir les abus."
 
-#: ../inc/forum.inc:1133
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Vous ne pouvez pas créer de sujet supplémentaire dans l'immédiat. Veuillez "
-"attendre un moment puis réessayer. Ce délai a été instauré pour prévenir les "
-"abus."
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Vous ne pouvez pas créer de sujet supplémentaire dans l'immédiat. Veuillez attendre un moment avant de réessayer. Ce délai a été instauré pour prévenir les abus."
 
-#: ../inc/forum.inc:1140
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
-"Ce sujet est verrouillé. Seul les modérateurs et administrateurs du forum "
-"sont autorisés à écrire ici."
+msgstr "Ce sujet est verrouillé. Seul les modérateurs et administrateurs du forum sont autorisés à écrire ici."
 
-#: ../inc/forum.inc:1145
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr "Vous ne pouvez pas écrire dans une discussion masquée."
 
-#: ../inc/forum.inc:1173
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr "Sujet"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr "Messages"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr "Vues"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr "Dernier message"
 
-#: ../inc/forum.inc:1235
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr "Nouveaux messages dans la discussion %1"
 
-#: ../inc/forum.inc:1240
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr "Nouveaux messages dans une discussion suivie"
 
-#: ../inc/forum.inc:1241
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr "Il y a de nouveaux messages dans la discussion '%1'"
 
-#: ../inc/forum.inc:1251
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr "Marquer toutes les discussions comme lues"
 
-#: ../inc/forum.inc:1252
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
 msgstr "Marquer tous les sujets de tous les forums comme 'lus'."
 
-#: ../inc/host.inc:24
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr "Aucun hôte"
 
-#: ../inc/host.inc:26
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr "Indisponible"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr "Maison"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr "Travail"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
 msgstr "École"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mobile"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "Mise à jour"
 
-#: ../inc/host.inc:85
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr "Informations sur l'ordinateur"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr "Adresse IP"
 
-#: ../inc/host.inc:89
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(identiques les %1 dernières fois)"
 
-#: ../inc/host.inc:91
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr "Adresse IP externe"
 
-#: ../inc/host.inc:94
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr "Afficher l'adresse IP"
 
-#: ../inc/host.inc:96
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr "Nom de domaine"
 
-#: ../inc/host.inc:98
+#: html/inc/host.inc:97
 msgid "Product name"
 msgstr "Nom du produit"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "Heure locale"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "%1 heures Temps Universel (UTC)"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr "Propriétaire"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr "Anonyme"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr "Créé"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr "Crédit total"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr "Crédit moyen"
 
-#: ../inc/host.inc:116
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr "Crédit inter-projet"
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr "Type de CPU"
 
-#: ../inc/host.inc:119
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr "Nombre de processeurs"
 
-#: ../inc/host.inc:121
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr "Coprocesseurs"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr "Système d'exploitation"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr "Version de BOINC"
 
-#: ../inc/host.inc:130
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr "Mémoire"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 Mo"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr "Cache"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 Ko"
 
-#: ../inc/host.inc:140
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr "Espace d'échange (swap)"
 
-#: ../inc/host.inc:143
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr "Taille totale de disque"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 Go"
 
-#: ../inc/host.inc:146
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "Espace disque disponible"
 
-#: ../inc/host.inc:150
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "Vitesse mesurée pour les calculs en virgule flottante"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
-msgstr "%1 million d'opérations/sec"
+msgstr "%1 million(s) d'opérations/s"
 
-#: ../inc/host.inc:153
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "Vitesse mesurée pour les calculs en nombres entiers"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr "Débit moyen en téléchargement ascendant"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 Ko/s"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr "Inconnu"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr "Débit moyen de téléchargement"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr "Temps de cycle moyen"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 jours"
 
-#: ../inc/host.inc:170
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr "Détails de l'application"
 
-#: ../inc/host.inc:171
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr "Afficher"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr "Tâches"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "Nombre de fois où le client BOINC a contacté le serveur"
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "Dernière date de contact avec le serveur"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
 msgstr "% de temps de fonctionnement de BOINC"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Lorsque BOINC est en fonctionnement, % du temps où l'hôte a une connexion "
-"internet."
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Lorsque BOINC est en fonctionnement, % du temps où l'hôte a une connexion internet."
 
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
 msgstr "Lorsque BOINC fonctionne, % de temps de travail autorisé"
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Lorsque BOINC fonctionne, % de temps de travail GPU autorisé"
+
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr "Efficacité moyenne du CPU"
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr "Facteur de correction de durée de tâche"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr "Localisation"
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr "Supprimer cet ordinateur"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr "Fusionner les enregistrements dupliqués de cet ordinateur"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr "Fusionner"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr "Dernier contact"
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr "Informations sur l'ordinateur"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr "Rang"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr "Crédit moyen"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr "Crédit moyen récent"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr "GPU"
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr "Système d'exploitation"
 
-#: ../inc/host.inc:315
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr "(%1 processeurs)"
 
-#: ../inc/host.inc:335
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr "Détails"
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr "Statistiques inter-projets :"
 
-#: ../inc/host.inc:515
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr "L'hôte %1 a une durée de vie qui chevauche :"
 
-#: ../inc/host.inc:522
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr "L'hôte %1 a un système d'exploitation incompatible :"
 
-#: ../inc/host.inc:528
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr "L'hôte %1 utilise un CPU incompatible :"
 
-#: ../inc/host.inc:595
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr "même hôte"
 
-#: ../inc/host.inc:598
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-"Impossible de fusionner l'hôte %1 avec l'hôte %2 - ils sont incompatibles"
+msgstr "Impossible de fusionner l'hôte %1 avec l'hôte %2 - ils sont incompatibles"
 
-#: ../inc/host.inc:601
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr "Fusion de l'hôte %1 avec l'hôte %2 en cours"
 
-#: ../inc/host.inc:618
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr "Impossible de mettre à jour le crédit du nouvel ordinateur"
 
-#: ../inc/host.inc:622
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr "Impossible de mettre à jour les résultats"
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr "Impossible de retirer l'ancien ordinateur"
 
-#: ../inc/host.inc:629
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr "L'ancien ordinateur %1 a été retiré"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr "Afficher :"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr "Tous les ordinateurs"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr "Uniquement les ordinateurs actifs durant les 30 derniers jours"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr "ID de l'ordinateur"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nom"
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Modèle"
 
-#: ../inc/host.inc:682
+#: html/inc/host.inc:695
 msgid "BOINC<br>version"
 msgstr "BOINC<br>version"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "Fusionner les ordinateurs par le nom"
 
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "Navigateur par défaut"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Commentaire"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discuter"
 
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Les nouvelles sont disponibles en %sflux RSS%s"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr "Courrier entrant"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr "Écrire"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Envoyer un message privé"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Envoyez un message à l'équipe"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr "Prévisualisation"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Sujet"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Envoyer un message privé"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
 msgid "no such message"
 msgstr "message inexistant"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "To"
 msgstr "A"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "Identifiants utilisateurs, séparés par des virgules"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Sujet"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Envoyer message"
-
-#: ../inc/pm.inc:121
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr "message privé envoyé; sujet:"
 
-#: ../inc/pm.inc:127
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr "Message privé %1 de %2, sujet:"
 
-#: ../inc/pm.inc:135
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr "Impossible de créer le message"
 
-#: ../inc/pm.inc:166
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
-msgstr ""
-"Vous n'êtes pas autorisé à envoyer des messages privés si fréquemment. "
-"Veuillez patienter avant d'en envoyer plus."
+msgstr "Vous n'êtes pas autorisé à envoyer des messages privés si fréquemment. Veuillez patienter avant d'en envoyer plus."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr "non lu"
 
-#: ../inc/pm.inc:186
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-"Pour les notifications par email,  %1éditer les préférences de communauté%2"
+msgstr "Pour les notifications par email,  %1éditer les préférences de communauté%2"
 
-#: ../inc/pm.inc:198
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr "Message privé"
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Les limites d'utilisation"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Utiliser au plus"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Suspendre les calculs si l'ordinateur est sur batterie ? %1 Ne concerne que "
-"les ordinateurs portables %2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Garder certains processeurs libres pour d'autres applications. Exemple : 75 % signifie utiliser 6 cœurs sur un processeur 8-core."
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Suspendre les calculs lorsque l'ordinateur est utilisé ?"
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% du temps CPU"
 
-#: ../inc/prefs.inc:91
+#: html/inc/prefs.inc:63
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Suspendre les calculs du GPU lorsque l'ordinateur est utilisé ? %1 "
-"Applicable depuis la version 6.6.21 et plus %2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Suspend puis reprend les calculs toutes les quelques secondes afin de réduire la température du processeur et la consommation d'énergie. Exemple : 75 % signifie calculer pendant 3 secondes, attendre 1 seconde et répéter."
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-"'Est utilisé' signifie qu'il y a eu une activité de la souris ou du clavier "
-"dans les dernières"
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% du temps CPU"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minutes"
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Quand suspendre les calculs"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Suspendre les calculs si aucune activité de la souris ou du clavier dans les "
-"dernières %1 Requis pour pouvoir basculer en mode basse consommation sur "
-"certains ordinateurs %2"
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Suspension quand l'ordinateur est sur batterie"
 
-#: ../inc/prefs.inc:114
+#: html/inc/prefs.inc:71
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Suspendre les calculs si l'utilisation du CPU est supérieure à %1 (0 "
-"signifie aucune restriction)<br>Applicable depuis la version 6.10.30 et plus "
-"%2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Cochez cette case pour suspendre les calculs sur votre portable quand il fonctionne sur batterie."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"N'exécuter les calculs qu'entre les horaires de %1 Aucune restriction si "
-"égal à %2"
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Suspendre les calculs lorsque l'ordinateur est utilisé"
 
-#: ../inc/prefs.inc:130
+#: html/inc/prefs.inc:77
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Laisser les tâches en mémoire lorsqu'elles sont suspendues ? %1(les tâches "
-"suspendues consommeront de l'espace sur le swap si 'oui')%2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Cochez cette case pour suspendre le calcul et les transferts de fichiers lorsque vous utilisez l'ordinateur."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Permuter entre les tâches toutes les %1 Recommandé : 60 minutes %2"
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Suspendre le calcul par la carte graphique lorsque l'ordinateur est utilisé"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Sur les systèmes multiprocesseurs, utiliser au plus"
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Cochez cette case pour suspendre le calcul par la carte graphique lorsque vous utilisez l'ordinateur."
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "processeurs"
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Est utilisé' signifie qu'il y a eu une activité de la souris ou du clavier dans les dernières"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Sur les systèmes multiprocesseurs, utiliser au plus %1 Applicable depuis la "
-"version 6.1 ou plus %2"
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Ceci permet de déterminer quand l'ordinateur est considéré comme \"en usage\"."
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% des processeurs"
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "minutes"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Utiliser au plus %1 Peut être utilisé pour réduire la température du CPU %2"
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Suspendre si pas d'utilisation souris / clavier durant "
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% du temps CPU"
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Ceci permet à certains ordinateurs de se mettre en mode de consommation réduite s'ils ne sont pas utilisés."
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disque : utiliser au plus"
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Suspendre lorsque l'utilisation du processeur est au-dessus de"
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "Go"
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Suspendre le calcul lorsque votre ordinateur est occupé à exécuter d'autres programmes."
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Disque : Laisser disponible au moins %1 Les valeurs inférieures à %2 sont "
-"ignorées %3"
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Réaliser des calculs seulement entre"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% du total"
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Autoriser les calculs seulement durant  une certaine période chaque jour."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Autre"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Stocker au moins"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Stocker au moins assez de tâches pour occuper l'ordinateur pendant cette durée."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "jours de travail"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Stocker jusqu'à un additionnel"
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Point de contrôle des tâches sur disque au plus tous les"
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Stocker des tâches supplémentaires au-dessus du niveau minimum.  Détermine la quantité de travail demandée lorsque vous communiquez avec un projet."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Permuter d’une tâche à l’autre toutes les"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Si vous exécutez plusieurs projets, BOINC peut basculer entre les tâches à cette fréquence."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Demander des tâches au point de contrôle au plus chaque"
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Ce paramètre règle la fréquence à laquelle les tâches enregistrent leur état sur le disque, de sorte qu'elles pourront être poursuivies ultérieurement à partir de cet état."
+
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr "secondes"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Espace d'échange (swap) : utiliser au plus"
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Ne pas utiliser plus de:"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Mémoire : lorsque l'ordinateur est utilisé, utiliser au plus"
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Limiter la quantité totale d'espace disque utilisée par BOINC."
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Mémoire : lorsque l'ordinateur n'est pas utilisé, utiliser au plus"
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "Go"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-"Récupérer suffisamment de travail pour rester occupé durant au moins%"
-"1(maximum 10 jours).%Q"
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Laisser au moins"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "jours"
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Limiter l'utilisation du disque dur afin de laisser suffisamment d'espace libre sur le volume où BOINC stocke les données."
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... et jusqu'à un additionnel "
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB libre"
 
-#: ../inc/prefs.inc:232
+#: html/inc/prefs.inc:155
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Confirmer avant de se connecter à internet ? %1 Utile uniquement si vous "
-"avez un modem, une connexion RNIS ou VPN %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Limiter le pourcentage d'espace disque utilisée par BOINC sur le volume où il stocke les données."
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Déconnecter lorsque terminé ? %1 Utile uniquement si vous avez un modem, une "
-"connexion RNIS ou VPN %2"
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% du total"
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Débit maximum de téléchargement descendant :"
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "Lorsque l'ordinateur est utilisé, utilisez au maximum"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Koctets/sec"
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Limiter la mémoire utilisée par BOINC lorsque vous utilisez l'ordinateur."
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Débit maximum en téléchargement ascendant :"
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Utiliser le réseau seulement entre les heures de"
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Lorsque l'ordinateur n'est pas en utilisation, utiliser au maximum"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Transférer au plus %1 Applicable depuis version 6.10.46 et plus %2"
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Limiter la mémoire utilisée par BOINC lorsque vous n'utilisez pas l'ordinateur."
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Moctets chaque"
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Laisser les tâches non-GPU en mémoire lorsqu'elles sont suspendues"
 
-#: ../inc/prefs.inc:274
+#: html/inc/prefs.inc:179
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Passer la vérification du fichier image ? %1 Cochez ceci SEULEMENT si votre "
-"fournisseur Internet modifie des fichiers images (l'UMTS fait ceci, par "
-"exemple). %2 Ignorer la vérification réduit la sécurité de BOINC. %3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Si coché, les tâches seront gardées en mémoire pour pouvoir reprendre le travail sans perte. Si non coché, les tâches suspendues seront supprimées de la mémoire, et la reprise s'effectuera depuis leur dernier point de contrôle."
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Partage de ressource %1 Détermine la proportion des ressources de votre "
-"ordinateur allouées à ce projet. Exemple : si vous participez à deux projets "
-"BOINC avec un partage de ressources de 100 et 200, le premier aura 1/3 des "
-"vos ressources et le second 2/3."
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Espace d'échange (swap) : utiliser au plus"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accélérer les tâches GPU en dédiant un core CPU à chacune ?"
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Limiter l'espace d'échange utilisé par BOINC (pagefile.sys ou swap)."
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Utiliser le CPU %1 Applicable depuis la version 6.10 et plus %2"
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Taux limite de téléchargement descendant"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Utiliser le GPU ATI %1 Applicable depuis la version 6.10 et plus %2"
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Limiter le taux de transfert de fichiers descendant (download)."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-"Utiliser le GPU NVIDIA si présent %1 Applicable depuis la version 6.10 et "
-"plus %2"
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/seconde"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-"Utiliser le GPU Intel %1 Applicable depuis la version 7.2 et suivantes %2"
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Taux limite de téléchargement ascendant"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Lancer les applications de test ? %1 Ceci nous aide à développer les "
-"applications, mais peut engendrer des échecs de calculs sur votre ordinateur "
-"%2"
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Limiter le taux de transferts de fichiers ascendant (upload)."
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Les e-mails seront envoyés de %1. Assurez-vous que votre filtre anti-spam "
-"accepte cette adresse."
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Limiter à"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Acceptez-vous que %1 et votre équipe (si vous en avez une) puisse vous "
-"envoyer des e-mails ?"
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Exemple : BOINC doit transférer au maximum 2000 MB de données tous les 30 jours."
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Acceptez-vous que %1 affiche vos ordinateurs sur son site web ?"
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB chaque"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Utilisation disque et mémoire"
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "jours"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Utilisation du processeur"
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Transférer des fichiers seulement entre"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Utilisation du réseau"
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Transférer des fichiers uniquement pendant une période donnée chaque jour."
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Ces préférences s'appliquent à tous les projets BOINC auxquels vous "
-"participez."
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Ignorer la vérification des données pour les fichiers image"
 
-#: ../inc/prefs.inc:395
+#: html/inc/prefs.inc:223
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Impossible de mettre à jour les préférences.%2 Les valeurs marquées en "
-"rouge ci-dessous sont hors bornes ou non numériques."
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Cochez si votre fournisseur d'accès Internet modifie les fichiers image.\nIgnorer cette vérification réduit la sécurité de BOINC."
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "mauvais lieu de rendez-vous : %1"
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Confirmer avant de se connecter à internet"
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "mauvais sous-ensemble : %1"
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Utiliser uniquement si vous avez un modem, la connexion VPN ou RNIS."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "oui"
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Se déconnecter dès que terminé"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "non"
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Disque"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "aucune limite"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Ajouter"
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Utilisation du réseau"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Supprimer"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Ces préférences s'appliquent à tous les projets BOINC auxquels vous participez."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Calculs en cours"
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Impossible de mettre à jour les préférences.%2 Les valeurs marquées en rouge ci-dessous sont hors bornes ou non numériques."
 
-#: ../inc/prefs.inc:823
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr "Préférences séparées pour %1"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr "Modifier les préférences"
 
-#: ../inc/prefs.inc:839
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Supprimer"
+
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr "Ajouter des préférences séparées pour %1"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Ces paramètres s'appliquent à tous les ordinateurs utilisant ce compte sauf "
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "ordinateurs où vous avez réglé les préférences localement à l'aide du BOINC Manager"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Appareils Android"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
 msgstr "(Basculer de vue)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
 msgid "Combined preferences"
 msgstr "Préférences combinées"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Paramètres spécifiques au projet"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
 msgid "Primary (default) preferences"
 msgstr "Préférences principales (par défaut)"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Modifier les préférences de %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-"Ceux-ci s'appliquent sur tous les projets BOINC auxquels vous participez."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"Sur les ordinateurs participants à plusieurs projets, les préférences mises "
-"à jours le plus récemment seront utilisées."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Ces préférences ne sont pas applicables pour les appareils Android."
-
-#: ../inc/prefs.inc:892
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr "Dernière modification des préférences :"
 
-#: ../inc/prefs.inc:944
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr "Ajouter des préférences"
 
-#: ../inc/prefs.inc:948
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr "Mettre à jour les préférences"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "oui"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "non"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr "Localisation par défaut de l'ordinateur"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Les nouveaux ordinateurs utiliseront cet emplacement pour les préférences de calcul et de projet."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Partage des ressources"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Détermine la proportion des ressources de votre ordinateur allouées à ce projet. Exemple : si vous participez à deux projets BOINC avec un partage de ressources de 100 et 200, le premier aura 1/3 des vos ressources et le second 2/3."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Accélérer les tâches GPU en dédiant un core CPU à chacune ?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "Utiliser le CPU"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "Utiliser le GPU ATI"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "Utiliser le GPU NVIDIA"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Utiliser le GPU Intel"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Exécuter les applications de test ? "
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Ceci nous aide à développer les applications, mais peut générer des erreurs de calculs sur votre ordinateur"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Les e-mails seront envoyés de %1. Assurez-vous que votre filtre anti-spam accepte cette adresse."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Acceptez-vous que %1 et votre équipe (si vous en avez une) puisse vous envoyer des e-mails ?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "Acceptez-vous que %1 affiche vos ordinateurs sur son site web ?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Basculer de vue)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Paramètres spécifiques au projet"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "mauvais lieu de rendez-vous : %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "mauvais sous-ensemble : %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
 msgid "and"
 msgstr "et"
 
-#: ../inc/profile.inc:86
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "aucune limite"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Ajouter"
+
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr ""
-"Votre profil sera visible pour les autres personnes dès qu'il aura été "
-"approuvé par le projet. Cela peut prendre quelques jours."
+msgstr "Votre profil sera visible pour les autres personnes dès qu'il aura été approuvé par le projet. Cela peut prendre quelques jours."
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr ""
-"Votre profil a été marqué comme inacceptable. Il n'est pas visible par les "
-"autres personnes. Veuillez en changer."
+msgstr "Votre profil a été marqué comme inacceptable. Il n'est pas visible par les autres personnes. Veuillez en changer."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr "Erreur de base de données"
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Pour éviter le spam, les profils des utilisateurs ayant un crédit moyen "
-"inférieur à %1 ne seront affichés que si ces utilisateurs sont enregistrés. "
-"Veuillez nous excuser pour cet inconvénient."
+msgstr "Pour éviter le spam, les profils des utilisateurs ayant un crédit moyen inférieur à %1 ne seront affichés que si ces utilisateurs sont enregistrés. Veuillez nous excuser pour cet inconvénient."
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr "L'utilisateur est banni"
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr "Aucun profil n'existe pour cet ID d'utilisateur"
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr "Éditer votre profil"
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr "Vos impressions sur ce profil"
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr "Recommander ce profil en tant qu'utilisateur du jour :"
 
-# ?????
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr "J'%1aime%2 ce profil"
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr "Alerter les administrateurs sur un profil problématique : "
 
-# ???????
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr "Je %1n'aime pas%2 ce profil"
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr "Plateforme anonyme"
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr "GPU NVIDIA"
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr "GPU ATI"
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
 msgstr "GPU Intel"
 
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Pas dans la base de données"
-
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr "en attente"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr "Tous"
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr "En cours"
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr "Validation en attente"
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr "Validation non concluante"
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr "Valide"
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr "Invalide"
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr "Erreur"
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr "Inactif"
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr "Non envoyé"
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr "Terminé, en attente de validation"
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr "Terminé et validé"
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr "Terminé, marqué comme invalide"
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr "Terminé, validation impossible"
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr "Terminé, validation peu concluante"
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr "Terminé, trop tardif pour valider"
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr "Terminé"
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr "Impossible d'envoyer"
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr "Annulé par le serveur"
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr "Pas démarré avant la date limite - annulé"
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr "Erreur en cours de téléchargement (sens download)"
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr "Erreur en cours de calculs"
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr "Erreur en cours de téléchargement (sens upload)"
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Annulé par l'utilisateur"
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Annulé"
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr "Échec du chargement "
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr "Délai expiré - aucune réponse"
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr "N'a pas eu besoin de"
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr "Valider l'erreur"
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr "abandonné"
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr "Sur"
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr "Succès"
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr "Erreur de calcul"
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr "Résultats redondants"
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr "Aucune réponse"
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr "Nouveau"
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
 msgstr "Téléchargement (download)"
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr "En cours de calculs"
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr "Erreur de calcul"
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr "Téléversement (upload)"
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr "Fait"
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Annulé par l'utilisateur"
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr "Initial"
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr "Pas nécessaire"
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr "Erreur d'unité de travail (WU) - contrôle abandonné"
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr "Vérifié, mais encore aucun consensus déterminé"
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr "La tâche a été déclarée trop tardivement pour être validée"
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr "Impossible d'envoyer les résultats"
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr "Trop d'erreurs (peut être un bug)"
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr "Trop de résultats (peut être non déterministe)"
 
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr "Trop de résultats totaux"
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr "Unité de travail (WU) annulée"
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Résultats canoniques manquants"
+
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr "Erreur non reconnue : %1"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr "Nom de tâche"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr "cliquer pour voir les détails"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr "Afficher les ID"
 
-#: ../inc/result.inc:354
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr "Afficher les noms"
 
-#: ../inc/result.inc:357
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr "Tâche"
 
-#: ../inc/result.inc:360
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr "Unité de travail (WU)"
 
-#: ../inc/result.inc:369
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr "Ordinateur"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr "Envoyé"
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr "Délai reporté<br/>ou date limite"
 
-#: ../inc/result.inc:374
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr "explication"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr "État"
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr "Temps de fonctionnement<br />(sec)"
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr "Temps de CPU<br />(sec)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr "Crédit"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr "Application"
 
-#: ../inc/result.inc:629
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr "Unité de travail (WU)"
 
-#: ../inc/result.inc:632
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Date limite de rapport"
+
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr "Reçu"
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr "État du serveur"
 
-#: ../inc/result.inc:634
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr "Résultats"
 
-#: ../inc/result.inc:635
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr "État du client"
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr "État à la sortie"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Date limite de rapport"
-
-#: ../inc/result.inc:639
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr "Temps de fonctionnement"
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr "Temps de CPU"
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr "Valider l'état"
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "FLOPS maximum de l'appareil"
+
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr "Version de l'application"
 
-#: ../inc/result.inc:656
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr "Fichiers sortants"
 
-#: ../inc/result.inc:659
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr "Stderr output"
 
-#: ../inc/result.inc:706
+#: html/inc/result.inc:795
 msgid "State"
 msgstr "État"
 
-#: ../inc/result.inc:747
+#: html/inc/result.inc:836
 msgid "Task name:"
 msgstr "Nom de la tâche:"
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr "Critères de recherche (un ou plus)"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr "Mots clefs"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-"Trouver des équipes dont le nom ou la description contiennent ces mots clefs"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Pays"
+msgstr "Trouver des équipes dont le nom ou la description contiennent ces mots clefs"
 
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr "Type d'équipe"
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr "Ne montrer que les équipes actives"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr "Recherche"
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-"Vous l'avez requis, et la date de limite de réponse du fondateur est passée."
+msgstr "Vous l'avez requis, et la date de limite de réponse du fondateur est passée."
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr "Finaliser le transfert du compte fondateur"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr "Vous l'avez requis"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr "la date limite de réponse du fondateur est %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr "Aucun(e)"
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr "Initier la requête"
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr "Différé(e)"
 
-#: ../inc/team.inc:87
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr "Info équipe"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
 msgstr "Description"
 
-#: ../inc/team.inc:97
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr "Site web"
 
-#: ../inc/team.inc:120
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr "Statistiques inter-projets"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr "Type"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr "Forum"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr "Sujets"
 
-#: ../inc/team.inc:136
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr "Rejoindre cette équipe"
 
-# Verifier si le OK to email est traduisible ou pas
-#: ../inc/team.inc:137
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"Note : si 'OK to email' est choisi dans vos préférences de projets, le fait "
-"de rejoindre une équipe, donnera accès à votre adresse email à son "
-"fondateur."
+msgstr "Note : si 'OK to email' est choisi dans vos préférences de projets, le fait de rejoindre une équipe, donnera accès à votre adresse email à son fondateur."
 
-#: ../inc/team.inc:140
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr "N'accepte pas de nouveaux membres"
 
-#: ../inc/team.inc:147
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr "Changement de fondateur demandé"
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr "Répondre par %1"
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr "Changement de fondateur de l'équipe"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr "Membres"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr "Fondateur"
 
-#: ../inc/team.inc:169
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr "Administrateurs"
 
-#: ../inc/team.inc:184
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr "Nouveaux membres de la veille"
 
-#: ../inc/team.inc:185
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr "Membres totaux"
 
-# vue ?
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr "voir"
 
-#: ../inc/team.inc:186
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr "Membres actifs"
 
-#: ../inc/team.inc:187
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr "Membres avec du crédit"
 
-#: ../inc/team.inc:256
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr "Administrateur"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr "%1 précédent"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr "Prochains %1"
 
-#: ../inc/team.inc:289
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr "Pas de telle équipe."
 
-#: ../inc/team.inc:302
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr "Cette opération requiert d'être fondateur."
 
-#: ../inc/team.inc:326
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr "Cette opération requiert les privilèges d'administrateur de l'équipe"
 
-#: ../inc/team.inc:422
+#: html/inc/team.inc:434
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"ATTENTION : ceci est une équipe regroupant tout BOINC. Si vous faites des "
-"modifications ici, elles seront écrasées rapidement. A la place, éditez %"
-"1l'équipe globale BOINC%2."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "ATTENTION : ceci est une équipe regroupant tout BOINC. Si vous faites des modifications ici, elles seront écrasées rapidement. A la place, éditez %1l'équipe globale BOINC%2."
 
-#: ../inc/team.inc:428
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Confidentialité%2: si vous créez une équipe, vos préférences (partage de "
-"ressources, préférences graphiques) deviendront publiques."
+msgstr "%1Confidentialité%2: si vous créez une équipe, vos préférences (partage de ressources, préférences graphiques) deviendront publiques."
 
-#: ../inc/team.inc:432
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr "Nom de l'équipe, version texte"
 
-#: ../inc/team.inc:433
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr "Ne pas utiliser de balises HTML."
 
-#: ../inc/team.inc:436
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr "Nom de l'équipe, version HTML"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr "Vous pouvez utiliser %1certaines balises HTML%2."
 
-#: ../inc/team.inc:439
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr "Si vous ne connaissez pas HTML, laissez cette zone vide."
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr "URL de l'équipe si disponible"
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "without \"http://\""
 msgstr "sans \"http://\""
 
-#: ../inc/team.inc:443
+#: html/inc/team.inc:455
 msgid "This URL will be linked to from the team's page on this site."
 msgstr "La page de l'équipe sur ce site pointera sur cette URL."
 
-#: ../inc/team.inc:446
+#: html/inc/team.inc:458
 msgid "Description of team"
 msgstr "Description de l'équipe"
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:474
 msgid "Accept new members?"
 msgstr "Accepte des nouveaux membres ?"
 
-#: ../inc/uotd.inc:28
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Entreprise"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Ecole primaire"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Enseignement secondaire"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Université"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Université ou département"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Agence gouvernementale"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "Association caritative"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "National"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Local/régional"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Type d'ordinateur"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Social/politique/religieux"
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr "Profil utilisateur"
 
-#: ../inc/user.inc:119
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr "Projets auxquels vous participez"
 
-#: ../inc/user.inc:121
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr "Projets auxquels %1 participe"
 
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projet"
-
-#: ../inc/user.inc:125
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr "Cliquer pour voir la page utilisateur"
 
-#: ../inc/user.inc:125
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr "Depuis"
 
-#: ../inc/user.inc:148
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr "Calculs et crédits"
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr "Ordinateurs de ce compte"
 
-# vue ?
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr "Voir"
 
-#: ../inc/user.inc:161
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr "Identifiant inter-projets"
 
-#: ../inc/user.inc:162
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr "Statistiques inter-projets"
 
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Compte"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr "Equipe"
 
-#: ../inc/user.inc:167
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr "Inter-projets"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../inc/user.inc:169
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
 msgstr "Statistiques sur votre téléphone mobile"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Type de notification inconnue: %1"
-
-#: ../inc/user.inc:198
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr "Informations de compte"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr "Adresse email"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr "URL"
 
-#: ../inc/user.inc:206
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr "Code postal"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr "%1 membre depuis"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr "Changer"
 
-#: ../inc/user.inc:209
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr "adresse email"
 
-#: ../inc/user.inc:210
+#: html/inc/user.inc:229
 msgid "password"
 msgstr "mot de passe"
 
-#: ../inc/user.inc:211
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr "autres informations"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr "Identifiant utilisateur"
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr "Utilisé par les fonctionnalités de communauté"
 
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr "Clés de compte"
 
-#: ../inc/user.inc:221
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr "Préférences"
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
 msgstr "Quand et comment BOINC utilise votre ordinateur"
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr "Préférences de calcul"
 
-#: ../inc/user.inc:228
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr "Forums et messages privés"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "Préférences de communauté"
 
-#: ../inc/user.inc:232
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr "Préférences pour ce projet"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr "Préférences de %1"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Communauté"
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Consulter le profil de %1"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Supprimer"
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Profil"
 
-#: ../inc/user.inc:245
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr "Créer"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr "%1 messages"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "Notifications"
 
-#: ../inc/user.inc:269
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr "Quitter l'équipe"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr "Administrer"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr "(demande de changement de fondateur en cours)"
 
-#: ../inc/user.inc:279
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr "Membre de l'équipe"
 
-#: ../inc/user.inc:281
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr "trouver une équipe"
 
-#: ../inc/user.inc:292
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr "Fondateur mais non membre de"
 
-#: ../inc/user.inc:298
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr "Trouver des amis"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
-msgstr "Amis"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Ordinateurs"
+msgstr "Amis"
 
-#: ../inc/user.inc:338
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr "Donateur"
 
-#: ../inc/user.inc:378
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr "Contacter"
 
-#: ../inc/user.inc:381
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr "Cette personne est un(e) ami(e)"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr "Annuler l'amitié"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr "Requête en cours"
 
-#: ../inc/user.inc:387
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr "Ajouter en tant qu'ami(e)"
 
-#: ../inc/user.inc:446
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr "le nom d'utilisateur ne peut contenir d'espace au début ou à la fin"
 
-#: ../inc/user.inc:450
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr "le nom d'utilisateur ne doit pas être vide"
 
-#: ../inc/user.inc:454
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr "le nom d'utilisateur ne peut pas contenir de balises HTML"
 
-#: ../inc/util.inc:131
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr "déconnexion"
 
-#: ../inc/util.inc:133
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr "connexion"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Connexion"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr "Créer un compte"
 
-#: ../inc/util.inc:206
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr "État du serveur"
 
-#: ../inc/util.inc:248
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr ""
-"Une erreur de base de données s'est produite durant le traitement de votre "
-"demande ; veuillez réessayer ultérieurement."
+msgstr "Une erreur de base de données s'est produite durant le traitement de votre demande ; veuillez réessayer ultérieurement."
 
-#: ../inc/util.inc:257
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr "Impossible de traiter la requête"
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr "heures"
 
-#: ../inc/util.inc:280
+#: html/inc/util.inc:345
 msgid "min"
 msgstr "min"
 
-#: ../inc/util.inc:283
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr "sec"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Expiration du délai. Veuillez cliquer Retour, rafraîchissez la page et "
-"réessayez."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Consulter le profil de %1"
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Expiration du délai. Veuillez cliquer Retour, rafraîchissez la page et réessayez."
 
-#: ../inc/util.inc:569
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
 msgstr "Utiliser les balises BBCode pour mettre votre texte en forme"
 
-#: ../inc/util.inc:796
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr "Le projet est arrêté pour cause de maintenance."
 
-#: ../inc/util.inc:799
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 est temporairement arrêté pour cause de maintenance. Veuillez réessayer "
-"ultérieurement."
+msgstr "%1 est temporairement arrêté pour cause de maintenance. Veuillez réessayer ultérieurement."
 
-#: ../inc/util.inc:817
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
-msgstr ""
-"Impossible de se connecter à la base de données - veuillez réessayer "
-"ultérieurement."
+msgstr "Impossible de se connecter à la base de données - veuillez réessayer ultérieurement."
 
-#: ../inc/util.inc:821
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
-msgstr ""
-"Impossible d'interroger la base de données - veuillez réessayer "
-"ultérieurement"
+msgstr "Impossible d'interroger la base de données - veuillez réessayer ultérieurement"
+
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "caractères restants"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr "Rester connecté sur cet ordinateur"
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Terminer le paramétrage du compte"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Vous identifie sur notre site web. Utilisez votre nom réel ou un pseudonyme."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Le cas échéant, choisissez le pays que vous représenteriez."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Code postal"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Facultatif"
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "Vous devez fournir un nom pour votre compte."
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
 msgstr "Les balises HTML ne sont pas autorisées dans le nom."
 
-#: ../user/add_venue.php:81
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Terminer le paramétrage du compte"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Modifier les préférences de %1"
+
+#: html/user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "Ajouter %1 préférences pour %2"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Applications"
-
-#: ../user/apps.php:33
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 dispose actuellement des applications suivantes. Lorsque vous participez "
-"à %1, du travail pour une de ces applications ou plus sera attribué à votre "
-"ordinateur. La version courante de l'application sera téléchargée par votre "
-"ordinateur. Tout se passe automatiquement, vous n'avez rien à faire."
+msgstr "%1 dispose actuellement des applications suivantes. Lorsque vous participez à %1, du travail pour une de ces applications ou plus sera attribué à votre ordinateur. La version courante de l'application sera téléchargée par votre ordinateur. Tout se passe automatiquement, vous n'avez rien à faire."
 
-#: ../user/apps.php:50
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr "Plateforme"
 
-#: ../user/apps.php:51
+#: html/user/apps.php:56
 msgid "Version"
 msgstr "Version"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Date d'installation"
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Calcul moyen"
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr "Balises BBCode"
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"Les balises BBCode vous permettent de formater le texte de votre profil et "
-"les messages publiés.\n"
-"C'est similaire au HTML, mais en plus simple. Les balises commencent par un "
-"[ (là où vous\n"
-"auriez dû utiliser %1 en HTML) et se terminent par ] (où vous auriez dû "
-"utiliser %2 \n"
-"en HTML)."
-
-#: ../user/bbcode.php:31
+msgstr "Les balises BBCode vous permettent de formater le texte de votre profil et les messages publiés.\nC'est similaire au HTML, mais en plus simple. Les balises commencent par un [ (là où vous\nauriez dû utiliser %1 en HTML) et se terminent par ] (où vous auriez dû utiliser %2 \nen HTML)."
+
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr "Exemples"
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr "Gras"
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr "Italique"
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr "Souligné"
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Barré"
+
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr "Exposant"
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr "Texte long"
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr "Texte en rouge"
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr "Lien vers le site Web"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr "Texte cité"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "utiliser pour citer des blocs de texte"
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr "utiliser pour afficher une image"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "Extrait de code ici"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr "utiliser pour afficher du code"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "Texte pré-formaté"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr "utiliser pour afficher du texte pré-formaté (habituellement monospace)"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr "Objet 1"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr "Objet 2"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr "Objet 2"
 
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "utiliser pour renvoyer sur la gestion de tickets sur le site BOINCE"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "utiliser pour renvoyer sur le wiki Trac sur le site BOINC"
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "Lien vers une \"issue\" sur le dépôt GitHub de BOINC"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-"utiliser pour renvoyer sur SVN gestion des changements sur le site BOINC"
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "Lien vers une page Wiki sur le dépôt GitHub de BOINC"
 
-#: ../user/bbcode.php:53
+#: html/user/bbcode.php:55
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Si vous ne fermez pas une balise ou ne spécifiez pas correctement un "
-"paramètre, \n"
-"le texte même de la balise sera affiché et non le texte formaté."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Participants"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Faire le travail"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Votre compte"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "afficher des statistiques, modifier les préférences"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Equipes"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "créer ou rejoindre une équipe"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Utilisateur du jour"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "État du serveur"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profils"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Recherche d'utilisateur"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Statistiques"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Top des participants"
+msgstr "Si vous ne fermez pas une balise ou ne spécifiez pas correctement un paramètre, \nle texte même de la balise sera affiché et non le texte formaté."
 
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Top des ordinateurs"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Top des équipes"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Meilleurs modèles GPU"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Langues"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Lisez nos règles et lignes de conduite"
-
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr "Impossible de créer le compte "
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-"Cliquer sur le bouton <b>Retour</b> de votre navigateur pour essayer à "
-"nouveau."
+msgstr "Cliquer sur le bouton <b>Retour</b> de votre navigateur pour essayer à nouveau."
 
-#: ../user/create_account_action.php:47
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "Votre réponse ReCaptcha est incorrecte.  Veuillez réessayer."
 
-#: ../user/create_account_action.php:70
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr "Vous devez fournir un code d'invitation pour pouvoir créer un compte."
 
-#: ../user/create_account_action.php:73
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr "Le code d'invitation que vous avez fourni n'est pas valide."
 
-#: ../user/create_account_action.php:84
+#: html/user/create_account_action.php:81
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Adresse email invalide : vous devez entrer une adresse valide de type "
-"'nom at domaine'."
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Adresse email invalide : vous devez entrer une adresse valide de type 'nom at domaine'."
 
-#: ../user/create_account_action.php:88
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr "Il y a déjà un compte avec cette adresse mail."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "Les nouveaux mots de passe sont différents "
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "Les mots de passe peuvent seulement contenir des caractères ASCII."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-"Le nouveau mot de passe est trop court : la longueur minimale du mot de "
-"passe est de %1 caractères."
+msgstr "Le nouveau mot de passe est trop court : la longueur minimale du mot de passe est de %1 caractères."
 
-#: ../user/create_account_action.php:127
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr "Impossible de créer le compte "
 
-#: ../user/create_account_form.php:44
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"NOTE: Si vous utilisez le BOINC Manager ne pas utiliser ce formulaire. "
-"Exécutez BOINC, choisissez Ajouter un projet puis entrer votre adresse email "
-"et mot de passe."
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "NOTE: Pour lancer %1 sur votre ordinateur, %2 allez ici %3 au lieu d'utiliser ce formulaire"
 
-#: ../user/create_account_form.php:61
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"Ce compte fera partie de l'équipe %1 et aura les préférences de son "
-"fondateur."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Code d'invitation"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Un code d'invitation valide est requis pour créer un compte."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Adresse email"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Doit être une adresse valide de type 'nom at domaine'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Mot de passe"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "%1 caractères au moins"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Confirmation du mot de passe"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Veuillez saisir les mots affichés sur l'image."
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Création de compte"
+msgstr "Ce compte fera partie de l'équipe %1 et aura les préférences de son fondateur."
 
-#: ../user/create_profile.php:50
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr "Image"
 
-#: ../user/create_profile.php:64
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1 Votre image de profil s'affiche à gauche."
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:69
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Pour la remplacer, cliquez sur le bouton \"Parcourir\" et sélectionnez un "
-"fichier JPEG ou PNG (%1 ou moins)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Pour la remplacer, cliquez sur le bouton \"Parcourir\" et sélectionnez un fichier JPEG ou PNG (%1 ou moins)."
 
-#: ../user/create_profile.php:69
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr "Cochez cette case pour la supprimer de votre profil : "
 
-#: ../user/create_profile.php:77
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Pour inclure une image, cliquez sur le bouton \"Parcourir\" et sélectionnez un "
-"fichier JPEG ou PNG. Veuillez choisir une image de %1 ou moins."
+msgstr "Pour inclure une image, cliquez sur le bouton \"Parcourir\" et sélectionnez un fichier JPEG ou PNG. Veuillez choisir une image de %1 ou moins."
 
-#: ../user/create_profile.php:89
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr "Langue"
 
-#: ../user/create_profile.php:92
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr "Sélectionnez la langue de votre profil : "
 
-#: ../user/create_profile.php:104
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr "Soumettre le profil"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Veuillez saisir les mots affichés sur l'image."
-
-#: ../user/create_profile.php:115
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr "Création/édition du profil"
 
-#: ../user/create_profile.php:137
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr "Le format de l'image que vous avez envoyé n'est pas supporté."
 
-#: ../user/create_profile.php:166
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
-msgstr ""
-"Votre %1profil%2 vous permet de partager vos opinions et votre vécu avec la "
-"communauté %3."
+msgstr "Votre %1profil%2 vous permet de partager vos opinions et votre vécu avec la communauté %3."
 
-#: ../user/create_profile.php:213
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "Votre réponse ReCaptcha est incorrecte.  Veuillez réessayer."
 
-#: ../user/create_profile.php:222
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Votre première réponse a été marquée comme spam par le système Akismet.  "
-"Veuillez modifier votre texte et réessayer."
+msgstr "Votre première réponse a été marquée comme spam par le système Akismet.  Veuillez modifier votre texte et réessayer."
 
-#: ../user/create_profile.php:230
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Votre deuxième réponse a été marquée comme spam par le système Akismet.  "
-"Veuillez modifier votre texte et réessayer."
+msgstr "Votre deuxième réponse a été marquée comme spam par le système Akismet.  Veuillez modifier votre texte et réessayer."
 
-#: ../user/create_profile.php:246
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr "Votre profil est vide."
 
-#: ../user/create_profile.php:285
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr "Impossible de mettre le profil à jour : erreur de base de données"
 
-#: ../user/create_profile.php:297
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr "Impossible de créer le profil : erreur de base de données"
 
-#: ../user/create_profile.php:302
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr "Profil sauvegardé"
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-"Félicitations ! Votre profil a été créé avec succès dans notre base de "
-"données."
+msgstr "Félicitations ! Votre profil a été créé avec succès dans notre base de données."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Voir votre profil%2"
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Voir votre profil"
 
-#: ../user/create_profile.php:315
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr "Créer un profil"
 
-#: ../user/create_profile.php:343
+#: html/user/create_profile.php:346
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Pour nous protéger du spam, un crédit moyen de %1 ou plus est requis pour "
-"pouvoir créer ou éditer un profil.  Toutes nos excuses pour la gène "
-"occasionnée."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Pour nous protéger du spam, un crédit moyen de %1 ou plus est requis pour pouvoir créer ou éditer un profil.  Toutes nos excuses pour la gène occasionnée."
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr "Impossible de supprimer le compte"
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr "Compte supprimé"
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr "Votre compte a été supprimé."
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr "Confirmer la suppression du compte"
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"Supprimer votre compte va retirer toutes\n"
-"vos informations personnelles de nos serveurs,\n"
-"y compris votre profil et vos messages sur le forum.\n"
-"Aucune tâche ne sera plus envoyée sur aucun\n"
-"ordinateur rattaché à ce compte."
+msgstr "Supprimer votre compte va retirer toutes\nvos informations personnelles de nos serveurs,\ny compris votre profil et vos messages sur le forum.\nAucune tâche ne sera plus envoyée sur aucun\nordinateur rattaché à ce compte."
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Ceci ne peut pas être annulé.\n"
-"Une fois votre compte supprimé, vous ne pouvez plus le récupérer."
+msgstr "Ceci ne peut pas être annulé.\nUne fois votre compte supprimé, vous ne pouvez plus le récupérer."
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "Êtes-vous sûr de vouloir supprimer votre compte ? "
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr "Oui"
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr "Supprimer ce compte"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr "Non"
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr "Ne pas supprimer ce compte"
 
-#: ../user/delete_profile.php:30
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "Impossible de supprimer le profil - veuillez réessayer ultérieurement."
 
-#: ../user/delete_profile.php:33
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "Confirmation de la suppression"
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "Votre profil a été supprimé. "
 
-#: ../user/delete_profile.php:40
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "Confirmation de la suppression du profil"
 
-#: ../user/delete_profile.php:43
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "Êtes-vous sûr ?"
 
-#: ../user/delete_profile.php:44
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"Les profils supprimés ne peuvent plus être récupérés --\n"
-"vous devrez tout recommencer si vous voulez \n"
-"un nouveau profil par la suite."
+msgstr "Les profils supprimés ne peuvent plus être récupérés --\nvous devrez tout recommencer si vous voulez \nun nouveau profil par la suite."
 
-#: ../user/delete_profile.php:48
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"Si vous êtes sûr, cliquez sur 'Oui'\n"
-"pour supprimer votre profil de notre base de données."
+msgstr "Si vous êtes sûr, cliquez sur 'Oui'\npour supprimer votre profil de notre base de données."
 
-#: ../user/delete_profile.php:52
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "Supprimer mon profil"
 
-# ???????
-#: ../user/delete_profile.php:53
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "Ne pas supprimer mon profil"
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr "PayPal - Transaction terminée"
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr "Merci pour votre don !"
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr "Votre don a été enregistré."
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Votre don sera ajouté à la barre de progression après confirmation par "
-"PayPal. "
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "Votre don sera ajouté à la barre de progression après confirmation par PayPal. "
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr "Vous avez annulé votre don."
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr "Ce projet n'accepte pas les dons."
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr "%1 dons"
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"Ce projet accepte les dons via\n"
-"%1."
+msgstr "Ce projet accepte les dons via\n%1."
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -2992,2284 +3088,1995 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"Pour faire un don, remplir le montant que voulez donner dans les champs ci-"
-"dessous.\n"
-"            PayPal accepte diverses devises (Dollars Canadiens, Euros, \n"
-"            Livres Sterling, U.S. Dollars, Yen, Dollars Australiens, Dollars "
-"Néo Zélandais,\n"
-"            Francs Suisses, Dollars de Hong Kong, Dollars de Singapour, \n"
-"            Couronnes Suédoises, Couronnes Danoises, Zloty Polonais, \n"
-"            Couronnes Norvégiennes, Florins Hongrois, Couronnes Tchèques).\n"
-"            Vous pouvez utiliser le convertisseur de devises intégré\n"
-"             (veuillez noter que les taux de conversion sont estimés et que \n"
-"               le montant réel peut légèrement différer)."
-
-#: ../user/donations.php:316
+msgstr "Pour faire un don, remplir le montant que voulez donner dans les champs ci-dessous.\n            PayPal accepte diverses devises (Dollars Canadiens, Euros, \n            Livres Sterling, U.S. Dollars, Yen, Dollars Australiens, Dollars Néo Zélandais,\n            Francs Suisses, Dollars de Hong Kong, Dollars de Singapour, \n            Couronnes Suédoises, Couronnes Danoises, Zloty Polonais, \n            Couronnes Norvégiennes, Florins Hongrois, Couronnes Tchèques).\n             [...]
+
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr "Montant que vous souhaitez donner"
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr "Valeur estimée en"
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr "Donation anonyme"
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Choisissez cette option si vous ne voulez pas que le nom et numéro de votre "
-"compte soient affichés dans\n"
-"la liste des donateurs. <br>Si cette option n'est pas cochée vous serez "
-"enregistré comme utilisateur n° %1"
+msgstr "Choisissez cette option si vous ne voulez pas que le nom et numéro de votre compte soient affichés dans\nla liste des donateurs. <br>Si cette option n'est pas cochée vous serez enregistré comme utilisateur n° %1"
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Pour associer votre don à votre compte utilisateur, veuillez vous connecter."
+msgstr "Pour associer votre don à votre compte utilisateur, veuillez vous connecter."
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr "Exécuter"
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr "Les dons sont acceptés via"
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr "Télécharger des logiciels supplémentaires liés à BOINC"
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr "Vous pouvez télécharger des applications dans plusieurs catégories."
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Ces applications ne sont pas supportées par %1 et vous les utilisez à vos "
-"risques."
+msgstr "Ces applications ne sont pas supportées par %1 et vous les utilisez à vos risques."
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"Nous ne fournissons pas d'instructions pour installer ces applications.\n"
-"Toutefois, l'auteur peut avoir fourni de l'aide sur son installation ou sa "
-"suppression. \n"
-"Si ce n'est pas suffisant, merci de contacter l'auteur."
+msgstr "Nous ne fournissons pas d'instructions pour installer ces applications.\nToutefois, l'auteur peut avoir fourni de l'aide sur son installation ou sa suppression. \nSi ce n'est pas suffisant, merci de contacter l'auteur."
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
 msgstr "Instructions pour l'installation et le fonctionnement de BOINC %1ici%2."
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr "La gestion de cette liste est centralisée sur %1le site web BOINC%2."
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr "Modifie l'adresse email de votre compte"
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr "La nouvelle adresse email %1 est invalide."
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-"La nouvelle adresse email est la même que l'actuelle. Rien n'a été changé."
+msgstr "La nouvelle adresse email est la même que l'actuelle. Rien n'a été changé."
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr "Il existe déjà un compte avec cette adresse email."
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr "Mot de passe invalide"
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr "L'adresse e-mail de votre compte est maintenant %1."
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr "Veuillez %1valider l'adresse e-mail%2."
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
-msgstr ""
-"Impossible de mettre à jour la base de données - veuillez réessayer "
-"ultérieurement"
+msgstr "Impossible de mettre à jour la base de données - veuillez réessayer ultérieurement"
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr "Modifier l'adresse email"
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr "Modifie l'adresse email de votre compte"
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr "Nouvelle adresse email"
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr "Doit être une adresse valide de type 'name at domain'"
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr "Aucun mot de passe ?"
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr "Confirmer la réinitialisation"
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Cette action va supprimer tout changement fait dans vos préférence de "
-"communauté. Pour annuler cliquer sur le bouton Retour de votre navigateur."
+msgstr "Cette action va supprimer tout changement fait dans vos préférence de communauté. Pour annuler cliquer sur le bouton Retour de votre navigateur."
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "Réinitialiser les préférences"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-"Erreur : mauvais format de fichier, seuls les PNG et les JPEG sont "
-"supportés."
+msgstr "Erreur : mauvais format de fichier, seuls les PNG et les JPEG sont supportés."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr "Votre signature est trop longue, maximum 250 caractères."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Utilisateur inexistant: %1"
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Utilisateur inexistant:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"Comment devons vous vous notifier de nouveaux messages privés, demandes "
-"d'amitié, messages publiés dans vos sujets suivis, et autres évènements ?"
+msgstr "Comment devons vous vous notifier de nouveaux messages privés, demandes d'amitié, messages publiés dans vos sujets suivis, et autres évènements ?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "Sur ma page de compte (pas de mail)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "Immédiatement, par email"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "Dans un mail récapitulatif journalier"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "Identité sur le Forum"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "Avatar"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "Une image qui vous représente sur le forum."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "Format: JPG ou PNG. Taille : au plus 4 Ko, 100x100 pixels."
 
-#: ../user/edit_forum_preferences_form.php:80
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "Ne pas utiliser d'avatar."
 
-#: ../user/edit_forum_preferences_form.php:82
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "Utiliser un Avatar Global fourni par %1"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "Utiliser cet avatar téléchargé :"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "Prévisualisation de l'avatar"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "Votre avatar sera vu comme ceci"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "Signature pour les messages sur le forum"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Essayez divers %1services gratuits%2<br> \n"
-"offrant des images de signature dynamique<br> \n"
-"montrant vos statistiques, des nouvelles des projets, etc."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "caractères restants"
+msgstr "Essayez divers %1services gratuits%2<br> \noffrant des images de signature dynamique<br> \nmontrant vos statistiques, des nouvelles des projets, etc."
 
-#: ../user/edit_forum_preferences_form.php:105
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "Attacher la signature par défaut"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "Prévisualiser la signature"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "Voici à quoi ressemblera votre signature sur les forums"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "Affichage de message"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "Ce qu'il faut afficher"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "Cacher les images d'avatars"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "Cacher les signatures"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "Montrer les images sous forme de liens"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "Ouvrir les liens dans une nouvelle fenêtre / onglet"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "Mettre en avant les utilisateurs spéciaux"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "Affichez ce nombre de messages par page"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "Comment trier"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "Sujets:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "Messages:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "Aller au premier nouveau message dans le sujet automatiquement"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "Ne pas déplacer les messages épinglés en haut"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "Filtre de messages"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "Utilisateurs filtrés"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Ignorer les messages du forum et les messages privés de ces utilisateurs."
+msgstr "Ignorer les messages du forum et les messages privés de ces utilisateurs."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "ID Utilisateur (par exemple : 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr "Ajouter un utilisateur au filtre"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "Cliquer ici pour mettre à jour les préférences"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "Réinitialiser"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: html/user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-"Ou cliquer ici pour réinitialiser les préférences avec les valeurs par "
-"défaut"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Clé de compte invalide"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Aucun compte avec cet adresse email n'a été trouvé"
+msgstr "Ou cliquer ici pour réinitialiser les préférences avec les valeurs par défaut"
 
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Mot de passe incorrect"
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Impossible de mettre à jour votre mot de passe à cause d'un problème de base de données - veuillez réessayer ultérieurement."
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "Modifier le mot de passe"
 
-#: ../user/edit_passwd_action.php:67
+#: html/user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "Votre mot de passe a été changé."
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Impossible de mettre à jour votre mot de passe à cause d'un problème de base "
-"de données - veuillez réessayer ultérieurement."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Vous pouvez vous identifier en utilisant soit"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "votre adresse email et l'ancien mot de passe"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "Clef de compte"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Mot de passe actuel"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>OU</b> : clef de compte"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Recevoir la clef de compte par email"
-
-#: ../user/edit_passwd_form.php:53
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "Nouveau mot de passe"
 
-#: ../user/edit_passwd_form.php:54
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "Nouveau mot de passe (vérification)"
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr "Les balises HTML ne sont pas autorisées dans le nom."
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr "Vous devez fournir un nom pour votre compte."
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr "Impossible de mettre à jour les informations de l'utilisateur."
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr "Éditer les informations de compte"
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr "Nom %1 nom réel ou surnom%2"
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr "URL %1 de votre page web; optionnel%2"
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr "Code postal %1 optionnel%2"
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr "Mettre à jour les informations"
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr "États du serveur"
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"L'état de serveur d'une tâche indique si la tâche a été envoyée à un "
-"ordinateur, et si l'ordinateur l'a terminé. Les valeurs possibles sont :"
+msgstr "L'état de serveur d'une tâche indique si la tâche a été envoyée à un ordinateur, et si l'ordinateur l'a terminé. Les valeurs possibles sont :"
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr ""
-"Cette tâche n'est pas prête à être envoyée (par exemple parce que ses "
-"fichiers d'entrée ne sont pas disponibles)"
+msgstr "Cette tâche n'est pas prête à être envoyée (par exemple parce que ses fichiers d'entrée ne sont pas disponibles)"
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr "Cette tâche est prête à être envoyée mais ne l'a pas encore été."
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr "En cours"
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr "Cette tâche a été envoyée ; en attente de finalisation."
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
-msgstr ""
-"Cette tâche a été envoyée à un ordinateur et soit sa durée maximale de "
-"calcul a été dépassée, soit l'ordinateur a signalé sa finalisation."
+msgstr "Cette tâche a été envoyée à un ordinateur et soit sa durée maximale de calcul a été dépassée, soit l'ordinateur a signalé sa finalisation."
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr "Résultats"
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
-msgstr ""
-"Un <b>résultat</b> de tâche est défini si son statut de serveur est "
-"<b>terminé</b>. Les valeurs possibles sont :"
+msgstr "Un <b>résultat</b> de tâche est défini si son statut de serveur est <b>terminé</b>. Les valeurs possibles sont :"
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
-msgstr ""
-"La tâche a été envoyée à un ordinateur mais il ne l'a pas terminé ni renvoyé "
-"les résultats."
+msgstr "La tâche a été envoyée à un ordinateur mais il ne l'a pas terminé ni renvoyé les résultats."
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
-msgstr ""
-"Un ordinateur a terminé et envoyé les résultats de la tâche avec succès."
+msgstr "Un ordinateur a terminé et envoyé les résultats de la tâche avec succès."
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
-msgstr ""
-"Le serveur n'a pas pu envoyer la tâche à un ordinateur (peut-être car les "
-"besoins en ressources étaient trop important)"
+msgstr "Le serveur n'a pas pu envoyer la tâche à un ordinateur (peut-être car les besoins en ressources étaient trop important)"
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr "Erreur du client"
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
 msgstr "La tâche a été envoyée à un ordinateur et une erreur est survenue."
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr ""
-"La tâche a été envoyée à un ordinateur et aucune réponse n'a été reçue dans "
-"la limite de durée prévue."
+msgstr "La tâche a été envoyée à un ordinateur et aucune réponse n'a été reçue dans la limite de durée prévue."
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"La tâche n'a pas été envoyée à un ordinateur car suffisamment de tâches ont "
-"été terminées pour cette unité de travail."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "La tâche n'a pas été envoyée à un ordinateur car suffisamment de tâches ont été terminées pour cette unité de travail."
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
-msgstr ""
-"La tâche a été renvoyée mais n'a pas pu être validée, généralement car les "
-"fichiers en sortie ont été perdus sur le serveur."
+msgstr "La tâche a été renvoyée mais n'a pas pu être validée, généralement car les fichiers en sortie ont été perdus sur le serveur."
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr "États du client"
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"<b>L'état de client</b> d'un résultat indique l'étape du calcul à laquelle "
-"une erreur est survenue."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "<b>L'état de client</b> d'un résultat indique l'étape du calcul à laquelle une erreur est survenue."
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr "L'ordinateur n'a pas encore terminé la tâche."
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr "L'ordinateur a terminé la tâche avec succès."
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
-msgstr ""
-"L'ordinateur n'a pas pu télécharger l'application les fichiers d'entrée."
+msgstr "L'ordinateur n'a pas pu télécharger l'application les fichiers d'entrée."
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr "Une erreur est survenue durant le calcul."
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr "L'ordinateur n'a pas pu envoyer les fichiers de résultat."
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr "Temps écoulé et date limite"
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr ""
-"Le champ <b>Temps écoulé ou date limite</b>  d'une tâche dépend de si elle a "
-"déjà été renvoyée:"
+msgstr "Le champ <b>Temps écoulé ou date limite</b>  d'une tâche dépend de si elle a déjà été renvoyée:"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr "Déjà renvoyé"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr "La date et l'heure à laquelle elle a été renvoyée"
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr "Pas encore renvoyée, date limite dans le futur"
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr "Date limite, en vert"
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr "Pas encore renvoyée, date limite dans le passé"
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr "Date limite, en rouge"
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr "Champ inconnu"
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Prévisualisation de l'email"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Votre email apparaîtra comme suit :"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Envoyer l'email "
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Utilisez la bouton Retour de votre navigateur pour revenir au formulaire de "
-"message"
-
-#: ../user/ffmail_action.php:63
+#: html/user/ffmail_action.php:28
 msgid "Sending emails"
 msgstr "Envoi d'emails en cours"
 
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "email envoyé avec succès à %1"
-
-#: ../user/ffmail_action.php:86
+#: html/user/ffmail_action.php:43
 msgid "failed to send email to %1: %2"
 msgstr "échec de l'envoi de l'email de %1: %2"
 
-#: ../user/ffmail_action.php:92
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "échec de l'envoi de l'email vers %1"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "email envoyé avec succès à %1"
+
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr "Merci d'avoir parlé à vos amis de %1"
 
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Vous avez omis d'entrer les noms et/ou adresses emails de vos amis; merci de "
-"%1revenir sur le formulaire%2 pour les saisir."
-
-#: ../user/ffmail_form.php:30
+#: html/user/ffmail_action.php:57
 msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-"Ce projet n'a pas créé de message email - Veuillez notifier ses "
-"administrateurs"
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Vous avez omis d'entrer une adresse email; merci de %1revenir sur le formulaire%2 pour les saisir."
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr "Parlez à vos amis de %1"
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Aidez nous en parlant de %1 à vos amis, collègues et famille."
-
-#: ../user/ffmail_form.php:39
+#: html/user/ffmail_form.php:49
 msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Remplissez le formulaire avec les noms et adresses emails des personnes qui "
-"pourraient être intéressées par %1. Nous leur enverrons un email en votre "
-"nom, et vous pouvez ajouter votre propre message si vous le souhaitez."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Votre nom:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Votre adresse email:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Nom des amis:"
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Utilisez ce formulaire pour envoyer un email aux personnes qui pourraient être intéressés par %1."
 
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Adresses email des amis:"
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "A:"
 
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Ajoutez un message optionnel ici : "
-
-#: ../user/ffmail_form.php:59
+#: html/user/ffmail_form.php:59
 msgid "Send"
 msgstr "Envoyer"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
 msgid "You are not authorized to banish users."
 msgstr "Vous n'êtes pas autorisé à bannir des utilisateurs."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Vous devez choisir une action ..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Obsénité"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Courriel enflammé/haineux"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Requête utilisateur"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "Vote de bannissement "
 
-#: ../user/forum_banishment_vote.php:50
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "Aucun utilisateur trouvé avec cet ID."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr "Cet utilisateur est déjà banni."
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"Etes vous sûr que vous voulez bannir %1?<br/> Ceci empêchera %1 de publier "
-"pour une période donnée.<br/> Ceci ne doit être fait que si %1 a "
-"explicitement et de façon continue eu une attitude trollesque."
+msgstr "Etes vous sûr que vous voulez bannir %1?<br/> Ceci empêchera %1 de publier pour une période donnée.<br/> Ceci ne doit être fait que si %1 a explicitement et de façon continue eu une attitude trollesque."
 
-#: ../user/forum_banishment_vote.php:61
+#: html/user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Choisissez une catégorie et éventuellement une description plus longue sur "
-"les raisons pour lesquelles cet utilisateur devrait être banni. "
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Choisissez une catégorie et éventuellement une description plus longue sur les raisons pour lesquelles cet utilisateur devrait être banni. "
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "Catégorie"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Obsénité"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Courriel enflammé/haineux"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Requête utilisateur"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Autre"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "Raison"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "Envoyé si non vide"
 
-#: ../user/forum_banishment_vote.php:74
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr "Continuez le vote"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Vous devez choisir une action ..."
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr ""
-"Vous ne pouvez plus éditer ce message.<br/>Les messages peuvent être édités "
-"seulement %1 minutes après qu'ils ont été créés."
+msgstr "Vous ne pouvez plus éditer ce message.<br/>Les messages peuvent être édités seulement %1 minutes après qu'ils ont été créés."
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "Vous n'êtes pas autorisé à éditer ce message."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Forum"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Editer le message"
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr "Éditer votre message"
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr "Titre"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr "Ajouter ma signature à ce message"
 
-#: ../user/forum_forum.php:41
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "Non visible pour vous"
 
-#: ../user/forum_forum.php:80
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "Forum d'équipe pour %1"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr "Nouveau sujet"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr "Ajouter un nouveau sujet à ce forum"
 
-#: ../user/forum_forum.php:116
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "Ce forum est également disponible en %sflux RSS%s"
 
-#: ../user/forum_forum.php:174
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr "Ce sujet est masqué"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr "Ce sujet est épinglé et verrouillé et vous ne l'avez pas encore lu"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr "épinglé/verrouillé/non lu"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "Ce sujet est épinglé et vous ne l'avez pas encore lu"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr "épinglé/non lu"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "Vous n'avez pas encore lu ce sujet, et il est verrouillé"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr "non lu/verrouillé "
 
-#: ../user/forum_forum.php:186
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr "Vous n'avez pas encore lu ce sujet"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr "Ce sujet est épinglé et verrouillé"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr "épinglé/verrouillé"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr "Ce sujet est épinglé"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr "épinglé"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr "Ce sujet est verrouillé"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr "verrouillé"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr "Vous lisez ce sujet"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr "lu"
 
-#: ../user/forum_help_desk.php:27
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "Questions et Réponses"
 
-#: ../user/forum_help_desk.php:30
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Parlez en direct via Skype avec un volontaire, dans n'importe laquelle des "
-"langues suivantes. Allez à %1l'Aide en Ligne BOINC%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Parlez en direct via Skype avec un volontaire, dans n'importe laquelle des langues suivantes. Allez à %1l'Aide en Ligne BOINC%2."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr "Sujet"
 
-#: ../user/forum_help_desk.php:45
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr "Questions"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Discussions entres les membres de %1"
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
+msgid "Discussion among members of %1"
+msgstr "Discussions entres les membres de %1"
+
+#: html/user/forum_index.php:80
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "Si vous avez une question ou un problème, veuillez utiliser la section %1Questions & Réponses%2 des forums."
+
+#: html/user/forum_index.php:125
+msgid "Subscribed threads"
+msgstr "Sujets souscrits"
+
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Vous n'êtes pas autorisé à modérer ce message."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Impossible de déplacer dans un type de catégorie différente"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Impossible de déplacer dans une catégorie différente"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Non autorisé à bannir des utilisateurs"
 
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Forums"
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Bannissement"
 
-# On est sûr que c'est aussi traduit dans les forums ?
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Si vous avez une question ou un problème, veuillez utiliser la section %"
-"1Questions & Réponses%2 des forums."
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "L'utilisateur %1 a été banni"
 
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Sujets souscrits"
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Echec de l'action : problème de base de données probable"
 
-#: ../user/forum_moderate_post.php:43
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "Modérer le message"
 
-#: ../user/forum_moderate_post.php:52
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "Masquer le message"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "Spam commercial"
 
-#: ../user/forum_moderate_post.php:58
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr "Message dupliqué"
 
-#: ../user/forum_moderate_post.php:63
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr "Déplacer le message"
 
-#: ../user/forum_moderate_post.php:65
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr "ID du sujet de destination:"
 
-#: ../user/forum_moderate_post.php:78
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr "Bannir l'utilisateur"
 
-#: ../user/forum_moderate_post.php:80
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr "Durée de l'interdiction"
 
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 heures"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 heures"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 heures"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr "1 jour"
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr "1 semaine"
 
-#: ../user/forum_moderate_post.php:84
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr "2 semaines"
 
-#: ../user/forum_moderate_post.php:85
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr "1 mois"
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr "Définitif"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-"Explications optionnelles %1 Ceci est inclus dans le mail à l'utilisateur %2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr "OK"
 
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Vous n'êtes pas autorisé à modérer ce message."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Impossible de déplacer dans un type de catégorie différente"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Impossible de déplacer dans une catégorie différente"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Non autorisé à bannir des utilisateurs"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Bannissement"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "L'utilisateur %1 a été banni"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Echec de l'action : problème de base de données probable"
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Explications optionnelles %1 Ceci est inclus dans le mail à l'utilisateur %2"
 
-#: ../user/forum_moderate_thread.php:33
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "non autorisé"
 
-#: ../user/forum_moderate_thread.php:36
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "Modérer le sujet '%1'"
 
-#: ../user/forum_moderate_thread.php:48
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr ""
-"Choisir la catégorie de motif, ou écrivez une description plus longue sur "
-"les raisons pour lesquelles vous masquez ou verrouillez ce sujet puis "
-"validez."
+msgstr "Choisir la catégorie de motif, ou écrivez une description plus longue sur les raisons pour lesquelles vous masquez ou verrouillez ce sujet puis validez."
 
-#: ../user/forum_moderate_thread.php:72
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "Forum actuel"
 
-#: ../user/forum_moderate_thread.php:73
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "Forum de destination"
 
-#: ../user/forum_moderate_thread.php:77
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "Nouveau titre:"
 
-#: ../user/forum_post.php:40
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr ""
-"Seuls les administrateurs de projets peuvent créer un sujet ici. Cependant "
-"vous pouvez répondre dans des sujets existants."
+msgstr "Seuls les administrateurs de projets peuvent créer un sujet ici. Cependant vous pouvez répondre dans des sujets existants."
 
-#: ../user/forum_post.php:60
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Votre réponse a été marquée comme spam par le système anti-spam Akismet. "
-"Veuillez modifier votre texte et réessayer."
+msgstr "Votre réponse a été marquée comme spam par le système anti-spam Akismet. Veuillez modifier votre texte et réessayer."
 
-#: ../user/forum_post.php:70
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr "Créer une nouvelle discussion"
 
-#: ../user/forum_post.php:100
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr "Créer une nouvelle discussion"
 
-#: ../user/forum_post.php:105
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr "Pensez à ajouter un titre"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "Montrer cette information comme une notification dans le BOINC Manager"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Ne le faire que pour des informations pouvant être intéressantes pour tous "
-"les volontaires."
+msgstr "Ne le faire que pour des informations pouvant être intéressantes pour tous les volontaires."
 
-#: ../user/forum_rate.php:26
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "Noter hors ligne"
 
-#: ../user/forum_rate.php:27
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "Cette fonctionnalité est désactivée temporairement"
 
-#: ../user/forum_rate.php:58
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Vous devez avoir un crédit moyen ou total supérieur pour pouvoir noter un "
-"message."
+msgstr "Vous devez avoir un crédit moyen ou total supérieur pour pouvoir noter un message."
 
-#: ../user/forum_rate.php:62
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "Vous avez déjà noté ce message."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "Retour au sujet"
 
-#: ../user/forum_rate.php:72
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "Saisie enregistrée"
 
-#: ../user/forum_rate.php:73
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "Votre saisie a été enregistrée. Merci de votre aide."
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "Vote enregistré"
 
-#: ../user/forum_rate.php:76
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "Votre note a été enregistrée. Merci de votre participation."
 
-#: ../user/forum_rate.php:80
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "Problème d'envoi de vote"
 
-#: ../user/forum_reply.php:73
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Votre message a été marqué comme spam par le système anti-spam Akismet. "
-"Veuillez modifier votre texte et réessayer."
+msgstr "Votre message a été marqué comme spam par le système anti-spam Akismet. Veuillez modifier votre texte et réessayer."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr "Écrire un message dans la discussion"
 
-#: ../user/forum_reply.php:137
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr "Message:"
 
-#: ../user/forum_reply.php:140
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "répondre au %1Message ID%2:"
 
-#: ../user/forum_reply.php:166
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr "Envoyer la réponse"
 
-#: ../user/forum_reply.php:169
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "Ajouter ma signature à ce message"
 
-#: ../user/forum_report_post.php:45
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"Vous devez avoir un crédit moyen ou total supérieur pour pouvoir signaler ce "
-"message."
+msgstr "Vous devez avoir un crédit moyen ou total supérieur pour pouvoir signaler ce message."
 
-#: ../user/forum_report_post.php:65
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr "Signalement enregistré"
 
-# 92%
-#: ../user/forum_report_post.php:66
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "Votre signalement a été enregistré. Merci de votre participation."
 
-#: ../user/forum_report_post.php:67
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr ""
-"Un modérateur va maintenant regarder votre signalement et décider de ce qui "
-"doit se passer - cela peut prendre du temps, merci d'être patient."
+msgstr "Un modérateur va maintenant regarder votre signalement et décider de ce qui doit se passer - cela peut prendre du temps, merci d'être patient."
 
-#: ../user/forum_report_post.php:71
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr "Signaler un message du forum"
 
-#: ../user/forum_report_post.php:73
+#: html/user/forum_report_post.php:78
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"Avant de signaler de message, songez plutôt à utiliser le système de note "
-"+/-. Si suffisamment d'utilisateurs note négativement un message il finira "
-"par être masqué.<br/>Vous trouverez le système de notation en bas de ce "
-"message."
+msgstr "Avant de signaler de message, songez plutôt à utiliser le système de note +/-. Si suffisamment d'utilisateurs note négativement un message il finira par être masqué.<br/>Vous trouverez le système de notation en bas de ce message."
 
-#: ../user/forum_report_post.php:80
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr "Signaler un message"
 
-#: ../user/forum_report_post.php:81
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Pourquoi trouvez vous ce message insultant : %1Merci d'inclure suffisamment "
-"d'information pour qu'une personne \n"
-"n'ayant pas encore lu le sujet puisse être capable d'identifier rapidement "
-"le problème%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Pourquoi vous trouvez le poste offensant : % 1Veuillez fournir suffisamment de renseignements afin qu’une personne qui n’a pas encore lu la discussion soit rapidement en mesure d’identifier le problème.%2"
 
-#: ../user/forum_report_post.php:90
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr "Signalement non enregistré"
 
-#: ../user/forum_report_post.php:91
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Votre signalement n'a pas pu être enregistré. Merci d'attendre avant "
-"d'essayer de nouveau."
+msgstr "Votre signalement n'a pas pu être enregistré. Merci d'attendre avant d'essayer de nouveau."
 
-#: ../user/forum_report_post.php:92
+#: html/user/forum_report_post.php:106
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Si cela n'est pas une erreur temporaire, merci de le signaler à "
-"l'administrateur du projet."
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Si cela n'est pas une erreur temporaire, merci de le signaler à l'administrateur du projet."
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 flux RSS"
 
-#: ../user/forum_rss.php:42
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "Ce forum est également disponible en flux RSS."
 
-#: ../user/forum_rss.php:43
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr "Options:"
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"N'inclure que les messages pour l'utilisateur ID %1 (valeur par défaut : "
-"tous les utilisateurs)"
+msgstr "N'inclure que les messages pour l'utilisateur ID %1 (valeur par défaut : tous les utilisateurs)"
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-"N'inclure que les messages des %1 derniers jours (valeur par défaut : 30)"
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Tronquer les messages : %1 (n'inclure que les 256 premiers caractères de "
-"chaque message)"
+msgstr "N'inclure que les messages des %1 derniers jours (valeur par défaut : 30)"
 
-#: ../user/forum_rss.php:53
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-"Sujets seulement: %1 (n'inclure que les premiers messages de chaque sujet)"
+msgstr "Sujets seulement: %1 (n'inclure que les premiers messages de chaque sujet)"
+
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Résultats de la recherche sur le forum"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Titres de sujet correspondant à votre requête :"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Messages correspondant à votre requête :"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Désolé, impossible de trouver une correspondance à votre requête. Vous pouvez essayer d'élargir votre recherche en utilisant moins de mots (ou des mots moins spécifiques)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Vous pouvez aussi %1 tenter la même recherche sur Google. %2"
 
-#: ../user/forum_search.php:27
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Exécutez une autre recherche"
+
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr "Recherche sur le forum"
 
-#: ../user/forum_search.php:31
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr "Requête de recherche"
 
-#: ../user/forum_search.php:32
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "Chercher les mots clés:"
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "Les messages contenant tous les mots spécifiés seront affichés"
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "Par exemple : \"Économiseur d'écran figé\""
 
-#: ../user/forum_search.php:36
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "Rechercher par identifiant de l'auteur :"
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "Seuls les messages de cet auteur seront affichés"
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "Par exemple: \"43214\""
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr "Options de recherche"
 
-#: ../user/forum_search.php:42
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr "Limites de recherche"
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "Rechercher au plus ce nombre de jours dans le passé"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 mois"
 
-#: ../user/forum_search.php:52
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr "1 an"
 
-#: ../user/forum_search.php:73
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Forum"
+
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "Afficher uniquement les messages de ce forum"
 
-#: ../user/forum_search.php:84
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr "Trier par"
 
-#: ../user/forum_search.php:88
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr "Démarrer la recherche"
 
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Résultats de la recherche sur le forum"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Titres de sujet correspondant à votre requête :"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Messages correspondant à votre requête :"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Désolé, impossible de trouver une correspondance à votre requête. Vous "
-"pouvez essayer d'élargir votre recherche en utilisant moins de mots (ou des "
-"mots moins spécifiques)."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Vous pouvez aussi %1 tenter la même recherche sur Google. %2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Exécutez une autre recherche"
-
-#: ../user/forum_subscribe.php:46
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "Abonnement réussi"
 
-#: ../user/forum_subscribe.php:49
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
-msgstr ""
-"Vous êtes maintenant abonné à %1. Vous serez notifiés à chaque nouveau "
-"message."
+msgstr "Vous êtes maintenant abonné à %1. Vous serez notifiés à chaque nouveau message."
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "Abonnement échoué"
 
-#: ../user/forum_subscribe.php:52
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Nous ne pouvons pas actuellement vous abonner à %1. Veuillez réessayer plus "
-"tard.."
+msgstr "Nous ne pouvons pas actuellement vous abonner à %1. Veuillez réessayer plus tard.."
 
-#: ../user/forum_subscribe.php:61
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "Désabonnement réussi"
 
-#: ../user/forum_subscribe.php:64
+#: html/user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Vous n'êtes plus abonné à %1. Vous ne recevrez plus de notifications pour ce "
-"sujet."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Vous n'êtes plus abonné à %1. Vous ne recevrez plus de notifications pour ce sujet."
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "Désabonnement échoué"
 
-#: ../user/forum_subscribe.php:67
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Nous ne pouvons pas vous désabonner maintenant de %1. Veuillez réessayer "
-"plus tard."
+msgstr "Nous ne pouvons pas vous désabonner maintenant de %1. Veuillez réessayer plus tard."
 
-#: ../user/forum_subscribe.php:74
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "Action d'abonnement inconnue"
 
-#: ../user/forum_thread.php:61
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "Ce forum vous est invisible."
 
-#: ../user/forum_thread.php:69
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "Ce sujet a été masqué par les modérateurs."
 
-#: ../user/forum_thread.php:128
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "On a répondu à ma question"
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "Cliquer ici si vous avez obtenu une réponse correcte"
 
-#: ../user/forum_thread.php:137
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "J'ai également cette question"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr "Ajouter un message à ce sujet"
 
-#: ../user/forum_thread.php:171
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr "Désinscription"
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "Vous avez souscrit à ce sujet.  Cliquez ici pour vous désinscrire."
 
-#: ../user/forum_thread.php:178
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr "Souscription"
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Cliquez ici pour être averti par email lorsque de nouveaux messages sont "
-"ajoutés à ce sujet"
+msgstr "Cliquez ici pour être averti par email lorsque de nouveaux messages sont ajoutés à ce sujet"
 
-#: ../user/forum_thread.php:190
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr "Démasquer ce sujet"
 
-#: ../user/forum_thread.php:196
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr "Masquer ce sujet"
 
-#: ../user/forum_thread.php:202
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr "Ne plus épingler"
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr "Ne pas mettre ce sujet en évidence"
 
-#: ../user/forum_thread.php:208
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr "Epingler"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Epingler ce sujet"
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Faire apparaître cette discussion toujours en haut du forum"
 
-#: ../user/forum_thread.php:215
+#: html/user/forum_thread.php:219
 msgid "Unlock"
 msgstr "Déverrouiller"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Déverrouiller ce sujet"
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Autorisez de nouveaux messages dans cette discussion"
 
-#: ../user/forum_thread.php:221
+#: html/user/forum_thread.php:225
 msgid "Lock"
 msgstr "Verrouiller"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Verrouiller ce sujet"
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "N'autorisez pas de nouveaux messages dans cette discussion"
 
-#: ../user/forum_thread.php:229
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr "Déplacer ce sujet vers un forum différent"
 
-#: ../user/forum_thread.php:234
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr "Éditer le titre"
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr "Éditer le titre du sujet"
 
-#: ../user/forum_thread.php:245
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Supprimer la discussion définitivement"
+
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr "Exporter en tant que Notification"
 
-#: ../user/forum_thread.php:251
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr "Ne pas exporter"
 
-#: ../user/forum_thread.php:252
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr "Ne pas exporter cette actualité en tant que Notification"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr "Trier"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "Statut du sujet mis à jour"
 
-#: ../user/forum_thread_status.php:50
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "Le statut a été mis à jour."
 
-#: ../user/forum_user_posts.php:73
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "Publié par %1"
 
-#: ../user/friend.php:33
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr "Déjà amis"
 
-#: ../user/friend.php:39
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "Vous avez souhaité être ami avec %1 sur %2."
 
-#: ../user/friend.php:41
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "Cette requête est toujours en attente de confirmation."
 
-#: ../user/friend.php:52
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 n'accepte pas de demande d'amitié de votre part"
 
-#: ../user/friend.php:61
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "Vous ne pouvez pas être ami avec vous-même"
 
-#: ../user/friend.php:69
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr "Ajouter ami"
 
-#: ../user/friend.php:74
+#: html/user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Vous avez demandé à être ami avec %1. Nous avons notifié %2 pour qu'il/elle "
-"confirme que vous êtes bien amis."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Vous avez demandé à être ami avec %1. Nous avons notifié %2 pour qu'il/elle confirme que vous êtes bien amis."
 
-#: ../user/friend.php:77
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "Ajoutez un message optionnel ici : "
 
-#: ../user/friend.php:115
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr "Requête d'amitié envoyée"
 
-#: ../user/friend.php:116
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "Nous avons notifié %1 de votre requête."
 
-#: ../user/friend.php:126
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr "Veuillez vous connecter en tant que %1"
 
-#: ../user/friend.php:127
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "Vous devez vous connecter en tant que %1 pour voir la demande d'amitié"
 
-#: ../user/friend.php:138
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr "Requête d'amitié"
 
-#: ../user/friend.php:141
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 vous a envoyé une demande d'amitié."
 
-#: ../user/friend.php:143
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 dit : %2"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr "Accepter l'amitié"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "Cliquez sur accepter si %1 est un(e) ami(e)"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr "Décliner"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "Cliquez sur décliner si %1 n'est pas un(e) ami(e)"
 
-#: ../user/friend.php:186
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "Amitié confirmée"
 
-#: ../user/friend.php:187
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "Votre amitié avec %1 a été confirmée."
 
-#: ../user/friend.php:205
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr "Amitié déclinée"
 
-#: ../user/friend.php:206
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "Votre amitié avec %1 a été déclinée."
 
-#: ../user/friend.php:221
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr "Notification introuvable"
 
-#: ../user/friend.php:223
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr "Ami(e) confirmé(e)"
 
-#: ../user/friend.php:224
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "Vous êtes maintenant ami(e) avec %1."
 
-#: ../user/friend.php:232
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "Annuler l'amitié ?"
 
-#: ../user/friend.php:234
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "Êtes-vous sûr de vouloir annuler votre amitié avec %1 ?"
 
-#: ../user/friend.php:239
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr "Rester amis"
 
-#: ../user/friend.php:249
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "Amitié annulée"
 
-#: ../user/friend.php:250
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "Votre amitié avec %1 a été annulée."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Vous avez oublié les informations de votre compte ?"
-
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Si vous connaissez l'adresse email de votre compte, vous pouvez recevoir "
-"un email ici :"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Si vous connaissez l'adresse email de votre compte, vous pouvez recevoir un email ici :"
 
-#: ../user/get_passwd.php:29
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr ""
-"Entrez l'adresse email ci-dessous et cliquez OK. Vous allez recevoir un "
-"email avec les instructions pour réinitialiser votre mot de passe."
+msgstr "Entrez l'adresse email ci-dessous et cliquez OK. Vous allez recevoir un email avec les instructions pour réinitialiser votre mot de passe."
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr ""
-"2) Si vous avez oublié l'adresse email de votre compte, ou si vous ne pouvez "
-"pas recevoir d'email ici :"
+msgstr "2) Si vous avez oublié l'adresse email de votre compte, ou si vous ne pouvez pas recevoir d'email ici :"
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr ""
-"Si vous avez exécuté BOINC avec ce compte, vous pouvez toujours y avoir "
-"accès. Voici comment : "
+msgstr "Si vous avez exécuté BOINC avec ce compte, vous pouvez toujours y avoir accès. Voici comment : "
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
-"Aller dans le répertoire de données de BOINC de votre ordinateur (son chemin "
-"est inscrit dans le Journal d’événements au démarrage).                "
+msgstr "Aller dans le répertoire de données de BOINC de votre ordinateur (son chemin est inscrit dans le Journal d’événements au démarrage).                "
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-"Trouvez votre fichier de compte pour ce projet, il sera nommé <b>%1</b>."
+msgstr "Trouvez votre fichier de compte pour ce projet, il sera nommé <b>%1</b>."
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Ouvrez ce fichier dans un éditeur de texte tel que Notepad. Vous verrez "
-"quelque chose ressemblant à "
+msgstr "Ouvrez ce fichier dans un éditeur de texte tel que Notepad. Vous verrez quelque chose ressemblant à "
 
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Sélectionnez et copiez la chaîne de caractères entre %1 et %2 (%3 dans "
-"l'exemple du dessus)."
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Sélectionnez et copiez la chaîne de caractères entre %1 et %2 (%3 dans l'exemple du dessus)."
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
 msgstr "Collez la chaîne dans le champ ci-dessous et cliquez OK"
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr ""
-"Vous serez alors connecté à votre compte, mettez à jour votre email et votre "
-"mot de passe."
+msgstr "Vous serez alors connecté à votre compte, mettez à jour votre email et votre mot de passe."
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
 msgstr "Connectez vous avec l'authentificateur"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Vous avez oublié les informations de votre compte ?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "Pas de tâche GPU rapportée "
 
-#: ../user/gpu_list.php:183
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Meilleurs modèles GPU"
+
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Les listes suivantes présentent les modèles de GPU les plus productifs sur "
-"les différentes plates-formes. Les vitesses relatives sont indiquées entre "
-"parenthèses."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Les listes suivantes présentent les modèles de GPU les plus productifs sur les différentes plates-formes. Les vitesses relatives sont indiquées entre parenthèses."
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr "Bienvenue sur %1"
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Voir et éditer vos préférences de compte en utilisant les liens ci-dessous."
+msgstr "Voir et éditer vos préférences de compte en utilisant les liens ci-dessous."
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-"Si vous ne l'avez pas déjà fait, %1téléchargez le logiciel client BOINC %2."
+msgstr "Si vous ne l'avez pas déjà fait, %1téléchargez le logiciel client BOINC %2."
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Plateforme anonyme, application manquante"
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Votre compte"
 
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr "Plateforme anonyme"
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Version de l'application manquante"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Application manquante"
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr "Plateforme manquante"
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr "Nombre de tâches terminées"
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
 msgstr "Nombre maximal de tâches par jour"
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr "Nombre de tâches aujourd'hui"
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr "Nombre de tâches valides consécutives"
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr "Taux de calcul moyen"
 
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr "Détails de l'application pour l'hôte %1"
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr "Nous n'avons pas d'enregistrement sur cet ordinateur."
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"Vous ne pouvez pas supprimer les enregistrements pour cet ordinateur car "
-"notre base de données contient toujours des unités de travail pour lui. Vous "
-"devez attendre quelques jours avant que le travail de cet ordinateur soit "
-"supprimé de la base de données du projet."
+msgstr "Vous ne pouvez pas supprimer les enregistrements pour cet ordinateur car notre base de données contient toujours des unités de travail pour lui. Vous devez attendre quelques jours avant que le travail de cet ordinateur soit supprimé de la base de données du projet."
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr "Supprimer cet ordinateur"
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr "Enregistrement supprimé."
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr "Retourner à la liste de vos ordinateurs"
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr "Fusionner les enregistrements de l'ordinateur"
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr "Fusionner les ordinateurs"
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Dans certains cas BOINC donne des identifiants séparés à un même ordinateur "
-"par erreur. Vous pouvez corriger cela en fusionnant les anciennes identités "
-"avec la nouvelle."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Dans certains cas BOINC donne des identifiants séparés à un même ordinateur par erreur. Vous pouvez corriger cela en fusionnant les anciennes identités avec la nouvelle."
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr "Aucun ordinateur n'est disponible pour fusioner avec celui-ci."
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr "Afficher les détails"
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"Vérifier les ordinateurs qui sont les mêmes que %1 (créé le %2, ID "
-"ordinateur %3):"
+msgstr "Vérifier les ordinateurs qui sont les mêmes que %1 (créé le %2, ID ordinateur %3):"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr "nom"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr "créé"
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr "ID de l'ordinateur"
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr "Aucun hôte"
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr "Fusionner les hôtes"
 
-#: ../user/host_update_credit.php:28
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Ordinateurs appartenant à %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Ordinateurs masqués"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Cet utilisateur a choisi de ne pas montrer d'information au sujet de ses ordinateurs."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Vos ordinateurs"
+
+#: html/user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "Mettre à jour les crédit de l'ordinateur"
 
-#: ../user/host_venue_action.php:41
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Crédits de l'hôte mis à jour"
+
+#: html/user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "Emplacement de l'hôte mis à jour"
 
-#: ../user/host_venue_action.php:43
+#: html/user/host_venue_action.php:43
 msgid "none"
 msgstr "aucun"
 
-#: ../user/host_venue_action.php:46
+#: html/user/host_venue_action.php:46
 msgid "The venue of this host has been set to %1."
 msgstr "L'emplacement de cet hôte a été défini comme %1."
 
-#: ../user/host_venue_action.php:48
+#: html/user/host_venue_action.php:48
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
-msgstr ""
-"Ce changement prendra effet la prochaine fois que cet hôte communiquera avec "
-"le projet."
+msgstr "Ce changement prendra effet la prochaine fois que cet hôte communiquera avec le projet."
 
-#: ../user/host_venue_action.php:50
+#: html/user/host_venue_action.php:50
 msgid "Return to host page"
 msgstr "Retour à la page des hôtes"
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Ordinateurs appartenant à %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Ordinateurs masqués"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-"Cet utilisateur a choisi de ne pas montrer d'information au sujet de ses "
-"ordinateurs."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Vos ordinateurs"
-
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr "Balises HTML autorisées."
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-"Les balises HTML suivantes sont autorisées dans la description de l'équipe:"
+msgstr "Les balises HTML suivantes sont autorisées dans la description de l'équipe:"
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr "gras"
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr "italique"
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr "hyperlien"
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr "paragraphe"
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr "saut"
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr "pré-formaté"
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"image ; la hauteur ne peut excéder 450 pixels. Merci de ne pas faire de lien "
-"vers des images sans la permission du site où l'image est hébergée. "
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "image ; la hauteur ne peut excéder 450 pixels. Merci de ne pas faire de lien vers des images sans la permission du site où l'image est hébergée. "
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
-msgstr ""
-"Vous pouvez également utiliser la notation esperluète pour les caractères "
-"spéciaux."
+msgstr "Vous pouvez également utiliser la notation esperluète pour les caractères spéciaux."
+
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Règles et politique"
 
-#: ../user/info.php:35
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
-msgstr ""
-"N'utilisez %1 que sur des machines pour lesquelles vous en avez "
-"l'autorisation"
+msgstr "N'utilisez %1 que sur des machines pour lesquelles vous en avez l'autorisation"
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"N'utilisez %1 que sur des ordinateurs qui vous appartiennent, ou pour "
-"lesquels vous avez obtenu l'autorisation de leur propriétaire. Certaines "
-"entreprises ou écoles ont des règles qui interdisent l'usage de leurs "
-"ressources informatiques pour des projets tels que %1."
+msgstr "N'utilisez %1 que sur des ordinateurs qui vous appartiennent, ou pour lesquels vous avez obtenu l'autorisation de leur propriétaire. Certaines entreprises ou écoles ont des règles qui interdisent l'usage de leurs ressources informatiques pour des projets tels que %1."
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
 msgstr "Comment %1 utilisera votre ordinateur"
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"Lorsque %1 fonctionne sur votre ordinateur, une partie de votre puissance "
-"CPU, espace disque dur, et bande passante réseau sera utilisée. Vous pouvez "
-"contrôler la quantité de ces ressources utilisables par %1, et à quel moment "
-"elles pourront être utilisées."
+msgstr "Lorsque %1 fonctionne sur votre ordinateur, une partie de votre puissance CPU, espace disque dur, et bande passante réseau sera utilisée. Vous pouvez contrôler la quantité de ces ressources utilisables par %1, et à quel moment elles pourront être utilisées."
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"Le travail effectué par votre ordinateur contribue à atteindre les objectifs "
-"de %1, tels que décrits sur son site web. L'application de calcul peut "
-"varier de temps en temps."
+msgstr "Le travail effectué par votre ordinateur contribue à atteindre les objectifs de %1, tels que décrits sur son site web. L'application de calcul peut varier de temps en temps."
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr "Politique de confidentialité"
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Votre compte sur %1 est identifié par un pseudonyme que vous choisissez. Ce "
-"pseudo peut être affiché sur le site %1 ainsi qu'un résumé des jobs calculés "
-"par votre ordinateur %1. Si vous désirez rester anonyme, choisissez un nom "
-"qui ne révèle pas votre identité."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Votre compte sur %1 est identifié par un pseudonyme que vous choisissez. Ce pseudo peut être affiché sur le site %1 ainsi qu'un résumé des jobs calculés par votre ordinateur %1. Si vous désirez rester anonyme, choisissez un nom qui ne révèle pas votre identité."
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Si vous participez à %1, des informations concernant votre ordinateur (comme "
-"votre processeur, la mémoire installée, etc...) seront enregistrées par %1 "
-"et utilisées afin de décider quel type de job vous recevrez. Ces "
-"informations seront également visibles sur le site de %1. En revanche, rien "
-"ne servant à vous identifier (comme votre nom de domaine ou votre adresse "
-"réseau) ne sera affiché."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Pour participer à %1, vous devez donner une adresse mail valide. Celle-ci ne "
-"sera pas montrée sur le site de %1, ni partagée avec d'autres sites ou "
-"sociétés. %1 peut vous y envoyer ses newsletters, mais vous pouvez vous y "
-"désinscrire quand bon vous semble."
+msgstr "Si vous participez à %1, des informations concernant votre ordinateur (comme votre processeur, la mémoire installée, etc...) seront enregistrées par %1 et utilisées afin de décider quel type de job vous recevrez. Ces informations seront également visibles sur le site de %1. En revanche, rien ne servant à vous identifier (comme votre nom de domaine ou votre adresse réseau) ne sera affiché."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Pour participer à %1, vous devez donner une adresse mail valide. Celle-ci ne sera pas montrée sur le site de %1, ni partagée avec d'autres sites ou sociétés. %1 peut vous y envoyer ses newsletters, mais vous pouvez vous y désinscrire quand bon vous semble."
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"Les messages privés envoyés sur le site de %1 ne sont visibles que de "
-"l'expéditeur et du destinataire. %1 n'examine ni ne modère le contenu de ces "
-"messages. Si vous recevez des messages non désirés en provenance d'un autre "
-"utilisateur de %1, vous pouvez ajouter cette personne à votre %2filtre de "
-"messages%3. Les messages publics et privés en provenance de cet utilisateur "
-"seront bloqués."
+msgstr "Les messages privés envoyés sur le site de %1 ne sont visibles que de l'expéditeur et du destinataire. %1 n'examine ni ne modère le contenu de ces messages. Si vous recevez des messages non désirés en provenance d'un autre utilisateur de %1, vous pouvez ajouter cette personne à votre %2filtre de messages%3. Les messages publics et privés en provenance de cet utilisateur seront bloqués."
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Si vous utilisez les forums de notre site, vous devez suivre le %2guide du "
-"forum%3.  Les messages postés sur les forums %1 sont visibles pour tous, "
-"même les non-membres.  En postant sur les forums, vous accorder à tout le "
-"monde, de façon irrévocable, la possibilité de voir et copier vos messages."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Si vous utilisez les forums de notre site, vous devez suivre le %2guide du forum%3.  Les messages postés sur les forums %1 sont visibles pour tous, même les non-membres.  En postant sur les forums, vous accorder à tout le monde, de façon irrévocable, la possibilité de voir et copier vos messages."
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
 msgstr "Est-il sûr de lancer %1 ?"
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"A chaque fois que vous téléchargez un programme par internet vous jouez "
-"votre chance : le programme peut contenir des erreurs dangereuses, ou le "
-"serveur de téléchargement peut avoir été compromis. %1 a fait des efforts "
-"pour minimiser ces risques. Nous avons testé nos applications avec "
-"attention. Nos serveurs sont derrière des pares-feu et sont configurés pour "
-"une haute sécurité. Pour assurer l'intégrité des téléchargements de "
-"programmes, tous les fichiers exécutables sont signés numériquement sur un "
-"ordinateur sécurisé non connecté à internet."
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "A chaque fois que vous téléchargez un programme par internet vous jouez votre chance : le programme peut contenir des erreurs dangereuses, ou le serveur de téléchargement peut avoir été compromis. %1 a fait des efforts pour minimiser ces risques. Nous avons testé nos applications avec attention. Nos serveurs sont derrière des pares-feu et sont configurés pour une haute sécurité. Pour assurer l'intégrité des téléchargements de programmes, tous les fichiers exécutables sont signés  [...]
 
-#: ../user/info.php:50
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Les applications lancées par %1 peuvent engendrer une surchauffe sur "
-"certains ordinateurs. Si cela se produit, arrêter %1 ou utiliser un %"
-"2programme utilitaire%3 pour limiter l'utilisation du CPU."
+msgstr "Les applications lancées par %1 peuvent engendrer une surchauffe sur certains ordinateurs. Si cela se produit, arrêter %1 ou utiliser un %2programme utilitaire%3 pour limiter l'utilisation du CPU."
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 a été développé par %2. BOINC a été développé à l'Université de "
-"Californie."
+msgstr "%1 a été développé par %2. BOINC a été développé à l'Université de Californie."
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr "Responsabilité"
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 et %2 n'assument aucune responsabilité pour les dommages éventuels à "
-"votre ordinateur, la perte de données, ou tout autre événement ou condition "
-"qui peuvent être engendrés par la participation à %1."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 et %2 n'assument aucune responsabilité pour les dommages éventuels à votre ordinateur, la perte de données, ou tout autre événement ou condition qui peuvent être engendrés par la participation à %1."
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr "Autres projets BOINC"
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"D'autre projets utilisent la même plateforme BOINC, comme %1. Vous pouvez "
-"participer à un ou plusieurs de ces projets. Ce faisant, votre ordinateur "
-"participera à un travail utile, même lorsque %1 n'a aucune tâche disponible "
-"actuellement."
+msgstr "D'autre projets utilisent la même plateforme BOINC, comme %1. Vous pouvez participer à un ou plusieurs de ces projets. Ce faisant, votre ordinateur participera à un travail utile, même lorsque %1 n'a aucune tâche disponible actuellement."
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"Ces autres projets ne sont pas associés à %1, et nous ne pouvons pas nous "
-"porter garant de leur pratiques de sécurité ou de la nature de leur "
-"recherches. Vous pouvez les rejoindre mais à vos propres risques."
+msgstr "Ces autres projets ne sont pas associés à %1, et nous ne pouvons pas nous porter garant de leur pratiques de sécurité ou de la nature de leur recherches. Vous pouvez les rejoindre mais à vos propres risques."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Je suis nouveau"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Je suis un utilisateur de BOINC"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Lire nos %1Règles et Politiques%2."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Télécharger le logiciel BOINC."
 
-#: ../user/language_select.php:47
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Téléchargement"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Pour les appareils Android, téléchargez BOINC depuis le Google Play Store ou Amazon App Store."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Lancer l'installation"
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Choisissez %1 dans la liste ou entrez %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Installer BOINC sur cet appareil s'il n’est pas déjà présent."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Sélectionnez Outils / ajouter un projet. Choisissez %1 dans la liste ou entrez %2"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Si vous exécutez une version de ligne de commande de BOINC sur cet ordinateur, %1créez un compte2%, puis utilisez %3boinccmd --project_attach%4 pour ajouter le projet."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Rejoindre %1"
+
+#: html/user/language_select.php:46
 msgid "Language selection"
 msgstr "Choix de la langue"
 
-#: ../user/language_select.php:73
+#: html/user/language_select.php:57
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
-msgstr ""
-"Ce site web est disponible dans plusieurs langues. La langue sélectionnée "
-"actuellement est %1."
+msgstr "Ce site web est disponible dans plusieurs langues. La langue sélectionnée actuellement est %1."
 
-#: ../user/language_select.php:78
+#: html/user/language_select.php:62
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Normalement, le choix de la langue est déterminé par la langue configurée "
-"dans votre navigateur, qui est : %1.  Vous pouvez la modifier en utilisant :"
+msgstr "Normalement, le choix de la langue est déterminé par la langue configurée dans votre navigateur, qui est : %1.  Vous pouvez la modifier en utilisant :"
 
-#: ../user/language_select.php:83
+#: html/user/language_select.php:67
 msgid "Firefox: Tools/Options/General"
 msgstr "Firefox : Outils/Options/Général"
 
-#: ../user/language_select.php:85
+#: html/user/language_select.php:69
 msgid "Microsoft IE: Tools/Internet Options/Languages"
 msgstr "Microsoft IE : Outils/Options Internet/Langues"
 
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Ou vous pouvez choisir une langue en cliquant sur l'un des liens.  Ceci "
-"enverra un cookie à votre navigateur. Assurez-vous alors que votre "
-"navigateur accepte les cookies provenant de notre domaine."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Nom des langues (cliquer pour sélectionner)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Utiliser la langue paramétrée dans le navigateur"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Ou vous pouvez choisir la langue dans le menu suivant :"
 
-#: ../user/language_select.php:113
+#: html/user/language_select.php:85
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Les traductions sont effectuées par des volontaires.  Si votre langue native "
-"n'y est pas, %1vous pouvez fournir une traduction%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Adresse email :"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "adresse email oubliée ?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Mot de passe :"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "mot de passe oublié ?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Rester connecté"
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Les traductions sont réalisées par des bénévoles.  Si votre langue maternelle est manquante ou incomplète, % 1vous pouvez aider à traduire%2."
 
-#: ../user/login_form.php:62
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr "ou %1créer un compte%2"
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr "En cours de calcul sur %1"
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr "Fusion de %1 dans %2"
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
 msgstr "Retourner à la liste de vos ordinateurs"
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -5277,46 +5084,32 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"Cette opération fusionne les ordinateurs en fonction de leur nom de domaine. "
-" \n"
-"                     <p>\n"
-"                        Pour chaque nom de domaine, tous les ordinateurs les "
-"plus anciens ayant ce nom\n"
-"                       seront fusionnés avec les ordinateurs les plus "
-"récents ayant ce nom.\n"
-"                       Les ordinateurs incompatibles ne seront pas "
-"fusionnés.\n"
-"                       <p>"
-
-#: ../user/merge_by_name.php:82
+msgstr "Cette opération fusionne les ordinateurs en fonction de leur nom de domaine.  \n                     <p>\n                        Pour chaque nom de domaine, tous les ordinateurs les plus anciens ayant ce nom\n                       seront fusionnés avec les ordinateurs les plus récents ayant ce nom.\n                       Les ordinateurs incompatibles ne seront pas fusionnés.\n                       <p>"
+
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr "Faites ceci"
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr "Retourner à la liste des ordinateurs"
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"Afin de maximiser la discussion et la circulation de l'information, \n"
-"nos forums sont modérés.\n"
-"Les messages des forums sont soumis aux règles suivantes:\n"
+msgstr "\nAfin de maximiser la discussion et la circulation de l'information, \nnos forums sont modérés.\nLes messages des forums sont soumis aux règles suivantes:\n"
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5345,2073 +5138,1521 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>Les modérateurs peuvent supprimer les messages qui ne respectent pas "
-"l'une de ces règles.\n"
-"Les auteurs des messages supprimés seront avisés par e-mail.\n"
-"Les auteurs offensants peuvent avoir leur capacité à envoyer des messages "
-"temporairement\n"
-"révoquée(mais pour éviter les abus seuls les administrateurs de projets ont "
-"la capacité de le\n"
-"faire).\n"
-"D'autres types de mauvais comportement («messages piégés» pour  pour "
-"récupérer les \n"
-"Adresses IP des autres participants, création de sujets excessive pour "
-"spammerles forums, etc),\n"
-"bien que ne figurant pas dans les règles formelles, peuvent conduire à des "
-"sanctions similaires.\n"
-"<p>\n"
-" Si vous pensez qu'un message viole l'une des règles du forum,cliquez sur le "
-"X rouge\n"
-" sur le message et remplissez le formulaire,les modérateurs seront avisés de "
-"votre plainte.\n"
-"Veuillez n'utiliser ce bouton que pour des violations claires - pas des "
-"conflits personnels.\n"
-"<p>\n"
-"Nous essayons d'être aussi justes que possible dans la modération,mais dans "
-"une large\n"
-" communauté d'utilisateurs avec de nombreux points de vue différents,il y "
-"aura toujours\n"
-" certaines personnes qui ne seront pas satisfaites de nos décisions de "
-"modération.\n"
-"Bien que nous regrettions que cela se produise,comprennez que nous ne "
-"pouvons pas\n"
-" satisfaire tout le monde tout le temps et devons prendre des décisions "
-"basées sur nos\n"
-" ressources et sur ce qui est le mieux pour le forum dans son ensemble.\n"
-"Merci de ne pas critiquer notre politique de modération sur les forums. Nous "
-"ne sommes pas\n"
-"un projet d'ingénierie sociale et nous ne sommes dans le domaine de la "
-"créationd'un système\n"
-" tout à fait juste. Donc ce type de discussion tend à être contre-"
-"productiveet potentiellement incendiaire.\n"
-" Si vous avez une réclamation légitime,envoyez un courriel à l'adresse ci-"
-"dessous.\n"
-"<p>\n"
-" Cette politique de modération est fixée par le projet 1%.\n"
-"Si vous avez des commentaires au sujet de cette politique, envoyez un e-mail "
-"à 2%.\n"
+msgstr "\n<p>Les modérateurs peuvent supprimer les messages qui ne respectent pas l'une de ces règles.\nLes auteurs des messages supprimés seront avisés par e-mail.\nLes auteurs offensants peuvent avoir leur capacité à envoyer des messages temporairement\nrévoquée(mais pour éviter les abus seuls les administrateurs de projets ont la capacité de le\nfaire).\nD'autres types de mauvais comportement («messages piégés» pour  pour récupérer les \nAdresses IP des autres participants, création d [...]
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr "Crédit en suspens"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr "ID Résultat"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr "ID d'unité de travail (WU)"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr "ID Hôte"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr "Crédit demandé"
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr "Crédit en suspens: %1"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr "Bloquer les messages de cet utilisateur"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr "Bloquer un utilisateur"
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr "Votre message a été envoyé."
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr "Vous n'avez pas de message privé."
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr "Émetteur et date"
 
-#: ../user/pm.php:106
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr "Répondre à ce message"
 
-#: ../user/pm.php:107
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr "Supprimer ce message"
 
-#: ../user/pm.php:112
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr "Sélectionner tout "
 
-#: ../user/pm.php:114
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr "Dé-sélectionner tout"
 
-#: ../user/pm.php:117
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr "Supprimer le message sélectionné"
 
-#: ../user/pm.php:140
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr "Émetteur"
 
-#: ../user/pm.php:143
+#: html/user/pm.php:137
 msgid "Date"
 msgstr "Date"
 
-#: ../user/pm.php:185
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
 msgstr "Vous devez remplir tous les champs pour envoyer un message privé"
 
-#: ../user/pm.php:188
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Message envoyé"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Votre message a été envoyé aux %1membres de l’équipe."
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Votre réponse a été marquée comme spam \n"
-"                                                     par le système anti-"
-"spam Akismet.\n"
-"                                                     Veuillez modifier votre "
-"texte et réessayer."
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Votre message a été marqué comme spam \npar le système anti-spam Akismet.\nMerci de modifier votre texte et essayez de nouveau."
 
-#: ../user/pm.php:205
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr "Impossible de trouver l'utilisateur avec l'identifiant %1"
 
-#: ../user/pm.php:210
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr "Impossible de trouver l'utilisateur avec le nom d'utilisateur %1"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"%1 est un nom d'utilisateur déjà attribué; merci de choisir un autre "
-"identifiant."
+msgstr "%1 est un nom d'utilisateur déjà attribué; merci de choisir un autre identifiant."
 
-#: ../user/pm.php:217
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr "L'utilisateur %1 (ID : %2) n'accepte pas vos messages privés."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr "Utilisateur inexistant"
 
-#: ../user/pm.php:242
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr "Voulez-vous réellement bloquer %1 ?"
 
-#: ../user/pm.php:243
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr ""
-"Etes-vous réellement certain de vouloir bloquer l'a réception des messages "
-"privés provenant de l'utilisateur %1 ?"
+msgstr "Etes-vous réellement certain de vouloir bloquer l'a réception des messages privés provenant de l'utilisateur %1 ?"
 
-#: ../user/pm.php:244
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Veuillez noter que vous ne pouvez bloquer qu'un nombre limité "
-"d'utilisateurs."
+msgstr "Veuillez noter que vous ne pouvez bloquer qu'un nombre limité d'utilisateurs."
 
-#: ../user/pm.php:245
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr ""
-"Un fois l'utilisateur bloqué, vous pouvez le débloquer en utilisant la page "
-"\"préférences du forum\"."
+msgstr "Un fois l'utilisateur bloqué, vous pouvez le débloquer en utilisant la page \"préférences du forum\"."
 
-#: ../user/pm.php:252
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr "Non, annuler"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr "Utilisateur inexistant"
 
-#: ../user/pm.php:263
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr "Utilisateur %1 bloqué"
 
-#: ../user/pm.php:265
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-"L'utilisateur %1 a été bloqué et ne peut plus vous envoyer de messages "
-"privés."
+msgstr "L'utilisateur %1 a été bloqué et ne peut plus vous envoyer de messages privés."
 
-#: ../user/pm.php:266
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "Pour débloquer, aller sur les %1préférences de messages%2"
 
-#: ../user/pm.php:302
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr "Action inconnue"
 
-#: ../user/prefs.php:32
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 pour %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Retour aux préférences"
+
+#: html/user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Vos préférences ont été mises à jour. Les préférences du client\n"
-"seront prises en compte lorsque votre ordinateur communiquera avec %1\n"
-"ou si vous utilisez la commande %2Mise à jour%3 depuis le BOINC Manager."
+msgstr "Vos préférences ont été mises à jour. Les préférences du client\nseront prises en compte lorsque votre ordinateur communiquera avec %1\nou si vous utilisez la commande %2Mise à jour%3 depuis le BOINC Manager."
 
-#: ../user/prefs.php:41
+#: html/user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Vos préférences ont été réinitialisées et\n"
-"                                  prendront effet lorsque votre ordinateur "
-"communiquera avec %1\n"
-"                                  ou si vous demandez une %2mises à jour%3 "
-"depuis le BOINC Manager."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 pour %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Retour aux préférences"
+msgstr "Vos préférences ont été réinitialisées et\n                                  prendront effet lorsque votre ordinateur communiquera avec %1\n                                  ou si vous demandez une %2mises à jour%3 depuis le BOINC Manager."
 
-#: ../user/prefs_remove.php:45
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "Confirmer la suppression des préférences"
 
-#: ../user/prefs_remove.php:48
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr "Voulez-vous vraiment supprimer vos préférences séparées de %1 pour %2 ?"
 
-#: ../user/prefs_remove.php:52
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "Supprimer les préférences"
 
-#: ../user/prefs_remove.php:54
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "Annuler"
 
-#: ../user/profile_menu.php:35
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"%1Profils%2 permet à chacun de partager des choses et opinions avec la "
-"communauté."
+msgstr "%1Profils%2 permet à chacun de partager des choses et opinions avec la communauté."
 
-#: ../user/profile_menu.php:36
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
-msgstr ""
-"Explorez la diversité de vos camarades également volontaires, et apportez la "
-"contribution de vos propres vues à d'autres que vous appréciez."
+msgstr "Explorez la diversité de vos camarades également volontaires, et apportez la contribution de vos propres vues à d'autres que vous appréciez."
 
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"Si ce n'est déjà fait, vous pouvez créer votre %1profil utilisateur%2 qui "
-"sera visible par les autres utilisateurs !"
+msgstr "Si ce n'est déjà fait, vous pouvez créer votre %1profil utilisateur%2 qui sera visible par les autres utilisateurs !"
 
-#: ../user/profile_menu.php:42
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "L'utilisateur du jour"
 
-#: ../user/profile_menu.php:57
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "Navigateur de profil utilisateur"
 
-#: ../user/profile_menu.php:60
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "Regarder la %1galerie photo%2 de l'utilisateur."
 
-#: ../user/profile_menu.php:61
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "Parcourir les profils %1par pays%2."
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr ""
-"Parcourir les profils %1aléatoirement%2, %3aléatoirement avec photos%2, ou %"
-"4aléatoirement sans photos%2."
+msgstr "Parcourir les profils %1aléatoirement%2, %3aléatoirement avec photos%2, ou %4aléatoirement sans photos%2."
 
-#: ../user/profile_menu.php:66
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "Liste des profils par ordre alphabétique :"
 
-#: ../user/profile_menu.php:72
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "Rechercher un profil par texte"
 
-#: ../user/profile_menu.php:98
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr "Aucun profil"
 
-#: ../user/profile_menu.php:99
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "Aucun profil ne correspond à votre requête."
 
-#: ../user/profile_rate.php:29
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "Type de vote invalide :"
 
-#: ../user/profile_rate.php:34
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "Vote enregistré"
 
-#: ../user/profile_rate.php:38
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr "Merci"
 
-#: ../user/profile_rate.php:41
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "Votre recommandation a été enregistrée"
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "Votre vote de rejet de ce profil a été enregistré."
 
-#: ../user/profile_rate.php:46
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "Retour au profil."
 
-#: ../user/profile_search_action.php:36
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "Profils contenant '%1'"
 
-#: ../user/profile_search_action.php:40
+#: html/user/profile_search_action.php:42
 msgid "User name"
 msgstr "Nom de l'utilisateur"
 
-#: ../user/profile_search_action.php:41
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "Projet rejoint"
 
-#: ../user/profile_search_action.php:44
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "Crédits récents"
 
-#: ../user/profile_search_action.php:54
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "Aucun profil contenant '%1'"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Tâche %1"
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Tâche inexistante:"
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr "Cette fonctionnalité est désactivée temporairement"
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr "Aucun ordinateur trouvé ayant l'ID %1"
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr "Aucun accès"
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
 msgstr "Il manque l'ID de l'utilisateur ou du hôte"
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr "Aucune tâche à afficher"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "En cours d'exécution"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 est temporairement fermé pour maintenance."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "Qu'est 1% ?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Nouvelles"
 
-#: ../user/server_status.php:100
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr "Arrêté"
 
-#: ../user/server_status.php:103
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "En cours d'exécution"
+
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr "Suspendu"
 
-#: ../user/server_status.php:231
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr "Statut du projet"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Version du serveur: %1"
-
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr "Programme"
 
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr "Hôte"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "pages web pilotée par les données"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "serveur d'upload/download"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "ordonnanceur"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "En cours d'exécution:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Le programme fonctionne normalement"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Arrêté:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Programme en échec ou projet arrêté"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Suspendu:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Le programme est suspendu"
-
-#: ../user/server_status.php:303
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr "État de l'exécution"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Le serveur de base de donnée n'est pas joignable"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Tâches prêtes à l'envoi"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tâches en cours"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Unités de travail en attente de validation"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Unités de travail en attente d'assimilation"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Unités de travail en attente de nettoyage de fichiers"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Tâches en attente de nettoyage de fichiers"
-
-# aucune idée de comment traduire ce truc...
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Transitioner backlog (heures)"
-
-#: ../user/server_status.php:374
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr "Utilisateurs"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "avec des crédits récents"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "avec des crédits"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "enregistrés dans les dernières 24 heures"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "GigaFLOPs actuels"
-
-#: ../user/server_status.php:420
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr "Tâches par application"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "applications"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "non envoyé"
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Temps d'exécution moyen des 100 derniers résultats en heures (min-max)"
 
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "en cours"
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Utilisateurs dans les dernières 24 heures"
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "temps d'exécution moyen des 100 derniers résultats en heures (min-max)"
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Version du schéma de base de donnée:"
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "utilisateurs dans les dernières 24 heures"
-
-#: ../user/show_host_detail.php:40
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr "Ordinateur %1"
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr "Statistiques et tableaux principaux"
 
-#: ../user/stats.php:28
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr "Statistiques de %1"
 
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Des statistiques plus détaillées pour %1 et d'autres projets basés sur BOINC "
-"sont disponibles sur ces différents sites web :"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Vous pouvez également avoir vos statistiques courantes sous la forme d'une "
-"\"image de signature\" :"
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "Top des participants"
 
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Accessoirement, vous pouvez avoir la somme de vos statistiques individuelles "
-"sur tous les projets BOINC de sites différents; allez voir votre %1page "
-"d'accueil%2."
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "Top des équipes"
 
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 participants peuvent former une %2équipes%"
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "Top des ordinateurs"
 
-#: ../user/team.php:29
+#: html/user/stats.php:53
 msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Vous ne pouvez appartenir qu'à une seule équipe. Vous pouvez quitter ou "
-"joindre une équipe à tout moment."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Chaque équipe a un %fondateur%2 qui peut :"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "accéder aux adresses email des membres de l'équipe"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "éditer le nom et la description de l'équipe"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "Ajouter ou supprimer des administrateurs de l'équipe"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "supprimer des membres de l'équipe"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "supprimer l'équipe si elle n'a aucun membre"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Pour rejoindre une équipe, visitez la page de cette équipe et cliquez sur %"
-"Rejoindre cette équipe%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Trouver une équipe"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Des statistiques plus détaillées pour %1 et d'autres projets basés sur BOINC sont disponibles sur ces différents sites web :"
 
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Toutes les équipes"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 équipes"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Créer une nouvelle équipe"
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Vous pouvez également avoir vos statistiques courantes sous la forme d'une \"image de signature\" :"
 
-#: ../user/team.php:59
+#: html/user/stats.php:59
 msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Si vous ne trouvez pas d'équipe vous correspondant, vous pouvez %1créer une "
-"équipe%2."
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Accessoirement, vous pouvez avoir la somme de vos statistiques individuelles sur tous les projets BOINC de sites différents; allez voir votre %1page d'accueil%2."
 
-#: ../user/team_admins.php:34
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "Supprimer ce membre des administrateurs de l'équipe"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr "Ajouter ou supprimer des administrateurs de l'équipe"
 
-#: ../user/team_admins.php:41
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Vous pouvez sélectionner des membres de l'équipe comme 'administrateurs de "
-"l'équipe'.\n"
-"Ces administrateurs peuvent :"
+msgstr "Vous pouvez sélectionner des membres de l'équipe comme 'administrateurs de l'équipe'.\nCes administrateurs peuvent :"
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "Éditer les informations de l'équipe (nom, URL, description, pays)"
 
-#: ../user/team_admins.php:44
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "Voir l'historique des entrées/départs de l'équipe"
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Envoyer des messages à l’équipe"
+
+#: html/user/team_admins.php:48
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Modérer le forum de l'équipe, s'il existe (les administrateurs reçoivent des "
-"notification par e-mail des événements de modération et des rapports "
-"'rouges X')"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Modérer le forum de l'équipe, s'il existe (les administrateurs reçoivent des notification par e-mail des événements de modération et des rapports 'rouges X')"
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr "Les administrateurs de l'équipe ne peuvent pas :"
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr "Modifier le nom du fondateur de l'équipe"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr "Supprimer des membres"
 
-#: ../user/team_admins.php:53
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Si une administrateur quitte l'équipe, il cesse d'être administrateur "
-"d'équipe."
+msgstr "Si une administrateur quitte l'équipe, il cesse d'être administrateur d'équipe."
 
-#: ../user/team_admins.php:54
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr ""
-"Nous vous recommandons de sélectionner uniquement des gens que vous "
-"connaissez et auxquels vous avez pleinement confiance pour être "
-"administrateur de l'équipe."
+msgstr "Nous vous recommandons de sélectionner uniquement des gens que vous connaissez et auxquels vous avez pleinement confiance pour être administrateur de l'équipe."
 
-#: ../user/team_admins.php:59
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr "Il n'y a actuellement aucun administrateur de l'équipe"
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr "Administrateurs de l'équipe actuels"
 
-#: ../user/team_admins.php:62
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr "Administrateur de l'équipe depuis"
 
-#: ../user/team_admins.php:77
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr "Ajouter un administrateur de l'équipe"
 
-#: ../user/team_admins.php:78
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr "Adresse e-mail du membre de l'équipe :"
 
-#: ../user/team_admins.php:90
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr "échec de la suppression de l'administrateur"
 
-#: ../user/team_admins.php:99
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr "L'utilisateur n'est pas membre de l'équipe"
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr "%1 est déjà administrateur de %2"
 
-#: ../user/team_admins.php:105
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr "Impossible d'ajouter l'administrateur"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "Équipe inexistante"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr "équipe inexistante"
 
-#: ../user/team_change_founder_action.php:38
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "L'utilisateur n'est pas membre de %1"
 
-#: ../user/team_change_founder_action.php:41
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "En cours de modification du fondateur de %1"
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 est maintenant le fondateur de %2"
 
-#: ../user/team_change_founder_form.php:37
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "Modifier le fondateur de %1"
 
-#: ../user/team_change_founder_form.php:43
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr ""
-"Le membre %1 a demandé à être déclaré fondateur de l'équipe le %2, mais a "
-"quitté l'équipe depuis : la requête va être supprimée."
+msgstr "Le membre %1 a demandé à être déclaré fondateur de l'équipe le %2, mais a quitté l'équipe depuis : la requête va être supprimée."
 
-#: ../user/team_change_founder_form.php:49
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Le membre %1 a demandé à être déclaré fondateur de l'équipe. Ceci peut être "
-"du au fait que vous avez quitté l'équipe ou que vous n'avez eu aucun contact "
-"avec l'équipe depuis un long moment."
+msgstr "Le membre %1 a demandé à être déclaré fondateur de l'équipe. Ceci peut être du au fait que vous avez quitté l'équipe ou que vous n'avez eu aucun contact avec l'équipe depuis un long moment."
 
-#: ../user/team_change_founder_form.php:55
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "décline la requête"
 
-#: ../user/team_change_founder_form.php:58
+#: html/user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Si vous ne déclinez pas la requête par %1, %2 aura l'option d'assumer le "
-"rôle de fondateur de l'équipe.<br /><br />\n"
-"                                Pour accepter la requête, assignez le rôle "
-"de fondateur à %3 en utilisant le formulaire ci-dessous."
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Si vous ne déclinez pas la requête par %1, %2 aura l'option d'assumer le rôle de fondateur de l'équipe.<br /><br />\n                                Pour accepter la requête, assignez le rôle de fondateur à %3 en utilisant le formulaire ci-dessous."
 
-#: ../user/team_change_founder_form.php:66
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "Aucune requête de transfert en attente."
 
-#: ../user/team_change_founder_form.php:69
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Pour assigner le rôle de fondateur de cette équipe à un autre membre, "
-"sélectionnez le membre via la boîte de sélection située près de son nom et "
-"cliquer <strong>Changer de fondateur</strong> ci-dessous."
+"member name and click %1Change founder%2 below."
+msgstr "Pour changer le fondateur de cette équipe, cochez la case en face du nom du membre et cliquez sur %1changer le fondateur%2 ci-dessous."
 
-#: ../user/team_change_founder_form.php:76
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr "Nouveau fondateur ?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr "Changer de fondateur"
 
-#: ../user/team_change_founder_form.php:108
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
 msgstr "Il n'y a pas d'utilisateur à qui transférer l'équipe."
 
-#: ../user/team_create_action.php:29
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr "Vous devez choisir une nom d'équipe"
 
-#: ../user/team_create_action.php:34
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr "Une équipe nommée %1 existe déjà. Essayez un autre nom"
 
-#: ../user/team_create_action.php:54
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
 msgstr "Impossible de créer l'équipe. Essayez plus tard."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr "Créer une équipe"
 
-#: ../user/team_create_form.php:30
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Vous appartenez à l'équipe %1. Vous devez %2quitter cette équipe%3 avant "
-"d'en créer une."
+msgstr "Vous appartenez à l'équipe %1. Vous devez %2quitter cette équipe%3 avant d'en créer une."
 
-#: ../user/team_delta.php:65
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "Aucun fondateur ou administrateur"
 
-#: ../user/team_delta.php:72
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "Historique d'équipe pour %1"
 
-#: ../user/team_delta.php:75
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr "Quand"
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr "Utilisateur"
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr "Action"
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr "Crédit total au moment de l'action"
 
-#: ../user/team_edit_action.php:53
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr "pays invalide"
 
-#: ../user/team_edit_action.php:59
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "Le nom '%1' est déjà utilisé par une autre équipe."
 
-#: ../user/team_edit_action.php:62
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "Doit spécifier un nom d'équipe"
 
-#: ../user/team_edit_action.php:90
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "Impossible de mettre à jour l'équipe. Réessayez plus tard."
 
-#: ../user/team_edit_form.php:33
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "Éditer %1"
 
-#: ../user/team_edit_form.php:34
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "Mettre à jour les informations d'équipe"
 
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "Liste des e-mails de %1"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Membres de %1"
 
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Liste des membres de %1"
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
 
-#: ../user/team_email_list.php:78
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr "Afficher en clair"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "Créer un forum"
 
-#: ../user/team_forum.php:29
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "Vous pouvez créer un forum relatif à %1."
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "Seuls les membres de l'équipe pourront poster dans le forum."
 
-#: ../user/team_forum.php:32
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "Selon votre choix, seuls les membres pourront lire."
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-"Vous et les administrateurs de votre équipe auront les privilèges de "
-"modérateur."
+msgstr "Vous et les administrateurs de votre équipe auront les privilèges de modérateur."
 
-#: ../user/team_forum.php:40
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "Créer un forum pour %1"
 
-#: ../user/team_forum.php:48
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "L'équipe a déjà un forum"
 
-#: ../user/team_forum.php:59
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "Forum de l'équipe"
 
-#: ../user/team_forum.php:71
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr "Délai minimum entre les dépôts de messages (en secondes)"
 
-#: ../user/team_forum.php:74
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
 msgstr "Crédit total minimum pour pouvoir poster"
 
-#: ../user/team_forum.php:77
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
 msgstr "Crédit moyen minimum pour pouvoir poster"
 
-#: ../user/team_forum.php:80
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr "Soumettre"
 
-#: ../user/team_forum.php:89
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr "Supprimer le forum de votre équipe."
 
-#: ../user/team_forum.php:97
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr "Voulez-vous vraiment supprimer le forum de votre équipe ?"
 
-#: ../user/team_forum.php:98
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"Êtes-vous sûr de vouloir supprimer le forum de votre équipe ? Tous les fils "
-"et messages seront alors définitivement supprimés. (Vous aurez néanmoins la "
-"possibilité de créer un nouveau forum ensuite)."
+msgstr "Êtes-vous sûr de vouloir supprimer le forum de votre équipe ? Tous les fils et messages seront alors définitivement supprimés. (Vous aurez néanmoins la possibilité de créer un nouveau forum ensuite)."
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr "Oui - supprimer le forum"
 
-#: ../user/team_forum.php:121
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr "Le forum a été supprimé"
 
-#: ../user/team_forum.php:124
+#: html/user/team_forum.php:132
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Le forum de votre équipe a été supprimé. Vous pouvez éventuellement en %"
-"1créer un nouveau%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Le forum de votre équipe a été supprimé. Vous pouvez éventuellement en %1créer un nouveau%2."
 
-#: ../user/team_forum.php:143
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr "Le forum de l'équipe a été mis à jour"
 
-#: ../user/team_forum.php:144
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr "Mis à jour avec succès"
 
-#: ../user/team_forum.php:147
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr "Échec de la mise à jour"
 
-#: ../user/team_forum.php:154
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr "L'équipe n'a pas de forum"
 
-#: ../user/team_founder_transfer_action.php:36
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "Vous devez être membre d'une équipe pour pouvoir accéder à cette page."
 
-#: ../user/team_founder_transfer_action.php:90
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr "Demande en cours du titre de fondateur pour %1"
 
-#: ../user/team_founder_transfer_action.php:98
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Le fondateur actuel a été notifié de votre demande par un e-mail et un "
-"message privé.<br /><br />\n"
-"                       Si le fondateur ne répond pas dans les 60 jours, vous "
-"serez alors autorisé à devenir le fondateur."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "Le fondateur actuel a été notifié de votre demande par un e-mail et un message privé.<br /><br />\n                       Si le fondateur ne répond pas dans les 60 jours, vous serez alors autorisé à devenir le fondateur."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
-msgstr ""
-"Les requêtes pour le titre de fondateur ne sont pas autorisées actuellement."
+msgstr "Les requêtes pour le titre de fondateur ne sont pas autorisées actuellement."
 
-#: ../user/team_founder_transfer_action.php:109
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr "Titre de fondateur assumé pour %1"
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"Félicitations ! Vous êtes maintenant le fondateur de l'équipe %1. Allez sur "
-"%2la page de votre compte%3 pour y trouver les options d'administration."
+msgstr "Félicitations ! Vous êtes maintenant le fondateur de l'équipe %1. Allez sur %2la page de votre compte%3 pour y trouver les options d'administration."
 
-#: ../user/team_founder_transfer_action.php:120
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr "Refuser la requête de changement de fondateur"
 
-#: ../user/team_founder_transfer_action.php:127
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr "La requête de titre de fondateur de %1 a été rejetée."
 
-#: ../user/team_founder_transfer_action.php:130
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr "Il n'y a aucune requête de titre de fondateur."
 
-#: ../user/team_founder_transfer_action.php:134
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr "action non-définie %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "Retour à la page principale"
 
-#: ../user/team_founder_transfer_form.php:28
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "Vous devez être membre d'une équipe pour accéder à cette page."
 
-#: ../user/team_founder_transfer_form.php:31
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "Demande le titre de fondateur pour %1"
 
-#: ../user/team_founder_transfer_form.php:38
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "Vous avez maintenant le titre de fondateur de %1."
 
-#: ../user/team_founder_transfer_form.php:44
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "Vous avez demandé le titre de fondateur de %1 le %2."
 
-#: ../user/team_founder_transfer_form.php:47
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr ""
-"Soixante jours se sont écoulés depuis votre requête et le fondateur n'a pas "
-"répondu. Vous pouvez maintenant prendre le titre de fondateur en cliquant "
-"ici :"
+msgstr "Soixante jours se sont écoulés depuis votre requête et le fondateur n'a pas répondu. Vous pouvez maintenant prendre le titre de fondateur en cliquant ici :"
 
-#: ../user/team_founder_transfer_form.php:50
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "Prendre le titre de fondateur"
 
-#: ../user/team_founder_transfer_form.php:54
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr ""
-"Le fondateur a été notifié de votre requête. S'il ne répond pas dans les %1, "
-"il vous sera proposé une option pour devenir le fondateur."
+msgstr "Le fondateur a été notifié de votre requête. S'il ne répond pas dans les %1, il vous sera proposé une option pour devenir le fondateur."
 
-#: ../user/team_founder_transfer_form.php:60
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"Si le fondateur de l'équipe n'est pas actif et que vous voulez assumer ce "
-"rôle, cliquer sur le bouton ci-dessous. Un e-mail sera envoyé au fondateur "
-"actuel pour détailler votre requête. Il pourra alors vous transférer le "
-"titre de fondateur ou refuser votre requête. Si le fondateur ne répond pas "
-"dans les 60 jours, vous serez alors autorisé à devenir fondateur.<br /><br "
-"/>\n"
-"                       Voulez-vous vraiment demander le titre de fondateur ?"
-
-#: ../user/team_founder_transfer_form.php:65
+msgstr "Si le fondateur de l'équipe n'est pas actif et que vous voulez assumer ce rôle, cliquer sur le bouton ci-dessous. Un e-mail sera envoyé au fondateur actuel pour détailler votre requête. Il pourra alors vous transférer le titre de fondateur ou refuser votre requête. Si le fondateur ne répond pas dans les 60 jours, vous serez alors autorisé à devenir fondateur.<br /><br />\n                       Voulez-vous vraiment demander le titre de fondateur ?"
+
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "Demander le titre de fondateur"
 
-#: ../user/team_founder_transfer_form.php:74
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-"Une demande de changement de fondateur a déjà été effectuée par %1 le %2."
+msgstr "Une demande de changement de fondateur a déjà été effectuée par %1 le %2."
 
-#: ../user/team_founder_transfer_form.php:77
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr ""
-"Un changement de fondateur a été demandé dans les 90 derniers jours : aucune "
-"nouvelle requête n'est donc autorisée. Veuillez réessayer ultérieurement."
+msgstr "Un changement de fondateur a été demandé dans les 90 derniers jours : aucune nouvelle requête n'est donc autorisée. Veuillez réessayer ultérieurement."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr "L'équipe %1 ne peut être rejointe."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr "Déjà un membre"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr "Vous êtes déjà membre de %1."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Impossible de rejoindre l'équipe - veuillez réessayer ultérieurement."
-
-#: ../user/team_join_action.php:40
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "A rejoint %1"
 
-#: ../user/team_join_action.php:41
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "Vous avez rejoint %1."
 
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Rejoindre %1"
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Impossible de rejoindre l'équipe - veuillez réessayer ultérieurement."
 
-#: ../user/team_join_form.php:33
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr "Veuillez noter :"
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-"Rejoindre une équipe donne à son fondateur l'accès à votre adresse e-mail."
+msgstr "Rejoindre une équipe donne à son fondateur l'accès à votre adresse e-mail."
 
-#: ../user/team_join_form.php:36
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "Rejoindre une équipe ne modifie pas le crédit sur votre compte."
 
-#: ../user/team_join_form.php:43
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr "Rejoindre l'équipe"
 
-#: ../user/team_lookup.php:84
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr "Résultats de la recherche"
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr "Résultats pour la recherche de '%1'"
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-"Vous pouvez voir les membres, les statistiques et les informations de ces "
-"équipes."
+msgstr "Vous pouvez voir les membres, les statistiques et les informations de ces équipes."
 
-#: ../user/team_lookup.php:98
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Plus de 100 équipes correspondent à vos critères de recherche. Seules les "
-"100 premières sont affichées."
+msgstr "Plus de 100 équipes correspondent à vos critères de recherche. Seules les 100 premières sont affichées."
 
-#: ../user/team_lookup.php:104
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Fin des résultats. %1 Si vous ne pouvez pas trouver l'équipe que vous "
-"recherchez, vous pouvez %2créer une équipe%3 par vous même."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Fin des résultats. %1 Si vous ne pouvez pas trouver l'équipe que vous recherchez, vous pouvez %2créer une équipe%3 par vous même."
 
-#: ../user/team_manage.php:26
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "Administration de l'équipe %1"
 
-#: ../user/team_manage.php:29
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr "Éditer les informations d'équipe"
 
-#: ../user/team_manage.php:30
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "Modifier le nom d'équipe, URL, description, type ou pays"
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr "Liste des membres :"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr "texte"
 
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Voir le nom des membres et leur adresse e-mail"
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Voir les infos membre"
+
+#: html/user/team_manage.php:40
 msgid "View change history:"
 msgstr "Historique des changements d'affichage :"
 
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
 msgstr "Voir quand les membres on rejoint ou quitté cette équipe"
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr "Répondre à une requête de titre de fondateur."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-"Si vous ne répondez pas par %1, %2 pourra obtenir le titre de fondateur de "
-"cette équipe."
+msgstr "Si vous ne répondez pas par %1, %2 pourra obtenir le titre de fondateur de cette équipe."
 
-#: ../user/team_manage.php:55
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr "Supprimer de cette équipe les membres inactifs ou non désirés"
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr "Transférer le titre de fondateur à un autre membre"
 
-#: ../user/team_manage.php:58
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr "Ajouter/Supprimer un administrateur de l'équipe"
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
-msgstr ""
-"Donner les privilèges d'administrateur de l'équipe aux membres sélectionnés"
+msgstr "Donner les privilèges d'administrateur de l'équipe aux membres sélectionnés"
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr "Supprimer l'équipe"
 
-#: ../user/team_manage.php:62
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr "Autorisé uniquement si l'équipe ne possède aucun membre"
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr "Créer ou gérer un forum d'équipe"
 
-#: ../user/team_manage.php:71
+#: html/user/team_manage.php:75
 msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Pour avoir cette équipe présente sur tous les projets BOINC (présents et "
-"futurs), vous pouvez la qualifier %1d'équipe générale BOINC%2."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Pour avoir cette équipe présente sur tous les projets BOINC (présents et futurs), vous pouvez la qualifier %1d'équipe générale BOINC%2."
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
-msgstr ""
-"Les administrateurs d'équipe sont encouragés à rejoindre et à participer au "
-"groupe Google %1boinc-team-founders%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"D'autres ressources pour les administrateurs d'équipe BOINC sont disponibles "
-"sur le site tiers : %1www.boincteams.com%2."
+msgstr "Les administrateurs d'équipe sont encouragés à rejoindre et à participer au groupe Google %1boinc-team-founders%2."
 
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr "Impossible de supprimer une équipe non vide"
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr "L'équipe %1 a été supprimée"
 
-#: ../user/team_members.php:36
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-"Limite dépassée : seuls les 1000 premiers membres peuvent être affichés."
+msgstr "Limite dépassée : seuls les 1000 premiers membres peuvent être affichés."
 
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Membres de %1"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 participants peuvent former une %2équipes%"
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Vous ne pouvez appartenir qu'à une seule équipe. Vous pouvez quitter ou joindre une équipe à tout moment."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Chaque équipe a un %fondateur%2 qui peut :"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "éditer le nom et la description de l'équipe"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "Ajouter ou supprimer des administrateurs de l'équipe"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "supprimer des membres de l'équipe"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "supprimer l'équipe si elle n'a aucun membre"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Pour rejoindre une équipe, visitez la page de cette équipe et cliquez sur %Rejoindre cette équipe%2."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Trouver une équipe"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Toutes les équipes"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 équipes"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Créer une nouvelle équipe"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Si vous ne trouvez pas d'équipe vous correspondant, vous pouvez %1créer une équipe%2."
 
-#: ../user/team_quit_action.php:32
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "Impossible de quitter l'équipe"
 
-#: ../user/team_quit_action.php:33
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "L'équipe n'existe pas, ou vous n'en êtes pas membre."
 
-#: ../user/team_quit_form.php:31
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "Quitter %1"
 
-#: ../user/team_quit_form.php:32
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
-msgstr ""
-"<strong>Avant de quitter une équipe, veuillez noter :</strong>\n"
-"         <ul>\n"
-"         <li>Si vous quittez une équipe, vous pourrez la rejoindre à nouveau "
-"ultérieurement, ou rejoindre une autre équipe.\n"
-"         <li>Quitter une équipe ne modifie aucunement les statistiques de "
-"votre crédit personnel.\n"
-"          </ul>"
+msgstr "<strong>Avant de quitter une équipe, veuillez noter :</strong>\n         <ul>\n         <li>Si vous quittez une équipe, vous pourrez la rejoindre à nouveau ultérieurement, ou rejoindre une autre équipe.\n         <li>Quitter une équipe ne modifie aucunement les statistiques de votre crédit personnel.\n          </ul>"
 
-#: ../user/team_quit_form.php:40
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "Quitter l'équipe"
 
-#: ../user/team_remove_inactive_action.php:31
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "Enlever les utilisateurs de %1"
 
-#: ../user/team_remove_inactive_action.php:39
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1 n'est pas membre de %2"
 
-#: ../user/team_remove_inactive_action.php:42
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 a été enlevé"
 
-#: ../user/team_remove_inactive_form.php:32
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "Enlever les membres de %1"
 
-#: ../user/team_remove_inactive_form.php:39
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr "Enlever ?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr "Nom (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr "Aucun membre n'est éligible pour la suppression."
 
-#: ../user/team_remove_inactive_form.php:68
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr "Enlever les utilisateurs"
 
-#: ../user/team_search.php:68
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr "Nom d'équipe"
 
-#: ../user/team_search.php:92
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Validé?"
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr "Résultats de la recherche d'équipe"
 
-#: ../user/team_search.php:94
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"Aucune équipe correspondant à vos critères n'a été trouvée. Essayez une "
-"autre recherche."
+msgstr "Aucune équipe correspondant à vos critères n'a été trouvée. Essayez une autre recherche."
 
-#: ../user/team_search.php:96
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr "Sinon vous pouvez %1créer une nouvelle équipe%2."
 
-#: ../user/team_search.php:100
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"Les équipes suivantes correspondent à au moins un critère de votre "
-"recherche.\n"
-"            Pour rejoindre une équipe, cliquer sur son nom aller sur la page "
-"de l'équipe,\n"
-"            ensuite cliquer %1Rejoindre cette équipe%2."
+msgstr "Les équipes suivantes correspondent à au moins un critère de votre recherche.\n            Pour rejoindre une équipe, cliquer sur son nom aller sur la page de l'équipe,\n            ensuite cliquer %1Rejoindre cette équipe%2."
 
-#: ../user/team_search.php:107
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr "Modifier votre recherche"
 
-#: ../user/team_search.php:181
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr ""
-"Vous pouvez constituer une équipe avec d'autres personnes ayant des intérêts "
-"similaires, ou d'un même pays, d'une même compagnie, ou bien encore d'une "
-"même école."
+msgstr "Vous pouvez constituer une équipe avec d'autres personnes ayant des intérêts similaires, ou d'un même pays, d'une même compagnie, ou bien encore d'une même école."
 
-#: ../user/team_search.php:183
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
-msgstr ""
-"Utiliser ce formulaire pour trouver des équipes qui peuvent vous "
-"correspondre."
+msgstr "Utiliser ce formulaire pour trouver des équipes qui peuvent vous correspondre."
 
-#: ../user/team_search.php:188
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "%1Je ne suis pas intéressé%2 pour rejoindre une équipe maintenant."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "Limite dépassée - Désolé, mais seulement les %1 items"
 
-#: ../user/top_hosts.php:82
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "Top des hôtes"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr "Top %1 des équipes"
 
-#: ../user/top_teams.php:108
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr "In n'y a pas %1 équipes"
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr "Participant depuis"
 
-#: ../user/uotd.php:29
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr "Aucun 'utilisateur du jour' n'a été choisi."
 
-#: ../user/uotd.php:33
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr "Utilisateur du jour pour %1 : %2"
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr "Filtres"
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr "Le nom d'utilisateur commence par"
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr "N'importe"
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr "Avec un profil ?"
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr "Soit"
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr "Sur une équipe ?"
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr "En train de trier"
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr "Date d'inscription décroissante"
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr "Crédit moyen décroissant"
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr "Crédit total décroissant"
 
-#: ../user/user_search.php:100
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr "la chaîne doit contenir au moins 3 caractères"
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr "Résultats de la recherche d'utilisateur"
 
-#: ../user/user_search.php:140
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr "Rejoint"
 
-#: ../user/user_search.php:148
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr "Aucun utilisateur ne correspond aux critères de recherche."
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr "Utilisateur non trouvé !"
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr "Données de compte<br/>pour %1<br/>Date :"
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr "Équipe :"
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr "Crédit total de l'équipe :"
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr "Crédit moyen de l'équipe :"
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr "Équipe : aucune"
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr "Valider l'adresse e-mail BOINC"
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr ""
-"Veuillez visiter le lien suivant pour valider l'adresse e-mail pour votre "
-"compte %1 :"
+msgstr "Veuillez visiter le lien suivant pour valider l'adresse e-mail pour votre compte %1 :"
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr "E-mail de validation envoyé"
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr ""
-"Un e-mail a été envoyé à %1. Visitez le lien qu'il contient pour valider "
-"votre adresse e-mail."
+msgstr "Un e-mail a été envoyé à %1. Visitez le lien qu'il contient pour valider votre adresse e-mail."
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr "Utilisateur inexistant."
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
-msgstr ""
-"Erreur dans les données de l'URL - impossible de valider l'adresse e-mail"
+msgstr "Erreur dans les données de l'URL - impossible de valider l'adresse e-mail"
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
-msgstr ""
-"Échec de la mise à jour de la base de données - veuillez réessayer "
-"ultérieurement."
+msgstr "Échec de la mise à jour de la base de données - veuillez réessayer ultérieurement."
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
 msgstr "Valider l'adresse e-mail"
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr "L'adresse e-mail de votre compte a été validée."
 
-#: ../user/view_profile.php:36
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "Cet utilisateur n'a pas de profil"
 
-#: ../user/view_profile.php:54
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "Profil : %1"
 
-#: ../user/view_profile.php:63
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr "Données de compte"
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"Vous pouvez accéder à votre compte soit en utilisant votre adresse email et "
-"mot de passe\n"
-"             ou en utilisant une 'clé de compte'.\n"
-"             Votre clé de compte est :"
+msgstr "Vous pouvez accéder à votre compte soit en utilisant votre adresse email et mot de passe\n             ou en utilisant une 'clé de compte'.\n             Votre clé de compte est :"
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr "Cette clé peut être utilisée pour:"
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr "se connecter à votre compte sur Internet"
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"pour rattacher un ordinateur à votre compte sans utiliser le BOINC Manager\n"
-"                        Vous devez installer BOINC,\n"
-"                        crée un répertoire nommé %1 dans le répertoire\n"
-"                         de données BOINC, et définir son contenu à:"
+msgstr "pour rattacher un ordinateur à votre compte sans utiliser le BOINC Manager\n                        Vous devez installer BOINC,\n                        crée un répertoire nommé %1 dans le répertoire\n                         de données BOINC, et définir son contenu à:"
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr "Clé de compte non robuste"
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"Votre 'clé de compte non robuste' peut être utilisée pour rattacher des "
-"ordinateurs à votre compte\n"
-"        comme décrit ci-dessus, mais ne peut pas être utilisée pour se "
-"connecter à votre compte ou le modifier en aucune façon.\n"
-"        Si vous voulez rattacher des ordinateurs dans lesquels vous n'avez "
-"pas confiance ou qui ne sont pas sûrs à votre compte,\n"
-"        faites le avec votre clé de compte non robuste.\n"
-"        Votre clé de compte non robuste est:"
+msgstr "Votre 'clé de compte non robuste' peut être utilisée pour rattacher des ordinateurs à votre compte\n        comme décrit ci-dessus, mais ne peut pas être utilisée pour se connecter à votre compte ou le modifier en aucune façon.\n        Si vous voulez rattacher des ordinateurs dans lesquels vous n'avez pas confiance ou qui ne sont pas sûrs à votre compte,\n        faites le avec votre clé de compte non robuste.\n        Votre clé de compte non robuste est:"
 
-#: ../user/weak_auth.php:81
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
-"Si vous changez votre mot de passe, votre clé de compte non robuste change, "
-"et vos clés de compte non robustes antérieures ne sont plus valides."
+msgstr "Si vous changez votre mot de passe, votre clé de compte non robuste change, et vos clés de compte non robustes antérieures ne sont plus valides."
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr "impossible de trouver l'unité de travail"
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr "Unité de travail %1"
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "applications"
+
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr "résultats canoniques"
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr "crédit accordé"
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Tâches en cours"
+
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "Suppression en cours"
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
 msgstr "quorum minimum"
 
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr "réplication initiale"
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
 msgstr "nombre maximum de tâches en erreur/totales/succès"
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr "erreurs"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr "validation"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr "En attente"
 
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Page principale"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:48
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr "Généré"
 
-#: ../project.sample/project.inc:79
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
 msgstr "Votre parcours personnel."
 
-#: ../project.sample/project.inc:83
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Parlez-nous de vous. Vous pouvez nous dire d'où vous venez, votre âge, vos "
-"occupations et hobbies, ou toutes autres choses vous concernant."
+msgstr "Parlez-nous de vous. Vous pouvez nous dire d'où vous venez, votre âge, vos occupations et hobbies, ou toutes autres choses vous concernant."
 
-#: ../project.sample/project.inc:87
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr "Votre opinion concernant %1"
 
-#: ../project.sample/project.inc:91
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"Dites nous vos pensées à propos de %1<ol>\n"
-"    <li>Pourquoi utilisez vous %1?\n"
-"    <li>Quel est votre point de vue à propos du projet ?\n"
-"    <li>Des suggestions ?\n"
-"    </ol>"
+msgstr "Dites nous vos pensées à propos de %1<ol>\n    <li>Pourquoi utilisez vous %1?\n    <li>Quel est votre point de vue à propos du projet ?\n    <li>Des suggestions ?\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr "Combinaison de couleurs des graphismes"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "Pourcentage maximal de CPU pour les graphiques %10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr "Utiliser uniquement les applications sélectionnées"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Ne recevoir du travail que pour certaines applications. Utile pour se concentrer sur certaines applications, ou pour en exclure."
+
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
-msgstr ""
-"Si aucun travail n'est disponible pour les applications sélectionnées, "
-"autoriser des travaux pour d'autres applications ? "
+msgstr "Si aucun travail n'est disponible pour les applications sélectionnées, autoriser des travaux pour d'autres applications ? "
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Utilisez une application non graphique plus rapide, si disponible ? "
+
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr "(toutes les applications)"
 
-#~ msgid "Error:"
-#~ msgstr "Erreur:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "La création de compte est désactivée"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Désolé, ce projet a désactivé la création de nouveaux comptes.\n"
-#~ "Merci de réessayer plus tard."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "La création de compte est désactivée pour le moment. Veuillez réessayer plus "
-#~ "tard."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "GPU nvidia"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Ce projet n'a pas créé de message email - merci de le signaler à ses "
-#~ "administrateurs"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Cela s'applique à tous les projets BOINC auxquels vous participez.<br>\n"
-#~ "           Sur les ordinateurs qui participent à plusieurs projets, les "
-#~ "dernières modifications des préférences seront utilisées."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Exporter cette actualité en tant que Notification"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Aller dans le répertoire BOINC data sur votre ordinateur (sous Windows cela "
-#~ "se trouve généralement   <b>C:\\Documents and Settings\\All Users\\Application "
-#~ "Data\\BOINC</b> ou <b>C:\\Program Files\\BOINC</b>)."
-
-#~ msgid "No such task"
-#~ msgstr "Aucune tâche de ce type"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "L'ordinateur est connecté à internet environ tous les %1 Laisser vide ou à 0 "
-#~ "si connecté en permanence.%2BOINC va essayer de maintenir au moins cette "
-#~ "quantité de travail (10 jours max).%3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Maintenir suffisamment de travail pour un additionnel"
-
-#~ msgid "Update failed: "
-#~ msgstr "Échec de la mise à jour : "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Fournit un %1accès limité%2 àvotre compte"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "N'utilisez pas ce formulaire. Lancez simplement le BOINC manager, "
-#~ "sélectionnez \"Ajouter un projet\", et saisissez votre adresse email et votre "
-#~ "mot de passe."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Ne pas trier les sujets épinglés"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Si un sujet contient plus que ce nombre de messages"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "ne montrer que le premier message et cette quantité parmi les derniers"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Votre signalement a été enregistré. Merci de votre participation."
-
-#~ msgid "Search type"
-#~ msgstr "Type de recherche"
-
-#~ msgid "User names starting with"
-#~ msgstr "Noms d'utilisateurs commençant par"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Votre 'clé de compte faible' vous permet d'attacher des ordinateurs à votre "
-#~ "compte sans pour autant leur donner la possibilité de se connecter à votre "
-#~ "compte ou de le modifier."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Ce mécanisme fonctionne seulement avec les projets qui ont fait une mise à "
-#~ "niveau logicielle de leur serveurs vers une version du 7 décembre 2007 ou "
-#~ "plus récente."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Votre clef de compte simplifiée pour ce projet est : "
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Pour utiliser votre clef de compte simplifiée sur un hôte donné, rechercher "
-#~ "ou créer le 'fichier de compte' pour ce projet. Ce fichier a un nom de la "
-#~ "forme <b>compte_PROJET_URL.xml</b>. Le fichier de compte pour %1 est <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Créer ce fichier si nécessaire. Y mettre le contenu suivant :"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Votre clef de compte simplifiée est fonction de votre mot de passe. Si vous "
-#~ "modifiez votre mot de passe, votre clef de compte simplifiée change, et vos "
-#~ "clefs de compte simplifiées précédentes deviennent invalides."
-
-#~ msgid "Account key"
-#~ msgstr "Clé de compte"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Accès complet à votre compte"
-
-#~ msgid "Export"
-#~ msgstr "Exporter"
-
-#~ msgid "- private message"
-#~ msgstr "- message privé"
-
-#~ msgid "Private message from"
-#~ msgstr "Message privé de"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Vérification de l'adresse email en attente"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Connecté en tant que %1."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Connecté avec une autre identité."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr "Aucun sujet avec l'id %1. Veuillez vérifier le lien et réessayer."
-
-#~ msgid "Request not found"
-#~ msgstr "Requête introuvable"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 vous a ajouté en tant qu'ami."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Données de compte pour %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "impossible de créer le forum"
-
-#~ msgid "message board not found"
-#~ msgstr "impossible de trouver le forum"
-
-#~ msgid "no such forum"
-#~ msgstr "Ce forum n'existe pas"
-
-#~ msgid "unknown command %1"
-#~ msgstr "commande inconnue %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "ERREUR: %1 n'existe pas!  Impossible de créer la combo box.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Afin de protéger les pages web du projet contre les attaques de spammeurs "
-#~ "nous vous demandons de bien vouloir saisir les deux mots de l'image :"
-#~ "<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "Version du client BOINC"
-
-#~ msgid "Client detached"
-#~ msgstr "Client détaché"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "Quota maximum d'unité de travail (WU) journalier par CPU"
-
-#~ msgid "%1/day"
-#~ msgstr "%1 par jour"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "Plateforme anonyme - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "Plateforme anonyme - GPU NVIDIA"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "Plateforme anonyme - GPU ATI"
-
-#~ msgid "Task ID"
-#~ msgstr "ID de tâche"
-
-#~ msgid "Granted credit"
-#~ msgstr "Crédit accordé"
-
-#~ msgid "Click to"
-#~ msgstr "Cliquer pour"
-
-#~ msgid "(no restriction if equal)"
-#~ msgstr "(aucune restriction si égaux)"
-
-#~ msgid "percent of CPU time"
-#~ msgstr "pourcents du temps CPU"
-
-#~ msgid "Leave at least"
-#~ msgstr "Laisser au moins"
-
-#~ msgid "% of page file (swap space)"
-#~ msgstr "% du fichier de pagination (swap)"
-
-#~ msgid "Use ATI GPU if present %1(enforced by 6.10+ clients)%2"
-#~ msgstr "Utiliser le GPU ATI si présent %1(applicable aux clients 6.10+)%2"
-
-#~ msgid "KB/s"
-#~ msgstr "KB/s"
-
-#~ msgid "GB disk space"
-#~ msgstr "GB d'espace disque"
-
-#~ msgid "GB disk space free"
-#~ msgstr "GB d'espace disque disponible"
-
-#~ msgid "(no restriction)"
-#~ msgstr "(aucune restriction)"
-
-#~ msgid "%1 GB disk space"
-#~ msgstr "%1 GB d'espace disque"
-
-#~ msgid "%1 GB disk space free"
-#~ msgstr "%1 GB d'espace disque disponible"
-
-#~ msgid ""
-#~ "Resource share %1If you participate in multiple BOINC projects, this is "
-#~ "the proportion of your resources used by %2%3"
-#~ msgstr ""
-#~ "Partage de ressources %1Si vous participez à plusieurs projets BOINC, "
-#~ "c'est la proportion de vos ressources utilisée par %2%3"
-
-#~ msgid "Gbytes"
-#~ msgstr "Goctets"
-
-#~ msgid "Resource share"
-#~ msgstr "Ressource partagée"
-
-#~ msgid "stderr out"
-#~ msgstr "Sortie sur stderr"
-
-#~ msgid "<p>"
-#~ msgstr "<p>"
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Pas de limite"
 
-#~ msgid "Last %1"
-#~ msgstr "Derniers %1"
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Nbre max de tâches pour ce projet"
 
-#~ msgid "CHARSET"
-#~ msgstr "CHARSET"
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Nbre max de processeurs pour ce projet"
 
-#~ msgid "Resource share and graphics"
-#~ msgstr "Partage de ressources et graphiques"
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "Tâches Max"
 
-# c'est quoi ça ?
-#~ msgid "fll"
-#~ msgstr "fll"
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "CPU Max"
diff --git a/html/languages/translations/hu.po b/html/languages/translations/hu.po
deleted file mode 100644
index 588466b..0000000
--- a/html/languages/translations/hu.po
+++ /dev/null
@@ -1,7146 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-04-05 17:35+0000\n"
-"Last-Translator: Gabor <csega at mailbox.hu>\n"
-"Language-Team: \n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n !=1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Bookmarks: 7,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1396719309.0\n"
-
-# The name of this language in this language
-msgid "LANG_NAME_NATIVE"
-msgstr "Magyar"
-
-# The name of this language in an international language (English)
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Hungarian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Félkövér szöveg: [b]szöveg[/b] (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Dőlt szöveg: [i]szöveg[/i] (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Aláhúzott szöveg: [u]szöveg[/u] (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Idézett szöveg: [quote]szöveg[/quote] (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Kód megjelenítése: [code]kód[/code] (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]szöveg[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Rendezett lista: [list=]szöveg[/list] (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Kép beszúrása: [img]http://kép_url-je[/img] (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"URL beszúrása: [url]http://url[/url] vagy [url=http://url]URL szöveg[/url] "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Betűszín"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Betűszín: [color=red]szöveg[/color] Tipp: használhatja a color=#FF0000 "
-"kifejezést is"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Alapértelmezett"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Sötétpiros"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Piros"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Narancssárga"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Barna"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Citromsárga"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Zöld"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliva"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Cián"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Kék"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Sötétkék"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indigó"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Ibolya"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Betűméret"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Betűméret: [size=x-small]kis méretű szöveg[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Kicsi"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normál"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Nagy"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Minden nyitott bbKód címke bezárása"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Címkék bezárása"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Legrégebbit előre"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Legújabbat előre"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "A legnépszerűbb bejegyzést előre"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Legújabb bejegyzést előre"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "A legnézettebbet előre"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Legtöbb bejegyzést előre"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Szavak keresése a fórumüzenetekben"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Keresés a fórumokban"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Részletes keresés"
-
-# #######################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Személyes üzenetek"
-
-# #######################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Kérdések és válaszok"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Üzenőfalak"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 üzenőfal"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Előző"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Következő"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Szerző"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Üzenet"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Üzenet küldése"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Privát üzenet küldése neki: %1"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Csatlakozott: %1"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Bejegyzések: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Kredit: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Ezt az üzenetet még nem olvasta"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Olvasatlan"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "%1. üzenet"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "rejtett"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Beküldve: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr "- válasz erre:"
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Szerkesztés"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Üzenet szerkesztése"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Utolsó módosítás: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Ez a bejegyzés nem látható, mert a beküldője az Ön \"mellőzöttek\" listáján "
-"van. Kattintson %1ide%2 a megtekintéshez."
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Bejegyzés jelentése, mert sértő"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Sértő bejegyzés jelentése"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Minősítés: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "minősítés: "
-
-# 83%
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Kattintson ide, ha tetszik ez az üzenet"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Pozitív"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Kattintson ide, ha nem tetszik ez az üzenet"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Negatív"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Válasz"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Válasz erre az üzenetre"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Idézés"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Válasz ebből az üzenetből vett idézettel"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Egy moderátor elrejtette"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "%2 írta ekkor: %1"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Nem írhat vagy minősíthet üzeneteket %1-ig"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-"\n"
-"<ul>\n"
-"<li> A bejegyzéseknek \"gyerekbarátnak\" kell lenniük:\n"
-"nem lehet bennük trágár, gyűlölködő,\n"
-"nyíltan szexualitásról szóló, vagy ezekre utaló tartalom.\n"
-"<li> Nem lehetnek bennük reklámok.\n"
-"<li> Tilos a szexuális tartalmakkal, szerencsejátékkal\n"
-"foglalkozó, vagy mások felé intoleranciát tanúsító\n"
-"oldalakra mutató linkek közzététele.\n"
-"<li> Tilos a megzavarónak, sértőnek szánt hozzászólás,\n"
-"illetve a téma elterelése.\n"
-"<li> Tilos a szándékosan rosszindulatú, ellenszenvet tükröző üzenetek "
-"közzététele.\n"
-"<li> Nem megengedett a gyalázkodó hozzászólás, ide értve a faji, vallási,\n"
-"nemzetiségi, nemekkel kapcsolatos, osztályi, vagy szexuális témákat.\n"
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Szabályok:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "További infó"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Felfed"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Hozzászólás felfedése"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Elrejt"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Hozzászólás elrejtése"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Mozgat"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Hozzászólás áthelyezése egy másik témába"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Szerző kitiltása"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Legyen kitiltva a szerző"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Ne legyen kitiltva a szerző"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Szavazás indítása a szerző kitiltásáról"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "A csapat üzenőfalára csak csapattagok írhatnak"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Új %1 téma készítéséhez rendelkeznie kell egy meghatározott mennyiségű "
-"kredittel. Erre a rendszer használatával való visszaélések elkerülése végett "
-"van szükség."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Ebben a pillanatban nem készíthet új témát. Kérjük, várjon egy kicsit, "
-"mielőtt újra próbálná. Ez a késleltetés a rendszer használatával való "
-"visszaélés megakadályozása érdekében került bevezetésre."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Ez a téma le van zárva. Csak a fórum moderátorai és adminisztrátorai "
-"írhatnak ide."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Ne szólhat hozzá rejtett témához."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Téma"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Üzenetek"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Megtekintések"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Utolsó üzenet"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Új hozzászólások e témában: %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Új hozzászólások a témában, amire feliratkozott"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Új hozzászólások vannak e témában: '%1'"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Minden téma megjelölése olvasottként"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Minden üzenőfal minden témáját 'olvasott'-nak jelöli."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Nincs kiszolgáló"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Nem elérhető"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Otthon"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Munka"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Csoport"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Frissítés"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Számítógép infó..."
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP cím"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(ugyanez a legutóbbi %1 alkalommal)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Külső IP cím"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Mutasd az IP címet"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Domain név"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Standard helyi idő"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 óra"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Tulajdonos"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Névtelen"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Létrehozva"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Összes kredit"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Átlag kredit"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Kereszt project kredit"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Processzor típus"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "processzorok száma"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Társprocesszorok"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Operációs rendszer"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC verzió"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Memória"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Swap tárhely"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Teljes lemezterület"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Szabad lemezterület"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Mért lebegőpontos-sebesség"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 millió művelet/sec"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Mért fixpontos-sebesség"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Átlagos feltöltési sebesség"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Ismeretlen"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Átlagos letöltési sebesség"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Átlagos fordulási idő"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 nap"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Az alkalmazás részletei"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Mutasd"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Feladatok"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "A kliens szerverhez való kapcsolódásainak száma"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Utolsó kapcsolódás a kiszolgálóhoz"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "%-a az időnek, amikor a BOINC fut"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Az idő azon %-a, amikor a gazdagépen van internetkapcsolat a BOINC futása "
-"közben"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Az idő azon %-a, amikor munka engedélyezve van a BOINC futása közben"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Átlagos CPU teljesítmény"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Feladat időtartam korrekciós faktor"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Hely"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Számítógép törlése"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Egyesítse ezen számítógép kettőzött bejegyzéseit"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Egyesítés"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Utolsó kapcsolat"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Számítógép infó"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rang"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Átl. kredit"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operációs rendszer"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 processor)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Részletek"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Projekt-közi statisztikák:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "A(z) %1 gépnek átfedő élettartama van:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "A(z) %1 számítógépnek nem kompatibilis operációs rendszere van:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "A(z) %1 számítógépnek nem kompatibilis a CPU-ja:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "ugyanaz a számítógép"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Nem tudom egyesíteni %1 és %2 gépeket - nem kompatibilisek"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "%1 és %2 számítógép egyesítése"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Az új számítógép kreditjei nem frissíthetők"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Az eredmények nem frissíthetők"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "A régi számítógép nem leválaszható"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "%1 régi számítógép leválasztva"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Mutasd:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Minden számítógép"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Csak az utóbbi 30 napban aktív számítógépek"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "Számítógép ID"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Név"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br>verzió"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Számítógépek egyesítése név szerint"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Hozzászólás"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "A hírek elérhetőak %sRSS feed%s formában"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Bejövő"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Levélírás"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Privát üzenet küldése"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Előnézet"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "nincs ilyen üzenet"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Címzett"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Felhasználói IDk, vagy egyedei felhasználónevek, vesszővel elválasztva"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Tárgy"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Üzenet küldése"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "privát üzenetet küldött; tárgy:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Privát üzenet%1, küldte: %2, tárgy:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Nem hozható létre üzenet"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Nem küldhet ilyen gyakran privát üzeneteket. Kérjük, várjon egy kicsit, "
-"mielőtt további üzeneteket küldene."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "olvasatlan"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Email értesítéshez %1módosítsa a közösségi beállításokat%2"
-
-# #######################################
-# Private messages
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Személyes üzenet"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Felfüggeszti a munkát, ha a számítógép akkumulátorról működik? %1 Csak "
-"hordozható számítógépeknél fontos %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Felfüggeszti a munkát, ha a számítógép használatban van?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Felfüggeszti a GPU munkát, ha a számítógép használatban van? %1 Kényszerítve "
-"a 6.6.21+ verzióknál %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-"'A használatban' azt jelenti, hogy egér/billentyűzet aktivitás volt "
-"észlelhető az utóbbi"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "percben"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Munka felfüggesztése, ha nem észlelhető egér/billentyűzet aktivitás az "
-"utóbbi %1 alatt. Néhány számítógépnél szükséges az alacsony "
-"energiafogyasztású módba lépéshez %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Munka felfüggesztése, ha a BOINC-on kívüli CPU használat %1 fölött van, 0 "
-"esetén nincs korlátozás<br>Kényszerítve a 6.10.30 fölötti verzióknál%2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Csak ezen időszakban dolgozzon: %1 Nincs korlátozás, ha megegyeznek %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"A feladatokat a memóriában hagyjam a felfüggesztés alatt? %1 A "
-"felfüggesztett feladatok lapozó területet foglalnak, ha az 'igen'-t "
-"választja %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Váltás a feladatok között ennyi időnként: %1 Ajánlott: 60 perc %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Többprocesszoros rendszereken legfeljebb"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "processzor"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Többprocesszoros rendszereken legfeljebb %1 Kényszerítve a 6.1+ verzióknál %"
-"2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "%-át használja a processzoroknak"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "Legfeljebb %1 A CPU hőkibocsátás csökkentésére használható %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "%-át használja a CPU időnek"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Lemez: legfeljebb"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Lemez: hagyjon szabadon legalább ennyit: %1 Ha az érték kisebb, mint %2, "
-"figyelmen kívül hagyjuk %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-#, fuzzy, php-format
-msgid "% of total"
-msgstr "%-a a teljesnek"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Feladat lemezre mentése legfeljebb ennyi időnként:"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "másodperc"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Swap terület: használjon legfeljebb"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-"Memória: ha a számítógép használatban van, legfeljebb ennyit használjon:"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-"Memória: ha a számítógép nincs használatban, legfeljebb ennyit használjon:"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "nap"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Megerősítést kér, mielőtt csatlakozik az Internethez? %1 Csak modemes, ISDN "
-"vagy VPN kapcsolat esetén számít. %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Lecsatlakozik, ha kész? %1 Csak modemes, ISDN vagy VPN kapcsolat esetén "
-"számít. %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Maximális letöltés:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbájt/mp"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Maximális feltöltés:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Csak ebben az időszakban használja a hálózatot"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Legfeljebb %1 adatot vigyen át. Kényszerítve 6.10.46 verzió felett. %2"
-
-#: ../inc/prefs.inc:269
-#, fuzzy
-msgid "Mbytes every"
-msgstr "Megabájtonként"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Kihagyja a képfájl ellenőrzését? %1 CSAK akkor válassza ezt, ha az "
-"internetszolgáltatója (pld. az UMTS) módosítja a képfájlokat. %2 Az "
-"ellenőrzés kihagyása csökkenti a BOINC biztonságát. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Erőforrás-megosztás %1 Meghatározza, a számítógépe erőforrásainak mekkora "
-"része legyen ehhez a projekthez rendelve. Például ha két BOINC projektben "
-"vesz részt 100 és 200 erőforrás-megosztással, az első az erőforrások 1/3-át, "
-"a második a 2/3-át kapja. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-"Felgyorsítsa a GPU-feladatokat úgy, hogy egy-egy CPU-t rendel mindegyikhez?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Használja a CPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Használja az ATI GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Használja az NVIDIA GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Használja az ATI GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Szeretne teszt-alkalmazásokat futtatni? %1 Ezzel segít nekünk az "
-"alkalmazások fejlesztésében, de néha a feladatok elvesztését okozhatja "
-"számítógépén. %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Az emailek erről a címről fognak érkezni: %1; bizonyosodjon meg róla, hogy a "
-"spamszűrője elfogadja ezt a címet!"
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Jóváhagyja, hogy %1 és az Ön csapata (ha van) emailt küldhessen Önnek?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Megjelenítheti a(z) %1 weboldalán az Ön számítógépét?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Lemez- és memóriahasználat"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Processzorhasználat"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Hálózathasználat"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Ezek a beállítások minden BOINC projektre vonatkoznak, amiben részt vesz."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1 Nem sikerült frissíteni a beállításokat. %2 A pirossal jelöl értékek az "
-"elfogadható tartományon kívül esnek, vagy nem számok."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "hibás hely: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "hibás részhalmaz: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "igen"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nem"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "nincs korlát"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Hozzáadás"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Eltávolítás"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Számítás"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Külön beállítások %1 számára"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Beállítások szerkesztése"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Külön beállítások hozzáadása ehhez: %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Nézet váltása)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Kombinált beállítások"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Projektspecifikus beállítások"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Elsődleges (alapértelmezett) beállítások"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "%1 beállítások szerkesztése"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Utoljára módositott beállítások"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Beállítások hozzáadása"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Beállítások frissítése"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "A számítógép alapértelmezett helye"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "és"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"A profilját láthatóvá tesszük másoknak is, amint a projekt jóváhagyja azt. "
-"Ez akár néhány napba is telhet."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"A profilja elfogadhatatlannak lett jelölve. Mások nem láthatják. Kérjük, "
-"változtassa meg."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Adatbázis hiba"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"A levélszemét elleni intézkedések részeként a(z) %1 átlagos kredit alatti "
-"felhasználók profiljait csak bejelentkezett felhasználók láthatják. Elnézést "
-"kérünk a kényelmetlenségért."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Felhasználó száműzve"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Ilyen felhasználói azonosítóval nem létezik profil."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Profil szerkesztése"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Az Ön véleménye erről a profilról"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Profil előterjesztése a Nap felhasználójának:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1Tetszik%2 ez a profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Sértő profil esetén az adminisztrátorok értesítése:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1Nem tetszik%2  ez a profil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Névtelen platform"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Nincs az adatbázisban"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "függőben"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Mind"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "Folyamatban"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Érvényes"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Érvénytelen"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Hiba"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inaktív"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Nincs elküldve"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Elkészült, jóváhagyásra vár"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Elkészült és jóváhagyva"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Elkészült, érvénytelennek jelölve"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Elkészült, nem lehet érvényesíteni"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Elkészült, az érvényesítés hatástalan"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Elkészült, túl késő érvényesíteni"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Elkészült"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Nem lehet elküldeni"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Kiszolgáló által törölve"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Hiba történt a letöltés alatt"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Hiba történt a számolás közben"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Hiba a feltöltás alatt"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Felhasználó által megszakítva"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Feltöltés sikertelen"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Idő lejárt - nincs válasz"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Nem szükséges"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Érvényesítési hiba"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Eldobva"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Vége"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Sikeres"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Számolási hiba"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Felesleges eredmény"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Nincs válasz"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Új"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Letöltés"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Feldolgozás"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Számolási hiba"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Feltöltés"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Kész"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Kezdeti"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Nem szükséges"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Munkacsomag hiba - ellenőrzés kihagyva"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Ellenőrizve, de még nincs megegyezés"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "A feladat elfogadásának határideje lejárt"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Az eredményt nem lehet elküldeni"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Túl sok hiba (talán hibás a program)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Túl sok eredmény (lehet, hogy nem meghatározható)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Túl sok teljes eredmény"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "MCs elvetve"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Ismeretlen hiba: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Feladat neve"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "kattintson a részletekért"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "ID-k mutatása"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Nevek mutatása"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Feladat"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Munkacsomag"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Számítógép"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Elküldve"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "A jelentés ideje<br />vagy határidő"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "megmagyaráz"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Állapot"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Futási idő<br />(mp)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "CPU idő<br />(mp)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Kredit"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Alkalmazás"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Munkacsomag"
-
-#: ../inc/result.inc:632
-#, fuzzy
-msgid "Received"
-msgstr "Beérkezett"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Szerver állapot"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Kimenet"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Kliens állapot"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Kilépési állapot"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Jelentési határidő"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Futási idő"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "CPU idő"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Érvényesítési állapot"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Az alkalmazás verziója"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Kimeneti fájlok"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Stderr kimenet"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Állapot"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Feladat neve"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Keresési feltétel(ek)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Kulcsszavak"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-"Keressen csapatokat, amiknek nevében vagy leírásában benne vannak a "
-"következő szavak"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Ország"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Csapat típusa"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Csak az aktív csapatokat mutassa"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Keresés"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Ön kérte, és az alapító válaszadási határideje lejárt."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Teljes alapítói jogkör átvitele"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Ön kérte"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "alapítói válaszadási határidő: %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Nincs"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Kérés elküldése"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Elhalasztva"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Csapat infó"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Leírás"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Weboldal"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Projekt-közti statisztikák"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Típus"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Üzenőfal"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Témák"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Csatlakozzon ehhez a csapathoz"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Megjegyzés: ha a projekt beállításoknál az email engedélyezve van, a "
-"csapathoz való csatlakozás láthatóvá teszi emailcímét a csapat alapítója "
-"számára."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Nem fogad új tagokat"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Alapító megváltoztatása kérve"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Válaszoljon %1-el"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Csapat alapítójának megváltoztatása"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Tagok"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Alapító"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Adminok"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Új tagok tegnap"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Összes tag"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "megtekint"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktív tagok"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Kredittel rendelkező tagok"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Admin"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Előző %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Következő %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Nincs ilyen csapat."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Ehhez a művelethez alapítói jogkör szükséges."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Ehhez a művelthez csapat adminisztrátori jogosultság szükséges"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"FIGYELEM: ez egy BOINC-közi csapat. Ha itt változtatásokat eszközöl, azok "
-"hamarosan felül lesznek írva. Szerkessze inkább a %1BOINC-közi csapatot%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Adatvédelmi megjegyzés%2: ha létrehoz egy csapatot, az Ön projekt "
-"beállításai (erőforrás-megosztás, megjelenítési beállítások) mindenki "
-"számára láthatóak lesznek."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Csapatnév, szöveges változat"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Ne használjon HTML címkéket."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Csapatnév, HTML változat"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Használhat %1bizonyos HTML címkéket%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Ha nem ismeri a HTML-t, hagyja üresen ezt a négyzetet."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "A csapat honlapja, ha van"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "\"http://\" nélkül"
-
-#: ../inc/team.inc:443
-#, fuzzy
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Erre az URL-re fog hivatkozni a csapat oldala ezen a honlapon."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "A csapat leírása"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Fogad új tagokat?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Felhasználói profil"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projektek, amikben részt vesz"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projektek, amikben %1 részt vesz"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Kattintson a felhasználó oldalához"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Ennyi ideje:"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Számítás és kredit"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Ezen fiók számítógépei"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Megtekint"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Projekt-közti ID"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Projekt-közti statisztikák"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Fiók"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Csapat"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Projekt-közti"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Tanúsítvány"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statisztikák a mobiltelefonján"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Ismeretlen értesítési típus: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Fiókinformáció"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Email cím"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Irányítószám"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 tag ennyi ideje:"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Változtat"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "email cím"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "jelszó"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "egyéb fiókinformáció"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Felhasználói azonosító"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Közösségi funkciókhoz használt"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Fiókkulcs"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Beállítások"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Mikor és hogyan használja a BOINC számítógépét"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Számítási beállítások"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Üzenőfalak és privát üzenetek"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Közösségi beállítások"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Ezen projekt beállításai"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 beállítások"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Közösség"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Törlés"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Létrehoz"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 üzenet"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Értesítések"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Kilépés a csapatból"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Igazgató"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(alapító változtatási kérelem folyamatban)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Ezen csapat tagja:"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "csapat keresése"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Alapítója, de nem tagja ennek a csapatnak:"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Ismerősök keresése"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Barátok"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Számítógépek"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donor"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kapcsolat"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Ez a személy ismerőse Önnek"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Barátság megszüntetése"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Kérés folyamatban"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Barátokhoz ad"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "kijelentkezés"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "bejelentkezés"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Bejelentkezés"
-
-# #######################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Fiók létrehozása"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "A szerver állapotának oldala"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-"Kérése feldolgozásakor adatbázis hiba történt; kérjük, próbálja újra később."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "A kérés teljesítése sikertelen"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "óra"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "perc"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "mp"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"A link lejárt. Kattintson a Vissza gombra, frissítse a lapot, és próbálja "
-"újra."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "%1 profiljának megtekintése"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "BBCode használata a szöveg formázásához"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "A projekt karbantartás miatt szünetel"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 karbantartás miatt szünetel. Próbálja újra később."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Az adatbázishoz csatlakozás sikertelen - kérjük, próbálja újra később"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Az adatbázis kiválasztása sikertelen - kérjük, próbálja újra később"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Maradjon bejelentkezve ezen a gépen"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Fiókbeállítás befejezése"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Ez az Ön azonosítója weboldalunkon. Használja a valódi-, vagy a becenevét."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Válassza ki, melyik országot képviseli, ha van ilyen."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Irányítószám"
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Választható"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "A fióknév megadása kötelező"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML címkék nem használhatóak a névben"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Adjon %1 beállításokat ehhez: %2"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Alkalmazások"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"A(z) %1 jelenleg a következő alkalmazásokat használja. Ha részt vesz a(z) %1 "
-"projektben, ezen alkalmazások közül egy vagy több futtathatóvá válik az Ön "
-"számítógépén. Az alkalmazás aktuális verziója letöltődik számítógépére. A "
-"folyamat automatikus; Önnek semmit nem kell tennie."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platform"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Verzió"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Telepítve ekkor:"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode címkék"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-"BBCode-al formázhatja a profilján és a hozzászólásaiban megjelenő szöveget.\n"
-"A BBCode a HTML-hez hasonló nyelv, de egyszerűbb. A tag-ek [-el kezdődnek\n"
-"(ahol HTML-ben %1 lenne)  és ]-el végződnek (ahol HTML-ben %2 lenne)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Példák"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Félkövér"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Dőlt"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Aláhúzott"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Felső index"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Nagy betűk"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Piros betűk"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "hivatkozás egy weboldalra"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Idézet"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "idézett szövegblokkokhoz használható"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "kép megjelenítéséhez használható"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Megjelenítendő kódrészlet"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "kód megjelenítéséhez használható"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Előre formázott szöveg"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "előre formázott (írógépbetűs) szöveghez használható"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "1. elem"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "2. elem"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "2. elem"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "használja a BOINC oldalon levő Trac jegyre való hivatkozáshoz"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "használja a BOINC oldalon levő Trac Wiki-re való hivatkozáshoz"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "használja a BOINC oldalon levő SVN változtatásokra való hivatkozáshoz"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Ha nem zár le egy címkét, vagy nem megfelelően ad meg egy paramétert,\n"
-"a nyers címke fog megjelenni a formázott szöveg helyett."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# #######################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Az Ön fiókja"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Csapatok"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "A nap felhasználója"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Szerver állapot"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-#, fuzzy
-msgid "Profiles"
-msgstr "Profil"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# #######################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Kiemelkedő résztvevők"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Kiemelkedő számítógépek"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "A legjobb csapatok"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "A legjobb GPU típusok"
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Nyelv"
-
-# #######################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Olvassa el a szabályokat és eljárásokat"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "A fiók létrehozása sikertelen"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Kattintson a böngésző <b>Vissza</b> gombjára az újra próbáláshoz."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "A reCAPTCHA válasza hibás volt. Kérjük, próbálja újra."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Új fiók létrehozásához Önnek meghívókóddal kell rendelkeznie."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Az Ön által megadott meghívó"
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Érvénytelen email cím: az érvényes emailcímnek 'név at szolgáltató' alakúnak "
-"kell lennie"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Már létezik fiók ezzel az emailcímmel."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Az új jelszavak nem egyeznek"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "A jelszavak csak ASCII karakterekből állhatnak."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Az új jelszó túl rövid: legalább %1 karakter hosszúnak kell lennie."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Nem sikerült a fiókot létrehozni"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Ez a fiók a(z) %1 nevű csapathoz fog tartozni, és automatikusan átveszi az "
-"alapító projektbeállításait."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Meghívókód"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Fiók létrehozása csak érvényes meghívókóddal lehetséges."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Email cím"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Az emailcímnek 'név at szolgáltató' alakúnak kell lennie!"
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Jelszó"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Legalább %1 karakternek kell lennie"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Jelszó megerősítése"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Kérjük, írja be a képen látható betűket"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Fiók létrehozása"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Kép"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Az Ön profilképe balra látható."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Megváltoztatásához kattintson a \"Tallózás\" gombra, és válasszon egy JPEG "
-"vagy PNG fájlt. (max. %1)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "A profiljából való törléshez válassza ezt a dobozt:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Ha szeretne képet mellékelni a profiljához, kattintson a \"Tallózás\" gombra "
-"és válasszon egy JPEG vagy PNG fájlt. Legfeljebb %1 méretű képet válasszon."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Nyelv"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Válassza ki, milyen nyelven írodott a profilja:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Profil mentése"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Kérjük írja be a képen látható szavakat."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Profil létrehozása/szerkesztése"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "A feltöltött kép formátuma nem támogatott."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"A %1profilján%2 megoszthatja véleményét és ismereteit a(z) %3 közösséggel."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Nem volt jó a ReCaptcha felismerése. Kérjük, próbálja újra."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Az első válaszát spam-nek érzékelte az Akismet spam-szűrő. Kérjük, módosítsa "
-"a szöveget és próbálja újra."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"A második válaszát spam-nek érzékelte az Akismet spam-szűrő. Kérjük "
-"módosítsa a szöveget és próbálja újra."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "A beküldött profilja üres volt."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Nem tudtam frissíteni a profilt: adatbázishiba"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Nem tudtam létrehozni a profilt: adatbázishiba"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profil elmentve"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Gratulálunk! A profilja sikeresen bekerült az adatbázisunkba."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Profiljának megtekintése%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Profil létrehozása"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"A visszaélések megakadályozására legalább %1 kredit szükséges profil "
-"létrehozásához vagy szerkesztéséhez. Elnézést kérünk a kényelmetlenségért."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nem tudtam törölni a fiókot."
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Fiók törölve"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Az Ön fiókját töröltük."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Fiók törlésének jóváhagyása"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-"Fiókjának törlésével minden\n"
-"személyes információját töröljük szervereinkről,\n"
-"beleértve a profilját és a fórum-hozzászólásait is.\n"
-"Az ehhez a fiókhoz csatlakozó számítógépek\n"
-"nem kapnak új munkát."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Ezt nem lehet visszavonni.\n"
-"Ha törölte a fiókját, nem fér hozzá többé."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Biztosan törölni akarja a fiókját?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Igen"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Fiók törlése"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nem"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Ne törölje ezt a fiókot"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "nem tudtam törölni a profilt, kérjük próbálja meg később"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Törlés jóváhagyása"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "A fiókját töröltük."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Profiltörlés jóváhagyása"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Biztos benne?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-"A törölt profilok végleg megszűnnek, és nem lehet őket visszaállítani --\n"
-"ha később másik profilt szeretne létrehozni,\n"
-"elölről kell kezdenie."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Ha biztos benne, hogy profilját\n"
-"törölni akarja adatbázisunkból, kattintson az \"Igen\" gombra!"
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Profil törlése"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Ne törölje a profilomat"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - tranzakció befejezve"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Köszönjük az adományt!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Az adománya megérkezett."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Az adományát a PayPal visszaigazolása után megjelenítjük az állapotjelző "
-"csíkon."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Megszakította az adakozást."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Ez a projekt nem fogad el adományokat."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 adomány"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Ez a projekt elfogad adományokat, \n"
-"e szolgáltatáson keresztül: %1"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-"Írja az alábbi mezőbe, mennyit kíván adományozni.\n"
-"A PayPal többféle valutát elfogad\n"
-"(kanadai dollár, euró, angol font, usa dollár\n"
-"japán jen, ausztrál dollár, új-zélandi dollár\n"
-"svájci frank, hongkongi dollár, szingapúri dollár, svéd korona\n"
-"dán korona, lengyel zloty, norvég korona,\n"
-"magyar forint, cseh korona).\n"
-"Használja a beépített valutaváltót\n"
-" az adományának átváltásához más valutákra\n"
-"(vegye figyelembe, hogy az árfolyamok csak becslések,\n"
-" a valós árfolyamtól különbözhetnek)."
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Adományozni kívánt összeg"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Becsült értéke"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Névtelen adomány"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Jelölje be, ha nem akarja, hogy a neve és számlaszáma szerepeljen\n"
-"az adakozók listáján.<br>Ha nem választja ki, %1 ID-jű felhasználóként fog "
-"szerepelni."
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Jelentkezzen be, hogy az adományát a felhasználói ID-hez köthesse."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Tovább"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Adományokat elfogadunk ezzel:"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "BOINC-kiegészítő program letöltése"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Több különböző kategóriából is letölthet alkalmazásokat."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Ezeket az alkalmazásokat nem ellenőrizte a(z) %1, saját felelősségére "
-"használja őket."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Ezen alkalmazások telepítéséhez nem nyújtunk útmutatást,\n"
-"habár a szerző lehet, hogy nyújtott segítséget a telepítéshez vagy "
-"eltávolításhoz.\n"
-"Ha az nem elég, lépjen kapcsolatba a szerzővel."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "A BOINC telepítéséhez és futtatásához %1itt van az útmutató%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Ezt a listát a %BOINC honlapon%2 központilag kezeljük."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "A fiókhoz rendelt email cím megváltoztatása"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Az új, '%1' email cím érvénytelen."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Az új email cím megegyezik az eddigivel. Nem változott semmi."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Már létezik fiók ezzel az email címmel"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Érvénytelen jelszó."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Fiókjának email címe jelenleg %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Kérjük, %1erősítse meg ezt az email címet%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Adatbázis probléma miatt nem tudjuk frissíteni az email címét. Kérjük, "
-"próbálja meg később."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "E-mail cím megváltoztatása"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "A fiókjához tartozó email cím megváltoztatása"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Új email cím"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Az érvényes emailcímnek 'név at szolgáltató' alakúnak kell lennie"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Nincs jelszó?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Visszaállítás megerősítése"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Ez a művelet törölni fog minden változtatást, amit a közösségi "
-"beállításokban eszközölt. Ha mégsem szeretné a törlést, kattintson a "
-"böngészőben a Vissza gombra!"
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Beállítások visszaállítása"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Hiba: Helytelen filetípus! Csak PNG vagy JPEG formátum támogatott!"
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Az aláírása túl hosszú, kérjük, módosítsa 250 karakternél rövidebbre!"
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Nincs %1 nevű felhasználó"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-"Hogyan értesítsük Önt a különböző eseményekről, új üzenetekről, ismerősnek "
-"jelölésekről, új bejegyzésekről a feliratkozott témákban?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Felhasználói oldalamon (ne e-mailben)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Azonnal, e-mailben"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Napi egyszer, e-mailben"
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Üzenőfalak"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Profilkép"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Az Ön üzenőfalakon megjelenő képe"
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "JPG vagy PNG formátum, legfeljebb 4 KB, 100x100 pixel"
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Ne legyen profilkép"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Használjon globális profilképet (gravatart) innen: %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Használja az alábbi feltöltött profilképet:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Profilkép előnézet"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Így fog megjelenni a profilképe"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Aláírás az üzenőfali bejegyzésekhez"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Tekintse meg a különböző %1ingyenes szolgáltatásokat%2, melyek\n"
-"<br> kitűnő aláírásképeket biztosítanak\n"
-"<br> megjelenítik az Ön legfrissebb kreditinformációit, a projekt híreket, "
-"stb."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "fennmaradó karakterek"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Aláírás alapértelmezett csatolása"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Aláírás előnézet"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Így fog megjelenni az aláírása a fórumokon"
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Üzenőfalak"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Megjelenítendő"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Profilkép elrejtése"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Aláírás elrejtése"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Képek megjelenítése hivatkozásként"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Hivatkozások megnyitása új ablakban/fülön"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Különleges felhasználók kiemelése"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Rendezés módja"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Témák"
-
-# #######################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Üzenetek"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr "Automatikus ugrás a téma legújabb bejegyzésére"
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Üzenetek szűrése"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Szűrt felhasználók"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Hagyja figyelmen kívül az alábbi felhasználók bejegyzéseit és privát "
-"üzeneteit."
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "Felhasználó azonosító (például: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Ezen felhasználó szűrőhöz adása"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Kattintson ide a beállítások frissítéséhez"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Visszaállítás"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-"Vagy kattintson ide a beállítások alapértelmezettre történő "
-"visszaállításához"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Érvénytelen fiókkulcs"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Ehhez az e-mail címhez nem találtam felhasználói fiókot"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Érvénytelen jelszó"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Jelszó megváltoztatása"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Jelszava megváltozott"
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Adatbázis probléma miatt nem tudjuk frissíteni a jelszavát. Kérjük, próbálja "
-"meg később."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Azonosíthatja magát"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "e-mail címének és régi jelszavának megadásával"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "felhasználói fiókkulcsának megadásával"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Jelenlegi jelszó"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>VAGY</b> Fiókkulcsának megadásával"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Fiókkulcs kérése e-mailben"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Új jelszó"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Új jelszó, még egyszer"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "A HTML-kódok nem engedélyezettek a névben."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Fiók létrehozásához kötelező a nevet megadnia."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Nem tudtuk frissíteni a felhasználói adatokat."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Fiókinformációk szerkesztése"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Név %1 valódi név vagy becenév%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "%1 Weblapjának URL-je%2 (nem kötelező)"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Irányítószám %1 Nem kötelező%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Infók frissítése"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Szerver állapot"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-"A feladat <b>szerverstátusza</b> megmutatja, hogy a feladat már kiküldésre "
-"került-e, illetve hogy a számítógép elvégezte-e azt. A lehetséges értékek:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-"A feladat nem áll készen a küldésre (például mert a bemeneti fájljai nem "
-"érhetők el)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "A feladat készen áll a küldésre, de még nincs kiküldve."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Folyamatban"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "A feladat kiküldve; várakozás a befejezésre."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-"A feladat kiküldve egy számítógépre és lejárt az ideje, vagy a számítógép "
-"jelezte a befejezését."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Eredmény"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-"A feladat <b>kimenete</b> akkor értelmezhető, ha a szerver státusz: "
-"<b>kész</b>. Lehetséges értékek:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-"A feladat kiküldve, de a számítógép még nem végezte el és nem jelezte az "
-"eredményt."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "A számítógép jelezte a feladat sikeres elvégzését."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-"A szerver nem tudta kiküldeni a feladatot a számítógépre (talán a feladat "
-"túlzott erőforrásigénye miatt)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Kliens hiba"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "A feladat kiküldve a számítógépre, de hiba lépett fel."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "A feladat kiküldve a számítógépre, de határidőn belül nem jött válasz."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"A feladat nem került kiküldésre, mivel elég egyéb feladat lett kész ehhez a "
-"munkacsomaghoz."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-"A feladat elvégzését jelezték, de nem hagyható jóvá, tipikusan azért, mert a "
-"kimeneti fájlok a szerveren elvesztek."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Kliens állapotok"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Az eredmény <b>kliens állapota</b> jelzi a feldolgozás azon lépését, melynél "
-"a hiba jelentkezett."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "A számítógép még nem végezte el a feladatot."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "A számítógép sikeresen befejezte a feladatot."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-"A számítógép nem tudta letölteni az alkalmazást vagy a bemeneti fájlokat."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Hiba lépett fel a feldolgozás során."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "A számítógép nem tudta feltölteni a kimeneti fájlokat."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Jelentés ideje és határidő"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-"Egy feladat <b>Jelentés ideje és határidő</b> mező értéke attól függ, hogy "
-"annak állapotáról érkezett-e már jelentés:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Már jelentve"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Jelentés dátuma/ideje"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Nincs jelentve, a határidő még nem járt le"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Határidő, zölddel kiemelve."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Nincs jelentve, határidő már lejárt"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Határidő, pirossal kiemelve."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Ismeretlen mező"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Email előnézet"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Az Ön emailje így fog megjelenni:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Email küldése"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Ha vissza akar térni az üzenet űrlaphoz, használja a böngésző Vissza gombját"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "E-mail küldése"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "email sikeresen elküldve %1 részére"
-
-#: ../user/ffmail_action.php:86
-#, fuzzy
-msgid "failed to send email to %1: %2"
-msgstr "az email küldése sikertelen neki: %1: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Köszönjük, hogy mesél ismerőseinek erről: %1"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Elfelejtette megadni barátai neveit és/vagy email címeiket; Kérjük, térjen %"
-"1vissza az űrlaphoz%2 és adja meg ezeket."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Meséljen barátainak erről: %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-"Segítse munkánkat és meséljen barátainak, családjának és munkatársainak "
-"erről: %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Adja meg azon ismerősei nevét és email címét, akiket Ön szerint érdekelhet "
-"a(z) %1 projektről. Küldünk egy emailt nekik az Ön nevében, amihez saját "
-"üzenetet is hozzáadhat, ha szeretne."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Az Ön neve:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Az Ön email címe:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Ismerős neve:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Ismerős email címe:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Személyes üzenet (nem kötelező)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Elküld"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr "Nincs jogosultsága a felhasználók kitiltásához."
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr "Kitiltási javaslat"
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr "Ezzel az azonosítóval nem található felhasználó."
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr "A felhasználó már ki van tiltva"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-"Biztos benne, hogy ki akarja tiltani %1-t?<br/>Így %1 nem írhat új "
-"bejegyzést egy megadott ideig.<br/>Csak akkor tiltsuk ki %1-t, ha "
-"folyamatosan zavaró viselkedést folytat."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Válassza ki az okot, esetleg írja le bővebben, miért kellene a felhasználót "
-"kitiltani."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Oka"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Trágár"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Gyűlölködő emailek"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Felhasználó kérésére"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Egyéb"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Indoklás"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr "Küldés, ha nem üres"
-
-#: ../user/forum_banishment_vote.php:74
-#, fuzzy
-msgid "Proceed with vote"
-msgstr "Szavazattal megerősítve"
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Válasszon egy műveletet..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-"Már nem szerkesztheti a bejegyzést.<br/>A bejegyzések létrehozásuk után csak "
-"max. %1 percig szerkeszthetőek."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Nincs jogosultsága ezen bejegyzés szerkesztéséhez."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-#, fuzzy
-msgid "Forum"
-msgstr "Fórum index"
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Üzenet szerkesztése"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Cím"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Aláírás hozzáadása ehhez az üzenethez"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Nem látható az Ön számára"
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "%1 üzenőfal"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Téma"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Új téma hozzáadása ehhez a fórumhoz"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Ez az üzenőfal elérhető %1RSS-hírfolyam%2 formában"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Ezt a témát adminisztratív okokból rejtetté tették"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Ez a téma kiemelt és zárt, Ön még nem olvasta."
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr "kiemelt/zárt/olvasatlan"
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Ez a téma kiemelt és Ön még nem olvasta."
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr "kiemelt/olvasatlan"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Ez a téma zárt és Ön még nem olvasta"
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "zárt/olvasatlan"
-
-# 81%
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Még nem olvasta ezt a témát"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr "Ez a téma kiemelt és zárt"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr "kiemelt/zárt"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Ezt a témát adminisztratív okokból rejtetté tették"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Ezt a témát adminisztratív okokból rejtetté tették"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "zárt"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Már olvasta ezt a témát"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "olvasott"
-
-# #######################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Kérdések és válaszok"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Beszéljen Skype-on egy önkéntessel a számos támogatott nyelv bármelyikén! "
-"Látogassa meg a %1BOINC Online Súgóját%2."
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tárgy"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Kérdések"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "%1 tagok beszélgetése"
-
-# #######################################
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Üzenőfalak"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Ha kérdése vagy problémája van, kérjük, használja az üzenőfalak %1Kérdések & "
-"válaszok%2 részét."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Feliratkozott témák"
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr "Bejegyzés moderálása"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Bejegyzés elrejtése"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Kereskedelmi spam"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Duplázott bejegyzés"
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Bejegyzés áthelyezése"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Küldés a témához"
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr "Felhasználó kitiltása"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Kitiltás időtartama"
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 óra"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 nap"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 hét"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 hét"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 hónap"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Végleges"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Indoklás (nem kötelező) %1 Ezt emailben megkapja a felhasználó. %2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Nincs jogosultsága a bejegyzés moderálásához."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Nem sorolható át másik kategóriatípusba"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Nem sorolható át másik kategóriába"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Nincs jogosultsága felhasználók kitiltásához"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Kitiltás"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "%1 felhasználó kitiltva."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Művelet sikertelen: valószínűleg adatbázis probléma"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "nem jogosult"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr "'%1' téma moderálása"
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-"Válassza ki az indok kategóriát, vagy írja le bővebben, miért rejti el vagy "
-"zárja le a témát; majd nyomja meg az OK gombot!"
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Jelenlegi verzió"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Célfórum"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Új cím:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-"Csak a projekt adminok hozhatnak létre új témát ezen a helyen. A meglévő "
-"témákra azonban válaszolhat."
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Az Ön üzenetét levélszemétnek minősítette az Akismet spamszűrő rendszer. "
-"Kérjük, módosítsa a szöveget és próbálja meg újra!"
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Új téma létrehozása"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Új téma létrehozása"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr "Ne felejtsen el címet megadni"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Jelölje meg Értesítésként ezt az elemet a BOINC Kezelőben"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Csak azokkal az elemekkel tegyen így, amelyek minden résztvevőt "
-"érdekelhetnek!"
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr "Offline értékelés"
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Ezt a funkciót a projekt kikapcsolta."
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Nagyobb átlagra vagy több összes kreditre van szüksége egy bejegyzés "
-"értékeléséhez."
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr "Már értékelte ezt a bejegyzést"
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Vissza a témához"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr "Bevitel rögzítve"
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "A bevitelt rögzítettük. Köszönjük segítségét!"
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Szavazat regisztrálva"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Értékelését rögzítettük. Köszönjük véleményét!"
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr "Szavazat leadási probléma"
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Bejegyzését spamnek minősítette az Akismet spamszűrő rendszer. Kérjük, "
-"módosítsa a szöveget és próbálja meg újra!"
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Bejegyzés írása a témához"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Üzenet"
-
-#: ../user/forum_reply.php:140
-#, fuzzy
-msgid "reply to %1Message ID%2:"
-msgstr "válasz az %1Üzenet ID-re%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr "Válasz írása"
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Aláírás hozzáadása ehhez az üzenethez"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-"Magasabb átlagra vagy több összes kreditre van szüksége egy bejegyzés "
-"jelentéséhez."
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr "Jelentés regisztrálva"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Jelentését rögzítettük. Köszönjük jelzését!"
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-"Egy moderátor meg fogja vizsgálni jelentését és eldönti, mi fog történni - "
-"ez egy kis időt vesz igénybe, türelmét kérjük!"
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr "Fórumbejegyzés jelentése"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-"Mielőtt jelentené ezt a bejegyzést, használja a +/- értékelési rendszert "
-"inkább! Ha elég felhasználó értékeli negatívan, rejtve lesz.<br />Az "
-"értékelő rendszert a bejegyzés alján találja."
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr "Bejegyzés jelentése"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Miért találja sértőnek ezt a bejegyzést: %1 Kérjük adjon meg elég "
-"információt ahhoz, hogy\n"
-"a felhasználók számára a bejegyzés elolvasása nélkül is világos legyen a "
-"probléma. %2"
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr "A jelentés nem rögzült"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Jelentése nem rögzíthető. Kérjük várjon egy kicsit, és próbálja meg újra!"
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Ha nem időszakos a hibáról van szó, kérjük jelezze a projekt fejlesztőinek!"
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr "%1 RSS csatorna"
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr "Ez az üzenőfal elérhető %sRSS csatorna%s formában."
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Beállítások:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Csak a(z) %1 azonosítójú felhasználó bejegyzéseit mutasd (alapértelmezett: "
-"minden felhasználó)."
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Csak az elmúlt %1 nap bejegyzéseit mutasd (alapértelmezett: 30 nap)."
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Hosszú bejegyzések részleges megjelenítése: %1 (Minden bejegyzésből csak az "
-"első 265 karakter jelenik meg)"
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Csak témák: %1 (Minden témából csak az első bejegyzés)"
-
-# #######################################
-# Forum search features
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Keresés a fórumban"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Keresés"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Keresés kulcsszavakra:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-"Csak az összes megadott szót tartalmazó bejegyzések lesznek megjelenítve"
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "Például: \"képernyővédő rögzítés\""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr "Keresés szerző azonosítóra:"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr "Csak a megadott szerző bejegyzései jelennek meg"
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Például: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Keresési beállítások"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Keresés határai"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Keresés legfeljebb ennyi napra visszamenőleg"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 hónap"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 év"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr "Bejegyzések csak ebből a fórumból"
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Rendezés módja"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr "Keresés indítása"
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Keresés eredménye"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "A lekérdezésnek megfelelő témacímek:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "A lekérdezésnek megfelelő üzenetek:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Sajnáljuk, nem található a lekérdezésnek megfelelő eredmény. Kiterjesztheti "
-"a keresést kevesebb szóra (vagy kevésbé speciális szavakra) történő "
-"kereséssel."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Megpróbálkozhat %1rákeresni ugyanerre a Google-n is.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Újabb keresés"
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr "Sikeres feliratkozás"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Feliratkozott a %1-ra/re. Értesítjük, ha újabb bejegyzés születik."
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr "A feliratkozás sikertelen"
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Pillanatnyilag nem tudjuk a feliratkozását teljesíteni a következőre: %1. "
-"Kérjük próbálja meg később."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr "Sikeres leiratkozás"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Leiratkozott %1-ról/ről. Már nem fog értesítéseket kapni erről a témáról."
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr "A leiratkozás sikertelen"
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Pillanatnyilag nem tudjuk a leiratkozását teljesíteni a következőről: %1. "
-"Kérjük próbálja meg később."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr "Ismeretlen feliratkozási művelet"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Ez a fórum nem látható az Ön számára."
-
-# #######################################
-# Forum thread
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr "Ezt a témát a moderátorok rejtetté tették."
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "A kérdésemre választ kaptam"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr "Kattintson ide, ha a kérdésére megfelelő választ kapott"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Ez az én kérdésem is"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Új üzenet hozzáadása ehhez a témához"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Leiratkozás"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Feliratkozott erre a témára. Leiratkozáshoz kattintson ide."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Feliratkozás"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Kattintson ide, ha értesítést kér e-mailben a téma új bejegyzéseiről"
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Téma felfedése"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Téma elrejtése"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "Ne legyen ragadós"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "Ez a téma ne legyen ragadós"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "Legyen ragadós"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Ez a téma legyen ragadós"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Zárolás feloldása"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Téma zárolásának feloldása"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Zárolás"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Téma zárolása"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Ezen téma áthelyezése másik fórumba"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Cím szerkesztése"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Téma címének szerkesztése"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr "Megjelölés figyelmeztetésként"
-
-#: ../user/forum_thread.php:251
-#, fuzzy
-msgid "Don't export"
-msgstr "Ne jelölje meg"
-
-#: ../user/forum_thread.php:252
-#, fuzzy
-msgid "Don't export this news item as a Notice"
-msgstr "Ne jelölje meg a hírt figyelmeztetésként"
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Rendezés"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr "Témaállapot frissítve"
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr "Az állapot frissítésre került."
-
-# #######################################
-# Forum
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr "%1 bejegyzései"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Már barátok"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Barátnak jelölte %1-t %2-n"
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "A jelölés visszaigazolásra vár."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 nem fogadta el a barátnak jelölést"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Nem jelölheti saját magát barátnak"
-
-# 76%
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Barát hozzáadása"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"%1-t barátként jelölte meg. Értesíteni fogjuk %1-t a barátság megerősítése "
-"céljából."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Üzenet hozzáadása (nem kötelező):"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Barátnak jelölés elküldve"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Értesítettük %1-t a jelölésről."
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr "Kérjük jelentkezzen be %1-ként"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr "%1-ként kell bejelentkeznie a barátnak jelölés megtekintéséhez"
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Barátnak jelölés"
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr "%1 barátnak jelölte"
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 üzenete: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Barátnak jelölés elfogadása"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Ha %1 valóban a barátja, kattintson ide az elfogadáshoz"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Visszautasítás"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Ha %1 nem a barátja, kattintson ide a visszautasításhoz"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Barátság megerősítve"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "%1 és az Ön barátsága megerősítve."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Barátság visszautasítva"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Visszautasította %1 barátnak jelölését"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Nem található értesítés"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Barátság megerősítve"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "%1 az Ön barátja"
-
-# 94%
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Törli a barátságot?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Biztos benne, hogy törli a barátságot vele: %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Barátság megtartása"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Barátság törölve"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Már nem barátok vele: %1."
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Elfelejtette fiókinformációit?"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-"Adja meg e-mail címét lejjebb és kattintson az OK gombra! A jelszó "
-"visszaállításához e-mailben küldünk segítséget."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Ha elfelejtette e-mail címét vagy nem tud leveleket fogadni:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Ha ebben a fiókban futtatja a BOINC-ot, hozzáférhet az alábbi módon:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-"Keresse meg fiókfile-ját a projekthez az alábbi elnevezéssel: <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Szövegszerkesztőben (pl. Jegyzettömb) nyissa meg a fájlt. Valami ilyesmit "
-"fog látni:"
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Jelölje ki és másolja ki a karakterláncot %1 és %2 között (%3 a fenti "
-"példában)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-"Illessze be a karakterláncot az alábbi mezőbe és kattintson az OK gombra."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr "GPU feladat nincs jelentve"
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Üdvözöljük a(z) %1 nevű projektben"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Fiókbeállításainak megtekintéséhez és megváltoztatásához használja az alábbi "
-"linkeket."
-
-# Ezt még ellenőrizni kell, hogy működik-e rendesen!!!
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Ha még nem tette, %1töltse le a BOINC kliens szoftvert%2."
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Névtelen platform, hiányzó app"
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Névtelen platform"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Hiányzó app verzió"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Hiányzó app"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Hiányzó platform"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Elvégzett feladatok száma"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Maximális feladat naponta"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Mai feladatok száma"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Egymást követő érvényes feladatok"
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Átlagos feltöltési sebesség"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Alkalmazások"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Nincs adat erről a számítógépről."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-"Nem törölheti a számítógép adatait, mert adatbázisunk még tartogat neki "
-"munkát. Néhány napot várnia kell, míg a számítógéphez rendelt munka törlődik "
-"a projekt adatbázisból."
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Számítógép törlése"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Adatok törölve."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Vissza a számítógépek listájához"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "Számítógépek egyesítése név szerint"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Számítógépek egyesítése név szerint"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Időként a BOINC tévedésből elkülöníti az egy számítógéphez tartozó "
-"identitásokat. Ön kijavíthatja ezt a régi identitások összefűzésével."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Nincs megfelelő gép az összefűzéshez."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Részletek mutatása"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Név"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "létrehozva"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Számítógép ID"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Nincs kiszolgáló"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Egyesítés"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Kész"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-"A változtatás a gép projekthez történő következő kapcsolódásakor lép életbe."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Ezen fiók számítógépei"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Számítógép infó"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Ez a felhasználó elrejtette számítógépe adatait."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Az Ön számítógépei"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Engedélyezett HTML címkék"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Az alábbi HTML címkék engedélyezettek a csapatleírásban:"
-
-# 75%
-#: ../user/html.php:27
-msgid "bold"
-msgstr "félkövér"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "dőlt"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hivatkozás"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "bekezdés"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "sortörés"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "előformázott"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "A(z) %1 projektet csak jogosult számítógépeken futtassa"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"A %1 projektet csak olyan számítógépeken futtassa, melyeknek Ön a "
-"tulajdonosa, vagy amelyekhez megkapta a tulajdonos hozzájárulását. Néhány "
-"vállalat és iskola biztonsági szabályzata tiltja az olyan projektek "
-"futtatását, mint a(z) %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Hogyan fogja a(z) %1 igénybe venni az Ön számítógépét"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Számítógépén történő futása során %1 használni fogja gépe CPU-"
-"teljesítményének, szabad merevlemez-területének, és hálózati "
-"sávszélességének egy részét. Ön korlátozhatja %1 által használható "
-"erőforrásokat, valamint azt, hogy mikor használhatja ezeket."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Az Ön számítógépe által elvégzett munkacsomaggal hozzájárult a(z) %1 "
-"céljainak teljesítéséhez - ahogy az a weboldalon is olvasható. A futtatható "
-"alkalmazások időről időre változhatnak."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Adatvédelmi eljárások"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"A(z) %1 projektben létrehozott fiókja az Ön által választott név alapján "
-"lesz azonosítva. Ez a név megjelenhet a(z) %1 weboldalán, az Ön számítógépe "
-"által %1 számára elvégzett munka összesítésével egyetemben. Ha Ön névtelen "
-"szeretne maradni, válasszon olyan nevet, amely nem fedi fel kilétét."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Ha Ön részt vesz a(z) %1 projektben, bizonyos információk a számítógépéről "
-"(úgy mint a processzor típusa, a memória nagysága stb.) továbbításra "
-"kerülnek a(z) %1 felé. Arra használjuk  ezeket, hogy eldöntsük, mely "
-"munkacsomagtípust képes az Ön számítógépe hatékonyan feldolgozni. Ez az "
-"információ megjelenik a(z) %1 weboldalán is. Semmi olyasmi nem kerül "
-"nyilvánosságra, ami alapján meg lehetne határozni számítógépe helyét (mint "
-"pl. a domain név, vagy a hálózati cím)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"A(z) %1 projektben való részvételhez meg kell adnia egy emailcímet, ahová a "
-"projekt által küldött emaileket kapja. Ez a cím nem lesz látható a(z) %1 "
-"weboldalán, és nem lesz megosztva semmilyen szervezettel. A(z) %1 "
-"rendszeresen küldhet Önnek hírlevelet, de ezt a funkciót bármikor "
-"kikapcsolhatja."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Biztonságos a(z) %1 futtatása?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Amikor letölt egy programot az interneten keresztül, mindig megvan az "
-"esélye, hogy a program veszélyes hibákat tartalmaz, vagy a letöltő szervert "
-"hackertámadás érte. A(z) %1 ezen kockázatok minimalizálására törekedett. "
-"Alkalmazásainkat nagy körültekintéssel teszteltük. Szerverünk tűzfallal "
-"védett és a magas biztonsági beállítások szerint konfigurált. A "
-"programletöltések biztonsága érdekében minden futtatható fájl digitálisan "
-"alá lett írva egy, az internethez nem csatlakozó, biztonságos számítógépen."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"A(z) %1 által futtatott alkalmazások a számítógép túlmelegedését okozhatják. "
-"Ha ez megtörténik, ne futtassa tovább a(z) %1 projektet, vagy használjon "
-"egy %2segédprogramot%3, mely limitálja a CPU-használatot."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"A(z) %1 %2 által fejlesztve. A BOINCot a Kaliforniai Egyetemen "
-"fejlesztették."
-
-# Vagy kötelezettség, még meg kéne nézni!!!
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Felelősség"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"A(z) %1 és a(z) %2 nem vállal felelősséget a számítógépen okozott kár, "
-"adatvesztés, vagy bármely egyéb esemény vagy körülmény okozta károkért, amik "
-"a(z) %1 projektben való részvételből erednek."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Egyéb BOINC projektek"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Más projektek is használják ugyanazt a platformot - a BOINCot -, amit a(z) %"
-"1 is. Fontolja meg részvételét egy vagy több ilyen projektben. Ha Ön így "
-"tesz, számítógépe hasznos munkát végezhet akkor is, amikor a(z) %1 "
-"projektnek nincs elérhető munkacsomagja."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Ezek a projektek nincsenek kapcsolatban a(z) %1 projekttel, így nem ismerjük "
-"ezek biztonsági beállításait, vagy a kutatásuk természetét. Csak saját "
-"felelősségére csatlakozzon hozzájuk."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-#, fuzzy
-msgid "Email address:"
-msgstr "Email cím"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-#, fuzzy
-msgid "Password:"
-msgstr "Jelszó"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Feldolgozás"
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "%1 és %2 számítógép egyesítése"
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "A(z) %1 projektet csak jogosult számítógépeken futtassa"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "A(z) %1 projektet csak jogosult számítógépeken futtassa"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Feldolgozatlan kredit"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Munkacsomag"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "Átlag kredit"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Feldolgozatlan kredit"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Üzenet elküldve."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nincs privát üzenete."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Küldő és dátum"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Nincs ilyen üzenet"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Kiválasztott üzenetek megtekintése"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-#, fuzzy
-msgid "Delete selected messages"
-msgstr "Kiválasztott üzenetek megtekintése"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Privát üzenet küldéséhez minden mezőt ki kell töltenie"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Nem található felhasználó ezzel az ID-vel: %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Nem található ilyen nevű felhasználó: %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 nevű felhasználóból több is van. Használja a felhasználó ID-jét."
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "A %1 nevű felhasználó (ID-je: %2) nem fogad Öntől személyes üzeneteket."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Valóban blokkolja a(z) %1 nevű felhasználót?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Biztos benne, hogy blokkolni kívánja a(z) %1 nevű felhasználó Önnek küldött "
-"privát üzeneteit?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Kérem vegye figyelembe, hogy csak korlátozott számú felhasználót blokkolhat."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Egy felhasználó blokkolását feloldhatja a fórumbeállítások oldalon."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nem, mégse"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "A(z) %1 nevű felhasználó blokkolva"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-"A(z) %1 nevű felhasználót blokkolta, így Ő nem küldhet Önnek privát "
-"üzenetet."
-
-# Ez sem biztos, hogy jó, ellenőrizni kell!!!
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "A feloldáshoz látogassa meg az %1üzenőfalbeállításokat%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Ismeretlen"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Beállítások szerkesztése"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-#, fuzzy
-msgid "User of the Day"
-msgstr "A nap felhasználója"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-#, fuzzy
-msgid "Profiles containing '%1'"
-msgstr "Címek, melyek ezt tartalmazzás: '%1'"
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Feladat neve"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../user/profile_search_action.php:54
-#, fuzzy
-msgid "No profiles found containing '%1'"
-msgstr "Címek, melyek ezt tartalmazzás: '%1'"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Alkalmazások"
-
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "Nincs elküldve"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "Folyamatban"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Számítógép"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-#, fuzzy
-msgid "Find a team"
-msgstr "csapat keresése"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Új csapat létrehozása"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderálja a csapatfórumot, ha van (az adminok kapnak email értesítést a "
-"moderálási eseményekről és a piros X jelentésekről)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Nincs ilyen csapat."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "Nincs ilyen csapat."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Csapat létrehozása"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "%1 üzenőfal"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-#, fuzzy
-msgid "Update failed"
-msgstr "Frissítés sikertelen:"
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Keresés a fórumokban"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Csatlakozott: %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Csatlakozott: %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-#, fuzzy
-msgid "text"
-msgstr "Következő"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Kilépés a csapatból"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-#, fuzzy
-msgid "Remove?"
-msgstr "Eltávolítás"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-# 80%
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Keresés eredménye"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Legjobb hostok"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "A legjobb %1 csapatok"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Ennyi ideje tag:"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-# 75%
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Keresés eredménye"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Csapat"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Pót fiókkulcs"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-# 81%
-#: ../user/workunit.php:35
-#, fuzzy
-msgid "Workunit %1"
-msgstr "Munkacsomag"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Függőben"
-
-#: ../project.sample/project.inc:43
-#, fuzzy
-msgid "Main page"
-msgstr "Domain név"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Meséljen magáról. Elmondhatja nekünk, honnan jött, mennyi idős, mivel "
-"foglalkozik, mi a hobbija vagy bármi mást."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Grafika színsémája"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maximum CPU % grafikához%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Csak a kijelölt alkalmazásokat futtassa"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Ha a kijelölt alkalmazáshoz nincs munkacsomag, elfogad munkacsomagot más "
-"alkalmazástól?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(minden alkalmazás)"
-
-#~ msgid "Error:"
-#~ msgstr "Hiba:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Fiók létrehozása letiltva."
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "A fióklétrehozás ehhez a projekthez jelenleg le van tiltva.\n"
-#~ "Kérjük, próbálja újra később."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "A fióklétrehozás jelenleg nem engedélyezett. Kérjük, próbálja meg később."
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Ez a projekt nem hozott létre email üzenetet - kérjük, értesítse az "
-#~ "adminisztrátorokat"
-
-#, fuzzy
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Használja az ATI GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Ezek minden BOINC projektre vonatkoznak, amiben részt vesz.<br>\n"
-#~ "Több projektben résztvevő számítógépeknél a legutóbb módosított beállítások "
-#~ "lesznek érvényben."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "E hír megjelölése figyelmeztetésként"
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "Nincs ilyen csapat."
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "A számítógép körülbelül ennyi időnként csatlakozik az Internetre: %1 Hagyja "
-#~ "üresen, vagy írjon 0-t, ha mindig csatlakozik. %2 A BOINC megpróbál legalább "
-#~ "ennyi munkát tartani a gépen (max. 10 nap). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Tartson elég munkát a gépen még legalább ennyi időre:"
-
-#~ msgid "Update failed: "
-#~ msgstr "Frissítés sikertelen:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "%1Korlátozott%2 hozzáférést biztosít a fiókjához"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Ne használja ezt az űrlapot. Csak futtassa a BOINCot, válassza a Projekt "
-#~ "hozzáadását, és írjon be egy email címet és egy jelszót."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Ne rendezze át az emlékeztetőket"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Ha egy témakör az itt megadottnál több bejegyzést tartalmaz,"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr ""
-#~ "csak az elsőt és az utána következő itt megjelölt darabszámút jelenítse meg"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Jelentését rögzítettük. Köszönjük jelzését!"
-
-# #######################################
-# "Weak account key" page (weak_auth.php)
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "A 'gyenge fiókkulcs' lehetővé teszi, hogy Ön számítógépeit hozzácsatolja a "
-#~ "projektben létrehozott fiókjához anélkül, hogy újra és újra kellje "
-#~ "jelentkeznie a fiókjához, vagy bármi módon megváltoztatnia azt."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Ez a művelet csak olyan projekteken működik, melyek szerver szoftvere 2007. "
-#~ "december 7-e óta frissítve lett."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Az ehhez a projekthez tartozó gyenge fiókkulcsa a következő:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "A gyenge fiókkulcs egy adott hoston történő használatához keresse meg, vagy "
-#~ "hozza létre a projekthez tartozó 'fiókfájlt'. A fájlnévnek a következőképpen "
-#~ "kell kinéznie: <b>account_PROJECT_URL.xml</b>. A fiókfájl ehhez: %1, a "
-#~ "következő: <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Ezen fájl létrehozása, ha szükséges. A fájl tartalmát erre állítsa be:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Az Ön gyenge fiókkulcsa a jelszava alapján generálódik. Ha megváltoztatja "
-#~ "jelszavát, gyenge fiókkulcsa is megváltozik, az előző gyenge fiókkulcsa "
-#~ "pedig érvénytelenné válik."
-
-#~ msgid "Account key"
-#~ msgstr "Fiókkulcs"
-
-#~ msgid "- private message"
-#~ msgstr "- privát üzenet"
-
-# #######################################
-# Private messages
-#~ msgid "Private message from"
-#~ msgstr "Személyes üzenet tőle:"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC kliens verzió"
-
-# #########################################
-# Language: English (International)
-# FileID  : $Id$
-# Author  : Janus Kristensen
-# Email   : jbk at visualgroup.dk
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Erőforrás-megosztás és grafika"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Megjelölés olvasatlanként"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Biztosan törölni akarja a "%1" tárgyú, (küldte: %2, ekkor: %3) "
-#~ "üzenetet?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Igen, törlés"
-
-#~ msgid "Posts containing '%1'"
-#~ msgstr "Üzenetek, melyek ezt tartalmazzák: '%1'"
-
-#~ msgid "No titles containing '%1' could be found."
-#~ msgstr "Nem található '%1' kifejezést tartalmazó cím."
-
-#~ msgid "No posts containing '%1' could be found."
-#~ msgstr "Nem található '%1' kifejezést tartalmazó üzenet."
-
-#~ msgid "administrative functions"
-#~ msgstr "adminisztratív funkciók"
-
-#~ msgid "Message board preferences"
-#~ msgstr "Üzenőfal beállításai"
-
-#~ msgid "Account number"
-#~ msgstr "Fiókszám"
-
-#~ msgid "Used in URLs"
-#~ msgstr "URL-ekben használva"
diff --git a/html/languages/translations/it.po b/html/languages/translations/it.po
deleted file mode 100644
index 31ccff4..0000000
--- a/html/languages/translations/it.po
+++ /dev/null
@@ -1,7126 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2012-01-16 11:31 PST\n"
-"PO-Revision-Date: 2012-06-12 14:07+0200\n"
-"Last-Translator: Simone_3dz2 <simonecnt at gmail.com>\n"
-"Language-Team: \n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.1.6\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Italiano"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Italian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Testo in grassetto: [b]testo[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Testo in corsivo: [i]testo[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Testo sottolineato: [u]testo[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Testo citato: [quote]testo[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Mostra codice: [code]codice[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]testo[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Lista ordinata: [list=]testo[/list] (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Inserisci immagine: [img]http://url_immagine[/img] (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Inserisci link: [url]http://link[/url] oppure [url=http://linkl]testo[/url] "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Colore del carattere"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Colore del carattere: [color=red]testo[/color] Suggerimento: puoi anche "
-"usare color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:625
-msgid "Default"
-msgstr "Predefinito"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Rosso Scuro"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Rosso"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Arancione"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Marrone"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Giallo"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Verde"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Verde oliva"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Blu ciano"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Blu"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Blu scuro"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indaco"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Viola"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Dimensione del carattere"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Dimensione del carattere: [size=x-small]testo piccolo[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Piccolo"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normale"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Grande"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Chiudi tutti i tag bbCode aperti"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Chiudi tutti i tag"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Prima il più vecchio"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Prima il più recente"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Prima i messaggi più votati"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Prima i messaggi più recenti"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Prima i più visualizzati"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Prima le discussioni con più messaggi"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Cerca delle parole nei messaggi del forum"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Cerca nel forum"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Ricerca avanzata"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:250 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Messaggi privati"
-
-# ########################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/forum_forum.php:71
-#: ../user/sample_index.php:119
-msgid "Questions and Answers"
-msgstr "Domande e risposte"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:247
-#: ../inc/user.inc:370 ../user/forum_forum.php:73 ../user/sample_index.php:118
-#: ../project.sample/project.inc:46
-msgid "Message boards"
-msgstr "Indice del forum"
-
-# ########################################<br />
-# Forum sample index page
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "Forum di %1"
-
-#: ../inc/forum.inc:238 ../inc/result.inc:658
-msgid "Previous"
-msgstr "Precedente"
-
-#: ../inc/forum.inc:260 ../inc/result.inc:667
-msgid "Next"
-msgstr "Successivo"
-
-#: ../inc/forum.inc:535
-msgid "Send message"
-msgstr "Spedisci il messaggio"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:535
-msgid "Send %1 a private message"
-msgstr "Spedisci %1 un messaggio privato"
-
-#: ../inc/forum.inc:536
-msgid "Joined: %1"
-msgstr "Iscritto: %1"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:545
-msgid "Posts: %1"
-msgstr "Messaggi: %1"
-
-#: ../inc/forum.inc:551
-msgid "Credit: %1"
-msgstr "Crediti: %1"
-
-#: ../inc/forum.inc:552
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:574
-msgid "You haven't read this message yet"
-msgstr "Non hai ancora letto questo messaggio"
-
-#: ../inc/forum.inc:574
-msgid "Unread"
-msgstr "Non letto"
-
-#: ../inc/forum.inc:577 ../inc/forum.inc:582 ../inc/forum.inc:681
-msgid "Message %1"
-msgstr "Messaggio %1"
-
-#: ../inc/forum.inc:578 ../inc/user.inc:324 ../user/forum_forum.php:172
-msgid "hidden"
-msgstr "nascosto"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:579
-msgid "Posted: %1"
-msgstr "Messaggi: %1"
-
-#: ../inc/forum.inc:582
-msgid " - in response to "
-msgstr "- in risposta a"
-
-#: ../inc/forum.inc:585 ../inc/prefs.inc:691 ../inc/prefs.inc:693
-msgid "Edit"
-msgstr "Modifica"
-
-#: ../inc/forum.inc:585
-msgid "Edit this message"
-msgstr "Modifica questo messaggio"
-
-#: ../inc/forum.inc:591
-msgid "Last modified: %1"
-msgstr "Ultima modifica: %1"
-
-#: ../inc/forum.inc:594
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr ""
-"Questo messaggio non è mostrato perchè l'autore è nella tua lista degli "
-"ignorati. Clicca %1qui%2 per vedere questo messaggio"
-
-#: ../inc/forum.inc:622 ../inc/forum.inc:633
-msgid "Report this post as offensive"
-msgstr "Segnale questo messaggio come offensivo."
-
-#: ../inc/forum.inc:622 ../inc/forum.inc:633
-msgid "Report as offensive"
-msgstr "Segnala come offensivo"
-
-#: ../inc/forum.inc:626
-msgid "Rating: %1"
-msgstr "Valutazione: %1"
-
-#: ../inc/forum.inc:626
-msgid "rate: "
-msgstr "valutazione:"
-
-# 83%
-#: ../inc/forum.inc:629
-msgid "Click if you like this message"
-msgstr "Clicca se ti piace questo messaggio"
-
-#: ../inc/forum.inc:629
-msgid "Rate +"
-msgstr "Valuta +"
-
-#: ../inc/forum.inc:631
-msgid "Click if you don't like this message"
-msgstr "Clicca se non ti piace questo messaggio"
-
-#: ../inc/forum.inc:631
-msgid "Rate -"
-msgstr "Valuta -"
-
-#: ../inc/forum.inc:639 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Rispondi"
-
-#: ../inc/forum.inc:639
-msgid "Post a reply to this message"
-msgstr "Replica a questo messaggio"
-
-#: ../inc/forum.inc:641
-msgid "Quote"
-msgstr "Cita"
-
-#: ../inc/forum.inc:641
-msgid "Post a reply by quoting this message"
-msgstr "Replica a questo messaggio citandolo"
-
-#: ../inc/forum.inc:662
-msgid "Hidden by a moderator"
-msgstr "Nascosto da un moderatore"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:683
-msgid "Posted %1 by %2"
-msgstr "Inviato %1 da %2"
-
-#: ../inc/forum.inc:701
-msgid "You may not post or rate messages until %1"
-msgstr "Non puoi inviare o valutare messaggi fino al %1"
-
-#: ../inc/forum.inc:712
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:734
-msgid "Rules:"
-msgstr "Regole:"
-
-#: ../inc/forum.inc:735
-msgid "More info"
-msgstr "Maggiori informazioni"
-
-#: ../inc/forum.inc:1008 ../user/forum_thread.php:185
-msgid "Unhide"
-msgstr "Rendi visibile"
-
-#: ../inc/forum.inc:1008
-msgid "Unhide this post"
-msgstr "Rendi visibile questo messaggio"
-
-#: ../inc/forum.inc:1010 ../user/forum_thread.php:191
-msgid "Hide"
-msgstr "Nascondi"
-
-#: ../inc/forum.inc:1010
-msgid "Hide this post"
-msgstr "Nascondi questo messaggio"
-
-#: ../inc/forum.inc:1015 ../user/forum_thread.php:224
-msgid "Move"
-msgstr "Sposta"
-
-#: ../inc/forum.inc:1015
-msgid "Move post to a different thread"
-msgstr "Sposta questo argomento in un'altra discussione"
-
-#: ../inc/forum.inc:1020
-msgid "Banish author"
-msgstr "Banna l'autore"
-
-#: ../inc/forum.inc:1027
-msgid "Vote to banish author"
-msgstr "Vota per bannare l'utente"
-
-#: ../inc/forum.inc:1031
-msgid "Vote not to banish author"
-msgstr "Vota per non bannare l'utente"
-
-#: ../inc/forum.inc:1036
-msgid "Start vote to banish author"
-msgstr "Inizia la votazione per bannare l'utente"
-
-#: ../inc/forum.inc:1069
-msgid "Only team members can post to the team message board"
-msgstr "Solo i membri del team possono inviare messaggi al forum del team"
-
-#: ../inc/forum.inc:1079
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Per creare un nuovo argomento su %1 devi avere un certo numero di crediti. "
-"Questa precauzione è stata inserita per prevenire e proteggere da qualsiasi "
-"abuso del sistema."
-
-#: ../inc/forum.inc:1086
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Ora non puoi aprire altri argomenti. Riprova più tardi. Questa precauzione è "
-"stata inserita per proteggere il sistema da eventuali abusi."
-
-#: ../inc/forum.inc:1093
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Questa discussione è bloccata. Solo i moderatori e gli amministratori "
-"possono scrivere qui."
-
-#: ../inc/forum.inc:1098
-msgid "Can't post to a hidden thread."
-msgstr "Non posso scrivere in un thread nascosto."
-
-#: ../inc/forum.inc:1126
-msgid "Thread"
-msgstr "Argomento"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:1127 ../inc/team.inc:120 ../user/forum_forum.php:135
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Messaggi"
-
-#: ../inc/forum.inc:1128 ../user/forum_forum.php:136
-#: ../user/forum_reply.php:115 ../user/forum_report_post.php:75
-#: ../user/forum_thread.php:263
-msgid "Author"
-msgstr "Autore"
-
-#: ../inc/forum.inc:1129 ../user/forum_forum.php:137
-msgid "Views"
-msgstr "Visite"
-
-#: ../inc/forum.inc:1130 ../inc/team.inc:120 ../user/forum_forum.php:138
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Ultimo messaggio"
-
-#: ../inc/forum.inc:1188
-msgid "New posts in the thread %1"
-msgstr "Nuovi messa nella discussione %1"
-
-#: ../inc/forum.inc:1193
-msgid "New posts in subscribed thread"
-msgstr "Nuovi messaggi in discussioni alla quali sei iscritto"
-
-#: ../inc/forum.inc:1194
-msgid "There are new posts in the thread '%1'"
-msgstr "Ci sono nuovi messaggi nella discussione '%1'"
-
-#: ../inc/forum.inc:1204
-msgid "Mark all threads as read"
-msgstr "Segna tutti gli argomenti come letti"
-
-#: ../inc/forum.inc:1205
-msgid "Mark all threads in all message boards as read."
-msgstr "Segna tutte le discussioni nel forum come lette."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Nessun host"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Non disponibile"
-
-#: ../inc/host.inc:55 ../inc/prefs.inc:626 ../inc/prefs.inc:1026
-msgid "Home"
-msgstr "Casa"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:628 ../inc/prefs.inc:1027
-#: ../user/server_status.php:319
-msgid "Work"
-msgstr "Lavoro"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:627 ../inc/prefs.inc:1028
-msgid "School"
-msgstr "Scuola"
-
-#: ../inc/host.inc:59 ../user/edit_forum_preferences_form.php:173
-#: ../user/edit_forum_preferences_form.php:174
-msgid "Update"
-msgstr "Aggiorna"
-
-#: ../inc/host.inc:83
-msgid "Computer information"
-msgstr "Informazioni sul computer"
-
-#: ../inc/host.inc:87 ../inc/host.inc:92
-msgid "IP address"
-msgstr "Indirizzo IP"
-
-#: ../inc/host.inc:87
-msgid "(same the last %1 times)"
-msgstr "(uguale alle ultime %1 volte)"
-
-#: ../inc/host.inc:89
-msgid "External IP address"
-msgstr "Indirizzo IP esterno"
-
-#: ../inc/host.inc:92
-msgid "Show IP address"
-msgstr "Visualizza indirizzo IP"
-
-#: ../inc/host.inc:94
-msgid "Domain name"
-msgstr "Nome dominio"
-
-#: ../inc/host.inc:97
-msgid "Local Standard Time"
-msgstr "Ora locale"
-
-#: ../inc/host.inc:97
-msgid "UTC %1 hours"
-msgstr "UTC %1 ore"
-
-#: ../inc/host.inc:98 ../inc/host.inc:645 ../inc/result.inc:591
-#: ../inc/team.inc:202 ../inc/team.inc:350 ../inc/user.inc:200
-#: ../user/account_finish.php:41 ../user/create_account_form.php:89
-#: ../user/team_admins.php:62 ../user/team_change_founder_form.php:77
-#: ../user/team_email_list.php:64 ../user/top_users.php:49
-#: ../user/user_search.php:105 ../user/user_search.php:163
-msgid "Name"
-msgstr "Nome"
-
-#: ../inc/host.inc:102 ../inc/host.inc:104 ../inc/host.inc:216
-msgid "Owner"
-msgstr "Proprietario"
-
-#: ../inc/host.inc:104 ../inc/host.inc:333
-msgid "Anonymous"
-msgstr "Anonimo"
-
-#: ../inc/host.inc:108 ../inc/result.inc:593
-msgid "Created"
-msgstr "Creato"
-
-#: ../inc/host.inc:109 ../inc/host.inc:220 ../inc/host.inc:225
-#: ../inc/host.inc:654 ../inc/team.inc:94 ../inc/team.inc:207
-#: ../inc/team.inc:212 ../inc/team.inc:214 ../inc/team.inc:356
-#: ../inc/team.inc:361 ../inc/user.inc:122 ../inc/user.inc:136
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:105
-#: ../user/user_search.php:163
-msgid "Total credit"
-msgstr "Crediti totali"
-
-#: ../inc/host.inc:110 ../inc/user.inc:122 ../user/team_search.php:70
-#: ../user/user_search.php:105 ../user/user_search.php:163
-msgid "Average credit"
-msgstr "Credito medio"
-
-#: ../inc/host.inc:112
-msgid "Cross project credit"
-msgstr "Crediti su tutti i progetti"
-
-#: ../inc/host.inc:114
-msgid "CPU type"
-msgstr "tipo di CPU"
-
-#: ../inc/host.inc:115
-msgid "Number of processors"
-msgstr "Numero di processori"
-
-#: ../inc/host.inc:117
-msgid "Coprocessors"
-msgstr "Coprocessori"
-
-#: ../inc/host.inc:119 ../inc/host.inc:660
-msgid "Operating System"
-msgstr "Sistema Operativo"
-
-#: ../inc/host.inc:122 ../inc/host.inc:229
-msgid "BOINC version"
-msgstr "versione BOINC"
-
-#: ../inc/host.inc:126
-msgid "Memory"
-msgstr "Memoria"
-
-#: ../inc/host.inc:126 ../inc/host.inc:134
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:129
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:129
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:134
-msgid "Swap space"
-msgstr "Spazio di swap"
-
-#: ../inc/host.inc:137
-msgid "Total disk space"
-msgstr "Spazio totale su disco"
-
-#: ../inc/host.inc:137 ../inc/host.inc:140
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:140
-msgid "Free Disk Space"
-msgstr "Spazio Libero su Disco"
-
-#: ../inc/host.inc:144
-msgid "Measured floating point speed"
-msgstr "Velocità misurata in calcoli in virgola mobile"
-
-#: ../inc/host.inc:144 ../inc/host.inc:147
-msgid "%1 million ops/sec"
-msgstr "%1 milioni di operazioni/sec"
-
-#: ../inc/host.inc:147
-msgid "Measured integer speed"
-msgstr "Velocità calcoli interi"
-
-#: ../inc/host.inc:151 ../inc/host.inc:153
-msgid "Average upload rate"
-msgstr "Velocità media di upload"
-
-#: ../inc/host.inc:151 ../inc/host.inc:158
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:153 ../inc/host.inc:160 ../inc/result.inc:195
-#: ../inc/result.inc:205 ../inc/result.inc:223 ../inc/result.inc:241
-#: ../inc/result.inc:257 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:29
-msgid "Unknown"
-msgstr "Sconosciuto"
-
-#: ../inc/host.inc:158 ../inc/host.inc:160
-msgid "Average download rate"
-msgstr "Velocità media di download"
-
-#: ../inc/host.inc:163 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Tempo medio di completamento"
-
-#: ../inc/host.inc:163 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 giorni"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/host.inc:164
-msgid "Application details"
-msgstr "Dettagli dell'applicazione"
-
-#: ../inc/host.inc:165
-msgid "Show"
-msgstr "Visualizza:"
-
-#: ../inc/host.inc:175 ../inc/host.inc:317 ../inc/user.inc:153
-msgid "Tasks"
-msgstr "Elaborazioni"
-
-#: ../inc/host.inc:179 ../inc/host.inc:200
-msgid "Number of times client has contacted server"
-msgstr "Numero di volte che BOINC ha contattato il server"
-
-#: ../inc/host.inc:180
-msgid "Last time contacted server"
-msgstr "Ultima volta in cui è stato contattato il server"
-
-#: ../inc/host.inc:181
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% di tempo che il client BOINC è attivo"
-
-#: ../inc/host.inc:183
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Quando BOINC è attivo, % di tempo che l'host ha una connessione Internet"
-
-#: ../inc/host.inc:185
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Quando BOINC è attivo, % di tempo in cui il lavoro è permesso"
-
-#: ../inc/host.inc:187
-msgid "Average CPU efficiency"
-msgstr "Efficienza media CPU"
-
-#: ../inc/host.inc:190
-msgid "Task duration correction factor"
-msgstr "Fattore di correzione della durata del lavoro"
-
-#: ../inc/host.inc:192 ../inc/host.inc:647
-msgid "Location"
-msgstr "Luogo"
-
-#: ../inc/host.inc:194
-msgid "Delete this computer"
-msgstr "Cancella questo computer"
-
-#: ../inc/host.inc:198
-msgid "Merge duplicate records of this computer"
-msgstr "Unisci risultati multipli di questo computer"
-
-#: ../inc/host.inc:198
-msgid "Merge"
-msgstr "Unisci"
-
-#: ../inc/host.inc:201 ../inc/host.inc:662
-msgid "Last contact"
-msgstr "Ultimo contatto"
-
-#: ../inc/host.inc:214
-msgid "Computer info"
-msgstr "Informazioni computer"
-
-#: ../inc/host.inc:215 ../inc/host.inc:649 ../inc/team.inc:349
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Posizione"
-
-#: ../inc/host.inc:219 ../inc/host.inc:652
-msgid "Avg. credit"
-msgstr "Media dei crediti"
-
-#: ../inc/host.inc:224 ../inc/team.inc:95 ../inc/team.inc:208
-#: ../inc/team.inc:217 ../inc/team.inc:219 ../inc/team.inc:355
-#: ../inc/team.inc:360 ../inc/user.inc:137
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Media dei crediti recenti"
-
-#: ../inc/host.inc:230 ../inc/host.inc:657 ../inc/result.inc:47
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:231 ../inc/host.inc:658
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:232
-msgid "Operating system"
-msgstr "Sistema operativo"
-
-#: ../inc/host.inc:296
-msgid "(%1 processors)"
-msgstr "(%1 dei processori)"
-
-#: ../inc/host.inc:316
-msgid "Details"
-msgstr "Dettagli"
-
-#: ../inc/host.inc:321
-msgid "Cross-project stats:"
-msgstr "Statistiche di tutti i progetti:"
-
-#: ../inc/host.inc:493
-msgid "Host %1 has overlapping lifetime:"
-msgstr "L'host %1 ha un tempo di sovrapposizione:"
-
-#: ../inc/host.inc:500
-msgid "Host %1 has an incompatible OS:"
-msgstr "L'Host %1 ha un SO incompatibile:"
-
-#: ../inc/host.inc:506
-msgid "Host %1 has an incompatible CPU:"
-msgstr "L'Host %1 ha una CPU incompatibile:"
-
-#: ../inc/host.inc:573
-msgid "same host"
-msgstr "stesso host"
-
-#: ../inc/host.inc:576
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Non posso unire l'host %1 con %2 - sono incompatibili"
-
-#: ../inc/host.inc:579
-msgid "Merging host %1 into host %2"
-msgstr "Unione host %1 con host %2"
-
-#: ../inc/host.inc:596
-msgid "Couldn't update credit of new computer"
-msgstr "Non posso aggiornare il credito dei nuovi computer"
-
-#: ../inc/host.inc:600
-msgid "Couldn't update results"
-msgstr "Non posso aggiornare i risultati"
-
-#: ../inc/host.inc:605
-msgid "Couldn't retire old computer"
-msgstr "Non posso ritirare un vecchio computer"
-
-#: ../inc/host.inc:607
-msgid "Retired old computer %1"
-msgstr "Ritirato il vecchio computer %1"
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Show:"
-msgstr "Visualizza:"
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "All computers"
-msgstr "Tutti i computer"
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Only computers active in past 30 days"
-msgstr "Solo i computer attivi negli ultimi 30 giorni"
-
-#: ../inc/host.inc:642 ../inc/result.inc:600
-msgid "Computer ID"
-msgstr "ID Computer"
-
-#: ../inc/host.inc:655
-msgid "BOINC<br>version"
-msgstr "versione <br>BOINC"
-
-#: ../inc/host.inc:711 ../user/merge_by_name.php:67
-msgid "Merge computers by name"
-msgstr "Unisci i computer dal nome"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Commenta"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Puoi ricevere le news con un %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Leggi"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Scrivi"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:33 ../inc/user.inc:373
-msgid "Send private message"
-msgstr "Spedisci un messaggio privato"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:59 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:106
-#: ../user/forum_reply.php:108 ../user/forum_reply.php:153 ../user/pm.php:181
-msgid "Preview"
-msgstr "Anteprima"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "nessun messaggio"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Per"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "ID o nomi degli utenti separati da virgole"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Oggetto"
-
-#: ../inc/pm.inc:86 ../user/forum_edit.php:128 ../user/forum_edit.php:133
-#: ../user/forum_post.php:116 ../user/forum_reply.php:115
-#: ../user/forum_report_post.php:75 ../user/forum_thread.php:263
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Messaggio"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Spedisci il messaggio"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "ti ho mandato un messaggio privato; titolo:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Messaggio privato%1 da %2, titolo:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Non in grado di scrivere il messaggio"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Non sei autorizzato ad inviare messaggi privati così spesso. Per favore "
-"aspetta qualche minuto prima di inviarne degli altri."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:184
-msgid "unread"
-msgstr "non letto"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-"Per ricevere le notifiche via mail, %1modifica le preferenze della comunità%"
-"2"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Messaggi privati"
-
-#: ../inc/prefs.inc:76
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Sospendere l'elaborazione mentre il computer funziona a batterie? %"
-"1(riguarda solo i computer portatili)%2"
-
-#: ../inc/prefs.inc:84
-msgid "Suspend work while computer is in use?"
-msgstr "Sospendere l'elaborazione mentre il computer è in uso?"
-
-#: ../inc/prefs.inc:90
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Sospendere l'elaborazione della GPU mentre il computer è in uso? %1Si "
-"applica dalla versione 6.6.21+ %2"
-
-#: ../inc/prefs.inc:98
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'In uso' significa che c'è attività del mouse/tastiera negli ultimi"
-
-#: ../inc/prefs.inc:100 ../inc/prefs.inc:109 ../inc/prefs.inc:143
-msgid "minutes"
-msgstr "minuti"
-
-#: ../inc/prefs.inc:104
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Sospende l'elaborazione se non c'è attività di mouse/tastiera negli ultimi %"
-"1(Necessario per entrare in modalità risparmio energetico in certi computer)"
-"%2"
-
-#: ../inc/prefs.inc:113
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Sospendi l'elaborazione se l'uso della CPU è superiore a %1 0 significa "
-"assenza di restrizioni<br>Si applica dalla versione 6.10.30+ %2"
-
-#: ../inc/prefs.inc:121
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Elabora solamente tra le ore %1. Nessuna restrizione se uguale a %2"
-
-#: ../inc/prefs.inc:129
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Lasciare le attività in memoria mentre sono sospese? %1(se \"sì\" le attività "
-"sospese consumano memoria di swap)%2"
-
-#: ../inc/prefs.inc:138
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Cambia attività ogni %1 Consigliato: 60 minuti %2"
-
-#: ../inc/prefs.inc:146
-msgid "On multiprocessors, use at most"
-msgstr "Su sistemi multiprocessore, usa al massimo"
-
-#: ../inc/prefs.inc:148
-msgid "processors"
-msgstr "processori"
-
-#: ../inc/prefs.inc:152
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Su sistemi multiprocessore usare al massimo %1 Si applica dalla versione "
-"6.1+ %2"
-
-#: ../inc/prefs.inc:157
-#, php-format
-msgid "% of the processors"
-msgstr "% dei processori"
-
-#: ../inc/prefs.inc:161
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Utilizza al massimo %1. Può essere utlizzato per ridurre il riscaldamento "
-"della CPU %2"
-
-#: ../inc/prefs.inc:166
-#, php-format
-msgid "% of CPU time"
-msgstr "% del tempo della CPU"
-
-#: ../inc/prefs.inc:174 ../inc/prefs.inc:188
-msgid "Disk: use at most"
-msgstr "Disco: utilizza al massimo"
-
-#: ../inc/prefs.inc:176 ../inc/prefs.inc:185
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:179
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disco: lascia libero almeno %1 Valori minori di %2 vengono ignorati %3"
-
-#: ../inc/prefs.inc:190 ../inc/prefs.inc:200 ../inc/prefs.inc:205
-#: ../inc/prefs.inc:210
-#, php-format
-msgid "% of total"
-msgstr "% di spazio totale su disco"
-
-#: ../inc/prefs.inc:193
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Checkpoint del lavoro su disco al massimo ogni"
-
-#: ../inc/prefs.inc:195
-msgid "seconds"
-msgstr "secondi"
-
-#: ../inc/prefs.inc:198
-msgid "Swap space: use at most"
-msgstr "Spazio di swap: utilizza al massimo"
-
-#: ../inc/prefs.inc:203
-msgid "Memory: when computer is in use, use at most"
-msgstr "Memoria: quando il computer è in uso, utilizza al massimo"
-
-#: ../inc/prefs.inc:208
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Memoria: quando il computer non è in uso, utilizza al massimo "
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Computer is connected to the Internet about every %1 Leave blank or 0 if "
-"always connected. %2 BOINC will try to maintain at least this much work (max "
-"10 days). %3"
-msgstr ""
-"Computer connesso a Internet ogni %1 Lascia in bianco o scrivi 0 se è sempre "
-"connesso. %2 BOINC cercherà di mantenere abbastanza lavoro (massimo 10 "
-"giorni). %3"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:244
-msgid "days"
-msgstr "giorni"
-
-#: ../inc/prefs.inc:226
-msgid "Maintain enough work for an additional"
-msgstr "Mantieni abbastanza riserva di lavoro per"
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Confermare prima di connettersi a Internet? %1 Ha senso solo in caso tu "
-"abbia un modem, ISDN o una connessione VPN %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Disconnettere al termine? %1 Ha senso solo in caso tu abbia un modem, ISDN o "
-"una connessione VPN %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Velocità massima di download:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbytes/sec"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Velocità massima di upload:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Utilizza la connessione di rete solamente tra le ore"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Trasferire al massimo %1. Si applica dalla versione 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mbytes ogni"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Salta la verifica dei file immagine? %1 Seleziona questo SOLO se il tuo "
-"Internet provider modifica i file immagine (ad esempio l'UMTS lo fa). %2 "
-"Saltare la verifica riduce la sicurezza di BOINC.%3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Divisione delle risorse %1 Determina la proporzione delle risorse del "
-"computer destinate a questo progetto. Esempio: se partecipi a due progetti "
-"con divisione delle risorse di 100 e 200, il primo progetto riceverà 1/3 "
-"delle tue risorse, mentre il secondo riceverà 2/3 %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accelerare le attività GPU dedicando a ciascuna di esse una CPU?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Usa la CPU %1 Si applica dalla versione 6.10+ %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usa la GPU ATI %1 Si applica dalla versione 6.10+ %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usa la GPU NVIDIA %1 Si applica dalla versione 6.10+ %2"
-
-#: ../inc/prefs.inc:346
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Avviare le applicazioni test %1? Questo ci aiuta a sviluppare le "
-"applicazioni, ma potrebbe causare fallimenti dei lavori sul tuo computer %2"
-
-#: ../inc/prefs.inc:355
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Verranno mandate email da %1; accertati che il tuo filtro di spam accetti "
-"questo indirizzo. "
-
-#: ../inc/prefs.inc:362
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Sei d'accordo che %1 ed il tuo team (se ne hai uno) possano inviarti email?"
-
-#: ../inc/prefs.inc:368
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1 può mostrare i tuoi computer sul suo sito web?"
-
-#: ../inc/prefs.inc:375
-msgid "Disk and memory usage"
-msgstr "Utilizzo disco e memoria"
-
-#: ../inc/prefs.inc:376
-msgid "Processor usage"
-msgstr "Uso del processore"
-
-#: ../inc/prefs.inc:377
-msgid "Network usage"
-msgstr "Utilizzo rete"
-
-#: ../inc/prefs.inc:380
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Queste preferenze si applicano a tutti i progetti BOINC ai quali partecipi."
-
-#: ../inc/prefs.inc:383
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Impossibile aggiornare le preferenze.%2 I valori segnati in rosso erano "
-"fuori dall'intervallo consentito o non erano numerici."
-
-#: ../inc/prefs.inc:432
-msgid "bad venue: %1"
-msgstr "sede non valida: %1"
-
-#: ../inc/prefs.inc:438
-msgid "bad subset: %1"
-msgstr "sottoclasse non valida: %1"
-
-#: ../inc/prefs.inc:657 ../inc/prefs.inc:660 ../inc/prefs.inc:1003
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:75
-msgid "yes"
-msgstr "sì"
-
-#: ../inc/prefs.inc:657 ../inc/prefs.inc:660 ../inc/prefs.inc:1005
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:77
-msgid "no"
-msgstr "no"
-
-#: ../inc/prefs.inc:665 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "nessun limite"
-
-#: ../inc/prefs.inc:690 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Aggiungi"
-
-#: ../inc/prefs.inc:692 ../inc/prefs.inc:818
-#: ../user/edit_forum_preferences_form.php:161 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Rimuovi"
-
-#: ../inc/prefs.inc:798 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Computazione"
-
-#: ../inc/prefs.inc:809
-msgid "Separate preferences for %1"
-msgstr "Preferenze separate per %1"
-
-#: ../inc/prefs.inc:818 ../inc/prefs.inc:893
-msgid "Edit preferences"
-msgstr "Modifica le Preferenze"
-
-#: ../inc/prefs.inc:822
-msgid "Add separate preferences for %1"
-msgstr "Aggiungi le preferenze separate per %1"
-
-#: ../inc/prefs.inc:830 ../inc/prefs.inc:875
-msgid "(Switch View)"
-msgstr "(Cambia Visuale)"
-
-#: ../inc/prefs.inc:832 ../inc/prefs.inc:878
-msgid "Combined preferences"
-msgstr "Preferenze combinate"
-
-#: ../inc/prefs.inc:837
-msgid "Project specific settings"
-msgstr "Impostazioni specifiche per il progetto"
-
-#: ../inc/prefs.inc:845 ../inc/prefs.inc:887
-msgid "Primary (default) preferences"
-msgstr "Impostazioni principali (predefinite)"
-
-#: ../inc/prefs.inc:854 ../user/add_venue.php:43 ../user/add_venue.php:67
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Modifica le preferenze per %1"
-
-#: ../inc/prefs.inc:868
-msgid ""
-"These apply to all BOINC projects in which you participate.<br>\n"
-"             On computers participating in multiple projects, the most "
-"recently modified preferences will be used."
-msgstr ""
-"Queste si applicano a tutti i progetti BOINC ai quali partecipi. <br>\n"
-"                                                     Sui computer che "
-"partecipano a progetti multipli, verranno utilizzate le preferenze "
-"modificate più recentemente."
-
-#: ../inc/prefs.inc:872
-msgid "Preferences last modified:"
-msgstr "Ultima modifica delle preferenze:"
-
-#: ../inc/prefs.inc:922
-msgid "Add preferences"
-msgstr "Aggiungi le preferenze"
-
-#: ../inc/prefs.inc:926
-msgid "Update preferences"
-msgstr "Aggiorna le preferenze"
-
-#: ../inc/prefs.inc:1014 ../inc/prefs.inc:1023
-msgid "Default computer location"
-msgstr "Posizione del computer predefinita"
-
-#: ../inc/prefs.inc:1174
-msgid "Update failed: "
-msgstr "Aggiornamento fallito"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "e"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Il tuo profile verrà reso visibile agli altri utenti non appena viene "
-"approvato dal progetto. Questo potrebbe richiedere alcuni giorni."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Il tuo profilo è stato considerato inacettabile. Non è visibile agli altri "
-"utenti. Per favore modificalo."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Errore del database"
-
-#: ../inc/profile.inc:192
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Per evitare lo spam, i profili degli utenti con un credito medio inferiore a "
-"%1 vengono mostrati solo agli utenti connessi. Ci scusiamo per questo "
-"inconveniente."
-
-#: ../inc/profile.inc:196
-msgid "User is banished"
-msgstr "L'utente è stato bannato."
-
-#: ../inc/profile.inc:210
-msgid "No profile exists for that user ID."
-msgstr "Non esiste alcun profilo con questo ID utente."
-
-#: ../inc/profile.inc:218 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Modifica il tuo profilo"
-
-#: ../inc/profile.inc:261
-msgid "Your feedback on this profile"
-msgstr "Feedback ricevuti dal tuo profilo"
-
-#: ../inc/profile.inc:263
-msgid "Recommend this profile for User of the Day:"
-msgstr "Raccomanda questo profilo come Utente del Giorno:"
-
-#: ../inc/profile.inc:264
-msgid "I %1like%2 this profile"
-msgstr "Questo profilo %1mi piace%2"
-
-#: ../inc/profile.inc:267
-msgid "Alert administrators to an offensive profile:"
-msgstr "Avvisa gli amministratori del profilo offensivo:"
-
-#: ../inc/profile.inc:268
-msgid "I %1do not like%2 this profile"
-msgstr "Questo profilo %1non mi piace%2"
-
-#: ../inc/result.inc:34
-msgid "Anonymous platform"
-msgstr "Piattaforma anonima"
-
-#: ../inc/result.inc:48
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:49 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:56
-msgid "Not in DB"
-msgstr "Non è nel DB"
-
-#: ../inc/result.inc:82
-msgid "pending"
-msgstr "non assegnato"
-
-#: ../inc/result.inc:104 ../user/forum_search.php:60
-msgid "All"
-msgstr "Tutti"
-
-#: ../inc/result.inc:105 ../inc/result.inc:162 ../inc/result.inc:202
-msgid "In progress"
-msgstr "In corso"
-
-#: ../inc/result.inc:106 ../user/workunit.php:67
-msgid "Pending"
-msgstr "Non assegnato"
-
-#: ../inc/result.inc:107 ../inc/result.inc:247
-msgid "Valid"
-msgstr "Valido"
-
-#: ../inc/result.inc:108 ../inc/result.inc:250
-msgid "Invalid"
-msgstr "Invalido"
-
-#: ../inc/result.inc:109 ../inc/result.inc:188
-msgid "Error"
-msgstr "Errore"
-
-#: ../inc/result.inc:160 ../inc/result.inc:200 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Non attivo"
-
-#: ../inc/result.inc:161 ../inc/result.inc:201 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Non inviato"
-
-#: ../inc/result.inc:167
-msgid "Completed, waiting for validation"
-msgstr "Completato, in attesa di validazione"
-
-#: ../inc/result.inc:168
-msgid "Completed and validated"
-msgstr "Completato e validato"
-
-#: ../inc/result.inc:169
-msgid "Completed, marked as invalid"
-msgstr "Completato, indicato come non valido"
-
-#: ../inc/result.inc:170
-msgid "Completed, can't validate"
-msgstr "Completato, impossibile da validare"
-
-#: ../inc/result.inc:171
-msgid "Completed, validation inconclusive"
-msgstr "Completato, validazione inconclusiva"
-
-#: ../inc/result.inc:172
-msgid "Completed, too late to validate"
-msgstr "Completato, troppo tardi per validarlo"
-
-#: ../inc/result.inc:174
-msgid "Completed"
-msgstr "Completato"
-
-#: ../inc/result.inc:175 ../inc/result.inc:212 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Non poteva essere inviato"
-
-#: ../inc/result.inc:178 ../inc/result.inc:236
-msgid "Cancelled by server"
-msgstr "Cancellato dal server"
-
-#: ../inc/result.inc:181
-msgid "Error while downloading"
-msgstr "Errore durante lo scaricamento"
-
-#: ../inc/result.inc:183
-msgid "Error while computing"
-msgstr "Errore durante l'elaborazione"
-
-#: ../inc/result.inc:184
-msgid "Error while uploading"
-msgstr "Errore durante l'invio dei dati"
-
-#: ../inc/result.inc:185 ../inc/result.inc:238
-msgid "Aborted by user"
-msgstr "Interrotto dall'utente"
-
-#: ../inc/result.inc:186 ../inc/result.inc:239
-msgid "Upload failed"
-msgstr "Invio fallito"
-
-#: ../inc/result.inc:189
-msgid "Timed out - no response"
-msgstr "Scaduto - nessuna risposta"
-
-#: ../inc/result.inc:190 ../inc/result.inc:219 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Non era necessario"
-
-#: ../inc/result.inc:191 ../inc/result.inc:220 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Errore di validazione"
-
-#: ../inc/result.inc:192 ../inc/result.inc:221
-msgid "Abandoned"
-msgstr "Abbandonato"
-
-#: ../inc/result.inc:203 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Terminato"
-
-#: ../inc/result.inc:211 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Successo"
-
-#: ../inc/result.inc:215
-msgid "Computation error"
-msgstr "Errore di elaborazione"
-
-#: ../inc/result.inc:217
-msgid "Redundant result"
-msgstr "Risultato ridondante"
-
-#: ../inc/result.inc:218 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Nessuna risposta"
-
-#: ../inc/result.inc:228 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nuovo"
-
-#: ../inc/result.inc:229 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Scaricamento in corso"
-
-#: ../inc/result.inc:230
-msgid "Processing"
-msgstr "In elaborazione"
-
-#: ../inc/result.inc:231
-msgid "Compute error"
-msgstr "Errore di computazione"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Invio dati"
-
-#: ../inc/result.inc:233 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Finito"
-
-#: ../inc/result.inc:246
-msgid "Initial"
-msgstr "Inizio"
-
-#: ../inc/result.inc:252
-msgid "Not necessary"
-msgstr "Non necessario"
-
-#: ../inc/result.inc:253
-msgid "Workunit error - check skipped"
-msgstr "Errore nell'attività - il controllo è stato ignorato"
-
-#: ../inc/result.inc:254
-msgid "Checked, but no consensus yet"
-msgstr "Controllato, ma ancora non approvato"
-
-#: ../inc/result.inc:255
-msgid "Task was reported too late to validate"
-msgstr "Il lavoro è stato riportato troppo tardi per la validazione"
-
-#: ../inc/result.inc:281
-msgid "Couldn't send result"
-msgstr "Non posso mandare il risultato"
-
-#: ../inc/result.inc:285
-msgid "Too many errors (may have bug)"
-msgstr "Troppi errori (potrebbe avere problemi)"
-
-#: ../inc/result.inc:289
-msgid "Too many results (may be nondeterministic)"
-msgstr "Troppi risultati (può essere non deterministico)"
-
-#: ../inc/result.inc:293
-msgid "Too many total results"
-msgstr "Troppi risultati totali"
-
-#: ../inc/result.inc:297
-msgid "WU cancelled"
-msgstr "Lavoro cancellato"
-
-#: ../inc/result.inc:301
-msgid "Unrecognized Error: %1"
-msgstr "Errore non riconosciuto: %1"
-
-#: ../inc/result.inc:328
-msgid "Task name"
-msgstr "Nome del lavoro"
-
-#: ../inc/result.inc:328 ../inc/result.inc:333 ../inc/result.inc:336
-#: ../inc/result.inc:339
-msgid "click for details"
-msgstr "clicca per i dettagli"
-
-#: ../inc/result.inc:328
-msgid "Show IDs"
-msgstr "Mostra gli ID"
-
-#: ../inc/result.inc:333
-msgid "Show names"
-msgstr "Visualizza nomi"
-
-#: ../inc/result.inc:336
-msgid "Task"
-msgstr "Attività"
-
-#: ../inc/result.inc:339
-msgid "Work unit"
-msgstr "Unità di lavoro"
-
-#: ../inc/result.inc:342
-msgid "Computer"
-msgstr "Computer"
-
-#: ../inc/result.inc:345 ../inc/result.inc:594
-msgid "Sent"
-msgstr "Inviato"
-
-#: ../inc/result.inc:346
-msgid "Time reported<br />or deadline"
-msgstr "Tempo riportato<br />o scadenza"
-
-#: ../inc/result.inc:347
-msgid "explain"
-msgstr "spiega"
-
-#: ../inc/result.inc:349 ../user/server_status.php:246
-msgid "Status"
-msgstr "Stato"
-
-#: ../inc/result.inc:350
-msgid "Run time<br />(sec)"
-msgstr "Tempo di elaborazione<br />(sec)"
-
-#: ../inc/result.inc:351
-msgid "CPU time<br />(sec)"
-msgstr "Tempo CPU<br />(sec)"
-
-#: ../inc/result.inc:352 ../inc/result.inc:605
-msgid "Credit"
-msgstr "Crediti"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/result.inc:353 ../inc/result.inc:687
-msgid "Application"
-msgstr "Applicazione"
-
-#: ../inc/result.inc:592
-msgid "Workunit"
-msgstr "Lavoro"
-
-#: ../inc/result.inc:595
-msgid "Received"
-msgstr "Ricevuto"
-
-#: ../inc/result.inc:596
-msgid "Server state"
-msgstr "Stato server"
-
-#: ../inc/result.inc:597
-msgid "Outcome"
-msgstr "Risultato"
-
-#: ../inc/result.inc:598
-msgid "Client state"
-msgstr "Stato client"
-
-#: ../inc/result.inc:599
-msgid "Exit status"
-msgstr "Stato di uscita"
-
-#: ../inc/result.inc:601
-msgid "Report deadline"
-msgstr "Scadenza"
-
-#: ../inc/result.inc:602
-msgid "Run time"
-msgstr "Tempo di elaborazione"
-
-#: ../inc/result.inc:603
-msgid "CPU time"
-msgstr "Tempo CPU"
-
-#: ../inc/result.inc:604
-msgid "Validate state"
-msgstr "Stato di validazione"
-
-#: ../inc/result.inc:606
-msgid "Application version"
-msgstr "Versione dell'applicazione"
-
-#: ../inc/result.inc:619
-msgid "Output files"
-msgstr "File di output"
-
-#: ../inc/result.inc:622
-msgid "Stderr output"
-msgstr "Output su Stderr"
-
-#: ../inc/result.inc:669
-msgid "State"
-msgstr "Stato"
-
-#: ../inc/team.inc:33
-msgid "Search criteria (use one or more)"
-msgstr "Criteri di ricerca (usane uno o più di uno)"
-
-#: ../inc/team.inc:34
-msgid "Key words"
-msgstr "Parole chiave"
-
-#: ../inc/team.inc:34
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-"Trova i team che hanno queste parole nel loro nome o nella loro descrizione"
-
-#: ../inc/team.inc:36 ../inc/team.inc:114 ../inc/team.inc:225
-#: ../inc/team.inc:365 ../inc/team.inc:449 ../inc/user.inc:206
-#: ../inc/user.inc:314 ../user/account_finish.php:45
-#: ../user/create_account_form.php:108 ../user/edit_user_info_form.php:40
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:105 ../user/user_search.php:123
-#: ../user/user_search.php:163
-msgid "Country"
-msgstr "Nazionalità"
-
-#: ../inc/team.inc:42 ../inc/team.inc:447
-msgid "Type of team"
-msgstr "Tipo di team"
-
-#: ../inc/team.inc:44
-msgid "Show only active teams"
-msgstr "Mostra solo i team attivi"
-
-#: ../inc/team.inc:45 ../user/profile_menu.php:77 ../user/user_search.php:136
-msgid "Search"
-msgstr "Cerca"
-
-#: ../inc/team.inc:54
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Richiesto da te, e il fondatore non ha risposto entro il tempo limite."
-
-#: ../inc/team.inc:56
-msgid "Complete foundership transfer"
-msgstr "Completa il trasferimento del fondatore"
-
-#: ../inc/team.inc:60
-msgid "Requested by you"
-msgstr "Richiesto da te"
-
-#: ../inc/team.inc:60
-msgid "founder response deadline is %1"
-msgstr "il limite massimo per una risposta del fondatore è %1"
-
-#: ../inc/team.inc:65 ../inc/team.inc:549 ../inc/user.inc:278
-#: ../inc/user.inc:366
-msgid "None"
-msgstr "Nessuno"
-
-#: ../inc/team.inc:67
-msgid "Initiate request"
-msgstr "Avvia la richiesta"
-
-#: ../inc/team.inc:70
-msgid "Deferred"
-msgstr "Rinviato"
-
-#: ../inc/team.inc:80
-msgid "Team info"
-msgstr "Informazioni sul team"
-
-#: ../inc/team.inc:82 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Descrizione"
-
-#: ../inc/team.inc:90
-msgid "Web site"
-msgstr "Sito web"
-
-#: ../inc/team.inc:112
-msgid "Cross-project stats"
-msgstr "Statistiche di tutti i progetti"
-
-#: ../inc/team.inc:115 ../inc/team.inc:366 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tipo"
-
-#: ../inc/team.inc:119 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Forum"
-
-#: ../inc/team.inc:120 ../user/forum_forum.php:134 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Argomenti"
-
-#: ../inc/team.inc:128
-msgid "Join this team"
-msgstr "Unisciti a questo team"
-
-#: ../inc/team.inc:129
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Nota: se nelle tue preferenze del progetto la voce 'OK alle email' è "
-"spuntata, unendosi al team, si dà il consenso al fondatore ad inviare "
-"messaggi al tuo indirizzo di posta elettronica."
-
-#: ../inc/team.inc:132
-msgid "Not accepting new members"
-msgstr "Non accetta nuovi membri"
-
-#: ../inc/team.inc:139
-msgid "Foundership change requested"
-msgstr "Richiesta di cambio del fondatore"
-
-#: ../inc/team.inc:140
-msgid "Respond by %1"
-msgstr "Risposta di %1"
-
-#: ../inc/team.inc:144
-msgid "Team foundership change"
-msgstr "Cambio di fondatore del team"
-
-#: ../inc/team.inc:148 ../inc/team.inc:351
-msgid "Members"
-msgstr "Membri"
-
-#: ../inc/team.inc:149 ../inc/team.inc:246
-msgid "Founder"
-msgstr "Fondatore"
-
-#: ../inc/team.inc:161
-msgid "Admins"
-msgstr "Amministratori"
-
-#: ../inc/team.inc:176
-msgid "New members in last day"
-msgstr "Nuovi membri nell'ultimo giorno"
-
-#: ../inc/team.inc:177
-msgid "Total members"
-msgstr "Totale dei membri"
-
-#: ../inc/team.inc:177 ../inc/team.inc:178 ../inc/team.inc:179
-msgid "view"
-msgstr "visualizza"
-
-#: ../inc/team.inc:178
-msgid "Active members"
-msgstr "Membri attivi"
-
-#: ../inc/team.inc:179
-msgid "Members with credit"
-msgstr "Membri con credito"
-
-#: ../inc/team.inc:248
-msgid "Admin"
-msgstr "Amministratore"
-
-#: ../inc/team.inc:269 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Precedente %1"
-
-#: ../inc/team.inc:273 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Successivi %1"
-
-#: ../inc/team.inc:281
-msgid "No such team."
-msgstr "Nessun team."
-
-#: ../inc/team.inc:294
-msgid "This operation requires foundership."
-msgstr "Per fare questa operazione devi essere il fondatore."
-
-#: ../inc/team.inc:318
-msgid "This operation requires team admin privileges"
-msgstr "Per fare questa operazione devi avere i privilegi da amministratore"
-
-#: ../inc/team.inc:415
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"ATTENZIONE: questo è un grosso team di BOINC. Se fai delle modifiche qui, "
-"saranno presto sovrascritte. Modifica al suo posto il %1BOINC-wide team%2."
-
-#: ../inc/team.inc:422
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Nota sulla privacy%2: se hai intenzione di creare un team, le preferenze "
-"del tuo progetto (allocazione delle risorse, preferenze grafiche) saranno "
-"visibili a tutti."
-
-#: ../inc/team.inc:426
-msgid "Team name, text version"
-msgstr "Nome del team, versione testuale"
-
-#: ../inc/team.inc:427
-msgid "Don't use HTML tags."
-msgstr "Non usare i tag HTML."
-
-#: ../inc/team.inc:430
-msgid "Team name, HTML version"
-msgstr "Nome del team, versione HTML"
-
-#: ../inc/team.inc:432 ../inc/team.inc:442
-msgid "You may use %1limited HTML tags%2."
-msgstr "Puoi usare %1un numero limitato di tag HTML%2."
-
-#: ../inc/team.inc:433
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Se non conosci l'HTML, lascia questo campo vuoto."
-
-#: ../inc/team.inc:436
-msgid "URL of team web page, if any"
-msgstr "URL del sito web del gruppo, se esiste"
-
-#: ../inc/team.inc:436
-msgid "without \"http://\""
-msgstr "senza \"http://\""
-
-#: ../inc/team.inc:437
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Questo indirizzo sarà linkato nella pagina del team su questo sito."
-
-#: ../inc/team.inc:440
-msgid "Description of team"
-msgstr "Descrizione del team"
-
-#: ../inc/team.inc:456
-msgid "Accept new members?"
-msgstr "Accetare nuovi membri?"
-
-#: ../inc/uotd.inc:27
-msgid "User profile"
-msgstr "Profilo utente"
-
-# ########################################
-# Public user page (show_user.php)
-#: ../inc/user.inc:116
-msgid "Projects in which you are participating"
-msgstr "Progetti a cui stai partecipando"
-
-#: ../inc/user.inc:118
-msgid "Projects in which %1 is participating"
-msgstr "Progetti in cui %1 sta partecipando"
-
-#: ../inc/user.inc:122
-msgid "Project"
-msgstr "Progetto"
-
-#: ../inc/user.inc:122
-msgid "Click for user page"
-msgstr "Clicca qui per la pagina dell'utente"
-
-#: ../inc/user.inc:122
-msgid "Since"
-msgstr "Membro dal"
-
-#: ../inc/user.inc:146
-msgid "Computing and credit"
-msgstr "Elaborazioni e crediti"
-
-#: ../inc/user.inc:150 ../user/pending.php:64
-msgid "Pending credit"
-msgstr "Crediti non ancora assegnati"
-
-#: ../inc/user.inc:150 ../inc/user.inc:152 ../inc/user.inc:153
-#: ../inc/user.inc:240 ../inc/user.inc:322 ../inc/user.inc:397
-#: ../user/view_profile.php:56
-msgid "View"
-msgstr "Visualizza"
-
-#: ../inc/user.inc:152
-msgid "Computers on this account"
-msgstr "Computer di questo account"
-
-#: ../inc/user.inc:162
-msgid "Cross-project ID"
-msgstr "ID su tutti i progetti (CPID)"
-
-#: ../inc/user.inc:163
-msgid "Cross-project statistics"
-msgstr "Statistiche di tutti i progetti"
-
-#: ../inc/user.inc:164
-msgid "Account"
-msgstr "Account"
-
-#: ../inc/user.inc:166 ../inc/user.inc:278 ../inc/user.inc:364
-#: ../inc/user.inc:366 ../user/user_search.php:105 ../user/user_search.php:163
-msgid "Team"
-msgstr "Team"
-
-#: ../inc/user.inc:168
-msgid "Cross-project"
-msgstr "Inter-progetto"
-
-#: ../inc/user.inc:169
-msgid "Certificate"
-msgstr "Certificato"
-
-#: ../inc/user.inc:170
-msgid "Stats on your cell phone"
-msgstr "Statistiche sul tuo telefono cellulare"
-
-#: ../inc/user.inc:184
-msgid "Unknown notification type: %1"
-msgstr "Tipo sconosciuto di notifica: %1"
-
-#: ../inc/user.inc:199
-msgid "Account information"
-msgstr "Informazioni sull'account"
-
-#: ../inc/user.inc:201 ../user/edit_passwd_form.php:48
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "E-mail"
-
-#: ../inc/user.inc:204 ../inc/user.inc:316
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:207
-msgid "Postal code"
-msgstr "Codice postale"
-
-#: ../inc/user.inc:208 ../inc/user.inc:313
-msgid "%1 member since"
-msgstr "membro dal %1"
-
-#: ../inc/user.inc:210
-msgid "Change"
-msgstr "Cambia"
-
-#: ../inc/user.inc:210
-msgid "email address"
-msgstr "e-mail"
-
-#: ../inc/user.inc:211
-msgid "password"
-msgstr "password"
-
-#: ../inc/user.inc:212
-msgid "other account info"
-msgstr "altre informazioni sull'account"
-
-#: ../inc/user.inc:214 ../inc/user.inc:312
-msgid "User ID"
-msgstr "ID dell'utente"
-
-#: ../inc/user.inc:214
-msgid "Used in community functions"
-msgstr "Usato nel forum"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:27
-msgid "Weak account key"
-msgstr "Chiave di accesso debole"
-
-#: ../inc/user.inc:216
-msgid "Provides %1limited access%2 to your account"
-msgstr "Consente un %1accesso limitato%2 al tuo account"
-
-#: ../inc/user.inc:219
-msgid "Preferences"
-msgstr "Preferenze"
-
-#: ../inc/user.inc:222
-msgid "When and how BOINC uses your computer"
-msgstr "Quando e come usi BOINC sul tuo computer"
-
-#: ../inc/user.inc:223
-msgid "Computing preferences"
-msgstr "Preferenze di elaborazione"
-
-#: ../inc/user.inc:226
-msgid "Message boards and private messages"
-msgstr "Forum e messaggi privati"
-
-#: ../inc/user.inc:227 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferenze per la comunità"
-
-#: ../inc/user.inc:230
-msgid "Preferences for this project"
-msgstr "Preferenze per questo progetto"
-
-#: ../inc/user.inc:231 ../user/prefs.php:33
-msgid "%1 preferences"
-msgstr "Preferenze per %1"
-
-#: ../inc/user.inc:237 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Comunità"
-
-#: ../inc/user.inc:240 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Cancella"
-
-#: ../inc/user.inc:242
-msgid "Create"
-msgstr "Crea"
-
-#: ../inc/user.inc:244 ../inc/user.inc:397 ../inc/util.inc:484
-msgid "Profile"
-msgstr "Profilo"
-
-# ########################################
-# Forum
-#: ../inc/user.inc:247 ../inc/user.inc:370
-msgid "%1 posts"
-msgstr "%1 messaggi"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../inc/user.inc:259 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Notifiche"
-
-#: ../inc/user.inc:266
-msgid "Quit team"
-msgstr "Abbandona il team"
-
-#: ../inc/user.inc:268 ../inc/user.inc:285
-msgid "Administer"
-msgstr "Amministra"
-
-#: ../inc/user.inc:274 ../inc/user.inc:287
-msgid "(foundership change request pending)"
-msgstr "(richiesta per cambio del fondatore in corso)"
-
-#: ../inc/user.inc:276
-msgid "Member of team"
-msgstr "Membro del team"
-
-#: ../inc/user.inc:278
-msgid "find a team"
-msgstr "trova un team"
-
-#: ../inc/user.inc:289
-msgid "Founder but not member of"
-msgstr "Fondatore ma non membro di"
-
-#: ../inc/user.inc:295
-msgid "Find friends"
-msgstr "Trova degli amici"
-
-#: ../inc/user.inc:302 ../inc/user.inc:304 ../inc/user.inc:380
-#: ../inc/user.inc:382 ../inc/user.inc:391
-msgid "Friends"
-msgstr "Amici"
-
-#: ../inc/user.inc:322 ../inc/user.inc:324 ../user/server_status.php:396
-msgid "Computers"
-msgstr "Computer"
-
-#: ../inc/user.inc:331
-msgid "Donor"
-msgstr "Donatore"
-
-#: ../inc/user.inc:373
-msgid "Contact"
-msgstr "Contatta"
-
-#: ../inc/user.inc:376
-msgid "This person is a friend"
-msgstr "Questa persona è un amico"
-
-#: ../inc/user.inc:377 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Cancella l'amicizia"
-
-#: ../inc/user.inc:380 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Richiesta in corso"
-
-#: ../inc/user.inc:382
-msgid "Add as friend"
-msgstr "Aggiungi come amico"
-
-#: ../inc/util.inc:113
-msgid "log out"
-msgstr "Esci"
-
-#: ../inc/util.inc:115
-msgid "log in"
-msgstr "accedi"
-
-#: ../inc/util.inc:174 ../user/login_form.php:37 ../user/login_form.php:62
-msgid "Log in"
-msgstr "Entra"
-
-# ########################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:175 ../user/create_account_form.php:38
-msgid "Create an account"
-msgstr "Crea un account"
-
-#: ../inc/util.inc:176
-msgid "Server status page"
-msgstr "Stato del server"
-
-#: ../inc/util.inc:218
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-"Si è verificato un errore del database mentre si gestiva la tua richiesta; "
-"per favore riprova più tardi."
-
-#: ../inc/util.inc:227
-msgid "Unable to handle request"
-msgstr "Impossibile gestire la richiesta"
-
-#: ../inc/util.inc:247
-msgid "hours"
-msgstr "ore"
-
-#: ../inc/util.inc:250
-msgid "min"
-msgstr "minuti"
-
-#: ../inc/util.inc:253
-msgid "sec"
-msgstr "secondi"
-
-#: ../inc/util.inc:414
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Tempo di connessione al link scaduto. Per favore clicca Indietro, aggiorna "
-"la pagina e prova ancora."
-
-#: ../inc/util.inc:483
-msgid "View the profile of %1"
-msgstr "Mostra il profilo di %1"
-
-#: ../inc/util.inc:539
-msgid "Use BBCode tags to format your text"
-msgstr "Usa i tag BBCode per formattare il testo"
-
-#: ../inc/util.inc:750
-msgid "Project down for maintenance"
-msgstr "Progetto sospeso per manutenzione"
-
-#: ../inc/util.inc:753
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 è temporaneamente fuori servizio per manutenzione. Riprova più tardi."
-
-#: ../inc/util.inc:771
-msgid "Unable to connect to database - please try again later"
-msgstr "Impossibile connettersi al database - per favore riprova più tardi"
-
-#: ../inc/util.inc:772
-msgid "Error:"
-msgstr "Errore:"
-
-#: ../inc/util.inc:776
-msgid "Unable to select database - please try again later"
-msgstr "Impossibile selezionare il database - per favore riprova più tardi"
-
-#: ../inc/util_ops.inc:130 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Rimani loggato su questo computer"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Completa la configurazione dell'account"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:89
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identificati sul nostro sito. Usa il tuo nome reale oppure un alias."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:108
-msgid "Select the country you want to represent, if any."
-msgstr "Seleziona la nazione che vuoi rappresentare, se lo desideri."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:114
-msgid "Postal or ZIP Code"
-msgstr "CAP"
-
-# ########################################<br />
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:114
-msgid "Optional"
-msgstr "Dati facoltativi"
-
-#: ../user/account_finish_action.php:27 ../user/create_account_action.php:86
-msgid "You must supply a name for your account"
-msgstr "Devi fornire un nome per il tuo account"
-
-#: ../user/account_finish_action.php:30 ../user/create_account_action.php:89
-msgid "HTML tags not allowed in name"
-msgstr "I tag HTML non sono ammessi nel nome"
-
-#: ../user/add_venue.php:85
-#, fuzzy
-msgid "Add %1 preferences for %2"
-msgstr "Aggiungi %1 preferenze per %2"
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/sample_index.php:109
-msgid "Applications"
-msgstr "Applicazioni"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"Attualmente %1 sta usando le seguenti applicazioni. Partecipando a %1, "
-"verranno assegnati al tuo computer dei lavori per una o più di queste "
-"applicazioni. Gli aggiornamenti alle ultime versioni verranno eseguiti "
-"automaticamente."
-
-#: ../user/apps.php:49
-msgid "Platform"
-msgstr "Piattaforma"
-
-#: ../user/apps.php:50
-msgid "Version"
-msgstr "Versione"
-
-#: ../user/apps.php:51
-msgid "Installation time"
-msgstr "Tempo d'installazione"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Tag BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-"I tag BBCode ti consentono di formattare il testo del tuo profilo e i "
-"messaggi inviati in bacheca.\n"
-" Essi sono simili all'HTML, ma più semplici. I tag iniziano con una [ (in "
-"HTML potresti\n"
-" usare %1) e terminano con ] (in HTML\n"
-" potresti usare %2)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Esempi"
-
-# 75%
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Grassetto"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Corsivo"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Sottolineato"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Apice"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Testo in grande"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Testo in rosso"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "link al sito"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Testo citato"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "utilizza per le citazioni"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "usa per visualizzare un'immagine"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Inserisci qui il frammento di codice"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "usa per visualizzare codici"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Testo preformattato"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-"usa per visualizzare un testo preformattato (di solito è un carattere "
-"monospaziato)"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Elemento 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Elemento 2"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "Elemento 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "usa per inserire un link ad un ticket su Trac sul sito BOINC"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "usa per inserire un link alla Wiki Trac sul sito BOINC"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "usa per inserire un link ad un set di modifiche su SVN sul sito BOINC"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Se non chiudi un tag, o no specifichi un parametro in maniera corretta,\n"
-"il tag sarà visualizzato in chiaro al posto del testo formattato."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Non è possibile creare l'account"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Fai click sul tasto <b>Indietro</b> del tuo browser per riprovare."
-
-#: ../user/create_account_action.php:38 ../user/create_account_action.php:40
-#: ../user/create_account_form.php:43
-msgid "Account creation is disabled"
-msgstr "La creazione degli account è disabilitata"
-
-#: ../user/create_account_action.php:41
-msgid ""
-"Sorry, this project has disabled the creation of new accounts.\n"
-"Please try again later."
-msgstr ""
-"Spiacente, questo progetto ha disabilitato la creazione di nuovi account.\n"
-"Per favore riprova più tardi."
-
-#: ../user/create_account_action.php:53
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "La tua risposta al ReCaptcha non è corretta. Prova di nuovo."
-
-#: ../user/create_account_action.php:77
-msgid "You must supply an invitation code to create an account."
-msgstr "Devi fornire un codice d'invito per creare un account."
-
-#: ../user/create_account_action.php:80
-msgid "The invitation code you gave is not valid."
-msgstr "Il codice d'invito inserito non è valido."
-
-#: ../user/create_account_action.php:94
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Indirizzo email non valido: deve essere un indirizzo email valido del tipo "
-"nome at dominio"
-
-#: ../user/create_account_action.php:98
-msgid "There's already an account with that email address."
-msgstr "Esiste già un account associato a questo indirizzo email."
-
-#: ../user/create_account_action.php:104 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Le nuove password sono diverse"
-
-#: ../user/create_account_action.php:111 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "Le password possono comprendere solo caratteri ASCII."
-
-#: ../user/create_account_action.php:116 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-"La nuova password è troppo corta: la lunghezza minima è di %1 caratteri."
-
-#: ../user/create_account_action.php:137
-msgid "Couldn't create account"
-msgstr "Non è stato possibile creare l'account"
-
-#: ../user/create_account_form.php:44
-msgid "Account creation is currently disabled. Please try again later."
-msgstr ""
-"La creazione degli account è stata momentaneamente disabilitata. Riprova più "
-"tardi."
-
-#: ../user/create_account_form.php:53
-msgid ""
-"Don't use this form. Just run BOINC, select Add Project, and enter an email "
-"address and password."
-msgstr ""
-"Non usare questo modulo. Esegui BOINC, seleziona Aggiungi Progetto e "
-"inserisci un indirizzo mail e una password."
-
-#: ../user/create_account_form.php:71
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Questo account apparterrà al team %1 ed avrà le preferenze del progetto "
-"decise dal suo fondatore."
-
-#: ../user/create_account_form.php:83
-msgid "Invitation Code"
-msgstr "Codice d'invito"
-
-#: ../user/create_account_form.php:83
-msgid "A valid invitation code is required to create an account."
-msgstr "E' necessario un codice d'invito valido per poter creare un account."
-
-#: ../user/create_account_form.php:93
-msgid "Email Address"
-msgstr "Email"
-
-#: ../user/create_account_form.php:93
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Devi inserire un indirizzo email valido nella forma 'nome at dominio'."
-
-#: ../user/create_account_form.php:102 ../user/edit_email_form.php:48
-msgid "Password"
-msgstr "Password"
-
-#: ../user/create_account_form.php:103
-msgid "Must be at least %1 characters"
-msgstr "Deve essere di almeno %1 caratteri"
-
-#: ../user/create_account_form.php:106
-msgid "Confirm password"
-msgstr "Conferma la password"
-
-#: ../user/create_account_form.php:123
-msgid "Please enter the words shown in the image"
-msgstr "Per favore inserisci le parole visualizzate nell'immagine"
-
-#: ../user/create_account_form.php:129
-msgid "Create account"
-msgstr "Crea un account"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Immagine"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 La tua immagine del profilo è mostrata sulla sinistra."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Per cambiarla clicca sul pulsante \"Browse\" e seleziona una file JPEG o PNG "
-"(più piccolo di %1)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Per eliminarla dal tuo profilo, seleziona questa l'opzione:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Se vuoi aggiungere una immagine al tuo profilo, clicca sul pulsante \"Browse\" "
-"e seleziona una file JPEG o PNG. Sei pregato di scegliere un file più "
-"piccolo di %1."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Lingua"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Seleziona la lingua in cui è scritto il tuo profilo:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Invia il profilo"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Per favore inserisci le parole visualizzate nell'immagine."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Crea/modifica il profilo"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Il formato dell'immagine che hai caricato non è supportato."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"La pagina del tuo %1profilo%2 ti permettere di condividere le tue opinioni e "
-"il tuo background con la comunità di %3."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "La tua risposta al ReCaptcha non è corretta.  Prova di nuovo."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Le cose che hai scritto nel primo spazio sono state segnalate come spam dal "
-"sistema anti-spam Akismet.  Modifica il testo e riprova."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Le cose che hai scritto nel secondo spazio sono state segnalate come spam "
-"dal sistema anti-spam Akismet.  Modifica il testo e riprova."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "I campi del tuo profilo sono vuoti."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Impossibile aggiornare il profilo: errore del database"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Impossibile creare il profilo: errore del database"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Il profilo è stato salvato"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-"Congratulazioni! Il tuo profilo è stato inserito con successo nel nostro "
-"database."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Visualizza il tuo profilo%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Crea un profilo"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Per prevenire lo spam, è richiesta una media di crediti superiore a %1 per "
-"creare o modificare un profilo.  Ci scusiamo per l'inconveniente."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Non è stato possibile cancellare l'account"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Account cancellato"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Il tuo account è stato cancellato."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Conferma cancellazione dell'account"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-"La cancellazione del tuo account rimuoverà tutte le tue\n"
-"informazioni personali dai nostri server,\n"
-"incluso il tuo profilo e i messaggi inviati al forum.\n"
-"Non sarà rilasciato nessun lavoro a nessun computer\n"
-"associato a questo account."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Impossibile annullare l'operazione.\n"
-"Una volta che il tuo account è stato cancellato, non potrai riabilitarlo."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Sei sicuro di voler cancellare il tuo account?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:55 ../user/user_search.php:129
-#: ../user/user_search.php:134
-msgid "Yes"
-msgstr "Si"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Cancella questo account"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:128
-#: ../user/user_search.php:133
-msgid "No"
-msgstr "No"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Non cancellare questo account"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "non è possibile eliminare il profilo - per favore riprova più tardi"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Conferma eliminazione"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Il tuo profilo è stato cancellato."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Conferma eliminazione del profilo"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Sei sicuro?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-"I profili cancellati sono perduti per sempre e non possono essere "
-"ripristinati --\n"
-"dovrai ricominciare dall'inizio\n"
-"se vorrai un altro profilo in futuro."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Se sei sicuro, clicca 'Sì'\n"
-"per rimuovere il tuo profilo dal nostro database."
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Cancella il mio profilo"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Non cancellare il mio profilo"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transazione Completata"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Grazie per la tua donazione!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "La tua donazione è stata completata."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"La tua donazione sarà aggiunta alla barra di avanzamento dopo la conferma da "
-"parte di PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Hai annullato la tua donazione."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Questo progetto non accetta donazioni."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donazioni"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Questo progetto accetta donazioni via\n"
-" %1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-"Per fare una donazione, inserisci l'importo che vuoi donare usando i "
-"seguenti campi.\n"
-"PayPal accetta diverse valute\n"
-"(Dollari Canadesi, Euro, Sterline, Dollari U.S.A.,\n"
-"Yen, Dollari Australiani, Dollari Neozelandesi,\n"
-"Franchi Svizzeri, Dollari di Hong Kong, Dollari di Singapore, Corone "
-"Svedesi,\n"
-"Corone Danesi, Zloty Polacchi, Corone Norvegesi,\n"
-"Fiorini Ungheresi, Corone Ceche).\n"
-"Puoi usare il convertitore di valuta\n"
-"per vedere la somma donata equivalente nelle diverse valute\n"
-"(per favore nota che i tassi di conversione sono solo stimati\n"
-"e la somma reale potrebbe essere differente)."
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Somma che vuoi donare"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Valore stimato in"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Donazione anonima"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Seleziona questo se vuoi che il tuo nome e il tuo numero di account non "
-"vengano\n"
-"visualizzati nella lista donatori.<br>Se non selezioni, sarai memorizzato "
-"come un utente con ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Per associare la donazione al tuo ID utente devi accedere con il tuo "
-"account."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Procedi"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Le donazioni sono accettate tramite"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Scarica degli add-on per BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Puoi scaricare applicazioni di vari tipi."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Queste applicazioni non sono supportate da %1 e il loro utilizzo è sotto la "
-"tua sola responsabilità."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Non forniamo istruzioni per l'installazione di queste applicazioni.\n"
-"In ogni caso l'autore potrebbe aver fornito qualche informazione "
-"sull'installazione o disinstallazione dell'applicazione. \n"
-"Se questo non è sufficiente dovrai contattare l'autore."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-"Le istruzioni per l'installazione e il funzionamento di BOINC si trovano %"
-"1qui%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Questo elenco è amministrato centralmente dal %1sito web di BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Cambia l'indirizzo email del tuo account"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Il nuovo indirizzo email '%1' non è valido."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-"Il nuovo indirizzo email è uguale a quello esistente. Nulla è stato "
-"cambiato."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Esiste già un account associato a questo indirizzo email"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Password non valida."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "L'indirizzo email del tuo account è ora %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Sei pregato di %1validare questo indirizzo email%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Non possiamo aggiornare il tuo indirizzo email a causa di un problema del "
-"database. Per favore riprova più tardi."
-
-#: ../user/edit_email_form.php:28 ../user/edit_email_form.php:52
-msgid "Change email address"
-msgstr "Cambia l'indirizzo email"
-
-#: ../user/edit_email_form.php:37
-msgid "Change the email address of your account"
-msgstr "Cambia l'indirizzo email del tuo account"
-
-#: ../user/edit_email_form.php:38
-msgid "New email address"
-msgstr "Nuovo indirizzo email"
-
-#: ../user/edit_email_form.php:39
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Deve essere un indirizzo email valido del tipo 'nome at dominio'"
-
-#: ../user/edit_email_form.php:49
-msgid "No password?"
-msgstr "Non hai la password?"
-
-#: ../user/edit_forum_preferences_action.php:35
-msgid "Confirm reset"
-msgstr "Conferma il reset"
-
-#: ../user/edit_forum_preferences_action.php:36
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Questa azione eliminerà qualsiasi cambiamento apportato alle tue preferenze. "
-"Per annullare clicca sul pulsante Indietro del tuo browser."
-
-#: ../user/edit_forum_preferences_action.php:40
-msgid "Reset preferences"
-msgstr "Reimposta le preferenze"
-
-#: ../user/edit_forum_preferences_action.php:90
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-"Errore. Questo non è il tipo di file corretto, soltanto immagini PNG e JPEG "
-"sono consentite."
-
-#: ../user/edit_forum_preferences_action.php:116
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "La tua firma era troppo lunga, sono consentiti al più 250 caratteri."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user: %1"
-msgstr "Nessun utente: %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-"In che modo possiamo notificarti nuovi messaggi privati, richieste da amici, "
-"avvisi sugli argomenti sottoscritti e altri eventi?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Sulla mia pagina Account (no email)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Immediatamente, per email"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "In una singola email giornaliera"
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Immagine che ti rappresenta sul forum."
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Formato: JPG o PNG. Dimensione: al massimo 4KB, 100x100 pixel."
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Non usare un avatar"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Usa un Globally Recognized Avatar fornito da %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Usa questa immagine caricata:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Anteprima dell'avatar"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Così apparirà il tuo avatar"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Firma per i messaggi nel forum"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "caratteri rimanenti"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Allega di default la firma"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Anteprima della firma"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Indice del forum"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Cosa visualizzare"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Nascondi le immagini degli avatar"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Nascondi le firme"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Visualizza le immagini come link"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Apri i collegamenti in una nuova finestra/scheda"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Evidenzia utenti speciali"
-
-#: ../user/edit_forum_preferences_form.php:138
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "Threads:"
-msgstr "Discussioni:"
-
-# ########################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:139
-msgid "Posts:"
-msgstr "Messaggi:"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Do not reorder sticky posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "If a thread contains more than this number of posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:143
-msgid "only display the first one and this many of the last ones"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:149
-#, fuzzy
-msgid "Message filtering"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Filtered users"
-msgstr "Filtri"
-
-#: ../user/edit_forum_preferences_form.php:166
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Forum e messaggi privati"
-
-#: ../user/edit_forum_preferences_form.php:168
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:169 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Aggiungi l'utente al filtro"
-
-#: ../user/edit_forum_preferences_form.php:174
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "Aggiorna le preferenze"
-
-#: ../user/edit_forum_preferences_form.php:176
-#: ../user/edit_forum_preferences_form.php:178
-msgid "Reset"
-msgstr "Reset"
-
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Chiave di accesso debole"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Conferma la password"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:28
-#: ../user/edit_passwd_form.php:58
-msgid "Change password"
-msgstr "Cambia password"
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Il tuo messaggio è stato inviato."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Impossibile connettersi al database - per favore riprova più tardi"
-
-#: ../user/edit_passwd_form.php:42
-msgid "You can identify yourself using either"
-msgstr "Puoi identificarti usando"
-
-#: ../user/edit_passwd_form.php:44
-msgid "your email address and old password"
-msgstr "il tuo indirizzo mail e la vecchia password"
-
-#: ../user/edit_passwd_form.php:45
-#, fuzzy
-msgid "your account key"
-msgstr "La tua chiave di accesso"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Current password"
-msgstr "Password corrente"
-
-#: ../user/edit_passwd_form.php:51
-msgid "<b>OR</b>: Account key"
-msgstr "<b>OPPURE</b>: Chiave account"
-
-#: ../user/edit_passwd_form.php:52
-msgid "Get account key by email"
-msgstr "Ottieni una chiave account via email"
-
-#: ../user/edit_passwd_form.php:56
-msgid "New password"
-msgstr "Nuova password"
-
-#: ../user/edit_passwd_form.php:57
-msgid "New password, again"
-msgstr "Ripeti nuova password"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "I tag HTML non sono permessi nel tuo nome."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Devi dare un nome per il tuo account."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Non posso aggiornare le informazioni utente."
-
-#: ../user/edit_user_info_form.php:29
-#, fuzzy
-msgid "Edit account information"
-msgstr "Modifica le informazioni sull'account"
-
-#: ../user/edit_user_info_form.php:34
-msgid "Name %1 real name or nickname%2"
-msgstr "Nome %1 nome reale o nickname%2"
-
-#: ../user/edit_user_info_form.php:37
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 della tua pagina web; opzionale%2"
-
-#: ../user/edit_user_info_form.php:45
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Codice postale (ZIP) %1 Opzionale%2"
-
-#: ../user/edit_user_info_form.php:49
-msgid "Update info"
-msgstr "Aggiorna informazioni"
-
-#: ../user/explain_state.php:27
-#, fuzzy
-msgid "Server states"
-msgstr "Stato server"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "In corso"
-
-#: ../user/explain_state.php:41
-#, fuzzy
-msgid "The task has been sent; waiting for completion."
-msgstr "Attività in attesa di cancellazione"
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-#, fuzzy
-msgid "Outcomes"
-msgstr "Risultato"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Errore client"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-#, fuzzy
-msgid "Client states"
-msgstr "Stato client"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Tempo riporato<br> o scadenza"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-#, fuzzy
-msgid "Already reported"
-msgstr "Siete già amici"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Sconosciuto"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "E-mail"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Spedisci il messaggio"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Crediti non ancora assegnati"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:31
-msgid ""
-"This project hasn\\'t created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:34
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:38
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:40
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-#, fuzzy
-msgid "Your name:"
-msgstr "Visualizza nomi"
-
-#: ../user/ffmail_form.php:43
-#, fuzzy
-msgid "Your email address:"
-msgstr "e-mail"
-
-#: ../user/ffmail_form.php:49
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Amici"
-
-#: ../user/ffmail_form.php:49
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "Nuovo indirizzo email"
-
-#: ../user/ffmail_form.php:57
-#, fuzzy
-msgid "Additional message (optional)"
-msgstr "Aggiungi un messaggio (facoltativo):"
-
-#: ../user/ffmail_form.php:60
-#, fuzzy
-msgid "Send"
-msgstr "Mittente"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-#, fuzzy
-msgid "No user with this ID found."
-msgstr "Non è stato trovato nessun computer con l'ID %1"
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "L'utente è bandito."
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Osceno"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-#, fuzzy
-msgid "User Request"
-msgstr "Nessuna richiesta"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Terminato"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Versione"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-#, fuzzy
-msgid "You must specify an action..."
-msgstr "Devi dare un nome per il tuo account."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-#, fuzzy
-msgid "You are not authorized to edit this post."
-msgstr "Tu ora sei amico/a di %1."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Modifica il tuo profilo"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Titolo"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Aggiungi la mia firma a questo messaggio"
-
-#: ../user/forum_forum.php:41
-#, fuzzy
-msgid "Not visible to you"
-msgstr "Non ti è concesso vedere questo forum."
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "Crea un forum di messaggi per %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Argomento"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Aggiungi un nuovo messaggio a questo argomento"
-
-#: ../user/forum_forum.php:116
-#, fuzzy
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Puoi ricevere le news con un %sRSS feed%s"
-
-# ########################################
-# Forum thread
-#: ../user/forum_forum.php:172
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Questo argomento è stato nascosto dai moderatori"
-
-#: ../user/forum_forum.php:176
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:176
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-#, fuzzy
-msgid "sticky/unread"
-msgstr "non letto"
-
-#: ../user/forum_forum.php:182
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:182
-#, fuzzy
-msgid "unread/locked"
-msgstr "non letto"
-
-# 81%
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Non hai messaggi privati."
-
-#: ../user/forum_forum.php:190
-#, fuzzy
-msgid "This thread is sticky and locked"
-msgstr "Fai in modo che questo argomento sia in evidenza"
-
-#: ../user/forum_forum.php:190
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Fai in modo che questo argomento sia in evidenza"
-
-#: ../user/forum_forum.php:192
-#, fuzzy
-msgid "sticky"
-msgstr "Evidenzia"
-
-#: ../user/forum_forum.php:196
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Fai in modo che questo argomento sia in evidenza"
-
-#: ../user/forum_forum.php:196
-#, fuzzy
-msgid "locked"
-msgstr "Sblocca"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "You read this thread"
-msgstr "Nascondi questo argomento"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "read"
-msgstr "Argomento"
-
-# ########################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Domande e risposte"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Versione"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Discussione tra i membri di %1"
-
-# ########################################<br />
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Forum di %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Se hai delle domande o problemi usa la sezione %1Domande & Risposte%2 del "
-"forum."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Iscriviti"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Ultimo messaggio"
-
-#: ../user/forum_moderate_post.php:52
-#, fuzzy
-msgid "Hide post"
-msgstr "Nascondi"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Spam commerciale"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Post doppio"
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "Nessun host"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Rispondi a questo argomento"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "Nessun utente"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Durata del ban"
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "ore"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 giorni"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 settimana"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 settimane"
-
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "%1 minuti"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Per sempre"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:84
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post_action.php:57
-#, fuzzy
-msgid "You are not authorized to moderate this post."
-msgstr "Tu ora sei amico/a di %1."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Non posso muoverlo in una categoria differente"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Non posso muoverlo in una categoria differente"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "Non mandato"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "L'utente è bandito."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Password corrente"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Descrizione del team"
-
-#: ../user/forum_moderate_thread.php:77
-#, fuzzy
-msgid "New title:"
-msgstr "Modifica il titolo"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Le cose che hai scritto nel primo spazio sono state segnalate come spam dal "
-"sistema anti-spam Akismet. Modifica il testo e riprova."
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Crea un nuovo argomento"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Crea un nuovo argomento"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-#, fuzzy
-msgid "This function is turned off by the project"
-msgstr "Questa funzione è stata temporaneamente sospesa"
-
-#: ../user/forum_rate.php:58
-#, fuzzy
-msgid "You need more average or total credit to rate a post."
-msgstr "Credito medio minimo per scrivere"
-
-#: ../user/forum_rate.php:62
-#, fuzzy
-msgid "You have already rated this post."
-msgstr "Sei già membro di %1."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:68
-#: ../user/forum_report_post.php:93 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Ritorna alla pagina del team"
-
-#: ../user/forum_rate.php:72
-#, fuzzy
-msgid "Input Recorded"
-msgstr "Il voto è stato registrato"
-
-#: ../user/forum_rate.php:73
-#, fuzzy
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "La tua raccomandazione è stata registrata."
-
-#: ../user/forum_rate.php:75
-#, fuzzy
-msgid "Vote Registered"
-msgstr "Il voto è stato registrato"
-
-#: ../user/forum_rate.php:76
-#, fuzzy
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "La tua raccomandazione è stata registrata."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:76
-#, fuzzy
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Le cose che hai scritto nel primo spazio sono state segnalate come spam dal "
-"sistema anti-spam Akismet.  Modifica il testo e riprova."
-
-#: ../user/forum_reply.php:87 ../user/forum_thread.php:154
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Rispondi a questo argomento"
-
-#: ../user/forum_reply.php:127
-#, fuzzy
-msgid "Message:"
-msgstr "Messaggio"
-
-#: ../user/forum_reply.php:130
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:154
-#, fuzzy
-msgid "Post reply"
-msgstr "Nessuna ripsosta"
-
-#: ../user/forum_reply.php:157
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Aggiungi la mia firma a questo messaggio"
-
-#: ../user/forum_report_post.php:45
-#, fuzzy
-msgid "You need more average or total credit to report a post."
-msgstr "Credito medio minimo per scrivere"
-
-#: ../user/forum_report_post.php:64
-#, fuzzy
-msgid "Report Registered"
-msgstr "Scadenza del report"
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Your report has been recorded. Thanks you for your input."
-msgstr "La tua raccomandazione è stata registrata."
-
-#: ../user/forum_report_post.php:66
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:70
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Ultimo messaggio"
-
-#: ../user/forum_report_post.php:72
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:79
-#, fuzzy
-msgid "Report post"
-msgstr "Ultimo messaggio"
-
-#: ../user/forum_report_post.php:80
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:89
-#, fuzzy
-msgid "Report not registered"
-msgstr "Scadenza del report"
-
-#: ../user/forum_report_post.php:90
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-#, fuzzy
-msgid "This message board is available as an RSS feed."
-msgstr "Puoi ricevere le news con un %sRSS feed%s"
-
-# ########################################<br />
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Dati facoltativi"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Cerca nel forum"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Tipo ricerca"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Cerca nel forum"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Cerca nel forum"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Per esempio:\"43214\""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Cerca nel forum"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Risultati ricerca"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 minuti"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 anno"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-#, fuzzy
-msgid "Sort by"
-msgstr "Ordina"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Risultato della ricerca nel forum"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Nessun profilo corrisponde ai tuoi criteri di ricerca."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Nessun profilo corrisponde ai tuoi criteri di ricerca."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-#, fuzzy
-msgid "Subscription successful"
-msgstr "Aggiornamento eseguito"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Descrizione del team"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"La creazione degli account è stata momentaneamente disabilitata. Riprova più "
-"tardi."
-
-#: ../user/forum_subscribe.php:61
-#, fuzzy
-msgid "Unsubscription successful"
-msgstr "Aggiornamento eseguito"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Cancella l'iscrizione"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"La creazione degli account è stata momentaneamente disabilitata. Riprova più "
-"tardi."
-
-#: ../user/forum_subscribe.php:74
-#, fuzzy
-msgid "Unknown subscription action"
-msgstr "Azione sconosciuta"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Non ti è concesso vedere questo forum."
-
-# ########################################
-# Forum thread
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "Questo argomento è stato nascosto dai moderatori"
-
-#: ../user/forum_thread.php:125
-msgid "My question was answered"
-msgstr "E' stata data risposta alla mia domanda"
-
-#: ../user/forum_thread.php:126
-#, fuzzy
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-"Se è stata data una adeguata risposta alla tua domanda, sei pregato di "
-"cliccare qui per chiudere l'argomento!"
-
-#: ../user/forum_thread.php:134
-msgid "I've also got this question"
-msgstr "Ho anche questa domanda da porre"
-
-#: ../user/forum_thread.php:155 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Aggiungi un nuovo messaggio a questo argomento"
-
-#: ../user/forum_thread.php:167
-msgid "Unsubscribe"
-msgstr "Cancella l'iscrizione"
-
-#: ../user/forum_thread.php:168
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-"Sei iscritto a questo argomento.  Clicca qui per cancellare l'iscrizione."
-
-#: ../user/forum_thread.php:174
-msgid "Subscribe"
-msgstr "Iscriviti"
-
-#: ../user/forum_thread.php:175
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Clicca per ricevere una email quando ci sono nuovi messaggi su questo "
-"argomento"
-
-#: ../user/forum_thread.php:186
-msgid "Unhide this thread"
-msgstr "Rendi visibile questo argomento"
-
-#: ../user/forum_thread.php:192
-msgid "Hide this thread"
-msgstr "Nascondi questo argomento"
-
-#: ../user/forum_thread.php:198
-msgid "Make unsticky"
-msgstr "Non evidenziare"
-
-#: ../user/forum_thread.php:199
-msgid "Make this thread not sticky"
-msgstr "Fai in modo che questo argomento non sia in evidenza"
-
-#: ../user/forum_thread.php:204
-msgid "Make sticky"
-msgstr "Evidenzia"
-
-#: ../user/forum_thread.php:205
-msgid "Make this thread sticky"
-msgstr "Fai in modo che questo argomento sia in evidenza"
-
-#: ../user/forum_thread.php:211
-msgid "Unlock"
-msgstr "Sblocca"
-
-#: ../user/forum_thread.php:212
-msgid "Unlock this thread"
-msgstr "Sblocca questo argomento"
-
-#: ../user/forum_thread.php:217
-msgid "Lock"
-msgstr "Blocca"
-
-#: ../user/forum_thread.php:218
-msgid "Lock this thread"
-msgstr "Blocca questo argomento"
-
-#: ../user/forum_thread.php:225
-msgid "Move this thread to a different forum"
-msgstr "Sposta questo argomento in un altro forum"
-
-#: ../user/forum_thread.php:230
-msgid "Edit title"
-msgstr "Modifica il titolo"
-
-#: ../user/forum_thread.php:231
-msgid "Edit thread title"
-msgstr "Modifica il titolo dell'argomento"
-
-#: ../user/forum_thread.php:241
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:242
-msgid "Export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:247
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:248
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:256 ../user/forum_thread.php:258
-msgid "Sort"
-msgstr "Ordina"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Messaggi"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Siete già amici"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Hai fatto richiesta di amicizia con %1 su %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Questa richiesta è ancora in attesa di accettazione."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 non accetta la tua richiesta di amicizia"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Non puoi essere amico di te stesso"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Aggiungi agli amici"
-
-#: ../user/friend.php:74
-#, fuzzy
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Hai richiesto di aggiungere %1 agli amici. Notificheremo la cosa a %2 e "
-"gli/le chiederemo di confermare che siete amici."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Aggiungi un messaggio (facoltativo):"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Richiesta di amicizia inviata"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Abbiamo notificato a %1 la tua richiesta."
-
-#: ../user/friend.php:126
-#, fuzzy
-msgid "Please log in as %1"
-msgstr "Per favore esegui il log in"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Richiesta di amicizia"
-
-#: ../user/friend.php:141
-#, fuzzy
-msgid "%1 has requested friendship with you."
-msgstr "Hai fatto richiesta di amicizia con %1 su %2."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 dice: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Accetto la richiesta di amicizia"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Clicca su Accetto se %1 è un tuo amico"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Rifiuto"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Clicca su Rifiuto se %1 non è un tuo amico"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "L'amicizia è stata accettata"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "La tua amicizia con %1 è stata accettata."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "L'amicizia è stata rifiutata"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Hai rifiutato l'amicizia con %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Notifica non trovata"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Conferma dell'amicizia"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Tu ora sei amico/a di %1."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Cancella l'amicizia"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Sei certo di voler cancellare la tua amicizia con %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Rimani amico"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "L'amicizia è stata cancellata"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "La tua amicizia con %1 è stata cancellata."
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "altre informazioni sull'account"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-"<b>C:\\Program Files\\BOINC</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:182 ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Benvenuto in %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Visualizza e modifica le tue preferenze dell'account usando i link "
-"sottostanti."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/home.php:49 ../project.sample/project.inc:46
-msgid "Your account"
-msgstr "Il tuo account"
-
-#: ../user/host_app_versions.php:26
-msgid "nvidia GPU"
-msgstr ""
-
-#: ../user/host_app_versions.php:36
-#, fuzzy
-msgid "Anonymous platform, missing app"
-msgstr "Piattaforma anonima"
-
-#: ../user/host_app_versions.php:39
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Piattaforma anonima"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-#, fuzzy
-msgid "Max tasks per day"
-msgstr "Nessun lavoro da visualizzare"
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Nessun lavoro da visualizzare"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Velocità di upload media"
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Dettagli applicazione per l'host %1"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "Unisci risultati multipli di questo computer"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Cancella questo computer"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "Scadenza del report"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Avvia %1 solo su computer autorizzati"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "Unisci i computer dal nome"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Unisci i computer dal nome"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "Visualizza nomi"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "nome"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "creato"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "ID Computer"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Nessun host"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Unisci"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Finito"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-#, fuzzy
-msgid "Return to host page"
-msgstr "Ritorna alla pagina del team"
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Computer appartenente a %1"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Informazioni computer"
-
-#: ../user/hosts_user.php:56
-#, fuzzy
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-"Questo utente ha scelto di non mostrare le informazioni sui suoi computers."
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "I migliori computer"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Non usare i tag HTML."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "grassetto"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "corsivo"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Creato"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-# ########################################<br />
-# Rules and Policies page (info.php)
-#: ../user/info.php:24 ../user/sample_index.php:74
-msgid "Read our rules and policies"
-msgstr "Leggi le nostre regole e linee di condotta"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Avvia %1 solo su computer autorizzati"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Avvia %1 solo sui tuoi computer o su quelli per cui hai ottenuto il permesso "
-"dal proprietario. Alcune aziende e scuole proibiscono l'uso di progetti "
-"come %1 sui propri computer."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Come %1 userà il tuo computer"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Quando lo farai girare sul tuo computer, %1 utilizzerà una parte della CPU, "
-"del disco fisso e della connessione ad internet. Puoi sempre tenere sotto "
-"controllo l'entità delle risorse utilizzate da %1 e quando le usa."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Il lavoro svolto dal tuo computer sarà un prezioso contributo per "
-"raggiungere gli obbiettivi di %1, come descritto sul sito web del progetto. "
-"Le applicazioni del programma possono variare di volta in volta."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Politiche sulla privacy"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Il tuo account su %1 è identificato con il nome che hai scelto. Questo nome "
-"sarà mostrato sul sito web di %1 assieme ad un sommario del lavoro svolto "
-"dal tuo computer per %1. Se vuoi rimanere anonimo, puoi sempre scegliere un "
-"nome che nasconda la tua vera identità."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Se partecipi a %1, le informazioni relative al tuo computer (tipo del "
-"processore, quantità di memoria, ecc...) saranno registrate da %1 e usate "
-"per decidere il tipo di lavoro da assegnare al tuo computer. Queste "
-"informazioni saranno inoltre mostrati sul sito web di %1. Non verrà mostrato "
-"niente che possa rivelare l'ubicazione del tuo computer (per esempio il "
-"nome del suo dominio o gli indirizzi di rete)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Per partecipare a %1, devi fornire un indirizzo di posta elettronica per "
-"ricevere le email. Questo indirizzo non sarà mostrata sul sito web di %1 o "
-"condiviso con altre organizzazioni. %1 potrà inviarti periodicamente una "
-"email informativa; in ogni caso puoi sempre decidere di non partecipare più "
-"al progetto in qualsiasi momento."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"I messaggi privati inviati sul sito web di %1 sono visibili solo al mittente "
-"e al ricevente.  %1 non controlla o censura il contenuto dei messaggi "
-"privati.  Se ricevi un messaggio privato non gradito da un altro utente di %"
-"1, puoi aggiungerlo al tuo %2filtro dei messaggi%3.  Questo ti evita di "
-"dover vedere altri messaggi publici o privati di quell'utente."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Se usi i forum del nostro sito devi seguire le %2linee guida del forum%3.  I "
-"messaggi inseriti nei forum di %1 sono visibili a tutti, inclusi gli ospiti "
-"non registrati.  Scrivendo sul forum tu fornisci una licenza irrevocabile a "
-"chiunque di guardare e copiare i tuoi messaggi."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "E' sicuro elaborare su %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Ogni volta che scarichi un programma attraverso Internet, puoi incontrare "
-"dei rischi: il programma potrebbe provocare degli errori pericolosi, o il "
-"server da cui stai scaricando potrebbe essere non sicuro. %1 si sforza "
-"continuamente per diminuire questi rischi. Testiamo molto accuratamente "
-"tutte le nostre applicazioni. I nostri server sono tutti coperti da un "
-"firewall configurato per una massima sicurezza. Per accertarci "
-"dell'integrità dei download, tutti i file eseguibili vengono contrassegnati "
-"digitalmente da un computer non connesso ad internet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Le applicazioni avviate da %1 possono provocare surriscaldamento. Se ciò "
-"dovesse accadere, basta solo fermare %1 o usare un %2programma di utilità%3 "
-"che limiti l'uso della CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 è sviluppato da %2. BOINC è sviluppato dalla Università della California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Responsabilità"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr ""
-"%1 e %2 non si assumono alcuna responsabilità per eventuali danni causati al "
-"tuo computer, perdita di dati o altri eventi o circostanze che possono "
-"accadere come conseguenza della partecipazione a %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Altri progetti BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Altri progetti che usano la stessa piattaforma, BOINC, come %1. Prendi in "
-"considerazione la tua partecipazione a uno, o più, di questi progetti; così "
-"facendo, il tuo computer svolgerà un utilissimo lavoro anche quando %1 non "
-"ha lavoro disponibile."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Questi altri progetti non sono associati con %1, quindi non possiamo "
-"garantirne la sicurezza o la natura delle loro ricerche. L'adesione a tali "
-"progetti è sotto la vostra sola responsabilità."
-
-#: ../user/language_select.php:44
-msgid "Language selection"
-msgstr "Selezione lingua"
-
-#: ../user/language_select.php:70
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-"Questo sito web è disponibile in molte lingue. La lingua correntemente "
-"selezionata è %1."
-
-#: ../user/language_select.php:75
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Normalmente la scelta della lingua è determinata dalle impostazioni di "
-"lingua del tuo browser, che è: %1. Puoi cambiare questa impostazione usando:"
-
-#: ../user/language_select.php:80
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Strumenti/Opzioni/Generale"
-
-#: ../user/language_select.php:82
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Strumenti/Opzioni Internet/Lingue"
-
-#: ../user/language_select.php:86
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Oppure puoi selezionare una lingua cliccando su uno dei link.  Questo "
-"manderà al tuo browser un cookie; assicurati che il tuo browser accetti i "
-"cookies dal nostro dominio."
-
-#: ../user/language_select.php:92
-msgid "Language name (click to select)"
-msgstr "Nome lingua (clicca per selezionare)"
-
-#: ../user/language_select.php:94
-msgid "Use browser language setting"
-msgstr "Usa impostazioni lingua del browser"
-
-#: ../user/language_select.php:110
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr ""
-"Le traduzioni sono fatte da volontari.  Se la tua lingua madre non è qui, %"
-"1puoi tradurla tu%2."
-
-#: ../user/login_form.php:52
-msgid "Email address:"
-msgstr "Indirizzo E-mail:"
-
-#: ../user/login_form.php:52
-msgid "forgot email address?"
-msgstr "hai dimenticato l'indirizzo mail?"
-
-#: ../user/login_form.php:54
-msgid "Password:"
-msgstr "Chiave d'accesso"
-
-#: ../user/login_form.php:54
-msgid "forgot password?"
-msgstr "hai dimenticato la password?"
-
-#: ../user/login_form.php:57
-#, fuzzy
-msgid "Stay logged in"
-msgstr "Non autenticato."
-
-#: ../user/login_form.php:63
-msgid "or %1create an account%2."
-msgstr "oppure %1crea un account%2."
-
-#: ../user/merge_by_name.php:33
-#, fuzzy
-msgid "Processing %1"
-msgstr "In elaborazione"
-
-#: ../user/merge_by_name.php:45
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "Unione host %1 con host %2"
-
-#: ../user/merge_by_name.php:74
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Avvia %1 solo su computer autorizzati"
-
-#: ../user/merge_by_name.php:78
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:84
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:85
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Avvia %1 solo su computer autorizzati"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Result ID"
-msgstr "ID Risultato"
-
-#: ../user/pending.php:66
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Lavoro"
-
-#: ../user/pending.php:66
-#, fuzzy
-msgid "Host ID"
-msgstr "Ospite"
-
-#: ../user/pending.php:66
-#, fuzzy
-msgid "Claimed credit"
-msgstr "credito garantito"
-
-#: ../user/pending.php:79
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Crediti non ancora assegnati"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Blocca i messaggi da questo utente"
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Nessun utente"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Il tuo messaggio è stato inviato."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Non hai messaggi privati."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Mittente e data"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Ritorna alla pagina del team"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Cancella i messaggi selezionati"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr "Seleziona tutto"
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr "Deseleziona tutto"
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Cancella i messaggi selezionati"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Mittente"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Devi riempire tutti i campi per poter inviare un messaggio privato"
-
-#: ../user/pm.php:188
-#, fuzzy
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Le cose che hai scritto nel primo spazio sono state segnalate come spam dal "
-"sistema anti-spam Akismet. Modifica il testo e riprova."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Non è stato trovato alcun utente con l'id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Non è stato trovato alcun utente chiamato %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 è un nome che hanno più utenti, devi usare l'ID dell'utente"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "L'utente %1 (ID: %2) non accetta messaggi privati da te."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Nessun utente"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Vuoi realmente bloccare %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Sei veramente sicuro di voler bloccare l'utente %1 dal mandarti messaggi "
-"privati?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Ricordati che puoi bloccare solamente un numero limitato di utenti."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Una volta bloccato un utente puoi sempre sbloccarlo tramite la pagina delle "
-"preferenze sul forum."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "No, annulla"
-
-#: ../user/pm.php:260 ../user/team_admins.php:97
-#, fuzzy
-msgid "no such user"
-msgstr "Nessun utente"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Utente %1 bloccato"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Ora l'utente %1 non può più inviarti messaggi privati."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Per sboccare un utente, visita la pagina %1preferenze del forum%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Azione sconosciuta"
-
-#: ../user/prefs.php:36
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Le tue preferenze sono state aggiornate e\n"
-"avranno effetto quando il tuo computer comunicherà con %1\n"
-"oppure quando lancerai  il comando %2Aggiorna%3 dal BOINC manager."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 per %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Ritorna alle preferenze"
-
-#: ../user/prefs_remove.php:48
-msgid "Confirm delete preferences"
-msgstr "Conferma la cancellazione delle preferenze"
-
-#: ../user/prefs_remove.php:51
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Sei sicuro di voler cancellare le tue preferenze separate %1 per %2?"
-
-#: ../user/prefs_remove.php:55
-msgid "Remove preferences"
-msgstr "Rimuovi preferenze"
-
-#: ../user/prefs_remove.php:57
-msgid "Cancel"
-msgstr "Cancella"
-
-#: ../user/profile_menu.php:35 ../user/sample_index.php:116
-msgid "Profiles"
-msgstr "Profili"
-
-#: ../user/profile_menu.php:38
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"I %1profili%2 permettono agli utenti di condividere le proprie esperienze "
-"con la comunità di %3."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"Guarda la diversità dei volontari tuoi compagni e contribuisci con le tue "
-"opinioni. "
-
-#: ../user/profile_menu.php:40
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"Se non l'hai ancora fatto, puoi %1creare un tuo profilo%2 da far vedere agli "
-"altri!"
-
-#: ../user/profile_menu.php:45
-msgid "User of the Day"
-msgstr "Utente del giorno"
-
-#: ../user/profile_menu.php:58
-msgid "User Profile Explorer"
-msgstr "Guarda i profili degli utenti"
-
-#: ../user/profile_menu.php:61
-msgid "View the %1User Picture Gallery%2."
-msgstr "Guarda la %1Galleria delle Immagini degli utenti%2."
-
-#: ../user/profile_menu.php:62
-msgid "Browse profiles %1by country%2."
-msgstr "Visualizza i profili %1per nazionalità%2."
-
-#: ../user/profile_menu.php:63
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Visualizza i profili %1casualmente%2, %3casualmente con immagine%2 o %"
-"4casualmente senza immagine%2."
-
-#: ../user/profile_menu.php:67
-msgid "Alphabetical profile listings:"
-msgstr "Profili in ordine alfabetico:"
-
-#: ../user/profile_menu.php:73
-msgid "Search profile text"
-msgstr "Ricerca profilo mediante testo"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Nessun profilo"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Nessun profilo corrisponde ai tuoi criteri di ricerca."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr "Tipo di voto non valido:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Il voto è stato registrato"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Grazie"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "La tua raccomandazione è stata registrata."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Il tuo voto per deferire questo profilo è stato registrato."
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Ritorna al profilo."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Nome del lavoro"
-
-#: ../user/profile_search_action.php:41
-#, fuzzy
-msgid "Joined project"
-msgstr "Entra in %1"
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "con crediti recenti"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr "Nessun profilo contenente '%1' trovato"
-
-#: ../user/result.php:30
-#, fuzzy
-msgid "No such task"
-msgstr "Nessuna attività"
-
-#: ../user/result.php:32
-msgid "Task %1"
-msgstr "Task %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Questa funzione è stata temporaneamente sospesa"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Non è stato trovato nessun computer con l'ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Accesso negato"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Manca l'ID dell'utente o l'ID del computer"
-
-#: ../user/results.php:102
-msgid "No tasks to display"
-msgstr "Nessun lavoro da visualizzare"
-
-#: ../user/sample_index.php:180
-msgid "User of the day"
-msgstr "Utente del giorno"
-
-#: ../user/server_status.php:91
-msgid "Running"
-msgstr "In esecuzione"
-
-#: ../user/server_status.php:94
-msgid "Not Running"
-msgstr "Non in esecuzione"
-
-#: ../user/server_status.php:97
-msgid "Disabled"
-msgstr "Disabilitato"
-
-#: ../user/server_status.php:236
-msgid "Project status"
-msgstr "Stato del progetto"
-
-#: ../user/server_status.php:238
-msgid "Server software version: %1"
-msgstr "Versione software del server: %1"
-
-#: ../user/server_status.php:244
-#, fuzzy
-msgid "Server status"
-msgstr "Stato del server"
-
-#: ../user/server_status.php:246
-msgid "Program"
-msgstr "Programma"
-
-#: ../user/server_status.php:246
-msgid "Host"
-msgstr "Ospite"
-
-#: ../user/server_status.php:257
-msgid "data-driven web pages"
-msgstr "pagine web generate dal database"
-
-#: ../user/server_status.php:263
-#, fuzzy
-msgid "upload/download server"
-msgstr "Server di upload/download"
-
-#: ../user/server_status.php:266
-msgid "scheduler"
-msgstr "schedulatore"
-
-#: ../user/server_status.php:299
-msgid "Running:"
-msgstr "In esecuzione:"
-
-#: ../user/server_status.php:300
-msgid "Program is operating normally"
-msgstr "Il programma sta funzionando normalmente"
-
-#: ../user/server_status.php:301
-msgid "Not Running:"
-msgstr "Non in esecuzione:"
-
-#: ../user/server_status.php:302
-msgid "Program failed or the project is down"
-msgstr "Il programma non ha funzionato e il progetto è sospeso"
-
-#: ../user/server_status.php:303
-msgid "Disabled:"
-msgstr "Disabilitato: "
-
-#: ../user/server_status.php:304
-msgid "Program is disabled"
-msgstr "Il programma è disabilitato"
-
-#: ../user/server_status.php:308
-msgid "Computing status"
-msgstr "Stato di elaborazione"
-
-#: ../user/server_status.php:314
-msgid "The database server is not accessible"
-msgstr "Il database del server è inaccessibile"
-
-#: ../user/server_status.php:331
-msgid "Tasks ready to send"
-msgstr "Attività pronte per essere spedite"
-
-#: ../user/server_status.php:336 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Attività in corso"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for validation"
-msgstr "Unità di lavoro in attesa di essere validate"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for assimilation"
-msgstr "Workunits in attesa di essere recepite"
-
-#: ../user/server_status.php:351
-msgid "Workunits waiting for file deletion"
-msgstr "Unità di lavoro in attesa di cancellazione"
-
-#: ../user/server_status.php:356
-msgid "Tasks waiting for file deletion"
-msgstr "Attività in attesa di cancellazione"
-
-#: ../user/server_status.php:373
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:380
-#, fuzzy
-msgid "Users"
-msgstr "Utenti"
-
-#: ../user/server_status.php:382 ../user/server_status.php:398
-msgid "with recent credit"
-msgstr "con crediti recenti"
-
-#: ../user/server_status.php:387 ../user/server_status.php:403
-msgid "with credit"
-msgstr "con credito"
-
-#: ../user/server_status.php:392 ../user/server_status.php:408
-msgid "registered in past 24 hours"
-msgstr "registrati nelle scorse 24 ore"
-
-#: ../user/server_status.php:414
-msgid "current GigaFLOPs"
-msgstr "GigaFLOPs correnti"
-
-#: ../user/server_status.php:423
-msgid "Tasks by application"
-msgstr "Attività dall'applicazione"
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/server_status.php:426 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "applicazione"
-
-#: ../user/server_status.php:427
-#, fuzzy
-msgid "unsent"
-msgstr "Non inviato"
-
-#: ../user/server_status.php:428
-#, fuzzy
-msgid "in progress"
-msgstr "In corso"
-
-#: ../user/server_status.php:429
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "Tempo medio di esecuzione degli ultimi 100 risultati in ore (min-max)"
-
-#: ../user/server_status.php:430
-msgid "users in last 24h"
-msgstr "utenti nelle ultime 24 ore"
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Computer"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistiche e classifiche"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Statistiche di %1"
-
-# ########################################<br /><br />
-# Various top table pages (top users, computers, teams)
-#: ../user/stats.php:30 ../user/top_users.php:116
-msgid "Top participants"
-msgstr "I migliori utenti"
-
-#: ../user/stats.php:31
-msgid "Top computers"
-msgstr "I migliori computer"
-
-#: ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "I migliori team"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Altre dettagliate statistiche per %1 e per altri progetti basati su BOINC "
-"sono disponibili su diversi siti web:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Puoi anche ottenere le tue attuali statistiche in forma di immagine "
-"(\"firma\"):"
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Inoltre puoi vedere le tue statistiche individuali per tutti i progetti "
-"BOINC su diversi siti; guarda la %1pagina del tuo account%2."
-
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Team"
-
-#: ../user/team.php:27
-#, fuzzy
-msgid "%1 participants may form %2teams%3."
-msgstr "I partecipanti a %1 possono formare dei %2team%3"
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Puoi appartenere solo ad un team. Puoi unirti o lasciare un team in "
-"qualsiasi momento."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Ogni team ha un %1fondatore%2 che può:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "accedere alle informazioni sugli indirizzi email dei membri"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "modificare il nome e la descrizione del team"
-
-#: ../user/team.php:35
-#, fuzzy
-msgid "add or remove team admins"
-msgstr "Aggiungi o rimuovi Admin del team"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "rimuovere i membri dal team"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "sciogliere il team, solo se non ha più membri"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Per unirti ad un team visita la pagina del team e clicca su %1Unirsi a "
-"questo team%2."
-
-#: ../user/team.php:41 ../user/team_search.php:179
-msgid "Find a team"
-msgstr "Trova un team"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Tutti i team"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 team"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Crea un nuovo team"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Se non riesci a trovare un team giusto per te, puoi sempre %1creare un team%"
-"2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr "Rimuovi lo stato di Amministratore del Team per questo membro"
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "Aggiungi o rimuovi Admin del team"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Puoi selezionare membri del team cone 'Amministratori del Team'. Gli "
-"Amministratori del Team possono:"
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Modifica le informazioni del team (nome, URL, descrizione, stato)"
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr "Vedi il resoconto di iscritti/cancellati del team"
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderate il forum del team, se esiste (gli amministratori ricevono email di "
-"notifica degli atti di moderazione e reports)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "Gli admin del team non possono:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "Cambia il fondatore del team"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Rimuovi membri"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Se un Amministratore del Team chiude il team, loro smettono di essere "
-"Amministratori del Team."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-"Ci raccomandiamo che tu scelga solo persone che conosci e di cui ti fidi "
-"molto come Amministratori del Team."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "Non ci sono attualmente Amministratori del Team"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "Admin del team correnti"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "Diventa Amministratore del Team di"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "Aggiungi l'Amministratore del Team"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "Indirizzo email del membro del team:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "errore nella rimozione dell'admin"
-
-#: ../user/team_admins.php:98
-msgid "User is not member of team"
-msgstr "L'utente non è membro di un team"
-
-#: ../user/team_admins.php:100
-msgid "%1 is already an admin of %2"
-msgstr "%1 è già un admin di %2"
-
-#: ../user/team_admins.php:104
-msgid "Couldn't add admin"
-msgstr "Impossibile aggiungere l'amministratore"
-
-#: ../user/team_admins.php:110 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Nessun team"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "nessun team"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "L'utente non è un membro di %1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "Cambio fondatore di %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 è ora il fondatore di %2"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "Cambia il fondatore di %1"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-"Il membro del team %1 ha richiesto la carica di fondatore di questo team in "
-"%2, ma ha abbandonato il team, di conseguenza la richiesta è stata "
-"cancellata."
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Il membro %1 ha richiesto di essere il fondatore di questo team. Potrebbe "
-"essere perchè hai abbandonato il team oppure non hai avuto contatti con il "
-"team per un lungo periodo."
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "rifiuta richiesta"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Se non rifiuti la richiesta di %1. %2 avrà l'opzione di assumere la carica "
-"di fondatore del team.<br /><br />\n"
-" Per accettare la richiesta, assegna la fusione a %3, utilizzando lo schema "
-"sotto. "
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "Nessuna richiesta di trasferimento in corso."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Per assegnare il ruolo di fondatore di questo team ad un altro membro, "
-"controlla il riquadro vicino al nome del membro e clicca su <strong> Cambia "
-"fondatore <strong> sotto."
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "Nuovo fondatore?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "Cambia fondatore"
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Non puoi lasciare in bianco il nome del team"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Un team chiamato %1 esiste già - prova con un altro nome"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Non è stato possibile creare il team - riprovare più tardi."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Crea un team"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Tu sei membro del team %1. Devi %2lasciare questo team%3 prima di crearne "
-"uno nuovo."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr "Nessun fondatore o amministratore"
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "Storia del team per %1"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Quando"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Utente"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "Attività"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr "Credito totale durante l'attività"
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "paese sbagliato"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "Il nome '%1' è usato da un altro team."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "Devi specificare un nome di un team"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Non è stato possibile aggiornare il team - riprovare più tardi."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Modifica %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Aggiorna informazioni team"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 Mail list"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Lista membri di %1"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Mostra come testo normale"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr "Crea un forum di messaggi"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr "Tu puoi creare un forum du messaggio per l'uso da parte di %1"
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr "Solo i membri del gruppo avranno la possibilità di scrivere."
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "Con una tua opzione, solo i membri potranno leggere."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Tu ed i tuoi Amministratori del team avrete i privilegi di moderatori."
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr "Crea un forum di messaggi per %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr "Il team ha già un forum di messaggi."
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr "Forum di messaggi del team."
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr "Tempo minimo tra i messaggi (secondi)"
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr "Credito totale minimo per scrivere"
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr "Credito medio minimo per scrivere"
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Invia"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr "Rimuovi il forum di messaggi del tuo team."
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr "Veramente vuoi rimuovere il forum di messaggi?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-"Sei sicuro di voler rimuovere il forum di messaggi del tuo tem? Tutte le "
-"discussioni ed i messaggi verranno permanentemente rimossi. (Tu puoi, "
-"comunque, creare un nuovo forum di messaggi successivamente)."
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr "Sì-rimuovi il forum di messaggi."
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr "Forum di messaggi rimosso."
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Il forum di messaggi del tuo team è stato rimosso. Tu puoi ora %1 crearne "
-"uno nuovo%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr "Forum di messaggi del team aggiornato."
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "Aggiornamento eseguito"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Aggiornamento fallito"
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "il team non ha forum"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "Devi essere membro di un team per avere accesso a questa pagina."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr "Richiedi cambio fondatore di %1"
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Il fondatore corrente è stato informato della tua richiesta mediante email e "
-"messaggio privato.<br /><br />\n"
-" Se il fondatore non risponde in 60 giorni,  sarai autorizzato a diventare "
-"il nuovo fondatore."
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr "Richiesta di cambio fondatore non permessa in questo momento"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr "Assumi carica di fondatore di %1"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-"Congratulazioni, sei ora il nuovo fondatore del team %1. Vai a %2La tua "
-"pagina Acoount%3 per trovare le opzioni dell'Ammnistratore di Team."
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr "Declina richiesta di cambio fondatore"
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr "La richiesta di cambio fondatore di %1 è stata rifiutata."
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr "Non ci sono richieste di cambio fondatore."
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "Azione non definita %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "Ritorna alla pagina del team"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "Devi essere membro del team per avere accesso a questa pagina"
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr "Richiedi cambio fondatore per %1"
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr "Sei ora il fondatore del gruppo %1."
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr "Hai richiesto la carica di fondatore di %1 su %2"
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-"60 giorni sono passati dalla tua richiesta, e il fondatore non ha risposto. "
-"Puoi assumere la carica di fondatore cliccando qui:"
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr "Assumi ruolo di fondatore"
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-"Il fondatore è stato avvisato della tua richiesta. Se lui/lei non risponderà "
-"entro %1 ti sarà data la possibilità di diventare fondatore."
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr "Richiedi cambio fondatore"
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Richiesta di cambio fondatore già fatta da %1 su %2."
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-"Una richiesta di cambio fondatore è stata fatta negli ultimi 90 giorni, "
-"quindi ne nuove richieste non sono permesse. Per favore riprova più tardi."
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "Non si può entrare nel team %1."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "Sei già membro"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Sei già membro di %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Non puoi entrare nel team - per favore riprova più tardi."
-
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Entra in %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr "Sei entrato in %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Entra in %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Entra in un team"
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Risultati ricerca"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Risultati ricerca per '%1'"
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Più di 100 team soddisfano la tua ricerca. Sono visualizzati i primi 100."
-
-#: ../user/team_lookup.php:104
-#, fuzzy
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr ""
-"Se non riesci a trovare un team giusto per te, puoi sempre %1creare un team%"
-"2."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "Modifica le informazioni del team"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "Cambia il nome del team, URL, descrizione, tipo o nazione"
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Lista membri:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "testo"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Visualizza i nomi dei membri e gli indirizzi mail"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr "Rispondi alla richiesta di cambio fondatore."
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-"Se non rispondi a %1, %2 potrebe assumere il ruolo di fondatore del team."
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr "Trasferisci carica di fondatore ad un altro membro"
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "Aggiungi/Rimuovi Admin del team"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr "Dai ai membri del team selezionati i privilegi di Admin del team"
-
-#: ../user/team_manage.php:61
-#, fuzzy
-msgid "Remove team"
-msgstr "Rimuovi team"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "Permesso solo se il team non ha membri"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr "Crea o gestisci un forum del team"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Non posso cancellare i team non vuoti\""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Team %1 cancellato"
-
-#: ../user/team_members.php:35
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:47
-msgid "Members of %1"
-msgstr "Membri di %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Impossibile uscire dal team"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Esci da %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:42
-#, fuzzy
-msgid "Quit Team"
-msgstr "Abbandona il team"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Rimozione utenti da %1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 non è un membro di %2"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 è stato rimosso"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Rimuovi membri da %1"
-
-#: ../user/team_remove_inactive_form.php:39
-#, fuzzy
-msgid "Remove?"
-msgstr "Rimuovi"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Nome (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "Nessun membro può essere rimosso."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Rimuovi utenti"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Nome team"
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Risultato della ricerca nel forum"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Nessun team trovato. Prova un'altra ricerca"
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Oppure, puoi %1creare un nuovo team%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-"I team seguienti soddisfano uno o più dei tuoi criteri di ricerca.\n"
-"            Per entrare in un team, clicca sul nome o vai sulla sua pagina,\n"
-"               poi clicca su %1Unisciti a questo team%2."
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "Cambia la ricerca"
-
-#: ../user/team_search.php:180
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-"Puoi entrare in un team con persone aventi interessi simili, provenienti "
-"dallo stesso paese, compagnia, o scuola."
-
-#: ../user/team_search.php:182
-msgid "Use this form to find teams that might be right for you."
-msgstr "Usa questo form per trovare team che possono essere adeguati per te."
-
-#: ../user/team_search.php:187
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Non sono interessanto%2 nell'entrare in un team adesso."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "I migliori computer"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "I migliori team su %1"
-
-#: ../user/top_teams.php:108
-#, fuzzy
-msgid "There are no %1 teams"
-msgstr "Non ci sono team %1"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Partecipante dal"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "Nessun utente del giorno è stato scelto."
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr "Utente del giorno per %1: %2"
-
-#: ../user/user_search.php:103 ../user/user_search.php:152
-#, fuzzy
-msgid "User search results"
-msgstr "Risultato della ricerca nel forum"
-
-#: ../user/user_search.php:105 ../user/user_search.php:163
-msgid "Joined"
-msgstr "Entrato"
-
-#: ../user/user_search.php:117
-msgid "Search type"
-msgstr "Tipo ricerca"
-
-#: ../user/user_search.php:118
-msgid "User name starts with"
-msgstr "Il nome utente inizia con"
-
-#: ../user/user_search.php:119
-#, fuzzy
-msgid "Decreasing sign-up time"
-msgstr "Decremento tempo di sign-up"
-
-#: ../user/user_search.php:120
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Media dei crediti recenti"
-
-#: ../user/user_search.php:121
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Media dei crediti recenti"
-
-#: ../user/user_search.php:122
-msgid "Filters"
-msgstr "Filtri"
-
-#: ../user/user_search.php:123
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:126
-msgid "With profile?"
-msgstr "Con un profilo?"
-
-#: ../user/user_search.php:127 ../user/user_search.php:132
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:131
-msgid "On a team?"
-msgstr "In un team?"
-
-#: ../user/user_search.php:150
-msgid "search string must be at least 3 characters"
-msgstr "la stringa deve essere di almeno 3 caratteri"
-
-#: ../user/user_search.php:161
-msgid "User names starting with"
-msgstr "I nomi utente iniziano con"
-
-#: ../user/user_search.php:171
-msgid "No users match your search criteria."
-msgstr "Nessun utente corrisponde al criterio di ricerca."
-
-#: ../user/userw.php:45
-msgid "User not found!"
-msgstr "Utente non trovato!"
-
-#: ../user/userw.php:51
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:54
-#, fuzzy
-msgid "Team:"
-msgstr "Team:"
-
-#: ../user/userw.php:55
-msgid "Team TotCred:"
-msgstr "Credito totale Team:"
-
-#: ../user/userw.php:56
-msgid "Team AvgCred:"
-msgstr "Credito medio Team:"
-
-#: ../user/userw.php:58
-msgid "Team: None"
-msgstr "Team: Nessuno"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Convalida indirizzo email BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Email di convalida inviata"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-"Una email è stata inviata a %1. Visita il link che contiene per convalidare "
-"il tuo indirizzo email."
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Nessun utente."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Errore nei dati dell'URL - impossibile convalidare l'indirizzo email"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Aggiornamento database fallito - per favore riprovare più tardi."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Convalida l'indirizzo email"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "L'indirizzo email del tuo account è stato convalidato."
-
-#: ../user/view_profile.php:29
-msgid "This user has no profile"
-msgstr "Questo utente non ha un profilo"
-
-#: ../user/view_profile.php:46
-msgid "Profile: %1"
-msgstr "Profilo: %1"
-
-#: ../user/view_profile.php:55
-msgid "Account data"
-msgstr "Dati dell'account"
-
-# ########################################<br /><br />
-# "Weak account key" page (weak_auth.php)
-#: ../user/weak_auth.php:50
-#, fuzzy
-msgid ""
-"Your 'weak account key' lets you link a computer to your account without "
-"giving it the ability to log in to your account or to change it in any way."
-msgstr ""
-"La tua 'chiave di accesso debole' ti permette di collegare un computer al "
-"tuo account su questo progetto, senza però dargli la possibilità di accedere "
-"al tuo account o di modificarlo in alcun modo."
-
-#: ../user/weak_auth.php:52
-msgid ""
-"This mechanism works only with projects that have upgraded their server "
-"software 7 Dec 2007 or later."
-msgstr ""
-"Questo meccanismo funziona solamente con i progetti che hanno aggiornato il "
-"software dei loro server dopo il 7 dicembre 2007."
-
-#: ../user/weak_auth.php:54
-msgid "Your weak account key for this project is:"
-msgstr "La tua chiave di accesso debole per questo progetto è:"
-
-#: ../user/weak_auth.php:57
-msgid ""
-"To use your weak account key on a given host, find or create the 'account "
-"file' for this project. This file has a name of the form "
-"<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-msgstr ""
-"Per usare la tua chiave di accesso debole su un computer, trova o crea il "
-"'file dell'account' per questo progetto. Il nome di questo file deve essere "
-"del tipo: <b>account_URL_DEL_PROGETTO.xml</b>. Il file dell'account per %1 è "
-"<b>%2</b>."
-
-#: ../user/weak_auth.php:59
-msgid "Create this file if needed. Set its contents to:"
-msgstr "Crea questo file se è necessario. Inserisci i contenuti come segue:"
-
-#: ../user/weak_auth.php:68
-msgid ""
-"Your weak account key is a function of your password. If you change your "
-"password, your weak account key changes, and your previous weak account key "
-"becomes invalid."
-msgstr ""
-"La tua chiave di accesso debole è funzione alla tua password. Se cambi la "
-"password cambia anche la chiave di accesso debole invalidando quella "
-"precedente."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Lavoro %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "credito garantito"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "quorum minimo"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "errori"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../project.sample/project.inc:46
-#, fuzzy
-msgid "Main page"
-msgstr "Nome dominio"
-
-#: ../project.sample/project.inc:48
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:51
-msgid "Generated"
-msgstr "Generato"
-
-#: ../project.sample/project.inc:82
-msgid "Your personal background."
-msgstr "Il tuo sfondo personale."
-
-#: ../project.sample/project.inc:86
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Parlaci di te. Puoi dirci da dove vieni, la tua età, occupazione, hobbies o "
-"qualsiasi altra cosa su di te."
-
-#: ../project.sample/project.inc:90
-msgid "Your opinions about %1"
-msgstr "Le tue opinioni riguardo %1"
-
-#: ../project.sample/project.inc:94
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-"Dicci i tuoi pensieri riguardo %1<ol>\n"
-"    <li>Perchè utilizzi %1?\n"
-"    <li>Quali sono i tuoi punti di vista sul progetto?\n"
-"    <li>Suggerimenti?\n"
-"    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Schema di colori per la grafica"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Massima CPU % per grafica%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Avvia solo le applicazioni selezionate"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Se non è disponibile lavoro per le applicazioni selezionate, accettarne "
-"dalle altre applicazioni?"
-
-#: ../project.sample/project_specific_prefs.inc:81
-msgid "(all applications)"
-msgstr "(tutte le applicazioni)"
-
-#~ msgid "Account key"
-#~ msgstr "Chiave di accesso"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Consente un accesso completo al tuo account"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Ordina"
-
-# ########################################
-# Private messages
-#~ msgid "- private message"
-#~ msgstr "- messaggio privato"
-
-# ########################################
-# Private messages
-#~ msgid "Private message from"
-#~ msgstr "Messaggio privato da"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Verifica indirizzo email in attesa"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Autenticato come %1."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Autenticati come qualcun'altro."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr "L'argomento con l'id %1 non esiste. Controlla il link e riprova."
-
-#~ msgid "Request not found"
-#~ msgstr "Richiesta non trovata"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 ti ha aggiunto ai suoi amici."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Dati dell'account di %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "Non in grado di creare un forum di messaggi"
-
-#~ msgid "message board not found"
-#~ msgstr "Forum di messaggi non trovato."
-
-#~ msgid "no such forum"
-#~ msgstr "nessun forum"
-
-#~ msgid "unknown command %1"
-#~ msgstr "comando %1 sconosciuto"
-
-# <br> ????
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "ERRORE: %1 non esiste!  La combo box non può essere creata.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Per proteggere le pagine del progetto dallo spam, ti chiediamo di "
-#~ "scrivere le due parole che appaiono nell'immagine:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "versione client BOINC"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/giorno"
-
-#~ msgid "(no restriction if equal)"
-#~ msgstr "(nessuna restrizione se sono uguali)"
-
-#~ msgid "percent of CPU time"
-#~ msgstr "percento del tempo CPU"
-
-#~ msgid "% of page file (swap space)"
-#~ msgstr "% del file di paging (spazio di swap)"
-
-#~ msgid "Use ATI GPU if present %1(enforced by 6.10+ clients)%2"
-#~ msgstr ""
-#~ "Usa la GPU ATI se presente %1(Si applica dalla versione 6.10+ dei "
-#~ "client)%2"
-
-#~ msgid "KB/s"
-#~ msgstr "KB/s"
-
-#~ msgid "GB disk space"
-#~ msgstr "GB di spazio su disco"
-
-#~ msgid "GB disk space free"
-#~ msgstr "GB di spazio libero su disco"
-
-#~ msgid "(no restriction)"
-#~ msgstr "(nessuna restrizione)"
-
-#~ msgid "Gbytes"
-#~ msgstr "Gbytes"
-
-#~ msgid "<p>"
-#~ msgstr "<p>"
diff --git a/html/languages/translations/it_IT.po b/html/languages/translations/it_IT.po
new file mode 100644
index 0000000..98a62e1
--- /dev/null
+++ b/html/languages/translations/it_IT.po
@@ -0,0 +1,6655 @@
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Alessandro Dalla Rosa <exit96dalla at gmail.com>, 2015
+# Daniele Nasuti <daniele.nasuti at gmail.com>, 2015
+# Daniele Nasuti <daniele.nasuti at gmail.com>, 2015
+# Gianfranco Costamagna <costamagnagianfranco at yahoo.it>, 2015
+# Sebastiano Pistore <olatusrooc at virgilio.it>, 2015-2016
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-24 11:33+0000\n"
+"Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/boinc/boinc/language/it_IT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: it_IT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "LANG_NAME_NATIVE"
+msgstr "Italiano"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Italian"
+
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Codice d'invito"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "È necessario un codice d'invito valido per poter creare un account."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Nome"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Identificati sul nostro sito. Usa il tuo nome reale oppure un alias."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "Email"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Devi inserire un indirizzo email valido nella forma 'nome at dominio'."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Password"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Deve essere di almeno %1 caratteri"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Conferma la password"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "Stato"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Seleziona la nazione che vuoi rappresentare, se lo desideri."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "CAP"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Dati facoltativi"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Crea un account"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "Indirizzo e-mail:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "hai dimenticato l'indirizzo mail?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Password:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "hai dimenticato la password?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Rimani autenticato"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Entra"
+
+#: html/inc/bbcode_html.inc:10
+msgid "Bold text: [b]text[/b]  (alt+b)"
+msgstr "Testo in grassetto: [b]testo[/b]  (alt+b)"
+
+#: html/inc/bbcode_html.inc:11
+msgid "Italic text: [i]text[/i]  (alt+i)"
+msgstr "Testo in corsivo: [i]testo[/i]  (alt+i)"
+
+#: html/inc/bbcode_html.inc:12
+msgid "Underline text: [u]text[/u]  (alt+u)"
+msgstr "Testo sottolineato: [u]testo[/u]  (alt+u)"
+
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Testo cancellato: [s]testo[/s] (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
+msgid "Quote text: [quote]text[/quote]  (alt+q)"
+msgstr "Testo citato: [quote]testo[/quote]  (alt+q)"
+
+#: html/inc/bbcode_html.inc:15
+msgid "Code display: [code]code[/code]  (alt+c)"
+msgstr "Mostra codice: [code]codice[/code]  (alt+c)"
+
+#: html/inc/bbcode_html.inc:16
+msgid "List: [list]text[/list] (alt+l)"
+msgstr "Lista: [list]testo[/list] (alt+l)"
+
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Lista ordinata: [list=1]testo[/list] (alt+o)"
+
+#: html/inc/bbcode_html.inc:18
+msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
+msgstr "Inserisci immagine: [img]http://url_immagine[/img] (alt+p)"
+
+#: html/inc/bbcode_html.inc:19
+msgid ""
+"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
+msgstr "Inserisci URL: [url]http://link[/url] oppure [url=http://linkl]testo[/url] (alt+w)"
+
+#: html/inc/bbcode_html.inc:24
+msgid "Font color"
+msgstr "Colore del carattere"
+
+#: html/inc/bbcode_html.inc:25
+msgid ""
+"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
+msgstr "Colore del carattere: [color=red]testo[/color] Suggerimento: puoi anche definire un colore personalizzato nella forma color=#FF0000"
+
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
+msgid "Default"
+msgstr "Predefinito"
+
+#: html/inc/bbcode_html.inc:27
+msgid "Dark Red"
+msgstr "Rosso scuro"
+
+#: html/inc/bbcode_html.inc:28
+msgid "Red"
+msgstr "Rosso"
+
+#: html/inc/bbcode_html.inc:29
+msgid "Orange"
+msgstr "Arancione"
+
+#: html/inc/bbcode_html.inc:30
+msgid "Brown"
+msgstr "Marrone"
+
+#: html/inc/bbcode_html.inc:31
+msgid "Yellow"
+msgstr "Giallo"
+
+#: html/inc/bbcode_html.inc:32
+msgid "Green"
+msgstr "Verde"
+
+#: html/inc/bbcode_html.inc:33
+msgid "Olive"
+msgstr "Verde oliva"
+
+#: html/inc/bbcode_html.inc:34
+msgid "Cyan"
+msgstr "Blu ciano"
+
+#: html/inc/bbcode_html.inc:35
+msgid "Blue"
+msgstr "Blu"
+
+#: html/inc/bbcode_html.inc:36
+msgid "Dark Blue"
+msgstr "Blu scuro"
+
+#: html/inc/bbcode_html.inc:37
+msgid "Indigo"
+msgstr "Indaco"
+
+#: html/inc/bbcode_html.inc:38
+msgid "Violet"
+msgstr "Viola"
+
+#: html/inc/bbcode_html.inc:40
+msgid "Font size"
+msgstr "Dimensione del carattere"
+
+#: html/inc/bbcode_html.inc:41
+msgid "Font size: [size=x-small]small text[/size]"
+msgstr "Dimensione del carattere: [size=x-small]testo piccolo[/size]"
+
+#: html/inc/bbcode_html.inc:43
+msgid "Small"
+msgstr "Piccolo"
+
+#: html/inc/bbcode_html.inc:44
+msgid "Normal"
+msgstr "Normale"
+
+#: html/inc/bbcode_html.inc:45
+msgid "Large"
+msgstr "Grande"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close all open bbCode tags"
+msgstr "Chiudi tutti i tag bbCode aperti"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close Tags"
+msgstr "Chiudi tutti i tag"
+
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Account"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Unisciti"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "Informazioni su %s"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Aiuto"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Progetto"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Partecipa"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Lavora"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Stato del server"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Statistiche"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Applicazioni"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Partecipanti"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Computer"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Team"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "Modelli di GPU"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "Modelli di CPU"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Elaborazione"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Comunità"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Forum"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "crea o unisciti ad un team"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Profili"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Cerca utente"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Utente del giorno"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Certificato"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Sito"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Cerca nel sito"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Lingue"
+
+#. names for the above
+#: html/inc/forum.inc:40
+msgid "Oldest first"
+msgstr "Prima i più vecchi"
+
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
+msgid "Newest first"
+msgstr "Prima i più recenti"
+
+#: html/inc/forum.inc:42
+msgid "Highest rated posts first"
+msgstr "Prima i messaggi più votati"
+
+#: html/inc/forum.inc:44
+msgid "Newest post first"
+msgstr "Prima i messaggi più recenti"
+
+#: html/inc/forum.inc:45
+msgid "Most views first"
+msgstr "Prima i più visualizzati"
+
+#: html/inc/forum.inc:46
+msgid "Most posts first"
+msgstr "Prima le discussioni con più messaggi"
+
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Moderatore volontario"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Amministratore del progetto"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Sviluppatore del progetto"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Tester del progetto"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Sviluppatore volontario"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Tester volontario"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Scienziato del progetto"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Esperto di helpdesk"
+
+#. Search
+#: html/inc/forum.inc:132
+msgid "Search for words in forum messages"
+msgstr "Cerca termini tra i messaggi del forum"
+
+#: html/inc/forum.inc:132
+msgid "Search forums"
+msgstr "Cerca nel forum"
+
+#: html/inc/forum.inc:133
+msgid "Advanced search"
+msgstr "Ricerca avanzata"
+
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
+msgid "Private messages"
+msgstr "Messaggi privati"
+
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
+msgid "Questions and Answers"
+msgstr "Domande e risposte"
+
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
+msgid "%1 message board"
+msgstr "Forum di %1"
+
+#: html/inc/forum.inc:243 html/inc/result.inc:784
+msgid "Previous"
+msgstr "Precedente"
+
+#: html/inc/forum.inc:281 html/inc/result.inc:793
+msgid "Next"
+msgstr "Successivo"
+
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
+msgid "Author"
+msgstr "Autore"
+
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
+msgid "Message"
+msgstr "Messaggio"
+
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Spedisci il messaggio"
+
+#: html/inc/forum.inc:590
+msgid "Send %1 a private message"
+msgstr "Spedisci %1 un messaggio privato"
+
+#: html/inc/forum.inc:591
+msgid "Joined: %1"
+msgstr "Iscritto: %1"
+
+#: html/inc/forum.inc:600
+msgid "Posts: %1"
+msgstr "Messaggi: %1"
+
+#: html/inc/forum.inc:606
+msgid "Credit: %1"
+msgstr "Crediti: %1"
+
+#: html/inc/forum.inc:607
+msgid "RAC: %1"
+msgstr "RAC: %1"
+
+#: html/inc/forum.inc:637
+msgid "You haven't read this message yet"
+msgstr "Non hai ancora letto questo messaggio"
+
+#: html/inc/forum.inc:637
+msgid "Unread"
+msgstr "Non letto"
+
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
+msgid "Message %1"
+msgstr "Messaggio %1"
+
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
+msgid "hidden"
+msgstr "nascosto"
+
+#: html/inc/forum.inc:642
+msgid "Posted: %1"
+msgstr "Messaggi: %1"
+
+#: html/inc/forum.inc:645
+msgid " - in response to "
+msgstr " - in risposta a "
+
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
+msgid "Edit"
+msgstr "Modifica"
+
+#: html/inc/forum.inc:648
+msgid "Edit this message"
+msgstr "Modifica questo messaggio"
+
+#: html/inc/forum.inc:654
+msgid "Last modified: %1"
+msgstr "Ultima modifica: %1"
+
+#: html/inc/forum.inc:657
+msgid ""
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Questo messaggio non è mostrato perché l'autore è nella tua lista 'ignorati'.  Clicca %1qui%2 per vedere questo messaggio"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report this post as offensive"
+msgstr "Segnale questo messaggio come offensivo"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report as offensive"
+msgstr "Segnala come offensivo"
+
+#: html/inc/forum.inc:696
+msgid "Rating: %1"
+msgstr "Valutazione: %1"
+
+#: html/inc/forum.inc:696
+msgid "rate: "
+msgstr "valutazione:"
+
+#: html/inc/forum.inc:699
+msgid "Click if you like this message"
+msgstr "Clicca se ti piace questo messaggio"
+
+#: html/inc/forum.inc:699
+msgid "Rate +"
+msgstr "Valuta +"
+
+#: html/inc/forum.inc:701
+msgid "Click if you don't like this message"
+msgstr "Clicca se non ti piace questo messaggio"
+
+#: html/inc/forum.inc:701
+msgid "Rate -"
+msgstr "Valuta -"
+
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
+msgid "Reply"
+msgstr "Rispondi"
+
+#: html/inc/forum.inc:710
+msgid "Post a reply to this message"
+msgstr "Rispondi a questo messaggio"
+
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
+msgid "Quote"
+msgstr "Cita"
+
+#: html/inc/forum.inc:713
+msgid "Post a reply by quoting this message"
+msgstr "Rispondi a questo messaggio citandolo"
+
+#: html/inc/forum.inc:735
+msgid "Hidden by a moderator"
+msgstr "Nascosto da un moderatore"
+
+#: html/inc/forum.inc:756
+msgid "Posted %1 by %2"
+msgstr "Inviato %1 da %2"
+
+#: html/inc/forum.inc:776
+msgid "You may not post or rate messages until %1"
+msgstr "Non puoi inviare o valutare messaggi fino al %1"
+
+#: html/inc/forum.inc:787
+msgid ""
+"\n"
+"        <ul>\n"
+"        <li> Posts must be 'kid friendly': they may not contain\n"
+"            content that is obscene, hate-related,\n"
+"            sexually explicit or suggestive.\n"
+"        <li> No commercial advertisements.\n"
+"        <li> No links to web sites involving sexual content,\n"
+"            gambling, or intolerance of others.\n"
+"        <li> No messages intended to annoy or antagonize other people,\n"
+"            or to hijack a thread.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
+"        <li> No abusive comments involving race, religion,\n"
+"            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
+"        "
+msgstr "\n<ul>\n<li> I messaggi devono essere adatti ai bambini: non devono avere\ncontenuti osceni, violenti,\nsessuali né allusivi né espliciti.\n<li> È vietata la pubblicità.\n<li> Sono vietati i link verso siti che comprendono contenuti sessuali,\ngioco d'azzardo o intolleranza verso il prossimo.\n<li> Sono vietati i messaggi tesi a dar fastidio o  provocare altre persone,\nnonchè quelli volti a confondere una discussione.\n<li> Sono vietati messaggi deliberatamente ostili o insultan [...]
+
+#: html/inc/forum.inc:820
+msgid "Rules:"
+msgstr "Regole:"
+
+#: html/inc/forum.inc:821
+msgid "More info"
+msgstr "Maggiori informazioni"
+
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
+msgid "Unhide"
+msgstr "Rendi visibile"
+
+#: html/inc/forum.inc:1119
+msgid "Unhide this post"
+msgstr "Rendi visibile questo messaggio"
+
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
+msgid "Hide"
+msgstr "Nascondi"
+
+#: html/inc/forum.inc:1121
+msgid "Hide this post"
+msgstr "Nascondi questo messaggio"
+
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
+msgid "Move"
+msgstr "Sposta"
+
+#: html/inc/forum.inc:1126
+msgid "Move post to a different thread"
+msgstr "Sposta questo argomento in un'altra discussione"
+
+#: html/inc/forum.inc:1131
+msgid "Banish author"
+msgstr "Banna l'autore"
+
+#: html/inc/forum.inc:1138
+msgid "Vote to banish author"
+msgstr "Vota per bannare l'utente"
+
+#: html/inc/forum.inc:1142
+msgid "Vote not to banish author"
+msgstr "Vota per non bannare l'utente"
+
+#: html/inc/forum.inc:1147
+msgid "Start vote to banish author"
+msgstr "Inizia la votazione per bannare l'utente"
+
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Cancella"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Cancella questo messaggio"
+
+#: html/inc/forum.inc:1192
+msgid "Only team members can post to the team message board"
+msgstr "Solo i membri del team possono inviare messaggi al forum del team"
+
+#: html/inc/forum.inc:1202
+msgid ""
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "Per creare un nuovo argomento su %1 devi avere un certo numero di crediti. Questo sistema è stato inserito per prevenire abusi del sistema."
+
+#: html/inc/forum.inc:1209
+msgid ""
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Ora non puoi aprire altri argomenti. Riprova più tardi. Questa precauzione è stata inserita per proteggere il sistema da eventuali abusi."
+
+#: html/inc/forum.inc:1216
+msgid ""
+"This thread is locked. Only forum moderators and administrators are allowed "
+"to post there."
+msgstr "Questa discussione è bloccata. Solo i moderatori e gli amministratori possono scrivere qui."
+
+#: html/inc/forum.inc:1221
+msgid "Can't post to a hidden thread."
+msgstr "Non è possibile scrivere in un thread nascosto."
+
+#: html/inc/forum.inc:1256
+msgid "Thread"
+msgstr "Argomento"
+
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
+msgid "Posts"
+msgstr "Messaggi"
+
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
+msgid "Views"
+msgstr "Visite"
+
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
+msgid "Last post"
+msgstr "Ultimo messaggio"
+
+#: html/inc/forum.inc:1317
+msgid "New posts in the thread %1"
+msgstr "Nuovi messaggi nella discussione %1"
+
+#: html/inc/forum.inc:1322
+msgid "New posts in subscribed thread"
+msgstr "Nuovi messaggi in discussioni alle quali sei iscritto"
+
+#: html/inc/forum.inc:1323
+msgid "There are new posts in the thread '%1'"
+msgstr "Ci sono nuovi messaggi nella discussione '%1'"
+
+#: html/inc/forum.inc:1333
+msgid "Mark all threads as read"
+msgstr "Segna tutti gli argomenti come letti"
+
+#: html/inc/forum.inc:1334
+msgid "Mark all threads in all message boards as read."
+msgstr "Segna tutte le discussioni del forum come lette."
+
+#: html/inc/host.inc:25
+msgid "No host"
+msgstr "Nessun host"
+
+#: html/inc/host.inc:27
+msgid "Unavailable"
+msgstr "Non disponibile"
+
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
+msgid "Home"
+msgstr "Casa"
+
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
+msgid "Work"
+msgstr "Lavoro"
+
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
+msgid "School"
+msgstr "Scuola"
+
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Update"
+msgstr "Aggiorna"
+
+#: html/inc/host.inc:84
+msgid "Computer information"
+msgstr "Informazioni sul computer"
+
+#: html/inc/host.inc:88 html/inc/host.inc:93
+msgid "IP address"
+msgstr "Indirizzo IP"
+
+#: html/inc/host.inc:88
+msgid "(same the last %1 times)"
+msgstr "(uguale alle ultime %1 volte)"
+
+#: html/inc/host.inc:90
+msgid "External IP address"
+msgstr "Indirizzo IP pubblico"
+
+#: html/inc/host.inc:93
+msgid "Show IP address"
+msgstr "Visualizza indirizzo IP"
+
+#: html/inc/host.inc:95
+msgid "Domain name"
+msgstr "Nome dominio"
+
+#: html/inc/host.inc:97
+msgid "Product name"
+msgstr "Nome prodotto"
+
+#: html/inc/host.inc:101
+msgid "Local Standard Time"
+msgstr "Ora locale"
+
+#: html/inc/host.inc:101
+msgid "UTC %1 hours"
+msgstr "UTC %1"
+
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
+msgid "Owner"
+msgstr "Proprietario"
+
+#: html/inc/host.inc:107 html/inc/host.inc:358
+msgid "Anonymous"
+msgstr "Anonimo"
+
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
+msgid "Created"
+msgstr "Creato"
+
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
+msgid "Total credit"
+msgstr "Crediti totali"
+
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
+msgid "Average credit"
+msgstr "Credito medio"
+
+#: html/inc/host.inc:115
+msgid "Cross project credit"
+msgstr "Crediti su tutti i progetti"
+
+#: html/inc/host.inc:117
+msgid "CPU type"
+msgstr "tipo di CPU"
+
+#: html/inc/host.inc:118
+msgid "Number of processors"
+msgstr "Numero di processori"
+
+#: html/inc/host.inc:120
+msgid "Coprocessors"
+msgstr "Coprocessori"
+
+#: html/inc/host.inc:122 html/inc/host.inc:703
+msgid "Operating System"
+msgstr "Sistema operativo"
+
+#: html/inc/host.inc:125 html/inc/host.inc:231
+msgid "BOINC version"
+msgstr "Versione di BOINC"
+
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
+msgid "Memory"
+msgstr "Memoria"
+
+#: html/inc/host.inc:129 html/inc/host.inc:139
+msgid "%1 MB"
+msgstr "%1 MB"
+
+#: html/inc/host.inc:133
+msgid "Cache"
+msgstr "Cache"
+
+#: html/inc/host.inc:133
+msgid "%1 KB"
+msgstr "%1 KB"
+
+#: html/inc/host.inc:139
+msgid "Swap space"
+msgstr "Spazio di swap"
+
+#: html/inc/host.inc:142
+msgid "Total disk space"
+msgstr "Spazio totale su disco"
+
+#: html/inc/host.inc:142 html/inc/host.inc:145
+msgid "%1 GB"
+msgstr "%1 GB"
+
+#: html/inc/host.inc:145
+msgid "Free Disk Space"
+msgstr "Spazio libero su disco"
+
+#: html/inc/host.inc:149
+msgid "Measured floating point speed"
+msgstr "Velocità calcolo in virgola mobile"
+
+#: html/inc/host.inc:149 html/inc/host.inc:152
+msgid "%1 million ops/sec"
+msgstr "%1 milioni operazioni/sec"
+
+#: html/inc/host.inc:152
+msgid "Measured integer speed"
+msgstr "Velocità calcolo in numeri interi"
+
+#: html/inc/host.inc:156 html/inc/host.inc:158
+msgid "Average upload rate"
+msgstr "Velocità media di upload"
+
+#: html/inc/host.inc:156 html/inc/host.inc:163
+msgid "%1 KB/sec"
+msgstr "%1 KB/sec"
+
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
+msgid "Unknown"
+msgstr "Sconosciuta"
+
+#: html/inc/host.inc:163 html/inc/host.inc:165
+msgid "Average download rate"
+msgstr "Velocità media di download"
+
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
+msgid "Average turnaround time"
+msgstr "Tempo medio di completamento"
+
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
+msgid "%1 days"
+msgstr "%1 giorni"
+
+#: html/inc/host.inc:169
+msgid "Application details"
+msgstr "Dettagli dell'applicazione"
+
+#: html/inc/host.inc:170
+msgid "Show"
+msgstr "Visualizza"
+
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
+msgid "Tasks"
+msgstr "Elaborazioni"
+
+#: html/inc/host.inc:184 html/inc/host.inc:206
+msgid "Number of times client has contacted server"
+msgstr "Numero di volte che BOINC Manager ha contattato il server"
+
+#: html/inc/host.inc:185
+msgid "Last time contacted server"
+msgstr "Ultima volta in cui è stato contattato il server"
+
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Frazione di tempo nel quale BOINC è in uso"
+
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Quando BOINC è attivo, frazione di tempo in cui il computer è connesso ad Internet"
+
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Quando BOINC è attivo, percentuale di tempo in cui è permessa l'elaborazione"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Quando BOINC è attivo, percentuale di tempo in cui è permessa l'elaborazione con GPU"
+
+#: html/inc/host.inc:193
+msgid "Average CPU efficiency"
+msgstr "Efficienza media CPU"
+
+#: html/inc/host.inc:196
+msgid "Task duration correction factor"
+msgstr "Fattore di correzione della durata del lavoro"
+
+#: html/inc/host.inc:198 html/inc/host.inc:683
+msgid "Location"
+msgstr "Posizione"
+
+#: html/inc/host.inc:200
+msgid "Delete this computer"
+msgstr "Cancella questo computer"
+
+#: html/inc/host.inc:204
+msgid "Merge duplicate records of this computer"
+msgstr "Unisci risultati multipli di questo computer"
+
+#: html/inc/host.inc:204
+msgid "Merge"
+msgstr "Unisci"
+
+#: html/inc/host.inc:207 html/inc/host.inc:706
+msgid "Last contact"
+msgstr "Ultimo contatto"
+
+#: html/inc/host.inc:220
+msgid "Computer info"
+msgstr "Informazioni computer"
+
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
+msgid "Rank"
+msgstr "Posizione"
+
+#: html/inc/host.inc:225 html/inc/host.inc:690
+msgid "Avg. credit"
+msgstr "Media dei crediti"
+
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
+msgid "Recent average credit"
+msgstr "Media dei crediti recenti"
+
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
+msgid "CPU"
+msgstr "CPU"
+
+#: html/inc/host.inc:233 html/inc/host.inc:700
+msgid "GPU"
+msgstr "GPU"
+
+#: html/inc/host.inc:234
+msgid "Operating system"
+msgstr "Sistema operativo"
+
+#: html/inc/host.inc:319
+msgid "(%1 processors)"
+msgstr "(%1 processori)"
+
+#: html/inc/host.inc:338
+msgid "Details"
+msgstr "Dettagli"
+
+#: html/inc/host.inc:343
+msgid "Cross-project stats:"
+msgstr "Statistiche di tutti i progetti:"
+
+#: html/inc/host.inc:518
+msgid "Host %1 has overlapping lifetime:"
+msgstr "L'host %1 ha un tempo di sovrapposizione:"
+
+#: html/inc/host.inc:525
+msgid "Host %1 has an incompatible OS:"
+msgstr "L'Host %1 ha un SO incompatibile:"
+
+#: html/inc/host.inc:531
+msgid "Host %1 has an incompatible CPU:"
+msgstr "L'host %1 ha una CPU incompatibile:"
+
+#: html/inc/host.inc:598
+msgid "same host"
+msgstr "stesso host"
+
+#: html/inc/host.inc:601
+msgid "Can't merge host %1 into %2 - they're incompatible"
+msgstr "Non è possibile unire host %1 con host %2 - sono incompatibili"
+
+#: html/inc/host.inc:604
+msgid "Merging host %1 into host %2"
+msgstr "Unione host %1 con host %2"
+
+#: html/inc/host.inc:621
+msgid "Couldn't update credit of new computer"
+msgstr "Non posso aggiornare il credito dei nuovi computer"
+
+#: html/inc/host.inc:625
+msgid "Couldn't update results"
+msgstr "Non posso aggiornare i risultati"
+
+#: html/inc/host.inc:630
+msgid "Couldn't retire old computer"
+msgstr "Non posso ritirare un vecchio computer"
+
+#: html/inc/host.inc:632
+msgid "Retired old computer %1"
+msgstr "Ritirato il vecchio computer %1"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Show:"
+msgstr "Visualizza:"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "All computers"
+msgstr "Tutti i computer"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Only computers active in past 30 days"
+msgstr "Solo computer attivi negli ultimi 30 giorni"
+
+#: html/inc/host.inc:671 html/inc/result.inc:702
+msgid "Computer ID"
+msgstr "ID del computer"
+
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Modello"
+
+#: html/inc/host.inc:695
+msgid "BOINC<br>version"
+msgstr "Versione <br>BOINC"
+
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
+msgid "Merge computers by name"
+msgstr "Unisci i computer per nome"
+
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discuti"
+
+#: html/inc/news.inc:112
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "Puoi ricevere le news con un %sRSS feed%s"
+
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
+msgid "Inbox"
+msgstr "Leggi"
+
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
+msgid "Write"
+msgstr "Scrivi"
+
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Invia messaggio al team"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
+msgid "Preview"
+msgstr "Anteprima"
+
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Oggetto"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Spedisci un messaggio privato"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
+msgid "no such message"
+msgstr "nessun messaggio"
+
+#: html/inc/pm.inc:133
+msgid "To"
+msgstr "Per"
+
+#: html/inc/pm.inc:133
+msgid "User IDs or unique usernames, separated with commas"
+msgstr "ID o nomi degli utenti separati da virgole"
+
+#: html/inc/pm.inc:186
+msgid "sent you a private message; subject:"
+msgstr "ti ho mandato un messaggio privato; titolo:"
+
+#: html/inc/pm.inc:193
+msgid "Private message%1 from %2, subject:"
+msgstr "Messaggio privato%1 da %2, titolo:"
+
+#: html/inc/pm.inc:201
+msgid "Couldn't create message"
+msgstr "Non in grado di scrivere il messaggio"
+
+#: html/inc/pm.inc:239
+msgid ""
+"You are not allowed to send privates messages so often. Please wait some "
+"time before sending more messages."
+msgstr "Non sei autorizzato ad inviare messaggi privati così spesso. Per favore aspetta qualche minuto prima di inviarne degli altri."
+
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
+msgid "unread"
+msgstr "non letto"
+
+#: html/inc/pm.inc:259
+msgid "For email notification, %1edit community prefs%2"
+msgstr "Per ricevere le notifiche via mail, %1modifica le preferenze della comunità%2"
+
+#: html/inc/pm.inc:275
+msgid "Private message"
+msgstr "Messaggio privato"
+
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Limite di utilizzo"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Usa al massimo"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
+msgid ""
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Mantieni alcune CPU disponibili per altre applicazioni. Esempio: 75% significa usa 6 core in una CPU ad 8 core."
+
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% delle CPU"
+
+#: html/inc/prefs.inc:63
+#, no-php-format
+msgid ""
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Sospendi/riprendi l'elaborazione ogni x secondi per ridurre la temperatura della CPU e l'utilizzo di elettricità. Esempio: 75% significa elabora per 3 secondi, aspetta per 1 secondo, e poi ripeti."
+
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% del tempo della CPU"
+
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Quando sospendere"
+
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Sospendi quando il computer è alimentato a batteria"
+
+#: html/inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Spunta questa voce per sospendere l'elaborazione degli smartphone quando funzionano a batteria."
+
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Sospendi quando il computer è in uso"
+
+#: html/inc/prefs.inc:77
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Spunta questa voce per sospendere elaborazione e trasferimento di file quando il computer viene usato."
+
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Sospendi l'elaborazione GPU quando il computer è in uso"
+
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Spunta questa voce per sospendere l'elaborazione tramite GPU mentre usi il computer."
+
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'In uso' significa che il mouse o la tastiera sono stati usati negli ultimi"
+
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Determina quando il computer è considerato 'in uso'."
+
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "minuti"
+
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Sospendi quando non c'è attività mouse/tastiera in corso"
+
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Permette ad alcuni computer di entrare in modalità risparmio energetico quando non sono 'in uso'."
+
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Sospendi quando l'uso della CPU da parte di applicazioni non-BOINC è superiore al"
+
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Sospendi l'elaborazione quando il tuo computer è impegnato nell'esecuzione di altri applicativi."
+
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Elabora solo tra"
+
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Elabora solo durante un particolare periodo ogni giorno."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Altro"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Memorizza almeno"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Mantieni WU sufficienti per tenere il computer occupato per questo periodo."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "giorni di lavoro"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Conserva fino ad ulteriori"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Scarica WU addizionali oltre la soglia minima. Determina quante workunit vengono richieste quando si contatta un progetto."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Cambia applicazione ogni"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Se elabori per diversi progetti, BOINC potrebbe fare lo switch tra i progetti in base a questo tempo."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Richiedi alle applicazioni dei checkpoint al massimo ogni"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Determina quanto spesso le applicazioni salvano i risultati su disco in modo che i dati non vengano persi nel caso che l'applicazione venga terminata bruscamente."
+
+#: html/inc/prefs.inc:134
+msgid "seconds"
+msgstr "secondi"
+
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Usa non più di"
+
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Limita l'utilizzo totale del disco utilizzato da BOINC."
+
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
+
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Lascia come minimo"
+
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Limita l'utilizzo del disco per lasciare questo spazio libero nel luogo dove BOINC salva i dati."
+
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB liberi"
+
+#: html/inc/prefs.inc:155
+msgid ""
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Limita la percentuale di spazio disco utilizzato da BOINC nel luogo dove salva i dati."
+
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% di spazio totale su disco"
+
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "Quando il computer è 'in uso' utilizza al massimo"
+
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Limita la memoria utilizzata da BOINC mentre usi il computer."
+
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
+
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Quando il computer non è 'in uso', utilizza al massimo"
+
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Limita la memoria utilizzata da BOINC mentre non usi il computer."
+
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Lascia le applicazioni non-GPU in memoria quando sono sospese"
+
+#: html/inc/prefs.inc:179
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Se selezionato, le applicazioni sospese rimangono in RAM (senza occupare la CPU) e riprendono senza rischiare di perdere i risultati dei calcoli. Se deselezionato, le applicazioni sospese vengono rimosse dalla memoria, e quando vengono chiamate ripartono dal disco fisso ed i calcoli ripartono dall'ultimo checkpoint."
+
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Spazio di swap: utilizza al massimo"
+
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Limita lo spazio di swap (file di paging) utilizzato da BOINC."
+
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Limita la velocità di download a"
+
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Limita la velocità di download per i trasferimenti dei file."
+
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/secondo"
+
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Limita la velocità di upload a"
+
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Limita la velocità di upload per i trasferimenti dei file."
+
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Limita l'utilizzo a"
+
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Esempio: BOINC può trasferire al massimo 2000 MB di dati ogni 30 giorni."
+
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB ogni"
+
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "giorni"
+
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Trasferisci files solo tra"
+
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Trasferisci i files solo durante un particolare periodo ogni giorno."
+
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Salta la verifica dati dei file immagine"
+
+#: html/inc/prefs.inc:223
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Spunta questa voce solo se il tuo provider Internet modifica i file immagine. Saltare la verifica riduce la sicurezza di BOINC."
+
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Conferma prima di connetterti ad Internet"
+
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Utile solo se hai una connessione via modem, ISDN oppure VPN"
+
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Disconnetti al termine delle operazioni"
+
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Disco"
+
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Rete"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Queste preferenze si applicano a tutti i progetti BOINC ai quali partecipi."
+
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Impossibile aggiornare le preferenze.%2 I valori segnati in rosso sono fuori dall'intervallo consentito o non sono numerici."
+
+#: html/inc/prefs.inc:494
+msgid "Separate preferences for %1"
+msgstr "Preferenze separate per %1"
+
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
+msgid "Edit preferences"
+msgstr "Modifica le preferenze"
+
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: html/inc/prefs.inc:508
+msgid "Add separate preferences for %1"
+msgstr "Aggiungi preferenze separate per %1"
+
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Queste impostazioni si applicano a tutti i computer di questo account tranne"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "computer dove hai selezionato preferenze locali utilizzando BOINC Manager"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Dispositivi android"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
+msgstr "(Cambia visuale)"
+
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
+msgid "Combined preferences"
+msgstr "Preferenze combinate"
+
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
+msgid "Primary (default) preferences"
+msgstr "Impostazioni principali (predefinite)"
+
+#: html/inc/prefs.inc:546
+msgid "Preferences last modified:"
+msgstr "Ultima modifica delle preferenze:"
+
+#: html/inc/prefs.inc:562
+msgid "Add preferences"
+msgstr "Aggiungi delle preferenze"
+
+#: html/inc/prefs.inc:566
+msgid "Update preferences"
+msgstr "Aggiorna le preferenze"
+
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "sì"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "no"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
+msgid "Default computer location"
+msgstr "Posizione del computer predefinita"
+
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "I nuovi computer utilizzeranno questo luogo per le preferenze di elaborazione e dei progetti."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Allocazione risorse"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina la proporzione delle risorse allocate del tuo computer a questo progetto. Ad esempio, se participi a due progetti BOINC con uno share di risorse di 100 e 200, il primo avrà 1/3 delle tue risorse, mentre il secondo avrà 2/3."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Accelerare le applicazioni GPU dedicando a ciascuna una CPU?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "Usa la CPU"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "Utilizzare GPU ATI"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "Utilizzare GPU NVIDIA"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Utilizzare Intel GPU"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Avviare le applicazioni di test?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Questo ci aiuta a migliorare le applicazioni, ma potrebbe causare errori alle WU in elaborazione sul tuo computer"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Verranno mandate email da %1; accertati che il tuo filtro di spam accetti questo indirizzo. "
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Sei d'accordo che %1 ed il tuo team (se ne hai uno) possano inviarti email?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "%1 può mostrare i tuoi computer sul suo sito web?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Cambia visuale)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Impostazioni specifiche per il progetto"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "sede non valida: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "sottoclasse non valida: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
+msgid "and"
+msgstr "e le"
+
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "nessun limite"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Aggiungi"
+
+#: html/inc/profile.inc:85
+msgid ""
+"Your profile will be made visible to other people as soon as it has been "
+"approved by the project. This may take up to a few days."
+msgstr "Il tuo profile verrà reso visibile agli altri utenti non appena viene approvato dal progetto. Questo potrebbe richiedere alcuni giorni."
+
+#: html/inc/profile.inc:91
+msgid ""
+"Your profile has been marked as unacceptable. It is not visible to other "
+"people. Please change it."
+msgstr "Il tuo profilo è stato considerato inacettabile. Non è visibile agli altri utenti. Per favore modificalo."
+
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
+msgid "Database error"
+msgstr "Errore del database"
+
+#: html/inc/profile.inc:194
+msgid ""
+"To prevent spam, profiles of users with an average credit of less than %1 "
+"are displayed only to logged-in users. We apologize for this inconvenience."
+msgstr "Per evitare lo spam, i profili degli utenti con un credito medio inferiore a %1 vengono mostrati solo agli utenti connessi. Ci scusiamo per questo inconveniente."
+
+#: html/inc/profile.inc:198
+msgid "User is banished"
+msgstr "L'utente è stato bannato."
+
+#: html/inc/profile.inc:212
+msgid "No profile exists for that user ID."
+msgstr "Non esiste alcun profilo con questo ID utente."
+
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
+msgid "Edit your profile"
+msgstr "Modifica il tuo profilo"
+
+#: html/inc/profile.inc:267
+msgid "Your feedback on this profile"
+msgstr "Feedback ricevuti dal tuo profilo"
+
+#: html/inc/profile.inc:269
+msgid "Recommend this profile for User of the Day:"
+msgstr "Raccomanda questo profilo come Utente del giorno:"
+
+#: html/inc/profile.inc:270
+msgid "I %1like%2 this profile"
+msgstr "Questo profilo %1mi piace%2"
+
+#: html/inc/profile.inc:273
+msgid "Alert administrators to an offensive profile:"
+msgstr "Avvisa gli amministratori del profilo offensivo:"
+
+#: html/inc/profile.inc:274
+msgid "I %1do not like%2 this profile"
+msgstr "Questo profilo %1non mi piace%2"
+
+#: html/inc/result.inc:58
+msgid "Anonymous platform"
+msgstr "Piattaforma anonima"
+
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
+msgid "NVIDIA GPU"
+msgstr "GPU NVIDIA"
+
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
+msgid "ATI GPU"
+msgstr "GPU ATI"
+
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
+msgid "Intel GPU"
+msgstr "GPU Intel"
+
+#: html/inc/result.inc:105
+msgid "pending"
+msgstr "in attesa"
+
+#: html/inc/result.inc:128 html/user/forum_search.php:62
+msgid "All"
+msgstr "Tutto"
+
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
+msgid "In progress"
+msgstr "In corso"
+
+#: html/inc/result.inc:130
+msgid "Validation pending"
+msgstr "Validazione in attesa"
+
+#: html/inc/result.inc:131
+msgid "Validation inconclusive"
+msgstr "Validazione inconclusiva"
+
+#: html/inc/result.inc:132 html/inc/result.inc:282
+msgid "Valid"
+msgstr "Valido"
+
+#: html/inc/result.inc:133 html/inc/result.inc:285
+msgid "Invalid"
+msgstr "Non valido"
+
+#: html/inc/result.inc:134 html/inc/result.inc:223
+msgid "Error"
+msgstr "Errore"
+
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
+msgid "Inactive"
+msgstr "Non attivo"
+
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
+msgid "Unsent"
+msgstr "Non inviato"
+
+#: html/inc/result.inc:195
+msgid "Completed, waiting for validation"
+msgstr "Completato, in attesa di validazione"
+
+#: html/inc/result.inc:196
+msgid "Completed and validated"
+msgstr "Completato e validato"
+
+#: html/inc/result.inc:197
+msgid "Completed, marked as invalid"
+msgstr "Completato, segnato come non valido"
+
+#: html/inc/result.inc:198
+msgid "Completed, can't validate"
+msgstr "Completato, impossibile da validare"
+
+#: html/inc/result.inc:199
+msgid "Completed, validation inconclusive"
+msgstr "Completato, validazione inconclusiva"
+
+#: html/inc/result.inc:200
+msgid "Completed, too late to validate"
+msgstr "Completato, troppo tardi per validarlo"
+
+#: html/inc/result.inc:202
+msgid "Completed"
+msgstr "Completato"
+
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
+msgid "Couldn't send"
+msgstr "Impossibile inviare"
+
+#: html/inc/result.inc:208 html/inc/result.inc:271
+msgid "Cancelled by server"
+msgstr "Cancellato dal server"
+
+#: html/inc/result.inc:213
+msgid "Not started by deadline - canceled"
+msgstr "Non avviato a causa della scadenza - cancellato"
+
+#: html/inc/result.inc:216
+msgid "Error while downloading"
+msgstr "Errore durante lo scaricamento"
+
+#: html/inc/result.inc:218
+msgid "Error while computing"
+msgstr "Errore durante l'elaborazione"
+
+#: html/inc/result.inc:219
+msgid "Error while uploading"
+msgstr "Errore durante l'invio dei dati"
+
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Annullato"
+
+#: html/inc/result.inc:221 html/inc/result.inc:274
+msgid "Upload failed"
+msgstr "Invio non riuscito"
+
+#: html/inc/result.inc:224
+msgid "Timed out - no response"
+msgstr "Scaduto - nessuna risposta"
+
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
+msgid "Didn't need"
+msgstr "Non necessario"
+
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
+msgid "Validate error"
+msgstr "Errore di validazione"
+
+#: html/inc/result.inc:227 html/inc/result.inc:256
+msgid "Abandoned"
+msgstr "Abbandonato"
+
+#: html/inc/result.inc:238 html/user/explain_state.php:43
+msgid "Over"
+msgstr "Terminato"
+
+#: html/inc/result.inc:246 html/user/explain_state.php:59
+msgid "Success"
+msgstr "Successo"
+
+#: html/inc/result.inc:250
+msgid "Computation error"
+msgstr "Errore di calcolo"
+
+#: html/inc/result.inc:252
+msgid "Redundant result"
+msgstr "Risultato ridondante"
+
+#: html/inc/result.inc:253 html/user/explain_state.php:68
+msgid "No reply"
+msgstr "Nessuna risposta"
+
+#: html/inc/result.inc:263 html/user/explain_state.php:85
+msgid "New"
+msgstr "Nuovo"
+
+#: html/inc/result.inc:264 html/user/explain_state.php:91
+msgid "Downloading"
+msgstr "Scaricamento in corso"
+
+#: html/inc/result.inc:265
+msgid "Processing"
+msgstr "In elaborazione"
+
+#: html/inc/result.inc:266
+msgid "Compute error"
+msgstr "Errore di calcolo"
+
+#: html/inc/result.inc:267 html/user/explain_state.php:97
+msgid "Uploading"
+msgstr "Invio in corso"
+
+#: html/inc/result.inc:268 html/user/explain_state.php:88
+msgid "Done"
+msgstr "Finito"
+
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Annullato dall'utente"
+
+#: html/inc/result.inc:281
+msgid "Initial"
+msgstr "Inizio"
+
+#: html/inc/result.inc:287
+msgid "Not necessary"
+msgstr "Non necessario"
+
+#: html/inc/result.inc:288
+msgid "Workunit error - check skipped"
+msgstr "Errore contenuto WU - il controllo è stato ignorato"
+
+#: html/inc/result.inc:289
+msgid "Checked, but no consensus yet"
+msgstr "Controllato, ma ancora non approvato"
+
+#: html/inc/result.inc:290
+msgid "Task was reported too late to validate"
+msgstr "La WU è stata completata troppo tardi per poterla validare"
+
+#: html/inc/result.inc:316
+msgid "Couldn't send result"
+msgstr "Non posso mandare il risultato"
+
+#: html/inc/result.inc:320
+msgid "Too many errors (may have bug)"
+msgstr "Troppi errori (potrebbe avere problemi)"
+
+#: html/inc/result.inc:324
+msgid "Too many results (may be nondeterministic)"
+msgstr "Troppi risultati (può essere non deterministico)"
+
+#: html/inc/result.inc:328
+msgid "Too many total results"
+msgstr "Troppi risultati totali"
+
+#: html/inc/result.inc:332
+msgid "WU cancelled"
+msgstr "Workunit cancellata"
+
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Risultato canonico mancante."
+
+#: html/inc/result.inc:340
+msgid "Unrecognized Error: %1"
+msgstr "Errore non riconosciuto: %1"
+
+#: html/inc/result.inc:369
+msgid "Task name"
+msgstr "Nome elaborazione"
+
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
+msgid "click for details"
+msgstr "clicca per i dettagli"
+
+#: html/inc/result.inc:369
+msgid "Show IDs"
+msgstr "Mostra gli ID"
+
+#: html/inc/result.inc:374
+msgid "Show names"
+msgstr "Visualizza nomi"
+
+#: html/inc/result.inc:377 html/user/result.php:36
+msgid "Task"
+msgstr "Attività"
+
+#: html/inc/result.inc:380
+msgid "Work unit"
+msgstr "Elaborazione"
+
+#: html/inc/result.inc:391
+msgid "Computer"
+msgstr "Computer"
+
+#: html/inc/result.inc:394 html/inc/result.inc:695
+msgid "Sent"
+msgstr "Inviato"
+
+#: html/inc/result.inc:395
+msgid "Time reported<br />or deadline"
+msgstr "Tempo riportato<br />o scadenza"
+
+#: html/inc/result.inc:396
+msgid "explain"
+msgstr "spiega"
+
+#: html/inc/result.inc:397 html/user/server_status.php:112
+msgid "Status"
+msgstr "Stato"
+
+#: html/inc/result.inc:401
+msgid "Run time<br />(sec)"
+msgstr "Tempo di elaborazione<br />(sec)"
+
+#: html/inc/result.inc:402
+msgid "CPU time<br />(sec)"
+msgstr "Tempo CPU<br/>(sec)"
+
+#: html/inc/result.inc:403 html/inc/result.inc:706
+msgid "Credit"
+msgstr "Crediti"
+
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
+msgid "Application"
+msgstr "Applicazione"
+
+#: html/inc/result.inc:693
+msgid "Workunit"
+msgstr "Elaborazione"
+
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Avvisa della scadenza imminente"
+
+#: html/inc/result.inc:697
+msgid "Received"
+msgstr "Ricevuta"
+
+#: html/inc/result.inc:698
+msgid "Server state"
+msgstr "Stato server"
+
+#: html/inc/result.inc:699
+msgid "Outcome"
+msgstr "Risultato"
+
+#: html/inc/result.inc:700
+msgid "Client state"
+msgstr "Stato client"
+
+#: html/inc/result.inc:701
+msgid "Exit status"
+msgstr "Stato di uscita"
+
+#: html/inc/result.inc:703
+msgid "Run time"
+msgstr "Tempo di elaborazione"
+
+#: html/inc/result.inc:704
+msgid "CPU time"
+msgstr "Tempo CPU"
+
+#: html/inc/result.inc:705
+msgid "Validate state"
+msgstr "Stato di validazione"
+
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "Picco di FLOP del dispositivo"
+
+#: html/inc/result.inc:708
+msgid "Application version"
+msgstr "Versione dell'applicazione"
+
+#: html/inc/result.inc:733
+msgid "Output files"
+msgstr "File di output"
+
+#: html/inc/result.inc:736
+msgid "Stderr output"
+msgstr "Output su Stderr"
+
+#: html/inc/result.inc:795
+msgid "State"
+msgstr "Stato"
+
+#: html/inc/result.inc:836
+msgid "Task name:"
+msgstr "Nome del lavoro:"
+
+#: html/inc/team.inc:40
+msgid "Search criteria (use one or more)"
+msgstr "Criteri di ricerca (usane uno o più di uno)"
+
+#: html/inc/team.inc:42
+msgid "Key words"
+msgstr "Parole chiave"
+
+#: html/inc/team.inc:42
+msgid "Find teams with these words in their names or descriptions"
+msgstr "Trova i team che hanno queste parole nel loro nome o nella loro descrizione"
+
+#: html/inc/team.inc:50 html/inc/team.inc:465
+msgid "Type of team"
+msgstr "Tipo di team"
+
+#: html/inc/team.inc:52
+msgid "Show only active teams"
+msgstr "Mostra solo i team attivi"
+
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
+msgid "Search"
+msgstr "Cerca"
+
+#: html/inc/team.inc:62
+msgid "Requested by you, and founder response deadline has passed."
+msgstr "Richiesto da te, e il fondatore non ha risposto entro il tempo limite."
+
+#: html/inc/team.inc:64
+msgid "Complete foundership transfer"
+msgstr "Completa il trasferimento del fondatore"
+
+#: html/inc/team.inc:68
+msgid "Requested by you"
+msgstr "Richiesto da te"
+
+#: html/inc/team.inc:68
+msgid "founder response deadline is %1"
+msgstr "il limite massimo per una risposta del fondatore è %1"
+
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
+msgid "None"
+msgstr "Nessuno"
+
+#: html/inc/team.inc:75
+msgid "Initiate request"
+msgstr "Avvia la richiesta"
+
+#: html/inc/team.inc:78
+msgid "Deferred"
+msgstr "Rinviato"
+
+#: html/inc/team.inc:92
+msgid "Team info"
+msgstr "Informazioni sul team"
+
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
+msgid "Description"
+msgstr "Descrizione"
+
+#: html/inc/team.inc:107
+msgid "Web site"
+msgstr "Sito web"
+
+#: html/inc/team.inc:133
+msgid "Cross-project stats"
+msgstr "Statistiche di tutti i progetti"
+
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
+msgid "Type"
+msgstr "Tipo"
+
+#: html/inc/team.inc:140 html/user/team_manage.php:67
+msgid "Message board"
+msgstr "Forum"
+
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
+msgid "Threads"
+msgstr "Argomenti"
+
+#: html/inc/team.inc:149
+msgid "Join this team"
+msgstr "Unisciti a questo team"
+
+#: html/inc/team.inc:150
+msgid ""
+"Note: if 'OK to email' is set in your project preferences, joining a team "
+"gives its founder access to your email address."
+msgstr "Nota: se nelle tue preferenze del progetto la voce 'OK alle email' è spuntata, unendosi al team, si dà il consenso al fondatore di inviare messaggi al tuo indirizzo di posta elettronica."
+
+#: html/inc/team.inc:153
+msgid "Not accepting new members"
+msgstr "Non accetta nuovi membri"
+
+#: html/inc/team.inc:160
+msgid "Foundership change requested"
+msgstr "Richiesta di cambio del fondatore"
+
+#: html/inc/team.inc:161
+msgid "Respond by %1"
+msgstr "Risposta di %1"
+
+#: html/inc/team.inc:165
+msgid "Team foundership change"
+msgstr "Cambio di fondatore del team"
+
+#: html/inc/team.inc:169 html/inc/team.inc:370
+msgid "Members"
+msgstr "Membri"
+
+#: html/inc/team.inc:170 html/inc/team.inc:265
+msgid "Founder"
+msgstr "Fondatore"
+
+#: html/inc/team.inc:184
+msgid "Admins"
+msgstr "Amministratori"
+
+#: html/inc/team.inc:199
+msgid "New members in last day"
+msgstr "Nuovi membri nell'ultimo giorno"
+
+#: html/inc/team.inc:200
+msgid "Total members"
+msgstr "Totale dei membri"
+
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
+msgid "view"
+msgstr "visualizza"
+
+#: html/inc/team.inc:201
+msgid "Active members"
+msgstr "Membri attivi"
+
+#: html/inc/team.inc:202
+msgid "Members with credit"
+msgstr "Membri con credito"
+
+#: html/inc/team.inc:267
+msgid "Admin"
+msgstr "Amministratore"
+
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
+msgid "Previous %1"
+msgstr "Precedente %1"
+
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
+msgid "Next %1"
+msgstr "Successivi %1"
+
+#: html/inc/team.inc:300
+msgid "No such team."
+msgstr "Nessun team."
+
+#: html/inc/team.inc:313
+msgid "This operation requires foundership."
+msgstr "Per fare questa operazione devi essere il fondatore."
+
+#: html/inc/team.inc:337
+msgid "This operation requires team admin privileges"
+msgstr "Per fare questa operazione devi avere i privilegi da amministratore"
+
+#: html/inc/team.inc:434
+msgid ""
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "ATTENZIONE: questo è un grosso team di BOINC. Se fai delle modifiche qui, saranno presto sovrascritte. Modifica al suo posto il %1BOINC-wide team%2."
+
+#: html/inc/team.inc:440
+msgid ""
+"%1Privacy note%2: if you create a team, your project preferences (resource "
+"share, graphics preferences) will be visible to the public."
+msgstr "%1Nota sulla privacy%2: se hai intenzione di creare un team, le preferenze del tuo progetto (allocazione delle risorse, preferenze grafiche) saranno visibili a tutti."
+
+#: html/inc/team.inc:444
+msgid "Team name, text version"
+msgstr "Nome del team, versione testuale"
+
+#: html/inc/team.inc:445
+msgid "Don't use HTML tags."
+msgstr "Non usare i tag HTML."
+
+#: html/inc/team.inc:448
+msgid "Team name, HTML version"
+msgstr "Nome del team, versione HTML"
+
+#: html/inc/team.inc:450 html/inc/team.inc:460
+msgid "You may use %1limited HTML tags%2."
+msgstr "Puoi usare %1un numero limitato di tag HTML%2."
+
+#: html/inc/team.inc:451
+msgid "If you don't know HTML, leave this box blank."
+msgstr "Se non conosci l'HTML, lascia questo campo vuoto."
+
+#: html/inc/team.inc:454
+msgid "URL of team web page, if any"
+msgstr "URL del sito web del gruppo, se esiste"
+
+#: html/inc/team.inc:454
+msgid "without \"http://\""
+msgstr "senza \"http://\""
+
+#: html/inc/team.inc:455
+msgid "This URL will be linked to from the team's page on this site."
+msgstr "Questo indirizzo sarà linkato nella pagina del team su questo sito."
+
+#: html/inc/team.inc:458
+msgid "Description of team"
+msgstr "Descrizione del team"
+
+#: html/inc/team.inc:474
+msgid "Accept new members?"
+msgstr "Accettare nuovi membri?"
+
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Azienda"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Scuola primaria"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Scuola secondaria"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Junior college"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Università o Dipartimento"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Ente pubblico"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "ONG"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "Nazionale"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Locale/regionale"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Tipo di computer"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Beneficenza/politico/religioso"
+
+#: html/inc/uotd.inc:30
+msgid "User profile"
+msgstr "Profilo utente"
+
+#: html/inc/user.inc:118
+msgid "Projects in which you are participating"
+msgstr "Progetti a cui stai partecipando"
+
+#: html/inc/user.inc:120
+msgid "Projects in which %1 is participating"
+msgstr "Progetti in cui %1 sta partecipando"
+
+#: html/inc/user.inc:125
+msgid "Click for user page"
+msgstr "Clicca qui per la pagina dell'utente"
+
+#: html/inc/user.inc:128
+msgid "Since"
+msgstr "Membro dal"
+
+#: html/inc/user.inc:155
+msgid "Computing and credit"
+msgstr "Elaborazioni e crediti"
+
+#: html/inc/user.inc:158
+msgid "Computers on this account"
+msgstr "Computer di questo account"
+
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
+msgid "View"
+msgstr "Visualizza"
+
+#: html/inc/user.inc:168
+msgid "Cross-project ID"
+msgstr "ID su tutti i progetti (CPID)"
+
+#: html/inc/user.inc:169
+msgid "Cross-project statistics"
+msgstr "Statistiche di tutti i progetti"
+
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
+msgid "Team"
+msgstr "Team"
+
+#: html/inc/user.inc:174
+msgid "Cross-project"
+msgstr "Inter-progetto"
+
+#: html/inc/user.inc:176
+msgid "Stats on your cell phone"
+msgstr "Statistiche sul tuo telefono cellulare"
+
+#: html/inc/user.inc:201
+msgid "Account information"
+msgstr "Informazioni sull'account"
+
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
+msgid "Email address"
+msgstr "E-mail"
+
+#: html/inc/user.inc:214 html/inc/user.inc:413
+msgid "URL"
+msgstr "URL"
+
+#: html/inc/user.inc:217
+msgid "Postal code"
+msgstr "Codice postale"
+
+#: html/inc/user.inc:218 html/inc/user.inc:407
+msgid "%1 member since"
+msgstr "membro dal %1"
+
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
+msgid "Change"
+msgstr "Cambia"
+
+#: html/inc/user.inc:228
+msgid "email address"
+msgstr "e-mail"
+
+#: html/inc/user.inc:229
+msgid "password"
+msgstr "password"
+
+#: html/inc/user.inc:230
+msgid "other account info"
+msgstr "altre informazioni sull'account"
+
+#: html/inc/user.inc:233 html/inc/user.inc:406
+msgid "User ID"
+msgstr "ID utente"
+
+#: html/inc/user.inc:233
+msgid "Used in community functions"
+msgstr "Usato nel forum"
+
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
+msgid "Account keys"
+msgstr "Chiave di accesso"
+
+#: html/inc/user.inc:241
+msgid "Preferences"
+msgstr "Preferenze"
+
+#: html/inc/user.inc:244
+msgid "When and how BOINC uses your computer"
+msgstr "Quando e come usi BOINC sul tuo computer"
+
+#: html/inc/user.inc:245
+msgid "Computing preferences"
+msgstr "Preferenze di elaborazione"
+
+#: html/inc/user.inc:248
+msgid "Message boards and private messages"
+msgstr "Forum e messaggi privati"
+
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
+msgid "Community preferences"
+msgstr "Preferenze per la comunità"
+
+#: html/inc/user.inc:252
+msgid "Preferences for this project"
+msgstr "Preferenze per questo progetto"
+
+#: html/inc/user.inc:253 html/user/prefs.php:30
+msgid "%1 preferences"
+msgstr "Preferenze per %1"
+
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Mostra il profilo di %1"
+
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Profilo"
+
+#: html/inc/user.inc:327
+msgid "Create"
+msgstr "Crea"
+
+#: html/inc/user.inc:334 html/inc/user.inc:473
+msgid "%1 posts"
+msgstr "%1 messaggi"
+
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
+msgid "Notifications"
+msgstr "Notifiche"
+
+#: html/inc/user.inc:358
+msgid "Quit team"
+msgstr "Abbandona il team"
+
+#: html/inc/user.inc:360 html/inc/user.inc:377
+msgid "Administer"
+msgstr "Amministra"
+
+#: html/inc/user.inc:366 html/inc/user.inc:379
+msgid "(foundership change request pending)"
+msgstr "(richiesta per cambio del fondatore in corso)"
+
+#: html/inc/user.inc:368
+msgid "Member of team"
+msgstr "Membro del team"
+
+#: html/inc/user.inc:370
+msgid "find a team"
+msgstr "trova un team"
+
+#: html/inc/user.inc:381
+msgid "Founder but not member of"
+msgstr "Fondatore ma non membro di"
+
+#: html/inc/user.inc:387
+msgid "Find friends"
+msgstr "Trova degli amici"
+
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
+msgid "Friends"
+msgstr "Amici"
+
+#: html/inc/user.inc:428 html/inc/user.inc:434
+msgid "Donor"
+msgstr "Donatore"
+
+#: html/inc/user.inc:477
+msgid "Contact"
+msgstr "Contatta"
+
+#: html/inc/user.inc:480
+msgid "This person is a friend"
+msgstr "Questa persona è un amico"
+
+#: html/inc/user.inc:481 html/user/friend.php:240
+msgid "Cancel friendship"
+msgstr "Cancella l'amicizia"
+
+#: html/inc/user.inc:484 html/user/friend.php:39
+msgid "Request pending"
+msgstr "Richiesta in corso"
+
+#: html/inc/user.inc:486
+msgid "Add as friend"
+msgstr "Aggiungi come amico"
+
+#: html/inc/user.inc:545
+msgid "user name cannot have leading or trailing white space"
+msgstr "lo username non può iniziare o terminare con uno spazio"
+
+#: html/inc/user.inc:549
+msgid "user name must be nonempty"
+msgstr "lo username non può essere vuoto"
+
+#: html/inc/user.inc:553
+msgid "user name may not contain HTML tags"
+msgstr "lo username non può contenere tag HTML"
+
+#: html/inc/util.inc:163
+msgid "log out"
+msgstr "Esci"
+
+#: html/inc/util.inc:165
+msgid "log in"
+msgstr "Accedi"
+
+#: html/inc/util.inc:269
+msgid "Create an account"
+msgstr "Crea un account"
+
+#: html/inc/util.inc:270
+msgid "Server status page"
+msgstr "Stato server"
+
+#: html/inc/util.inc:313
+msgid ""
+"A database error occurred while handling your request; please try again "
+"later."
+msgstr "Si è verificato un errore del database durante l'elaborazione della richiesta; per favore riprova più tardi."
+
+#: html/inc/util.inc:322
+msgid "Unable to handle request"
+msgstr "Impossibile gestire la richiesta"
+
+#: html/inc/util.inc:342
+msgid "hours"
+msgstr "ore"
+
+#: html/inc/util.inc:345
+msgid "min"
+msgstr "minuti"
+
+#: html/inc/util.inc:348
+msgid "sec"
+msgstr "secondi"
+
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Tempo di connessione al link scaduto. Per favore clicca Indietro, aggiorna la pagina e prova ancora."
+
+#: html/inc/util.inc:606
+msgid "Use BBCode tags to format your text"
+msgstr "Usa i tag BBCode per formattare il testo"
+
+#: html/inc/util.inc:853
+msgid "Project down for maintenance"
+msgstr "Progetto sospeso per manutenzione"
+
+#: html/inc/util.inc:856
+msgid "%1 is temporarily shut down for maintenance.  Please try again later."
+msgstr "%1 è temporaneamente fuori servizio per manutenzione. Riprova più tardi."
+
+#: html/inc/util.inc:874
+msgid "Unable to connect to database - please try again later"
+msgstr "Impossibile connettersi al database - per favore riprova più tardi"
+
+#: html/inc/util.inc:878
+msgid "Unable to select database - please try again later"
+msgstr "Impossibile selezionare il database - per favore riprova più tardi"
+
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "caratteri rimanenti"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
+msgid "Stay logged in on this computer"
+msgstr "Rimani loggato su questo computer"
+
+#: html/user/account_finish_action.php:27
+msgid "You must supply a name for your account"
+msgstr "Devi fornire un nome per il tuo account"
+
+#: html/user/account_finish_action.php:30
+msgid "HTML tags not allowed in name"
+msgstr "I tag HTML non sono ammessi nel nome"
+
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Completa la configurazione dell'account"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Modifica le preferenze per %1"
+
+#: html/user/add_venue.php:82
+msgid "Add %1 preferences for %2"
+msgstr "Aggiungi %1 preferenze per %2"
+
+#: html/user/apps.php:33
+msgid ""
+"%1 currently has the following applications. When you participate in %1, "
+"tasks for one or more of these applications will be assigned to your "
+"computer. The current version of the application will be downloaded to your "
+"computer. This happens automatically; you don't have to do anything."
+msgstr "%1 al momento sta usando le seguenti applicazioni. Quando partecipi a %1, le WU per una o più di queste applicazioni saranno assegnate al tuo computer. La versione corrente delle applicazioni sarà scaricata sul tuo computer. Questo succederà automaticamente; non dovrai fare nulla."
+
+#: html/user/apps.php:55
+msgid "Platform"
+msgstr "Piattaforma"
+
+#: html/user/apps.php:56
+msgid "Version"
+msgstr "Versione"
+
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Elaborazione media"
+
+#: html/user/bbcode.php:23
+msgid "BBCode tags"
+msgstr "Tag BBCode"
+
+#: html/user/bbcode.php:25
+msgid ""
+"BBCode tags let you format text in your profile and message-board postings.\n"
+"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
+"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
+"HTML)."
+msgstr "I tag BBCode ti consentono di formattare il testo del tuo profilo e i messaggi inviati in bacheca.\n Essi sono simili all'HTML, ma più semplici. I tag iniziano con una [ (in HTML potresti\n usare %1) e terminano con ] (in HTML\n potresti usare %2)."
+
+#: html/user/bbcode.php:31
+msgid "Examples"
+msgstr "Esempi"
+
+#: html/user/bbcode.php:32
+msgid "Bold"
+msgstr "Grassetto"
+
+#: html/user/bbcode.php:33
+msgid "Italic"
+msgstr "Corsivo"
+
+#: html/user/bbcode.php:34
+msgid "Underline"
+msgstr "Sottolineato"
+
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Barrato"
+
+#: html/user/bbcode.php:36
+msgid "Superscript"
+msgstr "Apice"
+
+#: html/user/bbcode.php:37
+msgid "Big text"
+msgstr "Testo in grande"
+
+#: html/user/bbcode.php:38
+msgid "Red text"
+msgstr "Testo in rosso"
+
+#: html/user/bbcode.php:39
+msgid "link to website"
+msgstr "link al sito"
+
+#: html/user/bbcode.php:40
+msgid "Quoted text"
+msgstr "Testo citato"
+
+#: html/user/bbcode.php:40
+msgid "use for quoted blocks of text"
+msgstr "utilizza per le citazioni"
+
+#: html/user/bbcode.php:41
+msgid "use to display an image"
+msgstr "usa per visualizzare un'immagine"
+
+#: html/user/bbcode.php:42
+msgid "Code snippet here"
+msgstr "Inserisci qui il frammento di codice"
+
+#: html/user/bbcode.php:42
+msgid "use to display some code"
+msgstr "usa per visualizzare codici"
+
+#: html/user/bbcode.php:43
+msgid "Pre-formatted text"
+msgstr "Testo preformattato"
+
+#: html/user/bbcode.php:43
+msgid "use to display pre-formatted (usually monospaced) text"
+msgstr "usa per visualizzare un testo preformattato (di solito è un carattere monospaziato)"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 1"
+msgstr "Elemento 1"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item2"
+msgstr "Elemento 2"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 2"
+msgstr "Elemento 2"
+
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "collega ad un issue sul repository Github di BOINC"
+
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "collega ad una pagina Wiki sul repository Github di BOINC"
+
+#: html/user/bbcode.php:55
+msgid ""
+"If you don't close a tag or don't specify a parameter correctly,\n"
+"the raw tag itself will display instead of the formatted text."
+msgstr "Se non chiudi un tag, o no specifichi un parametro in maniera corretta,\nil tag sarà visualizzato in chiaro al posto del testo formattato."
+
+#: html/user/create_account_action.php:26
+msgid "Can't create account"
+msgstr "Non è possibile creare l'account"
+
+#: html/user/create_account_action.php:29
+msgid "Click your browser's <b>Back</b> button to try again."
+msgstr "Fai click sul tasto <b>Indietro</b> del tuo browser per riprovare."
+
+#: html/user/create_account_action.php:44
+msgid "Your reCAPTCHA response was not correct. Please try again."
+msgstr "La tua risposta al ReCaptcha non è corretta. Prova di nuovo."
+
+#: html/user/create_account_action.php:67
+msgid "You must supply an invitation code to create an account."
+msgstr "Devi fornire un codice d'invito per creare un account."
+
+#: html/user/create_account_action.php:70
+msgid "The invitation code you gave is not valid."
+msgstr "Il codice d'invito inserito non è valido."
+
+#: html/user/create_account_action.php:81
+msgid ""
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Indirizzo email non valido: deve essere un indirizzo email valido del tipo nome at dominio"
+
+#: html/user/create_account_action.php:85
+msgid "There's already an account with that email address."
+msgstr "Esiste già un account associato a questo indirizzo email."
+
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
+msgid "New passwords are different"
+msgstr "Le nuove password sono diverse"
+
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
+msgid "Passwords may only include ASCII characters."
+msgstr "Le password possono comprendere solo caratteri ASCII."
+
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
+msgid "New password is too short: minimum password length is %1 characters."
+msgstr "La nuova password è troppo corta: la lunghezza minima è di %1 caratteri."
+
+#: html/user/create_account_action.php:124
+msgid "Couldn't create account"
+msgstr "Non è stato possibile creare l'account"
+
+#: html/user/create_account_form.php:46
+msgid ""
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "Attenzione: per eseguire %1 sul tuo computer %2vai qui%3, invece di utilizzare questo modulo."
+
+#: html/user/create_account_form.php:63
+msgid ""
+"This account will belong to the team %1 and will have the project "
+"preferences of its founder."
+msgstr "Questo account apparterrà al team %1 ed avrà le preferenze del progetto decise dal suo fondatore."
+
+#: html/user/create_profile.php:53
+msgid "Picture"
+msgstr "Immagine"
+
+#: html/user/create_profile.php:67
+msgid "%1 Your profile picture is shown to the left."
+msgstr "%1 La tua immagine del profilo è mostrata sulla sinistra."
+
+#: html/user/create_profile.php:69
+msgid ""
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Per cambiarla clicca sul pulsante \"Browse\" e seleziona una file JPEG o PNG (più piccolo di %1)."
+
+#: html/user/create_profile.php:72
+msgid "To remove it from your profile, check this box:"
+msgstr "Per eliminarla dal tuo profilo, seleziona questa l'opzione:"
+
+#: html/user/create_profile.php:80
+msgid ""
+"If you would like include a picture with your profile, click the \"Browse\" "
+"button and select a JPEG or PNG file. Please select images of %1 or less."
+msgstr "Se vuoi aggiungere una immagine al tuo profilo, clicca sul pulsante \"Browse\" e seleziona una file JPEG o PNG. Sei pregato di scegliere un file più piccolo di %1."
+
+#: html/user/create_profile.php:92
+msgid "Language"
+msgstr "Lingua"
+
+#: html/user/create_profile.php:95
+msgid "Select the language in which your profile is written:"
+msgstr "Seleziona la lingua in cui è scritto il tuo profilo:"
+
+#: html/user/create_profile.php:107
+msgid "Submit profile"
+msgstr "Invia il profilo"
+
+#: html/user/create_profile.php:113
+msgid "Create/edit profile"
+msgstr "Crea/modifica il profilo"
+
+#: html/user/create_profile.php:135
+msgid "The format of your uploaded image is not supported."
+msgstr "Il formato dell'immagine che hai caricato non è supportato."
+
+#: html/user/create_profile.php:164
+msgid ""
+"Your %1profile%2 lets you share your opinions and background with the %3 "
+"community."
+msgstr "La pagina del tuo %1profilo%2 ti permettere di condividere le tue opinioni e il tuo background con la comunità di %3."
+
+#: html/user/create_profile.php:208
+msgid "Your ReCaptcha response was not correct.  Please try again."
+msgstr "La tua risposta al ReCaptcha non è corretta.  Prova di nuovo."
+
+#: html/user/create_profile.php:217
+msgid ""
+"Your first response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Le cose che hai scritto nel primo spazio sono state segnalate come spam dal sistema anti-spam Akismet.  Modifica il testo e riprova."
+
+#: html/user/create_profile.php:225
+msgid ""
+"Your second response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Le cose che hai scritto nel secondo spazio sono state segnalate come spam dal sistema anti-spam Akismet.  Modifica il testo e riprova."
+
+#: html/user/create_profile.php:241
+msgid "Your profile submission was empty."
+msgstr "I campi del tuo profilo sono vuoti."
+
+#: html/user/create_profile.php:282
+msgid "Could not update the profile: database error"
+msgstr "Impossibile aggiornare il profilo: errore del database"
+
+#: html/user/create_profile.php:298
+msgid "Could not create the profile: database error"
+msgstr "Impossibile creare il profilo: errore del database"
+
+#: html/user/create_profile.php:303
+msgid "Profile saved"
+msgstr "Il profilo è stato salvato"
+
+#: html/user/create_profile.php:305
+msgid ""
+"Congratulations! Your profile was successfully entered into our database."
+msgstr "Congratulazioni! Il tuo profilo è stato inserito con successo nel database."
+
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Visualizza il tuo profilo"
+
+#: html/user/create_profile.php:318
+msgid "Create a profile"
+msgstr "Crea un profilo"
+
+#: html/user/create_profile.php:346
+msgid ""
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Per prevenire lo spam, è richiesta una media di crediti superiore a %1 per creare o modificare un profilo.  Ci scusiamo per l'inconveniente."
+
+#: html/user/delete_account.php:57
+msgid "Couldn't delete account"
+msgstr "Non è stato possibile cancellare l'account"
+
+#: html/user/delete_account.php:59
+msgid "Account deleted"
+msgstr "Account cancellato"
+
+#: html/user/delete_account.php:60
+msgid "Your account has been deleted."
+msgstr "Il tuo account è stato cancellato."
+
+#: html/user/delete_account.php:64
+msgid "Confirm delete account"
+msgstr "Conferma cancellazione dell'account"
+
+#: html/user/delete_account.php:67
+msgid ""
+"Deleting your account will remove all of your\n"
+"personal information from our servers,\n"
+"including your profile and message-board posts.\n"
+"No jobs will be issued to any computers attached\n"
+"to this account."
+msgstr "La cancellazione del tuo account rimuoverà tutte le tue\ninformazioni personali dai nostri server,\nincluso il tuo profilo e i messaggi inviati al forum.\nNon sarà rilasciato nessun lavoro a nessun computer\nassociato a questo account."
+
+#: html/user/delete_account.php:73
+msgid ""
+"This cannot be undone.\n"
+"Once your account has been deleted, you cannot get it back."
+msgstr "Impossibile annullare l'operazione.\nUna volta che il tuo account è stato cancellato, non potrai riabilitarlo."
+
+#: html/user/delete_account.php:76
+msgid "Are you sure you want to delete your account?"
+msgstr "Sei sicuro di voler cancellare il tuo account?"
+
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
+msgid "Yes"
+msgstr "Sì"
+
+#: html/user/delete_account.php:79
+msgid "Delete this account"
+msgstr "Cancella questo account"
+
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
+msgid "No"
+msgstr "No"
+
+#: html/user/delete_account.php:80
+msgid "Do not delete this account"
+msgstr "Non cancellare questo account"
+
+#: html/user/delete_profile.php:32
+msgid "couldn't delete profile - please try again later"
+msgstr "non è possibile eliminare il profilo - per favore riprova più tardi"
+
+#: html/user/delete_profile.php:35
+msgid "Delete Confirmation"
+msgstr "Conferma eliminazione"
+
+#: html/user/delete_profile.php:37
+msgid "Your profile has been deleted."
+msgstr "Il tuo profilo è stato cancellato."
+
+#: html/user/delete_profile.php:42
+msgid "Profile delete confirmation"
+msgstr "Conferma eliminazione del profilo"
+
+#: html/user/delete_profile.php:45
+msgid "Are you sure?"
+msgstr "Sei sicuro?"
+
+#: html/user/delete_profile.php:46
+msgid ""
+"Deleted profiles are gone forever and cannot be recovered --\n"
+"you will have to start from scratch\n"
+"if you want another profile in the future."
+msgstr "I profili cancellati sono perduti per sempre e non possono essere ripristinati:\ndovrai ricominciare dall'inizio\nse vorrai un altro profilo in futuro."
+
+#: html/user/delete_profile.php:50
+msgid ""
+"If you're sure, click 'Yes'\n"
+"to remove your profile from our database."
+msgstr "Se sei sicuro, clicca 'Sì'\nper rimuovere il tuo profilo dal nostro database."
+
+#: html/user/delete_profile.php:54
+msgid "Delete my profile"
+msgstr "Cancella il mio profilo"
+
+#: html/user/delete_profile.php:55
+msgid "Do not delete my profile"
+msgstr "Non cancellare il mio profilo"
+
+#: html/user/donated.php:25
+msgid "PayPal - Transaction Completed"
+msgstr "PayPal - Transazione Completata"
+
+#: html/user/donated.php:28
+msgid "Thank you for donating!"
+msgstr "Grazie per la tua donazione!"
+
+#: html/user/donated.php:29
+msgid "Your donation for has been completed."
+msgstr "La tua donazione è stata completata."
+
+#: html/user/donated.php:30
+msgid ""
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "La tua donazione sarà aggiunta alla barra di avanzamento dopo la conferma da parte di PayPal."
+
+#: html/user/donated.php:32
+msgid "You have canceled your donation."
+msgstr "Hai annullato la tua donazione."
+
+#: html/user/donations.php:24
+msgid "This project is not accepting donations."
+msgstr "Questo progetto non accetta donazioni."
+
+#: html/user/donations.php:34
+msgid "%1 donations"
+msgstr "%1 donazioni"
+
+#: html/user/donations.php:39
+msgid ""
+"This project is accepting donations via\n"
+"%1."
+msgstr "Questo progetto accetta donazioni via\n %1."
+
+#: html/user/donations.php:41
+msgid ""
+"To donate, fill in the amount you want to donate using the field below.\n"
+"        PayPal is accepting multiple currencies\n"
+"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
+"         Yen, Australian Dollars, New Zealand Dollars,\n"
+"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
+"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
+"        Hungarian Forint, Czech Koruna).\n"
+"        You can use included currency converter\n"
+"        to see the donation amount equivalent in different currencies\n"
+"        (please note that the rates are only estimates\n"
+"         and the actual amount may differ)."
+msgstr "Per fare una donazione, inserisci l'importo che vuoi donare usando i seguenti campi.\nPayPal accetta diverse valute\n(Dollari Canadesi, Euro, Sterline, Dollari U.S.A.,\nYen, Dollari Australiani, Dollari Neozelandesi,\nFranchi Svizzeri, Dollari di Hong Kong, Dollari di Singapore, Corone Svedesi,\nCorone Danesi, Zloty Polacchi, Corone Norvegesi,\nFiorini Ungheresi, Corone Ceche).\nPuoi usare il convertitore di valuta\nper vedere la somma donata equivalente nelle diverse valute\n(pe [...]
+
+#: html/user/donations.php:315
+msgid "Amount you would like to donate"
+msgstr "Somma che vuoi donare"
+
+#: html/user/donations.php:316
+msgid "Estimated value in"
+msgstr "Valore stimato in"
+
+#: html/user/donations.php:319 html/user/donations.php:323
+msgid "Anonymous donation"
+msgstr "Donazione anonima"
+
+#: html/user/donations.php:319
+msgid ""
+"Select this if you dont want your name and account number displayed in\n"
+"donator lists.<br>If not checked, you will be recorded as user ID %1"
+msgstr "Seleziona questo se vuoi che il tuo nome e il tuo numero di account non vengano\nvisualizzati nella lista donatori.<br>Se non selezioni, sarai memorizzato come un utente con ID %1"
+
+#: html/user/donations.php:323
+msgid "To assign the donation with your user ID, please log in."
+msgstr "Per associare la donazione al tuo ID utente devi accedere con il tuo account."
+
+#: html/user/donations.php:327
+msgid "Proceed"
+msgstr "Procedi"
+
+#: html/user/donations.php:328
+msgid "Donations are accepted through"
+msgstr "Le donazioni sono accettate tramite"
+
+#: html/user/download_network.php:25
+msgid "Download BOINC add-on software"
+msgstr "Scarica add-on per BOINC"
+
+#: html/user/download_network.php:28
+msgid "You can download applications in several categories."
+msgstr "Puoi scaricare applicazioni di vari tipi."
+
+#: html/user/download_network.php:31
+msgid ""
+"These applications are not endorsed by %1 and you use them at your own risk."
+msgstr "Queste applicazioni non sono supportate da %1 e il loro utilizzo è sotto la tua sola responsabilità."
+
+#: html/user/download_network.php:33
+msgid ""
+"We do not provide instructions for installing these applications.\n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
+"If this is not enough you should contact the author."
+msgstr "Non forniamo istruzioni per l'installazione di queste applicazioni.\nIn ogni caso l'autore potrebbe aver fornito qualche informazione sull'installazione o disinstallazione dell'applicazione. \nSe questo non è sufficiente dovrai contattare l'autore."
+
+#: html/user/download_network.php:36
+msgid "Instructions for installing and running BOINC are %1here%2."
+msgstr "Le istruzioni per l'installazione e il funzionamento di BOINC si trovano %1qui%2."
+
+#: html/user/download_network.php:38
+msgid "This list is managed centrally at %1the BOINC website%2."
+msgstr "Questo elenco è amministrato centralmente dal %1sito web di BOINC%2."
+
+#: html/user/edit_email_action.php:31
+msgid "Change email address of account"
+msgstr "Cambia l'indirizzo email del tuo account"
+
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
+msgid "New email address '%1' is invalid."
+msgstr "Il nuovo indirizzo email '%1' non è valido."
+
+#: html/user/edit_email_action.php:38
+msgid "New email address is same as existing address. Nothing is changed."
+msgstr "Il nuovo indirizzo email è uguale a quello esistente. Nulla è stato cambiato."
+
+#: html/user/edit_email_action.php:42
+msgid "There's already an account with that email address"
+msgstr "Esiste già un account associato a questo indirizzo email"
+
+#: html/user/edit_email_action.php:54
+msgid "Invalid password."
+msgstr "Password non valida."
+
+#: html/user/edit_email_action.php:62
+msgid "The email address of your account is now %1."
+msgstr "L'indirizzo email del tuo account è ora %1."
+
+#: html/user/edit_email_action.php:64
+msgid "Please %1validate this email address%2."
+msgstr "Sei pregato di %1validare questo indirizzo email%2."
+
+#: html/user/edit_email_action.php:67
+msgid ""
+"We can't update your email address due to a database problem.  Please try "
+"again later."
+msgstr "Non possiamo aggiornare il tuo indirizzo email a causa di un problema del database. Per favore riprova più tardi."
+
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
+msgid "Change email address"
+msgstr "Cambia l'indirizzo email"
+
+#: html/user/edit_email_form.php:36
+msgid "Change the email address of your account"
+msgstr "Cambia l'indirizzo email del tuo account"
+
+#: html/user/edit_email_form.php:37
+msgid "New email address"
+msgstr "Nuovo indirizzo email"
+
+#: html/user/edit_email_form.php:38
+msgid "Must be a valid address of the form 'name at domain'"
+msgstr "Deve essere un indirizzo email valido del tipo 'nome at dominio'"
+
+#: html/user/edit_email_form.php:48
+msgid "No password?"
+msgstr "Non hai la password?"
+
+#: html/user/edit_forum_preferences_action.php:33
+msgid "Confirm reset"
+msgstr "Conferma il reset"
+
+#: html/user/edit_forum_preferences_action.php:34
+msgid ""
+"This action will erase any changes you have made in your community "
+"preferences. To cancel, click your browser's Back button."
+msgstr "Questa azione eliminerà qualsiasi cambiamento apportato alle tue preferenze. Per annullare clicca sul pulsante Indietro del tuo browser."
+
+#: html/user/edit_forum_preferences_action.php:38
+msgid "Reset preferences"
+msgstr "Resetta le preferenze"
+
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
+msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
+msgstr "Errore. Questo non è il tipo di file corretto, soltanto immagini PNG e JPEG sono consentite."
+
+#: html/user/edit_forum_preferences_action.php:120
+msgid "Your signature was too long, please keep it less than 250 characters."
+msgstr "La tua firma era troppo lunga, sono consentiti al più 250 caratteri."
+
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Utente non trovato:"
+
+#: html/user/edit_forum_preferences_form.php:45
+msgid ""
+"How should we notify you of new private messages, friend requests, posts in "
+"subscribed threads, and other events?"
+msgstr "In che modo possiamo notificarti nuovi messaggi privati, richieste da amici, avvisi sugli argomenti sottoscritti e altri eventi?"
+
+#: html/user/edit_forum_preferences_form.php:46
+msgid "On my Account page (no email)"
+msgstr "Sulla mia pagina Account (no email)"
+
+#: html/user/edit_forum_preferences_form.php:47
+msgid "Immediately, by email"
+msgstr "Immediatamente, per email"
+
+#: html/user/edit_forum_preferences_form.php:48
+msgid "In a single daily email"
+msgstr "In una singola email giornaliera"
+
+#: html/user/edit_forum_preferences_form.php:65
+msgid "Message-board identity"
+msgstr "Identità messaggi"
+
+#: html/user/edit_forum_preferences_form.php:66
+msgid "Avatar"
+msgstr "Avatar"
+
+#: html/user/edit_forum_preferences_form.php:67
+msgid "An image representing you on the message boards."
+msgstr "Immagine che ti rappresenta sul forum."
+
+#: html/user/edit_forum_preferences_form.php:68
+msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
+msgstr "Formato: JPG o PNG. Dimensione: al massimo 4KB, 100x100 pixel."
+
+#: html/user/edit_forum_preferences_form.php:70
+msgid "Don't use an avatar"
+msgstr "Non usare un avatar"
+
+#: html/user/edit_forum_preferences_form.php:72
+msgid "Use a Globally Recognized Avatar provided by %1"
+msgstr "Usa un Globally Recognized Avatar fornito da %1"
+
+#: html/user/edit_forum_preferences_form.php:74
+msgid "Use this uploaded avatar:"
+msgstr "Usa questa immagine caricata:"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "Avatar preview"
+msgstr "Anteprima dell'avatar"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "This is how your avatar will look"
+msgstr "Così apparirà il tuo avatar"
+
+#: html/user/edit_forum_preferences_form.php:86
+msgid "Signature for message board posts"
+msgstr "Firma per i messaggi nel forum"
+
+#: html/user/edit_forum_preferences_form.php:89
+msgid ""
+"Check out %1various free services%2\n"
+"<br> providing dynamic 'signature images'\n"
+"<br> showing your latest credit info, project news, etc."
+msgstr "Dai un'occhiati ai %1 servizi gratuiti%2\n<br> che forniscono 'immagini per le firme dinamiche' da usare nei forum, social, ecc...\n<br> e che mostrano informazioni sui tuoi crediti recenti, notizie dei progetto ed altro."
+
+#: html/user/edit_forum_preferences_form.php:93
+msgid "Attach signature by default"
+msgstr "Allega di default la firma"
+
+#: html/user/edit_forum_preferences_form.php:96
+msgid "Signature preview"
+msgstr "Anteprima della firma"
+
+#: html/user/edit_forum_preferences_form.php:97
+msgid "This is how your signature will look in the forums"
+msgstr "La tua firma nel forum apparirà così:"
+
+#: html/user/edit_forum_preferences_form.php:115
+msgid "Message display"
+msgstr "Visualizza messaggi"
+
+#: html/user/edit_forum_preferences_form.php:117
+msgid "What to display"
+msgstr "Cosa visualizzare"
+
+#: html/user/edit_forum_preferences_form.php:118
+msgid "Hide avatar images"
+msgstr "Nascondi le immagini degli avatar"
+
+#: html/user/edit_forum_preferences_form.php:119
+msgid "Hide signatures"
+msgstr "Nascondi le firme"
+
+#: html/user/edit_forum_preferences_form.php:120
+msgid "Show images as links"
+msgstr "Visualizza le immagini come link"
+
+#: html/user/edit_forum_preferences_form.php:121
+msgid "Open links in new window/tab"
+msgstr "Apri i collegamenti in una nuova finestra/scheda"
+
+#: html/user/edit_forum_preferences_form.php:122
+msgid "Highlight special users"
+msgstr "Evidenzia utenti speciali"
+
+#: html/user/edit_forum_preferences_form.php:123
+msgid "Display this many messages per page"
+msgstr "Virualizza questo numero di messaggi per pagina"
+
+#: html/user/edit_forum_preferences_form.php:127
+msgid "How to sort"
+msgstr "Come ordinare"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Threads:"
+msgstr "Discussioni:"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Posts:"
+msgstr "Messaggi:"
+
+#: html/user/edit_forum_preferences_form.php:129
+msgid "Jump to first new post in thread automatically"
+msgstr "Vai automaticamente al primo nuovo messaggio della discussione"
+
+#: html/user/edit_forum_preferences_form.php:130
+msgid "Don't move sticky posts to top"
+msgstr "Non muovere i post offensivi al top"
+
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
+msgid "Message filtering"
+msgstr "Filtro messaggi"
+
+#: html/user/edit_forum_preferences_form.php:153
+msgid "Filtered users"
+msgstr "Utenti filtrati"
+
+#: html/user/edit_forum_preferences_form.php:154
+msgid "Ignore message board posts and private messages from these users."
+msgstr "Ignora i post e i messaggi privati da questi utenti."
+
+#: html/user/edit_forum_preferences_form.php:156
+msgid "User ID (For instance: 123456789)"
+msgstr "ID utente (per esempio: 123456789)"
+
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
+msgid "Add user to filter"
+msgstr "Aggiungi l'utente al filtro"
+
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Click here to update preferences"
+msgstr "Clicca qui per aggiornare le preferenze"
+
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
+msgid "Reset"
+msgstr "Reset"
+
+#: html/user/edit_forum_preferences_form.php:165
+msgid "Or click here to reset preferences to the defaults"
+msgstr "Oppure clicca qui per resettare le preferenze ai valori di default"
+
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Impossibile aggiornare la password a causa di un problema al database. Per favore riprova più tardi."
+
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "Cambia password"
+
+#: html/user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "La tua password è stata cambiata."
+
+#: html/user/edit_passwd_form.php:32
+msgid "New password"
+msgstr "Nuova password"
+
+#: html/user/edit_passwd_form.php:33
+msgid "New password, again"
+msgstr "Ripeti nuova password"
+
+#: html/user/edit_user_info_action.php:31
+msgid "HTML tags are not allowed in your name."
+msgstr "I tag HTML non sono permessi nel tuo nome."
+
+#: html/user/edit_user_info_action.php:34
+msgid "You must supply a name for your account."
+msgstr "Devi dare un nome per il tuo account."
+
+#: html/user/edit_user_info_action.php:58
+msgid "Couldn't update user info."
+msgstr "Non posso aggiornare le informazioni utente."
+
+#: html/user/edit_user_info_form.php:27
+msgid "Edit account information"
+msgstr "Modifica le informazioni account"
+
+#: html/user/edit_user_info_form.php:32
+msgid "Name %1 real name or nickname%2"
+msgstr "Nome %1 nome reale o nickname%2"
+
+#: html/user/edit_user_info_form.php:35
+msgid "URL %1 of your web page; optional%2"
+msgstr "URL %1 della tua pagina web; opzionale%2"
+
+#: html/user/edit_user_info_form.php:44
+msgid "Postal (ZIP) code %1 Optional%2"
+msgstr "Codice postale (ZIP) %1 Opzionale%2"
+
+#: html/user/edit_user_info_form.php:48
+msgid "Update info"
+msgstr "Aggiorna informazioni"
+
+#: html/user/explain_state.php:27
+msgid "Server states"
+msgstr "Stato server"
+
+#: html/user/explain_state.php:30
+msgid ""
+"A tasks's <b>server state</b> indicates whether the task has been sent to a "
+"computer, and if so whether the computer has finished it. Possible values "
+"are:"
+msgstr "Lo <b>stato del server</b> di un'attività indica se una Working unit è stata inviata ad un computer e, in questo caso, se il computer l'ha completata. I valori possibili sono:"
+
+#: html/user/explain_state.php:35
+msgid ""
+"The task is not ready to send (for example, because its input files are "
+"unavailable)"
+msgstr "La WU non è pronta per essere inviata (per esempio, perché i suoi file di input non sono disponibili)"
+
+#: html/user/explain_state.php:38
+msgid "The task is ready to send, but hasn't been sent yet."
+msgstr "La WU è pronta per essere spedita, ma non è stata ancora inviata."
+
+#: html/user/explain_state.php:40
+msgid "In Progress"
+msgstr "In corso"
+
+#: html/user/explain_state.php:41
+msgid "The task has been sent; waiting for completion."
+msgstr "La WU è stata inviata; in attesa del completamento."
+
+#: html/user/explain_state.php:44
+msgid ""
+"The task has been sent to a computer and either it has timed out or the "
+"computer has reported its completion."
+msgstr "La WU è stata inviata ad un computer ed è scaduta oppure il computer ha segnalato il suo completamento."
+
+#: html/user/explain_state.php:49
+msgid "Outcomes"
+msgstr "Risultati"
+
+#: html/user/explain_state.php:52
+msgid ""
+"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
+"Possible values are:"
+msgstr "Il <b>risultato</b> di una lavoro è definito se lo stato del suo server è <b>finito</b>. Valori possibili sono:"
+
+#: html/user/explain_state.php:57
+msgid ""
+"The task was sent to a computer, but the computer has not yet completed the "
+"work and reported the outcome."
+msgstr "La WU è stata inviata ad un computer, ma il computer non ha ancora completato il calcolo ed inviato il risultato."
+
+#: html/user/explain_state.php:60
+msgid "A computer completed and reported the task successfully."
+msgstr "Il computer ha completato ed inviato la WU con successo."
+
+#: html/user/explain_state.php:63
+msgid ""
+"The server wasn't able to send the task to a computer (perhaps because its "
+"resource requirements were too large)"
+msgstr "Il server non è stato in grado di inviare la WU ad un computer (forse perché i requisiti di risorse erano troppo elevati)"
+
+#: html/user/explain_state.php:65
+msgid "Client error"
+msgstr "Errore client"
+
+#: html/user/explain_state.php:66
+msgid "The task was sent to a computer and an error occurred."
+msgstr "La WU è stata inviata ad un computer ma c'è stato un errore."
+
+#: html/user/explain_state.php:69
+msgid ""
+"The task was sent to a computer and no reply was received within the time "
+"limit."
+msgstr "La WU è stata inviata ad un computer ma non è stata ricevuto nessuna risposta entro il tempo limite."
+
+#: html/user/explain_state.php:72
+msgid ""
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "La WU non è stata inviata ad un computer perché sufficienti altre WU erano già state completate per questà unità di lavoro."
+
+#: html/user/explain_state.php:75
+msgid ""
+"The task was reported but could not be validated, typically because the "
+"output files were lost on the server."
+msgstr "Il lavoro è stato riportato ma non è stata possibile la validazione, tipicamente a causa del fatto che i file di output sono stati persi sul server."
+
+#: html/user/explain_state.php:80
+msgid "Client states"
+msgstr "Stato client"
+
+#: html/user/explain_state.php:81
+msgid ""
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Il <b>client state</b> di un risultato indica lo stato di processamento nel quale l'errore è avvenuto."
+
+#: html/user/explain_state.php:86
+msgid "The computer has not yet completed the task."
+msgstr "Il computer non ha ancora completato il lavoro."
+
+#: html/user/explain_state.php:89
+msgid "The computer completed the task successfully."
+msgstr "Il computer ha completato il lavoro con successo."
+
+#: html/user/explain_state.php:92
+msgid "The computer couldn't download the application or input files."
+msgstr "Il computer non ha potuto scaricare l'applicazione o i file di input."
+
+#: html/user/explain_state.php:95
+msgid "An error occurred during computation."
+msgstr "È avvenuto un errore durante l'elaborazione."
+
+#: html/user/explain_state.php:98
+msgid "The computer couldn't upload the output files."
+msgstr "Il computer non ha potuto inviare i file di output."
+
+#: html/user/explain_state.php:103
+msgid "Time reported and deadline"
+msgstr "Tempo riportato e scadenza della WU"
+
+#: html/user/explain_state.php:106
+msgid ""
+"A task's <b>Time reported or deadline</b> field depends on whether the task "
+"has been reported yet:"
+msgstr "La colonna <b>Tempo riportato o Scadenza</b> di un lavoro dipende dal fatto che il lavoro sia già stato inviato o no:"
+
+#: html/user/explain_state.php:110
+msgid "Already reported"
+msgstr "Già riportato"
+
+#: html/user/explain_state.php:110
+msgid "The date/time it was reported"
+msgstr "La data/ora nella quale è stato riportato"
+
+#: html/user/explain_state.php:111
+msgid "Not reported yet, deadline in the future"
+msgstr "Non ancora inviata, tempo limite nel futuro"
+
+#: html/user/explain_state.php:112
+msgid "Deadline, shown in green."
+msgstr "Tempo limite, visualizzato in verde."
+
+#: html/user/explain_state.php:114
+msgid "Not reported yet, deadline in the past"
+msgstr "Non ancora inviata, tempo limite nel passato"
+
+#: html/user/explain_state.php:115
+msgid "Deadline, shown in red."
+msgstr "Tempo limite, visualizzato in rosso."
+
+#: html/user/explain_state.php:120
+msgid "Unknown field"
+msgstr "Campo sconosciuto"
+
+#: html/user/ffmail_action.php:28
+msgid "Sending emails"
+msgstr "Invio email"
+
+#: html/user/ffmail_action.php:43
+msgid "failed to send email to %1: %2"
+msgstr "impossibile inviare l'e-mail a %1: %2"
+
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "faalito l'invio dell'email a %1"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "e-mail inviata correttamente a %1"
+
+#: html/user/ffmail_action.php:55
+msgid "Thanks for telling your friends about %1"
+msgstr "Grazie per aver segnalato %1 ai tuoi amici"
+
+#: html/user/ffmail_action.php:57
+msgid ""
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Hai dimenticato di inserire gli indirizzi e-mail; per favore, %1torna al modulo%2 e inseriscili."
+
+#: html/user/ffmail_form.php:33
+msgid "Tell your friends about %1"
+msgstr "Consiglia %1 ai tuoi amici"
+
+#: html/user/ffmail_form.php:49
+msgid ""
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Puoi usare questo form per inviare email a persone che pensi potrebbero essere interessate a %1."
+
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "A:"
+
+#: html/user/ffmail_form.php:59
+msgid "Send"
+msgstr "Invia"
+
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
+msgid "You are not authorized to banish users."
+msgstr "Non sei autorizzato a bandire gli utenti."
+
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Devi specificare un'azione..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Osceno"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Messaggi di provocazione/odio"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Richiesta Utente"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
+msgid "Banishment Vote"
+msgstr "Vota per Bannare"
+
+#: html/user/forum_banishment_vote.php:52
+msgid "No user with this ID found."
+msgstr "Non è stato trovato nessun utente con questo ID."
+
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
+msgid "User is already banished"
+msgstr "L'utente è già bannato"
+
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
+msgid ""
+"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
+"for chosen time period.<br/>It should be done only if %1 has consistently "
+"exhibited trollish behavior."
+msgstr "Sei sicuro di voler bandire %1?<br/>Questo impedirà a %1 di pubblicare per il periodo di tempo stabilito.<br/>Dovrebbe essere fatto solo se %1 si è comportato ripetutamente da troll."
+
+#: html/user/forum_banishment_vote.php:64
+msgid ""
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Seleziona la categoria del motivo e scrivi eventualmente una descrizione più lunga sul perché l'utente dovrebbe essere bandito."
+
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
+msgid "Category"
+msgstr "Categoria"
+
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
+msgid "Reason"
+msgstr "Motivo"
+
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
+msgid "Mailed if nonempty"
+msgstr "Spedita se non vuota"
+
+#: html/user/forum_banishment_vote.php:78
+msgid "Proceed with vote"
+msgstr "Procedi con la votazione"
+
+#: html/user/forum_edit.php:41
+msgid ""
+"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
+"minutes after they have been created."
+msgstr "Non puoi più modificare questo messaggio.<br/>I messaggi possono essere modificati al massimo %1 minuti dopo che sono stati creati."
+
+#: html/user/forum_edit.php:47
+msgid "You are not authorized to edit this post."
+msgstr "Non sei autorizzato a modificare questo post."
+
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Modifica messaggio"
+
+#: html/user/forum_edit.php:112
+msgid "Edit your message"
+msgstr "Modifica il tuo messaggio"
+
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
+msgid "Title"
+msgstr "Titolo"
+
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
+msgid "Add my signature to this post"
+msgstr "Aggiungi la mia firma a questo messaggio"
+
+#: html/user/forum_forum.php:46
+msgid "Not visible to you"
+msgstr "Non è visibile a te"
+
+#: html/user/forum_forum.php:83
+msgid "Team message board for %1"
+msgstr "Forum dei messaggi del team per %1"
+
+#: html/user/forum_forum.php:100
+msgid "New thread"
+msgstr "Nuovo thread"
+
+#: html/user/forum_forum.php:100
+msgid "Add a new thread to this forum"
+msgstr "Aggiungi un nuovo thread a questo forum"
+
+#: html/user/forum_forum.php:122
+msgid "This message board is available as an %1RSS feed%2"
+msgstr "Puoi ricevere le news con un %1RSS feed%2"
+
+#: html/user/forum_forum.php:181
+msgid "This thread is hidden"
+msgstr "Questo thread è stato nascosto dai moderatori"
+
+#: html/user/forum_forum.php:185
+msgid "This thread is sticky and locked, and you haven't read it yet"
+msgstr "Questo thread è evidenziato e bloccato, e non letto"
+
+#: html/user/forum_forum.php:185
+msgid "sticky/locked/unread"
+msgstr "evidenziati/bloccati/non letti"
+
+#: html/user/forum_forum.php:187
+msgid "This thread is sticky and you haven't read it yet"
+msgstr "Questo thread è evidenzato e non letto"
+
+#: html/user/forum_forum.php:187
+msgid "sticky/unread"
+msgstr "offensivo/non letto"
+
+#: html/user/forum_forum.php:191
+msgid "You haven't read this thread yet, and it's locked"
+msgstr "Non hai ancora letto questo thread, ed è bloccato"
+
+#: html/user/forum_forum.php:191
+msgid "unread/locked"
+msgstr "non letto/bloccato"
+
+#: html/user/forum_forum.php:193
+msgid "You haven't read this thread yet"
+msgstr "Non hai ancora letto questo thread"
+
+#: html/user/forum_forum.php:199
+msgid "This thread is sticky and locked"
+msgstr "Questo thread è offensivo e bloccato"
+
+#: html/user/forum_forum.php:199
+msgid "sticky/locked"
+msgstr "evidenziato/bloccato"
+
+#: html/user/forum_forum.php:201
+msgid "This thread is sticky"
+msgstr "Questo thread è offensivo"
+
+#: html/user/forum_forum.php:201
+msgid "sticky"
+msgstr "offensivo"
+
+#: html/user/forum_forum.php:205
+msgid "This thread is locked"
+msgstr "Questo thread è bloccato"
+
+#: html/user/forum_forum.php:205
+msgid "locked"
+msgstr "bloccato"
+
+#: html/user/forum_forum.php:207
+msgid "You read this thread"
+msgstr "Hai letto questo thread"
+
+#: html/user/forum_forum.php:207
+msgid "read"
+msgstr "leggi"
+
+#: html/user/forum_help_desk.php:29
+msgid "Questions and answers"
+msgstr "Domande e risposte"
+
+#: html/user/forum_help_desk.php:32
+msgid ""
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Parla dal vivo via Skype con un volontario, in una tra le diverse lingue. Vai all'%1Aiuto Online di BOINC%2."
+
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
+msgid "Topic"
+msgstr "Tema"
+
+#: html/user/forum_help_desk.php:48
+msgid "Questions"
+msgstr "Domande"
+
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
+msgid "Discussion among members of %1"
+msgstr "Discussione tra i membri di %1"
+
+#: html/user/forum_index.php:80
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "Se hai delle domande o problemi usa la sezione %1Domande & Risposte%2 del forum."
+
+#: html/user/forum_index.php:125
+msgid "Subscribed threads"
+msgstr "Thread seguiti"
+
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Non sei autorizzato a moderare questo post."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Non posso muoverlo in una categoria differente"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Non posso muoverlo in una categoria differente"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Non autorizzato a bandire gli utenti"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Banna"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "L'utente %1 è stato bannato."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Azione fallita: possibile problema al database"
+
+#: html/user/forum_moderate_post.php:45
+msgid "Moderate post"
+msgstr "Modera post"
+
+#: html/user/forum_moderate_post.php:55
+msgid "Hide post"
+msgstr "Nascondi post"
+
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
+msgid "Commercial spam"
+msgstr "Spam commerciale"
+
+#: html/user/forum_moderate_post.php:63
+msgid "Doublepost"
+msgstr "Post doppio"
+
+#: html/user/forum_moderate_post.php:70
+msgid "Move post"
+msgstr "Muovi post"
+
+#: html/user/forum_moderate_post.php:72
+msgid "Destination thread ID:"
+msgstr "ID thread di destinazione:"
+
+#: html/user/forum_moderate_post.php:85
+msgid "Banish user"
+msgstr "Banna utente"
+
+#: html/user/forum_moderate_post.php:87
+msgid "Ban duration"
+msgstr "Durata del ban"
+
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 ore"
+
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 ore"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
+msgid "1 day"
+msgstr "1 giorno"
+
+#: html/user/forum_moderate_post.php:91
+msgid "1 week"
+msgstr "1 settimana"
+
+#: html/user/forum_moderate_post.php:92
+msgid "2 weeks"
+msgstr "2 settimane"
+
+#: html/user/forum_moderate_post.php:93
+msgid "1 month"
+msgstr "1 mese"
+
+#: html/user/forum_moderate_post.php:94
+msgid "Forever"
+msgstr "Per sempre"
+
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
+msgid "OK"
+msgstr "OK"
+
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Spiegazione facoltativa %1 Questa sarà inclusa nell'e-mail inviata all'utente.%2"
+
+#: html/user/forum_moderate_thread.php:38
+msgid "not authorized"
+msgstr "non autorizzato"
+
+#: html/user/forum_moderate_thread.php:41
+msgid "Moderate thread '%1'"
+msgstr "Modera la discussione '%1'"
+
+#: html/user/forum_moderate_thread.php:54
+msgid ""
+"Select the reason category, or write a longer description of why you're "
+"hiding or locking the thread; then press OK."
+msgstr "Seleziona la categoria del motivo, o scrivi una descrizione più lunga sul perché stai nascondendo o bloccando la discussione; quindi premi OK."
+
+#: html/user/forum_moderate_thread.php:78
+msgid "Current forum"
+msgstr "Forum corrente"
+
+#: html/user/forum_moderate_thread.php:79
+msgid "Destination forum"
+msgstr "Forum destinazione"
+
+#: html/user/forum_moderate_thread.php:83
+msgid "New title:"
+msgstr "Nuovo titolo:"
+
+#: html/user/forum_post.php:44
+msgid ""
+"Only project admins may create a thread here. However, you may reply to "
+"existing threads."
+msgstr "Solo gli amministratori di progetto possono creare un thread qui. Tuttavia, puoi rispondere a thread esistenti."
+
+#: html/user/forum_post.php:64
+msgid ""
+"Your message was flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Le cose che hai scritto nel primo spazio sono state segnalate come spam dal sistema anti-spam Akismet. Modifica il testo e riprova."
+
+#: html/user/forum_post.php:74
+msgid "Create new thread"
+msgstr "Crea un nuovo thread"
+
+#: html/user/forum_post.php:102
+msgid "Create a new thread"
+msgstr "Crea un nuovo argomento"
+
+#: html/user/forum_post.php:107
+msgid "Remember to add a title"
+msgstr "Ricordati di aggiungere un titolo"
+
+#: html/user/forum_post.php:132
+msgid "Show this item as a Notice in the BOINC Manager"
+msgstr "Mostra questo elemento come Notifica nel BOINC Manager"
+
+#: html/user/forum_post.php:132
+msgid "Do so only for items likely to be of interest to all volunteers."
+msgstr "Fallo solo per gli elementi che siano verosimilmente di interesse per tutti i volontari."
+
+#: html/user/forum_rate.php:28
+msgid "Rating offline"
+msgstr "Votazione offline"
+
+#: html/user/forum_rate.php:29
+msgid "This function is turned off by the project"
+msgstr "Questa funziona è disabilitata dal progetto"
+
+#: html/user/forum_rate.php:60
+msgid "You need more average or total credit to rate a post."
+msgstr "Ti serve un credito medio o totale maggiore per poter votare un post."
+
+#: html/user/forum_rate.php:64
+msgid "You have already rated this post."
+msgstr "Hai già votato questo post."
+
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
+msgid "Return to thread"
+msgstr "Ritorna al thread"
+
+#: html/user/forum_rate.php:74
+msgid "Input Recorded"
+msgstr "Input Registrato"
+
+#: html/user/forum_rate.php:75
+msgid "Your input has been recorded. Thanks for your help."
+msgstr "Il tuo input è stato registrato. Grazie per il tuo aiuto."
+
+#: html/user/forum_rate.php:77
+msgid "Vote Registered"
+msgstr "Il voto è stato registrato"
+
+#: html/user/forum_rate.php:78
+msgid "Your rating has been recorded. Thanks for your input."
+msgstr "Il tuo voto è stato registrato. Grazie per il tuo contributo."
+
+#: html/user/forum_rate.php:82
+msgid "Vote Submission Problem"
+msgstr "Problema nell'invio del voto"
+
+#: html/user/forum_reply.php:76
+msgid ""
+"Your post has been flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Il tuo post è stato contrassegnato come spam dal sistema anti-spam Akismet. Per favore modifica il testo e riprova."
+
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
+msgid "Post to thread"
+msgstr "Rispondi a questo argomento"
+
+#: html/user/forum_reply.php:143
+msgid "Message:"
+msgstr "Messaggio:"
+
+#: html/user/forum_reply.php:146
+msgid "reply to %1Message ID%2:"
+msgstr "rispondi a %1Message ID%2:"
+
+#: html/user/forum_reply.php:172
+msgid "Post reply"
+msgstr "Rispondi al post"
+
+#: html/user/forum_reply.php:175
+msgid "Add my signature to this reply"
+msgstr "Aggiungi la mia firma a questa risposta"
+
+#: html/user/forum_report_post.php:48
+msgid "You need more average or total credit to report a post."
+msgstr "Ti serve più credito medio o totale per segnalare un post."
+
+#: html/user/forum_report_post.php:70
+msgid "Report Registered"
+msgstr "Segnalazione registrata"
+
+#: html/user/forum_report_post.php:71
+msgid "Your report has been recorded. Thanks for your input."
+msgstr "La tua segnalazione è stata registrata. Grazie per il tuo aiuto."
+
+#: html/user/forum_report_post.php:72
+msgid ""
+"A moderator will now look at your report and decide what will happen - this "
+"may take a little while, so please be patient"
+msgstr "Un moderatore darà ora un'occhiata alla tua segnalazione e deciderà il da farsi - potrebbe volerci un po' di tempo, quindi sii paziente"
+
+#: html/user/forum_report_post.php:76
+msgid "Report a forum post"
+msgstr "Segnala un post del forum"
+
+#: html/user/forum_report_post.php:78
+msgid ""
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
+"can find the rating system at the bottom of the post."
+msgstr "Prima di segnalare questo messaggio, considera invece l'uso del sistema di voto +/-. Se abbastanza utenti giudicano un post negativamente, esso sarà alla fine nascosto.<br />Puoi trovare il sistema di voto in fondo al messaggio."
+
+#: html/user/forum_report_post.php:90
+msgid "Report post"
+msgstr "Segnala post"
+
+#: html/user/forum_report_post.php:93
+msgid ""
+"Why do you find the post offensive: %1Please include enough information so "
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Motivo per cui ritieni che il post sia offensivo: %1Per favore includi sufficienti informazioni affinché una persona che non ha abbia letto la discussione possa essere in grado di individuare rapidamente il problema.%2"
+
+#: html/user/forum_report_post.php:104
+msgid "Report not registered"
+msgstr "Segnalazione non registrata"
+
+#: html/user/forum_report_post.php:105
+msgid "Your report could not be recorded. Please wait a while and try again."
+msgstr "Non è stato possibile registrare la tua segnalazione. Per favore aspetta un po' e riprova."
+
+#: html/user/forum_report_post.php:106
+msgid ""
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Se questo non è un errore temporaneo, per favore segnalalo agli sviluppatori del progetto."
+
+#: html/user/forum_rss.php:38
+msgid "%1 RSS feed"
+msgstr "%1 feed RSS"
+
+#: html/user/forum_rss.php:39
+msgid "This message board is available as an RSS feed."
+msgstr "Puoi ricevere le news con un feed RSS."
+
+#: html/user/forum_rss.php:41
+msgid "Options:"
+msgstr "Opzioni:"
+
+#: html/user/forum_rss.php:45
+msgid "Include only posts by user ID %1 (default: all users)."
+msgstr "Includi solamente i messaggi dell'utente con ID %1 (predefinito: tutti gli utenti)."
+
+#: html/user/forum_rss.php:47
+msgid "Include only posts from the last %1 days (default: 30)."
+msgstr "Includi solamente i messaggi degli ultimi %1 giorni (predefinito: 30)."
+
+#: html/user/forum_rss.php:49
+msgid "Threads only: %1 (Include only the first post of every thread)"
+msgstr "Solo threads: %1 (include solamente i primi messaggi di ogni discussione)"
+
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Risultato della ricerca nel forum"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Nessun titolo corrisponde alla tua ricerca:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Messaggi corrispondenti alla tua ricerca:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Spiacente, impossibile trovare qualcosa che corrispondesse alla tua richiesta. Puoi provare ad ampliare la tua ricerca usando meno parole (o parole meno specifiche)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Puoi anche %1tentare la stessa ricerca su Google.%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Eseguire un'altra ricerca"
+
+#: html/user/forum_search.php:29
+msgid "Forum search"
+msgstr "Cerca nel forum"
+
+#: html/user/forum_search.php:33
+msgid "Search query"
+msgstr "Tipo ricerca"
+
+#: html/user/forum_search.php:34
+msgid "Search for keywords:"
+msgstr "Cerca per parole chiave:"
+
+#: html/user/forum_search.php:35
+msgid "Posts that contain all the specified words will be displayed"
+msgstr "Saranno mostrati i messaggi contenenti tutte le parole specificate"
+
+#: html/user/forum_search.php:37
+msgid "For example: \"screensaver freeze\""
+msgstr "Per esempio:\"screensaver bloccato\""
+
+#: html/user/forum_search.php:38
+msgid "Search for author ID:"
+msgstr "Cerca per ID autore:"
+
+#: html/user/forum_search.php:39
+msgid "Only posts by this author will be displayed"
+msgstr "Saranno mostrati solo i messaggi di questo autore"
+
+#: html/user/forum_search.php:41
+msgid "For example: \"43214\""
+msgstr "Per esempio:\"43214\""
+
+#: html/user/forum_search.php:43
+msgid "Search options"
+msgstr "Opzioni di ricerca"
+
+#: html/user/forum_search.php:44
+msgid "Search limits"
+msgstr "Limita ricerca"
+
+#: html/user/forum_search.php:45
+msgid "Search at most this many days back in time"
+msgstr "Ricerca al massimo questo numero di giorni precedenti"
+
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
+msgid "%1 months"
+msgstr "%1 mesi"
+
+#: html/user/forum_search.php:54
+msgid "1 year"
+msgstr "1 anno"
+
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Forum"
+
+#: html/user/forum_search.php:75
+msgid "Only display posts from this forum"
+msgstr "Mostra solamente messaggi da questo forum"
+
+#: html/user/forum_search.php:86
+msgid "Sort by"
+msgstr "Ordina per"
+
+#: html/user/forum_search.php:90
+msgid "Start the search"
+msgstr "Inizia la ricerca"
+
+#: html/user/forum_subscribe.php:48
+msgid "Subscription successful"
+msgstr "Sottoscrizione eseguita con successo"
+
+#: html/user/forum_subscribe.php:51
+msgid ""
+"You are now subscribed to %1. You will be notified whenever there is a new "
+"post."
+msgstr "Sei ora iscritto a %1. Ti verrà notificato quando ci sarà un nuovo messaggio."
+
+#: html/user/forum_subscribe.php:53
+msgid "Subscription failed"
+msgstr "Sottoscrizione fallita"
+
+#: html/user/forum_subscribe.php:54
+msgid ""
+"We are currently unable to subscribe you to %1. Please try again later.."
+msgstr "Non è stato momentaneamente possibile sottoscriverti a %1. Per favore riprova più tardi."
+
+#: html/user/forum_subscribe.php:63
+msgid "Unsubscription successful"
+msgstr "Rimozione sottoscrizione eseguita con successo"
+
+#: html/user/forum_subscribe.php:66
+msgid ""
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Non sei più iscritto a %1. Non riceverai più notifiche per questo thread."
+
+#: html/user/forum_subscribe.php:68
+msgid "Unsubscription failed"
+msgstr "Rimozione sottoscrizione fallita"
+
+#: html/user/forum_subscribe.php:69
+msgid ""
+"We are currently unable to unsubscribe you from %1. Please try again later.."
+msgstr "Non è momentaneamente possibile rimuovere la sottoscrizione da %1. Per favore riprova più tardi."
+
+#: html/user/forum_subscribe.php:76
+msgid "Unknown subscription action"
+msgstr "Azione di sottoscrizione sconosciuta"
+
+#: html/user/forum_thread.php:66
+msgid "This forum is not visible to you."
+msgstr "Non ti è concesso vedere questo forum."
+
+#: html/user/forum_thread.php:74
+msgid "This thread has been hidden by moderators."
+msgstr "Questo thread è stato nascosto dai moderatori."
+
+#: html/user/forum_thread.php:129
+msgid "My question was answered"
+msgstr "È stata data risposta alla mia domanda"
+
+#: html/user/forum_thread.php:130
+msgid "Click here if your question has been adequately answered"
+msgstr "Se è stata data un'adeguata risposta alla tua domanda, sei pregato di premere qui."
+
+#: html/user/forum_thread.php:138
+msgid "I've also got this question"
+msgstr "Ho anche questa domanda da porre"
+
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
+msgid "Add a new message to this thread"
+msgstr "Aggiungi un nuovo messaggio a questo argomento"
+
+#: html/user/forum_thread.php:175
+msgid "Unsubscribe"
+msgstr "Cancella l'iscrizione"
+
+#: html/user/forum_thread.php:176
+msgid "You are subscribed to this thread.  Click here to unsubscribe."
+msgstr "Sei iscritto a questo argomento.  Clicca qui per cancellare l'iscrizione."
+
+#: html/user/forum_thread.php:182
+msgid "Subscribe"
+msgstr "Iscriviti"
+
+#: html/user/forum_thread.php:183
+msgid "Click to get email when there are new posts in this thread"
+msgstr "Clicca per ricevere una email quando ci sono nuovi messaggi su questo argomento"
+
+#: html/user/forum_thread.php:194
+msgid "Unhide this thread"
+msgstr "Rendi visibile questo argomento"
+
+#: html/user/forum_thread.php:200
+msgid "Hide this thread"
+msgstr "Nascondi questo argomento"
+
+#: html/user/forum_thread.php:206
+msgid "Make unsticky"
+msgstr "Non evidenziare"
+
+#: html/user/forum_thread.php:207
+msgid "Make this thread not sticky"
+msgstr "Fai in modo che questo thread non sia in evidenza"
+
+#: html/user/forum_thread.php:212
+msgid "Make sticky"
+msgstr "Evidenzia"
+
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Metti questo thread sempre al primo posto nel forum"
+
+#: html/user/forum_thread.php:219
+msgid "Unlock"
+msgstr "Sblocca"
+
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Permetti nuovi post in questo thread"
+
+#: html/user/forum_thread.php:225
+msgid "Lock"
+msgstr "Blocca"
+
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Non permettere nuovi post in questo thread"
+
+#: html/user/forum_thread.php:233
+msgid "Move this thread to a different forum"
+msgstr "Sposta questo argomento in un altro forum"
+
+#: html/user/forum_thread.php:238
+msgid "Edit title"
+msgstr "Modifica il titolo"
+
+#: html/user/forum_thread.php:239
+msgid "Edit thread title"
+msgstr "Modifica il titolo dell'argomento"
+
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Cancella thread permanentemente"
+
+#: html/user/forum_thread.php:257
+msgid "Export as Notice"
+msgstr "Esporta come Notizia"
+
+#: html/user/forum_thread.php:263
+msgid "Don't export"
+msgstr "Non esportare"
+
+#: html/user/forum_thread.php:264
+msgid "Don't export this news item as a Notice"
+msgstr "Non esportare questa notizia come Notizia"
+
+#: html/user/forum_thread.php:277
+msgid "Sort"
+msgstr "Ordina"
+
+#. --------------
+#: html/user/forum_thread_status.php:54
+msgid "Thread status updated"
+msgstr "Stato del thread aggiornato"
+
+#: html/user/forum_thread_status.php:55
+msgid "The status has been updated."
+msgstr "Lo stato è stato aggiornato."
+
+#: html/user/forum_user_posts.php:75
+msgid "Posts by %1"
+msgstr "Messaggi di %1"
+
+#: html/user/friend.php:35
+msgid "Already friends"
+msgstr "Siete già amici"
+
+#: html/user/friend.php:41
+msgid "You requested friendship with %1 on %2."
+msgstr "Hai fatto richiesta di amicizia con %1 su %2."
+
+#: html/user/friend.php:43
+msgid "This request is still pending confirmation."
+msgstr "Questa richiesta è ancora in attesa di accettazione."
+
+#: html/user/friend.php:54
+msgid "%1 is not accepting friendship requests from you"
+msgstr "%1 non accetta la tua richiesta di amicizia"
+
+#: html/user/friend.php:63
+msgid "You can't be friends with yourself"
+msgstr "Non puoi essere amico di te stesso"
+
+#: html/user/friend.php:71
+msgid "Add friend"
+msgstr "Aggiungi agli amici"
+
+#: html/user/friend.php:76
+msgid ""
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Hai richiesto di aggiungere %1 agli amici. Notificheremo la cosa a %1 e gli/le chiederemo di confermare che siete amici."
+
+#: html/user/friend.php:79
+msgid "Add an optional message here:"
+msgstr "Aggiungi un messaggio (facoltativo):"
+
+#: html/user/friend.php:117
+msgid "Friend request sent"
+msgstr "Richiesta di amicizia inviata"
+
+#: html/user/friend.php:118
+msgid "We have notified %1 of your request."
+msgstr "Abbiamo notificato a %1 la tua richiesta."
+
+#: html/user/friend.php:128
+msgid "Please log in as %1"
+msgstr "Per favore esegui il log in come %1"
+
+#: html/user/friend.php:129
+msgid "You must log in as %1 to view this friend request"
+msgstr "Devi fare il login come %1 per vedere questa richiesta di amicizia"
+
+#: html/user/friend.php:140
+msgid "Friend request"
+msgstr "Richiesta di amicizia"
+
+#: html/user/friend.php:143
+msgid "%1 has requested friendship with you."
+msgstr "Hai ricevuto una richiesta di amicizia da %1."
+
+#: html/user/friend.php:145
+msgid "%1 says: %2"
+msgstr "%1 dice: %2"
+
+#: html/user/friend.php:148
+msgid "Accept friendship"
+msgstr "Accetto la richiesta di amicizia"
+
+#: html/user/friend.php:148
+msgid "Click accept if %1 is in fact a friend"
+msgstr "Clicca su Accetto se %1 è un tuo amico"
+
+#: html/user/friend.php:149
+msgid "Decline"
+msgstr "Rifiuto"
+
+#: html/user/friend.php:149
+msgid "Click decline if %1 is not a friend"
+msgstr "Clicca su Rifiuto se %1 non è un tuo amico"
+
+#: html/user/friend.php:188
+msgid "Friendship confirmed"
+msgstr "L'amicizia è stata accettata"
+
+#: html/user/friend.php:189
+msgid "Your friendship with %1 has been confirmed."
+msgstr "La tua amicizia con %1 è stata accettata."
+
+#: html/user/friend.php:207
+msgid "Friendship declined"
+msgstr "L'amicizia è stata rifiutata"
+
+#: html/user/friend.php:208
+msgid "You have declined friendship with %1"
+msgstr "Hai rifiutato l'amicizia con %1"
+
+#: html/user/friend.php:223
+msgid "Notification not found"
+msgstr "Notifica non trovata"
+
+#: html/user/friend.php:225
+msgid "Friend confirmed"
+msgstr "Conferma dell'amicizia"
+
+#: html/user/friend.php:226
+msgid "You are now friends with %1."
+msgstr "Tu ora sei amico/a di %1."
+
+#: html/user/friend.php:234
+msgid "Cancel friendship?"
+msgstr "Cancella l'amicizia"
+
+#: html/user/friend.php:236
+msgid "Are you sure you want to cancel your friendship with %1?"
+msgstr "Sei certo di voler cancellare la tua amicizia con %1?"
+
+#: html/user/friend.php:241
+msgid "Stay friends"
+msgstr "Rimani amico"
+
+#: html/user/friend.php:251
+msgid "Friendship cancelled"
+msgstr "L'amicizia è stata cancellata"
+
+#: html/user/friend.php:252
+msgid "Your friendship with %1 has been cancelled."
+msgstr "La tua amicizia con %1 è stata cancellata."
+
+#: html/user/get_passwd.php:27
+msgid ""
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Se conosci l'indirizzo e-mail dell'account, e puoi ricevere mail su di esso:"
+
+#: html/user/get_passwd.php:28
+msgid ""
+"Enter the email address below, and click OK. You will be sent email "
+"instructions for resetting your password."
+msgstr "Inserisci l'indirizzo e-mail qui sotto, quindi premi OK. Ti saranno inviate le istruzioni via mail per resettare la password."
+
+#: html/user/get_passwd.php:46
+msgid ""
+"2) If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "2) Se hai dimenticato l'indirizzo e-mail dell'account, oppure non puoi ricevere mail su di esso:"
+
+#: html/user/get_passwd.php:47
+msgid ""
+"If you have run BOINC under this account, you can still access it. Here's "
+"how:"
+msgstr "Se hai già utilizzato BOINC con questo account, puoi ancora accedere a lui. Ecco come:"
+
+#: html/user/get_passwd.php:50
+msgid ""
+"Go to the BOINC data directory on your computer (its location is written to "
+"the Event Log at startup)."
+msgstr "Vai nella directory dati di BOINC sul tuo computer (la sua locazione è scritta nel Log Eventi all'avvio)."
+
+#: html/user/get_passwd.php:51
+msgid "Find your account file for this project; it will be named <b>%1</b>."
+msgstr "Trova il file del tuo account per questo progetto; sarà chiamato <b>%1</b>."
+
+#: html/user/get_passwd.php:52
+msgid "Open the file in a text editor like Notepad. You'll see something like"
+msgstr "Apri il file in un editor di testo come Notepad. Vedrai qualcosa come"
+
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Selezione e Copia la stringa compresa tra %1 e %2 (%3 nell'esempio sopra)."
+
+#: html/user/get_passwd.php:64
+msgid "Paste the string into the field below, and click OK."
+msgstr "Incolla la stringa nel campo sotto, e premi OK."
+
+#: html/user/get_passwd.php:65
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Farai ora il login con il tuo account; aggiorna la e-mail e la password del tuo account."
+
+#: html/user/get_passwd.php:72
+msgid "Log in with authenticator"
+msgstr "Fai il login come autenticatore"
+
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Hai dimenticato le tue informazioni account?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
+msgid "No GPU tasks reported"
+msgstr "Nessun task GPU riportato"
+
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Migliori modelli GPU"
+
+#: html/user/gpu_list.php:207
+msgid ""
+"The following lists show the most productive GPU models on different "
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "La lista seguente visualizza i modelli GPU più performanti sulle diverse piattaforme. Le velocità relative, misurate dal tempo medio di esecuzione delle elaborazioni, sono visualizzati tra parentesi."
+
+#: html/user/home.php:42
+msgid "Welcome to %1"
+msgstr "Benvenuto in %1"
+
+#: html/user/home.php:43
+msgid "View and edit your account preferences using the links below."
+msgstr "Visualizza e modifica le tue preferenze dell'account usando i link sottostanti."
+
+#: html/user/home.php:46
+msgid "If you have not already done so, %1download BOINC client software%2."
+msgstr "Se non lo hai ancora fatto, %1scarica il client di BOINC%2."
+
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Il tuo account"
+
+#: html/user/host_app_versions.php:45
+msgid "anonymous platform"
+msgstr "piattaforma anonima"
+
+#: html/user/host_app_versions.php:62
+msgid "Missing platform"
+msgstr "Piattaforma mancante"
+
+#: html/user/host_app_versions.php:73
+msgid "Number of tasks completed"
+msgstr "Numero di lavori completati"
+
+#: html/user/host_app_versions.php:74
+msgid "Max tasks per day"
+msgstr "Massimo numero di lavori giornalieri"
+
+#: html/user/host_app_versions.php:75
+msgid "Number of tasks today"
+msgstr "Numero di lavori giornaliero"
+
+#: html/user/host_app_versions.php:76
+msgid "Consecutive valid tasks"
+msgstr "Lavori validi consecutivi"
+
+#: html/user/host_app_versions.php:80
+msgid "Average processing rate"
+msgstr "Velocità di processamento media"
+
+#: html/user/host_app_versions.php:90
+msgid "Application details for host %1"
+msgstr "Dettagli applicazione per l'host %1"
+
+#: html/user/host_delete.php:31
+msgid "We have no record of that computer."
+msgstr "Non ci sono record per questo computer."
+
+#: html/user/host_delete.php:38
+msgid ""
+"You can not delete our record of this computer because our database still "
+"contains work for it. You must wait a few days until the work for this "
+"computer has been deleted from the project database."
+msgstr "Non puoi cancellare il record di questo computer perché il nostro database contiene ancora WU per lui. Devi attendere qualche giorno fino a quando le WU per questo computer saranno state cancellate dal database del progetto."
+
+#: html/user/host_delete.php:40
+msgid "Delete record of computer"
+msgstr "Cancella record del computer"
+
+#: html/user/host_delete.php:41
+msgid "Record deleted."
+msgstr "Record cancellato."
+
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
+msgid "Return to list of your computers"
+msgstr "Ritorna alla lista dei tuoi computer"
+
+#: html/user/host_edit_action.php:39
+msgid "Merge computer records"
+msgstr "Unisci i record del computer"
+
+#: html/user/host_edit_form.php:35
+msgid "Merge computers"
+msgstr "Unisci i computer"
+
+#: html/user/host_edit_form.php:38
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "A volte BOINC assegna identità separate allo stesso computer per errore. Puoi correggere questo unendo le vecchie identità con le nuove"
+
+#: html/user/host_edit_form.php:56
+msgid "No hosts are eligible for merging with this one."
+msgstr "Nessun host è stato scelto per unirsi a questo."
+
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
+msgid "Show details"
+msgstr "Visualizza dettagli"
+
+#: html/user/host_edit_form.php:66
+msgid ""
+"Check the computers that are the same as %1 (created %2, computer ID %3):"
+msgstr "Controlla i computer che sono simili a %1 (creato %2, ID computer %3):"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
+msgid "name"
+msgstr "Nome"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
+msgid "created"
+msgstr "creata il"
+
+#: html/user/host_edit_form.php:70
+msgid "computer ID"
+msgstr "ID computer"
+
+#: html/user/host_edit_form.php:77
+msgid "no hostname"
+msgstr "nessun hostname"
+
+#: html/user/host_edit_form.php:109
+msgid "Merge hosts"
+msgstr "Unisci hosts"
+
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Computer appartenente a %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Computer nascosto"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Questo utente ha scelto di non mostrare le informazioni sui suoi computer."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "I tuoi computer"
+
+#: html/user/host_update_credit.php:27
+msgid "Updating computer credit"
+msgstr "Aggiornamento crediti del computer"
+
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Crediti degli host aggiornati"
+
+#: html/user/host_venue_action.php:41
+msgid "Host venue updated"
+msgstr "Luogo di accoglienza aggiornato"
+
+#: html/user/host_venue_action.php:43
+msgid "none"
+msgstr "nessuno"
+
+#: html/user/host_venue_action.php:46
+msgid "The venue of this host has been set to %1."
+msgstr "La luogo di questo host è stato impostato a %1."
+
+#: html/user/host_venue_action.php:48
+msgid ""
+"This change will take effect the next time the host communicates with this "
+"project."
+msgstr "Questa modifica avrà effetto la prossima volta che l'host comunicherà con questo progetto."
+
+#: html/user/host_venue_action.php:50
+msgid "Return to host page"
+msgstr "Ritorna alla pagina dell'host"
+
+#: html/user/html.php:23
+msgid "Allowed HTML tags"
+msgstr "Tag HTML permessi"
+
+#: html/user/html.php:25
+msgid "The following HTML tags are allowed in team descriptions:"
+msgstr "I tag HTML seguenti sono permessi nella descrizione del team:"
+
+#: html/user/html.php:27
+msgid "bold"
+msgstr "grassetto"
+
+#: html/user/html.php:28
+msgid "italics"
+msgstr "corsivo"
+
+#: html/user/html.php:29
+msgid "hyperlink"
+msgstr "hyperlink"
+
+#: html/user/html.php:30
+msgid "paragraph"
+msgstr "paragrafo"
+
+#: html/user/html.php:31
+msgid "break"
+msgstr "rompere"
+
+#: html/user/html.php:32
+msgid "preformatted"
+msgstr "preformattato"
+
+#: html/user/html.php:33
+msgid ""
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "immagine; l'altezza non può superare i 450 pixel. Per favore non mettere link ad immagini senza il permesso del sito web che le ospita."
+
+#: html/user/html.php:35
+msgid "You can also use ampersand notation for special characters."
+msgstr "È anche possibile utilizzare la notazione con la e commerciale per caratteri speciali."
+
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Regole e linee di condotta"
+
+#: html/user/info.php:35
+msgid "Run %1 only on authorized computers"
+msgstr "Avvia %1 solo su computer autorizzati"
+
+#: html/user/info.php:36
+msgid ""
+"Run %1 only on computers that you own, or for which you have obtained the "
+"owner's permission. Some companies and schools have policies that prohibit "
+"using their computers for projects such as %1."
+msgstr "Avvia %1 solo sui tuoi computer o su quelli per cui hai ottenuto il permesso dal proprietario. Alcune aziende e scuole proibiscono l'uso di progetti come %1 sui propri computer."
+
+#: html/user/info.php:38
+msgid "How %1 will use your computer"
+msgstr "Come %1 userà il tuo computer"
+
+#: html/user/info.php:39
+msgid ""
+"When you run %1 on your computer, it will use part of the computer's CPU "
+"power, disk space, and network bandwidth. You can control how much of your "
+"resources are used by %1, and when it uses them."
+msgstr "Quando lo farai girare sul tuo computer, %1 utilizzerà una parte della CPU, del disco fisso e della connessione internet. Puoi sempre tenere sotto controllo le risorse utilizzate da %1 e quando vengono usate."
+
+#: html/user/info.php:40
+msgid ""
+"The work done by your computer contributes to the goals of %1, as described "
+"on its web site. The application programs may change from time to time."
+msgstr "Il lavoro svolto dal tuo computer sarà un prezioso contributo per raggiungere gli obbiettivi di %1, come descritto sul sito web del progetto. Le applicazioni del programma possono variare di volta in volta."
+
+#: html/user/info.php:42
+msgid "Privacy policy"
+msgstr "Politiche sulla privacy"
+
+#: html/user/info.php:43
+msgid ""
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Il tuo account su %1 è identificato con il nome che hai scelto. Questo nome sarà mostrato sul sito web di %1 assieme ad un sommario del lavoro svolto dal tuo computer per %1. Se vuoi rimanere anonimo, puoi sempre scegliere un nome che nasconda la tua vera identità."
+
+#: html/user/info.php:44
+msgid ""
+"If you participate in %1, information about your computer (such as its "
+"processor type, amount of memory, etc.) will be recorded by %1 and used to "
+"decide what type of work to assign to your computer. This information will "
+"also be shown on %1's web site. Nothing that reveals your computer's "
+"location (e.g. its domain name or network address) will be shown."
+msgstr "Se partecipi a %1, le informazioni relative al tuo computer (tipo del processore, quantità di memoria, ecc...) saranno registrate da %1 e usate per decidere il tipo di lavoro da assegnare al tuo computer. Queste informazioni saranno inoltre mostrate sul sito web di %1. Non verrà mostrato niente che possa rivelare l'ubicazione del tuo computer (per esempio il nome del suo dominio o gli indirizzi di rete)."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Per partecipare a %1, devi fornire un indirizzo di posta elettronica per ricevere le email. Questo indirizzo non sarà mostrata sul sito web di %1 o condiviso con altre organizzazioni. %1 potrà inviarti periodicamente una email informativa; in ogni caso puoi sempre decidere di non partecipare più al progetto in qualsiasi momento."
+
+#: html/user/info.php:46
+msgid ""
+"Private messages sent on the %1 web site are visible only to the sender and "
+"recipient.  %1 does not examine or police the content of private messages.  "
+"If you receive unwanted private messages from another %1 user, you may add "
+"them to your %2message filter%3.  This will prevent you from seeing any "
+"public or private messages from that user."
+msgstr "I messaggi privati inviati sul sito web di %1 sono visibili solo al mittente e al ricevente.  %1 non controlla o censura il contenuto dei messaggi privati.  Se ricevi un messaggio privato non gradito da un altro utente di %1, puoi aggiungerlo al tuo %2filtro dei messaggi%3.  Questo ti evita di dover vedere altri messaggi publici o privati di quell'utente."
+
+#: html/user/info.php:47
+msgid ""
+"If you use our web site forums you must follow the %2posting guidelines%3.  "
+"Messages posted to the %1 forums are visible to everyone, including non-"
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Se usi i forum del nostro sito devi seguire le %2linee guida del forum%3.  I messaggi inseriti nei forum di %1 sono visibili a tutti, inclusi gli ospiti non registrati.  Scrivendo sul forum tu fornisci una licenza irrevocabile a chiunque di guardare e copiare i tuoi messaggi."
+
+#: html/user/info.php:48
+msgid "Is it safe to run %1?"
+msgstr "E' sicuro elaborare su %1?"
+
+#: html/user/info.php:49
+msgid ""
+"Any time you download a program through the Internet you are taking a "
+"chance: the program might have dangerous errors, or the download server "
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Ogni volta che scarichi un programma attraverso Internet, puoi incontrare dei rischi: il programma potrebbe provocare degli errori pericolosi, o il server da cui stai scaricando potrebbe non essere sicuro. %1 si sforza continuamente di diminuire questi rischi. Testiamo molto accuratamente tutte le nostre applicazioni. I nostri server sono tutti protetti da firewall configurati per garantire la massima sicurezza. Per accertarci dell'integrità dei download, tutti i file eseguibili  [...]
+
+#: html/user/info.php:50
+msgid ""
+"The applications run by %1 may cause some computers to overheat. If this "
+"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
+msgstr "Le applicazioni eseguite da %1 possono provocare surriscaldamento. Se ciò dovesse accadere, basta solo fermare %1 o usare un %2programma di utilità%3 che limiti l'uso della CPU."
+
+#: html/user/info.php:51
+msgid ""
+"%1 was developed by %2. BOINC was developed at the University of California."
+msgstr "%1 è sviluppato da %2. BOINC è sviluppato dall'Università della California."
+
+#: html/user/info.php:53
+msgid "Liability"
+msgstr "Responsabilità"
+
+#: html/user/info.php:54
+msgid ""
+"%1 and %2 assume no liability for damage to your computer, loss of data, or "
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 e %2 non si assumono alcuna responsabilità per eventuali danni causati al tuo computer, perdita di dati o altri eventi o circostanze che possono accadere come conseguenza della partecipazione a %1."
+
+#: html/user/info.php:56
+msgid "Other BOINC projects"
+msgstr "Altri progetti BOINC"
+
+#: html/user/info.php:57
+msgid ""
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
+"will do useful work even when %1 has no work available for it."
+msgstr "Altri progetti che usano la stessa piattaforma, BOINC, come %1. Prendi in considerazione la tua partecipazione a uno, o più, di questi progetti; così facendo, il tuo computer svolgerà un utilissimo lavoro anche quando %1 non ha WU disponibili."
+
+#: html/user/info.php:58
+msgid ""
+"These other projects are not associated with %1, and we cannot vouch for "
+"their security practices or the nature of their research. Join them at your "
+"own risk."
+msgstr "Questi altri progetti non sono associati con %1, quindi non possiamo garantirne la sicurezza o la natura delle loro ricerche. L'adesione a tali progetti è sotto la vostra sola responsabilità."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Sono uno nuovo"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Sono già un utente BOINC"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Leggi le nostre %1Regole e linee di condotta%2."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Scarica BOINC per desktop."
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Ricezione"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Per l'uso nei dispositivi Android, ti consigliamo di scaricare BOINC da Google Play Store oppure da Amazon App Store."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Lancia l'installer."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Scegli %1 dalla lista, o immetti %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Installate BOINC su questo dispositivo se non è già presente."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Seleziona Strumenti / Connessione ad un progetto. Quindi scegli %1 dalla lista, o scrivi %2 nella casella di testo"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Se utilizzate la versione a linea di comando, prima %1Create un account%2, quindi lanciare %3boinccmd --project_attach%4 per connettere il progetto."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Entra in %1"
+
+#: html/user/language_select.php:46
+msgid "Language selection"
+msgstr "Selezione lingua"
+
+#: html/user/language_select.php:57
+msgid ""
+"This web site is available in several languages. The currently selected "
+"language is %1."
+msgstr "Questo sito web è disponibile in molte lingue. La lingua correntemente selezionata è %1."
+
+#: html/user/language_select.php:62
+msgid ""
+"Normally the choice of language is determined by your browser's language "
+"setting, which is: %1.  You can change this setting using:"
+msgstr "Normalmente la scelta della lingua è determinata dalle impostazioni di lingua del browser, che adesso è: %1. Puoi cambiare questa impostazione usando:"
+
+#: html/user/language_select.php:67
+msgid "Firefox: Tools/Options/General"
+msgstr "Firefox: Strumenti/Opzioni/Generale"
+
+#: html/user/language_select.php:69
+msgid "Microsoft IE: Tools/Internet Options/Languages"
+msgstr "Microsoft IE: Strumenti/Opzioni Internet/Lingue"
+
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Oppure seleziona una lingua da questa menu:"
+
+#: html/user/language_select.php:85
+msgid ""
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Le traduzioni sono realizzate da volontari. Se la tua lingua madre non è ancora stata tradotta oppure la sua traduzione è incompleta o imprecisa, %1puoi aiutarci a tradurla%2."
+
+#: html/user/login_form.php:59
+msgid "or %1create an account%2."
+msgstr "oppure %1crea un account%2."
+
+#: html/user/merge_by_name.php:31
+msgid "Processing %1"
+msgstr "Elaborazione %1"
+
+#: html/user/merge_by_name.php:43
+msgid "Merged %1 into %2"
+msgstr "Unito %1 con %2"
+
+#: html/user/merge_by_name.php:72
+msgid "Return to the list of your computers"
+msgstr "Ritorna alla lista dei tuoi computer"
+
+#: html/user/merge_by_name.php:76
+msgid ""
+"This operation merges computers based on their domain name.\n"
+"        <p>\n"
+"        For each domain name, it will merge all older computers\n"
+"        having that name with the newest computer having that name.\n"
+"        Incompatible computers will not be merged.\n"
+"        <p>"
+msgstr "Questa operazione unisce i computer in base al loro nome di dominio.\n        <p>\n        Per ogni nome di dominio, unirà tutti i vecchi computer\n        con quel nome con quelli nuovi aventi lo stesso nome.\n        Computer non compatibili non saranno uniti.\n        <p>"
+
+#: html/user/merge_by_name.php:82
+msgid "Go ahead and do this"
+msgstr "Vai avanti e fai questo"
+
+#: html/user/merge_by_name.php:83
+msgid "Return to the list of computers"
+msgstr "Ritorna alla lista dei computer"
+
+#: html/user/moderation.php:26
+msgid ""
+"\n"
+"To maximize discussion and flow of information,\n"
+"our message boards are moderated.\n"
+"Message board postings are subject to the following posting rules:\n"
+msgstr "\nPer massimizzare le discussioni e il flusso di informazioni,\ni nostri forum di messaggi sono moderati.\nI post nei forum sono soggetti alle seguenti regole:\n"
+
+#: html/user/moderation.php:30
+msgid ""
+"\n"
+"<p>\n"
+"Moderators may delete posts that violate any of these rules.\n"
+"The authors of deleted posts will be notified via email.\n"
+"Gross offenders may have their ability to post messages temporarily revoked\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
+"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
+"IP addresses of other participants, excessive thread creation to spam\n"
+"the forums, etc.), while not listed in the formal rules, may still\n"
+"lead to similar penalties.\n"
+"<p>\n"
+"If you think a post violates any of the posting rules,\n"
+"click the red X on the post and fill out the form;\n"
+"moderators will be notified of your complaint.\n"
+"Please use this button only for clear violations - not\n"
+"personal disputes.\n"
+"<p>\n"
+"We try to be as fair as we can when moderating,\n"
+"but in a large community of users, with many different viewpoints,\n"
+"there will always be some people that will not be happy\n"
+"with our moderation decisions.\n"
+"While we regret that this happens,\n"
+"please realize that we cannot suit all of the people all of the time\n"
+"and have to make decisions based on our resources and\n"
+"what is best for the forum overall.\n"
+"Please don't discuss our moderation policy on the forums. We aren't\n"
+"a social engineering project nor are we in the business of creating\n"
+"a perfectly fair system. So such discussions tend to be counterproductive\n"
+"and potentially incendiary. If you have a legitimate claim,\n"
+"send email to the address below.\n"
+"<p>\n"
+"This moderation policy is set by the %1 project.\n"
+"If you have comments about the policy, email %2.\n"
+"\n"
+msgstr "\n<p>\nI moderatori possono cancellare post che violano una delle regole seguenti.\nGli autori dei post cancellati riceveranno una notifica via e-mail.\nChi offende potrebbe avere la sua capacità di scrivere revocata temporaneamente\n(per prevenire abusi solo gli amministratori dei progetti possono farlo).\nTutti gli altri tipi di  comportamenti negativi (\"bugging\" post per scoprire\nl'indirizzo IP degli altri partecipanti, creazione di thread eccessiva per spammare\ni forum, e [...]
+
+#: html/user/pending.php:66
+msgid "Pending credit"
+msgstr "Crediti non ancora assegnati"
+
+#: html/user/pending.php:68
+msgid "Result ID"
+msgstr "ID risultato"
+
+#: html/user/pending.php:68
+msgid "Workunit ID"
+msgstr "ID elaborazione"
+
+#: html/user/pending.php:68
+msgid "Host ID"
+msgstr "ID host"
+
+#: html/user/pending.php:68
+msgid "Claimed credit"
+msgstr "Credito garantito"
+
+#: html/user/pending.php:81
+msgid "Pending credit: %1"
+msgstr "Crediti non attesa assegnati: %1"
+
+#: html/user/pm.php:29
+msgid "Block messages from this user"
+msgstr "Blocca i messaggi da questo utente"
+
+#: html/user/pm.php:29
+msgid "Block user"
+msgstr "Blocca utente"
+
+#: html/user/pm.php:61
+msgid "Your message has been sent."
+msgstr "Il tuo messaggio è stato inviato."
+
+#: html/user/pm.php:71
+msgid "You have no private messages."
+msgstr "Non hai messaggi privati."
+
+#: html/user/pm.php:79
+msgid "Sender and date"
+msgstr "Mittente e data"
+
+#: html/user/pm.php:99
+msgid "Reply to this message"
+msgstr "Rispondi a questo messaggio"
+
+#: html/user/pm.php:100
+msgid "Delete this message"
+msgstr "Cancella questo messaggio"
+
+#: html/user/pm.php:105
+msgid "Select all"
+msgstr "Seleziona tutto"
+
+#: html/user/pm.php:107
+msgid "Unselect all"
+msgstr "Deseleziona tutto"
+
+#: html/user/pm.php:110
+msgid "Delete selected messages"
+msgstr "Cancella i messaggi selezionati"
+
+#: html/user/pm.php:134
+msgid "Sender"
+msgstr "Mittente"
+
+#: html/user/pm.php:137
+msgid "Date"
+msgstr "Data"
+
+#: html/user/pm.php:190 html/user/pm.php:220
+msgid "You need to fill all fields to send a private message"
+msgstr "Devi riempire tutti i campi per poter inviare un messaggio privato"
+
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Messaggio inviato"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Il tuo messaggio è stato inviato a %1 componenti del team."
+
+#: html/user/pm.php:224
+msgid ""
+"Your message was flagged as spam\n"
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Il tuo messaggio è stato segnalato come spam\ndal sistema anti-spam Akismet.\nPer favore modifica il testo e riprova ad inviarlo."
+
+#: html/user/pm.php:241
+msgid "Could not find user with id %1"
+msgstr "Non è stato trovato alcun utente con l'id %1"
+
+#: html/user/pm.php:246
+msgid "Could not find user with username %1"
+msgstr "Non è stato trovato alcun utente chiamato %1"
+
+#. Non-unique username
+#: html/user/pm.php:248
+msgid "%1 is not a unique username; you will have to use user ID"
+msgstr "%1 è un nome che hanno più utenti, devi usare l'ID dell'utente"
+
+#: html/user/pm.php:254
+msgid "User %1 (ID: %2) is not accepting private messages from you."
+msgstr "L'utente %1 (ID: %2) non accetta messaggi privati da te."
+
+#: html/user/pm.php:276 html/user/view_profile.php:28
+msgid "No such user"
+msgstr "Nessun utente"
+
+#: html/user/pm.php:278
+msgid "Really block %1?"
+msgstr "Vuoi bloccare %1?"
+
+#: html/user/pm.php:279
+msgid ""
+"Are you really sure you want to block user %1 from sending you private "
+"messages?"
+msgstr "Sei veramente sicuro di voler bloccare l'utente %1 dal mandarti messaggi privati?"
+
+#: html/user/pm.php:280
+msgid "Please note that you can only block a limited amount of users."
+msgstr "Ricordati che puoi bloccare solamente un numero limitato di utenti."
+
+#: html/user/pm.php:281
+msgid ""
+"Once the user has been blocked you can unblock it using forum preferences "
+"page."
+msgstr "Una volta bloccato un utente puoi sempre sbloccarlo tramite la pagina delle preferenze sul forum."
+
+#: html/user/pm.php:288
+msgid "No, cancel"
+msgstr "No, annulla"
+
+#: html/user/pm.php:297 html/user/team_admins.php:101
+msgid "no such user"
+msgstr "utente non trovato"
+
+#: html/user/pm.php:300
+msgid "User %1 blocked"
+msgstr "Utente %1 bloccato"
+
+#: html/user/pm.php:302
+msgid "User %1 has been blocked from sending you private messages."
+msgstr "Ora l'utente %1 non può più inviarti messaggi privati."
+
+#: html/user/pm.php:303
+msgid "To unblock, visit %1message board preferences%2"
+msgstr "Per sboccare un utente, visita la pagina %1preferenze del forum%2"
+
+#: html/user/pm.php:365
+msgid "Unknown action"
+msgstr "Azione sconosciuta"
+
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 per %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Ritorna alle preferenze"
+
+#: html/user/prefs.php:33
+msgid ""
+"Your preferences have been updated, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Le tue preferenze sono state aggiornate e\navranno effetto quando il tuo computer comunicherà con %1\noppure quando lancerai  il comando %2Aggiorna%3 dal BOINC manager."
+
+#: html/user/prefs.php:42
+msgid ""
+"Your preferences have been reset to the defaults, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Le tue preferenze sono state resettate ai valori di default, e\n          avranno effetto quando il tuo computer comunicherà con %1\n          oppure cliccherai sul comando %2 Aggiorna %3 di BOINC Manager"
+
+#: html/user/prefs_remove.php:46
+msgid "Confirm delete preferences"
+msgstr "Conferma la cancellazione delle preferenze"
+
+#: html/user/prefs_remove.php:49
+msgid "Are you sure you want to delete your separate %1 preferences for %2?"
+msgstr "Sei sicuro di voler cancellare le tue preferenze separate %1 per %2?"
+
+#: html/user/prefs_remove.php:53
+msgid "Remove preferences"
+msgstr "Rimuovi preferenze"
+
+#: html/user/prefs_remove.php:55
+msgid "Cancel"
+msgstr "Annulla"
+
+#: html/user/profile_menu.php:37
+msgid ""
+"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
+"community."
+msgstr "I %1profili%2 permettono agli utenti di condividere le proprie esperienze con la comunità di %3."
+
+#: html/user/profile_menu.php:38
+msgid ""
+"Explore the diversity of your fellow volunteers, and contribute your own "
+"views for others to enjoy."
+msgstr "Guarda la diversità dei volontari tuoi compagni e contribuisci con le tue opinioni. "
+
+#: html/user/profile_menu.php:39
+msgid ""
+"If you haven't already, you can %1create your own user profile%2 for others "
+"to see!"
+msgstr "Se non l'hai ancora fatto, puoi %1creare un tuo profilo%2 da far vedere agli altri!"
+
+#: html/user/profile_menu.php:44
+msgid "User of the Day"
+msgstr "Utente del giorno"
+
+#: html/user/profile_menu.php:59
+msgid "User Profile Explorer"
+msgstr "Guarda i profili degli utenti"
+
+#: html/user/profile_menu.php:62
+msgid "View the %1User Picture Gallery%2."
+msgstr "Guarda la %1Galleria delle immagini degli utenti%2."
+
+#: html/user/profile_menu.php:63
+msgid "Browse profiles %1by country%2."
+msgstr "Visualizza i profili %1per nazionalità%2."
+
+#: html/user/profile_menu.php:64
+msgid ""
+"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
+"without pictures%2."
+msgstr "Visualizza i profili %1casualmente%2, %3casualmente con immagine%2 o %4casualmente senza immagine%2."
+
+#: html/user/profile_menu.php:68
+msgid "Alphabetical profile listings:"
+msgstr "Profili in ordine alfabetico:"
+
+#: html/user/profile_menu.php:74
+msgid "Search profile text"
+msgstr "Ricerca profilo mediante testo"
+
+#: html/user/profile_menu.php:100
+msgid "No profiles"
+msgstr "Nessun profilo"
+
+#: html/user/profile_menu.php:101
+msgid "No profiles matched your query."
+msgstr "Nessun profilo corrisponde ai tuoi criteri di ricerca."
+
+#: html/user/profile_rate.php:31
+msgid "Invalid vote type:"
+msgstr "Tipo di voto non valido:"
+
+#: html/user/profile_rate.php:36
+msgid "Vote Recorded"
+msgstr "Il voto è stato registrato"
+
+#: html/user/profile_rate.php:40
+msgid "Thank you"
+msgstr "Grazie"
+
+#: html/user/profile_rate.php:43
+msgid "Your recommendation has been recorded."
+msgstr "La tua raccomandazione è stata registrata."
+
+#: html/user/profile_rate.php:45
+msgid "Your vote to reject this profile has been recorded."
+msgstr "Il tuo voto per deferire questo profilo è stato registrato."
+
+#: html/user/profile_rate.php:48
+msgid "Return to profile."
+msgstr "Ritorna al profilo."
+
+#: html/user/profile_search_action.php:38
+msgid "Profiles containing '%1'"
+msgstr "Profili contenenti '%1'"
+
+#: html/user/profile_search_action.php:42
+msgid "User name"
+msgstr "Nome utente"
+
+#: html/user/profile_search_action.php:43
+msgid "Joined project"
+msgstr "Entrato nel progetto"
+
+#: html/user/profile_search_action.php:46
+msgid "Recent credit"
+msgstr "Crediti recenti"
+
+#: html/user/profile_search_action.php:56
+msgid "No profiles found containing '%1'"
+msgstr "Nessun profilo contenente '%1' trovato"
+
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Nessuna elaborazione trovata:"
+
+#: html/user/results.php:29
+msgid "This feature is turned off temporarily"
+msgstr "Questa funzione è stata temporaneamente sospesa"
+
+#: html/user/results.php:56
+msgid "No computer with ID %1 found"
+msgstr "Non è stato trovato nessun computer con l'ID %1"
+
+#: html/user/results.php:63
+msgid "No access"
+msgstr "Accesso negato"
+
+#: html/user/results.php:69
+msgid "Missing user ID or host ID"
+msgstr "Manca l'ID dell'utente o l'ID del computer"
+
+#: html/user/results.php:105
+msgid "No tasks to display"
+msgstr "Nessun lavoro da visualizzare"
+
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 è temporaneamente fuori servizio per manutenzione."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "Cos'è %1?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "News"
+
+#: html/user/server_status.php:57
+msgid "Not Running"
+msgstr "Non in esecuzione"
+
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "In elaborazione"
+
+#: html/user/server_status.php:65
+msgid "Disabled"
+msgstr "Disabilitato"
+
+#: html/user/server_status.php:103
+msgid "Project status"
+msgstr "Stato del progetto"
+
+#: html/user/server_status.php:112
+msgid "Program"
+msgstr "Programma"
+
+#: html/user/server_status.php:112
+msgid "Host"
+msgstr "Computer"
+
+#: html/user/server_status.php:135
+msgid "Computing status"
+msgstr "Stato di elaborazione"
+
+#: html/user/server_status.php:146
+msgid "Users"
+msgstr "Utenti"
+
+#: html/user/server_status.php:161
+msgid "Tasks by application"
+msgstr "Attività dall'applicazione"
+
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Tempo di esecuzione delle ultime 100 elaborazioni in ore: medio, minimo, massimo"
+
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Utenti nelle ultime 24 ore"
+
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Versione schema Database:"
+
+#: html/user/show_host_detail.php:40
+msgid "Computer %1"
+msgstr "Computer %1"
+
+#: html/user/stats.php:21
+msgid "Statistics and leaderboards"
+msgstr "Statistiche e classifiche"
+
+#: html/user/stats.php:30
+msgid "Statistics for %1"
+msgstr "Statistiche di %1"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "I migliori utenti"
+
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "I migliori team"
+
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "I migliori computer"
+
+#: html/user/stats.php:53
+msgid ""
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Altre dettagliate statistiche su %1 e altri progetti basati su BOINC sono disponibili su diversi siti web:"
+
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Puoi anche ottenere le tue statistiche in forma di immagine (\"firma\"):"
+
+#: html/user/stats.php:59
+msgid ""
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Inoltre puoi vedere le tue statistiche individuali di tutti i progetti BOINC su diversi siti; guarda la %1pagina del tuo account%2."
+
+#: html/user/team_admins.php:36
+msgid "Remove Team Admin status from this member"
+msgstr "Rimuovi lo stato di Amministratore del Team per questo membro"
+
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
+msgid "Add or remove Team Admins"
+msgstr "Aggiungi o rimuovi Admin del team"
+
+#: html/user/team_admins.php:43
+msgid "You can select team members as 'Team Admins'. Team Admins can:"
+msgstr "Puoi selezionare membri del team cone 'Amministratori del Team'. Gli Amministratori del Team possono:"
+
+#: html/user/team_admins.php:45
+msgid "Edit team information (name, URL, description, country)"
+msgstr "Modifica le informazioni del team (nome, URL, descrizione, stato)"
+
+#: html/user/team_admins.php:46
+msgid "View the team's join/quit history"
+msgstr "Vedi il resoconto di iscritti/cancellati del team"
+
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Invia messaggi al team"
+
+#: html/user/team_admins.php:48
+msgid ""
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Moderate il forum del team, se esiste (gli amministratori ricevono email di notifica degli atti di moderazione e reports)"
+
+#: html/user/team_admins.php:50
+msgid "Team Admins cannot:"
+msgstr "Gli admin del team non possono:"
+
+#: html/user/team_admins.php:52
+msgid "Change the team founder"
+msgstr "Cambia il fondatore del team"
+
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
+msgid "Remove members"
+msgstr "Rimuovi membri"
+
+#: html/user/team_admins.php:56
+msgid "If a Team Admin quits the team, they cease to be a Team Admin."
+msgstr "Se un Amministratore del Team esce dal team, smette di essere Amministratore."
+
+#: html/user/team_admins.php:57
+msgid ""
+"We recommend that you select only people you know and trust very well as "
+"Team Admins."
+msgstr "Ci raccomandiamo che tu scelga solo persone che conosci e di cui ti fidi molto come Amministratori del Team."
+
+#: html/user/team_admins.php:62
+msgid "There are currently no Team Admins"
+msgstr "Non ci sono attualmente Amministratori del Team"
+
+#: html/user/team_admins.php:64
+msgid "Current Team Admins"
+msgstr "Attuali amministratori del team"
+
+#: html/user/team_admins.php:65
+msgid "Became Team Admin on"
+msgstr "Diventa Amministratore del Team di"
+
+#: html/user/team_admins.php:80
+msgid "Add Team Admin"
+msgstr "Aggiungi l'Amministratore del Team"
+
+#: html/user/team_admins.php:81
+msgid "Email address of team member:"
+msgstr "Indirizzo email del membro del team:"
+
+#: html/user/team_admins.php:93
+msgid "failed to remove admin"
+msgstr "errore nella rimozione dell'admin"
+
+#: html/user/team_admins.php:102
+msgid "User is not member of team"
+msgstr "L'utente non è membro di un team"
+
+#: html/user/team_admins.php:104
+msgid "%1 is already an admin of %2"
+msgstr "%1 è già un admin di %2"
+
+#: html/user/team_admins.php:108
+msgid "Couldn't add admin"
+msgstr "Impossibile aggiungere l'amministratore"
+
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
+msgid "No such team"
+msgstr "Nessun team"
+
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
+msgid "no such team"
+msgstr "nessun team"
+
+#: html/user/team_change_founder_action.php:40
+msgid "User is not a member of %1"
+msgstr "L'utente non è un membro di %1"
+
+#: html/user/team_change_founder_action.php:43
+msgid "Changing founder of %1"
+msgstr "Cambio fondatore di %1"
+
+#: html/user/team_change_founder_action.php:45
+msgid "%1 is now founder of %2"
+msgstr "%1 è ora il fondatore di %2"
+
+#: html/user/team_change_founder_form.php:39
+msgid "Change founder of %1"
+msgstr "Cambia il fondatore di %1"
+
+#: html/user/team_change_founder_form.php:45
+msgid ""
+"Team member %1 requested this team's foundership on %2, but left the team, "
+"thus canceling the request."
+msgstr "Il membro del team %1 ha richiesto la carica di fondatore di questo team in %2, ma ha abbandonato il team, di conseguenza la richiesta è stata cancellata."
+
+#: html/user/team_change_founder_form.php:51
+msgid ""
+"Team member %1 has requested this team's foundership. This may be because "
+"you left the team or haven't had contact with the team for a long time."
+msgstr "Il membro %1 ha richiesto di essere il fondatore di questo team. Potrebbe essere perché hai abbandonato il team oppure non hai avuto contatti con il team per un lungo periodo."
+
+#: html/user/team_change_founder_form.php:57
+msgid "decline request"
+msgstr "rifiuta richiesta"
+
+#: html/user/team_change_founder_form.php:60
+msgid ""
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Se non rifiuti la richiesta di %1. %2 avrà l'opzione di assumere la carica di fondatore del team.<br /><br />\n Per accettare la richiesta, assegna la fusione a %3, utilizzando lo schema sotto. "
+
+#: html/user/team_change_founder_form.php:68
+msgid "No transfer request is pending."
+msgstr "Nessuna richiesta di trasferimento in corso."
+
+#: html/user/team_change_founder_form.php:71
+msgid ""
+"To assign foundership of this team to another member, check the box next to "
+"member name and click %1Change founder%2 below."
+msgstr "Per assegnare il ruolo di fondatore di questo team ad un altro membro, controlla il riquadro vicino al nome del membro e clicca sul tasto %1Cambia fondatore%1 qui sotto."
+
+#: html/user/team_change_founder_form.php:81
+msgid "New founder?"
+msgstr "Nuovo fondatore?"
+
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
+msgid "Change founder"
+msgstr "Cambia fondatore"
+
+#: html/user/team_change_founder_form.php:116
+msgid "There are no users to transfer team to."
+msgstr "Non ci sono utenti su cui trasferire il team."
+
+#: html/user/team_create_action.php:35
+msgid "You must choose a non-blank team name"
+msgstr "Non puoi lasciare in bianco il nome del team"
+
+#: html/user/team_create_action.php:40
+msgid "A team named %1 already exists - try another name"
+msgstr "Un team chiamato %1 esiste già - prova con un altro nome"
+
+#: html/user/team_create_action.php:60
+msgid "Could not create team - please try later."
+msgstr "Non è stato possibile creare il team - riprovare più tardi."
+
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
+msgid "Create a team"
+msgstr "Crea un team"
+
+#: html/user/team_create_form.php:31
+msgid ""
+"You belong to %1. You must %2quit this team%3 before creating a new one."
+msgstr "Tu sei membro del team %1. Devi %2lasciare questo team%3 prima di crearne uno nuovo."
+
+#: html/user/team_delta.php:66
+msgid "Not founder or admin"
+msgstr "Nessun fondatore o amministratore"
+
+#: html/user/team_delta.php:73
+msgid "Team history for %1"
+msgstr "Storia del team per %1"
+
+#: html/user/team_delta.php:77
+msgid "When"
+msgstr "Quando"
+
+#: html/user/team_delta.php:78
+msgid "User"
+msgstr "Utente"
+
+#: html/user/team_delta.php:79
+msgid "Action"
+msgstr "Attività"
+
+#: html/user/team_delta.php:80
+msgid "Total credit at time of action"
+msgstr "Credito totale durante l'attività"
+
+#: html/user/team_edit_action.php:55
+msgid "bad country"
+msgstr "paese sbagliato"
+
+#: html/user/team_edit_action.php:61
+msgid "The name '%1' is being used by another team."
+msgstr "Il nome '%1' è usato da un altro team."
+
+#: html/user/team_edit_action.php:64
+msgid "Must specify team name"
+msgstr "Devi specificare un nome di un team"
+
+#: html/user/team_edit_action.php:92
+msgid "Could not update team - please try again later."
+msgstr "Non è stato possibile aggiornare il team - riprovare più tardi."
+
+#: html/user/team_edit_form.php:35
+msgid "Edit %1"
+msgstr "Modifica %1"
+
+#: html/user/team_edit_form.php:36
+msgid "Update team info"
+msgstr "Aggiorna informazioni team"
+
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Membri di %1"
+
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
+
+#: html/user/team_email_list.php:93
+msgid "Show as plain text"
+msgstr "Mostra come testo normale"
+
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
+msgid "Create Message Board"
+msgstr "Crea un forum di messaggi"
+
+#: html/user/team_forum.php:31
+msgid "You may create a message board for use by %1."
+msgstr "Tu puoi creare un forum du messaggio per l'uso da parte di %1"
+
+#: html/user/team_forum.php:33
+msgid "Only team members will be able to post."
+msgstr "Solo i membri del gruppo avranno la possibilità di scrivere."
+
+#: html/user/team_forum.php:34
+msgid "At your option, only members will be able to read."
+msgstr "Con una tua opzione, solo i membri potranno leggere."
+
+#: html/user/team_forum.php:35
+msgid "You and your Team Admins will have moderator privileges."
+msgstr "Tu ed i tuoi amministratori del team avrete i privilegi di moderatori."
+
+#: html/user/team_forum.php:42
+msgid "Create a message board for %1"
+msgstr "Crea un forum di messaggi per %1"
+
+#: html/user/team_forum.php:50
+msgid "Team already has a message board"
+msgstr "Il team ha già un forum di messaggi."
+
+#: html/user/team_forum.php:61
+msgid "Team Message Board"
+msgstr "Forum di messaggi del team."
+
+#: html/user/team_forum.php:78
+msgid "Minimum time between posts (seconds)"
+msgstr "Tempo minimo tra i messaggi (secondi)"
+
+#: html/user/team_forum.php:81
+msgid "Minimum total credit to post"
+msgstr "Credito totale minimo necessario per scrivere"
+
+#: html/user/team_forum.php:84
+msgid "Minimum average credit to post"
+msgstr "Credito medio minimo necessario per scrivere"
+
+#: html/user/team_forum.php:87
+msgid "Submit"
+msgstr "Invia"
+
+#: html/user/team_forum.php:97
+msgid "Remove your team's message board."
+msgstr "Rimuovi il forum di messaggi del tuo team."
+
+#: html/user/team_forum.php:105
+msgid "Really remove message board?"
+msgstr "Veramente vuoi rimuovere il forum di messaggi?"
+
+#: html/user/team_forum.php:106
+msgid ""
+"Are you sure you want to remove your team's message board? All threads and "
+"posts will be permanently removed. (You may, however, create a new message "
+"board later)."
+msgstr "Sei sicuro di voler rimuovere il forum di messaggi del tuo tem? Tutte le discussioni ed i messaggi verranno permanentemente rimossi. (Tu puoi, comunque, creare un nuovo forum di messaggi successivamente)."
+
+#: html/user/team_forum.php:108
+msgid "Yes - remove message board"
+msgstr "Sì-rimuovi il forum di messaggi."
+
+#: html/user/team_forum.php:129
+msgid "Message board removed"
+msgstr "Forum di messaggi rimosso."
+
+#: html/user/team_forum.php:132
+msgid ""
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Il forum di messaggi del tuo team è stato rimosso. Tu puoi ora %1 crearne uno nuovo%2."
+
+#: html/user/team_forum.php:151
+msgid "Team Message Board Updated"
+msgstr "Forum di messaggi del team aggiornato."
+
+#: html/user/team_forum.php:152
+msgid "Update successful"
+msgstr "Aggiornamento eseguito"
+
+#: html/user/team_forum.php:155
+msgid "Update failed"
+msgstr "Aggiornamento fallito"
+
+#: html/user/team_forum.php:162
+msgid "Team has no forum"
+msgstr "Il team non ha forum"
+
+#: html/user/team_founder_transfer_action.php:38
+msgid "You must be a member of a team to access this page."
+msgstr "Devi essere membro di un team per avere accesso a questa pagina."
+
+#: html/user/team_founder_transfer_action.php:100
+msgid "Requesting foundership of %1"
+msgstr "Richiedi cambio fondatore di %1"
+
+#: html/user/team_founder_transfer_action.php:108
+msgid ""
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "L'attuale fondatore è stato informato via email e messaggio privato della tua richiesta.<br /><br /> Se non risponde entro 60 giorni, potrai subentrargli senza altre formalità."
+
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
+msgid "Foundership request not allowed now"
+msgstr "Richiesta di cambio fondatore non permessa in questo momento"
+
+#: html/user/team_founder_transfer_action.php:119
+msgid "Assumed foundership of %1"
+msgstr "Assumi carica di fondatore di %1"
+
+#: html/user/team_founder_transfer_action.php:121
+msgid ""
+"Congratulations, you are now the founder of team %1. Go to %2Your Account "
+"page%3 to find the Team Admin options."
+msgstr "Congratulazioni, sei ora il nuovo fondatore del team %1. Vai a %2La tua pagina Acoount%3 per trovare le opzioni dell'Ammnistratore di Team."
+
+#: html/user/team_founder_transfer_action.php:130
+msgid "Decline founder change request"
+msgstr "Declina richiesta di cambio fondatore"
+
+#: html/user/team_founder_transfer_action.php:137
+msgid "The foundership request from %1 has been declined."
+msgstr "La richiesta di cambio fondatore di %1 è stata rifiutata."
+
+#: html/user/team_founder_transfer_action.php:140
+msgid "There were no foundership requests."
+msgstr "Non ci sono richieste di cambio fondatore."
+
+#: html/user/team_founder_transfer_action.php:144
+msgid "undefined action %1"
+msgstr "Azione non definita %1"
+
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
+msgid "Return to team page"
+msgstr "Ritorna alla pagina del team"
+
+#: html/user/team_founder_transfer_form.php:30
+msgid "You need to be a member of a team to access this page."
+msgstr "Devi essere membro del team per avere accesso a questa pagina"
+
+#: html/user/team_founder_transfer_form.php:33
+msgid "Request foundership of %1"
+msgstr "Richiedi cambio fondatore per %1"
+
+#: html/user/team_founder_transfer_form.php:40
+msgid "You are now founder of team %1."
+msgstr "Sei ora il fondatore del gruppo %1."
+
+#: html/user/team_founder_transfer_form.php:46
+msgid "You requested the foundership of %1 on %2."
+msgstr "Hai richiesto la carica di fondatore di %1 su %2"
+
+#: html/user/team_founder_transfer_form.php:49
+msgid ""
+"60 days have elapsed since your request, and the founder has not responded. "
+"You may now assume foundership by clicking here:"
+msgstr "60 giorni sono passati dalla tua richiesta, e il fondatore non ha risposto. Puoi assumere la carica di fondatore cliccando qui:"
+
+#: html/user/team_founder_transfer_form.php:52
+msgid "Assume foundership"
+msgstr "Assumi ruolo di fondatore"
+
+#: html/user/team_founder_transfer_form.php:56
+msgid ""
+"The founder was notified of your request. If he/she does not respond by %1 "
+"you will be given an option to become founder."
+msgstr "Il fondatore è stato avvisato della tua richiesta. Se lui/lei non risponderà entro %1 ti sarà data la possibilità di diventare fondatore."
+
+#: html/user/team_founder_transfer_form.php:62
+msgid ""
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
+"                       Are you sure you want to request foundership?"
+msgstr "Se il fondatore del team non è attivo e vuoi assumere il ruolo di fondatore, clicca il bottone qui sotto. Sarà mandata una e-mail al fondatore corrente con la tua richiesta, e sarà capace di trasferire il ruolo di fondatore a te o di declinare la tua richiesta. Se il fondatore non risponde in 60 giorni, ti sarà permesso di diventare il fondatore.<br /><br />\n                       Sei sicuro di voler richiedere il ruolo di fondatore?"
+
+#: html/user/team_founder_transfer_form.php:67
+msgid "Request foundership"
+msgstr "Richiedi cambio fondatore"
+
+#: html/user/team_founder_transfer_form.php:76
+msgid "Founder change has already been requested by %1 on %2."
+msgstr "Richiesta di cambio fondatore già fatta da %1 su %2."
+
+#: html/user/team_founder_transfer_form.php:79
+msgid ""
+"A foundership change was requested during the last 90 days, so new requests "
+"are not allowed. Please try again later."
+msgstr "Una richiesta di cambio fondatore è stata fatta negli ultimi 90 giorni, quindi ne nuove richieste non sono permesse. Per favore riprova più tardi."
+
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
+msgid "The team %1 is not joinable."
+msgstr "Non si può entrare nel team %1."
+
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
+msgid "Already a member"
+msgstr "Sei già membro"
+
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
+msgid "You are already a member of %1."
+msgstr "Sei già membro di %1."
+
+#: html/user/team_join_action.php:42
+msgid "Joined %1"
+msgstr "Entrato in %1"
+
+#: html/user/team_join_action.php:43
+msgid "You have joined %1."
+msgstr "Sei entrato in %1."
+
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Non puoi entrare nel team - per favore riprova più tardi."
+
+#: html/user/team_join_form.php:35
+msgid "Please note:"
+msgstr "Si prega di notare:"
+
+#: html/user/team_join_form.php:37
+msgid "Joining a team gives its founder access to your email address."
+msgstr "Entrare in un team da al fondatore accesso al tuo indirizzo e-mail."
+
+#: html/user/team_join_form.php:38
+msgid "Joining a team does not affect your account's credit."
+msgstr "Entrare in un team non influisce sui crediti del proprio account."
+
+#: html/user/team_join_form.php:45
+msgid "Join team"
+msgstr "Entra in un team"
+
+#: html/user/team_lookup.php:88
+msgid "Search Results"
+msgstr "Risultati ricerca"
+
+#: html/user/team_lookup.php:90
+msgid "Search results for '%1'"
+msgstr "Risultati ricerca per '%1'"
+
+#: html/user/team_lookup.php:92
+msgid "You may view these teams' members, statistics, and information."
+msgstr "Puoi vedere i membri, statistiche, e informazioni di questi team."
+
+#: html/user/team_lookup.php:102
+msgid "More than 100 teams match your search. The first 100 are shown."
+msgstr "Più di 100 team soddisfano la tua ricerca. Sono visualizzati i primi 100."
+
+#: html/user/team_lookup.php:108
+msgid ""
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Fine dei risultati. %1 Se non riesci a trovare un team giusto per te, puoi sempre %2creare un team%3."
+
+#: html/user/team_manage.php:28
+msgid "Team administration for %1"
+msgstr "Amministrazione del team per %1"
+
+#: html/user/team_manage.php:31
+msgid "Edit team info"
+msgstr "Modifica le informazioni del team"
+
+#: html/user/team_manage.php:32
+msgid "Change team name, URL, description, type, or country"
+msgstr "Cambia il nome del team, URL, descrizione, tipo o nazione"
+
+#: html/user/team_manage.php:35
+msgid "Member list:"
+msgstr "Lista membri:"
+
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
+msgid "HTML"
+msgstr "HTML"
+
+#: html/user/team_manage.php:37
+msgid "text"
+msgstr "testo"
+
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Visualizza inforamzioni membro"
+
+#: html/user/team_manage.php:40
+msgid "View change history:"
+msgstr "Visualizza la cronologia dei cambiamenti:"
+
+#: html/user/team_manage.php:43
+msgid "See when members joined or quit this team"
+msgstr "Mostra quando i membri si sono uniti o hanno abbandonato questo team"
+
+#: html/user/team_manage.php:54
+msgid "Respond to foundership request."
+msgstr "Rispondi alla richiesta di cambio fondatore."
+
+#: html/user/team_manage.php:54
+msgid "If you don't respond by %1, %2 may assume foundership of this team."
+msgstr "Se non rispondi a %1, %2 potrebe assumere il ruolo di fondatore del team."
+
+#: html/user/team_manage.php:59
+msgid "Remove inactive or unwanted members from this team"
+msgstr "Rimuovi membri inattivi o indesiderati da questo team"
+
+#: html/user/team_manage.php:61
+msgid "Transfer foundership to another member"
+msgstr "Trasferisci carica di fondatore ad un altro membro"
+
+#: html/user/team_manage.php:62
+msgid "Add/remove Team Admins"
+msgstr "Aggiungi/Rimuovi Admin del team"
+
+#: html/user/team_manage.php:63
+msgid "Give selected team members Team Admin privileges"
+msgstr "Dai ai membri del team selezionati i privilegi di Admin del team"
+
+#: html/user/team_manage.php:65
+msgid "Remove team"
+msgstr "Rimuovi team"
+
+#: html/user/team_manage.php:66
+msgid "Allowed only if team has no members"
+msgstr "Permesso solo se il team non ha membri"
+
+#: html/user/team_manage.php:68
+msgid "Create or manage a team message board"
+msgstr "Crea o gestisci un forum del team"
+
+#: html/user/team_manage.php:75
+msgid ""
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Per far si che questo team sia creato in tutti i progetti BOINC (correnti e futuri), puoi trasformarlo in un %1BOINC-wide team%2."
+
+#: html/user/team_manage.php:77
+msgid ""
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "Gli amministratori dei team sono pregati di unirsi e partecipare sul gruppo Google %1fondatori di team boinc%2."
+
+#: html/user/team_manage.php:93
+msgid "Can't delete non-empty team"
+msgstr "Non posso cancellare i team non vuoti"
+
+#: html/user/team_manage.php:97
+msgid "Team %1 deleted"
+msgstr "Team %1 cancellato"
+
+#: html/user/team_members.php:38
+msgid "Limit exceeded:  Can only display the first 1000 members."
+msgstr "Limite superato: Puoi solo visualizzare i primi 1000 membri."
+
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "I partecipanti a %1 possono formare dei %2team%3."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Puoi appartenere solo ad un team. Puoi unirti o lasciare un team in qualsiasi momento."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Ogni team ha un %1fondatore%2 che può:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "modificare il nome e la descrizione del team"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "aggiungi o rimuovi admin del team"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "rimuovere i membri dal team"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "sciogliere il team, solo se non ha più membri"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Per unirti ad un team visita la pagina del team e clicca su %1Unirsi a questo team%2."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Trova un team"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Tutti i team"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 team"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Crea un nuovo team"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Se non riesci a trovare un team giusto per te, puoi sempre %1creare un team%2."
+
+#: html/user/team_quit_action.php:34
+msgid "Unable to quit team"
+msgstr "Impossibile uscire dal team"
+
+#: html/user/team_quit_action.php:35
+msgid "Team doesn't exist, or you don't belong to it."
+msgstr "Il team non esiste, oppure non gli appartieni"
+
+#: html/user/team_quit_form.php:33
+msgid "Quit %1"
+msgstr "Esci da %1"
+
+#: html/user/team_quit_form.php:34
+msgid ""
+"<strong>Please note before quitting a team:</strong>\n"
+"         <ul>\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
+"         </ul>"
+msgstr "<strong>Prima di uscire da un team nota che:</strong>\n         <ul>\n         <li>Se esci da un team, puoi rientrare successivamente, oppure entrare in un altro team tu desideri\n         <li>Uscire da un team non ha effetti sulle tue statistiche personali in nessun modo.\n         </ul>"
+
+#: html/user/team_quit_form.php:42
+msgid "Quit Team"
+msgstr "Abbandona il Team"
+
+#: html/user/team_remove_inactive_action.php:33
+msgid "Removing users from %1"
+msgstr "Rimozione utenti da %1"
+
+#: html/user/team_remove_inactive_action.php:41
+msgid "%1 is not a member of %2"
+msgstr "%1 non è un membro di %2"
+
+#: html/user/team_remove_inactive_action.php:44
+msgid "%1 has been removed"
+msgstr "%1 è stato rimosso"
+
+#: html/user/team_remove_inactive_form.php:34
+msgid "Remove members from %1"
+msgstr "Rimuovi membri da %1"
+
+#: html/user/team_remove_inactive_form.php:42
+msgid "Remove?"
+msgstr "Rimuovi?"
+
+#: html/user/team_remove_inactive_form.php:43
+msgid "Name (ID)"
+msgstr "Nome (ID)"
+
+#: html/user/team_remove_inactive_form.php:68
+msgid "No members are eligible for removal."
+msgstr "Nessun membro può essere rimosso."
+
+#: html/user/team_remove_inactive_form.php:71
+msgid "Remove users"
+msgstr "Rimuovi utenti"
+
+#: html/user/team_search.php:76
+msgid "Team name"
+msgstr "Nome del team"
+
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Validata?"
+
+#: html/user/team_search.php:115
+msgid "Team search results"
+msgstr "Risultato della ricerca team"
+
+#: html/user/team_search.php:117
+msgid "No teams were found matching your criteria. Try another search."
+msgstr "Nessun team trovato. Prova un'altra ricerca"
+
+#: html/user/team_search.php:119
+msgid "Or you can %1create a new team%2."
+msgstr "Oppure, puoi %1creare un nuovo team%2."
+
+#: html/user/team_search.php:123
+msgid ""
+"The following teams match one or more of your search criteria.\n"
+"            To join a team, click its name to go to the team page,\n"
+"               then click %1Join this team%2."
+msgstr "I team seguenti soddisfano uno o più dei tuoi criteri di ricerca.\n            Per entrare in un team, clicca sul nome o vai sulla sua pagina,\n               poi clicca su %1Unisciti a questo team%2."
+
+#: html/user/team_search.php:130
+msgid "Change your search"
+msgstr "Cambia la ricerca"
+
+#: html/user/team_search.php:204
+msgid ""
+"You can team up with other people with similar interests, or from the same "
+"country, company, or school."
+msgstr "Puoi entrare in un team con persone aventi interessi simili, provenienti dallo stesso paese, luogo di lavoro, o scuola."
+
+#: html/user/team_search.php:206
+msgid "Use this form to find teams that might be right for you."
+msgstr "Usa questo form per trovare team che possono essere adeguati per te."
+
+#: html/user/team_search.php:211
+msgid "%1I'm not interested%2 in joining a team right now."
+msgstr "%1Non sono interessanto%2 nell'entrare in un team adesso."
+
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
+msgid "Limit exceeded - Sorry, first %1 items only"
+msgstr "Limite massimo superato - Scusa, solo i primi %1 elementi"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
+msgid "Top hosts"
+msgstr "I migliori computer"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
+msgid "Top %1 teams"
+msgstr "I migliori team su %1"
+
+#: html/user/top_teams.php:111
+msgid "There are no %1 teams"
+msgstr "Non ci sono team %1"
+
+#: html/user/top_users.php:57
+msgid "Participant since"
+msgstr "Partecipante dal"
+
+#: html/user/uotd.php:32
+msgid "No user of the day has been chosen."
+msgstr "Nessun utente del giorno è stato scelto."
+
+#: html/user/uotd.php:36
+msgid "User of the Day for %1: %2"
+msgstr "Utente del giorno per %1: %2"
+
+#: html/user/user_search.php:51
+msgid "Filters"
+msgstr "Filtri"
+
+#: html/user/user_search.php:53
+msgid "User name starts with"
+msgstr "Il nome utente inizia con"
+
+#: html/user/user_search.php:56
+msgid "Any"
+msgstr "Qualsiasi"
+
+#: html/user/user_search.php:59
+msgid "With profile?"
+msgstr "Con un profilo?"
+
+#: html/user/user_search.php:60 html/user/user_search.php:65
+msgid "Either"
+msgstr "Entrambi"
+
+#: html/user/user_search.php:64
+msgid "On a team?"
+msgstr "In un team?"
+
+#: html/user/user_search.php:69
+msgid "Ordering"
+msgstr "Ordinamento"
+
+#: html/user/user_search.php:70
+msgid "Decreasing sign-up time"
+msgstr "Decremento tempo di sign-up"
+
+#: html/user/user_search.php:71
+msgid "Decreasing average credit"
+msgstr "Diminuzione del credito medio"
+
+#: html/user/user_search.php:72
+msgid "Decreasing total credit"
+msgstr "Diminuzione del credito totale"
+
+#: html/user/user_search.php:87
+msgid "search string must be at least 3 characters"
+msgstr "la stringa deve essere di almeno 3 caratteri"
+
+#: html/user/user_search.php:121
+msgid "User search results"
+msgstr "Risultato della ricerca utenti"
+
+#: html/user/user_search.php:133
+msgid "Joined"
+msgstr "Entrato"
+
+#: html/user/user_search.php:143
+msgid "No users match your search criteria."
+msgstr "Nessun utente corrisponde al criterio di ricerca."
+
+#: html/user/userw.php:35
+msgid "User not found!"
+msgstr "Utente non trovato!"
+
+#: html/user/userw.php:44
+msgid "Account Data<br/>for %1<br/>Time:"
+msgstr "Dati account<br/>per %1<br/>Tempo:"
+
+#: html/user/userw.php:47
+msgid "Team:"
+msgstr "Team:"
+
+#: html/user/userw.php:48
+msgid "Team TotCred:"
+msgstr "Credito totale del Team:"
+
+#: html/user/userw.php:49
+msgid "Team AvgCred:"
+msgstr "Credito medio del Team:"
+
+#: html/user/userw.php:51
+msgid "Team: None"
+msgstr "Team: Nessuno"
+
+#: html/user/validate_email_addr.php:30
+msgid "Validate BOINC email address"
+msgstr "Convalida indirizzo email BOINC"
+
+#: html/user/validate_email_addr.php:31
+msgid ""
+"Please visit the following link to validate the email address of your %1 "
+"account:"
+msgstr "Per favore visita il link seguente per convalidare l'indirizzo e-mail del tuo account %1:"
+
+#: html/user/validate_email_addr.php:34
+msgid "Validate email sent"
+msgstr "Email di convalida inviata"
+
+#: html/user/validate_email_addr.php:35
+msgid ""
+"An email has been sent to %1. Visit the link it contains to validate your "
+"email address."
+msgstr "Una email è stata inviata a %1. Visita il link che contiene per convalidare il tuo indirizzo email."
+
+#: html/user/validate_email_addr.php:44
+msgid "No such user."
+msgstr "Utente non trovato."
+
+#: html/user/validate_email_addr.php:49
+msgid "Error in URL data - can't validate email address"
+msgstr "Errore nei dati dell'URL - impossibile convalidare l'indirizzo email"
+
+#: html/user/validate_email_addr.php:54
+msgid "Database update failed - please try again later."
+msgstr "Aggiornamento database fallito - per favore riprovare più tardi."
+
+#: html/user/validate_email_addr.php:57
+msgid "Validate email address"
+msgstr "Convalida l'indirizzo email"
+
+#: html/user/validate_email_addr.php:58
+msgid "The email address of your account has been validated."
+msgstr "L'indirizzo email del tuo account è stato convalidato."
+
+#: html/user/view_profile.php:38
+msgid "This user has no profile"
+msgstr "Questo utente non ha un profilo"
+
+#: html/user/view_profile.php:56
+msgid "Profile: %1"
+msgstr "Profilo: %1"
+
+#: html/user/view_profile.php:65
+msgid "Account data"
+msgstr "Dati dell'account"
+
+#: html/user/weak_auth.php:52
+msgid ""
+"You can access your account either by using your email address and password,\n"
+"    or by using an assigned 'account key'.\n"
+"    Your account key is:"
+msgstr "Puoi accedere al tuoi account sia utilizzando il tuo email e password,\n    oppure usando una 'chiave account' assegnata.\n    La tua chiave account è:"
+
+#: html/user/weak_auth.php:57
+msgid "This key can be used to:"
+msgstr "Questa chiave può essere usata per:"
+
+#: html/user/weak_auth.php:59
+msgid "log in to your account on the web"
+msgstr "fai il login al tuo account sul web"
+
+#: html/user/weak_auth.php:61
+msgid ""
+"to attach a computer to your account without using the BOINC Manager.\n"
+"       To do so, install BOINC,\n"
+"       create a file named %1 in the BOINC\n"
+"       data directory, and set its contents to:"
+msgstr "per aggiungere un computer al tuo account senza usare il BOINC Manager.\n       Per farlo, installa BOINC,\n       crea un file chiamato %1 nella cartella dati\n       di BOINC, e scrivi come contenuto:"
+
+#: html/user/weak_auth.php:73
+msgid "Weak account key"
+msgstr "Chiave di accesso debole"
+
+#: html/user/weak_auth.php:74
+msgid ""
+"Your 'weak account key' can be used to attach computers to your account\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
+"    If you want to attach untrusted or insecure computers to your account,\n"
+"    do so using your weak account key.\n"
+"    Your weak account key is:"
+msgstr "La tua 'chiave di accesso debole' può essere usata per aggiungere computer al tuo account\n    come descritto sopra, ma non può essere usata per fare il login al tuo account o per cambiarlo in nessun modo.\n    Se vuoi aggiungere computer non fidati o non sicuri al tuo account,\n    fallo usando la tua chiave di accesso debole.\n    La tua chiave di accesso debole è:"
+
+#: html/user/weak_auth.php:81
+msgid ""
+"If you change your password, your weak account key changes, and your "
+"previous weak account key becomes invalid."
+msgstr "Se cambi la tua password, la tua chiave di accesso debole cambia, e quella precedente diventa non valida."
+
+#: html/user/workunit.php:32
+msgid "can't find workunit"
+msgstr "impossibile trovare WU"
+
+#: html/user/workunit.php:35
+msgid "Workunit %1"
+msgstr "Elaborazione %1"
+
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "Applicazione"
+
+#: html/user/workunit.php:43
+msgid "canonical result"
+msgstr "risultato canonico"
+
+#: html/user/workunit.php:46
+msgid "granted credit"
+msgstr "credito garantito"
+
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Attività in corso"
+
+#: html/user/workunit.php:55
+msgid "suppressed pending completion"
+msgstr "completamento in sospeso cancellato"
+
+#: html/user/workunit.php:58
+msgid "minimum quorum"
+msgstr "Quorum minimo"
+
+#: html/user/workunit.php:59
+msgid "initial replication"
+msgstr "Replica iniziale"
+
+#: html/user/workunit.php:60
+msgid "max # of error/total/success tasks"
+msgstr "N° massimo accettato WU con errore / totali / completate con successo"
+
+#: html/user/workunit.php:64
+msgid "errors"
+msgstr "errori"
+
+#: html/user/workunit.php:67
+msgid "validation"
+msgstr "convalida"
+
+#: html/user/workunit.php:67
+msgid "Pending"
+msgstr "Non assegnato"
+
+#: html/project.sample/project.inc:95
+msgid "Generated"
+msgstr "Generato"
+
+#: html/project.sample/project.inc:126
+msgid "Your personal background."
+msgstr "Il tuo sfondo personale."
+
+#: html/project.sample/project.inc:130
+msgid ""
+"Tell us about yourself. You could tell us where you're from, your age, "
+"occupation, hobbies, or anything else about yourself."
+msgstr "Parlaci di te. Puoi dirci da dove vieni, la tua età, occupazione, hobbies o qualsiasi altra cosa su di te."
+
+#: html/project.sample/project.inc:134
+msgid "Your opinions about %1"
+msgstr "Le tue opinioni riguardo %1"
+
+#: html/project.sample/project.inc:138
+msgid ""
+"Tell us your thoughts about %1<ol>\n"
+"    <li>Why do you run %1?\n"
+"    <li>What are your views about the project?\n"
+"    <li>Any suggestions?\n"
+"    </ol>"
+msgstr "Dicci i tuoi pensieri riguardo %1<ol>\n    <li>Perché utilizzi %1?\n    <li>Quali sono i tuoi punti di vista sul progetto?\n    <li>Suggerimenti?\n    </ol>"
+
+#: html/project.sample/project_specific_prefs.inc:57
+msgid "Color scheme for graphics"
+msgstr "Schema di colori per la grafica"
+
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
+msgid "Maximum CPU % for graphics%10 ... 100%2"
+msgstr "Massima CPU % per la grafica%10 ... 100%2"
+
+#: html/project.sample/project_specific_prefs.inc:60
+msgid "Run only the selected applications"
+msgstr "Avvia solo le applicazioni selezionate"
+
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Ottieni elaborazioni solo per alcune applicazioni. Utile per focalizzarsi su particolari applicazioni, o per escluderle."
+
+#: html/project.sample/project_specific_prefs.inc:62
+msgid ""
+"If no work for selected applications is available, accept work from other "
+"applications?"
+msgstr "Se non sono disponibili WU per le applicazioni selezionate accettarne dalle altre applicazioni?"
+
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Utilizzare l'applicazione non-grafica, più veloce, se disponibile?"
+
+#: html/project.sample/project_specific_prefs.inc:94
+msgid "(all applications)"
+msgstr "(tutte le applicazioni)"
+
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Nessun limite"
+
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Numero massimo task per questo progetto"
+
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Numero massimo CPU per questo progetto"
+
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "Numero massimo task"
+
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "Numero massimo CPU"
diff --git a/html/languages/translations/ja.po b/html/languages/translations/ja.po
index 962d68e..0f5c9cf 100644
--- a/html/languages/translations/ja.po
+++ b/html/languages/translations/ja.po
@@ -1,396 +1,495 @@
 # BOINC web translation
 # Copyright (C) 2008 University of California
+# 
 # This file is distributed under the same license as BOINC.
+# 
 # FileID  : $Id$
+# 
+# Translators:
+# Kenichi Ito <ken.i54k at gmail.com>, 2015
+# Masahiro Tagashira, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-10-28 15:20+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: \n"
-"Language: ja\n"
+"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
+"PO-Revision-Date: 2016-07-19 16:23+0000\n"
+"Last-Translator: Masahiro Tagashira\n"
+"Language-Team: Japanese (http://www.transifex.com/boinc/boinc/language/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 日本語\n"
-"X-POOTLE-MTIME: 1382973625.0\n"
 
-# The name of this language in this language
 msgid "LANG_NAME_NATIVE"
 msgstr "日本語"
 
-# The name of this language in an international language (English)
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Japanese"
 
+#: ../inc/account.inc:38
+msgid "Invitation Code"
+msgstr "招待コード"
+
+#: ../inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "アカウントを作るには、有効な招待コードが必要です。"
+
+#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
+#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
+#: ../user/account_finish.php:41 ../user/team_admins.php:64
+#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
+#: ../user/top_users.php:49 ../user/user_search.php:124
+msgid "Name"
+msgstr "名前"
+
+#: ../inc/account.inc:44 ../user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "我々のウェブサイト上であなたを識別する名前です。実名でも、ニックネームでも結構です。"
+
+#: ../inc/account.inc:48
+msgid "Email Address"
+msgstr "Eメールアドレス"
+
+#: ../inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "有効なメールアドレスを「ローカル部@ドメイン」の形で記入しなければなりません。"
+
+#: ../inc/account.inc:57 ../user/edit_email_form.php:47
+msgid "Password"
+msgstr "パスワード"
+
+#: ../inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "少なくとも %1 文字はなければなりません"
+
+#: ../inc/account.inc:61
+msgid "Confirm password"
+msgstr "確認のためパスワードをもう一度"
+
+#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
+#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
+#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
+#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
+#: ../user/team_email_list.php:73 ../user/team_search.php:85
+#: ../user/top_users.php:63 ../user/user_search.php:53
+#: ../user/user_search.php:125
+msgid "Country"
+msgstr "国名"
+
+#: ../inc/account.inc:63 ../user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "表示したい国の名前があれば、選択してください。"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "郵便番号もしくは ZIP コード"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Optional"
+msgstr "記入は任意"
+
+#: ../inc/account.inc:86
+msgid "Create account"
+msgstr "アカウントを作成する"
+
+#: ../inc/account.inc:101
+msgid "Email address:"
+msgstr "Eメールアドレス:"
+
+#: ../inc/account.inc:103
+msgid "forgot email address?"
+msgstr "Eメールアドレスをお忘れですか?"
+
+#: ../inc/account.inc:106
+msgid "Password:"
+msgstr "パスワード:"
+
+#: ../inc/account.inc:106
+msgid "forgot password?"
+msgstr "パスワードをお忘れですか?"
+
+#: ../inc/account.inc:109
+msgid "Stay logged in"
+msgstr "ログインしたままにする"
+
+#. kludge
+#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
+msgid "Log in"
+msgstr "ログインする"
+
 #: ../inc/bbcode_html.inc:11
 msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
+msgstr "太字にするテキスト: [b]テキスト[/b] (Alt+B)"
 
 #: ../inc/bbcode_html.inc:14
 msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
+msgstr "斜体にするテキスト: [i]テキスト[/i] (Alt+I)"
 
 #: ../inc/bbcode_html.inc:17
 msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
+msgstr "下線を引くテキスト [u]テキスト[/u] (Alt+U)"
 
 #: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "取り消し線を引くテキスト: [s]テキスト[/s] (Alt+K)"
 
 #: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
+msgid "Quote text: [quote]text[/quote]  (alt+q)"
+msgstr "引用するテキスト: [quote]テキスト[/quote] (Alt+Q)"
 
 #: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
+msgid "Code display: [code]code[/code]  (alt+c)"
+msgstr "コードとして表示する: [code]コード[/code] (Alt+C)"
 
 #: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
+msgid "List: [list]text[/list] (alt+l)"
+msgstr "リストにする: [list]テキスト[/list] (Alt+L)"
 
 #: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
+msgid "Ordered list: [list=]text[/list]  (alt+o)"
+msgstr "番号付きリストにする: [list=]テキスト[/list] (Alt+O)"
 
 #: ../inc/bbcode_html.inc:35
+msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
+msgstr "画像の挿入: [img]http://画像のURL[/img] (Alt+P)"
+
+#: ../inc/bbcode_html.inc:38
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
+msgstr "URLの挿入: [url]http://URL[/url] もしくはテキストにハイパーリンクをつける場合 [url=http://URL]テキスト[/url] (Alt+W)"
 
-#: ../inc/bbcode_html.inc:42
+#: ../inc/bbcode_html.inc:45
 msgid "Font color"
-msgstr ""
+msgstr "フォントの色"
 
-#: ../inc/bbcode_html.inc:43
+#: ../inc/bbcode_html.inc:46
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
+msgstr "フォントの色を指定: [color=red]フォント[/color] ヒント: この場合あなたは #FF0000 (HTMLでの色名称でいうRed) の色もまた使うことができます。"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
+#: ../inc/prefs_util.inc:546
 msgid "Default"
-msgstr "指定省略時の扱い"
+msgstr "指定省略時の標準設定"
 
-#: ../inc/bbcode_html.inc:45
+#: ../inc/bbcode_html.inc:48
 msgid "Dark Red"
-msgstr ""
+msgstr "暗赤色"
 
-#: ../inc/bbcode_html.inc:46
+#: ../inc/bbcode_html.inc:49
 msgid "Red"
-msgstr ""
+msgstr "赤色"
 
-#: ../inc/bbcode_html.inc:47
-#, fuzzy
+#: ../inc/bbcode_html.inc:50
 msgid "Orange"
-msgstr "変更"
+msgstr "オレンジ色"
 
-#: ../inc/bbcode_html.inc:48
+#: ../inc/bbcode_html.inc:51
 msgid "Brown"
-msgstr ""
+msgstr "茶色"
 
-#: ../inc/bbcode_html.inc:49
+#: ../inc/bbcode_html.inc:52
 msgid "Yellow"
-msgstr ""
+msgstr "黄色"
 
-#: ../inc/bbcode_html.inc:50
+#: ../inc/bbcode_html.inc:53
 msgid "Green"
-msgstr ""
+msgstr "緑色"
 
-#: ../inc/bbcode_html.inc:51
+#: ../inc/bbcode_html.inc:54
 msgid "Olive"
-msgstr ""
+msgstr "オリーブ色"
 
-#: ../inc/bbcode_html.inc:52
+#: ../inc/bbcode_html.inc:55
 msgid "Cyan"
-msgstr ""
+msgstr "シアン色"
 
-#: ../inc/bbcode_html.inc:53
+#: ../inc/bbcode_html.inc:56
 msgid "Blue"
-msgstr ""
+msgstr "青色"
 
-#: ../inc/bbcode_html.inc:54
+#: ../inc/bbcode_html.inc:57
 msgid "Dark Blue"
-msgstr ""
+msgstr "暗青色"
 
-#: ../inc/bbcode_html.inc:55
+#: ../inc/bbcode_html.inc:58
 msgid "Indigo"
-msgstr ""
+msgstr "藍色"
 
-#: ../inc/bbcode_html.inc:56
+#: ../inc/bbcode_html.inc:59
 msgid "Violet"
-msgstr ""
+msgstr "スミレ色"
 
-#: ../inc/bbcode_html.inc:57
+#: ../inc/bbcode_html.inc:60
 msgid "Font size"
-msgstr ""
+msgstr "フォントの大きさ"
 
-#: ../inc/bbcode_html.inc:58
+#: ../inc/bbcode_html.inc:61
 msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
+msgstr "フォントの大きさを指定する: [size=x-small]小さいフォントのテキスト[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: ../inc/bbcode_html.inc:63
 msgid "Small"
-msgstr ""
+msgstr "小さい"
 
-#: ../inc/bbcode_html.inc:61
+#: ../inc/bbcode_html.inc:64
 msgid "Normal"
-msgstr ""
+msgstr "標準"
 
-#: ../inc/bbcode_html.inc:62
+#: ../inc/bbcode_html.inc:65
 msgid "Large"
-msgstr ""
+msgstr "大きい"
 
-#: ../inc/bbcode_html.inc:65
+#: ../inc/bbcode_html.inc:68
 msgid "Close all open bbCode tags"
-msgstr ""
+msgstr "開いているBBコードの全てのタグを閉じる"
 
-#: ../inc/bbcode_html.inc:65
+#: ../inc/bbcode_html.inc:68
 msgid "Close Tags"
-msgstr ""
+msgstr "タグを閉じる"
 
-#: ../inc/forum.inc:37
+#. names for the above
+#: ../inc/forum.inc:38
 msgid "Oldest first"
 msgstr "古い順"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: ../inc/forum.inc:39 ../inc/forum.inc:45
 msgid "Newest first"
 msgstr "新しい順"
 
-#: ../inc/forum.inc:39
+#: ../inc/forum.inc:40
 msgid "Highest rated posts first"
 msgstr "評価の高い順"
 
-#: ../inc/forum.inc:41
+#: ../inc/forum.inc:42
 msgid "Newest post first"
 msgstr "新しい投稿順"
 
-#: ../inc/forum.inc:42
+#: ../inc/forum.inc:43
 msgid "Most views first"
 msgstr "読まれた回数が多い順"
 
-#: ../inc/forum.inc:43
+#: ../inc/forum.inc:44
 msgid "Most posts first"
 msgstr "投稿の多い順"
 
-#: ../inc/forum.inc:125
+#: ../inc/forum.inc:104
+msgid "Volunteer moderator"
+msgstr "ボランティア・モデレーター"
+
+#: ../inc/forum.inc:105
+msgid "Project administrator"
+msgstr "プロジェクト管理者"
+
+#: ../inc/forum.inc:106
+msgid "Project developer"
+msgstr "プロジェクト開発者"
+
+#: ../inc/forum.inc:107
+msgid "Project tester"
+msgstr "プロジェクト・テスター"
+
+#: ../inc/forum.inc:108
+msgid "Volunteer developer"
+msgstr "ボランティア・デベロッパー"
+
+#: ../inc/forum.inc:109
+msgid "Volunteer tester"
+msgstr "ボランティア・テスター"
+
+#: ../inc/forum.inc:110
+msgid "Project scientist"
+msgstr "プロジェクト内の科学者"
+
+#: ../inc/forum.inc:111
+msgid "Help desk expert"
+msgstr "ヘルプデスクの専門家"
+
+#. Search
+#: ../inc/forum.inc:129
 msgid "Search for words in forum messages"
 msgstr "掲示板内のメッセージ内を語句検索します"
 
-#: ../inc/forum.inc:125
+#: ../inc/forum.inc:129
 msgid "Search forums"
 msgstr "掲示板を検索"
 
-#: ../inc/forum.inc:126
+#: ../inc/forum.inc:130
 msgid "Advanced search"
 msgstr "高度な検索"
 
-# #######################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
+#: ../user/pm.php:138
 msgid "Private messages"
 msgstr "非公開メッセージ"
 
-# #######################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: ../inc/forum.inc:155 ../user/forum_forum.php:74
+#: ../user/sample_index.php:128
 msgid "Questions and Answers"
 msgstr "質問と答(Q&A)"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
+#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
+#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
+#: ../project.sample/project.inc:70
 msgid "Message boards"
 msgstr "掲示板"
 
-# #######################################
-# Forum sample index page
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: ../inc/forum.inc:191 ../inc/forum.inc:199
 msgid "%1 message board"
 msgstr "%1 掲示板"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: ../inc/forum.inc:249 ../inc/result.inc:717
 msgid "Previous"
 msgstr "前へ"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: ../inc/forum.inc:287 ../inc/result.inc:726
 msgid "Next"
 msgstr "次へ"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
 msgid "Author"
 msgstr "投稿者"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
+#: ../user/forum_edit.php:133 ../user/forum_post.php:120
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+#: ../user/pm.php:90 ../user/pm.php:149
 msgid "Message"
 msgstr "メッセージ"
 
-#: ../inc/forum.inc:580
-#, fuzzy
+#: ../inc/forum.inc:586
 msgid "Send message"
-msgstr "メッセージ送信"
+msgstr "メッセージを送信"
 
-#: ../inc/forum.inc:580
-#, fuzzy
+#: ../inc/forum.inc:586
 msgid "Send %1 a private message"
-msgstr "非公開メッセージを送信する"
+msgstr "%1 さんに非公開メッセージを送信する"
 
-#: ../inc/forum.inc:581
-#, fuzzy
+#: ../inc/forum.inc:587
 msgid "Joined: %1"
-msgstr "%1 に参加完了"
+msgstr "参加した日: %1"
 
-# #######################################
-# Forum
-#: ../inc/forum.inc:590
-#, fuzzy
+#: ../inc/forum.inc:596
 msgid "Posts: %1"
-msgstr "投稿:"
+msgstr "投稿数: %1"
 
-#: ../inc/forum.inc:596
-#, fuzzy
+#: ../inc/forum.inc:602
 msgid "Credit: %1"
-msgstr "功績値"
+msgstr "功績値: %1"
 
-#: ../inc/forum.inc:597
+#: ../inc/forum.inc:603
 msgid "RAC: %1"
-msgstr ""
+msgstr "最近の平均功績: %1"
 
-#: ../inc/forum.inc:620
-#, fuzzy
+#: ../inc/forum.inc:627
 msgid "You haven't read this message yet"
-msgstr "このスレッドをあなたはまだ読んでいません"
+msgstr "あなたはこのメッセージをまだ読んでいません"
 
-#: ../inc/forum.inc:620
-#, fuzzy
+#: ../inc/forum.inc:627
 msgid "Unread"
 msgstr "未読"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-#, fuzzy
+#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
 msgid "Message %1"
-msgstr "メッセージ"
+msgstr "メッセージ %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
 msgid "hidden"
 msgstr "非公開"
 
-# #######################################
-# Forum
-#: ../inc/forum.inc:625
-#, fuzzy
+#: ../inc/forum.inc:632
 msgid "Posted: %1"
-msgstr "%1 からの投稿"
+msgstr "投稿日時: %1"
 
-#: ../inc/forum.inc:628
-#, fuzzy
+#: ../inc/forum.inc:635
 msgid " - in response to "
-msgstr "タイムアウト - 応答なし"
+msgstr "- に対する返答"
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: ../inc/forum.inc:638
 msgid "Edit"
 msgstr "編集"
 
-#: ../inc/forum.inc:631
-#, fuzzy
+#: ../inc/forum.inc:638
 msgid "Edit this message"
-msgstr "あなたのメッセージを編集する"
+msgstr "このメッセージを編集"
 
-#: ../inc/forum.inc:637
-#, fuzzy
+#: ../inc/forum.inc:644
 msgid "Last modified: %1"
-msgstr "最後に更新されたプレファレンス:"
+msgstr "最終更新: %1"
 
-#: ../inc/forum.inc:640
+#: ../inc/forum.inc:647
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "この投稿は投稿者があなたの「除外」リストにあるため表示されていません。ご覧になるには%1ここ%2をクリックしてください。"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
 msgid "Report this post as offensive"
-msgstr "このニュースをお知らせとしてエクスポートする"
+msgstr "この投稿を攻撃的であるとして報告"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
 msgid "Report as offensive"
-msgstr "投稿に関する報告を提出する"
+msgstr "攻撃的であるとして報告"
 
-#: ../inc/forum.inc:672
+#: ../inc/forum.inc:679
 msgid "Rating: %1"
-msgstr ""
+msgstr "評価: %1"
 
-#: ../inc/forum.inc:672
+#: ../inc/forum.inc:679
 msgid "rate: "
-msgstr ""
+msgstr "評価する:"
 
-# 83%
-#: ../inc/forum.inc:675
-#, fuzzy
+#: ../inc/forum.inc:682
 msgid "Click if you like this message"
-msgstr "非公開メッセージを作成できませんでした"
+msgstr "このメッセージが好ましいと思う場合はクリック"
 
-#: ../inc/forum.inc:675
+#: ../inc/forum.inc:682
 msgid "Rate +"
-msgstr ""
+msgstr "+として評価"
 
-#: ../inc/forum.inc:677
-#, fuzzy
+#: ../inc/forum.inc:684
 msgid "Click if you don't like this message"
-msgstr "非公開メッセージを作成できませんでした"
+msgstr "このメッセージが好ましいと思わない場合はクリック"
 
-#: ../inc/forum.inc:677
+#: ../inc/forum.inc:684
 msgid "Rate -"
-msgstr ""
+msgstr "-として評価"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
 msgid "Reply"
 msgstr "返信"
 
-#: ../inc/forum.inc:685
+#: ../inc/forum.inc:693
 msgid "Post a reply to this message"
-msgstr ""
+msgstr "このメッセージへの返信を投稿"
 
-#: ../inc/forum.inc:687
-#, fuzzy
+#. "Quote" is used as a verb
+#: ../inc/forum.inc:696
 msgid "Quote"
-msgstr "引用テキスト"
+msgstr "引用"
 
-#: ../inc/forum.inc:687
+#: ../inc/forum.inc:696
 msgid "Post a reply by quoting this message"
-msgstr ""
+msgstr "このメッセージを引用することによって返信を投稿"
 
-#: ../inc/forum.inc:708
+#: ../inc/forum.inc:717
 msgid "Hidden by a moderator"
-msgstr ""
+msgstr "モデレーターによって隠されています"
 
-# #######################################
-# Forum
-#: ../inc/forum.inc:729
-#, fuzzy
+#: ../inc/forum.inc:738
 msgid "Posted %1 by %2"
-msgstr "%1 からの投稿"
+msgstr "%2 さんによって %1 が投稿されました"
 
-#: ../inc/forum.inc:747
-#, fuzzy
+#: ../inc/forum.inc:756
 msgid "You may not post or rate messages until %1"
-msgstr "非公開メッセージは届いていません。"
+msgstr "あなたは %1 までメッセージを投稿もしくは評価してはいけません"
 
-#: ../inc/forum.inc:758
+#: ../inc/forum.inc:767
 msgid ""
 "\n"
 "        <ul>\n"
@@ -406,368 +505,352 @@ msgid ""
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
 "        "
-msgstr ""
+msgstr "\n<ul>\n<li> 投稿は「子供に無害」でなければなりません。わいせつであったり、憎悪関連、性的に露骨あるいは示唆的であってはなりません。\n<li> 商業広告は禁止です。\n<li> 性的な内容、ギャンブル、他人に不寛容であるものに関係するウェブサイトへのリンクの貼り付けは禁止です。\n<li> 故意に他の人を困らせるあるいは反感をもたせたり、掲示板を乗っ取るメッセージは禁止です。\n<li> 故意的な敵意のあるあるいは侮辱的なメッセージは禁止です。\n<li> 人種、宗教、国籍、性別、階級、性的関心に関連する罵倒は禁止です。"
 
-#: ../inc/forum.inc:780
+#: ../inc/forum.inc:799
 msgid "Rules:"
-msgstr ""
+msgstr "規約:"
 
-#: ../inc/forum.inc:781
-#, fuzzy
+#: ../inc/forum.inc:800
 msgid "More info"
-msgstr "チームの情報"
+msgstr "詳細情報"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
 msgid "Unhide"
 msgstr "表示する"
 
-#: ../inc/forum.inc:1055
-#, fuzzy
+#: ../inc/forum.inc:1098
 msgid "Unhide this post"
-msgstr "このスレッドを見えるようにします"
+msgstr "この投稿を見えるようにします"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
 msgid "Hide"
 msgstr "隠す"
 
-#: ../inc/forum.inc:1057
-#, fuzzy
+#: ../inc/forum.inc:1100
 msgid "Hide this post"
-msgstr "投稿を隠す"
+msgstr "この投稿を隠します"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
 msgid "Move"
 msgstr "移動する"
 
-#: ../inc/forum.inc:1062
-#, fuzzy
+#: ../inc/forum.inc:1105
 msgid "Move post to a different thread"
-msgstr "このスレッドを別の掲示板に移動します"
+msgstr "この投稿を別の掲示板に移動します"
 
-#: ../inc/forum.inc:1067
-#, fuzzy
+#: ../inc/forum.inc:1110
 msgid "Banish author"
-msgstr "参加者を投稿禁止にする"
+msgstr "投稿者を投稿禁止にする"
 
-#: ../inc/forum.inc:1074
-#, fuzzy
+#: ../inc/forum.inc:1117
 msgid "Vote to banish author"
-msgstr "参加者を投稿禁止にする権限がありません"
+msgstr "投稿者を投稿禁止にするよう投票"
 
-#: ../inc/forum.inc:1078
-#, fuzzy
+#: ../inc/forum.inc:1121
 msgid "Vote not to banish author"
-msgstr "参加者を投稿禁止にする権限がありません"
+msgstr "投稿者を投稿禁止にしないよう投票"
 
-#: ../inc/forum.inc:1083
-#, fuzzy
+#: ../inc/forum.inc:1126
 msgid "Start vote to banish author"
-msgstr "参加者を投稿禁止にする権限がありません"
+msgstr "投稿者を投稿禁止にするかどうかの採決を開始"
+
+#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
+#: ../user/pm.php:112 ../user/pm.php:152
+msgid "Delete"
+msgstr "削除"
 
-#: ../inc/forum.inc:1116
-#, fuzzy
+#: ../inc/forum.inc:1131
+msgid "Delete this post"
+msgstr "この投稿を削除する"
+
+#: ../inc/forum.inc:1169
 msgid "Only team members can post to the team message board"
-msgstr "チームの掲示板を作成・管理する"
+msgstr "チームメンバーのみがチームの掲示板に投稿できます"
 
-#: ../inc/forum.inc:1126
+#: ../inc/forum.inc:1179
 msgid ""
 "In order to create a new thread in %1 you must have a certain amount of "
 "credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"%1 の中に新しいスレッドを作るには、 "
-"一定の量の功績(credit)を獲得済みでなければなりません。これは、悪用を防いでこの掲示板システムを守るための制約です。"
+msgstr "%1 の中に新しいスレッドを作るには、 一定の量の功績値(credit)を獲得済みでなければなりません。これは、悪用を防いでこの掲示板システムを守るための制約です。"
 
-#: ../inc/forum.inc:1133
+#: ../inc/forum.inc:1186
 msgid ""
 "You cannot create any more threads right now. Please wait a while before "
 "trying again. This delay has been enforced to protect against abuse of the "
 "system."
-msgstr ""
-"現在、スレッドを新規作成することはできません。 "
-"しばらく待ってからもう一度お試しください。悪用防止のため、この掲示板では時間を置かず続けてスレッドを作成することはできません。"
+msgstr "現在、スレッドを新規作成することはできません。 しばらく待ってからもう一度お試しください。悪用防止のため、この掲示板では時間を置かず続けてスレッドを作成することはできません。"
 
-#: ../inc/forum.inc:1140
+#: ../inc/forum.inc:1193
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
+msgstr "この掲示板はロックされました。掲示板のモデレーターおよび管理者のみ投稿が許可されます。"
 
-#: ../inc/forum.inc:1145
+#: ../inc/forum.inc:1198
 msgid "Can't post to a hidden thread."
-msgstr ""
+msgstr "隠された掲示板には投稿できません。"
 
-#: ../inc/forum.inc:1173
+#: ../inc/forum.inc:1232
 msgid "Thread"
 msgstr "スレッド"
 
-# #######################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
+#: ../user/forum_index.php:99
 msgid "Posts"
 msgstr "投稿"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
 msgid "Views"
 msgstr "閲覧数"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
+#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
 msgid "Last post"
 msgstr "最新の投稿"
 
-#: ../inc/forum.inc:1235
-#, fuzzy
+#: ../inc/forum.inc:1294
 msgid "New posts in the thread %1"
-msgstr "スレッドに投稿する"
+msgstr "スレッドへの新しい投稿: %1"
 
-# Better translation welcome.
-#: ../inc/forum.inc:1240
-#, fuzzy
+#: ../inc/forum.inc:1299
 msgid "New posts in subscribed thread"
-msgstr "参加しているスレッド"
+msgstr "参加しているスレッドへの新しい投稿"
 
-#: ../inc/forum.inc:1241
-#, fuzzy
+#: ../inc/forum.inc:1300
 msgid "There are new posts in the thread '%1'"
-msgstr "このスレッドに新しい投稿があったとき、その旨のメイルを受けとりたければここをクリック"
+msgstr "スレッドに新しい投稿があります:「 %1 」"
 
-#: ../inc/forum.inc:1251
+#: ../inc/forum.inc:1310
 msgid "Mark all threads as read"
 msgstr "全てのスレッドを既読にする"
 
-#: ../inc/forum.inc:1252
-#, fuzzy
+#: ../inc/forum.inc:1311
 msgid "Mark all threads in all message boards as read."
-msgstr "すべての掲示板のすべてのスレッドを「既読」状態に設定します。"
+msgstr "すべての掲示板のすべてのスレッドを既読として設定します。"
 
-#: ../inc/host.inc:24
+#: ../inc/host.inc:25
 msgid "No host"
 msgstr "計算機がありません"
 
-#: ../inc/host.inc:26
+#: ../inc/host.inc:27
 msgid "Unavailable"
 msgstr "利用不可"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
 msgid "Home"
 msgstr "自宅"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
+#: ../user/server_status.php:142
 msgid "Work"
 msgstr "勤務場所"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
 msgid "School"
 msgstr "学校"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
+#: ../user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "更新"
 
-#: ../inc/host.inc:85
+#: ../inc/host.inc:84
 msgid "Computer information"
 msgstr "コンピュータの情報"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: ../inc/host.inc:88 ../inc/host.inc:93
 msgid "IP address"
 msgstr "IP アドレス"
 
-#: ../inc/host.inc:89
+#: ../inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(最新%1回は同じ値)"
 
-#: ../inc/host.inc:91
+#: ../inc/host.inc:90
 msgid "External IP address"
 msgstr "外部 IP アドレス"
 
-#: ../inc/host.inc:94
+#: ../inc/host.inc:93
 msgid "Show IP address"
 msgstr "IP アドレスを表示"
 
-#: ../inc/host.inc:96
+#: ../inc/host.inc:95
 msgid "Domain name"
 msgstr "ドメイン名"
 
-#: ../inc/host.inc:98
+#: ../inc/host.inc:97
 msgid "Product name"
-msgstr ""
+msgstr "製品名"
 
-#: ../inc/host.inc:102
+#: ../inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "現地標準時刻"
 
-#: ../inc/host.inc:102
+#: ../inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC %1 時間"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
 msgid "Owner"
 msgstr "所有者"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: ../inc/host.inc:107 ../inc/host.inc:360
 msgid "Anonymous"
 msgstr "非公表"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
 msgid "Created"
 msgstr "作成日時"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
+#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
+#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
+#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
+#: ../user/profile_search_action.php:45
+#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
+#: ../user/top_users.php:59 ../user/user_search.php:125
 msgid "Total credit"
 msgstr "総功績"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
+#: ../user/user_search.php:124
 msgid "Average credit"
 msgstr "功績の平均増加量"
 
-#: ../inc/host.inc:116
+#: ../inc/host.inc:115
 msgid "Cross project credit"
 msgstr "プロジェクト横断の功績値"
 
-#: ../inc/host.inc:118
+#: ../inc/host.inc:117
 msgid "CPU type"
 msgstr "CPUのタイプ"
 
-#: ../inc/host.inc:119
+#: ../inc/host.inc:118
 msgid "Number of processors"
 msgstr "プロセッサ数"
 
-#: ../inc/host.inc:121
+#: ../inc/host.inc:120
 msgid "Coprocessors"
 msgstr "コプロセッサの数"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: ../inc/host.inc:122 ../inc/host.inc:692
 msgid "Operating System"
 msgstr "オペレーティングシステム"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: ../inc/host.inc:125 ../inc/host.inc:235
 msgid "BOINC version"
 msgstr "BOINC のバージョン"
 
-#: ../inc/host.inc:130
+#: ../inc/host.inc:129 ../inc/prefs.inc:237
 msgid "Memory"
 msgstr "メモリ"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: ../inc/host.inc:129 ../inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: ../inc/host.inc:133
 msgid "Cache"
 msgstr "キャッシュ"
 
-#: ../inc/host.inc:134
+#: ../inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: ../inc/host.inc:139
 msgid "Swap space"
 msgstr "スワップ領域"
 
-#: ../inc/host.inc:143
+#: ../inc/host.inc:142
 msgid "Total disk space"
 msgstr "合計ディスク領域"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: ../inc/host.inc:142 ../inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: ../inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "空きディスク領域"
 
-#: ../inc/host.inc:150
+#: ../inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "浮動小数点演算速度の測定値"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: ../inc/host.inc:149 ../inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 メガ 命令/秒"
 
-#: ../inc/host.inc:153
+#: ../inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "整数演算速度の測定値"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: ../inc/host.inc:156 ../inc/host.inc:158
 msgid "Average upload rate"
 msgstr "平均アップロード速度"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: ../inc/host.inc:156 ../inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/秒"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
+#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
 #: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
 #: ../inc/result.inc:278 ../user/explain_state.php:56
 #: ../user/host_app_versions.php:30
 msgid "Unknown"
 msgstr "不明"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: ../inc/host.inc:163 ../inc/host.inc:165
 msgid "Average download rate"
 msgstr "平均ダウンロード速度"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: ../inc/host.inc:168 ../user/host_app_versions.php:65
 msgid "Average turnaround time"
-msgstr "平均ターンアラウンドタイム"
+msgstr "平均ターンアラウンド時間"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../user/forum_search.php:50 ../user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 日"
 
-# #######################################
-# Apps page (apps.php)
-#: ../inc/host.inc:170
+#: ../inc/host.inc:169
 msgid "Application details"
-msgstr "アプリケーションの詳細"
+msgstr "アプリケーションの詳細情報"
 
-#: ../inc/host.inc:171
+#: ../inc/host.inc:170
 msgid "Show"
 msgstr "内容を見る"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
 msgid "Tasks"
 msgstr "タスク"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
-#, fuzzy
+#: ../inc/host.inc:184 ../inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "BOINC クライアントがサーバーに接続した回数"
 
-#: ../inc/host.inc:186
+#: ../inc/host.inc:185
 msgid "Last time contacted server"
-msgstr "最後にサーバに接続した日時"
+msgstr "最後にサーバーに接続した日時"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "BOINC クライアントが走行している時間の割合(%)"
+#: ../inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "BOINC が動作している一部の時間"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "BOINC 走行中にインターネットに接続している時間の割合(%)"
+#: ../inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "BOINC の実行中、一部の時間コンピュータはインターネットに接続されます"
+
+#: ../inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "BOINC の実行中、一部の時間計算が許可されます"
 
 #: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "BOINC 走行中に仕事を処理することが許されている時間割合(%)"
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "BOINC の実行中、一部の時間 GPU による計算が許可されます"
 
 #: ../inc/host.inc:193
 msgid "Average CPU efficiency"
@@ -777,7 +860,7 @@ msgstr "平均 CPU 時間獲得率"
 msgid "Task duration correction factor"
 msgstr "タスク期間補正因子"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: ../inc/host.inc:198 ../inc/host.inc:679
 msgid "Location"
 msgstr "設置場所"
 
@@ -787,13 +870,13 @@ msgstr "このコンピュータを削除"
 
 #: ../inc/host.inc:204
 msgid "Merge duplicate records of this computer"
-msgstr "このコンピュータに関する重複データを合併させる"
+msgstr "このコンピュータに関する重複する記録をマージする"
 
 #: ../inc/host.inc:204
 msgid "Merge"
-msgstr "合併させる"
+msgstr "マージする"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: ../inc/host.inc:207 ../inc/host.inc:694
 msgid "Last contact"
 msgstr "最後の接続日時"
 
@@ -801,30 +884,30 @@ msgstr "最後の接続日時"
 msgid "Computer info"
 msgstr "コンピュータの情報"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
+#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
 #: ../user/top_users.php:48
 msgid "Rank"
 msgstr "順位"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: ../inc/host.inc:225 ../inc/host.inc:684
 msgid "Avg. credit"
 msgstr "平均功績値"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
+#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
+#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
+#: ../inc/team.inc:382 ../inc/user.inc:140
+#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
 #: ../user/top_users.php:58
 msgid "Recent average credit"
-msgstr "最近の平均功績(credits/day)"
+msgstr "最近の平均功績(功績値/日)"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
+#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
 #: ../user/host_app_versions.php:25
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: ../inc/host.inc:237 ../inc/host.inc:690
 msgid "GPU"
 msgstr "GPU"
 
@@ -832,93 +915,85 @@ msgstr "GPU"
 msgid "Operating system"
 msgstr "オペレーティングシステム"
 
-#: ../inc/host.inc:315
+#: ../inc/host.inc:320
 msgid "(%1 processors)"
 msgstr "(プロセッサ数 %1)"
 
-#: ../inc/host.inc:335
+#: ../inc/host.inc:340
 msgid "Details"
 msgstr "詳細"
 
-#: ../inc/host.inc:340
+#: ../inc/host.inc:345
 msgid "Cross-project stats:"
 msgstr "プロジェクト横断 統計データ:"
 
-#: ../inc/host.inc:515
+#: ../inc/host.inc:520
 msgid "Host %1 has overlapping lifetime:"
-msgstr "計算機 %1 には右の重複生存期間があります:"
+msgstr "計算機 %1 は右の重複する存続期間があります:"
 
-#: ../inc/host.inc:522
+#: ../inc/host.inc:527
 msgid "Host %1 has an incompatible OS:"
-msgstr "計算機 %1 の OS とは互換性がありません:"
+msgstr "計算機 %1 のOSとは互換性がありません:"
 
-#: ../inc/host.inc:528
+#: ../inc/host.inc:533
 msgid "Host %1 has an incompatible CPU:"
-msgstr "計算機 %1 の CPU とは互換性がありません:"
+msgstr "計算機 %1 のCPUとは互換性がありません:"
 
-#: ../inc/host.inc:595
+#: ../inc/host.inc:600
 msgid "same host"
 msgstr "同一の計算機です"
 
-#: ../inc/host.inc:598
+#: ../inc/host.inc:603
 msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "計算機 %1 を %2 にはマージできません - 両者に互換性がありません"
+msgstr "計算機 %1 を %2 にマージできません - 両者に互換性がありません"
 
-#: ../inc/host.inc:601
+#: ../inc/host.inc:606
 msgid "Merging host %1 into host %2"
 msgstr "計算機 %1 を %2 にマージしています"
 
-#: ../inc/host.inc:618
+#: ../inc/host.inc:623
 msgid "Couldn't update credit of new computer"
 msgstr "新しいコンピュータの功績値を更新できませんでした"
 
-#: ../inc/host.inc:622
+#: ../inc/host.inc:627
 msgid "Couldn't update results"
-msgstr "リザルトを更新できませんでした"
+msgstr "結果を更新できませんでした"
 
-#: ../inc/host.inc:627
+#: ../inc/host.inc:632
 msgid "Couldn't retire old computer"
 msgstr "古いコンピュータを退役させることができませんでした"
 
-#: ../inc/host.inc:629
+#: ../inc/host.inc:634
 msgid "Retired old computer %1"
 msgstr "古いコンピュータ %1 を引退させました"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "Show:"
 msgstr "表示範囲:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "All computers"
 msgstr "すべてのコンピュータ"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "Only computers active in past 30 days"
 msgstr "過去30日の間に活動のあったコンピュータのみ"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: ../inc/host.inc:671 ../inc/result.inc:642
 msgid "Computer ID"
-msgstr "コンピュータ ID "
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "名前"
+msgstr "コンピュータのID "
 
-#: ../inc/host.inc:682
+#: ../inc/host.inc:687
 msgid "BOINC<br>version"
 msgstr "BOINC<br>バージョン"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: ../inc/host.inc:750 ../user/merge_by_name.php:65
 msgid "Merge computers by name"
-msgstr "ドメイン名でコンピュータを合併する"
+msgstr "ドメイン名でコンピュータをマージする"
 
-#: ../inc/language_names.inc:61
+#: ../inc/language_names.inc:62
 msgid "Browser default"
-msgstr ""
+msgstr "ブラウザのデフォルト"
 
 #: ../inc/news.inc:40
 msgid "Comment"
@@ -929,32 +1004,31 @@ msgstr "コメント"
 msgid "News is available as an %sRSS feed%s"
 msgstr "ニュースは、%sRSSフィード%s で読めます"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
 msgid "Inbox"
 msgstr "受信箱"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: ../inc/pm.inc:26 ../inc/pm.inc:180
 msgid "Write"
 msgstr "作成"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
+#: ../inc/pm.inc:33 ../inc/user.inc:458
 msgid "Send private message"
 msgstr "非公開メッセージを送信する"
 
 #: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
 #: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
 #: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: ../user/forum_post.php:65 ../user/forum_post.php:91
+#: ../user/forum_post.php:93 ../user/forum_post.php:134
+#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
+#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
 msgid "Preview"
 msgstr "プレビュー"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
+#: ../inc/pm.inc:48 ../user/pm.php:136
 msgid "no such message"
-msgstr "該当する参加者はありません"
+msgstr "該当するメッセージはありません"
 
 #: ../inc/pm.inc:82
 msgid "To"
@@ -962,401 +1036,515 @@ msgstr "宛先"
 
 #: ../inc/pm.inc:82
 msgid "User IDs or unique usernames, separated with commas"
-msgstr "参加者のIDあるいは、一意な名前を入力。複数の場合はカンマで区切ってください。"
+msgstr "ユーザーIDあるいは、一意の名前を入力します。複数の場合はカンマで区切ってください。"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
+#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
 msgid "Subject"
 msgstr "件名"
 
 #: ../inc/pm.inc:89
 msgid "Send message"
-msgstr "メッセージ送信"
+msgstr "メッセージを送信"
 
-# English dependent message structure. Strongly Discouraged.
-#: ../inc/pm.inc:121
+#: ../inc/pm.inc:122
 msgid "sent you a private message; subject:"
-msgstr "さんが、あなたに非公開メッセージを送ってきました。件名:"
+msgstr "さんがあなたに非公開メッセージを送信しました。件名:"
 
-# English dependent message structure. Strongly Discouraged.
-#: ../inc/pm.inc:127
+#: ../inc/pm.inc:129
 msgid "Private message%1 from %2, subject:"
 msgstr "非公開メッセージ%1 送信者: %2、件名:"
 
-#: ../inc/pm.inc:135
+#: ../inc/pm.inc:137
 msgid "Couldn't create message"
 msgstr "非公開メッセージを作成できませんでした"
 
-#: ../inc/pm.inc:166
+#: ../inc/pm.inc:168
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
 msgstr "非公開メッセージをこれほど頻繁には送信することができません。さらにメッセージを送信したい場合は時間をおいてからにしてください。"
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: ../inc/pm.inc:178 ../user/forum_forum.php:190
 msgid "unread"
 msgstr "未読"
 
-#: ../inc/pm.inc:186
+#: ../inc/pm.inc:188
 msgid "For email notification, %1edit community prefs%2"
-msgstr "Eメイルでの通知を必要とする場合、%1コミュニティのプレファレンスを編集%2してください"
+msgstr "Eメールでの通知を必要とする場合、%1コミュニティのプレファレンスを編集%2してください"
 
-# #######################################
-# Private messages
-#: ../inc/pm.inc:198
+#: ../inc/pm.inc:204
 msgid "Private message"
 msgstr "非公開メッセージ"
 
-#: ../inc/prefs.inc:77
+#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
+msgid "Usage limits"
+msgstr "使用量の制限"
+
+#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
+msgid "Use at most"
+msgstr "最大使用時で"
+
+#: ../inc/prefs.inc:49
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr "コンピュータがバッテリーで動作しているときには、計算を一時停止させるか? %1 携帯型のコンピュータの場合だけ有意 %2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "他のアプリケーションのためにいくつかの CPU を自由に保ちます。例: 75%であれば、8コアCPUの場合そのうち6コアを使用することを意味します。"
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "コンピュータで作業中は、計算を一時停止させますか?"
+#: ../inc/prefs.inc:52
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% oの CPUコアまで"
 
-#: ../inc/prefs.inc:91
+#: ../inc/prefs.inc:57
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr "コンピュータで作業中は、GPU 向けの計算を一時停止させますか? %1 Version 6.6.21以降で有効%2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "CPU温度とエネルギー使用量を抑制するために数秒ごとに計算を一時停止/再開する。例: 75%であれば、3秒計算・1秒一時停止を繰り返します。"
 
-# Suspicious of being English-dependent word sequence.
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "「作業中」とは、マウスまたはキーボード操作が右の時間内にあった場合のことです:"
+#: ../inc/prefs.inc:60
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% の CPU 時間まで"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "分"
+#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
+msgid "When to suspend"
+msgstr "いつ一時停止するか"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr "マウスとキーボとの操作が右の時間内になければ計算を一時停止させる%1 コンピュータによっては低電力モードに入る必要がある%2"
+#: ../inc/prefs.inc:64
+msgid "Suspend when computer is on battery"
+msgstr "コンピュータがバッテリーで稼働している時一時停止"
 
-#: ../inc/prefs.inc:114
+#: ../inc/prefs.inc:65
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"BOINC とは関係のない CPU 使用率が 右の値を超えたら、計算を一時停止する%1 0 を指定すると制約なし<br>Version "
-"6.10.30以降で有効%2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "携帯用機器でバッテリー電源で動作している時計算を一時停止するには、ここにチェックを入れてください。"
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "右の時間帯内でのみ計算をする %1 2つの時刻が等しければ制約なし %2"
+#: ../inc/prefs.inc:70
+msgid "Suspend when computer is in use"
+msgstr "コンピュータを使用中は、計算を一時停止"
 
-#: ../inc/prefs.inc:130
+#: ../inc/prefs.inc:71
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr "一時停止したときタスクをメモリ内に残すか? %1( 'yes/はい' を指定すると、一時停止のためにそのタスクはスワップ領域を使用する)%2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "あなたがコンピュータを使用している時計算とファイル転送を一時停止するには、ここにチェックを入れます。"
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "タスク間の切り替え時間間隔 %1 推奨値は: 60 分 %2"
+#: ../inc/prefs.inc:76
+msgid "Suspend GPU computing when computer is in use"
+msgstr "コンピュータを使用中は、GPU による計算を一時停止"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "マルチプロセッサの場合、全プロセッサのうち使うのは最大で"
+#: ../inc/prefs.inc:77
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "あなたがコンピュータを使用している時 GPU による計算を一時停止するには、ここにチェックを入れます。"
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "プロセッサまで"
+#: ../inc/prefs.inc:82
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "「使用中」とは、マウス・キーボード入力が右の時間内にあった場合のことです:"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr "マルチプロセッサで動作する場合、全プロセッサのうち使うのは最大で %1 Version 6.1以降で有効%2"
+#: ../inc/prefs.inc:83
+msgid "This determines when the computer is considered 'in use'."
+msgstr "ここではコンピュータがどんな場合に「使用中」とみなすか決定します。"
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% のプロセッサまで"
+#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
+msgid "minutes"
+msgstr "分"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "最大使用時でも %1 (CPU 過熱防止のためにも指定可)%2"
+#: ../inc/prefs.inc:89
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "「使用中」とは、マウス・キーボード入力が右の時間内にあった場合のことです:"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% の CPU 時間まで"
+#: ../inc/prefs.inc:90
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "これは、一部のコンピュータが使用しないときに低電力モードに入ることを可能にします。"
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "ディスク:最大使用時でも"
+#: ../inc/prefs.inc:95
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "超えることで一時停止する場合の BOINC 以外のCPU使用量:"
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: ../inc/prefs.inc:96
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "コンピュータが他のプログラムによってビジー状態にある時、計算を一時停止します。"
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "ディスク:少なくとも %1 は残す。 %2 未満を指定すると無視される %3"
+#: ../inc/prefs.inc:101
+msgid "Compute only between"
+msgstr "動作許容時間帯:"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% まで(全体比)"
+#: ../inc/prefs.inc:102
+msgid "Compute only during a particular period each day."
+msgstr "それぞれの日の特定範囲の時間帯だけ計算します。"
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "タスクのチェックポイントをディスクに書く最短時間間隔"
+#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
+#: ../user/forum_banishment_vote.php:70
+#: ../user/forum_banishment_vote_action.php:65
+#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "その他"
 
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "秒"
+#: ../inc/prefs.inc:107
+msgid "Store at least"
+msgstr "最低限の備蓄量:"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "スワップ領域:最大でも"
+#: ../inc/prefs.inc:108
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "長時間コンピュータのビジー状態を保つために、最低に見積もっても十分なタスクを蓄えておきます。"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "メモリ:そのコンピュータを人が使っているときは、最大でも"
+#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
+msgid "days of work"
+msgstr "日分の仕事"
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "メモリ:そのコンピュータを人が使っていないときは、最大でも"
+#: ../inc/prefs.inc:113
+msgid "Store up to an additional"
+msgstr "追加で下記の分まで備蓄:"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
+#: ../inc/prefs.inc:114
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "最小レベル以上の追加タスクを備蓄してください。プロジェクトに連絡する際に要求される作業の量を決定します。"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "日"
+#: ../inc/prefs.inc:119
+msgid "Switch between tasks about every"
+msgstr "タスクのおおよその切り替え間隔"
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
+#: ../inc/prefs.inc:120
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "いくつかのプロジェクトを動作させる場合、BOINC はこの間隔でそれらプロジェクトを切り替えるでしょう"
 
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr "インターネットに接続する前に確認を求めるか? %1(モデム、ISDN または VPN 接続を使っているときだけ有意)%2"
+#: ../inc/prefs.inc:125
+msgid "Request tasks to checkpoint at most every"
+msgstr "タスクにチェックポイント書き込みを要求する最大間隔"
 
-#: ../inc/prefs.inc:241
+#: ../inc/prefs.inc:126
 msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr "終わったときに接続を切るか? %1(モデム、ISDN または VPN 接続を使っているときだけ有意)%2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "最大ダウンロード速度:"
+"This controls how often tasks save their state to disk, so that they can be "
+"restarted later."
+msgstr "ここではタスクが後ほど再起動されることが出来るようにするために、ディスクにその状態を保存する間隔を設定します。"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "キロバイト/秒"
+#: ../inc/prefs.inc:128
+msgid "seconds"
+msgstr "秒"
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "最大アップロード速度:"
+#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
+msgid "Use no more than"
+msgstr "使用上限:"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "ネットワーク使用を許す時間帯"
+#: ../inc/prefs.inc:137
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "BOINC によって使用されるディスク領域の合計を制限します。"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "転送量の上限値。最大でも右の値まで %1 Version 6.10.46以降で有効 %2"
+#: ../inc/prefs.inc:139
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mバイト/"
+#: ../inc/prefs.inc:142
+msgid "Leave at least"
+msgstr "最低限の空き領域"
 
-#: ../inc/prefs.inc:274
+#: ../inc/prefs.inc:143
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"イメージファイルの検証をスキップしますか?%1 インターネットプロバイダが画像ファイルを変更する場合だけ、チェックを入れてください(たとえば "
-"UMTSの場合)。%2 検証をスキップすると BOINC のセキュリティレベルは低下します。%3"
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "BOINC のデータを格納するボリュームでこれだけの空きスペースを残してディスク使用量を制限します。"
+
+#: ../inc/prefs.inc:145
+msgid "GB free"
+msgstr "GB の空き領域"
 
-#: ../inc/prefs.inc:287
+#: ../inc/prefs.inc:149
 msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"リソース割り当て %1このプロジェクトに割り当てるあなたのコンピュータの資源量を決める指標です。\n"
-" 例えば2つの BOINC プロジェクトに参加していたとしてリソース\n"
-"割り当てをそれぞれ 100、200 と指定したら、1つ目のプロジェクト\n"
-"に1/3が割り当てられ、2つ目には2/3の資源が割り当てられます。%2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "データを格納するボリュームで BOINC が使用するディスク領域の割合を制限します。"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "GPU タスクを高速化するために、それぞれに CPU を専用に割り当てるか?"
+#: ../inc/prefs.inc:152
+#, no-php-format
+msgid "% of total"
+msgstr "% まで(全体比)"
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "CPU を計算に使うか %1 Version 6.10以降で有効 %2"
+#: ../inc/prefs.inc:158
+msgid "When computer is in use, use at most"
+msgstr "コンピュータを使用中、使用するのは最大でも"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "ATI GPU を計算に使うか %1 Version 6.10以降で有効 %2"
+#: ../inc/prefs.inc:159
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "あなたがコンピュータを使用している時 BOINC よって使用されるメモリを制限します。"
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "NVIDIA GPU を計算に使うか %1 Version 6.10以降で有効 %2"
+#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "ATI GPU を計算に使うか %1 Version 6.10以降で有効 %2"
+#: ../inc/prefs.inc:165
+msgid "When computer is not in use, use at most"
+msgstr "コンピュータが使用されていない時、使用するのは最大でも"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"テスト中のアプリケーションでも実行しますか? %1 "
-"指定すればアプリケーション開発者を手助けすることになりますが、そのアプリケーションはあなたのコンピュータ上で異常終了することがあるかもしれません%2"
+#: ../inc/prefs.inc:166
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "あなたがコンピュータを使用していない時 BOINC によって使用されるメモリを制限します。"
+
+#: ../inc/prefs.inc:172
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "一時停止中に、GPU向けでないタスクをメモリ上に残す"
 
-#: ../inc/prefs.inc:367
+#: ../inc/prefs.inc:173
 msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr "Eメイルが %1 より送付されます。スパムフィルターがこのアドレスをブロックしないようにしてください。"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "チェックを入れた場合、一時停止されたタスクはメモリにとどまり、仕事のロスなしで再開します。チェックを外した場合、一時停止されたタスクはメモリから取り除かれ、最後のチェックポイントから再開します。"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "%1 および(所属している場合)あなたのチームから、Eメイルを送信してもよろしいですか?"
+#: ../inc/prefs.inc:178
+msgid "Page/swap file: use at most"
+msgstr "ページ/スワップファイル: 最大使用時でも"
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1 があなたのコンピュータをこのウェブサイト上に表示してかまいませんか?"
+#: ../inc/prefs.inc:179
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "BOINC によって使用されるスワップ領域(ページファイル)を制限します。"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "ディスクとメモリの使用限度"
+#: ../inc/prefs.inc:189
+msgid "Limit download rate to"
+msgstr "ダウンロード速度を下記に制限:"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "プロセッサの使用限度"
+#: ../inc/prefs.inc:190
+msgid "Limit the download rate of file transfers."
+msgstr "ファイル転送のダウンロード速度を制限します。"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "ネットワークの使用限度"
+#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
+msgid "KB/second"
+msgstr "KB/秒"
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "これらのプレファレンス(好みの設定)は、あなたが参加するすべての BOINC プロジェクトに適用されます。"
+#: ../inc/prefs.inc:195
+msgid "Limit upload rate to"
+msgstr "アップロード速度を下記に制限:"
 
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr "%1プレファレンスを更新することができません。 %2 赤色で強調した値は、指定可能範囲外であるか、数値でありません。"
+#: ../inc/prefs.inc:196
+msgid "Limit the upload rate of file transfers."
+msgstr "ファイル転送のアップロード速度を制限します。"
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "不適切な場所: %1"
+#: ../inc/prefs.inc:201
+msgid "Limit usage to"
+msgstr "使用限度量"
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "不適切な適用範囲: %1"
+#: ../inc/prefs.inc:202
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "例: BOINC は多くとも30日ごとに2000MBのデータまで転送するはずです。"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "はい"
+#: ../inc/prefs.inc:205
+msgid "MB every"
+msgstr "MB/"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "いいえ"
+#: ../inc/prefs.inc:206 ../inc/util.inc:303
+msgid "days"
+msgstr "日分"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "制限なし"
+#: ../inc/prefs.inc:210
+msgid "Transfer files only between"
+msgstr "下記の間だけファイルを転送する:"
 
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "追加"
+#: ../inc/prefs.inc:211
+msgid "Transfer files only during a particular period each day."
+msgstr "それぞれの日の特定範囲の時間帯だけファイルを転送します。"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "削除"
+#: ../inc/prefs.inc:216
+msgid "Skip data verification for image files"
+msgstr "画像ファイルのデータ検証をスキップする"
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
+#: ../inc/prefs.inc:217
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "インターネットプロバイダが画像ファイルを変更する場合はチェックを入れてください。検証をスキップすると BOINC のセキュリティレベルは低下します。"
+
+#: ../inc/prefs.inc:222
+msgid "Confirm before connecting to Internet"
+msgstr "インターネットに接続する前に確認する"
+
+#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "モデム、ISDN または VPN 接続を使っているときのみ便利です。"
+
+#: ../inc/prefs.inc:228
+msgid "Disconnect when done"
+msgstr "終わったら切断"
+
+#: ../inc/prefs.inc:235 ../user/explain_state.php:94
 msgid "Computing"
 msgstr "計算"
 
-#: ../inc/prefs.inc:823
+#: ../inc/prefs.inc:236
+msgid "Disk"
+msgstr "ディスク"
+
+#: ../inc/prefs.inc:238
+msgid "Network"
+msgstr "ネットワーク"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: ../inc/prefs.inc:241
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "これらのプレファレンス(好みの設定)は、あなたが参加するすべての BOINC プロジェクトに適用されます。"
+
+#: ../inc/prefs.inc:244
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1 プレファレンスを更新することができません。 %2 赤色で強調された値は指定可能範囲外であるか、数値でありません。"
+
+#: ../inc/prefs.inc:472
+msgid "computing"
+msgstr "コンピューティング"
+
+#: ../inc/prefs.inc:483
 msgid "Separate preferences for %1"
 msgstr "%1用の個別プレファレンス"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
 msgid "Edit preferences"
 msgstr "プレファレンスを編集"
 
-#: ../inc/prefs.inc:839
+#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
+#: ../user/team_admins.php:36
+msgid "Remove"
+msgstr "削除"
+
+#: ../inc/prefs.inc:499
 msgid "Add separate preferences for %1"
 msgstr "%1用に個別プレファレンスを追加する"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
+#: ../inc/prefs.inc:506
+msgid "These settings apply to all computers using this account except"
+msgstr "これらの設定はこのアカウントを使用するすべてのコンピュータに適用します。以下の場合は除きます:"
+
+#: ../inc/prefs.inc:508
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "BOINC マネージャを使用し、ローカルでプレファレンスを設定したコンピュータ"
+
+#: ../inc/prefs.inc:510
+msgid "Android devices"
+msgstr "Android デバイス"
+
+#: ../inc/prefs.inc:513
+msgid "(Switch view)"
 msgstr "(表示切り替え)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
 msgid "Combined preferences"
 msgstr "総合プレファレンス"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "プロジェクトごとの設定"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
 msgid "Primary (default) preferences"
-msgstr "初期(指定省略時)のプレファレンス"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "%1 プレファレンスを編集する"
+msgstr "初期(指定省略時)のプレファレンス"
 
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
+#: ../inc/prefs.inc:537
 msgid "Preferences last modified:"
-msgstr "最後に更新されたプレファレンス:"
+msgstr "最後に変更されたプレファレンス:"
 
-#: ../inc/prefs.inc:944
+#: ../inc/prefs.inc:553
 msgid "Add preferences"
 msgstr "プレファレンスを追加する"
 
-#: ../inc/prefs.inc:948
+#: ../inc/prefs.inc:557
 msgid "Update preferences"
 msgstr "プレファレンスを更新する"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "yes"
+msgstr "はい"
+
+#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "no"
+msgstr "いいえ"
+
+#. TODO: make this a subclass of PREF
+#: ../inc/prefs.inc:638
 msgid "Default computer location"
-msgstr "指定省略時のコンピュータ設置場所"
+msgstr "初期(指定省略時)のコンピュータ設置場所"
+
+#: ../inc/prefs.inc:639
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "新しいコンピュータは計算とプロジェクトのプレファレンスのために、この場所のものを使用します。"
+
+#: ../inc/prefs_project.inc:52
+msgid "Resource share"
+msgstr "リソース割り当て"
+
+#: ../inc/prefs_project.inc:53
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "このプロジェクトに割り当てるあなたのコンピュータの資源量の割合を決める指標です。例えば、2つの BOINC プロジェクトに参加していたとして、リソース割り当てをそれぞれ100・200と指定した場合、1つ目のプロジェクトに1/3が割り当てられ、2つ目には2/3の資源が割り当てられます。"
+
+#: ../inc/prefs_project.inc:61
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "CPU をそれぞれに専用に割り当てて、GPU タスクを高速化しますか?"
+
+#: ../inc/prefs_project.inc:70
+msgid "Use CPU"
+msgstr "CPU を使用する"
+
+#: ../inc/prefs_project.inc:79
+msgid "Use ATI GPU"
+msgstr "ATI GPU を使用する"
+
+#: ../inc/prefs_project.inc:88
+msgid "Use NVIDIA GPU"
+msgstr "NVIDIA GPU を使用する"
+
+#: ../inc/prefs_project.inc:97
+msgid "Use Intel GPU"
+msgstr "Intel GPU を使用する"
+
+#: ../inc/prefs_project.inc:107
+msgid "Run test applications?"
+msgstr "試用版のアプリケーションを実行しますか?"
+
+#: ../inc/prefs_project.inc:108
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "指定すればアプリケーション開発者を手助けすることになりますが、そのアプリケーションはあなたのコンピュータ上で異常終了することがあるかもしれません"
+
+#: ../inc/prefs_project.inc:115
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Eメールが %1 より送付されます。スパムフィルターがこのアドレスをブロックしないようにしてください。"
+
+#: ../inc/prefs_project.inc:123
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "%1 および(所属している場合)あなたのチームから、Eメールを送信してもよろしいですか?"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: ../inc/prefs_project.inc:130
+msgid "Should %1 show your computers on its web site?"
+msgstr "%1 があなたのコンピュータをこのウェブサイト上に表示してかまいませんか?"
+
+#: ../inc/prefs_project.inc:270
+msgid "(Switch View)"
+msgstr "(表示切り替え)"
+
+#: ../inc/prefs_project.inc:276
+msgid "Project specific settings"
+msgstr "プロジェクト固有の設定"
+
+#: ../inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "不適切な場所: %1"
+
+#: ../inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "不適切な適用範囲: %1"
+
+#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
 msgid "and"
 msgstr "~"
 
@@ -1364,15 +1552,15 @@ msgstr "~"
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr "あなたの自己紹介記事は、このプロジェクトから許可が出しだい他の方にも見えるようになります。それまで数日かかるかもしれません。"
+msgstr "あなたのプロフィールはこのプロジェクトから承認され次第、他の方にも見えるようになります。それまで数日かかるかもしれません。"
 
 #: ../inc/profile.inc:92
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr "あなたの自己紹介記事は受け入れられませんでした。他の方からは見えません。変更をお願いします。"
+msgstr "あなたのプロフィールは容認されませんでした。他の方からは見えません。変更してください。"
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
 msgid "Database error"
 msgstr "データベースで異常発生"
 
@@ -1380,41 +1568,39 @@ msgstr "データベースで異常発生"
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"スパムを防ぐため、功績の平均増加量が %1 "
-"より少ない参加者の自己紹介記事は、ログイン済みの参加者からだけしか見ることができません。ご不便をおかけします。"
+msgstr "スパムを防ぐため、功績の平均増加量が %1 より少ない参加者のプロフィールはログイン済みのユーザーに対してしか表示されません。ご不便をおかけします。"
 
 #: ../inc/profile.inc:197
 msgid "User is banished"
-msgstr "参加者は書込み禁止状態になっています"
+msgstr "ユーザーは書き込み禁止状態になっています"
 
 #: ../inc/profile.inc:211
 msgid "No profile exists for that user ID."
-msgstr "その参加者IDには自己紹介記事はありません。"
+msgstr "そのユーザーIDにはプロフィールがありません。"
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: ../inc/profile.inc:219 ../user/create_profile.php:317
 msgid "Edit your profile"
-msgstr "あなたの自己紹介記事(プロファイル)を編集する"
+msgstr "あなたのプロフィールを編集する"
 
 #: ../inc/profile.inc:262
 msgid "Your feedback on this profile"
-msgstr "この自己紹介記事(プロファイル)へのあなたのフィードバック"
+msgstr "このプロフィールへのあなたのフィードバック"
 
 #: ../inc/profile.inc:264
 msgid "Recommend this profile for User of the Day:"
-msgstr "「今日の参加者紹介」へこの自己紹介記事(プロファイル)を推薦する"
+msgstr "「今日の参加者紹介」へこのプロフィールを推薦する:"
 
 #: ../inc/profile.inc:265
 msgid "I %1like%2 this profile"
-msgstr "この自己紹介記事(プロファイル)が%1好き%2"
+msgstr "このプロフィールが %1 好き %2"
 
 #: ../inc/profile.inc:268
 msgid "Alert administrators to an offensive profile:"
-msgstr "不快感を与える自己紹介記事(プロファイル)であることを管理者に注意喚起する:"
+msgstr "不快感を与えるプロフィールであることを管理者に注意喚起する:"
 
 #: ../inc/profile.inc:269
 msgid "I %1do not like%2 this profile"
-msgstr "この自己紹介記事(プロファイル)は%1嫌い%2"
+msgstr "このプロフィールは %1 好ましくない %2"
 
 #: ../inc/result.inc:35
 msgid "Anonymous platform"
@@ -1430,7 +1616,7 @@ msgstr "ATI GPU"
 
 #: ../inc/result.inc:57 ../user/host_app_versions.php:28
 msgid "Intel GPU"
-msgstr ""
+msgstr "Intel GPU"
 
 #: ../inc/result.inc:65
 msgid "Not in DB"
@@ -1440,25 +1626,26 @@ msgstr "データベースに未登録"
 msgid "pending"
 msgstr "保留中"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: ../inc/result.inc:114 ../user/forum_search.php:62
 msgid "All"
 msgstr "すべて"
 
 #: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: ../user/server_status.php:167
 msgid "In progress"
 msgstr "計算中"
 
 #: ../inc/result.inc:116
 msgid "Validation pending"
-msgstr ""
+msgstr "検証を保留中"
 
 #: ../inc/result.inc:117
 msgid "Validation inconclusive"
-msgstr ""
+msgstr "検証したが未確定"
 
 #: ../inc/result.inc:118 ../inc/result.inc:268
 msgid "Valid"
-msgstr "検証済"
+msgstr "有効"
 
 #: ../inc/result.inc:119 ../inc/result.inc:271
 msgid "Invalid"
@@ -1470,9 +1657,10 @@ msgstr "異常発生"
 
 #: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
 msgid "Inactive"
-msgstr "非活性"
+msgstr "活動していない"
 
 #: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: ../user/server_status.php:167
 msgid "Unsent"
 msgstr "未送出"
 
@@ -1494,7 +1682,7 @@ msgstr "計算済、検証不可"
 
 #: ../inc/result.inc:185
 msgid "Completed, validation inconclusive"
-msgstr "計算済、検証したが未決定"
+msgstr "計算済、検証したが未確定"
 
 #: ../inc/result.inc:186
 msgid "Completed, too late to validate"
@@ -1510,11 +1698,11 @@ msgstr "送出できず"
 
 #: ../inc/result.inc:194 ../inc/result.inc:257
 msgid "Cancelled by server"
-msgstr "サーバによりキャンセルされた"
+msgstr "サーバにより取り消し"
 
 #: ../inc/result.inc:199
 msgid "Not started by deadline - canceled"
-msgstr ""
+msgstr "報告期限までに開始されませんでした - 取り消されました"
 
 #: ../inc/result.inc:202
 msgid "Error while downloading"
@@ -1530,12 +1718,11 @@ msgstr "アップロード中に異常発生"
 
 #: ../inc/result.inc:206 ../inc/result.inc:259
 msgid "Aborted by user"
-msgstr "参加者により中止された"
+msgstr "参加者により中止"
 
 #: ../inc/result.inc:207 ../inc/result.inc:260
-#, fuzzy
 msgid "Upload failed"
-msgstr "更新失敗"
+msgstr "アップロード失敗"
 
 #: ../inc/result.inc:210
 msgid "Timed out - no response"
@@ -1543,7 +1730,7 @@ msgstr "タイムアウト - 応答なし"
 
 #: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
 msgid "Didn't need"
-msgstr "計算不要となった"
+msgstr "不要となった"
 
 #: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
 msgid "Validate error"
@@ -1563,15 +1750,15 @@ msgstr "成功"
 
 #: ../inc/result.inc:236
 msgid "Computation error"
-msgstr "計算中に異常発生"
+msgstr "計算エラー"
 
 #: ../inc/result.inc:238
 msgid "Redundant result"
-msgstr "重複したリザルト"
+msgstr "余分な結果"
 
 #: ../inc/result.inc:239 ../user/explain_state.php:68
 msgid "No reply"
-msgstr "返事なし"
+msgstr "応答なし"
 
 #: ../inc/result.inc:249 ../user/explain_state.php:85
 msgid "New"
@@ -1583,11 +1770,11 @@ msgstr "ダウンロード中"
 
 #: ../inc/result.inc:251
 msgid "Processing"
-msgstr "処理"
+msgstr "処理中"
 
 #: ../inc/result.inc:252
 msgid "Compute error"
-msgstr "計算中に異常発生"
+msgstr "計算エラー"
 
 #: ../inc/result.inc:253 ../user/explain_state.php:97
 msgid "Uploading"
@@ -1611,23 +1798,23 @@ msgstr "ワークユニットの異常 - 検証省略"
 
 #: ../inc/result.inc:275
 msgid "Checked, but no consensus yet"
-msgstr "検査したが、一致数がまだ基準に至らず"
+msgstr "検証したが、一致数がまだ基準に至らず"
 
 #: ../inc/result.inc:276
 msgid "Task was reported too late to validate"
-msgstr "検証するには結果の到着が遅すぎた"
+msgstr "検証するにはタスクの報告が遅すぎた"
 
 #: ../inc/result.inc:302
 msgid "Couldn't send result"
-msgstr "結果を送出できなかった"
+msgstr "結果を送出できず"
 
 #: ../inc/result.inc:306
 msgid "Too many errors (may have bug)"
-msgstr "異常過多(おそらくバグ)"
+msgstr "異常過多(おそらくバグ)"
 
 #: ../inc/result.inc:310
 msgid "Too many results (may be nondeterministic)"
-msgstr "計算結果過多(おそらく非決定的)"
+msgstr "計算結果過多(おそらく非決定的)"
 
 #: ../inc/result.inc:314
 msgid "Too many total results"
@@ -1635,139 +1822,144 @@ msgstr "結果の総数過多"
 
 #: ../inc/result.inc:318
 msgid "WU cancelled"
-msgstr "ワークユニットがキャンセルされました"
+msgstr "ワークユニットが取り消されました"
 
 #: ../inc/result.inc:322
+msgid "Canonical result is missing"
+msgstr "基準となる結果が見つかりません"
+
+#: ../inc/result.inc:326
 msgid "Unrecognized Error: %1"
-msgstr "未確認の異常: %1"
+msgstr "認識できない異常: %1"
 
-#: ../inc/result.inc:349
+#: ../inc/result.inc:353
 msgid "Task name"
 msgstr "タスク名"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
+#: ../inc/result.inc:364
 msgid "click for details"
 msgstr "詳細はここをクリック"
 
-#: ../inc/result.inc:349
+#: ../inc/result.inc:353
 msgid "Show IDs"
 msgstr "IDを表示"
 
-#: ../inc/result.inc:354
+#: ../inc/result.inc:358
 msgid "Show names"
 msgstr "名前を表示"
 
-#: ../inc/result.inc:357
+#: ../inc/result.inc:361 ../user/result.php:36
 msgid "Task"
 msgstr "タスク"
 
-#: ../inc/result.inc:360
+#: ../inc/result.inc:364
 msgid "Work unit"
 msgstr "ワークユニット"
 
-#: ../inc/result.inc:369
+#: ../inc/result.inc:373
 msgid "Computer"
 msgstr "コンピュータ"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: ../inc/result.inc:376 ../inc/result.inc:635
 msgid "Sent"
 msgstr "送出日時"
 
-#: ../inc/result.inc:373
+#: ../inc/result.inc:377
 msgid "Time reported<br />or deadline"
-msgstr "報告日時 <br />または期限"
+msgstr "報告日時 <br />または報告期限"
 
-#: ../inc/result.inc:374
+#: ../inc/result.inc:378
 msgid "explain"
 msgstr "説明"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: ../inc/result.inc:380 ../user/server_status.php:113
 msgid "Status"
 msgstr "状態"
 
-#: ../inc/result.inc:377
+#: ../inc/result.inc:381
 msgid "Run time<br />(sec)"
-msgstr "経過時間<br />(秒)"
+msgstr "実行時間<br />(秒)"
 
-#: ../inc/result.inc:378
+#: ../inc/result.inc:382
 msgid "CPU time<br />(sec)"
-msgstr "CPU 時間<br />(秒)"
+msgstr "CPU時間<br />(秒)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: ../inc/result.inc:383 ../inc/result.inc:646
 msgid "Credit"
 msgstr "功績値"
 
-# #######################################
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
 msgid "Application"
 msgstr "アプリケーション"
 
-#: ../inc/result.inc:629
+#: ../inc/result.inc:633
 msgid "Workunit"
 msgstr "ワークユニット"
 
-#: ../inc/result.inc:632
+#: ../inc/result.inc:636
+msgid "Report deadline"
+msgstr "報告期限"
+
+#: ../inc/result.inc:637
 msgid "Received"
 msgstr "受信日時"
 
-#: ../inc/result.inc:633
+#: ../inc/result.inc:638
 msgid "Server state"
 msgstr "サーバー側の状態"
 
-#: ../inc/result.inc:634
+#: ../inc/result.inc:639
 msgid "Outcome"
 msgstr "結果"
 
-#: ../inc/result.inc:635
+#: ../inc/result.inc:640
 msgid "Client state"
 msgstr "クライアント側の状態"
 
-#: ../inc/result.inc:636
+#: ../inc/result.inc:641
 msgid "Exit status"
-msgstr "終了ステイタス"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "報告期限"
+msgstr "終了ステータス"
 
-#: ../inc/result.inc:639
+#: ../inc/result.inc:643
 msgid "Run time"
-msgstr "経過時間"
+msgstr "実行時間"
 
-#: ../inc/result.inc:640
+#: ../inc/result.inc:644
 msgid "CPU time"
-msgstr "CPU 時間"
+msgstr "CPU時間"
 
-#: ../inc/result.inc:641
+#: ../inc/result.inc:645
 msgid "Validate state"
 msgstr "検証状態"
 
-#: ../inc/result.inc:643
+#: ../inc/result.inc:647
+msgid "Device peak FLOPS"
+msgstr "デバイスのピーク FLOPS"
+
+#: ../inc/result.inc:648
 msgid "Application version"
-msgstr "アプリケーションの版数"
+msgstr "アプリケーションのバージョン"
 
-#: ../inc/result.inc:656
+#: ../inc/result.inc:673
 msgid "Output files"
 msgstr "出力ファイル"
 
-#: ../inc/result.inc:659
+#: ../inc/result.inc:676
 msgid "Stderr output"
 msgstr "標準エラー出力(stderr)"
 
-#: ../inc/result.inc:706
+#: ../inc/result.inc:728
 msgid "State"
 msgstr "状態"
 
-#: ../inc/result.inc:747
-#, fuzzy
+#: ../inc/result.inc:769
 msgid "Task name:"
-msgstr "タスク名"
+msgstr "タスク名:"
 
 #: ../inc/team.inc:40
 msgid "Search criteria (use one or more)"
-msgstr "検索条件(一つ以上指定要)"
+msgstr "検索条件(一つ以上要指定)"
 
 #: ../inc/team.inc:41
 msgid "Key words"
@@ -1775,19 +1967,9 @@ msgstr "キーワード"
 
 #: ../inc/team.inc:41
 msgid "Find teams with these words in their names or descriptions"
-msgstr "指定する語句がその名称または説明に含まれているチームを探します"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "国名"
+msgstr "指定する語句がその名称または説明文に含まれているチームを探します"
 
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: ../inc/team.inc:49 ../inc/team.inc:473
 msgid "Type of team"
 msgstr "チームの種類"
 
@@ -1795,9 +1977,9 @@ msgstr "チームの種類"
 msgid "Show only active teams"
 msgstr "活動中のチームだけを表示"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
 msgid "Search"
-msgstr "検索する"
+msgstr "検索"
 
 #: ../inc/team.inc:61
 msgid "Requested by you, and founder response deadline has passed."
@@ -1805,7 +1987,7 @@ msgstr "あなたが要求しましたが、創設者は期限までに応答し
 
 #: ../inc/team.inc:63
 msgid "Complete foundership transfer"
-msgstr "創設者権利の移転を完了させるにはここをクリック"
+msgstr "創設者権利の移転を完了する"
 
 #: ../inc/team.inc:67
 msgid "Requested by you"
@@ -1813,10 +1995,10 @@ msgstr "あなたが要求中です"
 
 #: ../inc/team.inc:67
 msgid "founder response deadline is %1"
-msgstr "創設者の応答期限は、%1"
+msgstr "創設者の応答期限は、 %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
+#: ../inc/user.inc:449
 msgid "None"
 msgstr "なし"
 
@@ -1826,568 +2008,532 @@ msgstr "要求を開始する"
 
 #: ../inc/team.inc:77
 msgid "Deferred"
-msgstr "変更手続き中"
+msgstr "延期された"
 
-#: ../inc/team.inc:87
+#: ../inc/team.inc:91
 msgid "Team info"
 msgstr "チームの情報"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
 msgid "Description"
-msgstr "説明"
+msgstr "説明文"
 
-#: ../inc/team.inc:97
+#: ../inc/team.inc:106
 msgid "Web site"
 msgstr "ウェブサイト"
 
-#: ../inc/team.inc:120
+#: ../inc/team.inc:132
 msgid "Cross-project stats"
 msgstr "プロジェクト横断の統計"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
 msgid "Type"
 msgstr "種類"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: ../inc/team.inc:139 ../user/team_manage.php:65
 msgid "Message board"
 msgstr "掲示板"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
 msgid "Threads"
 msgstr "スレッド"
 
-#: ../inc/team.inc:136
+#: ../inc/team.inc:148
 msgid "Join this team"
 msgstr "このチームに参加する"
 
-#: ../inc/team.inc:137
+#: ../inc/team.inc:149
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"注意:あなたがプロジェクト・プレファレンスの中で 「Eメイルを送っても良い」という意味の項目を選択した状態でチームへ参加すると、 "
-"そのチームの創設者はあなたのメイルアドレスを知ることになります。"
+msgstr "注意:あなたがプロジェクト・プレファレンスの中で「Eメールを送っても良い」と設定した状態でチームへ参加すると、 そのチームの創設者はあなたのメールアドレスを知ることになります。"
 
-#: ../inc/team.inc:140
+#: ../inc/team.inc:152
 msgid "Not accepting new members"
 msgstr "新しいメンバーを受け入れていません"
 
-#: ../inc/team.inc:147
+#: ../inc/team.inc:159
 msgid "Foundership change requested"
 msgstr "創設者権限の移譲が要求されています"
 
-#: ../inc/team.inc:148
+#: ../inc/team.inc:160
 msgid "Respond by %1"
 msgstr "%1 までに応答してください"
 
-#: ../inc/team.inc:152
+#: ../inc/team.inc:164
 msgid "Team foundership change"
 msgstr "チーム創設者の変更"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: ../inc/team.inc:168 ../inc/team.inc:373
 msgid "Members"
 msgstr "メンバー"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: ../inc/team.inc:169 ../inc/team.inc:268
 msgid "Founder"
 msgstr "創設者"
 
-#: ../inc/team.inc:169
+#: ../inc/team.inc:183
 msgid "Admins"
 msgstr "管理者"
 
-#: ../inc/team.inc:184
+#: ../inc/team.inc:198
 msgid "New members in last day"
-msgstr "チームに昨日参加したメンバー"
+msgstr "チームに昨日参加した新しいメンバー"
 
-#: ../inc/team.inc:185
+#: ../inc/team.inc:199
 msgid "Total members"
 msgstr "メンバーの総数"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
 msgid "view"
 msgstr "表示する"
 
-#: ../inc/team.inc:186
+#: ../inc/team.inc:200
 msgid "Active members"
 msgstr "活動中のメンバー数"
 
-#: ../inc/team.inc:187
+#: ../inc/team.inc:201
 msgid "Members with credit"
 msgstr "功績(credit)を獲得済みのメンバーの数"
 
-#: ../inc/team.inc:256
+#: ../inc/team.inc:270
 msgid "Admin"
 msgstr "管理者"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
+#: ../user/top_hosts.php:93 ../user/top_teams.php:123
+#: ../user/top_users.php:128
 msgid "Previous %1"
-msgstr "前の%1項目"
+msgstr "前へ %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
+#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
+#: ../user/top_teams.php:128 ../user/top_users.php:133
 msgid "Next %1"
-msgstr "次の%1項目"
+msgstr "次へ %1"
 
-#: ../inc/team.inc:289
+#: ../inc/team.inc:303
 msgid "No such team."
 msgstr "該当するチームはありません。"
 
-#: ../inc/team.inc:302
+#: ../inc/team.inc:316
 msgid "This operation requires foundership."
 msgstr "この操作には創設者の権限が必要です。"
 
-#: ../inc/team.inc:326
+#: ../inc/team.inc:340
 msgid "This operation requires team admin privileges"
 msgstr "この操作にはチーム管理者の権限が必要です"
 
-#: ../inc/team.inc:422
+#: ../inc/team.inc:442
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"<警告>: これは BOINCワイドのチームです。ここで変更を行っても、 そのうち上書きされてしまいます。代わりに %1 BOINC ワイドのチーム %"
-"2を編集してください。"
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "<警告>: これは BOINC ワイドのチームです。ここで変更を行っても、 そのうち上書きされてしまいます。代わりに %1 BOINC ワイドのチーム %2 を編集してください。"
 
-#: ../inc/team.inc:428
+#: ../inc/team.inc:448
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1プライバシに関連する注意%2: チームを作成すると、あなたのプロジェクト・プレファレンス(資源割り当て、 "
-"グラフィクスについてのプレファレンス)が、公開されます。"
+msgstr "%1 プライバシーに関する注意 %2 : チームを作成すると、あなたのプロジェクト・プレファレンス(リソース割り当て、グラフィックについてのプレファレンス)が公開されます。"
 
-#: ../inc/team.inc:432
+#: ../inc/team.inc:452
 msgid "Team name, text version"
-msgstr "チーム名称、テキスト版"
+msgstr "チーム名、テキスト版"
 
-#: ../inc/team.inc:433
+#: ../inc/team.inc:453
 msgid "Don't use HTML tags."
 msgstr "HTMLタグを使わないでください。"
 
-#: ../inc/team.inc:436
+#: ../inc/team.inc:456
 msgid "Team name, HTML version"
-msgstr "チーム名称、HTML版"
+msgstr "チーム名、HTML版"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: ../inc/team.inc:458 ../inc/team.inc:468
 msgid "You may use %1limited HTML tags%2."
-msgstr "%1一部の HTML タグ%2は使えます。"
+msgstr "%1 一部のHTMLタグ %2 は使えます。"
 
-#: ../inc/team.inc:439
+#: ../inc/team.inc:459
 msgid "If you don't know HTML, leave this box blank."
-msgstr "HTML の使い方をご存知でなければ、この欄は空白にしてください。"
+msgstr "HTMLの使い方をご存知でなければ、この欄は空白にしてください。"
 
-#: ../inc/team.inc:442
+#: ../inc/team.inc:462
 msgid "URL of team web page, if any"
-msgstr "チームのウェブページのURL(もしあれば)"
+msgstr "チームのウェブページのURL(省略可)"
 
-#: ../inc/team.inc:442
+#: ../inc/team.inc:462
 msgid "without \"http://\""
 msgstr "\"http://\" は含めないでください。"
 
-#: ../inc/team.inc:443
+#: ../inc/team.inc:463
 msgid "This URL will be linked to from the team's page on this site."
-msgstr "この URLへ は、このサイト内のチームのページからリンクが張られます。"
+msgstr "このURLへは、このサイト内のチームのページからリンクが張られます。"
 
-#: ../inc/team.inc:446
+#: ../inc/team.inc:466
 msgid "Description of team"
-msgstr "チームの説明"
+msgstr "チームの説明文"
 
-#: ../inc/team.inc:462
+#: ../inc/team.inc:482
 msgid "Accept new members?"
-msgstr "新メンバーを受け入れますか?"
+msgstr "新しいメンバーを受け入れますか?"
 
-#: ../inc/uotd.inc:28
+#: ../inc/uotd.inc:30
 msgid "User profile"
-msgstr "参加者の自己紹介"
+msgstr "参加者のプロフィール"
 
-#: ../inc/user.inc:119
+#: ../inc/user.inc:120
 msgid "Projects in which you are participating"
 msgstr "あなたが参加しているプロジェクト"
 
-#: ../inc/user.inc:121
+#: ../inc/user.inc:122
 msgid "Projects in which %1 is participating"
 msgstr "%1 が参加しているプロジェクト"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Project"
 msgstr "プロジェクト"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Click for user page"
 msgstr "クリックすると参加者のページへ"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Since"
 msgstr "参加開始日"
 
-#: ../inc/user.inc:148
+#: ../inc/user.inc:151
 msgid "Computing and credit"
 msgstr "計算と功績"
 
-#: ../inc/user.inc:151
+#: ../inc/user.inc:154
 msgid "Computers on this account"
 msgstr "このアカウントのコンピュータ"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
+#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
+#: ../user/view_profile.php:66
 msgid "View"
 msgstr "表示"
 
-#: ../inc/user.inc:161
+#: ../inc/user.inc:164
 msgid "Cross-project ID"
 msgstr "プロジェクト横断 ID"
 
-#: ../inc/user.inc:162
+#: ../inc/user.inc:165
 msgid "Cross-project statistics"
 msgstr "プロジェクト横断の統計"
 
-#: ../inc/user.inc:163
+#: ../inc/user.inc:166
 msgid "Account"
 msgstr "アカウント"
 
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
+#: ../inc/user.inc:449 ../user/user_search.php:124
 msgid "Team"
 msgstr "チーム"
 
-#: ../inc/user.inc:167
+#: ../inc/user.inc:170
 msgid "Cross-project"
 msgstr "プロジェクト横断"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
+#: ../inc/user.inc:171
 msgid "Certificate"
 msgstr "証明書"
 
-#: ../inc/user.inc:169
+#: ../inc/user.inc:172
 msgid "Stats on your cell phone"
 msgstr "携帯電話向け統計データ"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "未定義の通知タイプ:%1"
-
-#: ../inc/user.inc:198
+#: ../inc/user.inc:197
 msgid "Account information"
 msgstr "アカウント情報"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: ../inc/user.inc:206 ../user/get_passwd.php:31
+#: ../user/team_email_list.php:73
 msgid "Email address"
-msgstr "Eメイルアドレス"
+msgstr "Eメールアドレス"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: ../inc/user.inc:210 ../inc/user.inc:400
 msgid "URL"
 msgstr "URL"
 
-#: ../inc/user.inc:206
+#: ../inc/user.inc:213
 msgid "Postal code"
 msgstr "郵便番号"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: ../inc/user.inc:214 ../inc/user.inc:394
 msgid "%1 member since"
-msgstr "%1 登録日"
+msgstr "%1 への登録日"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: ../inc/user.inc:219 ../inc/user.inc:223
 msgid "Change"
 msgstr "変更"
 
-#: ../inc/user.inc:209
+#: ../inc/user.inc:224
 msgid "email address"
-msgstr "Eメイルアドレス"
+msgstr "Eメールアドレス"
 
-#: ../inc/user.inc:210
+#: ../inc/user.inc:225
 msgid "password"
 msgstr "パスワード"
 
-#: ../inc/user.inc:211
+#: ../inc/user.inc:226
 msgid "other account info"
 msgstr "その他のアカウント情報"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: ../inc/user.inc:229 ../inc/user.inc:393
 msgid "User ID"
-msgstr "参加者のID(User ID)"
+msgstr "ユーザーID"
 
-#: ../inc/user.inc:213
+#: ../inc/user.inc:229
 msgid "Used in community functions"
-msgstr "コミュニティ機能の中で使われる ID です"
+msgstr "コミュニティ機能の中で使われるIDです"
 
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
+#: ../inc/user.inc:232 ../user/weak_auth.php:25
 msgid "Account keys"
 msgstr "アカウント・キー"
 
-#: ../inc/user.inc:221
+#: ../inc/user.inc:237
 msgid "Preferences"
 msgstr "プレファレンス(好みの設定)"
 
-#: ../inc/user.inc:224
+#: ../inc/user.inc:240
 msgid "When and how BOINC uses your computer"
 msgstr "あなたのコンピュータをいつ・どのようにBOINCに使わせるか。"
 
-# It maybe changed to "processing preferences" later.
-#: ../inc/user.inc:225
+#: ../inc/user.inc:241
 msgid "Computing preferences"
-msgstr "計算についての好みの設定(プレファレンス)"
+msgstr "計算についての好みの設定(プレファレンス)"
 
-#: ../inc/user.inc:228
+#: ../inc/user.inc:244
 msgid "Message boards and private messages"
 msgstr "掲示板と非公開メッセージ"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
-msgstr "コミュニティについての好みの設定(プレファレンス)"
+msgstr "コミュニティについての好みの設定(プレファレンス)"
 
-#: ../inc/user.inc:232
+#: ../inc/user.inc:248
 msgid "Preferences for this project"
 msgstr "このプロジェクト用のプレファレンス"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: ../inc/user.inc:249 ../user/prefs.php:30
 msgid "%1 preferences"
-msgstr "%1 についての好みの設定(プレファレンス)"
+msgstr "%1 についての好みの設定(プレファレンス)"
+
+#: ../inc/user.inc:266
+msgid "View the profile of %1"
+msgstr "%1 のプロフィールを見る"
+
+#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
+msgid "Profile"
+msgstr "プロフィール"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
+#: ../inc/user.inc:307 ../user/sample_index.php:114
 msgid "Community"
 msgstr "コミュニティ"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "削除"
-
-#: ../inc/user.inc:245
+#: ../inc/user.inc:314
 msgid "Create"
 msgstr "作成"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "自己紹介"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: ../inc/user.inc:321 ../inc/user.inc:454
 msgid "%1 posts"
 msgstr "%1 回投稿"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "通知"
 
-#: ../inc/user.inc:269
+#: ../inc/user.inc:346
 msgid "Quit team"
 msgstr "チームを離脱する"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: ../inc/user.inc:348 ../inc/user.inc:365
 msgid "Administer"
 msgstr "管理作業をする"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: ../inc/user.inc:354 ../inc/user.inc:367
 msgid "(foundership change request pending)"
-msgstr "(創設者を変更する要求は保留中)"
+msgstr "(創設者権限の移譲要求は保留中)"
 
-#: ../inc/user.inc:279
+#: ../inc/user.inc:356
 msgid "Member of team"
-msgstr "所属チーム"
+msgstr "チームのメンバー"
 
-#: ../inc/user.inc:281
+#: ../inc/user.inc:358
 msgid "find a team"
-msgstr "チームを探す"
+msgstr "チームを検索"
 
-#: ../inc/user.inc:292
+#: ../inc/user.inc:369
 msgid "Founder but not member of"
-msgstr "設立したチーム(メンバーではない)"
+msgstr "下記のメンバーではない創設者:"
 
-#: ../inc/user.inc:298
+#: ../inc/user.inc:375
 msgid "Find friends"
-msgstr "友人を探す"
+msgstr "友人を検索"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
+#: ../inc/user.inc:467 ../inc/user.inc:476
 msgid "Friends"
 msgstr "友人"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
+#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
 msgid "Computers"
 msgstr "コンピュータ"
 
-#: ../inc/user.inc:338
+#: ../inc/user.inc:415
 msgid "Donor"
 msgstr "寄付の実績"
 
-#: ../inc/user.inc:378
+#: ../inc/user.inc:458
 msgid "Contact"
 msgstr "連絡"
 
-#: ../inc/user.inc:381
+#: ../inc/user.inc:461
 msgid "This person is a friend"
 msgstr "この人物は友人です"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: ../inc/user.inc:462 ../user/friend.php:240
 msgid "Cancel friendship"
 msgstr "友人関係を取り消す"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: ../inc/user.inc:465 ../user/friend.php:39
 msgid "Request pending"
 msgstr "要求は保留中"
 
-#: ../inc/user.inc:387
+#: ../inc/user.inc:467
 msgid "Add as friend"
 msgstr "友人として追加"
 
-#: ../inc/user.inc:446
+#: ../inc/user.inc:526
 msgid "user name cannot have leading or trailing white space"
-msgstr ""
+msgstr "ユーザー名は、先頭もしくは末尾の空白を持つことはできません"
 
-#: ../inc/user.inc:450
+#: ../inc/user.inc:530
 msgid "user name must be nonempty"
-msgstr ""
+msgstr "ユーザー名は空であってはなりません"
 
-#: ../inc/user.inc:454
+#: ../inc/user.inc:534
 msgid "user name may not contain HTML tags"
-msgstr ""
+msgstr "ユーザー名に HTML タグを含んではなりません"
 
-#: ../inc/util.inc:131
+#: ../inc/util.inc:161
 msgid "log out"
 msgstr "ログアウト"
 
-#: ../inc/util.inc:133
+#: ../inc/util.inc:163
 msgid "log in"
 msgstr "ログイン"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "ログインする"
-
-# #######################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: ../inc/util.inc:239 ../user/create_account_form.php:41
 msgid "Create an account"
 msgstr "新しいアカウントを作成"
 
-#: ../inc/util.inc:206
+#: ../inc/util.inc:240
 msgid "Server status page"
-msgstr "サーバー状態のページ"
+msgstr "サーバー側の状態のページ"
 
-#: ../inc/util.inc:248
+#: ../inc/util.inc:277
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr "あなたからの要求を処理中にデータベース・サーバで異常が起こりました。後ほどまた試してくださいませ。"
+msgstr "あなたからの要求を処理中にデータベース・サーバで異常が起こりました。後ほどまた試してください。"
 
-#: ../inc/util.inc:257
+#: ../inc/util.inc:286
 msgid "Unable to handle request"
-msgstr "要求を処理できませんでした"
+msgstr "要求を処理できません"
 
-#: ../inc/util.inc:277
+#: ../inc/util.inc:306
 msgid "hours"
 msgstr "時間"
 
-#: ../inc/util.inc:280
+#: ../inc/util.inc:309
 msgid "min"
 msgstr "分"
 
-#: ../inc/util.inc:283
+#: ../inc/util.inc:312
 msgid "sec"
 msgstr "秒"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "セッションが時間超過しました。ブラウザの戻るボタンをクリックし、そこでページを再読み出し(リフレッシュ)してから、もう一度試してくださいませ。"
-
-# It seems that this msg has already been removed from the trunc. 20110828.
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "%1 の自己紹介記事(プロファイル)を見る"
+#: ../inc/util.inc:473
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "セッションがタイムアウトしました。ブラウザの戻るボタンをクリックし、そこでページを再読み込み(更新)してから、もう一度試してください。"
 
-#: ../inc/util.inc:569
+#: ../inc/util.inc:552
 msgid "Use BBCode tags to format your text"
-msgstr "テキストに書式を付けたいときは BBCode タグを使ってください"
+msgstr "テキストに書式を設定するときはBBコードタグを使ってください"
 
-#: ../inc/util.inc:796
+#: ../inc/util.inc:779
 msgid "Project down for maintenance"
-msgstr "保守作業のためプロジェクト停止中"
+msgstr "メンテナンスのためプロジェクト停止中"
 
-#: ../inc/util.inc:799
+#: ../inc/util.inc:782
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 プロジェクトは保守のため一時的に停止しています。後ほどまた試してくださいませ。"
+msgstr "%1 プロジェクトはメンテナンスのため一時的に停止しています。後ほどまたお試しください。"
 
-#: ../inc/util.inc:817
+#: ../inc/util.inc:800
 msgid "Unable to connect to database - please try again later"
-msgstr "データベースに接続できません - 後ほど試してくださいませ"
+msgstr "データベースに接続できません - 後ほど試してください"
 
-#: ../inc/util.inc:821
+#: ../inc/util.inc:804
 msgid "Unable to select database - please try again later"
-msgstr "データベースの選択ができませんでした(mysql_select_dbに失敗) - 時間を置いてからまた試してください。"
+msgstr "データベースの選択ができませんでした - 後ほどまた試してください"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: ../inc/util.inc:976
+msgid "characters remaining"
+msgstr "文字(残り)"
+
+#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
 msgid "Stay logged in on this computer"
-msgstr "現在のコンピュータからログインしたままにする"
+msgstr "このコンピュータからログインしたままにする"
 
 #: ../user/account_finish.php:34
 msgid "Finish account setup"
 msgstr "アカウント設定を完了させる"
 
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "我々のウェブサイト上であなたを識別する名前です。実名でも、ニックネームでも結構です。"
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "表示したい国の名前があれば、選択してください。"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "郵便番号/ZIP コード"
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "記入は任意"
-
 #: ../user/account_finish_action.php:27
 msgid "You must supply a name for your account"
-msgstr "アカウントには名前をつけなければなりません。"
+msgstr "アカウントには名前をつけなければなりません"
 
 #: ../user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
-msgstr "アカウントの名前の中では、HTML タグは使えません。"
+msgstr "アカウントの名前の中では、HTML タグは使えません"
+
+#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
+#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "%1 プレファレンスを編集する"
 
-#: ../user/add_venue.php:81
+#: ../user/add_venue.php:82
 msgid "Add %1 preferences for %2"
-msgstr "%1 プレファレンスを %2 向けに追加"
+msgstr "%1 プレファレンスを %2 向けに追加"
 
-# #######################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
+#: ../user/apps.php:31 ../user/sample_index.php:104
 msgid "Applications"
 msgstr "アプリケーション"
 
-#: ../user/apps.php:33
+#: ../user/apps.php:32
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 プロジェクトには、現在下記のアプリケーションがあります。 %1 プロジェクトに参加すると、これらのアプリケーションのうち、 "
-"1つまたは複数のアプリケーションの仕事があなたのコンピュータに割り当てられます。 これらのアプリケーションの最新版がダウンロードされます。 "
-"これらは自動的に行われるので、ダウンロードについてあなたは何もする必要はありません。 "
+msgstr "%1 プロジェクトには、現在下記のアプリケーションがあります。 %1 プロジェクトに参加すると、これらのアプリケーションのうち、 1つまたは複数のアプリケーションのタスクがあなたのコンピュータに割り当てられます。これらのアプリケーションの最新版がダウンロードされます。これらは自動的に行われるので、何もする必要はありません。 "
 
-#: ../user/apps.php:50
+#: ../user/apps.php:54
 msgid "Platform"
 msgstr "プラットフォーム"
 
-#: ../user/apps.php:51
+#: ../user/apps.php:55
 msgid "Version"
-msgstr "版"
+msgstr "バージョン"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "登録日"
+#: ../user/apps.php:57
+msgid "Average computing"
+msgstr "平均的な計算"
 
 #: ../user/bbcode.php:23
 msgid "BBCode tags"
@@ -2399,11 +2545,7 @@ msgid ""
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"BBコードのタグを使って、あなたの自己紹介の文章(プロファイル)や、掲示板へ投稿する\n"
-"文章に書式を付けることができます。それは HTML の流儀に似ていますが、より簡潔\n"
-"なものです。これらのタグは [ で始まり、] で終わります。 (HTMLでは %1 で始まり\n"
-"、%2 で終わる約束でした。)"
+msgstr "BBコードタグで、あなたのプロフィール・掲示板へ投稿するメッセージに書式を付けることができます。\nそれは HTML に似ていますが、よりわかりやすいものです。これらのタグは [ で始まり、] で終わります (HTMLでは %1 で始まり\n、%2 で終わる約束でした)。"
 
 #: ../user/bbcode.php:31
 msgid "Examples"
@@ -2422,162 +2564,78 @@ msgid "Underline"
 msgstr "下線"
 
 #: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "説明"
+msgid "Strikethrough"
+msgstr "取り消し線"
 
 #: ../user/bbcode.php:36
+msgid "Superscript"
+msgstr "上付き文字"
+
+#: ../user/bbcode.php:37
 msgid "Big text"
 msgstr "大きな字"
 
-#: ../user/bbcode.php:37
+#: ../user/bbcode.php:38
 msgid "Red text"
-msgstr "赤字"
+msgstr "赤色の字"
 
-#: ../user/bbcode.php:38
+#: ../user/bbcode.php:39
 msgid "link to website"
 msgstr "ウェブサイトへのリンク"
 
-#: ../user/bbcode.php:39
+#: ../user/bbcode.php:40
 msgid "Quoted text"
-msgstr "引用テキスト"
+msgstr "引用するテキスト"
 
-#: ../user/bbcode.php:39
+#: ../user/bbcode.php:40
 msgid "use for quoted blocks of text"
-msgstr "引用テキストをブロックに入れて表示します"
+msgstr "テキストを引用されたブロックとするために使います"
 
-#: ../user/bbcode.php:40
+#: ../user/bbcode.php:41
 msgid "use to display an image"
 msgstr "画像の表示に使います"
 
-#: ../user/bbcode.php:41
+#: ../user/bbcode.php:42
 msgid "Code snippet here"
-msgstr "短いソースコードの表示"
+msgstr "コード・スニペットはここ"
 
-#: ../user/bbcode.php:41
+#: ../user/bbcode.php:42
 msgid "use to display some code"
-msgstr "ソースコードの断片を表示させるために使います"
+msgstr "ソースコードを表示させるために使います"
 
-#: ../user/bbcode.php:42
+#: ../user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "フォーマット済みテキスト"
 
-#: ../user/bbcode.php:42
+#: ../user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "フォーマット済み(通常固定幅の)テキストを表示するために使います"
+msgstr "フォーマット済み(通常は等幅の)テキストを表示させるために使います"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item 1"
-msgstr "項目1"
+msgstr "項目 1"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item2"
 msgstr "項目2"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item 2"
 msgstr "項目 2"
 
-#: ../user/bbcode.php:45
+#: ../user/bbcode.php:46
 msgid "use to link to Trac ticket on BOINC website"
-msgstr "BOINC ウェブサイト上の Tracチケットへリンクするために使います"
+msgstr "BOINC ウェブサイト上の Trac チケットへリンクするために使います"
 
-#: ../user/bbcode.php:47
+#: ../user/bbcode.php:48
 msgid "use to link to Trac Wiki on BOINC website"
 msgstr "BOINC ウェブサイト上の Trac Wiki へリンクするために使います"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "BOINC ウェブサイト上の SVNチェンジセットへとリンクするために使います"
-
-#: ../user/bbcode.php:53
+#: ../user/bbcode.php:52
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"開始タグだけで終了タグなしのまま放置したり、パラメータを正しく\n"
-"指定しないと、書式は機能せずタグがそのまま表示されます。"
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# #######################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "あなたのアカウント"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "チーム"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "毎日の参加者紹介"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "サーバー側の状態"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "自己紹介記事(プロファイル)"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# #######################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "参加者のランキング"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "コンピュータのランキング"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "チームのランキング"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "言語"
-
-# #######################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "このプロジェクトの「規則と方針」を読んでください。"
+msgstr "開始タグだけで終了タグなしのまま放置したり、パラメータを正しく\n指定しないと、フォーマットされたテキストではなくタグがそのまま表示されます。"
 
 #: ../user/create_account_action.php:26
 msgid "Can't create account"
@@ -2585,213 +2643,162 @@ msgstr "アカウントを作成できません"
 
 #: ../user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "ブラウザの<b>戻る(back)</b>ボタンをクリックし、もう一度試してください。"
+msgstr "ブラウザの<b>戻る</b>ボタンをクリックし、もう一度試してください。"
 
-#: ../user/create_account_action.php:47
+#: ../user/create_account_action.php:46
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "あなたが reCAPTCH へ打ち込んだ内容は正しくありませんでした。もう一度試してください。 "
 
-#: ../user/create_account_action.php:70
+#: ../user/create_account_action.php:69
 msgid "You must supply an invitation code to create an account."
-msgstr "アカウントを作るには、招待コードを入力してください。"
+msgstr "アカウントを作るには、招待コードを入力しなければなりません。"
 
-#: ../user/create_account_action.php:73
+#: ../user/create_account_action.php:72
 msgid "The invitation code you gave is not valid."
-msgstr "入力した招待コードの値は正しくありません。"
+msgstr "入力した招待コードの値は有効ではありません。"
 
-#: ../user/create_account_action.php:84
+#: ../user/create_account_action.php:83
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "メイルアドレスが正しくありません:有効な name at domain の形式でアドレスを入力してください"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "無効なメールアドレスです: 「ローカル部@ドメイン」の形式で有効なアドレスを入力しなければなりません"
 
-#: ../user/create_account_action.php:88
+#: ../user/create_account_action.php:87
 msgid "There's already an account with that email address."
-msgstr "その Eメイルアドレスを使っているアカウントがすでに存在しています。"
+msgstr "そのメールアドレスを使っているアカウントがすでに存在しています。"
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
 msgid "New passwords are different"
-msgstr "新パスワードの値として入力した2つの値が異なっています"
+msgstr "新しいパスワードとして入力した2つが一致しません"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "パスワードには、ASCII 文字しか使えません。"
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
-msgstr "新パスワードが短すぎます:最低でも %1 文字だけの長さが必要です。"
+msgstr "新しいパスワードが短すぎます: 最低でも %1 文字だけの長さが必要です。"
 
-#: ../user/create_account_action.php:127
+#: ../user/create_account_action.php:126
 msgid "Couldn't create account"
 msgstr "アカウントを作成できませんでした"
 
-#: ../user/create_account_form.php:44
+#: ../user/create_account_form.php:45
 msgid ""
 "NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
 "select Add Project, and enter an email address and password."
-msgstr ""
+msgstr "注意: BOINC マネージャを使用する場合、このフォームを使用しないでください。ともかくBOINCを起動し、「プロジェクトを追加」を選択し、Eメールアドレスとパスワードを入力してください。"
 
-#: ../user/create_account_form.php:61
+#: ../user/create_account_form.php:57
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"作成するアカウントは、チーム %1 "
-"に加わります。さらに、そのアカウントの持つプロジェクト・プレファレンス(好みの設定)は、そのチームの創設者のものと同じになります。"
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "招待コード"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "アカウントを作るには、正しい招待コードが必要です。"
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Eメイルアドレス"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "有効なメイルアドレスを、「 name at domain 」の形で記入してください。"
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "パスワード"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "少なくとも %s 文字はなければなりません。"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "確認のためパスワードをもう一度"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "画像の中の文字列を読み取って入力してください。"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "アカウントを作成する"
+msgstr "このアカウントは、チーム %1 に加わります。さらに、そのアカウントの持つプロジェクト・プレファレンス(好みの設定)は、そのチームの創設者のものと同じになります。"
 
-#: ../user/create_profile.php:50
+#: ../user/create_profile.php:52
 msgid "Picture"
 msgstr "写真"
 
-#: ../user/create_profile.php:64
+#: ../user/create_profile.php:66
 msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 自己紹介に載せるあなたの写真は左のとおりです。"
+msgstr "%1 でのあなたのプロフィール写真は左のとおりです。"
 
-#: ../user/create_profile.php:66
+#: ../user/create_profile.php:68
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"置き換えたいなら、「参照」または「ファイルを選択」などと書かれた次のボタンをクリックして、JPEG または PNG ファイル(サイズは %"
-"1以下)を指定してください。"
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "置き換えたいなら、「参照」または「ファイルを選択」などと書かれた次のボタンをクリックして、JPEG または PNG ファイル(サイズは %1 以下)を指定してください。"
 
-#: ../user/create_profile.php:69
+#: ../user/create_profile.php:71
 msgid "To remove it from your profile, check this box:"
-msgstr "あなたの自己紹介記事から写真を削除するには、右のボックスにチェックを入れてください :"
+msgstr "あなたのプロフィールから写真を削除するには、右のボックスにチェックを入れてください : "
 
-#: ../user/create_profile.php:77
+#: ../user/create_profile.php:79
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"自己紹介にあなたの写真を載せたいなら、「参照」または「ファイルを選択」などと書かれた右のボタンををクリックして、JPEG または PNG "
-"ファイルを指定してください。 サイズが %1 以下のものを選んでください。"
+msgstr "プロフィールにあなたの写真を載せたいなら、「参照」または「ファイルを選択」などと書かれた右のボタンををクリックして、JPEG または PNG ファイルを指定してください。 サイズが %1 以下のものを選択してください。"
 
-#: ../user/create_profile.php:89
+#: ../user/create_profile.php:91
 msgid "Language"
 msgstr "言語"
 
-#: ../user/create_profile.php:92
+#: ../user/create_profile.php:94
 msgid "Select the language in which your profile is written:"
-msgstr "自己紹介が書かれている言語を選択します:"
+msgstr "プロフィールが書かれている言語を選択します: "
 
-#: ../user/create_profile.php:104
+#: ../user/create_profile.php:106
 msgid "Submit profile"
-msgstr "自己紹介の記事を提出する"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "画像の中の語を読み取って入力してください。"
+msgstr "プロフィールを提出する"
 
-#: ../user/create_profile.php:115
+#: ../user/create_profile.php:112
 msgid "Create/edit profile"
-msgstr "自己紹介の作成・編集"
+msgstr "プロフィールの作成・編集"
 
-#: ../user/create_profile.php:137
+#: ../user/create_profile.php:134
 msgid "The format of your uploaded image is not supported."
-msgstr "あなたがアップロードした画像の形式はサポートしておりません。"
+msgstr "あなたがアップロードした画像の形式はサポートされていません。"
 
-#: ../user/create_profile.php:166
+#: ../user/create_profile.php:163
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
-msgstr "%1自己紹介%2 を載せることによって、意見や経歴をこの %3 コミュニティで共有できます。"
+msgstr "%1プロフィール%2 を載せることによって、意見や経歴をこの %3 コミュニティで共有できます。"
 
-#: ../user/create_profile.php:213
+#: ../user/create_profile.php:209
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "あなたが ReCaptcha へ打ち込んだ内容は正しくありませんでした。もう一度試してください。 "
 
-#: ../user/create_profile.php:222
+#: ../user/create_profile.php:218
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"あなたが書き込んだ初回の内容は Akismet anti-spam "
-"システムからスパムの疑いがあると判定されました。テキストを編集しなおしてから、もう一度試してみてください。"
+msgstr "あなたが書き込んだ最初の内容は Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
 
-#: ../user/create_profile.php:230
+#: ../user/create_profile.php:226
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"あなたが書き込んだ2度目の内容も Akismet anti-spam "
-"システムからスパムの疑いがあると判定されました。テキストを編集しなおしてから、もう一度試してみてください。"
+msgstr "あなたが書き込んだ2度目の内容も Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
 
-#: ../user/create_profile.php:246
+#: ../user/create_profile.php:242
 msgid "Your profile submission was empty."
-msgstr "あなたが提出した自己紹介の内容は空でした。"
+msgstr "あなたが提出したプロフィールの内容は空でした。"
 
-#: ../user/create_profile.php:285
+#: ../user/create_profile.php:283
 msgid "Could not update the profile: database error"
-msgstr "自己紹介の更新に失敗しました: データベースでエラーが発生"
+msgstr "プロフィールの更新に失敗しました: データベースでエラーが発生"
 
-#: ../user/create_profile.php:297
+#: ../user/create_profile.php:299
 msgid "Could not create the profile: database error"
-msgstr "自己紹介の作成に失敗しました: データベースでエラーが発生"
+msgstr "プロフィールの作成に失敗しました: データベースでエラーが発生"
 
-#: ../user/create_profile.php:302
+#: ../user/create_profile.php:304
 msgid "Profile saved"
-msgstr "自己紹介の内容を保存しました"
+msgstr "プロフィールを保存しました"
 
-#: ../user/create_profile.php:304
+#: ../user/create_profile.php:306
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
-msgstr "うまくいきました! あなたの自己紹介記事はこのプロジェクトのデータベースへ格納されました。"
+msgstr "おめでとうございます! あなたのプロフィールはこのプロジェクトのデータベースへ記録されました。"
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1あなたの自己紹介記事を見る%2"
+#: ../user/create_profile.php:309
+msgid "View your profile"
+msgstr "あなたのプロフィールを見る"
 
-#: ../user/create_profile.php:315
+#: ../user/create_profile.php:319
 msgid "Create a profile"
-msgstr "自己紹介記事を作成する"
+msgstr "プロフィールを作成する"
 
-#: ../user/create_profile.php:343
+#: ../user/create_profile.php:347
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"自己紹介を作成または更新するには、スパム防止のため、功績の平均増加量(average credit)が %1 以上である必要があります。 "
-"不便ですがご容赦ください。"
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "スパム防止のため、プロフィールを作成または編集するには、功績の平均増加量(average credit)が %1 以上である必要があります。ご不便をおかけし申し訳ありません。"
 
 #: ../user/delete_account.php:57
 msgid "Couldn't delete account"
-msgstr "古いコンピュータを削除できませんでした"
+msgstr "アカウントを削除できませんでした"
 
 #: ../user/delete_account.php:59
 msgid "Account deleted"
@@ -2812,28 +2819,21 @@ msgid ""
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"ご自分のアカウントを消すすると、あなたに関係するすべての\n"
-"情報がわれわれのサーバから削除されます。あなたの\n"
-"自己紹介記事と掲示板への投稿内容も消えてしまいます。\n"
-"このアカウントに結びついているどのコンピュータにも\n"
-"何も仕事は送られなくなります。"
+msgstr "ご自分のアカウントを削除すると、あなたに関係するすべての情報がわれわれのサーバから削除されます。\nあなたのプロフィールと掲示板への投稿内容も消えてしまいます。\nこのアカウントに追加されているどのコンピュータにも仕事が配布されなくなります。"
 
 #: ../user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"この操作は元に戻すことができません。\n"
-"いったんあなたのアカウントが消えれば、その内容を取り戻すことはできません。"
+msgstr "この操作は元に戻すことができません。\nいったんあなたのアカウントが削除されれば、その内容を取り戻すことはできません。"
 
 #: ../user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
-msgstr "あなたのアカウントを削除しますが、よろしいですか?"
+msgstr "本当にあなたのアカウントを削除してよろしいですか?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
+#: ../user/delete_account.php:79 ../user/delete_profile.php:54
+#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
+#: ../user/prefs_remove.php:53 ../user/user_search.php:59
 #: ../user/user_search.php:64
 msgid "Yes"
 msgstr "はい"
@@ -2842,70 +2842,64 @@ msgstr "はい"
 msgid "Delete this account"
 msgstr "このアカウントを削除"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
+#: ../user/delete_account.php:80 ../user/delete_profile.php:55
+#: ../user/friend.php:241 ../user/user_search.php:58
 #: ../user/user_search.php:63
 msgid "No"
 msgstr "いいえ"
 
 #: ../user/delete_account.php:80
 msgid "Do not delete this account"
-msgstr "このアカウントは削除しない"
+msgstr "このアカウントを削除しない"
 
-#: ../user/delete_profile.php:30
+#: ../user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
-msgstr "自己紹介記事を削除できません - しばらくたってからもう一度試してください。"
+msgstr "プロフィールを削除できませんでした - しばらくたってからもう一度試してください。"
 
-#: ../user/delete_profile.php:33
+#: ../user/delete_profile.php:35
 msgid "Delete Confirmation"
-msgstr "削除完了"
+msgstr "削除確認"
 
-#: ../user/delete_profile.php:35
+#: ../user/delete_profile.php:37
 msgid "Your profile has been deleted."
-msgstr "あなたの自己紹介記事は削除されました。"
+msgstr "あなたのプロフィールは削除されました。"
 
-#: ../user/delete_profile.php:40
+#: ../user/delete_profile.php:42
 msgid "Profile delete confirmation"
-msgstr "自己紹介(プロファイル)削除のご確認"
+msgstr "プロフィール削除の確認"
 
-#: ../user/delete_profile.php:43
+#: ../user/delete_profile.php:45
 msgid "Are you sure?"
-msgstr "削除して本当によろしいですか?"
+msgstr "本当によろしいですか?"
 
-#: ../user/delete_profile.php:44
+#: ../user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"いったん自己紹介記事を削除すると、回復はできません。\n"
-"次にはまったく何もないところから\n"
-"やり直さなければならなくなります。"
+msgstr "いったんプロフィールを削除すると、回復できません。\n将来他のプロフィールを望む場合、まったく何もないところから始めなければならなくなります。"
 
-#: ../user/delete_profile.php:48
-#, fuzzy
+#: ../user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"ご了解のうえ、「削除(Delete)」を押してください。\n"
-"当プロジェクトのデータベースからあなたの自己紹介記事を消します。"
+msgstr "ご了解のうえ、「はい」をクリックしてください。\n当プロジェクトのデータベースからあなたのプロフィールを削除します。"
 
-#: ../user/delete_profile.php:52
+#: ../user/delete_profile.php:54
 msgid "Delete my profile"
-msgstr "自分の自己紹介記事を削除する"
+msgstr "自分のプロフィールを削除する"
 
-#: ../user/delete_profile.php:53
+#: ../user/delete_profile.php:55
 msgid "Do not delete my profile"
-msgstr "自分の自己紹介記事を削除しない"
+msgstr "自分のプロフィールを削除しない"
 
 #: ../user/donated.php:25
 msgid "PayPal - Transaction Completed"
-msgstr "PayPal - 寄付の支払い完了"
+msgstr "PayPal - 取引完了"
 
 #: ../user/donated.php:28
 msgid "Thank you for donating!"
-msgstr "寄付ありがとうございました!"
+msgstr "寄付ありがとうございます!"
 
 #: ../user/donated.php:29
 msgid "Your donation for has been completed."
@@ -2913,8 +2907,9 @@ msgstr "寄付の支払い処理が完了しました。"
 
 #: ../user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr "PayPay からの確認の後、あなたの寄付額は進捗バーの表示に追加されます。"
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "PayPay からの確認の後、あなたの寄付額はプログレスバーに加えられます。"
 
 #: ../user/donated.php:32
 msgid "You have canceled your donation."
@@ -2932,9 +2927,7 @@ msgstr "%1 への寄付"
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"このプロジェクトは、以下の仕組みを経由して寄付を頂いています。\n"
-"%1"
+msgstr "このプロジェクトは、以下の仕組みを経由して寄付を頂いています。\n%1"
 
 #: ../user/donations.php:42
 msgid ""
@@ -2949,17 +2942,7 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"寄付をしていただけるなら、下記の欄に寄付額を入力してくださいませ。\n"
-"        PayPal は複数の通貨からの入金を受付ます\n"
-"        (カナダドル、ユーロ、スターリング・ポンド(英)、米ドル、\n"
-"         円、オーストラリア・ドル、ニュージーランド・ドル、\n"
-"        スイス・フラン、香港ドル、シンガポール・ドル、スウェーデン・クローナ、\n"
-"        デンマーク・クローネ、ポーランド・ズォティ、ノルウェイ・クローネ、\n"
-"        ハンガリー・フォリント、チェコ・コルナ)。\n"
-"        このページに組み込まれた通貨換算機能を使って、異なる通貨での\n"
-"        相当額を調べることができます。(換算に使うレートは推定値ですので、\n"
-"        実際にやり取りされる額とはすこし異なるでしょう)"
+msgstr "寄付をいただける場合、下記の欄への寄付額の入力をお願い致します。\n        PayPal は複数の通貨からの入金を受け付けます\n        (カナダドル、ユーロ、イギリスポンド、アメリカドル、\n         日本円、オーストラリアドル、ニュージーランドドル、\n        スイスフラン、香港ドル、シンガポールドル、\n   スウェーデンクローナ、デンマーククローネ、\n        ポーランドズォティ、ノルウェークローネ、\n        ハンガリーフォリント、チェココルナ)。\nこのページに組み込まれた通貨換算機能を使って、異なる通貨での相当額を調べることができます。\n(換算に使うレートは推定値ですので、実際に取り引きされる額とは差異が生じる可能性があります)"
 
 #: ../user/donations.php:316
 msgid "Amount you would like to donate"
@@ -2967,31 +2950,29 @@ msgstr "寄付したい金額"
 
 #: ../user/donations.php:317
 msgid "Estimated value in"
-msgstr "右の通貨での相当額"
+msgstr "次の通貨での推定相当額"
 
 #: ../user/donations.php:320 ../user/donations.php:324
 msgid "Anonymous donation"
-msgstr "名前を出さない寄付"
+msgstr "匿名での寄付"
 
 #: ../user/donations.php:320
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"寄付者一覧にあなたの名前やアカウントを載せたくなければ、これを選択してくだ\n"
-"さい。<br> チェックを入れなければ、参加者ID %1であなたの寄付を記録いたします。"
+msgstr "寄付者一覧にあなたの名前やアカウント番号を載せたくなければ、\nここを選択してください。<br> チェックを入れなければ、ユーザーID %1 であなたの寄付を記録いたします。"
 
 #: ../user/donations.php:324
 msgid "To assign the donation with your user ID, please log in."
-msgstr "あなたの参加者ID に寄付を結びつけるため、ログインしてください。"
+msgstr "あなたのユーザーIDに寄付を結びつけるには、ログインしてください。"
 
 #: ../user/donations.php:328
 msgid "Proceed"
-msgstr "次に進む"
+msgstr "次へ進む"
 
 #: ../user/donations.php:329
 msgid "Donations are accepted through"
-msgstr "寄付は右の仕組みを通じて受け取ります:"
+msgstr "寄付は右の仕組みを通じて受け取ります:"
 
 #: ../user/download_network.php:25
 msgid "Download BOINC add-on software"
@@ -3004,76 +2985,72 @@ msgstr "いくつかの分類から選んでアプリケーションをダウン
 #: ../user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "これらのアプリケーションは、%1 が保証するものではないので、 使うときにはあなたのリスクにおいて使ってください"
+msgstr "これらのアプリケーションは %1 が推奨するものではないので、ご自身の責任で使用してください。"
 
 #: ../user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"我々はこれらのアプリケーションのインストール方法を提供しません。 \n"
-"しかし、それぞれのアプリケーションの作者がイントールとアンインストールの方法について、ある程度ヘルプを提供しているかもしれません。\n"
-"それが充分でなければ、作者に連絡するべきです。"
+msgstr "我々はこれらのアプリケーションのインストール方法を提供しません。 \nしかし、それぞれのアプリケーションの作者がインストールもしくはアンインストール方法について、ある程度ヘルプを提供しているかもしれません。\nそれが十分でなければ、作者に連絡するべきです。"
 
 #: ../user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "BOINC の インストールと走らせ方は、%1ここ%2 にあります。 "
+msgstr "BOINC のインストールと稼働の仕方は、%1ここ%2 にあります。 "
 
 #: ../user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "この一覧は%1 BOINC のウェブサイト%2で一元管理されています。"
+msgstr "この一覧は %1 BOINC のウェブサイト %2 で集中管理されています。"
 
 #: ../user/edit_email_action.php:31
 msgid "Change email address of account"
-msgstr "あなたのアカウントのEメイルアドレスを変更します"
+msgstr "アカウントのEメールアドレスを変更します"
 
 #: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
-msgstr "新しい Eメイルアドレス '%1' の値が有効ではありせん。"
+msgstr "新しいEメールアドレス '%1' は無効です。"
 
 #: ../user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
-msgstr "新規に登録しようとしている Eメイルアドレスは従来のものと同じです。 "
+msgstr "新しいEメールアドレスは従来のものと同じです。変更はありません。"
 
 #: ../user/edit_email_action.php:42
 msgid "There's already an account with that email address"
-msgstr "その Eメイルアドレスをもつアカウントがすでに存在しています"
+msgstr "そのEメールアドレスをもつアカウントがすでにあります"
 
 #: ../user/edit_email_action.php:54
 msgid "Invalid password."
-msgstr "パスワードが正しくありません。"
+msgstr "無効なパスワードです。"
 
 #: ../user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
-msgstr "あなたのアカウントの Eメイルアドレスは、%1 になりました。"
+msgstr "あなたのアカウントのEメールアドレスは、%1 になりました。"
 
 #: ../user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
-msgstr "%1この Eメイルアドレスの有効性を証拠だてる手続き%2を行ってください。"
+msgstr "%1 このEメールアドレスを認証 %2 してください。"
 
 #: ../user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
-msgstr "データベースで問題が起こったため、あなたの Eメイルアドレスを更新できませんでした。時間を置いてからまた試してくださいませ。"
+msgstr "データベースでの問題が原因であなたのEメールアドレスを更新できませんでした。しばらくたってからもう一度試してください。"
 
 #: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
 msgid "Change email address"
-msgstr "Eメイルアドレスを変更する"
+msgstr "Eメールアドレスを変更する"
 
 #: ../user/edit_email_form.php:36
 msgid "Change the email address of your account"
-msgstr "あなたのアカウントの Eメイルアドレスを変更します"
+msgstr "あなたのアカウントのEメールアドレスを変更します"
 
 #: ../user/edit_email_form.php:37
 msgid "New email address"
-msgstr "新しい Eメイルアドレス"
+msgstr "新しいEメールアドレス"
 
 #: ../user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
-msgstr "有効な Eメイルアドレスを、name at domain の形で記入してください"
+msgstr "有効なEメールアドレスを、「ローカル部@ドメイン」の形で記入しなければなりません。"
 
 #: ../user/edit_email_form.php:48
 msgid "No password?"
@@ -3087,257 +3064,212 @@ msgstr "リセットの確認"
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"コミュニティでの好みの設定(プレファレンス)であなたが変更した内容は、このリセットを実施すると消えてしまいます。リセットを取りやめるには、ブラウザの戻る"
-"(Back)ボタンをクリックしてください。"
+msgstr "コミュニティでのプレファレンス(好みの設定)であなたが変更した内容は、この操作で消えてしまいます。キャンセルするには、ブラウザの戻るボタンをクリックしてください。"
 
 #: ../user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "プレファレンスをリセット"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: ../user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "エラー: 適切な種類のファイルではありません。PNG または JPEG のみが使えます。"
+msgstr "エラー: 適切な種類のファイルではありません。PNG または JPEG のみサポートされます。"
 
-#: ../user/edit_forum_preferences_action.php:114
+#: ../user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "あなたの指定したシグネチャは長すぎます。250バイト未満にしてください。"
+msgstr "あなたの指定したシグネチャは長すぎます。250文字未満にしてください。"
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "該当する参加者: %1 はいません"
+#: ../user/edit_forum_preferences_action.php:139
+#: ../user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "該当する参加者はいません:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: ../user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"どうやってわれわれからの通知を受け取るか(通知とは、新着の非公開メッセージや、友人関係の要求、 参加しているスレッドへの投稿などについての通知)"
+msgstr "どのように非公開メッセージ、友達リクエスト、 参加しているスレッドへの投稿などの新着について通知すれば良いですか?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: ../user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
-msgstr "あなたのアカウントページに表示(メイル通知なし)"
+msgstr "あなたのアカウントページに表示(メール通知なし)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: ../user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
-msgstr "Eメイルで即座に通知"
+msgstr "Eメールで即座に通知"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: ../user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
-msgstr "一日に一回の Eメイルで通知"
+msgstr "一日に一回Eメールで通知"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: ../user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "掲示板での自分の表示方法"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: ../user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "アバター"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: ../user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
-msgstr "掲示板であなたを示す画像"
+msgstr "掲示板であなたを示す画像です。"
 
-#: ../user/edit_forum_preferences_form.php:78
+#: ../user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "データ形式: JPG または PNG。サイズ: 最大 4 KB、100x100 ピクセル"
 
-#: ../user/edit_forum_preferences_form.php:80
+#: ../user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "アバターを使わない"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: ../user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "%1 によって提供され、グローバルに認識されるアバター"
+msgstr "%1 によって提供され、グローバルに認識されるアバターを使用する"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: ../user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
-msgstr "ここでアップロードするアバターの画像を使う"
+msgstr "アップロードされたこのアバター画像を使用する: "
 
-#: ../user/edit_forum_preferences_form.php:87
+#: ../user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "アバターのプレビュー"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: ../user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
-msgstr "アバターがどのように表示されるか"
+msgstr "これは、あなたのアバターがどのように見えるかです"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: ../user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "掲示板へ投稿時のシグネチャ"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: ../user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"%1ここにシグネチャ用の無料のサービス%2がたくさんあります。\n"
-"<br> あなたの最新の功績値(クレジット)や、プロジェクトの\n"
-"<br> ニュースなどを動的なシグネチャ画像で提供してくれます。"
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "バイトの残り"
+msgstr "%1 ここ %2 にシグネチャ用の様々な無料のサービスがあります。\n<br> あなたの最新の功績値(credit)や、プロジェクトの\n<br> ニュースなどを動的なシグネチャ画像で提供してくれます。"
 
-#: ../user/edit_forum_preferences_form.php:105
+#: ../user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
-msgstr "特に指定しなければシグネチャを付加"
+msgstr "デフォルトではシグネチャを付加"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: ../user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "シグネチャのプレビュー"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: ../user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
-msgstr "掲示板の中であなたのシグネチャがどのように表示されるか"
+msgstr "これは、掲示板の中であなたのシグネチャがどのように見えるかです"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: ../user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "メッセージの表示方法"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: ../user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "表示する項目"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: ../user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
-msgstr "アバターの画像を隠す"
+msgstr "アバター画像を隠す"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: ../user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "シグネチャを隠す"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: ../user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
-msgstr "イメージの代わりにリンクを表示"
+msgstr "画像をリンクとして表示"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: ../user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
-msgstr "リンクを別ウィンドー/タブで開く"
+msgstr "リンクを別ウィンドウ/タブで開く"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: ../user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
-msgstr "特別な参加者を強調表示する"
+msgstr "特定の参加者を強調表示する"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: ../user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
-msgstr ""
+msgstr "ページあたりのこれくらい多数のメッセージを表示"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: ../user/edit_forum_preferences_form.php:127
 msgid "How to sort"
-msgstr "並べ替えの指定"
+msgstr "並べ替え方法"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: ../user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "スレッド:"
 
-# #######################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
+#: ../user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "投稿:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: ../user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
-msgstr "スレッド内で最新の投稿に自動的にジャンプする"
+msgstr "スレッド内の最新の投稿に自動的にジャンプする"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: ../user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
-msgstr ""
+msgstr "一番上にスティッキーポストを移動しない"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: ../user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "メッセージのフィルタリング"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "表示から除かれる参加者"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: ../user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
-msgstr "これらの参加者による掲示板への投稿と非公開メッセージとを無視します。"
+msgstr "これらの参加者による掲示板への投稿と非公開メッセージを無視します。"
 
-#: ../user/edit_forum_preferences_form.php:167
+#: ../user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
-msgstr "参加者の ID (たとえば、123456789)"
+msgstr "ユーザーID (たとえば、123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
 msgid "Add user to filter"
 msgstr "フィルターに参加者を追加"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: ../user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "プレファレンスを更新するにはここをクリック"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "リセット"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: ../user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
-msgstr "あるいはここをクリックしてプレファレンスを指定省略時の値に戻します"
+msgstr "あるいはここをクリックしてプレファレンスを初期値にリセットします"
 
 #: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "無効なアカウント・キー"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "この Eメイルアドレスをもつアカウントはありません"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "無効なパスワード"
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "データベースの問題が原因であなたのパスワードを変更できませんでした。後ほどまた試してください。"
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
+#: ../user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "パスワードの変更"
 
-#: ../user/edit_passwd_action.php:67
+#: ../user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "あなたのパスワードは変更されました。"
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "データベースに問題があるため、あなたのパスワードを変更できませんでした。後ほど試してくださいませ。"
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "以下のどちらかを入力して、あなたが誰であるかを示してください:"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "Eメイルアドレスと現在のパスワード"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "あなたのアカウント・キー"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "現在のパスワード"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>または</b>: アカウント・キー"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Eメイルでアカウント・キーを受け取るならこちらへ"
-
-#: ../user/edit_passwd_form.php:53
+#: ../user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "新しいパスワード"
 
-#: ../user/edit_passwd_form.php:54
+#: ../user/edit_passwd_form.php:33
 msgid "New password, again"
-msgstr "新しいパスワードをもう一回"
+msgstr "新しいパスワードをもう一度"
 
 #: ../user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
@@ -3357,15 +3289,15 @@ msgstr "アカウント情報を編集"
 
 #: ../user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
-msgstr "名前 %1 本名またはニックネーム%2"
+msgstr "名前 %1 本名またはニックネーム %2"
 
 #: ../user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 あなたのウェブページのURL、省略可%2"
+msgstr "URL %1 あなたのウェブページのURL、省略可 %2"
 
 #: ../user/edit_user_info_form.php:43
 msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "郵便番号 %1 省略可%2"
+msgstr "郵便番号 %1 省略可 %2"
 
 #: ../user/edit_user_info_form.php:47
 msgid "Update info"
@@ -3380,15 +3312,13 @@ msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"タスクの<b>サーバ側の状態</b>とは、そのタスクがいずれかのコンピュータへ送出済みであるかどうか、送出済みならば、そのコンピュータがそれを計算し終わ"
-"ったか否かという状態のことです。ありうる値は右のとおりです:"
+msgstr "タスクの<b>サーバ側の状態</b>とは、そのタスクがいずれかのコンピュータへ送出済みであるかどうか、送出済みならば、そのコンピュータがそれを計算し終わったかを示します。ありうる値は右のとおりです:"
 
 #: ../user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr "タスクは送出の準備ができていない。(たとえば、その入力ファイルが使えない)"
+msgstr "タスクは送出の準備ができていない(たとえば、その入力ファイルが使えないため)"
 
 #: ../user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
@@ -3426,7 +3356,7 @@ msgstr "そのタスクはあるコンピュータに送出されたが、その
 
 #: ../user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
-msgstr "あるコンピュータがそのタスクの計算を完了し、成功を報告した。"
+msgstr "あるコンピュータがそのタスクの計算を完了し、成功裏にタスクを報告した。"
 
 #: ../user/explain_state.php:63
 msgid ""
@@ -3446,12 +3376,12 @@ msgstr "そのタスクはあるコンピュータに送出されたが、異常
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr "そのタスクはあるコンピュータに送出されたが、所定の時間内に返事がなかった。"
+msgstr "そのタスクはあるコンピュータに送出されたが、制限時間内に返事がなかった。"
 
 #: ../user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
 msgstr "そのタスクはどのコンピュータにも送出されていない。なぜなら、十分な数のタスクが対応するワークユニットで完了しているから。"
 
 #: ../user/explain_state.php:75
@@ -3466,9 +3396,9 @@ msgstr "クライアント側の状態"
 
 #: ../user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr "あるリザルトの<b>クライアント側の状態</b>とは、異常がどの処理段階で発生したかを意味します。"
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "あるリザルトの<b>クライアント側の状態</b>とは、異常がどの処理段階で発生したかを示します。"
 
 #: ../user/explain_state.php:86
 msgid "The computer has not yet completed the task."
@@ -3476,7 +3406,7 @@ msgstr "そのコンピュータはまだそのタスクを完了していない
 
 #: ../user/explain_state.php:89
 msgid "The computer completed the task successfully."
-msgstr "そのコンピュータは、そのタスクを成功裏に計算し終えた。"
+msgstr "そのコンピュータは、そのタスクを成功裏に計算を完了した。"
 
 #: ../user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
@@ -3498,7 +3428,7 @@ msgstr "報告日時または期限"
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr "あるタスクの<b>報告日時または期限</b>の欄は、そのタスクが報告済みかどうかによって意味が右のように違う:"
+msgstr "あるタスクの<b>報告日時または期限</b>の欄は、そのタスクが報告済みかどうかによって意味が右のように決まります:"
 
 #: ../user/explain_state.php:110
 msgid "Already reported"
@@ -3506,7 +3436,7 @@ msgstr "既に報告済みの場合"
 
 #: ../user/explain_state.php:110
 msgid "The date/time it was reported"
-msgstr "その日時はタスクの報告がなされた日時"
+msgstr "その日時はタスクの報告がなされた時のもの"
 
 #: ../user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
@@ -3514,7 +3444,7 @@ msgstr "報告されていないが、期限がまだ先の場合"
 
 #: ../user/explain_state.php:112
 msgid "Deadline, shown in green."
-msgstr "期限の日時を緑色で示す"
+msgstr "期限の日時を緑色で示します。"
 
 #: ../user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
@@ -3522,16 +3452,15 @@ msgstr "報告されておらず、期限が過ぎている場合"
 
 #: ../user/explain_state.php:115
 msgid "Deadline, shown in red."
-msgstr "期限の日時を赤色で示す"
+msgstr "期限の日時を赤色で示します。"
 
-# It seems an unexpected case for programmers.
 #: ../user/explain_state.php:120
 msgid "Unknown field"
 msgstr "不明のフィールド"
 
 #: ../user/ffmail_action.php:47
 msgid "Email preview"
-msgstr "Eメイルのプレビュー"
+msgstr "Eメールのプレビュー"
 
 #: ../user/ffmail_action.php:48
 msgid "Your email will appear as follows:"
@@ -3539,39 +3468,39 @@ msgstr "あなたのEメイルは次のように見えるはずです:"
 
 #: ../user/ffmail_action.php:57
 msgid "Send email"
-msgstr "Eメイルの送信"
+msgstr "Eメールの送信"
 
 #: ../user/ffmail_action.php:59
 msgid "Use your browser's back button to return to message form"
-msgstr "メッセージの入力画面に戻るには、ブラウザの戻る(back)ボタンを使ってください"
+msgstr "メッセージの入力画面に戻るには、ブラウザの戻るボタンを使ってください"
 
 #: ../user/ffmail_action.php:63
 msgid "Sending emails"
-msgstr "Eメイルの送信処理"
+msgstr "Eメールを送信中"
 
-#: ../user/ffmail_action.php:84
+#: ../user/ffmail_action.php:82
 msgid "email sent successfully to %1"
-msgstr "%1 への Eメイル送信が成功しました"
+msgstr "%1 へのEメール送信が成功しました"
 
-#: ../user/ffmail_action.php:86
+#: ../user/ffmail_action.php:84
 msgid "failed to send email to %1: %2"
-msgstr "%1 への Eメイル送信が失敗しました: %2"
+msgstr "%1 へのEメール送信が失敗しました: %2"
 
-#: ../user/ffmail_action.php:92
+#: ../user/ffmail_action.php:90
 msgid "Thanks for telling your friends about %1"
-msgstr "%1 についてお友達にメイルを送っていただき、ありがとうございました"
+msgstr "%1 についてお友達に伝えていただき、ありがとうございます"
 
-#: ../user/ffmail_action.php:94
+#: ../user/ffmail_action.php:92
 msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr "お友達の名前やEメイルアドレスを入力するのをお忘れです。%1 入力画面に戻って %2 入れなおしてください。"
+"You forgot to enter your friends' names and/or email addresses; Please "
+"%1return to the form%2 and enter them."
+msgstr "お友達の名前やEメールアドレスを入力するのをお忘れです。%1 入力画面に戻って %2 入力してください。"
 
 #: ../user/ffmail_form.php:30
 msgid ""
 "This project hasn't created an email message - please notify its "
 "administrators"
-msgstr ""
+msgstr "このプロジェクトはEメール・メッセージを作成していません - 管理者に知らせてください"
 
 #: ../user/ffmail_form.php:33
 msgid "Tell your friends about %1"
@@ -3579,16 +3508,14 @@ msgstr "%1 についてあなたのお友達に伝えてください"
 
 #: ../user/ffmail_form.php:37
 msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "あなたのお友達や家族、同僚の方々に%1 についてメッセージを送るのを手伝ってください。"
+msgstr "あなたのお友達や家族、同僚の方々に %1 について伝えるのを手伝ってください"
 
 #: ../user/ffmail_form.php:39
 msgid ""
 "Fill in this form with the names and email addresses of people you think "
 "might be interested in %1. We'll send them an email in your name, and you "
 "can add your own message if you like."
-msgstr ""
-"%1 に興味をもちそうだとあなたが思う方々の名前と Eメイルアドレスを、この画面に入力してください。それらの方へ当プロジェクトからあなたの名前で "
-"Eメイルを送ります。あなたが追加したい文章を書き込むこともできます。"
+msgstr "%1 に興味をもちそうだとあなたが思う方々の名前とEメールアドレスを、このフォームに入力してください。それらの方へ当プロジェクトからあなたの名前でEメールを送ります。あなたが希望する場合ご自身のメッセージを追加することもできます。"
 
 #: ../user/ffmail_form.php:42
 msgid "Your name:"
@@ -3596,114 +3523,106 @@ msgstr "あなたの名前:"
 
 #: ../user/ffmail_form.php:42
 msgid "Your email address:"
-msgstr "あなたの Eメイルアドレス:"
+msgstr "あなたのEメールアドレス:"
 
 #: ../user/ffmail_form.php:48
 msgid "Friend's name:"
-msgstr "お友達のお名前"
+msgstr "お友達のお名前:"
 
 #: ../user/ffmail_form.php:48
 msgid "Friend's email address:"
-msgstr "お友達の Eメイルアドレス:"
+msgstr "お友達のEメールアドレス:"
 
 #: ../user/ffmail_form.php:56
 msgid "Additional message (optional)"
-msgstr "付記したいメッセージがあればどうぞ:"
+msgstr "付記したいメッセージ(任意)"
 
 #: ../user/ffmail_form.php:59
 msgid "Send"
 msgstr "送信"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: ../user/forum_banishment_vote.php:37
+#: ../user/forum_banishment_vote_action.php:35
 msgid "You are not authorized to banish users."
-msgstr "あなたには参加者を投稿禁止状態にする権限はありません"
+msgstr "あなたには参加者を投稿禁止にする権限はありません。"
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "投稿禁止の採決"
 
-#: ../user/forum_banishment_vote.php:50
+#: ../user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
-msgstr "この ID の参加者はいません。"
+msgstr "このIDの参加者は見つかりません。"
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
 msgid "User is already banished"
-msgstr "参加者はすでに投稿禁止状態になっています"
+msgstr "参加者はすでに投稿禁止になっています"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"確かに %1 を投稿禁止にしますか?<br/>参加者 %1 "
-"は決められた期間、投稿できなくなります。<br/>この処置は不快な投稿で議論を妨害する振る舞いが継続的になされた場合に限定されるべきです。"
+msgstr "本当に %1 を投稿禁止にしますか?<br/>参加者 %1 は決められた期間、投稿できなくなります。<br/>この処置は %1 によって挑発的な振る舞いが継続的になされた場合に限定されるべきです。"
 
-#: ../user/forum_banishment_vote.php:61
+#: ../user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr "理由を分類から選んでください。その参加者がなぜ投稿を禁止されるべきかを文章で書き加えることもできます。"
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "理由を分類から選んでください。その参加者がなぜ投稿を禁止されるべきかの説明文を書き込むこともできます(任意)。"
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "分類"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
+#: ../user/forum_banishment_vote.php:67
+#: ../user/forum_banishment_vote_action.php:59
+#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
 msgid "Obscene"
 msgstr "低俗である"
 
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
+#: ../user/forum_banishment_vote.php:68
+#: ../user/forum_banishment_vote_action.php:61
+#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
 msgid "Flame/Hate mail"
-msgstr "感情に任せた/悪意あるメイル"
+msgstr "感情に任せた/悪意あるメール"
 
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
+#: ../user/forum_banishment_vote.php:69
+#: ../user/forum_banishment_vote_action.php:63
+#: ../user/forum_moderate_post.php:62
 msgid "User Request"
 msgstr "参加者の要求"
 
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "その他"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
+#: ../user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "理由"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
-msgstr "記入すればメイルで通知されます"
+msgstr "記入すればメールで通知されます"
 
-#: ../user/forum_banishment_vote.php:74
+#: ../user/forum_banishment_vote.php:77
 msgid "Proceed with vote"
 msgstr "採決へ進む"
 
-# It seems this is an error message for programmers.
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
+#: ../user/forum_banishment_vote_action.php:41
+#: ../user/forum_moderate_post_action.php:66
 msgid "You must specify an action..."
-msgstr "You must specify an action..."
+msgstr "あなたは、行動を指定しなければなりません..."
 
 #: ../user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr "この投稿内容はすでに変更できなくなっています。<br/>最初に投稿してから %1 分までしか、編集は許されておりません。"
+msgstr "この投稿内容はもはや変更できません。<br/>投稿内容は最初に作成されてから %1 分に限って、編集が許可されます。"
 
 #: ../user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
-msgstr "この投稿を編集する権限はあなたにはありません。"
+msgstr "あなたにはこの投稿を編集する権限がありません。"
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
+#: ../user/forum_edit.php:86 ../user/forum_search.php:74
 msgid "Forum"
 msgstr "掲示板"
 
@@ -3712,895 +3631,864 @@ msgid "Edit your message"
 msgstr "あなたのメッセージを編集する"
 
 #: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: ../user/forum_post.php:113 ../user/forum_post.php:115
+#: ../user/team_forum.php:71
 msgid "Title"
-msgstr "題名"
+msgstr "タイトル"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: ../user/forum_edit.php:144 ../user/forum_post.php:133
 msgid "Add my signature to this post"
-msgstr "自分の署名をこの投稿に付ける"
+msgstr "自分のシグネチャをこの投稿に追加"
 
-#: ../user/forum_forum.php:41
+#: ../user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "あなたはこの掲示板を見ることはできません。"
 
-#: ../user/forum_forum.php:80
+#: ../user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "%1 用のチーム掲示板"
 
-#: ../user/forum_forum.php:96
+#: ../user/forum_forum.php:99
 msgid "New thread"
 msgstr "新しいスレッド"
 
-#: ../user/forum_forum.php:96
+#: ../user/forum_forum.php:99
 msgid "Add a new thread to this forum"
 msgstr "この掲示板に新しいスレッドを追加"
 
-#: ../user/forum_forum.php:116
+#: ../user/forum_forum.php:119
 msgid "This message board is available as an %1RSS feed%2"
-msgstr "この掲示板は、%1RSSフィード%2 で読めます"
+msgstr "この掲示板は %1RSSフィード%2 として利用できます"
 
-#: ../user/forum_forum.php:174
+#: ../user/forum_forum.php:178
 msgid "This thread is hidden"
 msgstr "このスレッドは隠されています。"
 
-#: ../user/forum_forum.php:178
+#: ../user/forum_forum.php:182
 msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "このスレッドは表示位置固定かつ書込み禁止状態です。あなたはまだ読んでいません"
+msgstr "このスレッドは表示位置固定かつ書き込み禁止状態で、あなたはまだ読んでいません"
 
-#: ../user/forum_forum.php:178
+#: ../user/forum_forum.php:182
 msgid "sticky/locked/unread"
-msgstr "位置固定/書込み禁止/未読"
+msgstr "位置固定/書き込み禁止/未読"
 
-#: ../user/forum_forum.php:180
+#: ../user/forum_forum.php:184
 msgid "This thread is sticky and you haven't read it yet"
-msgstr "このスレッドは表示位置固定状態です。あなたはまだ読んでいません"
+msgstr "このスレッドは表示位置固定状態で、あなたはまだ読んでいません"
 
-#: ../user/forum_forum.php:180
+#: ../user/forum_forum.php:184
 msgid "sticky/unread"
 msgstr "位置固定/未読"
 
-#: ../user/forum_forum.php:184
+#: ../user/forum_forum.php:188
 msgid "You haven't read this thread yet, and it's locked"
-msgstr "このスレッドは書込み禁止状態です。あなたはまだ読んでいません"
+msgstr "あなたはこのスレッドをまだ読んでいません。そして書き込み禁止状態です"
 
-#: ../user/forum_forum.php:184
+#: ../user/forum_forum.php:188
 msgid "unread/locked"
-msgstr "未読/書込み禁止"
+msgstr "未読/書き込み禁止"
 
-#: ../user/forum_forum.php:186
+#: ../user/forum_forum.php:190
 msgid "You haven't read this thread yet"
-msgstr "このスレッドをあなたはまだ読んでいません"
+msgstr "あなたはこのスレッドをまだ読んでいません"
 
-#: ../user/forum_forum.php:192
+#: ../user/forum_forum.php:196
 msgid "This thread is sticky and locked"
 msgstr "このスレッドは表示位置固定かつ書込み禁止状態です"
 
-#: ../user/forum_forum.php:192
+#: ../user/forum_forum.php:196
 msgid "sticky/locked"
-msgstr "位置固定/書込み禁止"
+msgstr "位置固定/書き込み禁止"
 
-#: ../user/forum_forum.php:194
+#: ../user/forum_forum.php:198
 msgid "This thread is sticky"
 msgstr "このスレッドは表示位置固定状態です"
 
-#: ../user/forum_forum.php:194
+#: ../user/forum_forum.php:198
 msgid "sticky"
 msgstr "位置固定"
 
-#: ../user/forum_forum.php:198
+#: ../user/forum_forum.php:202
 msgid "This thread is locked"
-msgstr "このスレッドは書込み禁止状態です"
+msgstr "このスレッドは書き込み禁止状態です"
 
-#: ../user/forum_forum.php:198
+#: ../user/forum_forum.php:202
 msgid "locked"
-msgstr "書込み禁止"
+msgstr "書き込み禁止"
 
-#: ../user/forum_forum.php:200
+#: ../user/forum_forum.php:204
 msgid "You read this thread"
 msgstr "あなたはこのスレッドを読みました"
 
-#: ../user/forum_forum.php:200
+#: ../user/forum_forum.php:204
 msgid "read"
 msgstr "既読"
 
-# #######################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
+#: ../user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "質問と答(Q&A)"
 
-#: ../user/forum_help_desk.php:30
+#: ../user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr "ボランティアとスカイプで直接話しましょう。複数の言語で利用できます。 %1 BOINC オンライン・ヘルプ%2 へどうぞ。"
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "ボランティアとSkypeで直接話しましょう。複数の言語で利用できます。 %1 BOINC オンライン・ヘルプ %2 へどうぞ。"
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
 msgid "Topic"
 msgstr "トピック"
 
-#: ../user/forum_help_desk.php:45
+#: ../user/forum_help_desk.php:47
 msgid "Questions"
 msgstr "質問"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: ../user/forum_index.php:58 ../user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "%1 メンバー間での議論"
 
-# #######################################
-# Forum sample index page
-#: ../user/forum_index.php:69
+#: ../user/forum_index.php:74
 msgid "%1 Message boards"
 msgstr "%1 掲示板"
 
-#: ../user/forum_index.php:78
+#: ../user/forum_index.php:83
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
-msgstr "疑問や問題をかかえているなら、掲示板の %1質問と答(Q&A)%2 のセクションをご覧ください。"
+msgstr "疑問や問題をかかえているなら、掲示板の %1質問と答(Q&A)%2 セクションをご利用ください。"
 
-# Better translation welcome.
-#: ../user/forum_index.php:123
+#: ../user/forum_index.php:128
 msgid "Subscribed threads"
 msgstr "参加しているスレッド"
 
-#: ../user/forum_moderate_post.php:43
+#: ../user/forum_moderate_post.php:45
 msgid "Moderate post"
-msgstr "極端な投稿を制御する"
+msgstr "投稿をモデレートする"
 
-#: ../user/forum_moderate_post.php:52
+#: ../user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "投稿を隠す"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
 msgid "Commercial spam"
-msgstr "商売目的のスパム"
+msgstr "商業目的のスパム"
 
-#: ../user/forum_moderate_post.php:58
+#: ../user/forum_moderate_post.php:61
 msgid "Doublepost"
 msgstr "二重投稿"
 
-#: ../user/forum_moderate_post.php:63
+#: ../user/forum_moderate_post.php:66
 msgid "Move post"
 msgstr "投稿を移動する"
 
-#: ../user/forum_moderate_post.php:65
+#: ../user/forum_moderate_post.php:68
 msgid "Destination thread ID:"
 msgstr "移動先のスレッドID:"
 
-#: ../user/forum_moderate_post.php:78
+#: ../user/forum_moderate_post.php:81
 msgid "Banish user"
 msgstr "参加者を投稿禁止にする"
 
-#: ../user/forum_moderate_post.php:80
+#: ../user/forum_moderate_post.php:83
 msgid "Ban duration"
 msgstr "禁止期間"
 
-#: ../user/forum_moderate_post.php:81
+#: ../user/forum_moderate_post.php:84
 msgid "4 hours"
 msgstr "4時間"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
 msgid "1 day"
 msgstr "1日"
 
-#: ../user/forum_moderate_post.php:83
+#: ../user/forum_moderate_post.php:86
 msgid "1 week"
 msgstr "1週間"
 
-#: ../user/forum_moderate_post.php:84
+#: ../user/forum_moderate_post.php:87
 msgid "2 weeks"
 msgstr "2週間"
 
-#: ../user/forum_moderate_post.php:85
+#: ../user/forum_moderate_post.php:88
 msgid "1 month"
 msgstr "一ヶ月"
 
-#: ../user/forum_moderate_post.php:86
+#: ../user/forum_moderate_post.php:89
 msgid "Forever"
-msgstr "期限なし"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "追加の説明 %1 この部分は参加者への Eメイルに挿入されます。%2"
+msgstr "永久"
 
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
+#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
+#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
+#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
 msgid "OK"
 msgstr "OK"
 
-#: ../user/forum_moderate_post_action.php:57
+#: ../user/forum_moderate_post.php:107
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "追加の説明 %1 この部分は参加者への Eメールに挿入されます。 %2"
+
+#: ../user/forum_moderate_post_action.php:60
 msgid "You are not authorized to moderate this post."
 msgstr "あなたにはこの投稿をモデレートする権限がありません。"
 
-#: ../user/forum_moderate_post_action.php:85
+#: ../user/forum_moderate_post_action.php:105
 msgid "Can't move to different category type"
-msgstr "上位のタイプが異なるところへ移動はできません"
+msgstr "異なる分類のところへは移動できません"
 
-#: ../user/forum_moderate_post_action.php:89
+#: ../user/forum_moderate_post_action.php:109
 msgid "Can't move to different category"
 msgstr "異なる分類のところへは移動できません"
 
-#: ../user/forum_moderate_post_action.php:110
+#: ../user/forum_moderate_post_action.php:130
 msgid "Not authorized to banish users"
 msgstr "参加者を投稿禁止にする権限がありません"
 
-#: ../user/forum_moderate_post_action.php:126
+#: ../user/forum_moderate_post_action.php:146
 msgid "Banishment"
 msgstr "投稿禁止"
 
-#: ../user/forum_moderate_post_action.php:128
+#: ../user/forum_moderate_post_action.php:148
 msgid "User %1 has been banished."
-msgstr "参加者 %1 は投稿禁止状態になりました。"
+msgstr "参加者 %1 は投稿禁止になりました。"
 
-#: ../user/forum_moderate_post_action.php:131
+#: ../user/forum_moderate_post_action.php:151
 msgid "Action failed: possible database problem"
-msgstr "処理失敗:データベースの問題かもしれません"
+msgstr "処理失敗: データベースの問題かもしれません"
 
-#: ../user/forum_moderate_thread.php:33
+#: ../user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "権限がありません"
 
-#: ../user/forum_moderate_thread.php:36
+#: ../user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "スレッド '%1' をモデレートする"
 
-#: ../user/forum_moderate_thread.php:48
+#: ../user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr "理由を分類から選ぶか、あるいは、なぜそのスレッドの表示を抑止したり書込み禁止にするのかを記述し、最後にOKボタンを押してください。"
+msgstr "理由を分類から選ぶか、あるいは、なぜそのスレッドの表示を抑止したり書き込み禁止にするのか説明を記述し、最後にOKボタンを押してください。"
 
-#: ../user/forum_moderate_thread.php:72
+#: ../user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "現在の掲示板"
 
-#: ../user/forum_moderate_thread.php:73
+#: ../user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "移動先の掲示板"
 
-#: ../user/forum_moderate_thread.php:77
+#: ../user/forum_moderate_thread.php:83
 msgid "New title:"
-msgstr "新しい題名:"
+msgstr "新しいタイトル:"
 
-#: ../user/forum_post.php:40
+#: ../user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr "ここではプロジェクト管理者しか新しいスレッドを作れません。それでも、すでにあるスレッドに返事を追加することはあなたにもできます。"
+msgstr "ここではプロジェクト管理者のみ新しいスレッドを作成できます。それでも、既存のスレッドに返信することはあなたにもできます。"
 
-#: ../user/forum_post.php:60
+#: ../user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"あなたが書き込んだ初回の内容は Akismet anti-spam "
-"システムからスパムの疑いがあると判定されました。テキストを編集しなおしてから、もう一度試してみてください。"
+msgstr "あなたのメッセージは Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
 
-#: ../user/forum_post.php:70
+#: ../user/forum_post.php:74
 msgid "Create new thread"
-msgstr "新しくスレッドを作る"
+msgstr "新しいスレッドを作成"
 
-#: ../user/forum_post.php:100
+#: ../user/forum_post.php:104
 msgid "Create a new thread"
-msgstr "新しくスレッドを作る"
+msgstr "新しいスレッドを作成"
 
-#: ../user/forum_post.php:105
+#: ../user/forum_post.php:109
 msgid "Remember to add a title"
 msgstr "題名の入力をお忘れなく"
 
-#: ../user/forum_post.php:127
+#: ../user/forum_post.php:131
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "この項目を BOINC Manager のお知らせとして表示する"
 
-#: ../user/forum_post.php:127
+#: ../user/forum_post.php:131
 msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "そうするのは、ボランティアの全ての方が興味を持つ場合に限ってください。"
+msgstr "そうするのは、ボランティアの全ての方が興味を持つであろう項目に限ってください。"
 
-#: ../user/forum_rate.php:26
+#: ../user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "評価機能は停止しています"
 
-#: ../user/forum_rate.php:27
+#: ../user/forum_rate.php:29
 msgid "This function is turned off by the project"
-msgstr "このプロジェクトではこの機能は運用していません"
+msgstr "この機能はプロジェクトによって止められています"
 
-#: ../user/forum_rate.php:58
+#: ../user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
-msgstr ""
-"投稿を評価するためには、あなたはより多くの平均功績(credits/day) "
-"をあげるか、より多くの総功績(credits)を持っていなければなりません。"
+msgstr "投稿を評価するためには、あなたはより多くの平均功績(credits/day) をあげるか、より多くの総功績(credits)を持っていなければなりません。"
 
-#: ../user/forum_rate.php:62
+#: ../user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "あなたはすでにこの投稿を評価済みです。"
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
+#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
+#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
+#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "スレッドに戻る"
 
-#: ../user/forum_rate.php:72
+#: ../user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "入力内容は記録されました"
 
-#: ../user/forum_rate.php:73
+#: ../user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
-msgstr "入力していただいた内容は記録されました。ご協力に感謝します。"
+msgstr "入力内容は記録されました。ご協力に感謝します。"
 
-#: ../user/forum_rate.php:75
+#: ../user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "投票は記録されました"
 
-#: ../user/forum_rate.php:76
+#: ../user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "評価していただいた内容は記録されました。ご協力に感謝します。"
 
-#: ../user/forum_rate.php:80
+#: ../user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "投票時に問題発生"
 
-#: ../user/forum_reply.php:73
+#: ../user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"あなたの投稿内容は Akismet anti-spam "
-"システムからスパムの疑いがあると判定されました。テキストを編集しなおしてから、もう一度試してみてください。"
+msgstr "あなたの投稿内容は Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
+#: ../user/forum_thread.php:284
 msgid "Post to thread"
 msgstr "スレッドに投稿する"
 
-#: ../user/forum_reply.php:137
+#: ../user/forum_reply.php:143
 msgid "Message:"
 msgstr "メッセージ:"
 
-#: ../user/forum_reply.php:140
+#: ../user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
-msgstr "右の%1メッセージ ID%2に返答する:"
+msgstr "右の%1メッセージ ID%2に返信する:"
 
-#: ../user/forum_reply.php:166
+#: ../user/forum_reply.php:172
 msgid "Post reply"
-msgstr "返事を投稿する"
+msgstr "返信を投稿する"
 
-#: ../user/forum_reply.php:169
+#: ../user/forum_reply.php:175
 msgid "Add my signature to this reply"
-msgstr "自分の署名をこの返事に付ける"
+msgstr "自分のシグネチャをこの返信に追加する"
 
-#: ../user/forum_report_post.php:45
+#: ../user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"投稿に関して報告を提出するためには、あなたはより多くの平均功績(credits/day) "
-"あるいは、より多くの総功績(credits)を持っていなければなりません。"
+msgstr "あなたはより多くの平均功績(credits/day) あるいは、より多くの総功績(credits)を持っていなければなりません。"
 
-#: ../user/forum_report_post.php:65
+#: ../user/forum_report_post.php:68
 msgid "Report Registered"
 msgstr "報告は登録されました"
 
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
+#: ../user/forum_report_post.php:69
 msgid "Your report has been recorded. Thanks for your input."
-msgstr "あなたの報告は登録されました。入力していただきありがとうございます。"
+msgstr "あなたの報告は登録されました。入力ありがとうございます。"
 
-#: ../user/forum_report_post.php:67
+#: ../user/forum_report_post.php:70
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr "司会者(モデレータ)はあなたの報告を拝見してからどうするべきか決めます。そのためには少々時間がかかります。辛抱強くお待ちください。"
+msgstr "モデレーターはあなたの報告を確認してからどうするべきか決めます - これには少々時間がかかります、辛抱強くお待ちください。"
 
-#: ../user/forum_report_post.php:71
-#, fuzzy
+#: ../user/forum_report_post.php:74
 msgid "Report a forum post"
-msgstr "投稿に関する報告を提出する"
+msgstr "掲示板の投稿について報告"
 
-#: ../user/forum_report_post.php:73
+#: ../user/forum_report_post.php:76
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"この投稿に関して報告を提出する前に、代わりに +/- "
-"を付ける評価システムを使うことをご検討願います。投稿に対して十分な数の参加者が否定的な評価をすれば、最終的にはその投稿は表示されなくなります。<br "
-"/>評価システムへの入り口はその投稿の末尾にあります。"
+msgstr "この投稿に関して報告を提出する前に、代わりに +/- を付ける評価システムを使うことをご検討願います。投稿に対して十分な数の参加者が否定的な評価をすれば、ゆくゆくはその投稿は表示されなくなります。<br />評価システムはその投稿の末尾にあります。"
 
-#: ../user/forum_report_post.php:80
+#: ../user/forum_report_post.php:83
 msgid "Report post"
-msgstr "投稿に関する報告を提出する"
+msgstr "投稿について報告する"
 
-#: ../user/forum_report_post.php:81
+#: ../user/forum_report_post.php:84
 msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
+"Why do you find the post offensive: %1Please include enough information so that a person that\n"
 "has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"なぜその投稿が攻撃的であると考えるか: %1そのスレッドをまだ読んでいない人からみても、\n"
-"問題点がすぐにわかるよう、十分な情報を含めて書いてください。%2"
+msgstr "なぜその投稿が攻撃的であると考えるか: %1そのスレッドをまだ読んでいない人からみても、\n問題点がすぐにわかるよう、十分な情報を含めて書いてください。%2"
 
-#: ../user/forum_report_post.php:90
+#: ../user/forum_report_post.php:93
 msgid "Report not registered"
 msgstr "報告は登録されませんでした"
 
-#: ../user/forum_report_post.php:91
+#: ../user/forum_report_post.php:94
 msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "あなたの報告を記録することができませんでした。少々待ってからもう一度試してみてくださいませ。"
+msgstr "あなたの報告を記録することができませんでした。少し待ってからもう一度試してみてください。"
 
-#: ../user/forum_report_post.php:92
+#: ../user/forum_report_post.php:95
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr "このエラーが一時的なものでないなら、このプロジェクトの開発者に報告してください。"
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "これが一時的なエラーでないなら、このプロジェクトの開発者に報告してください。"
 
-#: ../user/forum_rss.php:41
+#: ../user/forum_rss.php:38
 msgid "%1 RSS feed"
-msgstr "%1 の RSS 配信"
+msgstr "%1 の RSS フィード"
 
-#: ../user/forum_rss.php:42
+#: ../user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
-msgstr "この掲示板は RSSの配信で読めます"
+msgstr "この掲示板は RSS フィードで読めます。"
 
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
+#: ../user/forum_rss.php:41
 msgid "Options:"
-msgstr "選択肢:"
+msgstr "オプション:"
 
-#: ../user/forum_rss.php:47
+#: ../user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "参加者ID %1(指定なしの場合すべての参加者)からの投稿だけを含める。"
+msgstr "ユーザーID %1(デフォルト:すべての参加者)からの投稿だけを含める。"
 
-#: ../user/forum_rss.php:49
+#: ../user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "最新の %1 日間(指定省略時:30日)の投稿だけを含める。"
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr "長い投稿の末尾を切り詰める: %1(各投稿の先頭256バイトまでを含める)"
+msgstr "最新の %1 日間(デフォルト:30日)の投稿だけを含める。"
 
-#: ../user/forum_rss.php:53
+#: ../user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr "スレッドのみ: %1 (各スレッドの最初の投稿だけを含める)"
 
-# #######################################
-# Forum search features
-#: ../user/forum_search.php:27
+#: ../user/forum_search.php:29
 msgid "Forum search"
 msgstr "掲示板内の検索"
 
-#: ../user/forum_search.php:31
+#: ../user/forum_search.php:33
 msgid "Search query"
-msgstr "検索問合せ"
+msgstr "検索クエリ"
 
-#: ../user/forum_search.php:32
+#: ../user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "キーワードで検索:"
 
-#: ../user/forum_search.php:33
+#: ../user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "指定した全ての語を含む投稿が表示されます"
 
-#: ../user/forum_search.php:35
+#: ../user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "たとえば、\"screensaver freeze\""
 
-#: ../user/forum_search.php:36
+#: ../user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "投稿者のIDで検索:"
 
-#: ../user/forum_search.php:37
+#: ../user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "指定した ID の人が書いた投稿だけが表示されます"
 
-#: ../user/forum_search.php:39
+#: ../user/forum_search.php:41
 msgid "For example: \"43214\""
-msgstr "たとえば、: \"43214\""
+msgstr "たとえば、 \"43214\""
 
-#: ../user/forum_search.php:41
+#: ../user/forum_search.php:43
 msgid "Search options"
-msgstr "検索条件の追加指定"
+msgstr "検索オプション"
 
-#: ../user/forum_search.php:42
+#: ../user/forum_search.php:44
 msgid "Search limits"
 msgstr "検索範囲の制限"
 
-#: ../user/forum_search.php:43
+#: ../user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "今から次の日数までさかのぼった範囲でだけ検索します"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: ../user/forum_search.php:52 ../user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 ヶ月"
 
-#: ../user/forum_search.php:52
+#: ../user/forum_search.php:54
 msgid "1 year"
 msgstr "1年"
 
-#: ../user/forum_search.php:73
+#: ../user/forum_search.php:55
+msgid "no limit"
+msgstr "無制限"
+
+#: ../user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "指定した掲示板の投稿だけから検索します"
 
-#: ../user/forum_search.php:84
+#: ../user/forum_search.php:86
 msgid "Sort by"
 msgstr "並べ替え"
 
-#: ../user/forum_search.php:88
+#: ../user/forum_search.php:90
 msgid "Start the search"
 msgstr "検索開始"
 
-#: ../user/forum_search_action.php:141
+#: ../user/forum_search_action.php:143
 msgid "Forum search results"
 msgstr "掲示板の検索結果"
 
-#: ../user/forum_search_action.php:174
+#: ../user/forum_search_action.php:176
 msgid "Thread titles matching your query:"
 msgstr "検索で見つけたスレッドの題名:"
 
-#: ../user/forum_search_action.php:194
+#: ../user/forum_search_action.php:196
 msgid "Messages matching your query:"
 msgstr "検索で見つけたメッセージ:"
 
-#: ../user/forum_search_action.php:217
+#: ../user/forum_search_action.php:219
 msgid ""
 "Sorry, couldn't find anything matching your search query. You can try to "
 "broaden your search by using less words (or less specific words)."
-msgstr ""
-"残念ながら、ご指定の条件に合致するものは見つかりませんでした。指定する語を減らし(特定性の強い語を減らして)、検索条件を緩めてから再試行してはいかがでし"
-"ょう。"
+msgstr "残念ながら、ご指定の条件に合致するものは見つかりませんでした。より少ない単語を使って(特定の単語を減らして)、検索条件を緩めてから再試行してはいかがでしょう。"
 
-#: ../user/forum_search_action.php:219
+#: ../user/forum_search_action.php:221
 msgid "You can also %1try the same search on Google.%2"
 msgstr "さらに、%1同じ検索を Googleで試みる%2ということもできるでしょう。"
 
-#: ../user/forum_search_action.php:224
+#: ../user/forum_search_action.php:226
 msgid "Perform another search"
 msgstr "別の検索をする"
 
-#: ../user/forum_subscribe.php:46
+#: ../user/forum_subscribe.php:48
 msgid "Subscription successful"
-msgstr "掲示板への参加成功"
+msgstr "参加登録成功"
 
-#: ../user/forum_subscribe.php:49
+#: ../user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
 msgstr "これであなたは %1 に参加しました。新しい投稿があれば通知がなされます。"
 
-#: ../user/forum_subscribe.php:51
+#: ../user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "参加に失敗"
 
-#: ../user/forum_subscribe.php:52
+#: ../user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "あなたを %1 に参加させることが現在できません。のちほどもう一度お試しください。"
+msgstr "あなたを %1 に参加させることが現在できません。後ほどもう一度お試しください…"
 
-#: ../user/forum_subscribe.php:61
+#: ../user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "参加登録の削除に成功"
 
-#: ../user/forum_subscribe.php:64
+#: ../user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
 msgstr "あなたはもはや %1 には参加していません。このスレッドからの通知を受け取ることはもうありません。"
 
-#: ../user/forum_subscribe.php:66
+#: ../user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "参加登録の削除に失敗"
 
-#: ../user/forum_subscribe.php:67
+#: ../user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "あなたの %1 への参加登録を削除することが現在できません。のちほどもう一度お試しください。"
+msgstr "あなたの %1 への参加登録を削除することが現在できません。後ほどもう一度お試しください…"
 
-# It seems to be an error message for programmers, Not translated.
-#: ../user/forum_subscribe.php:74
+#: ../user/forum_subscribe.php:76
 msgid "Unknown subscription action"
-msgstr "Unknown subscription action"
+msgstr "不明な参加行動"
 
-#: ../user/forum_thread.php:61
+#: ../user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "あなたはこの掲示板を見ることはできません。"
 
-#: ../user/forum_thread.php:69
+#: ../user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
-msgstr "司会者(モデレータ)によりこのスレッドは隠されています。"
+msgstr "モデレーターによりこのスレッドは隠されています。"
 
-#: ../user/forum_thread.php:128
+#: ../user/forum_thread.php:129
 msgid "My question was answered"
-msgstr "私の質問は回答されました"
+msgstr "私の質問に回答されました"
 
-#: ../user/forum_thread.php:129
+#: ../user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "あなたの質問に適切な回答があったのなら、ここをクリックしてください。"
 
-#: ../user/forum_thread.php:137
+#: ../user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "私も同じ疑問をもっていた"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
 msgid "Add a new message to this thread"
 msgstr "このスレッドに新しいメッセージを投稿"
 
-# Better translation welcome.
-#: ../user/forum_thread.php:171
+#: ../user/forum_thread.php:172
 msgid "Unsubscribe"
 msgstr "スレッドへの参加をやめる"
 
-# Better translation welcome.
-#: ../user/forum_thread.php:172
+#: ../user/forum_thread.php:173
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "あなたはこのスレッドに参加しています。 抜けるにはここをクリック。"
+msgstr "あなたはこのスレッドに参加しています。 参加をやめるにはここをクリックします。"
 
-# Better translation welcome.
-#: ../user/forum_thread.php:178
+#: ../user/forum_thread.php:179
 msgid "Subscribe"
 msgstr "参加する"
 
-#: ../user/forum_thread.php:179
+#: ../user/forum_thread.php:180
 msgid "Click to get email when there are new posts in this thread"
-msgstr "このスレッドに新しい投稿があったとき、その旨のメイルを受けとりたければここをクリック"
+msgstr "このスレッドに新しい投稿があったとき、メールを受け取るにはここをクリックします"
 
-#: ../user/forum_thread.php:190
+#: ../user/forum_thread.php:191
 msgid "Unhide this thread"
 msgstr "このスレッドを見えるようにします"
 
-#: ../user/forum_thread.php:196
+#: ../user/forum_thread.php:197
 msgid "Hide this thread"
-msgstr "このスレッドを非表示状態にします"
+msgstr "このスレッドを隠します"
 
-#: ../user/forum_thread.php:202
+#: ../user/forum_thread.php:203
 msgid "Make unsticky"
 msgstr "表示位置を固定しない"
 
-#: ../user/forum_thread.php:203
+#: ../user/forum_thread.php:204
 msgid "Make this thread not sticky"
-msgstr "このスレッドの表示位置をいつも一覧の先頭に寄せることをやめます"
+msgstr "このスレッドを常に一覧の先頭に固定しないようにする"
 
-#: ../user/forum_thread.php:208
+#: ../user/forum_thread.php:209
 msgid "Make sticky"
-msgstr "表示位置を一覧の先頭へ固定"
+msgstr "表示位置を一覧の先頭へ固定する"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "このスレッドの表示位置をいつも一覧の先頭に寄せます"
+#: ../user/forum_thread.php:210
+msgid "Make this thread always appear at top of forum"
+msgstr "このスレッドが常に掲示板の上部に表示されるようにする"
 
-#: ../user/forum_thread.php:215
+#: ../user/forum_thread.php:216
 msgid "Unlock"
-msgstr "書込み禁止をはずす"
+msgstr "書き込み禁止をはずす"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "このスレッドの書込み禁止をはずします"
+#: ../user/forum_thread.php:217
+msgid "Allow new posts in this thread"
+msgstr "このスレッドへの新しい投稿を許可する"
 
-#: ../user/forum_thread.php:221
+#: ../user/forum_thread.php:222
 msgid "Lock"
-msgstr "書込み禁止にする"
+msgstr "書き込み禁止にする"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "このスレッドを書込み禁止状態にします"
+#: ../user/forum_thread.php:223
+msgid "Don't allow new posts in this thread"
+msgstr "このスレッドへの新しい投稿を許可しない"
 
-#: ../user/forum_thread.php:229
+#: ../user/forum_thread.php:230
 msgid "Move this thread to a different forum"
 msgstr "このスレッドを別の掲示板に移動します"
 
-#: ../user/forum_thread.php:234
+#: ../user/forum_thread.php:235
 msgid "Edit title"
 msgstr "題名を編集する"
 
-#: ../user/forum_thread.php:235
+#: ../user/forum_thread.php:236
 msgid "Edit thread title"
 msgstr "スレッドの題名を編集します"
 
-#: ../user/forum_thread.php:245
-#, fuzzy
+#: ../user/forum_thread.php:244
+msgid "Delete thread permanently"
+msgstr "スレッドを永久に削除する"
+
+#: ../user/forum_thread.php:254
 msgid "Export as Notice"
-msgstr "このニュースをお知らせとしてエクスポートする"
+msgstr "お知らせとしてエクスポート"
 
-#: ../user/forum_thread.php:251
+#: ../user/forum_thread.php:260
 msgid "Don't export"
 msgstr "エクスポートしない"
 
-#: ../user/forum_thread.php:252
+#: ../user/forum_thread.php:261
 msgid "Don't export this news item as a Notice"
 msgstr "このニュースをお知らせとしてエクスポートしない"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
 msgid "Sort"
 msgstr "並べ替え"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: ../user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "スレッド状態が更新されました"
 
-#: ../user/forum_thread_status.php:50
+#: ../user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "状態が更新されました。"
 
-# #######################################
-# Forum
-#: ../user/forum_user_posts.php:73
+#: ../user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "%1 からの投稿"
 
-#: ../user/friend.php:33
+#: ../user/friend.php:35
 msgid "Already friends"
 msgstr "既に友人関係にあります"
 
-#: ../user/friend.php:39
+#: ../user/friend.php:41
 msgid "You requested friendship with %1 on %2."
-msgstr "あなたは%2に %1 さんへ友人関係の承認を求めています。"
+msgstr "あなたは %2 において %1 さんへ友人関係の承認をリクエストしました。"
 
-#: ../user/friend.php:41
+#: ../user/friend.php:43
 msgid "This request is still pending confirmation."
-msgstr "この要求はまだ承認待ち状態にあります。"
+msgstr "このリクエストはまだ承認待ち状態にあります。"
 
-#: ../user/friend.php:52
+#: ../user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 さんはあなたの友人になることを受け入れていません"
+msgstr "%1 さんはあなたからの友人関係の承認リクエストを受け入れていません"
 
-#: ../user/friend.php:61
+#: ../user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "自分自身を友人にすることはできません"
 
-#: ../user/friend.php:69
+#: ../user/friend.php:71
 msgid "Add friend"
 msgstr "友人の追加"
 
-#: ../user/friend.php:74
+#: ../user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr "あなたは %1 さんを友人にしようと依頼しました。 われわれから %1 さんへあなたを友人と認めるか尋ねます。"
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "あなたは %1 さんを友人にしようと依頼しました。 われわれから %1 さんへ通知し、あなたを友人と認めるか尋ねます。"
 
-#: ../user/friend.php:77
+#: ../user/friend.php:79
 msgid "Add an optional message here:"
-msgstr "付記したいメッセージがあればどうぞ:"
+msgstr "付記したいメッセージがあればどうぞ:"
 
-#: ../user/friend.php:115
+#: ../user/friend.php:117
 msgid "Friend request sent"
-msgstr "友人関係の勧誘を送信しました"
+msgstr "友人関係の承認リクエストを送信しました"
 
-#: ../user/friend.php:116
+#: ../user/friend.php:118
 msgid "We have notified %1 of your request."
-msgstr "%1 さんにあなたの要求を送りました。"
+msgstr "%1 さんにあなたの要求を通知しました。"
 
-#: ../user/friend.php:126
+#: ../user/friend.php:128
 msgid "Please log in as %1"
-msgstr "%1としてログインしてください"
+msgstr "%1 としてログインしてください"
 
-#: ../user/friend.php:127
+#: ../user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
-msgstr "この友人関係の要求の内容を見るには、%1 としてログインする必要があります"
+msgstr "この友人関係の承認リクエストの内容を見るには、%1 としてログインしなければなりません"
 
-#: ../user/friend.php:138
+#: ../user/friend.php:140
 msgid "Friend request"
-msgstr "友人関係の要求"
+msgstr "友人関係の承認リクエスト"
 
-#: ../user/friend.php:141
+#: ../user/friend.php:143
 msgid "%1 has requested friendship with you."
-msgstr "%1 さんがあなたに友人関係の承認を求めています。"
+msgstr "%1 さんがあなたに友人関係の承認をリクエストしました。"
 
-#: ../user/friend.php:143
+#: ../user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 さんからのメッセージ: %2"
 
-#: ../user/friend.php:146
+#: ../user/friend.php:148
 msgid "Accept friendship"
 msgstr "友人関係を受け入れる"
 
-#: ../user/friend.php:146
+#: ../user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "%1 さんが実際に友人であれば、「受け入れる」をクリックしてください"
 
-#: ../user/friend.php:147
+#: ../user/friend.php:149
 msgid "Decline"
 msgstr "辞退する"
 
-#: ../user/friend.php:147
+#: ../user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "%1 さんが友人でなければ、「辞退する」をクリックしてください"
 
-#: ../user/friend.php:186
+#: ../user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "友人関係が確認されました"
 
-#: ../user/friend.php:187
+#: ../user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "%1 さんとの友人関係が確認されました。"
 
-#: ../user/friend.php:205
+#: ../user/friend.php:207
 msgid "Friendship declined"
 msgstr "友人関係は辞退されました"
 
-#: ../user/friend.php:206
+#: ../user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "あなたは %1 さんとの友人関係を辞退しました"
 
-#: ../user/friend.php:221
+#: ../user/friend.php:223
 msgid "Notification not found"
 msgstr "通知はありません"
 
-#: ../user/friend.php:223
+#: ../user/friend.php:225
 msgid "Friend confirmed"
-msgstr "確認済みの友人"
+msgstr "友人と確認されました"
 
-#: ../user/friend.php:224
+#: ../user/friend.php:226
 msgid "You are now friends with %1."
-msgstr "今回、友人となった方々は次のとおりです: %1"
+msgstr "今回、友人となった方々は次のとおりです: %1"
 
-#: ../user/friend.php:232
+#: ../user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "友人関係を取り消しますか?"
 
-#: ../user/friend.php:234
+#: ../user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "%1 さんとの友人関係を取り消しますが、よろしいですか。"
+msgstr "本当に %1 さんとの友人関係を取り消してよろしいですか?"
 
-#: ../user/friend.php:239
+#: ../user/friend.php:241
 msgid "Stay friends"
 msgstr "友人のままにする"
 
-#: ../user/friend.php:249
+#: ../user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "友人関係が取り消されました"
 
-#: ../user/friend.php:250
+#: ../user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
-msgstr "あなたと %1 さんの友人関係を取り消しました。"
+msgstr "あなたと %1 さんの友人関係は取り消されました。"
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "アカウント関連情報を忘れてしまった場合"
-
-#: ../user/get_passwd.php:28
+#: ../user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr "1) アカウントに登録したあなたの Eメイルアドレスを憶えているなら、こちらから Eメイルをお送りできます:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) アカウントに登録したあなたの Eメールアドレスを憶えているなら、こちらから Eメールをお送りできます:"
 
-#: ../user/get_passwd.php:29
+#: ../user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr "その Eメイルアドレスを以下に入力し OK を押してください。あなたのパスワードをリセットするための手順を書いた Eメイルをあなたに送ります。"
+msgstr "その Eメイルアドレスを以下に入力し OK をクリックしてください。あなたのパスワードをリセットするための手順を書いた Eメールをあなたに送ります。"
 
 #: ../user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr "2) アカウントに登録したあなたの Eメイルアドレスを忘れてしまったか、 そのアドレスでは Eメイルの受信ができない場合:"
+msgstr "2) アカウントに登録したあなたの Eメールアドレスを忘れてしまったか、そのアドレスでは Eメールの受信ができない場合:"
 
 #: ../user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr "このアカウントで BOINC を走らせたことがあるなら、まだあなたのアカウントにアクセスする手立ては残っています。どうするかというと:"
+msgstr "このアカウントで BOINC を動作させたことがあるなら、まだあなたのアカウントにアクセスする手立ては残っています。どうするかというと:"
 
 #: ../user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
+msgstr "あなたのコンピュータの BOINC のデータディレクトリへ移動します(場所は起動時にイベント・ログへ書き込まれます)。"
 
 #: ../user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "このプロジェクトであなたのアカウントを記録しているファイルを見つけてください。 その名前は<b>%1</b>のようになっています。"
+msgstr "このプロジェクトであなたのアカウントを記録しているファイルを見つけてください。その名前は<b>%1</b>のようになっています。"
 
 #: ../user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "そのファイルをメモ帳(Notepad.exe)のようなテキスト・エディタ開いてください。次のようなテキストが見えるでしょう"
+msgstr "そのファイルをメモ帳(Notepad.exe)のようなテキスト・エディタで開いてください。次のようなテキストが見えるでしょう"
 
 #: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "%1と%2の間にある文字列(上記の例では %3 のところ)を選択してコピーします。"
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "%1 と %2 の間にある文字列(上記の例では %3 のところ)を選択してコピーします。"
 
 #: ../user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
@@ -4610,21 +4498,30 @@ msgstr "その文字列を以下の欄に貼り付けます。そして、OK を
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr "するとあなたのアカウントにログインできるでしょう。そうしたら、アカウントの Eメイルアドレスとパスワードを適宜更新してください。"
+msgstr "するとあなたのアカウントにログインできるでしょう。そうしたら、アカウントの Eメールアドレスとパスワードを適宜更新してください。"
 
 #: ../user/get_passwd.php:71
 msgid "Log in with authenticator"
-msgstr "認証子(authenticator)を使いログインする"
+msgstr "認証子(authenticator)を使ってログインする"
+
+#: ../user/get_passwd.php:81
+msgid "Forgot your account info?"
+msgstr "アカウント関連情報をお忘れですか?"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
 msgid "No GPU tasks reported"
-msgstr ""
+msgstr "GPU タスクが報告されていません"
+
+#: ../user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "上位の GPU モデル"
 
-#: ../user/gpu_list.php:183
+#: ../user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "下記のリストは異なるプラットフォーム上で最も生産性の高い GPU のモデルを示しています。タスクの平均経過時間によって計測された相対速度は、括弧の中に表示されています。"
 
 #: ../user/home.php:42
 msgid "Welcome to %1"
@@ -4632,11 +4529,15 @@ msgstr "%1 へようこそ!"
 
 #: ../user/home.php:43
 msgid "View and edit your account preferences using the links below."
-msgstr "アカウントのプレファレンス(好みの設定)を確認・変更するには以下のリンクを使ってください。"
+msgstr "以下のリンクを使ってアカウントのプレファレンス(好みの設定)を確認・変更してください。"
 
 #: ../user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "まだダウンロードしていなければ、%1BOINC クライアント・ソフトウェアをダウンロード%2してください."
+msgstr "まだダウンロードしていなければ、%1BOINC クライアント・ソフトウェアをダウンロード%2してください。"
+
+#: ../user/home.php:49 ../project.sample/project.inc:70
+msgid "Your account"
+msgstr "あなたのアカウント"
 
 #: ../user/host_app_versions.php:37
 msgid "Anonymous platform, missing app"
@@ -4648,7 +4549,7 @@ msgstr "名前のないプラットフォーム"
 
 #: ../user/host_app_versions.php:43
 msgid "Missing app version"
-msgstr "アプリケーションの版はなし"
+msgstr "アプリケーションのバージョンなし"
 
 #: ../user/host_app_versions.php:45
 msgid "Missing app"
@@ -4678,8 +4579,6 @@ msgstr "連続して有効な結果を返したタスク数"
 msgid "Average processing rate"
 msgstr "平均処理速度"
 
-# #######################################
-# Apps page (apps.php)
 #: ../user/host_app_versions.php:72
 msgid "Application details for host %1"
 msgstr "計算機 %1 のアプリケーション詳細"
@@ -4693,9 +4592,7 @@ msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"このコンピュータに関する記録を消すことはできません。それはわれわれのデータベースにこのコンピュータで処理した仕事がまだ残っているためです。その仕事がプロ"
-"ジェクトのデータベースから削除されるまで数日待つ必要があります。"
+msgstr "このコンピュータに関する記録を消すことはできません。それはわれわれのデータベースにこのコンピュータで処理した仕事がまだ残っているためです。その仕事がプロジェクトのデータベースから削除されるまで数日待たなければなりません。"
 
 #: ../user/host_delete.php:40
 msgid "Delete record of computer"
@@ -4711,22 +4608,21 @@ msgstr "あなたのコンピュータの一覧に戻る"
 
 #: ../user/host_edit_action.php:39
 msgid "Merge computer records"
-msgstr "コンピュータに関する記録を合併する"
+msgstr "コンピュータに関する記録をマージする"
 
 #: ../user/host_edit_form.php:35
 msgid "Merge computers"
-msgstr "コンピュータを合併する"
+msgstr "コンピュータをマージする"
 
 #: ../user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"ときどき BOINC は誤って別々の識別子を同一のコンピュータに割り当ててしまうことがあります。古い識別子を最新の識別子へ合併することで、あなたはこれの"
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "ときどき BOINC は誤って別々の識別子を同一のコンピュータに割り当ててしまうことがあります。古い識別子を最新の識別子へ合併することで、訂正することができます。"
 
 #: ../user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
-msgstr "この計算機と合併できるものはありませんでした。"
+msgstr "この計算機とマージできるものはありませんでした。"
 
 #: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
 msgid "Show details"
@@ -4735,7 +4631,7 @@ msgstr "詳細を表示"
 #: ../user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "%1 (生成日時 %2、コンピュータ ID %3)と同じコンピュータにチェックを入れてください。"
+msgstr "%1 (生成日時 %2、コンピュータ ID %3)と同じコンピュータにチェックを入れてください:"
 
 #: ../user/host_edit_form.php:70 ../user/workunit.php:39
 msgid "name"
@@ -4755,12 +4651,16 @@ msgstr "ホスト名なし"
 
 #: ../user/host_edit_form.php:109
 msgid "Merge hosts"
-msgstr "計算機を合併する"
+msgstr "計算機をマージする"
 
-#: ../user/host_update_credit.php:28
+#: ../user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "コンピュータの功績値を更新中"
 
+#: ../user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "計算機の功績値が更新されました"
+
 #: ../user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "計算機の所在地を更新しました"
@@ -4785,7 +4685,7 @@ msgstr "計算機のページへ戻る"
 
 #: ../user/hosts_user.php:53
 msgid "Computers belonging to %1"
-msgstr "%1さんのコンピュータ"
+msgstr "%1 さんのコンピュータ"
 
 #: ../user/hosts_user.php:55
 msgid "Computers hidden"
@@ -4802,11 +4702,11 @@ msgstr "あなたのコンピュータ"
 
 #: ../user/html.php:23
 msgid "Allowed HTML tags"
-msgstr "使用できる HTML タグの範囲"
+msgstr "使用可能な HTML タグ"
 
 #: ../user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "以下の HTML タグをチームの記述の中で使うことが許されています:"
+msgstr "以下の HTML タグをチームの説明文の中で使うことが許可されています:"
 
 #: ../user/html.php:27
 msgid "bold"
@@ -4834,26 +4734,28 @@ msgstr "整形済みテキスト"
 
 #: ../user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
 msgstr "画像。 高さは 450ピクセル以下。画像が置かれているウェブサイトの許可なしにその画像にリンクを張ることはしないでください。"
 
 #: ../user/html.php:35
 msgid "You can also use ampersand notation for special characters."
-msgstr "さらに、アンパーサンド記法を特殊文字のために使うこともできます。"
+msgstr "さらに、アンパサンド表記を特殊文字のために使うこともできます。"
+
+#: ../user/info.php:24 ../user/sample_index.php:78
+msgid "Read our rules and policies"
+msgstr "このプロジェクトの「規則と方針」を読んでください"
 
 #: ../user/info.php:35
 msgid "Run %1 only on authorized computers"
-msgstr "%1 を実行するコンピュータは、あなたが権限を持っているものに限定してください。 "
+msgstr "%1 を実行するコンピュータは、あなたが権限を持っているものだけにしてください"
 
 #: ../user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"%1 を実行するコンピュータは、あなたの所有するものであるか、あるいは、あなたが所有者から許可を得たコンピュータに限定してください。 "
-"会社や学校の一部には、そのコンピュータを %1 のようなプロジェクトのために使うことを禁じる方針のところがあります。 "
+msgstr "%1 を実行するコンピュータは、あなたの所有するものであるか、あるいは、あなたが所有者から許可を得たコンピュータだけにしてください。 会社や学校の一部には、そのコンピュータを %1 のようなプロジェクトのために使うことを禁じる方針のところがあります。 "
 
 #: ../user/info.php:38
 msgid "How %1 will use your computer"
@@ -4864,32 +4766,25 @@ msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"あなたのコンピュータで %1 を動かすと、そのコンピュータの CPU パワー、 ディスク領域、そしてネットワーク帯域幅の一部を使います。 "
-"あなたは、これらの資源をどれだけ、そして何時、 %1 に振り向けるかを制御できます。"
+msgstr "あなたのコンピュータで %1 を動かすと、そのコンピュータの CPU パワー、 ディスク領域、そしてネットワーク帯域幅の一部を使います。 あなたは、これらの資源をどれだけ、そして何時、%1 に振り向けるかを制御できます。"
 
 #: ../user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"あなたのコンピュータがした仕事は、%1 プロジェクトの目標に貢献します。 その目標はプロジェクトのウェブサイトに書かれています。 "
-"そのアプリケーションプログラムは、時間がたつにつれ変更されるかもしれません。 "
+msgstr "あなたのコンピュータがした仕事は、%1 プロジェクトの目標に貢献します。その目標はプロジェクトのウェブサイトに書かれています。そのアプリケーションプログラムは、時間がたつにつれ変更されるかもしれません。 "
 
 #: ../user/info.php:42
 msgid "Privacy policy"
-msgstr "プライバシーに関する方針"
+msgstr "プライバシーポリシー"
 
 #: ../user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"%1 プロジェクトのあなたのアカウントは、あなたが選んだ名前で識別されます。 この名前は %1 プロジェクトのウェブサイト上で表示されるかもしれません。 "
-"そこでは、%1 プロジェクトであなたのコンピュータがやり終えた仕事の要約も表示されるかもしれません。 "
-"無名の人のままでいたかったら、あなたが誰なのか分かるような名前を選んではいけません。 "
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "%1 プロジェクトのあなたのアカウントは、あなたが選んだ名前で識別されます。この名前は %1 プロジェクトのウェブサイト上で表示されるかもしれません。そこでは、%1 プロジェクトであなたのコンピュータがやり終えた仕事の概略も表示されるかもしれません。無名の人のままでいたかったら、あなたが誰なのか分かるような名前を選んではいけません。 "
 
 #: ../user/info.php:44
 msgid ""
@@ -4898,21 +4793,14 @@ msgid ""
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"%1 に参加すると、あなたのコンピュータに関する情報 (プロセサのタイプや、メモリ量など)は、 %1 "
-"プロジェクトにより記録され、どのようなタイプの仕事をそのコンピュータに割り当てるかを判断するために使われます。 この情報も、 %1 "
-"のウェブサイト上で表示されます。 あなたのコンピュータの位置を明かしてしまうようなもの(たとえば、ドメイン名やネットワークアドレス) "
-"は表示されることはありません。"
+msgstr "%1 に参加すると、あなたのコンピュータに関する情報(プロセッサのタイプや、メモリの量など)は、%1 プロジェクトにより記録され、どのようなタイプの仕事をそのコンピュータに割り当てるかを判断するために使われます。この情報も、%1 のウェブサイト上で表示されます。 あなたのコンピュータの位置を明かしてしまうようなもの(たとえば、ドメイン名やネットワークアドレス)は表示されることはありません。"
 
 #: ../user/info.php:45
 msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"%1 に参加するには、メイルを受信できるアドレスを提示しなければなりません。 このアドレスは、 %1 "
-"プロジェクトのウェブサイトで表示されることはなく、複数の組織間で共有されることもありません。 %1 "
-"プロジェクトは定期的なニュースレターをこのメイルアドレス向けに送信することがありますが、受信しないようにいつでも変更可能です。"
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "%1 に参加するには、メールを受信できるアドレスを提示しなければなりません。このアドレスは、%1 プロジェクトのウェブサイトで表示されることはなく、複数の組織間で共有されることもありません。%1 プロジェクトは定期的なニュースレターをこのメールアドレス向けに送信することがありますが、受信しないようにいつでも変更可能です。"
 
 #: ../user/info.php:46
 msgid ""
@@ -4921,57 +4809,41 @@ msgid ""
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"%1 ウェブサイトの中で送信された非公開メッセージは、送信者と受信者だけが見ることができます。 %1 "
-"プロジェクトは非公開メッセージの内容をチェックしたり取り締まったりすることはありません。 %1 "
-"プロジェクトの他の参加者から、望まぬ非公開メッセージを受信したら、あなたの %2メッセージ・フィルター%3 "
-"にその参加者を登録できます。こうすると、その参加者からのメッセージは、公開メッセージであろうと非公開メッセージであろうと、 "
-"あなたの目に触れることはなくなります。"
+msgstr "%1 ウェブサイトの中で送信された非公開メッセージは、送信者と受信者だけが見ることができます。%1 プロジェクトは非公開メッセージの内容をチェックしたり取り締まったりすることはありません。%1 プロジェクトの他の参加者から、望まぬ非公開メッセージを受信したら、あなたの %2メッセージ・フィルター%3 にその参加者を登録できます。こうすると、その参加者からのメッセージは、公開メッセージであろうと非公開メッセージであろうと、あなたの目に触れることはなくなります。"
 
 #: ../user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"このウェブサイトの掲示板をお使いになるのでしたら、%2投稿のガイドライン%3 に従っていただく必要があります。 この %1 "
-"掲示板に投稿されたメッセージは メンバー以外の方も含めて、誰でも読めます。 いったんメッセージを投稿すると、どのような人にもあなたの投稿内容を見る許可、 "
-"そしてそれをコピーする許可を永久に取り戻すことのできない形で与えることを 認めたことになります。 "
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "このウェブサイトの掲示板をお使いになるのでしたら、%2投稿のガイドライン%3 に従わなければなりません。この %1 掲示板に投稿されたメッセージは、メンバー以外の方も含め誰でも読むことができます。いったんメッセージを投稿すると、どのような人にでもあなたの投稿内容を見たり、それをコピーする許可を永久に取り消すことのできない形で与えることを認めたことになります。 "
 
 #: ../user/info.php:48
 msgid "Is it safe to run %1?"
-msgstr "%1 を実行することは安全か?"
+msgstr "%1 を実行することは安全か?"
 
 #: ../user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"インターネットからプログラムをダウンロードするときには、いつでも危険がついて "
-"回ります。つまり、そのプログラムが危険な異常を起こしたり、ダウンロードサーバ が侵入を受けていたということがあり得ます。 %1 "
-"プロジェクトでは、このようなリスクを極力減らす努力をしています。 私たちのアプリケーションは注意深くテストされています。 "
-"サーバはファイアウォールの背後に置かれていて、安全性の高い設定がなされています。 "
-"プログラム・ダウンロードの完全性を保証するため、インターネットから隔離した "
-"安全なコンピュータを使い、すべての実行可能ファイルにデジタル署名をつけています。"
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "インターネットからプログラムをダウンロードするときには、いつでも危険がついて回ります。つまり、そのプログラムが危険な異常を起こしたり、ダウンロードサーバが侵入を受けていたということがあり得ます。%1 プロジェクトでは、このようなリスクを極力減らす努力をしています。私たちのアプリケーションは注意深くテストされています。サーバはファイアウォールの背後に置かれていて、安全性の高い設定がなされています。プログラム・ダウンロードの完全性を保証するため、インターネットから隔離した安全なコンピュータを使い、すべての実行可能ファイルにデジタル署名をつけています。"
 
 #: ../user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"%1 プロジェクトで走るアプリケーションは、一部のコンピュータを過熱させるかもしれません。 もしそうなったら、%1 を走らせるのを止めるか、CPU "
-"使用量を制限する %2ユーティリティ・プログラム%3 を使ってください。 "
+msgstr "%1 プロジェクトで実行するアプリケーションは、一部のコンピュータを過熱させるかもしれません。もしそうなったら、%1 の実行を止めるか、CPU 使用量を制限する %2ユーティリティ・プログラム%3 を使ってください。 "
 
 #: ../user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 は %2 で開発されました。 BOINC は、University of California で開発されました。 "
+msgstr "%1 は %2 で開発されました。 BOINC は、カリフォルニア大学(University of California)で開発されました。 "
 
 #: ../user/info.php:53
 msgid "Liability"
@@ -4980,11 +4852,9 @@ msgstr "責務"
 #: ../user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 に参加したことの結果として生じた、あなたのコンピュータの被害、データの消滅、 あるいはどんな事件や状況についても、 %1 と %2 "
-"は、なんら責任を負いません。"
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 に参加したことの結果として生じた、あなたのコンピュータの被害、データの損失、あるいはどんな事件や状況についても、%1 と %2 は、なんら責任を負いません。"
 
 #: ../user/info.php:56
 msgid "Other BOINC projects"
@@ -4992,22 +4862,17 @@ msgstr "その他の BOINC プロジェクト"
 
 #: ../user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"他のプロジェクトも、 %1 と同様、BOINC という同じプラットフォームを使います。 "
-"あなたはこれらの他のプロジェクトにも参加したいと思うかもしれません。 もし他のプロジェクトにも参加していれば、たとえ 渡せる仕事が %1 "
-"になくなったときでも、 あなたのコンピュータは 意味ある仕事を実行することができます。 "
+msgstr "他のプロジェクトも、%1 と同様に、BOINC という同じプラットフォームを使います。あなたはこれらの他のプロジェクトにも参加したいと思うかもしれません。もし他のプロジェクトにも参加していれば、たとえ %1 に渡せる仕事がなくなったときでさえ、あなたのコンピュータは有用な仕事を実行することができます。 "
 
 #: ../user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"これらの他のプロジェクトは、%1 と共同で運営されているわけではありません。 ですから、それらプロジェクトのセキュリティ管理の実施ぐあいや、 "
-"研究内容の性質については、なんら私たちが保証できるものではありません。 あなた自身のリスクで参加してください。"
+msgstr "これらの他のプロジェクトは、%1 と共同で運営されているわけではありません。ですから、それらプロジェクトのセキュリティ管理の実施具合や、研究内容の性質については、なんら私たちが保証できるものではありません。あなた自身のリスクで参加してください。"
 
 #: ../user/language_select.php:47
 msgid "Language selection"
@@ -5023,27 +4888,22 @@ msgstr "このウェブサイトは複数の言語で表示できます。現在
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"通常、このウェブサイトの表示に使う言語は あなたが使っているブラウザの言語設定から決まるようになっており、 それは現在 %1 です。 "
-"ブラウザの言語設定は、以下のようにして変更できます。"
+msgstr "通常、このウェブサイトの表示に使う言語はあなたが使っているブラウザの言語設定から決まるようになっており、それは現在 %1 です。 ブラウザの言語設定は、以下のようにして変更できます:"
 
 #: ../user/language_select.php:83
 msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: ツール(T)/オプション(O)/一般"
+msgstr "Firefox: ツール(T)/オプション(O)/一般"
 
 #: ../user/language_select.php:85
 msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft Internet Explorer: ツール(T)/インターネット・オプション(O)/全般/言語(L)"
+msgstr "Microsoft Internet Explorer: ツール(T)/インターネット・オプション(O)/全般/言語(L)"
 
 #: ../user/language_select.php:89
 msgid ""
 "Or you can select a language by clicking on one of the links.  This will "
 "send your browser a cookie; make sure your browser accepts cookies from our "
 "domain."
-msgstr ""
-"あるいは別のやり方として、下記のテーブルにあるリンクをクリックすることでも "
-"言語を選択できます。この方法では、あなたのブラウザに「クッキー」が送られますので、 このウェブページのドメインからクッキーを受け入れられるように "
-"ブラウザを設定しておいてください。"
+msgstr "あるいは別のやり方として、下記のテーブルにあるリンクをクリックすることでも言語を選択できます。この方法では、あなたのブラウザに「クッキー」が送られますので、このウェブページのドメインからクッキーを受け入れられるようにブラウザを設定しておいてください。"
 
 #: ../user/language_select.php:95
 msgid "Language name (click to select)"
@@ -5055,46 +4915,23 @@ msgstr "ブラウザの言語設定に従う"
 
 #: ../user/language_select.php:113
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr "翻訳はボランティアの方々にしていただいています。 あなたの第一言語がここになければ、%1あなたも翻訳をすることができます%2。"
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Eメイルアドレス"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "Eメイルアドレスを忘れたときはこちらへ"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "パスワード:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "パスワードを忘れたときはこちらへ"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "ログインしたままにする"
+"Translations are done by volunteers.  If your native language is not here, "
+"%1you can provide a translation%2."
+msgstr "翻訳はボランティアの方々にしていただいています。あなたの第一言語がここになければ、%1あなたも翻訳をすることができます%2。"
 
-#: ../user/login_form.php:62
+#: ../user/login_form.php:57
 msgid "or %1create an account%2."
-msgstr "または %1アカウントを作成する%2."
+msgstr "または %1アカウントを作成する%2 。"
 
 #: ../user/merge_by_name.php:31
-#, fuzzy
 msgid "Processing %1"
-msgstr "処理"
+msgstr "%1 を処理中"
 
 #: ../user/merge_by_name.php:43
-#, fuzzy
 msgid "Merged %1 into %2"
-msgstr "計算機 %1 を %2 にマージしています"
+msgstr "%1 を %2 にマージしました"
 
 #: ../user/merge_by_name.php:72
-#, fuzzy
 msgid "Return to the list of your computers"
 msgstr "あなたのコンピュータの一覧に戻る"
 
@@ -5106,16 +4943,15 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
+msgstr "この操作では、そのドメイン名に基づいてコンピュータをマージします。\n<p>\nそれぞれ同じドメイン名の場合、すべての古いコンピュータを最新のコンピュータにマージします。\n互換性のないコンピュータはマージされません。\n<p>"
 
 #: ../user/merge_by_name.php:82
 msgid "Go ahead and do this"
-msgstr ""
+msgstr "先へ進んでこれを行う"
 
 #: ../user/merge_by_name.php:83
-#, fuzzy
 msgid "Return to the list of computers"
-msgstr "あなたのコンピュータの一覧に戻る"
+msgstr "コンピュータの一覧に戻る"
 
 #: ../user/moderation.php:26
 msgid ""
@@ -5123,7 +4959,7 @@ msgid ""
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
+msgstr "\n議論や情報の流れを最大化するため、私たちの掲示板は加減されています。\n掲示板への投稿は以下の投稿規約を条件とします:\n"
 
 #: ../user/moderation.php:30
 msgid ""
@@ -5132,8 +4968,7 @@ msgid ""
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5162,7 +4997,7 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
+msgstr "\n<p>\nモデレーターは、これらの規約のいずれかに違反する投稿を削除する場合があります。\n削除された投稿者には、Eメールで通知されます。\n悪質な違反者はメッセージを投稿する能力が一時的に無効にされている場合があります(悪用を防ぐためではありますが、唯一プロジェクト管理者がそうする能力を持っています)。\n正規のルールに記載されていないものの、さらなる種類の有害行動はそれでもやはり同じような罰則につながる可能性があります(他の参加者のIPアドレスをトラップする「盗聴」のような投稿、掲示板へのスパムのための過度のスレッドの作成など)。\n<p>\nある投稿が投稿規約のいずれかに違反すると思われる場合は、該当する投稿の赤いXをクリックし、フォームに必要事項を記入します。そうすることでモデレーターにあなたの苦情が通知されます。\n個人的異議以外・明確な違反についてのみこのボタンを使用してください。\n<p>\n私たちは調停するとき、できる限り公平にしようとしますが、多くの異なる観点をもつユーザーの大規模なコミュニティには、常に私たちの節度の決定に満足でき [...]
 
 #: ../user/pending.php:66
 msgid "Pending credit"
@@ -5170,36 +5005,31 @@ msgstr "保留中の功績"
 
 #: ../user/pending.php:68
 msgid "Result ID"
-msgstr ""
+msgstr "結果のID"
 
 #: ../user/pending.php:68
-#, fuzzy
 msgid "Workunit ID"
-msgstr "ワークユニット"
+msgstr "ワークユニットのID"
 
 #: ../user/pending.php:68
-#, fuzzy
 msgid "Host ID"
-msgstr "計算機"
+msgstr "計算機のID"
 
 #: ../user/pending.php:68
-#, fuzzy
 msgid "Claimed credit"
-msgstr "認められた功績値"
+msgstr "要求された功績値"
 
 #: ../user/pending.php:81
-#, fuzzy
 msgid "Pending credit: %1"
-msgstr "保留中の功績"
+msgstr "保留中の功績値: %1"
 
 #: ../user/pm.php:32
 msgid "Block messages from this user"
-msgstr ""
+msgstr "この参加者からのメッセージをブロックする"
 
 #: ../user/pm.php:32
-#, fuzzy
 msgid "Block user"
-msgstr "該当する参加者はありません"
+msgstr "参加者をブロックする"
 
 #: ../user/pm.php:73
 msgid "Your message has been sent."
@@ -5213,264 +5043,255 @@ msgstr "非公開メッセージは届いていません。"
 msgid "Sender and date"
 msgstr "送信者名と日付"
 
-#: ../user/pm.php:106
-#, fuzzy
+#: ../user/pm.php:111
 msgid "Reply to this message"
-msgstr "右の%1メッセージ ID%2に返答する:"
+msgstr "このメッセージへ返信する"
 
-#: ../user/pm.php:107
-#, fuzzy
+#: ../user/pm.php:112
 msgid "Delete this message"
-msgstr "選択したメッセージを削除する"
+msgstr "このメッセージを削除する"
 
-#: ../user/pm.php:112
+#: ../user/pm.php:117
 msgid "Select all"
-msgstr ""
+msgstr "すべて選択"
 
-#: ../user/pm.php:114
+#: ../user/pm.php:119
 msgid "Unselect all"
-msgstr ""
+msgstr "すべて選択解除"
 
-#: ../user/pm.php:117
+#: ../user/pm.php:122
 msgid "Delete selected messages"
 msgstr "選択したメッセージを削除する"
 
-#: ../user/pm.php:140
+#: ../user/pm.php:145
 msgid "Sender"
 msgstr "送信者"
 
-#: ../user/pm.php:143
+#: ../user/pm.php:148
 msgid "Date"
 msgstr "日付"
 
-#: ../user/pm.php:185
+#: ../user/pm.php:190
 msgid "You need to fill all fields to send a private message"
 msgstr "非公開メッセージを送信するためには、すべての欄に入力しなければなりません。"
 
-#: ../user/pm.php:188
-#, fuzzy
+#: ../user/pm.php:193
 msgid ""
 "Your message was flagged as spam\n"
 "                by the Akismet anti-spam system.\n"
 "                Please modify your text and try again."
-msgstr ""
-"あなたが書き込んだ初回の内容は Akismet anti-spam "
-"システムからスパムの疑いがあると判定されました。テキストを編集しなおしてから、もう一度試してみてください。"
+msgstr "あなたが書き込んだ初回の内容は Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集しなおしてから、もう一度試してみてください。"
 
-#: ../user/pm.php:205
+#: ../user/pm.php:210
 msgid "Could not find user with id %1"
 msgstr "IDが %1 の参加者は見つかりませんでした"
 
-#: ../user/pm.php:210
+#: ../user/pm.php:215
 msgid "Could not find user with username %1"
-msgstr "名前が %1 の参加者は見つかりませんでした"
+msgstr "ユーザー名が %1 の参加者は見つかりませんでした"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: ../user/pm.php:217
 msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "名前 %1 は複数存在します。IDを指定してください。"
+msgstr "ユーザー名 %1 は複数存在します。ユーザーIDを指定してください。"
 
-#: ../user/pm.php:217
+#: ../user/pm.php:222
 msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "%1 さん(ID: %2) は、あなたからの非公開メッセージを受け付けていません。"
+msgstr "%1 さん(ID: %2 )は、あなたからの非公開メッセージを受け付けていません。"
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: ../user/pm.php:245 ../user/view_profile.php:28
 msgid "No such user"
-msgstr "該当する参加者はありません"
+msgstr "該当する参加者はいません"
 
-#: ../user/pm.php:242
+#: ../user/pm.php:247
 msgid "Really block %1?"
-msgstr "本当に %1 を遮断しますか?"
+msgstr "本当に %1 をブロックしますか?"
 
-#: ../user/pm.php:243
+#: ../user/pm.php:248
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr "本当に %1 から送信される非公開メッセージを遮断しますか?"
+msgstr "本当に %1 から送信される非公開メッセージをブロックしますか?"
 
-#: ../user/pm.php:244
+#: ../user/pm.php:249
 msgid "Please note that you can only block a limited amount of users."
-msgstr "遮断できる相手の数に限りがあります。ご注意ください。"
+msgstr "ブロックできる相手の数に限りがあります。ご注意ください。"
 
-#: ../user/pm.php:245
+#: ../user/pm.php:250
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr "この利用者からのメッセージを一旦遮断しても、 掲示板のプレファレンス(好みの設定)で遮断状態は解除することができます。"
+msgstr "この利用者からのメッセージを一旦ブロックしても、掲示板のプレファレンス(好みの設定)でブロックを解除することができます。"
 
-#: ../user/pm.php:252
+#: ../user/pm.php:257
 msgid "No, cancel"
-msgstr "いいえ、やめます。"
+msgstr "いいえ、やめます"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: ../user/pm.php:265 ../user/team_admins.php:100
 msgid "no such user"
-msgstr "該当する参加者はありません"
+msgstr "該当する参加者はいません"
 
-#: ../user/pm.php:263
+#: ../user/pm.php:268
 msgid "User %1 blocked"
-msgstr "参加者 %1 を遮断しました。"
+msgstr "参加者 %1 をブロックしました"
 
-#: ../user/pm.php:265
+#: ../user/pm.php:270
 msgid "User %1 has been blocked from sending you private messages."
-msgstr "参加者 %1 については、すでにあなたへ非公開メッセージを送れない遮断状態になっています。"
+msgstr "参加者 %1 については、すでにあなたへ非公開メッセージを送れないブロック状態になっています。"
 
-#: ../user/pm.php:266
+#: ../user/pm.php:271
 msgid "To unblock, visit %1message board preferences%2"
-msgstr "遮断状態を解除するには、%1掲示板のプレファレンス(好みの設定)%2 で設定を変更してください。"
+msgstr "ブロックを解除するには、%1掲示板のプレファレンス(好みの設定)%2 で設定を変更してください。"
 
-# It seems to be an error message for programmers, Not translated.
-#: ../user/pm.php:302
-#, fuzzy
+#: ../user/pm.php:307
 msgid "Unknown action"
-msgstr "Unknown subscription action"
+msgstr "不明な動作"
 
-#: ../user/prefs.php:32
+#: ../user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"あなたのプレファレンス(好みの設定)は更新されました。この更新が効果を発揮\n"
-"\t するタイミングは、あなたのコンピュータが %1 と通信をしたとき、\n"
-"\t または、あなたが %2更新%3 の指令を BOINC Manager から出したときです。"
+msgstr "あなたのプレファレンス(好みの設定)は更新されました。\nこの更新が効果を発揮するタイミングは、あなたのコンピュータが %1 と通信したとき、または、あなたが %2更新%3 の指令を BOINC マネージャから出したときです。"
 
-#: ../user/prefs.php:41
+#: ../user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
+msgstr "あなたのプレファレンスは初期値にリセットされました。\nこの更新が効果を発揮するタイミングは、あなたのコンピュータが %1 と通信したとき、またはあなたが %2更新%3 の指令を BOINC マネージャから出したときです。"
 
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
 msgid "%1 for %2"
-msgstr "%2用の %1"
+msgstr "%2 用の %1"
 
-#: ../user/prefs_edit.php:110
+#: ../user/prefs_edit.php:112
 msgid "Back to preferences"
 msgstr "プレファレンス一覧のページに戻る"
 
-#: ../user/prefs_remove.php:45
+#: ../user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "プレファレンス削除の確認"
 
-#: ../user/prefs_remove.php:48
+#: ../user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "%2用の 個別 %1 プレファレンスを削除しようとしています。削除してもよろしいですか?"
+msgstr "本当に %2 用の 個別 %1 プレファレンスを削除してもよろしいですか?"
 
-#: ../user/prefs_remove.php:52
+#: ../user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "プレファレンスを削除"
 
-#: ../user/prefs_remove.php:54
+#: ../user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "キャンセル"
 
-#: ../user/profile_menu.php:35
+#: ../user/profile_menu.php:34 ../user/sample_index.php:119
+msgid "Profiles"
+msgstr "プロフィール"
+
+#: ../user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"%1自己紹介記事(プロファイル)%2 は、参加者個人それぞれが、このプロジェクトの %"
-"3コミュニティとの間で、バックグラウンドや意見を共有することを可能にします。"
+msgstr "%1プロフィール%2 は、参加者個人それぞれが、このプロジェクトの  %3 コミュニティとの間で、経歴や意見を共有することを可能にします。"
 
-#: ../user/profile_menu.php:36
+#: ../user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
 msgstr "ボランティアで参加している仲間の多彩さをみて回りましょう。 そして、他の参加者が楽しめるようにあなたの見方を提供しましょう。"
 
-#: ../user/profile_menu.php:37
+#: ../user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"まだご自身の自己紹介記事(プロファイル)を作っていないのでしたら、 他の参加者が見ることができるように、%1あなたの自己紹介を作りましょう%2。"
+msgstr "まだご自身のプロフィールを作っていないなら、他の参加者が見ることができるように、%1あなたのプロフィールを作りましょう!%2"
 
-#: ../user/profile_menu.php:42
+#: ../user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "毎日の参加者紹介"
 
-#: ../user/profile_menu.php:57
+#: ../user/profile_menu.php:59
 msgid "User Profile Explorer"
-msgstr "参加者の自己紹介記事(プロファイル)のイクスプローラ"
+msgstr "参加者のプロフィールのエクスプローラ"
 
-#: ../user/profile_menu.php:60
+#: ../user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
-msgstr "%1参加者の写真ギャラリー%2 を見る"
+msgstr "%1参加者の写真ギャラリー%2 を見ます。"
 
-#: ../user/profile_menu.php:61
+#: ../user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
-msgstr "%1国ごと%2に自己紹介を見る"
+msgstr "%1国ごと%2に自己紹介を見ます。"
 
-#: ../user/profile_menu.php:62
+#: ../user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr "自己紹介を見る:%1無作為に選択%2、%3画像付きのものから無作為に選択%4、 %5画像なしのものから無作為に選択%6。"
+msgstr "プロフィールを見る:%1無作為に選択%2、%3画像付きのものから無作為に選択%4、 %5画像なしのものから無作為に選択%6。"
 
-#: ../user/profile_menu.php:66
+#: ../user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
-msgstr "アルファベット順の自己紹介一覧:"
+msgstr "アルファベット順の自己紹介一覧:"
 
-#: ../user/profile_menu.php:72
+#: ../user/profile_menu.php:74
 msgid "Search profile text"
-msgstr "自己紹介のテキストを検索"
+msgstr "プロフィールのテキストを検索"
 
-#: ../user/profile_menu.php:98
+#: ../user/profile_menu.php:100
 msgid "No profiles"
-msgstr "該当する自己紹介なし"
+msgstr "該当するプロフィールはありません"
 
-#: ../user/profile_menu.php:99
+#: ../user/profile_menu.php:101
 msgid "No profiles matched your query."
-msgstr "検索条件に該当する自己紹介はありませんでした。"
+msgstr "検索条件に一致するプロフィールはありませんでした。"
 
-# It seems to be an error message for the implementors.
-#: ../user/profile_rate.php:29
+#: ../user/profile_rate.php:31
 msgid "Invalid vote type:"
-msgstr "Invalid vote type:"
+msgstr "無効な投票のタイプ:"
 
-#: ../user/profile_rate.php:34
+#: ../user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "投票は記録されました"
 
-#: ../user/profile_rate.php:38
+#: ../user/profile_rate.php:40
 msgid "Thank you"
 msgstr "ありがとうございます"
 
-#: ../user/profile_rate.php:41
+#: ../user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
-msgstr "ご推薦を記録しました。"
+msgstr "あなたのご推薦を記録しました。"
 
-#: ../user/profile_rate.php:43
+#: ../user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
-msgstr "この自己紹介に拒否投票したことを記録しました。"
+msgstr "このプロフィールに拒否投票したことを記録しました。"
 
-#: ../user/profile_rate.php:46
+#: ../user/profile_rate.php:48
 msgid "Return to profile."
-msgstr "自己紹介に戻る"
+msgstr "プロフィールに戻ります。"
 
-#: ../user/profile_search_action.php:36
+#: ../user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
-msgstr "'%1' を含む自己紹介記事(プロファイル)"
+msgstr "'%1' を含むプロフィール"
 
-#: ../user/profile_search_action.php:40
+#: ../user/profile_search_action.php:42
 msgid "User name"
-msgstr "参加者名"
+msgstr "ユーザー名"
 
-#: ../user/profile_search_action.php:41
+#: ../user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "参加しているプロジェクト"
 
-#: ../user/profile_search_action.php:44
+#: ../user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "最近の平均功績値(クレジット)"
 
-#: ../user/profile_search_action.php:54
+#: ../user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
-msgstr "'%1' を含む自己紹介記事(プロファイル)はありません。"
+msgstr "'%1' を含むプロフィールはありません"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "タスク %1"
+#: ../user/result.php:33
+msgid "No such task:"
+msgstr "該当するタスクはありません:"
 
 #: ../user/results.php:29
 msgid "This feature is turned off temporarily"
@@ -5486,156 +5307,66 @@ msgstr "アクセス禁止"
 
 #: ../user/results.php:69
 msgid "Missing user ID or host ID"
-msgstr "参加者のID または計算機のIDが指定されていません"
+msgstr "ユーザーIDまたは計算機のIDが指定されていません"
 
 #: ../user/results.php:107
 msgid "No tasks to display"
 msgstr "表示すべきタスクがありません"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "実行中"
+#: ../user/sample_index.php:195
+msgid "User of the day"
+msgstr "毎日の参加者紹介"
 
-#: ../user/server_status.php:100
+#: ../user/server_status.php:59
 msgid "Not Running"
 msgstr "停止状態"
 
-#: ../user/server_status.php:103
+#: ../user/server_status.php:63
+msgid "Running"
+msgstr "実行中"
+
+#: ../user/server_status.php:67
 msgid "Disabled"
 msgstr "指示により停止"
 
-#: ../user/server_status.php:231
+#: ../user/server_status.php:105
 msgid "Project status"
 msgstr "プロジェクトの状態"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "サーバソフトウェアの版: %1"
+#: ../user/server_status.php:110
+msgid "Server status"
+msgstr "サーバー側の状態"
 
-#: ../user/server_status.php:241
+#: ../user/server_status.php:113
 msgid "Program"
 msgstr "プログラム"
 
-#: ../user/server_status.php:241
+#: ../user/server_status.php:113
 msgid "Host"
 msgstr "計算機"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "ウェブページへのデータ自動反映"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "アップロード/ダウンロード用サーバー"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "スケジューラー"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "実行中:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "プログラムは正常に動作しています"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "停止状態:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "プログラムが異常終了したか、あるいは、このプロジェクトが止まっています"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "指示により停止:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "プログラムは停止させられています"
+#: ../user/server_status.php:125
+msgid "Database schema version: "
+msgstr "データベース・スキーマのバージョン:"
 
-#: ../user/server_status.php:303
+#: ../user/server_status.php:138
 msgid "Computing status"
 msgstr "計算の進捗状況"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "データベース サーバにアクセスできません"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "送信可能なタスク"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "タスク 実行中"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "検証待ち状態のワークユニット"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "取り込み待ち状態のワークユニット"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "削除前のワークユニット"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "削除前のタスク"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "トランジショナーの残務(時間)"
-
-#: ../user/server_status.php:374
+#: ../user/server_status.php:153
 msgid "Users"
 msgstr "参加者"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "最近、功績値(クレジット)を獲得した人数"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "クレジット得たことのある人数"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "24時間内に参加した人数"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "現時点の GigaFLOPs"
-
-#: ../user/server_status.php:420
+#: ../user/server_status.php:165
 msgid "Tasks by application"
 msgstr "アプリケーションごとのタスク統計"
 
-# #######################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "アプリケーション"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "未送出"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "計算中"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "最近100リザルトの平均計算所要時間/H、(最小値 - 最大値)"
+#: ../user/server_status.php:168
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "最近100リザルトの平均計算所要時間(単位:時間): 平均値、最小値、最大値"
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
+#: ../user/server_status.php:169
+msgid "Users in last 24 hours"
 msgstr "24時間内に計算結果を返した参加者数"
 
 #: ../user/show_host_detail.php:40
@@ -5646,706 +5377,701 @@ msgstr "コンピュータ %1"
 msgid "Statistics and leaderboards"
 msgstr "統計データとリーダーボード"
 
-#: ../user/stats.php:28
+#: ../user/stats.php:30
 msgid "Statistics for %1"
 msgstr "%1 の統計データ"
 
-#: ../user/stats.php:37
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/stats.php:32 ../user/top_users.php:117
+msgid "Top participants"
+msgstr "参加者のランキング"
+
+#: ../user/stats.php:40 ../user/team.php:48
+msgid "Top teams"
+msgstr "チームのランキング"
+
+#: ../user/stats.php:47
+msgid "Top computers"
+msgstr "コンピュータのランキング"
+
+#: ../user/stats.php:48
+msgid "GPU models"
+msgstr "GPU モデル"
+
+#: ../user/stats.php:49
+msgid "CPU models"
+msgstr "CPU モデル"
+
+#: ../user/stats.php:53
 msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr "%1 と他の BOINC プロジェクトについてのより詳しい統計データを、 下記のいくつかのウェブサイトで見ることができます。"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "%1 と他の BOINC プロジェクトについてのより詳しい統計データを、下記のいくつかのウェブサイトで見ることができます:"
 
-#: ../user/stats.php:40
+#: ../user/stats.php:56
 msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr "ご自分の統計データを、シグネチャ用画像に埋め込んで使うことができます。下記をご覧ください。"
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "ご自分の統計データを、シグネチャ用画像に埋め込んで使うことができます。下記をご覧ください:"
 
-#: ../user/stats.php:43
+#: ../user/stats.php:59
 msgid ""
 "Additionally you can get your individual statistics summed across all BOINC "
 "projects from several sites; see your %1home page%2."
-msgstr ""
-"さらに、すべての BOINC プロジェクトに渡って集計されたご自分の統計データを得ることが、 いくつかのサイトから可能です。 ご自分の%1ホームページ%"
-"2 をご覧ください。"
+msgstr "さらに、すべての BOINC プロジェクトに渡って集計されたご自分の統計データを得ることが、いくつかのサイトから可能です。ご自分の %1ホームページ%2 をご覧ください。"
 
 #: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 の参加者は %2チーム%3 を作ることができます"
+msgid "Teams"
+msgstr "チーム"
 
 #: ../user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 の参加者は %2チーム%3 を作ることができます。"
+
+#: ../user/team.php:31
 msgid ""
 "You may belong to only one team. You can join or quit a team at any time."
 msgstr "所属できるチームは1つだけです。チームへの参加と離脱はいつでも可能です。"
 
-#: ../user/team.php:31
+#: ../user/team.php:33
 msgid "Each team has a %1founder%2 who may:"
-msgstr "それぞれのチームには、%1創設者%2 が1名います。創設者ができることは以下のとおりです。"
+msgstr "それぞれのチームには、%1創設者%2 が1名います。創設者ができることは以下のとおりです:"
 
-#: ../user/team.php:33
+#: ../user/team.php:35
 msgid "access team members' email addresses"
-msgstr "チームメンバーのメイルアドレスにアクセス"
+msgstr "チームメンバーのメールアドレスにアクセス"
 
-#: ../user/team.php:34
+#: ../user/team.php:36
 msgid "edit the team's name and description"
 msgstr "チームの名称と説明文を編集"
 
-#: ../user/team.php:35
+#: ../user/team.php:37
 msgid "add or remove team admins"
-msgstr "チーム管理者を追加/削除する"
+msgstr "チーム管理者を追加/削除"
 
-#: ../user/team.php:36
+#: ../user/team.php:38
 msgid "remove members from the team"
-msgstr "メンバーをチームから削除"
+msgstr "チームからメンバーを削除"
 
-#: ../user/team.php:37
+#: ../user/team.php:39
 msgid "disband a team if it has no members"
-msgstr "メンバーがいなければチームを解散すること"
+msgstr "メンバーがいなければチームを解散する"
 
-#: ../user/team.php:40
+#: ../user/team.php:42
 msgid "To join a team, visit its team page and click %1Join this team%2."
 msgstr "チームに参加するには、そのチームのページに行って、%1このチームに参加%2 をクリックします。"
 
-#: ../user/team.php:41 ../user/team_search.php:180
+#: ../user/team.php:43 ../user/team_search.php:201
 msgid "Find a team"
 msgstr "チームを検索"
 
-#: ../user/team.php:48
+#: ../user/team.php:50
 msgid "All teams"
 msgstr "全てのチーム"
 
-#: ../user/team.php:52
+#: ../user/team.php:54
 msgid "%1 teams"
 msgstr "%1 チーム"
 
-#: ../user/team.php:58
+#: ../user/team.php:60
 msgid "Create a new team"
 msgstr "新しくチームを作る"
 
-#: ../user/team.php:59
+#: ../user/team.php:61
 msgid ""
 "If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "あなたに適切だと思うチームが見つからなかったら、新しく %1チームを作る%2 こともできます。"
+msgstr "あなたにふさわしいと思うチームが見つからなかったら、新しく %1チームを作る%2 こともできます。"
 
-#: ../user/team_admins.php:34
+#: ../user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "このメンバーをチーム管理者の地位からはずします"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: ../user/team_admins.php:42 ../user/team_admins.php:53
 msgid "Add or remove Team Admins"
-msgstr "チーム管理者を追加/削除する"
+msgstr "チーム管理者を追加/削除する"
 
-#: ../user/team_admins.php:41
+#: ../user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
 msgstr "チームのメンバーから「チーム管理者」を複数選べます。チーム管理者は以下のことができます:"
 
-#: ../user/team_admins.php:43
+#: ../user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "チームの情報(名前、URL、説明文、国名)を編集する"
 
-#: ../user/team_admins.php:44
+#: ../user/team_admins.php:46
 msgid "View the team's join/quit history"
-msgstr "チームへの参加・脱退の履歴を見る"
+msgstr "チームへの参加/脱退の履歴を見る"
 
-#: ../user/team_admins.php:45
+#: ../user/team_admins.php:47
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr "必要に応じてチーム掲示板の司会役(モデレータ)をすること (司会が必要な状況を知らせるメイル、あるいは、Red X レポートを受信した場合)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "必要に応じて(調停が必要な状態を知らせるメール、あるいは、Red X レポートを受信した場合)チーム掲示板の仲裁をする"
 
-#: ../user/team_admins.php:47
+#: ../user/team_admins.php:49
 msgid "Team Admins cannot:"
-msgstr "チーム管理者にはできないことは以下のとおり:"
+msgstr "チーム管理者にはできないことは以下のとおりです:"
 
-#: ../user/team_admins.php:49
+#: ../user/team_admins.php:51
 msgid "Change the team founder"
 msgstr "チーム創設者の変更"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: ../user/team_admins.php:52 ../user/team_manage.php:56
 msgid "Remove members"
 msgstr "メンバーの除名"
 
-#: ../user/team_admins.php:53
+#: ../user/team_admins.php:55
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "チーム管理者がそのチームを脱退したら、チーム管理者ではなくなります。"
+msgstr "チーム管理者がそのチームを脱退したとすれば、チーム管理者もやめることになります。"
 
-#: ../user/team_admins.php:54
+#: ../user/team_admins.php:56
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr "チーム管理者としては、あなたが知っていて十分信頼している人を選ぶことをお薦めします。"
+msgstr "チーム管理者として、あなたが知っていて十分信頼している人のみを選ぶことをお薦めします。"
 
-#: ../user/team_admins.php:59
+#: ../user/team_admins.php:61
 msgid "There are currently no Team Admins"
 msgstr "現在、チーム管理者は不在です"
 
-#: ../user/team_admins.php:61
+#: ../user/team_admins.php:63
 msgid "Current Team Admins"
 msgstr "現在のチーム管理者"
 
-#: ../user/team_admins.php:62
+#: ../user/team_admins.php:64
 msgid "Became Team Admin on"
-msgstr "チーム管理者になりました"
+msgstr "以下のチームのチーム管理者になりました:"
 
-#: ../user/team_admins.php:77
+#: ../user/team_admins.php:79
 msgid "Add Team Admin"
 msgstr "チーム管理者を追加する"
 
-#: ../user/team_admins.php:78
+#: ../user/team_admins.php:80
 msgid "Email address of team member:"
-msgstr "チームメンバーの Eメイルアドレス:"
+msgstr "チームメンバーのEメールアドレス:"
+
+#: ../user/team_admins.php:81
+msgid "Add"
+msgstr "追加"
 
-#: ../user/team_admins.php:90
+#: ../user/team_admins.php:92
 msgid "failed to remove admin"
 msgstr "チーム管理者の削除に失敗しました"
 
-#: ../user/team_admins.php:99
+#: ../user/team_admins.php:101
 msgid "User is not member of team"
 msgstr "その人はチームのメンバーではありません"
 
-#: ../user/team_admins.php:101
+#: ../user/team_admins.php:103
 msgid "%1 is already an admin of %2"
 msgstr "%1 はすでに %2 のチーム管理者です"
 
-#: ../user/team_admins.php:105
+#: ../user/team_admins.php:107
 msgid "Couldn't add admin"
 msgstr "チーム管理者を追加できませんでした"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: ../user/team_admins.php:113 ../user/team_manage.php:85
+#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "該当するチームはありません"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: ../user/team_change_founder_action.php:32
+#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
+#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
+#: ../user/team_email_list.php:64
 msgid "no such team"
 msgstr "該当するチームはありません"
 
-#: ../user/team_change_founder_action.php:38
+#: ../user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "その人は %1 のメンバーではありません"
 
-#: ../user/team_change_founder_action.php:41
+#: ../user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "%1 の創設者を変更中"
 
-#: ../user/team_change_founder_action.php:43
+#: ../user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 は今、%2 の創設者になりました"
 
-#: ../user/team_change_founder_form.php:37
+#: ../user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "%1 の創設者を変更する"
 
-#: ../user/team_change_founder_form.php:43
+#: ../user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr "チームメンバであった %1 は、%2の創設者の地位を要求していましたが、チームから脱退してしまったので、その要求を取り消します。"
+msgstr "チームメンバであった %1 は、%2 でこのチームの創設者の地位を要求していましたが、チームから脱退してしまったので、その要求を取り消します。"
 
-#: ../user/team_change_founder_form.php:49
+#: ../user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"チームメンバの %1 は、このチームの創設者の地位を要求しています。 "
-"それはあなたがそのチームを去ったか、あるいは長い間チームとの連絡を絶っていたからかもしれません。"
+msgstr "チームメンバの %1 は、このチームの創設者の地位を要求しています。それはあなたがそのチームを去ったか、あるいは長い間チームとの連絡を絶っていたからかもしれません。"
 
-#: ../user/team_change_founder_form.php:55
+#: ../user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "要求を拒否する"
 
-#: ../user/team_change_founder_form.php:58
+#: ../user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"%1 による要求を拒否しないなら、%2 はチームの創設者を引き受ける権利をもつことになります。<br /><br />\n"
-"                  要求を受け入れるなら、下記のフォームを使って創設者の権限を%3 に割り当ててください。"
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "%1 による要求を拒否しないなら、%2 はチームの創設者を引き受ける選択権をもつことになります。<br /><br />\n要求を受け入れるには、下記のフォームを使って創設者の権限を %3 に割り当てます。"
 
-#: ../user/team_change_founder_form.php:66
+#: ../user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "保留されている権限委譲の要求はありません。"
 
-#: ../user/team_change_founder_form.php:69
+#: ../user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
 "member name and click <strong>Change founder</strong> below."
-msgstr ""
-"他のメンバーにこのチームの創設者権限を割り当てるには、 メンバー名の横にあるボックスにチェックを入れて、下にある "
-"<strong>創設者の変更</strong> をクリックします。"
+msgstr "他のメンバーにこのチームの創設者権限を割り当てるには、メンバー名の横にあるボックスにチェックを入れて、下にある <strong>創設者の変更</strong> をクリックします。"
 
-#: ../user/team_change_founder_form.php:76
+#: ../user/team_change_founder_form.php:78
 msgid "New founder?"
-msgstr "新しい創設者?"
+msgstr "新しい創設者ですか?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
 msgid "Change founder"
 msgstr "創設者の変更"
 
-#: ../user/team_change_founder_form.php:108
+#: ../user/team_change_founder_form.php:110
 msgid "There are no users to transfer team to."
-msgstr ""
+msgstr "チームを移動するユーザーはいません。"
 
-#: ../user/team_create_action.php:29
+#: ../user/team_create_action.php:31
 msgid "You must choose a non-blank team name"
-msgstr "チームの名前を決めます。その名前は空白であってはなりません。"
+msgstr "チームの名前は空白であってはなりません"
 
-#: ../user/team_create_action.php:34
+#: ../user/team_create_action.php:36
 msgid "A team named %1 already exists - try another name"
-msgstr "%1 という名前のチームは既に存在します。別の名前で試してください。"
+msgstr "%1 という名前のチームは既に存在します - 別の名前で試してください"
 
-#: ../user/team_create_action.php:54
+#: ../user/team_create_action.php:56
 msgid "Could not create team - please try later."
-msgstr "チームを作ることができませんでした。しばらくたってからもう一度試してください。"
+msgstr "チームを作ることができませんでした - しばらくたってからもう一度試してください。"
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
 msgid "Create a team"
 msgstr "チームを作る"
 
-#: ../user/team_create_form.php:30
+#: ../user/team_create_form.php:32
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "あなたは %1 に属しています。 新しいチームを作るには、%2 このチームから離脱する %3 必要があります。"
+msgstr "あなたは %1 に属しています。新しいチームを作る前に、 %2 このチームから離脱する %3 必要があります。"
 
-#: ../user/team_delta.php:65
+#: ../user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "創設者でもチーム管理者でもありません"
 
-#: ../user/team_delta.php:72
+#: ../user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "%1 のチーム履歴"
 
-#: ../user/team_delta.php:75
+#: ../user/team_delta.php:76
 msgid "When"
 msgstr "日時"
 
-#: ../user/team_delta.php:76
+#: ../user/team_delta.php:77
 msgid "User"
 msgstr "参加者"
 
-#: ../user/team_delta.php:77
+#: ../user/team_delta.php:78
 msgid "Action"
 msgstr "参加/脱退"
 
-#: ../user/team_delta.php:78
+#: ../user/team_delta.php:79
 msgid "Total credit at time of action"
 msgstr "チーム参加・脱退時の総功績"
 
-#: ../user/team_edit_action.php:53
+#: ../user/team_edit_action.php:55
 msgid "bad country"
 msgstr "国名が正しくありません"
 
-#: ../user/team_edit_action.php:59
+#: ../user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "名前 '%1' は他のチームによって使われています。"
 
-#: ../user/team_edit_action.php:62
+#: ../user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "チームの名前は指定必須です"
 
-#: ../user/team_edit_action.php:90
+#: ../user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
-msgstr "チームの情報を更新できませんでした。しばらくたってからもう一度試してください。"
+msgstr "チームの情報を更新できませんでした - しばらくたってからもう一度試してください。"
 
-#: ../user/team_edit_form.php:33
+#: ../user/team_edit_form.php:35
 msgid "Edit %1"
-msgstr "% を編集"
+msgstr "%1 を編集"
 
-#: ../user/team_edit_form.php:34
+#: ../user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "チームの情報を更新"
 
-#: ../user/team_email_list.php:61
+#: ../user/team_email_list.php:70
 msgid "%1 Email List"
-msgstr "%1 のメンバーの Eメイル一覧"
+msgstr "%1 のメンバーのEメール一覧"
 
-#: ../user/team_email_list.php:63
+#: ../user/team_email_list.php:72
 msgid "Member list of %1"
 msgstr "%1 のメンバー一覧"
 
-#: ../user/team_email_list.php:78
+#: ../user/team_email_list.php:87
 msgid "Show as plain text"
-msgstr "プレインテキストで表示"
+msgstr "プレーンテキストとして表示"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: ../user/team_forum.php:30 ../user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "掲示板を作成する"
 
-#: ../user/team_forum.php:29
+#: ../user/team_forum.php:31
 msgid "You may create a message board for use by %1."
-msgstr "%1 によって使われる掲示板を作ることもできます。"
+msgstr "%1 によって使われる掲示板を作ることができます。"
 
-#: ../user/team_forum.php:31
+#: ../user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "チームに所属するメンバーだけが投稿できます。"
 
-#: ../user/team_forum.php:32
+#: ../user/team_forum.php:34
 msgid "At your option, only members will be able to read."
-msgstr "チームのメンバーだけが読めるようにすることも選べます。"
+msgstr "チームのメンバーだけが閲覧できるようにすることも選択できます。"
 
-#: ../user/team_forum.php:33
+#: ../user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
-msgstr "あなたとチーム管理者に司会者(モデレータ)の権限が付きます。"
+msgstr "あなたとチーム管理者にモデレーターの権限が付きます。"
 
-#: ../user/team_forum.php:40
+#: ../user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "%1 用の掲示板を作成する"
 
-#: ../user/team_forum.php:48
+#: ../user/team_forum.php:50
 msgid "Team already has a message board"
-msgstr "チームにはすでに掲示板が作られています"
+msgstr "チームにはすでに掲示板があります"
 
-#: ../user/team_forum.php:59
+#: ../user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "チームの掲示板"
 
-#: ../user/team_forum.php:71
+#: ../user/team_forum.php:73
 msgid "Minimum time between posts (seconds)"
-msgstr "連続投稿の間の最小時間間隔(秒)"
+msgstr "連続投稿の間隔の最小時間(秒)"
 
-#: ../user/team_forum.php:74
+#: ../user/team_forum.php:76
 msgid "Minimum total credit to post"
 msgstr "投稿するために必要な総功績(credit)の最小値"
 
-#: ../user/team_forum.php:77
+#: ../user/team_forum.php:79
 msgid "Minimum average credit to post"
 msgstr "投稿するために必要な平均功績(credits/day)の最小値"
 
-#: ../user/team_forum.php:80
+#: ../user/team_forum.php:82
 msgid "Submit"
 msgstr "送信"
 
-#: ../user/team_forum.php:89
+#: ../user/team_forum.php:91
 msgid "Remove your team's message board."
-msgstr "チーム掲示板を削除する。"
+msgstr "チームの掲示板を削除します。"
 
-#: ../user/team_forum.php:97
+#: ../user/team_forum.php:99
 msgid "Really remove message board?"
-msgstr "本当に掲示板を削除しますか?"
+msgstr "本当に掲示板を削除しますか?"
 
-#: ../user/team_forum.php:98
+#: ../user/team_forum.php:100
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"あなたのチームの掲示板を削除しようとしていますが、よろしいですか? "
-"すべのスレッドと投稿内容が永久に失われます。(それでも、その後で新しい掲示板を作ることはできます。)"
+msgstr "本当にチームの掲示板を削除してもよろしいですか?すべてのスレッドと投稿内容が永久に失われます(それでも、その後で新しい掲示板を作ることはできます)。"
 
-#: ../user/team_forum.php:100
+#: ../user/team_forum.php:102
 msgid "Yes - remove message board"
 msgstr "はい - 掲示板を削除します"
 
-#: ../user/team_forum.php:121
+#: ../user/team_forum.php:123
 msgid "Message board removed"
 msgstr "掲示板を削除しました"
 
-#: ../user/team_forum.php:124
+#: ../user/team_forum.php:126
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
 msgstr "あなたのチームの掲示板は削除されました。%1新しい掲示板を作る%2ことができます。"
 
-#: ../user/team_forum.php:143
+#: ../user/team_forum.php:145
 msgid "Team Message Board Updated"
 msgstr "チームの掲示板が更新されました"
 
-#: ../user/team_forum.php:144
+#: ../user/team_forum.php:146
 msgid "Update successful"
 msgstr "更新成功"
 
-#: ../user/team_forum.php:147
+#: ../user/team_forum.php:149
 msgid "Update failed"
 msgstr "更新失敗"
 
-#: ../user/team_forum.php:154
+#: ../user/team_forum.php:156
 msgid "Team has no forum"
 msgstr "チームには掲示板がありません"
 
-#: ../user/team_founder_transfer_action.php:36
+#: ../user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "このページにアクセスするにはチームのメンバーでなければなりません。"
 
-#: ../user/team_founder_transfer_action.php:90
+#: ../user/team_founder_transfer_action.php:92
 msgid "Requesting foundership of %1"
 msgstr "%1 の創設者権限の委譲を要求中"
 
-#: ../user/team_founder_transfer_action.php:98
+#: ../user/team_founder_transfer_action.php:100
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"あなたの要求を現在の創設者に Eメイルと非公開メッセージの両方で通知しました。<br /><br />\n"
-"                       創設者が 60日以内に応答しなければ、あなたが創設者になることが許されます。"
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "あなたの要求を現在の創設者にEメールと非公開メッセージの両方で通知しました。<br /><br />\n創設者が 60日以内に応答しなければ、あなたが創設者になることが許されます。"
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: ../user/team_founder_transfer_action.php:104
+#: ../user/team_founder_transfer_action.php:115
 msgid "Foundership request not allowed now"
-msgstr "創設者権限の要求は現在許されません"
+msgstr "創設者権限の要求は現在許されていません"
 
-#: ../user/team_founder_transfer_action.php:109
+#: ../user/team_founder_transfer_action.php:111
 msgid "Assumed foundership of %1"
-msgstr "%1 の創設者権限を引継ぎました"
+msgstr "%1 の創設者権限を引き継ぎました"
 
-#: ../user/team_founder_transfer_action.php:111
+#: ../user/team_founder_transfer_action.php:113
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"おめでとうございます。今、あなたはチーム %1 の創設者になりました。%2あなたのアカウントのページ%"
-"3へ行って、チーム管理者の選択の部分を見てください。"
+msgstr "おめでとうございます。今、あなたはチーム %1 の創設者になりました。チーム管理者のオプションを見るには、%2あなたのアカウントのページ%3へ行ってください。"
 
-#: ../user/team_founder_transfer_action.php:120
+#: ../user/team_founder_transfer_action.php:122
 msgid "Decline founder change request"
-msgstr "創設者変更の要求を拒絶する"
+msgstr "創設者変更の要求を拒否する"
 
-#: ../user/team_founder_transfer_action.php:127
+#: ../user/team_founder_transfer_action.php:129
 msgid "The foundership request from %1 has been declined."
 msgstr "%1 からの創設者変更の要求は拒否されました。"
 
-#: ../user/team_founder_transfer_action.php:130
+#: ../user/team_founder_transfer_action.php:132
 msgid "There were no foundership requests."
-msgstr "創設者権限移譲の要求はありませんでした。"
+msgstr "創設者権限の要求はありませんでした。"
 
-# It seems to be an error message for the implementors.
-#: ../user/team_founder_transfer_action.php:134
+#: ../user/team_founder_transfer_action.php:136
 msgid "undefined action %1"
-msgstr "undefined action %1"
+msgstr "未定義のアクション %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: ../user/team_founder_transfer_action.php:139
+#: ../user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "チームのページへ戻る"
 
-#: ../user/team_founder_transfer_form.php:28
+#: ../user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "このページにアクセスするにはチームのメンバーでなければなりません。"
 
-#: ../user/team_founder_transfer_form.php:31
+#: ../user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "%1 の創設者権限を要求する"
 
-#: ../user/team_founder_transfer_form.php:38
+#: ../user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "あなたは今、チーム %1 の創設者になりました。"
 
-#: ../user/team_founder_transfer_form.php:44
+#: ../user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
-msgstr "あなたは %2に %1 の創設者権限を要求しました。"
+msgstr "あなたは %2 に %1 の創設者権限を要求しました。"
 
-#: ../user/team_founder_transfer_form.php:47
+#: ../user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr "あなたが要求を出してから 60日が経過しましたが、創設者は応答しませんでした。 ここをクリックして創設者権限を引き継いでください:"
+msgstr "あなたが要求を出してから60日が経過しましたが、創設者は応答しませんでした。ここをクリックすることによって創設者権限を引き継げます:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: ../user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "創設者権限を引き継ぐ"
 
-#: ../user/team_founder_transfer_form.php:54
+#: ../user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr "創設者にあなたの要求が通知されました. %1 までに創設者が応答しなければ、あなたが創設者になれます。"
+msgstr "創設者にあなたの要求が通知されました。%1 までに創設者が応答しなければ、あなたが創設者になる選択権が与えられます。"
 
-#: ../user/team_founder_transfer_form.php:60
+#: ../user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"チームの創設者が活動しておらず、あなたがその役割を引き継ぎたい場合、 以下のボタンをクリックしてください。現在の創設者にEメイルが送信され、 "
-"あなたの要求が説明されます。創設者は権限をあなたに委譲するか、 委譲要求を拒否するかを選べます。創設者が60日以内に応答しなければ、 "
-"あなたが新しい創設者になります。<br /><br />\n"
-" 創設者の権限委譲を要求しますか?"
+msgstr "チームの創設者が活動しておらず、あなたがその役割を引き継ぎたい場合、以下のボタンをクリックしてください。現在の創設者にEメールが送信され、あなたの要求が説明されます。創設者は権限をあなたに委譲するか、委譲要求を拒否するかを選べます。創設者が60日以内に応答しなければ、あなたが新しい創設者になります。<br /><br />\n本当に創設者の権限委譲を要求しますか?"
 
-#: ../user/team_founder_transfer_form.php:65
+#: ../user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "創設者権限の委譲要求"
 
-#: ../user/team_founder_transfer_form.php:74
+#: ../user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "創設者の変更は %1 からすでに %2 に要求されています。"
 
-#: ../user/team_founder_transfer_form.php:77
+#: ../user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr "過去90日内に創設者の権限委譲が要求されていましたので、 新規の要求は許されません。しばらくたってからもう一度試してください。"
+msgstr "過去90日内に創設者の権限委譲が要求されていましたので、新規の要求は許可されません。しばらくたってからもう一度試してください。"
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: ../user/team_join.php:34 ../user/team_join_action.php:34
+#: ../user/team_join_form.php:31
 msgid "The team %1 is not joinable."
 msgstr "チーム %1 には参加できません。"
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: ../user/team_join.php:37 ../user/team_join_action.php:37
 msgid "Already a member"
 msgstr "すでに所属しています"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: ../user/team_join.php:38 ../user/team_join_action.php:38
 msgid "You are already a member of %1."
 msgstr "あなたはすでに %1 に所属しています。"
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
+#: ../user/team_join.php:44 ../user/team_join_action.php:45
 msgid "Couldn't join team - please try again later."
-msgstr "チームに参加不可 - しばらくたってからもう一度試してください。"
+msgstr "チームに参加できませんでした - しばらくたってからもう一度試してください。"
 
-#: ../user/team_join_action.php:40
+#: ../user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "%1 に参加完了"
 
-#: ../user/team_join_action.php:41
+#: ../user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "%1 に参加しました。"
 
-#: ../user/team_join_form.php:32
+#: ../user/team_join_form.php:34
 msgid "Join %1"
 msgstr "%1 に参加する"
 
-#: ../user/team_join_form.php:33
+#: ../user/team_join_form.php:35
 msgid "Please note:"
 msgstr "以下にご注意ください:"
 
-#: ../user/team_join_form.php:35
+#: ../user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
-msgstr "チームに参加すると、その創設者にあなたの Eメイルアドレスが知らされます。"
+msgstr "チームに参加すると、その創設者はあなたのメールアドレスを知ることになります。"
 
-#: ../user/team_join_form.php:36
+#: ../user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "チームへ参加しても、あなたのアカウントの功績値には影響はありません。"
 
-#: ../user/team_join_form.php:43
+#: ../user/team_join_form.php:45
 msgid "Join team"
 msgstr "チームに参加する"
 
-#: ../user/team_lookup.php:84
+#: ../user/team_lookup.php:86
 msgid "Search Results"
 msgstr "検索結果"
 
-#: ../user/team_lookup.php:86
+#: ../user/team_lookup.php:88
 msgid "Search results for '%1'"
 msgstr "'%1' の検索結果"
 
-#: ../user/team_lookup.php:88
+#: ../user/team_lookup.php:90
 msgid "You may view these teams' members, statistics, and information."
 msgstr "以下のチームのメンバー数、統計データおよび情報を見ることができます。"
 
-#: ../user/team_lookup.php:98
+#: ../user/team_lookup.php:100
 msgid "More than 100 teams match your search. The first 100 are shown."
 msgstr "100件を超える数のチームが見つかりました。最初の100件を表示します。"
 
-#: ../user/team_lookup.php:104
+#: ../user/team_lookup.php:106
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr "検索結果の末尾。%1 探しているチームを見つけることができなかったなら、 ご自身で %2チームを作る%3 こともできます。"
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "検索結果の最後です。%1 探しているチームを見つけることができなかったなら、ご自身で %2チームを作る%3 こともできます。"
 
-#: ../user/team_manage.php:26
+#: ../user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "%1 のチーム管理"
 
-#: ../user/team_manage.php:29
+#: ../user/team_manage.php:31
 msgid "Edit team info"
-msgstr "チームの情報を更新する"
+msgstr "チームの情報を編集する"
 
-#: ../user/team_manage.php:30
+#: ../user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "チームの名前、URL、説明文、タイプ、国名を更新する"
 
-#: ../user/team_manage.php:32
+#: ../user/team_manage.php:34
 msgid "Member list:"
 msgstr "メンバー一覧:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: ../user/team_manage.php:35 ../user/team_manage.php:39
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: ../user/team_manage.php:36
 msgid "text"
 msgstr "テキスト"
 
-#: ../user/team_manage.php:35
+#: ../user/team_manage.php:37
 msgid "View member names and email addresses"
-msgstr "メンバーの名前と Eメイルアドレスを表示する"
+msgstr "メンバーの名前とEメールアドレスを表示する"
 
-#: ../user/team_manage.php:36
+#: ../user/team_manage.php:38
 msgid "View change history:"
 msgstr "メンバー変更の履歴を表示:"
 
-#: ../user/team_manage.php:38
+#: ../user/team_manage.php:40
 msgid "XML"
 msgstr "XML"
 
-#: ../user/team_manage.php:39
+#: ../user/team_manage.php:41
 msgid "See when members joined or quit this team"
-msgstr "メンバーのチーム参加と脱退の日時を表示する"
+msgstr "メンバーのチーム参加/脱退日時を表示する"
 
-#: ../user/team_manage.php:50
+#: ../user/team_manage.php:52
 msgid "Respond to foundership request."
-msgstr "創設者権限の委譲要求に応答する。"
+msgstr "創設者権限の委譲要求に応答します。"
 
-#: ../user/team_manage.php:50
+#: ../user/team_manage.php:52
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
 msgstr "%1までに応答しないと、%2 がチーム創設者の地位を引き継ぐかもしれません。"
 
-#: ../user/team_manage.php:55
+#: ../user/team_manage.php:57
 msgid "Remove inactive or unwanted members from this team"
-msgstr "チームから活動していないメンバー、好ましくないメンバーを削除する"
+msgstr "活動していない、もしくは好ましくないメンバーをチームから削除する"
 
-#: ../user/team_manage.php:57
+#: ../user/team_manage.php:59
 msgid "Transfer foundership to another member"
-msgstr "創設者の権限を他のメンバーに委譲する"
+msgstr "創設者権限を他のメンバーに委譲する"
 
-#: ../user/team_manage.php:58
+#: ../user/team_manage.php:60
 msgid "Add/remove Team Admins"
-msgstr "チーム管理者を追加・削除する"
+msgstr "チーム管理者を追加/削除する"
 
-#: ../user/team_manage.php:59
+#: ../user/team_manage.php:61
 msgid "Give selected team members Team Admin privileges"
-msgstr "選んだメンバーにチーム管理者の権限を与える"
+msgstr "選択したメンバーにチーム管理者の特権を与える"
 
-#: ../user/team_manage.php:61
+#: ../user/team_manage.php:63
 msgid "Remove team"
 msgstr "チームを削除する"
 
-#: ../user/team_manage.php:62
+#: ../user/team_manage.php:64
 msgid "Allowed only if team has no members"
 msgstr "チームにメンバーがいないときだけ可能"
 
-#: ../user/team_manage.php:64
+#: ../user/team_manage.php:66
 msgid "Create or manage a team message board"
-msgstr "チームの掲示板を作成・管理する"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"このチームをすべての BOINCプロジェクト(現在および未来にわたって)に設置するために、 %1BOINC ワイドのチーム%2 "
-"というものにすることも可能です。"
+msgstr "チームの掲示板を作成/管理する"
 
 #: ../user/team_manage.php:73
 msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "チーム管理者には、Googleの %1boinc-team-founders%2 グループに参加して活動することをお奨めします。"
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "このチームをすべて(現在および未来にわたって)の BOINC プロジェクトに設置するために、%1BOINC ワイドのチーム%2 というものにすることもできます。"
 
 #: ../user/team_manage.php:75
 msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr "その他、BOINC のチーム管理者向けの資材・資料が外部のサイト%1www.boincteams.com%2 にあります。"
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "チーム管理者には、Googleの %1boinc-team-founders%2 グループに参加して活動することをおすすめします。"
 
 #: ../user/team_manage.php:91
 msgid "Can't delete non-empty team"
@@ -6355,136 +6081,128 @@ msgstr "メンバーのいるチームは削除できません"
 msgid "Team %1 deleted"
 msgstr "チーム %1 を削除しました"
 
-#: ../user/team_members.php:36
+#: ../user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "制限値を超過: 最初の1000メンバーのみ表示可能です。"
+msgstr "制限超過: 最初の1000メンバーのみ表示可能です。"
 
-#: ../user/team_members.php:49
+#: ../user/team_members.php:51
 msgid "Members of %1"
 msgstr "%1のメンバー一覧"
 
-#: ../user/team_quit_action.php:32
+#: ../user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "チームから脱退できません"
 
-#: ../user/team_quit_action.php:33
+#: ../user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
-msgstr "指定したチームが存在しないか、あなたがそのチームに所属していません。"
+msgstr "指定したチームが存在しないか、あなたはそのチームに所属していません。"
 
-#: ../user/team_quit_form.php:31
+#: ../user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "%1 から脱退する"
 
-#: ../user/team_quit_form.php:32
+#: ../user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>チームを脱退する前に注意していただくこと:</strong>\n"
-"         <ul>\n"
-"         <li>チームを抜けたら、後でそこに戻ることも、お望みの他のチームに参加することもできます\n"
-"         <li>チームを脱退しても、決してあなた個人の功績データに影響はありません。\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>チームを脱退する前に注意していただくこと:</strong>\n<ul>\n<li>チームを抜けたら、後でそこに戻ることも、希望する他のチームに参加することもできます\n<li>チームを脱退しても、決してあなた個人の功績統計には影響しません。\n</ul>"
 
-#: ../user/team_quit_form.php:40
+#: ../user/team_quit_form.php:42
 msgid "Quit Team"
-msgstr "チームから離脱する"
+msgstr "チームを離脱する"
 
-#: ../user/team_remove_inactive_action.php:31
+#: ../user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "%1 からメンバーを削除しています"
 
-#: ../user/team_remove_inactive_action.php:39
+#: ../user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
-msgstr "%1 は %2のメンバーではありません"
+msgstr "%1 は %2 のメンバーではありません"
 
-#: ../user/team_remove_inactive_action.php:42
+#: ../user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 は削除されました"
 
-#: ../user/team_remove_inactive_form.php:32
+#: ../user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
-msgstr "%1からメンバーを削除する"
+msgstr "%1 からメンバーを削除する"
 
-#: ../user/team_remove_inactive_form.php:39
+#: ../user/team_remove_inactive_form.php:41
 msgid "Remove?"
-msgstr "削除しますか?"
+msgstr "削除しますか?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: ../user/team_remove_inactive_form.php:42
 msgid "Name (ID)"
-msgstr "名前(ID)"
+msgstr "名前 (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: ../user/team_remove_inactive_form.php:67
 msgid "No members are eligible for removal."
 msgstr "削除すべきメンバーは存在しません。"
 
-#: ../user/team_remove_inactive_form.php:68
+#: ../user/team_remove_inactive_form.php:70
 msgid "Remove users"
 msgstr "メンバーを削除する"
 
-#: ../user/team_search.php:68
+#: ../user/team_search.php:76
 msgid "Team name"
 msgstr "チームの名前"
 
-#: ../user/team_search.php:92
+#: ../user/team_search.php:113
 msgid "Team search results"
-msgstr "チームの検査結果"
+msgstr "チームの検索結果"
 
-#: ../user/team_search.php:94
+#: ../user/team_search.php:115
 msgid "No teams were found matching your criteria. Try another search."
 msgstr "検索条件に合致するチームはありません。違う条件で探してみてください。"
 
-#: ../user/team_search.php:96
+#: ../user/team_search.php:117
 msgid "Or you can %1create a new team%2."
 msgstr "あるいは、%1新しくチームを作る%2こともできます。"
 
-#: ../user/team_search.php:100
+#: ../user/team_search.php:121
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"以下のチームが検索条件のうち1つ以上に合致しました。\n"
-"            チームに参加するにはその名前をクリックしてそのチームのページ\n"
-"               に行き、%1このチームに参加%2をクリックしてください。"
+msgstr "以下のチームが検索条件のうち1つ以上に合致しました。\nチームに参加するには、その名前をクリックしてそのチームのページに行き、%1このチームに参加%2をクリックしてください。"
 
-#: ../user/team_search.php:107
+#: ../user/team_search.php:128
 msgid "Change your search"
 msgstr "検索条件を変える"
 
-#: ../user/team_search.php:181
+#: ../user/team_search.php:202
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr "チームは、似かよった興味を持った人、同じ国・会社・学校の人などと一緒になって結成することができます。"
+msgstr "チームは、同じような興味を持った人、同じ国・会社・学校の人などと一緒になって結成することができます。"
 
-#: ../user/team_search.php:183
+#: ../user/team_search.php:204
 msgid "Use this form to find teams that might be right for you."
 msgstr "このフォームを使ってあなたに適切なチームを探してください。"
 
-#: ../user/team_search.php:188
+#: ../user/team_search.php:209
 msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "今のところチームへの参加に%1私は興味がありません%2。"
+msgstr "私は今のところ%1チームへの参加に興味がありません%2。"
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: ../user/top_hosts.php:67 ../user/top_teams.php:102
+#: ../user/top_users.php:113
 msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "制限値を超過 - 残念ですが、最初の %1項目のみ"
+msgstr "制限超過 - 残念ですが、最初の %1 項目のみ"
 
+#. Now display what we've got (either gotten from cache or from DB)
 #: ../user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "コンピュータのランキング"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/top_teams.php:107
 msgid "Top %1 teams"
 msgstr "%1 チームのランキング"
 
-#: ../user/top_teams.php:108
+#: ../user/top_teams.php:110
 msgid "There are no %1 teams"
 msgstr "%1 にチームがありません"
 
@@ -6492,11 +6210,11 @@ msgstr "%1 にチームがありません"
 msgid "Participant since"
 msgstr "参加日時"
 
-#: ../user/uotd.php:29
+#: ../user/uotd.php:31
 msgid "No user of the day has been chosen."
 msgstr "毎日の参加者紹介の対象者が選ばれていません。"
 
-#: ../user/uotd.php:33
+#: ../user/uotd.php:35
 msgid "User of the Day for %1: %2"
 msgstr "毎日の参加者紹介、本日(%1)は %2 さん"
 
@@ -6514,7 +6232,7 @@ msgstr "何でもよい"
 
 #: ../user/user_search.php:56
 msgid "With profile?"
-msgstr "自己紹介の記入があるかどうか"
+msgstr "プロフィールの記入があるかどうか"
 
 #: ../user/user_search.php:57 ../user/user_search.php:62
 msgid "Either"
@@ -6526,7 +6244,7 @@ msgstr "チームへの所属有無"
 
 #: ../user/user_search.php:66
 msgid "Ordering"
-msgstr ""
+msgstr "整理"
 
 #: ../user/user_search.php:67
 msgid "Decreasing sign-up time"
@@ -6540,25 +6258,25 @@ msgstr "平均功績(credits/day)の多い人から表示"
 msgid "Decreasing total credit"
 msgstr "総功績(credits)の多い人から表示"
 
-#: ../user/user_search.php:100
+#: ../user/user_search.php:84
 msgid "search string must be at least 3 characters"
 msgstr "検索条件の文字列は、少なくとも3文字必要です"
 
-#: ../user/user_search.php:133
+#: ../user/user_search.php:118
 msgid "User search results"
 msgstr "参加者の検索結果"
 
-#: ../user/user_search.php:140
+#: ../user/user_search.php:125
 msgid "Joined"
 msgstr "参加日時"
 
-#: ../user/user_search.php:148
+#: ../user/user_search.php:133
 msgid "No users match your search criteria."
-msgstr "指定した条件に合う参加者はいませんでした。"
+msgstr "検索条件に合う参加者はいませんでした。"
 
 #: ../user/userw.php:35
 msgid "User not found!"
-msgstr "該当する参加者はいません!"
+msgstr "該当する参加者が見つかりません!"
 
 #: ../user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
@@ -6570,11 +6288,11 @@ msgstr "チーム:"
 
 #: ../user/userw.php:48
 msgid "Team TotCred:"
-msgstr "チームの総功績"
+msgstr "チームの総功績:"
 
 #: ../user/userw.php:49
 msgid "Team AvgCred:"
-msgstr "チームの平均功績"
+msgstr "チームの平均功績:"
 
 #: ../user/userw.php:51
 msgid "Team: None"
@@ -6582,23 +6300,23 @@ msgstr "チーム: なし"
 
 #: ../user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
-msgstr "BOINCへEメイルアドレス確認"
+msgstr "BOINC のEメールアドレスを確認"
 
 #: ../user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr "あなたが %1 アカウントに指定した Eメイルアドレスを確認するため、下記のリンクを訪れてください:"
+msgstr "あなたが %1 アカウントに指定した Eメールアドレスを確認するため、下記のリンクを訪問してください:"
 
 #: ../user/validate_email_addr.php:34
 msgid "Validate email sent"
-msgstr "送信された Eメイルに確認を返す"
+msgstr "送信された Eメールに確認を返す"
 
 #: ../user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr "Eメイルを %1 に送信しました。そこに含まれるリンクをたどることによって、 あなたの Eメイルアドレスの正しさを証明してください。"
+msgstr "Eメールを %1 に送信しました。そこに含まれるリンクをたどって、あなたのEメールアドレスが正しいことを証明してください。"
 
 #: ../user/validate_email_addr.php:44
 msgid "No such user."
@@ -6606,7 +6324,7 @@ msgstr "該当する参加者はありません。"
 
 #: ../user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
-msgstr "URLデータに異常あり - Eメイルアドレスが確認できません"
+msgstr "URLデータに異常あり - Eメールアドレスが確認できません"
 
 #: ../user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
@@ -6614,39 +6332,38 @@ msgstr "データベース更新失敗 - 後ほどやり直してください。
 
 #: ../user/validate_email_addr.php:57
 msgid "Validate email address"
-msgstr "Eメイルアドレスを確認する"
+msgstr "Eメールアドレスを確認する"
 
 #: ../user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
-msgstr "あなたのアカウントの Eメイルアドレスは確認済みです。"
+msgstr "あなたのアカウントのEメールアドレスは確認されています。"
 
-#: ../user/view_profile.php:36
+#: ../user/view_profile.php:38
 msgid "This user has no profile"
-msgstr "この参加者の自己紹介は登録されていません"
+msgstr "この参加者にはプロフィールがありません"
 
-#: ../user/view_profile.php:54
+#: ../user/view_profile.php:56
 msgid "Profile: %1"
-msgstr "自己紹介: %1"
+msgstr "プロフィール: %1"
 
-#: ../user/view_profile.php:63
+#: ../user/view_profile.php:65
 msgid "Account data"
 msgstr "アカウントのデータ"
 
 #: ../user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
+msgstr "あなたはEメールアドレスとパスワード、もしくは割り当てられた「アカウント・キー」どちらかを使ってアカウントにアクセスできます。\nあなたのアカウント・キー:"
 
 #: ../user/weak_auth.php:57
 msgid "This key can be used to:"
-msgstr ""
+msgstr "このキーは以下のことに使用することができます:"
 
 #: ../user/weak_auth.php:59
 msgid "log in to your account on the web"
-msgstr ""
+msgstr "ウェブ上であなたのアカウントへのログイン"
 
 #: ../user/weak_auth.php:61
 msgid ""
@@ -6654,27 +6371,26 @@ msgid ""
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
+msgstr "BOINC マネージャを使用せずに、アカウントにコンピュータを接続します。\nそのためには、BOINC をインストールし、BOINC のデータディレクトリに %1 という名前のファイルを作成し、以下の内容を設定します:"
 
 #: ../user/weak_auth.php:73
 msgid "Weak account key"
-msgstr "「弱い」アカウント・キー"
+msgstr "弱いアカウント・キー"
 
 #: ../user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
+msgstr "あなたの「弱いアカウント・キー」は前述のように、あなたのアカウントにコンピュータを接続するために使用することができますが、あなたのアカウントにログインしたり、アカウントを変更するために使用することはどのような方法でもできません。\nアカウントに信頼されていないあるいは安全でないコンピュータをアカウントに接続したい場合は、弱いアカウント・キーを使用してください。\nあなたの弱いアカウント・キー : "
 
 #: ../user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
+msgstr "もしパスワードを変更するならば、あなたの弱いアカウント・キーは変更され、以前の弱いアカウントを・キーは無効になります。"
 
 #: ../user/workunit.php:32
 msgid "can't find workunit"
@@ -6684,15 +6400,23 @@ msgstr "ワークユニットが見つかりません"
 msgid "Workunit %1"
 msgstr "ワークユニット %1"
 
+#: ../user/workunit.php:40
+msgid "application"
+msgstr "アプリケーション"
+
 #: ../user/workunit.php:43
 msgid "canonical result"
-msgstr "標準的結果"
+msgstr "基準となる結果"
 
 #: ../user/workunit.php:46
 msgid "granted credit"
 msgstr "認められた功績値"
 
 #: ../user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "タスクを実行中"
+
+#: ../user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "完了保留中のワークユニットは表示を省略"
 
@@ -6706,7 +6430,7 @@ msgstr "複製の初期量"
 
 #: ../user/workunit.php:60
 msgid "max # of error/total/success tasks"
-msgstr "タスク数の各種上限値(異常、総数、正常)"
+msgstr "タスク数の各種上限値(異常、総数、正常)"
 
 #: ../user/workunit.php:64
 msgid "errors"
@@ -6720,200 +6444,70 @@ msgstr "検証"
 msgid "Pending"
 msgstr "保留中"
 
-#: ../project.sample/project.inc:43
+#: ../project.sample/project.inc:70
 msgid "Main page"
-msgstr "入口のページ"
+msgstr "メインページ"
 
-#: ../project.sample/project.inc:45
+#: ../project.sample/project.inc:72
 msgid "Copyright"
 msgstr "Copyright"
 
-#: ../project.sample/project.inc:48
+#: ../project.sample/project.inc:75
 msgid "Generated"
 msgstr "生成日時"
 
-#: ../project.sample/project.inc:79
+#: ../project.sample/project.inc:106
 msgid "Your personal background."
-msgstr "あなたの経歴"
+msgstr "あなたの経歴。"
 
-#: ../project.sample/project.inc:83
+#: ../project.sample/project.inc:110
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr "ご自身について書いてください。どこ出身であるかとか、年齢、職業、趣味ほか、何でもあなたに関することをどうぞ。"
+msgstr "ご自身について書いてください。出身地、年齢、職業、趣味のほか、何でもあなたに関することをどうぞ。"
 
-#: ../project.sample/project.inc:87
+#: ../project.sample/project.inc:114
 msgid "Your opinions about %1"
 msgstr "%1 についてのあなたのご意見"
 
-#: ../project.sample/project.inc:91
+#: ../project.sample/project.inc:118
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"%1についてどのような考えをお持ちか教えてください。<ol>\n"
-"    <li>なぜ %1 を走らせているのでしょうか?\n"
-"    <li>このプロジェクトについて何を期待していますか?\n"
-"    <li>その他にも示唆をいただけますか?\n"
-"    </ol>"
+msgstr "%1についてどのような考えをお持ちか教えてください。<ol>\n<li>なぜ %1 を稼働させているのでしょうか?\n<li>このプロジェクトについて何か意見がありますか?\n<li>その他にも提案をいただけますか?\n</ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: ../project.sample/project_specific_prefs.inc:53
 msgid "Color scheme for graphics"
 msgstr "グラフィックの配色"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: ../project.sample/project_specific_prefs.inc:55
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "グラフィックに割当てる最大CPU使用率(%)%10 ... 100%2"
+msgstr "グラフィックに割り当てる最大CPU使用率(%) %1 0 ... 100 %2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: ../project.sample/project_specific_prefs.inc:56
 msgid "Run only the selected applications"
 msgstr "選択したアプリケーションだけを実行する"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: ../project.sample/project_specific_prefs.inc:57
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "特定のアプリケーションのためのタスクのみ取得します。特定のアプリケーションに集中する、またはそれらを除外する場合に便利です。"
+
+#: ../project.sample/project_specific_prefs.inc:58
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
 msgstr "選択したアプリケーションの仕事がないとき、他のアプリケーションの仕事も受け入れますか?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: ../project.sample/project_specific_prefs.inc:59
+msgid "Use faster non-graphical applications if available?"
+msgstr "利用可能な場合、より高速な非グラフィカルアプリケーションを使用しますか?"
+
+#: ../project.sample/project_specific_prefs.inc:90
 msgid "(all applications)"
 msgstr "(すべてのアプリケーション)"
-
-#~ msgid "Error:"
-#~ msgstr "異常:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "アカウントの作成機能は停止しています。"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "申し訳ありません。このプロジェクトは新規アカウントの作成を停止しています。\n"
-#~ "後ほど試してみてください。"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "アカウントの作成を現在停止しています。 のちほどもう一度お試しください。"
-
-#~ msgid "nvidia GPU"
-#~ msgstr "nvidia GPU"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr "このプロジェクトではまだ Eメイルメッセージを作成しておりません。"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "これらは、あなたが参加するすべての BOINC プロジェクトに適用されます。<br>\n"
-#~ "複数のプロジェクトに参加しているコンピュータでは、一番最後に更新されたプレファレンスが適用されます。"
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "このニュースをお知らせとしてエクスポートする"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "BOINC のデータディレクトリをあなたのコンピュータの中から見つけてください。(Windows なら普通、<b>C:\\Documents and "
-#~ "Settings\\All Users\\Application Data\\BOINC</b> あるいは、<b>C:\\Program "
-#~ "Files\\BOINC</b> です。"
-
-#~ msgid "No such task"
-#~ msgstr "該当するタスクがありません。"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "コンピュータをインターネットに接続する時間間隔 %1 常時接続の場合は、空白のままあるいは 0 を指定する。%2 BOINC "
-#~ "は少なくともこの期間以上の量の仕事を(最大10日分)保持しようとする。%3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "仕事の備蓄分(日数)"
-
-#~ msgid "Update failed: "
-#~ msgstr "更新の失敗:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "あなたのアカウントに %1制限付きのアクセス%2 を可能にします"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "ご注意:BOINC Manager を使う方はこの入力画面を使わないでください。代わりに、BOINC を起動して、[ツール] → "
-#~ "[プロジェクトまたはアカウントマネージャを追加] を選び、メイルアドレスとパスワードを入力してください。"
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "位置固定と指定された投稿は表示位置を変更しない"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "この数より多い投稿が1つのスレッドにあった場合"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "最初の投稿と最新から遡ってこの数の投稿までを表示します"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "あなたの報告は登録されました。入力していただきありがとうございます。"
-
-#~ msgid "Search type"
-#~ msgstr "検索方法"
-
-#~ msgid "User names starting with"
-#~ msgstr "右の文字列で始まる参加者の名前一覧: "
-
-# #######################################
-# "Weak account key" page (weak_auth.php)
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "「弱い」アカウント・キーはコンピュータをプロジェクトに参加させることができますが、 "
-#~ "アカウントページへのログインやアカウントに関する設定変更はできません。"
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr "この仕組みは、2007年12月7日以降にサーバーソフトウェアをアップグレードしたプロジェクトでのみ作動します。"
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "あなたの、このプロジェクトでの「弱い」アカウント・キーは:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "この「弱い」アカウント・キーを使うには、このプロジェクトのアカウントファイルを探すか、 "
-#~ "作るかしてください。ファイルの名前の形式は<b>account_PROJECT_URL.xml</b> です。 %1 用のアカウントファイルは <b>%"
-#~ "2</b> です。"
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "必要であれば、このファイルを作成してください。中身は次のようにしてください :"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "「弱い」アカウント・キーの値はパスワードの値によって決まります。 パスワードを変更すると、「弱い」アカウント・キーは変化し、 "
-#~ "以前の「弱い」アカウント・キーは無効になります。"
-
-#~ msgid "Account key"
-#~ msgstr "アカウント・キー"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "あなたのアカウントの全てにわたってアクセス可能にします"
-
-#~ msgid "Export"
-#~ msgstr "エクスポートする"
diff --git a/html/languages/translations/ko.po b/html/languages/translations/ko.po
index 114f787..12738a4 100644
--- a/html/languages/translations/ko.po
+++ b/html/languages/translations/ko.po
@@ -1,366 +1,599 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
+# 
+# Translators:
+# Jun Seo <seo.galileo at gmail.com>, 2015
+# Kangsan Lee <treppolse at gmail.com>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: 2013/12/3\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-07-27 06:45+0000\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-13 21:58+0000\n"
 "Last-Translator: Kangsan Lee <treppolse at gmail.com>\n"
-"Language-Team: SETIKAH at KOREA\n"
-"Language: ko\n"
+"Language-Team: Korean (http://www.transifex.com/boinc/boinc/language/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1406443547.0\n"
 
-# The name of this language in this language
 msgid "LANG_NAME_NATIVE"
 msgstr "한국어"
 
-# The name of this language in an international language (English)
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Korean"
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "초대 코드"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "계정 생성을 위해서 올바른 초대 코드가 필요합니다."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "이름"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "이 웹 사이트에서 여러분을 식별합니다. 여러분의 본명이나 별명을 써주세요."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "Email 주소"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "반드시 올바른 형식(name at domain)으로 입력해 주세요."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "비밀번호"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "최소 %1 글자이상으로 입력해 주세요"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "비밀번호 확인"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "국가"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "표시되기를 원하는 국가를 선택해주세요."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "우편 번호 혹은 ZIP 코드"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "부가 사항"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "계정 만들기"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "Email 주소:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "email 주소를 잊어버렸습니까?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "비밀번호:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "비밀번호를 잊어버렸습니까?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "로그인 상태 유지"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "로그인"
+
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "긁은 글씨: [b]text[/b]  (alt+b)"
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr "기울임 글씨: [i]text[/i]  (alt+i)"
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "밑줄친 글씨: [u]text[/u]  (alt+u)"
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "취소선: [s]text[/s]  (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "인용된 글: [quote]text[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "코드 표시: [code]code[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "목록: [list]text[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
 msgstr "정렬된 목록: [list=]text[/list]  (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "이미지 삽입: [img]http://image_url[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"URL 삽입: [url]http://url[/url] 또는 [url=http://url]URL text[/url]  (alt+w)"
+msgstr "URL 삽입: [url]http://url[/url] 또는 [url=http://url]URL text[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr "글씨 색상"
 
-#: ../inc/bbcode_html.inc:43
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
 msgstr "글씨 색상: [color=red]text[/color]  팁: 또한 컬러 코드(=#FF0000)도 사용할 수 있습니다"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr "기본값"
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr "어두운 빨강"
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr "빨강"
 
-#: ../inc/bbcode_html.inc:47
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr "주황색"
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr "갈색"
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr "노랑"
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr "초록색"
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr "올리브색"
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr "하늘색"
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr "파랑"
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr "감색"
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr "남색"
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr "보라색"
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr "글씨 크기"
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "글씨 크기: [size=x-small]small text[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr "작게"
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr "보통"
 
-#: ../inc/bbcode_html.inc:62
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr "크게"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr "열려진 bbCode 태그 모두 닫기"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr "태그 닫기"
 
-#: ../inc/forum.inc:37
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "계정"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "함께 하기"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "%1 알아보기"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "도움말"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "프로젝트"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "참여하기"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "작업 수행"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "서버 상태"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "통계"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "응용 프로그램"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "참여자"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "컴퓨터들"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "팀"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "GPU 종류"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "CPU "
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "컴퓨팅"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "커뮤니티"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "게시판"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "팀 생성 혹은 가입"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "프로필"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "사용자 검색"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "오늘의 사용자"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "증명서"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "웹 사이트"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "사이트 내 검색"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "언어 설정"
+
+#. names for the above
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr "오래된 순으로"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr "새로운 순으로"
 
-#: ../inc/forum.inc:39
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr "추천이 많은 포스트 순"
 
-#: ../inc/forum.inc:41
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr "최신 포스트 순"
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr "조회수 순"
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr "포스트가 많은 순"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "관리 기여자"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "프로젝트 운영자"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "프로젝트 개발자"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "프로젝트 테스터"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "개발 기여자"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "테스트 기여자"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "프로젝트 연구자"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "도우미 전문가"
+
+#. Search
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr "포럼 게시물 중에서 검색할 단어"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr "포럼 검색"
 
-#: ../inc/forum.inc:126
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr "고급 검색"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr "쪽지"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr "질문과 답변"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "게시판"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr "%1 게시판"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr "이전"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr "다음"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
 msgid "Author"
 msgstr "작성자"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr "내용"
 
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "메세지 전송"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "메세지 전송"
 
-#: ../inc/forum.inc:580
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr "%1에게 쪽지 보내기"
 
-#: ../inc/forum.inc:581
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr "가입 시기: %1"
 
-#: ../inc/forum.inc:590
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr "작성 글: %1"
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr "크레딧: %1"
 
-#: ../inc/forum.inc:597
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr "RAC: %1"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr "아직 이 글을 읽지 않았습니다"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr "읽지 않음"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr "메세지 %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr "숨김"
 
-#: ../inc/forum.inc:625
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
 msgstr "작성됨: %1"
 
-#: ../inc/forum.inc:628
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr " - 응답한 항목"
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr "수정"
 
-#: ../inc/forum.inc:631
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr "이 메세지 수정하기"
 
-#: ../inc/forum.inc:637
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr "마지막 수정: %1"
 
-#: ../inc/forum.inc:640
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
 msgstr "작성자가 '무시' 목록에 있으므로 이 포스트를 보여주지 않습니다. 이 포스트를 보려면 %1여기%2를 누르세요"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr "이 포스트를 공격적인 글로 신고"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr "공격적인 글 신고"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr "선호도: %1"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "rate: "
 msgstr "점수:"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr "이 메세지가 맘에 들면 누르세요"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr "점수 +"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr "해당 메세지가 안 좋다면 클릭하세요"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr "점수 -"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr "답변"
 
-#: ../inc/forum.inc:685
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr "이 메세지에 답글 달기"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr "인용구"
 
-#: ../inc/forum.inc:687
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr "이 메세지를 인용해서 답글 달기"
 
-#: ../inc/forum.inc:708
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr "관리자 권한으로 숨김"
 
-#: ../inc/forum.inc:729
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr "%1 포스트 %2 작성"
 
-#: ../inc/forum.inc:747
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr "%1까지는 점수 매기기나 글을 쓸 수 없습니다"
 
-#: ../inc/forum.inc:758
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -372,2487 +605,2471 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
 "        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> 포스트는 '전연령'적으로 게시할 것: 외설적이거나\n"
-"            혐오스런 내용, 직접적 혹은 간접적으로\n"
-"            성적인 내용은 포함되면 안 됩니다.\n"
-"        <li> 상업적 광고는 금지됩니다.\n"
-"        <li> 성적인 내용, 도박, 그 외 허용될 수 없는 컨텐츠와\n"
-"            관련한 웹 사이트 링크를 금지합니다.\n"
-"        <li> 타인을 괴롭히거나 도발하기 위한 메세지, 스레드와 관련없는\n"
-"            내용의 메세지는 금지됩니다.\n"
-"        <li> 고의적인 모욕이나 인신 공격성 메세지는 금지됩니다.\n"
-"        <li> 인종, 종교, 국적, 성별, 지위 등과 관련하여서\n"
-"            비난하는 코멘트를 금지합니다.\n"
-"        "
+msgstr "\n        <ul>\n        <li> 포스트는 '전연령'적으로 게시할 것: 외설적이거나\n            혐오관련 내용, 직접적 혹은 간접적으로\n            성적인 내용은 포함되면 안 됩니다.\n        <li> 상업적 광고는 금지됩니다.\n        <li> 성적인 내용, 도박, 그 외 허용될 수 없는 컨텐츠와\n            관련한 웹 사이트 링크를 금지합니다.\n        <li> 타인을 괴롭히거나 도발하기 위한 메세지, 스레드와 관련없는\n            내용의 메세지는 금지됩니다.\n        <li> 고의적인 모욕이나 인신 공격성 메세지는 금지됩니다.\n\n        <li> 인종, 종교, 국적, 성별, 지위 등과 관련해서\n            비난하는 코멘트를 금지합니다.\n        <li> 이런 폭력적인 사용자들은 글쓰기 권한이 일시 정지되거나 반려될 수 있습니다."
 
-#: ../inc/forum.inc:780
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr "규정:"
 
-#: ../inc/forum.inc:781
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr "추가 정보"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr "숨김 해제"
 
-#: ../inc/forum.inc:1055
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr "이 포스트 숨김 해제"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr "숨기기"
 
-#: ../inc/forum.inc:1057
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr "이 포스트 숨기기"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr "이동"
 
-#: ../inc/forum.inc:1062
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr "이 포스트를 다른 스레드로 이동"
 
-#: ../inc/forum.inc:1067
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr "사용자 차단"
 
-#: ../inc/forum.inc:1074
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr "작성자를 차단시킴"
 
-#: ../inc/forum.inc:1078
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr "작성자를 차단시키지 않음"
 
-#: ../inc/forum.inc:1083
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr "작성자 차단 투표 시작"
 
-#: ../inc/forum.inc:1116
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "삭제"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "이 포스트 삭제"
+
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
 msgstr "오직 팀 회원만이 팀 게시판에 글을 쓸 수 있습니다"
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"%1에 새로운 스레드를 만들려면 여러분은 크레딧을 어느 정도 가지고 있어야 합니다. 이 것은 시스템 남용을 막으면서 보호해줍니다. "
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "%1에 새로운 스레드를 생성하려면 일정 수준의 평균 크레딧을 가지고 있어야 합니다. 이는 시스템을 악용으로부터 보호하기 위한 조치입니다."
 
-#: ../inc/forum.inc:1133
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"지금은 더 이상 새로운 스레드를 만들 수 없습니다. 다시 시도하시기 전에 잠시 기다려주십시오. 이러한 지연은 시스템을 남용으로부터 "
-"보호하기 위해서 시행하고 있습니다."
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "지금 당장은 스레드를 생성할 수 없습니다. 다시 시도하시기 전에 잠시 기다려주십시오. 이는 시스템을 악용으로부터 보호하기 위한 조치입니다."
 
-#: ../inc/forum.inc:1140
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
 msgstr "이 스레드는 잠겼습니다. 오직 포럼 관리자와 운영자만 여기에 글을 쓸 수 있습니다."
 
-#: ../inc/forum.inc:1145
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr "숨겨진 스레드에 글을 쓸 수 없습니다."
 
-#: ../inc/forum.inc:1173
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr "스레드"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr "포스트"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr "보기"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr "마지막 포스트"
 
-#: ../inc/forum.inc:1235
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr "%1 스레드에 새로운 포스트가 있습니다"
 
-#: ../inc/forum.inc:1240
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr "구독 중인 스레드에 새로운 포스트가 있습니다"
 
-#: ../inc/forum.inc:1241
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr "스레드 '%1'에 새 포스트가 있습니다"
 
-#: ../inc/forum.inc:1251
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr "모든 스레드를 읽은 것으로 표시"
 
-#: ../inc/forum.inc:1252
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
 msgstr "모든 게시판 스레드를 읽은 것으로 표시합니다."
 
-#: ../inc/host.inc:24
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr "호스트 없음"
 
-#: ../inc/host.inc:26
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr "이용불가"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr "집"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr "직장"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
 msgstr "학교"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "모바일"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "업데이트"
 
-#: ../inc/host.inc:85
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr "컴퓨터 정보"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr "IP 주소"
 
-#: ../inc/host.inc:89
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(최근 %1 시간과 같음)"
 
-#: ../inc/host.inc:91
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr "외부 IP 주소"
 
-#: ../inc/host.inc:94
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr "IP 주소 보이기"
 
-#: ../inc/host.inc:96
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr "도메인 이름"
 
-#: ../inc/host.inc:98
+#: html/inc/host.inc:97
 msgid "Product name"
 msgstr "기기 이름"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "현지 표준 시간대"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC %1 시간"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr "소유자"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr "익명"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr "생성 시각"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr "총 크레딧"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr "평균 크레딧"
 
-#: ../inc/host.inc:116
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr "공유 프로젝트 크레딧"
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr "CPU 종류"
 
-#: ../inc/host.inc:119
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr "프로세서 수"
 
-#: ../inc/host.inc:121
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr "코프로세서"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr "운영체제(OS)"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr "BOINC 버전"
 
-#: ../inc/host.inc:130
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr "메모리"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr "캐시"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr "스왑 영역"
 
-#: ../inc/host.inc:143
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr "전체 디스크 용량"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "사용 가능한 공간"
 
-#: ../inc/host.inc:150
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "부동소수점 연산 속도"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 백만 ops/초"
 
-#: ../inc/host.inc:153
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "정수 연산 속도"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr "평균 업로드 대역폭"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/초"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr "불명"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr "평균 다운로드 대역폭"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr "평균 반환 시간"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 일"
 
-#: ../inc/host.inc:170
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr "응용 프로그램 상세 정보"
 
-#: ../inc/host.inc:171
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr "보이기"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr "태스크 목록"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "클라이언트가 서버와 통신한 횟수"
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "최근에 통신한 서버"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
 msgstr "BOINC가 실행된 시간(%)"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "BOINC가 실행되는 동안, 호스트가 인터넷에 연결된 시간(%)"
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "BOINC가 실행되는 동안, 컴퓨터가 인터넷에 연결된 시간(%)"
 
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "BOINC가 실행되는 동안 허가된 작업의 시간(%)"
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "BOINC가 실행되는 동안 허가된 연산 시간(%)"
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "BOINC가 실행되는 동안 허가된 GPU 연산 시간(%)"
+
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr "평균 CPU 효율"
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr "태스크 지연 보정값"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr "위치"
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr "이 컴퓨터 삭제"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr "이 컴퓨터의 중복되는 기록을 병합"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr "병합"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr "마지막 통신"
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr "컴퓨터 정보"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr "순위"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr "평균 크레딧"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr "최근 평균 크레딧"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr "GPU"
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr "운영체제(OS)"
 
-#: ../inc/host.inc:315
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr "(%1 프로세서)"
 
-#: ../inc/host.inc:335
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr "자세히"
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr "공유 프로젝트 통계:"
 
-#: ../inc/host.inc:515
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr "호스트 %1에서는 이미 실행되고 있습니다:"
 
-#: ../inc/host.inc:522
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr "호스트 %1의 OS는 비호환됩니다:"
 
-#: ../inc/host.inc:528
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr "호스트 %1의 CPU는 비호환됩니다:"
 
-#: ../inc/host.inc:595
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr "같은 호스트"
 
-#: ../inc/host.inc:598
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr "호스트 %1과 %2는 동기화할 수 없습니다 - 호환되지 않습니다"
 
-#: ../inc/host.inc:601
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr "호스트 %1과 호스트 %2 동기화"
 
-#: ../inc/host.inc:618
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr "새 컴퓨터의 크레딧을 업데이트 할 수 없습니다"
 
-#: ../inc/host.inc:622
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr "결과를 업데이트할 수 없습니다"
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr "옛 컴퓨터를 은퇴시킬 수 없습니다"
 
-#: ../inc/host.inc:629
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr "옛 컴퓨터 %1이 은퇴했습니다"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr "보이기:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr "모든 컴퓨터"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr "최근 30일동안 활동한 컴퓨터만 보기"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr "컴퓨터 ID"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "이름"
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "사양"
 
-#: ../inc/host.inc:682
+#: html/inc/host.inc:695
 msgid "BOINC<br>version"
 msgstr "BOINC<br>버전"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "이름순으로 컴퓨터 동기화"
 
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "브라우저 기본값"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "내용"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "토론하기"
 
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "뉴스는 %sRSS 피드%s로도 제공됩니다"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr "목록"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr "쓰기"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "쪽지 보내기"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "팀에게 메세지 전송"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr "미리 보기"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "제목"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "쪽지 보내기"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
 msgid "no such message"
 msgstr "해당 메세지가 없습니다"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "To"
 msgstr "대상"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "ID 혹은 고유한 사용자 이름을 콤마로 구분해서 써주세요"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "제목"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "메세지 전송"
-
-#: ../inc/pm.inc:121
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr "받은 쪽지, 제목:"
 
-#: ../inc/pm.inc:127
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr "쪽지%1 송신 %2 제목:"
 
-#: ../inc/pm.inc:135
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr "글을 작성할 수 없습니다"
 
-#: ../inc/pm.inc:166
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
 msgstr "쪽지를 일정 시간 안에 일정량 이상 보낼 수 없습니다. 새로운 쪽지를 보내실려면 일정시간 기다리셔야 합니다."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr "읽지 않음"
 
-#: ../inc/pm.inc:186
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
 msgstr "email 알림을 받으시려면 %1커뮤니티 환경설정을 수정해 주세요%2"
 
-#: ../inc/pm.inc:198
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr "쪽지"
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "사용량 제한"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "최대 사용량"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr "컴퓨터가 배터리로 작동할때 작업을 일시중지할까요? %1 휴대용 컴퓨터에만 해당됩니다 %2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "다른 응용 프로그램을 위해 CPU를 유휴 상태로 남겨둡니다. 예시: 75%이면 8코어 CPU 중 6코어를 사용합니다."
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "컴퓨터가 사용 중일 동안 작업을 일시중지할까요?"
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% (프로세서)"
 
-#: ../inc/prefs.inc:91
+#: html/inc/prefs.inc:63
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr "컴퓨터가 사용 중일 동안 GPU 작업을 일시중지할까요? .6.21 이상 버전 필요%2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "연산하는 동안 매 몇 초간 CPU 온도 및 에너지 사용량을 줄이기 위해 일시중지/재개를 반복합니다. 예시: 75%는 3초간 연산을 하고 1초간 대기하며 이 동작을 반복합니다."
+
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% (CPU 시간)"
+
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "일시중지시"
+
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "컴퓨터가 배터리로 작동시 일시중지"
+
+#: html/inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "배터리 전원으로 작동하는 상황일 때 연산을 일시중지시키려면 체크하세요."
+
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "컴퓨터가 사용 중일 동안 연산을 일시중지"
+
+#: html/inc/prefs.inc:77
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "컴퓨터 사용시 연산 및 파일 전송을 일시중지시키려면 체크하세요."
+
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "컴퓨터가 사용 중일 동안 GPU 연산을 일시중지"
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "컴퓨터 사용시 GPU 연산을 일시중지시키려면 체크하세요."
+
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
 msgstr "'사용 중'은 마우스/키보드 입력 시간을 뜻합니다"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "이 것은 컴퓨터 '사용 중'인 것을 결정합니다."
+
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
 msgid "minutes"
 msgstr "분"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr "마우스/키보드 입력이 다음 시간 동안 없으면 작업 일시중지 %1 특정 컴퓨터에서 저전력 모드로 들어가려면 필요합니다 %2"
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "마우스/키보드 입력이 이 시간 안에 있으면"
 
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr "비 BOINC CPU 사용량이 다음보다 높으면 작업 일시중지 %1 0은 무제한을 뜻합니다<br>6.10.30이상 버전 필요 %2"
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "특정 컴퓨터에서 미사용시 저전력 모드로 들어가는 것을 허용시켜 줍니다."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "이 시간 사이에만 작업 실행 %1 똑같으면 제한 없음 %2"
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "비BOINC CPU 사용량이 이 값 이상일 때 일시중지"
 
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr "일시중지 시에도 태스크를 메모리에 남겨둘까요? %1 '네'일 경우 일시중지된 태스크는 스왑영역을 차지합니다 %2"
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "컴퓨터가 다른 프로그램을 돌리느라 바쁠 때 연산을 일시중지시킵니다."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "태스크를 설정시간마다 전환 %1 추천값: 60 분 %2"
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "이 시간 사이에만 작업"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "다중 프로세서일 경우 최대한"
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "각 날짜별로 특정 시간대에만 연산"
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "프로세서"
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "기타"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr "다중 프로세서일 경우 최대 사용량 %1 6.1 이상 버전에서 가능 %2"
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "최소한"
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% (프로세서)"
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "컴퓨터를 부지런히 돌리기 위해 충분한 태스크를 저장합니다."
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "최대 사용량 %1 CPU 발열을 줄이기 위해 사용가능 %2"
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "일치 작업량"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% (CPU 시간)"
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "추가적으로 유지할"
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "디스크: 최대 사용량"
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "최소 한도 이상으로 추가적인 태스크를 저장합니다. 또한 프로젝트 서버에 연락할 때 얼마나 많은 작업량을 요청할지 결정합니다."
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "태스크를 설정시간마다 전환"
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "디스크: 여유 공간 %1을 확보합니다 %2보다 작은 값은 무시됩니다 %3"
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "여러 프로젝트를 수행할 경우, BOINC가 얼마나 자주 그것들을 교체할지 결정합니다."
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% (전체 용량 중)"
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "태스크 기록지점을 매 시간마다 기록하도록 "
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "태스크 기록 지점을 지정된 시간마다 기록"
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "태스크가 얼마나 자주 현재 상태를 디스크에 저장하는지 제어합니다. 그렇게 함으로써 해당 지점에서 재시작할 수 있습니다."
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr "초"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "스왑 영역: 최대 사용량"
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "최대한"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "메모리: 컴퓨터 사용시 최대 사용량"
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "전체 디스크 공간 중 BOINC가 사용하는 용량을 제한합니다."
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "메모리: 컴퓨터 미사용시 최대 사용량"
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "작업 가능한 최소한의 태스크를 유지하기: %1(최대 10일)%2"
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "최소한"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "일"
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "BOINC 데이터가 저장되는 볼륨중 여유 공간으로 남겨둘 디스크 용량을 설정합니다."
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... 추가적으로 유지할 태스크"
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB 남겨둡니다"
 
-#: ../inc/prefs.inc:232
+#: html/inc/prefs.inc:155
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr "인터넷에 연결시 확인하시겠습니까? %1 모뎀, ISDN, VPN 연결에만 해당됩니다 %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "BOINC 데이터가 저장되는 볼륨에서 사용하는 디스크 공간의 퍼센테이지를 제합니다."
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr "완료시 접속을 끊을까요? %1 모뎀, ISDN, VPN 연결에만 해당됩니다 %2"
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% (전체 용량 중)"
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "최대 다운로드 대역폭:"
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "컴퓨터 사용시 최대 사용량"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "KB/초"
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "컴퓨터 사용시 BOINC에서 사용하는 메모리를 제한합니다."
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "최대 업로드 대역폭:"
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "이 시간 사이에만 네트워크 사용"
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "컴퓨터 미사용시 최대 사용량"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "최대 전송량 %1 6.10.46 이상 버전이 필요 %2"
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "컴퓨터가 미사용시 BOINC에서 사용하는 메모리를 제한합니다."
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "MB 당"
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "일시중지되는 동안 비GPU 태스크를 메모리에 남겨두기"
 
-#: ../inc/prefs.inc:274
+#: html/inc/prefs.inc:179
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"이미지 파일 검증을 건너뛸까요? %1 인터넷 제공자가 이미지 파일을 변경할 경우에만 체크하세요 (대표적으로 UMTS). %2 검증을 "
-"건너뛰게 되면 BOINC의 보안이 감소하게 됩니다. %3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "체크할 경우, 일시중지된 태스크는 메모리에 남으며 재개시 작업분을 잃지 않습니다. 체크하지 않을 경우, 일시중지된 태스크는 메모리에서 제거되며 재개시 마지막 기록지점에서 시작합니다."
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"자원 공유 %1 이 프로젝트에서 사용할 자원 배분치를 결정하세요. 예: 여러분이 각각 100과 200의 자원을 공유하기로 한 BOINC "
-"프로젝트에 참여하고 계시면 첫 번째는 1/3의 자원을 쓰게 되고, 두 번째는 2/3를 쓰게 됩니다. %2"
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "페이지/스왑 파일: 최대한"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "개별적으로 CPU를 할당해서 GPU 태스크를 가속할까요?"
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "BOINC에서 사용하는 스왑 공간(페이지 파일)을 제한합니다."
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "CPU %1 사용 6.10 이상 버전이 필요 %2"
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "제한된 다운로드 "
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "ATI GPU 존재시 사용 %1 6.10 이상 버전이 필요 %2"
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "파일 전송 중 최대 로드 비율을 제한합니다."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "NVIDIA GPU 존재시 사용 %1 6.10 이상 버전이 필요 %2"
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Intel GPU 사용 %1 7.2 이상 버전이 필요 %2"
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "제한된 업로드 비"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr "테스트 프로그램을 실행할까요? %1 이는 프로그램 개발에 도움을 주지만, 해당 컴퓨터에서 실행에 실패할 수도 있습니다 %2"
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "파일 전송 중 최대 업로드 비율을 제한합니다."
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr "email은 %1에서 보냅니다. 여러분의 스팸 필터에서 이 주소를 허용해 주세요."
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "제한 사용량"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "%1과 소속 팀(전부)에서 email을 받도록 허용하시겠습니까?"
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "예시: BOINC는 매 30일동안 최대 2000MB를 전송합니다."
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1이 여러분 컴퓨터를 웹 사이트에 공개하도록 하시겠습니까?"
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "디스크와 메모리 사용량"
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "일"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "프로세서 사용량"
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "이 시간 사이에만 전송"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "네트워크 사용량"
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "각 날짜별로 특정 시기에만 파일 전송이 이루어집니다."
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "이 환경 설정은 여러분이 참여하는 모든 BOINC 프로젝트에 적용됩니다."
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "이미지 파일 검증 건너뛰기"
 
-#: ../inc/prefs.inc:395
+#: html/inc/prefs.inc:223
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr "%1환경 설정을 업데이트할 수 없습니다.%2 빨간 색으로 표시된 곳이 범위를 넘어서거나 숫자가 아닙니다."
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "인터넷 제공자가 이미지 파일을 변경할 경우에만 체크하세요. 검증을 건너 뛸 경우에는 BOINC의 보안성이 감소합니다. "
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "잘못된 위치: %1"
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "인터넷 접속 전에 확인"
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "잘못된 서브셋: %1"
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "모뎀, ISDN, VPN 연결시에 유용합니다."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "네"
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "완료되면 접속 끊기"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "없음"
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "디스크"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "제한 없음"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "추가"
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "네트워크"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "제거"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "이 환경 설정은 여러분이 참여하는 모든 BOINC 프로젝트에 적용됩니다."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "컴퓨팅"
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1환경 설정을 업데이트할 수 없습니다.%2 빨간 색으로 표시된 곳이 범위를 넘어서거나 숫자가 아닙니다."
 
-#: ../inc/prefs.inc:823
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr "%1용 개별 환경 설정"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr "환경 설정 수정"
 
-#: ../inc/prefs.inc:839
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "제거"
+
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr "%1용 개별 환경 설정 추가"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "이 설정값들은 이 계정을 사용하는 모든 컴퓨터에 적용됩니다. 예외)"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "여러분이 직접 다룰 수 있는, BOINC 관리자를 사용하는 컴퓨터의 위치"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "안드로이드 기기"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
 msgstr "(보기 전환)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
 msgid "Combined preferences"
 msgstr "통합 환경 설정"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "프로젝트 개별 설정"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
 msgid "Primary (default) preferences"
 msgstr "우선 적용 (기본) 환경 설정"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "%1 환경 설정 수정"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "이 값들은 여러분이 참여하는 모든 BOINC 프로젝트에 적용됩니다."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "여러 프로젝트에 참여하는 컴퓨터의 경우 가장 최근에 수정된 환경 설정을 사용하게 될 것입니다."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "이 환경설정은 안드로이드 장치에 적용되지 않습니다."
-
-#: ../inc/prefs.inc:892
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr "최근 수정된 환경 설정:"
 
-#: ../inc/prefs.inc:944
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr "환경 설정 추가"
 
-#: ../inc/prefs.inc:948
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr "환경 설정 업데이트"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "네"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "없음"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr "기본 컴퓨터 위치"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "새로운 컴퓨터는 설정된 작업 위치와 프로젝트 환경설정을 사용하게 될 것입니다."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "자원 공유"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "이 프로젝트에서 사용할 자원 배분치를 결정하세요. 예: 여러분이 각각 100과 200의 자원을 공유하기로 한 BOINC 프로젝트에 참여하고 계시면 첫 번째는 1/3의 자원을 쓰게 되고, 두 번째는 2/3를 쓰게 됩니다."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "개별적으로 CPU를 할당해서 GPU 태스크를 가속할까요?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "CPU 사용"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "ATI GPU 사용"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "NVIDIA GPU 사용"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Intel GPU 사용"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "테스트 프로그램을 실행합니까?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "이는 프로그램 개발에 도움을 주지만, 해당 컴퓨터에서 실행에 실패할 수도 있습니다"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "email은 %1에서 보냅니다. 여러분의 스팸 필터에서 이 주소를 허용해 주세요."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "%1과 소속 팀(전부)에서 email을 받도록 허용하시겠습니까?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "%1이 여러분 컴퓨터를 웹 사이트에 공개하도록 하시겠습니까?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(보기 전환)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "프로젝트 개별 설정"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "잘못된 위치: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "잘못된 서브셋: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
 msgid "and"
 msgstr "와"
 
-#: ../inc/profile.inc:86
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "제한 없음"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "추가"
+
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
 msgstr "여러분의 프로필은 프로젝트에서 승인하는 순간 다른 사람들에게 공개됩니다. 이 작업은 며칠정도 소요됩니다."
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
 msgstr "여러분의 프로필이 승인되지 않았습니다. 다른 사람들에게 공개되지 않습니다. 다르게 바꿔 주세요."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr "데이터베이스 오류"
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
 msgstr "스팸을 방지하기 위해서 평균 크레딧이 %1 이하인 사용자의 프로필은 로그인한 사용자에게만 표시됩니다. 불편을 드려서 죄송합니다."
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr "사용자가 차단되었습니다"
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr "해당 사용자 ID의 프로필이 없습니다."
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr "프로필 수정하기"
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr "이 프로필에 대한 피드백"
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr "오늘의 사용자로 이 프로필을 추천하기:"
 
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr "이 프로필을 %1추천%2합니다"
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr "공격적인 프로필을 관리자에게 경고하기:"
 
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr "이 프로필을 %1비추합니다%2"
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr "불확실한 플랫폼"
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr "NVIDIA GPU"
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr "ATI GPU"
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
 msgstr "Intel GPU"
 
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "DB에 없습니다"
-
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr "보류 중"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr "전체"
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr "진행 중"
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr "검증 유보 중"
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr "불확실한 검증"
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr "인증됨"
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr "무효"
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr "오류"
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr "미활동"
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr "미전송"
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr "완료, 검증 대기 중"
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr "완료되고 검증됨"
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr "완료됬으나 무효로 판명됨"
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr "완료됬으나 검증불가"
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr "완료됬으나 불확실한 검증"
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr "완료됬으나 마감 이후에 제출됨"
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr "완료됨"
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr "전송할 수 없음"
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr "서버에서 취소됨"
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr "기한 내 시작되지 않음 - 취소됨"
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr "다운로드 중 오류 발생"
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr "연산 중 오류 발생"
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr "업로드 중 오류 발생"
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "사용자가 취소함"
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "중단됨"
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr "업로드 실패: "
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr "시간 초과 - 응답 없음"
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr "불필요"
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr "검증 오류"
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr "취소됨"
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr "완료"
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr "성공"
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr "연산 오류"
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr "중복된 결과"
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr "응답 없음"
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr "신규"
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
 msgstr "내려받는 중"
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr "진행중"
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr "연산 오류"
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr "업로드 중"
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr "완료"
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "사용자가 취소함"
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr "초기 상태"
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr "불필요"
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr "작업 유닛 오류 - 검사 미실시"
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr "검사됬으나 결과 정리는 되지 않음"
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr "태스크 인증 시간이 지나서 보고됨"
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr "결과를 전송할 수 없습니다"
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr "오류가 너무 많습니다 (버그가 있을 수 있습니다)"
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr "결과가 너무 많습니다 (아직 확정되지 않았을 수도 있습니다)"
 
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr "전체 결과가 너무 많습니다"
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr "WU가 취소됨"
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "인증된 결과과 누락됨"
+
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr "예기치 못한 오류: %1"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr "태스크 이름"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr "상세정보"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr "ID 보이기"
 
-#: ../inc/result.inc:354
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr "이름 보이기"
 
-#: ../inc/result.inc:357
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr "태스크"
 
-#: ../inc/result.inc:360
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr "작업 유닛"
 
-#: ../inc/result.inc:369
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr "컴퓨터"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr "전송 시각"
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr "보고 시각<br />혹은 마감 시각"
 
-#: ../inc/result.inc:374
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr "상세 정보"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr "상태"
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr "실행 시간<br />(sec)"
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr "CPU 시간<br />(초)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr "크레딧"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr "응용 프로그램"
 
-#: ../inc/result.inc:629
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr "작업 유닛"
 
-#: ../inc/result.inc:632
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "리포트 마감 시각"
+
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr "보고 시각"
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr "서버 상태"
 
-#: ../inc/result.inc:634
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr "결과"
 
-#: ../inc/result.inc:635
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr "클라이언트 상태"
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr "마감 결과"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "리포트 마감 시각"
-
-#: ../inc/result.inc:639
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr "실행 시간"
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr "CPU 시간"
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr "인증 현황"
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "장치 최고 FLOPS"
+
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr "응용 프로그램 버전"
 
-#: ../inc/result.inc:656
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr "출력 파일"
 
-#: ../inc/result.inc:659
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr "Stderr 출력 값"
 
-#: ../inc/result.inc:706
+#: html/inc/result.inc:795
 msgid "State"
 msgstr "상태"
 
-#: ../inc/result.inc:747
+#: html/inc/result.inc:836
 msgid "Task name:"
 msgstr "태스크 이름:"
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr "검색 조건 (하나 이상 사용하세요)"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr "키워드"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
 msgstr "이름이나 개요에 있는 단어로 팀을 찾으십시오"
 
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "국가"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr "팀 종류"
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr "활동 중인 팀만 보기"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr "검색"
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
 msgstr "요청에 대한 창설자의 응답 기한이 지났습니다."
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr "창설자에게 전송 완료"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr "요청됨"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr "창설자 응답 기한은 %1입니다"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr "없음"
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr "변경 요구"
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr "연기됨"
 
-#: ../inc/team.inc:87
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr "팀 정보"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
 msgstr "개요"
 
-#: ../inc/team.inc:97
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr "웹 사이트"
 
-#: ../inc/team.inc:120
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr "공유 프로젝트 통계"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr "종류"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr "게시판"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr "스레드"
 
-#: ../inc/team.inc:136
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr "이 팀에 가입"
 
-#: ../inc/team.inc:137
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"노트:만약 'OK to email\"이 프로젝트 환경설정에 설정되어 있으면, 가입한 팀의 창설자가 여러분의 email주소를 알 수 "
-"있습니다."
+msgstr "노트:만약 'OK to email\"이 프로젝트 환경설정에 설정되어 있으면, 가입한 팀의 창설자가 여러분의 email주소를 알 수 있습니다."
 
-#: ../inc/team.inc:140
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr "회원 가입을 허가하지 않습니다"
 
-#: ../inc/team.inc:147
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr "창설자 교체 요청이 있습니다"
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr "%1에 응답함"
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr "팀 창설자 변경"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr "맴버들"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr "창설자"
 
-#: ../inc/team.inc:169
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr "관리자"
 
-#: ../inc/team.inc:184
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr "전 날의 새로운 맴버"
 
-#: ../inc/team.inc:185
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr "전체 맴버"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr "보기"
 
-#: ../inc/team.inc:186
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr "활동하는 맴버"
 
-#: ../inc/team.inc:187
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr "크레딧을 가진 맴버"
 
-#: ../inc/team.inc:256
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr "관리"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr "이전 %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr "다음 %1"
 
-#: ../inc/team.inc:289
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr "해당 팀이 없습니다."
 
-#: ../inc/team.inc:302
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr "이 기능은 창설자 권한이 필요합니다."
 
-#: ../inc/team.inc:326
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr "이 기능은 팀 관리자 권한이 필요합니다"
 
-#: ../inc/team.inc:422
+#: html/inc/team.inc:434
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"경고: 이 팀은 BOINC 광역 팀입니다. 만약 이 곳을 변경하게 되면 덮어쓰게 됩니다. 그 대신에 %1BOINC 광역 팀%2을 "
-"수정하세요."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "경고: 이 팀은 BOINC 광역 팀입니다. 만약 이 곳을 변경하게 되면 덮어쓰게 됩니다. 그 대신에 %1BOINC 광역 팀%2을 수정하세요."
 
-#: ../inc/team.inc:428
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
 msgstr "%1개인적 노트%2: 팀을 만들면, 프로젝트 환경 설정(자원 공유, 그래픽 설정)이 모든 사람에게 공개됩니다."
 
-#: ../inc/team.inc:432
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr "팀 이름, 텍스트 버전"
 
-#: ../inc/team.inc:433
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr "HTML 태그를 사용하지 않습니다."
 
-#: ../inc/team.inc:436
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr "팀 이름, HTML 버전"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr "%1제한된 HTML 태그%2를 사용할 수 있습니다."
 
-#: ../inc/team.inc:439
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr "만약 HTML을 모른다면, 이 박스는 빈칸으로 남겨두세요."
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr "팀 웹 페이지 URL(있을 경우)"
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "without \"http://\""
 msgstr "\"http://\" 제외"
 
-#: ../inc/team.inc:443
+#: html/inc/team.inc:455
 msgid "This URL will be linked to from the team's page on this site."
 msgstr "이 URL은 이 사이트의 팀 페이지로 링크됩니다."
 
-#: ../inc/team.inc:446
+#: html/inc/team.inc:458
 msgid "Description of team"
 msgstr "팀 개요"
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:474
 msgid "Accept new members?"
 msgstr "회원 가입을 허가할까요?"
 
-#: ../inc/uotd.inc:28
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "회사"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "초등학교"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "중고등학교"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "전문대학"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "대학교 혹은 관련 부서"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "정부 "
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "비영리 단체"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "국적"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "위치/지역"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "컴퓨터 "
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "사회적/정치적/종교적"
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr "사용자 프로필"
 
-#: ../inc/user.inc:119
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr "여러분이 참여하는 프로젝트들"
 
-#: ../inc/user.inc:121
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr "%1이 참여하는 프로젝트들"
 
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "프로젝트"
-
-#: ../inc/user.inc:125
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr "사용자 페이지"
 
-#: ../inc/user.inc:125
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr "참여 시작 시기"
 
-#: ../inc/user.inc:148
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr "컴퓨팅과 크레딧"
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr "이 계정의 컴퓨터 목록"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr "보기"
 
-#: ../inc/user.inc:161
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr "공유-프로젝트 ID"
 
-#: ../inc/user.inc:162
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr "공유-프로젝트 통계"
 
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "계정"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr "팀"
 
-#: ../inc/user.inc:167
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr "공유-프로젝트"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "증명서"
-
-#: ../inc/user.inc:169
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
 msgstr "휴대 전화 통계"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "알려지지 않은 안내 유형: %1"
-
-#: ../inc/user.inc:198
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr "계정 정보"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr "Email 주소"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr "URL"
 
-#: ../inc/user.inc:206
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr "우편 번호"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr "%1 참여 시작일"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr "변경"
 
-#: ../inc/user.inc:209
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr "email 주소"
 
-#: ../inc/user.inc:210
+#: html/inc/user.inc:229
 msgid "password"
 msgstr "비밀번호"
 
-#: ../inc/user.inc:211
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr "다른 계정 정보"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr "사용자 ID"
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr "커뮤니티 기능 사용"
 
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr "계정 키"
 
-#: ../inc/user.inc:221
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr "환경 설정"
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
 msgstr "BOINC가 언제, 어떻게 여러분 컴퓨터를 사용할지 결정"
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr "컴퓨팅 환경 설정"
 
-#: ../inc/user.inc:228
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr "게시판과 쪽지"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "커뮤니티 환경 설정"
 
-#: ../inc/user.inc:232
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr "해당 프로젝트 환경설정"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr "%1 환경 설정"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "커뮤니티"
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "%1의 프로필 보기"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "삭제"
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "프로필"
 
-#: ../inc/user.inc:245
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr "생성"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "프로필"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr "%1 포스트"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "공지"
 
-#: ../inc/user.inc:269
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr "팀 탈퇴"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr "관리자"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr "(창설자 변경 요청 대기중)"
 
-#: ../inc/user.inc:279
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr "팀 구성원"
 
-#: ../inc/user.inc:281
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr "팀 찾기"
 
-#: ../inc/user.inc:292
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr "창설자 (맴버 제외)"
 
-#: ../inc/user.inc:298
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr "친구 찾기"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
 msgstr "친구들"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "컴퓨터들"
-
-#: ../inc/user.inc:338
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr "기부자"
 
-#: ../inc/user.inc:378
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr "접촉"
 
-#: ../inc/user.inc:381
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr "이 사람은 친구입니다"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr "친구 관계 취소"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr "요청이 보류되었습니다"
 
-#: ../inc/user.inc:387
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr "친구로 추가"
 
-#: ../inc/user.inc:446
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr "사용자 이름의 처음 또는 끝부분에 공백이 있습니다"
 
-#: ../inc/user.inc:450
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr "사용자 이름에는 공백을 쓸 수 없습니다"
 
-#: ../inc/user.inc:454
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr "사용자 이름은 HTML 태그를 포함할 수 없습니다"
 
-#: ../inc/util.inc:131
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr "로그 아웃"
 
-#: ../inc/util.inc:133
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr "로그인"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "로그인"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr "계정을 만드세요"
 
-#: ../inc/util.inc:206
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr "서버 상태 페이지"
 
-#: ../inc/util.inc:248
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
 msgstr "사용자 요청 처리 중에 데이터베이스 오류가 발생했습니다. 나중에 다시 시도하세요."
 
-#: ../inc/util.inc:257
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr "핸들 요청이 불가능합니다"
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr "시간"
 
-#: ../inc/util.inc:280
+#: html/inc/util.inc:345
 msgid "min"
 msgstr "분"
 
-#: ../inc/util.inc:283
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr "초"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
 msgstr "연결 시간 초과. '뒤로 가기'를 누르신 후 페이지를 새로 고치시고 다시 시도하세요."
 
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "%1의 프로필 보기"
-
-#: ../inc/util.inc:569
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
 msgstr "형식에 맞춰서 BBCode 태그를 쓰세요"
 
-#: ../inc/util.inc:796
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr "정기 점검을 위해 서버가 꺼짐"
 
-#: ../inc/util.inc:799
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
 msgstr "%1는 현재 정기 점검때문에 일시적으로 종료되었습니다. 나중에 다시 시도하세요."
 
-#: ../inc/util.inc:817
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
 msgstr "선택한 데이터베이스에 접속할 수 없습니다. 나중에 다시 시도해주세요"
 
-#: ../inc/util.inc:821
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
 msgstr "선택한 데이터베이스를 사용할 수 없습니다. 나중에 다시 시도해주세요"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "사용 가능한 글자수"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr "이 컴퓨터에서 로그인 유지"
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "계정 설정 완료"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "이 웹 사이트에서 여러분을 식별합니다. 여러분의 본명이나 별명을 써주세요."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "표시되기를 원하는 국가를 선택해주세요."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "우편 번호 혹은 ZIP 코드"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "부가 사항"
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "계정명을 입력해야 합니다."
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
 msgstr "이름에는 HTML 태그를 사용할 수 없습니다"
 
-#: ../user/add_venue.php:81
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "계정 설정 완료"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "%1 환경 설정 수정"
+
+#: html/user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "%2용 %1 환경 설정 추가"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "응용 프로그램"
-
-#: ../user/apps.php:33
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"현재 %1(은)는 다음 응용 프로그램을 사용합니다. 여러분이 %1에 참여할 때 하나 이상의 응용 프로그램이 여러분 컴퓨터로 할당됩니다. "
-"최신 버전의 응용 프로그램이 여러분 컴퓨터로 다운로드될 것입니다. 이 것은 자동으로 처리됩니다. 여러분은 아무 것도 하실 필요가 "
-"없습니다."
+msgstr "현재 %1(은)는 다음 응용 프로그램을 사용합니다. 여러분이 %1에 참여할 때 하나 이상의 응용 프로그램이 여러분 컴퓨터로 할당됩니다. 최신 버전의 응용 프로그램이 여러분 컴퓨터로 다운로드될 것입니다. 이 것은 자동으로 처리됩니다. 여러분은 아무 것도 하실 필요가 없습니다."
 
-#: ../user/apps.php:50
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr "플랫폼"
 
-#: ../user/apps.php:51
+#: html/user/apps.php:56
 msgid "Version"
 msgstr "버전"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "설치 시각"
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "평균 연산력"
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr "BB코드 태그"
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"BB코드 태그는 프로필과 게시판 포스트에서 사용할 수 있는 텍스트 규격입니다.\n"
-"이 것은 HTML과 유사하지만 보다 간단합니다. 태그는 [로 시작해서(HTML에서\n"
-"%1로 사용하던 곳) ]로 끝나야 합니다(HTML에서 %2로 사용하던 곳)."
+msgstr "BB코드 태그는 프로필과 게시판 포스트에서 사용할 수 있는 텍스트 규격입니다.\n이 것은 HTML과 유사하지만 보다 간단합니다. 태그는 [로 시작해서(HTML에서\n%1로 사용하던 곳) ]로 끝나야 합니다(HTML에서 %2로 사용하던 곳)."
 
-#: ../user/bbcode.php:31
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr "예시"
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr "긁게"
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr "기울임"
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr "밑줄"
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "취소선"
+
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr "어깨 숫자"
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr "크게"
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr "강조"
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr "웹사이트 링크"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr "인용구"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "텍스트 인용구 사용"
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr "이미지 표시 사용"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "부분적인 코드는 여기 참고"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr "특정 코드 표시 사용"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "사전 정의된 텍스트"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr "사전 정의된(주로 모노스페이스) 텍스트 표시 사용"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr "항목 1"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr "항목2"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr "항목 2"
 
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "BOINC 웹사이트 상의 Trac 티켓 링크 사용"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "BOINC 웹사이트 상의 Trac 위키 링크 사용"
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "BOINC Github 저장소에 문제를 보고할 수 있습니다"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "BOINC 웹사이트 상의 SVN changeset 링크 사용"
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "BOINC Github 저장소 상의 위키 페이지 링크"
 
-#: ../user/bbcode.php:53
+#: html/user/bbcode.php:55
 msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"만약 종료 태그나 인수가 제대로 지정되지 않았다면\n"
-"규정된 텍스트 대신 원 태그가 표시됩니다."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "참여자"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "작업 수행"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "계정"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "통계 보기, 환경설정 변경"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "팀"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "팀 생성 혹은 가입"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "오늘의 사용자"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "서버 상태"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "프로필"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "사용자 검색"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "통계"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "최고 기여자들"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "최고 컴퓨터"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "최고 팀"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "최고 GPU 칩셋"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "언어 설정"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "규칙과 정책을 읽어주십시오"
+"If you don't close a tag or don't specify a parameter correctly,\n"
+"the raw tag itself will display instead of the formatted text."
+msgstr "만약 종료 태그나 인수가 제대로 지정되지 않았다면\n규정된 텍스트 대신 원 태그가 표시됩니다."
 
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr "계정을 만들 수 없습니다"
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr "다시 시도하려면 브라우저의 <b>뒤로</b> 버튼을 누르세요."
 
-#: ../user/create_account_action.php:47
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "ReCaptcha 응답이 틀렸습니다. 다시 시도해 주세요."
 
-#: ../user/create_account_action.php:70
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr "계정을 생성하실려면 초대 코드를 입력해야 합니다."
 
-#: ../user/create_account_action.php:73
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr "초대 코드가 올바르지 않습니다."
 
-#: ../user/create_account_action.php:84
+#: html/user/create_account_action.php:81
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
 msgstr "잘못된 이메일 주소: name at domain 형태의 올바른 주소를 입력해야 합니다"
 
-#: ../user/create_account_action.php:88
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr "해당 이메일 주소를 사용한 계정이 이미 있습니다."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "새 비밀번호가 서로 다릅니다"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "비밀번호는 ASCII 문자만 사용할 수 있습니다."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
 msgstr "새 비밀번호가 너무 짧습니다. 최소 비밀번호 길이는 %1 글자입니다."
 
-#: ../user/create_account_action.php:127
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr "계정을 만들지 못했습니다"
 
-#: ../user/create_account_form.php:44
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"비고: BOINC 관리자를 사용할 경우, 이 양식을 사용하지 마십시오. BOINC를 실행하고, 프로젝트 추가를 선택한 후 이메일 주소와 "
-"비밀번호를 입력해주세요."
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "노트: %1를 이 컴퓨터에서 실행하려면, 이 양식 대신 %2여기를 방문%3해 주세요."
 
-#: ../user/create_account_form.php:61
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
 msgstr "이 계정은 %1팀에 속하게 되며 프로젝트 환경 설정은 그 팀 창설자를 따르게 됩니다."
 
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "초대 코드"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "계정 생성을 위해서 올바른 초대 코드가 필요합니다."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Email 주소"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "반드시 올바른 형식(name at domain)으로 입력해 주세요."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "비밀번호"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "최소 %1 글자이상으로 입력해 주세요"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "비밀번호 확인"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "이미지에서 보이는 단어를 입력해주세요."
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "계정 만들기"
-
-#: ../user/create_profile.php:50
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr "사진"
 
-#: ../user/create_profile.php:64
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1 프로필 사진은 왼쪽에 표시됩니다."
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:69
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
 msgstr "교체하려면 \"찾아보기\" 버튼을 누르고 JPEG나 PNG 파일을 선택하세요 (%1이하)"
 
-#: ../user/create_profile.php:69
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr "프로필에서 제거하려면 이 박스에 체크하세요:"
 
-#: ../user/create_profile.php:77
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"만약 여러분 프로필에 사진을 포함시킬려면 \"찾아보기\" 버튼을 누르고 JPEG나 PNG 파일을 선택하세요. %1이하의 이미지를 "
-"선택해주세요."
+msgstr "만약 여러분 프로필에 사진을 포함시킬려면 \"찾아보기\" 버튼을 누르고 JPEG나 PNG 파일을 선택하세요. %1이하의 이미지를 선택해주세요."
 
-#: ../user/create_profile.php:89
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr "언어"
 
-#: ../user/create_profile.php:92
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr "여러분 프로필을 작성한 언어를 선택해 주세요:"
 
-#: ../user/create_profile.php:104
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr "프로필 제출"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "이미지에서 보이는 단어를 입력해주세요."
-
-#: ../user/create_profile.php:115
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr "프로필 작성/수정하기"
 
-#: ../user/create_profile.php:137
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr "업로드한 이미지 파일 포맷은 지원하지 않습니다."
 
-#: ../user/create_profile.php:166
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
 msgstr "%1프로필%2은 여러분의 의견과 배경등을 %3 커뮤니티에서 공유하도록 합니다."
 
-#: ../user/create_profile.php:213
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "ReCaptcha 응답이 틀렸습니다. 다시 시도해 주세요."
 
-#: ../user/create_profile.php:222
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
 msgstr "첫번째 응답은 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
 
-#: ../user/create_profile.php:230
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
 msgstr "두번째 응답은 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
 
-#: ../user/create_profile.php:246
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr "프로필 사항이 비었습니다."
 
-#: ../user/create_profile.php:285
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr "프로필 업데이트에 실패했습니다: 데이터베이스 오류"
 
-#: ../user/create_profile.php:297
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr "프로필 작성에 실패했습니다: 데이터베이스 오류"
 
-#: ../user/create_profile.php:302
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr "프로필이 저장되었습니다"
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "축하합니다! 여러분의 프로필이 성공적으로 데이터베이스에 입력되었습니다."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1프로필 보기%2"
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "사용자 프로필 보기"
 
-#: ../user/create_profile.php:315
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr "프로필 만들기"
 
-#: ../user/create_profile.php:343
+#: html/user/create_profile.php:346
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
 msgstr "스팸을 방지하기 위해서 프로필을 작성하거나 수정하려면 크레딧을 평균 %1 이상 가지고 있어야 합니다. 불편을 드려서 죄송합니다."
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr "계정을 삭제하지 못했습니다"
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr "계정이 삭제됨"
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr "계정이 삭제되었습니다."
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr "계정 삭제 확인"
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"계정을 삭제하면 여러분의 프로필과 게시판\n"
-" 포스트를 포함한 모든 개인 정보가\n"
-"저희 서버에서 제거될 것입니다.\n"
-"이 계정에 연결된 모든 컴퓨터는 어떤 작업도\n"
-"요청할 수 없습니다."
+msgstr "계정을 삭제하면 여러분의 프로필과 게시판\n 포스트를 포함한 모든 개인 정보가\n저희 서버에서 제거될 것입니다.\n이 계정에 연결된 모든 컴퓨터는 어떤 작업도\n요청할 수 없습니다."
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"이 것은 되돌릴 수 없습니다.\n"
-"한 번 계정이 삭제되면 다시 복구할 수 없습니다."
+msgstr "이 것은 되돌릴 수 없습니다.\n한 번 계정이 삭제되면 다시 복구할 수 없습니다."
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "정말로 계정을 삭제하시겠습니까?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr "네"
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr "이 계정 삭제"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr "아니오"
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr "이 계정을 삭제하지 않습니다"
 
-#: ../user/delete_profile.php:30
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "프로필을 삭제하지 못했습니다 - 추후 다시 시도해 주세요"
 
-#: ../user/delete_profile.php:33
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "삭제 확인"
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "프로필이 삭제되었습니다."
 
-#: ../user/delete_profile.php:40
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "프로필 삭제 확인"
 
-#: ../user/delete_profile.php:43
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "정말로 실행할까요?"
 
-#: ../user/delete_profile.php:44
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"삭제된 프로필은 영원히 사라지며 복구가 불가능합니다 --\n"
-"추후에 다른 프로필을 원한다면\n"
-"여러분은 다시 작성해야 할 것입니다."
+msgstr "삭제된 프로필은 영원히 사라지며 복구가 불가능합니다 --\n추후에 다른 프로필을 원한다면\n여러분은 다시 작성해야 할 것입니다."
 
-#: ../user/delete_profile.php:48
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"확실하면 '삭제'를 누르세요.\n"
-"데이터베이스에서 프로필이 삭제됩니다."
+msgstr "확실하면 '삭제'를 누르세요.\n데이터베이스에서 프로필이 삭제됩니다."
 
-#: ../user/delete_profile.php:52
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "프로필 삭제하기"
 
-#: ../user/delete_profile.php:53
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "프로필을 삭제하지 않습니다"
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr "PayPal - 처리가 완료되었습니다"
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr "기부해주셔서 감사합니다!"
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr "기부가 완료되었습니다."
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
 msgstr "여러분이 하신 기부는 PayPal을 통해 승인되어서 내역에 추가될 것입니다."
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr "기부를 취소하셨습니다."
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr "이 프로젝트는 기부를 받고 있지 않습니다."
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr "%1 기부하기"
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"이 프로젝트에서 수용하는 기부 수단\n"
-"%1"
+msgstr "이 프로젝트에서 수용하는 기부 수단\n%1"
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -2865,2107 +3082,1995 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"기부하실려면 아래 항목 중에서 기부하시고자 하는 양만큼 채워주십시오.\n"
-"        PayPal은 다양한 화폐를 수용합니다.\n"
-"        (캐나다 달러, 유로, 영국 파운드, 미국 달러,\n"
-"        엔, 오스트레일리아 달러, 뉴질랜드 달러,\n"
-"        스위스 프랑, 홍콩 달러, 싱가포르 달러, 스웨덴 크로나,\n"
-"        덴마크 크로나, 폴란드 줄러티, 노르웨이 크로네,\n"
-"        헝가리 포린트, 체코 코루나)\n"
-"        여러분은 다른 화폐로 얼마에 해당되는지\n"
-"        알기 위해서 동봉된 화폐 변환기를 사용할 수 있습니다.\n"
-"        (참고: 변환율은 어디까지나 추정치이며 실제\n"
-"        금액은 다를 수도 있습니다.)"
-
-#: ../user/donations.php:316
+msgstr "기부하실려면 아래 항목 중에서 기부하시고자 하는 양만큼 채워주십시오.\n        PayPal은 다양한 화폐를 수용합니다.\n        (캐나다 달러, 유로, 영국 파운드, 미국 달러,\n        엔, 오스트레일리아 달러, 뉴질랜드 달러,\n        스위스 프랑, 홍콩 달러, 싱가포르 달러, 스웨덴 크로나,\n        덴마크 크로나, 폴란드 줄러티, 노르웨이 크로네,\n        헝가리 포린트, 체코 코루나)\n        여러분은 다른 화폐로 얼마에 해당되는지\n        알기 위해서 동봉된 화폐 변환기를 사용할 수 있습니다.\n        (참고: 변환율은 어디까지나 추정치이며 실제\n        금액은 다를 수도 있습니다.)"
+
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr "기부하시기를 원하는 금액"
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr "추정 변환 금액"
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr "익명 기부"
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"만약 여러분의 이름과 계정 번호가 기부자 명단에 표시되길 원치 않으시면\n"
-"선택하세요.<br>체크하지 않으면 사용자 ID %1로 기록됩니다"
+msgstr "만약 여러분의 이름과 계정 번호가 기부자 명단에 표시되길 원치 않으시면\n선택하세요.<br>체크하지 않으면 사용자 ID %1로 기록됩니다"
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
 msgstr "여러분의 사용자 ID로 기부하시려면 로그인해 주세요."
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr "처리됨"
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr "해당 기부가 승인되었습니다:"
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr "BOINC 애드온 소프트웨어 다운로드"
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr "여러 항목의 응용 프로그램을 다운로드할 수 있습니다."
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
 msgstr "이들 응용 프로그램은 %1에서 승인받지 않았으며 여러분이 위험부담을 안고 사용하셔야 합니다."
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"저희는 이들 응용 프로그램을 설치하기 위한 설명서를 제공하지 않습니다.\n"
-"그러나 작성자는 응용 프로그램 설치나 삭제에 관해서 약간의 도움말을 제공할 수도 있습니다.\n"
-"그 것으로 충분하지 않다면 작성자에게 연락하세요."
+msgstr "저희는 이들 응용 프로그램을 설치하기 위한 설명서를 제공하지 않습니다.\n그러나 작성자는 응용 프로그램 설치나 삭제에 관해서 약간의 도움말을 제공할 수도 있습니다.\n그 것으로 충분하지 않다면 작성자에게 연락하세요."
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
 msgstr "BOINC를 설치하고 실행하기 위한 설명서는 %1여기%2에 있습니다."
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr "이 목록은 %1BOINC 웹사이트%2를 중심으로 관리됩니다."
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr "이 계정의 이메일 주소 변경"
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr "새 이메일 주소 '%1'이 잘못되었습니다."
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
 msgstr "새 이메일 주소가 기존 주소와 같습니다. 아무 것도 바뀌지 않습니다."
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr "해당 이메일 주소를 가진 계정이 이미 존재합니다"
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr "잘못된 비밀번호입니다."
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr "이제 해당 계정의 이메일 주소는 %1입니다."
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr "이 %1이메일 주소를 인증%2해 주세요."
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
 msgstr "데이터베이스 문제로 이메일 주소를 업데이트할 수 없습니다.  나중에 다시 시도해주세요."
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr "email 주소 변경"
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr "이 계정의 email 주소를 바꿉니다"
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr "새 email 주소"
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr "반드시 올바른 형식(name at domain)으로 입력해 주세요."
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr "비밀번호가 없습니까?"
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr "재설정 확인"
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
 msgstr "이 행위는 여러분의 커뮤니티 환경설정에서 바꾼 모든 변경 사항을 지울 것입니다. 취소하려면 브라우저의 '뒤로' 버튼을 누르세요."
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "환경 설정 재설정"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
 msgstr "오류: 올바른 파일 형식이 아닙니다. 오직 PNG와 JPEG만 지원됩니다."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr "서명이 너무 깁니다. 250자 이하로 맞춰 주십시오."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "해당 사용자가 없습니다: %1"
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "해당 사용자가 없음:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
 msgstr "새로운 쪽지, 친구 요청, 구독 중인 스레드의 포스트, 기타 다른 사건을 저희가 얼마나 자주 알려주길 원하십니까?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "내 계정 페이지 (이메일 없음)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "이메일로 즉시"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "하루에 한 통"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "게시판 인증"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "아바타"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "게시판에서 여러분을 대표하는 이미지입니다."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "형식: JPG 혹은 PNG. 크기: 최대 4 KB, 100x100 픽셀"
 
-#: ../user/edit_forum_preferences_form.php:80
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "아바타를 사용하지 않습니다"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "%1에서 제공한 이미지를 인정된 아바타로서 사용"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "업로드한 이미지 사용:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "아바타 미리보기"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "여러분의 아바타가 어떻게 보이나 확인합니다"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "게시판 포스트용 서명"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"%1다양한 무료 서비스%2를 확인하세요\n"
-"<br> 동적인 '서명 이미지'를 제공하며, \n"
-"<br> 최근 크레딧 정보, 프로젝트 뉴스 등을 보여줍니다."
+msgstr "%1다양한 무료 서비스%2를 확인하세요\n<br> 동적인 '서명 이미지'를 제공하며, \n<br> 최근 크레딧 정보, 프로젝트 뉴스 등을 보여줍니다."
 
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "사용 가능한 글자수"
-
-#: ../user/edit_forum_preferences_form.php:105
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "기본 서명으로 연결"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "서명 미리보기"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "여러분의 서명이 포럼에서 어떻게 보이나 확인합니다"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "메세지 표시하기"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "표시할 목록"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "아바타 이미지 숨기기"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "서명 숨기기"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "링크된 이미지 보여주기"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "새 창/탭으로 링크 열기"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "특별 사용자 강조"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "이 메세지를 페이지 단위로 표시합니다"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "정렬 방식"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "스레드:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "포스트:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "자동으로 스레드에서 가장 최신 포스트로 건너가기"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "공고 포스트를 가장 위로 옮기지 않기"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "메세지 필터링"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "걸러진 사용자"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
 msgstr "해당 사용자가 쓴 게시판 포스트와 쪽지를 무시합니다."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "사용자 ID (예시: 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr "필터에 사용자 추가"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "환경 설정을 업데이트하려면 여기를 누르세요"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "재설정"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: html/user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr "혹은 여기를 눌러서 기본값으로 환경설정을 재설정하세요"
 
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "잘못된 계정 키"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "찾으신 이메일 주소와 대응되는 계정이 없습니다"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "틀린 비밀번호"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "비밀번호 변경"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "비밀번호가 변경되었습니다."
-
-#: ../user/edit_passwd_action.php:69
+#: html/user/edit_passwd_action.php:50
 msgid ""
 "We can't update your password due to a database problem. Please try again "
 "later."
 msgstr "데이터베이스 문제로 비밀번호를 업데이트할 수 없습니다.  나중에 다시 시도해주세요."
 
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "여러분은 이메일 주소와 구 비밀번호를"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "사용해서 인증할 수도 있습니다"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "계정 키"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "현재 비밀번호"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>또는</b>: 계정 키"
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "비밀번호 변경"
 
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "email로 계정 키 받기"
+#: html/user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "비밀번호가 변경되었습니다."
 
-#: ../user/edit_passwd_form.php:53
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "새 비밀번호"
 
-#: ../user/edit_passwd_form.php:54
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "새 비밀번호 재입력"
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr "이름에는 HTML 태그를 사용할 수 없습니다."
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr "계정을 생성하실려면 계정명을 입력해야 합니다."
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr "사용자 정보를 업데이트 할 수 없습니다"
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr "계정 정보 수정"
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr "이름 %1 실명 혹은 별명 %2"
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr "여러분의 홈 페이지 URL %1 선택 사항 %2"
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr "우편번호 (ZIP) %1 선택 사항 %2"
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr "정보 업데이트"
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr "서버 상태"
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"태스크 <b>서버 현황</b>은 태스크가 클라이언트로 보내졌는지, 만약 그렇다면 해당 클라이언트가 작업을 마쳤는지 카르켜 줍니다. 가능한 "
-"값:"
+msgstr "태스크 <b>서버 현황</b>은 태스크가 클라이언트로 보내졌는지, 만약 그렇다면 해당 클라이언트가 작업을 마쳤는지 카르켜 줍니다. 가능한 값:"
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
 msgstr "태스크 전송 준비가 되지 않았습니다(예를 들어 해당 입력 파일을 사용할 수 없습니다)"
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr "태스크 전송 준비가 완료됐으나, 아직 전송되지 않았습니다."
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr "진행 중"
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr "태스크가 전송되었습니다. 완료를 기다리는 중."
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
 msgstr "태스크가 클라이언트로 전송되었으며 태스크의 마감이 지났거나 클라이언트에서 연산 완료를 보고했습니다."
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr "결과"
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
 msgstr "태스크 <b>결과</b>는 태스크 서버 현황이 <b>완료</b>됨을 정의합니다. 가능한 값:"
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
 msgstr "태스크가 클라이언트로 전송되었으나, 클라이언트에서 아직 연산이 완료되지 않았으며 결과를 보고하지 않았습니다."
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
 msgstr "클라이언트에서 연산을 완료했으며 성공적으로 보고했습니다."
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
 msgstr "서버에서 클라이언트로 태스크를 전송할 수 없습니다 (아마도 해당 자원의 요구 사항이 너무 큰 듯 합니다)"
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr "클라이언트 오류"
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
 msgstr "태스크가 클라이언트로 전송되었으나 오류가 발생했습니다."
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
 msgstr "태스크가 클라이언트로 전송되었으나 마감 시각까지 어떤 응답도 받지 못했습니다."
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
 msgstr "해당 작업 유닛의 다른 태스크가 충분히 완료되었기에 클라이언트에게 태스크를 전송하지 않았습니다."
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
 msgstr "태스크가 보고되었으나 인정되지 않았습니다. 일반적으로 출력 파일이 서버에서 유실되었기 때문입니다."
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr "클라이언트 상태"
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
 msgstr "결과물의 <b>클라이언트 상황</b>은 오류가 발생한 연산 과정을 가르켜 줍니다."
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr "클라이언트가 아직 태스크를 완료하지 못했습니다."
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr "클라이언트가 성공적으로 태스크를 완료했습니다."
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
 msgstr "클라이언트가 응용 프로그램 또는 입력 파일을 다운로드 받지 못했습니다."
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr "연상 도중에 오류가 발생했습니다."
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr "클라이언트가 출력 파일을 업로드하지 못했습니다."
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr "보고 시각 및 마감 시각"
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
 msgstr "태스크 <b>보고된 시간 또는 마감 시각</b> 필드는 태스크가 이미 보고되었는지 여부에 따라 다릅니다:"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr "이미 보고됨"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr "태스크가 보고된 날짜/시각"
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr "아직 보고되지 않음, 마감이 남았음"
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr "마감 시각, 초록색으로 표시."
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr "보고되지 않음, 마감을 넘겼음"
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr "마감 시각, 적색으로 표시."
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr "알 수 없는 항목"
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "이메일 미리보기"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "이메일은 다음처럼 표시될 것입니다:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "이메일 보내기"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "메세지 폼으로 돌아가려면 브라우저의 뒤로 버튼을 사용하세요"
-
-#: ../user/ffmail_action.php:63
+#: html/user/ffmail_action.php:28
 msgid "Sending emails"
 msgstr "이메일 전송 중"
 
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "%1에게 성공적으로 메일을 보냈습니다"
-
-#: ../user/ffmail_action.php:86
+#: html/user/ffmail_action.php:43
 msgid "failed to send email to %1: %2"
 msgstr "%1에게 메일을 보내지 못했습니다: %2"
 
-#: ../user/ffmail_action.php:92
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "%1에게 메일을 보내지 못했습니다"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "%1에게 성공적으로 메일을 보냈습니다"
+
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr "%1을 친구들에게 전해주어서 감사합니다"
 
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr "친구의 이름 혹은 이메일 주소를 입력하지 않았습니다. 빠진 부분을 %1입력 폼으로 돌아가서 입력%2해주시기 바랍니다."
-
-#: ../user/ffmail_form.php:30
+#: html/user/ffmail_action.php:57
 msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "이 프로젝트는 이메일 메세지를 생성할 수 없습니다 - 관리자에게 문의해 주세요"
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "이메일 주소를 입력하지 않았습니다. 빠진 부분을 %1입력 폼으로 돌아가서 입력%2하세요."
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr "%1을 친구에게 말해주세요"
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "%1을 친구, 가족, 직장 동료들에게 알려주어서 도와주세요"
-
-#: ../user/ffmail_form.php:39
+#: html/user/ffmail_form.php:49
 msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"%1에 흥미를 가질 것 같은 사람들의 이름과 이메일 주소를 이 양식에 채워주세요. 여러분의 이름이 들어간 이메일(원한다면 메세지를 추가할 "
-"수도 있습니다.)을 저희가 그들에게 보낼 것입니다."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "여러분의 이름:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "여러분의 이메일 주소:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "친구 이름:"
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "%1에 관심있다고 생각되는 사람에게 이메일을 보내려면 이 양식을 사용하세요."
 
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "친구의 이메일 주소:"
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "대상:"
 
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "추가할 메세지(선택 사항)"
-
-#: ../user/ffmail_form.php:59
+#: html/user/ffmail_form.php:59
 msgid "Send"
 msgstr "보내기"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
 msgid "You are not authorized to banish users."
 msgstr "당신은 차단된 사용자이므로 접근할 수 없습니다."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "행동을 지정해야 합니다..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "음란한 내용"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "분란/시비성 메일"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "사용자 요청"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "차단 투표"
 
-#: ../user/forum_banishment_vote.php:50
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "해당 ID의 사용자를 찾지 못했습니다."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr "사용자가 이미 차단되었습니다"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"정말로 %1을 차단하시겠습니까?<br />이로써 지정된 기간 동안 %1은 포스팅을 할 수 없게 됩니다.<br />이 기능은 오직 %1이 "
-"유해한 행동을 일관되게 저지를 경우에만 사용하십시오."
+msgstr "정말로 %1을 차단하시겠습니까?<br />이로써 지정된 기간 동안 %1은 포스팅을 할 수 없게 됩니다.<br />이 기능은 오직 %1이 유해한 행동을 일관되게 저지를 경우에만 사용하십시오."
 
-#: ../user/forum_banishment_vote.php:61
+#: html/user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
 msgstr "이유 카테고리를 선택하세요. 추가적으로 왜 이 사용자가 차단되어야 하는지 보다 긴 설명을 쓸 수 있습니다."
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "카테고리"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "음란한 내용"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "분란/시비성 메일"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "사용자 요청"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "기타"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "이유"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "입력될 경우 메일로 알립니다"
 
-#: ../user/forum_banishment_vote.php:74
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr "투표로 처리됨"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "행동을 지정해야 합니다..."
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
 msgstr "더 이상 이 포스트를 편집할 수 없습니다.<br />포스트는 생성되고나서 %1 분 후에 편집할 수 있습니다."
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "이 포스트를 수정할 권한이 없습니다."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "포럼"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "포스트 수정"
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr "메세지 수정하기"
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr "제목"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr "이 포스트에 서명을 추가하기"
 
-#: ../user/forum_forum.php:41
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "여러분에게 보이지 않음"
 
-#: ../user/forum_forum.php:80
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "%1용 팀 게시판 생성"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr "새 스레드"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr "이 스레드에 새로운 스레드를 추가하기"
 
-#: ../user/forum_forum.php:116
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "이 게시판은 %1RSS 피드%2로도 제공됩니다"
 
-#: ../user/forum_forum.php:174
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr "이 스레드는 숨겨졌습니다"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr "이 스레드는 공고 사항이며 아직 읽지 않았으며 잠겨 있습니다"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr "공고/잠김/읽지 않음"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "이 스레드는 공고 사항이며 아직 읽지 않았습니다"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr "공고/읽지 않음"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "아직 이 스레드를 읽지 않았으며 잠겨 있습니다"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr "읽지 않음/잠김"
 
-#: ../user/forum_forum.php:186
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr "아직 이 스레드를 읽지 않았습니다"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr "이 스레드는 공고 사항이며 잠겨 있습니다"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr "공고/잠김"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr "이 스레드는 공고입니다"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr "공고"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr "이 스레드는 잠겨 있습니다"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr "잠김"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr "이 스레드를 읽었습니다"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr "읽음"
 
-#: ../user/forum_help_desk.php:27
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "질문과 답변"
 
-#: ../user/forum_help_desk.php:30
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
 msgstr "Skype를 통해서 여러 언어로 기여자들과 실시간으로 이야기하세요. %1BOINC 온라인 도움말%2로 가세요."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr "주제"
 
-#: ../user/forum_help_desk.php:45
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr "질문"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "%1 멤버들과 토론"
 
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 게시판"
-
-#: ../user/forum_index.php:78
+#: html/user/forum_index.php:80
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
 msgstr "질문이 있거나 문제가 생기면 게시판에서 %1질문 & 답변%2 섹션을 이용해 주세요."
 
-#: ../user/forum_index.php:123
+#: html/user/forum_index.php:125
 msgid "Subscribed threads"
 msgstr "스레드 구독하기"
 
-#: ../user/forum_moderate_post.php:43
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "이 포스트를 관리할 권한이 없습니다."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "다른 종류의 카테고리로 옮길 수 없습니다"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "다른 카테고리로 옮길 수 없습니다"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "차단된 사용자이므로 접근할 수 없습니다"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "차단"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "사용자 %1가 차단되었습니다."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "액션 실패: 가용 데이터베이스 문제"
+
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "포스트 관리하기"
 
-#: ../user/forum_moderate_post.php:52
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "포스트 숨기기"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "상업적 스팸"
 
-#: ../user/forum_moderate_post.php:58
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr "2중 포스트"
 
-#: ../user/forum_moderate_post.php:63
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr "포스트 이동"
 
-#: ../user/forum_moderate_post.php:65
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr "목표 스레드 ID:"
 
-#: ../user/forum_moderate_post.php:78
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr "사용자 차단"
 
-#: ../user/forum_moderate_post.php:80
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr "차단 기간"
 
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 시간"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 시간"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 시간"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr "하루"
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr "1 주"
 
-#: ../user/forum_moderate_post.php:84
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr "2 주"
 
-#: ../user/forum_moderate_post.php:85
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr "1 달"
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr "영구"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "추가적 해명 %1 이 사항은 포함되어서 사용자에게 전해집니다.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr "확인"
 
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "이 포스트를 관리할 권한이 없습니다."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "다른 종류의 카테고리로 옮길 수 없습니다"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "다른 카테고리로 옮길 수 없습니다"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "차단된 사용자이므로 접근할 수 없습니다"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "차단"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "사용자 %1가 차단되었습니다."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "액션 실패: 가용 데이터베이스 문제"
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "추가적 해명 %1 이 사항은 포함되어서 사용자에게 전해집니다.%2"
 
-#: ../user/forum_moderate_thread.php:33
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "인정되지 않음"
 
-#: ../user/forum_moderate_thread.php:36
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "스레드 '%1' 관리하기"
 
-#: ../user/forum_moderate_thread.php:48
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
 msgstr "이유 카테고리를 선택하세요. 아니면 왜 이 스레드를 숨기거나 잠겨야 하는지 보다 긴 설명을 쓸 수 있습니다. 확인을 누르세요."
 
-#: ../user/forum_moderate_thread.php:72
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "현재 포럼"
 
-#: ../user/forum_moderate_thread.php:73
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "목표 포럼"
 
-#: ../user/forum_moderate_thread.php:77
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "새 제목:"
 
-#: ../user/forum_post.php:40
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
 msgstr "오직 프로젝트 관리자만 이곳에 스레드를 생성할 수 있습니다. 그러나 기존 스레드에 리플은 달 수 있습니다."
 
-#: ../user/forum_post.php:60
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
 msgstr "여러분의 글을 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
 
-#: ../user/forum_post.php:70
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr "새 스레드 만들기"
 
-#: ../user/forum_post.php:100
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr "새 스레드 만들기"
 
-#: ../user/forum_post.php:105
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr "추가할 제목 기억하기"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "이 항목을 BOINC 관리자에서 공지 사항으로 보이기"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
 msgstr "관심을 가질만한 기여자들에게 이 행동을 실행하십시오."
 
-#: ../user/forum_rate.php:26
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "오프라인 점수"
 
-#: ../user/forum_rate.php:27
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "프로젝트에서 해당 기능을 껐습니다"
 
-#: ../user/forum_rate.php:58
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
 msgstr "포스트를 평가하려면 더 많은 평균 혹은 총 크레딧이 필요합니다."
 
-#: ../user/forum_rate.php:62
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "이미 이 포스트를 평가했습니다."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "스레드로 돌아가기"
 
-#: ../user/forum_rate.php:72
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "입력 사항이 기록됨"
 
-#: ../user/forum_rate.php:73
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "입력한 내용이 기록되었습니다. 도와주셔서 감사합니다."
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "투표가 등록됨"
 
-#: ../user/forum_rate.php:76
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "평가 점수가 기록되었습니다. 입력해 주셔서 감사합니다."
 
-#: ../user/forum_rate.php:80
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "해결 의뢰할 문제를 투표하기"
 
-#: ../user/forum_reply.php:73
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
 msgstr "여러분의 글을 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr "스레드 글쓰기"
 
-#: ../user/forum_reply.php:137
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr "내용:"
 
-#: ../user/forum_reply.php:140
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "%1메세지 ID%2에 답하기:"
 
-#: ../user/forum_reply.php:166
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr "포스트 답글"
 
-#: ../user/forum_reply.php:169
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "이 답글에 내 서명을 추가하기"
 
-#: ../user/forum_report_post.php:45
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
 msgstr "포스트를 작성하려면 더 많은 평균 혹은 전체 크레딧이 필요합니다."
 
-#: ../user/forum_report_post.php:65
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr "신고가 등록됨"
 
-#: ../user/forum_report_post.php:66
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "여러분의 응답이 기록되었습니다. 입력해주셔서 감사합니다."
 
-#: ../user/forum_report_post.php:67
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
 msgstr "관리자가 여러분의 보고서를 보고 다음에 어떻게 할지 결정합니다. 이는 시간이 꽤 걸립니다. 그러므로 기다려 주세요."
 
-#: ../user/forum_report_post.php:71
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr "포럼 포스트 신고"
 
-#: ../user/forum_report_post.php:73
+#: html/user/forum_report_post.php:78
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"이 포스트를 신고하기 전에 +/- 등급 시스템 사용을 고려해 보세요. 만약 충분한 사용자들이 포스트에 부정적인 등급을 매겼다면 결국 숨김 "
-"처리될 것입니다.<br />포스트 하단부에서 등급 시스템을 찾을 수 있습니다."
+msgstr "이 포스트를 신고하기 전에 +/- 등급 시스템 사용을 고려해 보세요. 만약 충분한 사용자들이 포스트에 부정적인 등급을 매겼다면 결국 숨김 처리될 것입니다.<br />포스트 하단부에서 등급 시스템을 찾을 수 있습니다."
 
-#: ../user/forum_report_post.php:80
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr "포스트 신고"
 
-#: ../user/forum_report_post.php:81
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"왜 불쾌한 포스트를 찾습니까?: %1충분한 정보를 제공하세요. 그렇게 함으로써 사람들이 아직 읽지\n"
-"않은 스레드에서 신속하게 문제 사항을 식별할 수 있게 됩니다.%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "포스트가 왜 공격적인 것 같습니까: %1충분한 정보를 제공하세요. 그렇게 함으로써 사람들이 아직 읽지 않은 스레드에서 신속하게 문제 사항을 식별할 수 있게 됩니다.%2"
 
-#: ../user/forum_report_post.php:90
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr "신고가 등록되지 않음"
 
-#: ../user/forum_report_post.php:91
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
 msgstr "신고가 기록되지 못했습니다. 잠시 기다리신 후에 다시 시도하세요."
 
-#: ../user/forum_report_post.php:92
+#: html/user/forum_report_post.php:106
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
+"If this is not a temporary error, please report it to the project "
+"developers."
 msgstr "만약 이 것이 일시적인 오류가 아니라면, 프로젝트 개발자에게 보고하세요."
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 RSS 피드"
 
-#: ../user/forum_rss.php:42
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "이 게시판은 RSS 피드로도 제공됩니다."
 
-#: ../user/forum_rss.php:43
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr "부가 사항:"
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
 msgstr "사용자 ID %1이 포함된 것만 표시합니다(기본값: 모든 사용자)."
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "최근 %1 일간의 포스트만 표시합니다(기본값: 30)."
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr "포스트 요약하기: %1 (각 포스트의 첫 265글자만 표시합니다)"
-
-#: ../user/forum_rss.php:53
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr "스레드만 표시: %1 (모든 스레드의 첫번째 포스트만 표시합니다)"
 
-#: ../user/forum_search.php:27
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "포럼 검색 결과"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "요청에 맞는 스레드 제목:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "요청에 맞는 내용:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "죄송합니다. 검색 큐와 일치하는 어떤 것도 찾을 수 없습니다. 더 적은 단어(또는 더 적은 특정 단어)를 사용해서 검색 범위를 넓힐 수 있습니다."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "또한 %1구글에서 같은 내용을 검색%2할 수 있습니다."
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "다른 검색 실행"
+
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr "포럼 검색"
 
-#: ../user/forum_search.php:31
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr "검색 요청"
 
-#: ../user/forum_search.php:32
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "키워드로 찾기:"
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "정의된 단어가 모두 포함된 포스트들이 표시될 것입니다"
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "예시: \"screensaver freeze\""
 
-#: ../user/forum_search.php:36
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "작성자 ID로 찾기:"
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "해당 작성자가 쓴 포스트만 표시될 것입니다"
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "예시: \"43214\""
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr "검색 옵션"
 
-#: ../user/forum_search.php:42
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr "검색 제한"
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "최근 며칠 사이의 결과 검색"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 달"
 
-#: ../user/forum_search.php:52
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr "1 년"
 
-#: ../user/forum_search.php:73
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "포럼"
+
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "해당 포럼의 포스트만 표시"
 
-#: ../user/forum_search.php:84
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr "정렬 순서"
 
-#: ../user/forum_search.php:88
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr "검색 시작"
 
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "포럼 검색 결과"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "요청에 맞는 스레드 제목:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "요청에 맞는 내용:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"죄송합니다. 검색 큐와 일치하는 어떤 것도 찾을 수 없습니다. 더 적은 단어(또는 더 적은 특정 단어)를 사용해서 검색 범위를 넓힐 수 "
-"있습니다."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "또한 %1구글에서 같은 내용을 검색%2할 수 있습니다."
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "다른 검색 실행"
-
-#: ../user/forum_subscribe.php:46
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "구독에 성공했습니다"
 
-#: ../user/forum_subscribe.php:49
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
 msgstr "%1을 구독하기로 했습니다. 새로운 포스트가 등록되면 알려줄 것입니다."
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "구독에 실패했습니다"
 
-#: ../user/forum_subscribe.php:52
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
 msgstr "현재 %1을 구독할 수 없습니다. 나중에 다시 시도해주세요."
 
-#: ../user/forum_subscribe.php:61
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "구독 해제에 성공했습니다"
 
-#: ../user/forum_subscribe.php:64
+#: html/user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
 msgstr "더 이상 %1을 구독하지 않기로 했습니다. 더 이상 이 스레드에 관한 알림을 받지 못할 것입니다."
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "구독해제에 실패했습니다"
 
-#: ../user/forum_subscribe.php:67
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
 msgstr "현재 %1 구독을 해제시킬 수 없습니다. 나중에 다시 시도해주세요."
 
-#: ../user/forum_subscribe.php:74
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "알려지지 구독 액션"
 
-#: ../user/forum_thread.php:61
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "이 포럼은 여러분이 볼 수 없습니다."
 
-#: ../user/forum_thread.php:69
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "이 스레드는 관리자가 숨겨놓았습니다"
 
-#: ../user/forum_thread.php:128
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "질문에 답이 달렸습니다"
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "만약 여러분 질문에 충분한 답변이 달렸다면 여기를 누르세요"
 
-#: ../user/forum_thread.php:137
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "이 질문에 답을 얻었습니다"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr "이 스레드에 새로운 내용을 추가하기"
 
-#: ../user/forum_thread.php:171
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr "구독 취소"
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "여러분은 이 스레드를 구독하고 계십니다. 구독을 취소하려면 여기를 누르세요."
 
-#: ../user/forum_thread.php:178
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr "구독하기"
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
 msgstr "이 스레드에 새로운 포스트가 올라올 때 이메일로 보내주길 원하면 클릭하세요"
 
-#: ../user/forum_thread.php:190
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr "이 스레드 숨김을 풉니다"
 
-#: ../user/forum_thread.php:196
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr "이 스레드 숨기기"
 
-#: ../user/forum_thread.php:202
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr "찐득이 떼기"
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr "이 스레드에서 찐득이를 뗍니다"
 
-#: ../user/forum_thread.php:208
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr "찐득이 붙이기"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "이 스레드를 찐득이로 붙입니다"
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "이 스레드를 항상 포럼 상단에 고정시키기"
 
-#: ../user/forum_thread.php:215
+#: html/user/forum_thread.php:219
 msgid "Unlock"
 msgstr "잠금 해제"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "이 스레드 잠금 해제"
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "이 스레드에 새로운 포스트 작성 허용"
 
-#: ../user/forum_thread.php:221
+#: html/user/forum_thread.php:225
 msgid "Lock"
 msgstr "잠그기"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "이 스레드 잠구기"
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "이 스레드에 새로운 포스트 작성 금지"
 
-#: ../user/forum_thread.php:229
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr "이 스레드를 다른 포럼으로 이동시킵니다"
 
-#: ../user/forum_thread.php:234
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr "제목 수정"
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr "스레드 제목 수정"
 
-#: ../user/forum_thread.php:245
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "영구적으로 스레드 삭제"
+
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr "공지 사항으로 반출"
 
-#: ../user/forum_thread.php:251
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr "반출하지 않음"
 
-#: ../user/forum_thread.php:252
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr "이 뉴스 항목을 공지 사항으로 반출하지 않습니다"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr "정렬"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "스레드 상태가 업데이트됨"
 
-#: ../user/forum_thread_status.php:50
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "상태가 업데이트되었습니다."
 
-#: ../user/forum_user_posts.php:73
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "%1 포스트"
 
-#: ../user/friend.php:33
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr "이미 친구입니다"
 
-#: ../user/friend.php:39
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "%2를 통해 %1에게 친구 관계를 요청했습니다."
 
-#: ../user/friend.php:41
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "요청이 확정되길 기다리고 있습니다."
 
-#: ../user/friend.php:52
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1(은)는 친구 관계 요청을 허용하고 있지 않습니다."
 
-#: ../user/friend.php:61
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "여러분 자신과는 친구가 될 수 없습니다"
 
-#: ../user/friend.php:69
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr "친구로 추가"
 
-#: ../user/friend.php:74
+#: html/user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
 msgstr "%1을 친구로 추가하길 요청했습니다. %1에게 알리고 그에게 당신을 친구로 할지 확인하도록 요청할 것입니다."
 
-#: ../user/friend.php:77
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "부가적인 내용은 여기에 추가하세요:"
 
-#: ../user/friend.php:115
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr "친구 요청을 보냈습니다"
 
-#: ../user/friend.php:116
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "여러분의 요청 %1에 대해서 알렸습니다."
 
-#: ../user/friend.php:126
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr "%1로 로그인하세요"
 
-#: ../user/friend.php:127
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "해당 친구 요청을 보려면 %1로 로그인해야 됩니다"
 
-#: ../user/friend.php:138
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr "친구 요청"
 
-#: ../user/friend.php:141
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1가 당신에게 친구 관계를 요청했습니다."
 
-#: ../user/friend.php:143
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1의 말: %2"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr "친구 관계를 수락"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "%1이 사실상 친구라면 클릭해서 승낙합니다"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr "거절"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "%1이 친구가 아니라면 클릭해서 거절합니다"
 
-#: ../user/friend.php:186
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "친구 관계 확인됨"
 
-#: ../user/friend.php:187
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "%1과 맺은 친구 관계가 확인되었습니다."
 
-#: ../user/friend.php:205
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr "친구 관계 거절"
 
-#: ../user/friend.php:206
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "%1과의 친구 관계를 거절했습니다"
 
-#: ../user/friend.php:221
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr "공지를 찾을 수 없습니다"
 
-#: ../user/friend.php:223
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr "친구 확인"
 
-#: ../user/friend.php:224
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "지금부터 %1와(과) 친구입니다."
 
-#: ../user/friend.php:232
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "친구 관계를 취소합니까?"
 
-#: ../user/friend.php:234
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "정말로 사용자 %1과의 친구 관계를 취소하시겠습니까?"
 
-#: ../user/friend.php:239
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr "친구로 등록"
 
-#: ../user/friend.php:249
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "친구 관계가 취소됨"
 
-#: ../user/friend.php:250
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "%1과 맺은 친구 관계가 취소되었습니다."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "계정 정보를 잊었습니까?"
-
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
 msgstr "1) 만약 해당 계정의 이메일 주소를 알고 있으며, 이메일을 받을 수 있는 경우:"
 
-#: ../user/get_passwd.php:29
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
 msgstr "하단에 이메일 주소를 입력하고 확인을 누르세요. 비밀번호를 초기화하기 위한 절차가 이메일로 전송됩니다."
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
 msgstr "2) 만약 해당 계정의 이메일 주소를 잊었거나, 이메일을 받을 수 없는 경우:"
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
 msgstr "해당 계정으로 BOINC를 실행하고 있다면 계속 접근할 수 있습니다. 방법:"
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
 msgstr "컴퓨터상의 BOINC 데이터 디렉토리로 이동하세요.(해당 디렉토리 위치는 BOINC 관리자의 이벤트 기록에 쓰여져 있습니다.)"
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
 msgstr "해당 프로젝트용 계정 파일을 찾으세요. 해당 파일은 <b>%1</b>입니다."
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
 msgstr "메모장같은 텍스트 편집기로 파일을 여세요. 다음과 같은 것들을"
 
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
 msgstr "%1과 %2 사이에 있는 문자열을 선택하고 복사하세요.(상단의 %3은 예시)"
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
 msgstr "하단의 입력란에 문자열을 붙여넣고 확인을 누르세요."
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
 msgstr "여러분 계정은 로그인 상태를 유지할 것입니다. 여러분 계정의 메일 주소와 비밀번호를 업데이트하세요."
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
 msgstr "인증 부호로 로그인 하기"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "계정 정보를 잊었습니까?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "보고된 GPU 태스크가 없습니다"
 
-#: ../user/gpu_list.php:183
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "최고 GPU 칩셋"
+
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
 msgstr "다음 목록은 다른 플랫폼에서 가장 효율성이 높은 GPU 종류를 보여줍니다.  괄호 안 내용은 상대적인 속도를 나타냅니다."
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr "%1에 오신 걸 환영합니다"
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
 msgstr "하단에 표시된 링크를 사용해서 계정 환경 설정을 보고 수정할 수 있습니다."
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr "만약 아직 그렇지 않다면 %1BOINC 클라이언트 소프트웨어를 다운로드하세요%2."
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "불확실한 플랫폼, 어플이 빠짐"
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "계정"
 
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr "불확실한 플랫폼"
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "앱 버전 누락"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "어플이 빠짐"
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr "플랫폼 누락"
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr "태스크가 완료됨"
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
 msgstr "하루 태스크 최대량"
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr "오늘의 태스크 수"
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr "연속적으로 인정된 태스크"
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr "평균 처리율"
 
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr "응용 프로그램 상세 정보: 호스트 %1"
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr "컴퓨터 기록이 없습니다."
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"이 컴퓨터의 저희 기록을 삭제할 수 없습니다. 왜냐하면 저희 DB는 여전히 그 것을 포함한 채 작동하기 때문입니다. 프로젝트 DB에서 "
-"해당 컴퓨터의 작업이 삭제되기 전까지 며칠간 기다려야 합니다."
+msgstr "이 컴퓨터의 저희 기록을 삭제할 수 없습니다. 왜냐하면 저희 DB는 여전히 그 것을 포함한 채 작동하기 때문입니다. 프로젝트 DB에서 해당 컴퓨터의 작업이 삭제되기 전까지 며칠간 기다려야 합니다."
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr "컴퓨터 기록 삭제"
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr "기록이 삭제되었습니다."
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr "컴퓨터 목록으로 돌아가기"
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr "컴퓨터 기록 병합"
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr "컴퓨터 병합"
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"때때로 BOINC는 실수로 같은 컴퓨터를 개별적인 존재로 인정합니다. 여러분은 오래된 것을 새로운 것으로 통합시켜서 바로잡을 수 "
-"있습니다."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "때때로 BOINC는 실수로 같은 컴퓨터를 개별적인 존재로 인정합니다. 여러분은 오래된 것을 새로운 것으로 통합시켜서 바로잡을 수 있습니다."
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr "이 호스트와 통합할 자격이 있는 호스트가 없습니다."
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr "상세정보 보이기"
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
 msgstr "%1과 같은 컴퓨터인지 확인합니다(생성 %2, 컴퓨터 ID %3):"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr "이름"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr "생성 시각"
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr "컴퓨터 ID"
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr "호스트이름 없음"
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr "호스트 병합"
 
-#: ../user/host_update_credit.php:28
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "%1에 속한 컴퓨터"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "컴퓨터가 숨겨짐"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "이 사용자는 소속된 컴퓨터 정보를 보여주지 않도록 선택했습니다."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "컴퓨터"
+
+#: html/user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "컴퓨터 크레딧 업데이트 중"
 
-#: ../user/host_venue_action.php:41
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "호스트 크레딧이 업데이트됨"
+
+#: html/user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "호스트 위치가 업데이트됨"
 
-#: ../user/host_venue_action.php:43
+#: html/user/host_venue_action.php:43
 msgid "none"
 msgstr "없음"
 
-#: ../user/host_venue_action.php:46
+#: html/user/host_venue_action.php:46
 msgid "The venue of this host has been set to %1."
 msgstr "이 호스트의 위치가 %1로 설정되었습니다."
 
-#: ../user/host_venue_action.php:48
+#: html/user/host_venue_action.php:48
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
 msgstr "이 변화는 다음 번에 해당 호스트가 이 프로젝트 서버와 통신할 경우 적용될 것입니다."
 
-#: ../user/host_venue_action.php:50
+#: html/user/host_venue_action.php:50
 msgid "Return to host page"
 msgstr "호스트 페이지로 돌아가기"
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1에 속한 컴퓨터"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "컴퓨터가 숨겨짐"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "이 사용자는 소속된 컴퓨터 정보를 보여주지 않도록 선택했습니다."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "컴퓨터"
-
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr "허용된 HTML 태그"
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
 msgstr "팀 개요에서 다음 HTML 태그들은 허용됩니다:"
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr "긁게"
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr "기울임"
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr "하이퍼 링크"
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr "단락"
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr "구분"
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr "사전 정의됨"
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
 msgstr "이미지: 높이는 450 픽셀을 초과할 수 없습니다. 이미지가 올려진, 권한없는 웹 사이트에 이미지를 링크하지 마십시오."
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
 msgstr "여러분은 또한 &, 주석같은 특수 문자들을 사용할 수 있습니다."
 
-#: ../user/info.php:35
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "규칙과 정책"
+
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "%1(은)는 검증된 컴퓨터로만 실행하십시오"
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"%1(은)는 여러분이 가진 컴퓨터 또는 소유자의 허락을 얻은 컴퓨터로 수행하십시오. 어떤 회사와 학교는 %1(과)와 같은 프로젝트를 "
-"수행하지 못하게 하려고 그들의 컴퓨터를 사용하지 못하게 하는 정책을 가지고 있습니다."
+msgstr "%1(은)는 여러분이 가진 컴퓨터 또는 소유자의 허락을 얻은 컴퓨터로 수행하십시오. 어떤 회사와 학교는 %1(과)와 같은 프로젝트를 수행하지 못하게 하려고 그들의 컴퓨터를 사용하지 못하게 하는 정책을 가지고 있습니다."
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
 msgstr "%1(은)는 이렇게 여러분의 컴퓨터를 사용합니다"
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"%1(을)를 실행하실 경우 여러분 컴퓨터의 CPU, 디스크 공간, 네트워크 대역폭 중 일부를 사용하게 됩니다. 여러분은 언제, 얼마만큼 "
-"%1이 여러분의 컴퓨터 자원을 사용할지 제어할 수 있습니다."
+msgstr "%1(을)를 실행하실 경우 여러분 컴퓨터의 CPU, 디스크 공간, 네트워크 대역폭 중 일부를 사용하게 됩니다. 여러분은 언제, 얼마만큼 %1이 여러분의 컴퓨터 자원을 사용할지 제어할 수 있습니다."
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"여러분이 가진 컴퓨터로 한 작업은 %1 웹 사이트에 설명된 목표에 도달하는데 공헌하고 있습니다. 응용 프로그램은 시간이 지나면 바뀔 수 "
-"있습니다."
+msgstr "여러분이 가진 컴퓨터로 한 작업은 %1 웹 사이트에 설명된 목표에 도달하는데 공헌하고 있습니다. 응용 프로그램은 시간이 지나면 바뀔 수 있습니다."
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr "사생활 보호 정책"
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"%1(은)는 여러분이 선택한 이름을 바탕으로 여러분을 식별합니다. 이 이름은 %1 웹 사이트에서 여러분의 컴퓨터로  %1(을)를 수행한 "
-"결과와 함께 보여질 것입니다. 만약 익명으로 남길 원한다면 여러분의 이름을 밝히지 않도록 선택하십시오."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "%1(은)는 여러분이 선택한 이름을 바탕으로 여러분을 식별합니다. 이 이름은 %1 웹 사이트에서 여러분의 컴퓨터로  %1(을)를 수행한 결과와 함께 보여질 것입니다. 만약 익명으로 남길 원한다면 여러분의 이름을 밝히지 않도록 선택하십시오."
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"만약 여러분이 %1에 참여한다면 여러분의 컴퓨터 정보(프로세서 종류, 메모리 용량, 기타)가 %1 서버에 기록됩니다. 이 것은 여러분 "
-"컴퓨터로 어떤 작업을 할당할지 결정하기 위해 사용됩니다. 이 정보는 또한 %1 웹 사이트에 공개됩니다. 여러분 컴퓨터의 위치를 알 수 "
-"있는 정보(예를 들어 도메인 네임이나 네트워크 주소)는 아무 것도 공개되지 않습니다."
+msgstr "만약 여러분이 %1에 참여한다면 여러분의 컴퓨터 정보(프로세서 종류, 메모리 용량, 기타)가 %1 서버에 기록됩니다. 이 것은 여러분 컴퓨터로 어떤 작업을 할당할지 결정하기 위해 사용됩니다. 이 정보는 또한 %1 웹 사이트에 공개됩니다. 여러분 컴퓨터의 위치를 알 수 있는 정보(예를 들어 도메인 네임이나 네트워크 주소)는 아무 것도 공개되지 않습니다."
 
-#: ../user/info.php:45
+#: html/user/info.php:45
 msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"%1에 참여하려면 여러분이 실제로 받아볼 수 있는 email 주소를 제공해야 합니다. 이 주소는 %1 웹 사이트에 공개되지 않으며, 다른 "
-"기관과 공유하지도 않습니다. %1(은)는 여러분에게 주기적으로 소식지를 보낼 수도 있습니다. 그러나 이 것은 언제든지 거부할 수 "
-"있습니다."
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "%1에 참여하려면 여러분이 실제로 받아볼 수 있는 email 주소를 제공해야 합니다. 이 주소는 %1 웹 사이트에 공개되지 않으며, 다른 기관과 공유하지도 않습니다. %1(은)는 여러분에게 주기적으로 소식지를 보낼 수도 있습니다. 그러나 이 것은 언제든지 거부할 수 있습니다."
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"%1 웹 사이트를 통해 보낸 쪽지는 송신자와 수신자만 볼 수 있습니다. %1은 쪽지 내용을 검사하거나 감시하지 않습니다. 만약 여러분이 "
-"다른 %1 사용자에게서 쪽지를 받길 원하지 않는다면 그 것들을 %2메세지 필터%3에 추가할 수 있습니다. 이 것은 불특정 다수에게 "
-"보여지거나 혹은 다른 사용자에게서 온 쪽지로부터 원하지 않는 메세지를 막아줍니다."
+msgstr "%1 웹 사이트를 통해 보낸 쪽지는 송신자와 수신자만 볼 수 있습니다. %1은 쪽지 내용을 검사하거나 감시하지 않습니다. 만약 여러분이 다른 %1 사용자에게서 쪽지를 받길 원하지 않는다면 그 것들을 %2메세지 필터%3에 추가할 수 있습니다. 이 것은 불특정 다수에게 보여지거나 혹은 다른 사용자에게서 온 쪽지로부터 원하지 않는 메세지를 막아줍니다."
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"만약 우리 웹사이트 포럼을 이용하려면 %2글 쓰기 가이드라인%3을 따라야 합니다. %1 포럼에 작성된 게시물은 멤버가 아닌 사람을 포함한 "
-"누구나 볼 수 있습니다. 포럼에 글을 쓰면 여러분의 포스트들은 누구나 볼 수 있고 복사할 수 있는 권리를 부여받게 됩니다."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "만약 우리 웹사이트 포럼을 이용하려면 %2글 쓰기 가이드라인%3을 따라야 합니다. %1 포럼에 작성된 게시물은 멤버가 아닌 사람을 포함한 누구나 볼 수 있습니다. 포럼에 글을 쓰면 여러분의 포스트들은 누구나 볼 수 있고 복사할 수 있는 권리를 부여받게 됩니다."
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
 msgstr "%1(을)를 실행해도 안전합니까?"
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"언제든지 여러분은 인터넷을 통해서 프로그램을 다운로드할 수 있습니다. 어떤 때는 프로그램이 위험한 오류를 가지고 있을 수 도 있고 "
-"다운로드 서버가 해킹당했을 수도 있습니다. %1(은)는 이러한 위험을 최소화하기 위해 노력합니다. 우리는 우리의 응용 프로그램을 조심히 "
-"테스트합니다. 우리 서버는 높은 보안성을 위해서 방화벽 뒤에 두고 있습니다. 프로그램 다운로드를 안전하게 하기 위해서 모든 실행가능한 "
-"파일은 인터넷에 연결되지 않은 안전한 컴퓨터로 디지털 서명을 하고 있습니다."
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "언제든지 여러분은 인터넷을 통해서 프로그램을 다운로드할 수 있습니다. 어떤 때는 프로그램이 위험한 오류를 가지고 있을 수 도 있고 다운로드 서버가 해킹당했을 수도 있습니다. %1(은)는 이러한 위험을 최소화하기 위해 노력합니다. 우리는 우리의 응용 프로그램을 조심히 테스트합니다. 우리 서버는 높은 보안성을 위해서 방화벽 뒤에 두고 있습니다. 프로그램 다운로드를 안전하게 하기 위해서 모든 실행가능한 파일은 인터넷에 연결되지 않은 안전한 컴퓨터로 디지털 서명을 하고 있습니다."
 
-#: ../user/info.php:50
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"%1 응용을 수행 중에 어떤 컴퓨터는 과부하가 걸릴 수 있습니다. 만약 그렇게 되었다면 %1 수행을 중지하시거나 CPU사용량을 제한하기 "
-"위해 %2유틸리티 프로그램%3(을)를 사용하십시오."
+msgstr "%1 응용을 수행 중에 어떤 컴퓨터는 과부하가 걸릴 수 있습니다. 만약 그렇게 되었다면 %1 수행을 중지하시거나 CPU사용량을 제한하기 위해 %2유틸리티 프로그램%3(을)를 사용하십시오."
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
 msgstr "%1(은)는 %2에서 개발했습니다. BOINC는 California 대학에서 개발했습니다."
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr "책임"
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1(과)와 %2(은)는 %1에 참여한 결과로 인해 발생할지도 모르는 컴퓨터가 입은 충격, 데이터 손실, 혹은 어떤 사건이나 손해도 "
-"책임지지 않습니다."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1(과)와 %2(은)는 %1에 참여한 결과로 인해 발생할지도 모르는 컴퓨터가 입은 충격, 데이터 손실, 혹은 어떤 사건이나 손해도 책임지지 않습니다."
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr "다른 BOINC 프로젝트들"
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"다른 프로젝트도 %1처럼 BOINC 플랫폼을 사용합니다. 여러분이 이들 프로젝트에 하나 이상 참여할 생각이 들지도 모릅니다. 그렇게 "
-"함으로서 %1에서 수행할 작업이 없어도 여러분 컴퓨터는 유용한 작업을 수행할 수 있습니다. "
+msgstr "다른 프로젝트도 %1처럼 BOINC 플랫폼을 사용합니다. 여러분이 이들 프로젝트에 하나 이상 참여할 생각이 들지도 모릅니다. 그렇게 함으로서 %1에서 수행할 작업이 없어도 여러분 컴퓨터는 유용한 작업을 수행할 수 있습니다. "
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"다른 프로젝트는 %1(과)와 아무 관련이 없으며, 그들의 보안 상태나 그들이 하는 연구의 성격을 보증할 수 없습니다. 여러분은 위험을 "
-"감수하고서 그 것에 참여하셔야 합니다."
+msgstr "다른 프로젝트는 %1(과)와 아무 관련이 없으며, 그들의 보안 상태나 그들이 하는 연구의 성격을 보증할 수 없습니다. 여러분은 위험을 감수하고서 그 것에 참여하셔야 합니다."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "새 사용자"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "BOINC 사용자입니다"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "%1규칙과 정책%2을 읽어주십시오."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "BOINC 데스크탑 소프트웨어를 다운로드하세요."
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "다운로드"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "안드로이드 디바이스라면 Google Play Store나 Amazon App Store에서 BOINC를 다운로드하세요."
 
-#: ../user/language_select.php:47
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "설치 프로그램을 실행하세요."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "목록에서 %1를 선택하거나 %2를 입력합니다"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "아직 설치되지 않았다면 이 디바이스에 BOINC를 설치하세요."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "도구 / 프로젝트 추가를 선택하세요. 목록에서 %1를 선택하거나 %2를 입력합니다"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "만약 해당 컴퓨터에서 커맨드라인 버전 BOINC를 실행 중이라면, %1계정을 생성%2하고 프로젝트를 추가하기 위해 %3oinccmd --project_attach%4 명령을 사용하세요."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "%1 가입"
+
+#: html/user/language_select.php:46
 msgid "Language selection"
 msgstr "언어 선택"
 
-#: ../user/language_select.php:73
+#: html/user/language_select.php:57
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
 msgstr "이 웹 사이트는 다양한 언어로 이용할 수 있습니다. 현재 선택한 언어: %1"
 
-#: ../user/language_select.php:78
+#: html/user/language_select.php:62
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
 msgstr "보통 언어 설정은 여러분의 브라우저 언어 설정을 따릅니다. 현재 언어: %1  이 언어로 바꾸기: "
 
-#: ../user/language_select.php:83
+#: html/user/language_select.php:67
 msgid "Firefox: Tools/Options/General"
 msgstr "Firefox: 도구/설정/일반"
 
-#: ../user/language_select.php:85
+#: html/user/language_select.php:69
 msgid "Microsoft IE: Tools/Internet Options/Languages"
 msgstr "Microsoft IE: 도구/인터넷 옵션/언어"
 
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"또는 다음 링크 중 하나를 클릭해서 언어를 선택할 수 있습니다.  이 사항은 브라우저에 쿠키로 저장됩니다. 브라우저가 이 도메인의 쿠키를 "
-"허용하도록 해야 합니다"
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "언어명 (선택하려면 클릭)"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "혹은 다음 메뉴에서 언어를 선택할 수 있습니다:"
 
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "브라우저 언어 설정 사용"
-
-#: ../user/language_select.php:113
+#: html/user/language_select.php:85
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr "번역은 자원봉사로 이루어 집니다. 만약 여러분의 언어가 여기에 없다면 %1번역을 할 수도 있습니다%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Email 주소:"
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "번역은 자원봉사로 이루어 집니다.  만약 여러분의 언어가 여기에 없거나 부정확하면, %1번역을 도와줄 수도 있습니다%2."
 
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "email 주소를 잊어버렸습니까?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "비밀번호:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "비밀번호를 잊어버렸습니까?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "로그인 상태 유지"
-
-#: ../user/login_form.php:62
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr "또는 %1계정을 만드세요%2."
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr "진행중 %1"
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr "%1를 %2에 동기화"
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
 msgstr "여러분의 컴퓨터 목록으로 돌아가기"
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -4973,43 +5078,32 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"이 명령은 도메인 이름에 기반해서 컴퓨터를 병합니다.\n"
-"        <p>\n"
-"        개별 도메인 이름별로 동일한 이름을 가진 모든 이전 컴퓨터는\n"
-"        같은 이름을 가진 가장 최신 컴퓨터로 병합될 것입니다.\n"
-"        호환되지 않는 컴퓨터는 병합되지 않을 것입니다.\n"
-"        <p>"
+msgstr "이 명령은 도메인 이름에 기반해서 컴퓨터를 병합니다.\n        <p>\n        개별 도메인 이름별로 동일한 이름을 가진 모든 이전 컴퓨터는\n        같은 이름을 가진 가장 최신 컴퓨터로 병합될 것입니다.\n        호환되지 않는 컴퓨터는 병합되지 않을 것입니다.\n        <p>"
 
-#: ../user/merge_by_name.php:82
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr "그대로 실행하세요"
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr "컴퓨터 목록으로 돌아가기"
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"논의를 활성화시키고 정보의 흐름을 촉진시키고자\n"
-"저희 게시판을 관리하고 있습니다.\n"
-"게시판 글쓰기는 다음 게시물 규칙을 따르고 있습니다.\n"
+msgstr "\n논의를 활성화시키고 정보의 흐름을 촉진시키고자\n저희 게시판을 관리하고 있습니다.\n게시판 글쓰기는 다음 게시물 규칙을 따르고 있습니다.\n"
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5038,1652 +5132,1521 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"관리자는 이 규정을 위반한 포스트를 삭제할 것입니다.\n"
-"삭제된 포스트는 작성자에게 이메일로 통보됩니다.\n"
-"상습적인 위반자는 일시적으로 글을 쓸 권한을 잃게 될 것입니다.\n"
-"(그렇지만 남용을 방지하기 위해서 오직 프로젝트 운영자만 그럴 권한을 갖습니다.)\n"
-"추가적으로 안 좋은 행동(다른 참여자들의 IP 주소를 수집하기 위한 함정을\n"
-"놓는 \"도청\" 포스트, 포럼 내에 과도한 스레드를 생성해서 도배하는\n"
-"행위, 기타)은 공식 규정에 명시되지 않았지만 유사한 패널티를\n"
-"받을 가능성이 존재합니다.\n"
-"<p>\n"
-"만약 여러분이 생각하기에 게시판 규정을 포스트로 보이면\n"
-"포스트 상의 빨간 X 버튼을 클릭하고 양식을 작성해 주세요.\n"
-"여러분이 제기한 불만은 관리자에게 통보될 것입니다.\n"
-"이 버튼은 개인적인 관점인 아닌 명백한 위반일 경우에만\n"
-"사용해 주세요\n"
-"<p>\n"
-"저희는 관리시 최대한 공정하게 하려고 노력합니다.\n"
-"그렇지만 다른 관점을 가진 많은 사용자가 이용하는 대규모 커뮤니티에서\n"
-"저희들의 운영 원칙에 만족하지 않는 사용자들은 항상\n"
-"있을 것입니다.\n"
-"이러한 일로 저희가 후회하는 동안\n"
-"저희가 고려한 포럼 전체를 위한 우선 사항과 저희가 가진 자원에\n"
-"기반해서 내린 결정이 언제나 모든 사람들을 맞춰줄\n"
-" 수는 없다는 것을 깨닫기 바랍니다.\n"
-"포럼상에서 저희의 운영 정책을 논하지 말아주세요. 저희는 사회 공학\n"
-"프로젝트를 하는 것도 아니고 완벽하게 공정한 체계를 만드는\n"
-"사업자도 아닙니다. 이러한 토론은 비생산적인 경향이 있으며 잠재적으로\n"
-"선동적입니다. 만약 여러분이 마땅히 가질 만한 불만이 있으면\n"
-"아래 주소로 이메일을 보내 주세요.\n"
-"<p>\n"
-"이 운영 정책은 %1 프로젝트에서 정한 것입니다.\n"
-"만약 정책에 대한 요구가 있다면 %2로 메일을 보내 주세요.\n"
-"\n"
+msgstr "\n<p>\n관리자는 이 규정을 위반한 포스트를 삭제할 것입니다.\n삭제된 포스트는 작성자에게 이메일로 통보됩니다.\n상습적인 위반자는 일시적으로 글을 쓸 권한을 잃게 될 것입니다.\n(그렇지만 남용을 방지하기 위해서 오직 프로젝트 운영자만 그럴 권한을 갖습니다.)\n추가적으로 안 좋은 행동(다른 참여자들의 IP 주소를 수집하기 위한 함정을\n놓는 \"도청\" 포스트, 포럼 내에 과도한 스레드를 생성해서 도배하는\n행위, 기타)은 공식 규정에 명시되지 않았지만 유사한 패널티를\n받을 가능성이 존재합니다.\n<p>\n만약 여러분이 생각하기에 게시판 규정을 포스트로 보이면\n포스트 상의 빨간 X 버튼을 클릭하고 양식을 작성해 주세요.\n여러분이 제기한 불만은 관리자에게 통보될 것입니다.\n이 버튼은 개인적인 관점인 아닌 명백한 위반일 경우에만\n사용해 주세요\n<p>\n저희는 관리시 최대한 공정하게 하려고 노력합니다.\n그렇지만 다른 관점을 가진 많은 사용자 [...]
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr "지급 유보된 크레딧"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr "결과 ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr "작업 유닛 ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr "호스트 ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr "요청된 크레딧"
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr "지급 유보된 크레딧: %1"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr "해당 사용자로부터 온 메세지 차단"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr "사용자 차단"
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr "메세지가 전송되었습니다."
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr "쪽지가 없습니다."
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr "전송자와 날짜"
 
-#: ../user/pm.php:106
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr "이 메세지에 답하기"
 
-#: ../user/pm.php:107
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr "이 메세지 지우기"
 
-#: ../user/pm.php:112
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr "전체 선택"
 
-#: ../user/pm.php:114
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr "전체 선택 해제"
 
-#: ../user/pm.php:117
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr "선택된 메세지 지우기"
 
-#: ../user/pm.php:140
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr "송신자"
 
-#: ../user/pm.php:143
+#: html/user/pm.php:137
 msgid "Date"
 msgstr "날짜"
 
-#: ../user/pm.php:185
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
 msgstr "쪽지를 보낼려면 모든 칸을 채워야 합니다"
 
-#: ../user/pm.php:188
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "전송 시각"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "%1 팀 멤버에게 메세지가 전송되었습니다."
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"여러분의 글이 스팸으로 분류되었습니다\n"
-"                이는 Akismet 시스템이 처리합니다.\n"
-"                텍스트를 수정하고 다시 시도해주세요."
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "사용자의 메세지는 Akismet 스팸방어 시스템이\n            스팸으로 분류하였습니다.\n            텍스트를 수정하고 다시 시도해주세요."
 
-#: ../user/pm.php:205
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr "ID %1을(를) 가진 사용자를 찾을 수 없습니다"
 
-#: ../user/pm.php:210
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr "사용자 이름 %1을(를) 가진 사용자를 찾을 수 없습니다"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
 msgstr "%1은(는) 고유한 사용자 이름이 아닙니다; 사용자 ID를 이용하세요"
 
-#: ../user/pm.php:217
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr "사용자 %1 (ID: %2)는 여러분의 쪽지 수신을 허용하고 있지 않습니다."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr "해당 사용자가 없습니다"
 
-#: ../user/pm.php:242
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr "정말로 %1을 차단하시겠습니까?"
 
-#: ../user/pm.php:243
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
 msgstr "정말로 사용자 %1에게서 오는 쪽지를 차단하시겠습니까?"
 
-#: ../user/pm.php:244
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
 msgstr "제한된 숫자의 사용자를 차단할 수 있다는 걸 알아두세요."
 
-#: ../user/pm.php:245
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
 msgstr "사용자가 차단되었습니다. 포럼 환경 설정 페이지에서 차단을 해제할 수 있습니다."
 
-#: ../user/pm.php:252
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr "아니오, 취소합니다"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr "해당 사용자가 없습니다"
 
-#: ../user/pm.php:263
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr "사용자 %1이 차단되었습니다"
 
-#: ../user/pm.php:265
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "사용자 %1에게서 오는 쪽지가 차단되었습니다."
 
-#: ../user/pm.php:266
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "차단을 해제할려면, %1게시판 환경설정%2을 방문하세요"
 
-#: ../user/pm.php:302
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr "알려지지 행동"
 
-#: ../user/prefs.php:32
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%2 %1"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "환경 설정으로 돌아가기"
+
+#: html/user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"환경 설정이 업데이트되었습니다. 바뀐 설정은\n"
-"          여러분 컴퓨터가 %1 서버와 통신을 한 후에 적용될 것이며\n"
-"          혹은 BOINC 관리자에게 %2업데이트%3 명령을 요청할 수 있습니다."
+msgstr "환경 설정이 업데이트되었습니다. 바뀐 설정은\n          여러분 컴퓨터가 %1 서버와 통신을 한 후에 적용될 것이며\n          혹은 BOINC 관리자에게 %2업데이트%3 명령을 요청할 수 있습니다."
 
-#: ../user/prefs.php:41
+#: html/user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"환경 설정이 기본값으로 초기화되었습니다. 바뀐 설정은\n"
-"          여러분 컴퓨터가 %1 서버와 통신을 한 후에 적용될 것입니다.\n"
-"          혹은 BOINC 관리자에서 %2업데이트%3 명령을 요청할 수 있습니다."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%2 %1"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "환경 설정으로 돌아가기"
+msgstr "환경 설정이 기본값으로 초기화되었습니다. 바뀐 설정은\n          여러분 컴퓨터가 %1 서버와 통신을 한 후에 적용될 것입니다.\n          혹은 BOINC 관리자에서 %2업데이트%3 명령을 요청할 수 있습니다."
 
-#: ../user/prefs_remove.php:45
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "환경 설정 삭제 확인"
 
-#: ../user/prefs_remove.php:48
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr "정말로 %2 전용 환경 설정%1을 삭제하시겠습니까?"
 
-#: ../user/prefs_remove.php:52
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "환경 설정 제거"
 
-#: ../user/prefs_remove.php:54
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "취소"
 
-#: ../user/profile_menu.php:35
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
 msgstr "%1프로필%2은 배경 지식과 의견을 %3 커뮤니티에서 개별적으로 공유하도록 합니다."
 
-#: ../user/profile_menu.php:36
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
 msgstr "여러분과 같은 기여자들의 다양성을 경험하고, 다른 사람과 즐기기 위해서 공헌할 수 있습니다."
 
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
 msgstr "만약 아직 만들지 않았다면, 다른 사람에게 보여주기위해 %1사용자 프로필을 생성%2할 수 있습니다!"
 
-#: ../user/profile_menu.php:42
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "오늘의 사용자"
 
-#: ../user/profile_menu.php:57
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "사용자 프로필 탐색기"
 
-#: ../user/profile_menu.php:60
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "%1사용자 사진 갤러리%2 보기"
 
-#: ../user/profile_menu.php:61
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "%1 국가%2로 프로필 탐색"
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
 msgstr "%1 무작위%2, %3 무작위 사진 있음%2, 혹은 %4 무작위 사진 없음%2으로 프로필 탐색."
 
-#: ../user/profile_menu.php:66
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "알파벳 순서 프로필 목록:"
 
-#: ../user/profile_menu.php:72
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "프로필 텍스트로 검색"
 
-#: ../user/profile_menu.php:98
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr "프로필이 없습니다"
 
-#: ../user/profile_menu.php:99
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "조건에 맞는 프로필이 없습니다."
 
-#: ../user/profile_rate.php:29
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "잘못된 투표 종류:"
 
-#: ../user/profile_rate.php:34
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "투표가 기록됨"
 
-#: ../user/profile_rate.php:38
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr "감사합니다"
 
-#: ../user/profile_rate.php:41
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "추천서가 기록되었습니다."
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "이 프로필에 대한 거부 투표가 기록되었습니다."
 
-#: ../user/profile_rate.php:46
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "프로필로 돌아갑니다."
 
-#: ../user/profile_search_action.php:36
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "'%1'을 포함한 프로필"
 
-#: ../user/profile_search_action.php:40
+#: html/user/profile_search_action.php:42
 msgid "User name"
 msgstr "사용자 이름"
 
-#: ../user/profile_search_action.php:41
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "참여 프로젝트"
 
-#: ../user/profile_search_action.php:44
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "최근 크레딧"
 
-#: ../user/profile_search_action.php:54
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "'%1'을 포함한 프로필을 찾지 못했습니다"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "태스크 %1"
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "해당 태스크가 없음:"
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr "이 기능은 일시적으로 꺼집니다"
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr "ID %1가 가진 컴퓨터를 찾지 못했습니다"
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr "접근불가"
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
 msgstr "빠진 사용자 ID 혹은 호스트 ID"
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr "표시할 태스크가 없습니다"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "가동 중"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1는 점검때문에 일시적으로 종료되었습니다."
 
-#: ../user/server_status.php:100
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "%1은(는) 무엇입니까?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "뉴스"
+
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr "미실행중"
 
-#: ../user/server_status.php:103
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "가동 중"
+
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr "비활성화"
 
-#: ../user/server_status.php:231
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr "프로젝트 상태"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "서버 소프트웨어 버전: %1"
-
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr "프로그램"
 
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr "호스트"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "데이터 웹 페이지 서버"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "업로드/다운로드 서버"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "스케쥴러"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "가동 중:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "프로그램이 정상적으로 작동합니다"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "미가동 중:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "프로그램 실행 실패 혹은 프로젝트 서버 다운됨"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "비활성화:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "프로그램이 꺼졌습니다"
-
-#: ../user/server_status.php:303
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr "컴퓨팅 현황"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "DB 서버에 접근할 수 없습니다"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "전송 준비된 태스크"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "진행 중인 태스크"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "검증 대기 중인 작업 유닛"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "통합 대기 중인 작업 유닛"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "삭제 대기 중인 작업 유닛"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "파일 삭제 대기 중인 태스크"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "변환기 처리 목록 (시간)"
-
-#: ../user/server_status.php:374
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr "사용자"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "최근 크레딧 소유"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "크레딧 소유"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "최근 24시간 이내에 등록"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "현재 GFLOPs"
-
-#: ../user/server_status.php:420
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr "태스크 수행 프로그램"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "응용 프로그램"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "미전송"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "진행 중"
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "최근 100개의 태스크 실행 시간: 평균, 최소, 최대"
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "평균 100개의 결과물 실행 시간 (시, 최소-최대)"
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "최근 24시간내에 활동한 사용자"
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "최근 24시간 내 사용자"
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Database schema version: "
 
-#: ../user/show_host_detail.php:40
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr "컴퓨터 %1"
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr "통계와 명예의 전당"
 
-#: ../user/stats.php:28
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr "통계 %1"
 
-#: ../user/stats.php:37
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "최고 기여자들"
+
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "최고 팀"
+
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "최고 컴퓨터"
+
+#: html/user/stats.php:53
 msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
 msgstr "%1에 대한 더 자세한 통계와 다른 BOINC 기반 프로젝트들은 여러 웹사이트에서 이용 가능합니다:"
 
-#: ../user/stats.php:40
+#: html/user/stats.php:56
 msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
 msgstr "또한 여러분의 현재 통계는\"서명 이미지\" 형식으로도 얻을 수 있습니다:"
 
-#: ../user/stats.php:43
+#: html/user/stats.php:59
 msgid ""
 "Additionally you can get your individual statistics summed across all BOINC "
 "projects from several sites; see your %1home page%2."
-msgstr ""
-"거기다 모든 BOINC 프로젝트들을 통틀어서 정리된 개인별 통계는 여러 사이트에서 얻을 수 있습니다. %1홈 페이지%2를 봅니다."
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 참여자는 %2팀%3 형식을 띄고 있습니다."
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "여러분은 오직 한 팀에만 소속될 수 있습니다. 언제든지 팀에 가입하거나 탈퇴할 수 있습니다."
+msgstr "거기다 모든 BOINC 프로젝트들을 통틀어서 정리된 개인별 통계는 여러 사이트에서 얻을 수 있습니다. %1홈 페이지%2를 봅니다."
 
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "각 팀은 %1창설자%2가 있습니다:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "팀 멤버가 가진 이메일 주소를 열람"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "팀 이름과 개요를 수정합니다"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "팀 관리자 추가 혹은 제거"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "팀에서 멤버 추방하기"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "만약 팀 멤버가 없으면 팀을 해산할 수 있습니다"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "팀에 가입하려면 팀 홈페이지를 방문해서 %1팀 가입하기%2를 누르십시오."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "팀 찾기"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "모든 팀들"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 팀"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "새로운 팀 만들기"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "만약 여러분에게 맞는 팀을 찾지 못하셨다면 여러분은 %1팀을 만들 수도 있습니다%2."
-
-#: ../user/team_admins.php:34
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "이 멤버에서 팀 관리자 상태 제거"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr "팀 관리자 추가 혹은 제거"
 
-#: ../user/team_admins.php:41
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
 msgstr "당신은 팀원을 '팀 관리자'로 지정할 수 있습니다. 팀 관리자 권한:"
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "팀 정보 수정 (이름, URL, 개요, 국가)"
 
-#: ../user/team_admins.php:44
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "팀 가입/탈퇴 기록 보기"
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "팀에 메세지 보내기"
+
+#: html/user/team_admins.php:48
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
 msgstr "모든 팀 포럼 관리 (관리자는 관리 기록 사항 또는 빨간 X 보고서 등을 이메일로 받아볼 수 있습니다)"
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr "팀 관리자가 불가능한 것:"
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr "팀 창설자 변경"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr "맴버 추방"
 
-#: ../user/team_admins.php:53
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
 msgstr "만약 팀 관리자가 팀을 탈퇴하면 팀 관리자도 그만두게 됩니다."
 
-#: ../user/team_admins.php:54
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
 msgstr "우리는 여러분이 잘 알고 있고 신뢰할 수 있는 사람을 팀 관리자로 선택하기를 추천합니다."
 
-#: ../user/team_admins.php:59
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr "현재 팀 관리자가 없습니다"
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr "현재 팀 관리자들"
 
-#: ../user/team_admins.php:62
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr "팀 관리자로 승인되었습니다"
 
-#: ../user/team_admins.php:77
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr "팀 관리자 추가"
 
-#: ../user/team_admins.php:78
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr "팀 멤버 Email 주소:"
 
-#: ../user/team_admins.php:90
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr "관리자 제외에 실패했습니다"
 
-#: ../user/team_admins.php:99
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr "해당 사용자는 팀 회원이 아닙니다"
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr "%1은 이미 %2의 관리자입니다"
 
-#: ../user/team_admins.php:105
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr "관리자 추가 불가"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "해당 팀이 없습니다."
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr "해당 팀이 없습니다."
 
-#: ../user/team_change_founder_action.php:38
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "해당 사용자는 %1의 멤버가 아닙니다"
 
-#: ../user/team_change_founder_action.php:41
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "%1 창설자 변경합니다"
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1은 지금부터 %2의 창설자입니다"
 
-#: ../user/team_change_founder_form.php:37
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "%1 창설자 변경"
 
-#: ../user/team_change_founder_form.php:43
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
 msgstr "팀원 %1은 %2의 팀 창설자로 요청되었습니다. 그러나 팀을 떠나게 되면 요청은 취소됩니다."
 
-#: ../user/team_change_founder_form.php:49
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"팀원 %1은 이 팀의 창설자로 요청되었습니다. 그 것은 당신이 팀을 떠났거나 오랜 시간동안 팀에 접촉하지 않았기 때문일 것입니다."
+msgstr "팀원 %1은 이 팀의 창설자로 요청되었습니다. 그 것은 당신이 팀을 떠났거나 오랜 시간동안 팀에 접촉하지 않았기 때문일 것입니다."
 
-#: ../user/team_change_founder_form.php:55
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "요청 거부"
 
-#: ../user/team_change_founder_form.php:58
+#: html/user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"%1의 요구를 거부하지 않는다면 %2는 팀 창설자에 취임할 선택권을 가지게 됩니다.<br /><br />\n"
-"                  요청을 수락하려면 하단에 양식을 이용해서 %3을 창설자로 임명하세요."
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "%1의 요구를 거부하지 않는다면 %2는 팀 창설자에 취임할 선택권을 가지게 됩니다.<br /><br />\n                  요청을 수락하려면 하단에 양식을 이용해서 %3을 창설자로 임명하세요."
 
-#: ../user/team_change_founder_form.php:66
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "전송 요청이 보류되었습니다."
 
-#: ../user/team_change_founder_form.php:69
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"이 팀의 다른 사람을 창설자로 임명하려면 멤버 이름 옆 상자에 체크하고 하단에 있는 <strong>창설자 변경</strong>을 "
-"클릭하세요."
+"member name and click %1Change founder%2 below."
+msgstr "이 팀의 다른 사람을 창설자로 임명하려면, 멤버 이름 옆 상자에 체크하고 하단에 있는 %1창설자 변경%2을 클릭하세요."
 
-#: ../user/team_change_founder_form.php:76
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr "새 창설자로 바꿀까요?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr "창설자 변경"
 
-#: ../user/team_change_founder_form.php:108
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
 msgstr "팀에서 인계받을 사용자를 찾지 못했습니다."
 
-#: ../user/team_create_action.php:29
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr "공백없이 팀 이름을 입력하셔야 합니다"
 
-#: ../user/team_create_action.php:34
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr "팀 이름 %1(은)는 이미 존재합니다 - 다른 이름으로 해보세요"
 
-#: ../user/team_create_action.php:54
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
 msgstr "팀을 만들지 못했습니다 - 다음에 다시 시도해 주세요."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr "팀을 만듭니다"
 
-#: ../user/team_create_form.php:30
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
 msgstr "%1에 소속되었습니다. 새로운 팀을 만들려면, 그 전에 %2이 팀을 탈퇴%3하셔야 됩니다."
 
-#: ../user/team_delta.php:65
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "창설자 혹은 관리자가 아닙니다"
 
-#: ../user/team_delta.php:72
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "%1 팀 역사"
 
-#: ../user/team_delta.php:75
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr "시간"
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr "사용자"
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr "행동"
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr "활동 시간에 따른 전체 크레딧"
 
-#: ../user/team_edit_action.php:53
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr "비선호 국가"
 
-#: ../user/team_edit_action.php:59
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "해당 이름 '%1'은 다른 팀에서 사용하고 있습니다."
 
-#: ../user/team_edit_action.php:62
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "팀 이름을 반드시 기입하세요"
 
-#: ../user/team_edit_action.php:90
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "팀 정보를 업데이트하지 못했습니다 - 다음에 다시 시도해 주세요."
 
-#: ../user/team_edit_form.php:33
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "%1 수정"
 
-#: ../user/team_edit_form.php:34
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "팀 정보 업데이트"
 
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 Email 목록"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "%1 멤버"
 
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "%1 멤버 목록"
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
 
-#: ../user/team_email_list.php:78
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr "순수 텍스트로 보기"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "게시판 생성"
 
-#: ../user/team_forum.php:29
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "%1을 사용해서 게시판을 만들 수 있습니다."
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "팀원만이 글을 쓸 수 있습니다."
 
-#: ../user/team_forum.php:32
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "여러분 선택에 따라서 팀원만이 글을 읽을 수 있습니다."
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr "여러분과 팀 관리자는 편집 권한을 가지고 있습니다."
 
-#: ../user/team_forum.php:40
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "%1 게시판 생성"
 
-#: ../user/team_forum.php:48
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "이미 팀 게시판이 있습니다"
 
-#: ../user/team_forum.php:59
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "팀 게시판"
 
-#: ../user/team_forum.php:71
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr "포스트 사이의 최소 시간 간격 (초)"
 
-#: ../user/team_forum.php:74
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
 msgstr "포스팅에 필요한 최소 전체 크레딧"
 
-#: ../user/team_forum.php:77
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
 msgstr "포스팅에 필요한 최소 평균 크레딧"
 
-#: ../user/team_forum.php:80
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr "제출"
 
-#: ../user/team_forum.php:89
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr "팀 게시판을 제거합니다"
 
-#: ../user/team_forum.php:97
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr "정말로 게시판을 제거하시겠습니까?"
 
-#: ../user/team_forum.php:98
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"정말로 팀 게시판을 제거하시겠습니까? 모든 스레드와 포스트는 즉각 삭제됩니다. (그러나 이후에 새로 게시판을 만들 수도 있습니다)"
+msgstr "정말로 팀 게시판을 제거하시겠습니까? 모든 스레드와 포스트는 즉각 삭제됩니다. (그러나 이후에 새로 게시판을 만들 수도 있습니다)"
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr "네 - 게시판을 제거합니다"
 
-#: ../user/team_forum.php:121
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr "게시판이 제거되었습니다"
 
-#: ../user/team_forum.php:124
+#: html/user/team_forum.php:132
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
 msgstr "팀 게시판이 삭제되었습니다. 지금부터 %1새로운 게시판을 만들 수 있습니다%2."
 
-#: ../user/team_forum.php:143
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr "팀 게시판이 업데이트 되었습니다"
 
-#: ../user/team_forum.php:144
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr "성공적으로 업데이트됬습니다"
 
-#: ../user/team_forum.php:147
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr "업데이트 실패: "
 
-#: ../user/team_forum.php:154
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr "팀 포럼이 없습니다"
 
-#: ../user/team_founder_transfer_action.php:36
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "이 페이지에 접근하려면 팀 멤버여야만 합니다."
 
-#: ../user/team_founder_transfer_action.php:90
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr "%1 창설자 신청"
 
-#: ../user/team_founder_transfer_action.php:98
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"현 창설자에게 당신의 요청 사항을 email과 쪽지로 알렸습니다.<br /><br />\n"
-"                       창설자가 60일 이내에 응답이 없으면 당신이 창설자가 되는 것이 허용됩니다."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "현 창설자에게 당신의 요청 사항을 email과 쪽지로 알렸습니다.<br /><br />\n                       창설자가 60일 이내에 응답이 없으면 당신이 창설자가 되는 것이 허용됩니다."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
 msgstr "현재 창설자 신청을 할 수 없습니다"
 
-#: ../user/team_founder_transfer_action.php:109
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr "%1의 창설자로 임명되었습니다"
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
 msgstr "축하합니다. 당신은 지금부터 %1 팀의 창설자입니다. %2계정 관리%3에 가서 팀 관리자 옵션을 찾아보세요."
 
-#: ../user/team_founder_transfer_action.php:120
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr "창설자 교체 요청 거절"
 
-#: ../user/team_founder_transfer_action.php:127
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr "%1에서 요청된 창설자 신청이 거부되었습니다."
 
-#: ../user/team_founder_transfer_action.php:130
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr "어떤 창설자 요청도 없습니다."
 
-#: ../user/team_founder_transfer_action.php:134
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr "정의되지 않은 행동 %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "팀 페이지로 돌아가기"
 
-#: ../user/team_founder_transfer_form.php:28
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "이 페이지에 접근하려면 팀 멤버여야 합니다."
 
-#: ../user/team_founder_transfer_form.php:31
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "%1 창설자 신청"
 
-#: ../user/team_founder_transfer_form.php:38
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "지금부터 당신은 팀 %1의 창설자입니다."
 
-#: ../user/team_founder_transfer_form.php:44
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "%2의 %1에게 창설자 변경를 신청했습니다."
 
-#: ../user/team_founder_transfer_form.php:47
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
 msgstr "요청이 있은지 60일이 지났습니다. 그리고 창설자는 응답하지 않았습니다. 여기를 클릭하면 창설자에 임명됩니다:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "창설자 취임"
 
-#: ../user/team_founder_transfer_form.php:54
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
 msgstr "창설자에게 요청 사항을 알렸습니다. 만약 그가 %1에 응답하지 않으면 당신은 창설자가 될 권한을 얻습니다."
 
-#: ../user/team_founder_transfer_form.php:60
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"만약 팀 창설자가 활동을 안 하고 있고 당신이 창설자에 임명되길 원하면, 하단에 있는 버튼을 누르세요. 현 창설자에게 당신의 요청 사항이 "
-"이메일로 전송되고 당신에게 창설자 권한을 주거나 요청을 거부할 수 있습니다. 만약 창설자가 60일 동안 응답이 없으면 창설자가 되도록 "
-"허용됩니다.<br /><br />\n"
-"                       정말로 창설권 요청을 하시겠습니까?"
+msgstr "만약 팀 창설자가 활동을 안 하고 있고 당신이 창설자에 임명되길 원하면, 하단에 있는 버튼을 누르세요. 현 창설자에게 당신의 요청 사항이 이메일로 전송되고 당신에게 창설자 권한을 주거나 요청을 거부할 수 있습니다. 만약 창설자가 60일 동안 응답이 없으면 창설자가 되도록 허용됩니다.<br /><br />\n                       정말로 창설권 요청을 하시겠습니까?"
 
-#: ../user/team_founder_transfer_form.php:65
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "창설자 신청"
 
-#: ../user/team_founder_transfer_form.php:74
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "%2의 %1가 창설자 교체 요청을 이미 했습니다."
 
-#: ../user/team_founder_transfer_form.php:77
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
 msgstr "최근 90일 이내에 창설자 교체 요청이 있었기 때문에 새 요청은 허용되지 않습니다. 나중에 다시 시도해 주세요."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr "%1 팀은 가입할 수 없습니다."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr "이미 회원입니다"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr "이미 %1의 회원입니다."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "팀에 가입하지 못했습니다 - 다음에 다시 시도해 주세요."
-
-#: ../user/team_join_action.php:40
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "%1에 가입됨"
 
-#: ../user/team_join_action.php:41
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "%1에 가입되었습니다."
 
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "%1 가입"
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "팀에 가입하지 못했습니다 - 다음에 다시 시도해 주세요."
 
-#: ../user/team_join_form.php:33
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr "참고 사항:"
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
 msgstr "팀에 가입하면 팀 창설자가 여러분의 email 주소를 볼 수 있습니다."
 
-#: ../user/team_join_form.php:36
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "팀 가입은 여러분 계정의 크레딧에 어떤 영향도 끼치지 않습니다."
 
-#: ../user/team_join_form.php:43
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr "팀 가입"
 
-#: ../user/team_lookup.php:84
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr "검색 결과"
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr "'%1' 검색 결과"
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
 msgstr "여러분은 이 팀의 회원, 통계, 정보를 볼 수 있습니다."
 
-#: ../user/team_lookup.php:98
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
 msgstr "100개 이상의 팀이 검색 조건을 만족합니다. 상위 100개만 표시됩니다."
 
-#: ../user/team_lookup.php:104
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
 msgstr "검색 종료. %1 만약 여러분에게 맞는 팀을 찾지 못하셨다면 여러분은 스스로 %2팀을 만들 수도%3 있습니다."
 
-#: ../user/team_manage.php:26
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "%1 팀 관리하기"
 
-#: ../user/team_manage.php:29
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr "팀 정보 수정"
 
-#: ../user/team_manage.php:30
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "팀 이름, URL, 개요, 유형, 국가 변경"
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr "맴버 목록:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr "내용"
 
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "회원 이름과 이메일 주소 열람"
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "멤버 정보 보기"
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:40
 msgid "View change history:"
 msgstr "변경 내역 보기:"
 
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
 msgstr "이 팀의 회원 가입 및 탈퇴 현황 보기"
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr "창설자 요청에 응답합니다."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
 msgstr "당신이 %1에게 응답하지 않으면 %2가 이 팀의 창설자로 임명될 것입니다."
 
-#: ../user/team_manage.php:55
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr "이 팀에서 유령 회원 또는 원하지 않는 회원 추방하기"
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr "다른 멤버로 창설자 변경"
 
-#: ../user/team_manage.php:58
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr "팀 관리자 추가/삭제"
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
 msgstr "선택한 멤버에게 팀 관리자 권한 부여"
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr "팀 해체"
 
-#: ../user/team_manage.php:62
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr "팀 멤버가 없을 때만 허용됩니다"
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr "팀 게시판 생성 및 관리"
 
-#: ../user/team_manage.php:71
+#: html/user/team_manage.php:75
 msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"이 팀이 모든 BOINC 프로젝트에 생성되길 원하시면 (현재 및 미래에) 여러분은 %1BOINC 광역 팀으로 만들 수 있습니다%2."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "이 팀이 모든 BOINC 프로젝트에 생성되길 원하시면 (현재 및 미래에) 여러분은 %1BOINC 광역 팀으로 만들 수 있습니다%2."
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
 msgstr "팀 관리자들은 구글 %1boinc-team-founders%2 그룹에 가입하고 참여하길 권장합니다."
 
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr "BOINC 팀 관리자들을 위한 다른 자원은 써드 파티 사이트에서 이용 가능합니다. %1www.boincteams.com%2"
-
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr "빈 팀이 아니므로 해체할 수 없습니다"
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr "%1 팀이 해제되었씁니다"
 
-#: ../user/team_members.php:36
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr "제한 초과:  상위 회원 1000명만 표시됩니다."
 
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "%1 멤버"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 참여자는 %2팀%3 형식을 띄고 있습니다."
 
-#: ../user/team_quit_action.php:32
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "여러분은 오직 한 팀에만 소속될 수 있습니다. 언제든지 팀에 가입하거나 탈퇴할 수 있습니다."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "각 팀은 %1창설자%2가 있습니다:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "팀 이름과 개요를 수정합니다"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "팀 관리자 추가 혹은 제거"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "팀에서 멤버 추방하기"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "만약 팀 멤버가 없으면 팀을 해산할 수 있습니다"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "팀에 가입하려면 팀 홈페이지를 방문해서 %1팀 가입하기%2를 누르십시오."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "팀 찾기"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "모든 팀들"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 팀"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "새로운 팀 만들기"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "만약 여러분에게 맞는 팀을 찾지 못하셨다면 여러분은 %1팀을 만들 수도 있습니다%2."
+
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "팀을 탈퇴할 수 없습니다"
 
-#: ../user/team_quit_action.php:33
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "팀이 존재하지 않거나 여러분이 속해있지 않습니다."
 
-#: ../user/team_quit_form.php:31
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "탈퇴 %1"
 
-#: ../user/team_quit_form.php:32
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>팀을 탈퇴하기 전에 읽어주세요:</strong>\n"
-"         <ul>\n"
-"         <li>팀을 탈퇴하게 되면 나중에 재가입하거나 원하는 다른 팀으로 가입할 수 있습니다\n"
-"         <li>팀 탈퇴는 어떤 방식으로든 개인의 크레딧에 어떤 영향도 주지 않습니다.\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>팀을 탈퇴하기 전에 읽어주세요:</strong>\n         <ul>\n         <li>팀을 탈퇴하게 되면 나중에 재가입하거나 원하는 다른 팀으로 가입할 수 있습니다\n         <li>팀 탈퇴는 어떤 방식으로든 개인의 크레딧에 어떤 영향도 주지 않습니다.\n         </ul>"
 
-#: ../user/team_quit_form.php:40
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "팀 탈퇴"
 
-#: ../user/team_remove_inactive_action.php:31
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "%1에서 사용자 제명"
 
-#: ../user/team_remove_inactive_action.php:39
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1은 %2에 소속돼 있지 않습니다"
 
-#: ../user/team_remove_inactive_action.php:42
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1이 제거되었습니다"
 
-#: ../user/team_remove_inactive_form.php:32
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "%1에서 멤버 추방하기"
 
-#: ../user/team_remove_inactive_form.php:39
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr "제거할까요?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr "이름 (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr "어떤 멤버도 제명에 적합하지 않습니다."
 
-#: ../user/team_remove_inactive_form.php:68
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr "사용자 제거"
 
-#: ../user/team_search.php:68
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr "팀 이름"
 
-#: ../user/team_search.php:92
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "검증 여부"
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr "팀 검색 결과"
 
-#: ../user/team_search.php:94
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
 msgstr "조건에 맞는 팀을 찾을 수 없습니다. 다른 조건으로 검색해 보세요."
 
-#: ../user/team_search.php:96
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr "또는 새로운 %1팀을 만들 수 있습니다%2."
 
-#: ../user/team_search.php:100
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"아래 팀들은 하나 이상의 검색 조건과 일치합니다.\n"
-"            팀에 가입하려면 팀 페이지로 가기 위해 이름을 클릭하고\n"
-"               %1이 팀에 가입을 누르세요%2."
+msgstr "아래 팀들은 하나 이상의 검색 조건과 일치합니다.\n            팀에 가입하려면 팀 페이지로 가기 위해 이름을 클릭하고\n               %1이 팀에 가입을 누르세요%2."
 
-#: ../user/team_search.php:107
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr "검색 변경"
 
-#: ../user/team_search.php:181
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
 msgstr "여러분은 유사한 흥미를 가졌거나 같은 국가, 회사, 학교등의 다른 사람들과 팀을 이룰 수 있습니다."
 
-#: ../user/team_search.php:183
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
 msgstr "여러분에게 맞는 팀을 찾기 위해서 이 양식을 사용하세요."
 
-#: ../user/team_search.php:188
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "저는 지금 당장은 %1팀 가입에 관심없습니다%2."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "한계 도달 - 죄송합니다. 첫 %1 항목만 표시됩니다"
 
-#: ../user/top_hosts.php:82
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "최고 호스트"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr "최고 %1 팀"
 
-#: ../user/top_teams.php:108
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr "%1 팀이 없습니다"
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr "참여 시작"
 
-#: ../user/uotd.php:29
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr "오늘의 사용자가 선정되지 않았습니다."
 
-#: ../user/uotd.php:33
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr "오늘의 사용자 %1: %2"
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr "필터"
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr "사용자 이름의 첫글자"
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr "어떤"
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr "프로필도 검색?"
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr "또한"
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr "팀 검색?"
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr "정렬"
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr "가입 시각 내림차순"
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr "평균 크레딧 내림차순"
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr "총 크레딧 내림차순"
 
-#: ../user/user_search.php:100
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr "검색어는 최소한 3글자 이상이어야 합니다"
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr "사용자 검색 결과"
 
-#: ../user/user_search.php:140
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr "가입됨"
 
-#: ../user/user_search.php:148
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr "검색 조건과 일치하는 사용자가 없습니다."
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr "사용자를 찾을 수 없습니다!"
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr "계정 데이터<br/>%1<br/>시간:"
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr "팀:"
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr "팀 총 크레딧:"
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr "팀 평균 크레딧:"
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr "팀: 없음"
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr "BOINC email 주소 인증"
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
 msgstr "%1 계정의 email주소를 인증하실려면 다음 링크로 방문해주세요:"
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr "인증 email 발송"
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
 msgstr "%1에게 이메일이 전송되었습니다. 여러분 이메일 주소를 인증하기 위한 링크를 방문해 주세요."
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr "해당 사용자가 없습니다."
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
 msgstr "URL 데이터 오류 - 이메일 주소를 인증할 수 없습니다"
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
 msgstr "데이터베이스 업데이트가 실패했습니다. 나중에 다시 시도해주세요."
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
 msgstr "email 주소 인증"
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr "이 계정의 email 주소가 정상적으로 인증되었습니다."
 
-#: ../user/view_profile.php:36
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "이 사용자는 프로필이 없습니다"
 
-#: ../user/view_profile.php:54
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "프로필: %1"
 
-#: ../user/view_profile.php:63
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr "계정 데이터"
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"여러분은 여러분의 이메일 주소와 비밀번호를 사용해서 계정에 접근할 수도 있지만\n"
-"    한편으로 서명된 '계정 키'를 이용할 수도 있습니다.\n"
-"    여러분의 계정 키:"
+msgstr "여러분은 여러분의 이메일 주소와 비밀번호를 사용해서 계정에 접근할 수도 있지만\n    한편으로 서명된 '계정 키'를 이용할 수도 있습니다.\n    여러분의 계정 키:"
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr "이 키는 다음 프로젝트에 사용합니다:"
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr "웹에서 여러분의 계정으로 로그인하기"
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"BOINC 관리자를 사용하지 않고 여러분의 컴퓨터에 계정을 추가시킵니다.\n"
-"       그렇게 하려면 BOINC를 설치하고\n"
-"       %1 이름을 가진 파일을 BOINC 데이터\n"
-"       디렉토리에 생성 후 내용을 다음과 같이 맞춥니다:"
+msgstr "BOINC 관리자를 사용하지 않고 여러분의 컴퓨터에 계정을 추가시킵니다.\n       그렇게 하려면 BOINC를 설치하고\n       %1 이름을 가진 파일을 BOINC 데이터\n       디렉토리에 생성 후 내용을 다음과 같이 맞춥니다:"
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr "약한 계정 키"
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"'약한 계정 키'는 위에서 설명한 대로 여러분이 가진 계정을 컴퓨터에 추가할 수 있게\n"
-"    해줍니다. 그러나 어떠한 방법으로든 계정에 로그인하거나 정보를 변경할 수는 없습니다.\n"
-"    만약 신뢰할 수 없거나 안전하지 않은 컴퓨터에 계정을 추가하고 싶다면\n"
-"    약한 계정 키를 사용해 주시기 바랍니다.\n"
-"    여러분의 약한 계정 키:"
+msgstr "'약한 계정 키'는 위에서 설명한 대로 여러분이 가진 계정을 컴퓨터에 추가할 수 있게\n    해줍니다. 그러나 어떠한 방법으로든 계정에 로그인하거나 정보를 변경할 수는 없습니다.\n    만약 신뢰할 수 없거나 안전하지 않은 컴퓨터에 계정을 추가하고 싶다면\n    약한 계정 키를 사용해 주시기 바랍니다.\n    여러분의 약한 계정 키:"
 
-#: ../user/weak_auth.php:81
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
 msgstr "만약 비밀번호를 바꾸면, 약한 계정 키도 바뀝니다. 또한 기존에 있던 약한 계정 키로는 인증이 되지 않습니다."
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr "작업 유닛을 찾을 수 없습니다"
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr "작업 유닛 %1"
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "응용 프로그램"
+
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr "인증된 결과"
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr "획득 크레딧"
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "진행 중인 태스크"
+
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "완료될 때까지 비공개로 보류됨"
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
 msgstr "최소 정족수"
 
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr "초기 복제물"
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
 msgstr "최대 오류/전체/성공 태스크 수"
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr "오류"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr "검증"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr "보류 중"
 
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "첫 페이지"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:48
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr "생성 시각"
 
-#: ../project.sample/project.inc:79
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
 msgstr "자기 소개"
 
-#: ../project.sample/project.inc:83
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
 msgstr "당신에 대해 얘기해보세요. 당신이 어디에서 왔는지, 나이, 직업, 취미, 기타 당신에 관한 것들을 얘기할 수 있습니다."
 
-#: ../project.sample/project.inc:87
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr "%1에 대한 의견"
 
-#: ../project.sample/project.inc:91
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"%1에 대한 생각을 말해주세요<ol>\n"
-"    <li>왜 %1을 실행하나요?\n"
-"    <li>프로젝트를 어떻게 보고 계시나요?\n"
-"    <li>그 외 제안할 것은?\n"
-"    </ol>"
+msgstr "%1에 대한 생각을 말해주세요<ol>\n    <li>왜 %1을 실행하나요?\n    <li>프로젝트를 어떻게 보고 계시나요?\n    <li>그 외 제안할 것은?\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr "그래픽 색 표현"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "그래픽 표시용 최대 CPU % %10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr "선택된 응용 프로그램만 실행"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "특정 응용 프로그램이 있어야 태스크를 받을 수 있습니다. 특정 프로그램을 이용하시거나 해당 작업을 제외시키십시오."
+
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
 msgstr "선택된 응용 프로그램용 작업이 없을 경우에 다른 프로그램 실행을 허용하시겠습니까?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "가능하면 더 빠른 그래픽 미표시 응용 프로그램을 사용합니다"
+
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr "(모든 응용 프로그램)"
 
-#~ msgid "Error:"
-#~ msgstr "오류:"
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "제한 없음"
+
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "이 프로젝트에  최대 작업 수"
+
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "이 프로젝트에 할당된 최대 CPU 수"
+
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "최대 작업 수"
+
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "최대 CPU 수"
diff --git a/html/languages/translations/lt.po b/html/languages/translations/lt.po
deleted file mode 100644
index 2257bec..0000000
--- a/html/languages/translations/lt.po
+++ /dev/null
@@ -1,6929 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-04-25 11:11+0000\n"
-"Last-Translator: Rytis Slatkevičius <rytis.s at gmail.com>\n"
-"Language-Team: \n"
-"Language: lt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1398424289.0\n"
-
-# The name of this language in this language
-msgid "LANG_NAME_NATIVE"
-msgstr "Lietuvių"
-
-# The name of this language in an international language (English)
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Lithuanian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Pusjuodis tekstas: [b]tekstas[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Tekstas kursyvu: [i]tekstas[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Pabrauktas tekstas: [u]tekstas[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citata: [quote]tekstas[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Įprastiniai"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Tamsiai raudona"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Oranžinė"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Seniausi viršuje"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Naujausi viršuje"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Geriausiai įvertinti įrašai viršuje"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Naujausi įrašai viršuje"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Daugiausiai peržiūrų viršuje"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Daugiausiai įrašų viršuje"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Ieškoti žodžių forumų žinutėse"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Ieškoti forumuose"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Detali paieška"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Asmeninės žinutės"
-
-# ########################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Klausimai ir atsakymai"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Forumai"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 forumas"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Autorius"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Žinutė"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Siųsti žinutę"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Siųsti %1 asmeninę žinutę"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Prisijungė: %1"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Žinutės: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Kreditai: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Šios žinutės dar neperskaitėte"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Neskaityta"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Žinutė %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "paslėptas"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Paskelbta: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Redaguoti žinutę"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Pranešti apie įžeidžiančią"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Atsakyti"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Citata"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Paskelbta %1 (%2)"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Negalite skelbti ar vertinti žinučių iki %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Daugiau informacijos"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Nubausti vartotoją"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Kad galėtume sukurti naują temą %1 turite turėti tam tikrą kreditų kiekį. "
-"Tai reikalinga norint apsisaugoti nuo neteisėto sistemos išnaudojimo."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Negalite dabar sukurti daugiau temų. Šiek tiek palaukite prieš bandydami dar "
-"kartą. Šis laukimas naudojamas dėl apsaugos nuo neteisėto sistemos "
-"išnaudojimo."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Tema"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Žinutės"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Peržiūros"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Paskutinė žinutė"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Naujos žinutės temoje %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Naujos žinutės prenumeruotoje temoje"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Pažymėti visas temas kaip perskaitytas"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Pažymėti visas temas visuose forumuose kaip perskaitytas."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Nėra kompiuterio"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Neprieinamas"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Namai"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Darbas"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Mokykla"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Atnaujinti"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Kompiuterio informacija"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP adresas"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(toks pats paskutinius %1 kartų)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Išorinis IP adresas"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Rodyti IP adresą"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Domeno vardas"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 val."
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Savininkas"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonimas"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Sukurtas"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Iš viso kreditų"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Vidutiniai kreditai"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Tarpprojektiniai kreditai"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Centrinio procesoriaus tipas"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Procesorių skaičius"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Koprocesoriai"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Operacinė sistema"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC versija"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Atmintis"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Talpykla"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Iš viso vietos diske"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Laisvos vietos diske"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Išmatuota slankiojo kablelio operacijų sparta"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 milijonų op./s"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Išmatuota sveikųjų skaičių operacijų sparta"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Vidutinis išsiuntimo greitis"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Nežinomas"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Vidutinis atsiuntimo greitis"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Vidutinis atlikimo laikas"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 dienų"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Programos informacija"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Rodyti"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Užduotys"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Iš viso susisiekimų su serveriu"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Paskutinis susisiekimas su serveriu"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "Laiko dalis %, kai BOINC veikia"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Laiko dalis %, kai BOINC veikia ir kompiuteris prisijungęs prie interneto"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Laiko dalis %, kai BOINC veikia ir leidžiama vykdyti skaičiavimus"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Vidutinis procesoriaus efektyvumas"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Užduočių trukmės korekcijos faktorius"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Vieta"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Pašalinti šį kompiuterį"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Sujungti pasikartojančius šio kompiuterio įrašus"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Sujungti"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Kompiuterio informacija"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Eilė"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Vid. kreditai"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Vidutinis kreditas"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Procesorius"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "Vaizdo procesorius"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operacinė sistema"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(procesorių: %1)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Tarpprojektinė statistika"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Negalima sujungti kompiuterio %1 į %2 - jie nesuderinami"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Jungiamas kompiuteris %1 į kompiuterį %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Rodyti:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Visi kompiuteriai"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "Kompiuterio ID"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Vardas"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br />versija"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Gautosios žinutės"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Rašyti"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Siųsti asmeninę žinutę"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Peržiūra"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "žinutė nerasta"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Kam"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Vartotojo ID arba unikalūs vardai, atskirti kableliais"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Tema"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Siųsti žinutę"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Neleidžiama taip dažnai siųsti asmeninių žinučių. Šiek tiek palaukite prieš "
-"siųsdami daugiau žinučių."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "neskaityta"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Asmeninė žinutė"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesoriai"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Keisti nustatymus"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Bendrieji nustatymai"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Keisti \"%1\" nustatymus"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Pridėti nustatymus"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Atnaujinti nustatymus"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Duomenų bazės klaida"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Vartotojas pašalintas"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Keisti aprašymą"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Jūsų atsiliepimai apie šį aprašymą"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Rekomenduokite šį aprašymą kaip dienos vartotoją:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Man šis aprašymas %1patinka%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Praneškite administratoriams apie įžeidžiantį aprašymą:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Man šis aprašymas %1nepatinka%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "laukiamas"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "Vykdomas"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Klaidingas"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Klaida"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Neišsiųsta"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Užbaigta, laukiama patikros"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Užbaigta ir patikrinta"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Užbaigta, pažymėta kaip kladinga"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Užbaigta, nepavyko patikrinti"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Klaida atsisiunčiant"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Klaida skaičiuojant"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Klaida įkeliant"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Patikrinimo klaida"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Skaičiavimo klaida"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Skaičiavimo klaida"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Atlikta"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Užduočių rinkinio klaida - patikrinimas praleistas"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Per daug klaidų (gali būti problema)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Užduoties pavadinimas"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Rodyti pavadinimus"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Užduotis"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Užduočių rinkinys"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Kompiuteris"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Išsiųsta"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Atlikimo laikas<br />arba galutinis terminas"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "paaiškinti"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Būsena"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Užtrukta laiko<br />(sek.)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Procesoriaus laikas<br />(sek.)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Kreditas"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Programa"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Užduočių rinkinys"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Priimta"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Būsena serveryje"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Būsena kliente"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Užtrukta laiko"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Centrinio procesoriaus laikas"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Patikrinimo būsena"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Programos versija"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Būsena"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Užduoties pavadinimas"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Paieškos kriterijai (naudokite vieną ar daugiau)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Raktiniai žodžiai"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Rasti komandas su šiais žodžiais pavadinimuose ar aprašymuose"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Valstybė"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Komandos tipas"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Rodyti tik aktyvias komandas"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Ieškoti"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Prašytas jūsų, ir laikas, skirtas įkūrėjui atsakyti, jau praėjo."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Užbaigti įkūrėjo pakeitimą"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Prašytas jūsų"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "laikas, skirtas įkūrėjui atsakyti, yra %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Nėra"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Pateikti prašymą"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Atidėtas"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Komandos informacija"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Aprašymas"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Tinklapis"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Tarpprojektinė statistika"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tipas"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Forumas"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Temos"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Prisijungti prie komandos"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Pastaba: jei \"galima siųsti el. laiškus\" įjungta jūsų pasirinkimuose, "
-"prisijungus prie komandos jos įkūrėjas gaus priėjimą prie jūsų el. pašto "
-"adreso."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Nauji dalyviai nepriimami"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Laukiamas įkūrėjo pakeitimas"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Atsakyti per %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Komandos įkūrėjo pakeitimas"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Dalyviai"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Įkūrėjas"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administratoriai"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Nauji nariai per paskutinę dieną"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Iš viso narių"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "peržiūrėti"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktyvūs nariai"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Nariai, turintys kreditų"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administratorius"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Kiti %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Tokios komandos nėra."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Šiam veiksmui atlikti turite būti įkūrėju."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Šiai operacijai atlikti turite būti komandos administratoriumi."
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Pastaba%2: jei įkursite komandą, jūsų nustatymai (resursų padalijimas, "
-"vaizdo nustatymai) bus prieinami viešai."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Komandos pavadinimas, tekstinė versija"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Nenaudokite HTML žymių."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Komandos pavadinimas, HTML versija"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Galite naudoti %1kai kurias HTML žymes%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Jei nežinote HTML, palikite šį lauką tuščią."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Komandos tinklapio adresas"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "be \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Ši nuoroda bus rodoma komandos puslapyje šiame tinklapyje."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Komandos aprašymas"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-# ########################################
-# Public user page (show_user.php)
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projektai, kuriuose dalyvaujate"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projektai, kuriuose dalyvauja %1"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projektas"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Spustelėkite dalyvio puslapiui"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Nuo"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Skaičiavimai ir kreditai"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Abonementui priskirti kompiuteriai"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Peržiūrėti"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Tarpprojektinis ID"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Tarpprojektinė statistika"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Komanda"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Tarpprojektinis"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Sertifikatas"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistika mobiliajame telefone"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Abonemento informacija"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "El. pašto adresas"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "Tinklapis"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Pašto kodas"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 narys nuo"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Pakeisti"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "el. pašto adresą"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "slaptažodį"
-
-# ########################################
-# "Your account" page (home.php)
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "kitą abonemento informaciją"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Vartotojo ID"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Naudojama bendruomenės funkcijose"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Abonemento raktas"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Nustatymai"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Kaip ir kada BOINC naudoja jūsų kompiuterį"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Skaičiavimų nustatymai"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Forumai ir asmeninės žinutės"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Bendruomenės nustatymai"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Šio projekto nustatymai"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 nustatymai"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Bendruomenė"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Ištrinti"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Sukurti"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Aprašymas"
-
-# ########################################
-# Forum
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 žinučių"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Pranešimai"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Palikti komandą"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administruoti"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(laukiamas įkūrėjo pakeitimas)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Komandos narys"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "raskite komandą"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Įkūrėjas, tačiau ne narys"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Rasti draugus"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Draugai"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Kompiuteriai"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Suteikęs paramą"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Susisiekti"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Šis asmuo yra draugas"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Nutraukti draugystę"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Laukiama patvirtinimo"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Pridėti draugą"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "atsijungti"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "Prisijungti"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Prisijungti"
-
-# ########################################
-# "Your account" page (home.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Sukurti abonementą"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Serverio būsenos puslapis"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Naudokite BBCode žymes teksto formatavimui"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Likite prisijungęs šiame kompiuteryje"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identifikuoja jus mūsų internetinėje svetainėje. Galite naudoti savo tikrą "
-"vardą ar slapyvardį."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Pasirinkite valstybę, kuriai norite atstovauti."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Pašto kodas"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Nebūtinas"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Privalote pateikti abonemento vardą"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Programos"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 šiuo metu naudoja šias programas. Kai dalyvaujate %1, užduotys vienai ar "
-"daugiau šių programų priskiriamos jūsų kompiuteriui, ir naujausia programos "
-"versija bus parsiųsta į jūsų kompiuterį. Tai vyksta automatiškai; jums "
-"nereikės daryti nieko."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versija"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Įdiegimo laikas"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Pakeltas tekstas"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Cituotas tekstas"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Jūsų abonementas"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Komandos"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Dienos dalyvis"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Būsena serveryje"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Aprašymai"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# ########################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Geriausi dalyviai"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-#, fuzzy
-msgid "Top computers"
-msgstr "Kompiuteriai"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Geriausios komandos"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-# ########################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Perskaitykite mūsų taisykles"
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Nepavyksta sukurti abonemento"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Privalote pateikti pakvietimo kodą, kad sukurtumėte abonementą."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Pateiktas pakvietimo kodas neteisingas."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Neteisingas el. pašto adresas: turi būti galiojantis elektroninio pašto "
-"adresas formatu \"vardas at domenas\""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Nepavyksta sukurti abonemento"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Šis abonementas priklausys %1 komandai ir turės komandos įkurėjo projekto "
-"nustatymus."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Pakvietimo kodas"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Reikia pateikti teisingą pakvietimo kodą, kad sukurtumėte abonementą."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "El. pašto adresas"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-"Turi būti galiojantis elektroninio pašto adresas formoje \"vardas at domenas\"."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Slaptažodis"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Turi bti bent %1 simboli ilgio"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Patvirtinkite slaptažodį"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Sukurti abonementą"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Paveikslėlis"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Jūsų aprašymo paveikslėlis rodomas kairėje."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Kad jį pakeistumėte, spustėlėkite mygtuką \"ieškoti\" ir pasirinkite JPEG arba "
-"PNG failą (%1 arba mažesnę)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Kad jį pašalintumėte, pažymėkite šį laukelį:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nepavyko ištrinti abonemento"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Abonementas ištrintas"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Jūsų abonementas ištrintas."
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Patvirtinkite abonemento trynimą"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Pašalinti šį abonementą"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Nešalinti šio abonemento"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Šalinimo patvirtinimas"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Aprašymas ištrintas."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Ištrinti mano aprašymą"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Netrinti mano aprašymo"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 paramų"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anoniminė parama"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Pakeisti abonemento pašto adresą"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Naujas el. pašto adresas \"%1\" neteisingas."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Neteisingas slaptažodis."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-#, fuzzy
-msgid "Change the email address of your account"
-msgstr "Naujas el. pašto adresas"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Naujas el. pašto adresas"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-"Turi būti galiojantis elektroninio pašto adresas formatu \"vardas at domenas\""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Patvirtinkite slaptažodį"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "Keisti nustatymus"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "Vartotojas nerastas"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Forumas"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "Nenaudokite HTML žymių."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Forumai"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Temos"
-
-# ########################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Žinutės"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Forumas"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Forumai ir asmeninės žinutės"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Filtruoti vartotoją"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "Atnaujinti nustatymus"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Silpnas abonemento raktas"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Patvirtinkite slaptažodį"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Jūsų žinutė išsiųsta."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "jūsų abonemento raktas"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-#, fuzzy
-msgid "You must supply a name for your account."
-msgstr "Privalote pateikti pakvietimo kodą, kad sukurtumėte abonementą."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Keisti abonemento informaciją"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Būsenos serveryje"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "Vykdomas"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Užduotis išsiųsta, laukiama užbaigimo."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Patikrinimo klaida"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Būsenos kliente"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Nežinomas"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "El. pašto adresas"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Siųsti žinutę"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Laukiamas kreditas"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your name:"
-msgstr "Rodyti pavadinimus"
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "el. pašto adresą"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Draugai"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "Naujas el. pašto adresas"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Siuntėjas"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "Vartotojas pašalintas"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Savininkas"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Versija"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-#, fuzzy
-msgid "Forum"
-msgstr "Forumų pradžios puslapis"
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Taisyti žinutę"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Pavadinimas"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Pridėti mano parašą"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "%1 forumas"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Tema"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Pridėti naują žinutę į šią temą"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "neskaityta"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "neskaityta"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Neturite asmeninių žinučių."
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "Blokuoti vartotoją"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Tema"
-
-# ########################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Klausimai ir atsakymai"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Versija"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 forumai"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Jei turite klausimų ar problemų, naudokite %1klausimų ir atsakymų%2 forumų "
-"dalį."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Pranešti apie naujas žinutes"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Paskutinė žinutė"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "Nėra kompiuterio"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Rašyti į temą"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "tokio vartotojo nėra"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "UTC %1 val."
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 dienų"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "%1 žinučių"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "Neišsiųsta"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "Vartotojas pašalintas"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Dabartinė versija"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Komandos aprašymas"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Sukurti naują temą"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Sukurti naują temą"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Rašyti į temą"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Rašyti į temą"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Žinutė"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Pridėti mano parašą"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Report Registered"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Paskutinė žinutė"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Paskutinė žinutė"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-#, fuzzy
-msgid "Report not registered"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Nebūtinas"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Paieška forumuose"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Ieškoti"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 žinučių"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Paieškos forume rezultatai"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Nėra aprašymų, atitinkančių jūsų užklausą."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Nėra aprašymų, atitinkančių jūsų užklausą."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Komandos aprašymas"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Nebepranešti apie naujas žinutes"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Pridėti naują žinutę į šią temą"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Nebepranešti apie naujas žinutes"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Pranešti apie naujas žinutes"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Žinutės"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Pridėti draugą"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Draugavimo užklausa išsiųsta"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Nutraukti draugystę?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Pamiršote prisijungimo informaciją?"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-"2) Jei pamiršote elektroninio pašto adresą arba į jį nebegalite gauti "
-"elektroninių laiškų:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Sveiki prisijungę prie %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Peržiūrėkite ir keiskite abonemento nustatymus naudodamiesi nuorodomis "
-"žemiau."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Jei to dar nepadarėte, %1parsisiųskite BOINC programinę įrangą%2."
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Procesorių skaičius"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Vidutinis išsiuntimo greitis"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Programos informacija kompiuteriui %1"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "Sujungti pasikartojančius šio kompiuterio įrašus"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Pašalinti šį kompiuterį"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "Tikrai ištrinti?"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Kompiuteriai"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "Rodyti pavadinimus"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "pavadinimas"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "sukurtas"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Kompiuteris"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Nėra kompiuterio"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Sujungti"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Atlikta"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Kompiuteriai, priskirti %1"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Kompiuterio informacija"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Kompiuteriai"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Nenaudokite HTML žymių."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Sukurtas"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Projektą %1 vykdykite tik su tais kompiuteriais, kurių savininkas esate pats "
-"arba esate gavęs savininko leidimą. Kai kurios kompanijos ar mokyklos "
-"laikosi politikos, kuri draudžia naudoti kompiuterius projektams kaip %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Kaip %1 naudos jūsų kompiuterį"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Kai jūsų kompiuteryje bus vykdomas %1 projektas, jis naudos dalį kompiuterio "
-"procesoriaus galios, disko vietos ir interneto ryšio. Jūs galite "
-"kontroliuoti kiek savo resursų skirsite %1 projektui ir kada juos galima "
-"naudoti."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Darbas, kuri atliks Jūsų kompiuteris, padės įgyvendinti %1 projekto tikslus, "
-"kurie surašyti šioje interneto svetainėje. Projekto programos laikui bėgant "
-"gali keistis."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Privatumo politika"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Jūsų abonementas %1 projekte yra nustatomas pagal jūsų pasirinktą vardą. Šis "
-"vardas gali būti rodomas %1 projekto interneto svetainėje kartu su "
-"apibendrintais duomenimis apie kompiuterio atliktą darbą %1 projektui. Jei "
-"norite likti anonimiškas - pasirinkite vardą, kuris neatskleistų jūsų "
-"tapatybės."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Jei dalyvaujate %1 projekte, informacija apie jūsų kompiuterį (tokia kaip "
-"procesoriaus tipas, atminties kiekis ir kt.) bus įrašyta %1 projekto duomenų "
-"bazėje ir pagal ją bus sprendžiama, kokį darbą skirti jūsų kompiuteriui. Ši "
-"informacija taip pat bus rodoma %1 projekto interneto svetainėje. Jokia "
-"informacija, kuri galėtų atskleisti jūsų kompiuterio buvimo vietą (domeno "
-"pavadinima ar tinklo adresą) nebus rodoma."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Norint dalyvauti %1 projekte, jums reikėtų turėti elektroninio pašto dėžutę. "
-"Jūsų elektroninio pašto adresas nebus rodomas %1 projekto interneto "
-"svetainėje ar perduotas kitoms organizacijoms.%1 projektas gali jums "
-"atsiųsti periodinius naujienių biuletenius, tačiau jų galima atsisakyti bet "
-"kuriuo metu."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Ar saugu vykdyti %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Kiekvieną kartą, kai siunčiatės programą per internetą, gali būti kad: "
-"programa turi pavojingų klaidų ar serveris gali būti \"nulaužtas\". %1 "
-"projektas deda visas pastangas sumažinti šią riziką. Mes atidžiai išbandėme "
-"savo programas. Mūsų serveriai yra saugomi ugniasienių ir nustatyti "
-"aukščiausiam saugumo lygiui. Visos vykdomosios bylos yra pasirašytos "
-"skaitmeniniu parašu kompiuteryje, kuris nėra prijungtas prie interneto."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"%1 projekto vykdomos programos gali perkaitinti kai kuriuos kompiuterius. "
-"Jei taip atsitinka, nustokite vykdyti %1 projektą arba naudokite %"
-"2papildomas programas%3, kurios riboja kompiuterio procesoriaus naudojimą."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 buvo sukurtas %2. BOINC buvo sukurtas Kalifornijos Universitete."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Atsakomybė"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 projektas ir %2 neprisiima atsakomybės už žalą padarytą Jūsų "
-"kompiuteriui, duomenų praradinimą ar kokį kitą įvykį ar sąlygą, kuri galėjo "
-"kilti dėl dalyvavimo %1 projekte."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Kiti BOINC projektai"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Kiti projektai, kaip ir %1, naudoja BOINC. Jūs galite nuspręsti prisijungti "
-"prie vieno ar kelių projektų. Tokiu atveju, Jūsų kompiuteris atliks naudingą "
-"darbą kai %1 projektas užduočių neturės."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Šie projektai nėra susiję su %1, ir dėl to mes negalime garantuoti už jų "
-"projekto saugumą ar tyrimo tikslus. Jūs patys sprendžiate ar prisijungti "
-"prie kitų projektų."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "El. pašto adresas:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "pamiršote elektroninio pašto adresą?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Slaptažodis:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "pamiršote slaptažodį?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "arba %1užsiregistruokite%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "Jungiamas kompiuteris %1 į kompiuterį %2"
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Laukiamas kreditas"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Užduočių rinkinys"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "suteiktas kreditas"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Laukiamas kreditas"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Vartotojas nerastas"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Jūsų žinutė išsiųsta."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Neturite asmeninių žinučių."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Siuntėjas ir data"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Žinutė nerasta"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Ištrinti pasirinktas žinutes"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Ištrinti pasirinktas žinutes"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Siuntėjas"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Reikia užpildyti visus laukus, kad galėtumėte išsiųsti asmeninę žinutę"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Nepavyko rasti vartotojo su ID %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Nepavyko rasti vartotojo su vardu %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 nėra unikalus vartotojo vardas; turėsite naudoti vartotojo ID"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Vartotojas %1 (ID: %2) nepriima asmeninių žinučių iš jūsų."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Vartotojas nerastas"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Tikrai blokuoti %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Ar tikrai norite uždrausti vartotojui %1 siųsti jums asmenines žinutes?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Atminkite, kad galite blokuoti ribotą vartotojų skaičių."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Kai vartotojas bus užblokuotas, blokavimą galėsite atšaukti diskusijų lentos "
-"nustatymų puslapyje."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Ne, atšaukti"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "tokio vartotojo nėra"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Vartotojas %1 užblokuotas"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Vartotojui %1 uždrausta jums siųsti asmenines žinutes."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Kad atblokuotumėte, apsilankykite %1diskusijų lentos nustatymuose%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Nežinomas"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Keisti nustatymus"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Aprašymai%2 leidžia pasidalinti nuomonėmis su %3 bendruomene."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Apžvelkite savo kolegas dalyvius ir pateikite savo nuomonę kitiems."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Jei to dar nepadarėte, %1sukurkite savo aprašymą%2!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Dienos dalyvis"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Dalyvių aprašymų naršymas"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Peržiūrėti %1dalyvių paveikslėlių galeriją%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Peržiūrėti aprašymus %1pagal valstybę%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Peržiūrėti aprašymus %1atsitiktinai%2, %3atsitiktinai su paveikslėliais%2 "
-"arba %4atsitiktinai be paveikslėlių%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Abėcėlinis aprašymų sąrašas:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Ieškoti aprašymuose"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Nėra aprašymų"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Nėra aprašymų, atitinkančių jūsų užklausą."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-#, fuzzy
-msgid "Profiles containing '%1'"
-msgstr "Pavadinimai, turintys '%1'"
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Užduoties pavadinimas"
-
-#: ../user/profile_search_action.php:41
-#, fuzzy
-msgid "Joined project"
-msgstr "Prisijungė"
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Vidutinis kreditas"
-
-#: ../user/profile_search_action.php:54
-#, fuzzy
-msgid "No profiles found containing '%1'"
-msgstr "Pavadinimai, turintys '%1'"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "Projekto būsena"
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Užduočių rinkiniai, laukiantys patikrinimo"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Užduočių rinkiniai, laukiantys apdorojimo"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Užduočių rinkiniai, laukiantys failų trynimo"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Užduotys, laukiančios failų trynimo"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "programa"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "neišsiųsta"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "vykdoma"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Kompiuteris"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Kad prisijungtumėte prie komandos, pereikite į komandos puslapį ir spauskite "
-"%1prisijungti prie komandos%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Raskite komandą"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Sukurti naują komandą"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Tokios komandos nėra"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "tokios komandos nėra"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Sukurti komandą"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "%1 forumas"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Komandos informacija"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Prisijungė"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Prisijungė"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Narių sąrašas"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Komanda %1 ištrinta"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Palikti komandą"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Komandos pavadinimas"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Komandų paieškos rezultatai"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Geriausi kompiuteriai"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Geriausios %1 komandos"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Dalyvis nuo"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Mažėjantis vidutinis kreditas"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Mažėjantis bendras kreditų skaičius"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Dalyvių paieškos rezultatai"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Prisijungė"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Dalyvis nerastas!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Komanda:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Tokio vartotojo nėra."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Silpnas abonemento raktas"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Užduočių rinkinys %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "suteiktas kreditas"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Laukiama"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Pagrindinis puslapis"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
-
-#~ msgid "Error:"
-#~ msgstr "Klaida:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Abonementų kūrimas yra išjungtas"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Abonementų kūrimas projekte šiuo metu yra išjungtas.\n"
-#~ "Pabandykite dar kartą vėliau."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#~ msgid "No such task"
-#~ msgstr "Tokios užduoties nėra"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Suteikia %1ribotą priėjimą%2 prie jūsų abonemento"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Nenaudokite šios formos. Tiesiog paleiskite BOINC, pasirinkite \"Prisijungti "
-#~ "prie projekto\" ir įveskite savo elektroninio pašto adresą bei slaptažodį."
-
-# ########################################
-# "Weak account key" page (weak_auth.php)
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Jūsų paprastas abonemento raktas leidžia prijungti kompiuterius prie šio "
-#~ "projekto nepaliekant galimybės prisijungti prie jūsų abonemento ar jį kaip "
-#~ "nors pakeisti."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Šis mechanizmas veikia tik su projektais, kurie atnaujino serverio "
-#~ "programinę įrangą 2007 gruodžio 7 ar vėliau."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Jūsų paprastas abonemento raktas šiam projektui yra:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Kad naudotumėte paprastą abonemento raktą tam tikrame kompiuteryje, "
-#~ "suraskite ar sukurkite abonemento rinkmeną šiam projektui. Šios rinkmenos "
-#~ "vardas turi formą <b>account_PROJEKTO_ADRESAS.xml</b>. Abonemento rinkmena %"
-#~ "1 yra <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Sukurkite šią rinkmeną, jei reikia. Jos turinį pakeiskite į:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Jūsų paprastas abonemento raktas sukuriamas pagal jūsų slaptažodį. Jei "
-#~ "pakeičiate savo slaptažodį, jūsų paprastas abonemento raktas pasikeičia, ir "
-#~ "jūsų senas paprastas abonemento raktas tampa nebegaliojančiu."
-
-#~ msgid "Account key"
-#~ msgstr "Abonemento raktas"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Suteikia pilną priėjimą prie jūsų abonemento"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr ""
-#~ "KLAIDA: %1 neegzistuoja! Nepavyksta sukurti pasirinkimo laukelio.<br>"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC kliento versija"
-
-#~ msgid "%1/day"
-#~ msgstr "%1 per dieną"
-
-#~ msgid "Last %1"
-#~ msgstr "Buvę %1"
-
-# #########################################
-# Language: Lithuanian
-# FileID  : $Id: lt.po 15598 2008-07-12 16:05:25Z Rytis $
-# Author  : Rytis Slatkevičius
-# Email   : rytis.s at gmail.com
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Resursų padalijimas ir grafika"
-
-#~ msgid "Provides"
-#~ msgstr "Suteikia"
-
-#~ msgid "limited access"
-#~ msgstr "ribotą priėjimą"
-
-# ########################################
-# "Your account" page (home.php)
-#~ msgid "to your account"
-#~ msgstr "prie jūsų abonemento"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Pažymėti kaip neskaitytus"
-
-#~ msgid "With selected"
-#~ msgstr "Su pasirinktais"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Ar tikrai norite ištrinti žinutę, kurios tema "%1" (išsiuntė %2 "
-#~ "%3)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Taip, ištrinti"
-
-#~ msgid "No such message."
-#~ msgstr "Žinutė nerasta."
-
-#~ msgid "Posts containing '%1'"
-#~ msgstr "Žinutės, turinčios '%1'"
-
-#~ msgid "No titles containing '%1' could be found."
-#~ msgstr "Nerasta pavadinimų, turinčių \"%1\"."
-
-#~ msgid "No posts containing '%1' could be found."
-#~ msgstr "Nerasta įrašų, turinčių \"%1\"."
-
-#~ msgid "administrative functions"
-#~ msgstr "valdymo funkcijos"
-
-#~ msgid "Message board preferences"
-#~ msgstr "Diskusijų lentos nustatymai"
-
-#~ msgid "Account number"
-#~ msgstr "Abonemento numeris"
-
-#~ msgid "Used in URLs"
-#~ msgstr "Naudojamas internetiniuose adresuose"
diff --git a/html/languages/translations/nl.po b/html/languages/translations/nl.po
index 7ae8384..efffd32 100644
--- a/html/languages/translations/nl.po
+++ b/html/languages/translations/nl.po
@@ -1,26 +1,28 @@
 # BOINC web translation
 # Copyright (C) 2008 University of California
+# 
 # This file is distributed under the same license as BOINC.
+# 
 # FileID  : $Id$
+# 
+# Translators:
+# D c <onlinegamesdavey at gmail.com>, 2015
+# Jord <elst93 at gmail.com>, 2015
+# Rene Oskam, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-01-17 18:18+0000\n"
-"Last-Translator: Rene <oskamjr at ziggo.nl>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nl\n"
+"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
+"Last-Translator: Jord <elst93 at gmail.com>\n"
+"Language-Team: Dutch (http://www.transifex.com/boinc/boinc/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1389982727.0\n"
 
 msgid "LANG_NAME_NATIVE"
 msgstr "Nederlands"
@@ -28,6 +30,97 @@ msgstr "Nederlands"
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Dutch"
 
+#: ../inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Uitnodigingscode"
+
+#: ../inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Er is een geldige uitnodigingscode vereist om een account aan te maken."
+
+#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
+#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
+#: ../user/account_finish.php:41 ../user/team_admins.php:64
+#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
+#: ../user/top_users.php:49 ../user/user_search.php:124
+msgid "Name"
+msgstr "Naam"
+
+#: ../inc/account.inc:44 ../user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Identificatie op deze pagina. Gebruik je echte naam of een nickname."
+
+#: ../inc/account.inc:48
+msgid "Email Address"
+msgstr "Email Adres"
+
+#: ../inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Moet een geldig email adres zijn in de vorm 'naam at domein'."
+
+#: ../inc/account.inc:57 ../user/edit_email_form.php:47
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: ../inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Moet minstens %1 karakters lang zijn"
+
+#: ../inc/account.inc:61
+msgid "Confirm password"
+msgstr "Bevestig wachtwoord"
+
+#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
+#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
+#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
+#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
+#: ../user/team_email_list.php:73 ../user/team_search.php:85
+#: ../user/top_users.php:63 ../user/user_search.php:53
+#: ../user/user_search.php:125
+msgid "Country"
+msgstr "Land"
+
+#: ../inc/account.inc:63 ../user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Welk land wil je vertegenwoordigen, indien van toepassing."
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Postcode"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Optional"
+msgstr "Optioneel"
+
+#: ../inc/account.inc:86
+msgid "Create account"
+msgstr "Account maken"
+
+#: ../inc/account.inc:101
+msgid "Email address:"
+msgstr "E-mail adres:"
+
+#: ../inc/account.inc:103
+msgid "forgot email address?"
+msgstr "e-mail adres vergeten?"
+
+#: ../inc/account.inc:106
+msgid "Password:"
+msgstr "Wachtwoord:"
+
+#: ../inc/account.inc:106
+msgid "forgot password?"
+msgstr "wachtwoord vergeten?"
+
+#: ../inc/account.inc:109
+msgid "Stay logged in"
+msgstr "Aangemeld blijven"
+
+#. kludge
+#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
+msgid "Log in"
+msgstr "Inloggen"
+
 #: ../inc/bbcode_html.inc:11
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "Vetgedrukte tekst: [b]tekst[/b]  (alt+b)"
@@ -41,329 +134,363 @@ msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "Onderlijnde tekst: [u]tekst[/u]  (alt+u)"
 
 #: ../inc/bbcode_html.inc:20
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Doorgestreepte tekst: [s]tekst[/s]  (alt+k)"
+
+#: ../inc/bbcode_html.inc:23
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "Citaat: [quote]tekst[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: ../inc/bbcode_html.inc:26
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "Code weergeven: [code]code[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: ../inc/bbcode_html.inc:29
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "Lijst: [list]tekst[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
+#: ../inc/bbcode_html.inc:32
 msgid "Ordered list: [list=]text[/list]  (alt+o)"
 msgstr "Geordende lijst: [list=]tekst[/list]  (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: ../inc/bbcode_html.inc:35
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "Afbeelding invoegen: [img]http://url_van_afbeelding[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: ../inc/bbcode_html.inc:38
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"URL invoegen: [url]http://url[/url] or [url=http://url]URL tekst[/url]  "
-"(alt+w)"
+msgstr "URL invoegen: [url]http://url[/url] or [url=http://url]URL tekst[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: ../inc/bbcode_html.inc:45
 msgid "Font color"
 msgstr "Teken kleur"
 
-#: ../inc/bbcode_html.inc:43
+#: ../inc/bbcode_html.inc:46
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Teken kleur: [color=red]tekst[/color]  Tip: color=#FF0000 mag ook worden "
-"gebruikt"
+msgstr "Teken kleur: [color=red]tekst[/color]  Tip: color=#FF0000 mag ook worden gebruikt"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
+#: ../inc/prefs_util.inc:546
 msgid "Default"
 msgstr "Standaard"
 
-#: ../inc/bbcode_html.inc:45
+#: ../inc/bbcode_html.inc:48
 msgid "Dark Red"
 msgstr "Donker Rood"
 
-#: ../inc/bbcode_html.inc:46
+#: ../inc/bbcode_html.inc:49
 msgid "Red"
 msgstr "Rood"
 
-#: ../inc/bbcode_html.inc:47
+#: ../inc/bbcode_html.inc:50
 msgid "Orange"
 msgstr "Oranje"
 
-#: ../inc/bbcode_html.inc:48
+#: ../inc/bbcode_html.inc:51
 msgid "Brown"
 msgstr "Bruin"
 
-#: ../inc/bbcode_html.inc:49
+#: ../inc/bbcode_html.inc:52
 msgid "Yellow"
 msgstr "Geel"
 
-#: ../inc/bbcode_html.inc:50
+#: ../inc/bbcode_html.inc:53
 msgid "Green"
 msgstr "Groen"
 
-#: ../inc/bbcode_html.inc:51
+#: ../inc/bbcode_html.inc:54
 msgid "Olive"
 msgstr "Olijf"
 
-#: ../inc/bbcode_html.inc:52
+#: ../inc/bbcode_html.inc:55
 msgid "Cyan"
 msgstr "Cyaan"
 
-#: ../inc/bbcode_html.inc:53
+#: ../inc/bbcode_html.inc:56
 msgid "Blue"
 msgstr "Blauw"
 
-#: ../inc/bbcode_html.inc:54
+#: ../inc/bbcode_html.inc:57
 msgid "Dark Blue"
 msgstr "Donker Blauw"
 
-#: ../inc/bbcode_html.inc:55
+#: ../inc/bbcode_html.inc:58
 msgid "Indigo"
 msgstr "Indigo"
 
-#: ../inc/bbcode_html.inc:56
+#: ../inc/bbcode_html.inc:59
 msgid "Violet"
 msgstr "Violet"
 
-#: ../inc/bbcode_html.inc:57
+#: ../inc/bbcode_html.inc:60
 msgid "Font size"
 msgstr "Teken grootte"
 
-#: ../inc/bbcode_html.inc:58
+#: ../inc/bbcode_html.inc:61
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "Teken grootte: [size=x-klein]kleine tekst[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: ../inc/bbcode_html.inc:63
 msgid "Small"
 msgstr "Klein"
 
-#: ../inc/bbcode_html.inc:61
+#: ../inc/bbcode_html.inc:64
 msgid "Normal"
 msgstr "Normaal"
 
-#: ../inc/bbcode_html.inc:62
+#: ../inc/bbcode_html.inc:65
 msgid "Large"
 msgstr "Groot"
 
-#: ../inc/bbcode_html.inc:65
+#: ../inc/bbcode_html.inc:68
 msgid "Close all open bbCode tags"
 msgstr "Sluit alle geopende bbCode tags"
 
-#: ../inc/bbcode_html.inc:65
+#: ../inc/bbcode_html.inc:68
 msgid "Close Tags"
 msgstr "Sluit Tags"
 
-#: ../inc/forum.inc:37
+#. names for the above
+#: ../inc/forum.inc:38
 msgid "Oldest first"
 msgstr "Oudste eerst"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: ../inc/forum.inc:39 ../inc/forum.inc:45
 msgid "Newest first"
 msgstr "Nieuwste eerst"
 
-#: ../inc/forum.inc:39
+#: ../inc/forum.inc:40
 msgid "Highest rated posts first"
 msgstr "Best scorende berichten eerst"
 
-#: ../inc/forum.inc:41
+#: ../inc/forum.inc:42
 msgid "Newest post first"
 msgstr "Nieuwste bericht eerst"
 
-#: ../inc/forum.inc:42
+#: ../inc/forum.inc:43
 msgid "Most views first"
 msgstr "Meest bekeken eerst"
 
-#: ../inc/forum.inc:43
+#: ../inc/forum.inc:44
 msgid "Most posts first"
 msgstr "Meeste berichten eerst"
 
-#: ../inc/forum.inc:125
+#: ../inc/forum.inc:104
+msgid "Volunteer moderator"
+msgstr "Vrijwillige moderator"
+
+#: ../inc/forum.inc:105
+msgid "Project administrator"
+msgstr "Project administrator"
+
+#: ../inc/forum.inc:106
+msgid "Project developer"
+msgstr "Project ontwikkelaar"
+
+#: ../inc/forum.inc:107
+msgid "Project tester"
+msgstr "Project tester"
+
+#: ../inc/forum.inc:108
+msgid "Volunteer developer"
+msgstr "Vrijwillige ontwikkelaar"
+
+#: ../inc/forum.inc:109
+msgid "Volunteer tester"
+msgstr "Vrijwillige tester"
+
+#: ../inc/forum.inc:110
+msgid "Project scientist"
+msgstr "Project wetenschapper"
+
+#: ../inc/forum.inc:111
+msgid "Help desk expert"
+msgstr "Helpdesk expert"
+
+#. Search
+#: ../inc/forum.inc:129
 msgid "Search for words in forum messages"
 msgstr "Zoek naar woorden in forum berichten"
 
-#: ../inc/forum.inc:125
+#: ../inc/forum.inc:129
 msgid "Search forums"
 msgstr "Zoek in het forum"
 
-#: ../inc/forum.inc:126
+#: ../inc/forum.inc:130
 msgid "Advanced search"
 msgstr "Uitgebreid zoeken"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
+#: ../user/pm.php:138
 msgid "Private messages"
 msgstr "Privé berichten"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: ../inc/forum.inc:155 ../user/forum_forum.php:74
+#: ../user/sample_index.php:128
 msgid "Questions and Answers"
 msgstr "Vraag en Antwoord"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
+#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
+#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
+#: ../project.sample/project.inc:70
 msgid "Message boards"
 msgstr "Forum"
 
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: ../inc/forum.inc:191 ../inc/forum.inc:199
 msgid "%1 message board"
 msgstr "%1 forum"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: ../inc/forum.inc:249 ../inc/result.inc:717
 msgid "Previous"
 msgstr "Vorige"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: ../inc/forum.inc:287 ../inc/result.inc:726
 msgid "Next"
 msgstr "Volgende"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
 msgid "Author"
 msgstr "Auteur"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
+#: ../user/forum_edit.php:133 ../user/forum_post.php:120
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+#: ../user/pm.php:90 ../user/pm.php:149
 msgid "Message"
 msgstr "Bericht"
 
-#: ../inc/forum.inc:580
+#: ../inc/forum.inc:586
 msgid "Send message"
 msgstr "Verstuur bericht"
 
-#: ../inc/forum.inc:580
+#: ../inc/forum.inc:586
 msgid "Send %1 a private message"
 msgstr "Verstuur %1 een privé bericht"
 
-#: ../inc/forum.inc:581
+#: ../inc/forum.inc:587
 msgid "Joined: %1"
 msgstr "Lid geworden: %1"
 
-#: ../inc/forum.inc:590
+#: ../inc/forum.inc:596
 msgid "Posts: %1"
 msgstr "Reacties: %1"
 
-#: ../inc/forum.inc:596
+#: ../inc/forum.inc:602
 msgid "Credit: %1"
 msgstr "Punten: %1"
 
-#: ../inc/forum.inc:597
+#: ../inc/forum.inc:603
 msgid "RAC: %1"
 msgstr "Punten gemiddelde: %1"
 
-#: ../inc/forum.inc:620
+#: ../inc/forum.inc:627
 msgid "You haven't read this message yet"
 msgstr "U heeft dit bericht nog niet gelezen"
 
-#: ../inc/forum.inc:620
+#: ../inc/forum.inc:627
 msgid "Unread"
 msgstr "Ongelezen"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
 msgid "Message %1"
 msgstr "Bericht %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
 msgid "hidden"
 msgstr "verborgen"
 
-#: ../inc/forum.inc:625
+#: ../inc/forum.inc:632
 msgid "Posted: %1"
 msgstr "Berichten geplaatst: %1"
 
-#: ../inc/forum.inc:628
+#: ../inc/forum.inc:635
 msgid " - in response to "
 msgstr " - in antwoord op "
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: ../inc/forum.inc:638
 msgid "Edit"
 msgstr "Aanpassen"
 
-#: ../inc/forum.inc:631
+#: ../inc/forum.inc:638
 msgid "Edit this message"
 msgstr "Dit bericht aanpassen"
 
-#: ../inc/forum.inc:637
+#: ../inc/forum.inc:644
 msgid "Last modified: %1"
 msgstr "Aangepast op: %1"
 
-#: ../inc/forum.inc:640
+#: ../inc/forum.inc:647
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Dit bericht wordt niet getoond, omdat de gebruiker op de 'negeer' lijst "
-"staat.  Klik %1hier%2 om weer te geven"
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Dit bericht wordt niet getoond, omdat de gebruiker op de 'negeer' lijst staat.  Klik %1hier%2 om weer te geven"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
 msgid "Report this post as offensive"
 msgstr "Rapporteer dit bericht als aanstootgevend"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
 msgid "Report as offensive"
 msgstr "Rapporteren als aanstootgevend"
 
-#: ../inc/forum.inc:672
+#: ../inc/forum.inc:679
 msgid "Rating: %1"
 msgstr "Waardering: %1"
 
-#: ../inc/forum.inc:672
+#: ../inc/forum.inc:679
 msgid "rate: "
 msgstr "Waarde: "
 
-#: ../inc/forum.inc:675
+#: ../inc/forum.inc:682
 msgid "Click if you like this message"
 msgstr "Klik als je dit bericht leuk vindt"
 
-#: ../inc/forum.inc:675
+#: ../inc/forum.inc:682
 msgid "Rate +"
 msgstr "Waarde +"
 
-#: ../inc/forum.inc:677
+#: ../inc/forum.inc:684
 msgid "Click if you don't like this message"
 msgstr "Klik als je dit bericht niet leuk vindt"
 
-#: ../inc/forum.inc:677
+#: ../inc/forum.inc:684
 msgid "Rate -"
 msgstr "Waarde -"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
 msgid "Reply"
 msgstr "Beantwoord"
 
-#: ../inc/forum.inc:685
+#: ../inc/forum.inc:693
 msgid "Post a reply to this message"
 msgstr "Een antwoord geven op dit bericht"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: ../inc/forum.inc:696
 msgid "Quote"
 msgstr "Citaat"
 
-#: ../inc/forum.inc:687
+#: ../inc/forum.inc:696
 msgid "Post a reply by quoting this message"
 msgstr "Antwoord geven met een citaat uit dit bericht"
 
-#: ../inc/forum.inc:708
+#: ../inc/forum.inc:717
 msgid "Hidden by a moderator"
 msgstr "Verborgen door moderator"
 
-#: ../inc/forum.inc:729
+#: ../inc/forum.inc:738
 msgid "Posted %1 by %2"
 msgstr "Geplaatst op %1 door %2"
 
-#: ../inc/forum.inc:747
+#: ../inc/forum.inc:756
 msgid "You may not post or rate messages until %1"
 msgstr "Je mag geen berichten plaatsen of waarderen tot %1"
 
-#: ../inc/forum.inc:758
+#: ../inc/forum.inc:767
 msgid ""
 "\n"
 "        <ul>\n"
@@ -379,369 +506,352 @@ msgid ""
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
 "        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Hou berichten 'kind vriendelijk': vermijd woorden die\n"
-"            obsceen zijn, haat-gerelateerd,\n"
-"            seksueel getint of suggestief.\n"
-"        <li> Plaats geen commerciële advertenties.\n"
-"        <li> Plaats geen links naar websites met seksuele inhoud,\n"
-"            gokken of intolerantie naar anderen.\n"
-"        <li> Plaats geen berichten met de intentie om andere mensen te "
-"kwetsen,\n"
-"            te beledigen of om het onderwerp over te nemen.\n"
-"        <li> Plaats geen berichten die kunnen worden evaren als een "
-"persoonlijke aanval.\n"
-"        <li> Gebruik geen tekst gericht tegen ras, religie,\n"
-"            nationaliteit, geslacht, klasse of seksuele geaardheid.\n"
-"        "
+msgstr "\n        <ul>\n        <li> Hou berichten 'kind vriendelijk': vermijd woorden die\n            obsceen zijn, haat-gerelateerd,\n            seksueel getint of suggestief.\n        <li> Plaats geen commerciële advertenties.\n        <li> Plaats geen links naar websites met seksuele inhoud,\n            gokken of intolerantie naar anderen.\n        <li> Plaats geen berichten met de intentie om andere mensen te kwetsen,\n            te beledigen of om het onderwerp over te nemen.\n [...]
 
-#: ../inc/forum.inc:780
+#: ../inc/forum.inc:799
 msgid "Rules:"
 msgstr "Regels:"
 
-#: ../inc/forum.inc:781
+#: ../inc/forum.inc:800
 msgid "More info"
 msgstr "Meer info"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
 msgid "Unhide"
 msgstr "Zichtbaar maken"
 
-#: ../inc/forum.inc:1055
+#: ../inc/forum.inc:1098
 msgid "Unhide this post"
 msgstr "Bericht zichtbaar maken"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
 msgid "Hide"
 msgstr "Verbergen"
 
-#: ../inc/forum.inc:1057
+#: ../inc/forum.inc:1100
 msgid "Hide this post"
 msgstr "Bericht verbergen"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
 msgid "Move"
 msgstr "Verplaatsen"
 
-#: ../inc/forum.inc:1062
+#: ../inc/forum.inc:1105
 msgid "Move post to a different thread"
 msgstr "Verplaats dit bericht naar een ander onderwerp"
 
-#: ../inc/forum.inc:1067
+#: ../inc/forum.inc:1110
 msgid "Banish author"
 msgstr "Auteur uitsluiten"
 
-#: ../inc/forum.inc:1074
+#: ../inc/forum.inc:1117
 msgid "Vote to banish author"
 msgstr "Stem om auteur te royeren"
 
-#: ../inc/forum.inc:1078
+#: ../inc/forum.inc:1121
 msgid "Vote not to banish author"
 msgstr "Stem om auteur niet te royeren"
 
-#: ../inc/forum.inc:1083
+#: ../inc/forum.inc:1126
 msgid "Start vote to banish author"
 msgstr "Begin stemming om auteur te royeren"
 
-#: ../inc/forum.inc:1116
+#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
+#: ../user/pm.php:112 ../user/pm.php:152
+msgid "Delete"
+msgstr "Verwijder"
+
+#: ../inc/forum.inc:1131
+msgid "Delete this post"
+msgstr "Dit bericht verwijderen"
+
+#: ../inc/forum.inc:1169
 msgid "Only team members can post to the team message board"
 msgstr "Alleen team leden mogen berichten plaatsen op dit forum"
 
-#: ../inc/forum.inc:1126
+#: ../inc/forum.inc:1179
 msgid ""
 "In order to create a new thread in %1 you must have a certain amount of "
 "credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Om een nieuw onderwerp te plaatsen in %1 is het nodig om een minimaal aantal "
-"punten te hebben. Dit is nodig om misbruik te voorkomen."
+msgstr "Om een nieuw onderwerp te plaatsen in %1 is het nodig om een minimaal aantal punten te hebben. Dit is nodig om misbruik te voorkomen."
 
-#: ../inc/forum.inc:1133
+#: ../inc/forum.inc:1186
 msgid ""
 "You cannot create any more threads right now. Please wait a while before "
 "trying again. This delay has been enforced to protect against abuse of the "
 "system."
-msgstr ""
-"Op dit moment kan je geen nieuwe onderwerpen plaatsen. Probeer dit later "
-"a.u.b overnieuw. Deze vertraging is ingebouwd om misbruik te voorkomen."
+msgstr "Op dit moment kan je geen nieuwe onderwerpen plaatsen. Probeer dit later a.u.b overnieuw. Deze vertraging is ingebouwd om misbruik te voorkomen."
 
-#: ../inc/forum.inc:1140
+#: ../inc/forum.inc:1193
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
-"Dit onderwerp is gesloten. Alleen forum moderators en admins mogen hier "
-"berichten plaatsen."
+msgstr "Dit onderwerp is gesloten. Alleen forum moderators en admins mogen hier berichten plaatsen."
 
-#: ../inc/forum.inc:1145
+#: ../inc/forum.inc:1198
 msgid "Can't post to a hidden thread."
 msgstr "Berichten plaatsen in verborgen onderwerp niet mogelijk."
 
-#: ../inc/forum.inc:1173
+#: ../inc/forum.inc:1232
 msgid "Thread"
 msgstr "Onderwerp"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
+#: ../user/forum_index.php:99
 msgid "Posts"
 msgstr "Reacties"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
 msgid "Views"
 msgstr "Bekeken"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
+#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
 msgid "Last post"
 msgstr "Laatste reactie"
 
-#: ../inc/forum.inc:1235
+#: ../inc/forum.inc:1294
 msgid "New posts in the thread %1"
 msgstr "Nieuwe berichten in onderwerp %1"
 
-#: ../inc/forum.inc:1240
+#: ../inc/forum.inc:1299
 msgid "New posts in subscribed thread"
 msgstr "Nieuwe berichten in geabonneerd onderwerp"
 
-#: ../inc/forum.inc:1241
+#: ../inc/forum.inc:1300
 msgid "There are new posts in the thread '%1'"
 msgstr "Er zijn nieuwe berichten in onderwerp '%1'"
 
-#: ../inc/forum.inc:1251
+#: ../inc/forum.inc:1310
 msgid "Mark all threads as read"
 msgstr "Markeer alle onderwerpen als gelezen"
 
-#: ../inc/forum.inc:1252
+#: ../inc/forum.inc:1311
 msgid "Mark all threads in all message boards as read."
 msgstr "Markeer alle onderwerpen in alle forums als gelezen."
 
-#: ../inc/host.inc:24
+#: ../inc/host.inc:25
 msgid "No host"
 msgstr "Geen host computer"
 
-#: ../inc/host.inc:26
+#: ../inc/host.inc:27
 msgid "Unavailable"
 msgstr "Niet beschikbaar"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
 msgid "Home"
 msgstr "Thuis pagina"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
+#: ../user/server_status.php:142
 msgid "Work"
 msgstr "Werk"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
 msgid "School"
 msgstr "School"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mobiel"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
+#: ../user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "Bijwerken"
 
-#: ../inc/host.inc:85
+#: ../inc/host.inc:84
 msgid "Computer information"
 msgstr "Computer informatie"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: ../inc/host.inc:88 ../inc/host.inc:93
 msgid "IP address"
 msgstr "IP adres"
 
-#: ../inc/host.inc:89
+#: ../inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(gelijk aan de laatste %1 keer)"
 
-#: ../inc/host.inc:91
+#: ../inc/host.inc:90
 msgid "External IP address"
 msgstr "Extern IP adres"
 
-#: ../inc/host.inc:94
+#: ../inc/host.inc:93
 msgid "Show IP address"
 msgstr "IP adres bekijken"
 
-#: ../inc/host.inc:96
+#: ../inc/host.inc:95
 msgid "Domain name"
 msgstr "Domein naam"
 
-#: ../inc/host.inc:98
+#: ../inc/host.inc:97
 msgid "Product name"
 msgstr "Product naam"
 
-#: ../inc/host.inc:102
+#: ../inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "Lokale tijd"
 
-#: ../inc/host.inc:102
+#: ../inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC %1 uur"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
 msgid "Owner"
 msgstr "Eigenaar"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: ../inc/host.inc:107 ../inc/host.inc:360
 msgid "Anonymous"
 msgstr "Anoniem"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
 msgid "Created"
 msgstr "Aangemaakt"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
+#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
+#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
+#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
+#: ../user/profile_search_action.php:45
+#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
+#: ../user/top_users.php:59 ../user/user_search.php:125
 msgid "Total credit"
 msgstr "Punten totaal"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
+#: ../user/user_search.php:124
 msgid "Average credit"
 msgstr "Punten gemiddelde"
 
-#: ../inc/host.inc:116
+#: ../inc/host.inc:115
 msgid "Cross project credit"
 msgstr "Project brede score"
 
-#: ../inc/host.inc:118
+#: ../inc/host.inc:117
 msgid "CPU type"
 msgstr "CPU type"
 
-#: ../inc/host.inc:119
+#: ../inc/host.inc:118
 msgid "Number of processors"
 msgstr "Aantal processoren"
 
-#: ../inc/host.inc:121
+#: ../inc/host.inc:120
 msgid "Coprocessors"
-msgstr "Extra processoren"
+msgstr "Coprocessoren"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: ../inc/host.inc:122 ../inc/host.inc:692
 msgid "Operating System"
 msgstr "Besturingssysteem"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: ../inc/host.inc:125 ../inc/host.inc:235
 msgid "BOINC version"
 msgstr "BOINC versie"
 
-#: ../inc/host.inc:130
+#: ../inc/host.inc:129 ../inc/prefs.inc:237
 msgid "Memory"
 msgstr "Geheugen"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: ../inc/host.inc:129 ../inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: ../inc/host.inc:133
 msgid "Cache"
 msgstr "Cache"
 
-#: ../inc/host.inc:134
+#: ../inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: ../inc/host.inc:139
 msgid "Swap space"
 msgstr "Virtueel geheugen"
 
-#: ../inc/host.inc:143
+#: ../inc/host.inc:142
 msgid "Total disk space"
 msgstr "Totale schijfruimte"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: ../inc/host.inc:142 ../inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: ../inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "Vrije schijfruimte"
 
-#: ../inc/host.inc:150
+#: ../inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "Gemeten 'floating point' snelheid"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: ../inc/host.inc:149 ../inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 miljoen ops/sec"
 
-#: ../inc/host.inc:153
+#: ../inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "Gemeten 'integer' snelheid"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: ../inc/host.inc:156 ../inc/host.inc:158
 msgid "Average upload rate"
 msgstr "Gemiddelde upload waarde"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: ../inc/host.inc:156 ../inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/sec"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
+#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
 #: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
 #: ../inc/result.inc:278 ../user/explain_state.php:56
 #: ../user/host_app_versions.php:30
 msgid "Unknown"
 msgstr "Onbekend"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: ../inc/host.inc:163 ../inc/host.inc:165
 msgid "Average download rate"
 msgstr "Gemiddelde download waarde"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: ../inc/host.inc:168 ../user/host_app_versions.php:65
 msgid "Average turnaround time"
 msgstr "Gemiddelde inlever tijd"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../user/forum_search.php:50 ../user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 dagen"
 
-#: ../inc/host.inc:170
+#: ../inc/host.inc:169
 msgid "Application details"
 msgstr "Applicatie details"
 
-#: ../inc/host.inc:171
+#: ../inc/host.inc:170
 msgid "Show"
 msgstr "Weergeven"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
 msgid "Tasks"
 msgstr "Taken"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: ../inc/host.inc:184 ../inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "Aantal keren dat de cliënt contact heeft gehad met de server"
 
-#: ../inc/host.inc:186
+#: ../inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "Laatste contact met de server"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% van de tijd dat de BOINC cliënt actief is"
+#: ../inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Fractie van de tijd dat BOINC actief is"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"% van de tijd dat de computer verbinding heeft met het internet terwijl "
-"BOINC loopt."
+#: ../inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Wanneer BOINC actief is, fractie van de tijd dat de computer een Internetverbinding heeft"
+
+#: ../inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Terwijl BOINC actief is, fractie van de tijd dat berekeningen toegestaan zijn"
 
 #: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% van de tijd dat werk is toegestaan, terwijl BOINC loopt"
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Terwijl BOINC actief is, fractie van de tijd dat GPU berekeningen toegestaan zijn"
 
 #: ../inc/host.inc:193
 msgid "Average CPU efficiency"
@@ -751,7 +861,7 @@ msgstr "Gemiddelde CPU efficiëntie"
 msgid "Task duration correction factor"
 msgstr "Correctie factor van een taak"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: ../inc/host.inc:198 ../inc/host.inc:679
 msgid "Location"
 msgstr "Locatie"
 
@@ -765,9 +875,9 @@ msgstr "Meerdere vermeldingen van deze computer"
 
 #: ../inc/host.inc:204
 msgid "Merge"
-msgstr "samenvoegen"
+msgstr "Samenvoegen"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: ../inc/host.inc:207 ../inc/host.inc:694
 msgid "Last contact"
 msgstr "Laatste contact"
 
@@ -775,30 +885,30 @@ msgstr "Laatste contact"
 msgid "Computer info"
 msgstr "Computer informatie"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
+#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
 #: ../user/top_users.php:48
 msgid "Rank"
 msgstr "Rang"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: ../inc/host.inc:225 ../inc/host.inc:684
 msgid "Avg. credit"
 msgstr "Punten gemiddelde"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
+#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
+#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
+#: ../inc/team.inc:382 ../inc/user.inc:140
+#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
 #: ../user/top_users.php:58
 msgid "Recent average credit"
 msgstr "Huidige punten gemiddelde"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
+#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
 #: ../user/host_app_versions.php:25
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: ../inc/host.inc:237 ../inc/host.inc:690
 msgid "GPU"
 msgstr "GPU"
 
@@ -806,91 +916,83 @@ msgstr "GPU"
 msgid "Operating system"
 msgstr "Besturingssysteem"
 
-#: ../inc/host.inc:315
+#: ../inc/host.inc:320
 msgid "(%1 processors)"
 msgstr "(%1 processoren)"
 
-#: ../inc/host.inc:335
+#: ../inc/host.inc:340
 msgid "Details"
 msgstr "Details"
 
-#: ../inc/host.inc:340
+#: ../inc/host.inc:345
 msgid "Cross-project stats:"
 msgstr "Project brede statistieken:"
 
-#: ../inc/host.inc:515
+#: ../inc/host.inc:520
 msgid "Host %1 has overlapping lifetime:"
 msgstr "Computer %1 heeft een overlappende inzet-duur:"
 
-#: ../inc/host.inc:522
+#: ../inc/host.inc:527
 msgid "Host %1 has an incompatible OS:"
 msgstr "Computer %1 heeft een niet compatibel besturingssysteem:"
 
-#: ../inc/host.inc:528
+#: ../inc/host.inc:533
 msgid "Host %1 has an incompatible CPU:"
 msgstr "Computer %1 heeft een niet compatibele CPU:"
 
-#: ../inc/host.inc:595
+#: ../inc/host.inc:600
 msgid "same host"
 msgstr "zelfde computer"
 
-#: ../inc/host.inc:598
+#: ../inc/host.inc:603
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr "Kan computer %1 en %2 niet samenvoegen - ze zijn niet compatibel"
 
-#: ../inc/host.inc:601
+#: ../inc/host.inc:606
 msgid "Merging host %1 into host %2"
 msgstr "Computer %1 en %2 worden samengevoegd"
 
-#: ../inc/host.inc:618
+#: ../inc/host.inc:623
 msgid "Couldn't update credit of new computer"
 msgstr "Punten aantal van nieuwe computer kon niet worden bijgewerkt"
 
-#: ../inc/host.inc:622
+#: ../inc/host.inc:627
 msgid "Couldn't update results"
 msgstr "Resultaten konden niet worden bijgewerkt"
 
-#: ../inc/host.inc:627
+#: ../inc/host.inc:632
 msgid "Couldn't retire old computer"
 msgstr "Verwijderen oude computer niet gelukt"
 
-#: ../inc/host.inc:629
+#: ../inc/host.inc:634
 msgid "Retired old computer %1"
 msgstr "Verwijderde oude computer %1"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "Show:"
 msgstr "Weergeven:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "All computers"
 msgstr "Alle computers"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: ../inc/host.inc:657 ../inc/host.inc:660
 msgid "Only computers active in past 30 days"
 msgstr "Alleen actieve computers in de laatste 30 dagen"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: ../inc/host.inc:671 ../inc/result.inc:642
 msgid "Computer ID"
 msgstr "Computer ID"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Naam"
-
-#: ../inc/host.inc:682
+#: ../inc/host.inc:687
 msgid "BOINC<br>version"
 msgstr "BOINC<br>versie"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: ../inc/host.inc:750 ../user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "Computers samenvoegen op naam"
 
-#: ../inc/language_names.inc:61
+#: ../inc/language_names.inc:62
 msgid "Browser default"
 msgstr "Browser standaard"
 
@@ -903,29 +1005,29 @@ msgstr "Opmerkingen"
 msgid "News is available as an %sRSS feed%s"
 msgstr "Nieuws is ook verkrijgbaar als %sRSS feed%s"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
 msgid "Inbox"
 msgstr "Postvak In"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: ../inc/pm.inc:26 ../inc/pm.inc:180
 msgid "Write"
 msgstr "Schrijven"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
+#: ../inc/pm.inc:33 ../inc/user.inc:458
 msgid "Send private message"
 msgstr "Verstuur privé bericht"
 
 #: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
 #: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
 #: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: ../user/forum_post.php:65 ../user/forum_post.php:91
+#: ../user/forum_post.php:93 ../user/forum_post.php:134
+#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
+#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
 msgid "Preview"
 msgstr "Voorbeeld"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: ../inc/pm.inc:48 ../user/pm.php:136
 msgid "no such message"
 msgstr "geen bericht gevonden"
 
@@ -937,7 +1039,7 @@ msgstr "Aan"
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "Gebruikers ID of unieke gebruikersnaam, gescheiden door komma's"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
+#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
 msgid "Subject"
 msgstr "Onderwerp"
 
@@ -945,410 +1047,505 @@ msgstr "Onderwerp"
 msgid "Send message"
 msgstr "Verstuur bericht"
 
-#: ../inc/pm.inc:121
+#: ../inc/pm.inc:122
 msgid "sent you a private message; subject:"
 msgstr "heeft een persoonlijk bericht gestuurd. Onderwerp:"
 
-#: ../inc/pm.inc:127
+#: ../inc/pm.inc:129
 msgid "Private message%1 from %2, subject:"
 msgstr "Persoonlijk bericht%1 van %2. onderwerp:"
 
-#: ../inc/pm.inc:135
+#: ../inc/pm.inc:137
 msgid "Couldn't create message"
-msgstr "kon geen bericht aanmaken"
+msgstr "Kon geen bericht aanmaken"
 
-#: ../inc/pm.inc:166
+#: ../inc/pm.inc:168
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
-msgstr ""
-"Het is niet toegestaan om snel achter elkaar veel berichten te versturen. "
-"Wacht a.u.b. even met versturen andere berichten."
+msgstr "Het is niet toegestaan om snel achter elkaar veel berichten te versturen. Wacht a.u.b. even met versturen andere berichten."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: ../inc/pm.inc:178 ../user/forum_forum.php:190
 msgid "unread"
 msgstr "ongelezen"
 
-#: ../inc/pm.inc:186
+#: ../inc/pm.inc:188
 msgid "For email notification, %1edit community prefs%2"
 msgstr "Voor een e-mail bevestiging, %1pas voorkeuren aan%2"
 
-#: ../inc/pm.inc:198
+#: ../inc/pm.inc:204
 msgid "Private message"
 msgstr "Privé berichten"
 
-#: ../inc/prefs.inc:77
+#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
+msgid "Usage limits"
+msgstr "Gebruiksbeperkingen"
+
+#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
+msgid "Use at most"
+msgstr "Gebruik maximaal"
+
+#: ../inc/prefs.inc:49
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Werk onderbreken indien computer op accu werkt? %1(van toepassing bij "
-"laptops e.d.)%2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Houdt sommige CPUs vrij voor andere programma's. Bijvoorbeeld: 75% betekent dat een 8-core processor 6 kernen gebruikt. "
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Werk onderbreken indien computer in gebruik is?"
+#: ../inc/prefs.inc:52
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% van de CPUs"
 
-#: ../inc/prefs.inc:91
+#: ../inc/prefs.inc:57
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Werk voor GPU onderbreken indien computer in gebruik is? %1 Instelbaar vanaf "
-"versie 6.6.21+ %2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Pauzeer/hervat verwerking elke zoveel seconden om de CPU temperatuur en het energieverbruik te verminderen. Bijvoorbeeld: 75% betekent 3 seconden verwerken, 1 seconde pauze, enzovoort. "
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'In gebruik' betekent muis/toetsenbord gebruik in laatste"
+#: ../inc/prefs.inc:60
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% van de CPU tijd"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minuten"
+#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
+msgid "When to suspend"
+msgstr "Wanneer te pauzeren"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Werk onderbreken indien er geen muis/toetsenbord gebruik is geweest in "
-"laatste %1 Nodig op sommige computers om sluimer-modus te activeren %2"
+#: ../inc/prefs.inc:64
+msgid "Suspend when computer is on battery"
+msgstr "Pauzeren wanneer de computer op accu werkt"
 
-#: ../inc/prefs.inc:114
+#: ../inc/prefs.inc:65
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Werk onderbreken indien CPU gebruik hoger is dan %1 0 betekend geen "
-"beperking<br>Instelbaar vanaf versie 6.10.30+ %2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Markeer dit om verwerking te pauzeren op mobiele toestellen wanneer deze op accu werken."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Alleen werk uitvoeren tussen %1 Geen beperking indien gelijk %2"
+#: ../inc/prefs.inc:70
+msgid "Suspend when computer is in use"
+msgstr "Pauzeren waneer computer in gebruik is"
 
-#: ../inc/prefs.inc:130
+#: ../inc/prefs.inc:71
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Gepauzeerde taken in het geheugen houden? %1 Kan ten kosten gaan van de "
-"hoeveelheid vrij geheugen %2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Markeer dit om verwerking en bestandsoverdrachten te pauzeren wanneer je de computer gebruikt."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Schakel tussen programma's elke %1 Aanbevolen: 60 minuten %2"
+#: ../inc/prefs.inc:76
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Pauzeer GPU gebruik op wanneer de computer in gebruik is"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Bij meerdere processoren, gebruik maximaal"
+#: ../inc/prefs.inc:77
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Markeer dit om GPU gebruik te pauzeren wanneer je de computer gebruikt."
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "processoren"
+#: ../inc/prefs.inc:82
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'In gebruik' betekent gebruik van toetsenbord/muis in de laatste"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Bij meerdere processoren, gebruik maximaal %1 Instelbaar vanaf versie 6.1+ %"
-"2"
+#: ../inc/prefs.inc:83
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Dit bepaalt wanneer de computer 'in gebruik' is."
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% van de processoren"
+#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
+msgid "minutes"
+msgstr "minuten"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "Gebruik maximaal %1 Om eventueel CPU warmte te beperken %2"
+#: ../inc/prefs.inc:89
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Pauzeer wanneer geen toestenbord/muis activiteit in de laatste"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% van de CPU tijd"
+#: ../inc/prefs.inc:90
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Dit staat sommige computers toe om een lage energieverbruiksmodus te gebruiken wanneer ze niet in gebruik zijn."
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Schijf: gebruik maximaal"
+#: ../inc/prefs.inc:95
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Pauzeer bij niet-BOINC CPU gebruik van meer dan "
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: ../inc/prefs.inc:96
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Pauzeer verwerking wanneer je computer bezig is andere programma's te draaien."
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Schijf: laat minstens vrij %1 Waarden kleiner dan %2 worden genegeerd %3"
+#: ../inc/prefs.inc:101
+msgid "Compute only between"
+msgstr "Bereken alleen tussen"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% van totale schijf grootte"
+#: ../inc/prefs.inc:102
+msgid "Compute only during a particular period each day."
+msgstr "Bereken alleen gedurende een bepaalde periode elke dag. "
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Controlepunt van het werk opslaan elke"
+#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
+#: ../user/forum_banishment_vote.php:70
+#: ../user/forum_banishment_vote_action.php:65
+#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Anders"
 
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "seconden"
+#: ../inc/prefs.inc:107
+msgid "Store at least"
+msgstr "Bewaar tenminste"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Virtueel geheugen: gebruik maximaal"
+#: ../inc/prefs.inc:108
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Bewaar tenminste genoeg taken om de computer gedurende deze tijd bezig te houden. "
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Geheugen: terwijl de computer actief is, gebruik maximaal"
+#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
+msgid "days of work"
+msgstr "dagen werk"
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Geheugen: terwijl de computer niet actief is, gebruik maximaal"
+#: ../inc/prefs.inc:113
+msgid "Store up to an additional"
+msgstr "Bewaar tot een extra"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "Onderhoud voldoende werk voor tenminste %1(max 10 dagen)%2"
+#: ../inc/prefs.inc:114
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Bewaar extra taken bovenop het minimum level. Dit bepaalt hoeveel werk wordt gevraagd wanneer contact met een project wordt opgenomen."
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dagen"
+#: ../inc/prefs.inc:119
+msgid "Switch between tasks about every"
+msgstr "Schakel tussen taken ongeveer elke"
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... en aangevuld tot maximaal"
+#: ../inc/prefs.inc:120
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Als je meerdere projecten draait, kan BOINC zo vaak tussen hen schakelen. "
 
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Bevestiging bij het openen van de internet verbinding? %1 Alleen van belang "
-"bij een modem, ISDN of VPN verbinding %2"
+#: ../inc/prefs.inc:125
+msgid "Request tasks to checkpoint at most every"
+msgstr "Vraag taken een controlepunt te maken elke"
 
-#: ../inc/prefs.inc:241
+#: ../inc/prefs.inc:126
 msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Verbinding verbreken indien gereed? %1 Alleen van belang bij een modem, ISDN "
-"of VPN verbinding %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Maximale download waarde:"
+"This controls how often tasks save their state to disk, so that they can be "
+"restarted later."
+msgstr "Dit bepaalt hoe vaak taken hun status naar disk opslaan, zodat ze later van dat punt kunnen verder gaan. "
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbytes/sec"
+#: ../inc/prefs.inc:128
+msgid "seconds"
+msgstr "seconden"
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Maximale upload waarde:"
+#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
+msgid "Use no more than"
+msgstr "Gebruik niet meer dan"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Gebruik het netwerk alleen tussen"
+#: ../inc/prefs.inc:137
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Beperk het totale schijfruimte gebruik van BOINC."
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Maximale overdracht %1 Instelbaar vanaf versie 6.10.46+ %2"
+#: ../inc/prefs.inc:139
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Megabyte elke"
+#: ../inc/prefs.inc:142
+msgid "Leave at least"
+msgstr "Laat minstens"
 
-#: ../inc/prefs.inc:274
+#: ../inc/prefs.inc:143
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Verificatie van bestand overslaan? %1 Vink dit alleen aan als je provider de "
-"indeling van bestanden aanpast (UMTS doet dit bijvoorbeeld). %2 Verificatie "
-"overslaan verlaagt de veiligheid van BOINC.%3"
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Beperk schijfruimte gebruik om zo veel ruimte op het volume waar BOINC data opslaat vrij te houden."
+
+#: ../inc/prefs.inc:145
+msgid "GB free"
+msgstr "GB vrij"
 
-#: ../inc/prefs.inc:287
+#: ../inc/prefs.inc:149
 msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Gedeelde bronnen %1 Bepaalt de hoeveelheid gedeelde bronnen van computers "
-"verbonden met dit project. Voorbeeld: Als je computer deelneemt aan 2 BOINC "
-"projecten met gedeelde bronnen van 100 en 200, zal het eerste project 1/3 en "
-"het tweede project 2/3 van de beschikbare bronnen krijgen. %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Beperk het percentage van schijfruimte gebruik door BOINC op het volume waar het data opslaat."
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Versnel de GPU taken door een CPU toe te wijzen elke taak?"
+#: ../inc/prefs.inc:152
+#, no-php-format
+msgid "% of total"
+msgstr "% van totale schijf grootte"
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Gebruik CPU %1 Instelbaar vanaf 6.10+ %2"
+#: ../inc/prefs.inc:158
+msgid "When computer is in use, use at most"
+msgstr "Wanneer computer in gebruik is, gebruik maximaal"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Gebruik ATI GPU %1 Instelbaar vanaf 6.10+ %2"
+#: ../inc/prefs.inc:159
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Beperk geheugengebruik van BOINC wanneer je de computer gebruikt."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Gebruik NVIDIA GPU %1 Instelbaar vanaf 6.10+ %2"
+#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Gebruik Intel GPU %1 Instelbaar vanaf 7.2+ %2"
+#: ../inc/prefs.inc:165
+msgid "When computer is not in use, use at most"
+msgstr "Wanneer computer niet in gebruik is, gebruik maximaal"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Test applicaties uitvoeren? %1 Dit helpt ons bij het ontwikkelen van "
-"applicaties, maar kan fouten veroorzaken tijdens het uitvoeren %2"
+#: ../inc/prefs.inc:166
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Beperk geheugengebruik van BOINC wanneer je de computer niet gebruikt."
 
-#: ../inc/prefs.inc:367
+#: ../inc/prefs.inc:172
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Laat niet-GPU taken in geheugen wanneer gepauzeerd"
+
+#: ../inc/prefs.inc:173
 msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Er worden door %1 e-mails naar je verzonden; zorg ervoor dat een eventueel "
-"spamfilter ze niet blokkeert."
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Wanneer gemarkeerd blijven gepauzeerde taken in het geheugen, en kunnen deze herstarten zonder dat werk verloren gaat. Wanneer niet gemarkeerd worden gepauzeerde taken uit het geheugen verwijderd, en herstarten deze van hun laatste controlepunt. "
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Wil je dat %1 en/of je team e-mail naar je kunnen verzenden?"
+#: ../inc/prefs.inc:178
+msgid "Page/swap file: use at most"
+msgstr "Wisselbestand: gebruik maximaal"
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Wil je dat %1 jouw computers laat zien op de website?"
+#: ../inc/prefs.inc:179
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Beperk het wisselbestand (geheugenpaginering) gebruikt door BOINC."
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Schijf- en geheugengebruik"
+#: ../inc/prefs.inc:189
+msgid "Limit download rate to"
+msgstr "Beperk de uploadsnelheid van bestandsoverdrachten."
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Processor gebruik"
+#: ../inc/prefs.inc:190
+msgid "Limit the download rate of file transfers."
+msgstr "Beperk de downloadsnelheid van bestandsoverdrachten."
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Netwerkgebruik"
+#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
+msgid "KB/second"
+msgstr "KB/seconde"
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Deze voorkeuren hebben betrekking op alle projecten waar je aan deelneemt."
+#: ../inc/prefs.inc:195
+msgid "Limit upload rate to"
+msgstr "Beperk de uploadsnelheid tot"
 
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Voorkeuren bijwerken niet gelukt.%2 De waarden gemarkeerd in rood zijn "
-"niet correct ingevuld."
+#: ../inc/prefs.inc:196
+msgid "Limit the upload rate of file transfers."
+msgstr "Beperk de uploadsnelheid van bestandsoverdrachten."
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "foute locatie: %1"
+#: ../inc/prefs.inc:201
+msgid "Limit usage to"
+msgstr "Beperk gebruik tot"
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "foute toevoeging: %1"
+#: ../inc/prefs.inc:202
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Bijvoorbeeld: BOINC kan maximaal 2000 MB elke 30 dagen overschrijven."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "ja"
+#: ../inc/prefs.inc:205
+msgid "MB every"
+msgstr "MB elke"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nee"
+#: ../inc/prefs.inc:206 ../inc/util.inc:303
+msgid "days"
+msgstr "dagen"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "geen limiet"
+#: ../inc/prefs.inc:210
+msgid "Transfer files only between"
+msgstr "Verstuur bestanden alleen tussen"
 
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Toevoegen"
+#: ../inc/prefs.inc:211
+msgid "Transfer files only during a particular period each day."
+msgstr "Verstuur bestanden alleen gedurende een bepaalde periode elke dag."
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Verwijderen"
+#: ../inc/prefs.inc:216
+msgid "Skip data verification for image files"
+msgstr "Afbeeldingsbestanden verificiëren overslaan"
+
+#: ../inc/prefs.inc:217
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Markeer dit alleen als je Internet Service Provider afbeeldingsbestanden aanpast. Overslaan van de verificatie verlaagt de veiligheid van BOINC."
+
+#: ../inc/prefs.inc:222
+msgid "Confirm before connecting to Internet"
+msgstr "Bevestiging bij het openen van de internet verbinding"
+
+#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Alleen van belang bij een modem, ISDN of VPN verbinding."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
+#: ../inc/prefs.inc:228
+msgid "Disconnect when done"
+msgstr "Verbinding verbreken indien gereed"
+
+#: ../inc/prefs.inc:235 ../user/explain_state.php:94
 msgid "Computing"
 msgstr "Verwerken"
 
-#: ../inc/prefs.inc:823
+#: ../inc/prefs.inc:236
+msgid "Disk"
+msgstr "Schijfgebruik"
+
+#: ../inc/prefs.inc:238
+msgid "Network"
+msgstr "Netwerk"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: ../inc/prefs.inc:241
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Deze voorkeuren hebben betrekking op alle projecten waar je aan deelneemt."
+
+#: ../inc/prefs.inc:244
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Voorkeuren bijwerken niet gelukt.%2 De waarden gemarkeerd in rood zijn niet correct ingevuld."
+
+#: ../inc/prefs.inc:472
+msgid "computing"
+msgstr "verwerken"
+
+#: ../inc/prefs.inc:483
 msgid "Separate preferences for %1"
 msgstr "Aparte voorkeuren voor %1"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
 msgid "Edit preferences"
 msgstr "Voorkeuren bijwerken"
 
-#: ../inc/prefs.inc:839
+#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
+#: ../user/team_admins.php:36
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: ../inc/prefs.inc:499
 msgid "Add separate preferences for %1"
 msgstr "Aparte voorkeuren voor %1 toevoegen"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
+#: ../inc/prefs.inc:506
+msgid "These settings apply to all computers using this account except"
+msgstr "Deze instellingen zijn van toepassing op alle computers van deze account, behalve"
+
+#: ../inc/prefs.inc:508
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "computers waar je lokale voorkeuren via BOINC Manager hebt gebruikt."
+
+#: ../inc/prefs.inc:510
+msgid "Android devices"
+msgstr "Android toestellen"
+
+#: ../inc/prefs.inc:513
+msgid "(Switch view)"
 msgstr "(Verander Weergave)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
 msgid "Combined preferences"
 msgstr "Gecombineerde voorkeuren"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Project specifieke instellingen"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
 msgid "Primary (default) preferences"
 msgstr "Primaire (standaard) voorkeuren"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Pas voorkeuren voor %1 aan"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Dit heeft betrekking op alle projecten waar je aan mee doet."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"Op computers met meerdere projecten, worden de meest recent aangepaste "
-"voorkeuren gebruikt."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Deze instellingen gelden niet voor Android apparaten."
-
-#: ../inc/prefs.inc:892
+#: ../inc/prefs.inc:537
 msgid "Preferences last modified:"
 msgstr "Voorkeuren aangepast per:"
 
-#: ../inc/prefs.inc:944
+#: ../inc/prefs.inc:553
 msgid "Add preferences"
 msgstr "Voorkeuren toevoegen"
 
-#: ../inc/prefs.inc:948
+#: ../inc/prefs.inc:557
 msgid "Update preferences"
 msgstr "Voorkeuren bijwerken"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "yes"
+msgstr "ja"
+
+#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "no"
+msgstr "nee"
+
+#. TODO: make this a subclass of PREF
+#: ../inc/prefs.inc:638
 msgid "Default computer location"
 msgstr "Standaard computer locatie"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: ../inc/prefs.inc:639
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Nieuwe computers zullen deze locatie gebruiken voor berekenings- en project voorkeuren."
+
+#: ../inc/prefs_project.inc:52
+msgid "Resource share"
+msgstr "Gedeelde bronnen"
+
+#: ../inc/prefs_project.inc:53
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Bepaalt hoeveel tijd dit project van jouw computer gebruik kan maken. Voorbeeld: Als jouw computer deelneemt aan 2 BOINC projecten met aandelen van 100 en 200, zal het eerste project 1/3 en het tweede project 2/3 van de beschikbare tijd krijgen."
+
+#: ../inc/prefs_project.inc:61
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Versnel de GPU taken door een CPU toe te wijzen elke taak?"
+
+#: ../inc/prefs_project.inc:70
+msgid "Use CPU"
+msgstr "Gebruik CPU"
+
+#: ../inc/prefs_project.inc:79
+msgid "Use ATI GPU"
+msgstr "Gebruik ATI GPU"
+
+#: ../inc/prefs_project.inc:88
+msgid "Use NVIDIA GPU"
+msgstr "Gebruik NVIDIA GPU"
+
+#: ../inc/prefs_project.inc:97
+msgid "Use Intel GPU"
+msgstr "Gebruik Intel GPU"
+
+#: ../inc/prefs_project.inc:107
+msgid "Run test applications?"
+msgstr "Test applicaties uitvoeren?"
+
+#: ../inc/prefs_project.inc:108
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Dit helpt ons om applicaties te ontwikkelen, maar kan er voor zorgen dat werk faalt op jouw computer"
+
+#: ../inc/prefs_project.inc:115
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Er worden door %1 e-mails naar je verzonden; zorg ervoor dat een eventueel spamfilter ze niet blokkeert."
+
+#: ../inc/prefs_project.inc:123
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Wil je dat %1 en/of je team e-mail naar je kunnen verzenden?"
+
+#: ../inc/prefs_project.inc:130
+msgid "Should %1 show your computers on its web site?"
+msgstr "Wil je dat %1 jouw computers laat zien op de website?"
+
+#: ../inc/prefs_project.inc:270
+msgid "(Switch View)"
+msgstr "(Verander Weergave)"
+
+#: ../inc/prefs_project.inc:276
+msgid "Project specific settings"
+msgstr "Project specifieke instellingen"
+
+#: ../inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "foute locatie: %1"
+
+#: ../inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "foute toevoeging: %1"
+
+#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
 msgid "and"
 msgstr "en"
 
@@ -1356,19 +1553,15 @@ msgstr "en"
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr ""
-"Je profiel wordt zichtbaar voor anderen, zodra deze is goedgekeurd door het "
-"project. Dit kan mogelijk enkele dagen duren."
+msgstr "Je profiel wordt zichtbaar voor anderen, zodra deze is goedgekeurd door het project. Dit kan mogelijk enkele dagen duren."
 
 #: ../inc/profile.inc:92
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr ""
-"Je profiel is gemarkeerd als onaanvaardbaar en niet zichtbaar voor anderen. "
-"Pas het a.u.b. aan."
+msgstr "Je profiel is gemarkeerd als onaanvaardbaar en niet zichtbaar voor anderen. Pas het a.u.b. aan."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
 msgid "Database error"
 msgstr "Database fout"
 
@@ -1376,10 +1569,7 @@ msgstr "Database fout"
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Om spam te voorkomen, worden profielen met een gemiddeld aantal punten van "
-"minder dan %1 alleen getoond aan ingelogde gebruikers. Onze excuses voor dit "
-"ongemak."
+msgstr "Om spam te voorkomen, worden profielen met een gemiddeld aantal punten van minder dan %1 alleen getoond aan ingelogde gebruikers. Onze excuses voor dit ongemak."
 
 #: ../inc/profile.inc:197
 msgid "User is banished"
@@ -1389,7 +1579,7 @@ msgstr "Gebruiker is geroyeerd"
 msgid "No profile exists for that user ID."
 msgstr "Geen profiel aanwezig voor gevraagd gebruikers ID."
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: ../inc/profile.inc:219 ../user/create_profile.php:317
 msgid "Edit your profile"
 msgstr "Profiel aanpassen"
 
@@ -1437,11 +1627,12 @@ msgstr "Niet in database"
 msgid "pending"
 msgstr "in behandeling"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: ../inc/result.inc:114 ../user/forum_search.php:62
 msgid "All"
 msgstr "Alles"
 
 #: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: ../user/server_status.php:167
 msgid "In progress"
 msgstr "In uitvoering"
 
@@ -1470,6 +1661,7 @@ msgid "Inactive"
 msgstr "Inactief"
 
 #: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: ../user/server_status.php:167
 msgid "Unsent"
 msgstr "Niet verzonden"
 
@@ -1634,127 +1826,135 @@ msgid "WU cancelled"
 msgstr "WU afgebroken"
 
 #: ../inc/result.inc:322
+msgid "Canonical result is missing"
+msgstr "Canonical resultaat ontbreekt"
+
+#: ../inc/result.inc:326
 msgid "Unrecognized Error: %1"
 msgstr "Onverklaarbare Fout: %1"
 
-#: ../inc/result.inc:349
+#: ../inc/result.inc:353
 msgid "Task name"
 msgstr "Taaknaam"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
+#: ../inc/result.inc:364
 msgid "click for details"
 msgstr "Klik voor details"
 
-#: ../inc/result.inc:349
+#: ../inc/result.inc:353
 msgid "Show IDs"
 msgstr "Toon ID's"
 
-#: ../inc/result.inc:354
+#: ../inc/result.inc:358
 msgid "Show names"
 msgstr "Toon namen"
 
-#: ../inc/result.inc:357
+#: ../inc/result.inc:361 ../user/result.php:36
 msgid "Task"
 msgstr "Taken"
 
-#: ../inc/result.inc:360
+#: ../inc/result.inc:364
 msgid "Work unit"
 msgstr "Werk-eenheid"
 
-#: ../inc/result.inc:369
+#: ../inc/result.inc:373
 msgid "Computer"
 msgstr "Computer"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: ../inc/result.inc:376 ../inc/result.inc:635
 msgid "Sent"
 msgstr "Verzonden"
 
-#: ../inc/result.inc:373
+#: ../inc/result.inc:377
 msgid "Time reported<br />or deadline"
 msgstr "Rapportage tijd<br />of deadline"
 
-#: ../inc/result.inc:374
+#: ../inc/result.inc:378
 msgid "explain"
 msgstr "verklaring"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: ../inc/result.inc:380 ../user/server_status.php:113
 msgid "Status"
 msgstr "Status"
 
-#: ../inc/result.inc:377
+#: ../inc/result.inc:381
 msgid "Run time<br />(sec)"
 msgstr "Loop tijd<br />(sec)"
 
-#: ../inc/result.inc:378
+#: ../inc/result.inc:382
 msgid "CPU time<br />(sec)"
 msgstr "CPU tijd<br />(sec)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: ../inc/result.inc:383 ../inc/result.inc:646
 msgid "Credit"
 msgstr "Punten"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
 msgid "Application"
 msgstr "Applicatie"
 
-#: ../inc/result.inc:629
+#: ../inc/result.inc:633
 msgid "Workunit"
 msgstr "Werkeenheid"
 
-#: ../inc/result.inc:632
+#: ../inc/result.inc:636
+msgid "Report deadline"
+msgstr "Rapporteren voor"
+
+#: ../inc/result.inc:637
 msgid "Received"
 msgstr "Ontvangen"
 
-#: ../inc/result.inc:633
+#: ../inc/result.inc:638
 msgid "Server state"
 msgstr "Server status"
 
-#: ../inc/result.inc:634
+#: ../inc/result.inc:639
 msgid "Outcome"
 msgstr "Uitkomst"
 
-#: ../inc/result.inc:635
+#: ../inc/result.inc:640
 msgid "Client state"
 msgstr "Client status"
 
-#: ../inc/result.inc:636
+#: ../inc/result.inc:641
 msgid "Exit status"
 msgstr "Afsluit status"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Rapporteren voor"
-
-#: ../inc/result.inc:639
+#: ../inc/result.inc:643
 msgid "Run time"
 msgstr "Loop tijd"
 
-#: ../inc/result.inc:640
+#: ../inc/result.inc:644
 msgid "CPU time"
 msgstr "CPU tijd"
 
-#: ../inc/result.inc:641
+#: ../inc/result.inc:645
 msgid "Validate state"
 msgstr "Validatie status"
 
-#: ../inc/result.inc:643
+#: ../inc/result.inc:647
+msgid "Device peak FLOPS"
+msgstr "Apparaat piek FLOPS"
+
+#: ../inc/result.inc:648
 msgid "Application version"
 msgstr "Programma versie"
 
-#: ../inc/result.inc:656
+#: ../inc/result.inc:673
 msgid "Output files"
 msgstr "Uitvoer bestanden"
 
-#: ../inc/result.inc:659
+#: ../inc/result.inc:676
 msgid "Stderr output"
 msgstr "Stderr output"
 
-#: ../inc/result.inc:706
+#: ../inc/result.inc:728
 msgid "State"
 msgstr "Status"
 
-#: ../inc/result.inc:747
+#: ../inc/result.inc:769
 msgid "Task name:"
 msgstr "Taaknaam:"
 
@@ -1770,17 +1970,7 @@ msgstr "Steekwoorden"
 msgid "Find teams with these words in their names or descriptions"
 msgstr "Zoek teams met deze woorden in hun naam of beschrijving"
 
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Land"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: ../inc/team.inc:49 ../inc/team.inc:473
 msgid "Type of team"
 msgstr "Soort team"
 
@@ -1788,14 +1978,13 @@ msgstr "Soort team"
 msgid "Show only active teams"
 msgstr "Laat alleen aktieve teams zien"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
 msgid "Search"
 msgstr "Zoek"
 
 #: ../inc/team.inc:61
 msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-"Op eigen verzoek, deadline voor de oprichter om te reageren is verlopen."
+msgstr "Op eigen verzoek, deadline voor de oprichter om te reageren is verlopen."
 
 #: ../inc/team.inc:63
 msgid "Complete foundership transfer"
@@ -1807,10 +1996,10 @@ msgstr "Op eigen verzoek"
 
 #: ../inc/team.inc:67
 msgid "founder response deadline is %1"
-msgstr "Deadline voor oprichter verloopt op %1"
+msgstr "Deadline voor antwoord van oprichter verloopt op %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
+#: ../inc/user.inc:449
 msgid "None"
 msgstr "Geen"
 
@@ -1822,502 +2011,483 @@ msgstr "Plaats verzoek"
 msgid "Deferred"
 msgstr "Uitgesteld"
 
-#: ../inc/team.inc:87
+#: ../inc/team.inc:91
 msgid "Team info"
 msgstr "Team info"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
 msgid "Description"
 msgstr "Beschrijving"
 
-#: ../inc/team.inc:97
+#: ../inc/team.inc:106
 msgid "Web site"
 msgstr "Website"
 
-#: ../inc/team.inc:120
+#: ../inc/team.inc:132
 msgid "Cross-project stats"
 msgstr "Cross-project statistieken"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
 msgid "Type"
 msgstr "Soort"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: ../inc/team.inc:139 ../user/team_manage.php:65
 msgid "Message board"
 msgstr "Forum"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
 msgid "Threads"
 msgstr "Onderwerpen"
 
-#: ../inc/team.inc:136
+#: ../inc/team.inc:148
 msgid "Join this team"
 msgstr "Sluit je aan bij dit team"
 
-#: ../inc/team.inc:137
+#: ../inc/team.inc:149
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"NB: als je \"email toestaan\" hebt ingevuld bij je project voorkeuren, zal je "
-"email adres bekend worden bij de team oprichter, indien je jezelf bij een "
-"team opgeeft."
+msgstr "NB: als je \"email toestaan\" hebt ingevuld bij je project voorkeuren, zal je email adres bekend worden bij de team oprichter, indien je jezelf bij een team opgeeft."
 
-#: ../inc/team.inc:140
+#: ../inc/team.inc:152
 msgid "Not accepting new members"
 msgstr "Er is op dit moment een ledenstop"
 
-#: ../inc/team.inc:147
+#: ../inc/team.inc:159
 msgid "Foundership change requested"
 msgstr "Oprichters wissel aangevraagd"
 
-#: ../inc/team.inc:148
+#: ../inc/team.inc:160
 msgid "Respond by %1"
 msgstr "Reageren voor %1"
 
-#: ../inc/team.inc:152
+#: ../inc/team.inc:164
 msgid "Team foundership change"
 msgstr "Team oprichter wisselen"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: ../inc/team.inc:168 ../inc/team.inc:373
 msgid "Members"
 msgstr "Leden"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: ../inc/team.inc:169 ../inc/team.inc:268
 msgid "Founder"
 msgstr "Oprichter"
 
-#: ../inc/team.inc:169
+#: ../inc/team.inc:183
 msgid "Admins"
 msgstr "Administrator"
 
-#: ../inc/team.inc:184
+#: ../inc/team.inc:198
 msgid "New members in last day"
 msgstr "Nieuwe leden"
 
-#: ../inc/team.inc:185
+#: ../inc/team.inc:199
 msgid "Total members"
 msgstr "Totaal aantal leden"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
 msgid "view"
 msgstr "bekijk"
 
-#: ../inc/team.inc:186
+#: ../inc/team.inc:200
 msgid "Active members"
 msgstr "Actieve leden"
 
-#: ../inc/team.inc:187
+#: ../inc/team.inc:201
 msgid "Members with credit"
 msgstr "Leden met punten"
 
-#: ../inc/team.inc:256
+#: ../inc/team.inc:270
 msgid "Admin"
 msgstr "Administrator"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
+#: ../user/top_hosts.php:93 ../user/top_teams.php:123
+#: ../user/top_users.php:128
 msgid "Previous %1"
 msgstr "Vorige %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
+#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
+#: ../user/top_teams.php:128 ../user/top_users.php:133
 msgid "Next %1"
 msgstr "Volgende %1"
 
-#: ../inc/team.inc:289
+#: ../inc/team.inc:303
 msgid "No such team."
 msgstr "Team niet gevonden."
 
-#: ../inc/team.inc:302
+#: ../inc/team.inc:316
 msgid "This operation requires foundership."
 msgstr "Deze actie vereist oprichters rechten."
 
-#: ../inc/team.inc:326
+#: ../inc/team.inc:340
 msgid "This operation requires team admin privileges"
 msgstr "Deze actie vereist administrator rechten"
 
-#: ../inc/team.inc:422
+#: ../inc/team.inc:442
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"WAARSCHUWING: dit is een BOINC-wide team. Indien je hier wijzigingen "
-"aanbrengt, worden ze snel overschreven. Pas daarom het %1BOINC-wide team%2 "
-"zelf aan."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "WAARSCHUWING: dit is een BOINC-wide team. Indien je hier wijzigingen aanbrengt, worden ze snel overschreven. Pas daarom het %1BOINC-wide team%2 zelf aan."
 
-#: ../inc/team.inc:428
+#: ../inc/team.inc:448
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Let op%2: Als je een team opricht worden je project voorkeuren (gedeelde "
-"bronnen, grafische voorkeuren) zichtbaar voor iedereen."
+msgstr "%1Let op%2: Als je een team opricht worden je project voorkeuren (gedeelde bronnen, grafische voorkeuren) zichtbaar voor iedereen."
 
-#: ../inc/team.inc:432
+#: ../inc/team.inc:452
 msgid "Team name, text version"
 msgstr "Naam van team, tekst versie"
 
-#: ../inc/team.inc:433
+#: ../inc/team.inc:453
 msgid "Don't use HTML tags."
 msgstr "Gebruik geen HTML codes."
 
-#: ../inc/team.inc:436
+#: ../inc/team.inc:456
 msgid "Team name, HTML version"
 msgstr "Naam van team, HTML versie"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: ../inc/team.inc:458 ../inc/team.inc:468
 msgid "You may use %1limited HTML tags%2."
 msgstr "%1HTML codes beperkt%2 toegestaan."
 
-#: ../inc/team.inc:439
+#: ../inc/team.inc:459
 msgid "If you don't know HTML, leave this box blank."
 msgstr "Indien je geen HTML kennis hebt, a.u.b. leeg laten."
 
-#: ../inc/team.inc:442
+#: ../inc/team.inc:462
 msgid "URL of team web page, if any"
 msgstr "URL van team webpagina, indien aanwezig"
 
-#: ../inc/team.inc:442
+#: ../inc/team.inc:462
 msgid "without \"http://\""
 msgstr "zonder \"http://\""
 
-#: ../inc/team.inc:443
+#: ../inc/team.inc:463
 msgid "This URL will be linked to from the team's page on this site."
-msgstr "Dit URL zal geplaatst worden op de team pagina hier op de site."
+msgstr "Deze URL zal geplaatst worden op de team pagina hier op de site."
 
-#: ../inc/team.inc:446
+#: ../inc/team.inc:466
 msgid "Description of team"
 msgstr "Beschrijving van team"
 
-#: ../inc/team.inc:462
+#: ../inc/team.inc:482
 msgid "Accept new members?"
 msgstr "Accepteer nieuwe leden?"
 
-#: ../inc/uotd.inc:28
+#: ../inc/uotd.inc:30
 msgid "User profile"
 msgstr "Gebruikers profiel"
 
-#: ../inc/user.inc:119
+#: ../inc/user.inc:120
 msgid "Projects in which you are participating"
 msgstr "Projecten waar je in meedoet"
 
-#: ../inc/user.inc:121
+#: ../inc/user.inc:122
 msgid "Projects in which %1 is participating"
 msgstr "Projecten waar %1 in meedoet"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Project"
 msgstr "Project"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Click for user page"
 msgstr "Klik voor gebruikers pagina"
 
-#: ../inc/user.inc:125
+#: ../inc/user.inc:126
 msgid "Since"
 msgstr "Sinds"
 
-#: ../inc/user.inc:148
+#: ../inc/user.inc:151
 msgid "Computing and credit"
 msgstr "Berekeningen en punten"
 
-#: ../inc/user.inc:151
+#: ../inc/user.inc:154
 msgid "Computers on this account"
 msgstr "Computers op dit account"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
+#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
+#: ../user/view_profile.php:66
 msgid "View"
 msgstr "Bekijk"
 
-#: ../inc/user.inc:161
+#: ../inc/user.inc:164
 msgid "Cross-project ID"
 msgstr "Cross-project ID"
 
-#: ../inc/user.inc:162
+#: ../inc/user.inc:165
 msgid "Cross-project statistics"
 msgstr "Cross-project statistieken"
 
-#: ../inc/user.inc:163
+#: ../inc/user.inc:166
 msgid "Account"
 msgstr "Account"
 
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
+#: ../inc/user.inc:449 ../user/user_search.php:124
 msgid "Team"
 msgstr "Team"
 
-#: ../inc/user.inc:167
+#: ../inc/user.inc:170
 msgid "Cross-project"
 msgstr "Cross-project"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
+#: ../inc/user.inc:171
 msgid "Certificate"
 msgstr "Certificaat"
 
-#: ../inc/user.inc:169
+#: ../inc/user.inc:172
 msgid "Stats on your cell phone"
 msgstr "Statistieken op je mobiele telefoon"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Onbekend berichten type: %1"
-
-#: ../inc/user.inc:198
+#: ../inc/user.inc:197
 msgid "Account information"
 msgstr "Account informatie"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: ../inc/user.inc:206 ../user/get_passwd.php:31
+#: ../user/team_email_list.php:73
 msgid "Email address"
 msgstr "Email adres"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: ../inc/user.inc:210 ../inc/user.inc:400
 msgid "URL"
 msgstr "URL"
 
-#: ../inc/user.inc:206
+#: ../inc/user.inc:213
 msgid "Postal code"
 msgstr "Postcode"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: ../inc/user.inc:214 ../inc/user.inc:394
 msgid "%1 member since"
 msgstr "%1 lid sinds"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: ../inc/user.inc:219 ../inc/user.inc:223
 msgid "Change"
 msgstr "Verander"
 
-#: ../inc/user.inc:209
+#: ../inc/user.inc:224
 msgid "email address"
 msgstr "email adres"
 
-#: ../inc/user.inc:210
+#: ../inc/user.inc:225
 msgid "password"
 msgstr "wachtwoord"
 
-#: ../inc/user.inc:211
+#: ../inc/user.inc:226
 msgid "other account info"
 msgstr "ander account informatie"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: ../inc/user.inc:229 ../inc/user.inc:393
 msgid "User ID"
 msgstr "Gebruikers ID"
 
-#: ../inc/user.inc:213
+#: ../inc/user.inc:229
 msgid "Used in community functions"
 msgstr "Gebruikt in gemeenschaps functies"
 
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: ../inc/user.inc:232 ../user/weak_auth.php:25
 msgid "Account keys"
 msgstr "Account keys"
 
-#: ../inc/user.inc:221
+#: ../inc/user.inc:237
 msgid "Preferences"
 msgstr "Voorkeuren"
 
-#: ../inc/user.inc:224
+#: ../inc/user.inc:240
 msgid "When and how BOINC uses your computer"
 msgstr "Hoe en wanneer BOINC je computer gebruikt"
 
-#: ../inc/user.inc:225
+#: ../inc/user.inc:241
 msgid "Computing preferences"
 msgstr "Computer voorkeuren"
 
-#: ../inc/user.inc:228
+#: ../inc/user.inc:244
 msgid "Message boards and private messages"
 msgstr "Forum en privé berichten"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "Gemeenschaps voorkeuren"
 
-#: ../inc/user.inc:232
+#: ../inc/user.inc:248
 msgid "Preferences for this project"
 msgstr "Voorkeuren voor dit project"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: ../inc/user.inc:249 ../user/prefs.php:30
 msgid "%1 preferences"
 msgstr "%1 voorkeuren"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
+#: ../inc/user.inc:266
+msgid "View the profile of %1"
+msgstr "Bekijk het profiel van %1"
+
+#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
+msgid "Profile"
+msgstr "Profiel"
+
+#: ../inc/user.inc:307 ../user/sample_index.php:114
 msgid "Community"
 msgstr "Gemeenschap"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Verwijder"
-
-#: ../inc/user.inc:245
+#: ../inc/user.inc:314
 msgid "Create"
 msgstr "Aanmaken"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profiel"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: ../inc/user.inc:321 ../inc/user.inc:454
 msgid "%1 posts"
 msgstr "%1 berichten"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "Aankondiging"
 
-#: ../inc/user.inc:269
+#: ../inc/user.inc:346
 msgid "Quit team"
 msgstr "Verlaat team"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: ../inc/user.inc:348 ../inc/user.inc:365
 msgid "Administer"
 msgstr "Administrator"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: ../inc/user.inc:354 ../inc/user.inc:367
 msgid "(foundership change request pending)"
 msgstr "(oprichters wissel in aanvraag)"
 
-#: ../inc/user.inc:279
+#: ../inc/user.inc:356
 msgid "Member of team"
 msgstr "Lid van team"
 
-#: ../inc/user.inc:281
+#: ../inc/user.inc:358
 msgid "find a team"
 msgstr "vind een team"
 
-#: ../inc/user.inc:292
+#: ../inc/user.inc:369
 msgid "Founder but not member of"
 msgstr "Oprichter maar geen lid van"
 
-#: ../inc/user.inc:298
+#: ../inc/user.inc:375
 msgid "Find friends"
 msgstr "Vind vrienden"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
+#: ../inc/user.inc:467 ../inc/user.inc:476
 msgid "Friends"
 msgstr "Vrienden"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
+#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
 msgid "Computers"
 msgstr "Computers"
 
-#: ../inc/user.inc:338
+#: ../inc/user.inc:415
 msgid "Donor"
 msgstr "Donateur"
 
-#: ../inc/user.inc:378
+#: ../inc/user.inc:458
 msgid "Contact"
 msgstr "Contact"
 
-#: ../inc/user.inc:381
+#: ../inc/user.inc:461
 msgid "This person is a friend"
 msgstr "Dit persoon is een vriend"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: ../inc/user.inc:462 ../user/friend.php:240
 msgid "Cancel friendship"
 msgstr "Beëindig vriendschap"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: ../inc/user.inc:465 ../user/friend.php:39
 msgid "Request pending"
 msgstr "In aanvraag"
 
-#: ../inc/user.inc:387
+#: ../inc/user.inc:467
 msgid "Add as friend"
 msgstr "Voeg toe als vriend"
 
-#: ../inc/user.inc:446
+#: ../inc/user.inc:526
 msgid "user name cannot have leading or trailing white space"
 msgstr "gebruikersnaam mag niet starten of eindigen met een spatie"
 
-#: ../inc/user.inc:450
+#: ../inc/user.inc:530
 msgid "user name must be nonempty"
 msgstr "gebruikersnaam mag niet leeg zijn"
 
-#: ../inc/user.inc:454
+#: ../inc/user.inc:534
 msgid "user name may not contain HTML tags"
 msgstr "gebruikersnaam mag geen HTML tags bevatten"
 
-#: ../inc/util.inc:131
+#: ../inc/util.inc:161
 msgid "log out"
 msgstr "Uitloggen"
 
-#: ../inc/util.inc:133
+#: ../inc/util.inc:163
 msgid "log in"
 msgstr "Inloggen"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Inloggen"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: ../inc/util.inc:239 ../user/create_account_form.php:41
 msgid "Create an account"
 msgstr "Een account aanmaken"
 
-#: ../inc/util.inc:206
+#: ../inc/util.inc:240
 msgid "Server status page"
 msgstr "Server status"
 
-#: ../inc/util.inc:248
+#: ../inc/util.inc:277
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr ""
-"De database genereerde een foutmelding bij de behandeling van uw verzoek, "
-"probeer het later nog eens alstublieft."
+msgstr "De database genereerde een foutmelding bij de behandeling van uw verzoek, probeer het later nog eens alstublieft."
 
-#: ../inc/util.inc:257
+#: ../inc/util.inc:286
 msgid "Unable to handle request"
 msgstr "Niet mogelijk om verzoek te behandelen"
 
-#: ../inc/util.inc:277
+#: ../inc/util.inc:306
 msgid "hours"
 msgstr "uren"
 
-#: ../inc/util.inc:280
+#: ../inc/util.inc:309
 msgid "min"
 msgstr "minuten"
 
-#: ../inc/util.inc:283
+#: ../inc/util.inc:312
 msgid "sec"
 msgstr "seconden"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Wachttijd voor deze link is verlopen. Klik op 'terug' en vernieuw de pagina."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Bekijk het profiel van %1"
+#: ../inc/util.inc:473
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Wachttijd voor deze link is verlopen. Klik op 'terug' en vernieuw de pagina."
 
-#: ../inc/util.inc:569
+#: ../inc/util.inc:552
 msgid "Use BBCode tags to format your text"
 msgstr "Gebruik BBCode om de tekst op te maken"
 
-#: ../inc/util.inc:796
+#: ../inc/util.inc:779
 msgid "Project down for maintenance"
 msgstr "Project wegens onderhoud gesloten"
 
-#: ../inc/util.inc:799
+#: ../inc/util.inc:782
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 is tijdelijk gesloten wegens onderhoud.  Probeer het later a.u.b. "
-"opnieuw."
+msgstr "%1 is tijdelijk gesloten wegens onderhoud.  Probeer het later a.u.b. opnieuw."
 
-#: ../inc/util.inc:817
+#: ../inc/util.inc:800
 msgid "Unable to connect to database - please try again later"
 msgstr "Verbinden met database mislukt - probeer het later a.u.b. opnieuw"
 
-#: ../inc/util.inc:821
+#: ../inc/util.inc:804
 msgid "Unable to select database - please try again later"
 msgstr "Selecteren van database mislukt - probeer het later a.u.b. opnieuw"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: ../inc/util.inc:976
+msgid "characters remaining"
+msgstr "aantal tekens resterend"
+
+#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
 msgid "Stay logged in on this computer"
 msgstr "Blijf ingelogd op deze computer"
 
@@ -2325,22 +2495,6 @@ msgstr "Blijf ingelogd op deze computer"
 msgid "Finish account setup"
 msgstr "Account set-up voltooien"
 
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identificatie op deze pagina. Gebruik je echte naam of een nickname."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Welk land wil je vertegenwoordigen, indien van toepassing."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Postcode"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Optioneel"
-
 #: ../user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "U moet een naam voor uw account invoeren"
@@ -2349,38 +2503,38 @@ msgstr "U moet een naam voor uw account invoeren"
 msgid "HTML tags not allowed in name"
 msgstr "HTML tags zijn in uw naam niet toegestaan"
 
-#: ../user/add_venue.php:81
+#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
+#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Pas voorkeuren voor %1 aan"
+
+#: ../user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "Voeg voorkeuren %1 toe voor %2"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
+#: ../user/apps.php:31 ../user/sample_index.php:104
 msgid "Applications"
 msgstr "Applicaties"
 
-#: ../user/apps.php:33
+#: ../user/apps.php:32
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 heeft op dit moment de volgende applicaties. Als je deelneemt aan %1, is "
-"het mogelijk dat er werk voor één of meerdere van deze applicaties wordt "
-"toegedeeld. De meest recente versie zal worden gebruikt en gedownload. Dit "
-"gebeurd automatisch; hier hoef je zelf niets voor te doen."
+msgstr "% 1 heeft momenteel de volgende toepassingen. Wanneer je deelneemt aan 1%, zullen taken voor één of meer van deze toepassingen worden toegewezen aan jouw computer. De huidige versie van de applicatie zal worden gedownload naar jouw computer. Dit gebeurt automatisch; je hoeft niets te doen."
 
-#: ../user/apps.php:50
+#: ../user/apps.php:54
 msgid "Platform"
 msgstr "Platform"
 
-#: ../user/apps.php:51
+#: ../user/apps.php:55
 msgid "Version"
 msgstr "Versie"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Installatie tijdstip"
+#: ../user/apps.php:57
+msgid "Average computing"
+msgstr "Gemiddelde berekening"
 
 #: ../user/bbcode.php:23
 msgid "BBCode tags"
@@ -2392,12 +2546,7 @@ msgid ""
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"BBCode tags laten je toe om opmaak mee te geven aan je tekst in je profiel "
-"of op je message-board berichten. \n"
-"Het is vergelijkbaar met HTML maar eenvoudiger. De tags starten met een [ "
-"(waar je een %1 zou gebruiken in HTML) en eindigen met een ] (waar je %2 zou "
-"gebruiken in HTML)."
+msgstr "BBCode tags laten je toe om opmaak mee te geven aan je tekst in je profiel of op je message-board berichten. \nHet is vergelijkbaar met HTML maar eenvoudiger. De tags starten met een [ (waar je een %1 zou gebruiken in HTML) en eindigen met een ] (waar je %2 zou gebruiken in HTML)."
 
 #: ../user/bbcode.php:31
 msgid "Examples"
@@ -2416,155 +2565,78 @@ msgid "Underline"
 msgstr "Onderlijnen"
 
 #: ../user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Doorstrepen"
+
+#: ../user/bbcode.php:36
 msgid "Superscript"
 msgstr "Superscript"
 
-#: ../user/bbcode.php:36
+#: ../user/bbcode.php:37
 msgid "Big text"
 msgstr "Grote tekst"
 
-#: ../user/bbcode.php:37
+#: ../user/bbcode.php:38
 msgid "Red text"
 msgstr "Rode tekst"
 
-#: ../user/bbcode.php:38
+#: ../user/bbcode.php:39
 msgid "link to website"
 msgstr "link naar website"
 
-#: ../user/bbcode.php:39
+#: ../user/bbcode.php:40
 msgid "Quoted text"
 msgstr "Citaat"
 
-#: ../user/bbcode.php:39
+#: ../user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "gebruik voor citaten"
 
-#: ../user/bbcode.php:40
+#: ../user/bbcode.php:41
 msgid "use to display an image"
 msgstr "gebruik om een afbeelding weer te geven"
 
-#: ../user/bbcode.php:41
+#: ../user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "Stukje code hier"
 
-#: ../user/bbcode.php:41
+#: ../user/bbcode.php:42
 msgid "use to display some code"
 msgstr "gebruik om code weer te geven"
 
-#: ../user/bbcode.php:42
+#: ../user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "Opgemaakte tekst"
 
-#: ../user/bbcode.php:42
+#: ../user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr "gebruik om reeds opgemaakte tekst weer te geven"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item 1"
 msgstr "Item 1"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item2"
 msgstr "Item2"
 
-#: ../user/bbcode.php:43
+#: ../user/bbcode.php:44
 msgid "Item 2"
 msgstr "Item 2"
 
-#: ../user/bbcode.php:45
+#: ../user/bbcode.php:46
 msgid "use to link to Trac ticket on BOINC website"
 msgstr "gebruik om een link te maken naar een Trac ticket op de BOINC website"
 
-#: ../user/bbcode.php:47
+#: ../user/bbcode.php:48
 msgid "use to link to Trac Wiki on BOINC website"
 msgstr "gebruik om een link te maken naar de Trac Wiki op de BOINC website"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "gebruikt om een link te maken naar de SVN changeset op de BOINC website"
-
-#: ../user/bbcode.php:53
+#: ../user/bbcode.php:52
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Indien je een tag niet correct afsluit of een parameter incorrect "
-"specificeert,\n"
-"dan zal de ruwe tag zichzelf tonen in plaats van de geformatteerde tekst."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Deelnemers"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Werk doen"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Mijn account"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "bekijk statistieken, pas voorkeuren aan"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Teams"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "vorm of neem deel aan een team"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Gebruiker van de dag"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Server status"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profielen"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Zoek gebruiker"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Statistieken"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Top deelnemers"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Top computers"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Top teams"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Top GPU modellen"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Talen"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Lees de gebruiksovereenkomst"
+msgstr "Indien je een tag niet correct afsluit of een parameter incorrect specificeert,\ndan zal de ruwe tag zichzelf tonen in plaats van de geformatteerde tekst."
 
 #: ../user/create_account_action.php:26
 msgid "Can't create account"
@@ -2574,217 +2646,156 @@ msgstr "Account aanmaken niet gelukt"
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr "Klik op je webbrowser's <b>Terug</b> knop en probeer opnieuw."
 
-#: ../user/create_account_action.php:47
+#: ../user/create_account_action.php:46
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "Je ReCaptcha antwoord was niet correct. Probeer het a.u.b. opnieuw."
 
-#: ../user/create_account_action.php:70
+#: ../user/create_account_action.php:69
 msgid "You must supply an invitation code to create an account."
 msgstr "Je hebt een uitnodigings code nodig om hier een account aan te maken."
 
-#: ../user/create_account_action.php:73
+#: ../user/create_account_action.php:72
 msgid "The invitation code you gave is not valid."
 msgstr "De ingevulde uitnodigings code is ongeldig."
 
-#: ../user/create_account_action.php:84
+#: ../user/create_account_action.php:83
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Ongeldig e-mail adres; gebruik een geldig email adres in de vorm "
-"'naam at domein'"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Ongeldig e-mail adres; gebruik een geldig email adres in de vorm 'naam at domein'"
 
-#: ../user/create_account_action.php:88
+#: ../user/create_account_action.php:87
 msgid "There's already an account with that email address."
 msgstr "Er bestaat reeds een gebruikersaccount met dit e-mail adres."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "Nieuwe wachtwoorden zijn verschillend"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "Wachtwoord kan enkel ASCII karakters bevatten."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-"Het nieuwe wachtwoord is te kort. Minimum wachtwoord lengte is %1 karakters."
+msgstr "Het nieuwe wachtwoord is te kort. Minimum wachtwoord lengte is %1 karakters."
 
-#: ../user/create_account_action.php:127
+#: ../user/create_account_action.php:126
 msgid "Couldn't create account"
 msgstr "Account aanmaken niet gelukt"
 
-#: ../user/create_account_form.php:44
+#: ../user/create_account_form.php:45
 msgid ""
 "NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
 "select Add Project, and enter an email address and password."
-msgstr ""
-"LET OP: gebruik dit formulier niet als je de BOINC Manager gebruikt. Start "
-"BOINC, selecteer 'Project Toevoegen' en vul een e-mail adres en wachtwoord "
-"in."
+msgstr "LET OP: gebruik dit formulier niet als je de BOINC Manager gebruikt. Start BOINC, selecteer 'Project Toevoegen' en vul een e-mail adres en wachtwoord in."
 
-#: ../user/create_account_form.php:61
+#: ../user/create_account_form.php:57
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"Dit account zal tot het %1 team behoren en zal de project voorkeuren van de "
-"oprichter hebben."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Uitnodigings Code"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-"Er is een geldige uitnodigings code vereist om een account aan te maken."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Email Adres"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Moet een geldig email adres zijn in de vorm 'naam at domein'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Wachtwoord"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Moet minstens %1 karakters lang zijn"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Bevestig wachtwoord"
+msgstr "Dit account zal tot het %1 team behoren en zal de project voorkeuren van de oprichter hebben."
 
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Vul het woord in dat u kan aflezen op de afbeelding"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Account maken"
-
-#: ../user/create_profile.php:50
+#: ../user/create_profile.php:52
 msgid "Picture"
 msgstr "Afbeelding"
 
-#: ../user/create_profile.php:64
+#: ../user/create_profile.php:66
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1 Deze profiel afbeelding wordt links getoond."
 
-#: ../user/create_profile.php:66
+#: ../user/create_profile.php:68
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Om deze te vervangen, klik op \"Bladeren\" en selecteer een JPEG of PNG "
-"afbeelding (%1 of kleiner)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Om deze te vervangen, klik op \"Bladeren\" en selecteer een JPEG of PNG afbeelding (%1 of kleiner)."
 
-#: ../user/create_profile.php:69
+#: ../user/create_profile.php:71
 msgid "To remove it from your profile, check this box:"
 msgstr "Om de afbeelding te verwijderen, dit vakje aanvinken:"
 
-#: ../user/create_profile.php:77
+#: ../user/create_profile.php:79
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Als je een afbeelding wilt toevoegen aan je profiel, klik dan op \"Bladeren\" "
-"en selecteer een JPEG of PNG afbeelding. Kies a.u.b. afbeeldingen van %1 of "
-"minder."
+msgstr "Als je een afbeelding wilt toevoegen aan je profiel, klik dan op \"Bladeren\" en selecteer een JPEG of PNG afbeelding. Kies a.u.b. afbeeldingen van %1 of minder."
 
-#: ../user/create_profile.php:89
+#: ../user/create_profile.php:91
 msgid "Language"
 msgstr "Taal"
 
-#: ../user/create_profile.php:92
+#: ../user/create_profile.php:94
 msgid "Select the language in which your profile is written:"
 msgstr "Selecteer de taal waar je profiel in geschreven is:"
 
-#: ../user/create_profile.php:104
+#: ../user/create_profile.php:106
 msgid "Submit profile"
 msgstr "Profiel toevoegen"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Vul a.u.b het in het plaatje getoonde woord in."
-
-#: ../user/create_profile.php:115
+#: ../user/create_profile.php:112
 msgid "Create/edit profile"
 msgstr "Profiel maken/aanpassen"
 
-#: ../user/create_profile.php:137
+#: ../user/create_profile.php:134
 msgid "The format of your uploaded image is not supported."
 msgstr "De indeling van de geüploade afbeelding wordt niet ondersteund."
 
-#: ../user/create_profile.php:166
+#: ../user/create_profile.php:163
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
-msgstr ""
-"Je %1profiel%2 geeft je de mogelijkheid om je mening en achtergrond te delen "
-"met de %3 gemeenschap."
+msgstr "Je %1profiel%2 geeft je de mogelijkheid om je mening en achtergrond te delen met de %3 gemeenschap."
 
-#: ../user/create_profile.php:213
+#: ../user/create_profile.php:209
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "Je ReCaptcha antwoord was niet correct.  Probeer het a.u.b. opnieuw."
 
-#: ../user/create_profile.php:222
+#: ../user/create_profile.php:218
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Je eerste reactie wordt gezien als spam door het Akismet anti-spam systeem. "
-" Pas a.u.b. je tekst aan en probeer het opnieuw."
+msgstr "Je eerste reactie wordt gezien als spam door het Akismet anti-spam systeem.  Pas a.u.b. je tekst aan en probeer het opnieuw."
 
-#: ../user/create_profile.php:230
+#: ../user/create_profile.php:226
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Je tweede reactie wordt gezien als spam door het Akismet anti-spam systeem. "
-" Pas a.u.b. je tekst aan en probeer het opnieuw."
+msgstr "Je tweede reactie wordt gezien als spam door het Akismet anti-spam systeem.  Pas a.u.b. je tekst aan en probeer het opnieuw."
 
-#: ../user/create_profile.php:246
+#: ../user/create_profile.php:242
 msgid "Your profile submission was empty."
 msgstr "Je profiel opgave was leeg."
 
-#: ../user/create_profile.php:285
+#: ../user/create_profile.php:283
 msgid "Could not update the profile: database error"
 msgstr "Profiel is niet bijgewerkt: database fout"
 
-#: ../user/create_profile.php:297
+#: ../user/create_profile.php:299
 msgid "Could not create the profile: database error"
 msgstr "Profiel is niet toegevoegd: database fout"
 
-#: ../user/create_profile.php:302
+#: ../user/create_profile.php:304
 msgid "Profile saved"
 msgstr "Profiel opgeslagen"
 
-#: ../user/create_profile.php:304
+#: ../user/create_profile.php:306
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "Gefeliciteerd! Je profiel is met succes opgenomen in onze database."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Bekijk je profiel%2"
+#: ../user/create_profile.php:309
+msgid "View your profile"
+msgstr "Bekijk je profiel"
 
-#: ../user/create_profile.php:315
+#: ../user/create_profile.php:319
 msgid "Create a profile"
 msgstr "Een profiel aanmaken"
 
-#: ../user/create_profile.php:343
+#: ../user/create_profile.php:347
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Om spam te voorkomen, moet je een gemiddeld aantal punten hebben van %1 of "
-"groter om een profiel te maken of aan te passen.  Excuses voor het ongemak."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Om spam te voorkomen, moet je een gemiddeld aantal punten hebben van %1 of groter om een profiel te maken of aan te passen.  Excuses voor het ongemak."
 
 #: ../user/delete_account.php:57
 msgid "Couldn't delete account"
@@ -2809,28 +2820,21 @@ msgid ""
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"Het verwijderen van je gebruikersaccount zal al je\n"
-"persoonlijke informatie verwijderen van onze servers,\n"
-"inclusief je profiel en forum berichten.\n"
-"Er zullen geen taken worden toegewezen aan de computers\n"
-"welke gelinkt staan met deze account."
+msgstr "Het verwijderen van je gebruikersaccount zal al je\npersoonlijke informatie verwijderen van onze servers,\ninclusief je profiel en forum berichten.\nEr zullen geen taken worden toegewezen aan de computers\nwelke gelinkt staan met deze account."
 
 #: ../user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Deze actie kan niet ongedaan gemaakt worden.\n"
-"Wanneer deze account is verwijdert, kan je hem niet meer terug oproepen."
+msgstr "Deze actie kan niet ongedaan gemaakt worden.\nWanneer deze account is verwijdert, kan je hem niet meer terug oproepen."
 
 #: ../user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "Weet je het zeker dat je je gebruikersaccount wenst te verwijderen?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
+#: ../user/delete_account.php:79 ../user/delete_profile.php:54
+#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
+#: ../user/prefs_remove.php:53 ../user/user_search.php:59
 #: ../user/user_search.php:64
 msgid "Yes"
 msgstr "Ja"
@@ -2839,8 +2843,8 @@ msgstr "Ja"
 msgid "Delete this account"
 msgstr "Deze gebruikersaccount verwijderen"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
+#: ../user/delete_account.php:80 ../user/delete_profile.php:55
+#: ../user/friend.php:241 ../user/user_search.php:58
 #: ../user/user_search.php:63
 msgid "No"
 msgstr "Nee"
@@ -2849,51 +2853,44 @@ msgstr "Nee"
 msgid "Do not delete this account"
 msgstr "Verwijder deze account niet"
 
-#: ../user/delete_profile.php:30
+#: ../user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
-msgstr ""
-"verwijderen van dit profiel is mislukt - probeer het a.u.b. later nog eens"
+msgstr "verwijderen van dit profiel is mislukt - probeer het a.u.b. later nog eens"
 
-#: ../user/delete_profile.php:33
+#: ../user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "Verwijder Bevestiging"
 
-#: ../user/delete_profile.php:35
+#: ../user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "Je profiel is verwijderd."
 
-#: ../user/delete_profile.php:40
+#: ../user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "Profiel verwijder bevestiging"
 
-#: ../user/delete_profile.php:43
+#: ../user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "Weet je het zeker?"
 
-#: ../user/delete_profile.php:44
+#: ../user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"Verwijderde profielen zijn permanent verwijderd en kunnen niet meer "
-"opgeroepen worden --\n"
-"Je zal een nieuw profiel moeten aanmaken\n"
-"als je in de toekomst een profiel wenst te gebruiken."
+msgstr "Verwijderde profielen zijn permanent verwijderd en kunnen niet meer opgeroepen worden --\nJe zal een nieuw profiel moeten aanmaken\nals je in de toekomst een profiel wenst te gebruiken."
 
-#: ../user/delete_profile.php:48
+#: ../user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"Als je zeker bent, klik dan op 'Ja'\n"
-"om je profiel te verwijderen uit onze database."
+msgstr "Als je zeker bent, klik dan op 'Ja'\nom je profiel te verwijderen uit onze database."
 
-#: ../user/delete_profile.php:52
+#: ../user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "Verwijder mijn profiel"
 
-#: ../user/delete_profile.php:53
+#: ../user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "Verwijder mijn profiel niet"
 
@@ -2911,10 +2908,9 @@ msgstr "Je donatie is afgerond."
 
 #: ../user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Uw donatie wordt verwerkt in de voortgangsbalk na de ontvangstbevestiging "
-"van Paypal."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "Uw donatie wordt verwerkt in de voortgangsbalk na de ontvangstbevestiging van Paypal."
 
 #: ../user/donated.php:32
 msgid "You have canceled your donation."
@@ -2932,9 +2928,7 @@ msgstr "%1 donaties"
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"Dit project neemt donaties aan d.m.v.\n"
-"%1."
+msgstr "Dit project neemt donaties aan d.m.v.\n%1."
 
 #: ../user/donations.php:42
 msgid ""
@@ -2949,19 +2943,7 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"Voor donaties vult u in het onderstaande veld het gewenste bedrag in.\n"
-"        PayPal accepteert transacties in diverse valuta\n"
-"        (Canadese dollar, euro, Britse pond, Amerikaanse dollar,\n"
-"         Yen, Australische dollar, Nieuw-Zeelandse dollar,\n"
-"        Zwitserse frank, Hong Kong dollar, Singapore dollar, Zweedse kroon,\n"
-"        Deense Kroon, Poolse zloty, Noorse Kroon,\n"
-"        Hongaarse forint, Tsjechische Koruna).\n"
-"        De bijgevoegde valuta converter kunt u gebruiken\n"
-"        om het equivalent van het bedrag te berekenen in diverse valuta.\n"
-"        (Attentie: de conversie is slechts een benadering,\n"
-"         het uiteindelijke bedrag kan afwijken van het oorspronkelijke "
-"bedrag)."
+msgstr "Voor donaties vult u in het onderstaande veld het gewenste bedrag in.\n        PayPal accepteert transacties in diverse valuta\n        (Canadese dollar, euro, Britse pond, Amerikaanse dollar,\n         Yen, Australische dollar, Nieuw-Zeelandse dollar,\n        Zwitserse frank, Hong Kong dollar, Singapore dollar, Zweedse kroon,\n        Deense Kroon, Poolse zloty, Noorse Kroon,\n        Hongaarse forint, Tsjechische Koruna).\n        De bijgevoegde valuta converter kunt u gebruik [...]
 
 #: ../user/donations.php:316
 msgid "Amount you would like to donate"
@@ -2979,17 +2961,11 @@ msgstr "Anonieme donatie"
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"U dient dit aan te vinken als u niet wilt dat uw naam en accountnummer "
-"voorkomt op\n"
-"de lijst van donateurs.<br>Indien niet aangevinkt, wordt uw deelnemers-"
-"identiteit als volgt geregistreerd %1"
+msgstr "U dient dit aan te vinken als u niet wilt dat uw naam en accountnummer voorkomt op\nde lijst van donateurs.<br>Indien niet aangevinkt, wordt uw deelnemers-identiteit als volgt geregistreerd %1"
 
 #: ../user/donations.php:324
 msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Om de donatie aan u toe te wijzen, dient u zich eerst aan te melden met uw "
-"gebruikersnaam."
+msgstr "Om de donatie aan u toe te wijzen, dient u zich eerst aan te melden met uw gebruikersnaam."
 
 #: ../user/donations.php:328
 msgid "Proceed"
@@ -3010,26 +2986,18 @@ msgstr "Het is mogelijk software te downloaden in verschillende categorieën."
 #: ../user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Deze programma's worden niet ondersteund door %1 en gebruik ervan is op "
-"eigen risico."
+msgstr "Deze programma's worden niet ondersteund door %1 en gebruik ervan is op eigen risico."
 
 #: ../user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"Wij geven geen installatie instructies voor deze programma's.\n"
-"Het is evengoed mogelijk dat de maker instructies heeft toegevoegd bij het "
-"programma zelf. \n"
-"Als dit niet het geval is raden we aan contact op te nemen met de maker."
+msgstr "Wij geven geen installatie instructies voor deze programma's.\nHet is evengoed mogelijk dat de maker instructies heeft toegevoegd bij het programma zelf. \nAls dit niet het geval is raden we aan contact op te nemen met de maker."
 
 #: ../user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-"Instructies voor het installeren en uitvoeren van BOINC vind je %1hier%2."
+msgstr "Instructies voor het installeren en uitvoeren van BOINC vind je %1hier%2."
 
 #: ../user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
@@ -3097,259 +3065,210 @@ msgstr "Herstellen bevestigen"
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Deze opdracht maakt alle wijzigingen die u in uw voorkeursinstellingen hebt "
-"aangebracht, ongedaan. Dit kunt u annuleren door In uw browser op de knop "
-"'vorige pagina' te klikken."
+msgstr "Deze opdracht maakt alle wijzigingen die u in uw voorkeursinstellingen hebt aangebracht, ongedaan. Dit kunt u annuleren door In uw browser op de knop 'vorige pagina' te klikken."
 
 #: ../user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "Voorkeursinstellingen opnieuw configureren"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: ../user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
 msgstr "Fout: niet de goede indeling, alleen JPEG en PNG worden ondersteund."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: ../user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr "Je onderschrift is te lang, gebruik a.u.b. niet meer dan 250 karakters."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Geen deelnemer met gebruikersnaam: %1 gevonden"
+#: ../user/edit_forum_preferences_action.php:139
+#: ../user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Niet zo'n gebruiker:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: ../user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"Hoe wilt u op hoogte worden gesteld van nieuwe persoonlijke berichten, "
-"verzoeken van vrienden, berichten in persoonlijke nieuwsgroepen en andere "
-"notificaties?"
+msgstr "Hoe wilt u op hoogte worden gesteld van nieuwe persoonlijke berichten, verzoeken van vrienden, berichten in persoonlijke nieuwsgroepen en andere notificaties?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: ../user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "Via de web-pagina van mijn persoonlijke account (niet per e-mail)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: ../user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "Direct, per e-mail"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: ../user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "In een enkele dagelijkse e-mail"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: ../user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "gebruikersnaam op het forum"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: ../user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "Gebruikersafbeelding (avatar)"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: ../user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "Een afbeelding die u als deelnemer op de prikborden symboliseert."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: ../user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "Bestandsextensie: JPG of PNG. Omvang: maximaal 4 KB, 100x100 pixels"
 
-#: ../user/edit_forum_preferences_form.php:80
+#: ../user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "Geen gebruikersafbeelding toevoegen"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: ../user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "Gebruik een door %1 verstrekte avatar (wereldwijd herkende avatar)"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: ../user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "Gebruik deze geüploade avatar:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: ../user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "Avatar-voorbeeldweergave"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: ../user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "Zo wordt uw avatar weergegeven"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: ../user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "Onderschrift bij forumberichten"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: ../user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Ga eens kijken bij de %1diverse aanbieders%2\n"
-"<br> van gratis dynamische 'onderschrift-afbeeldingen'\n"
-"<br> voor de weergave van uw huidige puntentotaal, de nieuwste projectinfo, "
-"enz."
+msgstr "Ga eens kijken bij de %1diverse aanbieders%2\n<br> van gratis dynamische 'onderschrift-afbeeldingen'\n<br> voor de weergave van uw huidige puntentotaal, de nieuwste projectinfo, enz."
 
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "aantal tekens resterend"
-
-#: ../user/edit_forum_preferences_form.php:105
+#: ../user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "Onderschrift standaard bijvoegen"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: ../user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "Voorbeeldweergave van onderschrift"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: ../user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "Zo wordt uw onderschrift bij de forums weergegeven"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: ../user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "Berichtenweergave"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: ../user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "Weergaveopties"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: ../user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "Avatars verbergen"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: ../user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "Onderschriften verbergen"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: ../user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "Afbeeldingen weergeven als internetkoppeling"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: ../user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "Koppelingen openen in een nieuw browservenster/tabblad"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: ../user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "Specifieke gebruikers markeren"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: ../user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "Toon deze hoeveelheid berichten per pagina"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: ../user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "Sorteeropties"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: ../user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "Onderwerpen:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: ../user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "Reacties:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: ../user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "Nieuwste reacties automatisch als eerste weergeven"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: ../user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "Plaats vastgepinde berichten niet naar boven"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: ../user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "Berichtenfilter-opties"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "Gefilterde gebruikers"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: ../user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
 msgstr "Negeer forum en privé -berichten van deze gebruiker(s)."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: ../user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "Gebruikers ID (Bijvoorbeeld: 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
 msgid "Add user to filter"
 msgstr "Gebruiker toevoegen aan filter"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: ../user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "Klik hier om de voorkeuren bij te werken"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "Invoer wissen"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: ../user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr "Of klik hier om de instellingen naar de standaardwaarde te herstellen"
 
 #: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Ongeldige account key"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Er is geen gebruikersaccount met dit e-mail adres gevonden"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Ongeldig wachtwoord"
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Vanwege een probleem in de database is het bijwerken mislukt. Probeer het later a.u.b. opnieuw."
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
+#: ../user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "Verander wachtwoord"
 
-#: ../user/edit_passwd_action.php:67
+#: ../user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "Je wachtwoord is veranderd."
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Vanwege een probleem in de database is het bijwerken mislukt. Probeer het "
-"later a.u.b. opnieuw."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Je kan jezelf inloggen door middel van"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "je e-mail adres en het oude wachtwoord"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "je account key"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Huidig wachtwoord"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>OF</b>: Account key"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Ontvang account key per e-mail"
-
-#: ../user/edit_passwd_form.php:53
+#: ../user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "Nieuw wachtwoord"
 
-#: ../user/edit_passwd_form.php:54
+#: ../user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "Nieuw wachtwoord, opnieuw"
 
@@ -3394,18 +3313,13 @@ msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"Een taakspecifieke <b>statusindicator</b> geeft aan of de taak naar een "
-"computer is verstuurd, en de verwerking ervan al dan niet is voltooid. "
-"Geldige waarden zijn:"
+msgstr "Een taakspecifieke <b>statusindicator</b> geeft aan of de taak naar een computer is verstuurd, en de verwerking ervan al dan niet is voltooid. Geldige waarden zijn:"
 
 #: ../user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr ""
-"De taak kan nog niet worden verstuurd (bv. omdat de invoerbestanden niet "
-"beschikbaar zijn)"
+msgstr "De taak kan nog niet worden verstuurd (bv. omdat de invoerbestanden niet beschikbaar zijn)"
 
 #: ../user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
@@ -3423,9 +3337,7 @@ msgstr "De taak werd verstuurd; afwachtend op voltooiing."
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
-msgstr ""
-"De taak is naar een computer verstuurd; ofwel de verwerkingstijd is "
-"overschreden of de verwerking is voltooid."
+msgstr "De taak is naar een computer verstuurd; ofwel de verwerkingstijd is overschreden of de verwerking is voltooid."
 
 #: ../user/explain_state.php:49
 msgid "Outcomes"
@@ -3435,17 +3347,13 @@ msgstr "Uitkomst"
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
-msgstr ""
-"De <b>uitslag</b> is bekend als de serverstatus de indicatie <b>over "
-"(beëindigd)</b> aangeeft. Geldige waarden zijn:"
+msgstr "De <b>uitslag</b> is bekend als de serverstatus de indicatie <b>over (beëindigd)</b> aangeeft. Geldige waarden zijn:"
 
 #: ../user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
-msgstr ""
-"De taak is naar een computer verstuurd, maar de verwerking ervan is nog niet "
-"voltooid en de uitslag nog niet bekend."
+msgstr "De taak is naar een computer verstuurd, maar de verwerking ervan is nog niet voltooid en de uitslag nog niet bekend."
 
 #: ../user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
@@ -3455,9 +3363,7 @@ msgstr "Een computer heeft de taak voltooid en deze succesvol verzonden."
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
-msgstr ""
-"De server kon de taak niet naar een computer versturen (mogelijk omdat de "
-"doelcomputer niet over de benodigde capaciteit beschikt)"
+msgstr "De server kon de taak niet naar een computer versturen (mogelijk omdat de doelcomputer niet over de benodigde capaciteit beschikt)"
 
 #: ../user/explain_state.php:65
 msgid "Client error"
@@ -3465,33 +3371,25 @@ msgstr "Client fout"
 
 #: ../user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-"De taak is naar een computer verzonden en er heeft zich een fout voorgedaan."
+msgstr "De taak is naar een computer verzonden en er heeft zich een fout voorgedaan."
 
 #: ../user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr ""
-"De taak werd naar een computer verzonden, maar er werd geen antwoord "
-"ontvangen binnen de gestelde tijdslimiet."
+msgstr "De taak werd naar een computer verzonden, maar er werd geen antwoord ontvangen binnen de gestelde tijdslimiet."
 
 #: ../user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"De taak werd niet naar een computer gestuurd, omdat er genoeg andere taken "
-"werden voltooid voor deze werkeenheid."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "De taak werd niet naar een computer gestuurd, omdat er genoeg andere taken werden voltooid voor deze werkeenheid."
 
 #: ../user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
-msgstr ""
-"De taak werd gerapporteerd maar kon niet gevalideerd worden. Dit gebeurt "
-"meestal doordat de output uitvoerbestanden verloren zijn gegaan op de "
-"server."
+msgstr "De taak werd gerapporteerd maar kon niet gevalideerd worden. Dit gebeurt meestal doordat de output uitvoerbestanden verloren zijn gegaan op de server."
 
 #: ../user/explain_state.php:80
 msgid "Client states"
@@ -3499,11 +3397,9 @@ msgstr "Client status"
 
 #: ../user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Een clientspecifieke <b>statusindicator</b> geeft de fase aan waarin een "
-"fout in de verwerking optrad."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Een clientspecifieke <b>statusindicator</b> geeft de fase aan waarin een fout in de verwerking optrad."
 
 #: ../user/explain_state.php:86
 msgid "The computer has not yet completed the task."
@@ -3533,9 +3429,7 @@ msgstr "Rapportage tijd en deadline"
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr ""
-"De verwerkingsstatus in het veld <b>rapportagetijd of tijdslimiet</b> is "
-"afhankelijk van de terugmelding van de taak:"
+msgstr "De verwerkingsstatus in het veld <b>rapportagetijd of tijdslimiet</b> is afhankelijk van de terugmelding van de taak:"
 
 #: ../user/explain_state.php:110
 msgid "Already reported"
@@ -3579,41 +3473,35 @@ msgstr "Verstuur e-mail"
 
 #: ../user/ffmail_action.php:59
 msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Klik in uw browser op de knop 'vorige pagina' om terug te keren naar het "
-"berichtenformulier"
+msgstr "Klik in uw browser op de knop 'vorige pagina' om terug te keren naar het berichtenformulier"
 
 #: ../user/ffmail_action.php:63
 msgid "Sending emails"
 msgstr "Bezig met versturen van e-mailberichten"
 
-#: ../user/ffmail_action.php:84
+#: ../user/ffmail_action.php:82
 msgid "email sent successfully to %1"
 msgstr "e-mail succesvol verzonden naar %1"
 
-#: ../user/ffmail_action.php:86
+#: ../user/ffmail_action.php:84
 msgid "failed to send email to %1: %2"
 msgstr "e-mail versturen naar %1: %2 is mislukt"
 
-#: ../user/ffmail_action.php:92
+#: ../user/ffmail_action.php:90
 msgid "Thanks for telling your friends about %1"
 msgstr "Bedankt dat u uw vrienden hebt verteld over %1"
 
-#: ../user/ffmail_action.php:94
+#: ../user/ffmail_action.php:92
 msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"U hebt geen namen en/of e-mailadressen van uw vrienden ingevuld: ga %1terug "
-"naar het formulier%2 en vul deze in."
+"You forgot to enter your friends' names and/or email addresses; Please "
+"%1return to the form%2 and enter them."
+msgstr "U hebt geen namen en/of e-mailadressen van uw vrienden ingevuld: ga %1terug naar het formulier%2 en vul deze in."
 
 #: ../user/ffmail_form.php:30
 msgid ""
 "This project hasn't created an email message - please notify its "
 "administrators"
-msgstr ""
-"Het project heeft geen e-mail aangemaakt - neem a.u.b. contact op met een "
-"admin"
+msgstr "Het project heeft geen e-mail aangemaakt - neem a.u.b. contact op met een admin"
 
 #: ../user/ffmail_form.php:33
 msgid "Tell your friends about %1"
@@ -3621,19 +3509,14 @@ msgstr "Vertel je vrienden over %1"
 
 #: ../user/ffmail_form.php:37
 msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-"U helpt ons door uw vrienden, familieleden en collega's te vertellen over %1"
+msgstr "U helpt ons door uw vrienden, familieleden en collega's te vertellen over %1"
 
 #: ../user/ffmail_form.php:39
 msgid ""
 "Fill in this form with the names and email addresses of people you think "
 "might be interested in %1. We'll send them an email in your name, and you "
 "can add your own message if you like."
-msgstr ""
-"Op dit formulier vult u de namen en e-mailadressen in van de mensen die "
-"wellicht geïnteresseerd zijn in %1. Wij sturen hen dan namens u een "
-"e-mailbericht en - indien u dat wenst- kunt u een persoonlijk bericht "
-"bijvoegen."
+msgstr "Op dit formulier vult u de namen en e-mailadressen in van de mensen die wellicht geïnteresseerd zijn in %1. Wij sturen hen dan namens u een e-mailbericht en - indien u dat wenst- kunt u een persoonlijk bericht bijvoegen."
 
 #: ../user/ffmail_form.php:42
 msgid "Your name:"
@@ -3659,84 +3542,74 @@ msgstr "Toegevoegd bericht (optioneel)"
 msgid "Send"
 msgstr "Verzenden"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: ../user/forum_banishment_vote.php:37
+#: ../user/forum_banishment_vote_action.php:35
 msgid "You are not authorized to banish users."
 msgstr "U bent niet gemachtigd om deelnemers uit te sluiten."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "Uitsluitingsvoorstel"
 
-#: ../user/forum_banishment_vote.php:50
+#: ../user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "Geen gebruiker met dit ID gevonden."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
 msgid "User is already banished"
 msgstr "Deelnemer is reeds uitgesloten"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"Wilt u %1 echt uitsluiten?<br/>Het is %1 dan niet toegestaan om gedurende de "
-"geselecteerde periode berichten te plaatsen.<br/>Dit is alleen acceptabel "
-"indien %1 zich herhaaldelijk onbehoorlijk heeft gedragen."
+msgstr "Wilt u %1 echt uitsluiten?<br/>Het is %1 dan niet toegestaan om gedurende de geselecteerde periode berichten te plaatsen.<br/>Dit is alleen acceptabel indien %1 zich herhaaldelijk onbehoorlijk heeft gedragen."
 
-#: ../user/forum_banishment_vote.php:61
+#: ../user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Kies een van de redenen, of geef zelf een uitgebreidere motivatie waarom de "
-"deelnemer moet worden uitgesloten."
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Kies een van de redenen, of geef zelf een uitgebreidere motivatie waarom de deelnemer moet worden uitgesloten."
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "Categorie"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
+#: ../user/forum_banishment_vote.php:67
+#: ../user/forum_banishment_vote_action.php:59
+#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
 msgid "Obscene"
 msgstr "Obsceen"
 
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
+#: ../user/forum_banishment_vote.php:68
+#: ../user/forum_banishment_vote_action.php:61
+#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
 msgid "Flame/Hate mail"
 msgstr "Haat e-mail"
 
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
+#: ../user/forum_banishment_vote.php:69
+#: ../user/forum_banishment_vote_action.php:63
+#: ../user/forum_moderate_post.php:62
 msgid "User Request"
 msgstr "Gebruikers Verzoek"
 
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Anders"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
+#: ../user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "Reden"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "Verstuurd indien niet leeg"
 
-#: ../user/forum_banishment_vote.php:74
+#: ../user/forum_banishment_vote.php:77
 msgid "Proceed with vote"
 msgstr "Doorgaan met uitsluitingsvoorstel"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
+#: ../user/forum_banishment_vote_action.php:41
+#: ../user/forum_moderate_post_action.php:66
 msgid "You must specify an action..."
 msgstr "U dient een actie te specificeren..."
 
@@ -3744,15 +3617,13 @@ msgstr "U dient een actie te specificeren..."
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr ""
-"Dit bericht kan niet meer worden bewerkt.<br/>Berichten kunnen nog worden "
-"bewerkt binnen %1 minuten nadat deze zijn aangemaakt."
+msgstr "Dit bericht kan niet meer worden bewerkt.<br/>Berichten kunnen nog worden bewerkt binnen %1 minuten nadat deze zijn aangemaakt."
 
 #: ../user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "U bent niet gemachtigd om dit bericht te bewerken."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
+#: ../user/forum_edit.php:86 ../user/forum_search.php:74
 msgid "Forum"
 msgstr "Forum"
 
@@ -3761,931 +3632,864 @@ msgid "Edit your message"
 msgstr "Bericht aanpassen"
 
 #: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: ../user/forum_post.php:113 ../user/forum_post.php:115
+#: ../user/team_forum.php:71
 msgid "Title"
 msgstr "Titel"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: ../user/forum_edit.php:144 ../user/forum_post.php:133
 msgid "Add my signature to this post"
 msgstr "Onderschrift invoegen bij deze post"
 
-#: ../user/forum_forum.php:41
+#: ../user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "Verborgen voor jou"
 
-#: ../user/forum_forum.php:80
+#: ../user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "Team forum van %1"
 
-#: ../user/forum_forum.php:96
+#: ../user/forum_forum.php:99
 msgid "New thread"
 msgstr "Nieuw onderwerp"
 
-#: ../user/forum_forum.php:96
+#: ../user/forum_forum.php:99
 msgid "Add a new thread to this forum"
 msgstr "Een onderwerp toevoegen aan dit forum"
 
-#: ../user/forum_forum.php:116
+#: ../user/forum_forum.php:119
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "Dit forum is ook verkrijgbaar als %1RSS feed%2"
 
-#: ../user/forum_forum.php:174
+#: ../user/forum_forum.php:178
 msgid "This thread is hidden"
 msgstr "Dit onderwerp is verborgen"
 
-#: ../user/forum_forum.php:178
+#: ../user/forum_forum.php:182
 msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-"Dit onderwerp is gemarkeerd en vergrendeld en u hebt het nog niet gelezen"
+msgstr "Dit onderwerp is gemarkeerd en vergrendeld en u hebt het nog niet gelezen"
 
-#: ../user/forum_forum.php:178
+#: ../user/forum_forum.php:182
 msgid "sticky/locked/unread"
 msgstr "vastgezet/afgesloten/ongelezen"
 
-#: ../user/forum_forum.php:180
+#: ../user/forum_forum.php:184
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "Dit onderwerp is gemarkeerd en u hebt het nog niet gelezen"
 
-#: ../user/forum_forum.php:180
+#: ../user/forum_forum.php:184
 msgid "sticky/unread"
 msgstr "vastgezet/ongelezen"
 
-#: ../user/forum_forum.php:184
+#: ../user/forum_forum.php:188
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "U hebt dit onderwerp nog niet gelezen en het is vergrendeld"
 
-#: ../user/forum_forum.php:184
+#: ../user/forum_forum.php:188
 msgid "unread/locked"
 msgstr "ongelezen/afgesloten"
 
-#: ../user/forum_forum.php:186
+#: ../user/forum_forum.php:190
 msgid "You haven't read this thread yet"
 msgstr "U hebt dit onderwerp nog niet gelezen"
 
-#: ../user/forum_forum.php:192
+#: ../user/forum_forum.php:196
 msgid "This thread is sticky and locked"
 msgstr "Dit onderwerp is gemarkeerd en vergrendeld"
 
-#: ../user/forum_forum.php:192
+#: ../user/forum_forum.php:196
 msgid "sticky/locked"
 msgstr "vastgezet/afgesloten"
 
-#: ../user/forum_forum.php:194
+#: ../user/forum_forum.php:198
 msgid "This thread is sticky"
 msgstr "Dit onderwerp is vastgezet"
 
-#: ../user/forum_forum.php:194
+#: ../user/forum_forum.php:198
 msgid "sticky"
 msgstr "vastgezet"
 
-#: ../user/forum_forum.php:198
+#: ../user/forum_forum.php:202
 msgid "This thread is locked"
 msgstr "Dit onderwerp is afgesloten"
 
-#: ../user/forum_forum.php:198
+#: ../user/forum_forum.php:202
 msgid "locked"
 msgstr "afgesloten"
 
-#: ../user/forum_forum.php:200
+#: ../user/forum_forum.php:204
 msgid "You read this thread"
 msgstr "U hebt dit onderwerp gelezen"
 
-#: ../user/forum_forum.php:200
+#: ../user/forum_forum.php:204
 msgid "read"
 msgstr "gelezen"
 
-#: ../user/forum_help_desk.php:27
+#: ../user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "Vraag en antwoord"
 
-#: ../user/forum_help_desk.php:30
+#: ../user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Gebruik Skype om in diverse talen een rechtreeks gesprek te voeren met een "
-"vrijwilliger. Klik op %1BOINC Online Help%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Gebruik Skype om in diverse talen een rechtreeks gesprek te voeren met een vrijwilliger. Klik op %1BOINC Online Help%2."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
 msgid "Topic"
 msgstr "Onderwerp"
 
-#: ../user/forum_help_desk.php:45
+#: ../user/forum_help_desk.php:47
 msgid "Questions"
 msgstr "Vragen"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: ../user/forum_index.php:58 ../user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "Discussie onder de leden van %1"
 
-#: ../user/forum_index.php:69
+#: ../user/forum_index.php:74
 msgid "%1 Message boards"
 msgstr "%1 Forum"
 
-#: ../user/forum_index.php:78
+#: ../user/forum_index.php:83
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
-msgstr ""
-"Als je een vraag of probleem hebt, gebruik dan a.u.b. de %1Vraag & Antwoord%"
-"2 sectie van het forum."
+msgstr "Als je een vraag of probleem hebt, gebruik dan a.u.b. de %1Vraag & Antwoord%2 sectie van het forum."
 
-#: ../user/forum_index.php:123
+#: ../user/forum_index.php:128
 msgid "Subscribed threads"
 msgstr "Geabonneerde onderwerpen"
 
-#: ../user/forum_moderate_post.php:43
+#: ../user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "Bericht aanpasen"
 
-#: ../user/forum_moderate_post.php:52
+#: ../user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "Bericht verbergen"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "Commerciële spam"
 
-#: ../user/forum_moderate_post.php:58
+#: ../user/forum_moderate_post.php:61
 msgid "Doublepost"
 msgstr "Dubbel bericht"
 
-#: ../user/forum_moderate_post.php:63
+#: ../user/forum_moderate_post.php:66
 msgid "Move post"
 msgstr "Bericht verplaatsen"
 
-#: ../user/forum_moderate_post.php:65
+#: ../user/forum_moderate_post.php:68
 msgid "Destination thread ID:"
 msgstr "ID van doel onderwerp:"
 
-#: ../user/forum_moderate_post.php:78
+#: ../user/forum_moderate_post.php:81
 msgid "Banish user"
 msgstr "Deelnemer uitsluiten"
 
-#: ../user/forum_moderate_post.php:80
+#: ../user/forum_moderate_post.php:83
 msgid "Ban duration"
 msgstr "Duur van uitsluiting"
 
-#: ../user/forum_moderate_post.php:81
+#: ../user/forum_moderate_post.php:84
 msgid "4 hours"
 msgstr "4 uur"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
 msgid "1 day"
 msgstr "1 dag"
 
-#: ../user/forum_moderate_post.php:83
+#: ../user/forum_moderate_post.php:86
 msgid "1 week"
 msgstr "1 week"
 
-#: ../user/forum_moderate_post.php:84
+#: ../user/forum_moderate_post.php:87
 msgid "2 weeks"
 msgstr "2 weken"
 
-#: ../user/forum_moderate_post.php:85
+#: ../user/forum_moderate_post.php:88
 msgid "1 month"
 msgstr "1 maand"
 
-#: ../user/forum_moderate_post.php:86
+#: ../user/forum_moderate_post.php:89
 msgid "Forever"
 msgstr "Altijd"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-"Optionele eigen motivatie %1 Deze wordt bijgevoegd in het e-mailbericht aan "
-"de betreffende deelnemer.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
+#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
+#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
+#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
 msgid "OK"
 msgstr "OK"
 
-#: ../user/forum_moderate_post_action.php:57
+#: ../user/forum_moderate_post.php:107
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Optionele eigen motivatie %1 Deze wordt bijgevoegd in het e-mailbericht aan de betreffende deelnemer.%2"
+
+#: ../user/forum_moderate_post_action.php:60
 msgid "You are not authorized to moderate this post."
 msgstr "U bent niet gemachtigd om hier als moderator op te treden."
 
-#: ../user/forum_moderate_post_action.php:85
+#: ../user/forum_moderate_post_action.php:105
 msgid "Can't move to different category type"
 msgstr "Kan niet verplaatst worden naar ander categorie type"
 
-#: ../user/forum_moderate_post_action.php:89
+#: ../user/forum_moderate_post_action.php:109
 msgid "Can't move to different category"
 msgstr "Kan niet verplaatst worden naar andere categorie"
 
-#: ../user/forum_moderate_post_action.php:110
+#: ../user/forum_moderate_post_action.php:130
 msgid "Not authorized to banish users"
 msgstr "Niet geautoriseerd om gebruikers uit te sluiten"
 
-#: ../user/forum_moderate_post_action.php:126
+#: ../user/forum_moderate_post_action.php:146
 msgid "Banishment"
 msgstr "Uitsluiting"
 
-#: ../user/forum_moderate_post_action.php:128
+#: ../user/forum_moderate_post_action.php:148
 msgid "User %1 has been banished."
 msgstr "Gebruiker %1 is uitgesloten."
 
-#: ../user/forum_moderate_post_action.php:131
+#: ../user/forum_moderate_post_action.php:151
 msgid "Action failed: possible database problem"
 msgstr "Actie mislukt: mogelijk database probleem"
 
-#: ../user/forum_moderate_thread.php:33
+#: ../user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "niet geautoriseerd"
 
-#: ../user/forum_moderate_thread.php:36
+#: ../user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "Onderwerp '%1' aanpassen"
 
-#: ../user/forum_moderate_thread.php:48
+#: ../user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr ""
-"Selecteer een reden categorie, of omschrijf de reden voor verbergen of "
-"sluiten van het onderwerp; klik daarna op OK."
+msgstr "Selecteer een reden categorie, of omschrijf de reden voor verbergen of sluiten van het onderwerp; klik daarna op OK."
 
-#: ../user/forum_moderate_thread.php:72
+#: ../user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "Huidig forum"
 
-#: ../user/forum_moderate_thread.php:73
+#: ../user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "Doel forum"
 
-#: ../user/forum_moderate_thread.php:77
+#: ../user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "Nieuwe titel:"
 
-#: ../user/forum_post.php:40
+#: ../user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr ""
-"Uitsluitend projectadministrators mogen hier een onderwerp aanmaken. U kunt "
-"echter wel op een onderwerp reageren."
+msgstr "Uitsluitend projectadministrators mogen hier een onderwerp aanmaken. U kunt echter wel op een onderwerp reageren."
 
-#: ../user/forum_post.php:60
+#: ../user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Je reactie wordt gezien als spam door het Akismet anti-spam systeem. Pas "
-"a.u.b. je tekst aan en probeer opnieuw."
+msgstr "Je reactie wordt gezien als spam door het Akismet anti-spam systeem. Pas a.u.b. je tekst aan en probeer opnieuw."
 
-#: ../user/forum_post.php:70
+#: ../user/forum_post.php:74
 msgid "Create new thread"
 msgstr "Start nieuw onderwerp"
 
-#: ../user/forum_post.php:100
+#: ../user/forum_post.php:104
 msgid "Create a new thread"
 msgstr "Start een nieuw onderwerp"
 
-#: ../user/forum_post.php:105
+#: ../user/forum_post.php:109
 msgid "Remember to add a title"
 msgstr "Vergeet niet een titel toe te voegen"
 
-#: ../user/forum_post.php:127
+#: ../user/forum_post.php:131
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "Dit item weergeven op het berichten-tabblad van de BOINC Manager"
 
-#: ../user/forum_post.php:127
+#: ../user/forum_post.php:131
 msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Dit geldt uitsluitend voor items die voor alle vrijwilligers van belang "
-"kunnen zijn."
+msgstr "Dit geldt uitsluitend voor items die voor alle vrijwilligers van belang kunnen zijn."
 
-#: ../user/forum_rate.php:26
+#: ../user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "Beoordeling nu niet mogelijk"
 
-#: ../user/forum_rate.php:27
+#: ../user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "Deze optie is tijdelijk uit gezet door het project"
 
-#: ../user/forum_rate.php:58
+#: ../user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Uw gemiddelde of huidige puntentotaal is onvoldoende om een bericht te "
-"beoordelen."
+msgstr "Uw gemiddelde of huidige puntentotaal is onvoldoende om een bericht te beoordelen."
 
-#: ../user/forum_rate.php:62
+#: ../user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "U hebt dit bericht reeds beoordeeld."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
+#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
+#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
+#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "Terug naar onderwerp"
 
-#: ../user/forum_rate.php:72
+#: ../user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "Bijdrage geregistreerd"
 
-#: ../user/forum_rate.php:73
+#: ../user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "Uw bijdrage is geregistreerd. Hartelijk dank voor uw hulp."
 
-#: ../user/forum_rate.php:75
+#: ../user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "Stem Vastgelegd"
 
-#: ../user/forum_rate.php:76
+#: ../user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "Uw beoordeling is geregistreerd. Hartelijk dank voor uw bijdrage."
 
-#: ../user/forum_rate.php:80
+#: ../user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "Probleem Bij Indienen Stem"
 
-#: ../user/forum_reply.php:73
+#: ../user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Je reactie wordt gezien als spam door het Akismet anti-spam systeem. Pas "
-"a.u.b. je tekst aan en probeer opnieuw."
+msgstr "Je reactie wordt gezien als spam door het Akismet anti-spam systeem. Pas a.u.b. je tekst aan en probeer opnieuw."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
+#: ../user/forum_thread.php:284
 msgid "Post to thread"
 msgstr "Plaats bericht"
 
-#: ../user/forum_reply.php:137
+#: ../user/forum_reply.php:143
 msgid "Message:"
 msgstr "Bericht:"
 
-#: ../user/forum_reply.php:140
+#: ../user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "antwoord op %1Bericht ID%2:"
 
-#: ../user/forum_reply.php:166
+#: ../user/forum_reply.php:172
 msgid "Post reply"
 msgstr "Verstuur antwoord"
 
-#: ../user/forum_reply.php:169
+#: ../user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "Onderschrift invoegen bij deze post"
 
-#: ../user/forum_report_post.php:45
+#: ../user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"Uw gemiddelde of huidige puntentotaal is onvoldoende om een bericht te "
-"rapporteren."
+msgstr "Uw gemiddelde of huidige puntentotaal is onvoldoende om een bericht te rapporteren."
 
-#: ../user/forum_report_post.php:65
+#: ../user/forum_report_post.php:68
 msgid "Report Registered"
 msgstr "Rapportage geregistreerd"
 
-# 92%
-#: ../user/forum_report_post.php:66
+#: ../user/forum_report_post.php:69
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "Uw rapportage is geregistreerd. Hartelijk dank voor uw bijdrage."
 
-#: ../user/forum_report_post.php:67
+#: ../user/forum_report_post.php:70
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr ""
-"Een moderator zal na beoordeling van uw rapportage een beslissing nemen - in "
-"afwachting daarvan vragen wij u enig geduld te hebben"
+msgstr "Een moderator zal na beoordeling van uw rapportage een beslissing nemen - in afwachting daarvan vragen wij u enig geduld te hebben"
 
-#: ../user/forum_report_post.php:71
+#: ../user/forum_report_post.php:74
 msgid "Report a forum post"
 msgstr "Bericht rapporteren"
 
-#: ../user/forum_report_post.php:73
+#: ../user/forum_report_post.php:76
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"Voordat u dit bericht definitief rapporteert, hebt u de mogelijkheid om het "
-"te beoordelen via het +/- systeem. Indien voldoende deelnemers het bericht "
-"negatief beoordelen, zal het uiteindelijk worden verborgen.<br />Dit "
-"beoordelingssysteem bevindt zich aan het einde van het bericht."
+msgstr "Voordat u dit bericht definitief rapporteert, hebt u de mogelijkheid om het te beoordelen via het +/- systeem. Indien voldoende deelnemers het bericht negatief beoordelen, zal het uiteindelijk worden verborgen.<br />Dit beoordelingssysteem bevindt zich aan het einde van het bericht."
 
-#: ../user/forum_report_post.php:80
+#: ../user/forum_report_post.php:83
 msgid "Report post"
 msgstr "Bericht rapporteren"
 
-#: ../user/forum_report_post.php:81
+#: ../user/forum_report_post.php:84
 msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
+"Why do you find the post offensive: %1Please include enough information so that a person that\n"
 "has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Geef aan waarom u dit bericht kwetsend vindt: %1U dient het probleem "
-"duidelijk te omschrijven zodat iemand die\n"
-"het bericht nog niet heeft gelezen, snel weet waar het om gaat.%2"
+msgstr "Geef aan waarom u dit bericht kwetsend vindt: %1U dient het probleem duidelijk te omschrijven zodat iemand die\nhet bericht nog niet heeft gelezen, snel weet waar het om gaat.%2"
 
-#: ../user/forum_report_post.php:90
+#: ../user/forum_report_post.php:93
 msgid "Report not registered"
 msgstr "Rapportage niet geregistreerd"
 
-#: ../user/forum_report_post.php:91
+#: ../user/forum_report_post.php:94
 msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Uw rapportage kon niet worden geregistreerd. Probeer het later nog eens "
-"alstublieft."
+msgstr "Uw rapportage kon niet worden geregistreerd. Probeer het later nog eens alstublieft."
 
-#: ../user/forum_report_post.php:92
+#: ../user/forum_report_post.php:95
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Indien dit geen eenmalige foutmelding is, wordt u verzocht dat bij de "
-"projectontwikkelaars te melden."
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Indien dit geen eenmalige foutmelding is, wordt u verzocht dat bij de projectontwikkelaars te melden."
 
-#: ../user/forum_rss.php:41
+#: ../user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 RSS feed"
 
-#: ../user/forum_rss.php:42
+#: ../user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "Dit forum is ook verkrijgbaar als RSS feed."
 
-#: ../user/forum_rss.php:43
+#: ../user/forum_rss.php:41
 msgid "Options:"
 msgstr "Opties:"
 
-#: ../user/forum_rss.php:47
+#: ../user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Neem alleen berichten van gebruikers ID %1 (standaard: alle gebruikers)."
+msgstr "Neem alleen berichten van gebruikers ID %1 (standaard: alle gebruikers)."
 
-#: ../user/forum_rss.php:49
+#: ../user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "Neem alleen berichten van de afgelopen %1 dagen (standaard: 30)."
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Berichten inkorten: %1 (laat alleen de eerste 265 tekens van elke post zien)"
-
-#: ../user/forum_rss.php:53
+#: ../user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-"Alleen discussies: %1 (Inclusief alleen het eerste bericht van elk "
-"onderwerp)"
+msgstr "Alleen discussies: %1 (Inclusief alleen het eerste bericht van elk onderwerp)"
 
-#: ../user/forum_search.php:27
+#: ../user/forum_search.php:29
 msgid "Forum search"
 msgstr "Doorzoek forum"
 
-#: ../user/forum_search.php:31
+#: ../user/forum_search.php:33
 msgid "Search query"
 msgstr "Zoekopdracht"
 
-#: ../user/forum_search.php:32
+#: ../user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "Zoek op trefwoorden:"
 
-#: ../user/forum_search.php:33
+#: ../user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "Berichten die alle opgegeven woorden bevatten, worden weergegeven"
 
-#: ../user/forum_search.php:35
+#: ../user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "Bijvoorbeeld: \"screensaver loopt vast\""
 
-#: ../user/forum_search.php:36
+#: ../user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "Zoek op ID van auteur:"
 
-#: ../user/forum_search.php:37
+#: ../user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "Alleen berichten van deze auteur worden weergegeven"
 
-#: ../user/forum_search.php:39
+#: ../user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "Bijvoorbeeld: \"43214\""
 
-#: ../user/forum_search.php:41
+#: ../user/forum_search.php:43
 msgid "Search options"
 msgstr "Zoek opties"
 
-#: ../user/forum_search.php:42
+#: ../user/forum_search.php:44
 msgid "Search limits"
 msgstr "Zoek limiet"
 
-#: ../user/forum_search.php:43
+#: ../user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "Zoek maximaal deze hoeveelheid dagen terug"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: ../user/forum_search.php:52 ../user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 maanden"
 
-#: ../user/forum_search.php:52
+#: ../user/forum_search.php:54
 msgid "1 year"
 msgstr "1 jaar"
 
-#: ../user/forum_search.php:73
+#: ../user/forum_search.php:55
+msgid "no limit"
+msgstr "geen limiet"
+
+#: ../user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "Alleen berichten weergeven van dit forum"
 
-#: ../user/forum_search.php:84
+#: ../user/forum_search.php:86
 msgid "Sort by"
 msgstr "Sorteren op"
 
-#: ../user/forum_search.php:88
+#: ../user/forum_search.php:90
 msgid "Start the search"
 msgstr "Zoeken starten"
 
-#: ../user/forum_search_action.php:141
+#: ../user/forum_search_action.php:143
 msgid "Forum search results"
 msgstr "Forum zoek resultaten"
 
-#: ../user/forum_search_action.php:174
+#: ../user/forum_search_action.php:176
 msgid "Thread titles matching your query:"
 msgstr "Treffers overeenkomstig uw zoekopdracht in onderwerptitels:"
 
-#: ../user/forum_search_action.php:194
+#: ../user/forum_search_action.php:196
 msgid "Messages matching your query:"
 msgstr "Treffers overeenkomstig uw zoekopdracht in berichten:"
 
-#: ../user/forum_search_action.php:217
+#: ../user/forum_search_action.php:219
 msgid ""
 "Sorry, couldn't find anything matching your search query. You can try to "
 "broaden your search by using less words (or less specific words)."
-msgstr ""
-"Helaas geen resultaten gevonden die aan uw zoekopdracht voldoen. U kunt het "
-"aantal treffers vergroten door minder (specifieke) woorden te gebruiken."
+msgstr "Helaas geen resultaten gevonden die aan uw zoekopdracht voldoen. U kunt het aantal treffers vergroten door minder (specifieke) woorden te gebruiken."
 
-#: ../user/forum_search_action.php:219
+#: ../user/forum_search_action.php:221
 msgid "You can also %1try the same search on Google.%2"
 msgstr "U kunt dezelfde %1zoekopdracht ook laten uitvoeren door Google.%2"
 
-#: ../user/forum_search_action.php:224
+#: ../user/forum_search_action.php:226
 msgid "Perform another search"
 msgstr "Nieuwe zoekopdracht uitvoeren"
 
-#: ../user/forum_subscribe.php:46
+#: ../user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "Aanmelding geslaagd"
 
-#: ../user/forum_subscribe.php:49
+#: ../user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
-msgstr ""
-"U bent nu aangemeld bij %1. U wordt op de hoogte gesteld van nieuwe "
-"berichten."
+msgstr "U bent nu aangemeld bij %1. U wordt op de hoogte gesteld van nieuwe berichten."
 
-#: ../user/forum_subscribe.php:51
+#: ../user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "Aanmelding mislukt"
 
-#: ../user/forum_subscribe.php:52
+#: ../user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Aanmelden bij %1 is op dit moment niet mogelijk. Probeer het later nog "
-"eens..."
+msgstr "Aanmelden bij %1 is op dit moment niet mogelijk. Probeer het later nog eens..."
 
-#: ../user/forum_subscribe.php:61
+#: ../user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "Uitschrijven geslaagd"
 
-#: ../user/forum_subscribe.php:64
+#: ../user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"U bent niet meer aangemeld bij %1. U ontvangt geen mededelingen meer over "
-"dit onderwerp."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "U bent niet meer aangemeld bij %1. U ontvangt geen mededelingen meer over dit onderwerp."
 
-#: ../user/forum_subscribe.php:66
+#: ../user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "Uitschrijven mislukt"
 
-#: ../user/forum_subscribe.php:67
+#: ../user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Uitschrijven bij %1 is op dit moment niet mogelijk. Probeer het later nog "
-"eens..."
+msgstr "Uitschrijven bij %1 is op dit moment niet mogelijk. Probeer het later nog eens..."
 
-#: ../user/forum_subscribe.php:74
+#: ../user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "Onbekende aanmeldingshandeling"
 
-#: ../user/forum_thread.php:61
+#: ../user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "Dit forum is verborgen voor jou."
 
-#: ../user/forum_thread.php:69
+#: ../user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "Dit onderwerp is verborgen door de moderators."
 
-#: ../user/forum_thread.php:128
+#: ../user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "Mijn vraag is beantwoord"
 
-#: ../user/forum_thread.php:129
+#: ../user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "Als je vraag naar behoren is beantwoord, klik dan hier"
 
-#: ../user/forum_thread.php:137
+#: ../user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "Ik heb deze vraag ook"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
 msgid "Add a new message to this thread"
 msgstr "Een bericht toevoegen aan dit onderwerp"
 
-#: ../user/forum_thread.php:171
+#: ../user/forum_thread.php:172
 msgid "Unsubscribe"
 msgstr "Abonnement opheffen"
 
-#: ../user/forum_thread.php:172
+#: ../user/forum_thread.php:173
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "Je bent geabonneerd op dit onderwerp.  Klik hier om dit op te heffen."
 
-#: ../user/forum_thread.php:178
+#: ../user/forum_thread.php:179
 msgid "Subscribe"
 msgstr "Abonneren"
 
-#: ../user/forum_thread.php:179
+#: ../user/forum_thread.php:180
 msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Klik hier om een email te ontvangen als er een nieuw bericht is geplaatst"
+msgstr "Klik hier om een email te ontvangen als er een nieuw bericht is geplaatst"
 
-#: ../user/forum_thread.php:190
+#: ../user/forum_thread.php:191
 msgid "Unhide this thread"
 msgstr "Dit onderwerp zichtbaar maken"
 
-#: ../user/forum_thread.php:196
+#: ../user/forum_thread.php:197
 msgid "Hide this thread"
 msgstr "Dit onderwerp verbergen"
 
-#: ../user/forum_thread.php:202
+#: ../user/forum_thread.php:203
 msgid "Make unsticky"
 msgstr "Los maken"
 
-#: ../user/forum_thread.php:203
+#: ../user/forum_thread.php:204
 msgid "Make this thread not sticky"
 msgstr "Dit onderwerp los maken"
 
-#: ../user/forum_thread.php:208
+#: ../user/forum_thread.php:209
 msgid "Make sticky"
 msgstr "Vast zetten"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Dit onderwerp vast zetten"
+#: ../user/forum_thread.php:210
+msgid "Make this thread always appear at top of forum"
+msgstr "Zet deze draad altijd bovenaan het forum"
 
-#: ../user/forum_thread.php:215
+#: ../user/forum_thread.php:216
 msgid "Unlock"
 msgstr "Vergrendeling opheffen"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Vergrendeling van dit onderwerp opheffen"
+#: ../user/forum_thread.php:217
+msgid "Allow new posts in this thread"
+msgstr "Sta nieuwe berichten in deze draad toe"
 
-#: ../user/forum_thread.php:221
+#: ../user/forum_thread.php:222
 msgid "Lock"
 msgstr "Vergrendelen"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Dit onderwerp vergrendelen"
+#: ../user/forum_thread.php:223
+msgid "Don't allow new posts in this thread"
+msgstr "Sta nieuwe berichten in deze draad niet toe"
 
-#: ../user/forum_thread.php:229
+#: ../user/forum_thread.php:230
 msgid "Move this thread to a different forum"
 msgstr "Verplaats dit onderwerp naar een ander forum"
 
-#: ../user/forum_thread.php:234
+#: ../user/forum_thread.php:235
 msgid "Edit title"
 msgstr "Titel aanpassen"
 
-#: ../user/forum_thread.php:235
+#: ../user/forum_thread.php:236
 msgid "Edit thread title"
 msgstr "Titel van onderwerp aanpassen"
 
-#: ../user/forum_thread.php:245
+#: ../user/forum_thread.php:244
+msgid "Delete thread permanently"
+msgstr "Verwijder draad permanent"
+
+#: ../user/forum_thread.php:254
 msgid "Export as Notice"
 msgstr "Exporteren als mededeling"
 
-#: ../user/forum_thread.php:251
+#: ../user/forum_thread.php:260
 msgid "Don't export"
 msgstr "Niet exporteren"
 
-#: ../user/forum_thread.php:252
+#: ../user/forum_thread.php:261
 msgid "Don't export this news item as a Notice"
 msgstr "Dit nieuws artikel niet exporteren als mededeling"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
 msgid "Sort"
 msgstr "Sorteren"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: ../user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "Onderwerpstatus bijgewerkt"
 
-#: ../user/forum_thread_status.php:50
+#: ../user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "De status is bijgewerkt."
 
-#: ../user/forum_user_posts.php:73
+#: ../user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "Berichten door %1"
 
-#: ../user/friend.php:33
+#: ../user/friend.php:35
 msgid "Already friends"
 msgstr "Is al een vriend(in)"
 
-#: ../user/friend.php:39
+#: ../user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "Je hebt een vriendschap aangevraagd met %1 op %2."
 
-#: ../user/friend.php:41
+#: ../user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "Dit verzoek is nog in behandeling."
 
-#: ../user/friend.php:52
+#: ../user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 accepteert geen verzoeken tot vriendschap van jou"
 
-#: ../user/friend.php:61
+#: ../user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "Je kan geen vriendschap met jezelf aangaan"
 
-#: ../user/friend.php:69
+#: ../user/friend.php:71
 msgid "Add friend"
 msgstr "Voeg toe als vriend(in)"
 
-#: ../user/friend.php:74
+#: ../user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Je hebt %1 om een vriendschap gevraagd. We versturen een bericht naar %1 om "
-"je verzoek te bevestigen."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Je hebt %1 om een vriendschap gevraagd. We versturen een bericht naar %1 om je verzoek te bevestigen."
 
-#: ../user/friend.php:77
+#: ../user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "Voeg eventueel een bericht toe:"
 
-#: ../user/friend.php:115
+#: ../user/friend.php:117
 msgid "Friend request sent"
 msgstr "Verzoek tot vriendschap verzonden"
 
-#: ../user/friend.php:116
+#: ../user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "We hebben %1 een bericht m.b.t. jouw verzoek verzonden."
 
-#: ../user/friend.php:126
+#: ../user/friend.php:128
 msgid "Please log in as %1"
 msgstr "Log a.u.b. in als %1"
 
-#: ../user/friend.php:127
+#: ../user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
-msgstr ""
-"U dient zich aan te melden als %1 om het verzoek van deze vriend te kunnen "
-"lezen"
+msgstr "U dient zich aan te melden als %1 om het verzoek van deze vriend te kunnen lezen"
 
-#: ../user/friend.php:138
+#: ../user/friend.php:140
 msgid "Friend request"
 msgstr "Verzoek tot vriendschap"
 
-#: ../user/friend.php:141
+#: ../user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 verzoekt toegevoegd te worden als vriend."
 
-#: ../user/friend.php:143
+#: ../user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 zegt: %2"
 
-#: ../user/friend.php:146
+#: ../user/friend.php:148
 msgid "Accept friendship"
 msgstr "Accepteer vriendschap"
 
-#: ../user/friend.php:146
+#: ../user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "Klik accepteer als %1 een vriend(in) is"
 
-#: ../user/friend.php:147
+#: ../user/friend.php:149
 msgid "Decline"
 msgstr "Afwijzen"
 
-#: ../user/friend.php:147
+#: ../user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "Klik afwijzen als %1 geen vriend(in) is"
 
-#: ../user/friend.php:186
+#: ../user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "Vriendschap bevestigd"
 
-#: ../user/friend.php:187
+#: ../user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "De vriendschap met %1 is bevestigd."
 
-#: ../user/friend.php:205
+#: ../user/friend.php:207
 msgid "Friendship declined"
 msgstr "Vriendschap afgewezen"
 
-#: ../user/friend.php:206
+#: ../user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "De vriendschap met %1 is afgewezen"
 
-#: ../user/friend.php:221
+#: ../user/friend.php:223
 msgid "Notification not found"
 msgstr "Bericht niet gevonden"
 
-#: ../user/friend.php:223
+#: ../user/friend.php:225
 msgid "Friend confirmed"
 msgstr "Vriend(in) heeft bevestigd"
 
-#: ../user/friend.php:224
+#: ../user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "Je hebt nu een vriendschap met %1."
 
-#: ../user/friend.php:232
+#: ../user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "Beëindig vriendschap?"
 
-#: ../user/friend.php:234
+#: ../user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "Weet je zeker dat je de vriendschap met %1 wilt beëindigen?"
 
-#: ../user/friend.php:239
+#: ../user/friend.php:241
 msgid "Stay friends"
 msgstr "Vrienden blijven"
 
-#: ../user/friend.php:249
+#: ../user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "Vriendschap beëindigd"
 
-#: ../user/friend.php:250
+#: ../user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "De vriendschap met %1 is beëindigd."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Account gegevens vergeten?"
-
-#: ../user/get_passwd.php:28
+#: ../user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Als u het e-mailadres van uw account weet, en als u daar e-mail kunt "
-"ontvangen:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Als u het e-mailadres van uw account weet, en als u daar e-mail kunt ontvangen:"
 
-#: ../user/get_passwd.php:29
+#: ../user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr ""
-"Vul dan hieronder het e-mailadres in en klik op OK. Vervolgens ontvangt u "
-"per e-mail de instructies om uw wachtwoord opnieuw in te stellen."
+msgstr "Vul dan hieronder het e-mailadres in en klik op OK. Vervolgens ontvangt u per e-mail de instructies om uw wachtwoord opnieuw in te stellen."
 
 #: ../user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr ""
-"2) Als u het e-mailadres van uw account bent vergeten, of als u daar geen "
-"e-mail kunt ontvangen:"
+msgstr "2) Als u het e-mailadres van uw account bent vergeten, of als u daar geen e-mail kunt ontvangen:"
 
 #: ../user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr ""
-"Om met deze gegevens toch toegang te krijgen tot uw BOINC-account, gaat u "
-"als volgt te werk:"
+msgstr "Om met deze gegevens toch toegang te krijgen tot uw BOINC-account, gaat u als volgt te werk:"
 
 #: ../user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
-"Ga naar de data map van BOINC (de locatie staat beschreven in de opstart "
-"berichten)."
+msgstr "Ga naar de data map van BOINC (de locatie staat beschreven in de opstart berichten)."
 
 #: ../user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-"Zoek het betreffende projectbestand met uw accountgegevens, genaamd <b>%"
-"1</b>."
+msgstr "Zoek het betreffende projectbestand met uw accountgegevens, genaamd <b>%1</b>."
 
 #: ../user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Open het bestand met een tekstverwerker, bv. met Kladblok. U ziet nu "
-"ongeveer het volgende"
+msgstr "Open het bestand met een tekstverwerker, bv. met Kladblok. U ziet nu ongeveer het volgende"
 
 #: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Selecteer en kopieer de tekenreeks tussen %1 en %2 (%3 in bovenstaand "
-"voorbeeld)."
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Selecteer en kopieer de tekenreeks tussen %1 en %2 (%3 in bovenstaand voorbeeld)."
 
 #: ../user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
@@ -4695,25 +4499,30 @@ msgstr "Plak deze tekenreeks in het onderstaande veld en klik op OK."
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr ""
-"U wordt nu aangemeld bij uw account; wijzig de betreffende e-mail- en "
-"wachtwoordgegevens."
+msgstr "U wordt nu aangemeld bij uw account; wijzig de betreffende e-mail- en wachtwoordgegevens."
 
 #: ../user/get_passwd.php:71
 msgid "Log in with authenticator"
 msgstr "Aanmelden met authentificatie"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: ../user/get_passwd.php:81
+msgid "Forgot your account info?"
+msgstr "Account gegevens vergeten?"
+
+#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "Geen GPU taken gerapporteerd"
 
-#: ../user/gpu_list.php:183
+#: ../user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Top GPU modellen"
+
+#: ../user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"De volgende lijst toont de meest productieve GPU modellen op verschillende "
-"platforms.  Relatieve snelheid wordt getoond tussen ronde haakjes."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "De volgende lijsten tonen de meest productieve GPU modellen op verschillende platformen. De relatieve snelheden, gemeten door de gemiddelde verstreken tijd van taken, worden weergegeven tussen haakjes."
 
 #: ../user/home.php:42
 msgid "Welcome to %1"
@@ -4727,6 +4536,10 @@ msgstr "Bekijk en verander je account voorkeuren met onderstaande links."
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr "Indien nodig kunt u hier de %1BOINC cliënt software downloaden%2."
 
+#: ../user/home.php:49 ../project.sample/project.inc:70
+msgid "Your account"
+msgstr "Mijn account"
+
 #: ../user/host_app_versions.php:37
 msgid "Anonymous platform, missing app"
 msgstr "Anoniem platform, app ontbreekt"
@@ -4780,10 +4593,7 @@ msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"U kunt de betreffende gegevens niet verwijderen omdat onze databank nog werk "
-"bevat voor deze computer. U dient enkele dagen te wachten totdat het werk "
-"voor deze computer uit de projectspecifieke databank is verwijderd."
+msgstr "U kunt de betreffende gegevens niet verwijderen omdat onze databank nog werk bevat voor deze computer. U dient enkele dagen te wachten totdat het werk voor deze computer uit de projectspecifieke databank is verwijderd."
 
 #: ../user/host_delete.php:40
 msgid "Delete record of computer"
@@ -4807,18 +4617,13 @@ msgstr "Computers samenvoegen"
 
 #: ../user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Soms krijgt een computer per ongeluk meer dan één identiteit door BOINC "
-"toegewezen. U kunt dit verhelpen door vorige identiteiten met de laatste "
-"samen te voegen."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Soms krijgt een computer per ongeluk meer dan één identiteit door BOINC toegewezen. U kunt dit verhelpen door vorige identiteiten met de laatste samen te voegen."
 
 #: ../user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
-msgstr ""
-"Geen hostcomputers die in aanmerking komen voor samenvoeging met deze "
-"computer."
+msgstr "Geen hostcomputers die in aanmerking komen voor samenvoeging met deze computer."
 
 #: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
 msgid "Show details"
@@ -4827,9 +4632,7 @@ msgstr "Toon details"
 #: ../user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"Controleer de computers die identiek zijn aan %1 (aangemaakt %2, computer ID "
-"%3):"
+msgstr "Controleer de computers die identiek zijn aan %1 (aangemaakt %2, computer ID %3):"
 
 #: ../user/host_edit_form.php:70 ../user/workunit.php:39
 msgid "name"
@@ -4851,10 +4654,14 @@ msgstr "geen hostnaam"
 msgid "Merge hosts"
 msgstr "hosts samenvoegen"
 
-#: ../user/host_update_credit.php:28
+#: ../user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "Computerspecifiek puntentotaal wordt bijgewerkt"
 
+#: ../user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Computer punten bijgewerkt"
+
 #: ../user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "ID hostcomputer bijgewerkt"
@@ -4871,9 +4678,7 @@ msgstr "Deze hostcomputer is nu bekend als %1."
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
-msgstr ""
-"Deze wijziging wordt van kracht bij de volgende communicatiesessie van de "
-"hostcomputer met dit project."
+msgstr "Deze wijziging wordt van kracht bij de volgende communicatiesessie van de hostcomputer met dit project."
 
 #: ../user/host_venue_action.php:50
 msgid "Return to host page"
@@ -4930,17 +4735,18 @@ msgstr "opgemaakt"
 
 #: ../user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"afbeelding; hoogte mag niet meer zijn dan 450 pixels. Voeg alstublieft geen "
-"koppelingen naar afbeeldingen toe zonder toestemming van de website waar de "
-"afbeelding zich bevindt."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "afbeelding; hoogte mag niet meer zijn dan 450 pixels. Voeg alstublieft geen koppelingen naar afbeeldingen toe zonder toestemming van de website waar de afbeelding zich bevindt."
 
 #: ../user/html.php:35
 msgid "You can also use ampersand notation for special characters."
 msgstr "U kunt ook de ampersand gebruiken voor speciale tekens."
 
+#: ../user/info.php:24 ../user/sample_index.php:78
+msgid "Read our rules and policies"
+msgstr "Lees de gebruiksovereenkomst"
+
 #: ../user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "Voer %1 alleen uit op toegestane computers"
@@ -4950,10 +4756,7 @@ msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"Voer %1 alleen uit op computers die je eigendom zijn, of waar de eigenaar "
-"ervan je toestemming voor heeft gegeven. Sommige scholen en bedrijven hebben "
-"regels opgesteld waarin het gebruik van %1 niet toegestaan is."
+msgstr "Voer %1 alleen uit op computers die je eigendom zijn, of waar de eigenaar ervan je toestemming voor heeft gegeven. Sommige scholen en bedrijven hebben regels opgesteld waarin het gebruik van %1 niet toegestaan is."
 
 #: ../user/info.php:38
 msgid "How %1 will use your computer"
@@ -4964,18 +4767,13 @@ msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"Wanneer je %1 gebruikt op je computer zal deze een gedeelte gebruiken van de "
-"processortijd, het geheugen, de harde schijf en de bandbreedte van het "
-"netwerk. Gebruik hiervan is in te stellen met %1."
+msgstr "Wanneer je %1 gebruikt op je computer zal deze een gedeelte gebruiken van de processortijd, het geheugen, de harde schijf en de bandbreedte van het netwerk. Gebruik hiervan is in te stellen met %1."
 
 #: ../user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"De uitgevoerde taken worden gebruikt om de doelstellingen te halen van %1, "
-"zoals beschreven op de website. De gebruikte applicatie kan wisselen."
+msgstr "De uitgevoerde taken worden gebruikt om de doelstellingen te halen van %1, zoals beschreven op de website. De gebruikte applicatie kan wisselen."
 
 #: ../user/info.php:42
 msgid "Privacy policy"
@@ -4983,15 +4781,11 @@ msgstr "Privacy beleid"
 
 #: ../user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Je account bij %1 wordt bepaald door je gekozen naam. Deze naam kan getoond "
-"worden op de website van %1 samen met een opsomming van je computer(s) en "
-"het gedane werk voor %1. Als je anoniem wilt blijven kies dan een afwijkende "
-"naam voor je account."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Je account bij %1 wordt bepaald door je gekozen naam. Deze naam kan getoond worden op de website van %1 samen met een opsomming van je computer(s) en het gedane werk voor %1. Als je anoniem wilt blijven kies dan een afwijkende naam voor je account."
 
 #: ../user/info.php:44
 msgid ""
@@ -5000,23 +4794,14 @@ msgid ""
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Wanneer je deelneemt aan %1, wordt er informatie over je computer (type "
-"processor, hoeveelheid geheugen, etc.) opgeslagen door %1 en gebruikt om te "
-"kunnen bepalen welk soort werk er aan je computer wordt verzonden. Deze "
-"informatie wordt ook getoond op de website van %1. Je werkelijke locatie "
-"(b.v. je IP-adres) blijft verborgen."
+msgstr "Wanneer je deelneemt aan %1, wordt er informatie over je computer (type processor, hoeveelheid geheugen, etc.) opgeslagen door %1 en gebruikt om te kunnen bepalen welk soort werk er aan je computer wordt verzonden. Deze informatie wordt ook getoond op de website van %1. Je werkelijke locatie (b.v. je IP-adres) blijft verborgen."
 
 #: ../user/info.php:45
 msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Om aan %1 te kunnen deelnemen, moet je een e-mailadres opgeven waar je email "
-"op kan ontvangen. Dit adres zal niet op de website van %1 worden getoond of "
-"aan derden worden doorgegeven. %1 kan je informatie toezenden, maar dit kan "
-"je ook in je voorkeuren uitzetten."
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Om aan %1 te kunnen deelnemen, moet je een e-mailadres opgeven waar je email op kan ontvangen. Dit adres zal niet op de website van %1 worden getoond of aan derden worden doorgegeven. %1 kan je informatie toezenden, maar dit kan je ook in je voorkeuren uitzetten."
 
 #: ../user/info.php:46
 msgid ""
@@ -5025,24 +4810,15 @@ msgid ""
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"Privé berichten die verzonden zijn op de website van %1 zijn alleen "
-"zichtbaar voor de afzender en ontvanger.  %1 bekijkt en veranderd de inhoud "
-"niet.  Als je een ongewenst bericht ontvangt van een andere %1 gebruiker, is "
-"het mogelijk deze toe te voegen aan een %2berichten filter%3.  Dit "
-"blokkeert zowel privé als forum berichten van deze gebruiker."
+msgstr "Privé berichten die verzonden zijn op de website van %1 zijn alleen zichtbaar voor de afzender en ontvanger.  %1 bekijkt en veranderd de inhoud niet.  Als je een ongewenst bericht ontvangt van een andere %1 gebruiker, is het mogelijk deze toe te voegen aan een %2berichten filter%3.  Dit blokkeert zowel privé als forum berichten van deze gebruiker."
 
 #: ../user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Indien je onze website gebruikt moet je je houden aan de %2richtlijnen voor "
-"berichten%3.  Geplaatste berichten op het forum van %1 zijn zichtbaar voor "
-"leden en niet-leden.  Door hier een bericht te plaatsen geef je iedereen de "
-"volledige rechten om ze te bekijken en te kopiëren."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Indien je onze website gebruikt moet je je houden aan de %2richtlijnen voor berichten%3.  Geplaatste berichten op het forum van %1 zijn zichtbaar voor leden en niet-leden.  Door hier een bericht te plaatsen geef je iedereen de volledige rechten om ze te bekijken en te kopiëren."
 
 #: ../user/info.php:48
 msgid "Is it safe to run %1?"
@@ -5052,35 +4828,23 @@ msgstr "Is het veilig om %1 uit te voeren?"
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Elke keer als je een programma via het internet download neem je een risico; "
-"het programma kan fatale fouten hebben, of de download server is niet "
-"veilig genoeg. %1 heeft zijn best gedaan om deze risico's tot een minimum te "
-"beperken. Ons programma is uitvoerig getest. Onze servers zijn zo veel als "
-"mogelijk is beveiligd tegen misbruik. Om de integriteit van de programma's "
-"te garanderen zijn ze digitaal ondertekend op een computer die niet met het "
-"internet is verbonden."
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Elke keer als je een programma via het internet download neem je een risico; het programma kan fatale fouten hebben, of de download server is niet veilig genoeg. %1 heeft zijn best gedaan om deze risico's tot een minimum te beperken. Ons programma is uitvoerig getest. Onze servers zijn zo veel als mogelijk is beveiligd tegen misbruik. Om de integriteit van de programma's te garanderen zijn ze digitaal ondertekend op een computer die niet met het internet is verbonden."
 
 #: ../user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"De door %1 gebruikte applicaties kunnen een verhoging opleveren van de "
-"temperatuur van de processor. Als dit aan de orde is, sluit %1 af en gebruik "
-"een %2programma%3 om het gebruik van de processor te regelen."
+msgstr "De door %1 gebruikte applicaties kunnen een verhoging opleveren van de temperatuur van de processor. Als dit aan de orde is, sluit %1 af en gebruik een %2programma%3 om het gebruik van de processor te regelen."
 
 #: ../user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 is ontwikkeld door %2. BOINC is ontwikkeld door de University of "
-"California."
+msgstr "%1 is ontwikkeld door %2. BOINC is ontwikkeld door de University of California."
 
 #: ../user/info.php:53
 msgid "Liability"
@@ -5089,11 +4853,9 @@ msgstr "Aansprakelijkheid"
 #: ../user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 en %2 aanvaarden geen aansprakelijkheid voor schade aangebracht aan je "
-"computer of welke schade dan ook voortgekomen door deelname aan %1."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 en %2 aanvaarden geen aansprakelijkheid voor schade aangebracht aan je computer of welke schade dan ook voortgekomen door deelname aan %1."
 
 #: ../user/info.php:56
 msgid "Other BOINC projects"
@@ -5101,23 +4863,17 @@ msgstr "Andere BOINC projecten"
 
 #: ../user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"Andere projecten gebruiken, net als %1, BOINC als platform. Het is het "
-"overwegen waard om andere projecten toe te voegen. Mocht %1 dan geen werk "
-"hebben, blijft je computer bezig met nuttig werk."
+msgstr "Andere projecten gebruiken, net als %1, BOINC als platform. Het is het overwegen waard om andere projecten toe te voegen. Mocht %1 dan geen werk hebben, blijft je computer bezig met nuttig werk."
 
 #: ../user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"Deze projecten zijn niet verbonden met %1, mede daarom kunnen we geen "
-"garanties geven over hun doelstellingen en de mate van veiligheid. Deelname "
-"is daarom op eigen risico."
+msgstr "Deze projecten zijn niet verbonden met %1, mede daarom kunnen we geen garanties geven over hun doelstellingen en de mate van veiligheid. Deelname is daarom op eigen risico."
 
 #: ../user/language_select.php:47
 msgid "Language selection"
@@ -5127,17 +4883,13 @@ msgstr "Taal selectie"
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
-msgstr ""
-"Deze website is beschikbaar in verschillende talen. De geselecteerde taal is "
-"nu: %1."
+msgstr "Deze website is beschikbaar in verschillende talen. De geselecteerde taal is nu: %1."
 
 #: ../user/language_select.php:78
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Normaal wordt de taal geselecteerd op basis van de taal instellingen van je "
-"browser, nu ingesteld: %1  Als volgt aan te passen bij:"
+msgstr "Normaal wordt de taal geselecteerd op basis van de taal instellingen van je browser, nu ingesteld: %1  Als volgt aan te passen bij:"
 
 #: ../user/language_select.php:83
 msgid "Firefox: Tools/Options/General"
@@ -5152,10 +4904,7 @@ msgid ""
 "Or you can select a language by clicking on one of the links.  This will "
 "send your browser a cookie; make sure your browser accepts cookies from our "
 "domain."
-msgstr ""
-"Ook is het mogelijk een taal te selecteren door op een van de links te "
-"klikken.  Er wordt dan een cookie naar je browser verstuurd indien deze dit "
-"accepteert."
+msgstr "Ook is het mogelijk een taal te selecteren door op een van de links te klikken.  Er wordt dan een cookie naar je browser verstuurd indien deze dit accepteert."
 
 #: ../user/language_select.php:95
 msgid "Language name (click to select)"
@@ -5167,33 +4916,11 @@ msgstr "Gebruik taal instelling van browser"
 
 #: ../user/language_select.php:113
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Vertalingen worden door vrijwilligers gemaakt.  Indien jouw taal niet "
-"voorkomt kan je %1een nieuwe vertaling aanmaken%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "E-mail adres:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "e-mail adres vergeten?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Wachtwoord:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "wachtwoord vergeten?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Aangemeld blijven"
+"Translations are done by volunteers.  If your native language is not here, "
+"%1you can provide a translation%2."
+msgstr "Vertalingen worden door vrijwilligers gemaakt.  Indien jouw taal niet voorkomt kan je %1een nieuwe vertaling aanmaken%2."
 
-#: ../user/login_form.php:62
+#: ../user/login_form.php:57
 msgid "or %1create an account%2."
 msgstr "of %1maak een account%2."
 
@@ -5217,13 +4944,7 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"Deze actie voegt computers samen op basis van de domeinnaam.\n"
-"        <p>\n"
-"        Voor elke domeinnaam, worden alle oude computers met dezelfde\n"
-"        naam als de nieuwste computer met deze naam samengevoegd.\n"
-"        Indien een computer hier niet aan voldoet, gebeurd dit niet.\n"
-"        <p>"
+msgstr "Deze actie voegt computers samen op basis van de domeinnaam.\n        <p>\n        Voor elke domeinnaam, worden alle oude computers met dezelfde\n        naam als de nieuwste computer met deze naam samengevoegd.\n        Indien een computer hier niet aan voldoet, gebeurd dit niet.\n        <p>"
 
 #: ../user/merge_by_name.php:82
 msgid "Go ahead and do this"
@@ -5239,11 +4960,7 @@ msgid ""
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"Om de discussie en berichtenstroom te maximaliseren,\n"
-"wordt ons forum gemodereerd.\n"
-"Berichten zijn onderworpen aan de volgende regels en richtlijnen:\n"
+msgstr "\nOm de discussie en berichtenstroom te maximaliseren,\nwordt ons forum gemodereerd.\nBerichten zijn onderworpen aan de volgende regels en richtlijnen:\n"
 
 #: ../user/moderation.php:30
 msgid ""
@@ -5252,8 +4969,7 @@ msgid ""
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5282,41 +4998,7 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Moderators mogen berichten verwijderen die deze regels overtreden.\n"
-"De auteurs van verwijderde berichten worden per e-mail ingelicht.\n"
-"Regelmatige overtreders kunnen tijdelijk het recht om berichten te plaatsen\n"
-"verliezen (deze straf wordt alleen opgelegd door project administrators).\n"
-"Aanvullende vormen van ongepast gedrag (berichten \"coderen\" om\n"
-"IP adressen af te vangen, overmatige aanmaak van onderwerpen om\n"
-"de forums te vervuilen, etc.), kan ook, ondanks niet vermeld in de regels,\n"
-"leiden tot vergelijkbare maatregelen.\n"
-"<p>\n"
-"Indien je van mening bent dat een bericht een bepaalde regel overtreedt,\n"
-"kan je op de rode X bij het bericht klikken en de reden hiervoor invullen;\n"
-"de moderators worden dan van je klacht op de hoogte gesteld.\n"
-"Gebruik deze knop ALLEEN voor overtredingen - NIET voor\n"
-"persoonlijke meningsverschillen.\n"
-"<p>\n"
-"We doen, zoals altijd, ons best om fair te modereren, maar in\n"
-"in een grote gemeenschap van gebruikers, met veel standpunten,\n"
-"is het natuurlijk altijd mogelijk dat gebruikers het niet eens zijn\n"
-"met onze beslissingen.\n"
-"Ondanks dat we het betreuren als dit gebeurd,\n"
-"moet men zich ook realiseren dat het niet mogelijk is om het\n"
-"iedereen naar de zin te maken. We nemen onze beslissingen\n"
-"alleen in het belang van het forum.\n"
-"Plaats a.u.b. geen discussies om deze regels te bespreken. Dit is\n"
-"alles behalve een project voor bestudering van sociale vaardigheden,\n"
-"noch zijn we in staat het perfect eerlijke systeem te maken.\n"
-"Mocht je, dit in acht nemende, denken een terechte klacht te\n"
-"hebben, stuur dan een e-mail naar onderstaand adres.\n"
-"<p>\n"
-"Bovenstaande moderatie regels zijn opgesteld door %1.\n"
-"In het geval van opmerkingen hierover, e-mail naar %2.\n"
-"\n"
+msgstr "\n<p>\nModerators mogen berichten verwijderen die deze regels overtreden.\nDe auteurs van verwijderde berichten worden per e-mail ingelicht.\nRegelmatige overtreders kunnen tijdelijk het recht om berichten te plaatsen\nverliezen (deze straf wordt alleen opgelegd door project administrators).\nAanvullende vormen van ongepast gedrag (berichten \"coderen\" om\nIP adressen af te vangen, overmatige aanmaak van onderwerpen om\nde forums te vervuilen, etc.), kan ook, ondanks niet vermel [...]
 
 #: ../user/pending.php:66
 msgid "Pending credit"
@@ -5362,273 +5044,255 @@ msgstr "Geen privé berichten aanwezig."
 msgid "Sender and date"
 msgstr "Afzender en datum"
 
-#: ../user/pm.php:106
+#: ../user/pm.php:111
 msgid "Reply to this message"
 msgstr "Geef antwoord op dit bericht"
 
-#: ../user/pm.php:107
+#: ../user/pm.php:112
 msgid "Delete this message"
 msgstr "Verwijder dit bericht"
 
-#: ../user/pm.php:112
+#: ../user/pm.php:117
 msgid "Select all"
 msgstr "Alles selecteren"
 
-#: ../user/pm.php:114
+#: ../user/pm.php:119
 msgid "Unselect all"
 msgstr "Selecties weghalen"
 
-#: ../user/pm.php:117
+#: ../user/pm.php:122
 msgid "Delete selected messages"
 msgstr "Verwijder geselecteerde berichten"
 
-#: ../user/pm.php:140
+#: ../user/pm.php:145
 msgid "Sender"
 msgstr "Afzender"
 
-#: ../user/pm.php:143
+#: ../user/pm.php:148
 msgid "Date"
 msgstr "Datum"
 
-#: ../user/pm.php:185
+#: ../user/pm.php:190
 msgid "You need to fill all fields to send a private message"
 msgstr "Je moet overal iets invullen om het bericht te kunnen versturen"
 
-#: ../user/pm.php:188
+#: ../user/pm.php:193
 msgid ""
 "Your message was flagged as spam\n"
 "                by the Akismet anti-spam system.\n"
 "                Please modify your text and try again."
-msgstr ""
-"Je reactie wordt gezien als spam\n"
-"                door het Akismet anti-spam systeem.\n"
-"                Pas tekst aan en probeer opnieuw."
+msgstr "Je reactie wordt gezien als spam\n                door het Akismet anti-spam systeem.\n                Pas tekst aan en probeer opnieuw."
 
-#: ../user/pm.php:205
+#: ../user/pm.php:210
 msgid "Could not find user with id %1"
 msgstr "Kan gebruiker niet vinden met id %1"
 
-#: ../user/pm.php:210
+#: ../user/pm.php:215
 msgid "Could not find user with username %1"
 msgstr "Kan gebruiker niet vinden met gebruikersnaam %1"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: ../user/pm.php:217
 msgid "%1 is not a unique username; you will have to use user ID"
 msgstr "%1 is geen unieke gebruikersnaam; gebruik je gebruikers-ID"
 
-#: ../user/pm.php:217
+#: ../user/pm.php:222
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr "Gebruiker %1 (ID: %2) accepteert geen privé berichten van u."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: ../user/pm.php:245 ../user/view_profile.php:28
 msgid "No such user"
 msgstr "Gebruiker niet gevonden"
 
-#: ../user/pm.php:242
+#: ../user/pm.php:247
 msgid "Really block %1?"
 msgstr "Echt %1 blokkeren?"
 
-#: ../user/pm.php:243
+#: ../user/pm.php:248
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr ""
-"Weet u zeker dat u gebruiker %1 wilt blokkeren om u privé berichten te "
-"sturen?"
+msgstr "Weet u zeker dat u gebruiker %1 wilt blokkeren om u privé berichten te sturen?"
 
-#: ../user/pm.php:244
+#: ../user/pm.php:249
 msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Houdt u er rekening mee dat u slechts een beperkt aantal gebruikers kan "
-"blokkeren."
+msgstr "Houdt u er rekening mee dat u slechts een beperkt aantal gebruikers kan blokkeren."
 
-#: ../user/pm.php:245
+#: ../user/pm.php:250
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr ""
-"Zodra de gebruiker is geblokkeerd kunt u hem deblokkering op bij forum "
-"voorkeuren."
+msgstr "Zodra de gebruiker is geblokkeerd kunt u hem deblokkering op bij forum voorkeuren."
 
-#: ../user/pm.php:252
+#: ../user/pm.php:257
 msgid "No, cancel"
 msgstr "Nee, annuleren"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: ../user/pm.php:265 ../user/team_admins.php:100
 msgid "no such user"
 msgstr "gebruiker niet gevonden"
 
-#: ../user/pm.php:263
+#: ../user/pm.php:268
 msgid "User %1 blocked"
 msgstr "Gebruiker %1 geblokkeerd"
 
-#: ../user/pm.php:265
+#: ../user/pm.php:270
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "Gebruiker %1 is geblokkeerd voor het sturen van privé berichten."
 
-#: ../user/pm.php:266
+#: ../user/pm.php:271
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "Om te deblokkeren, bezoek %1de forum voorkeuren%"
 
-#: ../user/pm.php:302
+#: ../user/pm.php:307
 msgid "Unknown action"
 msgstr "Onbekende handeling"
 
-#: ../user/prefs.php:32
+#: ../user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Uw voorkeursinstellingen zijn bijgewerkt, en\n"
-"          worden van kracht zodra uw computer communiceert met %1\n"
-"          of als u de %2Update%3 functie van de BOINC Manager gebruikt."
+msgstr "Uw voorkeursinstellingen zijn bijgewerkt, en\n          worden van kracht zodra uw computer communiceert met %1\n          of als u de %2Update%3 functie van de BOINC Manager gebruikt."
 
-#: ../user/prefs.php:41
+#: ../user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Uw voorkeursinstellingen zijn bijgewerkt naar de standaard instellingen en\n"
-"          worden van kracht zodra uw computer communiceert met %1\n"
-"          of als u de %2Update%3 functie van de BOINC Manager gebruikt."
+msgstr "Uw voorkeursinstellingen zijn bijgewerkt naar de standaard instellingen en\n          worden van kracht zodra uw computer communiceert met %1\n          of als u de %2Update%3 functie van de BOINC Manager gebruikt."
 
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
 msgid "%1 for %2"
 msgstr "%1 voor %2"
 
-#: ../user/prefs_edit.php:110
+#: ../user/prefs_edit.php:112
 msgid "Back to preferences"
 msgstr "Terug naar voorkeuren"
 
-#: ../user/prefs_remove.php:45
+#: ../user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "Bevestig verwijderen van voorkeuren"
 
-#: ../user/prefs_remove.php:48
+#: ../user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr "Weet je zeker dat je de aparte %1 voorkeuren voor %2 wilt verwijderen?"
 
-#: ../user/prefs_remove.php:52
+#: ../user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "Verwijder voorkeuren"
 
-#: ../user/prefs_remove.php:54
+#: ../user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "Annuleer"
 
-#: ../user/profile_menu.php:35
+#: ../user/profile_menu.php:34 ../user/sample_index.php:119
+msgid "Profiles"
+msgstr "Profielen"
+
+#: ../user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"%1Profielen%2 geven de mogelijkheid achtergronden en meningen te delen met "
-"de %3 gemeenschap."
+msgstr "%1Profielen%2 geven de mogelijkheid achtergronden en meningen te delen met de %3 gemeenschap."
 
-#: ../user/profile_menu.php:36
+#: ../user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
-msgstr ""
-"Doorzoek de diversiteit van je mede vrijwilligers en laat ze meegenieten van "
-"je eigen mening."
+msgstr "Doorzoek de diversiteit van je mede vrijwilligers en laat ze meegenieten van je eigen mening."
 
-#: ../user/profile_menu.php:37
+#: ../user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"Als je dit nog niet hebt gedaan, kan je %1je eigen profiel aanmaken%2, zodat "
-"anderen dit kunnen zien!"
+msgstr "Als je dit nog niet hebt gedaan, kan je %1je eigen profiel aanmaken%2, zodat anderen dit kunnen zien!"
 
-#: ../user/profile_menu.php:42
+#: ../user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "Gebruiker van de dag"
 
-#: ../user/profile_menu.php:57
+#: ../user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "Gebruikers profielen"
 
-#: ../user/profile_menu.php:60
+#: ../user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "Bekijk de %1Gebruikers Foto Galerij%2."
 
-#: ../user/profile_menu.php:61
+#: ../user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "Doerzoek profielen %1op land%2."
 
-#: ../user/profile_menu.php:62
+#: ../user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr ""
-"Doorzoek profielen; %1willekeurig%2, %3willekeurig met foto%2 of %"
-"4willekeurig zonder foto%2."
+msgstr "Doorzoek profielen; %1willekeurig%2, %3willekeurig met foto%2 of %4willekeurig zonder foto%2."
 
-#: ../user/profile_menu.php:66
+#: ../user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "Profielen alfabetisch gerangschikt:"
 
-#: ../user/profile_menu.php:72
+#: ../user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "Doorzoek profiel teksten"
 
-#: ../user/profile_menu.php:98
+#: ../user/profile_menu.php:100
 msgid "No profiles"
 msgstr "Profiel niet gevonden"
 
-#: ../user/profile_menu.php:99
+#: ../user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "Er zijn geen passende profielen aangetroffen."
 
-#: ../user/profile_rate.php:29
+#: ../user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "Ongeldig stem type:"
 
-#: ../user/profile_rate.php:34
+#: ../user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "Stem Vastgelegd"
 
-#: ../user/profile_rate.php:38
+#: ../user/profile_rate.php:40
 msgid "Thank you"
 msgstr "Dank je wel"
 
-#: ../user/profile_rate.php:41
+#: ../user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "Je aanbeveling is vastgelegd."
 
-#: ../user/profile_rate.php:43
+#: ../user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "Je stem tot afwijzing van dit profiel is vastgelegd."
 
-#: ../user/profile_rate.php:46
+#: ../user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "Terug gaan naar profiel."
 
-#: ../user/profile_search_action.php:36
+#: ../user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "Profielen die '%1' bevatten"
 
-#: ../user/profile_search_action.php:40
+#: ../user/profile_search_action.php:42
 msgid "User name"
 msgstr "Gebruikersnaam"
 
-#: ../user/profile_search_action.php:41
+#: ../user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "Verbonden project"
 
-#: ../user/profile_search_action.php:44
+#: ../user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "Huidig puntentotaal"
 
-#: ../user/profile_search_action.php:54
+#: ../user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "Geen treffers in profielen met '%1'"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Taak %1"
+#: ../user/result.php:33
+msgid "No such task:"
+msgstr "Niet zulk een taak:"
 
 #: ../user/results.php:29
 msgid "This feature is turned off temporarily"
@@ -5650,149 +5314,61 @@ msgstr "Gebruikers of computer ID niet aanwezig"
 msgid "No tasks to display"
 msgstr "Geen taken om weer te geven"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Actief"
+#: ../user/sample_index.php:195
+msgid "User of the day"
+msgstr "Gebruiker van de dag"
 
-#: ../user/server_status.php:100
+#: ../user/server_status.php:59
 msgid "Not Running"
 msgstr "Niet actief"
 
-#: ../user/server_status.php:103
+#: ../user/server_status.php:63
+msgid "Running"
+msgstr "Actief"
+
+#: ../user/server_status.php:67
 msgid "Disabled"
 msgstr "Uitgezet"
 
-#: ../user/server_status.php:231
+#: ../user/server_status.php:105
 msgid "Project status"
 msgstr "Project status"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Server software versie: %1"
+#: ../user/server_status.php:110
+msgid "Server status"
+msgstr "Server status"
 
-#: ../user/server_status.php:241
+#: ../user/server_status.php:113
 msgid "Program"
 msgstr "Programma"
 
-#: ../user/server_status.php:241
+#: ../user/server_status.php:113
 msgid "Host"
 msgstr "Host computer"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "data-afhankelijke web pagina's"
+#: ../user/server_status.php:125
+msgid "Database schema version: "
+msgstr "Database schema versie:"
 
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "upload/download server"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "taakverdeler"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Actief:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Programma functioneert normaal"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Niet actief:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Programma of project functioneert niet goed"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Uitgezet:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Programma is stopgezet"
-
-#: ../user/server_status.php:303
+#: ../user/server_status.php:138
 msgid "Computing status"
 msgstr "Berekenings status"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "De database server is tijdelijk onbereikbaar"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Taken gereed om te verzenden"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Taken in uitvoering"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Werkeenheden in afwachting van validatie"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Werkeenheden in aanmaak"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Werkeenheden in afwachting van verwijdering"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Taken in afwachting van verwijdering"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Achterstand bestandsoverdracht (uren)"
-
-#: ../user/server_status.php:374
+#: ../user/server_status.php:153
 msgid "Users"
 msgstr "Gebruikers"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "met recentelijke punten"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "met punten"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "geregistreerd in de afgelopen 24 uur"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "huidig aantal GigaFLOPs"
-
-#: ../user/server_status.php:420
+#: ../user/server_status.php:165
 msgid "Tasks by application"
 msgstr "Taken per applicatie"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "applicatie"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "niet verzonden"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "in uitvoering"
+#: ../user/server_status.php:168
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Uitvoertijd van de laatste 100 taken in uren: gemiddelde, min, max"
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "gem. looptijd van de laatste 100 resultaten in u (min-max)"
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "gebruikers in laatste 24u"
+#: ../user/server_status.php:169
+msgid "Users in last 24 hours"
+msgstr "Gebruikers in de laatste 24 uur"
 
 #: ../user/show_host_detail.php:40
 msgid "Computer %1"
@@ -5802,754 +5378,701 @@ msgstr "Computer %1"
 msgid "Statistics and leaderboards"
 msgstr "Statistieken en ranglijsten"
 
-#: ../user/stats.php:28
+#: ../user/stats.php:30
 msgid "Statistics for %1"
 msgstr "Statistieken voor %1"
 
-#: ../user/stats.php:37
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/stats.php:32 ../user/top_users.php:117
+msgid "Top participants"
+msgstr "Top deelnemers"
+
+#: ../user/stats.php:40 ../user/team.php:48
+msgid "Top teams"
+msgstr "Top teams"
+
+#: ../user/stats.php:47
+msgid "Top computers"
+msgstr "Top computers"
+
+#: ../user/stats.php:48
+msgid "GPU models"
+msgstr "GPU modellen"
+
+#: ../user/stats.php:49
+msgid "CPU models"
+msgstr "CPU modellen"
+
+#: ../user/stats.php:53
 msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Meer gedetailleerde statistieken voor %1 en ander op BOINC gebaseerde "
-"projecten zijn op diverse websites beschikbaar:"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Meer gedetailleerde statistieken voor %1 en ander op BOINC gebaseerde projecten zijn op diverse websites beschikbaar:"
 
-#: ../user/stats.php:40
+#: ../user/stats.php:56
 msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Het is ook mogelijk je huidige statistieken te ontvangen in de vorm van een "
-"\"afbeelding voor handtekeningen\":"
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Het is ook mogelijk je huidige statistieken te ontvangen in de vorm van een \"afbeelding voor handtekeningen\":"
 
-#: ../user/stats.php:43
+#: ../user/stats.php:59
 msgid ""
 "Additionally you can get your individual statistics summed across all BOINC "
 "projects from several sites; see your %1home page%2."
-msgstr ""
-"Als toevoeging kan je ook je individuele statistieken krijgen van alle BOINC "
-"projecten vanaf diverse sites; zoals op je %1persoonlijke pagina%2."
+msgstr "Als toevoeging kan je ook je individuele statistieken krijgen van alle BOINC projecten vanaf diverse sites; zoals op je %1persoonlijke pagina%2."
 
 #: ../user/team.php:27
+msgid "Teams"
+msgstr "Teams"
+
+#: ../user/team.php:29
 msgid "%1 participants may form %2teams%3."
 msgstr "%1 deelnemers mogen %2teams%3 vormen."
 
-#: ../user/team.php:29
+#: ../user/team.php:31
 msgid ""
 "You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Je mag maar aan één team tegelijk deelnemen. Je kan op elk moment jezelf "
-"toevoegen of het team verlaten."
+msgstr "Je mag maar aan één team tegelijk deelnemen. Je kan op elk moment jezelf toevoegen of het team verlaten."
 
-#: ../user/team.php:31
+#: ../user/team.php:33
 msgid "Each team has a %1founder%2 who may:"
 msgstr "Elk team heeft een %1oprichter%2 die:"
 
-#: ../user/team.php:33
+#: ../user/team.php:35
 msgid "access team members' email addresses"
 msgstr "toegang heeft tot de email adressen van de leden"
 
-#: ../user/team.php:34
+#: ../user/team.php:36
 msgid "edit the team's name and description"
 msgstr "de naam en beschrijving van het team kan veranderen"
 
-#: ../user/team.php:35
+#: ../user/team.php:37
 msgid "add or remove team admins"
 msgstr "administrators mag toevoegen of verwijderen"
 
-#: ../user/team.php:36
+#: ../user/team.php:38
 msgid "remove members from the team"
 msgstr "leden kan verwijderen uit het team"
 
-#: ../user/team.php:37
+#: ../user/team.php:39
 msgid "disband a team if it has no members"
 msgstr "het team kan ontbinden als het geen leden heeft"
 
-#: ../user/team.php:40
+#: ../user/team.php:42
 msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Om je bij een team te voegen, ga je naar de team pagina en klik je op %1Lid "
-"worden van dit team%2."
+msgstr "Om je bij een team te voegen, ga je naar de team pagina en klik je op %1Lid worden van dit team%2."
 
-#: ../user/team.php:41 ../user/team_search.php:180
+#: ../user/team.php:43 ../user/team_search.php:201
 msgid "Find a team"
 msgstr "Een team zoeken"
 
-#: ../user/team.php:48
+#: ../user/team.php:50
 msgid "All teams"
 msgstr "Alle teams"
 
-#: ../user/team.php:52
+#: ../user/team.php:54
 msgid "%1 teams"
 msgstr "%1 teams"
 
-#: ../user/team.php:58
+#: ../user/team.php:60
 msgid "Create a new team"
 msgstr "Start nieuw team"
 
-#: ../user/team.php:59
+#: ../user/team.php:61
 msgid ""
 "If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Als je geen team vinden kan die voldoet aan jou eisen, kan je ook je eigen %"
-"1team maken%2."
+msgstr "Als je geen team vinden kan die voldoet aan jou eisen, kan je ook je eigen %1team maken%2."
 
-#: ../user/team_admins.php:34
+#: ../user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "Ontneem dit teamlid zijn/haar administrator-status"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: ../user/team_admins.php:42 ../user/team_admins.php:53
 msgid "Add or remove Team Admins"
 msgstr "Een teamlid als administrator toevoegen of verwijderen"
 
-#: ../user/team_admins.php:41
+#: ../user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Het is mogelijk teamleden te verkiezen als team-administrator. Een team-"
-"administrator mag:"
+msgstr "Het is mogelijk teamleden te verkiezen als team-administrator. Een team-administrator mag:"
 
-#: ../user/team_admins.php:43
+#: ../user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "Team gegevens aanpassen (naam, URL, beschrijving, land)"
 
-#: ../user/team_admins.php:44
+#: ../user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "Toon voor dit team het verloop van de aan en afmeld gegevens"
 
-#: ../user/team_admins.php:45
+#: ../user/team_admins.php:47
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Beheer het team forum, indien aanwezig (Admins krijgen een email notificatie "
-"over het beheren van evenementen en het lezen van X rapporten)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Beheer het team forum, indien aanwezig (Admins krijgen een email notificatie over het beheren van evenementen en het lezen van X rapporten)"
 
-#: ../user/team_admins.php:47
+#: ../user/team_admins.php:49
 msgid "Team Admins cannot:"
 msgstr "Team administrator beperkingen:"
 
-#: ../user/team_admins.php:49
+#: ../user/team_admins.php:51
 msgid "Change the team founder"
 msgstr "De team oprichter aanpassen is niet mogelijk"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: ../user/team_admins.php:52 ../user/team_manage.php:56
 msgid "Remove members"
 msgstr "Leden verwijderen niet toegestaan"
 
-#: ../user/team_admins.php:53
+#: ../user/team_admins.php:55
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Als een team administrator het team verlaat, verliest deze de administrator "
-"rechten."
+msgstr "Als een team administrator het team verlaat, verliest deze de administrator rechten."
 
-#: ../user/team_admins.php:54
+#: ../user/team_admins.php:56
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr ""
-"Wij raden aan dat de keuze van een betrouwbare team administrator "
-"weloverwogen wordt genomen."
+msgstr "Wij raden aan dat de keuze van een betrouwbare team administrator weloverwogen wordt genomen."
 
-#: ../user/team_admins.php:59
+#: ../user/team_admins.php:61
 msgid "There are currently no Team Admins"
 msgstr "Er zijn momenteel geen team administrators"
 
-#: ../user/team_admins.php:61
+#: ../user/team_admins.php:63
 msgid "Current Team Admins"
 msgstr "Huidige team administrators"
 
-#: ../user/team_admins.php:62
+#: ../user/team_admins.php:64
 msgid "Became Team Admin on"
 msgstr "Werd team administrator op"
 
-#: ../user/team_admins.php:77
+#: ../user/team_admins.php:79
 msgid "Add Team Admin"
 msgstr "Team administrator toevoegen"
 
-#: ../user/team_admins.php:78
+#: ../user/team_admins.php:80
 msgid "Email address of team member:"
 msgstr "E-mail adres van teamlid:"
 
-#: ../user/team_admins.php:90
+#: ../user/team_admins.php:81
+msgid "Add"
+msgstr "Toevoegen"
+
+#: ../user/team_admins.php:92
 msgid "failed to remove admin"
 msgstr "verwijderen van team administrator mislukt"
 
-#: ../user/team_admins.php:99
+#: ../user/team_admins.php:101
 msgid "User is not member of team"
 msgstr "Gebruiker is geen lid van het team"
 
-#: ../user/team_admins.php:101
+#: ../user/team_admins.php:103
 msgid "%1 is already an admin of %2"
 msgstr "%1 is al een administrator van %2"
 
-#: ../user/team_admins.php:105
+#: ../user/team_admins.php:107
 msgid "Couldn't add admin"
 msgstr "Administrator toevoegen mislukt"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: ../user/team_admins.php:113 ../user/team_manage.php:85
+#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "Team niet gevonden"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: ../user/team_change_founder_action.php:32
+#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
+#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
+#: ../user/team_email_list.php:64
 msgid "no such team"
 msgstr "team niet gevonden"
 
-#: ../user/team_change_founder_action.php:38
+#: ../user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "Gebruiker is geen lid van %1"
 
-#: ../user/team_change_founder_action.php:41
+#: ../user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "Oprichter van %1 wordt aangepast"
 
-#: ../user/team_change_founder_action.php:43
+#: ../user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 is nu oprichter van %2"
 
-#: ../user/team_change_founder_form.php:37
+#: ../user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "Oprichter van %1 wijzigen"
 
-#: ../user/team_change_founder_form.php:43
+#: ../user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr ""
-"Team lid %1 heeft het oprichterschap van dit team gevraagd op %2, maar heeft "
-"het team verlaten, hierdoor wordt zijn verzoek geannuleerd."
+msgstr "Team lid %1 heeft het oprichterschap van dit team gevraagd op %2, maar heeft het team verlaten, hierdoor wordt zijn verzoek geannuleerd."
 
-#: ../user/team_change_founder_form.php:49
+#: ../user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Team lid %1 heeft het oprichterschap van dit team aangevraagd. Dit kan zijn "
-"omdat u het team heeft verlaten, of lange tijd geen contact hebt gehad met "
-"het team."
+msgstr "Team lid %1 heeft het oprichterschap van dit team aangevraagd. Dit kan zijn omdat u het team heeft verlaten, of lange tijd geen contact hebt gehad met het team."
 
-#: ../user/team_change_founder_form.php:55
+#: ../user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "verzoek afwijzen"
 
-#: ../user/team_change_founder_form.php:58
+#: ../user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Al u het verzoek niet voor %1 afwijst, zal %2 de optie krijgen om het "
-"oprichterschap van het team op te eissen.<br /><br />\n"
-"                  Om het verzoek te accepteren kunt het het oprichterschap "
-"overdragen aan %3 middels het onderstaande formulier."
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Al u het verzoek niet voor %1 afwijst, zal %2 de optie krijgen om het oprichterschap van het team op te eissen.<br /><br />\n                  Om het verzoek te accepteren kunt het het oprichterschap overdragen aan %3 middels het onderstaande formulier."
 
-#: ../user/team_change_founder_form.php:66
+#: ../user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "Geen overplaatsings verzoeken in behandeling."
 
-#: ../user/team_change_founder_form.php:69
+#: ../user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
 "member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Om oprichterschap van dit team over te dragen naar een ander lid, vinkt u "
-"het vakje naast de naam van het lid aan en klikt u hieronder "
-"op<strong>Oprichter wijzigen</strong>."
+msgstr "Om oprichterschap van dit team over te dragen naar een ander lid, vinkt u het vakje naast de naam van het lid aan en klikt u hieronder op<strong>Oprichter wijzigen</strong>."
 
-#: ../user/team_change_founder_form.php:76
+#: ../user/team_change_founder_form.php:78
 msgid "New founder?"
 msgstr "Nieuwe oprichter?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
 msgid "Change founder"
 msgstr "Oprichter wijzigen"
 
-#: ../user/team_change_founder_form.php:108
+#: ../user/team_change_founder_form.php:110
 msgid "There are no users to transfer team to."
 msgstr "Er zijn geen gebruikers om het team naar te verplaatsen."
 
-#: ../user/team_create_action.php:29
+#: ../user/team_create_action.php:31
 msgid "You must choose a non-blank team name"
 msgstr "Je moet een naam invullen voor je team"
 
-#: ../user/team_create_action.php:34
+#: ../user/team_create_action.php:36
 msgid "A team named %1 already exists - try another name"
 msgstr "Er bestaat al een team met de naam %1 - kies a.u.b. een andere naam"
 
-#: ../user/team_create_action.php:54
+#: ../user/team_create_action.php:56
 msgid "Could not create team - please try later."
 msgstr "Team kon niet worden aangemaakt - probeer het a.u.b. later nogmaals."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
 msgid "Create a team"
 msgstr "Een team aanmaken"
 
-#: ../user/team_create_form.php:30
+#: ../user/team_create_form.php:32
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Je bent al lid van %1. Je moet eerst %2dit team verlaten%3 voordat je een "
-"nieuw team kan beginnen."
+msgstr "Je bent al lid van %1. Je moet eerst %2dit team verlaten%3 voordat je een nieuw team kan beginnen."
 
-#: ../user/team_delta.php:65
+#: ../user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "Geen oprichter of administrator"
 
-#: ../user/team_delta.php:72
+#: ../user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "Team historie voor %1"
 
-#: ../user/team_delta.php:75
+#: ../user/team_delta.php:76
 msgid "When"
 msgstr "Wanneer"
 
-#: ../user/team_delta.php:76
+#: ../user/team_delta.php:77
 msgid "User"
 msgstr "Gebruiker"
 
-#: ../user/team_delta.php:77
+#: ../user/team_delta.php:78
 msgid "Action"
 msgstr "Actie"
 
-#: ../user/team_delta.php:78
+#: ../user/team_delta.php:79
 msgid "Total credit at time of action"
 msgstr "Totale punten aantal op het moment van de actie"
 
-#: ../user/team_edit_action.php:53
+#: ../user/team_edit_action.php:55
 msgid "bad country"
 msgstr "foutief land"
 
-#: ../user/team_edit_action.php:59
+#: ../user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "De naam '%1' wordt al gebruikt door een ander team."
 
-#: ../user/team_edit_action.php:62
+#: ../user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "Specificeer teamnaam"
 
-#: ../user/team_edit_action.php:90
+#: ../user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "Team bijwerken mislukt - probeer het later a.u.b. opnieuw."
 
-#: ../user/team_edit_form.php:33
+#: ../user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "%1 aanpassen"
 
-#: ../user/team_edit_form.php:34
+#: ../user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "Team info bijwerken"
 
-#: ../user/team_email_list.php:61
+#: ../user/team_email_list.php:70
 msgid "%1 Email List"
 msgstr "%1 E-mail lijst"
 
-#: ../user/team_email_list.php:63
+#: ../user/team_email_list.php:72
 msgid "Member list of %1"
 msgstr "Ledenlijst van %1"
 
-#: ../user/team_email_list.php:78
+#: ../user/team_email_list.php:87
 msgid "Show as plain text"
 msgstr "Weergeven als platte tekst"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: ../user/team_forum.php:30 ../user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "Forum aanmaken"
 
-#: ../user/team_forum.php:29
+#: ../user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "het is mogelijk om voor %1 een forum aan te maken."
 
-#: ../user/team_forum.php:31
+#: ../user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "Alleen teamleden mogen hier berichten in plaatsen."
 
-#: ../user/team_forum.php:32
+#: ../user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "Inhoud voorbehouden aan teamleden indien gewenst."
 
-#: ../user/team_forum.php:33
+#: ../user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr "U en uw team administrators hebben moderator rechten."
 
-#: ../user/team_forum.php:40
+#: ../user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "Een forum voor %1 aanmaken"
 
-#: ../user/team_forum.php:48
+#: ../user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "Dit team heeft al een forum"
 
-#: ../user/team_forum.php:59
+#: ../user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "Team forum"
 
-#: ../user/team_forum.php:71
+#: ../user/team_forum.php:73
 msgid "Minimum time between posts (seconds)"
 msgstr "Minimale tijd tussen de berichten (seconden)"
 
-#: ../user/team_forum.php:74
+#: ../user/team_forum.php:76
 msgid "Minimum total credit to post"
 msgstr "Minimaal punten totaal om te kunnen plaatsen"
 
-#: ../user/team_forum.php:77
+#: ../user/team_forum.php:79
 msgid "Minimum average credit to post"
 msgstr "Minimaal punten gemiddelde om te kunnen plaatsen"
 
-#: ../user/team_forum.php:80
+#: ../user/team_forum.php:82
 msgid "Submit"
 msgstr "Indienen"
 
-#: ../user/team_forum.php:89
+#: ../user/team_forum.php:91
 msgid "Remove your team's message board."
 msgstr "Verwijder uw team forum."
 
-#: ../user/team_forum.php:97
+#: ../user/team_forum.php:99
 msgid "Really remove message board?"
 msgstr "Forum echt verwijderen?"
 
-#: ../user/team_forum.php:98
+#: ../user/team_forum.php:100
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"Weet u zeker dat u uw team forum wilt verwijderen? Alle discussies en "
-"berichten worden permanent verwijderd. (U kunt later altijd opnieuw een "
-"forum aanmaken)."
+msgstr "Weet u zeker dat u uw team forum wilt verwijderen? Alle discussies en berichten worden permanent verwijderd. (U kunt later altijd opnieuw een forum aanmaken)."
 
-#: ../user/team_forum.php:100
+#: ../user/team_forum.php:102
 msgid "Yes - remove message board"
 msgstr "Ja - forum verwijderen"
 
-#: ../user/team_forum.php:121
+#: ../user/team_forum.php:123
 msgid "Message board removed"
 msgstr "Forum verwijderd"
 
-#: ../user/team_forum.php:124
+#: ../user/team_forum.php:126
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
 msgstr "Uw team forum is verwijderd. U kunt nu %1een nieuwe aanmaken%2."
 
-#: ../user/team_forum.php:143
+#: ../user/team_forum.php:145
 msgid "Team Message Board Updated"
 msgstr "Team forum bijgewerkt"
 
-#: ../user/team_forum.php:144
+#: ../user/team_forum.php:146
 msgid "Update successful"
 msgstr "Bijwerken gelukt"
 
-#: ../user/team_forum.php:147
+#: ../user/team_forum.php:149
 msgid "Update failed"
 msgstr "Bijwerken mislukt"
 
-#: ../user/team_forum.php:154
+#: ../user/team_forum.php:156
 msgid "Team has no forum"
 msgstr "Team heeft geen forum"
 
-#: ../user/team_founder_transfer_action.php:36
+#: ../user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "Je moet lid zijn van een team om deze pagina te bekijken."
 
-#: ../user/team_founder_transfer_action.php:90
+#: ../user/team_founder_transfer_action.php:92
 msgid "Requesting foundership of %1"
 msgstr "Verzoek oprichterschap van %1"
 
-#: ../user/team_founder_transfer_action.php:98
+#: ../user/team_founder_transfer_action.php:100
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"De huidige oprichter is per e-mail en privé bericht op de hoogte gesteld van "
-"je verzoek.<br /><br />\n"
-"                       Als deze oprichter niet binnen 60 dagen reageert word "
-"jij automatisch de nieuwe oprichter."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "De huidige oprichter is per e-mail en privé bericht op de hoogte gesteld van je verzoek.<br /><br />\n                       Als deze oprichter niet binnen 60 dagen reageert word jij automatisch de nieuwe oprichter."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: ../user/team_founder_transfer_action.php:104
+#: ../user/team_founder_transfer_action.php:115
 msgid "Foundership request not allowed now"
 msgstr "Oprichterschap verzoek is nu niet toegestaan"
 
-#: ../user/team_founder_transfer_action.php:109
+#: ../user/team_founder_transfer_action.php:111
 msgid "Assumed foundership of %1"
 msgstr "Heeft het oprichterschap verkregen van %1"
 
-#: ../user/team_founder_transfer_action.php:111
+#: ../user/team_founder_transfer_action.php:113
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"Gefeliciteerd, u bent nu de nieuwe oprichter van team %1. Ga naar %2Uw "
-"Account pagina%3 om de Team Admin opties te vinden."
+msgstr "Gefeliciteerd, u bent nu de nieuwe oprichter van team %1. Ga naar %2Uw Account pagina%3 om de Team Admin opties te vinden."
 
-#: ../user/team_founder_transfer_action.php:120
+#: ../user/team_founder_transfer_action.php:122
 msgid "Decline founder change request"
 msgstr "Oprichterschap verzoek afwijzen"
 
-#: ../user/team_founder_transfer_action.php:127
+#: ../user/team_founder_transfer_action.php:129
 msgid "The foundership request from %1 has been declined."
 msgstr "Het oprichterschap verzoek van %1 werd afgewezen."
 
-#: ../user/team_founder_transfer_action.php:130
+#: ../user/team_founder_transfer_action.php:132
 msgid "There were no foundership requests."
 msgstr "Er zijn geen aanvragen voor nieuwe oprichters."
 
-#: ../user/team_founder_transfer_action.php:134
+#: ../user/team_founder_transfer_action.php:136
 msgid "undefined action %1"
 msgstr "ongedefineerde actie %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: ../user/team_founder_transfer_action.php:139
+#: ../user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "Terug naar team pagina"
 
-#: ../user/team_founder_transfer_form.php:28
+#: ../user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "Je moet een lid van een team om deze pagina te bekijken."
 
-#: ../user/team_founder_transfer_form.php:31
+#: ../user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "Oprichtersschap verzoeken van %1"
 
-#: ../user/team_founder_transfer_form.php:38
+#: ../user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "Je bent nu de oprichter van team %1."
 
-#: ../user/team_founder_transfer_form.php:44
+#: ../user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "Je hebt een verzoek gedaan om oprichter te worden van %1 op %2."
 
-#: ../user/team_founder_transfer_form.php:47
+#: ../user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr ""
-"Er zijn 60 dagen verstreken sinds je verzoek, en de huidige oprichter heeft "
-"niet gereageerd. Jij kunt nu oprichter worden door hier te klikken:"
+msgstr "Er zijn 60 dagen verstreken sinds je verzoek, en de huidige oprichter heeft niet gereageerd. Jij kunt nu oprichter worden door hier te klikken:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: ../user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "Oprichterschap aannemen"
 
-#: ../user/team_founder_transfer_form.php:54
+#: ../user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr ""
-"De oprichter is op de hoogte gesteld van uw verzoek. Als hij/zij niet voor %"
-"1 reageert, kunt u de status van oprichter toegewezen krijgen."
+msgstr "De oprichter is op de hoogte gesteld van uw verzoek. Als hij/zij niet voor %1 reageert, kunt u de status van oprichter toegewezen krijgen."
 
-#: ../user/team_founder_transfer_form.php:60
+#: ../user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"Indien de oprichter van het team niet actief deelneemt en u de status van "
-"oprichter wilt overnemen, klikt u op de onderstaande knop. De huidige "
-"oprichter ontvangt uw verzoek tot overname per e-mail en kan dit vervolgens "
-"inwilligen of afwijzen. Als de oprichter niet binnen 60 dagen reageert, "
-"wordt de status van oprichter aan u toegewezen.<br /><br />\n"
-"                       Wilt u een verzoek tot statusovername indienen?"
-
-#: ../user/team_founder_transfer_form.php:65
+msgstr "Indien de oprichter van het team niet actief deelneemt en u de status van oprichter wilt overnemen, klikt u op de onderstaande knop. De huidige oprichter ontvangt uw verzoek tot overname per e-mail en kan dit vervolgens inwilligen of afwijzen. Als de oprichter niet binnen 60 dagen reageert, wordt de status van oprichter aan u toegewezen.<br /><br />\n                       Wilt u een verzoek tot statusovername indienen?"
+
+#: ../user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "Oprichterschap verzoeken"
 
-#: ../user/team_founder_transfer_form.php:74
+#: ../user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "Er is al een verzoek gedaan om oprichter te worden door %1 op %2."
 
-#: ../user/team_founder_transfer_form.php:77
+#: ../user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr ""
-"Omdat er in de afgelopen 90 dagen al een verzoek tot overname van de "
-"oprichterstatus is ingediend, worden recentere verzoeken niet in behandeling "
-"genomen. Probeer het later nog eens alstublieft."
+msgstr "Omdat er in de afgelopen 90 dagen al een verzoek tot overname van de oprichterstatus is ingediend, worden recentere verzoeken niet in behandeling genomen. Probeer het later nog eens alstublieft."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: ../user/team_join.php:34 ../user/team_join_action.php:34
+#: ../user/team_join_form.php:31
 msgid "The team %1 is not joinable."
 msgstr "%1 accepteert geen nieuwe teamleden."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: ../user/team_join.php:37 ../user/team_join_action.php:37
 msgid "Already a member"
 msgstr "Reeds lid"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: ../user/team_join.php:38 ../user/team_join_action.php:38
 msgid "You are already a member of %1."
 msgstr "Je bent al lid van %1."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
+#: ../user/team_join.php:44 ../user/team_join_action.php:45
 msgid "Couldn't join team - please try again later."
 msgstr "Aansluiten als teamlid mislukt. Probeer het later nog eens alstublieft."
 
-#: ../user/team_join_action.php:40
+#: ../user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "Lid geworden van %1"
 
-#: ../user/team_join_action.php:41
+#: ../user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "U bent lid geworden van %1."
 
-#: ../user/team_join_form.php:32
+#: ../user/team_join_form.php:34
 msgid "Join %1"
 msgstr "Wordt lid van %1"
 
-#: ../user/team_join_form.php:33
+#: ../user/team_join_form.php:35
 msgid "Please note:"
 msgstr "Let op:"
 
-#: ../user/team_join_form.php:35
+#: ../user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
 msgstr "Deelnemen aan een team geeft de oprichter toegang tot uw e-mailadres."
 
-#: ../user/team_join_form.php:36
+#: ../user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "Deelnemen aan een team heeft geen invloed op uw account punten."
 
-#: ../user/team_join_form.php:43
+#: ../user/team_join_form.php:45
 msgid "Join team"
 msgstr "Word lid van het team"
 
-#: ../user/team_lookup.php:84
+#: ../user/team_lookup.php:86
 msgid "Search Results"
 msgstr "Zoek Resultaten"
 
-#: ../user/team_lookup.php:86
+#: ../user/team_lookup.php:88
 msgid "Search results for '%1'"
 msgstr "Zoek resultaten voor '%1'"
 
-#: ../user/team_lookup.php:88
+#: ../user/team_lookup.php:90
 msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-"U hebt toegang tot informatie over de leden en statistieken van dit team."
+msgstr "U hebt toegang tot informatie over de leden en statistieken van dit team."
 
-#: ../user/team_lookup.php:98
+#: ../user/team_lookup.php:100
 msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Meer dan 100 teams voldoen aan uw zoekopdracht. De eerste 100 worden "
-"getoond."
+msgstr "Meer dan 100 teams voldoen aan uw zoekopdracht. De eerste 100 worden getoond."
 
-#: ../user/team_lookup.php:104
+#: ../user/team_lookup.php:106
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Einde van zoekresultaten. %1 Als u het team dat u zoekt niet hebt gevonden, "
-"kunt u %2zelf een team oprichten%3."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Einde van zoekresultaten. %1 Als u het team dat u zoekt niet hebt gevonden, kunt u %2zelf een team oprichten%3."
 
-#: ../user/team_manage.php:26
+#: ../user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "Team administratie voor %1"
 
-#: ../user/team_manage.php:29
+#: ../user/team_manage.php:31
 msgid "Edit team info"
 msgstr "Team info bijwerken"
 
-#: ../user/team_manage.php:30
+#: ../user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "Team naam, URL, beschrijving, type, of het land aanpassen"
 
-#: ../user/team_manage.php:32
+#: ../user/team_manage.php:34
 msgid "Member list:"
 msgstr "Ledenlijst:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: ../user/team_manage.php:35 ../user/team_manage.php:39
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: ../user/team_manage.php:36
 msgid "text"
 msgstr "tekst"
 
-#: ../user/team_manage.php:35
+#: ../user/team_manage.php:37
 msgid "View member names and email addresses"
 msgstr "Bekijk de ledenlijst en e-mail adressen"
 
-#: ../user/team_manage.php:36
+#: ../user/team_manage.php:38
 msgid "View change history:"
 msgstr "Toon verloop van wijzigingen:"
 
-#: ../user/team_manage.php:38
+#: ../user/team_manage.php:40
 msgid "XML"
 msgstr "XML"
 
-#: ../user/team_manage.php:39
+#: ../user/team_manage.php:41
 msgid "See when members joined or quit this team"
 msgstr "Bekijk wanneer er leden zijn bijgekomen en weggegaan"
 
-#: ../user/team_manage.php:50
+#: ../user/team_manage.php:52
 msgid "Respond to foundership request."
 msgstr "Reageer op verzoek tot veranderen oprichter."
 
-#: ../user/team_manage.php:50
+#: ../user/team_manage.php:52
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-"Indien je niet voor %1 reageert, kan %2 het oprichterschap van dit team "
-"aannemen."
+msgstr "Indien je niet voor %1 reageert, kan %2 het oprichterschap van dit team aannemen."
 
-#: ../user/team_manage.php:55
+#: ../user/team_manage.php:57
 msgid "Remove inactive or unwanted members from this team"
 msgstr "Verwijder inactieve of ongewenste leden van dit team"
 
-#: ../user/team_manage.php:57
+#: ../user/team_manage.php:59
 msgid "Transfer foundership to another member"
 msgstr "Oprichterschap overdragen aan een ander lid"
 
-#: ../user/team_manage.php:58
+#: ../user/team_manage.php:60
 msgid "Add/remove Team Admins"
 msgstr "Toevoegen / verwijderen Team Administrators"
 
-#: ../user/team_manage.php:59
+#: ../user/team_manage.php:61
 msgid "Give selected team members Team Admin privileges"
 msgstr "Geven de geselecteerde teamleden Team Administrator privileges"
 
-#: ../user/team_manage.php:61
+#: ../user/team_manage.php:63
 msgid "Remove team"
 msgstr "Verwijder team"
 
-#: ../user/team_manage.php:62
+#: ../user/team_manage.php:64
 msgid "Allowed only if team has no members"
 msgstr "Alleen toegestaan als er geen teamleden zijn"
 
-#: ../user/team_manage.php:64
+#: ../user/team_manage.php:66
 msgid "Create or manage a team message board"
 msgstr "Een team forum aanmaken of beheren"
 
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Om dit team aan te maken bij alle BOINC projecten (huidige en toekomstige), "
-"maak je het team aan als een %1BOINC-wide team%2."
-
 #: ../user/team_manage.php:73
 msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-"Het wordt Team administrators aangeraden zich aan te sluiten bij, c.q. een "
-"bijdrage te leveren aan de Google %1boinc-team-founders%2 groep."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Om dit team aan te maken bij alle BOINC projecten (huidige en toekomstige), maak je het team aan als een %1BOINC-wide team%2."
 
 #: ../user/team_manage.php:75
 msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Andere opties voor BOINC team admins zijn beschikbaar op de volgende site, %"
-"1www.boincteams.com%2."
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "Het wordt Team administrators aangeraden zich aan te sluiten bij, c.q. een bijdrage te leveren aan de Google %1boinc-team-founders%2 groep."
 
 #: ../user/team_manage.php:91
 msgid "Can't delete non-empty team"
@@ -6559,146 +6082,128 @@ msgstr "Een team moet leeg zijn om te verwijderen"
 msgid "Team %1 deleted"
 msgstr "Team %1 verwijderd"
 
-#: ../user/team_members.php:36
+#: ../user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr "Limiet overschreden:  Alleen de eerst 1000 leden kunnen worden getoond."
 
-#: ../user/team_members.php:49
+#: ../user/team_members.php:51
 msgid "Members of %1"
 msgstr "Leden van %1"
 
-#: ../user/team_quit_action.php:32
+#: ../user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "Team verlaten niet mogelijk"
 
-#: ../user/team_quit_action.php:33
+#: ../user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "Team bestaat niet of je bent er geen lid van."
 
-#: ../user/team_quit_form.php:31
+#: ../user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "Verlaat %1"
 
-#: ../user/team_quit_form.php:32
+#: ../user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Let op voordat je een team verlaat:</strong>\n"
-"         <ul>\n"
-"         <li>Je mag altijd opnieuw lid worden of lid worden van een ander "
-"team indien je dit wenst.\n"
-"         <li>Een team verlaten heeft op geen enkele wijze gevolgen voor je "
-"persoonlijke punten statistiek.\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>Let op voordat je een team verlaat:</strong>\n         <ul>\n         <li>Je mag altijd opnieuw lid worden of lid worden van een ander team indien je dit wenst.\n         <li>Een team verlaten heeft op geen enkele wijze gevolgen voor je persoonlijke punten statistiek.\n         </ul>"
 
-#: ../user/team_quit_form.php:40
+#: ../user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "Verlaat Team"
 
-#: ../user/team_remove_inactive_action.php:31
+#: ../user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "Bebruikers van %1 worden verwijderd"
 
-#: ../user/team_remove_inactive_action.php:39
+#: ../user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1 is geen lid van %2"
 
-#: ../user/team_remove_inactive_action.php:42
+#: ../user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 is verwijderd"
 
-#: ../user/team_remove_inactive_form.php:32
+#: ../user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "Leden van %1 verwijderen"
 
-#: ../user/team_remove_inactive_form.php:39
+#: ../user/team_remove_inactive_form.php:41
 msgid "Remove?"
 msgstr "Verwijderen?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: ../user/team_remove_inactive_form.php:42
 msgid "Name (ID)"
 msgstr "Naam (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: ../user/team_remove_inactive_form.php:67
 msgid "No members are eligible for removal."
 msgstr "Er komen geen leden in aanmerking voor verwijdering."
 
-#: ../user/team_remove_inactive_form.php:68
+#: ../user/team_remove_inactive_form.php:70
 msgid "Remove users"
 msgstr "Verwijder gebruikers"
 
-#: ../user/team_search.php:68
+#: ../user/team_search.php:76
 msgid "Team name"
 msgstr "Team naam"
 
-#: ../user/team_search.php:92
+#: ../user/team_search.php:113
 msgid "Team search results"
 msgstr "Team resultaten"
 
-#: ../user/team_search.php:94
+#: ../user/team_search.php:115
 msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"Er zijn geen teams gevonden die voldoen aan jouw criteria. Probeer een "
-"andere zoekopdracht."
+msgstr "Er zijn geen teams gevonden die voldoen aan jouw criteria. Probeer een andere zoekopdracht."
 
-#: ../user/team_search.php:96
+#: ../user/team_search.php:117
 msgid "Or you can %1create a new team%2."
 msgstr "Je kan ook %1een nieuw team aanmaken%2."
 
-#: ../user/team_search.php:100
+#: ../user/team_search.php:121
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"The following teams match one or more of your search criteria.\n"
-"\n"
-"            To join a team, click its name to go to the team page,\n"
-"\n"
-"               then click %1Join this team%2."
+msgstr "The following teams match one or more of your search criteria.\n\n            To join a team, click its name to go to the team page,\n\n               then click %1Join this team%2."
 
-#: ../user/team_search.php:107
+#: ../user/team_search.php:128
 msgid "Change your search"
 msgstr "Verander je zoekopdracht"
 
-#: ../user/team_search.php:181
+#: ../user/team_search.php:202
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr ""
-"U kunt zich aansluiten bij deelnemers met dezelfde interesses, bij "
-"landgenoten, collega's of uw schoolteam."
+msgstr "U kunt zich aansluiten bij deelnemers met dezelfde interesses, bij landgenoten, collega's of uw schoolteam."
 
-#: ../user/team_search.php:183
+#: ../user/team_search.php:204
 msgid "Use this form to find teams that might be right for you."
-msgstr ""
-"Middels dit formulier kunt u wellicht een keuze maken uit de voor u "
-"geschikte teams."
+msgstr "Middels dit formulier kunt u wellicht een keuze maken uit de voor u geschikte teams."
 
-#: ../user/team_search.php:188
+#: ../user/team_search.php:209
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "%1Ik heb nu nog geen belangstelling%2 voor een teamlidmaatschap."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: ../user/top_hosts.php:67 ../user/top_teams.php:102
+#: ../user/top_users.php:113
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "Limiet overschreden - Sorry, alleen eerste %1 items"
 
+#. Now display what we've got (either gotten from cache or from DB)
 #: ../user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "Top computers"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/top_teams.php:107
 msgid "Top %1 teams"
 msgstr "Top %1 teams"
 
-#: ../user/top_teams.php:108
+#: ../user/top_teams.php:110
 msgid "There are no %1 teams"
 msgstr "Er zijn geen %1 teams"
 
@@ -6706,11 +6211,11 @@ msgstr "Er zijn geen %1 teams"
 msgid "Participant since"
 msgstr "Deelnemer sinds"
 
-#: ../user/uotd.php:29
+#: ../user/uotd.php:31
 msgid "No user of the day has been chosen."
 msgstr "De gebruiker mag geen van de dag is gekozen."
 
-#: ../user/uotd.php:33
+#: ../user/uotd.php:35
 msgid "User of the Day for %1: %2"
 msgstr "Gebruiker van de Dag voor% 1:% 2"
 
@@ -6754,19 +6259,19 @@ msgstr "Oplopend punten gemiddelde"
 msgid "Decreasing total credit"
 msgstr "Oplopend punten totaal"
 
-#: ../user/user_search.php:100
+#: ../user/user_search.php:84
 msgid "search string must be at least 3 characters"
 msgstr "zoek waarde moet minimaal 3 karakters lang zijn"
 
-#: ../user/user_search.php:133
+#: ../user/user_search.php:118
 msgid "User search results"
 msgstr "Zoek resultaten voor gebruiker"
 
-#: ../user/user_search.php:140
+#: ../user/user_search.php:125
 msgid "Joined"
 msgstr "Aangemeld"
 
-#: ../user/user_search.php:148
+#: ../user/user_search.php:133
 msgid "No users match your search criteria."
 msgstr "Zoek opdracht heeft geen gebruikers opgeleverd."
 
@@ -6802,9 +6307,7 @@ msgstr "Controleer BOINC e-mail adres"
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr ""
-"Klik a.u.b. op de volgende link om het e-mail adres van je %1 account te "
-"controleren:"
+msgstr "Klik a.u.b. op de volgende link om het e-mail adres van je %1 account te controleren:"
 
 #: ../user/validate_email_addr.php:34
 msgid "Validate email sent"
@@ -6814,9 +6317,7 @@ msgstr "Controle e-mail verzonden"
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr ""
-"Er is een e-mail verzonden naar %1. Een bevestigings link is hierin "
-"opgenomen."
+msgstr "Er is een e-mail verzonden naar %1. Een bevestigings link is hierin opgenomen."
 
 #: ../user/validate_email_addr.php:44
 msgid "No such user."
@@ -6838,29 +6339,24 @@ msgstr "E-mail adres controleren"
 msgid "The email address of your account has been validated."
 msgstr "Het e-mail adres van je account is met succes gecontroleerd."
 
-#: ../user/view_profile.php:36
+#: ../user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "Deze gebruiker heeft geen profiel"
 
-#: ../user/view_profile.php:54
+#: ../user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "Profiel: %1"
 
-#: ../user/view_profile.php:63
+#: ../user/view_profile.php:65
 msgid "Account data"
 msgstr "Account gegevens"
 
 #: ../user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"Je kan toegang krijgen tot je account d.m.v. een je e-mail adres en "
-"wachtwoord\n"
-"    of door gebruik te maken van een 'account key'.\n"
-"    Jouw account key is:"
+msgstr "Je kan toegang krijgen tot je account d.m.v. een je e-mail adres en wachtwoord\n    of door gebruik te maken van een 'account key'.\n    Jouw account key is:"
 
 #: ../user/weak_auth.php:57
 msgid "This key can be used to:"
@@ -6876,12 +6372,7 @@ msgid ""
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"je computer aan je account toe te voegen zonder gebruik van de BOINC "
-"Manager.\n"
-"       Om dit te doen installeer je BOINC,\n"
-"       maak je een bestand met de naam %1 in de\n"
-"       BOINC data map en vul je het volgende in:"
+msgstr "je computer aan je account toe te voegen zonder gebruik van de BOINC Manager.\n       Om dit te doen installeer je BOINC,\n       maak je een bestand met de naam %1 in de\n       BOINC data map en vul je het volgende in:"
 
 #: ../user/weak_auth.php:73
 msgid "Weak account key"
@@ -6890,26 +6381,17 @@ msgstr "Zwakke account key"
 #: ../user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"Een 'zwakke account key' kan worden gebruikt om computers aan je account\n"
-"    toe te voegen met bovenstaande methode, maar kan niet worden gebruikt om "
-"in te loggen\n"
-"    op je account. Gebruik alleen je zwakke account key om vertrouwde\n"
-"    computers toe te voegen.\n"
-"    Jouw zwakke account key is:"
+msgstr "Een 'zwakke account key' kan worden gebruikt om computers aan je account\n    toe te voegen met bovenstaande methode, maar kan niet worden gebruikt om in te loggen\n    op je account. Gebruik alleen je zwakke account key om vertrouwde\n    computers toe te voegen.\n    Jouw zwakke account key is:"
 
 #: ../user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
-"Zodra je je wachtwoord wijzigt veranderd ook je zwakke account key en wordt "
-"de vorige ongeldig."
+msgstr "Zodra je je wachtwoord wijzigt veranderd ook je zwakke account key en wordt de vorige ongeldig."
 
 #: ../user/workunit.php:32
 msgid "can't find workunit"
@@ -6919,6 +6401,10 @@ msgstr "taak niet gevonden"
 msgid "Workunit %1"
 msgstr "Taak %1"
 
+#: ../user/workunit.php:40
+msgid "application"
+msgstr "applicatie"
+
 #: ../user/workunit.php:43
 msgid "canonical result"
 msgstr "meest overeenkomstig resultaat"
@@ -6928,6 +6414,10 @@ msgid "granted credit"
 msgstr "toegekende punten"
 
 #: ../user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Taken in uitvoering"
+
+#: ../user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "onderdrukt in afwachting van resultaat"
 
@@ -6955,469 +6445,70 @@ msgstr "validiteitscontrole"
 msgid "Pending"
 msgstr "In behandeling"
 
-#: ../project.sample/project.inc:43
+#: ../project.sample/project.inc:70
 msgid "Main page"
 msgstr "Hoofd pagina"
 
-#: ../project.sample/project.inc:45
+#: ../project.sample/project.inc:72
 msgid "Copyright"
 msgstr "Copyright"
 
-#: ../project.sample/project.inc:48
+#: ../project.sample/project.inc:75
 msgid "Generated"
 msgstr "Gegenereerd"
 
-#: ../project.sample/project.inc:79
+#: ../project.sample/project.inc:106
 msgid "Your personal background."
 msgstr "Je persoonlijke achtergrond."
 
-#: ../project.sample/project.inc:83
+#: ../project.sample/project.inc:110
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Vertel ons over jezelf. Vertel bijvoorbeeld waar je vandaan komt, je "
-"leeftijd, beroep, hobbies of andere zaken over jezelf."
+msgstr "Vertel ons over jezelf. Vertel bijvoorbeeld waar je vandaan komt, je leeftijd, beroep, hobbies of andere zaken over jezelf."
 
-#: ../project.sample/project.inc:87
+#: ../project.sample/project.inc:114
 msgid "Your opinions about %1"
 msgstr "Jouw opinie over %1"
 
-#: ../project.sample/project.inc:91
+#: ../project.sample/project.inc:118
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"Vertel ons jouw gedachten over %1<ol>\n"
-"    <li>Waarom draai je %1?\n"
-"    <li>Wat zijn jouw visies op het project?\n"
-"    <li>Heb je suggesties?\n"
-"    </ol>"
+msgstr "Vertel ons jouw gedachten over %1<ol>\n    <li>Waarom draai je %1?\n    <li>Wat zijn jouw visies op het project?\n    <li>Heb je suggesties?\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: ../project.sample/project_specific_prefs.inc:53
 msgid "Color scheme for graphics"
 msgstr "Kleuren schema voor grafische weergave"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: ../project.sample/project_specific_prefs.inc:55
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "Maximum CPU gebruik voor grafische weergave %10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: ../project.sample/project_specific_prefs.inc:56
 msgid "Run only the selected applications"
 msgstr "Alleen geselecteerde applicaties uitvoeren"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: ../project.sample/project_specific_prefs.inc:57
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Alleen taken voor bepaalde applicaties. Nuttig om bijzondere aandacht te besteden aan bepaalde applicaties, of om ze uit te sluiten."
+
+#: ../project.sample/project_specific_prefs.inc:58
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
-msgstr ""
-"Andere applicaties accepteren als er geen werk voor de geselecteerde "
-"applicaties is?"
+msgstr "Andere applicaties accepteren als er geen werk voor de geselecteerde applicaties is?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: ../project.sample/project_specific_prefs.inc:59
+msgid "Use faster non-graphical applications if available?"
+msgstr "Gebruik snellere niet-grafische applicaties indien beschikbaar?"
+
+#: ../project.sample/project_specific_prefs.inc:90
 msgid "(all applications)"
 msgstr "(alle applicaties)"
-
-#~ msgid "Error:"
-#~ msgstr "Fout:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Aanmaken van account gesloten"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Sorry, voor dit project is het momenteel niet mogelijk om een nieuwe account "
-#~ "aan te maken.\n"
-#~ "Probeer het later opnieuw a.u.b."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Aanmaken van account is tijdelijk niet mogelijk. Probeer het a.u.b. later "
-#~ "nog eens."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "nvidia GPU"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Dit project heeft geen e-mailbericht gegenereerd. Neem a.u.b. contact op met "
-#~ "de projectadministrators"
-
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Gebruik Intel GPU %1 Instelbaar vanaf 7.0+ %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Dit is van toepassing op alle projecten waar je aan deelneemt.<br>\n"
-#~ "             Op computers met meerdere projecten worden de meest recente "
-#~ "voorkeursinstellingen toegepast."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Dit nieuws artikel exporteren als mededeling"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Ga naar de BOINC-gegevensmap (in Windows is dat doorgaans <b>C:\\Documents "
-#~ "and Settings\\All Users\\Application Data\\BOINC</b> of <b>C:\\Program "
-#~ "Files\\BOINC</b>."
-
-#~ msgid "No such task"
-#~ msgstr "Taak niet gevonden"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Computer is verbonden met het internet elke %1 Laat leeg of vul 0 in indien "
-#~ "altijd verbonden. %2 BOINC haalt minimaal de aangegeven hoeveelheid aan werk "
-#~ "binnen (max 10 dagen). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Extra werk binnen halen voor tenminste"
-
-#~ msgid "Update failed: "
-#~ msgstr "Bijwerken mislukt: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Geeft %1beperkte toegang%2 tot je account"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Hier geen gegevens invullen. Start BOINC, selecteer 'Project toevoegen' en "
-#~ "vul daar een email adres en wachtwoord in."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Volgorde van gemarkeerde berichten niet wijzigen"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Indien het aantal reacties op een onderwerp groter is dan"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr ""
-#~ "alleen de nieuwste en het volgende aantal eerder geplaatste reacties "
-#~ "weergeven"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Uw rapportage is geregistreerd. Hartelijk dank voor uw bijdrage."
-
-#~ msgid "Search type"
-#~ msgstr "Zoek type"
-
-#~ msgid "User names starting with"
-#~ msgstr "Gebruikersnamen beginnend met"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Een 'beperkte account key' geeft de mogelijkheid computers toe te voegen aan "
-#~ "dit project, je account aanpassen of hierop inloggen is hiermee niet "
-#~ "mogelijk."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Deze optie werkt alleen met projecten die een server software versie hebben "
-#~ "van 7 december 2007 of later."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Je 'beperkte account key' voor dit project is:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Om je 'beperkte account key' te kunnen gebruiken, zoek je naar (of maak je) "
-#~ "een 'account bestand' op de bedoelde computer. Dit bestand heeft de "
-#~ "bestandsopbouw; <b>account_PROJECT_URL.xml</b>. Het bestand voor %1 is <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Maak dit bestand aan indien nodig. Zet de indeling op:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Je 'beperkte account key' is afhankelijk van je wachtwoord. Indien je je "
-#~ "wachtwoord veranderd, zal ook je 'beperkte account key' aangepast worden en "
-#~ "is de vorige niet meer geldig."
-
-#~ msgid "Account key"
-#~ msgstr "Account key"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Geeft volledige toegang tot je account"
-
-#~ msgid "Export"
-#~ msgstr "Exporteren"
-
-#~ msgid "- private message"
-#~ msgstr "- persoonlijk bericht"
-
-#~ msgid "Private message from"
-#~ msgstr "Persoonlijk bericht van"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Verificatie van e-mail adres in behandeling"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Ingelogd als %1"
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Ingelogd als iemand anders."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Geen onderwerp met id %1. Controleer de link en probeer het opnieuw."
-
-#~ msgid "Request not found"
-#~ msgstr "Verzoek niet gevonden"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 heeft jou als vriend(in) toegevoegd."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Account gegevens voor %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "forum aanmaken mislukt"
-
-#~ msgid "message board not found"
-#~ msgstr "forum niet gevonden"
-
-#~ msgid "no such forum"
-#~ msgstr "forum niet gevonden"
-
-#~ msgid "unknown command %1"
-#~ msgstr "onbekende opdracht %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "FOUT: %1 bestaat niet!  Combo box kon niet worden gemaakt.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Om de website van dit project tegen spam te beschermen, vragen we je "
-#~ "vriendelijk om de twee getoonde worden in de afbeelding in te typen:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC cliënt versie"
-
-#~ msgid "Client detached"
-#~ msgstr "Client teruggetrokken"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "Maximum dagelijkse WU quota per CPU"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/dag"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "Anoniem platform - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "Anoniem platform - NVIDIA GPU"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "Anoniem platform - ATI GPU"
-
-#~ msgid "Task ID"
-#~ msgstr "Taak ID"
-
-#~ msgid "Granted credit"
-#~ msgstr "Toegekende punten"
-
-#~ msgid "Click to"
-#~ msgstr "Klik om"
-
-#~ msgid "(no restriction if equal)"
-#~ msgstr "(geen beperkingen indien gelijk)"
-
-#~ msgid "Leave at least"
-#~ msgstr "Laat minstens"
-
-#~ msgid "% of page file (swap space)"
-#~ msgstr "% vrij van het virtuele geheugen"
-
-#~ msgid "Use ATI GPU if present %1(enforced by 6.10+ clients)%2"
-#~ msgstr "Indien aanwezig gebruik ATI GPU %1(instelbaar vanaf 6.10+)%2"
-
-#~ msgid "KB/s"
-#~ msgstr "KB/s"
-
-#~ msgid "GB disk space"
-#~ msgstr "Gb schijfruimte"
-
-#~ msgid "GB disk space free"
-#~ msgstr "Gb schijfruimte vrij"
-
-#~ msgid "(no restriction)"
-#~ msgstr "(geen beperking)"
-
-#~ msgid "%1 GB disk space"
-#~ msgstr "%1 Gb schijfruimte"
-
-#~ msgid "%1 GB disk space free"
-#~ msgstr "%1 Gb schijfruimte vrij"
-
-#~ msgid ""
-#~ "Resource share %1If you participate in multiple BOINC projects, this is "
-#~ "the proportion of your resources used by %2%3"
-#~ msgstr ""
-#~ "Gedeelde bronnen %1Indien je meedoet aan meerdere BOINC projecten is dit "
-#~ "het gebruikte gedeelte van %2%3"
-
-#~ msgid "Gbytes"
-#~ msgstr "Gbytes"
-
-#~ msgid "Resource share"
-#~ msgstr "Gedeelde bronnen"
-
-#~ msgid "Last %1"
-#~ msgstr "Laatste %1"
-
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Language symbol"
-#~ msgstr "Taal symbool"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Gedeelde bronnen en grafische weergave"
-
-#~ msgid "fll"
-#~ msgstr "fll"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Taken voor computer %1"
-
-#~ msgid "Provides"
-#~ msgstr "Geeft"
-
-#~ msgid "limited access"
-#~ msgstr "gedeeltelijke toegang"
-
-#~ msgid "to your account"
-#~ msgstr "tot je account"
-
-#~ msgid "Current version"
-#~ msgstr "Huidige versie"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Markeer als 'ongelezen'"
-
-#~ msgid "With selected"
-#~ msgstr "Met het volgende"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Weet je zeker dat je het bericht met het onderwerp "%1&quot wilt "
-#~ "verwijderen; (verzonden door %2 op %3)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Ja, verwijder"
-
-#~ msgid "No such message."
-#~ msgstr "Geen bericht gevonden."
-
-# Apps page (apps.php)
-# ########################################
-#~ msgid "APPS_TITLE"
-#~ msgstr "Applicaties"
-
-# Rules and Policies page (info.php)
-# ########################################
-#~ msgid "RULES_TITLE"
-#~ msgstr "Lees onze regels en beleid"
-
-# Create account form (create_account_form.php)
-# ########################################
-#~ msgid "CREATE_AC_TITLE"
-#~ msgstr "Maak een an account"
-
-#~ msgid "FORUM_TITLE"
-#~ msgstr "$PROJECT Forums"
-
-#~ msgid "FORUM_TITLE_SHORT"
-#~ msgstr "Forums"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-# ########################################
-#~ msgid "OPTIONAL"
-#~ msgstr "Optioneel"
-
-#~ msgid "TOP_PARTICIPANT_TITLE"
-#~ msgstr "Beste deelnemers"
-
-#~ msgid "USER_TABLE_RANK"
-#~ msgstr "Positie"
-
-#~ msgid "USER_TABLE_NAME"
-#~ msgstr "Naam"
-
-#~ msgid "TOTAL_CREDIT"
-#~ msgstr "Punten totaal"
-
-#~ msgid "EXPAVG_CREDIT"
-#~ msgstr "Punten gemiddeld"
-
-#~ msgid "USER_TABLE_COUNTRY"
-#~ msgstr "Land"
-
-#~ msgid "USER_TABLE_PTIME"
-#~ msgstr "Deelnemer sinds"
-
-#~ msgid "TOP_TEAMS_TITLE"
-#~ msgstr "Beste %s teams"
-
-#~ msgid "TEAM_TABLE_MEMBERS"
-#~ msgstr "Leden"
-
-# ########################################
-# Forum
-# ########################################
-#~ msgid "FORUM_POSTS"
-#~ msgstr "Berichten"
-
-# Forum thread
-# ########################################
-#~ msgid "FORUM_THREAD_HIDDEN"
-#~ msgstr "Deze discussie is verborgen voor administratieve doeleinden"
-
-# Forum search features
-# ########################################
-# Apps page (apps.php)
-# ########################################
-# Rules and Policies page (info.php)
-# Create account form (create_account_form.php)
-# General stuff (create_account_form.php and others)
-# Forum
-# Forum thread
-# Forum search features
-#~ msgid "FORUM_SEARCH"
-#~ msgstr "Zoek forums"
diff --git a/html/languages/translations/pl.po b/html/languages/translations/pl.po
deleted file mode 100644
index cc26564..0000000
--- a/html/languages/translations/pl.po
+++ /dev/null
@@ -1,7128 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-01-20 16:11+0000\n"
-"Last-Translator: Pawel <pawel.pbm at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1358698319.0\n"
-
-# The name of this language in this language
-msgid "LANG_NAME_NATIVE"
-msgstr "Polski"
-
-# The name of this language in an international language (English)
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Polish"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Pogrubienie: [b]tekst[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kursywa: [i]tekst[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Podkreślenie: [u]tekst[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Cytat: [quote]tekst[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Kod: [code]kod[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]tekst[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Lista uporządkowana: [list=]tekst[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Wstaw obrazek: [img]http://adres_obrazka[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Wstaw URL: [url]http://adres[/url] lub [url=http://url]adres[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Kolor czcionki"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Kolor czcionki: [color=red]tekst[/color]  Rada: możesz także użyć "
-"color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Domyślny"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Ciemny czerwony"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Czerwony"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Pomarańczowy"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Brązowy"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Żółty"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Zielony"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliwkowy"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Błękitny"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Niebieski"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Ciemnoniebieski"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indigo"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Fioletowy"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Rozmiar czcionki"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Rozmiar czcionki: [size=x-small]mały tekst[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Mały"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normalny"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Duży"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Zamknij wszystkie otwarte znaczniki bbCode"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Zamknij znaczniki"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Starsze najpierw"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Nowsze najpierw"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Najwyżej oceniane posty najpierw"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Nowsze posty najpierw"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Najczęściej oglądane najpierw"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Z największą ilością postów najpierw"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Szukaj słów w postach na forum"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Przeszukaj fora"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Zaawansowane wyszukiwanie"
-
-# #######################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Prywatne wiadomości"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Pytania i odpowiedzi"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Forum dyskusyjne"
-
-# #######################################<br />
-# Forum sample index page
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "Forum dyskusyjne %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Poprzedni"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Następny"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Wiadomość"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Wyślij wiadomość"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Wyślij prywatną wiadomość do %1"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Dołączył: %1"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Postów: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Punktów: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Nie przeczytałeś jeszcze tej wiadomości"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Nieprzeczytana"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Wiadomość %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "ukryte"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Wysłano: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr " - w odpowiedzi na "
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Edytuj"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Edytuj tą wiadomość"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Ostatnio zmodyfikowano: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Ta wiadomość nie jest wyświetlona, ponieważ autor jest na twojej liście "
-"ignorowanych. Kliknij %1tutaj%2 aby zobaczyć tą wiadomość"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Zgłoś tą wiadomość jako obraźliwą"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Zgłoś jako obraźliwą"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Ocena: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "ocena:"
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Kliknij, jeśli lubisz tą wiadmość"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Ocena ++"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Kliknij, jeśli nie lubisz tej wiadomości"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Ocena --"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Odpowiedz"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Wyślij odpowiedź na tą wiadomość"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Cytuj"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Wyślij odpowiedź cytując tą wiadomość"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Ukryty przez moderatora"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Wysłano %1 przez %2"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Nie możesz wysłać lub ocenić wiadomości do puki %1"
-
-#: ../inc/forum.inc:758
-#, fuzzy
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Wiadomości nie mogą zawierać\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Zasady:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Więcej informacji"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Pokaż"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Pokaż tę wiadomość"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Ukryj"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Ukryj tę wiadomość"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Przenieś"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Przenieś tę wiadomość do innego wątku"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Zbanuj użytkownika"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Zagłosuj, aby zbanować użytkownika"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Zagłosuj, aby nie banować użytkownika"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Rozpocznij głosowanie, aby zbanować użytkownika"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "Tylko członkowie zespołu mogą wysyłać wiadomości na forum zespołu"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Aby stworzyć nowy temat w %1 musisz mieć określoną liczbę punktów. Zapobiega "
-"to spamowaniu na forum."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Nie możesz stworzyć teraz nowego tematu. Odczekaj chwile, zanim spróbujesz "
-"stworzyć temat ponownie. Zapobiega to spamowaniu na forum."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Ten wątek jest zablokowany. Tylko moderatorzy i administratorzy mogą wysyłać "
-"tu wiadomości."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Nie można dodać wiadomości do ukrytego wątku."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Wątek"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Posty"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Wyświetleń"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Ostatni post"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Nowe wiadomości w wątku %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Nowe wiadomości w subskrybowanych wątkach"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Są nowe wiadomości w wątku '%1'"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Zaznacz wszystkie wątki jako przeczytane"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Zaznacz wszystkie wątki we wszystkich forach jako przeczytane."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Brak komputera"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Niedostępny"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Dom"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Praca"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Szkoła"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Aktualizuj"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Informacje o komputerze"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "Adres IP"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(identyczny ostatnich %1 razy)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Zewnętrzny adres IP"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Pokaż adres IP"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Nazwa domenowa"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Czas lokalny"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 godzin(a)"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Właściciel"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonimowy"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Stworzony"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Wszystkie punkty"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Średnia liczba punktów"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Liczba punktów we wszystkich projektach"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Typ procesora"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Liczba procesorów"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Koprocesory"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "System operacyjny"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Wersja BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Pamięć"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Pamięć podręczna"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Przestrzeń wymiany"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Całkowita pojemność dysku"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Dostępna pojemność dysku"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Zmierzona wydajność zmiennoprzecinkowa"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 milionów operacji/s."
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Zmierzona prędkość dla liczb całkowitych"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Średnia prędkość wysyłania"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Nieznany"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Średnia prędkość pobierania"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Średni czas realizacji"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 dni"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Szczegóły aplikacji"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Pokaż"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Zadania"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Liczba połączeń klienta z serwerem"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Ostatnie połączenie z serwerem"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% czasu przez jaki działa BOINC"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"% czasu, kiedy BOINC jest włączony, przez jaki dostępne jest połączenie z "
-"Internetem"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% czasu, kiedy BOINC jest włączony, przez jaki możliwa jest praca"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Średnia wydajność procesora"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Współczynnik korekcji czasu trwania zadań"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Lokalizacja"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Usuń ten komputer"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Scal zduplikowane rekordy tego komputera"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Scal"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Ostatni kontakt"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informacje o komputerze"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Pozycja"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Śr. punktów"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Aktualna średnia liczba punktów"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "System operacyjny"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 procesorów)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Szczegóły"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Statystyki międzyprojektowe:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Komputer %1 ma pokrywający się czas działania:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Komputer %1 ma niekompatybilny system operacyjny:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Komputer %1 ma niekompatybilny procesor:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "ten sam komputer"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Nie można scalić komputera %1 z %2 - są one niekompatybilne"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Scalanie komputera %1 z %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Nie można zaktualizować punktów nowego komputera"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Nie można zaktualizować wyników"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Nie można wycofać starego komputera"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Wycofano stary komputer %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Pokaż:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Wszystkie komputery"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Tylko komputery aktywne w ciągu ostatnich 30 dni"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID komputera"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nazwa"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "Wersja<br>BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Scal komputery według nazwy"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Komentarz"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Aktualności są dostępne w %skanale RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Odebrane"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Napisz"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Wyślij prywatną wiadomość"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Podgląd"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "nie ma takiej wiadomości"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Do"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Identyfikatory lub nazwy użytkowników, oddzielone przecinkami"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Temat"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Wyślij wiadomość"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "przysłał ci prywatną wiadomość; temat:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Prywatna wiadomość%1 od %2, temat:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Nie można utworzyć wiadomości"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Nie możesz wysyłać prywatnych wiadomości tak często. Odczekaj chwilę i "
-"spróbuj ponownie."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "nieprzeczytane"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Dla powiadomień e-mail, %1edytuj preferencje społecznościowe%2"
-
-# #######################################
-# Private messages
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Prywatna wiadomość"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Wstrzymaj pracę gdy komputer jest zasilany z baterii? %1 Dotyczy tylko dla "
-"komputerów przenośnych %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Wstrzymać pracę gdy komputer jest w użyciu?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Wstrzymać pracę karty graficznej gdy komputer jest w użyciu? %1 Wymuszone "
-"przez wersję 6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "\"W użyciu\" oznacza, aktywność myszki/klawiatury w ciągu ostatnich"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minut"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Wstrzymaj pracę jeśli brak aktywność myszki/klawiatury w ciągu ostatnich %1 "
-"Na niektórych komputerach jest to wymagane aby przejść do trybu niskiego "
-"poboru mocy %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Wstrzymaj pracę jeśli obciążenie procesora prze programy inne niż BOINC "
-"przekracza %1 0 oznacza brak ograniczeń<br>Egzekwowane od wersji 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"Wykonuj pracę tylko pomiędzy godzinami %1 Brak ograniczeń jeśli równe %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Pozostaw zadania w pamięci podczas wstrzymania? %1 Jeśli opcja jest "
-"zaznaczona wstrzymane zadania będą zajmowały pamięć %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Przełączaj między zadaniami co %1 Zalecane: 60 minut %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "W systemach wieloprocesorowych, używaj maksymalnie"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesorów"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"W systemach wieloprocesorowych, użyj maksymalnie %1 Egzekwowane od wersji "
-"6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% procesorów"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Używaj maksymalnie %1 Może być stosowany w celu zmniejszenia temperatury "
-"procesora %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% czasu procesora"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Dysk: użyj maksymalnie"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Dysk: pozostaw co najmniej %1 wolnego. Wartości mniejsze niż %2 są "
-"ignorowane %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% całości"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Zapisuj na dysku stan zadania nie częściej niż co każde"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "sekund"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Przestrzeń wymiany: użyj najwyżej"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Pamięć: kiedy komputer jest w użyciu, używaj maksymalnie"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Pamięć: kiedy komputer nie jest w użyciu, używaj maksymalnie"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dni"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Potwierdź przed podłączeniem do Internetu? %1 Opcja użyteczna tylko jeśli "
-"masz modem, ISDN lub VPN %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Rozłączyć po zakończeniu? %1 Opcja użyteczna tylko jeśli masz modem, ISDN "
-"lub VPN %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Maksymalna szybkość pobierania:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "kB/s"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Maksymalna szybkość wysyłania:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Używaj sieci tylko miedzy godzinami"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Prześlij najwyżej %1 Egzekwowane od wersji 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mb co"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Pominąć weryfikację plików graficznych? %1 Zaznacz to tylko wtedy gdy twój "
-"dostawca Internetu modyfikuje pliki graficzne (np. UMTS). %2 Pominięcie "
-"weryfikacji przez BOINC zmniejsza bezpieczeństwo %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Podziel zasoby %1 Określa procent zasobów twojego komputera przeznaczonych "
-"na ten projekt. Np.: jeśli uczestniczysz w dwóch projektach BOINC z "
-"podziałem zasobów 100 i 200, pierwszy będzie korzystał z 1/3 swoich zasobów, "
-"a drugi dostanie 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-"Przyśpieszyć zadania kart graficznych przez przydzielenie im dedykowanych "
-"procesorów?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Używaj procesora %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Używaj karty graficznej ATI %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Używaj karty graficznej NVIDIA %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Używaj karty graficznej ATI %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Uruchamiać aplikacje testowe? %1 To pomaga nam rozwijać aplikacje, ale może "
-"się przyczynić do niepowodzenia realizacji zadań na danym komputerze %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Wiadomości e-mail będą wysłane z %1; upewnij się, że twój filtr antyspamowy "
-"akceptuje ten adres."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Czy to w porządku dla %1 i Twojego zespołu (jeśli istnieje) aby wysłać do "
-"Ciebie wiadomości?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Czy %1 powinien wyświetlać twoje komputery na swojej stronie?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Użycie dysku i pamięci"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Użycie procesora"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Użycie sieci"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Te ustawienia mają zastosowanie do wszystkich projektów BOINC w których "
-"uczestniczysz."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Nie można zaktualizować preferencji.%2 Wartości oznaczone na czerwono są "
-"nienumeryczne lub poza zakresem."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "zła lokalizacja: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "zły podzbiór: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "tak"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nie"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "bez ograniczeń"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Dodaj"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Usuń"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Obliczenia"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Oddzielne preferencje dla %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Edytuj preferencje"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Dodaj oddzielne preferencje dla %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Przełącz widok)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Połączone preferencje"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Specyficzne ustawienia projektu"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Podstawowe (domyślne) ustawienia"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Edytuj preferencje %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Ustawienia ostatnio zmodyfikowane:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Dodaj preferencje"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Zaktualizuj preferencje"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Domyślna lokalizacja komputera"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "i"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Twój profil będzie widoczny dla innych, tak szybko, jak to zostało "
-"zatwierdzone przez projekt. Może to potrwać do kilku dni."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Twój profil został oznaczony jako nie do przyjęcia. Nie jest on widoczny dla "
-"innych. Prosimy go zmienić."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Błąd bazy danych"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Aby zapobiec nadużyciom profile użytkowników o średniej punktów mniejszej "
-"niż %1 są wyświetlane tylko zalogowanym użytkownikom. Przepraszamy za "
-"niedogodności."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Użytkownik jest zbanowany"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Profil o podanym ID nie istnieje."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Edytuj swój profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Twoja opinia na temat tego profilu"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Poleć ten profil na Użytkownika Dnia:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1Lubię%2 ten profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Powiadom administratora o obraźliwym profilu:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1Nie lubię%2 tego profilu"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Nieznana platforma"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "karta graficzna NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "karta graficzna ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Brak w bazie danych"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "oczekuje"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Wszystko"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "W trakcie"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Poprawny"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Niepoprawny"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Błąd"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Nieaktywny"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Niewysłany"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Zakończone, oczekuje na walidację"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Zakończone i zwalidowane"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Zakończone, oznaczone jako niepoprawne"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Zakończone, nie może zostać zwalidowane"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Zakończone, walidacja nie rozstrzygająca"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Zakończone, zbyt późno do zwalidowania"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Zakończone"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Nie można wysłać"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Anulowane przez serwer"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Błąd podczas pobierania"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Błąd podczas przetwarzania"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Błąd podczas wysyłania"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Anulowane przez użytkownika"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Wysyłanie nie powiodło się"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Czas upłynął - brak odpowiedzi"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Nie wymagane"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Sprawdź błąd"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Porzucone"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Koniec"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Sukces"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Błąd przetwarzania"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Wynik nadmiarowy"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Brak odpowiedzi"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nowe"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Pobieranie"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Przetwarzanie"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Błąd przetwarzania"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Wysyłanie"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Gotowe"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Wstępny"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Nie potrzebne"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Błąd jednostki roboczej - sprawdzanie pominięte"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Sprawdzone, ale brak wyniku"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Zadanie zostało zgłoszone zbyt późno, aby zwalidować"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Nie można wysłać wyniku"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Zbyt wiele błędów (może zawierać błąd)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Zbyt wiele wyników"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Zbyt wiele wszystkich wyników"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Jednostka robocza anulowana"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Nieznany błąd: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Nazwa zadania"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "kliknij po szczegóły"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Pokaż ID"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Pokaż nazwy"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Zadanie"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Jednostka robocza"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Komputer"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Wysłane"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Czas zgłoszenia<br />lub termin"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "wyjaśnij"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Czas uruchomienia<br />(sekundy)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Czas procesora<br />(sekundy)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Punkty"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Aplikacja"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Jednostka robocza"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Otrzymano"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Stan serwera"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Wynik"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Stan klienta"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Status końcowy"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Termin raportu"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Czas działania"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Czas procesora"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Stan walidacji"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Wersja aplikacji"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Pliki wyjściowe"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Wyjście stderr"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Stan"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Nazwa zadania"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Kryteria wyszukiwania (wybierz jedno lub więcej)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Słowa kluczowe"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Znajdź zespoły z tymi słowami w nazwie lub opisie"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Kraj"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Typ zespołu"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Pokaż jedynie aktywne zespoły"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Szukaj"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Zażądane przez Ciebie, czas na odpowiedź założyciela minął."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Dokończ przekazanie funkcji założyciela"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Zażądane przez Ciebie"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "czas na odpowiedź założyciela to %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Żadna"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Żądanie rozpoczęte"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Odroczone"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Informacje o zespole"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Opis"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Strona internetowa"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Statystyki międzyprojektowe"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Typ"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Forum dyskusyjne"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Tematy"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Dołącz do tego zespołu"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Uwaga: Jeżeli wyraziłeś zgodę na otrzymywanie e-maili w ustawieniach "
-"projektu, gdy dołączysz do zespołu jego założyciel otrzyma także dostęp do "
-"twojego adresu e-mail."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Nie przyjmuje nowych członków"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Zażądano zmiany założyciela"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Odpowiedź od %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Zmiana założyciela zespołu"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Członkowie"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Założyciel"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administratorzy"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Nowi członkowie w ostatnim dniu"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "W sumie członków"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "zobacz"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktywni członkowie"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Członkowie z punktami"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administrator"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Poprzedni %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Następny %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Nie ma takiego zespołu."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Operacja wymaga przywilejów założyciela zespołu."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Operacja wymaga przywilejów administratora zespołu."
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"Uwaga: to jest zespół międzyprojektowy. Jeśli dokonasz zmian tutaj, zostaną "
-"one nadpisane. Dokonaj zmian w %1ustawieniach międzyprojektowych%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Uwaga odnośnie prywatności%2: Jeżeli stworzysz własny zespół, twoje "
-"ustawienia projektu (ustawienia przydziału zasobów i grafiki) będą widoczne "
-"publicznie."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Nazwa zespołu, wersja tekstowa"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Nie używaj znaczników HTML."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Nazwa zespołu, wersja HTML"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Możesz używać jedynie %1wybranych znaczników HTML%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Jeżeli nie znasz języka HTML zostaw to pole puste."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Adres URL strony zespołu, jeśli jakąś posiada"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "bez \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Ten adres będzie podany na stronie zespołu."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Opis zespołu"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Akceptuj nowych członków?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Profil użytkownika"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projekty w których uczestniczysz"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projekty w których uczestniczy %1"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Kliknij, aby przejść na stronę użytkownika"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Od"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Przetwarzanie i punkty"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Komputery na tym koncie"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Zobacz"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Identyfikator międzyprojektowy"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Statystyki międzyprojektowe"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Konto"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Zespół"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Międzyprojektowy"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certyfikat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statystyki na twojej komórce"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Nieznany rodzaj powiadomienia: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Dane konta"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Adres email"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "Strona internetowa"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Kod pocztowy"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "Uczestnik %1 od"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Zmień"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "adres email"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "hasło"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "pozostałe dane konta"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Identyfikator uczestnika"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Używany przy funkcjach społecznościowych"
-
-# 91%
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Klucz konta"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Ustawienia"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Określają jak i kiedy BOINC może korzystać z twojego komputera"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Ustawienia przetwarzania"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Fora dyskusyjne i prywatne wiadomości"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Ustawienia społecznościowe"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Ustawienia dla tego projektu"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "Ustawienia %1"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Społeczność"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Usuń"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Stwórz"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 postów"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Powiadomienia"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Opuść zespół"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administruj"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(zażądano zmiany założyciela)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Członek zespołu"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "znajdź zespół"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Założyciel, ale nie członek"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Znajdź przyjaciół"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Przyjaciele"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Komputery"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Ofiarodawca"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Ta osoba jest przyjacielem"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Anuluj przyjaźń"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Oczekujące zaproszenie"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Dodaj jako przyjaciela"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "wyloguj"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "zaloguj"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Zaloguj"
-
-# #######################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Stwórz konto"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Status serwera"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-"Wystąpił błąd bazy danych podczas obsługi żądania, spróbuj ponownie później."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Nie można obsłużyć żądania"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "godzin"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "minut"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "sekund"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Upłynął limit czasu. Proszę kliknąć przycisk Wstecz, odświeżyć stronę i "
-"spróbować ponownie."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Zobacz profil %1"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Używaj BBCode do formatowania wpisywanego tekstu"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "Projekt w trakcie prac konserwacyjnych"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 jest tymczasowo wyłączony ze względu na prace konserwacyjne. Spróbuj "
-"ponownie później."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Nie można połączyć się z bazą danych - spróbuj ponownie później"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Nie udało się wybrać bazy danych - spróbuj ponownie później"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Pozostań zalogowany z tego komputera"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Zakończ zakładanie konta"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identyfikuje Ciebie na stronie. Możesz użyć imienia albo pseudonimu."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Jeśli chcesz, wybierz kraj, który reprezentujesz."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Kod pocztowy"
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opcjonalne"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Musisz podać nazwę konta"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Znaczniki HTML nie są dozwolone w nazwie"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Dodaj preferencje %1 dla %2"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Aplikacje"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"Projekt %1 obecnie posiada następujące aplikacje. Uczestnicząc w %1 twój "
-"komputer otrzyma pracę od jednej lub więcej z tych aplikacji. Za każdym "
-"razem, gdy zmieni się wersja aplikacji, zostanie ona pobrana automatycznie, "
-"więc nie musisz się o nic martwić."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Wersja"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Data instalacji"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Znaczniki BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-"Znaczniki BBCode pozwalają na formatowanie tekstu w profilu oraz w "
-"wiadomościach na forum.\n"
-"Są one podobne do znaczników HTML, lecz prostsze. Znacznik zaczyna się\n"
-"od [ (czyli tam gdzie użyłbyś %1 w HTML) i kończy na ] (gdzie użyłbyś %2\n"
-"w HTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Przykłady"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Pogrubienie"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Kursywa"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Podkreślenie"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Indeks górny"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Duży tekst"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Czerwony tekst"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "odnośnik do strony"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Cytat"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "użyj do zacytowania bloków tekstu"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "użyj do wyświetlenia obrazka"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Fragment kodu"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "użyj do wyświetlenia kodu"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Tekst sformatowany"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "użyj do wyświetlenia tekstu sformatowanego"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Element 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Element2"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "użyj do podania linku do błędu z systemu Trac ze strony BOINC"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "użyj do podania linku do wpisu Wiki z systemu Trac ze strony BOINC"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "użyj do podania linku do zestawu zmian SVN ze strony BOINC"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Jeśli nie zamkniesz znacznika lub nie podasz prawidłowego parametru,\n"
-" wyświetlony zostanie jedynie znacznik a nie sformatowany tekst."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# ######################################
-# "Your account" page (home.php)
-# #######################################
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Twoje konto"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Drużyny"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-#, fuzzy
-msgid "User of the day"
-msgstr "Uczestnik dnia"
-
-# 92%
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Statusy serwera"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profile"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# #######################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Najlepsi uczestnicy"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-#, fuzzy
-msgid "Top computers"
-msgstr "Komputery"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-#, fuzzy
-msgid "Top teams"
-msgstr "Najlepsze zespoły"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Język"
-
-# #######################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Zasady i reguły"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Nie można utworzyć konta"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Kliknij przycisk <b>Wstecz</b> w przeglądarce, aby ponowić."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Twoja odpowiedź na reCAPTCHA jest nieprawidłowa. Spróbuj ponownie."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Aby stworzyć konto w tym projekcie musisz posiadać kod rejestracyjny."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Wpisany kod rejestracyjny jest nieprawidłowy."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Nieprawidłowy adres email: musisz podać prawidłowy adres w postaci "
-"nazwa at domena"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Istnieje już konto z tym adresem email."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Nowe hasła są różne."
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "Hasło może zawierać jedynie znaki ASCII."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Nowe hasło jest za krótkie: minimalne długość hasła to %1 znaków."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Nie można utworzyć konta"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"To konto automatycznie będzie przyłączone do zespołu %1 i zyska ustawienia "
-"określone przez jego założyciela."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Kod rejestracyjny"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Aby stworzyć konto wymagany jest poprawny kod rejestracyjny."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Adres email"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Musi to być poprawny adres postaci 'nazwa at domena'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Hasło"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Musi mieć co najmniej %1 znaków"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Powtórz hasło"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Przepisz słowa widoczne na obrazku"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Stwórz konto"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Twoje zdjęcie profilowe jest widoczne po lewej stronie."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Aby je zastąpić, kliknij przycisk \"Przeglądaj\" i wybierz plik JPEG lub PNG ("
-"%1 lub mniej)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Aby je usunąć ze swojego profilu, zaznacz to pole:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Jeśli chcesz dodać zdjęcie w profilu, kliknij przycisk \"Przeglądaj\" i "
-"wybierz plik JPEG lub PNG. Wybierz obrazy o rozmiarze %1 lub mniejsze."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Język"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Wybierz język w którym stworzony jest twój opis profilu:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Zatwierdź profil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Przepisz słowa widoczne na obrazku."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Stwórz/edytuj profil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Format przesyłanego zdjęcia nie jest obsługiwany."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"Twój %1profil%2 umożliwia ci dzielenie się opiniami ze społecznością %3."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Twoja odpowiedź ReCaptcha nie była prawidłowa. Spróbuj ponownie."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Twoja pierwsza odpowiedź została oznaczona jako spam przez system "
-"antyspamowy Akismet. Zmodyfikuj tekst i spróbuj ponownie."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Twoja druga odpowiedź została oznaczona jako spam przez system antyspamowy "
-"Akismet. Zmodyfikuj tekst i spróbuj ponownie."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "Przesłany profil był pusty."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Nie można zaktualizować profilu: błąd bazy danych"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Nie można utworzyć profilu: błąd bazy danych"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profil zapisany"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Gratulacje! Twój profil został zapisany w naszej bazie danych."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%Zobacz swój profil%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Stwór profil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Aby uniknąć spamu, wymagane jest %1 punktów lub więcej , aby utworzyć lub "
-"edytować profil. Przepraszamy za niedogodności."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nie można usunąć konta"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Konto usunięte"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Twoje konto zostało usunięte."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Potwierdź usunięcie konta"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-"Usunięcie konta usunie wszystkie twoje\n"
-"informacje z naszych serwerów, włączając\n"
-"profil oraz wiadomości na forum.\n"
-"Żadne zadania nie będą dostarczane do\n"
-"komputerów powiązanych z tym kontem."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Ta operacja nie może być cofnięta.\n"
-"Jeśli usuniesz konto, nie będziesz mógł go odzyskać."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Czy jesteś pewien, że chcesz usunąć konto?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Tak"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Usuń to konto"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nie"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Nie usuwaj tego konta"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "nie można usunąć profilu - spróbuj ponownie później"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Potwierdzenie usunięcia"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Twój profil został usunięty."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Potwierdzenie usunięcia profilu"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Czy jesteś pewien?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-"Usunięte profile nie mogą zostać odzyskane.\n"
-"Jeśli w przyszłości będziesz chciał mieć nowy profil\n"
-"będziesz musiał zacząć od początku."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Jeśli jesteś pewien, kliknij 'Tak'\n"
-"aby usunąć profil z bazy danych."
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Usuń mój profil"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Nie usuwaj mojego profilu"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - transakcja zakończona"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Dziękujemy za donację!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Twoja donacja została zakończona."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Twoja donacja zostanie dodana do paska postępu po potwierdzeniu jej przez "
-"PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Anulowałeś swoją donację."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Ten projekt nie akceptuje donacji."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donacji"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Ten projekt akceptuje donacje przez\n"
-"%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-"Aby przekazać donację podaj sumę jaką chcesz przekazać w polu poniżej.\n"
-"PayPal akceptuje wiele walut\n"
-"(dolary kanadyjskie, euro, funty szterlingi, dolary amerykańskie,\n"
-"jeny, dolary australijskie, dolary nowozelandzkie,\n"
-"franki szwajcarskie, dolary hongkońskie, dolary singapurskie, korony "
-"szwedzkie,\n"
-"korony duńskie, polskie złote, korony norweskie,\n"
-"forinty węgierskie, korony czeskie).\n"
-"Możesz skorzystać z konwertera walut\n"
-"aby zobaczyć kwotę donacji w innych walutach\n"
-"(kurs wymiany jest szacowany, faktyczna wartość może być inna)."
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Kwota, jaką chciałbyś podarować"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Szacowana wartość w"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Dotacja anonimowa"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Zaznacz, jeśli nie chcesz aby twoje imię oraz ID konta było wyświetlane na "
-"liście donatorów.\n"
-"<br>Jeśli nie będzie zaznaczone, będziesz zanotowany jako użytkownik o ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Aby przypisać dotację do twojego konta zaloguj się."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Kontynuuj"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Dotacje są akceptowane przez"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Pobierz dodatkowe oprogramowanie BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Możesz pobrać aplikacje z kilku kategorii."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Aplikacje te nie są zatwierdzone przez %1 i korzystasz z nich na własne "
-"ryzyko."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Nie dostarczamy instrukcji instalacji tych aplikacji.\n"
-"Autor aplikacji mógł udostępnić dokumentację dotyczącą instalacji lub "
-"deinstalacji aplikacji.\n"
-"Jeśli nie jest ona wystarczająca skontaktuj się z autorem."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instrukcje dotyczące instalowania i uruchamiania BOINC są %1tutaj%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Ta lista jest zarządzana centralnie na %1stronie BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Zmień adres email konta"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Nowy adres email '%1' jest nieprawidłowy."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Nowy adres email jest taki sam jak stary. Nic nie zostało zmienione."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Istnieje już konto z tym adresem email"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Nieprawidłowe hasło."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Adres email twojego konta to teraz %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "%1Zweryfikuj swój adres email%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Nie możemy uaktualnić twojego adresu email ze względu na problem z bazą "
-"danych. Spróbuj ponownie później."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Zmień adres email"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Zmień adres email swojego konta"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nowy adres email"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Wymagany jest prawidłowy adres w postaci \"nazwa at domena\""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Bez hasła?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Potwierdź zresetowanie"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Ta akcje usunie wszystkie zmiany jakie wprowadziłeś w ustawieniach "
-"społecznościowych. Aby anulować kliknij przycisk Wstecz w przeglądarce."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Zresetuj ustawienia"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Błąd: nieprawidłowy typ pliku. Tylko pliki PNG i JPEG są obsługiwane."
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Twój podpis jest za długi. Podpis musi mieć mniej niż 250 znaków."
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Brak użytkownika %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-"Jak mamy powiadamiać cię o nowych wiadomościach prywatnych, zaproszeniach, "
-"wiadomościach w subskrybowanych tematach i innych zdarzeniach?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Na mojej stronie konta (bez powiadomień mailowych)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Natychmiastowo przez email"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Zbiorczo w jednej wiadomości dziennie"
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr "Tożsamość na forum dyskusyjnym"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Awatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Obrazek reprezentujący ciebie na forum dyskusyjnym."
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPG lub PNG. Rozmiar: maksymalnie 4 KB, 100x100 pikseli"
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Nie używaj awatara"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Skorzystaj z globalnego awatara dostarczanego przez %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Skorzystaj z przesłanego awatara:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Podgląd awatara"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Tak będzie wyglądał twój awatar"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Podpis dla postów na forum"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Sprawdź %1różne darmowe usługi%2\n"
-"<br> dostarczające dynamicznych obrazków dla podpisów\n"
-"<br> pokazujących twoje informacje o punktach, nowości, itp."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "pozostało znaków"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Domyślnie dodawaj podpis"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Podgląd podpisu"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Tak będzie wyglądał twój podpis na forum"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr "Wyświetlanie wiadomości"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Co wyświetlić"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Ukryj awatary"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Ukryj podpisy"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Pokazuj obrazki jako odnośniki"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Otwieraj odnośniki w nowym oknie/nowej karcie"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Podświetl użytkowników specjalnych"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Jak sortować"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Wątki:"
-
-# #######################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Posty:"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr "Przeskocz automatycznie do pierwszego nowego postu w wątku"
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Filtrowanie wiadomości"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Filtrowani użytkownicy"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignoruj wiadomości i prywatne wiadomości od tych użytkowników."
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "Identyfikator użytkownika (przykładowo 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Dodaj użytkownika do filtru"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Kliknij tutaj, aby uaktualnić preferencje"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Resetuj"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Kliknij tutaj, aby przywrócić preferencje do domyślnych"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Niepoprawny klucz konta"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Nie znaleziono konta z tym adresem email"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Niepoprawne hasło"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Zmień hasło"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Twoje hasło zostało zmienione."
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Nie możemy uaktualnić twojego hasła ze względu na problem z bazą. Spróbuj "
-"ponownie później."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Możesz zidentyfikować się korzystając z"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "twojego adresu email i starego hasła"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "twojego klucza konta"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Aktualne hasło"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>lub</b>:Klucz konta"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Pobierz klucz konta na email"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Nowe hasło"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Powtórz nowe hasło"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "Znaczniki HTML nie są dozwolone w twoim imieniu."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Musisz podać nazwę swojego konta."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Nie można zaktualizować informacji użytkownika."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Edycja informacji o koncie"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Imię %1prawdziwe imię lub pseudonim%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 twojej strony internetowej; opcjonalnie%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Kod pocztowy 1% Opcjonalnie%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Aktualizacja informacji"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Statusy serwera"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-"Przypisane do zadania <b>statusy serwera</b> wskazują czy zadania zostało "
-"przesłane do komputera i czy komputer zakończył jego przetwarzanie. Możliwe "
-"wartości to:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-"Zadanie nie jest gotowe do wysłania (na przykład ze względu na to, że pliki "
-"wejściowe są niedostępne)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Zadanie jest gotowe do wysłania, ale jeszcze nie zostało wysłane."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "W trakcie"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Zadanie zostało wysłane; oczekiwanie na ukończenie."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-"Zadanie zostało wysłane do komputera i przedawniło się lub komputer zgłosił "
-"jego zakończenie."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Wyniki"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-"<b>Wyniki</b> zadania są zdefiniowane jeśli status serwera to "
-"<b>zakończone</b>. Możliwe wartości to:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-"Zadanie zostało wysłane do komputera, ale komputer jeszcze nie zakończył "
-"pracy i nie zgłosił wyniku."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Komputer zakończył i zgłosił zadanie."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-"Serwer nie był w stanie wysłać zadania do komputera (być może ze względu na "
-"zbyt duże wymagania)."
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Błąd klienta"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Zadanie zostało wysłane do komputera, ale wystąpił błąd."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-"Zadanie zostało wysłane do komputera, ale nie odebrano odpowiedzi w limicie "
-"czasu."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Zadanie nie zostało wysłane do komputera ponieważ wystarczająca ilość innych "
-"zadań dla tej pracy została wykonana."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-"Zadanie zostało zgłoszone, ale nie mogło zostać zwalidowane, "
-"najprawdopodobniej ponieważ pliki wynikowe zaginęły na serwerze."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Stany klienta"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"<b>Stany klienta</b> wskazują etap przetwarzania na którym wystąpił błąd."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Komputer jeszcze nie ukończył zadania."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Komputer ukończył zadanie z powodzeniem."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Komputer nie mógł pobrać aplikacji lub plików wejściowych."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Wystąpił błąd podczas przetwarzania."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Komputer nie mógł przesłać plików wynikowych."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Czas i termin zgłoszenia"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-"<b>Czas i termin zgłoszenia</b> dla danego zadania jest zależny od tego czy "
-"zostało ono już zgłoszone:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Już zgłoszone"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Data/czas kiedy zostało zgłoszone"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Nie zgłoszone, termin w przyszłości"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Termin, pokazane na zielono."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Nie zgłoszone, termin w przeszłości"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Termin, pokazane na czerwono."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Nieznane pole"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Podgląd wiadomości"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Wiadomość email będzie wyglądała następująco:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Wyślij email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Użyj przycisku wstecz w przeglądarce, aby powrócić do formularza wiadomości"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Wysyłanie wiadomości"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "wiadomość do %1 wysłana prawidłowo"
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr "wiadomość do %1 wysłana nieprawidłowo: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Dziękujemy za poinformowanie znajomych o %1"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Zapomniałeś podać imiona i adresy email znajomych. %1Wróć do formularza%2 i "
-"je dodaj."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Powiedz swoim znajomym o %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Pomóż nam informując swoich znajomych, rodzinę i współpracowników o %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Wypełnij formularz podając imiona i adresy email ludzi, którzy mogą być "
-"zainteresowani %1. Wyślemy im w twoim imieniu wiadomość. Jeśli chcesz możesz "
-"dodać własny tekst."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Twoje imię:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Twój adres email:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Imiona znajomych:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Adresy email znajomych:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Dodatkowa wiadomość (opcjonalna)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Wyślij"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr "Nie masz uprawnień do banowania użytkowników."
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr "Głosowanie za zbanowaniem"
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr "Nie odnaleziono użytkownika z takim ID."
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr "Użytkownik jest już zbanowany"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-"Czy na pewno zbanować %1?<br/>Uniemożliwi to %1 wysyłanie wiadomości przez "
-"wybranych czas.<br/>Powinno to zostać wykonane tylko jeśli %1 wielokrotnie "
-"naruszał reguły."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Wybierz kategorię, opcjonalnie podając powód dla którego użytkownik powinien "
-"być zbanowany."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Kategoria"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Rzeczy nieprzyzwoite"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Flame/Szerzenie nienawiści"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Prośba użytkownika"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Inne"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Powód"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr "Powiadomiono jeśli nie puste"
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr "Kontynuuj z głosowaniem"
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Musisz wskazać akcję..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-"Nie możesz już edytować tej wiadomości.<br>Wiadomości mogą być edytowane "
-"maksymalnie %1 minut to ich napisaniu."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Nie masz uprawnień do edycji tej wiadomości."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Edytuj swoją wiadomość"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Tytuł"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Dodaj moją sygnaturę do tego postu"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Niewidoczne dla ciebie"
-
-# #######################################<br />
-# Forum sample index page
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr "Forum dyskusyjne zespołu dla %1"
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr "Nowy wątek"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Dodaj nowy wątek do tego forum"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "To forum jest dostępna jako %1kanał RSS%2"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr "Ten wątek jest ukryty"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Ten wątek jest przyklejony i zablokowany i jeszcze go nie przeczytałeś"
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr "przyklejony/zablokowany/nieprzeczytany"
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Ten wątek jest przyklejony i jeszcze go nie przeczytałeś"
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr "przyklejony/nieprzeczytany"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Nie przeczytałeś jeszcze tego wątku i jest on zablokowany"
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "nieprzeczytany/zablokowany"
-
-# 81%
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Nie przeczytałeś jeszcze tego wątku"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr "Ten wątek jest przyklejony i zablokowany"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr "przyklejony/zablokowany"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr "Ten wątek jest przyklejony"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr "przyklejony"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr "Ten wątek jest zablokowany"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "zablokowany"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Przeczytałeś ten wątek"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "przeczytany"
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Pytania i odpowiedzi"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Porozmawiaj z ochotnikami na Skype w jednym z kilku języków. Przejdź do %"
-"1pomocy online BOINC%2."
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Wątek"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Pytania"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Dyskusja pomiędzy członkami %1"
-
-# #######################################
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Forum dyskusyjne %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Jeśli masz pytanie lub problem, zajrzyj do sekcji forum %1Pytania i "
-"odpowiedzi%2."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Śledzone wątki"
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr "Moderuj wiadomość"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Ukryj wiadomość"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Komercyjny spam"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Podwójna wiadomość"
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Przenieś wiadomość"
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr "ID docelowego wątku:"
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr "Zbanuj użytkownika"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Czas trwania bana"
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 godziny"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 dzień"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 tydzień"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 tygodnie"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 miesiąc"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Na zawsze"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Opcjonalne wyjaśnienie %1 Będzie zawarte w emailu do użytkownika.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Nie masz uprawnień do moderowania tej wiadomości."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Nie można przenieść do innego typu kategorii"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Nie można przenieść do innej kategorii"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Nie masz uprawnień do zbanowania użytkownika"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Banowanie"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Użytkownik %1 został zbanowany."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Akcja nie powiodła się: możliwy problem z bazą danych"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "nie masz uprawnień"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr "Moderuj wątek '%1'"
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-"Wybierz kategorię lub podaj uzasadnienie dlaczego ukrywasz lub blokujesz "
-"wątek. Potem wciśnij OK."
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr "Aktualne forum"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Docelowe forum"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Nowy temat:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-"Tylko administratorzy projektu mogą zakładać tutaj wątki. Możesz odpowiadać "
-"w istniejących wątkach."
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Twoja wiadomość została oznaczona jako spam przez system antyspamowy "
-"Akismet. Proszę poprawić tekst wiadomości i spróbować ponownie."
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Stwórz nowy wątek"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Stwórz nowy wątek"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr "Pamiętaj aby dodać tytuł"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Pokaż ten element jako Powiadomienie w Menadżerze BOINC"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Stosuj to tylko dla wiadomości, które mogą zainteresować wszystkich "
-"uczestników."
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr "Ocena offline"
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Ta funkcja jest wyłączona przez projekt"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Musisz mieć więcej średniej lub całkowitej ilości punktów, aby wysłać "
-"wiadomość."
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr "Już oceniłeś tą wiadomość."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Wróć do wątku"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr "Opinia zapisana"
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Twoja opinia została zapisana. Dziękujemy za pomoc."
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Głos zapisany"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Twój głos został zapisany. Dziękujemy za pomoc."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr "Problem z zapisem głosu"
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Twoja wiadomość została oznaczona jako spam przez system antyspamowy "
-"Akismet. Proszę poprawić tekst wiadomości i spróbować ponownie."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Odpowiedz w wątku"
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr "Wiadomość:"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr "odpowiedź na %1ID wiadomości%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr "Odpowiedz"
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr "Dodaj moją sygnaturę do tej odpowiedzi"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-"Potrzebujesz więcej średniej lub całkowitej liczby punktów aby zgłosić "
-"wiadomość."
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr "Zgłoszenie przyjęte"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Twoje zgłoszenie zostało przyjęte. Dziękujemy."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-"Moderator zapozna się z twoim zgłoszeniem i zdecyduje co się stanie. To może "
-"zająć trochę czasu, więc bądź cierpliwy."
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr "Zgłoś wiadomość"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-"Przed zgłoszeniem wiadomości rozważ skorzystanie z systemu oceny wiadomości. "
-"Jeśli odpowiednia ilość użytkowników oceni wiadomość negatywnie zostanie "
-"ona ukryta.<br />System oceny widoczny jest na dole wiadomości."
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr "Zgłoś wiadomość"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Dlaczego uważasz wiadomość za obraźliwą: %1Zawrzyj tu informacje aby osoba,\n"
-" która nie czytała wątku mogła szybko odnaleźć problem.%2"
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr "Raport nie przyjęty"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Twój raport nie mógł zostać zarejestrowany. Odczekaj chwilę i spróbuj "
-"ponownie."
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr "Jeśli nie jest to tymczasowy problem zgłoś to do programistów projektu."
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr "%1 kanał RSS"
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr "To forum jest dostępne jako kanał RSS."
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr "Opcje:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Zawrzyj tylko wiadomości użytkownika o ID %1 (domyślnie: wszyscy "
-"użytkownicy)."
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Zawrzyj tylko wiadomości z ostatnich %1 dni (domyślnie: 30)."
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Przytnij wiadomości: %1 (zawiera tylko pierwsze 256 znaków z każdej "
-"wiadomości)"
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Tylko wątki: %1 (zawiera tylko pierwsze wiadomości z każdego wątku)"
-
-# #######################################
-# Forum search features
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Szukaj na forum"
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr "Zapytanie"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Szukaj słów:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Wyświetlone zostaną wiadomości, które zawierają wszystkie słowa"
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "Przykładowo: \"zawieszanie się wygaszacza ekranu\""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr "Szukaj ID autora:"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr "Wyświetlone zostaną tylko wiadomości tego autora"
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Przykładowo: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Opcje wyszukiwania"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Limit wyszukiwania"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Szukaj maksymalnie tyle dni wstecz"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 miesięcy"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 rok"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr "Wyświetlaj tylko wiadomości z tych forów"
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Sortuj"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr "Rozpocznij wyszukiwanie"
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Wyniki wyszukiwania na forum"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Tytuły wątków pasujące do zapytania:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Wiadomości pasujące do zapytania:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Nie znaleziono niczego pasującego do Twojego zapytania. Możesz spróbować "
-"rozszerzyć kryteria stosując mniejszą ilość słów."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Możesz także spróbować %tego samego wyszukiwania przez Google%2."
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Wykonaj inne wyszukiwanie"
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr "Zasubskrybowano pomyślnie"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Subskrybujesz teraz %1. Będziesz powiadamiany o nowych wiadomościach."
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr "Subskrybowanie nie powiodło się"
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Aktualnie nie możesz zasubskrybować %1. Spróbuj ponownie później."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr "Wyłączenie subskrypcji powiodło się"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Nie subskrybujesz już %1. Nie będziesz otrzymywał powiadomień z tego wątku."
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr "Wyłączenie subskrypcji nie powiodło się"
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Aktualnie nie możesz wyłączyć subskrypcji %1. Spróbuj ponownie później."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr "Nieznana akcja subskrypcji"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "To forum nie jest widoczne dla Ciebie."
-
-# #######################################
-# Forum thread
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr "Ten wątek został ukryty przez moderatorów."
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Uzyskałem odpowiedź na moje pytanie"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Zakończ śledzenie tematu"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Śledź ten temat"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-# #######################################
-# Forum
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Posty"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-#, fuzzy
-msgid "Add friend"
-msgstr "Dodaj jako przyjaciela"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-#, fuzzy
-msgid "Cancel friendship?"
-msgstr "Anuluj przyjaźń"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "pozostałe dane konta"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Witaj w %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Zobacz lub zmień ustawiania swojego konta używając poniższych linków."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-# 94%
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Nieznana platforma"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Liczba procesorów"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Średnia punktów"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Aplikacje"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "Na pewno usunąć?"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Komputery"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Nazwa użytkownika"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-#, fuzzy
-msgid "created"
-msgstr "Stwórz"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Komputery"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Brak komputerów"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Wiadmość"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Żadna"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Komputery na tym koncie"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Komputery"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Komputery"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Nie używaj znaczników HTML."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-# 75%
-#: ../user/html.php:27
-#, fuzzy
-msgid "bold"
-msgstr "Pogrubienie"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Stworzono"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Uczestnicz w projekcie %1 tylko na komputerach, które są twoją własnością "
-"lub do użycia których masz zgodę właściciela. Niektóre firmy i szkoły mają "
-"zabraniają wykorzystywania ich komputerów do celów takich, jak "
-"wykorzystywanie mocy obliczeniowej w projektach naukowych."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Jak projekt %1 będzie korzystał z twojego komputera?"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Gdy uruchomisz aplikację projektu %1 na swoim komputerze będzie ona "
-"wykorzystywać część mocy jego procesora, przestrzeni dysku i przepustowości "
-"łącza. Możesz swobodnie regulować, ile zasobów systemowych chcesz "
-"przeznaczyć na pracę w tym projekcie."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Praca wykonywana przez twój komputer służy celom projektu %1, które opisane "
-"są na stronie głównej. Aplikacje projektu mogą być co jakiś czas "
-"aktualizowane, bądź zmieniane."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Polityka prywatności"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Twoje konto w projekcie %1 jest identyfikowane dzięki nazwie, którą sam "
-"określasz. Nazwa uczestnika może być wyświetlana na stronie internetowej "
-"projektu wraz z podsumowaniem pracy, którą dla potrzeb tego projektu wykonał "
-"twój komputer. Jeżeli jednak chcesz pozostać anonimowy, możesz wybrać "
-"nazwę, która nie zdradzi twojej tożsamości."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Gdy bierzesz udział w projekcie %1, informacje o twym komputerze, takie jak "
-"rodzaj procesora, ilość pamięci operacyjnej itp. będą zapisane przez projekt "
-"i posłużą określeniu, jakiego rodzaju zadania należy przydzielić twojemu "
-"komputerowi. Dane te będą także wyświetlone na stronie projektu $PROJECT, "
-"lecz może je ukryć, jeśli tego chcesz. Zapewniamy, że nie będą wyświetlone "
-"informacje, które umożliwiłoby rozpoznanie lokacji twojego komputera (np. "
-"nazwa domeny czy adres sieciowy)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"By uczestniczyć w projekcie %1, musisz podać adres email, na który chcesz "
-"otrzymywać wiadomości odnośnie projektu. Nie będzie on ujawniony na stronie "
-"internetowej projektu, ani użyczany jakimkolwiek organizacjom. Projekt %1 "
-"może przysyłać Ci co jakiś czas wiadomości z nowinkami dotyczącymi tego "
-"projektu, możesz jednak z nich zrezygnować w każdej chwili."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Czy uruchamianie aplikacji projektu %1 jest bezpieczne?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Za każdym razem, gdy pobierasz z sieci program, ryzykujesz: może on zawierać "
-"niebezpieczne błędy, albo serwer, z którego go pobierasz, może zostać "
-"zainfekowany wirusem czy trojanem. W projekcie %1 staramy się sprowadzić to "
-"ryzyko do minimum, aby zapewnić uczestnikom jak najwyższy poziom "
-"bezpieczeństwa."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Aplikacje uruchamiane przez projekt %1 mogą powodować przegrzewanie się "
-"niektórych komputerów. Jeśli tak się stanie, zatrzymaj zadania pochodzące z "
-"tego projektu lub skorzystaj z %2dodatkowych programów%3, które międzyinnymi "
-"ograniczają wykorzystywanie procesora twojego komputera, przez co "
-"ograniczają wydzielane przez niego ciepło."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"Projekt %1 został stworzony w %2. Platformę BOINC stworzono na Uniwersytecie "
-"Kalifornijskim w Berkeley."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Odpowiedzialność"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"Projekt %1 oraz %2 nie biorą odpowiedzialności za uszkodzenie twojego "
-"komputera, utratę danych czy inne wypadki, które mogą wystąpić w skutek "
-"uczestnictwa w tym projekcie."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Inne projekty BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Tak jak %1 wiele innych projektów korzysta z platformy BOINC. Rozważ także "
-"uczestnictwo w innych projektach przetwarzania rozproszonego. W ten sposób "
-"twój komputer może wykonywać pożyteczne dla nauki obliczenia nawet jeśli "
-"projekt %1 nie ma dla niego w danej chwili żadnych zadań."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Inne projekty nie mają związku z projektem %1, nie możemy więc odpowiadać za "
-"jakość ich zabezpieczeń czy naturę prowadzonych badań. Uczestniczysz w nich "
-"na własną odpowiedzialność oraz ryzyko."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-#, fuzzy
-msgid "Email address:"
-msgstr "Adres email"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-#, fuzzy
-msgid "Password:"
-msgstr "Hasło"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-# 76%
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Przetwarzanie"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Oczekujące punkty"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Statystyki"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "Średnia punktów"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Oczekujące punkty"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Twoja wiadomość została wysłana."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nie masz żadnych prywatnych wiadomość."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Nadawca i data"
-
-# 76%
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Komputery na tym koncie"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Komputery na tym koncie"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Nadawca"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Musisz wypełnić wszystkie pola, aby wysłać prywatną wiadomość"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Nie można znaleźć użytkownika z identyfikatorem %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Nie można znaleźć użytkownika o nazwie %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"Jest kilku użytkowników o nazwie %1; aby wysłać wiadomość wpisz "
-"identyfikator użytkownika"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Użytkownik %1 (ID: %2) nie akceptuje prywatnych wiadomości od Ciebie."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Na pewno chcesz zablokować użytkownika %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Na pewno chcesz zablokować możliwość wysyłania prywatnych wiadomości do "
-"Ciebie przez użytkownika %1?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Pamiętaj, że możesz zablokować tylko określoną liczbę użytkowników."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Zablokowanych użytkowników możesz odblokować na stronie ustawień forum "
-"dyskusyjnego."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nie, anuluj"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Użytkownik %1 został zablokowany"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Użytkownik %1 nie może teraz wysyłać do Ciebie prywatnych wiadomości."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Aby odblokować, odwiedź stronę 1%ustawienia forum dyskusyjnego%2"
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Ustawienia %1"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Uczestnik dnia"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Zobacz %1galerię zdjęć uczestnika%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Przeglądaj profile%1po krajach%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Przeglądaj %1losowo wybrane%2 profile, %3losowo wybrane ze zdjęciami%2 lub %"
-"4losowo wybrane bez zdjęć%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Brak profili"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Brak profili odpowiadającym wybranym kryteriom."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-#, fuzzy
-msgid "Profiles containing '%1'"
-msgstr "Tematy zawierające '%1'"
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Identyfikator uczestnika"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Średnia liczba punktów"
-
-#: ../user/profile_search_action.php:54
-#, fuzzy
-msgid "No profiles found containing '%1'"
-msgstr "Tematy zawierające '%1'"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Aplikacje"
-
-# 83%
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "Niewysłany"
-
-# 90%
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "W trakcie"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Komputery"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-#, fuzzy
-msgid "Find a team"
-msgstr "znajdź zespół"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-#, fuzzy
-msgid "Create a new team"
-msgstr "Stwórz nowy temat"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Nie ma takiego zespołu."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "Nie ma takiego zespołu."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-#, fuzzy
-msgid "Create a team"
-msgstr "Stwórz nowy temat"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-# #######################################<br />
-# Forum sample index page
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "Forum dyskusyjne %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-# 86%
-#: ../user/team_forum.php:147
-#, fuzzy
-msgid "Update failed"
-msgstr "Aktualizacja nie powiodła się: "
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Informacje o zespole"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Dołączył: %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Dołączył: %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-# 75%
-#: ../user/team_manage.php:34
-#, fuzzy
-msgid "text"
-msgstr "Następny"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Opuść zespół"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-# 85%
-#: ../user/team_remove_inactive_form.php:39
-#, fuzzy
-msgid "Remove?"
-msgstr "Usuń"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Wyniki wyszukiwania na forum"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Najlepsze komputery"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Najlepsze zespoły"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Uczestniczy od"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Średnia liczba punktów"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Średnia liczba punktów"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Wyniki wyszukiwania na forum"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Zespół"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Słaby klucz konta"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-# 81%
-#: ../user/workunit.php:35
-#, fuzzy
-msgid "Workunit %1"
-msgstr "Statystyki"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Oczekuje"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
-
-#~ msgid "Error:"
-#~ msgstr "Błąd:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Tworzenie kont jest wyłączone"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Możliwość tworzenia kont w projekcie została zablokowana.\n"
-#~ "Spróbuj ponownie później."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "Tworzenie konta jest obecnie wyłączone. Spróbuj ponownie później."
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Ten projekt nie przygotował wiadomości email - powiadom jego administratorów"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Preferencje te mają zastosowanie we wszystkich projektach BOINC, w których "
-#~ "bierzesz udział.<br>\n"
-#~ "Na komputerach biorących udział w wielu projektach, ostatnia modyfikacja "
-#~ "ustawień będzie zastosowana."
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "Nie ma takiego zespołu."
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Komputer jest podłączony do Internetu co około %1 Jeśli jest stale "
-#~ "podłączony wpisz 0 lub pozostaw puste. %2 BOINC będzie starał się utrzymać "
-#~ "pracę na co najmniej tyle czasu (max 10 dni). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Zachowaj wystarczająco zadań na dodatkowe"
-
-#~ msgid "Update failed: "
-#~ msgstr "Aktualizacja nie powiodła się: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Pozwala na %1ograniczony dostęp%2 do twojego konta"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Nie używaj tego formularza. Uruchom BOINC, wybierz Dodaj projekt i podaj "
-#~ "adres email i hasło."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Nie zmieniaj kolejności postów przyklejonych"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Jeśli wątek zawiera więcej postów niż"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "wyświetl tylko pierwszy i taką ilość ostatnich"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Twoje zgłoszenie zostało przyjęte. Dziękujemy."
-
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Twój 'słaby klucz konta' pozwala dołączyć komputery do twojego konta w tym "
-#~ "projekcie bez dawania przywilejów do zalogowania się na lub dokonania "
-#~ "jakichkolwiek zmian na twoim koncie."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Ten mechanizm działa jedynie w projektach, które uaktualniły swoje "
-#~ "oprogramowanie na serwerach 7 grudnia 2007 lub później."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Twój słaby klucz konta dla tego projektu to:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Aby użyć słaby klucz konta na wybranym komputerze znajdź lub stwórz 'plik "
-#~ "konta' dla tego projektu. Plik ten ma nazwę według formuły "
-#~ "<b>konto_ADRES_URL_PROJEKTU.xml</b>. Plik konta dla projektu %1 to <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr ""
-#~ "Stwórz ten plik, jeśli jest to potrzebne. Jego zawartość powinna wyglądać "
-#~ "tak:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Twój słaby klucz konta jest generowany na podstawie twojego hasła. Jeśli "
-#~ "zmienisz swoje hasło twój słaby klucz konta także ulegnie zmianie, a "
-#~ "poprzedni słaby klucz konta stanie się nieprawidłowy."
-
-#~ msgid "Account key"
-#~ msgstr "Klucz konta"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Pozwala na pełen dostęp do twojego konta"
-
-#~ msgid "Last %1"
-#~ msgstr "Poprzednia %1"
-
-# ###################################
-# Language: Polish [rev. 1.40 (12.09.2007/18:15)]
-# FileID  : $Id: pl.po 14266 2007-11-20 06:29:21Z JensSeidler $
-# Author  : Bartosz Kaszubowski
-# Email   : gosimek at gmail.com
-# #########################################
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Przydział zasobów i grafika"
-
-#~ msgid "Provides"
-#~ msgstr "Pozwala na"
-
-#~ msgid "limited access"
-#~ msgstr "ograniczony dostęp"
-
-#~ msgid "to your account"
-#~ msgstr "do twojego konta"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Oznacz jako nieprzeczytane"
-
-#~ msgid "With selected"
-#~ msgstr "Z wybranych"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Jesteś pewny, że chcesz usunąć wiadomość o tytule "%1" (wysłaną "
-#~ "%3 przez użytkownika %2)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Tak, usuń"
-
-#~ msgid "USER_TABLE_NAME"
-#~ msgstr "Nazwa"
-
-#~ msgid "Posts containing '%1'"
-#~ msgstr "Posty zawierające '%1'"
-
-#~ msgid "No titles containing '%1' could be found."
-#~ msgstr "Nie znaleziono tematów zawierających '%1'."
-
-#~ msgid "No posts containing '%1' could be found."
-#~ msgstr "Nie znaleziono postów zawierających '%1'."
-
-#~ msgid "Create new"
-#~ msgstr "Napisz nową"
-
-#~ msgid "You have no unread private messages."
-#~ msgstr "Nie masz nowych prywatnych wiadomości."
-
-# ########################################
-# Links from the main page
-# ########################################
-#~ msgid "LINKS_QA"
-#~ msgstr "Pytania i odpowiedzi"
-
-#~ msgid "administrative functions"
-#~ msgstr "funkcje zarządzania"
-
-#~ msgid "General preferences"
-#~ msgstr "Ustawienia główne"
-
-#~ msgid "View or edit"
-#~ msgstr "Zobacz lub zmień"
-
-#~ msgid "control resource share and customize graphics"
-#~ msgstr "kontrolują przydział zasobów i indywidualne ustawiania projektu"
-
-#~ msgid "Message board preferences"
-#~ msgstr "Ustawienia forum"
-
-#~ msgid "configure features and appearance of message boards"
-#~ msgstr "zawierają wszystkie ustawiania i funkcje związane z forum"
-
-#~ msgid "Account number"
-#~ msgstr "Numer konta"
-
-#~ msgid "Used in URLs"
-#~ msgstr "używany w linkach"
diff --git a/html/languages/translations/pt.po b/html/languages/translations/pt.po
deleted file mode 100644
index 62b880a..0000000
--- a/html/languages/translations/pt.po
+++ /dev/null
@@ -1,4122 +0,0 @@
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: 1.03\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2010-02-17 13:11 PST\n"
-"PO-Revision-Date: 2010-02-19 16:21-0000\n"
-"Last-Translator: Miguel Veiga <Miguel.veig at gmail.com>\n"
-"Language-Team: Portuguese <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Português"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Portuguese"
-
-#: ../inc/forum.inc:124
-msgid "Search for words in forum messages"
-msgstr "Procurar palavras em mensagens nos fóruns"
-
-#: ../inc/forum.inc:124
-msgid "Search forums"
-msgstr "Procurar fóruns"
-
-#: ../inc/forum.inc:125
-msgid "Advanced search"
-msgstr "Procura avançada"
-
-#: ../inc/forum.inc:131
-#: ../inc/user.inc:247
-#: ../user/pm.php:64
-#: ../user/pm.php:129
-msgid "Private messages"
-msgstr "Mensagens privadas"
-
-#: ../inc/forum.inc:149
-#: ../user/forum_forum.php:65
-#: ../user/sample_index.php:71
-msgid "Questions and Answers"
-msgstr "Perguntas e Respostas"
-
-#: ../inc/forum.inc:149
-#: ../inc/forum.inc:182
-#: ../inc/user.inc:244
-#: ../inc/user.inc:366
-#: ../user/forum_forum.php:68
-#: ../user/sample_index.php:70
-#: ../project.sample/project.inc:49
-msgid "Message boards"
-msgstr "Mensagens do fórum"
-
-#: ../inc/forum.inc:186
-#: ../inc/forum.inc:194
-msgid "%1 message board"
-msgstr "%1 mensagem do fórum"
-
-#: ../inc/forum.inc:1056
-msgid "In order to create a new thread in %1 you must have a certain amount of credit. This is to prevent and protect against abuse of the system."
-msgstr "Em ordem para criar um novo tópico no %1 tem que ter um certo número de créditos. Isto previne e protege contra abusos do sistema."
-
-#: ../inc/forum.inc:1063
-msgid "You cannot create any more threads right now. Please wait a while before trying again. This delay has been enforced to protect against abuse of the system."
-msgstr "Não pode criar mais tópicos de momento. Por favor aguarde um momento antes de tentar movamente. Este atraso foi forçado para protecção de abusos do sistema."
-
-#: ../inc/forum.inc:1100
-msgid "Thread"
-msgstr "Tópico"
-
-#: ../inc/forum.inc:1100
-#: ../inc/team.inc:120
-#: ../user/forum_forum.php:131
-#: ../user/forum_index.php:93
-msgid "Posts"
-msgstr "Posts"
-
-#: ../inc/forum.inc:1100
-#: ../user/forum_forum.php:131
-#: ../user/forum_reply.php:112
-#: ../user/forum_report_post.php:80
-#: ../user/forum_thread.php:187
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:1100
-#: ../user/forum_forum.php:131
-msgid "Views"
-msgstr "Vistas"
-
-#: ../inc/forum.inc:1100
-#: ../inc/team.inc:120
-#: ../user/forum_forum.php:131
-#: ../user/forum_index.php:93
-msgid "Last post"
-msgstr "Ultimo post"
-
-#: ../inc/forum.inc:1172
-msgid "Mark all threads as read"
-msgstr "Marque todos os tópicos como lidos"
-
-#: ../inc/forum.inc:1172
-msgid "Mark all threads in all message boards as 'read'."
-msgstr "Marque todos os tópicos nas mensagens do fórum como 'lidas'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Indisponível"
-
-#: ../inc/host.inc:55
-#: ../inc/prefs.inc:1350
-#: ../project.sample/project.inc:49
-msgid "Home"
-msgstr "Casa"
-
-#: ../inc/host.inc:56
-#: ../inc/prefs.inc:1351
-msgid "Work"
-msgstr "Trabalho"
-
-#: ../inc/host.inc:57
-#: ../inc/prefs.inc:1352
-msgid "School"
-msgstr "Escola"
-
-#: ../inc/host.inc:59
-msgid "Update"
-msgstr "Actualizar"
-
-#: ../inc/host.inc:83
-msgid "Computer information"
-msgstr "Informação do Computador"
-
-#: ../inc/host.inc:87
-#: ../inc/host.inc:92
-msgid "IP address"
-msgstr "Endereço IP"
-
-#: ../inc/host.inc:87
-msgid "(same the last %1 times)"
-msgstr "(o mesmo que das ultimas %1 vezes)"
-
-#: ../inc/host.inc:89
-msgid "External IP address"
-msgstr "Endereço IP externo"
-
-#: ../inc/host.inc:92
-msgid "Show IP address"
-msgstr "Mostrar endereço IP"
-
-#: ../inc/host.inc:94
-msgid "Domain name"
-msgstr "Nome do domínio"
-
-#: ../inc/host.inc:97
-msgid "Local Standard Time"
-msgstr "Hora Local"
-
-#: ../inc/host.inc:97
-msgid "UTC %1 hours"
-msgstr "UTC %1 horas"
-
-#: ../inc/host.inc:98
-#: ../inc/host.inc:612
-#: ../inc/result.inc:375
-#: ../inc/team.inc:202
-#: ../inc/team.inc:345
-#: ../inc/user.inc:198
-#: ../user/account_finish.php:40
-#: ../user/create_account_form.php:75
-#: ../user/team_admins.php:60
-#: ../user/team_change_founder_form.php:75
-#: ../user/team_email_list.php:61
-#: ../user/top_users.php:47
-#: ../user/user_search.php:102
-#: ../user/user_search.php:158
-msgid "Name"
-msgstr "Nome"
-
-#: ../inc/host.inc:102
-#: ../inc/host.inc:104
-#: ../inc/host.inc:213
-msgid "Owner"
-msgstr "Dono"
-
-#: ../inc/host.inc:104
-#: ../inc/host.inc:318
-msgid "Anonymous"
-msgstr "Anónimo"
-
-#: ../inc/host.inc:108
-#: ../inc/result.inc:377
-msgid "Created"
-msgstr "Criado"
-
-#: ../inc/host.inc:109
-#: ../inc/host.inc:217
-#: ../inc/host.inc:222
-#: ../inc/host.inc:621
-#: ../inc/team.inc:94
-#: ../inc/team.inc:207
-#: ../inc/team.inc:212
-#: ../inc/team.inc:214
-#: ../inc/team.inc:351
-#: ../inc/team.inc:356
-#: ../inc/user.inc:118
-#: ../inc/user.inc:132
-#: ../user/team_change_founder_form.php:76
-#: ../user/team_email_list.php:61
-#: ../user/team_remove_inactive_form.php:39
-#: ../user/top_users.php:52
-#: ../user/top_users.php:57
-#: ../user/user_search.php:102
-#: ../user/user_search.php:158
-msgid "Total credit"
-msgstr "Créditos totais"
-
-#: ../inc/host.inc:110
-#: ../inc/user.inc:118
-#: ../user/team_search.php:67
-#: ../user/user_search.php:102
-#: ../user/user_search.php:158
-msgid "Average credit"
-msgstr "Média de créditos"
-
-#: ../inc/host.inc:112
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:114
-msgid "CPU type"
-msgstr "Tipo de CPU"
-
-#: ../inc/host.inc:115
-msgid "Number of processors"
-msgstr "Número de processadores"
-
-#: ../inc/host.inc:117
-msgid "Coprocessors"
-msgstr "Coprocessadores"
-
-#: ../inc/host.inc:119
-#: ../inc/host.inc:627
-msgid "Operating System"
-msgstr "Sistema Operativo"
-
-#: ../inc/host.inc:122
-msgid "BOINC client version"
-msgstr "Versão do cliente BOINC"
-
-#: ../inc/host.inc:126
-msgid "Memory"
-msgstr "Memória"
-
-#: ../inc/host.inc:126
-#: ../inc/host.inc:134
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:129
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:129
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:134
-msgid "Swap space"
-msgstr "Espaço temporário"
-
-#: ../inc/host.inc:137
-msgid "Total disk space"
-msgstr "Espaço total no disco"
-
-#: ../inc/host.inc:137
-#: ../inc/host.inc:140
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:140
-msgid "Free Disk Space"
-msgstr "Espaço livre no disco"
-
-#: ../inc/host.inc:144
-msgid "Measured floating point speed"
-msgstr "FLOP calculado"
-
-#: ../inc/host.inc:144
-#: ../inc/host.inc:147
-msgid "%1 million ops/sec"
-msgstr "%1 millão ops/seg"
-
-#: ../inc/host.inc:147
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:151
-#: ../inc/host.inc:153
-msgid "Average upload rate"
-msgstr "Taxa média de upload"
-
-#: ../inc/host.inc:151
-#: ../inc/host.inc:158
-msgid "%1 KB/sec"
-msgstr "%1 KB/seg"
-
-#: ../inc/host.inc:153
-#: ../inc/host.inc:160
-#: ../inc/result.inc:145
-#: ../inc/result.inc:155
-#: ../inc/result.inc:173
-#: ../inc/result.inc:205
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: ../inc/host.inc:158
-#: ../inc/host.inc:160
-msgid "Average download rate"
-msgstr "Taxa média de download"
-
-#: ../inc/host.inc:163
-msgid "Average turnaround time"
-msgstr "Média do tempo de resposta"
-
-#: ../inc/host.inc:163
-#: ../inc/prefs.inc:841
-#: ../inc/prefs.inc:842
-msgid "%1 days"
-msgstr "%1 dias"
-
-#: ../inc/host.inc:165
-msgid "Maximum daily WU quota per CPU"
-msgstr "Quota máxima por dia de unidades de trabalho por CPU"
-
-#: ../inc/host.inc:165
-msgid "%1/day"
-msgstr "%1/dia"
-
-#: ../inc/host.inc:174
-#: ../inc/host.inc:302
-#: ../inc/user.inc:149
-msgid "Tasks"
-msgstr "Tarefas"
-
-#: ../inc/host.inc:178
-msgid "Number of times client has contacted server"
-msgstr "Número de vezes que o cliente se conectou ao servidor"
-
-#: ../inc/host.inc:179
-msgid "Last time contacted server"
-msgstr "A última vez que o servidor foi contactado"
-
-#: ../inc/host.inc:180
-#, php-format
-msgid "% of time BOINC client is running"
-msgstr "% de tempo que o cliente BOINC está em execução"
-
-#: ../inc/host.inc:182
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:184
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Enquanto o BOINC corre % de tempo de trabalho permitido"
-
-#: ../inc/host.inc:186
-msgid "Average CPU efficiency"
-msgstr "Média de eficiência do CPU"
-
-#: ../inc/host.inc:189
-msgid "Task duration correction factor"
-msgstr "Duração do factor de correcção da tarefa"
-
-#: ../inc/host.inc:191
-#: ../inc/host.inc:614
-msgid "Location"
-msgstr "Localização"
-
-#: ../inc/host.inc:193
-msgid "Delete this computer"
-msgstr "Apagar este computador"
-
-#: ../inc/host.inc:197
-msgid "Click to"
-msgstr "Carregue para"
-
-#: ../inc/host.inc:197
-msgid "Merge this computer"
-msgstr "Fundir este computador"
-
-#: ../inc/host.inc:211
-msgid "Computer info"
-msgstr "Informação do computador"
-
-#: ../inc/host.inc:212
-#: ../inc/host.inc:616
-#: ../inc/team.inc:344
-#: ../user/top_users.php:46
-msgid "Rank"
-msgstr "Rank"
-
-#: ../inc/host.inc:216
-#: ../inc/host.inc:619
-msgid "Avg. credit"
-msgstr "Média de créditos"
-
-#: ../inc/host.inc:221
-#: ../inc/team.inc:95
-#: ../inc/team.inc:208
-#: ../inc/team.inc:217
-#: ../inc/team.inc:219
-#: ../inc/team.inc:350
-#: ../inc/team.inc:355
-#: ../inc/user.inc:133
-#: ../user/team_change_founder_form.php:77
-#: ../user/team_email_list.php:61
-#: ../user/team_remove_inactive_form.php:40
-#: ../user/top_users.php:51
-#: ../user/top_users.php:56
-msgid "Recent average credit"
-msgstr "Média de créditos recentes"
-
-#: ../inc/host.inc:226
-msgid "BOINC version"
-msgstr "Versão do BOINC"
-
-#: ../inc/host.inc:227
-#: ../inc/host.inc:624
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:228
-#: ../inc/host.inc:625
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:229
-msgid "Operating system"
-msgstr "Sistema operativo"
-
-#: ../inc/host.inc:281
-msgid "(%1 processors)"
-msgstr "(%1 processadores)"
-
-#: ../inc/host.inc:301
-msgid "Details"
-msgstr "Detalhes"
-
-#: ../inc/host.inc:306
-msgid "Cross-project stats:"
-msgstr "Cruzar estatísticas do projecto:"
-
-#: ../inc/host.inc:460
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Host %1 tem uma sobreposição do tempo de vista:"
-
-#: ../inc/host.inc:467
-msgid "Host %1 has an incompatible OS:"
-msgstr "O Host %1 tem um Sistema Operativo incompatível:"
-
-#: ../inc/host.inc:473
-msgid "Host %1 has an incompatible CPU:"
-msgstr "O Host %1 tem um CPU incompatível:"
-
-#: ../inc/host.inc:540
-msgid "same host"
-msgstr "o mesmo host"
-
-#: ../inc/host.inc:543
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Não é possivel fundir o host %1 ao %2 - são incompatíveis"
-
-#: ../inc/host.inc:546
-msgid "Merging host %1 into host %2"
-msgstr "Fundindo host %1 ao host %2"
-
-#: ../inc/host.inc:563
-msgid "Couldn't update credit of new computer"
-msgstr "Não foi possivel actualizar o crédito do seu novo computador"
-
-#: ../inc/host.inc:567
-msgid "Couldn't update results"
-msgstr "Não foi possivel actualizar os resultados"
-
-#: ../inc/host.inc:572
-msgid "Couldn't retire old computer"
-msgstr "Não foi possivel retirar o computador antigo"
-
-#: ../inc/host.inc:574
-msgid "Retired old computer %1"
-msgstr "Computador antigo retirado %1"
-
-#: ../inc/host.inc:597
-#: ../inc/host.inc:600
-msgid "Show:"
-msgstr "Mostrar:"
-
-#: ../inc/host.inc:597
-#: ../inc/host.inc:600
-msgid "All computers"
-msgstr "Todos os computadores"
-
-#: ../inc/host.inc:597
-#: ../inc/host.inc:600
-msgid "Only computers active in past 30 days"
-msgstr "Apenas os computadores activos nos ultimos 30 dias"
-
-#: ../inc/host.inc:609
-#: ../inc/result.inc:384
-msgid "Computer ID"
-msgstr "ID do computador"
-
-#: ../inc/host.inc:622
-msgid "BOINC<br>version"
-msgstr "Versão<br>BOINC"
-
-#: ../inc/host.inc:629
-msgid "Last contact"
-msgstr "Ultimo contacto"
-
-#: ../inc/host.inc:678
-msgid "Merge computers by name"
-msgstr "Fundir computadores por nome"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Comentário"
-
-#: ../inc/news.inc:96
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Novidades estão disponíveis como %sRSS feed%s"
-
-#: ../inc/pm.inc:25
-#: ../inc/pm.inc:178
-#: ../user/pm.php:64
-#: ../user/pm.php:144
-msgid "Inbox"
-msgstr "Caixa de entrada"
-
-#: ../inc/pm.inc:26
-#: ../inc/pm.inc:182
-msgid "Write"
-msgstr "Escrever"
-
-#: ../inc/pm.inc:33
-#: ../inc/user.inc:369
-msgid "Send private message"
-msgstr "Mandar mensagem privada"
-
-#: ../inc/pm.inc:35
-#: ../inc/pm.inc:38
-#: ../inc/pm.inc:92
-#: ../user/forum_edit.php:99
-#: ../user/forum_edit.php:102
-#: ../user/forum_edit.php:145
-#: ../user/forum_post.php:62
-#: ../user/forum_post.php:88
-#: ../user/forum_post.php:91
-#: ../user/forum_post.php:129
-#: ../user/forum_reply.php:75
-#: ../user/forum_reply.php:104
-#: ../user/forum_reply.php:107
-#: ../user/forum_reply.php:150
-#: ../user/pm.php:175
-msgid "Preview"
-msgstr "Pré-visualizar"
-
-#: ../inc/pm.inc:85
-msgid "To"
-msgstr "Para"
-
-#: ../inc/pm.inc:85
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "IDs dos utilizadores ou nomes de utilizador unicos, separados com virgulas"
-
-#: ../inc/pm.inc:88
-#: ../user/pm.php:85
-#: ../user/pm.php:135
-msgid "Subject"
-msgstr "Assunto"
-
-#: ../inc/pm.inc:89
-#: ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133
-#: ../user/forum_post.php:118
-#: ../user/forum_reply.php:112
-#: ../user/forum_report_post.php:80
-#: ../user/forum_thread.php:187
-#: ../user/pm.php:85
-#: ../user/pm.php:140
-msgid "Message"
-msgstr "Mensagem"
-
-#: ../inc/pm.inc:92
-msgid "Send message"
-msgstr "Mandar mensagem"
-
-#: ../inc/pm.inc:170
-msgid "You are not allowed to send privates messages so often. Please wait some time before sending more messages."
-msgstr "Não está autorizado a mandar mensagens privadas tão frequentemente. Por favor aguarde algum tempo antes de mandar mais mensagens."
-
-#: ../inc/pm.inc:180
-msgid "unread"
-msgstr "não lidas"
-
-#: ../inc/pm.inc:190
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Para notificações de email, %1edite as preferências da comunidade%2"
-
-#: ../inc/prefs.inc:68
-msgid "Processor usage"
-msgstr "Uso de processador"
-
-#: ../inc/prefs.inc:71
-msgid "Suspend work while computer is on battery power? %1(matters only for portable computers)%2"
-msgstr "Suspender trabalho quando o computador está ligado à bateria? %1(só relevante para portáteis)%2"
-
-#: ../inc/prefs.inc:77
-msgid "Suspend work while computer is in use?"
-msgstr "Suspender trabalho quando o computador estiver em uso?"
-
-#: ../inc/prefs.inc:81
-msgid "Suspend GPU work while computer is in use? %1Enforced by version 6.7+%2"
-msgstr "Suspender trabalho da GPU quando o computador estiver em uso? %1Forçado pela versão 6.7+%2"
-
-#: ../inc/prefs.inc:86
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'Em uso' significa actividade rato/teclado em ultimo"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend work if no mouse/keyboard activity in last %1(Needed to enter low-power mode on some computers)%2"
-msgstr "Suspender trabalho se não houver actividade do rato/teclado na ultima %1(Necessário definir baixo consumo  em alguns computadores)%2"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend work if CPU usage is above %1 0 means no restriction<br>Enforced by version 6.10.30+%2"
-msgstr "Suspender trabalho se o uso do CPU for abaixo de %1 0 significa sem restrições<br>Forçado pela versão 6.10.30+%2"
-
-#: ../inc/prefs.inc:101
-msgid "Do work only between the hours of"
-msgstr "Trabalhar apenas entre as horas"
-
-#: ../inc/prefs.inc:102
-msgid "(no restriction if equal)"
-msgstr "(sem restrições se igual)"
-
-#: ../inc/prefs.inc:105
-msgid "Leave tasks in memory while suspended? %1(suspended tasks will consume swap space if 'yes')%2"
-msgstr "Deixar tarefas em memória enquanto suspenso? %1(Suspender tarefas irá consumir espaço swap se 'sim')%2"
-
-#: ../inc/prefs.inc:112
-msgid "Switch between tasks every %1(recommended: 60 minutes)%2"
-msgstr "Trocar tarefas a cada %1(recomendado: 60 minutos)%2"
-
-#: ../inc/prefs.inc:119
-msgid "Confirm before connecting to Internet? %1(matters only if you have a modem, ISDN or VPN connection)%2"
-msgstr "Confirmar antes de se ligar à Internet? %1(só relevante se tiver um modem, ISDN ou uma conexão VPN)%2"
-
-#: ../inc/prefs.inc:126
-msgid "Disconnect when done? %1(matters only if you have a modem, ISDN or VPN connection)%2"
-msgstr "Disconectar quando terminado? %1(só relevante se tiver um modem, ISDN ou uma conecção VPN)%2"
-
-#: ../inc/prefs.inc:133
-msgid "Computer is connected to the Internet about every %1(Leave blank or 0 if always connected.%2 BOINC will try to maintain at least this much work.)%3"
-msgstr "Conexão do computador à Internet a cada %1(Deixar em branco ou 0 se estiver sempre ligado.%2 O BOINC irá tentar manter no minímo esta quantidade de trabalho.)%3"
-
-#: ../inc/prefs.inc:140
-msgid "Maintain enough work for an additional"
-msgstr "Manter trabalho suficiente para uma adicional"
-
-#: ../inc/prefs.inc:144
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+%2"
-msgstr "Em multiprocessadores, usar no máximo %1 Forçado pela versão 6.1+%2"
-
-#: ../inc/prefs.inc:149
-#, php-format
-msgid "% of the processors"
-msgstr "% dos processadores"
-
-#: ../inc/prefs.inc:150
-msgid "On multiprocessors, use at most"
-msgstr "Em multiprocessadores, usar no máximo"
-
-#: ../inc/prefs.inc:151
-msgid "processors"
-msgstr "processadores"
-
-#: ../inc/prefs.inc:152
-#: ../inc/prefs.inc:160
-msgid "Use at most"
-msgstr "Usar no máximo"
-
-#: ../inc/prefs.inc:155
-msgid "Use at most %1 (Can be used to reduce CPU heat)%2"
-msgstr "Usar no máximo %1 (Pode ser usado para reduzir aquecimento do CPU)%2"
-
-#: ../inc/prefs.inc:161
-msgid "percent of CPU time"
-msgstr "percentagem do tempo de CPU"
-
-#: ../inc/prefs.inc:162
-msgid "Tasks checkpoint to disk at most every"
-msgstr "checkpoint das tarefas no disco no máximo a cada"
-
-#: ../inc/prefs.inc:163
-msgid "Disk and memory usage"
-msgstr "Disco e uso de memória"
-
-#: ../inc/prefs.inc:164
-msgid "Leave at least"
-msgstr "Levar pelo menos"
-
-#: ../inc/prefs.inc:166
-#, php-format
-msgid "(Values smaller than %s are ignored)"
-msgstr "(Valores mais pequenos que %s são ignorados)"
-
-#: ../inc/prefs.inc:168
-#, php-format
-msgid "% of total disk space"
-msgstr "% do total de espaço em disco"
-
-#: ../inc/prefs.inc:169
-#, php-format
-msgid "% of page file (swap space)"
-msgstr "% de page file (espaço swap)"
-
-#: ../inc/prefs.inc:170
-#, php-format
-msgid "% of memory when computer is in use"
-msgstr "% de memória quando o computador está em uso"
-
-#: ../inc/prefs.inc:171
-#, php-format
-msgid "% of memory when computer is not in use"
-msgstr "% de memória quando o computador não está em uso"
-
-#: ../inc/prefs.inc:172
-msgid "Network usage"
-msgstr "Uso de rede"
-
-#: ../inc/prefs.inc:173
-msgid "Maximum download rate:"
-msgstr "Taxa máxima de download:"
-
-#: ../inc/prefs.inc:174
-msgid "Maximum upload rate:"
-msgstr "Taxa máxima de upload:"
-
-#: ../inc/prefs.inc:175
-msgid "Use network only between the hours of"
-msgstr "Usar a rede apenas entre as horas"
-
-#: ../inc/prefs.inc:178
-msgid "Skip image file verification? %1 Check this ONLY if your Internet provider modifies image files (UMTS does this, for example). %2 Skipping verification reduces the security of BOINC.%3"
-msgstr "Saltar verificação do ficheiro da imagem? %1 Assinale esta opção APENAS se o seu provedor de Internet modificar o ficheiro da imagem (O UMTS faz isto, por exemplo). %2 Passando á frente da verificação, reduz a segurança do BOINC.%3"
-
-#: ../inc/prefs.inc:186
-msgid "Use ATI GPU if present %1(enforced by 6.10+ clients)%2"
-msgstr "Usar ATI GPU, se presente %1(forçado pelos clientes da 6.10+)%2"
-
-#: ../inc/prefs.inc:193
-msgid "Use NVIDIA GPU if present %1(enforced by 6.10+ clients)%2"
-msgstr "Usar NVIDIA GPU, se presente %1(forçado pelos clientes da 6.10+)%2"
-
-#: ../inc/prefs.inc:200
-msgid "Use CPU %1(enforced by 6.10+ clients)%2"
-msgstr "Usar CPU %1(forçado pelos clientes da 6.10+)%2"
-
-#: ../inc/prefs.inc:208
-msgid "Kbytes/sec"
-msgstr "Kbytes/seg"
-
-#: ../inc/prefs.inc:209
-msgid "KB/s"
-msgstr "KB/s"
-
-#: ../inc/prefs.inc:212
-msgid "Run test applications? %1This helps us develop applications, but may cause jobs to fail on your computer%2"
-msgstr "Correr aplicações de teste? %1Isto irá nos ajudar a desenvolver aplicações, mas pode causar os trabalhos a falharem no seu computador%2"
-
-#: ../inc/prefs.inc:219
-msgid "These preferences apply to all the BOINC projects in which you participate."
-msgstr "Estas preferências aplicam-se a todos os projectos BOINC em que participa."
-
-#: ../inc/prefs.inc:222
-msgid "%1Unable to update preferences.%2 The values marked in red below were out of range or not numeric."
-msgstr "%1incapaz de actualizar as preferências.%2 Os valores marcados abaixo a vermelho ficaram fora do alcance ou não são numéricos."
-
-#: ../inc/prefs.inc:277
-msgid "bad venue: %1"
-msgstr "mau conjunto: %1"
-
-#: ../inc/prefs.inc:283
-msgid "bad subset: %1"
-msgstr "mau subconjunto: %1"
-
-#: ../inc/prefs.inc:688
-#: ../inc/prefs.inc:691
-#: ../inc/prefs.inc:800
-#: ../inc/prefs.inc:801
-#: ../inc/prefs.inc:802
-#: ../inc/prefs.inc:818
-#: ../inc/prefs.inc:843
-#: ../inc/prefs.inc:844
-#: ../inc/prefs.inc:859
-#: ../inc/prefs.inc:887
-#: ../inc/prefs.inc:890
-#: ../inc/prefs.inc:893
-#: ../inc/prefs.inc:903
-#: ../inc/prefs.inc:915
-#: ../inc/prefs.inc:917
-#: ../inc/prefs.inc:1327
-#: ../project.sample/project_specific_prefs.inc:74
-msgid "yes"
-msgstr "sim"
-
-#: ../inc/prefs.inc:688
-#: ../inc/prefs.inc:691
-#: ../inc/prefs.inc:800
-#: ../inc/prefs.inc:801
-#: ../inc/prefs.inc:802
-#: ../inc/prefs.inc:818
-#: ../inc/prefs.inc:843
-#: ../inc/prefs.inc:844
-#: ../inc/prefs.inc:859
-#: ../inc/prefs.inc:887
-#: ../inc/prefs.inc:890
-#: ../inc/prefs.inc:893
-#: ../inc/prefs.inc:903
-#: ../inc/prefs.inc:915
-#: ../inc/prefs.inc:917
-#: ../inc/prefs.inc:1329
-#: ../project.sample/project_specific_prefs.inc:76
-msgid "no"
-msgstr "não"
-
-#: ../inc/prefs.inc:696
-#: ../inc/prefs.inc:847
-#: ../inc/prefs.inc:850
-msgid "no limit"
-msgstr "sem limite"
-
-#: ../inc/prefs.inc:721
-#: ../user/team_admins.php:77
-msgid "Add"
-msgstr "Adicionar"
-
-#: ../inc/prefs.inc:722
-#: ../inc/prefs.inc:724
-msgid "Edit"
-msgstr "Editar"
-
-#: ../inc/prefs.inc:723
-#: ../inc/prefs.inc:955
-#: ../user/team_admins.php:32
-msgid "Remove"
-msgstr "Remover"
-
-#: ../inc/prefs.inc:758
-#: ../inc/prefs.inc:760
-#: ../inc/prefs.inc:766
-#: ../inc/prefs.inc:1113
-#: ../inc/prefs.inc:1118
-#: ../inc/prefs.inc:1136
-msgid "minutes"
-msgstr "minutos"
-
-#: ../inc/prefs.inc:772
-msgid "GB disk space"
-msgstr "GB em espaço no disco"
-
-#: ../inc/prefs.inc:773
-msgid "GB disk space free"
-msgstr "GB em espaço no disco livre"
-
-#: ../inc/prefs.inc:775
-#: ../inc/prefs.inc:1195
-msgid "seconds"
-msgstr "segundos"
-
-#: ../inc/prefs.inc:781
-#: ../inc/prefs.inc:782
-#: ../inc/prefs.inc:1222
-#: ../inc/prefs.inc:1228
-msgid "days"
-msgstr "dias"
-
-#: ../inc/prefs.inc:803
-#: ../inc/prefs.inc:806
-#: ../inc/prefs.inc:819
-msgid "%1 minutes"
-msgstr "%1 minutos"
-
-#: ../inc/prefs.inc:811
-#: ../inc/prefs.inc:852
-msgid "(no restriction)"
-msgstr "(sem restrições)"
-
-#: ../inc/prefs.inc:815
-#: ../inc/prefs.inc:856
-#: ../inc/prefs.inc:1129
-#: ../inc/prefs.inc:1261
-msgid "and"
-msgstr "e"
-
-#: ../inc/prefs.inc:826
-msgid "%1 GB disk space"
-msgstr "%1 GB em espaço no disco"
-
-#: ../inc/prefs.inc:834
-msgid "%1 GB disk space free"
-msgstr "%1 GB em espaço no disco livre"
-
-#: ../inc/prefs.inc:865
-msgid "Resource share %1If you participate in multiple BOINC projects, this is the proportion of your resources used by %2%3"
-msgstr "Partilha de recursos %1Se participa em projectos multiplos do BOINC, esta é a proporção dos recursos usados pelo %2%3"
-
-#: ../inc/prefs.inc:911
-msgid "Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr "Emails serão mandados de %1, confirme que o seu filtro de spam aceita este endereço."
-
-#: ../inc/prefs.inc:914
-#: ../inc/prefs.inc:1271
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "É OK para %1 e a sua equipa (se alguma) lhe mandarem emails?"
-
-#: ../inc/prefs.inc:917
-#: ../inc/prefs.inc:1274
-msgid "Should %1 show your computers on its web site?"
-msgstr "Deve o %1 mostrar os seus computadores neste website?"
-
-#: ../inc/prefs.inc:933
-#: ../inc/result.inc:180
-msgid "Computing"
-msgstr "Computando"
-
-#: ../inc/prefs.inc:945
-msgid "Separate preferences for %1"
-msgstr "Separar preferências para %1"
-
-#: ../inc/prefs.inc:955
-#: ../inc/prefs.inc:1033
-msgid "Edit preferences"
-msgstr "Editar preferências"
-
-#: ../inc/prefs.inc:959
-msgid "Add separate preferences for %1"
-msgstr "Adicionar preferências separadas para %1"
-
-#: ../inc/prefs.inc:968
-#: ../inc/prefs.inc:1015
-msgid "(Switch View)"
-msgstr "(Mudar vista)"
-
-#: ../inc/prefs.inc:970
-#: ../inc/prefs.inc:1018
-msgid "Combined preferences"
-msgstr "Preferências combinadas"
-
-#: ../inc/prefs.inc:975
-msgid "Project specific settings"
-msgstr "Definições especificas do projecto"
-
-#: ../inc/prefs.inc:984
-#: ../inc/prefs.inc:1027
-msgid "Primary (default) preferences"
-msgstr "Preferências primárias (por default)"
-
-#: ../inc/prefs.inc:994
-#: ../user/add_venue.php:43
-#: ../user/add_venue.php:68
-#: ../user/prefs_edit.php:45
-#: ../user/prefs_edit.php:71
-#: ../user/prefs_edit.php:100
-msgid "Edit %1 preferences"
-msgstr "Editar %1 preferências"
-
-#: ../inc/prefs.inc:1008
-msgid ""
-"These apply to all BOINC projects in which you participate.<br>\n"
-"             On computers attached to multiple projects, the most recently modified preferences will be used."
-msgstr ""
-"Isto aplica-se a todos os projectos BOINC em que participa.<br>\n"
-"             Em computadores com projectos multiplos anexados, as preferências modificadas mais recentemente serão usadas."
-
-#: ../inc/prefs.inc:1012
-msgid "Preferences last modified:"
-msgstr "Preferências modificadas por ultimo:"
-
-#: ../inc/prefs.inc:1064
-msgid "Add preferences"
-msgstr "Adicionar preferências"
-
-#: ../inc/prefs.inc:1068
-msgid "Update preferences"
-msgstr "Actualizar preferências"
-
-#: ../inc/prefs.inc:1167
-msgid "Gbytes"
-msgstr "Gbytes"
-
-#: ../inc/prefs.inc:1181
-msgid "Gbytes free"
-msgstr "Gbytes livres"
-
-#: ../inc/prefs.inc:1282
-msgid "Resource share"
-msgstr "Partilha de recursos"
-
-#: ../inc/prefs.inc:1284
-msgid ""
-"Determines the proportion of your computer's resources\n"
-"            allocated to this project. Example: if you participate in two\n"
-"            BOINC projects with resource shares of 100 and 200, the first\n"
-"            will get 1/3 of your resources and the second will get 2/3."
-msgstr ""
-"Determina a proporção dos recursos do seu computador\n"
-"            alocado a este projecto. Exemplo: se participa em dois\n"
-"            projectos BOINC com recursos partilhados de 100 e 200, o primeiro\n"
-"            obterá 1/3 dos recursos e o segundo obterá 2/3."
-
-#: ../inc/prefs.inc:1338
-#: ../inc/prefs.inc:1347
-msgid "Default computer location"
-msgstr "Localização do computador por default"
-
-#: ../inc/prefs.inc:1627
-msgid "Update failed: "
-msgstr "Actualização falhada:"
-
-#: ../inc/profile.inc:86
-msgid "Your profile will be made visible to other people as soon as it has been approved by the project. This may take up to a few days."
-msgstr "O seu perfil será visível a outras pessoas assim que for aprovado pelo projecto. Isto poderá levar alguns dias."
-
-#: ../inc/profile.inc:92
-msgid "Your profile has been marked as unacceptable. It is not visible to other people. Please change it."
-msgstr "O seu perfil foi marcado como inaceitável. Não é visivel a outras pessoas. Por favor altere-o."
-
-#: ../inc/profile.inc:167
-#: ../user/friend.php:103
-#: ../user/friend.php:160
-msgid "Database error"
-msgstr "Erro da base de dados"
-
-#: ../inc/profile.inc:187
-msgid "To prevent spam, profiles of users with an average credit of less than %1 are displayed only to logged-in users.  We apologize for this inconvenience."
-msgstr "Para prevenir spam, perfis de utilizadores com uma média de créditos inferior a %1 são visiveis apenas utilizadores logados. Pedimos desculpa pela incoveniência."
-
-#: ../inc/profile.inc:191
-msgid "User is banished"
-msgstr "O utilizador está banido"
-
-#: ../inc/profile.inc:205
-msgid "No profile exists for that user ID."
-msgstr "Não existe perfil para o utilizador com esse ID."
-
-#: ../inc/profile.inc:213
-#: ../user/create_profile.php:306
-msgid "Edit your profile"
-msgstr "Edite o seu perfil"
-
-#: ../inc/profile.inc:251
-msgid "Your feedback on this profile"
-msgstr "O seu feedback neste perfil"
-
-#: ../inc/profile.inc:253
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recomende este perfil como Utilizador do Dia:"
-
-#: ../inc/profile.inc:254
-msgid "I %1like%2 this profile"
-msgstr "%1Gosto%2 deste perfil"
-
-#: ../inc/profile.inc:257
-msgid "Alert administrators to an offensive profile:"
-msgstr "Alertar administradores para um perfil ofensivo:"
-
-#: ../inc/profile.inc:258
-msgid "I %1do not like%2 this profile"
-msgstr "%1Não gosto%2 deste perfil"
-
-#: ../inc/result.inc:25
-msgid "Anonymous platform"
-msgstr "Plataforma anonima"
-
-#: ../inc/result.inc:32
-msgid "Not in DB"
-msgstr "Não na Base de Dados"
-
-#: ../inc/result.inc:70
-msgid "pending"
-msgstr "pendente"
-
-#: ../inc/result.inc:92
-msgid "All"
-msgstr "Todos"
-
-#: ../inc/result.inc:93
-#: ../inc/result.inc:113
-#: ../inc/result.inc:152
-msgid "In progress"
-msgstr "Em progresso"
-
-#: ../inc/result.inc:94
-#: ../user/workunit.php:64
-msgid "Pending"
-msgstr "Pendente"
-
-#: ../inc/result.inc:95
-#: ../inc/result.inc:195
-msgid "Valid"
-msgstr "Válido"
-
-#: ../inc/result.inc:96
-#: ../inc/result.inc:198
-msgid "Invalid"
-msgstr "Inválido"
-
-#: ../inc/result.inc:97
-#: ../inc/result.inc:138
-msgid "Error"
-msgstr "Erro"
-
-#: ../inc/result.inc:111
-#: ../inc/result.inc:150
-msgid "Inactive"
-msgstr "Inactivo"
-
-#: ../inc/result.inc:112
-#: ../inc/result.inc:151
-msgid "Unsent"
-msgstr "Não mandado"
-
-#: ../inc/result.inc:118
-msgid "Completed, waiting for validation"
-msgstr "Completo, esperando pela validação"
-
-#: ../inc/result.inc:119
-msgid "Completed and validated"
-msgstr "Completo e validado"
-
-#: ../inc/result.inc:120
-msgid "Completed, marked as invalid"
-msgstr "Completo, marcado como inválido"
-
-#: ../inc/result.inc:121
-msgid "Completed, can't validate"
-msgstr "Completo, não consegue validar"
-
-#: ../inc/result.inc:122
-msgid "Completed, validation inconclusive"
-msgstr "Completo, validação inconclusiva"
-
-#: ../inc/result.inc:123
-msgid "Completed, too late to validate"
-msgstr "Completo, demasiado tarde para validar"
-
-#: ../inc/result.inc:125
-msgid "Completed"
-msgstr "Completo"
-
-#: ../inc/result.inc:126
-#: ../inc/result.inc:162
-msgid "Couldn't send"
-msgstr "Não foi possivel mandar"
-
-#: ../inc/result.inc:129
-#: ../inc/result.inc:186
-msgid "Cancelled by server"
-msgstr "Cancelado pelo servidor"
-
-#: ../inc/result.inc:132
-msgid "Error while downloading"
-msgstr "Erro enquanto realizava o download "
-
-#: ../inc/result.inc:134
-msgid "Error while computing"
-msgstr "Erro enquanto computava"
-
-#: ../inc/result.inc:135
-msgid "Error while uploading"
-msgstr "Erro enquanto realizava o upload"
-
-#: ../inc/result.inc:136
-#: ../inc/result.inc:188
-msgid "Aborted by user"
-msgstr "Abortado pelo utilizador"
-
-#: ../inc/result.inc:139
-msgid "Timed out - no response"
-msgstr "Tempo limite atingido - sem resposta"
-
-#: ../inc/result.inc:140
-#: ../inc/result.inc:169
-msgid "Didn't need"
-msgstr "Desnecessário"
-
-#: ../inc/result.inc:141
-#: ../inc/result.inc:170
-msgid "Validate error"
-msgstr "Erro validado"
-
-#: ../inc/result.inc:142
-#: ../inc/result.inc:171
-msgid "Client detached"
-msgstr "Cliente desanexado"
-
-#: ../inc/result.inc:153
-msgid "Over"
-msgstr "Excesso"
-
-#: ../inc/result.inc:161
-msgid "Success"
-msgstr "Sucesso"
-
-#: ../inc/result.inc:165
-msgid "Client error"
-msgstr "Erro do cliente"
-
-#: ../inc/result.inc:167
-msgid "Redundant result"
-msgstr "Resultado redundante"
-
-#: ../inc/result.inc:168
-msgid "No reply"
-msgstr "Sem reposta"
-
-#: ../inc/result.inc:178
-msgid "New"
-msgstr "Novo"
-
-#: ../inc/result.inc:179
-msgid "Downloading"
-msgstr "Realizando download"
-
-#: ../inc/result.inc:181
-msgid "Compute error"
-msgstr "Erro de computação"
-
-#: ../inc/result.inc:182
-msgid "Uploading"
-msgstr "Realizando upload"
-
-#: ../inc/result.inc:183
-msgid "Done"
-msgstr "Feito"
-
-#: ../inc/result.inc:194
-msgid "Initial"
-msgstr "Inicial"
-
-#: ../inc/result.inc:200
-msgid "Not necessary"
-msgstr "Desnecessário"
-
-#: ../inc/result.inc:201
-msgid "Workunit error - check skipped"
-msgstr "Erro na unidade de trabalho - verificação saltada"
-
-#: ../inc/result.inc:202
-msgid "Checked, but no consensus yet"
-msgstr "Verificado, mas sem consenso ainda"
-
-#: ../inc/result.inc:203
-msgid "Task was reported too late to validate"
-msgstr "A tarefa foi reportada demasiado tarde para ser validada"
-
-#: ../inc/result.inc:211
-msgid "Couldn't send result"
-msgstr "Não foi possivel mandar o resultado"
-
-#: ../inc/result.inc:215
-msgid "Too many errors (may have bug)"
-msgstr "Demasiados erros (pode ter um bug)"
-
-#: ../inc/result.inc:219
-msgid "Too many results (may be nondeterministic)"
-msgstr "Demasiados resultados (pode não ser determinante)"
-
-#: ../inc/result.inc:223
-msgid "Too many total results"
-msgstr "Demasiados resultados totais"
-
-#: ../inc/result.inc:227
-msgid "WU cancelled"
-msgstr "Unidade de trabalho cancelada"
-
-#: ../inc/result.inc:231
-msgid "Unrecognized Error: %1"
-msgstr "Erro irreconhecivel: %1"
-
-#: ../inc/result.inc:257
-msgid "Task name"
-msgstr "Nome da tarefa"
-
-#: ../inc/result.inc:257
-#: ../inc/result.inc:262
-#: ../inc/result.inc:265
-#: ../inc/result.inc:268
-msgid "click for details"
-msgstr "carregue para detalhes"
-
-#: ../inc/result.inc:257
-msgid "Show IDs"
-msgstr "Mostrar IDs"
-
-#: ../inc/result.inc:262
-msgid "Show names"
-msgstr "Mostrar nomes"
-
-#: ../inc/result.inc:265
-msgid "Task ID"
-msgstr "ID da tarefa"
-
-#: ../inc/result.inc:268
-msgid "Work unit ID"
-msgstr "ID da unidade de trabalho"
-
-#: ../inc/result.inc:271
-msgid "Computer"
-msgstr "Computador"
-
-#: ../inc/result.inc:274
-#: ../inc/result.inc:378
-msgid "Sent"
-msgstr "Mandado"
-
-#: ../inc/result.inc:275
-msgid "Time reported<br />or deadline"
-msgstr "Tempo reportado<br/>ou tempo limite"
-
-#: ../inc/result.inc:276
-msgid "explain"
-msgstr "explique"
-
-#: ../inc/result.inc:278
-msgid "Status"
-msgstr "Estado"
-
-#: ../inc/result.inc:279
-msgid "Run time<br />(sec)"
-msgstr "Tempo decorrido<br/>(seg)"
-
-#: ../inc/result.inc:280
-msgid "CPU time<br />(sec)"
-msgstr "Tempo de CPU<br/>(seg)"
-
-#: ../inc/result.inc:281
-#: ../inc/result.inc:390
-msgid "Claimed credit"
-msgstr "Crédito reivindicado"
-
-#: ../inc/result.inc:282
-#: ../inc/result.inc:391
-msgid "Granted credit"
-msgstr "Crédito garantido"
-
-#: ../inc/result.inc:283
-msgid "Application"
-msgstr "Aplicação"
-
-#: ../inc/result.inc:376
-msgid "Workunit"
-msgstr "Unidade de trabalho"
-
-#: ../inc/result.inc:379
-msgid "Received"
-msgstr "Recebido"
-
-#: ../inc/result.inc:380
-msgid "Server state"
-msgstr "Estado do servidor"
-
-#: ../inc/result.inc:381
-msgid "Outcome"
-msgstr "Resultado"
-
-#: ../inc/result.inc:382
-msgid "Client state"
-msgstr "Estado do cliente"
-
-#: ../inc/result.inc:383
-msgid "Exit status"
-msgstr "Estado de saída"
-
-#: ../inc/result.inc:385
-msgid "Report deadline"
-msgstr "Reportar tempo limite"
-
-#: ../inc/result.inc:386
-msgid "Run time"
-msgstr "Tempo decorrido"
-
-#: ../inc/result.inc:387
-msgid "CPU time"
-msgstr "Tempo de CPU"
-
-#: ../inc/result.inc:388
-msgid "stderr out"
-msgstr ""
-
-#: ../inc/result.inc:389
-msgid "Validate state"
-msgstr "Validar estado"
-
-#: ../inc/result.inc:392
-msgid "application version"
-msgstr "versão da aplicação"
-
-#: ../inc/result.inc:406
-msgid "Previous"
-msgstr "Anterior"
-
-#: ../inc/result.inc:415
-msgid "Next"
-msgstr "Próximo"
-
-#: ../inc/team.inc:33
-msgid "Search criteria (use one or more)"
-msgstr "Procurar por critérios (usar um ou mais)"
-
-#: ../inc/team.inc:34
-msgid "Key words"
-msgstr "Palavras chave"
-
-#: ../inc/team.inc:34
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Procurar equipas com estas palavras nos seus nomes ou descrições"
-
-#: ../inc/team.inc:36
-#: ../inc/team.inc:114
-#: ../inc/team.inc:225
-#: ../inc/team.inc:360
-#: ../inc/team.inc:444
-#: ../inc/user.inc:204
-#: ../inc/user.inc:310
-#: ../user/account_finish.php:44
-#: ../user/create_account_form.php:94
-#: ../user/edit_user_info_form.php:38
-#: ../user/team_email_list.php:61
-#: ../user/team_search.php:69
-#: ../user/top_users.php:61
-#: ../user/user_search.php:102
-#: ../user/user_search.php:119
-#: ../user/user_search.php:158
-msgid "Country"
-msgstr "País"
-
-#: ../inc/team.inc:42
-#: ../inc/team.inc:442
-msgid "Type of team"
-msgstr "Tipo de equipa"
-
-#: ../inc/team.inc:44
-msgid "Show only active teams"
-msgstr "Mostrar apenas equipas activas"
-
-#: ../inc/team.inc:45
-#: ../user/profile_menu.php:75
-#: ../user/user_search.php:132
-msgid "Search"
-msgstr "Procurar"
-
-#: ../inc/team.inc:54
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Requisitado por si, e o tempo de resposta limite do fundador passou."
-
-#: ../inc/team.inc:56
-msgid "Complete foundership transfer"
-msgstr "Completar transferência do fundador"
-
-#: ../inc/team.inc:60
-msgid "Requested by you"
-msgstr "Requisitado por si"
-
-#: ../inc/team.inc:60
-msgid "founder response deadline is %1"
-msgstr "o tempo de resposta limite do fundador é %1"
-
-#: ../inc/team.inc:65
-#: ../inc/user.inc:275
-#: ../inc/user.inc:362
-msgid "None"
-msgstr "Nenhum"
-
-#: ../inc/team.inc:67
-msgid "Initiate request"
-msgstr "Iniciar pedido"
-
-#: ../inc/team.inc:70
-msgid "Deferred"
-msgstr "Deferido"
-
-#: ../inc/team.inc:80
-msgid "Team info"
-msgstr "Informação da equipa"
-
-#: ../inc/team.inc:82
-#: ../user/team_forum.php:68
-#: ../user/team_search.php:66
-msgid "Description"
-msgstr "Descrição"
-
-#: ../inc/team.inc:90
-msgid "Web site"
-msgstr "Website"
-
-#: ../inc/team.inc:112
-msgid "Cross-project stats"
-msgstr "Cruzar estatísticas do projecto"
-
-#: ../inc/team.inc:115
-#: ../inc/team.inc:361
-#: ../user/team_search.php:68
-msgid "Type"
-msgstr "Tipo"
-
-#: ../inc/team.inc:119
-#: ../user/team_manage.php:61
-msgid "Message board"
-msgstr "Mensagem do fórum"
-
-#: ../inc/team.inc:120
-#: ../user/forum_forum.php:131
-#: ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Tópicos"
-
-#: ../inc/team.inc:128
-msgid "Join this team"
-msgstr "Juntar a esta equipa"
-
-#: ../inc/team.inc:129
-msgid "Note: if 'OK to email' is set in your project preferences, joining a team gives its founder access to your email address."
-msgstr "Nota: Se o 'OK para o email' está definido nas preferências do projecto, juntar-se a uma equipa dá ao fundador acesso ao seu endereço de email."
-
-#: ../inc/team.inc:132
-msgid "Not accepting new members"
-msgstr "Não aceitando novos membros"
-
-#: ../inc/team.inc:139
-msgid "Foundership change requested"
-msgstr "Mudança de Liderança pedida"
-
-#: ../inc/team.inc:140
-msgid "Respond by %1"
-msgstr "Responder por %1"
-
-#: ../inc/team.inc:144
-msgid "Team foundership change"
-msgstr "Mudança do lider de equipa"
-
-#: ../inc/team.inc:148
-#: ../inc/team.inc:346
-msgid "Members"
-msgstr "Membros"
-
-#: ../inc/team.inc:149
-#: ../inc/team.inc:241
-msgid "Founder"
-msgstr "Fundador"
-
-#: ../inc/team.inc:161
-msgid "Admins"
-msgstr "Administradores"
-
-#: ../inc/team.inc:176
-msgid "New members in last day"
-msgstr "Novos membros no ultimo dia"
-
-#: ../inc/team.inc:177
-msgid "Total members"
-msgstr "Total de membros"
-
-#: ../inc/team.inc:177
-#: ../inc/team.inc:178
-#: ../inc/team.inc:179
-msgid "view"
-msgstr "ver"
-
-#: ../inc/team.inc:178
-msgid "Active members"
-msgstr "Membros activos"
-
-#: ../inc/team.inc:179
-msgid "Members with credit"
-msgstr "Membros com créditos"
-
-#: ../inc/team.inc:243
-msgid "Admin"
-msgstr "Administrador"
-
-#: ../inc/team.inc:264
-#: ../user/top_hosts.php:91
-#: ../user/top_teams.php:119
-#: ../user/top_users.php:125
-msgid "Previous %1"
-msgstr "Anterior %1"
-
-#: ../inc/team.inc:268
-#: ../user/top_hosts.php:96
-#: ../user/top_teams.php:124
-#: ../user/top_users.php:130
-msgid "Next %1"
-msgstr "Próximo %1"
-
-#: ../inc/team.inc:276
-msgid "No such team."
-msgstr "Não existe essa equipa"
-
-#: ../inc/team.inc:289
-msgid "This operation requires foundership."
-msgstr "Esta operação requer privilégio de lider."
-
-#: ../inc/team.inc:313
-msgid "This operation requires team admin privileges"
-msgstr "Esta operação requer privilégios de administrador na equipa"
-
-#: ../inc/team.inc:410
-msgid "WARNING: this is a BOINC-wide team. If you make changes here, they will soon be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "ATENÇÃO: esta é uma equipa ampla do BOINC. Se fizer alterações aqui, elas brevemente serão sobrescritas. Edite a %1 equipa ampla do BOINC em alternativa."
-
-#: ../inc/team.inc:417
-msgid "%1Privacy note%2: if you create a team, your project preferences (resource share, graphics preferences) will be visible to the public."
-msgstr "%1Note privada%2: se criar uma equipa, as preferênciass do projecto (partilha de recursosm preferências de gráficos) ficarão visíveis ao publico."
-
-#: ../inc/team.inc:421
-msgid "Team name, text version"
-msgstr "Nome da equipa, versão do texto"
-
-#: ../inc/team.inc:422
-msgid "Don't use HTML tags."
-msgstr "Não use tags HTML."
-
-#: ../inc/team.inc:425
-msgid "Team name, HTML version"
-msgstr "Nome da equipa, versão de HTML"
-
-#: ../inc/team.inc:427
-#: ../inc/team.inc:437
-msgid "You may use %1limited HTML tags%2."
-msgstr "Pode usar %1tags HTLM limitados%2"
-
-#: ../inc/team.inc:428
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Se não conhece HTML, deixe esta caixa em branco"
-
-#: ../inc/team.inc:431
-msgid "URL of team web page, if any"
-msgstr "URL da página web da equipa, se tiver"
-
-#: ../inc/team.inc:431
-msgid "without \"http://\""
-msgstr "sem \"http://\""
-
-#: ../inc/team.inc:432
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Este URL será linkado para a página da equipa neste site."
-
-#: ../inc/team.inc:435
-msgid "Description of team"
-msgstr "Descrição da equipa"
-
-#: ../inc/team.inc:451
-msgid "Accept new members?"
-msgstr "Aceitar novos membros?"
-
-#: ../inc/uotd.inc:27
-msgid "User profile"
-msgstr "Perfil do utilizador"
-
-#: ../inc/user.inc:112
-msgid "Projects in which you are participating"
-msgstr "Projectos em que está a participar"
-
-#: ../inc/user.inc:114
-msgid "Projects in which %1 is participating"
-msgstr "Projectos em que está %1 a participar"
-
-#: ../inc/user.inc:118
-msgid "Project"
-msgstr "Projecto"
-
-#: ../inc/user.inc:118
-msgid "Click for user page"
-msgstr "Carregue para página do utilizador"
-
-#: ../inc/user.inc:118
-msgid "Since"
-msgstr "a partir de"
-
-#: ../inc/user.inc:142
-msgid "Computing and credit"
-msgstr "Computação e perfil"
-
-#: ../inc/user.inc:146
-msgid "Pending credit"
-msgstr "Créditos pendentes"
-
-#: ../inc/user.inc:146
-#: ../inc/user.inc:148
-#: ../inc/user.inc:149
-#: ../inc/user.inc:237
-#: ../inc/user.inc:318
-#: ../inc/user.inc:393
-#: ../user/view_profile.php:54
-msgid "View"
-msgstr "Ver"
-
-#: ../inc/user.inc:148
-msgid "Computers on this account"
-msgstr "Computadores nesta conta"
-
-#: ../inc/user.inc:158
-msgid "Cross-project ID"
-msgstr "ID Cross-project"
-
-#: ../inc/user.inc:159
-msgid "Cross-project statistics"
-msgstr "Estatísticas Cross-project"
-
-#: ../inc/user.inc:160
-msgid "Account"
-msgstr "Conta"
-
-#: ../inc/user.inc:162
-#: ../inc/user.inc:275
-#: ../inc/user.inc:360
-#: ../inc/user.inc:362
-#: ../user/user_search.php:102
-#: ../user/user_search.php:158
-msgid "Team"
-msgstr "Equipa"
-
-#: ../inc/user.inc:164
-msgid "Cross-project"
-msgstr "Cross-project"
-
-#: ../inc/user.inc:165
-msgid "Certificate"
-msgstr "Certificado"
-
-#: ../inc/user.inc:166
-msgid "Stats on your cell phone"
-msgstr "Dados do seu telemóvel"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Informação da conta"
-
-#: ../inc/user.inc:199
-#: ../user/edit_passwd_form.php:46
-#: ../user/team_email_list.php:61
-msgid "Email address"
-msgstr "Endereço de email"
-
-#: ../inc/user.inc:202
-#: ../inc/user.inc:312
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:205
-msgid "Postal code"
-msgstr "Código postal"
-
-#: ../inc/user.inc:206
-#: ../inc/user.inc:309
-msgid "%1 member since"
-msgstr "%1 membro desde"
-
-#: ../inc/user.inc:208
-msgid "Change"
-msgstr "Mudar"
-
-#: ../inc/user.inc:208
-msgid "email address"
-msgstr "endereço de email"
-
-#: ../inc/user.inc:208
-msgid "password"
-msgstr "palavra passe"
-
-#: ../inc/user.inc:208
-msgid "other account info"
-msgstr "outra informações da conta"
-
-#: ../inc/user.inc:209
-msgid "Log out"
-msgstr "Log out"
-
-#: ../inc/user.inc:210
-msgid "User ID"
-msgstr "ID do utilizador"
-
-#: ../inc/user.inc:210
-msgid "Used in community functions"
-msgstr "Usado nas funções da comunidade"
-
-#: ../inc/user.inc:212
-msgid "Account key"
-msgstr "Palavra chave da conta"
-
-#: ../inc/user.inc:212
-msgid "Provides full access to your account"
-msgstr "Providencia acesso total a sua conta"
-
-#: ../inc/user.inc:213
-#: ../user/weak_auth.php:25
-msgid "Weak account key"
-msgstr "Palavra chave fraca"
-
-#: ../inc/user.inc:213
-msgid "Provides %1limited access%2 to your account"
-msgstr "Providencia %1acesso limitado%2 à sua conta"
-
-#: ../inc/user.inc:216
-msgid "Preferences"
-msgstr "Preferências"
-
-#: ../inc/user.inc:219
-msgid "When and how BOINC uses your computer"
-msgstr "Quando e como o BOINC usa o seu computador"
-
-#: ../inc/user.inc:220
-msgid "Computing preferences"
-msgstr "Preferências de computação"
-
-#: ../inc/user.inc:223
-msgid "Message boards and private messages"
-msgstr "Mensagens do fórum e mensagens privadas"
-
-#: ../inc/user.inc:224
-msgid "Community preferences"
-msgstr "Preferências da comunidade"
-
-#: ../inc/user.inc:227
-msgid "Preferences for this project"
-msgstr "Preferências para este projecto"
-
-#: ../inc/user.inc:228
-msgid "%1 preferences"
-msgstr "%1 preferências"
-
-#: ../inc/user.inc:234
-#: ../user/sample_index.php:66
-msgid "Community"
-msgstr "Comunidade"
-
-#: ../inc/user.inc:237
-#: ../user/pm.php:103
-#: ../user/pm.php:143
-msgid "Delete"
-msgstr "Apagar"
-
-#: ../inc/user.inc:239
-msgid "Create"
-msgstr "Criar"
-
-#: ../inc/user.inc:241
-#: ../inc/user.inc:393
-msgid "Profile"
-msgstr "Perfil"
-
-#: ../inc/user.inc:244
-#: ../inc/user.inc:366
-msgid "%1 posts"
-msgstr "%1 posts"
-
-#: ../inc/user.inc:256
-msgid "Notifications"
-msgstr "Notificações"
-
-#: ../inc/user.inc:263
-msgid "Quit team"
-msgstr "Sair da equipa"
-
-#: ../inc/user.inc:265
-#: ../inc/user.inc:282
-msgid "Administer"
-msgstr "Administrar"
-
-#: ../inc/user.inc:271
-#: ../inc/user.inc:284
-msgid "(foundership change request pending)"
-msgstr "(solicitação de mudança de lider pendente)"
-
-#: ../inc/user.inc:273
-msgid "Member of team"
-msgstr "Membro da equipa"
-
-#: ../inc/user.inc:275
-msgid "find a team"
-msgstr "encontrar uma equipa"
-
-#: ../inc/user.inc:286
-msgid "Founder but not member of"
-msgstr "Fundador mas não membro de"
-
-#: ../inc/user.inc:292
-msgid "Find friends"
-msgstr "Encontrar amigos"
-
-#: ../inc/user.inc:299
-#: ../inc/user.inc:301
-#: ../inc/user.inc:376
-#: ../inc/user.inc:378
-#: ../inc/user.inc:387
-msgid "Friends"
-msgstr "Amigos"
-
-#: ../inc/user.inc:318
-#: ../inc/user.inc:320
-msgid "Computers"
-msgstr "Computadores"
-
-#: ../inc/user.inc:320
-msgid "hidden"
-msgstr "escondido"
-
-#: ../inc/user.inc:327
-msgid "Donor"
-msgstr "Doador"
-
-#: ../inc/user.inc:369
-msgid "Contact"
-msgstr "Contacto"
-
-#: ../inc/user.inc:372
-msgid "This person is a friend"
-msgstr "Esta pessoa é amiga"
-
-#: ../inc/user.inc:373
-#: ../user/friend.php:224
-msgid "Cancel friendship"
-msgstr "Cancelar amizade"
-
-#: ../inc/user.inc:376
-#: ../user/friend.php:35
-msgid "Request pending"
-msgstr "Pedido pendente"
-
-#: ../inc/user.inc:378
-msgid "Add as friend"
-msgstr "Adicionar como amigo"
-
-#: ../inc/util.inc:191
-msgid "Unable to handle request"
-msgstr "Incapaz de controlar esse pedido"
-
-#: ../inc/util.inc:385
-msgid "Email address:"
-msgstr "Endereço de email:"
-
-#: ../inc/util.inc:385
-msgid "forgot email address?"
-msgstr "esqueceu o endereço de email?"
-
-#: ../inc/util.inc:387
-msgid "Password:"
-msgstr "Palavra passe:"
-
-#: ../inc/util.inc:387
-msgid "forgot password?"
-msgstr "esqueceu a palavra passe?"
-
-#: ../inc/util.inc:390
-msgid "Stay logged in on this computer"
-msgstr "Manter-se logado neste computador"
-
-#: ../inc/util.inc:395
-msgid "Log in"
-msgstr "Log in"
-
-#: ../inc/util.inc:396
-msgid "or %1create an account%2."
-msgstr "ou %1criar uma conta%2"
-
-#: ../inc/util.inc:416
-msgid "Please log in"
-msgstr "Por favor faça log in"
-
-#: ../inc/util.inc:542
-msgid "Use BBCode tags to format your text"
-msgstr "Use tags BBcode para formatar o texto"
-
-#: ../user/account_finish.php:40
-#: ../user/create_account_form.php:75
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "indentifica-o no seu website. Use o seu nome real ou o nickname."
-
-#: ../user/account_finish.php:44
-#: ../user/create_account_form.php:94
-msgid "Select the country you want to represent, if any."
-msgstr "Seleccione o País que represente, se algum."
-
-#: ../user/account_finish.php:50
-#: ../user/create_account_form.php:100
-msgid "Postal or ZIP Code"
-msgstr "Código Postal"
-
-#: ../user/account_finish.php:50
-#: ../user/create_account_form.php:100
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../user/add_venue.php:86
-msgid "Add %1 preferences for %2"
-msgstr "Addiconar %1 preferências para %2"
-
-#: ../user/apps.php:31
-#: ../user/sample_index.php:63
-msgid "Applications"
-msgstr "Aplicações"
-
-#: ../user/apps.php:32
-msgid "%1 currently has the following applications. When you participate in %1, work for one or more of these applications will be assigned to your computer. The current version of the application will be downloaded to your computer. This happens automatically; you don't have to do anything."
-msgstr "%1 actualmente tem as seguintes aplicações. Quando participa em %1, o trabalho para uma ou mais destas aplicações será atribuída a este computador. A versão actual da aplicação será baixada para p seu computador. Isto acontece automaticamente; não tem que fazer nada."
-
-#: ../user/apps.php:48
-msgid "Platform"
-msgstr "Plataforma"
-
-#: ../user/apps.php:49
-msgid "Version"
-msgstr "Versão"
-
-#: ../user/apps.php:50
-msgid "Installation time"
-msgstr "Tempo de instalação"
-
-#: ../user/create_account_action.php:64
-msgid "You must supply an invitation code to create an account."
-msgstr "Tem que fornecer um código de convite para criar uma conta."
-
-#: ../user/create_account_action.php:67
-msgid "The invitation code you gave is not valid."
-msgstr "O código de convite que inseriu não é válido"
-
-#: ../user/create_account_form.php:24
-msgid "Create an account"
-msgstr "Criar uma conta"
-
-#: ../user/create_account_form.php:29
-msgid "Account creation is disabled"
-msgstr "A criação de conta está desabilitada"
-
-#: ../user/create_account_form.php:30
-msgid "Account creation is currently disabled. Please try again later."
-msgstr "A criação de conta está actualmente desabilitada. Por favor, tente mais tarde"
-
-#: ../user/create_account_form.php:41
-msgid "NOTE: If you use BOINC version 5.2+ with the BOINC Manager, don't use this form. Just run BOINC, select Attach Project, and enter an email address and password."
-msgstr "NOTA: Se usa a versão 5.2+ do BOINC com o Gestor do BOINC, não use este form. Apenas corra o BOINC, seleccione Anexar Projecto e insira o endereço de email e palavra passe."
-
-#: ../user/create_account_form.php:57
-msgid "This account will belong to the team %1 and will have the project preferences of its founder."
-msgstr "Esta conta irá pertencer à equipa %1 e terá as preferências do projecto do seu fundador."
-
-#: ../user/create_account_form.php:69
-msgid "Invitation Code"
-msgstr "Código de Convite"
-
-#: ../user/create_account_form.php:69
-msgid "A valid invitation code is required to create an account."
-msgstr "Um  código de convite válido é necessário para cirar uma conta."
-
-#: ../user/create_account_form.php:79
-msgid "Email Address"
-msgstr "Endereço de Email"
-
-#: ../user/create_account_form.php:79
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Tem que ser um endereço válido do form 'name at domain'."
-
-#: ../user/create_account_form.php:88
-#: ../user/edit_email_form.php:46
-msgid "Password"
-msgstr "Palavra passe"
-
-#: ../user/create_account_form.php:89
-msgid "Must be at least %1 characters"
-msgstr "Tem que ter pelo menos %1 caracteres"
-
-#: ../user/create_account_form.php:92
-msgid "Confirm password"
-msgstr "Confirme palavra passe"
-
-#: ../user/create_account_form.php:104
-msgid "Create account"
-msgstr "Criar conta"
-
-#: ../user/create_profile.php:31
-msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-msgstr "ERRO: %1 não existe! Não pode criar combo box.<br>"
-
-#: ../user/create_profile.php:51
-msgid "Picture"
-msgstr "Imagem"
-
-#: ../user/create_profile.php:65
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 A imagem do seu perfil é mostrada à esquerda."
-
-#: ../user/create_profile.php:67
-msgid "To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 or less)."
-msgstr "Para a substituir, carregue no botão \"Procurar em\" e seleccione um ficheiro JPEG ou PNG (%1 ou menos)."
-
-#: ../user/create_profile.php:70
-msgid "To remove it from your profile, check this box:"
-msgstr "Para a remover do perfil, seleccione esta caixa:"
-
-#: ../user/create_profile.php:78
-msgid "If you would like include a picture with your profile, click the \"Browse\" button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:87
-msgid "Language"
-msgstr "Linguagem"
-
-#: ../user/create_profile.php:90
-msgid "Select the language in which your profile is written:"
-msgstr "Seleccione a linguagem na qual o seu perfil está escrito:"
-
-#: ../user/create_profile.php:102
-msgid "Submit profile"
-msgstr "Submeter perfil"
-
-#: ../user/create_profile.php:107
-msgid "To protect the project's webpages from spam, we kindly ask you to type in the two words shown in the image:<br>\n"
-msgstr "Para proteger as páginas web de spam, pedimos-lhe que tenha a amabilidade de escrever as duas palavras escritas na imagem:<br>\n"
-
-#: ../user/create_profile.php:110
-msgid "Create/edit profile"
-msgstr "Criar/editar perfil"
-
-#: ../user/create_profile.php:132
-msgid "The format of your uploaded image is not supported."
-msgstr "O formato da imagem que fez o upload não é suportadp"
-
-#: ../user/create_profile.php:161
-msgid "Your %1profile%2 lets you share your opinions and background with the %3 community."
-msgstr "O seu %1perfil%2 permite-lhe partilhar as suas opiniões e os fundos de trabalho com a %3 comunidade."
-
-#: ../user/create_profile.php:208
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "As palavras que escreveu não estão correctas. Por favor, tente novamente."
-
-#: ../user/create_profile.php:217
-msgid "Your first response was flagged as spam by the Akismet anti-spam system.  Please modify your text and try again."
-msgstr "A sua primera resposta foi definida como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
-
-#: ../user/create_profile.php:225
-msgid "Your second response was flagged as spam by the Akismet anti-spam system.  Please modify your text and try again."
-msgstr "A sua segunda resposta foi definida como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
-
-#: ../user/create_profile.php:241
-msgid "Your profile submission was empty."
-msgstr "A sua submissão do perfil estava vazia."
-
-#: ../user/create_profile.php:280
-msgid "Could not update the profile: database error"
-msgstr "Não foi possivel actualizar o perfil: erro da base de dados"
-
-#: ../user/create_profile.php:292
-msgid "Could not create the profile: database error"
-msgstr "Não foi possivel criar o perfil: erro da base de dados"
-
-#: ../user/create_profile.php:297
-msgid "Profile saved"
-msgstr "Perfil salvo"
-
-#: ../user/create_profile.php:299
-msgid "Congratulations! Your profile was successfully entered into our database."
-msgstr "Parabéns! O seu perfil foi inserido com sucesso na nossa base de dados."
-
-#: ../user/create_profile.php:300
-msgid "%1View your profile%2"
-msgstr "%1Ver o seu perfil%2"
-
-#: ../user/create_profile.php:308
-msgid "Create a profile"
-msgstr "Criar um perfil"
-
-#: ../user/create_profile.php:336
-msgid "To prevent spam, an average credit of %1 or greater is required to create or edit a profile.  We apologize for this inconvenience."
-msgstr "Para prevenir spam, um amédia de créditos de %1 ou superior é necessária para criar ou editar um perfil. Pedimos desculpa pela incoveniência."
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Fazer o download de software add-on para o BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Pode fazer o download de aplicação em várias categorias."
-
-#: ../user/download_network.php:31
-msgid "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Estas aplicações não estão aprovadas pelo %1 e está a usá-las pela sua conta e risco."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Não providenciamos instruções para instalar estas aplicações.\n"
-"No entanto, o autor pode lhe providenciar ajuda a instalar ou desinstalar a aplicação.\n"
-"Se não for suficiente, deve contactar o autor."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instruções para instalar e correr o BOINC estão %1aqui%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Esta lista é gerida centralmente no %1website do BOINC%2."
-
-#: ../user/edit_email_form.php:26
-#: ../user/edit_email_form.php:50
-msgid "Change email address"
-msgstr "Mude o endereço de email"
-
-#: ../user/edit_email_form.php:35
-msgid "Change the email address of your account"
-msgstr "Mude o endereço de email da sua conta"
-
-#: ../user/edit_email_form.php:36
-msgid "New email address"
-msgstr "Novo endereço de email"
-
-#: ../user/edit_email_form.php:37
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Tem que ser um endereço válido do form 'name at domain'"
-
-#: ../user/edit_email_form.php:47
-msgid "No password?"
-msgstr "Sem palavra passe?"
-
-#: ../user/edit_passwd_form.php:26
-#: ../user/edit_passwd_form.php:56
-msgid "Change password"
-msgstr "Mude palavra passe"
-
-#: ../user/edit_passwd_form.php:40
-msgid "You can identify yourself using either"
-msgstr "Pode se identificar usando um ou outro"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your email address and old password"
-msgstr "o seu endereço de email e palavra passe antiga"
-
-#: ../user/edit_passwd_form.php:43
-msgid "your account key"
-msgstr "a sua palavra chave fraca"
-
-#: ../user/edit_passwd_form.php:47
-msgid "Current password"
-msgstr "Palavra passe actual"
-
-#: ../user/edit_passwd_form.php:49
-msgid "<b>OR</b>: Account key"
-msgstr "<b>OU</b>: Palavra chave da conta"
-
-#: ../user/edit_passwd_form.php:50
-msgid "Get account key by email"
-msgstr "Obter palavra chave da conta por email"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password"
-msgstr "Nova palavra passe"
-
-#: ../user/edit_passwd_form.php:55
-msgid "New password, again"
-msgstr "nova palavra passe outra vez"
-
-#: ../user/edit_user_info_action.php:29
-msgid "HTML tags are not allowed in your name."
-msgstr "Tags HTML não são permitidas no seu nome."
-
-#: ../user/edit_user_info_action.php:32
-msgid "You must supply a name for your account."
-msgstr "Tem que fornecer um nome para a sua conta."
-
-#: ../user/edit_user_info_action.php:41
-#: ../user/team_edit_action.php:51
-msgid "bad country"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:57
-msgid "Couldn't update user info."
-msgstr "Não foi possivel actualizar a informação do utilizador"
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Editar Informação da conta"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Nome %1 nome real ou nick%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 da sua página web; opcional%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Código postal %1 Opcional%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Actualizar informação"
-
-#: ../user/forum_edit.php:115
-#: ../user/forum_edit.php:120
-#: ../user/forum_post.php:110
-#: ../user/forum_post.php:112
-#: ../user/team_forum.php:67
-msgid "Title"
-msgstr "Título"
-
-#: ../user/forum_edit.php:144
-#: ../user/forum_post.php:128
-msgid "Add my signature to this post"
-msgstr "Adicionar a minha assinatura a este post"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Mensagens do fórum"
-
-#: ../user/forum_index.php:79
-msgid "If you have a question or problem, please use the %1Questions & Answers%2 section of the message boards."
-msgstr "Se tiver uma questão ou um problema, por favor use a secção  %1Questões & Respostas%2 do fórun."
-
-#: ../user/forum_index.php:93
-msgid "Topic"
-msgstr "Tópico"
-
-#: ../user/forum_post.php:101
-msgid "Create a new thread"
-msgstr "Criar um novo tópico"
-
-#: ../user/forum_reply.php:85
-#: ../user/forum_thread.php:139
-#: ../user/forum_thread.php:194
-msgid "Post to thread"
-msgstr "Postar no tópico"
-
-#: ../user/forum_search.php:25
-msgid "Forum search"
-msgstr "Procura no fórum"
-
-#: ../user/forum_search_action.php:139
-msgid "Forum search results"
-msgstr "Resultados da procura no fórum"
-
-#: ../user/forum_thread.php:45
-msgid "No thread with id %1. Please check the link and try again."
-msgstr "Não existe tópico com esse id %1. Por favor verifique o link e tente novamente."
-
-#: ../user/forum_thread.php:48
-msgid "This forum is not visible to you."
-msgstr "Este fórum não é visivel a si."
-
-#: ../user/forum_thread.php:54
-msgid "This thread has been hidden for administrative purposes"
-msgstr "Este tópico foi escondido com propósitos administrativos"
-
-#: ../user/forum_thread.php:111
-msgid "My question was answered"
-msgstr "A minha questão foi respondida"
-
-#: ../user/forum_thread.php:113
-msgid "If your question has been adequately answered please click here to close it!"
-msgstr "Se a sua questão foi adequadamente respondida, por favor carregue aqui para a fechar!"
-
-#: ../user/forum_thread.php:120
-msgid "I've also got this question"
-msgstr "Também tenho esta questão"
-
-#: ../user/forum_thread.php:139
-#: ../user/forum_thread.php:194
-msgid "Add a new message to this thread"
-msgstr "Adicionar uma nova mensagem a este tópico"
-
-#: ../user/forum_thread.php:146
-msgid "Unsubscribe"
-msgstr "Deixar de subscrever"
-
-#: ../user/forum_thread.php:146
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Já esta subscrito a este tópico. Carregue aqui para deixar de subscrever."
-
-#: ../user/forum_thread.php:149
-msgid "Subscribe"
-msgstr "Subscrever"
-
-#: ../user/forum_thread.php:149
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Carregue para obter emails quando houver novos posts neste tópico"
-
-#: ../user/forum_thread.php:156
-msgid "Unhide"
-msgstr "Deixar de esconder"
-
-#: ../user/forum_thread.php:156
-msgid "Unhide this thread"
-msgstr "Deixar de esconder este tópico"
-
-#: ../user/forum_thread.php:158
-msgid "Hide"
-msgstr "Esconder"
-
-#: ../user/forum_thread.php:158
-msgid "Hide this thread"
-msgstr "Esconder este tópico"
-
-#: ../user/forum_thread.php:161
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:161
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:163
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:163
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:166
-msgid "Unlock"
-msgstr "Desbloquear"
-
-#: ../user/forum_thread.php:166
-msgid "Unlock this thread"
-msgstr "Desbloquar este tópico"
-
-#: ../user/forum_thread.php:168
-msgid "Lock"
-msgstr "Bloquear"
-
-#: ../user/forum_thread.php:168
-msgid "Lock this thread"
-msgstr "Bloquear este tópico"
-
-#: ../user/forum_thread.php:171
-msgid "Move"
-msgstr "Mover"
-
-#: ../user/forum_thread.php:171
-msgid "Move this thread to a different forum"
-msgstr "Mover este tópico para um fórum diferente"
-
-#: ../user/forum_thread.php:173
-msgid "Edit title"
-msgstr "Editar título"
-
-#: ../user/forum_thread.php:173
-msgid "Edit thread title"
-msgstr "Editar o título deste tópico"
-
-#: ../user/forum_thread.php:180
-msgid "Sort"
-msgstr "Ordenar"
-
-#: ../user/friend.php:31
-msgid "Already friends"
-msgstr "Já amigos"
-
-#: ../user/friend.php:37
-msgid "You requested friendship with %1 on %2."
-msgstr "Solicitou amizade com %1 no %2"
-
-#: ../user/friend.php:39
-msgid "This request is still pending confirmation."
-msgstr "Esta solicitação está ainda pendente por confirmação"
-
-#: ../user/friend.php:50
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 não está a aceitar pedidos de amizade seus"
-
-#: ../user/friend.php:59
-msgid "You can't be friends with yourself"
-msgstr "Não pode ser amigo de si mesmo"
-
-#: ../user/friend.php:62
-#: ../user/friend.php:90
-#: ../user/friend.php:123
-#: ../user/friend.php:146
-#: ../user/friend.php:204
-#: ../user/friend.php:219
-#: ../user/friend.php:233
-#: ../user/pm.php:232
-#: ../user/view_profile.php:24
-msgid "No such user"
-msgstr "Não existe tal utilizador"
-
-#: ../user/friend.php:67
-msgid "Add friend"
-msgstr "Adicionar amigo"
-
-#: ../user/friend.php:72
-msgid "You have asked to add %1 as a friend. We will notify %2 and will ask him/her to confirm that you are friends."
-msgstr "Pediu para adicionar %1 como amigo. Iremos notificar %2 e pedir-lhe que confirme que são amigos."
-
-#: ../user/friend.php:75
-msgid "Add an optional message here:"
-msgstr "Adicionar uma mensagem opcional aqui:"
-
-#: ../user/friend.php:113
-msgid "Friend request sent"
-msgstr "Pedido de amizade enviado"
-
-#: ../user/friend.php:114
-msgid "We have notified %1 of your request."
-msgstr "Notificámos %1 do seu pedido."
-
-#: ../user/friend.php:125
-msgid "Request not found"
-msgstr "Pedido não encontrado"
-
-#: ../user/friend.php:126
-msgid "Friend request"
-msgstr "Pedido de amigo"
-
-#: ../user/friend.php:128
-msgid "%1 has added you as a friend."
-msgstr "%1 adicionou-o como amigo."
-
-#: ../user/friend.php:130
-msgid "%1 says: %2"
-msgstr "%1 diz: %2"
-
-#: ../user/friend.php:134
-msgid "Accept friendship"
-msgstr "Aceitar amizade"
-
-#: ../user/friend.php:134
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Carregue em aceitar se %1 é de facto um amigo"
-
-#: ../user/friend.php:135
-msgid "Decline"
-msgstr "Declinar"
-
-#: ../user/friend.php:135
-msgid "Click decline if %1 is not a friend"
-msgstr "Carregue em declinar se %1 não é um amigo"
-
-#: ../user/friend.php:150
-msgid "No request"
-msgstr "Sem pedido"
-
-#: ../user/friend.php:174
-msgid "Friendship confirmed"
-msgstr "Amizade confirmada"
-
-#: ../user/friend.php:175
-msgid "Your friendship with %1 has been confirmed."
-msgstr "A sua amizade com %1 foi confirmada."
-
-#: ../user/friend.php:193
-msgid "Friendship declined"
-msgstr "Amizade declinada"
-
-#: ../user/friend.php:194
-msgid "You have declined friendship with %1"
-msgstr "Declinou a amizade com %1"
-
-#: ../user/friend.php:209
-msgid "Notification not found"
-msgstr "Notificação não encontrada"
-
-#: ../user/friend.php:211
-msgid "Friend confirmed"
-msgstr "Amigo confirmado"
-
-#: ../user/friend.php:212
-msgid "You are now friends with %1."
-msgstr "É agora amigo de %1."
-
-#: ../user/friend.php:220
-msgid "Cancel friendship?"
-msgstr "Cancelar amizade?"
-
-#: ../user/friend.php:221
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Tem a certeza que quer cancelar a sua amizade com %1?"
-
-#: ../user/friend.php:224
-#: ../user/prefs_remove.php:53
-#: ../user/user_search.php:125
-#: ../user/user_search.php:130
-msgid "Yes"
-msgstr "Sim"
-
-#: ../user/friend.php:225
-#: ../user/user_search.php:124
-#: ../user/user_search.php:129
-msgid "No"
-msgstr "Não"
-
-#: ../user/friend.php:225
-msgid "Stay friends"
-msgstr "Manter amigos"
-
-#: ../user/friend.php:235
-msgid "Friendship cancelled"
-msgstr "Amizade cancelada"
-
-#: ../user/friend.php:236
-msgid "Your friendship with %1 has been cancelled."
-msgstr "A sua amizade com %1 foi cancelada."
-
-#: ../user/friend.php:274
-msgid "Unknown action"
-msgstr "Acção desconhecida"
-
-#: ../user/home.php:40
-msgid "Welcome to %1"
-msgstr "Bem vindo a %1"
-
-#: ../user/home.php:41
-msgid "View and edit your account preferences using the links below."
-msgstr "Ver e editar as preferências da sua conta usando os links abaixo."
-
-#: ../user/home.php:49
-#: ../project.sample/project.inc:49
-msgid "Your account"
-msgstr "A sua conta"
-
-#: ../user/info.php:22
-#: ../user/sample_index.php:47
-msgid "Read our rules and policies"
-msgstr "Leia as nossas regras e politícas"
-
-#: ../user/info.php:33
-msgid "Run %1 only on authorized computers"
-msgstr "Correr %1 apenas em computadores autorizados"
-
-#: ../user/info.php:34
-msgid "Run %1 only on computers that you own, or for which you have obtained the owner's permission. Some companies and schools have policies that prohibit using their computers for projects such as %1."
-msgstr "Executar %1 apenas em computadores que possua, ou que tenha obtido a permissão do dono. Algumas companhias e escolas têm politícas que proibem usar os seus computadores para projectos como %1."
-
-#: ../user/info.php:36
-msgid "How %1 will use your computer"
-msgstr "Como o %1 irá usar o seu computador"
-
-#: ../user/info.php:37
-msgid "When you run %1 on your computer, it will use part of the computer's CPU power, disk space, and network bandwidth. You can control how much of your resources are used by %1, and when it uses them."
-msgstr "Quando executar o %1 no seu computador, ele irá usar parte do poder do CPU do seu computador, espaço em disco e largura de banda. Pode controlar a quantidade de recursos que são usadas pelo %1 e quando são usadas."
-
-#: ../user/info.php:38
-msgid "The work done by your computer contributes to the goals of %1, as described on its web site. The application programs may change from time to time."
-msgstr "O trabalho realizado pelo seu computador contribui para os objectivos do %1, como descrito no website. Os programas das aplicações podem variar de tempo a tempo."
-
-#: ../user/info.php:40
-msgid "Privacy policy"
-msgstr "Politíca de privacidade"
-
-#: ../user/info.php:41
-msgid "Your account on %1 is identified by a name that you choose. This name may be shown on the %1 web site, along with a summary of the work your computer has done for %1. If you want to be anonymous, choose a name that doesn't reveal your identity."
-msgstr "A sua conta no %1 é identificada pelo nome que escolheu. Este nome pode ser mostrado no %1 website, juntamente com um resumo do trabalho que foi realizado pelo seu computador para o %1. Se quer permanecer anónimo, escolha um nome que revele a sua identidade."
-
-#: ../user/info.php:42
-msgid "If you participate in %1, information about your computer (such as its processor type, amount of memory, etc.) will be recorded by %1 and used to decide what type of work to assign to your computer. This information will also be shown on %1's web site. Nothing that reveals your computer's location (e.g. its domain name or network address) will be shown."
-msgstr "Se participa num %1, a informação acerca do seu computador (assim como o tipo de processador, quantidade de memória, etc.) será gravada pelo %1 e usada para decidir que tipo de trabalho será assignado ao seu computador. Esta informação será também mostrada no %1 website. Nada que revele a localização do seu computador (por exemplo o nome do domínio ou o endereço de rede) será mostrado."
-
-#: ../user/info.php:43
-msgid "To participate in %1, you must give an address where you receive email. This address will not be shown on the %1 web site or shared with organizations. %1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Para participar em %1, tem que inserir um endereço onde receba emails. Este endereço não será mostrado no %1 website ou organizações partilhadas. %1 pode enviar newsletters periódicas; no entanto, pode desistir a qualquer altura."
-
-#: ../user/info.php:44
-msgid "Private messages sent on the %1 web site are visible only to the sender and recipient.  %1 does not examine or police the content of private messages.  If you receive unwanted private messages from another %1 user, you may add them to your %2message filter%3.  This will prevent you from seeing any public or private messages from that user."
-msgstr "Mensagens privadas enviadas no %1 website estão visíveis apenas ao remetente bem como o conteúdo. %1 não examina ou controla o contúdo das mensagens privadas. Se receber mensagens privadas indesejáveis de outro %1 utilizador, pode adicioná-lo ao seu %2filtro de mensagens%3. Isto irá preveni-lo de ver mensagens publicas ou privadas desse mesmo utilizador."
-
-#: ../user/info.php:45
-msgid "If you use our web site forums you must follow the %2posting guidelines%3.  Messages posted to the %1 forums are visible to everyone, including non-members.  By posting to the forums, you are granting irrevocable license for anyone to view and copy your posts."
-msgstr "Se usa o nosso fórum na web, tem que seguir as %2instruções para fazer posts%3. Mensagens postadas ao %1 fórum estão visíveis a todos, incluindo não-membros. Ao postar nos fóruns, está a garantir licença irrevogável para que qualquer pessoa possa ver e copiar os seus posts."
-
-#: ../user/info.php:46
-msgid "Is it safe to run %1?"
-msgstr "É seguro correr %1?"
-
-#: ../user/info.php:47
-msgid "Any time you download a program through the Internet you are taking a chance: the program might have dangerous errors, or the download server might have been hacked. %1 has made efforts to minimize these risks. We have tested our applications carefully. Our servers are behind a firewall and are configured for high security. To ensure the integrity of program downloads, all executable files are digitally signed on a secure computer not connected to the Internet."
-msgstr "De cada vez que faz o download de um programa através da Internet está a correr um risco: o programa pode conter erros perigosos, ou o servidor de downloads pode ter sido hackeado. %1 faz um esforço para minimizar estes riscos. Testamos as nossas aplicações com todos o cuidado. os nossos servidores estão por trás de uma firewall e configurados para alta segurança. Para garantir a integridade dos downloads dos programas, todos os executáveis estão assinados digitalmente num comput [...]
-
-#: ../user/info.php:48
-msgid "The applications run by %1 may cause some computers to overheat. If this happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "As aplicações executadas pelo %1 podem causar em alguns computadores sobreaquecimento. Se isto acontecer, para de executar %1 ou uso um %aplicativo%3 que limite o uso do CPU."
-
-#: ../user/info.php:49
-msgid "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 foi desenvolvido pelo %2. O BOINC foi desenvolvido na Universidade da California."
-
-#: ../user/info.php:51
-msgid "Liability"
-msgstr "Responsabilidade"
-
-#: ../user/info.php:52
-msgid "%1 and %2 assume no liability for damage to your computer, loss of data, or any other event or condition that may occur as a result of participating in %1."
-msgstr "%1 e %2 não assume responsabilidade por danos no seu computador, perca de dados ou outros eventos ou condições que possam ocurrer como resultado de participar em %1."
-
-#: ../user/info.php:54
-msgid "Other BOINC projects"
-msgstr "Outros projectos BOINC"
-
-#: ../user/info.php:55
-msgid "Other projects use the same platform, BOINC, as %1. You may want to consider participating in one or more of these projects. By doing so, your computer will do useful work even when %1 has no work available for it."
-msgstr "Outros projectos usam a mesma plataforma, o BOINC, como %1. Pode considerar participar em um ou mais destes projectos. Ao fazê-lo, o seu computador fará trabalho util mesmo quando %1 não tiver trabalho disponível."
-
-#: ../user/info.php:56
-msgid "These other projects are not associated with %1, and we cannot vouch for their security practices or the nature of their research. Join them at your own risk."
-msgstr "Estes projectos não estão associados com %1, e não podemos garantir a natureza de práticas seguras nas suas pesquisas. Junte-se a eles por sua conta e risco. "
-
-#: ../user/language_select.php:41
-msgid "Language selection"
-msgstr "Selecção de linguagem"
-
-#: ../user/language_select.php:68
-msgid "This web site is available in several languages. The currently selected language is %1."
-msgstr "Este website está disponível em várias linguagens. A linguagem seleccionada actualmente é %1."
-
-#: ../user/language_select.php:73
-msgid "Normally the choice of language is determined by your browser's language setting, which is: %1.  You can change this setting using:"
-msgstr "Normalmente a escolha da linguagem é determinada pela definição de linguagem do seu navegador, que é: %1. Pode alterar esta definição usando:"
-
-#: ../user/language_select.php:78
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Ferramentas/Opções/Geral"
-
-#: ../user/language_select.php:80
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Ferramentas/Opções da Internet/Linguagens"
-
-#: ../user/language_select.php:84
-msgid "Or you can select a language by clicking on one of the links.  This will send your browser a cookie; make sure your browser accepts cookies from our domain."
-msgstr "Ou pode seleccionar a linguagem carregando num destes links. Isto irá enviar um cookie para o seu navegador; confirme que o seu navegador aceita cookies do nosso domínio."
-
-#: ../user/language_select.php:90
-msgid "Language name (click to select)"
-msgstr "Nome da linguagem (carregue para seleccionar)"
-
-#: ../user/language_select.php:92
-msgid "Use browser language setting"
-msgstr "Use as definições do navegador"
-
-#: ../user/language_select.php:108
-msgid "Translations are done by volunteers.  If your native language is not here, %1you can provide a translation%2."
-msgstr "As traduções são feitas por voluntários. Se a sua lingua não está aqui, %1 pode providenciar a tradução%2."
-
-#: ../user/pm.php:68
-msgid "Your message has been sent."
-msgstr "A sua mensagem foi enviada."
-
-#: ../user/pm.php:78
-msgid "You have no private messages."
-msgstr "Não tem mensagens privadas."
-
-#: ../user/pm.php:85
-msgid "Sender and date"
-msgstr "Remetente e data"
-
-#: ../user/pm.php:102
-#: ../user/pm.php:142
-msgid "Reply"
-msgstr "Responder"
-
-#: ../user/pm.php:113
-msgid "Delete selected messages"
-msgstr "Apagar mensagens seleccionadas"
-
-#: ../user/pm.php:136
-msgid "Sender"
-msgstr "Remetente"
-
-#: ../user/pm.php:139
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:179
-msgid "You need to fill all fields to send a private message"
-msgstr "Tem que preencher todos os campos para enviar uma mensagem privada"
-
-#: ../user/pm.php:199
-msgid "Could not find user with id %1"
-msgstr "Não foi possivel encontrar o utilizador com o id %1"
-
-#: ../user/pm.php:204
-msgid "Could not find user with username %1"
-msgstr "Não foi possivel encontrar o utilizador com o nome de utilizador %1"
-
-#: ../user/pm.php:206
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 não é um nome de utilizador unico; terá que usar o ID do utilizador"
-
-#: ../user/pm.php:211
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "O utilizador %1 (ID: %2) não está a aceitar mensagens privadas suas."
-
-#: ../user/pm.php:234
-msgid "Really block %1?"
-msgstr "Bloquear %1?"
-
-#: ../user/pm.php:235
-msgid "Are you really sure you want to block user %1 from sending you private messages?"
-msgstr "Tem a certeza que quer bloquear o utilizador %1 de lhe enviar mensagens privadas?"
-
-#: ../user/pm.php:236
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Tenha em atenção que só pode bloquear um número limitado de utilizadores."
-
-#: ../user/pm.php:237
-msgid "Once the user has been blocked you can unblock it using forum preferences page."
-msgstr "Assim que o utilizador for bloqueado, só o pode desbloquear usando a página de preferências do fórum."
-
-#: ../user/pm.php:243
-msgid "Add user to filter"
-msgstr "Adicionar utilizador ao filtro"
-
-#: ../user/pm.php:244
-msgid "No, cancel"
-msgstr "Não, cancelar"
-
-#: ../user/pm.php:255
-msgid "User %1 blocked"
-msgstr "Utilizador %1 bloqueado"
-
-#: ../user/pm.php:257
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "O utilizador %1 foi bloqueado de lhe enviar mensagens privadas."
-
-#: ../user/pm.php:258
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Para desbloquear, visite a %1mensagem nas preferências do fórum%2"
-
-#: ../user/prefs.php:33
-msgid "preferences"
-msgstr "preferências"
-
-#: ../user/prefs.php:36
-msgid ""
-"Your preferences have been updated. Client-related preferences\n"
-"\t      will take effect when your computer communicates with %1\n"
-"\t      or you issue the %2Update%3 command from the BOINC client."
-msgstr ""
-"As suas preferências foram actualizadas. Preferências relacionadas com o cliente\n"
-"\t     terão efeito quando o seu computador comunicar com %1\n"
-"\t     ou executar o comando %2Actualizar%3 a partir do cliente BOINC."
-
-#: ../user/prefs_edit.php:72
-#: ../user/prefs_edit.php:101
-msgid "%1 for %2"
-msgstr "%1 para %2"
-
-#: ../user/prefs_edit.php:119
-msgid "Back to preferences"
-msgstr "Voltar às preferências"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Confirmar apagar preferências"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Tem a certeza que quer apagar as suas %1preferências separadas para %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Remover preferências"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: ../user/profile_menu.php:33
-#: ../user/sample_index.php:68
-msgid "Profiles"
-msgstr "Perfis"
-
-#: ../user/profile_menu.php:36
-msgid "%1Profiles%2 let individuals share backgrounds and opinions with the %3 community."
-msgstr "%1Perfis%2 permitem partilhas individuais dos fundos e opiniões com a %3 comunidade."
-
-#: ../user/profile_menu.php:37
-msgid "Explore the diversity of your fellow volunteers, and contribute your own views for others to enjoy."
-msgstr "Explore a diversidade dos seus colegas voluntários, e contribua com os seus pontos de vista para que os outros apreciem."
-
-#: ../user/profile_menu.php:38
-msgid "If you haven't already, you can %1create your own user profile%2 for others to see!"
-msgstr "Se ainda não tem, pode %1criar o seu próprio perfil%2 para que outros possam vê-lo!"
-
-#: ../user/profile_menu.php:43
-msgid "User of the Day"
-msgstr "Utilizador do Dia"
-
-#: ../user/profile_menu.php:56
-msgid "User Profile Explorer"
-msgstr "Explorador do Perfil de Utilizador"
-
-#: ../user/profile_menu.php:59
-msgid "View the %1User Picture Gallery%2."
-msgstr "Ver a %1Galeria de Imagens do Utilizador%2."
-
-#: ../user/profile_menu.php:60
-msgid "Browse profiles %1by country%2."
-msgstr "Procurar os perfis %1por país%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random without pictures%2."
-msgstr "Mostrar perfis %1ao acaso%2, %3 ao acaso com imagens%2, ou %4ao acaso sem imagens%2."
-
-#: ../user/profile_menu.php:65
-msgid "Alphabetical profile listings:"
-msgstr "Listagem alfabética de perfis:"
-
-#: ../user/profile_menu.php:71
-msgid "Search profile text"
-msgstr "Procurar perfil por texto"
-
-#: ../user/profile_menu.php:96
-msgid "No profiles"
-msgstr "Sem perfis"
-
-#: ../user/profile_menu.php:97
-msgid "No profiles matched your query."
-msgstr "Não existem perfis que correspondam ao seu critério."
-
-#: ../user/profile_rate.php:27
-msgid "Invalid vote type:"
-msgstr "Tipo de voto inválido:"
-
-#: ../user/profile_rate.php:32
-msgid "Vote Recorded"
-msgstr "Voto Gravado"
-
-#: ../user/profile_rate.php:36
-msgid "Thank you"
-msgstr "Obrigado"
-
-#: ../user/profile_rate.php:39
-msgid "Your recommendation has been recorded."
-msgstr "A sua recomendação foi gravada."
-
-#: ../user/profile_rate.php:41
-msgid "Your vote to reject this profile has been recorded."
-msgstr "O seu voto para rejeitar este perfil foi gravado."
-
-#: ../user/profile_rate.php:44
-msgid "Return to profile."
-msgstr "Regressar ao perfil."
-
-#: ../user/result.php:28
-msgid "No such task"
-msgstr "Não existe tal tarefa"
-
-#: ../user/result.php:30
-msgid "Task %1"
-msgstr "Tarefa %1"
-
-#: ../user/results.php:27
-msgid "This feature is turned off temporarily"
-msgstr "Esta funcionalidade está temporariamente desabilitada"
-
-#: ../user/results.php:46
-msgid "No computer with ID %1 found"
-msgstr "Computador não encontrado com o ID %1"
-
-#: ../user/results.php:52
-msgid "No access"
-msgstr "Sem acesso"
-
-#: ../user/results.php:57
-msgid "Missing user ID or host ID"
-msgstr "Utilizador desaparecido ou host ID"
-
-#: ../user/results.php:85
-msgid "No tasks to display"
-msgstr "Sem tarefas para mostrar"
-
-#: ../user/sample_index.php:130
-msgid "User of the day"
-msgstr "Utilizador do dia"
-
-#: ../user/show_user.php:91
-msgid "Account data for %1"
-msgstr "Dados da conta para %1"
-
-#: ../user/stats.php:23
-msgid "Statistics and leaderboards"
-msgstr "Estatísticas e líderes"
-
-#: ../user/stats.php:27
-msgid "Statistics for %1"
-msgstr "Estatísticas para %1"
-
-#: ../user/stats.php:29
-#: ../user/top_users.php:114
-msgid "Top participants"
-msgstr "Top participantes"
-
-#: ../user/stats.php:30
-msgid "Top computers"
-msgstr "Top computadores"
-
-#: ../user/stats.php:31
-#: ../user/team.php:43
-msgid "Top teams"
-msgstr "Top equipas"
-
-#: ../user/stats.php:35
-msgid "More detailed statistics for %1 and other BOINC-based projects are available at several web sites:"
-msgstr "Mais estatísticas detalhadas para %1 e outros projectos relacionados com o BOINC estão disponíveis em vários websites:"
-
-#: ../user/stats.php:38
-msgid "You can also get your current statistics in the form of a \"signature image\":"
-msgstr "Pode também obter as suas estatísticas actuais no formato de uma \"signature image\":"
-
-#: ../user/stats.php:41
-msgid "Additionally you can get your individual statistics summed across all BOINC projects from several sites; see your %1home page%2."
-msgstr "Adicionalmente pode obter as suas estatísticas individuais resumidas através de todos os projectos BOINC de vários sitios; veja a sua %1pagina principal%2."
-
-#: ../user/team.php:25
-msgid "%1 participants may form %2teams%3"
-msgstr "%1 participantes podem formar %2equipas%3"
-
-#: ../user/team.php:27
-msgid "You may belong to only one team. You can join or quit a team at any time."
-msgstr "Só pode pertencer a uma equipa. Pode juntar-se ou sair duma equipa a qualquer altura."
-
-#: ../user/team.php:29
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Cada equipa tem um %1fundador%2 que pode:"
-
-#: ../user/team.php:31
-msgid "access team members' email addresses"
-msgstr "aceder aos endereços de email dos membros da equipa"
-
-#: ../user/team.php:32
-msgid "edit the team's name and description"
-msgstr "editar o nome da equipa e descrição"
-
-#: ../user/team.php:33
-msgid "remove members from the team"
-msgstr "remover membros da equipq"
-
-#: ../user/team.php:34
-msgid "disband a team if it has no members"
-msgstr "acabar com a equipa se esta não tiver membros"
-
-#: ../user/team.php:37
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Para se juntar a uma equipa, "
-
-#: ../user/team.php:38
-#: ../user/team_search.php:155
-msgid "Find a team"
-msgstr "Encontrar uma equipa"
-
-#: ../user/team.php:45
-msgid "All teams"
-msgstr "Todas as equipas"
-
-#: ../user/team.php:49
-msgid "%1 teams"
-msgstr "%1 equipas"
-
-#: ../user/team.php:55
-msgid "Create a new team"
-msgstr "Criar uma nova equipa"
-
-#: ../user/team.php:56
-msgid "If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Se não encontrar uma equipa que seja adequada a si, pode %1criar uma equipa%2."
-
-#: ../user/team_admins.php:32
-msgid "Remove Team Admin status from this member"
-msgstr "Remover privilégios de administração da equipa deste membro"
-
-#: ../user/team_admins.php:38
-#: ../user/team_admins.php:49
-msgid "Add or remove Team Admins"
-msgstr "Adicionar ou remover Administradores da Equipa"
-
-#: ../user/team_admins.php:39
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Pode seleccionar membros como 'Administradores da Equipa'. Administradores da Equipa podem:"
-
-#: ../user/team_admins.php:41
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Editar informação da equipa (nome, URL, descrição, país)"
-
-#: ../user/team_admins.php:42
-msgid "View the team's join/quit history"
-msgstr "Ver a história da equipa de quem se juntou/saiu"
-
-#: ../user/team_admins.php:43
-msgid "Moderate the team forum, if any (admins get email notification of moderation events and red X reports)"
-msgstr "Modere o forum da equipa, se existir (administradores recebem notificações por email de eventos de moderação)"
-
-#: ../user/team_admins.php:45
-msgid "Team Admins cannot:"
-msgstr "Administradores da Equipa não podem:"
-
-#: ../user/team_admins.php:47
-msgid "Change the team founder"
-msgstr "Mudar o fundador da equipa"
-
-#: ../user/team_admins.php:48
-#: ../user/team_manage.php:52
-msgid "Remove members"
-msgstr "Remover membros"
-
-#: ../user/team_admins.php:51
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Se um Administrador da Equipa sair da mesma, deixam de ser um Administrador da Equipa."
-
-#: ../user/team_admins.php:52
-msgid "We recommend that you select only people you know and trust very well as Team Admins."
-msgstr "Recomendados que só seleccione pessoas para Administradores da Equipa que conheça e tenha confiança."
-
-#: ../user/team_admins.php:57
-msgid "There are currently no Team Admins"
-msgstr "Actualmente não existem Administradores da Equipa"
-
-#: ../user/team_admins.php:59
-msgid "Current Team Admins"
-msgstr "Administradores da Equipa Actuais"
-
-#: ../user/team_admins.php:60
-msgid "Became Team Admin on"
-msgstr "Torne a opção de Administrador da Equipa activada"
-
-#: ../user/team_admins.php:75
-msgid "Add Team Admin"
-msgstr "Adicionar Administrador da Equipa"
-
-#: ../user/team_admins.php:76
-msgid "Email address of team member:"
-msgstr "Endereço de email do membro da equipa:"
-
-#: ../user/team_admins.php:88
-msgid "failed to remove admin"
-msgstr "falhou a remoção do administrador"
-
-#: ../user/team_admins.php:95
-msgid "no such user"
-msgstr "não existe tal utilizador"
-
-#: ../user/team_admins.php:96
-msgid "User is not member of team"
-msgstr "O utilizador não é membro da equipa"
-
-#: ../user/team_admins.php:98
-msgid "%1 is already an admin of %2"
-msgstr "%1 já é um administrador de %2"
-
-#: ../user/team_admins.php:102
-msgid "Couldn't add admin"
-msgstr "Não foi possivel adicionar administrador"
-
-#: ../user/team_admins.php:108
-#: ../user/team_quit_form.php:28
-#: ../user/team_remove_inactive_action.php:26
-msgid "No such team"
-msgstr "Não existe essa equipa"
-
-#: ../user/team_change_founder_action.php:28
-#: ../user/team_change_founder_form.php:31
-#: ../user/team_display.php:67
-#: ../user/team_edit_action.php:28
-#: ../user/team_edit_form.php:27
-#: ../user/team_email_list.php:52
-#: ../user/team_forum.php:156
-#: ../user/team_manage.php:83
-msgid "no such team"
-msgstr "não existe essa equipa"
-
-#: ../user/team_change_founder_action.php:36
-msgid "User is not a member of %1"
-msgstr "O utilizador não é membro de %1"
-
-#: ../user/team_change_founder_action.php:39
-msgid "Changing founder of %1"
-msgstr "Mudando fundador de %1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "%1 is now founder of %2"
-msgstr "%1 é agora fundador de %2"
-
-#: ../user/team_change_founder_form.php:35
-msgid "Change founder of %1"
-msgstr "Mudar fundador de %1"
-
-#: ../user/team_change_founder_form.php:41
-msgid "Team member %1 requested this team's foundership on %2, but left the team, thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:47
-msgid "Team member %1 has requested this team's foundership. This may be because you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:53
-msgid "decline request"
-msgstr "declinar pedido"
-
-#: ../user/team_change_founder_form.php:56
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr ""
-"Se não declinar o pedido por %1, 2% terá a opção de assimir a liderança da equipa.<br/><br/>\n"
-"                  Para aceitar o pedido, atribua a liderança a %3 usando o formulário abaixo."
-
-#: ../user/team_change_founder_form.php:64
-msgid "No transfer request is pending."
-msgstr "Não existe pedido de transferência pendente."
-
-#: ../user/team_change_founder_form.php:67
-msgid "To assign foundership of this team to another member, check the box next to member name and click <strong>Change founder</strong> below."
-msgstr "Para atribuir a liderança desta equipa a outro membro, assinale a caixa a seguir ao membro e clique <strong>Mudar fundador</strong>em baixo"
-
-#: ../user/team_change_founder_form.php:74
-msgid "New founder?"
-msgstr "Novo fundador?"
-
-#: ../user/team_change_founder_form.php:103
-#: ../user/team_manage.php:54
-msgid "Change founder"
-msgstr "Mudar fundador"
-
-#: ../user/team_create_action.php:27
-msgid "You must choose a non-blank team name"
-msgstr "Não pode escolher um nome de equipa em branco"
-
-#: ../user/team_create_action.php:32
-msgid "A team named %1 already exists - try another name"
-msgstr "Uma equipa chamada %1 já existe - tente outro nome"
-
-#: ../user/team_create_action.php:52
-msgid "Could not create team - please try later."
-msgstr "Não foi possivel criar a equipa - por favor tente mais tarde."
-
-#: ../user/team_create_form.php:25
-#: ../user/team_create_form.php:30
-msgid "Create a team"
-msgstr "Criar uma equipa"
-
-#: ../user/team_create_form.php:28
-msgid "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Pertence a %1. Tem que %2deixar esta equipa%3 antes de criar uma nova."
-
-#: ../user/team_delta.php:64
-msgid "Not founder or admin"
-msgstr "Não é fundador ou administrador"
-
-#: ../user/team_delta.php:71
-msgid "Team history for %1"
-msgstr "História da equipa para %1"
-
-#: ../user/team_delta.php:74
-msgid "When"
-msgstr "Quando"
-
-#: ../user/team_delta.php:75
-msgid "User"
-msgstr "Utilizador"
-
-#: ../user/team_delta.php:76
-msgid "Action"
-msgstr "Acção"
-
-#: ../user/team_delta.php:77
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:57
-msgid "The name '%1' is being used by another team."
-msgstr "O nome '%1' já está em uso por outra equipa."
-
-#: ../user/team_edit_action.php:60
-msgid "Must specify team name"
-msgstr "Tem que especificar um nome para a equipa"
-
-#: ../user/team_edit_action.php:88
-msgid "Could not update team - please try again later."
-msgstr "Não foi possivel actualizar a equipa - por favor tente mais tarde."
-
-#: ../user/team_edit_form.php:31
-msgid "Edit %1"
-msgstr "Editar %1"
-
-#: ../user/team_edit_form.php:32
-msgid "Update team info"
-msgstr "Actualizar informações da equipa"
-
-#: ../user/team_email_list.php:58
-msgid "%1 Email List"
-msgstr "%1 Lista de Emails"
-
-#: ../user/team_email_list.php:60
-msgid "Member list of %1"
-msgstr "Lista de Membros de %1"
-
-#: ../user/team_email_list.php:75
-msgid "Show as plain text"
-msgstr "Mostrar como texto simples"
-
-#: ../user/team_forum.php:26
-#: ../user/team_forum.php:37
-msgid "Create Message Board"
-msgstr "Criar Mensagem no Fórum"
-
-#: ../user/team_forum.php:27
-msgid "You may create a message board for use by %1."
-msgstr "Pode criar um fórum para uso por %1."
-
-#: ../user/team_forum.php:29
-msgid "Only team members will be able to post."
-msgstr "Apenas membros da equipa podem postar."
-
-#: ../user/team_forum.php:30
-msgid "At your option, only members will be able to read."
-msgstr "Por sua opção, apenas membros poderão ler."
-
-#: ../user/team_forum.php:31
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Você e os Administradores da Equipa terão privilégios de moderação."
-
-#: ../user/team_forum.php:38
-msgid "Create a message board for %1"
-msgstr "Criar um fórum para %1"
-
-#: ../user/team_forum.php:46
-msgid "Team already has a message board"
-msgstr "A equipa já tem um fórum"
-
-#: ../user/team_forum.php:51
-msgid "couldn't create message board"
-msgstr "não foi possivel criar um fórum"
-
-#: ../user/team_forum.php:57
-msgid "Team Message Board"
-msgstr "Fórum de Equipa"
-
-#: ../user/team_forum.php:66
-msgid "Discussion among members of %1"
-msgstr "Discussão entre membros de %1"
-
-#: ../user/team_forum.php:69
-msgid "Minimum time between posts (seconds)"
-msgstr "Tempo minímo entres posts (segundos)"
-
-#: ../user/team_forum.php:72
-msgid "Minimum total credit to post"
-msgstr "Total de créditos minímos para postar"
-
-#: ../user/team_forum.php:75
-msgid "Minimum average credit to post"
-msgstr "Média de créditos minímos para postar"
-
-#: ../user/team_forum.php:78
-msgid "Submit"
-msgstr "Submeter"
-
-#: ../user/team_forum.php:87
-msgid "Remove your team's message board."
-msgstr "Remover o fórum da sua equipa."
-
-#: ../user/team_forum.php:95
-msgid "Really remove message board?"
-msgstr "Remover de certeza o fórum?"
-
-#: ../user/team_forum.php:96
-msgid "Are you sure you want to remove your team's message board? All threads and posts will be permanently removed. (You may, however, create a new message board later)."
-msgstr "Tem a certeza que quer remover o fórum da sua equipa. Todos os tópicos e posts serão permanentemente removidos. (Pode, no entanto, criar um novo fórum mais tarde)."
-
-#: ../user/team_forum.php:98
-msgid "Yes - remove message board"
-msgstr "Sim - remover fórum"
-
-#: ../user/team_forum.php:105
-msgid "message board not found"
-msgstr "fórum não encontrado"
-
-#: ../user/team_forum.php:119
-msgid "Message board removed"
-msgstr "Fórum removido"
-
-#: ../user/team_forum.php:120
-msgid "Your teams message board has been removed. You may now %1create a new one%2."
-msgstr "O fórum da sua equipa foi removido. Pode agora %1criar um novo%2."
-
-#: ../user/team_forum.php:120
-msgid "<p>"
-msgstr "<p>"
-
-#: ../user/team_forum.php:135
-msgid "Team Message Board Updated"
-msgstr "Fórum da Equipa Actualizado"
-
-#: ../user/team_forum.php:136
-msgid "Update successful"
-msgstr "Actualização com sucesso"
-
-#: ../user/team_forum.php:139
-msgid "Update failed"
-msgstr "Actualização falhada"
-
-#: ../user/team_forum.php:146
-msgid "team has no forum"
-msgstr "a equipa não tem fórum"
-
-#: ../user/team_forum.php:181
-msgid "no such forum"
-msgstr "não existe tal fórum"
-
-#: ../user/team_forum.php:192
-msgid "unknown command %1"
-msgstr "comando desconhecido %1"
-
-#: ../user/team_founder_transfer_action.php:34
-msgid "You must be a member of a team to access this page."
-msgstr "Tem que ser um membro de uma equipa para aceder a esta página."
-
-#: ../user/team_founder_transfer_action.php:88
-msgid "Requesting foundership of %1"
-msgstr "Pedindo liderança de %1"
-
-#: ../user/team_founder_transfer_action.php:96
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr ""
-"O fundador actual foi notificado para o seu pedido por email e mensagem privada.<br/><br/>\n"
-"                      Se o fundador não responder num prazo de 60 dias, terá permissão para se tornar o fundador."
-
-#: ../user/team_founder_transfer_action.php:100
-#: ../user/team_founder_transfer_action.php:111
-msgid "Foundership request not allowed now"
-msgstr "Pedido de liderança não permitido agora"
-
-#: ../user/team_founder_transfer_action.php:107
-msgid "Assumed foundership of %1"
-msgstr "Assumir liderança de %1"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Congratulations, you are now the founder of team %1. Go to %2Your Account page%3 to find the Team Admin options."
-msgstr "Parabéns, é agora o fundador da equipa %1. Vá à %2Página da sua Conta%3 para verificar as opções de Administração da Equipa."
-
-#: ../user/team_founder_transfer_action.php:118
-msgid "Decline founder change request"
-msgstr "Declinar pedido de mudança de fundador"
-
-#: ../user/team_founder_transfer_action.php:125
-msgid "The foundership request from %1 has been declined."
-msgstr "O pedido de liderança de %1 foi declinado."
-
-#: ../user/team_founder_transfer_action.php:128
-msgid "There were no foundership requests."
-msgstr "Não existem pedidos de liderança."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "undefined action %1"
-msgstr "acção indefinida %1"
-
-#: ../user/team_founder_transfer_action.php:135
-#: ../user/team_founder_transfer_form.php:81
-msgid "Return to team page"
-msgstr "Regressar à página da equipa"
-
-#: ../user/team_founder_transfer_form.php:26
-msgid "You need to be a member of a team to access this page."
-msgstr "Tem que ser um membro duma equipa para aceder a esta página."
-
-#: ../user/team_founder_transfer_form.php:29
-msgid "Request foundership of %1"
-msgstr "Solicitar liderança de %1"
-
-#: ../user/team_founder_transfer_form.php:36
-msgid "You are now founder of team %1."
-msgstr "É agora o fundador da equipa %1."
-
-#: ../user/team_founder_transfer_form.php:42
-msgid "You requested the foundership of %1 on %2."
-msgstr "Solicitou a liderança de %1 em %2"
-
-#: ../user/team_founder_transfer_form.php:45
-msgid "60 days have elapsed since your request, and the founder has not responded. You may now assume foundership by clicking here:"
-msgstr "60 dias passaram desde o seu pedido e o fundador não respondeu. Pode agora assumir a liderança carreganda aqui:"
-
-#: ../user/team_founder_transfer_form.php:48
-msgid "Assume foundership"
-msgstr "Assumir liderança"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "The founder was notified of your request. If he/she does not respond by %1 you will be given an option to become founder."
-msgstr "O fundador foi notificado do seu pedido. Se ele/ela não responder por %1 ser-lhe-á dada a opção de se tornar fundador."
-
-#: ../user/team_founder_transfer_form.php:58
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-"Se o fundador da equipa não está activo e quiser assumir o papel de fundador, carregue no botão em baixo. Será enviado um email detalhado ao fundador actual com o seu pedido, e o mesmo poderá transferir-lhe a liderança ou declinar o seu pedido. Se o fundador não responder num prazo de 60 dias,  terá permissão para se tornar o fundador.<br/><br/>\n"
-"                       Tem a certeza que quer solicitar a liderança?"
-
-#: ../user/team_founder_transfer_form.php:63
-msgid "Request foundership"
-msgstr "Pedir liderança"
-
-#: ../user/team_founder_transfer_form.php:72
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "A alteração de fundador já foi solicitada por %1 em %2."
-
-#: ../user/team_founder_transfer_form.php:75
-msgid "A foundership change was requested during the last 90 days, so new requests are not allowed. Please try again later."
-msgstr "Uma mudança de liderança foi solicitada durante os ultimos 90 dias, por isso novos pedidos não são permitidos. Por favor, tente mais tarde."
-
-#: ../user/team_join.php:30
-#: ../user/team_join_action.php:30
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:33
-#: ../user/team_join_action.php:33
-msgid "Already a member"
-msgstr "Já é membro"
-
-#: ../user/team_join.php:34
-#: ../user/team_join_action.php:34
-msgid "You are already a member of %1."
-msgstr "Já é membro de %1"
-
-#: ../user/team_join.php:40
-#: ../user/team_join_action.php:41
-msgid "Couldn't join team - please try again later."
-msgstr "Não foi possivel se juntar à equipa - por favor tente mais tarde."
-
-#: ../user/team_join_action.php:38
-msgid "Joined %1"
-msgstr "Juntou-se a %1"
-
-#: ../user/team_join_action.php:39
-msgid "You have joined %1."
-msgstr "Juntou-se a %1"
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Juntar %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr "Por favor tenha atenção:"
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Juntar-se a uma equipa dá ao fundador acesso ao seu endereço de email."
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr "Juntar-se a uma equipa não afecta os créditos da sua conta."
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr "Juntar a equipa"
-
-#: ../user/team_lookup.php:62
-msgid "Search Results"
-msgstr "Resultados da Procura"
-
-#: ../user/team_lookup.php:64
-msgid "Search results for '%1'"
-msgstr "Procurar resultados para '%1'"
-
-#: ../user/team_lookup.php:66
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Pode ver os membros, estatísticas e informações das equipas."
-
-#: ../user/team_lookup.php:75
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Mais de 100 equipas correspondem à sua procura. Os primeiros são são mostrados."
-
-#: ../user/team_lookup.php:79
-msgid ""
-"End of results<br>\n"
-"         If you cannot find the team you are looking for, you may %1create a team%2 by yourself."
-msgstr ""
-"Fim dos resultados<br>\n"
-"        Se não conseguiu encontrar a equipa que procurava, pode %1criar uma equipa%2 ."
-
-#: ../user/team_manage.php:24
-msgid "Team administration for %1"
-msgstr "Administrador da equipa para %1"
-
-#: ../user/team_manage.php:27
-msgid "Edit team info"
-msgstr "Editar informação da equipa"
-
-#: ../user/team_manage.php:28
-msgid "Change team name, URL, description, type, or country"
-msgstr "Mudar nome da equipa, URL, descrição, tipo ou país"
-
-#: ../user/team_manage.php:30
-msgid "Member list:"
-msgstr "Lista de membros"
-
-#: ../user/team_manage.php:31
-#: ../user/team_manage.php:35
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:32
-msgid "text"
-msgstr "texto"
-
-#: ../user/team_manage.php:33
-msgid "View member names and email addresses"
-msgstr "Ver nomes dos membros e endereços de email"
-
-#: ../user/team_manage.php:34
-msgid "View change history:"
-msgstr "Ver historial de mudanças:"
-
-#: ../user/team_manage.php:36
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:37
-msgid "See when members joined or quit this team"
-msgstr "Ver quando os membros se juntaram ou sairam da equipa"
-
-#: ../user/team_manage.php:48
-msgid "Respond to foundership request."
-msgstr "Responder ao pedido de liderança."
-
-#: ../user/team_manage.php:48
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Se não responder por %1, %2 pode assumir a liderança desta equipa."
-
-#: ../user/team_manage.php:53
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Remover membros inactivos ou indesejáveis desta equipa"
-
-#: ../user/team_manage.php:55
-msgid "Transfer foundership to another member"
-msgstr "Transferir liderança para outro membro"
-
-#: ../user/team_manage.php:56
-msgid "Add/remove Team Admins"
-msgstr "Adicionar/remover Administradores da Equipa"
-
-#: ../user/team_manage.php:57
-msgid "Give selected team members Team Admin privileges"
-msgstr "Dar aos membros seleccionados privilégios de Administração da Equipa"
-
-#: ../user/team_manage.php:59
-msgid "Remove team"
-msgstr "Remover equipa"
-
-#: ../user/team_manage.php:60
-msgid "Allowed only if team has no members"
-msgstr "Permitido apenas se a equipa não tiver membros"
-
-#: ../user/team_manage.php:62
-msgid "Create or manage a team message board"
-msgstr "Criar ou gerir um fórum da equipa"
-
-#: ../user/team_manage.php:69
-msgid "To have this team created on all BOINC projects (current and future) you can make it into a %1BOINC-wide team%2."
-msgstr "Para ter esta equipa criada em todos os projectos BOINC (agora e futuramente) pode criá-la numa %1equipa ampla do BOINC%2."
-
-#: ../user/team_manage.php:71
-msgid "Team admins are encouraged to join and participate in the Google %1boinc-team-founders%2 group."
-msgstr "Administradores de Equipa são encorajados a juntar-se e participar no grupo %1fundadores de equipas do boinc%2 no Google."
-
-#: ../user/team_manage.php:73
-msgid "Other resources for BOINC team admins are available from a third-party site, %1www.boincteams.com%2."
-msgstr "Outros recursos para Administradores de Equipa do BOINC estão disponíveis num site de terceiro, %1www.boincteams.com%2."
-
-#: ../user/team_manage.php:89
-msgid "Can't delete non-empty team"
-msgstr "Não é possivel apagar uma equipa não vazia"
-
-#: ../user/team_manage.php:93
-msgid "Team %1 deleted"
-msgstr "Equipa %1 apagada"
-
-#: ../user/team_members.php:33
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limite excedido: Só possivel mostrar os primeiros 1000 membros."
-
-#: ../user/team_members.php:43
-msgid "Members of %1"
-msgstr "Membros de %1"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "Não foi possivel sair da equipa"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "A equipa não existe ou não pertence à mesma."
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "Sair %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Tenha em atenção antes de sair de uma equipa:</strong>\n"
-"         <ul>\n"
-"         <li>Se sair de uma equipa, pode mais tarde se juntar novamente, ou juntar-se a outra equipa que deseja\n"
-"         <li>Sair de uma equipa não afecta de maneira nenhuma os seus créditos pessoais.\n"
-"         </ul>"
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Sair da Equipa"
-
-#: ../user/team_remove_inactive_action.php:29
-msgid "Removing users from %1"
-msgstr "Removendo utilizadores de %1"
-
-#: ../user/team_remove_inactive_action.php:37
-msgid "%1 is not a member of %2"
-msgstr "%1 não é membro de %2"
-
-#: ../user/team_remove_inactive_action.php:40
-msgid "%1 has been removed"
-msgstr "%1 foi removido"
-
-#: ../user/team_remove_inactive_form.php:30
-msgid "Remove members from %1"
-msgstr "Remover membros de %1"
-
-#: ../user/team_remove_inactive_form.php:37
-msgid "Remove?"
-msgstr "Remover?"
-
-#: ../user/team_remove_inactive_form.php:38
-msgid "Name (ID)"
-msgstr "Nome (ID)"
-
-#: ../user/team_remove_inactive_form.php:63
-msgid "No members are eligible for removal."
-msgstr "Nenhum membro está qualificado para remoção."
-
-#: ../user/team_remove_inactive_form.php:66
-msgid "Remove users"
-msgstr "Remover utilizadores"
-
-#: ../user/team_search.php:65
-msgid "Team name"
-msgstr "Nome da equipa"
-
-#: ../user/team_search.php:127
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Não foram encontradas equipas correspondentes aos seus critérios de pesquisa. Tenta outra pesquisa."
-
-#: ../user/team_search.php:129
-msgid "Or you can %1create a new team%2."
-msgstr "Ou pode %1criar uma nova equipa%2."
-
-#: ../user/team_search.php:133
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-"As seguintes equipas correspondem a um ou mais critérios da sua pesquisa.\n"
-"           Para se juntar a uma equipa, carregye no seu nome para ir á página da equipa,\n"
-"               depois carregue em %1Juntar a esta equipa%2."
-
-#: ../user/team_search.php:140
-msgid "Change your search"
-msgstr "Mudar a sua procura"
-
-#: ../user/team_search.php:152
-msgid "Team search results"
-msgstr "Resultados da procura de equipas"
-
-#: ../user/team_search.php:156
-msgid "You can team up with other people with similar interests, or from the same country, company, or school."
-msgstr "POde-se juntar com outras pessoas com interesses similares, ou do mesmo país, companhia ou escola."
-
-#: ../user/team_search.php:158
-msgid "Use this form to find teams that might be right for you."
-msgstr "Use este formulário para encontrar equipas que possam ser adequadas a si."
-
-#: ../user/team_search.php:163
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Não estou interessado%2 em juntar-me a uma equipa neste momento."
-
-#: ../user/top_hosts.php:65
-#: ../user/top_teams.php:98
-#: ../user/top_users.php:110
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limite excedido - Pedimos desculpa, os primeiros %1 items apenas"
-
-#: ../user/top_hosts.php:80
-msgid "Top hosts"
-msgstr "Top hosts"
-
-#: ../user/top_teams.php:103
-msgid "Top %1 teams"
-msgstr "Top %1 equipas"
-
-#: ../user/top_teams.php:106
-msgid "There are no %1 teams"
-msgstr "Não existem %1 equipas"
-
-#: ../user/top_users.php:62
-msgid "Participant since"
-msgstr "Participante desde"
-
-#: ../user/uotd.php:27
-msgid "No user of the day has been chosen."
-msgstr "Não foi escolhido utilizador do dia."
-
-#: ../user/uotd.php:31
-msgid "User of the Day for %1: %2"
-msgstr "Uitlizador do Dia para %1: %2"
-
-#: ../user/user_search.php:102
-#: ../user/user_search.php:158
-msgid "Joined"
-msgstr "Juntou-se"
-
-#: ../user/user_search.php:113
-msgid "Search type"
-msgstr "Tipo de procura"
-
-#: ../user/user_search.php:114
-msgid "User name starts with"
-msgstr "Nome de utilizador começa com"
-
-#: ../user/user_search.php:115
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:116
-msgid "Decreasing average credit"
-msgstr "Média de créditos por ordem decrescente"
-
-#: ../user/user_search.php:117
-msgid "Decreasing total credit"
-msgstr "Créditos totais por ordem descrescente"
-
-#: ../user/user_search.php:118
-msgid "Filters"
-msgstr "Filtros"
-
-#: ../user/user_search.php:119
-msgid "Any"
-msgstr "Qualquer"
-
-#: ../user/user_search.php:122
-msgid "With profile?"
-msgstr "Com perfil?"
-
-#: ../user/user_search.php:123
-#: ../user/user_search.php:128
-msgid "Either"
-msgstr "Também"
-
-#: ../user/user_search.php:127
-msgid "On a team?"
-msgstr "Numa equipa?"
-
-#: ../user/user_search.php:146
-msgid "search string must be at least 3 characters"
-msgstr "procurar string que tenha no minímo 3 caracteres"
-
-#: ../user/user_search.php:156
-msgid "User names starting with"
-msgstr "Nomes de utilizador começando com"
-
-#: ../user/user_search.php:166
-msgid "No users match your search criteria."
-msgstr "Nenhum utilizador com o critéria da procura"
-
-#: ../user/user_search.php:186
-msgid "missing search type"
-msgstr "tipo de procura não encontrado"
-
-#: ../user/user_search.php:224
-msgid "User search results"
-msgstr "Resultados da procura de utilizador"
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Utilizador não encontrado!"
-
-#: ../user/userw.php:42
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Dados da Conta<br>para %1<br/>Tempo:"
-
-#: ../user/userw.php:46
-msgid "Team:"
-msgstr "Equipa:"
-
-#: ../user/userw.php:47
-msgid "Team TotCred:"
-msgstr "Créditos Totais da Equipa:"
-
-#: ../user/userw.php:48
-msgid "Team AvgCred:"
-msgstr "Média de Créditos da Equipa:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Equipa: Nenhuma"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Validar endereço de email do BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid "Please visit the following link to validate the email address of your %1 account:"
-msgstr "Por favor visite o seguinte link para validar o endereço de email da sua %1 conta:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Email de validação enviado"
-
-#: ../user/validate_email_addr.php:35
-msgid "An email has been sent to %1. Visit the link it contains to validate your email address."
-msgstr "Um email foi enviado para %1. Visite o link contido para validar o seu endereço de email."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Não existe tal utilizador."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Erro de dados no URL - não é possivel validar o endereço de email"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Actualização da base de dados falhada - por favor, tente mais tarde."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Validar endereço de email"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "O endereço de email da sua conta foi validado."
-
-#: ../user/view_profile.php:27
-msgid "This user has no profile"
-msgstr "Este utilizador não tem perfil"
-
-#: ../user/view_profile.php:44
-msgid "Profile: %1"
-msgstr "Perfil: %1"
-
-#: ../user/view_profile.php:53
-msgid "Account data"
-msgstr "Dados da conta"
-
-#: ../user/weak_auth.php:47
-msgid "Your 'weak account key' lets you attach computers to your account on this project, without giving the ability to log in to your account or to change it in any way."
-msgstr ""
-
-#: ../user/weak_auth.php:48
-msgid "This mechanism works only with projects that have upgraded their server software 7 Dec 2007 or later."
-msgstr "Este mecanismo só funciona com projectos que tenham feito o upgrade do software do seu servidor para 7 Dec 2007 ou mais tarde."
-
-#: ../user/weak_auth.php:49
-msgid "Your weak account key for this project is:"
-msgstr ""
-
-#: ../user/weak_auth.php:51
-msgid "To use your weak account key on a given host, find or create the 'account file' for this project. This file has a name of the form <b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid "Create this file if needed. Set its contents to:"
-msgstr "Crie este ficheiro se necessário. Defina o seu conteudo para:"
-
-#: ../user/weak_auth.php:60
-msgid "Your weak account key is a function of your password. If you change your password, your weak account key changes, and your previous weak account key becomes invalid."
-msgstr "A sua palavra fraca da conta é uma função da sua palavra-passe. Se mudar a palavra passe, a sua palavra fraca da conta muda e a sua palavra fraca da conta torna-se inválida."
-
-#: ../user/workunit.php:30
-msgid "can't find workunit"
-msgstr "não foi possivel encontrar unidade de trabalho"
-
-#: ../user/workunit.php:33
-msgid "Workunit %1"
-msgstr "Unidade de trabalho %1"
-
-#: ../user/workunit.php:37
-msgid "name"
-msgstr "nome"
-
-#: ../user/workunit.php:38
-msgid "application"
-msgstr "aplicação"
-
-#: ../user/workunit.php:39
-msgid "created"
-msgstr "criado"
-
-#: ../user/workunit.php:41
-msgid "canonical result"
-msgstr "resultado canónico"
-
-#: ../user/workunit.php:44
-msgid "granted credit"
-msgstr "crédito garantido"
-
-#: ../user/workunit.php:52
-msgid "Tasks in progress"
-msgstr "Tarefas em progresso"
-
-#: ../user/workunit.php:52
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:56
-msgid "initial replication"
-msgstr "replicação inicial"
-
-#: ../user/workunit.php:57
-msgid "max # of error/total/success tasks"
-msgstr "máximo # de erros/total/tarefas com sucesso"
-
-#: ../user/workunit.php:61
-msgid "errors"
-msgstr "erros"
-
-#: ../user/workunit.php:64
-msgid "validation"
-msgstr "validação"
-
-#: ../project.sample/project.inc:51
-msgid "Copyright"
-msgstr "Direitos de Autor"
-
-#: ../project.sample/project.inc:54
-msgid "Generated"
-msgstr "Gerado"
-
-#: ../project.sample/project.inc:88
-msgid "Your personal background."
-msgstr "O seu fundo pessoal"
-
-#: ../project.sample/project.inc:92
-msgid "Tell us about yourself. You could tell us where you're from, your age, occupation, hobbies, or anything else about yourself."
-msgstr "Fale-nos sobre si. Diga-nos de onde é, a sua idade, ocupação, passatempos ou algos mais sobre si."
-
-#: ../project.sample/project.inc:96
-msgid "Your opinions about %1"
-msgstr "As suas opiniões acerca de %1"
-
-#: ../project.sample/project.inc:100
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-"Diga-nos as suas opiniões acerca %1<ol>\n"
-"    <li>Porque executa %1?\n"
-"    <li>O seu ponto de vista acerca do projecto?\n"
-"    <li>Alguma sugestão?\n"
-"    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Esquema de cores para os gráficos"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "CPU máximo % para os gráficos%10... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Executar apenas as aplicações seleccionadas"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid "If no work for selected applications is available, accept work from other applications?"
-msgstr "Se não houver trabalho para as aplicações seleccionadas, aceitar trabalho de outras aplicações?"
-
-#: ../project.sample/project_specific_prefs.inc:80
-msgid "(all applications)"
-msgstr "(todas as aplicações)"
-
-#~ msgid "Last %1"
-#~ msgstr "Ultimo %1"
diff --git a/html/languages/translations/pt_BR.po b/html/languages/translations/pt_BR.po
new file mode 100644
index 0000000..1931f93
--- /dev/null
+++ b/html/languages/translations/pt_BR.po
@@ -0,0 +1,6656 @@
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# AndreiaBessa <andreiambessa at gmail.com>, 2016
+# Hecton Paulino Domingos <hectonpdomingos at gmail.com>, 2016
+# Igor Santander <killermigorc at gmail.com>, 2016
+# Pedro Motta <manomanpmm at gmail.com>, 2016
+# Túlio Villafañe <tuliovillafane at gmail.com>, 2016
+# Wiri Marcolan Kamei <wirimk at hotmail.com>, 2016-2017
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-14 22:50+0000\n"
+"Last-Translator: Wiri Marcolan Kamei <wirimk at hotmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/boinc/boinc/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "LANG_NAME_NATIVE"
+msgstr "LANG_NAME_NATIVE"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "LANG_NAME_INTERNATIONAL"
+
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Código do convite"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Um convite com código válido é requerido para criação de uma conta."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Nome"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Identifique-se em nosso site. Use seu nome real ou apelido."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "Endereço de E-mail."
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "É preciso ter um endereço válido do formulário 'nome at dominio'."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Senha"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Deve conter no mínimo %1 caractere"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Confirmar senha"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "País"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Selecione o país que você deseja representar."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Código postal ou CEP"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Opcional."
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Criar conta"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "E-mail:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "esqueceu o endereço de E-mail?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Senha:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "esqueceu a senha?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Continuar logado"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Iniciar sessão"
+
+#: html/inc/bbcode_html.inc:10
+msgid "Bold text: [b]text[/b]  (alt+b)"
+msgstr "Negrito: [b]text[/b] (alt+b)"
+
+#: html/inc/bbcode_html.inc:11
+msgid "Italic text: [i]text[/i]  (alt+i)"
+msgstr "Texto em itálico: [i]texto[/i] (alt+i)"
+
+#: html/inc/bbcode_html.inc:12
+msgid "Underline text: [u]text[/u]  (alt+u)"
+msgstr "Texto sublinhado: [u]texto[/u] (alt+u)"
+
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Texto riscado: [s]texto[/s] (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
+msgid "Quote text: [quote]text[/quote]  (alt+q)"
+msgstr "Citação: [quote]texto[/quote] (alt+q)"
+
+#: html/inc/bbcode_html.inc:15
+msgid "Code display: [code]code[/code]  (alt+c)"
+msgstr "Mostrar código: [code]código[/code] (alt+c)"
+
+#: html/inc/bbcode_html.inc:16
+msgid "List: [list]text[/list] (alt+l)"
+msgstr "Lista: [list]texto[/list] (alt+l)"
+
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Lista ordenada: [list=1]texto[/list] (alt+o)"
+
+#: html/inc/bbcode_html.inc:18
+msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
+msgstr "Inserir imagem: [img]http://url_da_imagem[/img] (alt+p)"
+
+#: html/inc/bbcode_html.inc:19
+msgid ""
+"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
+msgstr "Inserir URL: [url]http://url[/url] ou [url=http://url]Texto URL[/url] (alt+w)"
+
+#: html/inc/bbcode_html.inc:24
+msgid "Font color"
+msgstr "Cor da Fonte"
+
+#: html/inc/bbcode_html.inc:25
+msgid ""
+"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
+msgstr "Cor da fonte: [color=red]texto[/color] Dica: você também pode usar color=#FF0000"
+
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
+msgid "Default"
+msgstr "Padrão"
+
+#: html/inc/bbcode_html.inc:27
+msgid "Dark Red"
+msgstr "Vermelho Escuro"
+
+#: html/inc/bbcode_html.inc:28
+msgid "Red"
+msgstr "Vermelho"
+
+#: html/inc/bbcode_html.inc:29
+msgid "Orange"
+msgstr "Laranja"
+
+#: html/inc/bbcode_html.inc:30
+msgid "Brown"
+msgstr "Marrom"
+
+#: html/inc/bbcode_html.inc:31
+msgid "Yellow"
+msgstr "Amarelo"
+
+#: html/inc/bbcode_html.inc:32
+msgid "Green"
+msgstr "Verde"
+
+#: html/inc/bbcode_html.inc:33
+msgid "Olive"
+msgstr "Verde oliva"
+
+#: html/inc/bbcode_html.inc:34
+msgid "Cyan"
+msgstr "Ciano"
+
+#: html/inc/bbcode_html.inc:35
+msgid "Blue"
+msgstr "Azul"
+
+#: html/inc/bbcode_html.inc:36
+msgid "Dark Blue"
+msgstr "Azul Escuro"
+
+#: html/inc/bbcode_html.inc:37
+msgid "Indigo"
+msgstr "Indigo"
+
+#: html/inc/bbcode_html.inc:38
+msgid "Violet"
+msgstr "Violeta"
+
+#: html/inc/bbcode_html.inc:40
+msgid "Font size"
+msgstr "Tamanho da fonte"
+
+#: html/inc/bbcode_html.inc:41
+msgid "Font size: [size=x-small]small text[/size]"
+msgstr "Tamanho da fonte: [size=x-small]texto pequeno[/size]"
+
+#: html/inc/bbcode_html.inc:43
+msgid "Small"
+msgstr "Pequeno"
+
+#: html/inc/bbcode_html.inc:44
+msgid "Normal"
+msgstr "Normal"
+
+#: html/inc/bbcode_html.inc:45
+msgid "Large"
+msgstr "Grande"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close all open bbCode tags"
+msgstr "Feche todas as etiquetas bbCode abertas"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close Tags"
+msgstr "Fechar etiquetas"
+
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Conta"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Inscrever"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "Sobre %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Ajuda"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Projeto"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Participar"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Trabalhar"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Status do servidor"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Estatísticas"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Aplicações"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Participantes"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Computadores"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Equipes"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "Modelos de GPU"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "Modelos de CPU"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Computação"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Comunidade"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Quadro de mensagem"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "criar ou entrar em uma equipe"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Perfis"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Pesquisa de usuário"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Usuário do dia"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Certificar"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Site"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Pesquisa de site"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Idiomas"
+
+#. names for the above
+#: html/inc/forum.inc:40
+msgid "Oldest first"
+msgstr "Antigas primeiro"
+
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
+msgid "Newest first"
+msgstr "Novas primeiro"
+
+#: html/inc/forum.inc:42
+msgid "Highest rated posts first"
+msgstr "Posts melhor avaliados primeiro"
+
+#: html/inc/forum.inc:44
+msgid "Newest post first"
+msgstr "Posts recentes primeiro"
+
+#: html/inc/forum.inc:45
+msgid "Most views first"
+msgstr "Mais visualizados primeiro"
+
+#: html/inc/forum.inc:46
+msgid "Most posts first"
+msgstr "Mais postagens primeiro"
+
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Moderador voluntário"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Administrador do projeto"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Desenvolvedor do projeto"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Examinador do projeto"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Desenvolvedor voluntário"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Examinador voluntário"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Cientista do projeto"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Expert da central de ajuda"
+
+#. Search
+#: html/inc/forum.inc:132
+msgid "Search for words in forum messages"
+msgstr "Procure por palavras nas mensagens do forum"
+
+#: html/inc/forum.inc:132
+msgid "Search forums"
+msgstr "Pesquisar fóruns"
+
+#: html/inc/forum.inc:133
+msgid "Advanced search"
+msgstr "Pesquisa avançada"
+
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
+msgid "Private messages"
+msgstr "Mensagens particulares"
+
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
+msgid "Questions and Answers"
+msgstr "Perguntas e Respostas"
+
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
+msgid "%1 message board"
+msgstr "%1 quadro de mensagem"
+
+#: html/inc/forum.inc:243 html/inc/result.inc:784
+msgid "Previous"
+msgstr "Anterior"
+
+#: html/inc/forum.inc:281 html/inc/result.inc:793
+msgid "Next"
+msgstr "Próximo"
+
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
+msgid "Author"
+msgstr "Autor"
+
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
+msgid "Message"
+msgstr "Mensagem"
+
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Enviar mensagem"
+
+#: html/inc/forum.inc:590
+msgid "Send %1 a private message"
+msgstr "Enviar a %1 uma mensagem privada"
+
+#: html/inc/forum.inc:591
+msgid "Joined: %1"
+msgstr "Inscrito: %1"
+
+#: html/inc/forum.inc:600
+msgid "Posts: %1"
+msgstr "Posts: %1"
+
+#: html/inc/forum.inc:606
+msgid "Credit: %1"
+msgstr "Créditos: %1"
+
+#: html/inc/forum.inc:607
+msgid "RAC: %1"
+msgstr "CMR: %1"
+
+#: html/inc/forum.inc:637
+msgid "You haven't read this message yet"
+msgstr "Você ainda não leu esta mensagem"
+
+#: html/inc/forum.inc:637
+msgid "Unread"
+msgstr "Não lido"
+
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
+msgid "Message %1"
+msgstr "Mensagem %1"
+
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
+msgid "hidden"
+msgstr "escondido"
+
+#: html/inc/forum.inc:642
+msgid "Posted: %1"
+msgstr "Postado: %1"
+
+#: html/inc/forum.inc:645
+msgid " - in response to "
+msgstr " - em resposta a "
+
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
+msgid "Edit"
+msgstr "Editar"
+
+#: html/inc/forum.inc:648
+msgid "Edit this message"
+msgstr "Editar essa mensagem"
+
+#: html/inc/forum.inc:654
+msgid "Last modified: %1"
+msgstr "Última modificação: %1"
+
+#: html/inc/forum.inc:657
+msgid ""
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Este post não é exibido porque o remetente está em sua lista de 'ignorados'. Clique %1aqui%2 para ver este post"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report this post as offensive"
+msgstr "Reportar este post como ofensivo"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report as offensive"
+msgstr "Reportar como ofensivo"
+
+#: html/inc/forum.inc:696
+msgid "Rating: %1"
+msgstr "Avaliação: %1"
+
+#: html/inc/forum.inc:696
+msgid "rate: "
+msgstr "avalie:"
+
+#: html/inc/forum.inc:699
+msgid "Click if you like this message"
+msgstr "Clique se você gostou dessa mensagem"
+
+#: html/inc/forum.inc:699
+msgid "Rate +"
+msgstr "Avaliar +"
+
+#: html/inc/forum.inc:701
+msgid "Click if you don't like this message"
+msgstr "Clique se você não gostou dessa mensagem"
+
+#: html/inc/forum.inc:701
+msgid "Rate -"
+msgstr "Avaliar -"
+
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
+msgid "Reply"
+msgstr "Responder"
+
+#: html/inc/forum.inc:710
+msgid "Post a reply to this message"
+msgstr "Postar uma resposta a esta mensagem"
+
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
+msgid "Quote"
+msgstr "Citação"
+
+#: html/inc/forum.inc:713
+msgid "Post a reply by quoting this message"
+msgstr "Postar uma resposta citando esta mensagem"
+
+#: html/inc/forum.inc:735
+msgid "Hidden by a moderator"
+msgstr "Ocultado pelo moderador"
+
+#: html/inc/forum.inc:756
+msgid "Posted %1 by %2"
+msgstr "Postado %1 por %2"
+
+#: html/inc/forum.inc:776
+msgid "You may not post or rate messages until %1"
+msgstr "Você não pode postar ou avaliar mensagens antes de %1"
+
+#: html/inc/forum.inc:787
+msgid ""
+"\n"
+"        <ul>\n"
+"        <li> Posts must be 'kid friendly': they may not contain\n"
+"            content that is obscene, hate-related,\n"
+"            sexually explicit or suggestive.\n"
+"        <li> No commercial advertisements.\n"
+"        <li> No links to web sites involving sexual content,\n"
+"            gambling, or intolerance of others.\n"
+"        <li> No messages intended to annoy or antagonize other people,\n"
+"            or to hijack a thread.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
+"        <li> No abusive comments involving race, religion,\n"
+"            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
+"        "
+msgstr "\n<ul>\n<li> Posts devem ser 'seguros para crianças': eles não podem ter\nconteúdo obsceno, de ódio,\nde sexo explícito ou sugestivo.\n<li> Sem propagandas comerciais.\n<li> Sem links para web sites envolvendo conteúdo sexual,\nde jogos de azar, ou de intolerância.\n<li> Sem mensagens destinadas a incomodar ou antagonizar outras pessoas,\nou desviar o assunto.\n<li> Sem mensagens deliberadamente hostis, ameaçadoras ou insultosas.\n<li> Sem comentários abusivos envolvendo raça, re [...]
+
+#: html/inc/forum.inc:820
+msgid "Rules:"
+msgstr "Regras:"
+
+#: html/inc/forum.inc:821
+msgid "More info"
+msgstr "Mais informações"
+
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
+msgid "Unhide"
+msgstr "Reexibir"
+
+#: html/inc/forum.inc:1119
+msgid "Unhide this post"
+msgstr "Desocultar este post"
+
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
+msgid "Hide"
+msgstr "Esconder"
+
+#: html/inc/forum.inc:1121
+msgid "Hide this post"
+msgstr "Ocultar este comentário"
+
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
+msgid "Move"
+msgstr "Mover"
+
+#: html/inc/forum.inc:1126
+msgid "Move post to a different thread"
+msgstr "Mover post para uma discussão diferente"
+
+#: html/inc/forum.inc:1131
+msgid "Banish author"
+msgstr "Banir autor"
+
+#: html/inc/forum.inc:1138
+msgid "Vote to banish author"
+msgstr "Votar para banir autor"
+
+#: html/inc/forum.inc:1142
+msgid "Vote not to banish author"
+msgstr "Votar para não banir o autor"
+
+#: html/inc/forum.inc:1147
+msgid "Start vote to banish author"
+msgstr "Iniciar votação para banir o autor"
+
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Deletar"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Deletar este post"
+
+#: html/inc/forum.inc:1192
+msgid "Only team members can post to the team message board"
+msgstr "Somente membros da equipe podem postar no quadro de mensagens da equipe"
+
+#: html/inc/forum.inc:1202
+msgid ""
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "Para criar um novo assunto em %1 você deve ter uma certa quantia de crédito médio. Isto é para proteção contra abusos do sistema."
+
+#: html/inc/forum.inc:1209
+msgid ""
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Você não pode criar mais assuntos agora. Por favor aguarde antes de tentar de novo. Isto é para proteção contra abusos do sistema."
+
+#: html/inc/forum.inc:1216
+msgid ""
+"This thread is locked. Only forum moderators and administrators are allowed "
+"to post there."
+msgstr "Este assunto está bloqueado. Somente moderadores do fórum e administradores possuem autorização para postar aqui."
+
+#: html/inc/forum.inc:1221
+msgid "Can't post to a hidden thread."
+msgstr "Não se pode postar em assuntos ocultos."
+
+#: html/inc/forum.inc:1256
+msgid "Thread"
+msgstr "Assunto"
+
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
+msgid "Posts"
+msgstr "Postagens"
+
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
+msgid "Views"
+msgstr "Visualizações"
+
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
+msgid "Last post"
+msgstr "Última postagem"
+
+#: html/inc/forum.inc:1317
+msgid "New posts in the thread %1"
+msgstr "Novos posts no assunto %1"
+
+#: html/inc/forum.inc:1322
+msgid "New posts in subscribed thread"
+msgstr "Novos posts no assunto inscrito"
+
+#: html/inc/forum.inc:1323
+msgid "There are new posts in the thread '%1'"
+msgstr "Há novos posts no assunto '%1'"
+
+#: html/inc/forum.inc:1333
+msgid "Mark all threads as read"
+msgstr "Marcar todos os assuntos como lidos"
+
+#: html/inc/forum.inc:1334
+msgid "Mark all threads in all message boards as read."
+msgstr "Marcar todos os assuntos em todos os quadros de mensagens como lidos."
+
+#: html/inc/host.inc:25
+msgid "No host"
+msgstr "Sem host"
+
+#: html/inc/host.inc:27
+msgid "Unavailable"
+msgstr "Indisponível"
+
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
+msgid "Home"
+msgstr "Início"
+
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
+msgid "Work"
+msgstr "Trabalho"
+
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
+msgid "School"
+msgstr "Escola"
+
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Update"
+msgstr "Update"
+
+#: html/inc/host.inc:84
+msgid "Computer information"
+msgstr "Informação do computador"
+
+#: html/inc/host.inc:88 html/inc/host.inc:93
+msgid "IP address"
+msgstr "Endereço IP"
+
+#: html/inc/host.inc:88
+msgid "(same the last %1 times)"
+msgstr "(o mesmo que as últimas %1 vezes)"
+
+#: html/inc/host.inc:90
+msgid "External IP address"
+msgstr "Endereço de IP externo"
+
+#: html/inc/host.inc:93
+msgid "Show IP address"
+msgstr "Mostrar endereço IP"
+
+#: html/inc/host.inc:95
+msgid "Domain name"
+msgstr "Nome de domínio"
+
+#: html/inc/host.inc:97
+msgid "Product name"
+msgstr "Nome do produto"
+
+#: html/inc/host.inc:101
+msgid "Local Standard Time"
+msgstr "Fuso horário local padrão"
+
+#: html/inc/host.inc:101
+msgid "UTC %1 hours"
+msgstr "UTC %1 horas"
+
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
+msgid "Owner"
+msgstr "Proprietário"
+
+#: html/inc/host.inc:107 html/inc/host.inc:358
+msgid "Anonymous"
+msgstr "Anônimo"
+
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
+msgid "Created"
+msgstr "Criado"
+
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
+msgid "Total credit"
+msgstr "Créditos totais"
+
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
+msgid "Average credit"
+msgstr "Média de créditos"
+
+#: html/inc/host.inc:115
+msgid "Cross project credit"
+msgstr "Crédito de projetos cruzados"
+
+#: html/inc/host.inc:117
+msgid "CPU type"
+msgstr "Tipo de CPU"
+
+#: html/inc/host.inc:118
+msgid "Number of processors"
+msgstr "Número de processadores"
+
+#: html/inc/host.inc:120
+msgid "Coprocessors"
+msgstr "Coprocessadores"
+
+#: html/inc/host.inc:122 html/inc/host.inc:703
+msgid "Operating System"
+msgstr "Sistema Operacional"
+
+#: html/inc/host.inc:125 html/inc/host.inc:231
+msgid "BOINC version"
+msgstr "Versão do BOINC"
+
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
+msgid "Memory"
+msgstr "Memória"
+
+#: html/inc/host.inc:129 html/inc/host.inc:139
+msgid "%1 MB"
+msgstr "%1 MB"
+
+#: html/inc/host.inc:133
+msgid "Cache"
+msgstr "Cache"
+
+#: html/inc/host.inc:133
+msgid "%1 KB"
+msgstr "%1 KB"
+
+#: html/inc/host.inc:139
+msgid "Swap space"
+msgstr "Espaço de troca"
+
+#: html/inc/host.inc:142
+msgid "Total disk space"
+msgstr "Espaço total do disco"
+
+#: html/inc/host.inc:142 html/inc/host.inc:145
+msgid "%1 GB"
+msgstr "%1 GB"
+
+#: html/inc/host.inc:145
+msgid "Free Disk Space"
+msgstr "Espaço livre do disco"
+
+#: html/inc/host.inc:149
+msgid "Measured floating point speed"
+msgstr "Velocidade de ponto flutuante medida"
+
+#: html/inc/host.inc:149 html/inc/host.inc:152
+msgid "%1 million ops/sec"
+msgstr "%1 milhões de ops/seg"
+
+#: html/inc/host.inc:152
+msgid "Measured integer speed"
+msgstr "Velocidade de inteiro medida"
+
+#: html/inc/host.inc:156 html/inc/host.inc:158
+msgid "Average upload rate"
+msgstr "Taxa média de upload"
+
+#: html/inc/host.inc:156 html/inc/host.inc:163
+msgid "%1 KB/sec"
+msgstr "%1 KB/seg"
+
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: html/inc/host.inc:163 html/inc/host.inc:165
+msgid "Average download rate"
+msgstr "Taxa máxima de download"
+
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
+msgid "Average turnaround time"
+msgstr "Tempo médio de devolução"
+
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
+msgid "%1 days"
+msgstr "%1 dias"
+
+#: html/inc/host.inc:169
+msgid "Application details"
+msgstr "Detalhes da aplicação"
+
+#: html/inc/host.inc:170
+msgid "Show"
+msgstr "Mostrar"
+
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
+msgid "Tasks"
+msgstr "Tarefas"
+
+#: html/inc/host.inc:184 html/inc/host.inc:206
+msgid "Number of times client has contacted server"
+msgstr "Número de vezes em que o cliente fez contato com o servidor"
+
+#: html/inc/host.inc:185
+msgid "Last time contacted server"
+msgstr "Último contato com o servidor"
+
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Fração de tempo que o BOINC está rodando"
+
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Enquanto o BOINC roda, fraction of time do computador tem conexão à Internet"
+
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Enquanto o BOINC roda, fraction of time de computação é permitido"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Enquanto o BOINC roda, fraction of time de computação do GPU é permitido"
+
+#: html/inc/host.inc:193
+msgid "Average CPU efficiency"
+msgstr "Eficiência média do CPU"
+
+#: html/inc/host.inc:196
+msgid "Task duration correction factor"
+msgstr "Fator de correção de duração da tarefa"
+
+#: html/inc/host.inc:198 html/inc/host.inc:683
+msgid "Location"
+msgstr "Local"
+
+#: html/inc/host.inc:200
+msgid "Delete this computer"
+msgstr "Deletar este computador"
+
+#: html/inc/host.inc:204
+msgid "Merge duplicate records of this computer"
+msgstr "Juntar registros duplicados deste computador"
+
+#: html/inc/host.inc:204
+msgid "Merge"
+msgstr "Mesclar"
+
+#: html/inc/host.inc:207 html/inc/host.inc:706
+msgid "Last contact"
+msgstr "Último contato"
+
+#: html/inc/host.inc:220
+msgid "Computer info"
+msgstr "Informações do computador"
+
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
+msgid "Rank"
+msgstr "Rank"
+
+#: html/inc/host.inc:225 html/inc/host.inc:690
+msgid "Avg. credit"
+msgstr "Média de crédito"
+
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
+msgid "Recent average credit"
+msgstr "Média recente de créditos"
+
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
+msgid "CPU"
+msgstr "CPU"
+
+#: html/inc/host.inc:233 html/inc/host.inc:700
+msgid "GPU"
+msgstr "GPU"
+
+#: html/inc/host.inc:234
+msgid "Operating system"
+msgstr "Sistema operacional"
+
+#: html/inc/host.inc:319
+msgid "(%1 processors)"
+msgstr "(%1 processadores)"
+
+#: html/inc/host.inc:338
+msgid "Details"
+msgstr "Detalhes"
+
+#: html/inc/host.inc:343
+msgid "Cross-project stats:"
+msgstr "Status de projetos-cruzados:"
+
+#: html/inc/host.inc:518
+msgid "Host %1 has overlapping lifetime:"
+msgstr "Host %1 tem tempo de vida sobreposto:"
+
+#: html/inc/host.inc:525
+msgid "Host %1 has an incompatible OS:"
+msgstr "Host %1 tem um OS incompatível:"
+
+#: html/inc/host.inc:531
+msgid "Host %1 has an incompatible CPU:"
+msgstr "Host %1 tem um CPU incompatível:"
+
+#: html/inc/host.inc:598
+msgid "same host"
+msgstr "mesmo host"
+
+#: html/inc/host.inc:601
+msgid "Can't merge host %1 into %2 - they're incompatible"
+msgstr "Não é possível juntar o host %1 ao %2 - eles são incompatíveis"
+
+#: html/inc/host.inc:604
+msgid "Merging host %1 into host %2"
+msgstr "Juntando host %1 ao host %2"
+
+#: html/inc/host.inc:621
+msgid "Couldn't update credit of new computer"
+msgstr "Não foi possível atualizar o crédito do novo computador"
+
+#: html/inc/host.inc:625
+msgid "Couldn't update results"
+msgstr "Não foi possível atualizar os resultados"
+
+#: html/inc/host.inc:630
+msgid "Couldn't retire old computer"
+msgstr "Não foi possível dispensar o computador antigo"
+
+#: html/inc/host.inc:632
+msgid "Retired old computer %1"
+msgstr "Antigo computador %1 destituído"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Show:"
+msgstr "Mostrar:"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "All computers"
+msgstr "Todos os computadores"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Only computers active in past 30 days"
+msgstr "Somente computadores ativos nos últimos 30 dias"
+
+#: html/inc/host.inc:671 html/inc/result.inc:702
+msgid "Computer ID"
+msgstr "ID do computador"
+
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Modelo"
+
+#: html/inc/host.inc:695
+msgid "BOINC<br>version"
+msgstr "BOINC<br>versão"
+
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
+msgid "Merge computers by name"
+msgstr "Juntar computadores por nome"
+
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discutir"
+
+#: html/inc/news.inc:112
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "Notícias estão disponíveis como %sRSS feed%s"
+
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
+msgid "Inbox"
+msgstr "Caixa de entrada"
+
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
+msgid "Write"
+msgstr "Escrever"
+
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Enviar mensagem à equipe"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
+msgid "Preview"
+msgstr "Prévia"
+
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Assunto"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Enviar mensagem privada"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
+msgid "no such message"
+msgstr "não existe tal mensagem"
+
+#: html/inc/pm.inc:133
+msgid "To"
+msgstr "Para"
+
+#: html/inc/pm.inc:133
+msgid "User IDs or unique usernames, separated with commas"
+msgstr "IDs de usuário ou nome de usuário único, separados com vírgulas"
+
+#: html/inc/pm.inc:186
+msgid "sent you a private message; subject:"
+msgstr "te enviou uma mensagem privada; assunto:"
+
+#: html/inc/pm.inc:193
+msgid "Private message%1 from %2, subject:"
+msgstr "Message%1 privada de %2, assunto:"
+
+#: html/inc/pm.inc:201
+msgid "Couldn't create message"
+msgstr "Não foi possível criar mensagem"
+
+#: html/inc/pm.inc:239
+msgid ""
+"You are not allowed to send privates messages so often. Please wait some "
+"time before sending more messages."
+msgstr "Você não tem permissão para enviar mensagens privadas com esta frequência. Favor aguarde um tempo antes de mandar outras mensagens."
+
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
+msgid "unread"
+msgstr "não lida"
+
+#: html/inc/pm.inc:259
+msgid "For email notification, %1edit community prefs%2"
+msgstr "Para notificação de email, %1edit as prefs%2 da comunidade"
+
+#: html/inc/pm.inc:275
+msgid "Private message"
+msgstr "Mensagem privada"
+
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Limites de uso"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Usar ao máximo"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
+msgid ""
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Manter alguns CPUs livres para outras aplicações. Exemplo: 75% significa usar 6 núcleos em um CPU de 8 núcleos."
+
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% das CPUs"
+
+#: html/inc/prefs.inc:63
+#, no-php-format
+msgid ""
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Suspender/Retomar computação após alguns segundos para reduzir a temperatura do CPU e o uso de energia. Exemplo: 75% significa computação por 3 segundos, espera de 1 segundo, e repete."
+
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% de tempo da CPU"
+
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Quando suspender"
+
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Suspender quando o computador estiver na bateria"
+
+#: html/inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Marque para suspender a computação em dispositivos portáteis quando estiver na bateria."
+
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Suspender quando o computador estiver em uso"
+
+#: html/inc/prefs.inc:77
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Marque para suspender a computação e transferência de arquivos quando você estiver usando o computador."
+
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Suspender uso da GPU quando o computador estiver em uso"
+
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Marque para suspender a computação pelo GPU quando você estiver usando o computador."
+
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Em uso' significa atividade do mouse/teclado por último"
+
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Isso determina quando o computador é considerado 'em uso'."
+
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "minutos"
+
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Suspender quando não houver atividade do mouse/teclado por"
+
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Isto permite que alguns computadores entrem em modo de economia de energia quando não estiverem em uso."
+
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Suspender quando o uso de CPU que não seja pelo BOINC for superior"
+
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Suspender a computação quando o seu computador estiver ocupado rodando outros programas."
+
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Computar apenas entre"
+
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Computar apenas durante um período particular do dia."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Outro"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Armazenar pelo menos"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Guardar tarefas suficientes para manter o computador ocupado durante este período."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "dias de trabalho"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Armazenar adicionamente até"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Armazenar tarefas adicionais acima do nível mínimo. Determina quanto de trabalho é requisitado ao conectar com um projeto."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Alternar entre tarefas a cada"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Se você roda vários projetos, o BOINC pode alternar entre eles nesta frequência."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Requisitar checkpoint das tarefas no mínimo a cada"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Isto controla a frequência em que as tarefas salvam seu progresso no disco, para que depois elas possam continuar daquele ponto."
+
+#: html/inc/prefs.inc:134
+msgid "seconds"
+msgstr "segundos"
+
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Não usar mais que"
+
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Limitar o espaço total de disco usado pelo BOINC"
+
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
+
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Deixar ao menos"
+
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Limitar o uso do disco para deixar esse tanto de espaço livre no volume onde BOINC armazena seus dados."
+
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB livres"
+
+#: html/inc/prefs.inc:155
+msgid ""
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Limitar a porcentagem de espaço do disco usado pelo BOINC no volume onde ele armazena seus dados."
+
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "5 do total"
+
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "Quando o computador estiver em uso, usar no máximo"
+
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Limitar o uso da memória usada pelo BOINC quando você está usando o computador."
+
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
+
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Quando o computador não estiver em uso, usar no máximo"
+
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Limitar o uso da memória usada pelo BOINC quando você não está usando o computador."
+
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Deixar tarefas que não usam GPU na memória quando suspensas"
+
+#: html/inc/prefs.inc:179
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Caso marcado, tarefas suspensas ficarão na memória, e resumirão com nenhuma perda de trabalho. Se desmarcado, tarefas suspensas serão removidas da memória, e resumirão do último ponto salvo."
+
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Arquivo de paginação/troca: usar no máximo"
+
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Limitar o espaço de troca (arquivo de paginação) usado pelo BOINC."
+
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Limitar taxa de download para"
+
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Limita a taxa de download para a transferência de arquivos."
+
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/segundo"
+
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Limitar taxa de upload para"
+
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Limitar a taxa de upload para a transferência de arquivos."
+
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Limitar uso para"
+
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Exemplo: BOINC deve transferir no máximo 2000 MB de dados a cada 30 dias."
+
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "cada MB"
+
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "dias"
+
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Transferir arquivos apenas entre"
+
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Transferir arquivos apenas durante um período particular do dia."
+
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Pular verificação de dados para arquivos de imagem"
+
+#: html/inc/prefs.inc:223
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Marque somente se seu provedor de internet modifica arquivos de imagem. Pular a verificação reduz a segurança do BOINC."
+
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Confirmar antes de conectar na Internet"
+
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Útil apenas se você tem um modem, ISDN ou conexão VPN."
+
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Desconectar quando pronto"
+
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Disco"
+
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Rede"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Estas preferências se aplicam a todos os projetos do BOINC em que você participa."
+
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Não foi possível atualizar as preferências.%2 Os valores marcados em vermelho abaixo estavam fora do alcance ou não numéricos."
+
+#: html/inc/prefs.inc:494
+msgid "Separate preferences for %1"
+msgstr "Separar preferências para %1"
+
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
+msgid "Edit preferences"
+msgstr "Editar preferências"
+
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Remover"
+
+#: html/inc/prefs.inc:508
+msgid "Add separate preferences for %1"
+msgstr "Adicionar preferências separadas para %1"
+
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Estas configurações se aplicam a todos os computadores usando esta conta exceto"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "computadores que você estipulou preferências locais usando o Gerente do BOINC"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Dispositivos Android"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
+msgstr "(Mudar visualização)"
+
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
+msgid "Combined preferences"
+msgstr "Preferências combinadas"
+
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
+msgid "Primary (default) preferences"
+msgstr "Preferências primárias (padrão)"
+
+#: html/inc/prefs.inc:546
+msgid "Preferences last modified:"
+msgstr "Última modificação de preferências:"
+
+#: html/inc/prefs.inc:562
+msgid "Add preferences"
+msgstr "Adicionar preferências"
+
+#: html/inc/prefs.inc:566
+msgid "Update preferences"
+msgstr "Atualizar preferências"
+
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "sim"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "não"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
+msgid "Default computer location"
+msgstr "Local padrão do computador"
+
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Novos computadores usarão esta localização para computação e preferências de projetos."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Compartilhamento de recursos"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina a proporção dos recursos do seu computador alocados para este projeto. Por exemplo, se você participa de dois projetos da BOINC com cota de recursos de 100 e 200, o primeiro terá 1/3 de seus recursos e o segundo terá 2/3."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Acelerar tarefas do GPU dedicando um CPU para cada?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "Usar CPU"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "Usar GPU ATI"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "Usar GPU da NVIDIA"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Usar GPU Intel"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Executar aplicações de teste?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Isto nos ajuda a desenvolver aplicações, mas pode causar falha em trabalhos do seu computador"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Emails serão enviados de %1; certifique-se de que seu filtro de spam aceita este endereço."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Você permite que $1 e sua equipe (caso tiver) te enviem email?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "Pode %1 mostrar seus computadores em seu web site?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Mudar Visualização)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Preferências específicas do projeto"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "endereço inválido: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "segmento inválido: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
+msgid "and"
+msgstr "e"
+
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "sem limite"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Adicionar"
+
+#: html/inc/profile.inc:85
+msgid ""
+"Your profile will be made visible to other people as soon as it has been "
+"approved by the project. This may take up to a few days."
+msgstr "Seu perfil será visível para outras pessoas tão logo for aprovado pelo projeto. Isto pode levar alguns dias."
+
+#: html/inc/profile.inc:91
+msgid ""
+"Your profile has been marked as unacceptable. It is not visible to other "
+"people. Please change it."
+msgstr "Seu perfil foi marcado como inaceitável. Isto não é visível por outras pessoas. Favor alterá-lo."
+
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
+msgid "Database error"
+msgstr "Erro na base de dados"
+
+#: html/inc/profile.inc:194
+msgid ""
+"To prevent spam, profiles of users with an average credit of less than %1 "
+"are displayed only to logged-in users. We apologize for this inconvenience."
+msgstr "Para prevenir spam, perfis de usuários com um crédito médio menor que %1 são visíveis apenas para usuários logados. Nós nos desculpamos por este inconveniente."
+
+#: html/inc/profile.inc:198
+msgid "User is banished"
+msgstr "Usuário banido"
+
+#: html/inc/profile.inc:212
+msgid "No profile exists for that user ID."
+msgstr "Não existe perfil para o ID de usuário."
+
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
+msgid "Edit your profile"
+msgstr "Editar seu perfil"
+
+#: html/inc/profile.inc:267
+msgid "Your feedback on this profile"
+msgstr "Seu comentário neste perfil"
+
+#: html/inc/profile.inc:269
+msgid "Recommend this profile for User of the Day:"
+msgstr "Recomendar este perfil para o Usuário do Dia:"
+
+#: html/inc/profile.inc:270
+msgid "I %1like%2 this profile"
+msgstr "Eu %1gosto%2 deste perfil"
+
+#: html/inc/profile.inc:273
+msgid "Alert administrators to an offensive profile:"
+msgstr "Alertar administrador de um perfil ofensivo:"
+
+#: html/inc/profile.inc:274
+msgid "I %1do not like%2 this profile"
+msgstr "Eu  %1não gosto%2 deste perfil"
+
+#: html/inc/result.inc:58
+msgid "Anonymous platform"
+msgstr "Plataforma anônima"
+
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
+msgid "NVIDIA GPU"
+msgstr "GPU NVIDIA"
+
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
+msgid "ATI GPU"
+msgstr "GPU ATI"
+
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
+msgid "Intel GPU"
+msgstr "GPU Intel"
+
+#: html/inc/result.inc:105
+msgid "pending"
+msgstr "pendente"
+
+#: html/inc/result.inc:128 html/user/forum_search.php:62
+msgid "All"
+msgstr "Tudo"
+
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
+msgid "In progress"
+msgstr "Em progresso"
+
+#: html/inc/result.inc:130
+msgid "Validation pending"
+msgstr "Validação pendente"
+
+#: html/inc/result.inc:131
+msgid "Validation inconclusive"
+msgstr "Validação inconclusiva"
+
+#: html/inc/result.inc:132 html/inc/result.inc:282
+msgid "Valid"
+msgstr "Válido"
+
+#: html/inc/result.inc:133 html/inc/result.inc:285
+msgid "Invalid"
+msgstr "Inválido"
+
+#: html/inc/result.inc:134 html/inc/result.inc:223
+msgid "Error"
+msgstr "Erro"
+
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
+msgid "Inactive"
+msgstr "Inativo"
+
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
+msgid "Unsent"
+msgstr "Não enviado"
+
+#: html/inc/result.inc:195
+msgid "Completed, waiting for validation"
+msgstr "Completo, aguardando validação"
+
+#: html/inc/result.inc:196
+msgid "Completed and validated"
+msgstr "Completo e validado"
+
+#: html/inc/result.inc:197
+msgid "Completed, marked as invalid"
+msgstr "Completo, marcado como inválido"
+
+#: html/inc/result.inc:198
+msgid "Completed, can't validate"
+msgstr "Completo, não se pôde validar"
+
+#: html/inc/result.inc:199
+msgid "Completed, validation inconclusive"
+msgstr "Completo, validação inconclusiva"
+
+#: html/inc/result.inc:200
+msgid "Completed, too late to validate"
+msgstr "Completo, muito tarde para validação"
+
+#: html/inc/result.inc:202
+msgid "Completed"
+msgstr "Completo"
+
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
+msgid "Couldn't send"
+msgstr "Não foi possível enviar"
+
+#: html/inc/result.inc:208 html/inc/result.inc:271
+msgid "Cancelled by server"
+msgstr "Cancelado pelo servidor"
+
+#: html/inc/result.inc:213
+msgid "Not started by deadline - canceled"
+msgstr "Não iniciado antes do limite - cancelado"
+
+#: html/inc/result.inc:216
+msgid "Error while downloading"
+msgstr "Erro durante o download"
+
+#: html/inc/result.inc:218
+msgid "Error while computing"
+msgstr "Erro durante a computação"
+
+#: html/inc/result.inc:219
+msgid "Error while uploading"
+msgstr "Erro durante o upload"
+
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Abortado"
+
+#: html/inc/result.inc:221 html/inc/result.inc:274
+msgid "Upload failed"
+msgstr "Upload falhou"
+
+#: html/inc/result.inc:224
+msgid "Timed out - no response"
+msgstr "Tempo esgotado - sem resposta"
+
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
+msgid "Didn't need"
+msgstr "Não foi necessário"
+
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
+msgid "Validate error"
+msgstr "Erro na validação"
+
+#: html/inc/result.inc:227 html/inc/result.inc:256
+msgid "Abandoned"
+msgstr "Abandonado"
+
+#: html/inc/result.inc:238 html/user/explain_state.php:43
+msgid "Over"
+msgstr "Finalizado"
+
+#: html/inc/result.inc:246 html/user/explain_state.php:59
+msgid "Success"
+msgstr "Sucesso"
+
+#: html/inc/result.inc:250
+msgid "Computation error"
+msgstr "Erro de computação"
+
+#: html/inc/result.inc:252
+msgid "Redundant result"
+msgstr "Resultado redundante"
+
+#: html/inc/result.inc:253 html/user/explain_state.php:68
+msgid "No reply"
+msgstr "Sem resposta"
+
+#: html/inc/result.inc:263 html/user/explain_state.php:85
+msgid "New"
+msgstr "Novo"
+
+#: html/inc/result.inc:264 html/user/explain_state.php:91
+msgid "Downloading"
+msgstr "Baixando"
+
+#: html/inc/result.inc:265
+msgid "Processing"
+msgstr "Processando"
+
+#: html/inc/result.inc:266
+msgid "Compute error"
+msgstr "Computar erro"
+
+#: html/inc/result.inc:267 html/user/explain_state.php:97
+msgid "Uploading"
+msgstr "Fazendo upload"
+
+#: html/inc/result.inc:268 html/user/explain_state.php:88
+msgid "Done"
+msgstr "Feito"
+
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Abortado pelo usuário"
+
+#: html/inc/result.inc:281
+msgid "Initial"
+msgstr "Inicial"
+
+#: html/inc/result.inc:287
+msgid "Not necessary"
+msgstr "Não necessário"
+
+#: html/inc/result.inc:288
+msgid "Workunit error - check skipped"
+msgstr "Erro da unidade de trabalho - checagem pulada"
+
+#: html/inc/result.inc:289
+msgid "Checked, but no consensus yet"
+msgstr "Checado, mas ainda sem consenso"
+
+#: html/inc/result.inc:290
+msgid "Task was reported too late to validate"
+msgstr "Tarefa reportada muito tarde para validação"
+
+#: html/inc/result.inc:316
+msgid "Couldn't send result"
+msgstr "Não foi possível enviar os resultados"
+
+#: html/inc/result.inc:320
+msgid "Too many errors (may have bug)"
+msgstr "Muitos erros (possível bug)"
+
+#: html/inc/result.inc:324
+msgid "Too many results (may be nondeterministic)"
+msgstr "Muitos resultados (pode ser não-determinável)"
+
+#: html/inc/result.inc:328
+msgid "Too many total results"
+msgstr "Muitos resultados totais"
+
+#: html/inc/result.inc:332
+msgid "WU cancelled"
+msgstr "UT cancelada"
+
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Resultado canônico faltante"
+
+#: html/inc/result.inc:340
+msgid "Unrecognized Error: %1"
+msgstr "Erro Desconhecido: %1"
+
+#: html/inc/result.inc:369
+msgid "Task name"
+msgstr "Nome da tarefa"
+
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
+msgid "click for details"
+msgstr "clique para detalhes"
+
+#: html/inc/result.inc:369
+msgid "Show IDs"
+msgstr "Mostrar IDs"
+
+#: html/inc/result.inc:374
+msgid "Show names"
+msgstr "Mostrar nomes"
+
+#: html/inc/result.inc:377 html/user/result.php:36
+msgid "Task"
+msgstr "Tarefa"
+
+#: html/inc/result.inc:380
+msgid "Work unit"
+msgstr "Unidade de trabalho"
+
+#: html/inc/result.inc:391
+msgid "Computer"
+msgstr "Computador"
+
+#: html/inc/result.inc:394 html/inc/result.inc:695
+msgid "Sent"
+msgstr "Enviado"
+
+#: html/inc/result.inc:395
+msgid "Time reported<br />or deadline"
+msgstr "Hora do relatório<br />ou prazo final"
+
+#: html/inc/result.inc:396
+msgid "explain"
+msgstr "explicar"
+
+#: html/inc/result.inc:397 html/user/server_status.php:112
+msgid "Status"
+msgstr "Status"
+
+#: html/inc/result.inc:401
+msgid "Run time<br />(sec)"
+msgstr "Tempo decorrido<br />(seg)"
+
+#: html/inc/result.inc:402
+msgid "CPU time<br />(sec)"
+msgstr "Tempo de CPU<br />(seg)"
+
+#: html/inc/result.inc:403 html/inc/result.inc:706
+msgid "Credit"
+msgstr "Crédito"
+
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
+msgid "Application"
+msgstr "Aplicação"
+
+#: html/inc/result.inc:693
+msgid "Workunit"
+msgstr "Unidade de trabalho"
+
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Prazo de relatório"
+
+#: html/inc/result.inc:697
+msgid "Received"
+msgstr "Recebido(s)"
+
+#: html/inc/result.inc:698
+msgid "Server state"
+msgstr "Estado do servidor"
+
+#: html/inc/result.inc:699
+msgid "Outcome"
+msgstr "Saída"
+
+#: html/inc/result.inc:700
+msgid "Client state"
+msgstr "Estado do cliente"
+
+#: html/inc/result.inc:701
+msgid "Exit status"
+msgstr "Status de saída"
+
+#: html/inc/result.inc:703
+msgid "Run time"
+msgstr "Tempo de execução"
+
+#: html/inc/result.inc:704
+msgid "CPU time"
+msgstr "Tempo de CPU"
+
+#: html/inc/result.inc:705
+msgid "Validate state"
+msgstr "Estado da validação"
+
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "Pico de FLOPS do dispositivo"
+
+#: html/inc/result.inc:708
+msgid "Application version"
+msgstr "Versão da aplicação"
+
+#: html/inc/result.inc:733
+msgid "Output files"
+msgstr "Arquivos de saída"
+
+#: html/inc/result.inc:736
+msgid "Stderr output"
+msgstr "Saída stderr"
+
+#: html/inc/result.inc:795
+msgid "State"
+msgstr "Status"
+
+#: html/inc/result.inc:836
+msgid "Task name:"
+msgstr "Nome da tarefa:"
+
+#: html/inc/team.inc:40
+msgid "Search criteria (use one or more)"
+msgstr "Critério de pesquisa (use um ou mais)"
+
+#: html/inc/team.inc:42
+msgid "Key words"
+msgstr "Palavras-chave"
+
+#: html/inc/team.inc:42
+msgid "Find teams with these words in their names or descriptions"
+msgstr "Encontre equipes com estas palavras em seu nome ou descrição"
+
+#: html/inc/team.inc:50 html/inc/team.inc:465
+msgid "Type of team"
+msgstr "Tipo de equipe"
+
+#: html/inc/team.inc:52
+msgid "Show only active teams"
+msgstr "Mostrar apenas equipes ativas"
+
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
+msgid "Search"
+msgstr "Procurar"
+
+#: html/inc/team.inc:62
+msgid "Requested by you, and founder response deadline has passed."
+msgstr "Solicitado por você, e o prazo para resposta do fundador passou."
+
+#: html/inc/team.inc:64
+msgid "Complete foundership transfer"
+msgstr "Transferência da fundação completa"
+
+#: html/inc/team.inc:68
+msgid "Requested by you"
+msgstr "Solicitado por você"
+
+#: html/inc/team.inc:68
+msgid "founder response deadline is %1"
+msgstr "prazo para resposta do fundador é %1"
+
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
+msgid "None"
+msgstr "Nenhum"
+
+#: html/inc/team.inc:75
+msgid "Initiate request"
+msgstr "Iniciar requisição"
+
+#: html/inc/team.inc:78
+msgid "Deferred"
+msgstr "Prorrogado"
+
+#: html/inc/team.inc:92
+msgid "Team info"
+msgstr "Informações da equipe"
+
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
+msgid "Description"
+msgstr "Descrição"
+
+#: html/inc/team.inc:107
+msgid "Web site"
+msgstr "Site da Web"
+
+#: html/inc/team.inc:133
+msgid "Cross-project stats"
+msgstr "Estatísticas dos projetos-cruzados:"
+
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
+msgid "Type"
+msgstr "Tipo"
+
+#: html/inc/team.inc:140 html/user/team_manage.php:67
+msgid "Message board"
+msgstr "Quadro de mensagens"
+
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
+msgid "Threads"
+msgstr "Assuntos"
+
+#: html/inc/team.inc:149
+msgid "Join this team"
+msgstr "Filiar-se a esta equipe"
+
+#: html/inc/team.inc:150
+msgid ""
+"Note: if 'OK to email' is set in your project preferences, joining a team "
+"gives its founder access to your email address."
+msgstr "Nota: se 'OK para email' foi selecionado nas preferências do projeto, entrar para uma equipe dá ao fundador acesso ao seu endereço de email."
+
+#: html/inc/team.inc:153
+msgid "Not accepting new members"
+msgstr "Não está aceitando novos membros"
+
+#: html/inc/team.inc:160
+msgid "Foundership change requested"
+msgstr "Troca da fundação solicitada"
+
+#: html/inc/team.inc:161
+msgid "Respond by %1"
+msgstr "Responder até %1"
+
+#: html/inc/team.inc:165
+msgid "Team foundership change"
+msgstr "Mudança da fundação da equipe"
+
+#: html/inc/team.inc:169 html/inc/team.inc:370
+msgid "Members"
+msgstr "Membros"
+
+#: html/inc/team.inc:170 html/inc/team.inc:265
+msgid "Founder"
+msgstr "Fundador"
+
+#: html/inc/team.inc:184
+msgid "Admins"
+msgstr "Administradores"
+
+#: html/inc/team.inc:199
+msgid "New members in last day"
+msgstr "Novos membros nos últimos dias"
+
+#: html/inc/team.inc:200
+msgid "Total members"
+msgstr "Total de membros"
+
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
+msgid "view"
+msgstr "visualizar"
+
+#: html/inc/team.inc:201
+msgid "Active members"
+msgstr "Membros ativos"
+
+#: html/inc/team.inc:202
+msgid "Members with credit"
+msgstr "Membros com crédito"
+
+#: html/inc/team.inc:267
+msgid "Admin"
+msgstr "Administrador"
+
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
+msgid "Previous %1"
+msgstr "Anterior %1"
+
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
+msgid "Next %1"
+msgstr "Próximo %1"
+
+#: html/inc/team.inc:300
+msgid "No such team."
+msgstr "Equipe não existe."
+
+#: html/inc/team.inc:313
+msgid "This operation requires foundership."
+msgstr "Esta operação requere fundação."
+
+#: html/inc/team.inc:337
+msgid "This operation requires team admin privileges"
+msgstr "Esta operação requer privilégios de aministrador da equipe"
+
+#: html/inc/team.inc:434
+msgid ""
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "CUIDADO: esta é uma equipe geral do BOINC. Se você fizer mudanças aqui, logo elas serão substituídas. Edite, ao invés, a %1equipe geral do BOINC%2."
+
+#: html/inc/team.inc:440
+msgid ""
+"%1Privacy note%2: if you create a team, your project preferences (resource "
+"share, graphics preferences) will be visible to the public."
+msgstr "%1Nota de privacidade%2: se você criar uma equipe, suas preferências de projeto (cota de recursos, preferências gráficas) serão visíveis para o público."
+
+#: html/inc/team.inc:444
+msgid "Team name, text version"
+msgstr "Nome da equipe, versão de texto"
+
+#: html/inc/team.inc:445
+msgid "Don't use HTML tags."
+msgstr "Não use etiquetas HTML."
+
+#: html/inc/team.inc:448
+msgid "Team name, HTML version"
+msgstr "Nome da equipe, versão em HTML"
+
+#: html/inc/team.inc:450 html/inc/team.inc:460
+msgid "You may use %1limited HTML tags%2."
+msgstr "Você pode usar %1etiquetas HTML limitadas%2"
+
+#: html/inc/team.inc:451
+msgid "If you don't know HTML, leave this box blank."
+msgstr "Se você não conhece HTML, deixe esta caixa em branco."
+
+#: html/inc/team.inc:454
+msgid "URL of team web page, if any"
+msgstr "URL ou web page da equipe, se houver"
+
+#: html/inc/team.inc:454
+msgid "without \"http://\""
+msgstr "sem \"http://\""
+
+#: html/inc/team.inc:455
+msgid "This URL will be linked to from the team's page on this site."
+msgstr "Esta URL terá um link pela página da equipe neste site."
+
+#: html/inc/team.inc:458
+msgid "Description of team"
+msgstr "Descrição da equipe"
+
+#: html/inc/team.inc:474
+msgid "Accept new members?"
+msgstr "Aceitar novos membros?"
+
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Companhia"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Escola primária"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Escola secundária"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Curso tecnológico"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Universidade ou departamento"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Agência governamental"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "Organização sem fins lucrativos"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "Nacional"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Local/regional"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Tipo de computador"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Social/político/religioso"
+
+#: html/inc/uotd.inc:30
+msgid "User profile"
+msgstr "Perfil de usuário"
+
+#: html/inc/user.inc:118
+msgid "Projects in which you are participating"
+msgstr "Projetos em que você está participando"
+
+#: html/inc/user.inc:120
+msgid "Projects in which %1 is participating"
+msgstr "Projetos em que %1 está participando"
+
+#: html/inc/user.inc:125
+msgid "Click for user page"
+msgstr "Clique para página do usuário"
+
+#: html/inc/user.inc:128
+msgid "Since"
+msgstr "Desde"
+
+#: html/inc/user.inc:155
+msgid "Computing and credit"
+msgstr "Computação e créditos"
+
+#: html/inc/user.inc:158
+msgid "Computers on this account"
+msgstr "Computadores nesta conta"
+
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
+msgid "View"
+msgstr "Visualizar"
+
+#: html/inc/user.inc:168
+msgid "Cross-project ID"
+msgstr "ID de projeto-cruzado"
+
+#: html/inc/user.inc:169
+msgid "Cross-project statistics"
+msgstr "Estatísticas dos projetos-cruzados"
+
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
+msgid "Team"
+msgstr "Equipe"
+
+#: html/inc/user.inc:174
+msgid "Cross-project"
+msgstr "Projetos-cruzados"
+
+#: html/inc/user.inc:176
+msgid "Stats on your cell phone"
+msgstr "Estatísticas no seu celular"
+
+#: html/inc/user.inc:201
+msgid "Account information"
+msgstr "Informações da conta"
+
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
+msgid "Email address"
+msgstr "Endereço de E-mail"
+
+#: html/inc/user.inc:214 html/inc/user.inc:413
+msgid "URL"
+msgstr "URL"
+
+#: html/inc/user.inc:217
+msgid "Postal code"
+msgstr "Código postal"
+
+#: html/inc/user.inc:218 html/inc/user.inc:407
+msgid "%1 member since"
+msgstr "%1 membro desde"
+
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
+msgid "Change"
+msgstr "Alterar"
+
+#: html/inc/user.inc:228
+msgid "email address"
+msgstr "endereço de email"
+
+#: html/inc/user.inc:229
+msgid "password"
+msgstr "senha"
+
+#: html/inc/user.inc:230
+msgid "other account info"
+msgstr "outras informações da conta"
+
+#: html/inc/user.inc:233 html/inc/user.inc:406
+msgid "User ID"
+msgstr "ID de usuário"
+
+#: html/inc/user.inc:233
+msgid "Used in community functions"
+msgstr "Usado em funções da comunidade"
+
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
+msgid "Account keys"
+msgstr "Chaves da conta"
+
+#: html/inc/user.inc:241
+msgid "Preferences"
+msgstr "Preferências"
+
+#: html/inc/user.inc:244
+msgid "When and how BOINC uses your computer"
+msgstr "Quando e como o BOINC usa seu computador"
+
+#: html/inc/user.inc:245
+msgid "Computing preferences"
+msgstr "Preferências de computação"
+
+#: html/inc/user.inc:248
+msgid "Message boards and private messages"
+msgstr "Quadro de mensagens e mensagens privadas"
+
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
+msgid "Community preferences"
+msgstr "Preferências da comunidade"
+
+#: html/inc/user.inc:252
+msgid "Preferences for this project"
+msgstr "Preferências deste projeto"
+
+#: html/inc/user.inc:253 html/user/prefs.php:30
+msgid "%1 preferences"
+msgstr "%1 preferências"
+
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Ver o perfil de %1"
+
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Perfil"
+
+#: html/inc/user.inc:327
+msgid "Create"
+msgstr "Criar"
+
+#: html/inc/user.inc:334 html/inc/user.inc:473
+msgid "%1 posts"
+msgstr "%1 posts"
+
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
+msgid "Notifications"
+msgstr "Notificações"
+
+#: html/inc/user.inc:358
+msgid "Quit team"
+msgstr "Sair da equipe"
+
+#: html/inc/user.inc:360 html/inc/user.inc:377
+msgid "Administer"
+msgstr "Administrar"
+
+#: html/inc/user.inc:366 html/inc/user.inc:379
+msgid "(foundership change request pending)"
+msgstr "(solicitação de troca da fundação pendente)"
+
+#: html/inc/user.inc:368
+msgid "Member of team"
+msgstr "Membro da equipe"
+
+#: html/inc/user.inc:370
+msgid "find a team"
+msgstr "encontrar uma equipe"
+
+#: html/inc/user.inc:381
+msgid "Founder but not member of"
+msgstr "Fundador mas não membro de"
+
+#: html/inc/user.inc:387
+msgid "Find friends"
+msgstr "Encontrar amigos"
+
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
+msgid "Friends"
+msgstr "Amigos"
+
+#: html/inc/user.inc:428 html/inc/user.inc:434
+msgid "Donor"
+msgstr "Doador"
+
+#: html/inc/user.inc:477
+msgid "Contact"
+msgstr "Contato"
+
+#: html/inc/user.inc:480
+msgid "This person is a friend"
+msgstr "Esta pessoa é um amigo"
+
+#: html/inc/user.inc:481 html/user/friend.php:240
+msgid "Cancel friendship"
+msgstr "Cancelar amizade"
+
+#: html/inc/user.inc:484 html/user/friend.php:39
+msgid "Request pending"
+msgstr "Solicitação pendente"
+
+#: html/inc/user.inc:486
+msgid "Add as friend"
+msgstr "Adicionar como amigo"
+
+#: html/inc/user.inc:545
+msgid "user name cannot have leading or trailing white space"
+msgstr "nome de usuário nao pode ter espaço em branco no início ou no fim"
+
+#: html/inc/user.inc:549
+msgid "user name must be nonempty"
+msgstr "nome de usuário no pode ser vazio"
+
+#: html/inc/user.inc:553
+msgid "user name may not contain HTML tags"
+msgstr "nome de usuário não pode conter etiquetas HTML"
+
+#: html/inc/util.inc:163
+msgid "log out"
+msgstr "sair"
+
+#: html/inc/util.inc:165
+msgid "log in"
+msgstr "entrar"
+
+#: html/inc/util.inc:269
+msgid "Create an account"
+msgstr "Criar uma conta"
+
+#: html/inc/util.inc:270
+msgid "Server status page"
+msgstr "Página de status do servidor"
+
+#: html/inc/util.inc:313
+msgid ""
+"A database error occurred while handling your request; please try again "
+"later."
+msgstr "Ocorreu um erro na base de dados durante o processamento de seu pedido; por favor tente novamente mais tarde."
+
+#: html/inc/util.inc:322
+msgid "Unable to handle request"
+msgstr "Não foi possível processar o pedido"
+
+#: html/inc/util.inc:342
+msgid "hours"
+msgstr "horas"
+
+#: html/inc/util.inc:345
+msgid "min"
+msgstr "min"
+
+#: html/inc/util.inc:348
+msgid "sec"
+msgstr "segundos"
+
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "O link expirou. Clique Voltar, recarregue a página, e tente de novo."
+
+#: html/inc/util.inc:606
+msgid "Use BBCode tags to format your text"
+msgstr "Use etiquetas BBCode para formatar seu texto"
+
+#: html/inc/util.inc:853
+msgid "Project down for maintenance"
+msgstr "Projeto fora do ar para manutenção"
+
+#: html/inc/util.inc:856
+msgid "%1 is temporarily shut down for maintenance.  Please try again later."
+msgstr "$1 está temporariamente desligado para manutenção. Por favor, tente mais tarde."
+
+#: html/inc/util.inc:874
+msgid "Unable to connect to database - please try again later"
+msgstr "Não foi possível conectar com a base de dados - por favor, tente mais tarde"
+
+#: html/inc/util.inc:878
+msgid "Unable to select database - please try again later"
+msgstr "Não foi possível selecionar a base de dados - por favor, tente mais tarde"
+
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "caracteres remanescentes"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
+msgid "Stay logged in on this computer"
+msgstr "Permanecer logado neste computador"
+
+#: html/user/account_finish_action.php:27
+msgid "You must supply a name for your account"
+msgstr "Você deve escolher um nome para sua conta"
+
+#: html/user/account_finish_action.php:30
+msgid "HTML tags not allowed in name"
+msgstr "Etiquetas HTML não são permitidas no nome"
+
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Terminar a configuração da conta"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Editar %1 preferências"
+
+#: html/user/add_venue.php:82
+msgid "Add %1 preferences for %2"
+msgstr "Adicionar %1 preferências para %2"
+
+#: html/user/apps.php:33
+msgid ""
+"%1 currently has the following applications. When you participate in %1, "
+"tasks for one or more of these applications will be assigned to your "
+"computer. The current version of the application will be downloaded to your "
+"computer. This happens automatically; you don't have to do anything."
+msgstr "%1 tem no momento as seguintes aplicações. Quando você participa no %1, tarefas para uma ou mais destas aplicações serão designadas para seu computador. A versão atual da aplicação será baixada para seu computador. Isto ocorre automaticamente; você não precisa fazer nada."
+
+#: html/user/apps.php:55
+msgid "Platform"
+msgstr "Plataforma"
+
+#: html/user/apps.php:56
+msgid "Version"
+msgstr "Versão"
+
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Computação média"
+
+#: html/user/bbcode.php:23
+msgid "BBCode tags"
+msgstr "Etiquetas BBCode"
+
+#: html/user/bbcode.php:25
+msgid ""
+"BBCode tags let you format text in your profile and message-board postings.\n"
+"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
+"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
+"HTML)."
+msgstr "Etiquetas BBCode permitem formatar texto em seu perfil e postagens em\nquadros de mensagens. É similar ao HTML, porém mais simples. As etiquetas\ncomeçam com um [ (onde você usaria %1 no HTML) e terminam com ] (onde\nvocê usaria %2 no HTML)."
+
+#: html/user/bbcode.php:31
+msgid "Examples"
+msgstr "Exemplos"
+
+#: html/user/bbcode.php:32
+msgid "Bold"
+msgstr "Negrito"
+
+#: html/user/bbcode.php:33
+msgid "Italic"
+msgstr "Itálico"
+
+#: html/user/bbcode.php:34
+msgid "Underline"
+msgstr "Sublinhado"
+
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Riscado"
+
+#: html/user/bbcode.php:36
+msgid "Superscript"
+msgstr "Sobrescrito"
+
+#: html/user/bbcode.php:37
+msgid "Big text"
+msgstr "Texto grande"
+
+#: html/user/bbcode.php:38
+msgid "Red text"
+msgstr "Texto em vermelho"
+
+#: html/user/bbcode.php:39
+msgid "link to website"
+msgstr "link para um website"
+
+#: html/user/bbcode.php:40
+msgid "Quoted text"
+msgstr "Texto de citação"
+
+#: html/user/bbcode.php:40
+msgid "use for quoted blocks of text"
+msgstr "use para blocos ou texto de citação"
+
+#: html/user/bbcode.php:41
+msgid "use to display an image"
+msgstr "use para mostrar uma imagem"
+
+#: html/user/bbcode.php:42
+msgid "Code snippet here"
+msgstr "Codificar snippet aqui"
+
+#: html/user/bbcode.php:42
+msgid "use to display some code"
+msgstr "use para mostrar algum código"
+
+#: html/user/bbcode.php:43
+msgid "Pre-formatted text"
+msgstr "Texto pré-formatado"
+
+#: html/user/bbcode.php:43
+msgid "use to display pre-formatted (usually monospaced) text"
+msgstr "use para mostrar texto pré-formatado (normalmente mono-espaçado)"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 1"
+msgstr "Item 1"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item2"
+msgstr "Item2"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 2"
+msgstr "Item 2"
+
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "link para um problema no repositório do BOINC no Github"
+
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "link para uma página Wiki no repositório do BOINC no Github"
+
+#: html/user/bbcode.php:55
+msgid ""
+"If you don't close a tag or don't specify a parameter correctly,\n"
+"the raw tag itself will display instead of the formatted text."
+msgstr "Se você não fechar uma etiqueta ou não especificar um parâmetro corretamente,\na etiqueta pura vai ser exibida ao invés do texto formatado."
+
+#: html/user/create_account_action.php:26
+msgid "Can't create account"
+msgstr "Não foi possível criar a conta"
+
+#: html/user/create_account_action.php:29
+msgid "Click your browser's <b>Back</b> button to try again."
+msgstr "Clique no botão <b>Voltar</b> de seu navegador para tentar novamente."
+
+#: html/user/create_account_action.php:44
+msgid "Your reCAPTCHA response was not correct. Please try again."
+msgstr "reCAPTCHA incorreto. Por favor, tente novamente."
+
+#: html/user/create_account_action.php:67
+msgid "You must supply an invitation code to create an account."
+msgstr "Você deve fornecer um código de convite para criar uma conta."
+
+#: html/user/create_account_action.php:70
+msgid "The invitation code you gave is not valid."
+msgstr "O código de convite fornecido não é válido."
+
+#: html/user/create_account_action.php:81
+msgid ""
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Endereço de email inválido: você deve inserir um endereço válido na forma nome at domínio"
+
+#: html/user/create_account_action.php:85
+msgid "There's already an account with that email address."
+msgstr "Já existe uma conta com este endereço de email."
+
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
+msgid "New passwords are different"
+msgstr "Novas senhas são diferentes"
+
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
+msgid "Passwords may only include ASCII characters."
+msgstr "Senhas devem incluir apenas caracteres ASCII."
+
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
+msgid "New password is too short: minimum password length is %1 characters."
+msgstr "A nova senha é muito curta: tamanho mínimo da senha é de %1 caracteres."
+
+#: html/user/create_account_action.php:124
+msgid "Couldn't create account"
+msgstr "Não foi possível criar a conta"
+
+#: html/user/create_account_form.php:46
+msgid ""
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "NOTA: para rodar %1 em seu computador, %2vá aqui%3 ao invés de usar este formulário."
+
+#: html/user/create_account_form.php:63
+msgid ""
+"This account will belong to the team %1 and will have the project "
+"preferences of its founder."
+msgstr "Esta conta pertencerá à equipe %1 e terá as preferências do projeto de seu fundador."
+
+#: html/user/create_profile.php:53
+msgid "Picture"
+msgstr "Imagem"
+
+#: html/user/create_profile.php:67
+msgid "%1 Your profile picture is shown to the left."
+msgstr "%1 Sua imagem de perfil está exibida na esquerda."
+
+#: html/user/create_profile.php:69
+msgid ""
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Para substituí-la, clique no botão \"Procurar\" e selecione um arquivo JPEG ou PNG (%1 ou menor)."
+
+#: html/user/create_profile.php:72
+msgid "To remove it from your profile, check this box:"
+msgstr "Para remover de seu perfil, marque esta caixa."
+
+#: html/user/create_profile.php:80
+msgid ""
+"If you would like include a picture with your profile, click the \"Browse\" "
+"button and select a JPEG or PNG file. Please select images of %1 or less."
+msgstr "Se você preferir incluir uma imagem no seu perfil, clique no botão \"Procurar\" e selecione um arquivo JPEG ou PNG. Favor selecionar imagens de %1 ou menores."
+
+#: html/user/create_profile.php:92
+msgid "Language"
+msgstr "Idioma"
+
+#: html/user/create_profile.php:95
+msgid "Select the language in which your profile is written:"
+msgstr "Selecione o idioma em que seu perfil está escrito:"
+
+#: html/user/create_profile.php:107
+msgid "Submit profile"
+msgstr "Enviar perfil"
+
+#: html/user/create_profile.php:113
+msgid "Create/edit profile"
+msgstr "Criar/editar perfil"
+
+#: html/user/create_profile.php:135
+msgid "The format of your uploaded image is not supported."
+msgstr "O formato de sua imagem enviada não é suportado."
+
+#: html/user/create_profile.php:164
+msgid ""
+"Your %1profile%2 lets you share your opinions and background with the %3 "
+"community."
+msgstr "Seu %1perfil%2 permite que você compartilhe suas opiniões e histórico com a %3 comunidade."
+
+#: html/user/create_profile.php:208
+msgid "Your ReCaptcha response was not correct.  Please try again."
+msgstr "Sua resposta ReCaptcha está incorreta. Por favor, tente de novo."
+
+#: html/user/create_profile.php:217
+msgid ""
+"Your first response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Sua primeira resposta foi marcada como spam pelo sistema anti-spam Akismet. Favor modificar seu texto e tentar novamente."
+
+#: html/user/create_profile.php:225
+msgid ""
+"Your second response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Sua segunda resposta foi marcada como spam pelo sistema anti-spam Akismet. Favor modificar seu texto e tentar novamente."
+
+#: html/user/create_profile.php:241
+msgid "Your profile submission was empty."
+msgstr "Sua submissão de perfil estava vazia."
+
+#: html/user/create_profile.php:282
+msgid "Could not update the profile: database error"
+msgstr "Não foi possível atualizar o perfil: erro na base de dados"
+
+#: html/user/create_profile.php:298
+msgid "Could not create the profile: database error"
+msgstr "Não foi possível criar o perfil: erro na base de dados"
+
+#: html/user/create_profile.php:303
+msgid "Profile saved"
+msgstr "Perfil salvo"
+
+#: html/user/create_profile.php:305
+msgid ""
+"Congratulations! Your profile was successfully entered into our database."
+msgstr "Parabéns! Seu perfil foi inserido em nossa base de dados com sucesso."
+
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Veja seu perfil"
+
+#: html/user/create_profile.php:318
+msgid "Create a profile"
+msgstr "Criar um perfil"
+
+#: html/user/create_profile.php:346
+msgid ""
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Para prevenir spam, uma média de crédito de %1 ou maior é necessária para criar ou editar um perfil. Nós pedimos desculpas pelo inconveniente."
+
+#: html/user/delete_account.php:57
+msgid "Couldn't delete account"
+msgstr "Não foi possível deletar a conta"
+
+#: html/user/delete_account.php:59
+msgid "Account deleted"
+msgstr "Conta deletada"
+
+#: html/user/delete_account.php:60
+msgid "Your account has been deleted."
+msgstr "Sua conta foi deletada."
+
+#: html/user/delete_account.php:64
+msgid "Confirm delete account"
+msgstr "Cofirmar exclusão da conta"
+
+#: html/user/delete_account.php:67
+msgid ""
+"Deleting your account will remove all of your\n"
+"personal information from our servers,\n"
+"including your profile and message-board posts.\n"
+"No jobs will be issued to any computers attached\n"
+"to this account."
+msgstr "Ao deletar sua conta você removerá todas as\nsuas informações pessoais de nossos servidores,\nincluindo seu perfil e posts nos quadros de mensagem.\nNenhum trabalho será enviado a qualquer computador\nligado a esta conta."
+
+#: html/user/delete_account.php:73
+msgid ""
+"This cannot be undone.\n"
+"Once your account has been deleted, you cannot get it back."
+msgstr "Isto não pode ser desfeito.\nUma vez deletada a conta, você não pode recuperá-la."
+
+#: html/user/delete_account.php:76
+msgid "Are you sure you want to delete your account?"
+msgstr "Você tem certeza que quer deletar sua conta?"
+
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
+msgid "Yes"
+msgstr "Sim"
+
+#: html/user/delete_account.php:79
+msgid "Delete this account"
+msgstr "Deletar esta conta"
+
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
+msgid "No"
+msgstr "Não"
+
+#: html/user/delete_account.php:80
+msgid "Do not delete this account"
+msgstr "Não deletar esta conta"
+
+#: html/user/delete_profile.php:32
+msgid "couldn't delete profile - please try again later"
+msgstr "não foi possível deletar o perfil - por favor, tente mais tarde"
+
+#: html/user/delete_profile.php:35
+msgid "Delete Confirmation"
+msgstr "Confirmação de exclusão"
+
+#: html/user/delete_profile.php:37
+msgid "Your profile has been deleted."
+msgstr "Seu perfil foi deletado."
+
+#: html/user/delete_profile.php:42
+msgid "Profile delete confirmation"
+msgstr "Confirmação de exclusão de perfil"
+
+#: html/user/delete_profile.php:45
+msgid "Are you sure?"
+msgstr "Você tem certeza?"
+
+#: html/user/delete_profile.php:46
+msgid ""
+"Deleted profiles are gone forever and cannot be recovered --\n"
+"you will have to start from scratch\n"
+"if you want another profile in the future."
+msgstr "Os perfis são deletados para sempre e não podem ser\nrecuperados -- você terá que iniciar\ndo começose você quiser outro perfil no futuro."
+
+#: html/user/delete_profile.php:50
+msgid ""
+"If you're sure, click 'Yes'\n"
+"to remove your profile from our database."
+msgstr "Se você tiver certeza, clique 'Sim'\npara remover seu perfil de nossa base de dados."
+
+#: html/user/delete_profile.php:54
+msgid "Delete my profile"
+msgstr "Deletar meu perfil"
+
+#: html/user/delete_profile.php:55
+msgid "Do not delete my profile"
+msgstr "Não deletar meu perfil"
+
+#: html/user/donated.php:25
+msgid "PayPal - Transaction Completed"
+msgstr "PayPal - Transação Finalizada"
+
+#: html/user/donated.php:28
+msgid "Thank you for donating!"
+msgstr "Obrigado pela sua doação!"
+
+#: html/user/donated.php:29
+msgid "Your donation for has been completed."
+msgstr "Sua doação foi finalizada."
+
+#: html/user/donated.php:30
+msgid ""
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "Sua doação será adicionada à barra de progresso após a confirmação pelo PayPal."
+
+#: html/user/donated.php:32
+msgid "You have canceled your donation."
+msgstr "Você cancelou sua doação."
+
+#: html/user/donations.php:24
+msgid "This project is not accepting donations."
+msgstr "Este projeto não está aceitando doações."
+
+#: html/user/donations.php:34
+msgid "%1 donations"
+msgstr "$1 doações"
+
+#: html/user/donations.php:39
+msgid ""
+"This project is accepting donations via\n"
+"%1."
+msgstr "Este projeto está aceitando doações atrave´s de \n%1."
+
+#: html/user/donations.php:41
+msgid ""
+"To donate, fill in the amount you want to donate using the field below.\n"
+"        PayPal is accepting multiple currencies\n"
+"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
+"         Yen, Australian Dollars, New Zealand Dollars,\n"
+"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
+"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
+"        Hungarian Forint, Czech Koruna).\n"
+"        You can use included currency converter\n"
+"        to see the donation amount equivalent in different currencies\n"
+"        (please note that the rates are only estimates\n"
+"         and the actual amount may differ)."
+msgstr "Para doar, preencha a quantia que você quer doar usando os campos abaixo.\nPayPal está aceitando múltiplas moedas\n(Dólares Canadenses, Euros, Libras Esterlinas, Dólares Americanos,\nYen, Dólares Australianos, Dólares Neozelandeses,\nFrancos Suíços, Dólares de Hong Kong, Dólares de Singapura, Coroa Sueca,\nCoroa Dinamarquesa, Zloty Polonês, Coroa Norueguesa,\nForint Húngaro, Coroa Checa).\nVocê pode usar o conversor de moedas incluso\npara ver a quantia equivalente da doação em o [...]
+
+#: html/user/donations.php:315
+msgid "Amount you would like to donate"
+msgstr "Quantia que você gostaria de doar"
+
+#: html/user/donations.php:316
+msgid "Estimated value in"
+msgstr "Valor estimado em"
+
+#: html/user/donations.php:319 html/user/donations.php:323
+msgid "Anonymous donation"
+msgstr "Doação anônima"
+
+#: html/user/donations.php:319
+msgid ""
+"Select this if you dont want your name and account number displayed in\n"
+"donator lists.<br>If not checked, you will be recorded as user ID %1"
+msgstr "Selecione se você não quiser seu nome e número de conta dísponibilizados\nna lista de doadores.<br>Caso não selecionado, você será marcado como ID de\nusuário %1"
+
+#: html/user/donations.php:323
+msgid "To assign the donation with your user ID, please log in."
+msgstr "Para marcar a doação com seu ID de usuário, favor fazer log in."
+
+#: html/user/donations.php:327
+msgid "Proceed"
+msgstr "Proceder"
+
+#: html/user/donations.php:328
+msgid "Donations are accepted through"
+msgstr "Doação são aceitas através de"
+
+#: html/user/download_network.php:25
+msgid "Download BOINC add-on software"
+msgstr "Baixar software add-on para o BOINC"
+
+#: html/user/download_network.php:28
+msgid "You can download applications in several categories."
+msgstr "Você pode baixar aplicações em diversas categorias."
+
+#: html/user/download_network.php:31
+msgid ""
+"These applications are not endorsed by %1 and you use them at your own risk."
+msgstr "Estas aplicações não são indicadas por %1 e você as usa por conta e risco."
+
+#: html/user/download_network.php:33
+msgid ""
+"We do not provide instructions for installing these applications.\n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
+"If this is not enough you should contact the author."
+msgstr "Nós não providenciamos instruções para a instalação destas aplicações.\nNo entanto, o autor pode ter disponibilizado ajuda na instalação ou desinstalação da aplicação.\nCaso não seja suficiente você deve contatar o autor."
+
+#: html/user/download_network.php:36
+msgid "Instructions for installing and running BOINC are %1here%2."
+msgstr "Instruções para instalar e rodar o BOINC estão %1aqui%2."
+
+#: html/user/download_network.php:38
+msgid "This list is managed centrally at %1the BOINC website%2."
+msgstr "Esta lista é gerenciada centralmente no %1website da BOINC%2."
+
+#: html/user/edit_email_action.php:31
+msgid "Change email address of account"
+msgstr "Alterar endereço de email da conta"
+
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
+msgid "New email address '%1' is invalid."
+msgstr "Novo endereço de email '%1' é inválido."
+
+#: html/user/edit_email_action.php:38
+msgid "New email address is same as existing address. Nothing is changed."
+msgstr "Novo endereço de email é igual ao endereço existente. Nada foi alterado."
+
+#: html/user/edit_email_action.php:42
+msgid "There's already an account with that email address"
+msgstr "Já existe uma conta com este endereço de email"
+
+#: html/user/edit_email_action.php:54
+msgid "Invalid password."
+msgstr "Senha inválida."
+
+#: html/user/edit_email_action.php:62
+msgid "The email address of your account is now %1."
+msgstr "O endereço de email da sua conta agora é %1."
+
+#: html/user/edit_email_action.php:64
+msgid "Please %1validate this email address%2."
+msgstr "Por favor, %1valide este endereço de email%2."
+
+#: html/user/edit_email_action.php:67
+msgid ""
+"We can't update your email address due to a database problem.  Please try "
+"again later."
+msgstr "Nós não podemos atualizar este endereço de email devido a um problema na base de dados. Por favor tente mais tarde."
+
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
+msgid "Change email address"
+msgstr "Alterar endereço de email"
+
+#: html/user/edit_email_form.php:36
+msgid "Change the email address of your account"
+msgstr "Alterar endereço de email de sua conta"
+
+#: html/user/edit_email_form.php:37
+msgid "New email address"
+msgstr "Novo endereço de email"
+
+#: html/user/edit_email_form.php:38
+msgid "Must be a valid address of the form 'name at domain'"
+msgstr "É preciso ter um endereço válido na forma 'nome at dominio'"
+
+#: html/user/edit_email_form.php:48
+msgid "No password?"
+msgstr "Sem senha?"
+
+#: html/user/edit_forum_preferences_action.php:33
+msgid "Confirm reset"
+msgstr "Confirmar alteração"
+
+#: html/user/edit_forum_preferences_action.php:34
+msgid ""
+"This action will erase any changes you have made in your community "
+"preferences. To cancel, click your browser's Back button."
+msgstr "Esta ação irá apagar quaisquer mudanças feitas por você nas preferências de comunidade. Para cancelar, clique no botão Voltar de seu navegador."
+
+#: html/user/edit_forum_preferences_action.php:38
+msgid "Reset preferences"
+msgstr "Restaurar preferências"
+
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
+msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
+msgstr "Erro: Tipo errado de arquivo, somente PNG e JPEG são suportados."
+
+#: html/user/edit_forum_preferences_action.php:120
+msgid "Your signature was too long, please keep it less than 250 characters."
+msgstr "Sua assinatura era muito longa, por favor deixe-a menor que 250 caracteres."
+
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Usuário não existe:"
+
+#: html/user/edit_forum_preferences_form.php:45
+msgid ""
+"How should we notify you of new private messages, friend requests, posts in "
+"subscribed threads, and other events?"
+msgstr "Como devemos notificá-lo de novas mensagens privadas, pedidos de amizadde, posts em assuntos subscritos, e outros eventos?"
+
+#: html/user/edit_forum_preferences_form.php:46
+msgid "On my Account page (no email)"
+msgstr "Na minha página da Conta (sem email)"
+
+#: html/user/edit_forum_preferences_form.php:47
+msgid "Immediately, by email"
+msgstr "Imediatamente, por email"
+
+#: html/user/edit_forum_preferences_form.php:48
+msgid "In a single daily email"
+msgstr "Em um único email diário"
+
+#: html/user/edit_forum_preferences_form.php:65
+msgid "Message-board identity"
+msgstr "Identidade no quadro de mensagens"
+
+#: html/user/edit_forum_preferences_form.php:66
+msgid "Avatar"
+msgstr "Avatar"
+
+#: html/user/edit_forum_preferences_form.php:67
+msgid "An image representing you on the message boards."
+msgstr "Uma imagem o representando no quadro de mensagens."
+
+#: html/user/edit_forum_preferences_form.php:68
+msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
+msgstr "Formato: JPG ou PNG. Tamanho: no máximo 4 KB, 100x100 pixels"
+
+#: html/user/edit_forum_preferences_form.php:70
+msgid "Don't use an avatar"
+msgstr "Não usar um avatar"
+
+#: html/user/edit_forum_preferences_form.php:72
+msgid "Use a Globally Recognized Avatar provided by %1"
+msgstr "Usar um Avatar Globalmente Reconhecido providenciado por %1"
+
+#: html/user/edit_forum_preferences_form.php:74
+msgid "Use this uploaded avatar:"
+msgstr "Usar este avatar enviado:"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "Avatar preview"
+msgstr "Pré-visualização do Avatar"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "This is how your avatar will look"
+msgstr "Seu avatar parecerá assim"
+
+#: html/user/edit_forum_preferences_form.php:86
+msgid "Signature for message board posts"
+msgstr "Assinatura para posts em quadros de mensagens"
+
+#: html/user/edit_forum_preferences_form.php:89
+msgid ""
+"Check out %1various free services%2\n"
+"<br> providing dynamic 'signature images'\n"
+"<br> showing your latest credit info, project news, etc."
+msgstr "Veja %1vários serviços gratuitos%2\n<br> oferecendo 'imagens características' dinâmicas\n<br> mostrando suas últimas informações de créditos, notícias de projetos, etc."
+
+#: html/user/edit_forum_preferences_form.php:93
+msgid "Attach signature by default"
+msgstr "Anexar assinatura por padrão"
+
+#: html/user/edit_forum_preferences_form.php:96
+msgid "Signature preview"
+msgstr "Pré-visualização da assinatura"
+
+#: html/user/edit_forum_preferences_form.php:97
+msgid "This is how your signature will look in the forums"
+msgstr "Sua assinatura parecerá assim nos fóruns"
+
+#: html/user/edit_forum_preferences_form.php:115
+msgid "Message display"
+msgstr "Painel de mensagem"
+
+#: html/user/edit_forum_preferences_form.php:117
+msgid "What to display"
+msgstr "O que mostrar"
+
+#: html/user/edit_forum_preferences_form.php:118
+msgid "Hide avatar images"
+msgstr "Esconder imagens de avatar"
+
+#: html/user/edit_forum_preferences_form.php:119
+msgid "Hide signatures"
+msgstr "Esconder assinaturas"
+
+#: html/user/edit_forum_preferences_form.php:120
+msgid "Show images as links"
+msgstr "Mostrar imagens como links"
+
+#: html/user/edit_forum_preferences_form.php:121
+msgid "Open links in new window/tab"
+msgstr "Abrir links em nova janela/aba"
+
+#: html/user/edit_forum_preferences_form.php:122
+msgid "Highlight special users"
+msgstr "Destacar usuários especiais"
+
+#: html/user/edit_forum_preferences_form.php:123
+msgid "Display this many messages per page"
+msgstr "Mostra esse numero de mensagens por pagina"
+
+#: html/user/edit_forum_preferences_form.php:127
+msgid "How to sort"
+msgstr "Como ordenar"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Threads:"
+msgstr "Assuntos:"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Posts:"
+msgstr "Posts:"
+
+#: html/user/edit_forum_preferences_form.php:129
+msgid "Jump to first new post in thread automatically"
+msgstr "Pular para o proximo post mais novo na discussão automaticamente"
+
+#: html/user/edit_forum_preferences_form.php:130
+msgid "Don't move sticky posts to top"
+msgstr "Não mover posts adesivos ao topo"
+
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
+msgid "Message filtering"
+msgstr "Filtragem de mensagens"
+
+#: html/user/edit_forum_preferences_form.php:153
+msgid "Filtered users"
+msgstr "Mensagens filtradas"
+
+#: html/user/edit_forum_preferences_form.php:154
+msgid "Ignore message board posts and private messages from these users."
+msgstr "Ignorar posts no quadro de mensagens e mensagens privadas desses usuários."
+
+#: html/user/edit_forum_preferences_form.php:156
+msgid "User ID (For instance: 123456789)"
+msgstr "ID do usuário (Exemplo: 123456789)"
+
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
+msgid "Add user to filter"
+msgstr "Adicionar usuário no filtro"
+
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Click here to update preferences"
+msgstr "Clique aqui para atualizar as preferencias"
+
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
+msgid "Reset"
+msgstr "Reiniciar"
+
+#: html/user/edit_forum_preferences_form.php:165
+msgid "Or click here to reset preferences to the defaults"
+msgstr "Ou clique aqui para redefinir as preferências para o padrão"
+
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Não pudemos atualizar sua senha por um problema na base de dados. Favor tentar mais tarde."
+
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "Trocar senha"
+
+#: html/user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "Sua senha foi alterada."
+
+#: html/user/edit_passwd_form.php:32
+msgid "New password"
+msgstr "Nova senha"
+
+#: html/user/edit_passwd_form.php:33
+msgid "New password, again"
+msgstr "Nova senha, de novo"
+
+#: html/user/edit_user_info_action.php:31
+msgid "HTML tags are not allowed in your name."
+msgstr "Etiquetas HTML não são permitidas no nome."
+
+#: html/user/edit_user_info_action.php:34
+msgid "You must supply a name for your account."
+msgstr "Você deve fornecer um nome para sua conta."
+
+#: html/user/edit_user_info_action.php:58
+msgid "Couldn't update user info."
+msgstr "Não foi possível atualizar as informações de usuário."
+
+#: html/user/edit_user_info_form.php:27
+msgid "Edit account information"
+msgstr "Editar informações da conta"
+
+#: html/user/edit_user_info_form.php:32
+msgid "Name %1 real name or nickname%2"
+msgstr "Nome %1 nome real ou apelido%2"
+
+#: html/user/edit_user_info_form.php:35
+msgid "URL %1 of your web page; optional%2"
+msgstr "URL %1 da sua página da web; opcional%2"
+
+#: html/user/edit_user_info_form.php:44
+msgid "Postal (ZIP) code %1 Optional%2"
+msgstr "Código postal (CEP) %1 Opcional%2"
+
+#: html/user/edit_user_info_form.php:48
+msgid "Update info"
+msgstr "Atualizar informações"
+
+#: html/user/explain_state.php:27
+msgid "Server states"
+msgstr "Estados no servidor"
+
+#: html/user/explain_state.php:30
+msgid ""
+"A tasks's <b>server state</b> indicates whether the task has been sent to a "
+"computer, and if so whether the computer has finished it. Possible values "
+"are:"
+msgstr "O <b>estado n o servidor</b> de uma tarefa indica se a tarefa foi enviada para um  computador, e, caso tenha sido, se o computador a completou. Possíveis valores são:"
+
+#: html/user/explain_state.php:35
+msgid ""
+"The task is not ready to send (for example, because its input files are "
+"unavailable)"
+msgstr "A tarefa não está pronta para ser enviada (por exemplo, porquê seus arquivos de entrada estão indisponíveis)"
+
+#: html/user/explain_state.php:38
+msgid "The task is ready to send, but hasn't been sent yet."
+msgstr "A tarefa está pronta para ser enviada, mas ainda não foi."
+
+#: html/user/explain_state.php:40
+msgid "In Progress"
+msgstr "Em progresso"
+
+#: html/user/explain_state.php:41
+msgid "The task has been sent; waiting for completion."
+msgstr "A tarefa foi enviada; aguardando finalização."
+
+#: html/user/explain_state.php:44
+msgid ""
+"The task has been sent to a computer and either it has timed out or the "
+"computer has reported its completion."
+msgstr "A tarefa foi enviada a um computador e ou o tempo expirou ou o computador reportou sua finalização."
+
+#: html/user/explain_state.php:49
+msgid "Outcomes"
+msgstr "Resultados"
+
+#: html/user/explain_state.php:52
+msgid ""
+"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
+"Possible values are:"
+msgstr "O <b>resultado</b> de uma tarefa é definido se seu estado no servidor é <b>finalizada</b>. Possíveis valores são:"
+
+#: html/user/explain_state.php:57
+msgid ""
+"The task was sent to a computer, but the computer has not yet completed the "
+"work and reported the outcome."
+msgstr "A tarefa foi enviada a um computador, mas o computador ainda não completou o trabalho e reportou o resultado."
+
+#: html/user/explain_state.php:60
+msgid "A computer completed and reported the task successfully."
+msgstr "Um computador completou e reportou a tarefa com sucesso."
+
+#: html/user/explain_state.php:63
+msgid ""
+"The server wasn't able to send the task to a computer (perhaps because its "
+"resource requirements were too large)"
+msgstr "O servidor não conseguiu enviar a tarefa a um computador (talvez porque seus requisitos de recursos eram muito altos)"
+
+#: html/user/explain_state.php:65
+msgid "Client error"
+msgstr "Erro do cliente"
+
+#: html/user/explain_state.php:66
+msgid "The task was sent to a computer and an error occurred."
+msgstr "A tarefa foi enviada para um computador e um erro ocorreu."
+
+#: html/user/explain_state.php:69
+msgid ""
+"The task was sent to a computer and no reply was received within the time "
+"limit."
+msgstr "A tarefa foi enviada a um computador e nenhuma resposta foi recebida no limite de tempo."
+
+#: html/user/explain_state.php:72
+msgid ""
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "A tarefa não foi enviada a um computador porque muitas outras tarefas foram completadas por esta unidade de trabalho."
+
+#: html/user/explain_state.php:75
+msgid ""
+"The task was reported but could not be validated, typically because the "
+"output files were lost on the server."
+msgstr "A tarefa foi reportada mas não pôde ser validade, tipicamente porque os arquivos de saída foram perdidos no servidor."
+
+#: html/user/explain_state.php:80
+msgid "Client states"
+msgstr "Estados no cliente"
+
+#: html/user/explain_state.php:81
+msgid ""
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "O <b>estado no cliente</b> de um resultado indica o estágio de processamento em que o erro ocorreu."
+
+#: html/user/explain_state.php:86
+msgid "The computer has not yet completed the task."
+msgstr "O computador ainda não completou a tarefa."
+
+#: html/user/explain_state.php:89
+msgid "The computer completed the task successfully."
+msgstr "O computador completou a tarefa com sucesso."
+
+#: html/user/explain_state.php:92
+msgid "The computer couldn't download the application or input files."
+msgstr "O computador não conseguiu baixar o aplicativo ou arquivos de entrada."
+
+#: html/user/explain_state.php:95
+msgid "An error occurred during computation."
+msgstr "Um erro ocorreu durante a computação."
+
+#: html/user/explain_state.php:98
+msgid "The computer couldn't upload the output files."
+msgstr "O computador não conseguiu fazer upload dos arquivos de saída."
+
+#: html/user/explain_state.php:103
+msgid "Time reported and deadline"
+msgstr "Tempo reportado e prazo final"
+
+#: html/user/explain_state.php:106
+msgid ""
+"A task's <b>Time reported or deadline</b> field depends on whether the task "
+"has been reported yet:"
+msgstr "O campo <b>Tempo reportado ou prazo final</b> de uma tarefa depende da tarefa já ter sido reportada:"
+
+#: html/user/explain_state.php:110
+msgid "Already reported"
+msgstr "Já reportada"
+
+#: html/user/explain_state.php:110
+msgid "The date/time it was reported"
+msgstr "A data/hora que foi reportada"
+
+#: html/user/explain_state.php:111
+msgid "Not reported yet, deadline in the future"
+msgstr "Ainda não reportada, prazo final no futuro"
+
+#: html/user/explain_state.php:112
+msgid "Deadline, shown in green."
+msgstr "Prazo final, em verde"
+
+#: html/user/explain_state.php:114
+msgid "Not reported yet, deadline in the past"
+msgstr "Ainda não reportada, prazo final já passado"
+
+#: html/user/explain_state.php:115
+msgid "Deadline, shown in red."
+msgstr "Prazo final, em vermelho."
+
+#: html/user/explain_state.php:120
+msgid "Unknown field"
+msgstr "Campo desconhecido"
+
+#: html/user/ffmail_action.php:28
+msgid "Sending emails"
+msgstr "Enviando emails"
+
+#: html/user/ffmail_action.php:43
+msgid "failed to send email to %1: %2"
+msgstr "falha ao enviar email a %1: %2"
+
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "falha ao enviar email a %1"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "email enviado com sucesso para %1"
+
+#: html/user/ffmail_action.php:55
+msgid "Thanks for telling your friends about %1"
+msgstr "Obrigado por contar a seus amigos sobre %1"
+
+#: html/user/ffmail_action.php:57
+msgid ""
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Você esqueceu de inserir endereços de email; Por favor %1retorne ao formulário%2 e os insira."
+
+#: html/user/ffmail_form.php:33
+msgid "Tell your friends about %1"
+msgstr "Conte a seus amigos sobre %1"
+
+#: html/user/ffmail_form.php:49
+msgid ""
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Use este formulário para enviar mensagens de email à pessoas que você acha estarem interessados em %1."
+
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "Para:"
+
+#: html/user/ffmail_form.php:59
+msgid "Send"
+msgstr "Enviar"
+
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
+msgid "You are not authorized to banish users."
+msgstr "Você não tem autorização para banir usuários."
+
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Você deve especificar uma ação..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Obsceno"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Email de Reclamação/Ódio"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Requerimento de Usuário"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
+msgid "Banishment Vote"
+msgstr "Voto de Banimento"
+
+#: html/user/forum_banishment_vote.php:52
+msgid "No user with this ID found."
+msgstr "Nenhum usuário com este ID encontrado."
+
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
+msgid "User is already banished"
+msgstr "Usuário já banido"
+
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
+msgid ""
+"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
+"for chosen time period.<br/>It should be done only if %1 has consistently "
+"exhibited trollish behavior."
+msgstr "Você tem certeza que quer banir %1?<br/>Isto vai impedir %1 de postar pelo período escolhido.<br/>Deve ser feito somente se %1 tenha exibido constantemente comportamento indecoroso."
+
+#: html/user/forum_banishment_vote.php:64
+msgid ""
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Selecione a categoria de razões, opcionalmente escreva uma descrição mais longa do porque o usuário deve ser banido."
+
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
+msgid "Category"
+msgstr "Categoria"
+
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
+msgid "Reason"
+msgstr "Razão"
+
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
+msgid "Mailed if nonempty"
+msgstr "Mailed if nonempty"
+
+#: html/user/forum_banishment_vote.php:78
+msgid "Proceed with vote"
+msgstr "Proceder com voto"
+
+#: html/user/forum_edit.php:41
+msgid ""
+"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
+"minutes after they have been created."
+msgstr "Você não pode mais editar este post.<br/>Posts somente podem ser editados no máximo %1 minutos depois de terem sido criados."
+
+#: html/user/forum_edit.php:47
+msgid "You are not authorized to edit this post."
+msgstr "Você não está autorizado a editar este post."
+
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Editar postagem"
+
+#: html/user/forum_edit.php:112
+msgid "Edit your message"
+msgstr "Editar sua mensagem"
+
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
+msgid "Title"
+msgstr "Título"
+
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
+msgid "Add my signature to this post"
+msgstr "Adicionar minha assinatura neste post"
+
+#: html/user/forum_forum.php:46
+msgid "Not visible to you"
+msgstr "Invisível para você"
+
+#: html/user/forum_forum.php:83
+msgid "Team message board for %1"
+msgstr "Quadro de mensagens da equipe para %1"
+
+#: html/user/forum_forum.php:100
+msgid "New thread"
+msgstr "Novo assunto"
+
+#: html/user/forum_forum.php:100
+msgid "Add a new thread to this forum"
+msgstr "Adicionar um novo assunto para este fórum"
+
+#: html/user/forum_forum.php:122
+msgid "This message board is available as an %1RSS feed%2"
+msgstr "Este quadro de mensagens está disponível como um %1RSS feed%2"
+
+#: html/user/forum_forum.php:181
+msgid "This thread is hidden"
+msgstr "Este assunto está oculto"
+
+#: html/user/forum_forum.php:185
+msgid "This thread is sticky and locked, and you haven't read it yet"
+msgstr "Este assunto é adesivo e bloqueado, e você ainda não o leu"
+
+#: html/user/forum_forum.php:185
+msgid "sticky/locked/unread"
+msgstr "adesivo/bloqueado/não lido"
+
+#: html/user/forum_forum.php:187
+msgid "This thread is sticky and you haven't read it yet"
+msgstr "Este assunto é adesivo e você ainda não o leu"
+
+#: html/user/forum_forum.php:187
+msgid "sticky/unread"
+msgstr "adesivo/não lido"
+
+#: html/user/forum_forum.php:191
+msgid "You haven't read this thread yet, and it's locked"
+msgstr "Voce ainda não leu este assunto, e ele está bloqueado"
+
+#: html/user/forum_forum.php:191
+msgid "unread/locked"
+msgstr "não lido/bloqueado"
+
+#: html/user/forum_forum.php:193
+msgid "You haven't read this thread yet"
+msgstr "Você ainda não leu este assunto"
+
+#: html/user/forum_forum.php:199
+msgid "This thread is sticky and locked"
+msgstr "Este assunto é adesivo e bloqueado"
+
+#: html/user/forum_forum.php:199
+msgid "sticky/locked"
+msgstr "adesivo/bloqueado"
+
+#: html/user/forum_forum.php:201
+msgid "This thread is sticky"
+msgstr "Este assunto é adesivo"
+
+#: html/user/forum_forum.php:201
+msgid "sticky"
+msgstr "adesivo"
+
+#: html/user/forum_forum.php:205
+msgid "This thread is locked"
+msgstr "Este assunto está bloqueado"
+
+#: html/user/forum_forum.php:205
+msgid "locked"
+msgstr "bloqueado"
+
+#: html/user/forum_forum.php:207
+msgid "You read this thread"
+msgstr "Você leu este assunto"
+
+#: html/user/forum_forum.php:207
+msgid "read"
+msgstr "lido"
+
+#: html/user/forum_help_desk.php:29
+msgid "Questions and answers"
+msgstr "Perguntas e respostas"
+
+#: html/user/forum_help_desk.php:32
+msgid ""
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Converse ao vivo pelo Skype com um voluntário, em qualquer de várias línguas. Vá para %1Ajuda Online do BOINC%2"
+
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
+msgid "Topic"
+msgstr "Tópico"
+
+#: html/user/forum_help_desk.php:48
+msgid "Questions"
+msgstr "Perguntas"
+
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
+msgid "Discussion among members of %1"
+msgstr "Discussões entre membros de %1"
+
+#: html/user/forum_index.php:80
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "Se você tem uma pergunta ou problema, use a seção %1Perguntas e Respostas%2 do quadro de mensagem."
+
+#: html/user/forum_index.php:125
+msgid "Subscribed threads"
+msgstr "Assuntos inscritos"
+
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Você não está autorizado a moderar este post."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Não é possível mover para um tipo de categoria diferente"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Não é possível mover para uma categoria diferente"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Não autorizado a banir usuários"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Banimento"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "Usuário %1 foi banido."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Ação falhou: possível problema na base de dados"
+
+#: html/user/forum_moderate_post.php:45
+msgid "Moderate post"
+msgstr "Moderar post"
+
+#: html/user/forum_moderate_post.php:55
+msgid "Hide post"
+msgstr "Ocultar post"
+
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
+msgid "Commercial spam"
+msgstr "Spam comercial"
+
+#: html/user/forum_moderate_post.php:63
+msgid "Doublepost"
+msgstr "Post duplo"
+
+#: html/user/forum_moderate_post.php:70
+msgid "Move post"
+msgstr "Mover post"
+
+#: html/user/forum_moderate_post.php:72
+msgid "Destination thread ID:"
+msgstr "ID do assunto de destino:"
+
+#: html/user/forum_moderate_post.php:85
+msgid "Banish user"
+msgstr "Banir usuário"
+
+#: html/user/forum_moderate_post.php:87
+msgid "Ban duration"
+msgstr "Duração do banimento"
+
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 horas"
+
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 horas"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
+msgid "1 day"
+msgstr "1 dia"
+
+#: html/user/forum_moderate_post.php:91
+msgid "1 week"
+msgstr "1 semana"
+
+#: html/user/forum_moderate_post.php:92
+msgid "2 weeks"
+msgstr "2 semanas"
+
+#: html/user/forum_moderate_post.php:93
+msgid "1 month"
+msgstr "1 mês"
+
+#: html/user/forum_moderate_post.php:94
+msgid "Forever"
+msgstr "Para sempre"
+
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
+msgid "OK"
+msgstr "OK"
+
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Explicação opcional %1 Isto é incluído no email ao usuário.%2"
+
+#: html/user/forum_moderate_thread.php:38
+msgid "not authorized"
+msgstr "não autorizado"
+
+#: html/user/forum_moderate_thread.php:41
+msgid "Moderate thread '%1'"
+msgstr "Moderar assunto '%1'"
+
+#: html/user/forum_moderate_thread.php:54
+msgid ""
+"Select the reason category, or write a longer description of why you're "
+"hiding or locking the thread; then press OK."
+msgstr "Selecione a categoria de razões, ou escreva uma descrição mais longa do porque você está ocultando ou bloqueando o assunto; depois pressione OK."
+
+#: html/user/forum_moderate_thread.php:78
+msgid "Current forum"
+msgstr "Fórum atual"
+
+#: html/user/forum_moderate_thread.php:79
+msgid "Destination forum"
+msgstr "Fórum de destino"
+
+#: html/user/forum_moderate_thread.php:83
+msgid "New title:"
+msgstr "Novo título:"
+
+#: html/user/forum_post.php:44
+msgid ""
+"Only project admins may create a thread here. However, you may reply to "
+"existing threads."
+msgstr "Somente administradores do projeto podem criar um assunto aqui. Porém, você pode responder em assuntos existentes."
+
+#: html/user/forum_post.php:64
+msgid ""
+"Your message was flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Sua mensagem foi marcada como spam pelo sistema anti-spam Akismet. Favor modificar seu texto e tentar novamente."
+
+#: html/user/forum_post.php:74
+msgid "Create new thread"
+msgstr "Criar novo assunto"
+
+#: html/user/forum_post.php:102
+msgid "Create a new thread"
+msgstr "Criar novo assunto"
+
+#: html/user/forum_post.php:107
+msgid "Remember to add a title"
+msgstr "Lembre-se de adicionar um título"
+
+#: html/user/forum_post.php:132
+msgid "Show this item as a Notice in the BOINC Manager"
+msgstr "Mostrar este item como um Aviso no Gerenciador do BOINC"
+
+#: html/user/forum_post.php:132
+msgid "Do so only for items likely to be of interest to all volunteers."
+msgstr "Fazer isto apenas para itens possivelmente de interesse de todos os voluntários."
+
+#: html/user/forum_rate.php:28
+msgid "Rating offline"
+msgstr "Avaliação offline"
+
+#: html/user/forum_rate.php:29
+msgid "This function is turned off by the project"
+msgstr "Esta função foi desabilitada pelo projeto"
+
+#: html/user/forum_rate.php:60
+msgid "You need more average or total credit to rate a post."
+msgstr "Você precisa de mais crédito médio ou total para avaliar este post."
+
+#: html/user/forum_rate.php:64
+msgid "You have already rated this post."
+msgstr "Você já avaliou este post."
+
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
+msgid "Return to thread"
+msgstr "Retornar ao assunto"
+
+#: html/user/forum_rate.php:74
+msgid "Input Recorded"
+msgstr "Comunicação Gravada"
+
+#: html/user/forum_rate.php:75
+msgid "Your input has been recorded. Thanks for your help."
+msgstr "Sua comunicação foi gravada. Obrigado pela ajuda."
+
+#: html/user/forum_rate.php:77
+msgid "Vote Registered"
+msgstr "Voto Registrado"
+
+#: html/user/forum_rate.php:78
+msgid "Your rating has been recorded. Thanks for your input."
+msgstr "Sua avaliação foi gravada. Obrigado por sua comunicação."
+
+#: html/user/forum_rate.php:82
+msgid "Vote Submission Problem"
+msgstr "Problema na Submissão do Voto"
+
+#: html/user/forum_reply.php:76
+msgid ""
+"Your post has been flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Seu post foi marcado como spam pelo sistema anti-spam Akismet. Favor modificar seu texto e tentar novamente."
+
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
+msgid "Post to thread"
+msgstr "Postar no assunto"
+
+#: html/user/forum_reply.php:143
+msgid "Message:"
+msgstr "Mensagem:"
+
+#: html/user/forum_reply.php:146
+msgid "reply to %1Message ID%2:"
+msgstr "responder à %1Message ID%2:"
+
+#: html/user/forum_reply.php:172
+msgid "Post reply"
+msgstr "Postar resposta"
+
+#: html/user/forum_reply.php:175
+msgid "Add my signature to this reply"
+msgstr "Adicionar minha assinatura nesta resposta"
+
+#: html/user/forum_report_post.php:48
+msgid "You need more average or total credit to report a post."
+msgstr "Você precisa de mais crédito médio ou total para reportar este post."
+
+#: html/user/forum_report_post.php:70
+msgid "Report Registered"
+msgstr "Reportagem Registrada"
+
+#: html/user/forum_report_post.php:71
+msgid "Your report has been recorded. Thanks for your input."
+msgstr "Sua reportagem foi gravada. Obrigado por sua comunicação."
+
+#: html/user/forum_report_post.php:72
+msgid ""
+"A moderator will now look at your report and decide what will happen - this "
+"may take a little while, so please be patient"
+msgstr "Um moderador irá avaliar sua reportagem e decidirá o que vai acontecer - isto pode demorar um pouco, então seja paciente"
+
+#: html/user/forum_report_post.php:76
+msgid "Report a forum post"
+msgstr "Reportar um post do assunto"
+
+#: html/user/forum_report_post.php:78
+msgid ""
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
+"can find the rating system at the bottom of the post."
+msgstr "Antes de reportar este post, considere usar o sistema de avaliação +/-. Se usuários suficientes avaliarem um post negativamente, ele eventualmente será ocultado.<br />Você pode encontrar o sistema de avaliação no final deste post."
+
+#: html/user/forum_report_post.php:90
+msgid "Report post"
+msgstr "Reportar post"
+
+#: html/user/forum_report_post.php:93
+msgid ""
+"Why do you find the post offensive: %1Please include enough information so "
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Por quê você acha esta postagem ofensiva: %1Por favor inclua informação suficiente para que uma pessoa que ainda não leu este assunto seja capaz de facilmente identificar o problema.%2"
+
+#: html/user/forum_report_post.php:104
+msgid "Report not registered"
+msgstr "Reportagem não registrada"
+
+#: html/user/forum_report_post.php:105
+msgid "Your report could not be recorded. Please wait a while and try again."
+msgstr "Sua reportagem não pôde ser gravada. Favor aguardar um momento e tentar novamente."
+
+#: html/user/forum_report_post.php:106
+msgid ""
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Se este não é um erro temporário, por favor reporte aos desenvolvedores do projeto."
+
+#: html/user/forum_rss.php:38
+msgid "%1 RSS feed"
+msgstr "%1 RSS feed"
+
+#: html/user/forum_rss.php:39
+msgid "This message board is available as an RSS feed."
+msgstr "Este quadro de mensagens está disponível como um RSS feed."
+
+#: html/user/forum_rss.php:41
+msgid "Options:"
+msgstr "Opções:"
+
+#: html/user/forum_rss.php:45
+msgid "Include only posts by user ID %1 (default: all users)."
+msgstr "Incluir somente posts do ID de usuário %1 (padrão: todos os usuários)."
+
+#: html/user/forum_rss.php:47
+msgid "Include only posts from the last %1 days (default: 30)."
+msgstr "Incluir somente posts dos últimos %1 dias (padrão: 30)."
+
+#: html/user/forum_rss.php:49
+msgid "Threads only: %1 (Include only the first post of every thread)"
+msgstr "Somente assuntos: %1 (Incluir somente o primeiro post de todos os assuntos)"
+
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Resultados da busca no fórum"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Títulos de assuntos relacionados a sua busca:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Mensagens relacionadas a sua busca:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Desculpe, não pudemos encontrar nada relacionado a sua busca. Você pode tentar ampliar sua busca usando menos palavras (ou palavras menos específicas)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Você também pode %1tentar a mesma busca no Google.%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Fazer outra pesquisa"
+
+#: html/user/forum_search.php:29
+msgid "Forum search"
+msgstr "Pesquisa no fórum"
+
+#: html/user/forum_search.php:33
+msgid "Search query"
+msgstr "Expressão a pesquisar"
+
+#: html/user/forum_search.php:34
+msgid "Search for keywords:"
+msgstr "Procurar por palavras-chave:"
+
+#: html/user/forum_search.php:35
+msgid "Posts that contain all the specified words will be displayed"
+msgstr "Posts que contém todas as palavras especificadas serão mostrados"
+
+#: html/user/forum_search.php:37
+msgid "For example: \"screensaver freeze\""
+msgstr "Por exemplo: \"travamento do protetor de tela\""
+
+#: html/user/forum_search.php:38
+msgid "Search for author ID:"
+msgstr "Procurar pelo ID do autor:"
+
+#: html/user/forum_search.php:39
+msgid "Only posts by this author will be displayed"
+msgstr "Somente posts deste autor serão mostrados"
+
+#: html/user/forum_search.php:41
+msgid "For example: \"43214\""
+msgstr "Por exemplo: \"43214\""
+
+#: html/user/forum_search.php:43
+msgid "Search options"
+msgstr "Opções de busca"
+
+#: html/user/forum_search.php:44
+msgid "Search limits"
+msgstr "Limites da busca"
+
+#: html/user/forum_search.php:45
+msgid "Search at most this many days back in time"
+msgstr "Procurar no máximo até esta quantidade de dias atrás"
+
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
+msgid "%1 months"
+msgstr "%1 meses"
+
+#: html/user/forum_search.php:54
+msgid "1 year"
+msgstr "1 ano"
+
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Fórum"
+
+#: html/user/forum_search.php:75
+msgid "Only display posts from this forum"
+msgstr "Somente mostrar posts deste fórum"
+
+#: html/user/forum_search.php:86
+msgid "Sort by"
+msgstr "Organizar por"
+
+#: html/user/forum_search.php:90
+msgid "Start the search"
+msgstr "Iniciar a busca"
+
+#: html/user/forum_subscribe.php:48
+msgid "Subscription successful"
+msgstr "Subscrito com sucesso"
+
+#: html/user/forum_subscribe.php:51
+msgid ""
+"You are now subscribed to %1. You will be notified whenever there is a new "
+"post."
+msgstr "Você agora está subscrito a %1. Você será notificado toda vez que houver um novo post."
+
+#: html/user/forum_subscribe.php:53
+msgid "Subscription failed"
+msgstr "Subscrição falhou"
+
+#: html/user/forum_subscribe.php:54
+msgid ""
+"We are currently unable to subscribe you to %1. Please try again later.."
+msgstr "Estamos impedidos, no momento, de subscrevê-lo a %1. Por favor tente mais tarde.."
+
+#: html/user/forum_subscribe.php:63
+msgid "Unsubscription successful"
+msgstr "Subscrição cancelada com sucesso"
+
+#: html/user/forum_subscribe.php:66
+msgid ""
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Você não está mais subscrito a %1. Você não receberá mais notificações deste assunto."
+
+#: html/user/forum_subscribe.php:68
+msgid "Unsubscription failed"
+msgstr "Cancelamento da subscrição falhou"
+
+#: html/user/forum_subscribe.php:69
+msgid ""
+"We are currently unable to unsubscribe you from %1. Please try again later.."
+msgstr "Estamos impedidos, no momento, de cancelar sua subscrição em %1. Por favor tente mais tarde.."
+
+#: html/user/forum_subscribe.php:76
+msgid "Unknown subscription action"
+msgstr "Ação de subscrição desconhecida"
+
+#: html/user/forum_thread.php:66
+msgid "This forum is not visible to you."
+msgstr "Este fórum não está visível para você."
+
+#: html/user/forum_thread.php:74
+msgid "This thread has been hidden by moderators."
+msgstr "Este assunto foi ocultado por moderadores."
+
+#: html/user/forum_thread.php:129
+msgid "My question was answered"
+msgstr "Minha pergunta foi respondida"
+
+#: html/user/forum_thread.php:130
+msgid "Click here if your question has been adequately answered"
+msgstr "Clique aqui se sua pergunta foi adequadamente respondida"
+
+#: html/user/forum_thread.php:138
+msgid "I've also got this question"
+msgstr "Eu também tenho esta dúvida"
+
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
+msgid "Add a new message to this thread"
+msgstr "Adicionar nova mensagem a este assunto"
+
+#: html/user/forum_thread.php:175
+msgid "Unsubscribe"
+msgstr "Cancelar subscrição"
+
+#: html/user/forum_thread.php:176
+msgid "You are subscribed to this thread.  Click here to unsubscribe."
+msgstr "Você está subscrito a este assunto. Clique aqui para cancelar a subscrição."
+
+#: html/user/forum_thread.php:182
+msgid "Subscribe"
+msgstr "Subscrever"
+
+#: html/user/forum_thread.php:183
+msgid "Click to get email when there are new posts in this thread"
+msgstr "Clique aqui para receber um email quando houver novos posts neste assunto"
+
+#: html/user/forum_thread.php:194
+msgid "Unhide this thread"
+msgstr "Desocultar este assunto"
+
+#: html/user/forum_thread.php:200
+msgid "Hide this thread"
+msgstr "Ocultar este assunto"
+
+#: html/user/forum_thread.php:206
+msgid "Make unsticky"
+msgstr "Desadesivar"
+
+#: html/user/forum_thread.php:207
+msgid "Make this thread not sticky"
+msgstr "Desadesivar este assunto"
+
+#: html/user/forum_thread.php:212
+msgid "Make sticky"
+msgstr "Deixar adesivado"
+
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Fazer com que este assunto sempre esteja no topo do fórum"
+
+#: html/user/forum_thread.php:219
+msgid "Unlock"
+msgstr "Desbloquear"
+
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Permitir novos posts neste assunto"
+
+#: html/user/forum_thread.php:225
+msgid "Lock"
+msgstr "Travar"
+
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Não permitir novos posts neste assunto"
+
+#: html/user/forum_thread.php:233
+msgid "Move this thread to a different forum"
+msgstr "Mover este assunto para um novo fórum"
+
+#: html/user/forum_thread.php:238
+msgid "Edit title"
+msgstr "Editar título"
+
+#: html/user/forum_thread.php:239
+msgid "Edit thread title"
+msgstr "Editar título do assunto"
+
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Deletar assunto permanentemente"
+
+#: html/user/forum_thread.php:257
+msgid "Export as Notice"
+msgstr "Exportar como Aviso"
+
+#: html/user/forum_thread.php:263
+msgid "Don't export"
+msgstr "Não exportar"
+
+#: html/user/forum_thread.php:264
+msgid "Don't export this news item as a Notice"
+msgstr "Não exportar este item de notícia como Aviso"
+
+#: html/user/forum_thread.php:277
+msgid "Sort"
+msgstr "Organizar"
+
+#. --------------
+#: html/user/forum_thread_status.php:54
+msgid "Thread status updated"
+msgstr "Status do assunto atualizado"
+
+#: html/user/forum_thread_status.php:55
+msgid "The status has been updated."
+msgstr "O status foi atualizado."
+
+#: html/user/forum_user_posts.php:75
+msgid "Posts by %1"
+msgstr "Posts de %1"
+
+#: html/user/friend.php:35
+msgid "Already friends"
+msgstr "Já são amigos"
+
+#: html/user/friend.php:41
+msgid "You requested friendship with %1 on %2."
+msgstr "Você pediu amizade com %1 em %2."
+
+#: html/user/friend.php:43
+msgid "This request is still pending confirmation."
+msgstr "Este pedido ainda está pendente de confirmação."
+
+#: html/user/friend.php:54
+msgid "%1 is not accepting friendship requests from you"
+msgstr "%1 não está aceitando seus pedidos de amizade"
+
+#: html/user/friend.php:63
+msgid "You can't be friends with yourself"
+msgstr "Você não pode ser seu amigo"
+
+#: html/user/friend.php:71
+msgid "Add friend"
+msgstr "Adicionar amigo"
+
+#: html/user/friend.php:76
+msgid ""
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Você pediu para adicionar %1 como amigo. Nós notificaremos %1 e pediremos a ele/ela para confirmar que vocês são amigos."
+
+#: html/user/friend.php:79
+msgid "Add an optional message here:"
+msgstr "Adicione uma mensagem opcional aqui:"
+
+#: html/user/friend.php:117
+msgid "Friend request sent"
+msgstr "Pedido de amizade enviado"
+
+#: html/user/friend.php:118
+msgid "We have notified %1 of your request."
+msgstr "Nós notificamos %1 de seu pedido."
+
+#: html/user/friend.php:128
+msgid "Please log in as %1"
+msgstr "Por favor faça login como %1"
+
+#: html/user/friend.php:129
+msgid "You must log in as %1 to view this friend request"
+msgstr "Você deve fazer login como %1 para ver este pedido de amizade"
+
+#: html/user/friend.php:140
+msgid "Friend request"
+msgstr "Pedido de amizade"
+
+#: html/user/friend.php:143
+msgid "%1 has requested friendship with you."
+msgstr "%1 pediu para ser seu amigo."
+
+#: html/user/friend.php:145
+msgid "%1 says: %2"
+msgstr "%1 disse: %2"
+
+#: html/user/friend.php:148
+msgid "Accept friendship"
+msgstr "Aceitar amizade"
+
+#: html/user/friend.php:148
+msgid "Click accept if %1 is in fact a friend"
+msgstr "Clique aceitar se %1 é de fato um amigo"
+
+#: html/user/friend.php:149
+msgid "Decline"
+msgstr "Rejeitar"
+
+#: html/user/friend.php:149
+msgid "Click decline if %1 is not a friend"
+msgstr "Clique rejeitar de %1 não é seu amigo"
+
+#: html/user/friend.php:188
+msgid "Friendship confirmed"
+msgstr "Amizade confirmada"
+
+#: html/user/friend.php:189
+msgid "Your friendship with %1 has been confirmed."
+msgstr "Sua amizade com %1 foi confirmada."
+
+#: html/user/friend.php:207
+msgid "Friendship declined"
+msgstr "Amizade rejeitada"
+
+#: html/user/friend.php:208
+msgid "You have declined friendship with %1"
+msgstr "Você rejeitou amizade com %1"
+
+#: html/user/friend.php:223
+msgid "Notification not found"
+msgstr "Notificação não encontrada"
+
+#: html/user/friend.php:225
+msgid "Friend confirmed"
+msgstr "Amigo confirmou"
+
+#: html/user/friend.php:226
+msgid "You are now friends with %1."
+msgstr "Você agora é amigo de %1"
+
+#: html/user/friend.php:234
+msgid "Cancel friendship?"
+msgstr "Cancelar amizade?"
+
+#: html/user/friend.php:236
+msgid "Are you sure you want to cancel your friendship with %1?"
+msgstr "Você tem certeza que quer cancelar sua amizade com %1?"
+
+#: html/user/friend.php:241
+msgid "Stay friends"
+msgstr "Continuar amigos"
+
+#: html/user/friend.php:251
+msgid "Friendship cancelled"
+msgstr "Amizade cancelada"
+
+#: html/user/friend.php:252
+msgid "Your friendship with %1 has been cancelled."
+msgstr "Sua amizade com %1 foi cancelada."
+
+#: html/user/get_passwd.php:27
+msgid ""
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Se você conhece o endereço de email da sua conta, e você pode receber emails nele:"
+
+#: html/user/get_passwd.php:28
+msgid ""
+"Enter the email address below, and click OK. You will be sent email "
+"instructions for resetting your password."
+msgstr "Insira o endereço de email abaixo, e clique OK. Enviaremos um email com instruções para a troca de sua senha."
+
+#: html/user/get_passwd.php:46
+msgid ""
+"2) If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "2) Se você esqueceu o endereço de email da sua conta, ou você não pode receber emails nele:"
+
+#: html/user/get_passwd.php:47
+msgid ""
+"If you have run BOINC under this account, you can still access it. Here's "
+"how:"
+msgstr "Se você já rodou BOINC com esta conta, você ainda pode acessá-la. Veja como:"
+
+#: html/user/get_passwd.php:50
+msgid ""
+"Go to the BOINC data directory on your computer (its location is written to "
+"the Event Log at startup)."
+msgstr "Vá para o diretório de dados do BOINC no seu computador (sua localização está descrita no Log de Eventos ao iniciar)."
+
+#: html/user/get_passwd.php:51
+msgid "Find your account file for this project; it will be named <b>%1</b>."
+msgstr "Encontre o arquivo da sua conta para este projeto; ele tem o nome <b>%1</b>."
+
+#: html/user/get_passwd.php:52
+msgid "Open the file in a text editor like Notepad. You'll see something like"
+msgstr "Abra o arquivo em um editor de texto como Bloco de Notas. Você verá algo como"
+
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Selecione e Copie os caracteres entre %1 e %2 (%3 no exemplo acima)."
+
+#: html/user/get_passwd.php:64
+msgid "Paste the string into the field below, and click OK."
+msgstr "Cole os caracteres no campo abaixo, e clique OK."
+
+#: html/user/get_passwd.php:65
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Você agora será logado em sua conta; atualize o email e a senha de sua conta."
+
+#: html/user/get_passwd.php:72
+msgid "Log in with authenticator"
+msgstr "Faça login com o autenticador"
+
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Esqueceu as informações de sua conta?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
+msgid "No GPU tasks reported"
+msgstr "Nenhuma tarefa de GPU reportada"
+
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Melhores modelos de GPU"
+
+#: html/user/gpu_list.php:207
+msgid ""
+"The following lists show the most productive GPU models on different "
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "As seguintes listas mostram os modelos mais produtivos de GPU em diferentes plataformas. Velocidades relativas, medidas pelo tempo médio transcorrido das tarefas, estão entre parênteses."
+
+#: html/user/home.php:42
+msgid "Welcome to %1"
+msgstr "Bem-vindo a %1"
+
+#: html/user/home.php:43
+msgid "View and edit your account preferences using the links below."
+msgstr "Veja e edite suas preferências de conta usando os links abaixo."
+
+#: html/user/home.php:46
+msgid "If you have not already done so, %1download BOINC client software%2."
+msgstr "Se você ainda não o fez, %1baixe o software de cliente do BOINC%2."
+
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Sua conta"
+
+#: html/user/host_app_versions.php:45
+msgid "anonymous platform"
+msgstr "plataforma anônima"
+
+#: html/user/host_app_versions.php:62
+msgid "Missing platform"
+msgstr "Plataforma ausente"
+
+#: html/user/host_app_versions.php:73
+msgid "Number of tasks completed"
+msgstr "Número de tarefas completas"
+
+#: html/user/host_app_versions.php:74
+msgid "Max tasks per day"
+msgstr "Máximo de tarefas por dia"
+
+#: html/user/host_app_versions.php:75
+msgid "Number of tasks today"
+msgstr "Número de tarefas hoje"
+
+#: html/user/host_app_versions.php:76
+msgid "Consecutive valid tasks"
+msgstr "Tarefas válidas consecutivas"
+
+#: html/user/host_app_versions.php:80
+msgid "Average processing rate"
+msgstr "Taxa de processamento média"
+
+#: html/user/host_app_versions.php:90
+msgid "Application details for host %1"
+msgstr "Detalhes da aplicação para o host %1"
+
+#: html/user/host_delete.php:31
+msgid "We have no record of that computer."
+msgstr "Não temos nenhum registro deste computador."
+
+#: html/user/host_delete.php:38
+msgid ""
+"You can not delete our record of this computer because our database still "
+"contains work for it. You must wait a few days until the work for this "
+"computer has been deleted from the project database."
+msgstr "Você não pode deletar nosso registro deste computador porque nossa base de dados ainda contém trabalho para ele. Você deve aguardar alguns dias até que o trabalho para este computador seja deletado da base de dados do projeto."
+
+#: html/user/host_delete.php:40
+msgid "Delete record of computer"
+msgstr "Deletar registro do computador"
+
+#: html/user/host_delete.php:41
+msgid "Record deleted."
+msgstr "Registro deletado."
+
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
+msgid "Return to list of your computers"
+msgstr "Retornar lista de seus computadores"
+
+#: html/user/host_edit_action.php:39
+msgid "Merge computer records"
+msgstr "Unir registros de computador"
+
+#: html/user/host_edit_form.php:35
+msgid "Merge computers"
+msgstr "Unir computadores"
+
+#: html/user/host_edit_form.php:38
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Às vezes o BOINC define identidades diferentes para o mesmo computador por engano. Você pode corrigir isto mesclando as identidades velhas com a mais nova."
+
+#: html/user/host_edit_form.php:56
+msgid "No hosts are eligible for merging with this one."
+msgstr "Nenhum host está elegível para união com este."
+
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
+msgid "Show details"
+msgstr "Mostrar detalhes"
+
+#: html/user/host_edit_form.php:66
+msgid ""
+"Check the computers that are the same as %1 (created %2, computer ID %3):"
+msgstr "Verificar os computadores que são o mesmo que %1 (criado %2, ID de computador %3):"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
+msgid "name"
+msgstr "Nome"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
+msgid "created"
+msgstr "criado"
+
+#: html/user/host_edit_form.php:70
+msgid "computer ID"
+msgstr "ID do computador"
+
+#: html/user/host_edit_form.php:77
+msgid "no hostname"
+msgstr "sem nome de host"
+
+#: html/user/host_edit_form.php:109
+msgid "Merge hosts"
+msgstr "Unir hosts"
+
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Computadores que pertencem ao %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Computadores ocultados"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Este usuário optou por não mostrar informações sobre seus computadores."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Seus computadores"
+
+#: html/user/host_update_credit.php:27
+msgid "Updating computer credit"
+msgstr "Atualizando crédito do computador"
+
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Crédito do host atualizado"
+
+#: html/user/host_venue_action.php:41
+msgid "Host venue updated"
+msgstr "Local do host atualizado"
+
+#: html/user/host_venue_action.php:43
+msgid "none"
+msgstr "nenhum"
+
+#: html/user/host_venue_action.php:46
+msgid "The venue of this host has been set to %1."
+msgstr "O local deste host foi fixado como %1."
+
+#: html/user/host_venue_action.php:48
+msgid ""
+"This change will take effect the next time the host communicates with this "
+"project."
+msgstr "Esta mudança terá efeito a próxima vez que o host se comunicar com este projeto."
+
+#: html/user/host_venue_action.php:50
+msgid "Return to host page"
+msgstr "Retornar à página de host"
+
+#: html/user/html.php:23
+msgid "Allowed HTML tags"
+msgstr "Etiquetas HTML permitidas"
+
+#: html/user/html.php:25
+msgid "The following HTML tags are allowed in team descriptions:"
+msgstr "As etiquetas HTML seguintes são permitidas na descrição da equipe:"
+
+#: html/user/html.php:27
+msgid "bold"
+msgstr "negrito"
+
+#: html/user/html.php:28
+msgid "italics"
+msgstr "itálico"
+
+#: html/user/html.php:29
+msgid "hyperlink"
+msgstr "hyperlink"
+
+#: html/user/html.php:30
+msgid "paragraph"
+msgstr "parágrafo"
+
+#: html/user/html.php:31
+msgid "break"
+msgstr "quebra"
+
+#: html/user/html.php:32
+msgid "preformatted"
+msgstr "pré-formatado"
+
+#: html/user/html.php:33
+msgid ""
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "imagem; altura não pode exceder 450 pixels. Por favor não use link para imagens sem permissão do web site onde a imagem está hospedada."
+
+#: html/user/html.php:35
+msgid "You can also use ampersand notation for special characters."
+msgstr "Você também pode usar o sinal & para caracteres especiais."
+
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Regras e regulamentos"
+
+#: html/user/info.php:35
+msgid "Run %1 only on authorized computers"
+msgstr "Rodar %1 apenas em computadores autorizados"
+
+#: html/user/info.php:36
+msgid ""
+"Run %1 only on computers that you own, or for which you have obtained the "
+"owner's permission. Some companies and schools have policies that prohibit "
+"using their computers for projects such as %1."
+msgstr "Rodar %1 somente em computadores que sejam seus, ou nos que você tenha obtido permissão do dono. Algumas companias e escolas tem regras que proíbem o uso de seus computadores para projetos como %1."
+
+#: html/user/info.php:38
+msgid "How %1 will use your computer"
+msgstr "Como %1 irá usar seu computador"
+
+#: html/user/info.php:39
+msgid ""
+"When you run %1 on your computer, it will use part of the computer's CPU "
+"power, disk space, and network bandwidth. You can control how much of your "
+"resources are used by %1, and when it uses them."
+msgstr "Quando você rodar %1 em seu computador, ele usará parte da capacidade do CPU de seu computador, espaço de disco, e dados de rede. Você pode controlar o quanto de recursos são usados por %1, e quando ele os usa."
+
+#: html/user/info.php:40
+msgid ""
+"The work done by your computer contributes to the goals of %1, as described "
+"on its web site. The application programs may change from time to time."
+msgstr "O trabalho realizado por seu computador contribui para os objetivos de %1, como descrito em seu web site. O aplicativo do programa pode mudar de tempo em tempo."
+
+#: html/user/info.php:42
+msgid "Privacy policy"
+msgstr "Normas de privacidade"
+
+#: html/user/info.php:43
+msgid ""
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Sua conta em %1 é identificada por um nome de sua escolha. Este nome pode ser exibido no web site de %1, junto com o sumário do trabalho que seu computador desempenhou para %1. Se você quer ser anônimo, escolha um nome que não revele sua identidade."
+
+#: html/user/info.php:44
+msgid ""
+"If you participate in %1, information about your computer (such as its "
+"processor type, amount of memory, etc.) will be recorded by %1 and used to "
+"decide what type of work to assign to your computer. This information will "
+"also be shown on %1's web site. Nothing that reveals your computer's "
+"location (e.g. its domain name or network address) will be shown."
+msgstr "Se você participar em %1, informações sobre seu computador (como o tipo do processador, quantidade de memória, etc) serão registradas por %1 e usadas para decidir que tipo de trabalho será assinalado a seu computador. Estas informações também serão exibidas no web site de %1. Nada que revele o local de seu computador (por exemplo o nome do domínio ou endereço de rede) será disponibilizado."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Para participar em %1, você deve fornecer um endereço para receber email. Este endereço não será exibido no web site de %1 ou compartilhado com organizações. %1 pode enviar boletins informativos periódicos; no entanto, você pode optar por não recebê-los a qualquer tempo."
+
+#: html/user/info.php:46
+msgid ""
+"Private messages sent on the %1 web site are visible only to the sender and "
+"recipient.  %1 does not examine or police the content of private messages.  "
+"If you receive unwanted private messages from another %1 user, you may add "
+"them to your %2message filter%3.  This will prevent you from seeing any "
+"public or private messages from that user."
+msgstr "Mensagens privadas enviadas no web site de %1 serão visíveis apenas para o remetente e o destinatário. %1 não examina ou policia o conteúdo de mensagens privadas. Se você recebe mensagens privadas não desejadas de outros usuários de %1, você pode adicioná-los ao seu %2filtro de mensagens%3. Isto irá prevení-lo de ver qualquer mensagem pública ou privada daquele usuário."
+
+#: html/user/info.php:47
+msgid ""
+"If you use our web site forums you must follow the %2posting guidelines%3.  "
+"Messages posted to the %1 forums are visible to everyone, including non-"
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Se você usa os fóruns de nosso web site, você deve seguir as %2orientações de postagens%3. Mensagens postadas nos fóruns de %1 são visíveis para todos, incluindo não membros. Ao postar nos fóruns, você está concedendo licensa irrevogável para qualquer pessoa visualizar e copiar seus posts."
+
+#: html/user/info.php:48
+msgid "Is it safe to run %1?"
+msgstr "è seguro rodar %1?"
+
+#: html/user/info.php:49
+msgid ""
+"Any time you download a program through the Internet you are taking a "
+"chance: the program might have dangerous errors, or the download server "
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Quando você baixa um programa da Internet você está exposto a riscos: o programa pode ter erros perigosos, ou o servidor do download pode estar hackeado. %1 fez grandes esforços para minimizar estes riscos. Nós testamos nossos aplicativos cuidadosamente. Nossos servidores estão atrás de um firewall e estão configurados para alta segurança. Para assegurar a integridade dos downloads de programas, todos os arquivos executáveis são assinados digitalmente em um computador seguro não  [...]
+
+#: html/user/info.php:50
+msgid ""
+"The applications run by %1 may cause some computers to overheat. If this "
+"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
+msgstr "Os aplicativos rodados por %1 podem causar superaquecimento em alguns computadores. Se isto acontecer, pare de rodar %1 ou use um %2programa utilitário%3 que limita o uso do CPU."
+
+#: html/user/info.php:51
+msgid ""
+"%1 was developed by %2. BOINC was developed at the University of California."
+msgstr "%1 foi programado por %2. BOINC foi desenvolvido pela Universidade da Califórnia."
+
+#: html/user/info.php:53
+msgid "Liability"
+msgstr "Responsabilidade"
+
+#: html/user/info.php:54
+msgid ""
+"%1 and %2 assume no liability for damage to your computer, loss of data, or "
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 e %2 não assumem responsabilidade por danos causados a seu computador, perda de dados, ou qualquer outro evento ou condição que possa ocorrer como resultado de sua participação em %1"
+
+#: html/user/info.php:56
+msgid "Other BOINC projects"
+msgstr "Outros projetos BOINC"
+
+#: html/user/info.php:57
+msgid ""
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
+"will do useful work even when %1 has no work available for it."
+msgstr "Outros projetos usam a mesma plataforma, BOINC, como %1. Você pode considerar a participação em um ou mais destes projetos. Ao fazê-lo, seu computador realizará trabalho útil mesmo quando %1 não tiver trabalho disponível para ele."
+
+#: html/user/info.php:58
+msgid ""
+"These other projects are not associated with %1, and we cannot vouch for "
+"their security practices or the nature of their research. Join them at your "
+"own risk."
+msgstr "Estes outros projetos não estão associados a %1, e nós não podemos assegurar a segurança de suas práticas ou a natureza de sua pesquisa. Inscreva-se neles por sua conta e risco."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Sou novo"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Sou um membro do BOINC"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Leia nossas %1Regras e Regulamentos%2."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Baixe o software BOINC para desktop."
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Download"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Para dispositivos Android, faça o download do BOINC na Loja Google Play ou na Loja de App da Amazon."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Execute o instalador."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Escolha %1 da lista, ou vá em %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Instale o BOINC neste dispositivo caso ainda não presente."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Selecione Ferramentas / Adicionar Projeto. Escolha %1 da lista, ou vá em %2"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Se você estiver rodando uma versão de linha de comando do BOINC neste computador, %1crie uma conta%2, depois use %3boinccmd --project_attach%4 para adicionar o projeto."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Filiar-se a %1"
+
+#: html/user/language_select.php:46
+msgid "Language selection"
+msgstr "Seleção de idioma"
+
+#: html/user/language_select.php:57
+msgid ""
+"This web site is available in several languages. The currently selected "
+"language is %1."
+msgstr "Este web site está disponível em várias línguas. A língua atualmente selecionada é %1."
+
+#: html/user/language_select.php:62
+msgid ""
+"Normally the choice of language is determined by your browser's language "
+"setting, which is: %1.  You can change this setting using:"
+msgstr "Normalmente a escolha do idioma é determinada pela configuração de idioma do seu navegador, que é: %1. Você pode alterar esta configuração usando:"
+
+#: html/user/language_select.php:67
+msgid "Firefox: Tools/Options/General"
+msgstr "Firefox: Ferramentas/Opções/Geral"
+
+#: html/user/language_select.php:69
+msgid "Microsoft IE: Tools/Internet Options/Languages"
+msgstr "Microsoft IE: Ferramentas/Opções de Internet/Idiomas"
+
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Ou você pode selecionar um idioma do seguinte menu:"
+
+#: html/user/language_select.php:85
+msgid ""
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Traduções são feitas por voluntários. Se a sua língua nativa está faltante ou está incompleta, %1você pode ajudar na tradução%2."
+
+#: html/user/login_form.php:59
+msgid "or %1create an account%2."
+msgstr "ou %1crie uma conta%2."
+
+#: html/user/merge_by_name.php:31
+msgid "Processing %1"
+msgstr "Processando %1"
+
+#: html/user/merge_by_name.php:43
+msgid "Merged %1 into %2"
+msgstr "%1 foi unido a %2"
+
+#: html/user/merge_by_name.php:72
+msgid "Return to the list of your computers"
+msgstr "Retornar à lista de seus computadores"
+
+#: html/user/merge_by_name.php:76
+msgid ""
+"This operation merges computers based on their domain name.\n"
+"        <p>\n"
+"        For each domain name, it will merge all older computers\n"
+"        having that name with the newest computer having that name.\n"
+"        Incompatible computers will not be merged.\n"
+"        <p>"
+msgstr "Esta operação une computadores baseando-se em seus nomes de domínio.\n<p>\nPara cada nome de domínio, ela unirá os compiutadores antigos\nque tenham este nome com o computador mais novo que tenha este nome.\nComputadores incompatíveis não serão unidos.\n<p>"
+
+#: html/user/merge_by_name.php:82
+msgid "Go ahead and do this"
+msgstr "Prosseguir e fazer isto"
+
+#: html/user/merge_by_name.php:83
+msgid "Return to the list of computers"
+msgstr "Retornar à lista de seus computadores"
+
+#: html/user/moderation.php:26
+msgid ""
+"\n"
+"To maximize discussion and flow of information,\n"
+"our message boards are moderated.\n"
+"Message board postings are subject to the following posting rules:\n"
+msgstr "\nPara maximizar a discussão e o fluxo de informação,\nnossos quadros de mensagens são moderados.\nPostagens no quadro de mensagens estão sujeitas as seguintes regras de postagem:\n"
+
+#: html/user/moderation.php:30
+msgid ""
+"\n"
+"<p>\n"
+"Moderators may delete posts that violate any of these rules.\n"
+"The authors of deleted posts will be notified via email.\n"
+"Gross offenders may have their ability to post messages temporarily revoked\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
+"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
+"IP addresses of other participants, excessive thread creation to spam\n"
+"the forums, etc.), while not listed in the formal rules, may still\n"
+"lead to similar penalties.\n"
+"<p>\n"
+"If you think a post violates any of the posting rules,\n"
+"click the red X on the post and fill out the form;\n"
+"moderators will be notified of your complaint.\n"
+"Please use this button only for clear violations - not\n"
+"personal disputes.\n"
+"<p>\n"
+"We try to be as fair as we can when moderating,\n"
+"but in a large community of users, with many different viewpoints,\n"
+"there will always be some people that will not be happy\n"
+"with our moderation decisions.\n"
+"While we regret that this happens,\n"
+"please realize that we cannot suit all of the people all of the time\n"
+"and have to make decisions based on our resources and\n"
+"what is best for the forum overall.\n"
+"Please don't discuss our moderation policy on the forums. We aren't\n"
+"a social engineering project nor are we in the business of creating\n"
+"a perfectly fair system. So such discussions tend to be counterproductive\n"
+"and potentially incendiary. If you have a legitimate claim,\n"
+"send email to the address below.\n"
+"<p>\n"
+"This moderation policy is set by the %1 project.\n"
+"If you have comments about the policy, email %2.\n"
+"\n"
+msgstr "\n<p>\nModeradores podem deletar posts que violem qualquer dessas regras.\nOs autores dos posts deletados serão notificados por email.\nGraves ofensores podem ter sua habilidade de postar mensagens temporariamente revogadas\n(embora para prevenir abuso somente administradores do projeto tem\nesta capacidade).\nOutros tipos de mau comportamento (\"bugar\" posts para prender o\nendereço IP de outros parcitipantes, criação excessiva de assuntos para levar ao spam\ndos fóruns, etc.), [...]
+
+#: html/user/pending.php:66
+msgid "Pending credit"
+msgstr "Crédito pendente"
+
+#: html/user/pending.php:68
+msgid "Result ID"
+msgstr "ID do resultado"
+
+#: html/user/pending.php:68
+msgid "Workunit ID"
+msgstr "ID da unidade de trabalho"
+
+#: html/user/pending.php:68
+msgid "Host ID"
+msgstr "ID do servidor"
+
+#: html/user/pending.php:68
+msgid "Claimed credit"
+msgstr "Créditos requeridos"
+
+#: html/user/pending.php:81
+msgid "Pending credit: %1"
+msgstr "Créditos pendentes: %1"
+
+#: html/user/pm.php:29
+msgid "Block messages from this user"
+msgstr "Bloquear mensagens deste usuário"
+
+#: html/user/pm.php:29
+msgid "Block user"
+msgstr "Bloquear usuário"
+
+#: html/user/pm.php:61
+msgid "Your message has been sent."
+msgstr "Sua mensagem foi enviada."
+
+#: html/user/pm.php:71
+msgid "You have no private messages."
+msgstr "Você não tem mensagens privadas."
+
+#: html/user/pm.php:79
+msgid "Sender and date"
+msgstr "Remente e data"
+
+#: html/user/pm.php:99
+msgid "Reply to this message"
+msgstr "Responder esta mensagem"
+
+#: html/user/pm.php:100
+msgid "Delete this message"
+msgstr "Deletar essa mensagem"
+
+#: html/user/pm.php:105
+msgid "Select all"
+msgstr "Marcar todos"
+
+#: html/user/pm.php:107
+msgid "Unselect all"
+msgstr "Desmarcar todos"
+
+#: html/user/pm.php:110
+msgid "Delete selected messages"
+msgstr "Deletar mensagens selecionadas"
+
+#: html/user/pm.php:134
+msgid "Sender"
+msgstr "Remente"
+
+#: html/user/pm.php:137
+msgid "Date"
+msgstr "Data"
+
+#: html/user/pm.php:190 html/user/pm.php:220
+msgid "You need to fill all fields to send a private message"
+msgstr "Você precisa preencher todos os campos para enviar uma mensagem privada"
+
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Mensagem enviada"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Sua mensagem foi enviada para os membros da equipe %1."
+
+#: html/user/pm.php:224
+msgid ""
+"Your message was flagged as spam\n"
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Sua mensagem foi marcada como spam\npelo sistema anti-spam Akismet.\nFavor modificar seu texto e tentar novamente."
+
+#: html/user/pm.php:241
+msgid "Could not find user with id %1"
+msgstr "Não foi possível encontrar o usuário de id %1"
+
+#: html/user/pm.php:246
+msgid "Could not find user with username %1"
+msgstr "Não foi possível encontrar o usuário com o nome %1"
+
+#. Non-unique username
+#: html/user/pm.php:248
+msgid "%1 is not a unique username; you will have to use user ID"
+msgstr "%1 não é um nome de usuário único; você terá que usar o ID de usuário"
+
+#: html/user/pm.php:254
+msgid "User %1 (ID: %2) is not accepting private messages from you."
+msgstr "Usuário %1 (ID: %2) não está aceitando mensagens privadas suas."
+
+#: html/user/pm.php:276 html/user/view_profile.php:28
+msgid "No such user"
+msgstr "Usuário inexistente"
+
+#: html/user/pm.php:278
+msgid "Really block %1?"
+msgstr "Realmente bloquear %1?"
+
+#: html/user/pm.php:279
+msgid ""
+"Are you really sure you want to block user %1 from sending you private "
+"messages?"
+msgstr "Você tem certeza que quer bloquear o usuário %1 de te enviar mensagens privadas?"
+
+#: html/user/pm.php:280
+msgid "Please note that you can only block a limited amount of users."
+msgstr "Note que você somente pode bloquear um número limitado de usuários."
+
+#: html/user/pm.php:281
+msgid ""
+"Once the user has been blocked you can unblock it using forum preferences "
+"page."
+msgstr "Uma vez bloqueado o usuário você pode desbloqueá-lo usando a página de preferências do fórum."
+
+#: html/user/pm.php:288
+msgid "No, cancel"
+msgstr "Não, cancelar"
+
+#: html/user/pm.php:297 html/user/team_admins.php:101
+msgid "no such user"
+msgstr "usuário inexistente"
+
+#: html/user/pm.php:300
+msgid "User %1 blocked"
+msgstr "Usuário %1 bloqueado"
+
+#: html/user/pm.php:302
+msgid "User %1 has been blocked from sending you private messages."
+msgstr "Usuário %1 foi bloqueado de te enviar mensagens privadas."
+
+#: html/user/pm.php:303
+msgid "To unblock, visit %1message board preferences%2"
+msgstr "Para desbloquear, visite %1preferências do quadro de mensagens%2"
+
+#: html/user/pm.php:365
+msgid "Unknown action"
+msgstr "Ação desconhecida"
+
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 para %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Voltar para preferências"
+
+#: html/user/prefs.php:33
+msgid ""
+"Your preferences have been updated, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Suas preferências foram atualizadas, e\nterão efeito quando seu computador se comunicar com %1\nou você enviar o comando %2Atualizar%3 pelo Gerenciador do BOINC."
+
+#: html/user/prefs.php:42
+msgid ""
+"Your preferences have been reset to the defaults, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Suas preferências foram restauradas ao padrão, e\nterão efeito quando seu computador se comunicar com %1\nou você enviar o comando %2Atualizar%3 pelo Gerenciador do BOINC."
+
+#: html/user/prefs_remove.php:46
+msgid "Confirm delete preferences"
+msgstr "Confirmar a remoção das preferências"
+
+#: html/user/prefs_remove.php:49
+msgid "Are you sure you want to delete your separate %1 preferences for %2?"
+msgstr "Você tem certeza que deseja deletar suas preferências separadas do %1 para %2?"
+
+#: html/user/prefs_remove.php:53
+msgid "Remove preferences"
+msgstr "Remover preferências"
+
+#: html/user/prefs_remove.php:55
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: html/user/profile_menu.php:37
+msgid ""
+"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
+"community."
+msgstr "%1Perfis%2 permitem que indivíduos compartilhem experiências e opiniões com a comunidade %3."
+
+#: html/user/profile_menu.php:38
+msgid ""
+"Explore the diversity of your fellow volunteers, and contribute your own "
+"views for others to enjoy."
+msgstr "Explore a diversidade de seus colegas voluntários, e contribua com suas próprias posições para o aproveitamento de outros."
+
+#: html/user/profile_menu.php:39
+msgid ""
+"If you haven't already, you can %1create your own user profile%2 for others "
+"to see!"
+msgstr "Se você ainda não o fez, você pode %1criar seu próprio perfil de usuário%2 para que outros vejam!"
+
+#: html/user/profile_menu.php:44
+msgid "User of the Day"
+msgstr "Usuário do Dia"
+
+#: html/user/profile_menu.php:59
+msgid "User Profile Explorer"
+msgstr "Explorador de Perfil de Usuário"
+
+#: html/user/profile_menu.php:62
+msgid "View the %1User Picture Gallery%2."
+msgstr "Veja a %1Galeria de Fotos do Usuário%2."
+
+#: html/user/profile_menu.php:63
+msgid "Browse profiles %1by country%2."
+msgstr "Procurar perfis %1por país%2."
+
+#: html/user/profile_menu.php:64
+msgid ""
+"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
+"without pictures%2."
+msgstr "Pesquisar por perfis %1aleatórios%2, %3aleatórios com fotos%2, ou %4aleatórios sem fotos%2."
+
+#: html/user/profile_menu.php:68
+msgid "Alphabetical profile listings:"
+msgstr "Listagem alfabética de perfis:"
+
+#: html/user/profile_menu.php:74
+msgid "Search profile text"
+msgstr "Procurar texto do perfil"
+
+#: html/user/profile_menu.php:100
+msgid "No profiles"
+msgstr "Nenhum perfil"
+
+#: html/user/profile_menu.php:101
+msgid "No profiles matched your query."
+msgstr "Nenhum perfil relacionado a sua busca."
+
+#: html/user/profile_rate.php:31
+msgid "Invalid vote type:"
+msgstr "Tipo inválido de voto:"
+
+#: html/user/profile_rate.php:36
+msgid "Vote Recorded"
+msgstr "Voto Gravado"
+
+#: html/user/profile_rate.php:40
+msgid "Thank you"
+msgstr "Obrigado"
+
+#: html/user/profile_rate.php:43
+msgid "Your recommendation has been recorded."
+msgstr "Sua recomendação foi registrada."
+
+#: html/user/profile_rate.php:45
+msgid "Your vote to reject this profile has been recorded."
+msgstr "Seu voto para rejeitar este perfil foi registrado."
+
+#: html/user/profile_rate.php:48
+msgid "Return to profile."
+msgstr "Retornar ao perfil."
+
+#: html/user/profile_search_action.php:38
+msgid "Profiles containing '%1'"
+msgstr "Perfis contendo '%1'"
+
+#: html/user/profile_search_action.php:42
+msgid "User name"
+msgstr "Nome do usuário"
+
+#: html/user/profile_search_action.php:43
+msgid "Joined project"
+msgstr "Inscrito no projeto"
+
+#: html/user/profile_search_action.php:46
+msgid "Recent credit"
+msgstr "Crédito recente"
+
+#: html/user/profile_search_action.php:56
+msgid "No profiles found containing '%1'"
+msgstr "Nenhum perfil contendo '%1'"
+
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Tarefa inexistente:"
+
+#: html/user/results.php:29
+msgid "This feature is turned off temporarily"
+msgstr "Esta função está temporariamente desligada"
+
+#: html/user/results.php:56
+msgid "No computer with ID %1 found"
+msgstr "Nenhum computador com ID %1 encontrado"
+
+#: html/user/results.php:63
+msgid "No access"
+msgstr "Sem acesso"
+
+#: html/user/results.php:69
+msgid "Missing user ID or host ID"
+msgstr "ID de usuário ou ID de host ausente"
+
+#: html/user/results.php:105
+msgid "No tasks to display"
+msgstr "Nenhuma tarefa pra mostrar"
+
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "$1 está temporariamente desligado para manutenção."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "O que é %1?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Notícias"
+
+#: html/user/server_status.php:57
+msgid "Not Running"
+msgstr "Não Executando"
+
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "Rodando"
+
+#: html/user/server_status.php:65
+msgid "Disabled"
+msgstr "Desabilitado"
+
+#: html/user/server_status.php:103
+msgid "Project status"
+msgstr "Status do projeto"
+
+#: html/user/server_status.php:112
+msgid "Program"
+msgstr "Programa"
+
+#: html/user/server_status.php:112
+msgid "Host"
+msgstr "Máquina"
+
+#: html/user/server_status.php:135
+msgid "Computing status"
+msgstr "Status da computação"
+
+#: html/user/server_status.php:146
+msgid "Users"
+msgstr "Usuários"
+
+#: html/user/server_status.php:161
+msgid "Tasks by application"
+msgstr "Tarefas por aplicativo"
+
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Tempo ativo das últimas 100 tarefas em horas: média, min, max"
+
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Usuários nas útlimas 24 horas"
+
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Versão do esquema da base de dados:"
+
+#: html/user/show_host_detail.php:40
+msgid "Computer %1"
+msgstr "Computador %1"
+
+#: html/user/stats.php:21
+msgid "Statistics and leaderboards"
+msgstr "Estatísticas e placares"
+
+#: html/user/stats.php:30
+msgid "Statistics for %1"
+msgstr "Estatísticas para %1"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "Melhores participantes"
+
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "Melhores equipes"
+
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "Melhores computadores"
+
+#: html/user/stats.php:53
+msgid ""
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Estatísticas mais detalhadas para %1 e outros projetos baseados no BOINC estão disponíveis em diversos web sites:"
+
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Você também pode conseguir sua atual estatística na forma de uma \"imagem assinatura\":"
+
+#: html/user/stats.php:59
+msgid ""
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Além disso você pode conseguir suas estatísticas individuais somadas através de todos os projetos BOINC em diversos sites; veja sua %1página inicial%2."
+
+#: html/user/team_admins.php:36
+msgid "Remove Team Admin status from this member"
+msgstr "Remover status de Administrador da Equipe deste membro"
+
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
+msgid "Add or remove Team Admins"
+msgstr "Adicionar ou remover Administradores da Equipe"
+
+#: html/user/team_admins.php:43
+msgid "You can select team members as 'Team Admins'. Team Admins can:"
+msgstr "Você pode selecionar membros da equipe como 'Administrador da Equipe'. Administradores da Equipe podem:"
+
+#: html/user/team_admins.php:45
+msgid "Edit team information (name, URL, description, country)"
+msgstr "Editar informações da equipe (nome, URL, descrição, país)"
+
+#: html/user/team_admins.php:46
+msgid "View the team's join/quit history"
+msgstr "Ver o histórico de entrada/saída da equipe"
+
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Enviar mensagens à equipe"
+
+#: html/user/team_admins.php:48
+msgid ""
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Moderar o fórum da equipe, se houver (administradores recebem notificações por email de eventos de moderação e avisos de X vermelho)"
+
+#: html/user/team_admins.php:50
+msgid "Team Admins cannot:"
+msgstr "Adminstradores da Equipe não podem:"
+
+#: html/user/team_admins.php:52
+msgid "Change the team founder"
+msgstr "Alterar o fundador da equipe"
+
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
+msgid "Remove members"
+msgstr "Remover membros"
+
+#: html/user/team_admins.php:56
+msgid "If a Team Admin quits the team, they cease to be a Team Admin."
+msgstr "Se um Administrador da Equipe sair, ele deixa de ser um Administrador da Equipe."
+
+#: html/user/team_admins.php:57
+msgid ""
+"We recommend that you select only people you know and trust very well as "
+"Team Admins."
+msgstr "Recomendamos que você selecione somente pessoas que você conhece e tem plena confiança para ser Administrador da Equipe."
+
+#: html/user/team_admins.php:62
+msgid "There are currently no Team Admins"
+msgstr "Não existem Administradores da Equipe no momento."
+
+#: html/user/team_admins.php:64
+msgid "Current Team Admins"
+msgstr "Atuais Administradores da Equipe."
+
+#: html/user/team_admins.php:65
+msgid "Became Team Admin on"
+msgstr "Tornou-se Administrador da Equipe em"
+
+#: html/user/team_admins.php:80
+msgid "Add Team Admin"
+msgstr "Adicionar Administrador da Equipe"
+
+#: html/user/team_admins.php:81
+msgid "Email address of team member:"
+msgstr "Endereço de email do membro da equipe:"
+
+#: html/user/team_admins.php:93
+msgid "failed to remove admin"
+msgstr "falha ao remover administrador"
+
+#: html/user/team_admins.php:102
+msgid "User is not member of team"
+msgstr "Usuário não é membro de equipe"
+
+#: html/user/team_admins.php:104
+msgid "%1 is already an admin of %2"
+msgstr "%1 já é um administrador de %2"
+
+#: html/user/team_admins.php:108
+msgid "Couldn't add admin"
+msgstr "Não foi possível adicionar administrador"
+
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
+msgid "No such team"
+msgstr "Equipe não existe"
+
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
+msgid "no such team"
+msgstr "equipe não existe"
+
+#: html/user/team_change_founder_action.php:40
+msgid "User is not a member of %1"
+msgstr "Usuário não é membro de %1"
+
+#: html/user/team_change_founder_action.php:43
+msgid "Changing founder of %1"
+msgstr "Alterando fundador de %1"
+
+#: html/user/team_change_founder_action.php:45
+msgid "%1 is now founder of %2"
+msgstr "%1 agora é fundador de %2"
+
+#: html/user/team_change_founder_form.php:39
+msgid "Change founder of %1"
+msgstr "Alterar fundador de %1"
+
+#: html/user/team_change_founder_form.php:45
+msgid ""
+"Team member %1 requested this team's foundership on %2, but left the team, "
+"thus canceling the request."
+msgstr "O membro da equipe %1 solicitou a fundação desta equipe em %2, mas deixou a equipe, cancelando assim o pedido."
+
+#: html/user/team_change_founder_form.php:51
+msgid ""
+"Team member %1 has requested this team's foundership. This may be because "
+"you left the team or haven't had contact with the team for a long time."
+msgstr "O membro da equipe %1 solicitou a fundação desta equipe. Isto pode ser porque você deixou a equipe ou não manteve contato com a equipe por um longo tempo."
+
+#: html/user/team_change_founder_form.php:57
+msgid "decline request"
+msgstr "rejeitar pedido"
+
+#: html/user/team_change_founder_form.php:60
+msgid ""
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Se você não rejeitar o pedido até %1, %2 terá a opção de assumir a fundação da equipe.<br /><br />\nPara aceitar o pedido, atribua a fundação à %3 usando o formulário abaixo."
+
+#: html/user/team_change_founder_form.php:68
+msgid "No transfer request is pending."
+msgstr "Nenhum pedido de transferência pendente."
+
+#: html/user/team_change_founder_form.php:71
+msgid ""
+"To assign foundership of this team to another member, check the box next to "
+"member name and click %1Change founder%2 below."
+msgstr "Para atribuir a fundação desta equipe a outro membro, marque a caixa ao lado do nome do membro e clique em %1Alterar fundador%2 abaixo."
+
+#: html/user/team_change_founder_form.php:81
+msgid "New founder?"
+msgstr "Novo fundador?"
+
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
+msgid "Change founder"
+msgstr "Alterar fundador"
+
+#: html/user/team_change_founder_form.php:116
+msgid "There are no users to transfer team to."
+msgstr "Não há usuários a quem transferir a equipe."
+
+#: html/user/team_create_action.php:35
+msgid "You must choose a non-blank team name"
+msgstr "Você deve escolher um nome de equipe não em branco"
+
+#: html/user/team_create_action.php:40
+msgid "A team named %1 already exists - try another name"
+msgstr "Uma equipe chamada %1 já existe - tente outro nome"
+
+#: html/user/team_create_action.php:60
+msgid "Could not create team - please try later."
+msgstr "Não foi possível criar a equipe - por favor tente mais tarde."
+
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
+msgid "Create a team"
+msgstr "Criar um time"
+
+#: html/user/team_create_form.php:31
+msgid ""
+"You belong to %1. You must %2quit this team%3 before creating a new one."
+msgstr "Você faz parte de %1. Você deve %2sair desta equipe%3 antes de criar uma nova."
+
+#: html/user/team_delta.php:66
+msgid "Not founder or admin"
+msgstr "Não é fundador ou administrador"
+
+#: html/user/team_delta.php:73
+msgid "Team history for %1"
+msgstr "Histórico do time para %1"
+
+#: html/user/team_delta.php:77
+msgid "When"
+msgstr "Quando"
+
+#: html/user/team_delta.php:78
+msgid "User"
+msgstr "Usuário"
+
+#: html/user/team_delta.php:79
+msgid "Action"
+msgstr "Ação"
+
+#: html/user/team_delta.php:80
+msgid "Total credit at time of action"
+msgstr "Crédito total no momento da ação"
+
+#: html/user/team_edit_action.php:55
+msgid "bad country"
+msgstr "bad country"
+
+#: html/user/team_edit_action.php:61
+msgid "The name '%1' is being used by another team."
+msgstr "O nome '%1' está sendo usado por outra equipe."
+
+#: html/user/team_edit_action.php:64
+msgid "Must specify team name"
+msgstr "Deve especificar o nome da equipe"
+
+#: html/user/team_edit_action.php:92
+msgid "Could not update team - please try again later."
+msgstr "Não foi possível atualizar a equipe - por favor tente mais tarde."
+
+#: html/user/team_edit_form.php:35
+msgid "Edit %1"
+msgstr "Editar %1"
+
+#: html/user/team_edit_form.php:36
+msgid "Update team info"
+msgstr "Atualizar informações da equipe"
+
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Membros de %1"
+
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
+
+#: html/user/team_email_list.php:93
+msgid "Show as plain text"
+msgstr "Mostrar como texto simples"
+
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
+msgid "Create Message Board"
+msgstr "Criar Quadro de Mensagens"
+
+#: html/user/team_forum.php:31
+msgid "You may create a message board for use by %1."
+msgstr "Você pode criar um quadro de mensagens para uso de %1."
+
+#: html/user/team_forum.php:33
+msgid "Only team members will be able to post."
+msgstr "Somente membros da equipe poderão postar."
+
+#: html/user/team_forum.php:34
+msgid "At your option, only members will be able to read."
+msgstr "Por opção sua, somente membros poderão ler."
+
+#: html/user/team_forum.php:35
+msgid "You and your Team Admins will have moderator privileges."
+msgstr "Você e seus Administradores da Equipe terão privilégios de moderador."
+
+#: html/user/team_forum.php:42
+msgid "Create a message board for %1"
+msgstr "Criar um quadro de mensagens para %1"
+
+#: html/user/team_forum.php:50
+msgid "Team already has a message board"
+msgstr "A Equipe já possui um quadro de mensagens"
+
+#: html/user/team_forum.php:61
+msgid "Team Message Board"
+msgstr "Quadro de mensagens da equipe"
+
+#: html/user/team_forum.php:78
+msgid "Minimum time between posts (seconds)"
+msgstr "Tempo mínimo entre postagens (segundos)"
+
+#: html/user/team_forum.php:81
+msgid "Minimum total credit to post"
+msgstr "Crédito total mínimo para postagem"
+
+#: html/user/team_forum.php:84
+msgid "Minimum average credit to post"
+msgstr "Crédito médio mínimo para postar"
+
+#: html/user/team_forum.php:87
+msgid "Submit"
+msgstr "Submeter"
+
+#: html/user/team_forum.php:97
+msgid "Remove your team's message board."
+msgstr "Remover o quadro de mensagens da equipe."
+
+#: html/user/team_forum.php:105
+msgid "Really remove message board?"
+msgstr "Dejesa realmente remover o quadro de mensagens?"
+
+#: html/user/team_forum.php:106
+msgid ""
+"Are you sure you want to remove your team's message board? All threads and "
+"posts will be permanently removed. (You may, however, create a new message "
+"board later)."
+msgstr "Você tem certeza que você quer remover o quadro de mensagens da equipe? Todos os tópicos e postagens serão permanentemente removidos. (Você poderá, no entanto, criar um novo quadro de mensagens mais tarde)."
+
+#: html/user/team_forum.php:108
+msgid "Yes - remove message board"
+msgstr "Sim - remova o quadro de mensagens"
+
+#: html/user/team_forum.php:129
+msgid "Message board removed"
+msgstr "Quadro de mensagens removido"
+
+#: html/user/team_forum.php:132
+msgid ""
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Seu quadro de mensagens da equipe foi removido. Agora você pode%1criar um novo%2."
+
+#: html/user/team_forum.php:151
+msgid "Team Message Board Updated"
+msgstr "Quadro de Mensagens da Equipe Atualizado"
+
+#: html/user/team_forum.php:152
+msgid "Update successful"
+msgstr "Atualização com sucesso"
+
+#: html/user/team_forum.php:155
+msgid "Update failed"
+msgstr "Atualização falhou"
+
+#: html/user/team_forum.php:162
+msgid "Team has no forum"
+msgstr "Equipe não tem fórum"
+
+#: html/user/team_founder_transfer_action.php:38
+msgid "You must be a member of a team to access this page."
+msgstr "Você deve ser um membro de uma equipe para acessar esta página."
+
+#: html/user/team_founder_transfer_action.php:100
+msgid "Requesting foundership of %1"
+msgstr "Solicitando fundação de %1"
+
+#: html/user/team_founder_transfer_action.php:108
+msgid ""
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "O atual fundador foi notificado de seu pedido por email e mensagem privada.<br /><br />\nSe o fundador não responder dentro de 60 dias você terá permissão para se tornar o fundador."
+
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
+msgid "Foundership request not allowed now"
+msgstr "Solicitação de fundação não permitida no momento"
+
+#: html/user/team_founder_transfer_action.php:119
+msgid "Assumed foundership of %1"
+msgstr "Assumiu fundação de %1"
+
+#: html/user/team_founder_transfer_action.php:121
+msgid ""
+"Congratulations, you are now the founder of team %1. Go to %2Your Account "
+"page%3 to find the Team Admin options."
+msgstr "Parabéns, você agora é o fundador da equipe %1. Vá para a %2página de Sua Conta%3 para encontrar as opções de Administrador da Equipe."
+
+#: html/user/team_founder_transfer_action.php:130
+msgid "Decline founder change request"
+msgstr "Negar pedido de alteração do fundador"
+
+#: html/user/team_founder_transfer_action.php:137
+msgid "The foundership request from %1 has been declined."
+msgstr "A solicitação de fundação feita por %1 foi negada."
+
+#: html/user/team_founder_transfer_action.php:140
+msgid "There were no foundership requests."
+msgstr "Não houveram solicitações de fundação."
+
+#: html/user/team_founder_transfer_action.php:144
+msgid "undefined action %1"
+msgstr "ação indefinida %1"
+
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
+msgid "Return to team page"
+msgstr "Retornar à página da equipe"
+
+#: html/user/team_founder_transfer_form.php:30
+msgid "You need to be a member of a team to access this page."
+msgstr "Você precisa ser um membro de uma equipe para acessar esta página."
+
+#: html/user/team_founder_transfer_form.php:33
+msgid "Request foundership of %1"
+msgstr "Solicitar fundação de %1"
+
+#: html/user/team_founder_transfer_form.php:40
+msgid "You are now founder of team %1."
+msgstr "Você agora é fundador da equipe %1."
+
+#: html/user/team_founder_transfer_form.php:46
+msgid "You requested the foundership of %1 on %2."
+msgstr "Você solicitou a fundação de %1 em %2."
+
+#: html/user/team_founder_transfer_form.php:49
+msgid ""
+"60 days have elapsed since your request, and the founder has not responded. "
+"You may now assume foundership by clicking here:"
+msgstr "Já se passaram 60 dias desde sua solicitação, e o fundador não a respondeu. Agora você pode assumir a fundação clicando aqui:"
+
+#: html/user/team_founder_transfer_form.php:52
+msgid "Assume foundership"
+msgstr "Assumir fundação"
+
+#: html/user/team_founder_transfer_form.php:56
+msgid ""
+"The founder was notified of your request. If he/she does not respond by %1 "
+"you will be given an option to become founder."
+msgstr "O fundador foi notificado de sua solicitação. Se ele/ela não a responder até %1 você receberá a opção para se tornar fundador."
+
+#: html/user/team_founder_transfer_form.php:62
+msgid ""
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
+"                       Are you sure you want to request foundership?"
+msgstr "Se o fundador da equipe não é ativo e você quer assumir o papel de fundador, clique no botão abaixo. O atual fundador receberá um email detalhando a solicitação, e poderá transferir a fundação para você ou negar o pedido. Se o fundador não responder em 60 dias, você terá permissão para assumir a fundação.<br /><br />\nVocê tem certeza que quer solicitar a fundação?"
+
+#: html/user/team_founder_transfer_form.php:67
+msgid "Request foundership"
+msgstr "Requisitar status de fundador"
+
+#: html/user/team_founder_transfer_form.php:76
+msgid "Founder change has already been requested by %1 on %2."
+msgstr "Uma troca da fundação já foi solicitada por %1 em %2."
+
+#: html/user/team_founder_transfer_form.php:79
+msgid ""
+"A foundership change was requested during the last 90 days, so new requests "
+"are not allowed. Please try again later."
+msgstr "Uma troca da fundação foi solicitada nos últimos 90 dias, assim, novas solicitações não são permitidas. Por favor tente novamente mais tarde."
+
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
+msgid "The team %1 is not joinable."
+msgstr "Não é possível se filiar a equipe %1."
+
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
+msgid "Already a member"
+msgstr "Já é membro"
+
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
+msgid "You are already a member of %1."
+msgstr "Você já é membro de %1."
+
+#: html/user/team_join_action.php:42
+msgid "Joined %1"
+msgstr "Filiou-se a %1"
+
+#: html/user/team_join_action.php:43
+msgid "You have joined %1."
+msgstr "Você se filiou a %1."
+
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Não foi possível ingressar na equipe - por favor tente mais tarde."
+
+#: html/user/team_join_form.php:35
+msgid "Please note:"
+msgstr "Favor notar:"
+
+#: html/user/team_join_form.php:37
+msgid "Joining a team gives its founder access to your email address."
+msgstr "Filiar-se a uma equipe dá ao seu fundador acesso ao seu endereço de email."
+
+#: html/user/team_join_form.php:38
+msgid "Joining a team does not affect your account's credit."
+msgstr "Filiar-se a uma equipe não afeta o crédito de sua conta."
+
+#: html/user/team_join_form.php:45
+msgid "Join team"
+msgstr "Filiar-se a equipe"
+
+#: html/user/team_lookup.php:88
+msgid "Search Results"
+msgstr "Resultados da Busca"
+
+#: html/user/team_lookup.php:90
+msgid "Search results for '%1'"
+msgstr "Resultados da busca por %1"
+
+#: html/user/team_lookup.php:92
+msgid "You may view these teams' members, statistics, and information."
+msgstr "Você pode ver os membros, estatísticas e informações desta equipe."
+
+#: html/user/team_lookup.php:102
+msgid "More than 100 teams match your search. The first 100 are shown."
+msgstr "Mais de 100 equipes correspondem a sua busca. As primeiras 100 são exibidas."
+
+#: html/user/team_lookup.php:108
+msgid ""
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Fim dos resultados. %1 Se você não consegue encontrar a equipe que procura, você mesmo pode %2criar uma equipe%3."
+
+#: html/user/team_manage.php:28
+msgid "Team administration for %1"
+msgstr "Administração da equipe para %1"
+
+#: html/user/team_manage.php:31
+msgid "Edit team info"
+msgstr "Editar informações da equipe"
+
+#: html/user/team_manage.php:32
+msgid "Change team name, URL, description, type, or country"
+msgstr "Alterar nome da equipe, URL, descrição, tipo ou país"
+
+#: html/user/team_manage.php:35
+msgid "Member list:"
+msgstr "Lista de membros:"
+
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
+msgid "HTML"
+msgstr "HTML"
+
+#: html/user/team_manage.php:37
+msgid "text"
+msgstr "texto"
+
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Visualizar informações do membro"
+
+#: html/user/team_manage.php:40
+msgid "View change history:"
+msgstr "Visualizar histórico de alterações:"
+
+#: html/user/team_manage.php:43
+msgid "See when members joined or quit this team"
+msgstr "Ver quando membros entraram ou saíram desta equipe"
+
+#: html/user/team_manage.php:54
+msgid "Respond to foundership request."
+msgstr "Responder à solicitação de fundação."
+
+#: html/user/team_manage.php:54
+msgid "If you don't respond by %1, %2 may assume foundership of this team."
+msgstr "Se você não responder até %1, %2 poderá assumir a fundação desta equipe."
+
+#: html/user/team_manage.php:59
+msgid "Remove inactive or unwanted members from this team"
+msgstr "Remover membros inativos ou indesejados desta equipe"
+
+#: html/user/team_manage.php:61
+msgid "Transfer foundership to another member"
+msgstr "Transferir fundação a outro membro"
+
+#: html/user/team_manage.php:62
+msgid "Add/remove Team Admins"
+msgstr "Adicionar / Remover Administradores de Equipe"
+
+#: html/user/team_manage.php:63
+msgid "Give selected team members Team Admin privileges"
+msgstr "Dar aos membros da equipe selecionados privilégios de Administrador da Equipe"
+
+#: html/user/team_manage.php:65
+msgid "Remove team"
+msgstr "Remover equipe"
+
+#: html/user/team_manage.php:66
+msgid "Allowed only if team has no members"
+msgstr "Permitido somente se a equipe não tiver membros"
+
+#: html/user/team_manage.php:68
+msgid "Create or manage a team message board"
+msgstr "Criar ou gerenciar um quadro de mensagens da equipe"
+
+#: html/user/team_manage.php:75
+msgid ""
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Para que esta equipe seja criada em todos os projetos da BOINC (existente e futuros) você pode torná-la uma %1equipe geral do BOINC%2."
+
+#: html/user/team_manage.php:77
+msgid ""
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "Administradores de equipe são encorajados a entrar e participar no grupo do Google %1boinc-team-founders%2."
+
+#: html/user/team_manage.php:93
+msgid "Can't delete non-empty team"
+msgstr "Não é possível deletar equipe não vazia."
+
+#: html/user/team_manage.php:97
+msgid "Team %1 deleted"
+msgstr "Equipe %1 deletada"
+
+#: html/user/team_members.php:38
+msgid "Limit exceeded:  Can only display the first 1000 members."
+msgstr "Limite excedido: Somente é possível exibir os primeiros 1000 membros."
+
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 participantes podem formar %2equipes%3."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Você só pode fazer parte de uma equipe. Você pode ingressar ou sair de uma equipe a qualquer tempo."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Cada equipe tem um %1fundador%2 que pode:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "editar o nome e a descrição da equipe"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "adicionar ou remover administradores da equipe"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "remover membros"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "dissolver a equipe se não houverem membros"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Para se filiar a uma equipe, visite a página da equipe e clique %1Filiar-se a esta equipe%2."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Encontrar uma equipe"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Todas as equipes"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 equipes"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Criar uma nova equipe"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Se você não encontrar uma equipe que te satisfaça, você pode %1criar uma equipe%2."
+
+#: html/user/team_quit_action.php:34
+msgid "Unable to quit team"
+msgstr "Inviável a saída da equipe"
+
+#: html/user/team_quit_action.php:35
+msgid "Team doesn't exist, or you don't belong to it."
+msgstr "Equipe inexistente, ou você não pertence a ela."
+
+#: html/user/team_quit_form.php:33
+msgid "Quit %1"
+msgstr "Sair %1"
+
+#: html/user/team_quit_form.php:34
+msgid ""
+"<strong>Please note before quitting a team:</strong>\n"
+"         <ul>\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
+"         </ul>"
+msgstr "<strong>Por favor note antes de sair de uma equipe:</strong>\n<ul>\n<li>Se você sair de uma equipe, você pode voltar mais tarde, ou entrar em outra equipe que desejar\n<li>Sair de uma equipe não afeta suas estatísticas pessoas de crédito em qualquer maneira.\n</ul>"
+
+#: html/user/team_quit_form.php:42
+msgid "Quit Team"
+msgstr "Sair da Equipe"
+
+#: html/user/team_remove_inactive_action.php:33
+msgid "Removing users from %1"
+msgstr "Removendo usuários de %1"
+
+#: html/user/team_remove_inactive_action.php:41
+msgid "%1 is not a member of %2"
+msgstr "%1 não é um membro de %2"
+
+#: html/user/team_remove_inactive_action.php:44
+msgid "%1 has been removed"
+msgstr "%1 foi removido"
+
+#: html/user/team_remove_inactive_form.php:34
+msgid "Remove members from %1"
+msgstr "Remover membros de %1"
+
+#: html/user/team_remove_inactive_form.php:42
+msgid "Remove?"
+msgstr "Remover?"
+
+#: html/user/team_remove_inactive_form.php:43
+msgid "Name (ID)"
+msgstr "Nome (ID)"
+
+#: html/user/team_remove_inactive_form.php:68
+msgid "No members are eligible for removal."
+msgstr "Nenhum membro está eligível para remoção."
+
+#: html/user/team_remove_inactive_form.php:71
+msgid "Remove users"
+msgstr "Remover usuários"
+
+#: html/user/team_search.php:76
+msgid "Team name"
+msgstr "Nome do time"
+
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Validado?"
+
+#: html/user/team_search.php:115
+msgid "Team search results"
+msgstr "Resultados da busca por equipe"
+
+#: html/user/team_search.php:117
+msgid "No teams were found matching your criteria. Try another search."
+msgstr "Nenhuma equipe foi encontrada correspondendo aos seus critérios. Tente outra busca."
+
+#: html/user/team_search.php:119
+msgid "Or you can %1create a new team%2."
+msgstr "Ou você pode %1criar uma nova equipe%2."
+
+#: html/user/team_search.php:123
+msgid ""
+"The following teams match one or more of your search criteria.\n"
+"            To join a team, click its name to go to the team page,\n"
+"               then click %1Join this team%2."
+msgstr "As seguintes equipes correspondem a um ou mais de seus critérios de busca.\nPara filiar-se a uma equipe, clique em seu nome para ir à página da equipe,\ndepois clique %1Filiar-se a esta equipe%2."
+
+#: html/user/team_search.php:130
+msgid "Change your search"
+msgstr "Mudar sua busca"
+
+#: html/user/team_search.php:204
+msgid ""
+"You can team up with other people with similar interests, or from the same "
+"country, company, or school."
+msgstr "Você pode se juntar a outras pessoas com interesses similares, ou do mesmo país, compania ou escola."
+
+#: html/user/team_search.php:206
+msgid "Use this form to find teams that might be right for you."
+msgstr "Use este formulário para encontrar equipes que podem ser a certa para você."
+
+#: html/user/team_search.php:211
+msgid "%1I'm not interested%2 in joining a team right now."
+msgstr "%1Não estou interessado%2 em me filiar a uma equipe agora."
+
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
+msgid "Limit exceeded - Sorry, first %1 items only"
+msgstr "Limite excedido - Desculpe, somente os primeiros %1 itens"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
+msgid "Top hosts"
+msgstr "Melhores hosts"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
+msgid "Top %1 teams"
+msgstr "%1 melhores equipes"
+
+#: html/user/top_teams.php:111
+msgid "There are no %1 teams"
+msgstr "Não existem equipes %1"
+
+#: html/user/top_users.php:57
+msgid "Participant since"
+msgstr "Participante desde"
+
+#: html/user/uotd.php:32
+msgid "No user of the day has been chosen."
+msgstr "Nenhum usuário do dia foi escolhido."
+
+#: html/user/uotd.php:36
+msgid "User of the Day for %1: %2"
+msgstr "Usuário do Dia para %1: %2"
+
+#: html/user/user_search.php:51
+msgid "Filters"
+msgstr "Filtros"
+
+#: html/user/user_search.php:53
+msgid "User name starts with"
+msgstr "Nome de usuário começa com"
+
+#: html/user/user_search.php:56
+msgid "Any"
+msgstr "Qualquer"
+
+#: html/user/user_search.php:59
+msgid "With profile?"
+msgstr "Com perfil?"
+
+#: html/user/user_search.php:60 html/user/user_search.php:65
+msgid "Either"
+msgstr "Qualquer um"
+
+#: html/user/user_search.php:64
+msgid "On a team?"
+msgstr "Em uma equipe?"
+
+#: html/user/user_search.php:69
+msgid "Ordering"
+msgstr "Ordenando"
+
+#: html/user/user_search.php:70
+msgid "Decreasing sign-up time"
+msgstr "Tempo decrescente de inscrição"
+
+#: html/user/user_search.php:71
+msgid "Decreasing average credit"
+msgstr "Crédito médio decrescente"
+
+#: html/user/user_search.php:72
+msgid "Decreasing total credit"
+msgstr "Crédito total decrescente"
+
+#: html/user/user_search.php:87
+msgid "search string must be at least 3 characters"
+msgstr "o termo de busca deve conter no mínimo 3 caracteres"
+
+#: html/user/user_search.php:121
+msgid "User search results"
+msgstr "Resultados de busca por usuário"
+
+#: html/user/user_search.php:133
+msgid "Joined"
+msgstr "Inscrito"
+
+#: html/user/user_search.php:143
+msgid "No users match your search criteria."
+msgstr "Nenhum usuário corresponde ao seu critério de busca."
+
+#: html/user/userw.php:35
+msgid "User not found!"
+msgstr "Usuário não encontrado!"
+
+#: html/user/userw.php:44
+msgid "Account Data<br/>for %1<br/>Time:"
+msgstr "Dados da Conta<br/>para %1<br/>Tempo:"
+
+#: html/user/userw.php:47
+msgid "Team:"
+msgstr "Equipe:"
+
+#: html/user/userw.php:48
+msgid "Team TotCred:"
+msgstr "TotCred da Equipe:"
+
+#: html/user/userw.php:49
+msgid "Team AvgCred:"
+msgstr "MédiaCred da Equipe:"
+
+#: html/user/userw.php:51
+msgid "Team: None"
+msgstr "Equipe: Nenhuma"
+
+#: html/user/validate_email_addr.php:30
+msgid "Validate BOINC email address"
+msgstr "Validar endereço de email do BOINC"
+
+#: html/user/validate_email_addr.php:31
+msgid ""
+"Please visit the following link to validate the email address of your %1 "
+"account:"
+msgstr "Por favor visite o seguinte link para validar o endereço de email de sua conta %1:"
+
+#: html/user/validate_email_addr.php:34
+msgid "Validate email sent"
+msgstr "Validar email enviado"
+
+#: html/user/validate_email_addr.php:35
+msgid ""
+"An email has been sent to %1. Visit the link it contains to validate your "
+"email address."
+msgstr "Um email foi enviado para %1. Visite o link que ele contém para validar seu endereço de email."
+
+#: html/user/validate_email_addr.php:44
+msgid "No such user."
+msgstr "Usuário inexistente."
+
+#: html/user/validate_email_addr.php:49
+msgid "Error in URL data - can't validate email address"
+msgstr "Erro nos dados da URL - não foi possível validar o endereço de email"
+
+#: html/user/validate_email_addr.php:54
+msgid "Database update failed - please try again later."
+msgstr "Falha na atualização da base de dados - por favor tente mais tarde."
+
+#: html/user/validate_email_addr.php:57
+msgid "Validate email address"
+msgstr "Validar endereço de email"
+
+#: html/user/validate_email_addr.php:58
+msgid "The email address of your account has been validated."
+msgstr "O endereço de email de sua conta foi validado."
+
+#: html/user/view_profile.php:38
+msgid "This user has no profile"
+msgstr "Este usuário não tem perfil"
+
+#: html/user/view_profile.php:56
+msgid "Profile: %1"
+msgstr "Perfil: %1"
+
+#: html/user/view_profile.php:65
+msgid "Account data"
+msgstr "Dados da conta"
+
+#: html/user/weak_auth.php:52
+msgid ""
+"You can access your account either by using your email address and password,\n"
+"    or by using an assigned 'account key'.\n"
+"    Your account key is:"
+msgstr "Você pode acessar sua conta usando tanto seu endereço de email e senha,\ncomo usando uma 'chave de conta' designada.\nSua chave de conta é:"
+
+#: html/user/weak_auth.php:57
+msgid "This key can be used to:"
+msgstr "Esta chave pode ser usada para:"
+
+#: html/user/weak_auth.php:59
+msgid "log in to your account on the web"
+msgstr "log in em sua conta na web"
+
+#: html/user/weak_auth.php:61
+msgid ""
+"to attach a computer to your account without using the BOINC Manager.\n"
+"       To do so, install BOINC,\n"
+"       create a file named %1 in the BOINC\n"
+"       data directory, and set its contents to:"
+msgstr "anexar um computador a sua conta sem usar o Gerenciador do BOINC.\nPara isso, instale o BOINC,\ncrie um arquivo chamado %1 no dirétorio de dados\ndo BOINC, e insira o conteúdo:"
+
+#: html/user/weak_auth.php:73
+msgid "Weak account key"
+msgstr "Chave da conta fraca"
+
+#: html/user/weak_auth.php:74
+msgid ""
+"Your 'weak account key' can be used to attach computers to your account\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
+"    If you want to attach untrusted or insecure computers to your account,\n"
+"    do so using your weak account key.\n"
+"    Your weak account key is:"
+msgstr "Sua 'chave fraca de conta' pode ser usada para anexar computadores a sua conta\ncomo descrito acima, mas não pode ser usada para fazer log in em sua conta ou alterá-la de qualquer maneira.\nSe você quiser anexar computadores não confiáveis ou inseguros a sua conta,\nuse sua chave fraca de conta.\nSua chave fraca de conta é:"
+
+#: html/user/weak_auth.php:81
+msgid ""
+"If you change your password, your weak account key changes, and your "
+"previous weak account key becomes invalid."
+msgstr "Se você alterar sua senha, sua chave fraca de conta é alterada, e sua chave fraca de conta anterior se torna inválida."
+
+#: html/user/workunit.php:32
+msgid "can't find workunit"
+msgstr "não é possível encontrar a unidade de trabalho"
+
+#: html/user/workunit.php:35
+msgid "Workunit %1"
+msgstr "Unidade de trabalho %1"
+
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "aplicação"
+
+#: html/user/workunit.php:43
+msgid "canonical result"
+msgstr "resultado canônico"
+
+#: html/user/workunit.php:46
+msgid "granted credit"
+msgstr "crédito concedido"
+
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Tarefas em progresso"
+
+#: html/user/workunit.php:55
+msgid "suppressed pending completion"
+msgstr "finalização pendente suprimida"
+
+#: html/user/workunit.php:58
+msgid "minimum quorum"
+msgstr "quórum mínimo"
+
+#: html/user/workunit.php:59
+msgid "initial replication"
+msgstr "replicação inicial"
+
+#: html/user/workunit.php:60
+msgid "max # of error/total/success tasks"
+msgstr "máx # de tarefas erro/total/sucedida"
+
+#: html/user/workunit.php:64
+msgid "errors"
+msgstr "erros"
+
+#: html/user/workunit.php:67
+msgid "validation"
+msgstr "validação"
+
+#: html/user/workunit.php:67
+msgid "Pending"
+msgstr "Pendente"
+
+#: html/project.sample/project.inc:95
+msgid "Generated"
+msgstr "Gerada"
+
+#: html/project.sample/project.inc:126
+msgid "Your personal background."
+msgstr "Seu histórico pessoal."
+
+#: html/project.sample/project.inc:130
+msgid ""
+"Tell us about yourself. You could tell us where you're from, your age, "
+"occupation, hobbies, or anything else about yourself."
+msgstr "Nos conte sobre você. Você pode nos dizer sua origem, sua idade, ocupação, hobbies ou qualquer outra coisa sobre você."
+
+#: html/project.sample/project.inc:134
+msgid "Your opinions about %1"
+msgstr "Suas opiniões sobre %1"
+
+#: html/project.sample/project.inc:138
+msgid ""
+"Tell us your thoughts about %1<ol>\n"
+"    <li>Why do you run %1?\n"
+"    <li>What are your views about the project?\n"
+"    <li>Any suggestions?\n"
+"    </ol>"
+msgstr "Nos diga seus pensamentos sobre %1<ol>\n<li>Por quê você roda %1?\n<li>Quais suas opiniões sobre o projeto?\n<li>Alguma sugestão?\n</ol>"
+
+#: html/project.sample/project_specific_prefs.inc:57
+msgid "Color scheme for graphics"
+msgstr "Esquema de cores para gráficos"
+
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
+msgid "Maximum CPU % for graphics%10 ... 100%2"
+msgstr "Máximo do CPU % para gráficos%10 ...100%2"
+
+#: html/project.sample/project_specific_prefs.inc:60
+msgid "Run only the selected applications"
+msgstr "Rodar somente as aplicações selecionadas"
+
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Receber tarefas somente para certas aplicações. Útil para focar em aplicações específicas, ou para excluí-las."
+
+#: html/project.sample/project_specific_prefs.inc:62
+msgid ""
+"If no work for selected applications is available, accept work from other "
+"applications?"
+msgstr "Se nenhum trabalho para as aplicações selecionadas estiver disponível, aceitar trabalho de outras aplicações?"
+
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Usar aplicações não-gráficas mais rápidas se disponíveis?"
+
+#: html/project.sample/project_specific_prefs.inc:94
+msgid "(all applications)"
+msgstr "(todas as aplicações)"
+
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Sem limite"
+
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "# máximo de trabalhos para este projeto"
+
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "# máximo de CPUs para este projeto"
+
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "# máximo de trabalhos"
+
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "# máximo de CPUs"
diff --git a/html/languages/translations/pt_PT.po b/html/languages/translations/pt_PT.po
new file mode 100644
index 0000000..8385ffd
--- /dev/null
+++ b/html/languages/translations/pt_PT.po
@@ -0,0 +1,6654 @@
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015-2017
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-10 11:24+0000\n"
+"Last-Translator: Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>\n"
+"Language-Team: Portuguese (Portugal) (http://www.transifex.com/boinc/boinc/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "LANG_NAME_NATIVE"
+msgstr "Português (Portugal)"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Portuguese"
+
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Código de Convite"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "É necessário um código de convite válido para criar uma conta."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Nome"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Identifica-o no seu site da Web. Utilize o seu nome real ou um apelido."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "Endereço de E-mail"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Deve ser um endereço válido do form 'name at domain'."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Palavra-passe"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Deve ter pelo menos %1 carateres"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Confirmar palavra-passe"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "País"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Selecione o país que pretende representar, se algum."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Código Postal"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Opcional"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Criar conta"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "Endereço de e-mail:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "esqueceu-se do endereço de e-mail?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Palavra-passe:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "esqueceu-se da palavra-passe?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Manter sessão ligada"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Iniciar sessão"
+
+#: html/inc/bbcode_html.inc:10
+msgid "Bold text: [b]text[/b]  (alt+b)"
+msgstr "Texto em negrito: [b]texto[/b]  (alt+b)"
+
+#: html/inc/bbcode_html.inc:11
+msgid "Italic text: [i]text[/i]  (alt+i)"
+msgstr "Texto em itálico: [i]text[/i]  (alt+i)"
+
+#: html/inc/bbcode_html.inc:12
+msgid "Underline text: [u]text[/u]  (alt+u)"
+msgstr "Texto sublinhado: [u]text[/u]  (alt+u)"
+
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Texto rasurado: [s]text[/s] (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
+msgid "Quote text: [quote]text[/quote]  (alt+q)"
+msgstr "Citar texto: [quote]texto[/quote] (alt+q)"
+
+#: html/inc/bbcode_html.inc:15
+msgid "Code display: [code]code[/code]  (alt+c)"
+msgstr "Exibição do código: [code]código[/code] (alt+c)"
+
+#: html/inc/bbcode_html.inc:16
+msgid "List: [list]text[/list] (alt+l)"
+msgstr "Lista: [list]texto[/list] (alt+l)"
+
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Lista ordenada: [list=1]text[/list] (alt+o)"
+
+#: html/inc/bbcode_html.inc:18
+msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
+msgstr "Inserir imagem: [img]http://image_url[/img]  (alt+p)"
+
+#: html/inc/bbcode_html.inc:19
+msgid ""
+"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
+msgstr "Inserir URL: [url]http://url[/url] ou [url=http://url]URL texto[/url]  (alt+w)"
+
+#: html/inc/bbcode_html.inc:24
+msgid "Font color"
+msgstr "Cor da letra"
+
+#: html/inc/bbcode_html.inc:25
+msgid ""
+"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
+msgstr "Cor da letra: [color=red]texto[/color]  Dica: também pode utilizar a cor=#FF0000"
+
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
+msgid "Default"
+msgstr "Predefinição"
+
+#: html/inc/bbcode_html.inc:27
+msgid "Dark Red"
+msgstr "Vermelho Escuro"
+
+#: html/inc/bbcode_html.inc:28
+msgid "Red"
+msgstr "Vermelho"
+
+#: html/inc/bbcode_html.inc:29
+msgid "Orange"
+msgstr "Cor de laranja"
+
+#: html/inc/bbcode_html.inc:30
+msgid "Brown"
+msgstr "Castanho"
+
+#: html/inc/bbcode_html.inc:31
+msgid "Yellow"
+msgstr "Amarelo"
+
+#: html/inc/bbcode_html.inc:32
+msgid "Green"
+msgstr "Verde"
+
+#: html/inc/bbcode_html.inc:33
+msgid "Olive"
+msgstr "Cor de azeitona"
+
+#: html/inc/bbcode_html.inc:34
+msgid "Cyan"
+msgstr "Ciano"
+
+#: html/inc/bbcode_html.inc:35
+msgid "Blue"
+msgstr "Azul"
+
+#: html/inc/bbcode_html.inc:36
+msgid "Dark Blue"
+msgstr "Azul Escuro"
+
+#: html/inc/bbcode_html.inc:37
+msgid "Indigo"
+msgstr "Indigo"
+
+#: html/inc/bbcode_html.inc:38
+msgid "Violet"
+msgstr "Violeta"
+
+#: html/inc/bbcode_html.inc:40
+msgid "Font size"
+msgstr "Tamanho da letra"
+
+#: html/inc/bbcode_html.inc:41
+msgid "Font size: [size=x-small]small text[/size]"
+msgstr "Tamanho da letra: [size=x-small]texto pequeno[/size]"
+
+#: html/inc/bbcode_html.inc:43
+msgid "Small"
+msgstr "Pequeno"
+
+#: html/inc/bbcode_html.inc:44
+msgid "Normal"
+msgstr "Normal"
+
+#: html/inc/bbcode_html.inc:45
+msgid "Large"
+msgstr "Grande"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close all open bbCode tags"
+msgstr "Fechar todas as etiquetas bbCode abertas"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close Tags"
+msgstr "Fechar Etiquetas"
+
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Conta"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Aderir"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "Sobre %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Ajuda"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Projeto"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Participar"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Realizar trabalho"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Estado do servidor"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Estatísticas"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Aplicações"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Participantes"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Computadores"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Equipas"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "Modelos de GPU"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "Modelos de CPU"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "A computar"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Comunidade"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Fóruns de Discussão"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "criar ou aderir a uma equipa"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Perfis"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Procurar utilizador"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Utilizador do dia"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Certificado"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Site"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Pesquisa no site"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Idiomas"
+
+#. names for the above
+#: html/inc/forum.inc:40
+msgid "Oldest first"
+msgstr "Primeiro, os mais antigos"
+
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
+msgid "Newest first"
+msgstr "Primeiro, os mais recentes"
+
+#: html/inc/forum.inc:42
+msgid "Highest rated posts first"
+msgstr "Primeiro, os artigos melhor classificados"
+
+#: html/inc/forum.inc:44
+msgid "Newest post first"
+msgstr "Primeiro, os artigos mais recentes"
+
+#: html/inc/forum.inc:45
+msgid "Most views first"
+msgstr "Primeiro, os mais visualizados"
+
+#: html/inc/forum.inc:46
+msgid "Most posts first"
+msgstr "Primeiro, os artigos mais"
+
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Moderador voluntário"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Administrador de projeto"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Responsável pelo desenvolvimento do projeto"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Utilizador de testes do projeto"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Programador voluntário"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Utilizador de testes voluntário"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Cientista do projeto"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Técnico do centro de ajuda"
+
+#. Search
+#: html/inc/forum.inc:132
+msgid "Search for words in forum messages"
+msgstr "Pesquisar por palavras nas mensagens do fórum"
+
+#: html/inc/forum.inc:132
+msgid "Search forums"
+msgstr "Pesquisar fóruns"
+
+#: html/inc/forum.inc:133
+msgid "Advanced search"
+msgstr "Pesquisa avançada"
+
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
+msgid "Private messages"
+msgstr "Mensagens privadas"
+
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
+msgid "Questions and Answers"
+msgstr "Perguntas e Respostas"
+
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
+msgid "%1 message board"
+msgstr "%1 mensagem do fórum"
+
+#: html/inc/forum.inc:243 html/inc/result.inc:784
+msgid "Previous"
+msgstr "Anterior"
+
+#: html/inc/forum.inc:281 html/inc/result.inc:793
+msgid "Next"
+msgstr "Seguinte"
+
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
+msgid "Author"
+msgstr "Autor"
+
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
+msgid "Message"
+msgstr "Mensagem"
+
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Enviar mensagem"
+
+#: html/inc/forum.inc:590
+msgid "Send %1 a private message"
+msgstr "Enviar uma mensagem privada ao %1"
+
+#: html/inc/forum.inc:591
+msgid "Joined: %1"
+msgstr "Aderiu: %1"
+
+#: html/inc/forum.inc:600
+msgid "Posts: %1"
+msgstr "Artigos: %1"
+
+#: html/inc/forum.inc:606
+msgid "Credit: %1"
+msgstr "Crédito: %1"
+
+#: html/inc/forum.inc:607
+msgid "RAC: %1"
+msgstr "RAC: %1"
+
+#: html/inc/forum.inc:637
+msgid "You haven't read this message yet"
+msgstr "Ainda não leu esta mensagem"
+
+#: html/inc/forum.inc:637
+msgid "Unread"
+msgstr "Não lidas"
+
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
+msgid "Message %1"
+msgstr "Mensagem %1"
+
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
+msgid "hidden"
+msgstr "oculto"
+
+#: html/inc/forum.inc:642
+msgid "Posted: %1"
+msgstr "Publicado: %1"
+
+#: html/inc/forum.inc:645
+msgid " - in response to "
+msgstr " - em resposta a"
+
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
+msgid "Edit"
+msgstr "Editar"
+
+#: html/inc/forum.inc:648
+msgid "Edit this message"
+msgstr "Edite esta mensagem"
+
+#: html/inc/forum.inc:654
+msgid "Last modified: %1"
+msgstr "Última modificação: %1"
+
+#: html/inc/forum.inc:657
+msgid ""
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Este artigo não é mostrado porque o remetente está na sua lista de 'ignorar'. Clique %1aqui%2 para ver este artigo"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report this post as offensive"
+msgstr "Reportar este artigo como ofensivo"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report as offensive"
+msgstr "Reportar como ofensivo"
+
+#: html/inc/forum.inc:696
+msgid "Rating: %1"
+msgstr "Classificação: %1"
+
+#: html/inc/forum.inc:696
+msgid "rate: "
+msgstr "classificar:"
+
+#: html/inc/forum.inc:699
+msgid "Click if you like this message"
+msgstr "Clique aqui se gosta da mensagem"
+
+#: html/inc/forum.inc:699
+msgid "Rate +"
+msgstr "Classificar +"
+
+#: html/inc/forum.inc:701
+msgid "Click if you don't like this message"
+msgstr "Clique se não gosta desta mensagem"
+
+#: html/inc/forum.inc:701
+msgid "Rate -"
+msgstr "Classificar -"
+
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
+msgid "Reply"
+msgstr "Responder"
+
+#: html/inc/forum.inc:710
+msgid "Post a reply to this message"
+msgstr "Responda a esta mensagem"
+
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
+msgid "Quote"
+msgstr "Citar"
+
+#: html/inc/forum.inc:713
+msgid "Post a reply by quoting this message"
+msgstr "Responda, citando esta mensagem"
+
+#: html/inc/forum.inc:735
+msgid "Hidden by a moderator"
+msgstr "Ocultado por um moderador"
+
+#: html/inc/forum.inc:756
+msgid "Posted %1 by %2"
+msgstr "Publicado %1 por %2"
+
+#: html/inc/forum.inc:776
+msgid "You may not post or rate messages until %1"
+msgstr "Não pode publicar ou classificar as mensagens até %1"
+
+#: html/inc/forum.inc:787
+msgid ""
+"\n"
+"        <ul>\n"
+"        <li> Posts must be 'kid friendly': they may not contain\n"
+"            content that is obscene, hate-related,\n"
+"            sexually explicit or suggestive.\n"
+"        <li> No commercial advertisements.\n"
+"        <li> No links to web sites involving sexual content,\n"
+"            gambling, or intolerance of others.\n"
+"        <li> No messages intended to annoy or antagonize other people,\n"
+"            or to hijack a thread.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
+"        <li> No abusive comments involving race, religion,\n"
+"            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
+"        "
+msgstr "\nul>\n<li> Os posts têm de ser 'amigáveis': não poderão conter conteúdo que seja obsceno, conteúdo sexual explícito ou sugestivo. \n<li> Publicidade. \n<li> Links para websites envolvendo conteúdo sexual, jogos de azar, ou intolerâncias de outros tipos. \n<li> Mensagens destinadas a importunar ou antagonizar outras pessoas, ou para sequestrar um tópico. \n<li> Mensagens que sejam deliberadamente hostis ou resultem em insultos. \n<li> Comentários abusivos envolvendo raça, religiã [...]
+
+#: html/inc/forum.inc:820
+msgid "Rules:"
+msgstr "Regras:"
+
+#: html/inc/forum.inc:821
+msgid "More info"
+msgstr "Mais informação"
+
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
+msgid "Unhide"
+msgstr "Desocultar"
+
+#: html/inc/forum.inc:1119
+msgid "Unhide this post"
+msgstr "Desocultar este artigo"
+
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
+msgid "Hide"
+msgstr "Ocultar"
+
+#: html/inc/forum.inc:1121
+msgid "Hide this post"
+msgstr "Ocultar este artigo"
+
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
+msgid "Move"
+msgstr "Mover"
+
+#: html/inc/forum.inc:1126
+msgid "Move post to a different thread"
+msgstr "Mover artigo para um tópico diferente"
+
+#: html/inc/forum.inc:1131
+msgid "Banish author"
+msgstr "Banir autor"
+
+#: html/inc/forum.inc:1138
+msgid "Vote to banish author"
+msgstr "Votar para banir autor"
+
+#: html/inc/forum.inc:1142
+msgid "Vote not to banish author"
+msgstr "Votar para não banir autor"
+
+#: html/inc/forum.inc:1147
+msgid "Start vote to banish author"
+msgstr "Iniciar votação para banir autor"
+
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Eliminar"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Eliminar este artigo"
+
+#: html/inc/forum.inc:1192
+msgid "Only team members can post to the team message board"
+msgstr "Apenas membros da equipa podem publicar no fórum da equipa"
+
+#: html/inc/forum.inc:1202
+msgid ""
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "Para criar um novo tópico em %1, tem de ter uma certa média de créditos. Isto serve para proteger contra abusos do sistema."
+
+#: html/inc/forum.inc:1209
+msgid ""
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Não pode criar tópicos neste preciso momento. Por favor, aguarde algum tempo antes de tentar novamente.\nIsto serve para proteger contra abusos do sistema."
+
+#: html/inc/forum.inc:1216
+msgid ""
+"This thread is locked. Only forum moderators and administrators are allowed "
+"to post there."
+msgstr "Este tópico está bloqueado. Apenas moderadores do fórum e administradores podem publicar aqui."
+
+#: html/inc/forum.inc:1221
+msgid "Can't post to a hidden thread."
+msgstr "Não pode publicar num tópico ocultado."
+
+#: html/inc/forum.inc:1256
+msgid "Thread"
+msgstr "Tópico"
+
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
+msgid "Posts"
+msgstr "Artigos"
+
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
+msgid "Views"
+msgstr "Visualizações"
+
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
+msgid "Last post"
+msgstr "Último artigo"
+
+#: html/inc/forum.inc:1317
+msgid "New posts in the thread %1"
+msgstr "Novas publicações no tópico %1"
+
+#: html/inc/forum.inc:1322
+msgid "New posts in subscribed thread"
+msgstr "Novas publicações no tópico subscrito"
+
+#: html/inc/forum.inc:1323
+msgid "There are new posts in the thread '%1'"
+msgstr "Existem novas publicações no tópico '%1'"
+
+#: html/inc/forum.inc:1333
+msgid "Mark all threads as read"
+msgstr "Marcar todos os tópicos como lidos"
+
+#: html/inc/forum.inc:1334
+msgid "Mark all threads in all message boards as read."
+msgstr "Marcar todos os tópicos em todas as mensagens do fórum como lidas."
+
+#: html/inc/host.inc:25
+msgid "No host"
+msgstr "Nenhum hospedeiro"
+
+#: html/inc/host.inc:27
+msgid "Unavailable"
+msgstr "Indisponível"
+
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
+msgid "Home"
+msgstr "Casa"
+
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
+msgid "Work"
+msgstr "Trabalho"
+
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
+msgid "School"
+msgstr "Escola"
+
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Update"
+msgstr "Atualizar"
+
+#: html/inc/host.inc:84
+msgid "Computer information"
+msgstr "Informação do Computador"
+
+#: html/inc/host.inc:88 html/inc/host.inc:93
+msgid "IP address"
+msgstr "Endereço de IP"
+
+#: html/inc/host.inc:88
+msgid "(same the last %1 times)"
+msgstr "(o mesmo que das útimas %1 vezes)"
+
+#: html/inc/host.inc:90
+msgid "External IP address"
+msgstr "Endereço de IP externo"
+
+#: html/inc/host.inc:93
+msgid "Show IP address"
+msgstr "Mostrar endereço de IP"
+
+#: html/inc/host.inc:95
+msgid "Domain name"
+msgstr "Nome do domínio"
+
+#: html/inc/host.inc:97
+msgid "Product name"
+msgstr "Nome do produto"
+
+#: html/inc/host.inc:101
+msgid "Local Standard Time"
+msgstr "Hora Padrão Local"
+
+#: html/inc/host.inc:101
+msgid "UTC %1 hours"
+msgstr "UTC %1 horas"
+
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
+msgid "Owner"
+msgstr "Proprietário"
+
+#: html/inc/host.inc:107 html/inc/host.inc:358
+msgid "Anonymous"
+msgstr "Anónimo"
+
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
+msgid "Created"
+msgstr "Criado"
+
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
+msgid "Total credit"
+msgstr "Créditos totais"
+
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
+msgid "Average credit"
+msgstr "Média de créditos"
+
+#: html/inc/host.inc:115
+msgid "Cross project credit"
+msgstr "Cruzar créditos do projecto"
+
+#: html/inc/host.inc:117
+msgid "CPU type"
+msgstr "Tipo de CPU"
+
+#: html/inc/host.inc:118
+msgid "Number of processors"
+msgstr "Número de processadores"
+
+#: html/inc/host.inc:120
+msgid "Coprocessors"
+msgstr "Coprocessadores"
+
+#: html/inc/host.inc:122 html/inc/host.inc:703
+msgid "Operating System"
+msgstr "Sistema Operativo"
+
+#: html/inc/host.inc:125 html/inc/host.inc:231
+msgid "BOINC version"
+msgstr "Versão do BOINC"
+
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
+msgid "Memory"
+msgstr "Memória"
+
+#: html/inc/host.inc:129 html/inc/host.inc:139
+msgid "%1 MB"
+msgstr "%1 MB"
+
+#: html/inc/host.inc:133
+msgid "Cache"
+msgstr "Cache"
+
+#: html/inc/host.inc:133
+msgid "%1 KB"
+msgstr "%1 KB"
+
+#: html/inc/host.inc:139
+msgid "Swap space"
+msgstr "Espaço Temporário"
+
+#: html/inc/host.inc:142
+msgid "Total disk space"
+msgstr "Espaço total em disco"
+
+#: html/inc/host.inc:142 html/inc/host.inc:145
+msgid "%1 GB"
+msgstr "%1 GB"
+
+#: html/inc/host.inc:145
+msgid "Free Disk Space"
+msgstr "Espaço Livre em Disco"
+
+#: html/inc/host.inc:149
+msgid "Measured floating point speed"
+msgstr "Velocidade de ponto flutuante calculada"
+
+#: html/inc/host.inc:149 html/inc/host.inc:152
+msgid "%1 million ops/sec"
+msgstr "%1 milhão ops/seg"
+
+#: html/inc/host.inc:152
+msgid "Measured integer speed"
+msgstr "Velocidade de íntegro calculada"
+
+#: html/inc/host.inc:156 html/inc/host.inc:158
+msgid "Average upload rate"
+msgstr "Taxa média de envio"
+
+#: html/inc/host.inc:156 html/inc/host.inc:163
+msgid "%1 KB/sec"
+msgstr "%1 KB/seg"
+
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
+msgid "Unknown"
+msgstr "Desconhecida"
+
+#: html/inc/host.inc:163 html/inc/host.inc:165
+msgid "Average download rate"
+msgstr "Taxa média de transferência"
+
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
+msgid "Average turnaround time"
+msgstr "Tempo de resposta médio"
+
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
+msgid "%1 days"
+msgstr "%1 dias"
+
+#: html/inc/host.inc:169
+msgid "Application details"
+msgstr "Detalhes da aplicação"
+
+#: html/inc/host.inc:170
+msgid "Show"
+msgstr "Mostrar"
+
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
+msgid "Tasks"
+msgstr "Tarefas"
+
+#: html/inc/host.inc:184 html/inc/host.inc:206
+msgid "Number of times client has contacted server"
+msgstr "Número de vezes que o cliente contactou o servidor"
+
+#: html/inc/host.inc:185
+msgid "Last time contacted server"
+msgstr "A última vez que o servidor foi contactado"
+
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Fração de tempo em que o BOINC está em execução"
+
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Enquanto o BOINC estiver em execução, uma fração de tempo utiliza ligação à Internet"
+
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Enquanto o BOINC estiver em execução, fração de tempo de computação que é permitida"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Enquanto o BOINC estiver em execução, fração de tempo de computação da GPU que é permitida"
+
+#: html/inc/host.inc:193
+msgid "Average CPU efficiency"
+msgstr "Eficiência média do CPU"
+
+#: html/inc/host.inc:196
+msgid "Task duration correction factor"
+msgstr "Duração do factor de correcção da tarefa"
+
+#: html/inc/host.inc:198 html/inc/host.inc:683
+msgid "Location"
+msgstr "Localização"
+
+#: html/inc/host.inc:200
+msgid "Delete this computer"
+msgstr "Eliminar este computador"
+
+#: html/inc/host.inc:204
+msgid "Merge duplicate records of this computer"
+msgstr "Fundir registos duplicados deste computador"
+
+#: html/inc/host.inc:204
+msgid "Merge"
+msgstr "Fundir"
+
+#: html/inc/host.inc:207 html/inc/host.inc:706
+msgid "Last contact"
+msgstr "Último contacto"
+
+#: html/inc/host.inc:220
+msgid "Computer info"
+msgstr "Informações do computador"
+
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
+msgid "Rank"
+msgstr "Classificação"
+
+#: html/inc/host.inc:225 html/inc/host.inc:690
+msgid "Avg. credit"
+msgstr "Média de créditos"
+
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
+msgid "Recent average credit"
+msgstr "Média de créditos recentes"
+
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
+msgid "CPU"
+msgstr "CPU"
+
+#: html/inc/host.inc:233 html/inc/host.inc:700
+msgid "GPU"
+msgstr "GPU"
+
+#: html/inc/host.inc:234
+msgid "Operating system"
+msgstr "Sistema operativo"
+
+#: html/inc/host.inc:319
+msgid "(%1 processors)"
+msgstr "(%1 processadores)"
+
+#: html/inc/host.inc:338
+msgid "Details"
+msgstr "Detalhes"
+
+#: html/inc/host.inc:343
+msgid "Cross-project stats:"
+msgstr "Cruzar estatísticas do projeto:"
+
+#: html/inc/host.inc:518
+msgid "Host %1 has overlapping lifetime:"
+msgstr "O anfitrião %1 tem uma sobreposição do tempo de vida:"
+
+#: html/inc/host.inc:525
+msgid "Host %1 has an incompatible OS:"
+msgstr "O anfitrião %1 tem um Sistema Operativo incompatível:"
+
+#: html/inc/host.inc:531
+msgid "Host %1 has an incompatible CPU:"
+msgstr "O anfitrião %1 tem um CPU incompatível:"
+
+#: html/inc/host.inc:598
+msgid "same host"
+msgstr "o mesmo anfitrião"
+
+#: html/inc/host.inc:601
+msgid "Can't merge host %1 into %2 - they're incompatible"
+msgstr "Não é possível fundir o anfitrião %1 ao %2 - são incompatíveis"
+
+#: html/inc/host.inc:604
+msgid "Merging host %1 into host %2"
+msgstr "A fundir anfitrião %1 com o anfitrião %2"
+
+#: html/inc/host.inc:621
+msgid "Couldn't update credit of new computer"
+msgstr "Não foi possível atualizar os créditos do novo computador"
+
+#: html/inc/host.inc:625
+msgid "Couldn't update results"
+msgstr "Não foi possível atualizar os resultados"
+
+#: html/inc/host.inc:630
+msgid "Couldn't retire old computer"
+msgstr "Não foi possível retirar o computador antigo"
+
+#: html/inc/host.inc:632
+msgid "Retired old computer %1"
+msgstr "Computador antigo retirado %1"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Show:"
+msgstr "Mostrar:"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "All computers"
+msgstr "Todos os computadores"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Only computers active in past 30 days"
+msgstr "Apenas os computadores ativos nos últimos 30 dias"
+
+#: html/inc/host.inc:671 html/inc/result.inc:702
+msgid "Computer ID"
+msgstr "ID do computador"
+
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Modelo"
+
+#: html/inc/host.inc:695
+msgid "BOINC<br>version"
+msgstr "Versão do<br>BOINC"
+
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
+msgid "Merge computers by name"
+msgstr "Fundir computadores por nome"
+
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discussão"
+
+#: html/inc/news.inc:112
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "As notícias estão disponíveis como %sFeed RSS%s"
+
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
+msgid "Inbox"
+msgstr "Caixa de entrada"
+
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
+msgid "Write"
+msgstr "Escrever"
+
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Enviar mensagem à equipa"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
+msgid "Preview"
+msgstr "Pré-visualizar"
+
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Assunto"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Enviar mensagem privada"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
+msgid "no such message"
+msgstr "não existe essa mensagem"
+
+#: html/inc/pm.inc:133
+msgid "To"
+msgstr "Para"
+
+#: html/inc/pm.inc:133
+msgid "User IDs or unique usernames, separated with commas"
+msgstr "IDs dos utilizadores ou nomes de utilizador únicos, separados com virgulas"
+
+#: html/inc/pm.inc:186
+msgid "sent you a private message; subject:"
+msgstr "enviou-lhe uma mensagem privada; assunto:"
+
+#: html/inc/pm.inc:193
+msgid "Private message%1 from %2, subject:"
+msgstr "Mensagem privada%1 de %2, assunto:"
+
+#: html/inc/pm.inc:201
+msgid "Couldn't create message"
+msgstr "Não foi possível criar mensagem"
+
+#: html/inc/pm.inc:239
+msgid ""
+"You are not allowed to send privates messages so often. Please wait some "
+"time before sending more messages."
+msgstr "Não está autorizado a enviar mensagens privadas tão frequentemente. Por favor, aguarde algum tempo antes de enviar mais mensagens."
+
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
+msgid "unread"
+msgstr "não lidas"
+
+#: html/inc/pm.inc:259
+msgid "For email notification, %1edit community prefs%2"
+msgstr "Para notificações de e-mail, %1edite as preferências da comunidade%2"
+
+#: html/inc/pm.inc:275
+msgid "Private message"
+msgstr "Mensagem privada"
+
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Limites de utilização"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Utilizar no máximo"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
+msgid ""
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Manter alguns CPUs livres para outras aplicações. Exemplo: 75% significa utilizar 6 núcleos num CPU de 8 núcleos."
+
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% das CPUs"
+
+#: html/inc/prefs.inc:63
+#, no-php-format
+msgid ""
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Suspende/resume computação em alguns segundos para reduzir a temperatura do CPU e o consumo de energia. Exemplo: 75% significa computação durante 3 segundos, aguardar 1 segundo, e repetir."
+
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% de tempo da CPU"
+
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Quando suspender"
+
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Suspender quando o computador estiver apenas com bateria"
+
+#: html/inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Seleccione aqui para suspender a computação em portáteis quando estiverem apenas com alimentação da bateria."
+
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Suspender quando o computador estiver em utilização"
+
+#: html/inc/prefs.inc:77
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Seleccione aqui para suspender a computação e transferência de ficheiros quando estiver a utilizar o computador."
+
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Suspender a GPU enquanto o computador está em utilização"
+
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Seleccione aqui para suspender a computação com a GPU quanto estiver a utilizar o computador."
+
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Em utilização' significa atividade do rato/teclado nos últimos"
+
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Isto determina quando o computador é considerado 'em utilização'."
+
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "minutos"
+
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Suspender quando não houver atividade do rato/teclado nos últimos"
+
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Isto permite que alguns computadores entrem em poupança de energia quando não estiverem a ser utilizados."
+
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Suspender quando a utilização do CPU por parte de terceiros for superior a"
+
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Suspender computação quando o computador estiver ocupado a executar outros programas."
+
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Realizar computação apenas entre"
+
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Executar computação apenas durante um período específico do dia."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Outro"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Armazenar no mínimo"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Armazenar tarefas suficientes, no mínimo para manter o computador ocupado por este período."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "dias de trabalho"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Armazene até um adicional"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Armazene tarefas adicionais acima do nível mínimo. Determina a quantidade de trabalho que é pedido quando um projeto é contatado."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Mudar entre tarefas a cada"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Se executa vários projetos, o BOINC pode trocar com esta frequência entre eles."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Solicitar que as tarefas criem um checkpoint no máximo a cada "
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Isto controla com que frequência as tarefas guardam no disco o seu estado, para que possam continuar mais tarde a partir deste ponto."
+
+#: html/inc/prefs.inc:134
+msgid "seconds"
+msgstr "segundos"
+
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Utilizar não mais do que"
+
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Limita o espaço total em disco utilizado pelo BOINC."
+
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
+
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Deixar pelo menos"
+
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Limita a utilização em disco de modo a deixar esta quantidade de espaço livre no volume onde o BOINC armazena os dados."
+
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB livres"
+
+#: html/inc/prefs.inc:155
+msgid ""
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Limita a percentagem de disco utilizado pelo BOINC no volume onde os dados são armazenados."
+
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% do total "
+
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "Quando o computador está em utilização, usar no máximo"
+
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Limita a memória utilizada pelo BOINC quando está a utilizar o computador. "
+
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
+
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Quando o computador não está em utilização, usar no máximo"
+
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Limita a memória utilizad pelo BOINC quando não está a utilizar o computador."
+
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Deixar tarefas não-GPU em memória enquanto estiverem suspensas"
+
+#: html/inc/prefs.inc:179
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Se marcado, as tarefas suspensas ficam em memória e, retomam sem trabalho perdido. Se não estiver marcado, as tarefas suspensas são removidas da memória e retomam a partir do seu último checkpoint."
+
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Página/ficheiro swap: usar no máximo"
+
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Limita o espaço swap (ficheiro de paginação) utilizado pelo BOINC."
+
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Limitar taxa de transferência a"
+
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Limita a taxa de transferência de ficheiros."
+
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/segundo"
+
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Limitar a taxa de upload a"
+
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Limita a taxa de upload de transferência de ficheiros."
+
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Limitar utilização a"
+
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Exemplo: O BOINC deve transferir no máximo 2000 MB de dados a cada 30 dias."
+
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB a cada"
+
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "dias"
+
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Transferir ficheiros apenas entre"
+
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Transferir ficheiros apenas durante um período específico do dia."
+
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Saltar verificação de dados para imagens"
+
+#: html/inc/prefs.inc:223
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Seleccione aqui apenas se o seu fornecedor de Internet modifica os ficheiros de imagem. Saltar a verificação reduz a segurança do BOINC."
+
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Confirmar antes de se ligar à Internet"
+
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Útil apenas se tiver um modem, ISDN ou conexão VPN."
+
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Desligar quando finalizado"
+
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Disco"
+
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Rede"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Estas preferências aplicam-se a todos os projetos BOINC em que participa."
+
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Não foi possível atualizar as preferências.%2 Os valores marcados abaixo a vermelho ficaram fora de alcance ou não são numéricos."
+
+#: html/inc/prefs.inc:494
+msgid "Separate preferences for %1"
+msgstr "Separar preferências para %1"
+
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
+msgid "Edit preferences"
+msgstr "Editar preferências"
+
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Remover"
+
+#: html/inc/prefs.inc:508
+msgid "Add separate preferences for %1"
+msgstr "Adicionar preferências separadas para %1"
+
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Estas configurações aplicam-se a todos os computadores a usarem esta conta, exceto"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "computadores onde definiu as preferências locais para utilizarem o Gestor BOINC"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Dispositivos Android"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
+msgstr "(Mudar de vista)"
+
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
+msgid "Combined preferences"
+msgstr "Preferências combinadas"
+
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
+msgid "Primary (default) preferences"
+msgstr "Preferências primárias (predefinição)"
+
+#: html/inc/prefs.inc:546
+msgid "Preferences last modified:"
+msgstr "Preferências modificadas por último:"
+
+#: html/inc/prefs.inc:562
+msgid "Add preferences"
+msgstr "Adicionar preferências"
+
+#: html/inc/prefs.inc:566
+msgid "Update preferences"
+msgstr "Atualizar preferências"
+
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "sim"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "não"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
+msgid "Default computer location"
+msgstr "Localização pré-definida do computador"
+
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Novos computadores irão utilizar esta localização para computação e preferências de projeto."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Quota de recursos"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina a proporção de recursos alocados no seu computador para este projeto. Por exemplo, se participa em dois projetos BOINC, com partilha de recursos de 100 e 200, o primeiro irá ficar com 1/3 dos recursos e o segundo com 2/3."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Acelerar as tarefas da GPU, dedicando um CPU para cada uma?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "Utilizar CPU"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "Utilizar GPU ATI"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "Utilizar GPU NVIDIA"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Utilizar GPU Intel"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Executar aplicações de teste?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "isto irá nos ajudar a desenvolver aplicações, mas poderá fazer com que os trabalhos falhem no seu computador"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "E-mails serão enviados de %1; confirme que o seu filtro de spam aceita este endereço."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "OK para %1 e a sua equipa (se alguma) lhe enviarem e-mails?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "Deve o %1 mostrar os seus computadores no seu website?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Mudar Vista)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Definições específicas do projeto"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "mau conjunto: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "mau subconjunto: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
+msgid "and"
+msgstr "e"
+
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "sem limite"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Adicionar"
+
+#: html/inc/profile.inc:85
+msgid ""
+"Your profile will be made visible to other people as soon as it has been "
+"approved by the project. This may take up to a few days."
+msgstr "O seu perfil ficará visível a outras pessoas assim que for aprovado pelo projeto. Isto poderá levar alguns dias."
+
+#: html/inc/profile.inc:91
+msgid ""
+"Your profile has been marked as unacceptable. It is not visible to other "
+"people. Please change it."
+msgstr "O seu perfil foi definido como inaceitável. Não está visível a outras pessoas. Por favor altere-o."
+
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
+msgid "Database error"
+msgstr "Erro da base de dados"
+
+#: html/inc/profile.inc:194
+msgid ""
+"To prevent spam, profiles of users with an average credit of less than %1 "
+"are displayed only to logged-in users. We apologize for this inconvenience."
+msgstr "Para prevenir spam, perfis de utilizadores com uma média de créditos inferior a %1 são visíveis apenas a utilizadores que se tenham ligado. Pedimos desculpa pela inconveniência."
+
+#: html/inc/profile.inc:198
+msgid "User is banished"
+msgstr "O utilizador está banido"
+
+#: html/inc/profile.inc:212
+msgid "No profile exists for that user ID."
+msgstr "Não existe nenhum perfil para o utilizador com esse ID."
+
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
+msgid "Edit your profile"
+msgstr "Editar o seu perfil"
+
+#: html/inc/profile.inc:267
+msgid "Your feedback on this profile"
+msgstr "O seu feedback neste perfil"
+
+#: html/inc/profile.inc:269
+msgid "Recommend this profile for User of the Day:"
+msgstr "Recomendar este perfil para Utilizador do Dia:"
+
+#: html/inc/profile.inc:270
+msgid "I %1like%2 this profile"
+msgstr "%1gosto%2 deste perfil"
+
+#: html/inc/profile.inc:273
+msgid "Alert administrators to an offensive profile:"
+msgstr "Alertar administradores para um perfil ofensivo:"
+
+#: html/inc/profile.inc:274
+msgid "I %1do not like%2 this profile"
+msgstr "%1não gosto%2 deste perfil"
+
+#: html/inc/result.inc:58
+msgid "Anonymous platform"
+msgstr "Plataforma anónima"
+
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
+msgid "NVIDIA GPU"
+msgstr "GPU NVIDIA"
+
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
+msgid "ATI GPU"
+msgstr "GPU ATI"
+
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
+msgid "Intel GPU"
+msgstr "GPU Intel"
+
+#: html/inc/result.inc:105
+msgid "pending"
+msgstr "pendente"
+
+#: html/inc/result.inc:128 html/user/forum_search.php:62
+msgid "All"
+msgstr "Todos"
+
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
+msgid "In progress"
+msgstr "Em progresso"
+
+#: html/inc/result.inc:130
+msgid "Validation pending"
+msgstr "Validação pendente"
+
+#: html/inc/result.inc:131
+msgid "Validation inconclusive"
+msgstr "Validação inconclusiva"
+
+#: html/inc/result.inc:132 html/inc/result.inc:282
+msgid "Valid"
+msgstr "Válido"
+
+#: html/inc/result.inc:133 html/inc/result.inc:285
+msgid "Invalid"
+msgstr "Inválido"
+
+#: html/inc/result.inc:134 html/inc/result.inc:223
+msgid "Error"
+msgstr "Erro"
+
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
+msgid "Inactive"
+msgstr "Inativo"
+
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
+msgid "Unsent"
+msgstr "Não enviados"
+
+#: html/inc/result.inc:195
+msgid "Completed, waiting for validation"
+msgstr "Finalizados, a aguardar validação"
+
+#: html/inc/result.inc:196
+msgid "Completed and validated"
+msgstr "Finalizados e validados"
+
+#: html/inc/result.inc:197
+msgid "Completed, marked as invalid"
+msgstr "Finalizados, marcados como inválidos"
+
+#: html/inc/result.inc:198
+msgid "Completed, can't validate"
+msgstr "Finalizados, não são possíveis de validar"
+
+#: html/inc/result.inc:199
+msgid "Completed, validation inconclusive"
+msgstr "Finalizados, validação inconclusiva"
+
+#: html/inc/result.inc:200
+msgid "Completed, too late to validate"
+msgstr "Finalizados, demasiado tarde para serem validados"
+
+#: html/inc/result.inc:202
+msgid "Completed"
+msgstr "Finalizados"
+
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
+msgid "Couldn't send"
+msgstr "Não foi possível enviar"
+
+#: html/inc/result.inc:208 html/inc/result.inc:271
+msgid "Cancelled by server"
+msgstr "Cancelados pelo servidor"
+
+#: html/inc/result.inc:213
+msgid "Not started by deadline - canceled"
+msgstr "Não iniciou devido à data limite - cancelado"
+
+#: html/inc/result.inc:216
+msgid "Error while downloading"
+msgstr "Erro enquanto transferi-a"
+
+#: html/inc/result.inc:218
+msgid "Error while computing"
+msgstr "Erro enquanto realizava a computação"
+
+#: html/inc/result.inc:219
+msgid "Error while uploading"
+msgstr "Erro enquanto realizava o upload"
+
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Cancelado"
+
+#: html/inc/result.inc:221 html/inc/result.inc:274
+msgid "Upload failed"
+msgstr "Upload falhado"
+
+#: html/inc/result.inc:224
+msgid "Timed out - no response"
+msgstr "Tempo limite atingido - sem resposta"
+
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
+msgid "Didn't need"
+msgstr "Desnecessário"
+
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
+msgid "Validate error"
+msgstr "Validar erro"
+
+#: html/inc/result.inc:227 html/inc/result.inc:256
+msgid "Abandoned"
+msgstr "Abandonado"
+
+#: html/inc/result.inc:238 html/user/explain_state.php:43
+msgid "Over"
+msgstr "Excesso"
+
+#: html/inc/result.inc:246 html/user/explain_state.php:59
+msgid "Success"
+msgstr "Sucesso"
+
+#: html/inc/result.inc:250
+msgid "Computation error"
+msgstr "Erro de computação"
+
+#: html/inc/result.inc:252
+msgid "Redundant result"
+msgstr "Resultado redundante"
+
+#: html/inc/result.inc:253 html/user/explain_state.php:68
+msgid "No reply"
+msgstr "Sem reposta"
+
+#: html/inc/result.inc:263 html/user/explain_state.php:85
+msgid "New"
+msgstr "Novo"
+
+#: html/inc/result.inc:264 html/user/explain_state.php:91
+msgid "Downloading"
+msgstr "A transferir"
+
+#: html/inc/result.inc:265
+msgid "Processing"
+msgstr "A processar"
+
+#: html/inc/result.inc:266
+msgid "Compute error"
+msgstr "Erro de computação"
+
+#: html/inc/result.inc:267 html/user/explain_state.php:97
+msgid "Uploading"
+msgstr "A realizar upload"
+
+#: html/inc/result.inc:268 html/user/explain_state.php:88
+msgid "Done"
+msgstr "Feito"
+
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Cancelado pelo utilizador"
+
+#: html/inc/result.inc:281
+msgid "Initial"
+msgstr "Inicial"
+
+#: html/inc/result.inc:287
+msgid "Not necessary"
+msgstr "Desnecessário"
+
+#: html/inc/result.inc:288
+msgid "Workunit error - check skipped"
+msgstr "Erro na unidade de trabalho - verificação saltada"
+
+#: html/inc/result.inc:289
+msgid "Checked, but no consensus yet"
+msgstr "Verificado, mas sem consenso ainda"
+
+#: html/inc/result.inc:290
+msgid "Task was reported too late to validate"
+msgstr "A tarefa foi reportada demasiado tarde para ser validada"
+
+#: html/inc/result.inc:316
+msgid "Couldn't send result"
+msgstr "Não foi possível enviar o resultado "
+
+#: html/inc/result.inc:320
+msgid "Too many errors (may have bug)"
+msgstr "Demasiados erros (pode ter um bug)"
+
+#: html/inc/result.inc:324
+msgid "Too many results (may be nondeterministic)"
+msgstr "Demasiados resultados (pode não ser determinante)"
+
+#: html/inc/result.inc:328
+msgid "Too many total results"
+msgstr "Demasiados resultados totais"
+
+#: html/inc/result.inc:332
+msgid "WU cancelled"
+msgstr "Unidade de trabalho cancelada"
+
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Resultado canónico em falta"
+
+#: html/inc/result.inc:340
+msgid "Unrecognized Error: %1"
+msgstr "Erro irreconhecível: %1"
+
+#: html/inc/result.inc:369
+msgid "Task name"
+msgstr "Nome da tarefa"
+
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
+msgid "click for details"
+msgstr "carregue para detalhes"
+
+#: html/inc/result.inc:369
+msgid "Show IDs"
+msgstr "Mostrar IDs"
+
+#: html/inc/result.inc:374
+msgid "Show names"
+msgstr "Mostrar nomes"
+
+#: html/inc/result.inc:377 html/user/result.php:36
+msgid "Task"
+msgstr "Tarefa"
+
+#: html/inc/result.inc:380
+msgid "Work unit"
+msgstr "Unidade de trabalho"
+
+#: html/inc/result.inc:391
+msgid "Computer"
+msgstr "Computador"
+
+#: html/inc/result.inc:394 html/inc/result.inc:695
+msgid "Sent"
+msgstr "Enviado"
+
+#: html/inc/result.inc:395
+msgid "Time reported<br />or deadline"
+msgstr "Tempo reportado<br />ou prazo limite "
+
+#: html/inc/result.inc:396
+msgid "explain"
+msgstr "explique"
+
+#: html/inc/result.inc:397 html/user/server_status.php:112
+msgid "Status"
+msgstr "Estado"
+
+#: html/inc/result.inc:401
+msgid "Run time<br />(sec)"
+msgstr "Tempo decorrido<br />(seg)"
+
+#: html/inc/result.inc:402
+msgid "CPU time<br />(sec)"
+msgstr "Tempo do CPU<br />(seg)"
+
+#: html/inc/result.inc:403 html/inc/result.inc:706
+msgid "Credit"
+msgstr "Créditos"
+
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
+msgid "Application"
+msgstr "Aplicação"
+
+#: html/inc/result.inc:693
+msgid "Workunit"
+msgstr "Unidade de trabalho"
+
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Reportar prazo limite"
+
+#: html/inc/result.inc:697
+msgid "Received"
+msgstr "Recebido"
+
+#: html/inc/result.inc:698
+msgid "Server state"
+msgstr "Estado do servidor"
+
+#: html/inc/result.inc:699
+msgid "Outcome"
+msgstr "Resultado"
+
+#: html/inc/result.inc:700
+msgid "Client state"
+msgstr "Estado do cliente"
+
+#: html/inc/result.inc:701
+msgid "Exit status"
+msgstr "Estado de saída"
+
+#: html/inc/result.inc:703
+msgid "Run time"
+msgstr "Tempo decorrido"
+
+#: html/inc/result.inc:704
+msgid "CPU time"
+msgstr "Tempo do CPU"
+
+#: html/inc/result.inc:705
+msgid "Validate state"
+msgstr "Validar estado"
+
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "Pico de FLOPS do dispositivo"
+
+#: html/inc/result.inc:708
+msgid "Application version"
+msgstr "Versão da aplicação"
+
+#: html/inc/result.inc:733
+msgid "Output files"
+msgstr "Ficheiros de saída"
+
+#: html/inc/result.inc:736
+msgid "Stderr output"
+msgstr "Stderr output"
+
+#: html/inc/result.inc:795
+msgid "State"
+msgstr "Estado"
+
+#: html/inc/result.inc:836
+msgid "Task name:"
+msgstr "Nome da tarefa:"
+
+#: html/inc/team.inc:40
+msgid "Search criteria (use one or more)"
+msgstr "Pesquisar por critérios (usar um ou mais)"
+
+#: html/inc/team.inc:42
+msgid "Key words"
+msgstr "Palavras chave"
+
+#: html/inc/team.inc:42
+msgid "Find teams with these words in their names or descriptions"
+msgstr "Pesquisar por equipas com estas palavras nos seus nomes ou descrições"
+
+#: html/inc/team.inc:50 html/inc/team.inc:465
+msgid "Type of team"
+msgstr "Tipo de equipa"
+
+#: html/inc/team.inc:52
+msgid "Show only active teams"
+msgstr "Mostrar apenas equipas ativas"
+
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
+msgid "Search"
+msgstr "Pesquisar"
+
+#: html/inc/team.inc:62
+msgid "Requested by you, and founder response deadline has passed."
+msgstr "Solicitado por si, e o tempo de resposta limite do fundador passou."
+
+#: html/inc/team.inc:64
+msgid "Complete foundership transfer"
+msgstr "Finalizar transferência de fundador"
+
+#: html/inc/team.inc:68
+msgid "Requested by you"
+msgstr "Solicitado por si"
+
+#: html/inc/team.inc:68
+msgid "founder response deadline is %1"
+msgstr "o tempo de resposta limite do fundador é %1"
+
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
+msgid "None"
+msgstr "Nenhum"
+
+#: html/inc/team.inc:75
+msgid "Initiate request"
+msgstr "Iniciar pedido"
+
+#: html/inc/team.inc:78
+msgid "Deferred"
+msgstr "Deferido"
+
+#: html/inc/team.inc:92
+msgid "Team info"
+msgstr "Informações da equipa"
+
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
+msgid "Description"
+msgstr "Descrição"
+
+#: html/inc/team.inc:107
+msgid "Web site"
+msgstr "Website"
+
+#: html/inc/team.inc:133
+msgid "Cross-project stats"
+msgstr "Cruzar estatísticas do projecto"
+
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
+msgid "Type"
+msgstr "Tipo"
+
+#: html/inc/team.inc:140 html/user/team_manage.php:67
+msgid "Message board"
+msgstr "Fórum de discussão"
+
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
+msgid "Threads"
+msgstr "Tópicos"
+
+#: html/inc/team.inc:149
+msgid "Join this team"
+msgstr "Aderir a esta equipa"
+
+#: html/inc/team.inc:150
+msgid ""
+"Note: if 'OK to email' is set in your project preferences, joining a team "
+"gives its founder access to your email address."
+msgstr "Nota: Se 'OK para e-mail' está definido nas suas preferências do projeto, ao aderir a uma equipa permite que o fundador aceda ao seu endereço de e-mail."
+
+#: html/inc/team.inc:153
+msgid "Not accepting new members"
+msgstr "Não são aceites novos membros"
+
+#: html/inc/team.inc:160
+msgid "Foundership change requested"
+msgstr "Mudança de liderança pedida"
+
+#: html/inc/team.inc:161
+msgid "Respond by %1"
+msgstr "Responder por %1"
+
+#: html/inc/team.inc:165
+msgid "Team foundership change"
+msgstr "Mudança de liderança da equipa"
+
+#: html/inc/team.inc:169 html/inc/team.inc:370
+msgid "Members"
+msgstr "Membros"
+
+#: html/inc/team.inc:170 html/inc/team.inc:265
+msgid "Founder"
+msgstr "Fundador"
+
+#: html/inc/team.inc:184
+msgid "Admins"
+msgstr "Administradores"
+
+#: html/inc/team.inc:199
+msgid "New members in last day"
+msgstr "Novos membros no último dia"
+
+#: html/inc/team.inc:200
+msgid "Total members"
+msgstr "Total de membros"
+
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
+msgid "view"
+msgstr "ver"
+
+#: html/inc/team.inc:201
+msgid "Active members"
+msgstr "Membros ativos"
+
+#: html/inc/team.inc:202
+msgid "Members with credit"
+msgstr "Membros com créditos"
+
+#: html/inc/team.inc:267
+msgid "Admin"
+msgstr "Administrador"
+
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
+msgid "Previous %1"
+msgstr "Anterior %1"
+
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
+msgid "Next %1"
+msgstr "Próximo %1"
+
+#: html/inc/team.inc:300
+msgid "No such team."
+msgstr "Não existe essa equipa."
+
+#: html/inc/team.inc:313
+msgid "This operation requires foundership."
+msgstr "Esta operação requer privilégios de líder."
+
+#: html/inc/team.inc:337
+msgid "This operation requires team admin privileges"
+msgstr "Esta operação requer privilégios de administrador da equipa"
+
+#: html/inc/team.inc:434
+msgid ""
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "ATENÇÃO: esta é uma equipa ampla do BOINC. Se fizer alterações aqui, elas serão brevemente re-escritas. Edite a %1equipa ampla do BOINC%2 em alternativa."
+
+#: html/inc/team.inc:440
+msgid ""
+"%1Privacy note%2: if you create a team, your project preferences (resource "
+"share, graphics preferences) will be visible to the public."
+msgstr "%1Nota privada%2: se criar uma equipa, as preferências do proecto (partilha de recursos, preferências gráficas) ficarão visíveis ao público."
+
+#: html/inc/team.inc:444
+msgid "Team name, text version"
+msgstr "Nome da equipa, versão texto"
+
+#: html/inc/team.inc:445
+msgid "Don't use HTML tags."
+msgstr "Não use tags HTML."
+
+#: html/inc/team.inc:448
+msgid "Team name, HTML version"
+msgstr "Nome da equipa, versão HTML"
+
+#: html/inc/team.inc:450 html/inc/team.inc:460
+msgid "You may use %1limited HTML tags%2."
+msgstr "Pode usar %1tags limitadas HTML%2."
+
+#: html/inc/team.inc:451
+msgid "If you don't know HTML, leave this box blank."
+msgstr "Se não sabe o que é HTML, deixe esta caixa em branco."
+
+#: html/inc/team.inc:454
+msgid "URL of team web page, if any"
+msgstr "URL da página web da equipa, se existir"
+
+#: html/inc/team.inc:454
+msgid "without \"http://\""
+msgstr "sem \"http://\""
+
+#: html/inc/team.inc:455
+msgid "This URL will be linked to from the team's page on this site."
+msgstr "Este URL será linkado para a página da equipa neste site."
+
+#: html/inc/team.inc:458
+msgid "Description of team"
+msgstr "Descrição da equipa"
+
+#: html/inc/team.inc:474
+msgid "Accept new members?"
+msgstr "Aceitar novos membros?"
+
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Empresa"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Escola primária"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Escola secundária"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Colégio juvenil"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Universidade ou departamento"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Agência governamental"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "Organização sem fins lucrativos"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "Nacional"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Local/regional"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Tipo de computador"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Social/politico/religioso"
+
+#: html/inc/uotd.inc:30
+msgid "User profile"
+msgstr "Perfil do utilizador"
+
+#: html/inc/user.inc:118
+msgid "Projects in which you are participating"
+msgstr "Projetos em que está a participar"
+
+#: html/inc/user.inc:120
+msgid "Projects in which %1 is participating"
+msgstr "Projetos em que %1 está a participar"
+
+#: html/inc/user.inc:125
+msgid "Click for user page"
+msgstr "Carregue para página do utilizador"
+
+#: html/inc/user.inc:128
+msgid "Since"
+msgstr "Desde"
+
+#: html/inc/user.inc:155
+msgid "Computing and credit"
+msgstr "Computação e créditos"
+
+#: html/inc/user.inc:158
+msgid "Computers on this account"
+msgstr "Computadores nesta conta"
+
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
+msgid "View"
+msgstr "Ver"
+
+#: html/inc/user.inc:168
+msgid "Cross-project ID"
+msgstr "ID de projectos cruzados"
+
+#: html/inc/user.inc:169
+msgid "Cross-project statistics"
+msgstr "Estatísticas de projectos cruzados"
+
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
+msgid "Team"
+msgstr "Equipa"
+
+#: html/inc/user.inc:174
+msgid "Cross-project"
+msgstr "Projeto cruzado"
+
+#: html/inc/user.inc:176
+msgid "Stats on your cell phone"
+msgstr "Dados do seu telemóvel"
+
+#: html/inc/user.inc:201
+msgid "Account information"
+msgstr "Informações da conta"
+
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
+msgid "Email address"
+msgstr "Endereço de e-mail"
+
+#: html/inc/user.inc:214 html/inc/user.inc:413
+msgid "URL"
+msgstr "URL"
+
+#: html/inc/user.inc:217
+msgid "Postal code"
+msgstr "Código postal"
+
+#: html/inc/user.inc:218 html/inc/user.inc:407
+msgid "%1 member since"
+msgstr "%1 membro desde"
+
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
+msgid "Change"
+msgstr "Mudar"
+
+#: html/inc/user.inc:228
+msgid "email address"
+msgstr "endereço de e-mail"
+
+#: html/inc/user.inc:229
+msgid "password"
+msgstr "palavra-passe"
+
+#: html/inc/user.inc:230
+msgid "other account info"
+msgstr "outras informações da conta"
+
+#: html/inc/user.inc:233 html/inc/user.inc:406
+msgid "User ID"
+msgstr "ID do utilizador"
+
+#: html/inc/user.inc:233
+msgid "Used in community functions"
+msgstr "Utilizado nas funções da comunidade"
+
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
+msgid "Account keys"
+msgstr "Chaves da conta"
+
+#: html/inc/user.inc:241
+msgid "Preferences"
+msgstr "Preferências"
+
+#: html/inc/user.inc:244
+msgid "When and how BOINC uses your computer"
+msgstr "Quando e como o BOINC utiliza o seu computador"
+
+#: html/inc/user.inc:245
+msgid "Computing preferences"
+msgstr "Preferências de computação"
+
+#: html/inc/user.inc:248
+msgid "Message boards and private messages"
+msgstr "Fóruns e mensagens privadas"
+
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
+msgid "Community preferences"
+msgstr "Preferências da comunidade"
+
+#: html/inc/user.inc:252
+msgid "Preferences for this project"
+msgstr "Preferências para este projeto"
+
+#: html/inc/user.inc:253 html/user/prefs.php:30
+msgid "%1 preferences"
+msgstr "%1 preferências"
+
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Ver o perfil de %1"
+
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Perfil"
+
+#: html/inc/user.inc:327
+msgid "Create"
+msgstr "Criar"
+
+#: html/inc/user.inc:334 html/inc/user.inc:473
+msgid "%1 posts"
+msgstr "%1 publicações"
+
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
+msgid "Notifications"
+msgstr "Notificações"
+
+#: html/inc/user.inc:358
+msgid "Quit team"
+msgstr "Sair da equipa"
+
+#: html/inc/user.inc:360 html/inc/user.inc:377
+msgid "Administer"
+msgstr "Administrar"
+
+#: html/inc/user.inc:366 html/inc/user.inc:379
+msgid "(foundership change request pending)"
+msgstr "(solicitação de mudança de liderança pendente)"
+
+#: html/inc/user.inc:368
+msgid "Member of team"
+msgstr "Membro da equipa"
+
+#: html/inc/user.inc:370
+msgid "find a team"
+msgstr "encontrar uma equipa"
+
+#: html/inc/user.inc:381
+msgid "Founder but not member of"
+msgstr "Fundador, mas não membro de"
+
+#: html/inc/user.inc:387
+msgid "Find friends"
+msgstr "Encontrar amigos"
+
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
+msgid "Friends"
+msgstr "Amigos"
+
+#: html/inc/user.inc:428 html/inc/user.inc:434
+msgid "Donor"
+msgstr "Doador"
+
+#: html/inc/user.inc:477
+msgid "Contact"
+msgstr "Contactar"
+
+#: html/inc/user.inc:480
+msgid "This person is a friend"
+msgstr "Esta pessoa é amiga"
+
+#: html/inc/user.inc:481 html/user/friend.php:240
+msgid "Cancel friendship"
+msgstr "Cancelar amizade"
+
+#: html/inc/user.inc:484 html/user/friend.php:39
+msgid "Request pending"
+msgstr "Pedido pendente"
+
+#: html/inc/user.inc:486
+msgid "Add as friend"
+msgstr "Adicionar como amigo"
+
+#: html/inc/user.inc:545
+msgid "user name cannot have leading or trailing white space"
+msgstr "o nome de utilizador não pode estar vazio ou conter espaços em branco"
+
+#: html/inc/user.inc:549
+msgid "user name must be nonempty"
+msgstr "o nome de utilizador tem de ser preenchido"
+
+#: html/inc/user.inc:553
+msgid "user name may not contain HTML tags"
+msgstr "o nome de utilizador não pode conter tags HTML"
+
+#: html/inc/util.inc:163
+msgid "log out"
+msgstr "sair"
+
+#: html/inc/util.inc:165
+msgid "log in"
+msgstr "entrar"
+
+#: html/inc/util.inc:269
+msgid "Create an account"
+msgstr "Criar uma conta"
+
+#: html/inc/util.inc:270
+msgid "Server status page"
+msgstr "Página de estado do servidor"
+
+#: html/inc/util.inc:313
+msgid ""
+"A database error occurred while handling your request; please try again "
+"later."
+msgstr "Ocorreu um erro na base de dados aquando do seu pedido; por favor tente mais tarde."
+
+#: html/inc/util.inc:322
+msgid "Unable to handle request"
+msgstr "Não foi possível lidar com o pedido"
+
+#: html/inc/util.inc:342
+msgid "hours"
+msgstr "horas"
+
+#: html/inc/util.inc:345
+msgid "min"
+msgstr "min"
+
+#: html/inc/util.inc:348
+msgid "sec"
+msgstr "seg"
+
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Expirou o tempo limite do link. Por favor, carregue em Voltar Atrás, faça atualizar a página e depois tente novamente."
+
+#: html/inc/util.inc:606
+msgid "Use BBCode tags to format your text"
+msgstr "Utilizar tags BBcode para formatar o texto"
+
+#: html/inc/util.inc:853
+msgid "Project down for maintenance"
+msgstr "Projeto em baixo para manutenção"
+
+#: html/inc/util.inc:856
+msgid "%1 is temporarily shut down for maintenance.  Please try again later."
+msgstr "%1 está temporariamente em baixo para manutenção. Por favor, tente mais tarde."
+
+#: html/inc/util.inc:874
+msgid "Unable to connect to database - please try again later"
+msgstr "Não foi possível ligar à base de dados - por favor, tente mais tarde"
+
+#: html/inc/util.inc:878
+msgid "Unable to select database - please try again later"
+msgstr "Não foi possível seleccionar a base de dados - por favor, tente mais tarde"
+
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "caracteres restantes"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
+msgid "Stay logged in on this computer"
+msgstr "Manter-se logado neste computador"
+
+#: html/user/account_finish_action.php:27
+msgid "You must supply a name for your account"
+msgstr "Tem que fornecer um nome para a sua conta"
+
+#: html/user/account_finish_action.php:30
+msgid "HTML tags not allowed in name"
+msgstr "Tags HTML não são permitidas no nome"
+
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Finalizar registo da conta"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Editar preferências %1"
+
+#: html/user/add_venue.php:82
+msgid "Add %1 preferences for %2"
+msgstr "Adicionar %1 preferências para %2"
+
+#: html/user/apps.php:33
+msgid ""
+"%1 currently has the following applications. When you participate in %1, "
+"tasks for one or more of these applications will be assigned to your "
+"computer. The current version of the application will be downloaded to your "
+"computer. This happens automatically; you don't have to do anything."
+msgstr "Atualmente, % 1 tem as seguintes aplicações. Quando participa em % 1, as tarefas para uma ou mais dessas aplicações serão atribuídas ao seu computador. A versão atual da aplicação será transferida para o seu computador. Esta ação é automática, não precisa fazer nada."
+
+#: html/user/apps.php:55
+msgid "Platform"
+msgstr "Plataforma"
+
+#: html/user/apps.php:56
+msgid "Version"
+msgstr "Versão"
+
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Computação média"
+
+#: html/user/bbcode.php:23
+msgid "BBCode tags"
+msgstr "Tags BBCode"
+
+#: html/user/bbcode.php:25
+msgid ""
+"BBCode tags let you format text in your profile and message-board postings.\n"
+"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
+"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
+"HTML)."
+msgstr "As tags BBCode permitem formatar o texto no seu perfil e nas publicações nos fóruns.\nÉ similar ao HTML, mas mais simples. As tags começam com um [ (onde usava\n%1 em HTML) e termina com ] (onde usava %2 em\nHTML)."
+
+#: html/user/bbcode.php:31
+msgid "Examples"
+msgstr "Exemplos"
+
+#: html/user/bbcode.php:32
+msgid "Bold"
+msgstr "Negrito"
+
+#: html/user/bbcode.php:33
+msgid "Italic"
+msgstr "Itálico"
+
+#: html/user/bbcode.php:34
+msgid "Underline"
+msgstr "Sublinhado"
+
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Rasurar"
+
+#: html/user/bbcode.php:36
+msgid "Superscript"
+msgstr "Superscript"
+
+#: html/user/bbcode.php:37
+msgid "Big text"
+msgstr "Texto grande"
+
+#: html/user/bbcode.php:38
+msgid "Red text"
+msgstr "Texto vermelho"
+
+#: html/user/bbcode.php:39
+msgid "link to website"
+msgstr "link para o website"
+
+#: html/user/bbcode.php:40
+msgid "Quoted text"
+msgstr "Texto citado"
+
+#: html/user/bbcode.php:40
+msgid "use for quoted blocks of text"
+msgstr "use para blocos de texto citados"
+
+#: html/user/bbcode.php:41
+msgid "use to display an image"
+msgstr "use para mostrar uma imagem"
+
+#: html/user/bbcode.php:42
+msgid "Code snippet here"
+msgstr "Pedaço de código aqui"
+
+#: html/user/bbcode.php:42
+msgid "use to display some code"
+msgstr "use para mostrar algum código"
+
+#: html/user/bbcode.php:43
+msgid "Pre-formatted text"
+msgstr "Texto pré-formatado"
+
+#: html/user/bbcode.php:43
+msgid "use to display pre-formatted (usually monospaced) text"
+msgstr "use para mostrar texto pré-formatado "
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 1"
+msgstr "Item 1"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item2"
+msgstr "Item2"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 2"
+msgstr "Item 2"
+
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "link para um problema no repositório do BOINC Github"
+
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "link para uma página Wiki no repositório do BOINC Github"
+
+#: html/user/bbcode.php:55
+msgid ""
+"If you don't close a tag or don't specify a parameter correctly,\n"
+"the raw tag itself will display instead of the formatted text."
+msgstr "Se não fechar uma tag ou não especificar um parâmetro corretamente,\na própria tag não formatada aparecerá em vez do texto formatado."
+
+#: html/user/create_account_action.php:26
+msgid "Can't create account"
+msgstr "Não é possível criar conta"
+
+#: html/user/create_account_action.php:29
+msgid "Click your browser's <b>Back</b> button to try again."
+msgstr "Carregue no botão <b>Voltar atrás</b> do seu navegador para tentar outra vez."
+
+#: html/user/create_account_action.php:44
+msgid "Your reCAPTCHA response was not correct. Please try again."
+msgstr "A resposta reCAPTCHA não está correcta. Por favor, tente novamente."
+
+#: html/user/create_account_action.php:67
+msgid "You must supply an invitation code to create an account."
+msgstr "Tem que fornecer um código de convite para criar uma conta."
+
+#: html/user/create_account_action.php:70
+msgid "The invitation code you gave is not valid."
+msgstr "O código de convite que inseriu não é válido."
+
+#: html/user/create_account_action.php:81
+msgid ""
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Endereço de e-mail inválido: tem de inserir um endereço válido no formato nome at dominio"
+
+#: html/user/create_account_action.php:85
+msgid "There's already an account with that email address."
+msgstr "Já existe uma conta com esse endereço de e-mail."
+
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
+msgid "New passwords are different"
+msgstr "Novas palavras-passe são diferentes"
+
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
+msgid "Passwords may only include ASCII characters."
+msgstr "Palavras-passe podem apenas incluir caracteres ASCII."
+
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
+msgid "New password is too short: minimum password length is %1 characters."
+msgstr "A nova palavra-passe é demasiado pequena: o comprimento mínimo da palavra passe é de %1 caracteres. "
+
+#: html/user/create_account_action.php:124
+msgid "Couldn't create account"
+msgstr "Não foi possível criar conta"
+
+#: html/user/create_account_form.php:46
+msgid ""
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "NOTA: para executar %1 no seu computador, %2vá aqui%3 em vez de utilizar este formulário."
+
+#: html/user/create_account_form.php:63
+msgid ""
+"This account will belong to the team %1 and will have the project "
+"preferences of its founder."
+msgstr "Esta conta irá pertencer à equipa %1 e terá as preferências do projeto do seu fundador."
+
+#: html/user/create_profile.php:53
+msgid "Picture"
+msgstr "Imagem"
+
+#: html/user/create_profile.php:67
+msgid "%1 Your profile picture is shown to the left."
+msgstr "%1 A imagem do seu perfil é mostrada à esquerda."
+
+#: html/user/create_profile.php:69
+msgid ""
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Para a substituir, carregue no botão \"Procurar em\" e seleccione um ficheiro JPEG ou PNG (%1 ou menos)."
+
+#: html/user/create_profile.php:72
+msgid "To remove it from your profile, check this box:"
+msgstr "Para a remover do perfil, seleccione esta caixa:"
+
+#: html/user/create_profile.php:80
+msgid ""
+"If you would like include a picture with your profile, click the \"Browse\" "
+"button and select a JPEG or PNG file. Please select images of %1 or less."
+msgstr "Se gostava de incluir uma imagem com o seu perfil, carregue no botão \"Procurar em\" e seleccione um ficheiro JPEG ou PNG. Por favor, seleccione imagens de%1 ou menos."
+
+#: html/user/create_profile.php:92
+msgid "Language"
+msgstr "Linguagem"
+
+#: html/user/create_profile.php:95
+msgid "Select the language in which your profile is written:"
+msgstr "Seleccione a linguagem na qual o seu perfil está escrito:"
+
+#: html/user/create_profile.php:107
+msgid "Submit profile"
+msgstr "Submeter perfil"
+
+#: html/user/create_profile.php:113
+msgid "Create/edit profile"
+msgstr "Criar/editar perfil"
+
+#: html/user/create_profile.php:135
+msgid "The format of your uploaded image is not supported."
+msgstr "O formato da imagem que fez upload não é suportado."
+
+#: html/user/create_profile.php:164
+msgid ""
+"Your %1profile%2 lets you share your opinions and background with the %3 "
+"community."
+msgstr "O seu %1perfil%2 permite-lhe partilhar as suas opiniões e os fundos de trabalho com a %3 comunidade."
+
+#: html/user/create_profile.php:208
+msgid "Your ReCaptcha response was not correct.  Please try again."
+msgstr "A sua resposta ReCaptcha não está correcta. Por favor, tente novamente."
+
+#: html/user/create_profile.php:217
+msgid ""
+"Your first response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "A sua primeira resposta foi indicada como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
+
+#: html/user/create_profile.php:225
+msgid ""
+"Your second response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "A sua segunda resposta foi indicada como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
+
+#: html/user/create_profile.php:241
+msgid "Your profile submission was empty."
+msgstr "A sua submissão do perfil estava vazia."
+
+#: html/user/create_profile.php:282
+msgid "Could not update the profile: database error"
+msgstr "Não foi possível atualizar o perfil: erro da base de dados"
+
+#: html/user/create_profile.php:298
+msgid "Could not create the profile: database error"
+msgstr "Não foi possível criar o perfil: erro da base de dados"
+
+#: html/user/create_profile.php:303
+msgid "Profile saved"
+msgstr "Perfil guardado"
+
+#: html/user/create_profile.php:305
+msgid ""
+"Congratulations! Your profile was successfully entered into our database."
+msgstr "Parabéns! O seu perfil foi inserido com sucesso na nossa base de dados."
+
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Ver o seu perfil"
+
+#: html/user/create_profile.php:318
+msgid "Create a profile"
+msgstr "Criar um perfil"
+
+#: html/user/create_profile.php:346
+msgid ""
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Para prevenir spam, uma média de créditos de %1 ou superior é necessário para criar ou editar um perfil. Pedimos desculpa pela incoveniência."
+
+#: html/user/delete_account.php:57
+msgid "Couldn't delete account"
+msgstr "Não foi possível apagar a conta"
+
+#: html/user/delete_account.php:59
+msgid "Account deleted"
+msgstr "Conta apagada"
+
+#: html/user/delete_account.php:60
+msgid "Your account has been deleted."
+msgstr "A sua conta foi apagada."
+
+#: html/user/delete_account.php:64
+msgid "Confirm delete account"
+msgstr "Confirmar eliminação da conta"
+
+#: html/user/delete_account.php:67
+msgid ""
+"Deleting your account will remove all of your\n"
+"personal information from our servers,\n"
+"including your profile and message-board posts.\n"
+"No jobs will be issued to any computers attached\n"
+"to this account."
+msgstr "Eliminar a sua conta irá remover toda a sua\ninformação pessoal dos nossos servidores,\nincluindo o seu perfil e publicações nos fóruns.\nNenhum trabalho será emitido para qualquer computador ligado\na esta conta."
+
+#: html/user/delete_account.php:73
+msgid ""
+"This cannot be undone.\n"
+"Once your account has been deleted, you cannot get it back."
+msgstr "Esta acção não é reversível.\nAssim que a sua conta seja eliminada, não pode recuperá-la."
+
+#: html/user/delete_account.php:76
+msgid "Are you sure you want to delete your account?"
+msgstr "Tem a certeza que quer apagar a sua conta?"
+
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
+msgid "Yes"
+msgstr "Sim"
+
+#: html/user/delete_account.php:79
+msgid "Delete this account"
+msgstr "Apagar esta conta"
+
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
+msgid "No"
+msgstr "Não"
+
+#: html/user/delete_account.php:80
+msgid "Do not delete this account"
+msgstr "Não apagar esta conta"
+
+#: html/user/delete_profile.php:32
+msgid "couldn't delete profile - please try again later"
+msgstr "não foi possível apagar o perfil - por favor, tente mais tarde"
+
+#: html/user/delete_profile.php:35
+msgid "Delete Confirmation"
+msgstr "Confirmar eliminação"
+
+#: html/user/delete_profile.php:37
+msgid "Your profile has been deleted."
+msgstr "O seu perfil foi apagado."
+
+#: html/user/delete_profile.php:42
+msgid "Profile delete confirmation"
+msgstr "Confirmar eliminação do perfil"
+
+#: html/user/delete_profile.php:45
+msgid "Are you sure?"
+msgstr "Tem a certeza?"
+
+#: html/user/delete_profile.php:46
+msgid ""
+"Deleted profiles are gone forever and cannot be recovered --\n"
+"you will have to start from scratch\n"
+"if you want another profile in the future."
+msgstr "Os perfis são eliminados para sempre e não podem ser recuperados --\nterá que começar do início\nse quiser outro perfil no futuro."
+
+#: html/user/delete_profile.php:50
+msgid ""
+"If you're sure, click 'Yes'\n"
+"to remove your profile from our database."
+msgstr "Se tem a certeza, carregue em 'Sim'\npara remover o seu perfil da nossa base de dados."
+
+#: html/user/delete_profile.php:54
+msgid "Delete my profile"
+msgstr "Apagar o meu perfil"
+
+#: html/user/delete_profile.php:55
+msgid "Do not delete my profile"
+msgstr "Não apagar o meu perfil"
+
+#: html/user/donated.php:25
+msgid "PayPal - Transaction Completed"
+msgstr "Paypal - Transacção Completa"
+
+#: html/user/donated.php:28
+msgid "Thank you for donating!"
+msgstr "Obrigado pelo seu donativo!"
+
+#: html/user/donated.php:29
+msgid "Your donation for has been completed."
+msgstr "O seu donativo foi bem sucedido."
+
+#: html/user/donated.php:30
+msgid ""
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "O seu donativo será adicionado à barra de progresso depois da confirmação pelo Paypal."
+
+#: html/user/donated.php:32
+msgid "You have canceled your donation."
+msgstr "Cancelou o seu donativo."
+
+#: html/user/donations.php:24
+msgid "This project is not accepting donations."
+msgstr "Este projeto não está a aceitar donativos."
+
+#: html/user/donations.php:34
+msgid "%1 donations"
+msgstr "%1 donativos"
+
+#: html/user/donations.php:39
+msgid ""
+"This project is accepting donations via\n"
+"%1."
+msgstr "Este projeto está a aceitar donativo através de\n%1"
+
+#: html/user/donations.php:41
+msgid ""
+"To donate, fill in the amount you want to donate using the field below.\n"
+"        PayPal is accepting multiple currencies\n"
+"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
+"         Yen, Australian Dollars, New Zealand Dollars,\n"
+"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
+"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
+"        Hungarian Forint, Czech Koruna).\n"
+"        You can use included currency converter\n"
+"        to see the donation amount equivalent in different currencies\n"
+"        (please note that the rates are only estimates\n"
+"         and the actual amount may differ)."
+msgstr "Para fazer um donativo, insira o montante que quer doar utilizando os campos abaixo.\n        O PayPal aceita vários tipos de moeda\n        (Dólares Canadianos, Euros, Libras, Dólares Americanos,\n         Yen, Dólares Australianos, Dólares da Nova Zelândia,\n         Francos Suiços. Dólares de Hong Kong, Dólares de Singapura, Coroa Sueca,\n         Coroa Dinamarquesa, Zlótis Polacos, Coroa Norueguesa,\n         Florins Húngaros, Coroa Checa).\n         Pode usar o conversor de  [...]
+
+#: html/user/donations.php:315
+msgid "Amount you would like to donate"
+msgstr "Quantia que deseja doar"
+
+#: html/user/donations.php:316
+msgid "Estimated value in"
+msgstr "Valor estimado em"
+
+#: html/user/donations.php:319 html/user/donations.php:323
+msgid "Anonymous donation"
+msgstr "Donativo anónimo"
+
+#: html/user/donations.php:319
+msgid ""
+"Select this if you dont want your name and account number displayed in\n"
+"donator lists.<br>If not checked, you will be recorded as user ID %1"
+msgstr "Seleccione aqui se não quiser o seu nome e número de conta mostrado na\nlista de doadores.<br>Se não seleccionado, será gravado como ID de utilizador %1"
+
+#: html/user/donations.php:323
+msgid "To assign the donation with your user ID, please log in."
+msgstr "Para atribuir o donativo ao seu ID de utilizador, por favor faça login."
+
+#: html/user/donations.php:327
+msgid "Proceed"
+msgstr "Continuar"
+
+#: html/user/donations.php:328
+msgid "Donations are accepted through"
+msgstr "Donativos são aceites através de"
+
+#: html/user/download_network.php:25
+msgid "Download BOINC add-on software"
+msgstr "Transferir software add-on para o BOINC"
+
+#: html/user/download_network.php:28
+msgid "You can download applications in several categories."
+msgstr "Pode transferir aplicações em várias categorias."
+
+#: html/user/download_network.php:31
+msgid ""
+"These applications are not endorsed by %1 and you use them at your own risk."
+msgstr "Estas aplicações não estão aprovadas pelo %1 e está a usá-las por sua conta e risco."
+
+#: html/user/download_network.php:33
+msgid ""
+"We do not provide instructions for installing these applications.\n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
+"If this is not enough you should contact the author."
+msgstr "Não fornecemos instruções para instalar estas aplicações.\nNo entanto, o autor pode lhe fornecer ajuda a instalar ou desinstalar a aplicação.\nSe não for suficiente, deve contactar o autor."
+
+#: html/user/download_network.php:36
+msgid "Instructions for installing and running BOINC are %1here%2."
+msgstr "Instruções para instalar e executar o BOINC estão %1aqui%2."
+
+#: html/user/download_network.php:38
+msgid "This list is managed centrally at %1the BOINC website%2."
+msgstr "Esta lista é gerida centralmente no %1website do BOINC%2."
+
+#: html/user/edit_email_action.php:31
+msgid "Change email address of account"
+msgstr "Mudar o endereço de e-mail da conta"
+
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
+msgid "New email address '%1' is invalid."
+msgstr "Novo endereço de e-mail '%1 é inválido."
+
+#: html/user/edit_email_action.php:38
+msgid "New email address is same as existing address. Nothing is changed."
+msgstr "O novo e-mail é o mesmo que o já existente. Nada foi alterado."
+
+#: html/user/edit_email_action.php:42
+msgid "There's already an account with that email address"
+msgstr "Já existe uma conta com esse endereço de e-mail"
+
+#: html/user/edit_email_action.php:54
+msgid "Invalid password."
+msgstr "Palavra-passe inválida"
+
+#: html/user/edit_email_action.php:62
+msgid "The email address of your account is now %1."
+msgstr "O endereço de e-mail da sua conta está agora %1."
+
+#: html/user/edit_email_action.php:64
+msgid "Please %1validate this email address%2."
+msgstr "Por favor. %1valide este endereço de e-mail%2."
+
+#: html/user/edit_email_action.php:67
+msgid ""
+"We can't update your email address due to a database problem.  Please try "
+"again later."
+msgstr "Não foi possível atualizar o seu endereço de e-mail devido a um problema na  base de dados. Por favor, tente mais tarde."
+
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
+msgid "Change email address"
+msgstr "Alterar o endereço de e-mail"
+
+#: html/user/edit_email_form.php:36
+msgid "Change the email address of your account"
+msgstr "Alterar o endereço de e-mail da sua conta"
+
+#: html/user/edit_email_form.php:37
+msgid "New email address"
+msgstr "Novo endereço de e-mail"
+
+#: html/user/edit_email_form.php:38
+msgid "Must be a valid address of the form 'name at domain'"
+msgstr "Tem que ser um endereço válido do form 'name at domain'"
+
+#: html/user/edit_email_form.php:48
+msgid "No password?"
+msgstr "Sem palavra-passe?"
+
+#: html/user/edit_forum_preferences_action.php:33
+msgid "Confirm reset"
+msgstr "Confirmar o reset"
+
+#: html/user/edit_forum_preferences_action.php:34
+msgid ""
+"This action will erase any changes you have made in your community "
+"preferences. To cancel, click your browser's Back button."
+msgstr "Esta ação apagará quaisquer mudanças que tenha feito nas preferências da comunidade. Para cancelar, carregue no botão voltar atrás do seu navegador."
+
+#: html/user/edit_forum_preferences_action.php:38
+msgid "Reset preferences"
+msgstr "Preferências de origem"
+
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
+msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
+msgstr "Erro: Tipo de ficheiro incorreto, apenas PNG e JPEG são suportados."
+
+#: html/user/edit_forum_preferences_action.php:120
+msgid "Your signature was too long, please keep it less than 250 characters."
+msgstr "A sua assinatura é demasiado longa, por favor mantenha-a com menos de 250 caracteres"
+
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Não existe esse utilizador:"
+
+#: html/user/edit_forum_preferences_form.php:45
+msgid ""
+"How should we notify you of new private messages, friend requests, posts in "
+"subscribed threads, and other events?"
+msgstr "Como devemos notificá-lo de novas mensagens privadas, solicitações de amizade, publicações em tópicos subscritos e outros eventos?"
+
+#: html/user/edit_forum_preferences_form.php:46
+msgid "On my Account page (no email)"
+msgstr "Página da minha Conta (sem e-mail)"
+
+#: html/user/edit_forum_preferences_form.php:47
+msgid "Immediately, by email"
+msgstr "Imediatamente, por e-mail"
+
+#: html/user/edit_forum_preferences_form.php:48
+msgid "In a single daily email"
+msgstr "Num simples e-mail diário"
+
+#: html/user/edit_forum_preferences_form.php:65
+msgid "Message-board identity"
+msgstr "Identidade no fórum"
+
+#: html/user/edit_forum_preferences_form.php:66
+msgid "Avatar"
+msgstr "Avatar"
+
+#: html/user/edit_forum_preferences_form.php:67
+msgid "An image representing you on the message boards."
+msgstr "Uma imagem que o represente nos fóruns."
+
+#: html/user/edit_forum_preferences_form.php:68
+msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
+msgstr "Formato: JPG ou PNG. Tamanho: no máximo 4kb, 100x100 pixeis "
+
+#: html/user/edit_forum_preferences_form.php:70
+msgid "Don't use an avatar"
+msgstr "Não utilize avatar"
+
+#: html/user/edit_forum_preferences_form.php:72
+msgid "Use a Globally Recognized Avatar provided by %1"
+msgstr "Utilizar um avatar Reconhecido Globalmente fornecido por %1"
+
+#: html/user/edit_forum_preferences_form.php:74
+msgid "Use this uploaded avatar:"
+msgstr "Utilizar este avatar que foi feito o upload:"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "Avatar preview"
+msgstr "Pré-visualização do avatar"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "This is how your avatar will look"
+msgstr "O seu avatar aparecerá assim"
+
+#: html/user/edit_forum_preferences_form.php:86
+msgid "Signature for message board posts"
+msgstr "Assinatura para publicações no fórum"
+
+#: html/user/edit_forum_preferences_form.php:89
+msgid ""
+"Check out %1various free services%2\n"
+"<br> providing dynamic 'signature images'\n"
+"<br> showing your latest credit info, project news, etc."
+msgstr "Verifique %1vários serviços grátis%2\n<br> fornecendo 'imagens de assinatura' dinâmicas'\n<br> mostrando informação sobre os seus últimos créditos, novidades do projeto, etc."
+
+#: html/user/edit_forum_preferences_form.php:93
+msgid "Attach signature by default"
+msgstr "Juntar assinatura por predefinição "
+
+#: html/user/edit_forum_preferences_form.php:96
+msgid "Signature preview"
+msgstr "Pré-visualização da assinatura"
+
+#: html/user/edit_forum_preferences_form.php:97
+msgid "This is how your signature will look in the forums"
+msgstr "A sua assinatura aparecerá assim nos fóruns"
+
+#: html/user/edit_forum_preferences_form.php:115
+msgid "Message display"
+msgstr "Visualização de mensagens"
+
+#: html/user/edit_forum_preferences_form.php:117
+msgid "What to display"
+msgstr "O que mostrar"
+
+#: html/user/edit_forum_preferences_form.php:118
+msgid "Hide avatar images"
+msgstr "Ocultar imagens avatar"
+
+#: html/user/edit_forum_preferences_form.php:119
+msgid "Hide signatures"
+msgstr "Ocultar assinaturas"
+
+#: html/user/edit_forum_preferences_form.php:120
+msgid "Show images as links"
+msgstr "Mostrar imagens como links"
+
+#: html/user/edit_forum_preferences_form.php:121
+msgid "Open links in new window/tab"
+msgstr "Abrir links numa nova janela/separador"
+
+#: html/user/edit_forum_preferences_form.php:122
+msgid "Highlight special users"
+msgstr "Sublinhar utilizadores especiais"
+
+#: html/user/edit_forum_preferences_form.php:123
+msgid "Display this many messages per page"
+msgstr "Mostrar este número de mensagens por página"
+
+#: html/user/edit_forum_preferences_form.php:127
+msgid "How to sort"
+msgstr "Como ordenar"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Threads:"
+msgstr "Tópicos:"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Posts:"
+msgstr "Publicações:"
+
+#: html/user/edit_forum_preferences_form.php:129
+msgid "Jump to first new post in thread automatically"
+msgstr "Saltar para as primeiras publicações no tópico automaticamente"
+
+#: html/user/edit_forum_preferences_form.php:130
+msgid "Don't move sticky posts to top"
+msgstr "Não mover publicações sticky para o topo"
+
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
+msgid "Message filtering"
+msgstr "Filtragem de mensagens"
+
+#: html/user/edit_forum_preferences_form.php:153
+msgid "Filtered users"
+msgstr "Filtragem de utilizadores"
+
+#: html/user/edit_forum_preferences_form.php:154
+msgid "Ignore message board posts and private messages from these users."
+msgstr "Ignorar publicações no fórum e mensagens privadas destes utilizadores"
+
+#: html/user/edit_forum_preferences_form.php:156
+msgid "User ID (For instance: 123456789)"
+msgstr "ID do utilizador (Por exemplo: 123456789)"
+
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
+msgid "Add user to filter"
+msgstr "Adicionar utilizador ao filtro"
+
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Click here to update preferences"
+msgstr "Carregue aqui para atualizar preferências"
+
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
+msgid "Reset"
+msgstr "Reset"
+
+#: html/user/edit_forum_preferences_form.php:165
+msgid "Or click here to reset preferences to the defaults"
+msgstr "Ou carregue aqui para redefinir as preferências para a predefinição"
+
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Não foi possível atualizar a sua palavra-passe devido a problemas na base de dados. Por favor, tente mais tarde."
+
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "Alterar palavra-passe"
+
+#: html/user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "A sua palavra-passe foi alterada."
+
+#: html/user/edit_passwd_form.php:32
+msgid "New password"
+msgstr "Nova palavra-passe"
+
+#: html/user/edit_passwd_form.php:33
+msgid "New password, again"
+msgstr "nova palavra-passe novamente"
+
+#: html/user/edit_user_info_action.php:31
+msgid "HTML tags are not allowed in your name."
+msgstr "Tags HTML não são permitidas no seu nome."
+
+#: html/user/edit_user_info_action.php:34
+msgid "You must supply a name for your account."
+msgstr "Tem que fornecer um nome para a sua conta."
+
+#: html/user/edit_user_info_action.php:58
+msgid "Couldn't update user info."
+msgstr "Não foi possível atualizar a informação do utilizador."
+
+#: html/user/edit_user_info_form.php:27
+msgid "Edit account information"
+msgstr "Editar informações da conta"
+
+#: html/user/edit_user_info_form.php:32
+msgid "Name %1 real name or nickname%2"
+msgstr "Nome %1 nome real ou nome de utilizador%2"
+
+#: html/user/edit_user_info_form.php:35
+msgid "URL %1 of your web page; optional%2"
+msgstr "URL %1 da sua página web; opcional%2"
+
+#: html/user/edit_user_info_form.php:44
+msgid "Postal (ZIP) code %1 Optional%2"
+msgstr "Código Postal %1 Opcional%2"
+
+#: html/user/edit_user_info_form.php:48
+msgid "Update info"
+msgstr "Atualizar informações"
+
+#: html/user/explain_state.php:27
+msgid "Server states"
+msgstr "Estado dos servidores"
+
+#: html/user/explain_state.php:30
+msgid ""
+"A tasks's <b>server state</b> indicates whether the task has been sent to a "
+"computer, and if so whether the computer has finished it. Possible values "
+"are:"
+msgstr "As tarefas do <b> estado do servidor (Server State) </ b> indica se a tarefa tiver sido enviada para um computador, e caso afirmativo, se o computador tiver terminado. Os valores possíveis são:"
+
+#: html/user/explain_state.php:35
+msgid ""
+"The task is not ready to send (for example, because its input files are "
+"unavailable)"
+msgstr "A tarefa não está pronta para ser enviada (por exemplo, porque os ficheiros de entrada estão indisponíveis)"
+
+#: html/user/explain_state.php:38
+msgid "The task is ready to send, but hasn't been sent yet."
+msgstr "A tarefa está pronta para ser enviada, mas ainda não o foi."
+
+#: html/user/explain_state.php:40
+msgid "In Progress"
+msgstr "Em Progresso"
+
+#: html/user/explain_state.php:41
+msgid "The task has been sent; waiting for completion."
+msgstr "A tarefa foi enviada; à espera de serem terminadas."
+
+#: html/user/explain_state.php:44
+msgid ""
+"The task has been sent to a computer and either it has timed out or the "
+"computer has reported its completion."
+msgstr "A tarefa foi enviada para o computador e/ou expirou, ou o computador reportou a tarefa como finalizada."
+
+#: html/user/explain_state.php:49
+msgid "Outcomes"
+msgstr "Resultados"
+
+#: html/user/explain_state.php:52
+msgid ""
+"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
+"Possible values are:"
+msgstr "O <b>resultado</b> da/s tarefa/s é definido se estado do seu servidor é <b>finalizado</b>. Possíveis valores são:"
+
+#: html/user/explain_state.php:57
+msgid ""
+"The task was sent to a computer, but the computer has not yet completed the "
+"work and reported the outcome."
+msgstr "A tarefa foi enviada para o computador, mas o computador ainda não completou o trabalho e reportou o resultado."
+
+#: html/user/explain_state.php:60
+msgid "A computer completed and reported the task successfully."
+msgstr "O computador completou e reportou a tarefa com sucesso."
+
+#: html/user/explain_state.php:63
+msgid ""
+"The server wasn't able to send the task to a computer (perhaps because its "
+"resource requirements were too large)"
+msgstr "O servidor não conseguiu enviar a tarefa para o computador (talvez porque os recursos exigidos sejam demasiado grandes)"
+
+#: html/user/explain_state.php:65
+msgid "Client error"
+msgstr "Erro do cliente"
+
+#: html/user/explain_state.php:66
+msgid "The task was sent to a computer and an error occurred."
+msgstr "A tarefa foi enviada para o computador e ocorreu um erro."
+
+#: html/user/explain_state.php:69
+msgid ""
+"The task was sent to a computer and no reply was received within the time "
+"limit."
+msgstr "A tarefa foi enviada para o computador e não foi recebida reposta dentro do tempo limite."
+
+#: html/user/explain_state.php:72
+msgid ""
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "A tarefa não foi enviada para o computador porque já foram terminadas tarefas suficientes para esta unidade de trabalho."
+
+#: html/user/explain_state.php:75
+msgid ""
+"The task was reported but could not be validated, typically because the "
+"output files were lost on the server."
+msgstr "A tarefa foi reportada mas não pode ser validada, provavelmente porque os ficheiros de saída foram perdidos no servidor. "
+
+#: html/user/explain_state.php:80
+msgid "Client states"
+msgstr "Estado dos clientes"
+
+#: html/user/explain_state.php:81
+msgid ""
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Um resultado <b>estado do cliente</b> indica o estado do processamento quando ocorreu um erro."
+
+#: html/user/explain_state.php:86
+msgid "The computer has not yet completed the task."
+msgstr "O computador ainda não terminou a tarefa."
+
+#: html/user/explain_state.php:89
+msgid "The computer completed the task successfully."
+msgstr "O computador terminour a tarefa com sucesso."
+
+#: html/user/explain_state.php:92
+msgid "The computer couldn't download the application or input files."
+msgstr "O computador não conseguiu transferir a aplicação ou os ficheiros de entrada."
+
+#: html/user/explain_state.php:95
+msgid "An error occurred during computation."
+msgstr "Ocorreu um erro durante a computação."
+
+#: html/user/explain_state.php:98
+msgid "The computer couldn't upload the output files."
+msgstr "O computador não conseguiu fazer o upload dos ficheiros de saída."
+
+#: html/user/explain_state.php:103
+msgid "Time reported and deadline"
+msgstr "Tempo reportado e tempo limite "
+
+#: html/user/explain_state.php:106
+msgid ""
+"A task's <b>Time reported or deadline</b> field depends on whether the task "
+"has been reported yet:"
+msgstr "O campo <b>Tempo reportado ou tempo limite<b>da/s tarefa/s  depende se a tarefa já foi reportada:"
+
+#: html/user/explain_state.php:110
+msgid "Already reported"
+msgstr "Já reportado"
+
+#: html/user/explain_state.php:110
+msgid "The date/time it was reported"
+msgstr "A data/tempo foi reportada/o"
+
+#: html/user/explain_state.php:111
+msgid "Not reported yet, deadline in the future"
+msgstr "Não reportado ainda, prazo limite no futuro"
+
+#: html/user/explain_state.php:112
+msgid "Deadline, shown in green."
+msgstr "Prazo limite, mostrado a verde."
+
+#: html/user/explain_state.php:114
+msgid "Not reported yet, deadline in the past"
+msgstr "Não reportado ainda, prazo limite no passado"
+
+#: html/user/explain_state.php:115
+msgid "Deadline, shown in red."
+msgstr "Prazo limite, mostrado a vermelho."
+
+#: html/user/explain_state.php:120
+msgid "Unknown field"
+msgstr "Campo desconhecido"
+
+#: html/user/ffmail_action.php:28
+msgid "Sending emails"
+msgstr "Enviando e-mails"
+
+#: html/user/ffmail_action.php:43
+msgid "failed to send email to %1: %2"
+msgstr "falhou o envio do email a %1: %2"
+
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "o envio do e-mail a %1 falhou"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "email enviado com sucesso a %1"
+
+#: html/user/ffmail_action.php:55
+msgid "Thanks for telling your friends about %1"
+msgstr "Obrigado por dizer aos seus amigos sobre o %1"
+
+#: html/user/ffmail_action.php:57
+msgid ""
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Esqueceu-se de inserir o endereço de e-mail; Por favor, %1regresse ao formulário%2 e insira-o."
+
+#: html/user/ffmail_form.php:33
+msgid "Tell your friends about %1"
+msgstr "Diga aos seus amigos sobre o %1"
+
+#: html/user/ffmail_form.php:49
+msgid ""
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Utilize este formulário para enviar mensagens às pessoas que pense que poderão estar interessadas em %1."
+
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "Para:"
+
+#: html/user/ffmail_form.php:59
+msgid "Send"
+msgstr "Enviar"
+
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
+msgid "You are not authorized to banish users."
+msgstr "Não está autorizado a banir utilizadores."
+
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Tem que especificar uma ação..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Obsceno"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Incendiário/e-mail de ódio"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Solicitação de utilizador"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
+msgid "Banishment Vote"
+msgstr "Voto para banir"
+
+#: html/user/forum_banishment_vote.php:52
+msgid "No user with this ID found."
+msgstr "Não foi encontrado o utilizador com esse ID."
+
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
+msgid "User is already banished"
+msgstr "O utilizador já está banido"
+
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
+msgid ""
+"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
+"for chosen time period.<br/>It should be done only if %1 has consistently "
+"exhibited trollish behavior."
+msgstr "Tem a certeza que quer banir %1?<br>/>Isto vai evitar que %1 coloque publicações por um determinado período de tempo.<br>Isto só deve ser feito se %1 tiver constantemente exibido um comportamento inadequado. "
+
+#: html/user/forum_banishment_vote.php:64
+msgid ""
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Seleccione a categoria da razão e opcionalmente escreva uma descrição mais detalhada da razão porque o utilizador deve ser banido."
+
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
+msgid "Category"
+msgstr "Categoria"
+
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
+msgid "Reason"
+msgstr "Razão"
+
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
+msgid "Mailed if nonempty"
+msgstr "Enviado por correio, se não vazio"
+
+#: html/user/forum_banishment_vote.php:78
+msgid "Proceed with vote"
+msgstr "Proceder com a votação"
+
+#: html/user/forum_edit.php:41
+msgid ""
+"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
+"minutes after they have been created."
+msgstr "Não pode editar mais esta publicação.<br>/As publicações podem ser ser editadas apenas até no máximo %1 minutos após serem criados."
+
+#: html/user/forum_edit.php:47
+msgid "You are not authorized to edit this post."
+msgstr "Não está autorizado a editar esta publicação."
+
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Editar tópico"
+
+#: html/user/forum_edit.php:112
+msgid "Edit your message"
+msgstr "Editar a sua mensagem"
+
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
+msgid "Title"
+msgstr "Título"
+
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
+msgid "Add my signature to this post"
+msgstr "Adicionar a minha assinatura a esta publicação"
+
+#: html/user/forum_forum.php:46
+msgid "Not visible to you"
+msgstr "Não visível a si"
+
+#: html/user/forum_forum.php:83
+msgid "Team message board for %1"
+msgstr "Mensagem da equipa do fórum para %1"
+
+#: html/user/forum_forum.php:100
+msgid "New thread"
+msgstr "Novo tópico"
+
+#: html/user/forum_forum.php:100
+msgid "Add a new thread to this forum"
+msgstr "Adicionar um novo tópico neste fórum"
+
+#: html/user/forum_forum.php:122
+msgid "This message board is available as an %1RSS feed%2"
+msgstr "Este fórum está disponível como %1RSS feed%2"
+
+#: html/user/forum_forum.php:181
+msgid "This thread is hidden"
+msgstr "Este tópico está oculto"
+
+#: html/user/forum_forum.php:185
+msgid "This thread is sticky and locked, and you haven't read it yet"
+msgstr "Este tópico é sticky e está trancado e ainda não o leu"
+
+#: html/user/forum_forum.php:185
+msgid "sticky/locked/unread"
+msgstr "sticky/trancado/não lido"
+
+#: html/user/forum_forum.php:187
+msgid "This thread is sticky and you haven't read it yet"
+msgstr "Este tópico é sticky e ainda não o leu"
+
+#: html/user/forum_forum.php:187
+msgid "sticky/unread"
+msgstr "sticky/não lidas"
+
+#: html/user/forum_forum.php:191
+msgid "You haven't read this thread yet, and it's locked"
+msgstr "Ainda não leu este tópico e está trancado"
+
+#: html/user/forum_forum.php:191
+msgid "unread/locked"
+msgstr "não lida/bloqueada"
+
+#: html/user/forum_forum.php:193
+msgid "You haven't read this thread yet"
+msgstr "Ainda não leu este tópico"
+
+#: html/user/forum_forum.php:199
+msgid "This thread is sticky and locked"
+msgstr "Este tópico é sticky e está bloqueado"
+
+#: html/user/forum_forum.php:199
+msgid "sticky/locked"
+msgstr "sticky/bloqueado"
+
+#: html/user/forum_forum.php:201
+msgid "This thread is sticky"
+msgstr "Este tópico é sticky"
+
+#: html/user/forum_forum.php:201
+msgid "sticky"
+msgstr "sticky"
+
+#: html/user/forum_forum.php:205
+msgid "This thread is locked"
+msgstr "Este tópico está bloqueado"
+
+#: html/user/forum_forum.php:205
+msgid "locked"
+msgstr "bloqueado"
+
+#: html/user/forum_forum.php:207
+msgid "You read this thread"
+msgstr "Já leu este tópico"
+
+#: html/user/forum_forum.php:207
+msgid "read"
+msgstr "lido"
+
+#: html/user/forum_help_desk.php:29
+msgid "Questions and answers"
+msgstr "Perguntas e respostas"
+
+#: html/user/forum_help_desk.php:32
+msgid ""
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Fale ao vivo através do Skype com um voluntário, em alguma dos vários idiomas. Vá a %1Página de Ajuda do BOINC%2."
+
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
+msgid "Topic"
+msgstr "Tópico"
+
+#: html/user/forum_help_desk.php:48
+msgid "Questions"
+msgstr "Perguntas"
+
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
+msgid "Discussion among members of %1"
+msgstr "Discussão entre membros de %1"
+
+#: html/user/forum_index.php:80
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "Se tiver uma questão ou um problema, por favor use a secção %1Questões & Respostas%2 do fórum."
+
+#: html/user/forum_index.php:125
+msgid "Subscribed threads"
+msgstr "Tópicos subscritos"
+
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Não está autorizado a moderar esta publicação."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Não é possível mover para um diferente tipo de categoria"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Não é possível mover para uma categoria diferente"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Não autorizado a utilizadores banidos"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Banidos"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "O utilizador %1 foi banido."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Ação falhada: possível problema na base de dados"
+
+#: html/user/forum_moderate_post.php:45
+msgid "Moderate post"
+msgstr "Moderar publicação"
+
+#: html/user/forum_moderate_post.php:55
+msgid "Hide post"
+msgstr "Ocultar publicação"
+
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
+msgid "Commercial spam"
+msgstr "Spam comercial"
+
+#: html/user/forum_moderate_post.php:63
+msgid "Doublepost"
+msgstr "Dupla publicação"
+
+#: html/user/forum_moderate_post.php:70
+msgid "Move post"
+msgstr "Mover publicação"
+
+#: html/user/forum_moderate_post.php:72
+msgid "Destination thread ID:"
+msgstr "ID de destino do tópico:"
+
+#: html/user/forum_moderate_post.php:85
+msgid "Banish user"
+msgstr "Banir utilizador"
+
+#: html/user/forum_moderate_post.php:87
+msgid "Ban duration"
+msgstr "Duração do ban"
+
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 horas"
+
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 horas"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
+msgid "1 day"
+msgstr "1 dia"
+
+#: html/user/forum_moderate_post.php:91
+msgid "1 week"
+msgstr "1 semana"
+
+#: html/user/forum_moderate_post.php:92
+msgid "2 weeks"
+msgstr "2 semanas"
+
+#: html/user/forum_moderate_post.php:93
+msgid "1 month"
+msgstr "1 mês"
+
+#: html/user/forum_moderate_post.php:94
+msgid "Forever"
+msgstr "Para sempre"
+
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
+msgid "OK"
+msgstr "OK"
+
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Explicação opcional %1 Incluído no e-mail para o utilizador.%2"
+
+#: html/user/forum_moderate_thread.php:38
+msgid "not authorized"
+msgstr "não autorizado"
+
+#: html/user/forum_moderate_thread.php:41
+msgid "Moderate thread '%1'"
+msgstr "Moderar tópico '%1'"
+
+#: html/user/forum_moderate_thread.php:54
+msgid ""
+"Select the reason category, or write a longer description of why you're "
+"hiding or locking the thread; then press OK."
+msgstr "Seleccione a categoria da razão ou, opcionalmente escreva uma descrição mais detalhada da razão porque está a ocultar/bloquear o tópico; depois carregue em OK."
+
+#: html/user/forum_moderate_thread.php:78
+msgid "Current forum"
+msgstr "Fórum actual"
+
+#: html/user/forum_moderate_thread.php:79
+msgid "Destination forum"
+msgstr "Descrição do fórum"
+
+#: html/user/forum_moderate_thread.php:83
+msgid "New title:"
+msgstr "Novo título:"
+
+#: html/user/forum_post.php:44
+msgid ""
+"Only project admins may create a thread here. However, you may reply to "
+"existing threads."
+msgstr "Apenas os administradores do projeto podem criar um tópico aqui. No entanto, pode responder a tópicos existentes."
+
+#: html/user/forum_post.php:64
+msgid ""
+"Your message was flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "A sua mensagem foi marcada como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
+
+#: html/user/forum_post.php:74
+msgid "Create new thread"
+msgstr "Criar novo tópico"
+
+#: html/user/forum_post.php:102
+msgid "Create a new thread"
+msgstr "Criar um novo tópico"
+
+#: html/user/forum_post.php:107
+msgid "Remember to add a title"
+msgstr "Lembrar para adicionar um titulo"
+
+#: html/user/forum_post.php:132
+msgid "Show this item as a Notice in the BOINC Manager"
+msgstr "Mostrar este item como Notícia no BOINC"
+
+#: html/user/forum_post.php:132
+msgid "Do so only for items likely to be of interest to all volunteers."
+msgstr "Faça-o só para itens prováveis de serem de interesse para todos os voluntários."
+
+#: html/user/forum_rate.php:28
+msgid "Rating offline"
+msgstr "Votação offline"
+
+#: html/user/forum_rate.php:29
+msgid "This function is turned off by the project"
+msgstr "Esta funcionalidade está desabilitada pelo projeto"
+
+#: html/user/forum_rate.php:60
+msgid "You need more average or total credit to rate a post."
+msgstr "Precisa de uma média ou total de créditos superior para classificar uma publicação."
+
+#: html/user/forum_rate.php:64
+msgid "You have already rated this post."
+msgstr "Já classificou esta publicação."
+
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
+msgid "Return to thread"
+msgstr "Regressar ao tópico"
+
+#: html/user/forum_rate.php:74
+msgid "Input Recorded"
+msgstr "Entrada Gravada"
+
+#: html/user/forum_rate.php:75
+msgid "Your input has been recorded. Thanks for your help."
+msgstr "A sua entrada foi gravada. Obrigado pela sua ajuda."
+
+#: html/user/forum_rate.php:77
+msgid "Vote Registered"
+msgstr "Voto Registado"
+
+#: html/user/forum_rate.php:78
+msgid "Your rating has been recorded. Thanks for your input."
+msgstr "A sua entrada foi gravada. Obrigado pela entrada."
+
+#: html/user/forum_rate.php:82
+msgid "Vote Submission Problem"
+msgstr "Problema na submissão do voto"
+
+#: html/user/forum_reply.php:76
+msgid ""
+"Your post has been flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "A sua publicação foi marcada como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
+
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
+msgid "Post to thread"
+msgstr "Publicar no tópico"
+
+#: html/user/forum_reply.php:143
+msgid "Message:"
+msgstr "Mensagem:"
+
+#: html/user/forum_reply.php:146
+msgid "reply to %1Message ID%2:"
+msgstr "responder a %1ID da Mensagem%2:"
+
+#: html/user/forum_reply.php:172
+msgid "Post reply"
+msgstr "Responder à publicação"
+
+#: html/user/forum_reply.php:175
+msgid "Add my signature to this reply"
+msgstr "Adicionar a minha assinatura a esta resposta"
+
+#: html/user/forum_report_post.php:48
+msgid "You need more average or total credit to report a post."
+msgstr "Precisa de mais média ou total de créditos para reportar uma publicação."
+
+#: html/user/forum_report_post.php:70
+msgid "Report Registered"
+msgstr "Report Registado"
+
+#: html/user/forum_report_post.php:71
+msgid "Your report has been recorded. Thanks for your input."
+msgstr "O seu report foi gravado. Obrigado pela sua inserção."
+
+#: html/user/forum_report_post.php:72
+msgid ""
+"A moderator will now look at your report and decide what will happen - this "
+"may take a little while, so please be patient"
+msgstr "Um moderador irá ver o seu relatório e decidir o que irá acontecer - isto pode demorar algum tempo, por isso tenha paciência"
+
+#: html/user/forum_report_post.php:76
+msgid "Report a forum post"
+msgstr "Reportar uma publicação do fórum"
+
+#: html/user/forum_report_post.php:78
+msgid ""
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
+"can find the rating system at the bottom of the post."
+msgstr "Antes de reportar esta publicação, considere usar o sistema de classificação +/-. Se utilizadores suficientes classificarem a publicação negativamente, ela ficará oculta eventualmente.<br>Pode encontrar o sistema de classificação no topo da publicação."
+
+#: html/user/forum_report_post.php:90
+msgid "Report post"
+msgstr "Reportar publicação"
+
+#: html/user/forum_report_post.php:93
+msgid ""
+"Why do you find the post offensive: %1Please include enough information so "
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Porque motivo acha o post ofensivo: %1Por favor,inclua informações suficientes para que as pessoas que ainda não leram o tópico, rapidamente sejam capazes de perceber o problema.%2"
+
+#: html/user/forum_report_post.php:104
+msgid "Report not registered"
+msgstr "Report não registado"
+
+#: html/user/forum_report_post.php:105
+msgid "Your report could not be recorded. Please wait a while and try again."
+msgstr "O seu report não pode ser gravado. Por favor aguarde um bocado e tente novamente."
+
+#: html/user/forum_report_post.php:106
+msgid ""
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Se não for um erro temporário, por favor reporte-o à equipa de desenvolvimento."
+
+#: html/user/forum_rss.php:38
+msgid "%1 RSS feed"
+msgstr "%1 feed RSS"
+
+#: html/user/forum_rss.php:39
+msgid "This message board is available as an RSS feed."
+msgstr "Este fórum está disponível como um feed RSS."
+
+#: html/user/forum_rss.php:41
+msgid "Options:"
+msgstr "Opcões:"
+
+#: html/user/forum_rss.php:45
+msgid "Include only posts by user ID %1 (default: all users)."
+msgstr "Incluir publicações apenas pelo ID de utilizador %1 (padrão: todos os utilizadores)."
+
+#: html/user/forum_rss.php:47
+msgid "Include only posts from the last %1 days (default: 30)."
+msgstr "Incluir publicação apenas dos últimos %1 dias (padrão: 30)."
+
+#: html/user/forum_rss.php:49
+msgid "Threads only: %1 (Include only the first post of every thread)"
+msgstr "Tópicos apenas: %1 (Incluir apenas a primeira publicação de cada tópico)"
+
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Resultados da pesquisa no fórum"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Títulos de tópicos correspondentes à sua pesquisa:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Mensagens correspondentes à sua pesquisa:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Pedimos desculpa mas, não foi possível encontrar nada correspondente ao seu critério de pesquisa. Pode tentar ampliar a sua pesquisa usando menos palavras (ou palavras menos especificas)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Pode também %1tentar a mesma pesquisa no Google.%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Realizar outra pesquisa"
+
+#: html/user/forum_search.php:29
+msgid "Forum search"
+msgstr "Pesquisa no fórum"
+
+#: html/user/forum_search.php:33
+msgid "Search query"
+msgstr "Pesquisa de consulta"
+
+#: html/user/forum_search.php:34
+msgid "Search for keywords:"
+msgstr "Procurar por palavras-chave:"
+
+#: html/user/forum_search.php:35
+msgid "Posts that contain all the specified words will be displayed"
+msgstr "Publicações contendo todas as palavras especificadas serão mostradas"
+
+#: html/user/forum_search.php:37
+msgid "For example: \"screensaver freeze\""
+msgstr "Por exemplo: \"protecção de ecrã bloqueou\""
+
+#: html/user/forum_search.php:38
+msgid "Search for author ID:"
+msgstr "Procurar por ID do autor:"
+
+#: html/user/forum_search.php:39
+msgid "Only posts by this author will be displayed"
+msgstr "Apenas publicações deste autor serão mostradas"
+
+#: html/user/forum_search.php:41
+msgid "For example: \"43214\""
+msgstr "Por exemplo: \"43214\""
+
+#: html/user/forum_search.php:43
+msgid "Search options"
+msgstr "Opções de pesquisa"
+
+#: html/user/forum_search.php:44
+msgid "Search limits"
+msgstr "Limites de pesquisa"
+
+#: html/user/forum_search.php:45
+msgid "Search at most this many days back in time"
+msgstr "Pesquisar no máximo até tantos dias atrás"
+
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
+msgid "%1 months"
+msgstr "%1 meses"
+
+#: html/user/forum_search.php:54
+msgid "1 year"
+msgstr "1 ano"
+
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Fórum"
+
+#: html/user/forum_search.php:75
+msgid "Only display posts from this forum"
+msgstr "Mostrar apenas publicações deste fórum"
+
+#: html/user/forum_search.php:86
+msgid "Sort by"
+msgstr "Ordenar por"
+
+#: html/user/forum_search.php:90
+msgid "Start the search"
+msgstr "Começar pesquisa"
+
+#: html/user/forum_subscribe.php:48
+msgid "Subscription successful"
+msgstr "Subscrição bem sucedida"
+
+#: html/user/forum_subscribe.php:51
+msgid ""
+"You are now subscribed to %1. You will be notified whenever there is a new "
+"post."
+msgstr "Está agora subscrito a %1. Será notificado quando houver uma nova publicação."
+
+#: html/user/forum_subscribe.php:53
+msgid "Subscription failed"
+msgstr "Subscrição falhada"
+
+#: html/user/forum_subscribe.php:54
+msgid ""
+"We are currently unable to subscribe you to %1. Please try again later.."
+msgstr "Não é possível de momento subscrevê-lo a %1. Por favor, tente mais tarde.."
+
+#: html/user/forum_subscribe.php:63
+msgid "Unsubscription successful"
+msgstr "Subscrição removida com sucesso"
+
+#: html/user/forum_subscribe.php:66
+msgid ""
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Já não está subscrito a %1. Não receberá notificações daqui em diante para este tópico."
+
+#: html/user/forum_subscribe.php:68
+msgid "Unsubscription failed"
+msgstr " Remover subscrição falhou"
+
+#: html/user/forum_subscribe.php:69
+msgid ""
+"We are currently unable to unsubscribe you from %1. Please try again later.."
+msgstr "Não é possível de momento remover a subscrição de %1. Por favor, tente mais tarde.."
+
+#: html/user/forum_subscribe.php:76
+msgid "Unknown subscription action"
+msgstr "Acção de subscrição desconhecida"
+
+#: html/user/forum_thread.php:66
+msgid "This forum is not visible to you."
+msgstr "Este fórum não é visível a si."
+
+#: html/user/forum_thread.php:74
+msgid "This thread has been hidden by moderators."
+msgstr "Este tópico foi oculto pelos moderadores."
+
+#: html/user/forum_thread.php:129
+msgid "My question was answered"
+msgstr "A minha questão foi respondida"
+
+#: html/user/forum_thread.php:130
+msgid "Click here if your question has been adequately answered"
+msgstr "Carregue aqui se a sua questão foi adequadamente respondida"
+
+#: html/user/forum_thread.php:138
+msgid "I've also got this question"
+msgstr "Também tenho esta questão"
+
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
+msgid "Add a new message to this thread"
+msgstr "Adicionar uma nova mensagem a este tópico"
+
+#: html/user/forum_thread.php:175
+msgid "Unsubscribe"
+msgstr "Remover subscrição"
+
+#: html/user/forum_thread.php:176
+msgid "You are subscribed to this thread.  Click here to unsubscribe."
+msgstr "Já está subscrito neste tópico. Carregue aqui para remover subscrição."
+
+#: html/user/forum_thread.php:182
+msgid "Subscribe"
+msgstr "Subscrever"
+
+#: html/user/forum_thread.php:183
+msgid "Click to get email when there are new posts in this thread"
+msgstr "Carregue para obter e-mails quando houver novas publicações neste tópico"
+
+#: html/user/forum_thread.php:194
+msgid "Unhide this thread"
+msgstr "Não ocultar este tópico"
+
+#: html/user/forum_thread.php:200
+msgid "Hide this thread"
+msgstr "Ocultar este tópico"
+
+#: html/user/forum_thread.php:206
+msgid "Make unsticky"
+msgstr "Marcar como não sticky"
+
+#: html/user/forum_thread.php:207
+msgid "Make this thread not sticky"
+msgstr "Marcar este tópico como não sticky"
+
+#: html/user/forum_thread.php:212
+msgid "Make sticky"
+msgstr "Marcar como sticky"
+
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Fazer este tópico aparecer sempre no topo do fórum"
+
+#: html/user/forum_thread.php:219
+msgid "Unlock"
+msgstr "Desbloquear"
+
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Permitir novas publicações neste tópico"
+
+#: html/user/forum_thread.php:225
+msgid "Lock"
+msgstr "Bloquear"
+
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Não permitir novas publicações neste tópico"
+
+#: html/user/forum_thread.php:233
+msgid "Move this thread to a different forum"
+msgstr "Mover este tópico para um fórum diferente"
+
+#: html/user/forum_thread.php:238
+msgid "Edit title"
+msgstr "Editar título"
+
+#: html/user/forum_thread.php:239
+msgid "Edit thread title"
+msgstr "Editar o título deste tópico"
+
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Eliminar este tópico permanentemente"
+
+#: html/user/forum_thread.php:257
+msgid "Export as Notice"
+msgstr "Exportar como Notícia"
+
+#: html/user/forum_thread.php:263
+msgid "Don't export"
+msgstr "Não exportar"
+
+#: html/user/forum_thread.php:264
+msgid "Don't export this news item as a Notice"
+msgstr "Não exportar estas novidades como Notícias"
+
+#: html/user/forum_thread.php:277
+msgid "Sort"
+msgstr "Ordenar"
+
+#. --------------
+#: html/user/forum_thread_status.php:54
+msgid "Thread status updated"
+msgstr "Estado do tópico atualizado"
+
+#: html/user/forum_thread_status.php:55
+msgid "The status has been updated."
+msgstr "O estado foi atualizado."
+
+#: html/user/forum_user_posts.php:75
+msgid "Posts by %1"
+msgstr "Publicações por %1"
+
+#: html/user/friend.php:35
+msgid "Already friends"
+msgstr "Já amigos"
+
+#: html/user/friend.php:41
+msgid "You requested friendship with %1 on %2."
+msgstr "Solicitou amizade com %1 em %2."
+
+#: html/user/friend.php:43
+msgid "This request is still pending confirmation."
+msgstr "Esta solicitação está ainda pendente por confirmação."
+
+#: html/user/friend.php:54
+msgid "%1 is not accepting friendship requests from you"
+msgstr "%1 não está a aceitar pedidos de amizade seus"
+
+#: html/user/friend.php:63
+msgid "You can't be friends with yourself"
+msgstr "Não pode ser amigo de si mesmo"
+
+#: html/user/friend.php:71
+msgid "Add friend"
+msgstr "Adicionar amigo"
+
+#: html/user/friend.php:76
+msgid ""
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Pediu para adicionar %1 como amigo. Iremos notificar %1 e pedir-lhe que confirme que são amigos."
+
+#: html/user/friend.php:79
+msgid "Add an optional message here:"
+msgstr "Adicionar uma mensagem opcional aqui:"
+
+#: html/user/friend.php:117
+msgid "Friend request sent"
+msgstr "Pedido de amizade enviado"
+
+#: html/user/friend.php:118
+msgid "We have notified %1 of your request."
+msgstr "Notificámos %1 do seu pedido."
+
+#: html/user/friend.php:128
+msgid "Please log in as %1"
+msgstr "Por favor entre como %1"
+
+#: html/user/friend.php:129
+msgid "You must log in as %1 to view this friend request"
+msgstr "Tem que entrar como %1 para ver o pedido deste amigo"
+
+#: html/user/friend.php:140
+msgid "Friend request"
+msgstr "Pedido de amigo"
+
+#: html/user/friend.php:143
+msgid "%1 has requested friendship with you."
+msgstr "%1 solicitou amizade consigo."
+
+#: html/user/friend.php:145
+msgid "%1 says: %2"
+msgstr "%1 diz: %2"
+
+#: html/user/friend.php:148
+msgid "Accept friendship"
+msgstr "Aceitar amizade"
+
+#: html/user/friend.php:148
+msgid "Click accept if %1 is in fact a friend"
+msgstr "Carregue em aceitar se %1 é de facto um amigo"
+
+#: html/user/friend.php:149
+msgid "Decline"
+msgstr "Recusar"
+
+#: html/user/friend.php:149
+msgid "Click decline if %1 is not a friend"
+msgstr "Carregue em recusar se %1 não é um amigo"
+
+#: html/user/friend.php:188
+msgid "Friendship confirmed"
+msgstr "Amizade confirmada"
+
+#: html/user/friend.php:189
+msgid "Your friendship with %1 has been confirmed."
+msgstr "A sua amizade com %1 foi confirmada."
+
+#: html/user/friend.php:207
+msgid "Friendship declined"
+msgstr "Amizade recusada"
+
+#: html/user/friend.php:208
+msgid "You have declined friendship with %1"
+msgstr "Recusou a amizade com %1"
+
+#: html/user/friend.php:223
+msgid "Notification not found"
+msgstr "Notificação não encontrada"
+
+#: html/user/friend.php:225
+msgid "Friend confirmed"
+msgstr "Amigo confirmado"
+
+#: html/user/friend.php:226
+msgid "You are now friends with %1."
+msgstr "É agora amigo de %1."
+
+#: html/user/friend.php:234
+msgid "Cancel friendship?"
+msgstr "Cancelar amizade?"
+
+#: html/user/friend.php:236
+msgid "Are you sure you want to cancel your friendship with %1?"
+msgstr "Tem a certeza que quer cancelar a sua amizade com %1?"
+
+#: html/user/friend.php:241
+msgid "Stay friends"
+msgstr "Manter amigo"
+
+#: html/user/friend.php:251
+msgid "Friendship cancelled"
+msgstr "Amizade cancelada"
+
+#: html/user/friend.php:252
+msgid "Your friendship with %1 has been cancelled."
+msgstr "A sua amizade com %1 foi cancelada."
+
+#: html/user/get_passwd.php:27
+msgid ""
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Se sabe o endereço de e-mail da sua conta, e pode receber os e-mails nessa conta:"
+
+#: html/user/get_passwd.php:28
+msgid ""
+"Enter the email address below, and click OK. You will be sent email "
+"instructions for resetting your password."
+msgstr "Insira em baixo o endereço de e-mail e carregue em OK. Será enviado um e-mail com instruções para redefinir a sua palavra passe."
+
+#: html/user/get_passwd.php:46
+msgid ""
+"2) If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "2) Se esqueceu o endereço de e-mail da sua conta, ou não pode receber e-mails nessa conta:"
+
+#: html/user/get_passwd.php:47
+msgid ""
+"If you have run BOINC under this account, you can still access it. Here's "
+"how:"
+msgstr "Se executa o BOINC nesta conta, ainda o pode aceder. Saiba como:"
+
+#: html/user/get_passwd.php:50
+msgid ""
+"Go to the BOINC data directory on your computer (its location is written to "
+"the Event Log at startup)."
+msgstr "Ir para o directório de dados do BOINC no seu computador (a sua localização está escrita no Log de Eventos ao início)."
+
+#: html/user/get_passwd.php:51
+msgid "Find your account file for this project; it will be named <b>%1</b>."
+msgstr "Encontre o seu ficheiro de conta para este projeto; será chamado <b>%1</b>."
+
+#: html/user/get_passwd.php:52
+msgid "Open the file in a text editor like Notepad. You'll see something like"
+msgstr "Abra o ficheiro num editor de texto como o Notepad. Verá algo como"
+
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Selecionar e Copiar a string entre %1 e %2 (%3 no exemplo abaixo)."
+
+#: html/user/get_passwd.php:64
+msgid "Paste the string into the field below, and click OK."
+msgstr "Colar a string no campo abaixo e, carregar em OK."
+
+#: html/user/get_passwd.php:65
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Será agora feito o login na sua conta; atualize o e-mail e palavra-passe da sua conta."
+
+#: html/user/get_passwd.php:72
+msgid "Log in with authenticator"
+msgstr "Entre com o autenticador"
+
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Esqueceu-se das informações da sua conta?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
+msgid "No GPU tasks reported"
+msgstr "Sem tarefas de GPU reportadas"
+
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Top de modelos GPU"
+
+#: html/user/gpu_list.php:207
+msgid ""
+"The following lists show the most productive GPU models on different "
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "A seguinte lista mostra os modelos de GPU's mais produtivas nas diferentes plataformas. Velocidades relativas, analisadas pelo tempo médio das tarefas, são mostradas em parêntesis."
+
+#: html/user/home.php:42
+msgid "Welcome to %1"
+msgstr "Bem vindo a %1"
+
+#: html/user/home.php:43
+msgid "View and edit your account preferences using the links below."
+msgstr "Ver e editar as preferências da sua conta usando os links abaixo."
+
+#: html/user/home.php:46
+msgid "If you have not already done so, %1download BOINC client software%2."
+msgstr "Se ainda não o fez, %1tansfira o software de cliente BOINC%2."
+
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "A sua conta"
+
+#: html/user/host_app_versions.php:45
+msgid "anonymous platform"
+msgstr "plataforma anónima"
+
+#: html/user/host_app_versions.php:62
+msgid "Missing platform"
+msgstr "Plataforma não encontrada"
+
+#: html/user/host_app_versions.php:73
+msgid "Number of tasks completed"
+msgstr "Número de tarefas completas"
+
+#: html/user/host_app_versions.php:74
+msgid "Max tasks per day"
+msgstr "Máximo de tarefas por dia"
+
+#: html/user/host_app_versions.php:75
+msgid "Number of tasks today"
+msgstr "Número de tarefas hoje"
+
+#: html/user/host_app_versions.php:76
+msgid "Consecutive valid tasks"
+msgstr "Tarefas válidas consecutivas"
+
+#: html/user/host_app_versions.php:80
+msgid "Average processing rate"
+msgstr "Taxa média de processamento"
+
+#: html/user/host_app_versions.php:90
+msgid "Application details for host %1"
+msgstr "Detalhes da aplicação para o anfitrião %1"
+
+#: html/user/host_delete.php:31
+msgid "We have no record of that computer."
+msgstr "Não temos registo desse computador."
+
+#: html/user/host_delete.php:38
+msgid ""
+"You can not delete our record of this computer because our database still "
+"contains work for it. You must wait a few days until the work for this "
+"computer has been deleted from the project database."
+msgstr "Não pode eliminar o nosso registo deste computador porque a base de dados ainda contém trabalho para ele. Tem de esperar uns dias até que o trabalho para este computador seja eliminado da base de dados do projeto."
+
+#: html/user/host_delete.php:40
+msgid "Delete record of computer"
+msgstr "Apagar registo do computador"
+
+#: html/user/host_delete.php:41
+msgid "Record deleted."
+msgstr "Registo apagado."
+
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
+msgid "Return to list of your computers"
+msgstr "Regressar à lista dos seus computadores"
+
+#: html/user/host_edit_action.php:39
+msgid "Merge computer records"
+msgstr "Fundir registos dos computadores "
+
+#: html/user/host_edit_form.php:35
+msgid "Merge computers"
+msgstr "Fundir computadores"
+
+#: html/user/host_edit_form.php:38
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Por vezes o BOINC assigna identidades separadas para o mesmo computador por engano. Pode corrigir isto fundindo identidades mais antigas com as novas."
+
+#: html/user/host_edit_form.php:56
+msgid "No hosts are eligible for merging with this one."
+msgstr "Não existem anfitriões elegíveis para fundir com este."
+
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
+msgid "Show details"
+msgstr "Mostrar detalhes"
+
+#: html/user/host_edit_form.php:66
+msgid ""
+"Check the computers that are the same as %1 (created %2, computer ID %3):"
+msgstr "Verifique os computadores que são os mesmos que %1 (criado em %2, ID do computador %3):"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
+msgid "name"
+msgstr "nome"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
+msgid "created"
+msgstr "criado"
+
+#: html/user/host_edit_form.php:70
+msgid "computer ID"
+msgstr "ID do computador"
+
+#: html/user/host_edit_form.php:77
+msgid "no hostname"
+msgstr "sem anfitrião"
+
+#: html/user/host_edit_form.php:109
+msgid "Merge hosts"
+msgstr "Fundir anfitriões"
+
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Computadores pertencentes a %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Computadores ocultos"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Este utilizador escolheu não mostrar informações relativas aos seus computadores."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Os seus computadores"
+
+#: html/user/host_update_credit.php:27
+msgid "Updating computer credit"
+msgstr "Atualizando créditos do computador"
+
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Créditos do anfitrião atualizados"
+
+#: html/user/host_venue_action.php:41
+msgid "Host venue updated"
+msgstr "Local do anfitrião atualizado"
+
+#: html/user/host_venue_action.php:43
+msgid "none"
+msgstr "nenhum"
+
+#: html/user/host_venue_action.php:46
+msgid "The venue of this host has been set to %1."
+msgstr "O local deste anfitrião foi definido para %1."
+
+#: html/user/host_venue_action.php:48
+msgid ""
+"This change will take effect the next time the host communicates with this "
+"project."
+msgstr "Esta alteração irá ocorrer da próxima vez que o anfitrião comunicar com este projeto."
+
+#: html/user/host_venue_action.php:50
+msgid "Return to host page"
+msgstr "Regressar à página do anfitrião"
+
+#: html/user/html.php:23
+msgid "Allowed HTML tags"
+msgstr "Tags HTML permitidas"
+
+#: html/user/html.php:25
+msgid "The following HTML tags are allowed in team descriptions:"
+msgstr "As seguintes tags HTML são permitidas nas descrições das equipas:"
+
+#: html/user/html.php:27
+msgid "bold"
+msgstr "negrito"
+
+#: html/user/html.php:28
+msgid "italics"
+msgstr "itálicos"
+
+#: html/user/html.php:29
+msgid "hyperlink"
+msgstr "hiperlink"
+
+#: html/user/html.php:30
+msgid "paragraph"
+msgstr "parágrafo"
+
+#: html/user/html.php:31
+msgid "break"
+msgstr "quebra"
+
+#: html/user/html.php:32
+msgid "preformatted"
+msgstr "pré-formatado"
+
+#: html/user/html.php:33
+msgid ""
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "imagem; altura não pode exceder 450 pixeis. Por favor, não crie links de imagens sem a permissão do website onde a imagem está alojada."
+
+#: html/user/html.php:35
+msgid "You can also use ampersand notation for special characters."
+msgstr "Pode também usar a notação comercial para carateres especiais."
+
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Regras e políticas"
+
+#: html/user/info.php:35
+msgid "Run %1 only on authorized computers"
+msgstr "Executar %1 apenas em computadores autorizados"
+
+#: html/user/info.php:36
+msgid ""
+"Run %1 only on computers that you own, or for which you have obtained the "
+"owner's permission. Some companies and schools have policies that prohibit "
+"using their computers for projects such as %1."
+msgstr "Executar %1 apenas em computadores que possua, ou que tenha obtido a permissão do dono. Algumas empresas e escolas têm políticas que proíbem de usar os seus computadores para projetos como %1."
+
+#: html/user/info.php:38
+msgid "How %1 will use your computer"
+msgstr "Como o %1 irá utilizar o seu computador"
+
+#: html/user/info.php:39
+msgid ""
+"When you run %1 on your computer, it will use part of the computer's CPU "
+"power, disk space, and network bandwidth. You can control how much of your "
+"resources are used by %1, and when it uses them."
+msgstr "Quando executar o %1 no seu computador, este irá utilizar parte do poder do CPU do computador, espaço em disco e largura de banda. Pode controlar a quantidade de recursos que são utilizados pelo %1, e quando este os utiliza."
+
+#: html/user/info.php:40
+msgid ""
+"The work done by your computer contributes to the goals of %1, as described "
+"on its web site. The application programs may change from time to time."
+msgstr "O trabalho realizado pelo seu computador contribui para os objetivos do %1, como descrito no website. As aplicações dos programas podem variar de tempo a tempo."
+
+#: html/user/info.php:42
+msgid "Privacy policy"
+msgstr "Política de privacidade"
+
+#: html/user/info.php:43
+msgid ""
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "A sua conta no %1 é identificada pelo nome que escolheu. Este nome pode ser mostrado no website do %1, juntamente com um resumo do trabalho que foi realizado pelo seu computador para o %1. Se quer permanecer anónimo, escolha um nome que não revele a sua identidade."
+
+#: html/user/info.php:44
+msgid ""
+"If you participate in %1, information about your computer (such as its "
+"processor type, amount of memory, etc.) will be recorded by %1 and used to "
+"decide what type of work to assign to your computer. This information will "
+"also be shown on %1's web site. Nothing that reveals your computer's "
+"location (e.g. its domain name or network address) will be shown."
+msgstr "Se participa em %1, as informações acerca do seu computador (assim como o tipo de processador, quantidade de memória, etc.) serão gravadas pelo %1 e utilizadas para decidir que tipo de trabalho será assignado ao seu computador. Esta informação será também mostrada no website %1's. Nada que revele a localização do seu computador (por exemplo o nome do domínio ou o endereço de rede) será mostrado."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Para participar em %1, tem que inserir um endereço onde receba e-mails. Este endereço não será mostrado no website %1 ou partilhado com organizações.O %1 pode enviar newsletters periódicas; no entanto, pode desistir a qualquer altura."
+
+#: html/user/info.php:46
+msgid ""
+"Private messages sent on the %1 web site are visible only to the sender and "
+"recipient.  %1 does not examine or police the content of private messages.  "
+"If you receive unwanted private messages from another %1 user, you may add "
+"them to your %2message filter%3.  This will prevent you from seeing any "
+"public or private messages from that user."
+msgstr "Mensagens privadas enviadas no website %1 estão visíveis apenas ao remetente e recetor. O %1 não examina ou controla o conteúdo das mensagens privadas. Se receber mensagens privadas indesejáveis de outro utilzador do %1, pode adicioná-lo ao seu %2filtro de mensagens%3. Isto irá prevenir que veja mensagens públicas ou privadas desse mesmo utilizador."
+
+#: html/user/info.php:47
+msgid ""
+"If you use our web site forums you must follow the %2posting guidelines%3.  "
+"Messages posted to the %1 forums are visible to everyone, including non-"
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Se usa os nossos fóruns na web, tem que seguir as %2instruções para criar publicações%3. Mensagens publicadas no %1 fórum estão visíveis a todos, incluindo não-membros. Ao publicar nos fóruns, está a garantir licença irrevogável para que qualquer pessoa possa ver e copiar as suas publicações."
+
+#: html/user/info.php:48
+msgid "Is it safe to run %1?"
+msgstr "É seguro executar %1?"
+
+#: html/user/info.php:49
+msgid ""
+"Any time you download a program through the Internet you are taking a "
+"chance: the program might have dangerous errors, or the download server "
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "De cada vez que faz a transferência de um programa através da Internet está a correr um risco: o programa pode conter erros perigosos, ou o servidor de transferências pode ter sido hackeado. %1 fez um esforço para minimizar estes riscos. Testamos as nossas aplicações com todo o cuidado. Os nossos servidores estão por trás de uma firewall e são configurados para alta segurança. Para garantir a integridade das transferências dos programas, todos os executáveis estão assinados digit [...]
+
+#: html/user/info.php:50
+msgid ""
+"The applications run by %1 may cause some computers to overheat. If this "
+"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
+msgstr "As aplicações executadas pelo %1 podem provocar um sobreaquecimento em alguns computadores. Se isto acontecer, pare de executar o %1 ou use um %2utilitário%3 que limite a utilização do CPU."
+
+#: html/user/info.php:51
+msgid ""
+"%1 was developed by %2. BOINC was developed at the University of California."
+msgstr "%1 foi desenvolvido por %2. O BOINC foi desenvolvido na Universidade da Califórnia."
+
+#: html/user/info.php:53
+msgid "Liability"
+msgstr "Responsabilidade"
+
+#: html/user/info.php:54
+msgid ""
+"%1 and %2 assume no liability for damage to your computer, loss of data, or "
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 e %2 não assumem responsabilidade por danos no seu computador, perca de dados ou outros eventos ou condições que possam ocorrer como resultado de participar em %1."
+
+#: html/user/info.php:56
+msgid "Other BOINC projects"
+msgstr "Outros projetos do BOINC"
+
+#: html/user/info.php:57
+msgid ""
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
+"will do useful work even when %1 has no work available for it."
+msgstr "Outros projetos utilizam a mesma plataforma, o BOINC, como %1. Pode considerar participar em um ou mais destes projetos. Ao fazê-lo, o seu computador realizará trabalho útil mesmo quando %1 não tiver trabalho disponível."
+
+#: html/user/info.php:58
+msgid ""
+"These other projects are not associated with %1, and we cannot vouch for "
+"their security practices or the nature of their research. Join them at your "
+"own risk."
+msgstr "Estes projetos não estão associados com %1, e nós não podemos garantir a natureza de práticas seguras ou a natureza das suas pesquisas. Junte-se a eles por sua conta e risco."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Sou novo"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Sou um utilizador do BOINC"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Leia as nossas %1Regras e Políticas%2."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Transfira o software BOINC para PC."
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Transferir"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Para dispositivos com Android, transfira o BOINC da Play Store da Google ou na App Store da Amazon."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Executar a instalação."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Escolha %1 da lista , ou insira %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Instale o BOINC neste dispositivo se ainda não estiver presente."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Selecione Ferramentas / Adicionar Projeto. Escolha %1 da lista, ou insira %2"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Se está a executar uma versão do BOINC em linha de comandos no seu computador, %1crie uma conta%2, em seguida use %3boinccmd --project_attach%4 para adicionar o projeto."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Aderir a %1"
+
+#: html/user/language_select.php:46
+msgid "Language selection"
+msgstr "Seleção de idioma"
+
+#: html/user/language_select.php:57
+msgid ""
+"This web site is available in several languages. The currently selected "
+"language is %1."
+msgstr "Este website está disponível em vários idiomas. A linguagem selecionada atualmente é %1."
+
+#: html/user/language_select.php:62
+msgid ""
+"Normally the choice of language is determined by your browser's language "
+"setting, which is: %1.  You can change this setting using:"
+msgstr "Normalmente a escolha do idioma é determinado pela definição de idioma do seu navegador web, que é: %1. Pode alterar esta definição utilizando:"
+
+#: html/user/language_select.php:67
+msgid "Firefox: Tools/Options/General"
+msgstr "Firefox: Ferramentas/Opções/Geral"
+
+#: html/user/language_select.php:69
+msgid "Microsoft IE: Tools/Internet Options/Languages"
+msgstr "Microsoft IE: Ferramentas/Opções da Internet/Idiomas"
+
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Ou pode selecionar um idioma do seguinte menu:"
+
+#: html/user/language_select.php:85
+msgid ""
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "As traduções são feitas por voluntários. Se o seu idioma não existe ou está incompleto, %1pode ajudar a traduzir%2."
+
+#: html/user/login_form.php:59
+msgid "or %1create an account%2."
+msgstr "ou %1criar uma conta%2."
+
+#: html/user/merge_by_name.php:31
+msgid "Processing %1"
+msgstr "Processando %1"
+
+#: html/user/merge_by_name.php:43
+msgid "Merged %1 into %2"
+msgstr "Fundido %1 para %2"
+
+#: html/user/merge_by_name.php:72
+msgid "Return to the list of your computers"
+msgstr "Regressar à lista dos seus computadores"
+
+#: html/user/merge_by_name.php:76
+msgid ""
+"This operation merges computers based on their domain name.\n"
+"        <p>\n"
+"        For each domain name, it will merge all older computers\n"
+"        having that name with the newest computer having that name.\n"
+"        Incompatible computers will not be merged.\n"
+"        <p>"
+msgstr "Esta operação liga os computadores baseados no seu nome de domínio.\n<p>\nPara cada nome de domínio, este ligará todos os computadores antigos\ntendo esse nome com os computadores mais recente.\nOs computador incompatíveis não serão fundidos.\n<p>"
+
+#: html/user/merge_by_name.php:82
+msgid "Go ahead and do this"
+msgstr "Vá em frente e faça isto"
+
+#: html/user/merge_by_name.php:83
+msgid "Return to the list of computers"
+msgstr "Regressar à lista de computadores"
+
+#: html/user/moderation.php:26
+msgid ""
+"\n"
+"To maximize discussion and flow of information,\n"
+"our message boards are moderated.\n"
+"Message board postings are subject to the following posting rules:\n"
+msgstr "\nPara maximizar a discussão e o fluxo de informação,\nos nosso fóruns são sujeitos a moderação.\nPublicações nos fóruns são sujeitos às seguintes regras:\n\n"
+
+#: html/user/moderation.php:30
+msgid ""
+"\n"
+"<p>\n"
+"Moderators may delete posts that violate any of these rules.\n"
+"The authors of deleted posts will be notified via email.\n"
+"Gross offenders may have their ability to post messages temporarily revoked\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
+"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
+"IP addresses of other participants, excessive thread creation to spam\n"
+"the forums, etc.), while not listed in the formal rules, may still\n"
+"lead to similar penalties.\n"
+"<p>\n"
+"If you think a post violates any of the posting rules,\n"
+"click the red X on the post and fill out the form;\n"
+"moderators will be notified of your complaint.\n"
+"Please use this button only for clear violations - not\n"
+"personal disputes.\n"
+"<p>\n"
+"We try to be as fair as we can when moderating,\n"
+"but in a large community of users, with many different viewpoints,\n"
+"there will always be some people that will not be happy\n"
+"with our moderation decisions.\n"
+"While we regret that this happens,\n"
+"please realize that we cannot suit all of the people all of the time\n"
+"and have to make decisions based on our resources and\n"
+"what is best for the forum overall.\n"
+"Please don't discuss our moderation policy on the forums. We aren't\n"
+"a social engineering project nor are we in the business of creating\n"
+"a perfectly fair system. So such discussions tend to be counterproductive\n"
+"and potentially incendiary. If you have a legitimate claim,\n"
+"send email to the address below.\n"
+"<p>\n"
+"This moderation policy is set by the %1 project.\n"
+"If you have comments about the policy, email %2.\n"
+"\n"
+msgstr "\n<p>\nOs Moderadores podem apagar publicações que violem alguma destas regras.\nOs autores das publicações eliminadas serão notificados por e-mail.\nInfratores grosseiros poderão ter a permissão de publicar mensagens temporariamente revogadas.\n(apesar de ser para prevenir abusos, apenas administradores têm o privilégio de o fazer).\nTipos de mau comportamento adicionais (publicações de \"bugging\" para apanhar os endereços de IP de outros participantes, criação excessiva de pub [...]
+
+#: html/user/pending.php:66
+msgid "Pending credit"
+msgstr "Créditos pendentes"
+
+#: html/user/pending.php:68
+msgid "Result ID"
+msgstr "ID do resultado"
+
+#: html/user/pending.php:68
+msgid "Workunit ID"
+msgstr "ID da Unidade de Trabalho"
+
+#: html/user/pending.php:68
+msgid "Host ID"
+msgstr "ID do Anfitrião"
+
+#: html/user/pending.php:68
+msgid "Claimed credit"
+msgstr "Crédito reivindicado"
+
+#: html/user/pending.php:81
+msgid "Pending credit: %1"
+msgstr "Créditos pendentes: %1"
+
+#: html/user/pm.php:29
+msgid "Block messages from this user"
+msgstr "Bloquear mensagens deste utilizador"
+
+#: html/user/pm.php:29
+msgid "Block user"
+msgstr "Bloquear utilizador"
+
+#: html/user/pm.php:61
+msgid "Your message has been sent."
+msgstr "A sua mensagem foi enviada."
+
+#: html/user/pm.php:71
+msgid "You have no private messages."
+msgstr "Não tem mensagens privadas."
+
+#: html/user/pm.php:79
+msgid "Sender and date"
+msgstr "Remetente e data"
+
+#: html/user/pm.php:99
+msgid "Reply to this message"
+msgstr "Responder a esta mensagem"
+
+#: html/user/pm.php:100
+msgid "Delete this message"
+msgstr "Apagar esta mensagem"
+
+#: html/user/pm.php:105
+msgid "Select all"
+msgstr "Selecionar todos"
+
+#: html/user/pm.php:107
+msgid "Unselect all"
+msgstr "Desselecione todos"
+
+#: html/user/pm.php:110
+msgid "Delete selected messages"
+msgstr "Apagar mensagens selecionadas"
+
+#: html/user/pm.php:134
+msgid "Sender"
+msgstr "Remetente"
+
+#: html/user/pm.php:137
+msgid "Date"
+msgstr "Data"
+
+#: html/user/pm.php:190 html/user/pm.php:220
+msgid "You need to fill all fields to send a private message"
+msgstr "Tem que preencher todos os campos para enviar uma mensagem privada"
+
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Mensagem enviada"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "A sua mensagem foi enviada para os %1 membros da equipa."
+
+#: html/user/pm.php:224
+msgid ""
+"Your message was flagged as spam\n"
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "A sua mensagem foi considerada como spam\nbelo sistema anti-spam Akismet.\nPor favor, modifique o seu texto e tente novamente."
+
+#: html/user/pm.php:241
+msgid "Could not find user with id %1"
+msgstr "Não foi possível encontrar o utilizador com o id %1"
+
+#: html/user/pm.php:246
+msgid "Could not find user with username %1"
+msgstr "Não foi possível encontrar o utilizador com o nome de utilizador %1"
+
+#. Non-unique username
+#: html/user/pm.php:248
+msgid "%1 is not a unique username; you will have to use user ID"
+msgstr "%1 não é um nome de utilizador único; terá que usar o ID do utilizador"
+
+#: html/user/pm.php:254
+msgid "User %1 (ID: %2) is not accepting private messages from you."
+msgstr "O utilizador %1 (ID: %2) não está a aceitar mensagens privadas suas."
+
+#: html/user/pm.php:276 html/user/view_profile.php:28
+msgid "No such user"
+msgstr "Não existe tal utilizador"
+
+#: html/user/pm.php:278
+msgid "Really block %1?"
+msgstr "Bloquear %1?"
+
+#: html/user/pm.php:279
+msgid ""
+"Are you really sure you want to block user %1 from sending you private "
+"messages?"
+msgstr "Tem a certeza que quer bloquear o utilizador %1 de lhe enviar mensagens privadas?"
+
+#: html/user/pm.php:280
+msgid "Please note that you can only block a limited amount of users."
+msgstr "Tenha em atenção que só pode bloquear um número limitado de utilizadores."
+
+#: html/user/pm.php:281
+msgid ""
+"Once the user has been blocked you can unblock it using forum preferences "
+"page."
+msgstr "Assim que o utilizador for bloqueado, só o pode desbloquear usando a página de preferências do fórum."
+
+#: html/user/pm.php:288
+msgid "No, cancel"
+msgstr "Não, cancelar"
+
+#: html/user/pm.php:297 html/user/team_admins.php:101
+msgid "no such user"
+msgstr "não existe tal utilizador"
+
+#: html/user/pm.php:300
+msgid "User %1 blocked"
+msgstr "Utilizador %1 bloqueado"
+
+#: html/user/pm.php:302
+msgid "User %1 has been blocked from sending you private messages."
+msgstr "O utilizador %1 foi bloqueado de lhe enviar mensagens privadas."
+
+#: html/user/pm.php:303
+msgid "To unblock, visit %1message board preferences%2"
+msgstr "Para desbloquear, visite as %1preferências do fórum%2"
+
+#: html/user/pm.php:365
+msgid "Unknown action"
+msgstr "Ação desconhecida"
+
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 para %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Voltar às preferências"
+
+#: html/user/prefs.php:33
+msgid ""
+"Your preferences have been updated, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "As suas preferências foram atualizadas e,\nterão efeito quando o seu computador comunicar com o %1\n ou executar o comando %2Atualizar%3 a partir do BOINC."
+
+#: html/user/prefs.php:42
+msgid ""
+"Your preferences have been reset to the defaults, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "As suas preferências foram redefinidas para as originais, e\nterão efeito quando o seu computador comunicar com o %1\nou executar o comando %2Atualizar%3 no BOINC."
+
+#: html/user/prefs_remove.php:46
+msgid "Confirm delete preferences"
+msgstr "Confirmar apagar preferências"
+
+#: html/user/prefs_remove.php:49
+msgid "Are you sure you want to delete your separate %1 preferences for %2?"
+msgstr "Tem a certeza que quer apagar as suas %1preferências separadas para %2?"
+
+#: html/user/prefs_remove.php:53
+msgid "Remove preferences"
+msgstr "Remover preferências"
+
+#: html/user/prefs_remove.php:55
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: html/user/profile_menu.php:37
+msgid ""
+"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
+"community."
+msgstr "%1Perfis%2 permitem partilhas individuais dos fundos e opiniões com a %3 comunidade."
+
+#: html/user/profile_menu.php:38
+msgid ""
+"Explore the diversity of your fellow volunteers, and contribute your own "
+"views for others to enjoy."
+msgstr "Explore a diversidade dos seus colegas voluntários, e contribua com os seus pontos de vista para que os outros apreciem."
+
+#: html/user/profile_menu.php:39
+msgid ""
+"If you haven't already, you can %1create your own user profile%2 for others "
+"to see!"
+msgstr "Se ainda não tem, pode %1criar o seu próprio perfil%2 para que outros possam vê-lo!"
+
+#: html/user/profile_menu.php:44
+msgid "User of the Day"
+msgstr "Utilizador do Dia"
+
+#: html/user/profile_menu.php:59
+msgid "User Profile Explorer"
+msgstr "Explorador do Perfil de Utilizador"
+
+#: html/user/profile_menu.php:62
+msgid "View the %1User Picture Gallery%2."
+msgstr "Ver a %1Galeria de Imagens do Utilizador%2."
+
+#: html/user/profile_menu.php:63
+msgid "Browse profiles %1by country%2."
+msgstr "Pesquisar os perfis %1por país%2."
+
+#: html/user/profile_menu.php:64
+msgid ""
+"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
+"without pictures%2."
+msgstr "Mostrar perfis %1aleatoriamente%2, %3Aleatoriamente com imagens%2, ou %4aleatoriamente sem imagens%2."
+
+#: html/user/profile_menu.php:68
+msgid "Alphabetical profile listings:"
+msgstr "Listagem alfabética de perfis:"
+
+#: html/user/profile_menu.php:74
+msgid "Search profile text"
+msgstr "Pesquisar texto do perfil"
+
+#: html/user/profile_menu.php:100
+msgid "No profiles"
+msgstr "Sem perfis"
+
+#: html/user/profile_menu.php:101
+msgid "No profiles matched your query."
+msgstr "Não existem perfis que correspondam ao seu critério."
+
+#: html/user/profile_rate.php:31
+msgid "Invalid vote type:"
+msgstr "Tipo de voto inválido:"
+
+#: html/user/profile_rate.php:36
+msgid "Vote Recorded"
+msgstr "Voto Gravado"
+
+#: html/user/profile_rate.php:40
+msgid "Thank you"
+msgstr "Obrigado"
+
+#: html/user/profile_rate.php:43
+msgid "Your recommendation has been recorded."
+msgstr "A sua recomendação foi registada."
+
+#: html/user/profile_rate.php:45
+msgid "Your vote to reject this profile has been recorded."
+msgstr "O seu voto para rejeitar este perfil foi gravado."
+
+#: html/user/profile_rate.php:48
+msgid "Return to profile."
+msgstr "Regressar ao perfil."
+
+#: html/user/profile_search_action.php:38
+msgid "Profiles containing '%1'"
+msgstr "Perfis contendo '%1'"
+
+#: html/user/profile_search_action.php:42
+msgid "User name"
+msgstr "Nome de utilizador"
+
+#: html/user/profile_search_action.php:43
+msgid "Joined project"
+msgstr "Aderiu ao projeto"
+
+#: html/user/profile_search_action.php:46
+msgid "Recent credit"
+msgstr "Créditos recentes"
+
+#: html/user/profile_search_action.php:56
+msgid "No profiles found containing '%1'"
+msgstr "Não encontrou perfis contendo '%1'"
+
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Não existe essa tarefa:"
+
+#: html/user/results.php:29
+msgid "This feature is turned off temporarily"
+msgstr "Esta funcionalidade está temporariamente desabilitada"
+
+#: html/user/results.php:56
+msgid "No computer with ID %1 found"
+msgstr "Computador não encontrado com o ID %1"
+
+#: html/user/results.php:63
+msgid "No access"
+msgstr "Sem acesso"
+
+#: html/user/results.php:69
+msgid "Missing user ID or host ID"
+msgstr "Utilizador não encontrado ou ID do anfitrião"
+
+#: html/user/results.php:105
+msgid "No tasks to display"
+msgstr "Sem tarefas para mostrar"
+
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 está temporariamente fechado para manutenção."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "O que é %1?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Notícias"
+
+#: html/user/server_status.php:57
+msgid "Not Running"
+msgstr "Não em execução"
+
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "Em execução"
+
+#: html/user/server_status.php:65
+msgid "Disabled"
+msgstr "Desabilitado"
+
+#: html/user/server_status.php:103
+msgid "Project status"
+msgstr "Estado do projecto"
+
+#: html/user/server_status.php:112
+msgid "Program"
+msgstr "Programa"
+
+#: html/user/server_status.php:112
+msgid "Host"
+msgstr "Anfitrião"
+
+#: html/user/server_status.php:135
+msgid "Computing status"
+msgstr "Estado da computação"
+
+#: html/user/server_status.php:146
+msgid "Users"
+msgstr "Utilizadores"
+
+#: html/user/server_status.php:161
+msgid "Tasks by application"
+msgstr "Tarefas por aplicação"
+
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Tempos decorridos das últimas 100 tarefas em horas: média, min, máx"
+
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Utilizadores nas últimas 24 horas"
+
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Versão do esquema da Base de Dados:"
+
+#: html/user/show_host_detail.php:40
+msgid "Computer %1"
+msgstr "Computador %1"
+
+#: html/user/stats.php:21
+msgid "Statistics and leaderboards"
+msgstr "Estatísticas e líderes"
+
+#: html/user/stats.php:30
+msgid "Statistics for %1"
+msgstr "Estatísticas para %1"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "Top - Participantes"
+
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "Top - Equipas"
+
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "Top - Computadores"
+
+#: html/user/stats.php:53
+msgid ""
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Mais estatísticas detalhadas para %1 e outros projetos com base no BOINC estão disponíveis em vários websites:"
+
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Pode também obter as suas estatísticas atuais no formato de uma \"imagem de assinatura\":"
+
+#: html/user/stats.php:59
+msgid ""
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Adicionalmente pode obter as suas estatísticas individuais resumidas através de todos os projetos BOINC de vários sites; veja a sua %1página principal%2."
+
+#: html/user/team_admins.php:36
+msgid "Remove Team Admin status from this member"
+msgstr "Remover privilégios de administração da equipa deste membro"
+
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
+msgid "Add or remove Team Admins"
+msgstr "Adicionar ou remover Administradores da Equipa"
+
+#: html/user/team_admins.php:43
+msgid "You can select team members as 'Team Admins'. Team Admins can:"
+msgstr "Pode seleccionar membros como 'Administradores da Equipa'. Administradores da Equipa podem:"
+
+#: html/user/team_admins.php:45
+msgid "Edit team information (name, URL, description, country)"
+msgstr "Editar informações da equipa (nome, URL, descrição, país)"
+
+#: html/user/team_admins.php:46
+msgid "View the team's join/quit history"
+msgstr "Ver o histórico de entradas/saídas da equipa"
+
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Enviar mensagens à equipa"
+
+#: html/user/team_admins.php:48
+msgid ""
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Moderar o fórum da equipa, se existir (administradores recebem notificações por e-mail de eventos de moderação e publicações de cruz vermelha)"
+
+#: html/user/team_admins.php:50
+msgid "Team Admins cannot:"
+msgstr "Administradores da Equipa não podem:"
+
+#: html/user/team_admins.php:52
+msgid "Change the team founder"
+msgstr "Mudar o fundador da equipa"
+
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
+msgid "Remove members"
+msgstr "Remover membros"
+
+#: html/user/team_admins.php:56
+msgid "If a Team Admin quits the team, they cease to be a Team Admin."
+msgstr "Se um Administrador da Equipa sair da mesma, deixa de ser um Administrador da Equipa."
+
+#: html/user/team_admins.php:57
+msgid ""
+"We recommend that you select only people you know and trust very well as "
+"Team Admins."
+msgstr "Nós recomendados que selecione apenas pessoas que conheça e confie para Administradores da Equipa."
+
+#: html/user/team_admins.php:62
+msgid "There are currently no Team Admins"
+msgstr "Atualmente não existem Administradores da Equipa"
+
+#: html/user/team_admins.php:64
+msgid "Current Team Admins"
+msgstr "Administradores Atuais da Equipa"
+
+#: html/user/team_admins.php:65
+msgid "Became Team Admin on"
+msgstr "Torne a opção de Administrador da Equipa ativo"
+
+#: html/user/team_admins.php:80
+msgid "Add Team Admin"
+msgstr "Adicionar Administrador da Equipa"
+
+#: html/user/team_admins.php:81
+msgid "Email address of team member:"
+msgstr "Endereço de e-mail do membro da equipa:"
+
+#: html/user/team_admins.php:93
+msgid "failed to remove admin"
+msgstr "falhou a remoção do administrador"
+
+#: html/user/team_admins.php:102
+msgid "User is not member of team"
+msgstr "O utilizador não é membro da equipa"
+
+#: html/user/team_admins.php:104
+msgid "%1 is already an admin of %2"
+msgstr "%1 já é um administrador de %2"
+
+#: html/user/team_admins.php:108
+msgid "Couldn't add admin"
+msgstr "Não foi possível adicionar administrador"
+
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
+msgid "No such team"
+msgstr "Não existe essa equipa"
+
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
+msgid "no such team"
+msgstr "não existe essa equipa"
+
+#: html/user/team_change_founder_action.php:40
+msgid "User is not a member of %1"
+msgstr "O utilizador não é membro de %1"
+
+#: html/user/team_change_founder_action.php:43
+msgid "Changing founder of %1"
+msgstr "A mudar fundador de %1"
+
+#: html/user/team_change_founder_action.php:45
+msgid "%1 is now founder of %2"
+msgstr "%1 é agora fundador de %2"
+
+#: html/user/team_change_founder_form.php:39
+msgid "Change founder of %1"
+msgstr "Mudar fundador de %1"
+
+#: html/user/team_change_founder_form.php:45
+msgid ""
+"Team member %1 requested this team's foundership on %2, but left the team, "
+"thus canceling the request."
+msgstr "O membro %1 da equipa solicitou a liderança desta equipa em %2, mas deixou a equipa e logo o pedido foi cancelado."
+
+#: html/user/team_change_founder_form.php:51
+msgid ""
+"Team member %1 has requested this team's foundership. This may be because "
+"you left the team or haven't had contact with the team for a long time."
+msgstr "O membro %1 da equipa solicitou a liderança desta equipa. Isto poderá ter acontecido porque você deixou a equipa ou não contacta a equipa há longo período de tempo."
+
+#: html/user/team_change_founder_form.php:57
+msgid "decline request"
+msgstr "declinar pedido"
+
+#: html/user/team_change_founder_form.php:60
+msgid ""
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Se não declinar o pedido de %1, 2% terá a opção de assumir a liderança da equipa.<br/><br/>\nPara aceitar o pedido, atribua a liderança a %3 usando o formulário abaixo."
+
+#: html/user/team_change_founder_form.php:68
+msgid "No transfer request is pending."
+msgstr "Não existe pedido de transferência pendente."
+
+#: html/user/team_change_founder_form.php:71
+msgid ""
+"To assign foundership of this team to another member, check the box next to "
+"member name and click %1Change founder%2 below."
+msgstr "Para atribuir a liderança desta equipa a outra membro, verifique a caixa ao lado do nome do membro e clique %1Mudar fundador%2 abaixo."
+
+#: html/user/team_change_founder_form.php:81
+msgid "New founder?"
+msgstr "Novo fundador?"
+
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
+msgid "Change founder"
+msgstr "Mudar fundador"
+
+#: html/user/team_change_founder_form.php:116
+msgid "There are no users to transfer team to."
+msgstr "Não existem utilizadores para transferir de equipa."
+
+#: html/user/team_create_action.php:35
+msgid "You must choose a non-blank team name"
+msgstr "Não pode escolher um nome de equipa em branco"
+
+#: html/user/team_create_action.php:40
+msgid "A team named %1 already exists - try another name"
+msgstr "Uma equipa chamada %1 já existe - tente outro nome"
+
+#: html/user/team_create_action.php:60
+msgid "Could not create team - please try later."
+msgstr "Não foi possível criar a equipa - por favor tente mais tarde."
+
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
+msgid "Create a team"
+msgstr "Criar uma equipa"
+
+#: html/user/team_create_form.php:31
+msgid ""
+"You belong to %1. You must %2quit this team%3 before creating a new one."
+msgstr "Pertence a %1. Tem que %2deixar esta equipa%3 antes de criar uma nova."
+
+#: html/user/team_delta.php:66
+msgid "Not founder or admin"
+msgstr "Não é fundador ou administrador"
+
+#: html/user/team_delta.php:73
+msgid "Team history for %1"
+msgstr "Histórico da equipa para %1"
+
+#: html/user/team_delta.php:77
+msgid "When"
+msgstr "Quando"
+
+#: html/user/team_delta.php:78
+msgid "User"
+msgstr "Utilizador"
+
+#: html/user/team_delta.php:79
+msgid "Action"
+msgstr "Ação"
+
+#: html/user/team_delta.php:80
+msgid "Total credit at time of action"
+msgstr "Créditos totais na altura da ação"
+
+#: html/user/team_edit_action.php:55
+msgid "bad country"
+msgstr "país incorreto"
+
+#: html/user/team_edit_action.php:61
+msgid "The name '%1' is being used by another team."
+msgstr "O nome '%1' já está em uso por outra equipa."
+
+#: html/user/team_edit_action.php:64
+msgid "Must specify team name"
+msgstr "Tem que especificar um nome para a equipa"
+
+#: html/user/team_edit_action.php:92
+msgid "Could not update team - please try again later."
+msgstr "Não foi possível atualizar a equipa - por favor tente mais tarde."
+
+#: html/user/team_edit_form.php:35
+msgid "Edit %1"
+msgstr "Editar %1"
+
+#: html/user/team_edit_form.php:36
+msgid "Update team info"
+msgstr "Atualizar informações da equipa"
+
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Membros de %1"
+
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
+
+#: html/user/team_email_list.php:93
+msgid "Show as plain text"
+msgstr "Mostrar como texto simples"
+
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
+msgid "Create Message Board"
+msgstr "Criar Fórum"
+
+#: html/user/team_forum.php:31
+msgid "You may create a message board for use by %1."
+msgstr "Pode criar um fórum para utilização por %1."
+
+#: html/user/team_forum.php:33
+msgid "Only team members will be able to post."
+msgstr "Apenas membros da equipa podem publicar."
+
+#: html/user/team_forum.php:34
+msgid "At your option, only members will be able to read."
+msgstr "Por sua opção, apenas membros poderão ler."
+
+#: html/user/team_forum.php:35
+msgid "You and your Team Admins will have moderator privileges."
+msgstr "Você e os Administradores da Equipa terão privilégios de moderação."
+
+#: html/user/team_forum.php:42
+msgid "Create a message board for %1"
+msgstr "Criar um fórum para %1"
+
+#: html/user/team_forum.php:50
+msgid "Team already has a message board"
+msgstr "A equipa já tem um fórum"
+
+#: html/user/team_forum.php:61
+msgid "Team Message Board"
+msgstr "Fórum de Equipa"
+
+#: html/user/team_forum.php:78
+msgid "Minimum time between posts (seconds)"
+msgstr "Tempo mínimo entres publicações (segundos)"
+
+#: html/user/team_forum.php:81
+msgid "Minimum total credit to post"
+msgstr "Total de créditos mínimos para publicar"
+
+#: html/user/team_forum.php:84
+msgid "Minimum average credit to post"
+msgstr "Média de créditos mínimos para publicar"
+
+#: html/user/team_forum.php:87
+msgid "Submit"
+msgstr "Submeter"
+
+#: html/user/team_forum.php:97
+msgid "Remove your team's message board."
+msgstr "Remover o fórum da sua equipa."
+
+#: html/user/team_forum.php:105
+msgid "Really remove message board?"
+msgstr "Tem a certeza que quer remover o fórum?"
+
+#: html/user/team_forum.php:106
+msgid ""
+"Are you sure you want to remove your team's message board? All threads and "
+"posts will be permanently removed. (You may, however, create a new message "
+"board later)."
+msgstr "Tem a certeza que quer remover o fórum da sua equipa? Todos os tópicos e publicações serão permanentemente removidos. (Pode, no entanto, criar um novo fórum mais tarde)."
+
+#: html/user/team_forum.php:108
+msgid "Yes - remove message board"
+msgstr "Sim - remover fórum"
+
+#: html/user/team_forum.php:129
+msgid "Message board removed"
+msgstr "Fórum removido"
+
+#: html/user/team_forum.php:132
+msgid ""
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "O fórum da sua equipa foi removido. Pode agora %1criar um novo%2."
+
+#: html/user/team_forum.php:151
+msgid "Team Message Board Updated"
+msgstr "Fórum da Equipa Atualizado"
+
+#: html/user/team_forum.php:152
+msgid "Update successful"
+msgstr "Atualização com sucesso"
+
+#: html/user/team_forum.php:155
+msgid "Update failed"
+msgstr "Atualização falhada"
+
+#: html/user/team_forum.php:162
+msgid "Team has no forum"
+msgstr "A equipa não tem fórum"
+
+#: html/user/team_founder_transfer_action.php:38
+msgid "You must be a member of a team to access this page."
+msgstr "Tem que ser um membro de uma equipa para aceder a esta página."
+
+#: html/user/team_founder_transfer_action.php:100
+msgid "Requesting foundership of %1"
+msgstr "Pedindo liderança de %1"
+
+#: html/user/team_founder_transfer_action.php:108
+msgid ""
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "O fundador atual foi notificado do seu pedido por e-mail e mensagem privada.<br/><br/>\nSe o fundador não responder num prazo de 60 dias, terá permissão para se tornar o fundador."
+
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
+msgid "Foundership request not allowed now"
+msgstr "Pedido de liderança não permitido atualmente"
+
+#: html/user/team_founder_transfer_action.php:119
+msgid "Assumed foundership of %1"
+msgstr "Assumir liderança de %1"
+
+#: html/user/team_founder_transfer_action.php:121
+msgid ""
+"Congratulations, you are now the founder of team %1. Go to %2Your Account "
+"page%3 to find the Team Admin options."
+msgstr "Parabéns, é agora o fundador da equipa %1. Vá à %2Página da sua Conta%3 para verificar as opções de Administração da Equipa."
+
+#: html/user/team_founder_transfer_action.php:130
+msgid "Decline founder change request"
+msgstr "Declinar pedido de mudança de fundador"
+
+#: html/user/team_founder_transfer_action.php:137
+msgid "The foundership request from %1 has been declined."
+msgstr "O pedido de liderança de %1 foi declinado."
+
+#: html/user/team_founder_transfer_action.php:140
+msgid "There were no foundership requests."
+msgstr "Não existem pedidos de liderança."
+
+#: html/user/team_founder_transfer_action.php:144
+msgid "undefined action %1"
+msgstr "ação indefinida %1"
+
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
+msgid "Return to team page"
+msgstr "Regressar à página da equipa"
+
+#: html/user/team_founder_transfer_form.php:30
+msgid "You need to be a member of a team to access this page."
+msgstr "Tem que ser um membro duma equipa para aceder a esta página."
+
+#: html/user/team_founder_transfer_form.php:33
+msgid "Request foundership of %1"
+msgstr "Solicitar liderança de %1"
+
+#: html/user/team_founder_transfer_form.php:40
+msgid "You are now founder of team %1."
+msgstr "É agora o fundador da equipa %1."
+
+#: html/user/team_founder_transfer_form.php:46
+msgid "You requested the foundership of %1 on %2."
+msgstr "Solicitou a liderança de %1 em %2."
+
+#: html/user/team_founder_transfer_form.php:49
+msgid ""
+"60 days have elapsed since your request, and the founder has not responded. "
+"You may now assume foundership by clicking here:"
+msgstr "60 dias passaram desde o seu pedido e o fundador não respondeu. Pode agora assumir a liderança clicando aqui:"
+
+#: html/user/team_founder_transfer_form.php:52
+msgid "Assume foundership"
+msgstr "Assumir liderança"
+
+#: html/user/team_founder_transfer_form.php:56
+msgid ""
+"The founder was notified of your request. If he/she does not respond by %1 "
+"you will be given an option to become founder."
+msgstr "O fundador foi notificado do seu pedido. Se ele/ela não responder por %1 ser-lhe-à dado a opção de se tornar fundador."
+
+#: html/user/team_founder_transfer_form.php:62
+msgid ""
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
+"                       Are you sure you want to request foundership?"
+msgstr "Se o fundador da equipa não está ativo e quiser assumir o papel de fundador, clique no botão abaixo. Será enviado um e-mail detalhado ao fundador atual com o seu pedido, e o mesmo poderá transferir-lhe a liderança ou declinar o seu pedido. Se o fundador não responder num prazo de 60 dias, terá permissão para se tornar o fundador.<br/><br/>\nTem a certeza que quer solicitar a liderança?"
+
+#: html/user/team_founder_transfer_form.php:67
+msgid "Request foundership"
+msgstr "Pedir liderança"
+
+#: html/user/team_founder_transfer_form.php:76
+msgid "Founder change has already been requested by %1 on %2."
+msgstr "A alteração de fundador já foi solicitada por %1 em %2."
+
+#: html/user/team_founder_transfer_form.php:79
+msgid ""
+"A foundership change was requested during the last 90 days, so new requests "
+"are not allowed. Please try again later."
+msgstr "Uma mudança de liderança foi solicitada durante os últimos 90 dias, por isso novos pedidos não são permitidos. Por favor, tente mais tarde."
+
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
+msgid "The team %1 is not joinable."
+msgstr "Não pode aderir à equipa %1."
+
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
+msgid "Already a member"
+msgstr "Já é membro"
+
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
+msgid "You are already a member of %1."
+msgstr "Já é membro de %1."
+
+#: html/user/team_join_action.php:42
+msgid "Joined %1"
+msgstr "Aderiu a %1"
+
+#: html/user/team_join_action.php:43
+msgid "You have joined %1."
+msgstr "Aderiu a %1."
+
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Não foi possível aderir à equipa - por favor, tente novamente mais tarde."
+
+#: html/user/team_join_form.php:35
+msgid "Please note:"
+msgstr "Por favor tenha atenção:"
+
+#: html/user/team_join_form.php:37
+msgid "Joining a team gives its founder access to your email address."
+msgstr "Juntar-se a uma equipa dá ao fundador acesso ao seu endereço de e-mail."
+
+#: html/user/team_join_form.php:38
+msgid "Joining a team does not affect your account's credit."
+msgstr "Juntar-se a uma equipa não afecta os créditos da sua conta."
+
+#: html/user/team_join_form.php:45
+msgid "Join team"
+msgstr "Aderir à equipa"
+
+#: html/user/team_lookup.php:88
+msgid "Search Results"
+msgstr "Resultados da Pesquisa"
+
+#: html/user/team_lookup.php:90
+msgid "Search results for '%1'"
+msgstr "Pesquisar resultados para '%1'"
+
+#: html/user/team_lookup.php:92
+msgid "You may view these teams' members, statistics, and information."
+msgstr "Pode ver os membros, estatísticas e informações das equipas."
+
+#: html/user/team_lookup.php:102
+msgid "More than 100 teams match your search. The first 100 are shown."
+msgstr "Mais de 100 equipas correspondem à sua procura. As primeiras 100 serão mostradas."
+
+#: html/user/team_lookup.php:108
+msgid ""
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Fim dos resultados. %1 Se não conseguiu encontrar a equipa que procurava, pode %2criar uma equipa%3 você mesmo."
+
+#: html/user/team_manage.php:28
+msgid "Team administration for %1"
+msgstr "Administrador da equipa para %1"
+
+#: html/user/team_manage.php:31
+msgid "Edit team info"
+msgstr "Editar informações da equipa"
+
+#: html/user/team_manage.php:32
+msgid "Change team name, URL, description, type, or country"
+msgstr "Mudar nome da equipa, URL, descrição, tipo ou país"
+
+#: html/user/team_manage.php:35
+msgid "Member list:"
+msgstr "Lista de membros:"
+
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
+msgid "HTML"
+msgstr "HTML"
+
+#: html/user/team_manage.php:37
+msgid "text"
+msgstr "texto"
+
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Ver informação do membro"
+
+#: html/user/team_manage.php:40
+msgid "View change history:"
+msgstr "Ver histórico de alterações:"
+
+#: html/user/team_manage.php:43
+msgid "See when members joined or quit this team"
+msgstr "Ver quando os membros se juntaram ou saíram da equipa"
+
+#: html/user/team_manage.php:54
+msgid "Respond to foundership request."
+msgstr "Responder ao pedido de liderança."
+
+#: html/user/team_manage.php:54
+msgid "If you don't respond by %1, %2 may assume foundership of this team."
+msgstr "Se não responder por %1, %2 pode assumir a liderança desta equipa."
+
+#: html/user/team_manage.php:59
+msgid "Remove inactive or unwanted members from this team"
+msgstr "Remover membros inactivos ou indesejáveis desta equipa"
+
+#: html/user/team_manage.php:61
+msgid "Transfer foundership to another member"
+msgstr "Transferir liderança para outro membro"
+
+#: html/user/team_manage.php:62
+msgid "Add/remove Team Admins"
+msgstr "Adicionar/remover Administradores da Equipa"
+
+#: html/user/team_manage.php:63
+msgid "Give selected team members Team Admin privileges"
+msgstr "Dar aos membros selecionados privilégios de Administração da Equipa"
+
+#: html/user/team_manage.php:65
+msgid "Remove team"
+msgstr "Remover equipa"
+
+#: html/user/team_manage.php:66
+msgid "Allowed only if team has no members"
+msgstr "Permitido apenas se a equipa não tiver membros"
+
+#: html/user/team_manage.php:68
+msgid "Create or manage a team message board"
+msgstr "Criar ou gerir um fórum da equipa"
+
+#: html/user/team_manage.php:75
+msgid ""
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Para ter esta equipa criada em todos os projetos BOINC (agora e futuramente) pode criá-la numa %1equipa ampla do BOINC%2."
+
+#: html/user/team_manage.php:77
+msgid ""
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "Administradores de Equipa são encorajados a juntar-se e participar no grupo %1fundadores de equipas do boinc%2 no Google."
+
+#: html/user/team_manage.php:93
+msgid "Can't delete non-empty team"
+msgstr "Não é possível apagar uma equipa que não  esteja vazia"
+
+#: html/user/team_manage.php:97
+msgid "Team %1 deleted"
+msgstr "Equipa %1 apagada"
+
+#: html/user/team_members.php:38
+msgid "Limit exceeded:  Can only display the first 1000 members."
+msgstr "Limite excedido: Só é possível mostrar os primeiros 1000 membros."
+
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 participantes podem formar %2equipas%3."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Só pode pertencer a uma equipa. Pode aderir ou sair de uma equipa a qualquer altura."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Cada equipa tem um %1fundador%2 que pode:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "editar o nome da equipa e descrição"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "adicionar ou remover administradores da equipa"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "remover membros da equipa"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "acabar com a equipa se esta não tiver membros"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Para aderir a uma equipa, visite a página da equipa e clique em %1Aderir a esta equipa%2."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Encontrar uma equipa"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Todas as equipas"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 equipas"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Criar uma nova equipa"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Se não encontrar uma equipa que seja adequada a si, pode %1criar uma equipa%2."
+
+#: html/user/team_quit_action.php:34
+msgid "Unable to quit team"
+msgstr "Não foi possivel sair da equipa"
+
+#: html/user/team_quit_action.php:35
+msgid "Team doesn't exist, or you don't belong to it."
+msgstr "A equipa não existe ou não pertence a ela."
+
+#: html/user/team_quit_form.php:33
+msgid "Quit %1"
+msgstr "Sair %1"
+
+#: html/user/team_quit_form.php:34
+msgid ""
+"<strong>Please note before quitting a team:</strong>\n"
+"         <ul>\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
+"         </ul>"
+msgstr "<strong>Tenha em atenção antes de sair de uma equipa:</strong>\n<ul>\n<li>Se sair de uma equipa, pode mais tarde juntar-se novamente, ou juntar-se a outra equipa que desejar\n<li>Sair de uma equipa não afecta de maneira nenhuma os seus créditos pessoais.\n</ul>"
+
+#: html/user/team_quit_form.php:42
+msgid "Quit Team"
+msgstr "Sair da Equipa"
+
+#: html/user/team_remove_inactive_action.php:33
+msgid "Removing users from %1"
+msgstr "Removendo utilizadores de %1"
+
+#: html/user/team_remove_inactive_action.php:41
+msgid "%1 is not a member of %2"
+msgstr "%1 não é membro de %2"
+
+#: html/user/team_remove_inactive_action.php:44
+msgid "%1 has been removed"
+msgstr "%1 foi removido"
+
+#: html/user/team_remove_inactive_form.php:34
+msgid "Remove members from %1"
+msgstr "Remover membros de %1"
+
+#: html/user/team_remove_inactive_form.php:42
+msgid "Remove?"
+msgstr "Remover?"
+
+#: html/user/team_remove_inactive_form.php:43
+msgid "Name (ID)"
+msgstr "Nome (ID)"
+
+#: html/user/team_remove_inactive_form.php:68
+msgid "No members are eligible for removal."
+msgstr "Não existem membros qualificados para remoção."
+
+#: html/user/team_remove_inactive_form.php:71
+msgid "Remove users"
+msgstr "Remover utilizadores"
+
+#: html/user/team_search.php:76
+msgid "Team name"
+msgstr "Nome da equipa"
+
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Validado?"
+
+#: html/user/team_search.php:115
+msgid "Team search results"
+msgstr "Resultados da pesquisa de equipas"
+
+#: html/user/team_search.php:117
+msgid "No teams were found matching your criteria. Try another search."
+msgstr "Não foram encontradas equipas correspondentes aos seus critérios de pesquisa. Tenta outra pesquisa."
+
+#: html/user/team_search.php:119
+msgid "Or you can %1create a new team%2."
+msgstr "Ou pode %1criar uma nova equipa%2."
+
+#: html/user/team_search.php:123
+msgid ""
+"The following teams match one or more of your search criteria.\n"
+"            To join a team, click its name to go to the team page,\n"
+"               then click %1Join this team%2."
+msgstr "As seguintes equipas correspondem a um ou mais critérios da sua pesquisa.\nPara se juntar a uma equipa, carregue no seu nome para ir á página da equipa,\ndepois carregue em %1Juntar-se a esta equipa%2."
+
+#: html/user/team_search.php:130
+msgid "Change your search"
+msgstr "Mudar a sua pesquisa"
+
+#: html/user/team_search.php:204
+msgid ""
+"You can team up with other people with similar interests, or from the same "
+"country, company, or school."
+msgstr "Pode juntar-se a outras pessoas com interesses similares, ou do mesmo país, empresa ou escola."
+
+#: html/user/team_search.php:206
+msgid "Use this form to find teams that might be right for you."
+msgstr "Use este formulário para encontrar equipas que possam ser adequadas para si."
+
+#: html/user/team_search.php:211
+msgid "%1I'm not interested%2 in joining a team right now."
+msgstr "%1Não estou interessado%2 em juntar-me a uma equipa neste momento."
+
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
+msgid "Limit exceeded - Sorry, first %1 items only"
+msgstr "Limite excedido - Pedimos desculpa, os primeiros %1 itens apenas"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
+msgid "Top hosts"
+msgstr "Top - Anfitriões"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
+msgid "Top %1 teams"
+msgstr "Top %1 equipas"
+
+#: html/user/top_teams.php:111
+msgid "There are no %1 teams"
+msgstr "Não existem %1 equipas"
+
+#: html/user/top_users.php:57
+msgid "Participant since"
+msgstr "Participante desde"
+
+#: html/user/uotd.php:32
+msgid "No user of the day has been chosen."
+msgstr "Não foi escolhido um utilizador do dia."
+
+#: html/user/uotd.php:36
+msgid "User of the Day for %1: %2"
+msgstr "Utilizador do Dia para %1: %2"
+
+#: html/user/user_search.php:51
+msgid "Filters"
+msgstr "Filtros"
+
+#: html/user/user_search.php:53
+msgid "User name starts with"
+msgstr "Nome de utilizador começa com"
+
+#: html/user/user_search.php:56
+msgid "Any"
+msgstr "Qualquer"
+
+#: html/user/user_search.php:59
+msgid "With profile?"
+msgstr "Com perfil?"
+
+#: html/user/user_search.php:60 html/user/user_search.php:65
+msgid "Either"
+msgstr "Também"
+
+#: html/user/user_search.php:64
+msgid "On a team?"
+msgstr "Numa equipa?"
+
+#: html/user/user_search.php:69
+msgid "Ordering"
+msgstr "Ordenando"
+
+#: html/user/user_search.php:70
+msgid "Decreasing sign-up time"
+msgstr "Diminuindo o tempo de inscrição"
+
+#: html/user/user_search.php:71
+msgid "Decreasing average credit"
+msgstr "Média de créditos por ordem decrescente"
+
+#: html/user/user_search.php:72
+msgid "Decreasing total credit"
+msgstr "Créditos totais por ordem decrescente"
+
+#: html/user/user_search.php:87
+msgid "search string must be at least 3 characters"
+msgstr "pesquisar string que tenha no mínimo 3 caracteres "
+
+#: html/user/user_search.php:121
+msgid "User search results"
+msgstr "Resultados da pesquisa de utilizador"
+
+#: html/user/user_search.php:133
+msgid "Joined"
+msgstr "Aderiu"
+
+#: html/user/user_search.php:143
+msgid "No users match your search criteria."
+msgstr "Nenhum utilizador encontrado com os critérios especificados."
+
+#: html/user/userw.php:35
+msgid "User not found!"
+msgstr "Utilizador não encontrado!"
+
+#: html/user/userw.php:44
+msgid "Account Data<br/>for %1<br/>Time:"
+msgstr "Dados da Conta<br>para %1<br/>Tempo:"
+
+#: html/user/userw.php:47
+msgid "Team:"
+msgstr "Equipa:"
+
+#: html/user/userw.php:48
+msgid "Team TotCred:"
+msgstr "Créditos Totais da Equipa:"
+
+#: html/user/userw.php:49
+msgid "Team AvgCred:"
+msgstr "Média de Créditos da Equipa:"
+
+#: html/user/userw.php:51
+msgid "Team: None"
+msgstr "Equipa: Nenhuma"
+
+#: html/user/validate_email_addr.php:30
+msgid "Validate BOINC email address"
+msgstr "Validar endereço de e-mail do BOINC "
+
+#: html/user/validate_email_addr.php:31
+msgid ""
+"Please visit the following link to validate the email address of your %1 "
+"account:"
+msgstr "Por favor visite o seguinte link para validar o endereço de e-mail da sua conta %1:"
+
+#: html/user/validate_email_addr.php:34
+msgid "Validate email sent"
+msgstr "E-mail de validação enviado"
+
+#: html/user/validate_email_addr.php:35
+msgid ""
+"An email has been sent to %1. Visit the link it contains to validate your "
+"email address."
+msgstr "Um e-mail foi enviado para %1. Visite o link contido para validar o seu endereço de e-mail."
+
+#: html/user/validate_email_addr.php:44
+msgid "No such user."
+msgstr "Não existe tal utilizador."
+
+#: html/user/validate_email_addr.php:49
+msgid "Error in URL data - can't validate email address"
+msgstr "Erro de dados no URL - não é possível validar o endereço de e-mail"
+
+#: html/user/validate_email_addr.php:54
+msgid "Database update failed - please try again later."
+msgstr "Atualização da base de dados falhada - por favor, tente mais tarde."
+
+#: html/user/validate_email_addr.php:57
+msgid "Validate email address"
+msgstr "Validar endereço de e-mail"
+
+#: html/user/validate_email_addr.php:58
+msgid "The email address of your account has been validated."
+msgstr "O endereço de e-mail da sua conta foi validado."
+
+#: html/user/view_profile.php:38
+msgid "This user has no profile"
+msgstr "Este utilizador não tem perfil"
+
+#: html/user/view_profile.php:56
+msgid "Profile: %1"
+msgstr "Perfil: %1"
+
+#: html/user/view_profile.php:65
+msgid "Account data"
+msgstr "Dados da conta"
+
+#: html/user/weak_auth.php:52
+msgid ""
+"You can access your account either by using your email address and password,\n"
+"    or by using an assigned 'account key'.\n"
+"    Your account key is:"
+msgstr "Pode aceder à sua conta usando o endereço de e-mail e \npalavra-passe,\nou então usando a 'chave da conta' assignada.\nA sua chave da conta é:"
+
+#: html/user/weak_auth.php:57
+msgid "This key can be used to:"
+msgstr "esta chave pode ser usada para:"
+
+#: html/user/weak_auth.php:59
+msgid "log in to your account on the web"
+msgstr "entre com a sua conta na web"
+
+#: html/user/weak_auth.php:61
+msgid ""
+"to attach a computer to your account without using the BOINC Manager.\n"
+"       To do so, install BOINC,\n"
+"       create a file named %1 in the BOINC\n"
+"       data directory, and set its contents to:"
+msgstr "para adicionar um computador à sua conta sem ter de usar o Gestor BOINC.\nPara o fazer, instale o BOINC,\ncrie um ficheiro chamado %1 na directoria de dados\ndo BOINC e, defina os seus conteúdos para:"
+
+#: html/user/weak_auth.php:73
+msgid "Weak account key"
+msgstr "Palavra chave fraca"
+
+#: html/user/weak_auth.php:74
+msgid ""
+"Your 'weak account key' can be used to attach computers to your account\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
+"    If you want to attach untrusted or insecure computers to your account,\n"
+"    do so using your weak account key.\n"
+"    Your weak account key is:"
+msgstr "A sua 'chave de conta fraca' pode ser utilizada para adicionar computadores à sua conta \ncomo descrito acima mas, não pode ser usada para se ligar à sua conta ou alterá-la de qualquer maneira.\nSe quiser adicionar computadores inseguros, ou que não sejam de confiança à sua conta, faça-o usando a sua chave de conta fraca.\nA sua chave de conta fraca é:"
+
+#: html/user/weak_auth.php:81
+msgid ""
+"If you change your password, your weak account key changes, and your "
+"previous weak account key becomes invalid."
+msgstr "Se mudar a sua palavra passe, a sua chave fraca mudará e a sua chave fraca anterior torna-se inválida"
+
+#: html/user/workunit.php:32
+msgid "can't find workunit"
+msgstr "não foi possível encontrar unidade de trabalho "
+
+#: html/user/workunit.php:35
+msgid "Workunit %1"
+msgstr "Unidade de trabalho %1"
+
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "aplicação"
+
+#: html/user/workunit.php:43
+msgid "canonical result"
+msgstr "resultado canónico"
+
+#: html/user/workunit.php:46
+msgid "granted credit"
+msgstr "crédito garantido"
+
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Tarefas em progresso"
+
+#: html/user/workunit.php:55
+msgid "suppressed pending completion"
+msgstr "conclusão pendente suprimida"
+
+#: html/user/workunit.php:58
+msgid "minimum quorum"
+msgstr "quórum mínimo "
+
+#: html/user/workunit.php:59
+msgid "initial replication"
+msgstr "replicação inicial"
+
+#: html/user/workunit.php:60
+msgid "max # of error/total/success tasks"
+msgstr "máximo # de erros/totais/tarefas com sucesso"
+
+#: html/user/workunit.php:64
+msgid "errors"
+msgstr "erros"
+
+#: html/user/workunit.php:67
+msgid "validation"
+msgstr "validação"
+
+#: html/user/workunit.php:67
+msgid "Pending"
+msgstr "Pendente"
+
+#: html/project.sample/project.inc:95
+msgid "Generated"
+msgstr "Gerado"
+
+#: html/project.sample/project.inc:126
+msgid "Your personal background."
+msgstr "O seu fundo pessoal."
+
+#: html/project.sample/project.inc:130
+msgid ""
+"Tell us about yourself. You could tell us where you're from, your age, "
+"occupation, hobbies, or anything else about yourself."
+msgstr "Fale-nos sobre si. Diga-nos de onde é, a sua idade, ocupação, passatempos ou algo mais sobre si."
+
+#: html/project.sample/project.inc:134
+msgid "Your opinions about %1"
+msgstr "As suas opiniões acerca de %1"
+
+#: html/project.sample/project.inc:138
+msgid ""
+"Tell us your thoughts about %1<ol>\n"
+"    <li>Why do you run %1?\n"
+"    <li>What are your views about the project?\n"
+"    <li>Any suggestions?\n"
+"    </ol>"
+msgstr "Diga-nos as suas opiniões acerca %1<ol>\n<li>Porque executa %1?\n<li>O seu ponto de vista acerca do projeto\n <li>Sugestões?\n </ol>"
+
+#: html/project.sample/project_specific_prefs.inc:57
+msgid "Color scheme for graphics"
+msgstr "Esquema de cores para os gráficos"
+
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
+msgid "Maximum CPU % for graphics%10 ... 100%2"
+msgstr "Máximo do CPU % para os gráficos%10... 100%2"
+
+#: html/project.sample/project_specific_prefs.inc:60
+msgid "Run only the selected applications"
+msgstr "Executar apenas as aplicações seleccionadas"
+
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Obter tarefas apenas para certas aplicações. Útil para se focar em aplicações específicas, ou para exclui-las,"
+
+#: html/project.sample/project_specific_prefs.inc:62
+msgid ""
+"If no work for selected applications is available, accept work from other "
+"applications?"
+msgstr "Se não houver trabalho para as aplicações selecionadas, aceitar trabalho de outras aplicações?"
+
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Utilizar aplicações não-gráficas mais rápidas se disponíveis?"
+
+#: html/project.sample/project_specific_prefs.inc:94
+msgid "(all applications)"
+msgstr "(todas as aplicações)"
+
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Sem limite"
+
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Máximo # de trabalhos para este projeto"
+
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Máximo # de CPUs para este projeto"
+
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "Máximo # trabalhos"
+
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "Máximo # CPUs"
diff --git a/html/languages/translations/ru.po b/html/languages/translations/ru.po
index e5e9889..7786654 100644
--- a/html/languages/translations/ru.po
+++ b/html/languages/translations/ru.po
@@ -1,372 +1,602 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-08-17 17:09+0000\n"
-"Last-Translator: Nikolay Saharov <saharovna at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ru\n"
+# 
+# Translators:
+# Dan <mutari.dirk at gmail.com>, 2015
+# Ivan Nazarenko <nasaivan at mail.ru>, 2017
+# Malyanov Evgeniy <flange465 at gmail.com>, 2015
+# Николай Сахаров <saharovna at gmail.com>, 2015
+# Николай Сахаров <saharovna at gmail.com>, 2016-2017
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-15 14:16+0000\n"
+"Last-Translator: Николай Сахаров <saharovna at gmail.com>\n"
+"Language-Team: Russian (http://www.transifex.com/boinc/boinc/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.5.0\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1408295381.0\n"
 
-# The name of this language in this language
-# Имя языка в этом файле
 msgid "LANG_NAME_NATIVE"
 msgstr "Русский"
 
-# The name of this language in an international language (English)
-# Имя языка в этом файле на интернациональном языке (английском)
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Russian"
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Пригласительный код"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Для создания учётной записи необходим действительный пригласительный код."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Имя"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Идентифицирует Вас на нашем web-сайте. Введите ваше настоящее имя или псевдоним."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "Адрес электронной почты"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Должен быть действительным адресом в форме 'name at domain'."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Пароль"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Должно быть по крайней мере %1 символов"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Подтвердите пароль"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "Страна"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Выберите страну, которую представляете, если хотите."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Почтовый индекс или ZIP-код"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Необязательно"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Создать учётную запись"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "Адрес email:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "забыли адрес email?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Пароль:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "забыли пароль?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Оставаться авторизованным"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Войти"
+
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "Жирный текст: [b]текст[/b]  (alt+b)"
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr "Наклонный текст: [i]текст[/i]  (alt+i)"
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "Подчёркнутый текст: [u]текст[/u]  (alt+u)"
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Зачёркнутый текст: [s]текст[/s] (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "Текст цитаты: [quote]текст[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "Отображение кода: [code]код[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "Список: [list]текст[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Упорядоченный список: [list=]текст[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Упорядоченный список: [list=1]текст[/list]  (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "Вставка изображения: [img]http://ссылка_на_картинку[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Вставка адреса URL: [url]http://url[/url] или [url=http://url]текст "
-"URL[/url]  (alt+w)"
+msgstr "Вставка адреса URL: [url]http://url[/url] или [url=http://url]текст URL[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr "Цвет шрифта"
 
-#: ../inc/bbcode_html.inc:43
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Цвет шрифта: [color=red]текст[/color]  Подсказка: Вы можете также "
-"использовать color=#FF0000"
+msgstr "Цвет шрифта: [color=red]текст[/color]  Подсказка: Вы можете также использовать color=#FF0000"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr "По умолчанию"
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr "Тёмно-красный"
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr "Красный"
 
-#: ../inc/bbcode_html.inc:47
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr "Оранжевый"
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr "Коричневый"
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr "Жёлтый"
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr "Зелёный"
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr "Оливковый"
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr "Голубой"
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr "Синий"
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr "Тёмно-синий"
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr "Индиго"
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr "Фиолетовый"
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr "Размер шрифта"
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "Размер шрифта: [size=x-small]маленький текст[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr "Маленький"
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr "Нормальный"
 
-#: ../inc/bbcode_html.inc:62
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr "Большой"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr "Закрыть все открытые тэги bbCode"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr "Закрыть тэги"
 
-#: ../inc/forum.inc:37
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Учётная запись"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Присоединиться"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "О %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Помощь"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Проект"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Участвовать"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Выполнить работу"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Статус сервера"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Статистика"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Приложения"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Участники"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Компьютеры"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Команды"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "Модели графических ускорителей"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "Модели ЦП"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Вычисления"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Сообщество"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Доска сообщений"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "Создать или присоединиться к команде"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Профили"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Поиск пользователей"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Пользователь Дня"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Сертификат"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Сайт"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Поиск по сайту"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Языки (languages):"
+
+#. names for the above
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr "Сначала самые старые"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr "Сначала самые новые"
 
-#: ../inc/forum.inc:39
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr "Сначала сообщения с наивысшим рейтингом"
 
-#: ../inc/forum.inc:41
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr "Сначала с самыми новыми сообщениями"
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr "Сначала с наибольшим количеством просмотров"
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr "Сначала с наибольшим количеством сообщений"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Модератор-доброволец"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Администратор проекта"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Разработчик проекта"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Тестер проекта"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Разработчик-доброволец"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Тестер-доброволец"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Учёный проекта"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Эксперт-помощник"
+
+#. Search
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr "Поиск введенных слов в сообщениях на форумах"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr "Найти в форумах"
 
-#: ../inc/forum.inc:126
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr "Расширенный поиск"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr "Личные сообщения"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr "Вопросы и ответы"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Доска сообщений"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr "Доска сообщений %1"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr "Предыдущие"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr "Следующие"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
 msgid "Author"
 msgstr "Автор"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr "Сообщение"
 
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Отправить сообщение"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Отправить сообщение"
 
-#: ../inc/forum.inc:580
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr "Отправить личное сообщение для %1"
 
-#: ../inc/forum.inc:581
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr "Присоединился: %1"
 
-#: ../inc/forum.inc:590
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr "Сообщений: %1"
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr "Очков: %1"
 
-#: ../inc/forum.inc:597
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr "В среднем: %1"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr "Вы ещё не прочитали это сообщение"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr "Непрочитанный"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr "Сообщение %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr "скрыто"
 
-#: ../inc/forum.inc:625
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
 msgstr "Отправлено: %1"
 
-#: ../inc/forum.inc:628
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr " - в ответ на "
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr "Редактировать"
 
-#: ../inc/forum.inc:631
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr "Редактировать это сообщение"
 
-#: ../inc/forum.inc:637
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr "Последнее изменение: %1"
 
-#: ../inc/forum.inc:640
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Это сообщение не показывается потому, что отправитель в вашем списке "
-"игнорирования.  Нажмите %1здесь%2, чтобы увидеть это сообщение"
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Это сообщение не показывается потому, что отправитель в вашем списке игнорирования.  Нажмите %1здесь%2, чтобы увидеть это сообщение"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr "Отметить это сообщение как оскорбительное"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr "Отметить как оскорбительное"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr "Рейтинг: %1"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "rate: "
 msgstr "оценить:"
 
-# 83%
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr "Нажмите если Вам нравится это сообщение"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr "Оценка +"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr "Нажмите если Вам не нравится это сообщение"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr "Оценка -"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr "Ответить"
 
-#: ../inc/forum.inc:685
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr "Ответить на это сообщение"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr "Цитата"
 
-#: ../inc/forum.inc:687
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr "Ответить цитируя это сообщение"
 
-#: ../inc/forum.inc:708
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr "Скрыто модератором"
 
-#: ../inc/forum.inc:729
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr "Написано %1 пользователем %2"
 
-#: ../inc/forum.inc:747
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr "Вы не можете писать или оценивать сообщения до %1"
 
-#: ../inc/forum.inc:758
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -378,2587 +608,2471 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
 "        "
-msgstr ""
-"\n"
-"<ul>\n"
-"<li> Сообщения должны быть 'дружелюбны к детям': они не должны содержать\n"
-"контент, который является непристойным, связанным с ненавистью,\n"
-"явно сексуальным или наводящим.\n"
-"<li> Не должно быть коммерческой рекламы.\n"
-"<li> Не должно быть ссылок на веб-сайты, связанные с сексуальным "
-"содержанием,\n"
-"азартными играми, или нетерпимостью других.\n"
-"<li> Не должно быть сообщений, раздражающих или противопоставляющих других "
-"людей,\n"
-"или захватывающих обсуждение.\n"
-"<li> Не должно быть сообщений, которые сознательно враждебны или "
-"оскорбительны.\n"
-"<li> Не должно быть оскорбительных комментариев, затрагивающих расу, "
-"религию,\n"
-" национальность, пол, класс или сексуальность.\n"
-" "
-
-#: ../inc/forum.inc:780
+msgstr "\n<ul>\n<li> Сообщения должны быть 'дружелюбны к детям': они не должны содержать\nконтент, который является непристойным, связанным с ненавистью,\nявно сексуальным или наводящим.\n<li> Не должно быть коммерческой рекламы.\n<li> Не должно быть ссылок на веб-сайты, связанные с сексуальным содержанием,\nазартными играми, или нетерпимостью других.\n<li> Не должно быть сообщений, раздражающих или противопоставляющих других людей,\nили захватывающих обсуждение.\n<li> Не должно быть соо [...]
+
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr "Правила:"
 
-#: ../inc/forum.inc:781
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr "Подробнее"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr "Показать"
 
-#: ../inc/forum.inc:1055
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr "Показать это сообщение"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr "Скрыть"
 
-#: ../inc/forum.inc:1057
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr "Скрыть это сообщение"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr "Переместить"
 
-#: ../inc/forum.inc:1062
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr "Переместить это сообщение в другое обсуждение"
 
-#: ../inc/forum.inc:1067
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr "Заблокировать автора"
 
-#: ../inc/forum.inc:1074
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr "Голосовать за блокировку автора"
 
-#: ../inc/forum.inc:1078
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr "Голосовать против блокировки автора"
 
-#: ../inc/forum.inc:1083
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr "Начать голосование за блокировку автора"
 
-#: ../inc/forum.inc:1116
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Удалить"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Удалить это сообщение"
+
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
-msgstr ""
-"Только участники команды могут оставлять сообщения на доске сообщений "
-"команды"
+msgstr "Только участники команды могут оставлять сообщения на доске сообщений команды"
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Чтобы создать новую тему для обсуждения в %1, у Вас должно быть определенное "
-"количество очков. Это ограничение должно предотвратить и защитить систему "
-"против злоупотреблений."
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "Чтобы создать новую тему для обсуждения в %1, у Вас должен быть определенный уровень среднего количества очков. Это для защиты от злоупотребления системой."
 
-#: ../inc/forum.inc:1133
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Прямо сейчас Вы не можете создать тему для обсуждения. Пожалуйста, немного "
-"подождите перед повторной попыткой. Эта задержка произошла для того, чтобы "
-"защитить систему против злоупотреблений."
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Прямо сейчас Вы не можете создать тему для обсуждения. Пожалуйста, подождите перед повторной попыткой. Это для защиты от злоупотребления системой."
 
-#: ../inc/forum.inc:1140
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
-"Это обсуждение заблокировано. Только модераторы форума и администраторы "
-"могут оставлять сообщения здесь."
+msgstr "Это обсуждение заблокировано. Только модераторы форума и администраторы могут оставлять сообщения здесь."
 
-#: ../inc/forum.inc:1145
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr "Нельзя написать сообщение в скрытом обсуждении."
 
-#: ../inc/forum.inc:1173
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr "Обсуждение"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr "Сообщения"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr "Просмотры"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr "Последнее сообщение"
 
-#: ../inc/forum.inc:1235
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr "Новые сообщения в обсуждении %1"
 
-#: ../inc/forum.inc:1240
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr "Новые сообщения в подписанном обсуждении"
 
-#: ../inc/forum.inc:1241
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr "Имеются новые сообщения в обсуждении '%1'"
 
-#: ../inc/forum.inc:1251
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr "Отметить все обсуждения прочитанными"
 
-#: ../inc/forum.inc:1252
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
 msgstr "Отметить все обсуждения во всех досках сообщений прочитанными."
 
-#: ../inc/host.inc:24
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr "Нет компьютера"
 
-#: ../inc/host.inc:26
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr "Недоступно"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr "Дом"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr "Работа"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
 msgstr "Школа"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Мобильный"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "Обновить"
 
-#: ../inc/host.inc:85
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr "Информация о компьютере"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr "IP-адрес"
 
-#: ../inc/host.inc:89
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(такой же последние %1 раз)"
 
-#: ../inc/host.inc:91
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr "Внешний IP-адрес"
 
-#: ../inc/host.inc:94
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr "Показать IP-адрес"
 
-#: ../inc/host.inc:96
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr "Доменное имя"
 
-#: ../inc/host.inc:98
+#: html/inc/host.inc:97
 msgid "Product name"
 msgstr "Название продукта"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "Местное Стандартное Время"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC %1 часа"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr "Владелец"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr "Анонимный"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr "Создан"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr "Всего очков"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr "В среднем очков"
 
-#: ../inc/host.inc:116
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr "Всего очков суммарно по проектам"
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr "Тип ЦП"
 
-#: ../inc/host.inc:119
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr "Число процессоров"
 
-#: ../inc/host.inc:121
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr "Сопроцессоры"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr "Операционная система"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr "Версия BOINC"
 
-#: ../inc/host.inc:130
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr "Память"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 Мб"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr "Кэш"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 Кб"
 
-#: ../inc/host.inc:140
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr "Файл подкачки"
 
-#: ../inc/host.inc:143
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr "Полное дисковое пространство"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 Гб"
 
-#: ../inc/host.inc:146
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "Свободное дисковое пространство"
 
-#: ../inc/host.inc:150
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "Измеренная скорость вычислений с плавающей запятой"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 млн операций/с"
 
-#: ../inc/host.inc:153
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "Измеренная скорость целочисленных вычислений"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr "Средняя скорость отправки данных"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 Кб/с"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr "Неизвестно"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr "Средняя скорость загрузки данных"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr "Среднее время обработки"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 дней"
 
-#: ../inc/host.inc:170
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr "Подробно о приложении"
 
-#: ../inc/host.inc:171
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr "Показать"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr "Задания"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "Количество контактов клиента с сервером"
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "Время последнего контакта с сервером"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% времени работы клиента BOINC"
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Доля времени работы BOINC"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "% времени подключения компьютера к Интернет за время работы BOINC"
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Доля времени подключения компьютера к Интернет за время работы BOINC"
 
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% времени разрешенной работы за время работы BOINC"
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Доля времени разрешённого выполнения расчётов за время работы BOINC"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Доля времени разрешённого выполнения расчётов на ГП за время работы BOINC"
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr "Средняя эффективность ЦП"
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr "Фактор исправления продолжительности выполнения задания"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr "Размещение"
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr "Удалить этот компьютер"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr "Объединить дублирующиеся записи этого компьютера"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr "Объединить"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr "Последний контакт"
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr "Информация о компьютере"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr "Позиция"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr "В среднем за день"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr "В среднем за день"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr "Тип ЦП"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr "Тип ГП"
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr "Операционная система"
 
-#: ../inc/host.inc:315
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr "(%1 процессоров)"
 
-#: ../inc/host.inc:335
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr "Подробности"
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr "Объединенная статистика по проектам:"
 
-#: ../inc/host.inc:515
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr "У компьютера %1 наложение времени жизни:"
 
-#: ../inc/host.inc:522
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr "У компьютера %1 несовместимая ОС:"
 
-#: ../inc/host.inc:528
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr "У компьютера %1 несовместимый ЦП:"
 
-#: ../inc/host.inc:595
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr "тот же самый компьютер"
 
-#: ../inc/host.inc:598
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr "Невозможно объединить компьютеры %1 и %2 - они несовместимы"
 
-#: ../inc/host.inc:601
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr "Объединение компьютеров %1 и %2"
 
-#: ../inc/host.inc:618
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr "Невозможно обновить очки нового компьютера"
 
-#: ../inc/host.inc:622
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr "Невозможно обновить результаты"
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr "Невозможно удалить старый компьютер"
 
-#: ../inc/host.inc:629
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr "Старый компьютер %1 удален"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr "Показать:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr "Все компьютеры"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr "Только компьютеры, активные за последние 30 дней"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr "ID компьютера"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Имя"
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Модель"
 
-#: ../inc/host.inc:682
+#: html/inc/host.inc:695
 msgid "BOINC<br>version"
 msgstr "Версия<br>BOINC"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "Объединить компьютеры по имени"
 
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "По умолчанию"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Комментарий"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Обсудить"
 
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Новости доступны в формате %sленты RSS%s"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr "Входящие"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr "Написать"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Отправить личное сообщение"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Отправить сообщение команде"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr "Предварительный просмотр"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Тема"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Отправить личное сообщение"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
 msgid "no such message"
 msgstr "нет такого сообщения"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "To"
 msgstr "Кому"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-"Идентификаторы (ID) или уникальные имена пользователей, разделенные запятыми"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Тема"
+msgstr "Идентификаторы (ID) или уникальные имена пользователей, разделенные запятыми"
 
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Отправить сообщение"
-
-#: ../inc/pm.inc:121
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr "отправил Вам личное сообщение; тема:"
 
-#: ../inc/pm.inc:127
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr "Личное сообщение%1 от %2, тема:"
 
-#: ../inc/pm.inc:135
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr "Невозможно создать сообщение"
 
-#: ../inc/pm.inc:166
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
-msgstr ""
-"Вам не разрешается отправлять личные сообщения так часто. Пожалуйста, "
-"подождите немного, прежде чем отправить больше сообщений."
+msgstr "Вам не разрешается отправлять личные сообщения так часто. Пожалуйста, подождите немного, прежде чем отправить больше сообщений."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr "непрочтенных"
 
-#: ../inc/pm.inc:186
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-"Для получения уведомлений по электронной почте %1отредактируйте настройки "
-"сообщества%2"
+msgstr "Для получения уведомлений по электронной почте %1отредактируйте настройки сообщества%2"
 
-#: ../inc/pm.inc:198
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr "Личное сообщение"
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Ограничения использования"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Использовать не более"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Приостанавливать обработку, пока компьютер питается от аккумуляторов? %1 "
-"применимо только для портативных компьютеров %2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Оставлять часть процессоров свободными для других приложений. Пример: 75% означает использовать 6 ядер на 8-ядерном процессоре."
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Приостанавливать обработку, пока компьютер используется?"
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% процессоров"
 
-#: ../inc/prefs.inc:91
+#: html/inc/prefs.inc:63
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Приостанавливать обработку на ГП, пока компьютер используется? %1 Начиная с "
-"версии 6.6.21+ %2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Приостанавливать/возобновлять вычисления каждые несколько секунд, чтобы понизить температуру ЦП и уменьшить потребляемую энергию. Пример: 75% означает вычислять 3 секунды, подождать 1 секунду и повторить."
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'Использование' означает активность мыши/клавиатуры за последние"
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% времени ЦП"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "минут"
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Когда приостанавливать"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Приостанавливать обработку, если нет активности мыши/клавиатуры за последние "
-"%1 Необходимо для входа в режим пониженного потребления энергии на "
-"некоторых компьютерах %2"
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Приостановить, когда компьютер работает от аккумулятора"
 
-#: ../inc/prefs.inc:114
+#: html/inc/prefs.inc:71
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Приостанавливать обработку, когда использование ЦП остальными программами "
-"(кроме BOINC) выше %1 0 - без ограничений<br>Начиная с версии 6.10.30+ %2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Отметьте здесь, чтобы приостановить вычисления на портативных компьютерах при работе от аккумулятора."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"Запускать обработку только между указанными часами %1 без ограничений при "
-"равенстве значений %2"
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Приостановить, когда компьютер используется"
 
-#: ../inc/prefs.inc:130
+#: html/inc/prefs.inc:77
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Оставлять неактивные задания в памяти? %1 если 'да', приостановленные "
-"задания будут занимать место в виртуальной памяти %2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Отметьте здесь, чтобы приостановить вычисления и передачу файлов, когда Вы используете компьютер."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Переключение между заданиями каждые %1 рекомендуется: 60 минут %2"
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Приостановить вычисления на ГП, когда компьютер используется"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "На мультипроцессорных системах использовать не более"
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Отметьте здесь, чтобы приостановить вычисления на ГП, когда Вы используете компьютер."
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "процессоров"
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Использование' означает ввод с помощью мыши/клавиатуры за последние"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"На мультипроцессорных системах использовать не более %1 Начиная с версии "
-"6.1+ %2"
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Это определяет, когда компьютер считается 'используемым'."
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% процессоров"
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "минут"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Использовать не более %1 Может быть использовано для уменьшения перегрева ЦП "
-"%2"
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Приостановить, если мышь/клавиатура не использовались за последние"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% времени ЦП"
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Это позволяет некоторым компьютерам перейти в режим низкого потребления энергии, когда они не используются."
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Диск: использовать не более"
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Приостановить, если использование процессора не-BOINC-задачами выше"
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "Гб"
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Приостановить вычисления, когда ваш компьютер занят, выполняя другие программы."
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Диск: оставлять свободного места не менее %1 Значения менее %2 будут "
-"проигнорированы %3"
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Вычислять только между"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% от полного объема диска"
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Вычислять каждый день только во время определённого периода."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Другое"
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Период сохранения на диск промежуточных результатов заданий"
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Запасать на не менее"
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Поддерживать минимально допустимое количество заданий, чтобы компьютер был занят в течение указанного времени."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "дней работы"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Запасать дополнительно на"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Поддерживать дополнительное количество заданий выше минимального уровня. Определяет, сколько работы запрашивается при обращении к проекту."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Переключение между заданиями каждые"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Если у Вас работает несколько проектов, то BOINC может переключаться между ними с указанной периодичностью."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Запрашивать сохранение промежуточных результатов заданий примерно каждые"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Эта настройка управляет тем, как часто задания сохраняют на диск своё состояние для того, чтобы они могли позже продолжить с этой точки."
+
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr "секунд"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Виртуальная память: использовать не более"
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Использовать не более"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Память: когда компьютер используется, использовать не более"
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Ограничивает общий объём дискового пространства, используемого BOINC."
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Память: когда компьютер не используется, использовать не более"
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "Гб"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-"Поддерживать достаточное количество заданий для обеспечения занятости, не "
-"менее%1(максимум 10 дней).%2"
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Оставлять не менее"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "дней"
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Ограничивает использование диска, чтобы оставалось не менее указанного объёма свободного места на томе, где BOINC хранит данные."
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... и дополнительно"
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "Гб свободного места"
 
-#: ../inc/prefs.inc:232
+#: html/inc/prefs.inc:155
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Подтверждать подключение к Интернету? %1 используется только при наличии "
-"модемного, ISDN- или VPN-подключения %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Ограничивает процент дискового пространства, используемого BOINC на томе, где он хранит данные."
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Разорвать соединение после завершения? %1 используется только при наличии "
-"модемного, ISDN- или VPN-подключения %2"
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% от полного объема диска"
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Максимальная скорость загрузки:"
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "Когда компьютер используется, использовать не более"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Кбайт/с"
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Ограничивает память, используемую BOINC, когда Вы используете компьютер."
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Максимальная скорость отправки:"
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Использовать сеть только между указанными часами"
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Когда компьютер не используется, использовать не более"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Передавать не более %1 Начиная с версии 6.10.46+ %2"
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Ограничивает память, используемую BOINC, когда Вы не используете компьютер."
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Мбайт каждые"
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Оставлять в памяти неактивные задания, которые не используют графический процессор"
 
-#: ../inc/prefs.inc:274
+#: html/inc/prefs.inc:179
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Пропускать проверку файлов изображений? %1 Отметьте ТОЛЬКО В ТОМ СЛУЧАЕ, "
-"если ваш интернет-провайдер изменяет файлы изображений (Например, это делает "
-"UMTS). %2 Пропуск проверки уменьшает безопасность BOINC. %3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Если флажок установлен, приостановленные задания остаются в памяти и возобновляются без потери выполненной работы. Если флажок не установлен, приостановленные задания удаляются из памяти и перезапускаются с их последней контрольной точки."
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Выделено ресурсов %1 Определяет пропорции ресурсов вашего компьютера, "
-"выделенных этому проекту. Пример: если Вы участвуете в двух проектах BOINC с "
-"долями ресурсов 100 и 200, первый получит 1/3 ваших ресурсов, а второй "
-"получит 2/3. %2"
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Виртуальная память/файл подкачки: использовать не более"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-"Ускорить обработку заданий на ГП, используя отдельный ЦП для каждого "
-"задания?"
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Ограничивает виртуальную память (файл подкачки), используемую BOINC."
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Использовать ЦП %1 Начиная с версии 6.10+ %2"
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Ограничить скорость загрузки"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Использовать ГП ATI %1 Начиная с версии 6.10+ %2"
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Ограничивает скорость загрузки при передаче файлов."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Использовать ГП NVIDIA %1 Начиная с версии 6.10+ %2"
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "Кб/сек"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Использовать ГП Intel %1 начиная с версии 7.2+ %2"
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Ограничить скорость отправки"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Выполнять тестовые приложения? %1 Это поможет нам в разработке приложений, "
-"но может привести к ошибкам в расчётах заданий на вашем компьютере %2"
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Ограничивает скорость отправки при передаче файлов."
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Электронные письма будут отправлены с адреса %1; убедитесь, что ваш фильтр "
-"спама принимает этот адрес."
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Ограничить использование до"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Могут ли %1 и ваша команда отправлять Вам электронные письма?"
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Пример: BOINC должен передавать не более 2000 Мб данных каждые 30 дней."
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Должен ли %1 показывать ваши компьютеры на своём веб-сайте?"
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "Мб каждые"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Использование диска и памяти"
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "дней"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Использование процессора"
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Передавать файлы только между"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Использование сети"
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Передавать файлы только в конкретный период каждый день."
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Эти настройки применяются ко всем проектам BOINC, в которых Вы участвуете."
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Пропустить проверку данных для файлов изображений"
 
-#: ../inc/prefs.inc:395
+#: html/inc/prefs.inc:223
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Невозможно обновить настройки.%2 Значения, отмеченные красным ниже, вне "
-"диапазона или не числовые."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "плохая конфигурация: %1"
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Отметьте только в том случае, если ваш интернет-провайдер изменяет файлы изображений. Пропуск проверки уменьшает безопасность BOINC."
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "плохой набор: %1"
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Предупреждать перед подключением к сети Интернет"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "да"
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Используется только при наличии модемного, ISDN- или VPN-подключения."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "нет"
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Разорвать соединение после завершения"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "нет ограничений"
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Диск"
 
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Добавить"
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Сеть"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Удалить"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Эти настройки применяются ко всем проектам BOINC, в которых Вы участвуете."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "вычислений"
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Невозможно обновить настройки.%2 Значения, отмеченные красным ниже, вне диапазона или не числовые."
 
-#: ../inc/prefs.inc:823
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr "Отдельные настройки для конфигурации %1"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr "Редактировать настройки"
 
-#: ../inc/prefs.inc:839
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Удалить"
+
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr "Добавить отдельные настройки для конфигурации %1"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Эти параметры применяются ко всем компьютерам, использующим эту учётную запись, за исключением"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "компьютеров, где Вы локально установили настройки с помощью Менеджера BOINC"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "устройств на базе Android"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
 msgstr "(Переключить вид)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
 msgid "Combined preferences"
 msgstr "Объединённые настройки"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Определённые параметры проекта"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
 msgid "Primary (default) preferences"
 msgstr "Основные настройки (по умолчанию)"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Редактировать настройки %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-"Эти настройки распространяются на все проекты BOINC, в которых Вы "
-"участвуете."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"На компьютерах, участвующих в нескольких проектах, будут использоваться "
-"настройки, изменённые самыми последними."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Эти настройки не относятся к Android-устройствам."
-
-#: ../inc/prefs.inc:892
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr "Последнее изменение настроек:"
 
-#: ../inc/prefs.inc:944
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr "Добавить настройки"
 
-#: ../inc/prefs.inc:948
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr "Обновить настройки"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "да"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "нет"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr "Расположение компьютера по умолчанию"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "и"
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Новые компьютеры будут использовать это расположение для вычислений и настроек проекта."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Выделено ресурсов"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Определяет пропорции ресурсов вашего компьютера, выделенных этому проекту. Например, если Вы участвуете в двух проектах BOINC с долями ресурсов 100 и 200, первый получит 1/3 ваших ресурсов, а второй получит 2/3."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Ускорить обработку заданий на ГП, используя отдельный ЦП для каждого задания?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "Использовать ЦП"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "Использовать ГП ATI"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "Использовать ГП NVIDIA"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Использовать ГП Intel"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Выполнять тестовые приложения?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Это поможет нам в разработке приложений, но может привести к ошибкам в расчётах заданий на вашем компьютере"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Электронные письма будут отправлены с адреса %1; убедитесь, что ваш фильтр спама принимает этот адрес."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Могут ли %1 и ваша команда отправлять Вам электронные письма?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "Должен ли %1 показывать ваши компьютеры на своём веб-сайте?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Переключить вид)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Определённые параметры проекта"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "плохая конфигурация: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "плохой набор: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
+msgid "and"
+msgstr "и"
+
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "нет ограничений"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Добавить"
 
-#: ../inc/profile.inc:86
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr ""
-"Ваш профиль станет виден другим людям, как только он будет одобрен проектом. "
-"На это может потребоваться несколько дней."
+msgstr "Ваш профиль станет виден другим людям, как только он будет одобрен проектом. На это может потребоваться несколько дней."
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr ""
-"Ваш профиль был отмечен как недопустимый. Другие люди его не видят. "
-"Пожалуйста измените его."
+msgstr "Ваш профиль был отмечен как недопустимый. Другие люди его не видят. Пожалуйста измените его."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr "Ошибка базы данных"
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Чтобы предотвратить спам, профили пользователей со средним количеством очков "
-"меньше чем %1 показываются только вошедшим пользователям. Мы приносим "
-"извинения за это неудобство."
+msgstr "Чтобы предотвратить спам, профили пользователей со средним количеством очков меньше чем %1 показываются только вошедшим пользователям. Мы приносим извинения за это неудобство."
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr "Пользователь заблокирован"
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr "Профиль не существует для пользователя с этим ID."
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr "Редактировать профиль"
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr "Ваш отзыв на этот профиль"
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr "Рекомендовать этот профиль в качестве Пользователя дня:"
 
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr "Мне %1нравится%2 этот профиль"
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr "Предупредить администраторов об оскорбительном профиле:"
 
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr "Мне %1не нравится%2 этот профиль"
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr "Анонимная платформа"
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr "ГП NVIDIA"
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr "ГП ATI"
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
 msgstr "ГП Intel"
 
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Нет в БД"
-
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr "ожидание"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr "Все"
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr "В процессе"
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr "Ожидание проверки"
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr "Проверка не завершена"
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr "Правильный"
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr "Неправильный"
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr "Ошибка"
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr "Неактивен"
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr "Неотправлен"
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr "Завершён, ожидает проверки"
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr "Завершён и проверен"
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr "Завершён, отмечен как неправильный"
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr "Завершён, невозможно проверить"
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr "Завершён, проверка неокончательная"
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr "Завершён, слишком поздно для проверки"
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr "Завершён"
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr "Не удалось отправить"
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr "Отменён сервером"
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr "Не запущен до даты крайнего срока - отменён"
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr "Ошибка при загрузке"
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr "Ошибка при расчёте"
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr "Ошибка при отправке"
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Прервано пользователем"
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Прервано"
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr "Загрузка не удалась"
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr "Время истекло - нет ответа"
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr "Не нужно"
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr "Ошибка проверки"
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr "Потерян"
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr "Завершено"
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr "Успех"
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr "Ошибка вычислений"
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr "Лишний результат"
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr "Нет ответа"
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr "Новый"
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
 msgstr "Загрузка"
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr "Обработка"
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr "Ошибка расчётов"
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr "Отправка"
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr "Готово"
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Прервано пользователем"
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr "Первичный"
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr "Необязательно"
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr "Ошибка задачи - проверка пропущена"
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr "Проверено, но пока нет согласия"
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr "Задание возвращено слишком поздно для проверки"
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr "Не удалось отправить результат"
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr "Слишком много ошибок (возможно ошибка в ПО)"
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr "Слишком много результатов (может быть недетерминированным)"
 
-# каких результатов??? тотальных???
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr "Слишком много результатов в целом"
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr "WU отменён"
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Канонический результат отсутствует"
+
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr "Нераспознанная ошибка: %1"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr "Имя задания"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr "щёлкните для деталей"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr "Показать ID-ы"
 
-#: ../inc/result.inc:354
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr "Показать имена"
 
-#: ../inc/result.inc:357
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr "Задание"
 
-#: ../inc/result.inc:360
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr "Задача"
 
-#: ../inc/result.inc:369
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr "Компьютер"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr "Отправлен"
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr "Время подтверждения<br />или крайний срок"
 
-#: ../inc/result.inc:374
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr "объяснить"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr "Статус"
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr "Время выполнения<br />(сек)"
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr "Время ЦП<br />(сек)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr "Очки"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr "Приложение"
 
-#: ../inc/result.inc:629
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr "Задача"
 
-#: ../inc/result.inc:632
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Крайний срок отчёта"
+
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr "Получен"
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr "Состояние сервера"
 
-#: ../inc/result.inc:634
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr "Результат выполнения"
 
-#: ../inc/result.inc:635
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr "Состояние клиента"
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr "Статус выхода"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Крайний срок отчёта"
-
-#: ../inc/result.inc:639
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr "Время выполнения"
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr "Время ЦП"
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr "Состояние проверки"
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "Пиковая производительность устройства, FLOPS"
+
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr "Версия приложения"
 
-#: ../inc/result.inc:656
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr "Выходные файлы"
 
-#: ../inc/result.inc:659
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr "Текст протокола"
 
-#: ../inc/result.inc:706
+#: html/inc/result.inc:795
 msgid "State"
 msgstr "Состояние"
 
-#: ../inc/result.inc:747
+#: html/inc/result.inc:836
 msgid "Task name:"
 msgstr "Имя задания:"
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr "Критерии поиска (используйте один или несколько)"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr "Ключевые слова"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
 msgstr "Найти команды с этими словами в их названиях или описаниях"
 
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Страна"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr "Тип команды"
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr "Показать только активные команды"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr "Найти"
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
 msgstr "Запрошен Вами, и крайний срок ответа основателя прошел."
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr "Завершить передачу полномочий основателя"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr "Запрошен Вами"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr "крайний срок ответа основателя %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr "Нет"
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr "Инициировать запрос"
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr "Отклонен"
 
-#: ../inc/team.inc:87
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr "Информация о команде"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
 msgstr "Описание"
 
-#: ../inc/team.inc:97
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr "Вебсайт"
 
-#: ../inc/team.inc:120
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr "Объединенная статистика по проектам"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr "Тип"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr "Доска сообщений"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr "Обсуждения"
 
-#: ../inc/team.inc:136
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr "Присоединиться к этой команде"
 
-#: ../inc/team.inc:137
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"Внимание: если в Ваших настройках проекта установлено 'отправлять "
-"уведомления по электронной почте', присоединение к команде дает доступ ее "
-"основателя к Вашему адресу электронной почты."
+msgstr "Внимание: если в ваших настройках проекта установлено 'отправлять уведомления по электронной почте', присоединение к команде даёт доступ её основателя к вашему адресу электронной почты."
 
-#: ../inc/team.inc:140
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr "Не принимать новых участников"
 
-#: ../inc/team.inc:147
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr "Запрошена смена основателя"
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr "Ответить до %1"
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr "Смена основателя команды"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr "Участники"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr "Основатель"
 
-#: ../inc/team.inc:169
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr "Администраторы"
 
-#: ../inc/team.inc:184
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr "Новые участники за последний день"
 
-#: ../inc/team.inc:185
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr "Всего участников"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr "просмотр"
 
-#: ../inc/team.inc:186
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr "Активных участников"
 
-#: ../inc/team.inc:187
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr "Участников с заработанными очками"
 
-#: ../inc/team.inc:256
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr "Администратор"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr "Предыдущие %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr "Следующие %1"
 
-#: ../inc/team.inc:289
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr "Нет такой команды."
 
-#: ../inc/team.inc:302
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr "Эта операция требует прав основателя."
 
-#: ../inc/team.inc:326
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr "Эта операция требует прав администратора команды"
 
-#: ../inc/team.inc:422
+#: html/inc/team.inc:434
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"ПРЕДУПРЕЖДЕНИЕ: это глобальная команда BOINC. Если Вы сделаете изменения "
-"здесь, то они будут скоро перезаписаны. Поэтому редактируйте %1глобальную "
-"команду BOINC%2."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "ПРЕДУПРЕЖДЕНИЕ: это глобальная команда BOINC. Если Вы сделаете изменения здесь, то они будут скоро перезаписаны. Поэтому редактируйте %1глобальную команду BOINC%2."
 
-#: ../inc/team.inc:428
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Примечание безопасности%2: если Вы создадите команду, то Ваши настройки "
-"проекта (доля ресурсов, графические настройки) будут видны всем."
+msgstr "%1Примечание безопасности%2: если Вы создадите команду, то ваши настройки проекта (доля ресурсов, графические настройки) будут видны всем."
 
-#: ../inc/team.inc:432
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr "Название команды, текстовая версия"
 
-#: ../inc/team.inc:433
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr "Не использовать тэги HTML."
 
-#: ../inc/team.inc:436
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr "Название команды, HTML версия"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr "Вы можете использовать %1ограниченные тэги HTML%2."
 
-#: ../inc/team.inc:439
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr "Если Вы не знаете HTML, оставьте это поле пустым."
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr "URL веб-страницы команды, если есть"
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "without \"http://\""
 msgstr "без \"http://\""
 
-#: ../inc/team.inc:443
+#: html/inc/team.inc:455
 msgid "This URL will be linked to from the team's page on this site."
 msgstr "Этот URL будет вызываться со страницы команды на этом сайте."
 
-#: ../inc/team.inc:446
+#: html/inc/team.inc:458
 msgid "Description of team"
 msgstr "Описание команды"
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:474
 msgid "Accept new members?"
 msgstr "Принимать новых участников?"
 
-#: ../inc/uotd.inc:28
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Компания"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Начальная школа"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Средняя школа"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Колледж"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Университет или кафедра"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Государственное учреждение"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "Некоммерческая организация"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "Национальные"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Местные/региональные"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Тип компьютера"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Социальные/политические/религиозные"
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr "Профиль пользователя"
 
-#: ../inc/user.inc:119
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr "Проекты, в которых Вы принимаете участие"
 
-#: ../inc/user.inc:121
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr "Проекты, в которых %1 принимает участие"
 
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Проект"
-
-#: ../inc/user.inc:125
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr "Нажмите, чтобы перейти на страницу пользователя"
 
-#: ../inc/user.inc:125
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr "С"
 
-#: ../inc/user.inc:148
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr "Вычисления и вознаграждение"
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr "Компьютеры в этой учётной записи"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr "Просмотр"
 
-#: ../inc/user.inc:161
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr "Межпроектный ID (CPID)"
 
-#: ../inc/user.inc:162
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr "Объединенная статистика по проектам"
 
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Учётная запись"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr "Команда"
 
-#: ../inc/user.inc:167
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr "Межпроектный"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Сертификат"
-
-#: ../inc/user.inc:169
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
-msgstr "Статистика на Вашем мобильном телефоне"
+msgstr "Статистика на вашем мобильном телефоне"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Неизвестный тип уведомления: %1"
-
-#: ../inc/user.inc:198
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr "Учётная информация"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr "Адрес email"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr "URL"
 
-#: ../inc/user.inc:206
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr "Почтовый индекс"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr "Участник %1 с"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr "Изменить"
 
-#: ../inc/user.inc:209
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr "адрес email"
 
-#: ../inc/user.inc:210
+#: html/inc/user.inc:229
 msgid "password"
 msgstr "пароль"
 
-#: ../inc/user.inc:211
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr "другая учётная информация"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr "ID пользователя"
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr "Используется в функциях сообщества"
 
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr "Ключи учётной записи"
 
-#: ../inc/user.inc:221
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr "Настройки"
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
-msgstr "Как и когда BOINC использует Ваш компьютер"
+msgstr "Как и когда BOINC использует ваш компьютер"
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr "Настройки вычислений"
 
-#: ../inc/user.inc:228
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr "Доска сообщений или личные сообщения"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "Настройки сообщества"
 
-#: ../inc/user.inc:232
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr "Настройки для этого проекта"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr "Настройки %1"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Сообщество"
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Посмотреть профиль участника %1"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Удалить"
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Профиль"
 
-#: ../inc/user.inc:245
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr "Создать"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Профиль"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr "%1 сообщений"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "Уведомления"
 
-#: ../inc/user.inc:269
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr "Выйти из команды"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr "Управление"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr "(запрос на смену основателя в ожидании)"
 
-#: ../inc/user.inc:279
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr "Участник команды"
 
-#: ../inc/user.inc:281
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr "найти команду"
 
-#: ../inc/user.inc:292
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr "Основатель, но не участник"
 
-#: ../inc/user.inc:298
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr "Найти друзей"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
 msgstr "Друзья"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Компьютеры"
-
-#: ../inc/user.inc:338
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr "Донор"
 
-#: ../inc/user.inc:378
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr "Контакт"
 
-#: ../inc/user.inc:381
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr "Персона является другом"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr "Прекратить дружбу"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr "Запрос в ожидании"
 
-#: ../inc/user.inc:387
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr "Добавить друга"
 
-#: ../inc/user.inc:446
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr "имя пользователя не может иметь начальные или конечные пробелы"
 
-#: ../inc/user.inc:450
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr "имя пользователя не может быть пустым"
 
-#: ../inc/user.inc:454
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr "имя пользователя не должно содержать тэги HTML"
 
-#: ../inc/util.inc:131
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr "выйти"
 
-#: ../inc/util.inc:133
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr "войти"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Войти"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr "Создание учётной записи"
 
-#: ../inc/util.inc:206
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr "Информация о состоянии сервера"
 
-#: ../inc/util.inc:248
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr ""
-"Произошла ошибка базы данных во время обработки вашего запроса; пожалуйста "
-"попробуйте ещё раз позже."
+msgstr "Произошла ошибка базы данных во время обработки вашего запроса; пожалуйста попробуйте ещё раз позже."
 
-#: ../inc/util.inc:257
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr "Невозможно обработать запрос"
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr "часов"
 
-#: ../inc/util.inc:280
+#: html/inc/util.inc:345
 msgid "min"
 msgstr "мин."
 
-#: ../inc/util.inc:283
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr "сек."
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Ссылка просрочена. Пожалуйста щёлкните Назад, обновите страницу, и "
-"попробуйте ещё раз."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Посмотреть профиль участника %1"
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Ссылка просрочена. Пожалуйста щёлкните Назад, обновите страницу, и попробуйте ещё раз."
 
-#: ../inc/util.inc:569
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
-msgstr "Используйте тэги BBCode для форматирования Вашего текста"
+msgstr "Используйте тэги BBCode для форматирования вашего текста"
 
-#: ../inc/util.inc:796
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr "Проект остановлен для обслуживания"
 
-#: ../inc/util.inc:799
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 временно остановлен для обслуживания.  Пожалуйста попробуйте ещё раз "
-"позже."
+msgstr "%1 временно остановлен для обслуживания.  Пожалуйста попробуйте ещё раз позже."
 
-#: ../inc/util.inc:817
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
-msgstr ""
-"Невозможно подключиться к базе данных - пожалуйста попробуйте ещё раз позже"
+msgstr "Невозможно подключиться к базе данных - пожалуйста попробуйте ещё раз позже"
 
-#: ../inc/util.inc:821
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
 msgstr "Невозможно выбрать базу данных - пожалуйста попробуйте ещё раз позже"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "осталось символов"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr "Оставаться авторизованным на этом компьютере"
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Завершение настройки учётной записи"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Идентифицирует Вас на нашем web-сайте. Введите Ваше настоящее имя или "
-"псевдоним."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Выберите страну, которую представляете, если хотите."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Почтовый индекс или ZIP-код"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Необязательно"
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "Вы должны указать имя для вашей учётной информации"
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
-msgstr "Тэги HTML недопустимы в Вашем имени"
+msgstr "Тэги HTML недопустимы в вашем имени"
+
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Завершение настройки учётной записи"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Редактировать настройки %1"
 
-#: ../user/add_venue.php:81
+#: html/user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "Добавить настройки %1 для конфигурации %2"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Приложения"
-
-#: ../user/apps.php:33
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 на данный момент имеет следующие приложения. Когда Вы участвуете в %1, "
-"Вашему компьютеру будут назначены задания для одного или нескольких из этих "
-"приложений. На Ваш компьютер будет скачана текущая версия приложения. Все "
-"это происходит автоматически; Вам не нужно что-либо предпринимать "
-"дополнительно."
+msgstr "%1 на данный момент имеет следующие приложения. Когда Вы участвуете в %1, вашему компьютеру будут назначены задания для одного или нескольких из этих приложений. На ваш компьютер будет загружена текущая версия приложения. Всё это происходит автоматически; Вам не нужно что-либо предпринимать дополнительно."
 
-#: ../user/apps.php:50
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr "Платформа"
 
-#: ../user/apps.php:51
+#: html/user/apps.php:56
 msgid "Version"
 msgstr "Версия"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Время сборки"
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Вычислений в среднем"
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr "Тэги BBCode"
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"Тэги BBCode позволяют вам форматировать текст в вашем профиле\n"
-"и в сообщениях форума. Они похожи на HTML, только проще. Тэги начинаются\n"
-"с символа [ (вместо %1в HTML) и заканчиваются символом ] (вместо %2 в HTML)."
+msgstr "Тэги BBCode позволяют Вам форматировать текст в вашем профиле\nи в сообщениях форума. Они похожи на HTML, только проще. Тэги начинаются\nс символа [ (вместо %1в HTML) и заканчиваются символом ] (вместо %2 в HTML)."
 
-#: ../user/bbcode.php:31
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr "Примеры"
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr "Жирный"
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr "Наклонный"
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr "Подчёркнутый"
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Зачёркнутый"
+
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr "Суперскрипт"
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr "Большой текст"
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr "Красный текст"
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr "ссылка на вебсайт"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr "Цитируемый текст"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "используется для цитирования блоков текста"
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr "используется для показа изображения"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "Здесь фрагмент кода"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr "используется для показа некоторого кода"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "Отформатированный текст"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-"используется для показа предварительно отформатированного текста (обычно "
-"моноширинного)"
+msgstr "используется для показа предварительно отформатированного текста (обычно моноширинного)"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr "Элемент 1"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr "Элемент 2"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr "Элемент 2"
 
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "ссылка на билет в системе Trac на сайте BOINC"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "ссылка на статью Wiki на сайте BOINC"
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "ссылка на проблему в хранилище BOINC Github"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "ссылка на SVN-метку изменения на сайте BOINC"
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "ссылка на Wiki-страницу в хранилище BOINC Github"
 
-#: ../user/bbcode.php:53
+#: html/user/bbcode.php:55
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Если Вы не закроете тэг или некорректно укажете параметр,\n"
-"вместо отформатированного текста будет просто показан сам тэг."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Участники"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Работать"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Ваша учётная запись"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "просмотр статистики, изменение настроек"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Команды"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "создать или присоединиться к команде"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Пользователь Дня"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Статус сервера"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Профили"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Поиск участников"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Статистика"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Лучшие участники"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Лучшие компьютеры"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Лучшие команды"
+msgstr "Если Вы не закроете тэг или некорректно укажете параметр,\nвместо отформатированного текста будет просто показан сам тэг."
 
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Лучшие модели графических ускорителей"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Языки"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Прочтите наши правила и политику"
-
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr "Не удалось создать учётную запись"
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr "Нажмите кнопку <b>Назад</b> вашего браузера, чтобы попытаться ещё раз."
 
-#: ../user/create_account_action.php:47
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "Ваш ответ reCAPTCHA был неправилен. Пожалуйста попробуйте ещё раз."
 
-#: ../user/create_account_action.php:70
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr "Чтобы создать учётную запись, Вы должны указать пригласительный код."
 
-#: ../user/create_account_action.php:73
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr "Указанный Вами пригласительный код не действителен."
 
-#: ../user/create_account_action.php:84
+#: html/user/create_account_action.php:81
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Неправильный адрес электронной почты: Вы должны указать правильный адрес в "
-"форме name at domain"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Неправильный адрес электронной почты: Вы должны указать правильный адрес в форме name at domain"
 
-#: ../user/create_account_action.php:88
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr "Уже имеется учётная запись с таким же адресом электронной почты."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "Новые пароли отличаются"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "Пароли могут содержать только ASCII-символы."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
 msgstr "Новый пароль слишком короткий: минимальная длина пароля - %1 символов."
 
-#: ../user/create_account_action.php:127
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr "Не удалось создать учётную запись"
 
-#: ../user/create_account_form.php:44
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"ЗАМЕТКА: Если у Вас есть BOINC Manager, не используйте эту форму. Вместо "
-"этого запустите BOINC, выберите Добавить проект, и введите свой e-mail и "
-"пароль."
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "Примечание: для запуска %1 на вашем компьютере %2зайдите сюда%3 вместо того, чтобы использовать эту форму."
 
-#: ../user/create_account_form.php:61
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"Эта учётная запись будет относиться к команде '%1' и будет иметь настройки "
-"проекта как у её основателя."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Пригласительный код"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-"Для создания учётной записи необходим действительный пригласительный код."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Адрес электронной почты"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Должен быть действительным адресом в форме 'name at domain'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Пароль"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Должно быть по крайней мере %1 символов"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Подтвердите пароль"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Пожалуйста, введите слова, показанные на картинке"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Создать учётную запись"
+msgstr "Эта учётная запись будет относиться к команде '%1' и будет иметь настройки проекта как у её основателя."
 
-#: ../user/create_profile.php:50
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr "Фотография"
 
-#: ../user/create_profile.php:64
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Фотография Вашего профиля показана слева."
+msgstr "%1 Фотография вашего профиля показана слева."
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:69
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Чтобы заменить ее, нажмите кнопку \"Обзор...\" и выберите файл формата JPEG "
-"или PNG (размером %1 или меньше)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Чтобы заменить ее, нажмите кнопку \"Обзор...\" и выберите файл формата JPEG или PNG (размером %1 или меньше)."
 
-#: ../user/create_profile.php:69
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr "Чтобы удалить ее из вашего профиля, отметьте эту галку:"
 
-#: ../user/create_profile.php:77
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Если Вы хотите добавить фотографию в ваш профиль, нажмите кнопку \"Обзор...\" "
-"и выберите файл формата JPEG или PNG. Пожалуйста выберите изображения "
-"размером %1 или меньше."
+msgstr "Если Вы хотите добавить фотографию в ваш профиль, нажмите кнопку \"Обзор...\" и выберите файл формата JPEG или PNG. Пожалуйста выберите изображения размером %1 или меньше."
 
-#: ../user/create_profile.php:89
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr "Язык"
 
-#: ../user/create_profile.php:92
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr "Выберите язык, на котором написан ваш профиль:"
 
-#: ../user/create_profile.php:104
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr "Сохранение профиля"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Пожалуйста, введите слова, показанные на картинке."
-
-#: ../user/create_profile.php:115
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr "Создать/отредактировать профиль"
 
-#: ../user/create_profile.php:137
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr "Формат вашего загруженного изображения не поддерживается."
 
-#: ../user/create_profile.php:166
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
-msgstr ""
-"Ваш %1профиль%2 позволяет Вам поделиться своим мнением и информацией о себе "
-"с сообществом %3."
+msgstr "Ваш %1профиль%2 позволяет Вам поделиться своим мнением и информацией о себе с сообществом %3."
 
-#: ../user/create_profile.php:213
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "Ваш ответ ReCaptcha был неправилен.  Пожалуйста попробуйте еще раз."
 
-#: ../user/create_profile.php:222
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Ваш первый ответ был помечен как спам антиспам-системой Akismet.  Пожалуйста "
-"измените ваш текст и попробуйте еще раз."
+msgstr "Ваш первый ответ был помечен как спам антиспам-системой Akismet.  Пожалуйста измените ваш текст и попробуйте еще раз."
 
-#: ../user/create_profile.php:230
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"Ваш второй ответ был помечен как спам антиспам-системой Akismet.  Пожалуйста "
-"измените ваш текст и попробуйте еще раз."
+msgstr "Ваш второй ответ был помечен как спам антиспам-системой Akismet.  Пожалуйста измените ваш текст и попробуйте еще раз."
 
-#: ../user/create_profile.php:246
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr "Ваш профиль был пуст."
 
-#: ../user/create_profile.php:285
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr "Не удалось обновить профиль: ошибка базы данных"
 
-#: ../user/create_profile.php:297
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr "Не удалось создать профиль: ошибка базы данных"
 
-#: ../user/create_profile.php:302
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr "Профиль сохранен"
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "Поздравляем! Ваш профиль был успешно добавлен в нашу базу."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Просмотр Вашего профиля%2"
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Просмотр своего профиля"
 
-#: ../user/create_profile.php:315
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr "Создать профиль"
 
-#: ../user/create_profile.php:343
+#: html/user/create_profile.php:346
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Для предотвращения спама среднее количество очков должно быть %1 или больше, "
-"чтобы создавать или редактировать профиль.  Мы приносим извинения за это "
-"неудобство."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Для предотвращения спама среднее количество очков должно быть %1 или больше, чтобы создавать или редактировать профиль.  Мы приносим извинения за это неудобство."
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr "Невозможно удалить учётную запись"
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr "Учётная запись удалена"
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr "Ваша учётная запись была удалена."
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr "Подтверждение удаления учётной записи"
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"При удалении вашей учётной записи с наших серверов\n"
-"будет удалена вся ваша персональная информация,\n"
-"включая ваш профиль и сообщения с доски сообщений.\n"
-"Компьютеры, подключенные к этой учётной записи,\n"
-"не будут получать новые задания."
+msgstr "При удалении вашей учётной записи с наших серверов\nбудет удалена вся ваша персональная информация,\nвключая ваш профиль и сообщения с доски сообщений.\nКомпьютеры, подключенные к этой учётной записи,\nне будут получать новые задания."
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Эта операция не может быть отменена.\n"
-"Как только ваша учётная запись будет удалена, вы не сможете её восстановить."
+msgstr "Эта операция не может быть отменена.\nКак только ваша учётная запись будет удалена, вы не сможете её восстановить."
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "Вы уверены, что хотите удалить вашу учётную запись?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr "Да"
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr "Удалить эту учётную запись"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr "Нет"
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr "Не удалять эту учётную запись"
 
-#: ../user/delete_profile.php:30
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "не удалось удалить профиль - пожалуйста, попробуйте ещё раз позже."
 
-#: ../user/delete_profile.php:33
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "Подтверждение удаления"
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "Ваш профиль был удалён."
 
-#: ../user/delete_profile.php:40
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "Подтверждение удаления профиля"
 
-#: ../user/delete_profile.php:43
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "Вы уверены?"
 
-#: ../user/delete_profile.php:44
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"Удалённые профили исчезают навсегда и их невозможно восстановить --\n"
-"если Вы захотите в будущем другой профиль,\n"
-"Вы должны будете ввести его с самого начала."
+msgstr "Удалённые профили исчезают навсегда и их невозможно восстановить --\nесли Вы захотите в будущем другой профиль,\nВы должны будете ввести его с самого начала."
 
-#: ../user/delete_profile.php:48
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"Если Вы уверены, нажмите 'Да'\n"
-"для удаления вашего профиля из нашей базы данных."
+msgstr "Если Вы уверены, нажмите 'Да'\nдля удаления вашего профиля из нашей базы данных."
 
-#: ../user/delete_profile.php:52
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "Удалить мой профиль"
 
-#: ../user/delete_profile.php:53
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "Не удалять мой профиль"
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr "PayPal -Транзакция завершена"
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr "Спасибо за пожертвование!"
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr "Ваше пожертвование было принято."
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
 msgstr "Ваше пожертвование будет добавлено после подтверждения от PayPal."
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr "Вы отменили ваше пожертвование."
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr "Этот проект не принимает пожертвования."
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr "Пожертвования для %1"
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"Этот проект принимает пожертвования через\n"
-"%1."
+msgstr "Этот проект принимает пожертвования через\n%1."
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -2971,2266 +3085,1995 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"Укажите в поле ниже то количество, которое Вы желаете пожертвовать.\n"
-"PayPal принимает различные валюты\n"
-"(Канадские доллары, Евро, Фунты стерлингов, Доллары США,\n"
-"Йены, Австралийские доллары, Новозеландские доллары,\n"
-"Швейцарские франки, Гонгконгские доллары, Сингапурские доллары,\n"
-"Шведские кроны, Датские кроны, Польские злотые, Норвежские кроны,\n"
-"Венгерские форинты, Чешские кроны).\n"
-"Вы можете использовать встроенный конвертёр валют,\n"
-"чтобы увидеть эквивалентный объём пожертвований в различных валютах\n"
-"(пожалуйста, учтите, что курсы валют приблизительные,\n"
-"и фактическое количество может отличаться)."
-
-#: ../user/donations.php:316
+msgstr "Укажите в поле ниже то количество, которое Вы желаете пожертвовать.\nPayPal принимает различные валюты\n(Канадские доллары, Евро, Фунты стерлингов, Доллары США,\nЙены, Австралийские доллары, Новозеландские доллары,\nШвейцарские франки, Гонгконгские доллары, Сингапурские доллары,\nШведские кроны, Датские кроны, Польские злотые, Норвежские кроны,\nВенгерские форинты, Чешские кроны).\nВы можете использовать встроенный конвертёр валют,\nчтобы увидеть эквивалентный объём пожертвований [...]
+
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr "Количество, которое Вы хотите пожертвовать"
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr "Ориентировочное значение в"
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr "Анонимное пожертвование"
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Отметьте, если Вы не хотите, чтобы ваше имя и номер учётной записи "
-"показывались\n"
-"в списках пожертвований.<br>Если не отмечено, Вы будете зарегистрированы как "
-"пользователь ID %1"
+msgstr "Отметьте, если Вы не хотите, чтобы ваше имя и номер учётной записи показывались\nв списках пожертвований.<br>Если не отмечено, Вы будете зарегистрированы как пользователь ID %1"
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
 msgstr "Чтобы пожертвовать под вашей учётной записью, пожалуйста авторизуйтесь."
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr "Продолжить"
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr "Пожертвования приняты через"
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr "Загрузить дополнительное программное обеспечение BOINC"
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr "Вы можете загрузить приложения различных категорий."
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Эти приложения не подтверждены %1, и Вы используете их на свой страх и риск."
+msgstr "Эти приложения не подтверждены %1, и Вы используете их на свой страх и риск."
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"Мы не предоставляем инструкции по установке этих приложений.\n"
-"Однако, автор, возможно, предоставил некоторую помощь по установке и "
-"удалении приложения.\n"
-"Если этого недостаточно, Вы должны связаться с автором."
+msgstr "Мы не предоставляем инструкции по установке этих приложений.\nОднако, автор, возможно, предоставил некоторую помощь по установке и удалении приложения.\nЕсли этого недостаточно, Вы должны связаться с автором."
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
 msgstr "Инструкции по установке и запуску BOINC %1здесь%2."
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr "Этот список ведется централизованно на %1web-сайте BOINC%2."
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr "Изменение адреса электронной почты учётной записи"
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr "Новый адрес электронной почты '%1' неправильный."
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-"Новый адрес электронной почты такой же, как и существующий. Ничего не "
-"изменено."
+msgstr "Новый адрес электронной почты такой же, как и существующий. Ничего не изменено."
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr "Уже есть учётная запись с таким же адресом электронной почты."
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr "Неправильный пароль."
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr "Адрес электронной почты вашей учётной записи теперь %1."
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr "Пожалуйста, %1проверьте этот адрес электронной почты%2."
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
-msgstr ""
-"Невозможно обновить ваш адрес электронной почты из-за проблем с базой "
-"данных.  Пожалуйста попробуйте ещё раз позже."
+msgstr "Невозможно обновить ваш адрес электронной почты из-за проблем с базой данных.  Пожалуйста попробуйте ещё раз позже."
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr "Поменять адрес email"
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr "Изменение адреса электронной почты вашей учётной записи"
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr "Новый адрес email"
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr "Должен быть действительным адресом в форме 'name at domain'"
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr "Нет пароля?"
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr "Подтвердите сброс"
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Это действие сотрёт все изменения, которые Вы сделали в своих настройках "
-"сообщества. Для отмены нажмите кнопку Назад в вашем обозревателе."
+msgstr "Это действие сотрёт все изменения, которые Вы сделали в своих настройках сообщества. Для отмены нажмите кнопку Назад в вашем обозревателе."
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "Сбросить настройки"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
 msgstr "Ошибка: Неправильный тип файла, поддерживаются только PNG и JPEG."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-"Ваша подпись слишком длинная, пожалуйста используйте не более чем 250 "
-"символов."
+msgstr "Ваша подпись слишком длинная, пожалуйста используйте не более чем 250 символов."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Нет такого пользователя: %1"
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Нет такого пользователя:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"Как мы должны уведомлять Вас о новых личных сообщениях, запросах на дружбу, "
-"сообщениях в подписанных обсуждениях и о других событиях?"
+msgstr "Как мы должны уведомлять Вас о новых личных сообщениях, запросах на дружбу, сообщениях в подписанных обсуждениях и о других событиях?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "На моей странице учётной записи (без электронной почты)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "Немедленно, по электронной почте"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "Ежедневно одним письмом по электронной почте"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "Идентификация в доске сообщений"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "Аватар"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "Изображение, представляющее Вас на доске сообщений."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "Формат: JPG или PNG. Размер: не более 4 Кб, 100x100 пикселей."
 
-#: ../user/edit_forum_preferences_form.php:80
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "Не использовать аватар"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "Использовать Глобально Признанный Аватар, предоставляемый %1"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "Использовать этот загруженный аватар:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "Предварительный просмотр аватара"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "Так будет выглядеть ваш аватар"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "Подпись для сообщений на доске сообщений"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Проверьте %1различные бесплатные сервисы%2,\n"
-"<br> предоставляющие динамические 'изображения для подписи',\n"
-"<br> которые показывают последнюю информацию о ваших очках, новости "
-"проектов, и т.д."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "осталось символов"
+msgstr "Проверьте %1различные бесплатные сервисы%2,\n<br> предоставляющие динамические 'изображения для подписи',\n<br> которые показывают последнюю информацию о ваших очках, новости проектов, и т.д."
 
-#: ../user/edit_forum_preferences_form.php:105
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "Подключать подпись по умолчанию"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "Предварительный просмотр подписи"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "Так будет выглядеть ваша подпись на форумах"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "Показ сообщений"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "Что показывать"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "Скрывать изображения аватаров"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "Скрывать подписи"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "Показывать изображения как ссылки"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "Открывать ссылки в новом окне/вкладке"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "Выделять специальных пользователей"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "Показывать указанное количество сообщений на странице"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "Как сортировать"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "Обсуждения:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "Сообщения:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "Автоматически переместиться к первому новому сообщению в обсуждении"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "Не перемещать закреплённые сообщения наверх"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "Фильтрация сообщений"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "Фильтрованные пользователи"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Игнорирование сообщений на доске сообщений и личных сообщений от этих "
-"пользователей."
+msgstr "Игнорирование сообщений на доске сообщений и личных сообщений от этих пользователей."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "ID пользователя (Например: 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr "Добавить пользователя в фильтр"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "Нажмите здесь, чтобы обновить настройки"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "Сбросить"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: html/user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr "Или нажмите здесь, чтобы сбросить настройки к параметрам по умолчанию"
 
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Неправильный ключ учётной записи"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Не найдена учётная запись с таким адресом электронной почты"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Неправильный пароль"
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Невозможно обновить ваш пароль из-за проблем с базой данных. Пожалуйста попробуйте ещё раз позже."
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "Поменять пароль"
 
-#: ../user/edit_passwd_action.php:67
+#: html/user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "Ваш пароль был изменён."
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Невозможно обновить ваш пароль из-за проблем с базой данных. Пожалуйста "
-"попробуйте ещё раз позже."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Вы можете идентифицировать себя используя"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "Ваш адрес email и старый пароль"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "Ваш ключ учётной записи"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Текущий пароль"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>ИЛИ</b>: Ключ учётной записи"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Получить ключ учётной записи по электронной почте"
-
-#: ../user/edit_passwd_form.php:53
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "Новый пароль"
 
-#: ../user/edit_passwd_form.php:54
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "Новый пароль, ещё раз"
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr "Тэги HTML недопустимы в Вашем имени."
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr "Вы должны указать имя для вашей учётной информации."
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr "Невозможно обновить информацию о пользователе."
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr "Редактировать учётную информацию"
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr "Имя %1 настоящее имя или псевдоним%2"
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr "URL %1 вашей веб-страницы; необязательно%2"
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr "Почтовый (ZIP) индекс %1 необязательно%2"
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr "Обновить информацию"
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr "Состояния сервера"
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"Поле задания <b>состояние сервера</b> показывает, было ли задание отправлено "
-"на компьютер, и если да, было ли оно завершено компьютером. Возможные "
-"значения:"
+msgstr "Поле задания <b>состояние сервера</b> показывает, было ли задание отправлено на компьютер, и если да, было ли оно завершено компьютером. Возможные значения:"
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr ""
-"Задание не готово к отправке (например, потому что его входные файлы "
-"недоступны)"
+msgstr "Задание не готово к отправке (например, потому что его входные файлы недоступны)"
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr "Задание готово к отправке, но ещё не было отправлено."
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr "В процессе"
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr "Задание было отправлено; ожидание завершения."
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
-msgstr ""
-"Задание было отправлено на компьютер, и либо оно было просрочено, либо "
-"компьютер сообщил о его завершении."
+msgstr "Задание было отправлено на компьютер, и либо оно было просрочено, либо компьютер сообщил о его завершении."
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr "Результаты"
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
-msgstr ""
-"Поле задания <b>результат</b> определено, если его состояние сервера равно "
-"<b>завершено</b>. Возможные значения:"
+msgstr "Поле задания <b>результат</b> определено, если его состояние сервера равно <b>завершено</b>. Возможные значения:"
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
-msgstr ""
-"Задание было отправлено на компьютер, но компьютер ещё не закончил работу и "
-"не сообщил о результате."
+msgstr "Задание было отправлено на компьютер, но компьютер ещё не закончил работу и не сообщил о результате."
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
 msgstr "Компьютер завершил задание и сообщил об успехе."
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
-msgstr ""
-"Сервер не смог отправить задание на компьютер (возможно, потому что его "
-"требования к ресурсам были слишком большими)"
+msgstr "Сервер не смог отправить задание на компьютер (возможно, потому что его требования к ресурсам были слишком большими)"
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr "Ошибка клиента"
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
 msgstr "Задание было отправлено на компьютер и произошла ошибка."
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr ""
-"Задание было отправлено на компьютер и ответ не был получен за отведённое "
-"время."
+msgstr "Задание было отправлено на компьютер и ответ не был получен за отведённое время."
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Задание не было отправлено на компьютер, так как было завершено достаточное "
-"число других заданий для этой задачи."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "Задание не было отправлено на компьютер, так как было завершено достаточное число других заданий для этой задачи."
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
-msgstr ""
-"Было сообщено о завершении задания, но его не удалось проверить, обычно "
-"из-за того что выходные файлы были потеряны на сервере."
+msgstr "Было сообщено о завершении задания, но его не удалось проверить, обычно из-за того что выходные файлы были потеряны на сервере."
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr "Состояния клиента"
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Поле задания <b>состояние клиента</b> показывает стадию обработки, на "
-"которой произошла ошибка."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Поле задания <b>состояние клиента</b> показывает стадию обработки, на которой произошла ошибка."
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr "Компьютер ещё не завершил задание."
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr "Компьютер успешно завершил задание."
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
 msgstr "Компьютер не смог загрузить приложение или входные файлы."
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr "Во время вычислений произошла ошибка."
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr "Компьютер не смог выгрузить выходные файлы."
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr "Время подтверждения и крайний срок"
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr ""
-"Поле задания <b>Время подтверждения или крайний срок</b> зависит от того, "
-"было ли сообщено о завершении задания:"
+msgstr "Поле задания <b>Время подтверждения или крайний срок</b> зависит от того, было ли сообщено о завершении задания:"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr "Уже сообщено"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr "Дата/время, когда было сообщено"
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr "Ещё не сообщено, крайний срок в будущем"
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr "Крайний срок, показанный зелёным."
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr "Ещё не сообщено, крайний срок в прошлом"
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr "Крайний срок, показанный красным."
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr "Неизвестное поле"
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Предварительный просмотр электронного письма"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Ваше письмо будет выглядеть следующим образом:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Отправить письмо"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Используйте кнопку Назад вашего обозревателя, чтобы вернуться к форме "
-"сообщения"
-
-#: ../user/ffmail_action.php:63
+#: html/user/ffmail_action.php:28
 msgid "Sending emails"
 msgstr "Отправка электронных писем"
 
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "письмо успешно отправлено для %1"
-
-#: ../user/ffmail_action.php:86
+#: html/user/ffmail_action.php:43
 msgid "failed to send email to %1: %2"
 msgstr "не удалось отправить письмо для %1: %2"
 
-#: ../user/ffmail_action.php:92
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "не удалось отправить письмо для %1"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "письмо успешно отправлено для %1"
+
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr "Спасибо, что Вы рассказали своим друзьям о %1"
 
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Вы забыли ввести имена и/или адреса электронной почты ваших друзей; "
-"пожалуйста %1вернитесь в форму%2 и введите их."
-
-#: ../user/ffmail_form.php:30
+#: html/user/ffmail_action.php:57
 msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-"Этот проект не создал электронное сообщение - пожалуйста, сообщите об этом "
-"администраторам проекта"
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Вы забыли ввести адреса электронной почты; пожалуйста %1вернитесь в форму%2 и введите их."
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr "Расскажите своим друзьям о %1"
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Окажите нам помощь, расскажите своим друзьям, семье и сотрудникам о %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Заполните эту форму именами и адресами электронной почты людей, которые, по "
-"вашему мнению, могут быть заинтересованы в %1. Мы отправим им письмо от "
-"вашего имени, и если Вы пожелаете, Вы можете добавить своё сообщение."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Ваше имя:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Ваш адрес электронной почты:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Имя друга:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Адрес электронной почты друга:"
+#: html/user/ffmail_form.php:49
+msgid ""
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Используйте эту форму для отправки сообщений электронной почты людям, которые, как вы думаете, могут быть заинтересованы в %1."
 
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Дополнительное сообщение (необязательно)"
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "Кому:"
 
-#: ../user/ffmail_form.php:59
+#: html/user/ffmail_form.php:59
 msgid "Send"
 msgstr "Отправить"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
 msgid "You are not authorized to banish users."
 msgstr "У вас нет прав для блокировки пользователей."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Вы должны указать действие..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Непристойное"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Флейм/Ненависть/Угрозы"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Пользовательский запрос"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "Голосование за блокировку"
 
-#: ../user/forum_banishment_vote.php:50
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "Пользователь с этим ID не найден."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr "Пользователь уже заблокирован"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"Вы действительно хотите заблокировать %1?<br/>%1 не сможет публиковать "
-"сообщения в течение выбранного периода.<br/>Заблокируйте %1 только если "
-"он(а) регулярно ведёт себя как тролль."
+msgstr "Вы действительно хотите заблокировать %1?<br/>%1 не сможет публиковать сообщения в течение выбранного периода.<br/>Заблокируйте %1 только если он(а) регулярно ведёт себя как тролль."
 
-#: ../user/forum_banishment_vote.php:61
+#: html/user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Выберите категорию причины, при необходимости напишите более подробное "
-"описание того, почему пользователь должен быть заблокирован."
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Выберите категорию причины, при необходимости напишите более подробное описание того, почему пользователь должен быть заблокирован."
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "Категория"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Непристойное"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Флейм/Ненависть/Угрозы"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Пользовательский запрос"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Другое"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "Причина"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "Будет отправлено если заполнено"
 
-#: ../user/forum_banishment_vote.php:74
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr "Продолжить голосование"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Вы должны указать действие..."
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr ""
-"Вы больше не можете редактировать это сообщение.<br/>Сообщения могут быть "
-"отредактированы максимум %1 минут после того, как они были созданы."
+msgstr "Вы больше не можете редактировать это сообщение.<br/>Сообщения могут быть отредактированы максимум %1 минут после того, как они были созданы."
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "У Вас нет прав редактировать это сообщение."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Форум"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Редактировать сообщение"
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr "Редактирование сообщения"
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr "Тема"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr "Добавить мою подпись к этому сообщению"
 
-#: ../user/forum_forum.php:41
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "Невидим для Вас"
 
-#: ../user/forum_forum.php:80
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "Доска сообщений команды %1"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr "Новое обсуждение"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr "Добавить новое обсуждение в этот форум"
 
-#: ../user/forum_forum.php:116
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "Эта доска сообщений доступна в формате %1ленты RSS%2"
 
-#: ../user/forum_forum.php:174
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr "Это обсуждение скрыто"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr "Это обсуждение закреплено и заблокировано, и Вы его ещё не прочитали"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr "закреплено/заблокировано/не прочтено"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "Это обсуждение закреплено и Вы его ещё не прочитали"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr "закреплено/не прочтено"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "Вы ещё не прочитали это обсуждение, и оно заблокировано"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr "не прочтено/заблокировано"
 
-#: ../user/forum_forum.php:186
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr "Вы ещё не прочитали это обсуждение"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr "Это обсуждение закреплено и заблокировано"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr "закреплено/заблокировано"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr "Это обсуждение закреплено"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr "закреплено"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr "Это обсуждение заблокировано"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr "заблокировано"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr "Вы читаете это обсуждение"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr "читается"
 
-#: ../user/forum_help_desk.php:27
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "Вопросы и ответы"
 
-#: ../user/forum_help_desk.php:30
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Общайтесь с добровольцами напрямую через Skype, на любом из нескольких "
-"языков. Воспользуйтесь %1горячей линией BOINC%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Общайтесь с добровольцами напрямую через Skype, на любом из нескольких языков. Воспользуйтесь %1горячей линией BOINC%2."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr "Тема"
 
-#: ../user/forum_help_desk.php:45
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr "Вопросы"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "Обсуждение среди участников команды %1"
 
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Доска сообщений %1"
-
-#: ../user/forum_index.php:78
+#: html/user/forum_index.php:80
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
-msgstr ""
-"Если у Вас есть вопрос или проблема, пожалуйста воспользуйтесь разделом %"
-"1Вопросы и ответы%2 этой доски сообщений."
+msgstr "Если у Вас есть вопрос или проблема, пожалуйста воспользуйтесь разделом %1Вопросы и ответы%2 этой доски сообщений."
 
-#: ../user/forum_index.php:123
+#: html/user/forum_index.php:125
 msgid "Subscribed threads"
 msgstr "Подписанные обсуждения"
 
-#: ../user/forum_moderate_post.php:43
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "У Вас нет прав на модерацию этого сообщения."
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Не удалось переместить в другой тип категории"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Не удалось переместить в другую категорию"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Нет прав на блокировку пользователей"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Блокировка"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "Пользователь %1 был заблокирован."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Действие не удалось: возможны проблемы с базой данных"
+
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "Модерация сообщения"
 
-#: ../user/forum_moderate_post.php:52
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "Скрыть сообщение"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "Коммерческий спам"
 
-#: ../user/forum_moderate_post.php:58
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr "Дубликат"
 
-#: ../user/forum_moderate_post.php:63
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr "Переместить сообщение"
 
-#: ../user/forum_moderate_post.php:65
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr "ID целевого обсуждения:"
 
-#: ../user/forum_moderate_post.php:78
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr "Заблокировать пользователя"
 
-#: ../user/forum_moderate_post.php:80
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr "Период блокировки"
 
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 часа"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 часов"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 часов"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr "1 день"
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr "1 неделя"
 
-#: ../user/forum_moderate_post.php:84
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr "2 недели"
 
-#: ../user/forum_moderate_post.php:85
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr "1 месяц"
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr "Навсегда"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-"Дополнительное объяснение %1 Будет включено в электронное письмо "
-"пользователю.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr "OK"
 
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "У Вас нет прав на модерацию этого сообщения."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Не удалось переместить в другой тип категории"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Не удалось переместить в другую категорию"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Нет прав на блокировку пользователей"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Блокировка"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Пользователь %1 был заблокирован."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Действие не удалось: возможны проблемы с базой данных"
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Дополнительное объяснение %1 Будет включено в электронное письмо пользователю.%2"
 
-#: ../user/forum_moderate_thread.php:33
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "нет прав"
 
-#: ../user/forum_moderate_thread.php:36
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "Модерация обсуждения '%1'"
 
-#: ../user/forum_moderate_thread.php:48
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr ""
-"Выберите категорию причины, или напишите подробное описание, почему Вы "
-"скрываете или блокируете это обсуждение; затем нажмите OK."
+msgstr "Выберите категорию причины, или напишите подробное описание, почему Вы скрываете или блокируете это обсуждение; затем нажмите OK."
 
-#: ../user/forum_moderate_thread.php:72
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "Текущий форум"
 
-#: ../user/forum_moderate_thread.php:73
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "Форум-цель"
 
-#: ../user/forum_moderate_thread.php:77
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "Новое название:"
 
-#: ../user/forum_post.php:40
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr ""
-"Только администраторы проекта могут создать здесь обсуждение. Но Вы можете "
-"отвечать в существующих обсуждениях."
+msgstr "Только администраторы проекта могут создать здесь обсуждение. Но Вы можете отвечать в существующих обсуждениях."
 
-#: ../user/forum_post.php:60
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Ваше сообщение было помечено как спам антиспам-системой Akismet. Пожалуйста "
-"измените ваш текст и попробуйте ещё раз."
+msgstr "Ваше сообщение было помечено как спам антиспам-системой Akismet. Пожалуйста измените ваш текст и попробуйте ещё раз."
 
-#: ../user/forum_post.php:70
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr "Создание нового обсуждения"
 
-#: ../user/forum_post.php:100
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr "Создание нового обсуждения"
 
-#: ../user/forum_post.php:105
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr "Не забудьте добавить название"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "Показать этот элемент как Уведомление в менеджере BOINC"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
 msgstr "Отметьте, только если этот элемент будет интересен всем добровольцам."
 
-#: ../user/forum_rate.php:26
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "Рейтинги отключены"
 
-#: ../user/forum_rate.php:27
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "Эта функция отключена проектом"
 
-#: ../user/forum_rate.php:58
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Для того, чтобы оценить сообщение, У Вас должно быть больше среднее или "
-"общее количество очков."
+msgstr "Для того, чтобы оценить сообщение, У Вас должно быть больше среднее или общее количество очков."
 
-#: ../user/forum_rate.php:62
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "Вы уже оценили это сообщение."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "Вернуться к обсуждению"
 
-#: ../user/forum_rate.php:72
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "Ввод принят"
 
-#: ../user/forum_rate.php:73
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "Ваша оценка была принята. Спасибо за помощь."
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "Голос принят"
 
-#: ../user/forum_rate.php:76
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "Ваша оценка была принята. Спасибо."
 
-#: ../user/forum_rate.php:80
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "Проблема подсистемы голосования"
 
-#: ../user/forum_reply.php:73
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Ваше сообщение было помечено как спам антиспам-системой Akismet. Пожалуйста "
-"измените ваш текст и попробуйте ещё раз."
+msgstr "Ваше сообщение было помечено как спам антиспам-системой Akismet. Пожалуйста измените ваш текст и попробуйте ещё раз."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr "Ответить на обсуждение"
 
-#: ../user/forum_reply.php:137
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr "Сообщение:"
 
-#: ../user/forum_reply.php:140
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "ответ на %1сообщение ID%2:"
 
-#: ../user/forum_reply.php:166
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr "Отправить ответ"
 
-#: ../user/forum_reply.php:169
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "Добавить мою подпись к этому ответу"
 
-#: ../user/forum_report_post.php:45
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"У Вас должно быть больше среднее или общее количество очков, чтобы "
-"пожаловаться на это сообщение."
+msgstr "У Вас должно быть больше среднее или общее количество очков, чтобы пожаловаться на это сообщение."
 
-#: ../user/forum_report_post.php:65
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr "Обращение зарегистрировано"
 
-# 92%
-#: ../user/forum_report_post.php:66
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "Ваше обращение было записано. Спасибо за вашу помощь."
 
-#: ../user/forum_report_post.php:67
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr ""
-"Модератор вскоре просмотрит ваше обращение и решит, что делать дальше - это "
-"может занять некоторое время, поэтому запаситесь терпением"
+msgstr "Модератор вскоре просмотрит ваше обращение и решит, что делать дальше - это может занять некоторое время, поэтому запаситесь терпением"
 
-#: ../user/forum_report_post.php:71
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr "Предупредить о сообщении на форуме"
 
-#: ../user/forum_report_post.php:73
+#: html/user/forum_report_post.php:78
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"Прежде чем предупредить об этом сообщении, попробуйте вместо этого "
-"использовать +/- систему оценок. Если достаточное количество пользователей "
-"негативно оценит сообение, оно в конечном итоге будет скрыто.<br />Вы можете "
-"найти систему оценок в нижней части сообщения."
+msgstr "Прежде чем предупредить об этом сообщении, попробуйте вместо этого использовать +/- систему оценок. Если достаточное количество пользователей негативно оценит сообение, оно в конечном итоге будет скрыто.<br />Вы можете найти систему оценок в нижней части сообщения."
 
-#: ../user/forum_report_post.php:80
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr "Предупредить о сообщении"
 
-#: ../user/forum_report_post.php:81
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Почему Вы считаете это сообщение оскорбительным: %1Пожалуйста дайте "
-"достаточно информации, чтобы человек,\n"
-"который ещё не читал данное обсуждение, мог быстро обнаружить проблему.%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Почему Вы считаете это сообщение оскорбительным: %1Пожалуйста дайте достаточно информации, чтобы человек, который ещё не читал данное обсуждение, мог быстро обнаружить проблему.%2"
 
-#: ../user/forum_report_post.php:90
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr "Обращение не зарегистрировано"
 
-#: ../user/forum_report_post.php:91
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Ваше обращение не удалось записать. Пожалуйста подождите немного и "
-"попробуйте ещё раз."
+msgstr "Ваше обращение не удалось записать. Пожалуйста подождите немного и попробуйте ещё раз."
 
-#: ../user/forum_report_post.php:92
+#: html/user/forum_report_post.php:106
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Если это не временная ошибка, пожалуйста сообщите о ней разработчикам "
-"проекта."
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Если это не временная ошибка, пожалуйста сообщите о ней разработчикам проекта."
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "RSS-лента форума %1"
 
-#: ../user/forum_rss.php:42
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "Эта доска сообщений доступна в формате ленты RSS."
 
-#: ../user/forum_rss.php:43
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr "Варианты:"
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Включить только сообщения пользователя с ID %1 (по умолчанию: все "
-"пользователи)."
+msgstr "Включить только сообщения пользователя с ID %1 (по умолчанию: все пользователи)."
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "Включить только сообщения за последние %1 дней (по умолчанию: 30)."
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Обрезать сообщения: %1 (Включить только первые 265 символов от каждого "
-"сообщения)"
-
-#: ../user/forum_rss.php:53
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-"Только обсуждения: %1 (Включить только первое сообщение каждого обсуждения)"
+msgstr "Только обсуждения: %1 (Включить только первое сообщение каждого обсуждения)"
+
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Результаты поиска по форуму"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Темы обсуждений, соответствующие вашему запросу:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Сообщения, соответствующие вашему запросу:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Извините, ничего не найдено соответсвующего вашему поисковому запросу. Вы можете расширить условия поиска, используя меньше слов (или менее специфичные слова)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Вы также можете %1попробовать найти то же самое с помощью Google.%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Выполнить другой поиск"
 
-#: ../user/forum_search.php:27
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr "Поиск в форуме"
 
-#: ../user/forum_search.php:31
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr "Поисковый запрос"
 
-#: ../user/forum_search.php:32
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "Поиск ключевых слов:"
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "Будут показаны сообщения, содержащие все указанные слова"
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "Например: \"зависание заставки\""
 
-#: ../user/forum_search.php:36
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "Поиск по автору с ID:"
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "Будут показаны сообщения только этого автора"
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "Например: \"43214\""
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr "Опции поиска"
 
-#: ../user/forum_search.php:42
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr "Ограничение поиска"
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "Искать не более указанного количества дней назад"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 месяцев"
 
-#: ../user/forum_search.php:52
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr "1 год"
 
-#: ../user/forum_search.php:73
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Форум"
+
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "Показать сообщения только этого форума"
 
-#: ../user/forum_search.php:84
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr "Сортировка"
 
-#: ../user/forum_search.php:88
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr "Начать поиск"
 
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Результаты поиска по форуму"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Темы обсуждений, соответствующие вашему запросу:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Сообщения, соответствующие вашему запросу:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Извините, ничего не найдено соответсвующего вашему поисковому запросу. Вы "
-"можете расширить условия поиска, используя меньше слов (или менее "
-"специфичные слова)."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Вы также можете %1попробовать найти то же самое с помощью Google.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Выполнить другой поиск"
-
-#: ../user/forum_subscribe.php:46
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "Успешная подписка"
 
-#: ../user/forum_subscribe.php:49
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
-msgstr ""
-"Вы подписаны на %1. Вы получите уведомление, как только там появится новое "
-"сообщение."
+msgstr "Вы подписаны на %1. Вы получите уведомление, как только там появится новое сообщение."
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "Подписка не удалась"
 
-#: ../user/forum_subscribe.php:52
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"В данный момент не удалось подписать Вас на %1. Пожалуйста, попробуйте ещё "
-"раз немного позднее..."
+msgstr "В данный момент не удалось подписать Вас на %1. Пожалуйста, попробуйте ещё раз немного позднее..."
 
-#: ../user/forum_subscribe.php:61
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "Успешное прекращение подписки"
 
-#: ../user/forum_subscribe.php:64
+#: html/user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Вы больше не подписаны на %1. Вы больше не будете получать уведомления для "
-"этого обсуждения."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Вы больше не подписаны на %1. Вы больше не будете получать уведомления для этого обсуждения."
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "Прекращение подписки не удалось"
 
-#: ../user/forum_subscribe.php:67
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"В данный момент невозможно прекратить подписку на %1. Пожалуйста, попробуйте "
-"ещё раз немного позднее..."
+msgstr "В данный момент невозможно прекратить подписку на %1. Пожалуйста, попробуйте ещё раз немного позднее..."
 
-#: ../user/forum_subscribe.php:74
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "Неизвестное действие подписки"
 
-#: ../user/forum_thread.php:61
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "Этот форум для Вас невидим."
 
-#: ../user/forum_thread.php:69
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "Это обсуждение было скрыто модераторами."
 
-#: ../user/forum_thread.php:128
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "Мой вопрос отвечен"
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "Если ваш вопрос был адекватно отвечен, пожалуйста нажмите сюда"
 
-#: ../user/forum_thread.php:137
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "У меня такой же вопрос"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr "Добавить новое сообщение в это обсуждение"
 
-#: ../user/forum_thread.php:171
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr "Отписаться"
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "Вы подписаны на это обсуждение.  Нажмите здесь чтобы отписаться."
 
-#: ../user/forum_thread.php:178
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr "Подписаться"
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Нажмите, чтобы получать уведомления о новых сообщениях в этом обсуждении"
+msgstr "Нажмите, чтобы получать уведомления о новых сообщениях в этом обсуждении"
 
-#: ../user/forum_thread.php:190
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr "Показать это обсуждение"
 
-#: ../user/forum_thread.php:196
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr "Скрыть это обсуждение"
 
-#: ../user/forum_thread.php:202
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr "Открепить"
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr "Открепить это обсуждение"
 
-#: ../user/forum_thread.php:208
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr "Закрепить"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Закрепить это обсуждение"
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Отображать это обсуждение всегда в верхней части форума"
 
-#: ../user/forum_thread.php:215
+#: html/user/forum_thread.php:219
 msgid "Unlock"
 msgstr "Разблокировать"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Разблокировать это обсуждение"
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Разрешить новые сообщения в этом обсуждении"
 
-#: ../user/forum_thread.php:221
+#: html/user/forum_thread.php:225
 msgid "Lock"
 msgstr "Заблокировать"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Заблокировать это обсуждение"
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Не разрешать новые сообщения в этом обсуждении"
 
-#: ../user/forum_thread.php:229
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr "Переместить это обсуждение в другой форум"
 
-#: ../user/forum_thread.php:234
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr "Редактировать тему"
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr "Редактировать тему обсуждения"
 
-#: ../user/forum_thread.php:245
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Окончательно удалить обсуждение"
+
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr "Экспортировать как уведомление"
 
-#: ../user/forum_thread.php:251
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr "Не экспортировать"
 
-#: ../user/forum_thread.php:252
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr "Не экспортировать эту новость как уведомление"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr "Сортировать"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "Статус обсуждения обновлён"
 
-#: ../user/forum_thread_status.php:50
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "Статус был обновлён."
 
-#: ../user/forum_user_posts.php:73
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "Сообщения пользователя %1"
 
-#: ../user/friend.php:33
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr "Уже друзья"
 
-#: ../user/friend.php:39
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "Вы запросили дружбу с %1 %2."
 
-#: ../user/friend.php:41
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "Этот запрос все еще ожидает подтверждение."
 
-#: ../user/friend.php:52
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 не принимает запросы дружбы от Вас"
 
-#: ../user/friend.php:61
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "Вы не можете дружить сами с собой"
 
-#: ../user/friend.php:69
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr "Добавить друга"
 
-#: ../user/friend.php:74
+#: html/user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Вы попросили добавить %1 как друга. Мы уведомим %1 и попросим его/её "
-"подтвердить, что Вы - друзья."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Вы попросили добавить %1 как друга. Мы уведомим %1 и попросим его/её подтвердить, что Вы - друзья."
 
-#: ../user/friend.php:77
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "Введите дополнительное сообщение здесь:"
 
-#: ../user/friend.php:115
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr "Запрос на дружбу отправлен"
 
-#: ../user/friend.php:116
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
-msgstr "Мы оповестили %1 о Вашем запросе."
+msgstr "Мы оповестили %1 о вашем запросе."
 
-#: ../user/friend.php:126
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr "Пожалуйста авторизуйтесь как %1"
 
-#: ../user/friend.php:127
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "Вы должны авторизоваться как %1, чтобы увидеть этот запрос дружбы"
 
-#: ../user/friend.php:138
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr "Запрос на дружбу"
 
-#: ../user/friend.php:141
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 запросил дружбу с Вами."
 
-#: ../user/friend.php:143
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 сообщает: %2"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr "Принять дружбу"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "Нажмите Принять, если %1 - действительно друг"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr "Отклонить"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "Нажмите Отклонить, если %1 не является другом"
 
-#: ../user/friend.php:186
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "Дружба подтверждена"
 
-#: ../user/friend.php:187
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "Ваша дружба с %1 была подтверждена."
 
-#: ../user/friend.php:205
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr "Дружба отклонена"
 
-#: ../user/friend.php:206
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "Вы отказались от дружбы с %1"
 
-#: ../user/friend.php:221
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr "Уведомление не найдено"
 
-#: ../user/friend.php:223
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr "Друг подтвердил"
 
-#: ../user/friend.php:224
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "Вы теперь друзья с %1."
 
-#: ../user/friend.php:232
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "Прекратить дружбу?"
 
-#: ../user/friend.php:234
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "Вы уверены, что хотите прекратить дружбу с %1?"
 
-#: ../user/friend.php:239
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr "Остаться друзьями"
 
-#: ../user/friend.php:249
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "Дружба прекращена"
 
-#: ../user/friend.php:250
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "Ваша дружба с %1 была прекращена."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Забыли свою учётную информацию?"
-
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Если Вы знаете адрес электронной почты вашей учётной записи, и Вы можете "
-"получить письмо:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Если Вы знаете адрес электронной почты вашей учётной записи, и Вы можете получить письмо:"
 
-#: ../user/get_passwd.php:29
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr ""
-"Введите адрес электронной почты ниже и нажмите OK. Вам будут высланы "
-"инструкции для сброса вашего пароля."
+msgstr "Введите адрес электронной почты ниже и нажмите OK. Вам будут высланы инструкции для сброса вашего пароля."
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr ""
-"2) Если Вы забыли адрес электронной почты вашей учётной записи, или Вы не "
-"можете получить письмо:"
+msgstr "2) Если Вы забыли адрес электронной почты вашей учётной записи, или Вы не можете получить письмо:"
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr ""
-"Если BOINC запускался под этой вашей учётной записью, Вы можете получить "
-"доступ к ней. Для этого нужно сделать следующее:"
+msgstr "Если BOINC запускался под этой вашей учётной записью, Вы можете получить доступ к ней. Для этого нужно сделать следующее:"
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
-"Перейдите в каталог данных BOINC на вашем компьютере (его расположение "
-"записывается в журнал событий при запуске)."
+msgstr "Перейдите в каталог данных BOINC на вашем компьютере (его расположение записывается в журнал событий при запуске)."
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-"Найдите там файл учётной записи для этого проекта; он будет называться <b>%"
-"1</b>."
+msgstr "Найдите там файл учётной записи для этого проекта; он будет называться <b>%1</b>."
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Откройте этот файл в текстовом редакторе, например в Блокноте. Вы увидите "
-"что-то вроде"
+msgstr "Откройте этот файл в текстовом редакторе, например в Блокноте. Вы увидите что-то вроде"
 
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Выберите и скопируйте строку между %1 и %2 (%3 в вышеприведённом примере)."
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Выберите и скопируйте строку между %1 и %2 (%3 в вышеприведённом примере)."
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
 msgstr "Вставьте эту строку в расположенное ниже поле, и нажмите OK."
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr ""
-"Теперь Вы авторизованы; обновите адрес электронной почты и пароль для вашей "
-"учётной записи."
+msgstr "Теперь Вы авторизованы; обновите адрес электронной почты и пароль для вашей учётной записи."
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
 msgstr "Авторизоваться с аутентификатором"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Забыли свою учётную информацию?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "Нет сообщённых ГП-задач"
 
-#: ../user/gpu_list.php:183
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Лучшие модели графических ускорителей"
+
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Следующие списки показывают наиболее продуктивные модели графических "
-"ускорителей на разных платформах.  Относительные скорости указаны в скобках."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Следующие списки показывают наиболее продуктивные модели графических ускорителей на разных платформах.  Относительные скорости, измеренные по затраченному на задания среднему времени, указаны в скобках."
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr "Добро пожаловать в %1"
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Для просмотра и редактирования настроек Вашей учётной записи используйте "
-"ссылки ниже."
+msgstr "Для просмотра и редактирования настроек вашей учётной записи используйте ссылки ниже."
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr "Если Вы этого ещё не сделали, %1загрузите клиентское ПО BOINC%2."
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "анонимная платформа, приложение отсутствует"
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Ваша учётная запись"
 
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr "анонимная платформа"
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Версия приложения отсутствует"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Приложение отсутствует"
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr "Платформа отсутствует"
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr "Число завершённых заданий"
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
 msgstr "Максимум заданий в день"
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr "Число заданий сегодня"
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr "Правильные задания завершённые подряд"
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr "Средняя скорость обработки"
 
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr "Подробная информация о приложениях для компьютера %1"
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr "У нас нет записи об этом компьютере."
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"Вы не можете удалить запись об этом компьютере, так как в базе всё ещё "
-"содержится для него работа. Вы должны подождать несколько дней, пока работа "
-"для этого компьютера не будет удалена из базы данных проекта."
+msgstr "Вы не можете удалить запись об этом компьютере, так как в базе всё ещё содержится для него работа. Вы должны подождать несколько дней, пока работа для этого компьютера не будет удалена из базы данных проекта."
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr "Удаление записи об этом компьютере"
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr "Запись удалена."
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr "Вернуться к списку ваших компьютеров"
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr "Объединение записей о компьютерах"
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr "Объединение компьютеров"
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Иногда BOINC по ошибке назначает различные идентификаторы одному и тому же "
-"компьютеру. Вы можете исправить это объединив старые идентификаторы с самым "
-"новым."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Иногда BOINC по ошибке назначает различные идентификаторы одному и тому же компьютеру. Вы можете исправить это объединив старые идентификаторы с самым новым."
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr "Нет подходящих компьютеров для объединения с текущим."
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr "Показать подробности"
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
 msgstr "Отметьте компьютеры, такие же как и %1 (создан %2, ID компьютера %3):"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr "имя"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr "создан"
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr "ID компьютера"
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr "без имени"
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr "Объединить компьютеры"
 
-#: ../user/host_update_credit.php:28
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Компьютеры, принадлежащие пользователю %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Компьютеры скрыты"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Этот пользователь предпочёл скрыть информацию о своих компьютерах."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Ваши компьютеры"
+
+#: html/user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "Обновление очков компьютера"
 
-#: ../user/host_venue_action.php:41
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Очки компьютера обновлены"
+
+#: html/user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "Размещение компьютера обновлено"
 
-#: ../user/host_venue_action.php:43
+#: html/user/host_venue_action.php:43
 msgid "none"
 msgstr "не указано"
 
-#: ../user/host_venue_action.php:46
+#: html/user/host_venue_action.php:46
 msgid "The venue of this host has been set to %1."
 msgstr "Размещение этого компьютера было установлено в %1."
 
-#: ../user/host_venue_action.php:48
+#: html/user/host_venue_action.php:48
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
-msgstr ""
-"Это изменение будет учтено в следующий раз, когда компьютер свяжется с "
-"данным проектом."
+msgstr "Это изменение будет учтено в следующий раз, когда компьютер свяжется с данным проектом."
 
-#: ../user/host_venue_action.php:50
+#: html/user/host_venue_action.php:50
 msgid "Return to host page"
 msgstr "Вернуться на страницу компьютера"
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Компьютеры, принадлежащие пользователю %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Компьютеры скрыты"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Этот пользователь предпочёл скрыть информацию о своих компьютерах."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Ваши компьютеры"
-
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr "Разрешённые тэги HTML"
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
 msgstr "Следующие тэги HTML разрешены в описаниях команд:"
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr "жирный"
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr "наклонный"
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr "гиперссылка"
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr "параграф"
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr "разрыв"
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr "предварительное форматирование"
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"изображение; высота не должна превышать 450 пикселей. Пожалуйста, не "
-"публикуйте ссылки на изображения без разрешения вебсайта, где размещено "
-"изображение."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "изображение; высота не должна превышать 450 пикселей. Пожалуйста, не публикуйте ссылки на изображения без разрешения вебсайта, где размещено изображение."
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
 msgstr "Вы также можете использовать специальные символы с амперсандами."
 
-#: ../user/info.php:35
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Правила и политика"
+
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "Запускайте %1 только на авторизованных компьютерах"
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"Запускайте %1 только на компьютерах, которыми Вы владеете, или для которых "
-"Вы получили права владельца. В некоторых компаниях и школах (ВУЗах) "
-"установлен порядок, по которому запрещается использовать их компьютеры в "
-"таких проектах, как %1."
+msgstr "Запускайте %1 только на компьютерах, которыми Вы владеете, или для которых Вы получили права владельца. В некоторых компаниях и школах (ВУЗах) установлен порядок, по которому запрещается использовать их компьютеры в таких проектах, как %1."
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
-msgstr "Как %1 будет использовать Ваш компьютер"
+msgstr "Как %1 будет использовать ваш компьютер"
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"Когда Вы запускаете %1 на Вашем компьютере, он будет использовать часть "
-"ресурсов процессора, пространство на жестком диске (винчестере), и сетевой "
-"трафик. Вы можете контролировать, сколько ресурсов Вашего компьютера будет "
-"использовано для работы %1, и когда эти ресурсы будут использоваться."
+msgstr "Когда Вы запускаете %1 на Вашем компьютере, он будет использовать часть ресурсов процессора, пространство на жестком диске (винчестере), и сетевой трафик. Вы можете контролировать, сколько ресурсов вашего компьютера будет использовано для работы %1, и когда эти ресурсы будут использоваться."
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"Работа, совершенная Вашим компьютером, содействует решению задач %1, как "
-"описано на web-сайте проекта. Приложения могут меняться время от времени."
+msgstr "Работа, совершённая вашим компьютером, содействует решению задач %1, как описано на web-сайте проекта. Приложения могут меняться время от времени."
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr "Обеспечение конфиденциальности"
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Ваша учётная запись на %1 идентифицируется по имени, которое Вы указали. Это "
-"имя может быть показано на web-сайте %1, наряду со сводкой работы вашего "
-"компьютера, сделанной для %1. Если Вы хотите остаться неизвестным, выберите "
-"имя, которое не соответствует вашему настоящему имени."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Ваша учётная запись на %1 идентифицируется по имени, которое Вы указали. Это имя может быть показано на web-сайте %1, наряду со сводкой работы вашего компьютера, сделанной для %1. Если Вы хотите остаться неизвестным, выберите имя, которое не соответствует вашему настоящему имени."
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Если Вы принимаете участие в %1, информация о Вашем компьютере (такая как "
-"тип процессора, объем оперативной памяти, и т.д.) будет записана проектом %1 "
-"и использована для принятия решения о том, какой тип работы назначить "
-"Вашему компьютеру. Эта информация также будет показана на web-сайте %1. "
-"Ничего, что указывало бы на местонахождение Вашего компьютера (например, его "
-"доменное или сетевое имя), не будет показываться."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Чтобы принять участие в %1, Вы должны указать Ваш адрес электронной почты. "
-"Этот адрес не будет показан на web-сайте %1 или доступен другим "
-"организациям. %1 может посылать Вам периодические новостные письма; тем не "
-"менее, Вы можете отказаться от них в любое время."
+msgstr "Если Вы принимаете участие в %1, информация о вашем компьютере (такая как тип процессора, объем оперативной памяти, и т.д.) будет записана проектом %1 и использована для принятия решения о том, какой тип работы назначить вашему компьютеру. Эта информация также будет показана на web-сайте %1. Ничего, что указывало бы на местонахождение вашего компьютера (например, его доменное или сетевое имя), не будет показываться."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Чтобы принять участие в %1, Вы должны указать ваш адрес электронной почты. Этот адрес не будет показан на web-сайте %1 или доступен другим организациям. %1 может посылать Вам периодические новостные письма; тем не менее, Вы можете отказаться от них в любое время."
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"Личные сообщения, отправляемые на веб-сайте %1, видимы только отправителю и "
-"получателю. %1 не просматривает и не контролирует содержимое личных "
-"сообщений.  Если Вы получаете нежелательные личные сообщения от некоторых "
-"пользователей %1, Вы можете добавить их в ваш %2фильтр сообщений%3.  В этом "
-"случае Вы не увидите ни одного общего или личного сообщения от таких "
-"пользователей."
+msgstr "Личные сообщения, отправляемые на веб-сайте %1, видимы только отправителю и получателю. %1 не просматривает и не контролирует содержимое личных сообщений.  Если Вы получаете нежелательные личные сообщения от некоторых пользователей %1, Вы можете добавить их в ваш %2фильтр сообщений%3.  В этом случае Вы не увидите ни одного общего или личного сообщения от таких пользователей."
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Если Вы используете форумы нашего веб-сайта, Вы должны следовать %2данным "
-"рекомендациям%3. Сообщения, публикуемые на форумах %1, видны каждому, в том "
-"числе лицам, не являющимся участниками проекта.  Публикуя сообщения на "
-"форумах, Вы предоставляете каждому безотзывную лицензию на просмотр и "
-"копирование ваших сообщений."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Если Вы используете форумы нашего веб-сайта, Вы должны следовать %2данным рекомендациям%3. Сообщения, публикуемые на форумах %1, видны каждому, в том числе лицам, не являющимся участниками проекта.  Публикуя сообщения на форумах, Вы предоставляете каждому безотзывную лицензию на просмотр и копирование ваших сообщений."
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
 msgstr "Безопасно ли запускать %1?"
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Каждый раз при загрузке программы через Интернет может случиться следующее: "
-"программа может иметь опасные ошибки, или сервер может быть взломан. %1 "
-"предпринял усилия для минимизации этих рисков. Мы тщательно оттестировали "
-"наши приложения. Наши сервера защищены сетевым экраном и настроены на "
-"высокую безопасность. Чтобы удостовериться в целостности загружаемых "
-"программ, все исполняемые файлы подписаны цифровой подписью на защищенном "
-"компьютере, не подключенном к сети Интернет."
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Каждый раз при загрузке программы через Интернет может случиться следующее: программа может иметь опасные ошибки, или сервер может быть взломан. %1 предпринял усилия для минимизации этих рисков. Мы тщательно оттестировали наши приложения. Наши сервера защищены сетевым экраном и настроены на высокую безопасность. Чтобы удостовериться в целостности загружаемых программ, все исполняемые файлы подписаны цифровой подписью на защищенном компьютере, не подключенном к сети Интернет."
 
-#: ../user/info.php:50
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Приложения, запускаемые проектом %1, могут послужить причиной перегрева "
-"некоторых компьютеров. Если это случилось, остановите выполнение %1 или "
-"используйте %2утилиты%3, которые ограничят использование процессора."
+msgstr "Приложения, запускаемые проектом %1, могут послужить причиной перегрева некоторых компьютеров. Если это случилось, остановите выполнение %1 или используйте %2утилиты%3, которые ограничат использование процессора."
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 был разработан %2. BOINC был разработан в Университете Калифорнии (the "
-"University of California)."
+msgstr "%1 был разработан %2. BOINC был разработан в Университете Калифорнии (the University of California)."
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr "Ответственность"
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 и %2 не берут на себя ответственность за ущерб, нанесенный Вашему "
-"компьютеру, потерю данных, или любое другое событие или инцидент, который "
-"может произойти как результат участия в %1."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 и %2 не берут на себя ответственность за ущерб, нанесенный вашему компьютеру, потерю данных, или любое другое событие или инцидент, который может произойти как результат участия в %1."
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr "Другие BOINC-проекты"
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"Другие проекты используют ту же платформу - BOINC - что и %1. Вы можете "
-"захотеть принять участие в одном или нескольких из этих проектов. Если Вы "
-"присоединитесь к нескольким проектам, Ваш компьютер будет выполнять полезную "
-"работу, даже когда у %1 не будет заданий, доступных для обработки."
+msgstr "Другие проекты используют ту же платформу - BOINC - что и %1. Вы можете захотеть принять участие в одном или нескольких из этих проектов. Если Вы присоединитесь к нескольким проектам, ваш компьютер будет выполнять полезную работу, даже когда у %1 не будет заданий, доступных для обработки."
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"Другие проекты не связаны с %1, и мы не можем поручиться за их безопасность "
-"или природу их исследований. Присоединяйтесь к ним на свой страх и риск."
+msgstr "Другие проекты не связаны с %1, и мы не можем поручиться за их безопасность или природу их исследований. Присоединяйтесь к ним на свой страх и риск."
 
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Выбор языка"
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Я новичок"
 
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-"Этот веб-сайт доступен на нескольких языках. В настоящее время выбран язык: "
-"%1."
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Я пользователь BOINC"
 
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Обычно выбор языка определяется языковыми настройками вашего браузера, а "
-"именно: %1.  Вы можете поменять эту настройку, используя:"
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Прочтите наши %1Правила и политику%2."
 
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Сервис/Настройки/Общие (Tools/Options/General)"
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Загрузите BOINC для настольного компьютера."
 
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-"Microsoft IE: Сервис/Свойства обозревателя/Языки (Tools/Internet "
-"Options/Languages)"
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Страница загрузки"
 
-#: ../user/language_select.php:89
+#: html/user/join.php:52
 msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Или Вы можете выбрать язык, нажав на одну из ссылок.  Вашему браузеру будет "
-"отправлен файл 'cookie'; убедитесь, что ваш браузер принимает файлы 'cookie' "
-"нашего домена."
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Для устройств Android загрузите BOINC с Google Play Store или Amazon App Store."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Запустите программу установки."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Выберите %1 из списка или введите %2"
 
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Название языка (нажмите для выбора)"
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Установите BOINC на это устройство, если ещё отсутствует."
 
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Использовать языковые настройки обозревателя"
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Выберите Сервис / Добавить проект. Выберите %1 из списка или введите %2"
 
-#: ../user/language_select.php:113
+#: html/user/join.php:76
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Переводы сделаны добровольцами.  Если Ваш родной язык здесь отсутствует, %"
-"1Вы можете обеспечить перевод%2."
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Если вы используете на этом компьютере версию BOINC для командной строки, %1создайте учётную запись%2, затем для добавления проекта используйте команду %3boinccmd --project_attach%4."
 
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Адрес email:"
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Присоединение к команде %1"
 
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "забыли адрес email?"
+#: html/user/language_select.php:46
+msgid "Language selection"
+msgstr "Выбор языка"
+
+#: html/user/language_select.php:57
+msgid ""
+"This web site is available in several languages. The currently selected "
+"language is %1."
+msgstr "Этот веб-сайт доступен на нескольких языках. В настоящее время выбран язык: %1."
+
+#: html/user/language_select.php:62
+msgid ""
+"Normally the choice of language is determined by your browser's language "
+"setting, which is: %1.  You can change this setting using:"
+msgstr "Обычно выбор языка определяется языковыми настройками вашего браузера, а именно: %1.  Вы можете поменять эту настройку, используя:"
 
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Пароль:"
+#: html/user/language_select.php:67
+msgid "Firefox: Tools/Options/General"
+msgstr "Firefox: Сервис/Настройки/Общие (Tools/Options/General)"
 
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "забыли пароль?"
+#: html/user/language_select.php:69
+msgid "Microsoft IE: Tools/Internet Options/Languages"
+msgstr "Microsoft IE: Сервис/Свойства обозревателя/Языки (Tools/Internet Options/Languages)"
 
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Оставаться авторизованным"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Или вы можете выбрать язык из меню:"
+
+#: html/user/language_select.php:85
+msgid ""
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Переводы сделаны добровольцами.  Если ваш родной язык здесь отсутствует или не полон, %1Вы можете помочь с переводом%2."
 
-#: ../user/login_form.php:62
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr "или %1создать учётную запись%2."
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr "Обработка %1"
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr "%1 объединён с %2"
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
 msgstr "Вернуться к списку ваших компьютеров"
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -5238,43 +5081,32 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"Данная операция объединяет компьютеры на основе их доменных имен.\n"
-"<p>\n"
-"Эта операция для каждого доменного имени объединит все старые компьютеры\n"
-"с таким именем с самым новым компьютером с таким же именем.\n"
-"Несовместимые компьютеры не будут объединены.\n"
-"<p>"
+msgstr "Данная операция объединяет компьютеры на основе их доменных имен.\n<p>\nЭта операция для каждого доменного имени объединит все старые компьютеры\nс таким именем с самым новым компьютером с таким же именем.\nНесовместимые компьютеры не будут объединены.\n<p>"
 
-#: ../user/merge_by_name.php:82
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr "Вперёд, сделать это"
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr "Вернуться к списку компьютеров"
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"Для максимизации обсуждения и обмена информацией,\n"
-"наши доски сообщений модерируются.\n"
-"Сообщения доски сообщений подлежат следующим правилам размещения:\n"
+msgstr "\nДля максимизации обсуждения и обмена информацией,\nнаши доски сообщений модерируются.\nСообщения доски сообщений подлежат следующим правилам размещения:\n"
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5303,1938 +5135,1521 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Модераторы могут удалять сообщения, которые нарушают любые из этих правил.\n"
-"Авторы удалённых сообщений будут уведомлены по электронной почте.\n"
-"У серьёзных нарушителей может быть временно отменена возможность размещать "
-"сообщения\n"
-"(хотя для предотвращения злоупотреблений только администраторы проекта имеют "
-"возможность сделать это).\n"
-"Дополнительные виды плохого поведения ('взлом' сообщений для перехвата\n"
-"IP-адресов других участников, чрезмерное создание спам-обсуждений\n"
-"на форумах, и т.д.), хоть и не перечислены в формальных правилах,\n"
-"тем не менее могут привести к аналогичным мерам наказания.\n"
-"<p>\n"
-"Если Вы думаете, что сообщение нарушает какие-либо правила,\n"
-"нажмите красный крестик под сообщением и заполните форму;\n"
-"модераторы будут уведомлены о вашей жалобе.\n"
-"Пожалуйста, используйте эту кнопку только для явных\n"
-"нарушений - не для личных споров.\n"
-"<p>\n"
-"При модерации мы стараемся быть справедливыми, насколько это возможно,\n"
-"но в большом сообществе пользователей, с множеством различных точек зрения,\n"
-"всегда будут некоторые люди, которые будут недовольны нашими методами "
-"модерирования.\n"
-"Хоть мы и сожалеем, что это происходит,\n"
-"нужно понимать, что мы не можем удовлетворить всех людей во все времена\n"
-"и вынуждены принимать решения, основываясь на наших ресурсах и\n"
-"что лучше для форума в целом.\n"
-"Пожалуйста, не надо обсуждать нашу политику модерации на форумах.\n"
-"Мы - не социально-инженерный проект, и мы не создаем совершенно\n"
-"справедливую систему. Поэтому такие дискуссии, скорее всего, будут\n"
-"контрпродуктивными и потенциально опасными. Если у вас есть законное "
-"требование,\n"
-"отправьте электронное письмо по адресу, указанному ниже.\n"
-"<p>\n"
-"Эта политика модерирования установлена в рамках проекта %1.\n"
-"Если у Вас есть комментарии к этой политике, отправьте письмо на адрес %2.\n"
-"\n"
+msgstr "\n<p>\nМодераторы могут удалять сообщения, которые нарушают любые из этих правил.\nАвторы удалённых сообщений будут уведомлены по электронной почте.\nУ серьёзных нарушителей может быть временно отменена возможность размещать сообщения\n(хотя для предотвращения злоупотреблений только администраторы проекта имеют возможность сделать это).\nДополнительные виды плохого поведения ('взлом' сообщений для перехвата\nIP-адресов других участников, чрезмерное создание спам-обсуждений\nна фо [...]
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr "Очки, ожидающие подтверждения"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr "ID задания"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr "ID задачи"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr "ID компьютера"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr "Запрошено очков"
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr "Очки, ожидающие подтверждения: %1"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr "Заблокировать сообщения от этого пользователя"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr "Заблокировать пользователя"
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr "Ваше сообщение было отправлено."
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr "У Вас нет личных сообщений."
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr "Отправитель и дата"
 
-#: ../user/pm.php:106
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr "Ответить на это сообщение"
 
-#: ../user/pm.php:107
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr "Удалить это сообщение"
 
-#: ../user/pm.php:112
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr "Выбрать все"
 
-#: ../user/pm.php:114
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr "Отменить выбор всех"
 
-#: ../user/pm.php:117
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr "Удалить выбранные сообщения"
 
-#: ../user/pm.php:140
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr "Отправитель"
 
-#: ../user/pm.php:143
+#: html/user/pm.php:137
 msgid "Date"
 msgstr "Дата"
 
-#: ../user/pm.php:185
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
 msgstr "Вы должны заполнить все поля, чтобы отправить личное сообщение"
 
-#: ../user/pm.php:188
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Сообщение отправлено"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Ваше сообщение было отправлено участникам команды %1."
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Ваше сообщение было помечено как спам\n"
-"антиспам-системой Akismet.\n"
-"Пожалуйста измените ваш текст и попробуйте ещё раз."
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Ваше сообщение было помечено как спам\nантиспам-системой Akismet.\nПожалуйста измените ваш текст и попробуйте ещё раз."
 
-#: ../user/pm.php:205
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr "Не удается найти пользователя с id %1"
 
-#: ../user/pm.php:210
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr "Не удается найти пользователя с именем %1"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"%1 - не уникальное имя пользователя; Вы должны будете использовать ID "
-"пользователя"
+msgstr "%1 - не уникальное имя пользователя; Вы должны будете использовать ID пользователя"
 
-#: ../user/pm.php:217
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Пользователь %1 (ID: %2) не принимает Ваши личные сообщения."
+msgstr "Пользователь %1 (ID: %2) не принимает ваши личные сообщения."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr "Нет такого пользователя"
 
-#: ../user/pm.php:242
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr "Действительно заблокировать %1?"
 
-#: ../user/pm.php:243
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr ""
-"Вы действительно уверены, что хотите заблокировать пользователя %1 "
-"отправлять Вам личные сообщения?"
+msgstr "Вы действительно уверены, что хотите заблокировать пользователя %1 отправлять Вам личные сообщения?"
 
-#: ../user/pm.php:244
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Пожалуйста отметьте, что Вы можете заблокировать только ограниченное "
-"количество пользователей."
+msgstr "Пожалуйста отметьте, что Вы можете заблокировать только ограниченное количество пользователей."
 
-#: ../user/pm.php:245
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr ""
-"Как только пользователь был заблокирован, Вы можете разблокировать его "
-"используя страницу настроек форума."
+msgstr "Как только пользователь был заблокирован, Вы можете разблокировать его используя страницу настроек форума."
 
-#: ../user/pm.php:252
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr "Нет, отменить"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr "нет такого пользователя"
 
-#: ../user/pm.php:263
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr "Пользователь %1 заблокирован"
 
-#: ../user/pm.php:265
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "Отправка Вам личных сообщений от пользователя %1 была заблокирована."
 
-#: ../user/pm.php:266
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "Чтобы разблокировать, посетите %1настройки доски сообщений%2"
 
-#: ../user/pm.php:302
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr "Неизвестное действие"
 
-#: ../user/prefs.php:32
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 для конфигурации %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Назад к настройкам"
+
+#: html/user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Ваши настройки обновлены и\n"
-"          будут задействованы, когда ваш компьютер свяжется с %1,\n"
-"          или Вы выполните команду %2Обновить%3 из Менеджера BOINC."
+msgstr "Ваши настройки обновлены и\n          будут задействованы, когда ваш компьютер свяжется с %1,\n          или Вы выполните команду %2Обновить%3 из Менеджера BOINC."
 
-#: ../user/prefs.php:41
+#: html/user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Ваши настройки были сброшены к значениям по умолчанию, и\n"
-"          будут задействованы, когда ваш компьютер свяжется с %1,\n"
-"          или Вы выполните команду %2Обновить%3 из Менеджера BOINC."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 для конфигурации %2"
+msgstr "Ваши настройки были сброшены к значениям по умолчанию, и\n          будут задействованы, когда ваш компьютер свяжется с %1,\n          или Вы выполните команду %2Обновить%3 из Менеджера BOINC."
 
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Назад к настройкам"
-
-#: ../user/prefs_remove.php:45
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "Подтверждение удаления настроек"
 
-#: ../user/prefs_remove.php:48
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-"Вы уверены, что хотите удалить ваши отдельные настройки %1 для конфигурации "
-"%2?"
+msgstr "Вы уверены, что хотите удалить ваши отдельные настройки %1 для конфигурации %2?"
 
-#: ../user/prefs_remove.php:52
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "Удалить настройки"
 
-#: ../user/prefs_remove.php:54
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "Отмена"
 
-#: ../user/profile_menu.php:35
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"%1Профили%2 позволяют людям разделять биографические данные и личные мнения "
-"с сообществом %3."
+msgstr "%1Профили%2 позволяют людям разделять биографические данные и личные мнения с сообществом %3."
 
-#: ../user/profile_menu.php:36
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
-msgstr ""
-"Исследуйте разнообразие ваших единомышленников-добровольцев, и представьте "
-"вашу собственную точку зрения другим."
+msgstr "Исследуйте разнообразие ваших единомышленников-добровольцев, и представьте вашу собственную точку зрения другим."
 
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"Если Вы этого еще не сделали, Вы можете %1создать свой собственный профиль "
-"пользователя%2, чтобы другие смогли его увидеть!"
+msgstr "Если Вы этого еще не сделали, Вы можете %1создать свой собственный профиль пользователя%2, чтобы другие смогли его увидеть!"
 
-#: ../user/profile_menu.php:42
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "Пользователь Дня"
 
-#: ../user/profile_menu.php:57
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "Обозреватель профилей пользователей"
 
-#: ../user/profile_menu.php:60
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "Посмотреть %1Галерею картинок пользователей%2."
 
-#: ../user/profile_menu.php:61
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "Просмотреть профили %1по странам%2."
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr ""
-"Просмотреть профили %1в случайном порядке%2, %3в случайном порядке с "
-"картинками%2, или %4в случайном порядке без картинок%2."
+msgstr "Просмотреть профили %1в случайном порядке%2, %3в случайном порядке с картинками%2, или %4в случайном порядке без картинок%2."
 
-#: ../user/profile_menu.php:66
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "Алфавитные списки профилей:"
 
-#: ../user/profile_menu.php:72
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "Поиск по тексту профиля"
 
-#: ../user/profile_menu.php:98
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr "Нет профилей"
 
-#: ../user/profile_menu.php:99
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
-msgstr "Нет профилей, соответствующих Вашему запросу."
+msgstr "Нет профилей, соответствующих вашему запросу."
 
-#: ../user/profile_rate.php:29
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "Неверный тип голоса:"
 
-#: ../user/profile_rate.php:34
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "Голос принят"
 
-#: ../user/profile_rate.php:38
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr "Спасибо"
 
-#: ../user/profile_rate.php:41
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "Ваша рекомендация была принята."
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "Ваш голос против этого профиля был принят."
 
-#: ../user/profile_rate.php:46
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "Вернуться к профилю."
 
-#: ../user/profile_search_action.php:36
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "Профили, содержащие '%1'"
 
-#: ../user/profile_search_action.php:40
+#: html/user/profile_search_action.php:42
 msgid "User name"
 msgstr "Имя пользователя"
 
-#: ../user/profile_search_action.php:41
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "Присоединился к проекту"
 
-#: ../user/profile_search_action.php:44
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "В среднем за день"
 
-#: ../user/profile_search_action.php:54
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "Не найдено профилей, содержащих '%1'"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Задание %1"
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Нет такого задания:"
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr "Эта возможность временно отключена"
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr "Компьютер с ID %1 не найден"
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr "Нет доступа"
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
 msgstr "Отсутствует ID пользователя или ID компьютера"
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr "Нет заданий для показа"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Работает"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 временно остановлен для обслуживания."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "Что такое %1?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Новости"
 
-#: ../user/server_status.php:100
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr "Не работает"
 
-#: ../user/server_status.php:103
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "Работает"
+
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr "Отключен"
 
-#: ../user/server_status.php:231
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr "Статус проекта"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Версия серверного ПО: %1"
-
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr "Программа"
 
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr "Имя сервера"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "Веб-страницы, управляемые данными"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "Сервер загрузки/выгрузки"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "Планировщик"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Работает:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Программа работает нормально"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Не работает:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Программа завершилась с ошибкой или проект выключен"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Отключен:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Программа была остановлена"
-
-#: ../user/server_status.php:303
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr "Статус вычислений"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Сервер базы данных не доступен"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Задания, готовые к отправке"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Задания обрабатываются"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Задачи, ожидающие проверки"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Задачи, ожидающие слияния"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Задачи, ожидающие удаления"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Задания, ожидающие удаления"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Отставание в обработке (часы)"
-
-#: ../user/server_status.php:374
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr "Участников"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "с недавними очками"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "с очками"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "зарегистрировались за последние 24 ч."
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "текущая скорость (гигафлопс)"
-
-#: ../user/server_status.php:420
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr "Распределение заданий по приложениям"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "приложение"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "неотправленных"
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Время обработки последних 100 заданий, в часах: среднее, мин., макс."
 
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "в обработке"
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Пользователей за последние 24ч."
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "среднее время обработки последних 100 результатов (в ч.) (мин.-макс.)"
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Версия схемы базы данных: "
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "пользователей за последние 24ч."
-
-#: ../user/show_host_detail.php:40
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr "Компьютер %1"
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr "Статистика и лидеры"
 
-#: ../user/stats.php:28
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr "Статистика %1"
 
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Более детальная статистика %1 и других BOINC-проектов доступна на нескольких "
-"вебсайтах:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Вы также можете получить вашу текущую статистику в виде \"изображения для "
-"подписи\":"
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "Лучшие участники"
 
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Дополнительно Вы можете получить вашу индивидуальную суммарную статистику по "
-"всем проектам BOINC с нескольких вебсайтов; см. вашу %1домашнюю страницу%2."
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "Лучшие команды"
 
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "Участники %1 могут объединяться в %2команды%3."
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "Лучшие компьютеры"
 
-#: ../user/team.php:29
+#: html/user/stats.php:53
 msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Вы можете состоять только в одной команде. Вы можете присоединиться или "
-"покинуть команду в любое время."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "У каждой команды есть %1основатель%2, который может:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "иметь доступ к адресам электронной почты участников команды"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "редактировать название и описание команды"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "добавить или удалить Администраторов команды"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "удалять участников из команды"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "расформировать команду, в которой нет участников"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Чтобы присоединиться к команде, посетите ее страницу и нажмите %"
-"1Присоединиться к этой команде%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Найти команду"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Все команды"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "Команды типа '%1'"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Более детальная статистика %1 и других BOINC-проектов доступна на нескольких вебсайтах:"
 
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Создать новую команду"
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Вы также можете получить вашу текущую статистику в виде \"изображения для подписи\":"
 
-#: ../user/team.php:59
+#: html/user/stats.php:59
 msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Если Вы не можете найти подходящую Вам команду, Вы можете %1создать новую "
-"команду%2."
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Дополнительно Вы можете получить вашу индивидуальную суммарную статистику по всем проектам BOINC с нескольких вебсайтов; см. вашу %1домашнюю страницу%2."
 
-#: ../user/team_admins.php:34
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "Удалить статус Администратора команды у этого участника"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr "Добавить или удалить Администраторов команды"
 
-#: ../user/team_admins.php:41
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Вы можете выбрать участников команды в качестве 'Администраторов команды'. "
-"Администраторы команды могут:"
+msgstr "Вы можете выбрать участников команды в качестве 'Администраторов команды'. Администраторы команды могут:"
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "Редактировать информацию о команде (название, URL, описание, страна)"
 
-#: ../user/team_admins.php:44
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "Просматривать историю присоединения/выхода из команды"
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Отправить сообщения команде"
+
+#: html/user/team_admins.php:48
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Модерировать форум команды, если есть (администраторы получают уведомления "
-"по электронной почте о событиях модерации и о красных X-сообщениях)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Модерировать форум команды, если есть (администраторы получают уведомления по электронной почте о событиях модерации и о красных X-сообщениях)"
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr "Администраторы команды не могут:"
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr "Поменять основателя команды"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr "Удалить участников"
 
-#: ../user/team_admins.php:53
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Если Администратор команды покидает команду, он перестает быть "
-"Администратором."
+msgstr "Если Администратор команды покидает команду, он перестает быть Администратором."
 
-#: ../user/team_admins.php:54
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr ""
-"Мы рекомендуем Вам выбирать в качестве Администраторов команды только людей, "
-"которых Вы знаете и которым доверяете."
+msgstr "Мы рекомендуем Вам выбирать в качестве Администраторов команды только людей, которых Вы знаете и которым доверяете."
 
-#: ../user/team_admins.php:59
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr "В настоящее время у команды нет Администраторов"
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr "Текущие Администраторы команды"
 
-#: ../user/team_admins.php:62
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr "Стал Администратором команды с"
 
-#: ../user/team_admins.php:77
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr "Добавление Администратора команды"
 
-#: ../user/team_admins.php:78
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr "Адрес email участника команды:"
 
-#: ../user/team_admins.php:90
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr "не удалось удалить администратора"
 
-#: ../user/team_admins.php:99
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr "Пользователь не является участником команды"
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr "%1 уже администратор команды %2"
 
-#: ../user/team_admins.php:105
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr "Невозможно добавить администратора"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "Нет такой команды"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr "нет такой команды"
 
-#: ../user/team_change_founder_action.php:38
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "Пользователь не является участником команды %1"
 
-#: ../user/team_change_founder_action.php:41
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "Изменение основателя команды %1"
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 теперь основатель команды %2"
 
-#: ../user/team_change_founder_form.php:37
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "Изменение основателя команды %1"
 
-#: ../user/team_change_founder_form.php:43
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr ""
-"Участник команды %1 запросил полномочия основателя этой команды %2, но "
-"покинул команду, таким образом отменив запрос."
+msgstr "Участник команды %1 запросил полномочия основателя этой команды %2, но покинул команду, таким образом отменив запрос."
 
-#: ../user/team_change_founder_form.php:49
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Участник команды %1 запросил полномочия основателя этой команды. Это, "
-"возможно, произошло из-за того, что Вы покинули команду или не "
-"контактировали с командой в течение долгого времени."
+msgstr "Участник команды %1 запросил полномочия основателя этой команды. Это, возможно, произошло из-за того, что Вы покинули команду или не контактировали с командой в течение долгого времени."
 
-#: ../user/team_change_founder_form.php:55
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "отклонить запрос"
 
-#: ../user/team_change_founder_form.php:58
+#: html/user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Если Вы не отмените запрос до %1, у участника %2 будет возможность принять "
-"полномочия основателя команды.<br /><br />\n"
-"                   Чтобы принять запрос, назначьте полномочия основателя "
-"участнику %3, используя форму ниже."
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Если Вы не отмените запрос до %1, у участника %2 будет возможность принять полномочия основателя команды.<br /><br />\n                   Чтобы принять запрос, назначьте полномочия основателя участнику %3, используя форму ниже."
 
-#: ../user/team_change_founder_form.php:66
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "Запросов на смену основателя нет в ожидании."
 
-#: ../user/team_change_founder_form.php:69
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Чтобы назначить привилегии основателя этой команды другому участнику, "
-"отметьте участника и нажмите кнопку <strong>Поменять основателя</strong> "
-"внизу."
+"member name and click %1Change founder%2 below."
+msgstr "Чтобы назначить привилегии основателя этой команды другому участнику, отметьте участника и нажмите кнопку %1Поменять основателя%2 внизу."
 
-#: ../user/team_change_founder_form.php:76
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr "Новый основатель?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr "Поменять основателя"
 
-#: ../user/team_change_founder_form.php:108
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
 msgstr "Нет участников, которым можно передать команду."
 
-#: ../user/team_create_action.php:29
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr "Вы должны выбрать непустое название команды"
 
-#: ../user/team_create_action.php:34
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr "Команда с названием %1 уже существует - попробуйте другое имя"
 
-#: ../user/team_create_action.php:54
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
 msgstr "Не удалось создать команду - пожалуйста попытайтесь позже."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr "Создать команду"
 
-#: ../user/team_create_form.php:30
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Вы состоите в команде %1. Вы должны %2выйти из этой команды%3 перед "
-"созданием новой."
+msgstr "Вы состоите в команде %1. Вы должны %2выйти из этой команды%3 перед созданием новой."
 
-#: ../user/team_delta.php:65
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "Не основатель и не администратор"
 
-#: ../user/team_delta.php:72
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "История команды %1"
 
-#: ../user/team_delta.php:75
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr "Когда"
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr "Участник"
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr "Действие"
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr "Всего очков на момент действия"
 
-#: ../user/team_edit_action.php:53
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr "неправильная страна"
 
-#: ../user/team_edit_action.php:59
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "Название '%1' уже используется другой командой."
 
-#: ../user/team_edit_action.php:62
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "Необходимо указать название команды"
 
-#: ../user/team_edit_action.php:90
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "Не удалось обновить команду - пожалуйста, попробуйте ещё раз позже."
 
-#: ../user/team_edit_form.php:33
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "Редактирование команды %1"
 
-#: ../user/team_edit_form.php:34
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "Обновить информацию о команде"
 
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "Список email-адресов команды %1"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Участники команды %1"
 
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Список участников команды %1"
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
 
-#: ../user/team_email_list.php:78
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr "Показать как простой текст"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "Создать доску сообщений"
 
-#: ../user/team_forum.php:29
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "Вы можете создать доску сообщений для общения в команде %1."
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "Только участники команды смогут оставлять сообщения."
 
-#: ../user/team_forum.php:32
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "По вашему выбору, только участники смогут её читать."
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr "У Вас и ваших Администраторов команды будут права модерирования."
 
-#: ../user/team_forum.php:40
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "Создать доску сообщений для команды %1"
 
-#: ../user/team_forum.php:48
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "У команды уже есть доска сообщений"
 
-#: ../user/team_forum.php:59
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "Доска сообщений команды"
 
-#: ../user/team_forum.php:71
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr "Минимальное время между сообщениями (секунды)"
 
-#: ../user/team_forum.php:74
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
 msgstr "Минимальное общее количество очков для написания сообщений"
 
-#: ../user/team_forum.php:77
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
 msgstr "Минимальное среднее количество очков для написания сообщений"
 
-#: ../user/team_forum.php:80
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr "Отправить"
 
-#: ../user/team_forum.php:89
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr "Удалить доску сообщений вашей команды."
 
-#: ../user/team_forum.php:97
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr "Действительно удалить доску сообщений?"
 
-#: ../user/team_forum.php:98
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"Вы уверены, что Вы хотите удалить доску сообщений вашей команды? Все "
-"обсуждения и сообщения будут безвозвратно удалены. (Вы сможете, однако, "
-"позже создать новую доску сообщений)."
+msgstr "Вы уверены, что Вы хотите удалить доску сообщений вашей команды? Все обсуждения и сообщения будут безвозвратно удалены. (Вы сможете, однако, позже создать новую доску сообщений)."
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr "Да - удалить доску сообщений"
 
-#: ../user/team_forum.php:121
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr "Доска сообщений удалена"
 
-#: ../user/team_forum.php:124
+#: html/user/team_forum.php:132
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Доска сообщений вашей команды была удалена. Теперь Вы можете %1создать новую"
-"%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Доска сообщений вашей команды была удалена. Теперь Вы можете %1создать новую%2."
 
-#: ../user/team_forum.php:143
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr "Доска сообщений команды обновлена"
 
-#: ../user/team_forum.php:144
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr "Обновление завершено успешно"
 
-#: ../user/team_forum.php:147
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr "Обновление не удалось"
 
-#: ../user/team_forum.php:154
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr "У команды нет форума"
 
-#: ../user/team_founder_transfer_action.php:36
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
-msgstr ""
-"Вы должны быть участником команды, чтобы получить доступ к этой странице."
+msgstr "Вы должны быть участником команды, чтобы получить доступ к этой странице."
 
-#: ../user/team_founder_transfer_action.php:90
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr "Запрос полномочий основателя команды %1"
 
-#: ../user/team_founder_transfer_action.php:98
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Текущий основатель был проинформирован о вашем запросе по электронной почте "
-"и личным сообщением.<br /><br />\n"
-"                       Если основатель не ответит в течение 60 дней, у Вас "
-"будет возможность стать новым основателем."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "Текущий основатель был проинформирован о вашем запросе по электронной почте и личным сообщением.<br /><br />\n                       Если основатель не ответит в течение 60 дней, у Вас будет возможность стать новым основателем."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
 msgstr "Запрос полномочий основателя в данный момент не разрешён"
 
-#: ../user/team_founder_transfer_action.php:109
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr "Принятие полномочий основателя команды %1"
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"Поздравляем, Вы теперь основатель команды %1. Перейдите на %2страницу вашей "
-"учётной записи%3, чтобы воспользоваться возможностями Администратора "
-"команды."
+msgstr "Поздравляем, Вы теперь основатель команды %1. Перейдите на %2страницу вашей учётной записи%3, чтобы воспользоваться возможностями Администратора команды."
 
-#: ../user/team_founder_transfer_action.php:120
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr "Отмена запроса на смену основателя"
 
-#: ../user/team_founder_transfer_action.php:127
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr "Запрос полномочий основателя от участника %1 был отменен."
 
-#: ../user/team_founder_transfer_action.php:130
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr "Не было запросов на смену основателя."
 
-#: ../user/team_founder_transfer_action.php:134
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr "неизвестное действие %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "Вернуться на страницу команды"
 
-#: ../user/team_founder_transfer_form.php:28
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
-msgstr ""
-"Вы должны быть участником команды, чтобы получить доступ к этой странице."
+msgstr "Вы должны быть участником команды, чтобы получить доступ к этой странице."
 
-#: ../user/team_founder_transfer_form.php:31
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "Запрос на смену основателя команды %1"
 
-#: ../user/team_founder_transfer_form.php:38
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "Вы теперь основатель команды %1."
 
-#: ../user/team_founder_transfer_form.php:44
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "Вы запросили смену основателя команды %1 с %2."
 
-#: ../user/team_founder_transfer_form.php:47
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr ""
-"60 дней прошли с момента подачи вашего запроса, а основатель так и не "
-"ответил. Вы можете теперь принять полномочия основателя, щёлкнув здесь:"
+msgstr "60 дней прошли с момента подачи вашего запроса, а основатель так и не ответил. Вы можете теперь принять полномочия основателя, щёлкнув здесь:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "Принять полномочия основателя"
 
-#: ../user/team_founder_transfer_form.php:54
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr ""
-"Основатель был проинформирован о вашем запросе. Если он/она не ответит до %"
-"1, у Вас будет возможность стать основателем."
+msgstr "Основатель был проинформирован о вашем запросе. Если он/она не ответит до %1, у Вас будет возможность стать основателем."
 
-#: ../user/team_founder_transfer_form.php:60
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"Если основатель команды не активен, а Вы хотите принять роль основателя, "
-"нажмите на кнопку ниже. Текущему основателю будет отправлено электронное "
-"письмо с подробной информацией о вашем запросе, и у него будет возможность "
-"передать Вам полномочия основателя или отклонить ваш запрос. Если основатель "
-"не ответит в течение 60 дней, у Вас будет возможность стать основателем.<br "
-"/><br />\n"
-"                        Вы уверены, что хотите запросить полномочия "
-"основателя?"
-
-#: ../user/team_founder_transfer_form.php:65
+msgstr "Если основатель команды не активен, а Вы хотите принять роль основателя, нажмите на кнопку ниже. Текущему основателю будет отправлено электронное письмо с подробной информацией о вашем запросе, и у него будет возможность передать Вам полномочия основателя или отклонить ваш запрос. Если основатель не ответит в течение 60 дней, у Вас будет возможность стать основателем.<br /><br />\n                        Вы уверены, что хотите запросить полномочия основателя?"
+
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "Запросить смену основателя"
 
-#: ../user/team_founder_transfer_form.php:74
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "%2 пользователем %1 уже была запрошена смена основателя."
 
-#: ../user/team_founder_transfer_form.php:77
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr ""
-"Смена основателя была запрошена в течение последних 90 дней, поэтому новые "
-"запросы не разрешены. Пожалуйста, попробуйте ещё раз позже."
+msgstr "Смена основателя была запрошена в течение последних 90 дней, поэтому новые запросы не разрешены. Пожалуйста, попробуйте ещё раз позже."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr "Команда %1 не допускает присоединений."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr "Уже участник команды"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr "Вы уже участник команды %1."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-"Не удалось присоединиться к команде - пожалуйста, попробуйте ещё раз позже."
-
-#: ../user/team_join_action.php:40
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
-msgstr "Присоединение к команде %1."
+msgstr "Присоединение к команде %1"
 
-#: ../user/team_join_action.php:41
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "Вы присоединились к команде %1."
 
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Присоединение к команде %1."
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Не удалось присоединиться к команде - пожалуйста, попробуйте ещё раз позже."
 
-#: ../user/team_join_form.php:33
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr "Пожалуйста, примите во внимание:"
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-"Присоединение к команде дает доступ её основателю к вашему адресу "
-"электронной почты."
+msgstr "Присоединение к команде дает доступ её основателю к вашему адресу электронной почты."
 
-#: ../user/team_join_form.php:36
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "Присоединение к команде не повлияет на очки вашей учётной записи."
 
-#: ../user/team_join_form.php:43
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr "Присоединиться к команде"
 
-#: ../user/team_lookup.php:84
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr "Результаты поиска"
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr "Результаты поиска '%1'"
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
 msgstr "Вы можете увидеть участников этих команд, статистику и информацию."
 
-#: ../user/team_lookup.php:98
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Более 100 команд удовлетворяют условиям вашего поиска. Показаны первые 100 "
-"команд."
+msgstr "Более 100 команд удовлетворяют условиям вашего поиска. Показаны первые 100 команд."
 
-#: ../user/team_lookup.php:104
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Конец результатов. %1 Если Вы не смогли найти команду, которую ищете, Вы "
-"можете сами %2создать команду%3."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Конец результатов. %1 Если Вы не смогли найти команду, которую ищете, Вы можете сами %2создать команду%3."
 
-#: ../user/team_manage.php:26
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "Управление командой %1"
 
-#: ../user/team_manage.php:29
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr "Редактировать информацию о команде"
 
-#: ../user/team_manage.php:30
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "Изменение названия команды, URL, описания, типа или страны"
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr "Список участников:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr "текст"
 
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Просмотр имён участников и email-адресов"
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Просмотр информации об участнике"
+
+#: html/user/team_manage.php:40
 msgid "View change history:"
 msgstr "Просмотр истории изменений:"
 
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
 msgstr "Смотрите, когда участники присоединились или покинули эту команду"
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr "Ответить на запрос смены основателя."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-"Если Вы не ответите до %1, участник %2 сможет принять полномочия основателя "
-"этой команды."
+msgstr "Если Вы не ответите до %1, участник %2 сможет принять полномочия основателя этой команды."
 
-#: ../user/team_manage.php:55
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr "Удаление неактивных или нежелательных участников этой команды"
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr "Передача полномочий основателя команды другому участнику"
 
-#: ../user/team_manage.php:58
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr "Добавить/удалить Администраторов команды"
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
 msgstr "Дайте выбранным участникам команды привилегии Администратора команды"
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr "Удалить команду"
 
-#: ../user/team_manage.php:62
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr "Разрешено только если в команде нет участников"
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr "Создание или управление доской сообщений команды"
 
-#: ../user/team_manage.php:71
+#: html/user/team_manage.php:75
 msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Чтобы создать эту команду во всех проектах BOINC (текущих и будущих), Вы "
-"можете превратить ее в %1 глобальную команду BOINC%2."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Чтобы создать эту команду во всех проектах BOINC (текущих и будущих), Вы можете превратить ее в %1 глобальную команду BOINC%2."
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
-msgstr ""
-"Администраторы команды приглашаются присоединиться и участвовать в группе "
-"Google %1boinc-team-founders%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Администраторам команд BOINC доступны другие ресурсы на стороннем сайте, %"
-"1www.boincteams.com%2."
+msgstr "Администраторы команды приглашаются присоединиться и участвовать в группе Google %1boinc-team-founders%2."
 
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr "Нельзя удалить непустую команду"
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr "Команда %1 удалена"
 
-#: ../user/team_members.php:36
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr "Предел превышен:  Можно показать только первые 1000 участников."
 
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Участники команды %1"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "Участники %1 могут объединяться в %2команды%3."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Вы можете состоять только в одной команде. Вы можете присоединиться или покинуть команду в любое время."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "У каждой команды есть %1основатель%2, который может:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "редактировать название и описание команды"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "добавить или удалить Администраторов команды"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "удалять участников из команды"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "расформировать команду, в которой нет участников"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Чтобы присоединиться к команде, посетите её страницу и нажмите %1Присоединиться к этой команде%2."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Найти команду"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Все команды"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "Команды типа '%1'"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Создать новую команду"
 
-#: ../user/team_quit_action.php:32
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Если Вы не можете найти подходящую Вам команду, Вы можете %1создать новую команду%2."
+
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "Невозможно выйти из команды"
 
-#: ../user/team_quit_action.php:33
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "Команда не существует, или Вы не принадлежите ей."
 
-#: ../user/team_quit_form.php:31
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "Выход из команды %1"
 
-#: ../user/team_quit_form.php:32
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Обратите внимание, прежде чем выйти из команды:</strong>\n"
-"         <ul>\n"
-"         <li>Если Вы выйдете из команды, Вы можете позже присоединиться к "
-"ней снова, или присоединиться к любой другой команде на свой выбор\n"
-"         <li>Выход из команды никак не повлияет на вашу личную статистику.\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>Обратите внимание, прежде чем выйти из команды:</strong>\n         <ul>\n         <li>Если Вы выйдете из команды, Вы можете позже присоединиться к ней снова, или присоединиться к любой другой команде на свой выбор\n         <li>Выход из команды никак не повлияет на вашу личную статистику.\n         </ul>"
 
-#: ../user/team_quit_form.php:40
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "Выйти из команды"
 
-#: ../user/team_remove_inactive_action.php:31
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "Удаление пользователей из команды %1"
 
-#: ../user/team_remove_inactive_action.php:39
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1 не участник команды %2"
 
-#: ../user/team_remove_inactive_action.php:42
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 был удален"
 
-#: ../user/team_remove_inactive_form.php:32
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "Удаление участников из команды %1"
 
-#: ../user/team_remove_inactive_form.php:39
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr "Удалить?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr "Имя (ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr "Нет подходящих участников для удаления."
 
-#: ../user/team_remove_inactive_form.php:68
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr "Удалить участников"
 
-#: ../user/team_search.php:68
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr "Название команды"
 
-#: ../user/team_search.php:92
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Подтверждено?"
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr "Результаты поиска команд"
 
-#: ../user/team_search.php:94
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"Не найдено команд, удовлетворяющих вашим критериям. Попробуйте другой поиск."
+msgstr "Не найдено команд, удовлетворяющих вашим критериям. Попробуйте другой поиск."
 
-#: ../user/team_search.php:96
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr "Или Вы можете %1создать новую команду%2."
 
-#: ../user/team_search.php:100
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"Следующие команды удовлетворяют одному или нескольким критериям вашего "
-"поиска.\n"
-"            Чтобы присоединиться к команде, нажмите её название и перейдите "
-"на страницу команды,\n"
-"               затем нажмите %1Присоединиться к этой команде%2."
+msgstr "Следующие команды удовлетворяют одному или нескольким критериям вашего поиска.\n            Чтобы присоединиться к команде, нажмите её название и перейдите на страницу команды,\n               затем нажмите %1Присоединиться к этой команде%2."
 
-#: ../user/team_search.php:107
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr "Измените ваш поиск"
 
-#: ../user/team_search.php:181
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr ""
-"Вы можете объединиться в команду с другими людьми с похожими интересами, или "
-"из одной страны, компании, или школы."
+msgstr "Вы можете объединиться в команду с другими людьми с похожими интересами, или из одной страны, компании, или школы."
 
-#: ../user/team_search.php:183
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
 msgstr "Используйте эту форму для поиска команд, которые могут Вам подойти."
 
-#: ../user/team_search.php:188
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "%1Я не заинтересован%2 в присоединении к команде прямо сейчас."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "Предел превышен - Извините, только первые %1 элементов"
 
-#: ../user/top_hosts.php:82
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "Лучшие компьютеры"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr "Лучшие команды типа %1"
 
-#: ../user/top_teams.php:108
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr "Нет команд типа %1"
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr "Участвует с"
 
-#: ../user/uotd.php:29
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr "Пользователь дня не был выбран."
 
-#: ../user/uotd.php:33
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr "Пользователь дня на %1: %2"
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr "Фильтры"
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr "Имя пользователя начинается с"
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr "Любая"
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr "С профилем?"
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr "Любой"
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr "В команде?"
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr "Сортировка"
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr "В порядке уменьшения времени регистрации"
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr "В порядке уменьшения среднего количества очков"
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr "В порядке уменьшения общего количества очков"
 
-#: ../user/user_search.php:100
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr "искомая строка должна быть минимум 3 символа"
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr "Результаты поиска пользователей"
 
-#: ../user/user_search.php:140
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr "Присоединился"
 
-#: ../user/user_search.php:148
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr "Нет пользователей, удовлетворяющих вашим критериям поиска."
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr "Пользователь не найден!"
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr "Учётные данные<br/>для %1<br/>Время:"
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr "Команда:"
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr "Всего очков (команда):"
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr "В среднем (команда):"
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr "Команда: Нет"
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr "Проверка адреса электронной почты BOINC"
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr ""
-"Пожалуйста посетите следующую ссылку, чтобы подтвердить адрес электронной "
-"почты вашей учётной записи в %1:"
+msgstr "Пожалуйста посетите следующую ссылку, чтобы подтвердить адрес электронной почты вашей учётной записи в %1:"
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr "Письмо для проверки отправлено"
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr ""
-"Электронное письмо отправлено на адрес %1. Посетите ссылку, которую оно "
-"содержит, чтобы подтвердить ваш адрес электронной почты."
+msgstr "Электронное письмо отправлено на адрес %1. Посетите ссылку, которую оно содержит, чтобы подтвердить ваш адрес электронной почты."
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr "Нет такого пользователя."
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
 msgstr "Ошибка в данных URL - не удалось проверить адрес электронной почты"
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
-msgstr ""
-"Неудача при обновлении базы данных - пожалуйста, попробуйте ещё раз позже."
+msgstr "Неудача при обновлении базы данных - пожалуйста, попробуйте ещё раз позже."
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
 msgstr "Проверка адреса электронной почты"
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr "Адрес электронной почты вашей учётной записи был подтвержден."
 
-#: ../user/view_profile.php:36
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "У этого пользователя нет профиля"
 
-#: ../user/view_profile.php:54
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "Профиль: %1"
 
-#: ../user/view_profile.php:63
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr "Данные учётной записи"
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"Вы можете получить доступ к вашей учётной записи либо с использованием "
-"адреса электронной почты и пароля,\n"
-"    либо используя назначенный 'ключ учётной записи'.\n"
-"    Ваш ключ учётной записи:"
+msgstr "Вы можете получить доступ к вашей учётной записи либо с использованием адреса электронной почты и пароля,\n    либо используя назначенный 'ключ учётной записи'.\n    Ваш ключ учётной записи:"
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr "Этот ключ может быть использован для:"
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr "входа в свою учётную запись на сайте"
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"подключения компьютера к вашей учётной записи без использования Менеджера "
-"BOINC.\n"
-"       Для этого необходимо установить BOINC,\n"
-"       создать файл с именем %1 в каталоге данных BOINC,\n"
-"       и установить его содержимое следующим образом:"
+msgstr "подключения компьютера к вашей учётной записи без использования Менеджера BOINC.\n       Для этого необходимо установить BOINC,\n       создать файл с именем %1 в каталоге данных BOINC,\n       и установить его содержимое следующим образом:"
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr "Слабый ключ учётной записи"
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"Ваш 'слабый ключ учётной записи' может быть использован для подключения "
-"компьютеров к вашей учётной записи,\n"
-"    как описано выше, но он не может использоваться для входа в учётную "
-"запись или её изменения каким-либо образом.\n"
-"    Если вы хотите подключить ненадежные или небезопасные компьютеры к вашей "
-"учётной записи,\n"
-"    сделайте это, используя ваш слабый ключ учётной записи.\n"
-"    Ваш слабый ключ учётной записи:"
+msgstr "Ваш 'слабый ключ учётной записи' может быть использован для подключения компьютеров к вашей учётной записи,\n    как описано выше, но он не может использоваться для входа в учётную запись или её изменения каким-либо образом.\n    Если вы хотите подключить ненадежные или небезопасные компьютеры к вашей учётной записи,\n    сделайте это, используя ваш слабый ключ учётной записи.\n    Ваш слабый ключ учётной записи:"
 
-#: ../user/weak_auth.php:81
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
-"Если Вы измените ваш пароль, ваш слабый ключ учётной записи изменится, а "
-"предыдущий слабый ключ учётной записи станет недействительным."
+msgstr "Если Вы измените ваш пароль, ваш слабый ключ учётной записи изменится, а предыдущий слабый ключ учётной записи станет недействительным."
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr "не удалось найти задачу"
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr "Задача %1"
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "приложение"
+
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr "канонический результат"
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr "предоставлено очков"
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Задания обрабатываются"
+
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "скрыто в ожидании завершения"
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
 msgstr "минимальный кворум"
 
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr "начальная репликация"
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
 msgstr "макс. # ошибок/всего/успешных заданий"
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr "ошибки"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr "проверка"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr "Ожидание"
 
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Главная страница"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Авторские права"
-
-#: ../project.sample/project.inc:48
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr "Сгенерирован"
 
-#: ../project.sample/project.inc:79
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
 msgstr "Ваша личная информация."
 
-#: ../project.sample/project.inc:83
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Расскажите нам о себе. Вы можете рассказать нам о том, откуда Вы, о своем "
-"возрасте, образовании, увлечениях, или ещё о чём-нибудь."
+msgstr "Расскажите нам о себе. Вы можете рассказать нам о том, откуда Вы, о своем возрасте, образовании, увлечениях, или ещё о чём-нибудь."
 
-#: ../project.sample/project.inc:87
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr "Ваше мнение о %1"
 
-#: ../project.sample/project.inc:91
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"Выскажите нам свои мысли о %1<ol>\n"
-"    <li>Почему Вы запускаете %1?\n"
-"    <li> Каковы ваши взгляды о проекте?\n"
-"    <li> Какие-нибудь предложения?\n"
-"    </ol>"
+msgstr "Выскажите нам свои мысли о %1<ol>\n    <li>Почему Вы запускаете %1?\n    <li> Каковы ваши взгляды о проекте?\n    <li> Какие-нибудь предложения?\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr "Цветовая схема для графики"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "Максимальная загрузка ЦП (%) для графики%10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr "Выполнять только выбранные приложения"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Получать задания только для определённых приложений. Полезно, чтобы сосредоточить внимание на конкретных приложениях, или чтобы исключить их."
+
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
-msgstr ""
-"Если для выбранных приложений нет никакой работы, принимать работу для "
-"других приложений?"
+msgstr "Если для выбранных приложений нет никакой работы, принимать работу для других приложений?"
+
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Использовать более быстрые не графические приложения, если таковые имеются?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr "(все приложения)"
 
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Использовать ГП Intel %1 начиная с версии 7.0+ %2"
-
-#~ msgid "Error:"
-#~ msgstr "Ошибка:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Создание учётной записи запрещено"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Извините, но этот проект запретил создание новых учётных записей.\n"
-#~ "Пожалуйста попробуйте ещё раз позже."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Создание учётной записи в данный момент запрещено. Пожалуйста, попробуйте "
-#~ "ещё раз немного позднее."
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Этот проект не создал электронное письмо - пожалуйста, сообщите об этом "
-#~ "администраторам"
-
-#~ msgid "nvidia GPU"
-#~ msgstr "ГП NVIDIA"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Они относятся ко всем проектам BOINC, в которых Вы участвуете.<br>\n"
-#~ "На компьютерах, участвующих в нескольких проектах, будут использоваться "
-#~ "настройки, изменённые самыми последними."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Экспортировать эту новость как уведомление"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Перейдите в каталог данных BOINC на вашем компьютере (в Windows это обычно "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> или "
-#~ "<b>C:\\Program Files\\BOINC</b>)."
-
-#~ msgid "No such task"
-#~ msgstr "Нет такого задания"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Компьютер подключен к Интернету примерно каждые %1 Оставить пустым или 0 "
-#~ "если всегда подключен. %2 BOINC будет пытаться поддерживать по крайней мере "
-#~ "такой объем работы (макс. 10 дней). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Поддерживать достаточный объем работы для дополнительных"
-
-#~ msgid "Update failed: "
-#~ msgstr "Неудача при обновлении: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Предоставляет %1ограниченный доступ%2 к Вашей учетной записи"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Не используйте эту форму. Просто запустите BOINC, выберите 'Добавить "
-#~ "проект', и введите адрес электронной почты и пароль."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Не переупорядочевать закреплённые сообщения"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Если обсуждение содержит более чем данное количество сообщений"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "показать только первое и данное количество последних сообщений"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Ваше обращение было записано. Спасибо за вашу помощь."
-
-#~ msgid "Search type"
-#~ msgstr "Тип поиска"
-
-#~ msgid "User names starting with"
-#~ msgstr "Имена пользователей, начинающиеся с"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Ваш 'слабый учётный ключ' позволяет Вам подключать компьютеры к вашей "
-#~ "учётной записи в этом проекте, без предоставления возможности доступа к "
-#~ "вашей учётной записи или её изменения тем или иным образом."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Данный механизм работает только в тех проектах, которые обновили свое "
-#~ "серверное программное обеспечение после 7 декабря 2007 г."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Ваш слабый учетный ключ в этом проекте:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Для использования Вашего слабого учетного ключа на заданном компьютере "
-#~ "найдите или создайте 'учетный файл' для этого проекта. Имя этого файла имеет "
-#~ "вид: <b>account_PROJECT_URL.xml</b>. Учетный файл для %1: <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Создайте этот файл, если необходимо. Его содержимое должно быть:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Ваш слабый учетный ключ является функцией Вашего пароля. Если Вы измените "
-#~ "свой пароль, Ваш слабый учетный ключ изменится, и Ваш предыдущий слабый "
-#~ "учетный ключ станет недействительным."
-
-#~ msgid "Account key"
-#~ msgstr "Ключ учетной записи"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Предоставляет полный доступ к Вашей учетной записи"
-
-#~ msgid "Export"
-#~ msgstr "Экспортировать"
-
-#~ msgid "- private message"
-#~ msgstr "- личное сообщение"
-
-#~ msgid "Private message from"
-#~ msgstr "Личное сообщение от"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Ожидание проверки адреса электронной почты"
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Войти по другим именем."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Нет обсуждения с id %1. Пожалуйста проверьте ссылку и попробуйте еще раз."
-
-#~ msgid "Request not found"
-#~ msgstr "Запрос не найден"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 добавил Вас в друзья."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Учетные данные для %1"
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Нез ограничений"
 
-#~ msgid "couldn't create message board"
-#~ msgstr "невозможно создать доску сообщений"
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Макс. число заданий для этого проекта"
 
-#~ msgid "message board not found"
-#~ msgstr "доска сообщений не найдена"
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Макс. число ЦП для этого проекта"
 
-#~ msgid "no such forum"
-#~ msgstr "нет такого форума"
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "Макс. число заданий"
 
-#~ msgid "unknown command %1"
-#~ msgstr "неизвестная команда %1"
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "Макс. число ЦП"
diff --git a/html/languages/translations/sk.po b/html/languages/translations/sk.po
new file mode 100644
index 0000000..d5e110a
--- /dev/null
+++ b/html/languages/translations/sk.po
@@ -0,0 +1,6513 @@
+# BOINC web translation
+# Copyright (C) 2008 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# FileID  : $Id$
+# 
+# Translators:
+# aceman444, 2015
+# Michal Zajacka, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
+"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
+"Last-Translator: aceman444\n"
+"Language-Team: Slovak (http://www.transifex.com/boinc/boinc/language/sk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "LANG_NAME_NATIVE"
+msgstr "Slovenčina"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Slovak"
+
+#: ../inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Kód pozvánky"
+
+#: ../inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Na vytvorenie účtu je potrebný kód z pozvánky."
+
+#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
+#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
+#: ../user/account_finish.php:41 ../user/team_admins.php:64
+#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
+#: ../user/top_users.php:49 ../user/user_search.php:124
+msgid "Name"
+msgstr "Názov"
+
+#: ../inc/account.inc:44 ../user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Slúži ako identifikácia na našej webovej stránke. Môžete použiť vaše meno alebo prezývku."
+
+#: ../inc/account.inc:48
+msgid "Email Address"
+msgstr "E-mailová adresa"
+
+#: ../inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Adresa musí byť vo formáte \"meno at doména\"."
+
+#: ../inc/account.inc:57 ../user/edit_email_form.php:47
+msgid "Password"
+msgstr "Heslo"
+
+#: ../inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Musí obsahovať minimálne %1 znakov"
+
+#: ../inc/account.inc:61
+msgid "Confirm password"
+msgstr "Potvrdiť heslo"
+
+#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
+#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
+#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
+#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
+#: ../user/team_email_list.php:73 ../user/team_search.php:85
+#: ../user/top_users.php:63 ../user/user_search.php:53
+#: ../user/user_search.php:125
+msgid "Country"
+msgstr "Krajina"
+
+#: ../inc/account.inc:63 ../user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Pokiaľ chcete reprezentovať nejakú krajinu, prosím, vyberte ju"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "PSČ"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Optional"
+msgstr "Nepovinné"
+
+#: ../inc/account.inc:86
+msgid "Create account"
+msgstr "Vytvoriť účet"
+
+#: ../inc/account.inc:101
+msgid "Email address:"
+msgstr "E-mailová adresa:"
+
+#: ../inc/account.inc:103
+msgid "forgot email address?"
+msgstr "Zabudli ste e-mailovú adresu?"
+
+#: ../inc/account.inc:106
+msgid "Password:"
+msgstr "Heslo:"
+
+#: ../inc/account.inc:106
+msgid "forgot password?"
+msgstr "Zabudli ste heslo?"
+
+#: ../inc/account.inc:109
+msgid "Stay logged in"
+msgstr "Zostať prihlásený"
+
+#. kludge
+#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
+msgid "Log in"
+msgstr "Prihlásiť sa"
+
+#: ../inc/bbcode_html.inc:11
+msgid "Bold text: [b]text[/b]  (alt+b)"
+msgstr "Tučný text: [b]text[/b] (alt+b)"
+
+#: ../inc/bbcode_html.inc:14
+msgid "Italic text: [i]text[/i]  (alt+i)"
+msgstr "Kurzíva: [i]text[/i]  (alt+i)"
+
+#: ../inc/bbcode_html.inc:17
+msgid "Underline text: [u]text[/u]  (alt+u)"
+msgstr "Podčiarknutý text: [u]text[/u]  (alt+u)"
+
+#: ../inc/bbcode_html.inc:20
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Prečiarknutý text: [s]text[/s] (alt+k)"
+
+#: ../inc/bbcode_html.inc:23
+msgid "Quote text: [quote]text[/quote]  (alt+q)"
+msgstr "Citovať text: [quote]text[/quote]  (alt+q)"
+
+#: ../inc/bbcode_html.inc:26
+msgid "Code display: [code]code[/code]  (alt+c)"
+msgstr "Zobraziť kód: [code]kód[/code]  (alt+c)"
+
+#: ../inc/bbcode_html.inc:29
+msgid "List: [list]text[/list] (alt+l)"
+msgstr "Zoznam: [list]text[/list] (alt+l)"
+
+#: ../inc/bbcode_html.inc:32
+msgid "Ordered list: [list=]text[/list]  (alt+o)"
+msgstr "Číslovaný zoznam: [list=]text[/list]  (alt+o)"
+
+#: ../inc/bbcode_html.inc:35
+msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
+msgstr "Vložiť obrázok: [img]http://image_url[/img]  (alt+p)"
+
+#: ../inc/bbcode_html.inc:38
+msgid ""
+"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
+msgstr "Vložiť odkaz: [url]http://url[/url] aj [url=http://url]URL text[/url]  (alt+w)"
+
+#: ../inc/bbcode_html.inc:45
+msgid "Font color"
+msgstr "Farba fontu"
+
+#: ../inc/bbcode_html.inc:46
+msgid ""
+"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
+msgstr "Farba fontu: [color=red]text[/color]  Tip: Môžete tiež použiť color=#FF0000"
+
+#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
+#: ../inc/prefs_util.inc:546
+msgid "Default"
+msgstr "Predvolený"
+
+#: ../inc/bbcode_html.inc:48
+msgid "Dark Red"
+msgstr "Tmavočervená"
+
+#: ../inc/bbcode_html.inc:49
+msgid "Red"
+msgstr "Červená"
+
+#: ../inc/bbcode_html.inc:50
+msgid "Orange"
+msgstr "Oranžová"
+
+#: ../inc/bbcode_html.inc:51
+msgid "Brown"
+msgstr "Hnedá"
+
+#: ../inc/bbcode_html.inc:52
+msgid "Yellow"
+msgstr "Žltá"
+
+#: ../inc/bbcode_html.inc:53
+msgid "Green"
+msgstr "Zelená"
+
+#: ../inc/bbcode_html.inc:54
+msgid "Olive"
+msgstr "Olivovo zelená"
+
+#: ../inc/bbcode_html.inc:55
+msgid "Cyan"
+msgstr "Azúrová"
+
+#: ../inc/bbcode_html.inc:56
+msgid "Blue"
+msgstr "Modrá"
+
+#: ../inc/bbcode_html.inc:57
+msgid "Dark Blue"
+msgstr "Tmavomodrá"
+
+#: ../inc/bbcode_html.inc:58
+msgid "Indigo"
+msgstr "Indigovo modrá"
+
+#: ../inc/bbcode_html.inc:59
+msgid "Violet"
+msgstr "Fialová"
+
+#: ../inc/bbcode_html.inc:60
+msgid "Font size"
+msgstr "Veľkosť fontu"
+
+#: ../inc/bbcode_html.inc:61
+msgid "Font size: [size=x-small]small text[/size]"
+msgstr "Veľkosť fontu: [size=x-small]malý text[/size]"
+
+#: ../inc/bbcode_html.inc:63
+msgid "Small"
+msgstr "Malý"
+
+#: ../inc/bbcode_html.inc:64
+msgid "Normal"
+msgstr "Normálny"
+
+#: ../inc/bbcode_html.inc:65
+msgid "Large"
+msgstr "Veľký"
+
+#: ../inc/bbcode_html.inc:68
+msgid "Close all open bbCode tags"
+msgstr "Zavrieť všetky otvorené bbCode tagy"
+
+#: ../inc/bbcode_html.inc:68
+msgid "Close Tags"
+msgstr "Zavrieť tagy"
+
+#. names for the above
+#: ../inc/forum.inc:38
+msgid "Oldest first"
+msgstr "Od najstarších"
+
+#: ../inc/forum.inc:39 ../inc/forum.inc:45
+msgid "Newest first"
+msgstr "Od najnovších"
+
+#: ../inc/forum.inc:40
+msgid "Highest rated posts first"
+msgstr "Zobraziť najlepšie hodnotené správy ako prvé"
+
+#: ../inc/forum.inc:42
+msgid "Newest post first"
+msgstr "Od najnovších"
+
+#: ../inc/forum.inc:43
+msgid "Most views first"
+msgstr "Najsledovanejšie ako prvé"
+
+#: ../inc/forum.inc:44
+msgid "Most posts first"
+msgstr "Zobraziť s najväčším počtom správ ako prvé"
+
+#: ../inc/forum.inc:104
+msgid "Volunteer moderator"
+msgstr "Dobrovoľný moderátor"
+
+#: ../inc/forum.inc:105
+msgid "Project administrator"
+msgstr "Administrátor projektu"
+
+#: ../inc/forum.inc:106
+msgid "Project developer"
+msgstr "Vývojár projektu"
+
+#: ../inc/forum.inc:107
+msgid "Project tester"
+msgstr "Tester projektu"
+
+#: ../inc/forum.inc:108
+msgid "Volunteer developer"
+msgstr "Dobrovoľný vývojár"
+
+#: ../inc/forum.inc:109
+msgid "Volunteer tester"
+msgstr "Dobrovoľný tester"
+
+#: ../inc/forum.inc:110
+msgid "Project scientist"
+msgstr "Vedec projektu"
+
+#: ../inc/forum.inc:111
+msgid "Help desk expert"
+msgstr "Helpdesk expert"
+
+#. Search
+#: ../inc/forum.inc:129
+msgid "Search for words in forum messages"
+msgstr "Hladať slová v správach z fóra"
+
+#: ../inc/forum.inc:129
+msgid "Search forums"
+msgstr "Prehľadať fóra"
+
+#: ../inc/forum.inc:130
+msgid "Advanced search"
+msgstr "Pokročilé vyhľadávanie"
+
+#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
+#: ../user/pm.php:138
+msgid "Private messages"
+msgstr "Súkromné správy"
+
+#: ../inc/forum.inc:155 ../user/forum_forum.php:74
+#: ../user/sample_index.php:128
+msgid "Questions and Answers"
+msgstr "Otázky a Odpovede"
+
+#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
+#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
+#: ../project.sample/project.inc:70
+msgid "Message boards"
+msgstr "Nástenky"
+
+#: ../inc/forum.inc:191 ../inc/forum.inc:199
+msgid "%1 message board"
+msgstr "nástenka %1"
+
+#: ../inc/forum.inc:249 ../inc/result.inc:717
+msgid "Previous"
+msgstr "Predchádzajúci"
+
+#: ../inc/forum.inc:287 ../inc/result.inc:726
+msgid "Next"
+msgstr "Nasledujúci"
+
+#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+msgid "Author"
+msgstr "Autor"
+
+#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
+#: ../user/forum_edit.php:133 ../user/forum_post.php:120
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+#: ../user/pm.php:90 ../user/pm.php:149
+msgid "Message"
+msgstr "Správa"
+
+#: ../inc/forum.inc:586
+msgid "Send message"
+msgstr "Odoslať správu"
+
+#: ../inc/forum.inc:586
+msgid "Send %1 a private message"
+msgstr "Poslať %1 súkromnú správu"
+
+#: ../inc/forum.inc:587
+msgid "Joined: %1"
+msgstr "Pridali ste sa: %1"
+
+#: ../inc/forum.inc:596
+msgid "Posts: %1"
+msgstr "Príspevky: %1"
+
+#: ../inc/forum.inc:602
+msgid "Credit: %1"
+msgstr "Kredit: %1"
+
+#: ../inc/forum.inc:603
+msgid "RAC: %1"
+msgstr "RAC: %1"
+
+#: ../inc/forum.inc:627
+msgid "You haven't read this message yet"
+msgstr "Túto správu ste zatiaľ nečítali"
+
+#: ../inc/forum.inc:627
+msgid "Unread"
+msgstr "Neprečítané"
+
+#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
+msgid "Message %1"
+msgstr "Správa %1"
+
+#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
+msgid "hidden"
+msgstr "skryté"
+
+#: ../inc/forum.inc:632
+msgid "Posted: %1"
+msgstr "Uverejnené: %1"
+
+#: ../inc/forum.inc:635
+msgid " - in response to "
+msgstr " - ako odpoveď na "
+
+#: ../inc/forum.inc:638
+msgid "Edit"
+msgstr "Upraviť"
+
+#: ../inc/forum.inc:638
+msgid "Edit this message"
+msgstr "Upraviť správu"
+
+#: ../inc/forum.inc:644
+msgid "Last modified: %1"
+msgstr "Posledná zmena: %1"
+
+#: ../inc/forum.inc:647
+msgid ""
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Táto správa sa nezobrazila, pretože odosielateľ je vo vašom zozname ignorovaných. Kliknite %1sem%2 na zobrazenie správy."
+
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
+msgid "Report this post as offensive"
+msgstr "Nahlásiť správu ako urážlivú"
+
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
+msgid "Report as offensive"
+msgstr "Nahlásiť ako urážlivý"
+
+#: ../inc/forum.inc:679
+msgid "Rating: %1"
+msgstr "Hodnotenie: %1"
+
+#: ../inc/forum.inc:679
+msgid "rate: "
+msgstr "hodnotenie:"
+
+#: ../inc/forum.inc:682
+msgid "Click if you like this message"
+msgstr "Kliknite ak sa vám táto správa páči"
+
+#: ../inc/forum.inc:682
+msgid "Rate +"
+msgstr "Hodnotiť +"
+
+#: ../inc/forum.inc:684
+msgid "Click if you don't like this message"
+msgstr "Kliknite ak sa vám táto správa nepáči"
+
+#: ../inc/forum.inc:684
+msgid "Rate -"
+msgstr "Hodnotiť -"
+
+#. "Reply" is used as a verb
+#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
+msgid "Reply"
+msgstr "Odpovedať"
+
+#: ../inc/forum.inc:693
+msgid "Post a reply to this message"
+msgstr "Odpovedať na túto správu"
+
+#. "Quote" is used as a verb
+#: ../inc/forum.inc:696
+msgid "Quote"
+msgstr "Citovať"
+
+#: ../inc/forum.inc:696
+msgid "Post a reply by quoting this message"
+msgstr "Poslať odpoveď citovaním tejto správy"
+
+#: ../inc/forum.inc:717
+msgid "Hidden by a moderator"
+msgstr "Skryté moderátorom"
+
+#: ../inc/forum.inc:738
+msgid "Posted %1 by %2"
+msgstr "Uverejnené %1 od %2"
+
+#: ../inc/forum.inc:756
+msgid "You may not post or rate messages until %1"
+msgstr "Nemôžete odosielať alebo hodnotiť správy do %1"
+
+#: ../inc/forum.inc:767
+msgid ""
+"\n"
+"        <ul>\n"
+"        <li> Posts must be 'kid friendly': they may not contain\n"
+"            content that is obscene, hate-related,\n"
+"            sexually explicit or suggestive.\n"
+"        <li> No commercial advertisements.\n"
+"        <li> No links to web sites involving sexual content,\n"
+"            gambling, or intolerance of others.\n"
+"        <li> No messages intended to annoy or antagonize other people,\n"
+"            or to hijack a thread.\n"
+"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No abusive comments involving race, religion,\n"
+"            nationality, gender, class or sexuality.\n"
+"        "
+msgstr "\n<ul>\n<li> Správy musia byť vhodné aj pre detského čitateľa, nesmú obsahovať obscénny, nenávistný alebo erotický obsah.\n<li> Žiadne reklamy.\n<li> Žiadne odkazy na stránky s erotickým obsahom, propagujúcim hazard alebo nenávisť.\n<li> Žiadne správy určené na obťažovanie iných ľudí alebo ovládnutie témy.\n<li> Žiadne správy s urážlivým obsahom voči jednotlivcom alebo skupinám ľudí.\n<li> Žiadne urážlivé komentáre namierené proti náboženstvu, národnosti, rase, pohlaviu alebo sex [...]
+
+#: ../inc/forum.inc:799
+msgid "Rules:"
+msgstr "Pravidlá:"
+
+#: ../inc/forum.inc:800
+msgid "More info"
+msgstr "Viac informácií"
+
+#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
+msgid "Unhide"
+msgstr "Odkryť"
+
+#: ../inc/forum.inc:1098
+msgid "Unhide this post"
+msgstr "Odkryť túto správu"
+
+#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
+msgid "Hide"
+msgstr "Skryť"
+
+#: ../inc/forum.inc:1100
+msgid "Hide this post"
+msgstr "Skryť túto správu"
+
+#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
+msgid "Move"
+msgstr "Presunúť"
+
+#: ../inc/forum.inc:1105
+msgid "Move post to a different thread"
+msgstr "Presunúť správu do inej témy"
+
+#: ../inc/forum.inc:1110
+msgid "Banish author"
+msgstr "Zablokovať autora"
+
+#: ../inc/forum.inc:1117
+msgid "Vote to banish author"
+msgstr "Hlasovať za zablokovanie autora"
+
+#: ../inc/forum.inc:1121
+msgid "Vote not to banish author"
+msgstr "Hlasovať za neblokovanie autora"
+
+#: ../inc/forum.inc:1126
+msgid "Start vote to banish author"
+msgstr "Začať hlasovanie na zablokovanie autora"
+
+#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
+#: ../user/pm.php:112 ../user/pm.php:152
+msgid "Delete"
+msgstr "Zmazať"
+
+#: ../inc/forum.inc:1131
+msgid "Delete this post"
+msgstr "Vymazať túto správu"
+
+#: ../inc/forum.inc:1169
+msgid "Only team members can post to the team message board"
+msgstr "Len členovia tímu môžu posielať správy na tímovú nástenku."
+
+#: ../inc/forum.inc:1179
+msgid ""
+"In order to create a new thread in %1 you must have a certain amount of "
+"credit. This is to prevent and protect against abuse of the system."
+msgstr "Za účelom vytvorenia nového vlákna v %1 musíte mať určité množstvo bodov. Slúži to na ochránenie systému voči zneužitiu."
+
+#: ../inc/forum.inc:1186
+msgid ""
+"You cannot create any more threads right now. Please wait a while before "
+"trying again. This delay has been enforced to protect against abuse of the "
+"system."
+msgstr "Momentálne nemôžete vytvoriť viac vlákien. Skúste to prosím neskôr. Toto oneskorenie bolo vyvolané za účelom ochrany systému voči zneužitiu."
+
+#: ../inc/forum.inc:1193
+msgid ""
+"This thread is locked. Only forum moderators and administrators are allowed "
+"to post there."
+msgstr "Táto téma je uzamknutá. Len moderátori a administrátori fóra sem môžu posielať správy."
+
+#: ../inc/forum.inc:1198
+msgid "Can't post to a hidden thread."
+msgstr "Nedá sa posielať do skrytej témy."
+
+#: ../inc/forum.inc:1232
+msgid "Thread"
+msgstr "Vlákno"
+
+#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
+#: ../user/forum_index.php:99
+msgid "Posts"
+msgstr "Príspevkov"
+
+#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
+msgid "Views"
+msgstr "Zobrazenia"
+
+#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
+#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
+msgid "Last post"
+msgstr "Posledný príspevok"
+
+#: ../inc/forum.inc:1294
+msgid "New posts in the thread %1"
+msgstr "Nové správy v téme %1"
+
+#: ../inc/forum.inc:1299
+msgid "New posts in subscribed thread"
+msgstr "Nové správy v sledovanej téme"
+
+#: ../inc/forum.inc:1300
+msgid "There are new posts in the thread '%1'"
+msgstr "V téme \"%1\" sú nové správy"
+
+#: ../inc/forum.inc:1310
+msgid "Mark all threads as read"
+msgstr "Označiť všetky vlákna ako prečítané"
+
+#: ../inc/forum.inc:1311
+msgid "Mark all threads in all message boards as read."
+msgstr "Označiť všetky vlákna na všetkých nástenkách ako prečítané."
+
+#: ../inc/host.inc:25
+msgid "No host"
+msgstr "Žiaden počítač"
+
+#: ../inc/host.inc:27
+msgid "Unavailable"
+msgstr "Nedostupné"
+
+#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
+msgid "Home"
+msgstr "Domov"
+
+#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
+#: ../user/server_status.php:142
+msgid "Work"
+msgstr "Práca"
+
+#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
+msgid "School"
+msgstr "Škola"
+
+#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
+#: ../user/edit_forum_preferences_form.php:162
+msgid "Update"
+msgstr "Aktualizovať"
+
+#: ../inc/host.inc:84
+msgid "Computer information"
+msgstr "Informácie o počítači"
+
+#: ../inc/host.inc:88 ../inc/host.inc:93
+msgid "IP address"
+msgstr "IP adresa"
+
+#: ../inc/host.inc:88
+msgid "(same the last %1 times)"
+msgstr "(rovnaké posledných %1 krát)"
+
+#: ../inc/host.inc:90
+msgid "External IP address"
+msgstr "Vonkajšia IP adresa"
+
+#: ../inc/host.inc:93
+msgid "Show IP address"
+msgstr "Zobraziť IP adresu"
+
+#: ../inc/host.inc:95
+msgid "Domain name"
+msgstr "Názov domény"
+
+#: ../inc/host.inc:97
+msgid "Product name"
+msgstr "Názov produktu"
+
+#: ../inc/host.inc:101
+msgid "Local Standard Time"
+msgstr "Miestny štandardný čas"
+
+#: ../inc/host.inc:101
+msgid "UTC %1 hours"
+msgstr "UTC %1 hodín"
+
+#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
+msgid "Owner"
+msgstr "Vlastník"
+
+#: ../inc/host.inc:107 ../inc/host.inc:360
+msgid "Anonymous"
+msgstr "Anonymný"
+
+#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
+msgid "Created"
+msgstr "Vytvorený"
+
+#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
+#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
+#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
+#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
+#: ../user/profile_search_action.php:45
+#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
+#: ../user/top_users.php:59 ../user/user_search.php:125
+msgid "Total credit"
+msgstr "Celkový kredit"
+
+#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
+#: ../user/user_search.php:124
+msgid "Average credit"
+msgstr "Priemerný kredit"
+
+#: ../inc/host.inc:115
+msgid "Cross project credit"
+msgstr "Kredit naprieč projektami"
+
+#: ../inc/host.inc:117
+msgid "CPU type"
+msgstr "Typ procesora"
+
+#: ../inc/host.inc:118
+msgid "Number of processors"
+msgstr "Počet procesorov"
+
+#: ../inc/host.inc:120
+msgid "Coprocessors"
+msgstr "Koprocesory"
+
+#: ../inc/host.inc:122 ../inc/host.inc:692
+msgid "Operating System"
+msgstr "Operačný systém"
+
+#: ../inc/host.inc:125 ../inc/host.inc:235
+msgid "BOINC version"
+msgstr "Verzia BOINC"
+
+#: ../inc/host.inc:129 ../inc/prefs.inc:237
+msgid "Memory"
+msgstr "Pamäť"
+
+#: ../inc/host.inc:129 ../inc/host.inc:139
+msgid "%1 MB"
+msgstr "%1 MB"
+
+#: ../inc/host.inc:133
+msgid "Cache"
+msgstr "Vyrovnávacia pamäť"
+
+#: ../inc/host.inc:133
+msgid "%1 KB"
+msgstr "%1 KB"
+
+#: ../inc/host.inc:139
+msgid "Swap space"
+msgstr "Odkladací priestor"
+
+#: ../inc/host.inc:142
+msgid "Total disk space"
+msgstr "Celkový úložný priestor"
+
+#: ../inc/host.inc:142 ../inc/host.inc:145
+msgid "%1 GB"
+msgstr "%1 GB"
+
+#: ../inc/host.inc:145
+msgid "Free Disk Space"
+msgstr "Voľný diskový priestor"
+
+#: ../inc/host.inc:149
+msgid "Measured floating point speed"
+msgstr "Zmeraná rýchlosť s plávajúcou desatinnou čiarkou"
+
+#: ../inc/host.inc:149 ../inc/host.inc:152
+msgid "%1 million ops/sec"
+msgstr "%1 milión operácií/s"
+
+#: ../inc/host.inc:152
+msgid "Measured integer speed"
+msgstr "Zmeraná celočíselná rýchlosť"
+
+#: ../inc/host.inc:156 ../inc/host.inc:158
+msgid "Average upload rate"
+msgstr "Priemerná rýchlosť odosielania"
+
+#: ../inc/host.inc:156 ../inc/host.inc:163
+msgid "%1 KB/sec"
+msgstr "%1 KB/s"
+
+#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
+#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
+#: ../inc/result.inc:278 ../user/explain_state.php:56
+#: ../user/host_app_versions.php:30
+msgid "Unknown"
+msgstr "Neznámy"
+
+#: ../inc/host.inc:163 ../inc/host.inc:165
+msgid "Average download rate"
+msgstr "Priemerná rýchlosť sťahovania"
+
+#: ../inc/host.inc:168 ../user/host_app_versions.php:65
+msgid "Average turnaround time"
+msgstr "Priemerná návratová doba "
+
+#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../user/forum_search.php:50 ../user/forum_search.php:51
+msgid "%1 days"
+msgstr "%1 dní"
+
+#: ../inc/host.inc:169
+msgid "Application details"
+msgstr "Detaily aplikácie"
+
+#: ../inc/host.inc:170
+msgid "Show"
+msgstr "Zobraziť"
+
+#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
+msgid "Tasks"
+msgstr "Úlohy"
+
+#: ../inc/host.inc:184 ../inc/host.inc:206
+msgid "Number of times client has contacted server"
+msgstr "Koľkokrát BOINC klient skontaktoval server"
+
+#: ../inc/host.inc:185
+msgid "Last time contacted server"
+msgstr "Posledné skontaktovanie so serverom"
+
+#: ../inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Podiel času kedy BOINC beží"
+
+#: ../inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Pokým je BOINC spustený, % dĺžka času Internetového spojenia"
+
+#: ../inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Pokým je BOINC spustený, % dĺžka času výpočtov"
+
+#: ../inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Pokým je BOINC spustený, % dĺžka času výpočtov pomocou GPU"
+
+#: ../inc/host.inc:193
+msgid "Average CPU efficiency"
+msgstr "Priemerná efektivita procesora"
+
+#: ../inc/host.inc:196
+msgid "Task duration correction factor"
+msgstr "Korekčný faktor pre dobu výpočtu"
+
+#: ../inc/host.inc:198 ../inc/host.inc:679
+msgid "Location"
+msgstr "Umiestnenie"
+
+#: ../inc/host.inc:200
+msgid "Delete this computer"
+msgstr "Zmazať tento počítač"
+
+#: ../inc/host.inc:204
+msgid "Merge duplicate records of this computer"
+msgstr "Spojiť duplicitné záznamy tohto počítača"
+
+#: ../inc/host.inc:204
+msgid "Merge"
+msgstr "Spojiť"
+
+#: ../inc/host.inc:207 ../inc/host.inc:694
+msgid "Last contact"
+msgstr "Posledný čas kontaktu"
+
+#: ../inc/host.inc:220
+msgid "Computer info"
+msgstr "Informácie o počítači"
+
+#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
+#: ../user/top_users.php:48
+msgid "Rank"
+msgstr "Úroveň"
+
+#: ../inc/host.inc:225 ../inc/host.inc:684
+msgid "Avg. credit"
+msgstr "Priemerný kredit"
+
+#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
+#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
+#: ../inc/team.inc:382 ../inc/user.inc:140
+#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
+#: ../user/top_users.php:58
+msgid "Recent average credit"
+msgstr "Súčasný priemerný kredit"
+
+#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
+#: ../user/host_app_versions.php:25
+msgid "CPU"
+msgstr "Procesor"
+
+#: ../inc/host.inc:237 ../inc/host.inc:690
+msgid "GPU"
+msgstr "GPU"
+
+#: ../inc/host.inc:238
+msgid "Operating system"
+msgstr "Operačný systém"
+
+#: ../inc/host.inc:320
+msgid "(%1 processors)"
+msgstr "(%1 procesorov)"
+
+#: ../inc/host.inc:340
+msgid "Details"
+msgstr "Detaily"
+
+#: ../inc/host.inc:345
+msgid "Cross-project stats:"
+msgstr "Medziprojektové štatistiky:"
+
+#: ../inc/host.inc:520
+msgid "Host %1 has overlapping lifetime:"
+msgstr "Počítač %1 prekračuje životnoť:"
+
+#: ../inc/host.inc:527
+msgid "Host %1 has an incompatible OS:"
+msgstr "Počítač %1 nemá kompatibilný operačný systém:"
+
+#: ../inc/host.inc:533
+msgid "Host %1 has an incompatible CPU:"
+msgstr "Počítač %1 nemá kompatibilný procesor:"
+
+#: ../inc/host.inc:600
+msgid "same host"
+msgstr "rovnaký počítač"
+
+#: ../inc/host.inc:603
+msgid "Can't merge host %1 into %2 - they're incompatible"
+msgstr "Nie je možné zlúčiť počítač %1 do počítača %2 - nie sú kompatibilné."
+
+#: ../inc/host.inc:606
+msgid "Merging host %1 into host %2"
+msgstr "Spájanie počítača %1 s počítačom %2"
+
+#: ../inc/host.inc:623
+msgid "Couldn't update credit of new computer"
+msgstr "Nepodarilo sa aktualizovať kredit nového počítača"
+
+#: ../inc/host.inc:627
+msgid "Couldn't update results"
+msgstr "Nepodarilo sa aktualizovať výsledky"
+
+#: ../inc/host.inc:632
+msgid "Couldn't retire old computer"
+msgstr "Nepodarilo sa odstrániť starý počítač"
+
+#: ../inc/host.inc:634
+msgid "Retired old computer %1"
+msgstr "Starý počítač %1 bol odstránený"
+
+#: ../inc/host.inc:657 ../inc/host.inc:660
+msgid "Show:"
+msgstr "Zobraziť:"
+
+#: ../inc/host.inc:657 ../inc/host.inc:660
+msgid "All computers"
+msgstr "Všetky počítače"
+
+#: ../inc/host.inc:657 ../inc/host.inc:660
+msgid "Only computers active in past 30 days"
+msgstr "Len počítače aktívne posledných 30 dní"
+
+#: ../inc/host.inc:671 ../inc/result.inc:642
+msgid "Computer ID"
+msgstr "ID počítača"
+
+#: ../inc/host.inc:687
+msgid "BOINC<br>version"
+msgstr "BOINC<br>verzia"
+
+#: ../inc/host.inc:750 ../user/merge_by_name.php:65
+msgid "Merge computers by name"
+msgstr "Spojiť počítače podľa názvu"
+
+#: ../inc/language_names.inc:62
+msgid "Browser default"
+msgstr "Predvolené prehliadačom"
+
+#: ../inc/news.inc:40
+msgid "Comment"
+msgstr "Komentár"
+
+#: ../inc/news.inc:111
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "Novinky sú dostupné ako %sRSS feed%s"
+
+#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
+msgid "Inbox"
+msgstr "Inbox"
+
+#: ../inc/pm.inc:26 ../inc/pm.inc:180
+msgid "Write"
+msgstr "Napísať"
+
+#: ../inc/pm.inc:33 ../inc/user.inc:458
+msgid "Send private message"
+msgstr "Poslať súkromnú správu"
+
+#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
+#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
+#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
+#: ../user/forum_post.php:65 ../user/forum_post.php:91
+#: ../user/forum_post.php:93 ../user/forum_post.php:134
+#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
+#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
+msgid "Preview"
+msgstr "Náhľad"
+
+#: ../inc/pm.inc:48 ../user/pm.php:136
+msgid "no such message"
+msgstr "nenašla sa správa"
+
+#: ../inc/pm.inc:82
+msgid "To"
+msgstr "Komu"
+
+#: ../inc/pm.inc:82
+msgid "User IDs or unique usernames, separated with commas"
+msgstr "Užívateľské ID alebo unikátne užívateľské mená oddelené čiarkami"
+
+#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
+msgid "Subject"
+msgstr "Predmet"
+
+#: ../inc/pm.inc:89
+msgid "Send message"
+msgstr "Poslať správu"
+
+#: ../inc/pm.inc:122
+msgid "sent you a private message; subject:"
+msgstr "vám odoslal(a) súkromú správu; predmet:"
+
+#: ../inc/pm.inc:129
+msgid "Private message%1 from %2, subject:"
+msgstr "Súkromá správa%1 od %2, predmet:"
+
+#: ../inc/pm.inc:137
+msgid "Couldn't create message"
+msgstr "Nepodarilo sa vytvoriť správu"
+
+#: ../inc/pm.inc:168
+msgid ""
+"You are not allowed to send privates messages so often. Please wait some "
+"time before sending more messages."
+msgstr "Nie je možné posielať súkromné správy tak často. Prosím, počkajte chvíľu než znovu odošlete viac správ."
+
+#: ../inc/pm.inc:178 ../user/forum_forum.php:190
+msgid "unread"
+msgstr "neprečítané"
+
+#: ../inc/pm.inc:188
+msgid "For email notification, %1edit community prefs%2"
+msgstr "Na mailové notifikácie %1upravte preferencie komunity%2"
+
+#: ../inc/pm.inc:204
+msgid "Private message"
+msgstr "Súkromná správa"
+
+#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
+msgid "Usage limits"
+msgstr "Limity používania"
+
+#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
+msgid "Use at most"
+msgstr "Použiť najviac"
+
+#: ../inc/prefs.inc:49
+#, no-php-format
+msgid ""
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Ponechať časť procesorov voľnú pre iné aplikácie. Napríklad 75% znamená 6 jadier na 8 jadrovom procesore."
+
+#: ../inc/prefs.inc:52
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% z procesorov"
+
+#: ../inc/prefs.inc:57
+#, no-php-format
+msgid ""
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Pozastaviť/obnoviť výpočty každých pár sekúnd na zníženie teploty a spotreby energie. Príklad: 75% znamená, že budú prebiehať výpočty 3 sekundy a 1 sekundu sa bude čakať a potom opakovať."
+
+#: ../inc/prefs.inc:60
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% času CPU"
+
+#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
+msgid "When to suspend"
+msgstr "Kedy pozastaviť"
+
+#: ../inc/prefs.inc:64
+msgid "Suspend when computer is on battery"
+msgstr "Pozastaviť keď je počítač napájaný z batérie"
+
+#: ../inc/prefs.inc:65
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Tu nastavíte, či sa majú výpočty pozastaviť ak je zariadenie napájané z batérie."
+
+#: ../inc/prefs.inc:70
+msgid "Suspend when computer is in use"
+msgstr "Pozastaviť keď je počítač používaný"
+
+#: ../inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Tu zaškrtnite na pozastavenie výpočtov a prenosov súborov keď používate počítač."
+
+#: ../inc/prefs.inc:76
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Pozastaviť výpočty pomocou GPU keď je počítač používaný"
+
+#: ../inc/prefs.inc:77
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Tu zaškrtnite na pozastavenie výpočtov pomocou GPU ked používate počítač."
+
+#: ../inc/prefs.inc:82
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "\"Používa sa\" znamená keď bola použitá myš alebo klávesnica posledných"
+
+#: ../inc/prefs.inc:83
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Týmto sa určí kedy sa počítač \"používa\"."
+
+#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
+msgid "minutes"
+msgstr "minút(y)"
+
+#: ../inc/prefs.inc:89
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Pozastaviť keď sa myš alebo klávesnica nepoužili posledných"
+
+#: ../inc/prefs.inc:90
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Toto dovoľuje niektorým počítačom prejsť do nízkoenergetického módu, keď sa nepoužívajú."
+
+#: ../inc/prefs.inc:95
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Pozastaviť, ak je procesor využívaný mimo BOINC nad"
+
+#: ../inc/prefs.inc:96
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Pozastaviť výpočty, ak váš počítač používajú iné programy."
+
+#: ../inc/prefs.inc:101
+msgid "Compute only between"
+msgstr "Počítať len medzi"
+
+#: ../inc/prefs.inc:102
+msgid "Compute only during a particular period each day."
+msgstr "Vykonávať výpočty v určitý čas každý deň"
+
+#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
+#: ../user/forum_banishment_vote.php:70
+#: ../user/forum_banishment_vote_action.php:65
+#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Ostatné"
+
+#: ../inc/prefs.inc:107
+msgid "Store at least"
+msgstr "Uložiť najmenej"
+
+#: ../inc/prefs.inc:108
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Uložiť aspoň toľko úloh, aby bol počítač zamestnaný aspoň takto dlho."
+
+#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
+msgid "days of work"
+msgstr "dní práce"
+
+#: ../inc/prefs.inc:113
+msgid "Store up to an additional"
+msgstr "Uložiť až do"
+
+#: ../inc/prefs.inc:114
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Ukladať dodatočné úlohy nad minimálnou úrovňou. Určuje aké úsilie je nutné pri kontaktovaní projektu."
+
+#: ../inc/prefs.inc:119
+msgid "Switch between tasks about every"
+msgstr "Prepínať medzi úlohami každých"
+
+#: ../inc/prefs.inc:120
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Pokial beží viacero projektov, BOINC môže medzi nimi prepínať s nasledujúcou frekvenciou:"
+
+#: ../inc/prefs.inc:125
+msgid "Request tasks to checkpoint at most every"
+msgstr "Ukladať stav úloh každých"
+
+#: ../inc/prefs.inc:126
+msgid ""
+"This controls how often tasks save their state to disk, so that they can be "
+"restarted later."
+msgstr "Tu sa nastavuje, ako často úlohy ukladajú svoj stav na disk, aby mohli byť neskôr reštartované."
+
+#: ../inc/prefs.inc:128
+msgid "seconds"
+msgstr "sekúnd"
+
+#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
+msgid "Use no more than"
+msgstr "Nepoužívať viac ako"
+
+#: ../inc/prefs.inc:137
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Nastaví koľko miesta na disku využije BOINC."
+
+#: ../inc/prefs.inc:139
+msgid "GB"
+msgstr "GB"
+
+#: ../inc/prefs.inc:142
+msgid "Leave at least"
+msgstr "Ponechať aspoň"
+
+#: ../inc/prefs.inc:143
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Nastaví použitie disku aby ostalo aspoň toľko voľného miesta na disku, kde sú uložené dáta BOINC."
+
+#: ../inc/prefs.inc:145
+msgid "GB free"
+msgstr "GB voľných"
+
+#: ../inc/prefs.inc:149
+msgid ""
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Nastaví percentuálne využitie miesta na disku aplikáciou BOINC."
+
+#: ../inc/prefs.inc:152
+#, no-php-format
+msgid "% of total"
+msgstr "% celku"
+
+#: ../inc/prefs.inc:158
+msgid "When computer is in use, use at most"
+msgstr "Keď sa počítač používa, využiť najviac"
+
+#: ../inc/prefs.inc:159
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Nastavenie pamäte, ktorú BOINC využíva ked používate počítač."
+
+#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
+#, no-php-format
+msgid "%"
+msgstr "%"
+
+#: ../inc/prefs.inc:165
+msgid "When computer is not in use, use at most"
+msgstr "Keď sa počítač nepoužíva, použiť maximálne"
+
+#: ../inc/prefs.inc:166
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Nastavenie pamäte, ktorú BOINC využíva ked nepoužívate počítač."
+
+#: ../inc/prefs.inc:172
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Ponechať ne-GPU aplikácie v pamäti pri ich pozastavení"
+
+#: ../inc/prefs.inc:173
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Ak je zaškrtnuté, pozastavené úlohy ostanú v medzipamäti a môžu byť obnovené bez strát. Ak nie je zaškrtnuté, pozastavené úlohy nebudú uložené v medzipamäti a môžu byť obnovené z ich posledného času uloženia."
+
+#: ../inc/prefs.inc:178
+msgid "Page/swap file: use at most"
+msgstr "Stránkovací súbor: použiť maximálne"
+
+#: ../inc/prefs.inc:179
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Nastaviť využitie ukladacieho priestoru (stránkovacieho súboru) pre BOINC."
+
+#: ../inc/prefs.inc:189
+msgid "Limit download rate to"
+msgstr "Limit rýchlosti sťahovania"
+
+#: ../inc/prefs.inc:190
+msgid "Limit the download rate of file transfers."
+msgstr "Nastaviť rýchlosť sťahovania súborov"
+
+#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
+msgid "KB/second"
+msgstr "KB/s"
+
+#: ../inc/prefs.inc:195
+msgid "Limit upload rate to"
+msgstr "Nastaviť rýchlost odosielania na"
+
+#: ../inc/prefs.inc:196
+msgid "Limit the upload rate of file transfers."
+msgstr "Nastaviť rýchlosť odosielania súborov"
+
+#: ../inc/prefs.inc:201
+msgid "Limit usage to"
+msgstr "Nastaviť použitie"
+
+#: ../inc/prefs.inc:202
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Príklad: BOINC prenesie maximálne 2000 MB dát za 30 dní."
+
+#: ../inc/prefs.inc:205
+msgid "MB every"
+msgstr "MB každých"
+
+#: ../inc/prefs.inc:206 ../inc/util.inc:303
+msgid "days"
+msgstr "dňa (dní)"
+
+#: ../inc/prefs.inc:210
+msgid "Transfer files only between"
+msgstr "Prenos súborov len medzi"
+
+#: ../inc/prefs.inc:211
+msgid "Transfer files only during a particular period each day."
+msgstr "Prenášať súbory len v určitý čas každý deň"
+
+#: ../inc/prefs.inc:216
+msgid "Skip data verification for image files"
+msgstr "Preskočiť overovanie pri súboroch obrázkov"
+
+#: ../inc/prefs.inc:217
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Zaškrtnite len ak váš poskytovateľ pripojenia modifikuje súbory. Preskočenie overovaní znižuje bezpečnosť aplikácie BOINC."
+
+#: ../inc/prefs.inc:222
+msgid "Confirm before connecting to Internet"
+msgstr "Potvrďte pred pripojením sa k internetu"
+
+#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Použiteľné len pokiaľ vlastníte ISDN alebo VPN pripojenie."
+
+#: ../inc/prefs.inc:228
+msgid "Disconnect when done"
+msgstr "Odpojiť po dokončení komunikácie"
+
+#: ../inc/prefs.inc:235 ../user/explain_state.php:94
+msgid "Computing"
+msgstr "Výpočty"
+
+#: ../inc/prefs.inc:236
+msgid "Disk"
+msgstr "Disk"
+
+#: ../inc/prefs.inc:238
+msgid "Network"
+msgstr "Sieť"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: ../inc/prefs.inc:241
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Tieto preferencie sú platné pre všetky BOINC projekty, ktorých sa účastníte."
+
+#: ../inc/prefs.inc:244
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Nepodarilo sa aktualizovať nastavenia.%2 Červeno zvýraznené hodnoty sú buď mimo požadovaný rozsah, alebo nie sú číselné hodnoty."
+
+#: ../inc/prefs.inc:472
+msgid "computing"
+msgstr "počítanie"
+
+#: ../inc/prefs.inc:483
+msgid "Separate preferences for %1"
+msgstr "Separátne preferencie pre %1"
+
+#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
+msgid "Edit preferences"
+msgstr "Upraviť preferencie"
+
+#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
+#: ../user/team_admins.php:36
+msgid "Remove"
+msgstr "Odobrať"
+
+#: ../inc/prefs.inc:499
+msgid "Add separate preferences for %1"
+msgstr "Pridať zvláštne preferencie pre %1"
+
+#: ../inc/prefs.inc:506
+msgid "These settings apply to all computers using this account except"
+msgstr "Tieto nastavenia platia na všetky počítače, ktoré používa tento účet okrem"
+
+#: ../inc/prefs.inc:508
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "počítače, kde ste nastavili preferencie lokálne pomocou správcu BOINC"
+
+#: ../inc/prefs.inc:510
+msgid "Android devices"
+msgstr "Zariadenia s Android"
+
+#: ../inc/prefs.inc:513
+msgid "(Switch view)"
+msgstr "(Prepnúť vzhľad)"
+
+#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
+msgid "Combined preferences"
+msgstr "Kombinované nastavenia"
+
+#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
+msgid "Primary (default) preferences"
+msgstr "Primárne (východzie) nastavenia"
+
+#: ../inc/prefs.inc:537
+msgid "Preferences last modified:"
+msgstr "Posledná zmena preferencií:"
+
+#: ../inc/prefs.inc:553
+msgid "Add preferences"
+msgstr "Pridať preferencie"
+
+#: ../inc/prefs.inc:557
+msgid "Update preferences"
+msgstr "Aktualizovať preferencie"
+
+#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "yes"
+msgstr "áno"
+
+#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "no"
+msgstr "nie"
+
+#. TODO: make this a subclass of PREF
+#: ../inc/prefs.inc:638
+msgid "Default computer location"
+msgstr "Východzie umiestnenie počítača"
+
+#: ../inc/prefs.inc:639
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Nové počítače použijú toto umiestnenie pre preferencie vo výpočtoch a projektoch."
+
+#: ../inc/prefs_project.inc:52
+msgid "Resource share"
+msgstr "Podiel výkonu"
+
+#: ../inc/prefs_project.inc:53
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Určí akú časť zo zdrojov nastavenú pre tento projekt bude využívať. Napríklad, zúčastnite sa dvoch BOINC projektov s pomerom zdrojov 100 a 200, prvý projekt dostane 1/3 vašich zdrojov a druhý projekt dostane 2/3."
+
+#: ../inc/prefs_project.inc:61
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Urýchliť úlohy pre GPU priradením procesora pre každú?"
+
+#: ../inc/prefs_project.inc:70
+msgid "Use CPU"
+msgstr "Použiť procesoru"
+
+#: ../inc/prefs_project.inc:79
+msgid "Use ATI GPU"
+msgstr "Použiť ATI GPU"
+
+#: ../inc/prefs_project.inc:88
+msgid "Use NVIDIA GPU"
+msgstr "Použiť NVIDIA GPU"
+
+#: ../inc/prefs_project.inc:97
+msgid "Use Intel GPU"
+msgstr "Použiť Intel GPU"
+
+#: ../inc/prefs_project.inc:107
+msgid "Run test applications?"
+msgstr "Spustiť testovacie aplikácie?"
+
+#: ../inc/prefs_project.inc:108
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Toto nám pomáha pri vývojí aplikácií, no môže spôsobiť zlyhanie úloh na vašom počítači"
+
+#: ../inc/prefs_project.inc:115
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "Maily budú poslané z adresy %1; uistite sa, že váš spamový filter prepustí tieto adresy."
+
+#: ../inc/prefs_project.inc:123
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Súhlasite aby %1 a váš tím vám posielal maily?"
+
+#: ../inc/prefs_project.inc:130
+msgid "Should %1 show your computers on its web site?"
+msgstr "Môže %1 zobraziť vaše počítače na svojej stránke?"
+
+#: ../inc/prefs_project.inc:270
+msgid "(Switch View)"
+msgstr "(Prepnúť vzhľad)"
+
+#: ../inc/prefs_project.inc:276
+msgid "Project specific settings"
+msgstr "Nastavenia špecifické pre projekt"
+
+#: ../inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "nesprávne miesto: %1"
+
+#: ../inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "nesprávna podmnožina: %1"
+
+#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
+msgid "and"
+msgstr "a"
+
+#: ../inc/profile.inc:86
+msgid ""
+"Your profile will be made visible to other people as soon as it has been "
+"approved by the project. This may take up to a few days."
+msgstr "Váš profil bude viditeľný pre ostatných až keď bude schválený projektom. Toto môže trvať niekoľko dní."
+
+#: ../inc/profile.inc:92
+msgid ""
+"Your profile has been marked as unacceptable. It is not visible to other "
+"people. Please change it."
+msgstr "Váš profil bol vyhodnotený ako nepriateľný; ostatní ho neuvidia. Prosím, upravte ho."
+
+#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
+msgid "Database error"
+msgstr "Chyba databázy"
+
+#: ../inc/profile.inc:193
+msgid ""
+"To prevent spam, profiles of users with an average credit of less than %1 "
+"are displayed only to logged-in users. We apologize for this inconvenience."
+msgstr "Na zabránenie spamu, profily s priemerným kreditom nižším ako %1 sa zobrazujú len prihláseným užívateľom. Za spôsobené nepríjemnosti sa ospravedlňujeme."
+
+#: ../inc/profile.inc:197
+msgid "User is banished"
+msgstr "Užívateľ je blokovaný"
+
+#: ../inc/profile.inc:211
+msgid "No profile exists for that user ID."
+msgstr "Užívateľ so zadaným ID neexistuje."
+
+#: ../inc/profile.inc:219 ../user/create_profile.php:317
+msgid "Edit your profile"
+msgstr "Upravte si profil"
+
+#: ../inc/profile.inc:262
+msgid "Your feedback on this profile"
+msgstr "Váš názor na tento profil"
+
+#: ../inc/profile.inc:264
+msgid "Recommend this profile for User of the Day:"
+msgstr "Odporučiť tento profil na Užívateľa dňa"
+
+#: ../inc/profile.inc:265
+msgid "I %1like%2 this profile"
+msgstr "%1Páči sa mi%2 tento profil"
+
+#: ../inc/profile.inc:268
+msgid "Alert administrators to an offensive profile:"
+msgstr "Upozorniť administrátorov na urážlivý profil:"
+
+#: ../inc/profile.inc:269
+msgid "I %1do not like%2 this profile"
+msgstr "%1Nepáči sa mi%2 tento profil"
+
+#: ../inc/result.inc:35
+msgid "Anonymous platform"
+msgstr "Anonymná platforma"
+
+#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+msgid "NVIDIA GPU"
+msgstr "GPU NVIDIA"
+
+#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+msgid "ATI GPU"
+msgstr "ATI GPU"
+
+#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+msgid "Intel GPU"
+msgstr "Intel GPU"
+
+#: ../inc/result.inc:65
+msgid "Not in DB"
+msgstr "Nie je v databázi"
+
+#: ../inc/result.inc:91
+msgid "pending"
+msgstr "čaká"
+
+#: ../inc/result.inc:114 ../user/forum_search.php:62
+msgid "All"
+msgstr "Všetky"
+
+#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: ../user/server_status.php:167
+msgid "In progress"
+msgstr "Prebieha"
+
+#: ../inc/result.inc:116
+msgid "Validation pending"
+msgstr "Čaká sa na overenie"
+
+#: ../inc/result.inc:117
+msgid "Validation inconclusive"
+msgstr "Overenie nepresvedčivé"
+
+#: ../inc/result.inc:118 ../inc/result.inc:268
+msgid "Valid"
+msgstr "Platné"
+
+#: ../inc/result.inc:119 ../inc/result.inc:271
+msgid "Invalid"
+msgstr "Neplatné"
+
+#: ../inc/result.inc:120 ../inc/result.inc:209
+msgid "Error"
+msgstr "Chyba"
+
+#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+msgid "Inactive"
+msgstr "Neaktívne"
+
+#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: ../user/server_status.php:167
+msgid "Unsent"
+msgstr "Neposlané"
+
+#: ../inc/result.inc:181
+msgid "Completed, waiting for validation"
+msgstr "Dokončené, čaká sa na potvrdenie"
+
+#: ../inc/result.inc:182
+msgid "Completed and validated"
+msgstr "Dokončené a potvrdené"
+
+#: ../inc/result.inc:183
+msgid "Completed, marked as invalid"
+msgstr "Dokončené, označené ako chybné"
+
+#: ../inc/result.inc:184
+msgid "Completed, can't validate"
+msgstr "Dokončené, nedá sa overiť"
+
+#: ../inc/result.inc:185
+msgid "Completed, validation inconclusive"
+msgstr "Dokončené, overenie nedokončené"
+
+#: ../inc/result.inc:186
+msgid "Completed, too late to validate"
+msgstr "Dokončené, príliš neskoro na overenie"
+
+#: ../inc/result.inc:188
+msgid "Completed"
+msgstr "Dokončené"
+
+#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+msgid "Couldn't send"
+msgstr "Nepodarilo sa odoslať"
+
+#: ../inc/result.inc:194 ../inc/result.inc:257
+msgid "Cancelled by server"
+msgstr "Zrušené serverom"
+
+#: ../inc/result.inc:199
+msgid "Not started by deadline - canceled"
+msgstr "Zrušené - výpočet sa nezačal do určeného termínu"
+
+#: ../inc/result.inc:202
+msgid "Error while downloading"
+msgstr "Chyba pri sťahovaní"
+
+#: ../inc/result.inc:204
+msgid "Error while computing"
+msgstr "Chyba pri počítaní"
+
+#: ../inc/result.inc:205
+msgid "Error while uploading"
+msgstr "Chyba pri odosielaní"
+
+#: ../inc/result.inc:206 ../inc/result.inc:259
+msgid "Aborted by user"
+msgstr "Zrušené užívateľom"
+
+#: ../inc/result.inc:207 ../inc/result.inc:260
+msgid "Upload failed"
+msgstr "Odosielanie zlyhalo"
+
+#: ../inc/result.inc:210
+msgid "Timed out - no response"
+msgstr "Čas vypršal - bez odpovede"
+
+#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+msgid "Didn't need"
+msgstr "Nepotrebné"
+
+#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+msgid "Validate error"
+msgstr "Chyba overenia"
+
+#: ../inc/result.inc:213 ../inc/result.inc:242
+msgid "Abandoned"
+msgstr "Zrušené"
+
+#: ../inc/result.inc:224 ../user/explain_state.php:43
+msgid "Over"
+msgstr "Po termíne"
+
+#: ../inc/result.inc:232 ../user/explain_state.php:59
+msgid "Success"
+msgstr "Úspešné"
+
+#: ../inc/result.inc:236
+msgid "Computation error"
+msgstr "Chyba výpočtu"
+
+#: ../inc/result.inc:238
+msgid "Redundant result"
+msgstr "Reduntantý výsledok"
+
+#: ../inc/result.inc:239 ../user/explain_state.php:68
+msgid "No reply"
+msgstr "Bez odpovede"
+
+#: ../inc/result.inc:249 ../user/explain_state.php:85
+msgid "New"
+msgstr "Nové"
+
+#: ../inc/result.inc:250 ../user/explain_state.php:91
+msgid "Downloading"
+msgstr "Sťahuje sa"
+
+#: ../inc/result.inc:251
+msgid "Processing"
+msgstr "Spracúva sa"
+
+#: ../inc/result.inc:252
+msgid "Compute error"
+msgstr "Chyba výpočtu"
+
+#: ../inc/result.inc:253 ../user/explain_state.php:97
+msgid "Uploading"
+msgstr "Odosielanie"
+
+#: ../inc/result.inc:254 ../user/explain_state.php:88
+msgid "Done"
+msgstr "Hotovo"
+
+#: ../inc/result.inc:267
+msgid "Initial"
+msgstr "Počiatočné"
+
+#: ../inc/result.inc:273
+msgid "Not necessary"
+msgstr "Nepotrebné"
+
+#: ../inc/result.inc:274
+msgid "Workunit error - check skipped"
+msgstr "Chyba pracovnej jednotky - kontrola preskočená"
+
+#: ../inc/result.inc:275
+msgid "Checked, but no consensus yet"
+msgstr "Overené, no zatiaľ bez konsenzu"
+
+#: ../inc/result.inc:276
+msgid "Task was reported too late to validate"
+msgstr "Úloha bola reportovaná príliš neskoro na overenie"
+
+#: ../inc/result.inc:302
+msgid "Couldn't send result"
+msgstr "Nepodarilo sa odoslať výsledok"
+
+#: ../inc/result.inc:306
+msgid "Too many errors (may have bug)"
+msgstr "Príliš veľa chýb (možný bug)"
+
+#: ../inc/result.inc:310
+msgid "Too many results (may be nondeterministic)"
+msgstr "Príliš veľa výsledkov (môže byť nedeterministický)"
+
+#: ../inc/result.inc:314
+msgid "Too many total results"
+msgstr "Príliš veľa výsledkov"
+
+#: ../inc/result.inc:318
+msgid "WU cancelled"
+msgstr "Pracovná jednotka zrušená"
+
+#: ../inc/result.inc:322
+msgid "Canonical result is missing"
+msgstr "Chýba kanonický výsledok"
+
+#: ../inc/result.inc:326
+msgid "Unrecognized Error: %1"
+msgstr "Neznáma chyba: %1"
+
+#: ../inc/result.inc:353
+msgid "Task name"
+msgstr "Názov úlohy"
+
+#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
+#: ../inc/result.inc:364
+msgid "click for details"
+msgstr "kliknite na zobrazenie  podrobností"
+
+#: ../inc/result.inc:353
+msgid "Show IDs"
+msgstr "Zobraziť ID"
+
+#: ../inc/result.inc:358
+msgid "Show names"
+msgstr "Zobraziť názvy"
+
+#: ../inc/result.inc:361 ../user/result.php:36
+msgid "Task"
+msgstr "Úloha"
+
+#: ../inc/result.inc:364
+msgid "Work unit"
+msgstr "Pracovná jednotka"
+
+#: ../inc/result.inc:373
+msgid "Computer"
+msgstr "Počítač"
+
+#: ../inc/result.inc:376 ../inc/result.inc:635
+msgid "Sent"
+msgstr "Poslané"
+
+#: ../inc/result.inc:377
+msgid "Time reported<br />or deadline"
+msgstr "Čas odoslania <br /> alebo uzávierky"
+
+#: ../inc/result.inc:378
+msgid "explain"
+msgstr "vysvetliť"
+
+#: ../inc/result.inc:380 ../user/server_status.php:113
+msgid "Status"
+msgstr "Stav"
+
+#: ../inc/result.inc:381
+msgid "Run time<br />(sec)"
+msgstr "Čas priebehu <br /> (sek)"
+
+#: ../inc/result.inc:382
+msgid "CPU time<br />(sec)"
+msgstr "Procesorový čas <br /> (sek)"
+
+#: ../inc/result.inc:383 ../inc/result.inc:646
+msgid "Credit"
+msgstr "Kredit"
+
+#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
+msgid "Application"
+msgstr "Aplikácia"
+
+#: ../inc/result.inc:633
+msgid "Workunit"
+msgstr "Pracovná jednotka"
+
+#: ../inc/result.inc:636
+msgid "Report deadline"
+msgstr "Odoslať do"
+
+#: ../inc/result.inc:637
+msgid "Received"
+msgstr "Prijatá"
+
+#: ../inc/result.inc:638
+msgid "Server state"
+msgstr "Stat serveru"
+
+#: ../inc/result.inc:639
+msgid "Outcome"
+msgstr "Výsledok"
+
+#: ../inc/result.inc:640
+msgid "Client state"
+msgstr "Stav klienta"
+
+#: ../inc/result.inc:641
+msgid "Exit status"
+msgstr "Opustiť stav"
+
+#: ../inc/result.inc:643
+msgid "Run time"
+msgstr "Čas priebehu"
+
+#: ../inc/result.inc:644
+msgid "CPU time"
+msgstr "Procesorový čas"
+
+#: ../inc/result.inc:645
+msgid "Validate state"
+msgstr "Overenie stavu"
+
+#: ../inc/result.inc:647
+msgid "Device peak FLOPS"
+msgstr "Vrcholná hodnota FLOPS na zariadení"
+
+#: ../inc/result.inc:648
+msgid "Application version"
+msgstr "Verzia aplikácie"
+
+#: ../inc/result.inc:673
+msgid "Output files"
+msgstr "Výstupné súbory"
+
+#: ../inc/result.inc:676
+msgid "Stderr output"
+msgstr "Výstup stderr"
+
+#: ../inc/result.inc:728
+msgid "State"
+msgstr "Stav"
+
+#: ../inc/result.inc:769
+msgid "Task name:"
+msgstr "Názov úlohy:"
+
+#: ../inc/team.inc:40
+msgid "Search criteria (use one or more)"
+msgstr "Kritéria vyhľadávania (použite jedno alebo viac)"
+
+#: ../inc/team.inc:41
+msgid "Key words"
+msgstr "Kľúčové slová"
+
+#: ../inc/team.inc:41
+msgid "Find teams with these words in their names or descriptions"
+msgstr "Nájsť tímy s týmito slovami v popise alebo v názve"
+
+#: ../inc/team.inc:49 ../inc/team.inc:473
+msgid "Type of team"
+msgstr "Typ tímu"
+
+#: ../inc/team.inc:51
+msgid "Show only active teams"
+msgstr "Zobraziť len aktívne tímy"
+
+#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
+msgid "Search"
+msgstr "Vyhľadávať"
+
+#: ../inc/team.inc:61
+msgid "Requested by you, and founder response deadline has passed."
+msgstr "Požadované vami, čas na odpoveď od zakladateľa uplynul."
+
+#: ../inc/team.inc:63
+msgid "Complete foundership transfer"
+msgstr "Dokončiť prenos zakladateľstva"
+
+#: ../inc/team.inc:67
+msgid "Requested by you"
+msgstr "Vyžiadané vami"
+
+#: ../inc/team.inc:67
+msgid "founder response deadline is %1"
+msgstr "Časový limit na odpoveď zakladateľa je do %1"
+
+#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
+#: ../inc/user.inc:449
+msgid "None"
+msgstr "Žiadne"
+
+#: ../inc/team.inc:74
+msgid "Initiate request"
+msgstr "Iniciovať žiadosť"
+
+#: ../inc/team.inc:77
+msgid "Deferred"
+msgstr "Odložené"
+
+#: ../inc/team.inc:91
+msgid "Team info"
+msgstr "Info o tíme"
+
+#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
+msgid "Description"
+msgstr "Popis"
+
+#: ../inc/team.inc:106
+msgid "Web site"
+msgstr "Stránka"
+
+#: ../inc/team.inc:132
+msgid "Cross-project stats"
+msgstr "Medziprojektové štatistiky"
+
+#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
+msgid "Type"
+msgstr "Typ"
+
+#: ../inc/team.inc:139 ../user/team_manage.php:65
+msgid "Message board"
+msgstr "Diskusné fórum"
+
+#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
+msgid "Threads"
+msgstr "Vlákna"
+
+#: ../inc/team.inc:148
+msgid "Join this team"
+msgstr "Vstúpiť do tímu"
+
+#: ../inc/team.inc:149
+msgid ""
+"Note: if 'OK to email' is set in your project preferences, joining a team "
+"gives its founder access to your email address."
+msgstr "Poznámka: ak je vybrané \"OK\" na mail v nastaveniach projektu, vstupom do tímu dáte možnosť vidieť vašu mailovú adresu."
+
+#: ../inc/team.inc:152
+msgid "Not accepting new members"
+msgstr "Neakceptuje nových členov"
+
+#: ../inc/team.inc:159
+msgid "Foundership change requested"
+msgstr "Žiadosť o zmenu zakladateľa"
+
+#: ../inc/team.inc:160
+msgid "Respond by %1"
+msgstr "Odpovedať do %1"
+
+#: ../inc/team.inc:164
+msgid "Team foundership change"
+msgstr "Zmena zakladateľstva tímu"
+
+#: ../inc/team.inc:168 ../inc/team.inc:373
+msgid "Members"
+msgstr "Členovia"
+
+#: ../inc/team.inc:169 ../inc/team.inc:268
+msgid "Founder"
+msgstr "Zakladateľ"
+
+#: ../inc/team.inc:183
+msgid "Admins"
+msgstr "Administrátori"
+
+#: ../inc/team.inc:198
+msgid "New members in last day"
+msgstr "Noví členovia zo včerajška"
+
+#: ../inc/team.inc:199
+msgid "Total members"
+msgstr "Počet členov"
+
+#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
+msgid "view"
+msgstr "zobraziť"
+
+#: ../inc/team.inc:200
+msgid "Active members"
+msgstr "Aktívni členovia"
+
+#: ../inc/team.inc:201
+msgid "Members with credit"
+msgstr "Členovia s kreditom"
+
+#: ../inc/team.inc:270
+msgid "Admin"
+msgstr "Administrátor"
+
+#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
+#: ../user/top_hosts.php:93 ../user/top_teams.php:123
+#: ../user/top_users.php:128
+msgid "Previous %1"
+msgstr "Predošlé %1"
+
+#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
+#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
+#: ../user/top_teams.php:128 ../user/top_users.php:133
+msgid "Next %1"
+msgstr "Ďalšie %1"
+
+#: ../inc/team.inc:303
+msgid "No such team."
+msgstr "Tím neexistuje"
+
+#: ../inc/team.inc:316
+msgid "This operation requires foundership."
+msgstr "Táto operácia vyžaduje zakladateľské práva"
+
+#: ../inc/team.inc:340
+msgid "This operation requires team admin privileges"
+msgstr "Táto operácia vyžaduje práva administrátora tímu"
+
+#: ../inc/team.inc:442
+msgid ""
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "Pozor: toto je tím na celom BOINC. Ak urobíte zmeny tu, o chvíľu budú prepísané. Ak chcete vykonať zmeny, vykonajte ich na %1Celo-BOINC tíme%2."
+
+#: ../inc/team.inc:448
+msgid ""
+"%1Privacy note%2: if you create a team, your project preferences (resource "
+"share, graphics preferences) will be visible to the public."
+msgstr "%1Poznáma o súkromí%2: ak vytvoríte tím, vaše projektové preferencie (grafické alebo zdieľanie zdrojov) budú verejne viditeľné."
+
+#: ../inc/team.inc:452
+msgid "Team name, text version"
+msgstr "Názov tímu, text"
+
+#: ../inc/team.inc:453
+msgid "Don't use HTML tags."
+msgstr "Nepoužívajte HTML tagy"
+
+#: ../inc/team.inc:456
+msgid "Team name, HTML version"
+msgstr "Názov tímu, HTML verzia"
+
+#: ../inc/team.inc:458 ../inc/team.inc:468
+msgid "You may use %1limited HTML tags%2."
+msgstr "Môžete použiť %1obmedzené HTML tagy%2."
+
+#: ../inc/team.inc:459
+msgid "If you don't know HTML, leave this box blank."
+msgstr "Pokiaľ neovládate HTML, nevypĺňajte."
+
+#: ../inc/team.inc:462
+msgid "URL of team web page, if any"
+msgstr "URL stránky tímu (ak existuje)"
+
+#: ../inc/team.inc:462
+msgid "without \"http://\""
+msgstr "bez \"http://\""
+
+#: ../inc/team.inc:463
+msgid "This URL will be linked to from the team's page on this site."
+msgstr "Na tento odkaz sa dostanete zo stránky tímu na tejto stránke."
+
+#: ../inc/team.inc:466
+msgid "Description of team"
+msgstr "Popis tímu"
+
+#: ../inc/team.inc:482
+msgid "Accept new members?"
+msgstr "Príjmať nových členov?"
+
+#: ../inc/uotd.inc:30
+msgid "User profile"
+msgstr "Profil užívateľa"
+
+#: ../inc/user.inc:120
+msgid "Projects in which you are participating"
+msgstr "Projekty ktorých sa zúčastňujete"
+
+#: ../inc/user.inc:122
+msgid "Projects in which %1 is participating"
+msgstr "Projekty ktorých sa %1 zúčastňuje"
+
+#: ../inc/user.inc:126
+msgid "Project"
+msgstr "Projekt"
+
+#: ../inc/user.inc:126
+msgid "Click for user page"
+msgstr "Kliknite na zobrazenie užívateľovej stránky"
+
+#: ../inc/user.inc:126
+msgid "Since"
+msgstr "Od"
+
+#: ../inc/user.inc:151
+msgid "Computing and credit"
+msgstr "Výpočty a kredity"
+
+#: ../inc/user.inc:154
+msgid "Computers on this account"
+msgstr "Počítače v tomto účte"
+
+#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
+#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
+#: ../user/view_profile.php:66
+msgid "View"
+msgstr "Zobraziť"
+
+#: ../inc/user.inc:164
+msgid "Cross-project ID"
+msgstr "Medziprojektové ID"
+
+#: ../inc/user.inc:165
+msgid "Cross-project statistics"
+msgstr "Medziprojektové štatistiky"
+
+#: ../inc/user.inc:166
+msgid "Account"
+msgstr "Konto"
+
+#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
+#: ../inc/user.inc:449 ../user/user_search.php:124
+msgid "Team"
+msgstr "Tím"
+
+#: ../inc/user.inc:170
+msgid "Cross-project"
+msgstr "Medziprojekt"
+
+#: ../inc/user.inc:171
+msgid "Certificate"
+msgstr "Certifikát"
+
+#: ../inc/user.inc:172
+msgid "Stats on your cell phone"
+msgstr "Štatistiky na vašom mobile"
+
+#: ../inc/user.inc:197
+msgid "Account information"
+msgstr "Informácie o účte"
+
+#: ../inc/user.inc:206 ../user/get_passwd.php:31
+#: ../user/team_email_list.php:73
+msgid "Email address"
+msgstr "Mailová adresa"
+
+#: ../inc/user.inc:210 ../inc/user.inc:400
+msgid "URL"
+msgstr "URL"
+
+#: ../inc/user.inc:213
+msgid "Postal code"
+msgstr "PSČ"
+
+#: ../inc/user.inc:214 ../inc/user.inc:394
+msgid "%1 member since"
+msgstr "%1 členom od"
+
+#. LDAP accounts can't change email or password
+#: ../inc/user.inc:219 ../inc/user.inc:223
+msgid "Change"
+msgstr "Zmena"
+
+#: ../inc/user.inc:224
+msgid "email address"
+msgstr "mailová adresa"
+
+#: ../inc/user.inc:225
+msgid "password"
+msgstr "heslo"
+
+#: ../inc/user.inc:226
+msgid "other account info"
+msgstr "ďalšie info o účte"
+
+#: ../inc/user.inc:229 ../inc/user.inc:393
+msgid "User ID"
+msgstr "Užívateľské ID"
+
+#: ../inc/user.inc:229
+msgid "Used in community functions"
+msgstr "Používané v funkciách komunity"
+
+#: ../inc/user.inc:232 ../user/weak_auth.php:25
+msgid "Account keys"
+msgstr "Kľúče k účtu"
+
+#: ../inc/user.inc:237
+msgid "Preferences"
+msgstr "Nastavenia"
+
+#: ../inc/user.inc:240
+msgid "When and how BOINC uses your computer"
+msgstr "Kedy a ako BOINC používa váš počítač"
+
+#: ../inc/user.inc:241
+msgid "Computing preferences"
+msgstr "Preferencie výpočtov"
+
+#: ../inc/user.inc:244
+msgid "Message boards and private messages"
+msgstr "Nástenky a súkromné správy"
+
+#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
+msgid "Community preferences"
+msgstr "Preferencie komunity"
+
+#: ../inc/user.inc:248
+msgid "Preferences for this project"
+msgstr "Preferencie pre tento projekt"
+
+#: ../inc/user.inc:249 ../user/prefs.php:30
+msgid "%1 preferences"
+msgstr "%1 preferencie"
+
+#: ../inc/user.inc:266
+msgid "View the profile of %1"
+msgstr "Zobraziť profil %1"
+
+#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
+msgid "Profile"
+msgstr "Profil"
+
+#: ../inc/user.inc:307 ../user/sample_index.php:114
+msgid "Community"
+msgstr "Komunita"
+
+#: ../inc/user.inc:314
+msgid "Create"
+msgstr "Vytvoriť"
+
+#: ../inc/user.inc:321 ../inc/user.inc:454
+msgid "%1 posts"
+msgstr "%1 správy"
+
+#. ------------ Notification -----------
+#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
+msgid "Notifications"
+msgstr "Notifikácie"
+
+#: ../inc/user.inc:346
+msgid "Quit team"
+msgstr "Opustiť tím"
+
+#: ../inc/user.inc:348 ../inc/user.inc:365
+msgid "Administer"
+msgstr "Spravovať"
+
+#: ../inc/user.inc:354 ../inc/user.inc:367
+msgid "(foundership change request pending)"
+msgstr "(žiadosť o zmenu zakladateľstva čaká)"
+
+#: ../inc/user.inc:356
+msgid "Member of team"
+msgstr "Člen tímu"
+
+#: ../inc/user.inc:358
+msgid "find a team"
+msgstr "nájsť tím"
+
+#: ../inc/user.inc:369
+msgid "Founder but not member of"
+msgstr "Zakladateľ ale nie člen"
+
+#: ../inc/user.inc:375
+msgid "Find friends"
+msgstr "Nájsť priateľov"
+
+#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
+#: ../inc/user.inc:467 ../inc/user.inc:476
+msgid "Friends"
+msgstr "Priatelia"
+
+#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
+msgid "Computers"
+msgstr "Počítače"
+
+#: ../inc/user.inc:415
+msgid "Donor"
+msgstr "Darca"
+
+#: ../inc/user.inc:458
+msgid "Contact"
+msgstr "Kontakt"
+
+#: ../inc/user.inc:461
+msgid "This person is a friend"
+msgstr "Táto osoba je priateľ"
+
+#: ../inc/user.inc:462 ../user/friend.php:240
+msgid "Cancel friendship"
+msgstr "Zrušiť priateľstvo"
+
+#: ../inc/user.inc:465 ../user/friend.php:39
+msgid "Request pending"
+msgstr "Žiadosť čaká"
+
+#: ../inc/user.inc:467
+msgid "Add as friend"
+msgstr "Pridať ako priateľa"
+
+#: ../inc/user.inc:526
+msgid "user name cannot have leading or trailing white space"
+msgstr "užívateľské meno nesmie začínať ani končiť medzerou"
+
+#: ../inc/user.inc:530
+msgid "user name must be nonempty"
+msgstr "užívateľské meno nesmie byť prázdne"
+
+#: ../inc/user.inc:534
+msgid "user name may not contain HTML tags"
+msgstr "užívateľské meno nesmie obsahovať HTLM tagy"
+
+#: ../inc/util.inc:161
+msgid "log out"
+msgstr "odhlásiť sa"
+
+#: ../inc/util.inc:163
+msgid "log in"
+msgstr "prihlásiť sa"
+
+#: ../inc/util.inc:239 ../user/create_account_form.php:41
+msgid "Create an account"
+msgstr "Vytvoriť účet"
+
+#: ../inc/util.inc:240
+msgid "Server status page"
+msgstr "Stránka stavu serverov"
+
+#: ../inc/util.inc:277
+msgid ""
+"A database error occurred while handling your request; please try again "
+"later."
+msgstr "Nastala chyba databázy pri spracúvaní vašej žiadosti. Prosím, skúste to znovu neskôr."
+
+#: ../inc/util.inc:286
+msgid "Unable to handle request"
+msgstr "Žiadosť sa nepodarilo spracovať"
+
+#: ../inc/util.inc:306
+msgid "hours"
+msgstr "hodiny"
+
+#: ../inc/util.inc:309
+msgid "min"
+msgstr "min"
+
+#: ../inc/util.inc:312
+msgid "sec"
+msgstr "sekúnd"
+
+#: ../inc/util.inc:473
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Odkaz vypršal. Prosím, vráťte sa naspäť, obnovte stránku a skúste to znovu."
+
+#: ../inc/util.inc:552
+msgid "Use BBCode tags to format your text"
+msgstr "Na formátovanie vášho textu použite BCCode tagy"
+
+#: ../inc/util.inc:779
+msgid "Project down for maintenance"
+msgstr "Projekt je pozastavený kvôli údržbe"
+
+#: ../inc/util.inc:782
+msgid "%1 is temporarily shut down for maintenance.  Please try again later."
+msgstr "%1 je dočasne vypnutý kvôli údržbe. Prosím, skúste znovu neskôr."
+
+#: ../inc/util.inc:800
+msgid "Unable to connect to database - please try again later"
+msgstr "Nedá sa pripojit k databáze. Prosím, skúste to neskôr."
+
+#: ../inc/util.inc:804
+msgid "Unable to select database - please try again later"
+msgstr "Nedá sa vybrať databáza. Prosím, skúste to neskor."
+
+#: ../inc/util.inc:976
+msgid "characters remaining"
+msgstr "znakov zostáva"
+
+#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
+msgid "Stay logged in on this computer"
+msgstr "Ostať prihlásený na tomto počítači"
+
+#: ../user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Dokončiť nastavenia konta"
+
+#: ../user/account_finish_action.php:27
+msgid "You must supply a name for your account"
+msgstr "Musíte zadať meno svojho účtu"
+
+#: ../user/account_finish_action.php:30
+msgid "HTML tags not allowed in name"
+msgstr "HTML tagy nie sú v mene dovolené"
+
+#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
+#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Upraviť %1 preferencie"
+
+#: ../user/add_venue.php:82
+msgid "Add %1 preferences for %2"
+msgstr "Pridať preferencie %1 pre %2"
+
+#: ../user/apps.php:31 ../user/sample_index.php:104
+msgid "Applications"
+msgstr "Aplikácie"
+
+#: ../user/apps.php:32
+msgid ""
+"%1 currently has the following applications. When you participate in %1, "
+"tasks for one or more of these applications will be assigned to your "
+"computer. The current version of the application will be downloaded to your "
+"computer. This happens automatically; you don't have to do anything."
+msgstr "%1 má nasledujúce aplikácie. Keď sa zúčastníte v %1, úlohy pre jednu alebo viac aplikácií budú priradené vášmu počítaču. Aktuálna verzia sa stiahne na váš počítač; stane sa tak automaticky, vy nemusíte urobiť nič."
+
+#: ../user/apps.php:54
+msgid "Platform"
+msgstr "Platforma"
+
+#: ../user/apps.php:55
+msgid "Version"
+msgstr "Verzia"
+
+#: ../user/apps.php:57
+msgid "Average computing"
+msgstr "Priemerné výpočty"
+
+#: ../user/bbcode.php:23
+msgid "BBCode tags"
+msgstr "BBCode tagy"
+
+#: ../user/bbcode.php:25
+msgid ""
+"BBCode tags let you format text in your profile and message-board postings.\n"
+"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
+"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
+"HTML)."
+msgstr "Tagy BBCode vám umožnia formátovať text vo vašom profile a v správach na nástenku.\nSú podobné HTML, ale jednoduchšie. Tagy začínaju s [ (kde by ste použili normálne %1 v HTML) a končia s ] (kde by ste normálne použili %2 v\nHTML)."
+
+#: ../user/bbcode.php:31
+msgid "Examples"
+msgstr "Príklady"
+
+#: ../user/bbcode.php:32
+msgid "Bold"
+msgstr "Hrubé"
+
+#: ../user/bbcode.php:33
+msgid "Italic"
+msgstr "Kurzíva"
+
+#: ../user/bbcode.php:34
+msgid "Underline"
+msgstr "Podčiarknuté"
+
+#: ../user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Prečiarknuté"
+
+#: ../user/bbcode.php:36
+msgid "Superscript"
+msgstr "Superscript"
+
+#: ../user/bbcode.php:37
+msgid "Big text"
+msgstr "Veľký text"
+
+#: ../user/bbcode.php:38
+msgid "Red text"
+msgstr "Červený text"
+
+#: ../user/bbcode.php:39
+msgid "link to website"
+msgstr "odkaz na stránku"
+
+#: ../user/bbcode.php:40
+msgid "Quoted text"
+msgstr "Citát"
+
+#: ../user/bbcode.php:40
+msgid "use for quoted blocks of text"
+msgstr "používa sa na citované odseky textu"
+
+#: ../user/bbcode.php:41
+msgid "use to display an image"
+msgstr "použiť na zobrazenie obrázku"
+
+#: ../user/bbcode.php:42
+msgid "Code snippet here"
+msgstr "Sem útržok kódu"
+
+#: ../user/bbcode.php:42
+msgid "use to display some code"
+msgstr "použiť na zobrazenie časti kódu"
+
+#: ../user/bbcode.php:43
+msgid "Pre-formatted text"
+msgstr "Predformátovaný text"
+
+#: ../user/bbcode.php:43
+msgid "use to display pre-formatted (usually monospaced) text"
+msgstr "používa sa na predformátovaný (obyčajne jednopriestorový) text"
+
+#: ../user/bbcode.php:44
+msgid "Item 1"
+msgstr "Položka 1"
+
+#: ../user/bbcode.php:44
+msgid "Item2"
+msgstr "Položka 2"
+
+#: ../user/bbcode.php:44
+msgid "Item 2"
+msgstr "Položka 2"
+
+#: ../user/bbcode.php:46
+msgid "use to link to Trac ticket on BOINC website"
+msgstr "použiť na odkaz k Trac tiketu na stránke BOINC"
+
+#: ../user/bbcode.php:48
+msgid "use to link to Trac Wiki on BOINC website"
+msgstr "použiť na odkaz k Trac Wiki na BOINC stránke"
+
+#: ../user/bbcode.php:52
+msgid ""
+"If you don't close a tag or don't specify a parameter correctly,\n"
+"the raw tag itself will display instead of the formatted text."
+msgstr "Pokiaľ tag správne neuzavriete alebo pokiaľ správne nešpecifikujete parameter,\ntag sa zobrazí v texte."
+
+#: ../user/create_account_action.php:26
+msgid "Can't create account"
+msgstr "Účet sa nedá vytvoriť"
+
+#: ../user/create_account_action.php:29
+msgid "Click your browser's <b>Back</b> button to try again."
+msgstr "Kliknite na tlačidlo <b>Back</b> vo vašom prehliadači a skúste to znovu."
+
+#: ../user/create_account_action.php:46
+msgid "Your reCAPTCHA response was not correct. Please try again."
+msgstr "Neodpísali ste obrázok reCAPTCHA správne. Prosím, skúste to znovu."
+
+#: ../user/create_account_action.php:69
+msgid "You must supply an invitation code to create an account."
+msgstr "Na vytvorenie účtu je potrebný kód pozvánky."
+
+#: ../user/create_account_action.php:72
+msgid "The invitation code you gave is not valid."
+msgstr "Zadali ste nesprávny kód pozvánky"
+
+#: ../user/create_account_action.php:83
+msgid ""
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Nesprávna mailová adresa. Adresa musí byť vo formáte meno at doména"
+
+#: ../user/create_account_action.php:87
+msgid "There's already an account with that email address."
+msgstr "Učet s touto mailovou adresou už existuje."
+
+#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
+msgid "New passwords are different"
+msgstr "Nové heslá sú rozdielne"
+
+#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
+msgid "Passwords may only include ASCII characters."
+msgstr "Heslá môžu obsahovať len ASCII znaky."
+
+#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
+msgid "New password is too short: minimum password length is %1 characters."
+msgstr "Nové heslo je príliš krátke. Minimálna dĺžka hesla je %1 znakov."
+
+#: ../user/create_account_action.php:126
+msgid "Couldn't create account"
+msgstr "Nepodarilo sa vytvoriť účet"
+
+#: ../user/create_account_form.php:45
+msgid ""
+"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
+"select Add Project, and enter an email address and password."
+msgstr "Poznámka: Pokiaľ používate Správcu BOINC, nepoužívajte tento formulár. Namiesto toho spustite BOINC, vyberte Pridať projekt a vložte mailovú adresu a heslo."
+
+#: ../user/create_account_form.php:57
+msgid ""
+"This account will belong to the team %1 and will have the project "
+"preferences of its founder."
+msgstr "Tento účet patrí tímu %1 a bude mať projektové preferencie jeho zakladateľa."
+
+#: ../user/create_profile.php:52
+msgid "Picture"
+msgstr "Obrázok"
+
+#: ../user/create_profile.php:66
+msgid "%1 Your profile picture is shown to the left."
+msgstr "%1 Obrázok vášho profilu je naľavo."
+
+#: ../user/create_profile.php:68
+msgid ""
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Na zmenu kliknite na \"Prehliadať\" a vyberte súbor vo formáte JPEG alebo PNG (%1 alebo menej)."
+
+#: ../user/create_profile.php:71
+msgid "To remove it from your profile, check this box:"
+msgstr "Tu zakliknite, ak chcete obrázok odstrániť z vášho profilu."
+
+#: ../user/create_profile.php:79
+msgid ""
+"If you would like include a picture with your profile, click the \"Browse\" "
+"button and select a JPEG or PNG file. Please select images of %1 or less."
+msgstr "Ak chcete pridať do vášhu profilu obrázok, kliknite na tlačidlo\"Prehliadať\" v vyberte súbor vo formáte JPEG alebo PNG. Prosím, vyberte obrázok nie väčší ako %1."
+
+#: ../user/create_profile.php:91
+msgid "Language"
+msgstr "Jazyk"
+
+#: ../user/create_profile.php:94
+msgid "Select the language in which your profile is written:"
+msgstr "Vyberte v akom jazyku je váš profil vyplnený:"
+
+#: ../user/create_profile.php:106
+msgid "Submit profile"
+msgstr "Vytvoriť profil"
+
+#: ../user/create_profile.php:112
+msgid "Create/edit profile"
+msgstr "Vytvoriť/upraviť profil"
+
+#: ../user/create_profile.php:134
+msgid "The format of your uploaded image is not supported."
+msgstr "Formát nahranej fotky nie je podporovaný."
+
+#: ../user/create_profile.php:163
+msgid ""
+"Your %1profile%2 lets you share your opinions and background with the %3 "
+"community."
+msgstr "Váš %1profil%2 vám umožní zdieľať názory a vaše údaje s %3 komunitou."
+
+#: ../user/create_profile.php:209
+msgid "Your ReCaptcha response was not correct.  Please try again."
+msgstr "ReCaptcha bolo vypísané nesprávne. Prosím, skúste to znovu."
+
+#: ../user/create_profile.php:218
+msgid ""
+"Your first response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Vaša prvá odpoveď bola označená ako spam protispamovým systémom Aksimet. Prosím, pozmeňte text vašej správy a skúste to znovu."
+
+#: ../user/create_profile.php:226
+msgid ""
+"Your second response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Vaša druhá odpoveď bola označená ako spam protispamovým systémom Aksimet. Prosím, pozmeňte text vašej správy a skúste to znovu."
+
+#: ../user/create_profile.php:242
+msgid "Your profile submission was empty."
+msgstr "Váš profil nebol vyplnený."
+
+#: ../user/create_profile.php:283
+msgid "Could not update the profile: database error"
+msgstr "Nepodarilo sa aktualizovať profil: chyba databázy"
+
+#: ../user/create_profile.php:299
+msgid "Could not create the profile: database error"
+msgstr "Nepodarilo sa vytvoriť profil: chyba databázy"
+
+#: ../user/create_profile.php:304
+msgid "Profile saved"
+msgstr "Profil bol uložený"
+
+#: ../user/create_profile.php:306
+msgid ""
+"Congratulations! Your profile was successfully entered into our database."
+msgstr "Blahoželáme! Váš profil bol úspešne nahraný do našej databázy."
+
+#: ../user/create_profile.php:309
+msgid "View your profile"
+msgstr "Zobraziť váš profil"
+
+#: ../user/create_profile.php:319
+msgid "Create a profile"
+msgstr "Vytvoriť profil"
+
+#: ../user/create_profile.php:347
+msgid ""
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Na zabránenie spamu je požadovaný priemerný kredit %1 , aby bolo možné vytvoriť alebo upraviť profil. Za spôsobené nepríjemnosti sa ospravedlňujeme."
+
+#: ../user/delete_account.php:57
+msgid "Couldn't delete account"
+msgstr "Nepodarilo sa vymazať účet"
+
+#: ../user/delete_account.php:59
+msgid "Account deleted"
+msgstr "Účet bol vymazaný"
+
+#: ../user/delete_account.php:60
+msgid "Your account has been deleted."
+msgstr "Váš účet bol zmazaný"
+
+#: ../user/delete_account.php:64
+msgid "Confirm delete account"
+msgstr "Potvrďte zmazanie účtu"
+
+#: ../user/delete_account.php:67
+msgid ""
+"Deleting your account will remove all of your\n"
+"personal information from our servers,\n"
+"including your profile and message-board posts.\n"
+"No jobs will be issued to any computers attached\n"
+"to this account."
+msgstr "Vymazanie vášho profilu odstráni všetky vaše osobné informácie z našich serverov,\nvrátanie vášho profilu a správ z nástenky.\nŽiadne úlohy nebudú viac priraďované k počítačom\nna tomto účte."
+
+#: ../user/delete_account.php:73
+msgid ""
+"This cannot be undone.\n"
+"Once your account has been deleted, you cannot get it back."
+msgstr "Toto je nezvratná akcia.\nAk bude váš účet vymazaný, nie je možné ho obnoviť."
+
+#: ../user/delete_account.php:76
+msgid "Are you sure you want to delete your account?"
+msgstr "Skutočne chcete vymazať váš účet?"
+
+#: ../user/delete_account.php:79 ../user/delete_profile.php:54
+#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
+#: ../user/prefs_remove.php:53 ../user/user_search.php:59
+#: ../user/user_search.php:64
+msgid "Yes"
+msgstr "Áno"
+
+#: ../user/delete_account.php:79
+msgid "Delete this account"
+msgstr "Zmazať tento účet"
+
+#: ../user/delete_account.php:80 ../user/delete_profile.php:55
+#: ../user/friend.php:241 ../user/user_search.php:58
+#: ../user/user_search.php:63
+msgid "No"
+msgstr "Nie"
+
+#: ../user/delete_account.php:80
+msgid "Do not delete this account"
+msgstr "Zachovať tento účet"
+
+#: ../user/delete_profile.php:32
+msgid "couldn't delete profile - please try again later"
+msgstr "nepodarilo sa vymazať váš účet. Skúste to prosím neskôr"
+
+#: ../user/delete_profile.php:35
+msgid "Delete Confirmation"
+msgstr "Potvrdenie zmazania"
+
+#: ../user/delete_profile.php:37
+msgid "Your profile has been deleted."
+msgstr "Váš profil bol vymazaný"
+
+#: ../user/delete_profile.php:42
+msgid "Profile delete confirmation"
+msgstr "Potvrdenie vymazania profilu"
+
+#: ../user/delete_profile.php:45
+msgid "Are you sure?"
+msgstr "Ste si istý?"
+
+#: ../user/delete_profile.php:46
+msgid ""
+"Deleted profiles are gone forever and cannot be recovered --\n"
+"you will have to start from scratch\n"
+"if you want another profile in the future."
+msgstr "Vymazané profily sú nenávratne preč a nie je možné ich obnoviť--\nmusíte začať odznova\nak chcete v budúcnosti iný ptofil."
+
+#: ../user/delete_profile.php:50
+msgid ""
+"If you're sure, click 'Yes'\n"
+"to remove your profile from our database."
+msgstr "Ak ste si istý, kliknite na \"Áno\"\nna odstránenie vášho profilu z našej databázay."
+
+#: ../user/delete_profile.php:54
+msgid "Delete my profile"
+msgstr "Vymazať môj profil"
+
+#: ../user/delete_profile.php:55
+msgid "Do not delete my profile"
+msgstr "Zachovať môj profil"
+
+#: ../user/donated.php:25
+msgid "PayPal - Transaction Completed"
+msgstr "PayPal - Tranzakcia bola dokončená"
+
+#: ../user/donated.php:28
+msgid "Thank you for donating!"
+msgstr "Ďakujeme vám za váš dar!"
+
+#: ../user/donated.php:29
+msgid "Your donation for has been completed."
+msgstr "Darovanie bolo dokončené."
+
+#: ../user/donated.php:30
+msgid ""
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "Váš dar bude pripočítaný k celkovej sume po potvrdení PayPal."
+
+#: ../user/donated.php:32
+msgid "You have canceled your donation."
+msgstr "Darovanie ste zrušili."
+
+#: ../user/donations.php:24
+msgid "This project is not accepting donations."
+msgstr "Projekt nepríjma dary."
+
+#: ../user/donations.php:34
+msgid "%1 donations"
+msgstr "%1 darov"
+
+#: ../user/donations.php:39
+msgid ""
+"This project is accepting donations via\n"
+"%1."
+msgstr "Tento projekt príjma dary cez\n%1."
+
+#: ../user/donations.php:42
+msgid ""
+"To donate, fill in the amount you want to donate using the field below.\n"
+"        PayPal is accepting multiple currencies\n"
+"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
+"         Yen, Australian Dollars, New Zealand Dollars,\n"
+"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
+"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
+"        Hungarian Forint, Czech Koruna).\n"
+"        You can use included currency converter\n"
+"        to see the donation amount equivalent in different currencies\n"
+"        (please note that the rates are only estimates\n"
+"         and the actual amount may differ)."
+msgstr "Na poskytnutie daru, vyplňte sumu, ktorú chcete darovať, do poľa nižšie.\nPayPal príjma viacero mien\n(Kanadské Doláre, Euro, Anglické Libry, Americké Doláre, Yeny, Austrálske Doláre, Novozélandské Doláre, \nŠvajčiarske Franky, Hongkongské Doláre, Singapurské\nDoláre, Švédske koruny, Poľské Zlote, Nórske koruny,\nMaďarské forinty, České koruny).\nMôžete využiť priložený prevodník na zistenie\nsumy v rôznych menách\n(prosím, berte na vedomie, že prevody sú len orientačné, kurz a a [...]
+
+#: ../user/donations.php:316
+msgid "Amount you would like to donate"
+msgstr "Sumu akú chcete darovať"
+
+#: ../user/donations.php:317
+msgid "Estimated value in"
+msgstr "Približná hodnota v "
+
+#: ../user/donations.php:320 ../user/donations.php:324
+msgid "Anonymous donation"
+msgstr "Anonymný dar"
+
+#: ../user/donations.php:320
+msgid ""
+"Select this if you dont want your name and account number displayed in\n"
+"donator lists.<br>If not checked, you will be recorded as user ID %1"
+msgstr "Tu zaškrtnite, ak nechcete aby bolo vaše meno a číslo účtu zverejnené v\nzozname darcov.<br> Ak nezaškrtnete, vaše meno bude zaznamenané ako užívateľ ID %1"
+
+#: ../user/donations.php:324
+msgid "To assign the donation with your user ID, please log in."
+msgstr "Prosím, prihláste sa ak chcete priradiť dar k vášmu užívateľskému ID."
+
+#: ../user/donations.php:328
+msgid "Proceed"
+msgstr "Pokračovať"
+
+#: ../user/donations.php:329
+msgid "Donations are accepted through"
+msgstr "Príspevky sú príjmané z"
+
+#: ../user/download_network.php:25
+msgid "Download BOINC add-on software"
+msgstr "Stiahnuť prídavky BOINC"
+
+#: ../user/download_network.php:28
+msgid "You can download applications in several categories."
+msgstr "Môžete stiahnuť aplikácie v rôznych kategóriách."
+
+#: ../user/download_network.php:31
+msgid ""
+"These applications are not endorsed by %1 and you use them at your own risk."
+msgstr "Tieto aplikácie nie sú overené %1 a ich použitie je na vlastné riziko."
+
+#: ../user/download_network.php:33
+msgid ""
+"We do not provide instructions for installing these applications.\n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
+"If this is not enough you should contact the author."
+msgstr "Neposkytujeme inštrukcie ako nainštalovať tieto aplikácie.\nNo, autor mohol poskytnúť návod ako nainštalovať alebo odinštalovať tieto aplikácie.\nAk je tá informácia nedostatočná, prosím, kontaktujte autora."
+
+#: ../user/download_network.php:36
+msgid "Instructions for installing and running BOINC are %1here%2."
+msgstr "Návod ako nainštalovať a používať BOINC nájdete %1tu%2."
+
+#: ../user/download_network.php:38
+msgid "This list is managed centrally at %1the BOINC website%2."
+msgstr "Tento zoznam sa centrálne spravuje na %1stránke BOINC%2."
+
+#: ../user/edit_email_action.php:31
+msgid "Change email address of account"
+msgstr "Zmeniť mailovú adresu konta"
+
+#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+msgid "New email address '%1' is invalid."
+msgstr "Nová mailová adresa %1 je nesprávna."
+
+#: ../user/edit_email_action.php:38
+msgid "New email address is same as existing address. Nothing is changed."
+msgstr "Nová mailová adresa je rovnaká ako pôvodná. Neprebehla žiadna zmena."
+
+#: ../user/edit_email_action.php:42
+msgid "There's already an account with that email address"
+msgstr "Konto s touto mailovou adresou už existuje"
+
+#: ../user/edit_email_action.php:54
+msgid "Invalid password."
+msgstr "Nesprávne heslo"
+
+#: ../user/edit_email_action.php:62
+msgid "The email address of your account is now %1."
+msgstr "Mailová adresa vášho účtu je odteraz %1."
+
+#: ../user/edit_email_action.php:64
+msgid "Please %1validate this email address%2."
+msgstr "Prosím, %1potvrďte túto mailovú adresu%2."
+
+#: ../user/edit_email_action.php:67
+msgid ""
+"We can't update your email address due to a database problem.  Please try "
+"again later."
+msgstr "Momentálne nemôžeme aktualizovať vašu mailovú adresu kvôli problémom s databázou. Prosím, skúste to neskor."
+
+#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+msgid "Change email address"
+msgstr "Zmeniť mailovú adresu"
+
+#: ../user/edit_email_form.php:36
+msgid "Change the email address of your account"
+msgstr "Zmeniť mailovú adresu vášho účtu."
+
+#: ../user/edit_email_form.php:37
+msgid "New email address"
+msgstr "Nová mailová adresa"
+
+#: ../user/edit_email_form.php:38
+msgid "Must be a valid address of the form 'name at domain'"
+msgstr "Adresa musí byť v správnom formáte, \"meno at doména\""
+
+#: ../user/edit_email_form.php:48
+msgid "No password?"
+msgstr "Žiadne heslo?"
+
+#: ../user/edit_forum_preferences_action.php:33
+msgid "Confirm reset"
+msgstr "Potvrďte reset"
+
+#: ../user/edit_forum_preferences_action.php:34
+msgid ""
+"This action will erase any changes you have made in your community "
+"preferences. To cancel, click your browser's Back button."
+msgstr "Týmto zrušíte všetky zmeny, ktoré ste vykonali v preferenciách komunity. Ak si to neželáte, kliknite na tlačidlo späť na vašom prehliadači."
+
+#: ../user/edit_forum_preferences_action.php:38
+msgid "Reset preferences"
+msgstr "Reset preferencií"
+
+#. Not the right kind of file
+#: ../user/edit_forum_preferences_action.php:95
+msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
+msgstr "Chyba: Vybraný nesprávny formát súboru, podporovaný formát je len PNG alebo JPEG."
+
+#: ../user/edit_forum_preferences_action.php:120
+msgid "Your signature was too long, please keep it less than 250 characters."
+msgstr "Váš podpis je príliš dlhý, prosím použite najviac 250 znakov."
+
+#: ../user/edit_forum_preferences_action.php:139
+#: ../user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Používateľ neexistuje:"
+
+#: ../user/edit_forum_preferences_form.php:45
+msgid ""
+"How should we notify you of new private messages, friend requests, posts in "
+"subscribed threads, and other events?"
+msgstr "Akým spôsobom si želáte byť informovaný o nových správach, žiadostiach o priateľstvo, správach v sledovaných témach a iných udalostiach?"
+
+#: ../user/edit_forum_preferences_form.php:46
+msgid "On my Account page (no email)"
+msgstr "Na stránke môjho profilu (bez mailu)"
+
+#: ../user/edit_forum_preferences_form.php:47
+msgid "Immediately, by email"
+msgstr "Okamžite, mailom"
+
+#: ../user/edit_forum_preferences_form.php:48
+msgid "In a single daily email"
+msgstr "Raz denne mailom"
+
+#: ../user/edit_forum_preferences_form.php:65
+msgid "Message-board identity"
+msgstr "Identita na nástenka"
+
+#: ../user/edit_forum_preferences_form.php:66
+msgid "Avatar"
+msgstr "Obrázok"
+
+#: ../user/edit_forum_preferences_form.php:67
+msgid "An image representing you on the message boards."
+msgstr "Obrázok, ktorý vás reprezentuje na nástenkách."
+
+#: ../user/edit_forum_preferences_form.php:68
+msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
+msgstr "Format JPG alebo PNG, maximum 4 KB, 100x100 pixelov"
+
+#: ../user/edit_forum_preferences_form.php:70
+msgid "Don't use an avatar"
+msgstr "Nepoužívať obrázok"
+
+#: ../user/edit_forum_preferences_form.php:72
+msgid "Use a Globally Recognized Avatar provided by %1"
+msgstr "Použiť globálne uznávaného avatara od %1"
+
+#: ../user/edit_forum_preferences_form.php:74
+msgid "Use this uploaded avatar:"
+msgstr "Použiť tohoto nahraného avatara:"
+
+#: ../user/edit_forum_preferences_form.php:77
+msgid "Avatar preview"
+msgstr "Náhľad na avatara:"
+
+#: ../user/edit_forum_preferences_form.php:77
+msgid "This is how your avatar will look"
+msgstr "Takto bude váš avatar vyzerať"
+
+#: ../user/edit_forum_preferences_form.php:86
+msgid "Signature for message board posts"
+msgstr "Podpis na správy na nástenku"
+
+#: ../user/edit_forum_preferences_form.php:89
+msgid ""
+"Check out %1various free services%2\n"
+"<br> providing dynamic 'signature images'\n"
+"<br> showing your latest credit info, project news, etc."
+msgstr "Pozrite si %1rôzne bezplatné služby%2\n<br> poskytovanie dynamických \"obrázkových podpisov\"\n<br> zobrazovanie aktuálnych údajov o kreditoch, projektoch atď."
+
+#: ../user/edit_forum_preferences_form.php:93
+msgid "Attach signature by default"
+msgstr "Vždy pripojiť podpis"
+
+#: ../user/edit_forum_preferences_form.php:96
+msgid "Signature preview"
+msgstr "Náhľad na podpis"
+
+#: ../user/edit_forum_preferences_form.php:97
+msgid "This is how your signature will look in the forums"
+msgstr "Takto bude vyzerať váš podpis na fórach"
+
+#: ../user/edit_forum_preferences_form.php:115
+msgid "Message display"
+msgstr "Zobrazenie správy"
+
+#: ../user/edit_forum_preferences_form.php:117
+msgid "What to display"
+msgstr "Čo zobraziť"
+
+#: ../user/edit_forum_preferences_form.php:118
+msgid "Hide avatar images"
+msgstr "Skryť obrázky avatarov"
+
+#: ../user/edit_forum_preferences_form.php:119
+msgid "Hide signatures"
+msgstr "Skryť podpisy"
+
+#: ../user/edit_forum_preferences_form.php:120
+msgid "Show images as links"
+msgstr "Zobraziť obrázky ako odkazy"
+
+#: ../user/edit_forum_preferences_form.php:121
+msgid "Open links in new window/tab"
+msgstr "Otvoriť odkazy v novom okne/sekcii"
+
+#: ../user/edit_forum_preferences_form.php:122
+msgid "Highlight special users"
+msgstr "Zvýrazniť špeciálnych užívateľov"
+
+#: ../user/edit_forum_preferences_form.php:123
+msgid "Display this many messages per page"
+msgstr "Zobraziť až toľko správ na stránku"
+
+#: ../user/edit_forum_preferences_form.php:127
+msgid "How to sort"
+msgstr "Ako zoradiť"
+
+#: ../user/edit_forum_preferences_form.php:128
+msgid "Threads:"
+msgstr "Vlákna:"
+
+#: ../user/edit_forum_preferences_form.php:128
+msgid "Posts:"
+msgstr "Príspevky:"
+
+#: ../user/edit_forum_preferences_form.php:129
+msgid "Jump to first new post in thread automatically"
+msgstr "Preskočiť hneď k novým správam v téme automaticky."
+
+#: ../user/edit_forum_preferences_form.php:130
+msgid "Don't move sticky posts to top"
+msgstr "Nepresúvať lepkavé správy navrch"
+
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: ../user/edit_forum_preferences_form.php:137
+msgid "Message filtering"
+msgstr "Filtrovanie správ"
+
+#: ../user/edit_forum_preferences_form.php:153
+msgid "Filtered users"
+msgstr "Filtrovaní užívatelia"
+
+#: ../user/edit_forum_preferences_form.php:154
+msgid "Ignore message board posts and private messages from these users."
+msgstr "Ignorovať príspevky na nástenke a súkromné správy od týchto užívateľov."
+
+#: ../user/edit_forum_preferences_form.php:156
+msgid "User ID (For instance: 123456789)"
+msgstr "ID užívateľa (napríklad 123456789)"
+
+#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
+msgid "Add user to filter"
+msgstr "Pridať užívateľa do filtra"
+
+#: ../user/edit_forum_preferences_form.php:162
+msgid "Click here to update preferences"
+msgstr "Kliknite sem na aktualizáciu preferencií"
+
+#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:166
+msgid "Reset"
+msgstr "Resetovať"
+
+#: ../user/edit_forum_preferences_form.php:165
+msgid "Or click here to reset preferences to the defaults"
+msgstr "Alebo kliknite sem na reset preferencií na pôvodné nastavenia"
+
+#: ../user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Nepodarilo sa aktualizovať vaše heslo kvôli problémom s databázou. Prosím, skúste to neskôr."
+
+#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
+#: ../user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "Zmeniť heslo"
+
+#: ../user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "Vaše heslo bolo zmenené"
+
+#: ../user/edit_passwd_form.php:32
+msgid "New password"
+msgstr "Nové heslo"
+
+#: ../user/edit_passwd_form.php:33
+msgid "New password, again"
+msgstr "Zopakovať nové heslo"
+
+#: ../user/edit_user_info_action.php:31
+msgid "HTML tags are not allowed in your name."
+msgstr "HTML tagy nie sú v mene povolené"
+
+#: ../user/edit_user_info_action.php:34
+msgid "You must supply a name for your account."
+msgstr "Musíte uviesť meno účtu."
+
+#: ../user/edit_user_info_action.php:58
+msgid "Couldn't update user info."
+msgstr "Nepodarilo sa aktualizovať údaje."
+
+#: ../user/edit_user_info_form.php:27
+msgid "Edit account information"
+msgstr "Upraviť údaje o účte"
+
+#: ../user/edit_user_info_form.php:32
+msgid "Name %1 real name or nickname%2"
+msgstr "Meno %1 skutočné meno alebo prezývka%2"
+
+#: ../user/edit_user_info_form.php:35
+msgid "URL %1 of your web page; optional%2"
+msgstr "URL %1 vašej stránky; nepovinné%2"
+
+#: ../user/edit_user_info_form.php:43
+msgid "Postal (ZIP) code %1 Optional%2"
+msgstr "PSČ %1 Nepovinné%2"
+
+#: ../user/edit_user_info_form.php:47
+msgid "Update info"
+msgstr "Aktualizovať údaje"
+
+#: ../user/explain_state.php:27
+msgid "Server states"
+msgstr "Stav servervu"
+
+#: ../user/explain_state.php:30
+msgid ""
+"A tasks's <b>server state</b> indicates whether the task has been sent to a "
+"computer, and if so whether the computer has finished it. Possible values "
+"are:"
+msgstr "<b>Serverový stav</b> úlohy ukazuje, či bola úloha poslaná na počítač a ak áno, či ju počítač dokončil. Možné hodnoty sú:"
+
+#: ../user/explain_state.php:35
+msgid ""
+"The task is not ready to send (for example, because its input files are "
+"unavailable)"
+msgstr "Úloha nie je pripravená na odoslanie (napríklad, pretože vstupné súbory nie sú dostupné)"
+
+#: ../user/explain_state.php:38
+msgid "The task is ready to send, but hasn't been sent yet."
+msgstr "Úloha je pripravená na odoslanie, no ešte sa tak nestalo."
+
+#: ../user/explain_state.php:40
+msgid "In Progress"
+msgstr "Prebieha"
+
+#: ../user/explain_state.php:41
+msgid "The task has been sent; waiting for completion."
+msgstr "Úloha bola odoslaná, čaká sa na dokončenie."
+
+#: ../user/explain_state.php:44
+msgid ""
+"The task has been sent to a computer and either it has timed out or the "
+"computer has reported its completion."
+msgstr "Úloha bola poslaná na počítač a buď vypršala alebo počítač ju odoslal ako dokončenú."
+
+#: ../user/explain_state.php:49
+msgid "Outcomes"
+msgstr "Výsledky"
+
+#: ../user/explain_state.php:52
+msgid ""
+"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
+"Possible values are:"
+msgstr "<b>Výsledok</b> úlohy je určený keď server jej stav určí ako <b>ukončené</b>. Možné hodnoty sú:"
+
+#: ../user/explain_state.php:57
+msgid ""
+"The task was sent to a computer, but the computer has not yet completed the "
+"work and reported the outcome."
+msgstr "Úloha bola poslaná na počítač, ten ale prácu ešte nedokončil a neodoslal výsledok."
+
+#: ../user/explain_state.php:60
+msgid "A computer completed and reported the task successfully."
+msgstr "Počítač dokončil a úspešne odoslal úlohu."
+
+#: ../user/explain_state.php:63
+msgid ""
+"The server wasn't able to send the task to a computer (perhaps because its "
+"resource requirements were too large)"
+msgstr "Server nebol schopný poslať úlohy na počítač (pravdepodobne sú jej požiadavky privysoké)"
+
+#: ../user/explain_state.php:65
+msgid "Client error"
+msgstr "Chyba klienta"
+
+#: ../user/explain_state.php:66
+msgid "The task was sent to a computer and an error occurred."
+msgstr "Úloha bola odoslaná počítaču, no nastala chyba."
+
+#: ../user/explain_state.php:69
+msgid ""
+"The task was sent to a computer and no reply was received within the time "
+"limit."
+msgstr "Úloha bola odoslaná na počítač, no v rámci časového limitu nebola doručená odpoveď."
+
+#: ../user/explain_state.php:72
+msgid ""
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "Úloha nebola poslaná na počítač, pretože dostatok iných úloh bolo dokončené na tejto jednotke."
+
+#: ../user/explain_state.php:75
+msgid ""
+"The task was reported but could not be validated, typically because the "
+"output files were lost on the server."
+msgstr "Úloha bola odoslaná ale nemohla byť overená. Pravdepodobne preto, že súbory s výsledkom boli stratené na serveri."
+
+#: ../user/explain_state.php:80
+msgid "Client states"
+msgstr "Stav klienta"
+
+#: ../user/explain_state.php:81
+msgid ""
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Výsledok <b>stavu klienta</b> ukazuje fázu spracovania, kedy vznikla chyba."
+
+#: ../user/explain_state.php:86
+msgid "The computer has not yet completed the task."
+msgstr "Počítač ešte nedokončil úlohu."
+
+#: ../user/explain_state.php:89
+msgid "The computer completed the task successfully."
+msgstr "Počítač úspešne dokončil úlohu."
+
+#: ../user/explain_state.php:92
+msgid "The computer couldn't download the application or input files."
+msgstr "Počítaču sa nepodarilo stiahnuť aplikačné alebo vstupné súbory."
+
+#: ../user/explain_state.php:95
+msgid "An error occurred during computation."
+msgstr "Počas výpočtu nastala chyba."
+
+#: ../user/explain_state.php:98
+msgid "The computer couldn't upload the output files."
+msgstr "Počitaču sa nepodarilo odoslať výsledné súbory."
+
+#: ../user/explain_state.php:103
+msgid "Time reported and deadline"
+msgstr "Kedy zaznamenané a uzávierka"
+
+#: ../user/explain_state.php:106
+msgid ""
+"A task's <b>Time reported or deadline</b> field depends on whether the task "
+"has been reported yet:"
+msgstr "Pole <b>Čas odoslania alebo uzávierka</b> úlohy závisí, či bola úloha už odoslaná"
+
+#: ../user/explain_state.php:110
+msgid "Already reported"
+msgstr "Už bolo odoslané"
+
+#: ../user/explain_state.php:110
+msgid "The date/time it was reported"
+msgstr "Dátum/čas záznamu"
+
+#: ../user/explain_state.php:111
+msgid "Not reported yet, deadline in the future"
+msgstr "Ešte nezaznamenané, uzávierka v budúcnosti"
+
+#: ../user/explain_state.php:112
+msgid "Deadline, shown in green."
+msgstr "Uzávierka, zeleným"
+
+#: ../user/explain_state.php:114
+msgid "Not reported yet, deadline in the past"
+msgstr "Neodoslané, uzávierka v minulosti"
+
+#: ../user/explain_state.php:115
+msgid "Deadline, shown in red."
+msgstr "Uzávierka, červeným"
+
+#: ../user/explain_state.php:120
+msgid "Unknown field"
+msgstr "Neznáme pole"
+
+#: ../user/ffmail_action.php:47
+msgid "Email preview"
+msgstr "Náhľad mailu"
+
+#: ../user/ffmail_action.php:48
+msgid "Your email will appear as follows:"
+msgstr "Váš mail bude vyzerať nasledovne:"
+
+#: ../user/ffmail_action.php:57
+msgid "Send email"
+msgstr "Poslať mail"
+
+#: ../user/ffmail_action.php:59
+msgid "Use your browser's back button to return to message form"
+msgstr "Použite tlačidlo Naspäť na vašom prehliadači na návrat k formulárom správ"
+
+#: ../user/ffmail_action.php:63
+msgid "Sending emails"
+msgstr "Posielanie mailov"
+
+#: ../user/ffmail_action.php:82
+msgid "email sent successfully to %1"
+msgstr "mail bol úspešne odoslaný užívateľovi %1"
+
+#: ../user/ffmail_action.php:84
+msgid "failed to send email to %1: %2"
+msgstr "nepodarilo sa odoslanie mailu %1: %2"
+
+#: ../user/ffmail_action.php:90
+msgid "Thanks for telling your friends about %1"
+msgstr "Ďakujeme za informovanie vašich priateľov o %1"
+
+#: ../user/ffmail_action.php:92
+msgid ""
+"You forgot to enter your friends' names and/or email addresses; Please "
+"%1return to the form%2 and enter them."
+msgstr "Zabudli ste uviesť mená a/alebo mailové adresy vašich prijateľov. Prosim, %1vráťte sa do formulára%2 a uveďte ich."
+
+#: ../user/ffmail_form.php:30
+msgid ""
+"This project hasn't created an email message - please notify its "
+"administrators"
+msgstr "Tento projekt nevytvoril žiadne mailové správy. Prosím oznámte to jeho administrátorom"
+
+#: ../user/ffmail_form.php:33
+msgid "Tell your friends about %1"
+msgstr "Povedzte priateľom o %1"
+
+#: ../user/ffmail_form.php:37
+msgid "Help us by telling your friends, family and coworkers about %1"
+msgstr "Pomôžte nám a povedzte o %1 vašim priateľom, rodine a kolegom "
+
+#: ../user/ffmail_form.php:39
+msgid ""
+"Fill in this form with the names and email addresses of people you think "
+"might be interested in %1. We'll send them an email in your name, and you "
+"can add your own message if you like."
+msgstr "Vyplnte tento formulár s menami a mailovými adresami ľudí, o ktorých si myslíte, že by mali záujem o %1. Pošleme im mail vo vašom mene a vy, ak si prajete, môžete pridať aj vlastnú správu."
+
+#: ../user/ffmail_form.php:42
+msgid "Your name:"
+msgstr "Vaše meno:"
+
+#: ../user/ffmail_form.php:42
+msgid "Your email address:"
+msgstr "Vaša mailová adresa:"
+
+#: ../user/ffmail_form.php:48
+msgid "Friend's name:"
+msgstr "Meno priateľa:"
+
+#: ../user/ffmail_form.php:48
+msgid "Friend's email address:"
+msgstr "Mailová adresa priateľa:"
+
+#: ../user/ffmail_form.php:56
+msgid "Additional message (optional)"
+msgstr "Správa (nepovinné)"
+
+#: ../user/ffmail_form.php:59
+msgid "Send"
+msgstr "Odoslať"
+
+#. Can't moderate without being moderator
+#: ../user/forum_banishment_vote.php:37
+#: ../user/forum_banishment_vote_action.php:35
+msgid "You are not authorized to banish users."
+msgstr "Nie ste oprávnený blokovať užívateľov"
+
+#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
+msgid "Banishment Vote"
+msgstr "Hlasovanie ohľadom zablokovania"
+
+#: ../user/forum_banishment_vote.php:52
+msgid "No user with this ID found."
+msgstr "Užívateľ so zadaným ID nebol nájdený."
+
+#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
+msgid "User is already banished"
+msgstr "Užívateľ je už zablokovaný"
+
+#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
+msgid ""
+"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
+"for chosen time period.<br/>It should be done only if %1 has consistently "
+"exhibited trollish behavior."
+msgstr "Skutočne chcete zablokovať užívateľa %1?<br/>Toto zabráni %1 posielať správy na určitú dobu. Malo by sa to používať, len ak sa %1 nevie dlhodobo zmestiť do kože."
+
+#: ../user/forum_banishment_vote.php:64
+msgid ""
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Vyberte kategóriu dôvodu a nepovinne môžete napísať dlhší dôvod, prečo by mal byť užívateľ zablokovaný."
+
+#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
+msgid "Category"
+msgstr "Kategória"
+
+#: ../user/forum_banishment_vote.php:67
+#: ../user/forum_banishment_vote_action.php:59
+#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Obscénne"
+
+#: ../user/forum_banishment_vote.php:68
+#: ../user/forum_banishment_vote_action.php:61
+#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Nenávistný mail"
+
+#: ../user/forum_banishment_vote.php:69
+#: ../user/forum_banishment_vote_action.php:63
+#: ../user/forum_moderate_post.php:62
+msgid "User Request"
+msgstr "Žiadosť užívateľa"
+
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
+#: ../user/forum_moderate_thread.php:100
+msgid "Reason"
+msgstr "Dôvod"
+
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
+msgid "Mailed if nonempty"
+msgstr "Ak nie je prázdne, bude poslané"
+
+#: ../user/forum_banishment_vote.php:77
+msgid "Proceed with vote"
+msgstr "Hlasovať"
+
+#: ../user/forum_banishment_vote_action.php:41
+#: ../user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Musíte špecifikovať úkon"
+
+#: ../user/forum_edit.php:41
+msgid ""
+"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
+"minutes after they have been created."
+msgstr "Už nemôžete upravovať túto správu.<br/> Správy môžu byť upravované maximálne %1 minút od ich vytvorenia."
+
+#: ../user/forum_edit.php:47
+msgid "You are not authorized to edit this post."
+msgstr "Nie ste autorizovaný upravovať túto správu"
+
+#: ../user/forum_edit.php:86 ../user/forum_search.php:74
+msgid "Forum"
+msgstr "Fórum"
+
+#: ../user/forum_edit.php:110
+msgid "Edit your message"
+msgstr "Upraviť Vašu správu"
+
+#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
+#: ../user/forum_post.php:113 ../user/forum_post.php:115
+#: ../user/team_forum.php:71
+msgid "Title"
+msgstr "Titulok"
+
+#: ../user/forum_edit.php:144 ../user/forum_post.php:133
+msgid "Add my signature to this post"
+msgstr "Pridať môj podpis k tejto správe"
+
+#: ../user/forum_forum.php:46
+msgid "Not visible to you"
+msgstr "Pre vás skryté"
+
+#: ../user/forum_forum.php:83
+msgid "Team message board for %1"
+msgstr "Tímové diskusné fórum pre %1"
+
+#: ../user/forum_forum.php:99
+msgid "New thread"
+msgstr "Nové vlákno"
+
+#: ../user/forum_forum.php:99
+msgid "Add a new thread to this forum"
+msgstr "Pridať novú tému do tohoto fóra"
+
+#: ../user/forum_forum.php:119
+msgid "This message board is available as an %1RSS feed%2"
+msgstr "Táto nástenka je dostupná ako %1RSS feed%2"
+
+#: ../user/forum_forum.php:178
+msgid "This thread is hidden"
+msgstr "Táto téma je skrytá"
+
+#: ../user/forum_forum.php:182
+msgid "This thread is sticky and locked, and you haven't read it yet"
+msgstr "Táto téma je lepkavá, uzamknutá a vy ste ju ešte neprečítali"
+
+#: ../user/forum_forum.php:182
+msgid "sticky/locked/unread"
+msgstr "lepkavé/zamknuté/neprečítané"
+
+#: ../user/forum_forum.php:184
+msgid "This thread is sticky and you haven't read it yet"
+msgstr "Táto téma je lepkavá a vy ste ju ešte neprečítali"
+
+#: ../user/forum_forum.php:184
+msgid "sticky/unread"
+msgstr "lepkavé/neprečítané"
+
+#: ../user/forum_forum.php:188
+msgid "You haven't read this thread yet, and it's locked"
+msgstr "Túto tému ste ešte neprečítali a je zamknutá"
+
+#: ../user/forum_forum.php:188
+msgid "unread/locked"
+msgstr "neprečítané/zamknuté"
+
+#: ../user/forum_forum.php:190
+msgid "You haven't read this thread yet"
+msgstr "Toto vlákno ste zatiaľ nečítali"
+
+#: ../user/forum_forum.php:196
+msgid "This thread is sticky and locked"
+msgstr "Táto téma je lepkavá a zamknutá"
+
+#: ../user/forum_forum.php:196
+msgid "sticky/locked"
+msgstr "lepkavé/zamknuté"
+
+#: ../user/forum_forum.php:198
+msgid "This thread is sticky"
+msgstr "Táto téma je lepkavá"
+
+#: ../user/forum_forum.php:198
+msgid "sticky"
+msgstr "lepkavá"
+
+#: ../user/forum_forum.php:202
+msgid "This thread is locked"
+msgstr "Táto téma je uzamknutá"
+
+#: ../user/forum_forum.php:202
+msgid "locked"
+msgstr "zamknuté"
+
+#: ../user/forum_forum.php:204
+msgid "You read this thread"
+msgstr "Čítate túto tému"
+
+#: ../user/forum_forum.php:204
+msgid "read"
+msgstr "prečítané"
+
+#: ../user/forum_help_desk.php:29
+msgid "Questions and answers"
+msgstr "Otázky a odpovede"
+
+#: ../user/forum_help_desk.php:32
+msgid ""
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Hovorte naživo s dobrovoľníkmi cez Skype v jednom z mnohých jazykov. Navštívte %1BOINC Online pomoc%2."
+
+#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
+msgid "Topic"
+msgstr "Predmet"
+
+#: ../user/forum_help_desk.php:47
+msgid "Questions"
+msgstr "Otázky"
+
+#: ../user/forum_index.php:58 ../user/team_forum.php:70
+msgid "Discussion among members of %1"
+msgstr "Diskusia medzi členmi %1"
+
+#: ../user/forum_index.php:74
+msgid "%1 Message boards"
+msgstr "%1 Diskusné fóra"
+
+#: ../user/forum_index.php:83
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "Pokiaľ máte nejaké otázky alebo problémy, prosím, obráťte sa na sekciu %1Otázky a Odpovede%2 na nástenke."
+
+#: ../user/forum_index.php:128
+msgid "Subscribed threads"
+msgstr "Sledované témy"
+
+#: ../user/forum_moderate_post.php:45
+msgid "Moderate post"
+msgstr "Moderovať príspevok"
+
+#: ../user/forum_moderate_post.php:55
+msgid "Hide post"
+msgstr "Skryť správu"
+
+#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
+msgid "Commercial spam"
+msgstr "Reklamný spam"
+
+#: ../user/forum_moderate_post.php:61
+msgid "Doublepost"
+msgstr "Dvojitá správa"
+
+#: ../user/forum_moderate_post.php:66
+msgid "Move post"
+msgstr "Presunúť príspevok"
+
+#: ../user/forum_moderate_post.php:68
+msgid "Destination thread ID:"
+msgstr "ID cieľovej témy:"
+
+#: ../user/forum_moderate_post.php:81
+msgid "Banish user"
+msgstr "Zablokovať užívateľa"
+
+#: ../user/forum_moderate_post.php:83
+msgid "Ban duration"
+msgstr "Trvanie zákazu"
+
+#: ../user/forum_moderate_post.php:84
+msgid "4 hours"
+msgstr "4 hodiny"
+
+#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
+msgid "1 day"
+msgstr "1 deň"
+
+#: ../user/forum_moderate_post.php:86
+msgid "1 week"
+msgstr "Týžden"
+
+#: ../user/forum_moderate_post.php:87
+msgid "2 weeks"
+msgstr "2 týždne"
+
+#: ../user/forum_moderate_post.php:88
+msgid "1 month"
+msgstr "mesiac"
+
+#: ../user/forum_moderate_post.php:89
+msgid "Forever"
+msgstr "Navždy"
+
+#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
+#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
+#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
+#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
+msgid "OK"
+msgstr "OK"
+
+#: ../user/forum_moderate_post.php:107
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Nepovinné vysvetlenie %1 Toto je pridané do mailu užívateľovi.%2"
+
+#: ../user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Nemáte moderátorské oprávnenia na túto správu."
+
+#: ../user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Nie je možné presunúť do inej kategórie"
+
+#: ../user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Nie je možné presunúť do inej kategórie"
+
+#: ../user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Nemáte oprávnenie blokovať užívateľov"
+
+#: ../user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Blokovanie"
+
+#: ../user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "Užívateľ %1 bol zablokovaný."
+
+#: ../user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Úkon zlyhal; možný problem s databázou"
+
+#: ../user/forum_moderate_thread.php:38
+msgid "not authorized"
+msgstr "neautorizovaný"
+
+#: ../user/forum_moderate_thread.php:41
+msgid "Moderate thread '%1'"
+msgstr "Moderovať tému \"%1\""
+
+#: ../user/forum_moderate_thread.php:54
+msgid ""
+"Select the reason category, or write a longer description of why you're "
+"hiding or locking the thread; then press OK."
+msgstr "Vyberte kategóriu dôvodu, alebo napíšte dlhší popis, prečo chcete skryť alebo uzamknúť túto tému a kliknite na OK."
+
+#: ../user/forum_moderate_thread.php:78
+msgid "Current forum"
+msgstr "Aktuálne fórum"
+
+#: ../user/forum_moderate_thread.php:79
+msgid "Destination forum"
+msgstr "Cieľové fórum"
+
+#: ../user/forum_moderate_thread.php:83
+msgid "New title:"
+msgstr "Nový titulok"
+
+#: ../user/forum_post.php:44
+msgid ""
+"Only project admins may create a thread here. However, you may reply to "
+"existing threads."
+msgstr "Len administrátori projektu tu môžu vytvárať témy. Vy, však, môžete prispieť do existujúcich tém."
+
+#: ../user/forum_post.php:64
+msgid ""
+"Your message was flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Vaša správa bola označená ako spam protispamovým systémom Aksimet. Prosím, pozmeňte text vašej správy a skúste to znovu."
+
+#: ../user/forum_post.php:74
+msgid "Create new thread"
+msgstr "Vytvoriť novú tému"
+
+#: ../user/forum_post.php:104
+msgid "Create a new thread"
+msgstr "Vytvoriť novú tému"
+
+#: ../user/forum_post.php:109
+msgid "Remember to add a title"
+msgstr "Nezabudnite pridať predmet"
+
+#: ../user/forum_post.php:131
+msgid "Show this item as a Notice in the BOINC Manager"
+msgstr "Zobraziť položku ako upozornenie v BOINC správcovi"
+
+#: ../user/forum_post.php:131
+msgid "Do so only for items likely to be of interest to all volunteers."
+msgstr "Robte to len s položkami, ktoré by mohli zaujímať všetkých dobrovoľníkov."
+
+#: ../user/forum_rate.php:28
+msgid "Rating offline"
+msgstr "Hodnotenie offline"
+
+#: ../user/forum_rate.php:29
+msgid "This function is turned off by the project"
+msgstr "Táto funkcia je v tomto projekte vypnutá"
+
+#: ../user/forum_rate.php:60
+msgid "You need more average or total credit to rate a post."
+msgstr "Potrebujete viac celkového alebo priemerného kreditu aby ste mohli hodnotiť správu."
+
+#: ../user/forum_rate.php:64
+msgid "You have already rated this post."
+msgstr "Túto správu ste už ohodnotili"
+
+#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
+#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
+#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
+#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
+msgid "Return to thread"
+msgstr "Návrat do témy"
+
+#: ../user/forum_rate.php:74
+msgid "Input Recorded"
+msgstr "Názor zaznamenaný"
+
+#: ../user/forum_rate.php:75
+msgid "Your input has been recorded. Thanks for your help."
+msgstr "Váš názor bol zaznamenaný. Ďakujeme."
+
+#: ../user/forum_rate.php:77
+msgid "Vote Registered"
+msgstr "Hlas bol prijatý"
+
+#: ../user/forum_rate.php:78
+msgid "Your rating has been recorded. Thanks for your input."
+msgstr "Váš hlas bol zaznamenaný. Ďakujeme."
+
+#: ../user/forum_rate.php:82
+msgid "Vote Submission Problem"
+msgstr "Problém s odoslaním hlasu"
+
+#: ../user/forum_reply.php:76
+msgid ""
+"Your post has been flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Vaša správa bola vyhodnotená protispamovým systémom Aksimet ako spam. Prosím, pozmeňte text správy a skúste to znovu."
+
+#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
+#: ../user/forum_thread.php:284
+msgid "Post to thread"
+msgstr "Poslať do témy"
+
+#: ../user/forum_reply.php:143
+msgid "Message:"
+msgstr "Správa:"
+
+#: ../user/forum_reply.php:146
+msgid "reply to %1Message ID%2:"
+msgstr "odpovedať na správu %1ID správy%2:"
+
+#: ../user/forum_reply.php:172
+msgid "Post reply"
+msgstr "Odpovedať"
+
+#: ../user/forum_reply.php:175
+msgid "Add my signature to this reply"
+msgstr "Pridať môj podpis k odpovedi"
+
+#: ../user/forum_report_post.php:48
+msgid "You need more average or total credit to report a post."
+msgstr "Potrebujete viac celkového alebo priemerného kreditu aby ste mohli reportovať správu."
+
+#: ../user/forum_report_post.php:68
+msgid "Report Registered"
+msgstr "Report bol zaregistrovaný."
+
+#: ../user/forum_report_post.php:69
+msgid "Your report has been recorded. Thanks for your input."
+msgstr "Váš report bol zaznamenaný. Ďakujeme vám."
+
+#: ../user/forum_report_post.php:70
+msgid ""
+"A moderator will now look at your report and decide what will happen - this "
+"may take a little while, so please be patient"
+msgstr "Moderátor skontroluje váš report a rozhodne čo s ním. Môže to chvílu trvať, preto vás prosíme o trpezlivosť"
+
+#: ../user/forum_report_post.php:74
+msgid "Report a forum post"
+msgstr "Nahlásiť príspevok"
+
+#: ../user/forum_report_post.php:76
+msgid ""
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
+"can find the rating system at the bottom of the post."
+msgstr "Než nahlásite túto správu, skúste radšej využiť +/- hodnotenie. Pokiaľ dostatok užívateľov ohodnotí správu negatívne, bude skrtyá.<br /> Hodnotenie môžete nájsť v spodnej časti správy."
+
+#: ../user/forum_report_post.php:83
+msgid "Report post"
+msgstr "Nahlásiť príspevok"
+
+#: ../user/forum_report_post.php:84
+msgid ""
+"Why do you find the post offensive: %1Please include enough information so that a person that\n"
+"has not yet read the thread will quickly be able to identify the issue.%2"
+msgstr "Prečo považujete túto správu urážlivou? %1Prosím uveďte dostatok dôvodov, aby osoba, ktorá\nneprečítala celú konverzáciu mohla okamžite identifikovať problém.%2"
+
+#: ../user/forum_report_post.php:93
+msgid "Report not registered"
+msgstr "Report nebol zaregistrovaný"
+
+#: ../user/forum_report_post.php:94
+msgid "Your report could not be recorded. Please wait a while and try again."
+msgstr "Váš report nemohol byť zaznamenaný. Prosím, chvíľu počkajte a skúste to znovu."
+
+#: ../user/forum_report_post.php:95
+msgid ""
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Pokiaľ toto nie je dočasná chyba, obráťte sa prosím na vývojarov projektu."
+
+#: ../user/forum_rss.php:38
+msgid "%1 RSS feed"
+msgstr "%1 RSS feed"
+
+#: ../user/forum_rss.php:39
+msgid "This message board is available as an RSS feed."
+msgstr "Táto nástenka je dostupná ako RSS feed"
+
+#: ../user/forum_rss.php:41
+msgid "Options:"
+msgstr "Nastavenia:"
+
+#: ../user/forum_rss.php:45
+msgid "Include only posts by user ID %1 (default: all users)."
+msgstr "Zahrnúť len správy od užívateľa s ID %1 (pôvodne: od všetkých)"
+
+#: ../user/forum_rss.php:47
+msgid "Include only posts from the last %1 days (default: 30)."
+msgstr "Zahrnúť len správy za posledných %1 dní (pôvodne: 30)."
+
+#: ../user/forum_rss.php:49
+msgid "Threads only: %1 (Include only the first post of every thread)"
+msgstr "Témy len: %1 (Zahrnúť len prvú správu v každej téme)"
+
+#: ../user/forum_search.php:29
+msgid "Forum search"
+msgstr "Prehľadávať fórum"
+
+#: ../user/forum_search.php:33
+msgid "Search query"
+msgstr "Prehľadať fóra"
+
+#: ../user/forum_search.php:34
+msgid "Search for keywords:"
+msgstr "Hľadať kľúčové slová:"
+
+#: ../user/forum_search.php:35
+msgid "Posts that contain all the specified words will be displayed"
+msgstr "Budú zobrazené správy, ktoré obsahujú všetky z uvedených slov"
+
+#: ../user/forum_search.php:37
+msgid "For example: \"screensaver freeze\""
+msgstr "Napríklad: \"mrzne šetrič obrazovky\""
+
+#: ../user/forum_search.php:38
+msgid "Search for author ID:"
+msgstr "Hľadať ID autora:"
+
+#: ../user/forum_search.php:39
+msgid "Only posts by this author will be displayed"
+msgstr "Budú zobrazené správy len od tohoto autora"
+
+#: ../user/forum_search.php:41
+msgid "For example: \"43214\""
+msgstr "Napríklad: \"43214\""
+
+#: ../user/forum_search.php:43
+msgid "Search options"
+msgstr "Možnosti vyhľadávania"
+
+#: ../user/forum_search.php:44
+msgid "Search limits"
+msgstr "Limity vyhľadávania"
+
+#: ../user/forum_search.php:45
+msgid "Search at most this many days back in time"
+msgstr "Hľadať najviac toľkoto dní dozadu"
+
+#: ../user/forum_search.php:52 ../user/forum_search.php:53
+msgid "%1 months"
+msgstr "%1 mesiacov"
+
+#: ../user/forum_search.php:54
+msgid "1 year"
+msgstr "1 rok"
+
+#: ../user/forum_search.php:55
+msgid "no limit"
+msgstr "neobmedzene"
+
+#: ../user/forum_search.php:75
+msgid "Only display posts from this forum"
+msgstr "Zobraziť správy len z tohoto fóra"
+
+#: ../user/forum_search.php:86
+msgid "Sort by"
+msgstr "Zoradiť podľa"
+
+#: ../user/forum_search.php:90
+msgid "Start the search"
+msgstr "Začať vyhľádavanie"
+
+#: ../user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Výsledky vyhľadávania fóra"
+
+#: ../user/forum_search_action.php:176
+msgid "Thread titles matching your query:"
+msgstr "Názvy tém zhodné s vašími požiadavkami:"
+
+#: ../user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Správy zhodné s vašimi požiadavkami:"
+
+#: ../user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Je nám ľúto, ale nenašlo sa nič zhodné s vašimi požiadavkami. Môžete rozšíriť vaše požiadavky použitím menej špecifických slov alebo menšieho počtu slov."
+
+#: ../user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Môžete skúsiť %1vyhľadať to isté aj na Google.%2"
+
+#: ../user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Nové vyhľadávanie"
+
+#: ../user/forum_subscribe.php:48
+msgid "Subscription successful"
+msgstr "Sledovanie nastavené úspešne"
+
+#: ../user/forum_subscribe.php:51
+msgid ""
+"You are now subscribed to %1. You will be notified whenever there is a new "
+"post."
+msgstr "Odteraz sledujete %1. Budete dostávať s každou novou správou."
+
+#: ../user/forum_subscribe.php:53
+msgid "Subscription failed"
+msgstr "Sledovanie sa nepodarilo nastaviť"
+
+#: ../user/forum_subscribe.php:54
+msgid ""
+"We are currently unable to subscribe you to %1. Please try again later.."
+msgstr "Momentálne nie je nastavenie sledovania %1 možné. Prosím, skúste to neskôr."
+
+#: ../user/forum_subscribe.php:63
+msgid "Unsubscription successful"
+msgstr "Zrušenie sledovania prebehlo úspešne"
+
+#: ../user/forum_subscribe.php:66
+msgid ""
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Prestali ste sledovať %1. Viac nebudete dostávať upozornenia o nových správach."
+
+#: ../user/forum_subscribe.php:68
+msgid "Unsubscription failed"
+msgstr "Zrušenie sledovania zlyhalo."
+
+#: ../user/forum_subscribe.php:69
+msgid ""
+"We are currently unable to unsubscribe you from %1. Please try again later.."
+msgstr "Momentálne nie je možné zrušiť sledovanie %1. Prosím, skúste to znovu neskôr."
+
+#: ../user/forum_subscribe.php:76
+msgid "Unknown subscription action"
+msgstr "Neznámy úkon sledovania"
+
+#: ../user/forum_thread.php:66
+msgid "This forum is not visible to you."
+msgstr "Toto fórum je pre vás ukryté."
+
+#: ../user/forum_thread.php:74
+msgid "This thread has been hidden by moderators."
+msgstr "Táto téma bola skrytá moderátormi"
+
+#: ../user/forum_thread.php:129
+msgid "My question was answered"
+msgstr "Moja otázka bola zodpovedaná"
+
+#: ../user/forum_thread.php:130
+msgid "Click here if your question has been adequately answered"
+msgstr "Kliknite sem ak vaša otázka bola vhodne zodpovedaná"
+
+#: ../user/forum_thread.php:138
+msgid "I've also got this question"
+msgstr "Aj ja sa chcem na toto opýtať"
+
+#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
+msgid "Add a new message to this thread"
+msgstr "Pridať novú správu do tejto témy"
+
+#: ../user/forum_thread.php:172
+msgid "Unsubscribe"
+msgstr "Prestať sledovať"
+
+#: ../user/forum_thread.php:173
+msgid "You are subscribed to this thread.  Click here to unsubscribe."
+msgstr "Túto tému sledujete. Kliknite sem na zrušenie sledovania."
+
+#: ../user/forum_thread.php:179
+msgid "Subscribe"
+msgstr "Sledovať"
+
+#: ../user/forum_thread.php:180
+msgid "Click to get email when there are new posts in this thread"
+msgstr "Kliknite aby ste boli informovaní mailom v prípade nových správ v tejto téme"
+
+#: ../user/forum_thread.php:191
+msgid "Unhide this thread"
+msgstr "Odkryť túto tému"
+
+#: ../user/forum_thread.php:197
+msgid "Hide this thread"
+msgstr "Skryť túto tému"
+
+#: ../user/forum_thread.php:203
+msgid "Make unsticky"
+msgstr "Zrušiť označenie lepkavé"
+
+#: ../user/forum_thread.php:204
+msgid "Make this thread not sticky"
+msgstr "Zrušiť označenie lepkavé"
+
+#: ../user/forum_thread.php:209
+msgid "Make sticky"
+msgstr "Označiť ako lepkavé"
+
+#: ../user/forum_thread.php:210
+msgid "Make this thread always appear at top of forum"
+msgstr "Nastaviť, aby sa téma zobrazovala vždy na vrchu fóra"
+
+#: ../user/forum_thread.php:216
+msgid "Unlock"
+msgstr "Odomknúť"
+
+#: ../user/forum_thread.php:217
+msgid "Allow new posts in this thread"
+msgstr "Povoliť nové správy v tejto téme"
+
+#: ../user/forum_thread.php:222
+msgid "Lock"
+msgstr "Zamknúť"
+
+#: ../user/forum_thread.php:223
+msgid "Don't allow new posts in this thread"
+msgstr "Zakázať nové správy v tejto téme"
+
+#: ../user/forum_thread.php:230
+msgid "Move this thread to a different forum"
+msgstr "Presunúť tému do iného fóra"
+
+#: ../user/forum_thread.php:235
+msgid "Edit title"
+msgstr "Upraviť nadpis"
+
+#: ../user/forum_thread.php:236
+msgid "Edit thread title"
+msgstr "Upraviť názov témy"
+
+#: ../user/forum_thread.php:244
+msgid "Delete thread permanently"
+msgstr "Zmazať tému"
+
+#: ../user/forum_thread.php:254
+msgid "Export as Notice"
+msgstr "Exportovať ako správu"
+
+#: ../user/forum_thread.php:260
+msgid "Don't export"
+msgstr "Neexportovať"
+
+#: ../user/forum_thread.php:261
+msgid "Don't export this news item as a Notice"
+msgstr "Neexportovať túto novinku ako Poznámku"
+
+#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
+msgid "Sort"
+msgstr "Zoradiť"
+
+#. --------------
+#: ../user/forum_thread_status.php:54
+msgid "Thread status updated"
+msgstr "Stav témy bol aktualizovaný"
+
+#: ../user/forum_thread_status.php:55
+msgid "The status has been updated."
+msgstr "Stav bol aktualizovaný"
+
+#: ../user/forum_user_posts.php:75
+msgid "Posts by %1"
+msgstr "Príspevky od %1"
+
+#: ../user/friend.php:35
+msgid "Already friends"
+msgstr "Už ste priatelia"
+
+#: ../user/friend.php:41
+msgid "You requested friendship with %1 on %2."
+msgstr "Požiadali ste %1 o priateľstvo v %2."
+
+#: ../user/friend.php:43
+msgid "This request is still pending confirmation."
+msgstr "Táto žiadosť stále čaká na potvrdenie."
+
+#: ../user/friend.php:54
+msgid "%1 is not accepting friendship requests from you"
+msgstr "%1 nepríjma žiadosti k priateľstvu od vás"
+
+#: ../user/friend.php:63
+msgid "You can't be friends with yourself"
+msgstr "Nie je možné sa priateliť sám so sebou"
+
+#: ../user/friend.php:71
+msgid "Add friend"
+msgstr "Pridať priateľa"
+
+#: ../user/friend.php:76
+msgid ""
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Požiadali ste užívateľa menom %1 o priateľstvo. %1 dostane oznámenie a žiadosť o prijatie alebo zamietnutie priateľstva."
+
+#: ../user/friend.php:79
+msgid "Add an optional message here:"
+msgstr "Správa (nepovinné)"
+
+#: ../user/friend.php:117
+msgid "Friend request sent"
+msgstr "Žiadosť o priateľstvo bola odoslaná"
+
+#: ../user/friend.php:118
+msgid "We have notified %1 of your request."
+msgstr "Oboznámili sme %1 s vašou žiadosťou."
+
+#: ../user/friend.php:128
+msgid "Please log in as %1"
+msgstr "Prosím, prihláste sa ako %1"
+
+#: ../user/friend.php:129
+msgid "You must log in as %1 to view this friend request"
+msgstr "Na zobrazenie žiadosti o priateľstvo sa musíte prihlásiť ako %1"
+
+#: ../user/friend.php:140
+msgid "Friend request"
+msgstr "Žiadosť o priateľstvo"
+
+#: ../user/friend.php:143
+msgid "%1 has requested friendship with you."
+msgstr "%1 vás požiadal o priateľstvo."
+
+#: ../user/friend.php:145
+msgid "%1 says: %2"
+msgstr "%1 vraví: %2"
+
+#: ../user/friend.php:148
+msgid "Accept friendship"
+msgstr "Prijať priateľa"
+
+#: ../user/friend.php:148
+msgid "Click accept if %1 is in fact a friend"
+msgstr "Prijmite, ak %1 je priateľ"
+
+#: ../user/friend.php:149
+msgid "Decline"
+msgstr "Odmietnuť"
+
+#: ../user/friend.php:149
+msgid "Click decline if %1 is not a friend"
+msgstr "Odmietnite, ak %1 nie je priateľ"
+
+#: ../user/friend.php:188
+msgid "Friendship confirmed"
+msgstr "Priateľstvo potvrdené"
+
+#: ../user/friend.php:189
+msgid "Your friendship with %1 has been confirmed."
+msgstr "Priateľstvo vás a %1 bolo potvrdené."
+
+#: ../user/friend.php:207
+msgid "Friendship declined"
+msgstr "Priateľstvo odmietnuté"
+
+#: ../user/friend.php:208
+msgid "You have declined friendship with %1"
+msgstr "Odmietli ste priateľstvo s %1"
+
+#: ../user/friend.php:223
+msgid "Notification not found"
+msgstr "Správa nenájdená"
+
+#: ../user/friend.php:225
+msgid "Friend confirmed"
+msgstr "Priateľstvo bolo potvrdené"
+
+#: ../user/friend.php:226
+msgid "You are now friends with %1."
+msgstr "S %1 ste odteraz priatelia."
+
+#: ../user/friend.php:234
+msgid "Cancel friendship?"
+msgstr "Zrušiť priateľstvo?"
+
+#: ../user/friend.php:236
+msgid "Are you sure you want to cancel your friendship with %1?"
+msgstr "Skutočne zrušiť priateľstvo s %1?"
+
+#: ../user/friend.php:241
+msgid "Stay friends"
+msgstr "Ostať priateľmi"
+
+#: ../user/friend.php:251
+msgid "Friendship cancelled"
+msgstr "Priateľstvo zrušené"
+
+#: ../user/friend.php:252
+msgid "Your friendship with %1 has been cancelled."
+msgstr "Vaše priateľstvo s %1 bolo zrušené."
+
+#: ../user/get_passwd.php:27
+msgid ""
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Ak viete vašu mailovú adresu a môžete na ňu príjmať mail:"
+
+#: ../user/get_passwd.php:28
+msgid ""
+"Enter the email address below, and click OK. You will be sent email "
+"instructions for resetting your password."
+msgstr "Uveďte mailovú adresu a kliknite OK. Odošleme vám na ňu inštrukcie ako si resetovať heslo."
+
+#: ../user/get_passwd.php:46
+msgid ""
+"2) If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "2) Ak si nepamätáte vašu mailovú adresu, alebo nemôžete na ňu prijať mail:"
+
+#: ../user/get_passwd.php:47
+msgid ""
+"If you have run BOINC under this account, you can still access it. Here's "
+"how:"
+msgstr "Ak pod týmto účtom u vás beží BOINC, môžete sa naň dostať. Takto:"
+
+#: ../user/get_passwd.php:50
+msgid ""
+"Go to the BOINC data directory on your computer (its location is written to "
+"the Event Log at startup)."
+msgstr "Choďte do dátoveho adresáru BOINC na vašom počítači (jeho umiestnenie je napísané v záznamu činnosti pri štarte)."
+
+#: ../user/get_passwd.php:51
+msgid "Find your account file for this project; it will be named <b>%1</b>."
+msgstr "Nájdite súbor s vašim účtom pre tento projekt, volá sa <b>%1</b>."
+
+#: ../user/get_passwd.php:52
+msgid "Open the file in a text editor like Notepad. You'll see something like"
+msgstr "Otvorte súbor v textovom editore ako napríklad Poznámkový blok. Uvidíte niečo ako"
+
+#: ../user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Vyberte a skopírujte text medzi %1 a %2 (%3 v príklade nižšie)."
+
+#: ../user/get_passwd.php:64
+msgid "Paste the string into the field below, and click OK."
+msgstr "Skopírujte text do poľa nižšie a kliknite na OK."
+
+#: ../user/get_passwd.php:65
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Ste prihlásení na váš učet, aktualizujte mailovú adresu vášho účtu."
+
+#: ../user/get_passwd.php:71
+msgid "Log in with authenticator"
+msgstr "Prihlásiť sa pomocou autentifikátora"
+
+#: ../user/get_passwd.php:81
+msgid "Forgot your account info?"
+msgstr "Zabudli ste údaje o vašom účte?"
+
+#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
+msgid "No GPU tasks reported"
+msgstr "Neboli zaznamenané žiadne GPU úlohy"
+
+#: ../user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Top modely GPU"
+
+#: ../user/gpu_list.php:207
+msgid ""
+"The following lists show the most productive GPU models on different "
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Nasledujúci zoznam obsahuje najproduktívnejšie modely GPU na rôznych platformách. Relatívna rýchlost, meraná priemerným časom uplynutým počas úloh, sú uvedené v zátvorkách."
+
+#: ../user/home.php:42
+msgid "Welcome to %1"
+msgstr "Vitajte v %1"
+
+#: ../user/home.php:43
+msgid "View and edit your account preferences using the links below."
+msgstr "Zobraziť a upraviť údaje o vašom účte pomocou odkazu nižšie."
+
+#: ../user/home.php:46
+msgid "If you have not already done so, %1download BOINC client software%2."
+msgstr "Pokiaľ ste tak už neurobili, %1stiahnite si klient BOINC%2."
+
+#: ../user/home.php:49 ../project.sample/project.inc:70
+msgid "Your account"
+msgstr "Váš účet"
+
+#: ../user/host_app_versions.php:37
+msgid "Anonymous platform, missing app"
+msgstr "Anonymná platforma, chýbajúca aplikácia"
+
+#: ../user/host_app_versions.php:40
+msgid "anonymous platform"
+msgstr "anonymná platforma"
+
+#: ../user/host_app_versions.php:43
+msgid "Missing app version"
+msgstr "Chýba verzia aplikácie"
+
+#: ../user/host_app_versions.php:45
+msgid "Missing app"
+msgstr "Chýbajúca aplikácia"
+
+#: ../user/host_app_versions.php:47
+msgid "Missing platform"
+msgstr "Chýbajúca platforma"
+
+#: ../user/host_app_versions.php:56
+msgid "Number of tasks completed"
+msgstr "Počet dokončených úloh"
+
+#: ../user/host_app_versions.php:57
+msgid "Max tasks per day"
+msgstr "Maximálny počet úloh za deň"
+
+#: ../user/host_app_versions.php:58
+msgid "Number of tasks today"
+msgstr "Počet úloh za dnes"
+
+#: ../user/host_app_versions.php:59
+msgid "Consecutive valid tasks"
+msgstr "Správne úlohy za sebou"
+
+#: ../user/host_app_versions.php:63
+msgid "Average processing rate"
+msgstr "Priemerná rýchlosť spracovania"
+
+#: ../user/host_app_versions.php:72
+msgid "Application details for host %1"
+msgstr "Detaily aplikácie pre počítač %1"
+
+#: ../user/host_delete.php:31
+msgid "We have no record of that computer."
+msgstr "Nemáme žiadne záznamy o tomto počítači."
+
+#: ../user/host_delete.php:38
+msgid ""
+"You can not delete our record of this computer because our database still "
+"contains work for it. You must wait a few days until the work for this "
+"computer has been deleted from the project database."
+msgstr "Nemôžete vymazať záznam o tomto počítači, pretože v našej databázi je preň stále práca. Musíte počkať pár dni, kým sa práca pre tento počítač neodstráni z projektovej databázy."
+
+#: ../user/host_delete.php:40
+msgid "Delete record of computer"
+msgstr "Zmazať záznam o počítači"
+
+#: ../user/host_delete.php:41
+msgid "Record deleted."
+msgstr "Záznam bol vymazaný."
+
+#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+msgid "Return to list of your computers"
+msgstr "Vrátiť sa na zoznam Vašich počítačov"
+
+#: ../user/host_edit_action.php:39
+msgid "Merge computer records"
+msgstr "Spojiť záznamy počítačov"
+
+#: ../user/host_edit_form.php:35
+msgid "Merge computers"
+msgstr "Spojiť počítače"
+
+#: ../user/host_edit_form.php:38
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "BOINC niekedy chybne pridá rozdielne identity tomu istému počítaču. Dá sa to opraviť spojením starších identít s novšou."
+
+#: ../user/host_edit_form.php:56
+msgid "No hosts are eligible for merging with this one."
+msgstr "Žiadne počítače nie sú vhodné na spojenie s týmto."
+
+#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+msgid "Show details"
+msgstr "Zobraziť detaily"
+
+#: ../user/host_edit_form.php:66
+msgid ""
+"Check the computers that are the same as %1 (created %2, computer ID %3):"
+msgstr "Skontrolovat zhodu s počítačom %1 (vytvorený %2, ID počítača %3):"
+
+#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+msgid "name"
+msgstr "názov"
+
+#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+msgid "created"
+msgstr "vytvorený"
+
+#: ../user/host_edit_form.php:70
+msgid "computer ID"
+msgstr "ID počítača"
+
+#: ../user/host_edit_form.php:77
+msgid "no hostname"
+msgstr "žiaden názov počítača"
+
+#: ../user/host_edit_form.php:109
+msgid "Merge hosts"
+msgstr "Spojiť počítače"
+
+#: ../user/host_update_credit.php:27
+msgid "Updating computer credit"
+msgstr "Aktualizácia kreditov počítača"
+
+#: ../user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Kredity počítača boli aktualizované"
+
+#: ../user/host_venue_action.php:41
+msgid "Host venue updated"
+msgstr "Miesto počítača bolo aktualizované"
+
+#: ../user/host_venue_action.php:43
+msgid "none"
+msgstr "žiadne"
+
+#: ../user/host_venue_action.php:46
+msgid "The venue of this host has been set to %1."
+msgstr "Miesto počítača bolo nastavené na %1."
+
+#: ../user/host_venue_action.php:48
+msgid ""
+"This change will take effect the next time the host communicates with this "
+"project."
+msgstr "Táto zmena vojde v účinnosť pri najbližšej komunikácii počítača s projektom."
+
+#: ../user/host_venue_action.php:50
+msgid "Return to host page"
+msgstr "Návrat na stránku počítača"
+
+#: ../user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Počítače patriace do %1"
+
+#: ../user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Počítače skryté"
+
+#: ../user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Užívateľ sa rozhodol nezdieľat údaje o svojich počítačoch."
+
+#: ../user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Vaše počítače"
+
+#: ../user/html.php:23
+msgid "Allowed HTML tags"
+msgstr "Povolené HTML tagy"
+
+#: ../user/html.php:25
+msgid "The following HTML tags are allowed in team descriptions:"
+msgstr "Nasledovné HTML tagy sú povolené v popise tímu:"
+
+#: ../user/html.php:27
+msgid "bold"
+msgstr "hrubé"
+
+#: ../user/html.php:28
+msgid "italics"
+msgstr "kurzíva"
+
+#: ../user/html.php:29
+msgid "hyperlink"
+msgstr "hyperlink"
+
+#: ../user/html.php:30
+msgid "paragraph"
+msgstr "odsek"
+
+#: ../user/html.php:31
+msgid "break"
+msgstr "nový riadok"
+
+#: ../user/html.php:32
+msgid "preformatted"
+msgstr "predformátované"
+
+#: ../user/html.php:33
+msgid ""
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "obrázok; výška nemôže presahovať 450 pixelov. Prosím, neuvádzajte odkazy na obrázky bez povolenia stránky, kde sa obrázok nachádza."
+
+#: ../user/html.php:35
+msgid "You can also use ampersand notation for special characters."
+msgstr "Môžete použiť znak \"&\" na označenie špeciálnych znakov."
+
+#: ../user/info.php:24 ../user/sample_index.php:78
+msgid "Read our rules and policies"
+msgstr "Prečítajte si naše pravidlá"
+
+#: ../user/info.php:35
+msgid "Run %1 only on authorized computers"
+msgstr "Spúšťať %1 len na oprávnených počítačoch"
+
+#: ../user/info.php:36
+msgid ""
+"Run %1 only on computers that you own, or for which you have obtained the "
+"owner's permission. Some companies and schools have policies that prohibit "
+"using their computers for projects such as %1."
+msgstr "Spúšťajte %1 len na počítačoch, ktoré vlastníte, alebo ku ktorým máte oprávnenie majiteľa. Niektoré spoločnosti alebo školy svojimi pravidlami zakazujú využívanie svojich počítačov na podobné projekty."
+
+#: ../user/info.php:38
+msgid "How %1 will use your computer"
+msgstr "Ako %1 využije váš počítač"
+
+#: ../user/info.php:39
+msgid ""
+"When you run %1 on your computer, it will use part of the computer's CPU "
+"power, disk space, and network bandwidth. You can control how much of your "
+"resources are used by %1, and when it uses them."
+msgstr "Keď na vašom počítači beží %1, používa časť procesoru, disku a siete. Môžete nastaviť, akú časť %1 používa a kedy ich používa."
+
+#: ../user/info.php:40
+msgid ""
+"The work done by your computer contributes to the goals of %1, as described "
+"on its web site. The application programs may change from time to time."
+msgstr "Práca uskutočnená na vašom počítači prispieva k cieľom %1, ako sa píše na ich stránke. Aplikačné programy sa môžu občas zmeniť."
+
+#: ../user/info.php:42
+msgid "Privacy policy"
+msgstr "Pravidlá súkromia"
+
+#: ../user/info.php:43
+msgid ""
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Váš účet na %1 je identifikovaný menom vami zvoleným. Toto meno môže byť zobrazené na stránke %1 spolu s počítačom, ktorý vykonáva výpočty pre %1. Pokiaľ chcete byť anonymný, zvoľte si meno, ktoré vašu identitu neprezradí."
+
+#: ../user/info.php:44
+msgid ""
+"If you participate in %1, information about your computer (such as its "
+"processor type, amount of memory, etc.) will be recorded by %1 and used to "
+"decide what type of work to assign to your computer. This information will "
+"also be shown on %1's web site. Nothing that reveals your computer's "
+"location (e.g. its domain name or network address) will be shown."
+msgstr "Ak sa zúčastníte %1, údaje o vašom počítači (napríklad typ procesoru, pamäť atď) bude zaznamenaná %1 a bude podľa nej rozhodovať, aký typ práce bude počítaču priradený. Táto informácia bude zobrazená aj na stránke %1. Nebude, však, zobrazené nič, čo by mohlo poukazovať na umiestnenie vášho počítača (IP adresa, doména...)."
+
+#: ../user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "Na účasť v %1, je nutné uviesť mailovú adresu. Táto adresa nebude zobrazená na stránkach %1 alebo iných stránkach s nimi spojenými. %1 vám môže posielať pravidelné správy, toto sa, však, dá kedykoľvek vypnúť."
+
+#: ../user/info.php:46
+msgid ""
+"Private messages sent on the %1 web site are visible only to the sender and "
+"recipient.  %1 does not examine or police the content of private messages.  "
+"If you receive unwanted private messages from another %1 user, you may add "
+"them to your %2message filter%3.  This will prevent you from seeing any "
+"public or private messages from that user."
+msgstr "Súkromné správy poslané na stránke %1 vidia len odosielateľ a adresát. %1 neskúma a ani nekontroluje obsah súkromných správ. Ak dostávate nežiadúce správy od iného užívateľa %1, môžete si ho pridať do %2filtra správ%3. Týmto nebudete viac vidiet súkromné alebo verejné správy od daného užívateľa."
+
+#: ../user/info.php:47
+msgid ""
+"If you use our web site forums you must follow the %2posting guidelines%3.  "
+"Messages posted to the %1 forums are visible to everyone, including non-"
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Pokiaľ používate fórum na našej stránke, musíte tak konať v súlade s %2pravidlami%3. Správy poslané na %1 fórum sú prístupné všetkým, vrátane nečlenov. Prispievaním do fóra dávate nezvratné povolenie každému na čítanie i kopírovanie vašej správy."
+
+#: ../user/info.php:48
+msgid "Is it safe to run %1?"
+msgstr "Je bezpečné spúšťať %1?"
+
+#: ../user/info.php:49
+msgid ""
+"Any time you download a program through the Internet you are taking a "
+"chance: the program might have dangerous errors, or the download server "
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Zakaždým, keď sťahujete program cez internet, riskujete, že program môže mať nebezpečné chyby, alebo že server bol hacknuý. %1 podniklo kroky na minimalizáciu týchto rizík. Naše aplikácie boli starostlivo otestované, naše servery sú za firewallom a nastavené na najvyššiu bezpečnosť. Na zaručenie integrity programov, všetky súbory boli digitálne podpísané na počítači bez pripojenia k internetu."
+
+#: ../user/info.php:50
+msgid ""
+"The applications run by %1 may cause some computers to overheat. If this "
+"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
+msgstr "Aplikácie, ktoré %1 spúšťa, môžu sposobiť pri niektorých počítačoch prehriatie. Ak sa tak stane, vypnite %1 alebo použite %2aplikáciu%3 na obmedzenie využitia procesoru."
+
+#: ../user/info.php:51
+msgid ""
+"%1 was developed by %2. BOINC was developed at the University of California."
+msgstr "%1 vyvinuli v zariadení %2. BOINC bol vyvinutý v Kalifornskej Univerzite"
+
+#: ../user/info.php:53
+msgid "Liability"
+msgstr "Zodpovednosť"
+
+#: ../user/info.php:54
+msgid ""
+"%1 and %2 assume no liability for damage to your computer, loss of data, or "
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 a %2 nenesú žiadnu zodpovednosť za škody na zariadení alebo stratu dát alebo iné situácie, ktoré môžu vzniknúť zúčastnením sa v %1."
+
+#: ../user/info.php:56
+msgid "Other BOINC projects"
+msgstr "Iné BOINC projekty"
+
+#: ../user/info.php:57
+msgid ""
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
+"will do useful work even when %1 has no work available for it."
+msgstr "Iné projekty používajú rovnakú platformu, BOINC, ako aj %1. Môžete sa zúčastniť aj jedného z tých projektov. V takom prípade bude váš počítač prispievať, aj pokiaľ preň %1 nebude mať žiadnu prácu."
+
+#: ../user/info.php:58
+msgid ""
+"These other projects are not associated with %1, and we cannot vouch for "
+"their security practices or the nature of their research. Join them at your "
+"own risk."
+msgstr "Tieto projekty nie sú spojené s %1 a my nemôžeme ručiť za ich bezpečnostné praktiky, alebo za ich výskum. Pridajte sa len na vlastné riziko."
+
+#: ../user/language_select.php:47
+msgid "Language selection"
+msgstr "Výber jazyka"
+
+#: ../user/language_select.php:73
+msgid ""
+"This web site is available in several languages. The currently selected "
+"language is %1."
+msgstr "Táto stránka je dostupná vo viacerých jazykoch. Momentálne je vybraný jazyk %1."
+
+#: ../user/language_select.php:78
+msgid ""
+"Normally the choice of language is determined by your browser's language "
+"setting, which is: %1.  You can change this setting using:"
+msgstr "Obyčajne sa jazyk určí nastavením vášho prehliadača, v tomto prípade je to %1. Toto nastavenie môžete zmeniť nasledovne:"
+
+#: ../user/language_select.php:83
+msgid "Firefox: Tools/Options/General"
+msgstr "Firefox: Nástroje/Nastavenia/Všeobecné"
+
+#: ../user/language_select.php:85
+msgid "Microsoft IE: Tools/Internet Options/Languages"
+msgstr "Microsoft IE: Nástroje/Nastavenia Internetu/Jazyky"
+
+#: ../user/language_select.php:89
+msgid ""
+"Or you can select a language by clicking on one of the links.  This will "
+"send your browser a cookie; make sure your browser accepts cookies from our "
+"domain."
+msgstr "Alebo, môžete vybrať jazyk kliknutím na jeden z nasledujúcich odkazov. Toto pošle vášmu prehliadaču súbor cookie, uistite sa, že váš prehliadač akceptuje súbory cookie z našich stránok."
+
+#: ../user/language_select.php:95
+msgid "Language name (click to select)"
+msgstr "Jazyk (kliknite pre výber)"
+
+#: ../user/language_select.php:97
+msgid "Use browser language setting"
+msgstr "Použit jazykové nastavenia prehliadača"
+
+#: ../user/language_select.php:113
+msgid ""
+"Translations are done by volunteers.  If your native language is not here, "
+"%1you can provide a translation%2."
+msgstr "Preklady sú robené dobrovoľníkmi. Pokiaľ tu nie je na výber váš rodný jazyk %1môžete nám pomôcť s prekladom%2."
+
+#: ../user/login_form.php:57
+msgid "or %1create an account%2."
+msgstr "alebo %1vytvoriť účet%2."
+
+#: ../user/merge_by_name.php:31
+msgid "Processing %1"
+msgstr "Spracovanie %1"
+
+#: ../user/merge_by_name.php:43
+msgid "Merged %1 into %2"
+msgstr "%1 spojené do %2"
+
+#: ../user/merge_by_name.php:72
+msgid "Return to the list of your computers"
+msgstr "Vrátiť sa na zoznam Vašich počítačov"
+
+#: ../user/merge_by_name.php:76
+msgid ""
+"This operation merges computers based on their domain name.\n"
+"        <p>\n"
+"        For each domain name, it will merge all older computers\n"
+"        having that name with the newest computer having that name.\n"
+"        Incompatible computers will not be merged.\n"
+"        <p>"
+msgstr "Táto operácia spojí počítače na základe ich doménového mena.\n<p>\nSpojí staré počítače do nového podľa ich doménového mena.\nNekompatibilné počítače nebudú spojené.\n<p>"
+
+#: ../user/merge_by_name.php:82
+msgid "Go ahead and do this"
+msgstr "Vyskúšajte to"
+
+#: ../user/merge_by_name.php:83
+msgid "Return to the list of computers"
+msgstr "Vrátiť sa na zoznam počítačov"
+
+#: ../user/moderation.php:26
+msgid ""
+"\n"
+"To maximize discussion and flow of information,\n"
+"our message boards are moderated.\n"
+"Message board postings are subject to the following posting rules:\n"
+msgstr "\nPre maximum diskusií a informačného toku,\nsú naše fóra moderované.\nNástenky sú podriadené nasledovným pravidlám:\n"
+
+#: ../user/moderation.php:30
+msgid ""
+"\n"
+"<p>\n"
+"Moderators may delete posts that violate any of these rules.\n"
+"The authors of deleted posts will be notified via email.\n"
+"Gross offenders may have their ability to post messages temporarily revoked\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
+"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
+"IP addresses of other participants, excessive thread creation to spam\n"
+"the forums, etc.), while not listed in the formal rules, may still\n"
+"lead to similar penalties.\n"
+"<p>\n"
+"If you think a post violates any of the posting rules,\n"
+"click the red X on the post and fill out the form;\n"
+"moderators will be notified of your complaint.\n"
+"Please use this button only for clear violations - not\n"
+"personal disputes.\n"
+"<p>\n"
+"We try to be as fair as we can when moderating,\n"
+"but in a large community of users, with many different viewpoints,\n"
+"there will always be some people that will not be happy\n"
+"with our moderation decisions.\n"
+"While we regret that this happens,\n"
+"please realize that we cannot suit all of the people all of the time\n"
+"and have to make decisions based on our resources and\n"
+"what is best for the forum overall.\n"
+"Please don't discuss our moderation policy on the forums. We aren't\n"
+"a social engineering project nor are we in the business of creating\n"
+"a perfectly fair system. So such discussions tend to be counterproductive\n"
+"and potentially incendiary. If you have a legitimate claim,\n"
+"send email to the address below.\n"
+"<p>\n"
+"This moderation policy is set by the %1 project.\n"
+"If you have comments about the policy, email %2.\n"
+"\n"
+msgstr "\n<p>\nModerátori sú opravnení zmazať správy porušujúce tieto pravidlá.\nAutori nevhodných správ sú upovedomení o zmazaní spravy mailom.\nZa hrubé porušenie môže byť odosielanie správ u autora dočasne zablokované (na zabránenie zneužitia tak môžu učiniť len Administrátori projektu).\nĎalšie porušovania pravidiel (ako je buggovanie, spamovanie atď) môže byť postihnuté podobným \nspôsobom.\n<p>\nAk si myslíte, že správa porušuje nejaké z pravidiel, kliknite na červené X na správe a [...]
+
+#: ../user/pending.php:66
+msgid "Pending credit"
+msgstr "Čakajúci kredit"
+
+#: ../user/pending.php:68
+msgid "Result ID"
+msgstr "ID výsledku"
+
+#: ../user/pending.php:68
+msgid "Workunit ID"
+msgstr "ID Pracovnej jednotky"
+
+#: ../user/pending.php:68
+msgid "Host ID"
+msgstr "ID počítača"
+
+#: ../user/pending.php:68
+msgid "Claimed credit"
+msgstr "Získaný kredit"
+
+#: ../user/pending.php:81
+msgid "Pending credit: %1"
+msgstr "Čakajúci kredit: %1"
+
+#: ../user/pm.php:32
+msgid "Block messages from this user"
+msgstr "Blokovať správy od tohoto užívateľa"
+
+#: ../user/pm.php:32
+msgid "Block user"
+msgstr "Zablokovať užívateľa"
+
+#: ../user/pm.php:73
+msgid "Your message has been sent."
+msgstr "Vaša správa bola odoslaná."
+
+#: ../user/pm.php:83
+msgid "You have no private messages."
+msgstr "Nemáte žiadne súkromné správy."
+
+#: ../user/pm.php:90
+msgid "Sender and date"
+msgstr "Odosielateľ a dátum"
+
+#: ../user/pm.php:111
+msgid "Reply to this message"
+msgstr "Odpovedať na túto správu"
+
+#: ../user/pm.php:112
+msgid "Delete this message"
+msgstr "Zmazať túto správu"
+
+#: ../user/pm.php:117
+msgid "Select all"
+msgstr "Vybrať všetko"
+
+#: ../user/pm.php:119
+msgid "Unselect all"
+msgstr "Nevybrať nič"
+
+#: ../user/pm.php:122
+msgid "Delete selected messages"
+msgstr "Zmazať vybrané správy"
+
+#: ../user/pm.php:145
+msgid "Sender"
+msgstr "Odosielateľ"
+
+#: ../user/pm.php:148
+msgid "Date"
+msgstr "Dátum"
+
+#: ../user/pm.php:190
+msgid "You need to fill all fields to send a private message"
+msgstr "Je potrebné vyplniť všetky polia na poslanie súkromnej správy"
+
+#: ../user/pm.php:193
+msgid ""
+"Your message was flagged as spam\n"
+"                by the Akismet anti-spam system.\n"
+"                Please modify your text and try again."
+msgstr "Vaša správa bola vyhodnotená ako spam\nprotispamovým systémom Aksimet.\nProsím, pozmeňte text vašej správy a skúste to znovu."
+
+#: ../user/pm.php:210
+msgid "Could not find user with id %1"
+msgstr "Nepodarilo sa nájsť užívateľa s ID %1"
+
+#: ../user/pm.php:215
+msgid "Could not find user with username %1"
+msgstr "Nepodarilo sa nájsť užívateľa s užívateľským menom %1"
+
+#. Non-unique username
+#: ../user/pm.php:217
+msgid "%1 is not a unique username; you will have to use user ID"
+msgstr "%1 nie je unikátne užívateľské meno; bude nutné zadať užívateľské ID"
+
+#: ../user/pm.php:222
+msgid "User %1 (ID: %2) is not accepting private messages from you."
+msgstr "Užívateľ %1 (ID %2) od vás nepríjma súkromné správy."
+
+#: ../user/pm.php:245 ../user/view_profile.php:28
+msgid "No such user"
+msgstr "Užívateľ neexistuje"
+
+#: ../user/pm.php:247
+msgid "Really block %1?"
+msgstr "Naozaj chcete zablokovať %1?"
+
+#: ../user/pm.php:248
+msgid ""
+"Are you really sure you want to block user %1 from sending you private "
+"messages?"
+msgstr "Skutočne chcete zablokovať príjem súkromých správ od užívateľa %1?"
+
+#: ../user/pm.php:249
+msgid "Please note that you can only block a limited amount of users."
+msgstr "Prosím berte na vedomie, že zablokovať môžete len určitý počet užívateľov."
+
+#: ../user/pm.php:250
+msgid ""
+"Once the user has been blocked you can unblock it using forum preferences "
+"page."
+msgstr "Ak užívateľa zablokujete, je možné ho odblokovať na stránke preferencií fóra."
+
+#: ../user/pm.php:257
+msgid "No, cancel"
+msgstr "Nie, zrušiť"
+
+#: ../user/pm.php:265 ../user/team_admins.php:100
+msgid "no such user"
+msgstr "užívateľ neexistuje"
+
+#: ../user/pm.php:268
+msgid "User %1 blocked"
+msgstr "Užívateľ %1 zablokovaný"
+
+#: ../user/pm.php:270
+msgid "User %1 has been blocked from sending you private messages."
+msgstr "Príjem správ od užívateľa %1 bol zablokovaný."
+
+#: ../user/pm.php:271
+msgid "To unblock, visit %1message board preferences%2"
+msgstr "Na odblokovanie, navštívte %1preferencie nástenky%2"
+
+#: ../user/pm.php:307
+msgid "Unknown action"
+msgstr "Neznáma činnosť"
+
+#: ../user/prefs.php:33
+msgid ""
+"Your preferences have been updated, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Vaše preferencie boli aktualizované a vojdú\ndo účinnosti keď bude váš počítač komunikovať s %1\nalebo použijete príkaz %2Aktualizácie%3 zo správcu BOINC."
+
+#: ../user/prefs.php:42
+msgid ""
+"Your preferences have been reset to the defaults, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Vaše preferencie boli resetované na pôvodné a vojdú\ndo účinnosti keď bude váš počítač komunikovať s %1\nalebo použijete príkaz %2Aktualizácie%3 zo správcu BOINC."
+
+#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 na %2"
+
+#: ../user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Naspäť na stránku preferencií"
+
+#: ../user/prefs_remove.php:46
+msgid "Confirm delete preferences"
+msgstr "Potvrďte vymazanie preferencií"
+
+#: ../user/prefs_remove.php:49
+msgid "Are you sure you want to delete your separate %1 preferences for %2?"
+msgstr "Skutočne chcete vymazať vaše separátne %1 preferencie pre %2?"
+
+#: ../user/prefs_remove.php:53
+msgid "Remove preferences"
+msgstr "Odobrať preferencie"
+
+#: ../user/prefs_remove.php:55
+msgid "Cancel"
+msgstr "Zrušiť"
+
+#: ../user/profile_menu.php:34 ../user/sample_index.php:119
+msgid "Profiles"
+msgstr "Profily"
+
+#: ../user/profile_menu.php:37
+msgid ""
+"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
+"community."
+msgstr "%1Profily%2 umožnia jednotlivcom zdieľat údaje a názory s %3 komunitou."
+
+#: ../user/profile_menu.php:38
+msgid ""
+"Explore the diversity of your fellow volunteers, and contribute your own "
+"views for others to enjoy."
+msgstr "Preskmajte rôznorodosť medzi dobrovoľníkmi a prispejte vašou prítomnosťou."
+
+#: ../user/profile_menu.php:39
+msgid ""
+"If you haven't already, you can %1create your own user profile%2 for others "
+"to see!"
+msgstr "Pokiaľ ste tak už nespravili, môžete si %1vytvoriť vlastný profil%2!"
+
+#: ../user/profile_menu.php:44
+msgid "User of the Day"
+msgstr "Užívateľ dňa"
+
+#: ../user/profile_menu.php:59
+msgid "User Profile Explorer"
+msgstr "Prieskumník užívateľských profilov"
+
+#: ../user/profile_menu.php:62
+msgid "View the %1User Picture Gallery%2."
+msgstr "Zobraziť %1Obrázkovú galériu užívateľa%2."
+
+#: ../user/profile_menu.php:63
+msgid "Browse profiles %1by country%2."
+msgstr "Prezerať profily %1podľa krajín%2"
+
+#: ../user/profile_menu.php:64
+msgid ""
+"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
+"without pictures%2."
+msgstr "Prehľadávať profily %1náhodne%2, %3náhodne s obrázkami%2, alebo %4náhodne bez obrázkov%2."
+
+#: ../user/profile_menu.php:68
+msgid "Alphabetical profile listings:"
+msgstr "Abecedný zoznam profilov:"
+
+#: ../user/profile_menu.php:74
+msgid "Search profile text"
+msgstr "Vyhľadať text v profile"
+
+#: ../user/profile_menu.php:100
+msgid "No profiles"
+msgstr "Žiadne profily"
+
+#: ../user/profile_menu.php:101
+msgid "No profiles matched your query."
+msgstr "Žiadne profily nesúhlasia s vašimi požiadavkami"
+
+#: ../user/profile_rate.php:31
+msgid "Invalid vote type:"
+msgstr "Nevhodný typ hlasu:"
+
+#: ../user/profile_rate.php:36
+msgid "Vote Recorded"
+msgstr "Hlas zaznamenaný"
+
+#: ../user/profile_rate.php:40
+msgid "Thank you"
+msgstr "Ďakujeme"
+
+#: ../user/profile_rate.php:43
+msgid "Your recommendation has been recorded."
+msgstr "Vaše odporúčanie bolo zaznamenané"
+
+#: ../user/profile_rate.php:45
+msgid "Your vote to reject this profile has been recorded."
+msgstr "Váš hlas na zamietnutie tohoto profilu bol zaznamenaný."
+
+#: ../user/profile_rate.php:48
+msgid "Return to profile."
+msgstr "Návrat na profil."
+
+#: ../user/profile_search_action.php:38
+msgid "Profiles containing '%1'"
+msgstr "Profily obsahujúce \"%1\""
+
+#: ../user/profile_search_action.php:42
+msgid "User name"
+msgstr "Používateľské meno"
+
+#: ../user/profile_search_action.php:43
+msgid "Joined project"
+msgstr "Pridanie sa k projektu"
+
+#: ../user/profile_search_action.php:46
+msgid "Recent credit"
+msgstr "Nedávny kredit"
+
+#: ../user/profile_search_action.php:56
+msgid "No profiles found containing '%1'"
+msgstr "Neboli nájdené žiadne profily obsahujúce \"%1\""
+
+#: ../user/result.php:33
+msgid "No such task:"
+msgstr "Úloha neexistuje:"
+
+#: ../user/results.php:29
+msgid "This feature is turned off temporarily"
+msgstr "Táto funkcia je dočasne vypnutá"
+
+#: ../user/results.php:56
+msgid "No computer with ID %1 found"
+msgstr "Počítač s ID %1 nebol nájdený"
+
+#: ../user/results.php:63
+msgid "No access"
+msgstr "Žiaden prístup"
+
+#: ../user/results.php:69
+msgid "Missing user ID or host ID"
+msgstr "Chýba ID užívateľa alebo ID počítača"
+
+#: ../user/results.php:107
+msgid "No tasks to display"
+msgstr "Žiadne úlohy na zobrazenie"
+
+#: ../user/sample_index.php:195
+msgid "User of the day"
+msgstr "Používateľ dňa"
+
+#: ../user/server_status.php:59
+msgid "Not Running"
+msgstr "Nebeží"
+
+#: ../user/server_status.php:63
+msgid "Running"
+msgstr "Beží"
+
+#: ../user/server_status.php:67
+msgid "Disabled"
+msgstr "Neaktívne"
+
+#: ../user/server_status.php:105
+msgid "Project status"
+msgstr "Stav projektu"
+
+#: ../user/server_status.php:110
+msgid "Server status"
+msgstr "Stav serveru"
+
+#: ../user/server_status.php:113
+msgid "Program"
+msgstr "Program"
+
+#: ../user/server_status.php:113
+msgid "Host"
+msgstr "Počítač"
+
+#: ../user/server_status.php:125
+msgid "Database schema version: "
+msgstr "Verzia schémy databázy:"
+
+#: ../user/server_status.php:138
+msgid "Computing status"
+msgstr "Stav výpočtov"
+
+#: ../user/server_status.php:153
+msgid "Users"
+msgstr "Používatelia"
+
+#: ../user/server_status.php:165
+msgid "Tasks by application"
+msgstr "Úlohy zoradené po aplikáciach"
+
+#: ../user/server_status.php:168
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Čas priebehu posledných 100 úloh v hodinách, priemer, min, max"
+
+#: ../user/server_status.php:169
+msgid "Users in last 24 hours"
+msgstr "Užívatelia za posledných 24 hodín"
+
+#: ../user/show_host_detail.php:40
+msgid "Computer %1"
+msgstr "Počítač %1"
+
+#: ../user/stats.php:21
+msgid "Statistics and leaderboards"
+msgstr "Štatistiky a rebríčky"
+
+#: ../user/stats.php:30
+msgid "Statistics for %1"
+msgstr "Štatistiky %1"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/stats.php:32 ../user/top_users.php:117
+msgid "Top participants"
+msgstr "Top prispievatelia"
+
+#: ../user/stats.php:40 ../user/team.php:48
+msgid "Top teams"
+msgstr "Top tímy"
+
+#: ../user/stats.php:47
+msgid "Top computers"
+msgstr "Top počítače"
+
+#: ../user/stats.php:48
+msgid "GPU models"
+msgstr "Modely GPU"
+
+#: ../user/stats.php:49
+msgid "CPU models"
+msgstr "Modely CPU"
+
+#: ../user/stats.php:53
+msgid ""
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Detailnejšie štatistiky %1 a iných BOINC projektov sú dostupné na viacerých stránkach:"
+
+#: ../user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Môžete získať vaše aktuálne štatistiky vo forme \"obrázku do podpisu\":"
+
+#: ../user/stats.php:59
+msgid ""
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Takisto, môžete vidieť sumár vašich osobných štatistík zo všetkých BOINC projektov; pozrite sa na vašu %1domovskú stránku%2."
+
+#: ../user/team.php:27
+msgid "Teams"
+msgstr "Tímy"
+
+#: ../user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 prispievateľov môže vytvoriť %2tímy%3."
+
+#: ../user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Môžete byť členom len jedného tímu. Opustiť alebo sa pridať do tímu je možné kedykoľvek."
+
+#: ../user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Každý tím má %1zakladateľa%2 ktorý môže:"
+
+#: ../user/team.php:35
+msgid "access team members' email addresses"
+msgstr "prístup k mailovým adresám členov tímov"
+
+#: ../user/team.php:36
+msgid "edit the team's name and description"
+msgstr "upraviť názov tímu a jeho popis"
+
+#: ../user/team.php:37
+msgid "add or remove team admins"
+msgstr "pridať alebo odobrať administrátorov tímu"
+
+#: ../user/team.php:38
+msgid "remove members from the team"
+msgstr "odobrať členov z tímu"
+
+#: ../user/team.php:39
+msgid "disband a team if it has no members"
+msgstr "rozpustiť tím pokiaľ nemá žiadnych členov"
+
+#: ../user/team.php:42
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Pre vstup do tímu, navštívte jeho stránku a kliknite na %1Pridať sa do tohot tímu%2."
+
+#: ../user/team.php:43 ../user/team_search.php:201
+msgid "Find a team"
+msgstr "Nájsť tím"
+
+#: ../user/team.php:50
+msgid "All teams"
+msgstr "Všetky tímy"
+
+#: ../user/team.php:54
+msgid "%1 teams"
+msgstr "%1 tímov"
+
+#: ../user/team.php:60
+msgid "Create a new team"
+msgstr "Vytvoriť nový tím"
+
+#: ../user/team.php:61
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Pokiaľ nenájdete tím, ktorý by bol pre vás ten pravý, môžete %1vytvoriť tím%2."
+
+#: ../user/team_admins.php:36
+msgid "Remove Team Admin status from this member"
+msgstr "Odobrať hodnosť administrátora tímu tomuto užívateľovi"
+
+#: ../user/team_admins.php:42 ../user/team_admins.php:53
+msgid "Add or remove Team Admins"
+msgstr "Pridať alebo odobrať administrátorov tímu"
+
+#: ../user/team_admins.php:43
+msgid "You can select team members as 'Team Admins'. Team Admins can:"
+msgstr "Môžete menovať členov tímu administrátormi a umožniť im:"
+
+#: ../user/team_admins.php:45
+msgid "Edit team information (name, URL, description, country)"
+msgstr "Upravovať údaje o tíme (názov, URL, popis, krajinu)"
+
+#: ../user/team_admins.php:46
+msgid "View the team's join/quit history"
+msgstr "Zobraziť kto vstúpil/vystúpil z tímu"
+
+#: ../user/team_admins.php:47
+msgid ""
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Moderovať tímové fórum (ak existuje). Administátori budu dostávať mailové upozornenia moderovaných udalostí a reportov s červeným X"
+
+#: ../user/team_admins.php:49
+msgid "Team Admins cannot:"
+msgstr "Administrátori tímu nemôžu:"
+
+#: ../user/team_admins.php:51
+msgid "Change the team founder"
+msgstr "Zmeniť zakladateľa tímu"
+
+#: ../user/team_admins.php:52 ../user/team_manage.php:56
+msgid "Remove members"
+msgstr "Odobrať členov"
+
+#: ../user/team_admins.php:55
+msgid "If a Team Admin quits the team, they cease to be a Team Admin."
+msgstr "Pokiaľ administrátor tímu opustí tím, nebude viac jeho administrátorom."
+
+#: ../user/team_admins.php:56
+msgid ""
+"We recommend that you select only people you know and trust very well as "
+"Team Admins."
+msgstr "Odporúčame vybrať ako administrátorov tímu len ľudí, ktorých poznáte a ktorým dôverujete."
+
+#: ../user/team_admins.php:61
+msgid "There are currently no Team Admins"
+msgstr "Tím momentálne nemá administrátorov."
+
+#: ../user/team_admins.php:63
+msgid "Current Team Admins"
+msgstr "Aktuálni administrátori tímu"
+
+#: ../user/team_admins.php:64
+msgid "Became Team Admin on"
+msgstr "Stať sa administrátorom tímu v"
+
+#: ../user/team_admins.php:79
+msgid "Add Team Admin"
+msgstr "Pridať administrátora tímu"
+
+#: ../user/team_admins.php:80
+msgid "Email address of team member:"
+msgstr "Mailová adresa člena tímu:"
+
+#: ../user/team_admins.php:81
+msgid "Add"
+msgstr "Pridať"
+
+#: ../user/team_admins.php:92
+msgid "failed to remove admin"
+msgstr "odstránenie administrátora zlyhalo"
+
+#: ../user/team_admins.php:101
+msgid "User is not member of team"
+msgstr "Užívateľ nie je členom tímu"
+
+#: ../user/team_admins.php:103
+msgid "%1 is already an admin of %2"
+msgstr "%1 už je administrátor %2"
+
+#: ../user/team_admins.php:107
+msgid "Couldn't add admin"
+msgstr "Nepodarilo sa pridať administrátora"
+
+#: ../user/team_admins.php:113 ../user/team_manage.php:85
+#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
+msgid "No such team"
+msgstr "Tím neexistuje"
+
+#: ../user/team_change_founder_action.php:32
+#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
+#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
+#: ../user/team_email_list.php:64
+msgid "no such team"
+msgstr "tím neexistuje"
+
+#: ../user/team_change_founder_action.php:40
+msgid "User is not a member of %1"
+msgstr "Užívateľ nie je členom %1"
+
+#: ../user/team_change_founder_action.php:43
+msgid "Changing founder of %1"
+msgstr "Zmena zakladateľa %1"
+
+#: ../user/team_change_founder_action.php:45
+msgid "%1 is now founder of %2"
+msgstr "%1 je odteraz zakladateľ %2"
+
+#: ../user/team_change_founder_form.php:39
+msgid "Change founder of %1"
+msgstr "Zmeniť zakladateľa %1"
+
+#: ../user/team_change_founder_form.php:45
+msgid ""
+"Team member %1 requested this team's foundership on %2, but left the team, "
+"thus canceling the request."
+msgstr "Člen tímu %1 požiadal o status zakladateľa tímu %2, ale tím opustil, takže žiadosť sa ruší."
+
+#: ../user/team_change_founder_form.php:51
+msgid ""
+"Team member %1 has requested this team's foundership. This may be because "
+"you left the team or haven't had contact with the team for a long time."
+msgstr "Člen tímu %1 žiada o status zakladateľa tímu. Môže to byť preto, pretože ste tím opustili, alebo ste už dlho neboli s tímom v kontakte."
+
+#: ../user/team_change_founder_form.php:57
+msgid "decline request"
+msgstr "odmietnuť žiadosť"
+
+#: ../user/team_change_founder_form.php:60
+msgid ""
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Pokiaľ žiadosť nezamietnete do %1, %2 získa možnosť považovať sa za zakladateľa.<br /><br />\nPokiaľ chcete žiadosť prijať, priraďte status zakladateľa užívateľovi %3 pomocou formuláru nižšie."
+
+#: ../user/team_change_founder_form.php:68
+msgid "No transfer request is pending."
+msgstr "Žiadna žiadosť na prenos nečaká."
+
+#: ../user/team_change_founder_form.php:71
+msgid ""
+"To assign foundership of this team to another member, check the box next to "
+"member name and click <strong>Change founder</strong> below."
+msgstr "Na priradenie statusu zakladateľa inému členovi tímu, zaškrtnite políčko vedľa jeho mena a kliknite na <strong> Zmeniť na zakladateľa</strong>."
+
+#: ../user/team_change_founder_form.php:78
+msgid "New founder?"
+msgstr "Nový zakladateľ?"
+
+#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
+msgid "Change founder"
+msgstr "Zmeniť zakladateľa"
+
+#: ../user/team_change_founder_form.php:110
+msgid "There are no users to transfer team to."
+msgstr "Nie sú žiadni užívatelia, na ktorých by bolo možné presunúť tím."
+
+#: ../user/team_create_action.php:31
+msgid "You must choose a non-blank team name"
+msgstr "Názov tímu nemôže byť prázdny"
+
+#: ../user/team_create_action.php:36
+msgid "A team named %1 already exists - try another name"
+msgstr "Tím s názvom %1 už existuje. Skúste iný názov"
+
+#: ../user/team_create_action.php:56
+msgid "Could not create team - please try later."
+msgstr "Nepodarilo sa vytvoriť tím. Skúste to, prosím, neskôr."
+
+#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
+msgid "Create a team"
+msgstr "Vytvoriť tím"
+
+#: ../user/team_create_form.php:32
+msgid ""
+"You belong to %1. You must %2quit this team%3 before creating a new one."
+msgstr "Ste členom %1. Musíte %2opustiť tento tím%3 predtým ako vytvoríte nový."
+
+#: ../user/team_delta.php:66
+msgid "Not founder or admin"
+msgstr "Nie ste zakladateľ ani administrátor"
+
+#: ../user/team_delta.php:73
+msgid "Team history for %1"
+msgstr "História tímu %1"
+
+#: ../user/team_delta.php:76
+msgid "When"
+msgstr "Kedy"
+
+#: ../user/team_delta.php:77
+msgid "User"
+msgstr "Používateľ"
+
+#: ../user/team_delta.php:78
+msgid "Action"
+msgstr "Úkon"
+
+#: ../user/team_delta.php:79
+msgid "Total credit at time of action"
+msgstr "Kreditov spolu v čase úkonu"
+
+#: ../user/team_edit_action.php:55
+msgid "bad country"
+msgstr "nesprávna krajina"
+
+#: ../user/team_edit_action.php:61
+msgid "The name '%1' is being used by another team."
+msgstr "Názov %1 už používa iný tím."
+
+#: ../user/team_edit_action.php:64
+msgid "Must specify team name"
+msgstr "Musíte zadať názov tímu"
+
+#: ../user/team_edit_action.php:92
+msgid "Could not update team - please try again later."
+msgstr "Nepodarilo sa aktualizovať tím, prosím skúste to neskôr."
+
+#: ../user/team_edit_form.php:35
+msgid "Edit %1"
+msgstr "Upraviť %1"
+
+#: ../user/team_edit_form.php:36
+msgid "Update team info"
+msgstr "Aktualizovať info o tíme"
+
+#: ../user/team_email_list.php:70
+msgid "%1 Email List"
+msgstr "%1 Zoznam mailov"
+
+#: ../user/team_email_list.php:72
+msgid "Member list of %1"
+msgstr "Zoznam členov %1"
+
+#: ../user/team_email_list.php:87
+msgid "Show as plain text"
+msgstr "Zobraziť ako text"
+
+#: ../user/team_forum.php:30 ../user/team_forum.php:41
+msgid "Create Message Board"
+msgstr "Vytvoriť nástenku"
+
+#: ../user/team_forum.php:31
+msgid "You may create a message board for use by %1."
+msgstr "Môžete vytvoriť nástenku pre %1."
+
+#: ../user/team_forum.php:33
+msgid "Only team members will be able to post."
+msgstr "Len členovia tímu budú môcť posielať správy."
+
+#: ../user/team_forum.php:34
+msgid "At your option, only members will be able to read."
+msgstr "Podľa vašich nastavení, čítať budú môcť len členovia."
+
+#: ../user/team_forum.php:35
+msgid "You and your Team Admins will have moderator privileges."
+msgstr "Vy a administrátori vášho tímu budete mať moderátorské práva."
+
+#: ../user/team_forum.php:42
+msgid "Create a message board for %1"
+msgstr "Vytvoriť diskusné fórum pre %1"
+
+#: ../user/team_forum.php:50
+msgid "Team already has a message board"
+msgstr "Tím už má nástenku"
+
+#: ../user/team_forum.php:61
+msgid "Team Message Board"
+msgstr "Tímová nástenka"
+
+#: ../user/team_forum.php:73
+msgid "Minimum time between posts (seconds)"
+msgstr "Minimálny čas medzi poslaním správ (v sekundách)"
+
+#: ../user/team_forum.php:76
+msgid "Minimum total credit to post"
+msgstr "Minimálny celkový počet kreditov na posielanie správ"
+
+#: ../user/team_forum.php:79
+msgid "Minimum average credit to post"
+msgstr "Minimálny priemerný počet kreditov na posielanie správ"
+
+#: ../user/team_forum.php:82
+msgid "Submit"
+msgstr "Odoslať"
+
+#: ../user/team_forum.php:91
+msgid "Remove your team's message board."
+msgstr "Odstrániť nástenku vášho tímu."
+
+#: ../user/team_forum.php:99
+msgid "Really remove message board?"
+msgstr "Skutočne odstrániť nástenku?"
+
+#: ../user/team_forum.php:100
+msgid ""
+"Are you sure you want to remove your team's message board? All threads and "
+"posts will be permanently removed. (You may, however, create a new message "
+"board later)."
+msgstr "Skutočne chcete odstrániť nástenku vášho tímu? Všetky témy a správy budú vymazané. (Neskôr však môžete vytvoriť novú nástenku.)"
+
+#: ../user/team_forum.php:102
+msgid "Yes - remove message board"
+msgstr "Áno, odstrániť nástenku."
+
+#: ../user/team_forum.php:123
+msgid "Message board removed"
+msgstr "Nástenka bola odstránená"
+
+#: ../user/team_forum.php:126
+msgid ""
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Nástenka vášho tímu bola odstránená. Môžete %1vytvoriť novú%2."
+
+#: ../user/team_forum.php:145
+msgid "Team Message Board Updated"
+msgstr "Tímová nástenka bola aktualizovaná."
+
+#: ../user/team_forum.php:146
+msgid "Update successful"
+msgstr "Aktualizácia bola úspešná"
+
+#: ../user/team_forum.php:149
+msgid "Update failed"
+msgstr "Aktualizácia zlyhala"
+
+#: ../user/team_forum.php:156
+msgid "Team has no forum"
+msgstr "Tím nemá vlastné fórum"
+
+#: ../user/team_founder_transfer_action.php:38
+msgid "You must be a member of a team to access this page."
+msgstr "Musíte byť členom tímu, aby ste mohli stránku zobraziť."
+
+#: ../user/team_founder_transfer_action.php:92
+msgid "Requesting foundership of %1"
+msgstr "Požiadať status zakladateľa %1"
+
+#: ../user/team_founder_transfer_action.php:100
+msgid ""
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "Aktuálny zakladateľ bol upovedomený o vašej žiadosti mailom a súkromnou správou..<br /><br />\nPokiaľ zakladateľ neodpovie do 60 dní, môžete prevziať zakladateľstvo."
+
+#: ../user/team_founder_transfer_action.php:104
+#: ../user/team_founder_transfer_action.php:115
+msgid "Foundership request not allowed now"
+msgstr "Žiadať status zakladateľa nie je momentálne povolené."
+
+#: ../user/team_founder_transfer_action.php:111
+msgid "Assumed foundership of %1"
+msgstr "Prevzané zakladateľstvo %1"
+
+#: ../user/team_founder_transfer_action.php:113
+msgid ""
+"Congratulations, you are now the founder of team %1. Go to %2Your Account "
+"page%3 to find the Team Admin options."
+msgstr "Blahoželáme, stali ste sa zakladateľom tímu %1.\nNavštívte stránku %2Váš účet%3 a nastavenia Administrátora tímu."
+
+#: ../user/team_founder_transfer_action.php:122
+msgid "Decline founder change request"
+msgstr "Odmietnuť žiadosť o zmenu zakladateľa"
+
+#: ../user/team_founder_transfer_action.php:129
+msgid "The foundership request from %1 has been declined."
+msgstr "Žiadosť o zmenu zakladateľa od %1 bola zamietnutá."
+
+#: ../user/team_founder_transfer_action.php:132
+msgid "There were no foundership requests."
+msgstr "Žiadne žiadosti o zmenu zakladateľa."
+
+#: ../user/team_founder_transfer_action.php:136
+msgid "undefined action %1"
+msgstr "nedefinovaná činnosť %1"
+
+#: ../user/team_founder_transfer_action.php:139
+#: ../user/team_founder_transfer_form.php:85
+msgid "Return to team page"
+msgstr "Návrat k stránke tímu."
+
+#: ../user/team_founder_transfer_form.php:30
+msgid "You need to be a member of a team to access this page."
+msgstr "Musíte byť členom tímu aby ste mohli otvoriť túto stránku."
+
+#: ../user/team_founder_transfer_form.php:33
+msgid "Request foundership of %1"
+msgstr "Požiadať o status zakladateľa %1"
+
+#: ../user/team_founder_transfer_form.php:40
+msgid "You are now founder of team %1."
+msgstr "Stali ste sa zakladateľom tímu %1"
+
+#: ../user/team_founder_transfer_form.php:46
+msgid "You requested the foundership of %1 on %2."
+msgstr "Požiadali ste o status zakladateľa %1 v %2"
+
+#: ../user/team_founder_transfer_form.php:49
+msgid ""
+"60 days have elapsed since your request, and the founder has not responded. "
+"You may now assume foundership by clicking here:"
+msgstr "Ubehlo 60 dní od odoslania vašej žiadosti a zakladateľ neodpovedal. Môžete prevziať zakladateľstvo kliknutím sem:"
+
+#: ../user/team_founder_transfer_form.php:52
+msgid "Assume foundership"
+msgstr "Prevziať zakladateľstvo"
+
+#: ../user/team_founder_transfer_form.php:56
+msgid ""
+"The founder was notified of your request. If he/she does not respond by %1 "
+"you will be given an option to become founder."
+msgstr "Zakladateľ bol oboznámený s vašou žiadosťou. Ak neodpovie do 1%, bude vám umožnené stať sa zakladateľom."
+
+#: ../user/team_founder_transfer_form.php:62
+msgid ""
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
+"                       Are you sure you want to request foundership?"
+msgstr "Ak zakladateľ tímu nie je aktívny a chcete sa stať zakladateľom, kliknite na tlačidlo nižšie. Momentálny zakladateľ dostane mail s detailami vašej žiadosti a bude mu umožnené presunúť status zakladateľa na vás alebo bude môcť vašu žiadosť zamietnuť. Ak zakladateľ neodpovie do 60 dní, bude vám umožnené stať sa zakladateľom.<br /><br />\nChcete požiadať o status zakladateľa?"
+
+#: ../user/team_founder_transfer_form.php:67
+msgid "Request foundership"
+msgstr "Požiadať status zakladateľa"
+
+#: ../user/team_founder_transfer_form.php:76
+msgid "Founder change has already been requested by %1 on %2."
+msgstr "Zmena zakladateľa už bola požiadaná %1 na %2."
+
+#: ../user/team_founder_transfer_form.php:79
+msgid ""
+"A foundership change was requested during the last 90 days, so new requests "
+"are not allowed. Please try again later."
+msgstr "Od poslednej žiadosti ešte neuplynulo 90 dní, nové žiadosti nie sú povolené."
+
+#: ../user/team_join.php:34 ../user/team_join_action.php:34
+#: ../user/team_join_form.php:31
+msgid "The team %1 is not joinable."
+msgstr "Do tímu %1 sa nedá vstúpiť."
+
+#: ../user/team_join.php:37 ../user/team_join_action.php:37
+msgid "Already a member"
+msgstr "Už ste členom"
+
+#: ../user/team_join.php:38 ../user/team_join_action.php:38
+msgid "You are already a member of %1."
+msgstr "Už ste členom %1."
+
+#: ../user/team_join.php:44 ../user/team_join_action.php:45
+msgid "Couldn't join team - please try again later."
+msgstr "Nepodarilo sa vstúpiť do tímu, prosím skúste to neskôr."
+
+#: ../user/team_join_action.php:42
+msgid "Joined %1"
+msgstr "Vstúpili ste do %1"
+
+#: ../user/team_join_action.php:43
+msgid "You have joined %1."
+msgstr "Vstúpili ste do %1."
+
+#: ../user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Vstúpiť do %1"
+
+#: ../user/team_join_form.php:35
+msgid "Please note:"
+msgstr "Prosím, pozor:"
+
+#: ../user/team_join_form.php:37
+msgid "Joining a team gives its founder access to your email address."
+msgstr "Vstúpením do tímu zobrazíte zakladateľovi vašu mailovú adresu."
+
+#: ../user/team_join_form.php:38
+msgid "Joining a team does not affect your account's credit."
+msgstr "Vstup do tímu neovplyvní vaše kredity."
+
+#: ../user/team_join_form.php:45
+msgid "Join team"
+msgstr "Vstúpiť do tímu"
+
+#: ../user/team_lookup.php:86
+msgid "Search Results"
+msgstr "Výsledky vyhľadávania"
+
+#: ../user/team_lookup.php:88
+msgid "Search results for '%1'"
+msgstr "Hľadať \"%1\""
+
+#: ../user/team_lookup.php:90
+msgid "You may view these teams' members, statistics, and information."
+msgstr "Môžete si prezrieť štatistiky a údaje členov týchto tímov."
+
+#: ../user/team_lookup.php:100
+msgid "More than 100 teams match your search. The first 100 are shown."
+msgstr "Viac ako 100 tímov zodpovedá vášmu vyhľadávaniu. Zobrazených je len prvých 100."
+
+#: ../user/team_lookup.php:106
+msgid ""
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Koniec výsledkov. %1 Ak neviete nájsť tím, ktorý by mohol byť pre vás ten pravý, môžete si %2vytvoriť vlastný tím%3."
+
+#: ../user/team_manage.php:28
+msgid "Team administration for %1"
+msgstr "Administrátor tímu %1"
+
+#: ../user/team_manage.php:31
+msgid "Edit team info"
+msgstr "Upraviť údaje o tíme"
+
+#: ../user/team_manage.php:32
+msgid "Change team name, URL, description, type, or country"
+msgstr "Zmeniť názov tímu, URL, popis, typ alebo krajinu"
+
+#: ../user/team_manage.php:34
+msgid "Member list:"
+msgstr "Zoznam členov:"
+
+#: ../user/team_manage.php:35 ../user/team_manage.php:39
+msgid "HTML"
+msgstr "HTML"
+
+#: ../user/team_manage.php:36
+msgid "text"
+msgstr "text"
+
+#: ../user/team_manage.php:37
+msgid "View member names and email addresses"
+msgstr "Zobraziť mená a mailové adresy členov"
+
+#: ../user/team_manage.php:38
+msgid "View change history:"
+msgstr "Zobraziť históriu zmien:"
+
+#: ../user/team_manage.php:40
+msgid "XML"
+msgstr "XML"
+
+#: ../user/team_manage.php:41
+msgid "See when members joined or quit this team"
+msgstr "Zobraziť kedy členovia vstúpili alebo vystúpili z tímu"
+
+#: ../user/team_manage.php:52
+msgid "Respond to foundership request."
+msgstr "Odpovedať na žiadosť o status zakladateľa."
+
+#: ../user/team_manage.php:52
+msgid "If you don't respond by %1, %2 may assume foundership of this team."
+msgstr "Ak neodpoviete do %1, %2m bude môcť prevziať zakladateľstvo tímu."
+
+#: ../user/team_manage.php:57
+msgid "Remove inactive or unwanted members from this team"
+msgstr "Odstrániť neaktívnych alebo nechcených členov z tohoto tímu"
+
+#: ../user/team_manage.php:59
+msgid "Transfer foundership to another member"
+msgstr "Presunúť status zakladateľa na iného člena tímu"
+
+#: ../user/team_manage.php:60
+msgid "Add/remove Team Admins"
+msgstr "Pridať/odobrať administrátorov tímu"
+
+#: ../user/team_manage.php:61
+msgid "Give selected team members Team Admin privileges"
+msgstr "Dať vybraným členom tímu administrátorske práva"
+
+#: ../user/team_manage.php:63
+msgid "Remove team"
+msgstr "Odstrániť tím"
+
+#: ../user/team_manage.php:64
+msgid "Allowed only if team has no members"
+msgstr "Možné len pokiaľ tím nemá členov"
+
+#: ../user/team_manage.php:66
+msgid "Create or manage a team message board"
+msgstr "Vytvoriť alebo spravovať tímovú nástenku"
+
+#: ../user/team_manage.php:73
+msgid ""
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Aby bol tento projekt vytvorený na všetkých BOINC projektoch (existujúcich a budúcich), môžete ho vytvoriť ako %1celo-BOINC tím%2."
+
+#: ../user/team_manage.php:75
+msgid ""
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "Odporúčame Tímovím administrátorom, aby sa pridali do skupiny %1boinc-team-founders%2 na Google."
+
+#: ../user/team_manage.php:91
+msgid "Can't delete non-empty team"
+msgstr "Nie je možné vymazať tím, ktorý má členov"
+
+#: ../user/team_manage.php:95
+msgid "Team %1 deleted"
+msgstr "Tím %1 bol zmazaný"
+
+#: ../user/team_members.php:38
+msgid "Limit exceeded:  Can only display the first 1000 members."
+msgstr "Limit bol prekročený. Je možné zobraziť len prvých 1000 členov."
+
+#: ../user/team_members.php:51
+msgid "Members of %1"
+msgstr "Členovia %1"
+
+#: ../user/team_quit_action.php:34
+msgid "Unable to quit team"
+msgstr "Nie je možné opustiť tím"
+
+#: ../user/team_quit_action.php:35
+msgid "Team doesn't exist, or you don't belong to it."
+msgstr "Tím neexistuje, alebo nie ste jeho členom."
+
+#: ../user/team_quit_form.php:33
+msgid "Quit %1"
+msgstr "Opustiť %1"
+
+#: ../user/team_quit_form.php:34
+msgid ""
+"<strong>Please note before quitting a team:</strong>\n"
+"         <ul>\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
+"         </ul>"
+msgstr "<strong>Pred opustením tímu berte, prosím, na vedomie</strong>\n<ul>\n<li>Ak opustíte tím, môžete sa doň vrátiť, alebo sa môžete pridať do akéhokoľvek iného.\n<li>Opustenie tímu neovplyvní vaše osobné štatistiky ani kredit\n</ul>"
+
+#: ../user/team_quit_form.php:42
+msgid "Quit Team"
+msgstr "Opustiť tím"
+
+#: ../user/team_remove_inactive_action.php:33
+msgid "Removing users from %1"
+msgstr "Odoberám používateľov z %1"
+
+#: ../user/team_remove_inactive_action.php:41
+msgid "%1 is not a member of %2"
+msgstr "%1 nie je členom %2"
+
+#: ../user/team_remove_inactive_action.php:44
+msgid "%1 has been removed"
+msgstr "%1 bol odstránený"
+
+#: ../user/team_remove_inactive_form.php:34
+msgid "Remove members from %1"
+msgstr "Odstrániť členov z %1"
+
+#: ../user/team_remove_inactive_form.php:41
+msgid "Remove?"
+msgstr "Odobrať"
+
+#: ../user/team_remove_inactive_form.php:42
+msgid "Name (ID)"
+msgstr "Názov (ID)"
+
+#: ../user/team_remove_inactive_form.php:67
+msgid "No members are eligible for removal."
+msgstr "Žiadni používatelia sa nedajú odobrať."
+
+#: ../user/team_remove_inactive_form.php:70
+msgid "Remove users"
+msgstr "Odobrať používateľov"
+
+#: ../user/team_search.php:76
+msgid "Team name"
+msgstr "Názov tímu"
+
+#: ../user/team_search.php:113
+msgid "Team search results"
+msgstr "Výsledky vyhľadávania tímov"
+
+#: ../user/team_search.php:115
+msgid "No teams were found matching your criteria. Try another search."
+msgstr "Nenašli sa žiadne tímy podľa vašich požiadavok. Skúste to inak."
+
+#: ../user/team_search.php:117
+msgid "Or you can %1create a new team%2."
+msgstr "Alebo, môžete %1 vytvoriť nový tím%2."
+
+#: ../user/team_search.php:121
+msgid ""
+"The following teams match one or more of your search criteria.\n"
+"            To join a team, click its name to go to the team page,\n"
+"               then click %1Join this team%2."
+msgstr "Nasledujúce tímy sú zhodné s jedným alebo viacerými kritériami vášho vyhľadávania.\nAk sa chcete pridať do tímu, navštívte jeho stránku kliknutím na meno a tam kliknite na %1Pridať sa do tímu%2."
+
+#: ../user/team_search.php:128
+msgid "Change your search"
+msgstr "Zmeniť vyhľadávanie"
+
+#: ../user/team_search.php:202
+msgid ""
+"You can team up with other people with similar interests, or from the same "
+"country, company, or school."
+msgstr "Môžete sa dať dokopy s ľuďmi s podobnými záujmami, alebo s krajanmi, či spolužiakmi alebo kolegami."
+
+#: ../user/team_search.php:204
+msgid "Use this form to find teams that might be right for you."
+msgstr "Použiť tento formulár na nájdenie najvhodnejších tímov pre vás."
+
+#: ../user/team_search.php:209
+msgid "%1I'm not interested%2 in joining a team right now."
+msgstr "Momentálne %1nemám záujem%2 sa pridať do tímu."
+
+#: ../user/top_hosts.php:67 ../user/top_teams.php:102
+#: ../user/top_users.php:113
+msgid "Limit exceeded - Sorry, first %1 items only"
+msgstr "Limit bol prekročený - je nám ľuto, len prvých %1 položiek"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/top_hosts.php:82
+msgid "Top hosts"
+msgstr "Top počítače"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/top_teams.php:107
+msgid "Top %1 teams"
+msgstr "Top %1 tímy"
+
+#: ../user/top_teams.php:110
+msgid "There are no %1 teams"
+msgstr "Neexistujú %1 tímy"
+
+#: ../user/top_users.php:64
+msgid "Participant since"
+msgstr "Účastník od"
+
+#: ../user/uotd.php:31
+msgid "No user of the day has been chosen."
+msgstr "Užívateľ dňa nebol zvolený"
+
+#: ../user/uotd.php:35
+msgid "User of the Day for %1: %2"
+msgstr "Užívateľ dňa %1: %2"
+
+#: ../user/user_search.php:51
+msgid "Filters"
+msgstr "Filtre"
+
+#: ../user/user_search.php:52
+msgid "User name starts with"
+msgstr "Meno užívateľa sa začína"
+
+#: ../user/user_search.php:53
+msgid "Any"
+msgstr "Všetko"
+
+#: ../user/user_search.php:56
+msgid "With profile?"
+msgstr "S profilom?"
+
+#: ../user/user_search.php:57 ../user/user_search.php:62
+msgid "Either"
+msgstr "Buď"
+
+#: ../user/user_search.php:61
+msgid "On a team?"
+msgstr "V tíme_"
+
+#: ../user/user_search.php:66
+msgid "Ordering"
+msgstr "Zoradenie"
+
+#: ../user/user_search.php:67
+msgid "Decreasing sign-up time"
+msgstr "Skrátenie času na prihlásenie"
+
+#: ../user/user_search.php:68
+msgid "Decreasing average credit"
+msgstr "Zostupne podľa priemerného kreditu"
+
+#: ../user/user_search.php:69
+msgid "Decreasing total credit"
+msgstr "Zostupne podľa celkového kreditu"
+
+#: ../user/user_search.php:84
+msgid "search string must be at least 3 characters"
+msgstr "hľadané slovo musí mať najmenej 3 znaky"
+
+#: ../user/user_search.php:118
+msgid "User search results"
+msgstr "Výsledky vyhľadávania užívateľov"
+
+#: ../user/user_search.php:125
+msgid "Joined"
+msgstr "Pridanie sa"
+
+#: ../user/user_search.php:133
+msgid "No users match your search criteria."
+msgstr "Žiaden užívateľ nezodpovedá hľadaným kritérám."
+
+#: ../user/userw.php:35
+msgid "User not found!"
+msgstr "Používateľ nenájdený!"
+
+#: ../user/userw.php:44
+msgid "Account Data<br/>for %1<br/>Time:"
+msgstr "Údaje účtu <br/> za %1 <br/> Čas:"
+
+#: ../user/userw.php:47
+msgid "Team:"
+msgstr "Tím:"
+
+#: ../user/userw.php:48
+msgid "Team TotCred:"
+msgstr "TotCred tímu:"
+
+#: ../user/userw.php:49
+msgid "Team AvgCred:"
+msgstr "AvgCred tímu:"
+
+#: ../user/userw.php:51
+msgid "Team: None"
+msgstr "Tím: Žiaden"
+
+#: ../user/validate_email_addr.php:30
+msgid "Validate BOINC email address"
+msgstr "Overiť BOINC mailovú adresu"
+
+#: ../user/validate_email_addr.php:31
+msgid ""
+"Please visit the following link to validate the email address of your %1 "
+"account:"
+msgstr "Prosím navštívte nasledujúci odkaz na potvrdenie mailovej adresy vášho %1 konta"
+
+#: ../user/validate_email_addr.php:34
+msgid "Validate email sent"
+msgstr "Overovací mail bol odoslaný."
+
+#: ../user/validate_email_addr.php:35
+msgid ""
+"An email has been sent to %1. Visit the link it contains to validate your "
+"email address."
+msgstr "Mail bol poslaný na %1 . Navštívte odkaz obsiahnutý v správe na potvrdenie vašej mailovej adresy."
+
+#: ../user/validate_email_addr.php:44
+msgid "No such user."
+msgstr "Používateľ neexistuje."
+
+#: ../user/validate_email_addr.php:49
+msgid "Error in URL data - can't validate email address"
+msgstr "Chyba v URL - nebolo možné overiť mailovú adresu"
+
+#: ../user/validate_email_addr.php:54
+msgid "Database update failed - please try again later."
+msgstr "Aktualizácia databázy zlyhala - prosím, skúste to znovu."
+
+#: ../user/validate_email_addr.php:57
+msgid "Validate email address"
+msgstr "Overiť e-mailovú adresu"
+
+#: ../user/validate_email_addr.php:58
+msgid "The email address of your account has been validated."
+msgstr "Mailová adresa vášho účtu bola overená."
+
+#: ../user/view_profile.php:38
+msgid "This user has no profile"
+msgstr "Tento používateľ nemá profil"
+
+#: ../user/view_profile.php:56
+msgid "Profile: %1"
+msgstr "Profil: %1"
+
+#: ../user/view_profile.php:65
+msgid "Account data"
+msgstr "Údaje konta"
+
+#: ../user/weak_auth.php:52
+msgid ""
+"You can access your account either by using your email address and password,\n"
+"    or by using an assigned 'account key'.\n"
+"    Your account key is:"
+msgstr "Do vášho účtu sa dostanete buď použitím vašej mailovej adresy a hesla,\nalebo použitím priradeného \"kľúču k učtu\"\nKľúč vášho účtu je:"
+
+#: ../user/weak_auth.php:57
+msgid "This key can be used to:"
+msgstr "Tento kľúč sa môže použiť na:"
+
+#: ../user/weak_auth.php:59
+msgid "log in to your account on the web"
+msgstr "prihlásenie sa do vášho účtu na stránke"
+
+#: ../user/weak_auth.php:61
+msgid ""
+"to attach a computer to your account without using the BOINC Manager.\n"
+"       To do so, install BOINC,\n"
+"       create a file named %1 in the BOINC\n"
+"       data directory, and set its contents to:"
+msgstr "na pridanie počítača do vášho účtu bez pomoci BOINC správcu.\nNainštalujte si BOINC, \nvytvorte súbor s názvom %1 v BOINC\nzložke data a nastavte jeho obsah nasledovne:"
+
+#: ../user/weak_auth.php:73
+msgid "Weak account key"
+msgstr "Slabý kľúč účtu"
+
+#: ../user/weak_auth.php:74
+msgid ""
+"Your 'weak account key' can be used to attach computers to your account\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
+"    If you want to attach untrusted or insecure computers to your account,\n"
+"    do so using your weak account key.\n"
+"    Your weak account key is:"
+msgstr "Váš \"slabý\" kľúč účtu môže byť použitý na pridanie počítačov\nk vášmu účtu, ako je uvedené nižšie. Nedá sa však použiť na \nprihlásenie sa do účtu a ani jeho zmenu-\nPokiaľ chcete pridať do vášho účtu nezabezpečené alebo nedôveryhodné počítače, použite váš slabý kľúč.\nVáš slabý kľúč je:"
+
+#: ../user/weak_auth.php:81
+msgid ""
+"If you change your password, your weak account key changes, and your "
+"previous weak account key becomes invalid."
+msgstr "Pokiaľ si zmeníte heslo, vaše slabé kľúče sa zmenia a vaše predošlé slabé kľúče nebudú viac funkčné."
+
+#: ../user/workunit.php:32
+msgid "can't find workunit"
+msgstr "nedá sa nájsť pracovná jednotka"
+
+#: ../user/workunit.php:35
+msgid "Workunit %1"
+msgstr "Pracovná jednotka %1"
+
+#: ../user/workunit.php:40
+msgid "application"
+msgstr "aplikácia"
+
+#: ../user/workunit.php:43
+msgid "canonical result"
+msgstr "kanonický výsledok"
+
+#: ../user/workunit.php:46
+msgid "granted credit"
+msgstr "udelený kredit"
+
+#: ../user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Prebiehajúce úlohy"
+
+#: ../user/workunit.php:55
+msgid "suppressed pending completion"
+msgstr "potlačiť úlohy čakajúce na dokončenie"
+
+#: ../user/workunit.php:58
+msgid "minimum quorum"
+msgstr "minimálne quorum"
+
+#: ../user/workunit.php:59
+msgid "initial replication"
+msgstr "prvotná replikácia"
+
+#: ../user/workunit.php:60
+msgid "max # of error/total/success tasks"
+msgstr "maximálny počet chybných/spolu/úspešných úloh"
+
+#: ../user/workunit.php:64
+msgid "errors"
+msgstr "chyby"
+
+#: ../user/workunit.php:67
+msgid "validation"
+msgstr "overenie"
+
+#: ../user/workunit.php:67
+msgid "Pending"
+msgstr "Čaká"
+
+#: ../project.sample/project.inc:70
+msgid "Main page"
+msgstr "Hlavná stránka"
+
+#: ../project.sample/project.inc:72
+msgid "Copyright"
+msgstr "Autorské práva"
+
+#: ../project.sample/project.inc:75
+msgid "Generated"
+msgstr "Vytvorené"
+
+#: ../project.sample/project.inc:106
+msgid "Your personal background."
+msgstr "Niečo o vás"
+
+#: ../project.sample/project.inc:110
+msgid ""
+"Tell us about yourself. You could tell us where you're from, your age, "
+"occupation, hobbies, or anything else about yourself."
+msgstr "Prezraďte nám niečo o vás. Môžete napísať odkiaľ ste, koľko máte rokov, vaše zamestnanie, záľuby alebo čokoľvek iné."
+
+#: ../project.sample/project.inc:114
+msgid "Your opinions about %1"
+msgstr "Váš názor na %1"
+
+#: ../project.sample/project.inc:118
+msgid ""
+"Tell us your thoughts about %1<ol>\n"
+"    <li>Why do you run %1?\n"
+"    <li>What are your views about the project?\n"
+"    <li>Any suggestions?\n"
+"    </ol>"
+msgstr "Prezraďte nám, čo si myslíte o %1<ol>\n<li>Prečo spúštate %1?\n<li>Čo si myslíte o projekte samotnom_\n<li>Máte nejaké návrhy?\n</ol>"
+
+#: ../project.sample/project_specific_prefs.inc:53
+msgid "Color scheme for graphics"
+msgstr "Farebná schéma pre grafiku"
+
+#: ../project.sample/project_specific_prefs.inc:55
+#, no-php-format
+msgid "Maximum CPU % for graphics%10 ... 100%2"
+msgstr "Maximum % procesoru pre grafiku%10 ... 100%2"
+
+#: ../project.sample/project_specific_prefs.inc:56
+msgid "Run only the selected applications"
+msgstr "Spustit len vybrané aplikácie"
+
+#: ../project.sample/project_specific_prefs.inc:57
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Získavať úlohy len pre určité aplikácie. Užitočné, ak sa chcete sústrediť len na konkrétne aplikácie, alebo ich vylúčiť."
+
+#: ../project.sample/project_specific_prefs.inc:58
+msgid ""
+"If no work for selected applications is available, accept work from other "
+"applications?"
+msgstr "Pokiaľ nie je dostupná práca spomedzi vybraných aplikácií, príjmať prácu aj z iných aplikácií?"
+
+#: ../project.sample/project_specific_prefs.inc:59
+msgid "Use faster non-graphical applications if available?"
+msgstr "Použiť rýchlejšie aplikácie bez grafiky, ak je to možné?"
+
+#: ../project.sample/project_specific_prefs.inc:90
+msgid "(all applications)"
+msgstr "(všetky aplikácie)"
diff --git a/html/languages/translations/sl.po b/html/languages/translations/sl.po
deleted file mode 100644
index e7e039d..0000000
--- a/html/languages/translations/sl.po
+++ /dev/null
@@ -1,7145 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-08-07 14:54+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: sl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
-"n%100==4 ? 2 : 3);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1407423277.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Slovenščina"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Slovenian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Privzeto"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-#, fuzzy
-msgid "Orange"
-msgstr "Spremeni"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Išči besede v sporočilih foruma"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Išči po forumih"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Napredno iskanje"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Zasebna sporočila"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Vprašanja in odgovori"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Razpravljalnice"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 razpravljalnica"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Prejšnje"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Naslednje"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Avtor"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Sporočilo"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send message"
-msgstr "Pošlji sporočilo"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send %1 a private message"
-msgstr "Pošlji zasebno sporočilo"
-
-#: ../inc/forum.inc:581
-#, fuzzy
-msgid "Joined: %1"
-msgstr "Pridruženi %1"
-
-#: ../inc/forum.inc:590
-#, fuzzy
-msgid "Posts: %1"
-msgstr "Objave"
-
-#: ../inc/forum.inc:596
-#, fuzzy
-msgid "Credit: %1"
-msgstr "Točke"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "You haven't read this message yet"
-msgstr "Nimate zasebnih sporočil."
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "Unread"
-msgstr "neprebrano"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-#, fuzzy
-msgid "Message %1"
-msgstr "Sporočilo"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "skrito"
-
-#: ../inc/forum.inc:625
-#, fuzzy
-msgid "Posted: %1"
-msgstr "Objave"
-
-#: ../inc/forum.inc:628
-#, fuzzy
-msgid " - in response to "
-msgstr "Čas je potekel - ni odziva"
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Uredi"
-
-#: ../inc/forum.inc:631
-#, fuzzy
-msgid "Edit this message"
-msgstr "Uredite vaš profil"
-
-#: ../inc/forum.inc:637
-#, fuzzy
-msgid "Last modified: %1"
-msgstr "Nazadnje spremenjene nastavitve:"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
-msgid "Report as offensive"
-msgstr "Zadnja objava"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-# 83%
-#: ../inc/forum.inc:675
-#, fuzzy
-msgid "Click if you like this message"
-msgstr "ni uspelo ustvariti sporočilnice"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-#, fuzzy
-msgid "Click if you don't like this message"
-msgstr "ni uspelo ustvariti sporočilnice"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Odgovor"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-#, fuzzy
-msgid "Quote"
-msgstr "Zapusti ekipo"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-#, fuzzy
-msgid "Posted %1 by %2"
-msgstr "Objave"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "Nimate zasebnih sporočil."
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-#, fuzzy
-msgid "More info"
-msgstr "Informacije o ekipi"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Naredi vidno"
-
-#: ../inc/forum.inc:1055
-#, fuzzy
-msgid "Unhide this post"
-msgstr "Naredi temo vidno"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Skrij"
-
-#: ../inc/forum.inc:1057
-#, fuzzy
-msgid "Hide this post"
-msgstr "Skrij"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Premakni"
-
-#: ../inc/forum.inc:1062
-#, fuzzy
-msgid "Move post to a different thread"
-msgstr "Premakni to temo v drug forum"
-
-#: ../inc/forum.inc:1067
-#, fuzzy
-msgid "Banish author"
-msgstr "uporabnik ne obstaja"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-#, fuzzy
-msgid "Only team members can post to the team message board"
-msgstr "Ustvari ali upravljaj s sporočilnico ekipe"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Da lahko ustvarite novo temo v %1, morate imeti določeno število točk. To "
-"preprečuje in ščiti pred zlorabo sistema."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Trenutno ne morete ustvariti novih tem. Prosim, malo počakajte, preden spet "
-"poskusite. Ta odlog je bil uveljavljen za zaščito pred zlorabo sistema."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Tema"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Objave"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Pogledi"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Zadnja objava"
-
-#: ../inc/forum.inc:1235
-#, fuzzy
-msgid "New posts in the thread %1"
-msgstr "Objavi k temi"
-
-#: ../inc/forum.inc:1240
-#, fuzzy
-msgid "New posts in subscribed thread"
-msgstr "Naroči se"
-
-#: ../inc/forum.inc:1241
-#, fuzzy
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-"Kliknite tu, da dobite elektronsko pošto, kadar so v tej temi nove objave."
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Označi vse teme kot prebrane"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "Označi vse teme na vseh oglasnih deskah kot 'prebrane'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Ni gostitelja"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Ni na voljo"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Doma"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "V službi"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "V šoli"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Posodobite"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Informacije o računalniku"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP naslov"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(isti zadnjih %1 krat)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Zunanji IP naslov"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Prikaži IP naslov"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Ime domene"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Lokalni čas"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1."
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Lastnik"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonimen"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Ustvarjeno"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Skupaj točk"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Točk v povprečju"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Skupaj točk v projektih"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Tip procesorja"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Število procesorjev"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Koprocesorji"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Operacijski sistem"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Različica BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Pomnilnik"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Predpomnilnik"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Izmenjalni prostor"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Skupni prostor na disku"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Prosto na disku"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Izmerjena hitrost operacij s plavajočo vejico"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 miljonov operacij/s"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Izmerjena hitrost celoštevilskih operacij"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Povprečna hitrost pošiljanja"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Neznano"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Povprečna hitrost prejemanja"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Povprečna obračalni čas"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 dni"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Podrobnosti aplikacije"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Prikaži"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Opravila"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-#, fuzzy
-msgid "Number of times client has contacted server"
-msgstr "Kolikokrat je BOINC kontaktiral strežnik"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Zadnji čas kontaktiranja strežnika"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "BOINC teče % časa"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Ko BOINC teče, kolikšen % časa ima gostitelj povezavo na Internet"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Ko BOINC teče, kolikšen % časa je dovoljeno delo"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Povprečna učinkovitost procesorja"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Korekcijski faktor dolžine opravila"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Lokacija"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Briši ta računalnik"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Združi podvojene zapise tega računalnika"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Združi"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Zadnji kontakt"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informacije o računalniku"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Uvrstitev"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Povprečno točk"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Povprečje točk v zadnjem času"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Procesor"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "Grafični procesor"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operacijski sistem"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 procesorjev)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Podrobnosti"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Medprojektna statistika:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Gostitelj %1 ima prekrivajočo se življensko dobo:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Gostitelj %1 ima nezdružljiv operacijski sistem:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Gostitelj %1 ima nezdružljiv procesor:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "isti gostitelj"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Ne morem združiti gostitelja %1 z %2 - nezdružljiva sta"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Pridružujem gostitelja %1 k gostitelju %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Posodobitev točk novega računalnika ni uspela"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Posodobitev rezultatov ni uspela"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Upokojitev starega računalnnika ni uspela"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Upokojil stari računalnik %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Prikaži:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Vse računalnike"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Samo računalnike, aktivne v zadnjih 30 dneh"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID računalnika"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Ime"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br>različica"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Združi računalnike po imenu"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Komentar"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Novice so na voljo kot %sRSS vir%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Nabiralnik"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Napiši"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Pošlji zasebno sporočilo"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Predogled"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "uporabnik ne obstaja"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Za"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "IDji uporabnikov ali unikatna uporabniška imena, ločena z vejicami"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Zadeva"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Pošlji sporočilo"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-#, fuzzy
-msgid "Couldn't create message"
-msgstr "ni uspelo ustvariti sporočilnice"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Ni vam dovoljeno tako pogosto pošiljati sporočil. Prosim, počakajte nekaj "
-"časa, preden pošljete nova."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "neprebrano"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Za obveščanje po e-pošti, %1uredite nastavitve skupnosti%2"
-
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "Zasebna sporočila"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Prekini delo, ko je računalnik na baterijskem napajanju? %1 Pomembno le za "
-"prenosne računalnike %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Prekini delo, ko je računalnik v uporabi?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Prekini delo grafičnega procesorja, ko je računalnik v uporabi? %1 Velja v "
-"različicah od 6.6.21 dalje %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'V uporabi' pomeni aktivnost miške/tipkovnice v zadnjih"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minutah"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Prekini delo, če ni aktivnosti miši/tipkovnici v zadnjih %1 Potrebno za "
-"vstop v način nizke porabe energije na nekaterih računalnikih %2"
-
-#: ../inc/prefs.inc:114
-#, fuzzy
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Prekiniti delo, če je uporaba procesorja več kot %1 0 pomeni brez "
-"omejitev<br>Velja v različicah od 6.10.30 dalje %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Delati le med urami %1 Ni omejitev, če je enako %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Med prekinitvijo pustiti opravila v pomnilniku? %1 V primeru 'da' bodo "
-"prekinjena opravila porabljala izmenjalni prostor %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Preklopi med opravili vsakih %1 Priporočeno: 60 minut %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Pri več procesorjih, uporabi največ"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesorjev"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Pri več procesorjih, uporabi največ %1 Velja v različicah od 6.1 dalje %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% procesorjev"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Uporabi največ %1 Lahko se uporabi za zmanjšanje segrevanja procesorja %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% časa procesorja"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disk: uporabi največ"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disk: pusti vsaj %1 prosto Vrednosti, manjše od %2 so prezrte"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% celotnega"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Opravila shranjujejo kontrolne točke na disk največ vsakih"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "sekund"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Izmenjalni prostor: uporabi največ"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Pomnilnik: ko je računalnik v uporabi, uporabi največ"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Pomnilnik: ko računalnik ni v uporabi, uporabi največ"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dni"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Potrditev pred povezavo na Internet? %1 Pomembno samo, če imate modemsko, "
-"ISDN ali VPN povezavo %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Prekiniti povezavo, ko je končano? %1 Pomembno samo, če imate modemsko, ISDN "
-"ali VPN povezavo %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Največja hitrost prejemanja:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbajtov/s"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Največja hitrost pošiljanja:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Uporabi mrežo le med urami"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Prenesi največ %1 Velja pri različicah od 6.10.46 dalje %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mbajtov vsakih"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Preskoči preverjanje slikovne datoteke? %1 Obkljukajte SAMO, če vaš ponudnik "
-"interneta spreminja slikovne datoteke (UMTS to naprimer počne). %2 "
-"Preskočitev preverjanja zmanjša varnost BOINC. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Delitev virov %1 Določi delež virov vašega računalnika, ki so dodeljeni temu "
-"projektu. Primer: če sodelujete v dveh BOINC projektih z delitvijo virov "
-"100 in 200, bo prvi dobil 1/3 vaših virov in drugi 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Uporabi procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Uporabi ATI grafični procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Uporabi NVIDIA grafični procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Uporabi ATI grafični procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Poganjati testne aplikacije? %1 To nam pomaga razvijati aplikacije, lahko pa "
-"povzroči, da posli ne uspejo na vašem računalniku %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Elektronska pošta bo poslana iz %1; poskrbite, da vaš filter nezažljene "
-"pošte sprejema ta naslov."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Ali dovolite %1 in vaši ekipi (če jo imate), da vam pošljejo elektronsko "
-"pošto?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Ali naj %1 prikaže vaše računalnike na svoji spletni strani?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Uporaba diska in pomnilnika"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Uporaba procesorja"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Uporaba mreže"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Te nastavitve veljajo za vse BOINC projekte, v katerih sodelujete."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1 Posodobitev nastavitev ni uspela.%2 Spodnje vrednosti, označene z rdečo, "
-"so izven obsega ali niso številčne."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "slabo mesto: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "slaba podmnožica: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "da"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "ne"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "ni omejitev"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Dodaj"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Odstrani"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Računanje"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Ločene nastavitve za %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Uredi nastavitve"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Dodaj ločene nastavitve za %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(preklopi pogled)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Skupne nastavitve"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Posebne nastavitve projekta"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Primarne (privzete) nastavitve"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Uredi nastavitve %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Nazadnje spremenjene nastavitve:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Dodaj nastavitve"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Posodobi nastavitve"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Privzeta lokacija računalnika"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "in"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Vaš profil bo viden drugim ljudem takoj, ko ga bo projekt odobril. To lahko "
-"traja do nekaj dni."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Vaš profil je bil označen kot nesprejemljiv. Ni viden drugim ljudem. Prosim, "
-"spremenite ga."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Napaka v podatkovni bazi"
-
-#: ../inc/profile.inc:193
-#, fuzzy
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Da bi preprečili smetenje, so profili uporabnikov s povprečjem točk manj kot "
-"%1 prikazani le prijavljenim uporabnikom.  Opravičujemo se za to "
-"nevšečnost."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Uporabnik je pregnan"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Za ta ID uporabnika ne obstaja profil."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Uredite vaš profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Vaše povratne informacije o tem profilu"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Predlagaj ta profil za Uporabnika dneva:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Ta profil mi je %1všeč%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Opozori skrbnike na žaljiv profil:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Ta profil mi %1ni všeč%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonimna platforma"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA grafični procesor"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI grafični procesor"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Ni v bazi"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "čakajoče"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Vse"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "V teku"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Veljavno"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Neveljavno"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Napaka"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Neaktivno"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Neposlano"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Dokončano, čaka na preverjanje"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Dokončano in preverjeno"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Dokončano, označeno kot neveljavno"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Dokončano, preverjanje ni uspelo"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Dokončano, preverjanje ni dalo gotovega rezultata"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Dokončano, prepozno za preverjanje"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Dokončano"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Pošiljanje ni uspelo"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Strežnik je preklical"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Napaka med prejemanjem"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Napaka med računanjem"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Napaka med pošiljanjem"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Uporabnik je preklical"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-#, fuzzy
-msgid "Upload failed"
-msgstr "Posodobitev ni uspela"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Čas je potekel - ni odziva"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Ni bilo potrebno"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Napaka pri preverjanju"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Opuščeno"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Končano"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Uspeh"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Računska napaka"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Odvečen rezultat"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Ni odgovora"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Novo"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Prejemam"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Obdelujem"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Napaka pri računanju"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Pošiljam"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Opravljeno"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Začetno"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Ni potrebno"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Napaka delovne enote - preverjanje preskočeno"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Preverjeno, ni pa še konsenza"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Opravilo je bilo prepozno javljeno za preverjanje"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Pošiljanje rezultatov ni uspelo"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Preveč napak (morda ima hrošča)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Preveč rezultatov (morda je nedeterministično)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Preveč skupnih rezultatov"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Delovna enota preklicana"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Neznana napaka: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Ime opravila"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "kliknite za podrobnosti"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Prikaži IDje"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Prikaži imena"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Opravilo"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Delovna enota"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Računalnik"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Poslano"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Čas objave<br /> ali rok"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "pojasni"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Čas izvajanja<br />(sekunde)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Čas procesorja<br />(sekunde)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Točke"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Aplikacija"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Delovna enota"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Prejeto"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Stanje strežnika"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Izid"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Stanje odjemalca"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Stanje ob izhodu"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Rok za poročilo"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Čas izvajanja"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Čas procesorja"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Stanje preverjanja"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Različica aplikacije"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-#, fuzzy
-msgid "State"
-msgstr "Status"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Ime opravila"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Iskalni kriteriji (uporabite enega ali več)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Ključne besede"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Poišči ekipe s temi besedami v njihovem imenu ali opisu"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Država"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Tip ekipe"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Prikaži le aktivne ekipe"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Išči"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Zahtevali ste vi in rok za ustanoviteljev odgovor je potekel."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Dokončaj prenos ustanoviteljstva"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Zahtevali ste vi"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "rok za ustanoviteljev odgovor je %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "brez"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Prični zahtevo"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Odloženo"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Informacije o ekipi"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Opis"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Spletna stran"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Medprojektna statistika"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tip"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Razpravljalnica"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Teme"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Pridruži se tej ekipi"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Opomba: če je 'Dovoljeno pošiljanje pošte' nastavljeno v nastavitvah vašega "
-"projekta, ob pridružitvi ekipi daje njenemu ustanovitelju dostop do naslova "
-"vaše elektronske pošte."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Ne sprejema novih članov"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Zahtevana sprememba ustanoviteljstva"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Odgovori z %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Sprememba ustanoviteljstva ekipe"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Člani"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Ustanovitelj"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Skrbniki"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Novi člani v zadnjem dnevu"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Skupaj članov"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "poglej"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktivni člani"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Člani s točkami"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Skrbnik"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Predhodnih %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Naslednjih %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Ekipa ne obstaja."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Ta operacija zahteva ustanoviteljstvo."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Ta operacija zahteva skrbniške pravice za ekipo"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"OPOZORILO: to je ekipa vsega BOINC. Če tu napravite spreembe, bodo hitro "
-"prepisane. Namesto tega uredite %1ekipo vsega BOINC%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Opomba o zasebnosti%2: če ustvarite ekipo, bodo vaše nastavitve projekta "
-"(delitev virov, grafične nastavitve) vidne javnosti."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Ime ekipe, tekstovna različica"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Ne uporabljajte HTML oznak."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Ime ekipe, HTML različica"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Lahko uporabljajte %1omejen nabor HTML oznak%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Če ne znate HTML, pustite ta okvir prazen."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "URL spletne strani ekipe, če obstaja"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "brez \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Na spletni strani ekipe bo povezava s tem URL."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Opis ekipe"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Sprejeti nove člane?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Profil uporabnika"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projekti, v katerih sodelujete"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projekti, v katerih sodeluje %1"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Kliknite za spletno stran uporabnika"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Od"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Računanje in točke"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Računalniki tega računa"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Pogled"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Medprojektni ID"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Medprojektna statistika"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Račun"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Ekipa"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Medprojektno"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certifikat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistika na vašem mobilnem telefonu"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Informacije o računu"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Naslov elektronske pošte"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Poštna številka"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 član od"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Spremeni"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "naslov elektronske pošte"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "geslo"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "druge informacije o računu"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "ID uporabnika"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Uporabljeno v funkcijah skupnosti"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Ključ računa"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Nastavitve"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Kdaj in kako BOINC uporablja vaš računalnik"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Nastavitve računanja"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Razpravljalnice in zasebna sporočila"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Nastavitve skupnosti"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Nastavitve za ta projekt"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 nastavitve"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Skupnost"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Briši"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Ustvari"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "Objave %1"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Obvestila"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Zapusti ekipo"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administriraj"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(čakajoča zahteva po spremembi ustanoviteljstva)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Član ekipe"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "poišči ekipo"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Ustanovitelj, vendar ne član"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Poišči prijatelje"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Prijatelji"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Računalniki"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donator"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Ta oseba je prijatelj"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Prekliči prijateljstvo"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Čakajoča prošnja"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Dodaj kot prijatelja"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "Odjava"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "Prijavite se"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Prijavite se"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Ustvarite račun"
-
-#: ../inc/util.inc:206
-#, fuzzy
-msgid "Server status page"
-msgstr "Stanje strežnika"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Ni bilo mogoče obdelati zahteve"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Uporabite BBCode oznake za oblikovanje vašega besedila"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-#, fuzzy
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "Ni uspelo pridružiti se ekipi - prosim, poskusite kasneje."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Ostanite prijavljeni na tem računalniku"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identificira vas na naši spletni strani. Uporabite vaše pravo ime ali "
-"vzdevek."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Če želite, izberite državo, ki jo želite predstavljati."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Poštna številka ali oznaka"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opcijsko"
-
-#: ../user/account_finish_action.php:27
-#, fuzzy
-msgid "You must supply a name for your account"
-msgstr "Podati morate ime vašega računa."
-
-#: ../user/account_finish_action.php:30
-#, fuzzy
-msgid "HTML tags not allowed in name"
-msgstr "HTML značke v vašem imenu niso dovoljene."
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Dodaj %1 nastavitve za %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Aplikacije"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"% ima trenutno sledeče aplikacije. Ko sodelujete v %1, bo vašemu računalniku "
-"dodeljeno delo za eno ali več teh aplikacij. Trenutna različica aplikacije "
-"bo naložena na vaš računalnik. To se zgodi samodejno, ni vam streba storiti "
-"ničesar."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Različica"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Čas namestitve"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-#, fuzzy
-msgid "Italic"
-msgstr "Neveljavno"
-
-#: ../user/bbcode.php:34
-#, fuzzy
-msgid "Underline"
-msgstr "Odkloni"
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "Opis"
-
-#: ../user/bbcode.php:36
-#, fuzzy
-msgid "Big text"
-msgstr "besedilo"
-
-#: ../user/bbcode.php:37
-#, fuzzy
-msgid "Red text"
-msgstr "besedilo"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "Zapusti ekipo"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Vaš račun"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Ekipa"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Uporabnik dneva"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Stanje strežnika"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profili"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Najboljši udeleženci"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Najboljši računalniki"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Najboljše ekipe"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Jezik"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Preberite naša pravila in politiko"
-
-#: ../user/create_account_action.php:26
-#, fuzzy
-msgid "Can't create account"
-msgstr "Ustvari račun"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-#, fuzzy
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-"Vaš \"Recaptcha\" odgovor na vsebino slike ni bil pravilen.  Prosim, poskusite "
-"znova."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Podati morate kodo vabila, da ustvarite račun."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Koda vabila, ki ste jo podali, ni veljavna."
-
-#: ../user/create_account_action.php:84
-#, fuzzy
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "Mora biti veljaven naslov oblike 'ime at domena'"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-#, fuzzy
-msgid "New passwords are different"
-msgstr "Novo geslo, znova"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "Ustvari račun"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Ta račun bo pripadal ekipi %1 in bo imel nastavitve projekta njenega "
-"ustanovitelja."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Koda vabila"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Da ustvarite račun, je potrebna veljavna koda vabila."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Naslov elektronske pošte"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Mora biti veljaven naslov v obliki 'ime at domena'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Geslo"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Biti mora vsaj %1 znakov"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Potrdi geslo"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Ustvari račun"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Slika"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Vaša slika profila je prikazana na levi."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Da jo zamenjate, kliknite gumb \"Brskaj\" in izberite JPEG ali PNG datoteko (%"
-"1 ali manjšo)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Da odstranite sliko z vašega profila, kliknite ta okvir:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Če bi k vašemu profilu radi vključili sliko, kliknite gumb \"Brskaj\" in "
-"izberite JPEG ali PNG datoteko. Prosim, izberite slike dolžine %1 ali manj."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Jezik"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Izberite jezik v katerem naj bo napisan vaš profil:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Vnesi profil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Ustvari/uredi profil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Format slike, ki ste jo naložili, ni podprt."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"Vaš %1profil%2 vam omogoča deliti vaša mnenja in ozadje s skupnostjo %3."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-"Vaš \"Recaptcha\" odgovor na vsebino slike ni bil pravilen.  Prosim, poskusite "
-"znova."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Vaš drugi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "Vnesli ste prazen profil."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Ne morem posodobiti profila: napaka v podatkovni bazi"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Ne morem ustvariti profila: napaka v podatkovni bazi"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profil shranjen"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Čestitke! Vaš profil je bil uspešno vnesen v našo podatkovno bazo."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Poglejte vaš profil%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Ustvarite profil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Za preprečitev smetja, je za ustvarjanje ali urejanje profila zahtevano "
-"povprečje točk %1 ali več.  Za to nevšečnost se vam opravičujemo."
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "Upokojitev starega računalnnika ni uspela"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "Podatki računa"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "Ustvari račun"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-#, fuzzy
-msgid "Are you sure you want to delete your account?"
-msgstr "Ali ste prepričani, da želeti brisati vaše ločene %1 nastavitve za %2"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Da"
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "Briši ta računalnik"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Ne"
-
-#: ../user/delete_account.php:80
-#, fuzzy
-msgid "Do not delete this account"
-msgstr "Briši ta računalnik"
-
-#: ../user/delete_profile.php:30
-#, fuzzy
-msgid "couldn't delete profile - please try again later"
-msgstr "Ni uspelo pridružiti se ekipi - prosim, poskusite kasneje."
-
-#: ../user/delete_profile.php:33
-#, fuzzy
-msgid "Delete Confirmation"
-msgstr "Informacije o računalniku"
-
-#: ../user/delete_profile.php:35
-#, fuzzy
-msgid "Your profile has been deleted."
-msgstr "Vaše sporočilo je bilo poslano."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-#, fuzzy
-msgid "Delete my profile"
-msgstr "Ustvarite profil"
-
-#: ../user/delete_profile.php:53
-#, fuzzy
-msgid "Do not delete my profile"
-msgstr "Ta profil mi %1ni všeč%2"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-#, fuzzy
-msgid "Your donation for has been completed."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-#, fuzzy
-msgid "This project is not accepting donations."
-msgstr "Ta zahteva še vedno čaka na potrditev."
-
-#: ../user/donations.php:34
-#, fuzzy
-msgid "%1 donations"
-msgstr "%1 dni"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-#, fuzzy
-msgid "Anonymous donation"
-msgstr "Anonimna platforma"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-#, fuzzy
-msgid "Proceed"
-msgstr "Profil shranjen"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Naloži dodatno programsko opremo BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Naložite lahko aplikacije iz večih kategorij."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Te aplikacije %1 ne podpira. Lahko jo uporabljate na lastno odgvornost."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Ne ponujamo navodil za namestitev teh aplikacij.\n"
-"Kakorkoli, avtor je morda priskrbel kaj pomoči o namestitvi ali "
-"odstranjevanju\n"
-"aplikacije.\n"
-"Če za vas to ni dovolj, bi morali kontaktirati avtorja."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Navodila za namestitev in poganjanje BOINC so %1tukaj%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Ta seznam je centralno upravljan na %1spletni strani BOINC%2."
-
-#: ../user/edit_email_action.php:31
-#, fuzzy
-msgid "Change email address of account"
-msgstr "Spremenite naslov e-pošte vašega računa"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "Nov naslov e-pošte"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "Potrdi geslo"
-
-#: ../user/edit_email_action.php:62
-#, fuzzy
-msgid "The email address of your account is now %1."
-msgstr "Naslov elektronske pošte vašega računa je bil potrjen."
-
-#: ../user/edit_email_action.php:64
-#, fuzzy
-msgid "Please %1validate this email address%2."
-msgstr "Potrdite naslov elektronske pošte"
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Spremenite naslov e-pošte"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Spremenite naslov e-pošte vašega računa"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nov naslov e-pošte"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Mora biti veljaven naslov oblike 'ime at domena'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Brez gesla?"
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Potrdi geslo"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "Odstrani nastavitve"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "Uporabnik ne obstaja"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-#, fuzzy
-msgid "On my Account page (no email)"
-msgstr "Dobi ključ računa po e-pošti"
-
-#: ../user/edit_forum_preferences_form.php:58
-#, fuzzy
-msgid "Immediately, by email"
-msgstr "Dobi ključ računa po e-pošti"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Razpravljalnica"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "Ne uporabljajte HTML oznak."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-#, fuzzy
-msgid "Signature for message board posts"
-msgstr "Ustvarite sporočilnico za %1"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Razpravljalnice"
-
-#: ../user/edit_forum_preferences_form.php:129
-#, fuzzy
-msgid "What to display"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Teme"
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Objave"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Razpravljalnica"
-
-#: ../user/edit_forum_preferences_form.php:164
-#, fuzzy
-msgid "Filtered users"
-msgstr "Filtri"
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Razpravljalnice in zasebna sporočila"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Dodaj uporabnika v filter"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "Posodobi nastavitve"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Šibki ključ računa"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Potrdi geslo"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Spremenite geslo"
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Vaše sporočilo je bilo poslano."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Lahko se identificirate ali z"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "vašim naslovom e-pošte in starim geslom"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "vašim ključem računa"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Trenutno geslo"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>ALI</b>: Ključ računa"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Dobi ključ računa po e-pošti"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Novo geslo"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Novo geslo, znova"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML značke v vašem imenu niso dovoljene."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Podati morate ime vašega računa."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Posodobitev uporabniških podatkov ni uspela."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Uredite informacije o računu"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Ime %1 pravo ime ali vzdevek%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 vaše spletne strani; ni obvezno%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Poštna številka %1 ni obvezno%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Posodobi informacije"
-
-#: ../user/explain_state.php:27
-#, fuzzy
-msgid "Server states"
-msgstr "Stanje strežnika"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "V teku"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-#, fuzzy
-msgid "Outcomes"
-msgstr "Izid"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Napaka pri preverjanju"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-#, fuzzy
-msgid "Client states"
-msgstr "Stanje odjemalca"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Čas objave<br /> ali rok"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-#, fuzzy
-msgid "Already reported"
-msgstr "Že prijatelja"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Neznano"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "Naslov elektronske pošte"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Pošlji sporočilo"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Čakajoče točke"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-#, fuzzy
-msgid "Tell your friends about %1"
-msgstr "Vaše mnenje o %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your name:"
-msgstr "Prikaži imena"
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "naslov elektronske pošte"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Prijatelji"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "Nov naslov e-pošte"
-
-#: ../user/ffmail_form.php:56
-#, fuzzy
-msgid "Additional message (optional)"
-msgstr "Tu lahko dodate sporočilo:"
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Pošiljatelj"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-#, fuzzy
-msgid "No user with this ID found."
-msgstr "Ni bil najden računalnik z ID %1"
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "Uporabnik je pregnan"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-#, fuzzy
-msgid "User Request"
-msgstr "Ni prošnje"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Bodisi"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Različica"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-#, fuzzy
-msgid "You must specify an action..."
-msgstr "Podati morate ime vašega računa."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-#, fuzzy
-msgid "You are not authorized to edit this post."
-msgstr "Zdaj sta s/z %1 prijatelja."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Uredite vaš profil"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Naslov"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Dodaj moj podpis k tej objavi"
-
-#: ../user/forum_forum.php:41
-#, fuzzy
-msgid "Not visible to you"
-msgstr "Ta forum za vas ni viden."
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "Ustvarite sporočilnico za %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Tema"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Dodaj novo sporočilo k tej temi"
-
-#: ../user/forum_forum.php:116
-#, fuzzy
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Novice so na voljo kot %sRSS vir%s"
-
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "To temo so moderatorji skrili"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "neprebrano"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "neprebrano"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Nimate zasebnih sporočil."
-
-#: ../user/forum_forum.php:192
-#, fuzzy
-msgid "This thread is sticky and locked"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "sticky"
-msgstr "Naredi lepljivo"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "Odkleni"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "You read this thread"
-msgstr "Skrij to temo"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Vprašanja in odgovori"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Različica"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Razprave med člani %1"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 razpravljalnice"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Če imate vprašanje ali problem, prosim uporabite odsek %1Vprašanja in "
-"odgovori%2 razpravljalnic."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Naroči se"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Zadnja objava"
-
-#: ../user/forum_moderate_post.php:52
-#, fuzzy
-msgid "Hide post"
-msgstr "Skrij"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "Ni gostitelja"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Objavi k temi"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "uporabnik ne obstaja"
-
-#: ../user/forum_moderate_post.php:80
-#, fuzzy
-msgid "Ban duration"
-msgstr "potrjevanje"
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "UTC %1."
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 dni"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "Objave %1"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-#, fuzzy
-msgid "You are not authorized to moderate this post."
-msgstr "Zdaj sta s/z %1 prijatelja."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "Neposlano"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "Uporabnik je pregnan"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Trenutno geslo"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Opis ekipe"
-
-#: ../user/forum_moderate_thread.php:77
-#, fuzzy
-msgid "New title:"
-msgstr "Uredi naslov"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-#, fuzzy
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Ustvari novo temo"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Ustvari novo temo"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-#, fuzzy
-msgid "This function is turned off by the project"
-msgstr "Ta možnost je začasno izklopljena"
-
-#: ../user/forum_rate.php:58
-#, fuzzy
-msgid "You need more average or total credit to rate a post."
-msgstr "Najmanjše povprečno številko točk za objavo"
-
-#: ../user/forum_rate.php:62
-#, fuzzy
-msgid "You have already rated this post."
-msgstr "Že ste član %1."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/forum_rate.php:72
-#, fuzzy
-msgid "Input Recorded"
-msgstr "Glasovanje zabeleženo"
-
-#: ../user/forum_rate.php:73
-#, fuzzy
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/forum_rate.php:75
-#, fuzzy
-msgid "Vote Registered"
-msgstr "Glasovanje zabeleženo"
-
-#: ../user/forum_rate.php:76
-#, fuzzy
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-#, fuzzy
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Objavi k temi"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Sporočilo"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-#, fuzzy
-msgid "Post reply"
-msgstr "Ni odgovora"
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Dodaj moj podpis k tej objavi"
-
-#: ../user/forum_report_post.php:45
-#, fuzzy
-msgid "You need more average or total credit to report a post."
-msgstr "Najmanjše povprečno številko točk za objavo"
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Report Registered"
-msgstr "Rok za poročilo"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Zadnja objava"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Zadnja objava"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-#, fuzzy
-msgid "Report not registered"
-msgstr "Rok za poročilo"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-#, fuzzy
-msgid "This message board is available as an RSS feed."
-msgstr "Novice so na voljo kot %sRSS vir%s"
-
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Opcijsko"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Iskanje po forumu"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Tip iskanja"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Išči po forumih"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Išči po forumih"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Išči po forumih"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Rezultati iskanja"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "Objave %1"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-#, fuzzy
-msgid "Sort by"
-msgstr "Uredi"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Rezultati iskanja po forumu"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Ni profilov, ki bi se ujemali z vašim povpraševanjem."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Ni profilov, ki bi se ujemali z vašim povpraševanjem."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-#, fuzzy
-msgid "Subscription successful"
-msgstr "Posodobitev uspešna"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Opis ekipe"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/forum_subscribe.php:61
-#, fuzzy
-msgid "Unsubscription successful"
-msgstr "Posodobitev uspešna"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Odjavi naročilo"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/forum_subscribe.php:74
-#, fuzzy
-msgid "Unknown subscription action"
-msgstr "Neznano dejanje"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Ta forum za vas ni viden."
-
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "To temo so moderatorji skrili"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Na moje vprašanje je bilo odgovorjeno"
-
-#: ../user/forum_thread.php:129
-#, fuzzy
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-"Če je bilo na vaše vprašanje zadovoljivo odgovorjeno, prosim kliknite tu, da "
-"ga zaprete!"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Imam tudi to vprašanje"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Dodaj novo sporočilo k tej temi"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Odjavi naročilo"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Naročeni ste na to temo.  Kliknite tu, da odjavite naročilo."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Naroči se"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Kliknite tu, da dobite elektronsko pošto, kadar so v tej temi nove objave."
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Naredi temo vidno"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Skrij to temo"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "Odstrani lepljivost"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "Odstrani lepljivost te teme"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "Naredi lepljivo"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Odkleni"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Odkleni to temo"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Zakleni"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Zakleni to temo"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Premakni to temo v drug forum"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Uredi naslov"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Uredi naslov teme"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Uredi"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Objave"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Že prijatelja"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Zahtevali ste prijateljstvo z %1 na %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Ta zahteva še vedno čaka na potrditev."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 ne sprejema vaših zahtev po prijateljstvu"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Ne morete biti prijatelj samemu sebi"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Dodaj prijatelja"
-
-#: ../user/friend.php:74
-#, fuzzy
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Prosili ste, da bi dodali %1 kot prijatelja. Obvestili bomo %2 in ga/jo "
-"vprašali za potrditev, da sta prijatelja/prijateljici."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Tu lahko dodate sporočilo:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Prošnja za prijateljstvo je poslana"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "O vaši prošnji smo obvestili %1."
-
-#: ../user/friend.php:126
-#, fuzzy
-msgid "Please log in as %1"
-msgstr "Prosim, prijavite se"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Prošnja za prijateljstvo"
-
-#: ../user/friend.php:141
-#, fuzzy
-msgid "%1 has requested friendship with you."
-msgstr "Zahtevali ste prijateljstvo z %1 na %2."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 pravi: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Sprejmi prijateljstvo"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Klknite sprejmi, če je %1 zares vaš prijatelj(-ica)"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Odkloni"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Kliknite odkloni, če %1 ni vaš prijatelj(-ica)"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Prijateljstvo potrjeno"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Vaše prijateljstvo z %1 je bilo potrjeno."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Prijateljstvo odklonjeno"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Odklonili ste prijateljstvo z %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Obvestilo ni najdeno"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Prijatelj(-ica) potrjen(-a)"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Zdaj sta s/z %1 prijatelja."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Preklic prijateljstva?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Ali ste prepričani, da želite preklicati prijateljstvo s/z %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Ostani prijatelj"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Prijateljstvo preklicano"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Vaše prijateljstvo s/z %1 je bilo preklicano."
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "druge informacije o računu"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-#, fuzzy
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-"Prosim, obiščite sledečo povezavo, da potrdite elektronsko pošto vašega %1 "
-"računa:"
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Dobrodošli k %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Poglejte in uredite nastavitve vašega računa s spodnjimi povezavami."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-#, fuzzy
-msgid "Anonymous platform, missing app"
-msgstr "Anonimna platforma"
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Anonimna platforma"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-#, fuzzy
-msgid "Missing app"
-msgstr "manjka tip iskanja"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-#, fuzzy
-msgid "Max tasks per day"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Povprečna hitrost pošiljanja"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Podrobnosti aplikacij za gostitelja %1"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "Združi podvojene zapise tega računalnika"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Briši ta računalnik"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "Rok za poročilo"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "Združi računalnike po imenu"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Združi računalnike po imenu"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "Prikaži imena"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "ime"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "ustvarjeno"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "ID računalnika"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Ni gostitelja"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Združi"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Opravljeno"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-#, fuzzy
-msgid "Return to host page"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Računalniki, ki pripadajo %1"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Informacije o računalniku"
-
-#: ../user/hosts_user.php:56
-#, fuzzy
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Ta uporabnik je izbral, da ne prikaže informacij o svojih računalnikih."
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Najboljši računalniki"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Ne uporabljajte HTML oznak."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Ustvarjeno"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Poganjajte %1 le na računalnikih, katerih lastnik ste ali za katere ste "
-"pridobili dovoljenje lastnika. Nekatera podjetja in šole imajo pravila, ki "
-"prepovedujejo uporabo njihovih računalnikov za projekte, kot je %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Kako bo %1 uporabljal vaš računalnik"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Med tem ko poganjate %1 na vašem računalniku, bo ta uporabljal del "
-"procesorske moči vašega računalnika, prostora na disku in pasovne širine "
-"mreže. Nastavite lahko koliko teh virov uporablja %1 in kdaj ."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Delo, ki ga opravi vaš računalnik, pripomore k ciljem %1, kot so opisani na "
-"njihovi spletni strani. Ta aplikacija se od časa do časa lahko spremeni."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Politika zasebnosti"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Vaš račun na %1 je identificiran z imenom, ki ga izberete. To ime je lahko "
-"prikazano na spletni strani %1, skupaj s povzetkom dela, ki ga je vaš "
-"računalnik opravil za %1. Če želite biti anonimni, izberite ime, ki ne "
-"odkriva vaše identitete."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Če sodelujete v %1, bo %1 zabeležil informacije o vašem računalniku (kot "
-"naprimer tip procesorja, količina pomnilnika in podobno)  in to bo "
-"uporabljeno pri odločanju, kakšen tip dela je dodeljen vašemu računalniku. "
-"Ta informacija bo tudi prikazana na spletni strani %1. Nič, kar odkriva "
-"lokacijo vašega računalnika (kot ime domene ali mrežni naslov), ne bo "
-"prikazano."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Za sodelovanje v %1 morate podati naslov, na katerega prejemate elektronsko "
-"pošto. Ta naslov ne bo prikazan na spletni strani %1 ali deljen z "
-"organizacijami. %1 vam morda pošlje periodične novice, kdajkoli se lahko od "
-"njih tudi odjavite."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"Zasebna sporočila poslana na spletno stran %1 so vidna le pošiljatelju in "
-"prejemniku.  %1 ne pregleduje ali cenzurira vsebino teh sporočil.  Če ste "
-"prejeli neželjena zasebna sporočila od drugega uporabnika %1, jih lahko "
-"dodate k vašemu %2filtru sporočil%3.  To bo preprečilo, da bi videli "
-"katerokoli javno ali zasebno sporočilo tega uporabnika."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Če uporabljate forume na naši spletni strani, morate slediti %2pravilom "
-"objavljanja%3. Sporočila objavljen na %1 forumih so vidna vsem, vključno "
-"nečlanom.  Z objavo na forum dajete trajno pravico vsakomur, da bere in "
-"kopira vaše objave."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Je varno poganjati %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Vsakič, ko snamete program z interneta, tvegate: program ima morda nevarne "
-"napake ali pa so vdrli v strežnik. %1 se je potrudila, da čimbolj omeji ta "
-"tveganja. Našo aplikacijo smo natančno stestirali. Naši strežniki so za "
-"požarnim zidom in nastavljeni so za visoko varnost. Za zagotovitev "
-"integritete prenosov, so vse izvedljive datoteke digitalno podpisane na "
-"varnem računalniku, ki ni priključen na internet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Aplikacije, ki jih poganja %1 lahko povzročijo, da se nekateri računalniki "
-"pregrejejo. Če se to zgodi, prenehajte poganjati %1 ali uporabite %2pomožni "
-"program%3, ki omeji uporabo procesorja."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 so razvili pri %2. BOINC je bil razvit na University of California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Pravna odgovornost"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 ne prevzema nikakeršne pravne odgovornosti za škodo na vašem računalniku, "
-"izgubo podatkov ali kateregakoli dogodka ali stanja, ki se lahko pripeti "
-"kot rezultat sodelovanja v %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Drugi BOINC projekti"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Drugi projekti uporabljajo isto platformo, BOINC, kot %1. Morda želite "
-"premisliti o sodelovanju v enem ali več teh projektih. S tem, da to storite, "
-"bo vaš računalnik opravljal uporabno delo tudi, kadar %1 zanj nima na voljo "
-"dela."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Ti projekti niso povezani s/z %1 in ne moremo jamčiti za njihovo varnostno "
-"prakso ali narave njihovih raziskav.  Uporabljajte jih na lastno "
-"odgovornost."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Izbira jezika"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Ta stran je na voljo v več jezikih. Trenutno izbran jezik je %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Običajno je izbira jezika odvisna od nastavitve jezika vašega brskalnika, ki "
-"je: %1.  To nastavitev lahko spremenite z uporabo:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Orodja/Možnosti/Splošno"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Orodja/Internetne možnosti/Jeziki"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Lahko pa izberete jezik s klikom na eno izmed povezav.  To bo vašemu "
-"brskalniku poslalo piškotek; prepričajte se, da vaš brskalnik sprejema "
-"piškotke iz naše domene."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Ime jezika (kliknite za izbiro)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Uporabi brskalnikovo nastavitev jezika"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Prevode opravljajo prostovoljci.  Če vašega materinega jezika ni tu, %1lahko "
-"prevod priskrbite Vi%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Naslov e-pošte"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "ste pozabili naslov e-pošte?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Geslo:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "ste pozabili geslo?"
-
-#: ../user/login_form.php:51
-#, fuzzy
-msgid "Stay logged in"
-msgstr "Ostanite prijavljeni na tem računalniku"
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "ali %1ustvarite račun%2."
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Obdelujem"
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "Pridružujem gostitelja %1 k gostitelju %2"
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Čakajoče točke"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Delovna enota"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "dodeljene točke"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Čakajoče točke"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Uporabnik ne obstaja"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Vaše sporočilo je bilo poslano."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nimate zasebnih sporočil."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Pošiljatelj in datum"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Briši izbrana sporočila"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Briši izbrana sporočila"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Pošiljatelj"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Datum"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Da pošljete zasebno sporočilo, morate izpolniti vsa polja"
-
-#: ../user/pm.php:188
-#, fuzzy
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Ne najdem uporabnika z id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Ne najdem uporabnika z uporabniškim imenom %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 ni unikatno uporabniško ime; uporabiti boste morali ID uporabnika"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Uporabnik %1 (ID: %2) ne sprejema vaših zasebnih sporočil."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Uporabnik ne obstaja"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Zares blokirati %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Ali ste res prepričani, da želite prepričiti uporabniku %1, da bi vam poslal "
-"zasebna sporočila?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Prosim, imejte v mislih, da lahko blokirate le omejeno število uporabnikov."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Ko enkrat blokirate uporabnika, ga lahko odblokirate z uporabo strani z "
-"nastavitvami foruma."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Ne, prekliči"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "uporabnik ne obstaja"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Uporabnik %1 blokiran"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Uporabniku %1 je preprečeno vam pošiljati zasebna sporočila."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Da odblokirate, obiščite %1nastavitve razpravljalnice%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Neznano dejanje"
-
-#: ../user/prefs.php:32
-#, fuzzy
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Vaše nastavitve so bile posodobljene in\n"
-"\t      te bodo začele veljati, ko bo vaš računalnik komuniciral z %1\n"
-"\t      ali zahtevate ukaz %2Posodobi%3 v BOINC Upravitelju."
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 za %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Nazaj k nastavitvam"
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr "Potrdite brisanje nastavitev"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Ali ste prepričani, da želeti brisati vaše ločene %1 nastavitve za %2"
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "Odstrani nastavitve"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "Prekliči"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"%1Profili%2 omogočajo posameznikom, da delijo svoje ozadje in mnenja s "
-"skupnostjo %3."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"Raziščite raznolikost vaših kolegov in kolegic prostovoljcev in prispevajte "
-"vaše lastne poglede drugim v veselje."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"Če še niste, lahko %1ustvarite vaš lasten uporabniški profil%2, da ga drugi "
-"vidijo!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Uporabnik dneva"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Raziskovalec uporabniških profilov"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Poglejte %1Galerijo slik uporabnikov%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Brskajte profile %1po državi%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Brskajte profile %1naključno%2, %3naključno s slikami%2 ali %4naključno brez "
-"slik%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Seznam profilov po abecedi:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Iščite po besedilu profilov"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Ni profilov"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Ni profilov, ki bi se ujemali z vašim povpraševanjem."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr "Neveljaven tip glasovnice:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Glasovanje zabeleženo"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Hvala"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Vaš glas za zavrnitev tega profila je bil zabeležen."
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Vrnite se na profil."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Ime opravila"
-
-#: ../user/profile_search_action.php:41
-#, fuzzy
-msgid "Joined project"
-msgstr "Pridruženi %1"
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Povprečje točk v zadnjem času"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Opravilo %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Ta možnost je začasno izklopljena"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Ni bil najden računalnik z ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Ni dostopa"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Manjka ID uporabnika ali ID gostitelja"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Opravila v izvajanju"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-#, fuzzy
-msgid "Users"
-msgstr "Uporabnik"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "aplikacija"
-
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "Neposlano"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "V teku"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Računalnik"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistika in lestvice"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Statistika za %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Več podrobnejše statistike za %1 in druge na BOINC temelječe projekte je na "
-"voljo na večih spletnih straneh:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr "Vaše trenutne statistike lahko dobite tudi v obliki \"slikovni podpis\":"
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Dodatno lahko dobite vaše osebne statistike seštete po vseh BOINC projektih "
-"na večih straneh; glejte vašo %1domačo stran%2."
-
-#: ../user/team.php:27
-#, fuzzy
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 udeležencev lahko ustvari %2ekipo%3"
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Pripadate lahko le eni ekipi. Kdajkoli se lahko pridružite k ekipi ali jo "
-"zapustite."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Vsaka ekipa ima %1ustanovitelja%2, ki lahko:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "dostopa do naslovov elektronske pošte članov ekipe"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "ureja ime ekipe in njen opis"
-
-#: ../user/team.php:35
-#, fuzzy
-msgid "add or remove team admins"
-msgstr "Dodaj ali odstrani administratorje skupine"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "odstrani člane iz ekipe"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "razpusti ekipo, če ta nima članov"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Da se pridružite ekipi, obiščite spletno stran ekipe in kliknite %1Pridruži "
-"se tej ekipi%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Poiščite ekipo"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Vse ekipe"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "Ekipe %1"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Ustvari novo ekipo"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Če ne najdete ekipe, pravšnje za vas, lahko %1ustvarite ekipo%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr "Odstrani status administratorja ekipe temu uporabniku"
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "Dodaj ali odstrani administratorje skupine"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Izberete lahko člane ekipe, ki bodo \"administratorji skupine'. "
-"Administratorji lahko:"
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Urejajo informacije o ekipi (ime, URL, opis, država)"
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr "Vidijo zgodovino pridružitev k ekipi/odhodov iz ekipe"
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderirajo forum ekipe, če obstaja (administratorji dobijo obvestila o "
-"dogodkih in poročila po elektronski pošti)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "Administratorji ekipe ne morejo:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "Spremeniti ustanovitelja ekipe"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Odstraniti članov"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Če administrator ekipe zapusti ekipo, preneha biti administrator ekipe."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-"Priporočamo, da za administratorje ekipe izberete le ljudi, ki jih poznate "
-"in jim zelo zaupate."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "Trenutno ni administratorjev ekipe"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "Trenutni administratorji ekipe"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "Postal(-a) administrator ekipe na"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "Dodaj administratorja ekipe"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "Naslov elektronske pošte člana ekipe:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "odstranjevanje administratorja ni uspelo"
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr "Uporabnik ni član ekipe"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr "%1 je že administrator %2"
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr "Dodajanje administratorja ni uspelo"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Ekipa ne obstaja"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "ekipa ne obstaja"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "Uporabnik ni član %1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "Spreminjanje ustanovitelja %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 je zdaj ustanovitelj %2"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "Spremeni ustanovitelja %1"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-"Član ekipe %1 je zahteval spremembo ustanoviteljstva te skupine na %2, "
-"vendar je ekipo zapustil in tako preklical svojo zahtevo."
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Član skupine %1 je zahteval spremembo ustanoviteljstva te skupine. To je "
-"morda, ker ste zapustili ekipo ali daljši čas niste imeli kontakta z ekipo."
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "odkloni zahtevo"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Če ne odklonite te zahteve do %1, bo %2 imel možnost prevzeti "
-"ustanoviteljstvo ekipe.<br /><br />\n"
-"                  . Da sprejmete zahtevo, dodelite ustanoviteljstvo %3 z "
-"uporabo spodnjega obrazca."
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "Ni čakajočih zahtev za prenos."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Da dodelite ustanoviteljstvo te ekipe drugemu članu, obkljukajte ime člana "
-"in spodaj kliknite <strong>Spremeni ustanovitelja</strong>."
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "Nov ustanovitelj?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "Spremeni ustanovitelja"
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Izbrati morate ime ekipe, ki ni prazno"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Ekipa, imenovana %1, že obstaja - poskusite drugo ime"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Ekipe ni možno ustvariti - prosim, poskusite kasneje."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Ustvari ekipo"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Pripadate k %1. Preden ustvarite novo, morate %2zapustiti to ekipo%3."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr "Niste ustanovitelj ali administrator"
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "Zgodovina ekipe za %1"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Kdaj"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Uporabnik"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "Dejanje"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr "Skupaj točk ob času dejanja"
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "napačna država"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "Ime '%1' uporablja druga ekipa."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "Navesti morate ime ekipe"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Ekipe ni možno posodobiti - prosim, poskusite kasneje."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Uredi %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Posodobi informacije o ekipi"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 poštni seznam"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Seznam članov za %1"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Prikaži kot navadno besedilo"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr "Ustvari sporočilnico"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr "Lahko ustvarite sporočilnico za uporabo s strani %1."
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr "Le člani ekipe bodo lahko objavljali."
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "Po vaši izbiri, bodo lahko brali le člani."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Vi in vaši administratorji ekipe boste imeli moderatorske pravice."
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr "Ustvarite sporočilnico za %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr "Ekipa že ima sporočilnico"
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr "Sporočilnica ekipe"
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr "Najmanjši čas med objavami (sekunde)"
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr "Najmanjše skupno številko točk za objavo"
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr "Najmanjše povprečno številko točk za objavo"
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Pošlji"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr "Odstrani sporočilnico vaše ekipe."
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr "Res odstraniti sporočilnico?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-"Ali ste prepričani, da želite odstraniti sporočilnico vaše ekipe? Vse teme "
-"in objave bodo trajno odstranjene. (Lahko pa kasneje ustvarite novo "
-"sporočilnico)."
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr "Da - odstrani sporočilnico"
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr "Sporočilnica odstranjena"
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Sporočilnica vaše ekipe je bila odstranjena. Zdaj lahko %1ustvarite novo%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr "Sporočilnica ekipe posodobljena"
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "Posodobitev uspešna"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Posodobitev ni uspela"
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "ekipa nima foruma"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "Za dostop do te strani morate biti član ekipe."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr "Zahtevam ustanoviteljstvo %1"
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Trenutni ustanovitelj je bil obveščen o vaši zahtevi po elektronski pošti in "
-"z zasebnim sporočilom.<br /><br />\n"
-"                       Če ustanovitelj ne odgovori v 60 dneh, vam bo "
-"dovoljeno postati ustanovitelj."
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr "Zahteve po ustanoviteljstvu zdaj niso dovoljene"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr "Prevzeli ste ustanoviteljstvo %1"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-"Čestitke, zdaj ste ustanovitelj ekipe %1. Pojdite na %2stran Vaš račun%3, da "
-"najdete možnosti administratorjev ekipe."
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr "Odklonite zahtevo za spremembo ustanoviteljstva."
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr "Zahteva za ustanoviteljstvo od %1 je bila zavrnjena."
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr "Ni bilo zahtev za ustanoviteljstvo."
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "nedefinirano dejanje %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "Za dostop do te strani morate biti član ekipe."
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr "Zahteva za ustanoviteljstvo %1"
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr "Zdaj ste ustanovitelj ekipe %1."
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr "Zahtevali ste ustanoviteljstvo %1 na %2."
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-"60 dni je preteklo od vaše zahteve in ustanovitelj ni odgovoril. Zdaj lahko "
-"prevzamete ustanoviteljstvo s klikom tu:"
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr "Prevzemi ustanoviteljstvo"
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-"Ustanovitelj je bil obveščen o vaši zahtevi. Če ne odgovori do %1, boste "
-"imeli na izbiro postati ustanovitelj."
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-"Če ustanovitelj ekipe ni aktiven in želite prevzeti vlogo ustanovitelja, "
-"kliknite na gumb spodaj. Trenutnemu ustanovitelju bo poslana elektronska "
-"pošta s podrobnostmi vaše zahteve in bo lahko prenesel ustanoviteljstvo vam "
-"ali zavrnil vašo zahtevo. Če ustanovitelj ne odgovori v 60 dneh, vam bo "
-"dovoljeno postati ustanovitelj.<br /><br />\n"
-"                       Ali ste prepričani, da želite zahtevati "
-"ustanoviteljstvo?"
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr "Zahtevaj ustanoviteljstvo"
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Spremembo ustanoviteljstva je že zahteval(-a) %1 na %2."
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-"Sprememba ustanoviteljstva je bila zahtevana v zadnjih 90 dneh, zato nove "
-"zahteve niso dovoljene. Prosim, poskusite kasneje."
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr "K ekipi %1 se ni možno pridružiti."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "Ste že član"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Že ste član %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Ni uspelo pridružiti se ekipi - prosim, poskusite kasneje."
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "Pridruženi %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr "Pridružili ste se %1."
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Pridruži se %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr "Prosimo, upoštevajte:"
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-"Pridružitev ekipi da njenemu ustanovitelju vaš naslov elektronske pošte."
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr "Pridružitev ekipi ne vpliva na točke vašega računa."
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr "Pridruži se ekipi"
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Rezultati iskanja"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Rezultati iskanja za '%1'"
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Lahko si ogledate člane, statistiko in informacije o teh ekipah."
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Več kot 100 ekip ustreza vašemu iskanju. Prvih 100 je prikazanih."
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Konec rezultatov. %1 Če ne najdete ekipe, pravšnje za vas, lahko sami %"
-"2ustvarite ekipo%3."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr "Administracija ekipe za %1"
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "Uredi informacije o ekipi"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "Spremeni ime ekipe, URL, opis, tip ali državo"
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Seznam članov:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "besedilo"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Poglej imena in naslove elektronske pošte članov"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr "Poglej zgodovino sprememb:"
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr "Poglejte, kdaj so se člani pridružili ali zapustili to ekipo"
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr "Odgovorite na zahtevo po ustanoviteljstvu."
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Če ne odgovorite do %1, lahko %2 prevzame ustanoviteljstvo te ekipe."
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Odstrani neaktivne ali nezaželjene člane iz te ekipe"
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr "Prenesi ustanoviteljstvo na drugega člana"
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "Dodajte/odstranite administratorje ekipe"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr "Izbranim članom ekipe daj administratorske pravice za ekipo"
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "Odstrani ekipo"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "Dovoljeno le, če ekipa nima članov"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr "Ustvari ali upravljaj s sporočilnico ekipe"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Da to ekipo ustvarite na vseh BOINC projektih (sedanjih in prihodnjih), jo "
-"lahko spremenite v %1ekipo za ves BOINC%2."
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-"Administratorji ekipe so vabljeni, da se pridružijo in sodelujejo v Google %"
-"1boinc-team-founders%2 skupini."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Drugi viri za administratorje BOINC ekipe so na voljo na zunanji strani %"
-"1www.boincteams.com%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Ni možno brisati ekipe, ki ni prazna"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Ekipa %1 izbrisana"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Omejitev presežena:  Prikazanih je lahko le prvih 1000 članov."
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Člani %1"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "Ni bilo možno zapustiti ekipe"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Ekipa ne obstaja ali pa ji ne pripadate"
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "Zapusti %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Prosimo, upoštevajte preden zapustite ekipo:</strong>\n"
-"         <ul>\n"
-"         <li>Če zapustite ekipo, se lahko pozneje ponovno pridružite ali pa "
-"se po želji pridružite drugi ekipi\n"
-"         <li>Zapustitev ekipe na noben način ne vpliva na vašo osebno "
-"statistiko točk.\n"
-"         </ul>"
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Zapusti ekipo"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Odstranjevanje uporabnikov iz %1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 ni član %2"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 je bil odstranjen"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Odstrani člane iz %1"
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "Odstraniti?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Ime (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "Ni članov, ki bi bili primerni za odstranitev."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Odstrani uporabnike"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Ime ekipe"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Rezultati iskanja ekip"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"Ni bilo najdenih ekip, ki bi ustrezale vašim pogojem. Poskusite iskati "
-"znova."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Lahko pa %1ustvarite novo ekipo%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-"Sledeče ekipe ustrezajo enemu ali večim vašim iskalnim pogojem.\n"
-"            Da se pridružite ekipi, kliknite nanjeno ime, da greste na stran "
-"ekipe,\n"
-"               nato kliknite %1Pridruži se tej ekipi%2."
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "Spremenite vaše iskanje"
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-"Lahko se združite v ekipo z ljudmi s podobnimi interesi, iz iste države, "
-"podjetja ali šole."
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-"Uporabte ta obrazec, da najdete ekipe, ki bi lahko bile pravšnje za vas."
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "Trenutno %1me ne zanima%2 pridružitev k ekipi."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Omejitev presežena - Oprostite, samo prvih %1 elementov"
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Najboljši gostitelji"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Najboljših %1 ekip"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr "Ni %1 ekip"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Udeleženec od"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "Uporabnika dneva ni bil izbran."
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr "Uporabnik dneva za %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtri"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Uporabniško ime se začne z"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Katerikoli"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "S profilom?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Bodisi"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "V ekipi?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Čas prijave padajoče"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Povprečje točk padajoče"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Skupaj točk padajoče"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "iskalni niz mora vsebovati vsaj 3 znake"
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Rezultati iskanja uporabnikov"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Pridružen"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr "Nobeden uporabnik ne ustreza vašim kriterijem iskanja."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Uporabnik ni bil najden!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Podatki računa<br/>za %1<br/>Čas:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Ekipa:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Skupno točk ekipe:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Povprečno točk ekipe:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Ekipa: ni je"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Potrdite BOINC naslov elektronske pošte"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-"Prosim, obiščite sledečo povezavo, da potrdite elektronsko pošto vašega %1 "
-"računa:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Poslana potrditvena elektronska pošta"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-"Elektronska pošta je bila poslanana na %1. Obiščite vsebovano povezavo, da "
-"potrdite vaš naslov elektronske pošte."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Uporabnik ne obstaja."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Napaka v URL podatkih - potrditev naslova elektronske pošte ni mogoča"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Posodobitev podatkovne baze ni uspela - prosim, poskusite kasneje."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Potrdite naslov elektronske pošte"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Naslov elektronske pošte vašega računa je bil potrjen."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Ta uporabnik nima profila"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Profil: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Podatki računa"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Šibki ključ računa"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "ne najdem delovne enote"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Delovna enota %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "priznan rezultat"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "dodeljene točke"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "zadržano, čakajoč na dokončanje"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "minimalni kvorum"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "začetna replikacija"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "največje število napak/skupno/uspešnih opravil"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "napak"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "potrjevanje"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Čakajoče"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Glavna stran"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Avtorske pravice"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Ustvarjeno"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr "Vaše osebno ozadje."
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Povejte nam o vas. Poveste nam lahko iz kje ste, vašo starost, poklic, "
-"hobije ali karkoli drugega o vas."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Vaše mnenje o %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-"Povejte nam vaše misli o %1<ol>\n"
-"    <li>Zakaj poganjate %1?\n"
-"    <li>Kakšni so vaši pogled na projekt?\n"
-"    <li>Vaši predlogi?\n"
-"    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Barvna shema za grafiko"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maksimalno procesorja %za grafiko%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Poganjaj le izbrane aplikacije"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Če ni na voljo dela za izbrane aplikacije, sprejemate delo od drugih "
-"aplikacij?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(vse aplikacije)"
-
-#, fuzzy
-#~ msgid "Error:"
-#~ msgstr "Napaka"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Ustvarjanje računov je onemogočeno"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#, fuzzy
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "To velja za vse BOINC projekte, v katerih sodelujete. <br>\n"
-#~ "             Na računalnikih z več priklopljenimi projekti bodo uporabljene "
-#~ "nazadnje spremenjene nastavitve."
-
-#~ msgid "No such task"
-#~ msgstr "Ni takega opravila"
-
-#, fuzzy
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Računalnik je povezan na Internet približno vsakih %1 Pustite prazno ali 0, "
-#~ "če je vedno povezan. %2 BOINC bo poskusil vzdrževati vsaj toliko dela. %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Vzdržuj dovolj dela za dodatnih"
-
-#~ msgid "Update failed: "
-#~ msgstr "Posodobitev ni uspela:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Priskrbi %1omejen dostop%2 do vašega računa"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "OPOMBA: Če uporabljate BOINC različico 5.2 ali novejšo z BOINC Upraviteljem, "
-#~ "ne uporabljajte tega obrazca. Samo poženite BOINC, izberite Pripni projet "
-#~ "in vnesi naslov elektronske pošte in geslo."
-
-#, fuzzy
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#~ msgid "Search type"
-#~ msgstr "Tip iskanja"
-
-#~ msgid "User names starting with"
-#~ msgstr "Uporabniško ime se začne z"
-
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Vaš 'šibki ključ računa' vam dovoli pripeti računalnike na vaš račun pri tem "
-#~ "projektu, brez da bi se bilo možno prijaviti v račun ali ga kakorkoli "
-#~ "spremeniti."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Ta mehanizem deluje le pri projektih, ki so posodobili programsko opremo na "
-#~ "svojem strežniku na različico z datumom 7. december 2007 ali novejšo."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Vaš šibki uporabniški ključ za ta projekt je:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Da na danem gostitelju uporabite vaš šibki ključ računa, poiščite ali "
-#~ "ustvarite 'datoteko računov' za ta projekt. Ta datoteka ima obliko "
-#~ "<b>račun_URL_PROJEKTA.xml</b>.Datoteka računov za %1 je <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Če je potrebno, ustvarite to datoteko. Njeno vsebino nastavite na:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Vaš šibki ključ računa je funkcija vašega gesla. Če spremenite vaše geslo, "
-#~ "se vaš šibki ključ računa spremeni in vaš prejšnji šibki ključ računa "
-#~ "postane neveljaven."
-
-#~ msgid "Account key"
-#~ msgstr "Ključ računa"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Priskrbi poln dostop do vašega računa"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Uredi"
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Tema s tem ID %1 ne obstaja. Prosim, preverite povezavo in poskusite "
-#~ "znova."
-
-#~ msgid "Request not found"
-#~ msgstr "Prošnja ni najdena"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 vas je dodal(-a) kot prijatelja."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Podatki o računu za %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "ni uspelo ustvariti sporočilnice"
-
-#~ msgid "message board not found"
-#~ msgstr "sporočilnica ni najdena"
-
-#~ msgid "no such forum"
-#~ msgstr "ni takšnega foruma"
-
-#~ msgid "unknown command %1"
-#~ msgstr "neznan ukaz %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "NAPAKA: %1 ne obstaja!  Ne morem ustvariti kombo izbirnika.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Za zaščito spletne strani projekta pred smetjem, vas vljudno prosimo, da "
-#~ "napišete besedi, prikazani na sliki:<br>\n"
-
-#~ msgid "Last %1"
-#~ msgstr "Zadnjih %1"
-
-#~ msgid "CHARSET"
-#~ msgstr "nabor znakov"
-
-#~ msgid "Language symbol"
-#~ msgstr "Simbol jezika"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Delitev virov in grafika"
-
-#~ msgid "fll"
-#~ msgstr "fll"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Opravila za računalnik %1"
diff --git a/html/languages/translations/sv.po b/html/languages/translations/sv.po
new file mode 100644
index 0000000..ccba576
--- /dev/null
+++ b/html/languages/translations/sv.po
@@ -0,0 +1,6654 @@
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# ersi <erik-transifex at simmesgard.se>, 2015
+# Frans Ingelstam <02frasse11 at gmail.com>, 2016
+# Henrik Mattsson-Mårn <h at reglage.net>, 2016
+# Johan Holmström, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-20 12:14+0000\n"
+"Last-Translator: Johan Holmström\n"
+"Language-Team: Swedish (http://www.transifex.com/boinc/boinc/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "LANG_NAME_NATIVE"
+msgstr "English"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "English"
+
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Inbjudningskod"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "En giltig inbjudningskod krävs för att skapa ett konto."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "Namn"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Identifierar dig på vår webbsida. Använd ditt riktiga namn eller ett användarnamn."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "E-postadress"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "Det måste vara en giltig adress i form av 'namn at domän'."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Lösenord"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "Det måste vara åtminstånde %1 tecken"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Bekräfta lösenord"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "Land"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Välj det land du vill representera, om du vill."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Postnummer eller ZIP-kod"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "Frivillig"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Skapa konto"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "ePost-adress:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "glömt ePost-adress?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Lösenord:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "glömt lösenord?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Fortsätt vara inloggad"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Logga in"
+
+#: html/inc/bbcode_html.inc:10
+msgid "Bold text: [b]text[/b]  (alt+b)"
+msgstr "Fet text: [b]text[/b]  (alt+b)"
+
+#: html/inc/bbcode_html.inc:11
+msgid "Italic text: [i]text[/i]  (alt+i)"
+msgstr "Krusiv text: [i]text[/i]  (alt+i)"
+
+#: html/inc/bbcode_html.inc:12
+msgid "Underline text: [u]text[/u]  (alt+u)"
+msgstr "Understruken text: [u]text[/u]  (alt+u)"
+
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Genomstruken text: [s]text[/s]  (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
+msgid "Quote text: [quote]text[/quote]  (alt+q)"
+msgstr "Citerad text: [quote]text[/quote]  (alt+q)"
+
+#: html/inc/bbcode_html.inc:15
+msgid "Code display: [code]code[/code]  (alt+c)"
+msgstr "Kodvisning: [code]code[/code]  (alt+c)"
+
+#: html/inc/bbcode_html.inc:16
+msgid "List: [list]text[/list] (alt+l)"
+msgstr "Lista: [list]text[/list] (alt+l)"
+
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Sorterad lista: [list=1]text[/list]  (alt+o)"
+
+#: html/inc/bbcode_html.inc:18
+msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
+msgstr "Infoga bild: [img]http://image_url[/img]  (alt+p)"
+
+#: html/inc/bbcode_html.inc:19
+msgid ""
+"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
+msgstr "Infoga länk: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
+
+#: html/inc/bbcode_html.inc:24
+msgid "Font color"
+msgstr "Stilfärg"
+
+#: html/inc/bbcode_html.inc:25
+msgid ""
+"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
+msgstr "Stilfärg:[color=red]text[/color] Tips: du kan också använda color=#FF0000"
+
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
+msgid "Default"
+msgstr "Standard"
+
+#: html/inc/bbcode_html.inc:27
+msgid "Dark Red"
+msgstr "Mörkröd"
+
+#: html/inc/bbcode_html.inc:28
+msgid "Red"
+msgstr "Röd"
+
+#: html/inc/bbcode_html.inc:29
+msgid "Orange"
+msgstr "Orange"
+
+#: html/inc/bbcode_html.inc:30
+msgid "Brown"
+msgstr "Brun"
+
+#: html/inc/bbcode_html.inc:31
+msgid "Yellow"
+msgstr "Gul"
+
+#: html/inc/bbcode_html.inc:32
+msgid "Green"
+msgstr "Grön"
+
+#: html/inc/bbcode_html.inc:33
+msgid "Olive"
+msgstr "Oliv"
+
+#: html/inc/bbcode_html.inc:34
+msgid "Cyan"
+msgstr "Cyan"
+
+#: html/inc/bbcode_html.inc:35
+msgid "Blue"
+msgstr "Blå"
+
+#: html/inc/bbcode_html.inc:36
+msgid "Dark Blue"
+msgstr "Mörkblå"
+
+#: html/inc/bbcode_html.inc:37
+msgid "Indigo"
+msgstr "Indigo"
+
+#: html/inc/bbcode_html.inc:38
+msgid "Violet"
+msgstr "Violett"
+
+#: html/inc/bbcode_html.inc:40
+msgid "Font size"
+msgstr "Stilstorlek"
+
+#: html/inc/bbcode_html.inc:41
+msgid "Font size: [size=x-small]small text[/size]"
+msgstr "Stilstorlek: [size=x-small]iten text[/size]"
+
+#: html/inc/bbcode_html.inc:43
+msgid "Small"
+msgstr "Liten"
+
+#: html/inc/bbcode_html.inc:44
+msgid "Normal"
+msgstr "Normal"
+
+#: html/inc/bbcode_html.inc:45
+msgid "Large"
+msgstr "Stor"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close all open bbCode tags"
+msgstr "Stäng alla öppna bbCode-taggar"
+
+#: html/inc/bbcode_html.inc:48
+msgid "Close Tags"
+msgstr "Stäng taggar"
+
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Konto"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Gå med"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "Om %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Hjälp"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Projekt"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Delta"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Utför arbete"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Serverstatus"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "Statistik"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Applikationer"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Deltagare"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Datorer"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Lag"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "GPU modeller"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "CPU modeller"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Beräkning"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Gemenskap"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Forum"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "skapa eller gå med i ett lag"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Profiler"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Sök användare"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Dagens medlem"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Certifikat"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Webbplats"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Sök på webbplatsen"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Språk"
+
+#. names for the above
+#: html/inc/forum.inc:40
+msgid "Oldest first"
+msgstr "Äldsta först"
+
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
+msgid "Newest first"
+msgstr "Nyaste först"
+
+#: html/inc/forum.inc:42
+msgid "Highest rated posts first"
+msgstr "Högst rankade poster först"
+
+#: html/inc/forum.inc:44
+msgid "Newest post first"
+msgstr "Nyaste post först"
+
+#: html/inc/forum.inc:45
+msgid "Most views first"
+msgstr "Flest visningar först"
+
+#: html/inc/forum.inc:46
+msgid "Most posts first"
+msgstr "Flest postningar först"
+
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Volontärmoderator"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Projekt-administratör"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Projektutvecklare"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Projekttestare"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Volontärutvecklare"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Volontärtestare"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Projektforskare"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Hjälpdisk-expert"
+
+#. Search
+#: html/inc/forum.inc:132
+msgid "Search for words in forum messages"
+msgstr "Sök efter ord i forum-poster"
+
+#: html/inc/forum.inc:132
+msgid "Search forums"
+msgstr "Sök forum"
+
+#: html/inc/forum.inc:133
+msgid "Advanced search"
+msgstr "Avancerad sökning"
+
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
+msgid "Private messages"
+msgstr "Privata meddelanden"
+
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
+msgid "Questions and Answers"
+msgstr "Frågor & Svar"
+
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
+msgid "%1 message board"
+msgstr "%1 forum"
+
+#: html/inc/forum.inc:243 html/inc/result.inc:784
+msgid "Previous"
+msgstr "Tidigare"
+
+#: html/inc/forum.inc:281 html/inc/result.inc:793
+msgid "Next"
+msgstr "Nästa"
+
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
+msgid "Author"
+msgstr "Författare"
+
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
+msgid "Message"
+msgstr "Meddelande"
+
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Sänd meddelande"
+
+#: html/inc/forum.inc:590
+msgid "Send %1 a private message"
+msgstr "Skicka %1 ett privat meddelande"
+
+#: html/inc/forum.inc:591
+msgid "Joined: %1"
+msgstr "Gick med: %1"
+
+#: html/inc/forum.inc:600
+msgid "Posts: %1"
+msgstr "Inlägg: %1"
+
+#: html/inc/forum.inc:606
+msgid "Credit: %1"
+msgstr "Poäng: %1"
+
+#: html/inc/forum.inc:607
+msgid "RAC: %1"
+msgstr "RAC: %1"
+
+#: html/inc/forum.inc:637
+msgid "You haven't read this message yet"
+msgstr "Du har inte läst det här meddelandet än"
+
+#: html/inc/forum.inc:637
+msgid "Unread"
+msgstr "Oläst"
+
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
+msgid "Message %1"
+msgstr "Meddelande %1"
+
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
+msgid "hidden"
+msgstr "gömt"
+
+#: html/inc/forum.inc:642
+msgid "Posted: %1"
+msgstr "Postad: %1"
+
+#: html/inc/forum.inc:645
+msgid " - in response to "
+msgstr " - svar till "
+
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
+msgid "Edit"
+msgstr "Redigera"
+
+#: html/inc/forum.inc:648
+msgid "Edit this message"
+msgstr "Redigera detta meddelande"
+
+#: html/inc/forum.inc:654
+msgid "Last modified: %1"
+msgstr "Senast ändrat: %1"
+
+#: html/inc/forum.inc:657
+msgid ""
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Denna postlista visas ej därför att sändaren finns på din 'ignorerar'-lista. Klicka %1här%2 för att se denna post"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report this post as offensive"
+msgstr "Raportera denna post som stötande"
+
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
+msgid "Report as offensive"
+msgstr "Rapportera som stötande"
+
+#: html/inc/forum.inc:696
+msgid "Rating: %1"
+msgstr "Rankning: %1"
+
+#: html/inc/forum.inc:696
+msgid "rate: "
+msgstr "rank:"
+
+#: html/inc/forum.inc:699
+msgid "Click if you like this message"
+msgstr "Klicka om du gillar detta meddelande"
+
+#: html/inc/forum.inc:699
+msgid "Rate +"
+msgstr "Ranka +"
+
+#: html/inc/forum.inc:701
+msgid "Click if you don't like this message"
+msgstr "Klicka om du inte gillar detta meddelande"
+
+#: html/inc/forum.inc:701
+msgid "Rate -"
+msgstr "Ranka -"
+
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
+msgid "Reply"
+msgstr "Svara"
+
+#: html/inc/forum.inc:710
+msgid "Post a reply to this message"
+msgstr "Posta ett svar till det här meddelandet"
+
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
+msgid "Quote"
+msgstr "Citera"
+
+#: html/inc/forum.inc:713
+msgid "Post a reply by quoting this message"
+msgstr "Skriv ett svar genom att citera detta meddelande"
+
+#: html/inc/forum.inc:735
+msgid "Hidden by a moderator"
+msgstr "Dold av en moderator"
+
+#: html/inc/forum.inc:756
+msgid "Posted %1 by %2"
+msgstr "Skrivet %1 av %2"
+
+#: html/inc/forum.inc:776
+msgid "You may not post or rate messages until %1"
+msgstr "Du kan inte posta eller ranka meddelanden förän %1"
+
+#: html/inc/forum.inc:787
+msgid ""
+"\n"
+"        <ul>\n"
+"        <li> Posts must be 'kid friendly': they may not contain\n"
+"            content that is obscene, hate-related,\n"
+"            sexually explicit or suggestive.\n"
+"        <li> No commercial advertisements.\n"
+"        <li> No links to web sites involving sexual content,\n"
+"            gambling, or intolerance of others.\n"
+"        <li> No messages intended to annoy or antagonize other people,\n"
+"            or to hijack a thread.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
+"        <li> No abusive comments involving race, religion,\n"
+"            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
+"        "
+msgstr "\n<ul>\n<li>Inlägg måste vara 'barnvänliga': de får inte innehålla något som är motbjudande, hat-relaterat, sexuellt eller suggestivt.\n<li>Inga kommersiella annonser.\n<li>Inga länkar till webbplatser med sexuellt innehåll, hasardspel eller intolerans gentemot andra.\n<li>Inga meddelanden avsedda att irritera eller reta andra människor, eller att kapa en tråd.\n<li>Inga meddelanden som är medvetet fientliga, hotfulla eller kränkande.\n<li>Inga kränkande kommentarer som rör ras,  [...]
+
+#: html/inc/forum.inc:820
+msgid "Rules:"
+msgstr "Regler:"
+
+#: html/inc/forum.inc:821
+msgid "More info"
+msgstr "Mer info"
+
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
+msgid "Unhide"
+msgstr "Visa"
+
+#: html/inc/forum.inc:1119
+msgid "Unhide this post"
+msgstr "Visa denna post"
+
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
+msgid "Hide"
+msgstr "Dölj"
+
+#: html/inc/forum.inc:1121
+msgid "Hide this post"
+msgstr "Dölj denna post"
+
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
+msgid "Move"
+msgstr "Flytta"
+
+#: html/inc/forum.inc:1126
+msgid "Move post to a different thread"
+msgstr "Flytta post till en annan tråd"
+
+#: html/inc/forum.inc:1131
+msgid "Banish author"
+msgstr "Stäng av författaren"
+
+#: html/inc/forum.inc:1138
+msgid "Vote to banish author"
+msgstr "Rösta för att stänga av författaren"
+
+#: html/inc/forum.inc:1142
+msgid "Vote not to banish author"
+msgstr "Rösta för att inte stänga av författaren"
+
+#: html/inc/forum.inc:1147
+msgid "Start vote to banish author"
+msgstr "Starta omröstning om att stänga av författaren"
+
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Radera"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Radera denna post"
+
+#: html/inc/forum.inc:1192
+msgid "Only team members can post to the team message board"
+msgstr "Endast lagmedlemmar kan göra inlägg i lagets forum"
+
+#: html/inc/forum.inc:1202
+msgid ""
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "För att skapa en ny tråd i %1 måste du ha en viss nivå av genomsnittlig poäng. Detta för att skydda mot missbruk av systemet."
+
+#: html/inc/forum.inc:1209
+msgid ""
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Du kan inte skapa trådar just nu. Vänta innan du försöker igen. Detta för att skydda mot missbruk av systemet."
+
+#: html/inc/forum.inc:1216
+msgid ""
+"This thread is locked. Only forum moderators and administrators are allowed "
+"to post there."
+msgstr "Denna tråd är låst. Endast forummoderatorer och administratörer är tillåtna att posta där."
+
+#: html/inc/forum.inc:1221
+msgid "Can't post to a hidden thread."
+msgstr "Kan ej posta i en dold tråd."
+
+#: html/inc/forum.inc:1256
+msgid "Thread"
+msgstr "Tråd"
+
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
+msgid "Posts"
+msgstr "Poster"
+
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
+msgid "Views"
+msgstr "Visningar"
+
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
+msgid "Last post"
+msgstr "Senaste post"
+
+#: html/inc/forum.inc:1317
+msgid "New posts in the thread %1"
+msgstr "Nya poster i tråd %1"
+
+#: html/inc/forum.inc:1322
+msgid "New posts in subscribed thread"
+msgstr "Nya poster i prenumererad tråd"
+
+#: html/inc/forum.inc:1323
+msgid "There are new posts in the thread '%1'"
+msgstr "Det finns nya poster i tråden '%1'"
+
+#: html/inc/forum.inc:1333
+msgid "Mark all threads as read"
+msgstr "Markera alla trådar som lästa"
+
+#: html/inc/forum.inc:1334
+msgid "Mark all threads in all message boards as read."
+msgstr "Markera alla trådar i alla forum som lästa."
+
+#: html/inc/host.inc:25
+msgid "No host"
+msgstr "Ingen värd"
+
+#: html/inc/host.inc:27
+msgid "Unavailable"
+msgstr "Otillgänglig"
+
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
+msgid "Home"
+msgstr "Hem"
+
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
+msgid "Work"
+msgstr "Arbete"
+
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
+msgid "School"
+msgstr "Skola"
+
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Update"
+msgstr "Uppdatera"
+
+#: html/inc/host.inc:84
+msgid "Computer information"
+msgstr "Datorinformation"
+
+#: html/inc/host.inc:88 html/inc/host.inc:93
+msgid "IP address"
+msgstr "IP-adress"
+
+#: html/inc/host.inc:88
+msgid "(same the last %1 times)"
+msgstr "(samma de senaste %1 gångerna)"
+
+#: html/inc/host.inc:90
+msgid "External IP address"
+msgstr "Extern IP-adress"
+
+#: html/inc/host.inc:93
+msgid "Show IP address"
+msgstr "Visa IP-adress"
+
+#: html/inc/host.inc:95
+msgid "Domain name"
+msgstr "Domännamn"
+
+#: html/inc/host.inc:97
+msgid "Product name"
+msgstr "Produktnamn"
+
+#: html/inc/host.inc:101
+msgid "Local Standard Time"
+msgstr "Lokal standardtid"
+
+#: html/inc/host.inc:101
+msgid "UTC %1 hours"
+msgstr "UTC %1 timmar"
+
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
+msgid "Owner"
+msgstr "Ägare"
+
+#: html/inc/host.inc:107 html/inc/host.inc:358
+msgid "Anonymous"
+msgstr "Anonym"
+
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
+msgid "Created"
+msgstr "Skapades"
+
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
+msgid "Total credit"
+msgstr "Total poäng"
+
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
+msgid "Average credit"
+msgstr "Genomsnittlig poäng"
+
+#: html/inc/host.inc:115
+msgid "Cross project credit"
+msgstr "Projektöverskridande poäng"
+
+#: html/inc/host.inc:117
+msgid "CPU type"
+msgstr "CPU-typ"
+
+#: html/inc/host.inc:118
+msgid "Number of processors"
+msgstr "Antal processorer"
+
+#: html/inc/host.inc:120
+msgid "Coprocessors"
+msgstr "Hjälpprocessorer"
+
+#: html/inc/host.inc:122 html/inc/host.inc:703
+msgid "Operating System"
+msgstr "Operativsystem"
+
+#: html/inc/host.inc:125 html/inc/host.inc:231
+msgid "BOINC version"
+msgstr "BOINC-version"
+
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
+msgid "Memory"
+msgstr "Minne"
+
+#: html/inc/host.inc:129 html/inc/host.inc:139
+msgid "%1 MB"
+msgstr "%1 MB"
+
+#: html/inc/host.inc:133
+msgid "Cache"
+msgstr "Cache"
+
+#: html/inc/host.inc:133
+msgid "%1 KB"
+msgstr "%1 KB"
+
+#: html/inc/host.inc:139
+msgid "Swap space"
+msgstr "Växlingsfil"
+
+#: html/inc/host.inc:142
+msgid "Total disk space"
+msgstr "Totalt diskutrymme"
+
+#: html/inc/host.inc:142 html/inc/host.inc:145
+msgid "%1 GB"
+msgstr "%1 GB"
+
+#: html/inc/host.inc:145
+msgid "Free Disk Space"
+msgstr "Ledigt diskutrymme"
+
+#: html/inc/host.inc:149
+msgid "Measured floating point speed"
+msgstr "Uppmätt 'floating point' -hastighet"
+
+#: html/inc/host.inc:149 html/inc/host.inc:152
+msgid "%1 million ops/sec"
+msgstr "%1 miljon ops/sek"
+
+#: html/inc/host.inc:152
+msgid "Measured integer speed"
+msgstr "Uppmätt  heltals-hastighet"
+
+#: html/inc/host.inc:156 html/inc/host.inc:158
+msgid "Average upload rate"
+msgstr "Genomsnittslig uppladdningsranking"
+
+#: html/inc/host.inc:156 html/inc/host.inc:163
+msgid "%1 KB/sec"
+msgstr "%1 KB/s"
+
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
+msgid "Unknown"
+msgstr "Okänt"
+
+#: html/inc/host.inc:163 html/inc/host.inc:165
+msgid "Average download rate"
+msgstr "Genomsnittslig nedladdningsranking"
+
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
+msgid "Average turnaround time"
+msgstr "Genomsnittslig omvändningstid"
+
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
+msgid "%1 days"
+msgstr "%1 dagar"
+
+#: html/inc/host.inc:169
+msgid "Application details"
+msgstr "Applikationsdetaljer"
+
+#: html/inc/host.inc:170
+msgid "Show"
+msgstr "Visa"
+
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
+msgid "Tasks"
+msgstr "Uppgifter"
+
+#: html/inc/host.inc:184 html/inc/host.inc:206
+msgid "Number of times client has contacted server"
+msgstr "Antal tillfällen klienten har kontaktat server"
+
+#: html/inc/host.inc:185
+msgid "Last time contacted server"
+msgstr "Senaste tillfälle kontaktat server"
+
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "Fraktion av tid BOINC kör"
+
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "Medans BOINC kör, fraktion av tid datorn har en Internetanslutning"
+
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "Medans BOINC kör, fraktion av tid som beräkning är tillåten"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "Medans BOINC kör, fraktion av tid GPU-beräkning är tillåten"
+
+#: html/inc/host.inc:193
+msgid "Average CPU efficiency"
+msgstr "Genomsnittslig CPU-effektivitet"
+
+#: html/inc/host.inc:196
+msgid "Task duration correction factor"
+msgstr "Uppgifts varaktighets korrektionsfaktor"
+
+#: html/inc/host.inc:198 html/inc/host.inc:683
+msgid "Location"
+msgstr "Plats"
+
+#: html/inc/host.inc:200
+msgid "Delete this computer"
+msgstr "Radera denna dator"
+
+#: html/inc/host.inc:204
+msgid "Merge duplicate records of this computer"
+msgstr "Slå ihop dubbla poster av den här datorn"
+
+#: html/inc/host.inc:204
+msgid "Merge"
+msgstr "Slå ihop"
+
+#: html/inc/host.inc:207 html/inc/host.inc:706
+msgid "Last contact"
+msgstr "Senaste kontakt"
+
+#: html/inc/host.inc:220
+msgid "Computer info"
+msgstr "Datorinfo"
+
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
+msgid "Rank"
+msgstr "Rank"
+
+#: html/inc/host.inc:225 html/inc/host.inc:690
+msgid "Avg. credit"
+msgstr "Genomsnittlig poäng"
+
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
+msgid "Recent average credit"
+msgstr "Nyligen genomsnittlig poäng"
+
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
+msgid "CPU"
+msgstr "CPU"
+
+#: html/inc/host.inc:233 html/inc/host.inc:700
+msgid "GPU"
+msgstr "GPU"
+
+#: html/inc/host.inc:234
+msgid "Operating system"
+msgstr "Operativsystem"
+
+#: html/inc/host.inc:319
+msgid "(%1 processors)"
+msgstr "(%1 processorer)"
+
+#: html/inc/host.inc:338
+msgid "Details"
+msgstr "Detaljer"
+
+#: html/inc/host.inc:343
+msgid "Cross-project stats:"
+msgstr "Projektöverskridande statistik:"
+
+#: html/inc/host.inc:518
+msgid "Host %1 has overlapping lifetime:"
+msgstr "Enhet %1 har överlappande livstid:"
+
+#: html/inc/host.inc:525
+msgid "Host %1 has an incompatible OS:"
+msgstr "Värd %1 har ett inkompatibelt OS:"
+
+#: html/inc/host.inc:531
+msgid "Host %1 has an incompatible CPU:"
+msgstr "Värd %1 har en inkompatibel CPU"
+
+#: html/inc/host.inc:598
+msgid "same host"
+msgstr "samma värd"
+
+#: html/inc/host.inc:601
+msgid "Can't merge host %1 into %2 - they're incompatible"
+msgstr "Kan inte slå ihop enhet %1 med %2 - de är inte kompatibla"
+
+#: html/inc/host.inc:604
+msgid "Merging host %1 into host %2"
+msgstr "Slår ihop enhet %1 till enhet %2"
+
+#: html/inc/host.inc:621
+msgid "Couldn't update credit of new computer"
+msgstr "Kunde inte uppdatera poängen för en ny dator"
+
+#: html/inc/host.inc:625
+msgid "Couldn't update results"
+msgstr "Kunde ej uppdatera resultat"
+
+#: html/inc/host.inc:630
+msgid "Couldn't retire old computer"
+msgstr "Kunde inte pensionera gammal dator"
+
+#: html/inc/host.inc:632
+msgid "Retired old computer %1"
+msgstr "Pensionera gammal dator %1"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Show:"
+msgstr "Visa"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "All computers"
+msgstr "Alla datorer"
+
+#: html/inc/host.inc:655 html/inc/host.inc:658
+msgid "Only computers active in past 30 days"
+msgstr "Endast datorer aktiva de senaste 30 dagarna"
+
+#: html/inc/host.inc:671 html/inc/result.inc:702
+msgid "Computer ID"
+msgstr "Dator-ID"
+
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Modell"
+
+#: html/inc/host.inc:695
+msgid "BOINC<br>version"
+msgstr "BOINC<br>version"
+
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
+msgid "Merge computers by name"
+msgstr "Slå ihop enheter via namn"
+
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Diskutera"
+
+#: html/inc/news.inc:112
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "Nyheter finns tillgängliga som ett %sRSS feed%s"
+
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
+msgid "Inbox"
+msgstr "Inkorg"
+
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
+msgid "Write"
+msgstr "Skriv"
+
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Skicka meddelande till laget"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
+msgid "Preview"
+msgstr "Förhandsgranska"
+
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Ämne"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Sänd privat meddelande"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
+msgid "no such message"
+msgstr "inget sådant meddelande"
+
+#: html/inc/pm.inc:133
+msgid "To"
+msgstr "Till"
+
+#: html/inc/pm.inc:133
+msgid "User IDs or unique usernames, separated with commas"
+msgstr "Användar IDn eller unika användarnamn, separera med komman"
+
+#: html/inc/pm.inc:186
+msgid "sent you a private message; subject:"
+msgstr "har skickat ett privat meddelande; ämne:"
+
+#: html/inc/pm.inc:193
+msgid "Private message%1 from %2, subject:"
+msgstr "Privat meddelande %1 från %2, ämne:"
+
+#: html/inc/pm.inc:201
+msgid "Couldn't create message"
+msgstr "Kunde ej skapa meddelande"
+
+#: html/inc/pm.inc:239
+msgid ""
+"You are not allowed to send privates messages so often. Please wait some "
+"time before sending more messages."
+msgstr "Du är inte tillåten att sända privata meddelanden så ofta. Vänligen vänta en tid innan du sänder fler meddelanden."
+
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
+msgid "unread"
+msgstr "oläst"
+
+#: html/inc/pm.inc:259
+msgid "For email notification, %1edit community prefs%2"
+msgstr "För e-postnotiser, %1ändra gemenskapsinställningarna%2"
+
+#: html/inc/pm.inc:275
+msgid "Private message"
+msgstr "Privat meddelande"
+
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Användningsbegränsningar"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "Använd som mest"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
+msgid ""
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Håll en del CPU:er fria för andra program. Exempelvis: 75% betyder att 6 kärnor används på en 8-kärnig CPU."
+
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% av CPU:erna"
+
+#: html/inc/prefs.inc:63
+#, no-php-format
+msgid ""
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Försätt beräkning i vänteläge/återuppta med några sekunders mellanrum för att minska CPU-temperatur och energianvändning."
+
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% av CPU-tid"
+
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "När vänteläge ska inträffa"
+
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Försätt i vänteläge när datorn drivs av batteri"
+
+#: html/inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Kryssa i denna för att försätta beräkning i viloläge på bärbara när de körs på batteri."
+
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Försätt i vänteläge medan datorn används"
+
+#: html/inc/prefs.inc:77
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Kryssa i denna för att försätta beräkning och filöverföringar i vänteläge när du använder datorn."
+
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Försätt GPU-beräkning i vänteläge när datorn används"
+
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Kryssa i denna för att försätta GPU-beräkning i vänteläge medan du använder datorn."
+
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "”I användning” betyder mus/tangentbordsinmatning de senaste"
+
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Det här bestämmer när datorn anses vara ”i användning”."
+
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "minuter"
+
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Pausa efter ingen mus/tangentbords-inmatning senaste"
+
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Detta tillåter vissa datorer att gå ner i lågenergi-läge när den inte används."
+
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Försätt i vänteläge när icke-BOINC CPU-användning är högre än"
+
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Försätt beräkning i vänteläge när din dator är upptagen med att köra andra program."
+
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Beräkna endast mellan"
+
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Beräkna endast vid en speciell period varje dag."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Övrigt"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "Lagra minst"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Lagra minst så många uppgifter att datorn hålls upptagen så här länge."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "dagars arbete"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Lagra ytterligare upp till"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Lagra ytterligare uppgifter utöver miniminivån.  Bestäm hur mycket arbete som begärs när ett projekt kontaktas."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Växla mellan arbetsuppgifter var"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Om du kör ett flertal projekt, kommer BOINC att växla mellan dem såhär ofta."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "Begär att uppgifter ska lagra kontrollpunkt var"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Det här kontrollerar hur ofta uppgifter sparar sina resultat till disken, för att de senare kan fortsätta från den punkten."
+
+#: html/inc/prefs.inc:134
+msgid "seconds"
+msgstr "sekunder"
+
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Använd inte mer än"
+
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "Begränsa den totala mängden diskutrymme använt av BOINC."
+
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
+
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "Lämna åtminstone"
+
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "Begränsa diskutryme till att lämna så här mycket ledigt utrymme på volymen där BOINC lagrar data."
+
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "Fria GB"
+
+#: html/inc/prefs.inc:155
+msgid ""
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "Begränsa diskutrymmet i procent som BOINC använder på volymen där den lagrar data i."
+
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "%"
+
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "När datorn används, använd som mest"
+
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Begränsa minnet använt av BOINC medans du använder datorn."
+
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
+
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "När datorn inte används, använd som mest"
+
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Begränsa minnet använt av BOINC när du inte använder datorn."
+
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Lämna icke-GPU-uppgifter i minnet vid vänteläge"
+
+#: html/inc/prefs.inc:179
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Om ikryssad, stannar uppgifter i vänteläge i minnet och återupptas utan att något arbete gått förlorat. Om ej ikryssad tas uppgifter i vänteläge bort från minnet och återupptas från deras senaste kontrollpunkt."
+
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Växlingsfil: använd som mest"
+
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "Begränsa vaxlingsutrymmet (växlingsfilen) använd av BOINC."
+
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "Begränsa hämtningshastighet till"
+
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Begränsa hämtningshastigheten för filöverföringar."
+
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/Sekund"
+
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Begränsa sändningshastigheten till"
+
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Begränsa sändningshastigheten för filöverföringar."
+
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Begränsa användning till"
+
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Exempel: BOINC skall överföra som mest 2000 MB data varje 30 dagar."
+
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB var"
+
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "dagar"
+
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Överför filer endast mellan"
+
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Överför filer endast under en speciell tidsperiod var dag."
+
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Hoppa över dataverifiering för bildfiler"
+
+#: html/inc/prefs.inc:223
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "Välj bara detta om din Internetleverantör modifierar bildfiler. Att skippa verifikation reducerar säkerheten för BOINC negativt."
+
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "Bekräfta innan anslutning till Internet"
+
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Användbart endast om du har modem-, ISDN- eller VPN-anslutning."
+
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Avbryt anslutning när klar"
+
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Disk"
+
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Nätverk"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Dessa inställningar börjar gälla för alla BOINC-projekt som du deltar i."
+
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Kunde inte uppdatera inställningarna.%2 Värdena som är rödmarkerade var utanför tillåtet värde eller inte ett nummer."
+
+#: html/inc/prefs.inc:494
+msgid "Separate preferences for %1"
+msgstr "Separata inställningar för %1"
+
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
+msgid "Edit preferences"
+msgstr "Redigera inställningar"
+
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Ta bort"
+
+#: html/inc/prefs.inc:508
+msgid "Add separate preferences for %1"
+msgstr "Lägg till separata inställningar för %1"
+
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Dessa inställningar gäller för alla datorer anslutna till detta konto förutom"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "datorer där du har gjort lokala inställningar med hjälp av BOINC Manager"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Androidenheter"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
+msgstr "(Byt vy)"
+
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
+msgid "Combined preferences"
+msgstr "Kombinerade inställningar"
+
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
+msgid "Primary (default) preferences"
+msgstr "Primära (standard) inställningar"
+
+#: html/inc/prefs.inc:546
+msgid "Preferences last modified:"
+msgstr "Inställningar senast ändrade: "
+
+#: html/inc/prefs.inc:562
+msgid "Add preferences"
+msgstr "Lägg till inställningar"
+
+#: html/inc/prefs.inc:566
+msgid "Update preferences"
+msgstr "Uppdatera inställningar"
+
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "ja"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "nej"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
+msgid "Default computer location"
+msgstr "Standardplats för datorer"
+
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Ny datorer kommer att använda denna plats för beräkning- och projektspecifika inställningar."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Resursfördelning"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Används för att avgöra resurstilldelningen till detta projekt. Exempel: Om du deltar i två BOINC projekt med resursfördelningarna 100 och 200, då kommer det först projektet att tilldelas 1/3 av resurserna och det andra projektet kommer att få 2/3 av resurserna."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "Snabba på GPU uppgifter genom att dedikera en processorkärna till varje?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "Använd CPU"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "Använd ATI GPU"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "Använd NVIDIA GPU"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Använd Intel GPU"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Använd test applikationer?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Detta hjälper oss att utveckla applikationerna, men kan innebära att jobb misslyckas på din dator"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "E-post kommer att skickas från %1; kontroller att till skräppostfilter accepterar denna adress."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Är det OK för %1 och ditt lag (om något) att skicka e-post till dig?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "Ska %1 visa dina datorer på dess webbplats?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(Byt vy)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Projektspecifika inställningar"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "dålig plats: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "dålig delmängd: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
+msgid "and"
+msgstr "och"
+
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "ingen gräns"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Lägg till"
+
+#: html/inc/profile.inc:85
+msgid ""
+"Your profile will be made visible to other people as soon as it has been "
+"approved by the project. This may take up to a few days."
+msgstr "Din profil kommer att bli synlig för andra användare så fort den godkänts av projektet. Detta kan ta upp till några dagar."
+
+#: html/inc/profile.inc:91
+msgid ""
+"Your profile has been marked as unacceptable. It is not visible to other "
+"people. Please change it."
+msgstr "Denna profil har markerats som oacceptabel. Den är inte synlig för andra användare. Vänligen ändra den."
+
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
+msgid "Database error"
+msgstr "Databasfel"
+
+#: html/inc/profile.inc:194
+msgid ""
+"To prevent spam, profiles of users with an average credit of less than %1 "
+"are displayed only to logged-in users. We apologize for this inconvenience."
+msgstr "För att motverka spam så visas endast profiler för användare med mindre än %1 poäng endast för de som är inloggade. Vi ber om ursäkt för besväret."
+
+#: html/inc/profile.inc:198
+msgid "User is banished"
+msgstr "Användaren är avstängd"
+
+#: html/inc/profile.inc:212
+msgid "No profile exists for that user ID."
+msgstr "Ingen profil finns för detta användar ID"
+
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
+msgid "Edit your profile"
+msgstr "Redigera din profil"
+
+#: html/inc/profile.inc:267
+msgid "Your feedback on this profile"
+msgstr "Din återkoppling rörande denna profil"
+
+#: html/inc/profile.inc:269
+msgid "Recommend this profile for User of the Day:"
+msgstr "Rekommendera denna profil som \"Dagens användare\":"
+
+#: html/inc/profile.inc:270
+msgid "I %1like%2 this profile"
+msgstr "Jag %1gillar%2 denna profil"
+
+#: html/inc/profile.inc:273
+msgid "Alert administrators to an offensive profile:"
+msgstr "Meddela administratörerna om en kränkande/olämplig profil:"
+
+#: html/inc/profile.inc:274
+msgid "I %1do not like%2 this profile"
+msgstr "Jag %1tycker inte om%2 denna profil"
+
+#: html/inc/result.inc:58
+msgid "Anonymous platform"
+msgstr "Anonym plattform"
+
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
+msgid "NVIDIA GPU"
+msgstr "NVIDIA GPU"
+
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
+msgid "ATI GPU"
+msgstr "ATI GPU"
+
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
+msgid "Intel GPU"
+msgstr "Intel GPU"
+
+#: html/inc/result.inc:105
+msgid "pending"
+msgstr "väntar"
+
+#: html/inc/result.inc:128 html/user/forum_search.php:62
+msgid "All"
+msgstr "Alla"
+
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
+msgid "In progress"
+msgstr "Under arbete"
+
+#: html/inc/result.inc:130
+msgid "Validation pending"
+msgstr "Inväntar validering"
+
+#: html/inc/result.inc:131
+msgid "Validation inconclusive"
+msgstr "Validering inte avgjord"
+
+#: html/inc/result.inc:132 html/inc/result.inc:282
+msgid "Valid"
+msgstr "Godkänd"
+
+#: html/inc/result.inc:133 html/inc/result.inc:285
+msgid "Invalid"
+msgstr "Inte godkänd"
+
+#: html/inc/result.inc:134 html/inc/result.inc:223
+msgid "Error"
+msgstr "Fel"
+
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
+msgid "Inactive"
+msgstr "Inaktiv"
+
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
+msgid "Unsent"
+msgstr "Ej skickad"
+
+#: html/inc/result.inc:195
+msgid "Completed, waiting for validation"
+msgstr "Färdig, inväntar validering"
+
+#: html/inc/result.inc:196
+msgid "Completed and validated"
+msgstr "Färdig och godkänd"
+
+#: html/inc/result.inc:197
+msgid "Completed, marked as invalid"
+msgstr "Färdig, markerad som inte godkänd"
+
+#: html/inc/result.inc:198
+msgid "Completed, can't validate"
+msgstr "Färdig, kan inte validera"
+
+#: html/inc/result.inc:199
+msgid "Completed, validation inconclusive"
+msgstr "Färdig, validering inte avgjord"
+
+#: html/inc/result.inc:200
+msgid "Completed, too late to validate"
+msgstr "Färdig, för sen för att validera"
+
+#: html/inc/result.inc:202
+msgid "Completed"
+msgstr "Färdig"
+
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
+msgid "Couldn't send"
+msgstr "Kunde inte skicka"
+
+#: html/inc/result.inc:208 html/inc/result.inc:271
+msgid "Cancelled by server"
+msgstr "Avbruten av servern"
+
+#: html/inc/result.inc:213
+msgid "Not started by deadline - canceled"
+msgstr "Inte startad före tidsfristen - avbruten"
+
+#: html/inc/result.inc:216
+msgid "Error while downloading"
+msgstr "Fel vid nedladdning"
+
+#: html/inc/result.inc:218
+msgid "Error while computing"
+msgstr "Fel vid analys"
+
+#: html/inc/result.inc:219
+msgid "Error while uploading"
+msgstr "Fel vid uppladdning"
+
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "Avbruten"
+
+#: html/inc/result.inc:221 html/inc/result.inc:274
+msgid "Upload failed"
+msgstr "Skicka misslyckades"
+
+#: html/inc/result.inc:224
+msgid "Timed out - no response"
+msgstr "Tidsfristen gick ut - inget svar"
+
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
+msgid "Didn't need"
+msgstr "Behövdes inte"
+
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
+msgid "Validate error"
+msgstr "Valideringsfel"
+
+#: html/inc/result.inc:227 html/inc/result.inc:256
+msgid "Abandoned"
+msgstr "Övergiven"
+
+#: html/inc/result.inc:238 html/user/explain_state.php:43
+msgid "Over"
+msgstr "Klar"
+
+#: html/inc/result.inc:246 html/user/explain_state.php:59
+msgid "Success"
+msgstr "Lyckad"
+
+#: html/inc/result.inc:250
+msgid "Computation error"
+msgstr "Beräkningsfel"
+
+#: html/inc/result.inc:252
+msgid "Redundant result"
+msgstr "Överflödigt resultat"
+
+#: html/inc/result.inc:253 html/user/explain_state.php:68
+msgid "No reply"
+msgstr "Inget svar"
+
+#: html/inc/result.inc:263 html/user/explain_state.php:85
+msgid "New"
+msgstr "Ny"
+
+#: html/inc/result.inc:264 html/user/explain_state.php:91
+msgid "Downloading"
+msgstr "Hämtar"
+
+#: html/inc/result.inc:265
+msgid "Processing"
+msgstr "Analyserar"
+
+#: html/inc/result.inc:266
+msgid "Compute error"
+msgstr "Beräkningsfel"
+
+#: html/inc/result.inc:267 html/user/explain_state.php:97
+msgid "Uploading"
+msgstr "Skickar"
+
+#: html/inc/result.inc:268 html/user/explain_state.php:88
+msgid "Done"
+msgstr "Färdig"
+
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Avbruten av användare"
+
+#: html/inc/result.inc:281
+msgid "Initial"
+msgstr "Inledande"
+
+#: html/inc/result.inc:287
+msgid "Not necessary"
+msgstr "Inte nödvändig"
+
+#: html/inc/result.inc:288
+msgid "Workunit error - check skipped"
+msgstr "Arbetsenhetsfel - kontroll överhoppad"
+
+#: html/inc/result.inc:289
+msgid "Checked, but no consensus yet"
+msgstr "Kontrollerad, ingen consensus än"
+
+#: html/inc/result.inc:290
+msgid "Task was reported too late to validate"
+msgstr "Uppgiften rapporterades för sent för att valideras"
+
+#: html/inc/result.inc:316
+msgid "Couldn't send result"
+msgstr "Kunde inte skicka resultat"
+
+#: html/inc/result.inc:320
+msgid "Too many errors (may have bug)"
+msgstr "För många fel (kan vara felaktig)"
+
+#: html/inc/result.inc:324
+msgid "Too many results (may be nondeterministic)"
+msgstr "För många resultat (kan vara icke deterministisk)"
+
+#: html/inc/result.inc:328
+msgid "Too many total results"
+msgstr "För många resultat totalt"
+
+#: html/inc/result.inc:332
+msgid "WU cancelled"
+msgstr "Arbetsenhet avbruten"
+
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Kanoniskt resultat saknas"
+
+#: html/inc/result.inc:340
+msgid "Unrecognized Error: %1"
+msgstr "Okänt fel: %1"
+
+#: html/inc/result.inc:369
+msgid "Task name"
+msgstr "Uppgiftsnamn"
+
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
+msgid "click for details"
+msgstr "klicka för detaljer"
+
+#: html/inc/result.inc:369
+msgid "Show IDs"
+msgstr "Visa IDn"
+
+#: html/inc/result.inc:374
+msgid "Show names"
+msgstr "Visa namn"
+
+#: html/inc/result.inc:377 html/user/result.php:36
+msgid "Task"
+msgstr "Uppgift"
+
+#: html/inc/result.inc:380
+msgid "Work unit"
+msgstr "Arbetsenhet"
+
+#: html/inc/result.inc:391
+msgid "Computer"
+msgstr "Dator"
+
+#: html/inc/result.inc:394 html/inc/result.inc:695
+msgid "Sent"
+msgstr "Skickad"
+
+#: html/inc/result.inc:395
+msgid "Time reported<br />or deadline"
+msgstr "Rapporterad tid<br />eller tidsfrist"
+
+#: html/inc/result.inc:396
+msgid "explain"
+msgstr "förklara"
+
+#: html/inc/result.inc:397 html/user/server_status.php:112
+msgid "Status"
+msgstr "Status"
+
+#: html/inc/result.inc:401
+msgid "Run time<br />(sec)"
+msgstr "Körtid<br />(s)"
+
+#: html/inc/result.inc:402
+msgid "CPU time<br />(sec)"
+msgstr "Processor tid<br />(s)"
+
+#: html/inc/result.inc:403 html/inc/result.inc:706
+msgid "Credit"
+msgstr "Poäng"
+
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
+msgid "Application"
+msgstr "Program"
+
+#: html/inc/result.inc:693
+msgid "Workunit"
+msgstr "Arbetsenhet"
+
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Rapporteringstidsgräns"
+
+#: html/inc/result.inc:697
+msgid "Received"
+msgstr "Mottagit"
+
+#: html/inc/result.inc:698
+msgid "Server state"
+msgstr "Servertillstånd"
+
+#: html/inc/result.inc:699
+msgid "Outcome"
+msgstr "Resultat"
+
+#: html/inc/result.inc:700
+msgid "Client state"
+msgstr "Enhetstillstånd"
+
+#: html/inc/result.inc:701
+msgid "Exit status"
+msgstr "Avsluts status"
+
+#: html/inc/result.inc:703
+msgid "Run time"
+msgstr "Körtid"
+
+#: html/inc/result.inc:704
+msgid "CPU time"
+msgstr "CPU-tid"
+
+#: html/inc/result.inc:705
+msgid "Validate state"
+msgstr "Valideringsstatus"
+
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "Enhetens störst flyttalshastighet"
+
+#: html/inc/result.inc:708
+msgid "Application version"
+msgstr "Applikations version"
+
+#: html/inc/result.inc:733
+msgid "Output files"
+msgstr "Resultatfiler"
+
+#: html/inc/result.inc:736
+msgid "Stderr output"
+msgstr "Stderr logg"
+
+#: html/inc/result.inc:795
+msgid "State"
+msgstr "Tillstånd"
+
+#: html/inc/result.inc:836
+msgid "Task name:"
+msgstr "Uppgiftsnamn:"
+
+#: html/inc/team.inc:40
+msgid "Search criteria (use one or more)"
+msgstr "Sökkriterier (använd en eller flera)"
+
+#: html/inc/team.inc:42
+msgid "Key words"
+msgstr "Nyckelord"
+
+#: html/inc/team.inc:42
+msgid "Find teams with these words in their names or descriptions"
+msgstr "Hitta lag med dessa ord i sitt namn eller beskrivningar"
+
+#: html/inc/team.inc:50 html/inc/team.inc:465
+msgid "Type of team"
+msgstr "Typ av lag"
+
+#: html/inc/team.inc:52
+msgid "Show only active teams"
+msgstr "Visa bara aktiva lag"
+
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
+msgid "Search"
+msgstr "Sök"
+
+#: html/inc/team.inc:62
+msgid "Requested by you, and founder response deadline has passed."
+msgstr "Begärt av dig och grundarens tidsfrist har gått ut."
+
+#: html/inc/team.inc:64
+msgid "Complete foundership transfer"
+msgstr "Slutför överföring av grundarstatus"
+
+#: html/inc/team.inc:68
+msgid "Requested by you"
+msgstr "Begärt av dig"
+
+#: html/inc/team.inc:68
+msgid "founder response deadline is %1"
+msgstr "Grundarens tidsfrist är %1"
+
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
+msgid "None"
+msgstr "Ingen"
+
+#: html/inc/team.inc:75
+msgid "Initiate request"
+msgstr "Initiera begäran"
+
+#: html/inc/team.inc:78
+msgid "Deferred"
+msgstr "Uppskjuten"
+
+#: html/inc/team.inc:92
+msgid "Team info"
+msgstr "Laginformation"
+
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
+msgid "Description"
+msgstr "Beskrivning"
+
+#: html/inc/team.inc:107
+msgid "Web site"
+msgstr "Webbsida"
+
+#: html/inc/team.inc:133
+msgid "Cross-project stats"
+msgstr "Projektöverskridande statistik"
+
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
+msgid "Type"
+msgstr "Typ"
+
+#: html/inc/team.inc:140 html/user/team_manage.php:67
+msgid "Message board"
+msgstr "Forum"
+
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
+msgid "Threads"
+msgstr "Trådar"
+
+#: html/inc/team.inc:149
+msgid "Join this team"
+msgstr "Gå med i detta lag"
+
+#: html/inc/team.inc:150
+msgid ""
+"Note: if 'OK to email' is set in your project preferences, joining a team "
+"gives its founder access to your email address."
+msgstr "Notera: Lagets grundare kommer att få ta del av till din e-postadress om du sagt \"OK att ta emot e-post\" i dina projekt-inställningar."
+
+#: html/inc/team.inc:153
+msgid "Not accepting new members"
+msgstr "Accepterar inte nya medlemmar"
+
+#: html/inc/team.inc:160
+msgid "Foundership change requested"
+msgstr "Ändring av lagets grundare begärd"
+
+#: html/inc/team.inc:161
+msgid "Respond by %1"
+msgstr "Svara inom %1"
+
+#: html/inc/team.inc:165
+msgid "Team foundership change"
+msgstr "Byt laggrundare"
+
+#: html/inc/team.inc:169 html/inc/team.inc:370
+msgid "Members"
+msgstr "Medlemmar"
+
+#: html/inc/team.inc:170 html/inc/team.inc:265
+msgid "Founder"
+msgstr "Grundare"
+
+#: html/inc/team.inc:184
+msgid "Admins"
+msgstr "Administratörer"
+
+#: html/inc/team.inc:199
+msgid "New members in last day"
+msgstr "Nya medlemmar senaste dagen"
+
+#: html/inc/team.inc:200
+msgid "Total members"
+msgstr "Totalt antal medlemmar"
+
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
+msgid "view"
+msgstr "visa"
+
+#: html/inc/team.inc:201
+msgid "Active members"
+msgstr "Aktiva medlemmar"
+
+#: html/inc/team.inc:202
+msgid "Members with credit"
+msgstr "Medlemmar med poäng"
+
+#: html/inc/team.inc:267
+msgid "Admin"
+msgstr "Administratör"
+
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
+msgid "Previous %1"
+msgstr "Föregående %1"
+
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
+msgid "Next %1"
+msgstr "Nästa %1"
+
+#: html/inc/team.inc:300
+msgid "No such team."
+msgstr "Inget sådant lag."
+
+#: html/inc/team.inc:313
+msgid "This operation requires foundership."
+msgstr "Denna åtgärd kräver grundarstatus."
+
+#: html/inc/team.inc:337
+msgid "This operation requires team admin privileges"
+msgstr "Denna åtgärd kräver lagadministratörsrättighet"
+
+#: html/inc/team.inc:434
+msgid ""
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "Varning: Detta är ett BOINC-omspännande lag. Om du gör ändring här så kommer de snart att skrivas över. Ändra det %1BOINC-omspännande laget%2 istället."
+
+#: html/inc/team.inc:440
+msgid ""
+"%1Privacy note%2: if you create a team, your project preferences (resource "
+"share, graphics preferences) will be visible to the public."
+msgstr "%1Integritetsnotering%2: Om du skapar ett lag så kommer dina projekt-inställningar (resursfördelning, grafikinställning) att bli publikt synliga."
+
+#: html/inc/team.inc:444
+msgid "Team name, text version"
+msgstr "Lagnamn, textversion"
+
+#: html/inc/team.inc:445
+msgid "Don't use HTML tags."
+msgstr "Använd inte HTML-taggar."
+
+#: html/inc/team.inc:448
+msgid "Team name, HTML version"
+msgstr "Lagnamn, HTML-version"
+
+#: html/inc/team.inc:450 html/inc/team.inc:460
+msgid "You may use %1limited HTML tags%2."
+msgstr "Du kan använda %1begränsade HTML-taggar%2."
+
+#: html/inc/team.inc:451
+msgid "If you don't know HTML, leave this box blank."
+msgstr "Om du inte kan HTML så lämna denna ruta tom."
+
+#: html/inc/team.inc:454
+msgid "URL of team web page, if any"
+msgstr "URL till lagets webbsida, om någon finns"
+
+#: html/inc/team.inc:454
+msgid "without \"http://\""
+msgstr "utan \"http://\""
+
+#: html/inc/team.inc:455
+msgid "This URL will be linked to from the team's page on this site."
+msgstr "Denna URL kommer att länkas från lagets sida på denna webbplats."
+
+#: html/inc/team.inc:458
+msgid "Description of team"
+msgstr "Beskrivning av laget"
+
+#: html/inc/team.inc:474
+msgid "Accept new members?"
+msgstr "Acceptera nya medlemmar?"
+
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Företag"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "Grundskola"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Gymnasieskola"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Högskoleförberedande"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Universitet eller avdelning"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Statlig myndighet"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "Ideell organisation"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "Nationell"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Lokala/regional"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Typ av dator"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Social/politisk/religiös"
+
+#: html/inc/uotd.inc:30
+msgid "User profile"
+msgstr "Användarprofil"
+
+#: html/inc/user.inc:118
+msgid "Projects in which you are participating"
+msgstr "Projekt du deltar i"
+
+#: html/inc/user.inc:120
+msgid "Projects in which %1 is participating"
+msgstr "Projekt som %1 deltar i"
+
+#: html/inc/user.inc:125
+msgid "Click for user page"
+msgstr "Klicka för användarsida"
+
+#: html/inc/user.inc:128
+msgid "Since"
+msgstr "Sedan"
+
+#: html/inc/user.inc:155
+msgid "Computing and credit"
+msgstr "Datorer och poäng"
+
+#: html/inc/user.inc:158
+msgid "Computers on this account"
+msgstr "Datorer anslutna till detta konto"
+
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
+msgid "View"
+msgstr "Visa"
+
+#: html/inc/user.inc:168
+msgid "Cross-project ID"
+msgstr "ID för identifiering mellan projekt"
+
+#: html/inc/user.inc:169
+msgid "Cross-project statistics"
+msgstr "Projektöverskridande statistik"
+
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
+msgid "Team"
+msgstr "Lag"
+
+#: html/inc/user.inc:174
+msgid "Cross-project"
+msgstr "Projektöverskridande"
+
+#: html/inc/user.inc:176
+msgid "Stats on your cell phone"
+msgstr "Statistik på din mobil"
+
+#: html/inc/user.inc:201
+msgid "Account information"
+msgstr "Kontoinformation"
+
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
+msgid "Email address"
+msgstr "ePost-adress"
+
+#: html/inc/user.inc:214 html/inc/user.inc:413
+msgid "URL"
+msgstr "URL"
+
+#: html/inc/user.inc:217
+msgid "Postal code"
+msgstr "Postnummer"
+
+#: html/inc/user.inc:218 html/inc/user.inc:407
+msgid "%1 member since"
+msgstr "%1 medlem sedan"
+
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
+msgid "Change"
+msgstr "Ändra"
+
+#: html/inc/user.inc:228
+msgid "email address"
+msgstr "e-postadress"
+
+#: html/inc/user.inc:229
+msgid "password"
+msgstr "lösenord"
+
+#: html/inc/user.inc:230
+msgid "other account info"
+msgstr "övrig kontoinformation"
+
+#: html/inc/user.inc:233 html/inc/user.inc:406
+msgid "User ID"
+msgstr "Användar ID"
+
+#: html/inc/user.inc:233
+msgid "Used in community functions"
+msgstr "Används i gemenskapsfunktioner"
+
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
+msgid "Account keys"
+msgstr "Kontonycklar"
+
+#: html/inc/user.inc:241
+msgid "Preferences"
+msgstr "Inställningar"
+
+#: html/inc/user.inc:244
+msgid "When and how BOINC uses your computer"
+msgstr "När och hur BOINC använder din dator"
+
+#: html/inc/user.inc:245
+msgid "Computing preferences"
+msgstr "Inställningar för datoranvändning"
+
+#: html/inc/user.inc:248
+msgid "Message boards and private messages"
+msgstr "Forum och privata meddelanden"
+
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
+msgid "Community preferences"
+msgstr "Gemenskapsinställningar"
+
+#: html/inc/user.inc:252
+msgid "Preferences for this project"
+msgstr "Inställningar för detta projekt"
+
+#: html/inc/user.inc:253 html/user/prefs.php:30
+msgid "%1 preferences"
+msgstr "%1 inställningar"
+
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "Visa profilen för %1"
+
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Profil"
+
+#: html/inc/user.inc:327
+msgid "Create"
+msgstr "Skapa"
+
+#: html/inc/user.inc:334 html/inc/user.inc:473
+msgid "%1 posts"
+msgstr "%1 inlägg"
+
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
+msgid "Notifications"
+msgstr "Aviseringar"
+
+#: html/inc/user.inc:358
+msgid "Quit team"
+msgstr "Lämna laget"
+
+#: html/inc/user.inc:360 html/inc/user.inc:377
+msgid "Administer"
+msgstr "Administrera"
+
+#: html/inc/user.inc:366 html/inc/user.inc:379
+msgid "(foundership change request pending)"
+msgstr "(väntar på förfrågan om ändring av grundare)"
+
+#: html/inc/user.inc:368
+msgid "Member of team"
+msgstr "Medlem i lag"
+
+#: html/inc/user.inc:370
+msgid "find a team"
+msgstr "hitta ett lag"
+
+#: html/inc/user.inc:381
+msgid "Founder but not member of"
+msgstr "Grundare av men inte medlem i"
+
+#: html/inc/user.inc:387
+msgid "Find friends"
+msgstr "Hitta vänner"
+
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
+msgid "Friends"
+msgstr "Vänner"
+
+#: html/inc/user.inc:428 html/inc/user.inc:434
+msgid "Donor"
+msgstr "Givare"
+
+#: html/inc/user.inc:477
+msgid "Contact"
+msgstr "Kontakta"
+
+#: html/inc/user.inc:480
+msgid "This person is a friend"
+msgstr "Denna person är en vän"
+
+#: html/inc/user.inc:481 html/user/friend.php:240
+msgid "Cancel friendship"
+msgstr "Avbryt vänskapen"
+
+#: html/inc/user.inc:484 html/user/friend.php:39
+msgid "Request pending"
+msgstr "Avvaktar begäran"
+
+#: html/inc/user.inc:486
+msgid "Add as friend"
+msgstr "Lägg till som vän"
+
+#: html/inc/user.inc:545
+msgid "user name cannot have leading or trailing white space"
+msgstr "användarnamn kan inte börja med eller avslutas av blanksteg"
+
+#: html/inc/user.inc:549
+msgid "user name must be nonempty"
+msgstr "användarnamn får inte vara tomt"
+
+#: html/inc/user.inc:553
+msgid "user name may not contain HTML tags"
+msgstr "användarnamn kan inte innehålla HTML-taggar"
+
+#: html/inc/util.inc:163
+msgid "log out"
+msgstr "logga ut"
+
+#: html/inc/util.inc:165
+msgid "log in"
+msgstr "logga in"
+
+#: html/inc/util.inc:269
+msgid "Create an account"
+msgstr "Skapa ett konto"
+
+#: html/inc/util.inc:270
+msgid "Server status page"
+msgstr "Serverstatus"
+
+#: html/inc/util.inc:313
+msgid ""
+"A database error occurred while handling your request; please try again "
+"later."
+msgstr "Ett databasfel inträffade vid behandling av din förfrågan, vänligen försök igen senare."
+
+#: html/inc/util.inc:322
+msgid "Unable to handle request"
+msgstr "Kan inte behandla förfrågan"
+
+#: html/inc/util.inc:342
+msgid "hours"
+msgstr "timmar"
+
+#: html/inc/util.inc:345
+msgid "min"
+msgstr "minsta"
+
+#: html/inc/util.inc:348
+msgid "sec"
+msgstr "sekunder"
+
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Tidsgränsen för begäran överskreds. Vänligen klicka bakåt, ladda om sidan och försök igen."
+
+#: html/inc/util.inc:606
+msgid "Use BBCode tags to format your text"
+msgstr "Använd BBCode-taggar för att formatera din text"
+
+#: html/inc/util.inc:853
+msgid "Project down for maintenance"
+msgstr "Projektet avstängt för underhåll"
+
+#: html/inc/util.inc:856
+msgid "%1 is temporarily shut down for maintenance.  Please try again later."
+msgstr "%1 är tillfälligt avstängt för underhåll. Vänligen försök igen senare."
+
+#: html/inc/util.inc:874
+msgid "Unable to connect to database - please try again later"
+msgstr "Kan inte ansluta till databasen - vänligen försök igen senare"
+
+#: html/inc/util.inc:878
+msgid "Unable to select database - please try again later"
+msgstr "Kan inte välja databas - vänligen försök igen senare"
+
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "tecken kvar"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
+msgid "Stay logged in on this computer"
+msgstr "Fortsätt vara inloggad på denna dator"
+
+#: html/user/account_finish_action.php:27
+msgid "You must supply a name for your account"
+msgstr "Du måste ange ett namn för ditt konto"
+
+#: html/user/account_finish_action.php:30
+msgid "HTML tags not allowed in name"
+msgstr "HTML-taggar tillåts inte i namnet"
+
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Slutför kontoinställning"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "Ändra %1 inställningar"
+
+#: html/user/add_venue.php:82
+msgid "Add %1 preferences for %2"
+msgstr "Lägg till %1 inställningar för %2"
+
+#: html/user/apps.php:33
+msgid ""
+"%1 currently has the following applications. When you participate in %1, "
+"tasks for one or more of these applications will be assigned to your "
+"computer. The current version of the application will be downloaded to your "
+"computer. This happens automatically; you don't have to do anything."
+msgstr "%1 har för närvarande följande applikationer. När du deltar i %1 kommer uppgifter för dessa applikationer att tilldelas din dator. Den senaste versionen av applikationen kommer att laddas ner till din dator. Detta sker automatiskt, du behöver inte göra något."
+
+#: html/user/apps.php:55
+msgid "Platform"
+msgstr "Plattform"
+
+#: html/user/apps.php:56
+msgid "Version"
+msgstr "Version"
+
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Genomsnittlig datoranvändning"
+
+#: html/user/bbcode.php:23
+msgid "BBCode tags"
+msgstr "BBCode-taggar"
+
+#: html/user/bbcode.php:25
+msgid ""
+"BBCode tags let you format text in your profile and message-board postings.\n"
+"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
+"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
+"HTML)."
+msgstr "BBCode-taggar låter dig formatera text i din profil och i foruminlägg.\nDe liknar HTML men är enklare. Taggen startar med [ (för HTML\nskulle %1 användas) och slutar med ] (för HTML skulle %2 användas)"
+
+#: html/user/bbcode.php:31
+msgid "Examples"
+msgstr "Exempel"
+
+#: html/user/bbcode.php:32
+msgid "Bold"
+msgstr "Fet"
+
+#: html/user/bbcode.php:33
+msgid "Italic"
+msgstr "Kursiv"
+
+#: html/user/bbcode.php:34
+msgid "Underline"
+msgstr "Understruken"
+
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Genomstruken"
+
+#: html/user/bbcode.php:36
+msgid "Superscript"
+msgstr "Upphöjd"
+
+#: html/user/bbcode.php:37
+msgid "Big text"
+msgstr "Stor text"
+
+#: html/user/bbcode.php:38
+msgid "Red text"
+msgstr "Röd text"
+
+#: html/user/bbcode.php:39
+msgid "link to website"
+msgstr "länk till webbsida"
+
+#: html/user/bbcode.php:40
+msgid "Quoted text"
+msgstr "Citerad text"
+
+#: html/user/bbcode.php:40
+msgid "use for quoted blocks of text"
+msgstr "använd för att citera textstycken"
+
+#: html/user/bbcode.php:41
+msgid "use to display an image"
+msgstr "använd för att visa en bild"
+
+#: html/user/bbcode.php:42
+msgid "Code snippet here"
+msgstr "Kodavsnitt här"
+
+#: html/user/bbcode.php:42
+msgid "use to display some code"
+msgstr "använd för att visa någon kod"
+
+#: html/user/bbcode.php:43
+msgid "Pre-formatted text"
+msgstr "För-formaterad text"
+
+#: html/user/bbcode.php:43
+msgid "use to display pre-formatted (usually monospaced) text"
+msgstr "använd för att visa för-formaterad (vanligtvis med fast breddsteg) text"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 1"
+msgstr "Punkt 1"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item2"
+msgstr "Punkt2"
+
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
+msgid "Item 2"
+msgstr "Punkt 2"
+
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "länka till en fråga på databasen BOINC Github"
+
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "länka till en Wiki-sida på databasen BOINC Github"
+
+#: html/user/bbcode.php:55
+msgid ""
+"If you don't close a tag or don't specify a parameter correctly,\n"
+"the raw tag itself will display instead of the formatted text."
+msgstr "Om du inte stänger en tagg eller inte specificerar en parameter korrekt,\nså kommer själva taggen att visas istället för den formaterade texten."
+
+#: html/user/create_account_action.php:26
+msgid "Can't create account"
+msgstr "Kan inte skapa kontot"
+
+#: html/user/create_account_action.php:29
+msgid "Click your browser's <b>Back</b> button to try again."
+msgstr "Klicka på din webbläsares <b>Bakåt</b>-knapp och försök igen."
+
+#: html/user/create_account_action.php:44
+msgid "Your reCAPTCHA response was not correct. Please try again."
+msgstr "Ditt reCAPTCHA svar var inte korrekt. Vänligen försök igen."
+
+#: html/user/create_account_action.php:67
+msgid "You must supply an invitation code to create an account."
+msgstr "Du måste ange en inbjudningskod för att skapa ett konto."
+
+#: html/user/create_account_action.php:70
+msgid "The invitation code you gave is not valid."
+msgstr "Inbjudningskoden du angav var inte giltig."
+
+#: html/user/create_account_action.php:81
+msgid ""
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Ogiltig e-postadress: du måste ange en giltig adress i formatet namn at domän"
+
+#: html/user/create_account_action.php:85
+msgid "There's already an account with that email address."
+msgstr "Det finns redan ett konto med den e-postadressen."
+
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
+msgid "New passwords are different"
+msgstr "De nya lösenorden är olika"
+
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
+msgid "Passwords may only include ASCII characters."
+msgstr "Lösenord får bara innehålla ASCII-tecken."
+
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
+msgid "New password is too short: minimum password length is %1 characters."
+msgstr "Det nya lösenordet är för kort: minsta lösenordslängd är %1 tecken."
+
+#: html/user/create_account_action.php:124
+msgid "Couldn't create account"
+msgstr "Kunde inte skapa kontot."
+
+#: html/user/create_account_form.php:46
+msgid ""
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "OBS: för att köra %1 på datorn %2gå hit%3 istället för att använda detta formulär."
+
+#: html/user/create_account_form.php:63
+msgid ""
+"This account will belong to the team %1 and will have the project "
+"preferences of its founder."
+msgstr "Detta konto tillhör laget %1 och kommer att ha samma projektinställningar som dess grundare."
+
+#: html/user/create_profile.php:53
+msgid "Picture"
+msgstr "Bild"
+
+#: html/user/create_profile.php:67
+msgid "%1 Your profile picture is shown to the left."
+msgstr "%1 Din profilbild visas till vänster"
+
+#: html/user/create_profile.php:69
+msgid ""
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "För att ändra den tryck på \"Bläddra\" knappen och välj en JPEG eller PNG fil (%1 eller mindre)."
+
+#: html/user/create_profile.php:72
+msgid "To remove it from your profile, check this box:"
+msgstr "För att ta bort den från din profil, markera denna ruta:"
+
+#: html/user/create_profile.php:80
+msgid ""
+"If you would like include a picture with your profile, click the \"Browse\" "
+"button and select a JPEG or PNG file. Please select images of %1 or less."
+msgstr "Om du vill lägga till en bild till din profil klicka på \"Bläddra\" knappen och välj en JPEG eller PNG fil. Vänligen välj en bild som är %1 eller mindre."
+
+#: html/user/create_profile.php:92
+msgid "Language"
+msgstr "Språk"
+
+#: html/user/create_profile.php:95
+msgid "Select the language in which your profile is written:"
+msgstr "Ange vilket språk din profil är skriven på:"
+
+#: html/user/create_profile.php:107
+msgid "Submit profile"
+msgstr "Spara profil"
+
+#: html/user/create_profile.php:113
+msgid "Create/edit profile"
+msgstr "Skapa/ändra profil"
+
+#: html/user/create_profile.php:135
+msgid "The format of your uploaded image is not supported."
+msgstr "Formatet på din uppladdade bild stöds inte."
+
+#: html/user/create_profile.php:164
+msgid ""
+"Your %1profile%2 lets you share your opinions and background with the %3 "
+"community."
+msgstr "Din %1profil%2 låter dig dela med dig av dina åsikter och din bakgrund till %3 gemenskap."
+
+#: html/user/create_profile.php:208
+msgid "Your ReCaptcha response was not correct.  Please try again."
+msgstr "Ditt ReCaptcha svar var inte korrekt. Vänligen försök igen."
+
+#: html/user/create_profile.php:217
+msgid ""
+"Your first response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Ditt första svar flaggades som spam av Akismet anti-spam systemet. Vänligen ändra din text och försök igen."
+
+#: html/user/create_profile.php:225
+msgid ""
+"Your second response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "Ditt andra svar flaggades som spam av Akismet anti-spam systemet. Vänligen ändra din text och försök igen."
+
+#: html/user/create_profile.php:241
+msgid "Your profile submission was empty."
+msgstr "Din sparade profil var tom."
+
+#: html/user/create_profile.php:282
+msgid "Could not update the profile: database error"
+msgstr "Kunde inte uppdatera profilen: databasfel"
+
+#: html/user/create_profile.php:298
+msgid "Could not create the profile: database error"
+msgstr "Kunde inte skapa profilen: databasfel"
+
+#: html/user/create_profile.php:303
+msgid "Profile saved"
+msgstr "Profilen sparad"
+
+#: html/user/create_profile.php:305
+msgid ""
+"Congratulations! Your profile was successfully entered into our database."
+msgstr "Grattis! Din profil sparades i vår databas"
+
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Visa din profil"
+
+#: html/user/create_profile.php:318
+msgid "Create a profile"
+msgstr "Skapa en profil"
+
+#: html/user/create_profile.php:346
+msgid ""
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "För att förhindra spam så behövs en minsta genomsnittlig poäng av %1 eller mer för att skapa eller ändra en profil. Vi ber om ursäkt för besväret."
+
+#: html/user/delete_account.php:57
+msgid "Couldn't delete account"
+msgstr "Kunde inte ta bort kontot"
+
+#: html/user/delete_account.php:59
+msgid "Account deleted"
+msgstr "Kontot borttaget"
+
+#: html/user/delete_account.php:60
+msgid "Your account has been deleted."
+msgstr "Ditt konto är borttaget."
+
+#: html/user/delete_account.php:64
+msgid "Confirm delete account"
+msgstr "Bekräfta borttagning av kontot"
+
+#: html/user/delete_account.php:67
+msgid ""
+"Deleting your account will remove all of your\n"
+"personal information from our servers,\n"
+"including your profile and message-board posts.\n"
+"No jobs will be issued to any computers attached\n"
+"to this account."
+msgstr "Genom att ta bort ditt konto så kommer all personlig\ninformation om dig att ta bort från våra servrar, detta\ninkluderar din profil och dina inlägg i vårt forum.\nInga nya arbetsuppgifter kommer att skickas till datorer\nanslutna till detta konto."
+
+#: html/user/delete_account.php:73
+msgid ""
+"This cannot be undone.\n"
+"Once your account has been deleted, you cannot get it back."
+msgstr "Detta kan inte ångras.\nNär kontot väl är borttaget kan du inte få tillbaka det."
+
+#: html/user/delete_account.php:76
+msgid "Are you sure you want to delete your account?"
+msgstr "Är du säker på att du vill ta bort ditt konto?"
+
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
+msgid "Yes"
+msgstr "Ja"
+
+#: html/user/delete_account.php:79
+msgid "Delete this account"
+msgstr "Ta bort detta konto"
+
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
+msgid "No"
+msgstr "Nej"
+
+#: html/user/delete_account.php:80
+msgid "Do not delete this account"
+msgstr "Ta inte bort detta konto"
+
+#: html/user/delete_profile.php:32
+msgid "couldn't delete profile - please try again later"
+msgstr "kunde inte ta bort profilen - vänligen försök igen senare"
+
+#: html/user/delete_profile.php:35
+msgid "Delete Confirmation"
+msgstr "Bekräftelse av borttagning"
+
+#: html/user/delete_profile.php:37
+msgid "Your profile has been deleted."
+msgstr "Din profil har tagits bort."
+
+#: html/user/delete_profile.php:42
+msgid "Profile delete confirmation"
+msgstr "Bekräftelse borttagning av profil"
+
+#: html/user/delete_profile.php:45
+msgid "Are you sure?"
+msgstr "Är du säker?"
+
+#: html/user/delete_profile.php:46
+msgid ""
+"Deleted profiles are gone forever and cannot be recovered --\n"
+"you will have to start from scratch\n"
+"if you want another profile in the future."
+msgstr "Borttagna profiler är borta för alltid och kan inte återskapas -\ndu måste börja om från börja\nom du vill ha en profil i framtiden."
+
+#: html/user/delete_profile.php:50
+msgid ""
+"If you're sure, click 'Yes'\n"
+"to remove your profile from our database."
+msgstr "Om du är säker, klicka 'Ja'\nför att ta bort din profil från vår databas."
+
+#: html/user/delete_profile.php:54
+msgid "Delete my profile"
+msgstr "Ta bort min profil"
+
+#: html/user/delete_profile.php:55
+msgid "Do not delete my profile"
+msgstr "Ta inte bort min profil"
+
+#: html/user/donated.php:25
+msgid "PayPal - Transaction Completed"
+msgstr "PayPal - Överföring genomförd"
+
+#: html/user/donated.php:28
+msgid "Thank you for donating!"
+msgstr "Tack för din gåva!"
+
+#: html/user/donated.php:29
+msgid "Your donation for has been completed."
+msgstr "Din gåva har skickats."
+
+#: html/user/donated.php:30
+msgid ""
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "Din gåva kommer att läggas till förloppsindikatorn efter bekräftelse från PayPal."
+
+#: html/user/donated.php:32
+msgid "You have canceled your donation."
+msgstr "Du har valt att inte ge en gåva."
+
+#: html/user/donations.php:24
+msgid "This project is not accepting donations."
+msgstr "Detta projekt tar inte emot gåvor."
+
+#: html/user/donations.php:34
+msgid "%1 donations"
+msgstr "%1 gåvor"
+
+#: html/user/donations.php:39
+msgid ""
+"This project is accepting donations via\n"
+"%1."
+msgstr "Detta projekt accepterar gåvor via\n%1."
+
+#: html/user/donations.php:41
+msgid ""
+"To donate, fill in the amount you want to donate using the field below.\n"
+"        PayPal is accepting multiple currencies\n"
+"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
+"         Yen, Australian Dollars, New Zealand Dollars,\n"
+"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
+"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
+"        Hungarian Forint, Czech Koruna).\n"
+"        You can use included currency converter\n"
+"        to see the donation amount equivalent in different currencies\n"
+"        (please note that the rates are only estimates\n"
+"         and the actual amount may differ)."
+msgstr "För att ge en gåva, fyll i summan du vill ge i fältet nedan.\nPayPal accepterar många olika valutor\n(Kanadensiska dollar, Euro, Brittiska Pund, Amerikanska dollar, Yen, Australiska dollar, Nyzeeländska dollar,\nSchweiziska Francs, Hongkong dollar, Singaporianska dollar, Svenska kronor,\nDanska kronor, Polska Zloty, Norska kronor,\nUngerska Forint, Tjeckiska Koruna).\nDu kan använda valutaomvandlaren\nför att se storleken på din gåva i olika valutor\n(vänligen uppmärksamma att su [...]
+
+#: html/user/donations.php:315
+msgid "Amount you would like to donate"
+msgstr "Summan som du vill ge som gåva"
+
+#: html/user/donations.php:316
+msgid "Estimated value in"
+msgstr "Uppskattat värde i"
+
+#: html/user/donations.php:319 html/user/donations.php:323
+msgid "Anonymous donation"
+msgstr "Anonym gåva"
+
+#: html/user/donations.php:319
+msgid ""
+"Select this if you dont want your name and account number displayed in\n"
+"donator lists.<br>If not checked, you will be recorded as user ID %1"
+msgstr "Välj detta om du vill att ditt namn och konto nummer ska synas i\ngåvolistor.<br>Om inte vald så kommer du att registreras som användar ID %1"
+
+#: html/user/donations.php:323
+msgid "To assign the donation with your user ID, please log in."
+msgstr "Vänligen logga in för att koppla en gåva till ditt användar ID."
+
+#: html/user/donations.php:327
+msgid "Proceed"
+msgstr "Fortsätt"
+
+#: html/user/donations.php:328
+msgid "Donations are accepted through"
+msgstr "Gåvor accepteras genom"
+
+#: html/user/download_network.php:25
+msgid "Download BOINC add-on software"
+msgstr "Ladda ner tilläggsprogram till BOINC"
+
+#: html/user/download_network.php:28
+msgid "You can download applications in several categories."
+msgstr "Du kan ladda ner program från flera olika kategorier."
+
+#: html/user/download_network.php:31
+msgid ""
+"These applications are not endorsed by %1 and you use them at your own risk."
+msgstr "Dessa program garanteras och stöds inte av %1 och du använder dem på egen risk"
+
+#: html/user/download_network.php:33
+msgid ""
+"We do not provide instructions for installing these applications.\n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
+"If this is not enough you should contact the author."
+msgstr "Vi tillhandahåller inte installationsinstruktioner för dessa program.\nDäremot kan skaparen av programmet ha tillhandahållit hjälp att installera och avinstallera programmet.\nOm detta inte är tillräckligt bör du kontakta skaparen av programmet."
+
+#: html/user/download_network.php:36
+msgid "Instructions for installing and running BOINC are %1here%2."
+msgstr "Instruktioner för att installera och köra BOINC finns %1här%2."
+
+#: html/user/download_network.php:38
+msgid "This list is managed centrally at %1the BOINC website%2."
+msgstr "Denna lista sköts centralt från %1BOINCs webbplats%2."
+
+#: html/user/edit_email_action.php:31
+msgid "Change email address of account"
+msgstr "Ändra e-postadress för kontot"
+
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
+msgid "New email address '%1' is invalid."
+msgstr "Den nya e-postadressen %1' är felaktig."
+
+#: html/user/edit_email_action.php:38
+msgid "New email address is same as existing address. Nothing is changed."
+msgstr "Den nya e-postadressen är den samma som den gamla. Ingen ändring genomförd."
+
+#: html/user/edit_email_action.php:42
+msgid "There's already an account with that email address"
+msgstr "Det finns redan ett konto med den e-postadressen"
+
+#: html/user/edit_email_action.php:54
+msgid "Invalid password."
+msgstr "Ogiltigt lösenord."
+
+#: html/user/edit_email_action.php:62
+msgid "The email address of your account is now %1."
+msgstr "E-postadressen för ditt konto är nu %1."
+
+#: html/user/edit_email_action.php:64
+msgid "Please %1validate this email address%2."
+msgstr "Vänligen %1bekräfta denna e-postadress%2."
+
+#: html/user/edit_email_action.php:67
+msgid ""
+"We can't update your email address due to a database problem.  Please try "
+"again later."
+msgstr "Vi kan inte uppdatera din e-postadress på grund av ett databasproblem. Vänligen försök senare."
+
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
+msgid "Change email address"
+msgstr "Ändra e-postadress"
+
+#: html/user/edit_email_form.php:36
+msgid "Change the email address of your account"
+msgstr "Ändra e-postadress för ditt konto"
+
+#: html/user/edit_email_form.php:37
+msgid "New email address"
+msgstr "Ny e-postadress"
+
+#: html/user/edit_email_form.php:38
+msgid "Must be a valid address of the form 'name at domain'"
+msgstr "Måste vara en giltig adress i form av 'namn at domän'."
+
+#: html/user/edit_email_form.php:48
+msgid "No password?"
+msgstr "Inget lösenord?"
+
+#: html/user/edit_forum_preferences_action.php:33
+msgid "Confirm reset"
+msgstr "Bekräfta återställning"
+
+#: html/user/edit_forum_preferences_action.php:34
+msgid ""
+"This action will erase any changes you have made in your community "
+"preferences. To cancel, click your browser's Back button."
+msgstr "Denna åtgärd kommer att ta bort alla ändring du gjort i dina gemenskapsinställningar. För att avbryta klicka på din webbläsares Bakåt-knapp."
+
+#: html/user/edit_forum_preferences_action.php:38
+msgid "Reset preferences"
+msgstr "Återställ inställningar"
+
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
+msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
+msgstr "Fel: Inte rätt typ av fil, endast PNG eller JPEG filer stöds."
+
+#: html/user/edit_forum_preferences_action.php:120
+msgid "Your signature was too long, please keep it less than 250 characters."
+msgstr "Din signatur är för lång, vänligen använd inte mer än 250 tecken."
+
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Ingen sådan användare:"
+
+#: html/user/edit_forum_preferences_form.php:45
+msgid ""
+"How should we notify you of new private messages, friend requests, posts in "
+"subscribed threads, and other events?"
+msgstr "Hur vill du bli meddelad om nya privata meddelanden, vänförfrågningar, nya inlägga i trådar du prenumererar på samt andra händelser?"
+
+#: html/user/edit_forum_preferences_form.php:46
+msgid "On my Account page (no email)"
+msgstr "Via min konto-sida (ingen e-post)"
+
+#: html/user/edit_forum_preferences_form.php:47
+msgid "Immediately, by email"
+msgstr "Direkt via e-post"
+
+#: html/user/edit_forum_preferences_form.php:48
+msgid "In a single daily email"
+msgstr "Via ett dagligt e-post"
+
+#: html/user/edit_forum_preferences_form.php:65
+msgid "Message-board identity"
+msgstr "Gemenskapsidentitet"
+
+#: html/user/edit_forum_preferences_form.php:66
+msgid "Avatar"
+msgstr "Avatar"
+
+#: html/user/edit_forum_preferences_form.php:67
+msgid "An image representing you on the message boards."
+msgstr "En bild som representerar dig i gemenskapen/forumen."
+
+#: html/user/edit_forum_preferences_form.php:68
+msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
+msgstr "Format: JPG eller PNG. Storlek: som mest 4 KB, 100x100 pixlar"
+
+#: html/user/edit_forum_preferences_form.php:70
+msgid "Don't use an avatar"
+msgstr "Använd inte en avatar"
+
+#: html/user/edit_forum_preferences_form.php:72
+msgid "Use a Globally Recognized Avatar provided by %1"
+msgstr "Använd en globalt erkänd avatar från %1"
+
+#: html/user/edit_forum_preferences_form.php:74
+msgid "Use this uploaded avatar:"
+msgstr "Använd denna uppladdade avatar:"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "Avatar preview"
+msgstr "Förhandsgranskning av avataren"
+
+#: html/user/edit_forum_preferences_form.php:77
+msgid "This is how your avatar will look"
+msgstr "Så här kommer din avatar att se ut"
+
+#: html/user/edit_forum_preferences_form.php:86
+msgid "Signature for message board posts"
+msgstr "Signatur i inlägg i forumen"
+
+#: html/user/edit_forum_preferences_form.php:89
+msgid ""
+"Check out %1various free services%2\n"
+"<br> providing dynamic 'signature images'\n"
+"<br> showing your latest credit info, project news, etc."
+msgstr "Undersök olika %1gratistjänster%2\n<br> som tillhandahåller dynamiska \"signaturbilder\"\n<br> som visar din senaste poäng, projektnyheter m.m."
+
+#: html/user/edit_forum_preferences_form.php:93
+msgid "Attach signature by default"
+msgstr "Använd alltid signaturen"
+
+#: html/user/edit_forum_preferences_form.php:96
+msgid "Signature preview"
+msgstr "Förhandsgranska signaturen"
+
+#: html/user/edit_forum_preferences_form.php:97
+msgid "This is how your signature will look in the forums"
+msgstr "Så här kommer din signatur att se ut i forumen"
+
+#: html/user/edit_forum_preferences_form.php:115
+msgid "Message display"
+msgstr "Visning av foruminlägg"
+
+#: html/user/edit_forum_preferences_form.php:117
+msgid "What to display"
+msgstr "Vad som ska visas"
+
+#: html/user/edit_forum_preferences_form.php:118
+msgid "Hide avatar images"
+msgstr "Göm avatarbilder"
+
+#: html/user/edit_forum_preferences_form.php:119
+msgid "Hide signatures"
+msgstr "Göm signaturer"
+
+#: html/user/edit_forum_preferences_form.php:120
+msgid "Show images as links"
+msgstr "Visa bilder som länkar"
+
+#: html/user/edit_forum_preferences_form.php:121
+msgid "Open links in new window/tab"
+msgstr "Öppna länkar i ett nytt fönster/flik"
+
+#: html/user/edit_forum_preferences_form.php:122
+msgid "Highlight special users"
+msgstr "Markera särskilda användare"
+
+#: html/user/edit_forum_preferences_form.php:123
+msgid "Display this many messages per page"
+msgstr "Visa så här många inlägg per sida"
+
+#: html/user/edit_forum_preferences_form.php:127
+msgid "How to sort"
+msgstr "Sorteringsordning"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Threads:"
+msgstr "Trådar:"
+
+#: html/user/edit_forum_preferences_form.php:128
+msgid "Posts:"
+msgstr "Inlägg:"
+
+#: html/user/edit_forum_preferences_form.php:129
+msgid "Jump to first new post in thread automatically"
+msgstr "Hoppa automatiskt till det första nya inlägget i tråden"
+
+#: html/user/edit_forum_preferences_form.php:130
+msgid "Don't move sticky posts to top"
+msgstr "Visa inte fästa trådar längst upp"
+
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
+msgid "Message filtering"
+msgstr "Meddelandefiltrering"
+
+#: html/user/edit_forum_preferences_form.php:153
+msgid "Filtered users"
+msgstr "Filtrerade användare"
+
+#: html/user/edit_forum_preferences_form.php:154
+msgid "Ignore message board posts and private messages from these users."
+msgstr "Göm inlägg och privata meddelanden från dessa användare."
+
+#: html/user/edit_forum_preferences_form.php:156
+msgid "User ID (For instance: 123456789)"
+msgstr "Användar ID (T.ex. 123456789)"
+
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
+msgid "Add user to filter"
+msgstr "Lägg till användare i filtret"
+
+#: html/user/edit_forum_preferences_form.php:162
+msgid "Click here to update preferences"
+msgstr "Klicka här för att uppdatera inställningarna"
+
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
+msgid "Reset"
+msgstr "Nollställ"
+
+#: html/user/edit_forum_preferences_form.php:165
+msgid "Or click here to reset preferences to the defaults"
+msgstr "Eller klicka här för att återställa till standardinställningarna"
+
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Vi kan inte ändra ditt lösenord på grund av ett databasproblem. Vänligen försök igen senare."
+
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "Ändra lösenord"
+
+#: html/user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "Ditt lösenord har ändrats."
+
+#: html/user/edit_passwd_form.php:32
+msgid "New password"
+msgstr "Nytt lösenord"
+
+#: html/user/edit_passwd_form.php:33
+msgid "New password, again"
+msgstr "Nya lösenordet igen"
+
+#: html/user/edit_user_info_action.php:31
+msgid "HTML tags are not allowed in your name."
+msgstr "HTML-taggar är inte tillåtna inte i ditt namn."
+
+#: html/user/edit_user_info_action.php:34
+msgid "You must supply a name for your account."
+msgstr "Du måste ange ett namn för ditt konto."
+
+#: html/user/edit_user_info_action.php:58
+msgid "Couldn't update user info."
+msgstr "Kunde inte uppdatera användarinformationen."
+
+#: html/user/edit_user_info_form.php:27
+msgid "Edit account information"
+msgstr "Ändra kontoinformationen"
+
+#: html/user/edit_user_info_form.php:32
+msgid "Name %1 real name or nickname%2"
+msgstr "Namn %1 riktigt namn eller smeknamn%2"
+
+#: html/user/edit_user_info_form.php:35
+msgid "URL %1 of your web page; optional%2"
+msgstr "URL %1 till din webbplats; frivilligt%2"
+
+#: html/user/edit_user_info_form.php:44
+msgid "Postal (ZIP) code %1 Optional%2"
+msgstr "Postnummer %1 Frivilligt%2"
+
+#: html/user/edit_user_info_form.php:48
+msgid "Update info"
+msgstr "Uppdatera info"
+
+#: html/user/explain_state.php:27
+msgid "Server states"
+msgstr "Serverstatus"
+
+#: html/user/explain_state.php:30
+msgid ""
+"A tasks's <b>server state</b> indicates whether the task has been sent to a "
+"computer, and if so whether the computer has finished it. Possible values "
+"are:"
+msgstr "En arbetsuppgifts <b>serverstatus</b> anger om den har skickats till en dator och om den datorn har genomfört den. Möjliga värden är:"
+
+#: html/user/explain_state.php:35
+msgid ""
+"The task is not ready to send (for example, because its input files are "
+"unavailable)"
+msgstr "Arbetsuppgiften är inte redo att skickas ut (t.ex. för att dess datafiler inte är tillgängliga)"
+
+#: html/user/explain_state.php:38
+msgid "The task is ready to send, but hasn't been sent yet."
+msgstr "Arbetsuppgiften är redo att skickas ut men det har inte skett än."
+
+#: html/user/explain_state.php:40
+msgid "In Progress"
+msgstr "Under arbete"
+
+#: html/user/explain_state.php:41
+msgid "The task has been sent; waiting for completion."
+msgstr "Arbetsuppgiften har skickats ut, väntar på svar."
+
+#: html/user/explain_state.php:44
+msgid ""
+"The task has been sent to a computer and either it has timed out or the "
+"computer has reported its completion."
+msgstr "Arbetsuppgiften har skickats ut och antingen har tidsfristen gått ut eller så har datorn rapporterat den som genomförd."
+
+#: html/user/explain_state.php:49
+msgid "Outcomes"
+msgstr "Resultat"
+
+#: html/user/explain_state.php:52
+msgid ""
+"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
+"Possible values are:"
+msgstr "En arbetsuppgifts <b>resultat</b> definieras om dess serverstatus är <b>genomförd</b>. Möjliga värden är:"
+
+#: html/user/explain_state.php:57
+msgid ""
+"The task was sent to a computer, but the computer has not yet completed the "
+"work and reported the outcome."
+msgstr "Arbetsuppgiften har skickats till en dator men den har inte genomfört den än eller rapporterat resultatet."
+
+#: html/user/explain_state.php:60
+msgid "A computer completed and reported the task successfully."
+msgstr "En dator genomförde och rapporterade resultatet framgångsrikt."
+
+#: html/user/explain_state.php:63
+msgid ""
+"The server wasn't able to send the task to a computer (perhaps because its "
+"resource requirements were too large)"
+msgstr "Servern kunde inte skicka arbetsuppgiften till någon dator (kanske för att resurskraven var för höga)"
+
+#: html/user/explain_state.php:65
+msgid "Client error"
+msgstr "Klientfel"
+
+#: html/user/explain_state.php:66
+msgid "The task was sent to a computer and an error occurred."
+msgstr "Arbetsuppgiften skickades till en dator men ett fel inträffade."
+
+#: html/user/explain_state.php:69
+msgid ""
+"The task was sent to a computer and no reply was received within the time "
+"limit."
+msgstr "Uppgiften skickades till en datorn men inget svar togs emot innan tidsfristen gick ut."
+
+#: html/user/explain_state.php:72
+msgid ""
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "Arbetsuppgiften skickades inte till en dator eftersom tillräckligt med andra resultat för denna arbetsenhet har mottagits."
+
+#: html/user/explain_state.php:75
+msgid ""
+"The task was reported but could not be validated, typically because the "
+"output files were lost on the server."
+msgstr "Arbetsuppgiften rapporterades men kunde inte valideras, vanligtvis för att resultatfilerna inte kunde hittas på servern."
+
+#: html/user/explain_state.php:80
+msgid "Client states"
+msgstr "Klientstatus"
+
+#: html/user/explain_state.php:81
+msgid ""
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "En arbetsuppgifts <b>klientstatus</b> indikerar vid vilket steg i arbetet som ett fel uppstod."
+
+#: html/user/explain_state.php:86
+msgid "The computer has not yet completed the task."
+msgstr "Datorn har inte slutfört arbetsuppgiften än."
+
+#: html/user/explain_state.php:89
+msgid "The computer completed the task successfully."
+msgstr "Datorn slutförde arbetsuppgiften framgångsrikt."
+
+#: html/user/explain_state.php:92
+msgid "The computer couldn't download the application or input files."
+msgstr "Datorn kunde inte ladda ner applikationen eller datafilerna."
+
+#: html/user/explain_state.php:95
+msgid "An error occurred during computation."
+msgstr "Ett fel uppstod under arbetet."
+
+#: html/user/explain_state.php:98
+msgid "The computer couldn't upload the output files."
+msgstr "Dator kunde inte ladda upp resultatfilerna."
+
+#: html/user/explain_state.php:103
+msgid "Time reported and deadline"
+msgstr "Tid för rapportering eller tidsfrist"
+
+#: html/user/explain_state.php:106
+msgid ""
+"A task's <b>Time reported or deadline</b> field depends on whether the task "
+"has been reported yet:"
+msgstr "En arbetsuppgifts <b>Tidsfrist</b> beror på om den har slutförts eller inte:"
+
+#: html/user/explain_state.php:110
+msgid "Already reported"
+msgstr "Redan rapporterad"
+
+#: html/user/explain_state.php:110
+msgid "The date/time it was reported"
+msgstr "Datumet/tiden den rapporterades"
+
+#: html/user/explain_state.php:111
+msgid "Not reported yet, deadline in the future"
+msgstr "Inte rapporterad än, tidsfristen i framtiden"
+
+#: html/user/explain_state.php:112
+msgid "Deadline, shown in green."
+msgstr "Tidsfristen, visad i grönt"
+
+#: html/user/explain_state.php:114
+msgid "Not reported yet, deadline in the past"
+msgstr "Inte rapporterad än, tidsfristen i passerad"
+
+#: html/user/explain_state.php:115
+msgid "Deadline, shown in red."
+msgstr "Tidsfristen, visad i rött"
+
+#: html/user/explain_state.php:120
+msgid "Unknown field"
+msgstr "Okänt fält"
+
+#: html/user/ffmail_action.php:28
+msgid "Sending emails"
+msgstr "Skicka e-post"
+
+#: html/user/ffmail_action.php:43
+msgid "failed to send email to %1: %2"
+msgstr "misslyckades med att skicka e-post till %1: %2"
+
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "misslyckades med att skicka e-post till %1"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "e-post framgångsrikt skickat till %1"
+
+#: html/user/ffmail_action.php:55
+msgid "Thanks for telling your friends about %1"
+msgstr "Tack för att du berättar om %1 för dina vänner"
+
+#: html/user/ffmail_action.php:57
+msgid ""
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "Du glömde att ange e-postadresser; vänligen %1gå tillbaka till formuläret%2 och ange dem."
+
+#: html/user/ffmail_form.php:33
+msgid "Tell your friends about %1"
+msgstr "Berätta för dina vänner om %1"
+
+#: html/user/ffmail_form.php:49
+msgid ""
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "Använd detta formulär för att skicka e-postmeddelanden till personer du tror kan vara intresserade av %1."
+
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "Till:"
+
+#: html/user/ffmail_form.php:59
+msgid "Send"
+msgstr "Skicka"
+
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
+msgid "You are not authorized to banish users."
+msgstr "Du har inte behörighet att stänga av användare."
+
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Du måste ange en åtgärd..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Oanständig"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Uppviglande/hatbrev"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Användarbegäran"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
+msgid "Banishment Vote"
+msgstr "Röstning om avstängning"
+
+#: html/user/forum_banishment_vote.php:52
+msgid "No user with this ID found."
+msgstr "Ingen användare med detta ID hittad."
+
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
+msgid "User is already banished"
+msgstr "Användaren är redan avstängd"
+
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
+msgid ""
+"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
+"for chosen time period.<br/>It should be done only if %1 has consistently "
+"exhibited trollish behavior."
+msgstr "Är du säker på att du vill stänga av %1<br/>Detta kommer att hindra %1 att göra inlägg under den valda tidsperioden.<br/>Detta bör endast göras om %1 har uppvisat olämpligt beteende."
+
+#: html/user/forum_banishment_vote.php:64
+msgid ""
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Välj en anledningskategori, alternativt skriv en längre förklaring till varför användaren ska stängas av."
+
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
+msgid "Category"
+msgstr "Kategori"
+
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
+msgid "Reason"
+msgstr "Anledning"
+
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
+msgid "Mailed if nonempty"
+msgstr "E-postas om inte tomt"
+
+#: html/user/forum_banishment_vote.php:78
+msgid "Proceed with vote"
+msgstr "Fortsätt genom omröstning"
+
+#: html/user/forum_edit.php:41
+msgid ""
+"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
+"minutes after they have been created."
+msgstr "Du kan inte längre ändra detta inlägg.<br/>Inlägg kan bara ändras upp till %1 minuter efter att de har skapats."
+
+#: html/user/forum_edit.php:47
+msgid "You are not authorized to edit this post."
+msgstr "Du har inte behörighet att ändra detta inlägg."
+
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Redigera inlägg"
+
+#: html/user/forum_edit.php:112
+msgid "Edit your message"
+msgstr "Ändra ditt inlägg"
+
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
+msgid "Title"
+msgstr "Titel"
+
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
+msgid "Add my signature to this post"
+msgstr "Lägg till din signatur till detta inlägg"
+
+#: html/user/forum_forum.php:46
+msgid "Not visible to you"
+msgstr "Inte synlig för dig"
+
+#: html/user/forum_forum.php:83
+msgid "Team message board for %1"
+msgstr "Lagforum för %1"
+
+#: html/user/forum_forum.php:100
+msgid "New thread"
+msgstr "Ny tråd"
+
+#: html/user/forum_forum.php:100
+msgid "Add a new thread to this forum"
+msgstr "Skapa en ny tråd i detta forum"
+
+#: html/user/forum_forum.php:122
+msgid "This message board is available as an %1RSS feed%2"
+msgstr "Detta forum finns tillgängligt som ett %1RSS-flöde%2"
+
+#: html/user/forum_forum.php:181
+msgid "This thread is hidden"
+msgstr "Denna tråd är gömd"
+
+#: html/user/forum_forum.php:185
+msgid "This thread is sticky and locked, and you haven't read it yet"
+msgstr "Denna tråd är fäst och låst, och du har inte läst den än"
+
+#: html/user/forum_forum.php:185
+msgid "sticky/locked/unread"
+msgstr "fäst/låst/oläst"
+
+#: html/user/forum_forum.php:187
+msgid "This thread is sticky and you haven't read it yet"
+msgstr "Denna tråd är fäst och du har inte läst den än"
+
+#: html/user/forum_forum.php:187
+msgid "sticky/unread"
+msgstr "fäst/oläst"
+
+#: html/user/forum_forum.php:191
+msgid "You haven't read this thread yet, and it's locked"
+msgstr "Du har inte läst denna tråd än och den är låst"
+
+#: html/user/forum_forum.php:191
+msgid "unread/locked"
+msgstr "oläst/låst"
+
+#: html/user/forum_forum.php:193
+msgid "You haven't read this thread yet"
+msgstr "Du har inte läst denna tråd än"
+
+#: html/user/forum_forum.php:199
+msgid "This thread is sticky and locked"
+msgstr "Denna tråd är fäst och oläst"
+
+#: html/user/forum_forum.php:199
+msgid "sticky/locked"
+msgstr "fäst/låst"
+
+#: html/user/forum_forum.php:201
+msgid "This thread is sticky"
+msgstr "Denna tråd är fäst"
+
+#: html/user/forum_forum.php:201
+msgid "sticky"
+msgstr "fäst"
+
+#: html/user/forum_forum.php:205
+msgid "This thread is locked"
+msgstr "Denna tråd är låst"
+
+#: html/user/forum_forum.php:205
+msgid "locked"
+msgstr "låst"
+
+#: html/user/forum_forum.php:207
+msgid "You read this thread"
+msgstr "Du har läst denna tråd"
+
+#: html/user/forum_forum.php:207
+msgid "read"
+msgstr "läs"
+
+#: html/user/forum_help_desk.php:29
+msgid "Questions and answers"
+msgstr "Frågor och svar"
+
+#: html/user/forum_help_desk.php:32
+msgid ""
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Prata direkt via Skype med en frivillig, via ett av många språk. Gå till %1BOINC Online Hjälp%2."
+
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
+msgid "Topic"
+msgstr "Ämne"
+
+#: html/user/forum_help_desk.php:48
+msgid "Questions"
+msgstr "Frågor"
+
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
+msgid "Discussion among members of %1"
+msgstr "Diskussion mellan medlemmar i %1"
+
+#: html/user/forum_index.php:80
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "Om du har en fråga eller ett problem, vänligen använd %1Frågor & Svar%2 delen av forumet."
+
+#: html/user/forum_index.php:125
+msgid "Subscribed threads"
+msgstr "Trådar du prenumererar på"
+
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Du har inte behörighet att moderera detta inlägg"
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Kan inte flytta till en annan katergorityp"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Kan inte flytta till en annan kategori"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Inte behörig att stänga av användare"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Avstängning"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "Användare %1 har stängts av."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Åtgärd misslyckades: eventuellt databasproblem"
+
+#: html/user/forum_moderate_post.php:45
+msgid "Moderate post"
+msgstr "Moderera inlägg"
+
+#: html/user/forum_moderate_post.php:55
+msgid "Hide post"
+msgstr "Göm inlägg"
+
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
+msgid "Commercial spam"
+msgstr "Kommersiell spam"
+
+#: html/user/forum_moderate_post.php:63
+msgid "Doublepost"
+msgstr "Dubbelinlägg"
+
+#: html/user/forum_moderate_post.php:70
+msgid "Move post"
+msgstr "Flytta inlägg"
+
+#: html/user/forum_moderate_post.php:72
+msgid "Destination thread ID:"
+msgstr "Destinationens tråd ID:"
+
+#: html/user/forum_moderate_post.php:85
+msgid "Banish user"
+msgstr "Stäng av användare"
+
+#: html/user/forum_moderate_post.php:87
+msgid "Ban duration"
+msgstr "Tid för avstängning"
+
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "sex timmar"
+
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 timmar"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
+msgid "1 day"
+msgstr "en dag"
+
+#: html/user/forum_moderate_post.php:91
+msgid "1 week"
+msgstr "en vecka"
+
+#: html/user/forum_moderate_post.php:92
+msgid "2 weeks"
+msgstr "2 veckor"
+
+#: html/user/forum_moderate_post.php:93
+msgid "1 month"
+msgstr "1 månad"
+
+#: html/user/forum_moderate_post.php:94
+msgid "Forever"
+msgstr "För alltid"
+
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
+msgid "OK"
+msgstr "OK"
+
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "Frivillig förklaring %1 Detta inkluderas i e-postmeddelandet till användaren.%2"
+
+#: html/user/forum_moderate_thread.php:38
+msgid "not authorized"
+msgstr "inte behörig"
+
+#: html/user/forum_moderate_thread.php:41
+msgid "Moderate thread '%1'"
+msgstr "Moderera tråd \"%1\""
+
+#: html/user/forum_moderate_thread.php:54
+msgid ""
+"Select the reason category, or write a longer description of why you're "
+"hiding or locking the thread; then press OK."
+msgstr "Ange en anledning eller skriv en längre förklaring till varför du gömmer eller låser tråden, klicka därefter OK."
+
+#: html/user/forum_moderate_thread.php:78
+msgid "Current forum"
+msgstr "Nuvarande forum"
+
+#: html/user/forum_moderate_thread.php:79
+msgid "Destination forum"
+msgstr "Destinationsforum"
+
+#: html/user/forum_moderate_thread.php:83
+msgid "New title:"
+msgstr "Ny titel:"
+
+#: html/user/forum_post.php:44
+msgid ""
+"Only project admins may create a thread here. However, you may reply to "
+"existing threads."
+msgstr "Endast projektets administratörer kan skapa nya trådar här. Däremot kan du skriva inlägg i redan existerande trådar."
+
+#: html/user/forum_post.php:64
+msgid ""
+"Your message was flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Ditt meddelande flaggades som spam av Akismet anti-spam systemet. Vänligen ändra din text och försök igen."
+
+#: html/user/forum_post.php:74
+msgid "Create new thread"
+msgstr "Skapa ny tråd"
+
+#: html/user/forum_post.php:102
+msgid "Create a new thread"
+msgstr "Skapa en ny tråd"
+
+#: html/user/forum_post.php:107
+msgid "Remember to add a title"
+msgstr "Kom ihåg att lägga till en titel"
+
+#: html/user/forum_post.php:132
+msgid "Show this item as a Notice in the BOINC Manager"
+msgstr "Visa detta som en Notis i BOINC Manager"
+
+#: html/user/forum_post.php:132
+msgid "Do so only for items likely to be of interest to all volunteers."
+msgstr "Gör endast det för saker som troligen är av intresse för alla frivilliga."
+
+#: html/user/forum_rate.php:28
+msgid "Rating offline"
+msgstr "Värdering offline"
+
+#: html/user/forum_rate.php:29
+msgid "This function is turned off by the project"
+msgstr "Denna funktion är avstängd av projektet"
+
+#: html/user/forum_rate.php:60
+msgid "You need more average or total credit to rate a post."
+msgstr "Du behöver mer genomsnittlig poäng eller total poäng för att värdera inlägg."
+
+#: html/user/forum_rate.php:64
+msgid "You have already rated this post."
+msgstr "Du har redan värderat detta inlägg"
+
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
+msgid "Return to thread"
+msgstr "Återvänd till tråden"
+
+#: html/user/forum_rate.php:74
+msgid "Input Recorded"
+msgstr "Synpunkt registrerad"
+
+#: html/user/forum_rate.php:75
+msgid "Your input has been recorded. Thanks for your help."
+msgstr "DIn synpunkt har registrerats. Tack för din hjälp."
+
+#: html/user/forum_rate.php:77
+msgid "Vote Registered"
+msgstr "Röst registrerad"
+
+#: html/user/forum_rate.php:78
+msgid "Your rating has been recorded. Thanks for your input."
+msgstr "Din värdering har registrerats. Tack för din åsikt."
+
+#: html/user/forum_rate.php:82
+msgid "Vote Submission Problem"
+msgstr "Röstinlämningsproblem"
+
+#: html/user/forum_reply.php:76
+msgid ""
+"Your post has been flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "Ditt inlägg flaggades som spam av Akismet anti-spam systemet. Vänligen ändra din text och försök igen."
+
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
+msgid "Post to thread"
+msgstr "Gör inlägg i tråden"
+
+#: html/user/forum_reply.php:143
+msgid "Message:"
+msgstr "Meddelande:"
+
+#: html/user/forum_reply.php:146
+msgid "reply to %1Message ID%2:"
+msgstr "svar till %1Message ID%2:"
+
+#: html/user/forum_reply.php:172
+msgid "Post reply"
+msgstr "Skriv svar"
+
+#: html/user/forum_reply.php:175
+msgid "Add my signature to this reply"
+msgstr "Lägg till min signatur i detta inlägg"
+
+#: html/user/forum_report_post.php:48
+msgid "You need more average or total credit to report a post."
+msgstr "Du behöver mer genomsnittlig poäng eller total poäng för att rapportera ett inlägg."
+
+#: html/user/forum_report_post.php:70
+msgid "Report Registered"
+msgstr "Rapport registrerad"
+
+#: html/user/forum_report_post.php:71
+msgid "Your report has been recorded. Thanks for your input."
+msgstr "Din rapport har registrerats. Tack för din åsikt."
+
+#: html/user/forum_report_post.php:72
+msgid ""
+"A moderator will now look at your report and decide what will happen - this "
+"may take a little while, so please be patient"
+msgstr "En moderator kommer nu att titta på din rapport och besluta vad som ska hända - detta kan ta lite tid så vänligen ha tålamod"
+
+#: html/user/forum_report_post.php:76
+msgid "Report a forum post"
+msgstr "Rapportera ett inlägg"
+
+#: html/user/forum_report_post.php:78
+msgid ""
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
+"can find the rating system at the bottom of the post."
+msgstr "Innan du rapporterar ett inlägg, överväg att använd +/- värderingssystemet istället. Om tillräckligt många användare röstar negativt så kommer inlägget att gömmas.<br />Du hittar värderingssystemet i nedre delen av inlägget."
+
+#: html/user/forum_report_post.php:90
+msgid "Report post"
+msgstr "Rapportera inlägg"
+
+#: html/user/forum_report_post.php:93
+msgid ""
+"Why do you find the post offensive: %1Please include enough information so "
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Varför tycker du inlägget olämpligt: %1Vänligen ange tillräckligt med information så att en person som inte ännu har läst tråden snabbt kan identifiera problemet.%2"
+
+#: html/user/forum_report_post.php:104
+msgid "Report not registered"
+msgstr "Rapporten inte registrerad"
+
+#: html/user/forum_report_post.php:105
+msgid "Your report could not be recorded. Please wait a while and try again."
+msgstr "Din rapport kunde inte registreras. Vänligen vänta ett tag och försök igen."
+
+#: html/user/forum_report_post.php:106
+msgid ""
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Om detta inte är ett tillfälligt fel, vänligen rapportera det till projektets utvecklare."
+
+#: html/user/forum_rss.php:38
+msgid "%1 RSS feed"
+msgstr "%1 RSS-flöde"
+
+#: html/user/forum_rss.php:39
+msgid "This message board is available as an RSS feed."
+msgstr "Detta forum finns tillgängligt som ett RSS-flöde."
+
+#: html/user/forum_rss.php:41
+msgid "Options:"
+msgstr "Alternativ:"
+
+#: html/user/forum_rss.php:45
+msgid "Include only posts by user ID %1 (default: all users)."
+msgstr "inkludera endast inlägg av användar ID %1 (standard: alla användare)."
+
+#: html/user/forum_rss.php:47
+msgid "Include only posts from the last %1 days (default: 30)."
+msgstr "Inkludera endast inlägg inom de senaste %1 dagarna (standard: 30)."
+
+#: html/user/forum_rss.php:49
+msgid "Threads only: %1 (Include only the first post of every thread)"
+msgstr "Endast trådar: %1 (inkludera endast först inlägget i varje tråd)"
+
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Forumets sökresultat"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Trådrubriker som matchade din sökning"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Inlägg som matchade din sökning"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Tyvärr, kunde inte hitta något som matchade din sökning. Du kan testa att vidga din sökning genom att använda färre ord (eller mindre specifika ord)."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Du kan också %1testa samma sökning via Google.%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "Gör en ny sökning"
+
+#: html/user/forum_search.php:29
+msgid "Forum search"
+msgstr "Forumsökning"
+
+#: html/user/forum_search.php:33
+msgid "Search query"
+msgstr "Sökkriterier"
+
+#: html/user/forum_search.php:34
+msgid "Search for keywords:"
+msgstr "Sök efter nyckelord:"
+
+#: html/user/forum_search.php:35
+msgid "Posts that contain all the specified words will be displayed"
+msgstr "Inlägg som innehåller alla angivna ord kommer att visas"
+
+#: html/user/forum_search.php:37
+msgid "For example: \"screensaver freeze\""
+msgstr "Till exempel: \"Skärmsläckare hänger sig\""
+
+#: html/user/forum_search.php:38
+msgid "Search for author ID:"
+msgstr "Sök efter författare ID:"
+
+#: html/user/forum_search.php:39
+msgid "Only posts by this author will be displayed"
+msgstr "Endast inlägg av denna författare kommer att visas"
+
+#: html/user/forum_search.php:41
+msgid "For example: \"43214\""
+msgstr "Till exempel: \"43214\""
+
+#: html/user/forum_search.php:43
+msgid "Search options"
+msgstr "Sökalternativ"
+
+#: html/user/forum_search.php:44
+msgid "Search limits"
+msgstr "Sökbegränsningar"
+
+#: html/user/forum_search.php:45
+msgid "Search at most this many days back in time"
+msgstr "Sök som mest så här många dagar bakåt i tiden"
+
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
+msgid "%1 months"
+msgstr "%1 månader"
+
+#: html/user/forum_search.php:54
+msgid "1 year"
+msgstr "1 år"
+
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Forum"
+
+#: html/user/forum_search.php:75
+msgid "Only display posts from this forum"
+msgstr "Visa endast inlägg från detta forum"
+
+#: html/user/forum_search.php:86
+msgid "Sort by"
+msgstr "Sortera efter"
+
+#: html/user/forum_search.php:90
+msgid "Start the search"
+msgstr "Påbörja sökningen"
+
+#: html/user/forum_subscribe.php:48
+msgid "Subscription successful"
+msgstr "Prenumerationen lyckades"
+
+#: html/user/forum_subscribe.php:51
+msgid ""
+"You are now subscribed to %1. You will be notified whenever there is a new "
+"post."
+msgstr "Du prenumererar nu på %1. Du får ett meddelande när det görs ett nytt inlägg."
+
+#: html/user/forum_subscribe.php:53
+msgid "Subscription failed"
+msgstr "Prenumerationen misslyckades"
+
+#: html/user/forum_subscribe.php:54
+msgid ""
+"We are currently unable to subscribe you to %1. Please try again later.."
+msgstr "Vi kan för närvarande inte lägga till en prenumeration på %1. Vänligen försök igen senare.."
+
+#: html/user/forum_subscribe.php:63
+msgid "Unsubscription successful"
+msgstr "Uppsägning av prenumeration lyckades"
+
+#: html/user/forum_subscribe.php:66
+msgid ""
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Du prenumererar inte längre på %1. Du kommer inte längre att få några meddelanden om denna tråd."
+
+#: html/user/forum_subscribe.php:68
+msgid "Unsubscription failed"
+msgstr "Uppsägning av prenumerationen misslyckades"
+
+#: html/user/forum_subscribe.php:69
+msgid ""
+"We are currently unable to unsubscribe you from %1. Please try again later.."
+msgstr "Vi kan för närvarande inte ta bort din prenumeration på %1. Vänligen försök igen senare.."
+
+#: html/user/forum_subscribe.php:76
+msgid "Unknown subscription action"
+msgstr "Okänd prenumerationsåtgärd"
+
+#: html/user/forum_thread.php:66
+msgid "This forum is not visible to you."
+msgstr "Detta forum är inte tillgängligt för dig."
+
+#: html/user/forum_thread.php:74
+msgid "This thread has been hidden by moderators."
+msgstr "Denna tråd har gömts av moderatorerna."
+
+#: html/user/forum_thread.php:129
+msgid "My question was answered"
+msgstr "Min fråga besvarades"
+
+#: html/user/forum_thread.php:130
+msgid "Click here if your question has been adequately answered"
+msgstr "Klicka här om din fråga har besvarats på ett tillfredsställande sätt"
+
+#: html/user/forum_thread.php:138
+msgid "I've also got this question"
+msgstr "Jag har också samma fråga"
+
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
+msgid "Add a new message to this thread"
+msgstr "Gör ett nytt inlägg i denna tråd"
+
+#: html/user/forum_thread.php:175
+msgid "Unsubscribe"
+msgstr "Avsluta prenumerationen"
+
+#: html/user/forum_thread.php:176
+msgid "You are subscribed to this thread.  Click here to unsubscribe."
+msgstr "Du prenumererar på denna tråd. Klicka här för att avsluta prenumerationen."
+
+#: html/user/forum_thread.php:182
+msgid "Subscribe"
+msgstr "Prenumerera"
+
+#: html/user/forum_thread.php:183
+msgid "Click to get email when there are new posts in this thread"
+msgstr "Klicka för att ta emot e-post när det finns nya inlägg i denna tråd"
+
+#: html/user/forum_thread.php:194
+msgid "Unhide this thread"
+msgstr "Gör denna tråd synlig"
+
+#: html/user/forum_thread.php:200
+msgid "Hide this thread"
+msgstr "Göm denna tråd"
+
+#: html/user/forum_thread.php:206
+msgid "Make unsticky"
+msgstr "Fäst inte"
+
+#: html/user/forum_thread.php:207
+msgid "Make this thread not sticky"
+msgstr "Gör så att denna tråd inte är fäst"
+
+#: html/user/forum_thread.php:212
+msgid "Make sticky"
+msgstr "Fäst"
+
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Gör så att denna tråd alltid visas nära toppen av forumet"
+
+#: html/user/forum_thread.php:219
+msgid "Unlock"
+msgstr "Lås upp"
+
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Tillåt nya inlägg in denna tråd"
+
+#: html/user/forum_thread.php:225
+msgid "Lock"
+msgstr "Lås"
+
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Tillåt inte nya inlägg i denna tråd"
+
+#: html/user/forum_thread.php:233
+msgid "Move this thread to a different forum"
+msgstr "Flytta denna tråd till ett annat forum"
+
+#: html/user/forum_thread.php:238
+msgid "Edit title"
+msgstr "Ändra titel"
+
+#: html/user/forum_thread.php:239
+msgid "Edit thread title"
+msgstr "Ändra trådens titel"
+
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Ta bort tråden premanent"
+
+#: html/user/forum_thread.php:257
+msgid "Export as Notice"
+msgstr "Exportera som notis"
+
+#: html/user/forum_thread.php:263
+msgid "Don't export"
+msgstr "Exportera inte"
+
+#: html/user/forum_thread.php:264
+msgid "Don't export this news item as a Notice"
+msgstr "Exporter inte denna nyhet som en notis"
+
+#: html/user/forum_thread.php:277
+msgid "Sort"
+msgstr "Sortera"
+
+#. --------------
+#: html/user/forum_thread_status.php:54
+msgid "Thread status updated"
+msgstr "Trådens status uppdaterad"
+
+#: html/user/forum_thread_status.php:55
+msgid "The status has been updated."
+msgstr "Statusen har uppdaterats."
+
+#: html/user/forum_user_posts.php:75
+msgid "Posts by %1"
+msgstr "Inlägg av %1"
+
+#: html/user/friend.php:35
+msgid "Already friends"
+msgstr "Redan vänner"
+
+#: html/user/friend.php:41
+msgid "You requested friendship with %1 on %2."
+msgstr "Du gjorde en vänförfrågan till %1 den %2"
+
+#: html/user/friend.php:43
+msgid "This request is still pending confirmation."
+msgstr "Denna förfrågan väntar fortfarande på bekräftelse."
+
+#: html/user/friend.php:54
+msgid "%1 is not accepting friendship requests from you"
+msgstr "%1 godtar inte vänförfrågningar från dig"
+
+#: html/user/friend.php:63
+msgid "You can't be friends with yourself"
+msgstr "Du kan inte bli vän med dig själv"
+
+#: html/user/friend.php:71
+msgid "Add friend"
+msgstr "Lägg till vän"
+
+#: html/user/friend.php:76
+msgid ""
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "Du har gjort en vänförfrågan till %1. Vi kommer att meddela %1 och be honom/henne att bekräfta att ni är vänner."
+
+#: html/user/friend.php:79
+msgid "Add an optional message here:"
+msgstr "Lägg till ett frivilligt meddelande här:"
+
+#: html/user/friend.php:117
+msgid "Friend request sent"
+msgstr "Vänförfrågan skickad"
+
+#: html/user/friend.php:118
+msgid "We have notified %1 of your request."
+msgstr "Vi har meddelat %1 om din förfrågan."
+
+#: html/user/friend.php:128
+msgid "Please log in as %1"
+msgstr "Vänligen logga in som %1"
+
+#: html/user/friend.php:129
+msgid "You must log in as %1 to view this friend request"
+msgstr "Du måste logga in som %1 för att visa denna vänförfrågan"
+
+#: html/user/friend.php:140
+msgid "Friend request"
+msgstr "Vänförfrågan"
+
+#: html/user/friend.php:143
+msgid "%1 has requested friendship with you."
+msgstr "%1 vill bli vän med dig."
+
+#: html/user/friend.php:145
+msgid "%1 says: %2"
+msgstr "%1 säger: %2"
+
+#: html/user/friend.php:148
+msgid "Accept friendship"
+msgstr "Acceptera vänförfrågan"
+
+#: html/user/friend.php:148
+msgid "Click accept if %1 is in fact a friend"
+msgstr "Klicka acceptera om %1 faktiskt är en vän"
+
+#: html/user/friend.php:149
+msgid "Decline"
+msgstr "Tacka nej"
+
+#: html/user/friend.php:149
+msgid "Click decline if %1 is not a friend"
+msgstr "Klicka på tacka nej om %1 inte är en vän"
+
+#: html/user/friend.php:188
+msgid "Friendship confirmed"
+msgstr "Vänskap bekräftad"
+
+#: html/user/friend.php:189
+msgid "Your friendship with %1 has been confirmed."
+msgstr "Din vänskap med %1 är bekräftad"
+
+#: html/user/friend.php:207
+msgid "Friendship declined"
+msgstr "Vänskap avböjd"
+
+#: html/user/friend.php:208
+msgid "You have declined friendship with %1"
+msgstr "Du har avböjt vänskap med %1"
+
+#: html/user/friend.php:223
+msgid "Notification not found"
+msgstr "Notis ej funnen"
+
+#: html/user/friend.php:225
+msgid "Friend confirmed"
+msgstr "Vän bekräftad"
+
+#: html/user/friend.php:226
+msgid "You are now friends with %1."
+msgstr "Du är nu vän med %1."
+
+#: html/user/friend.php:234
+msgid "Cancel friendship?"
+msgstr "Ta bort som vän?"
+
+#: html/user/friend.php:236
+msgid "Are you sure you want to cancel your friendship with %1?"
+msgstr "Är du säker på att du vill ta bort %1 som vän?"
+
+#: html/user/friend.php:241
+msgid "Stay friends"
+msgstr "Fortsätt vara vänner"
+
+#: html/user/friend.php:251
+msgid "Friendship cancelled"
+msgstr "Vänskap avslutad"
+
+#: html/user/friend.php:252
+msgid "Your friendship with %1 has been cancelled."
+msgstr "Du är nu inte längre vän med %1."
+
+#: html/user/get_passwd.php:27
+msgid ""
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Om du känner till ditt kontos e-postadress och kan ta emot e-post där:"
+
+#: html/user/get_passwd.php:28
+msgid ""
+"Enter the email address below, and click OK. You will be sent email "
+"instructions for resetting your password."
+msgstr "Fyll i din e-postadress nedan och klicka på OK. Du kommer att få ett e-post med instruktion för hur du återställer ditt lösenord."
+
+#: html/user/get_passwd.php:46
+msgid ""
+"2) If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "2) Om du glömt bort ditt kontos e-postadress eller inte kan ta emot e-post på den adressen:"
+
+#: html/user/get_passwd.php:47
+msgid ""
+"If you have run BOINC under this account, you can still access it. Here's "
+"how:"
+msgstr "Om du har kört BOINC under detta konto kan du fortfarande komma åt det. Gör så här:"
+
+#: html/user/get_passwd.php:50
+msgid ""
+"Go to the BOINC data directory on your computer (its location is written to "
+"the Event Log at startup)."
+msgstr "Öppna BOINCs datamapp på din dator (sökvägen skrivs i händelseloggen vid uppstart)."
+
+#: html/user/get_passwd.php:51
+msgid "Find your account file for this project; it will be named <b>%1</b>."
+msgstr "Hitta din konto-fil för detta projekt, namnet ser ut så här <b>%1</b>."
+
+#: html/user/get_passwd.php:52
+msgid "Open the file in a text editor like Notepad. You'll see something like"
+msgstr "Öppna filen i en ordbehandlare som Anteckningar. Du kommer att se något som liknar"
+
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "Markera och kopiera strängen mellan %1 och %2 (%3 i detta exempel)."
+
+#: html/user/get_passwd.php:64
+msgid "Paste the string into the field below, and click OK."
+msgstr "Klistra in strängen i fältet nedan och klicka på OK."
+
+#: html/user/get_passwd.php:65
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Du kommer nu att vara inloggad; uppdatera din e-postadress och ditt lösenord."
+
+#: html/user/get_passwd.php:72
+msgid "Log in with authenticator"
+msgstr "Logga in med autentisering"
+
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Glömt din kontoinformation?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
+msgid "No GPU tasks reported"
+msgstr "Inga GPU arbetsuppgifter rapporterade"
+
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "Bästa GPU modellerna"
+
+#: html/user/gpu_list.php:207
+msgid ""
+"The following lists show the most productive GPU models on different "
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Följande lista visar de mest produktiva GPU modellerna på olika plattformar. Relativ hastighet, mätt som ett genomsnitt av den åtgångna tiden för arbetsuppgifter, visas inom parantes."
+
+#: html/user/home.php:42
+msgid "Welcome to %1"
+msgstr "Välkommen till %1"
+
+#: html/user/home.php:43
+msgid "View and edit your account preferences using the links below."
+msgstr "Visa och ändra ditt kontos inställningar med hjälp av länkarna nedan."
+
+#: html/user/home.php:46
+msgid "If you have not already done so, %1download BOINC client software%2."
+msgstr "Om du inte redan har gjort det så %1ladda ner BOINC programvaran%2."
+
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Ditt konto"
+
+#: html/user/host_app_versions.php:45
+msgid "anonymous platform"
+msgstr "anonym plattform"
+
+#: html/user/host_app_versions.php:62
+msgid "Missing platform"
+msgstr "Saknad plattform"
+
+#: html/user/host_app_versions.php:73
+msgid "Number of tasks completed"
+msgstr "Antal slutförda uppgifter"
+
+#: html/user/host_app_versions.php:74
+msgid "Max tasks per day"
+msgstr "Störst antal uppgifter per dag"
+
+#: html/user/host_app_versions.php:75
+msgid "Number of tasks today"
+msgstr "Antal uppgifter idag"
+
+#: html/user/host_app_versions.php:76
+msgid "Consecutive valid tasks"
+msgstr "Godkända jobb i följd"
+
+#: html/user/host_app_versions.php:80
+msgid "Average processing rate"
+msgstr "Genomsnittlig beräkningshastighet"
+
+#: html/user/host_app_versions.php:90
+msgid "Application details for host %1"
+msgstr "Applikationsdetaljer för enhet %1"
+
+#: html/user/host_delete.php:31
+msgid "We have no record of that computer."
+msgstr "Vi har inga uppgifter om datorn."
+
+#: html/user/host_delete.php:38
+msgid ""
+"You can not delete our record of this computer because our database still "
+"contains work for it. You must wait a few days until the work for this "
+"computer has been deleted from the project database."
+msgstr "Du kan inte ta bort uppgifterna om den här datorn eftersom vår databas fortfarande innehåller arbetsuppgifter kopplade till den. Du måste vänta några dagar tills arbetsuppgifterna har tagits bort från projektets databas."
+
+#: html/user/host_delete.php:40
+msgid "Delete record of computer"
+msgstr "Ta bort uppgifterna om datorn"
+
+#: html/user/host_delete.php:41
+msgid "Record deleted."
+msgstr "Uppgifterna borttagna."
+
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
+msgid "Return to list of your computers"
+msgstr "Återvänd till listan över dina datorer"
+
+#: html/user/host_edit_action.php:39
+msgid "Merge computer records"
+msgstr "Slå ihop datoruppgifter"
+
+#: html/user/host_edit_form.php:35
+msgid "Merge computers"
+msgstr "Slå ihop datorer"
+
+#: html/user/host_edit_form.php:38
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Ibland skapar BOINC flera identiteter för samma dator av misstag. Du kan rätta till detta genom att slå ihop den äldre identiteterna med den nyaste."
+
+#: html/user/host_edit_form.php:56
+msgid "No hosts are eligible for merging with this one."
+msgstr "Inga enheter är berättigade att slås ihop med denna."
+
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
+msgid "Show details"
+msgstr "Visa detaljer"
+
+#: html/user/host_edit_form.php:66
+msgid ""
+"Check the computers that are the same as %1 (created %2, computer ID %3):"
+msgstr "Markera de datorer som är samma som %1 (skapad %2, dator-ID %3):"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
+msgid "name"
+msgstr "Namn"
+
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
+msgid "created"
+msgstr "skapades"
+
+#: html/user/host_edit_form.php:70
+msgid "computer ID"
+msgstr "Dator-ID"
+
+#: html/user/host_edit_form.php:77
+msgid "no hostname"
+msgstr "inget enhetsnamn"
+
+#: html/user/host_edit_form.php:109
+msgid "Merge hosts"
+msgstr "Slå ihop enheter"
+
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "Datorer som tillhör %1"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Datorer gömda"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Användaren har valt att inte visa information om dennes datorer."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Dina datorer"
+
+#: html/user/host_update_credit.php:27
+msgid "Updating computer credit"
+msgstr "Uppdaterar datorpoängen"
+
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Enhetens poäng uppdaterad"
+
+#: html/user/host_venue_action.php:41
+msgid "Host venue updated"
+msgstr "Enhetens plats uppdaterad"
+
+#: html/user/host_venue_action.php:43
+msgid "none"
+msgstr "ingen"
+
+#: html/user/host_venue_action.php:46
+msgid "The venue of this host has been set to %1."
+msgstr "Platsen för denna enhet har satts till %1."
+
+#: html/user/host_venue_action.php:48
+msgid ""
+"This change will take effect the next time the host communicates with this "
+"project."
+msgstr "Denna ändring kommer att träda i kraft nästa gång enheten kommunicerar med detta projekt."
+
+#: html/user/host_venue_action.php:50
+msgid "Return to host page"
+msgstr "Återvänd till sidan för enheter"
+
+#: html/user/html.php:23
+msgid "Allowed HTML tags"
+msgstr "Tillåtna HTML-taggar"
+
+#: html/user/html.php:25
+msgid "The following HTML tags are allowed in team descriptions:"
+msgstr "Följande HTML-taggar tillåts i beskrivningen av laget:"
+
+#: html/user/html.php:27
+msgid "bold"
+msgstr "fet"
+
+#: html/user/html.php:28
+msgid "italics"
+msgstr "kursiv"
+
+#: html/user/html.php:29
+msgid "hyperlink"
+msgstr "hyperlänk"
+
+#: html/user/html.php:30
+msgid "paragraph"
+msgstr "paragraf"
+
+#: html/user/html.php:31
+msgid "break"
+msgstr "radbrytning"
+
+#: html/user/html.php:32
+msgid "preformatted"
+msgstr "förformaterad"
+
+#: html/user/html.php:33
+msgid ""
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "Bild; höjde får inte överstiga 450 pixlar. Vänligen länka inte till bilder utan tillstånd från webbsidan där bilden finns."
+
+#: html/user/html.php:35
+msgid "You can also use ampersand notation for special characters."
+msgstr "Du kan också använda ampersand (&) notation för specialtecken."
+
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Regler och policys"
+
+#: html/user/info.php:35
+msgid "Run %1 only on authorized computers"
+msgstr "Kör %1 endast på datorer med tillstånd"
+
+#: html/user/info.php:36
+msgid ""
+"Run %1 only on computers that you own, or for which you have obtained the "
+"owner's permission. Some companies and schools have policies that prohibit "
+"using their computers for projects such as %1."
+msgstr "Kör %1 endast på datorer som du äger eller där du fått ägarens tillstånd. En del företag och skolor har policys som förhindrar användandet av deras datorer för projekt som %1."
+
+#: html/user/info.php:38
+msgid "How %1 will use your computer"
+msgstr "Hur %1 kommer att använda din dator"
+
+#: html/user/info.php:39
+msgid ""
+"When you run %1 on your computer, it will use part of the computer's CPU "
+"power, disk space, and network bandwidth. You can control how much of your "
+"resources are used by %1, and when it uses them."
+msgstr "När du kör %1 på din dator så kommer en del av din processorkraft, hårddiskutrymme och nätverksbandbredd att användas. Du kan kontrollera hur mycket av dina resurser som används av %1 och när de används."
+
+#: html/user/info.php:40
+msgid ""
+"The work done by your computer contributes to the goals of %1, as described "
+"on its web site. The application programs may change from time to time."
+msgstr "Arbetet som utförs av din dator bidrar till målen med %1 så som beskrivs på dess webbplats. Applikationerna kan förändras då och då."
+
+#: html/user/info.php:42
+msgid "Privacy policy"
+msgstr "Sekretesspolicy"
+
+#: html/user/info.php:43
+msgid ""
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "Ditt konto hos %1 identifieras genom ett namn som du anger. Detta namn kan komma att visas på %1s webbplats tillsammans med en sammanfattning av det arbete som du utfört för %1. Om du vill vara anonym, välj då ett namn som inte avslöjar din identitet."
+
+#: html/user/info.php:44
+msgid ""
+"If you participate in %1, information about your computer (such as its "
+"processor type, amount of memory, etc.) will be recorded by %1 and used to "
+"decide what type of work to assign to your computer. This information will "
+"also be shown on %1's web site. Nothing that reveals your computer's "
+"location (e.g. its domain name or network address) will be shown."
+msgstr "Om du deltar i %1 kommer information om din dator (så som dess processortyp, mängd minne etc.) att sparas av %1 och användas för att avgöra vilken typ av arbete som ska skickas till din dator. Denna information kommer också att visas på %1s webbplats. Inget som kan avslöja din dators plats (t.ex. dess domännamn eller nätverksadress) kommer att visas."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "För att delta i %1 måste du ange en e-postadress där du kan ta emot e-post. Denna e-postadress kommer inte att synas på %1s webbplats eller delas med någon annan organisation. %1 kan komma att skicka periodiska nyhetsbrev som du när som helst kan avsäga dig."
+
+#: html/user/info.php:46
+msgid ""
+"Private messages sent on the %1 web site are visible only to the sender and "
+"recipient.  %1 does not examine or police the content of private messages.  "
+"If you receive unwanted private messages from another %1 user, you may add "
+"them to your %2message filter%3.  This will prevent you from seeing any "
+"public or private messages from that user."
+msgstr "Privata meddelanden på %1s webbplats är endast synliga för avsändaren och mottagaren. %1 varken undersöker eller försöker kontrollera innehållet i privata meddelanden. Om du mottar oönskade privata meddelanden från en annan användare av %1 så kan du lägga till dem i ditt %2meddelandefilter%3. Detta kommer att förhindra att du ser både publika och privata meddelanden från den användaren."
+
+#: html/user/info.php:47
+msgid ""
+"If you use our web site forums you must follow the %2posting guidelines%3.  "
+"Messages posted to the %1 forums are visible to everyone, including non-"
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Om du använder webbsidans forum så måste du följa %2riktlinjerna för inlägg%3. Inlägg i %1s forum är synliga för alla, även icke medlemmar. Genom att göra inlägg i forumen så medger du en oåterkallelig licens till var och en att läsa och kopiera dina inlägg."
+
+#: html/user/info.php:48
+msgid "Is it safe to run %1?"
+msgstr "Är det säkert att köra %1?"
+
+#: html/user/info.php:49
+msgid ""
+"Any time you download a program through the Internet you are taking a "
+"chance: the program might have dangerous errors, or the download server "
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "Varje gång du laddar ner ett program från Internet tar du en risk, programmet kan ha farliga fel eller nedladdningsservern kan ha blivit hackad. %1 har vidtagit åtgärder för att minimera dessa risker. Vi har testat våra applikationer noggrant. Våra servrar skyddas av brandväggar och är konfigurerade för hög säkerhet. För att garantera integriteten för våra nedladdningsbara applikationer så är alla körbara filer digitalt signerade på en säker dator utan uppkoppling mot Internet."
+
+#: html/user/info.php:50
+msgid ""
+"The applications run by %1 may cause some computers to overheat. If this "
+"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
+msgstr "Applikationerna som körs av %1 kan orsaka överhettning hos vissa datorer. Om detta inträffar, sluta köra %1 eller använd ett %2tilläggsprogram%3 som minskar CPU användningen."
+
+#: html/user/info.php:51
+msgid ""
+"%1 was developed by %2. BOINC was developed at the University of California."
+msgstr "%1 utvecklades av %2. BOINC utvecklades vid Universitetet i Kalifornien."
+
+#: html/user/info.php:53
+msgid "Liability"
+msgstr "Ansvar"
+
+#: html/user/info.php:54
+msgid ""
+"%1 and %2 assume no liability for damage to your computer, loss of data, or "
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 och %2 tar inget ansvar för skador som kan uppstå hos din dator, förlust av data eller någon annan händelse eller tillstånd som kan uppstå på grund av att du deltar i %1."
+
+#: html/user/info.php:56
+msgid "Other BOINC projects"
+msgstr "Andra BOINC projekt"
+
+#: html/user/info.php:57
+msgid ""
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
+"will do useful work even when %1 has no work available for it."
+msgstr "Andra projekt använder samma plattform, BOINC, så som %1. Du vill kanske överväga att delta i ett eller flera av dessa projekt. Genom att göra det så kan din dator fortsätta bidra med nyttigt arbete även när %1 inte har några arbetsuppgifter att skicka ut."
+
+#: html/user/info.php:58
+msgid ""
+"These other projects are not associated with %1, and we cannot vouch for "
+"their security practices or the nature of their research. Join them at your "
+"own risk."
+msgstr "Dessa andra projekt är inte associerade med %1 och vi kan inte gå i god för deras säkerhet eller den forskning de bedriver. Delta i dem på din egen risk."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Jag är ny"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "Jag är en BOINC-användare"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "Läs våra %1regler och policys%2."
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "Hämta BOINC programvara."
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "Hämta"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "För Android-enheter, hämta BOINC från Google Play Store eller Amazon App Store."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Kör installationsprogrammet."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Välj %1 från listan eller ange %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "Installera BOINC på enheten om det inte redan finns."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Välj Verktyg / Lägg till projektet. Välj %1 från listan eller ange %2"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Om du kör en kommandoradsversion av BOINC på den här datorn, %1Skapa ett konto%2, använd därefter %3boinccmd --project_attach%4 för att lägga till projektet."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "Gå med i %1"
+
+#: html/user/language_select.php:46
+msgid "Language selection"
+msgstr "Språkval"
+
+#: html/user/language_select.php:57
+msgid ""
+"This web site is available in several languages. The currently selected "
+"language is %1."
+msgstr "Denna webbplats finns tillgänglig på många olika språk. Nuvarande språk är %1."
+
+#: html/user/language_select.php:62
+msgid ""
+"Normally the choice of language is determined by your browser's language "
+"setting, which is: %1.  You can change this setting using:"
+msgstr "Normalt väljs språk utifrån språkinställningarna i din webbläsare, som är: %1. Du kan ändra denna inställning via:"
+
+#: html/user/language_select.php:67
+msgid "Firefox: Tools/Options/General"
+msgstr "Firefox: Verktyg/Inställningar/Allmänt"
+
+#: html/user/language_select.php:69
+msgid "Microsoft IE: Tools/Internet Options/Languages"
+msgstr "Microsoft IE: Verktyg/Internetalternativ/Språk"
+
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Eller så kan du välja ett språk från följande meny:"
+
+#: html/user/language_select.php:85
+msgid ""
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Översättningen sköts av frivilliga. Om ditt modersmål inte finns med eller saknas så %1kan du hjälpa till att översätta%2."
+
+#: html/user/login_form.php:59
+msgid "or %1create an account%2."
+msgstr "eller %1skapa ett konto%2"
+
+#: html/user/merge_by_name.php:31
+msgid "Processing %1"
+msgstr "Analyserar %1"
+
+#: html/user/merge_by_name.php:43
+msgid "Merged %1 into %2"
+msgstr "Slog ihop %1 med %2"
+
+#: html/user/merge_by_name.php:72
+msgid "Return to the list of your computers"
+msgstr "Återvänd till listan över dina datorer"
+
+#: html/user/merge_by_name.php:76
+msgid ""
+"This operation merges computers based on their domain name.\n"
+"        <p>\n"
+"        For each domain name, it will merge all older computers\n"
+"        having that name with the newest computer having that name.\n"
+"        Incompatible computers will not be merged.\n"
+"        <p>"
+msgstr "Denna åtgärd slår ihop datorer baserat på deras domän namn.\n<p>\nFör varje domän namn kommer den att slå ihop äldre datorer\nsom har det namnet med den nyaste datorn med samma\nnamn.\nInkompatibla datorer kommer inte att slås ihop.\n<p>"
+
+#: html/user/merge_by_name.php:82
+msgid "Go ahead and do this"
+msgstr "Fortsätt och genomför detta"
+
+#: html/user/merge_by_name.php:83
+msgid "Return to the list of computers"
+msgstr "Återvänd till listan över datorer"
+
+#: html/user/moderation.php:26
+msgid ""
+"\n"
+"To maximize discussion and flow of information,\n"
+"our message boards are moderated.\n"
+"Message board postings are subject to the following posting rules:\n"
+msgstr "\nFör att maximera diskussionerna och flödet av information\nså är våra forum modererade.\nInlägg i forumet måste följa reglerna:\n"
+
+#: html/user/moderation.php:30
+msgid ""
+"\n"
+"<p>\n"
+"Moderators may delete posts that violate any of these rules.\n"
+"The authors of deleted posts will be notified via email.\n"
+"Gross offenders may have their ability to post messages temporarily revoked\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
+"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
+"IP addresses of other participants, excessive thread creation to spam\n"
+"the forums, etc.), while not listed in the formal rules, may still\n"
+"lead to similar penalties.\n"
+"<p>\n"
+"If you think a post violates any of the posting rules,\n"
+"click the red X on the post and fill out the form;\n"
+"moderators will be notified of your complaint.\n"
+"Please use this button only for clear violations - not\n"
+"personal disputes.\n"
+"<p>\n"
+"We try to be as fair as we can when moderating,\n"
+"but in a large community of users, with many different viewpoints,\n"
+"there will always be some people that will not be happy\n"
+"with our moderation decisions.\n"
+"While we regret that this happens,\n"
+"please realize that we cannot suit all of the people all of the time\n"
+"and have to make decisions based on our resources and\n"
+"what is best for the forum overall.\n"
+"Please don't discuss our moderation policy on the forums. We aren't\n"
+"a social engineering project nor are we in the business of creating\n"
+"a perfectly fair system. So such discussions tend to be counterproductive\n"
+"and potentially incendiary. If you have a legitimate claim,\n"
+"send email to the address below.\n"
+"<p>\n"
+"This moderation policy is set by the %1 project.\n"
+"If you have comments about the policy, email %2.\n"
+"\n"
+msgstr "\n<p>\nModeratorerna kan ta bort inlägg som bryter som någon av dessa regler.\nFörfattarna till de borttagna inläggen kommer att få ett meddelande via e-post.\nAnvändare som gör grova övertramp kan få sin möjlighet att göra inlägg temporärt indragen\n(men för att förhindra missbruk så kan endast projektets administratörer vidta den åtgärden).\nAnnan typ av dåligt uppträdande (\"buggande\" av inlägg för att ta reda på\nIP-adresserna för andra användare, överdrivet skapande av nya  [...]
+
+#: html/user/pending.php:66
+msgid "Pending credit"
+msgstr "Oavgjord poäng"
+
+#: html/user/pending.php:68
+msgid "Result ID"
+msgstr "Resultat ID"
+
+#: html/user/pending.php:68
+msgid "Workunit ID"
+msgstr "Jobb ID"
+
+#: html/user/pending.php:68
+msgid "Host ID"
+msgstr "Enhets ID"
+
+#: html/user/pending.php:68
+msgid "Claimed credit"
+msgstr "Ansökt poäng"
+
+#: html/user/pending.php:81
+msgid "Pending credit: %1"
+msgstr "Oavgjord poäng: %1"
+
+#: html/user/pm.php:29
+msgid "Block messages from this user"
+msgstr "Blockera meddelanden från denna användare"
+
+#: html/user/pm.php:29
+msgid "Block user"
+msgstr "Blockera användare"
+
+#: html/user/pm.php:61
+msgid "Your message has been sent."
+msgstr "Ditt meddelande har skickats."
+
+#: html/user/pm.php:71
+msgid "You have no private messages."
+msgstr "Du har inga privata meddelanden."
+
+#: html/user/pm.php:79
+msgid "Sender and date"
+msgstr "Avsändare och datum"
+
+#: html/user/pm.php:99
+msgid "Reply to this message"
+msgstr "Svara detta meddelande"
+
+#: html/user/pm.php:100
+msgid "Delete this message"
+msgstr "Ta bort detta meddelande"
+
+#: html/user/pm.php:105
+msgid "Select all"
+msgstr "Välj alla"
+
+#: html/user/pm.php:107
+msgid "Unselect all"
+msgstr "Välj inga"
+
+#: html/user/pm.php:110
+msgid "Delete selected messages"
+msgstr "Ta bort valda meddelanden"
+
+#: html/user/pm.php:134
+msgid "Sender"
+msgstr "Avsändare"
+
+#: html/user/pm.php:137
+msgid "Date"
+msgstr "Datum"
+
+#: html/user/pm.php:190 html/user/pm.php:220
+msgid "You need to fill all fields to send a private message"
+msgstr "Du behöver fylla i alla fält för att skicka ett privat meddelande"
+
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Meddelande skickat"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Ditt meddelande skickades till %1 lagmedlemmar."
+
+#: html/user/pm.php:224
+msgid ""
+"Your message was flagged as spam\n"
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Ditt meddelande flaggades som skräppost\nav Akismet anti-spam system.\nÄndra din text och försök igen."
+
+#: html/user/pm.php:241
+msgid "Could not find user with id %1"
+msgstr "Kunde inte hitta någon användare med id %1"
+
+#: html/user/pm.php:246
+msgid "Could not find user with username %1"
+msgstr "Kunde inte hitta någon användare med användarnamnet %1"
+
+#. Non-unique username
+#: html/user/pm.php:248
+msgid "%1 is not a unique username; you will have to use user ID"
+msgstr "%1 är inte ett unikt användarnamn, du måste använda dig av användare ID"
+
+#: html/user/pm.php:254
+msgid "User %1 (ID: %2) is not accepting private messages from you."
+msgstr "Användare %1 (ID: %2) tar godtar inte privata meddelanden från dig."
+
+#: html/user/pm.php:276 html/user/view_profile.php:28
+msgid "No such user"
+msgstr "Ingen sådan användare"
+
+#: html/user/pm.php:278
+msgid "Really block %1?"
+msgstr "Verkligen blockera %1?"
+
+#: html/user/pm.php:279
+msgid ""
+"Are you really sure you want to block user %1 from sending you private "
+"messages?"
+msgstr "Är du verkligen säker på att du vill hindra användare %1 att skicka privata meddelanden till dig?"
+
+#: html/user/pm.php:280
+msgid "Please note that you can only block a limited amount of users."
+msgstr "Vänligen notera att du endast kan blockera ett begränsat antal användare."
+
+#: html/user/pm.php:281
+msgid ""
+"Once the user has been blocked you can unblock it using forum preferences "
+"page."
+msgstr "När en användare har blockerats kan du ta bort blockeringen via forumets inställningssida."
+
+#: html/user/pm.php:288
+msgid "No, cancel"
+msgstr "Nej, avbryt"
+
+#: html/user/pm.php:297 html/user/team_admins.php:101
+msgid "no such user"
+msgstr "ingen sådan användare"
+
+#: html/user/pm.php:300
+msgid "User %1 blocked"
+msgstr "Användare %1 blockerad"
+
+#: html/user/pm.php:302
+msgid "User %1 has been blocked from sending you private messages."
+msgstr "Användare %1 har blockerats att skicka privata meddelanden till dig."
+
+#: html/user/pm.php:303
+msgid "To unblock, visit %1message board preferences%2"
+msgstr "För att ta bort blockeringen, besök %1forumets inställningar%2"
+
+#: html/user/pm.php:365
+msgid "Unknown action"
+msgstr "Okänd åtgärd"
+
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 för %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Tillbaka till inställningarna"
+
+#: html/user/prefs.php:33
+msgid ""
+"Your preferences have been updated, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Dina inställningar har uppdaterats och\nde kommer att träda i kraft när din dator kommunicerar med %1\neller du klickar på %2Uppdatera%3 knappen i BOINC Manager."
+
+#: html/user/prefs.php:42
+msgid ""
+"Your preferences have been reset to the defaults, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "Dina inställningar har återställts till standardvärdena och\nde kommer att träda i kraft när din dator kommunicerar med %1\neller du klickar på %2Uppdatera%3 knappen i BOINC Manager."
+
+#: html/user/prefs_remove.php:46
+msgid "Confirm delete preferences"
+msgstr "Bekräfta borttagning av inställningarna"
+
+#: html/user/prefs_remove.php:49
+msgid "Are you sure you want to delete your separate %1 preferences for %2?"
+msgstr "Är du säker på att du vill ta bort de separata %1 inställningarna för %2?"
+
+#: html/user/prefs_remove.php:53
+msgid "Remove preferences"
+msgstr "Ta bort inställningarna"
+
+#: html/user/prefs_remove.php:55
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: html/user/profile_menu.php:37
+msgid ""
+"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
+"community."
+msgstr "%1Profiler%2 låter användare dela med sig av sin bakgrund och sina åsikter till %3s gemenskap."
+
+#: html/user/profile_menu.php:38
+msgid ""
+"Explore the diversity of your fellow volunteers, and contribute your own "
+"views for others to enjoy."
+msgstr "Undersök mångfalden bland de andra frivilliga och bidra med dina egna åsikter för andra att åtnjuta."
+
+#: html/user/profile_menu.php:39
+msgid ""
+"If you haven't already, you can %1create your own user profile%2 for others "
+"to see!"
+msgstr "Om du inte redan har gjort det så kan du %1skapa din egen profil%2 för andra att läsa!"
+
+#: html/user/profile_menu.php:44
+msgid "User of the Day"
+msgstr "Dagens användare"
+
+#: html/user/profile_menu.php:59
+msgid "User Profile Explorer"
+msgstr "Användarprofilutforskare"
+
+#: html/user/profile_menu.php:62
+msgid "View the %1User Picture Gallery%2."
+msgstr "Visa %1Användarbildsgalleriet%2."
+
+#: html/user/profile_menu.php:63
+msgid "Browse profiles %1by country%2."
+msgstr "Bläddra bland profiler %1sorterat efter land%2."
+
+#: html/user/profile_menu.php:64
+msgid ""
+"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
+"without pictures%2."
+msgstr "Bläddra bland profiler %1slumpmässigt%2, %3slumpmässigt med bilder%2 eller %4slumpmässigt utan bilder%2."
+
+#: html/user/profile_menu.php:68
+msgid "Alphabetical profile listings:"
+msgstr "Profillista i alfabetisk ordning:"
+
+#: html/user/profile_menu.php:74
+msgid "Search profile text"
+msgstr "Sök i profiltext"
+
+#: html/user/profile_menu.php:100
+msgid "No profiles"
+msgstr "Inga profiler"
+
+#: html/user/profile_menu.php:101
+msgid "No profiles matched your query."
+msgstr "Inga profiler matchade din sökning."
+
+#: html/user/profile_rate.php:31
+msgid "Invalid vote type:"
+msgstr "Ogiltig röstningstyp:"
+
+#: html/user/profile_rate.php:36
+msgid "Vote Recorded"
+msgstr "Röst registrerad"
+
+#: html/user/profile_rate.php:40
+msgid "Thank you"
+msgstr "Tack"
+
+#: html/user/profile_rate.php:43
+msgid "Your recommendation has been recorded."
+msgstr "Din rekommendation har registrerats."
+
+#: html/user/profile_rate.php:45
+msgid "Your vote to reject this profile has been recorded."
+msgstr "Din röst att förkasta denna profil har registrerats."
+
+#: html/user/profile_rate.php:48
+msgid "Return to profile."
+msgstr "Återvänd till profilen."
+
+#: html/user/profile_search_action.php:38
+msgid "Profiles containing '%1'"
+msgstr "Profiler som innehåller \"%1\""
+
+#: html/user/profile_search_action.php:42
+msgid "User name"
+msgstr "Användarnamn"
+
+#: html/user/profile_search_action.php:43
+msgid "Joined project"
+msgstr "Gick med i projektet"
+
+#: html/user/profile_search_action.php:46
+msgid "Recent credit"
+msgstr "Senaste poäng"
+
+#: html/user/profile_search_action.php:56
+msgid "No profiles found containing '%1'"
+msgstr "Inga profiler kunde hittas som innehåller \"%1\""
+
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Igen sådan arbetsuppgift:"
+
+#: html/user/results.php:29
+msgid "This feature is turned off temporarily"
+msgstr "Den här funktionen är tillfälligt avstängd"
+
+#: html/user/results.php:56
+msgid "No computer with ID %1 found"
+msgstr "Ingen dator med ID %1 hittades"
+
+#: html/user/results.php:63
+msgid "No access"
+msgstr "Igen access"
+
+#: html/user/results.php:69
+msgid "Missing user ID or host ID"
+msgstr "Saknar användar ID eller enhets ID"
+
+#: html/user/results.php:105
+msgid "No tasks to display"
+msgstr "Inga arbetsuppgifter att visa"
+
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 är tillfälligt avstängt för underhåll."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "Vad är %1?"
+
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Nyheter"
+
+#: html/user/server_status.php:57
+msgid "Not Running"
+msgstr "Körs inte"
+
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "Kör"
+
+#: html/user/server_status.php:65
+msgid "Disabled"
+msgstr "Inaktiverad"
+
+#: html/user/server_status.php:103
+msgid "Project status"
+msgstr "Projektstatus"
+
+#: html/user/server_status.php:112
+msgid "Program"
+msgstr "Program"
+
+#: html/user/server_status.php:112
+msgid "Host"
+msgstr "Värd"
+
+#: html/user/server_status.php:135
+msgid "Computing status"
+msgstr "Beräkningsstatus"
+
+#: html/user/server_status.php:146
+msgid "Users"
+msgstr "Användare"
+
+#: html/user/server_status.php:161
+msgid "Tasks by application"
+msgstr "Arbetsuppgifter per applikation"
+
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Körtid för de senaste 100 arbetsuppgifterna i timmar: medel, min, max"
+
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Användare de senaste 24 timmarna"
+
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Schemaversion för databasen:"
+
+#: html/user/show_host_detail.php:40
+msgid "Computer %1"
+msgstr "Dator %1"
+
+#: html/user/stats.php:21
+msgid "Statistics and leaderboards"
+msgstr "Statistik och topplistor"
+
+#: html/user/stats.php:30
+msgid "Statistics for %1"
+msgstr "Statistik för %1"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "Bästa användarna"
+
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "Bästa lagen"
+
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "Bästa datorerna"
+
+#: html/user/stats.php:53
+msgid ""
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "Mer detaljerad statistik för %1 och andra BOINC baserade projekt finns tillgänglig på flertalet webbplatser:"
+
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Du kan också få din egna nuvarande statistik i formen av en \"signaturbild\":"
+
+#: html/user/stats.php:59
+msgid ""
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Utöver det så kan du få din individuella statistik summerad för alla BOINC projekt från flertalet sidor; se din %1hemsida%2."
+
+#: html/user/team_admins.php:36
+msgid "Remove Team Admin status from this member"
+msgstr "Ta bort Lagadministratörsstatus från den här medlemmen"
+
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
+msgid "Add or remove Team Admins"
+msgstr "Lägg till eller ta bort Lagadministratörer"
+
+#: html/user/team_admins.php:43
+msgid "You can select team members as 'Team Admins'. Team Admins can:"
+msgstr "Du kan utse lagmedlemmar till \"Lagadministratörer\". Lagadministratörer kan:"
+
+#: html/user/team_admins.php:45
+msgid "Edit team information (name, URL, description, country)"
+msgstr "Ändra laginformationen (namn, URL, beskrivning, land)"
+
+#: html/user/team_admins.php:46
+msgid "View the team's join/quit history"
+msgstr "Visa lagets gå med/gå ur historik"
+
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Skicka meddelande till laget"
+
+#: html/user/team_admins.php:48
+msgid ""
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Moderera lagets forum om det finns ett (administratörer får ett e-postmeddelande om modereringsaktioner och röd X rapporter)"
+
+#: html/user/team_admins.php:50
+msgid "Team Admins cannot:"
+msgstr "Lagadministratörer kan inte:"
+
+#: html/user/team_admins.php:52
+msgid "Change the team founder"
+msgstr "Ändra lagets grundare"
+
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
+msgid "Remove members"
+msgstr "Ta bort medlemmar"
+
+#: html/user/team_admins.php:56
+msgid "If a Team Admin quits the team, they cease to be a Team Admin."
+msgstr "Om en Lagadministratör går ur laget så upphör de att vara en Lagadministratör."
+
+#: html/user/team_admins.php:57
+msgid ""
+"We recommend that you select only people you know and trust very well as "
+"Team Admins."
+msgstr "Vi rekommenderar att du bara väljer personer som du litar väldig mycket på som Lagadministratörer."
+
+#: html/user/team_admins.php:62
+msgid "There are currently no Team Admins"
+msgstr "Det finns för närvarande inga Lagadministratörer"
+
+#: html/user/team_admins.php:64
+msgid "Current Team Admins"
+msgstr "Nuvarande Lagadministratörer"
+
+#: html/user/team_admins.php:65
+msgid "Became Team Admin on"
+msgstr "Blev Lagadministratör den"
+
+#: html/user/team_admins.php:80
+msgid "Add Team Admin"
+msgstr "Lägg till Lagadministratör"
+
+#: html/user/team_admins.php:81
+msgid "Email address of team member:"
+msgstr "Lagmedlemmens e-postadress"
+
+#: html/user/team_admins.php:93
+msgid "failed to remove admin"
+msgstr "misslyckades med att ta bort administratör"
+
+#: html/user/team_admins.php:102
+msgid "User is not member of team"
+msgstr "Användaren är inte medlem i laget"
+
+#: html/user/team_admins.php:104
+msgid "%1 is already an admin of %2"
+msgstr "%1 är redan administratör för %2"
+
+#: html/user/team_admins.php:108
+msgid "Couldn't add admin"
+msgstr "Kunde inte lägga till administratör"
+
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
+msgid "No such team"
+msgstr "Inget sådant lag"
+
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
+msgid "no such team"
+msgstr "inget sådant lag"
+
+#: html/user/team_change_founder_action.php:40
+msgid "User is not a member of %1"
+msgstr "Användaren är inte medlem i %1"
+
+#: html/user/team_change_founder_action.php:43
+msgid "Changing founder of %1"
+msgstr "Byter grundare av %1"
+
+#: html/user/team_change_founder_action.php:45
+msgid "%1 is now founder of %2"
+msgstr "%1 är nu grundare av %2"
+
+#: html/user/team_change_founder_form.php:39
+msgid "Change founder of %1"
+msgstr "Byt grundare av %1"
+
+#: html/user/team_change_founder_form.php:45
+msgid ""
+"Team member %1 requested this team's foundership on %2, but left the team, "
+"thus canceling the request."
+msgstr "Lagmedlem %1 ansökte om grundarstatus den %2, men lämnade laget och avbröt därmed ansökan."
+
+#: html/user/team_change_founder_form.php:51
+msgid ""
+"Team member %1 has requested this team's foundership. This may be because "
+"you left the team or haven't had contact with the team for a long time."
+msgstr "Lagmedlem %1 har ansökt om grundarstatus för det här laget. Detta kan bero på att du lämnade laget eller inte har haft kontakt med laget på lång tid."
+
+#: html/user/team_change_founder_form.php:57
+msgid "decline request"
+msgstr "avböj förfrågan"
+
+#: html/user/team_change_founder_form.php:60
+msgid ""
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "Om du inte avböjer förfrågan innan %1, kommer %2 att ha möjligheten att ta över grundarstatusen för laget.<br /><br />\nFör att acceptera förfrågan ge grundarstatus till %3 via formuläret nedan."
+
+#: html/user/team_change_founder_form.php:68
+msgid "No transfer request is pending."
+msgstr "Ingen förfrågan om överlåtelse väntar."
+
+#: html/user/team_change_founder_form.php:71
+msgid ""
+"To assign foundership of this team to another member, check the box next to "
+"member name and click %1Change founder%2 below."
+msgstr "För att överföra grundarstatus till en annan lagmedlem, markera rutan bredvid medlemmens namn och klicka på %1Byt grundare%2 nedan."
+
+#: html/user/team_change_founder_form.php:81
+msgid "New founder?"
+msgstr "Ny grundare?"
+
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
+msgid "Change founder"
+msgstr "Byt grundare"
+
+#: html/user/team_change_founder_form.php:116
+msgid "There are no users to transfer team to."
+msgstr "Det finns ingen användare att överlåta laget till."
+
+#: html/user/team_create_action.php:35
+msgid "You must choose a non-blank team name"
+msgstr "Du måste välja ett icke-tomt lagnamn"
+
+#: html/user/team_create_action.php:40
+msgid "A team named %1 already exists - try another name"
+msgstr "Ett lag med namnet %1 finns redan - försök med ett annat namn"
+
+#: html/user/team_create_action.php:60
+msgid "Could not create team - please try later."
+msgstr "Kunde inte skapa laget - vänligen försök igen senare."
+
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
+msgid "Create a team"
+msgstr "Skapa ett lag"
+
+#: html/user/team_create_form.php:31
+msgid ""
+"You belong to %1. You must %2quit this team%3 before creating a new one."
+msgstr "Du tillhör %1. Du måste %2lämna det här laget%3 innan du kan skapa ett nytt."
+
+#: html/user/team_delta.php:66
+msgid "Not founder or admin"
+msgstr "Inte grundare eller lagadministratör"
+
+#: html/user/team_delta.php:73
+msgid "Team history for %1"
+msgstr "Laghistorik för %1"
+
+#: html/user/team_delta.php:77
+msgid "When"
+msgstr "När"
+
+#: html/user/team_delta.php:78
+msgid "User"
+msgstr "Användare"
+
+#: html/user/team_delta.php:79
+msgid "Action"
+msgstr "Handling"
+
+#: html/user/team_delta.php:80
+msgid "Total credit at time of action"
+msgstr "Total poäng vid tiden för handlingen"
+
+#: html/user/team_edit_action.php:55
+msgid "bad country"
+msgstr "felaktigt land"
+
+#: html/user/team_edit_action.php:61
+msgid "The name '%1' is being used by another team."
+msgstr "Namnet \"%1\" används av ett annat lag."
+
+#: html/user/team_edit_action.php:64
+msgid "Must specify team name"
+msgstr "Måste specificera ett lagnamn"
+
+#: html/user/team_edit_action.php:92
+msgid "Could not update team - please try again later."
+msgstr "Kunde inte uppdatera laget - vänligen försök igen senare."
+
+#: html/user/team_edit_form.php:35
+msgid "Edit %1"
+msgstr "Ändra %1"
+
+#: html/user/team_edit_form.php:36
+msgid "Update team info"
+msgstr "Uppdatera laginformationen"
+
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "Medlemmar i %1"
+
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
+
+#: html/user/team_email_list.php:93
+msgid "Show as plain text"
+msgstr "Visa som vanlig text"
+
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
+msgid "Create Message Board"
+msgstr "Skapa Forum"
+
+#: html/user/team_forum.php:31
+msgid "You may create a message board for use by %1."
+msgstr "Du kan skapa ett eget forum för %1."
+
+#: html/user/team_forum.php:33
+msgid "Only team members will be able to post."
+msgstr "Endast lagmedlemmar kan göra inlägg."
+
+#: html/user/team_forum.php:34
+msgid "At your option, only members will be able to read."
+msgstr "Du kan välja att endast lagmedlemmar ska kunna läsa."
+
+#: html/user/team_forum.php:35
+msgid "You and your Team Admins will have moderator privileges."
+msgstr "Du och dina Lagadministratörer har modereringsrättigheter."
+
+#: html/user/team_forum.php:42
+msgid "Create a message board for %1"
+msgstr "Skapa ett lagforum för %1"
+
+#: html/user/team_forum.php:50
+msgid "Team already has a message board"
+msgstr "Laget har redan ett forum"
+
+#: html/user/team_forum.php:61
+msgid "Team Message Board"
+msgstr "Lagforum"
+
+#: html/user/team_forum.php:78
+msgid "Minimum time between posts (seconds)"
+msgstr "Minsta tid mellan inlägg (sekunder)"
+
+#: html/user/team_forum.php:81
+msgid "Minimum total credit to post"
+msgstr "Minsta poäng för att kunna skriva inlägg"
+
+#: html/user/team_forum.php:84
+msgid "Minimum average credit to post"
+msgstr "Minsta genomsnittlig poäng för att göra inlägg"
+
+#: html/user/team_forum.php:87
+msgid "Submit"
+msgstr "Skicka"
+
+#: html/user/team_forum.php:97
+msgid "Remove your team's message board."
+msgstr "Ta bort lagets forum"
+
+#: html/user/team_forum.php:105
+msgid "Really remove message board?"
+msgstr "Vill du verkligen ta bort lagets forum?"
+
+#: html/user/team_forum.php:106
+msgid ""
+"Are you sure you want to remove your team's message board? All threads and "
+"posts will be permanently removed. (You may, however, create a new message "
+"board later)."
+msgstr "Är du säker på att du vill ta bort lagets forum? Alla trådar och inlägg kommer att tas bort permanent. (Du kan skapa ett nytt forum senare)."
+
+#: html/user/team_forum.php:108
+msgid "Yes - remove message board"
+msgstr "Ja - ta bort lagforumet"
+
+#: html/user/team_forum.php:129
+msgid "Message board removed"
+msgstr "Lagforumet borttaget"
+
+#: html/user/team_forum.php:132
+msgid ""
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Ditt lags forum har tagits bort. Du kan nu %1skapa ett nytt%2."
+
+#: html/user/team_forum.php:151
+msgid "Team Message Board Updated"
+msgstr "Lagforumet uppdaterat"
+
+#: html/user/team_forum.php:152
+msgid "Update successful"
+msgstr "Uppdatering lyckades"
+
+#: html/user/team_forum.php:155
+msgid "Update failed"
+msgstr "Uppdatering misslyckades"
+
+#: html/user/team_forum.php:162
+msgid "Team has no forum"
+msgstr "Laget har inget forum"
+
+#: html/user/team_founder_transfer_action.php:38
+msgid "You must be a member of a team to access this page."
+msgstr "Du måste vara medlem i ett lag för att visa denna sida."
+
+#: html/user/team_founder_transfer_action.php:100
+msgid "Requesting foundership of %1"
+msgstr "Ansöker om grundarstatus för %1"
+
+#: html/user/team_founder_transfer_action.php:108
+msgid ""
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "Den nuvarande grundaren har blivit meddelad om din ansökan via e-post och privat meddelande.<br /><br />\nOm grundaren inte svarar inom 60 dagar kommer du att tillåtas överta grundarstatusen."
+
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
+msgid "Foundership request not allowed now"
+msgstr "Ansökan om grundarstatus tillåts inte nu"
+
+#: html/user/team_founder_transfer_action.php:119
+msgid "Assumed foundership of %1"
+msgstr "Överta grundarstatus för %1"
+
+#: html/user/team_founder_transfer_action.php:121
+msgid ""
+"Congratulations, you are now the founder of team %1. Go to %2Your Account "
+"page%3 to find the Team Admin options."
+msgstr "Grattis, du är nu grundare av laget %1. Gå till %2ditt konto%3 för att hitta Lagadministrationsinställningarna."
+
+#: html/user/team_founder_transfer_action.php:130
+msgid "Decline founder change request"
+msgstr "Avböj ansökan om överföring av grundarstatus"
+
+#: html/user/team_founder_transfer_action.php:137
+msgid "The foundership request from %1 has been declined."
+msgstr "Ansökan om överföring av grundarstatus från %1 har avböjts."
+
+#: html/user/team_founder_transfer_action.php:140
+msgid "There were no foundership requests."
+msgstr "Det fanns inga ansökningar om överföring av grundarstatus"
+
+#: html/user/team_founder_transfer_action.php:144
+msgid "undefined action %1"
+msgstr "odefinierad handling %1"
+
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
+msgid "Return to team page"
+msgstr "Återvänd till lagsidan"
+
+#: html/user/team_founder_transfer_form.php:30
+msgid "You need to be a member of a team to access this page."
+msgstr "Du måste vara medlem i ett lag för att visa denna sida."
+
+#: html/user/team_founder_transfer_form.php:33
+msgid "Request foundership of %1"
+msgstr "Ansök om grundarstatus för %1"
+
+#: html/user/team_founder_transfer_form.php:40
+msgid "You are now founder of team %1."
+msgstr "Du är nu grundare för lag %1."
+
+#: html/user/team_founder_transfer_form.php:46
+msgid "You requested the foundership of %1 on %2."
+msgstr "Du ansökte om grundarstatus för %1 den %2."
+
+#: html/user/team_founder_transfer_form.php:49
+msgid ""
+"60 days have elapsed since your request, and the founder has not responded. "
+"You may now assume foundership by clicking here:"
+msgstr "60 dagar har gått sedan din ansökan och grundaren har inte svarat. Du kan nu överta grundarstatusen genom att klicka här:"
+
+#: html/user/team_founder_transfer_form.php:52
+msgid "Assume foundership"
+msgstr "Överta grundarstatus"
+
+#: html/user/team_founder_transfer_form.php:56
+msgid ""
+"The founder was notified of your request. If he/she does not respond by %1 "
+"you will be given an option to become founder."
+msgstr "Grundaren har meddelats om din ansökan. Om han/hon inte svarar före %1 kommer du att få möjligheten att överta grundarstatusen."
+
+#: html/user/team_founder_transfer_form.php:62
+msgid ""
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
+"                       Are you sure you want to request foundership?"
+msgstr "Om lagets grundare inte är aktiv och du vill ta över statusen som grundare, klicka på knappen nedan. Den nuvarande grundaren kommer att få ett e-post med uppgifter om din ansökan och kommer att kunna överföra statusen som grundare till dig eller avböja din ansökan. Om grundaren inte svarar inom 60 dagar kommer du tillåtas att bli grundare.<br /><br />\nÄr du säker på att du vill ansöka om att bli grundare?"
+
+#: html/user/team_founder_transfer_form.php:67
+msgid "Request foundership"
+msgstr "Begär grundarstatus"
+
+#: html/user/team_founder_transfer_form.php:76
+msgid "Founder change has already been requested by %1 on %2."
+msgstr "Övertagande av grundarstatus har redan ansökts av %1 den %2."
+
+#: html/user/team_founder_transfer_form.php:79
+msgid ""
+"A foundership change was requested during the last 90 days, so new requests "
+"are not allowed. Please try again later."
+msgstr "En ansökan om övertagande av grundarstatus har redan gjorts under de senaste 90 dagarna, så en ny ansökan tillåts inte. Vänligen försök igen senare."
+
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
+msgid "The team %1 is not joinable."
+msgstr "Det går inte att gå med i laget %1."
+
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
+msgid "Already a member"
+msgstr "Redan medlem"
+
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
+msgid "You are already a member of %1."
+msgstr "Du är redan medlem i %1."
+
+#: html/user/team_join_action.php:42
+msgid "Joined %1"
+msgstr "Gick med i %1"
+
+#: html/user/team_join_action.php:43
+msgid "You have joined %1."
+msgstr "Du har gått med i %1."
+
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Kunde inte gå med i laget - vänligen försök igen senare."
+
+#: html/user/team_join_form.php:35
+msgid "Please note:"
+msgstr "Vänligen notera:"
+
+#: html/user/team_join_form.php:37
+msgid "Joining a team gives its founder access to your email address."
+msgstr "Att gå med i ett lag ger lagets grundare tillgång till din e-postadress."
+
+#: html/user/team_join_form.php:38
+msgid "Joining a team does not affect your account's credit."
+msgstr "Att gå med i ett lag påverkar inte ditt kontos poäng."
+
+#: html/user/team_join_form.php:45
+msgid "Join team"
+msgstr "Gå med i lag"
+
+#: html/user/team_lookup.php:88
+msgid "Search Results"
+msgstr "Sökresultat"
+
+#: html/user/team_lookup.php:90
+msgid "Search results for '%1'"
+msgstr "Sökresultat för \"%1\""
+
+#: html/user/team_lookup.php:92
+msgid "You may view these teams' members, statistics, and information."
+msgstr "Du kan visa dessa lags medlemmar, statistik och information."
+
+#: html/user/team_lookup.php:102
+msgid "More than 100 teams match your search. The first 100 are shown."
+msgstr "Fler än 100 lag matchade din sökning. De första 100 visas."
+
+#: html/user/team_lookup.php:108
+msgid ""
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Slutet av resultatet. %1 Om du inte kan hitta laget du söker efter så kan du %2skapa ett eget lag%3."
+
+#: html/user/team_manage.php:28
+msgid "Team administration for %1"
+msgstr "Lagadministration för %1"
+
+#: html/user/team_manage.php:31
+msgid "Edit team info"
+msgstr "Redigera lagets information"
+
+#: html/user/team_manage.php:32
+msgid "Change team name, URL, description, type, or country"
+msgstr "Ändra lagnamn, URL, beskrivning, typ eller land"
+
+#: html/user/team_manage.php:35
+msgid "Member list:"
+msgstr "Medlemslista:"
+
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
+msgid "HTML"
+msgstr "HTML"
+
+#: html/user/team_manage.php:37
+msgid "text"
+msgstr "text"
+
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Visa medlemsinformation"
+
+#: html/user/team_manage.php:40
+msgid "View change history:"
+msgstr "Visa ändringshistorik:"
+
+#: html/user/team_manage.php:43
+msgid "See when members joined or quit this team"
+msgstr "Visa när medlemmar gick med eller lämnade det här laget"
+
+#: html/user/team_manage.php:54
+msgid "Respond to foundership request."
+msgstr "Svara på ansökan om grundarstatus."
+
+#: html/user/team_manage.php:54
+msgid "If you don't respond by %1, %2 may assume foundership of this team."
+msgstr "Om du inte svarar innan %1, så kan %2 överta grundarstatusen för det här laget."
+
+#: html/user/team_manage.php:59
+msgid "Remove inactive or unwanted members from this team"
+msgstr "Ta bort inaktiva eller oönskade medlemmar från det här laget."
+
+#: html/user/team_manage.php:61
+msgid "Transfer foundership to another member"
+msgstr "Överför grundarstatusen till en annan medlem"
+
+#: html/user/team_manage.php:62
+msgid "Add/remove Team Admins"
+msgstr "Lägg till/ta bort Lagadministratörer"
+
+#: html/user/team_manage.php:63
+msgid "Give selected team members Team Admin privileges"
+msgstr "Ge valda medlemmar Lagadministratörsrättigheter"
+
+#: html/user/team_manage.php:65
+msgid "Remove team"
+msgstr "Ta bort laget"
+
+#: html/user/team_manage.php:66
+msgid "Allowed only if team has no members"
+msgstr "Tillåtet endast om laget inte har några medlemmar"
+
+#: html/user/team_manage.php:68
+msgid "Create or manage a team message board"
+msgstr "Skapa eller hantera ett lagforum"
+
+#: html/user/team_manage.php:75
+msgid ""
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "För att detta lag ska skapas hos alla BOINC projekt (nuvarande och framtid) kan du  konvertera det till ett %1BOINC-omspännande lag%2."
+
+#: html/user/team_manage.php:77
+msgid ""
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "Lagadministratörer uppmanas att gå med i och delta i Googlegruppen %1boinc-lag-grundare%2."
+
+#: html/user/team_manage.php:93
+msgid "Can't delete non-empty team"
+msgstr "Kan inte ta bort ett icke tomt lag"
+
+#: html/user/team_manage.php:97
+msgid "Team %1 deleted"
+msgstr "Lag %1 borttaget"
+
+#: html/user/team_members.php:38
+msgid "Limit exceeded:  Can only display the first 1000 members."
+msgstr "Gräns överskriden: Kan endast visa de första 1000 medlemmarna."
+
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 användare kan skapa %2lag%3."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Du kan bara tillhöra ett lag. Du kan gå med i eller gå ur ett lag när som helst."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Varje lag har en %1grundare%2 som kan:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "ändra lagets namn och beskrivning"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "lägga till eller ta bort lagadministratörer"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "ta bort medlemmar ur laget"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "ta bort laget om det inte har några medlemmar"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "För att gå med i ett lag, besök lagets sida och klicka på %1Gå med i det här laget%2."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Hitta ett lag"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Alla lag"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 lag"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Skapa ett nytt lag"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Om du inte kan hitta ett lag som passar dig så kan du %1skapa ett lag%2."
+
+#: html/user/team_quit_action.php:34
+msgid "Unable to quit team"
+msgstr "Kunde inte lämna laget"
+
+#: html/user/team_quit_action.php:35
+msgid "Team doesn't exist, or you don't belong to it."
+msgstr "Laget finns inte eller så är du inte medlem i det."
+
+#: html/user/team_quit_form.php:33
+msgid "Quit %1"
+msgstr "Lämna %1"
+
+#: html/user/team_quit_form.php:34
+msgid ""
+"<strong>Please note before quitting a team:</strong>\n"
+"         <ul>\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
+"         </ul>"
+msgstr "<strong>Vänligen notera innan du lämnar ett lag:</strong>\n<ul>\n<li>Om du lämnar ett lag så kan du gå med i det igen senare eller gå med i vilket annat lag du önskar.\n<li>Att lämna ett lag påverkar inte din personliga poängstatistik på något sätt.\n</ul>"
+
+#: html/user/team_quit_form.php:42
+msgid "Quit Team"
+msgstr "Lämna lag"
+
+#: html/user/team_remove_inactive_action.php:33
+msgid "Removing users from %1"
+msgstr "Tar bort användare från %1"
+
+#: html/user/team_remove_inactive_action.php:41
+msgid "%1 is not a member of %2"
+msgstr "%1 är inte medlem i %2"
+
+#: html/user/team_remove_inactive_action.php:44
+msgid "%1 has been removed"
+msgstr "%1 har tagits bort"
+
+#: html/user/team_remove_inactive_form.php:34
+msgid "Remove members from %1"
+msgstr "Ta bort medlemmar från %1"
+
+#: html/user/team_remove_inactive_form.php:42
+msgid "Remove?"
+msgstr "Ta bort?"
+
+#: html/user/team_remove_inactive_form.php:43
+msgid "Name (ID)"
+msgstr "Namn (ID)"
+
+#: html/user/team_remove_inactive_form.php:68
+msgid "No members are eligible for removal."
+msgstr "Inga medlemmar är kvalificerade för borttagning."
+
+#: html/user/team_remove_inactive_form.php:71
+msgid "Remove users"
+msgstr "Ta bort användare"
+
+#: html/user/team_search.php:76
+msgid "Team name"
+msgstr "Lagnamn"
+
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Validerad?"
+
+#: html/user/team_search.php:115
+msgid "Team search results"
+msgstr "Lagsöksresultat"
+
+#: html/user/team_search.php:117
+msgid "No teams were found matching your criteria. Try another search."
+msgstr "Inga lag hittade som matchar dina kriterier. Försök med en annan sökning."
+
+#: html/user/team_search.php:119
+msgid "Or you can %1create a new team%2."
+msgstr "Eller så kan du %1skapa ett lag%2."
+
+#: html/user/team_search.php:123
+msgid ""
+"The following teams match one or more of your search criteria.\n"
+"            To join a team, click its name to go to the team page,\n"
+"               then click %1Join this team%2."
+msgstr "Följande lag matchar ett eller flera av dina sökkriterier.\nFör att gå med i ett lag, klicka på dess namn för att gå till lagets sida,\nklicka därefter på %1Gå med i detta lag%2."
+
+#: html/user/team_search.php:130
+msgid "Change your search"
+msgstr "Ändra din sökning"
+
+#: html/user/team_search.php:204
+msgid ""
+"You can team up with other people with similar interests, or from the same "
+"country, company, or school."
+msgstr "Du kan bilda lag med andra människor med liknande intressen, som är från samma land, företag eller skola."
+
+#: html/user/team_search.php:206
+msgid "Use this form to find teams that might be right for you."
+msgstr "Använd detta formulär för att hitta lag som kan passa dig."
+
+#: html/user/team_search.php:211
+msgid "%1I'm not interested%2 in joining a team right now."
+msgstr "%1Jag är inte intresserad%2 av att gå med i ett lag just nu."
+
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
+msgid "Limit exceeded - Sorry, first %1 items only"
+msgstr "Gräns överskriden - Ursäkta, endast de första %1 objekten"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
+msgid "Top hosts"
+msgstr "Bästa enheterna"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
+msgid "Top %1 teams"
+msgstr "Bästa %1 lagen"
+
+#: html/user/top_teams.php:111
+msgid "There are no %1 teams"
+msgstr "Det finns inga %1 lag"
+
+#: html/user/top_users.php:57
+msgid "Participant since"
+msgstr "Medlem sedan"
+
+#: html/user/uotd.php:32
+msgid "No user of the day has been chosen."
+msgstr "Ingen dagens användare har valts."
+
+#: html/user/uotd.php:36
+msgid "User of the Day for %1: %2"
+msgstr "Dagens användare för %1: %2"
+
+#: html/user/user_search.php:51
+msgid "Filters"
+msgstr "Filter"
+
+#: html/user/user_search.php:53
+msgid "User name starts with"
+msgstr "Användarnamnet börjar med"
+
+#: html/user/user_search.php:56
+msgid "Any"
+msgstr "Alla"
+
+#: html/user/user_search.php:59
+msgid "With profile?"
+msgstr "Med profil?"
+
+#: html/user/user_search.php:60 html/user/user_search.php:65
+msgid "Either"
+msgstr "Antingen"
+
+#: html/user/user_search.php:64
+msgid "On a team?"
+msgstr "Medlem i ett lag?"
+
+#: html/user/user_search.php:69
+msgid "Ordering"
+msgstr "Sortering"
+
+#: html/user/user_search.php:70
+msgid "Decreasing sign-up time"
+msgstr "Minskande registreringstid"
+
+#: html/user/user_search.php:71
+msgid "Decreasing average credit"
+msgstr "Minskande genomsnittlig poäng"
+
+#: html/user/user_search.php:72
+msgid "Decreasing total credit"
+msgstr "Minskande total poäng"
+
+#: html/user/user_search.php:87
+msgid "search string must be at least 3 characters"
+msgstr "söksträngen måste vara minst 3 tecken lång"
+
+#: html/user/user_search.php:121
+msgid "User search results"
+msgstr "Sökresultat för användare"
+
+#: html/user/user_search.php:133
+msgid "Joined"
+msgstr "Gick med"
+
+#: html/user/user_search.php:143
+msgid "No users match your search criteria."
+msgstr "Inga användare matchade dina sökkriterier."
+
+#: html/user/userw.php:35
+msgid "User not found!"
+msgstr "Användare inte hittad!"
+
+#: html/user/userw.php:44
+msgid "Account Data<br/>for %1<br/>Time:"
+msgstr "Kontodata<br />\nför %1<br />\nTid:"
+
+#: html/user/userw.php:47
+msgid "Team:"
+msgstr "Team:"
+
+#: html/user/userw.php:48
+msgid "Team TotCred:"
+msgstr "Lagets Totalpoäng:"
+
+#: html/user/userw.php:49
+msgid "Team AvgCred:"
+msgstr "Lagets Snittpoäng:"
+
+#: html/user/userw.php:51
+msgid "Team: None"
+msgstr "Lag: Inget"
+
+#: html/user/validate_email_addr.php:30
+msgid "Validate BOINC email address"
+msgstr "Bekräfta BOINC e-postadress"
+
+#: html/user/validate_email_addr.php:31
+msgid ""
+"Please visit the following link to validate the email address of your %1 "
+"account:"
+msgstr "Vänligen följ länken för att bekräfta e-postadressen för ditt %1 konto:"
+
+#: html/user/validate_email_addr.php:34
+msgid "Validate email sent"
+msgstr "Bekräftelse e-post skickat"
+
+#: html/user/validate_email_addr.php:35
+msgid ""
+"An email has been sent to %1. Visit the link it contains to validate your "
+"email address."
+msgstr "Ett e-post har skickats till %1. Klicka på länken det innehåller för att bekräfta din e-postadress."
+
+#: html/user/validate_email_addr.php:44
+msgid "No such user."
+msgstr "Ingen sådan användare."
+
+#: html/user/validate_email_addr.php:49
+msgid "Error in URL data - can't validate email address"
+msgstr "Fel i URL datan - kan inte bekräfta e-postadressen"
+
+#: html/user/validate_email_addr.php:54
+msgid "Database update failed - please try again later."
+msgstr "Databasuppdatering misslyckades - vänligen försök senare."
+
+#: html/user/validate_email_addr.php:57
+msgid "Validate email address"
+msgstr "Bekräfta e-postadress"
+
+#: html/user/validate_email_addr.php:58
+msgid "The email address of your account has been validated."
+msgstr "E-postadressen för ditt konto har bekräftats."
+
+#: html/user/view_profile.php:38
+msgid "This user has no profile"
+msgstr "Denna användare har ingen profil"
+
+#: html/user/view_profile.php:56
+msgid "Profile: %1"
+msgstr "Profil: %1"
+
+#: html/user/view_profile.php:65
+msgid "Account data"
+msgstr "Kontodata"
+
+#: html/user/weak_auth.php:52
+msgid ""
+"You can access your account either by using your email address and password,\n"
+"    or by using an assigned 'account key'.\n"
+"    Your account key is:"
+msgstr "Du kan logga in till ditt konto antingen genom att använda din e-postadress och ditt lösenord,\neller genom en tilldelad \"kontonyckel\".\nDin kontonyckel är:"
+
+#: html/user/weak_auth.php:57
+msgid "This key can be used to:"
+msgstr "Denna nyckel kan användas för att:"
+
+#: html/user/weak_auth.php:59
+msgid "log in to your account on the web"
+msgstr "logga in till ditt konto på webbsidan"
+
+#: html/user/weak_auth.php:61
+msgid ""
+"to attach a computer to your account without using the BOINC Manager.\n"
+"       To do so, install BOINC,\n"
+"       create a file named %1 in the BOINC\n"
+"       data directory, and set its contents to:"
+msgstr "ansluta en dator till ditt konto med hjälp av BOINC Manager.\nFör att göra det, installera BOINC,\nskapa en fil med namnet %1 i BOINCs\ndatamapp med följande innehåll:"
+
+#: html/user/weak_auth.php:73
+msgid "Weak account key"
+msgstr "Svag kontonyckel"
+
+#: html/user/weak_auth.php:74
+msgid ""
+"Your 'weak account key' can be used to attach computers to your account\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
+"    If you want to attach untrusted or insecure computers to your account,\n"
+"    do so using your weak account key.\n"
+"    Your weak account key is:"
+msgstr "Din \"svaga kontonyckel\" kan användas för att ansluta en dator till dit konto\nså som beskrivet ovan, men den kan inte användas för att logga in till ditt konto eller ändra det på något sätt.\nOm du vill ansluta ej pålitliga eller osäkra datorer till ditt konto,\ngör så med hjälp av den svaga kontonyckeln.\nDin svaga kontonyckel är:"
+
+#: html/user/weak_auth.php:81
+msgid ""
+"If you change your password, your weak account key changes, and your "
+"previous weak account key becomes invalid."
+msgstr "Om du ändrar ditt lösenord så ändras din svaga kontonyckel och den tidigare svaga kontonyckeln upphör att gälla."
+
+#: html/user/workunit.php:32
+msgid "can't find workunit"
+msgstr "kan inte hitta arbetsenhet"
+
+#: html/user/workunit.php:35
+msgid "Workunit %1"
+msgstr "Arbetsenhet %1"
+
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "applikation"
+
+#: html/user/workunit.php:43
+msgid "canonical result"
+msgstr "kanoniskt resultat"
+
+#: html/user/workunit.php:46
+msgid "granted credit"
+msgstr "beviljad poäng"
+
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Arbetsuppgifter under arbete"
+
+#: html/user/workunit.php:55
+msgid "suppressed pending completion"
+msgstr "dolt i väntan på avslutning"
+
+#: html/user/workunit.php:58
+msgid "minimum quorum"
+msgstr "minsta beslutsmässiga antal"
+
+#: html/user/workunit.php:59
+msgid "initial replication"
+msgstr "inledande replikering"
+
+#: html/user/workunit.php:60
+msgid "max # of error/total/success tasks"
+msgstr "max # av fel/totalt/lyckade arbetsuppgifter"
+
+#: html/user/workunit.php:64
+msgid "errors"
+msgstr "fel"
+
+#: html/user/workunit.php:67
+msgid "validation"
+msgstr "validering"
+
+#: html/user/workunit.php:67
+msgid "Pending"
+msgstr "Oavgjord"
+
+#: html/project.sample/project.inc:95
+msgid "Generated"
+msgstr "Genererad"
+
+#: html/project.sample/project.inc:126
+msgid "Your personal background."
+msgstr "Din personliga bakgrund."
+
+#: html/project.sample/project.inc:130
+msgid ""
+"Tell us about yourself. You could tell us where you're from, your age, "
+"occupation, hobbies, or anything else about yourself."
+msgstr "Berätta om dig själv. Du kan berätta för oss var du kommer ifrån, din ålder, yrke, om du har någon hobby eller något annat om dig själv."
+
+#: html/project.sample/project.inc:134
+msgid "Your opinions about %1"
+msgstr "Dina åsikter om %1"
+
+#: html/project.sample/project.inc:138
+msgid ""
+"Tell us your thoughts about %1<ol>\n"
+"    <li>Why do you run %1?\n"
+"    <li>What are your views about the project?\n"
+"    <li>Any suggestions?\n"
+"    </ol>"
+msgstr "Berätta dina tankar om %1 <ol>\n<li>Varför kör du %1?\n<li>Vad är dina åsikter om projektet?\n<li>Några förslag?\n</ol>"
+
+#: html/project.sample/project_specific_prefs.inc:57
+msgid "Color scheme for graphics"
+msgstr "Färginställning för grafik"
+
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
+msgid "Maximum CPU % for graphics%10 ... 100%2"
+msgstr "Maximal CPU % för grafik%10 ... 100%2"
+
+#: html/project.sample/project_specific_prefs.inc:60
+msgid "Run only the selected applications"
+msgstr "Kör endast de valda applikationerna"
+
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Ta endast emot arbetsuppgifter för vissa applikationer. Användbart för att fokusera på en viss applikation eller för att utesluta dem."
+
+#: html/project.sample/project_specific_prefs.inc:62
+msgid ""
+"If no work for selected applications is available, accept work from other "
+"applications?"
+msgstr "Om inga arbetsuppgifter finns tillgängliga för de applikationer du valt, acceptera arbetsuppgifter för andra applikationer?"
+
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Använd snabbare applikationer utan grafik om det finns sådana?"
+
+#: html/project.sample/project_specific_prefs.inc:94
+msgid "(all applications)"
+msgstr "(alla applikationer)"
+
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Ingen gräns"
+
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Maximalt antal jobb för detta projekt"
+
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Maximalt antal processorer för detta projekt"
+
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "Max # jobb"
+
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "Max # processorer"
diff --git a/html/languages/translations/tr.po b/html/languages/translations/tr.po
index a2250be..8f90c95 100644
--- a/html/languages/translations/tr.po
+++ b/html/languages/translations/tr.po
@@ -1,22 +1,25 @@
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC Project Generic\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-01-17 20:25+0000\n"
-"Last-Translator: Aycan <aycandemirel at hotmail.com>\n"
-"Language-Team: Donanım Haber\n"
-"Language: tr\n"
+# 
+# Translators:
+# Can Demirel <aycandemirel at hotmail.com>, 2015,2017
+# Faruk SARI <faruksari at hotmail.com>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-03 21:28+0000\n"
+"Last-Translator: Can Demirel <aycandemirel at hotmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/boinc/boinc/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.5.0\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1389990335.0\n"
 
 msgid "LANG_NAME_NATIVE"
 msgstr "Türkçe"
@@ -24,342 +27,573 @@ msgstr "Türkçe"
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Turkish"
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "Davet Kodu"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "Hesap oluşturmak için geçerli bir davet kodu gerekiyor."
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "İsim"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "Sitemizde bu isimle yer alacaksınız. Gerçek adınızı ya da takma adınızı kullanın."
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "E-posta Adresi"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "'isim at site' biçiminde geçerli bir adres olmalı."
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "Parola"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "En az %1 karakter olmalı"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "Parolayı doğrula"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "Ülke"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "Temsil ettiğiniz ülkeyi seçin, eğer mevcutsa."
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "Posta ya da ZIP Kodu"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "İsteğe bağlı"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "Hesap oluştur"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "E-posta adresi:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "e-posta adresinizi mi unuttunuz?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "Parola:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "parolanızı mı unuttunuz?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "Daima bağlı kal"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "Oturum aç"
+
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "Kalın metin: [b]metin[/b]  (alt+b)"
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr "İtalik metin: [i]metin[/i]  (alt+i)"
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr "Altı çizili metin: [u]metin[/u]  (alt+u)"
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "Üstü çizili metin: [i]metin[/i]  (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "Alıntılanmış metin: [quote]metin[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "Kod görünümü: [code]kod[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "Liste: [list]metin[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Sıralı liste: [list=]metin[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "Sıralı liste: [list=1]metin[/list] (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "Resim ekle: [img]http://resim_adresi[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Adres gir: [url]http://adres[/url] ya da [url=http://url]adres metni[/url]  "
-"(alt+w)"
+msgstr "Adres gir: [url]http://adres[/url] ya da [url=http://url]adres metni[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr "Font rengi"
 
-#: ../inc/bbcode_html.inc:43
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Font rengi: [color=red]metin[/color]  İpucu: color=#FF0000 şeklinde de "
-"yazabilirsiniz"
+msgstr "Font rengi: [color=red]metin[/color]  İpucu: color=#FF0000 şeklinde de yazabilirsiniz"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr "Varsayılan"
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr "Koyu kırmızı"
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr "Kırmızı"
 
-#: ../inc/bbcode_html.inc:47
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr "Turuncu"
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr "Kahverengi"
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr "Sarı"
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr "Yeşil"
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr "Zeytin yeşili"
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr "Camgöbeği"
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr "Mavi"
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr "Koyu mavi"
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr "Çivit"
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr "Mor"
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr "Font boyu"
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "Font boyu: [size=x-small]küçük metin[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr "Küçük"
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr "Normal"
 
-#: ../inc/bbcode_html.inc:62
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr "Büyük"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr "Açık bbCode etiketlerini kapat"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr "Etiketleri kapat"
 
-#: ../inc/forum.inc:37
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "Hesap"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "Katıl"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "%1 Hakkında"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "Yardım"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "Proje"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "Katıl"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "Çalışma yap"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "Sunucu durumu"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "İstatistikler"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "Uygulamalar"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "Katılımcılar"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "Bilgisayarlar"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "Takımlar"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "GPU modelleri"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "CPU modelleri"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "Hesaplama"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "Topluluk"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "Mesaj panoları"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "bir takım oluştur ya da katıl"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "Profiller"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "Kullanıcı arama"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "Günün kullanıcısı"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "Sertifika"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "Site"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "Site içi arama"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "Diller"
+
+#. names for the above
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr "Eskiler başta"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr "Yeniler başta"
 
-#: ../inc/forum.inc:39
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr "En çok oylananlar başta"
 
-#: ../inc/forum.inc:41
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr "Yeni gönderiler başa"
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr "En çok okunanlar başa"
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr "En çok yanıtlananlar başa"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "Gönüllü moderatör"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "Proje yöneticisi"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "Proje geliştiricisi"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "Proje test görevlisi"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "Gönüllü geliştirici"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "Gönüllü test görevlisi"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "Proje bilim insanı"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "Yardım maaşı uzmanı"
+
+#. Search
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr "Forum mesajlarında arama yap"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr "Forumlarda ara"
 
-#: ../inc/forum.inc:126
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr "Gelişmiş arama"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr "Özel mesajlar"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr "Soru ve Yanıtlar"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Mesaj panoları"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr "%1 mesaj panosu"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr "Önceki"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr "Sonraki"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
 msgid "Author"
 msgstr "Başlatan"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr "Mesaj"
 
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Mesaj gönder"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "Mesaj gönder"
 
-#: ../inc/forum.inc:580
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr "%1 kişisine özel mesaj gönder"
 
-#: ../inc/forum.inc:581
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr "Üyelik: %1"
 
-#: ../inc/forum.inc:590
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr "Gönderiler: %1"
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr "Kredi:  %1"
 
-#: ../inc/forum.inc:597
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr "Güncel kredi: %1"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr "Bu mesajı henüz okumadınız"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr "Okunmamış"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr "Mesaj %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr "gizli"
 
-#: ../inc/forum.inc:625
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
-msgstr "Gönderildi: %1"
+msgstr "Gönderilme: %1"
 
-#: ../inc/forum.inc:628
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr " - Şuna yanıt olarak: "
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr "Düzenle"
 
-#: ../inc/forum.inc:631
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr "Bu mesajı düzenler"
 
-#: ../inc/forum.inc:637
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr "Son düzenleme: %1"
 
-#: ../inc/forum.inc:640
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Bu gönderi gösterilemiyor, çünkü gönderici 'yoksay' listenizde.  Bu "
-"gönderiyi okumak için %1buraya%2 tıklayın"
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "Bu gönderi gösterilemiyor, çünkü gönderici 'yoksay' listenizde.  Bu gönderiyi okumak için %1buraya%2 tıklayın"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr "Bu gönderiyi yöneticiye şikayet et"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr "Şikayet et"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr "Oy: %1"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "rate: "
-msgstr "oyla:"
+msgstr "Oyla:"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr "Bu mesajdan hoşlandıysanız tıklayın"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr "+ Oy"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr "Bu mesajdan hoşlanmadıysanız tıklayın"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr "- Oy"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr "Yanıtla"
 
-#: ../inc/forum.inc:685
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr "Bu mesaja yanıt ver"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr "Alıntı"
 
-#: ../inc/forum.inc:687
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr "Bu mesaja alıntı yaparak yanıt ver"
 
-#: ../inc/forum.inc:708
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr "Moderatör tarafından gizlendi"
 
-#: ../inc/forum.inc:729
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr "%2 tarafından gönderildi, %1"
 
-#: ../inc/forum.inc:747
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr "Bu zamana kadar gönderim yapamaz ya da oylayamazsınız: "
 
-#: ../inc/forum.inc:758
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -371,2578 +605,2471 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
 "        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Gönderiler mutlaka 'çocuk dostu' olmalıdır: İçerikleri açık "
-"saçık,\n"
-"            nefretle ilişkili, cinsel açıdan müstehcen ya da imalı "
-"olmamalıdır.\n"
-"        <li> Mesajlarda ticari reklamlar olmamalı,\n"
-"        <li> Seksüel içerikli, kumar oynatan ya da başkalarını rahatsız "
-"edecek\n"
-"            internet sitelerine bağlantı içermemeli,\n"
-"        <li> İnsanları yönlendirmeyi ya da kışkırtmayı, ya da bir konuda\n"
-"            kandırmayı amaçlamamalı,\n"
-"        <li> Kasıtlı şekilde düşmanca ya da aşağılayıcı olmamalı,\n"
-"        <li> Irk, din, milliyet, cinsiyet, sınıf veya cinsellik içeren "
-"küfürlü\n"
-"            yorumlar olmamalıdır.\n"
-"        "
+msgstr "\n<ul>\n<li> Gönderiler 'çocuk dostu' olmalıdır: Açık saçık, nefret ilintili, \nmüstehcen veya imalı içeriğe sahip olmamalı.\n<li> Ticari reklamlar olmamalı. \n<li> Cinsel içerikli, kumar oynatan veya başkalarına hoşgörüsüzlüğü \niçeren web sitelerine bağlantı olmamalı. \n<li> Başkalarını rahatsız etmeye ya da buna karşı kışkırtmaya \nya da bir konuyu sabote etmeye yönelik hiçbir mesaj olmamalı. \n<li> Kasıtlı olarak düşman, tehditkar veya hakaret eden hiçbir ileti\nbulunmamalı.  [...]
 
-#: ../inc/forum.inc:780
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr "Kurallar:"
 
-#: ../inc/forum.inc:781
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr "Daha fazla bilgi"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr "Gizliliği kaldır"
 
-#: ../inc/forum.inc:1055
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr "Bu gönderinin gizliliğini kaldırır"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr "Gizle"
 
-#: ../inc/forum.inc:1057
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr "Bu gönderiyi gizler"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr "Taşı"
 
-#: ../inc/forum.inc:1062
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr "Bu gönderiyi başka bir foruma taşır"
 
-#: ../inc/forum.inc:1067
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr "Yazarı yasakla"
 
-#: ../inc/forum.inc:1074
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr "Yazarın yasaklanması için oy ver"
 
-#: ../inc/forum.inc:1078
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr "Yazarın kalması için oy ver"
 
-#: ../inc/forum.inc:1083
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr "Yazarın yasaklanması için oylama başlat"
 
-#: ../inc/forum.inc:1116
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "Sil"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "Bu gönderiyi sil"
+
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
 msgstr "Takım mesaj panosuna yalnızca takım üyeleri gönderim yapabilir"
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"%1 içerisinde yeni bir konu başlığı oluşturmak için, belli bir kredi "
-"miktarına sahip olmalısınız. Bu uygulamayla, sistemin kural dışı kullanımını "
-"ve suistimal edilmesini önlemeyi amaçlıyoruz."
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "%1 Forumunda yeni bir konu başlığı yaratmak için belirli bir düzeyde ortalama krediniz olmalıdır. Bu, sistemin istismar edilmesine karşı koruma sağlamaktadır."
 
-#: ../inc/forum.inc:1133
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Şu anda daha fazla yeni konu başlığı oluşturamazsınız. Lütfen yeniden "
-"denemek için bir süre bekleyin. Bu gecikmeyle, sistemin kural dışı "
-"kullanımını önlemeyi amaçlıyoruz."
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "Şu anda konu başlığı oluşturamazsınız. Lütfen tekrar denemeden önce bekleyin. Bu, sistemin istismar edilmesine karşı koruma sağlamaktadır."
 
-#: ../inc/forum.inc:1140
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
-msgstr ""
-"Bu konu başlığı kilitli. Yalnızca forum moderatörleri ya da yöneticilerin "
-"gönderi yapmasına izin var."
+msgstr "Bu konu başlığı kilitli. Yalnızca forum moderatörleri ya da yöneticilerin gönderi yapmasına izin var."
 
-#: ../inc/forum.inc:1145
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr "Gizli bir konu başlığına gönderi yapılamaz."
 
-#: ../inc/forum.inc:1173
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr "Yeni konu"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr "Yanıtlar"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr "Okunma"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr "Son mesaj"
 
-#: ../inc/forum.inc:1235
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr "%1 konu başlığındaki yeni gönderiler"
 
-#: ../inc/forum.inc:1240
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr "Abone olunan konu başlığındaki yeni gönderiler"
 
-#: ../inc/forum.inc:1241
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr "'%1' konu başlığında yöne gönderiler var"
 
-#: ../inc/forum.inc:1251
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr "Tümünü okundu olarak işaretle"
 
-#: ../inc/forum.inc:1252
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
-msgstr ""
-"Tüm mesaj panolarındaki tüm konu başlıklarını -okundu- olarak işaretler."
+msgstr "Tüm mesaj panolarındaki tüm konu başlıklarını -okundu- olarak işaretler."
 
-#: ../inc/host.inc:24
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr "Sunucu yok"
 
-#: ../inc/host.inc:26
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr "Mevcut değil"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr "Ev"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr "İş"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
 msgstr "Okul"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mobil"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "Güncelle"
 
-#: ../inc/host.inc:85
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr "Bilgisayar bilgisi"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr "IP adresi"
 
-#: ../inc/host.inc:89
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(son %1 seferle aynı)"
 
-#: ../inc/host.inc:91
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr "Harici IP adresi"
 
-#: ../inc/host.inc:94
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr "IP adresini görüntüle"
 
-#: ../inc/host.inc:96
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr "Etki alanı adı"
 
-#: ../inc/host.inc:98
+#: html/inc/host.inc:97
 msgid "Product name"
 msgstr "Ürün adı"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "Yerel Standart Zaman"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC %1 saat"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr "Sahibi"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr "Anonim"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr "Oluşturulma"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr "Toplam kredi"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr "Ortalama kredi"
 
-#: ../inc/host.inc:116
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr "Çapraz-proje kredisi"
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr "CPU tipi"
 
-#: ../inc/host.inc:119
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr "İşlemci adedi"
 
-#: ../inc/host.inc:121
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr "Yardımcı işlemciler"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr "İşletim sistemi"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr "BOINC sürümü"
 
-#: ../inc/host.inc:130
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr "Bellek"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr "Önbellek"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr "Sanal bellek"
 
-#: ../inc/host.inc:143
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr "Toplam disk alanı"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "Boş disk alanı"
 
-#: ../inc/host.inc:150
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "Ölçülen kayan nokta hızı"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "%1 milyon işl/sn"
 
-#: ../inc/host.inc:153
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "Ölçülen tamsayı hızı"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr "Ortalama gönderme hızı"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/sn"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr "Bilinmiyor"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr "Ortalama indirme hızı"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr "Ortalama geri dönüş zamanı"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 gün"
 
-#: ../inc/host.inc:170
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr "Uygulama detayları"
 
-#: ../inc/host.inc:171
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr "Göster"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr "İşler"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "İstemcinin sunucuya bağlanma sayısı"
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "Sunucuya son bağlandığı zaman"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "BOINC'in çalışır durumda olduğu zaman yüzdesi"
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "BOINC'in çalışır durumda olduğu zaman oranı"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"BOINC çalışırken, bilgisayarın internet bağlantısına sahip olduğu zaman "
-"yüzdesi"
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "BOINC çalışırken, bilgisayarın internet bağlantısına sahip olduğu zaman oranı"
 
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "BOINC çalışırken, yeni işlerin kabul edildiği zaman yüzdesi"
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "BOINC çalışırken, yeni işlerin kabul edildiği zaman oranı"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "BOINC çalışırken, yeni işlerin kabul edildiği zaman oranı"
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr "Ortalama CPU verimi"
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr "İş süre düzeltme çarpanı"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr "Konum"
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr "Bu bilgisayarı sil"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr "Bu bilgisayarın yinelenen kayıtlarını birleştir"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr "Birleştir"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr "Son bağlantı"
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr "Bilgisayar bilgisi"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr "Sıra"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr "Ort. kredi"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr "Güncel ortalama kredi"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr "GPU"
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr "İşletim sistemi"
 
-#: ../inc/host.inc:315
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr "(%1 işlemci)"
 
-#: ../inc/host.inc:335
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr "Detaylar"
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr "Çapraz-proje ist.:"
 
-#: ../inc/host.inc:515
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr "Sunucu %1 kullanım süresi olarak örtüşmüyor:"
 
-#: ../inc/host.inc:522
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr "Sunucu %1 farklı bir işletim sistemine sahip:"
 
-#: ../inc/host.inc:528
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr "Sunucu %1 farklı bir CPU'ya sahip:"
 
-#: ../inc/host.inc:595
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr "aynı sunucu"
 
-#: ../inc/host.inc:598
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr "Sunucu %1 ile %2 birleştirilemedi. Birbirlerinden farklılar"
 
-#: ../inc/host.inc:601
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr "Sunucu %1, %2 ile birleştiriliyor"
 
-#: ../inc/host.inc:618
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr "Yeni bilgisayarın kredisi güncellenemedi"
 
-#: ../inc/host.inc:622
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr "Sonuçlar güncellenemedi"
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr "Eski bilgisayar kullanımdan kaldırılamadı"
 
-#: ../inc/host.inc:629
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr "Eski bilgisayar %1 kullanımdan kaldırıldı"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr "Göster:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr "Tüm bilgisayarlar"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr "Yalnızca son 30 gün içerisinde aktif olan bilgisayarlar"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr "Bilgisayar NO"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "İsim"
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "Model"
 
-#: ../inc/host.inc:682
+#: html/inc/host.inc:695
 msgid "BOINC<br>version"
 msgstr "BOINC<br>sürümü"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "Bilgisayarları isme göre birleştir"
 
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "Tarayıcı varsayılanı"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Yorumlar"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Tartış"
 
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Haberler bir %sRSS beslemesi%s olarak da mevcuttur"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr "Gelen kutusu"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr "Yaz"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Özel mesaj gönder"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "Takıma mesaj gönder"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr "Önizleme"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "Konu"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "Özel mesaj gönder"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
 msgid "no such message"
 msgstr "eşleşen mesaj yok"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "To"
 msgstr "Alıcı"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "Kullanıcı NO'ları ya da benzersiz kullanıcı adları, virgülle ayrılmış"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Konu"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Mesaj gönder"
-
-#: ../inc/pm.inc:121
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr "size özel mesaj gönderdi; konu:"
 
-#: ../inc/pm.inc:127
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr "Özel mesaj %1, %2 kişisinden, konu:"
 
-#: ../inc/pm.inc:135
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr "mesaj oluşturulamadı"
 
-#: ../inc/pm.inc:166
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
-msgstr ""
-"Çok sık aralıklarla özel mesaj gönderemezsiniz. Yeni mesaj göndermek için "
-"lütfen bir süre bekleyin."
+msgstr "Çok sık aralıklarla özel mesaj gönderemezsiniz. Yeni mesaj göndermek için lütfen bir süre bekleyin."
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr "okunmamış"
 
-#: ../inc/pm.inc:186
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
 msgstr "E-posta uyarısı için, %1topluluk tercihlerini düzenleyin%2"
 
-#: ../inc/pm.inc:198
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr "Özel mesaj"
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "Kullanım sınırlamaları"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "En çok"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Bilgisayar pil gücünde olduğunda çalışma duraklatılsın mı? %1 Yalnızca "
-"taşınabilir bilgisayarlara uygulanır. %2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Bazı CPU (işlemci) çekirdeklerini diğer uygulamalar için boşta tut. Örneğin %75, 8 çekirdekli işlemcinin 6 çekirdeğinin kullanılmasını sağlar."
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Bilgisayar kullanımda olduğunda çalışma duraklatılsın mı?"
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% kadar CPU çekirdeği kullan"
 
-#: ../inc/prefs.inc:91
+#: html/inc/prefs.inc:63
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Bilgisayar kullanımda olduğunda GPU kullanımı duraklatılsın mı? %1 Sürüm "
-"6.6.21 ve üzeri için. %2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Her birkaç saniyede bir hesaplamayı durdurmak/sürdürmek, CPU (işlemci) sıcaklığını ve enerji kullanımını azaltır. Örneğin %75, 3 saniye hesaplama, 1 saniye bekleme ve bunu tekrarlama demektir."
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-"Bilgisayarı, yani fare ve klavyeyi bu kadar süre kullanmadığımda çalışma "
-"başlasın"
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% kadarı kullanılsın"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "dakika"
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "Duraklatıldığında"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Bu kadar süre fare/klavye aktivitesi yoksa çalışma duraklasın %1 Bazı "
-"bilgisayarlarda, düşük güç moduna geçmek için gerekli. %2"
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "Bilgisayar pil gücünde olduğunda duraklat"
 
-#: ../inc/prefs.inc:114
+#: html/inc/prefs.inc:71
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"BOINC dışındaki uygulamaların CPU kullanımı bu orandan fazlaysa çalışma "
-"duraklasın %1 0 yazılırsa sınırlama olmaz<br>Sürüm 6.10.30 ve üzeri için. %2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Taşınabilir cihazlar pil gücünde olduğunda hesaplamayı duraklatmak için işaretleyin."
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"İşler hergün yalnızca bu saatler arasında çalışsın  %1 İki kutuya da aynı "
-"saat yazılırsa sınırlama ortadan kalkar. %2"
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "Bilgisayar kullanımda olduğunda duraklat"
 
-#: ../inc/prefs.inc:130
+#: html/inc/prefs.inc:77
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Durakladığında uygulamalar bellekte kalsın mı? %1 'Evet'i seçerseniz, "
-"uygulamalar durakladığında sanal bellekte yer işgal etmeyi sürdürür. %2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Bilgisayarınızı kullandığınız sırada hesaplamanın ve dosya aktarımının duraklatılması için işaretleyin."
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-"Çalışan uygulama bu kadar sürede bir değişsin %1 Önerilen: 60 dakika. %2"
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Bilgisayar kullanımda olduğunda GPU ile hesaplamayı duraklat"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Çok işlemcili sistemlerde işlemcilerin en fazla"
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Bilgisayarınızı kullandığınız sırada GPU ile (ekran kartı) hesaplamanın duraklatılması için işaretleyin."
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "adeti kullanılsın"
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Kullanımda', en son bu kadar süre önce fare/klavye kullanıldı demektir:"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Çok işlemcili sistemlerde, işlemcilerin en fazla %1 Sürüm 6.1+ ve üzeri için "
-"geçerli. %2"
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Bu, bilgisayarın ne zaman 'kullanımda' kabul edildiğini belirler."
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% kadarı kullanılsın"
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "dakika"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"CPU zamanının en fazla %1 CPU sıcaklığını azaltmak için kullanılabilir. %2"
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "Fare ve klavyeyi bu kadar süre kullanmadığımda duraklatılsın"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% kadarı kullanılsın"
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "Bu, bazı bilgisayarların kullanılmadığı zaman düşük güç moduna girmesini sağlar."
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disk: En fazla kullanım"
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "BOINC harici CPU kullanımı bunu aşarsa duraklat:"
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Bilgisayarınız diğer uygulamaları çalıştırmakla meşgulse hesaplama duraklatılır."
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disk: En az kullanım %1 %2'den küçük değerler görmezden gelinecek %3"
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "Yalnızca bu saatler arasında hesapla"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% kadar "
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "Hesaplama her gün sadece belirli saatler arasında yapılır."
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "Diğer"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "En az"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "En azından bilgisayarı  bu kadar süre boyunca meşgul tutmaya yetecek miktarda iş depolanır."
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "günlük iş depola"
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "İşler kontrol noktasını diske en fazla bu kadar sürede bir kaydetsin"
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "Ek olarak da depoda"
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Asgari düzeyin üzerinde ek işler depolayın. Bir proje ile iletişime geçildiğinde ne kadar iş talep edileceğini belirler."
+
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "Çalışan uygulamayı değiştirme aralığı"
+
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "Birden fazla proje çalıştırıyorsanız, %s bu kadar sürede bir çalışan projenin işini durdurup, başka bir işi çalıştıracaktır."
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "İşlerin, kontrol noktasını diske yazma aralığı"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "Bu, görevlerin durumlarını diske ne sıklıkta kaydettiğini kontrol eder, böylece daha sonra bu noktadan devam edilebilir."
+
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr "saniye"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Sanal bellek: En fazla kullanım"
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "Bundan fazlasını kullanma:"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Bellek: Bilgisayar kullanımdayken en fazla kullanım"
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "BOINC tarafından kullanılabilecek toplam disk alanını sınırlandırın."
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Bellek: Bilgisayar boştayken en fazla kullanım"
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-"En az bu süre kadar meşgul tutacak miktarda iş bulundur%1(en fazla 10 gün).%"
-"2"
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "En az"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "gün"
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "BOINC'in verilerini depoladığı diskte en az bu kadar boş alan kalacak şekilde disk kullanımını sınırla."
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... ve ek olarak da depoda bu kadar iş bulunsun"
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB boş alan"
 
-#: ../inc/prefs.inc:232
+#: html/inc/prefs.inc:155
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"İnternete bağlanmadan önce onay istensin mi? %1 Yalnızca bir modeme, ISDN ya "
-"da VPN bağlantısına sahip olmanız durumunda. %2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "BOINC'in verilerini depoladığı diskin en fazla bu kadar yüzdesi kullanılacak şekilde disk kullanımını sınırla."
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Tamamlandığında bağlantı kesilsin mi? %1 Yalnızca bir modeme, ISDN ya da VPN "
-"bağlantısına sahip olmanız durumunda. %2"
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "% kadar "
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "En yüksek indirme hızı"
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "Bilgisayar kullanımdayken, en fazla bu kadar kullan:"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "KB/sn"
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "Bilgisayarınızı kullandığınız sırada BOINC tarafından kullanılabilecek belek (RAM) miktarını sınırlayın."
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "En yüksek gönderme hızı"
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Ağ bağlantısı yalnızca bu saatler arasında kullanılsın"
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "Bilgisayar boştayken, en fazla bu kadar kullan:"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "İnternet kullanım kotası %1 Sürüm 6.10.46 ve üzeri için geçerli. %2"
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "Bilgisayarınız boştayken BOINC tarafından kullanılabilecek belek (RAM) miktarını sınırlayın."
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "MB, her"
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Durakladığında GPU-olmayan işleri bellekte bırak"
 
-#: ../inc/prefs.inc:274
+#: html/inc/prefs.inc:179
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Resim dosyasıyla doğrulama atlansın mı? %1 YALNIZCA, internet sağlayıcınız "
-"resim dosyalarını değiştiriyorsa işaretleyin (örneğin UMTS bunu yapabilir). "
-"%2 Resim dosyasıyla doğrulamayı atlamak, BOINC'in güvenliğini azaltır. %3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "İşaretliyse, duraklatılan görevler bellekte kalır ve hiçbir kayıp yaşanmadan çalışmaya devam eder. İşaretlenmezse, duraklatılan görevler bellekten kaldırılır ve son kontrol noktasından devam eder."
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Kaynak paylaşımı %1 Bilgisayarınızın bu projeye ayırılacak kaynak oranını "
-"belirler. Örneğin: Bilgisayarınızda iki BOINC projesine katıldıysanız ve "
-"projelere 100 ve 200 kaynak ayrıldıysa, ilk proje kaynakların 1/3'ünü, "
-"ikincisi ise 2/3'ünü kullanır. %2"
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "Disk belleği/swap dosyasını en fazla bu kadar kullan:"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "GPU işleri, işlerin her birine birer CPU atanarak hızlandırılsın mı?"
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "BOINC'in disk belleği (swap dosyası) kullanımını sınırlandırır."
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "CPU kullanılsın %1 Sürüm 6.10 ve üzeri için. %2"
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "İndirme hızını bununla sınırla:"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "ATI GPU kullanılsın %1 Sürüm 6.10 ve üzeri için. %2"
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "Dosya transferlerinde indirme hızı bununla sınırlanır."
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "NVIDIA GPU kullanılsın %1 Sürüm 6.10 ve üzeri için. %2"
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/saniye"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Intel GPU kullanılsın %1 Sürüm 7.2 ve üzeri için. %2"
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "Gönderme hızını bunula sınırla:"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Test uygulamaları çalıştırılsın mı? %1 Bu, uygulamaları geliştirme konusunda "
-"bize yardımcı olacak. Ancak, bazen iş hesaplamalarının başarısız olmasına "
-"sebep olabilir. %2"
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "Dosya transferlerinde gönderme hızı bununla sınırlanır."
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"E-postalar %1 adresinden gönderilecek; gereksiz posta (spam) filtrenizin bu "
-"adresi kabul ettiğinden emin olun."
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "Kullanımı bunula sınırla:"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Takımınızın (eğer varsa) ve %1 projesinin size e-posta göndermesine izin "
-"verilsin mi?"
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "Örneğin, BOINC son 30 günde en fazla 2000 MB veri aktarımı yapabilecektir."
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-"%1, projeye katıldığınız bilgisayarları bu internet sitesi üzerinde "
-"göstersin mi?"
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB, son"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Disk ve bellek kullanımı"
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "gün"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "İşlemci kullanımı"
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "Dosyaları bu saatler arasında aktar"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Ağ kullanımı"
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "Dosyalar her gün sadece belirli saatler arasında aktarılır."
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Bu tercihler, katıldığınız tüm BOINC projelerine uygulanacak."
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "Görüntü dosyaları için veri doğrulamasını atla"
 
-#: ../inc/prefs.inc:395
+#: html/inc/prefs.inc:223
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Tercihler güncellenemedi.%2 Kırmızıyla işaretlenen değerler izin verilen "
-"aralık dışında ya da rakam değiller."
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "İnternet servis sağlayıcınız görüntü dosyalarını değiştiriyorsa bunu işaretleyin. Doğrulamayı atlamak, BOINC'in güvenliğini zayıflatacaktır."
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "geçersiz yetki: %1"
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "İnternete bağlanmadan önce onay iste"
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "geçersiz altküme: %1"
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Bir modem, ISDN ya da VPN bağlantısına sahipseniz kullanışlı olabilir."
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "Evet"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "Hayır"
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "Tamamlandığında bağlantıyı kes"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "Sınırlama yok"
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "Disk"
 
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Ekle"
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "Ağ-İnternet"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Kaldır"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "Bu tercihler, katıldığınız tüm BOINC projelerine uygulanacak."
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Hesaplama"
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1Tercihler güncellenemedi.%2 Kırmızıyla işaretlenen değerler izin verilen aralık dışında ya da rakam değiller."
 
-#: ../inc/prefs.inc:823
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr "%1 için ayrı tercihler"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr "Tercihleri düzenle"
 
-#: ../inc/prefs.inc:839
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "Kaldır"
+
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr "%1 için ayrı tercihler oluştur"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(görünümü değiştir)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Ortak tercihler"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Projeye özel ayarlar"
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "Bu ayarlar, aşağıdakiler haricindeki, bu hesabı kullanan tüm bilgisayarlar ve cihazlar için geçerlidir"
 
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Birincil (varsayılan) tercihler"
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "BOINC Manager'ı kullanarak tercihlerini yerel olarak belirledikleriniz"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "%1 tercihlerini düzenle"
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Android cihazları"
 
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Bu tercihler, katıldığınız tüm BOINC projelerine uygulanacak."
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
+msgstr "(Görünümü değiştir)"
 
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"Çok sayıda projeye katıldığınız bilgisayarlarda, değiştirilme tarihi en "
-"yakın olan tercihler kullanılacak."
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
+msgid "Combined preferences"
+msgstr "Birleştirilmiş tercihler"
 
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Bu tercihler Android cihazlara uygulanmaz."
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
+msgid "Primary (default) preferences"
+msgstr "Birincil (varsayılan) tercihler"
 
-#: ../inc/prefs.inc:892
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr "Tercihlerin son güncellenmesi:"
 
-#: ../inc/prefs.inc:944
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr "Tercihleri ekle"
 
-#: ../inc/prefs.inc:948
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr "Tercihleri güncelle"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "Evet"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "Hayır"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr "Varsayılan bilgisayar konumu"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "Yeni bilgisayarlar hesaplama ve proje tercihleri için bu konumu kullanır."
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "Kaynak paylaşımı"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Bilgisayarınızın, bu projeye tahsis edilecek kaynak oranını belirler. Örneğin, 100 ve 200 kaynak payları ile iki BOINC projesine katılırsanız, ilki kaynakların üçte birini, ikincisi ise üçte ikisini kullanacaktır."
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "GPU işleri, işlerin her birine birer CPU atanarak hızlandırılsın mı?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "CPU kullan"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "ATI GPU kullan"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "NVIDIA GPU kullan"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "Intel GPU kullan"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "Test uygulamaları çalıştırılsın mı?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Bu, uygulamaları geliştirme konusunda bize yardımcı olacak. Ancak, bazen iş hesaplamalarının başarısız olmasına sebep olabilir."
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "E-postalar %1 adresinden gönderilecek; gereksiz posta (spam) filtrenizin bu adresi kabul ettiğinden emin olun."
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "Takımınızın (eğer varsa) ve %1 projesinin size e-posta göndermesine izin verilsin mi?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "%1, projeye katıldığınız bilgisayarları bu internet sitesi üzerinde göstersin mi?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(görünümü değiştir)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "Projeye özel ayarlar"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "geçersiz yetki: %1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "geçersiz altküme: %1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
 msgid "and"
 msgstr "ve"
 
-#: ../inc/profile.inc:86
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "Sınırlama yok"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "Ekle"
+
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
-msgstr ""
-"Profiliniz, proje tarafından onaylanırsa diğer kişiler tarafından "
-"görülebilir olacak. Bunun gerçekleşmesi birkaç gün alabilir."
+msgstr "Profiliniz, proje tarafından onaylanırsa diğer kişiler tarafından görülebilir olacak. Bunun gerçekleşmesi birkaç gün alabilir."
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
-msgstr ""
-"Profiliniz onaylanmadı. Diğerleri tarafından görülemeyecek. Lütfen gerekli "
-"kısımları değiştirin."
+msgstr "Profiliniz onaylanmadı. Diğerleri tarafından görülemeyecek. Lütfen gerekli kısımları değiştirin."
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr "Veritabanı hatası"
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Çok sayıda sahte hesap oluşturularak sitemize saldırının önüne geçmek "
-"amacıyla, ortalama kredisi %1'den az olan kullanıcıların profilleri, "
-"yalnızca giriş yapmış kullanıcılara görünür.  Verdiğimiz rahatsızlık "
-"nedeniyle özür dileriz."
+msgstr "Çok sayıda sahte hesap oluşturularak sitemize saldırının önüne geçmek amacıyla, ortalama kredisi %1'den az olan kullanıcıların profilleri, yalnızca giriş yapmış kullanıcılara görünür.  Verdiğimiz rahatsızlık nedeniyle özür dileriz."
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr "Kullanıcı uzaklaştırıldı"
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr "Bu kullanıcı NO ile eşleşen profil yok."
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr "Profilinizi düzenleyin"
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr "Bu profil hakkındaki fikriniz"
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr "Bu profili Günün Kullanıcısı için öner:"
 
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr "Bu profilden %1hoşlandım%2"
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr "Uygunsuz profili yöneticilere bildir:"
 
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr "Bu profilden %1hiç hoşlanmadım%2"
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr "Anonim platform"
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr "NVIDIA GPU"
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr "ATI GPU"
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
 msgstr "Intel GPU"
 
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "DB içinde yok"
-
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr "beklemede"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr "Tümü"
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr "Sürmekte"
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr "Doğrulama kuyruğunda"
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr "Doğrulama sonuçsuz"
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr "Geçerli"
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr "Geçersiz"
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr "Hatalı"
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr "Pasif"
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr "Gönderilmemiş"
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr "Tamamlandı, doğrulanmayı bekliyor"
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr "Tamamlandı ve doğrulandı"
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr "Tamamlandı, geçersiz olarak işaretlendi"
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr "Tamamlandı, doğrulanamadı"
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr "Tamamlandı, doğrulama sonuçsuz"
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr "Tamamlandı, doğrulama için çok gecikti"
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr "Tamamlandı"
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr "Gönderilemedi"
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr "Sunucu tarafından iptal edildi"
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr "Son teslim tarihine kadar başlatılmadı - iptal edildi"
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr "İndirilirken hata oluştu"
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr "Hesaplanırken hata oluştu"
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr "Alınırken hata oluştu"
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Kullanıcı tarafından iptal edildi"
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "İptal edildi"
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr "Gönderme başarısız"
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr "Zaman doldu - yanıt yok"
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr "İhtiyaç yok"
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr "Doğrulama hatası"
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr "İptal edildi"
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr "Sona erdi"
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr "Başarılı"
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr "Hesaplama hatası"
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr "İhtiyaç fazlası sonuç"
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr "Yanıt yok"
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr "Yeni"
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
 msgstr "İndiriliyor"
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr "Sürüyor"
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr "Hesaplama hatası"
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr "Gönderiliyor"
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr "Tamamlandı"
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "Kullanıcı tarafından iptal edildi"
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr "Başlangıcında"
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr "Gerekli değil"
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr "İş birimi hatası - kontrol atlandı"
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr "Kontrol edildi, ancak henüz uzlaşılamadı"
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr "İşin doğrulama için çok geciktiği bildirildi"
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr "Sonuç gönderilemedi"
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr "Çok fazla hata oluştu (yazılımsal bir hata olabilir)"
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr "Çok fazla sonuç var (belirleyici olmayabilir)"
 
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr "Çok fazla toplam sonuç var"
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr "İş birimi iptal edildi"
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "Kabul edilebilir sonuç eksik"
+
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr "Bilinmeyen hata: %1"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr "İş adı"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr "detaylar için tıklayın"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr "NO'ları göster"
 
-#: ../inc/result.inc:354
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr "İsimleri göster"
 
-#: ../inc/result.inc:357
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr "İş"
 
-#: ../inc/result.inc:360
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr "İş birimi"
 
-#: ../inc/result.inc:369
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr "Bilgisayar"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr "Gönderilme"
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr "Raporlanma ya da<br />son teslim tarihi"
 
-#: ../inc/result.inc:374
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr "açıklama"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr "Durum"
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr "Çalışma zamanı<br />(sn)"
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr "CPU zamanı<br />(sn)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr "Kredi"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr "Uygulama"
 
-#: ../inc/result.inc:629
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr "İş birimi"
 
-#: ../inc/result.inc:632
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "Son teslim tarihi"
+
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr "Alınma tarihi"
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr "Sunucu durumu"
 
-#: ../inc/result.inc:634
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr "Sonuç"
 
-#: ../inc/result.inc:635
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr "İstemci durumu"
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr "Çıkış kodu"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Son teslim tarihi"
-
-#: ../inc/result.inc:639
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr "Çalışma zamanı"
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr "CPU zamanı"
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr "Doğrulama durumu"
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "Cihaz en yüksek FLOP"
+
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr "Uygulama sürümü"
 
-#: ../inc/result.inc:656
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr "Çıktı dosyaları"
 
-#: ../inc/result.inc:659
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr "Stderr çıktısı"
 
-#: ../inc/result.inc:706
+#: html/inc/result.inc:795
 msgid "State"
 msgstr "Durum"
 
-#: ../inc/result.inc:747
+#: html/inc/result.inc:836
 msgid "Task name:"
 msgstr "İş adı:"
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr "Arama kriterleri (birini ya da birkaçını kullanabilirsiniz)"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr "Anahtar kelimeler"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
-msgstr "Takımları, isimleri ya da tanıtımlarındaki bu kelimelere göre bul"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Ülke"
+msgstr "Takımları, isimleri ya da açıklamalarındaki bu kelimelere göre bul"
 
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr "Takımın tipi"
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr "Yalnızca aktif takımları göster"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr "Ara"
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
 msgstr "Değişim talep ettiniz ve kurucunun son yanıt tarihi geçti."
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr "Kurucu değişimini tamamla"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr "Değişim talep ettiniz"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr "kurucunun son yanıt tarihi %1."
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr "Yok"
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr "İstekte bulun"
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr "Ertelendi"
 
-#: ../inc/team.inc:87
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr "Takım bilgisi"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
-msgstr "Tanıtım"
+msgstr "Açıklama"
 
-#: ../inc/team.inc:97
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr "İnternet sitesi"
 
-#: ../inc/team.inc:120
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr "Çapraz-proje istatistikleri"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr "Tip"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr "Mesaj panosu"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr "Konu başlıkları"
 
-#: ../inc/team.inc:136
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr "Bu takıma katıl"
 
-#: ../inc/team.inc:137
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
-msgstr ""
-"Not: Topluluk tercihlerinizde 'e-postayla uyarı' aktifse, katıldığınızda "
-"takım kurucusu e-posta adresinizi görebilecek."
+msgstr "Not: Topluluk tercihlerinizde 'e-postayla uyarı' aktifse, katıldığınızda takım kurucusu e-posta adresinizi görebilecek."
 
-#: ../inc/team.inc:140
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr "Yeni üyeler kabul edilmiyor"
 
-#: ../inc/team.inc:147
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr "Kurucu değişimi talep edildi"
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr "%1 tarihine kadar yanıtlanmalı"
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr "Takım kurucusu değişimi"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr "Üyeler"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr "Kurucu"
 
-#: ../inc/team.inc:169
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr "Yöneticiler"
 
-#: ../inc/team.inc:184
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr "Son günlerdeki yeni üyeler"
 
-#: ../inc/team.inc:185
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr "Toplam üye"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr "bak"
 
-#: ../inc/team.inc:186
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr "Aktif üye"
 
-#: ../inc/team.inc:187
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr "Kredisi bulunan üye"
 
-#: ../inc/team.inc:256
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr "Yönetici"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr "Önceki %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr "Sonraki %1"
 
-#: ../inc/team.inc:289
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr "Eşleşen takım yok."
 
-#: ../inc/team.inc:302
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr "Bu işlem kurucu olmayı gerektirir."
 
-#: ../inc/team.inc:326
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr "Bu işlem takım yöneticisi hakları gerektirir."
 
-#: ../inc/team.inc:422
+#: html/inc/team.inc:434
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"UYARI: Bu bir BOINC genişletilmiş-takımıdır. Eğer burada değişiklikler "
-"yaparsanız, bir süre sonra üzerine yazılabilir. Bunun yerine, %1BOINC "
-"genişletilmiş-takım%2ı düzenleyin."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "UYARI: Bu bir BOINC genişletilmiş-takımıdır. Eğer burada değişiklikler yaparsanız, bir süre sonra üzerine yazılabilir. Bunun yerine, %1BOINC genişletilmiş-takım%2ı düzenleyin."
 
-#: ../inc/team.inc:428
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Gizlilik notu%2: Bir takım kurarsanız, proje tercihleriniz (kaynak "
-"paylaşımı, grafik tercihleri) herkese görünür olacaktır."
+msgstr "%1Gizlilik notu%2: Bir takım kurarsanız, proje tercihleriniz (kaynak paylaşımı, grafik tercihleri) herkese görünür olacaktır."
 
-#: ../inc/team.inc:432
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr "Takım adı, salt metin sürümü"
 
-#: ../inc/team.inc:433
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr "HTML etiketleri kullanmayın."
 
-#: ../inc/team.inc:436
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr "Takım adı, HTML sürümü"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr "%1Sınırlı HTML etiketleri%2 kullanabilirsiniz."
 
-#: ../inc/team.inc:439
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr "HTML bilmiyorsanız, bu bölümü boş bırakın."
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr "Varsa, takımın İnternet sitesi adresi"
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "without \"http://\""
 msgstr "\"http://\" olmadan"
 
-#: ../inc/team.inc:443
+#: html/inc/team.inc:455
 msgid "This URL will be linked to from the team's page on this site."
 msgstr "Belirttiğiniz URL, takımın bu sitedeki sayfasında gösterilecek."
 
-#: ../inc/team.inc:446
+#: html/inc/team.inc:458
 msgid "Description of team"
-msgstr "Takımın tanıtımı"
+msgstr "Takımın açıklaması"
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:474
 msgid "Accept new members?"
 msgstr "Yeni üyeler kabul edilsin mi?"
 
-#: ../inc/uotd.inc:28
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "Şirket"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "İlkokul"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "Ortaokul"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "Yüksekokul"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "Üniversite veya bölümü"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "Devlet kurumu"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "Kar amacı gütmeyen organizasyon"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "Ulusal"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "Yerel/bölgesel"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "Bilgisayar türü"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "Sosyal/siyasal/dini"
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr "Kullanıcı profili"
 
-#: ../inc/user.inc:119
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr "Katıldığınız projeler"
 
-#: ../inc/user.inc:121
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr "%1 kullanıcısının katıldığı projeler"
 
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Proje"
-
-#: ../inc/user.inc:125
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr "Kullanıcı safyası için tıklayın"
 
-#: ../inc/user.inc:125
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr "Katılma tarihi"
 
-#: ../inc/user.inc:148
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr "Hesaplama ve kredi"
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr "Bu hesaptaki bilgisayarlar"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr "Bak"
 
-#: ../inc/user.inc:161
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr "Çapraz-proje NO"
 
-#: ../inc/user.inc:162
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr "Çapraz-proje istatistikleri"
 
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Hesap"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr "Takım"
 
-#: ../inc/user.inc:167
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr "Çapraz-proje"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Sertifika"
-
-#: ../inc/user.inc:169
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
 msgstr "Cep telefonunuz için istatistik sayfanız"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Bilinmeyen bildirim tipi: %1"
-
-#: ../inc/user.inc:198
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr "Hesap bilgisi"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr "E-posta adresi"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr "Site"
 
-#: ../inc/user.inc:206
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr "Posta kodu"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr "%1 üyelik tarihi"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr "Değiştir"
 
-#: ../inc/user.inc:209
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr "e-posta adresi"
 
-#: ../inc/user.inc:210
+#: html/inc/user.inc:229
 msgid "password"
 msgstr "parola"
 
-#: ../inc/user.inc:211
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr "diğer hesap bilgisi"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr "Kullanıcı NO"
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr "Topluluk işlevlerinde kullanılır (özel mesaj için vs.)"
 
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr "Hesap anahtarları"
 
-#: ../inc/user.inc:221
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr "Tercihler"
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
 msgstr "BOINC bilgisayarınızı ne zaman ve nasıl kullanacak"
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr "Hesaplama tercihleri"
 
-#: ../inc/user.inc:228
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr "Mesaj panoları ve özel mesajlar"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "Topluluk tercihleri"
 
-#: ../inc/user.inc:232
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr "Bu proje için tercihler"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr "%1 tercihleri"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Topluluk"
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "%1 kullanıcısının profilini gör"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Sil"
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "Profil"
 
-#: ../inc/user.inc:245
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr "Oluştur"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr "%1 gönderi"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "Uyarılar"
 
-#: ../inc/user.inc:269
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr "Takımdan ayrıl"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr "Yönet"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr "(kurucu değişim isteği beklemede)"
 
-#: ../inc/user.inc:279
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr "Takım üyeliği"
 
-#: ../inc/user.inc:281
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr "bir takım bul"
 
-#: ../inc/user.inc:292
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr "Kurucusu fakat üyesi değil"
 
-#: ../inc/user.inc:298
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr "Arkadaş bul"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
 msgstr "Arkadaşlar"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Bilgisayarlar"
-
-#: ../inc/user.inc:338
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr "Bağışçı"
 
-#: ../inc/user.inc:378
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr "İrtibat"
 
-#: ../inc/user.inc:381
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr "Bu kişi arkadaşınız"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr "Arkadaşlığı bitir"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr "İstek beklemede"
 
-#: ../inc/user.inc:387
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr "Arkadaş olarak ekle"
 
-#: ../inc/user.inc:446
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr "kullanıcı adı başında veya sonda boşluk karakteri olamaz"
 
-#: ../inc/user.inc:450
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr "kullanıcı adı boş olamaz"
 
-#: ../inc/user.inc:454
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr "kullanıcı adı HTML etiketleri içeremez"
 
-#: ../inc/util.inc:131
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr "çıkış"
 
-#: ../inc/util.inc:133
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr "oturum aç"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Oturum aç"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr "Bir hesap oluştur"
 
-#: ../inc/util.inc:206
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr "Sunucu durumu"
 
-#: ../inc/util.inc:248
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
-msgstr ""
-"İsteğiniz gerçekleştirilirken veritabanı hatası oluştu; lütfen daha sonra "
-"tekrar deneyin."
+msgstr "İsteğiniz gerçekleştirilirken veritabanı hatası oluştu; lütfen daha sonra tekrar deneyin."
 
-#: ../inc/util.inc:257
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr "Talep gerçekleştirilemedi"
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr "saat"
 
-#: ../inc/util.inc:280
+#: html/inc/util.inc:345
 msgid "min"
 msgstr "dak"
 
-#: ../inc/util.inc:283
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr "san"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Bağlantı zaman aşımına uğradı. Lütfen Geri'ye tıklayın ve sayfayı yenileyip, "
-"yeniden deneyin."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "%1 kullanıcısının profilini gör"
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "Bağlantı zaman aşımına uğradı. Lütfen Geri'ye tıklayın ve sayfayı yenileyip, yeniden deneyin."
 
-#: ../inc/util.inc:569
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
 msgstr "Yazınızı biçimlendirmek için BBCode etiketleri kullanın"
 
-#: ../inc/util.inc:796
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr "Proje bakım için kapatıldı"
 
-#: ../inc/util.inc:799
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 sunucumuz bakım için geçiçi olarak kapalı durumda.  Lütfen taha sonra "
-"tekrar deneyin."
+msgstr "%1 sunucumuz bakım için geçiçi olarak kapalı durumda.  Lütfen taha sonra tekrar deneyin."
 
-#: ../inc/util.inc:817
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
 msgstr "Veritabanına erişilemedi - lütfen daha sonra tekrar deneyin"
 
-#: ../inc/util.inc:821
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
 msgstr "Veritabanı seçilemedi - lütfen daha sonra tekrar deneyin"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "karakter kaldı"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr "Bu bilgisayarda oturumumu açık tut"
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Hesap yapılandırmasını bitir"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Sitemizde bu isimle yer alacaksınız. Gerçek adınızı ya da takma adınızı "
-"kullanın."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Temsil ettiğiniz ülkeyi seçin, eğer mevcutsa."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Posta ya da ZIP Kodu"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "İsteğe bağlı"
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "Hesabınız için bir isim belirlemelisiniz"
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
 msgstr "İsminizde HTML etiketleri kullanamazsınız"
 
-#: ../user/add_venue.php:81
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "Hesap yapılandırmasını bitir"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "%1 tercihlerini düzenle"
+
+#: html/user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "%2 için %1 farklı tercihleri ekle"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Uygulamalar"
-
-#: ../user/apps.php:33
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 şu anda aşağıdaki uygulamalara sahip. %1 projesine katıldığınızda, bu "
-"uygulamalardan bir ya da daha fazlasına ait işler bilgisayarınıza "
-"gönderilecek. İşleri hesaplamak için gerekli uygulamanın son sürümü de "
-"bilgisayarınıza indirilecek. Bu otomatik olarak gerçekleşecek, herhangi bir "
-"şey yapmanız gerekmeyecek."
+msgstr "%1 şu anda aşağıdaki uygulamalara sahip. %1 projesine katıldığınızda, bu uygulamalardan bir ya da daha fazlasına ait işler bilgisayarınıza gönderilecek. İşleri hesaplamak için gerekli uygulamanın son sürümü de bilgisayarınıza indirilecek. Bu otomatik olarak gerçekleşecek, herhangi bir şey yapmanız gerekmeyecek."
 
-#: ../user/apps.php:50
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr "Platform"
 
-#: ../user/apps.php:51
+#: html/user/apps.php:56
 msgid "Version"
 msgstr "Sürüm"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Yayınlanma tarihi"
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "Ortalama hesaplama"
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr "BBCode etiketleri"
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"BBCode etiketleri, profilinizdeki ve mesaj panolarındaki metinleri "
-"biçimlendirmenizi sağlar.\n"
-"HTML gibidir, fakat daha basittir. Etiketler bir [ ile başlar (HTML'de "
-"kullanılan\n"
-"%1 gibi) ve bir ] ile biter (HTML'de kullanılan %2 gibi)."
+msgstr "BBCode etiketleri, profilinizdeki ve mesaj panolarındaki metinleri biçimlendirmenizi sağlar.\nHTML gibidir, fakat daha basittir. Etiketler bir [ ile başlar (HTML'de kullanılan\n%1 gibi) ve bir ] ile biter (HTML'de kullanılan %2 gibi)."
 
-#: ../user/bbcode.php:31
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr "Örnekler"
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr "Kalın"
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr "İtalik"
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr "Altı çizili"
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "Üstü çizili"
+
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr "Üstsimge"
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr "Büyük metin"
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr "Kırmızı metin"
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr "internet sitesine bağlantı"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr "Alıntı metin"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "metinden alıntı blokları yapmak için kullanın"
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr "resim göstermek için kullanın"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "Kod parçası"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr "bir kodu düzgün görüntülemek için"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "Önceden biçimlenmiş metin"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr "önceden biçimlenmiş (genellikle eşaralıklı) metin görüntülemek için"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr "Öğe 1"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr "Öğe 2"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr "Öğe 3"
 
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "BOINC sitesindeki Trac biletine bağlantı için"
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "BOINC Github deposunda bir soruna bağlantı kurun"
 
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "BOINC sitesindeki Trac Wiki'sine bağlantı için"
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "BOINC Github deposunda bir Wiki sayfasına bağlantı kurun"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "BOINC sitesindeki SVN değişiklik setine bağlantı için"
-
-#: ../user/bbcode.php:53
+#: html/user/bbcode.php:55
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Eğer bir etiketi kapatmaz ya da parametreyi doğru girmezseniz,\n"
-"biçimlenmiş metin yerine, etiketin ham hali görüntülenecektir."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Katılımcılar"
-
-#: ../user/bs_sample_index.php:46
-#, fuzzy
-msgid "Do work"
-msgstr "İş"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Hesabınız"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "istatistikleri gör, tercihleri değiştir"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Takımlar"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "takım oluştur ya da katıl"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Günün kullanıcısı"
+msgstr "Eğer bir etiketi kapatmaz ya da parametreyi doğru girmezseniz,\nbiçimlenmiş metin yerine, etiketin ham hali görüntülenecektir."
 
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Sunucu durumu"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profiller"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Kullanıcı arama"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "İstatistikler"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "En iyi katılımcılar"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "En iyi bilgisayarlar"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "En iyi takımlar"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "En iyi GPU modelleri"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Diller"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Kurallarımızı ve politikamızı okuyun"
-
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr "Hesap oluşturulamadı"
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr "Yeniden denemek için, tarayıcınızın <b>Geri</b> butonuna tıklayın."
 
-#: ../user/create_account_action.php:47
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "reCAPTCHA yanıtınız doğru değil.  Lütfen tekrar deneyin."
 
-#: ../user/create_account_action.php:70
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr "Hesap oluşturmak için bir davet kodu temin etmelisiniz."
 
-#: ../user/create_account_action.php:73
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr "Sahip olduğunuz davet kodu geçersiz."
 
-#: ../user/create_account_action.php:84
+#: html/user/create_account_action.php:81
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Geçersiz e-posta adresi: 'isim at site' biçiminde geçerli bir adres "
-"girmelisiniz"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "Geçersiz e-posta adresi: 'isim at site' biçiminde geçerli bir adres girmelisiniz"
 
-#: ../user/create_account_action.php:88
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr "Bu e-posta adresiyle bir hesap zaten var."
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "Yeni parola bölümleri birbirinden farklı"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "Parolalar yalnızca ASCII karakterleri içerebilir."
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
 msgstr "Yeni parola çok kısa. En az %1 karakter olmalı."
 
-#: ../user/create_account_action.php:127
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr "Hesap oluşturulamadı"
 
-#: ../user/create_account_form.php:44
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"Not: BOINC Manager kullanıyorsanız, bu formu kullanmayın. Sadece BOINC'i "
-"çalıştırın, Proje Ekle'yi seçin ve bir e-posta adresi ve şifre girin."
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "NOT: Bilgisayarınızda %1 çalıştırmak için, bu formu kullanmak yerine %2buraya gidin%3."
 
-#: ../user/create_account_form.php:61
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
-msgstr ""
-"Bu hesap %1 takımının üyesi olacak ve takım kurucusunun proje tercihlerine "
-"sahip olacak."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Davet Kodu"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Hesap oluşturmak için geçerli bir davet kodu gerekiyor."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "E-posta Adresi"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "'isim at site' biçiminde geçerli bir adres olmalı."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Parola"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "En az %1 karakter olmalı"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Parolayı doğrula"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Lütfen resimde görülen kelimeleri girin"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Hesap oluştur"
+msgstr "Bu hesap %1 takımının üyesi olacak ve takım kurucusunun proje tercihlerine sahip olacak."
 
-#: ../user/create_profile.php:50
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr "Resim"
 
-#: ../user/create_profile.php:64
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1 Profil fotoğrafınız solda gösteriliyor."
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:69
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Yenisiyle değiştirmek için, \"Gözat\" butonuna tıklayın ve bir JPEG veya PNG "
-"dosyası seçin (%1 ya da daha küçük)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "Yenisiyle değiştirmek için, \"Gözat\" butonuna tıklayın ve bir JPEG veya PNG dosyası seçin (%1 ya da daha küçük)."
 
-#: ../user/create_profile.php:69
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr "Profilinizden kaldırmak için, bu kutucuğu işaretleyin:"
 
-#: ../user/create_profile.php:77
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Eğer profilinizin bir resim içermesini istiyorsanız, \"Gözat\" butonuna "
-"tıklayın ve bir JPEG veya PNG dosyası seçin. Lütfen %1 ya da daha küçük "
-"resim dosyalarını seçin."
+msgstr "Eğer profilinizin bir resim içermesini istiyorsanız, \"Gözat\" butonuna tıklayın ve bir JPEG veya PNG dosyası seçin. Lütfen %1 ya da daha küçük resim dosyalarını seçin."
 
-#: ../user/create_profile.php:89
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr "Dil"
 
-#: ../user/create_profile.php:92
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr "Lütfen profilinizi yazdığınız dili seçin:"
 
-#: ../user/create_profile.php:104
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr "Profili gönder"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Lütfen resimde görülen harfleri girin."
-
-#: ../user/create_profile.php:115
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr "Profil oluştur/düzenle"
 
-#: ../user/create_profile.php:137
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr "Gönderdiğiniz resim formatı desteklenmiyor."
 
-#: ../user/create_profile.php:166
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
-msgstr ""
-"%1Profiliniz%2, fikirlerinizi ve özgeçmişinizi %3 topluluğuyla paylaşmanızı "
-"sağlar."
+msgstr "%1Profiliniz%2, fikirlerinizi ve özgeçmişinizi %3 topluluğuyla paylaşmanızı sağlar."
 
-#: ../user/create_profile.php:213
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "ReCaptcha yanıtınız doğru değil.  Lütfen tekrar deneyin."
 
-#: ../user/create_profile.php:222
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"İlk yanıtınız Akismet anti-spam sistemi tarafından bir saldırı olarak "
-"algılandı.  Lütfen yazdığınızı değiştirip tekrar deneyin."
+msgstr "İlk yanıtınız Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip tekrar deneyin."
 
-#: ../user/create_profile.php:230
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
-msgstr ""
-"İkinci yanıtınız Akismet anti-spam sistemi tarafından bir saldırı olarak "
-"algılandı.  Lütfen yazdığınızı değiştirip tekrar deneyin."
+msgstr "İkinci yanıtınız Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip tekrar deneyin."
 
-#: ../user/create_profile.php:246
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr "Gönderdiğiniz profil boş."
 
-#: ../user/create_profile.php:285
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr "Profil güncellenemedi: Veritabanı hatası"
 
-#: ../user/create_profile.php:297
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr "Profil oluşturulamadı: Veritabanı hatası"
 
-#: ../user/create_profile.php:302
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr "Profil kaydedildi"
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "Tebrikler! Profiliniz başarıyla veritabanımıza kaydedildi."
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Profilinizi görün%2"
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "Profilinizi görün"
 
-#: ../user/create_profile.php:315
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr "Bir profil oluştur"
 
-#: ../user/create_profile.php:343
+#: html/user/create_profile.php:346
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Sitemize saldırıların önüne geçmek amacıyla, profil oluşturmak ve "
-"değiştirmek için ortalama kredinin %1 ya da fazlası olması gerekir.  "
-"Verdiğimiz rahatsızlık nedeniyle özür dileriz."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "Sitemize saldırıların önüne geçmek amacıyla, profil oluşturmak ve değiştirmek için ortalama kredinin %1 ya da fazlası olması gerekir.  Verdiğimiz rahatsızlık nedeniyle özür dileriz."
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr "Hesap silinemedi"
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr "Hesap silindi"
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr "Hesabınız silindi."
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr "Hesap silinmesini onayla"
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"Hesabınızın silinmesiyle, profil ve mesaj panosu\n"
-"gönderileriniz de dahil tüm kişisel bilgileriniz\n"
-"sunucularımızdan kaldırılacak.\n"
-"Bu hesabın kurulu olduğu bilgisayarlara ise işler\n"
-"gönderilmeyecek."
+msgstr "Hesabınızın silinmesiyle, profil ve mesaj panosu\ngönderileriniz de dahil tüm kişisel bilgileriniz\nsunucularımızdan kaldırılacak.\nBu hesabın kurulu olduğu bilgisayarlara ise işler\ngönderilmeyecek."
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Bu işlem geri alınamaz.\n"
-"Hesabınızı sildiğinizde, onu tekrar geri alamazsınız."
+msgstr "Bu işlem geri alınamaz.\nHesabınızı sildiğinizde, onu tekrar geri alamazsınız."
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "Hesabınızı silmek istediğinize emin misiniz?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr "Evet"
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr "Bu hesabı sil"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr "Hayır"
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr "Bu hesabı silme"
 
-#: ../user/delete_profile.php:30
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "profil silinemedi - lütfen daha sonra tekrar deneyin"
 
-#: ../user/delete_profile.php:33
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "Silmeyi Onayla"
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "Profiliniz silindi."
 
-#: ../user/delete_profile.php:40
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "Profil silme onayı"
 
-#: ../user/delete_profile.php:43
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "Emin misiniz?"
 
-#: ../user/delete_profile.php:44
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"Silinen profiller sonsuza kadar yok olur ve kurtarılamaz--\n"
-"Gelecekte yeni bir profil yaratmak için baştan başlamanız gerekir."
+msgstr "Silinen profiller sonsuza kadar yok olur ve kurtarılamaz--\nGelecekte yeni bir profil yaratmak için baştan başlamanız gerekir."
 
-#: ../user/delete_profile.php:48
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"Eminseniz, profilinizin sunucularımızdan silinmesi için\n"
-"lütfen 'Evet'e tıklayın."
+msgstr "Eminseniz, profilinizin sunucularımızdan silinmesi için\nlütfen 'Evet'e tıklayın."
 
-#: ../user/delete_profile.php:52
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "Profilimi sil"
 
-#: ../user/delete_profile.php:53
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "Profilimi silme"
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr "PayPal - Aktarım Tamamlandı"
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr "Bağışınız için teşekkürler!"
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr "Bağışınız tamamlandı."
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Bağışınız PayPal tarafından onaylandıktan sonra ilerleme çubuğuna eklenecek."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "Bağışınız PayPal tarafından onaylandıktan sonra ilerleme çubuğuna eklenecek."
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr "Bağışınızı iptal ettiniz."
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr "Bu proje bağışları kabul etmiyor."
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr "%1 bağış"
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
 msgstr "Bu proje %1 ile bağışları kabul ediyor."
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -2955,2237 +3082,1995 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"Bağış yapmak için, istediğiniz miktara göre aşağıdaki formu doldurun.\n"
-"        PayPal bir çok para birimini destekler \n"
-"        (Kanada Doları, Avro, İngiliz Sterlini, ABD Doları,\n"
-"         Yen, Avusturalya Doları, Yeni Zelanda Doları,\n"
-"        İsviçre Frangı, Hong Kong Doları, Singapur Doları, İsveç Kronu, \n"
-"         Danimarka Kronu, Polonya Zlotisi, Norveç Kronu,\n"
-"        Macar Forinti, Çek Korunası).\n"
-"        Farklı para birimlerinin değerlerini görmek için,\n"
-"        dönüştürücüyü kullanabilirsiniz (Ancak, bu değerlerin\n"
-"        yaklaşık olduğunu ve gerçek miktarın farklı olabileceğini\n"
-"        unutmayın)."
-
-#: ../user/donations.php:316
+msgstr "Bağış yapmak için, istediğiniz miktara göre aşağıdaki formu doldurun.\n        PayPal bir çok para birimini destekler \n        (Kanada Doları, Avro, İngiliz Sterlini, ABD Doları,\n         Yen, Avusturalya Doları, Yeni Zelanda Doları,\n        İsviçre Frangı, Hong Kong Doları, Singapur Doları, İsveç Kronu, \n         Danimarka Kronu, Polonya Zlotisi, Norveç Kronu,\n        Macar Forinti, Çek Korunası).\n        Farklı para birimlerinin değerlerini görmek için,\n        dönüştürü [...]
+
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr "Bağışlamak istediğiniz miktar"
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr "Bununla yaklaşık miktar"
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr "Anonim bağış"
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
+msgstr "Select this if you dont want your name and account number displayed in\ndonator lists.<br>If not checked, you will be recorded as user ID %1"
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
 msgstr "Kullanıcı NO'nuzla bağış yapmak için, lütfen sisteme giriş yapın."
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr "Devam et"
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr "Bağışlar bunun aracılığıyla gerçekleştirilir:"
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr "BOINC eklenti yazılımlarını indir"
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr "Çeşitli kategorilerdeki bu uygulamaları indirebilirsiniz."
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Bu uygulamalar %1 tarafından onaylanmamıştır ve kullanmak sizin alacağınız "
-"bir risktir."
+msgstr "Bu uygulamalar %1 tarafından onaylanmamıştır ve kullanmak sizin alacağınız bir risktir."
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"Bu uygulamaların kurulum yönergelerini sağlamıyoruz.\n"
-"Bununla birlikte, yazarı kurulumu ve kaldırılmasıyla ilgili yardım sağlıyor "
-"olabilir. \n"
-"Eğer bu sizin için yeterli değilse, yazarıyla irtibata geçmelisiniz. "
+msgstr "Bu uygulamaların kurulum yönergelerini sağlamıyoruz.\nBununla birlikte, yazarı kurulumu ve kaldırılmasıyla ilgili yardım sağlıyor olabilir. \nEğer bu sizin için yeterli değilse, yazarıyla irtibata geçmelisiniz. "
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
 msgstr "BOINC'in kurulumu ve çalıştırmasıyla ilgili talimatlar %1buradadır%2."
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr "Bu liste %1BOINC internet sitesinden%2 merkezi olarak yönetilir."
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr "Hesabın bağlı olduğu e-posta adresini değiştir"
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr "Yeni e-posta adresi '%1' geçersiz."
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
 msgstr "Yeni e-posta adresi, mevcut adres ile aynı. Değişiklik yapılmadı."
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr "Bu adres ile bir hesap zaten var."
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr "Geçersiz parola."
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr "Hesabınızın bağlı olduğu e-posta adresi artık %1."
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr "Lütfen %1bu e-posta adresini doğrulayın%2."
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
-msgstr ""
-"Veritabanı hatası nedeniyle e-posta adresinizi güncelleyemedik.  Lütfen daha "
-"sonra tekrar deneyin."
+msgstr "Veritabanı hatası nedeniyle e-posta adresinizi güncelleyemedik.  Lütfen daha sonra tekrar deneyin."
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr "E-posta adresini değiştir"
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr "Hesabınızın bağlı olduğu e-posta adresini değiştirin"
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr "Yeni e-posta adresi"
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr "'isim at site' biçiminde geçerli bir adres olmalı"
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr "Parolanız yok mu?"
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr "Sıfırlamayı onayla"
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Bu eylem, topluluk tercihlerinizde yaptığınız değişiklikleri silecek. İptal "
-"etmek için, tarayıcınızın Geri butonuna basın."
+msgstr "Bu eylem, topluluk tercihlerinizde yaptığınız değişiklikleri silecek. İptal etmek için, tarayıcınızın Geri butonuna basın."
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "Sıfırlama tercihleri"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
 msgstr "Hata: Yanlış dosya tipi. Yalnızca PNG ve JPEG destekleniyor."
 
-#: ../user/edit_forum_preferences_action.php:114
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr "İmzanız çok uzun. Lütfen 250 karakterden kısa tutun."
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Böyle bir kullanıcı yok: %1"
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "Böyle bir kullanıcı yok:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
-msgstr ""
-"Sizi yeni özel mesajlar, arkadaşlık istekleri , abone olunan konu "
-"başlıklarına gönderiler ve diğer olaylar hakkında nasıl bilgilendirelim?"
+msgstr "Sizi yeni özel mesajlar, arkadaşlık istekleri , abone olunan konu başlıklarına gönderiler ve diğer olaylar hakkında nasıl bilgilendirelim?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "Hesap sayfamda (e-posta yok)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "Derhal, e-posta ile"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "Günde tek e-posta ile"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "Mesaj panosu kimliği"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "Avatar"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "Mesaj panolarında sizi temsil edecek bir resim."
 
-#: ../user/edit_forum_preferences_form.php:78
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "Format: JPG ya da PNG. Boyut: 4 KB civarı, 100x100 piksel"
 
-#: ../user/edit_forum_preferences_form.php:80
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "Bir avatar kullanma"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "%1 tarafından sağlanan bir Globally Recognized Avatar (Gravatar) kullan"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "Yüklediğim bu avatarı kullan:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "Avatar önizlemesi"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "Bu, avatarınızın nasıl görüneceğini gösterir"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "Mesaj panosu gönderileri için imza"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"%1Çeşitli bedava servislere%2 gözatın.\n"
-"<br> Dinamik 'imza resimleri',\n"
-"<br> son kredi bilginizi, proje haberlerini vs gösterir."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "karakter kaldı"
+msgstr "%1Çeşitli bedava servislere%2 gözatın.\n<br> Dinamik 'imza resimleri',\n<br> son kredi bilginizi, proje haberlerini vs gösterir."
 
-#: ../user/edit_forum_preferences_form.php:105
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "İmzayı varsayılan olarak ekle"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "İmza önizlemesi"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "Bu, imzanızın forumlarda nasıl gösterileceğinin bir önizlemesidir"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "Mesaj görüntüleme"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "Görüntülenecek öğeler"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "Avatar resimlerini gizle"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "İmzaları gizle"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "Resimleri bağlantı olarak görüntüle"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "Bağlantıları yeni sekmelerde/pencerelerde aç"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "Özel kullanıcıları vurgula"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "Her sayfada bu miktarda mesaj görüntüle"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "Nasıl sıralanacak"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "Konu başlıkları:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "Cevaplar:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "Konu başlığındaki ilk yeni gönderiye otomatik olarak atla"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "Yapışkan mesajları en üste taşıma"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "Mesaj filtreleme"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "Filtrelenen kullanıcılar"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Bu kullanıcıların mesaj panosu ve özel mesaj gönderilerini görmezden gel."
+msgstr "Bu kullanıcıların mesaj panosu ve özel mesaj gönderilerini görmezden gel."
 
-#: ../user/edit_forum_preferences_form.php:167
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "Kullanıcı NO (Örneğin: 123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr "Kullanıcıyı filtreye ekle"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "Tercihleri güncellemek için buraya tıklayın"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr "Sıfırla"
 
-#: ../user/edit_forum_preferences_form.php:176
+#: html/user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr "Ya da ayarları varsayılana sıfırlamak için buraya tıklayın"
 
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Geçersiz hesap anahtarı"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Bu e-posta adresine ait bir hesap bulunamadı"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Geçersiz parola"
+#: html/user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "Parolanızı veritaban problemi nedeniyle güncelleyemedik. Lütfen daha sonra tekrar deneyin."
 
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr "Parolayı değiştir"
 
-#: ../user/edit_passwd_action.php:67
+#: html/user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr "Parolanız değişti."
 
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Parolanızı veritaban problemi nedeniyle güncelleyemedik. Lütfen daha sonra "
-"tekrar deneyin."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Kendinizi, e-posta adresi ve eski parolanızın"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "her ikisini de girerek tanıtabilirsiniz"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "hesap anahtarınız"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Mevcut parola"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>YA DA</b>: Hesap anahtarı"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Hesap anahtarını e-posta ile al"
-
-#: ../user/edit_passwd_form.php:53
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "Yeni parola"
 
-#: ../user/edit_passwd_form.php:54
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "Yeni parola, yeniden"
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr "İsminizde HTML etiketlerinin kullanımı kabul edilmiyor."
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr "Hesabınız için bir isim belirlemelisiniz."
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr "Kullanıcı bilgisi güncellenemedi."
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr "Hesap bilgisini düzenle"
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr "İsim %1 Gerçek ya da takma isim%2"
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr "URL %1 Kişisel web sitenizin adresi; isteğe bağlı%2"
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr "Posta (ZIP) kodu %1 İsteğe bağlı%2"
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr "Bilgileri güncelle"
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr "Sunucu durumları"
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
-msgstr ""
-"Bir işin <b>sunucu durumu</b>, bir bilgisayara gönderilip gönderilmediğini "
-"ve bilgisayarın onu tamamlayıp tamamlamadığını anlatır. Muhtemel değerler "
-"şunlardır:"
+msgstr "Bir işin <b>sunucu durumu</b>, bir bilgisayara gönderilip gönderilmediğini ve bilgisayarın onu tamamlayıp tamamlamadığını anlatır. Muhtemel değerler şunlardır:"
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
-msgstr ""
-"İş gönderilmeye hazır değil (örneğin, giriş dosyaları henüz mevcut değil)"
+msgstr "İş gönderilmeye hazır değil (örneğin, giriş dosyaları henüz mevcut değil)"
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr "İş gönderilmeye hazır, fakat henüz gönderilmedi."
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr "Sürmekte"
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr "İş gönderildi, tamamlanması bekleniyor."
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
-msgstr ""
-"İş bir bilgisayara gönderildi ve son teslim zamanı geçti ya da bilgisayar "
-"tamamlandığını bildirdi."
+msgstr "İş bir bilgisayara gönderildi ve son teslim zamanı geçti ya da bilgisayar tamamlandığını bildirdi."
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr "Sonuçlar"
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
-msgstr ""
-"Bir işin <b>sonucu</b>, sunucu durumu <b>tamamlandı</b> ise belirlenir. "
-"Muhtemel değerler şunlardır:"
+msgstr "Bir işin <b>sonucu</b>, sunucu durumu <b>tamamlandı</b> ise belirlenir. Muhtemel değerler şunlardır:"
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
-msgstr ""
-"İş bir bilgisayara gönderildi, fakat bilgisayar henüz tamamlamadı ve "
-"sonucunu raporlamadı."
+msgstr "İş bir bilgisayara gönderildi, fakat bilgisayar henüz tamamlamadı ve sonucunu raporlamadı."
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
 msgstr "Bir bilgisayar işi başarıyla tamamladı ve raporladı."
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
-msgstr ""
-"Sunucu işi bir bilgisayara göndermeyi başaramadı (muhtemelen sistem "
-"ihtiyaçları çok yüksek ya da dosya boyu çok büyük)"
+msgstr "Sunucu işi bir bilgisayara göndermeyi başaramadı (muhtemelen sistem ihtiyaçları çok yüksek ya da dosya boyu çok büyük)"
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr "İstemci hatası"
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
 msgstr "İş bir bilgisayara gönderildi ve hata meydana geldi."
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
-msgstr ""
-"İş bir bilgisayara gönderildi ve son teslim tarihi içinde bir yanıt "
-"alınamadı."
+msgstr "İş bir bilgisayara gönderildi ve son teslim tarihi içinde bir yanıt alınamadı."
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"İş bir bilgisayara gönderilemedi, çünkü bu iş birimi için yeterli miktarda "
-"diğer işler tamamlandı."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "İş bir bilgisayara gönderilemedi, çünkü bu iş birimi için yeterli miktarda diğer işler tamamlandı."
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
-msgstr ""
-"İş raporlandı, fakat doğrulanamadı. Çünkü, genellikle sonuç dosyaları "
-"sunucuda kayboldu."
+msgstr "İş raporlandı, fakat doğrulanamadı. Çünkü, genellikle sonuç dosyaları sunucuda kayboldu."
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr "İstemci durumları"
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Bir sonucun <b>istemci durumu</b> hesaplama sırasında meydana gelen bir "
-"hatayı anlatır."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "Bir sonucun <b>istemci durumu</b> hesaplama sırasında meydana gelen bir hatayı anlatır."
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr "Bilgisayar henüz işi tamamlayamadı."
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr "Bilgisayar işi başarıyla tamamladı."
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
 msgstr "Bilgisayar uygulamayı ya da girdi dosyalarını indiremedi."
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr "Hesaplama sırasında bir hata meydana geldi."
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr "Bilgisayar sonuç dosyalarını gönderemedi."
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr "Raporlanma ya da son teslim tarihi"
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
-msgstr ""
-"Bir işin <b>raporlanma ya da son teslim tarihi</b> işin raporlanıp "
-"raporlanmadığına işaret eder:"
+msgstr "Bir işin <b>raporlanma ya da son teslim tarihi</b> işin raporlanıp raporlanmadığına işaret eder:"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr "Zaten raporlandı"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr "Raporlandığı tarih/saat"
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr "Henüz raporlanmadı, son teslim tarihine daha var"
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr "Son teslim tarihi yeşil olarak gösterilmekte."
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr "Henüz raporlanmadı, son teslim tarihi geçti"
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr "Son teslim tarihi kırmızı olarak gösterilmekte"
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr "Bilinmeyen sebep"
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "E-posta önizlemesi"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "E-posta adresiniz şu şekilde görünecek:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "E-posta gönder"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Mesaj formuna dönmek için tarayıcınızın Geri butonunu kullanın"
-
-#: ../user/ffmail_action.php:63
+#: html/user/ffmail_action.php:28
 msgid "Sending emails"
 msgstr "E-postalar gönderiliyor"
 
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "%1 kişisine e-posta gönderimi başarıyla tamamlandı"
-
-#: ../user/ffmail_action.php:86
+#: html/user/ffmail_action.php:43
 msgid "failed to send email to %1: %2"
 msgstr "%1 kişisine e-posta gönderimi tamamlanamadı: %2"
 
-#: ../user/ffmail_action.php:92
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "%1 için e-posta gönderilemedi"
+
+#: html/user/ffmail_action.php:51
+msgid "email sent successfully to %1"
+msgstr "%1 kişisine e-posta gönderimi başarıyla tamamlandı"
+
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr "Arkadaşlarınıza %1 projesinden bahsettiğiniz için teşekkürler"
 
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Arkadaşlarınızın e-posta adreslerini ve/veya isimlerini girmeyi unuttunuz. "
-"Lütfen %1forma geri dönün%2 ve yazın."
-
-#: ../user/ffmail_form.php:30
+#: html/user/ffmail_action.php:57
 msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-"Bu proje bir e-posta mesajı yaratmadı - lütfen yöneticilerini bilgilendirin"
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "E-posta adreslerini girmeyi unuttun; Lütfen %1forma geri dön%2 ve gir."
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr "Arkadaşlarınıza %1 projesinden bahsedin"
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-"Lütfen, arkadaşlarınıza, ailenize ve çalışma arkadaşlarınıza %1 projesini "
-"duyurmamıza yardımcı olun"
-
-#: ../user/ffmail_form.php:39
+#: html/user/ffmail_form.php:49
 msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Lütfen bu formu %1 projesiyle ilgilenebilecek kişilerin isim ve e-posta "
-"adresleriyle doldurun. Bir tanıtım e-postasını sizin isminizle göndereceğiz, "
-"isterseniz siz de özel bir mesaj ekleyebilirsiniz."
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "%1 ile ilgilenebileceğini düşündüğünüz kişilere e-posta mesajları göndermek için bu formu kullanın."
 
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "İsminiz:"
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "Alıcı:"
 
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "E-posta adresiniz:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Arkadaşınızın ismi:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Arkadaşınızın e-posta adresi:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Ek mesaj (isteğe bağlı)"
-
-#: ../user/ffmail_form.php:59
+#: html/user/ffmail_form.php:59
 msgid "Send"
 msgstr "Yolla"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
 msgid "You are not authorized to banish users."
 msgstr "Kullanıcıları yasaklamak için yetkili değilsiniz."
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "Bir eylem seçmelisiniz..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "Müstehcen"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "Öfke/Nefret söylemi"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "Kullanıcı talebi"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "Yasaklama Oylaması"
 
-#: ../user/forum_banishment_vote.php:50
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "Bu NO'ya sahip kullanıcı bulunamadı."
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr "Kullanıcı zaten yasaklanmış"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
-msgstr ""
-"%1 kullanıcısını yasaklamak istediğine emin misin?<br/>Bu, %1 kullanıcısının "
-"seçilen zaman aralığında gönderim yapmasını engelleyecektir.<br/>Yasaklama, "
-"%1 gerçekten uygunsuz davranışlarda bulunduysa yapılmalıdır."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Gerekçe kategorisini seçin, tercihen kullanıcının neden yasaklanması "
-"gerektiğini belirten daha uzun bir açıklama yazın."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Kategori"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Müstehcen"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Öfke/Nefret söylemi"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Kullanıcı talebi"
+msgstr "%1 kullanıcısını yasaklamak istediğine emin misin?<br/>Bu, %1 kullanıcısının seçilen zaman aralığında gönderim yapmasını engelleyecektir.<br/>Yasaklama, %1 gerçekten uygunsuz davranışlarda bulunduysa yapılmalıdır."
 
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Diğer"
+#: html/user/forum_banishment_vote.php:64
+msgid ""
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "Gerekçe kategorisini seçin, tercihen kullanıcının neden yasaklanması gerektiğini belirten daha uzun bir açıklama yazın."
+
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
+msgid "Category"
+msgstr "Kategori"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "Sebep"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "Boş değilse postalanır"
 
-#: ../user/forum_banishment_vote.php:74
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr "Oy ile devam et"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Bir eylem seçmelisiniz..."
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
-msgstr ""
-"Bu gönderiyi şu anda düzenleyemezsiniz.<br/>Gönderiler oluşturulduktan %1 "
-"dakika sonra düzenlenebilir."
+msgstr "Bu gönderiyi şu anda düzenleyemezsiniz.<br/>Gönderiler oluşturulduktan %1 dakika sonra düzenlenebilir."
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "Bu gönderiyi düzenlemek için yetkili değilsiniz."
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Forum"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "Gönderiyi düzenle"
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr "Mesajınızı düzenleyin"
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr "Başlık"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr "İmzamı bu gönderiye ekle"
 
-#: ../user/forum_forum.php:41
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "Size görünür değil"
 
-#: ../user/forum_forum.php:80
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "%1 için takım mesaj panosu"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr "Yeni konu başlığı"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr "Bu foruma yeni bir konu başlığı ekle"
 
-#: ../user/forum_forum.php:116
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "Bu mesaj panosu bir %sRSS beslemesi%s olarak da mevcuttur"
 
-#: ../user/forum_forum.php:174
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr "Bu konu başlığı gizli"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr "Bu konu başlığı sabit ve kilitli, onu henüz okumadınız"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr "sabit/kilitli/okunmamış"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "Bu konu başlığı sabit ve onu henüz okumadınız"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr "sabit/okunmamış"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "Bu konu başlığını henüz okumadınız ve kilitli"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr "okunmamış/kilitli"
 
-#: ../user/forum_forum.php:186
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr "Bu konu başlığını henüz okumadınız"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr "Bu konu başlığı sabit ve kilitli"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr "sabit/kilitli"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr "Bu konu başlığı sabit"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr "sabit"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr "Bu konu başlığı kilitli"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr "kilitli"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr "Bu konu başlığını okudunuz"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr "oku"
 
-#: ../user/forum_help_desk.php:27
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "Soru ve yanıtlar"
 
-#: ../user/forum_help_desk.php:30
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Bir gönüllüyle Skype aracılığıyla konuşun. Bir çok dilde mevcuttur. %1BOINC "
-"Online Yardım%2a gidin."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "Bir gönüllüyle Skype aracılığıyla konuşun. Bir çok dilde mevcuttur. %1BOINC Online Yardım%2a gidin."
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr "Konu"
 
-#: ../user/forum_help_desk.php:45
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr "Sorular"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "%1 üyeleri arasında tartışmalar"
 
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Mesaj panoları"
-
-#: ../user/forum_index.php:78
+#: html/user/forum_index.php:80
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
-msgstr ""
-"Bir soru ya da probleminiz varsa, lütfen mesaj panolarındaki %1Soru ve "
-"Yanıtlar%2 bölümünü kullanın."
+msgstr "Bir soru ya da probleminiz varsa, lütfen mesaj panolarındaki %1Soru ve Yanıtlar%2 bölümünü kullanın."
 
-#: ../user/forum_index.php:123
+#: html/user/forum_index.php:125
 msgid "Subscribed threads"
 msgstr "Abone olunan konu başlıkları"
 
-#: ../user/forum_moderate_post.php:43
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "Bu gönderiyi denetlemek için yetkili değilsiniz"
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "Farklı kategori tipine taşınamıyor"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "Farklı kategoriye taşınamıyor"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "Kullanıcıları engellemek için yetkili değil"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "Engelleme"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "%1 kullanıcısı engellendi."
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "Eylem başarısız: Muhtemelen database problemi"
+
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "Gönderiyi denetle"
 
-#: ../user/forum_moderate_post.php:52
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "Gönderiyi gizle"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "Ticari reklam"
 
-#: ../user/forum_moderate_post.php:58
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr "Çifte gönderi"
 
-#: ../user/forum_moderate_post.php:63
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr "Gönderiyi taşı"
 
-#: ../user/forum_moderate_post.php:65
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr "Hedef konu numarası"
 
-#: ../user/forum_moderate_post.php:78
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr "Kullanıcıyı engelle"
 
-#: ../user/forum_moderate_post.php:80
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr "Engelleme süresi"
 
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 saat"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 saatte bir"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 saat"
+
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr "1 gün"
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr "1 hafta"
 
-#: ../user/forum_moderate_post.php:84
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr "2 hafta"
 
-#: ../user/forum_moderate_post.php:85
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr "1 ay"
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr "Süresiz"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-"İsteğe bağlı açıklama %1 Bu kullanıcıya gönderilecek e-postaya eklenecek.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr "Tamam"
 
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Bu gönderiyi denetlemek için yetkili değilsiniz"
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Farklı kategori tipine taşınamıyor"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Farklı kategoriye taşınamıyor"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Kullanıcıları engellemek için yetkili değil"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Engelleme"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "%1 kullanıcısı engellendi."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Eylem başarısız: Muhtemelen database problemi"
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "İsteğe bağlı açıklama %1 Bu kullanıcıya gönderilecek e-postaya eklenecek.%2"
 
-#: ../user/forum_moderate_thread.php:33
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "yetkili değil"
 
-#: ../user/forum_moderate_thread.php:36
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "'%1' konu başlığını denetle"
 
-#: ../user/forum_moderate_thread.php:48
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
-msgstr ""
-"Bir sebep kategorisi seçin ya da konu başlığını neden kilitlediğinize ya da "
-"gizlediğinize ilişkin bir açıklama yazın; ardından Tamam'ı tıklayın."
+msgstr "Bir sebep kategorisi seçin ya da konu başlığını neden kilitlediğinize ya da gizlediğinize ilişkin bir açıklama yazın; ardından Tamam'ı tıklayın."
 
-#: ../user/forum_moderate_thread.php:72
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "Mevcut forum"
 
-#: ../user/forum_moderate_thread.php:73
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "Hedef forum"
 
-#: ../user/forum_moderate_thread.php:77
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "Yeni başlık:"
 
-#: ../user/forum_post.php:40
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
-msgstr ""
-"Burada yalnızca proje yöneticileri konu başlığı yaratabilir. Bununla "
-"birlikte, mevcut konu başlıklarına yanıt yazabilirsiniz."
+msgstr "Burada yalnızca proje yöneticileri konu başlığı yaratabilir. Bununla birlikte, mevcut konu başlıklarına yanıt yazabilirsiniz."
 
-#: ../user/forum_post.php:60
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Mesajınız Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı. "
-" Lütfen yazdığınızı değiştirip, tekrar deneyin."
+msgstr "Mesajınız Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip, tekrar deneyin."
 
-#: ../user/forum_post.php:70
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr "Yeni konu başlığı oluştur"
 
-#: ../user/forum_post.php:100
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr "Yeni bir konu başlığı oluştur"
 
-#: ../user/forum_post.php:105
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr "Bir başlık eklemeyi unutmayın"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "Bunu Bildirim olarak BOINC Manager'da görüntüle"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
 msgstr "Sadece, tüm gönüllüleri ilgilendirmesi muhtemel öğeler için bunu yapın."
 
-#: ../user/forum_rate.php:26
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "Değerlendirme devredışı"
 
-#: ../user/forum_rate.php:27
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "Bu özellik proje tarafından kapatıldı"
 
-#: ../user/forum_rate.php:58
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Oylayabilmek için daha fazla ortalama ya da toplam krediye sahip "
-"olmalısınız."
+msgstr "Oylayabilmek için daha fazla ortalama ya da toplam krediye sahip olmalısınız."
 
-#: ../user/forum_rate.php:62
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "Bu gönderiyi zaten değerlendirmişsiniz."
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "Konu başlığına dön"
 
-#: ../user/forum_rate.php:72
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "Rapor Kaydedildi"
 
-#: ../user/forum_rate.php:73
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "Raporunuz kaydedildi. Yardımlarınız için teşekkürler."
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "Oy Kaydedildi"
 
-#: ../user/forum_rate.php:76
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "Değerlendirmeniz kaydedildi. Bildiriminiz için teşekkürler."
 
-#: ../user/forum_rate.php:80
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "Oy Gönderme Problemi"
 
-#: ../user/forum_reply.php:73
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
-msgstr ""
-"Gönderiniz Akismet anti-spam sistemi tarafından bir saldırı olarak "
-"algılandı.  Lütfen yazdığınızı değiştirip, tekrar deneyin."
+msgstr "Gönderiniz Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip, tekrar deneyin."
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr "Cevap yaz"
 
-#: ../user/forum_reply.php:137
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr "Mesaj:"
 
-#: ../user/forum_reply.php:140
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "%1Mesaj NO%2'ya yanıt:"
 
-#: ../user/forum_reply.php:166
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr "Yanıt gönder"
 
-#: ../user/forum_reply.php:169
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "İmzamı bu yanıta ekle"
 
-#: ../user/forum_report_post.php:45
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
-msgstr ""
-"Gönderi raporlayabilmeniz için daha fazla ortalama ya da toplam krediye "
-"sahip olmalısınız."
+msgstr "Gönderi raporlayabilmeniz için daha fazla ortalama ya da toplam krediye sahip olmalısınız."
 
-#: ../user/forum_report_post.php:65
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr "Raporlama kaydedildi"
 
-#: ../user/forum_report_post.php:66
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "Raporunuz kaydedildi. Çabanız için teşekkürler."
 
-#: ../user/forum_report_post.php:67
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
-msgstr ""
-"Bir yönetici raporunuza bakacak ve ne yapılacağına karar verecek - bu belli "
-"bir süre alabilir, lütfen sabırlı olun"
+msgstr "Bir yönetici raporunuza bakacak ve ne yapılacağına karar verecek - bu belli bir süre alabilir, lütfen sabırlı olun"
 
-#: ../user/forum_report_post.php:71
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr "Bir forum gönderisini raporla"
 
-#: ../user/forum_report_post.php:73
+#: html/user/forum_report_post.php:78
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
-msgstr ""
-"Bu gönderiyi raporlamadan önce, +/- oylama sistemini kullanmayı tercih edin. "
-"Eğer yeterli sayıda kullanıcı olumsuz oy kullanırsa, en sonunda gizli hale "
-"gelecek.<br />Oylama sistemini gönderinin altında bulabilirsiniz."
+msgstr "Bu gönderiyi raporlamadan önce, +/- oylama sistemini kullanmayı tercih edin. Eğer yeterli sayıda kullanıcı olumsuz oy kullanırsa, en sonunda gizli hale gelecek.<br />Oylama sistemini gönderinin altında bulabilirsiniz."
 
-#: ../user/forum_report_post.php:80
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr "Gönderiyi raporla"
 
-#: ../user/forum_report_post.php:81
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Gönderiyi neden saldırgan buldunuz: %1Yeterli bilgi eklemeyi unutmayın. "
-"Böylece konu başlığını\n"
-"henüz okumamış bir kişinin sorunu kısa sürede tespit etmesi mümkün olacak.%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
+msgstr "Gönderiyi neden saldırgan buluyorsunuz: %1Henüz konuyu okumayan bir kişinin sorunu hızlı şekilde tanımlayabilmesi için lütfen yeterli bilgiyi ekleyin.%2"
 
-#: ../user/forum_report_post.php:90
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr "Rapor kaydedilmedi"
 
-#: ../user/forum_report_post.php:91
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
 msgstr "Raporunuz kaydedilmedi. Bir süre bekleyip tekrar deneyin."
 
-#: ../user/forum_report_post.php:92
+#: html/user/forum_report_post.php:106
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Bu geçici bir sorun değilse, lütfen proje yöneticilerine durumu bildirin."
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "Bu geçici bir sorun değilse, lütfen proje yöneticilerine durumu bildirin."
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 RSS beslemesi"
 
-#: ../user/forum_rss.php:42
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "Bu mesaj panosu bir RSS beslemesi olarak da mevcuttur."
 
-#: ../user/forum_rss.php:43
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr "Seçenekler:"
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Yalnızca kullanıcı NO %1 olan mesajları içer (varsayılan: tüm kullanıcılar)."
+msgstr "Yalnızca kullanıcı NO %1 olan mesajları içer (varsayılan: tüm kullanıcılar)."
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "Yalnızca son %1 günlük mesajları içer (varsayılan: 30)."
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Mesajları kısalt: %1 (her gönderinin sadece ilk 265 karakterlerini içerir)"
-
-#: ../user/forum_rss.php:53
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr "Yalnızca konular: %1 (her konunun sadece ilk mesajını içerir)"
 
-#: ../user/forum_search.php:27
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "Forum arama sonuçları"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "Aramanızla eşleşen konu başlıkları:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "Aramanızla eşleşen mesajlar:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "Üzgüm, arama sorgunuza uyan bir şey bulamadı. Daha az kelime (veya daha az özgün kelimeler) kullanarak aramanızı genişletmeyi deneyebilirsiniz."
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "Ayrıca, %1aynı aramayı Google kullanarak da yapabilirsiniz.%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "arama sonuçları"
+
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr "Forum ara"
 
-#: ../user/forum_search.php:31
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr "Arama sorgusu"
 
-#: ../user/forum_search.php:32
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "Anahtar kelimeler için ara:"
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "Belirtilen tüm kelimeleri içeren mesajlar görüntülenir."
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "Örneğin: \"ekran koruyucu dondu\""
 
-#: ../user/forum_search.php:36
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "Yazar NO için ara:"
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "Sadece bu yazarın mesajları görüntülenir"
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "Örneğin: \"43214\""
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr "Arama seçenekleri"
 
-#: ../user/forum_search.php:42
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr "Arama sınırlamaları"
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "En fazla bu kadar gün geriye doğru ara."
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 ay"
 
-#: ../user/forum_search.php:52
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr "1 yıl"
 
-#: ../user/forum_search.php:73
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "Forum"
+
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "Sadece bu forumdan mesajları görüntüle"
 
-#: ../user/forum_search.php:84
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr "Sırala:"
 
-#: ../user/forum_search.php:88
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr "Aramayı başlat"
 
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Forum arama sonuçları"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Aramanızla eşleşen konu başlıkları:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Aramanızla eşleşen mesajlar:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Üzgüm, arama sorgunuza uyan bir şey bulamadı. Daha az kelime (veya daha az "
-"özgün kelimeler) kullanarak aramanızı genişletmeyi deneyebilirsiniz."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Ayrıca, %1aynı aramayı Google kullanarak da yapabilirsiniz.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "arama sonuçları"
-
-#: ../user/forum_subscribe.php:46
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "Abonelik başarılı"
 
-#: ../user/forum_subscribe.php:49
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
 msgstr "Artık %1 abonesisiniz. Yeni bir gönderim olduğunda size bildirilecek."
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "Abonelik başarısız"
 
-#: ../user/forum_subscribe.php:52
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
 msgstr "Sizi %1 konusuna abone yapamadık. Lütfen daha sonra tekrar deneyin."
 
-#: ../user/forum_subscribe.php:61
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "Abonelik iptali başarılı"
 
-#: ../user/forum_subscribe.php:64
+#: html/user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Artık %1 abonesi değilsiniz. Artık bu konu için bildirimler almayacaksınız."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "Artık %1 abonesi değilsiniz. Artık bu konu için bildirimler almayacaksınız."
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "Abonelik iptali başarısız oldu"
 
-#: ../user/forum_subscribe.php:67
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"%1 konusundan aboneliğinizi kaldıramadık. Lütfen daha sonra tekrar deneyin."
+msgstr "%1 konusundan aboneliğinizi kaldıramadık. Lütfen daha sonra tekrar deneyin."
 
-#: ../user/forum_subscribe.php:74
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "Bilinmeyen abonelik eylemi"
 
-#: ../user/forum_thread.php:61
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "Bu forum sizin tarafınızdan görülebilir değil."
 
-#: ../user/forum_thread.php:69
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "Bu konu başlığı moderatörler tarafından gizlendi."
 
-#: ../user/forum_thread.php:128
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "Sorum yanıtlandı"
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "Eğer sorunuz yeterli şekilde yanıtlandıysa, lütfen buraya tıklayın."
 
-#: ../user/forum_thread.php:137
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "Ben de aynısını soruyorum"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr "Bu konu başlığına yeni bir mesaj ekle"
 
-#: ../user/forum_thread.php:171
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr "Aboneliği bitir"
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "Bu konu başlığına abonesiniz.  Aboneliği bitirmek için tıklayın."
 
-#: ../user/forum_thread.php:178
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr "Abone ol"
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Bu konu başlığına yeni mesajlar yazıldığında e-posta almak için tıklayın"
+msgstr "Bu konu başlığına yeni mesajlar yazıldığında e-posta almak için tıklayın"
 
-#: ../user/forum_thread.php:190
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr "Bu konu başlığının gizliliğini kaldırır"
 
-#: ../user/forum_thread.php:196
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr "Bu konu başlığını gizler"
 
-#: ../user/forum_thread.php:202
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr "Üst konudan kaldır"
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr "Bu konu başlığının üst konu durumunu kaldır"
 
-#: ../user/forum_thread.php:208
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr "Üst konu yap"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Bu konu başlığını üst konu başlığı yapar"
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "Bu konu başlığını forumun her zaman en tepesinde görünür yap"
 
-#: ../user/forum_thread.php:215
+#: html/user/forum_thread.php:219
 msgid "Unlock"
 msgstr "Kilidi kaldır"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Bu konu başlığının kilidini kaldırır"
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "Bu konu başlığında yeni gönderilere izin ver"
 
-#: ../user/forum_thread.php:221
+#: html/user/forum_thread.php:225
 msgid "Lock"
 msgstr "Kilitle"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Bu konu başlığını kilitler"
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "Bu konu başlığında yeni gönderilere izin verme"
 
-#: ../user/forum_thread.php:229
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr "Bu konu başlığını başka bir foruma taşır"
 
-#: ../user/forum_thread.php:234
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr "Başlığı düzenle"
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr "Konu başlığını düzenler"
 
-#: ../user/forum_thread.php:245
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "Konu başlığını kalıcı olarak sil"
+
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr "Bildirim olarak dışa aktar"
 
-#: ../user/forum_thread.php:251
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr "Dışa aktarma"
 
-#: ../user/forum_thread.php:252
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr "Bu haber öğesini bir Bildirim olarak dışa aktarmaz"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr "Sırala"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "Konu başlığı durum bilgisi güncellendi"
 
-#: ../user/forum_thread_status.php:50
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "Durum bilgisi güncellendi."
 
-#: ../user/forum_user_posts.php:73
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "%1 kullanıcısının gönderileri"
 
-#: ../user/friend.php:33
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr "Zaten arkadaş"
 
-#: ../user/friend.php:39
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "%1 ile %2 üzerinde arkadaşlık isteği aldınız."
 
-#: ../user/friend.php:41
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "Bu istek halen onaylanmayı bekliyor."
 
-#: ../user/friend.php:52
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 gönderdiğiniz arkadaşlık isteğini onaylamadı"
 
-#: ../user/friend.php:61
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "Kendinizle arkadaş olamazsınız"
 
-#: ../user/friend.php:69
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr "Arkadaş ekle"
 
-#: ../user/friend.php:74
+#: html/user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"%1 kullanıcısını arkadaş olarak eklemek istediniz. %2 kullanıcısını "
-"uyaracağız ve isteğinizi yanıtlamasını isteyeceğiz."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "%1 kullanıcısını arkadaş olarak eklemek istediniz. %2 kullanıcısını uyaracağız ve isteğinizi yanıtlamasını isteyeceğiz."
 
-#: ../user/friend.php:77
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "İstiyorsanız buraya bir mesaj ekleyin:"
 
-#: ../user/friend.php:115
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr "Arkadaşlık isteği gönderildi"
 
-#: ../user/friend.php:116
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "%1 kullanıcısını isteğiniz konusunda uyardık."
 
-#: ../user/friend.php:126
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr "Lütfen %1 olarak giriş yapın"
 
-#: ../user/friend.php:127
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "Bu arkadaşlık isteğini görebilmek için %1 olarak giriş yapmanız gerek"
 
-#: ../user/friend.php:138
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr "Arkadaşlık isteği"
 
-#: ../user/friend.php:141
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 sizinle arkadaş olmak istedi."
 
-#: ../user/friend.php:143
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 diyor ki: %2"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr "Arkadaşlığı onayla"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "%1 gerçekten arkadaşınızsa onaylamayı tıklayın"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr "Reddet"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "%1 arkadaşınız değilse reddetmeyi tıklayın"
 
-#: ../user/friend.php:186
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "Arkadaşlık onaylandı"
 
-#: ../user/friend.php:187
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "%1 ile arkadaşlık talebiniz onaylandı."
 
-#: ../user/friend.php:205
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr "Arkadaşlık reddedildi"
 
-#: ../user/friend.php:206
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "%1 ile arkadaşlık talebiniz reddedildi."
 
-#: ../user/friend.php:221
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr "Uyarı bulunamadı"
 
-#: ../user/friend.php:223
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr "Arkadaş onayladı"
 
-#: ../user/friend.php:224
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "%1 ile artık arkadaşsınız."
 
-#: ../user/friend.php:232
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "Arkadaşlığı bitir?"
 
-#: ../user/friend.php:234
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "%1 ile arkadaşlığınızı bitirmek istediğinize emin misiniz?"
 
-#: ../user/friend.php:239
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr "Arkadaş kal"
 
-#: ../user/friend.php:249
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "Arkadaşlık bitirildi"
 
-#: ../user/friend.php:250
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "%1 ile arkadaşlığınız bitti."
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Hesap bilginizi mi unuttunuz?"
-
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Hesabınızın e-posta adresini biliyorsanız, buradan bir e-posta "
-"alabilirsiniz:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) Hesabınızın e-posta adresini biliyorsanız, buradan bir e-posta alabilirsiniz:"
 
-#: ../user/get_passwd.php:29
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
-msgstr ""
-"Aşağıya e-posta adresini girin ve Tamam'ı tıklatın. Parolanızı sıfırlamak "
-"için e-posta talimatları gönderilecektir."
+msgstr "Aşağıya e-posta adresini girin ve Tamam'ı tıklatın. Parolanızı sıfırlamak için e-posta talimatları gönderilecektir."
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
-msgstr ""
-"2) Hesabınızın e-posta adresini unuttuysanız, veya buradan e-posta "
-"alamıyorsanız:"
+msgstr "2) Hesabınızın e-posta adresini unuttuysanız, veya buradan e-posta alamıyorsanız:"
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
-msgstr ""
-"Bu hesap altında BOINC çalıştırıyorsanız, yine de erişebilirsiniz. İşte "
-"nasıl olacağı:"
+msgstr "Bu hesap altında BOINC çalıştırıyorsanız, yine de erişebilirsiniz. İşte nasıl olacağı:"
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
-msgstr ""
-"Bilgisayarınızdaki BOINC veri klasörüne gidin (bu klasörün konumu, "
-"başlangıçta Olay Günlüğü'ne yazılır)."
+msgstr "Bilgisayarınızdaki BOINC veri klasörüne gidin (bu klasörün konumu, başlangıçta Olay Günlüğü'ne yazılır)."
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
 msgstr "Bu proje için hesap dosyanızı bulun; ismi <b>%1</b> olacaktır."
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Not Defteri gibi bir metin düzenleyicisinde dosyayı açın. Şunun gibi bir şey "
-"göreceksiniz"
+msgstr "Not Defteri gibi bir metin düzenleyicisinde dosyayı açın. Şunun gibi bir şey göreceksiniz"
 
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"%1 ve %2 arasında kalan kısımdaki metin dizisini seçip kopyalayın "
-"(yukarıdaki örnekte %3)."
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "%1 ve %2 arasında kalan kısımdaki metin dizisini seçip kopyalayın (yukarıdaki örnekte %3)."
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
 msgstr "Metin dizisini aşağıdaki bölüme yapıştırın ve ardından Tamam'a basın."
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
-msgstr ""
-"Artık hesabınıza giriş yapmış olacaksınız; hesabınızın e-posta ve şifresini "
-"güncelleyin."
+msgstr "Artık hesabınıza giriş yapmış olacaksınız; hesabınızın e-posta ve şifresini güncelleyin."
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
 msgstr "Kimlik doğrulayıcı ile giriş"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "Hesap bilginizi mi unuttunuz?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "GPU işleri raporlanmadı"
 
-#: ../user/gpu_list.php:183
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "En iyi GPU modelleri"
+
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Aşağıdaki listeler farklı platformlardaki en verimli GPU modellerini "
-"göstermektedir. Göreceli hızları parantez içinde gösterilmiştir."
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "Aşağıdaki listeler farklı platformlardaki en verimli GPU modellerini göstermektedir. Göreceli hızları, yani işlerin tamamlanması için geçen sürelerin ortalaması, parantez içinde gösterilmiştir."
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr "%1 projesine hoş geldiniz"
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Hesap tercihlerinizi aşağıdaki bağlantılardan görüp değiştirebilirsiniz."
+msgstr "Hesap tercihlerinizi aşağıdaki bağlantılardan görüp değiştirebilirsiniz."
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr "Şimdiye kadar yapmadıysanız, %1BOINC istemci yazılımını indirin%2."
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonim platform, uygulama mevcut değil"
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "Hesabınız"
 
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr "anonim platform"
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Uygulama sürümü meccut değil"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Uygulama mevcut değil"
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr "Platform mevcut değil"
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr "Tamamlanan iş sayısı"
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
-msgstr "Günlük ortalama en fazla iş"
+msgstr "Günlük azami iş"
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr "Bugünkü iş sayısı"
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr "Ardarda gelen doğrulanmış işler"
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr "Ortalama hesaplama hızı"
 
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr "%1 istemcisi için uygulama detayları"
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr "Bu bilgisayar hakkında kayda sahip değiliz."
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"Veritabanımızda halen bu bilgisayara gönderilen bir iş bulunduğundan, onu "
-"kayıtlarımızdan silemezsiniz. Bu bilgisayara gönderilen iş proje "
-"veritabanından silinene kadar, birkaç gün beklemeniz gerekir."
+msgstr "Veritabanımızda halen bu bilgisayara gönderilen bir iş bulunduğundan, onu kayıtlarımızdan silemezsiniz. Bu bilgisayara gönderilen iş proje veritabanından silinene kadar, birkaç gün beklemeniz gerekir."
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr "Bu bilgisayarın kaydını sil"
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr "Kayıt silindi."
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr "Bilgisayarlarınız listesine dön"
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr "Bilgisayar kayıtlarını birleştir"
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr "Bilgisayarları birleştir"
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Bazen BOINC yanlışlıkla aynı bilgisayara farklı kimlikler atar. En yenisiyle "
-"eski kimlikleri birleştirerek, bunu düzeltebilirsiniz."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Bazen BOINC yanlışlıkla aynı bilgisayara farklı kimlikler atar. En yenisiyle eski kimlikleri birleştirerek, bunu düzeltebilirsiniz."
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr "Hiçbir bilgisayar bununla birleştirme için uygun değil."
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr "Detayları görüntüle"
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"%1 ile aynı olan bilgisayarları gözden geçirin (oluşturulma %2, bilgisayar "
-"NO %3)"
+msgstr "%1 ile aynı olan bilgisayarları gözden geçirin (oluşturulma %2, bilgisayar NO %3)"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr "isim"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr "oluşturulma"
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr "bilgisayar NO"
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr "sunucu ismi yok"
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr "Sunucuları birleştir"
 
-#: ../user/host_update_credit.php:28
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "%1 kullanıcısına ait bilgisayarlar"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "Gizlenen bilgisayarlar"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "Bu kullanıcı, bilgisayarları hakkında bilgi gösterilmemesini tercih etti."
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "Bilgisayarlarınız"
+
+#: html/user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "Bilgisayar kredisi güncelleniyor"
 
-#: ../user/host_venue_action.php:41
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "Bilgisayar kredisi güncellendi"
+
+#: html/user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "Bilgisayar konumu güncellendi"
 
-#: ../user/host_venue_action.php:43
+#: html/user/host_venue_action.php:43
 msgid "none"
 msgstr "yok"
 
-#: ../user/host_venue_action.php:46
+#: html/user/host_venue_action.php:46
 msgid "The venue of this host has been set to %1."
 msgstr "Bu bilgisayarın konumu %1 olarak ayarlandı."
 
-#: ../user/host_venue_action.php:48
+#: html/user/host_venue_action.php:48
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
-msgstr ""
-"Bu değişiklik, bilgisayarın bu proje ile bir sonraki iletişim kurmasından "
-"itibaren geçerli olacak."
+msgstr "Bu değişiklik, bilgisayarın bu proje ile bir sonraki iletişim kurmasından itibaren geçerli olacak."
 
-#: ../user/host_venue_action.php:50
+#: html/user/host_venue_action.php:50
 msgid "Return to host page"
 msgstr "Sunucu sayfasına dön"
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1 kullanıcısına ait bilgisayarlar"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Gizlenen bilgisayarlar"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-"Bu kullanıcı, bilgisayarları hakkında bilgi gösterilmemesini tercih etti."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Bilgisayarlarınız"
-
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr "İzin verilen HTML etiketleri"
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
 msgstr "Takım açıklamalarında aşağıdaki HTML etiketlerine izin verilir:"
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr "kalın"
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr "italik"
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr "köprü"
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr "paragraf"
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr "ara"
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr "önceden biçimlendirilmiş"
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"resim; yüksekliği 450 pikseli geçemez. Lütfen resmi barındıran web sitesinin "
-"izni olmadan, resme bağlantı vermeyin."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "resim; yüksekliği 450 pikseli geçemez. Lütfen resmi barındıran web sitesinin izni olmadan, resme bağlantı vermeyin."
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
-msgstr ""
-"Ayrıca özel karakterler için 've işareti' (ampersand) gösterimi "
-"kullanabilirsiniz."
+msgstr "Ayrıca özel karakterler için 've işareti' (ampersand) gösterimi kullanabilirsiniz."
 
-#: ../user/info.php:35
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "Kurallar ve politikalar"
+
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "%1 projesini yalnızca yetkili bilgisayarlarda çalıştırın"
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
-msgstr ""
-"%1 projesini yalnızca kendi bilgisayarınızda ya da sahibinin izin verdiği "
-"bilgisayarlarda çalıştırın. Bazı okul ya da şirketlerin, bilgisayarlarının %"
-"1 gibi projeler için kullanılmaması yönünde politikaları bulunabilir."
+msgstr "%1 projesini yalnızca kendi bilgisayarınızda ya da sahibinin izin verdiği bilgisayarlarda çalıştırın. Bazı okul ya da şirketlerin, bilgisayarlarının %1 gibi projeler için kullanılmaması yönünde politikaları bulunabilir."
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
 msgstr "%1 bilgisayarınızı nasıl kullanacak"
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
-msgstr ""
-"Bilgisayarınızda %1 çalıştırdığınızda, CPU (işlemci) gücü, disk alanı ve ağ "
-"bant genişliğinin bir kısmını kullanacak. %1 projesinin bu kaynakları ne "
-"zaman ve ne kadar kullanacağını belirleyebilirsiniz."
+msgstr "Bilgisayarınızda %1 çalıştırdığınızda, CPU (işlemci) gücü, disk alanı ve ağ bant genişliğinin bir kısmını kullanacak. %1 projesinin bu kaynakları ne zaman ve ne kadar kullanacağını belirleyebilirsiniz."
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
-msgstr ""
-"Bilgisayarınız, gönderilen işleri %1 projesinin hedefleri doğrultusunda ve "
-"proje sitesinde tanımlandığı şekilde tamamlayacak. Bu kapsamda uygulama "
-"yazılımları zaman zaman değişebilir."
+msgstr "Bilgisayarınız, gönderilen işleri %1 projesinin hedefleri doğrultusunda ve proje sitesinde tanımlandığı şekilde tamamlayacak. Bu kapsamda uygulama yazılımları zaman zaman değişebilir."
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr "Gizlilik politikası"
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"%1 üzerindeki hesabınız, seçeceğiniz bir isimle birlikte tanınır. Bu isim, "
-"bilgisayarınızın %1 için tamamladığı işlerin özetiyle birlikte, %1 sitesinde "
-"gösterilebilir. Eğer anonim kalmak istiyorsanız, gerçek kimliğinizi ortaya "
-"çıkarmayan bir isim seçin."
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "%1 üzerindeki hesabınız, seçeceğiniz bir isimle birlikte tanınır. Bu isim, bilgisayarınızın %1 için tamamladığı işlerin özetiyle birlikte, %1 sitesinde gösterilebilir. Eğer anonim kalmak istiyorsanız, gerçek kimliğinizi ortaya çıkarmayan bir isim seçin."
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Eğer %1 projesine katılırsanız, bilgisayarınız hakkında bilgi (örneğin "
-"işlemci tipi, bellek miktarı vb.) %1 tarafından kaydedilecek ve "
-"bilgisayarınıza ne tip iş gönderileceğinin belirlenmesinde kullanılacak. Bu "
-"bilgi %1 internet sitesinde de gösterilecek. Ancak, bilgisayarınızın "
-"konumuyla ilgili herhangi bir bilgi (örneğin etki alanı adı ya da ağ adresi) "
-"gösterilmeyecek."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"%1 projesine katılmak için, e-postaları alacağınız bir adres vermelisiniz. "
-"Bu adres %1 internet sitesinde gösterilmeyecek ya da başka organizasyonlarla "
-"paylaşılmayacak. %1 size düzenli olarak bilgilendirme e-postaları "
-"gönderebilecek, bununla birlikte, gönderilmemesini de sağlayabilirsiniz."
+msgstr "Eğer %1 projesine katılırsanız, bilgisayarınız hakkında bilgi (örneğin işlemci tipi, bellek miktarı vb.) %1 tarafından kaydedilecek ve bilgisayarınıza ne tip iş gönderileceğinin belirlenmesinde kullanılacak. Bu bilgi %1 internet sitesinde de gösterilecek. Ancak, bilgisayarınızın konumuyla ilgili herhangi bir bilgi (örneğin etki alanı adı ya da ağ adresi) gösterilmeyecek."
+
+#: html/user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "%1 projesine katılmak için, e-postaları alacağınız bir adres vermelisiniz. Bu adres %1 internet sitesinde gösterilmeyecek ya da başka organizasyonlarla paylaşılmayacak. %1 size düzenli olarak bilgilendirme e-postaları gönderebilecek, bununla birlikte, gönderilmemesini de sağlayabilirsiniz."
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"%1 internet sitesinden gönderilen özel mesajları, yalnızca gönderen ve alan "
-"görebilir.  %1 özel mesajların içeriğini gözlemlemez ya da kontrol altında "
-"tutmaz.  Eğer başka bir %1 kullanıcısından istemediğiniz özel mesajlar "
-"alıyorsanız, onu %2mesaj filtrenize%3 ekleyebilirsiniz.  Böylece, bu kişiden "
-"gelen özel ya da herkese açık hiç bir mesajı görmezsiniz."
+msgstr "%1 internet sitesinden gönderilen özel mesajları, yalnızca gönderen ve alan görebilir.  %1 özel mesajların içeriğini gözlemlemez ya da kontrol altında tutmaz.  Eğer başka bir %1 kullanıcısından istemediğiniz özel mesajlar alıyorsanız, onu %2mesaj filtrenize%3 ekleyebilirsiniz.  Böylece, bu kişiden gelen özel ya da herkese açık hiç bir mesajı görmezsiniz."
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Eğer internet sitesi forumlarımızı kullanıyorsanız, %2gönderim ilkelerine%3 "
-"uymak zorundasınız.  %1 forumlarına gönderilen mesajlar herkes tarafından "
-"görülebilir, buna üye olmayanlar da dahildir.  Forumlara mesaj göndermekle, "
-"mesajların herhangi biri tarafından görülmesi ve kopyalanmasını kabul etmiş "
-"ve içeriği üzerindeki haklarınızdan vazgeçmiş oluyorsunuz."
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "Eğer internet sitesi forumlarımızı kullanıyorsanız, %2gönderim ilkelerine%3 uymak zorundasınız.  %1 forumlarına gönderilen mesajlar herkes tarafından görülebilir, buna üye olmayanlar da dahildir.  Forumlara mesaj göndermekle, mesajların herhangi biri tarafından görülmesi ve kopyalanmasını kabul etmiş ve içeriği üzerindeki haklarınızdan vazgeçmiş oluyorsunuz."
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
 msgstr "%1 çalıştırmak güvenli midir?"
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"İnternetten herhangi bir yazılım indirdiğinizde, bazı olasılıkları göze "
-"almaktasınız: Yazılımın tehlikeli hataları bulunabilir ya da indirme "
-"sunucusu hack'lenmiş olabilir. %1 bu riskleri en aza indirmeye gayret "
-"etmekte. Uygulamalarımızı dikkalice test etmekteyiz. Sunucularımız bir "
-"güvenlik duvarı arkasında bulunuyor ve yüksek güvenlik için "
-"yapılandırılıyor. İndirilen yazılımların doğruluğunu sağlamak için, tüm "
-"çalıştırılabilir dosyalar internete bağlı olmayan güvenli bir bilgisayarda "
-"dijital olarak imzalanıyor."
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "İnternetten herhangi bir yazılım indirdiğinizde, bazı olasılıkları göze almaktasınız: Yazılımın tehlikeli hataları bulunabilir ya da indirme sunucusu hacklenmiş olabilir. %1 bu riskleri en aza indirmeye gayret etmekte. Uygulamalarımızı dikkatlice test etmekteyiz. Sunucularımız bir güvenlik duvarı arkasında bulunuyor ve yüksek güvenlik için yapılandırılıyor. İndirilen yazılımların doğruluğunu sağlamak için, tüm çalıştırılabilir dosyalar internete bağlı olmayan güvenli bir bilgisay [...]
 
-#: ../user/info.php:50
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"%1 tarafından çalıştırılan uygulamalar, bazı bilgisayarların fazla "
-"ısınmasına neden olabilir. Bu gerçekleşirse, %1 kullanmayı durdurun ya da "
-"CPU (işlemci) kullanımını sınırlayan bir %2yardımcı program%3 kullanın."
+msgstr "%1 tarafından çalıştırılan uygulamalar, bazı bilgisayarların fazla ısınmasına neden olabilir. Bu gerçekleşirse, %1 kullanmayı durdurun ya da CPU (işlemci) kullanımını sınırlayan bir %2yardımcı program%3 kullanın."
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1, %2 tarafından geliştirildi. BOINC, Kaliforniya Üniversitesi'nde "
-"geliştirildi."
+msgstr "%1, %2 tarafından geliştirildi. BOINC, Kaliforniya Üniversitesi'nde geliştirildi."
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr "Sorumluluk"
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 ve %2, %1 projesine katılmakla bilgisayarınızda oluşabilecek bir hasarı, "
-"veri kaybını ya da oluşabilecek başka olayların sonuçlarını üstlenmez."
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 ve %2, %1 projesine katılmakla bilgisayarınızda oluşabilecek bir hasarı, veri kaybını ya da oluşabilecek başka olayların sonuçlarını üstlenmez."
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr "Diğer BOINC projeleri"
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"Diğer projeler, %1 ile aynı platformu kullanır, yani BOINC'i. Bir ya da daha "
-"fazla projeye daha katılmayı düşünebilirsiniz. Böylece, bilgisayarınız %1 "
-"için bir iş bulunmadığı zamanlarda da faydalı olmayı sürdürebilir."
+msgstr "Diğer projeler, %1 ile aynı platformu kullanır, yani BOINC'i. Bir ya da daha fazla projeye daha katılmayı düşünebilirsiniz. Böylece, bilgisayarınız %1 için bir iş bulunmadığı zamanlarda da faydalı olmayı sürdürebilir."
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
-msgstr ""
-"Bu diğer projeler, %1 ile ortak değildir ve onların güvenlik yöntemlerine ya "
-"da araştırmalarının doğasına kefil olmayız. Diğer projelere, riski "
-"kendinize ait olmak üzere katılın."
+msgstr "Bu diğer projeler, %1 ile ortak değildir ve onların güvenlik yöntemlerine ya da araştırmalarının doğasına kefil olmayız. Diğer projelere, riski kendinize ait olmak üzere katılın."
+
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "Yeniyim"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "BOINC kullanıcısıyım"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr " %1Kurallarımızı ve politikalarımızı%2 okuyun"
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "BOINC masaüstü yazılımını indirin."
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "İndirme"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "Android cihazlar için BOINC'i Google Play Store'dan veya Amazon App Store'dan indirin."
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "Yükleyiciyi çalıştırın."
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "Listeden %1'i seçin veya bunu girin: %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "BOINC henüz mevcut değilse bu cihaza kurun."
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "Araçlar / Proje Ekle'yi seçin. Listeden %1'i seçin veya bunu girin: %2"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "Bu bilgisayarda BOINC'in komut satırı sürümünü çalıştırıyorsanız, %1bir hesap oluşturun%2, sonra projeyi eklemek için %3boinccmd --project_attach%4 komutunu kullanın."
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "%1 takımına katıl"
 
-#: ../user/language_select.php:47
+#: html/user/language_select.php:46
 msgid "Language selection"
 msgstr "Dil seçimi"
 
-#: ../user/language_select.php:73
+#: html/user/language_select.php:57
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
-msgstr ""
-"Bu internet sitesi çeşitli dillerde mevcuttur. Şu anda seçili olan dil: %1."
+msgstr "Bu internet sitesi çeşitli dillerde mevcuttur. Şu anda seçili olan dil: %1."
 
-#: ../user/language_select.php:78
+#: html/user/language_select.php:62
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Normalde dil seçimi tarayıcınızın dil ayarlarına bakılarak gerçekleştirilir, "
-"şu anda bulunan ayar: %1.  Bu ayarı şu şekilde değiştirebilirsiniz:"
+msgstr "Normalde dil seçimi tarayıcınızın dil ayarlarına bakılarak gerçekleştirilir, şu anda bulunan ayar: %1.  Bu ayarı şu şekilde değiştirebilirsiniz:"
 
-#: ../user/language_select.php:83
+#: html/user/language_select.php:67
 msgid "Firefox: Tools/Options/General"
 msgstr "Firefox: Araçlar/Seçenekler/Genel"
 
-#: ../user/language_select.php:85
+#: html/user/language_select.php:69
 msgid "Microsoft IE: Tools/Internet Options/Languages"
 msgstr "Microsoft IE: Araçlar/Internet Seçenekleri/Diller"
 
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Ya da aşağıdaki bağlantılardan birisine tıklayarak, istediğiniz dili "
-"seçebilirsiniz.  Bu, tarayıcınıza bir çerez gönderir; tarayıcınızın "
-"sitemizden gelen çerezleri kabul ettiğinden emin olun."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Dil adı (seçmek için tıklayın)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Tarayıcının dil ayarlarını kullan"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "Veya aşağıdaki menüden bir dil seçebilirsiniz:"
 
-#: ../user/language_select.php:113
+#: html/user/language_select.php:85
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Çeviriler gönüllüler tarafından yapılır.  Eğer anadiliniz burada mevcut "
-"değilse, %1bir çeviri gerçekleştirebilirsiniz%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "E-posta adresi:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "e-posta adresinizi mi unuttunuz?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Parola:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "parolanızı mı unuttunuz?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Daima bağlı kal"
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "Çeviriler gönüllüler tarafından yapılır. Ana diliniz yoksa veya eksikler varsa, %1çeviride yardımcı olabilirsiniz%2."
 
-#: ../user/login_form.php:62
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr "ya da %1bir hesap oluştur%2."
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr "Sürüyor %1"
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr "%1, %2 ile birleştiriliyor"
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
 msgstr "Bilgisayarlarınız listesine dön"
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -5193,43 +5078,32 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"Bu işlem, bilgisayarları etki alanı adına göre birleştirir.\n"
-"        <p>\n"
-"        Her etki alanı adı için, bu adı taşıyan yeni bilgisayar ile\n"
-"        bu adı taşıyan tüm eski bilgisayarlar birleştirilecek.\n"
-"        Uyumsuz bilgisayar birleştirilmiş olmayacak.\n"
-"        <p>"
+msgstr "Bu işlem, bilgisayarları etki alanı adına göre birleştirir.\n        <p>\n        Her etki alanı adı için, bu adı taşıyan yeni bilgisayar ile\n        bu adı taşıyan tüm eski bilgisayarlar birleştirilecek.\n        Uyumsuz bilgisayar birleştirilmiş olmayacak.\n        <p>"
 
-#: ../user/merge_by_name.php:82
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr "Devam et ve bunu yap"
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr "Bilgisayarlar sayfasına dön"
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"Bilgi tartışmasını ve akışını maksimize etmek için,\n"
-"mesaj panolarımız yönetilmektedir.\n"
-"Mesaj panosu gönderimleri aşağıdaki kurallara tabidir:\n"
+msgstr "\nBilgi tartışmasını ve akışını azami hale getirmek için,\nmesaj panolarımız yönetilmektedir.\nMesaj panosu gönderimleri aşağıdaki kurallara tabidir:\n"
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -5258,2029 +5132,1521 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Moderatörler bu kuralların herhangi birini ihlal eden mesajları silebilir.\n"
-"Silinen mesajların yazarları e-posta yoluyla bildirilecektir.\n"
-"Saldırgan suçlular, gönderileri geçici olarak iptal yetkisine sahip olabilir\n"
-"(istismarı önlemek için, sadece proje yöneticileri bunu yapma yetkisine "
-"sahiptir).\n"
-"Kötü davranışın ilave çeşitleri (diğer katılımcıların IP adreslerini "
-"yakalamak için\n"
-"\"gizli dinleme\" mesajları, forumu spamlamak için aşırı miktarda konu açma, "
-"vb.),\n"
-"resmi kurallarda yer almamakla birlikte, yine benzer cezalara yol açabilir.\n"
-"<p>\n"
-"Bir mesajın gönderim kurallarından herhangi birini ihlal ettiğini\n"
-"düşünüyorsanız, yazı üzerindeki kırmızı X işaretini tıklayın ve formu\n"
-"doldurun; moderatörler şikayetinizden haberdar edilecek. Bu butonu\n"
-"sadece açık ihlaller için kullanın - kişisel anlaşmazlıklar için değil.\n"
-"<p>\n"
-"Moderasyon yaparken olabildiğince adil olmaya çalışıyoruz, ama\n"
-"büyük bir kullanıcı topluluğunda, birçok farklı bakış açısı bulunurken,\n"
-"her zaman bazı kişiler ölçülü kararlardan dahi memnun olmayacaktır.\n"
-"Bu gerçekleşirse üzülürüz, ancak lütfen şuna dikkat edin; her zaman\n"
-"herkesi memnun edemeyiz, elimizdeki imkanlarla kararlar alıyoruz ve\n"
-"forumun geneli için en iyisini yapmaya çalışıyoruz.\n"
-"Lütfen forumlarda bizim moderasyon politikalarımızı tartışmayın.\n"
-"Biz ne bir sosyal mühendislik projesiyiz, ne de mükemmel derecede adil\n"
-"bir sistem yaratmak peşindeyiz. Bu yüzden, bu tür tartışmalar verimsiz ve\n"
-"potansiyel olarak kışkırtıcı olma eğilimindedir. Eğer meşru bir iddianız "
-"varsa,\n"
-"aşağıdaki adrese e-posta gönderin.\n"
-"<p>\n"
-"Bu moderasyon politikası %1 tarafından belirlenir.\n"
-"Eğer politika hakkında yorumlarınız varsa, %2 adresine\n"
-"e-posta gönderin.\n"
+msgstr "\n<p>\nModeratörler bu kuralların herhangi birini ihlal eden mesajları silebilir.\nSilinen mesajların yazarları e-posta yoluyla bildirilecektir.\nSaldırgan suçlular, gönderileri geçici olarak iptal yetkisine sahip olabilir\n(istismarı önlemek için, sadece proje yöneticileri bunu yapma yetkisine sahiptir).\nKötü davranışın ilave çeşitleri (diğer katılımcıların IP adreslerini yakalamak için\n\"gizli dinleme\" mesajları, forumu spamlamak için aşırı miktarda konu açma, vb.),\nresmi k [...]
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr "Beklenen kredi"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr "Sonuç NO"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr "İş birimi NO"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr "Sunucu NO"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr "İstenen kredi"
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr "Beklenen kredi: %1"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr "Bu kullanıcıdan gelen mesajları engelle"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr "Kullanıcıyı engelle"
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr "Mesajınız gönderildi."
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr "Özel mesajınız bulunmuyor."
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr "Gönderen ve tarih"
 
-#: ../user/pm.php:106
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr "konu başlığına yeni bir mesaj ekle"
 
-#: ../user/pm.php:107
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr "Bu mesajı sil"
 
-#: ../user/pm.php:112
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr "Tümünü seç"
 
-#: ../user/pm.php:114
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr "Tümünün seçimini kaldır"
 
-#: ../user/pm.php:117
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr "Seçili mesajları sil"
 
-#: ../user/pm.php:140
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr "Gönderen"
 
-#: ../user/pm.php:143
+#: html/user/pm.php:137
 msgid "Date"
 msgstr "Tarih"
 
-#: ../user/pm.php:185
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
 msgstr "Özel mesaj göndermek için tüm alanları doldurmalısınız"
 
-#: ../user/pm.php:188
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "Mesaj gönderildi"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "Mesajınız %1 takımı üyelerine gönderilmiştir."
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"İlk yanıtınız Akismet anti-spam sistemi\n"
-"                tarafından bir saldırı olarak algılandı.\n"
-"                Lütfen yazdığınızı değiştirip tekrar deneyin."
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "Mesajınız Akismet anti-spam sistemi\ntarafından spam olarak işaretlendi.\nLütfen metninizi değiştirin ve tekrar deneyin."
 
-#: ../user/pm.php:205
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr "%1 NO'suyla bir kullanıcı bulunamadı"
 
-#: ../user/pm.php:210
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr "%1 adında bir kullanıcı bulunamadı."
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"%1 benzersiz bir kullanıcı adı değil; kullanıcının kimlik NO'sunu "
-"kullanmalısınız"
+msgstr "%1 benzersiz bir kullanıcı adı değil; kullanıcının kimlik NO'sunu kullanmalısınız"
 
-#: ../user/pm.php:217
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr "%1 kullanıcısı (NO: %2) sizden gelen özel mesajları kabul etmiyor."
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr "Böyle bir kullanıcı yok"
 
-#: ../user/pm.php:242
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr "%1 gerçekten engellensin mi?"
 
-#: ../user/pm.php:243
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
-msgstr ""
-"%1 kullanıcısının size özel mesaj göndermesini engellemek istediğinize emin "
-"misiniz?"
+msgstr "%1 kullanıcısının size özel mesaj göndermesini engellemek istediğinize emin misiniz?"
 
-#: ../user/pm.php:244
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
 msgstr "Unutmayın ki, yalnızca sınırlı sayıda kullanıcıyı engelleyebilirsiniz."
 
-#: ../user/pm.php:245
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
-msgstr ""
-"Bir kullanıcı engellendiğinizde, engelini forum tercihleri sayfasından "
-"kaldırabilirsiniz."
+msgstr "Bir kullanıcı engellendiğinizde, engelini forum tercihleri sayfasından kaldırabilirsiniz."
 
-#: ../user/pm.php:252
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr "Hayır, iptal"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr "eşleşen kullanıcı yok"
 
-#: ../user/pm.php:263
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr "%1 kullancısı engellendi"
 
-#: ../user/pm.php:265
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "%1 kullanıcısının size özel mesaj göndermesi engellendi."
 
-#: ../user/pm.php:266
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "Engellemeyi kaldırmak için, %1forum tercihlerini%2 ziyaret edin"
 
-#: ../user/pm.php:302
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr "Bilinmeyen eylem"
 
-#: ../user/prefs.php:32
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1 için %2"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "Tercihlere dön"
+
+#: html/user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Tercihleriniz güncellendi. Güncel tercihler,\n"
-"          bilgisayarınız %1 ile ilk bağlantı kurduğunda ya da\n"
-"          BOINC Manager'da %2Güncelle%3 komutunu kullandığınızda "
-"kullanılmaya başlanacak."
+msgstr "Tercihleriniz güncellendi. Güncel tercihler,\n          bilgisayarınız %1 ile ilk bağlantı kurduğunda ya da\n          BOINC Manager'da %2Güncelle%3 komutunu kullandığınızda kullanılmaya başlanacak."
 
-#: ../user/prefs.php:41
+#: html/user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Tercihleriniz varsayılan değerlerine sıfırlandı ve bilgisayarınız\n"
-"          %1 ile iletişim kurduğunda ya da BOINC Manager'dan\n"
-"          %2Güncelle%3 komutu kullanıldığında yürürlüğe girecek."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 için %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Tercihlere dön"
+msgstr "Tercihleriniz varsayılan değerlerine sıfırlandı ve bilgisayarınız\n          %1 ile iletişim kurduğunda ya da BOINC Manager'dan\n          %2Güncelle%3 komutu kullanıldığında yürürlüğe girecek."
 
-#: ../user/prefs_remove.php:45
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "Tercihlerin kaldırılmasını onayla"
 
-#: ../user/prefs_remove.php:48
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr "%2 için ayrı %1 tercihlerinizi silmek istediğinize emin misiniz?"
 
-#: ../user/prefs_remove.php:52
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "Tercihleri kaldır"
 
-#: ../user/prefs_remove.php:54
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "İptal"
 
-#: ../user/profile_menu.php:35
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
-msgstr ""
-"%1Profilller%2, fikirlerinizi ve özgeçmişinizi %3 topluluğuyla paylaşmanızı "
-"sağlar."
+msgstr "%1Profilller%2, fikirlerinizi ve özgeçmişinizi %3 topluluğuyla paylaşmanızı sağlar."
 
-#: ../user/profile_menu.php:36
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
-msgstr ""
-"Sizin gibi düşünen gönüllüleri arayın ve görüşlerinizle diğerlerine katkıda "
-"bulunun."
+msgstr "Sizin gibi düşünen gönüllüleri arayın ve görüşlerinizle diğerlerine katkıda bulunun."
 
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
-msgstr ""
-"Sahip değilseniz, diğerlerinin görmesi için %1kendi kullanıcı profilinizi "
-"oluşturabilirsiniz%2."
+msgstr "Sahip değilseniz, diğerlerinin görmesi için %1kendi kullanıcı profilinizi oluşturabilirsiniz%2."
 
-#: ../user/profile_menu.php:42
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "Günün Kullanıcısı"
 
-#: ../user/profile_menu.php:57
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "Kullancı Profili Gezgini"
 
-#: ../user/profile_menu.php:60
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "%1Kullancı Resim Galerisine%2 bak."
 
-#: ../user/profile_menu.php:61
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "Profillere %1ülkelerine göre%2 gözat."
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
-msgstr ""
-"Profillere %1rasgele%2, %3resimlerle rasgele%2 ya da %4resimler olmadan "
-"rasgele%2 gözat."
+msgstr "Profillere %1rasgele%2, %3resimlerle rasgele%2 ya da %4resimler olmadan rasgele%2 gözat."
 
-#: ../user/profile_menu.php:66
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "Alfabetik profil listesi:"
 
-#: ../user/profile_menu.php:72
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "Profil yazısında ara"
 
-#: ../user/profile_menu.php:98
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr "Profil yok"
 
-#: ../user/profile_menu.php:99
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "Aramanızla eşleşen profil yok."
 
-#: ../user/profile_rate.php:29
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "Geçersiz oy tipi:"
 
-#: ../user/profile_rate.php:34
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "Oy Kaydedildi"
 
-#: ../user/profile_rate.php:38
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr "Teşekkürler"
 
-#: ../user/profile_rate.php:41
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "Öneriniz kaydedildi."
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "Bu profilin çıkarılması konusundaki oyunuz kaydedildi."
 
-#: ../user/profile_rate.php:46
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "Profile dön."
 
-#: ../user/profile_search_action.php:36
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "'%1' içeren profiller"
 
-#: ../user/profile_search_action.php:40
+#: html/user/profile_search_action.php:42
 msgid "User name"
 msgstr "Kullanıcı adı"
 
-#: ../user/profile_search_action.php:41
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "Katıldığı projeler"
 
-#: ../user/profile_search_action.php:44
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "Güncel ortalama kredi"
 
-#: ../user/profile_search_action.php:54
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "'%1' içeren profil bulunamadı"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "İş %1"
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "Eşleşen iş yok:"
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr "Bu özellik geçici olarak kapatıldı"
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr "%1 NO'suyla bilgisayar bulunamadı"
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr "Erişim yok"
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
 msgstr "Eksik kullanıcı NO ya da sunucu NO"
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr "Görüntülenecek iş yok"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Çalışıyor"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1 bakım için geçici olarak kapalıdır."
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "%1 nedir?"
 
-#: ../user/server_status.php:100
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "Haberler"
+
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr "Çalışmıyor"
 
-#: ../user/server_status.php:103
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "Çalışıyor"
+
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr "Devre dışı"
 
-#: ../user/server_status.php:231
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr "Proje durumu"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Sunucu yazılımı sürümü: %1"
-
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr "Program"
 
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr "Sunucu"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "veri-yürüten internet sayfaları"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "gönderme/indirme sunucusu"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "zamanlayıcı"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Çalışıyor:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Program normal olarak çalışıyor"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Çalışmıyor:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Programda hata var ya da proje kapalı"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Devre dışı:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Program devre dışı"
-
-#: ../user/server_status.php:303
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr "Hesaplama durumu"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Veritabanı sunucusu erişilebilir değil"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Gönderilmeye hazır işler"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Süren işler"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Doğrulama için bekleyen iş birimleri"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Benzetme için bekleyen iş birimleri"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Silinmek için bekleyen iş birimleri"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Dosya silinmesi için bekleyen işler"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Dönüştürücüde biriken iş (saat)"
-
-#: ../user/server_status.php:374
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr "Kullanıcılar"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "güncel krediye sahip"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "krediye sahip"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "son 24 saatte kaydolan"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "şuanki GigaFLOP"
-
-#: ../user/server_status.php:420
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr "Uygulamaya göre işler"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "uygulama"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "gönderilmemiş"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "sürmekte"
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "Son 100 sonucun ortalama çalışma saati: Ortalama, asgari, azami)"
 
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "son 100 sonucun ortalama çalışma saati (en az-çok)"
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "Son 24 saatteki kullanıcılar"
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "son 24 saatteki yeni üyeler"
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "Veritabanı şeması sürümü:"
 
-#: ../user/show_host_detail.php:40
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr "Bilgisayar %1"
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr "İstatistikler ve en iyiler listeleri"
 
-#: ../user/stats.php:28
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr "%1 için istatistikler"
 
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"%1 ve diğer BOINC-tabanlı projeler için daha detaylı istatistikler, çeşitli "
-"internet sitelerinde mevcuttur:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Güncel istatistiklerinizi, bir \"imza resmi\" biçiminde de görebilirsiniz:"
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "En iyi katılımcılar"
 
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Ek olarak, tüm BOINC projelerindeki kişisel istatistiklerinizin özetini de "
-"çeşitli sitelerden alabilirsiniz; %1ana sayfanıza%2 bakın."
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "En iyi takımlar"
 
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 katılımcıları %2takımlar%3 oluşturabilir."
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "En iyi bilgisayarlar"
 
-#: ../user/team.php:29
+#: html/user/stats.php:53
 msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Aynı anda yalnızca bir takımın üyesi olabilirsiniz. Bir takıma istediğiniz "
-"zaman katılıp ayrılabilirsiniz."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Her takım şunları yapabilen bir %1kurucuya%2 sahiptir:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "Takım üyelerinin e-posta adreslerini görme"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "Takımın ismini ve tanıtımını düzenleme"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "Takım Yöneticileri ekleme ya da çıkarma"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "Takımdan bir üyeyi çıkarma"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "Üyesi yoksa takımı kaldırma."
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Bir takıma katılmak için, takımın sayfasını ziyaret edin ve %1Bu takıma "
-"katıl%2 bağlantısına tıklayın."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Bir takım bul"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "%1 ve diğer BOINC-tabanlı projeler için daha detaylı istatistikler, çeşitli internet sitelerinde mevcuttur:"
 
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Tüm takımlar"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 takımları"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Yeni bir takım oluştur"
+#: html/user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "Güncel istatistiklerinizi, bir \"imza resmi\" biçiminde de görebilirsiniz:"
 
-#: ../user/team.php:59
+#: html/user/stats.php:59
 msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Size göre bir takım bulamadıysanız, %1bir takım oluşturabilirsiniz%2."
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "Ek olarak, tüm BOINC projelerindeki kişisel istatistiklerinizin özetini de çeşitli sitelerden alabilirsiniz; %1ana sayfanıza%2 bakın."
 
-#: ../user/team_admins.php:34
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "Bu kullanıcıyı Takım Yöneticiliğinden çıkar"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr "Takım Yöneticileri ekleme ya da çıkarma"
 
-#: ../user/team_admins.php:41
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Takımınızın üyelerini 'Takım Yöneticisi' yapabilirsiniz. Takım Yöneticileri "
-"şunları gerçekleştirebilir:"
+msgstr "Takımınızın üyelerini 'Takım Yöneticisi' yapabilirsiniz. Takım Yöneticileri şunları gerçekleştirebilir:"
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
-msgstr "Takım bilgisini düzenleme (isim, URL, tanıtım, ülke)"
+msgstr "Takım bilgisini düzenleme (isim, URL, açıklama, ülke)"
 
-#: ../user/team_admins.php:44
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "Takımın katılma/ayrılma geçmişini görüntüleme"
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "Takıma mesaj gönder"
+
+#: html/user/team_admins.php:48
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Eğer mevcutsa, takım forumunu yönetme (yöneticiler, moderasyon olayları ve "
-"red X raporları hakkında uyarı e-postaları alır)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "Eğer mevcutsa, takım forumunu yönetme (yöneticiler, moderasyon olayları ve red X raporları hakkında uyarı e-postaları alır)"
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr "Takım Yöneticileri şunları yapamaz:"
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr "Takım kurucusunu değiştirme"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr "Üyeleri çıkartma"
 
-#: ../user/team_admins.php:53
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Bir Takım Yöneticisi takımdan ayrılırsa, Takım Yöneticiliği de sona erer."
+msgstr "Bir Takım Yöneticisi takımdan ayrılırsa, Takım Yöneticiliği de sona erer."
 
-#: ../user/team_admins.php:54
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
-msgstr ""
-"Yalnızca bildiğiniz  ve tamamen güvendiğiniz kişileri Takım Yöneticisi "
-"yapmanızı öneririz."
+msgstr "Yalnızca bildiğiniz  ve tamamen güvendiğiniz kişileri Takım Yöneticisi yapmanızı öneririz."
 
-#: ../user/team_admins.php:59
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr "Şu anda bir Takım Yöneticisi bulunmuyor"
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr "Mevcut Takım Yöneticileri"
 
-#: ../user/team_admins.php:62
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr "Burada Takım Yöneticisi ol: "
 
-#: ../user/team_admins.php:77
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr "Takım Yöneticisi ekle"
 
-#: ../user/team_admins.php:78
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr "Takım üyesinin E-posta adresi:"
 
-#: ../user/team_admins.php:90
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr "yöneticiyi kaldırma başarısız oldu"
 
-#: ../user/team_admins.php:99
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr "Kullanıcı takımın üyesi değil"
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr "%1 zaten %2 takımının bir yöneticisi"
 
-#: ../user/team_admins.php:105
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr "Yönetici eklenemedi"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "Eşleşen takım yok"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr "eşleşen takım yok"
 
-#: ../user/team_change_founder_action.php:38
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "Kullanıcı %1 takımının üyesi değil"
 
-#: ../user/team_change_founder_action.php:41
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "%1 takımının kurucu değişimi"
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1, %2 takımının kurucusu oldu"
 
-#: ../user/team_change_founder_form.php:37
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "%1 takımının kurucusunu değiştir"
 
-#: ../user/team_change_founder_form.php:43
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
-msgstr ""
-"Takım üyesi %1, %2 tarihinde bu takımın yöneticisi olmayı talep etti, ancak "
-"takımdan ayrıldı. Dolayısıyla talep iptal ediliyor."
+msgstr "Takım üyesi %1, %2 tarihinde bu takımın yöneticisi olmayı talep etti, ancak takımdan ayrıldı. Dolayısıyla talep iptal ediliyor."
 
-#: ../user/team_change_founder_form.php:49
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Takım üyesi %1, bu takımın yöneticisi olmayı talep etti. Bu gerçekleşebilir "
-"çünkü takımdan ayrıldınız ya da takımla uzun süredir irtibat kurmuyorsunuz."
+msgstr "Takım üyesi %1, bu takımın yöneticisi olmayı talep etti. Bu gerçekleşebilir çünkü takımdan ayrıldınız ya da takımla uzun süredir irtibat kurmuyorsunuz."
 
-#: ../user/team_change_founder_form.php:55
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "isteği reddet"
 
-#: ../user/team_change_founder_form.php:58
+#: html/user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"%1 tarihine kadar talebi reddetmezseniz, %2 takımın yöneticisi olma "
-"seçeneğine sahip olacak.<br /><br />\n"
-"                  Talebi kabul etmek için, aşağıdaki formu kullanarak %3 "
-"takımına kurucu olarak atayın."
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "%1 tarihine kadar talebi reddetmezseniz, %2 takımın yöneticisi olma seçeneğine sahip olacak.<br /><br />\n                  Talebi kabul etmek için, aşağıdaki formu kullanarak %3 takımına kurucu olarak atayın."
 
-#: ../user/team_change_founder_form.php:66
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "Beklemede olan değişim isteği bulunmuyor."
 
-#: ../user/team_change_founder_form.php:69
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Başka bir kullanıcıyı bu takımın kurucusu yapmak için, üye isminin yanındaki "
-"kutucuğu işaretleyin ve aşağıdaki <strong>Kurucuyu değiştir</strong>e "
-"tıklayın."
+"member name and click %1Change founder%2 below."
+msgstr "Bu takımın kuruculuğunu başka bir üyeye atamak için üye adının yanındaki kutuyu işaretleyin ve aşağıdaki %1kurucuyu değiştir%2'i tıklayın."
 
-#: ../user/team_change_founder_form.php:76
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr "Yeni kurucu olsun"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr "Kurucuyu değiştir"
 
-#: ../user/team_change_founder_form.php:108
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
 msgstr "Takımın aktarılacağı hiçbir kullanıcı yok."
 
-#: ../user/team_create_action.php:29
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr "Boş olmayan bir takım adı seçmelisiniz."
 
-#: ../user/team_create_action.php:34
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr "%1 adında bir takım zaten mevcut - lütfen başka bir isim deneyin."
 
-#: ../user/team_create_action.php:54
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
 msgstr "Takım oluşturulamadı - lütfen tekrar deneyin."
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr "Takım oluştur"
 
-#: ../user/team_create_form.php:30
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"%1 üyesisiniz. Yeni bir tane oluşturmadan önce %2bu takımdan ayrılmalısınız%"
-"3."
+msgstr "%1 üyesisiniz. Yeni bir tane oluşturmadan önce %2bu takımdan ayrılmalısınız%3."
 
-#: ../user/team_delta.php:65
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "Kurucu ya da yönetici yok"
 
-#: ../user/team_delta.php:72
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "%1 için takım geçmişi"
 
-#: ../user/team_delta.php:75
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr "Ne zaman"
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr "Kullanıcı"
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr "Eylem"
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr "Eylem gerçekleştirildiğindeki toplam kredi"
 
-#: ../user/team_edit_action.php:53
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr "geçersiz ülke"
 
-#: ../user/team_edit_action.php:59
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "'%1' ismi başka bir takım tarafından kullanılıyor."
 
-#: ../user/team_edit_action.php:62
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "Bir takım adı belirtilmeli"
 
-#: ../user/team_edit_action.php:90
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "Takım güncelleştirilemedi - lütfen tekrar deneyin."
 
-#: ../user/team_edit_form.php:33
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "%1 takımını düzenle"
 
-#: ../user/team_edit_form.php:34
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "Takım bilgisini güncelle"
 
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 e-posta listesi"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "%1 takımının üyeleri"
 
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "%1 üye listesi"
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "Kimlik"
 
-#: ../user/team_email_list.php:78
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr "Salt metin olarak görüntüle"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "Mesaj panosu oluştur"
 
-#: ../user/team_forum.php:29
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "%1 için kullanmak üzere bir mesaj panosu oluşturabilirsiniz."
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "Yalnızca takım üyeleri gönderi gönderebilecek."
 
-#: ../user/team_forum.php:32
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "Tercihinize bağlı olarak, yalnızca üyeler gönderileri okuyabilecek."
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr "Siz ve Takım Yöneticileri moderasyon izinlerine sahip olacak."
 
-#: ../user/team_forum.php:40
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "%1 için bir mesaj panosu oluştur"
 
-#: ../user/team_forum.php:48
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "Takım zaten bir mesaj panosuna sahip"
 
-#: ../user/team_forum.php:59
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "Takım Mesaj Panosu"
 
-#: ../user/team_forum.php:71
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr "İki gönderi arasındaki en kısa süre (saniye olarak)"
 
-#: ../user/team_forum.php:74
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
-msgstr "İleti gönderebilmek için sahip olunması gereken en az kredi"
+msgstr "İleti gönderebilmek için sahip olunması gereken asgari kredi"
 
-#: ../user/team_forum.php:77
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
-msgstr "İleti gönderebilmek için sahip olunması gereken en az ortalama kredi"
+msgstr "İleti gönderebilmek için sahip olunması gereken asgari ortalama kredi"
 
-#: ../user/team_forum.php:80
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr "Gönder"
 
-#: ../user/team_forum.php:89
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr "Takımınızın mesaj panosunu kaldırmak için tıklayın."
 
-#: ../user/team_forum.php:97
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr "Mesaj panosunu kaldırmak istediğinize emin misiniz?"
 
-#: ../user/team_forum.php:98
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
-msgstr ""
-"Takımınızın mesaj panosunu kaldırmak istediğinize emin misiniz? Tüm "
-"başlıklar ve gönderiler kalıcı olarak silinecek (Bununla birlikte, daha "
-"sonra yeni bir mesaj panosu oluşturabilirsiniz)."
+msgstr "Takımınızın mesaj panosunu kaldırmak istediğinize emin misiniz? Tüm başlıklar ve gönderiler kalıcı olarak silinecek (Bununla birlikte, daha sonra yeni bir mesaj panosu oluşturabilirsiniz)."
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr "Evet - mesaj panosunu kaldır"
 
-#: ../user/team_forum.php:121
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr "Mesaj panosu kaldırıldı"
 
-#: ../user/team_forum.php:124
+#: html/user/team_forum.php:132
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Takımınızın mesaj panosu kaldırıldı. Şimdi yeni bir tane %"
-"1oluşturabilirsiniz%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "Takımınızın mesaj panosu kaldırıldı. Şimdi yeni bir tane %1oluşturabilirsiniz%2."
 
-#: ../user/team_forum.php:143
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr "Takım mesaj panosu güncellendi"
 
-#: ../user/team_forum.php:144
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr "Güncelleme başarılı"
 
-#: ../user/team_forum.php:147
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr "Güncelleme başarısız"
 
-#: ../user/team_forum.php:154
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr "Takımın forumu yok"
 
-#: ../user/team_founder_transfer_action.php:36
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "Bu sayfaya erişmek için takımın üyesi olmalısınız."
 
-#: ../user/team_founder_transfer_action.php:90
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr "%1 kurucusu olma talebi gönderiliyor"
 
-#: ../user/team_founder_transfer_action.php:98
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Mevcut kurucu, talebiniz hakkında e-posta ve özel mesaj yollarıyla "
-"uyarıldı.<br /><br />\n"
-"                       Kurucu 60 gün içerisinde yanıt vermezse, yeni kurucu "
-"olabileceksiniz."
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "Mevcut kurucu, talebiniz hakkında e-posta ve özel mesaj yollarıyla uyarıldı.<br /><br />\n                       Kurucu 60 gün içerisinde yanıt vermezse, yeni kurucu olabileceksiniz."
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
 msgstr "Kurucu olma talebi şu anda kabul edilmiyor"
 
-#: ../user/team_founder_transfer_action.php:109
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr "%1 takımının kuruculuğunu üstlendiniz"
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
-msgstr ""
-"Tebrikler, %1 takımının kurucusu oldunuz. Takım Yönetimi seçeneklerine "
-"ulaşmak için %2Hesap Sayfanız%3a gidin. <br>"
+msgstr "Tebrikler, %1 takımının kurucusu oldunuz. Takım Yönetimi seçeneklerine ulaşmak için %2Hesap Sayfanız%3a gidin. <br>"
 
-#: ../user/team_founder_transfer_action.php:120
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr "Kurucu değişimi talebini reddet"
 
-#: ../user/team_founder_transfer_action.php:127
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr "%1 tarafından gönderilen kurucu olma talebi reddedildi"
 
-#: ../user/team_founder_transfer_action.php:130
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr "Kurucu olma talebi bulunmuyor."
 
-#: ../user/team_founder_transfer_action.php:134
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr "bilinmeyen eylem %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "Takım sayfasına dön"
 
-#: ../user/team_founder_transfer_form.php:28
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "Bu sayfaya erişmek için bir takımın üyesi olmalısınız."
 
-#: ../user/team_founder_transfer_form.php:31
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "%1 kurucusu olma talebi gönder"
 
-#: ../user/team_founder_transfer_form.php:38
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "%1 takımının kurucusu oldunuz."
 
-#: ../user/team_founder_transfer_form.php:44
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "%2 tarihinde %1 için kurucu olmayı talep ettiniz."
 
-#: ../user/team_founder_transfer_form.php:47
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
-msgstr ""
-"Talebinizden bu yana 60 gün geçti ve kurucu yanıt vermedi. Buraya tıklayarak "
-"kuruculuğu üstlenebilirsiniz:"
+msgstr "Talebinizden bu yana 60 gün geçti ve kurucu yanıt vermedi. Buraya tıklayarak kuruculuğu üstlenebilirsiniz:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "Kuruculuğu üstlen"
 
-#: ../user/team_founder_transfer_form.php:54
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
-msgstr ""
-"Kurucu, talebiniz hakkında uyarıldı. Eğer %1 tarihine kadar yanıt vermezse, "
-"kurucu olmak için seçeneğiniz olacak."
+msgstr "Kurucu, talebiniz hakkında uyarıldı. Eğer %1 tarihine kadar yanıt vermezse, kurucu olmak için seçeneğiniz olacak."
 
-#: ../user/team_founder_transfer_form.php:60
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"Eğer takım kurucusu aktif değilse ve kuruculuğu üstlenmek istiyorsanız, "
-"aşağıdaki butona tıklayın. Mevcut kurucuya isteğinizle ilgili detaylı bir "
-"e-posta gönderilecek ve kuruculuğu size devretme ya da talebi reddetme "
-"seçenekleri olacak. Kurucu 60 gün içerisinde bir yanıt vermezse, kurucu "
-"olabileceksiniz.<br /><br />\n"
-"                       Kurucu olma talebi göndermek istediğinize emin "
-"misiniz?"
-
-#: ../user/team_founder_transfer_form.php:65
+msgstr "Eğer takım kurucusu aktif değilse ve kuruculuğu üstlenmek istiyorsanız, aşağıdaki butona tıklayın. Mevcut kurucuya isteğinizle ilgili detaylı bir e-posta gönderilecek ve kuruculuğu size devretme ya da talebi reddetme seçenekleri olacak. Kurucu 60 gün içerisinde bir yanıt vermezse, kurucu olabileceksiniz.<br /><br />\n                       Kurucu olma talebi göndermek istediğinize emin misiniz?"
+
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "Kurucu değişimi talebi"
 
-#: ../user/team_founder_transfer_form.php:74
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "Kurucu değişimi, %1 tarafından %2 tarihinde zaten talep edildi."
 
-#: ../user/team_founder_transfer_form.php:77
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
-msgstr ""
-"Son 90 gün içerisinde bir kurucu değişimi talebi oldu, bu nedenle yeni "
-"talepler kabul edilmiyor. Lütfen daha sonra tekrar deneyin."
+msgstr "Son 90 gün içerisinde bir kurucu değişimi talebi oldu, bu nedenle yeni talepler kabul edilmiyor. Lütfen daha sonra tekrar deneyin."
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr "%1 takımı yeni üye kabul etmiyor."
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr "Zaten üye"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr "Zaten %1 takımının üyesisiniz."
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Takıma katılamadınız - lütfen daha sonra tekrar deneyin."
-
-#: ../user/team_join_action.php:40
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "Üyelik %1"
 
-#: ../user/team_join_action.php:41
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "%1 takımına katıldınız."
 
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "%1 takımına katıl"
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "Takıma katılamadınız - lütfen daha sonra tekrar deneyin."
 
-#: ../user/team_join_form.php:33
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr "Lütfen dikkat:"
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
 msgstr "Bir takıma katıldığınızda, kurucusu e-posta adresinizi görebilir."
 
-#: ../user/team_join_form.php:36
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "Bir takıma katılmak, hesabınızdaki kredi miktarını etkilemez."
 
-#: ../user/team_join_form.php:43
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr "Takıma katıl"
 
-#: ../user/team_lookup.php:84
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr "Arama Sonuçları"
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr "'%1' için arama sonuçları"
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
 msgstr "Bu takımların üyeleri, istatistikleri ve bilgilerini görebilirsiniz."
 
-#: ../user/team_lookup.php:98
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Aramanız sonucunda 100'den fazla takım bulundu. İlk 100 takım gösteriliyor."
+msgstr "Aramanız sonucunda 100'den fazla takım bulundu. İlk 100 takım gösteriliyor."
 
-#: ../user/team_lookup.php:104
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Sonuçların sonu. %1 Eğer istediğiniz gibi bir takım bulamadıysanız, kendiniz "
-"%2bir takım oluşturabilirsiniz%3."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "Sonuçların sonu. %1 Eğer istediğiniz gibi bir takım bulamadıysanız, kendiniz %2bir takım oluşturabilirsiniz%3."
 
-#: ../user/team_manage.php:26
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "%1 için takım yönetimi"
 
-#: ../user/team_manage.php:29
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr "Takım bilgilerini düzenle"
 
-#: ../user/team_manage.php:30
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
-msgstr "Takım adı, URL'si, tanıtımı, tipi ya da ülkesini değiştirin."
+msgstr "Takım adı, URL'si, açıklaması, tipi ya da ülkesini değiştirin."
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr "Üye listesi:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr "salt metin"
 
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Takım üyelerinin isimlerini ve e-posta adreslerini görün."
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "Üye bilgilerini görüntüle"
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:40
 msgid "View change history:"
 msgstr "Değişiklik tarihçesini gözden geçir:"
 
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
 msgstr "Üyelerin takıma ne zaman katıldığını ya da ayrıldığını görün."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr "Kurucu değişimi talebine yanıt verin."
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-"Eğer %1 tarihine kadar yanıt vermezseniz, %2 bu takımın kuruculuğunu "
-"üstlenebilir."
+msgstr "Eğer %1 tarihine kadar yanıt vermezseniz, %2 bu takımın kuruculuğunu üstlenebilir."
 
-#: ../user/team_manage.php:55
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr "Aktif olmayan ya da istemediğiniz üyeleri takımdan çıkarın."
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr "Takım kuruculuğunu başka bir üyeye devredin."
 
-#: ../user/team_manage.php:58
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr "Takım Yöneticileri ekle/kaldır"
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
 msgstr "Seçtiğiniz üyelere Takım Yöneticisi yetkileri verin."
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr "Takımı kaldır"
 
-#: ../user/team_manage.php:62
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr "Yalnızca takımın üyesi yoksa gerçekleştirilebilir."
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr "Takım mesaj panosu oluşturun ya da yönetin."
 
-#: ../user/team_manage.php:71
+#: html/user/team_manage.php:75
 msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Mevcut tüm BOINC projelerinde bu takımın bulunmasını istiyorsanız (şu anda "
-"ve gelecekte), %1BOINC genişletilmiş-takımı%2 haline getirebilirsiniz."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "Mevcut tüm BOINC projelerinde bu takımın bulunmasını istiyorsanız (şu anda ve gelecekte), %1BOINC genişletilmiş-takımı%2 haline getirebilirsiniz."
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
-msgstr ""
-"Takım yöneticilerini, Google'daki %1boinc-takım-kurucuları%2 grubuna "
-"katılmaya teşvik ediyoruz."
+msgstr "Takım yöneticilerini, Google'daki %1boinc-takım-kurucuları%2 grubuna katılmaya teşvik ediyoruz."
 
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"BOINC takım yöneticileri için diğer kaynaklar, üçüncü parti bir sitededir: %"
-"1www.boincteams.com%2."
-
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr "Boş olmayan bir takım kaldırılamaz."
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr "%1 takımı kaldırıldı"
 
-#: ../user/team_members.php:36
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr "Limite ulaşıldı:  Yalnızca ilk 1000 üye görüntülenebilir."
 
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "%1 takımının üyeleri"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 katılımcıları %2takımlar%3 oluşturabilir."
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "Aynı anda yalnızca bir takımın üyesi olabilirsiniz. Bir takıma istediğiniz zaman katılıp ayrılabilirsiniz."
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "Her takım şunları yapabilen bir %1kurucuya%2 sahiptir:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "Takımın ismini ve açıklamasını düzenleme"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "Takım Yöneticileri ekleme ya da çıkarma"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "Takımdan bir üyeyi çıkarma"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "Üyesi yoksa takımı kaldırma."
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "Bir takıma katılmak için, takımın sayfasını ziyaret edin ve %1Bu takıma katıl%2 bağlantısına tıklayın."
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "Bir takım bul"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "Tüm takımlar"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 takımları"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "Yeni bir takım oluştur"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "Size göre bir takım bulamadıysanız, %1bir takım oluşturabilirsiniz%2."
 
-#: ../user/team_quit_action.php:32
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "Takımdan ayrılamıyorsunuz."
 
-#: ../user/team_quit_action.php:33
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "Takım mevcut değil ya da takıma ait değilsiniz."
 
-#: ../user/team_quit_form.php:31
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "%1 takımından ayrıl"
 
-#: ../user/team_quit_form.php:32
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Takımdan ayrılmadan önce lütfen şunlara dikkat edin:</strong>\n"
-"         <ul>\n"
-"         <li>Takımdan ayrılırsanız, daha sonra yeniden katılabilirsiniz ya "
-"da istediğiniz başka bir takıma katılabilirsiniz\n"
-"         <li>Bir takımdan ayrılmak, kişisel kredi miktarlarınızı herhangi "
-"bir şekilde etkilemez.\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>Takımdan ayrılmadan önce lütfen şunlara dikkat edin:</strong>\n         <ul>\n         <li>Takımdan ayrılırsanız, daha sonra yeniden katılabilirsiniz ya da istediğiniz başka bir takıma katılabilirsiniz\n         <li>Bir takımdan ayrılmak, kişisel kredi miktarlarınızı herhangi bir şekilde etkilemez.\n         </ul>"
 
-#: ../user/team_quit_form.php:40
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "Takımdan ayrıl"
 
-#: ../user/team_remove_inactive_action.php:31
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "%1 takımından üyeler çıkartılıyor"
 
-#: ../user/team_remove_inactive_action.php:39
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1, %2 takımının bir üyesi değil"
 
-#: ../user/team_remove_inactive_action.php:42
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 çıkartıldı"
 
-#: ../user/team_remove_inactive_form.php:32
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "%1 takımından üyeleri çıkart"
 
-#: ../user/team_remove_inactive_form.php:39
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr "Çıkartılsın mı?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr "İsim (NO)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr "Çıkartılabilecek üye mevcut değil."
 
-#: ../user/team_remove_inactive_form.php:68
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr "Üyeleri çıkart"
 
-#: ../user/team_search.php:68
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr "Takım adı"
 
-#: ../user/team_search.php:92
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "Doğrulanmış?"
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr "Takım arama sonuçları"
 
-#: ../user/team_search.php:94
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"Arama kriterlerinize uygun takım bulunamadı. Lütfen arama kriterlerinizi "
-"değiştirin."
+msgstr "Arama kriterlerinize uygun takım bulunamadı. Lütfen arama kriterlerinizi değiştirin."
 
-#: ../user/team_search.php:96
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr "Ya da %1yeni bir takım oluşturabilirsiniz%2."
 
-#: ../user/team_search.php:100
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"Aşağıdaki takımlar bir ya da daha fazla arama kriterinize uyuyor.\n"
-"            Bir takıma katılmak için, ismine tıklayın ve takım sayfasına "
-"gidin,\n"
-"               ardından %1Bu takıma katıl%2a tıklayın."
+msgstr "Aşağıdaki takımlar bir ya da daha fazla arama kriterinize uyuyor.\n            Bir takıma katılmak için, ismine tıklayın ve takım sayfasına gidin,\n               ardından %1Bu takıma katıl%2a tıklayın."
 
-#: ../user/team_search.php:107
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr "Aramanızı değiştirin"
 
-#: ../user/team_search.php:181
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
-msgstr ""
-"Sizinle benzer ilgilere sahip olan ya da aynı ülke, şirket ya da okuldan "
-"kişilerin bulunduğu takımlara katılabilirsiniz."
+msgstr "Sizinle benzer ilgilere sahip olan ya da aynı ülke, şirket ya da okuldan kişilerin bulunduğu takımlara katılabilirsiniz."
 
-#: ../user/team_search.php:183
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
 msgstr "Bu formu kendiniz için doğru olan takımları bulmak için kullanın."
 
-#: ../user/team_search.php:188
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "Şu anda bir takıma katılma konusuyla %1ilgilenmiyorum%2."
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "Limite ulaşıldı - Üzgünüz, yalnızca ilk %1 öğe"
 
-#: ../user/top_hosts.php:82
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "En iyi sunucular"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr "En iyi %1 takımlar"
 
-#: ../user/top_teams.php:108
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr "%1 takımları yok"
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr "Katılma tarihi"
 
-#: ../user/uotd.php:29
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr "\"Günün kullanıcısı\" seçilmedi."
 
-#: ../user/uotd.php:33
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr "%1 için Günün Kullanıcısı: %2"
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr "Süzgeçler"
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr "Bununla başlayan kullancı adları:"
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr "Herhangi"
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr "Profilli olanlar?"
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr "Farketmez"
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr "Bir takımda yer alanlar?"
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr "Sıralama"
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr "Son giriş tarihi, azalarak"
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr "Ortalama kredi, azalarak"
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr "Toplam kredi, azalarak"
 
-#: ../user/user_search.php:100
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr "Arama değeri en az 3 karakter olmalı"
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr "Kullanıcı arama sonuçları"
 
-#: ../user/user_search.php:140
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr "Üyelik"
 
-#: ../user/user_search.php:148
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr "Aradığınız kriterlere uygun kullanıcı bulunamadı."
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr "Kullanıcı bulunamadı!"
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr "Hesap Bilgisi<br/>Kullanici: %1<br/>Zaman:"
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr "Takim:"
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr "Takim Topl.Kredi:"
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr "Takim Ort.Kredi:"
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr "Takim: Yok"
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr "BOINC e-posta adresini doğrula"
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
-msgstr ""
-"%1 hesabınızın bağlı olduğu e-posta adresini doğrulamak için bu linke "
-"tıklayın:"
+msgstr "%1 hesabınızın bağlı olduğu e-posta adresini doğrulamak için bu linke tıklayın:"
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr "Doğrulama e-postası gönder"
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
-msgstr ""
-"%1 adresine bir e-posta gönderildi. E-posta adresinizi doğrulamak için, "
-"gelen mesajdaki linke tıklayın."
+msgstr "%1 adresine bir e-posta gönderildi. E-posta adresinizi doğrulamak için, gelen mesajdaki linke tıklayın."
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr "Böyle bir kullanıcı yok."
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
 msgstr "URL bilgisinde hata - e-posta adresi doğrulanamadı"
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
 msgstr "Veritabanı güncellemesi başarısız - lütfen daha sonra tekrar deneyin."
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
 msgstr "E-posta adresini doğrula"
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr "Hesabınızın bağlı olduğu e-posta adresi doğrulandı."
 
-#: ../user/view_profile.php:36
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "Bu kullanıcının profili yok"
 
-#: ../user/view_profile.php:54
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "Profil: %1"
 
-#: ../user/view_profile.php:63
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr "Hesap bilgisi"
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"Hesabınıza e-posta adresinizi ve şifrenizi ya da atanan 'hesap anahtarı'nı "
-"kullanarak\n"
-"    erişebilirsiniz.\n"
-"    Hesap Anahtarınız şudur:"
+msgstr "Hesabınıza e-posta adresinizi ve şifrenizi ya da atanan 'hesap anahtarı'nı kullanarak\n    erişebilirsiniz.\n    Hesap Anahtarınız şudur:"
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr "Bu anahtar şunlar için de kullanılabilir:"
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr "Web üzerinden hesabınıza girmek ve"
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"BOINC Manager kullanmadan hesabınıza bir bilgisayar eklemek için.\n"
-"       Bunu yapmak için, BOINC'i kurun,\n"
-"       BOINC veri klasöründe %1 adlı\n"
-"       bir dosya oluşturun ve içeriğini şöyle ayarlayın:"
+msgstr "BOINC Manager kullanmadan hesabınıza bir bilgisayar eklemek için.\n       Bunu yapmak için, BOINC'i kurun,\n       BOINC veri klasöründe %1 adlı\n       bir dosya oluşturun ve içeriğini şöyle ayarlayın:"
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr "Zayıf hesap anahtarı"
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"'Zayıf hesabınız anahtarınız' da hesabınıza bilgisayar eklemek için "
-"kullanılabilir.\n"
-"    Yukarıda tarif edildiği gibi yapılır. Ancak hesabınızda oturum açılamaz "
-"veya\n"
-"    herhangi bir şekilde değiştirmek için kullanılamaz.\n"
-"    Hesabınıza güvenilir olmayan veya güveliksiz bir bilgisayar eklemek "
-"istiyorsanız,\n"
-"    bunu zayıf hesap anahtarınızı kullanarak yapabilirsiniz.\n"
-"    Zayıf hesap anahtarınız şudur:"
-
-#: ../user/weak_auth.php:81
+msgstr "'Zayıf hesabınız anahtarınız' da hesabınıza bilgisayar eklemek için kullanılabilir.\n    Yukarıda tarif edildiği gibi yapılır. Ancak hesabınızda oturum açılamaz veya\n    herhangi bir şekilde değiştirmek için kullanılamaz.\n    Hesabınıza güvenilir olmayan veya güveliksiz bir bilgisayar eklemek istiyorsanız,\n    bunu zayıf hesap anahtarınızı kullanarak yapabilirsiniz.\n    Zayıf hesap anahtarınız şudur:"
+
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
-msgstr ""
-"Şifrenizi değiştirirseniz, zayıf hesap anahtarınız da değişir ve önceki "
-"zayıf hesap anahtarınız geçersiz hale gelir."
+msgstr "Şifrenizi değiştirirseniz, zayıf hesap anahtarınız da değişir ve önceki zayıf hesap anahtarınız geçersiz hale gelir."
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr "iş birimi bulunamadı"
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr "İş birimi %1"
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "uygulama"
+
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr "kabul edilen sonuç"
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr "alınan kredi"
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "Süren işler"
+
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "tamamlanma kuyruğunda beklemede"
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
-msgstr "en az yeter sayı"
+msgstr "asgari yeter sayı"
 
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr "başlangıçtaki kopya sayısı"
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
-msgstr "en fazla sonuç sayısı (hatalı/toplam/başarılı)"
+msgstr "azami sonuç sayısı (hatalı/toplam/başarılı)"
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr "hatalar"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr "doğrulama"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr "Beklemede"
 
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Ana sayfa"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Telif hakkı"
-
-#: ../project.sample/project.inc:48
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr "Oluşturulma"
 
-#: ../project.sample/project.inc:79
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
-msgstr "Kişisel geçmişiniz."
+msgstr "Kişisel geçmiş"
 
-#: ../project.sample/project.inc:83
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Bize kendinizi anlatın. Örneğin, nereden olduğunuzu, yaşınızı, mesleğinizi, "
-"hobilerinizi ya da kendiniz hakkındaki istediğiniz bir şeyi yazabilirsiniz."
+msgstr "Bize kendinizi anlatın. Örneğin, nereden olduğunuzu, yaşınızı, mesleğinizi, hobilerinizi ya da kendiniz hakkındaki istediğiniz bir şeyi yazabilirsiniz."
 
-#: ../project.sample/project.inc:87
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr "%1 hakkındaki fikirleriniz"
 
-#: ../project.sample/project.inc:91
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"Lütfen bize %1 hakkındaki düşüncelerinizi anlatın<ol>\n"
-"    <li>Neden %1 çalışıtırıyorsunuz?\n"
-"    <li>Proje hakkındaki gözlemleriniz neler\n"
-"    <li>Önerilerileriniz var mı?\n"
-"    </ol>"
+msgstr "Lütfen bize %1 hakkındaki düşüncelerinizi anlatın<ol>\n    <li>Neden %1 çalıştırıyorsunuz?\n    <li>Proje hakkındaki gözlemleriniz neler\n    <li>Önerileriniz var mı?\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr "Grafikler için renk düzeni"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "Grafikler için kullanılacak en yüksek CPU gücü yüzdesi%10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr "Yalnızca seçili uygulamaları çalıştır"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "Sadece belirli uygulamalar için işleri al. Belli uygulamalara odaklanmak veya dışlamak için yararlıdır."
+
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
-msgstr ""
-"Eğer seçili uygulamalar için iş mevcut değilse, diğer uygulamalardan işler "
-"kabul edilsin mi?"
+msgstr "Eğer seçili uygulamalar için iş mevcut değilse, diğer uygulamalardan işler kabul edilsin mi?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "Daha hızlı olan, grafik içermeyen uygulamalar varsa kullanılsın mı?"
+
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr "(tüm uygulamalar)"
 
-#~ msgid "Error:"
-#~ msgstr "Hata:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Hesap oluşturma devre dışı"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Üzgünüm, bu projede yeni hesapların yaratılması devredışı bırakıldı.\n"
-#~ "Lütfen daha sonra yeniden deneyin."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Şu anda yeni hesap oluşturma seçeneği mevcut değil. Lütfen daha sonra tekrar "
-#~ "deneyin."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "nvidia GPU"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Bu proje henüz bir e-posta mesajına sahip değil. Lütfen yöneticileri uyarın"
-
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Intel GPU kullanılsın %1 Sürüm 7.0 ve üzeri için. %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Bu ayarlar, eklediğiniz tüm BOINC projelerine uygulanacak.<br>\n"
-#~ "             Birden fazla proje eklediğiniz bilgisayarlarda, en son "
-#~ "güncellenen tercihler kullanılacak."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Bu haber öğesini bir Bildirim olarak dışa aktar"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is "
-#~ "usually <b>C:\\Documents and Settings\\All Users\\Application Data"
-#~ "\\BOINC</b> or <b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Bilgisayarınızdaki BOINC veri klasörüne gidin (bu Windows'ta genellikle "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> ya "
-#~ "da <b>C:\\Program Files\\BOINC</b> klasörüdür."
-
-#~ msgid "No such task"
-#~ msgstr "Eşleşen iş yok"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work "
-#~ "(max 10 days). %3"
-#~ msgstr ""
-#~ "Bilgisayar internete bu kadar sürede bir bağlanır %1 Sürekli bağlıysa 0 "
-#~ "yazın. %2 BOINC, bu süre kadar yeterli olacak iş indirmeyi deneyecek (en "
-#~ "fazla 10 gün). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Depolanacak ek iş miktarı"
-
-#~ msgid "Update failed: "
-#~ msgstr "Güncelleme başarısız:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Hesabınıza %1sınırlı erişimi%2 sağlar"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an "
-#~ "email address and password."
-#~ msgstr ""
-#~ "Bu formu kullanmayın. Yalnızca BOINC'i çalıştırın, Proje ekle'yi seçin ve "
-#~ "bir e-posta adresi ile parola girin."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Sabit gönderileri yeniden düzenleme"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Eğer bir konu başlığı bundan fazla sayıda gönderi içeriyorsa"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "yalnızca ilkini ve en sondakileri görüntüle"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Raporunuz kaydedildi. Çabanız için teşekkürler."
-
-#~ msgid "Search type"
-#~ msgstr "Arama tipi"
-
-#~ msgid "User names starting with"
-#~ msgstr "Bununla başlayan kullanıcı adları:"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any "
-#~ "way."
-#~ msgstr ""
-#~ "'Zayıf hesap anahtarınız',  bir bilgisayarı hesabınıza bağlamanızı "
-#~ "sağlar, ancak, söz konusu bilgisayarlardan hesabınıza giriş yapılamaz ve "
-#~ "hesabınız değiştirilemez."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Bu mekanizma, sunucu yazılımlarını 7 Aralık 2007 ya da daha sonraki "
-#~ "tarihli sürüme yükseltmiş projelerde çalışır."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Bu proje için zayıf hesap anahtarınız:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Bir bilgisayarda zayıf hesap anahtarınızı kullanmak için, bu proje için "
-#~ "'hesap dosyası'nı bulun ya da oluşturun. Söz konusu dosya, "
-#~ "<b>account_PROJE_URL'si.xml</b> biçiminde bir isme sahiptir. %1 için "
-#~ "hesap dosyasının ismi <b>%2</b> biçimindedir."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Mevcut değilse bu dosyayı oluşturun. İçeriğini şu şekilde yapın:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account "
-#~ "key becomes invalid."
-#~ msgstr ""
-#~ "Zayıf hesap anahtarınız, parolanıza bağlı bir işlevdir. Parolanızı "
-#~ "değiştirirseniz, zayıf hesap anahtarınız da değişir ve önceki zayıf hesap "
-#~ "anahtarınız geçersiz hale gelir."
-
-#~ msgid "Account key"
-#~ msgstr "Hesap anahtarı"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Hesabınıza tam erişimi sağlar"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Sırala"
-
-#~ msgid "- private message"
-#~ msgstr "- özel mesaj"
-
-#~ msgid "Private message from"
-#~ msgstr "Bu kişiden özel mesaj:"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "E-posta adresi doğrulaması bekleniyor"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "%1 olarak giriş yapıldı."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Başka bir hesapla giriş yap."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "%1 nolu bir konu başlığı mevcut değil. Lütfen bağlantıyı kontrol edip "
-#~ "tekrar deneyin."
-
-#~ msgid "Request not found"
-#~ msgstr "İstek bulunamadı"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 sizi arkadaş olarak ekledi."
-
-#~ msgid "Account data for %1"
-#~ msgstr "%1 için hesap bilgisi"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "mesaj panosu oluşturulamadı"
-
-#~ msgid "message board not found"
-#~ msgstr "mesaj panosu bulunamadı"
-
-#~ msgid "no such forum"
-#~ msgstr "eşleşen forum yok"
-
-#~ msgid "unknown command %1"
-#~ msgstr "bilinmeyen komut %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "HATA: %1 mevcut değil!  Giriş kutusu oluşturulamıyor.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Projenin sitesini saldırılardan korumak için, resimde görülen iki "
-#~ "kelimeyi girmenizi istemek durumundayız:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC istemcisi sürümü"
-
-#~ msgid "Client detached"
-#~ msgstr "İstemci projeden ayrıldı"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "CPU başına günlük iş birimi kotası"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/gün"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "Anonim platform - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "Anonim platform - NVIDIA GPU"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "Anonim platform - ATI GPU"
-
-#~ msgid "Task ID"
-#~ msgstr "İş NO"
-
-#~ msgid "Granted credit"
-#~ msgstr "Alınan kredi"
-
-#~ msgid "Click to"
-#~ msgstr "Tıkla"
-
-#~ msgid "(no restriction if equal)"
-#~ msgstr "(birbirine eşitse, sınırlama yok)"
-
-#~ msgid "percent of CPU time"
-#~ msgstr "% kadarı kullanılsın"
-
-#~ msgid "Leave at least"
-#~ msgstr "En az"
-
-#~ msgid "% of page file (swap space)"
-#~ msgstr "% kadar sayfa dosyası (swap alanı) kullanılsın"
-
-#~ msgid "Use ATI GPU if present %1(enforced by 6.10+ clients)%2"
-#~ msgstr ""
-#~ "Mevcutsa ATI GPU kullanılsın %1(sürüm 6.10 ve üzeri istemciler için)%2"
-
-#~ msgid "KB/s"
-#~ msgstr "KB/sn"
-
-#~ msgid "GB disk space"
-#~ msgstr "GB disk alanı kullanılsın"
-
-#~ msgid "GB disk space free"
-#~ msgstr "GB disk alanı boş kalsın"
-
-#~ msgid "(no restriction)"
-#~ msgstr "(sınırlama yok)"
-
-#~ msgid "%1 GB disk space"
-#~ msgstr "%1 GB disk alanı kullanılsın"
-
-#~ msgid "%1 GB disk space free"
-#~ msgstr "%1 GB disk alanı boş kalsın"
-
-#~ msgid ""
-#~ "Resource share %1If you participate in multiple BOINC projects, this is "
-#~ "the proportion of your resources used by %2%3"
-#~ msgstr ""
-#~ "Kaynak paylaşımı %1Birden fazla BOINC projesine katıldıysanız, bu ayar, "
-#~ "%2 projesinin bilgisayarınızın kaynaklarını ne oranda kullanacağını "
-#~ "belirlemenizi sağlar%3"
-
-#~ msgid "Gbytes"
-#~ msgstr "Gigabayt kullanılsın"
-
-#~ msgid "Resource share"
-#~ msgstr "Kaynak paylaşımı"
-
-#~ msgid "stderr out"
-#~ msgstr "stderr çıktısı"
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "Sınırsız"
 
-#~ msgid "<p>"
-#~ msgstr "<p>"
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "Bu proje için en yüksek iş sayısı"
 
-#~ msgid "Last %1"
-#~ msgstr "Son %1"
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "Bu proje için en yüksek CPU sayısı"
 
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "En yüksek iş sayısı"
 
-#, fuzzy
-#~ msgid "preferences"
-#~ msgstr "&Tercihler..."
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "En yüksek CPU sayısı"
diff --git a/html/languages/translations/zh_CN.po b/html/languages/translations/zh_CN.po
index ae56820..6dbc8c0 100644
--- a/html/languages/translations/zh_CN.po
+++ b/html/languages/translations/zh_CN.po
@@ -1,27 +1,26 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
+# 
+# Translators:
+# Yin Gang <zenith.yin at gmail.com>, 2017
+# Xiaobo Zhou <zhouxiaobo.500 at gmail.com>, 2015
+# 秦赫阳 <qysnn1 at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-02-23 02:23+0000\n"
-"Last-Translator: Gang <zenith.yin at gmail.com>\n"
-"Language-Team: Team China <zenith.yin at gmail.com>\n"
-"Language: zh_CN\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-29 09:14+0000\n"
+"Last-Translator: Yin Gang <zenith.yin at gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/boinc/boinc/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Bookmarks: -1,-1,-1,-1,232,-1,-1,-1,-1,-1\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: D:\\Work\\boinc_src\\html\\user\n"
-"X-POOTLE-MTIME: 1393122217.0\n"
 
 msgid "LANG_NAME_NATIVE"
 msgstr "简体中文"
@@ -29,336 +28,573 @@ msgstr "简体中文"
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr "Simplified Chinese"
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/account.inc:38
+msgid "Invitation Code"
+msgstr "邀请码"
+
+#: html/inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "创建帐户时需要一个正确的邀请码。"
+
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
+msgid "Name"
+msgstr "用户名"
+
+#: html/inc/account.inc:44 html/user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "你在我们网站上的标识,可以使用你的真实姓名或是昵称。"
+
+#: html/inc/account.inc:48
+msgid "Email Address"
+msgstr "电子邮件地址"
+
+#: html/inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "必须是有效的电子邮件地址,形式如 '用户名@域名'。"
+
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
+msgid "Password"
+msgstr "用户口令"
+
+#: html/inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "必须至少包含 %1 个字符"
+
+#: html/inc/account.inc:62
+msgid "Confirm password"
+msgstr "确认用户口令"
+
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
+msgid "Country"
+msgstr "国家或地区"
+
+#: html/inc/account.inc:66 html/user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "选择你所希望代表的国家或地区。"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "邮编"
+
+#: html/inc/account.inc:73 html/user/account_finish.php:51
+msgid "Optional"
+msgstr "可选的"
+
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
+msgid "Create account"
+msgstr "创建帐户"
+
+#: html/inc/account.inc:104
+msgid "Email address:"
+msgstr "电子邮件地址:"
+
+#: html/inc/account.inc:107
+msgid "forgot email address?"
+msgstr "忘记了电子邮箱地址?"
+
+#: html/inc/account.inc:110
+msgid "Password:"
+msgstr "用户口令:"
+
+#: html/inc/account.inc:110
+msgid "forgot password?"
+msgstr "忘记了口令?"
+
+#: html/inc/account.inc:113
+msgid "Stay logged in"
+msgstr "保持登录状态"
+
+#. kludge
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
+msgid "Log in"
+msgstr "登录"
+
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr "粗体:[b]文本[/b]  (alt+b)"
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr "斜体:[i]文本[/i] (alt+i)"
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "强调:[u]文本[/u]  (alt+u)"
+msgstr "下划线:[u]文本[/u]  (alt+u)"
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "删除线:[s]文本[/s]  (alt+k)"
+
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr "引用:[quote]文本[/quote]  (alt+q)"
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr "代码:[code]代码[/code]  (alt+c)"
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr "列表:[list]文本[/list] (alt+l)"
 
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "有序列表:[list=]文本[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
+msgstr "有序列表:[list=1]text[/list] (alt+o)"
 
-#: ../inc/bbcode_html.inc:32
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr "插入图片:[img]图片网址[/img]  (alt+p)"
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
 msgstr "插入网址:[url]网址[/url] or [url=网址]网址文本[/url]  (alt+w)"
 
-#: ../inc/bbcode_html.inc:42
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr "字体颜色"
 
-#: ../inc/bbcode_html.inc:43
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
 msgstr "字体颜色:[color=red]文本[/color]  窍门:你也可以用 #FF0000 来表示红色"
 
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr "缺省"
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr "深红"
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr "红"
 
-#: ../inc/bbcode_html.inc:47
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr "橙"
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr "棕"
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr "黄"
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr "绿"
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr "橄榄"
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr "蓝绿"
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr "蓝"
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr "深蓝"
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr "靛蓝"
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr "紫"
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr "字体大小"
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr "字体大小:[size=x-small]小号文本[/size]"
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr "小"
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr "正常"
 
-#: ../inc/bbcode_html.inc:62
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr "大"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr "闭合所有的 bbCode 标签"
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr "闭合标签"
 
-#: ../inc/forum.inc:37
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr "帐户"
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr "加入"
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr "关于 %1"
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr "帮助"
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr "项目"
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr "参与"
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr "执行任务"
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr "服务器状态"
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr "统计"
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr "计算程序"
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr "参与者"
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr "计算机"
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr "团队"
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr "GPU 型号"
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr "CPU 型号"
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr "计算"
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr "社区"
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr "留言板"
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr "创建或加入一个团队"
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr "用户档案"
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr "用户搜索"
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr "今日用户"
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr "计算证书"
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr "网站"
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr "网站搜索"
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr "语言"
+
+#. names for the above
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr "旧帖子显示在前面"
 
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr "新帖子显示在前面"
 
-#: ../inc/forum.inc:39
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr "评分最高的显示在前面"
 
-#: ../inc/forum.inc:41
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr "发帖时间最新的在前面"
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr "查看次数最多的在前面"
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr "回复数量最多的在前面"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:106
+msgid "Volunteer moderator"
+msgstr "志愿者负责人"
+
+#: html/inc/forum.inc:107
+msgid "Project administrator"
+msgstr "项目主管"
+
+#: html/inc/forum.inc:108
+msgid "Project developer"
+msgstr "项目开发者"
+
+#: html/inc/forum.inc:109
+msgid "Project tester"
+msgstr "项目测试人员"
+
+#: html/inc/forum.inc:110
+msgid "Volunteer developer"
+msgstr "志愿者开发人员"
+
+#: html/inc/forum.inc:111
+msgid "Volunteer tester"
+msgstr "志愿者测试人员"
+
+#: html/inc/forum.inc:112
+msgid "Project scientist"
+msgstr "项目科学家"
+
+#: html/inc/forum.inc:113
+msgid "Help desk expert"
+msgstr "帮助台专家"
+
+#. Search
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr "在论坛的所有帖子中搜索关键字"
 
-#: ../inc/forum.inc:125
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr "搜索论坛"
 
-#: ../inc/forum.inc:126
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr "高级搜索"
 
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr "私人消息"
 
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr "疑难解答"
 
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "留言板"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr "%1 留言板"
 
-#: ../inc/forum.inc:245 ../inc/result.inc:695
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr "前"
 
-#: ../inc/forum.inc:283 ../inc/result.inc:704
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr "后"
 
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258
+#: html/user/forum_forum.php:144 html/user/forum_reply.php:128
+#: html/user/forum_report_post.php:86
 msgid "Author"
 msgstr "作者"
 
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr "消息"
 
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "发送 消息"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
+msgstr "发送消息"
 
-#: ../inc/forum.inc:580
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr "发送私人消息给 %1"
 
-#: ../inc/forum.inc:581
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr "已加入:%1"
 
-#: ../inc/forum.inc:590
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr "贴子:%1"
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr "积分:%1"
 
-#: ../inc/forum.inc:597
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr "近期平均积分:%1"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr "你还没有阅读过该消息"
 
-#: ../inc/forum.inc:620
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr "未读"
 
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr "消息 %1"
 
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr "隐藏"
 
-#: ../inc/forum.inc:625
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
 msgstr "发表于:%1"
 
-#: ../inc/forum.inc:628
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr " - 回复"
 
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr "编辑"
 
-#: ../inc/forum.inc:631
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr "编辑该消息"
 
-#: ../inc/forum.inc:637
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr "最近的修改日期:%1"
 
-#: ../inc/forum.inc:640
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
 msgstr "该篇帖子未显示是因为其作者在您的忽略列表里。点击%1这里%2来查看"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr "举报违规帖子"
 
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr "举报违规帖子"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr "评分:%1"
 
-#: ../inc/forum.inc:672
+#: html/inc/forum.inc:696
 msgid "rate: "
 msgstr "评分:"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr "如果你喜欢该消息请点击"
 
-#: ../inc/forum.inc:675
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr "加分"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr "如果你不喜欢该消息请点击"
 
-#: ../inc/forum.inc:677
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr "减分"
 
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
+#. "Reply" is used as a verb
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr "回复"
 
-#: ../inc/forum.inc:685
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr "回复该消息"
 
-#: ../inc/forum.inc:687
+#. "Quote" is used as a verb
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr "引用"
 
-#: ../inc/forum.inc:687
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr "回复并引用该消息"
 
-#: ../inc/forum.inc:708
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr "被管理员隐藏"
 
-#: ../inc/forum.inc:729
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr "发表于:%1 作者:%2"
 
-#: ../inc/forum.inc:747
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr "你必须等到 %1 后才能回复帖子或给帖子评分"
 
-#: ../inc/forum.inc:758
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -370,2468 +606,2471 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or revoked.\n"
 "        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> 帖子内容健康,不包含猥亵的、仇恨的或者与性有关的内容。\n"
-"        <li> 禁止商业广告。\n"
-"        <li> 禁止链接到与性、赌博等内容有关的网站。\n"
-"        <li> 禁止烦扰、敌对其他用户的帖子,禁止破坏主题。\n"
-"        <li> 禁止有敌意或侮辱性的帖子。\n"
-"        <li> 禁止与种族、宗教、国籍、性别、阶层或性相关的辱骂性评论。\n"
-"        "
+msgstr "\n<ul>\n<li>帖子不能包含儿童不宜的内容:不能包含色情、 煽动仇恨、 色情或性暗示的内容。\n        <li>禁止商业广告。\n        <li>禁止涉及到色情、赌博,或种族歧视的网站的链接。\n        <li>禁止挑衅、攻击其他用户的帖子,禁止在一个主题中搞破坏。\n        <li>禁止有敌意、恐吓或侮辱性的帖子。\n        <li>禁止与种族、宗教、国籍、性别、阶层或性相关的辱骂性评论。\n        <li>违反规定者的发帖权限可能会被暂时或永久吊销。\n        "
 
-#: ../inc/forum.inc:780
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr "规则:"
 
-#: ../inc/forum.inc:781
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr "更多信息"
 
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr "取消隐藏"
 
-#: ../inc/forum.inc:1055
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr "取消隐藏帖子"
 
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr "隐藏"
 
-#: ../inc/forum.inc:1057
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr "隐藏帖子"
 
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr "移动"
 
-#: ../inc/forum.inc:1062
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr "移动帖子到其它主题"
 
-#: ../inc/forum.inc:1067
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr "封禁作者"
 
-#: ../inc/forum.inc:1074
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr "投票封禁作者"
 
-#: ../inc/forum.inc:1078
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr "投票不要封禁作者"
 
-#: ../inc/forum.inc:1083
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr "开始投票封禁作者"
 
-#: ../inc/forum.inc:1116
+#: html/inc/forum.inc:1152 html/inc/user.inc:325
+#: html/user/forum_thread.php:246 html/user/pm.php:100 html/user/pm.php:141
+msgid "Delete"
+msgstr "删除"
+
+#: html/inc/forum.inc:1152
+msgid "Delete this post"
+msgstr "删除这个帖子"
+
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
 msgstr "只有团队成员才能在团队的留言板中发帖"
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "你必须在已经获得了一定的积分后才能在 %1 发表一个新主题。这是为了防止对论坛系统的滥用。"
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
+msgstr "你必须在已经获得了一定的平均积分后才能在 %1 发表新主题。这是为了防止对论坛系统的滥用。"
 
-#: ../inc/forum.inc:1133
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "你暂时不能发表更多的新主题,请稍后再试,这是为了防止对论坛系统的滥用而采取的延时。"
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
+msgstr "你暂时不能发表新主题,请稍后再试。这是为了防止对论坛系统的滥用。"
 
-#: ../inc/forum.inc:1140
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
 msgstr "该主题已被锁定,只有论坛管理员能够在该主题下发帖。"
 
-#: ../inc/forum.inc:1145
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr "不能回复隐藏主题。"
 
-#: ../inc/forum.inc:1173
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr "主题"
 
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr "贴数"
 
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr "查看次数"
 
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr "最近发贴"
 
-#: ../inc/forum.inc:1235
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr "主题 %1 的新回复"
 
-#: ../inc/forum.inc:1240
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr "已订阅主题的新回复"
 
-#: ../inc/forum.inc:1241
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr "主题“%1”有新的回帖"
 
-#: ../inc/forum.inc:1251
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr "标记所有主题为已读"
 
-#: ../inc/forum.inc:1252
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
 msgstr "标记所有留言板块的所有主题为已读。"
 
-#: ../inc/host.inc:24
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr "主机不存在"
 
-#: ../inc/host.inc:26
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr "无法获取"
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr "家庭"
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr "工作"
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
-msgstr "学习"
+msgstr "学校"
 
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "手机"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr "更新"
 
-#: ../inc/host.inc:85
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr "计算机信息"
 
-#: ../inc/host.inc:89 ../inc/host.inc:94
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr "IP 地址"
 
-#: ../inc/host.inc:89
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr "(最近 %1 次相同)"
 
-#: ../inc/host.inc:91
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr "外部 IP 地址"
 
-#: ../inc/host.inc:94
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr "显示 IP 地址"
 
-#: ../inc/host.inc:96
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr "域名"
 
-#: ../inc/host.inc:98
+#: html/inc/host.inc:97
 msgid "Product name"
 msgstr "产品名称"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr "当地标准时间"
 
-#: ../inc/host.inc:102
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr "UTC 时间 %1 时"
 
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr "用户"
 
-#: ../inc/host.inc:108 ../inc/host.inc:355
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr "匿名"
 
-#: ../inc/host.inc:112 ../inc/result.inc:630
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr "创建时间"
 
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr "总积分"
 
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr "平均积分"
 
-#: ../inc/host.inc:116
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr "跨项目积分"
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr "CPU 类型"
 
-#: ../inc/host.inc:119
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr "数据器数量"
 
-#: ../inc/host.inc:121
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr "协处理器"
 
-#: ../inc/host.inc:123 ../inc/host.inc:687
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr "操作系统"
 
-#: ../inc/host.inc:126 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr "BOINC 版本"
 
-#: ../inc/host.inc:130
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr "内存"
 
-#: ../inc/host.inc:130 ../inc/host.inc:140
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr "%1 MB"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr "缓存"
 
-#: ../inc/host.inc:134
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr "%1 KB"
 
-#: ../inc/host.inc:140
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr "交换空间"
 
-#: ../inc/host.inc:143
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr "总磁盘空间"
 
-#: ../inc/host.inc:143 ../inc/host.inc:146
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr "%1 GB"
 
-#: ../inc/host.inc:146
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr "空闲磁盘空间"
 
-#: ../inc/host.inc:150
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr "浮点运算速度"
 
-#: ../inc/host.inc:150 ../inc/host.inc:153
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr "每秒 %1 百万次运算"
 
-#: ../inc/host.inc:153
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr "整数运算速度"
 
-#: ../inc/host.inc:157 ../inc/host.inc:159
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr "平均上传速度"
 
-#: ../inc/host.inc:157 ../inc/host.inc:164
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr "%1 KB/秒"
 
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr "未知"
 
-#: ../inc/host.inc:164 ../inc/host.inc:166
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr "平均下载速度"
 
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr "平均任务周转时间"
 
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr "%1 天"
 
-#: ../inc/host.inc:170
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr "计算程序"
 
-#: ../inc/host.inc:171
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr "查看"
 
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr "任务"
 
-#: ../inc/host.inc:185 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr "客户端连接服务端的次数"
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr "最近一次连接服务端的时间"
 
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "BOINC 客户端运行的时间比例"
+#: html/inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "BOINC运行的时间"
 
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "当 BOINC 在运行时,主机拥有互联网连接的时间比例"
+#: html/inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "BOINC在运行时,计算机有互联网连接的时间"
 
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "当 BOINC 在运行时,允许计算的时间比例"
+#: html/inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "BOINC在运行时,允许计算的时间"
+
+#: html/inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "BOINC在运行时,允许GPU计算的时间"
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr "平均的 CPU 运行效率"
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr "任务时长校正因子"
 
-#: ../inc/host.inc:198 ../inc/host.inc:674
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr "位置"
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr "删除当前计算机"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr "合并该计算机的冗余记录"
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr "合并"
 
-#: ../inc/host.inc:207 ../inc/host.inc:689
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr "最近一次通讯"
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr "计算机信息"
 
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr "名次"
 
-#: ../inc/host.inc:225 ../inc/host.inc:679
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr "平均积分"
 
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr "近期平均积分"
 
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr "CPU"
 
-#: ../inc/host.inc:237 ../inc/host.inc:685
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr "GPU"
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr "操作系统"
 
-#: ../inc/host.inc:315
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr "(%1 处理器)"
 
-#: ../inc/host.inc:335
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr "详细"
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr "跨项目的统计信息:"
 
-#: ../inc/host.inc:515
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr "主机 %1 的活跃期有重叠:"
 
-#: ../inc/host.inc:522
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr "主机 %1 的操作系统不兼容:"
 
-#: ../inc/host.inc:528
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr "主机 %1 的 CPU 类型不兼容:"
 
-#: ../inc/host.inc:595
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr "相同的主机"
 
-#: ../inc/host.inc:598
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr "无法将主机 %1 合并至 主机 %2 - 主机不兼容"
 
-#: ../inc/host.inc:601
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr "正在将主机 %1 合并至主机 %2"
 
-#: ../inc/host.inc:618
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr "无法更新新计算机的积分"
 
-#: ../inc/host.inc:622
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr "无法更新任务拷贝"
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr "无法撤销旧的计算机"
 
-#: ../inc/host.inc:629
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr "旧的计算机 %1 已撤销"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr "显示:"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr "所有计算机"
 
-#: ../inc/host.inc:652 ../inc/host.inc:655
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr "仅显示最近 30 天内活跃的计算机"
 
-#: ../inc/host.inc:666 ../inc/result.inc:637
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr "计算机 ID"
 
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "用户名"
+#: html/inc/host.inc:680
+msgid "Model"
+msgstr "型号"
 
-#: ../inc/host.inc:682
+#: html/inc/host.inc:695
 msgid "BOINC<br>version"
 msgstr "BOINC<br>版本"
 
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
 msgid "Merge computers by name"
 msgstr "通过名称合并计算机"
 
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "浏览器缺省"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "讨论"
 
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "评论"
-
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "新闻还可以通过 %sRSS%s 来获取"
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr "收件箱"
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr "写信"
 
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "发送私人消息"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
+msgstr "向团队发送消息"
+
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr "预览"
 
-#: ../inc/pm.inc:48 ../user/pm.php:131
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
+msgstr "标题"
+
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
+msgstr "发送私人消息"
+
+#: html/inc/pm.inc:97 html/user/pm.php:125
 msgid "no such message"
 msgstr "消息不存在"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "To"
 msgstr "收件人"
 
-#: ../inc/pm.inc:82
+#: html/inc/pm.inc:133
 msgid "User IDs or unique usernames, separated with commas"
 msgstr "用户ID或唯一的用户名,多个收件人之间用逗号分开"
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "标题"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "发送消息"
-
-#: ../inc/pm.inc:121
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr "给你发送了一条私人消息,标题是:"
 
-#: ../inc/pm.inc:127
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr "私人消息 %1 来自 %2,标题是:"
 
-#: ../inc/pm.inc:135
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr "无法创建消息"
 
-#: ../inc/pm.inc:166
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
 msgstr "你发送消息的间隔时间太短,请等待一段时间再发送更多的消息。"
 
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr "未读"
 
-#: ../inc/pm.inc:186
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
 msgstr "如需要电子邮件通知,请%1编辑社区参数设置%2。"
 
-#: ../inc/pm.inc:198
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr "私人消息"
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
+msgid "Usage limits"
+msgstr "使用率限制"
+
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
+msgid "Use at most"
+msgstr "最多使用"
+
+#: html/inc/prefs.inc:55
+#, no-php-format
 msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr "当计算机通过电池供电时暂停计算?%1只有便携计算机需要使用该设置%2"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "保留一些CPU核心以供其他应用程序使用。例如: 75%意味着在8核CPU上使用6个核心。"
 
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "在你使用计算机时暂停计算?"
+#: html/inc/prefs.inc:58
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% o的CPU"
 
-#: ../inc/prefs.inc:91
+#: html/inc/prefs.inc:63
+#, no-php-format
 msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr "当计算机在使用的时候暂停 GPU 计算?%16.6.21 之后的版本实现了该设置%2"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "每隔几秒钟就暂停一下然后恢复计算,以降低CPU温度并减少电能使用。比如:75%意味着每计算 3 秒就暂停 1 秒,然后如此重复。"
 
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "如果在最近的多少时间内有鼠标或键盘操作则认为计算机在使用中"
+#: html/inc/prefs.inc:66
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% 的处理器时间"
 
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "分钟"
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
+msgid "When to suspend"
+msgstr "以下情况暂停计算"
 
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr "如果在最近的多少时间内没有鼠标或键盘操作则暂停计算%1在某些计算上如果要进入低能耗模式必须设置%2"
+#: html/inc/prefs.inc:70
+msgid "Suspend when computer is on battery"
+msgstr "当计算机正在使用电池供电时暂停计算"
 
-#: ../inc/prefs.inc:114
+#: html/inc/prefs.inc:71
 msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr "如果非 BOINC 的 CPU 占用率高于指定值则暂停计算%10 表示不限制<br>6.10.30 之后的版本实现了该设置%2"
+"Check this to suspend computing on portables when running on battery power."
+msgstr "勾选这个选项以使得笔记本电脑在靠电池电源运行时暂停计算。"
 
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "计算时间段%1如果相同则表示不限制%2"
+#: html/inc/prefs.inc:76
+msgid "Suspend when computer is in use"
+msgstr "当计算机正在使用时暂停计算"
 
-#: ../inc/prefs.inc:130
+#: html/inc/prefs.inc:77
 msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr "暂停计算时将任务驻留在内存?%1选择是的话,暂停的内存将占用交换空间%2"
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "勾选这个选项以使得当您使用计算机时暂停计算和文件传输。"
 
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "计算任务的切换时间间隔%1推荐设置:60 分钟%2"
+#: html/inc/prefs.inc:82
+msgid "Suspend GPU computing when computer is in use"
+msgstr "当使用计算机时暂停 GPU 计算"
 
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "在多处理器计算机上,最多使用"
+#: html/inc/prefs.inc:83
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "勾选这个选项以使得当您使用计算机时暂停GPU计算。"
 
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "处理器"
+#: html/inc/prefs.inc:88
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "如果在最近的多少分钟内有鼠标或键盘操作则认为计算机在使用中"
 
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr "在多处理器计算机上,最多使用%16.1 之后的版本实现了该设置%2"
+#: html/inc/prefs.inc:89
+msgid "This determines when the computer is considered 'in use'."
+msgstr "这将确定在怎样的情况下计算机会被视为“正在使用”。"
 
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% 的处理器"
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
+msgid "minutes"
+msgstr "分钟"
 
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "最多使用%1可用于减少 CPU  的发热量%2"
+#: html/inc/prefs.inc:95
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "如果在最近的多少分钟内无鼠标或键盘操作则暂停计算"
 
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% 的处理器时间"
+#: html/inc/prefs.inc:96
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "这将使得一些计算机在不使用时进入低功耗模式。"
 
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "磁盘:最多使用"
+#: html/inc/prefs.inc:101
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "当非BOINC CPU使用率高于多少时暂停"
 
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
+#: html/inc/prefs.inc:102
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "当您的计算机正忙于运行其他程序时暂停计算。"
 
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "磁盘:至少保留%1小于 %2 的设定值将被忽略%3"
+#: html/inc/prefs.inc:107
+msgid "Compute only between"
+msgstr "仅在如下时间段内计算。"
 
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "%"
+#: html/inc/prefs.inc:108
+msgid "Compute only during a particular period each day."
+msgstr "仅在每天的特定时间段内计算。"
+
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "其它"
+
+#: html/inc/prefs.inc:113
+msgid "Store at least"
+msgstr "至少存储"
+
+#: html/inc/prefs.inc:114
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "存储至少足够使计算机计算如此长时间的任务。"
+
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
+msgid "days of work"
+msgstr "天的工作"
+
+#: html/inc/prefs.inc:119
+msgid "Store up to an additional"
+msgstr "额外存储"
+
+#: html/inc/prefs.inc:120
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "在最低限度之上额外存储一些任务。这将决定BOINC客户端在联系一个项目时要求多少新任务。"
 
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "计算任务最小的存盘时间间隔"
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
+msgstr "每隔多少分钟切换任务"
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:126
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "如果您同时运行几个项目,BOINC 将每隔这么长时间切换一次任务。"
+
+#: html/inc/prefs.inc:131
+msgid "Request tasks to checkpoint at most every"
+msgstr "要求任务每隔多少分钟储存一次进度"
+
+#: html/inc/prefs.inc:132
+msgid ""
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
+msgstr "这个选项决定向磁盘保存计算任务进度的频繁程度,以便于重启之后从保存点继续计算。"
+
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr "秒"
 
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "交换空间:最多使用"
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
+msgid "Use no more than"
+msgstr "最多使用"
 
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "内存:如果计算机在使用中,最多使用"
+#: html/inc/prefs.inc:143
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "限制BOINC使用的磁盘空间总量。"
 
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "内存:如果计算机未在使用,最多使用"
+#: html/inc/prefs.inc:145
+msgid "GB"
+msgstr "GB"
 
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "缓存足够的任务以保证至少能用来计算 %1(最多 10 天)。%2"
+#: html/inc/prefs.inc:148
+msgid "Leave at least"
+msgstr "至少保留"
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "天"
+#: html/inc/prefs.inc:149
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "限制BOINC的磁盘使用,在BOINC存储数据的卷上保留这个数量的空闲空间。"
 
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... 并且还可以额外地计算"
+#: html/inc/prefs.inc:151
+msgid "GB free"
+msgstr "GB可用空间"
 
-#: ../inc/prefs.inc:232
+#: html/inc/prefs.inc:155
 msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr "连接至互联网前要求用户确认?%1仅 Modem、ISDN 和 VPN 用户需要使用该设置%2"
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "限制BOINC在存储数据的卷上使用的磁盘空间的百分比。"
 
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr "传输完成时断开网络?%1仅 Modem、ISDN 和 VPN 用户需要使用该设置%2 "
+#: html/inc/prefs.inc:158
+#, no-php-format
+msgid "% of total"
+msgstr "%"
 
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "最大下载速率:"
+#: html/inc/prefs.inc:164
+msgid "When computer is in use, use at most"
+msgstr "当计算机在使用时,最多使用"
 
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "千字节/秒"
+#: html/inc/prefs.inc:165
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "当您使用计算机时,限制BOINC的内存使用量。"
 
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "最大上传速率:"
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
+#, no-php-format
+msgid "%"
+msgstr "%"
 
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "允许使用网络的时间段"
+#: html/inc/prefs.inc:171
+msgid "When computer is not in use, use at most"
+msgstr "当计算机空闲时,最多使用"
 
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "最多传输%16.10.46 之后的版本实现了该设置%2"
+#: html/inc/prefs.inc:172
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "当您不使用计算机时,限制BOINC的内存使用量。"
 
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "MB / 每"
+#: html/inc/prefs.inc:178
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "在暂停时将非GPU任务留在内存中"
 
-#: ../inc/prefs.inc:274
+#: html/inc/prefs.inc:179
 msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"跳过映像文件验证?%1仅在你的 ISP 会修改映像文件的情况下(比如 UMTS 就会这样)需要选中这个。%2跳过验证会影响 BOINC 的安全性。%3"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "如果选中此选项,暂停的任务将会留在内存中,恢复时不会有进度损失。如果未选中,暂停的任务将从内存中被清除,继续计算时从最后一个保存点开始。"
 
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"资源分享%1该设置决定你的计算机分配给本项目的资源比例。举例:你参加了两个项目,其资源分享率分别是 100 和 200,则第一个项目将得到 1/3 "
-"的计算资源,第二个项目将得到 2/3。%2"
+#: html/inc/prefs.inc:184
+msgid "Page/swap file: use at most"
+msgstr "虚拟内存:最多使用"
 
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "给每个 GPU 任务保留一个 CPU 内核?"
+#: html/inc/prefs.inc:185
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "限制 BOINC 使用的交换空间 (页面文件)大小。"
 
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "使用 CPU%16.10 之后的版本实现了该设置%2"
+#: html/inc/prefs.inc:195
+msgid "Limit download rate to"
+msgstr "限制下载速度为"
 
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "使用 ATI GPU%16.10 之后的版本实现了该设置%2"
+#: html/inc/prefs.inc:196
+msgid "Limit the download rate of file transfers."
+msgstr "限制文件传输的下载速率。"
 
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "使用 NVIDIA GPU%16.10 之后的版本实现了该设置%2"
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
+msgid "KB/second"
+msgstr "KB/秒"
 
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "使用 %17.2 及后续版本%2支持的 Intel GPU"
+#: html/inc/prefs.inc:201
+msgid "Limit upload rate to"
+msgstr "限制上传速率为"
 
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr "运行测试用途的计算程序?%1这可以帮助我们开发计算程序,但可能会导致你计算机上的计算任务运行失败%2"
+#: html/inc/prefs.inc:202
+msgid "Limit the upload rate of file transfers."
+msgstr "限制文件传输的上传速率。"
 
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr "电子邮件将从 %1 发送,请确保你的垃圾邮件过滤器不会过滤这个地址。"
+#: html/inc/prefs.inc:207
+msgid "Limit usage to"
+msgstr "限制使用量为"
 
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "是否允许 %1 和你所在的计算团队发送电子邮件给你?"
+#: html/inc/prefs.inc:208
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "例如: 限制BOINC在30天内最多传输2000 MB数据。"
 
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1 是否可以将你的计算机显示在它的网站上?"
+#: html/inc/prefs.inc:211
+msgid "MB every"
+msgstr "MB 每"
 
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "磁盘和内存使用"
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
+msgid "days"
+msgstr "天"
 
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "处理器使用"
+#: html/inc/prefs.inc:216
+msgid "Transfer files only between"
+msgstr "允许传输文件的时间段:"
 
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "网络使用"
+#: html/inc/prefs.inc:217
+msgid "Transfer files only during a particular period each day."
+msgstr "仅在每天的特定时间段内传输文件。"
 
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "这些参数设置对你参加的所有 BOINC 项目均有效。"
+#: html/inc/prefs.inc:222
+msgid "Skip data verification for image files"
+msgstr "跳过图片文件的数据校验"
 
-#: ../inc/prefs.inc:395
+#: html/inc/prefs.inc:223
 msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr "%1无法更新参数设置。%2下面标红的为超出范围的或类型错误的数值。"
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "仅当您的Internet提供商会修改图像文件的情况下才需要选中此选项。跳过验证会降低BOINC的安全性。"
 
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "错误的参数设置位置:%1"
+#: html/inc/prefs.inc:228
+msgid "Confirm before connecting to Internet"
+msgstr "连接到互联网之前确认"
 
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "错误的参数设置子集:%1"
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "仅当您使用调制解调器、ISDN或VPN连接的情况下才有用。"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "是"
+#: html/inc/prefs.inc:234
+msgid "Disconnect when done"
+msgstr "传输完成后断开连接"
 
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "否"
+#: html/inc/prefs.inc:242
+msgid "Disk"
+msgstr "磁盘"
 
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "不限制"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "增加"
+#: html/inc/prefs.inc:244
+msgid "Network"
+msgstr "网络"
 
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "移除"
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: html/inc/prefs.inc:247
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "这些参数设置对你参加的所有 BOINC 项目均有效。"
 
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "计算"
+#: html/inc/prefs.inc:250
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1无法更新参数设置。%2下面标红的为超出范围的或类型错误的数值。"
 
-#: ../inc/prefs.inc:823
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr "用于%1环境的参数设置"
 
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537
+#: html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr "编辑参数设置"
 
-#: ../inc/prefs.inc:839
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
+msgid "Remove"
+msgstr "移除"
+
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr "增加%1环境的参数设置"
 
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
+#: html/inc/prefs.inc:515
+msgid "These settings apply to all computers using this account except"
+msgstr "这些设置适用于所有使用此帐户的计算机,除非"
+
+#: html/inc/prefs.inc:517
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "计算机设置了本地BOINC管理器的首选项"
+
+#: html/inc/prefs.inc:519
+msgid "Android devices"
+msgstr "Android 设备"
+
+#: html/inc/prefs.inc:522
+msgid "(Switch view)"
 msgstr "(切换视图)"
 
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
 msgid "Combined preferences"
 msgstr "横排的参数设置"
 
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "项目特定的参数设置"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
 msgid "Primary (default) preferences"
 msgstr "默认的参数设置"
 
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "编辑 %1 的参数设置"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "这些参数设置对你参加的所有 BOINC 项目均有效。"
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "在参与到多个项目的计算机上,使用的是最近修改的参数设置。"
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "这些参数设置不适用于安卓设备。"
-
-#: ../inc/prefs.inc:892
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr "最近的修改日期:"
 
-#: ../inc/prefs.inc:944
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr "增加参数设置"
 
-#: ../inc/prefs.inc:948
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr "更新参数设置"
 
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "yes"
+msgstr "是"
+
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
+msgid "no"
+msgstr "否"
+
+#. TODO: make this a subclass of PREF
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr "默认的计算机位置"
 
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
+#: html/inc/prefs.inc:648
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "新的计算机将使用此位置作为计算和项目的首选项。"
+
+#: html/inc/prefs_project.inc:54
+msgid "Resource share"
+msgstr "资源分享"
+
+#: html/inc/prefs_project.inc:55
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "该设置决定你的计算机分配给本项目的资源比例。举例:你参加了两个项目,其资源分享率分别是 100 和 200,则第一个项目将得到 1/3 的计算资源,第二个项目将得到 2/3。"
+
+#: html/inc/prefs_project.inc:63
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "给每个 GPU 任务保留一个 CPU 内核?"
+
+#: html/inc/prefs_project.inc:72
+msgid "Use CPU"
+msgstr "使用CPU"
+
+#: html/inc/prefs_project.inc:81
+msgid "Use ATI GPU"
+msgstr "使用ATI GPU"
+
+#: html/inc/prefs_project.inc:90
+msgid "Use NVIDIA GPU"
+msgstr "使用NVIDIA GPU"
+
+#: html/inc/prefs_project.inc:99
+msgid "Use Intel GPU"
+msgstr "使用Intel GPU"
+
+#: html/inc/prefs_project.inc:109
+msgid "Run test applications?"
+msgstr "运行测试应用程序吗?"
+
+#: html/inc/prefs_project.inc:110
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "这有助于我们开发应用程序,但可能会导致任务在您的计算机上运行失败"
+
+#: html/inc/prefs_project.inc:117
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "电子邮件将从 %1 发送,请确保你的垃圾邮件过滤器不会过滤这个地址。"
+
+#: html/inc/prefs_project.inc:125
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "是否允许 %1 和你所在的计算团队发送电子邮件给你?"
+
+#: html/inc/prefs_project.inc:132
+msgid "Should %1 show your computers on its web site?"
+msgstr "%1 是否可以将你的计算机显示在它的网站上?"
+
+#: html/inc/prefs_project.inc:272
+msgid "(Switch View)"
+msgstr "(切换视图)"
+
+#: html/inc/prefs_project.inc:278
+msgid "Project specific settings"
+msgstr "项目特定的参数设置"
+
+#: html/inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "错误的参数设置位置:%1"
+
+#: html/inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "错误的参数设置子集:%1"
+
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
 msgid "and"
 msgstr "和"
 
-#: ../inc/profile.inc:86
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr "不限制"
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr "增加"
+
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
 msgstr "你的用户档案在经过审核后就可以被其他用户看到,这可能需要几天的时间。"
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
 msgstr "你的用户档案已被标识为不可接受,其他用户也将无法查看,请进行适当的修改。"
 
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr "数据库错误"
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
 msgstr "为了防止垃圾信息,平均积分低于 %1 的用户档案将只能被已登录的用户看到,由此带来的不便之处我们很抱歉。"
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr "用户已被禁言"
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr "没有和该用户 ID 对应的用户档案信息。"
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr "编辑你的用户档案"
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr "你对该用户档案的意见"
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr "推荐该档案的主人为今日用户:"
 
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr "我%1喜欢%2这个用户档案"
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr "向管理员举报有冒犯性的用户档案:"
 
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr "我%1不喜欢%2这个用户档案"
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr "匿名平台"
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr "NVIDIA GPU"
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr "ATI GPU"
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
 msgstr "Intel GPU"
 
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "数据库中不存在"
-
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr "等待中"
 
-#: ../inc/result.inc:114 ../user/forum_search.php:60
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr "所有"
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr "计算中"
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr "等待验证"
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr "验证尚无结论"
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr "有效结果"
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr "无效结果"
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr "错误"
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr "不活跃的"
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr "未发送的"
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr "已完成,等待验证"
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr "已完成,通过验证"
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr "已完成,标记为错误"
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr "已完成,不能验证"
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr "已完成,验证未完成"
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr "已完成,超出上报期限而无法验证"
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr "已完成"
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr "无法发送"
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr "被服务端取消"
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr "未在截止日期前开始 - 已取消"
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr "下载过程出错"
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr "计算过程出错"
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr "上传过程出错"
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "被用户中止"
+#: html/inc/result.inc:220
+msgid "Aborted"
+msgstr "已中止"
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr "上传失败"
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr "超时 - 无回应"
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr "不需要"
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr "验证错误"
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr "已丢弃"
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr "完成"
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr "成功"
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr "计算错误"
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr "冗余结果"
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr "无回应"
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr "新建任务"
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
 msgstr "下载中"
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr "处理中"
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr "计算错误"
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr "上传中"
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr "已完成"
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr "被用户中止"
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr "初始结果"
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr "不需要"
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr "任务单元出错 - 跳过检查"
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr "已检查,尚未取得一致"
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr "任务上报超出期限而无法验证"
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr "无法发送任务拷贝"
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr "太多错误(可能存在BUG)"
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr "太多任务拷贝(可能因为结果不确定)"
 
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr "太多总的任务拷贝"
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr "WU 已被取消"
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
+msgid "Canonical result is missing"
+msgstr "规范结果缺失"
+
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr "无法识别的错误:%1"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr "任务名称"
 
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr "点击查看详细"
 
-#: ../inc/result.inc:349
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr "显示 ID"
 
-#: ../inc/result.inc:354
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr "显示名称"
 
-#: ../inc/result.inc:357
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr "任务"
 
-#: ../inc/result.inc:360
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr "任务单元"
 
-#: ../inc/result.inc:369
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr "计算机"
 
-#: ../inc/result.inc:372 ../inc/result.inc:631
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr "发送时间"
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr "结果上报时间<br />或者上报期限"
 
-#: ../inc/result.inc:374
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr "解释"
 
-#: ../inc/result.inc:376 ../user/server_status.php:241
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr "状态"
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr "运行时间<br />(秒)"
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr "CPU 时间<br />(秒)"
 
-#: ../inc/result.inc:379 ../inc/result.inc:642
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr "积分"
 
-#: ../inc/result.inc:380 ../inc/result.inc:724
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr "计算程序"
 
-#: ../inc/result.inc:629
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr "任务单元"
 
-#: ../inc/result.inc:632
+#: html/inc/result.inc:696
+msgid "Report deadline"
+msgstr "上报期限"
+
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr "接收时间"
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr "服务端状态"
 
-#: ../inc/result.inc:634
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr "结果"
 
-#: ../inc/result.inc:635
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr "客户端状态"
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr "退出状态"
 
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "上报期限"
-
-#: ../inc/result.inc:639
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr "运行时间"
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr "CPU 时间"
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr "验证状态"
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:707
+msgid "Device peak FLOPS"
+msgstr "设备最高FLOPS(每秒浮点运算次数)"
+
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr "计算程序版本"
 
-#: ../inc/result.inc:656
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr "输出文件"
 
-#: ../inc/result.inc:659
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr "标准错误输出"
 
-#: ../inc/result.inc:706
+#: html/inc/result.inc:795
 msgid "State"
 msgstr "状态"
 
-#: ../inc/result.inc:747
+#: html/inc/result.inc:836
 msgid "Task name:"
 msgstr "任务名称:"
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr "搜索条件(可使用一个或多个)"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr "关键字"
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
 msgstr "寻找名称或描述中包含这些关键字的团队"
 
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "国家或地区"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr "团队类型"
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr "只显示活跃的团队"
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr "搜索"
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
 msgstr "请求已由你发起过,而且原创建人的回复期限已过。"
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr "完成创建人的转换"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr "请求已由你发起过"
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr "原创建人的回复期限是 %1"
 
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr "未加入团队"
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr "发起请求"
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr "延期处理中"
 
-#: ../inc/team.inc:87
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr "团队信息"
 
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
 msgstr "描述"
 
-#: ../inc/team.inc:97
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr "网站"
 
-#: ../inc/team.inc:120
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr "跨项目的统计网站"
 
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr "类型"
 
-#: ../inc/team.inc:127 ../user/team_manage.php:63
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr "留言板"
 
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr "主题"
 
-#: ../inc/team.inc:136
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr "加入该团队"
 
-#: ../inc/team.inc:137
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
 msgstr "如果你在项目参数中设置了允许接收电子邮件,加入团队后该团队的创建人将可以访问到你的电子邮件地址。"
 
-#: ../inc/team.inc:140
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr "不接受新成员加入"
 
-#: ../inc/team.inc:147
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr "创建人改变请求待处理"
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr "回复期限 %1"
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr "团队创建人改变"
 
-#: ../inc/team.inc:156 ../inc/team.inc:359
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr "成员"
 
-#: ../inc/team.inc:157 ../inc/team.inc:254
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr "创建人"
 
-#: ../inc/team.inc:169
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr "管理员"
 
-#: ../inc/team.inc:184
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr "昨天新加入的成员"
 
-#: ../inc/team.inc:185
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr "所有成员"
 
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr "查看"
 
-#: ../inc/team.inc:186
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr "活跃的成员"
 
-#: ../inc/team.inc:187
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr "有积分的成员"
 
-#: ../inc/team.inc:256
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr "管理员"
 
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr "前 %1"
 
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr "后面 %1"
 
-#: ../inc/team.inc:289
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr "没有这个团队。"
 
-#: ../inc/team.inc:302
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr "本操作需要创建人权限。"
 
-#: ../inc/team.inc:326
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr "本操作需要团队创建人的权限"
 
-#: ../inc/team.inc:422
+#: html/inc/team.inc:434
 msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
 msgstr "警告:这是一个 BOINC 自动创建的团队,你在此处做出的修改将很快被覆盖掉,请直接在 %1这里%2 进行编辑。"
 
-#: ../inc/team.inc:428
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
 msgstr "%1隐私事项%2:如果你要创建一个团队,则你的项目参数(资源分享率,图形参数设置等)将会对团队成员公开。"
 
-#: ../inc/team.inc:432
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr "团队名称,文字版本"
 
-#: ../inc/team.inc:433
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr "请不要使用 HTML 标记。"
 
-#: ../inc/team.inc:436
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr "团队名称,HTML 版本"
 
-#: ../inc/team.inc:438 ../inc/team.inc:448
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr "你可以使用 %1有限的 HTML 标记%2。"
 
-#: ../inc/team.inc:439
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr "如果你不了解 HTML,请保持本编辑框为空。"
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr "团队的网址(如果有的话):"
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:454
 msgid "without \"http://\""
 msgstr "不包括 \"http://\""
 
-#: ../inc/team.inc:443
+#: html/inc/team.inc:455
 msgid "This URL will be linked to from the team's page on this site."
 msgstr "本网站该团队的页面上将链接到这个网址。"
 
-#: ../inc/team.inc:446
+#: html/inc/team.inc:458
 msgid "Description of team"
 msgstr "团队描述"
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:474
 msgid "Accept new members?"
 msgstr "是否接受新的团队成员?"
 
-#: ../inc/uotd.inc:28
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr "公司"
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr "小学"
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr "中学"
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr "大专"
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr "大学或学院"
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr "政府机构"
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr "非营利组织"
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr "国家"
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr "本地的/区域性的"
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr "计算机类型"
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr "社会/政治/宗教"
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr "用户档案"
 
-#: ../inc/user.inc:119
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr "你已参与的项目"
 
-#: ../inc/user.inc:121
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr "%1 已参与的项目"
 
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "项目"
-
-#: ../inc/user.inc:125
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr "点击访问用户页面"
 
-#: ../inc/user.inc:125
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr "加入日期"
 
-#: ../inc/user.inc:148
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr "计算和积分情况"
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr "本帐户所属的计算机"
 
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr "查看"
 
-#: ../inc/user.inc:161
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr "跨项目标识符(CPID)"
 
-#: ../inc/user.inc:162
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr "跨项目的统计网站"
 
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "帐户"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr "团队"
 
-#: ../inc/user.inc:167
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr "跨项目"
 
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "计算证书"
-
-#: ../inc/user.inc:169
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
 msgstr "用手机查看你的统计信息"
 
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "未知的通知类型:%1"
-
-#: ../inc/user.inc:198
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr "帐户信息"
 
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr "电子邮件地址"
 
-#: ../inc/user.inc:203 ../inc/user.inc:322
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr "网址"
 
-#: ../inc/user.inc:206
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr "邮编"
 
-#: ../inc/user.inc:207 ../inc/user.inc:316
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr "加入 %1 的日期"
 
-#: ../inc/user.inc:209
+#. LDAP accounts can't change email or password
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr "修改"
 
-#: ../inc/user.inc:209
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr "电子邮件地址"
 
-#: ../inc/user.inc:210
+#: html/inc/user.inc:229
 msgid "password"
 msgstr "用户口令"
 
-#: ../inc/user.inc:211
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr "其它帐户信息"
 
-#: ../inc/user.inc:213 ../inc/user.inc:315
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr "用户 ID"
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr "在社区功能中使用"
 
-# 91%
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr "帐户密钥"
 
-#: ../inc/user.inc:221
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr "参数设置"
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
 msgstr "BOINC 如何使用你的计算机"
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr "计算参数设置"
 
-#: ../inc/user.inc:228
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr "留言板和私人消息"
 
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr "社区参数设置"
 
-#: ../inc/user.inc:232
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr "本项目的参数设置"
 
-#: ../inc/user.inc:233 ../user/prefs.php:29
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr "%1参数设置"
 
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "社区"
+#: html/inc/user.inc:270
+msgid "View the profile of %1"
+msgstr "查看 %1 的用户档案"
 
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "删除"
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
+msgid "Profile"
+msgstr "用户档案"
 
-#: ../inc/user.inc:245
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr "创建"
 
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "用户档案"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr "%1 个帖子"
 
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
+#. ------------ Notification -----------
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr "通知"
 
-#: ../inc/user.inc:269
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr "退出团队"
 
-#: ../inc/user.inc:271 ../inc/user.inc:288
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr "管理"
 
-#: ../inc/user.inc:277 ../inc/user.inc:290
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr "(创建人转换请求待处理)"
 
-#: ../inc/user.inc:279
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr "团队成员"
 
-#: ../inc/user.inc:281
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr "寻找团队"
 
-#: ../inc/user.inc:292
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr "创建人(已退出团队)"
 
-#: ../inc/user.inc:298
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr "寻找好友"
 
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
 msgstr "好友"
 
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "计算机"
-
-#: ../inc/user.inc:338
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr "捐助者"
 
-#: ../inc/user.inc:378
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr "联系"
 
-#: ../inc/user.inc:381
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr "这是一位好友"
 
-#: ../inc/user.inc:382 ../user/friend.php:238
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr "删除该好友"
 
-#: ../inc/user.inc:385 ../user/friend.php:37
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr "请求待处理"
 
-#: ../inc/user.inc:387
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr "添加为好友"
 
-#: ../inc/user.inc:446
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr "用户名前后不能有空格"
 
-#: ../inc/user.inc:450
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr "用户名不得为空"
 
-#: ../inc/user.inc:454
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr "用户名不得含有 HTML 标签"
 
-#: ../inc/util.inc:131
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr "注销"
 
-#: ../inc/util.inc:133
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr "登录"
 
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "登录"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr "创建帐户"
 
-#: ../inc/util.inc:206
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr "服务器状态页面"
 
-#: ../inc/util.inc:248
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
 msgstr "服务器在处理你的请求过程中发生了一次数据库错误,请稍后重试。"
 
-#: ../inc/util.inc:257
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr "无法处理请求"
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr "时"
 
-#: ../inc/util.inc:280
+#: html/inc/util.inc:345
 msgid "min"
 msgstr "分"
 
-#: ../inc/util.inc:283
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr "秒"
 
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
+#: html/inc/util.inc:527
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
 msgstr "链接已经超时,请点击返回并刷新页面后再重试。"
 
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "查看 %1 的用户档案"
-
-#: ../inc/util.inc:569
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
 msgstr "使用 BBCode 标记来格式化你的正文"
 
-#: ../inc/util.inc:796
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr "项目已停止进行维护"
 
-#: ../inc/util.inc:799
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
 msgstr "%1 已经临时关闭并进行维护工作,请稍后重试。"
 
-#: ../inc/util.inc:817
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
 msgstr "无法连接数据库 - 请稍后重试"
 
-#: ../inc/util.inc:821
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
 msgstr "无法选择数据库 - 请稍后重试"
 
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
+#: html/inc/util.inc:1050
+msgid "characters remaining"
+msgstr "剩余字符数"
+
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr "保持这台计算机上的登录状态"
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "完成账户设定"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "你在我们网站上的标识,可以使用你的真实姓名或是昵称。"
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "选择你所希望代表的国家或地区。"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "邮编"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "可选的"
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr "你必须为你的帐户提供一个名称"
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
 msgstr "名称中不允许使用 HTML 标记"
 
-#: ../user/add_venue.php:81
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "完成账户设定"
+
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "编辑 %1 的参数设置"
+
+#: html/user/add_venue.php:82
 msgid "Add %1 preferences for %2"
 msgstr "增加 %1 参数设置(用于 %2)"
 
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "计算程序"
-
-#: ../user/apps.php:33
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
+"tasks for one or more of these applications will be assigned to your "
 "computer. The current version of the application will be downloaded to your "
 "computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 目前有如下几个计算程序。当你参与 %1 "
-"项目时,适用于这些计算程序的任务包将会分发给你的计算机。当前版本的计算程序也会下载到你的计算机上。这一切都是自动的,你不需要做任何操作。"
+msgstr "%1 项目目前有如下几个计算程序。当你参与 %1 项目时,适用于这些计算程序的任务包将会分发给你的计算机。当前版本的计算程序也会下载到你的计算机上。这一切都是自动的,你不需要做任何操作。"
 
-#: ../user/apps.php:50
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr "平台"
 
-#: ../user/apps.php:51
+#: html/user/apps.php:56
 msgid "Version"
 msgstr "版本"
 
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "发布时间"
+#: html/user/apps.php:58
+msgid "Average computing"
+msgstr "平均计算"
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr "BBCode 标记"
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
 "have used %1 in HTML) and end with ] (where you would have used %2 in\n"
 "HTML)."
-msgstr ""
-"BBCode 标记可以用来对个人档案和留言板帖子内的文本进行格式化。\n"
-"它和 HTML 类似,但更为简单。这些标记一般以 [ 开头\n"
-"(如果在 HTML 中一般是 %1)并且以 ] 结尾(HTML 中则是 %2)。"
+msgstr "BBCode 标记可以用来对个人档案和留言板帖子内的文本进行格式化。\n它和 HTML 类似,但更为简单。这些标记一般以 [ 开头\n(如果在 HTML 中一般是 %1)并且以 ] 结尾(HTML 中则是 %2)。"
 
-#: ../user/bbcode.php:31
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr "范例"
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr "粗体"
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr "斜体"
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr "下划线"
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "删除线"
+
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr "上标"
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr "大号文字"
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr "红色文字"
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr "链接到网站"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr "被引用的文字"
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr "用于文本块的引用"
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr "用于显示一张图片"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr "这是代码片段"
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr "用于显示一些代码"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr "预格式文本"
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr "用于显示预格式文本(一般是等宽字体)"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr "条目1"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr "条目2"
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr "条目2"
 
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "用于链接到 BOINC 网站上的 Trac 传票"
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
+msgstr "链接到BOINC Github仓库中的一个issue"
 
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "用于链接到 BOINC 网站上的 Trac 维基"
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
+msgstr "链接到 BOINC Github 仓库中的一个 Wiki 页面"
 
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "用于链接到 BOINC 网站上的 SVN 修改集"
-
-#: ../user/bbcode.php:53
+#: html/user/bbcode.php:55
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
-msgstr ""
-"如果你没有正确的闭合标签或者指定参数,\n"
-"标签自身将被显示出来,而不是预格式的文本。"
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "参与者"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "执行任务"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "你的帐户"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "查看统计信息,修改参数设置"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "团队"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "创建或加入一个团队"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "今日用户"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "服务器状态"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "用户档案"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "用户搜索"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "统计"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "用户排名"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "主机排名"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "团队排名"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "GPU 型号排名"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "语言"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "阅读规定和政策"
+msgstr "如果你没有正确的闭合标签或者指定参数,\n标签自身将被显示出来,而不是预格式的文本。"
 
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr "无法创建账户"
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr "点击浏览器的<b>返回</b>按钮以重试。"
 
-#: ../user/create_account_action.php:47
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr "你输入的验证字符不正确,请重试。"
 
-#: ../user/create_account_action.php:70
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr "你必须提供一个邀请码才能创建帐户。"
 
-#: ../user/create_account_action.php:73
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr "你提供的邀请码是错误的。"
 
-#: ../user/create_account_action.php:84
+#: html/user/create_account_action.php:81
 msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
 msgstr "电子邮件地址错误:你必须输入一个合法的地址,形式如 '用户名@域名'"
 
-#: ../user/create_account_action.php:88
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr "已有账户关联至该电子邮箱地址。"
 
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr "新输入的口令不相符"
 
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr "登录口令中只允许包含 ASCII 字符。"
 
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
 msgstr "新口令长度过短:最少的口令长度为 %1 字符。"
 
-#: ../user/create_account_action.php:127
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr "无法创建帐户"
 
-#: ../user/create_account_form.php:44
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"注意:如果你有 BOINC Manager,可以不使用这个表单。直接在 BOINC Manager 中选择添加项目并且输入电子邮箱地址和项目口令。"
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
+msgstr "注意︰ 要在您的计算机上运行%1,%2请点击这里%3 而不是填这个表格。"
 
-#: ../user/create_account_form.php:61
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
 msgstr "此帐户将属于 %1 团队并且其项目参数的默认值和团队创建人的项目参数相同。"
 
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "邀请码"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "创建帐户时需要一个正确的邀请码。"
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "电子邮件地址"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "必须是有效的电子邮件地址,形式如 '用户名@域名'。"
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "用户口令"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "必须至少包含 %1 个字符"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "确认用户口令"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "请输入图片中显示的单词"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "创建帐户"
-
-#: ../user/create_profile.php:50
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr "照片"
 
-#: ../user/create_profile.php:64
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
 msgstr "%1你的用户档案图片将显示在左边"
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:69
 msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
 msgstr "要替换的话,点击“浏览”按钮并选择一个 JPEG 或 PNG 文件(大小不超过 %1)。"
 
-#: ../user/create_profile.php:69
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr "如果想从用户档案中删除它,请选择:"
 
-#: ../user/create_profile.php:77
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
 msgstr "如果你想在用户档案中包含一张照片,点击“浏览”按钮并选择一个 JPEG 或 PNG 文件。文件大小不能超过 %1。"
 
-#: ../user/create_profile.php:89
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr "语言"
 
-#: ../user/create_profile.php:92
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr "请选择你写用户档案所用的语言:"
 
-#: ../user/create_profile.php:104
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr "提交用户档案"
 
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "请输入图片中显示的单词。"
-
-#: ../user/create_profile.php:115
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr "创建/编辑用户档案"
 
-#: ../user/create_profile.php:137
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr "你上传的图片格式不支持。"
 
-#: ../user/create_profile.php:166
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
 msgstr "通过 %1用户档案%2,你可以和 %3 社区分享你的观点和背景。"
 
-#: ../user/create_profile.php:213
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr "你的验证字符回复不正确,请重试。"
 
-#: ../user/create_profile.php:222
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
 msgstr "你的第一次回复已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
 
-#: ../user/create_profile.php:230
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
 msgstr "你的第二次回复已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
 
-#: ../user/create_profile.php:246
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr "你提交的用户档案内容为空。"
 
-#: ../user/create_profile.php:285
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr "无法更新该用户档案:数据库错误"
 
-#: ../user/create_profile.php:297
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr "无法创建该用户档案:数据库错误"
 
-#: ../user/create_profile.php:302
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr "用户档案内容已保存"
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr "恭喜!你的用户档案已经成功进入了我们的数据库。"
 
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1查看你的用户档案%2"
+#: html/user/create_profile.php:308
+msgid "View your profile"
+msgstr "查看您的用户档案"
 
-#: ../user/create_profile.php:315
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr "创建一个用户档案"
 
-#: ../user/create_profile.php:343
+#: html/user/create_profile.php:346
 msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
 msgstr "为防止垃圾信息,如果要创建或编译用户档案,近期平均积分不能小于 %1,由此带来的不方便之处我们深感抱歉。"
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr "无法删除账户"
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr "账户已删除"
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr "你的账户已被删除。"
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr "确认删除账户"
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
 "including your profile and message-board posts.\n"
 "No jobs will be issued to any computers attached\n"
 "to this account."
-msgstr ""
-"删除账户操作将从服务器上移除你所有的个人信息,\n"
-"包括你的个人档案和留言板中的发帖。\n"
-"该账户名下的计算机也将不再下载新的计算任务。"
+msgstr "删除账户操作将从服务器上移除你所有的个人信息,\n包括你的个人档案和留言板中的发帖。\n该账户名下的计算机也将不再下载新的计算任务。"
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
-msgstr ""
-"该操作无法撤销。\n"
-"一旦账户被删除,你将无法再取回。"
+msgstr "该操作无法撤销。\n一旦账户被删除,你将无法再取回。"
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr "你确定要删除你的账户吗?"
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr "是的"
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr "删除当前账户"
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr "不是"
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr "不要删除当前账户"
 
-#: ../user/delete_profile.php:30
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr "无法删除个人档案 - 请稍后再试。"
 
-#: ../user/delete_profile.php:33
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr "删除确认"
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr "你的账户已被删除。"
 
-#: ../user/delete_profile.php:40
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr "个人档案删除确认"
 
-#: ../user/delete_profile.php:43
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr "你确定吗?"
 
-#: ../user/delete_profile.php:44
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
-msgstr ""
-"删除的个人档案将永远无法恢复 --\n"
-"如果你以后想要重新使用个人档案,必须从头开始创建。"
+msgstr "删除的个人档案将永远无法恢复 --\n如果你以后想要重新使用个人档案,必须从头开始创建。"
 
-#: ../user/delete_profile.php:48
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
-msgstr ""
-"如果你确定的话,请点击“是”\n"
-"来从我们的数据库中删除你的个人档案。"
+msgstr "如果你确定的话,请点击“是”\n来从我们的数据库中删除你的个人档案。"
 
-#: ../user/delete_profile.php:52
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr "创建我的账户"
 
-#: ../user/delete_profile.php:53
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr "不要删除我的账户"
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr "PayPal - 交易已完成"
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr "感谢你的捐赠!"
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr "你的捐赠已经完成。"
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
 msgstr "你的捐赠将在我们收到 PayPal 的确认之后再添加到进度条中。"
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr "你已经取消了捐赠。"
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr "该项目当前不接受捐赠。"
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr "%1 捐赠"
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
-msgstr ""
-"该项目接受的捐赠方式\n"
-"%1。"
+msgstr "该项目接受的捐赠方式\n%1。"
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -2844,2073 +3083,1995 @@ msgid ""
 "        to see the donation amount equivalent in different currencies\n"
 "        (please note that the rates are only estimates\n"
 "         and the actual amount may differ)."
-msgstr ""
-"请在下方的表单中填入你所要捐赠的金额。\n"
-"        PayPal 当前接受多种货币\n"
-"        (加元,欧元,英镑,美元,\n"
-"        日元,澳元,新西兰元,\n"
-"        瑞士法郎,港币,新加坡元,瑞典克朗,\n"
-"        丹麦克朗,波兰兹罗提,挪威克朗,\n"
-"        匈牙利福林,捷克克朗)。\n"
-"        你可以使用汇率转换器来查看不同币种的等值金额\n"
-"        (请注意汇率为估计值,实际汇率可能会稍有不同)"
-
-#: ../user/donations.php:316
+msgstr "请在下方的表单中填入你所要捐赠的金额。\n        PayPal 当前接受多种货币\n        (加元,欧元,英镑,美元,\n        日元,澳元,新西兰元,\n        瑞士法郎,港币,新加坡元,瑞典克朗,\n        丹麦克朗,波兰兹罗提,挪威克朗,\n        匈牙利福林,捷克克朗)。\n        你可以使用汇率转换器来查看不同币种的等值金额\n        (请注意汇率为估计值,实际汇率可能会稍有不同)"
+
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr "你想要捐赠的金额"
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr "汇率换算(估计)"
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr "匿名捐赠"
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"如果你不希望将你的名称和计算账户编号显示在捐赠者列表中,请选中此项。\n"
-"如果不选中的话,你将被记录为“用户 ID %1”"
+msgstr "如果你不希望将你的名称和计算账户编号显示在捐赠者列表中,请选中此项。\n如果不选中的话,你将被记录为“用户 ID %1”"
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
 msgstr "要用指定的用户 ID 进行捐赠的话,请先登录。"
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr "继续"
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr "接受捐赠的方式"
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr "下载 BOINC 的辅助软件"
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr "你可以下载如下几个类别的应用程序。"
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
 msgstr "这些应用程序未经过 %1 的仔细检查,若准备使用请自担风险。"
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
 "If this is not enough you should contact the author."
-msgstr ""
-"我们不能提供这些应用程序的安装及使用文档。\n"
-"但应用程序的作者可能提供了安装及卸载相关的帮助文档。\n"
-"如果还需要进一步的文档,请联系相关作者。"
+msgstr "我们不能提供这些应用程序的安装及使用文档。\n但应用程序的作者可能提供了安装及卸载相关的帮助文档。\n如果还需要进一步的文档,请联系相关作者。"
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
 msgstr "安装及运行 BOINC 的说明请看 %1这里%2。"
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr "本页面中的列表内容由 %1BOINC 官方网站%2 集中管理。"
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr "修改帐户电子邮箱地址"
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr "新的电子邮件地址 '%1'错误。"
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
 msgstr "新的电子邮箱地址和原来的相同,不需要修改。"
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr "已有账户关联至该电子邮箱地址。"
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr "错误的口令。"
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr "你的帐户所关联的电子邮箱地址现在是 %1。"
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr "请%1验证该电子邮箱地址%2。"
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
 msgstr "因为数据库的问题,我们目前无法更新你的账户电子邮箱地址,请稍后重试。"
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr "修改电子邮箱地址"
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr "修改你的帐户所关联的电子邮箱地址"
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr "新的电子邮件地址"
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr "必须是有效的电子邮件地址,形式如 '用户名@域名'"
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr "未设置用户口令?"
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr "确认重置"
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
 msgstr "该操作将清除你对社区参数所有的修改,要取消操作的话,请点击浏览器的返回按钮。"
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr "重置参数设置"
 
-#: ../user/edit_forum_preferences_action.php:88
+#. Not the right kind of file
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
 msgstr "错误:文件类型错误,只支持 PNG 和 JPEG 格式。"
 
-#: ../user/edit_forum_preferences_action.php:114
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr "你和签名太长,请将其限制在 250 个字符内。"
 
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "没有这个用户:%1"
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "没有这个用户:"
 
-#: ../user/edit_forum_preferences_form.php:56
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
 msgstr "当你接收到新的私人消息、好友请求、订阅主题更新等时,你希望我们如何通知你?"
 
-#: ../user/edit_forum_preferences_form.php:57
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr "在我的账户页面(不发送电子邮件)"
 
-#: ../user/edit_forum_preferences_form.php:58
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr "立即,通过电子邮件"
 
-#: ../user/edit_forum_preferences_form.php:59
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr "通过电子邮件,每天最多一封"
 
-#: ../user/edit_forum_preferences_form.php:75
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr "留言板标识"
 
-#: ../user/edit_forum_preferences_form.php:76
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr "头像"
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr "在留言板上代表你身份的图片。"
 
-#: ../user/edit_forum_preferences_form.php:78
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr "格式:JPG 或 PNG。尺寸:最大 4KB,100x100像素"
 
-#: ../user/edit_forum_preferences_form.php:80
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr "不使用头像"
 
-#: ../user/edit_forum_preferences_form.php:82
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr "使用由 %1 提供的个人全球统一标识"
 
-#: ../user/edit_forum_preferences_form.php:84
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr "使用上传的头像:"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr "头像预览"
 
-#: ../user/edit_forum_preferences_form.php:87
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr "你的头像将显示为"
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr "留言板发帖签名"
 
-#: ../user/edit_forum_preferences_form.php:99
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
-msgstr ""
-"查看 %1所有的免费服务%2\n"
-"<br> 提供动态签名图片\n"
-"<br> 显示你最新的积分信息,项目新闻等。"
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "剩余字符数"
+msgstr "查看 %1所有的免费服务%2\n<br> 提供动态签名图片\n<br> 显示你最新的积分信息,项目新闻等。"
 
-#: ../user/edit_forum_preferences_form.php:105
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr "默认使用签名"
 
-#: ../user/edit_forum_preferences_form.php:108
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr "签名预览"
 
-#: ../user/edit_forum_preferences_form.php:109
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr "你的签名将在论坛中显示为"
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr "消息显示"
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr "显示内容"
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr "隐藏头像图片"
 
-#: ../user/edit_forum_preferences_form.php:131
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr "隐藏签名"
 
-#: ../user/edit_forum_preferences_form.php:132
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr "将图片显示为链接"
 
-#: ../user/edit_forum_preferences_form.php:133
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr "在新窗口/标签页中打开链接"
 
-#: ../user/edit_forum_preferences_form.php:134
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr "高亮指定的用户"
 
-#: ../user/edit_forum_preferences_form.php:135
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr "每页显示的消息数目"
 
-#: ../user/edit_forum_preferences_form.php:139
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr "如何排序"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr "主题:"
 
-#: ../user/edit_forum_preferences_form.php:140
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr "贴子:"
 
-#: ../user/edit_forum_preferences_form.php:141
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr "自动跳转到第一篇未读的帖子"
 
-#: ../user/edit_forum_preferences_form.php:142
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr "不要把置顶文章放在页面顶部"
 
-#: ../user/edit_forum_preferences_form.php:148
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr "消息过滤"
 
-#: ../user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr "已过滤的用户"
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
 msgstr "忽略这些用户在留言板中的帖子和私人消息。"
 
-#: ../user/edit_forum_preferences_form.php:167
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr "用户 ID(比如:123456789)"
 
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr "添加用户到过滤器"
 
-#: ../user/edit_forum_preferences_form.php:173
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr "点击这里更新参数设置"
 
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "重置"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr "或者点击这里将所有参数复位至缺省配置"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "错误的帐户密钥"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "没有账户关联至该电子邮箱地址"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "错误的用户口令"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "修改用户口令"
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
+msgid "Reset"
+msgstr "重置"
 
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "你的用户口令已经修改。"
+#: html/user/edit_forum_preferences_form.php:165
+msgid "Or click here to reset preferences to the defaults"
+msgstr "或者点击这里将所有参数复位至缺省配置"
 
-#: ../user/edit_passwd_action.php:69
+#: html/user/edit_passwd_action.php:50
 msgid ""
 "We can't update your password due to a database problem. Please try again "
 "later."
 msgstr "因为数据库的问题,我们当前无法更新你的用户口令,请稍后重试。"
 
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "你可以声明你的帐户,通过"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "你的电子邮箱地址和旧的用户口令"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "你的帐户密钥"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "当前的用户口令"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>或者</b>:帐户密钥"
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "修改用户口令"
 
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "通过电子邮件获取帐户密钥"
+#: html/user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "你的用户口令已经修改。"
 
-#: ../user/edit_passwd_form.php:53
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr "新的用户口令"
 
-#: ../user/edit_passwd_form.php:54
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr "再次输入新的用户口令"
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr "帐户名称中不允许使用 HTML 标记"
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr "你必须为你的帐户提供一个名称。"
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr "无法更新用户信息。"
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr "编辑帐户信息"
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr "名称 %1真名或昵称%2"
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr "网址(URL) %1你的个人网页地址,可选%2"
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr "邮编 %1可选%2"
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr "更新信息"
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr "服务端状态"
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
 msgstr "计算任务的<b>服务端状态</b>表示该任务是否已经被分发到计算机,以及计算机是否已经完成该任务的处理。可能的状态值包括:"
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
 msgstr "该任务尚未准备分发(比如因为输入文件缺失)"
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr "该任务已经准备分发,但还没有分发。"
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr "计算中"
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr "任务已发送,等待完成。"
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
 msgstr "该任务已经分发给一台计算机,其结果或者是处理超时,或者是处理完成并正确上报。"
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr "结果"
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
 msgstr "计算任务的<b>结果</b>仅在其服务端状态为<b>完成</b>时才有效,可能的状态值包括:"
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
 msgstr "该任务已分发给一台计算机,但该计算机尚未完成相应的处理。"
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
 msgstr "该任务已由一台计算机完成处理并且成功的上报了处理结果。"
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
 msgstr "服务端无法分发该任务(可能因为需要的计算资源过大)"
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr "客户端错误"
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
 msgstr "该任务已分发给一台计算机,但在处理过程中产生了错误。"
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
 msgstr "该任务已分发给一台计算机,但未在指定的期限内收到回复。"
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
 msgstr "该任务未分发到计算机,因为所属的任务包已经完成了足够数量的计算任务。"
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
 msgstr "该任务的处理结果已上报但无法被验证,一般是因为服务端的输出文件缺失。"
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr "客户端状态"
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
 msgstr "计算结果的<b>客户端状态</b>表示计算任务在计算机上的处理阶段,比如发生错误的时候。"
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr "计算机尚未完成该任务的处理。"
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr "计算机已经成功完成了该任务的处理。"
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
 msgstr "计算机无法下载计算程序或输入文件。"
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr "计算过程中发生错误。"
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr "计算机无法上传输出文件。"
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr "上报时间和截止时间"
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
 msgstr "计算任务的<b>上报时间或截止时间</b>字段含义取决于该任务的处理结果已完成上报:"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr "已上报"
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr "上报的日期和时间"
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr "还没有上报,截止时间也还没到"
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr "截止时间显示为绿色字体。"
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr "还没有上报,截止时间已过"
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr "截止时间显示为红色字体。"
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr "未知字段"
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "电子邮件预览"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "你的电子邮箱地址将显示为:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
+#: html/user/ffmail_action.php:28
+msgid "Sending emails"
 msgstr "发送电子邮件"
 
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "使用浏览器的返回按钮来回退到消息表单页面"
+#: html/user/ffmail_action.php:43
+msgid "failed to send email to %1: %2"
+msgstr "无法发送电子邮件给 %1:%2"
 
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "发送电子邮件"
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
+msgstr "无法向 %1 发送电子邮件"
 
-#: ../user/ffmail_action.php:84
+#: html/user/ffmail_action.php:51
 msgid "email sent successfully to %1"
 msgstr "电子邮件已成功发送给 %1"
 
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr "无法发送电子邮件给 %1:%2"
-
-#: ../user/ffmail_action.php:92
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr "感谢你向好友们介绍了 %1"
 
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr "你没有输入好友的名称和/或电子邮箱地址,请%1回退到表单页面%2并重新输入。"
-
-#: ../user/ffmail_form.php:30
+#: html/user/ffmail_action.php:57
 msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "该项目还没有创建电子邮件消息 - 请通知其管理员"
+"You forgot to enter email addresses; Please %1return to the form%2 and enter"
+" them."
+msgstr "你忘了输入电子邮件地址,请%1回到表格%2并输入它们。"
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr "将你对 %1 的看法告诉好友"
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "帮助我们向你的好友、家人和同事介绍 %1"
-
-#: ../user/ffmail_form.php:39
+#: html/user/ffmail_form.php:49
 msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "在表单中填入你认为可能会对 %1 感兴趣的人的名称和电子邮箱地址。我们将以你的名义将他们发送电子邮件,邮件的内容你可以自行编辑。"
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "你的名称:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "你的电子邮件地址:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "好友的名称:"
+"Use this form to send email messages to people you think might be interested"
+" in %1."
+msgstr "使用此表格可以向你认为可能对%1有兴趣的人发送电子邮件。"
 
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "好友的电子邮箱地址:"
+#: html/user/ffmail_form.php:55
+msgid "To:"
+msgstr "收件人:"
 
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "附加消息(可选)"
-
-#: ../user/ffmail_form.php:59
+#: html/user/ffmail_form.php:59
 msgid "Send"
 msgstr "发送"
 
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
 msgid "You are not authorized to banish users."
 msgstr "你没有权限封禁用户。"
 
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "你必须指定一个操作..."
+
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "淫秽的"
+
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "有侮辱性的"
+
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
+msgstr "用户请求"
+
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr "封禁投票"
 
-#: ../user/forum_banishment_vote.php:50
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr "找不到相应 ID 的用户"
 
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr "用户已被封禁"
 
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
 msgstr "你确定要封禁 %1 吗?<br />该操作将在选定的时间期限内阻止 %1 发帖。<br />该操作只应在 %1 有连续的过激行为时被使用。"
 
-#: ../user/forum_banishment_vote.php:61
+#: html/user/forum_banishment_vote.php:64
 msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
 msgstr "选择原因分类,可以附上为什么要封禁该用户的原因。"
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr "分类"
 
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "淫秽的"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "有侮辱性的"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "用户请求"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "其它"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr "原因"
 
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr "非空则写入电子邮件"
 
-#: ../user/forum_banishment_vote.php:74
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr "继续投票"
 
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "你必须指定一个操作..."
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
 msgstr "你将无法再编辑该帖子。<br />帖子只能在其被创建后的 %1 分钟内被编辑。"
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr "你没有权限来编辑该帖子。"
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "论坛"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
+msgstr "编辑帖子"
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr "编辑你的消息"
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr "标题"
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr "在帖子后附上我的个性签名"
 
-#: ../user/forum_forum.php:41
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr "对你不可见"
 
-#: ../user/forum_forum.php:80
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr "%1 的团队留言板"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr "新主题"
 
-#: ../user/forum_forum.php:96
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr "在本论坛发布一个新主题"
 
-#: ../user/forum_forum.php:116
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr "留言板的更新还可以通过 %sRSS%s 来获取"
 
-#: ../user/forum_forum.php:174
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr "该主题已被隐藏"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr "该主题已置顶和锁定,你当前尚未阅读"
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr "置顶/锁定/未读"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr "该主题已置顶,你当前尚未阅读"
 
-#: ../user/forum_forum.php:180
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr "置顶/未读"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr "你还没有阅读该主题,而且这个主题已被锁定"
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr "未读/锁定"
 
-#: ../user/forum_forum.php:186
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr "你还没有阅读过该主题"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr "该主题已被置顶和锁定"
 
-#: ../user/forum_forum.php:192
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr "置顶/锁定"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr "该主题已被置顶"
 
-#: ../user/forum_forum.php:194
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr "置顶"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr "该主题已被锁定"
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr "锁定"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr "你已阅读过本主题"
 
-#: ../user/forum_forum.php:200
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr "已读"
 
-#: ../user/forum_help_desk.php:27
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr "问题和解答"
 
-#: ../user/forum_help_desk.php:30
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
 msgstr "通过 Skype 和志愿者在线交流,支持多种语言,请访问 %1BOINC 在线帮助%2。"
 
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr "主题"
 
-#: ../user/forum_help_desk.php:45
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr "问题"
 
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr "%1 成员间的讨论"
 
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 留言板"
-
-#: ../user/forum_index.php:78
+#: html/user/forum_index.php:80
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
 msgstr "如果你有问题希望得到解答,请使用留言板中的 %1问题解答%2 区。"
 
-#: ../user/forum_index.php:123
+#: html/user/forum_index.php:125
 msgid "Subscribed threads"
 msgstr "已订阅的主题"
 
-#: ../user/forum_moderate_post.php:43
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "你没有权限来处理当前帖子。"
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "无法移动到不同的版面类型"
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "无法移动到不同的版面"
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "没有权限封禁用户"
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "封禁"
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "用户 %1 已被封禁。"
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "操作失败:可能是数据库故障"
+
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr "处理帖子"
 
-#: ../user/forum_moderate_post.php:52
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr "隐藏帖子"
 
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr "广告垃圾"
 
-#: ../user/forum_moderate_post.php:58
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr "重复发帖"
 
-#: ../user/forum_moderate_post.php:63
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr "移动帖子"
 
-#: ../user/forum_moderate_post.php:65
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr "目的主题ID:"
 
-#: ../user/forum_moderate_post.php:78
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr "封禁用户"
 
-#: ../user/forum_moderate_post.php:80
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr "封禁时间"
 
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 小时"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr "6 小时"
+
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
+msgstr "12 个小时"
 
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr "1 天"
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr "一周"
 
-#: ../user/forum_moderate_post.php:84
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr "两周"
 
-#: ../user/forum_moderate_post.php:85
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr "1 月"
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr "永久"
 
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "封禁原因 %1将显示在发送给用户的电子邮件中。%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr "确定"
 
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "你没有权限来处理当前帖子。"
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "无法移动到不同的版面类型"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "无法移动到不同的版面"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "没有权限封禁用户"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "封禁"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "用户 %1 已被封禁。"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "操作失败:可能是数据库故障"
+#: html/user/forum_moderate_post.php:112
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "封禁原因 %1将显示在发送给用户的电子邮件中。%2"
 
-#: ../user/forum_moderate_thread.php:33
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr "未授权"
 
-#: ../user/forum_moderate_thread.php:36
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr "处理主题“%1”"
 
-#: ../user/forum_moderate_thread.php:48
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
 msgstr "选择处理原因,或者在编辑框中详细说明为什么要隐藏或锁定该主题,然后点击确定。"
 
-#: ../user/forum_moderate_thread.php:72
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr "当前论坛"
 
-#: ../user/forum_moderate_thread.php:73
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr "目的论坛"
 
-#: ../user/forum_moderate_thread.php:77
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr "新的标题:"
 
-#: ../user/forum_post.php:40
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
 msgstr "只有项目管理员可以在此创建主题,但你可以回复已有的主题。"
 
-#: ../user/forum_post.php:60
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
 msgstr "你的消息已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
 
-#: ../user/forum_post.php:70
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr "创建新主题"
 
-#: ../user/forum_post.php:100
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr "创建新主题"
 
-#: ../user/forum_post.php:105
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr "记得写上标题"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr "将该条目显示为 BOINC 客户端的通知"
 
-#: ../user/forum_post.php:127
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
 msgstr "仅在所有志愿者都可能对该条目感兴趣的时候使用"
 
-#: ../user/forum_rate.php:26
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr "评分功能下线"
 
-#: ../user/forum_rate.php:27
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr "该特性已被项目关闭"
 
-#: ../user/forum_rate.php:58
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
 msgstr "你需要更高的平均积分或总积分才能对帖子进行评分。"
 
-#: ../user/forum_rate.php:62
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr "你已经评价过该帖子。"
 
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr "返回主题"
 
-#: ../user/forum_rate.php:72
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr "输入已记录"
 
-#: ../user/forum_rate.php:73
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr "输入已经被记录下来,感谢你的帮助。"
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr "投票已登记"
 
-#: ../user/forum_rate.php:76
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr "评分已经被记录下来,感谢你的参与。"
 
-#: ../user/forum_rate.php:80
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr "投票提交故障"
 
-#: ../user/forum_reply.php:73
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
 msgstr "你的帖子已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
 
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr "回复该主题"
 
-#: ../user/forum_reply.php:137
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr "消息:"
 
-#: ../user/forum_reply.php:140
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr "回复%1消息 ID%2:"
 
-#: ../user/forum_reply.php:166
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr "发表回复"
 
-#: ../user/forum_reply.php:169
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr "在回复中附上我的个性签名"
 
-#: ../user/forum_report_post.php:45
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
 msgstr "你需要更高的平均积分或总积分才能举报一个帖子。"
 
-#: ../user/forum_report_post.php:65
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr "举报已记录"
 
-# 92%
-#: ../user/forum_report_post.php:66
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr "举报已被记录,感谢你的参与。"
 
-#: ../user/forum_report_post.php:67
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
 msgstr "管理员将会查看你的举报并决定如何处理 - 可能需要一些时间,请耐心等待"
 
-#: ../user/forum_report_post.php:71
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr "举报论坛帖子"
 
-#: ../user/forum_report_post.php:73
+#: html/user/forum_report_post.php:78
 msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
 msgstr "在举报之前,可以考虑使用 +/- 评分系统。如果足够多的用户给一篇帖子负面评价,该帖子将自动隐藏。<br />你可以在帖子下方找到评分系统。"
 
-#: ../user/forum_report_post.php:80
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr "举报帖子"
 
-#: ../user/forum_report_post.php:81
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
 msgstr "为什么你认为这篇帖子是令人不快的:%1请包含足够的说明以便没有阅读过整个主题的人也能快速的判明问题。%2"
 
-#: ../user/forum_report_post.php:90
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr "举报未记录"
 
-#: ../user/forum_report_post.php:91
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
 msgstr "你的举报未被记录,请等待片刻后重试。"
 
-#: ../user/forum_report_post.php:92
+#: html/user/forum_report_post.php:106
 msgid ""
-"If this is not a temporary error, please report it to the project developers."
+"If this is not a temporary error, please report it to the project "
+"developers."
 msgstr "如果该故障无法自动恢复,请向项目开发人员报告。"
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr "%1 RSS 订阅源"
 
-#: ../user/forum_rss.php:42
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr "留言板的内容更新还可以通过 %sRSS%s 来获取。"
 
-#: ../user/forum_rss.php:43
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr "选项:"
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
 msgstr "只包含用户 ID 为 %1 的帖子(默认:所有用户)。"
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr "只包含最近多少天内的帖子(默认:30)。"
 
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr "截断帖子:%1(只包含每篇帖子最前面的 256 个字符)"
-
-#: ../user/forum_rss.php:53
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr "仅主题:%1(只包含每个主题的第一篇帖子)"
 
-#: ../user/forum_search.php:27
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "论坛搜索结果"
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr "符合你的查询条件的主题:"
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "符合你的查询条件的消息:"
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "对不起,无法根据你的查询条件找到任何结果。你可以试着将查询条件放宽,比如使用更少的关键字词或者更宽泛的字词。"
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "你也可以%1用 Google 进行同样的搜索。%2"
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "重新搜索"
+
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr "搜索论坛"
 
-#: ../user/forum_search.php:31
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr "搜索查询"
 
-#: ../user/forum_search.php:32
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr "搜索关键字:"
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr "包含所有指定字词的帖子将被显示"
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr "举例:“屏保 死机”"
 
-#: ../user/forum_search.php:36
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr "搜索作者ID:"
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr "仅指定作者的帖子会被显示"
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr "举例:“43214”"
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr "搜索选项"
 
-#: ../user/forum_search.php:42
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr "搜索限制"
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr "只搜索最近多少天内的"
 
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr "%1 月"
 
-#: ../user/forum_search.php:52
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr "一年"
 
-#: ../user/forum_search.php:73
+#: html/user/forum_search.php:74
+msgid "Forum"
+msgstr "论坛"
+
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr "只显示指定论坛的帖子"
 
-#: ../user/forum_search.php:84
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr "排序"
 
-#: ../user/forum_search.php:88
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr "开始搜索"
 
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "论坛搜索结果"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "符合你的查询条件的主题:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "符合你的查询条件的消息:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "对不起,无法根据你的查询条件找到任何结果。你可以试着将查询条件放宽,比如使用更少的关键字词或者更宽泛的字词。"
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "你也可以%1用 Google 进行同样的搜索。%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "重新搜索"
-
-#: ../user/forum_subscribe.php:46
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr "订阅成功"
 
-#: ../user/forum_subscribe.php:49
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
 msgstr "你已经订阅到主题 %1,一旦该主题有更新,你将得到通知。"
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr "订阅失败"
 
-#: ../user/forum_subscribe.php:52
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
 msgstr "我们当前无法添加你对 %1 的订阅,请稍后再试..."
 
-#: ../user/forum_subscribe.php:61
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr "退订成功"
 
-#: ../user/forum_subscribe.php:64
+#: html/user/forum_subscribe.php:66
 msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
 msgstr "你已经退订了主题 %1,你将不会再收到该主题的通知。"
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr "退订失败"
 
-#: ../user/forum_subscribe.php:67
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
 msgstr "我们当前无法解除你对 %1 的订阅,请稍后再试..."
 
-#: ../user/forum_subscribe.php:74
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr "未知的订阅操作"
 
-#: ../user/forum_thread.php:61
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr "你不能查看本论坛。"
 
-#: ../user/forum_thread.php:69
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr "该主题已被管理员隐藏"
 
-#: ../user/forum_thread.php:128
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr "我的问题已得到解答"
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr "如果你的问题已经得到充分的解答,请点击这里"
 
-#: ../user/forum_thread.php:137
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr "我也有同样的问题"
 
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr "回复本主题"
 
-#: ../user/forum_thread.php:171
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr "退订该主题"
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr "你已经订阅了本主题。点击这里取消订阅。"
 
-#: ../user/forum_thread.php:178
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr "订阅该主题"
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
 msgstr "如果你需要在本主题中有新的回帖时通过电子邮件通知你请点击。"
 
-#: ../user/forum_thread.php:190
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr "取消隐藏本主题"
 
-#: ../user/forum_thread.php:196
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr "隐藏本主题"
 
-#: ../user/forum_thread.php:202
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr "取消置顶"
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr "取消本主题的置顶"
 
-#: ../user/forum_thread.php:208
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr "置顶"
 
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "将本主题置顶显示"
+#: html/user/forum_thread.php:213
+msgid "Make this thread always appear at top of forum"
+msgstr "使得这个帖子总是在论坛的顶端显示"
 
-#: ../user/forum_thread.php:215
+#: html/user/forum_thread.php:219
 msgid "Unlock"
-msgstr "打开"
+msgstr "解锁"
 
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "打开本主题"
+#: html/user/forum_thread.php:220
+msgid "Allow new posts in this thread"
+msgstr "允许在本贴中发表新的跟帖"
 
-#: ../user/forum_thread.php:221
+#: html/user/forum_thread.php:225
 msgid "Lock"
-msgstr "关闭"
+msgstr "锁定"
 
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "关闭本主题"
+#: html/user/forum_thread.php:226
+msgid "Don't allow new posts in this thread"
+msgstr "禁止在本贴中发表新的跟帖"
 
-#: ../user/forum_thread.php:229
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr "移动本主题到其它论坛"
 
-#: ../user/forum_thread.php:234
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr "编辑标题"
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr "编辑主题的标题"
 
-#: ../user/forum_thread.php:245
+#: html/user/forum_thread.php:247
+msgid "Delete thread permanently"
+msgstr "彻底删除主题"
+
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr "导出为通知"
 
-#: ../user/forum_thread.php:251
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr "不要导出"
 
-#: ../user/forum_thread.php:252
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr "不要将该新闻条目导出为通知"
 
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr "排序"
 
-#: ../user/forum_thread_status.php:49
+#. --------------
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr "主题状态已更新"
 
-#: ../user/forum_thread_status.php:50
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr "状态已更新。"
 
-#: ../user/forum_user_posts.php:73
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr "%1 的帖子"
 
-#: ../user/friend.php:33
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr "已经是好友"
 
-#: ../user/friend.php:39
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr "你已经给 %1 发送过好友请求(%2)。"
 
-#: ../user/friend.php:41
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr "该请求仍在等待对方确认。"
 
-#: ../user/friend.php:52
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr "%1 没有接受你的好友请求"
 
-#: ../user/friend.php:61
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr "你不能加自己为好友"
 
-#: ../user/friend.php:69
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr "添加好友"
 
-#: ../user/friend.php:74
+#: html/user/friend.php:76
 msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
 msgstr "你已经要求将 %1 加为好友,我们将通知 %1 并请他/她来确认你们的关系。"
 
-#: ../user/friend.php:77
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr "可以在这里添加一条附加消息:"
 
-#: ../user/friend.php:115
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr "好友请求已发送"
 
-#: ../user/friend.php:116
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr "我们已经把你的好友请求通知给了 %1。"
 
-#: ../user/friend.php:126
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr "请以 %1 的身份登录"
 
-#: ../user/friend.php:127
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr "你必须以 %1 的身份登录才能查看该好友请求"
 
-#: ../user/friend.php:138
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr "好友请求"
 
-#: ../user/friend.php:141
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr "%1 给你发送了好友请求。"
 
-#: ../user/friend.php:143
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr "%1 还说:%2"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr "接受好友请求"
 
-#: ../user/friend.php:146
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr "如果 %1 是你的好友请点击接受"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr "拒绝"
 
-#: ../user/friend.php:147
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr "如果 %1 不是你的好友请点击拒绝"
 
-#: ../user/friend.php:186
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr "好友请求已确认"
 
-#: ../user/friend.php:187
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr "你与 %1 的好友关系已经被确认。"
 
-#: ../user/friend.php:205
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr "好友请求被拒绝"
 
-#: ../user/friend.php:206
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr "你已经拒绝了与 %1 的好友关系"
 
-#: ../user/friend.php:221
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr "无法找到通知"
 
-#: ../user/friend.php:223
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr "好友已确认"
 
-#: ../user/friend.php:224
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr "你现在和 %1 是好友了。"
 
-#: ../user/friend.php:232
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr "删除好友"
 
-#: ../user/friend.php:234
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr "你确定想要取消与 %1 的好友关系吗?"
 
-#: ../user/friend.php:239
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr "保持好友关系"
 
-#: ../user/friend.php:249
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr "好友关系已取消"
 
-#: ../user/friend.php:250
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr "你与 %1 的好友关系已经取消。"
 
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "忘记了你的账户信息?"
-
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:27
 msgid ""
-"1) If you know your account's email address, and you can receive email there:"
+"1) If you know your account's email address, and you can receive email "
+"there:"
 msgstr "1) 如果你知道你账户关联的电子邮箱地址,你可以在那里收到电子邮件:"
 
-#: ../user/get_passwd.php:29
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
 msgstr "输入电子邮箱地址,点击确定后,你将收到关于如何重置登录口令的操作指导电子邮件。"
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
 msgstr "2) 如果你已经忘记了你账户所关联的电子邮箱地址,或者你已经不能从该地址接收电子邮件:"
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
 msgstr "如果你仍有 BOINC 客户端运行在该账户下,请按如下操作指导取回你的登录口令:"
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
 msgstr "打开你计算机上的 BOINC 数据路径(其具体位置会写入到启动时的事件日志)。                "
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
 msgstr "找到本项目的账户文件,文件名为:<b>%1</b>。"
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
 msgstr "用记事本等文本编辑器打开该文件,你将看到类似的如下内容:"
 
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
+#: html/user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
 msgstr "选中并复制 %1 和 %2 之间的内容(上述例子中就应该是 %3)。"
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
 msgstr "将之前复制的内容粘贴到下面的表单中,并点击确定。"
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
 msgstr "你现在将登录进自己的账户,可以更新你的电子邮箱地址和账户口令。"
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
 msgstr "用身份验证码(authenticator)来登录"
 
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
+#: html/user/get_passwd.php:84
+msgid "Forgot your account info?"
+msgstr "忘记了你的账户信息?"
+
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr "还没有已上报的 GPU 计算任务"
 
-#: ../user/gpu_list.php:183
+#: html/user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "GPU 型号排名"
+
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr "下面的列表显示了各个平台上效率最好的 GPU 型号,不同型号间的速度差异用百分比来表示。"
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "下面的列表显示了各个平台上效率最好的 GPU 型号,这些速度由任务平均完成时间计算得到,不同型号间的速度差异用百分比来表示。"
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr "欢迎访问 %1"
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
 msgstr "使用下面的链接查看及编辑你的帐户参数"
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr "如果还没有的话,%1下载 BOINC 的客户端软件%2。"
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "匿名平台,未知应用"
+#: html/user/home.php:49
+msgid "Your account"
+msgstr "你的帐户"
 
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr "匿名平台"
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "无法识别的计算程序版本"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "未知应用"
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr "无法识别的计算平台"
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr "完成的计算任务数目"
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
 msgstr "每日最大任务数量"
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr "今天的任务数量"
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr "连续成功完成的计算任务数目"
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr "平均处理速率"
 
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr "主机 %1 的计算程序情况"
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr "我们没有该计算机的记录。"
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
-msgstr ""
-"你当前不能删除该计算机的记录,因为我们数据库中仍有和其相关的计算任务记录。你需要等到所有指定给该计算机的任务记录都从项目数据库中删除,一般可能需要几天。"
+msgstr "你当前不能删除该计算机的记录,因为我们数据库中仍有和其相关的计算任务记录。你需要等到所有指定给该计算机的任务记录都从项目数据库中删除,一般可能需要几天。"
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr "删除计算机记录"
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr "记录已删除。"
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr "返回你的计算机列表"
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr "合并计算机记录"
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr "合并计算机"
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
 msgstr "有时候,BOINC 会给同一台计算机赋予多个唯一标识,你可以通过将旧标识和新标识合并以纠正该问题。"
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr "没有符合条件的主机可以和该主机合并。"
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr "显示详细"
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
 msgstr "选择和 %1 相同的计算机(创建于 %2,计算机 ID 为 %3):"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr "名称"
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr "创建时间"
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr "计算机 ID"
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr "无主机名"
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr "合并主机"
 
-#: ../user/host_update_credit.php:28
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "%1 的计算机"
+
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "计算机已隐藏"
+
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "该用户已设定为不显示其计算机的详细信息。"
+
+#: html/user/hosts_user.php:64
+msgid "Your computers"
+msgstr "你的计算机"
+
+#: html/user/host_update_credit.php:27
 msgid "Updating computer credit"
 msgstr "正在更新计算机积分"
 
-#: ../user/host_venue_action.php:41
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "主机积分已更新"
+
+#: html/user/host_venue_action.php:41
 msgid "Host venue updated"
 msgstr "主机位置已更新"
 
-#: ../user/host_venue_action.php:43
+#: html/user/host_venue_action.php:43
 msgid "none"
 msgstr "无"
 
-#: ../user/host_venue_action.php:46
+#: html/user/host_venue_action.php:46
 msgid "The venue of this host has been set to %1."
 msgstr "该主机的位置已设置为 %1。"
 
-#: ../user/host_venue_action.php:48
+#: html/user/host_venue_action.php:48
 msgid ""
 "This change will take effect the next time the host communicates with this "
 "project."
 msgstr "更改将在该主机下一次和项目通讯的时候生效。"
 
-#: ../user/host_venue_action.php:50
+#: html/user/host_venue_action.php:50
 msgid "Return to host page"
 msgstr "返回主机页面"
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1 的计算机"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "计算机已隐藏"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "该用户已设定为不显示其计算机的详细信息。"
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "你的计算机"
-
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr "允许的 HTML 标记"
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
 msgstr "团队描述中可以使用下列 HTML 标记:"
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr "粗体"
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr "斜体"
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr "超链接"
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr "段落"
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr "换行"
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr "预格式"
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
 msgstr "图片,高度不能超出 450 像素,请不要在未经允许的情况下引用其它网站上的图片。"
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
 msgstr "你也可以使用 &(和号)开头的字符实体来表示特殊字符(比如   等)。"
 
-#: ../user/info.php:35
+#: html/user/info.php:24
+msgid "Rules and policies"
+msgstr "规定和政策"
+
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr "仅在已授权的计算机上运行 %1"
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
 msgstr "仅在你自己的或者已获准使用的计算机上运行 %1。某些企业和学校是禁止在他们的计算机上运行和 %1 的类似的项目。"
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
 msgstr "%1 如何使用你的计算机"
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
 msgstr "当你在计算机上运行 %1 时,他会使用你计算机上部分的处理器资源、磁盘空间以及网络带宽。你可以控制 %1 的资源使用量以及何时可以使用。"
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
 msgstr "你的计算机所完成的计算任务仅用来帮助 %1 实现其项目网站上所申明的目标。项目计算程序的版本可能会经常改变。"
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr "隐私政策"
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"%1 通过你选择的用户名来标识你的帐户。该用户名以及你为 %1 完成的计算任务的摘要将显示在 %1 "
-"的网站上。如果你想要匿名,那请选择一个不会泄漏你身份的用户名。"
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "%1 通过你选择的用户名来标识你的帐户。该用户名以及你为 %1 完成的计算任务的摘要将显示在 %1 的网站上。如果你想要匿名,那请选择一个不会泄漏你身份的用户名。"
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
 "decide what type of work to assign to your computer. This information will "
 "also be shown on %1's web site. Nothing that reveals your computer's "
 "location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"如果你参加了 %1,那你的计算机中的相关信息比如处理器的型号、内存的大小等会被 %1 记录下来,以用来决定什么样的计算任务最适合你的计算机。 "
-"这些信息也会显示在 %1 的网站上,但是请不要担心,我们绝对不会泄漏出你的计算机的位置比如域名、网络地址等。"
+msgstr "如果你参加了 %1,那你的计算机中的相关信息比如处理器的型号、内存的大小等会被 %1 记录下来,以用来决定什么样的计算任务最适合你的计算机。 这些信息也会显示在 %1 的网站上,但是请不要担心,我们绝对不会泄漏出你的计算机的位置比如域名、网络地址等。"
 
-#: ../user/info.php:45
+#: html/user/info.php:45
 msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"为了参加 %1,你必须提供一个能够接收邮件的电子邮件地址。这个地址不会被显示在 %1 的网站上。%1 可能会定期向你发送项目的新闻快讯; "
-"当然,你随时可以选择退订。"
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "为了参加 %1,你必须提供一个能够接收邮件的电子邮件地址。这个地址不会被显示在 %1 的网站上。%1 可能会定期向你发送项目的新闻快讯; 当然,你随时可以选择退订。"
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
 "If you receive unwanted private messages from another %1 user, you may add "
 "them to your %2message filter%3.  This will prevent you from seeing any "
 "public or private messages from that user."
-msgstr ""
-"在 %1 网站上发送的私人消息只对发送者和接收者可见。%1 不会检查或审查消息的内容。如果你从 %1 "
-"的用户那收到不希望收到的私人消息,你可以把他们加入到你的 %2消息过滤器%3。这样就可以避免你收到来自那位用户的任何公共或私人消息。"
+msgstr "在 %1 网站上发送的私人消息只对发送者和接收者可见。%1 不会检查或审查消息的内容。如果你从 %1 的用户那收到不希望收到的私人消息,你可以把他们加入到你的 %2消息过滤器%3。这样就可以避免你收到来自那位用户的任何公共或私人消息。"
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"如果你要使用我们的网站论坛,你必须遵守 %2发贴注意事项%3。发送到 %1 "
-"论坛的帖子对所有人都是可见的,即便不是我们网站的用户也能看到。你的发帖同时表明你允许所有人查看和复制你的帖子。"
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "如果你要使用我们的网站论坛,你必须遵守 %2发贴注意事项%3。发送到 %1 论坛的帖子对所有人都是可见的,即便不是我们网站的用户也能看到。你的发帖同时表明你允许所有人查看和复制你的帖子。"
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
 msgstr "运行 %1 安全吗?"
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"只要你从互联网下载程序就有可能碰到有危险错误的程序或者下载服务器已被黑客攻击的情况。%1 已经尽力最小化这方面的风险。我们已经仔细测试了我们的程序。我们"
-"的服务器处于防火墙之后,并且设置了最高的安全级别。为了保证程序下载的正确性,全部的可执行文件会被放置在一台未联网的安全的计算机中进行数字签名。"
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "只要你从互联网下载程序就有可能碰到有危险错误的程序或者下载服务器已被黑客攻击的情况。%1 已经尽力最小化这方面的风险。我们已经仔细测试了我们的程序。我们的服务器处于防火墙之后,并且设置了最高的安全级别。为了保证程序下载的正确性,全部的可执行文件会被放置在一台未联网的安全的计算机中进行数字签名。"
 
-#: ../user/info.php:50
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"%1 的计算程序可能会导致某些计算机温度过高。如果你碰到了这种情形,请停止运行 %1 或者使用 %2某些工具软件%3 来限制计算程序对处理器的使用。"
+msgstr "%1 的计算程序可能会导致某些计算机温度过高。如果你碰到了这种情形,请停止运行 %1 或者使用 %2某些工具软件%3 来限制计算程序对处理器的使用。"
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
 msgstr "%1 由 %2 开发。BOINC 由加州大学开发。"
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr "免责申明"
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
+"any other event or condition that may occur as a result of participating in "
+"%1."
 msgstr "%1 和 %2 对于你的计算机损坏、数据丢失或其他任意由于参与 %1 所可能造成的事件没有赔偿责任。"
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr "其它 BOINC 项目"
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
-msgstr ""
-"除了 %1,还有其它一些项目也使用BOINC平台。你也许会考虑同时参加多个项目,这样当你无法从 %1 "
-"获取计算任务时,你的计算机仍可以处理其它项目的计算任务。"
+msgstr "除了 %1,还有其它一些项目也使用BOINC平台。你也许会考虑同时参加多个项目,这样当你无法从 %1 获取计算任务时,你的计算机仍可以处理其它项目的计算任务。"
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
 msgstr "其它项目同 %1 没有关系,所以我们也无法保证这些项目的安全性以及确切的研究内容,请你自行决定是否参加其他项目。"
 
-#: ../user/language_select.php:47
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr "我是个新人"
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr "我是一个 BOINC 用户"
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr "阅读我们的 %1规定和政策%2。"
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr "下载 BOINC软件。"
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr "下载"
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App"
+" Store."
+msgstr "对于 Android 设备,请从 Google Play商店或亚马逊应用商店下载 BOINC。"
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr "运行安装程序。"
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr "从列表中选择 %1 ,或输入 %2"
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr "如果没有安装的话,在此设备上安装 BOINC。"
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr "选择工具 / 添加项目。从列表中选择 %1 ,或输入 %2"
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create"
+" an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr "如果你在此计算机上运行的是命令行版本的 BOINC,%1创建一个账户%2,之后使用%3boinccmd --project_attach%4来添加项目。"
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr "加入 %1"
+
+#: html/user/language_select.php:46
 msgid "Language selection"
 msgstr "语言选择"
 
-#: ../user/language_select.php:73
+#: html/user/language_select.php:57
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
 msgstr "本网站提供了多种语言界面,当前选择的语言是 %1。"
 
-#: ../user/language_select.php:78
+#: html/user/language_select.php:62
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
 msgstr "通常语言的选择是通过你浏览器的语言设置来自动完成的,当前选择为:%1。你可以通过下面的操作来改变这个设置:"
 
-#: ../user/language_select.php:83
+#: html/user/language_select.php:67
 msgid "Firefox: Tools/Options/General"
 msgstr "Firefox(火狐):工具/选项/内容"
 
-#: ../user/language_select.php:85
+#: html/user/language_select.php:69
 msgid "Microsoft IE: Tools/Internet Options/Languages"
 msgstr "微软 IE:工具/Internet 选项/语言"
 
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "或者你也可以点击下面的链接来选择一种语言。该操作将给你的浏览器发送一个 Cookie,请确保你的浏览器能从我们的域名接收 Cookie。"
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "语言名称(直接点击进行设置)"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
+msgstr "或者,您可以从下面的菜单中选择语言︰"
 
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "使用浏览器的语言设置"
-
-#: ../user/language_select.php:113
+#: html/user/language_select.php:85
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr "翻译工作都是由志愿者完成的,如果这里没有你的母语,%1你可以自己进行翻译%2。"
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "电子邮件地址:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "忘记了电子邮箱地址?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "用户口令:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "忘记了口令?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "保持登录状态"
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
+msgstr "翻译是由志愿者完成的。如果你的母语没有被翻译或翻译不完整,您可以%1 帮助我们翻译 %2。"
 
-#: ../user/login_form.php:62
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr "或者%1创建一个新帐户%2。"
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr "正在处理 %1"
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr "%1 已合并至 %2"
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
 msgstr "返回你的计算机列表"
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -4918,42 +5079,32 @@ msgid ""
 "        having that name with the newest computer having that name.\n"
 "        Incompatible computers will not be merged.\n"
 "        <p>"
-msgstr ""
-"该操作基于名称来合并计算机。\n"
-"        <p>\n"
-"        对于每个名称,它会将所有老的计算机合并到最新的计算机上。\n"
-"        软硬件配置不兼容的计算机将不会被合并。\n"
-"        <p>"
+msgstr "该操作基于名称来合并计算机。\n        <p>\n        对于每个名称,它会将所有老的计算机合并到最新的计算机上。\n        软硬件配置不兼容的计算机将不会被合并。\n        <p>"
 
-#: ../user/merge_by_name.php:82
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr "继续操作"
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr "返回计算机列表"
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
 "our message boards are moderated.\n"
 "Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"为了让大家的讨论和交流能有效进行,\n"
-"我们为留言板设立了管理协调机制。\n"
-"所有留言板的发帖都必须遵循如下的规则:\n"
+msgstr "\n为了让大家的讨论和交流能有效进行,\n我们为留言板设立了管理协调机制。\n所有留言板的发帖都必须遵循如下的规则:\n"
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
 "Moderators may delete posts that violate any of these rules.\n"
 "The authors of deleted posts will be notified via email.\n"
 "Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
 "Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
 "IP addresses of other participants, excessive thread creation to spam\n"
 "the forums, etc.), while not listed in the formal rules, may still\n"
@@ -4982,1922 +5133,1521 @@ msgid ""
 "This moderation policy is set by the %1 project.\n"
 "If you have comments about the policy, email %2.\n"
 "\n"
-msgstr ""
-"\n"
-"<p>\n"
-"管理员可能会删除违规的帖子,被删帖的用户将得到电子邮件通知。\n"
-"严重的违规者可能会被临时封禁发帖权限(为防止该操作被滥用,只有项目主管有相关的权限)。\n"
-"其它未列在上述规则中的恶意行为(比如恶意收集其他用户的 IP 地址、或者在论坛中大量发表垃圾内容等)也可能面临类似的处罚。\n"
-"<p>\n"
-"如果你碰到违规的帖子,请点击帖子内的红色小叉并进行相应的说明;管理员将收到通知并进行处理。\n"
-"该功能请务必仅用于处理违规帖子,而不要用于处理个人争端。\n"
-"<p>\n"
-"我们在操作的时候将尽可能地保证公平,但对于如此大的一个网络社区,包含了各种不同的观点,可能仍然会有人对我们的管理决定不满意。\n"
-"对此我们十分抱歉,但请大家多多谅解,我们不可能在所有时候让所有人满意,我们只能根据我们了解的信息、并且从论坛的整体利益出发来作出决定。\n"
-"请不要在论坛讨论我们的管理策略,我们不是在进行一个社会工程项目,也没有试图创建一个完美而公平的系统。\n"
-"因此这样的讨论并不会起到什么积极的作用,而且是潜在有害的。\n"
-"当然,如果你一些合理的想法,请发送电子邮件到下面的地址。\n"
-"<p>\n"
-"本管理规定由 %1 项目设立,如果你有想法要交流,请发送电子邮件到 %2。\n"
-"\n"
+msgstr "\n<p>\n管理员可能会删除违规的帖子,被删帖的用户将得到电子邮件通知。\n严重的违规者可能会被临时封禁发帖权限(为防止该操作被滥用,只有项目主管有相关的权限)。\n其它未列在上述规则中的恶意行为(比如恶意收集其他用户的 IP 地址、或者在论坛中大量发表垃圾内容等)也可能面临类似的处罚。\n<p>\n如果你碰到违规的帖子,请点击帖子内的红色小叉并进行相应的说明;管理员将收到通知并进行处理。\n该功能请务必仅用于处理违规帖子,而不要用于处理个人争端。\n<p>\n我们在操作的时候将尽可能地保证公平,但对于如此大的一个网络社区,包含了各种不同的观点,可能仍然会有人对我们的管理决定不满意。\n对此我们十分抱歉,但请大家多多谅解,我们不可能在所有时候让所有人满意,我们只能根据我们了解的信息、并且从论坛的整体利益出发来作出决定。\n请不要在论坛讨论我们的管理策略,我们不是在进行一个社会工程项目,也没有试图创建一个完美而公平的系统。\n因此这样的讨论并不会起到什么积极的作用,而且是潜在有害的。\n当然,如果你一些合理的想法,请发送电子邮件到下面的地址。\n<p>\ [...]
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr "待授予的积分"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr "计算结果 ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr "任务单元 ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr "主机 ID"
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr "申请积分"
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr "待授予的积分:%1"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr "阻止该用户的消息"
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr "阻止用户"
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr "你的消息已被发送。"
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr "你目前没有私人消息。"
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr "发送人及日期"
 
-#: ../user/pm.php:106
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr "回复该消息"
 
-#: ../user/pm.php:107
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr "删除该消息"
 
-#: ../user/pm.php:112
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr "全选"
 
-#: ../user/pm.php:114
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr "取消全选"
 
-#: ../user/pm.php:117
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr "删除选中的消息"
 
-#: ../user/pm.php:140
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr "发送人"
 
-#: ../user/pm.php:143
+#: html/user/pm.php:137
 msgid "Date"
 msgstr "日期"
 
-#: ../user/pm.php:185
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
 msgstr "要发送私人消息,你必须填写所有字段"
 
-#: ../user/pm.php:188
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr "消息已发送"
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr "您的邮件已被发送给 %1 团队成员。"
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"你的消息已被 Akismet 防垃圾信息系统\n"
-"标记为垃圾信息,请修改你输入的内容并重试。"
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
+msgstr "您的邮件已被Akismet 反垃圾邮件系统标记为垃圾邮件。请修改您的文本,然后再试一次。"
 
-#: ../user/pm.php:205
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr "无法找到用户ID为 %1 的用户"
 
-#: ../user/pm.php:210
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr "无法找到用户名为 %1 的用户"
 
-#: ../user/pm.php:212
+#. Non-unique username
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
 msgstr "因为 %1 不是唯一的用户名,你将只能使用用户ID"
 
-#: ../user/pm.php:217
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr "用户 %1(ID 为 %2)已禁止接受你的私人消息。"
 
-#: ../user/pm.php:240 ../user/view_profile.php:26
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr "没有这个用户"
 
-#: ../user/pm.php:242
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr "确定要阻止 %1 吗?"
 
-#: ../user/pm.php:243
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
 msgstr "你确定要阻止用户 %1 向你发送私人消息吗?"
 
-#: ../user/pm.php:244
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
 msgstr "请注意你只有阻止有限数量的用户。"
 
-#: ../user/pm.php:245
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
 msgstr "一旦该用户被你阻止,你可以在论坛的参数设置页面中解除该阻止。"
 
-#: ../user/pm.php:252
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr "不,取消"
 
-#: ../user/pm.php:260 ../user/team_admins.php:98
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr "没有这个用户"
 
-#: ../user/pm.php:263
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr "用户 %1 已被阻止"
 
-#: ../user/pm.php:265
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
 msgstr "用户 %1 已被阻止向你发送私人消息。"
 
-#: ../user/pm.php:266
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
 msgstr "要解除阻止,请访问 %1留言板的参数设置%2"
 
-#: ../user/pm.php:302
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr "未知的操作"
 
-#: ../user/prefs.php:32
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1(用于%2)"
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "返回参数设置"
+
+#: html/user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"你的参数设置已经更新\n"
-"\t      将在你的计算机与%1进行通讯的时候生效\n"
-"\t      或者你也可以直接执行 BOINC 客户端里的%2更新%3命令。"
+msgstr "你的参数设置已经更新\n\t      将在你的计算机与%1进行通讯的时候生效\n\t      或者你也可以直接执行 BOINC 客户端里的%2更新%3命令。"
 
-#: ../user/prefs.php:41
+#: html/user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"你的偏好设置已经复位为缺省值\n"
-"这将在您的计算机与%1通信时生效\n"
-"或者你可以直接使用BOINC客户端的%2更新%3命令。"
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1(用于%2)"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "返回参数设置"
+msgstr "你的偏好设置已经复位为缺省值\n这将在您的计算机与%1通信时生效\n或者你可以直接使用BOINC客户端的%2更新%3命令。"
 
-#: ../user/prefs_remove.php:45
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr "确认删除参数设置"
 
-#: ../user/prefs_remove.php:48
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr "你确定要删除%1参数设置(用于%2)吗?"
 
-#: ../user/prefs_remove.php:52
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr "移除参数设置"
 
-#: ../user/prefs_remove.php:54
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr "取消"
 
-#: ../user/profile_menu.php:35
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
 msgstr "通过 %1用户档案%2 志愿者可以和 %3 社区分享他的背景和观点。"
 
-#: ../user/profile_menu.php:36
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
 msgstr "可以了解其他志愿者的想法,也可以让他人看到你分享的观点。"
 
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
 msgstr "如果你还没有用户档案的话,你现在就可以%1创建属于你自己的用户档案了%2!"
 
-#: ../user/profile_menu.php:42
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
 msgstr "每日用户"
 
-#: ../user/profile_menu.php:57
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr "使用用户档案浏览器"
 
-#: ../user/profile_menu.php:60
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr "查看%1用户图片库%2。"
 
-#: ../user/profile_menu.php:61
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr "%1按国家或地区%2浏览用户档案。"
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
 msgstr "%1随机地浏览所有用户档案%2,%3随机地浏览带图片的用户档案%2,或者%4随机地浏览不带图片%2的用户档案。"
 
-#: ../user/profile_menu.php:66
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr "按字母表顺序的用户档案列表:"
 
-#: ../user/profile_menu.php:72
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr "搜索用户档案文本"
 
-#: ../user/profile_menu.php:98
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr "没有用户档案"
 
-#: ../user/profile_menu.php:99
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr "没有用户档案符合你的查询条件。"
 
-#: ../user/profile_rate.php:29
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr "错误的投票类型:"
 
-#: ../user/profile_rate.php:34
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr "投票已记录"
 
-#: ../user/profile_rate.php:38
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr "非常感谢"
 
-#: ../user/profile_rate.php:41
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr "你的推荐已经被记录下来。"
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr "你对该用户档案的反感已经被记录下来。"
 
-#: ../user/profile_rate.php:46
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr "返回用户档案。"
 
-#: ../user/profile_search_action.php:36
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr "包含'%1'的个人档案"
 
-#: ../user/profile_search_action.php:40
+#: html/user/profile_search_action.php:42
 msgid "User name"
 msgstr "用户名称"
 
-#: ../user/profile_search_action.php:41
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
 msgstr "加入的项目"
 
-#: ../user/profile_search_action.php:44
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr "近期平均积分"
 
-#: ../user/profile_search_action.php:54
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr "没有找到包含'%1'的个人档案"
 
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "任务 %1"
+#: html/user/result.php:33
+msgid "No such task:"
+msgstr "此任务不存在:"
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr "该特性已临时被关闭"
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr "找不到 ID 为 %1 的计算机"
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr "无法访问"
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
 msgstr "用户 ID 或 主机 ID 丢失"
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr "没有任务可以显示"
 
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "运行中"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr "%1临时关闭进行维护。"
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr "%1 是什么?"
 
-#: ../user/server_status.php:100
+#: html/user/sample_index.php:117
+msgid "News"
+msgstr "新闻"
+
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr "未运行"
 
-#: ../user/server_status.php:103
+#: html/user/server_status.php:61
+msgid "Running"
+msgstr "运行中"
+
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr "已禁用"
 
-#: ../user/server_status.php:231
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr "项目状态"
 
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "服务端软件版本:%1"
-
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr "程序"
 
-#: ../user/server_status.php:241
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr "主机"
 
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "数据驱动的网页"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "上传/下载服务器"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "调度程序"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "运行中:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "程序当前运行正常"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "未运行:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "程序出错或者项目已停机"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "已禁用:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "程序已禁用"
-
-#: ../user/server_status.php:303
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr "计算状态"
 
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "数据库服务器当前无法访问"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "准备分发的任务"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "任务处理中"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "等待验证的任务"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "等待回收的任务"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "等待删除的任务"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "等待删除的任务"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "服务端事务积压(小时)"
-
-#: ../user/server_status.php:374
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr "用户"
 
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "近期得到过积分的"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "得到过积分的"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "过去 24 小时内注册的"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "当前处理能力(GFLOPs)"
-
-#: ../user/server_status.php:420
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr "按计算程序分类的任务"
 
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "计算程序"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "未发送的"
+#: html/user/server_status.php:167
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "最后 100 项任务的运行时间(以小时为单位): 平均时间,最短时间,最长时间"
 
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "计算中"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "最近 100 个计算结果的平均处理时间(单位:小时)"
+#: html/user/server_status.php:168
+msgid "Users in last 24 hours"
+msgstr "在过去的 24 小时中的用户"
 
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "最近 24 小时的用户"
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr "数据库架构版本:"
 
-#: ../user/show_host_detail.php:40
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr "计算机 %1"
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr "统计信息和排行榜"
 
-#: ../user/stats.php:28
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr "%1 的统计信息"
 
-#: ../user/stats.php:37
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/stats.php:32 html/user/top_users.php:109
+msgid "Top participants"
+msgstr "用户排名"
+
+#: html/user/stats.php:40 html/user/team.php:47
+msgid "Top teams"
+msgstr "团队排名"
+
+#: html/user/stats.php:47
+msgid "Top computers"
+msgstr "主机排名"
+
+#: html/user/stats.php:53
 msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
 msgstr "下列几个网站可以查询到关于 %1 和其它 BOINC 项目的更详细的统计信息:"
 
-#: ../user/stats.php:40
+#: html/user/stats.php:56
 msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
 msgstr "你还可以通过“签名图片”的形式得到你当前的统计信息:"
 
-#: ../user/stats.php:43
+#: html/user/stats.php:59
 msgid ""
 "Additionally you can get your individual statistics summed across all BOINC "
 "projects from several sites; see your %1home page%2."
 msgstr "另外,你还可以在你的 %1帐户主页面%2 中查看所有你参加的 BOINC 项目中的个人统计信息。"
 
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 的用户可以组成 %2团队%3"
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "你最多只能加入一个团队。你可以在任何时候加入或退出一个团队。"
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "每个团队都有一个 %1创建人%2,他可以:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "访问团队成员的电子邮件地址"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "编辑团队的名称及描述"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "增加或移除团队管理员"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "移除团队中的成员"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "解散没有成员的团队"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "要加入一个团队,请访问该团队的页面并点击 %1加入该团队%2。"
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "寻找团队"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "所有团队"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 团队"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "创建新团队"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "如果你找不到适合你的团队,你可以 %1创建一个团队%2。"
-
-#: ../user/team_admins.php:34
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr "从该成员移除团队管理员状态"
 
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr "增加或移除团队管理员"
 
-#: ../user/team_admins.php:41
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
 msgstr "你可以将部分团队成员设置为“团队管理员”,团队管理员可以:"
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr "编辑团队信息(名称,网址,描述,国家地区)"
 
-#: ../user/team_admins.php:44
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr "查看团队的成员加入退出历史"
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr "向团队发送消息"
+
+#: html/user/team_admins.php:48
 msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
 msgstr "管理团队论坛(团队管理员会得到管理事件和报告的电子邮件通知)"
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr "团队管理员不可以:"
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr "改变团队创建人"
 
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr "移除团队成员"
 
-#: ../user/team_admins.php:53
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
 msgstr "如果团队管理员退出团队,其团队管理员的角色同时取消。"
 
-#: ../user/team_admins.php:54
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
 msgstr "我们建议你只选择自己了解或信任的成员作为团队管理员。"
 
-#: ../user/team_admins.php:59
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr "目前没有团队管理员"
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr "当前的团队管理员"
 
-#: ../user/team_admins.php:62
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr "成为团队管理员"
 
-#: ../user/team_admins.php:77
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr "增加团队管理员"
 
-#: ../user/team_admins.php:78
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr "团队成员的电子邮箱地址:"
 
-#: ../user/team_admins.php:90
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr "移除管理员时出错"
 
-#: ../user/team_admins.php:99
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr "用户不是团队成员"
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr "%1 已经是 %2 的管理员"
 
-#: ../user/team_admins.php:105
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr "不能增加管理员"
 
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30
+#: html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr "没有匹配的团队"
 
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr "没有匹配的团队"
 
-#: ../user/team_change_founder_action.php:38
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr "用户不是 %1 的成员"
 
-#: ../user/team_change_founder_action.php:41
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr "正在改变 %1 的创建人"
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr "%1 现在是 %2 的创建人了"
 
-#: ../user/team_change_founder_form.php:37
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr "改变 %1 的创建人"
 
-#: ../user/team_change_founder_form.php:43
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
 msgstr "团队成员 %1 在请求 %2 的创建人资格之后退出了团队,请求自动取消。"
 
-#: ../user/team_change_founder_form.php:49
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
 msgstr "团队成员 %1 请求了这个团队的创建人资格,这可能是因为你离开过团队或者有较长时间没有和团队联系。"
 
-#: ../user/team_change_founder_form.php:55
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr "拒绝请求"
 
-#: ../user/team_change_founder_form.php:58
+#: html/user/team_change_founder_form.php:60
 msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"如果你不拒绝 %1 的请求,%2 将可以得到团队创建人的资格。<br /><br />\n"
-"                  如果要接受请求,并将创建人资格授予 %3,请使用下面的表单。"
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "如果你不拒绝 %1 的请求,%2 将可以得到团队创建人的资格。<br /><br />\n                  如果要接受请求,并将创建人资格授予 %3,请使用下面的表单。"
 
-#: ../user/team_change_founder_form.php:66
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr "目前没有等待处理的团队创建人转换请求。"
 
-#: ../user/team_change_founder_form.php:69
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "要将团队的创建人资格授予另一位成员,请先选中成员名旁边的选择框,然后点击下面的<strong>更改创建人</strong>。"
+"member name and click %1Change founder%2 below."
+msgstr "要将团队的创建人资格授予另一位成员,请先选中成员名旁边的选择框,然后点击下面的%1更改创建人%2。"
 
-#: ../user/team_change_founder_form.php:76
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr "新的团队创建人?"
 
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr "更改团队创建人"
 
-#: ../user/team_change_founder_form.php:108
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
 msgstr "目前没有用户更换了团队。"
 
-#: ../user/team_create_action.php:29
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr "你必须选择一个非空的团队名称"
 
-#: ../user/team_create_action.php:34
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr "名为 %1 的团队已经存在 - 请尝试其它的名称"
 
-#: ../user/team_create_action.php:54
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
 msgstr "无法创建团队 - 请稍后再试。"
 
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr "创建一个团队"
 
-#: ../user/team_create_form.php:30
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
 msgstr "你当前加入了 %1,你在创建新团队之前必须先 %2退出这个团队%3。"
 
-#: ../user/team_delta.php:65
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr "没有创建人或团队管理员"
 
-#: ../user/team_delta.php:72
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr "%1 的团队历史"
 
-#: ../user/team_delta.php:75
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr "时间"
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr "用户"
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr "行为"
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr "当时的总积分"
 
-#: ../user/team_edit_action.php:53
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr "国家地区信息错误"
 
-#: ../user/team_edit_action.php:59
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr "名称“%1”已经被其它团队使用。"
 
-#: ../user/team_edit_action.php:62
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr "必须指定团队名称"
 
-#: ../user/team_edit_action.php:90
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr "无法更新团队 - 请稍后再试。"
 
-#: ../user/team_edit_form.php:33
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr "编辑 %1"
 
-#: ../user/team_edit_form.php:34
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr "更新团队信息"
 
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 邮件列表"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
+msgstr "%1 的成员"
 
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "%1 的成员列表"
+#: html/user/team_email_list.php:75
+msgid "ID"
+msgstr "ID"
 
-#: ../user/team_email_list.php:78
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr "显示为纯文本"
 
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr "创建留言板"
 
-#: ../user/team_forum.php:29
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr "你可以创建一个仅供 %1 使用的留言板。"
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr "只有团队成员可以发贴。"
 
-#: ../user/team_forum.php:32
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr "还可以设置是否只允许团队成员进行阅读。"
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr "你和你的团队管理员拥有管理权限。"
 
-#: ../user/team_forum.php:40
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr "创建一个 %1 的留言板"
 
-#: ../user/team_forum.php:48
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr "团队已经拥有留言板了"
 
-#: ../user/team_forum.php:59
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr "团队留言板"
 
-#: ../user/team_forum.php:71
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr "最小发贴间隔(秒)"
 
-#: ../user/team_forum.php:74
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
 msgstr "发贴要求的最低总积分"
 
-#: ../user/team_forum.php:77
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
 msgstr "发贴要求的最低平均积分"
 
-#: ../user/team_forum.php:80
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr "提交"
 
-#: ../user/team_forum.php:89
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr "移除团队的留言板"
 
-#: ../user/team_forum.php:97
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr "确定要移除留言板吗?"
 
-#: ../user/team_forum.php:98
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
 msgstr "你确定要移除你所在团队的留言板吗?所有的主题和回帖将永久被删除。(当然,你随后还可以重新创建一个新的留言板。)"
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr "是的 - 请移除留言板"
 
-#: ../user/team_forum.php:121
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr "留言板已被移除"
 
-#: ../user/team_forum.php:124
+#: html/user/team_forum.php:132
 msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
 msgstr "你的团队留言板已被移除,你现在可以%1创建一个新的留言板%2。"
 
-#: ../user/team_forum.php:143
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr "团队留言板已更新"
 
-#: ../user/team_forum.php:144
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr "更新成功"
 
-#: ../user/team_forum.php:147
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr "更新失败"
 
-#: ../user/team_forum.php:154
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr "团队没有论坛"
 
-#: ../user/team_founder_transfer_action.php:36
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr "只有团队的成员可以访问该页面。"
 
-#: ../user/team_founder_transfer_action.php:90
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr "正在请求 %1 的创建人资格"
 
-#: ../user/team_founder_transfer_action.php:98
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"你的请求已经通过电子邮件和私人消息通知到了当前的创建人。<br /><br />\n"
-"                       如果该创建人在 60 天没有回应,你就可以成为创建人了。"
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "你的请求已经通过电子邮件和私人消息通知到了当前的创建人。<br /><br />\n                       如果该创建人在 60 天没有回应,你就可以成为创建人了。"
 
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
 msgstr "现在不允许请求创建人资格"
 
-#: ../user/team_founder_transfer_action.php:109
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr "得到 %1 的创建人资格"
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
 msgstr "恭喜,你已经是 %1 的创建人了!请在%2你的帐户页面%3使用团队管理功能。"
 
-#: ../user/team_founder_transfer_action.php:120
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr "拒绝创建人更改请求"
 
-#: ../user/team_founder_transfer_action.php:127
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr "来自 %1 的创建人请求已经被拒绝。"
 
-#: ../user/team_founder_transfer_action.php:130
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr "目前没有创建人请求。"
 
-#: ../user/team_founder_transfer_action.php:134
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr "未定义行为 %1"
 
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr "返回团队页面"
 
-#: ../user/team_founder_transfer_form.php:28
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr "只有团队的成员可以访问该页面。"
 
-#: ../user/team_founder_transfer_form.php:31
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr "请求 %1 的创建人资格"
 
-#: ../user/team_founder_transfer_form.php:38
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr "你已经是 %1 的创建人。"
 
-#: ../user/team_founder_transfer_form.php:44
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr "你已经请求了 %1 的创建人资格(时间:%2)。"
 
-#: ../user/team_founder_transfer_form.php:47
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
 msgstr "原创建人在 60 天内都没有回应你的请求,你现在可以点击这里来得到创建人资格:"
 
-#: ../user/team_founder_transfer_form.php:50
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr "得到创建人资格"
 
-#: ../user/team_founder_transfer_form.php:54
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
 msgstr "你的请求已经通知到了创建人,如果他/她到 %1 都没有回应的话,你将可以选择成为新的创建人。"
 
-#: ../user/team_founder_transfer_form.php:60
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
 "                       Are you sure you want to request foundership?"
-msgstr ""
-"如果你将得到团队创建人的资格(因为当前的创建人不活跃等原因),请点击下面的按钮。你的请求将通过电子邮件通知到当前的创建人,他/她可以将创建人资格转移给你"
-"或者拒绝你的请求。如果他/她在 60 天内都没有回应,你就可以得到创建人的资格。<br /><br />\n"
-"                      你确定想要请求创建人资格吗?"
+msgstr "如果你将得到团队创建人的资格(因为当前的创建人不活跃等原因),请点击下面的按钮。你的请求将通过电子邮件通知到当前的创建人,他/她可以将创建人资格转移给你或者拒绝你的请求。如果他/她在 60 天内都没有回应,你就可以得到创建人的资格。<br /><br />\n                      你确定想要请求创建人资格吗?"
 
-#: ../user/team_founder_transfer_form.php:65
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr "请求创建人资格"
 
-#: ../user/team_founder_transfer_form.php:74
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr "%1 已经在 %2 请求了创建人更改。"
 
-#: ../user/team_founder_transfer_form.php:77
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
 msgstr "因为过去 90 天已经有过程创建人资格更改请求,目前不允许发起新的请求,请稍后再试。"
 
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr "团队 %1 不允许加入。"
 
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr "已经是团队成员"
 
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr "你已经是 %1 的成员了。"
 
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "无法加入团队 - 请稍后再试。"
-
-#: ../user/team_join_action.php:40
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
 msgstr "已加入 %1"
 
-#: ../user/team_join_action.php:41
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr "你已经加入了 %1。"
 
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "加入 %1"
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
+msgstr "无法加入团队 - 请稍后再试。"
 
-#: ../user/team_join_form.php:33
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr "请注意:"
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
 msgstr "加入团队后,团队的创建人将可以看到你的电子邮箱地址。"
 
-#: ../user/team_join_form.php:36
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr "加入团队对你的帐户积分没有影响。"
 
-#: ../user/team_join_form.php:43
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr "加入团队"
 
-#: ../user/team_lookup.php:84
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr "搜索结果"
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr "“%1”的搜索结果"
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
 msgstr "你可以查看这些团队的成员,统计以及其它信息。"
 
-#: ../user/team_lookup.php:98
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
 msgstr "超过 100 个的团队符合你的搜索条件,现在只显示了前 100 个。"
 
-#: ../user/team_lookup.php:104
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
 msgstr "上面是所有的搜索结果。%1如果没找到合适的团队,你也可以自己%2创建一个团队%3。"
 
-#: ../user/team_manage.php:26
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr "%1 的团队管理"
 
-#: ../user/team_manage.php:29
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr "编辑团队信息"
 
-#: ../user/team_manage.php:30
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr "改变团队名称,网址,描述,类型或者国家地区"
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr "成员列表:"
 
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr "HTML"
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr "文本"
 
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "查看成员名称和电子邮箱地址"
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
+msgstr "XML"
+
+#: html/user/team_manage.php:39
+msgid "View member info"
+msgstr "查看成员信息"
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:40
 msgid "View change history:"
 msgstr "查看更改历史:"
 
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
 msgstr "查看成员加入或离开团队的时间"
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr "回应创建人资格请求。"
 
-#: ../user/team_manage.php:50
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
 msgstr "如果你到 %1 都不回应,%2 将可以得到这个团队的创建人资格。"
 
-#: ../user/team_manage.php:55
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr "从团队中移除不活跃或不喜欢的成员"
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr "将创建人资格转移给其他成员"
 
-#: ../user/team_manage.php:58
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr "增加/移除团队管理员"
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
 msgstr "将团队管理员权限授予选中的团队成员"
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr "移除团队"
 
-#: ../user/team_manage.php:62
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr "只能在团队没有成员的时候进行该操作"
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr "创建或管理团队留言板"
 
-#: ../user/team_manage.php:71
+#: html/user/team_manage.php:75
 msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
 msgstr "如果想在所有的 BOINC 项目(当前在运行的和以后可能会有的)中都创建这个团队,你可以将它转变为一个%1BOINC-wide 团队%2。"
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
 msgstr "建议所有团队管理员都加入和参加到 Google 的 %1boinc-team-founders%2 讨论组中。"
 
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr "BOINC 团队管理员还可以从一个第三方网站得到其它相关资源:%1www.boincteams.com%2。"
-
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr "不能删除非空团队"
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr "团队 %1 已删除"
 
-#: ../user/team_members.php:36
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr "超出限制:只能显示前 1000 名成员。"
 
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "%1 的成员"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 的用户可以组成 %2团队%3"
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "你最多只能加入一个团队。你可以在任何时候加入或退出一个团队。"
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "每个团队都有一个 %1创建人%2,他可以:"
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr "编辑团队的名称及描述"
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr "增加或移除团队管理员"
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr "移除团队中的成员"
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr "解散没有成员的团队"
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "要加入一个团队,请访问该团队的页面并点击 %1加入该团队%2。"
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr "寻找团队"
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr "所有团队"
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr "%1 团队"
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr "创建新团队"
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "如果你找不到适合你的团队,你可以 %1创建一个团队%2。"
 
-#: ../user/team_quit_action.php:32
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr "不能退出团队"
 
-#: ../user/team_quit_action.php:33
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr "团队不存在,或者你属于该团队。"
 
-#: ../user/team_quit_form.php:31
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr "退出 %1"
 
-#: ../user/team_quit_form.php:32
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>退出团队前请注意:</strong>\n"
-"         <ul>\n"
-"         <li>如果你退出一个团队,你还可以重新加入,或者也可以加入其它团队。\n"
-"         <li>退出团队无论如何都不会影响你的个人积分。\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
 "         </ul>"
+msgstr "<strong>退出团队前请注意:</strong>\n         <ul>\n         <li>如果你退出一个团队,你还可以重新加入,或者也可以加入其它团队。\n         <li>退出团队无论如何都不会影响你的个人积分。\n         </ul>"
 
-#: ../user/team_quit_form.php:40
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr "退出团队"
 
-#: ../user/team_remove_inactive_action.php:31
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr "从 %1 中移除用户"
 
-#: ../user/team_remove_inactive_action.php:39
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr "%1 不是 %2 的成员"
 
-#: ../user/team_remove_inactive_action.php:42
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr "%1 已被移除"
 
-#: ../user/team_remove_inactive_form.php:32
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr "从 %1 移除成员"
 
-#: ../user/team_remove_inactive_form.php:39
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr "移除?"
 
-#: ../user/team_remove_inactive_form.php:40
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr "名称(ID)"
 
-#: ../user/team_remove_inactive_form.php:65
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr "没有任何成员符合移除的条件。"
 
-#: ../user/team_remove_inactive_form.php:68
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr "移除用户"
 
-#: ../user/team_search.php:68
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr "团队名称"
 
-#: ../user/team_search.php:92
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr "经过验证吗?"
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr "团队搜索结果"
 
-#: ../user/team_search.php:94
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
 msgstr "没有任何团队符合你的查询条件,请试试其它查询条件。"
 
-#: ../user/team_search.php:96
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr "或者你也可以%1创建一个新团队%2。"
 
-#: ../user/team_search.php:100
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
-msgstr ""
-"下面的团队符合一个或多个你的查询条件。\n"
-"            要加入一个团队,点击名称后即可进入团队页面,\n"
-"               然后点击%1加入该团队%2即可。"
+msgstr "下面的团队符合一个或多个你的查询条件。\n            要加入一个团队,点击名称后即可进入团队页面,\n               然后点击%1加入该团队%2即可。"
 
-#: ../user/team_search.php:107
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr "修改你的搜索条件"
 
-#: ../user/team_search.php:181
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
 msgstr "你可以和其他有相同兴趣,或来自同一个国家地区、公司以及学校的用户组成一个团队。"
 
-#: ../user/team_search.php:183
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
 msgstr "使用该表单来寻找可能适合你的团队。"
 
-#: ../user/team_search.php:188
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr "我现在对加入团队%1没兴趣%2。"
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr "超出限制 - 对不起,仅显示前 %1 个条目"
 
-#: ../user/top_hosts.php:82
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr "主机排名"
 
-#: ../user/top_teams.php:105
+#. Now display what we've got (either gotten from cache or from DB)
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr "%s 团队排名"
 
-#: ../user/top_teams.php:108
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr "没有 %1 团队"
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr "参加时间"
 
-#: ../user/uotd.php:29
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr "还未选择每日用户。"
 
-#: ../user/uotd.php:33
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr "%1 的每日用户:%2"
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr "过滤器"
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr "用户名称以什么开头"
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr "任何"
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr "拥有用户档案?"
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr "任选其一"
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr "已加入团队?"
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr "排序"
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr "按注册时间降序"
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr "按近期平均积分降序"
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr "按总积分降序"
 
-#: ../user/user_search.php:100
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr "搜索字符串至少应包含三个字符"
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr "用户搜索结果"
 
-#: ../user/user_search.php:140
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr "已加入"
 
-#: ../user/user_search.php:148
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr "没有任何用户符合你的搜索条件。"
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr "未找到用户!"
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr "帐户数据<br/>关于 %1<br/>时间:"
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr "团队:"
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr "团队总积分:"
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr "团队平均积分:"
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr "团队:无"
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr "验证 BOINC 电子邮箱地址"
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
 msgstr "请访问下面的链接以验证你在 %1 的帐户所关联的电子邮箱地址:"
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr "验证邮件已发送"
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
 msgstr "一封电子邮件已经发送到了 %1,请访问其中包含的超链接以验证你的电子邮箱地址。"
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr "没有匹配的用户。"
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
 msgstr "网址(URL)数据错误 - 无法验证电子邮箱地址"
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
 msgstr "数据库更新失败 - 请稍后再试。"
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
 msgstr "验证电子邮箱地址"
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr "你的帐户所关联的电子邮箱地址已通过验证。"
 
-#: ../user/view_profile.php:36
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr "该用户未建立档案"
 
-#: ../user/view_profile.php:54
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr "用户档案:%1"
 
-#: ../user/view_profile.php:63
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr "帐户数据"
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
+"You can access your account either by using your email address and password,\n"
 "    or by using an assigned 'account key'.\n"
 "    Your account key is:"
-msgstr ""
-"你可以使用你的电子邮箱地址和口令来访问你的账户,\n"
-"    或者也可以使用一个分配好的“账户密钥”。\n"
-"    你的账户密钥是:"
+msgstr "你可以使用你的电子邮箱地址和口令来访问你的账户,\n    或者也可以使用一个分配好的“账户密钥”。\n    你的账户密钥是:"
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr "这个密钥能被用于:"
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr "登录你在项目网站上的帐户"
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
 "       create a file named %1 in the BOINC\n"
 "       data directory, and set its contents to:"
-msgstr ""
-"在不借助 BOINC Manager 的情况下添加一台计算机到你的账户,方法如下。\n"
-"       先安装 BOINC,\n"
-"       然后在 BOINC 的数据目录下创建名称为 %1 的文件,\n"
-"       然后设置文件的内容为:"
+msgstr "在不借助 BOINC Manager 的情况下添加一台计算机到你的账户,方法如下。\n       先安装 BOINC,\n       然后在 BOINC 的数据目录下创建名称为 %1 的文件,\n       然后设置文件的内容为:"
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr "弱帐户密钥"
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
 "    If you want to attach untrusted or insecure computers to your account,\n"
 "    do so using your weak account key.\n"
 "    Your weak account key is:"
-msgstr ""
-"你的“弱账户密钥”能用来为你的账户添加计算机\n"
-"    但不能被用于登录你在项目网站上的账户或修改该账户。\n"
-"    如果你想为你的账户添加不被信任的或不安全的计算机,\n"
-"    你就应该使用弱账户密钥。\n"
-"    你的弱账户密钥是:"
+msgstr "你的“弱账户密钥”能用来为你的账户添加计算机\n    但不能被用于登录你在项目网站上的账户或修改该账户。\n    如果你想为你的账户添加不被信任的或不安全的计算机,\n    你就应该使用弱账户密钥。\n    你的弱账户密钥是:"
 
-#: ../user/weak_auth.php:81
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
 msgstr "一旦你修改了登录口令,你的弱账户密钥将随之改变,而你之前的弱账户密钥也将失效。"
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr "找不到任务单元"
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr "任务单元 %1"
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:40
+msgid "application"
+msgstr "计算程序"
+
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr "规范结果"
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr "授予积分"
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "任务处理中"
+
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr "无法查看等待完成的情况"
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
 msgstr "最小验证集"
 
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr "初始任务拷贝"
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
 msgstr "最多允许的 错误/总/成功 任务拷贝数量"
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr "错误"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr "验证"
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr "等待中"
 
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "主页"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "版权所有"
-
-#: ../project.sample/project.inc:48
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr "生成时间"
 
-#: ../project.sample/project.inc:79
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
 msgstr "你的个人背景。"
 
-#: ../project.sample/project.inc:83
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
 msgstr "简单介绍一下你自己,比如从哪里来,年龄,职业,兴趣爱好,或者其它任何事情。"
 
-#: ../project.sample/project.inc:87
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr "你对 %1 的看法"
 
-#: ../project.sample/project.inc:91
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
 "    <li>What are your views about the project?\n"
 "    <li>Any suggestions?\n"
 "    </ol>"
-msgstr ""
-"告诉我们你对 %1 的走法<ol>\n"
-"    <li>你为什么运行 %1?\n"
-"    <li>你对这个项目的观点是什么?\n"
-"    <li>有什么建议吗?\n"
-"    </ol>"
+msgstr "告诉我们你对 %1 的想法<ol>\n    <li>你为什么运行 %1?\n    <li>你对这个项目的观点是什么?\n    <li>有什么建议吗?\n    </ol>"
 
-#: ../project.sample/project_specific_prefs.inc:47
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr "图像的色彩方案"
 
-#: ../project.sample/project_specific_prefs.inc:48
+#: html/project.sample/project_specific_prefs.inc:59
+#, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr "显示图像时最多可以使用的 CPU 资源%10 ... 100%2"
 
-#: ../project.sample/project_specific_prefs.inc:49
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr "仅运行选中的计算程序"
 
-#: ../project.sample/project_specific_prefs.inc:50
+#: html/project.sample/project_specific_prefs.inc:61
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "只接受使用特定计算程序的任务。用于关注特定的计算程序,或者排除它们。"
+
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
 msgstr "如果选中的计算程序暂时没有计算任务,是否从其它计算程序接收任务?"
 
-#: ../project.sample/project_specific_prefs.inc:91
+#: html/project.sample/project_specific_prefs.inc:63
+msgid "Use faster non-graphical applications if available?"
+msgstr "是否使用更快的非图形化计算程序(如果可用)?"
+
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr "(所有计算程序)"
 
-#~ msgid "Error:"
-#~ msgstr "错误:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "账号创建功能已被禁用"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "对不起,该项目当前已经禁止创建新账户。\n"
-#~ "请稍后重试。"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "新帐户创建功能当前已暂停,请以后再试。"
-
-#~ msgid "nvidia GPU"
-#~ msgstr "NVIDIA GPU"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr "该项目尚未创建过电子邮件消息,请联系项目管理员"
-
-#, fuzzy
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "使用 ATI GPU%16.10 之后的版本实现了该设置%2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "此处的参数设置对你参加的所有 BOINC 项目均有效。<br>\n"
-#~ "             如果一台计算机参加了多个项目,以最近修改过的参数设置为准。"
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "将该新闻条目导出为通知"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "访问你计算机上的 BOINC 数据目录(Windows 系统上一般是 <b>C:\\Documents and Settings\\All "
-#~ "Users\\Application Data\\BOINC</b> 或者 <b>C:\\Program Files\\BOINC</b>)。"
-
-#~ msgid "No such task"
-#~ msgstr "没有这个任务"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work "
-#~ "(max 10 days). %3"
-#~ msgstr ""
-#~ "计算机连接互联网的时间间隔%1留空或 0 即表示一直在线。%2 BOINC 将根据该设定"
-#~ "值决定在本地缓存多少计算任务(最多十天)。%3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "维护足够的任务缓存"
-
-#~ msgid "Update failed: "
-#~ msgstr "更新失败:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "仅可以%1部分访问%2你的帐户"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an "
-#~ "email address and password."
-#~ msgstr ""
-#~ "请不要使用这个表单。在 BOINC Manager 内选择“加入项目”,然后输入电子邮件地"
-#~ "址并设置一个用户口令就可以了。"
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "不要对置顶的帖子进行重新排序"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "如果主题中包含的帖子数量超过了"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "只显示第一篇和最近的多少篇"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "举报已经被记录下来,感谢你的参与。"
-
-#~ msgid "Search type"
-#~ msgstr "搜索类型"
-
-#~ msgid "User names starting with"
-#~ msgstr "用户名称以什么开头"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any "
-#~ "way."
-#~ msgstr ""
-#~ "'弱帐户密钥'仅用于在客户端加入项目,而不能用来登录并修改你在项目网站上的帐"
-#~ "户。"
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr "该机制只对于那些已更新至2007年12月7日版本服务端软件的项目才有效。"
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "你在本项目的弱帐户密钥为:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "要在指定的主机上使用你的弱帐户密钥,得先找到或创建相应项目的'帐户文件',该"
-#~ "文件的名称类似于 <b>account_项目网址.xml</b>。%1 的帐户文件为 <b>%2</b>。"
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "根据需要创建该文件,并将其内容设置为:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account "
-#~ "key becomes invalid."
-#~ msgstr ""
-#~ "弱帐户密钥是根据你的帐户用户口令计算而来。如果你修改了你的帐户用户口令,你"
-#~ "的弱帐户密钥也随之改变,你之前的弱帐户密钥将失效。"
-
-#~ msgid "Account key"
-#~ msgstr "帐户密钥"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "可用于完全访问你的帐户"
-
-#~ msgid "Export"
-#~ msgstr "导出"
-
-#~ msgid "- private message"
-#~ msgstr "- 私人消息"
-
-#~ msgid "Private message from"
-#~ msgstr "私人消息,来自"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "电子邮件地址验证中"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "已登录为 %1。"
-
-#~ msgid "Log in as someone else."
-#~ msgstr "用其他用户来登录。"
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr "ID 为 %1 的主题不存在,请检查网址是否正确并重试。"
-
-#~ msgid "Request not found"
-#~ msgstr "无法找到请求"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 想要加你为好友。"
-
-#~ msgid "Account data for %1"
-#~ msgstr "%1 的帐户数据"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "无法创建留言板"
-
-#~ msgid "message board not found"
-#~ msgstr "没找到留言板"
-
-#~ msgid "no such forum"
-#~ msgstr "没有匹配的论坛"
-
-#~ msgid "unknown command %1"
-#~ msgstr "未知命令 %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "错误:%1不存在!不能创建组合框。<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "为保护我们网站不被垃圾信息破坏,我们请求你输入下面图片中的两个单词:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC 客户端版本"
-
-#~ msgid "Client detached"
-#~ msgstr "客户端已退出项目"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "每 CPU 单日最大任务限额"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/天"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "匿名平台 - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "匿名平台 - NVIDIA CPU"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "匿名平台 - ATI GPU"
-
-#~ msgid "Task ID"
-#~ msgstr "任务 ID"
-
-#~ msgid "Granted credit"
-#~ msgstr "授予积分"
-
-#~ msgid "Click to"
-#~ msgstr "点击以"
-
-#~ msgid "Do work only between the hours of"
-#~ msgstr "仅在指定的时间段进行计算"
-
-#~ msgid "(no restriction if equal)"
-#~ msgstr "(如果相同则表示不限制)"
-
-#~ msgid "Use at most"
-#~ msgstr "最多使用"
-
-#~ msgid "percent of CPU time"
-#~ msgstr "CPU 时间的百分比"
-
-#~ msgid "Leave at least"
-#~ msgstr "至少保留"
-
-#~ msgid "(Values smaller than %s are ignored)"
-#~ msgstr "(小于 %s 的设定值将被忽略)"
-
-#~ msgid "% of total disk space"
-#~ msgstr "总磁盘空间的百分比"
-
-#~ msgid "% of page file (swap space)"
-#~ msgstr "页面文件(交换空间)的百分比"
-
-#~ msgid "% of memory when computer is in use"
-#~ msgstr "内存的百分比(计算机在使用时)"
-
-#~ msgid "% of memory when computer is not in use"
-#~ msgstr "内存的百分比(计算机未在使用时)"
-
-#~ msgid "Use ATI GPU if present %1(enforced by 6.10+ clients)%2"
-#~ msgstr "使用计算机上的 ATI GPU 进行计算%1(6.10 之后的版本实现了该设置)%2"
-
-#~ msgid "Use NVIDIA GPU if present %1(enforced by 6.10+ clients)%2"
-#~ msgstr ""
-#~ "使用计算机上的 NVIDIA GPU 进行计算%1(6.10 之后的版本实现了该设置)%2"
-
-#~ msgid "Use CPU %1(enforced by 6.10+ clients)%2"
-#~ msgstr "使用计算机上的 CPU 进行计算%1(6.10 之后的版本实现了该设置)%2"
-
-#~ msgid "KB/s"
-#~ msgstr "千字节/秒"
-
-#~ msgid "GB disk space"
-#~ msgstr "GB 磁盘空间"
-
-#~ msgid "GB disk space free"
-#~ msgstr "GB 空闲磁盘空间"
-
-#~ msgid "(no restriction)"
-#~ msgstr "(不限制)"
-
-#~ msgid "%1 GB disk space"
-#~ msgstr "%1 GB 磁盘空间"
-
-#~ msgid "%1 GB disk space free"
-#~ msgstr "%1 GB 空闲磁盘空间"
-
-#~ msgid ""
-#~ "Resource share %1If you participate in multiple BOINC projects, this is "
-#~ "the proportion of your resources used by %2%3"
-#~ msgstr "资源分享%1如果你参加了多个 BOINC 项目,这是 %2%3 可以使用的资源比例"
-
-#~ msgid "Gbytes"
-#~ msgstr "GB"
-
-#~ msgid "Gbytes free"
-#~ msgstr "GB 空闲"
-
-#~ msgid "Resource share"
-#~ msgstr "资源分享"
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr "无限制"
 
-#~ msgid "stderr out"
-#~ msgstr "标准错误输出"
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr "最多从此项目中获取#个运算任务"
 
-#~ msgid "This thread has been hidden for administrative purposes"
-#~ msgstr "该主题出于管理目的已被隐藏"
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr "最多允许#个CPU为此项目计算"
 
-#~ msgid "<p>"
-#~ msgstr "<p>"
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr "最多#个任务"
 
-#~ msgid "preferences"
-#~ msgstr "参数设置"
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr "最多#个CPU"
diff --git a/html/languages/translations/zh_TW.po b/html/languages/translations/zh_TW.po
new file mode 100644
index 0000000..31f0c5f
--- /dev/null
+++ b/html/languages/translations/zh_TW.po
@@ -0,0 +1,6516 @@
+# BOINC web translation
+# Copyright (C) 2008 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# FileID  : $Id$
+# 
+# Translators:
+# Died <doomdied at gmail.com>, 2015
+# Mingye Wang <arthur200126 at gmail.com>, 2015
+# Po-Chun Huang <aphroteus at gmail.com>, 2015
+# Willy Wu <df910105 at yahoo.com.tw>, 2015
+# Willy Wu <df910105 at yahoo.com.tw>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
+"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
+"Last-Translator: Mingye Wang <arthur200126 at gmail.com>\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/boinc/boinc/language/zh_TW/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "LANG_NAME_NATIVE"
+msgstr "繁體中文 (台灣)"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Traditional Chinese (Taiwan)"
+
+#: ../inc/account.inc:38
+msgid "Invitation Code"
+msgstr "邀請碼"
+
+#: ../inc/account.inc:38
+msgid "A valid invitation code is required to create an account."
+msgstr "建立帳號時需要一個正確的邀請碼。"
+
+#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
+#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
+#: ../user/account_finish.php:41 ../user/team_admins.php:64
+#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
+#: ../user/top_users.php:49 ../user/user_search.php:124
+msgid "Name"
+msgstr "用戶名"
+
+#: ../inc/account.inc:44 ../user/account_finish.php:41
+msgid "Identifies you on our web site. Use your real name or a nickname."
+msgstr "您在我們網站上的標識,可以使用您的真實姓名或是暱稱。"
+
+#: ../inc/account.inc:48
+msgid "Email Address"
+msgstr "電子郵件地址"
+
+#: ../inc/account.inc:48
+msgid "Must be a valid address of the form 'name at domain'."
+msgstr "必須是有效的電子郵件地址,例如:用戶名@域名。"
+
+#: ../inc/account.inc:57 ../user/edit_email_form.php:47
+msgid "Password"
+msgstr "密碼"
+
+#: ../inc/account.inc:58
+msgid "Must be at least %1 characters"
+msgstr "至少必須包含 %1 個字符"
+
+#: ../inc/account.inc:61
+msgid "Confirm password"
+msgstr "確認密碼"
+
+#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
+#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
+#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
+#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
+#: ../user/team_email_list.php:73 ../user/team_search.php:85
+#: ../user/top_users.php:63 ../user/user_search.php:53
+#: ../user/user_search.php:125
+msgid "Country"
+msgstr "國家"
+
+#: ../inc/account.inc:63 ../user/account_finish.php:45
+msgid "Select the country you want to represent, if any."
+msgstr "選擇您的國家。"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Postal or ZIP Code"
+msgstr "郵遞區號"
+
+#: ../inc/account.inc:70 ../user/account_finish.php:51
+msgid "Optional"
+msgstr "可選擇"
+
+#: ../inc/account.inc:86
+msgid "Create account"
+msgstr "建立帳號"
+
+#: ../inc/account.inc:101
+msgid "Email address:"
+msgstr "電子郵件地址:"
+
+#: ../inc/account.inc:103
+msgid "forgot email address?"
+msgstr "忘記了電子郵件地址?"
+
+#: ../inc/account.inc:106
+msgid "Password:"
+msgstr "密碼:"
+
+#: ../inc/account.inc:106
+msgid "forgot password?"
+msgstr "忘記密碼?"
+
+#: ../inc/account.inc:109
+msgid "Stay logged in"
+msgstr "保持登入狀態"
+
+#. kludge
+#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
+msgid "Log in"
+msgstr "登入"
+
+#: ../inc/bbcode_html.inc:11
+msgid "Bold text: [b]text[/b]  (alt+b)"
+msgstr "粗體:[b]文字[/b] (alt+b)"
+
+#: ../inc/bbcode_html.inc:14
+msgid "Italic text: [i]text[/i]  (alt+i)"
+msgstr "斜體:[i]文字[/i] (alt+i)"
+
+#: ../inc/bbcode_html.inc:17
+msgid "Underline text: [u]text[/u]  (alt+u)"
+msgstr "底線:[u]文字[/u] (alt+u)"
+
+#: ../inc/bbcode_html.inc:20
+msgid "Strikethrough text: [s]text[/s]  (alt+k)"
+msgstr "刪除線:[s]文字[/s] (alt+k)"
+
+#: ../inc/bbcode_html.inc:23
+msgid "Quote text: [quote]text[/quote]  (alt+q)"
+msgstr "引用:[quote]文字[/quote] (alt+q)"
+
+#: ../inc/bbcode_html.inc:26
+msgid "Code display: [code]code[/code]  (alt+c)"
+msgstr "代碼: [code]代碼[/code] (alt+c)"
+
+#: ../inc/bbcode_html.inc:29
+msgid "List: [list]text[/list] (alt+l)"
+msgstr "表格:[list]本文[/list] (alt+l)"
+
+#: ../inc/bbcode_html.inc:32
+msgid "Ordered list: [list=]text[/list]  (alt+o)"
+msgstr "排序表格:[list=]文字[/list] (alt+o)"
+
+#: ../inc/bbcode_html.inc:35
+msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
+msgstr "插入圖片:[img]圖片網址[/img] (alt+p)"
+
+#: ../inc/bbcode_html.inc:38
+msgid ""
+"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
+msgstr "插入連結:[url]連結[/url] 或 [url=連結]文字[/url] (alt+w)"
+
+#: ../inc/bbcode_html.inc:45
+msgid "Font color"
+msgstr "字體顏色"
+
+#: ../inc/bbcode_html.inc:46
+msgid ""
+"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
+msgstr "字體顏色:[color=red]文字[/color] 訣竅:你也可以用 #FF0000 來表示紅色"
+
+#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
+#: ../inc/prefs_util.inc:546
+msgid "Default"
+msgstr "預設"
+
+#: ../inc/bbcode_html.inc:48
+msgid "Dark Red"
+msgstr "深紅"
+
+#: ../inc/bbcode_html.inc:49
+msgid "Red"
+msgstr "紅"
+
+#: ../inc/bbcode_html.inc:50
+msgid "Orange"
+msgstr "橙"
+
+#: ../inc/bbcode_html.inc:51
+msgid "Brown"
+msgstr "棕"
+
+#: ../inc/bbcode_html.inc:52
+msgid "Yellow"
+msgstr "黃"
+
+#: ../inc/bbcode_html.inc:53
+msgid "Green"
+msgstr "綠"
+
+#: ../inc/bbcode_html.inc:54
+msgid "Olive"
+msgstr "橄欖"
+
+#: ../inc/bbcode_html.inc:55
+msgid "Cyan"
+msgstr "藍綠"
+
+#: ../inc/bbcode_html.inc:56
+msgid "Blue"
+msgstr "藍"
+
+#: ../inc/bbcode_html.inc:57
+msgid "Dark Blue"
+msgstr "深藍"
+
+#: ../inc/bbcode_html.inc:58
+msgid "Indigo"
+msgstr "靛藍"
+
+#: ../inc/bbcode_html.inc:59
+msgid "Violet"
+msgstr "紫"
+
+#: ../inc/bbcode_html.inc:60
+msgid "Font size"
+msgstr "字體大小"
+
+#: ../inc/bbcode_html.inc:61
+msgid "Font size: [size=x-small]small text[/size]"
+msgstr "字體大小:[size=x-small]文字[/size]"
+
+#: ../inc/bbcode_html.inc:63
+msgid "Small"
+msgstr "小"
+
+#: ../inc/bbcode_html.inc:64
+msgid "Normal"
+msgstr "正常"
+
+#: ../inc/bbcode_html.inc:65
+msgid "Large"
+msgstr "大"
+
+#: ../inc/bbcode_html.inc:68
+msgid "Close all open bbCode tags"
+msgstr "關閉所有 bbCode 代碼"
+
+#: ../inc/bbcode_html.inc:68
+msgid "Close Tags"
+msgstr "關閉標籤"
+
+#. names for the above
+#: ../inc/forum.inc:38
+msgid "Oldest first"
+msgstr "舊文章顯示在前面"
+
+#: ../inc/forum.inc:39 ../inc/forum.inc:45
+msgid "Newest first"
+msgstr "新文章顯示在前面"
+
+#: ../inc/forum.inc:40
+msgid "Highest rated posts first"
+msgstr "最高評分的顯示在前面"
+
+#: ../inc/forum.inc:42
+msgid "Newest post first"
+msgstr "最新的文章顯示在前面"
+
+#: ../inc/forum.inc:43
+msgid "Most views first"
+msgstr "點閱次數最多的在前面"
+
+#: ../inc/forum.inc:44
+msgid "Most posts first"
+msgstr "回覆數量最多的在前面"
+
+#: ../inc/forum.inc:104
+msgid "Volunteer moderator"
+msgstr "志願者管理員"
+
+#: ../inc/forum.inc:105
+msgid "Project administrator"
+msgstr "專案主管"
+
+#: ../inc/forum.inc:106
+msgid "Project developer"
+msgstr "專案開發者"
+
+#: ../inc/forum.inc:107
+msgid "Project tester"
+msgstr "專案測試人員"
+
+#: ../inc/forum.inc:108
+msgid "Volunteer developer"
+msgstr "志願者開發人員"
+
+#: ../inc/forum.inc:109
+msgid "Volunteer tester"
+msgstr "志願者測試人員"
+
+#: ../inc/forum.inc:110
+msgid "Project scientist"
+msgstr "專案科學家"
+
+#: ../inc/forum.inc:111
+msgid "Help desk expert"
+msgstr "服務臺專家"
+
+#. Search
+#: ../inc/forum.inc:129
+msgid "Search for words in forum messages"
+msgstr "搜尋留言版中的訊息"
+
+#: ../inc/forum.inc:129
+msgid "Search forums"
+msgstr "搜尋討論版"
+
+#: ../inc/forum.inc:130
+msgid "Advanced search"
+msgstr "進階搜尋"
+
+#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
+#: ../user/pm.php:138
+msgid "Private messages"
+msgstr "私人訊息"
+
+#: ../inc/forum.inc:155 ../user/forum_forum.php:74
+#: ../user/sample_index.php:128
+msgid "Questions and Answers"
+msgstr "問與答"
+
+#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
+#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
+#: ../project.sample/project.inc:70
+msgid "Message boards"
+msgstr "留言版"
+
+#: ../inc/forum.inc:191 ../inc/forum.inc:199
+msgid "%1 message board"
+msgstr "%1 留言版"
+
+#: ../inc/forum.inc:249 ../inc/result.inc:717
+msgid "Previous"
+msgstr "上一個"
+
+#: ../inc/forum.inc:287 ../inc/result.inc:726
+msgid "Next"
+msgstr "下一個"
+
+#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+msgid "Author"
+msgstr "作者"
+
+#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
+#: ../user/forum_edit.php:133 ../user/forum_post.php:120
+#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+#: ../user/pm.php:90 ../user/pm.php:149
+msgid "Message"
+msgstr "訊息"
+
+#: ../inc/forum.inc:586
+msgid "Send message"
+msgstr "傳送 訊息"
+
+#: ../inc/forum.inc:586
+msgid "Send %1 a private message"
+msgstr "傳送私人訊息給 %1"
+
+#: ../inc/forum.inc:587
+msgid "Joined: %1"
+msgstr "加入時間:%1"
+
+#: ../inc/forum.inc:596
+msgid "Posts: %1"
+msgstr "文章:%1"
+
+#: ../inc/forum.inc:602
+msgid "Credit: %1"
+msgstr "積分:%1"
+
+#: ../inc/forum.inc:603
+msgid "RAC: %1"
+msgstr "近期平均績分:%1"
+
+#: ../inc/forum.inc:627
+msgid "You haven't read this message yet"
+msgstr "您尚未閱讀此訊息"
+
+#: ../inc/forum.inc:627
+msgid "Unread"
+msgstr "未讀"
+
+#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
+msgid "Message %1"
+msgstr "訊息%1"
+
+#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
+msgid "hidden"
+msgstr "隱藏"
+
+#: ../inc/forum.inc:632
+msgid "Posted: %1"
+msgstr "發表於:%1"
+
+#: ../inc/forum.inc:635
+msgid " - in response to "
+msgstr " - 回應於 "
+
+#: ../inc/forum.inc:638
+msgid "Edit"
+msgstr "編輯"
+
+#: ../inc/forum.inc:638
+msgid "Edit this message"
+msgstr "編輯此訊息"
+
+#: ../inc/forum.inc:644
+msgid "Last modified: %1"
+msgstr "最近修改日期:%1"
+
+#: ../inc/forum.inc:647
+msgid ""
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
+msgstr "這篇文章未能顯示是因為作者將您加到忽略列表裡。點擊%1這裡%2查看"
+
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
+msgid "Report this post as offensive"
+msgstr "檢舉違規文章"
+
+#: ../inc/forum.inc:675 ../inc/forum.inc:686
+msgid "Report as offensive"
+msgstr "檢舉違規"
+
+#: ../inc/forum.inc:679
+msgid "Rating: %1"
+msgstr "評分:%1"
+
+#: ../inc/forum.inc:679
+msgid "rate: "
+msgstr "評分:"
+
+#: ../inc/forum.inc:682
+msgid "Click if you like this message"
+msgstr "如果你喜歡此訊息請點擊"
+
+#: ../inc/forum.inc:682
+msgid "Rate +"
+msgstr "加分 +"
+
+#: ../inc/forum.inc:684
+msgid "Click if you don't like this message"
+msgstr "如果你不喜歡此訊息請點擊"
+
+#: ../inc/forum.inc:684
+msgid "Rate -"
+msgstr "扣分 -"
+
+#. "Reply" is used as a verb
+#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
+msgid "Reply"
+msgstr "回覆"
+
+#: ../inc/forum.inc:693
+msgid "Post a reply to this message"
+msgstr "回覆此訊息"
+
+#. "Quote" is used as a verb
+#: ../inc/forum.inc:696
+msgid "Quote"
+msgstr "引用"
+
+#: ../inc/forum.inc:696
+msgid "Post a reply by quoting this message"
+msgstr "回覆並引用此消息"
+
+#: ../inc/forum.inc:717
+msgid "Hidden by a moderator"
+msgstr "被管理員隱藏"
+
+#: ../inc/forum.inc:738
+msgid "Posted %1 by %2"
+msgstr "%2 發表於:%1 "
+
+#: ../inc/forum.inc:756
+msgid "You may not post or rate messages until %1"
+msgstr "你必須等到%1後才能回覆或給帖子評分"
+
+#: ../inc/forum.inc:767
+msgid ""
+"\n"
+"        <ul>\n"
+"        <li> Posts must be 'kid friendly': they may not contain\n"
+"            content that is obscene, hate-related,\n"
+"            sexually explicit or suggestive.\n"
+"        <li> No commercial advertisements.\n"
+"        <li> No links to web sites involving sexual content,\n"
+"            gambling, or intolerance of others.\n"
+"        <li> No messages intended to annoy or antagonize other people,\n"
+"            or to hijack a thread.\n"
+"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No abusive comments involving race, religion,\n"
+"            nationality, gender, class or sexuality.\n"
+"        "
+msgstr "\n        <ul>\n        <li> 文章內容必須兒童適宜:它們必須不包含\n            內容有關猥褻或仇恨相關,\n            色情或性暗示。\n        <li> 禁止商業廣告。\n        <li> 禁止連結到網站包含色情內容,\n            賭博, 或使他人感到不適的內容。\n        <li> 禁止打擾、挑釁其它用戶,\n            或破壞主題。\n        <li> 禁止有敵意或侮辱性的訊息。\n        <li> 禁止濫用評論涉及種族、宗教、\n            國籍、性別、階級或性。\n        "
+
+#: ../inc/forum.inc:799
+msgid "Rules:"
+msgstr "規定:"
+
+#: ../inc/forum.inc:800
+msgid "More info"
+msgstr "更多訊息"
+
+#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
+msgid "Unhide"
+msgstr "取消隱藏"
+
+#: ../inc/forum.inc:1098
+msgid "Unhide this post"
+msgstr "取消隱藏文章"
+
+#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
+msgid "Hide"
+msgstr "隱藏"
+
+#: ../inc/forum.inc:1100
+msgid "Hide this post"
+msgstr "隱藏這篇文章"
+
+#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
+msgid "Move"
+msgstr "移動"
+
+#: ../inc/forum.inc:1105
+msgid "Move post to a different thread"
+msgstr "移動文章到其他主題"
+
+#: ../inc/forum.inc:1110
+msgid "Banish author"
+msgstr "封禁作者"
+
+#: ../inc/forum.inc:1117
+msgid "Vote to banish author"
+msgstr "投票封禁作者"
+
+#: ../inc/forum.inc:1121
+msgid "Vote not to banish author"
+msgstr "投票不要封禁作者"
+
+#: ../inc/forum.inc:1126
+msgid "Start vote to banish author"
+msgstr "開始投票封禁作者"
+
+#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
+#: ../user/pm.php:112 ../user/pm.php:152
+msgid "Delete"
+msgstr "刪除"
+
+#: ../inc/forum.inc:1131
+msgid "Delete this post"
+msgstr "刪除文章"
+
+#: ../inc/forum.inc:1169
+msgid "Only team members can post to the team message board"
+msgstr "只有團隊成員才能在團隊的留言板中發文"
+
+#: ../inc/forum.inc:1179
+msgid ""
+"In order to create a new thread in %1 you must have a certain amount of "
+"credit. This is to prevent and protect against abuse of the system."
+msgstr "你必須在已經獲得了一定的積分後才能在 %1 發表一個新主題。這是為了防止對論壇系統的濫用。"
+
+#: ../inc/forum.inc:1186
+msgid ""
+"You cannot create any more threads right now. Please wait a while before "
+"trying again. This delay has been enforced to protect against abuse of the "
+"system."
+msgstr "您暫時不能發表更多的新主題。請稍後再試,這是為了防止對論壇系統的濫用而採取的延​​時。"
+
+#: ../inc/forum.inc:1193
+msgid ""
+"This thread is locked. Only forum moderators and administrators are allowed "
+"to post there."
+msgstr "此主題已被鎖定,只有論壇管理員能夠在該主題下發文。"
+
+#: ../inc/forum.inc:1198
+msgid "Can't post to a hidden thread."
+msgstr "不能回覆隱藏主題"
+
+#: ../inc/forum.inc:1232
+msgid "Thread"
+msgstr "主題"
+
+#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
+#: ../user/forum_index.php:99
+msgid "Posts"
+msgstr "文章"
+
+#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
+msgid "Views"
+msgstr "瀏覽數"
+
+#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
+#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
+msgid "Last post"
+msgstr "最新的文章"
+
+#: ../inc/forum.inc:1294
+msgid "New posts in the thread %1"
+msgstr "主題 %1 的新回覆"
+
+#: ../inc/forum.inc:1299
+msgid "New posts in subscribed thread"
+msgstr "已訂閱主題的新回覆"
+
+#: ../inc/forum.inc:1300
+msgid "There are new posts in the thread '%1'"
+msgstr "主題 “%1” 有新回覆"
+
+#: ../inc/forum.inc:1310
+msgid "Mark all threads as read"
+msgstr "標示所有已閱讀的文章"
+
+#: ../inc/forum.inc:1311
+msgid "Mark all threads in all message boards as read."
+msgstr "標記留言板的所有主題為已閱讀。"
+
+#: ../inc/host.inc:25
+msgid "No host"
+msgstr "沒有主機"
+
+#: ../inc/host.inc:27
+msgid "Unavailable"
+msgstr "無法使用"
+
+#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
+msgid "Home"
+msgstr "家庭"
+
+#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
+#: ../user/server_status.php:142
+msgid "Work"
+msgstr "任務"
+
+#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
+msgid "School"
+msgstr "學校"
+
+#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
+#: ../user/edit_forum_preferences_form.php:162
+msgid "Update"
+msgstr "更新"
+
+#: ../inc/host.inc:84
+msgid "Computer information"
+msgstr "電腦訊息"
+
+#: ../inc/host.inc:88 ../inc/host.inc:93
+msgid "IP address"
+msgstr "IP位址"
+
+#: ../inc/host.inc:88
+msgid "(same the last %1 times)"
+msgstr "(與最新的%1次一樣)"
+
+#: ../inc/host.inc:90
+msgid "External IP address"
+msgstr "外部IP位址"
+
+#: ../inc/host.inc:93
+msgid "Show IP address"
+msgstr "表示IP地址"
+
+#: ../inc/host.inc:95
+msgid "Domain name"
+msgstr "網域名稱"
+
+#: ../inc/host.inc:97
+msgid "Product name"
+msgstr "產品名稱"
+
+#: ../inc/host.inc:101
+msgid "Local Standard Time"
+msgstr "當地標準時間"
+
+#: ../inc/host.inc:101
+msgid "UTC %1 hours"
+msgstr "UCT %1 小時"
+
+#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
+msgid "Owner"
+msgstr "用戶"
+
+#: ../inc/host.inc:107 ../inc/host.inc:360
+msgid "Anonymous"
+msgstr "匿名"
+
+#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
+msgid "Created"
+msgstr "建立日期"
+
+#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
+#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
+#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
+#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
+#: ../user/profile_search_action.php:45
+#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
+#: ../user/top_users.php:59 ../user/user_search.php:125
+msgid "Total credit"
+msgstr "總積分"
+
+#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
+#: ../user/user_search.php:124
+msgid "Average credit"
+msgstr "平均積分"
+
+#: ../inc/host.inc:115
+msgid "Cross project credit"
+msgstr "跨專案積分"
+
+#: ../inc/host.inc:117
+msgid "CPU type"
+msgstr "CPU 類型"
+
+#: ../inc/host.inc:118
+msgid "Number of processors"
+msgstr "處理器數量"
+
+#: ../inc/host.inc:120
+msgid "Coprocessors"
+msgstr "協同處理器"
+
+#: ../inc/host.inc:122 ../inc/host.inc:692
+msgid "Operating System"
+msgstr "作業系統"
+
+#: ../inc/host.inc:125 ../inc/host.inc:235
+msgid "BOINC version"
+msgstr "BOINC 版本"
+
+#: ../inc/host.inc:129 ../inc/prefs.inc:237
+msgid "Memory"
+msgstr "記憶體"
+
+#: ../inc/host.inc:129 ../inc/host.inc:139
+msgid "%1 MB"
+msgstr "%1 MB"
+
+#: ../inc/host.inc:133
+msgid "Cache"
+msgstr "Cache"
+
+#: ../inc/host.inc:133
+msgid "%1 KB"
+msgstr "%1 KB"
+
+#: ../inc/host.inc:139
+msgid "Swap space"
+msgstr "交換區域"
+
+#: ../inc/host.inc:142
+msgid "Total disk space"
+msgstr "總硬碟容量"
+
+#: ../inc/host.inc:142 ../inc/host.inc:145
+msgid "%1 GB"
+msgstr "%1 GB"
+
+#: ../inc/host.inc:145
+msgid "Free Disk Space"
+msgstr "可用的硬碟空間"
+
+#: ../inc/host.inc:149
+msgid "Measured floating point speed"
+msgstr "浮點運算速度"
+
+#: ../inc/host.inc:149 ../inc/host.inc:152
+msgid "%1 million ops/sec"
+msgstr "%1 百萬次運算/秒"
+
+#: ../inc/host.inc:152
+msgid "Measured integer speed"
+msgstr "整數運算速度"
+
+#: ../inc/host.inc:156 ../inc/host.inc:158
+msgid "Average upload rate"
+msgstr "平均上傳速度"
+
+#: ../inc/host.inc:156 ../inc/host.inc:163
+msgid "%1 KB/sec"
+msgstr "%1 Kb/s"
+
+#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
+#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
+#: ../inc/result.inc:278 ../user/explain_state.php:56
+#: ../user/host_app_versions.php:30
+msgid "Unknown"
+msgstr "未知"
+
+#: ../inc/host.inc:163 ../inc/host.inc:165
+msgid "Average download rate"
+msgstr "平均下載速度"
+
+#: ../inc/host.inc:168 ../user/host_app_versions.php:65
+msgid "Average turnaround time"
+msgstr "平均任務周轉時間"
+
+#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
+#: ../user/forum_search.php:50 ../user/forum_search.php:51
+msgid "%1 days"
+msgstr "%1 天"
+
+#: ../inc/host.inc:169
+msgid "Application details"
+msgstr "程式詳細資料"
+
+#: ../inc/host.inc:170
+msgid "Show"
+msgstr "查看"
+
+#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
+msgid "Tasks"
+msgstr "任務"
+
+#: ../inc/host.inc:184 ../inc/host.inc:206
+msgid "Number of times client has contacted server"
+msgstr "客戶端連接服務端的次數"
+
+#: ../inc/host.inc:185
+msgid "Last time contacted server"
+msgstr "最後一次連接伺服器的時間"
+
+#: ../inc/host.inc:186
+msgid "Fraction of time BOINC is running"
+msgstr "BOINC執行的時間比例"
+
+#: ../inc/host.inc:188
+msgid ""
+"While BOINC is running, fraction of time computer has an Internet connection"
+msgstr "BOINC在執行時,計算機有網際網路連線的時間比例"
+
+#: ../inc/host.inc:190
+msgid "While BOINC is running, fraction of time computing is allowed"
+msgstr "BOINC在執行時,允許計算的時間比例"
+
+#: ../inc/host.inc:191
+msgid "While is BOINC running, fraction of time GPU computing is allowed"
+msgstr "BOINC在執行時,允許GPU計算的時間比例"
+
+#: ../inc/host.inc:193
+msgid "Average CPU efficiency"
+msgstr "平均 CPU 效率"
+
+#: ../inc/host.inc:196
+msgid "Task duration correction factor"
+msgstr "任務持續修正的原因"
+
+#: ../inc/host.inc:198 ../inc/host.inc:679
+msgid "Location"
+msgstr "位置"
+
+#: ../inc/host.inc:200
+msgid "Delete this computer"
+msgstr "刪除此電腦"
+
+#: ../inc/host.inc:204
+msgid "Merge duplicate records of this computer"
+msgstr "合併此電腦的重覆記錄"
+
+#: ../inc/host.inc:204
+msgid "Merge"
+msgstr "合併"
+
+#: ../inc/host.inc:207 ../inc/host.inc:694
+msgid "Last contact"
+msgstr "最後聯繫時間"
+
+#: ../inc/host.inc:220
+msgid "Computer info"
+msgstr "電腦訊息"
+
+#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
+#: ../user/top_users.php:48
+msgid "Rank"
+msgstr "排行"
+
+#: ../inc/host.inc:225 ../inc/host.inc:684
+msgid "Avg. credit"
+msgstr "平均積分"
+
+#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
+#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
+#: ../inc/team.inc:382 ../inc/user.inc:140
+#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
+#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
+#: ../user/top_users.php:58
+msgid "Recent average credit"
+msgstr "最近平均積分"
+
+#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
+#: ../user/host_app_versions.php:25
+msgid "CPU"
+msgstr "CPU"
+
+#: ../inc/host.inc:237 ../inc/host.inc:690
+msgid "GPU"
+msgstr "GPU"
+
+#: ../inc/host.inc:238
+msgid "Operating system"
+msgstr "作業系統"
+
+#: ../inc/host.inc:320
+msgid "(%1 processors)"
+msgstr "(%1 核心)"
+
+#: ../inc/host.inc:340
+msgid "Details"
+msgstr "細節"
+
+#: ../inc/host.inc:345
+msgid "Cross-project stats:"
+msgstr "跨專案的統計訊息:"
+
+#: ../inc/host.inc:520
+msgid "Host %1 has overlapping lifetime:"
+msgstr "主機 %1 的活躍期有重疊:"
+
+#: ../inc/host.inc:527
+msgid "Host %1 has an incompatible OS:"
+msgstr "主機 %1 的作業系統不相容"
+
+#: ../inc/host.inc:533
+msgid "Host %1 has an incompatible CPU:"
+msgstr "主機 %1 的 CPU 不相容"
+
+#: ../inc/host.inc:600
+msgid "same host"
+msgstr "相同的主機"
+
+#: ../inc/host.inc:603
+msgid "Can't merge host %1 into %2 - they're incompatible"
+msgstr "無法將主機 %1 合併到主機%2 - 主機不相容"
+
+#: ../inc/host.inc:606
+msgid "Merging host %1 into host %2"
+msgstr "正在將主機 %1 合併到主機 %2"
+
+#: ../inc/host.inc:623
+msgid "Couldn't update credit of new computer"
+msgstr "無法從新電腦更新積分"
+
+#: ../inc/host.inc:627
+msgid "Couldn't update results"
+msgstr "無法上傳任務"
+
+#: ../inc/host.inc:632
+msgid "Couldn't retire old computer"
+msgstr "無法移除舊電腦"
+
+#: ../inc/host.inc:634
+msgid "Retired old computer %1"
+msgstr "已移除舊電腦 %1"
+
+#: ../inc/host.inc:657 ../inc/host.inc:660
+msgid "Show:"
+msgstr "顯示:"
+
+#: ../inc/host.inc:657 ../inc/host.inc:660
+msgid "All computers"
+msgstr "所有電腦"
+
+#: ../inc/host.inc:657 ../inc/host.inc:660
+msgid "Only computers active in past 30 days"
+msgstr "只顯示過去30天內活躍的電腦"
+
+#: ../inc/host.inc:671 ../inc/result.inc:642
+msgid "Computer ID"
+msgstr "電腦 ID"
+
+#: ../inc/host.inc:687
+msgid "BOINC<br>version"
+msgstr "BOINC<br>版本"
+
+#: ../inc/host.inc:750 ../user/merge_by_name.php:65
+msgid "Merge computers by name"
+msgstr "透過名稱合併電腦"
+
+#: ../inc/language_names.inc:62
+msgid "Browser default"
+msgstr "瀏覽器預設值"
+
+#: ../inc/news.inc:40
+msgid "Comment"
+msgstr "意見"
+
+#: ../inc/news.inc:111
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "透過%sRSS訂閱%s閱讀新聞"
+
+#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
+msgid "Inbox"
+msgstr "信箱"
+
+#: ../inc/pm.inc:26 ../inc/pm.inc:180
+msgid "Write"
+msgstr "寫信"
+
+#: ../inc/pm.inc:33 ../inc/user.inc:458
+msgid "Send private message"
+msgstr "傳送私人訊息"
+
+#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
+#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
+#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
+#: ../user/forum_post.php:65 ../user/forum_post.php:91
+#: ../user/forum_post.php:93 ../user/forum_post.php:134
+#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
+#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
+msgid "Preview"
+msgstr "預覽"
+
+#: ../inc/pm.inc:48 ../user/pm.php:136
+msgid "no such message"
+msgstr "訊息不存在"
+
+#: ../inc/pm.inc:82
+msgid "To"
+msgstr "收件人"
+
+#: ../inc/pm.inc:82
+msgid "User IDs or unique usernames, separated with commas"
+msgstr "用戶 ID 或唯一的用戶名,多個收件人之間用逗號分開"
+
+#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
+msgid "Subject"
+msgstr "標題"
+
+#: ../inc/pm.inc:89
+msgid "Send message"
+msgstr "傳送訊息"
+
+#: ../inc/pm.inc:122
+msgid "sent you a private message; subject:"
+msgstr "給你發送了一條私人訊息,標題:"
+
+#: ../inc/pm.inc:129
+msgid "Private message%1 from %2, subject:"
+msgstr "私人訊息 %1 來自 %2,標題:"
+
+#: ../inc/pm.inc:137
+msgid "Couldn't create message"
+msgstr "無法建立訊息"
+
+#: ../inc/pm.inc:168
+msgid ""
+"You are not allowed to send privates messages so often. Please wait some "
+"time before sending more messages."
+msgstr "你傳送訊息的間隔時間太短,請等待一段時間再發送更多的訊息。"
+
+#: ../inc/pm.inc:178 ../user/forum_forum.php:190
+msgid "unread"
+msgstr "未讀"
+
+#: ../inc/pm.inc:188
+msgid "For email notification, %1edit community prefs%2"
+msgstr "如需要電子郵件通知,請 %1 編輯社區偏好設定 %2。"
+
+#: ../inc/pm.inc:204
+msgid "Private message"
+msgstr "私人訊息"
+
+#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
+msgid "Usage limits"
+msgstr "使用限制"
+
+#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
+msgid "Use at most"
+msgstr "最多只使用"
+
+#: ../inc/prefs.inc:49
+#, no-php-format
+msgid ""
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "保留CPU給其他程式使用。例如: 75% 表示在 8 核心系統中使用 6 核心運算"
+
+#: ../inc/prefs.inc:52
+#, no-php-format
+msgid "% of the CPUs"
+msgstr "% CPU核心"
+
+#: ../inc/prefs.inc:57
+#, no-php-format
+msgid ""
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "週期內自動暫停/繼續運算以達到降低CPU溫度及能源消耗。例如: 75% 表示每運算 3 秒,休息 1 秒,並重複循環。"
+
+#: ../inc/prefs.inc:60
+#, no-php-format
+msgid "% of CPU time"
+msgstr "% CPU時間"
+
+#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
+msgid "When to suspend"
+msgstr "何時暫停"
+
+#: ../inc/prefs.inc:64
+msgid "Suspend when computer is on battery"
+msgstr "當電腦使用電池時暫停"
+
+#: ../inc/prefs.inc:65
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "當筆記型電腦使用電池時暫停運算。"
+
+#: ../inc/prefs.inc:70
+msgid "Suspend when computer is in use"
+msgstr "當電腦使用時暫停"
+
+#: ../inc/prefs.inc:71
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "當您正在使用電腦時暫停運算及檔案傳輸。"
+
+#: ../inc/prefs.inc:76
+msgid "Suspend GPU computing when computer is in use"
+msgstr "當電腦使用時暫停GPU運算"
+
+#: ../inc/prefs.inc:77
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "當您正在使電腦時暫停GPU運算。"
+
+#: ../inc/prefs.inc:82
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'使用中'代表滑鼠/鍵盤仍有操作"
+
+#: ../inc/prefs.inc:83
+msgid "This determines when the computer is considered 'in use'."
+msgstr "用於判斷電腦是否於'使用中'。"
+
+#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
+msgid "minutes"
+msgstr "分鐘"
+
+#: ../inc/prefs.inc:89
+msgid "Suspend when no mouse/keyboard input in last"
+msgstr "如果在最近的多少分鐘內無滑鼠或鍵盤操作則暫停計算"
+
+#: ../inc/prefs.inc:90
+msgid "This allows some computers to enter low-power mode when not in use."
+msgstr "這將使得一些計算機在不使用時進入低功耗模式。"
+
+#: ../inc/prefs.inc:95
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "暫停當非 BOINC 的 CPU 使用率高於"
+
+#: ../inc/prefs.inc:96
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "當電腦正忙於其他程式時暫停運算。"
+
+#: ../inc/prefs.inc:101
+msgid "Compute only between"
+msgstr "運算只從"
+
+#: ../inc/prefs.inc:102
+msgid "Compute only during a particular period each day."
+msgstr "僅在每天特定時段運算。"
+
+#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
+#: ../user/forum_banishment_vote.php:70
+#: ../user/forum_banishment_vote_action.php:65
+#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
+msgid "Other"
+msgstr "其他"
+
+#: ../inc/prefs.inc:107
+msgid "Store at least"
+msgstr "儲存至少"
+
+#: ../inc/prefs.inc:108
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "預先下載足夠的任務以保持電腦持續運算。"
+
+#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
+msgid "days of work"
+msgstr "天的任務"
+
+#: ../inc/prefs.inc:113
+msgid "Store up to an additional"
+msgstr "儲存多於"
+
+#: ../inc/prefs.inc:114
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "儲存高於設定最小值的任務。用於判斷每次聯繫專案取得任務的多寡。"
+
+#: ../inc/prefs.inc:119
+msgid "Switch between tasks about every"
+msgstr "切換任務每"
+
+#: ../inc/prefs.inc:120
+msgid "If you run several projects, BOINC may switch between them this often."
+msgstr "如果您有參與許多專案,BOINC 可能會切換執行。"
+
+#: ../inc/prefs.inc:125
+msgid "Request tasks to checkpoint at most every"
+msgstr "要求任務最多每"
+
+#: ../inc/prefs.inc:126
+msgid ""
+"This controls how often tasks save their state to disk, so that they can be "
+"restarted later."
+msgstr "控制任務寫入狀態到硬碟的週期,方便它們在未來重新啟動。"
+
+#: ../inc/prefs.inc:128
+msgid "seconds"
+msgstr "秒"
+
+#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
+msgid "Use no more than"
+msgstr "使用不會超過"
+
+#: ../inc/prefs.inc:137
+msgid "Limit the total amount of disk space used by BOINC."
+msgstr "限制 BOINC 使用硬碟空間。"
+
+#: ../inc/prefs.inc:139
+msgid "GB"
+msgstr "GB"
+
+#: ../inc/prefs.inc:142
+msgid "Leave at least"
+msgstr "留下至少"
+
+#: ../inc/prefs.inc:143
+msgid ""
+"Limit disk usage to leave this much free space on the volume where BOINC "
+"stores data."
+msgstr "限制 BOINC 儲存資料並保留可用空間。"
+
+#: ../inc/prefs.inc:145
+msgid "GB free"
+msgstr "GB 的空間"
+
+#: ../inc/prefs.inc:149
+msgid ""
+"Limit the percentage of disk space used by BOINC on the volume where it "
+"stores data."
+msgstr "限制 BOINC 儲存資料所佔用硬碟空間百分比。"
+
+#: ../inc/prefs.inc:152
+#, no-php-format
+msgid "% of total"
+msgstr "%"
+
+#: ../inc/prefs.inc:158
+msgid "When computer is in use, use at most"
+msgstr "當電腦使用時,最多占用"
+
+#: ../inc/prefs.inc:159
+msgid "Limit the memory used by BOINC when you're using the computer."
+msgstr "當您使用電腦時限制 BOINC 記憶體使用量。"
+
+#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
+#, no-php-format
+msgid "%"
+msgstr "%"
+
+#: ../inc/prefs.inc:165
+msgid "When computer is not in use, use at most"
+msgstr "當電腦閒置時,最多占用"
+
+#: ../inc/prefs.inc:166
+msgid "Limit the memory used by BOINC when you're not using the computer."
+msgstr "限制電腦閒置時 BOINC 記憶體使用量。"
+
+#: ../inc/prefs.inc:172
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "暫停時保留非 GPU 任務於記憶體中"
+
+#: ../inc/prefs.inc:173
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "勾選後暫停時將保留任務於記憶體中,並不會遺失進度。非勾選則暫停時將會從記憶體消除,只保留進度到最新的檢查點。"
+
+#: ../inc/prefs.inc:178
+msgid "Page/swap file: use at most"
+msgstr "分頁/交換檔:最多使用"
+
+#: ../inc/prefs.inc:179
+msgid "Limit the swap space (page file) used by BOINC."
+msgstr "限制 BOINC 使用的交換空間(分頁檔)"
+
+#: ../inc/prefs.inc:189
+msgid "Limit download rate to"
+msgstr "限制下載速率"
+
+#: ../inc/prefs.inc:190
+msgid "Limit the download rate of file transfers."
+msgstr "限制檔案下載速率。"
+
+#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
+msgid "KB/second"
+msgstr "Kb/s"
+
+#: ../inc/prefs.inc:195
+msgid "Limit upload rate to"
+msgstr "限制上傳速率"
+
+#: ../inc/prefs.inc:196
+msgid "Limit the upload rate of file transfers."
+msgstr "限制檔案上傳速率。"
+
+#: ../inc/prefs.inc:201
+msgid "Limit usage to"
+msgstr "限制傳送數據"
+
+#: ../inc/prefs.inc:202
+msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
+msgstr "例如: BOINC 能在每30天傳送2000MB的數據。"
+
+#: ../inc/prefs.inc:205
+msgid "MB every"
+msgstr "MB 每"
+
+#: ../inc/prefs.inc:206 ../inc/util.inc:303
+msgid "days"
+msgstr "天"
+
+#: ../inc/prefs.inc:210
+msgid "Transfer files only between"
+msgstr "檔案傳輸將從"
+
+#: ../inc/prefs.inc:211
+msgid "Transfer files only during a particular period each day."
+msgstr "僅在每天特定時段傳輸檔案。"
+
+#: ../inc/prefs.inc:216
+msgid "Skip data verification for image files"
+msgstr "略過圖檔驗證"
+
+#: ../inc/prefs.inc:217
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of BOINC."
+msgstr "建議僅在您的網路供應商會修改圖檔時使用。略過驗證會降低 BOINC 的安全性。"
+
+#: ../inc/prefs.inc:222
+msgid "Confirm before connecting to Internet"
+msgstr "連線前確認"
+
+#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "適用於數據機, ISDN 或 VPN 連線。"
+
+#: ../inc/prefs.inc:228
+msgid "Disconnect when done"
+msgstr "完成後斷線"
+
+#: ../inc/prefs.inc:235 ../user/explain_state.php:94
+msgid "Computing"
+msgstr "運算"
+
+#: ../inc/prefs.inc:236
+msgid "Disk"
+msgstr "硬碟空間"
+
+#: ../inc/prefs.inc:238
+msgid "Network"
+msgstr "網路"
+
+#. These texts are used in multiple places in prefs_edit.php and add_venue.php
+#: ../inc/prefs.inc:241
+msgid ""
+"These preferences apply to all the BOINC projects in which you participate."
+msgstr "這些偏好設定對你參加的所有 BOINC 專案均有效。"
+
+#: ../inc/prefs.inc:244
+msgid ""
+"%1Unable to update preferences.%2 The values marked in red below were out of"
+" range or not numeric."
+msgstr "%1無法更新偏好設定。 %2下面標紅的為超出範圍的或類型錯誤的數值。"
+
+#: ../inc/prefs.inc:472
+msgid "computing"
+msgstr "計算中"
+
+#: ../inc/prefs.inc:483
+msgid "Separate preferences for %1"
+msgstr "用於%1環境的偏好設定"
+
+#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
+msgid "Edit preferences"
+msgstr "編輯偏好設定"
+
+#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
+#: ../user/team_admins.php:36
+msgid "Remove"
+msgstr "移除"
+
+#: ../inc/prefs.inc:499
+msgid "Add separate preferences for %1"
+msgstr "新增%1環境的偏好設定"
+
+#: ../inc/prefs.inc:506
+msgid "These settings apply to all computers using this account except"
+msgstr "這些設定適用於所有使用此帳戶的計算機,除非"
+
+#: ../inc/prefs.inc:508
+msgid ""
+"computers where you have set preferences locally using the BOINC Manager"
+msgstr "計算機設定了本地BOINC管理器的首選項"
+
+#: ../inc/prefs.inc:510
+msgid "Android devices"
+msgstr "Android裝置"
+
+#: ../inc/prefs.inc:513
+msgid "(Switch view)"
+msgstr "(切換顯示)"
+
+#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
+msgid "Combined preferences"
+msgstr "以合併的偏好設定"
+
+#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
+msgid "Primary (default) preferences"
+msgstr "預設的偏好設定"
+
+#: ../inc/prefs.inc:537
+msgid "Preferences last modified:"
+msgstr "最後修改日期:"
+
+#: ../inc/prefs.inc:553
+msgid "Add preferences"
+msgstr "新增偏好設定"
+
+#: ../inc/prefs.inc:557
+msgid "Update preferences"
+msgstr "更新偏好設定"
+
+#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "yes"
+msgstr "是"
+
+#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
+#: ../project.sample/project_specific_prefs.inc:224
+msgid "no"
+msgstr "否"
+
+#. TODO: make this a subclass of PREF
+#: ../inc/prefs.inc:638
+msgid "Default computer location"
+msgstr "預設的電腦位置"
+
+#: ../inc/prefs.inc:639
+msgid ""
+"New computers will use this location for computing and project preferences."
+msgstr "新的計算機將使用此位置作為計算和專案的首選項。"
+
+#: ../inc/prefs_project.inc:52
+msgid "Resource share"
+msgstr "資源分享"
+
+#: ../inc/prefs_project.inc:53
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. For example, if you participate in two BOINC projects with resource"
+" shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "該設定決定你的計算機分配給本專案的資源比例。舉例:你參加了兩個專案,其資源分享率分別是 100 和 200,則第一個專案將得到 1/3 的計算資源,第二個專案將得到 2/3。"
+
+#: ../inc/prefs_project.inc:61
+msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
+msgstr "給每個 GPU 任務保留一個 CPU 內核?"
+
+#: ../inc/prefs_project.inc:70
+msgid "Use CPU"
+msgstr "使用CPU"
+
+#: ../inc/prefs_project.inc:79
+msgid "Use ATI GPU"
+msgstr "使用ATI GPU"
+
+#: ../inc/prefs_project.inc:88
+msgid "Use NVIDIA GPU"
+msgstr "使用NVIDIA GPU"
+
+#: ../inc/prefs_project.inc:97
+msgid "Use Intel GPU"
+msgstr "使用Intel GPU"
+
+#: ../inc/prefs_project.inc:107
+msgid "Run test applications?"
+msgstr "允許執行測試版程式?"
+
+#: ../inc/prefs_project.inc:108
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "這能幫助我們開發程式,但可能造成您電腦上的任務失敗"
+
+#: ../inc/prefs_project.inc:115
+msgid ""
+"Emails will be sent from %1; make sure your spam filter accepts this "
+"address."
+msgstr "電子郵件將從 %1 發送,請確保您的垃圾郵件過濾器不會過濾這個地址。"
+
+#: ../inc/prefs_project.inc:123
+msgid "Is it OK for %1 and your team (if any) to email you?"
+msgstr "是否允許 %1 和您所在的團隊傳送電子郵件給您?"
+
+#: ../inc/prefs_project.inc:130
+msgid "Should %1 show your computers on its web site?"
+msgstr "%1 是否可以將您的電腦顯示在它的網站上?"
+
+#: ../inc/prefs_project.inc:270
+msgid "(Switch View)"
+msgstr "(切換視圖)"
+
+#: ../inc/prefs_project.inc:276
+msgid "Project specific settings"
+msgstr "專案特定的偏好設定"
+
+#: ../inc/prefs_util.inc:33
+msgid "bad venue: %1"
+msgstr "錯誤的偏好設定位置:%1"
+
+#: ../inc/prefs_util.inc:39
+msgid "bad subset: %1"
+msgstr "錯誤的偏好設定子集:%1"
+
+#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
+msgid "and"
+msgstr "和"
+
+#: ../inc/profile.inc:86
+msgid ""
+"Your profile will be made visible to other people as soon as it has been "
+"approved by the project. This may take up to a few days."
+msgstr "你的用戶檔案在經過審核後就可以被其他用戶看到,這可能需要幾天的時間。"
+
+#: ../inc/profile.inc:92
+msgid ""
+"Your profile has been marked as unacceptable. It is not visible to other "
+"people. Please change it."
+msgstr "你的用戶檔案已標識為不核准,其他用戶也將無法查看,請進行適當的修改。"
+
+#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
+msgid "Database error"
+msgstr "資料庫錯誤"
+
+#: ../inc/profile.inc:193
+msgid ""
+"To prevent spam, profiles of users with an average credit of less than %1 "
+"are displayed only to logged-in users. We apologize for this inconvenience."
+msgstr "為了防止垃圾訊息,平均積分低於 %1 的用戶檔案將只能被已登入的用戶看到,由此帶來的不便之處我們很抱歉。"
+
+#: ../inc/profile.inc:197
+msgid "User is banished"
+msgstr "用戶已禁言"
+
+#: ../inc/profile.inc:211
+msgid "No profile exists for that user ID."
+msgstr "沒有和此用戶 ID 對應的用戶檔案訊息。"
+
+#: ../inc/profile.inc:219 ../user/create_profile.php:317
+msgid "Edit your profile"
+msgstr "編輯您的用戶檔案"
+
+#: ../inc/profile.inc:262
+msgid "Your feedback on this profile"
+msgstr "您對此用戶檔案的意見"
+
+#: ../inc/profile.inc:264
+msgid "Recommend this profile for User of the Day:"
+msgstr "推薦此用戶檔案成為本日用戶:"
+
+#: ../inc/profile.inc:265
+msgid "I %1like%2 this profile"
+msgstr "我%1喜歡%2這個用戶檔案"
+
+#: ../inc/profile.inc:268
+msgid "Alert administrators to an offensive profile:"
+msgstr "向管理員舉報有冒犯性的用戶檔案:"
+
+#: ../inc/profile.inc:269
+msgid "I %1do not like%2 this profile"
+msgstr "我%1不喜歡%2這個用戶檔案"
+
+#: ../inc/result.inc:35
+msgid "Anonymous platform"
+msgstr "匿名平台"
+
+#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+msgid "NVIDIA GPU"
+msgstr "NVIDIA GPU"
+
+#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+msgid "ATI GPU"
+msgstr "ATI GPU"
+
+#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+msgid "Intel GPU"
+msgstr "Intel GPU"
+
+#: ../inc/result.inc:65
+msgid "Not in DB"
+msgstr "資料庫中不存在"
+
+#: ../inc/result.inc:91
+msgid "pending"
+msgstr "等待中"
+
+#: ../inc/result.inc:114 ../user/forum_search.php:62
+msgid "All"
+msgstr "所有"
+
+#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
+#: ../user/server_status.php:167
+msgid "In progress"
+msgstr "運算中"
+
+#: ../inc/result.inc:116
+msgid "Validation pending"
+msgstr "等待驗證中"
+
+#: ../inc/result.inc:117
+msgid "Validation inconclusive"
+msgstr "驗證待確定"
+
+#: ../inc/result.inc:118 ../inc/result.inc:268
+msgid "Valid"
+msgstr "有效結果"
+
+#: ../inc/result.inc:119 ../inc/result.inc:271
+msgid "Invalid"
+msgstr "無效結果"
+
+#: ../inc/result.inc:120 ../inc/result.inc:209
+msgid "Error"
+msgstr "錯誤"
+
+#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+msgid "Inactive"
+msgstr "不活躍的"
+
+#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
+#: ../user/server_status.php:167
+msgid "Unsent"
+msgstr "未傳送的"
+
+#: ../inc/result.inc:181
+msgid "Completed, waiting for validation"
+msgstr "已完成,等待驗證"
+
+#: ../inc/result.inc:182
+msgid "Completed and validated"
+msgstr "已完成,通過驗證"
+
+#: ../inc/result.inc:183
+msgid "Completed, marked as invalid"
+msgstr "已完成,標記為錯誤"
+
+#: ../inc/result.inc:184
+msgid "Completed, can't validate"
+msgstr "已完成,無法驗證"
+
+#: ../inc/result.inc:185
+msgid "Completed, validation inconclusive"
+msgstr "已完成,驗證未完成"
+
+#: ../inc/result.inc:186
+msgid "Completed, too late to validate"
+msgstr "已完成,超出上傳期限而無法驗證"
+
+#: ../inc/result.inc:188
+msgid "Completed"
+msgstr "已完成"
+
+#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+msgid "Couldn't send"
+msgstr "無法傳送"
+
+#: ../inc/result.inc:194 ../inc/result.inc:257
+msgid "Cancelled by server"
+msgstr "被伺服器取消"
+
+#: ../inc/result.inc:199
+msgid "Not started by deadline - canceled"
+msgstr "未開始前已達上傳期限 - 已取消"
+
+#: ../inc/result.inc:202
+msgid "Error while downloading"
+msgstr "下載過程錯誤"
+
+#: ../inc/result.inc:204
+msgid "Error while computing"
+msgstr "運算過程錯誤"
+
+#: ../inc/result.inc:205
+msgid "Error while uploading"
+msgstr "上傳過程錯誤"
+
+#: ../inc/result.inc:206 ../inc/result.inc:259
+msgid "Aborted by user"
+msgstr "被用戶停止"
+
+#: ../inc/result.inc:207 ../inc/result.inc:260
+msgid "Upload failed"
+msgstr "上傳失敗"
+
+#: ../inc/result.inc:210
+msgid "Timed out - no response"
+msgstr "超時 - 無回應"
+
+#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+msgid "Didn't need"
+msgstr "不需要"
+
+#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+msgid "Validate error"
+msgstr "驗證錯誤"
+
+#: ../inc/result.inc:213 ../inc/result.inc:242
+msgid "Abandoned"
+msgstr "已丟棄"
+
+#: ../inc/result.inc:224 ../user/explain_state.php:43
+msgid "Over"
+msgstr "完成"
+
+#: ../inc/result.inc:232 ../user/explain_state.php:59
+msgid "Success"
+msgstr "成功"
+
+#: ../inc/result.inc:236
+msgid "Computation error"
+msgstr "運算錯誤"
+
+#: ../inc/result.inc:238
+msgid "Redundant result"
+msgstr "多餘結果"
+
+#: ../inc/result.inc:239 ../user/explain_state.php:68
+msgid "No reply"
+msgstr "無回應"
+
+#: ../inc/result.inc:249 ../user/explain_state.php:85
+msgid "New"
+msgstr "新建任務"
+
+#: ../inc/result.inc:250 ../user/explain_state.php:91
+msgid "Downloading"
+msgstr "下載中"
+
+#: ../inc/result.inc:251
+msgid "Processing"
+msgstr "處理中"
+
+#: ../inc/result.inc:252
+msgid "Compute error"
+msgstr "運算錯誤"
+
+#: ../inc/result.inc:253 ../user/explain_state.php:97
+msgid "Uploading"
+msgstr "上傳中"
+
+#: ../inc/result.inc:254 ../user/explain_state.php:88
+msgid "Done"
+msgstr "已完成"
+
+#: ../inc/result.inc:267
+msgid "Initial"
+msgstr "初始結果"
+
+#: ../inc/result.inc:273
+msgid "Not necessary"
+msgstr "不需要"
+
+#: ../inc/result.inc:274
+msgid "Workunit error - check skipped"
+msgstr "任務單元錯誤 - 跳過檢查"
+
+#: ../inc/result.inc:275
+msgid "Checked, but no consensus yet"
+msgstr "已檢查,未取得一致"
+
+#: ../inc/result.inc:276
+msgid "Task was reported too late to validate"
+msgstr "任務超出上傳期限而無法驗證"
+
+#: ../inc/result.inc:302
+msgid "Couldn't send result"
+msgstr "無法發送任務"
+
+#: ../inc/result.inc:306
+msgid "Too many errors (may have bug)"
+msgstr "過多錯誤(可能存在BUG)"
+
+#: ../inc/result.inc:310
+msgid "Too many results (may be nondeterministic)"
+msgstr "太多任務(可能因為結果不確定)"
+
+#: ../inc/result.inc:314
+msgid "Too many total results"
+msgstr "過多總合的任務"
+
+#: ../inc/result.inc:318
+msgid "WU cancelled"
+msgstr "已取消 WU"
+
+#: ../inc/result.inc:322
+msgid "Canonical result is missing"
+msgstr "規範結果缺失"
+
+#: ../inc/result.inc:326
+msgid "Unrecognized Error: %1"
+msgstr "無法辨識的錯誤:%1"
+
+#: ../inc/result.inc:353
+msgid "Task name"
+msgstr "任務名稱"
+
+#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
+#: ../inc/result.inc:364
+msgid "click for details"
+msgstr "點擊詳細查看"
+
+#: ../inc/result.inc:353
+msgid "Show IDs"
+msgstr "顯示 ID"
+
+#: ../inc/result.inc:358
+msgid "Show names"
+msgstr "顯示名稱"
+
+#: ../inc/result.inc:361 ../user/result.php:36
+msgid "Task"
+msgstr "任務"
+
+#: ../inc/result.inc:364
+msgid "Work unit"
+msgstr "任務單元"
+
+#: ../inc/result.inc:373
+msgid "Computer"
+msgstr "電腦"
+
+#: ../inc/result.inc:376 ../inc/result.inc:635
+msgid "Sent"
+msgstr "傳送時間"
+
+#: ../inc/result.inc:377
+msgid "Time reported<br />or deadline"
+msgstr "上傳時間<br />或者上傳期限"
+
+#: ../inc/result.inc:378
+msgid "explain"
+msgstr "說明"
+
+#: ../inc/result.inc:380 ../user/server_status.php:113
+msgid "Status"
+msgstr "狀態"
+
+#: ../inc/result.inc:381
+msgid "Run time<br />(sec)"
+msgstr "執行時間<br /> (秒)"
+
+#: ../inc/result.inc:382
+msgid "CPU time<br />(sec)"
+msgstr "CPU 時間<br /> (秒)"
+
+#: ../inc/result.inc:383 ../inc/result.inc:646
+msgid "Credit"
+msgstr "積分"
+
+#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
+msgid "Application"
+msgstr "程式"
+
+#: ../inc/result.inc:633
+msgid "Workunit"
+msgstr "任務單元"
+
+#: ../inc/result.inc:636
+msgid "Report deadline"
+msgstr "上傳期限"
+
+#: ../inc/result.inc:637
+msgid "Received"
+msgstr "接收時間"
+
+#: ../inc/result.inc:638
+msgid "Server state"
+msgstr "伺服器狀態"
+
+#: ../inc/result.inc:639
+msgid "Outcome"
+msgstr "結果"
+
+#: ../inc/result.inc:640
+msgid "Client state"
+msgstr "客戶端狀態"
+
+#: ../inc/result.inc:641
+msgid "Exit status"
+msgstr "離開狀態"
+
+#: ../inc/result.inc:643
+msgid "Run time"
+msgstr "執行時間"
+
+#: ../inc/result.inc:644
+msgid "CPU time"
+msgstr "CPU 時間"
+
+#: ../inc/result.inc:645
+msgid "Validate state"
+msgstr "驗證狀態"
+
+#: ../inc/result.inc:647
+msgid "Device peak FLOPS"
+msgstr "裝置的 FLOPS 峰值"
+
+#: ../inc/result.inc:648
+msgid "Application version"
+msgstr "程式版本"
+
+#: ../inc/result.inc:673
+msgid "Output files"
+msgstr "檔案輸出"
+
+#: ../inc/result.inc:676
+msgid "Stderr output"
+msgstr "標準錯誤輸出"
+
+#: ../inc/result.inc:728
+msgid "State"
+msgstr "狀態"
+
+#: ../inc/result.inc:769
+msgid "Task name:"
+msgstr "任務名稱:"
+
+#: ../inc/team.inc:40
+msgid "Search criteria (use one or more)"
+msgstr "搜尋條件 (可以使用一個或多個)"
+
+#: ../inc/team.inc:41
+msgid "Key words"
+msgstr "關鍵字"
+
+#: ../inc/team.inc:41
+msgid "Find teams with these words in their names or descriptions"
+msgstr "尋找名稱或描述中包含這些關鍵字的團隊"
+
+#: ../inc/team.inc:49 ../inc/team.inc:473
+msgid "Type of team"
+msgstr "團隊類型"
+
+#: ../inc/team.inc:51
+msgid "Show only active teams"
+msgstr "只顯示活躍的團隊"
+
+#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
+msgid "Search"
+msgstr "搜尋"
+
+#: ../inc/team.inc:61
+msgid "Requested by you, and founder response deadline has passed."
+msgstr "你已發起過請求,而且原創始人的回覆期限已過。"
+
+#: ../inc/team.inc:63
+msgid "Complete foundership transfer"
+msgstr "完成創始人的轉換"
+
+#: ../inc/team.inc:67
+msgid "Requested by you"
+msgstr "你已發起過請求"
+
+#: ../inc/team.inc:67
+msgid "founder response deadline is %1"
+msgstr "原創始人的回覆期限是 %1"
+
+#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
+#: ../inc/user.inc:449
+msgid "None"
+msgstr "未加入團隊"
+
+#: ../inc/team.inc:74
+msgid "Initiate request"
+msgstr "發起請求"
+
+#: ../inc/team.inc:77
+msgid "Deferred"
+msgstr "延期處理中"
+
+#: ../inc/team.inc:91
+msgid "Team info"
+msgstr "團隊訊息"
+
+#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
+msgid "Description"
+msgstr "描述"
+
+#: ../inc/team.inc:106
+msgid "Web site"
+msgstr "網站"
+
+#: ../inc/team.inc:132
+msgid "Cross-project stats"
+msgstr "跨專案的統計網站"
+
+#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
+msgid "Type"
+msgstr "類型"
+
+#: ../inc/team.inc:139 ../user/team_manage.php:65
+msgid "Message board"
+msgstr "留言版"
+
+#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
+msgid "Threads"
+msgstr "主題"
+
+#: ../inc/team.inc:148
+msgid "Join this team"
+msgstr "加入此團隊"
+
+#: ../inc/team.inc:149
+msgid ""
+"Note: if 'OK to email' is set in your project preferences, joining a team "
+"gives its founder access to your email address."
+msgstr "如果您在專案偏好中設定了允許接收電子郵件,加入團隊後該團隊的創始人將可以取得您的電子郵件地址。"
+
+#: ../inc/team.inc:152
+msgid "Not accepting new members"
+msgstr "不接受新成員加入"
+
+#: ../inc/team.inc:159
+msgid "Foundership change requested"
+msgstr "創始人改變請求"
+
+#: ../inc/team.inc:160
+msgid "Respond by %1"
+msgstr "回覆期限 %1"
+
+#: ../inc/team.inc:164
+msgid "Team foundership change"
+msgstr "團隊創始人改變"
+
+#: ../inc/team.inc:168 ../inc/team.inc:373
+msgid "Members"
+msgstr "成員"
+
+#: ../inc/team.inc:169 ../inc/team.inc:268
+msgid "Founder"
+msgstr "創始人"
+
+#: ../inc/team.inc:183
+msgid "Admins"
+msgstr "管理員"
+
+#: ../inc/team.inc:198
+msgid "New members in last day"
+msgstr "昨天新加入的成員"
+
+#: ../inc/team.inc:199
+msgid "Total members"
+msgstr "所有成員"
+
+#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
+msgid "view"
+msgstr "查看"
+
+#: ../inc/team.inc:200
+msgid "Active members"
+msgstr "活躍的成員"
+
+#: ../inc/team.inc:201
+msgid "Members with credit"
+msgstr "有積分的成員"
+
+#: ../inc/team.inc:270
+msgid "Admin"
+msgstr "管理員"
+
+#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
+#: ../user/top_hosts.php:93 ../user/top_teams.php:123
+#: ../user/top_users.php:128
+msgid "Previous %1"
+msgstr "前 %1"
+
+#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
+#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
+#: ../user/top_teams.php:128 ../user/top_users.php:133
+msgid "Next %1"
+msgstr "後 %1"
+
+#: ../inc/team.inc:303
+msgid "No such team."
+msgstr "沒有這個團隊。"
+
+#: ../inc/team.inc:316
+msgid "This operation requires foundership."
+msgstr "本操作需要創始人權限。"
+
+#: ../inc/team.inc:340
+msgid "This operation requires team admin privileges"
+msgstr "本操作需要團隊創始人的權限"
+
+#: ../inc/team.inc:442
+msgid ""
+"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
+" be overwritten. Edit the %1BOINC-wide team%2 instead."
+msgstr "警告:這是一個 BOINC 自動建立的團隊,您在此處做出的修改將很快會被覆蓋,請直接在 %1這裡%2 進行編輯。"
+
+#: ../inc/team.inc:448
+msgid ""
+"%1Privacy note%2: if you create a team, your project preferences (resource "
+"share, graphics preferences) will be visible to the public."
+msgstr "%1隱私事項%2:如果你要建立一個團隊,則你的專案偏好(資源分享率,圖形偏好設定等)將會對團隊成員公開。"
+
+#: ../inc/team.inc:452
+msgid "Team name, text version"
+msgstr "團隊名稱,文字版本"
+
+#: ../inc/team.inc:453
+msgid "Don't use HTML tags."
+msgstr "請不要使用 HTML 標籤。"
+
+#: ../inc/team.inc:456
+msgid "Team name, HTML version"
+msgstr "團隊名稱,HTML 版本"
+
+#: ../inc/team.inc:458 ../inc/team.inc:468
+msgid "You may use %1limited HTML tags%2."
+msgstr "您可以使用 %1有限的 HTML 標籤%2。"
+
+#: ../inc/team.inc:459
+msgid "If you don't know HTML, leave this box blank."
+msgstr "如果您不了解 HTML,請保持本編輯框為空。"
+
+#: ../inc/team.inc:462
+msgid "URL of team web page, if any"
+msgstr "團隊的網站 (如果有的話);"
+
+#: ../inc/team.inc:462
+msgid "without \"http://\""
+msgstr "不含 “ http:// ”"
+
+#: ../inc/team.inc:463
+msgid "This URL will be linked to from the team's page on this site."
+msgstr "這個網址將會從這個網頁連到團隊網站"
+
+#: ../inc/team.inc:466
+msgid "Description of team"
+msgstr "團隊描述"
+
+#: ../inc/team.inc:482
+msgid "Accept new members?"
+msgstr "是否接受新隊員加入?"
+
+#: ../inc/uotd.inc:30
+msgid "User profile"
+msgstr "用戶檔案"
+
+#: ../inc/user.inc:120
+msgid "Projects in which you are participating"
+msgstr "您已加入的專案"
+
+#: ../inc/user.inc:122
+msgid "Projects in which %1 is participating"
+msgstr "%1 已加入的專案"
+
+#: ../inc/user.inc:126
+msgid "Project"
+msgstr "專案"
+
+#: ../inc/user.inc:126
+msgid "Click for user page"
+msgstr "點擊進入用戶頁面"
+
+#: ../inc/user.inc:126
+msgid "Since"
+msgstr "加入日期"
+
+#: ../inc/user.inc:151
+msgid "Computing and credit"
+msgstr "運算和積分"
+
+#: ../inc/user.inc:154
+msgid "Computers on this account"
+msgstr "本帳號所屬的電腦"
+
+#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
+#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
+#: ../user/view_profile.php:66
+msgid "View"
+msgstr "查看"
+
+#: ../inc/user.inc:164
+msgid "Cross-project ID"
+msgstr "跨專案辨識碼 (CPID)"
+
+#: ../inc/user.inc:165
+msgid "Cross-project statistics"
+msgstr "跨專案的統計網站"
+
+#: ../inc/user.inc:166
+msgid "Account"
+msgstr "帳號"
+
+#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
+#: ../inc/user.inc:449 ../user/user_search.php:124
+msgid "Team"
+msgstr "團隊"
+
+#: ../inc/user.inc:170
+msgid "Cross-project"
+msgstr "跨專案"
+
+#: ../inc/user.inc:171
+msgid "Certificate"
+msgstr "證書"
+
+#: ../inc/user.inc:172
+msgid "Stats on your cell phone"
+msgstr "用手機查看您的統計訊息"
+
+#: ../inc/user.inc:197
+msgid "Account information"
+msgstr "帳號資訊"
+
+#: ../inc/user.inc:206 ../user/get_passwd.php:31
+#: ../user/team_email_list.php:73
+msgid "Email address"
+msgstr "電子郵件地址"
+
+#: ../inc/user.inc:210 ../inc/user.inc:400
+msgid "URL"
+msgstr "網址"
+
+#: ../inc/user.inc:213
+msgid "Postal code"
+msgstr "郵遞區號"
+
+#: ../inc/user.inc:214 ../inc/user.inc:394
+msgid "%1 member since"
+msgstr "加入 %1 的日期"
+
+#. LDAP accounts can't change email or password
+#: ../inc/user.inc:219 ../inc/user.inc:223
+msgid "Change"
+msgstr "修改"
+
+#: ../inc/user.inc:224
+msgid "email address"
+msgstr "電子郵件地址"
+
+#: ../inc/user.inc:225
+msgid "password"
+msgstr "密碼"
+
+#: ../inc/user.inc:226
+msgid "other account info"
+msgstr "其他帳號訊息"
+
+#: ../inc/user.inc:229 ../inc/user.inc:393
+msgid "User ID"
+msgstr "用戶 ID"
+
+#: ../inc/user.inc:229
+msgid "Used in community functions"
+msgstr "在社群功能中使用"
+
+#: ../inc/user.inc:232 ../user/weak_auth.php:25
+msgid "Account keys"
+msgstr "帳號鑰匙"
+
+#: ../inc/user.inc:237
+msgid "Preferences"
+msgstr "偏好設定"
+
+#: ../inc/user.inc:240
+msgid "When and how BOINC uses your computer"
+msgstr "BOINC 何時如何用您的電腦?"
+
+#: ../inc/user.inc:241
+msgid "Computing preferences"
+msgstr "運算偏好設定"
+
+#: ../inc/user.inc:244
+msgid "Message boards and private messages"
+msgstr "留言板和私人訊息"
+
+#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
+msgid "Community preferences"
+msgstr "社群偏好設定"
+
+#: ../inc/user.inc:248
+msgid "Preferences for this project"
+msgstr "本專案的偏好設定"
+
+#: ../inc/user.inc:249 ../user/prefs.php:30
+msgid "%1 preferences"
+msgstr "%1 偏好設定"
+
+#: ../inc/user.inc:266
+msgid "View the profile of %1"
+msgstr "查看 %1 的用戶檔案"
+
+#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
+msgid "Profile"
+msgstr "用戶檔案"
+
+#: ../inc/user.inc:307 ../user/sample_index.php:114
+msgid "Community"
+msgstr "社群"
+
+#: ../inc/user.inc:314
+msgid "Create"
+msgstr "建立"
+
+#: ../inc/user.inc:321 ../inc/user.inc:454
+msgid "%1 posts"
+msgstr "%1 個文章"
+
+#. ------------ Notification -----------
+#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
+msgid "Notifications"
+msgstr "通知"
+
+#: ../inc/user.inc:346
+msgid "Quit team"
+msgstr "退出團隊"
+
+#: ../inc/user.inc:348 ../inc/user.inc:365
+msgid "Administer"
+msgstr "管理員"
+
+#: ../inc/user.inc:354 ../inc/user.inc:367
+msgid "(foundership change request pending)"
+msgstr "(創始人轉換請求待處理)"
+
+#: ../inc/user.inc:356
+msgid "Member of team"
+msgstr "團隊成員"
+
+#: ../inc/user.inc:358
+msgid "find a team"
+msgstr "搜尋團隊"
+
+#: ../inc/user.inc:369
+msgid "Founder but not member of"
+msgstr "創始人 (已退出團隊)"
+
+#: ../inc/user.inc:375
+msgid "Find friends"
+msgstr "搜尋好友"
+
+#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
+#: ../inc/user.inc:467 ../inc/user.inc:476
+msgid "Friends"
+msgstr "好友"
+
+#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
+msgid "Computers"
+msgstr "電腦"
+
+#: ../inc/user.inc:415
+msgid "Donor"
+msgstr "贊助者"
+
+#: ../inc/user.inc:458
+msgid "Contact"
+msgstr "聯繫"
+
+#: ../inc/user.inc:461
+msgid "This person is a friend"
+msgstr "這是一位好友"
+
+#: ../inc/user.inc:462 ../user/friend.php:240
+msgid "Cancel friendship"
+msgstr "刪除此好友"
+
+#: ../inc/user.inc:465 ../user/friend.php:39
+msgid "Request pending"
+msgstr "請求待處理"
+
+#: ../inc/user.inc:467
+msgid "Add as friend"
+msgstr "新增為好友"
+
+#: ../inc/user.inc:526
+msgid "user name cannot have leading or trailing white space"
+msgstr "使用者名稱前後不能使用空白建"
+
+#: ../inc/user.inc:530
+msgid "user name must be nonempty"
+msgstr "使用者名稱不能留白"
+
+#: ../inc/user.inc:534
+msgid "user name may not contain HTML tags"
+msgstr "使用者名稱不能包含HTML標籤"
+
+#: ../inc/util.inc:161
+msgid "log out"
+msgstr "登出"
+
+#: ../inc/util.inc:163
+msgid "log in"
+msgstr "登入"
+
+#: ../inc/util.inc:239 ../user/create_account_form.php:41
+msgid "Create an account"
+msgstr "建立一個帳號"
+
+#: ../inc/util.inc:240
+msgid "Server status page"
+msgstr "伺服器狀態頁"
+
+#: ../inc/util.inc:277
+msgid ""
+"A database error occurred while handling your request; please try again "
+"later."
+msgstr "資料庫在處理你的請求過程中發生一次資料庫錯誤,請稍後重試。"
+
+#: ../inc/util.inc:286
+msgid "Unable to handle request"
+msgstr "無法處理請求"
+
+#: ../inc/util.inc:306
+msgid "hours"
+msgstr "小時"
+
+#: ../inc/util.inc:309
+msgid "min"
+msgstr "分鐘"
+
+#: ../inc/util.inc:312
+msgid "sec"
+msgstr "秒"
+
+#: ../inc/util.inc:473
+msgid ""
+"Link has timed out. Please click Back, refresh the page, and try again."
+msgstr "連線已超時,請點擊返回並刷新頁面後再重試。"
+
+#: ../inc/util.inc:552
+msgid "Use BBCode tags to format your text"
+msgstr "用 BBCode 代碼來格式化您的文字"
+
+#: ../inc/util.inc:779
+msgid "Project down for maintenance"
+msgstr "專案已停止維護"
+
+#: ../inc/util.inc:782
+msgid "%1 is temporarily shut down for maintenance.  Please try again later."
+msgstr "%1 已經臨時關閉並進行維護工作,請稍候再重試。"
+
+#: ../inc/util.inc:800
+msgid "Unable to connect to database - please try again later"
+msgstr "無法連接資料庫 - 請稍候重試"
+
+#: ../inc/util.inc:804
+msgid "Unable to select database - please try again later"
+msgstr "無法選擇資料庫 - 請稍候重試"
+
+#: ../inc/util.inc:976
+msgid "characters remaining"
+msgstr "剩餘字符數"
+
+#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
+msgid "Stay logged in on this computer"
+msgstr "保持這台電腦的登入狀態"
+
+#: ../user/account_finish.php:34
+msgid "Finish account setup"
+msgstr "完成帳號設定"
+
+#: ../user/account_finish_action.php:27
+msgid "You must supply a name for your account"
+msgstr "您必須為您的帳號取一個名字"
+
+#: ../user/account_finish_action.php:30
+msgid "HTML tags not allowed in name"
+msgstr "名字中不允許使用 HTML 語法"
+
+#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
+#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
+msgid "Edit %1 preferences"
+msgstr "編輯 %1 的偏好設定"
+
+#: ../user/add_venue.php:82
+msgid "Add %1 preferences for %2"
+msgstr "增加 %1 偏好設定(用於 %2)"
+
+#: ../user/apps.php:31 ../user/sample_index.php:104
+msgid "Applications"
+msgstr "程式"
+
+#: ../user/apps.php:32
+msgid ""
+"%1 currently has the following applications. When you participate in %1, "
+"tasks for one or more of these applications will be assigned to your "
+"computer. The current version of the application will be downloaded to your "
+"computer. This happens automatically; you don't have to do anything."
+msgstr "%1 專案目前有如下幾個計算程式。當你參與 %1 專案時,適用於這些計算程式的任務包將會分發給你的計算機。當前版本的計算程式也會下載到你的計算機上。這一切都是自動的,你不需要做任何操作。"
+
+#: ../user/apps.php:54
+msgid "Platform"
+msgstr "平台"
+
+#: ../user/apps.php:55
+msgid "Version"
+msgstr "版本"
+
+#: ../user/apps.php:57
+msgid "Average computing"
+msgstr "平均運算"
+
+#: ../user/bbcode.php:23
+msgid "BBCode tags"
+msgstr "BBCode 語法"
+
+#: ../user/bbcode.php:25
+msgid ""
+"BBCode tags let you format text in your profile and message-board postings.\n"
+"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
+"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
+"HTML)."
+msgstr "BBCode 語法可以用來對個人檔案和留言板文章內的文字進行格式化。 \n它和 HTML 類似,但更為簡單。這些標記一般以 [ 開頭\n(如果在HTML 中一般是 %1)並且以] 結尾(HTML 中則是 %2)。"
+
+#: ../user/bbcode.php:31
+msgid "Examples"
+msgstr "範例"
+
+#: ../user/bbcode.php:32
+msgid "Bold"
+msgstr "粗體"
+
+#: ../user/bbcode.php:33
+msgid "Italic"
+msgstr "斜體"
+
+#: ../user/bbcode.php:34
+msgid "Underline"
+msgstr "底線"
+
+#: ../user/bbcode.php:35
+msgid "Strikethrough"
+msgstr "刪除線"
+
+#: ../user/bbcode.php:36
+msgid "Superscript"
+msgstr "上標"
+
+#: ../user/bbcode.php:37
+msgid "Big text"
+msgstr "大字體"
+
+#: ../user/bbcode.php:38
+msgid "Red text"
+msgstr "紅字"
+
+#: ../user/bbcode.php:39
+msgid "link to website"
+msgstr "超連結到網站"
+
+#: ../user/bbcode.php:40
+msgid "Quoted text"
+msgstr "引用文"
+
+#: ../user/bbcode.php:40
+msgid "use for quoted blocks of text"
+msgstr "用於文字塊的引用"
+
+#: ../user/bbcode.php:41
+msgid "use to display an image"
+msgstr "用於顯示一張圖片"
+
+#: ../user/bbcode.php:42
+msgid "Code snippet here"
+msgstr "這是代碼片段"
+
+#: ../user/bbcode.php:42
+msgid "use to display some code"
+msgstr "用於顯示一些代碼"
+
+#: ../user/bbcode.php:43
+msgid "Pre-formatted text"
+msgstr "預設文字"
+
+#: ../user/bbcode.php:43
+msgid "use to display pre-formatted (usually monospaced) text"
+msgstr "用於顯示預設文字(一般是等寬字體)"
+
+#: ../user/bbcode.php:44
+msgid "Item 1"
+msgstr "項目 1"
+
+#: ../user/bbcode.php:44
+msgid "Item2"
+msgstr "項目2"
+
+#: ../user/bbcode.php:44
+msgid "Item 2"
+msgstr "項目 2"
+
+#: ../user/bbcode.php:46
+msgid "use to link to Trac ticket on BOINC website"
+msgstr "用於連接到 BOINC 網站上的 Trac 傳票"
+
+#: ../user/bbcode.php:48
+msgid "use to link to Trac Wiki on BOINC website"
+msgstr "用於連接到 BOINC 網站上的 Trac 維基"
+
+#: ../user/bbcode.php:52
+msgid ""
+"If you don't close a tag or don't specify a parameter correctly,\n"
+"the raw tag itself will display instead of the formatted text."
+msgstr "如果你沒有正確的關閉語法或者指定參數,\n語法自身將被顯示出來,而不是預設的文字。"
+
+#: ../user/create_account_action.php:26
+msgid "Can't create account"
+msgstr "無法建立帳號"
+
+#: ../user/create_account_action.php:29
+msgid "Click your browser's <b>Back</b> button to try again."
+msgstr "點擊瀏覽器的<b>返回</b>按鈕來重試。"
+
+#: ../user/create_account_action.php:46
+msgid "Your reCAPTCHA response was not correct. Please try again."
+msgstr "您輸入的驗證字不符,請重試。"
+
+#: ../user/create_account_action.php:69
+msgid "You must supply an invitation code to create an account."
+msgstr "您必須提供一個邀請碼才能建立帳號。"
+
+#: ../user/create_account_action.php:72
+msgid "The invitation code you gave is not valid."
+msgstr "您提供的邀請碼是錯誤的。"
+
+#: ../user/create_account_action.php:83
+msgid ""
+"Invalid email address: you must enter a valid address of the form "
+"name at domain"
+msgstr "電子郵件地址錯誤:您必須輸入一個合法的地址,例如 用戶名@域名"
+
+#: ../user/create_account_action.php:87
+msgid "There's already an account with that email address."
+msgstr "已有帳號連結至此電子郵件地址。"
+
+#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
+msgid "New passwords are different"
+msgstr "新密碼不符"
+
+#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
+msgid "Passwords may only include ASCII characters."
+msgstr "登入密碼只允許包含 ASCII 字符。"
+
+#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
+msgid "New password is too short: minimum password length is %1 characters."
+msgstr "新密碼長度過短:最短的密碼長度為 %1 字符。"
+
+#: ../user/create_account_action.php:126
+msgid "Couldn't create account"
+msgstr "無法建立帳號"
+
+#: ../user/create_account_form.php:45
+msgid ""
+"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
+"select Add Project, and enter an email address and password."
+msgstr "注意:如果您使用BOINC管理服務,不要使用此表格。只要執行BOINC,選擇“新增專案”,然後輸入電子郵件地址和密碼。"
+
+#: ../user/create_account_form.php:57
+msgid ""
+"This account will belong to the team %1 and will have the project "
+"preferences of its founder."
+msgstr "此帳號將屬於 %1 團隊並且其專案偏好設定和團隊創始人的專案偏好設定相同。"
+
+#: ../user/create_profile.php:52
+msgid "Picture"
+msgstr "照片"
+
+#: ../user/create_profile.php:66
+msgid "%1 Your profile picture is shown to the left."
+msgstr "%1您的用戶檔案圖片將顯示在左邊"
+
+#: ../user/create_profile.php:68
+msgid ""
+"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
+" or less)."
+msgstr "要變更的話,點擊 “ 瀏覽 ” 按鈕並選擇一個JPEG 或PNG 圖檔(大小不超過 %1)。"
+
+#: ../user/create_profile.php:71
+msgid "To remove it from your profile, check this box:"
+msgstr "如果想從用戶檔案中刪除它,請選擇:"
+
+#: ../user/create_profile.php:79
+msgid ""
+"If you would like include a picture with your profile, click the \"Browse\" "
+"button and select a JPEG or PNG file. Please select images of %1 or less."
+msgstr "如果您想在用戶檔案中加入一張照片,點擊 “ 瀏覽 ” 按鈕並選擇一個JPEG 或PNG 圖檔。大小不能超過 %1。"
+
+#: ../user/create_profile.php:91
+msgid "Language"
+msgstr "語言"
+
+#: ../user/create_profile.php:94
+msgid "Select the language in which your profile is written:"
+msgstr "請選擇您編輯用戶檔案的語言:"
+
+#: ../user/create_profile.php:106
+msgid "Submit profile"
+msgstr "提交用戶檔案"
+
+#: ../user/create_profile.php:112
+msgid "Create/edit profile"
+msgstr "建立/編輯用戶檔案"
+
+#: ../user/create_profile.php:134
+msgid "The format of your uploaded image is not supported."
+msgstr "不支援您上傳的圖片格式。"
+
+#: ../user/create_profile.php:163
+msgid ""
+"Your %1profile%2 lets you share your opinions and background with the %3 "
+"community."
+msgstr "透過 %1用戶檔案%2,你可以和%3 社群分享您的觀點和背景。"
+
+#: ../user/create_profile.php:209
+msgid "Your ReCaptcha response was not correct.  Please try again."
+msgstr "您的驗證文字不正確,請重試。"
+
+#: ../user/create_profile.php:218
+msgid ""
+"Your first response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "您的第一次回覆已被 Akismet 防垃圾郵件系統標記為垃圾郵件,請修改您輸入的內容並重試。"
+
+#: ../user/create_profile.php:226
+msgid ""
+"Your second response was flagged as spam by the Akismet anti-spam system.  "
+"Please modify your text and try again."
+msgstr "您的第二次回覆已被 Akismet 防垃圾郵件系統標記為垃圾郵件,請修改您輸入的內容並重試。"
+
+#: ../user/create_profile.php:242
+msgid "Your profile submission was empty."
+msgstr "您提交的用戶檔案內容為空。"
+
+#: ../user/create_profile.php:283
+msgid "Could not update the profile: database error"
+msgstr "無法更新該用戶檔案:資料庫錯誤"
+
+#: ../user/create_profile.php:299
+msgid "Could not create the profile: database error"
+msgstr "無法建立該用戶檔案:資料庫錯誤"
+
+#: ../user/create_profile.php:304
+msgid "Profile saved"
+msgstr "用戶檔案已儲存"
+
+#: ../user/create_profile.php:306
+msgid ""
+"Congratulations! Your profile was successfully entered into our database."
+msgstr "恭喜!您的用戶檔案已經成功進入了我們的資料庫。"
+
+#: ../user/create_profile.php:309
+msgid "View your profile"
+msgstr "檢視您的使用者檔案"
+
+#: ../user/create_profile.php:319
+msgid "Create a profile"
+msgstr "建立一個用戶檔案"
+
+#: ../user/create_profile.php:347
+msgid ""
+"To prevent spam, an average credit of %1 or greater is required to create or"
+" edit a profile.  We apologize for this inconvenience."
+msgstr "為了防止垃圾郵件,如果要建立或編譯用戶檔案,近期平均積分不能小於 %1,不便之處我們深感抱歉。"
+
+#: ../user/delete_account.php:57
+msgid "Couldn't delete account"
+msgstr "無法刪除帳號"
+
+#: ../user/delete_account.php:59
+msgid "Account deleted"
+msgstr "帳號已刪除"
+
+#: ../user/delete_account.php:60
+msgid "Your account has been deleted."
+msgstr "您的帳號已刪除"
+
+#: ../user/delete_account.php:64
+msgid "Confirm delete account"
+msgstr "確定刪除帳號"
+
+#: ../user/delete_account.php:67
+msgid ""
+"Deleting your account will remove all of your\n"
+"personal information from our servers,\n"
+"including your profile and message-board posts.\n"
+"No jobs will be issued to any computers attached\n"
+"to this account."
+msgstr "刪除帳號操作將從服務器上移除你所有的個人訊息,\n包括你的個人檔案和留言板中的文章。 \n該帳號名下的電腦也將不再下載新的運算任務。"
+
+#: ../user/delete_account.php:73
+msgid ""
+"This cannot be undone.\n"
+"Once your account has been deleted, you cannot get it back."
+msgstr "該操作無法撤銷。 \n一旦帳號被刪除,將無法還原。"
+
+#: ../user/delete_account.php:76
+msgid "Are you sure you want to delete your account?"
+msgstr "您確定要刪除您的帳號嗎?"
+
+#: ../user/delete_account.php:79 ../user/delete_profile.php:54
+#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
+#: ../user/prefs_remove.php:53 ../user/user_search.php:59
+#: ../user/user_search.php:64
+msgid "Yes"
+msgstr "是"
+
+#: ../user/delete_account.php:79
+msgid "Delete this account"
+msgstr "刪除這個帳號"
+
+#: ../user/delete_account.php:80 ../user/delete_profile.php:55
+#: ../user/friend.php:241 ../user/user_search.php:58
+#: ../user/user_search.php:63
+msgid "No"
+msgstr "否"
+
+#: ../user/delete_account.php:80
+msgid "Do not delete this account"
+msgstr "不要刪除這個帳號"
+
+#: ../user/delete_profile.php:32
+msgid "couldn't delete profile - please try again later"
+msgstr "無法刪除用戶檔案 - 請稍候再試。"
+
+#: ../user/delete_profile.php:35
+msgid "Delete Confirmation"
+msgstr "刪除確認"
+
+#: ../user/delete_profile.php:37
+msgid "Your profile has been deleted."
+msgstr "您的用戶檔案已刪除。"
+
+#: ../user/delete_profile.php:42
+msgid "Profile delete confirmation"
+msgstr "用戶檔案刪除確認"
+
+#: ../user/delete_profile.php:45
+msgid "Are you sure?"
+msgstr "您確定嗎?"
+
+#: ../user/delete_profile.php:46
+msgid ""
+"Deleted profiles are gone forever and cannot be recovered --\n"
+"you will have to start from scratch\n"
+"if you want another profile in the future."
+msgstr "刪除的用戶檔案將永遠無法恢復 --\n如果您以後想要重新使用用戶檔案,必須從頭開始建立。"
+
+#: ../user/delete_profile.php:50
+msgid ""
+"If you're sure, click 'Yes'\n"
+"to remove your profile from our database."
+msgstr "如果您確定的話,請點擊 “ 是 ” \n從我們的資料庫中刪除你的用戶檔案。"
+
+#: ../user/delete_profile.php:54
+msgid "Delete my profile"
+msgstr "刪除我的用戶檔案"
+
+#: ../user/delete_profile.php:55
+msgid "Do not delete my profile"
+msgstr "不要刪除我的用戶檔案"
+
+#: ../user/donated.php:25
+msgid "PayPal - Transaction Completed"
+msgstr "PayPal - 交易已完成"
+
+#: ../user/donated.php:28
+msgid "Thank you for donating!"
+msgstr "感謝您的捐贈!!"
+
+#: ../user/donated.php:29
+msgid "Your donation for has been completed."
+msgstr "您的捐贈已完成。"
+
+#: ../user/donated.php:30
+msgid ""
+"Your donation will be added to the progress bar after confirmation by "
+"PayPal."
+msgstr "您的捐贈將在我們收到 PayPal 的確認後再添加到進度中。"
+
+#: ../user/donated.php:32
+msgid "You have canceled your donation."
+msgstr "您已經取消捐贈。"
+
+#: ../user/donations.php:24
+msgid "This project is not accepting donations."
+msgstr "此專案目前不接受捐贈。"
+
+#: ../user/donations.php:34
+msgid "%1 donations"
+msgstr "%1 捐贈"
+
+#: ../user/donations.php:39
+msgid ""
+"This project is accepting donations via\n"
+"%1."
+msgstr "此專案接受的捐贈方式\n%1。"
+
+#: ../user/donations.php:42
+msgid ""
+"To donate, fill in the amount you want to donate using the field below.\n"
+"        PayPal is accepting multiple currencies\n"
+"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
+"         Yen, Australian Dollars, New Zealand Dollars,\n"
+"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
+"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
+"        Hungarian Forint, Czech Koruna).\n"
+"        You can use included currency converter\n"
+"        to see the donation amount equivalent in different currencies\n"
+"        (please note that the rates are only estimates\n"
+"         and the actual amount may differ)."
+msgstr "請在下方的表格中填入您所要捐贈的金額。 \nPayPal 接受多種貨幣\n(加元,歐元,英鎊,美元,\n日元,澳元,新西蘭元,\n瑞士法郎,港幣,新加坡元,瑞典克朗,\n丹麥克朗,波蘭茲羅提,挪威克朗,\n匈牙利福林,捷克克朗)。 \n您可以使用匯率換算器來查看不同幣種的等值金額\n(請注意匯率為估計值,實際匯率可能會稍有不同)"
+
+#: ../user/donations.php:316
+msgid "Amount you would like to donate"
+msgstr "您想要捐贈的金額"
+
+#: ../user/donations.php:317
+msgid "Estimated value in"
+msgstr "匯率換算(估計)"
+
+#: ../user/donations.php:320 ../user/donations.php:324
+msgid "Anonymous donation"
+msgstr "匿名捐贈"
+
+#: ../user/donations.php:320
+msgid ""
+"Select this if you dont want your name and account number displayed in\n"
+"donator lists.<br>If not checked, you will be recorded as user ID %1"
+msgstr "如果您不希望將您的名稱和帳號顯示在捐贈者列表中,請選擇此項。 \n如果不選擇的話,您將被記錄為 用戶 ID %1"
+
+#: ../user/donations.php:324
+msgid "To assign the donation with your user ID, please log in."
+msgstr "要用指定的用戶 ID 進行捐贈的話,請先登入。"
+
+#: ../user/donations.php:328
+msgid "Proceed"
+msgstr "繼續"
+
+#: ../user/donations.php:329
+msgid "Donations are accepted through"
+msgstr "接受捐贈的方式"
+
+#: ../user/download_network.php:25
+msgid "Download BOINC add-on software"
+msgstr "下載 BOINC 的輔助軟體"
+
+#: ../user/download_network.php:28
+msgid "You can download applications in several categories."
+msgstr "您可以下載下面幾個類別的程式。"
+
+#: ../user/download_network.php:31
+msgid ""
+"These applications are not endorsed by %1 and you use them at your own risk."
+msgstr "這些程式尚未經過 %1 的檢查,若使用請自擔風險。"
+
+#: ../user/download_network.php:33
+msgid ""
+"We do not provide instructions for installing these applications.\n"
+"However, the author may have provided some help on installing or uninstalling the application. \n"
+"If this is not enough you should contact the author."
+msgstr "我們無法提供這些程式的安裝及使用說明。 \n但程式的作者可能提供了安裝及卸載相關的幫助說明。 \n如果需要進一步了解,請聯繫相關作者。"
+
+#: ../user/download_network.php:36
+msgid "Instructions for installing and running BOINC are %1here%2."
+msgstr "安裝及執行 BOINC 的說明 請看%1這裡%2"
+
+#: ../user/download_network.php:38
+msgid "This list is managed centrally at %1the BOINC website%2."
+msgstr "本頁面中的列表內容由%1BOINC 官方網站%2 集中管理。"
+
+#: ../user/edit_email_action.php:31
+msgid "Change email address of account"
+msgstr "修改帳號的電子郵件地址"
+
+#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+msgid "New email address '%1' is invalid."
+msgstr "新的電子郵件地址 ‘ %1 ’ 錯誤。"
+
+#: ../user/edit_email_action.php:38
+msgid "New email address is same as existing address. Nothing is changed."
+msgstr "新的電子郵件地址和原來的相同,不需要修改。"
+
+#: ../user/edit_email_action.php:42
+msgid "There's already an account with that email address"
+msgstr "已有帳號連結至此電子郵件地址。"
+
+#: ../user/edit_email_action.php:54
+msgid "Invalid password."
+msgstr "密碼錯誤。"
+
+#: ../user/edit_email_action.php:62
+msgid "The email address of your account is now %1."
+msgstr "您的帳號現在所連結的電子郵件地址是 %1。"
+
+#: ../user/edit_email_action.php:64
+msgid "Please %1validate this email address%2."
+msgstr "請%1驗證此電子郵件地址%2。"
+
+#: ../user/edit_email_action.php:67
+msgid ""
+"We can't update your email address due to a database problem.  Please try "
+"again later."
+msgstr "因為資料庫的問題,我們目前無法更新你的電子郵件地址,請稍後重試。"
+
+#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+msgid "Change email address"
+msgstr "修改電子郵件地址"
+
+#: ../user/edit_email_form.php:36
+msgid "Change the email address of your account"
+msgstr "修改您的帳號所連結的電子郵件地址"
+
+#: ../user/edit_email_form.php:37
+msgid "New email address"
+msgstr "新的電子郵件地址"
+
+#: ../user/edit_email_form.php:38
+msgid "Must be a valid address of the form 'name at domain'"
+msgstr "必須是有效的電子郵件地址,例如 用戶名@域名"
+
+#: ../user/edit_email_form.php:48
+msgid "No password?"
+msgstr "沒有設定密碼?"
+
+#: ../user/edit_forum_preferences_action.php:33
+msgid "Confirm reset"
+msgstr "確定重設"
+
+#: ../user/edit_forum_preferences_action.php:34
+msgid ""
+"This action will erase any changes you have made in your community "
+"preferences. To cancel, click your browser's Back button."
+msgstr "此操作將清除您對所修改的社群偏好設定,要取消操作的話,請點擊瀏覽器的返回按鈕。"
+
+#: ../user/edit_forum_preferences_action.php:38
+msgid "Reset preferences"
+msgstr "重設偏好設定"
+
+#. Not the right kind of file
+#: ../user/edit_forum_preferences_action.php:95
+msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
+msgstr "錯誤:圖檔類型錯誤,只支持PNG 和JPEG 格式。"
+
+#: ../user/edit_forum_preferences_action.php:120
+msgid "Your signature was too long, please keep it less than 250 characters."
+msgstr "您的簽名太長,請將其限制在250 個字符內。"
+
+#: ../user/edit_forum_preferences_action.php:139
+#: ../user/edit_forum_preferences_action.php:153
+msgid "No such user:"
+msgstr "沒有這個使用者:"
+
+#: ../user/edit_forum_preferences_form.php:45
+msgid ""
+"How should we notify you of new private messages, friend requests, posts in "
+"subscribed threads, and other events?"
+msgstr "當您接收到新的私人訊息、好友請求、訂閱主題更新...等時,您希望我們如何通知您?"
+
+#: ../user/edit_forum_preferences_form.php:46
+msgid "On my Account page (no email)"
+msgstr "在我的帳號頁面(不發送電子郵件)"
+
+#: ../user/edit_forum_preferences_form.php:47
+msgid "Immediately, by email"
+msgstr "立即,通過電子郵件"
+
+#: ../user/edit_forum_preferences_form.php:48
+msgid "In a single daily email"
+msgstr "通過電子郵件,每天最多一封"
+
+#: ../user/edit_forum_preferences_form.php:65
+msgid "Message-board identity"
+msgstr "留言板標識"
+
+#: ../user/edit_forum_preferences_form.php:66
+msgid "Avatar"
+msgstr "大頭貼"
+
+#: ../user/edit_forum_preferences_form.php:67
+msgid "An image representing you on the message boards."
+msgstr "在留言板上代表你身份的圖片。"
+
+#: ../user/edit_forum_preferences_form.php:68
+msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
+msgstr "格式:JPG 或 PNG。尺寸:最大 4KB,100x100像素"
+
+#: ../user/edit_forum_preferences_form.php:70
+msgid "Don't use an avatar"
+msgstr "不使用大頭貼"
+
+#: ../user/edit_forum_preferences_form.php:72
+msgid "Use a Globally Recognized Avatar provided by %1"
+msgstr "使用由 %1 提供的個人全球統一標識"
+
+#: ../user/edit_forum_preferences_form.php:74
+msgid "Use this uploaded avatar:"
+msgstr "使用上傳的大頭貼:"
+
+#: ../user/edit_forum_preferences_form.php:77
+msgid "Avatar preview"
+msgstr "預覽大頭貼"
+
+#: ../user/edit_forum_preferences_form.php:77
+msgid "This is how your avatar will look"
+msgstr "您的大頭貼將顯示為"
+
+#: ../user/edit_forum_preferences_form.php:86
+msgid "Signature for message board posts"
+msgstr "留言板發布簽名"
+
+#: ../user/edit_forum_preferences_form.php:89
+msgid ""
+"Check out %1various free services%2\n"
+"<br> providing dynamic 'signature images'\n"
+"<br> showing your latest credit info, project news, etc."
+msgstr "查看 %1所有的免費服務%2\n<br> 提供動態簽名圖片\n<br> 顯示你最新的積分訊息,專案新聞等。"
+
+#: ../user/edit_forum_preferences_form.php:93
+msgid "Attach signature by default"
+msgstr "默認使用簽名"
+
+#: ../user/edit_forum_preferences_form.php:96
+msgid "Signature preview"
+msgstr "預覽簽名"
+
+#: ../user/edit_forum_preferences_form.php:97
+msgid "This is how your signature will look in the forums"
+msgstr "你的簽名將在論壇中顯示為"
+
+#: ../user/edit_forum_preferences_form.php:115
+msgid "Message display"
+msgstr "顯示訊息"
+
+#: ../user/edit_forum_preferences_form.php:117
+msgid "What to display"
+msgstr "顯示內容"
+
+#: ../user/edit_forum_preferences_form.php:118
+msgid "Hide avatar images"
+msgstr "隱藏大頭貼"
+
+#: ../user/edit_forum_preferences_form.php:119
+msgid "Hide signatures"
+msgstr "隱藏簽名"
+
+#: ../user/edit_forum_preferences_form.php:120
+msgid "Show images as links"
+msgstr "將圖片顯示為連結"
+
+#: ../user/edit_forum_preferences_form.php:121
+msgid "Open links in new window/tab"
+msgstr "在新視窗/分頁中打開連結"
+
+#: ../user/edit_forum_preferences_form.php:122
+msgid "Highlight special users"
+msgstr "高亮指定用戶"
+
+#: ../user/edit_forum_preferences_form.php:123
+msgid "Display this many messages per page"
+msgstr "在每頁顯示更多留言"
+
+#: ../user/edit_forum_preferences_form.php:127
+msgid "How to sort"
+msgstr "如何排序"
+
+#: ../user/edit_forum_preferences_form.php:128
+msgid "Threads:"
+msgstr "主題:"
+
+#: ../user/edit_forum_preferences_form.php:128
+msgid "Posts:"
+msgstr "文章:"
+
+#: ../user/edit_forum_preferences_form.php:129
+msgid "Jump to first new post in thread automatically"
+msgstr "自動跳轉到第一篇未讀的文章"
+
+#: ../user/edit_forum_preferences_form.php:130
+msgid "Don't move sticky posts to top"
+msgstr "不要移動置頂文章到頂部"
+
+#. DISABLE_FORUMS
+#. ------------ Message filtering  -----------
+#: ../user/edit_forum_preferences_form.php:137
+msgid "Message filtering"
+msgstr "過濾訊息"
+
+#: ../user/edit_forum_preferences_form.php:153
+msgid "Filtered users"
+msgstr "已過濾的用戶"
+
+#: ../user/edit_forum_preferences_form.php:154
+msgid "Ignore message board posts and private messages from these users."
+msgstr "忽略這些用戶在留言板中的文章和私人訊息。"
+
+#: ../user/edit_forum_preferences_form.php:156
+msgid "User ID (For instance: 123456789)"
+msgstr "用戶 ID(例如:123456789)"
+
+#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
+msgid "Add user to filter"
+msgstr "新增用戶到過濾器"
+
+#: ../user/edit_forum_preferences_form.php:162
+msgid "Click here to update preferences"
+msgstr "點擊這裡更新偏好設定"
+
+#: ../user/edit_forum_preferences_form.php:164
+#: ../user/edit_forum_preferences_form.php:166
+msgid "Reset"
+msgstr "重設"
+
+#: ../user/edit_forum_preferences_form.php:165
+msgid "Or click here to reset preferences to the defaults"
+msgstr "或者點擊這裡將所有偏好設定重設為預設"
+
+#: ../user/edit_passwd_action.php:50
+msgid ""
+"We can't update your password due to a database problem. Please try again "
+"later."
+msgstr "因為資料庫的問題,我們目前無法更新您的密碼,請稍後重試。"
+
+#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
+#: ../user/edit_passwd_form.php:34
+msgid "Change password"
+msgstr "修改密碼"
+
+#: ../user/edit_passwd_action.php:54
+msgid "Your password has been changed."
+msgstr "您的密碼已修改。"
+
+#: ../user/edit_passwd_form.php:32
+msgid "New password"
+msgstr "新密碼"
+
+#: ../user/edit_passwd_form.php:33
+msgid "New password, again"
+msgstr "再次輸入新密碼"
+
+#: ../user/edit_user_info_action.php:31
+msgid "HTML tags are not allowed in your name."
+msgstr "名稱中不允許使用 HTML 語法"
+
+#: ../user/edit_user_info_action.php:34
+msgid "You must supply a name for your account."
+msgstr "您必須為您的帳號取一個名稱。"
+
+#: ../user/edit_user_info_action.php:58
+msgid "Couldn't update user info."
+msgstr "無法更新用戶資訊。"
+
+#: ../user/edit_user_info_form.php:27
+msgid "Edit account information"
+msgstr "編輯帳號資訊"
+
+#: ../user/edit_user_info_form.php:32
+msgid "Name %1 real name or nickname%2"
+msgstr "名稱 %1真名或暱稱%2"
+
+#: ../user/edit_user_info_form.php:35
+msgid "URL %1 of your web page; optional%2"
+msgstr "網址 %1你的個人網頁,可選%2"
+
+#: ../user/edit_user_info_form.php:43
+msgid "Postal (ZIP) code %1 Optional%2"
+msgstr "郵遞區號 %1 可選 %2"
+
+#: ../user/edit_user_info_form.php:47
+msgid "Update info"
+msgstr "更新資訊"
+
+#: ../user/explain_state.php:27
+msgid "Server states"
+msgstr "伺服器狀態"
+
+#: ../user/explain_state.php:30
+msgid ""
+"A tasks's <b>server state</b> indicates whether the task has been sent to a "
+"computer, and if so whether the computer has finished it. Possible values "
+"are:"
+msgstr "運算任務的<b>伺服器狀態</b>表示該任務是否已經被分發到電腦,以及電腦是否已經完成該任務的處理。可能的狀態值包括:"
+
+#: ../user/explain_state.php:35
+msgid ""
+"The task is not ready to send (for example, because its input files are "
+"unavailable)"
+msgstr "該任務尚未準備分發(例如 輸入文件無法使用)"
+
+#: ../user/explain_state.php:38
+msgid "The task is ready to send, but hasn't been sent yet."
+msgstr "該任務已經準備分發,但還沒有分發。"
+
+#: ../user/explain_state.php:40
+msgid "In Progress"
+msgstr "運算中"
+
+#: ../user/explain_state.php:41
+msgid "The task has been sent; waiting for completion."
+msgstr "任務已發送,等待完成。"
+
+#: ../user/explain_state.php:44
+msgid ""
+"The task has been sent to a computer and either it has timed out or the "
+"computer has reported its completion."
+msgstr "該任務已經分發給一台電腦,其結果或者是處理超時,或者是處理完成並正確回報。"
+
+#: ../user/explain_state.php:49
+msgid "Outcomes"
+msgstr "結果"
+
+#: ../user/explain_state.php:52
+msgid ""
+"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
+"Possible values are:"
+msgstr "運算任務的<b>結果</b>僅在其伺服器狀態為<b>完成</b>時才有效,可能的狀態值包括:"
+
+#: ../user/explain_state.php:57
+msgid ""
+"The task was sent to a computer, but the computer has not yet completed the "
+"work and reported the outcome."
+msgstr "該任務已分發給一台電腦,但該電腦尚未完成相應處理。"
+
+#: ../user/explain_state.php:60
+msgid "A computer completed and reported the task successfully."
+msgstr "該任務已由一台電腦完成並且成功的回報結果。"
+
+#: ../user/explain_state.php:63
+msgid ""
+"The server wasn't able to send the task to a computer (perhaps because its "
+"resource requirements were too large)"
+msgstr "伺服器無法分發該任務(可能因為需要的運算資源過大)"
+
+#: ../user/explain_state.php:65
+msgid "Client error"
+msgstr "客戶端錯誤"
+
+#: ../user/explain_state.php:66
+msgid "The task was sent to a computer and an error occurred."
+msgstr "該任務已分發給一台電腦,但在處理過程中產生了錯誤。"
+
+#: ../user/explain_state.php:69
+msgid ""
+"The task was sent to a computer and no reply was received within the time "
+"limit."
+msgstr "該任務已分發給一台電腦,但未在指定的期限內收到回報。"
+
+#: ../user/explain_state.php:72
+msgid ""
+"The task wasn't sent to a computer because enough other tasks were completed"
+" for this workunit."
+msgstr "該任務未分發到電腦,因為所屬的任務已經完成了足夠數量的運算。"
+
+#: ../user/explain_state.php:75
+msgid ""
+"The task was reported but could not be validated, typically because the "
+"output files were lost on the server."
+msgstr "該任務的處理結果已回報但無法被驗證,一般是因為伺服器的輸出文件缺失。"
+
+#: ../user/explain_state.php:80
+msgid "Client states"
+msgstr "客戶端狀態"
+
+#: ../user/explain_state.php:81
+msgid ""
+"A result's <b>client state</b> indicates the stage of processing at which an"
+" error occurred."
+msgstr "運算結果的<b>客戶端狀態</b>表示運算任務在電腦上的處理階段,例如 發生錯誤的時候。"
+
+#: ../user/explain_state.php:86
+msgid "The computer has not yet completed the task."
+msgstr "電腦尚未完成該任務的處理。"
+
+#: ../user/explain_state.php:89
+msgid "The computer completed the task successfully."
+msgstr "電腦已經成功完成了該任務的處理。"
+
+#: ../user/explain_state.php:92
+msgid "The computer couldn't download the application or input files."
+msgstr "電腦無法下載運算程式或輸入文件。"
+
+#: ../user/explain_state.php:95
+msgid "An error occurred during computation."
+msgstr "運算過程中發生錯誤。"
+
+#: ../user/explain_state.php:98
+msgid "The computer couldn't upload the output files."
+msgstr "電腦無法上傳輸出文件。"
+
+#: ../user/explain_state.php:103
+msgid "Time reported and deadline"
+msgstr "回報時間和截止時間"
+
+#: ../user/explain_state.php:106
+msgid ""
+"A task's <b>Time reported or deadline</b> field depends on whether the task "
+"has been reported yet:"
+msgstr "運算任務的<b>回報時間或截止時間</b>字段含義取決於該任務的處理結果已完成回報:"
+
+#: ../user/explain_state.php:110
+msgid "Already reported"
+msgstr "已回報"
+
+#: ../user/explain_state.php:110
+msgid "The date/time it was reported"
+msgstr "回報的日期和時間"
+
+#: ../user/explain_state.php:111
+msgid "Not reported yet, deadline in the future"
+msgstr "還沒有回報,也未到截止時間"
+
+#: ../user/explain_state.php:112
+msgid "Deadline, shown in green."
+msgstr "截止時間顯示為綠色字體。"
+
+#: ../user/explain_state.php:114
+msgid "Not reported yet, deadline in the past"
+msgstr "尚未回報,已過截止時間"
+
+#: ../user/explain_state.php:115
+msgid "Deadline, shown in red."
+msgstr "截止時間顯示為紅色字體。"
+
+#: ../user/explain_state.php:120
+msgid "Unknown field"
+msgstr "未知欄位"
+
+#: ../user/ffmail_action.php:47
+msgid "Email preview"
+msgstr "電子郵件預覽"
+
+#: ../user/ffmail_action.php:48
+msgid "Your email will appear as follows:"
+msgstr "你的電子郵件將顯示為:"
+
+#: ../user/ffmail_action.php:57
+msgid "Send email"
+msgstr "傳送電子郵件"
+
+#: ../user/ffmail_action.php:59
+msgid "Use your browser's back button to return to message form"
+msgstr "使用瀏覽器的返回按鈕退到訊息表單頁面"
+
+#: ../user/ffmail_action.php:63
+msgid "Sending emails"
+msgstr "傳送電子郵件"
+
+#: ../user/ffmail_action.php:82
+msgid "email sent successfully to %1"
+msgstr "電子郵件已成功傳送給 %1"
+
+#: ../user/ffmail_action.php:84
+msgid "failed to send email to %1: %2"
+msgstr "無法傳送電子郵件給 %1:%2"
+
+#: ../user/ffmail_action.php:90
+msgid "Thanks for telling your friends about %1"
+msgstr "感謝您向好友們介紹了 %1"
+
+#: ../user/ffmail_action.php:92
+msgid ""
+"You forgot to enter your friends' names and/or email addresses; Please "
+"%1return to the form%2 and enter them."
+msgstr "您沒有輸入好友的名稱和/或電子郵件地址,請%1回到上一頁%2並重新輸入。"
+
+#: ../user/ffmail_form.php:30
+msgid ""
+"This project hasn't created an email message - please notify its "
+"administrators"
+msgstr "這個專案尚未建立電子郵件 - 請通知專案管理員"
+
+#: ../user/ffmail_form.php:33
+msgid "Tell your friends about %1"
+msgstr "將您對 %1 的看法告訴好友"
+
+#: ../user/ffmail_form.php:37
+msgid "Help us by telling your friends, family and coworkers about %1"
+msgstr "幫助我們向您的好友、家人和同事介紹%1"
+
+#: ../user/ffmail_form.php:39
+msgid ""
+"Fill in this form with the names and email addresses of people you think "
+"might be interested in %1. We'll send them an email in your name, and you "
+"can add your own message if you like."
+msgstr "在表單中填入您認為可能會對 %1 感興趣的人的名稱和電子郵件地址。我們將以您的名義將他們發送電子郵件,郵件的內容你可以自行編輯。"
+
+#: ../user/ffmail_form.php:42
+msgid "Your name:"
+msgstr "您的名稱:"
+
+#: ../user/ffmail_form.php:42
+msgid "Your email address:"
+msgstr "您的電子郵件地址:"
+
+#: ../user/ffmail_form.php:48
+msgid "Friend's name:"
+msgstr "好友的名稱:"
+
+#: ../user/ffmail_form.php:48
+msgid "Friend's email address:"
+msgstr "好友的電子郵件地址:"
+
+#: ../user/ffmail_form.php:56
+msgid "Additional message (optional)"
+msgstr "額外訊息 (可選)"
+
+#: ../user/ffmail_form.php:59
+msgid "Send"
+msgstr "傳送"
+
+#. Can't moderate without being moderator
+#: ../user/forum_banishment_vote.php:37
+#: ../user/forum_banishment_vote_action.php:35
+msgid "You are not authorized to banish users."
+msgstr "您沒有權限封鎖用戶。"
+
+#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
+msgid "Banishment Vote"
+msgstr "封鎖投票"
+
+#: ../user/forum_banishment_vote.php:52
+msgid "No user with this ID found."
+msgstr "找不到符合 ID 的用戶"
+
+#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
+msgid "User is already banished"
+msgstr "用戶已被封鎖"
+
+#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
+msgid ""
+"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
+"for chosen time period.<br/>It should be done only if %1 has consistently "
+"exhibited trollish behavior."
+msgstr "您確定要封鎖 %1 嗎?<br/>該操作將在設定的時間期限內禁止 %1 發帖。 <br/>該操作只用在 %1 有連續的違規行為時被使用。"
+
+#: ../user/forum_banishment_vote.php:64
+msgid ""
+"Select the reason category, optionally write a longer description of why the"
+" user should be banished."
+msgstr "選擇原因分類,並附上為什麼要封鎖此用戶的原因。"
+
+#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
+msgid "Category"
+msgstr "分類"
+
+#: ../user/forum_banishment_vote.php:67
+#: ../user/forum_banishment_vote_action.php:59
+#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
+msgid "Obscene"
+msgstr "猥褻"
+
+#: ../user/forum_banishment_vote.php:68
+#: ../user/forum_banishment_vote_action.php:61
+#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
+msgstr "侮辱"
+
+#: ../user/forum_banishment_vote.php:69
+#: ../user/forum_banishment_vote_action.php:63
+#: ../user/forum_moderate_post.php:62
+msgid "User Request"
+msgstr "用戶請求"
+
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
+#: ../user/forum_moderate_thread.php:100
+msgid "Reason"
+msgstr "原因"
+
+#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
+msgid "Mailed if nonempty"
+msgstr "如果空白請填電子郵件"
+
+#: ../user/forum_banishment_vote.php:77
+msgid "Proceed with vote"
+msgstr "繼續投票"
+
+#: ../user/forum_banishment_vote_action.php:41
+#: ../user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
+msgstr "您必須指定一個操作..."
+
+#: ../user/forum_edit.php:41
+msgid ""
+"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
+"minutes after they have been created."
+msgstr "你將無法再編輯此文張。<br/>文章只能發佈後的 %1 分鐘內編輯。"
+
+#: ../user/forum_edit.php:47
+msgid "You are not authorized to edit this post."
+msgstr "您沒有權限編輯此文章。"
+
+#: ../user/forum_edit.php:86 ../user/forum_search.php:74
+msgid "Forum"
+msgstr "論壇"
+
+#: ../user/forum_edit.php:110
+msgid "Edit your message"
+msgstr "編輯您的訊息"
+
+#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
+#: ../user/forum_post.php:113 ../user/forum_post.php:115
+#: ../user/team_forum.php:71
+msgid "Title"
+msgstr "標題"
+
+#: ../user/forum_edit.php:144 ../user/forum_post.php:133
+msgid "Add my signature to this post"
+msgstr "在文章中加入我的簽名"
+
+#: ../user/forum_forum.php:46
+msgid "Not visible to you"
+msgstr "對您不可見"
+
+#: ../user/forum_forum.php:83
+msgid "Team message board for %1"
+msgstr "%1 的團隊留言板"
+
+#: ../user/forum_forum.php:99
+msgid "New thread"
+msgstr "新主題"
+
+#: ../user/forum_forum.php:99
+msgid "Add a new thread to this forum"
+msgstr "在論壇發佈一個新主題"
+
+#: ../user/forum_forum.php:119
+msgid "This message board is available as an %1RSS feed%2"
+msgstr "透過%1RSS訂閱%2可取得最新訊息"
+
+#: ../user/forum_forum.php:178
+msgid "This thread is hidden"
+msgstr "此主題已被隱藏"
+
+#: ../user/forum_forum.php:182
+msgid "This thread is sticky and locked, and you haven't read it yet"
+msgstr "此主題已置頂和關閉,您目前尚未閱讀"
+
+#: ../user/forum_forum.php:182
+msgid "sticky/locked/unread"
+msgstr "置頂/關閉/未讀"
+
+#: ../user/forum_forum.php:184
+msgid "This thread is sticky and you haven't read it yet"
+msgstr "此主題已置頂,您目前尚未閱讀"
+
+#: ../user/forum_forum.php:184
+msgid "sticky/unread"
+msgstr "置頂/未讀"
+
+#: ../user/forum_forum.php:188
+msgid "You haven't read this thread yet, and it's locked"
+msgstr "您尚未閱讀此主題,而且這個主題已關閉"
+
+#: ../user/forum_forum.php:188
+msgid "unread/locked"
+msgstr "未讀/關閉"
+
+#: ../user/forum_forum.php:190
+msgid "You haven't read this thread yet"
+msgstr "您尚未閱讀過此主題"
+
+#: ../user/forum_forum.php:196
+msgid "This thread is sticky and locked"
+msgstr "此主題已被置頂和關閉"
+
+#: ../user/forum_forum.php:196
+msgid "sticky/locked"
+msgstr "置頂/關閉"
+
+#: ../user/forum_forum.php:198
+msgid "This thread is sticky"
+msgstr "此主題已被置頂"
+
+#: ../user/forum_forum.php:198
+msgid "sticky"
+msgstr "置頂"
+
+#: ../user/forum_forum.php:202
+msgid "This thread is locked"
+msgstr "此主題已關閉"
+
+#: ../user/forum_forum.php:202
+msgid "locked"
+msgstr "關閉"
+
+#: ../user/forum_forum.php:204
+msgid "You read this thread"
+msgstr "您已閱讀過此主題"
+
+#: ../user/forum_forum.php:204
+msgid "read"
+msgstr "已讀"
+
+#: ../user/forum_help_desk.php:29
+msgid "Questions and answers"
+msgstr "問與答"
+
+#: ../user/forum_help_desk.php:32
+msgid ""
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
+msgstr "通過Skype和志工線上交流,支持多種語言,請到 %1BOINC 線上幫助%2。"
+
+#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
+msgid "Topic"
+msgstr "主題"
+
+#: ../user/forum_help_desk.php:47
+msgid "Questions"
+msgstr "問題"
+
+#: ../user/forum_index.php:58 ../user/team_forum.php:70
+msgid "Discussion among members of %1"
+msgstr "%1 成員間的討論"
+
+#: ../user/forum_index.php:74
+msgid "%1 Message boards"
+msgstr "%1 留言板"
+
+#: ../user/forum_index.php:83
+msgid ""
+"If you have a question or problem, please use the %1Questions & Answers%2 "
+"section of the message boards."
+msgstr "如果你有問題希望得到解答,請使用留言板中的 %1問題解答%2 區。"
+
+#: ../user/forum_index.php:128
+msgid "Subscribed threads"
+msgstr "已訂閱的主題"
+
+#: ../user/forum_moderate_post.php:45
+msgid "Moderate post"
+msgstr "處理文章"
+
+#: ../user/forum_moderate_post.php:55
+msgid "Hide post"
+msgstr "隱藏文章"
+
+#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
+msgid "Commercial spam"
+msgstr "垃圾廣告"
+
+#: ../user/forum_moderate_post.php:61
+msgid "Doublepost"
+msgstr "重覆發文"
+
+#: ../user/forum_moderate_post.php:66
+msgid "Move post"
+msgstr "移動文章"
+
+#: ../user/forum_moderate_post.php:68
+msgid "Destination thread ID:"
+msgstr "目標主題ID:"
+
+#: ../user/forum_moderate_post.php:81
+msgid "Banish user"
+msgstr "封鎖用戶"
+
+#: ../user/forum_moderate_post.php:83
+msgid "Ban duration"
+msgstr "禁用時間"
+
+#: ../user/forum_moderate_post.php:84
+msgid "4 hours"
+msgstr "4小時"
+
+#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
+msgid "1 day"
+msgstr "1天"
+
+#: ../user/forum_moderate_post.php:86
+msgid "1 week"
+msgstr "1週"
+
+#: ../user/forum_moderate_post.php:87
+msgid "2 weeks"
+msgstr "2週"
+
+#: ../user/forum_moderate_post.php:88
+msgid "1 month"
+msgstr "1個月"
+
+#: ../user/forum_moderate_post.php:89
+msgid "Forever"
+msgstr "永久"
+
+#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
+#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
+#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
+#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
+msgid "OK"
+msgstr "確認"
+
+#: ../user/forum_moderate_post.php:107
+msgid "Optional explanation %1 This is included in email to user.%2"
+msgstr "封鎖原因 %1將發送到用戶的電子郵件中。 %2"
+
+#: ../user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr "您沒有權限修改這篇文章"
+
+#: ../user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr "無法移動到不同的版面類型"
+
+#: ../user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr "無法移動到不同的版面"
+
+#: ../user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr "沒有權限封鎖用戶"
+
+#: ../user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr "封鎖"
+
+#: ../user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr "用戶 %1 已被封鎖。"
+
+#: ../user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr "操作失敗:可能是資料庫故障"
+
+#: ../user/forum_moderate_thread.php:38
+msgid "not authorized"
+msgstr "未授權"
+
+#: ../user/forum_moderate_thread.php:41
+msgid "Moderate thread '%1'"
+msgstr "處理主題“%1”"
+
+#: ../user/forum_moderate_thread.php:54
+msgid ""
+"Select the reason category, or write a longer description of why you're "
+"hiding or locking the thread; then press OK."
+msgstr "選擇處理原因,或者在編輯框中詳細說明要隱藏或鎖定此主題的原因,然後點擊確定。"
+
+#: ../user/forum_moderate_thread.php:78
+msgid "Current forum"
+msgstr "當前論壇"
+
+#: ../user/forum_moderate_thread.php:79
+msgid "Destination forum"
+msgstr "目標論壇"
+
+#: ../user/forum_moderate_thread.php:83
+msgid "New title:"
+msgstr "新標題:"
+
+#: ../user/forum_post.php:44
+msgid ""
+"Only project admins may create a thread here. However, you may reply to "
+"existing threads."
+msgstr "指有專案管理員可以在此建立主題,但您可以回覆已有的主題。"
+
+#: ../user/forum_post.php:64
+msgid ""
+"Your message was flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "您的訊息已被 Akismet 防垃圾郵件系統標記為垃圾訊息,請修改你輸入的內容並重試。"
+
+#: ../user/forum_post.php:74
+msgid "Create new thread"
+msgstr "建立新主題"
+
+#: ../user/forum_post.php:104
+msgid "Create a new thread"
+msgstr "建立新主題"
+
+#: ../user/forum_post.php:109
+msgid "Remember to add a title"
+msgstr "記得寫上標題"
+
+#: ../user/forum_post.php:131
+msgid "Show this item as a Notice in the BOINC Manager"
+msgstr "將該項顯示為 BOINC 客戶端的通知"
+
+#: ../user/forum_post.php:131
+msgid "Do so only for items likely to be of interest to all volunteers."
+msgstr "僅在所有參與者都可能對該項感興趣的時候使用"
+
+#: ../user/forum_rate.php:28
+msgid "Rating offline"
+msgstr "評分功能離線"
+
+#: ../user/forum_rate.php:29
+msgid "This function is turned off by the project"
+msgstr "此功能已被專案關閉"
+
+#: ../user/forum_rate.php:60
+msgid "You need more average or total credit to rate a post."
+msgstr "您需要更高的平均積分或總積分才能對文章進行評分。"
+
+#: ../user/forum_rate.php:64
+msgid "You have already rated this post."
+msgstr "您已經評價過此文章。"
+
+#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
+#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
+#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
+#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
+msgid "Return to thread"
+msgstr "返回主題"
+
+#: ../user/forum_rate.php:74
+msgid "Input Recorded"
+msgstr "輸入已紀錄"
+
+#: ../user/forum_rate.php:75
+msgid "Your input has been recorded. Thanks for your help."
+msgstr "輸入已經被記錄下來,感謝您的幫助。"
+
+#: ../user/forum_rate.php:77
+msgid "Vote Registered"
+msgstr "投票已登記"
+
+#: ../user/forum_rate.php:78
+msgid "Your rating has been recorded. Thanks for your input."
+msgstr "評分已經被記錄下來,感謝您的參與。"
+
+#: ../user/forum_rate.php:82
+msgid "Vote Submission Problem"
+msgstr "投票提交故障"
+
+#: ../user/forum_reply.php:76
+msgid ""
+"Your post has been flagged as spam by the Akismet anti-spam system. Please "
+"modify your text and try again."
+msgstr "你的文章已被 Akismet 防垃圾郵件系統標記為垃圾訊息,請修改你輸入的內容並重試。"
+
+#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
+#: ../user/forum_thread.php:284
+msgid "Post to thread"
+msgstr "回覆此主題"
+
+#: ../user/forum_reply.php:143
+msgid "Message:"
+msgstr "訊息:"
+
+#: ../user/forum_reply.php:146
+msgid "reply to %1Message ID%2:"
+msgstr "回覆%1訊息 ID%2:"
+
+#: ../user/forum_reply.php:172
+msgid "Post reply"
+msgstr "發表回覆"
+
+#: ../user/forum_reply.php:175
+msgid "Add my signature to this reply"
+msgstr "在回覆中附上我的簽名"
+
+#: ../user/forum_report_post.php:48
+msgid "You need more average or total credit to report a post."
+msgstr "您需要更高的平均積分或總積分才能舉報一個文章。"
+
+#: ../user/forum_report_post.php:68
+msgid "Report Registered"
+msgstr "舉報已記錄"
+
+#: ../user/forum_report_post.php:69
+msgid "Your report has been recorded. Thanks for your input."
+msgstr "您的回報已經記錄,感謝您的幫忙。"
+
+#: ../user/forum_report_post.php:70
+msgid ""
+"A moderator will now look at your report and decide what will happen - this "
+"may take a little while, so please be patient"
+msgstr "管理員將會查看您的舉報並決定如何處理 - 可能需要一些時間,請耐心等待"
+
+#: ../user/forum_report_post.php:74
+msgid "Report a forum post"
+msgstr "舉報論壇文章"
+
+#: ../user/forum_report_post.php:76
+msgid ""
+"Before reporting this post, consider using the +/- rating system instead. If"
+" enough users rate a post negatively it will eventually be hidden.<br />You "
+"can find the rating system at the bottom of the post."
+msgstr "在舉報之前,可以考慮使用+/- 評分系統。如果足夠多的用戶給一篇文章負面評價,該文章將自動隱藏。 <br />您可以在文章下方找到評分系統。"
+
+#: ../user/forum_report_post.php:83
+msgid "Report post"
+msgstr "舉報文章"
+
+#: ../user/forum_report_post.php:84
+msgid ""
+"Why do you find the post offensive: %1Please include enough information so that a person that\n"
+"has not yet read the thread will quickly be able to identify the issue.%2"
+msgstr "為什麼你認為這篇文章是令人不快的:%1請包含足夠的說明以便沒有閱讀過整個主題的人也能快速的判明問題。 %2"
+
+#: ../user/forum_report_post.php:93
+msgid "Report not registered"
+msgstr "舉報未記錄"
+
+#: ../user/forum_report_post.php:94
+msgid "Your report could not be recorded. Please wait a while and try again."
+msgstr "您的舉報未被記錄,請等待片刻後重試。"
+
+#: ../user/forum_report_post.php:95
+msgid ""
+"If this is not a temporary error, please report it to the project "
+"developers."
+msgstr "如果該故障無法自動恢復,請向專案開發人員報告。"
+
+#: ../user/forum_rss.php:38
+msgid "%1 RSS feed"
+msgstr "%1 RSS訂閱"
+
+#: ../user/forum_rss.php:39
+msgid "This message board is available as an RSS feed."
+msgstr "通過RSS訂閱可取得最新訊息。"
+
+#: ../user/forum_rss.php:41
+msgid "Options:"
+msgstr "選項:"
+
+#: ../user/forum_rss.php:45
+msgid "Include only posts by user ID %1 (default: all users)."
+msgstr "只包含用戶 ID 為 %1 的文章(默認:所有用戶)。"
+
+#: ../user/forum_rss.php:47
+msgid "Include only posts from the last %1 days (default: 30)."
+msgstr "只包含最近多少天內的文章(默認:30)。"
+
+#: ../user/forum_rss.php:49
+msgid "Threads only: %1 (Include only the first post of every thread)"
+msgstr "僅主題:%1(只包含每個主題的第一篇文章)"
+
+#: ../user/forum_search.php:29
+msgid "Forum search"
+msgstr "搜尋論壇"
+
+#: ../user/forum_search.php:33
+msgid "Search query"
+msgstr "搜尋詢問"
+
+#: ../user/forum_search.php:34
+msgid "Search for keywords:"
+msgstr "搜尋關鍵字:"
+
+#: ../user/forum_search.php:35
+msgid "Posts that contain all the specified words will be displayed"
+msgstr "包含所有指定字詞的文章將被顯示"
+
+#: ../user/forum_search.php:37
+msgid "For example: \"screensaver freeze\""
+msgstr "舉例:“螢幕保護程式凍結”"
+
+#: ../user/forum_search.php:38
+msgid "Search for author ID:"
+msgstr "搜尋作者 ID:"
+
+#: ../user/forum_search.php:39
+msgid "Only posts by this author will be displayed"
+msgstr "僅指定作者的文章會被顯示"
+
+#: ../user/forum_search.php:41
+msgid "For example: \"43214\""
+msgstr "舉例:“43214”"
+
+#: ../user/forum_search.php:43
+msgid "Search options"
+msgstr "搜尋選項"
+
+#: ../user/forum_search.php:44
+msgid "Search limits"
+msgstr "搜尋限制"
+
+#: ../user/forum_search.php:45
+msgid "Search at most this many days back in time"
+msgstr "只搜索最近多少天內的"
+
+#: ../user/forum_search.php:52 ../user/forum_search.php:53
+msgid "%1 months"
+msgstr "%1 月"
+
+#: ../user/forum_search.php:54
+msgid "1 year"
+msgstr "一年"
+
+#: ../user/forum_search.php:55
+msgid "no limit"
+msgstr "不限制"
+
+#: ../user/forum_search.php:75
+msgid "Only display posts from this forum"
+msgstr "只顯示指定論壇的文章"
+
+#: ../user/forum_search.php:86
+msgid "Sort by"
+msgstr "排序"
+
+#: ../user/forum_search.php:90
+msgid "Start the search"
+msgstr "開始搜尋"
+
+#: ../user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr "論壇搜尋結果"
+
+#: ../user/forum_search_action.php:176
+msgid "Thread titles matching your query:"
+msgstr "符合您的查詢條件的主題:"
+
+#: ../user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr "符合你的查詢條件的消息:"
+
+#: ../user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr "對不起,無法根據您的查詢條件找到任何結果。您可以試著放寬查詢條件,比如使用更少的關鍵字詞或者更寬泛的字詞。"
+
+#: ../user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr "你也可以%1用 Google 進行同樣的搜索。 %2"
+
+#: ../user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr "重新搜尋"
+
+#: ../user/forum_subscribe.php:48
+msgid "Subscription successful"
+msgstr "訂閱成功"
+
+#: ../user/forum_subscribe.php:51
+msgid ""
+"You are now subscribed to %1. You will be notified whenever there is a new "
+"post."
+msgstr "您已經訂閱主題%1,一旦該主題有更新,您將得到通知。"
+
+#: ../user/forum_subscribe.php:53
+msgid "Subscription failed"
+msgstr "訂閱失敗"
+
+#: ../user/forum_subscribe.php:54
+msgid ""
+"We are currently unable to subscribe you to %1. Please try again later.."
+msgstr "我們目前無法新增您對 %1 的訂閱,請稍後再試..."
+
+#: ../user/forum_subscribe.php:63
+msgid "Unsubscription successful"
+msgstr "退訂成功"
+
+#: ../user/forum_subscribe.php:66
+msgid ""
+"You are no longer subscribed to %1. You will no longer receive notifications"
+" for this thread."
+msgstr "您已經退訂主題%1,您將不會再收到該主題的通知。"
+
+#: ../user/forum_subscribe.php:68
+msgid "Unsubscription failed"
+msgstr "退訂失敗"
+
+#: ../user/forum_subscribe.php:69
+msgid ""
+"We are currently unable to unsubscribe you from %1. Please try again later.."
+msgstr "我們目前無法解除您對 %1 的訂閱,請稍後再試..."
+
+#: ../user/forum_subscribe.php:76
+msgid "Unknown subscription action"
+msgstr "未知的訂閱操作"
+
+#: ../user/forum_thread.php:66
+msgid "This forum is not visible to you."
+msgstr "您不能查看本論壇。"
+
+#: ../user/forum_thread.php:74
+msgid "This thread has been hidden by moderators."
+msgstr "主題已被管理員隱藏"
+
+#: ../user/forum_thread.php:129
+msgid "My question was answered"
+msgstr "我的問題已得到解答"
+
+#: ../user/forum_thread.php:130
+msgid "Click here if your question has been adequately answered"
+msgstr "如果您的問題已經得到充分的解答,請點擊這裡"
+
+#: ../user/forum_thread.php:138
+msgid "I've also got this question"
+msgstr "我也有同樣的問題"
+
+#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
+msgid "Add a new message to this thread"
+msgstr "回覆本主題"
+
+#: ../user/forum_thread.php:172
+msgid "Unsubscribe"
+msgstr "退訂主題"
+
+#: ../user/forum_thread.php:173
+msgid "You are subscribed to this thread.  Click here to unsubscribe."
+msgstr "您已經訂閱了本主題。點擊這裡取消訂閱。"
+
+#: ../user/forum_thread.php:179
+msgid "Subscribe"
+msgstr "訂閱該主題"
+
+#: ../user/forum_thread.php:180
+msgid "Click to get email when there are new posts in this thread"
+msgstr "如果您需要在本主題中有新的回帖時通過電子郵件通知你請點擊。"
+
+#: ../user/forum_thread.php:191
+msgid "Unhide this thread"
+msgstr "取消隱藏本主題"
+
+#: ../user/forum_thread.php:197
+msgid "Hide this thread"
+msgstr "隱藏本主題"
+
+#: ../user/forum_thread.php:203
+msgid "Make unsticky"
+msgstr "取消置頂"
+
+#: ../user/forum_thread.php:204
+msgid "Make this thread not sticky"
+msgstr "取消本主題的置頂"
+
+#: ../user/forum_thread.php:209
+msgid "Make sticky"
+msgstr "置頂"
+
+#: ../user/forum_thread.php:210
+msgid "Make this thread always appear at top of forum"
+msgstr "使得這個帖子總是在論壇的頂端顯示"
+
+#: ../user/forum_thread.php:216
+msgid "Unlock"
+msgstr "解鎖"
+
+#: ../user/forum_thread.php:217
+msgid "Allow new posts in this thread"
+msgstr "在這討論串中允許新回覆"
+
+#: ../user/forum_thread.php:222
+msgid "Lock"
+msgstr "鎖定"
+
+#: ../user/forum_thread.php:223
+msgid "Don't allow new posts in this thread"
+msgstr "在這討論串中不允許新回覆"
+
+#: ../user/forum_thread.php:230
+msgid "Move this thread to a different forum"
+msgstr "移動本主題到其它論壇"
+
+#: ../user/forum_thread.php:235
+msgid "Edit title"
+msgstr "編輯標題"
+
+#: ../user/forum_thread.php:236
+msgid "Edit thread title"
+msgstr "編輯主題的標題"
+
+#: ../user/forum_thread.php:244
+msgid "Delete thread permanently"
+msgstr "永久刪除討論串"
+
+#: ../user/forum_thread.php:254
+msgid "Export as Notice"
+msgstr "匯出通知"
+
+#: ../user/forum_thread.php:260
+msgid "Don't export"
+msgstr "不要匯出"
+
+#: ../user/forum_thread.php:261
+msgid "Don't export this news item as a Notice"
+msgstr "不要將新聞項匯出通知"
+
+#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
+msgid "Sort"
+msgstr "排序"
+
+#. --------------
+#: ../user/forum_thread_status.php:54
+msgid "Thread status updated"
+msgstr "主題狀態已更新"
+
+#: ../user/forum_thread_status.php:55
+msgid "The status has been updated."
+msgstr "狀態已更新。"
+
+#: ../user/forum_user_posts.php:75
+msgid "Posts by %1"
+msgstr "%1的文章"
+
+#: ../user/friend.php:35
+msgid "Already friends"
+msgstr "已經是好友"
+
+#: ../user/friend.php:41
+msgid "You requested friendship with %1 on %2."
+msgstr "您已經給 %1 發送過好友請求(%2)。"
+
+#: ../user/friend.php:43
+msgid "This request is still pending confirmation."
+msgstr "請求仍在等待對方確認。"
+
+#: ../user/friend.php:54
+msgid "%1 is not accepting friendship requests from you"
+msgstr "%1 沒有接受您的好友請求"
+
+#: ../user/friend.php:63
+msgid "You can't be friends with yourself"
+msgstr "您不能加自己為好友"
+
+#: ../user/friend.php:71
+msgid "Add friend"
+msgstr "新增好友"
+
+#: ../user/friend.php:76
+msgid ""
+"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
+" to confirm that you are friends."
+msgstr "您已經要求將 %1 加為好友,我們將通知 %1 並請他/她來確認你們的關係。"
+
+#: ../user/friend.php:79
+msgid "Add an optional message here:"
+msgstr "可以在這裡添加附加訊息:"
+
+#: ../user/friend.php:117
+msgid "Friend request sent"
+msgstr "好友請求已發送"
+
+#: ../user/friend.php:118
+msgid "We have notified %1 of your request."
+msgstr "我們已經把您的好友請求通知 %1。"
+
+#: ../user/friend.php:128
+msgid "Please log in as %1"
+msgstr "請以 %1 的身份登入"
+
+#: ../user/friend.php:129
+msgid "You must log in as %1 to view this friend request"
+msgstr "您必須以 %1 的身份登入才能查看該好友請求"
+
+#: ../user/friend.php:140
+msgid "Friend request"
+msgstr "好友請求"
+
+#: ../user/friend.php:143
+msgid "%1 has requested friendship with you."
+msgstr "%1 發送了好友請求給你。"
+
+#: ../user/friend.php:145
+msgid "%1 says: %2"
+msgstr "%1 還說:%2"
+
+#: ../user/friend.php:148
+msgid "Accept friendship"
+msgstr "接受好友請求"
+
+#: ../user/friend.php:148
+msgid "Click accept if %1 is in fact a friend"
+msgstr "如果 %1 是你的好友請點擊接受"
+
+#: ../user/friend.php:149
+msgid "Decline"
+msgstr "拒絕"
+
+#: ../user/friend.php:149
+msgid "Click decline if %1 is not a friend"
+msgstr "如果 %1 不是你的好友請點擊拒絕"
+
+#: ../user/friend.php:188
+msgid "Friendship confirmed"
+msgstr "好友請求已確認"
+
+#: ../user/friend.php:189
+msgid "Your friendship with %1 has been confirmed."
+msgstr "你與 %1 的好友關係已經被確認。"
+
+#: ../user/friend.php:207
+msgid "Friendship declined"
+msgstr "好友請求被拒絕"
+
+#: ../user/friend.php:208
+msgid "You have declined friendship with %1"
+msgstr "你已經拒絕了與 %1 的好友關係"
+
+#: ../user/friend.php:223
+msgid "Notification not found"
+msgstr "無法找到通知"
+
+#: ../user/friend.php:225
+msgid "Friend confirmed"
+msgstr "好友已確認"
+
+#: ../user/friend.php:226
+msgid "You are now friends with %1."
+msgstr "你現在和 %1 是好友了。"
+
+#: ../user/friend.php:234
+msgid "Cancel friendship?"
+msgstr "刪除好友"
+
+#: ../user/friend.php:236
+msgid "Are you sure you want to cancel your friendship with %1?"
+msgstr "你確定想要取消與 %1 的好友關係嗎?"
+
+#: ../user/friend.php:241
+msgid "Stay friends"
+msgstr "保持好友關係"
+
+#: ../user/friend.php:251
+msgid "Friendship cancelled"
+msgstr "好友關係已取消"
+
+#: ../user/friend.php:252
+msgid "Your friendship with %1 has been cancelled."
+msgstr "你與 %1 的好友關係已經取消。"
+
+#: ../user/get_passwd.php:27
+msgid ""
+"1) If you know your account's email address, and you can receive email "
+"there:"
+msgstr "1) 如果你知道你帳戶連結的電子郵件地址,你可以在那裡收到電子郵件:"
+
+#: ../user/get_passwd.php:28
+msgid ""
+"Enter the email address below, and click OK. You will be sent email "
+"instructions for resetting your password."
+msgstr "輸入電子郵件地址,點擊確定後,你將收到關於如何重置密碼的操作指導。"
+
+#: ../user/get_passwd.php:46
+msgid ""
+"2) If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "2) 如果你已經忘記了你帳戶所連結的電子郵件地址,或者你已經不能從此信箱接收電子郵件:"
+
+#: ../user/get_passwd.php:47
+msgid ""
+"If you have run BOINC under this account, you can still access it. Here's "
+"how:"
+msgstr "如果你仍有 BOINC 客戶端執行在該帳戶下,請按如下操作指導取回你的密碼:"
+
+#: ../user/get_passwd.php:50
+msgid ""
+"Go to the BOINC data directory on your computer (its location is written to "
+"the Event Log at startup)."
+msgstr "切換到你電腦上的 BOINC 資料目錄 (這個目錄在一開始就已經寫到事件記錄裡頭)"
+
+#: ../user/get_passwd.php:51
+msgid "Find your account file for this project; it will be named <b>%1</b>."
+msgstr "找到本專案的帳戶文件,文件名為:<b>%1</b>。"
+
+#: ../user/get_passwd.php:52
+msgid "Open the file in a text editor like Notepad. You'll see something like"
+msgstr "用記事本等文件編輯器打開該文件,你將看到類似的如下內容:"
+
+#: ../user/get_passwd.php:62
+msgid ""
+"Select and Copy the string between %1 and %2 (%3 in the above example)."
+msgstr "選取並複製%1 和%2 之間的內容(上述例子中就應該是%3)。"
+
+#: ../user/get_passwd.php:64
+msgid "Paste the string into the field below, and click OK."
+msgstr "將之前複製的內容貼到下面的表格中,並點擊確定。"
+
+#: ../user/get_passwd.php:65
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "你現在將登入進自己的帳戶,可以更新你的電子郵件和密碼。"
+
+#: ../user/get_passwd.php:71
+msgid "Log in with authenticator"
+msgstr "用身份驗證碼(authenticator)來登入"
+
+#: ../user/get_passwd.php:81
+msgid "Forgot your account info?"
+msgstr "忘記了你的帳戶資訊?"
+
+#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
+msgid "No GPU tasks reported"
+msgstr "還沒有已上傳的 GPU 運算任務"
+
+#: ../user/gpu_list.php:206
+msgid "Top GPU models"
+msgstr "GPU 型號排名"
+
+#: ../user/gpu_list.php:207
+msgid ""
+"The following lists show the most productive GPU models on different "
+"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
+"shown in parentheses."
+msgstr "下面的列表顯示了各個平臺上效率最好的 GPU 型號,這些速度由任務平均完成時間計算得到,不同型號間的速度差異用百分比來表示。"
+
+#: ../user/home.php:42
+msgid "Welcome to %1"
+msgstr "歡迎來到 %1"
+
+#: ../user/home.php:43
+msgid "View and edit your account preferences using the links below."
+msgstr "使用下面的連結查看及編輯你的帳戶偏好設定"
+
+#: ../user/home.php:46
+msgid "If you have not already done so, %1download BOINC client software%2."
+msgstr "如果還沒有的話,%1下載 BOINC 的客戶端軟體%2。"
+
+#: ../user/home.php:49 ../project.sample/project.inc:70
+msgid "Your account"
+msgstr "您的帳號"
+
+#: ../user/host_app_versions.php:37
+msgid "Anonymous platform, missing app"
+msgstr "匿名平台,未知程式"
+
+#: ../user/host_app_versions.php:40
+msgid "anonymous platform"
+msgstr "匿名平台"
+
+#: ../user/host_app_versions.php:43
+msgid "Missing app version"
+msgstr "無法辨識程式版本"
+
+#: ../user/host_app_versions.php:45
+msgid "Missing app"
+msgstr "未知程式"
+
+#: ../user/host_app_versions.php:47
+msgid "Missing platform"
+msgstr "無法辨識的平台"
+
+#: ../user/host_app_versions.php:56
+msgid "Number of tasks completed"
+msgstr "完成的運算任務數量"
+
+#: ../user/host_app_versions.php:57
+msgid "Max tasks per day"
+msgstr "每日最大任務數量"
+
+#: ../user/host_app_versions.php:58
+msgid "Number of tasks today"
+msgstr "今天的任務數量"
+
+#: ../user/host_app_versions.php:59
+msgid "Consecutive valid tasks"
+msgstr "連續完成的運算任務數量"
+
+#: ../user/host_app_versions.php:63
+msgid "Average processing rate"
+msgstr "平均處理速度"
+
+#: ../user/host_app_versions.php:72
+msgid "Application details for host %1"
+msgstr "主機 %1 的運算程式細節"
+
+#: ../user/host_delete.php:31
+msgid "We have no record of that computer."
+msgstr "我們沒有該電腦的記錄。"
+
+#: ../user/host_delete.php:38
+msgid ""
+"You can not delete our record of this computer because our database still "
+"contains work for it. You must wait a few days until the work for this "
+"computer has been deleted from the project database."
+msgstr "你目前不能刪除該電腦的記錄,因為我們資料庫中仍有和其相關的運算任務記錄。你需要等到所有指定給該電腦的任務記錄都從專案資料庫中刪除,一般可能需要幾天。"
+
+#: ../user/host_delete.php:40
+msgid "Delete record of computer"
+msgstr "刪除電腦紀錄"
+
+#: ../user/host_delete.php:41
+msgid "Record deleted."
+msgstr "紀錄已刪除。"
+
+#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+msgid "Return to list of your computers"
+msgstr "返回您的電腦列表"
+
+#: ../user/host_edit_action.php:39
+msgid "Merge computer records"
+msgstr "合併電腦記錄"
+
+#: ../user/host_edit_form.php:35
+msgid "Merge computers"
+msgstr "合併電腦"
+
+#: ../user/host_edit_form.php:38
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "有時候,BOINC 會給同一台電腦賦予多個唯一標識,你可以通過將舊標識和新標識合併以糾正該問題。"
+
+#: ../user/host_edit_form.php:56
+msgid "No hosts are eligible for merging with this one."
+msgstr "沒有符合條件的主機可以和該主機合併。"
+
+#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+msgid "Show details"
+msgstr "顯示細節"
+
+#: ../user/host_edit_form.php:66
+msgid ""
+"Check the computers that are the same as %1 (created %2, computer ID %3):"
+msgstr "選擇和%1 相同的電腦(創建於%2,電腦 ID 為%3):"
+
+#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+msgid "name"
+msgstr "名稱"
+
+#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+msgid "created"
+msgstr "建立時間"
+
+#: ../user/host_edit_form.php:70
+msgid "computer ID"
+msgstr "電腦 ID"
+
+#: ../user/host_edit_form.php:77
+msgid "no hostname"
+msgstr "沒有主機名稱"
+
+#: ../user/host_edit_form.php:109
+msgid "Merge hosts"
+msgstr "合併主機"
+
+#: ../user/host_update_credit.php:27
+msgid "Updating computer credit"
+msgstr "正在更新電腦積分"
+
+#: ../user/host_update_credit.php:37
+msgid "Host credit updated"
+msgstr "主機積分已更新"
+
+#: ../user/host_venue_action.php:41
+msgid "Host venue updated"
+msgstr "主機位置已更新"
+
+#: ../user/host_venue_action.php:43
+msgid "none"
+msgstr "無"
+
+#: ../user/host_venue_action.php:46
+msgid "The venue of this host has been set to %1."
+msgstr "該主機的位置已設置為 %1。"
+
+#: ../user/host_venue_action.php:48
+msgid ""
+"This change will take effect the next time the host communicates with this "
+"project."
+msgstr "更改將在該主機下一次和專案通訊的時候生效。"
+
+#: ../user/host_venue_action.php:50
+msgid "Return to host page"
+msgstr "返回主機頁面"
+
+#: ../user/hosts_user.php:53
+msgid "Computers belonging to %1"
+msgstr "%1 的電腦"
+
+#: ../user/hosts_user.php:55
+msgid "Computers hidden"
+msgstr "電腦已隱藏"
+
+#: ../user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
+msgstr "該用戶已設定為不顯示其電腦的詳細信息。"
+
+#: ../user/hosts_user.php:64
+msgid "Your computers"
+msgstr "您的電腦"
+
+#: ../user/html.php:23
+msgid "Allowed HTML tags"
+msgstr "允許 HTML 語法"
+
+#: ../user/html.php:25
+msgid "The following HTML tags are allowed in team descriptions:"
+msgstr "團隊描述中可以使用下列 HTML 語法:"
+
+#: ../user/html.php:27
+msgid "bold"
+msgstr "粗體"
+
+#: ../user/html.php:28
+msgid "italics"
+msgstr "斜體"
+
+#: ../user/html.php:29
+msgid "hyperlink"
+msgstr "超連結"
+
+#: ../user/html.php:30
+msgid "paragraph"
+msgstr "段落"
+
+#: ../user/html.php:31
+msgid "break"
+msgstr "換行"
+
+#: ../user/html.php:32
+msgid "preformatted"
+msgstr "預設格式"
+
+#: ../user/html.php:33
+msgid ""
+"image; height cannot exceed 450 pixels. Please do not link to images without"
+" permission of the web site where the image is hosted."
+msgstr "圖片,高度不能超出 450 像素,請不要在未經允許的情況下引用其它網站上的圖片。"
+
+#: ../user/html.php:35
+msgid "You can also use ampersand notation for special characters."
+msgstr "你也可以使用&(和號)開頭的字符實體來表示特殊字符(比如  等)。"
+
+#: ../user/info.php:24 ../user/sample_index.php:78
+msgid "Read our rules and policies"
+msgstr "閱讀規定和政策"
+
+#: ../user/info.php:35
+msgid "Run %1 only on authorized computers"
+msgstr "僅在已授權的電腦上執行 %1"
+
+#: ../user/info.php:36
+msgid ""
+"Run %1 only on computers that you own, or for which you have obtained the "
+"owner's permission. Some companies and schools have policies that prohibit "
+"using their computers for projects such as %1."
+msgstr "僅在你自己的或者已獲准使用的電腦上執行 %1。某些企業和學校是禁止在他們的電腦上執行和 %1 的類似的專案。"
+
+#: ../user/info.php:38
+msgid "How %1 will use your computer"
+msgstr "%1 如何使用你的電腦"
+
+#: ../user/info.php:39
+msgid ""
+"When you run %1 on your computer, it will use part of the computer's CPU "
+"power, disk space, and network bandwidth. You can control how much of your "
+"resources are used by %1, and when it uses them."
+msgstr "當你在電腦上執行 %1 時,他會使用你電腦上部分的處理器資源、硬碟空間以及網絡。你可以控制 %1 的資源使用量以及何時可以使用。"
+
+#: ../user/info.php:40
+msgid ""
+"The work done by your computer contributes to the goals of %1, as described "
+"on its web site. The application programs may change from time to time."
+msgstr "你的電腦所完成的運算任務僅用來幫助 %1 實現專案的目標。專案程式的版本可能會經常更新。"
+
+#: ../user/info.php:42
+msgid "Privacy policy"
+msgstr "隱私政策"
+
+#: ../user/info.php:43
+msgid ""
+"Your account on %1 is identified by a name that you choose. This name may be"
+" shown on the %1 web site, along with a summary of the work your computer "
+"has done for %1. If you want to be anonymous, choose a name that doesn't "
+"reveal your identity."
+msgstr "%1 通過你選擇的用戶名來標識你的帳戶。該用戶名以及你為%1 完成的運算任務的摘要將顯示在 %1 的網站上。如果你想要匿名,那請選擇一個不會洩漏你身份的用戶名。"
+
+#: ../user/info.php:44
+msgid ""
+"If you participate in %1, information about your computer (such as its "
+"processor type, amount of memory, etc.) will be recorded by %1 and used to "
+"decide what type of work to assign to your computer. This information will "
+"also be shown on %1's web site. Nothing that reveals your computer's "
+"location (e.g. its domain name or network address) will be shown."
+msgstr "如果你參加了%1,那你的電腦中的相關信息比如處理器的型號、記憶體的大小等會被%1 記錄下來,以用來決定什麼樣的運算任務最適合你的電腦。這些信息也會顯示在 %1 的網站上,但是請不要擔心,我們絕對不會洩漏出你的電腦的位置比如域名、網絡地址等。"
+
+#: ../user/info.php:45
+msgid ""
+"To participate in %1, you must give an address where you receive email. This"
+" address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
+msgstr "為了參加 %1,你必須提供一個能夠接收郵件的電子郵件地址。這個地址不會被顯示在 %1 的網站上。 %1 可能會定期向你發送專案的新聞快訊; 當然,你隨時可以選擇退訂。"
+
+#: ../user/info.php:46
+msgid ""
+"Private messages sent on the %1 web site are visible only to the sender and "
+"recipient.  %1 does not examine or police the content of private messages.  "
+"If you receive unwanted private messages from another %1 user, you may add "
+"them to your %2message filter%3.  This will prevent you from seeing any "
+"public or private messages from that user."
+msgstr "在 %1 網站上發送的私人消息只對發送者和接收者可見。 %1 不會檢查或審查消息的內容。如果你從 %1 的用戶那收到不希望收到的私人消息,你可以把他們加入到你的 %2消息過濾器%3。這樣就可以避免你收到來自那位用戶的任何公共或私人消息。"
+
+#: ../user/info.php:47
+msgid ""
+"If you use our web site forums you must follow the %2posting guidelines%3.  "
+"Messages posted to the %1 forums are visible to everyone, including non-"
+"members.  By posting to the forums, you are granting irrevocable license for"
+" anyone to view and copy your posts."
+msgstr "如果你要使用我們的網站論壇,你必須遵守 %2發文注意事項%3。發送到 %1 論壇的文章對所有人都是可見的,即便不是我們網站的用戶也能看到。你的發文同時表明你允許所有人查看和覆製你的文章。"
+
+#: ../user/info.php:48
+msgid "Is it safe to run %1?"
+msgstr "執行 %1 安全嗎?"
+
+#: ../user/info.php:49
+msgid ""
+"Any time you download a program through the Internet you are taking a "
+"chance: the program might have dangerous errors, or the download server "
+"might have been hacked. %1 has made efforts to minimize these risks. We have"
+" tested our applications carefully. Our servers are behind a firewall and "
+"are configured for high security. To ensure the integrity of program "
+"downloads, all executable files are digitally signed on a secure computer "
+"not connected to the Internet."
+msgstr "只要你從網路下載程式就有可能碰到有危險錯誤的程式或者下載服務器已被駭客攻擊的情況。 %1 已經盡力最小化這方面的風險。我們已經仔細測試了我們的程式。我們的伺服器處於防火牆之後,並且設置了最高的安全級別。為了保證程式下載的正確性,全部的可執行文件會被放置在一台未聯網的安全電腦中進行數字簽名。"
+
+#: ../user/info.php:50
+msgid ""
+"The applications run by %1 may cause some computers to overheat. If this "
+"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
+msgstr "%1 的程式可能會導致某些電腦溫度過高。如果你碰到了這種情形,請停止執行 %1 或者使用 %2 某些工具軟體 %3 限制程式對處理器的使用。"
+
+#: ../user/info.php:51
+msgid ""
+"%1 was developed by %2. BOINC was developed at the University of California."
+msgstr "%1 由 %2 開發。 BOINC 由加州大學開發。"
+
+#: ../user/info.php:53
+msgid "Liability"
+msgstr "免責申明"
+
+#: ../user/info.php:54
+msgid ""
+"%1 and %2 assume no liability for damage to your computer, loss of data, or "
+"any other event or condition that may occur as a result of participating in "
+"%1."
+msgstr "%1 和%2 對於你的電腦損壞、資料丟失或其他任意由於參與 %1 所可能造成的事件沒有賠償責任。"
+
+#: ../user/info.php:56
+msgid "Other BOINC projects"
+msgstr "其它 BOINC 專案"
+
+#: ../user/info.php:57
+msgid ""
+"Other projects use the same platform, BOINC, as %1. You may want to consider"
+" participating in one or more of these projects. By doing so, your computer "
+"will do useful work even when %1 has no work available for it."
+msgstr "除了 %1,還有其它一些專案也使用 BOINC 平台。你也許會考慮同時參加多個專案,這樣當你無法從 %1 獲取運算任務時,你的電腦仍可以處理其它專案的運算任務。"
+
+#: ../user/info.php:58
+msgid ""
+"These other projects are not associated with %1, and we cannot vouch for "
+"their security practices or the nature of their research. Join them at your "
+"own risk."
+msgstr "其它專案同 %1 沒有關係,所以我們也無法保證這些專案的安全性以及確切的研究內容,請你自行決定是否參加其他專案。"
+
+#: ../user/language_select.php:47
+msgid "Language selection"
+msgstr "語言選擇"
+
+#: ../user/language_select.php:73
+msgid ""
+"This web site is available in several languages. The currently selected "
+"language is %1."
+msgstr "本網站提供了多種語言界面,目前選擇的語言是 %1。"
+
+#: ../user/language_select.php:78
+msgid ""
+"Normally the choice of language is determined by your browser's language "
+"setting, which is: %1.  You can change this setting using:"
+msgstr "通常語言的選擇是通過你瀏覽器的語言設置來自動完成的,目前選擇為:%1。你可以通過下面的操作來改變這個設置:"
+
+#: ../user/language_select.php:83
+msgid "Firefox: Tools/Options/General"
+msgstr "Firefox(火狐):工具/選項/內容"
+
+#: ../user/language_select.php:85
+msgid "Microsoft IE: Tools/Internet Options/Languages"
+msgstr "微軟 IE:工具/Internet 選項/語言"
+
+#: ../user/language_select.php:89
+msgid ""
+"Or you can select a language by clicking on one of the links.  This will "
+"send your browser a cookie; make sure your browser accepts cookies from our "
+"domain."
+msgstr "或者你也可以點擊下面的連結來選擇一種語言。該操作將給你的瀏覽器發送一個Cookie,請確保你的瀏覽器能從我們的域名接收Cookie。"
+
+#: ../user/language_select.php:95
+msgid "Language name (click to select)"
+msgstr "語言名稱(直接點擊進行設置)"
+
+#: ../user/language_select.php:97
+msgid "Use browser language setting"
+msgstr "使用瀏覽器的語言設置"
+
+#: ../user/language_select.php:113
+msgid ""
+"Translations are done by volunteers.  If your native language is not here, "
+"%1you can provide a translation%2."
+msgstr "翻譯工作都是由志工完成的,如果沒有您的語言,%1您可以自行翻譯%2。"
+
+#: ../user/login_form.php:57
+msgid "or %1create an account%2."
+msgstr "或者%1創建一個新帳戶%2。"
+
+#: ../user/merge_by_name.php:31
+msgid "Processing %1"
+msgstr "處理中 %1"
+
+#: ../user/merge_by_name.php:43
+msgid "Merged %1 into %2"
+msgstr "%1 已合併至 %2"
+
+#: ../user/merge_by_name.php:72
+msgid "Return to the list of your computers"
+msgstr "返回你的電腦列表"
+
+#: ../user/merge_by_name.php:76
+msgid ""
+"This operation merges computers based on their domain name.\n"
+"        <p>\n"
+"        For each domain name, it will merge all older computers\n"
+"        having that name with the newest computer having that name.\n"
+"        Incompatible computers will not be merged.\n"
+"        <p>"
+msgstr "該操作使用名稱來合併電腦。 \n<p>\n對於每個名稱,它會將所有老的電腦合併到最新的電腦上。 \n軟硬件配置不兼容的電腦將不會被合併。 \n<p>"
+
+#: ../user/merge_by_name.php:82
+msgid "Go ahead and do this"
+msgstr "繼續操作"
+
+#: ../user/merge_by_name.php:83
+msgid "Return to the list of computers"
+msgstr "返回電腦列表"
+
+#: ../user/moderation.php:26
+msgid ""
+"\n"
+"To maximize discussion and flow of information,\n"
+"our message boards are moderated.\n"
+"Message board postings are subject to the following posting rules:\n"
+msgstr "\n為了讓大家的討論和交流能有效進行,\n我們為留言板設立了管理協調機制。 \n所有留言板的發帖都必須遵循如下的規則:\n"
+
+#: ../user/moderation.php:30
+msgid ""
+"\n"
+"<p>\n"
+"Moderators may delete posts that violate any of these rules.\n"
+"The authors of deleted posts will be notified via email.\n"
+"Gross offenders may have their ability to post messages temporarily revoked\n"
+"(though to prevent abuse only project administrators have the ability to do so).\n"
+"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
+"IP addresses of other participants, excessive thread creation to spam\n"
+"the forums, etc.), while not listed in the formal rules, may still\n"
+"lead to similar penalties.\n"
+"<p>\n"
+"If you think a post violates any of the posting rules,\n"
+"click the red X on the post and fill out the form;\n"
+"moderators will be notified of your complaint.\n"
+"Please use this button only for clear violations - not\n"
+"personal disputes.\n"
+"<p>\n"
+"We try to be as fair as we can when moderating,\n"
+"but in a large community of users, with many different viewpoints,\n"
+"there will always be some people that will not be happy\n"
+"with our moderation decisions.\n"
+"While we regret that this happens,\n"
+"please realize that we cannot suit all of the people all of the time\n"
+"and have to make decisions based on our resources and\n"
+"what is best for the forum overall.\n"
+"Please don't discuss our moderation policy on the forums. We aren't\n"
+"a social engineering project nor are we in the business of creating\n"
+"a perfectly fair system. So such discussions tend to be counterproductive\n"
+"and potentially incendiary. If you have a legitimate claim,\n"
+"send email to the address below.\n"
+"<p>\n"
+"This moderation policy is set by the %1 project.\n"
+"If you have comments about the policy, email %2.\n"
+"\n"
+msgstr "\n<p>\n管理員可能會刪除違規的文章,被刪文的用戶將得到電子郵件通知。 \n嚴重的違規者可能會被臨時封鎖發文權限(為防止該操作被濫用,只有專案管理員有相關的權限)。 \n其它未列在上述規則中的惡意行為(比如惡意收集其他用戶的IP 地址、或者在論壇中大量發表垃圾內容等)也可能面臨類似的處罰。 \n<p>\n如果你碰到違規的文章,請點擊文章內的紅色小叉並進行相應的說明;管理員將收到通知並進行處理。 \n該功能請務必僅用於處理違規文章,而不要用於處理個人爭端。 \n<p>\n我們在操作的時候將盡可能地保證公平,但對於如此大的一個網絡社區,包含了各種不同的觀點,可能仍然會有人對我們的管理決定不滿意。 \n對此我們十分抱歉,但請大家多多諒解,我們不可能在所有時候讓所有人滿意,我們只能根據我們了解的訊息、並且從論壇的整體利益出發來作出決定。 \n請不要在論壇討論我們的管理策略,我們不是在進行一個社會工程專案,也沒有試圖創建一個完美而公平的系統。 \n因此這樣的討論並不會起到什麼積極的作用,而且是潛在有害的。 \n當然,如果你一些合理的想法,請發送電子郵件到下面的 [...]
+
+#: ../user/pending.php:66
+msgid "Pending credit"
+msgstr "待授予的積分"
+
+#: ../user/pending.php:68
+msgid "Result ID"
+msgstr "運算結果 ID"
+
+#: ../user/pending.php:68
+msgid "Workunit ID"
+msgstr "任務單元 ID"
+
+#: ../user/pending.php:68
+msgid "Host ID"
+msgstr "主機 ID"
+
+#: ../user/pending.php:68
+msgid "Claimed credit"
+msgstr "申請積分"
+
+#: ../user/pending.php:81
+msgid "Pending credit: %1"
+msgstr "待授予的積分:%1"
+
+#: ../user/pm.php:32
+msgid "Block messages from this user"
+msgstr "封鎖該用戶的消息"
+
+#: ../user/pm.php:32
+msgid "Block user"
+msgstr "封鎖用戶"
+
+#: ../user/pm.php:73
+msgid "Your message has been sent."
+msgstr "你的消息已被發送。"
+
+#: ../user/pm.php:83
+msgid "You have no private messages."
+msgstr "你目前沒有私人消息。"
+
+#: ../user/pm.php:90
+msgid "Sender and date"
+msgstr "發送人及日期"
+
+#: ../user/pm.php:111
+msgid "Reply to this message"
+msgstr "回覆該消息"
+
+#: ../user/pm.php:112
+msgid "Delete this message"
+msgstr "刪除該消息"
+
+#: ../user/pm.php:117
+msgid "Select all"
+msgstr "全選"
+
+#: ../user/pm.php:119
+msgid "Unselect all"
+msgstr "取消全選"
+
+#: ../user/pm.php:122
+msgid "Delete selected messages"
+msgstr "刪除選中的消息"
+
+#: ../user/pm.php:145
+msgid "Sender"
+msgstr "發送人"
+
+#: ../user/pm.php:148
+msgid "Date"
+msgstr "日期"
+
+#: ../user/pm.php:190
+msgid "You need to fill all fields to send a private message"
+msgstr "要發送私人消息,你必須填寫所有字段"
+
+#: ../user/pm.php:193
+msgid ""
+"Your message was flagged as spam\n"
+"                by the Akismet anti-spam system.\n"
+"                Please modify your text and try again."
+msgstr "你的消息已被 Akismet 防垃圾信息系統\n標記為垃圾信息,請修改你輸入的內容並重試。"
+
+#: ../user/pm.php:210
+msgid "Could not find user with id %1"
+msgstr "無法找到ID為 %1 的用戶"
+
+#: ../user/pm.php:215
+msgid "Could not find user with username %1"
+msgstr "無法找到名為 %1 的用戶"
+
+#. Non-unique username
+#: ../user/pm.php:217
+msgid "%1 is not a unique username; you will have to use user ID"
+msgstr "因為 %1 不是唯一的用戶名,你將只能使用用戶ID"
+
+#: ../user/pm.php:222
+msgid "User %1 (ID: %2) is not accepting private messages from you."
+msgstr "用戶 %1(ID 為%2)已禁止接受你的私人消息。"
+
+#: ../user/pm.php:245 ../user/view_profile.php:28
+msgid "No such user"
+msgstr "沒有這個用戶"
+
+#: ../user/pm.php:247
+msgid "Really block %1?"
+msgstr "確定要封鎖 %1 嗎?"
+
+#: ../user/pm.php:248
+msgid ""
+"Are you really sure you want to block user %1 from sending you private "
+"messages?"
+msgstr "你確定要封鎖用戶 %1 向你發送私人消息嗎?"
+
+#: ../user/pm.php:249
+msgid "Please note that you can only block a limited amount of users."
+msgstr "請注意你只能封鎖有限數量的用戶。"
+
+#: ../user/pm.php:250
+msgid ""
+"Once the user has been blocked you can unblock it using forum preferences "
+"page."
+msgstr "一旦該用戶被你封鎖,你可以在論壇的偏好設定中解除。"
+
+#: ../user/pm.php:257
+msgid "No, cancel"
+msgstr "不,取消"
+
+#: ../user/pm.php:265 ../user/team_admins.php:100
+msgid "no such user"
+msgstr "沒有這個用戶"
+
+#: ../user/pm.php:268
+msgid "User %1 blocked"
+msgstr "用戶 %1 已被封鎖"
+
+#: ../user/pm.php:270
+msgid "User %1 has been blocked from sending you private messages."
+msgstr "用戶 %1 已被封鎖向你發送私人消息。"
+
+#: ../user/pm.php:271
+msgid "To unblock, visit %1message board preferences%2"
+msgstr "要解除封鎖,請訪問%1留言板的偏好設定%2"
+
+#: ../user/pm.php:307
+msgid "Unknown action"
+msgstr "未知的操作"
+
+#: ../user/prefs.php:33
+msgid ""
+"Your preferences have been updated, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "您的偏好設定已經更新\n          將在您的電腦與 %1 進行通訊的時候生效\n          或者您也可以直接執行 BOINC Manager裡的%2更新%3命令。"
+
+#: ../user/prefs.php:42
+msgid ""
+"Your preferences have been reset to the defaults, and\n"
+"          will take effect when your computer communicates with %1\n"
+"          or you issue the %2Update%3 command from the BOINC Manager."
+msgstr "您的偏好設定已還原為預設值\n將在你的電腦與%1進行通訊的時候生效\n或者你也可以直接執行 BOINC 客戶端裡的%2更新%3。"
+
+#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr "%1(用於%2)"
+
+#: ../user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr "回到偏好設定"
+
+#: ../user/prefs_remove.php:46
+msgid "Confirm delete preferences"
+msgstr "確定刪除偏好設定"
+
+#: ../user/prefs_remove.php:49
+msgid "Are you sure you want to delete your separate %1 preferences for %2?"
+msgstr "你確定要刪除%1偏好設定(用於%2)嗎?"
+
+#: ../user/prefs_remove.php:53
+msgid "Remove preferences"
+msgstr "移除偏好設定"
+
+#: ../user/prefs_remove.php:55
+msgid "Cancel"
+msgstr "取消"
+
+#: ../user/profile_menu.php:34 ../user/sample_index.php:119
+msgid "Profiles"
+msgstr "用戶檔案"
+
+#: ../user/profile_menu.php:37
+msgid ""
+"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
+"community."
+msgstr "通過%1用戶檔案%2參與者可以和%3社區分享他的背景和觀點。"
+
+#: ../user/profile_menu.php:38
+msgid ""
+"Explore the diversity of your fellow volunteers, and contribute your own "
+"views for others to enjoy."
+msgstr "可以了解其他參與者的想法,也可以讓他人看到你分享的觀點。"
+
+#: ../user/profile_menu.php:39
+msgid ""
+"If you haven't already, you can %1create your own user profile%2 for others "
+"to see!"
+msgstr "如果你還沒有用戶檔案的話,你現在就可以%1建立屬於你自己的用戶檔案了%2!"
+
+#: ../user/profile_menu.php:44
+msgid "User of the Day"
+msgstr "每日用戶"
+
+#: ../user/profile_menu.php:59
+msgid "User Profile Explorer"
+msgstr "使用用戶檔案瀏覽器"
+
+#: ../user/profile_menu.php:62
+msgid "View the %1User Picture Gallery%2."
+msgstr "查看%1用戶圖片庫%2。"
+
+#: ../user/profile_menu.php:63
+msgid "Browse profiles %1by country%2."
+msgstr "%1按國家或地區%2瀏覽用戶檔案。"
+
+#: ../user/profile_menu.php:64
+msgid ""
+"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
+"without pictures%2."
+msgstr "%1隨機地瀏覽所有用戶檔案%2,%3隨機地瀏覽帶圖片的用戶檔案%2,或者%4隨機地瀏覽不帶圖片%2的用戶檔案。"
+
+#: ../user/profile_menu.php:68
+msgid "Alphabetical profile listings:"
+msgstr "按字母表順序的用戶檔案列表:"
+
+#: ../user/profile_menu.php:74
+msgid "Search profile text"
+msgstr "搜索用戶檔案文件"
+
+#: ../user/profile_menu.php:100
+msgid "No profiles"
+msgstr "沒有用戶檔案"
+
+#: ../user/profile_menu.php:101
+msgid "No profiles matched your query."
+msgstr "沒有用戶檔案符合你的查詢條件。"
+
+#: ../user/profile_rate.php:31
+msgid "Invalid vote type:"
+msgstr "錯誤的投票類型:"
+
+#: ../user/profile_rate.php:36
+msgid "Vote Recorded"
+msgstr "投票已記錄"
+
+#: ../user/profile_rate.php:40
+msgid "Thank you"
+msgstr "非常感謝"
+
+#: ../user/profile_rate.php:43
+msgid "Your recommendation has been recorded."
+msgstr "你的推薦已經被記錄下來。"
+
+#: ../user/profile_rate.php:45
+msgid "Your vote to reject this profile has been recorded."
+msgstr "你對該用戶檔案的反感已經被記錄下來。"
+
+#: ../user/profile_rate.php:48
+msgid "Return to profile."
+msgstr "返回用戶檔案。"
+
+#: ../user/profile_search_action.php:38
+msgid "Profiles containing '%1'"
+msgstr "包含'%1'的個人檔案"
+
+#: ../user/profile_search_action.php:42
+msgid "User name"
+msgstr "用戶名稱"
+
+#: ../user/profile_search_action.php:43
+msgid "Joined project"
+msgstr "加入的專案"
+
+#: ../user/profile_search_action.php:46
+msgid "Recent credit"
+msgstr "近期平均積分"
+
+#: ../user/profile_search_action.php:56
+msgid "No profiles found containing '%1'"
+msgstr "沒有找到包含'%1'的個人檔案"
+
+#: ../user/result.php:33
+msgid "No such task:"
+msgstr "此任務不存在:"
+
+#: ../user/results.php:29
+msgid "This feature is turned off temporarily"
+msgstr "該特性已臨時被關閉"
+
+#: ../user/results.php:56
+msgid "No computer with ID %1 found"
+msgstr "找不到 ID 為 %1 的電腦"
+
+#: ../user/results.php:63
+msgid "No access"
+msgstr "無法訪問"
+
+#: ../user/results.php:69
+msgid "Missing user ID or host ID"
+msgstr "用戶 ID 或 主機 ID 丟失"
+
+#: ../user/results.php:107
+msgid "No tasks to display"
+msgstr "無任務"
+
+#: ../user/sample_index.php:195
+msgid "User of the day"
+msgstr "本日用戶"
+
+#: ../user/server_status.php:59
+msgid "Not Running"
+msgstr "未執行"
+
+#: ../user/server_status.php:63
+msgid "Running"
+msgstr "執行中"
+
+#: ../user/server_status.php:67
+msgid "Disabled"
+msgstr "已禁用"
+
+#: ../user/server_status.php:105
+msgid "Project status"
+msgstr "專案狀態"
+
+#: ../user/server_status.php:110
+msgid "Server status"
+msgstr "伺服器狀態"
+
+#: ../user/server_status.php:113
+msgid "Program"
+msgstr "程式"
+
+#: ../user/server_status.php:113
+msgid "Host"
+msgstr "主機"
+
+#: ../user/server_status.php:125
+msgid "Database schema version: "
+msgstr "資料庫架構版本:"
+
+#: ../user/server_status.php:138
+msgid "Computing status"
+msgstr "運算狀態"
+
+#: ../user/server_status.php:153
+msgid "Users"
+msgstr "用戶"
+
+#: ../user/server_status.php:165
+msgid "Tasks by application"
+msgstr "按程式分類的任務"
+
+#: ../user/server_status.php:168
+msgid "Runtime of last 100 tasks in hours: average, min, max"
+msgstr "最近 100 個運算結果的處理時間(單位:小時):平均、最小、最大"
+
+#: ../user/server_status.php:169
+msgid "Users in last 24 hours"
+msgstr "最近24小時的用戶"
+
+#: ../user/show_host_detail.php:40
+msgid "Computer %1"
+msgstr "電腦 %1"
+
+#: ../user/stats.php:21
+msgid "Statistics and leaderboards"
+msgstr "統計訊息和排行榜"
+
+#: ../user/stats.php:30
+msgid "Statistics for %1"
+msgstr "%1 的統計訊息"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/stats.php:32 ../user/top_users.php:117
+msgid "Top participants"
+msgstr "用戶排名"
+
+#: ../user/stats.php:40 ../user/team.php:48
+msgid "Top teams"
+msgstr "團隊排名"
+
+#: ../user/stats.php:47
+msgid "Top computers"
+msgstr "電腦排名"
+
+#: ../user/stats.php:48
+msgid "GPU models"
+msgstr "GPU型號"
+
+#: ../user/stats.php:49
+msgid "CPU models"
+msgstr "CPU型號"
+
+#: ../user/stats.php:53
+msgid ""
+"More detailed statistics for %1 and other BOINC-based projects are available"
+" at several web sites:"
+msgstr "下列幾個網站可以查詢到關於 %1 和其它 BOINC 專案的更詳細的統計訊息:"
+
+#: ../user/stats.php:56
+msgid ""
+"You can also get your current statistics in the form of a \"signature "
+"image\":"
+msgstr "你還可以通過“簽名圖片”的形式得到你當前的統計訊息:"
+
+#: ../user/stats.php:59
+msgid ""
+"Additionally you can get your individual statistics summed across all BOINC "
+"projects from several sites; see your %1home page%2."
+msgstr "另外,你還可以在你的%1帳戶頁面%2中查看所有你參加 BOINC 專案中的個人統計訊息。"
+
+#: ../user/team.php:27
+msgid "Teams"
+msgstr "團隊"
+
+#: ../user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr "%1 的用戶可以組成 %2團隊%3"
+
+#: ../user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr "你最多只能加入一個團隊。你可以在任何時候加入或退出一個團隊。"
+
+#: ../user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr "每個團隊都有一個%1創始人%2,他可以:"
+
+#: ../user/team.php:35
+msgid "access team members' email addresses"
+msgstr "造訪團隊成員的電子郵件地址"
+
+#: ../user/team.php:36
+msgid "edit the team's name and description"
+msgstr "編輯團隊的名稱及描述"
+
+#: ../user/team.php:37
+msgid "add or remove team admins"
+msgstr "增加或移除團隊管理員"
+
+#: ../user/team.php:38
+msgid "remove members from the team"
+msgstr "移除團隊中的成員"
+
+#: ../user/team.php:39
+msgid "disband a team if it has no members"
+msgstr "解散沒有成員的團隊"
+
+#: ../user/team.php:42
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr "要加入一個團隊,請訪問該團隊頁面並點擊 %1加入該團隊%2。"
+
+#: ../user/team.php:43 ../user/team_search.php:201
+msgid "Find a team"
+msgstr "尋找團隊"
+
+#: ../user/team.php:50
+msgid "All teams"
+msgstr "所有團隊"
+
+#: ../user/team.php:54
+msgid "%1 teams"
+msgstr "%1 團隊"
+
+#: ../user/team.php:60
+msgid "Create a new team"
+msgstr "建立新團隊"
+
+#: ../user/team.php:61
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
+msgstr "如果你找不到適合你的團隊,你可以 %1創建一個團隊%2。"
+
+#: ../user/team_admins.php:36
+msgid "Remove Team Admin status from this member"
+msgstr "從該成員移除團隊管理員狀態"
+
+#: ../user/team_admins.php:42 ../user/team_admins.php:53
+msgid "Add or remove Team Admins"
+msgstr "增加或移除團隊管理員"
+
+#: ../user/team_admins.php:43
+msgid "You can select team members as 'Team Admins'. Team Admins can:"
+msgstr "你可以將部分團隊成員設置為“團隊管理員”,團隊管理員可以:"
+
+#: ../user/team_admins.php:45
+msgid "Edit team information (name, URL, description, country)"
+msgstr "編輯團隊資訊(名稱,網址,描述,國家)"
+
+#: ../user/team_admins.php:46
+msgid "View the team's join/quit history"
+msgstr "查看團隊的成員加入/退出歷史"
+
+#: ../user/team_admins.php:47
+msgid ""
+"Moderate the team forum, if any (admins get email notification of moderation"
+" events and red X reports)"
+msgstr "管理團隊論壇(團隊管理員會得到管理事件和報告的電子郵件通知)"
+
+#: ../user/team_admins.php:49
+msgid "Team Admins cannot:"
+msgstr "團隊管理員不可以:"
+
+#: ../user/team_admins.php:51
+msgid "Change the team founder"
+msgstr "改變團隊創始人"
+
+#: ../user/team_admins.php:52 ../user/team_manage.php:56
+msgid "Remove members"
+msgstr "移除團隊成員"
+
+#: ../user/team_admins.php:55
+msgid "If a Team Admin quits the team, they cease to be a Team Admin."
+msgstr "如果團隊管理員退出團隊,其團隊管理員的角色同時取消。"
+
+#: ../user/team_admins.php:56
+msgid ""
+"We recommend that you select only people you know and trust very well as "
+"Team Admins."
+msgstr "我們建議你只選擇自己了解或信任的成員作為團隊管理員。"
+
+#: ../user/team_admins.php:61
+msgid "There are currently no Team Admins"
+msgstr "目前沒有團隊管理員"
+
+#: ../user/team_admins.php:63
+msgid "Current Team Admins"
+msgstr "目前的團隊管理員"
+
+#: ../user/team_admins.php:64
+msgid "Became Team Admin on"
+msgstr "成為團隊管理員"
+
+#: ../user/team_admins.php:79
+msgid "Add Team Admin"
+msgstr "增加團隊管理員"
+
+#: ../user/team_admins.php:80
+msgid "Email address of team member:"
+msgstr "團隊成員的電子郵件地址:"
+
+#: ../user/team_admins.php:81
+msgid "Add"
+msgstr "新增"
+
+#: ../user/team_admins.php:92
+msgid "failed to remove admin"
+msgstr "移除管理員時出錯"
+
+#: ../user/team_admins.php:101
+msgid "User is not member of team"
+msgstr "用戶不是團隊成員"
+
+#: ../user/team_admins.php:103
+msgid "%1 is already an admin of %2"
+msgstr "%1 已經是 %2 的管理員"
+
+#: ../user/team_admins.php:107
+msgid "Couldn't add admin"
+msgstr "不能增加管理員"
+
+#: ../user/team_admins.php:113 ../user/team_manage.php:85
+#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
+msgid "No such team"
+msgstr "沒有符合的團隊"
+
+#: ../user/team_change_founder_action.php:32
+#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
+#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
+#: ../user/team_email_list.php:64
+msgid "no such team"
+msgstr "沒有符合的團隊"
+
+#: ../user/team_change_founder_action.php:40
+msgid "User is not a member of %1"
+msgstr "用戶不是 %1 的成員"
+
+#: ../user/team_change_founder_action.php:43
+msgid "Changing founder of %1"
+msgstr "正在改變 %1 的創始人"
+
+#: ../user/team_change_founder_action.php:45
+msgid "%1 is now founder of %2"
+msgstr "%1 現在是 %2 的創始人了"
+
+#: ../user/team_change_founder_form.php:39
+msgid "Change founder of %1"
+msgstr "改變 %1 的創始人"
+
+#: ../user/team_change_founder_form.php:45
+msgid ""
+"Team member %1 requested this team's foundership on %2, but left the team, "
+"thus canceling the request."
+msgstr "團隊成員 %1 在請求 %2 的創始人資格之後退出了團隊,請求自動取消。"
+
+#: ../user/team_change_founder_form.php:51
+msgid ""
+"Team member %1 has requested this team's foundership. This may be because "
+"you left the team or haven't had contact with the team for a long time."
+msgstr "團隊成員%1 請求了這個團隊的創始人資格,這可能是因為你離開過團隊或者有較長時間沒有和團隊聯繫。"
+
+#: ../user/team_change_founder_form.php:57
+msgid "decline request"
+msgstr "拒絕請求"
+
+#: ../user/team_change_founder_form.php:60
+msgid ""
+"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
+"                  To accept the request, assign foundership to %3 using the form below."
+msgstr "如果你不拒絕 %1 的請求,%2 將可以得到團隊創始人的資格。 <br /><br />\n如果要接受請求,並將創始人資格授予 %3,請使用下面的表格。"
+
+#: ../user/team_change_founder_form.php:68
+msgid "No transfer request is pending."
+msgstr "目前沒有等待處理的轉換請求。"
+
+#: ../user/team_change_founder_form.php:71
+msgid ""
+"To assign foundership of this team to another member, check the box next to "
+"member name and click <strong>Change founder</strong> below."
+msgstr "要將團隊的創始人資格授予另一位成員,請先選中成員名旁邊的選擇框,然後點擊下面的<strong>更改創始人</strong>。"
+
+#: ../user/team_change_founder_form.php:78
+msgid "New founder?"
+msgstr "新的團隊創始人?"
+
+#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
+msgid "Change founder"
+msgstr "更改團隊創始人"
+
+#: ../user/team_change_founder_form.php:110
+msgid "There are no users to transfer team to."
+msgstr "目前沒有用戶變更團隊。"
+
+#: ../user/team_create_action.php:31
+msgid "You must choose a non-blank team name"
+msgstr "你必須選擇一個非空的團隊名稱"
+
+#: ../user/team_create_action.php:36
+msgid "A team named %1 already exists - try another name"
+msgstr "名為 %1 的團隊已經存在 - 請嘗試其它的名稱"
+
+#: ../user/team_create_action.php:56
+msgid "Could not create team - please try later."
+msgstr "無法建立團隊 - 請稍後再試。"
+
+#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
+msgid "Create a team"
+msgstr "建立團隊"
+
+#: ../user/team_create_form.php:32
+msgid ""
+"You belong to %1. You must %2quit this team%3 before creating a new one."
+msgstr "你已加入了 %1,你在建立新團隊之前必須先 %2退出這個團隊%3。"
+
+#: ../user/team_delta.php:66
+msgid "Not founder or admin"
+msgstr "沒有創始人或團隊管理員"
+
+#: ../user/team_delta.php:73
+msgid "Team history for %1"
+msgstr "%1 的團隊歷史"
+
+#: ../user/team_delta.php:76
+msgid "When"
+msgstr "時間"
+
+#: ../user/team_delta.php:77
+msgid "User"
+msgstr "用戶"
+
+#: ../user/team_delta.php:78
+msgid "Action"
+msgstr "行為"
+
+#: ../user/team_delta.php:79
+msgid "Total credit at time of action"
+msgstr "當時的總積分"
+
+#: ../user/team_edit_action.php:55
+msgid "bad country"
+msgstr "國家錯誤"
+
+#: ../user/team_edit_action.php:61
+msgid "The name '%1' is being used by another team."
+msgstr "名稱“%1”已經被其它團隊使用。"
+
+#: ../user/team_edit_action.php:64
+msgid "Must specify team name"
+msgstr "必須指定團隊名稱"
+
+#: ../user/team_edit_action.php:92
+msgid "Could not update team - please try again later."
+msgstr "無法更新團隊 - 請稍後再試。"
+
+#: ../user/team_edit_form.php:35
+msgid "Edit %1"
+msgstr "編輯 %1"
+
+#: ../user/team_edit_form.php:36
+msgid "Update team info"
+msgstr "更新團隊資訊"
+
+#: ../user/team_email_list.php:70
+msgid "%1 Email List"
+msgstr "%1 電子郵件列表"
+
+#: ../user/team_email_list.php:72
+msgid "Member list of %1"
+msgstr "%1 的成員列表"
+
+#: ../user/team_email_list.php:87
+msgid "Show as plain text"
+msgstr "顯示為純文字"
+
+#: ../user/team_forum.php:30 ../user/team_forum.php:41
+msgid "Create Message Board"
+msgstr "建立留言版"
+
+#: ../user/team_forum.php:31
+msgid "You may create a message board for use by %1."
+msgstr "你可以建立一個僅供 %1 使用的留言板。"
+
+#: ../user/team_forum.php:33
+msgid "Only team members will be able to post."
+msgstr "只有團隊成員可以發文。"
+
+#: ../user/team_forum.php:34
+msgid "At your option, only members will be able to read."
+msgstr "還可以設置是否只允許團隊成員進行閱讀。"
+
+#: ../user/team_forum.php:35
+msgid "You and your Team Admins will have moderator privileges."
+msgstr "你和你的團隊管理員擁有管理權限。"
+
+#: ../user/team_forum.php:42
+msgid "Create a message board for %1"
+msgstr "建立一個 %1 的留言板"
+
+#: ../user/team_forum.php:50
+msgid "Team already has a message board"
+msgstr "團隊已經擁有留言板了"
+
+#: ../user/team_forum.php:61
+msgid "Team Message Board"
+msgstr "團隊留言版"
+
+#: ../user/team_forum.php:73
+msgid "Minimum time between posts (seconds)"
+msgstr "最小發文間隔(秒)"
+
+#: ../user/team_forum.php:76
+msgid "Minimum total credit to post"
+msgstr "發文要求的最低總積分"
+
+#: ../user/team_forum.php:79
+msgid "Minimum average credit to post"
+msgstr "發文要求的最低平均積分"
+
+#: ../user/team_forum.php:82
+msgid "Submit"
+msgstr "提交"
+
+#: ../user/team_forum.php:91
+msgid "Remove your team's message board."
+msgstr "移除團隊留言版"
+
+#: ../user/team_forum.php:99
+msgid "Really remove message board?"
+msgstr "確定要移除留言版嗎?"
+
+#: ../user/team_forum.php:100
+msgid ""
+"Are you sure you want to remove your team's message board? All threads and "
+"posts will be permanently removed. (You may, however, create a new message "
+"board later)."
+msgstr "你確定要移除團隊的留言板嗎?所有的主題和文章將永久刪除。 (當然,你之後還可以重新建立一個新的留言板。)"
+
+#: ../user/team_forum.php:102
+msgid "Yes - remove message board"
+msgstr "是的 - 移除留言板"
+
+#: ../user/team_forum.php:123
+msgid "Message board removed"
+msgstr "留言版已移除"
+
+#: ../user/team_forum.php:126
+msgid ""
+"Your team's message board has been removed. You may now %1create a new "
+"one%2."
+msgstr "你的團隊留言板已移除,你現在可以%1建立一個新的留言板%2。"
+
+#: ../user/team_forum.php:145
+msgid "Team Message Board Updated"
+msgstr "團隊留言版已更新"
+
+#: ../user/team_forum.php:146
+msgid "Update successful"
+msgstr "更新成功"
+
+#: ../user/team_forum.php:149
+msgid "Update failed"
+msgstr "更新失敗"
+
+#: ../user/team_forum.php:156
+msgid "Team has no forum"
+msgstr "團隊沒有論壇"
+
+#: ../user/team_founder_transfer_action.php:38
+msgid "You must be a member of a team to access this page."
+msgstr "只有團隊的成員可以訪問該頁面。"
+
+#: ../user/team_founder_transfer_action.php:92
+msgid "Requesting foundership of %1"
+msgstr "正在請求%1 的創始人資格"
+
+#: ../user/team_founder_transfer_action.php:100
+msgid ""
+"The current founder has been notified of your request by email and private message.<br /><br />\n"
+"                       If the founder does not respond within 60 days you will be allowed to become the founder."
+msgstr "你的請求已經通過電子郵件和私人消息通知到了當前的創始人。 <br /><br />\n如果該創始人在60 天沒有回應,你就可以成為創始人了。"
+
+#: ../user/team_founder_transfer_action.php:104
+#: ../user/team_founder_transfer_action.php:115
+msgid "Foundership request not allowed now"
+msgstr "現在不允許請求創始人資格"
+
+#: ../user/team_founder_transfer_action.php:111
+msgid "Assumed foundership of %1"
+msgstr "得到 %1 的創始人資格"
+
+#: ../user/team_founder_transfer_action.php:113
+msgid ""
+"Congratulations, you are now the founder of team %1. Go to %2Your Account "
+"page%3 to find the Team Admin options."
+msgstr "恭喜,你已經是 %1 的創始人了!請在%2你的帳戶頁面%3使用團隊管理功能。"
+
+#: ../user/team_founder_transfer_action.php:122
+msgid "Decline founder change request"
+msgstr "拒絕創始人更改請求"
+
+#: ../user/team_founder_transfer_action.php:129
+msgid "The foundership request from %1 has been declined."
+msgstr "來自 %1 的創始人請求已經被拒絕。"
+
+#: ../user/team_founder_transfer_action.php:132
+msgid "There were no foundership requests."
+msgstr "目前沒有創始人請求。"
+
+#: ../user/team_founder_transfer_action.php:136
+msgid "undefined action %1"
+msgstr "未定義行為 %1"
+
+#: ../user/team_founder_transfer_action.php:139
+#: ../user/team_founder_transfer_form.php:85
+msgid "Return to team page"
+msgstr "返回團隊頁面"
+
+#: ../user/team_founder_transfer_form.php:30
+msgid "You need to be a member of a team to access this page."
+msgstr "只有團隊的成員可以訪問該頁面。"
+
+#: ../user/team_founder_transfer_form.php:33
+msgid "Request foundership of %1"
+msgstr "請求 %1 的創始人資格"
+
+#: ../user/team_founder_transfer_form.php:40
+msgid "You are now founder of team %1."
+msgstr "你已經是%1 的創始人。"
+
+#: ../user/team_founder_transfer_form.php:46
+msgid "You requested the foundership of %1 on %2."
+msgstr "你已經請求了%1 的創始人資格(時間:%2)。"
+
+#: ../user/team_founder_transfer_form.php:49
+msgid ""
+"60 days have elapsed since your request, and the founder has not responded. "
+"You may now assume foundership by clicking here:"
+msgstr "原創始人在60 天內都沒有回應你的請求,你現在可以點擊這裡來得到創始人資格:"
+
+#: ../user/team_founder_transfer_form.php:52
+msgid "Assume foundership"
+msgstr "得到創始人資格"
+
+#: ../user/team_founder_transfer_form.php:56
+msgid ""
+"The founder was notified of your request. If he/she does not respond by %1 "
+"you will be given an option to become founder."
+msgstr "你的請求已經通知到了創始人,如果他/她到 %1 都沒有回應的話,你將可以選擇成為新的創始人。"
+
+#: ../user/team_founder_transfer_form.php:62
+msgid ""
+"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
+"                       Are you sure you want to request foundership?"
+msgstr "如果你將得到團隊創始人的資格(因為當前的創建人不活躍等原因),請點擊下面的按鈕。你的請求將通過電子郵件通知到當前的創始人,他/她可以將創始人資格轉移給你或者拒絕你的請求。如果他/她在60 天內都沒有回應,你就可以得到創始人的資格。 <br /><br />\n你確定想要請求創始人資格嗎?"
+
+#: ../user/team_founder_transfer_form.php:67
+msgid "Request foundership"
+msgstr "請求創始人資格"
+
+#: ../user/team_founder_transfer_form.php:76
+msgid "Founder change has already been requested by %1 on %2."
+msgstr "%1 已經在 %2 請求了創始人更改。"
+
+#: ../user/team_founder_transfer_form.php:79
+msgid ""
+"A foundership change was requested during the last 90 days, so new requests "
+"are not allowed. Please try again later."
+msgstr "因為過去 90 天已經有過程創始人資格更改請求,目前不允許發起新的請求,請稍後再試。"
+
+#: ../user/team_join.php:34 ../user/team_join_action.php:34
+#: ../user/team_join_form.php:31
+msgid "The team %1 is not joinable."
+msgstr "團隊 %1 不允許加入。"
+
+#: ../user/team_join.php:37 ../user/team_join_action.php:37
+msgid "Already a member"
+msgstr "已經是團隊成員"
+
+#: ../user/team_join.php:38 ../user/team_join_action.php:38
+msgid "You are already a member of %1."
+msgstr "你已經是 %1 的成員了。"
+
+#: ../user/team_join.php:44 ../user/team_join_action.php:45
+msgid "Couldn't join team - please try again later."
+msgstr "無法加入團隊 - 請稍後再試。"
+
+#: ../user/team_join_action.php:42
+msgid "Joined %1"
+msgstr "已加入 %1"
+
+#: ../user/team_join_action.php:43
+msgid "You have joined %1."
+msgstr "你已經加入了 %1。"
+
+#: ../user/team_join_form.php:34
+msgid "Join %1"
+msgstr "加入 %1"
+
+#: ../user/team_join_form.php:35
+msgid "Please note:"
+msgstr "請注意:"
+
+#: ../user/team_join_form.php:37
+msgid "Joining a team gives its founder access to your email address."
+msgstr "加入團隊後,團隊的創始人將可以看到你的電子郵件地址。"
+
+#: ../user/team_join_form.php:38
+msgid "Joining a team does not affect your account's credit."
+msgstr "加入團隊對你的帳戶積分沒有影響。"
+
+#: ../user/team_join_form.php:45
+msgid "Join team"
+msgstr "加入團隊"
+
+#: ../user/team_lookup.php:86
+msgid "Search Results"
+msgstr "搜尋結果"
+
+#: ../user/team_lookup.php:88
+msgid "Search results for '%1'"
+msgstr "“%1”的搜尋結果"
+
+#: ../user/team_lookup.php:90
+msgid "You may view these teams' members, statistics, and information."
+msgstr "你可以查看這些團隊的成員,統計以及其它資訊。"
+
+#: ../user/team_lookup.php:100
+msgid "More than 100 teams match your search. The first 100 are shown."
+msgstr "超過 100 個的團隊符合你的搜尋條件,現在只顯示了前 100 個。"
+
+#: ../user/team_lookup.php:106
+msgid ""
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
+msgstr "上面是所有的搜尋結果。 %1如果沒找到合適的團隊,你也可以自己%2建立一個團隊%3。"
+
+#: ../user/team_manage.php:28
+msgid "Team administration for %1"
+msgstr "%1 的團隊管理"
+
+#: ../user/team_manage.php:31
+msgid "Edit team info"
+msgstr "編輯團隊資訊"
+
+#: ../user/team_manage.php:32
+msgid "Change team name, URL, description, type, or country"
+msgstr "改變團隊名稱,網址,描述,類型或者國家"
+
+#: ../user/team_manage.php:34
+msgid "Member list:"
+msgstr "成員列表"
+
+#: ../user/team_manage.php:35 ../user/team_manage.php:39
+msgid "HTML"
+msgstr "HTML"
+
+#: ../user/team_manage.php:36
+msgid "text"
+msgstr "文件"
+
+#: ../user/team_manage.php:37
+msgid "View member names and email addresses"
+msgstr "查看成員名稱和電子郵件地址"
+
+#: ../user/team_manage.php:38
+msgid "View change history:"
+msgstr "查看更改歷史:"
+
+#: ../user/team_manage.php:40
+msgid "XML"
+msgstr "XML"
+
+#: ../user/team_manage.php:41
+msgid "See when members joined or quit this team"
+msgstr "查看成員加入或離開團隊的時間"
+
+#: ../user/team_manage.php:52
+msgid "Respond to foundership request."
+msgstr "回應創始人資格請求。"
+
+#: ../user/team_manage.php:52
+msgid "If you don't respond by %1, %2 may assume foundership of this team."
+msgstr "如果你到 %1 都不回應,%2 將可以得到這個團隊的創始人資格"
+
+#: ../user/team_manage.php:57
+msgid "Remove inactive or unwanted members from this team"
+msgstr "從團隊中移除不活躍或不喜歡的成員"
+
+#: ../user/team_manage.php:59
+msgid "Transfer foundership to another member"
+msgstr "將創始人資格轉移給其他成員"
+
+#: ../user/team_manage.php:60
+msgid "Add/remove Team Admins"
+msgstr "增加/移除團隊管理員"
+
+#: ../user/team_manage.php:61
+msgid "Give selected team members Team Admin privileges"
+msgstr "將團隊管理員權限授予選中的團隊成員"
+
+#: ../user/team_manage.php:63
+msgid "Remove team"
+msgstr "移除團隊"
+
+#: ../user/team_manage.php:64
+msgid "Allowed only if team has no members"
+msgstr "只能在團隊沒有成員的時候進行該操作"
+
+#: ../user/team_manage.php:66
+msgid "Create or manage a team message board"
+msgstr "建立或管理團隊留言板"
+
+#: ../user/team_manage.php:73
+msgid ""
+"To have this team created on all BOINC projects (current and future) you can"
+" make it into a %1BOINC-wide team%2."
+msgstr "如果想在所有的 BOINC 專案(現有和未來的)中都建立這個團隊,你可以將它轉變為一個 %1BOINC-wide 團隊%2。"
+
+#: ../user/team_manage.php:75
+msgid ""
+"Team admins are encouraged to join and participate in the Google %1boinc-"
+"team-founders%2 group."
+msgstr "建議所有團隊管理員都加入和參加到Google 的 %1boinc-team-founders%2 討論組中。"
+
+#: ../user/team_manage.php:91
+msgid "Can't delete non-empty team"
+msgstr "不能刪除非空團隊"
+
+#: ../user/team_manage.php:95
+msgid "Team %1 deleted"
+msgstr "團隊 %1 已刪除"
+
+#: ../user/team_members.php:38
+msgid "Limit exceeded:  Can only display the first 1000 members."
+msgstr "超出限制:只能顯示前 1000 名成員。"
+
+#: ../user/team_members.php:51
+msgid "Members of %1"
+msgstr "%1 的成員"
+
+#: ../user/team_quit_action.php:34
+msgid "Unable to quit team"
+msgstr "不能退出團隊"
+
+#: ../user/team_quit_action.php:35
+msgid "Team doesn't exist, or you don't belong to it."
+msgstr "團隊不存在,或者你屬於該團隊。"
+
+#: ../user/team_quit_form.php:33
+msgid "Quit %1"
+msgstr "退出 %1"
+
+#: ../user/team_quit_form.php:34
+msgid ""
+"<strong>Please note before quitting a team:</strong>\n"
+"         <ul>\n"
+"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
+"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
+"         </ul>"
+msgstr "<strong>退出團隊前請注意:</strong>\n<ul>\n<li>如果你退出一個團隊,你還可以重新加入,或者也可以加入其它團隊。 \n<li>退出團隊無論如何都不會影響你的個人積分。 \n</ul>"
+
+#: ../user/team_quit_form.php:42
+msgid "Quit Team"
+msgstr "退出團隊"
+
+#: ../user/team_remove_inactive_action.php:33
+msgid "Removing users from %1"
+msgstr "從 %1 中移除用戶"
+
+#: ../user/team_remove_inactive_action.php:41
+msgid "%1 is not a member of %2"
+msgstr "%1 不是 %2 的成員"
+
+#: ../user/team_remove_inactive_action.php:44
+msgid "%1 has been removed"
+msgstr "%1 已被移除"
+
+#: ../user/team_remove_inactive_form.php:34
+msgid "Remove members from %1"
+msgstr "從 %1 移除成員"
+
+#: ../user/team_remove_inactive_form.php:41
+msgid "Remove?"
+msgstr "移除?"
+
+#: ../user/team_remove_inactive_form.php:42
+msgid "Name (ID)"
+msgstr "名稱(ID)"
+
+#: ../user/team_remove_inactive_form.php:67
+msgid "No members are eligible for removal."
+msgstr "沒有任何成員符合移除的條件。"
+
+#: ../user/team_remove_inactive_form.php:70
+msgid "Remove users"
+msgstr "移除用戶"
+
+#: ../user/team_search.php:76
+msgid "Team name"
+msgstr "團隊名稱"
+
+#: ../user/team_search.php:113
+msgid "Team search results"
+msgstr "團隊搜尋結果"
+
+#: ../user/team_search.php:115
+msgid "No teams were found matching your criteria. Try another search."
+msgstr "沒有任何團隊符合你的查詢條件,請試試其它查詢條件。"
+
+#: ../user/team_search.php:117
+msgid "Or you can %1create a new team%2."
+msgstr "或者你也可以%1建立一個新團隊%2。"
+
+#: ../user/team_search.php:121
+msgid ""
+"The following teams match one or more of your search criteria.\n"
+"            To join a team, click its name to go to the team page,\n"
+"               then click %1Join this team%2."
+msgstr "下面的團隊符合一個或多個你的查詢條件。 \n要加入一個團隊,點擊名稱後即可進入團隊頁面,\n然後點擊%1加入該團隊%2即可。"
+
+#: ../user/team_search.php:128
+msgid "Change your search"
+msgstr "修改你的搜尋條件"
+
+#: ../user/team_search.php:202
+msgid ""
+"You can team up with other people with similar interests, or from the same "
+"country, company, or school."
+msgstr "你可以和其他有相同興趣,或來自同一個國家地區、公司以及學校的用戶組成一個團隊。"
+
+#: ../user/team_search.php:204
+msgid "Use this form to find teams that might be right for you."
+msgstr "使用該表單來尋找可能適合你的團隊。"
+
+#: ../user/team_search.php:209
+msgid "%1I'm not interested%2 in joining a team right now."
+msgstr "我現在對加入團隊%1沒興趣%2。"
+
+#: ../user/top_hosts.php:67 ../user/top_teams.php:102
+#: ../user/top_users.php:113
+msgid "Limit exceeded - Sorry, first %1 items only"
+msgstr "超出限制 - 對不起,僅顯示前 %1 項"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/top_hosts.php:82
+msgid "Top hosts"
+msgstr "主機排名"
+
+#. Now display what we've got (either gotten from cache or from DB)
+#: ../user/top_teams.php:107
+msgid "Top %1 teams"
+msgstr "團隊排名"
+
+#: ../user/top_teams.php:110
+msgid "There are no %1 teams"
+msgstr "沒有 %1 團隊"
+
+#: ../user/top_users.php:64
+msgid "Participant since"
+msgstr "參加時間"
+
+#: ../user/uotd.php:31
+msgid "No user of the day has been chosen."
+msgstr "還未選擇每日用戶。"
+
+#: ../user/uotd.php:35
+msgid "User of the Day for %1: %2"
+msgstr "%1 的每日用戶:%2"
+
+#: ../user/user_search.php:51
+msgid "Filters"
+msgstr "過濾器"
+
+#: ../user/user_search.php:52
+msgid "User name starts with"
+msgstr "用戶名稱以什麼開頭"
+
+#: ../user/user_search.php:53
+msgid "Any"
+msgstr "任何"
+
+#: ../user/user_search.php:56
+msgid "With profile?"
+msgstr "擁有用戶檔案?"
+
+#: ../user/user_search.php:57 ../user/user_search.php:62
+msgid "Either"
+msgstr "任選其一"
+
+#: ../user/user_search.php:61
+msgid "On a team?"
+msgstr "已加入團隊?"
+
+#: ../user/user_search.php:66
+msgid "Ordering"
+msgstr "排序"
+
+#: ../user/user_search.php:67
+msgid "Decreasing sign-up time"
+msgstr "按註冊時間降序"
+
+#: ../user/user_search.php:68
+msgid "Decreasing average credit"
+msgstr "按近期平均積分降序"
+
+#: ../user/user_search.php:69
+msgid "Decreasing total credit"
+msgstr "按總積分降序"
+
+#: ../user/user_search.php:84
+msgid "search string must be at least 3 characters"
+msgstr "搜尋字串至少應包含三個字符"
+
+#: ../user/user_search.php:118
+msgid "User search results"
+msgstr "用戶搜尋結果"
+
+#: ../user/user_search.php:125
+msgid "Joined"
+msgstr "已加入"
+
+#: ../user/user_search.php:133
+msgid "No users match your search criteria."
+msgstr "沒有任何用戶符合你的搜尋條件。"
+
+#: ../user/userw.php:35
+msgid "User not found!"
+msgstr "未找到用戶!"
+
+#: ../user/userw.php:44
+msgid "Account Data<br/>for %1<br/>Time:"
+msgstr "帳號資料<br/>關於 %1<br/>時間:"
+
+#: ../user/userw.php:47
+msgid "Team:"
+msgstr "團隊:"
+
+#: ../user/userw.php:48
+msgid "Team TotCred:"
+msgstr "團隊總積分:"
+
+#: ../user/userw.php:49
+msgid "Team AvgCred:"
+msgstr "團隊平均積分:"
+
+#: ../user/userw.php:51
+msgid "Team: None"
+msgstr "團隊:無"
+
+#: ../user/validate_email_addr.php:30
+msgid "Validate BOINC email address"
+msgstr "驗證 BOINC 電子郵件地址"
+
+#: ../user/validate_email_addr.php:31
+msgid ""
+"Please visit the following link to validate the email address of your %1 "
+"account:"
+msgstr "請訪問下面的連結以驗證你在 %1 的帳號所連結的電子郵件地址:"
+
+#: ../user/validate_email_addr.php:34
+msgid "Validate email sent"
+msgstr "驗證郵件已發送"
+
+#: ../user/validate_email_addr.php:35
+msgid ""
+"An email has been sent to %1. Visit the link it contains to validate your "
+"email address."
+msgstr "一封電子郵件已經發送到了 %1,請訪問其中包含的超連結以驗證你的電子郵件地址。"
+
+#: ../user/validate_email_addr.php:44
+msgid "No such user."
+msgstr "沒有符合的用戶。"
+
+#: ../user/validate_email_addr.php:49
+msgid "Error in URL data - can't validate email address"
+msgstr "網址資料錯誤 - 無法驗證電子郵件地址"
+
+#: ../user/validate_email_addr.php:54
+msgid "Database update failed - please try again later."
+msgstr "資料庫更新失敗 - 請稍後重試。"
+
+#: ../user/validate_email_addr.php:57
+msgid "Validate email address"
+msgstr "驗證電子郵件地址"
+
+#: ../user/validate_email_addr.php:58
+msgid "The email address of your account has been validated."
+msgstr "您的帳號所連結的電子郵件地址已通過驗證。"
+
+#: ../user/view_profile.php:38
+msgid "This user has no profile"
+msgstr "此用戶未建立檔案"
+
+#: ../user/view_profile.php:56
+msgid "Profile: %1"
+msgstr "用戶檔案:%1"
+
+#: ../user/view_profile.php:65
+msgid "Account data"
+msgstr "帳號資料"
+
+#: ../user/weak_auth.php:52
+msgid ""
+"You can access your account either by using your email address and password,\n"
+"    or by using an assigned 'account key'.\n"
+"    Your account key is:"
+msgstr "您現在可使用電子郵箱地址和密碼來登入您的帳號,\n或者也可以用一個指定的“帳號密鑰”。\n您的帳號密鑰是:"
+
+#: ../user/weak_auth.php:57
+msgid "This key can be used to:"
+msgstr "這個密碼能用於:"
+
+#: ../user/weak_auth.php:59
+msgid "log in to your account on the web"
+msgstr "在網站上登入您的帳號"
+
+#: ../user/weak_auth.php:61
+msgid ""
+"to attach a computer to your account without using the BOINC Manager.\n"
+"       To do so, install BOINC,\n"
+"       create a file named %1 in the BOINC\n"
+"       data directory, and set its contents to:"
+msgstr "在不借助BOINC經理的情況下新增一台電腦到你的帳號,方法如下。\n先安裝BOINC,\n在BOINC的數據資料夾內建立名為%1的文件,\n而文件內容為:"
+
+#: ../user/weak_auth.php:73
+msgid "Weak account key"
+msgstr "帳號密碼太弱"
+
+#: ../user/weak_auth.php:74
+msgid ""
+"Your 'weak account key' can be used to attach computers to your account\n"
+"    as described above, but cannot be used to log in to your account or change it in any way.\n"
+"    If you want to attach untrusted or insecure computers to your account,\n"
+"    do so using your weak account key.\n"
+"    Your weak account key is:"
+msgstr "您的“弱帳號密碼”能幫你的帳號新增電腦\n但不能用於登入在專案網站上的帳號或修改該帳號。\n如果您想在你的帳號新增不被信任的或不安全的電腦,\n您就應該使用弱帳號密碼\n你的弱帳號密碼是:"
+
+#: ../user/weak_auth.php:81
+msgid ""
+"If you change your password, your weak account key changes, and your "
+"previous weak account key becomes invalid."
+msgstr "如果您變更了密碼,您的弱帳號密碼將會改變,而之前的弱帳號密碼也將失效。"
+
+#: ../user/workunit.php:32
+msgid "can't find workunit"
+msgstr "找不到任務單元"
+
+#: ../user/workunit.php:35
+msgid "Workunit %1"
+msgstr "任務單元 %1"
+
+#: ../user/workunit.php:40
+msgid "application"
+msgstr "程式"
+
+#: ../user/workunit.php:43
+msgid "canonical result"
+msgstr "規範結果"
+
+#: ../user/workunit.php:46
+msgid "granted credit"
+msgstr "授予積分"
+
+#: ../user/workunit.php:55
+msgid "Tasks in progress"
+msgstr "任務處理中"
+
+#: ../user/workunit.php:55
+msgid "suppressed pending completion"
+msgstr "無法查看等待完成的情況"
+
+#: ../user/workunit.php:58
+msgid "minimum quorum"
+msgstr "最低驗證集"
+
+#: ../user/workunit.php:59
+msgid "initial replication"
+msgstr "初始任務拷貝"
+
+#: ../user/workunit.php:60
+msgid "max # of error/total/success tasks"
+msgstr "最高允許的錯誤/總合/成功任務拷貝數量"
+
+#: ../user/workunit.php:64
+msgid "errors"
+msgstr "錯誤"
+
+#: ../user/workunit.php:67
+msgid "validation"
+msgstr "驗證"
+
+#: ../user/workunit.php:67
+msgid "Pending"
+msgstr "等待中"
+
+#: ../project.sample/project.inc:70
+msgid "Main page"
+msgstr "首頁"
+
+#: ../project.sample/project.inc:72
+msgid "Copyright"
+msgstr "版權所有"
+
+#: ../project.sample/project.inc:75
+msgid "Generated"
+msgstr "生成時間"
+
+#: ../project.sample/project.inc:106
+msgid "Your personal background."
+msgstr "您的個人背景。"
+
+#: ../project.sample/project.inc:110
+msgid ""
+"Tell us about yourself. You could tell us where you're from, your age, "
+"occupation, hobbies, or anything else about yourself."
+msgstr "簡單介紹一下您自己,比如從哪裡來,年齡,職業,興趣愛好,或者其它任何事情。"
+
+#: ../project.sample/project.inc:114
+msgid "Your opinions about %1"
+msgstr "您對 %1 的看法"
+
+#: ../project.sample/project.inc:118
+msgid ""
+"Tell us your thoughts about %1<ol>\n"
+"    <li>Why do you run %1?\n"
+"    <li>What are your views about the project?\n"
+"    <li>Any suggestions?\n"
+"    </ol>"
+msgstr "告訴我們您對 %1 的看法<ol>\n<li>您為什麼執行 %1? \n<li>您對這個專案的觀點是什麼? \n<li>有什麼建議嗎? \n</ol>"
+
+#: ../project.sample/project_specific_prefs.inc:53
+msgid "Color scheme for graphics"
+msgstr "圖形的色彩方案"
+
+#: ../project.sample/project_specific_prefs.inc:55
+#, no-php-format
+msgid "Maximum CPU % for graphics%10 ... 100%2"
+msgstr "顯示圖像時最多可以使用的CPU 資源%10 ... 100%2"
+
+#: ../project.sample/project_specific_prefs.inc:56
+msgid "Run only the selected applications"
+msgstr "僅執行選中的程式"
+
+#: ../project.sample/project_specific_prefs.inc:57
+msgid ""
+"Only get tasks for certain applications. Useful to focus on particular "
+"applications, or to exclude them."
+msgstr "只接受使用特定計算程式的任務。用於關注特定的計算程式,或者排除它們。"
+
+#: ../project.sample/project_specific_prefs.inc:58
+msgid ""
+"If no work for selected applications is available, accept work from other "
+"applications?"
+msgstr "如果選中的程式暫時沒有運算任務,是否接收其它程式的任務?"
+
+#: ../project.sample/project_specific_prefs.inc:59
+msgid "Use faster non-graphical applications if available?"
+msgstr "是否使用更快的無圖形計算程式(如果可用)?"
+
+#: ../project.sample/project_specific_prefs.inc:90
+msgid "(all applications)"
+msgstr "(所有程式)"
diff --git a/html/ops/add_user.php b/html/ops/add_user.php
new file mode 100755
index 0000000..a62568f
--- /dev/null
+++ b/html/ops/add_user.php
@@ -0,0 +1,30 @@
+<?php
+
+require_once("../inc/util_ops.inc");
+require_once("../inc/user.inc");
+
+admin_page_head("Add User");
+
+$email = get_str('email', true);
+$name  = get_str('name', true);
+
+if ($email && $name) {
+    $user = make_user_ldap(urldecode($email), urldecode($name));
+    if ($user) {
+        echo "User created with ID ";
+        echo $user->id;
+    } else {
+        echo "ERROR: couldn't create user, probably email address already in DB";
+    }
+} else {
+    $page = $_SERVER["REQUEST_URI"];
+    echo "<form action=\"$page\" method=\"get\" enctype=\"application/x-www-form-urlencoded\">\n";
+    echo '<p>User name: ';
+    echo '<input name="name" type="text" size="100" maxlength="200">';
+    echo '</p><p>Email address:: ';
+    echo '<input name="email" type="text" size="100" maxlength="200">';
+    echo '</p>';
+    echo '<input type="submit" value="Create user">';
+    echo "</form>\n";
+}
+?>
diff --git a/html/ops/badge_admin.php b/html/ops/badge_admin.php
index 6bdb133..6bf7b79 100644
--- a/html/ops/badge_admin.php
+++ b/html/ops/badge_admin.php
@@ -52,7 +52,7 @@ function show_form() {
             if (strstr($badge->image_url, "http") == $badge->image_url) {
                 $y = $badge->image_url;
             } else {
-                $y = URL_BASE.$badge->image_url;
+                $y = url_base().$badge->image_url;
             }
             $x = " <img align=right height=64 src=\"$y\">";
         }
diff --git a/html/ops/badge_assign_custom.php b/html/ops/badge_assign_custom.php
index 8e12a67..6e51c32 100755
--- a/html/ops/badge_assign_custom.php
+++ b/html/ops/badge_assign_custom.php
@@ -76,7 +76,8 @@ function get_badges(
     $badge_name_prefix, $badge_level_names, $badge_images, $sub_project
 ) {
     $badges = array();
-    for ($i=0; $i<count($badge_level_names); $i++) {
+    $limit = count($badge_level_names);
+    for ($i=0; $i < $limit; $i++) {
         $badges[$i] = get_badge($badge_name_prefix."_".$sub_project["short_name"]."_".$i, "$badge_level_names[$i] in ".$sub_project["name"]." credit", $sub_project["short_name"].$badge_images[$i]);
     }
     return $badges;
diff --git a/html/ops/build_po.php b/html/ops/build_po.php
index 18a0b4f..f1b6e2d 100755
--- a/html/ops/build_po.php
+++ b/html/ops/build_po.php
@@ -19,17 +19,15 @@ if (!isset($FILE_LIST)) {
 
 $date = strftime('%Y-%m-%d %H:%M %Z');
 $header = <<<HDR
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# PROJECT translation
+# Copyright (C) PROJECT
 #
 # This file is distributed under the same license as BOINC.
 #
-# FileID  : \$Id\$
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: BOINC \$Id\$\\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\\n"
+"Project-Id-Version: PROJECT"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\\n"
 "POT-Creation-Date: $date\\n"
 "Last-Translator: Generated automatically from source files\\n"
 "MIME-Version: 1.0\\n"
diff --git a/html/ops/build_po_boinc.php b/html/ops/build_po_boinc.php
deleted file mode 100755
index 25da5b5..0000000
--- a/html/ops/build_po_boinc.php
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/php
-<?php
-
-// generate translation template for BOINC project web pages.
-//
-// Projects: don't use this.  Use build_po.php instead.
-//
-// Run this in boinc/html/ops.
-
-$FILE_LIST = "../inc/*.inc ../user/*.php ../project.sample/*.inc";
-
-$date = strftime('%Y-%m-%d %H:%M %Z');
-$header = <<<HDR
-# BOINC web translation
-# Copyright (C) 2008 University of California
-#
-# This file is distributed under the same license as BOINC.
-#
-# FileID  : \$Id\$
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC \$Id\$\\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\\n"
-"POT-Creation-Date: $date\\n"
-"Last-Translator: Generated automatically from source files\\n"
-"MIME-Version: 1.0\\n"
-"Content-Type: text/plain; charset=utf-8\\n"
-"Content-Transfer-Encoding: 8bit\\n"
-"X-Poedit-SourceCharset: utf-8\\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr ""
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr ""
-
-
-HDR;
-
-$out = fopen("BOINC-Project-Generic.pot", "w");
-
-fwrite($out, $header);
-
-$pipe = popen(
-    "xgettext --omit-header -o - --keyword=tra -L PHP $FILE_LIST",
-    "r"
-);
-stream_copy_to_stream($pipe, $out);
-
-fclose($pipe);
-fclose($out);
-
-echo "Done\n";
-
-?>
diff --git a/html/ops/cancel_workunits.php b/html/ops/cancel_workunits.php
index 9790b77..5aa15f6 100644
--- a/html/ops/cancel_workunits.php
+++ b/html/ops/cancel_workunits.php
@@ -24,37 +24,36 @@
 // This page shows the form, and a "confirm" page.
 // The actual cancellation is done cancel_workunits_action.php
 
-// TODO:
-// - use get_int() etc. rather than $_REQUEST
-// - use DB interfaces classes, not mysql_query() etc.
-
 require_once("../inc/util_ops.inc");
 
 admin_page_head("Cancel Jobs");
 
-$limit = 100;
-if (array_key_exists('limit',$_REQUEST)) {
-    $nlimit=$_REQUEST['limit'];
-    if ($nlimit != 0) {
-        $limit = $nlimit;
-    }
+$limit = get_int('limit', true);
+if (!$limit || $limit==0) {
+    $limit = 100;
 }
 
-$clause = "";
-
-if (array_key_exists('minid',$_REQUEST) && $_REQUEST['minid'] != "" &&
-    array_key_exists('maxid',$_REQUEST) && $_REQUEST['maxid'] != "")
-    $clause = "id >=" . $_REQUEST['minid'] . " AND id <=" . $_REQUEST['maxid'];
-else if (array_key_exists('list',$_REQUEST) && $_REQUEST['list'] != "")
-    $clause = "id IN (" . $_REQUEST['list'] . ")";
-else if (array_key_exists('uclause',$_REQUEST) && $_REQUEST['uclause'] != "")
-    $clause = urldecode($_REQUEST['uclause']);
-else if (array_key_exists('clause',$_REQUEST) && $_REQUEST['clause'] != "")
+$qclause = "";
+
+$minid = get_int('minid', true);
+$minid = get_int('maxid', true);
+$list = get_str('list', true);
+$uclause = get_str('uclause', true);
+$clause = get_str('clause', true);
+
+if ($minid && $maxid) {
+    $qclause = "id >=" . $minid . " AND id <=" . $maxid;
+} else if ($list) {
+    $qclause = "id IN (" . $list . ")";
+} else if ($uclause) {
+    $qclause = urldecode($uclause);
+} else if ($clause) {
     // the following line is BS, but apparently I can't find another way to pass a
     // double quote (") to the query
-    $clause = str_replace('\"', '"', $_REQUEST['clause']);
+    $qclause = str_replace('\"', '"', $clause);
+}
 
-if ($clause == "") {
+if ($qclause == "") {
 
     // copied from old cancel_wu_form.php
     echo "<p>
@@ -99,13 +98,13 @@ if ($clause == "") {
     echo "<p>\n";
     echo '<input type="submit" value="Cancel jobs">';
     echo "</p>\n";
+    echo "</form>\n";
 
-} else { // if ($clause)
-
-    db_init(true); // try to get list of WUs from replica
+} else { // if ($qclause)
 
-    $query = "SELECT id, name FROM workunit WHERE canonical_resultid = 0 AND error_mask = 0 AND $clause;";
-    $dbresult = _mysql_query($query);
+    $query = "SELECT id, name FROM workunit WHERE canonical_resultid = 0 AND error_mask = 0 AND $qclause;";
+    $db = BoincDb::get(true);
+    $dbresult = $db->do_query($query);
 
     if (!$dbresult) {
         echo "Error in query '$query'<br>\n";
@@ -118,7 +117,7 @@ if ($clause == "") {
         echo "<tr><th>WU ID</th><th>WU name</th></tr>\n";
 
         $rescount = 0;
-        while ($res = _mysql_fetch_object($dbresult)) {
+        while ($res = $dbresult->fetch_object()) {
             if ($rescount < $limit) {
                 $id = $res->id;
                 echo "<tr>\n";
@@ -139,9 +138,9 @@ if ($clause == "") {
                 echo "</tr>\n";
             }
             $rescount++;
-        } // while (_mysql_fetch_object())
+        } // while (fetch_object())
 
-        _mysql_free_result($dbresult);
+        $dbresult->free();
 
         echo "</table>\n<p>";
         echo $rescount;
@@ -150,7 +149,7 @@ if ($clause == "") {
         echo "<p>";
         echo "<input type=\"hidden\" name=\"cancel\" value=\"1\"/>";
         echo "<input type=\"hidden\" name=\"limit\" value=\"$limit\"/>";
-        $eclause = urlencode($clause);
+        $eclause = urlencode($qclause);
         echo "<input type=\"hidden\" name=\"clause\" value=\"$eclause\"/>";
         echo "<input type=\"submit\" value=\"Cancel checked WUs\">";
         echo "</p>\n";
@@ -158,7 +157,7 @@ if ($clause == "") {
 
     } // if (!$dbresult)
 
-} // if ($clause)
+} // if ($qclause)
 
 admin_page_tail();
 
diff --git a/html/ops/cancel_workunits_action.php b/html/ops/cancel_workunits_action.php
index c829815..ae36d15 100644
--- a/html/ops/cancel_workunits_action.php
+++ b/html/ops/cancel_workunits_action.php
@@ -18,16 +18,29 @@
 
 require_once("../inc/util_ops.inc");
 
+$cancel = post_int('cancel', true);
+$hide_canceled = post_str('hide_canceled', true);
+$hide_dlerr = post_str('hide_dlerr', true);
+$appid = post_int('appid', true);
+$WU = post_arr('WU', true);
+$back = post_str('back', true);
+$clause = post_str('clause', true);
+$limit = post_int('limit', true);
+if (!$limit || $limit == 0) {
+    $limit = 20;
+}
+
 admin_page_head("Cancel Workunits");
 
 // check for WUs to cancel
 //
 $WUs = "";
-if (array_key_exists('cancel', $_REQUEST) && ($_REQUEST['cancel'] == 1)) {
-    if (is_array($_REQUEST['WU'])) {
-        foreach ($_REQUEST['WU'] as $key => $value) {
-            if($WUs != "")
+if ($cancel && ($cancel == 1)) {
+    if ($WU) {
+        foreach ($WU as $key => $value) {
+            if($WUs != "") {
                 $WUs = $WUs . ",";
+            }
             $WUs = $WUs . $value;
         }
     }
@@ -37,21 +50,27 @@ if (array_key_exists('cancel', $_REQUEST) && ($_REQUEST['cancel'] == 1)) {
 //
 if($WUs != "") {
     echo "<!--- WUs to cancel: $WUs --->\n";
-//    if (!in_rops()) {
-        db_init();
+    if (!in_rops()) {
         cancel_wus_where("id IN (" . $WUs . ")");
-//    }
+    }
 }
 
-if (array_key_exists('back',$_REQUEST)) {
-    if ($_REQUEST['back'] == "errorwus") {
-        echo "<p><a href=\"errorwus.php\">Return to All-error Workunits page</a></p>";
-    } else if ($_REQUEST['back'] == "cancelwus") {
-        if (array_key_exists('clause', $_REQUEST)) {
-            $limit = 20;
-            if (array_key_exists('limit', $_REQUEST))
-                $limit=$_REQUEST['limit'];
-            $clause=urlencode($_REQUEST['clause']);
+if ($back) {
+    if ($back == "errorwus") {
+        $args = "?refresh_cache=1";
+        if ($hide_canceled && $hide_canceled=="on") {
+            $args .= "&hide_canceled=on";
+        }
+        if ($hide_dlerr && $hide_dlerr=="on") {
+            $args .= "&hide_dlerr=on";
+        }
+        if ($appid) {
+            $args .= "&appid=$appid";
+        }
+        echo "<p><a href=\"errorwus.php$args\">Return to All-error Workunits page</a> (refreshes the cache)</p>";
+    } else if ($back == "cancelwus") {
+        if ($clause) {
+            $clause=urlencode($clause);
             echo "<p><a href=\"cancel_workunits.php?limit=$limit&uclause=$clause\">";
             echo "Cancel next (max $limit) Workunits</a></p>";
         }
@@ -65,6 +84,4 @@ echo time_str(time());
 echo "</p>\n";
 
 admin_page_tail();
-
-$cvs_version_tracker[]="\$Id$";  //Generated automatically - do not edit
 ?>
diff --git a/html/ops/create_boinc_wide_team.php b/html/ops/create_boinc_wide_team.php
new file mode 100755
index 0000000..25173563
--- /dev/null
+++ b/html/ops/create_boinc_wide_team.php
@@ -0,0 +1,57 @@
+#! /usr/bin/env php
+
+<?php
+
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+
+// Script to create a BOINC-wide team and corresponding account.
+// Probably useful only to me.
+
+// usage: create_boinc_wide_team.php username emailaddr teamname
+
+require_once("../inc/user.inc");
+require_once("../inc/team.inc");
+
+if ($argc != 4) die("usage: create_boinc_wide_team username email teamname\n");
+
+$user_name = $argv[1];
+$email_addr = $argv[2];
+$team_name = $argv[3];
+
+$user = BoincUser::lookup_email_addr($email_addr);
+if (!$user) {
+    $passwd_hash = md5("foobar".$email_addr);
+    $user = make_user($email_addr, $user_name, $passwd_hash);
+    if (!$user) die("can't create user\n");
+
+    echo "created user $user->id\n";
+}
+
+$team = make_team($user->id, $team_name, "", "", "", "", "");
+if (!$team) die("can't create team\n");
+
+echo "created team $team->id\n";
+
+$retval = $user->update("email_validated=1, teamid=$team->id");
+if (!$retval) {
+    die("can't update user\n");
+}
+
+echo "done\n";
+?>
diff --git a/html/ops/credit.php b/html/ops/credit.php
index e36b60e..bee64d3 100644
--- a/html/ops/credit.php
+++ b/html/ops/credit.php
@@ -85,10 +85,10 @@ function handle_result($resultid) {
 }
 
 function show_host_av($host_id, $av_id) {
-    $hav = BoincHostAppVersion::lookup("host_id=$host_id and $app_version_id=$av_id");
+    $hav = BoincHostAppVersion::lookup("host_id=$host_id and app_version_id=$av_id");
     page_head("Host $host_id / app_version $av_id credit");
     echo "Results";
-    $rs = BoincResult::enum("hostid=$hostid and app_version_id=$avid and validate_state=1 order by id desc limit 100");
+    $rs = BoincResult::enum("hostid=$host_id and app_version_id=$av_id and validate_state=1 order by id desc limit 100");
     start_table();
     table_header("Workunit", "Elapsed", "Proj FLOPS", "Raw credit", "granted");
     $n = 0;
diff --git a/html/ops/db_update.php b/html/ops/db_update.php
index 7f12e11..8a2c960 100644
--- a/html/ops/db_update.php
+++ b/html/ops/db_update.php
@@ -989,6 +989,66 @@ function update_4_15_2015() {
     ");
 }
 
+// functions to change select ID types to 64-bit
+//
+function result_big_ids() {
+    do_query("alter table result
+        change column id id bigint not null auto_increment
+    ");
+    do_query("alter table workunit
+        change column canonical_resultid canonical_resultid bigint not null
+    ");
+    do_query("alter table assignment
+        change column resultid resultid bigint not null
+    ");
+}
+
+function workunit_big_ids() {
+    do_query("alter table workunit
+        change column id id bigint not null auto_increment
+    ");
+    do_query("alter table result
+        change column workunitid workunitid bigint not null
+    ");
+    do_query("alter table assignment
+        change column workunitid workunitid bigint not null
+    ");
+}
+
+// run this if your projects uses HTTPS, to patch up the gravatar URLs
+//
+function gravatar_update() {
+    do_query("update forum_preferences
+        SET avatar = REPLACE(avatar, 'http://www.gravatar.com', '//www.gravatar.com')
+    ");
+}
+
+function update_1_27_2016() {
+    do_query("alter table team add column mod_time timestamp default current_timestamp on update current_timestamp");
+}
+
+function update_2_17_2017() {
+    do_query("alter table job_file change md5 name varchar(255) not null");
+}
+
+function update_3_17_2017() {
+    do_query("alter table credit_user
+        add index cu_total(appid, total),
+        add index cu_avg(appid, expavg)
+    ");
+    do_query("alter table credit_team
+        add index ct_total(appid, total),
+        add index ct_avg(appid, expavg)
+    ");
+}
+
+function update_6_13_2017() {
+    do_query("alter table host
+        add column p_ngpus integer not null,
+        add column p_gpu_fpops double not null
+    ");
+}
+
 // Updates are done automatically if you use "upgrade".
 //
 // If you need to do updates manually,
@@ -1034,6 +1094,10 @@ $db_updates = array (
     array(27011, "update_8_15_2014"),
     array(27012, "update_10_8_2014"),
     array(27013, "update_4_15_2015"),
+    array(27014, "update_1_27_2016"),
+    array(27015, "update_2_17_2017"),
+    array(27016, "update_3_17_2017"),
+    array(27017, "update_6_13_2017"),
 );
 
 ?>
diff --git a/html/ops/delete_job_files b/html/ops/delete_job_files
index 2006639..daaa522 100755
--- a/html/ops/delete_job_files
+++ b/html/ops/delete_job_files
@@ -47,8 +47,7 @@ while (1) {
         $b = _mysql_fetch_object($result);
         if (!$b) continue;
 
-        $fname = job_file_name($file->md5);
-        $path = dir_hier_path($fname, "../../download", $fanout);
+        $path = dir_hier_path($file->name, "../../download", $fanout);
         unlink($path);
         echo "deleted $path\n";
         BoincBatchFileAssoc::delete_aux("job_file_id=$file->id");
diff --git a/html/ops/delete_spammers.php b/html/ops/delete_spammers.php
index e451df9..f62afad 100755
--- a/html/ops/delete_spammers.php
+++ b/html/ops/delete_spammers.php
@@ -1,8 +1,9 @@
 #!/usr/bin/env php
+
 <?php
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2014 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -16,10 +17,26 @@
 //
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+// -----------------------------------------------
 
+// delete_spammers.php [--test] [--min_days n] [--max_days n] command
+//
 // script to delete spammer accounts, profiles, forum posts, and/or teams.
+// The various options delete different categories of spammers.
+//
+// USE WITH CARE.  You don't want to delete legit accounts.
+// Run with --test and examine the results first.
+//
+// TODO: change commands so that instead of a command for each
+// combinations of properties, we have one option per property.
 //
-// delete_spammers.php [--days n] [--test] command
+// options:
+// --min_days N
+//    Only delete accounts created at least N days ago
+// --max_days N
+//    Only delete accounts created at most N days ago
+// --test
+//    Show what accounts would be deleted, but don't delete them
 //
 // commands:
 //
@@ -28,12 +45,33 @@
 //   - have a profile containing a link.
 //   - have no hosts
 //   - have no message-board posts
+//   Use this for spammers who create accounts and profiles with commercial links.
+//
+// --user_url
+//   delete accounts that
+//   - have a nonempty URL
+//   - have no hosts
+//   - have no message-board posts
+//   Use for spammers who create accounts with commercial URLs.
+//
+// --user_null
+//   delete accounts that
+//   - have no hosts
+//   - have no message-board posts
+//   - don't belong to a team
+//   Spammers may create accounts and attempt to create a profile but fail.
+//   This cleans up those accounts.
 //
 // --forums
 //   delete accounts that
 //   - have no hosts
 //   - have message-board posts
-//   - don't belong to a team
+//   - don't belong to a team (to avoid deleting BOINC-wide team owners)
+//   Use this for spammers who create accounts and post spam
+//
+// --profiles_strict
+//  delete accounts that have a profile and no message-board posts.
+//  For the BOINC message boards.
 //
 // --list filename
 //   "filename" contains a list of user IDs, one per line.
@@ -42,37 +80,26 @@
 //   delete users with ID N to M inclusive
 //
 // --teams
-//   delete teams (and their owners) where the team
-//   - has 0 or 1 members
+//   delete teams (and their owners and members) where the team
 //   - has no total credit
-//   - has description containing a link
+//   - has description containing a link, or a URL
 //   - is not a BOINC-Wide team
-//   and the owner
-//   - has no posts
-//   - has no hosts
-//
-// --user_url
-//   delete accounts that
-//   - have a nonempty URL
+//   and the owner and members
+//   - have no posts
 //   - have no hosts
-//   - have no message-board posts
-//
-// options:
-// --days N
-//    Only delete accounts created in last N days
-// --test
-//    Show what accounts would be deleted, but don't delete them
 
 error_reporting(E_ALL);
 ini_set('display_errors', true);
 ini_set('display_startup_errors', true);
+ini_set('memory_limit', '4G');
 
 require_once("../inc/db.inc");
 require_once("../inc/profile.inc");
 require_once("../inc/forum.inc");
 db_init();
 
-$days = 0;
+$min_days = 0;
+$max_days = 0;
 $test = false;
 
 // delete a spammer account, and everything associated with it
@@ -87,6 +114,10 @@ function do_delete_user($user) {
     echo "   URL: $user->url\n";
     echo "   age:$age days\n";
     if ($test) {
+        $n = count(BoincHost::enum("userid=$user->id"));
+        $m = count(BoincPost::enum("user=$user->id"));
+        echo "   $n hosts\n";
+        echo "   $m posts\n";
         echo "   (test mode - nothing deleted)\n";
         return;
     }
@@ -117,29 +148,36 @@ function has_link($x) {
 }
 
 function delete_forums() {
-    global $days;
+    global $min_days, $max_days;
     $prefs = BoincForumPrefs::enum("posts>0");
+    $n = 0;
     foreach ($prefs as $p) {
         $user = BoincUser::lookup_id($p->userid);
         if (!$user) {
             echo "missing user $p->userid\n";
             continue;
         }
-        if ($days) {
-            if ($user->create_time < time() - $days*86400) continue;
+        if ($min_days) {
+            if ($user->create_time > time() - $min_days*86400) continue;
+        }
+        if ($max_days) {
+            if ($user->create_time < time() - $max_days*86400) continue;
         }
         if ($user->teamid) {
             continue;
         }
-        $n = BoincHost::count("userid=$p->userid");
-        if ($n) continue;
+        $h = BoincHost::count("userid=$p->userid");
+        if ($h) continue;
         do_delete_user($user);
+        $n++;
     }
+    echo "deleted $n users\n";
 }
 
 function delete_profiles() {
-    global $test, $days;
+    global $test, $min_days, $max_days;
     $profiles = BoincProfile::enum("");
+    $n = 0;
     foreach ($profiles as $p) {
         if (has_link($p->response1) || has_link($p->response2)) {
             $user = BoincUser::lookup_id($p->userid);
@@ -148,92 +186,239 @@ function delete_profiles() {
                 continue;
             }
 
-            if ($days) {
-                if ($user->create_time < time() - $days*86400) continue;
+            if ($min_days) {
+                if ($user->create_time > time() - $min_days*86400) continue;
+            }
+            if ($max_days) {
+                if ($user->create_time < time() - $max_days*86400) continue;
             }
 
-            $n = BoincHost::count("userid=$p->userid");
-            if ($n) continue;
-            $n = BoincPost::count("user=$p->userid");
-            if ($n) continue;
+            $m = BoincHost::count("userid=$p->userid");
+            if ($m) continue;
+            $m = BoincPost::count("user=$p->userid");
+            if ($m) continue;
 
             do_delete_user($user);
             if ($test) {
                 echo "\n$p->userid\n$p->response1\n$p->response2\n";
             }
+            $n++;
         }
     }
+    echo "deleted $n users\n";
 }
 
-function delete_user_url() {
-    global $test, $days;
-    $users = BoincUser::enum("url <> ''");
-    foreach ($users as $user) {
-        if ($days) {
-            if ($user->create_time < time() - $days*86400) continue;
+function delete_profiles_strict() {
+    global $test;
+    $profiles = BoincProfile::enum("");
+    foreach ($profiles as $p) {
+        $user = BoincUser::lookup_id($p->userid);
+        if (!$user) {
+            echo "profile has missing user: $p->userid\n";
+            continue;
         }
-        $n = BoincHost::count("userid=$user->id");
-        if ($n) continue;
-        $n = BoincPost::count("user=$user->id");
+        $n = BoincPost::count("user=$p->userid");
         if ($n) continue;
         do_delete_user($user);
+        if ($test) {
+            echo "\n$p->userid\n$p->response1\n$p->response2\n";
+        }
+    }
+}
+
+function delete_users($no_hosts, $no_posts, $no_teams, $have_url) {
+    global $test, $min_days, $max_days;
+    $db = BoincDb::get();
+    $query = "select a.* from user a ";
+    if ($no_hosts) {
+        $query .= " left join host c on c.userid=a.id ";
+    }
+    if ($no_posts) {
+        $query .= " left join post b on a.id=b.user ";
+    }
+    if ($no_teams) {
+        $query .= " left join team d on a.id=d.userid ";
+    }
+    $query .= " where true ";
+    if ($no_hosts) {
+        $query .= " and c.userid is null ";
+    }
+    if ($no_posts) {
+        $query .= " and b.user is null ";
+    }
+    if ($no_teams) {
+        $query .= " and d.userid is null ";
+    }
+    if ($min_days) {
+        $t = time() - $min_days*86400;
+        $query .= " and a.create_time < $t ";
+    }
+    if ($max_days) {
+        $t = time() - $max_days*86400;
+        $query .= " and a.create_time > $t ";
+    }
+
+    $result = $db->do_query($query);
+    $n = 0;
+    while ($u = $result->fetch_object()) {
+        $user = BoincUser::lookup_id($u->id);
+        if ($have_url) {
+            if (!strlen($user->url)) continue;
+        }
+        do_delete_user($user);
+        $n++;
     }
+    echo "deleted $n users\n";
 }
 
 function delete_banished() {
-    global $days;
+    global $min_days, $max_days;
     $fps = BoincForumPrefs::enum("banished_until>0");
     foreach ($fps as $fp) {
         $user = BoincUser::lookup_id($fp->userid);
         if (!$user) continue;
-        if ($user->create_time < time() - $days*86400) continue;
+        if ($user->create_time > time() - $min_days*86400) continue;
+        if ($user->create_time < time() - $max_days*86400) continue;
         do_delete_user($user);
     }
 }
 
 function delete_teams() {
-    global $days, $test;
+    global $min_days, $max_days, $test;
     $query = "nusers < 2 and seti_id=0 and total_credit=0";
-    if ($days) {
-        $x = time() - $days*86400;
+    if ($min_days) {
+        $x = time() - $min_days*86400;
+        $query .= " and create_time < $x";
+    }
+    if ($max_days) {
+        $x = time() - $max_days*86400;
         $query .= " and create_time > $x";
     }
     $teams = BoincTeam::enum($query);
+    $count = 0;
     foreach ($teams as $team) {
         $n = team_count_members($team->id);
         if ($n > 1) continue;
-        if (!has_link($team->description)) continue;
-        $user = BoincUser::lookup_id($team->userid);
-        if ($user) {
+        if (!has_link($team->description) && !$team->url) continue;
+
+        // get list of team members
+        //
+        $users = BoincUser::enum("teamid = $team->id");
+
+        // add team founder if not member
+        //
+        if ($team->userid) {
+            $user = BoincUser::lookup_id($team->userid);
+            if ($user && $user->teamid != $team->id) {
+                $users[] = $user;
+            }
+        }
+
+        // if any of these has signs of life, skip team
+        //
+        $life = false;
+        foreach ($users as $user) {
+            if ($user->seti_nresults) {
+                // for SETI at home
+                $life = true;
+                break;
+            }
             $n = BoincPost::count("user=$user->id");
-            if ($n) continue;
+            if ($n) {
+                $life = true;
+                break;
+            }
             $n = BoincHost::count("userid=$user->id");
-            if ($n) continue;
+            if ($n) {
+                $life = true;
+                break;
+            }
+        }
+        if ($life) {
+            continue;
         }
+
+        $count++;
+
         if ($test) {
             echo "would delete team:\n";
             echo "   ID: $team->id\n";
             echo "   name: $team->name\n";
             echo "   description: $team->description\n";
+            echo "   URL: $team->url\n";
+            foreach ($users as $user) {
+                echo "would delete user $user->id: $user->email_addr:\n";
+            }
         } else {
             $team->delete();
             echo "deleted team ID $team->id name $team->name\n";
-            if ($user) do_delete_user($user);
+            foreach ($users as $user) {
+                do_delete_user($user);
+            }
+        }
+    }
+    echo "deleted $count teams\n";
+}
+
+function delete_user_id($id) {
+    $user = BoincUser::lookup_id($id);
+    if ($user) {
+        echo "deleting user $id\n";
+        do_delete_user($user);
+    } else {
+        echo "no such user\n";
+    }
+}
+
+function delete_user_id_range($id1, $id2) {
+    for ($i=$id1; $i <= $id2; $i++) {
+        $user = BoincUser::lookup_id($i);
+        if ($user) {
+            echo "deleting user $i\n";
+            do_delete_user($user);
+        }
+    }
+}
+
+// this is for cleaning up BOINC-wide teams
+//
+function delete_team_id_range($id1, $id2) {
+    for ($i=$id1; $i <= $id2; $i++) {
+        echo "deleting team $i\n";
+        $team = BoincTeam::lookup_id($i);
+        if ($team) {
+            $team->delete();
+            $user = BoincUser::lookup_id($team->userid);
+            if ($user) $user->delete();
         }
     }
 }
 
 echo "Starting: ".strftime('%Y-%m-%d %H:%M %Z')."\n";
 
+// get settings first
+//
 for ($i=1; $i<$argc; $i++) {
     if ($argv[$i] == "--test") {
         $test = true;
-    } else if ($argv[$i] == "--days") {
-        $days = $argv[++$i];
-    } else if ($argv[$i] == "--list") {
+    } else if ($argv[$i] == "--min_days") {
+        $min_days = $argv[++$i];
+    } else if ($argv[$i] == "--max_days") {
+        $max_days = $argv[++$i];
+    } else if ($argv[$i] == "--days") {     // deprecated
+        $max_days = $argv[++$i];
+    }
+}
+
+// then do actions
+//
+for ($i=1; $i<$argc; $i++) {
+    if ($argv[$i] == "--list") {
         delete_list($argv[++$i]);
     } else if ($argv[$i] == "--profiles") {
         delete_profiles();
+    } else if ($argv[$i] == "--profiles_strict") {
+        delete_profiles_strict();
     } else if ($argv[$i] == "--forums") {
         delete_forums();
     } else if ($argv[$i] == "--id_range") {
@@ -245,22 +430,31 @@ for ($i=1; $i<$argc; $i++) {
         if ($id2 < $id1) {
             die("bad args\n");
         }
-        for ($i=$id1; $i <= $id2; $i++) {
-            $user = BoincUser::lookup_id($i);
-            if ($user) {
-                echo "deleting user $i\n";
-                do_delete_user($user);
-            }
+        delete_user_id_range($id1, $id2);
+    } else if ($argv[$i] == "--id") {
+        $id = $argv[++$i];
+        if (!is_numeric($id)) {
+            die ("bad arg\n");
         }
+        delete_user_id($id);
+    } else if ($argv[$i] == "--team_id_range") {
+        $id1 = $argv[++$i];
+        $id2 = $argv[++$i];
+        if (!is_numeric($id1) || !is_numeric($id2)) {
+            die ("bad args\n");
+        }
+        if ($id2 < $id1) {
+            die("bad args\n");
+        }
+        delete_team_id_range($id1, $id2);
     } else if ($argv[$i] == "--banished") {
         delete_banished();
     } else if ($argv[$i] == "--teams") {
         delete_teams();
     } else if ($argv[$i] == "--user_url") {
-        delete_user_url();
-    } else {
-        echo "usage: delete_spammers.php [--days N] [--test] [--list filename] [--profiles] [--forums] [--id_range N M] [--teams] [--user_url]\n";
-        exit;
+        delete_users(true, true, false, true);
+    } else if ($argv[$i] == "--user_null") {
+        delete_users(true, true, true, false);
     }
 }
 echo "Finished: ".strftime('%Y-%m-%d %H:%M %Z')."\n";
diff --git a/html/ops/error_summary.php b/html/ops/error_summary.php
index fefe0ce..3c1d9d5 100644
--- a/html/ops/error_summary.php
+++ b/html/ops/error_summary.php
@@ -60,7 +60,7 @@ foreach ($error_codes as $code => $x) {
     $j = 0;
     foreach ($results as $r) {
         if ($j++ >= $nresults_per_code) break;
-        echo " <a href=".URL_BASE."result.php?resultid=$r->id>$r->id</a><br>\n";
+        echo " <a href=".url_base()."result.php?resultid=$r->id>$r->id</a><br>\n";
     }
 }
 page_tail();
diff --git a/html/ops/errorwus.php b/html/ops/errorwus.php
index 10bdbee..e4768ed 100644
--- a/html/ops/errorwus.php
+++ b/html/ops/errorwus.php
@@ -1,7 +1,7 @@
 <?php
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2016 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -16,100 +16,192 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+require_once("../inc/common_defs.inc");
 require_once("../inc/util_ops.inc");
 require_once("../inc/cache.inc");
 
 // User - configuarble variables
 // seconds to cache this page
-$cache_sec = 300;
+// this page runs a scan of the two largest tables, so this shouldn't be done more often than necessary
+$cache_sec = 1800;
 // Number that determines how many client errors are necessary for a WU to show up in this list.
 // This number is added to min_quorum of the WU, so a value of 1 means that there must be more than
 // (min_quorum + 1) errors for a WU to show up in this list.
-$notification_level = 1;
+$notification_level = get_int("level", true);
+if (!$notification_level) {
+    $notification_level = 1;
+}
+$appid_filter = "";
+$appid_title = "";
+$appid = get_int("appid", true);
+if ($appid) {
+    $appid_filter = " appid = $appid AND ";
+    $app = BoincApp::lookup_id($appid);
+    $appid_title = " for ".$app->name;
+}
 
-start_cache($cache_sec);
-admin_page_head("All-error Workunits");
+// the following variables are using the cache that is created by the variables above
 
-db_init();
+// hide already canceled WUs
+$hide_canceled = get_str("hide_canceled", true);
+// hide WU that have only download errors
+$hide_dlerr = get_str("hide_dlerr", true);
+// refresh cache from DB
+$refresh_cache = get_int("refresh_cache", true);
 
-function print_wu($id,$name,$quorum,$errors) {
-  echo "<tr>\n";
+admin_page_head("All-error Workunits".$appid_title);
 
-  echo "<td align=\"left\" valign=\"top\">";
-  echo "<a href=db_action.php?table=workunit&detail=high&id=";
-  echo $id;
-  echo ">";
-  echo $id;
-  echo "</a></td>\n";
+function print_wu($row) {
+    echo "<tr>\n";
 
-  echo "<td align=\"left\" valign=\"top\">";
-  echo $name;
-  echo "</td>\n";
+    echo "<td align=\"left\" valign=\"top\">";
+    if (!in_rops()) {
+        echo "<input type=\"checkbox\" name=\"WU[]\" value=\"".$row->id."\">\n";
+    }
+    echo "<a href=db_action.php?table=workunit&detail=high&id=";
+    echo $row->id;
+    echo ">";
+    echo $row->id;
+    echo "</a></td>\n";
+
+    echo "<td align=\"left\" valign=\"top\">".$row->name."</td>\n";
+    echo "<td align=\"left\" valign=\"top\">".$row->appid."</td>\n";
+    echo "<td align=\"left\" valign=\"top\">".$row->min_quorum."</td>\n";
+    echo "<td align=\"left\" valign=\"top\">".$row->unsent."</td>\n";
+    echo "<td align=\"left\" valign=\"top\">".$row->in_progress."</td>\n";
+
+    echo "<td align=\"left\" valign=\"top\">";
+    echo "<a href=db_action.php?table=result&query=&outcome=1&detail=low&workunitid=".$row->id.">";
+    echo $row->successes;
+    echo "</a></td>\n";
+
+    echo "<td align=\"left\" valign=\"top\">";
+    echo "<a href=db_action.php?table=result&query=&outcome=3&client_state=1&detail=low&workunitid=".$row->id.">";
+    echo $row->download_errors;
+    echo "</a></td>\n";
+
+    echo "<td align=\"left\" valign=\"top\">";
+    echo "<a href=db_action.php?table=result&query=&outcome=3&client_state=3&sort_by=mod_time&detail=low&workunitid=".$row->id.">";
+    echo $row->compute_errors;
+    echo "</a></td>\n";
+
+    echo "<td align=\"left\" valign=\"top\">";
+    echo "<a href=db_action.php?table=result&query=&outcome=6&sort_by=mod_time&detail=low&workunitid=".$row->id.">";
+    echo $row->validate_errors;
+    echo "</a></td>\n";
+
+    echo "<td align=\"left\" valign=\"top\">";
+    if ($row->error_mask) {
+        echo wu_error_mask_str($row->error_mask);
+    } else {
+        echo " ";
+    }
+    echo "</td>\n";
 
-  echo "<td align=\"left\" valign=\"top\">";
-  echo $quorum;
-  echo "</td>\n";
+    echo "</tr>\n";
+}
 
-  echo "<td align=\"left\" valign=\"top\">";
-  echo "<a href=db_action.php?table=result&query=&outcome=3&sort_by=mod_time&detail=low&workunitid=";
-  echo $id;
-  echo ">";
-  echo $errors;
-  echo "</a></td>\n";
+function get_error_wus() {
+    global $notification_level;
+    global $appid_filter;
+
+    // this query is obviously expensive for big projects but if there is a replica this does not impact the project
+    $db = BoincDb::get(true);
+    $dbresult = $db->do_query("
+        SELECT id, name, appid, unsent, in_progress, successes, compute_errors,
+               download_errors, validate_errors, error_mask, min_quorum,
+               (compute_errors + download_errors + validate_errors) as total_errors
+        FROM (
+            SELECT
+                workunitid,
+                SUM(IF(outcome=1,1,0)) AS successes,
+                SUM(IF((outcome=3 AND client_state=1),1,0)) AS download_errors,
+                SUM(IF((outcome=3 AND client_state=3),1,0)) AS compute_errors,
+                SUM(IF(outcome=6,1,0)) AS validate_errors,
+                SUM(IF(server_state=2,1,0)) AS unsent,
+                SUM(IF(server_state=4,1,0)) AS in_progress
+            FROM result
+            WHERE server_state IN (2,4,5)
+            GROUP BY workunitid
+            ) AS t1
+            JOIN workunit ON workunit.id = workunitid
+        WHERE canonical_resultid=0 AND $appid_filter
+        GREATEST(download_errors, compute_errors, validate_errors) > min_quorum + $notification_level
+        ORDER BY name
+    ;");
+
+    $row_cache = array();
+    while ($row = $dbresult->fetch_object()) {
+        $row_cache[] = $row;
+    }
+    $dbresult->free();
 
-  echo "</tr>\n";
+    return $row_cache;
 }
 
-$dbresult = _mysql_query("
-  SELECT workunitid, outcome, workunit.name, min_quorum
-  FROM result, workunit
-  WHERE workunit.id = workunitid AND server_state = 5
-  ORDER BY workunitid, outcome DESC
-;");
-
-echo "<br><table border=\"1\">\n";
-echo "<tr><th>WU ID</th><th>WU name</th><th>Quorum</th><th>Errors</th></tr>\n";
-
-$rescount = 0;
-$previd = -1;
-$prevname = "";
-$prevquorum = 1;
-$errors = 0;
-
-// The current version scans for client errors only.
-// In case you want to include validate errors, add "|| (outcome = 6)" to "(outcome = 3)"
-
-while ($res = _mysql_fetch_object($dbresult)) {
-  $id = $res->workunitid;
-  if ($id != $previd) {
-    if ($errors > $prevquorum + $notification_level) {
-      print_wu($previd,$prevname,$prevquorum,$errors);
-      $rescount++;
-    }
-    $previd = $id;
-    $prevname = $res->name;
-    $prevquorum = $res->min_quorum;
-    $errors = 0;
-  }
-  if ($res->outcome == 3) {
-    $errors ++;
-  }
-  if ($res->outcome == 1) {
-    $errors = 0;
-  }
+$last_update = 0;
+$row_array = null;
+
+$cache_args = "level=$notification_level";
+if ($appid) $cache_args .= "&appid=$appid";
+
+$cache_data = get_cached_data($cache_sec, $cache_args);
+if ($cache_data && !$refresh_cache) {
+    $cache_data = unserialize($cache_data);
+    $last_update = $cache_data['last_update'];
+    $row_array = $cache_data['row_array'];
+} else {
+    $row_array = get_error_wus();
+    $last_update = time();
+    $cache_data = array('last_update' => $last_update, 'row_array' => $row_array);
+    set_cached_data($cache_sec, serialize($cache_data), $cache_args);
 }
-_mysql_free_result($dbresult);
-if ($errors > $prevquorum) {
-  print_wu($id,$prevname,$prevquorum,$errors);
-  $rescount++;
+
+echo "<br/>";
+echo "<form method=\"get\" action=\"errorwus.php\">\n";
+print_checkbox("Hide canceled WUs", "hide_canceled", $hide_canceled);
+print_checkbox("Hide WUs with only d/l errors", "hide_dlerr", $hide_dlerr);
+if ($appid) {
+    echo "<input type=\"hidden\" name=\"appid\" value=\"$appid\"/>";
+}
+echo "<input type=\"hidden\" name=\"level\" value=\"$notification_level\"/>";
+echo "<input class=\"btn btn-default\" type=\"submit\" value=\"OK\">\n";
+echo "</form>\n";
+echo "Page last updated ".time_str($last_update);
+if (!in_rops()) {
+    echo "<form action=\"cancel_workunits_action.php\" method=\"post\">\n";
+    echo "<input type=\"hidden\" name=\"back\" value=\"errorwus\"/>";
+}
+echo "<br/><table border=\"1\">\n";
+echo "<tr><th>WU ID</th><th>WU name</th><th>App ID</th><th>Quorum</th><th>Unsent</th><th>In Progress</th><th>Success</th>";
+echo "<th>Download Errors</th><th>Compute Errors</th><th>Validate Errors</th><th>Error mask</th></tr>\n";
+
+$hidden=0;
+foreach($row_array as $row) {
+    if ($hide_canceled == 'on' && (($row->error_mask & WU_ERROR_CANCELLED) == WU_ERROR_CANCELLED)) {
+        $hidden++;
+        continue;
+    }
+    if ($hide_dlerr == 'on' && $row->download_errors > 0 && $row->compute_errors == 0 && $row->validate_errors == 0) {
+        $hidden++;
+        continue;
+    }
+    print_wu($row);
 }
 
 echo "</table>\n<br>";
-echo $rescount;
-echo " entries\n";
+if (!in_rops()) {
+    echo "<input type=\"hidden\" name=\"cancel\" value=\"1\"/>";
+    echo "<input type=\"hidden\" name=\"hide_canceled\" value=\"$hide_canceled\"/>";
+    echo "<input type=\"hidden\" name=\"hide_dlerr\" value=\"$hide_dlerr\"/>";
+    if ($appid) {
+        echo "<input type=\"hidden\" name=\"appid\" value=\"$appid\"/>";
+    }
+    echo "<input class=\"btn btn-default\" type=\"submit\" value=\"Cancel checked WUs\">";
+    echo "</form>\n";
+}
+echo count($row_array)." entries (".$hidden." hidden)\n";
 
 admin_page_tail();
 
-end_cache($cache_sec);
-$cvs_version_tracker[]="\$Id$";  //Generated automatically - do not edit
 ?>
diff --git a/html/ops/failure_result_summary_by_host.php b/html/ops/failure_result_summary_by_host.php
index 04cb982..4ca2f8a 100644
--- a/html/ops/failure_result_summary_by_host.php
+++ b/html/ops/failure_result_summary_by_host.php
@@ -41,8 +41,9 @@ SELECT
        case
            when INSTR(host.os_name, 'Linux') then 
                case
-                   when INSTR(LEFT(host.os_version, 6), '-') then LEFT(host.os_version, (INSTR(LEFT(host.os_version, 6), '-') - 1))
-                   else LEFT(host.os_version, 6)
+                   when RIGHT(host.os_version, 1) = ']' then REVERSE(SUBSTR(REVERSE(host.os_version), 2, INSTR(REVERSE(host.os_version), '[') - 2))
+                   when INSTR(LEFT(host.os_version, 10), '-') then LEFT(host.os_version, (INSTR(LEFT(host.os_version, 10), '-') - 1))
+                   else LEFT(host.os_version, 8)
                end
            else host.os_version
        end AS OS_Version,
@@ -72,7 +73,7 @@ table_header(
 while ($res = _mysql_fetch_object($result)) {
     table_row(
         app_version_desc($res->app_version_id),
-        "<a href=".URL_BASE."show_host_detail.php?hostid=$res->Host_ID>$res->Host_ID</a>",
+        "<a href=".url_base()."show_host_detail.php?hostid=$res->Host_ID>$res->Host_ID</a>",
         $res->OS_Version, $res->Results_Today,
         "<a href=db_action.php?table=result&detail=low&hostid=$res->Host_ID&app_version_id=$res->app_version_id&server_state=5&outcome=3>$res->error_count</a>"
     );
diff --git a/html/ops/fix_prefs.php b/html/ops/fix_prefs.php
index 37ca61f..2126b08 100644
--- a/html/ops/fix_prefs.php
+++ b/html/ops/fix_prefs.php
@@ -34,8 +34,13 @@ function process_set($users) {
             echo "repairing prefs for user $user->id\n";
             $p = repair_prefs($user->global_prefs);
             if ($p) {
-                $retval = @simplexml_load_string($p);
-                if ($retval) {
+                $xml_obj = @simplexml_load_string($p);
+                if ($xml_obj) {
+                    // increase mod_time by 1 second so new preferences are propagated to the Client
+                    $xml_obj->mod_time = 1 + intval($xml_obj->mod_time);
+                    $p = $xml_obj->asXML();
+                    // remove XML header
+                    $p = implode("\n", array_slice(explode("\n", $p), 1));
                     $user->update("global_prefs='$p'");
                     echo "   repair succeeded\n";
                 } else {
diff --git a/html/ops/index.php b/html/ops/index.php
index 4b54bfc..38b793b 100644
--- a/html/ops/index.php
+++ b/html/ops/index.php
@@ -129,11 +129,11 @@ echo "
     </td> 
     <td><b>User management</b>
     <ul>
-        <li><a href=".URL_BASE."/forum_index.php>Post news item</a></li>
+        <li><a href=".url_base()."/forum_index.php>Post news item</a></li>
         <li><a href=\"profile_screen_form.php\">Screen user profiles </a></li>
         <li><a href=\"badge_admin.php\">Badges</a></li>
         <li><a href=\"manage_special_users.php\">User privileges</a></li>
-        <li><a href=".URL_BASE."/manage_project.php>User job submission privileges</a></li>
+        <li><a href=".url_base()."/manage_project.php>User job submission privileges</a></li>
         <li><a href=\"mass_email.php\">Send mass email to a selected set of users</a></li>
         <li><form action=\"manage_user.php\">
             <input class=\"btn btn-default\" type=\"submit\" value=\"Manage user\">
diff --git a/html/ops/manage_app_versions.php b/html/ops/manage_app_versions.php
index 7419284..a822910 100644
--- a/html/ops/manage_app_versions.php
+++ b/html/ops/manage_app_versions.php
@@ -81,15 +81,21 @@ function show_form($all) {
         // grey out deprecated versions 
         //
         $f1=$f2='';
-        if ($av->deprecated) {
+        if ($av->deprecated == 1) {
             $f1="<font color='GREY'>";
             $f2="</font>";
         }
 
-        echo "<tr class=row$i><form action=manage_app_versions.php method=POST>\n";
+        $all_value = $all?1:0;
+        $app = $apps[$av->appid];
+        // ignore app versions of deprecated apps by default
+        if ($all_value == 0 && $app->deprecated == 1) {
+            continue;
+        }
+        echo "<tr class=row$i><form action=manage_app_versions.php?all=$all_value#av_$av->id method=POST>\n";
         $i = 1-$i;
         echo "<input type=hidden name=id value=$av->id>";
-        echo "  <TD>$f1 <a href=db_action.php?table=app_version&id=$av->id>$av->id</a> $f2</TD>\n";
+        echo "  <TD>$f1 <a id='av_$av->id' href=db_action.php?table=app_version&id=$av->id>$av->id</a> $f2</TD>\n";
 
         $app = $apps[$av->appid];
         echo "  <TD>$f1 <a href=app_details.php?appid=$app->id>$app->name</a> $f2</TD>\n";
@@ -115,7 +121,11 @@ function show_form($all) {
         if ($av->deprecated) $v=' CHECKED ';
         echo "  <TD> <input name=deprecated type='checkbox' $v></TD>\n";
 
-        echo "<td><input class=\"btn btn-default\" name=submit type=submit value=Update>";
+        if (!in_rops()) {
+            echo "<td><input class=\"btn btn-default\" name=submit type=submit value=Update>";
+        } else {
+            echo "<td> </td>";
+        }
 
         echo "</tr></form>"; 
     }
diff --git a/html/ops/manage_apps.php b/html/ops/manage_apps.php
index 3d87423..609256b 100644
--- a/html/ops/manage_apps.php
+++ b/html/ops/manage_apps.php
@@ -34,6 +34,9 @@ function do_updates() {
     $n = post_int("homogeneous_redundancy");
     $app->update("homogeneous_redundancy=$n");
 
+    $n = post_int("target_nresults");
+    $app->update("target_nresults=$n");
+
     $n = post_str("homogeneous_app_version", true)?1:0;
     $app->update("homogeneous_app_version=$n");
 
@@ -73,11 +76,21 @@ function add_app() {
     ";
 }
 
-function show_form() {
+function show_form($all) {
     echo "
         <h2>Edit applications</h2>
     ";
 
+    $app_clause="deprecated=0";
+    $action_url="manage_apps.php";
+    if($all) {
+        $app_clause = "";
+        $action_url="manage_apps.php?all=1";
+        echo "<a href=\"manage_apps.php\">Don't show deprecated applications</a>";
+    } else {
+        echo "<a href=\"manage_apps.php?all=1\">Show deprecated applications</a>";
+    }
+
     start_table();
     table_header(
         "ID",
@@ -86,6 +99,7 @@ function show_form() {
         "weight<br><a href=https://boinc.berkeley.edu/trac/wiki/BackendPrograms#feeder><p class=\"text-muted\">details</p></a>",
         "shmem items",
         "HR type<br><a href=https://boinc.berkeley.edu/trac/wiki/HomogeneousRedundancy><p class=\"text-muted\">details</p></a>",
+        "Adaptive replication<br><a href=http://boinc.berkeley.edu/trac/wiki/AdaptiveReplication><p class=\"text-muted\">details</p></a>",
         "homogeneous app version?<br><a href=https://boinc.berkeley.edu/trac/wiki/HomogeneousAppVersion><p class=\"text-muted\">details</p></a>",
         "deprecated?",
         "Non-CPU-intensive?",
@@ -94,13 +108,13 @@ function show_form() {
         ""
     );
 
-    $total_weight = BoincApp::sum("weight");
+    $total_weight = BoincApp::sum("weight", "where deprecated=0");
     $swi = parse_config(get_config(), "<shmem_work_items>");
     if (!$swi) {
         $swi = 100;
     }
 
-    $apps = BoincApp::enum("");
+    $apps = BoincApp::enum($app_clause);
     $i = 0;
     foreach ($apps as $app) {
         // grey-out deprecated versions
@@ -109,7 +123,7 @@ function show_form() {
             $f1 = "<font color='GREY'>";
             $f2 = "</font>";
         }
-        echo "<tr class=row$i><form action=manage_apps.php method=POST>";
+        echo "<tr class=row$i><form action=$action_url method=POST>";
         $i = 1-$i;
         echo "<input type=hidden name=id value=$app->id>";
         echo "  <TD align='center'>$f1 $app->id $f2</TD>\n";
@@ -133,6 +147,11 @@ function show_form() {
             <input name='homogeneous_redundancy' value='$v'></TD>
         ";
 
+        $v = $app->target_nresults;
+        echo "  <TD align='center'>
+            <input name='target_nresults' value='$v'></TD>
+        ";
+
         $v = '';
         if ($app->homogeneous_app_version) $v=' CHECKED ';
         echo "  <TD align='center'>
@@ -162,8 +181,11 @@ function show_form() {
         echo "  <TD align='center'>
             <input name='fraction_done_exact' type='checkbox' $v></TD>
         ";
-
-        echo "<td><input class=\"btn btn-default\" type=submit name=submit value=Update>";
+        if (!in_rops()) {
+            echo "<td><input class=\"btn btn-default\" type=submit name=submit value=Update></td>";
+        } else {
+            echo "<td> </td>";
+        }
         echo "</tr></form>";
     }
 
@@ -172,6 +194,9 @@ function show_form() {
 
     // Entry form to create a new application
     //
+    if (in_rops()) {
+        return;
+    }
 
     echo"<P>
         <h2>Add an application</h2>
@@ -179,7 +204,7 @@ function show_form() {
         ('user friendly name') below.  You can then edit the
         application when it appears in the table above.
         <p>
-        <form action=manage_apps.php method=POST>
+        <form action=$action_url method=POST>
     ";
 
     start_table("align='center' ");
@@ -199,12 +224,14 @@ function show_form() {
 
 admin_page_head("Manage applications");
 
+$all = get_int('all', true);
+
 if (post_str('add_app', true)) {
     add_app();
 } else if (post_str('submit', true)) {
     do_updates();
 }
-show_form(false);
+show_form($all);
 admin_page_tail();
 
 ?>
diff --git a/html/ops/mass_email.php b/html/ops/mass_email.php
index 36921c4..377490b 100644
--- a/html/ops/mass_email.php
+++ b/html/ops/mass_email.php
@@ -86,7 +86,7 @@ if ($receiver > 0) {
     while ($user = _mysql_fetch_object($result)) {
     	// TODO: might want to also replace TOTAL_CREDIT, RAC, and similar.
         $body_to_send = str_replace("USERNAME", $user->name, $body);
-        $body_to_send .= "\n\nTo opt out of future emails from ".PROJECT.", please edit your project preferences at ".URL_BASE."prefs.php?subset=project\n";
+        $body_to_send .= "\n\nTo opt out of future emails from ".PROJECT.", please edit your project preferences at ".secure_url_base()."prefs.php?subset=project\n";
         $retval = send_email($user, $subject, $body_to_send);
         if ($retval) {
             // send_email returns TRUE on success
diff --git a/html/ops/notify.php b/html/ops/notify.php
index ec167cc..62ae443 100755
--- a/html/ops/notify.php
+++ b/html/ops/notify.php
@@ -44,12 +44,12 @@ function send_notify_email($userid, $message) {
     $subject = "Daily notification summary from ".PROJECT;
     $body = "The following events occurred in the past day at ".PROJECT.".
 For details, visit your Account page at
-".URL_BASE."home.php
+".secure_url_base()."home.php
 
 $message
 ---------------
 To change your email preferences for ".PROJECT.", visit:
-".URL_BASE."edit_forum_preferences_form.php
+".secure_url_base()."edit_forum_preferences_form.php
 
 Do not reply to this email.
 ";
diff --git a/html/ops/pass_percentage_by_appversion.php b/html/ops/pass_percentage_by_appversion.php
new file mode 100644
index 0000000..748935e
--- /dev/null
+++ b/html/ops/pass_percentage_by_appversion.php
@@ -0,0 +1,231 @@
+<?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+require_once("../inc/util_ops.inc");
+
+admin_page_head("Result summary per app version");
+
+$query_appid = get_int('appid');
+$query_nsecs = get_int('nsecs', true);
+$query_received_time = time() - $query_nsecs;
+$query_all_versions = get_str('allversions', true);
+
+$allversions = "";
+
+if ($query_nsecs) {
+    $received_time = time() - $query_nsecs;
+    $limit_received_time = " AND received_time > '$received_time'";
+} else {
+    $limit_received_time = "";
+}
+
+$query_order = "platform, version DESC, plan_class";
+
+if ($query_all_versions == "1") {
+    $limit_app_versions = "";
+    $allversions = "checked";
+} else {
+    $allversions = "";
+    // get the most recent version per (platform, plan class)
+    //
+    $app_versions = latest_avs_app($query_appid);
+    $valid_app_versions = "";
+
+    if (count($app_versions) > 0) {
+        foreach ($app_versions as $av) {
+            if (strlen($valid_app_versions) == 0) {
+                $valid_app_versions = "$av->version_num";
+            } else {
+                $valid_app_versions .= ", $av->version_num";
+            }
+        }
+        $limit_app_versions = " AND app_version_num IN ( $valid_app_versions )";
+        //$query_order = "version DESC";
+    } else {
+        $limit_app_versions = "";
+        //$query_order = "platform";
+        $allversions = "checked";
+    }
+}
+
+// Now that we have a valid list of app_version_nums'
+// let's construct the main query
+
+$main_query = "
+SELECT
+       app_version_id,
+       app_version_num AS version,
+       platform_name.name AS platform,
+       plan_class,
+       COUNT(*) AS total_results,
+       (SUM(case when outcome = '1' then 1 else 0 end)) AS pass_count,
+       (SUM(case when outcome = '3' then 1 else 0 end)) AS fail_count,
+       (SUM(case when outcome = '3' and client_state = '1' then 1 else 0 end)) AS fail_count1,
+       (SUM(case when outcome = '3' and client_state = '2' then 1 else 0 end)) AS fail_count2,
+       (SUM(case when outcome = '3' and client_state = '3' then 1 else 0 end)) AS fail_count3,
+       (SUM(case when outcome = '3' and client_state = '4' then 1 else 0 end)) AS fail_count4,
+       (SUM(case when outcome = '3' and client_state = '5' then 1 else 0 end)) AS fail_count5,
+       (SUM(case when outcome = '3' and client_state = '6' then 1 else 0 end)) AS fail_count6,
+       (SUM(case when outcome = '6' then 1 else 0 end)) AS fail_count7
+FROM   result LEFT JOIN (SELECT app_version.id AS id,
+                                plan_class,
+                                platform.name
+                         FROM app_version INNER JOIN platform
+                                          ON platform.id = platformid
+                        ) as platform_name
+              ON app_version_id = platform_name.id 
+WHERE
+       appid = '$query_appid' AND
+       server_state = '5' AND outcome NOT IN (4,5)
+       $limit_app_versions
+       $limit_received_time
+GROUP BY
+       app_version_num,
+       app_version_id DESC
+ORDER BY
+       $query_order
+";
+
+echo "<!-- QUERY: $main_query -->";
+
+$db = BoincDb::get(true);
+$result = $db->do_query($main_query);
+
+if($db->base_errno()) {
+    echo $db->base_error();
+}
+
+start_table();
+table_header(
+    "App version", "Platform", "Plan Class", "Total<br>Results", "Pass Rate", "Fail Rate",
+    "Failed<br>Downloading", "Failed<br>Downloaded", "Failed<br>Computing",
+    "Failed<br>Uploading", "Failed<br>Uploaded", "Aborted", "Validate<br>errors"
+);
+
+while ($res = $result->fetch_object()) {
+    echo "<tr>";
+
+    echo "  <td align=\"left\" valign=\"top\">";
+    echo $res->version;
+    echo " / ";
+    echo $res->app_version_id;
+    echo "</td>\n";
+
+    echo "  <td align=\"left\" valign=\"top\">";
+    if($res->platform)
+        echo $res->platform;
+    else
+        echo "unknown";
+    echo "</td>\n";
+
+    echo "  <td align=\"left\" valign=\"top\">";
+    echo $res->plan_class;
+    echo "</td>\n";
+
+    $tot = $res->total_results;
+
+    echo "  <td align=\"right\" valign=\"top\">";
+    echo $tot;
+    echo "  </td>\n";
+
+    $abs = $res->pass_count;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    echo "</td>\n";
+
+    $abs = $res->fail_count;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    echo "</td>\n";
+
+    $abs = $res->fail_count1;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    echo "</td>\n";
+
+    $abs = $res->fail_count2;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    echo "</td>\n";
+
+    $abs = $res->fail_count3;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    if ($abs > 0) {
+        echo "<a title=\"$abs\" href=\"ordered_client_errors.php?appid=$query_appid&nsecs=$query_nsecs&appverid=$res->app_version_id\">";
+        printf("%.4f%%</a>", $perc);
+    } else {
+        printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    }
+    echo "</td>\n";
+
+    $abs = $res->fail_count4;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    echo "</td>\n";
+
+    $abs = $res->fail_count5;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    echo "</td>\n";
+
+    $abs = $res->fail_count6;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    echo "</td>\n";
+
+    $abs = $res->fail_count7;
+    $perc = $abs / $tot * 100;
+    echo "  <td align=\"right\" valign=\"top\">";
+    if ($abs > 0) {
+        echo "<a title=\"$abs\" href=\"db_action.php?table=result&server_state=5&outcome=6&detail=low&nresults=20&clauses=app_version_id+%3D+$res->app_version_id\">";
+        printf("%.4f%%</a>", $perc);
+    } else {
+        printf("<div title=\"%d\">%.4f%%</div>  ", $abs, $perc);
+    }
+    echo "</td>\n";
+
+    echo "</tr>\n";
+
+}
+
+$result->free();
+
+echo "</table>\n";
+
+$page = $_SERVER["REQUEST_URI"];
+echo "<form action=$page>\n";
+echo "<input type=\"hidden\" name=\"appid\" value=\"$query_appid\">\n";
+echo "<input type=\"hidden\" name=\"nsecs\" value=\"$query_nsecs\">\n";
+echo "<input type=\"checkbox\" name=\"allversions\" value=\"1\" $allversions>\n";
+echo "list all reported App versions  \n";
+echo "<input class=\"btn btn-default\" type=\"submit\" value=\"show\">\n";
+echo "</form>\n";
+
+admin_page_tail();
+
+echo "\n";
+
+?>
diff --git a/html/ops/pass_percentage_by_platform.php b/html/ops/pass_percentage_by_platform.php
index 595f6d9..418b202 100644
--- a/html/ops/pass_percentage_by_platform.php
+++ b/html/ops/pass_percentage_by_platform.php
@@ -18,7 +18,6 @@
 
 require_once("../inc/util_ops.inc");
 
-db_init();
 admin_page_head("Result summary per app version");
 
 //   modified by Bernd Machenschalk 2007
@@ -113,7 +112,8 @@ ORDER BY
        $query_order
 ";
 
-$result = _mysql_query($main_query);
+$db = BoincDb::get();
+$result = $db->do_query($main_query);
 
 start_table();
 table_header(
@@ -122,7 +122,7 @@ table_header(
     "Failed<br>Uploading", "Failed<br>Uploaded", "Aborted"
 );
 
-while ($res = _mysql_fetch_object($result)) {
+while ($res = $result->fetch_object()) {
     $av = BoincAppVersion::lookup_id($res->app_version_id);
     if ($av) {
         $p = BoincPlatform::lookup_id($av->platformid);
@@ -137,6 +137,8 @@ while ($res = _mysql_fetch_object($result)) {
         default: $ver_name .= " (unknown processor type)";
         }
     }
+    echo "<tr>";
+
     echo "<td align=\"left\" valign=\"top\">$ver_name</td>";
 
     echo "<td align=\"right\" valign=\"top\">";
@@ -175,11 +177,10 @@ while ($res = _mysql_fetch_object($result)) {
     echo $res->fail_rate6;
     echo "%  </td>";
 
-
     echo "</tr>\n";
 
 }
-_mysql_free_result($result);
+$result->free();
 
 echo "</table>\n";
 
diff --git a/html/ops/profile_screen_form.php b/html/ops/profile_screen_form.php
index 8213d02..ff0cb6d 100644
--- a/html/ops/profile_screen_form.php
+++ b/html/ops/profile_screen_form.php
@@ -46,7 +46,7 @@ if (function_exists('profile_screen_query')) {
     $query = "select * from profile, user where profile.userid=user.id "
         ." and has_picture>0 "
         ." and verification=0 "
-        ." and uotd_time is null "
+        ." and (uotd_time is null or uotd_time=0) "
         ." and expavg_credit>1 "
         ." and (response1 <> '' or response2 <> '') "
         ." order by recommend desc limit 20"
diff --git a/html/ops/show_log.php b/html/ops/show_log.php
index d893bf1..f250251 100644
--- a/html/ops/show_log.php
+++ b/html/ops/show_log.php
@@ -28,12 +28,14 @@ if (!$log_dir) {
 }
 
 if( isset($_GET["f"]) ){
-   $f = $_GET["f"];
+    $f = $_GET["f"];
+    $f = escapeshellcmd($f);
 } else {
-   $f = "";
+    $f = "";
 }
 if( isset($_GET["s"]) ){
     $s = $_GET["s"];
+    $s = escapeshellcmd($s);
 } else {
     $s = "";
 }
diff --git a/html/ops/size_census.php b/html/ops/size_census.php
index f593903..f1f8a21 100755
--- a/html/ops/size_census.php
+++ b/html/ops/size_census.php
@@ -42,7 +42,8 @@ function do_app($app) {
         " where host_app_version.app_version_id = app_version.id " .
         " and app_version.appid = $app->id " .
         " and et_n > 0  and et_avg > 0 " .
-        " and host.id = host_app_version.host_id";
+        " and host.id = host_app_version.host_id " .
+        " and host.expavg_credit > 10";
     $result = $db->do_query($query);
     $a = array();
     while ($x = _mysql_fetch_object($result)) {
diff --git a/html/ops/team_export.php b/html/ops/team_export.php
index c0cef05..b6bb670 100755
--- a/html/ops/team_export.php
+++ b/html/ops/team_export.php
@@ -99,7 +99,7 @@ function main() {
     echo "------------ Starting at ".time_str(time())."-------\n";
     $f = fopen("temp.xml", "w");
     $teams = BoincTeam::enum(null);
-    fwrite($f, "<teams>\n");
+    fwrite($f, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<teams>\n");
     foreach($teams as $team) {
         handle_team($team, $f);
     }
diff --git a/html/ops/team_import.php b/html/ops/team_import.php
index bf3b755..a890bf7 100755
--- a/html/ops/team_import.php
+++ b/html/ops/team_import.php
@@ -51,6 +51,7 @@ function decode($x) {
 }
 
 function parse_team($f) {
+    $t = new stdClass(); 
     while ($s = fgets($f)) {
         if (strstr($s, '</team>')) {
             $t->name = decode($t->name);
diff --git a/html/ops/test_job_file.php b/html/ops/test_job_file.php
new file mode 100755
index 0000000..1c6be3b
--- /dev/null
+++ b/html/ops/test_job_file.php
@@ -0,0 +1,137 @@
+#! /usr/bin/env php
+<?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+// Test file upload handler for remote job submission (user/job_file.php)
+// Change filepaths and md5's to your own values
+
+$cli_only = true;
+require_once("../inc/util_ops.inc");
+require_once("../inc/submit.inc");
+
+// global test configuration
+$req = new StdClass;
+$req->project = parse_config(get_config(), "<master_url>");
+//$req->project       = "https://PROJECT_MASTER_URL/"; // use this to override the above value
+$req->authenticator = "xxxx"; // this user must have remote submit permissions
+//$req->batch_id = "1"; // optional, if used with query_files files will be added to this batch if they exist
+//$req->delete_time = now()+14*3600; // optional, if used with query_files this will be updated if the file exists
+
+// files to be uploaded
+$upld_files = array();
+// copy the next lines in order to specify more than one upload file
+//$f_realpath = realpath('/var/spool/sixtrack/input/SixIn-1472649201.zip');
+//$f_md5 = md5_file($f_realpath);
+//$f_md5 = "833d1654e6bfa2cd7c8ca217d210e52a";
+//$upld_files[] = array("path" => $f_realpath, "md5" => $f_md5);
+
+// example test cases:
+//$upld_files[] = array("path" => "", "md5" => md5("jobfileuploadtest"); // Should produce an error
+//$upld_files[] = array("path" => $f_realpath, "md5" => ""; // Should produce an error
+
+// files to be queried
+$query_files = array();
+//$query_files[] = array("md5" => "a7d5cbd6ef395e8a79ef29228076d38d");
+//$query_files[] = array("md5" => "8167c3f9973b7fc85b6cb623644122d5");
+//$query_files[] = array("md5" => "401324352d30888a5df2e5cc65035b17");
+//$query_files[] = array("md5" => "401324352d30888a5df2e5cc65035b18");
+
+function send_request($req, $xml, $files) {
+    $ch = curl_init("$req->project/job_file.php");
+    curl_setopt($ch, CURLOPT_POST, 1);
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+    $post = array();
+    $post["request"] = $xml;
+    if ($req->type == "upload") {
+        $i=0;
+        foreach ($files as $f) {
+            if ($f['path'] != "") {
+                $post["file_$i"] = '@'.$f['path'];
+                $i++;
+            }
+        }
+    }
+
+    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
+    $reply = curl_exec($ch);
+    if ($reply) {
+        print $reply . "\n";
+    } else {
+        print curl_error($ch) . "\n";
+    }
+    curl_close($ch);
+}
+
+function upload_test($req, $files) {
+    $req->type = "upload";
+
+    $xml = "<upload_files>
+        <authenticator>$req->authenticator</authenticator>\n";
+    if (isset($req->delete_time)) {
+        $xml .= "    <delete_time>$req->delete_time</delete_time>\n";
+    }
+    if (isset($req->batch_id)) {
+        $xml .= "    <batch_id>$req->batch_id</batch_id>\n";
+    }
+    foreach ($files as $f) {
+        if ($f['md5'] != "") {
+            $xml .= "    <md5>".$f['md5']."</md5>\n";
+        }
+    }
+
+    $xml .= "</upload_files>";
+
+    send_request($req, $xml, $files);
+}
+
+function query_test($req, $files) {
+    $req->type = "query";
+
+    $xml = "<query_files>
+        <authenticator>$req->authenticator</authenticator>\n";
+    if (isset($req->delete_time)) {
+        $xml .= "    <delete_time>$req->delete_time</delete_time>\n";
+    }
+    if (isset($req->batch_id)) {
+        $xml .= "    <batch_id>$req->batch_id</batch_id>\n";
+    }
+    foreach ($files as $f) {
+        $xml .= "    <md5>".$f['md5']."</md5>\n";
+    }
+    $xml .= "</query_files>";
+
+    send_request($req, $xml, $files);
+}
+
+// main
+if ($argc != 2) {
+    print("Usage: ".$argv[0]." [upload|query]");
+}
+
+switch ($argv[1]) {
+case "upload":
+    upload_test($req, $upld_files);
+    break;
+case "query":
+    query_test($req, $query_files);
+    break;
+default:
+    print("Usage: ".$argv[0]." [upload|query]");
+}
+
+?>
diff --git a/html/ops/update_profile_pages.php b/html/ops/update_profile_pages.php
index 4868035..f0f5ccf 100755
--- a/html/ops/update_profile_pages.php
+++ b/html/ops/update_profile_pages.php
@@ -28,11 +28,11 @@ echo date(DATE_RFC822), ": Starting\n";
 set_time_limit(0);
 ini_set("memory_limit", "1024M");
 
-$debug = false;
+$debug = true;
 
 function print_debug_msg($text) {
     global $debug;
-    if ($debug) print($text."\n");
+    if ($debug) echo $text."\n";
 }
 
 db_init();
@@ -51,7 +51,7 @@ $alphabet = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P
 //   $descriptor is an optional file descriptor to write the table to.
 
 function show_user_table($members, $offset, $numToDisplay, $cols) {
-    echo "<table class=\"table table-bordered\">\n";
+    start_table();
 
     $rows = ceil($numToDisplay / $cols);
     $count = $offset;
@@ -79,7 +79,7 @@ function show_user_table($members, $offset, $numToDisplay, $cols) {
                     $show_picture = false;
                 }
                 if ($show_picture) {
-                    echo "<a href=\"".URL_BASE."view_profile.php?userid={$members[$count]}\"><img src=\"".URL_BASE.IMAGE_URL."{$members[$count]}_sm.jpg\"></a>";
+                    echo "<a href=\"".secure_url_base()."view_profile.php?userid={$members[$count]}\"><img src=\"".secure_url_base().IMAGE_URL."{$members[$count]}_sm.jpg\"></a>";
                 } else {
                     echo " ";
                 }
@@ -92,8 +92,7 @@ function show_user_table($members, $offset, $numToDisplay, $cols) {
         }
         echo "</tr>\n";
     }
-    echo "</table>\n";
-
+    end_table();
 }
 
 // Generates a standard set of links between associated multi-page documents.
@@ -189,7 +188,7 @@ function build_picture_pages($width, $height) {
         $filename = PROFILE_PATH . "user_gallery_" . $page . ".html";
         open_output_buffer();
 
-        page_head("Profile gallery: page $page of $numPages", null, null, "../");
+        page_head("Profile gallery: page $page of $numPages", null, false, "../");
 
         echo "Last updated ", pretty_time_str(time()),
             "\n<p>Browse the user profiles by picture.
@@ -203,7 +202,7 @@ function build_picture_pages($width, $height) {
             for ($col = 0; $col < $width; $col++) {
 	            if ($count < $numIds) {
                     echo "<td class=\"bordered\" align=\"center\">
-                        <a href=\"".URL_BASE."view_profile.php?userid=".$userIds[$count]."\"><img src=\"".URL_BASE.IMAGE_URL.$userIds[$count]."_sm.jpg\"></a>
+                        <a href=\"".secure_url_base()."view_profile.php?userid=".$userIds[$count]."\"><img src=\"".secure_url_base().IMAGE_URL.$userIds[$count]."_sm.jpg\"></a>
                     </td>";
                     $count++;
                 }
@@ -268,7 +267,7 @@ function build_country_pages() {
         $baseFileName =  "profile_country_" . get_legal_filename($country);
         build_profile_pages(
             $countryMembers[$country],
-            "User Profiles from $country", $country, 5, 2,
+            "User Profiles from $country", 5, 2,
             PROFILE_PATH, $baseFileName
         );
     }
@@ -312,14 +311,14 @@ function build_alpha_pages() {
             build_profile_pages(
                 $members[$letter],
                 "User Profiles - Names beginning with $letter",
-                "Names beginning with $letter", 5, 2, $filePath,
+                5, 2, $filePath,
                 "profile_$letter"
             );
         } else {
             build_profile_pages(
                 $members[$letter],
                 "User Profiles - Names beginning with other characters",
-                "Names beginning with other characters", 5, 2, $filePath,
+                5, 2, $filePath,
                 "profile_other"
             );
         }
@@ -333,17 +332,18 @@ function build_alpha_pages() {
 // A generalized function to produce some number of pages summarizing a
 // set of user profiles.
 
-function build_profile_pages($members, $pageHead, $pageTitle, $rowsPerPage, $colsPerPage, $filePath, $baseFileName) {
+function build_profile_pages(
+    $members, $title, $rowsPerPage, $colsPerPage, $dir, $base_filename
+) {
     $numPerPage = $rowsPerPage * $colsPerPage;
     $numPages = ceil(count($members) / $numPerPage);
 
     for ($page = 1; $page <= $numPages; $page++) {
-
-        $filename = $filePath . $baseFileName . "_" . $page . ".html";
+        $filename = $dir . $base_filename . "_" . $page . ".html";
         open_output_buffer();
 
-        $head = $pageHead . ": Page $page of $numPages";
-        page_head($head, null, $pageTitle, "../");
+        $pagetitle = $title.": Page $page of $numPages";
+        page_head($pagetitle, null, null, "../");
 
         echo "Last updated ", pretty_time_str(time()), "<p>\n";
 
@@ -351,7 +351,7 @@ function build_profile_pages($members, $pageHead, $pageTitle, $rowsPerPage, $col
 
         show_user_table($members, $offset, $numPerPage, $colsPerPage);
 
-        write_page_links($baseFileName, $page, $numPages);
+        write_page_links($base_filename, $page, $numPages);
 
         page_tail(false, "../");
 
@@ -370,18 +370,18 @@ function build_country_summary_page($countryMembers) {
     page_head("User Profiles by Country", null, null, "../");
     echo "Last updated " . pretty_time_str(time()) . "<p>";
 
-    echo "<table border=0>\n";
-    echo "<tr><td><b>Country</b></td><td align=\"center\"><b>Profiles</b></td></tr>\n";
+    start_table();
+    row_heading_array(array("Country", "Profiles"));
 
     foreach ($countries as $country) {
         $numMembers = count($countryMembers[$country]);
         $name = get_legal_filename($country);
 
         echo "<tr>\n<td><a href=\"profile_country_",
-            "{$name}_1.html\">$country</a></td><td align=\"center\">$numMembers</td></td>\n";
+            "{$name}_1.html\">$country</a></td><td>$numMembers</td></td>\n";
     }
 
-    echo "</table>";
+    end_table();
     page_tail(false, "../");
 
     close_output_buffer($filename);
@@ -397,7 +397,7 @@ function build_alpha_summary_page($characters_used) {
 
     foreach ($alphabet as $character) {
         if (isset($characters_used[$character])) {
-            echo "<a href=\"".URL_BASE.PROFILE_URL."profile_{$character}_1.html\">$character</a> ";
+            echo "<a href=\"".secure_url_base().PROFILE_URL."profile_{$character}_1.html\">$character</a> ";
             unset($characters_used[$character]);
         } else {
             echo "$character ";
@@ -406,7 +406,7 @@ function build_alpha_summary_page($characters_used) {
 
     // Link to the 'Other' page if necessary.
     if (!empty($characters_used)) {
-        echo "<a href=\"".URL_BASE.PROFILE_URL."profile_other_1.html\">Other</a> ";
+        echo "<a href=\"".secure_url_base().PROFILE_URL."profile_other_1.html\">Other</a> ";
     }
     close_output_buffer($filename);
 }
diff --git a/html/ops/update_uotd.php b/html/ops/update_uotd.php
index aafec6e..6112858 100755
--- a/html/ops/update_uotd.php
+++ b/html/ops/update_uotd.php
@@ -3,7 +3,7 @@
 <?php
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -21,7 +21,16 @@
 require_once("../inc/util_ops.inc");
 require_once("../inc/uotd.inc");
 
-db_init();
+$force_new = false;
+if ($argc > 1) {
+    if ($argv[1] == "-f" || $argv[1] == "--force") {
+        $force_new = true;
+    } else {
+        echo "Usage: ".$argv[0]." [-f|--force]\n";
+        echo "     -f | --force  Will select a new User of the day regardless if there already is one for the current day\n";
+        exit(1);
+    }
+}
 
-select_uotd();
+select_uotd($force_new);
 ?>
diff --git a/html/ops/upgrade_db.php b/html/ops/upgrade_db.php
index f0f9d23..3cf85c1 100755
--- a/html/ops/upgrade_db.php
+++ b/html/ops/upgrade_db.php
@@ -27,6 +27,8 @@ $db_revision = 0;
 if (file_exists("../../db_revision")) {
     $db_revision = (int) file_get_contents("../../db_revision");
 }
+echo "DB version: $db_revision\n";
+
 require_once("db_update.php");
 
 $updates = array();
diff --git a/html/project.sample/cache_parameters.inc b/html/project.sample/cache_parameters.inc
index 31395b6..7c25126 100644
--- a/html/project.sample/cache_parameters.inc
+++ b/html/project.sample/cache_parameters.inc
@@ -9,6 +9,7 @@ define('USER_PROFILE_TTL', 3600);
 define('TOP_PAGES_TTL', 43200);
 define('INDEX_PAGE_TTL', 3600);
 define('STATUS_PAGE_TTL', 3600);
+define('REMOTE_PROJECTS_TTL', 86400);
 
 // max allowed cache usage
 //
diff --git a/html/project.sample/project.inc b/html/project.sample/project.inc
index 9915b2e..de52ecd 100644
--- a/html/project.sample/project.inc
+++ b/html/project.sample/project.inc
@@ -1,33 +1,79 @@
 <?php
 
-// This is a sample project file.
+// Sample BOINC project web config file.
 // Modify it to suit your project.
 // Put your version in html/project/project.inc
+//
 // add tra() around visible strings to make them translatable
-// see inc/translation.inc and https://boinc.berkeley.edu/trac/wiki/TranslateProject for Details
+// see inc/translation.inc and
+// https://boinc.berkeley.edu/trac/wiki/TranslateProject for details
 
 require_once("../inc/util.inc");
 
-$master_url = parse_config(get_config(), "<master_url>");
+//-------------- Project name and owner
+
 define("PROJECT", "REPLACE WITH PROJECT NAME");
+define("COPYRIGHT_HOLDER", "REPLACE WITH COPYRIGHT HOLDER");
+
+//-------------- URLs and directories
+
+$master_url = parse_config(get_config(), "<master_url>");
 define("URL_BASE", $master_url);
 define("IMAGE_PATH", "../user_profile/images/");
 define("IMAGE_URL", "user_profile/images/");
 define("PROFILE_PATH", "../user_profile/");
 define("PROFILE_URL", "user_profile/");
 define("LANGUAGE_FILE", "languages.txt");
-define("STYLESHEET", "white.css");
-//define("STYLESHEET2", "xxx.css");
-define("FORUM_QA_MERGED_MODE", false); // Set to true to merge Message boards and Q&A section
-define("COPYRIGHT_HOLDER", "REPLACE WITH COPYRIGHT HOLDER");
+
+//-------------- contact info
+
 define("SYS_ADMIN_EMAIL", "admin@$master_url");
 define("UOTD_ADMIN_EMAIL", "admin@$master_url");
-    // who gets user of the day pool running low e-mails?
+    // who gets emails about user of the day pool running low?
+define("POST_REPORT_EMAILS", "moderator1@$master_url|moderator2@$master_url");
+    // Email addresses separated by pipe ( | ) that will receive user reports
+    // of offensive forum posts.
+
+//-------------- Caching
+
 //define("MEMCACHE_SERVERS", "127.0.0.1:11211");
 
-// Email addresses separated by pipe ( | ) that will receive user reported 
-// offensive forum posts.
-define("POST_REPORT_EMAILS", "moderator1@$master_url|moderator2@$master_url");
+//-------------- CSS styling
+
+// add your own stylesheets (included after bootstrap)
+//define("STYLESHEET", "aaa.css");
+//define("STYLESHEET2", "bbb.css");
+
+//-------------- enable/disable web features
+
+define("FORUM_QA_MERGED_MODE", true);
+    // Set to true to merge Message boards and Q&A section
+define ("DISABLE_PROFILES", true);
+    // enable profiles only after enabling reCAPTCHA
+    // http://boinc.berkeley.edu/trac/wiki/ProtectionFromSpam
+define("USE_STOPFORUMSPAM", true);
+    // use http://www.stopforumspam.com to suppress spammer accounts
+define("RPC_DEBUG", false);
+    // Enables PHP error messages in public Web RPCs
+
+//-------------- Project-specific preferences
+
+define('COLOR_PREFS', false);
+    // user can select screensaver color scheme
+define('GFX_CPU_PREFS', false);
+    // user can limit % CPU used by screensaver
+    // (lower frame rate if exceeded)
+    // This is probably irrelevant if your screensaver uses OpenGL
+define('APP_SELECT_PREFS', false);
+    // user can choose which apps to run
+define('NON_GRAPHICAL_PREF', false);
+    // user can choose to run faster non-graphical app versions if available
+define('MAX_JOBS_PREF', false);
+    // user can choose max # of jobs in progress
+define('MAX_CPUS_PREF', false);
+    // user can choose max # of CPUs to use
+
+//-------------- PHPMailer
 
 // If you use PHPMailer, uncomment the following
 // and complete the function definition based on your SMTP server
@@ -56,26 +102,39 @@ function make_php_mailer() {
 }
 }
 
-function project_banner($title, $prefix) {
-    // Put your project title and logo here
-    // If you include any links, prepend URL with $prefix
+//-------------- Header and footer
 
-    echo "<div class=\"page_title\">$title</div>";
+// Put your project title and logo here
+// If you include any links, prepend URL with $prefix
+// if you need to open divs here close them in project_footer()
+//
+function project_banner($title, $prefix, $is_main) {
+    if ($is_main) {
+        echo '<img class="img-responsive" src="img/water.jpg">';
+    }
+    sample_navbar(secure_url_base(), get_logged_in_user(false), false);
+    if ($title) {
+        echo "<h2>$title</h2>\n";
+    }
 }
+//$fixed_navbar = true;
 
 function project_footer($show_return, $show_date, $prefix) {
     // If you include any links, prepend URL with $prefix
-    echo "<br><hr noshade size=1><center>";
-    if ($show_return) {
-        echo "<a href=".$prefix."index.php>".tra("Main page")."</a> · <a href=".$prefix."home.php>".tra("Your account")."</a> · <a href=".$prefix."forum_index.php>".tra("Message boards")."</a><br>\n";
-    }
-    echo "<br><br>".tra("Copyright")." © ".gmdate("Y ").COPYRIGHT_HOLDER."</center>\n";
+    //
+    echo '<p></p>
+        <a class="brand boinc-logo" href="http://boinc.berkeley.edu/"><img align="middle" border="0" src="'.secure_url_base().'img/pb_boinc.gif" alt="Powered by BOINC"></a>
+        <br>
+        <p class="text-center"> ©'.gmdate("Y ").COPYRIGHT_HOLDER.'</p>
+    ';
     if ($show_date) {
         $t = time_str(time());
-        echo "<p class=\"text-muted\">".tra("Generated")." $t</p>\n";
+        echo "<center><small>".tra("Generated")." $t</small><center>\n";
     }
 }
 
+//-------------- Ops access control
+
 // Authorize access to administrative pages.
 // You can check for login, IP address, or whatever you want.
 //
@@ -102,6 +161,8 @@ function auth_ops_example() {
     }
 }
 
+//-------------- Customizable functions
+
 function show_profile_heading1() {
     return tra("Your personal background.");
 }
@@ -134,6 +195,13 @@ function project_user_page_private($user){
     // shown in the private account page
 }
 
+function project_forum_post_rules() {
+    // additional forum post rules
+    return "";
+}
+
+//-------------- Support for per-app credit
+
 if (0) {
 
 // show project-specific credit on user/team pages
@@ -206,9 +274,4 @@ function project_team_credit($team) {
 
 }   // if(0)
 
-function project_forum_post_rules() {
-    // additional forum post rules
-    return "";
-}
-
 ?>
diff --git a/html/project.sample/project_specific_prefs.inc b/html/project.sample/project_specific_prefs.inc
index 59b806d..b2ce610 100644
--- a/html/project.sample/project_specific_prefs.inc
+++ b/html/project.sample/project_specific_prefs.inc
@@ -10,19 +10,6 @@
 // Edit this file accordingly,
 // and put your version in html/project_specific/project_specific_prefs.inc
 
-// Select standard prefs here:
-
-define('COLOR_PREFS', false);
-    // user can select screensaver color scheme
-define('GFX_CPU_PREFS', false);
-    // user can limit % CPU used by screensaver
-    // (lower frame rate if exceeded)
-    // This is probably irrelevant if your screensaver uses OpenGL
-define('APP_SELECT_PREFS', true);
-    // user can choose which apps to run
-define('NON_GRAPHICAL_PREF', false);
-    // user can choose to run faster non-graphical app versions if available
-
 // Project-specific prefs are represented in three ways:
 // - as an XML document (stored in the DB in this form)
 // - as a PHP structure
@@ -52,7 +39,7 @@ function option($name, $val) {
 
 define('COLOR_DESC', tra('Color scheme for graphics'));
 // xgettext:no-php-format
-define("MAX_GFX_CPU_PCT_DESC", tra("Maximum CPU % for graphics%10 ... 100%2", "<br><p class=\"text-muted\">", "</p>"));
+define("MAX_GFX_CPU_PCT_DESC", tra("Maximum CPU % for graphics%10 ... 100%2", "<br><small>", "</small>"));
 define('APP_SELECT_DESC', tra('Run only the selected applications'));
 define('APP_SELECT_TOOLTIP', tra('Only get tasks for certain applications. Useful to focus on particular applications, or to exclude them.'));
 define('ACCEPT_ANY_DESC', tra('If no work for selected applications is available, accept work from other applications?'));
@@ -103,11 +90,27 @@ function project_specific_prefs_default() {
     return $x;
 }
 
+function number_select($name, $max, $n) {
+    $sel = ($n == 0) ? "selected":"";
+    $x = "<select class=\"form-control input-sm\" name=$name> <option value=0 $sel>".tra("No limit")."</option>";
+    for ($i=1; $i<=$max; $i++) {
+        $sel = ($n == $i) ? "selected":"";
+        $x .= "<option value=$i $sel>$i</option>";
+    }
+    $x .= "</select>";
+    return $x;
+}
+
+function limit_string($val) {
+    if ($val) return $val;
+    return tra("No limit");
+}
+
 function project_specific_prefs_edit($prefs, $error=false) {
     global $app_array;
     if (COLOR_PREFS) {
         $x = $prefs->color_scheme;
-        $y = "<select name=color_scheme>
+        $y = "<select class=\"form-control input-sm\" name=color_scheme>
                 ".option("Tahiti Sunset", $x)
                 .option("Desert Sands", $x)."
             </select>
@@ -143,6 +146,20 @@ function project_specific_prefs_edit($prefs, $error=false) {
             "<input type=checkbox name=non_graphical $checked>"
         );
     }
+    if (MAX_JOBS_PREF) {
+        $n = $prefs->max_jobs;
+        row2(
+            tra("Max # of jobs for this project"),
+            number_select("max_jobs", 8, $n)
+        );
+    }
+    if (MAX_CPUS_PREF) {
+        $n = $prefs->max_cpus;
+        row2(
+            tra("Max # of CPUs for this project"),
+            number_select("max_cpus", 8, $n)
+        );
+    }
 }
 
 function project_specific_prefs_parse_form(&$error) {
@@ -153,8 +170,10 @@ function project_specific_prefs_parse_form(&$error) {
         $x .= "<color_scheme>$color_scheme</color_scheme>\n";
     }
     if (GFX_CPU_PREFS) {
-        $max_gfx_cpu_pct = sanitize_numeric($_GET["max_gfx_cpu_pct"]);
-        if (!verify_numeric($max_gfx_cpu_pct, 0, 100)) $error->max_gfx_cpu_pct = true;
+        $max_gfx_cpu_pct = get_str("max_gfx_cpu_pct");
+        if (!verify_numeric($max_gfx_cpu_pct, 0, 100)) {
+            $error->max_gfx_cpu_pct = true;
+        }
         $x .= "<max_gfx_cpu_pct>$max_gfx_cpu_pct</max_gfx_cpu_pct>\n";
     }
 
@@ -185,6 +204,14 @@ function project_specific_prefs_parse_form(&$error) {
             $x .= "<non_graphical>1</non_graphical>\n";
         }
     }
+    if (MAX_JOBS_PREF) {
+        $val = $_GET["max_jobs"];
+        $x .= "<max_jobs>$val</max_jobs>\n";
+    }
+    if (MAX_CPUS_PREF) {
+        $val = $_GET["max_cpus"];
+        $x .= "<max_cpus>$val</max_cpus>\n";
+    }
 
     return $x;
 }
@@ -209,6 +236,12 @@ function project_specific_prefs_show($prefs, $columns=false) {
         if (NON_GRAPHICAL_PREF) {
             row_defs(NON_GRAPHICAL_DESC, "non_graphical", "", "yesno", $prefs);
         }
+        if (MAX_JOBS_PREF) {
+            row_defs(tra("Max # jobs"), "max_jobs", "", "minutes", $prefs);
+        }
+        if (MAX_CPUS_PREF) {
+            row_defs(tra("Max # CPUs"), "max_cpus", "", "minutes", $prefs);
+        }
     } else {
         if (COLOR_PREFS) {
             row2(COLOR_DESC, $prefs->color_scheme);
@@ -223,6 +256,12 @@ function project_specific_prefs_show($prefs, $columns=false) {
         if (NON_GRAPHICAL_PREF) {
             row2(NON_GRAPHICAL_DESC, $prefs->non_graphical?tra("yes"):tra("no"));
         }
+        if (MAX_JOBS_PREF) {
+            row2(tra("Max # jobs"), limit_string($prefs->max_jobs));
+        }
+        if (MAX_CPUS_PREF) {
+            row2(tra("Max # CPUs"), limit_string($prefs->max_cpus));
+        }
     }
 }
 
@@ -248,6 +287,12 @@ function project_specific_prefs_parse($prefs_xml) {
     if (NON_GRAPHICAL_PREF) {
         $prefs->non_graphical = parse_bool($prefs_xml, "non_graphical");
     }
+    if (MAX_JOBS_PREF) {
+        $prefs->max_jobs = parse_element($prefs_xml, "<max_jobs>");
+    }
+    if (MAX_CPUS_PREF) {
+        $prefs->max_cpus = parse_element($prefs_xml, "<max_cpus>");
+    }
     return $prefs;
 }
 
diff --git a/html/user/account_finish.php b/html/user/account_finish.php
index 3033992..c8f8f4a 100644
--- a/html/user/account_finish.php
+++ b/html/user/account_finish.php
@@ -38,19 +38,21 @@ echo "
 ";
 start_table();
 row2(
-    tra("Name")."<br><p class=\"text-info\">".tra("Identifies you on our web site. Use your real name or a nickname.")."</p>",
-    "<input name=\"name\" size=\"30\" value=\"$user->name\">"
+    tra("Name")."<br><small>".tra("Identifies you on our web site. Use your real name or a nickname.")."</small>",
+    sprintf('<input name="name" class="form-control" value="%s">', $user->name)
 );
 row2_init(
-    tra("Country")."<br><p class=\"text-info\">".tra("Select the country you want to represent, if any.")."</p>",
-    "<select name=\"country\">"
+    tra("Country")."<br><small>".tra("Select the country you want to represent, if any.")."</small>",
+    '<select name="country" class="form-control">'
 );
-print_country_select();
+echo country_select_options();
 echo "</select></td></tr>\n";
-row2(
-    tra("Postal or ZIP Code")."<br><p class=\"text-info\">".tra("Optional")."</span>",
-    "<input name=\"postal_code\" size=\"20\">"
-);
+if (POSTAL_CODE) {
+    row2(
+        tra("Postal or ZIP Code")."<br><small>".tra("Optional; not shown to others")."</small>",
+        '<input name="postal_code" class="form-control">'
+    );
+}
 row2("",
     "<input class=\"btn btn-primary\" type=\"submit\" value=\"OK\">"
 );
diff --git a/html/user/account_finish_action.php b/html/user/account_finish_action.php
index f212e33..cd58253 100644
--- a/html/user/account_finish_action.php
+++ b/html/user/account_finish_action.php
@@ -35,11 +35,15 @@ if (!is_valid_country($country)) {
     error_page("invalid country");
 }
 $country = BoincDb::escape_string($country);
-$postal_code = BoincDb::escape_string(sanitize_tags(post_str("postal_code", true)));
+if (POSTAL_CODE) {
+    $postal_code = BoincDb::escape_string(sanitize_tags(post_str("postal_code", true)));
+} else {
+    $postal_code = '';
+}
+
 $auth = BoincDb::escape_string($auth);
 
 $name = BoincDb::escape_string($name);
-$postal_code = BoincDb::escape_string($postal_code);
 
 $user = BoincUser::lookup("authenticator='$auth'");
 if (!$user) {
diff --git a/html/user/am_get_info.php b/html/user/am_get_info.php
index 54f5b30..81758b4 100644
--- a/html/user/am_get_info.php
+++ b/html/user/am_get_info.php
@@ -19,6 +19,7 @@
 require_once("../inc/boinc_db.inc");
 require_once("../inc/xml.inc");
 
+BoincDb::get(true);
 xml_header();
 
 $retval = db_init_xml();
@@ -34,7 +35,6 @@ if (!$user) {
 
 $name = urlencode($user->name);
 $country = urlencode($user->country);
-$postal_code = urlencode($user->postal_code);
 $url = urlencode($user->url);
 $weak_auth = weak_auth($user);
 $cpid = md5($user->cross_project_id.$user->email_addr);
@@ -43,7 +43,6 @@ $ret = "<id>$user->id</id>
 <name>$name</name>
 <country>$country</country>
 <weak_auth>$weak_auth</weak_auth>
-<postal_code>$postal_code</postal_code>
 <cpid>$cpid</cpid>
 <has_profile>$user->has_profile</has_profile>
 <create_time>$user->create_time</create_time>
@@ -59,10 +58,15 @@ $user->project_prefs
 <teamid>$user->teamid</teamid>
 <venue>$user->venue</venue>";
 
+if (POSTAL_CODE) {
+    $postal_code = urlencode($user->postal_code);
+    $ret .= "<postal_code>$postal_code</postal_code>\n";
+}
+
 if ($user->teamid) {
     $team = BoincTeam::lookup_id_nocache($user->teamid);
     if ($team->userid == $user->id) {
-        $ret = $ret . "<teamfounder/>\n";
+        $ret .= "<teamfounder/>\n";
     }
 }
 
diff --git a/html/user/am_set_info.php b/html/user/am_set_info.php
index 87d1b9f..5d4651e 100644
--- a/html/user/am_set_info.php
+++ b/html/user/am_set_info.php
@@ -128,7 +128,7 @@ if ($name) {
 if ($country) {
     $query .= " country='$country', ";
 }
-if ($postal_code) {
+if (POSTAL_CODE && $postal_code) {
     $query .= " postal_code='$postal_code', ";
 }
 if ($global_prefs) {
diff --git a/html/user/apps.php b/html/user/apps.php
index 7081ff8..10d0310 100644
--- a/html/user/apps.php
+++ b/html/user/apps.php
@@ -20,6 +20,7 @@ require_once("../inc/util.inc");
 
 check_get_args(array("xml"));
 
+BoincDb::get(true);
 $platforms = BoincPlatform::enum("deprecated=0");
 
 $xml = get_str('xml', true);
@@ -31,7 +32,7 @@ if ($xml) {
     page_head(tra("Applications"));
     echo tra("%1 currently has the following applications. When you participate in %1, tasks for one or more of these applications will be assigned to your computer. The current version of the application will be downloaded to your computer. This happens automatically; you don't have to do anything.", PROJECT)."<br><br>
     ";
-    start_table();
+    start_table('table-striped');
 }
 
 $apps = BoincApp::enum("deprecated=0");
@@ -49,7 +50,7 @@ foreach ($apps as $app) {
     } else {
         $b = $app->beta?" (beta test)":"";
         echo "
-            <tr><th colspan=4>$app->user_friendly_name$b</th></tr>
+            <tr><th class=\"bg-primary\" colspan=4>$app->user_friendly_name$b</th></tr>
             <tr>
                 <th>".tra("Platform")."</th>
                 <th>".tra("Version")."</th>
diff --git a/html/user/bbcode.php b/html/user/bbcode.php
index 2c6f392..212010d 100644
--- a/html/user/bbcode.php
+++ b/html/user/bbcode.php
@@ -42,10 +42,13 @@ row2_plain("[img]http://example.com/pic.jpg[/img]", tra("use to display an image
 row2_plain("[code]".tra("Code snippet here")."[/code]", tra("use to display some code"));
 row2_plain("[pre]".tra("Pre-formatted text")."[/pre]", tra("use to display pre-formatted (usually monospaced) text"));
 row2_plain("[list]<br>* ".tra("Item 1")."<br>* ".tra("Item2")."<br>[/list]", "<ul><li>".tra("Item 1")."</li><li>".tra("Item 2")."</li></ul>");
-row2_plain("[trac]#1[/trac] or [trac]ticket:1[/trac]",
-    tra("use to link to Trac ticket on BOINC website").": <a href=\"http://boinc.berkeley.edu/trac/ticket/1\">#1</a>");
-row2_plain("[trac]wiki:WebForum[/trac]",
-    tra("use to link to Trac Wiki on BOINC website").": <a href=\"http://boinc.berkeley.edu/trac/wiki/WebForum\">WebForum</a>");
+row2_plain("[list=1]<br>* ".tra("Item 1")."<br>* ".tra("Item2")."<br>[/list]", "<ol><li>".tra("Item 1")."</li><li>".tra("Item 2")."</li></ol>");
+row2_plain(
+    "[github]#1392[/github] or [github]ticket:1392[/github]",
+    tra("link to an issue on the BOINC Github repository").": <a href=\"https://github.com/BOINC/boinc/issues/1392\">#1392</a>");
+row2_plain(
+    "[github]wiki:WebForum[/github]",
+    tra("link to a Wiki page on the BOINC Github repository").": <a href=\"https://github.com/BOINC/boinc-dev-doc/wiki/BoincIntro\">BoincIntro</a>");
 end_table();
 
 echo "<p>
diff --git a/html/user/bbcode_toolbar.js b/html/user/bbcode_toolbar.js
index 3846059..f92cb24 100644
--- a/html/user/bbcode_toolbar.js
+++ b/html/user/bbcode_toolbar.js
@@ -31,7 +31,7 @@ u_help = "Underline text: [u]text[/u]  (alt+u)";
 q_help = "Quote text: [quote]text[/quote]  (alt+q)";
 c_help = "Code display: [code]code[/code]  (alt+c)";
 l_help = "List: [list]text[/list] (alt+l)";
-o_help = "Ordered list: [list=]text[/list]  (alt+o)";
+o_help = "Ordered list: [list=1]text[/list]  (alt+o)";
 p_help = "Insert image: [img]http://image_url[/img]  (alt+p)";
 w_help = "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)";
 a_help = "Close all open bbCode tags";
@@ -42,7 +42,7 @@ k_help = "Strike text; [s]text[/s]";
 
 // Define the bbCode tags
 bbcode = new Array();
-bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[youtube]','[/youtube]','[s]','[/s]');
+bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=1]','[/list]','[img]','[/img]','[url]','[/url]','[youtube]','[/youtube]','[s]','[/s]');
 imageTag = false;
 
 // Shows the help messages in the helpline window
diff --git a/html/user/cpu_list.php b/html/user/cpu_list.php
index 7bd0427..eb3ca62 100644
--- a/html/user/cpu_list.php
+++ b/html/user/cpu_list.php
@@ -32,7 +32,7 @@ function compare($a, $b) {
 }
 
 function get_data() {
-    $db = BoincDb::get();
+    $db = BoincDb::get(true);
 
     // get CPU model status in a special query;
     // enumerating hosts was too slow on SETI at home.
@@ -43,7 +43,7 @@ function get_data() {
     //
     $x = $db->enum_fields('host', 'StdClass', 
         'p_model, count(*) as nhosts, avg(p_ncpus) as ncores, avg(p_fpops) as fpops',
-        'p_fpops>1e6 and p_fpops<1e11 and p_fpops <> 1e9 and expavg_credit>".MIND_CREDIT." group by p_model',
+        'p_fpops>1e6 and p_fpops<1e11 and p_fpops <> 1e9 and expavg_credit>'.MIN_CREDIT.' group by p_model',
         null
     );
     $m2 = array();
@@ -81,8 +81,15 @@ function show_cpu_list($data) {
         <p>
     ";
     start_table();
-    row_heading_array(array("CPU model", "Number of computers", "Avg. cores/computer", "GFLOPS/core", "GFLOPs/computer"));
-    $i = 0;
+    row_heading_array(
+        array(
+            "CPU model",
+            "Number of computers",
+            "Avg. cores/computer",
+            "GFLOPS/core",
+            "GFLOPs/computer"
+        )
+    );
     $total_nhosts = 0;
     $total_gflops = 0;
     foreach ($data->cpus as $d) {
@@ -92,16 +99,19 @@ function show_cpu_list($data) {
                 number_format($d->mean_ncores, 2),
                 number_format($d->p_fpops/1e9, 2),
                 number_format($d->mean_ncores*$d->p_fpops/1e9, 2)
-            ),
-            "row$i"
+            )
         );
         $total_nhosts += $d->nhosts;
         $total_gflops += $d->nhosts*$d->mean_ncores*$d->p_fpops/1e9;
-        $i = 1-$i;
     }
     row_array(
-        array("Total", number_format($total_nhosts, 0). " computers", "", "", number_format($total_gflops/1e3, 2)." TeraFLOPS"),
-        "row$i"
+        array(
+            "Total",
+            number_format($total_nhosts, 0). " computers",
+            "",
+            "",
+            number_format($total_gflops/1e3, 2)." TeraFLOPS"
+        )
     );
     end_table();
     echo "Generated ".time_str($data->time);
diff --git a/html/user/create_account_action.php b/html/user/create_account_action.php
index 88ea6e6..faccbb7 100644
--- a/html/user/create_account_action.php
+++ b/html/user/create_account_action.php
@@ -38,12 +38,11 @@ if (parse_bool($config, "disable_account_creation")
     error_page("Account creation is disabled");
 }
 
-$privatekey = parse_config($config, "<recaptcha_private_key>");
-if ($privatekey) {
-    $recaptcha = new ReCaptcha($privatekey);
-    $resp = $recaptcha->verifyResponse($_SERVER["REMOTE_ADDR"], $_POST["g-recaptcha-response"]);
-    if (!$resp->success) {
-        show_error(tra("Your reCAPTCHA response was not correct. Please try again."));
+if ($recaptcha_private_key) {
+    if (!boinc_recaptcha_isValidated($recaptcha_private_key)) {
+        show_error(
+            tra("Your reCAPTCHA response was not correct. Please try again.")
+        );
     }
 }
 
@@ -116,7 +115,11 @@ if (!is_valid_country($country)) {
     error_page("bad country");
 }
 
-$postal_code = sanitize_tags(post_str("postal_code", true));
+if (POSTAL_CODE) {
+    $postal_code = sanitize_tags(post_str("postal_code", true));
+} else {
+    $postal_code = '';
+}
 
 $user = make_user(
     $new_email_addr, $new_name, $passwd_hash,
@@ -136,9 +139,9 @@ if(defined('INVITE_CODES')) {
 $next_url = post_str('next_url', true);
 $next_url = sanitize_local_url($next_url);
 if ($next_url) {
-    Header("Location: ".URL_BASE."$next_url");
+    Header("Location: ".url_base()."$next_url");
 } else {
-    Header("Location: ".URL_BASE."home.php");
+    Header("Location: ".url_base()."home.php");
     send_cookie('init', "1", true);
     send_cookie('via_web', "1", true);
 }
diff --git a/html/user/create_account_form.php b/html/user/create_account_form.php
index 630f630..4562636 100644
--- a/html/user/create_account_form.php
+++ b/html/user/create_account_form.php
@@ -31,18 +31,26 @@ redirect_to_secure_url("create_account_form.php?next_url=$next_url");
 
 $config = get_config();
 if (parse_bool($config, "disable_account_creation")) {
-    error_page("This project is not accepting new accounts");
+    error_page("This project has disabled account creation");
 }
 
 if (parse_bool($config, "no_web_account_creation")) {
     error_page("This project has disabled Web account creation");
 }
 
-page_head(tra("Create an account"), null, null, null, recaptcha_get_head_extra());
+page_head(
+    tra("Create account"), null, null, null, boinc_recaptcha_get_head_extra()
+);
 
 if (!no_computing()) {
-    echo "<p>
-        <b>".tra("NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, select Add Project, and enter an email address and password.")."</b></p>
+    echo "<p class=\"lead\">"
+        .tra(
+            "NOTE: to run %1 on your computer, %2go here%3 instead of using this form.",
+            PROJECT,
+            '<a href=join.php>',
+            '</a>'
+        )
+        ."</p>
     ";
 }
 
diff --git a/html/user/create_profile.php b/html/user/create_profile.php
index 5cdb766..4bfeebf 100644
--- a/html/user/create_profile.php
+++ b/html/user/create_profile.php
@@ -20,6 +20,7 @@
 
 require_once("../inc/profile.inc");
 require_once("../inc/akismet.inc");
+require_once("../inc/recaptchalib.php");
 
 if (DISABLE_PROFILES) error_page("Profiles are disabled");
 
@@ -31,7 +32,7 @@ check_get_args(array());
 // it will be selected by default.
 //
 function show_combo_box($name, $filename, $selection=null) {
-    echo "<select name=\"$name\">\n";
+    echo "<select name=\"$name\" class=\"form-control\">\n";
 
     $file = fopen($filename, "r");
 
@@ -107,9 +108,9 @@ function show_submit() {
     $config = get_config();
     $publickey = parse_config($config, "<recaptcha_public_key>");
     if ($publickey) {
-        table_row(recaptcha_get_html($publickey));
+        table_row(boinc_recaptcha_get_html($publickey));
     }
-    table_row("<p><input class=\"btn btn-primary\" type=\"submit\" value=\"".tra("Create/edit profile") ."\" name=\"submit\">");
+    table_row("<p><input class=\"btn btn-default\" type=\"submit\" value=\"".tra("Create/edit profile") ."\" name=\"submit\">");
 }
 
 // Returns an array containing:
@@ -185,7 +186,7 @@ function show_questions($profile) {
 }
 
 function show_textarea($name, $text) {
-    rowify("<textarea name=\"$name\" cols=80 rows=20>" . $text . "</textarea>");
+    rowify("<textarea name=\"$name\" class=\"form-control\" rows=\"10\">" . $text . "</textarea>");
 }
 
 // $profile is null if user doesn't already have a profile.
@@ -200,9 +201,7 @@ function process_create_profile($user, $profile) {
 
     $privatekey = parse_config($config, "<recaptcha_private_key>");
     if ($privatekey) {
-        $recaptcha = new ReCaptcha($privatekey);
-        $resp = $recaptcha->verifyResponse($_SERVER["REMOTE_ADDR"], $_POST["g-recaptcha-response"]);
-        if (!$resp->success) {
+        if (!boinc_recaptcha_isValidated($privatekey)) {
             $profile->response1 = $response1;
             $profile->response2 = $response2;
             show_profile_form($profile,
@@ -314,9 +313,9 @@ function process_create_profile($user, $profile) {
 
 function show_profile_form($profile, $warning=null) {
     if ($profile) {
-        page_head(tra("Edit your profile"), null, null, null, recaptcha_get_head_extra());
+        page_head(tra("Edit your profile"), null, null, null, boinc_recaptcha_get_head_extra());
     } else {
-        page_head(tra("Create a profile"), null, null, null, recaptcha_get_head_extra());
+        page_head(tra("Create a profile"), null, null, null, boinc_recaptcha_get_head_extra());
     }
 
     if ($warning) {
@@ -327,7 +326,7 @@ function show_profile_form($profile, $warning=null) {
     echo "
         <form action=", $_SERVER['PHP_SELF'], " method=\"POST\", ENCTYPE=\"multipart/form-data\">
     ";
-    start_table_noborder();
+    start_table();
     show_description();
     show_questions($profile);
     show_picture_option($profile);
diff --git a/html/user/create_team.php b/html/user/create_team.php
index 99856f3..ca31dea 100644
--- a/html/user/create_team.php
+++ b/html/user/create_team.php
@@ -16,23 +16,38 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// Disabled.  being used by spammers,
+// and I can't think of a legit use for this.
+
 require_once("../inc/boinc_db.inc");
 require_once("../inc/xml.inc");
 require_once("../inc/team.inc");
 require_once("../inc/team_types.inc");
 
+xml_error(-1, "Nope");
+
 if (DISABLE_TEAMS) xml_error(-1, "Teams are disabled");
 
 xml_header();
 $retval = db_init_xml();
 if ($retval) xml_error($retval);
 
+if (parse_bool(get_config(), "disable_team_creation")) {
+    xml_error(-1, "team creation disabled");
+}
+
 $auth = get_str("account_key");
 $user = BoincUser::lookup_auth($auth);
 if (!$user) {
     xml_error(ERR_DB_NOT_FOUND);
 }
 
+if (@constant('TEAM_CREATE_NEED_CREDIT')) {
+    if ($user->total_credit == 0) {
+        xml_error(-1, "no credit");
+    }
+}
+
 $name = $_GET["name"];
 if (strlen($name) == 0) {
     xml_error(-1, "must set team name");
diff --git a/html/user/custom.css b/html/user/custom.css
new file mode 100644
index 0000000..8da1be5
--- /dev/null
+++ b/html/user/custom.css
@@ -0,0 +1,13 @@
+# fixes to light-backround themes
+
+table a:not(.btn), .table a:not(.btn), table a, .table a, a {
+    text-decoration: none;
+}
+
+table a:hover, .table a:hover, a:hover {
+    text-decoration: underline;
+}
+
+blockquote {
+    font-size: 15px;
+}
diff --git a/html/user/custom_dark.css b/html/user/custom_dark.css
new file mode 100644
index 0000000..f6d4b96
--- /dev/null
+++ b/html/user/custom_dark.css
@@ -0,0 +1,50 @@
+# fixes to dark-backround themes to increase legibility
+
+body, navbar-text, panel {
+    color:white;
+}
+
+table a:not(.btn), .table a:not(.btn), a:not(.btn) {
+    color: sandybrown;
+    text-decoration: none;
+}
+
+table a:hover, .table a:hover, a:hover {
+    color: sandybrown;
+    text-decoration: underline;
+}
+
+table a:visited:not(.btn), .table a:visited:not(.btn), a:visited:not(.btn) {
+    color: sandybrown;
+    text-decoration: underline;
+}
+
+.nav.navbar-nav li a, .nav.navbar-nav li a:hover, .nav.navbar-nav li a:visited {
+    color: white;
+}
+
+.navbar-default .navbar-header, .navbar-brand {
+    color: white !important;
+}
+.navbar-default .navbar-header a:hover {
+    color: white;
+}
+
+hr {
+    border-color: #d0d0d0;
+}
+
+img.icon {
+    padding: 3px;
+    background-color: lightgray;
+}
+
+blockquote {
+    font-size: 15px;
+    border-color: gray;
+}
+
+pre, code {
+    color:white;
+    background-color: #333;
+}
diff --git a/html/user/donate.php b/html/user/donate.php
index 79446f9..31cf1f3 100644
--- a/html/user/donate.php
+++ b/html/user/donate.php
@@ -43,7 +43,7 @@ $payment_id = _mysql_insert_id();
 
 $URL = "www.paypal.com/cgi-bin/webscr";
 
-$fields = ("cmd=_xclick&lc=US&business=".PAYPAL_ADDRESS."&quantity=1&item_name=Donation&item_number=".$payment_id."_".$order_time."&amount=".$amount."&no_shipping=1&return=".URL_BASE."donated.php?st=Completed&rm=2&cancel_return=".URL_BASE."/donated.php&no_note=1&currency_code=".$currency."&bn=PP-BuyNowBF");
+$fields = ("cmd=_xclick&lc=US&business=".PAYPAL_ADDRESS."&quantity=1&item_name=Donation&item_number=".$payment_id."_".$order_time."&amount=".$amount."&no_shipping=1&return=".url_base()."donated.php?st=Completed&rm=2&cancel_return=".url_base()."/donated.php&no_note=1&currency_code=".$currency."&bn=PP-BuyNowBF");
 
 header("Location: https://$URL?$fields");
 
diff --git a/html/user/donations.php b/html/user/donations.php
index 8496c7c..aa65cdc 100644
--- a/html/user/donations.php
+++ b/html/user/donations.php
@@ -38,7 +38,6 @@ if (function_exists("donations_intro")) {
 } else {
     echo "<div>".tra("This project is accepting donations via
 %1.", "<a href=\"http://www.paypal.com/\">PayPal</a>")."</div>
-        <div class=\"donationtext\">
         ".tra("To donate, fill in the amount you want to donate using the field below.
         PayPal is accepting multiple currencies
         (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,
@@ -49,7 +48,7 @@ if (function_exists("donations_intro")) {
         You can use included currency converter
         to see the donation amount equivalent in different currencies
         (please note that the rates are only estimates
-         and the actual amount may differ).")."</div>
+         and the actual amount may differ).")."
     ";
 }
 
@@ -96,7 +95,7 @@ while ($row = _mysql_fetch_object($query)) {
     row2($col1, $col2);
 }
 
-$amount .= "<select name=\"from\" onchange=\"Cvalue();numberFormat();\" style=\"width: 200px;\">\n";
+$amount = "<select class=\"form-control\" name=\"from\" onchange=\"Cvalue();numberFormat();\" style=\"width: 200px;\">\n";
 if (DONATION_CURRENCY == "EUR") {
     $amount .= "<option value=\"51\">Euros</option>\n";
 }
@@ -149,7 +148,7 @@ $amount .= "</select>\n";
 $amount .= "<input type=\"hidden\" name=\"currency\" value=\"".DONATION_CURRENCY."\">\n";
 $amount .= "<input type=\"text\" name=\"inV\" id=\"inV\" value=\"10.00\" style=\"text-align: right; width: 80px\" onchange=\"Cvalue();numberFormat();\">\n";
 
-$estimated .= "<select name=\"to\" onchange=\"Cvalue();numberFormat();\" style=\"width: 200px;\">";
+$estimated = "<select class=\"form-control\" name=\"to\" onchange=\"Cvalue();numberFormat();\" style=\"width: 200px;\">";
 $estimated .= "<option value=0 selected>Select currency</option>\n";
 $estimated .= "<option value=1>Afghanistan Afghani</option>\n";
 $estimated .= "<option value=2>Algerian Dinar</option>\n";
diff --git a/html/user/download.php b/html/user/download.php
index 0fe3e9a..8f7e374 100644
--- a/html/user/download.php
+++ b/html/user/download.php
@@ -27,7 +27,7 @@ require_once("../inc/util.inc");
 // and optionally download the appropriate installer,
 //
 function concierge_url($user, $download) {
-    $master_url = parse_config(get_config(), "<master_url>");
+    global $master_url;
     $project_name = parse_config(get_config(), "<long_name>");
     $project_desc = parse_config(get_config(), "<project_desc>");
     $project_inst = parse_config(get_config(), "<project_inst>");
diff --git a/html/user/edit_forum_preferences_action.php b/html/user/edit_forum_preferences_action.php
index 56c6c8b..c138a7b 100644
--- a/html/user/edit_forum_preferences_action.php
+++ b/html/user/edit_forum_preferences_action.php
@@ -80,7 +80,7 @@ if ($avatar_type==0){
     }
     $avatar_url="";
 } elseif ($avatar_type == 1) {
-    $avatar_url = "http://www.gravatar.com/avatar/".md5($user->email_addr)."?s=100&d=identicon";
+    $avatar_url = "//www.gravatar.com/avatar/".md5($user->email_addr)."?s=100&d=identicon";
 } elseif ($avatar_type==2){
     if (($rpc && (post_str("avatar_url", true) != null)) || ($_FILES['picture']['tmp_name']!="")) {
         if ($_FILES['picture']['tmp_name']!="") {
@@ -107,14 +107,14 @@ if ($avatar_type==0){
     }
 }
 
-$images_as_links = ($_POST["forum_images_as_links"]!="")?1:0;
-$link_popup = ($_POST["forum_link_popup"]!="")?1:0;
-$hide_avatars = ($_POST["forum_hide_avatars"]!="")?1:0;
-$hide_signatures = ($_POST["forum_hide_signatures"]!="")?1:0;
-$highlight_special = ($_POST["forum_highlight_special"]!="")?1:0;
-$jump_to_unread = ($_POST["forum_jump_to_unread"]!="")?1:0;
-$ignore_sticky_posts = ($_POST["forum_ignore_sticky_posts"]!="")?1:0;
-$no_signature_by_default = ($_POST["signature_by_default"]!="")?0:1;
+$images_as_links = (isset($_POST["forum_images_as_links"]) && $_POST["forum_images_as_links"]!="")?1:0;
+$link_popup = (isset($_POST["forum_link_popup"]) && $_POST["forum_link_popup"]!="")?1:0;
+$hide_avatars = (isset($_POST["forum_hide_avatars"]) && $_POST["forum_hide_avatars"]!="")?1:0;
+$hide_signatures = (isset($_POST["forum_hide_signatures"]) && $_POST["forum_hide_signatures"]!="")?1:0;
+$highlight_special = (isset($_POST["forum_highlight_special"]) && $_POST["forum_highlight_special"]!="")?1:0;
+$jump_to_unread = (isset($_POST["forum_jump_to_unread"]) && $_POST["forum_jump_to_unread"]!="")?1:0;
+$ignore_sticky_posts = (isset($_POST["forum_ignore_sticky_posts"]) && $_POST["forum_ignore_sticky_posts"]!="")?1:0;
+$no_signature_by_default = (isset($_POST["signature_by_default"]) && $_POST["signature_by_default"]!="")?0:1;
 $signature = post_str("signature", true);
 if (strlen($signature)>250) {
     error_page(tra("Your signature was too long, please keep it less than 250 characters."));
@@ -130,13 +130,13 @@ $user->prefs->update("images_as_links=$images_as_links, link_popup=$link_popup,
 
 }   // DISABLE_FORUMS
 
-$add_user_to_filter = ($_POST["add_user_to_filter"]!="");
+$add_user_to_filter = (isset($_POST["add_user_to_filter"]) && $_POST["add_user_to_filter"]!="");
 if ($add_user_to_filter){
     $user_to_add = trim($_POST["forum_filter_user"]);
     if ($user_to_add!="" and $user_to_add==strval(intval($user_to_add))){
         $other_user = BoincUser::lookup_id($user_to_add);
         if (!$other_user) {
-            echo tra("No such user: %1", $other_user);
+            echo tra("No such user:")." ".$user_to_add;
         } else {
             add_ignored_user($user, $other_user);
         }
@@ -147,10 +147,11 @@ if ($add_user_to_filter){
 //
 $ignored_users = get_ignored_list($user);
 for ($i=0;$i<sizeof($ignored_users);$i++){
-    if ($_POST["remove".trim($ignored_users[$i])]!=""){
+    $remove = "remove".trim($ignored_users[$i]);
+    if (isset($_POST[$remove]) && $_POST[$remove]!=""){
         $other_user = BoincUser::lookup_id($ignored_users[$i]);
         if (!$other_user) {
-            echo tra("No such user: %1", $other_user);
+            echo tra("No such user:")." ".$ignored_users[$j];
         } else {
             remove_ignored_user($user, $other_user);
         }
diff --git a/html/user/edit_forum_preferences_form.php b/html/user/edit_forum_preferences_form.php
index ba8f283..fda2289 100644
--- a/html/user/edit_forum_preferences_form.php
+++ b/html/user/edit_forum_preferences_form.php
@@ -54,7 +54,7 @@ if (!DISABLE_FORUMS) {
 
 $select_0 = $select_1 = $select_2 = "";
 if (strlen($user->prefs->avatar)){
-    if (substr($user->prefs->avatar, 0, 4) == 'http') { // Gravatar
+    if (substr($user->prefs->avatar, 0, 23) == 'http://www.gravatar.com' || substr($user->prefs->avatar, 0, 18)=="//www.gravatar.com") { // Gravatar
         $select_1 = "checked=\"true\"";
     } else {
         $select_2 = "checked=\"true\"";
@@ -127,7 +127,7 @@ row2(
 row2(tra("How to sort"),
     tra("Threads:")." ".select_from_array("forum_sort", $forum_sort_styles, $user->prefs->forum_sorting)."<br>".tra("Posts:")." ".select_from_array("thread_sort", $thread_sort_styles, $user->prefs->thread_sorting)."<br>
     <input type=\"checkbox\" name=\"forum_jump_to_unread\" ".$forum_jump_to_unread."> ".tra("Jump to first new post in thread automatically")."<br>
-    <input type=\"checkbox\" name=\"forum_ignore_sticky_posts\" ".$forum_ignore_sticky_posts.">".tra("Don't move sticky posts to top")."<br>
+    <input type=\"checkbox\" name=\"forum_ignore_sticky_posts\" ".$forum_ignore_sticky_posts."> ".tra("Don't move sticky posts to top")."<br>
     "
 );
 }   // DISABLE_FORUMS
@@ -154,12 +154,12 @@ row2(tra("Filtered users").
     "<br><p class=\"text-muted\">".tra("Ignore message board posts and private messages from these users.")."</p>",
     "$forum_filtered_userlist
         <input type=\"text\" name=\"forum_filter_user\" size=12> ".tra("User ID (For instance: 123456789)")."
-        <br><input class=\"btn btn-default\" type=\"submit\" name=\"add_user_to_filter\" value=\"".tra("Add user to filter")."\">
+        <p></p><input class=\"btn btn-default\" type=\"submit\" name=\"add_user_to_filter\" value=\"".tra("Add user to filter")."\">
     "
 );
 
 row1(tra("Update"));
-row2(tra("Click here to update preferences"), "<input class=\"btn btn-primary\" type=submit value=\"".tra("Update")."\">");
+row2(tra("Click here to update preferences"), "<input class=\"btn btn-success\" type=submit value=\"".tra("Update")."\">");
 echo "</form>\n";
 row1(tra("Reset"));
 row2(tra("Or click here to reset preferences to the defaults"),
diff --git a/html/user/edit_user_info_action.php b/html/user/edit_user_info_action.php
index 570644a..e2512b9 100644
--- a/html/user/edit_user_info_action.php
+++ b/html/user/edit_user_info_action.php
@@ -43,11 +43,14 @@ if (!is_valid_country($country)) {
     error_page("bad country");
 }
 $country = BoincDb::escape_string($country);
-$postal_code = sanitize_tags(post_str("postal_code", true));
+if (POSTAL_CODE) {
+    $postal_code = BoincDb::escape_string(sanitize_tags(post_str("postal_code", true)));
+} else {
+    $postal_code = '';
+}
 
 $name = BoincDb::escape_string($name);
 $url = BoincDb::escape_string($url);
-$postal_code = BoincDb::escape_string($postal_code);
 
 $result = $user->update(
     "name='$name', url='$url', country='$country', postal_code='$postal_code'"
diff --git a/html/user/edit_user_info_form.php b/html/user/edit_user_info_form.php
index 0ebcda9..b162788 100644
--- a/html/user/edit_user_info_form.php
+++ b/html/user/edit_user_info_form.php
@@ -26,27 +26,37 @@ check_tokens($user->authenticator);
 
 page_head(tra("Edit account information"));
 
-echo "<form method=post action=edit_user_info_action.php>";
+form_start('edit_user_info_action.php', 'post');
 echo form_tokens($user->authenticator);
-start_table();
-row2(tra("Name %1 real name or nickname%2", "<br><p class=\"text-muted\">", "</p>"),
-    "<input name=user_name type=text size=30 value='$user->name'>"
-);
-row2(tra("URL %1 of your web page; optional%2", "<br><p class=\"text-muted\">", "</p>"),
-    "http://<input name=url type=text size=50 value='$user->url'>"
+
+form_input_text(
+    tra("Name %1 real name or nickname%2", "<br><p class=\"text-muted\">", "</p>"),
+    'user_name',
+    $user->name
 );
-row2_init(tra("Country"),
-    "<select name=country>"
+
+form_input_text(
+    tra("URL %1 of your web page; optional%2", "<br><p class=\"text-muted\">", "</p>"),
+    'url',
+    $user->url
 );
-print_country_select($user->country);
-echo "</select></td></tr>\n";
-row2(tra("Postal (ZIP) code %1 Optional%2", "<br><p class=\"text-muted\">", "</p>"),
-    "<input name=postal_code type=text size=20 value='$user->postal_code'>"
+
+form_select(
+    tra("Country"),
+    'country',
+    country_select_options($user->country)
 );
 
-row2("", "<input class=\"btn btn-default\" type=submit value='".tra("Update info")."'>");
-end_table();
-echo "</form>\n";
+if (POSTAL_CODE) {
+    form_input_text(
+        tra("Postal (ZIP) code %1 Optional%2", "<br><p class=\"text-muted\">", "</p>"),
+        'postal_code',
+        $user->postal_code
+    );
+}
+
+form_submit('Update info');
+form_end();
 page_tail();
 
 ?>
diff --git a/html/user/ffmail_action.php b/html/user/ffmail_action.php
index bd0c682..fec1e95 100644
--- a/html/user/ffmail_action.php
+++ b/html/user/ffmail_action.php
@@ -16,83 +16,46 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-require_once("../project/project.inc");
 require_once("../inc/email.inc");
 
-function replace($toname, $comment, $fromname, $template) {
-    $pat = array(
-        '/<toname\/>/',
-        '/<comment\/>/',
-        '/<fromname\/>/',
-    );
-    $rep = array(
-        $toname,
-        $comment,
-        $fromname,
-    );
-    return preg_replace($pat, $rep, $template);
-}
-
-$html = file_get_contents('../ops/ffmail/html');
-$text = file_get_contents('../ops/ffmail/text');
-$subject = file_get_contents('../ops/ffmail/subject');
+error_page("This feature is deprecated");
 
-$preview = get_str('preview', true);
-$uname = get_str('uname');
-$uemail = get_str('uemail');
-$comment = get_str('comment', true);
+$text = get_str('text');
+$subject = get_str('subject');
 
-$action = get_str('action');
-if ($action=='Preview') {
-    page_head(tra("Email preview"));
-    echo tra("Your email will appear as follows:")."
-        <hr>
-    ";
-    echo replace("[Friend's name]", $comment, $uname, $html);
-    $args = strstr($_SERVER['REQUEST_URI'], '?');
-    $args = str_replace('action=Preview', 'action=Send', $args);
+$user = get_logged_in_user();
 
-    echo "
-        <hr>
-        <b><a href=ffmail_action.php$args>".tra("Send email")."</a></b>
-        <p>
-        [".tra("Use your browser's back button to return to message form")."]
-    ";
-    page_tail();
-} else {
-    page_head(tra("Sending emails"));
-    $found = false;
-    for ($i=0; $i<5; $i++) {
-        $n = get_str("n$i", true);
-        $e = get_str("e$i", true);
-        if ($n && $e) {
-            $found = true;
-            $mail = make_php_mailer();
-            $mail->AddAddress($e, $n);
-            $mail->Subject = $subject;
-            if ($html) {
-                $mail->Body = replace($n, $comment, $uname, $html);
-                $mail->AltBody = replace($n, $comment, $uname, $text);
-            } else {
-                $mail->Body = replace($n, $comment, $uname, $text);
-            }
-            $mail->From = $uemail;
-            $mail->FromName = $uname;
-            if ($mail->Send()) {
-                echo "<br>".tra("email sent successfully to %1", $e)."\n";
-            } else {
-                echo "<br>".tra("failed to send email to %1: %2", $e, $mail->ErrorInfo)."\n";
-            }
+page_head(tra("Sending emails"));
+$found = false;
+for ($i=0; $i<6; $i++) {
+    $e = get_str("e$i", true);
+    if (!$e) continue;
+    $found = true;
+    if (function_exists("make_php_mailer")) {
+        require_once("../inc/phpmailer/class.phpmailer.php");
+        $mail = make_php_mailer();
+        $mail->AddAddress($e);
+        $mail->Subject = $subject;
+        $mail->Body = $text;
+        $mail->From = $user->email_addr;
+        $mail->FromName = $user->name;
+        if (!$mail->Send()) {
+            echo "<br>".tra("failed to send email to %1: %2", $e, $mail->ErrorInfo)."\n";
+            continue;
         }
-    }
-    if ($found) {
-        echo "
-            <p>".tra("Thanks for telling your friends about %1", PROJECT);
     } else {
-        echo tra("You forgot to enter your friends' names and/or email addresses; Please %1return to the form%2 and enter them.", "<a href=ffmail_form.php>", "</a>");
+        if (!mail($e, $subject, $text, "From: $user->name <$user->email_addr>")) {
+            echo "<br>".tra("failed to send email to %1", $e)."\n";
+        }
     }
-    page_tail();
+    echo "<br>".tra("email sent successfully to %1", $e)."\n";
+}
+if ($found) {
+    echo "
+        <p>".tra("Thanks for telling your friends about %1", PROJECT);
+} else {
+    echo tra("You forgot to enter email addresses; Please %1return to the form%2 and enter them.", "<a href=ffmail_form.php>", "</a>");
 }
+page_tail();
 
-exit();
 ?>
diff --git a/html/user/ffmail_form.php b/html/user/ffmail_form.php
index fc3fd3f..9b40573 100644
--- a/html/user/ffmail_form.php
+++ b/html/user/ffmail_form.php
@@ -16,51 +16,48 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// TODO: - find out if this is used (add some logging mechanism or so)
-//       - if used rewrite code to use display functions from util.inc
-//       - if used find a way to give the user a language choice (projects must translate messages themself)
+// TODO: - add a logging mechanism to see if people are using this.
+//       - use display functions from util.inc
+//       - give the user a language choice
 
 require_once("../inc/util.inc");
 
-check_get_args(array());
+// Spammers were abusing this feature,
+// and AFAIK it was never used much.
+// Screw it.
 
-$user = get_logged_in_user();
+error_page("This feature is deprecated");
 
-if (!@file_get_contents('../ops/ffmail/subject')) {
-    error_page(tra("This project hasn't created an email message - please notify its administrators"));
-}
+$user = get_logged_in_user();
 
 page_head(tra("Tell your friends about %1", PROJECT));
 
-echo "
-<table width=600><tr><td>
-".tra("Help us by telling your friends, family and coworkers about %1", PROJECT)."
-<p>
-".tra("Fill in this form with the names and email addresses of people you think might be interested in %1. We'll send them an email in your name, and you can add your own message if you like.", PROJECT)."
-<form method=get action=ffmail_action.php>
-<table cellpadding=4>
-<tr><th>".tra("Your name:")."</th><th>".tra("Your email address:")."</th></tr>
-<tr><td><b>$user->name</b></td><td><b>$user->email_addr</b></td></tr>
+$text = @file_get_contents('../ops/ffmail/text');
+if (!$text) {
+    $text = "I'm using my computer to crunch numbers for a science project called ".PROJECT.".  The more computers participate, the more science gets done.  Would you like to join me?
 
-<input type=hidden name=uname value=\"$user->name\">
-<input type=hidden name=uemail value=\"$user->email_addr\">
-
-<tr><th>".tra("Friend's name:")."</th><th>".tra("Friend's email address:")."</th></tr>
+To learn how, visit $master_url
 ";
-for ($i=0; $i<5; $i++) {
-    echo "
-        <tr><td><input size=30 name=n$i></td><td><input size=30 name=e$i></tr>
-    ";
 }
-echo "
-<tr><th colspan=2>".tra("Additional message (optional)")."</th></tr>
-<tr><td colspan=2><textarea name=comment rows=8 cols=50></textarea></td></tr>
-<tr><td align=center><input class=\"btn btn-default\" type=submit name=action value=".tra("Preview")."></td>
-    <td align=center><input class=\"btn btn-primary\" type=submit name=action value=".tra("Send")."></td>
-</tr>
-</table>
-</form>
-</td></tr></table>
-";
+$text .= "\n$user->name";
+
+$subject = @file_get_contents('../ops/ffmail/subject');
+if (!$subject) {
+    $subject = "Join me at ".PROJECT;
+}
+
+echo tra("Use this form to send email messages to people you think might be interested in %1.", PROJECT);
+echo "<p><form method=get action=ffmail_action.php>\n";
+
+start_table();
+row2("From:", "$user->name <$user->email_addr>");
+for ($i=0; $i<6; $i++) {
+    row2(tra("To:"), "<input size=30 name=e$i>");
+}
+row2(tra("Subject"), "<input size=80 name=subject value=\"$subject\">");
+row2(tra("Message"), "<textarea name=text rows=8 cols=50>$text</textarea>");
+row2("", "<input class=\"btn btn-primary\" type=submit name=action value=".tra("Send").">");
+end_table();
+echo "</form>\n";
 page_tail();
 ?>
diff --git a/html/user/forum_banishment_vote.php b/html/user/forum_banishment_vote.php
index 9a0a9e9..4bfdc0e 100644
--- a/html/user/forum_banishment_vote.php
+++ b/html/user/forum_banishment_vote.php
@@ -63,14 +63,15 @@ if (get_str('action')=="start") {
     row2("",
     tra("Select the reason category, optionally write a longer description of why the user should be banished."));
     row2(tra("Category"),
-    "<select name=\"category\">
+    "<select class=\"form-control\" name=\"category\">
     <option value=\"1\">".tra("Obscene")."</option>
     <option value=\"2\">".tra("Flame/Hate mail")."</option>
     <option value=\"3\">".tra("User Request")."</option>
     <option value=\"4\">".tra("Other")."</option>
 </select>");
 row2(tra("Reason")."<br>".tra("Mailed if nonempty"),
-    "<textarea name=\"reason\" rows=\"10\" cols=\"80\"></textarea>");
+    '<textarea name="reason" class="form-control" rows="10"></textarea>'
+);
 
 row2(
     "",
diff --git a/html/user/forum_edit.php b/html/user/forum_edit.php
index 79d3282..72a4754 100644
--- a/html/user/forum_edit.php
+++ b/html/user/forum_edit.php
@@ -83,7 +83,7 @@ if (post_str('submit',true) && (!$preview)) {
     }
 }
 
-page_head(tra("Forum"),'','','', $bbcode_js);
+page_head(tra("Edit post"),'','','', $bbcode_js);
 
 show_forum_header($logged_in_user);
 switch ($forum->parent_type) {
@@ -96,12 +96,14 @@ case 1:
     break;
 }
 
+echo "<p></p>";
+
 if ($preview == tra("Preview")) {
-    $options = null;
-	echo "<h2>".tra("Preview")."</h2>\n";
-    echo "<div class=pm_preview>";
-    echo output_transform($content, $options);
-    echo "</div>\n";
+    panel(tra('Preview'),
+        function() use($content) {
+            echo output_transform($content, null);
+        }
+    );
 }
 
 echo "<form action=\"forum_edit.php?id=".$post->id."\" method=\"POST\" name=\"post\" onsubmit=\"return checkForm(this)\">\n";
@@ -126,12 +128,12 @@ if ($can_edit_title) {
 if ($preview) {
     row2(
         tra("Message").html_info().post_warning(),
-        $bbcode_html."<textarea name=\"content\" rows=\"12\" cols=\"80\" class=\"message_field\">".htmlspecialchars($content)."</textarea>"
+        start_table_str().$bbcode_html.end_table_str()."<textarea name=\"content\" rows=\"12\" cols=\"80\">".htmlspecialchars($content)."</textarea>"
     );
 } else {
     row2(
         tra("Message").html_info().post_warning(),
-        $bbcode_html.'<textarea name="content" rows="12" cols="80" class="message_field">'.htmlspecialchars($post->content).'</textarea>'
+        start_table_str().$bbcode_html.end_table_str().'<textarea name="content" rows="12" cols="80">'.htmlspecialchars($post->content).'</textarea>'
     );
 }
 
@@ -142,7 +144,7 @@ if ($post->signature) {
 }
 row2("", "<input id=\"add_signature\" name=\"add_signature\" value=\"1\" ".$enable_signature." type=\"checkbox\">
     <label for=\"add_signature\">".tra("Add my signature to this post")."</label>");
-row2("", "<input class=\"btn btn-default\" type=\"submit\" name=\"preview\" value=\"".tra("Preview")."\"><input class=\"btn btn-primary\" type=\"submit\" name=\"submit\" value=\"OK\">"
+row2("", "<input class=\"btn btn-default\" type=\"submit\" name=\"preview\" value=\"".tra("Preview")."\"> <input class=\"btn btn-primary\" type=\"submit\" name=\"submit\" value=\"OK\">"
 );
 
 end_table();
diff --git a/html/user/forum_forum.php b/html/user/forum_forum.php
index c7f2a73..e0c9405 100644
--- a/html/user/forum_forum.php
+++ b/html/user/forum_forum.php
@@ -88,8 +88,9 @@ case 1:
 
 echo '
     <p>
-    <form action="forum_forum.php" method="get">
-    <table width="100%" cellspacing="0" cellpadding="0" class="forum_toplinks">
+    <form action="forum_forum.php" method="get" class="form-inline">
+    <input type="hidden" name="id" value="'.$forum->id.'">
+    <table width="100%" cellspacing="0" cellpadding="0">
     <tr valign="top">
     <td colspan=2>
 ';
@@ -100,17 +101,20 @@ if (user_can_create_thread($user, $forum)) {
     );
 }
 
-echo "</td>
-    <td valign=top align=\"right\">
-    <input type=\"hidden\" name=\"id\" value=\"$forum->id\">
-";
+echo '</td>
+    <td valign=top align="right">
+    <div class="form-group">
+';
 echo select_from_array("sort", $forum_sort_styles, $sort_style);
-echo "<input class=\"btn btn-default\" type=\"submit\" value=\"Sort\">
+echo '
+    <input class="btn btn-default btn-sm" type="submit" value="Sort">
+    </div>
     </td>
     </tr>
     </table>
     </form>
-";
+    <p></p>
+';
 
 show_forum($forum, $start, $sort_style, $user);
 
@@ -133,7 +137,8 @@ function show_forum($forum, $start, $sort_style, $user) {
         $start
     );
     echo $page_nav;
-    start_forum_table(array(
+    start_table('table-striped');
+    row_heading_array(array(
         "",
         tra("Threads"),
         tra("Posts"),
@@ -158,7 +163,6 @@ function show_forum($forum, $start, $sort_style, $user) {
 
     // Run through the list of threads, displaying each of them
     //
-    $n = 0; $i=0;
     foreach ($threads as $thread) {
         $owner = BoincUser::lookup_id($thread->owner);
         if (!$owner) continue;
@@ -167,13 +171,13 @@ function show_forum($forum, $start, $sort_style, $user) {
         //if ($thread->status==1){
             // This is an answered helpdesk thread
         if ($user && is_subscribed($thread, $subs)) {
-            echo '<tr class="row_hd'.$n.'">';
+            echo '<tr class="bg-info">';
         } else {
             // Just a standard thread.
-            echo '<tr class="row'.$n.'">';
+            echo '<tr>';
         }
 
-        echo "<td width=\"1%\" class=\"threadicon\"><nobr>";
+        echo "<td width=\"1%\"><nobr>";
         if ($thread->hidden) {
             show_image(IMAGE_HIDDEN, tra("This thread is hidden"), tra("hidden"));
         } else if ($unread) {
@@ -212,14 +216,13 @@ function show_forum($forum, $start, $sort_style, $user) {
         //if (strlen($title) > $titlelength) {
         //    $title = substr($title, 0, $titlelength)."...";
         //}
-        echo "<td class=\"threadline\"><a href=\"forum_thread.php?id=$thread->id\"><b>$title</b></a><br></td>";
-        $n = ($n+1)%2;
+        echo "<td><a href=\"forum_thread.php?id=$thread->id\">$title</a><br></td>";
 
         echo '
-            <td class="numbers">'.($thread->replies+1).'</td>
+            <td>'.($thread->replies+1).'</td>
             <td>'.user_links($owner, BADGE_HEIGHT_SMALL).'</td>
-            <td class="numbers">'.$thread->views.'</td>
-            <td class="lastpost">'.time_diff_str($thread->timestamp, time()).'</td>
+            <td>'.$thread->views.'</td>
+            <td>'.time_diff_str($thread->timestamp, time()).'</td>
             </tr>
         ';
         flush();
diff --git a/html/user/forum_get_data.php b/html/user/forum_get_data.php
index 36e9b72..59d9c19 100644
--- a/html/user/forum_get_data.php
+++ b/html/user/forum_get_data.php
@@ -20,6 +20,7 @@ require_once("../inc/forum_db.inc");
 require_once("../inc/util.inc");
 require_once("../inc/xml.inc");
 
+BoincDb::get(true);
 xml_header();
 
 if (DISABLE_FORUMS) {
diff --git a/html/user/forum_help_desk.php b/html/user/forum_help_desk.php
index d247ad5..abfa226 100644
--- a/html/user/forum_help_desk.php
+++ b/html/user/forum_help_desk.php
@@ -42,7 +42,8 @@ foreach ($categories as $category) {
         show_forum_title($category, null, null);
         echo "<p>";
         show_mark_as_read_button($user);
-        start_forum_table(array(
+        start_table('table-striped');
+        row_heading_array(array(
             tra("Topic"),
             tra("Questions"),
             tra("Last post")
@@ -50,25 +51,22 @@ foreach ($categories as $category) {
     }
     if (strlen($category->name)) {
         echo "
-            <tr class=\"subtitle\">
-            <td class=\"category\" colspan=\"4\">", $category->name, "</td>
+            <tr>
+            <td colspan=\"4\">", $category->name, "</td>
             </tr>
         ";
     }
 
     $forums = BoincForum::enum("parent_type=0 and category=$category->id order by orderID");
-	$i = 1;
     foreach ($forums as $forum) {
-		$j = $i % 2;
-		$i++;
         echo "
-        <tr class=\"row$j\">
+        <tr>
         <td>
             <a href=\"forum_forum.php?id=$forum->id\">$forum->title</a>
             <br><small>", $forum->description, "</small>
         </td>
-        <td class=\"numbers\">", $forum->threads, "</td>
-        <td class=\"lastpost\">", time_diff_str($forum->timestamp, time()), "</td>
+        <td>", $forum->threads, "</td>
+        <td>", time_diff_str($forum->timestamp, time()), "</td>
     </tr>
         ";
     }
diff --git a/html/user/forum_index.php b/html/user/forum_index.php
index eaae147..3ae1fd9 100644
--- a/html/user/forum_index.php
+++ b/html/user/forum_index.php
@@ -37,14 +37,13 @@ if (DISABLE_FORUMS && !is_admin($user)) {
 if ((get_int("read", true) == 1)) {
     if ($user) {
         check_tokens($user->authenticator);
-        BoincForumPrefs::lookup($user);
         $now = time();
         $user->prefs->update("mark_as_read_timestamp=$now");
         Header("Location: ".get_str("return", true));
     }
 }
 
-function show_forum_summary($forum, $i) {
+function show_forum_summary($forum) {
     switch ($forum->parent_type) {
     case 0:
         $t = $forum->title;
@@ -58,21 +57,19 @@ function show_forum_summary($forum, $i) {
         if (!strlen($d)) $d = tra("Discussion among members of %1", $team->name);
         break;
     }
-    $j = $i % 2;
     echo "
-        <tr class=\"row$j\">
+        <tr>
         <td>
             <a href=\"forum_forum.php?id=$forum->id\">$t</a>
             <br><small>$d</small>
         </td>
-        <td class=\"numbers\">$forum->threads</td>
-        <td class=\"numbers\">$forum->posts</td>
-        <td class=\"lastpost\">".time_diff_str($forum->timestamp, time())."</td>
+        <td>$forum->threads</td>
+        <td>$forum->posts</td>
+        <td>".time_diff_str($forum->timestamp, time())."</td>
     </tr>";
 }
 
-page_head(tra("%1 Message boards", PROJECT));
-
+page_head(tra("Message boards"));
 
 show_forum_header($user);
 
@@ -93,7 +90,8 @@ foreach ($categories as $category) {
         show_forum_title($category, NULL, NULL);
         echo "<p>";
         show_mark_as_read_button($user);
-        start_forum_table(array(
+        start_table('table-striped');
+        row_heading_array(array(
             tra("Topic"),
             tra("Threads"),
             tra("Posts"),
@@ -102,22 +100,21 @@ foreach ($categories as $category) {
     }
     if (strlen($category->name)) {
         echo '
-            <tr class="subtitle">
-            <td class="category" colspan="4">'.$category->name.'</td>
+            <tr>
+            <th class="info" colspan="4">'.$category->name.'</th>
             </tr>
         ';
     }
     $forums = BoincForum::enum("parent_type=0 and category=$category->id order by orderID");
-    $i = 0;
     foreach ($forums as $forum) {
-        show_forum_summary($forum, $i++);
+        show_forum_summary($forum);
     }
 }
 
 if ($user && $user->teamid) {
     $forum = BoincForum::lookup("parent_type=1 and category=$user->teamid");
     if ($forum) {
-        show_forum_summary($forum, $i++);
+        show_forum_summary($forum);
     }
 }
 end_table();
@@ -125,9 +122,8 @@ end_table();
 if ($user) {
     $subs = BoincSubscription::enum("userid=$user->id");
     if (count($subs)) {
-        echo "<p><span class=title>".tra("Subscribed threads")."</span><p>";
+        echo "<p><h3>".tra("Subscribed threads")."</h3><p>";
         show_thread_and_context_header();
-        $i = 0;
         foreach ($subs as $sub) {
             $thread = BoincThread::lookup_id($sub->threadid);
             if (!$thread) {
@@ -135,14 +131,13 @@ if ($user) {
                 continue;
             }
             if ($thread->hidden) continue;
-            show_thread_and_context($thread, $user, $i++);
+            show_thread_and_context($thread, $user);
         }
         end_table();
     }
 }
 
 page_tail();
-flush();
 BoincForumLogging::cleanup();
 
 $cvs_version_tracker[]="\$Id$";  //Generated automatically - do not edit
diff --git a/html/user/forum_moderate_post.php b/html/user/forum_moderate_post.php
index 7466a89..d161ee9 100644
--- a/html/user/forum_moderate_post.php
+++ b/html/user/forum_moderate_post.php
@@ -54,14 +54,18 @@ if (get_str('action')=="hide") {
     echo "<input type=hidden name=action value=hide>";
     row1(tra("Hide post"));
     row2(tra("Reason"),
-    "<select name=\"category\">
-    <option value=\"1\">".tra("Obscene")."</option>
-    <option value=\"2\">".tra("Flame/Hate mail")."</option>
-    <option value=\"3\">".tra("Commercial spam")."</option>
-    <option value=\"4\">".tra("Doublepost")."</option>
-    <option value=\"5\">".tra("User Request")."</option>
-    <option value=\"6\">".tra("Other")."</option>
-</select>");
+        select_from_array('category',
+            array(
+                "",
+                tra("Obscene"),
+                tra("Flame/Hate mail"),
+                tra("Commercial spam"),
+                tra("Doublepost"),
+                tra("User Request"),
+                tra("Other"),
+            )
+        )
+    );
 } elseif (get_str('action')=="move") {
     row1(tra("Move post"));
     echo "<input type=hidden name=action value=move>";
@@ -80,8 +84,9 @@ if (get_str('action')=="hide") {
     }
     row1(tra("Banish user"));
     row1(tra("Are you sure you want to banish %1?<br/>This will prevent %1 from posting for chosen time period.<br/>It should be done only if %1 has consistently exhibited trollish behavior.", $user->name));
-    row2(tra("Ban duration"), "<select name=\"duration\">
-            <option value=\"14400\">".tra("4 hours")."</option>
+    row2(tra("Ban duration"), "<select class=\"form-control\" name=\"duration\">
+            <option value=\"21600\">".tra("6 hours")."</option>
+            <option value=\"43200\">".tra("12 hours")."</option>
             <option value=\"86400\">".tra("1 day")."</option>
             <option value=\"604800\">".tra("1 week")."</option>
             <option value=\"1209600\" selected=\"selected\">".tra("2 weeks")."</option>
@@ -104,12 +109,12 @@ if (get_str('action')=="hide") {
 }
 
 if ($get_reason) {
-    row2(tra("Optional explanation %1 This is included in email to user.%2", "<br><p class=\"text-muted\">", "</p>"),
-        "<textarea name=\"reason\" rows=\"10\" cols=\"80\"></textarea>"
+    row2(tra("Optional explanation %1 This is included in email to user.%2", "<br><small>", "</small>"),
+        '<textarea name="reason" class="form-control" rows="10"></textarea>'
     );
     row2(
         "",
-        "<input class=\"btn btn-default\" type=\"submit\" name=\"submit\" value=\"".tra("OK")."\">"
+        "<input class=\"btn btn-primary\" type=\"submit\" name=\"submit\" value=\"".tra("OK")."\">"
     );
 }
 
diff --git a/html/user/forum_moderate_post_action.php b/html/user/forum_moderate_post_action.php
index a93950d..6574f28 100644
--- a/html/user/forum_moderate_post_action.php
+++ b/html/user/forum_moderate_post_action.php
@@ -111,9 +111,9 @@ if ($action=="hide"){
     }
     $result = move_post($post, $thread, $forum, $new_thread, $new_forum);
     $explanation = "Old thread: $thread->title
-".URL_BASE."forum_thread.php?id=$thread->id
+".secure_url_base()."forum_thread.php?id=$thread->id
 New thread: $new_thread->title
-".URL_BASE."forum_thread.php?id=$new_thread->id&postid=$post->id
+".secure_url_base()."forum_thread.php?id=$new_thread->id&postid=$post->id
 ";
     $explanation .= mod_comment();
     $action_name = "moved to another thread";
diff --git a/html/user/forum_moderate_thread.php b/html/user/forum_moderate_thread.php
index 63f0682..8505442 100644
--- a/html/user/forum_moderate_thread.php
+++ b/html/user/forum_moderate_thread.php
@@ -54,7 +54,7 @@ case 'lock':
         tra("Select the reason category, or write a longer description of why you're hiding or locking the thread; then press OK.")
     );
     row2(tra("Category"),
-        "<select name=\"category\">
+        "<select class=\"form-control\" name=\"category\">
         <option value=\"1\">".tra("Obscene")."</option>
         <option value=\"2\">".tra("Flame/Hate mail")."</option>
         <option value=\"3\">".tra("Commercial spam")."</option>
@@ -65,7 +65,7 @@ case 'lock':
 case 'move':
     if ($forum->parent_type != 0) error_page("Nope");
     echo "<input type=hidden name=action value=move>";
-    $selectbox = '<select name="forumid">';  
+    $selectbox = '<select class="form-control" name="forumid">';  
     $categories = BoincCategory::enum();
     foreach ($categories as $category) {
         $forums = BoincForum::enum("category=$category->id");
@@ -98,7 +98,7 @@ default:
 
 if ($get_reason) {
     row2(tra("Reason")."<br><p class=\"text-muted\">".tra("Mailed if nonempty")."</p>",
-        "<textarea rows=10 cols=80 name=\"reason\"></textarea>"
+        '<textarea rows="10" class="form-control" name="reason"></textarea>'
     );
 
     row2(
diff --git a/html/user/forum_post.php b/html/user/forum_post.php
index b43f8d1..ddeda67 100644
--- a/html/user/forum_post.php
+++ b/html/user/forum_post.php
@@ -88,12 +88,14 @@ case 1:
     break;
 }
 
+echo "<p></p>";
+
 if ($preview == tra("Preview")) {
-    $options = null;
-	echo "<h2>".tra("Preview")."</h2>\n";
-    echo "<div class=\"pm_preview\">";
-    echo output_transform($content, $options);
-    echo "</div>\n";
+    panel(tra('Preview'),
+        function() use($content) {
+            echo output_transform($content, null);
+        }
+    );
 }
 
 echo "<form action=\"forum_post.php?id=".$forum->id."\" method=\"POST\" name=\"post\" onsubmit=\"return checkForm(this)\">\n";
@@ -113,13 +115,16 @@ if ($force_title && $title){
     row2(tra("Title"), htmlspecialchars($title)."<input type=\"hidden\" name=\"title\" value=\"".htmlspecialchars($title)."\">");
 } else {
     row2(tra("Title").$submit_help,
-    "<input type=\"text\" name=\"title\" size=80 value=\"".htmlspecialchars($title)."\">"
+        '<input type="text" class="form-control" name="title" value="'.htmlspecialchars($title).'">'
     );
 }
 
-row2(tra("Message").html_info().post_warning($forum).$body_help,
-     $bbcode_html."<textarea name=\"content\" rows=\"12\" cols=\"80\" class=\"message_field\">".htmlspecialchars($content)."</textarea>"
-);
+row2_init(tra("Message").html_info().post_warning($forum).$body_help, "");
+start_table();
+echo $bbcode_html;
+end_table();
+echo '<textarea class="form-control" name="content" rows="12" cols="80">'.htmlspecialchars($content).'</textarea>';
+echo "</td></tr>";
 
 if (!$logged_in_user->prefs->no_signature_by_default) {
     $enable_signature="checked=\"true\"";
@@ -128,7 +133,7 @@ if (!$logged_in_user->prefs->no_signature_by_default) {
 }
 
 if (is_news_forum($forum)) {
-    row2("", "<input name=export type=checkbox>".tra("Show this item as a Notice in the BOINC Manager")."<br><p class=\"text-muted\">".tra("Do so only for items likely to be of interest to all volunteers.")."</p>");
+    row2("", "<input name=export type=checkbox> ".tra("Show this item as a Notice in the BOINC Manager")."<br><p class=\"text-muted\">".tra("Do so only for items likely to be of interest to all volunteers.")."</p>");
 }
 row2("", "<input name=\"add_signature\" value=\"add_it\" ".$enable_signature." type=\"checkbox\"> ".tra("Add my signature to this post"));
 row2("", "<input class=\"btn btn-default\" type=\"submit\" name=\"preview\" value=\"".tra("Preview")."\"> <input class=\"btn btn-primary\" type=\"submit\" value=\"".tra("OK")."\">");
diff --git a/html/user/forum_reply.php b/html/user/forum_reply.php
index 124417b..91e28b3 100644
--- a/html/user/forum_reply.php
+++ b/html/user/forum_reply.php
@@ -112,28 +112,27 @@ if ($preview == tra("Preview")) {
     if (is_admin($logged_in_user)) {
         $options->htmlitems = false;
     }
-    echo "<h2>".tra("Preview")."</h2>\n";
-    echo "<div class=\"pm_preview\">"
-        .output_transform($content, $options)
-        ."</div>\n"
-    ;
+    panel(tra('Preview'),
+        function() use($content, $options) {
+            echo output_transform($content, $options);
+        }
+    );
 }
 
 start_table();
 show_message_row($thread, $parent_post);
 end_table();
+
 if ($parent_post) {
     start_forum_table(array(tra("Author"), tra("Message")));
     show_post(
-        $parent_post, $thread, $forum, $logged_in_user, 0, 0, false, false
+        $parent_post, $thread, $forum, $logged_in_user, 0, false, false
     );
     end_table();
 } else {
     show_posts($thread, $forum, 0, 0, CREATE_TIME_NEW, 0, $logged_in_user);
 }
 
-end_table();
-
 page_tail();
 
 function show_message_row($thread, $parent_post) {
@@ -153,7 +152,7 @@ function show_message_row($thread, $parent_post) {
 
     $x2 .= " method=\"post\" name=\"post\" onsubmit=\"return checkForm(this)\">\n";
     $x2 .= form_tokens($logged_in_user->authenticator);
-    $x2 .= $bbcode_html."<textarea name=\"content\" rows=\"18\" cols=\"80\">";
+    $x2 .= start_table_str().$bbcode_html.end_table_str()."<textarea class=\"form-control\" name=\"content\" rows=\"18\">";
     $no_quote = get_int("no_quote", true)==1;
     if ($preview) {
         $x2 .= htmlspecialchars($content);
@@ -167,16 +166,16 @@ function show_message_row($thread, $parent_post) {
     } else {
         $enable_signature="";
     }
-    $x2 .= "</textarea><p>
-        <input class=\"btn btn-default\" type=\"submit\" name=\"preview\" value=\"".tra("Preview")."\">
-        <input class=\"btn btn-primary\" type=\"submit\" value=\"".tra("Post reply")."\">
+    $x2 .= "</textarea><p> </p>
+        <input class=\"btn btn-default btn-sm \" type=\"submit\" name=\"preview\" value=\"".tra("Preview")."\">
+        <input class=\"btn btn-default btn-sm \" type=\"submit\" value=\"".tra("Post reply")."\">
            
         <input type=\"checkbox\" name=\"add_signature\" id=\"add_signature\" value=\"add_it\" ".$enable_signature.">
         <label for=\"add_signature\">".tra("Add my signature to this reply")."</label>
 
         </form>
     ";
-    row2($x1, $x2);
+    row2($x1, $x2, false, "20%");
 }
 
 function quote_text($text) {
diff --git a/html/user/forum_report_post.php b/html/user/forum_report_post.php
index cd413a1..c61e1ce 100644
--- a/html/user/forum_report_post.php
+++ b/html/user/forum_report_post.php
@@ -48,7 +48,8 @@ if ($user->total_credit<$forum->rate_min_total_credit || $user->expavg_credit<$f
     error_page(tra("You need more average or total credit to report a post."));
 }
 
-//__-------------- Action part
+// Action part
+//
 $success_page=0;
 if (get_str("submit",true)){
     check_tokens($user->authenticator);
@@ -63,7 +64,8 @@ if (get_str("submit",true)){
 
 $no_forum_rating = parse_bool(get_config(), "no_forum_rating");
 
-//__--------------- Display part
+// Display part
+//
 if ($success_page==1) {
     page_head(tra("Report Registered"));
     echo tra("Your report has been recorded. Thanks for your input.")."<p>"
@@ -76,19 +78,28 @@ if ($success_page==1) {
         echo "<p>".tra("Before reporting this post, consider using the +/- rating system instead. If enough users rate a post negatively it will eventually be hidden.<br />You can find the rating system at the bottom of the post.")."</p>
         ";
     }
-    start_forum_table(array(tra("Author"), tra("Message"),""));
-    show_post($post, $thread, $forum, $user, 0, 0);
     echo "<form action=\"forum_report_post.php\" method=\"get\">\n";
     echo form_tokens($user->authenticator);
-    row1(tra("Report post"));
-    row2(tra("Why do you find the post offensive: %1Please include enough information so that a person that
-has not yet read the thread will quickly be able to identify the issue.%2", "<small>", "</small>"),
-        "<textarea name=\"reason\" rows=12 cols=54></textarea>"
-    );
-    row2("", "<input class=\"btn btn-default\" type=\"submit\" name=\"submit\" value=\"".tra("OK")."\">");
     echo "<input type=\"hidden\" name=\"post\" value=\"".$post->id."\">";
-    echo "</form>";
+
+    start_table('table-striped');
+    echo "<tr><th width=20% class=\"bg-primary\">".tra("Author")."</th>
+        <th class=\"bg-primary\">".tra("Message")."</th></tr>
+    ";
+    show_post($post, $thread, $forum, $user);
+    row1(tra("Report post"));
+    echo "<tr><td>
+    ";
+    echo tra("Why do you find the post offensive: %1Please include enough information so that a person that has not yet read the thread will quickly be able to identify the issue.%2", "<p><small>", "</small>");
+    echo '</td><td>
+        <textarea name="reason" rows="12" class="form-control"></textarea>
+        </td></tr>
+        <tr><td></td><td>
+    ';
+    echo "<input class=\"btn btn-primary\" type=\"submit\" name=\"submit\" value=\"".tra("OK")."\">";
+    echo "</td></tr>";
     end_table();
+    echo "</form>";
 } elseif ($success_page==-1) {
     page_head(tra("Report not registered"));
     echo "<p>".tra("Your report could not be recorded. Please wait a while and try again.")."</p>
diff --git a/html/user/forum_search.php b/html/user/forum_search.php
index 3410312..d58e847 100644
--- a/html/user/forum_search.php
+++ b/html/user/forum_search.php
@@ -43,7 +43,7 @@ row2(tra("Search for author ID:")."<br />
 row1(tra("Search options"));
 row2(tra("Search limits")."<br />
     <small>".tra("Search at most this many days back in time")."</small>",
-    "<select name=\"search_max_time\">
+    "<select class=\"form-control\" name=\"search_max_time\">
     <option value=\"1\">".tra("1 day")."</option>
     <option value=\"3\">".tra("%1 days", "3")."</option>
     <option value=\"7\">".tra("%1 days", "7")."</option>
@@ -73,7 +73,7 @@ foreach ($categories as $category) {
 }
 row2(tra("Forum")."<br />
     <small>".tra("Only display posts from this forum")."</small>",
-    '<select name="search_forum">'.$forumlist.'</select');
+    '<select class="form-control" name="search_forum">'.$forumlist.'</select');
 
 $sortlist = null;
 foreach ($thread_sort_styles as $id => $style){
@@ -84,7 +84,7 @@ foreach ($thread_sort_styles as $id => $style){
     }
 }
 row2(tra("Sort by"), 
-    '<select name="search_sort">'.$sortlist.'</select');
+    '<select class="form-control" name="search_sort">'.$sortlist.'</select');
 
 row1(" ");
 row2("","<input class=\"btn btn-default\" type=\"submit\" value=\"".tra("Start the search")."\">");
diff --git a/html/user/forum_search_action.php b/html/user/forum_search_action.php
index f210693..828118c 100644
--- a/html/user/forum_search_action.php
+++ b/html/user/forum_search_action.php
@@ -172,13 +172,13 @@ if ($search_author) {
 $threads = search_thread_titles($search_list, $forum, $user, $min_timestamp, round($limit/7), $search_sort, $show_hidden_posts);
 
 // Display the threads while we search for posts
+//
 if (count($threads)){
-    echo "<span class=title>" . tra("Thread titles matching your query:") . "</span>";
+    echo "<h3>" . tra("Thread titles matching your query:") . "</h3>";
     show_thread_and_context_header();
-    $i = 0;
     foreach ($threads as $thread){
         if ($thread->hidden) continue;
-        show_thread_and_context($thread, $logged_in_user, $i++);
+        show_thread_and_context($thread, $logged_in_user);
     }
     end_table();
     echo "<br /><br />";
@@ -193,7 +193,7 @@ $posts = search_post_content(
 );
 
 if (count($posts)){
-    echo "<span class=title>" . tra("Messages matching your query:") . "</span>";
+    echo "<h3>" . tra("Messages matching your query:") . "</h3>";
     start_table();
     $n = 1;
     $options = get_output_options($logged_in_user);
@@ -219,7 +219,7 @@ if (!count($threads) && !count($posts)){
     echo "<p>".tra("Sorry, couldn't find anything matching your search query. You can try to broaden your search by using less words (or less specific words).")."</p>
     <p>"
     .tra("You can also %1try the same search on Google.%2",
-         "<a href=\"http://www.google.com/search?domains=".URL_BASE."&sitesearch=".URL_BASE."forum_thread.php&q=".htmlentities($search_keywords)."\">",
+         "<a href=\"https://www.google.com/search?domains=".url_base()."&sitesearch=".url_base()."forum_thread.php&q=".htmlentities($search_keywords)."\">",
          "</a>")
     ."</p>";
 }
diff --git a/html/user/forum_thread.php b/html/user/forum_thread.php
index daa04d2..473df45 100644
--- a/html/user/forum_thread.php
+++ b/html/user/forum_thread.php
@@ -99,7 +99,7 @@ if ($temp_sort_style) {
     }
 }
 
-page_head($title, 'jumpToUnread();');
+page_head($title, 'onload="jumpToUnread();"');
 
 $is_subscribed = $logged_in_user && BoincSubscription::lookup($logged_in_user->id, $thread->id);
 
@@ -143,135 +143,142 @@ if ($forum->parent_type == 0) {
 }
 }
 
-echo "
+echo '
     <p>
-    <form action=\"forum_thread.php\">
-    <table width=\"100%\" cellspacing=0 cellpadding=0>
-    <tr class=\"forum_toplinks\">
+    <form class="form-inline" action="forum_thread.php">
+    <table width="100%" cellspacing=0 cellpadding=0>
+    <tr>
     <td>
-";
+';
 
 $reply_url = "";
-if (can_reply($thread, $forum, $logged_in_user)) {
-    $reply_url = "forum_reply.php?thread=".$thread->id."#input";
-    show_button(
-        $reply_url,
-        tra("Post to thread"),
-        tra("Add a new message to this thread")
-    );
-}
-
-if ($is_subscribed) {
-    $type = NOTIFY_SUBSCRIBED_POST;
-    BoincNotify::delete_aux(
-        "userid=$logged_in_user->id and type=$type and opaque=$thread->id"
-    );
-    $url = "forum_subscribe.php?action=unsubscribe&thread=".$thread->id."$tokens";
-    show_button(
-        $url,
-        tra("Unsubscribe"),
-        tra("You are subscribed to this thread.  Click here to unsubscribe.")
-    );
+if (!$logged_in_user) {
+    echo "To post messages, you must <a href=login_form.php>log in</a>.";
 } else {
-    $url = "forum_subscribe.php?action=subscribe&thread=".$thread->id."$tokens";
-    show_button(
-        $url,
-        tra("Subscribe"),
-        tra("Click to get email when there are new posts in this thread")
-    );
-}
-
-// If the logged in user is moderator enable some extra features
-//
-if (is_moderator($logged_in_user, $forum)) {
-    if ($thread->hidden){
+    if (can_reply($thread, $forum, $logged_in_user)) {
+        $reply_url = "forum_reply.php?thread=".$thread->id."#input";
         show_button(
-            "forum_moderate_thread_action.php?action=unhide&thread=".$thread->id."$tokens",
-            tra("Unhide"),
-            tra("Unhide this thread")
-        );
-    } else {
-        show_button(
-            "forum_moderate_thread.php?action=hide&thread=".$thread->id,
-            tra("Hide"),
-            tra("Hide this thread")
+            $reply_url,
+            tra("Post to thread"),
+            tra("Add a new message to this thread")
         );
     }
-    if ($thread->sticky){
-        show_button(
-            "forum_moderate_thread_action.php?action=desticky&thread=".$thread->id."$tokens",
-            tra("Make unsticky"),
-            tra("Make this thread not sticky")
-        );
-    } else {
-        show_button(
-            "forum_moderate_thread_action.php?action=sticky&thread=".$thread->id."$tokens",
-            tra("Make sticky"),
-            tra("Make this thread always appear at top of forum")
+
+    if ($is_subscribed) {
+        $type = NOTIFY_SUBSCRIBED_POST;
+        BoincNotify::delete_aux(
+            "userid=$logged_in_user->id and type=$type and opaque=$thread->id"
         );
-    }
-    if ($thread->locked) {
+        $url = "forum_subscribe.php?action=unsubscribe&thread=".$thread->id."$tokens";
         show_button(
-            "forum_moderate_thread_action.php?action=unlock&thread=".$thread->id."$tokens",
-            tra("Unlock"),
-            tra("Allow new posts in this thread")
+            $url,
+            tra("Unsubscribe"),
+            tra("You are subscribed to this thread.  Click here to unsubscribe.")
         );
     } else {
+        $url = "forum_subscribe.php?action=subscribe&thread=".$thread->id."$tokens";
         show_button(
-            "forum_moderate_thread.php?action=lock&thread=".$thread->id."$tokens",
-            tra("Lock"),
-            tra("Don't allow new posts in this thread")
+            $url,
+            tra("Subscribe"),
+            tra("Click to get email when there are new posts in this thread")
         );
     }
-    if ($forum->parent_type == 0) {
+
+    // If logged in user is moderator, enable some extra features
+    //
+    if (is_moderator($logged_in_user, $forum)) {
+        if ($thread->hidden){
+            show_button(
+                "forum_moderate_thread_action.php?action=unhide&thread=".$thread->id."$tokens",
+                tra("Unhide"),
+                tra("Unhide this thread")
+            );
+        } else {
+            show_button(
+                "forum_moderate_thread.php?action=hide&thread=".$thread->id,
+                tra("Hide"),
+                tra("Hide this thread")
+            );
+        }
+        if ($thread->sticky){
+            show_button(
+                "forum_moderate_thread_action.php?action=desticky&thread=".$thread->id."$tokens",
+                tra("Make unsticky"),
+                tra("Make this thread not sticky")
+            );
+        } else {
+            show_button(
+                "forum_moderate_thread_action.php?action=sticky&thread=".$thread->id."$tokens",
+                tra("Make sticky"),
+                tra("Make this thread always appear at top of forum")
+            );
+        }
+        if ($thread->locked) {
+            show_button(
+                "forum_moderate_thread_action.php?action=unlock&thread=".$thread->id."$tokens",
+                tra("Unlock"),
+                tra("Allow new posts in this thread")
+            );
+        } else {
+            show_button(
+                "forum_moderate_thread.php?action=lock&thread=".$thread->id."$tokens",
+                tra("Lock"),
+                tra("Don't allow new posts in this thread")
+            );
+        }
+        if ($forum->parent_type == 0) {
+            show_button(
+                "forum_moderate_thread.php?action=move&thread=".$thread->id."$tokens",
+                tra("Move"),
+                tra("Move this thread to a different forum")
+            );
+        }
         show_button(
-            "forum_moderate_thread.php?action=move&thread=".$thread->id."$tokens",
-            tra("Move"),
-            tra("Move this thread to a different forum")
+            "forum_moderate_thread.php?action=title&thread=".$thread->id."$tokens",
+            tra("Edit title"),
+            tra("Edit thread title")
         );
     }
-    show_button(
-        "forum_moderate_thread.php?action=title&thread=".$thread->id."$tokens",
-        tra("Edit title"),
-        tra("Edit thread title")
-    );
-}
 
-if (is_admin($logged_in_user)) {
-    show_button(
-        "forum_moderate_thread.php?action=delete&thread=".$thread->id."$tokens",
-        tra("Delete"),
-        tra("Delete thread permanently")
-    );
-}
-
-// let admins decide whether a news item should be exported as notice
-//
-if (is_news_forum($forum) && $logged_in_user && ($logged_in_user->id == $thread->owner)) {
-    if ($thread->status) {
-        show_button(
-            "forum_thread_status.php?action=clear&id=$thread->id",
-            tra("Export as Notice"),
-            "Show this message to all volunteers in the desktop GUI.  Use this only for messages of interest or importance to all volunteers."
-        );
-    } else {
+    if (is_admin($logged_in_user)) {
         show_button(
-            "forum_thread_status.php?action=set&id=$thread->id",
-            tra("Don't export"),
-            tra("Don't export this news item as a Notice")
+            "forum_moderate_thread.php?action=delete&thread=".$thread->id."$tokens",
+            tra("Delete"),
+            tra("Delete thread permanently")
         );
     }
+
+    // let admins decide whether a news item should be exported as notice
+    //
+    if (is_news_forum($forum) && $logged_in_user && ($logged_in_user->id == $thread->owner)) {
+        if ($thread->status) {
+            show_button(
+                "forum_thread_status.php?action=clear&id=$thread->id",
+                tra("Export as Notice"),
+                "Show this message to all volunteers in the desktop GUI.  Use this only for messages of interest or importance to all volunteers."
+            );
+        } else {
+            show_button(
+                "forum_thread_status.php?action=set&id=$thread->id",
+                tra("Don't export"),
+                tra("Don't export this news item as a Notice")
+            );
+        }
+    }
 }
 
 // Display a box that allows the user to select sorting of the posts
 //
-echo "</td><td align=\"right\">
-    <input type=\"hidden\" name=\"id\" value=\"", $thread->id, "\">" .
-    tra("Sort");
+echo '</td><td align="right">
+    <input type="hidden" name="id" value="', $thread->id, '">
+    <div class="form-group">
+';
 echo select_from_array("sort", $thread_sort_styles, $sort_style);
-echo "<input class=\"btn btn-default\" type=\"submit\" value=\"".tra('Sort')."\">
-    </td></tr></table></form>
-";
+echo ' <input class="btn btn-default btn-sm" type="submit" value="'.tra('Sort').'">
+    </div>
+    </td></tr></table>
+    </form><p>
+';
 
 show_posts(
     $thread, $forum, $start, $postid, $sort_style, $filter, $logged_in_user
diff --git a/html/user/forum_user_posts.php b/html/user/forum_user_posts.php
index a1f7f9b..740e50f 100644
--- a/html/user/forum_user_posts.php
+++ b/html/user/forum_user_posts.php
@@ -76,7 +76,7 @@ page_head(tra("Posts by %1", $user->name));
 
 $posts = BoincPost::enum("user=$userid order by id desc limit 10000");
 $n = 0;
-start_table();
+start_table('table-striped');
 $options = get_output_options($logged_in_user);
 
 $show_next = false;
diff --git a/html/user/get_output.php b/html/user/get_output.php
index 0ce12d0..9aaf93e 100644
--- a/html/user/get_output.php
+++ b/html/user/get_output.php
@@ -24,23 +24,37 @@ require_once("../inc/util.inc");
 require_once("../inc/result.inc");
 require_once("../inc/submit_util.inc");
 
+function return_error($str) {
+    die("ERROR: $str");
+}
+
 // get a single output file
 //
 function get_output_file($instance_name, $file_num, $auth_str) {
     $result = BoincResult::lookup_name(BoincDb::escape_string($instance_name));
-    if (!$result) die("no job instance $instance_name");
+    if (!$result) {
+        return_error("no job instance $instance_name");
+    }
     $workunit = BoincWorkunit::lookup_id($result->workunitid);
-    if (!$workunit) die("no job $result->workunitid");
+    if (!$workunit) {
+        return_error("no job $result->workunitid");
+    }
     $batch = BoincBatch::lookup_id($workunit->batch);
-    if (!$batch) die("no batch $workunit->batch");
+    if (!$batch) {
+        return_error("no batch $workunit->batch");
+    }
     $user = BoincUser::lookup_id($batch->user_id);
-    if (!$user) die("no user $batch->user_id");
+    if (!$user) {
+        return_error("no user $batch->user_id");
+    }
     $x = md5($user->authenticator.$result->name);
-    if ($x != $auth_str) die("bad auth str");
+    if ($x != $auth_str) {
+        return_error("bad authenticator");
+    }
 
     $names = get_outfile_names($result);
     if ($file_num >= count($names)) {
-        die("bad file num: $file_num > ".count($names));
+        return_error("bad file num: $file_num > ".count($names));
     }
     $name = $names[$file_num];
 
@@ -48,7 +62,9 @@ function get_output_file($instance_name, $file_num, $auth_str) {
     $upload_dir = parse_config(get_config(), "<upload_dir>");
 
     $path = dir_hier_path($name, $upload_dir, $fanout);
-    if (!is_file($path)) die("no such file $path");
+    if (!is_file($path)) {
+        return_error("no such file $path");
+    }
     do_download($path);    
 }
 
@@ -59,20 +75,28 @@ function get_batch_output_files($auth_str) {
     $batch_id = get_int('batch_id', true);
     if ($batch_id) {
         $batch = BoincBatch::lookup_id($batch_id);
-        if (!$batch) die("no batch $batch_id");
+        if (!$batch) {
+            return_error("no batch $batch_id");
+        }
     } else {
         $batch_name = get_int('batch_name');
         $batch_name = BoincDb::escape_string($batch_name);
         $batch = BoincBatch::lookup("name='$batch_name'");
-        if (!$batch) die("no batch $batch_name");
+        if (!$batch) {
+            return_error("no batch $batch_name");
+        }
     }
 
     $user = BoincUser::lookup_id($batch->user_id);
-    if (!$user) die("no user $batch->user_id");
+    if (!$user) {
+        return_error("no user $batch->user_id");
+    }
     $x = md5($user->authenticator.$batch->id);
-    if ($x != $auth_str) die("bad auth str");
+    if ($x != $auth_str) {
+        return_error("bad auth str");
+    }
 
-    $zip_basename = tempnam("/tmp", "boinc_batch_");
+    $zip_basename = tempnam("../cache", "boinc_batch_");
     $zip_filename = $zip_basename.".zip";
     $fanout = parse_config(get_config(), "<uldl_dir_fanout>");
     $upload_dir = parse_config(get_config(), "<upload_dir>");
@@ -87,6 +111,7 @@ function get_batch_output_files($auth_str) {
             if (is_file($path)) {
                 system(" nice -9 zip -jq $zip_basename $path");
             }
+            // output file may be optional; don't complain if not there
         }
     }
     do_download($zip_filename);
@@ -98,22 +123,32 @@ function get_batch_output_files($auth_str) {
 function get_wu_output_file($wu_name, $file_num, $auth_str) {
     $wu_name = BoincDb::escape_string($wu_name);
     $wu = BoincWorkunit::lookup("name='$wu_name'");
-    if (!$wu) die("no workunit $wu_name");
+    if (!$wu) {
+        return_error("no workunit $wu_name");
+    }
     $batch = BoincBatch::lookup_id($wu->batch);
-    if (!$batch) die("no batch $wu->batch");
+    if (!$batch) {
+        return_error("no batch $wu->batch");
+    }
     $user = BoincUser::lookup_id($batch->user_id);
-    if (!$user) die("no user $batch->user_id");
-    if ($user->authenticator != $auth_str) die("bad auth str: x=$x, auth_str=$auth_str");
+    if (!$user) {
+        return_error("no user $batch->user_id");
+    }
+    if ($user->authenticator != $auth_str) {
+        return_error("bad authenticator");
+    }
     $fanout = parse_config(get_config(), "<uldl_dir_fanout>");
     $upload_dir = parse_config(get_config(), "<upload_dir>");
-    if (!$wu->canonical_resultid) die("no canonical result for wu $wu->name");
+    if (!$wu->canonical_resultid) {
+        return_error("no canonical result for wu $wu->name");
+    }
     $result = BoincResult::lookup_id($wu->canonical_resultid);
     $names = get_outfile_names($result);
     $path = dir_hier_path($names[$file_num], $upload_dir, $fanout);
     if (file_exists($path)) {
         do_download($path);
     } else {
-        echo "no such file: $path";
+        return_error("no such file: $path");
     }
 }
 
@@ -121,21 +156,31 @@ function get_wu_output_file($wu_name, $file_num, $auth_str) {
 //
 function get_wu_output_files($wu_id, $auth_str) {
     $wu = BoincWorkunit::lookup_id($wu_id);
-    if (!$wu) die("no workunit $wu_id");
+    if (!$wu) {
+        return_error("no workunit $wu_id");
+    }
     $batch = BoincBatch::lookup_id($wu->batch);
-    if (!$batch) die("no batch $wu->batch");
+    if (!$batch) {
+        return_error("no batch $wu->batch");
+    }
     $user = BoincUser::lookup_id($batch->user_id);
-    if (!$user) die("no user $batch->user_id");
+    if (!$user) {
+        return_error("no user $batch->user_id");
+    }
     $x = md5($user->authenticator.$wu_id);
     echo "user authenticator= $user->authenticator, wu_id=$wu_id<br/>";
-    if ($x != $auth_str) die("bad auth str: x=$x, auth_str=$auth_str");
+    if ($x != $auth_str) {
+        return_error("bad authenticator");
+    }
 
     $zip_basename = tempnam("/tmp", "boinc_wu_".$wu->name."_");
     $zip_filename = $zip_basename.".zip";
     $fanout = parse_config(get_config(), "<uldl_dir_fanout>");
     $upload_dir = parse_config(get_config(), "<upload_dir>");
 
-    if (!$wu->canonical_resultid) die("no canonical result for wu $wu->name");
+    if (!$wu->canonical_resultid) {
+        return_error("no canonical result for wu $wu->name");
+    }
     $result = BoincResult::lookup_id($wu->canonical_resultid);
     $names = get_outfile_names($result);
     foreach ($names as $name) {
@@ -143,6 +188,8 @@ function get_wu_output_files($wu_id, $auth_str) {
         if (is_file($path)) {
             system("nice -9 zip -jq $zip_basename $path");
         }
+        // output file may be optional; don't complain if not there
+        //
     }
     do_download($zip_filename);
     unlink($zip_filename);
diff --git a/html/user/get_passwd.php b/html/user/get_passwd.php
index 651ced6..dee7a94 100644
--- a/html/user/get_passwd.php
+++ b/html/user/get_passwd.php
@@ -28,14 +28,14 @@ function show_email_form() {
         .tra("Enter the email address below, and click OK. You will be sent email instructions for resetting your password.");
     start_table();
     echo "<form method=post action=mail_passwd.php>\n";
-    row2(tra("Email address"),"<input type=\"text\" size=40 name=email_addr>");
-    row2("", "<input class=\"btn btn-default\" type=submit value=\"".tra("OK")."\">");
+    row2(tra("Email address"), '<input class="form-control" type="text" size="40" name="email_addr">');
+    row2("", '<input class="btn btn-success" type="submit" value="'.tra("OK").'">');
     echo "</form>";
     end_table();
 }
 
 function show_auth_form() {
-    $master_url = parse_config(get_config(), "<master_url>");
+    global $master_url;
     $x = strstr($master_url, "//");
     $x = substr($x, 2);
     $x = rtrim($x, "/");
@@ -68,11 +68,14 @@ function show_auth_form() {
     start_table();
 
     echo "<form action=login_action.php method=post>\n";
-    row2(tra("Log in with authenticator"), "<input type=\"text\" name=authenticator size=40>");
+    row2(
+        tra("Log in with authenticator"),
+        '<input class="form-control" type="text" name="authenticator" size="40">'
+    );
     row2(tra("Stay logged in on this computer"),
-        "<input type=checkbox name=send_cookie checked>"
+        "<input type=checkbox name=\"stay_logged_in\" checked>"
     );
-    row2("", "<input class=\"btn btn-default\" type=submit value=\"".tra("OK")."\">");
+    row2("", "<input class=\"btn btn-success\" type=submit value=\"".tra("OK")."\">");
     echo "</form>";
 
     end_table();
diff --git a/html/user/get_project_config.php b/html/user/get_project_config.php
index 0dbfc3c..effa86e 100644
--- a/html/user/get_project_config.php
+++ b/html/user/get_project_config.php
@@ -19,6 +19,7 @@
 require_once("../inc/util.inc");
 require_once("../inc/xml.inc");
 
+BoincDb::get(true);
 xml_header();
 
 // This all needs to work even when DB is down.
@@ -54,7 +55,6 @@ if (!$min_passwd_length) {
     $min_passwd_length = 6;
 }
 $disable_account_creation = parse_bool($config, "disable_account_creation");
-$master_url = parse_config($config, "<master_url>");
 
 echo "<project_config>
     <name>$long_name</name>
diff --git a/html/user/gpu_list.php b/html/user/gpu_list.php
index 6e2013c..141c69d 100644
--- a/html/user/gpu_list.php
+++ b/html/user/gpu_list.php
@@ -196,9 +196,12 @@ function show_vendor($vendor, $x) {
 }
 
 $d = get_cached_data(86400);
+$data = FALSE;
 if ($d) {
     $data = unserialize($d);
-} else {
+}
+
+if (!$data) {
     $data = get_gpu_lists();
     set_cached_data(86400, serialize($data));
 }
diff --git a/html/user/host_app_versions.php b/html/user/host_app_versions.php
index ad6e8fa..1a4ab62 100644
--- a/html/user/host_app_versions.php
+++ b/html/user/host_app_versions.php
@@ -18,8 +18,6 @@
 
 require_once("../inc/util.inc");
 
-check_get_args(array("hostid"));
-
 function rsc_name($t) {
     switch ($t) {
     case 2: return tra("CPU");
@@ -30,19 +28,36 @@ function rsc_name($t) {
     return tra("Unknown");
 }
 
-function av_desc($gavid) {
+function av_desc($gavid, $show_dep) {
     if ($gavid >= 1000000) {
+        // anonymous platform
+        //
         $appid = (int)($gavid/1000000);
         $app = BoincApp::lookup_id($appid);
-        if (!$app) return tra("Anonymous platform, missing app");
+        if (!$app) {
+            return null;
+        }
+        if (!$show_dep && $app->deprecated) {
+            return null;
+        }
         $rsc_type = $gavid % 1000000;
         $r = rsc_name($rsc_type);
         return "$app->user_friendly_name (".tra("anonymous platform").", $r)";
     } else {
         $av = BoincAppVersion::lookup_id($gavid);
-        if (!$av) return tra("Missing app version");
+        if (!$av) {
+            return null;
+        }
+        if (!$show_dep && $av->deprecated) {
+            return null;
+        }
         $app = BoincApp::lookup_id($av->appid);
-        if (!$app) return tra("Missing app");
+        if (!$app) {
+            return null;
+        }
+        if (!$show_dep && $app->deprecated) {
+            return null;
+        }
         $platform = BoincPlatform::lookup_id($av->platformid);
         if (!$platform) return tra("Missing platform");
         $pc = (strlen($av->plan_class))?"($av->plan_class)":"";
@@ -51,8 +66,10 @@ function av_desc($gavid) {
     }
 }
 
-function show_hav($hav) {
-    row1(av_desc($hav->app_version_id));
+function show_hav($hav, $show_dep) {
+    $desc = av_desc($hav->app_version_id, $show_dep);
+    if (!$desc) return;
+    row1($desc);
     row2(tra("Number of tasks completed"), $hav->et_n);
     row2(tra("Max tasks per day"), $hav->max_jobs_per_day);
     row2(tra("Number of tasks today"), $hav->n_jobs_today);
@@ -66,6 +83,7 @@ function show_hav($hav) {
 }
 
 $hostid = get_int('hostid');
+$show_dep = get_int('show_dep', true);
 
 $havs = BoincHostAppVersion::enum("host_id=$hostid");
 
@@ -73,9 +91,14 @@ page_head(tra("Application details for host %1", $hostid));
 start_table();
 foreach ($havs as $hav) {
     //if (!$hav->pfc_n) continue;
-    show_hav($hav);
+    show_hav($hav, $show_dep);
 }
 end_table();
+if ($show_dep) {
+    show_button("host_app_versions.php?hostid=$hostid", "Show active versions");
+} else {
+    show_button("host_app_versions.php?hostid=$hostid&show_dep=1", "Show all versions");
+}
 
 page_tail();
 ?>
diff --git a/html/user/img/water.jpg b/html/user/img/water.jpg
new file mode 100644
index 0000000..d30d4aa
Binary files /dev/null and b/html/user/img/water.jpg differ
diff --git a/html/user/info.php b/html/user/info.php
index c0cc330..1a33543 100644
--- a/html/user/info.php
+++ b/html/user/info.php
@@ -21,7 +21,7 @@ require_once('../inc/translation.inc');
 
 check_get_args(array());
 
-page_head(tra("Read our rules and policies"));
+page_head(tra("Rules and policies"));
 
 $show_default = true;
 
diff --git a/html/user/job_file.php b/html/user/job_file.php
index c0302eb..e8c711e 100644
--- a/html/user/job_file.php
+++ b/html/user/job_file.php
@@ -1,7 +1,7 @@
 <?php
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2013 University of California
+// Copyright (C) 2016 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -78,29 +78,46 @@ require_once("../inc/dir_hier.inc");
 require_once("../inc/xml.inc");
 require_once("../inc/submit_util.inc");
 
+function upload_error_description($errno) {
+    switch($errno) {
+        case UPLOAD_ERR_INI_SIZE:
+            return "The uploaded file exceeds upload_max_filesize of php.ini."; break;
+        case UPLOAD_ERR_FORM_SIZE:
+            return "The uploaded file exceeds the MAX_FILE_SIZE specified in the HTML form."; break;
+        case UPLOAD_ERR_PARTIAL:
+            return "The uploaded file was only partially uploaded."; break;
+        case UPLOAD_ERR_NO_FILE:
+            return "No file was uploaded."; break;
+        case UPLOAD_ERR_NO_TMP_DIR:
+            return "Missing a temporary folder."; break;
+        case UPLOAD_ERR_CANT_WRITE:
+            return "Failed to write file to disk."; break;
+        case UPLOAD_ERR_EXTENSION:
+            return "A PHP extension stopped the file upload."; break;
+    }
+}
+
 function query_files($r) {
+    xml_start_tag("query_files");
     list($user, $user_submit) = authenticate_user($r, null);
     $absent_files = array();
     $now = time();
     $delete_time = (int)$r->delete_time;
     $batch_id = (int)$r->batch_id;
     $fanout = parse_config(get_config(), "<uldl_dir_fanout>");
-    $i = 0;
-    $md5s= array();
-    foreach($r->md5 as $f) {
-        $md5 = (string)$f;
-        $md5s[] = $md5;
+    $phys_names= array();
+    foreach($r->phys_name as $f) {
+        $phys_names[] = (string)$f;
     }
-    $md5s = array_unique($md5s);
-    foreach($md5s as $md5) {
-        $fname = job_file_name($md5);
-        $path = dir_hier_path($fname, "../../download", $fanout);
+    $i = 0;
+    foreach($phys_names as $fname) {
+        $path = dir_hier_path($fname, project_dir() . "/download", $fanout);
 
         // if the job_file record is there,
         // update the delete time first to avoid race condition
         // with job file deleter
         //
-        $job_file = BoincJobFile::lookup_md5($md5);
+        $job_file = BoincJobFile::lookup_name($fname);
         if ($job_file && $job_file->delete_time < $delete_time) {
             $retval = $job_file->update("delete_time=$delete_time");
             if ($retval) {
@@ -114,25 +131,29 @@ function query_files($r) {
                 $jf_id = $job_file->id;
             } else {
                 $jf_id = BoincJobFile::insert(
-                    "(md5, create_time, delete_time) values ('$md5', $now, $delete_time)"
+                    "(name, create_time, delete_time) values ('$fname', $now, $delete_time)"
                 );
+                if (!$jf_id) {
+                    xml_error(-1, "query_files(): BoincJobFile::insert($fname) failed: ".BoincDb::error());
+                }
             }
             // create batch association if needed
             //
             if ($batch_id) {
-                $ret = BoincBatchFileAssoc::insert(
+                BoincBatchFileAssoc::insert(
                     "(batch_id, job_file_id) values ($batch_id, $jf_id)"
                 );
+                // this return error if assoc already exists; ignore
+            }
+        } else {
+            if ($job_file) {
+                $ret = $job_file->delete();
                 if (!$ret) {
                     xml_error(-1,
-                        "BoincBatchFileAssoc::insert() failed: ".BoincDb::error()
+                        "BoincJobFile::delete() failed: ".BoincDb::error()
                     );
                 }
             }
-        } else {
-            if ($job_file) {
-                $job_file->delete();
-            }
             $absent_files[] = $i;
         }
         $i++;
@@ -141,32 +162,82 @@ function query_files($r) {
     foreach ($absent_files as $i) {
         echo "<file>$i</file>\n";
     }
-    echo "</absent_files>\n";
+    echo "</absent_files>
+        </query_files>
+    ";
+}
+
+function delete_uploaded_files() {
+    foreach ($_FILES as $f) {
+        unlink($f['tmp_name']);
+    }
 }
 
 function upload_files($r) {
+    xml_start_tag("upload_files");
     list($user, $user_submit) = authenticate_user($r, null);
     $fanout = parse_config(get_config(), "<uldl_dir_fanout>");
     $delete_time = (int)$r->delete_time;
     $batch_id = (int)$r->batch_id;
     //print_r($_FILES);
-    $i = 0;
-    foreach ($r->md5 as $f) {
-        $md5 = (string)$f;
-        $name = "file_$i";
-        $tmp_name = $_FILES[$name]['tmp_name'];
+
+    if (count($_FILES) != count($r->phys_name)) {
+        delete_uploaded_files();
+        xml_error(-1,
+            sprintf("# of uploaded files (%d) doesn't agree with request (%d)",
+                count($_FILES), count($r->phys_name)
+            )
+        );
+    }
+
+    $phys_names = array();
+    foreach ($r->phys_name as $cs) {
+        $phys_names[] = (string)$cs;
+    }
+
+    foreach ($_FILES as $f) {
+        $name = $f['name'];
+        $tmp_name = $f['tmp_name'];
+
+        if ($f['error'] != UPLOAD_ERR_OK) {
+            delete_uploaded_files();
+            $reason = upload_error_description($f['error']);
+            xml_error(-1, "$name upload failed because: $reason");
+        }
+
         if (!is_uploaded_file($tmp_name)) {
-            xml_error(-1, "$tmp_name is not an uploaded file");
+            delete_uploaded_files();
+            xml_error(-1, "$name was not uploaded correctly");
         }
-        $fname = job_file_name($md5);
-        $path = dir_hier_path($fname, "../../download", $fanout);
-        rename($tmp_name, $path);
-        $now = time();
+    }
+
+    $i = 0;
+    $now = time();
+    foreach ($_FILES as $f) {
+        $tmp_name = $f['tmp_name'];
+        $fname = $phys_names[$i];
+        $path = dir_hier_path($fname, project_dir() . "/download", $fanout);
+
+        switch(check_download_file($tmp_name, $path)) {
+        case 0:
+            break;
+        case 1:
+            if (!move_uploaded_file($tmp_name, $path)) {
+                xml_error(-1, "could not move $tmp_name to $path");
+            }
+            touch("$path.md5");
+            break;
+        case -1:
+            xml_error(-1, "file immutability violation for $fname");
+        case -2:
+            xml_error(-1, "file operation failed; check permissions in download/*");
+        }
+
         $jf_id = BoincJobFile::insert(
-            "(md5, create_time, delete_time) values ('$md5', $now, $delete_time)"
+            "(name, create_time, delete_time) values ('$fname', $now, $delete_time)"
         );
         if (!$jf_id) {
-            xml_error(-1, "BoincJobFile::insert($md5) failed: ".BoincDb::error());
+            xml_error(-1, "BoincJobFile::insert($fname) failed: ".BoincDb::error());
         }
         if ($batch_id) {
             BoincBatchFileAssoc::insert(
@@ -175,7 +246,10 @@ function upload_files($r) {
         }
         $i++;
     }
-    echo "<success/>\n";
+
+    echo "<success/>
+        </upload_files>
+    ";
 }
 
 if (0) {
@@ -189,10 +263,23 @@ if (0) {
     exit;
 }
 
+$request_log = parse_config(get_config(), "<remote_submission_log>");
+if ($request_log) {
+    $request_log_dir = parse_config(get_config(), "<log_dir>");
+    if ($request_log_dir) {
+        $request_log = $request_log_dir . "/" . $request_log;
+    }
+    if ($file = fopen($request_log, "a+")) {
+        fwrite($file, "\n<job_file date=\"" . date(DATE_ATOM) . "\">\n" . $_POST['request'] . "\n</job_file>\n");
+        fclose($file);
+    }
+}
+
 xml_header();
-$r = simplexml_load_string($_POST['request']);
+$req = $_POST['request'];
+$r = simplexml_load_string($req);
 if (!$r) {
-    xml_error(-1, "can't parse request message");
+    xml_error(-1, "can't parse request message: $req", __FILE__, __LINE__);
 }
 
 switch($r->getName()) {
diff --git a/html/user/join.php b/html/user/join.php
new file mode 100644
index 0000000..44de168
--- /dev/null
+++ b/html/user/join.php
@@ -0,0 +1,98 @@
+<?php
+
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+require_once("../inc/util.inc");
+
+function show_choose($is_old) {
+    panel(null,
+        function() use($is_old) {
+            if ($is_old) {
+                echo ' <a href="join.php">'.tra('I\'m new').'</a>   |  '.tra('I\'m a BOINC user').'
+                ';
+            } else {
+                echo tra('I\'m new')
+                    .'   |   <a href="join.php?old=1">'
+                    .tra('I\'m a BOINC user')
+                    .'</a>
+                ';
+            }
+        }
+    );
+}
+
+function show_new() {
+    global $master_url;
+    panel(null,
+        function() use ($master_url) {
+            echo '
+                <ol>
+                <li> '
+                .tra('Read our %1Rules and Policies%2.', '<a href="info.php">', '</a>')
+                .'<li> <p>'
+                .tra('Download the BOINC desktop software.')
+                    .'</p><p>
+                    <a href="http://boinc.berkeley.edu/download.php" class="btn btn-success">'.tra('Download').'</a>
+                    </p><p>'
+                    .tra('For Android devices, download BOINC from the Google Play Store or Amazon App Store.')
+                    .'</p>
+                <li> '
+                .tra('Run the installer.').'
+                <li> '.tra("Choose %1 from the list, or enter %2", "<strong>".PROJECT."</strong>", "<strong>$master_url</strong>").'
+                </ol>
+            ';
+        }
+    );
+}
+
+function show_old() {
+    global $master_url;
+    panel(null,
+        function() use($master_url) {
+            echo '
+                <ul>
+                <li> '
+                .tra('Install BOINC on this device if not already present.')
+                .'<p>
+                <li> '
+                .tra('Select Tools / Add Project. Choose %1 from the list, or enter %2', "<strong>".PROJECT."</strong>", "<strong>$master_url</strong>")
+                .' <p>
+                <li> '
+                .tra('If you\'re running a command-line version of BOINC on this computer, %1create an account%2, then use %3boinccmd --project_attach%4 to add the project.',
+                    '<a href="create_account_form.php">',
+                    '</a>',
+                    '<strong><a href="http://boinc.berkeley.edu/wiki/Boinccmd_tool">',
+                    '</a></strong>'
+                )
+                .'
+                </ul>
+            ';
+        }
+    );
+}
+
+$old = get_int('old', true);
+
+page_head(tra("Join %1", PROJECT));
+show_choose($old);
+if ($old) {
+    show_old();
+} else {
+    show_new();
+}
+page_tail();
diff --git a/html/user/language_select.php b/html/user/language_select.php
index ef96d78..a1dd580 100644
--- a/html/user/language_select.php
+++ b/html/user/language_select.php
@@ -19,8 +19,7 @@
 
 require_once("../inc/util.inc");
 require_once("../inc/translation.inc");
-
-check_get_args(array("set_lang"));
+require_once("../inc/language_names.inc");
 
 $languages = get_supported_languages();
 if (!is_array($languages)) {
@@ -46,32 +45,17 @@ if ($set_lang){
 
 page_head(tra("Language selection"));
 
-function language_name($code) {
-    if ($code == 'en') {
-        return "<em>en</em> (English)";
-    } else {
-        $lname = tr_specific("LANG_NAME_NATIVE", $code);
-        if ($lname == 'English' || $lname == '') {
-            return "<b>$code</b>";
-        } else {
-            return "<b>$code</b> ("
-                .tr_specific("LANG_NAME_INTERNATIONAL", $code)
-                ."/$lname)"
-            ;
-        }
-    }
-}
-
 if (count($languages_in_use)) {
-    $cur_lang_name = language_name($languages_in_use[0]);
+    $lang_code = $languages_in_use[0];
 } else {
-    $cur_lang_name = language_name('en');
+    $lang_code = 'en';
 }
+$cur_lang_desc = language_desc($lang_code);
 
 echo "<p>",
     tra(
         "This web site is available in several languages. The currently selected language is %1.",
-        $cur_lang_name
+        $cur_lang_desc
     ),
     "</p><p>",
     tra(
@@ -86,31 +70,19 @@ echo "<p>",
     "</ul>",
     "<p>",
     tra(
-        "Or you can select a language by clicking on one of the links.  This will send your browser a cookie; make sure your browser accepts cookies from our domain."
+        "Or you can select a language from the following menu:"
     ),
     "</p>"
 ;
 
-start_table();
-row1(tra("Language name (click to select)"));
-row1("<a href=language_select.php?set_lang=auto>"
-    .tra("Use browser language setting")
-    ."</a>",
-    1, "row1"
-);
-sort($languages);
-$i = 0;
-foreach ($languages as $language) {
-    $name = language_name($language);
-    row1(
-        "<a href=\"language_select.php?set_lang=$language\">$name</a>",
-        1, "row$i"
-    );
-    $i = 1-$i;
-}
-end_table();
-echo "<p>",
-    tra("Translations are done by volunteers.  If your native language is not here, %1you can provide a translation%2.",
+echo '<div class="col-sm-3">
+';
+language_form($lang_code);
+echo '</div>
+';
+
+echo "<br clear=all><p> </p>",
+    tra("Translations are done by volunteers.  If your native language is missing or incomplete, %1you can help translate%2.",
     '<a href="http://boinc.berkeley.edu/trac/wiki/TranslateIntro">', '</a>'),
     "</p>"
 ;
diff --git a/html/user/login_action.php b/html/user/login_action.php
index 5fadc3e..5383bff 100644
--- a/html/user/login_action.php
+++ b/html/user/login_action.php
@@ -36,6 +36,7 @@ check_get_args(array("id", "t", "h", "key"));
 function login_with_email($email_addr, $passwd, $next_url, $perm) {
     $user = BoincUser::lookup_email_addr($email_addr);
     if (!$user) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         page_head("No such account");
         echo "No account with email address <b>$email_addr</b> exists.
             Please go back and try again.
@@ -44,12 +45,14 @@ function login_with_email($email_addr, $passwd, $next_url, $perm) {
         exit;
     }
     if (substr($user->authenticator, 0, 1) == 'x'){
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         error_page("This account has been administratively disabled.");
     }
     // allow authenticator as password
     if ($passwd != $user->authenticator) {
         $passwd_hash = md5($passwd.$email_addr);
         if ($passwd_hash != $user->passwd_hash) {
+            sleep(LOGIN_FAIL_SLEEP_SEC);
             page_head("Password incorrect");
             echo "The password you entered is incorrect. Please go back and try again.\n";
             page_tail();
@@ -57,7 +60,7 @@ function login_with_email($email_addr, $passwd, $next_url, $perm) {
         }
     }
     $authenticator = $user->authenticator;
-    Header("Location: ".URL_BASE."$next_url");
+    Header("Location: ".url_base()."$next_url");
     send_cookie('auth', $authenticator, $perm);
 }
 
@@ -66,6 +69,7 @@ function login_with_email($email_addr, $passwd, $next_url, $perm) {
 function login_via_link($id, $t, $h) {
     $user = BoincUser::lookup_id($id);
     if (!$user) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         error_page("Invalid user ID.
             Please make sure you visited the complete URL;
             it may have been split across lines by your email reader."
@@ -75,12 +79,14 @@ function login_via_link($id, $t, $h) {
     $x = md5($x);
     $x = substr($x, 0, 16);
     if ($x != $h) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         error_page("Invalid authenticator.
             Please make sure you visited the complete URL;
             it may have been split across lines by your email reader."
         );
     }
     if (time() - $t > 86400) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         error_page("Link has expired;
             go <a href=get_passwd.php>here</a> to
             get a new login link by email."
@@ -93,12 +99,14 @@ function login_via_link($id, $t, $h) {
 function login_with_auth($authenticator, $next_url, $perm) {
     $user = BoincUser::lookup_auth($authenticator);
     if (!$user) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         page_head("Login failed");
         echo "There is no account with that authenticator.
             Please <a href=get_passwd.php>try again</a>.
         ";
         page_tail();
     } else if (substr($user->authenticator, 0, 1) == 'x'){
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         error_page("This account has been administratively disabled.");
     } else {
         Header("Location: $next_url");
@@ -109,6 +117,7 @@ function login_with_auth($authenticator, $next_url, $perm) {
 function login_with_ldap($uid, $passwd, $next_url, $perm) {
     list ($ldap_user, $error_msg) = ldap_auth($uid, $passwd);
     if ($error_msg) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         error_page($error_msg);
     }
     $x = ldap_email_string($uid);
@@ -122,7 +131,7 @@ function login_with_ldap($uid, $passwd, $next_url, $perm) {
     if (!$user) {
         error_page("Couldn't create user");
     }
-    Header("Location: ".URL_BASE."$next_url");
+    Header("Location: ".url_base()."$next_url");
     send_cookie('auth', $user->authenticator, $perm);
     return;
 }
@@ -136,6 +145,7 @@ if ($id && $t && $h) {
 }
 
 $next_url = post_str("next_url", true);
+$next_url = urldecode($next_url);
 $next_url = sanitize_local_url($next_url);
 if (strlen($next_url) == 0) $next_url = "home.php";
 
diff --git a/html/user/login_form.php b/html/user/login_form.php
index a3771ad..b8cd271 100644
--- a/html/user/login_form.php
+++ b/html/user/login_form.php
@@ -22,7 +22,9 @@ require_once("../inc/account.inc");
 
 check_get_args(array("next_url"));
 
-$next_url = sanitize_local_url(get_str('next_url', true));
+$next_url = get_str('next_url', true);
+$next_url = urldecode($next_url);
+$next_url = sanitize_local_url($next_url);
 $next_url = urlencode($next_url);
 
 $u = "login_form.php?next_url=".$next_url;
diff --git a/html/user/logout.php b/html/user/logout.php
index 2e896f3..389b276 100644
--- a/html/user/logout.php
+++ b/html/user/logout.php
@@ -27,7 +27,7 @@ if ($user) {
     check_tokens($user->authenticator);
     clear_cookie('auth');
     $g_logged_in_user = null;
-    header("Location: index.php");
+    header("Location: $master_url");
     page_head("Logged out");
     echo "You are now logged out";
     page_tail();
diff --git a/html/user/lookup_account.php b/html/user/lookup_account.php
index 67e53c6..eb52987 100644
--- a/html/user/lookup_account.php
+++ b/html/user/lookup_account.php
@@ -37,6 +37,7 @@ if (LDAP_HOST && $ldap_auth) {
     $passwd = get_str("passwd");
     list ($ldap_user, $error_msg) = ldap_auth($ldap_uid, $passwd);
     if ($error_msg) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         xml_error(ERR_BAD_USER_NAME, $error_msg);
     }
     $x = ldap_email_string($ldap_uid);
@@ -55,6 +56,7 @@ if (LDAP_HOST && $ldap_auth) {
     $email_addr = BoincDb::escape_string($email_addr);
     $user = BoincUser::lookup("email_addr='$email_addr'");
     if (!$user) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         xml_error(ERR_DB_NOT_FOUND);
     }
 
@@ -77,6 +79,7 @@ if (LDAP_HOST && $ldap_auth) {
     // if the given password hash matches (auth+email), accept it
     //
     if ($user->passwd_hash != $passwd_hash && $auth_hash != $passwd_hash) {
+        sleep(LOGIN_FAIL_SLEEP_SEC);
         xml_error(ERR_BAD_PASSWD);
     }
 }
diff --git a/html/user/mail_passwd.php b/html/user/mail_passwd.php
index 8ddbf8a..c8ec6cb 100644
--- a/html/user/mail_passwd.php
+++ b/html/user/mail_passwd.php
@@ -27,7 +27,7 @@ function email_sent_message($email_addr) {
     if (defined('EMAIL_FROM')) {
         $email_from = EMAIL_FROM;
     } else {
-        $email_from = URL_BASE;
+        $email_from = secure_url_base();
     }
 
     page_head("Email sent");
diff --git a/html/user/manage_project.php b/html/user/manage_project.php
index f598588..a478020 100644
--- a/html/user/manage_project.php
+++ b/html/user/manage_project.php
@@ -70,11 +70,11 @@ function handle_list() {
     $us = BoincUserSubmit::enum("");
     start_table();
     table_header(
-        "User<br><p class=\"text-muted\">Click to change permissions or quota</p>",
+        "User<br><small>Click to change permissions or quota</small>",
         "Can submit jobs for",
         "Quota",
-        "Max jobs in progress<br><p class=\"text-muted\">0 means no limit</p>",
-        "Current priority<br><p class=\"text-muted\">Later time = lower priority</p>"
+        "Max jobs in progress<br><small>0 means no limit</small>",
+        "Current priority<br><small>Later time = lower priority</small>"
     );
     foreach ($us as $u) {
         user_row($u);
@@ -117,8 +117,6 @@ function handle_edit_form() {
     }
     $q = (string) $usub->quota;
     $mj = $usub->max_jobs_in_progress;
-    $sav = $usub->create_app_versions?"checked":"";
-    $sa = $usub->create_apps?"checked":"";
     echo "
         <p>
         Quota: <input name=quota value=$q>
@@ -127,7 +125,7 @@ function handle_edit_form() {
         Max jobs in progress:
         <input name=max_jobs_in_progress value=$mj>
         <p>
-        <input class=\"btn btn-default\" type=submit value=OK>
+        <input class=\"btn btn-success\" type=submit value=OK>
         </form>
         <p>
         <a href=manage_project.php>Return to project-wide management functions</a>
@@ -171,7 +169,7 @@ function handle_add_form() {
         <input type=hidden name=action value=add_action>
         User ID: <input name=user_id>
         <br>
-        <input class=\"btn btn-default\" type=submit value=OK>
+        <input class=\"btn btn-success\" type=submit value=OK>
         </form>
     ";
     page_tail();
diff --git a/html/user/notices.php b/html/user/notices.php
index e2539f2..3bf6605 100644
--- a/html/user/notices.php
+++ b/html/user/notices.php
@@ -36,7 +36,7 @@ function notices_rss_start() {
         <rss version=\"2.0\">
         <channel>
         <title>".PROJECT." notices</title>
-        <link>".URL_BASE."</link>
+        <link>".secure_url_base()."</link>
         <description>Notices</description>
         <lastBuildDate>$t</lastBuildDate>
     ";
diff --git a/html/user/notify_rss.php b/html/user/notify_rss.php
index 9db124a..bd46345 100644
--- a/html/user/notify_rss.php
+++ b/html/user/notify_rss.php
@@ -46,14 +46,14 @@ header("Last-Modified: ".$create_date);
 header("Content-Type: application/xml");
 
 $description = "Community notifications";
-$channel_image = URL_BASE."rss_image.gif";
+$channel_image = secure_url_base()."rss_image.gif";
 $language = "en-us";
 echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>
     <rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">
     <channel>
     <title>".PROJECT."</title>
-    <link>".URL_BASE."</link>
-    <atom:link href=\"".URL_BASE."notify_rss.php\" rel=\"self\" type=\"application/rss+xml\" />
+    <link>".secure_url_base()."</link>
+    <atom:link href=\"".secure_url_base()."notify_rss.php\" rel=\"self\" type=\"application/rss+xml\" />
     <description>".$description."</description>
     <copyright>".COPYRIGHT_HOLDER."</copyright>
     <lastBuildDate>".$create_date."</lastBuildDate>
@@ -61,7 +61,7 @@ echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>
     <image>
         <url>".$channel_image."</url>
         <title>".PROJECT."</title>
-        <link>".URL_BASE."</link>
+        <link>".secure_url_base()."</link>
     </image>
 ";
 
diff --git a/html/user/openid_login.php b/html/user/openid_login.php
index 821cbc0..e63eda1 100644
--- a/html/user/openid_login.php
+++ b/html/user/openid_login.php
@@ -123,11 +123,9 @@ try {
                 exit();
             }
             
-            $postal_code = '';
-            
             $user = make_user(
                 $new_email_addr, $new_name, $passwd_hash,
-                $country, $postal_code, $project_prefs="", $teamid=0
+                $country, '', $project_prefs="", $teamid=0
             );
             if (!$user) {
                 show_error("Couldn't create account");
@@ -146,9 +144,9 @@ try {
         $next_url = post_str('next_url', true);
         $next_url = sanitize_local_url($next_url);
         if ($next_url) {
-            Header("Location: ".URL_BASE."$next_url");
+            Header("Location: ".url_base()."$next_url");
         } else {
-            Header("Location: ".URL_BASE."home.php");
+            Header("Location: ".url_base()."home.php");
             send_cookie('init', "1", true);
             send_cookie('via_web', "1", true);
         }
diff --git a/html/user/opt_out.php b/html/user/opt_out.php
index a60f2e4..0716940 100644
--- a/html/user/opt_out.php
+++ b/html/user/opt_out.php
@@ -41,7 +41,7 @@ if ($result) {
         No further emails will be sent to $user->email_addr.
         <p>
         To resume getting emails,
-        <a href=".URL_BASE."prefs_edit.php?subset=project>edit your project preferences</a>.
+        <a href=".url_base()."prefs_edit.php?subset=project>edit your project preferences</a>.
     ";
     page_tail();
 }
diff --git a/html/user/per_app_list.php b/html/user/per_app_list.php
index 979508a..3fefd44 100644
--- a/html/user/per_app_list.php
+++ b/html/user/per_app_list.php
@@ -26,12 +26,21 @@
 require_once("../inc/util.inc");
 require_once("../inc/team.inc");
 
+check_get_args(array(
+    "is_team",
+    "appid",
+    "is_total",
+    "offset"
+));
+
+define('ITEM_LIMIT', 10000);
+
 // return a column title (Average or Total),
 // hyperlinked if this is not the current sort column
 //
 function col_title($is_team, $app, $appid, $is_total, $i) {
-    $x = $i?"Total":"Average";
-    if ($app->id == $appid && ($is_total?$i:!$i)) {
+    $x = $i ? tra("Total") : tra("Average");
+    if ($app->id == $appid && ($is_total ? $i : !$i)) {
         return $x;
     } else {
         return "<a href=per_app_list.php?appid=$app->id&is_team=$is_team&is_total=$i>$x</a>";
@@ -44,87 +53,206 @@ function col_title($is_team, $app, $appid, $is_total, $i) {
 function show_header($is_team, $apps, $appid, $is_total) {
     echo "<tr><th colspan=2> </th>";
     foreach ($apps as $app) {
-        echo "<th colspan=2>$app->name</th>\n";
+        echo "<th colspan=2 class=\"text-center\">$app->name</th>\n";
     }
     echo "</tr>";
 
     echo "<tr>";
-    echo "<th>Rank</th><th>Name</th>\n";
+    echo "<th>" . tra("Rank") . "</th><th>" . tra("Name") . "</th>\n";
     foreach ($apps as $app) {
-        for ($i=0; $i<2; $i++) {
+        for ($i = 0; $i < 2; $i++) {
             $x = col_title($is_team, $app, $appid, $is_total, $i);
-            echo "<th>$x</th>\n";
+            echo "<th class=\"text-right\">$x</th>\n";
         }
     }
+
     echo "</tr>";
 
 }
 
 // show a user or team, with their credit for each app
 //
-function show_row($item, $apps, $is_team, $i) {
-    $j = $i % 2;
-    if ($is_team) {
+function show_row($item, $x) {
+    global $i;
+    global $apps;
+    echo "<tr>";
+    echo "<td>$i</td>";
+
+    echo "<td>" . $item[0][$x] . "</td>";
+    $y = 1;
+    foreach ($apps as $app) {
+        $z = 0;
+        echo "<td>" . format_credit($item[$y][$x][$z]) . "</td>";
+        $z++;
+        echo "<td>" . format_credit_large($item[$y][$x][$z]) . "</td>";
+        $y++;
+    }
+    echo "</tr>";
+
+}
+
+function retrieve_credit_team($data) {
+    global $apps;
+    $x = 1;
+    $c = 0;
+
+    foreach ($data as $item) {
         $team = BoincTeam::lookup_id($item->teamid);
-        if (!$team) return;
-        $x = "<td>".team_links($team)."</td>\n";
-    } else {
-        $user = BoincUser::lookup_id($item->userid);
-        if (!$user) return;
-        $x= "<td>".user_links($user, BADGE_HEIGHT_MEDIUM)."</td>\n";
+        if (is_object($team)) {
+            $sign         = team_links($team);
+            $store[0][$c] = $sign;
+            $c++;
+        }
     }
-    echo "<tr class=row$j>";
-    echo "<td>$i</td>\n";
-    echo $x;
 
     foreach ($apps as $app) {
-        if ($app->id == $item->appid) {
-            $c = $item;
-        } else {
-            if ($is_team) {
-                $c = BoincCreditTeam::lookup("teamid=$item->teamid and appid=$app->id");
-            } else {
-                $c = BoincCreditUser::lookup("userid=$item->userid and appid=$app->id");
-            }
-            if (!$c) {
-                $c = new StdClass;
-                $c->expavg = 0;
-                $c->total = 0;
+        $y = 0;
+
+        foreach ($data as $item) {
+            $team = BoincTeam::lookup_id($item->teamid);
+            if (is_object($team)) {
+                $item = BoincCreditTeam::lookup("teamid=$item->teamid and appid=$app->id");
+
+                if (is_object($item)) {
+                    $z                 = 0;
+                    $store[$x][$y][$z] = $item->expavg;
+                    $z++;
+                    $store[$x][$y][$z] = $item->total;
+                } else {
+                    $z                 = 0;
+                    $store[$x][$y][$z] = 0.0;
+                    $z++;
+                    $store[$x][$y][$z] = 0.0;
+                }
+                $y++;
             }
         }
-        echo "<td align=right>".format_credit($c->expavg)."</td><td align=right>".format_credit_large($c->total)."</td>\n";
+
+        $x++;
     }
-    echo "</tr>\n";
+    return $store;
 }
 
-function show_list($is_team, $appid, $is_total) {
-    $x = $is_team?"teams":"participants";
-    page_head("Top $x by application");
-    $apps = BoincApp::enum("deprecated=0");
-    if (!$appid) {
-        $appid = $apps[0]->id;
+function retrieve_credit_user($data) {
+    global $apps;
+    $x = 1;
+    $c = 0;
+
+    foreach ($data as $item) {
+        $user = BoincUser::lookup_id($item->userid);
+        if (is_object($user)) {
+            $sign         = user_links($user, BADGE_HEIGHT_MEDIUM);
+            $store[0][$c] = $sign;
+            $c++;
+        }
+    }
+
+    foreach ($apps as $app) {
+        $y = 0;
+
+        foreach ($data as $item) {
+            $user = BoincUser::lookup_id($item->userid);
+            if (is_object($user)) {
+                $item = BoincCreditUser::lookup("userid=$item->userid and appid=$app->id");
+                if (is_object($item)) {
+                    $z                 = 0;
+                    $store[$x][$y][$z] = $item->expavg;
+                    $z++;
+                    $store[$x][$y][$z] = $item->total;
+                } else {
+                    $z                 = 0;
+                    $store[$x][$y][$z] = 0.0;
+                    $z++;
+                    $store[$x][$y][$z] = 0.0;
+                }
+                $y++;
+            }
+        }
+        $x++;
     }
-    start_table();
-    show_header($is_team, $apps, $appid, $is_total);
-    $x = $is_total?"total":"expavg";
+    return $store;
+}
+
+function get_top_items($is_team, $appid, $is_total, $offset) {
+    global $items_per_page;
+    $x = $is_total ? "total" : "expavg";
+
     if ($is_team) {
-        $items = BoincCreditTeam::enum("appid=$appid order by $x desc");
+
+        $data  = BoincCreditTeam::get_list("appid=$appid", $x, $offset . ", " . $items_per_page);
+        $store = retrieve_credit_team($data);
     } else {
-        $items = BoincCreditUser::enum("appid=$appid order by $x desc");
+        $data  = BoincCreditUser::get_list("appid=$appid", $x, $offset . ", " . $items_per_page);
+        $store = retrieve_credit_user($data);
     }
-    $i = 0;
-    foreach ($items as $item) {
-        show_row($item, $apps, $is_team, $i);
-        $i++;
+
+    return $store;
+}
+
+$is_team        = get_int('is_team', true);
+$appid          = get_int('appid', true);
+$is_total       = get_int('is_total', true);
+$items_per_page = 20;
+$offset         = get_int('offset', true);
+
+if (!$offset)
+    $offset = 0;
+if ($offset % $items_per_page)
+    $offset = 0;
+
+$x = $is_team ? tra("Top teams by application") : tra("Top participants by application");
+page_head($x);
+
+$apps = BoincApp::enum("deprecated=0");
+if (!$appid) {
+    $appid = $apps[0]->id;
+}
+
+if ($offset < ITEM_LIMIT) {
+    $cache_args = "appid=$appid&is_team=$is_team&is_total=$is_total&offset=$offset";
+    $cacheddata = get_cached_data(TOP_PAGES_TTL, $cache_args);
+
+    // Do we have the data in cache?
+    //
+    if ($cacheddata) {
+        $data = unserialize($cacheddata); // use the cached data
+    } else {
+        //if not do queries etc to generate new data
+        $data = get_top_items($is_team, $appid, $is_total, $offset);
+
+        //save data in cache
+        //
+        set_cached_data(TOP_PAGES_TTL, serialize($data), $cache_args);
     }
-    end_table();
-    page_tail();
+} else {
+    error_page(tra("Limit exceeded - Sorry, first %1 items only", ITEM_LIMIT));
 }
 
-$is_team = get_int('is_team', true);
-$appid = get_int('appid', true);
-$is_total = get_int('is_total', true);
+start_table('table_striped');
+show_header($is_team, $apps, $appid, $is_total);
+
+$i = 1 + $offset;
+
+//The number of columns is the number of items we currently have
+//available to display in each row
+// 
+for ($x = 0; $x < count($data[0]); $x++) {
+    show_row($data, $x);
+    $i++;
+}
+
+end_table();
+
+if ($offset > 0) {
+    $new_offset = $offset - $items_per_page;
+    echo "<a href=per_app_list.php?appid=$appid&is_team=$is_team&is_total=$is_total&offset=$new_offset>" . tra("Previous %1", $items_per_page) . "</a> · ";
+}
+
+if (sizeof($data[0]) == $items_per_page) {
+    $new_offset = $offset + $items_per_page;
+    echo "<a href=per_app_list.php?appid=$appid&is_team=$is_team&is_total=$is_total&offset=$new_offset>" . tra("Next %1", $items_per_page) . "</a>";
+}
 
-show_list($is_team, $appid, $is_total);
+page_tail();
 
 ?>
diff --git a/html/user/pm.php b/html/user/pm.php
index a5ec471..867e286 100644
--- a/html/user/pm.php
+++ b/html/user/pm.php
@@ -22,10 +22,7 @@ require_once("../inc/pm.inc");
 require_once("../inc/forum.inc");
 require_once("../inc/akismet.inc");
 
-check_get_args(array("replyto", "deleted", "userid", "action", "sent", "id", "tnow", "ttok"));
-
-$replyto = get_int("replyto", true);
-$userid = get_int("userid", true);
+check_get_args(array("replyto", "deleted", "userid", "action", "sent", "id", "tnow", "ttok", "teamid"));
 
 function show_block_link($userid) {
     echo " <a href=\"pm.php?action=block&id=$userid\">";
@@ -33,15 +30,6 @@ function show_block_link($userid) {
     echo "</a>";
 }
 
-$action = sanitize_tags(get_str("action", true));
-if (!$action) {
-    $action = sanitize_tags(post_str("action", true));
-}
-
-if (!$action) {
-    $action = "inbox";
-}
-
 $logged_in_user = get_logged_in_user();
 BoincForumPrefs::lookup($logged_in_user);
 
@@ -70,7 +58,7 @@ function do_inbox($logged_in_user) {
 
     make_script();
     if (get_int("sent", true) == 1) {
-        echo "<div class=\"notice\">".tra("Your message has been sent.")."</div>\n";
+        echo "<h3>".tra("Your message has been sent.")."</h3>\n";
     }
     $options = get_output_options($logged_in_user);
 
@@ -86,18 +74,18 @@ function do_inbox($logged_in_user) {
             <input type=hidden name=action value=delete_selected>
         ";
         echo form_tokens($logged_in_user->authenticator);
-        start_table();
-        echo "<tr><th>".tra("Subject")."</th><th>".tra("Sender and date")."</th><th>".tra("Message")."</th></tr>\n";
-        $i = 0;
+        start_table('table-striped');
+        row_heading_array(
+            array(tra("Subject"), tra("Sender and date"), tra("Message")),
+            array('style="width: 12em;"', 'style="width: 10em;"', "")
+        );
         foreach($msgs as $msg) {
             $sender = BoincUser::lookup_id($msg->senderid);
             if (!$sender) {
                 $msg->delete();
                 continue;
             }
-            $i++;
-            $class = ($i%2)? "row0": "row1";
-            echo "<tr class=$class>\n";
+            echo "<tr>\n";
             $checkbox = "<input type=checkbox name=pm_select_$msg->id>";
             if (!$msg->opened) {
                 $msg->update("opened=1");
@@ -125,6 +113,7 @@ function do_inbox($logged_in_user) {
         end_table();
         echo "</form>\n";
     }
+    page_tail();
 }
 
 // the following isn't currently used - we never show single messages
@@ -147,7 +136,7 @@ function do_read($logged_in_user) {
     echo "</td></tr>";
     echo "<tr><th>".tra("Date")."</th><td>".time_str($message->date)."</td></tr>";
     echo "<tr><th>".tra("Message")."</th><td>".output_transform($message->content, $options)."</td></tr>";
-    echo "<tr><td class=\"pm_footer\"></td><td>\n";
+    echo "<tr><td></td><td>\n";
     echo "<a href=\"pm.php?action=new&replyto=$id\">".tra("Reply")."</a>\n";
     echo " · <a href=\"pm.php?action=delete&id=$id\">".tra("Delete")."</a>\n";
     echo " · <a href=\"pm.php?action=inbox\">".tra("Inbox")."</a>\n";
@@ -156,6 +145,7 @@ function do_read($logged_in_user) {
     if ($message->opened == 0) {
         $message->update("opened=1");
     }
+    page_tail();
 }
 
 function do_new($logged_in_user) {
@@ -174,6 +164,46 @@ function do_delete($logged_in_user) {
     header("Location: pm.php");
 }
 
+function do_send_team($logged_in_user) {
+    check_tokens($logged_in_user->authenticator);
+    $subject = post_str("subject", true);
+    $content = post_str("content", true);
+    $teamid = post_int("teamid");
+    if (post_str("preview", true) == tra("Preview")) {
+        pm_team_form($logged_in_user, $teamid);
+        return;
+    }
+
+    // make sure user is authorized, i.e. is a team admin
+    //
+    $team = BoincTeam::lookup_id($teamid);
+    if (!$team) {
+        error_page("no such team");
+    }
+    if (!is_team_admin($logged_in_user, $team)) {
+        error_page("no team admin");
+    }
+
+    if (($subject == null) || ($content == null)) {
+        pm_team_form(
+            $logged_in_user, $teamid,
+            tra("You need to fill all fields to send a private message")
+        );
+        return;
+    }
+
+    $subject = "Message from team ".$team->name.": ".$subject;
+        // don't use tra() here because we don't know language of recipient
+        // Also, we use it in pm_count() to exclude team messages from limit check
+    $users = BoincUser::enum("teamid=$teamid");
+    foreach ($users as $user) {
+        pm_send_msg($logged_in_user, $user, $subject, $content, true);
+    }
+    page_head(tra("Message sent"));
+    echo tra("Your message was sent to %1 team members.", count($users));
+    page_tail();
+}
+
 function do_send($logged_in_user) {
     global $replyto, $userid;
     check_banished($logged_in_user);
@@ -188,54 +218,55 @@ function do_send($logged_in_user) {
     }
     if (($to == null) || ($subject == null) || ($content == null)) {
         pm_form($replyto, $userid, tra("You need to fill all fields to send a private message"));
-    } else {
-        if (!akismet_check($logged_in_user, $content)) {
-            pm_form($replyto, $userid, tra("Your message was flagged as spam
-                by the Akismet anti-spam system.
-                Please modify your text and try again.")
-            );
-        }
-        $to = str_replace(", ", ",", $to); // Filter out spaces after separator
-        $users = explode(",", $to);
-
-        $userlist = array();
-        $userids = array(); // To prevent from spamming a single user by adding it multiple times
-
-        foreach ($users as $username) {
-            $user = explode(" ", $username);
-            if (is_numeric($user[0])) { // user ID is gived
-                $userid = $user[0];
-                $user = BoincUser::lookup_id($userid);
-                if ($user == null) {
-                    pm_form($replyto, $userid, tra("Could not find user with id %1", $userid));
-                }
-            } else {
-                $user = BoincUser::lookup_name($username);
-                if ($user == null) {
-                    pm_form($replyto, $userid, tra("Could not find user with username %1", $username));
-                } elseif ($user == -1) { // Non-unique username
-                    pm_form($replyto, $userid, tra("%1 is not a unique username; you will have to use user ID", $username));
-                }
-            }
-            BoincForumPrefs::lookup($user);
-            if (is_ignoring($user, $logged_in_user)) {
-                pm_form($replyto, $userid, tra("User %1 (ID: %2) is not accepting private messages from you.", $user->name, $user->id));
+        return;
+    }
+    if (!akismet_check($logged_in_user, $content)) {
+        pm_form($replyto, $userid, tra("Your message was flagged as spam
+            by the Akismet anti-spam system.
+            Please modify your text and try again.")
+        );
+    }
+    $to = str_replace(", ", ",", $to); // Filter out spaces after separator
+    $users = explode(",", $to);
+
+    $userlist = array();
+    $userids = array(); // To prevent from spamming a single user by adding it multiple times
+
+    foreach ($users as $username) {
+        $user = explode(" ", $username);
+        if (is_numeric($user[0])) { // user ID is given
+            $userid = $user[0];
+            $user = BoincUser::lookup_id($userid);
+            if ($user == null) {
+                pm_form($replyto, $userid, tra("Could not find user with id %1", $userid));
             }
-            if (!isset($userids[$user->id])) {
-                $userlist[] = $user;
-                $userids[$user->id] = true;
+        } else {
+            $users = BoincUser::lookup_name($username);
+            if (count($users) == 0) {
+                pm_form($replyto, $userid, tra("Could not find user with username %1", $username));
+            } elseif (count($users) > 1) { // Non-unique username
+                pm_form($replyto, $userid, tra("%1 is not a unique username; you will have to use user ID", $username));
             }
+            $user = $users[0];
         }
-
-        foreach ($userlist as $user) {
-            if (!is_moderator($logged_in_user, null)) {
-                check_pm_count($logged_in_user->id);
-            }
-            pm_send($logged_in_user, $user, $subject, $content, true);
+        BoincForumPrefs::lookup($user);
+        if (is_ignoring($user, $logged_in_user)) {
+            pm_form($replyto, $userid, tra("User %1 (ID: %2) is not accepting private messages from you.", $user->name, $user->id));
+        }
+        if (!isset($userids[$user->id])) {
+            $userlist[] = $user;
+            $userids[$user->id] = true;
         }
+    }
 
-        Header("Location: pm.php?action=inbox&sent=1");
+    foreach ($userlist as $user) {
+        if (!is_moderator($logged_in_user, null)) {
+            check_pm_count($logged_in_user->id);
+        }
+        pm_send_msg($logged_in_user, $user, $subject, $content, true);
     }
+
+    Header("Location: pm.php?action=inbox&sent=1");
 }
 
 function do_block($logged_in_user) {
@@ -256,6 +287,7 @@ function do_block($logged_in_user) {
     echo "<input class=\"btn btn-default\" type=\"submit\" value=\"".tra("Add user to filter")."\">\n";
     echo "<a href=\"pm.php?action=inbox\">".tra("No, cancel")."</a>\n";
     echo "</form>\n";
+    page_tail();
 }
 
 function do_confirmedblock($logged_in_user) {
@@ -269,6 +301,7 @@ function do_confirmedblock($logged_in_user) {
 
     echo "<div>".tra("User %1 has been blocked from sending you private messages.", $blocked_user->name)."\n";
     echo tra("To unblock, visit %1message board preferences%2", "<a href=\"edit_forum_preferences_form.php\">", "</a>")."</div>\n";
+    page_tail();
 }
 
 function do_delete_selected($logged_in_user) {
@@ -287,16 +320,41 @@ function do_delete_selected($logged_in_user) {
     Header("Location: pm.php?action=inbox&deleted=1");
 }
 
+$replyto = get_int("replyto", true);
+$userid = get_int("userid", true);
+$teamid = get_int("teamid", true);
+if (!$teamid) {
+    $teamid = post_int("teamid", true);
+}
+
+$action = sanitize_tags(get_str("action", true));
+if (!$action) {
+    $action = sanitize_tags(post_str("action", true));
+}
+
+if (!$action) {
+    $action = "inbox";
+}
+
 if ($action == "inbox") {
     do_inbox($logged_in_user);
 } elseif ($action == "read") {
     do_read($logged_in_user);
 } elseif ($action == "new") {
-    do_new($logged_in_user);
+    if (!$teamid) $teamid = post_int("teamid", true);
+    if ($teamid) {
+        pm_team_form($logged_in_user, $teamid);
+    } else {
+        do_new($logged_in_user);
+    }
 } elseif ($action == "delete") {
     do_delete($logged_in_user);
 } elseif ($action == "send") {
-    do_send($logged_in_user);
+    if ($teamid) {
+        do_send_team($logged_in_user);
+    } else {
+        do_send($logged_in_user);
+    }
 } elseif ($action == "block") {
     do_block($logged_in_user);
 } elseif ($action == "confirmedblock") {
@@ -307,7 +365,5 @@ if ($action == "inbox") {
     error_page(tra("Unknown action"));
 }
 
-page_tail();
-
 $cvs_version_tracker[]="\$Id: pm.php 14077 2007-11-03 04:26:47Z davea $";
 ?>
diff --git a/html/user/profile_menu.php b/html/user/profile_menu.php
index f76ed39..543b72c 100644
--- a/html/user/profile_menu.php
+++ b/html/user/profile_menu.php
@@ -38,7 +38,7 @@ echo "
     tra("Explore the diversity of your fellow volunteers, and contribute your own views for others to enjoy.")."
     <p>".tra("If you haven't already, you can %1create your own user profile%2 for others to see!", "<a href=\"create_profile.php\">", "</a>");
 
-start_table_noborder();
+start_table();
 
 $today = getdate(time());
 $UOTD_heading = tra("User of the Day")." -- " . $today['month'] . " " . $today['mday'] . ", " . $today['year'];
@@ -59,8 +59,8 @@ echo "</td></tr>";
 row1(tra("User Profile Explorer"));
 echo "<tr><td>
     <ul>
-    <li>".tra("View the %1User Picture Gallery%2.", "<a href=\"" . URL_BASE . "user_profile/user_gallery_1.html\">", "</a>")."</li>
-    <li>".tra("Browse profiles %1by country%2.", "<a href=\"" . URL_BASE . "user_profile/profile_country.html\">", "</a>")."</li>
+    <li>".tra("View the %1User Picture Gallery%2.", "<a href=\"" . url_base() . "user_profile/user_gallery_1.html\">", "</a>")."</li>
+    <li>".tra("Browse profiles %1by country%2.", "<a href=\"" . url_base() . "user_profile/profile_country.html\">", "</a>")."</li>
     <li>".tra("Browse profiles %1at random%2, %3at random with pictures%2, or %4at random without pictures%2.", "<a href=\"?cmd=rand&pic=-1\">", "</a>",
             "<a href=\"?cmd=rand&pic=1\">", "<a href=\"?cmd=rand&pic=0\">")."</li>
 ";
@@ -105,7 +105,7 @@ function select_profile($cmd) {
 
         shuffle($profiles);
         $userid = $profiles[0]->userid;
-        header("Location: ".URL_BASE."view_profile.php?userid=$userid");
+        header("Location: ".url_base()."view_profile.php?userid=$userid");
         exit();
     }
 }
diff --git a/html/user/profile_rate.php b/html/user/profile_rate.php
index 0d092c0..730d799 100644
--- a/html/user/profile_rate.php
+++ b/html/user/profile_rate.php
@@ -35,7 +35,7 @@ BoincProfile::update_aux("$vote=$vote+1 WHERE userid = $userid");
 
 page_head(tra("Vote Recorded"));
 
-start_table_noborder();
+start_table();
 
 row1(tra("Thank you"));
 
diff --git a/html/user/result.php b/html/user/result.php
index ffd4818..b37d769 100644
--- a/html/user/result.php
+++ b/html/user/result.php
@@ -30,9 +30,10 @@ if ($x) {
 }
 
 if (!$result) {
-    error_page(tra("No such task: $x"));
+    error_page(tra("No such task:")." ".htmlspecialchars($x));
+        // the htmlspecialchars prevents XSS
 }
-page_head(tra("Task %1", $x));
+page_head(tra("Task")." ".htmlspecialchars($x));
 show_result($result);
 page_tail();
 
diff --git a/html/user/result_status.php b/html/user/result_status.php
new file mode 100644
index 0000000..00da299
--- /dev/null
+++ b/html/user/result_status.php
@@ -0,0 +1,89 @@
+<?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+// RPC handler for getting the status of one or more results
+// args:
+// ids=id1,id2...
+// or
+// names = name1,name2,...
+
+require_once("../inc/util.inc");
+require_once("../inc/xml.inc");
+
+function result_xml($r) {
+    echo "
+    <result>
+        <id>$r->id</id>
+        <create_time>$r->create_time</create_time>
+        <workunitid>$r->workunitid</workunitid>
+        <server_state>$r->server_state</server_state>
+        <outcome>$r->outcome</outcome>
+        <client_state>$r->client_state</client_state>
+        <hostid>$r->hostid</hostid>
+        <userid>$r->userid</userid>
+        <report_deadline>$r->report_deadline</report_deadline>
+        <sent_time>$r->sent_time</sent_time>
+        <received_time>$r->received_time</received_time>
+        <name>$r->name</name>
+        <cpu_time>$r->cpu_time</cpu_time>
+        <batch>$r->batch</batch>
+        <file_delete_state>$r->file_delete_state</file_delete_state>
+        <validate_state>$r->validate_state</validate_state>
+        <granted_credit>$r->granted_credit</granted_credit>
+        <app_version_num>$r->app_version_num</app_version_num>
+        <appid>$r->appid</appid>
+        <exit_status>$r->exit_status</exit_status>
+        <elapsed_time>$r->elapsed_time</elapsed_time>
+        <flops_estimate>$r->flops_estimate</flops_estimate>
+        <peak_working_set_size>$r->peak_working_set_size</peak_working_set_size>
+        <peak_swap_size>$r->peak_swap_size</peak_swap_size>
+        <peak_disk_usage>$r->peak_disk_usage</peak_disk_usage>
+    </result>
+";
+}
+
+BoincDb::get(true); // read-only; use replica DB if possible
+
+xml_header();
+echo "<results>\n";
+$ids = get_str("ids", true);
+if ($ids) {
+    $ids = explode(",", $ids);
+    foreach ($ids as $id) {
+        $result = BoincResult::lookup_id($id);
+        if ($result) {
+            result_xml($result);
+        } else {
+            echo "<error>ID $id unknown</error>\n";
+        }
+    }
+} else {
+    $names = get_str("names", true);
+    $names = explode(",", $names);
+    foreach ($names as $name) {
+        $result = BoincResult::lookup_name($name);
+        if ($result) {
+            result_xml($result);
+        } else {
+            echo "<error>name $name unknown</error>\n";
+        }
+    }
+}
+echo "</results>\n";
+
+?>
diff --git a/html/user/results.php b/html/user/results.php
index 96995f4..a308d5a 100644
--- a/html/user/results.php
+++ b/html/user/results.php
@@ -45,10 +45,10 @@ if (!$show_names) $show_names=0;
 
 $s = $state_name[$state];
 if ($appid) {
-	$app = BoincApp::lookup_id($appid);
-	if ($app) {
-		$s .= " $app->user_friendly_name ";
-	}
+    $app = BoincApp::lookup_id($appid);
+    if ($app) {
+        $s .= " $app->user_friendly_name ";
+    }
 }
 
 if ($hostid) {
@@ -92,16 +92,15 @@ $info->state = $state;
 $info->appid = $appid;
 
 $nav = result_navigation($info, $clause);
+$i = 0;
 if (count($results)) {
     echo $nav;
     result_table_start(true, $show_host_link, $info);
-    $i = 0;
     foreach ($results as $result) {
-        if ($i >= $results_per_page) break;
-        show_result_row($result, true, $show_host_link, $show_names, $i);
-        $i++;
+        if ($i++ >= $results_per_page) break;
+        show_result_row($result, true, $show_host_link, $show_names);
     }
-    echo "</table>\n";
+    end_table();
 } else {
     start_table();
     row1(tra("No tasks to display"));
diff --git a/html/user/sample_bootstrap.min.css b/html/user/sample_bootstrap.min.css
new file mode 100644
index 0000000..ed3905e
--- /dev/null
+++ b/html/user/sample_bootstrap.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr [...]
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/html/user/sample_bootstrap.min.js b/html/user/sample_bootstrap.min.js
new file mode 100644
index 0000000..9bcd2fc
--- /dev/null
+++ b/html/user/sample_bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:" [...]
+this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return  [...]
\ No newline at end of file
diff --git a/html/user/sample_index.php b/html/user/sample_index.php
index a40a838..6dd0355 100644
--- a/html/user/sample_index.php
+++ b/html/user/sample_index.php
@@ -1,7 +1,7 @@
 <?php
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2014 University of California
+// Copyright (C) 2008 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -18,10 +18,13 @@
 
 // This is a template for your web site's front page.
 // You are encouraged to customize this file,
-// and to create a graphical identity for your web site
-// my developing your own stylesheet
-// and customizing the header/footer functions in html/project/project.inc
+// and to create a graphical identity for your web site.
+// by customizing the header/footer functions in html/project/project.inc
+// and picking a Bootstrap theme
+//
+// If you add text, put it in tra() to make it translatable.
 
+require_once("../inc/db.inc");
 require_once("../inc/util.inc");
 require_once("../inc/news.inc");
 require_once("../inc/cache.inc");
@@ -29,188 +32,102 @@ require_once("../inc/uotd.inc");
 require_once("../inc/sanitize_html.inc");
 require_once("../inc/text_transform.inc");
 require_once("../project/project.inc");
+require_once("../inc/bootstrap.inc");
 
-check_get_args(array());
+$config = get_config();
+$no_computing = parse_config($config, "<no_computing>");
+$no_web_account_creation = parse_bool($config, "no_web_account_creation");
+    
+$stopped = web_stopped();
+$user = get_logged_in_user(false);
 
-function show_nav() {
-    $config = get_config();
-    $master_url = parse_config($config, "<master_url>");
-    $no_computing = parse_config($config, "<no_computing>");
-    $no_web_account_creation = parse_bool($config, "no_web_account_creation");
-    $disable_acct = parse_bool($config, "disable_account_creation");
-    echo "<div class=\"mainnav\">
-        <h2 class=headline>About ".PROJECT."</h2>
-    ";
-    if ($no_computing) {
-        echo "
-            XXX is a research project that uses volunteers
-            to do research in XXX.
-        ";
-    } else {
-        echo "
-            XXX is a research project that uses Internet-connected
-            computers to do research in XXX.
-            You can participate by downloading and running a free program
-            on your computer.
-        ";
+// The panel at the top of the page
+//
+function panel_contents() {
+}
+
+function top() {
+    global $stopped, $master_url, $user;
+    if ($stopped) {
+        echo '
+            <p class="lead text-center">'
+            .tra("%1 is temporarily shut down for maintenance.", PROJECT)
+            .'</p>
+        ';
     }
-    echo "
-        <p>
-        XXX is based at 
-        [describe your institution, with link to web page]
-        <ul>
-        <li> [Link to page describing your research in detail]
-        <li> [Link to page listing project personnel, and an email address]
-        </ul>
-        <h2 class=headline>Participate</h2>
-        <ul>
-    ";
-    if ($no_computing) {
-        if (!$no_web_account_creation && !$disable_acct) {
+    //panel(null, 'panel_contents');
+}
+
+function left(){
+    global $user, $no_computing, $no_web_account_creation, $master_url;
+    panel(
+        tra("What is %1?", PROJECT),
+        function() use($user) {
+            global $no_computing, $no_web_account_creation, $master_url;
+            if ($no_computing) {
+                echo "
+                    XXX is a research project that uses volunteers
+                    to do research in XXX.
+                ";
+            } else {
+                echo "
+                    <p>
+                    XXX is a research project, based at <a href=#>YYY</a>,
+                    that uses Internet-connected
+                    computers to do research in XXX.
+                    You can contribute to our research
+                    by running a free program on your computer.
+                    </p>
+                ";
+            }
             echo "
-                <li> <a href=\"create_account_form.php\">Create an account</a>
+                <ul>
+                <li> <a href=#>Our research</a>
+                <li> <a href=#>Our team</a>
+                </ul>
             ";
-        } else {
-            echo "<li> This project is not currently accepting new accounts.";
+            echo "</ul>";
+            if (!$user) {
+                if ($no_computing) {
+                    echo "
+                        <a href=\"create_account_form.php\">Create an account</a>
+                    ";
+                } else {
+                    echo '<center><a href="join.php" class="btn btn-success"><font size=+2>'.tra('Join %1', PROJECT).'</font></a></center>
+                    ';
+
+                }
+            }
         }
-    } else {
-        echo "
-            <li><a href=\"info.php\">".tra("Read our rules and policies")."</a>
-        ";
-        if (0) {
-            echo "<li>";
-            show_button("register.php", "Join", null, "btn btn-green");
-        } else {
-            echo "<li> <a href=https://boinc.berkeley.edu/download.php>Download</a> and run BOINC.
-                <li> Choose Add Project
-            ";
+    );
+    global $stopped;
+    if (!$stopped) {
+        $profile = get_current_uotd();
+        if ($profile) {
+            panel('User of the Day',
+                function() use ($profile) {
+                    show_uotd($profile);
+                }
+            );
         }
-        echo "
-            <li> If you have any problems,
-                <a target=\"_new\" href=\"https://boinc.berkeley.edu/wiki/BOINC_Help\">get help here</a>.
-        ";
-    }
-    echo "
-        </ul>
-
-        <h2 class=headline>Returning participants</h2>
-        <ul>
-        <li><a href=\"home.php\">Your account</a> - view stats, modify preferences
-    ";
-    if (!$no_computing) {
-        echo "
-            <li><a href=server_status.php>Server status</a>
-            <li><a href=\"cert1.php\">Certificate</a>
-            <li><a href=\"apps.php\">".tra("Applications")."</a>
-        ";
-    }
-    if (!DISABLE_TEAMS) {
-        echo "
-            <li><a href=\"team.php\">Teams</a> - create or join a team
-        ";
-    }
-    echo "
-        </ul>
-        <h2 class=headline>".tra("Community")."</h2>
-        <ul>
-    ";
-    if (!DISABLE_PROFILES) {
-        echo "
-            <li><a href=\"profile_menu.php\">".tra("Profiles")."</a>
-        ";
-    }
-    echo "
-        <li><a href=\"user_search.php\">User search</a>
-    ";
-    if (!DISABLE_FORUMS) {
-        echo "
-            <li><a href=\"forum_index.php\">".tra("Message boards")."</a>
-            <li><a href=\"forum_help_desk.php\">".tra("Questions and Answers")."</a>
-        ";
     }
-    echo "
-        <li><a href=\"stats.php\">Statistics</a>
-        <li><a href=language_select.php>Languages</a>
-        </ul>
-        </div>
-    ";
 }
 
-$stopped = web_stopped();
-$rssname = PROJECT . " RSS 2.0" ;
-$rsslink = URL_BASE . "rss_main.php";
-
-header("Content-type: text/html; charset=utf-8");
-
-echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
-
-echo "<html>
-    <head>
-    <title>".PROJECT."</title>
-    <link rel=\"stylesheet\" type=\"text/css\" href=\"main.css\" media=\"all\" />
-    <link rel=\"stylesheet\" type=\"text/css\" href=\"".STYLESHEET."\">
-    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"".$rssname."\" href=\"".$rsslink."\">
-";
-include 'schedulers.txt';
-    if (defined("SHORTCUT_ICON")) {
-        echo '<link rel="icon" type="image/x-icon", href="'.SHORTCUT_ICON.'"/>'
-;
-    }
-echo "
-    </head><body>
-    <div class=page_title>".PROJECT."</div>
-";
-
-if (!$stopped) {
-    get_logged_in_user(false);
-    show_login_info();
-}
-
-echo "
-    <table cellpadding=\"8\" cellspacing=\"4\" class=\"table table-bordered\">
-    <tr><td rowspan=\"2\" valign=\"top\" width=\"40%\">
-";
-
-if ($stopped) {
-    echo "
-        <b>".PROJECT." is temporarily shut down for maintenance.
-        Please try again later</b>.
-    ";
-} else {
-    show_nav();
+function right() {
+    panel(tra('News'),
+        function() {
+            include("motd.php");
+            if (!web_stopped()) {
+                show_news(0, 5);
+            }
+        }
+    );
 }
 
-echo "
-    <p>
-    <a href=\"https://boinc.berkeley.edu/\"><img align=\"middle\" border=\"0\" src=\"img/pb_boinc.gif\" alt=\"Powered by BOINC\"></a>
-    </p>
-    </td>
-";
-
-if (!$stopped && !DISABLE_PROFILES) {
-    $profile = get_current_uotd();
-    if ($profile) {
-        echo "
-            <td class=uotd>
-            <h2 class=headline>".tra("User of the day")."</h2>
-        ";
-        show_uotd($profile);
-        echo "</td></tr>\n";
-    }
-}
+page_head(null, null, true);
 
-echo "
-    <tr><td class=news>
-    <h2 class=headline>News</h2>
-    <p>
-";
-include("motd.php");
-show_news(0, 5);
-echo "
-    </td>
-    </tr></table>
-";
+grid('top', 'left', 'right');
 
-page_tail_main();
+page_tail(false, "", true);
 
 ?>
diff --git a/html/user/sample_jquery.min.js b/html/user/sample_jquery.min.js
new file mode 100644
index 0000000..4c5be4c
--- /dev/null
+++ b/html/user/sample_jquery.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElem [...]
+a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d: [...]
+void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b=== [...]
diff --git a/html/user/server_status.php b/html/user/server_status.php
index 083c940..f814dbd 100644
--- a/html/user/server_status.php
+++ b/html/user/server_status.php
@@ -51,30 +51,27 @@ function command_display($cmd) {
     return $prog;
 }
 
-$row_parity = 0;
 function daemon_html($d) {
-    global $row_parity;
     switch ($d->status) {
     case 0:
         $s = tra("Not Running");
-        $c = "notrunning";
+        $c = "bg-danger";
         break;
     case 1:
         $s = tra("Running");
-        $c = "running";
+        $c = "bg-success";
         break;
     default:
         $s = tra("Disabled");
-        $c = "disabled";
+        $c = "bg-warning";
         break;
     }
-    echo "<tr class=row$row_parity>
+    echo "<tr>
         <td>".command_display($d->cmd)."</td>
         <td>$d->host</td>
         <td class=\"$c\"><nobr>$s</nobr></td>
-    <tr>
-";
-    $row_parity = 1-$row_parity;
+        </tr>
+    ";
 }
 
 function daemon_xml($d) {
@@ -98,7 +95,8 @@ function item_xml($name, $val) {
 
 function item_html($name, $val) {
     $name = tra($name);
-    echo "<tr><td align=right>$name</td><td align=right>$val</td></tr>\n";
+    echo "<tr><td>$name</td><td>$val</td></tr>\n";
+    //echo "<tr><td align=right>$name</td><td align=right>$val</td></tr>\n";
 }
 
 function show_status_html($x) {
@@ -106,76 +104,76 @@ function show_status_html($x) {
     $j = $x->jobs;
     $daemons = $x->daemons;
     start_table();
-    echo "<tr><td width=50% valign=top>
-         <h2>".tra("Server status")."</h2>
-    ";
-    start_table();
-    table_header(tra("Program"), tra("Host"), tra("Status"));
-    foreach ($daemons->local_daemons as $d) {
-        daemon_html($d);
-    }
-    foreach ($daemons->remote_daemons as $d) {
-        daemon_html($d);
-    }
-    foreach ($daemons->disabled_daemons as $d) {
-        daemon_html($d);
-    }
-    end_table();
-    if ($j->db_revision) {
-        echo tra("Database schema version: "), $j->db_revision;
-    }
-    if ($daemons->cached_time) {
-        echo "<br>Remote daemon status as of ", time_str($daemons->cached_time);
-    }
-    if ($daemons->missing_remote_status) {
-        echo "<br>Status of remote daemons is missing\n";
-    }
-    if (function_exists('server_status_project_info')) {
-        echo "<br>";
-        server_status_project_info();
-    }
-    echo "</td><td>\n";
-    echo "<h2>".tra("Computing status")."</h2>\n";
-    start_table();
     echo "<tr><td>\n";
-    start_table();
-    table_header(tra("Work"), "#");
-    item_html("Tasks ready to send", $j->results_ready_to_send);
-    item_html("Tasks in progress", $j->results_in_progress);
-    item_html("Workunits waiting for validation", $j->wus_need_validate);
-    item_html("Workunits waiting for assimilation", $j->wus_need_assimilate);
-    item_html("Workunits waiting for file deletion", $j->wus_need_file_delete);
-    item_html("Tasks waiting for file deletion", $j->results_need_file_delete);
-    item_html("Transitioner backlog (hours)", number_format($j->transitioner_backlog, 2));
-    end_table();
+            echo "
+                 <h3>".tra("Server status")."</h3>
+            ";
+            start_table('table-striped');
+            table_header(tra("Program"), tra("Host"), tra("Status"));
+            foreach ($daemons->local_daemons as $d) {
+                daemon_html($d);
+            }
+            foreach ($daemons->remote_daemons as $d) {
+                daemon_html($d);
+            }
+            foreach ($daemons->disabled_daemons as $d) {
+                daemon_html($d);
+            }
+            end_table();
+
+            if ($daemons->cached_time) {
+                echo "<br>Remote daemon status as of ", time_str($daemons->cached_time);
+            }
+            if ($daemons->missing_remote_status) {
+                echo "<br>Status of remote daemons is missing\n";
+            }
+            if (function_exists('server_status_project_info')) {
+                echo "<br>";
+                server_status_project_info();
+            }
     echo "</td><td>\n";
-    start_table();
-    table_header(tra("Users"), "#");
-    item_html("With credit", $j->users_with_credit);
-    item_html("With recent credit", $j->users_with_recent_credit);
-    item_html("Registered in past 24 hours", $j->users_past_24_hours);
-    table_header(tra("Computers"), "#");
-    item_html("With credit", $j->hosts_with_credit);
-    item_html("With recent credit", $j->hosts_with_recent_credit);
-    item_html("Registered in past 24 hours", $j->hosts_past_24_hours);
-    item_html("Current GigaFLOPS", round($j->flops, 2));
-    end_table();
+            echo "<h3>".tra("Computing status")."</h3>\n";
+            echo "<h4>".tra("Work")."</h4>\n";
+            start_table('table-striped');
+            item_html("Tasks ready to send", $j->results_ready_to_send);
+            item_html("Tasks in progress", $j->results_in_progress);
+            item_html("Workunits waiting for validation", $j->wus_need_validate);
+            item_html("Workunits waiting for assimilation", $j->wus_need_assimilate);
+            item_html("Workunits waiting for file deletion", $j->wus_need_file_delete);
+            item_html("Tasks waiting for file deletion", $j->results_need_file_delete);
+            item_html("Transitioner backlog (hours)", number_format($j->transitioner_backlog, 2));
+            end_table();
+            echo "<h4>".tra("Users")."</h4>\n";
+            start_table('table-striped');
+            item_html("With credit", $j->users_with_credit);
+            item_html("With recent credit", $j->users_with_recent_credit);
+            item_html("Registered in past 24 hours", $j->users_past_24_hours);
+            end_table();
+            echo "<h4>".tra("Computers")."</h4>\n";
+            start_table('table-striped');
+            item_html("With credit", $j->hosts_with_credit);
+            item_html("With recent credit", $j->hosts_with_recent_credit);
+            item_html("Registered in past 24 hours", $j->hosts_past_24_hours);
+            item_html("Current GigaFLOPS", round($j->flops, 2));
+            end_table();
+    echo "</td></tr>\n";
     end_table();
-    start_table();
-    echo "<tr><th colspan=5>".tra("Tasks by application")."</th></tr>\n";
+    echo "<h3>".tra("Tasks by application")."</h3>\n";
+    start_table('table-striped');
     table_header(
-        tra("Application"), tra("Unsent"), tra("In progress"),
+        tra("Application"),
+        tra("Unsent"),
+        tra("In progress"),
         tra("Runtime of last 100 tasks in hours: average, min, max"),
         tra("Users in last 24 hours")
     );
-    $i = 0;
     foreach ($j->apps as $app) {
         $avg = round($app->info->avg, 2);
         $min = round($app->info->min, 2);
         $max = round($app->info->max, 2);
         $x = $max?"$avg ($min - $max)":"---";
         $u = $app->info->users;
-        echo "<tr class=row$i>
+        echo "<tr>
             <td>$app->user_friendly_name</td>
             <td>$app->unsent</td>
             <td>$app->in_progress</td>
@@ -183,12 +181,12 @@ function show_status_html($x) {
             <td>$u</td>
             </tr>
         ";
-        $i = 1-$i;
     }
     end_table();
+    if ($j->db_revision) {
+        echo tra("Database schema version: "), $j->db_revision;
+    }
     echo "<p>Task data as of ".time_str($j->cached_time);
-    echo "</td></tr>\n";
-    end_table();
     page_tail();
 }
 
@@ -241,14 +239,24 @@ function show_status_xml($x) {
 ";
 }
 
-function local_daemon_running($cmd) {
-    $cmd = trim($cmd);
-    $x = explode(" ", $cmd);
-    $prog = $x[0];
-    $out = Array();
-    exec("ps -Fw -C $prog", $out);
-    foreach ($out as $y) {
-        if (strstr($y, $cmd)) return 1;
+function local_daemon_running($cmd, $pidname, $host) {
+    if (!$pidname) {
+        $cmd = trim($cmd);
+        $x = explode(" ", $cmd);
+        $prog = $x[0];
+        $pidname = $prog . '.pid';
+    }
+    $path = "../../pid_$host/$pidname";
+    if (is_file($path)) {
+        $pid = file_get_contents($path);
+        if ($pid) {
+            $pid = trim($pid);
+            $out = Array();
+            exec("ps -ww $pid", $out);
+            foreach ($out as $y) {
+                if (strstr($y, (string)$pid)) return 1;
+            }
+        }
     }
     return 0;
 }
@@ -281,6 +289,11 @@ function get_daemon_status() {
     } else {
         $web_host = $main_host;
     }
+    if ($config->sched_host) {
+        $sched_host = trim((string) $config->sched_host);
+    } else {
+        $sched_host = $main_host;
+    }
     $have_remote = false;
     $local_daemons = array();
     $disabled_daemons = array();
@@ -306,7 +319,19 @@ function get_daemon_status() {
         $y = new StdClass;
         $y->cmd = "Upload server";
         $y->host = $h;
-        $y->status = 1;
+        $y->status = !file_exists("../../stop_upload");;
+        $local_daemons[] = $y;
+    } else {
+        $have_remote = true;
+    }
+
+    // Scheduler is a daemon too
+    //
+    if ($sched_host == $main_host) {
+        $y = new StdClass;
+        $y->cmd = "Scheduler";
+        $y->host = $sched_host;
+        $y->status = !file_exists("../../stop_sched");;
         $local_daemons[] = $y;
     } else {
         $have_remote = true;
@@ -329,7 +354,7 @@ function get_daemon_status() {
         }
         $x = new StdClass;
         $x->cmd = (string)$d->cmd;
-        $x->status = local_daemon_running($x->cmd);
+        $x->status = local_daemon_running($x->cmd, trim($d->pid_file), $web_host);
         $x->host = $web_host;
         $local_daemons[] = $x;
 
diff --git a/html/user/set_language.php b/html/user/set_language.php
new file mode 100644
index 0000000..24e94d2
--- /dev/null
+++ b/html/user/set_language.php
@@ -0,0 +1,31 @@
+<?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+require_once("../inc/util.inc");
+require_once("../inc/translation.inc");
+
+$languages = get_supported_languages();
+$lang = sanitize_tags(get_str("lang", true));
+
+if (!in_array($lang, $languages) && $lang!="auto" && $lang!="en") {
+    echo "Language $lang is not supported";
+} else {
+    send_cookie('lang', $lang, true);
+    header('Location: index.php');
+}
+?>
diff --git a/html/user/show_coproc.php b/html/user/show_coproc.php
index 0179495..c232d88 100644
--- a/html/user/show_coproc.php
+++ b/html/user/show_coproc.php
@@ -67,9 +67,8 @@ function header_row($mode) {
     echo "</th><th>CUDA Credit</th><th>Number of CUDA jobs</th></tr>\n";
 }
 
-function show_row($x, $y, $mode, $i) {
-    $class = $i%2?"row0":"row1";
-    echo "<tr class=$class><td>";
+function show_row($x, $y, $mode) {
+    echo "<tr><td>";
     switch ($mode) {
     case 'host':
         echo "<a href=show_host_detail.php?hostid=$x>$x</a>";
@@ -118,12 +117,10 @@ $array = unserialize($data);
 
 page_head(title($mode));
 
-start_table();
+start_table('table-striped');
 header_row($mode);
-$i = 0;
 foreach ($array as $x=>$y) {
-    show_row($x, $y, $mode, $i);
-    $i++;
+    show_row($x, $y, $mode);
 }
 end_table();
 
diff --git a/html/user/site_search.php b/html/user/site_search.php
new file mode 100644
index 0000000..34bfc6c
--- /dev/null
+++ b/html/user/site_search.php
@@ -0,0 +1,38 @@
+<?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+require_once("../inc/util.inc");
+
+function site_search_form($url) {
+    page_head("Site search");
+    echo '
+        <form class="form-inline" method="get" action="https://google.com/search">
+        <input type=hidden name=domains value="'.$url.'">
+        <input type=hidden name=sitesearch value="'.$url.'">
+        <div class="form-group">
+        <input type="text" class="form-control input-sm" name="q" size="20" placeholder="keywords">
+        <input class="btn btn-success form-control input-sm" type="submit" value='.tra("Search").'>
+        </div>
+        </form>
+    ';
+    page_tail();
+}
+
+site_search_form($master_url);
+
+?>
diff --git a/html/user/submit_example.php b/html/user/submit_example.php
index 5f40fbe..452ea35 100644
--- a/html/user/submit_example.php
+++ b/html/user/submit_example.php
@@ -173,7 +173,7 @@ function eligible_apps() {
 // return HTML for a popup menu of apps
 //
 function app_select($apps) {
-    $x = "<select name=app_name>\n";
+    $x = '<select class="form-control" name="app_name">\n';
     foreach ($apps as $app) {
         $x .= "<option value=$app->name>$app->user_friendly_name</option>\n";
     }
diff --git a/html/user/submit_rpc_handler.php b/html/user/submit_rpc_handler.php
index 112b072..8c152f9 100644
--- a/html/user/submit_rpc_handler.php
+++ b/html/user/submit_rpc_handler.php
@@ -37,7 +37,7 @@ function get_wu($name) {
     return $wu;
 }
 
-function get_app($name) {
+function get_submit_app($name) {
     $name = BoincDb::escape_string($name);
     $app = BoincApp::lookup("name='$name'");
     if (!$app) xml_error(-1, "BOINC server: no app named $name was found");
@@ -50,13 +50,18 @@ function get_app($name) {
 //
 function batch_flop_count($r, $template) {
     $x = 0;
-    $t = (double)$template->workunit->rsc_fpops_est;
+    $t = 0;
+    if ($template) {
+        $t = (double)$template->workunit->rsc_fpops_est;
+    }
     foreach($r->batch->job as $job) {
         $y = (double)$job->rsc_fpops_est;
         if ($y) {
             $x += $y;
-        } else {
+        } else if ($t) {
             $x += $t;
+        } else {
+            xml_error(-1, "No rsc_fpops_est given for job");
         }
     }
     return $x;
@@ -79,11 +84,19 @@ function est_elapsed_time($r, $template) {
 
 function read_input_template($app, $r) {
     if ((isset($r->batch)) && (isset($r->batch->workunit_template_file)) && ($r->batch->workunit_template_file)) {
-        $path = "../../templates/".$r->batch->workunit_template_file;
+        $path = project_dir() . "/templates/".$r->batch->workunit_template_file;
+    } else {
+        $path = project_dir() . "/templates/$app->name"."_in";
+    }
+    if (file_exists($path)) {
+        $x = simplexml_load_file($path);
+        if (!$x) {
+            xml_error(-1, "Couldn't parse input template file $path");
+        }
+        return $x;
     } else {
-        $path = "../../templates/$app->name"."_in";
+        return null;
     }
-    return simplexml_load_file($path);
 }
 
 function check_max_jobs_in_progress($r, $user_submit) {
@@ -98,12 +111,15 @@ function check_max_jobs_in_progress($r, $user_submit) {
 }
 
 function estimate_batch($r) {
-    $app = get_app((string)($r->batch->app_name));
+    xml_start_tag("estimate_batch");
+    $app = get_submit_app((string)($r->batch->app_name));
     list($user, $user_submit) = authenticate_user($r, $app);
 
     $template = read_input_template($app, $r);
     $e = est_elapsed_time($r, $template);
-    echo "<estimate>\n<seconds>$e</seconds>\n</estimate>\n";
+    echo "<seconds>$e</seconds>
+        </estimate_batch>
+    ";
 }
 
 function validate_batch($jobs, $template) {
@@ -136,7 +152,7 @@ function stage_file($file) {
         if (!$md5) {
             xml_error(-1, "BOINC server: Can't get MD5 of file $file->source");
         }
-        $name = "jf_$md5";
+        $name = job_file_name($md5);
         $path = dir_hier_path($name, $download_dir, $fanout);
         if (file_exists($path)) return $name;
         if (!copy($file->source, $path)) {
@@ -150,7 +166,7 @@ function stage_file($file) {
         if (!$md5) {
             xml_error(-1, "BOINC server: Can't get MD5 of inline data");
         }
-        $name = "jf_$md5";
+        $name = job_file_name($md5);
         $path = dir_hier_path($name, $download_dir, $fanout);
         if (file_exists($path)) return $name;
         if (!file_put_contents($path, $file->source)) {
@@ -163,7 +179,7 @@ function stage_file($file) {
 
 // stage all the files
 //
-function stage_files(&$jobs, $template) {
+function stage_files(&$jobs) {
     foreach($jobs as $job) {
         foreach ($job->input_files as $file) {
             if ($file->mode != "remote") {
@@ -173,10 +189,18 @@ function stage_files(&$jobs, $template) {
     }
 }
 
+// submit a list of jobs with a single create_work command.
+//
 function submit_jobs(
     $jobs, $template, $app, $batch_id, $priority,
-    $result_template_file = null, $workunit_template_file = null
+    $result_template_file,      // batch-level; can also specify per job
+    $workunit_template_file
 ) {
+    global $wu_templates, $result_templates;
+
+    // make a string to pass to create_work;
+    // one line per job
+    //
     $x = "";
     foreach($jobs as $job) {
         if ($job->name) {
@@ -199,17 +223,26 @@ function submit_jobs(
                 $x .= " $file->name";
             }
         }
+        if ($job->wu_template) {
+            $f = $wu_templates[$job->wu_template];
+            $x .= " --wu_template $f";
+        }
+        if ($job->result_template) {
+            $f = $result_templates[$job->result_template];
+            $x .= " --result_template $f";
+        }
         $x .= "\n";
     }
 
-    $cmd = "cd ../..; ./bin/create_work --appname $app->name --batch $batch_id --rsc_fpops_est $job->rsc_fpops_est --priority $priority";
+    $errfile = "/tmp/create_work_" . getmypid() . ".err";
+    $cmd = "cd " . project_dir() . "; ./bin/create_work --appname $app->name --batch $batch_id --priority $priority";
     if ($result_template_file) {
         $cmd .= " --result_template templates/$result_template_file";
     }
     if ($workunit_template_file) {
         $cmd .= " --wu_template templates/$workunit_template_file";
     }
-    $cmd .= " --stdin";
+    $cmd .= " --stdin >$errfile 2>&1";
     $h = popen($cmd, "w");
     if ($h === false) {
         xml_error(-1, "BOINC server: can't run create_work");
@@ -217,10 +250,67 @@ function submit_jobs(
     fwrite($h, $x);
     $ret = pclose($h);
     if ($ret) {
-        xml_error(-1, "BOINC server: create_work failed");
+        $err = file_get_contents($errfile);
+        unlink($errfile);
+        xml_error(-1, "BOINC server: create_work failed: $err");
+    }
+    unlink($errfile);
+}
+
+// lists of arrays for job-level templates;
+// each maps template to filename
+//
+$wu_templates = array();
+$result_templates = array();
+
+// The job specifies an input template.
+// Check whether the template is already in our map.
+// If not, write it to a temp file.
+//
+function make_wu_template($job) {
+    global $wu_templates;
+    if (!array_key_exists($job->wu_template, $wu_templates)) {
+        $f = tempnam("/tmp", "wu_template_");
+        //echo "writing wt $f\n";
+        file_put_contents($f, $job->wu_template);
+        $wu_templates[$job->wu_template] = $f;
+    //} else {
+    //    echo "dup wu template\n";
     }
 }
 
+// same for output templates.
+// A little different because these have to exist for life of job.
+// Store them in templates/tmp/, with content-based filenames
+//
+function make_result_template($job) {
+    global $result_templates;
+    if (!array_key_exists($job->result_template, $result_templates)) {
+        $m = md5($job->result_template);
+        $filename = "templates/tmp/$m";
+        $path = "../../$filename";
+        if (!file_exists($filename)) {
+            @mkdir("../../templates/tmp");
+            file_put_contents($path, $job->result_template);
+        }
+        $result_templates[$job->result_template] = $filename;
+    //} else {
+    //    echo "dup result template\n";
+    }
+}
+
+// delete per-job WU templates after creating jobs.
+// (we can't delete result templates)
+//
+function delete_wu_templates() {
+    global $wu_templates;
+    foreach ($wu_templates as $t => $f) {
+        unlink($f);
+    }
+}
+
+// convert job list from XML nodes to our own objects
+//
 function xml_get_jobs($r) {
     $jobs = array();
     foreach($r->batch->job as $j) {
@@ -232,6 +322,14 @@ function xml_get_jobs($r) {
         $job->target_host = (int)$j->target_host;
         $job->name = (string)$j->name;
         $job->rsc_fpops_est = (double)$j->rsc_fpops_est;
+        $job->wu_template = null;
+        if ($j->wu_template) {
+            $job->wu_template = $j->wu_template->input_template->asXML();
+        }
+        $job->result_template = null;
+        if ($j->result_template) {
+            $job->result_template = $j->result_template->output_template->asXML();
+        }
         foreach ($j->input_file as $f) {
             $file = new StdClass;
             $file->mode = (string)$f->mode;
@@ -245,17 +343,26 @@ function xml_get_jobs($r) {
             $job->input_files[] = $file;
         }
         $jobs[] = $job;
+        if ($job->wu_template) {
+            make_wu_template($job);
+        }
+        if ($job->result_template) {
+            make_result_template($job);
+        }
     }
     return $jobs;
 }
 
 function submit_batch($r) {
-    $app = get_app((string)($r->batch->app_name));
+    xml_start_tag("submit_batch");
+    $app = get_submit_app((string)($r->batch->app_name));
     list($user, $user_submit) = authenticate_user($r, $app);
-    $template = read_input_template($app, $r);
     $jobs = xml_get_jobs($r);
-    validate_batch($jobs, $template);
-    stage_files($jobs, $template);
+    $template = read_input_template($app, $r);
+    if ($template) {
+        validate_batch($jobs, $template);
+    }
+    stage_files($jobs);
     $njobs = count($jobs);
     $now = time();
     $batch_id = (int)($r->batch->batch_id);
@@ -289,7 +396,7 @@ function submit_batch($r) {
             }
         }
     }
-    $cmd = "cd ../../bin; ./adjust_user_priority --user $user->id --flops $total_flops --app $app->name";
+    $cmd = "cd " . project_dir() . "/bin; ./adjust_user_priority --user $user->id --flops $total_flops --app $app->name";
     $x = exec($cmd);
     if (!is_numeric($x) || (double)$x == 0) {
         xml_error(-1, "BOINC server: $cmd returned $x");
@@ -335,14 +442,19 @@ function submit_batch($r) {
     $ret = $batch->update("state= ".BATCH_STATE_IN_PROGRESS);
     if (!$ret) xml_error(-1, "BOINC server: batch->update() failed");
 
-    echo "<batch_id>$batch_id</batch_id>\n";
+    echo "<batch_id>$batch_id</batch_id>
+        </submit_batch>
+    ";
+
+    delete_wu_templates();
 }
 
 function create_batch($r) {
-    $app = get_app((string)($r->batch->app_name));
+    xml_start_tag("create_batch");
+    $app = get_submit_app((string)($r->app_name));
     list($user, $user_submit) = authenticate_user($r, $app);
     $now = time();
-    $batch_name = (string)($r->batch->batch_name);
+    $batch_name = (string)($r->batch_name);
     $batch_name = BoincDb::escape_string($batch_name);
     $expire_time = (double)($r->expire_time);
     $batch_id = BoincBatch::insert(
@@ -351,10 +463,12 @@ function create_batch($r) {
     if (!$batch_id) {
         xml_error(-1, "BOINC server: Can't create batch: ".BoincDb::error());
     }
-    echo "<batch_id>$batch_id</batch_id>\n";
+    echo "<batch_id>$batch_id</batch_id>
+        </create_batch>
+    ";
 }
 
-function print_batch_params($batch) {
+function print_batch_params($batch, $get_cpu_time) {
     $app = BoincApp::lookup_id($batch->app_id);
     if (!$app) $app->name = "none";
     echo "
@@ -372,30 +486,91 @@ function print_batch_params($batch) {
         <name>$batch->name</name>
         <app_name>$app->name</app_name>
 ";
+    if ($get_cpu_time) {
+        echo "        <total_cpu_time>".$batch->get_cpu_time()."</total_cpu_time>\n";
+    }
 }
 
 function query_batches($r) {
+    xml_start_tag("query_batches");
     list($user, $user_submit) = authenticate_user($r, null);
     $batches = BoincBatch::enum("user_id = $user->id");
-    echo "<batches>\n";
+    $get_cpu_time = (int)($r->get_cpu_time);
     foreach ($batches as $batch) {
+        if ($batch->state == BATCH_STATE_RETIRED) continue;
         if ($batch->state < BATCH_STATE_COMPLETE) {
             $wus = BoincWorkunit::enum("batch = $batch->id");
             $batch = get_batch_params($batch, $wus);
         }
         echo "    <batch>\n";
-        print_batch_params($batch);
+        print_batch_params($batch, $get_cpu_time);
         echo "   </batch>\n";
     }
-    echo "</batches>\n";
+    echo "</query_batches>\n";
 }
 
 function n_outfiles($wu) {
-    $path = "../../$wu->result_template_file";
+    $path = project_dir() . "/$wu->result_template_file";
     $r = simplexml_load_file($path);
     return count($r->file_info);
 }
 
+// show status of job.
+// done:
+// unsent:
+// in_progress:
+// error:
+
+function show_job_details($wu) {
+    if ($wu->error_mask && WU_ERROR_COULDNT_SEND_RESULT) {
+        echo "   <error>couldnt_send_result</error>\n";
+    }
+    if ($wu->error_mask && WU_ERROR_TOO_MANY_ERROR_RESULTS) {
+        echo "   <error>too_many_error_results</error>\n";
+    }
+    if ($wu->error_mask && WU_ERROR_TOO_MANY_SUCCESS_RESULTS) {
+        echo "   <error>too_many_success_results</error>\n";
+    }
+    if ($wu->error_mask && WU_ERROR_TOO_MANY_TOTAL_RESULTS) {
+        echo "   <error>too_many_total_results</error>\n";
+    }
+    if ($wu->error_mask && WU_ERROR_CANCELLED) {
+        echo "   <error>cancelled</error>\n";
+    }
+    if ($wu->error_mask && WU_ERROR_NO_CANONICAL_RESULT) {
+        echo "   <error>no_canonical_result</error>\n";
+    }
+    $results = BoincResult::enum("workunitid=$wu->id");
+    $in_progress = 0;
+    foreach ($results as $r) {
+        switch ($r->server_state) {
+        case RESULT_SERVER_STATE_IN_PROGRESS:
+            $in_progress++;
+            break;
+        }
+        if ($wu->error_mask && $r->outcome == RESULT_OUTCOME_CLIENT_ERROR) {
+            echo "            <exit_status>$r->exit_status</exit_status>\n";
+        }
+        if ($r->id == $wu->canonical_resultid) {
+            echo "            <cpu_time>$r->cpu_time</cpu_time>\n";
+        }
+    }
+    if ($wu->error_mask) {
+        echo "            <status>error</status>\n";
+        return;
+    }
+
+    if ($wu->canonical_resultid) {
+        echo "            <status>done</status>\n";
+    } else {
+        if ($in_progress > 0) {
+            echo "            <status>in_progress</status>\n";
+        } else {
+            echo "            <status>queued</status>\n";
+        }
+    }
+}
+
 // return a batch specified by the command, using either ID or name
 //
 function get_batch($r) {
@@ -414,33 +589,48 @@ function get_batch($r) {
 }
 
 function query_batch($r) {
+    xml_start_tag("query_batch");
     list($user, $user_submit) = authenticate_user($r, null);
     $batch = get_batch($r);
     if ($batch->user_id != $user->id) {
         xml_error(-1, "BOINC server: not owner of batch");
     }
 
-    $wus = BoincWorkunit::enum("batch = $batch->id");
+    $wus = BoincWorkunit::enum("batch = $batch->id", "order by id");
     $batch = get_batch_params($batch, $wus);
-    echo "<batch>\n";
-    print_batch_params($batch);
-    $n_outfiles = n_outfiles($wus[0]);
+    $get_cpu_time = (int)($r->get_cpu_time);
+    $get_job_details = (int)($r->get_job_details);
+    print_batch_params($batch, $get_cpu_time);
     foreach ($wus as $wu) {
-        echo "    <job>
+        echo "        <job>
         <id>$wu->id</id>
         <name>$wu->name</name>
         <canonical_instance_id>$wu->canonical_resultid</canonical_instance_id>
-        <n_outfiles>$n_outfiles</n_outfiles>
-        </job>
 ";
+        // does anyone need this?
+        //
+        if (0) {
+            $n_outfiles = n_outfiles($wu);
+            echo "     <n_outfiles>$n_outfiles</n_outfiles>\n";
+        }
+
+        if ($get_job_details) {
+            show_job_details($wu);
+        }
+        echo "        </job>\n";
     }
-    echo "</batch>\n";
+    echo "</query_batch>\n";
+}
+
+function results_sent($wu) {
+    return BoincResult::count("workunitid=$wu->id and sent_time>0");
 }
 
 // variant for Condor, which doesn't care about job instances
 // and refers to batches by name
 //
 function query_batch2($r) {
+    xml_start_tag("query_batch2");
     list($user, $user_submit) = authenticate_user($r, null);
     $batch_names = $r->batch_name;
     $batches = array();
@@ -466,17 +656,24 @@ function query_batch2($r) {
 
     $t = dtime();
     echo "<server_time>$t</server_time>\n";
-    echo "<jobs>\n";
     foreach ($batches as $batch) {
         $wus = BoincWorkunit::enum("batch = $batch->id $mod_time_clause");
         echo "   <batch_size>".count($wus)."</batch_size>\n";
+
+        // job status is:
+        // DONE if done
+        // ERROR if error
+        // IN_PROGRESS if at least one instance sent
+        // QUEUED if no instances sent
         foreach ($wus as $wu) {
             if ($wu->canonical_resultid) {
                 $status = "DONE";
             } else if ($wu->error_mask) {
                 $status = "ERROR";
-            } else {
+            } else if (results_sent($wu) > 0) {
                 $status = "IN_PROGRESS";
+            } else {
+                $status = "UNSENT";
             }
             echo
 "    <job>
@@ -486,10 +683,11 @@ function query_batch2($r) {
 ";
         }
     }
-    echo "</jobs>\n";
+    echo "</query_batch2>\n";
 }
 
 function query_job($r) {
+    xml_start_tag("query_job");
     list($user, $user_submit) = authenticate_user($r, null);
     $job_id = (int)($r->job_id);
     $wu = BoincWorkunit::lookup_id($job_id);
@@ -498,7 +696,6 @@ function query_job($r) {
     if ($batch->user_id != $user->id) {
         xml_error(-1, "not owner");
     }
-    echo "<job>\n";
     $results = BoincResult::enum("workunitid=$job_id");
     foreach ($results as $result) {
         echo "    <instance>
@@ -520,7 +717,7 @@ function query_job($r) {
         }
         echo "</instance>\n";
     }
-    echo "</job>\n";
+    echo "</query_job>\n";
 }
 
 // the following for Condor.
@@ -529,6 +726,7 @@ function query_job($r) {
 // (possibly crashed) and return its info.
 //
 function query_completed_job($r) {
+    xml_start_tag("query_completed_job");
     list($user, $user_submit) = authenticate_user($r, null);
     $job_name = (string)($r->job_name);
     $job_name = BoincDb::escape_string($job_name);
@@ -567,22 +765,28 @@ function query_completed_job($r) {
         echo htmlspecialchars($result->stderr_out);
         echo "   ]]></stderr_out>\n";
     }
-    echo "</completed_job>\n";
+    echo "</completed_job>
+        </query_completed_job>
+    ";
 }
 
 function handle_abort_batch($r) {
+    xml_start_tag("abort_batch");
     list($user, $user_submit) = authenticate_user($r, null);
     $batch = get_batch($r);
     if ($batch->user_id != $user->id) {
         xml_error(-1, "not owner");
     }
     abort_batch($batch);
-    echo "<success>1</success>";
+    echo "<success>1</success>
+        </abort_batch>
+    ";
 }
 
 // handle the abort of jobs possibly belonging to different batches
 //
 function handle_abort_jobs($r) {
+    xml_start_tag("abort_jobs");
     list($user, $user_submit) = authenticate_user($r, null);
     $batch = null;
     foreach ($r->job_name as $job_name) {
@@ -603,20 +807,26 @@ function handle_abort_jobs($r) {
         echo "<aborted $job_name>\n";
         abort_workunit($wu);
     }
-    echo "<success>1</success>";
+    echo "<success>1</success>
+        </abort_jobs>
+    ";
 }
 
 function handle_retire_batch($r) {
+    xml_start_tag("retire_batch");
     list($user, $user_submit) = authenticate_user($r, null);
     $batch = get_batch($r);
     if ($batch->user_id != $user->id) {
         xml_error(-1, "not owner");
     }
     retire_batch($batch);
-    echo "<success>1</success>";
+    echo "<success>1</success>
+        </retire_batch>
+    ";
 }
 
 function handle_set_expire_time($r) {
+    xml_start_tag("set_expire_time");
     list($user, $user_submit) = authenticate_user($r, null);
     $batch = get_batch($r);
     if ($batch->user_id != $user->id) {
@@ -628,12 +838,14 @@ function handle_set_expire_time($r) {
     } else {
         xml_error(-1, "update failed");
     }
+    echo "</set_expire_time>\n";
 }
 
 function get_templates($r) {
+    xml_start_tag("get_templates");
     $app_name = (string)($r->app_name);
     if ($app_name) {
-        $app = get_app($app_name);
+        $app = get_submit_app($app_name);
     } else {
         $job_name = (string)($r->job_name);
         $wu = get_wu($job_name);
@@ -641,17 +853,34 @@ function get_templates($r) {
     }
 
     list($user, $user_submit) = authenticate_user($r, $app);
-    $in = file_get_contents("../../templates/".$app->name."_in");
-    $out = file_get_contents("../../templates/".$app->name."_out");
+    $in = file_get_contents(project_dir() . "/templates/".$app->name."_in");
+    $out = file_get_contents(project_dir() . "/templates/".$app->name."_out");
     if ($in === false || $out === false) {
         xml_error(-1, "template file missing");
     }
-    echo "<templates>\n$in\n$out\n</templates>\n";
+    echo "<templates>\n$in\n$out\n</templates>
+        </get_templates>
+    ";
 }
 
 function ping($r) {
+    xml_start_tag("ping");
     BoincDb::get();     // errors out if DB down or web disabled
-    echo "<success>1</success>";
+    echo "<success>1</success>
+        </ping>
+    ";
+}
+
+if (0) {
+$r = simplexml_load_string("
+<query_batch2>
+    <authenticator>x</authenticator>
+    <batch_name>batch_30</batch_name>
+    <batch_name>batch_31</batch_name>
+</query_batch2>
+");
+query_batch2($r);
+exit;
 }
 
 if (0) {
@@ -698,13 +927,25 @@ estimate_batch($r);
 exit;
 }
 
-if (0) {
-    require_once("submit_test.inc");
+$request_log = parse_config(get_config(), "<remote_submission_log>");
+if ($request_log) {
+    $request_log_dir = parse_config(get_config(), "<log_dir>");
+    if ($request_log_dir) {
+        $request_log = $request_log_dir . "/" . $request_log;
+    }
+    if ($file = fopen($request_log, "a+")) {
+        fwrite($file, "\n<submit_rpc_handler date=\"" . date(DATE_ATOM) . "\">\n" . $_POST['request'] . "\n</submit_rpc_handler>\n");
+        fclose($file);
+    }
 }
 
 xml_header();
-$r = simplexml_load_string($_POST['request']);
-
+if (0) {
+    $r = file_get_contents("submit_req.xml");
+} else {
+    $r = $_POST['request'];
+}
+$r = simplexml_load_string($r);
 if (!$r) {
     xml_error(-1, "can't parse request message");
 }
diff --git a/html/user/submit_status.php b/html/user/submit_status.php
index 2b0661b..3862285 100644
--- a/html/user/submit_status.php
+++ b/html/user/submit_status.php
@@ -34,10 +34,9 @@ function show_batch($user) {
     }
     page_head("Batch $batch->id");
     $results = BoincResult::enum("batch=$batch->id order by workunitid");
-    $i = 0;
     result_table_start(true, true, null);
     foreach ($results as $result) {
-        show_result_row($result, true, true, true, $i++);
+        show_result_row($result, true, true, true);
     }
     end_table();
     page_tail();
diff --git a/html/user/submit_test.php b/html/user/submit_test.php
new file mode 100644
index 0000000..a058d76
--- /dev/null
+++ b/html/user/submit_test.php
@@ -0,0 +1,64 @@
+<?php
+require_once("submit.inc");
+
+// tests for remote job submission interfaces
+//
+// you must have a file "config.txt":
+// line 0: project URL
+// line 1: authenticator
+//
+// you must run this in a dir with a link to submit.inc
+
+// TODO: add more tests
+
+// for this test, you must have
+// - an app "uppercase"
+// - templates uppercase_in and uppercase_out
+// - a staged file "input"
+//
+function test_submit_batch($req) {
+    $req->app_name = "uppercase";
+    $req->jobs = array();
+
+    $f = new StdClass;
+    $f->mode = "local_staged";
+    $f->source = "input";
+
+    $job = new StdClass;
+    $job->input_files = array($f);
+
+    for ($i=10; $i<20; $i++) {
+        $job->rsc_fpops_est = $i*1e9;
+        $job->command_line = "--t $i";
+        $req->jobs[] = $job;
+    }
+
+    list($batch_id, $errmsg) = boinc_submit_batch($req);
+    if ($errmsg) {
+        echo "Error: $errmsg\n";
+    } else {
+        echo "Batch ID: $batch_id\n";
+    }
+}
+
+function test_query_batch($req, $id) {
+    $req->batch_id = $id;
+    $req->get_cpu_time = true;
+    list($r, $errmsg) = boinc_query_batch($req);
+    if ($errmsg) {
+        echo "Error: $errmsg\n";
+    } else {
+        print_r($r);
+    }
+}
+
+$config = file("config.txt");
+$project = trim($config[0]);
+$auth = trim($config[1]);
+
+$req = new StdClass;
+$req->project = $project;
+$req->authenticator = $auth;
+
+//test_submit_batch($req);
+test_query_batch($req, 267);
diff --git a/html/user/team.php b/html/user/team.php
index 445a776..9f37cc3 100644
--- a/html/user/team.php
+++ b/html/user/team.php
@@ -32,7 +32,6 @@ echo "<p>".tra("%1 participants may form %2teams%3.", PROJECT, "<b>", "</b>") ."
     <p>" .
     tra("Each team has a %1founder%2 who may:", "<b>", "</b>") . "
     <ul>
-    <li> " . tra("access team members' email addresses") . "
     <li> " . tra("edit the team's name and description") . "
     <li> " . tra("add or remove team admins") . "
     <li> " . tra("remove members from the team") . "
diff --git a/html/user/team_admins.php b/html/user/team_admins.php
index d63c8c6..57365db 100644
--- a/html/user/team_admins.php
+++ b/html/user/team_admins.php
@@ -44,6 +44,7 @@ function show_admins($user, $teamid) {
         <ul>
         <li>".tra("Edit team information (name, URL, description, country)")."
         <li>".tra("View the team's join/quit history")."
+        <li>".tra("Send messages to the team")."
         <li>".tra("Moderate the team forum, if any (admins get email notification of moderation events and red X reports)")."
         </ul>
         ".tra("Team Admins cannot:")."
@@ -77,8 +78,8 @@ function show_admins($user, $teamid) {
     echo form_tokens($user->authenticator);
     start_table();
     row1(tra("Add Team Admin"));
-    row2(tra("Email address of team member:"), "<input name=email_addr>");
-    row2("", "<input class=\"btn btn-default\" type=submit action value=\"".tra("Add")."\">");
+    row2(tra("Email address of team member:"), '<input class="form-control" name="email_addr">');
+    row2("", "<input class=\"btn btn-success\" type=submit action value=\"".tra("Add")."\">");
     end_table();
     echo "</form>";
 
diff --git a/html/user/team_change_founder_form.php b/html/user/team_change_founder_form.php
index 470799f..e93bbd4 100644
--- a/html/user/team_change_founder_form.php
+++ b/html/user/team_change_founder_form.php
@@ -68,19 +68,25 @@ if ($team->ping_user != 0) {
     echo tra("No transfer request is pending.")."<br /><br />";
 }
 
-echo tra("To assign foundership of this team to another member, check the box next to member name and click <strong>Change founder</strong> below.")
+echo tra("To assign foundership of this team to another member, check the box next to member name and click %1Change founder%2 below.", '<strong>', '</strong>')
     ."<form method=post action=team_change_founder_action.php>
-    <input type=hidden name=teamid value=$team->id>";
+    <input type=hidden name=teamid value=$team->id>
+";
 echo form_tokens($user->authenticator);
+echo "<p></p>";
 
 start_table();
-echo "<tr>
-    <th>".tra("New founder?")."</th>
-    <th>".tra("Name")."</th>
-    <th>".tra("Total credit")."</th>
-    <th>".tra("Recent average credit")."</th>
-    </tr>
-";
+row_heading_array(
+    array(
+        tra("New founder?"),
+        tra("Name"),
+        tra("Total credit"),
+        tra("Recent average credit"),
+    ),
+    array(
+        null, null, ALIGN_RIGHT, ALIGN_RIGHT
+    )
+);
 
 $users = BoincUser::enum("teamid=$team->id");
 
@@ -92,7 +98,7 @@ foreach ($users as $user) {
         $selected = ($user->id == $team->ping_user)?"selected":"";
         echo '
             <tr>
-            <td align="center"><input type="radio" name="userid" value="'.$user->id.'">
+            <td><input type="radio" name="userid" value="'.$user->id.'">
             <td>'.$user->name.'</td>
             <td align=right>'.$user_total_credit.'</td>
             <td align=right>'.$user_expavg_credit.'</td>
@@ -104,7 +110,7 @@ foreach ($users as $user) {
 if ($navailable_users > 0) {
     echo "<input type=hidden name=navailable_users value=$navailable_users>";
     end_table();
-    echo "<input class=\"btn btn-default\" type=submit value=\"".tra("Change founder")."\">";
+    echo "<input class=\"btn btn-success\" type=submit value=\"".tra("Change founder")."\">";
 } else {
     echo "<tr>
         <td colspan='4'>".tra("There are no users to transfer team to.")."</td>
diff --git a/html/user/team_create_action.php b/html/user/team_create_action.php
index 266fe8c..30e9e1b 100644
--- a/html/user/team_create_action.php
+++ b/html/user/team_create_action.php
@@ -19,13 +19,32 @@
 require_once("../inc/boinc_db.inc");
 require_once("../inc/util.inc");
 require_once("../inc/team.inc");
+require_once("../inc/recaptchalib.php");
 
 if (DISABLE_TEAMS) error_page("Teams are disabled");
 
+if (parse_bool(get_config(), "disable_team_creation")) {
+    error_page("team creation disabled");
+}
+
 check_get_args(array());
 
 $user = get_logged_in_user();
 
+if (@constant('TEAM_CREATE_NEED_CREDIT')) {
+    if ($user->total_credit == 0) {
+        error_page("You must complete a task to create a team");
+    }
+}
+
+if ($recaptcha_private_key) {
+    if (!boinc_recaptcha_isValidated($recaptcha_private_key)) {
+        error_page(
+            tra("Your reCAPTCHA response was not correct. Please try again.")
+        );
+    }
+}
+
 $name = post_str("name", true); 
 if (strlen($name) == 0) {
     error_page(tra("You must choose a non-blank team name"));
diff --git a/html/user/team_create_form.php b/html/user/team_create_form.php
index bee7444..57bf671 100644
--- a/html/user/team_create_form.php
+++ b/html/user/team_create_form.php
@@ -19,6 +19,7 @@
 require_once("../inc/boinc_db.inc");
 require_once("../inc/util.inc");
 require_once("../inc/team.inc");
+require_once("../inc/recaptchalib.php");
 
 if (DISABLE_TEAMS) error_page("Teams are disabled");
 
@@ -26,9 +27,17 @@ check_get_args(array());
 
 $user = get_logged_in_user();
 
-page_head(tra("Create a team"));
-if ($user->teamid) {
-    $team = BoincTeam::lookup_id($user->teamid);
+if (@constant('TEAM_CREATE_NEED_CREDIT')) {
+    if ($user->total_credit == 0) {
+        error_page("You must complete a task to create a team");
+    }
+}
+
+page_head(
+    tra("Create a team"), null, null, null, boinc_recaptcha_get_head_extra()
+);
+
+if ($user->teamid && ($team = BoincTeam::lookup_id($user->teamid))) {
     echo tra("You belong to %1. You must %2quit this team%3 before creating a new one.", "<a href=\"team_display.php?teamid=".$team->id."\">".$team->name."</a>", "<a href=\"team_quit_form.php\">", "</a>");
 } else {
     team_edit_form(null, tra("Create a team"), "team_create_action.php");
diff --git a/html/user/team_delta.php b/html/user/team_delta.php
index 551901b..9ab03b7 100644
--- a/html/user/team_delta.php
+++ b/html/user/team_delta.php
@@ -72,13 +72,14 @@ if ($xml) {
 } else {
     page_head(tra("Team history for %1", $team->name));
     start_table();
-    echo "<tr>
-        <th>".tra("When")."</th>
-        <th>".tra("User")."</th>
-        <th>".tra("Action")."</th>
-        <th>".tra("Total credit at time of action")."</th>
-        </tr>
-    ";
+    row_heading_array(
+        array(
+            tra("When"),
+            tra("User"),
+            tra("Action"),
+            tra("Total credit at time of action"),
+        )
+    );
 }
 $deltas = BoincTeamDelta::enum("teamid=$teamid order by timestamp");
 foreach($deltas as $delta) {
diff --git a/html/user/team_display.php b/html/user/team_display.php
index 2ea89ed..1190da4 100644
--- a/html/user/team_display.php
+++ b/html/user/team_display.php
@@ -27,6 +27,9 @@ check_get_args(array("teamid"));
 
 $teamid = get_int("teamid");
 $team = BoincTeam::lookup_id($teamid);
+if (!$team) {
+    error_page("no such team");
+}
 
 $get_from_db = false;
 
diff --git a/html/user/team_email_list.php b/html/user/team_email_list.php
index 5963cf4..e38dae8 100644
--- a/html/user/team_email_list.php
+++ b/html/user/team_email_list.php
@@ -16,6 +16,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// Show member list.
+// Name is outdated; don't show emails any more
+
 require_once("../inc/boinc_db.inc");
 require_once("../inc/util.inc");
 require_once("../inc/email.inc");
@@ -34,6 +37,7 @@ if (DISABLE_TEAMS) {
     }
 }
 
+BoincDb::get(true);
 if ($xml) {
     $creditonly = get_int('creditonly', true);
     xml_header();
@@ -44,15 +48,11 @@ if ($xml) {
     if (!$team) {
         xml_error(ERR_DB_NOT_FOUND);
     }
-    $account_key = get_str('account_key', true);
-    $user = BoincUser::lookup_auth($account_key);
-    $show_email = ($user && is_team_founder($user, $team));
     echo "<users>\n";
     $users = BoincUser::enum_fields("id, email_addr, send_email, name, total_credit, expavg_credit, expavg_time, has_profile, donated, country, cross_project_id, create_time, url", "teamid=$team->id");
-    //$users = BoincUser::enum("teamid=$team->id");
     foreach($users as $user) {
-        show_team_member($user, $show_email, $creditonly);
-    } 
+        show_team_member($user, $creditonly);
+    }
     echo "</users>\n";
     exit();
 }
@@ -67,21 +67,27 @@ require_founder_login($user, $team);
 if ($plain) {
     header("Content-type: text/plain");
 } else {
-    page_head(tra("%1 Email List", $team->name));
-    start_table();
-    table_header(array(tra("Member list of %1", $team->name), "colspan=\"6\""));
-    table_header(tra("Name"), tra("Email address"), tra("Total credit"), tra("Recent average credit"), tra("Country"));
+    page_head(tra("Members of %1", $team->name));
+    start_table('table-striped');
+    row_heading_array(
+        array(
+            tra("Name"),
+            tra("ID"),
+            tra("Total credit"),
+            tra("Recent average credit"),
+            tra("Country")
+        )
+    );
 }
+
 $users = BoincUser::enum_fields("id, email_addr, send_email, name, total_credit, expavg_credit, has_profile, donated, country, cross_project_id, create_time, url", "teamid=$team->id");
 foreach($users as $user) {
     if ($plain) {
-        $e = $user->send_email?"<$user->email_addr>":"";
-        echo "$user->name $e\n";
+        echo "$user->name $user->id\n";
     } else {
-        $e = $user->send_email?"$user->email_addr":"";
-        table_row(user_links($user, BADGE_HEIGHT_MEDIUM), $e, format_credit($user->total_credit), format_credit($user->expavg_credit), $user->country);
+        table_row(user_links($user, BADGE_HEIGHT_MEDIUM), $user->id, format_credit($user->total_credit), format_credit($user->expavg_credit), $user->country);
     }
-} 
+}
 if (!$plain) {
     end_table();
     echo "<p><a href=\"team_email_list.php?teamid=".$teamid."&plain=1\">".tra("Show as plain text")."</a></p>";
diff --git a/html/user/team_forum.php b/html/user/team_forum.php
index 88e97ab..93214ce 100644
--- a/html/user/team_forum.php
+++ b/html/user/team_forum.php
@@ -68,23 +68,29 @@ function edit_form($user, $team, $forum, $first) {
     start_table();
     if (!strlen($forum->title)) $forum->title = $team->name;
     if (!strlen($forum->description)) $forum->description = tra("Discussion among members of %1", $team->name);
-    row2(tra("Title"), "<input name=title size=80 value=\"$forum->title\">");
-    row2(tra("Description"), "<textarea name=description>$forum->description</textarea>");
+    row2(
+        tra("Title"),
+        '<input class="form-control" name="title" value="'.$forum->title.'">'
+    );
+    row2(tra("Description"),
+        '<textarea name="description" class="form-control">'.$forum->description.'</textarea>'
+    );
     row2(tra("Minimum time between posts (seconds)"),
-        "<input name=post_min_interval value=$forum->post_min_interval>"
+        '<input class="form-control" name="post_min_interval" value="'.$forum->post_min_interval.'">'
     );
     row2(tra("Minimum total credit to post"),
-        "<input name=post_min_total_credit value=$forum->post_min_total_credit>"
+        '<input class="form-control" name="post_min_total_credit" value="'.$forum->post_min_total_credit.'">'
     );
     row2(tra("Minimum average credit to post"),
-        "<input name=post_min_expavg_credit value=$forum->post_min_expavg_credit>"
+        '<input class="form-control" name="post_min_expavg_credit" value="'.$forum->post_min_expavg_credit.'">'
     );
-    row2("", "<input class=\"btn btn-default\" type=submit value=".tra("Submit").">");
+    row2("", "<input class=\"btn btn-success\" type=submit value=".tra("Submit").">");
     end_table();
     echo "
         </form>
     ";
     if (!$first) {
+        $tokens = url_tokens($user->authenticator);
         echo "
             <p>
             <a href=team_forum.php?teamid=$team->id&cmd=remove_confirm$tokens>
diff --git a/html/user/team_founder_transfer_action.php b/html/user/team_founder_transfer_action.php
index d8e2017..051bff0 100644
--- a/html/user/team_founder_transfer_action.php
+++ b/html/user/team_founder_transfer_action.php
@@ -38,27 +38,26 @@ if (!$user->teamid) {
     error_page(tra("You must be a member of a team to access this page."));
 }
 
-function send_founder_transfer_email($team, $user) {
-    $founder = BoincUser::lookup_id($team->userid);
+function send_founder_transfer_email($team, $user, $founder) {
 
     // send founder a private message for good measure
 
     $subject = "Team founder transfer request";
     $body = "Team member ".$user->name." has asked that you
 transfer foundership of $team->name.
-Please go [url=".URL_BASE."team_change_founder_form.php?teamid=$team->id]here[/url] to grant or decline the request.
+Please go [url=".secure_url_base()."team_change_founder_form.php?teamid=$team->id]here[/url] to grant or decline the request.
     
 If you do not respond within 60 days, ".$user->name." will
 be allowed to become the team founder.
 ";
 
-    pm_send($user, $founder, $subject, $body, false);
+    pm_send_msg($user, $founder, $subject, $body, false);
 
     $subject = PROJECT." team founder transfer";
     $body = "Team member ".$user->name." has asked that you
 transfer foundership of $team->name in ".PROJECT.".
 Please visit
-".URL_BASE."team_change_founder_form.php?teamid=".$team->id."
+".secure_url_base()."team_change_founder_form.php?teamid=".$team->id."
 to grant or decline the request.
     
 If you do not respond within 60 days, ".$user->name." will
@@ -87,10 +86,19 @@ $action = post_str("action");
 switch ($action) {
 case "initiate_transfer":
     $team = BoincTeam::lookup_id($user->teamid);
+    $founder = BoincUser::lookup_id($team->userid);
+    if (!$founder) {
+        // no founder - request is granted immediately
+        //
+        $team->update("userid=$user->id");
+        page_head("Team founder request granted");
+        echo "You are now the founder of $team->name<p>";
+        break;
+    }
     $now = time();
     if (new_transfer_request_ok($team, $now)) {
         page_head(tra("Requesting foundership of %1", $team->name));
-        $success = send_founder_transfer_email($team, $user);
+        $success = send_founder_transfer_email($team, $user, $founder);
 
         // Go ahead with the transfer even if the email send fails.
         // Otherwise it would be impossible to rescue a team
@@ -110,7 +118,7 @@ case "finalize_transfer":
     if ($user->id == $team->ping_user && transfer_ok($team, $now)) {
         page_head(tra("Assumed foundership of %1", $team->name));
         $team->update("userid=$user->id, ping_user=0, ping_time=0");
-        echo tra("Congratulations, you are now the founder of team %1. Go to %2Your Account page%3 to find the Team Admin options.", $team->name, "<a href=\"".URL_BASE."home.php\">", "</a>");
+        echo tra("Congratulations, you are now the founder of team %1. Go to %2Your Account page%3 to find the Team Admin options.", $team->name, "<a href=\"".secure_url_base()."home.php\">", "</a>");
     } else {
         error_page(tra("Foundership request not allowed now"));
     }
diff --git a/html/user/team_lookup.php b/html/user/team_lookup.php
index 718894b..a94a2a2 100644
--- a/html/user/team_lookup.php
+++ b/html/user/team_lookup.php
@@ -28,6 +28,8 @@ $format = get_str("format", true);
 $team_id = get_int("team_id", true);
 $team_ids = get_str("team_ids", true);
 
+BoincDb::get(true);
+
 if ($team_id || $team_ids || ($format == 'xml')) {
     require_once ('../inc/xml.inc');
     xml_header();
diff --git a/html/user/team_manage.php b/html/user/team_manage.php
index b73818e..4bd6671 100644
--- a/html/user/team_manage.php
+++ b/html/user/team_manage.php
@@ -30,11 +30,13 @@ function show_admin_page($user, $team) {
         <ul>
         <li><a href=team_edit_form.php?teamid=$team->id>".tra("Edit team info")."</a>
             <br><p class=\"text-muted\">".tra("Change team name, URL, description, type, or country")."</p>
+        <li><a href=pm.php?action=new&teamid=$team->id>".tra("Send message to team")."</a>
         <li>
             ".tra("Member list:")."
         <a href=team_email_list.php?teamid=$team->id>".tra("HTML")."</a>
         · <a href=team_email_list.php?teamid=$team->id&plain=1>".tra("text")."</a>
-            <br><p class=\"text-muted\">".tra("View member names and email addresses")."</p>
+        · <a href=team_email_list.php?teamid=$team->id&xml=1>".tra("XML")."</a>
+            <br><p class=\"text-muted\">".tra("View member info")."</p>
         <li>".tra("View change history:")."
             <a href=team_delta.php?teamid=$team->id>".tra("HTML")."</a>
             · <a href=team_delta.php?teamid=$team->id&xml=1>".tra("XML")."</a>
diff --git a/html/user/team_remove_inactive_form.php b/html/user/team_remove_inactive_form.php
index 8cd2169..94c0826 100644
--- a/html/user/team_remove_inactive_form.php
+++ b/html/user/team_remove_inactive_form.php
@@ -37,13 +37,14 @@ echo "
     <input type=\"hidden\" name=\"id\" value=\"".$team->id."\">
 ";
 start_table();
-echo "<tr>
-    <th>".tra("Remove?")."</th>
-    <th>".tra("Name (ID)")."</th>
-    <th>".tra("Total credit")."</th>
-    <th>".tra("Recent average credit")."</th>
-    </tr>
-";
+row_heading_array(
+    array(
+        tra("Remove?"),
+        tra("Name (ID)"),
+        tra("Total credit"),
+        tra("Recent average credit"),
+    )
+);
 
 $users = BoincUser::enum("teamid=$team->id");
 $ninactive_users = 0;
@@ -54,7 +55,7 @@ foreach($users as $user) {
     $user_expavg_credit = format_credit($user->expavg_credit);
     echo "
         <tr>
-        <td align=center><input type=checkbox name=remove_$ninactive_users value=$user->id>
+        <td><input type=checkbox name=remove_$ninactive_users value=$user->id>
         <td>".user_links($user, BADGE_HEIGHT_MEDIUM)." ($user->id)</td>
         <td>$user_total_credit</td>
         <td>$user_expavg_credit</td>
diff --git a/html/user/team_search.php b/html/user/team_search.php
index 86097e2..3a99b08 100644
--- a/html/user/team_search.php
+++ b/html/user/team_search.php
@@ -42,7 +42,7 @@ function merge_lists($list1, &$list2, $weight) {
     }
 }
 
-function compare($t1, $t2) {
+function compare_teams($t1, $t2) {
     if ($t1->refcnt > $t2->refcnt) return -1;
     if ($t1->refcnt < $t2->refcnt) return 1;
     if ($t1->rnd > $t2->rnd) return -1;
@@ -56,7 +56,7 @@ function sort_list(&$list) {
     foreach ($list as $a=>$b) {
         $b->rnd = rand();
     }
-    usort($list, 'compare');
+    usort($list, 'compare_teams');
 }
 
 function get_teams($clause, $active) {
@@ -70,26 +70,28 @@ function get_teams($clause, $active) {
 }
 
 function show_list($list) {
-    start_table();
-    echo "
-        <tr>
-        <th>".tra("Team name")."</th>
-    ";
+    start_table('table-striped');
+    $x = array();
+    $a = array();
+    $x[] = tra("Team name");
+    $a[] = null;
     if (defined("SHOW_NONVALIDATED_TEAMS")) {
-        echo "<th>Validated?</th>\n";
+        $x[] = tra("Validated?");
+        $a[] = null;
     }
-    echo "
-        <th>".tra("Description")."</th>
-        <th>".tra("Average credit")."</th>
-        <th>".tra("Type")."</th>
-        <th>".tra("Country")."</th>
-        </tr>
-    ";
-    $i = 0;
+    $x[] = tra("Description");
+    $a[] = null;
+    $x[] = tra("Average credit");
+    $a[] = ALIGN_RIGHT;
+    $x[] = tra("Type");
+    $a[] = null;
+    $x[] = tra("Country");
+    $a[] = null;
+    row_heading_array($x, $a);
+
     foreach ($list as $team) {
         $type = team_type_name($team->type);
-        $j = $i++ % 2;
-        echo "<tr class=row$j>
+        echo "<tr>
             <td><a href=team_display.php?teamid=$team->id>$team->name</a></td>
         ";
         if (defined("SHOW_NONVALIDATED_TEAMS")) {
@@ -100,7 +102,7 @@ function show_list($list) {
         }
         echo "
             <td><p class=\"text-muted\">".sanitize_html($team->description)."</p></td>
-            <td>".format_credit($team->expavg_credit)."</td>
+            <td align=right>".format_credit($team->expavg_credit)."</td>
             <td>$type</td>
             <td>$team->country</td>
             </tr>
@@ -198,7 +200,7 @@ if ($submit || $xml) {
         show_teams_html($list, $params);
     }
 } else {
-    page_head(tra("Find a team"), 'document.form.keywords.focus()');
+    page_head(tra("Find a team"), 'onload="document.form.keywords.focus()"');
     echo tra("You can team up with other people with similar interests, or from the same country, company, or school.")
         ."<p>"
         .tra("Use this form to find teams that might be right for you.")
diff --git a/html/user/top_hosts.php b/html/user/top_hosts.php
index aef32bc..2867b54 100644
--- a/html/user/top_hosts.php
+++ b/html/user/top_hosts.php
@@ -42,14 +42,6 @@ function get_top_hosts($offset, $sort_by) {
     return BoincHost::enum(null, "order by $sort_order limit $offset, $hosts_per_page");
 }
 
-function hosts_to_store($participants){
-    return serialize($participants);
-}
-
-function store_to_hosts($data){
-    return unserialize($data);
-}
-
 $sort_by = get_str("sort_by", true);
 switch ($sort_by) {
 case "total_credit":
@@ -70,10 +62,10 @@ if ($offset >= ITEM_LIMIT) {
 $cache_args = "sort_by=$sort_by&offset=$offset";
 $cacheddata = get_cached_data(TOP_PAGES_TTL, $cache_args);
 if ($cacheddata){
-    $data = store_to_hosts($cacheddata);
+    $data = unserialize($cacheddata);
 } else {
     $data = get_top_hosts($offset,$sort_by);
-    set_cached_data(TOP_PAGES_TTL, hosts_to_store($data), $cache_args);
+    set_cached_data(TOP_PAGES_TTL, serialize($data), $cache_args);
 };
 
 
@@ -87,12 +79,14 @@ foreach($data as $host) {
     show_host_row($host, $i, false, true, false);
     $i++;
 }
-echo "</table>\n<p>";
+end_table();
+
 if ($offset > 0) {
     $new_offset = $offset - $hosts_per_page;
     echo "<a href=top_hosts.php?sort_by=$sort_by&offset=$new_offset>".tra("Previous %1", $hosts_per_page)."</a> · ";
 
 }
+
 if ($n==$hosts_per_page){ //If we aren't on the last page
     $new_offset = $offset + $hosts_per_page;
     echo "<a href=top_hosts.php?sort_by=$sort_by&offset=$new_offset>".tra("Next %1", $hosts_per_page)."</a>";
diff --git a/html/user/top_teams.php b/html/user/top_teams.php
index 4e72c04..94e3efa 100644
--- a/html/user/top_teams.php
+++ b/html/user/top_teams.php
@@ -47,16 +47,6 @@ function get_top_teams($offset, $sort_by, $type){
     return BoincTeam::enum($type_clause, "order by $sort_order limit $offset, $teams_per_page");
 }
 
-// These converter functions are here in case we later decide to use something 
-// else than serializing to save temp data
-//
-function teams_to_store($participants){
-    return serialize($participants);
-}
-function store_to_teams($data){
-    return unserialize($data);
-}
-
 $sort_by = get_str("sort_by", true);
 switch ($sort_by) {
 case "total_credit":
@@ -86,7 +76,7 @@ if ($offset < ITEM_LIMIT) {
     $cacheddata = get_cached_data(TOP_PAGES_TTL,$cache_args);
     //If we have got the data in cache
     if ($cacheddata){
-        $data = store_to_teams($cacheddata); // use the cached data
+        $data = unserialize($cacheddata); // use the cached data
     } else {
         //if not do queries etc to generate new data
         $data = get_top_teams($offset,$sort_by,$type);
@@ -96,7 +86,7 @@ if ($offset < ITEM_LIMIT) {
             $team->nusers = team_count_members($team->id);
         }
         //save data in cache
-        set_cached_data(TOP_PAGES_TTL, teams_to_store($data), $cache_args);
+        set_cached_data(TOP_PAGES_TTL, serialize($data), $cache_args);
     }
 } else {
     error_page(tra("Limit exceeded - Sorry, first %1 items only", ITEM_LIMIT));
@@ -104,12 +94,13 @@ if ($offset < ITEM_LIMIT) {
 
 
 // Now display what we've got (either gotten from cache or from DB)
+//
 page_head(tra("Top %1 teams", $type_name));
 
 if (count($data) == 0) {
     echo tra("There are no %1 teams", $type_name);
 } else {
-    start_table();
+    start_table('table-striped');
     team_table_start($sort_by, $type_url);
     $i = 1 + $offset;
     $n = sizeof($data);
@@ -117,7 +108,8 @@ if (count($data) == 0) {
         show_team_row($team, $i);
         $i++;
     }
-    echo "</table>\n<p>";
+    end_table();
+    echo "<p>";
     if ($offset > 0) {
         $new_offset = $offset - $teams_per_page;
         echo "<a href=top_teams.php?sort_by=$sort_by&offset=$new_offset".$type_url.">".tra("Previous %1", $teams_per_page)."</a> · ";
diff --git a/html/user/top_users.php b/html/user/top_users.php
index 1383aaa..e3df1f8 100644
--- a/html/user/top_users.php
+++ b/html/user/top_users.php
@@ -42,34 +42,26 @@ function get_top_participants($offset, $sort_by) {
 }
 
 function user_table_start($sort_by) {
-    start_table();
-    echo "
-        <tr>
-        <th>".tra("Rank")."</th>
-        <th>".tra("Name")."</th>
-    ";
+    start_table('table-striped');
+    $x = array();
+    $x[] = tra("Rank");
+    $x[] = tra("Name");
     if ($sort_by == "total_credit") {
-        echo "
-            <th><a href=top_users.php?sort_by=expavg_credit>".tra("Recent average credit")."</a></th>
-            <th>".tra("Total credit")."</th>
-        ";
+        $x[] = "<a href=top_users.php?sort_by=expavg_credit>".tra("Recent average credit")."</a>";
+        $x[] = tra("Total credit");
     } else {
-        echo "
-            <th>".tra("Recent average credit")."</th>
-            <th><a href=top_users.php?sort_by=total_credit>".tra("Total credit")."</a></th>
-        ";
+        $x[] = tra("Recent average credit");
+        $x[] = "<a href=top_users.php?sort_by=total_credit>".tra("Total credit")."</a>";
     }
-    echo "
-        <th>".tra("Country")."</th>
-        <th>".tra("Participant since")."</th>
-        </tr>
-    ";
+    $x[] = tra("Country");
+    $x[] = tra("Participant since");
+    $a = array(null, null, ALIGN_RIGHT, ALIGN_RIGHT, null, null);
+    row_heading_array($x, $a);
 }
 
 function show_user_row($user, $i) {
-    $j = $i % 2;
     echo "
-        <tr class=row$j>
+        <tr>
         <td>$i</td>
         <td>", user_links($user, BADGE_HEIGHT_MEDIUM), "</td>
         <td align=right>", format_credit_large($user->expavg_credit), "</td>
@@ -122,7 +114,9 @@ foreach ($data as $user) {
     show_user_row($user, $i);
     $i++;
 }
-echo "</table>\n<p>";
+
+end_table();
+
 if ($offset > 0) {
     $new_offset = $offset - $users_per_page;
     echo "<a href=top_users.php?sort_by=$sort_by&offset=$new_offset>".tra("Previous %1", $users_per_page)."</a> · ";
diff --git a/html/user/uotd.php b/html/user/uotd.php
index c793194..5d1cca9 100644
--- a/html/user/uotd.php
+++ b/html/user/uotd.php
@@ -28,6 +28,7 @@ db_init();
 
 $profile = get_current_uotd();
 if (!$profile) {
+    page_head("No UOTD");
     echo tra("No user of the day has been chosen.");
 } else {
     $d = gmdate("d F Y", time());
diff --git a/html/user/uotd_gadget.php b/html/user/uotd_gadget.php
index caedd9b..2da343f 100644
--- a/html/user/uotd_gadget.php
+++ b/html/user/uotd_gadget.php
@@ -33,7 +33,7 @@ echo "
                    computing project ".PROJECT."\"
      height=\"100\"
   /> 
-  <Content type=\"url\" href=\"".URL_BASE."user_profile/uotd_gadget.html\" /> 
+  <Content type=\"url\" href=\"".secure_url_base()."user_profile/uotd_gadget.html\" /> 
 </Module>
 ";
 
diff --git a/html/user/user_permissions.php b/html/user/user_permissions.php
index b989f3a..802777c 100644
--- a/html/user/user_permissions.php
+++ b/html/user/user_permissions.php
@@ -24,7 +24,7 @@ function user_permissions_form() {
     global $special_user_bitfield;
     page_head('Manage user privileges');
 
-    start_table();
+    start_table('table-striped');
     row1("Current special users", 99);
 
     echo "<tr><th>User</th>";
@@ -38,9 +38,8 @@ function user_permissions_form() {
         FROM forum_preferences as prefs, user 
         WHERE CONVERT(special_user, DECIMAL) > 0 and prefs.userid=user.id"
     );
-    $i = 0;
     while ($foo = _mysql_fetch_object($result)) {
-        echo "<tr class=row$i>
+        echo "<tr>
             <td>$foo->name ($foo->id)</td>
             <form action=\"user_permissions.php\" method=\"POST\">
             <input type=\"hidden\" name=\"userid\" value=\"$foo->userid\">
@@ -55,11 +54,10 @@ function user_permissions_form() {
         }
         echo "<td><input class=\"btn btn-default\" type=\"submit\" value=\"Update\"></td>";
         echo "</form></tr>\n";
-        $i = 1 - $i;
     }
 
     echo "
-        <tr class=row$i>
+        <tr>
         <form action=\"user_permissions.php\" method=\"POST\">
         <td>Add User ID:<input type=\"text\" name=\"userid\" size=\"6\"></td>
     ";
diff --git a/html/user/user_search.php b/html/user/user_search.php
index 3225ae9..f4e9ba2 100644
--- a/html/user/user_search.php
+++ b/html/user/user_search.php
@@ -22,7 +22,7 @@ require_once("../inc/user.inc");
 
 function show_user($user) {
     echo "
-        <tr class=row1>
+        <tr>
         <td>", user_links($user, BADGE_HEIGHT_MEDIUM), " (ID $user->id)</td>
     ";
     if ($user->teamid) {
@@ -42,32 +42,35 @@ function show_user($user) {
     ";
 }
 
-function search_form() {
+function user_search_form() {
     page_head("User search");
     echo "<form name=f method=get action=user_search.php>
         <input type=hidden name=action value=search>
     ";
     start_table();
     row1(tra("Filters"), 2, "heading");
-    row2(tra("User name starts with"), "<input type=text name=search_string>");
-    row2_init(tra("Country"), "<select name=country><option value=\"any\" selected>".tra("Any")."</option>");
-    print_country_select("asdf");
+    row2(
+        tra("User name starts with"),
+        '<input class="form-control" type="text" name="search_string">'
+    );
+    row2_init(tra("Country"), "<select class=\"form-control\" name=\"country\"><option value=\"any\" selected>".tra("Any")."</option>");
+    echo country_select_options("asdf");
     echo "</select></td></tr>";
     row2(tra("With profile?"),
         "<input type=radio name=profile value=either checked=1> ".tra("Either")."
-        <input type=radio name=profile value=no> ".tra("No")."
-        <input type=radio name=profile value=yes> ".tra("Yes")."
+         <input type=radio name=profile value=no> ".tra("No")."
+         <input type=radio name=profile value=yes> ".tra("Yes")."
     ");
     row2(tra("On a team?"),
         "<input type=radio name=team value=either checked=1> ".tra("Either")."
-        <input type=radio name=team value=no> ".tra("No")."
-        <input type=radio name=team value=yes> ".tra("Yes")."
+         <input type=radio name=team value=no> ".tra("No")."
+         <input type=radio name=team value=yes> ".tra("Yes")."
     ");
     row1(tra("Ordering"), 2, "heading");
     row2(tra("Decreasing sign-up time"), "<input type=radio name=search_type value=\"date\" checked>");
     row2(tra("Decreasing average credit"), "<input type=radio name=search_type value=\"rac\">");
     row2(tra("Decreasing total credit"), "<input type=radio name=search_type value=\"total\">");
-    row2("", "<input class=\"btn btn-default\" type=submit name=action value=".tra("Search").">");
+    row2("", "<input class=\"btn btn-success\" type=submit name=action value=".tra("Search").">");
     end_table();
     echo "
         <script>document.f.search_string.focus()</script>
@@ -119,10 +122,17 @@ function search_action() {
     $n=0;
     foreach ($users as $user) {
         if ($n==0) {
-            start_table();
-            table_header(
-                tra("Name"), tra("Team"), tra("Average credit"),
-                tra("Total credit"), tra("Country"), tra("Joined")
+            start_table('table-striped');
+            row_heading_array(
+                array(
+                    tra("Name"),
+                    tra("Team"),
+                    tra("Average credit"),
+                    tra("Total credit"),
+                    tra("Country"),
+                    tra("Joined")
+                ),
+                array(null, null, ALIGN_RIGHT, ALIGN_RIGHT, null, null)
             );
         }
         show_user($user);
@@ -139,7 +149,7 @@ $action = get_str('action', true);
 if ($action) {
     search_action();
 } else {
-    search_form();
+    user_search_form();
 }
 
 $cvs_version_tracker[]="\$Id: user_search.php 13586 2007-09-13 09:46:36Z Rytis $";  //Generated automatically - do not edit
diff --git a/html/user/validate_email_addr.php b/html/user/validate_email_addr.php
index 0b80dc9..2c51fa6 100644
--- a/html/user/validate_email_addr.php
+++ b/html/user/validate_email_addr.php
@@ -59,7 +59,7 @@ function validate() {
     page_tail();
 }
 
-if ($_GET['validate']) {
+if (get_str('validate', true)) {
     validate();
 } else {
     send_validate_email();
diff --git a/html/user/weak_auth.php b/html/user/weak_auth.php
index 5b0ce18..7526622 100644
--- a/html/user/weak_auth.php
+++ b/html/user/weak_auth.php
@@ -19,8 +19,6 @@
 require_once("../inc/util.inc");
 require_once("../inc/user.inc");
 
-$url = parse_config(get_config(), "<master_url>");
-
 $user = get_logged_in_user();
 page_head(tra("Account keys"));
 
@@ -30,9 +28,11 @@ $weak_auth = weak_auth($user);
 
 // strip http://
 //
-$idx = strpos($url, '://');
+$idx = strpos($master_url, '://');
 if ($idx) {
-    $url = substr($url, $idx+strlen('://'));
+    $url = substr($master_url, $idx+strlen('://'));
+} else {
+    $url = $master_url;
 }
 
 // convert invalid characters into underscores
@@ -65,7 +65,7 @@ echo "<table><tr><td>",
     <pre>",
     htmlspecialchars(
 "<account>
-    <master_url>".URL_BASE."</master_url>
+    <master_url>".$master_url."</master_url>
     <authenticator>".$weak_auth."</authenticator>
 </account>"),
     "</pre>
diff --git a/html/user/workunit.php b/html/user/workunit.php
index 8c1a4eb..34cf318 100644
--- a/html/user/workunit.php
+++ b/html/user/workunit.php
@@ -73,9 +73,8 @@ if ($app->target_nresults>0 && !$wu->canonical_resultid && !$wu->error_mask && !
 
     result_table_start(false, true, null);
     $results = BoincResult::enum("workunitid=$wuid");
-    $i = 0;
     foreach ($results as $result) {
-        show_result_row($result, false, true, false, $i++);
+        show_result_row($result, false, true, false);
     }
     echo "</table>\n";
 }
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 985ef59..7b00871 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -29,6 +29,7 @@ libfcgi_sources = \
     msg_log.cpp \
     opencl_boinc.cpp \
     parse.cpp \
+	sched_msgs.cpp \
     shmem.cpp \
     str_util.cpp \
     synch.cpp \
@@ -62,6 +63,7 @@ generic_sources = \
     proc_control.cpp \
     project_init.cpp \
     proxy_info.cpp \
+	sched_msgs.cpp \
     shmem.cpp \
     str_util.cpp \
     url.cpp \
@@ -151,6 +153,7 @@ pkginclude_HEADERS = \
     prefs.h \
     procinfo.h \
     proxy_info.h \
+	sched_msgs.h \
     stackwalker_imports.h \
     str_util.h \
     url.h \
@@ -173,7 +176,7 @@ lib_LTLIBRARIES = libboinc.la
 libboinc_la_SOURCES = $(generic_sources) $(mac_sources) $(win_sources)
 libboinc_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
 libboinc_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
-libboinc_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
+libboinc_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
 libboinc_la_LIBADD =
 
 if ENABLE_BOINCCRYPT
@@ -181,7 +184,7 @@ lib_LTLIBRARIES += libboinc_crypt.la
 libboinc_crypt_la_SOURCES = crypt.cpp
 libboinc_crypt_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CFLAGS)
 libboinc_crypt_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CXXFLAGS)
-libboinc_crypt_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
+libboinc_crypt_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
 libboinc_crypt_la_LIBADD =
 endif
 
@@ -190,7 +193,7 @@ lib_LTLIBRARIES += libboinc_fcgi.la
 libboinc_fcgi_la_SOURCES = $(libfcgi_sources) $(mac_sources) $(win_sources)
 libboinc_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
 libboinc_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
-libboinc_fcgi_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
+libboinc_fcgi_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
 libboinc_fcgi_la_LIBADD =
 endif 
 # end of "if ENABLE_FCGI"
diff --git a/lib/Makefile.mingw b/lib/Makefile.mingw
index 0ce05c6..23a0caa 100644
--- a/lib/Makefile.mingw
+++ b/lib/Makefile.mingw
@@ -6,6 +6,13 @@ BOINC_PREFIX ?= /usr/local
 # set this for the BOINC sourc directory. This default should work for calling from within lib/ or api/
 BOINC_SRC ?= ..
 
+# if MINGW is set, define all used tools based on that
+ifdef MINGW
+    CC     = $(MINGW)-gcc
+    CXX    = $(MINGW)-g++
+    AR     = $(MINGW)-ar
+    RANLIB = $(MINGW)-ranlib
+endif
 
 # headers to install
 HEADERS = $(BOINC_SRC)/version.h \
@@ -37,7 +44,6 @@ HEADERS = $(BOINC_SRC)/version.h \
 
 ZIP_HEADERS = zip/boinc_zip.h
 
-
 # objects to compile
 
 API_OBJ = boinc_api.o graphics2_util.o
@@ -107,6 +113,13 @@ ZIP_OBJ = zip/boinc_zip.o \
 	zip/zipfile.o \
 	zip/zipup.o
 
+REGEXP_OBJS = \
+	regexp.o \
+	regsub.o \
+	regerror.o \
+	regexp_memory.o \
+	regexp_report.o
+
 # libraries to build
 API_BIN = libboinc_api.a
 API_LIB = libboinc_api.la
@@ -140,10 +153,15 @@ CCXXFLAGS = $(INCS) $(DEBUG) --include $(BOINC_SRC)/version.h -DEINSTEINATHOME_C
 	-DNODB -D_CONSOLE -fexceptions $(OPTFLAGS) $(NOCYGWIN)
 
 # flags for compiling boinc_zip
-BOINC_ZIP_VCPROJ_FLAGS = -DWIN32 -D_LIB -DDLL -D_CRT_SECURE_NO_WARNINGS -DNO_MKTEMP -DUSE_ZIPMAIN -DNO_CRYPT \
-	-DIZ_PWLEN=80 -DNO_ASM -DNO_UNICODE_SUPPORT -Dinflate=inflate_boinc -Ddeflate=deflate_boinc \
-	-Dget_crc_table=get_crc_table_boinc -Dlongest_match=longest_match_boinc -Dinflate_codes=inflate_codes_boinc
-ZIP_FLAGS = $(BOINC_ZIP_VCPROJ_FLAGS) -DUSE_MINGW_GLOBBING -DUSE_STRM_INPUT $(INCS) -O2 $(NOCYGWIN)
+ZIP_VCPROJ_FLAGS = -DWIN32 -D_LIB -DDLL -D_CRT_SECURE_NO_WARNINGS -DNO_MKTEMP -DUSE_ZIPMAIN -DNO_CRYPT \
+	-DIZ_PWLEN=80 -DNO_ASM -DNO_UNICODE_SUPPORT -DNO_MBCS
+ZIP_BOINC_RENAMES = \
+	-Dinflate=inflate_boinc \
+	-Ddeflate=deflate_boinc \
+	-Dget_crc_table=get_crc_table_boinc \
+	-Dlongest_match=longest_match_boinc \
+	-Dinflate_codes=inflate_codes_boinc
+ZIP_FLAGS = $(ZIP_VCPROJ_FLAGS) $(ZIP_BOINC_RENAMES) -DUSE_MINGW_GLOBBING -DUSE_STRM_INPUT $(INCS) -O2 $(NOCYGWIN)
 
 # LDFLAGS = -lwinmm 
 
@@ -160,14 +178,21 @@ all-la: $(BIN) $(API_LIB)
 .PHONY: boinc_zip
 boinc_zip: $(ZIP_BIN)
 
+# The MinGW 64Bit msvcrt library doesn't export __p___mb_cur_max(), so
+# we need to hack our own in this case. However this is only needed for
+# boinc_zip, which is compiled without Unicode/MBCS support, so a function
+# that alway returns 2 (as max character length) should be more than safe.
+# The source file is in zip/zip.
+ZIP_MINGW64_FIX ?= $(if $(findstring x86_64-w64-mingw32,$(CXX)),zip/__p___mb_cur_max.o,)
+
 .PHONY: wrapper
 wrapper: wrapper.exe
-wrapper.exe: wrapper.o regexp.o regsub.o regerror.o regexp_memory.o regexp_report.o $(API_BIN) $(LIB_BIN) $(ZIP_BIN)
+wrapper.exe: wrapper.o $(REGEXP_OBJS) $(API_BIN) $(LIB_BIN) $(ZIP_BIN) $(ZIP_MINGW64_FIX)
 	 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ -lpsapi
 
 # set to the target tools when cross-compiling
 RANLIB ?= ranlib
-LIBTOOL ?= libtool
+LIBTOOL ?= $(BOINC_SRC)/libtool
 
 # rules for the indivisual libraries
 $(API_LIB): $(API_LOBJ)
@@ -250,4 +275,4 @@ uninstall:
 	( cd $(BOINC_PREFIX)/lib && $(RM) -f $(BIN) $(API_BIN) $(API_LIB) || exit 0 )
 
 clean:
-	${RM} -rf $(OBJ) $(BIN) $(API_BIN) $(API_LIB) .libs $(ZIP_BIN)
+	${RM} -rf *.o $(BIN) $(API_BIN) $(API_LIB) $(OCL_BIN) $(LIB_BIN) $(GPH_BIN) .libs $(ZIP_BIN) zip $(REGEXP_OBJS) wrapper.o wrapper.exe
diff --git a/lib/app_ipc.cpp b/lib/app_ipc.cpp
index 8627c27..1ef96a3 100644
--- a/lib/app_ipc.cpp
+++ b/lib/app_ipc.cpp
@@ -25,10 +25,6 @@
 #include <string>
 #endif
 
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
-
 #include "error_numbers.h"
 #include "filesys.h"
 #include "miofile.h"
@@ -40,10 +36,6 @@
 
 #include "app_ipc.h"
 
-#if !defined(HAVE_STRDUP) && defined(HAVE__STRDUP)
-#define strdup _strdup
-#endif
-
 using std::string;
 
 APP_INIT_DATA::APP_INIT_DATA() {
@@ -256,20 +248,20 @@ void APP_INIT_DATA::clear() {
     minor_version = 0;
     release = 0;
     app_version = 0;
-    strcpy(app_name, "");
-    strcpy(symstore, "");
-    strcpy(acct_mgr_url, "");
+    safe_strcpy(app_name, "");
+    safe_strcpy(symstore, "");
+    safe_strcpy(acct_mgr_url, "");
     project_preferences = NULL;
     userid = 0;
     teamid = 0;
     hostid = 0;
-    strcpy(user_name, "");
-    strcpy(team_name, "");
-    strcpy(project_dir, "");
-    strcpy(boinc_dir, "");
-    strcpy(wu_name, "");
-    strcpy(result_name, "");
-    strcpy(authenticator, "");
+    safe_strcpy(user_name, "");
+    safe_strcpy(team_name, "");
+    safe_strcpy(project_dir, "");
+    safe_strcpy(boinc_dir, "");
+    safe_strcpy(wu_name, "");
+    safe_strcpy(result_name, "");
+    safe_strcpy(authenticator, "");
     slot = 0;
     client_pid = 0;
     user_total_credit = 0;
@@ -293,7 +285,7 @@ void APP_INIT_DATA::clear() {
     checkpoint_period = 0;
     // gpu_type is an empty string for client versions before 6.13.3 without this
     // field or (on newer clients) if BOINC did not assign an OpenCL GPU to task.
-    strcpy(gpu_type, "");
+    safe_strcpy(gpu_type, "");
     // gpu_device_num < 0 for client versions before 6.13.3 without this field
     // or (on newer clients) if BOINC did not assign an OpenCL GPU to task.
     gpu_device_num = -1;
diff --git a/lib/app_ipc.h b/lib/app_ipc.h
index 3ec4a1b..334785b 100644
--- a/lib/app_ipc.h
+++ b/lib/app_ipc.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _APP_IPC_
-#define _APP_IPC_
+#ifndef BOINC_APP_IPC_H
+#define BOINC_APP_IPC_H
 
 #ifdef __cplusplus
 
diff --git a/lib/base64.h b/lib/base64.h
index e2f11dc..0a4ad0e 100644
--- a/lib/base64.h
+++ b/lib/base64.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef h_BASE64
-#define h_BASE64
+#ifndef BOINC_BASE64_H
+#define BOINC_BASE64_H
 
 #ifndef _WIN32
 #include <cstdio>
@@ -28,12 +28,18 @@ class InvalidBase64Exception
 {
 };
 
-std::string r_base64_encode (const char* from, size_t length);
-  std::string r_base64_decode (const char* from, size_t length);
-inline std::string r_base64_decode (std::string const& from)
+
+std::string r_base64_encode(const char* from, size_t length);
+std::string r_base64_decode(const char* from, size_t length);
+
+
+inline std::string r_base64_encode(std::string const& from)
+{
+    return r_base64_encode(from.c_str(), from.length());
+}
+inline std::string r_base64_decode(std::string const& from)
 {
     return r_base64_decode(from.c_str(), from.length());
 }
 
-
 #endif
diff --git a/lib/boinc_fcgi.h b/lib/boinc_fcgi.h
index 735684d..7159a12 100644
--- a/lib/boinc_fcgi.h
+++ b/lib/boinc_fcgi.h
@@ -35,6 +35,7 @@
 #undef feof
 #undef perror
 #endif
+
 #ifndef BOINC_FCGI_H
 #define BOINC_FCGI_H
 
diff --git a/lib/boinc_win.h b/lib/boinc_win.h
index 9227f1f..58e516a 100644
--- a/lib/boinc_win.h
+++ b/lib/boinc_win.h
@@ -15,17 +15,41 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// boinc_win.h : include file for standard system include files,
-// or project specific include files that are used frequently,
-// but are changed infrequently
+// boinc_win.h : include file for Windows builds.
+// Includes standard system include files,
+// and aliases function names like getpid -> _getpid
+//
+// ?? Is this only for Visual Studio, or for MINGW too?
+// comments below are contradictory
+
+#ifndef BOINC_BOINC_WIN_H
+#define BOINC_BOINC_WIN_H
 
-#ifndef _BOINC_WIN_
-#define _BOINC_WIN_
+#ifdef _MSC_VER
+#pragma warning(disable: 4996)  // deprecated function names
+#pragma warning(disable: 4127)  // constant conditional expression
+#pragma warning(disable: 4244)  // conversion from int to char
+#define getpid _getpid
+#define getcwd      _getcwd
+#define strdate     _strdate
+#define strdup _strdup
+#define stricmp     _stricmp
+#define strtime     _strtime
+#if _MSC_VER < 1900
+#define snprintf _snprintf
+#endif
+#endif
+
+#ifdef __MINGW32__
+#define strdate     _strdate
+#define strtime     _strtime
+#endif
 
 #ifndef HAVE_CONFIG_H
 
 // Windows C Runtime Library
-// These are version dependent.  If you aren't using MSC, you'll probably need
+// These are Visual Studio version dependent.
+// If you aren't using VS, you'll probably need
 // to edit this file or create a config.h
 // For MINGW32 and MINGW64, it's best to run autoconf if possible.
 
@@ -72,8 +96,6 @@
 #define HAVE_DECL__FPRESET 1
 #define HAVE_DECL___CPUID 1
 #define HAVE_MSVCRT 1
-#undef HAVE_STRDUP 
-#define HAVE__STRDUP 1
 #undef NO_PER_THREAD_LOCALE
 #define HAVE_DECL__CONFIGTHREADLOCALE 1
 #define HAVE__CONFIGTHREADLOCALE 1
@@ -385,4 +407,4 @@ void __cdecl __MINGW_NOTHROW fpreset (void);
 
 #define new DEBUG_NEW
 
-#endif //_BOINC_WIN_
+#endif //BOINC_BOINC_WIN_H
diff --git a/lib/cc_config.cpp b/lib/cc_config.cpp
index 11f6729..5add778 100644
--- a/lib/cc_config.cpp
+++ b/lib/cc_config.cpp
@@ -80,7 +80,7 @@ int LOG_FLAGS::parse(XML_PARSER& xp) {
         if (xp.parse_bool("heartbeat_debug", heartbeat_debug)) continue;
         if (xp.parse_bool("http_debug", http_debug)) continue;
         if (xp.parse_bool("http_xfer_debug", http_xfer_debug)) continue;
-	if (xp.parse_bool("idle_detection_debug", idle_detection_debug)) continue;
+        if (xp.parse_bool("idle_detection_debug", idle_detection_debug)) continue;
         if (xp.parse_bool("mem_usage_debug", mem_usage_debug)) continue;
         if (xp.parse_bool("network_status_debug", network_status_debug)) continue;
         if (xp.parse_bool("notice_debug", notice_debug)) continue;
@@ -128,7 +128,7 @@ int LOG_FLAGS::write(MIOFILE& out) {
         "        <heartbeat_debug>%d</heartbeat_debug>\n"
         "        <http_debug>%d</http_debug>\n"
         "        <http_xfer_debug>%d</http_xfer_debug>\n"
-	"        <idle_detection_debug>%d</idle_detection_debug>\n"
+        "        <idle_detection_debug>%d</idle_detection_debug>\n"
         "        <mem_usage_debug>%d</mem_usage_debug>\n"
         "        <network_status_debug>%d</network_status_debug>\n"
         "        <notice_debug>%d</notice_debug>\n"
@@ -169,7 +169,7 @@ int LOG_FLAGS::write(MIOFILE& out) {
         heartbeat_debug ? 1 : 0,
         http_debug ? 1 : 0,
         http_xfer_debug ? 1 : 0,
-	idle_detection_debug ? 1 : 0,
+        idle_detection_debug ? 1 : 0,
         mem_usage_debug ? 1 : 0,
         network_status_debug ? 1 : 0,
         notice_debug ? 1 : 0,
@@ -190,7 +190,6 @@ int LOG_FLAGS::write(MIOFILE& out) {
         unparsed_xml ? 1 : 0,
         work_fetch_debug ? 1 : 0
     );
-    
     return 0;
 }
 
@@ -276,7 +275,7 @@ int EXCLUDE_GPU::parse(XML_PARSER& xp) {
         if (!xp.is_tag) continue;
         if (xp.match_tag("/exclude_gpu")) {
             if (!found_url) return ERR_XML_PARSE;
-			return 0;
+            return 0;
         }
         if (xp.parse_string("url", url)) {
             canonicalize_master_url(url);
@@ -496,7 +495,6 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
     int j;
     unsigned int i;
 
-    out.printf("<set_cc_config>\n");
     out.printf("<cc_config>\n");
 
     log_flags.write(out);
@@ -517,7 +515,7 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
             alt_platforms[i].c_str()
         );
     }
-    
+
     out.printf(
         "        <client_version_check_url>%s</client_version_check_url>\n"
         "        <client_new_version_text>%s</client_new_version_text>\n"
@@ -526,7 +524,7 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
         client_new_version_text.c_str(),
         client_download_url.c_str()
     );
-    
+
     for (int k=1; k<config_coprocs.n_rsc; k++) {
         if (!config_coprocs.coprocs[k].specified_in_config) continue;
         out.printf(
@@ -550,7 +548,7 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
             "        </coproc>\n"
         );
     }
-    
+
     out.printf(
         "        <disallow_attach>%d</disallow_attach>\n"
         "        <dont_check_file_sizes>%d</dont_check_file_sizes>\n"
@@ -565,7 +563,7 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
         dont_suspend_nci,
         dont_use_vbox
     );
-    
+
     for (i=0; i<exclude_gpus.size(); i++) {
         exclude_gpus[i].write(out);
     }
@@ -576,7 +574,7 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
             exclusive_apps[i].c_str()
         );
     }
-            
+
     for (i=0; i<exclusive_gpu_apps.size(); ++i) {
         out.printf(
             "        <exclusive_gpu_app>%s</exclusive_gpu_app>\n",
@@ -604,7 +602,7 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
         http_transfer_timeout,
         http_transfer_timeout_bps
     );
-        
+
     for (i=0; i<ignore_gpu_instance[PROC_TYPE_NVIDIA_GPU].size(); ++i) {
         out.printf(
             "        <ignore_nvidia_dev>%d</ignore_nvidia_dev>\n",
@@ -625,7 +623,7 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
             ignore_gpu_instance[PROC_TYPE_INTEL_GPU][i]
         );
     }
-        
+
     out.printf(
         "        <max_event_log_lines>%d</max_event_log_lines>\n"
         "        <max_file_xfers>%d</max_file_xfers>\n"
@@ -660,9 +658,9 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
         process_priority,
         process_priority_special
     );
-    
+
     proxy_info.write(out);
-    
+
     out.printf(
         "        <rec_half_life_days>%f</rec_half_life_days>\n"
         "        <report_results_immediately>%d</report_results_immediately>\n"
@@ -695,6 +693,208 @@ int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
     );
 
     out.printf("    </options>\n</cc_config>\n");
-    out.printf("</set_cc_config>\n");
     return 0;
 }
+
+// app_config.xml stuff
+
+bool have_max_concurrent = false;
+
+int APP_CONFIG::parse_gpu_versions(
+    XML_PARSER& xp, MSG_VEC& mv, LOG_FLAGS& log_flags
+) {
+    double x;
+    char buf[1024];
+    while (!xp.get_tag()) {
+        if (xp.match_tag("/gpu_versions")) return 0;
+        else if (xp.parse_double("gpu_usage", x)) {
+            if (x <= 0) {
+                mv.push_back(string("gpu_usage must be positive in app_config.xml"));
+            } else {
+                gpu_gpu_usage = x;
+            }
+            continue;
+        }
+        else if (xp.parse_double("cpu_usage", x)) {
+            if (x < 0) {
+                mv.push_back(string("cpu_usage must be non-negative in app_config.xml"));
+            } else {
+                gpu_cpu_usage = x;
+            }
+            continue;
+        }
+        if (log_flags.unparsed_xml) {
+            sprintf(buf, "Unparsed line in app_config.xml: %s", xp.parsed_tag);
+            mv.push_back(string(buf));
+        }
+    }
+    mv.push_back(string("Missing </gpu_versions> in app_config.xml"));
+    return ERR_XML_PARSE;
+}
+
+int APP_CONFIG::parse(XML_PARSER& xp, MSG_VEC& mv, LOG_FLAGS& log_flags) {
+    char buf[1024];
+    memset(this, 0, sizeof(APP_CONFIG));
+
+    while (!xp.get_tag()) {
+        if (xp.match_tag("/app")) return 0;
+        if (xp.parse_str("name", name, 256)) continue;
+        if (xp.parse_int("max_concurrent", max_concurrent)) {
+            if (max_concurrent) have_max_concurrent = true;
+            continue;
+        }
+        if (xp.match_tag("gpu_versions")) {
+            int retval = parse_gpu_versions(xp, mv, log_flags);
+            if (retval) return retval;
+            continue;
+        }
+        if (xp.parse_bool("fraction_done_exact", fraction_done_exact)) {
+            continue;
+        }
+        if (xp.parse_bool("report_results_immediately", report_results_immediately)) {
+            continue;
+        }
+
+        // unparsed XML not considered an error; maybe it should be?
+        //
+        if (log_flags.unparsed_xml) {
+            sprintf(buf, "Unparsed line in app_config.xml: %s", xp.parsed_tag);
+            mv.push_back(string(buf));
+        }
+        xp.skip_unexpected(log_flags.unparsed_xml, "APP_CONFIG::parse");
+    }
+    mv.push_back(string("Missing </app> in app_config.xml"));
+    return ERR_XML_PARSE;
+}
+
+int APP_VERSION_CONFIG::parse(
+    XML_PARSER& xp, MSG_VEC& mv, LOG_FLAGS& log_flags
+) {
+    char buf[1024];
+    memset(this, 0, sizeof(APP_VERSION_CONFIG));
+
+    while (!xp.get_tag()) {
+        if (!xp.is_tag) {
+            sprintf(buf, "unexpected text '%s' in app_config.xml", xp.parsed_tag);
+            mv.push_back(string(buf));
+            return ERR_XML_PARSE;
+        }
+        if (xp.match_tag("/app_version")) return 0;
+        if (xp.parse_str("app_name", app_name, 256)) continue;
+        if (xp.parse_str("plan_class", plan_class, 256)) continue;
+        if (xp.parse_str("cmdline", cmdline, 256)) continue;
+        if (xp.parse_double("avg_ncpus", avg_ncpus)) continue;
+        if (xp.parse_double("ngpus", ngpus)) continue;
+        if (log_flags.unparsed_xml) {
+            sprintf(buf, "Unparsed line in app_config.xml: %s", xp.parsed_tag);
+            mv.push_back(string(buf));
+        }
+        xp.skip_unexpected(log_flags.unparsed_xml, "APP_VERSION_CONFIG::parse");
+    }
+    mv.push_back(string("Missing </app_version> in app_config.xml"));
+    return ERR_XML_PARSE;
+}
+
+int APP_CONFIGS::parse(XML_PARSER& xp, MSG_VEC& mv, LOG_FLAGS& log_flags) {
+    char buf[1024];
+    int n;
+    clear();
+    while (!xp.get_tag()) {
+        if (!xp.is_tag) {
+            sprintf(buf, "unexpected text '%s' in app_config.xml", xp.parsed_tag);
+            mv.push_back(string(buf));
+            return ERR_XML_PARSE;
+        }
+        if (xp.match_tag("/app_config")) return 0;
+        if (xp.match_tag("app")) {
+            APP_CONFIG ac;
+            int retval = ac.parse(xp, mv, log_flags);
+            if (retval) return retval;
+            app_configs.push_back(ac);
+            continue;
+        }
+        if (xp.match_tag("app_version")) {
+            APP_VERSION_CONFIG avc;
+            int retval = avc.parse(xp, mv, log_flags);
+            if (retval) return retval;
+            app_version_configs.push_back(avc);
+            continue;
+        }
+        if (xp.parse_int("project_max_concurrent", n)) {
+            if (n >= 0) {
+                have_max_concurrent = true;
+                project_max_concurrent = n;
+            }
+            continue;
+        }
+        if (xp.parse_bool("report_results_immediately", report_results_immediately)) {
+            continue;
+        }
+        sprintf(buf, "Unknown tag in app_config.xml: %s", xp.parsed_tag);
+        mv.push_back(string(buf));
+
+        xp.skip_unexpected(log_flags.unparsed_xml, "APP_CONFIGS::parse");
+    }
+    mv.push_back(string("Missing </app_config> in app_config.xml"));
+    return ERR_XML_PARSE;
+}
+
+int APP_CONFIGS::parse_file(FILE* f, MSG_VEC& mv, LOG_FLAGS& log_flags) {
+    MIOFILE mf;
+    XML_PARSER xp(&mf);
+    mf.init_file(f);
+    if (!xp.parse_start("app_config")) {
+        mv.push_back(string("Missing <app_config> in app_config.xml"));
+        return ERR_XML_PARSE;
+    }
+    return parse(xp, mv, log_flags);
+}
+
+void APP_CONFIGS::write(MIOFILE& out) {
+    out.printf(
+        "   <app_config>\n"
+    );
+    for (unsigned int i=0; i<app_configs.size(); i++) {
+        APP_CONFIG& ac = app_configs[i];
+        out.printf(
+            "       <app>\n"
+            "           <name>%s</name>\n"
+            "           <max_concurrent>%d</max_concurrent>\n"
+            "           <gpu_gpu_usage>%f</gpu_gpu_usage>\n"
+            "           <gpu_cpu_usage>%f</gpu_cpu_usage>\n"
+            "           <fraction_done_exact>%d</fraction_done_exact>\n"
+            "           <report_results_immediately>%d</report_results_immediately>\n"
+            "       </app>\n",
+            ac.name,
+            ac.max_concurrent,
+            ac.gpu_gpu_usage,
+            ac.gpu_cpu_usage,
+            ac.fraction_done_exact?1:0,
+            ac.report_results_immediately?1:0
+        );
+    }
+    for (unsigned int i=0; i<app_version_configs.size(); i++) {
+        APP_VERSION_CONFIG& avc = app_version_configs[i];
+        out.printf(
+            "       <app_version>\n"
+            "           <app_name>%s</app_name>\n"
+            "           <plan_class>%s</plan_class>\n"
+            "           <cmdline>%s</cmdline>\n"
+            "           <avg_ncpus>%f</avg_ncpus>\n"
+            "           <ngpus>%f</ngpus>\n"
+            "       </app_version>\n",
+            avc.app_name,
+            avc.plan_class,
+            avc.cmdline,
+            avc.avg_ncpus,
+            avc.ngpus
+        );
+    }
+    out.printf(
+        "       <project_max_concurrent>%d</project_max_concurrent>\n"
+        "       <report_results_immediately>%d</report_results_immediately>\n"
+        "   </app_config>\n",
+        project_max_concurrent,
+        report_results_immediately?1:0
+    );
+}
diff --git a/lib/cc_config.h b/lib/cc_config.h
index 96d9983..7ea36cf 100644
--- a/lib/cc_config.h
+++ b/lib/cc_config.h
@@ -21,8 +21,8 @@
 // NOTE: all writes to stdout should have an if (log_flags.*) {} around them.
 //
 
-#ifndef _CC_CONFIG_H_
-#define _CC_CONFIG_H_
+#ifndef BOINC_CC_CONFIG_H
+#define BOINC_CC_CONFIG_H
 
 #include <vector>
 #include <string>
@@ -33,6 +33,8 @@
 #define DEFAULT_MAX_EVENT_LOG_LINES 2000
 
 struct XML_PARSER;
+struct PROJECT;
+struct RESULT;
 
 #define MAX_FILE_XFERS_PER_PROJECT      2
 #define MAX_FILE_XFERS                  8
@@ -88,6 +90,7 @@ struct LOG_FLAGS {
     bool mem_usage_debug;
         // memory usage
     bool network_status_debug;
+    bool notice_debug;
     bool poll_debug;
         // show what polls are responding
     bool proxy_debug;
@@ -117,7 +120,6 @@ struct LOG_FLAGS {
         // show unparsed XML lines
     bool work_fetch_debug;
         // work fetch policy 
-    bool notice_debug;
 
     LOG_FLAGS();
     void init();
@@ -211,4 +213,48 @@ struct CC_CONFIG {
     void show();
 };
 
+//  Stuff related to app_config.xml
+
+typedef std::vector<std::string> MSG_VEC;
+
+struct APP_CONFIG {
+    char name[256];
+    int max_concurrent;
+    double gpu_gpu_usage;
+    double gpu_cpu_usage;
+    bool fraction_done_exact;
+    bool report_results_immediately;
+
+    int parse(XML_PARSER&, MSG_VEC&, LOG_FLAGS&);
+    int parse_gpu_versions(XML_PARSER&, MSG_VEC&, LOG_FLAGS&);
+};
+
+struct APP_VERSION_CONFIG {
+    char app_name[256];
+    char plan_class[256];
+    char cmdline[256];
+    double avg_ncpus;
+    double ngpus;
+
+    int parse(XML_PARSER&, MSG_VEC&, LOG_FLAGS&);
+};
+
+struct APP_CONFIGS {
+    std::vector<APP_CONFIG> app_configs;
+    std::vector<APP_VERSION_CONFIG> app_version_configs;
+    int project_max_concurrent;
+    bool report_results_immediately;
+
+    int parse(XML_PARSER&, MSG_VEC&, LOG_FLAGS&);
+    int parse_file(FILE*, MSG_VEC&, LOG_FLAGS&);
+    int config_app_versions(PROJECT*, bool show_warnings);
+    void write(MIOFILE&);
+    void clear() {
+        app_configs.clear();
+        app_version_configs.clear();
+        project_max_concurrent = 0;
+        report_results_immediately = false;
+    }
+};
+
 #endif
diff --git a/lib/cert_sig.h b/lib/cert_sig.h
index eb193f4..97b291b 100644
--- a/lib/cert_sig.h
+++ b/lib/cert_sig.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __CERT_SIG_H_
-#define __CERT_SIG_H_
+#ifndef BOINC_CERT_SIG_H
+#define BOINC_CERT_SIG_H
 
 #include <vector>
 #include "parse.h"
@@ -66,4 +66,4 @@ struct CERT_SIGS {
     int parse(XML_PARSER &xp);
 };
 
-#endif  //__CERT_SIG_H_
+#endif  // BOINC_CERT_SIG_H
diff --git a/lib/cl_boinc.h b/lib/cl_boinc.h
index 0d6cb73..9e7d60a 100644
--- a/lib/cl_boinc.h
+++ b/lib/cl_boinc.h
@@ -1,7 +1,7 @@
 // a stripped-down subset of cl.h and cl_platform.h, for BOINC
 
-#ifndef __CL_BOINC_H
-#define __CL_BOINC_H
+#ifndef BOINC_CL_BOINC_H
+#define BOINC_CL_BOINC_H
 
 #include <cstddef>
 
@@ -271,4 +271,4 @@ clGetDeviceInfo(cl_device_id    /* device */,
 }
 #endif
 
-#endif /* __CL_BOINC_H */
+#endif // BOINC_CL_BOINC_H
diff --git a/lib/common_defs.h b/lib/common_defs.h
index 9c8e0ba..285d1d5 100644
--- a/lib/common_defs.h
+++ b/lib/common_defs.h
@@ -15,12 +15,11 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _COMMON_DEFS_
-#define _COMMON_DEFS_
+#ifndef BOINC_COMMON_DEFS_H
+#define BOINC_COMMON_DEFS_H
 
 #include "miofile.h"
 #include "parse.h"
-#include "str_replace.h"
 
 // #defines or enums that are shared by more than one BOINC component
 // (e.g. client, server, Manager, etc.)
@@ -345,7 +344,7 @@ struct DEVICE_STATUS {
         battery_temperature_celsius = 0;
         wifi_online = false;
         user_active = false;
-        safe_strcpy(device_name, "");
+        strcpy(device_name, "");
     }
 };
 
diff --git a/lib/coproc.cpp b/lib/coproc.cpp
index 09a2368..f8eb26a 100644
--- a/lib/coproc.cpp
+++ b/lib/coproc.cpp
@@ -106,8 +106,9 @@ void COPROC::write_xml(MIOFILE& f, bool scheduler_rpc) {
     f.printf(
         "<coproc>\n"
         "   <type>%s</type>\n"
-        "   <count>%d</count>\n",
-        type, count
+        "   <count>%d</count>\n"
+        "   <peak_flops>%f</peak_flops>\n",
+        type, count, peak_flops
     );
     
     if (scheduler_rpc) {
@@ -148,6 +149,10 @@ int COPROC::parse(XML_PARSER& xp) {
             clear_usage();
             return 0;
         }
+        if (xp.match_tag("coproc_opencl")) {
+            opencl_prop.parse(xp, "/coproc_opencl");
+            continue;
+        }
         if (xp.parse_str("type", type, sizeof(type))) continue;
         if (xp.parse_int("count", count)) continue;
         if (xp.parse_double("req_secs", req_secs)) continue;
@@ -167,6 +172,9 @@ int COPROC::parse(XML_PARSER& xp) {
     return ERR_XML_PARSE;
 }
 
+// return a string, to be stored in host.serialnum,
+// describing the host's coprocessors
+//
 void COPROCS::summary_string(char* buf, int len) {
     char buf2[1024];
 
@@ -200,6 +208,25 @@ void COPROCS::summary_string(char* buf, int len) {
         );
         strlcat(buf, buf2, len);
     }
+
+    // add OpenCL devices other than nvidia/amd/intel
+    //
+    for (int i=1; i<n_rsc; i++) {
+        COPROC& cp = coprocs[i];
+        int type = coproc_type_name_to_num(cp.type);
+        if (type == PROC_TYPE_NVIDIA_GPU) continue;
+        if (type == PROC_TYPE_AMD_GPU) continue;
+        if (type == PROC_TYPE_INTEL_GPU) continue;
+        if (!strlen(cp.opencl_prop.name)) continue;
+        snprintf(buf2, sizeof(buf2),
+            "[opencl_gpu|%s|%d|%dMB|%d]",
+            cp.type,
+            cp.count,
+            (int)(cp.opencl_prop.global_mem_size/MEGA),
+            cp.opencl_prop.opencl_device_version_int
+        );
+        strlcat(buf, buf2, len);
+    }
 }
 
 int COPROCS::parse(XML_PARSER& xp) {
@@ -252,8 +279,11 @@ int COPROCS::parse(XML_PARSER& xp) {
     return ERR_XML_PARSE;
 }
 
+#ifdef _USING_FCGI_
+void COPROCS::write_xml(MIOFILE&, bool) {
+}
+#else
 void COPROCS::write_xml(MIOFILE& mf, bool scheduler_rpc) {
-#ifndef _USING_FCGI_
     mf.printf("    <coprocs>\n");
     
     for (int i=1; i<n_rsc; i++) {
@@ -273,8 +303,8 @@ void COPROCS::write_xml(MIOFILE& mf, bool scheduler_rpc) {
     }
     
     mf.printf("    </coprocs>\n");
-#endif
 }
+#endif
 
 void COPROC_NVIDIA::description(char* buf, int buflen) {
     char vers[256], cuda_vers[256];
diff --git a/lib/coproc.h b/lib/coproc.h
index 0d25829..b5ee738 100644
--- a/lib/coproc.h
+++ b/lib/coproc.h
@@ -67,8 +67,8 @@
 //  COPROCS::coprocs[] array and copying the device name COPROC::opencl_prop.name 
 //  into the COPROC::type field (instead of the vendor name.)
 
-#ifndef _COPROC_
-#define _COPROC_
+#ifndef BOINC_COPROC_H
+#define BOINC_COPROC_H
 
 #include <vector>
 #include <string>
@@ -81,14 +81,12 @@
 #include "boinc_fcgi.h"
 #endif
 
-//#include "client_types.h"
 #include "miofile.h"
 #include "error_numbers.h"
 #include "parse.h"
 #include "cal_boinc.h"
 #include "cl_boinc.h"
 #include "opencl_boinc.h"
-#include "str_replace.h"
 
 #define MAX_COPROC_INSTANCES 64
 #define MAX_RSC 8
@@ -438,7 +436,7 @@ struct COPROCS {
         ati.clear();
         intel_gpu.clear();
         COPROC c;
-        safe_strcpy(c.type, "CPU");
+        strcpy(c.type, "CPU");
         c.clear_usage();
         add(c);
     }
@@ -502,10 +500,12 @@ struct COPROCS {
         ati.count = 0;
         intel_gpu.count = 0;
         COPROC c;
-        safe_strcpy(c.type, "CPU");
+        strcpy(c.type, "CPU");
         c.clear_usage();
         add(c);
     }
 };
 
+extern void fake_opencl_gpu(char*);
+
 #endif
diff --git a/lib/crypt.cpp b/lib/crypt.cpp
index 49fba12..cb1f49c 100644
--- a/lib/crypt.cpp
+++ b/lib/crypt.cpp
@@ -43,6 +43,7 @@
 #include <openssl/conf.h>
 #include <openssl/engine.h>
 #include <openssl/err.h>
+#include <openssl/rsa.h>
 
 #ifdef _USING_FCGI_
 #include "boinc_fcgi.h"
@@ -452,7 +453,7 @@ int read_key_file(const char* keyfile, R_RSA_PRIVATE_KEY& key) {
     return 0;
 }
 
-static void bn_to_bin(BIGNUM* bn, unsigned char* bin, int n) {
+static void bn_to_bin(const BIGNUM* bn, unsigned char* bin, int n) {
     memset(bin, 0, n);
     int m = BN_num_bytes(bn);
     BN_bn2bin(bn, bin+n-m);
@@ -462,11 +463,38 @@ void openssl_to_keys(
     RSA* rp, int nbits, R_RSA_PRIVATE_KEY& priv, R_RSA_PUBLIC_KEY& pub
 ) {
     pub.bits = nbits;
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+    const BIGNUM *n;
+    const BIGNUM *e;
+    const BIGNUM *d;
+    const BIGNUM *p;
+    const BIGNUM *q;
+    const BIGNUM *dmp1;
+    const BIGNUM *dmq1;
+    const BIGNUM *iqmp;
+    RSA_get0_key(rp, &n, &e, &d);
+    RSA_get0_factors(rp, &p, &q);
+    RSA_get0_crt_params(rp, &dmp1, &dmq1, &iqmp);
+
+    bn_to_bin(n, pub.modulus, sizeof(pub.modulus));
+    bn_to_bin(e, pub.exponent, sizeof(pub.exponent));
+#else
     bn_to_bin(rp->n, pub.modulus, sizeof(pub.modulus));
     bn_to_bin(rp->e, pub.exponent, sizeof(pub.exponent));
+#endif
 
     memset(&priv, 0, sizeof(priv));
     priv.bits = nbits;
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+    bn_to_bin(n, priv.modulus, sizeof(priv.modulus));
+    bn_to_bin(e, priv.publicExponent, sizeof(priv.publicExponent));
+    bn_to_bin(d, priv.exponent, sizeof(priv.exponent));
+    bn_to_bin(p, priv.prime[0], sizeof(priv.prime[0]));
+    bn_to_bin(q, priv.prime[1], sizeof(priv.prime[1]));
+    bn_to_bin(dmp1, priv.primeExponent[0], sizeof(priv.primeExponent[0]));
+    bn_to_bin(dmq1, priv.primeExponent[1], sizeof(priv.primeExponent[1]));
+    bn_to_bin(iqmp, priv.coefficient, sizeof(priv.coefficient));
+#else
     bn_to_bin(rp->n, priv.modulus, sizeof(priv.modulus));
     bn_to_bin(rp->e, priv.publicExponent, sizeof(priv.publicExponent));
     bn_to_bin(rp->d, priv.exponent, sizeof(priv.exponent));
@@ -475,9 +503,32 @@ void openssl_to_keys(
     bn_to_bin(rp->dmp1, priv.primeExponent[0], sizeof(priv.primeExponent[0]));
     bn_to_bin(rp->dmq1, priv.primeExponent[1], sizeof(priv.primeExponent[1]));
     bn_to_bin(rp->iqmp, priv.coefficient, sizeof(priv.coefficient));
+#endif
 }
 
 void private_to_openssl(R_RSA_PRIVATE_KEY& priv, RSA* rp) {
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+    BIGNUM *n;
+    BIGNUM *e;
+    BIGNUM *d;
+    BIGNUM *p;
+    BIGNUM *q;
+    BIGNUM *dmp1;
+    BIGNUM *dmq1;
+    BIGNUM *iqmp;
+
+    n = BN_bin2bn(priv.modulus, sizeof(priv.modulus), 0);
+    e = BN_bin2bn(priv.publicExponent, sizeof(priv.publicExponent), 0);
+    d = BN_bin2bn(priv.exponent, sizeof(priv.exponent), 0);
+    p = BN_bin2bn(priv.prime[0], sizeof(priv.prime[0]), 0);
+    q = BN_bin2bn(priv.prime[1], sizeof(priv.prime[1]), 0);
+    dmp1 = BN_bin2bn(priv.primeExponent[0], sizeof(priv.primeExponent[0]), 0);
+    dmq1 = BN_bin2bn(priv.primeExponent[1], sizeof(priv.primeExponent[1]), 0);
+    iqmp = BN_bin2bn(priv.coefficient, sizeof(priv.coefficient), 0);
+    RSA_set0_key(rp, n, e, d);
+    RSA_set0_factors(rp, p, q);
+    RSA_set0_crt_params(rp, dmp1, dmq1, iqmp);
+#else
     rp->n = BN_bin2bn(priv.modulus, sizeof(priv.modulus), 0);
     rp->e = BN_bin2bn(priv.publicExponent, sizeof(priv.publicExponent), 0);
     rp->d = BN_bin2bn(priv.exponent, sizeof(priv.exponent), 0);
@@ -486,43 +537,85 @@ void private_to_openssl(R_RSA_PRIVATE_KEY& priv, RSA* rp) {
     rp->dmp1 = BN_bin2bn(priv.primeExponent[0], sizeof(priv.primeExponent[0]), 0);
     rp->dmq1 = BN_bin2bn(priv.primeExponent[1], sizeof(priv.primeExponent[1]), 0);
     rp->iqmp = BN_bin2bn(priv.coefficient, sizeof(priv.coefficient), 0);
+#endif
 }
 
 void public_to_openssl(R_RSA_PUBLIC_KEY& pub, RSA* rp) {
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+    BIGNUM *n;
+    BIGNUM *e;
+    n = BN_bin2bn(pub.modulus, sizeof(pub.modulus), 0);
+    e = BN_bin2bn(pub.exponent, sizeof(pub.exponent), 0);
+    RSA_set0_key(rp, n, e, NULL);
+#else
     rp->n = BN_bin2bn(pub.modulus, sizeof(pub.modulus), 0);
     rp->e = BN_bin2bn(pub.exponent, sizeof(pub.exponent), 0);
+#endif
 }
 
-static int _bn2bin(BIGNUM *from, unsigned char *to, int max) {
-	int i;
-	i=BN_num_bytes(from);
-	if (i > max) {
-		return(0);
-	}
-	memset(to,0,(unsigned int)max);
-	if (!BN_bn2bin(from,&(to[max-i])))
-		return(0);
-	return(1);
+static int _bn2bin(const BIGNUM *from, unsigned char *to, int max) {
+    int i;
+    i=BN_num_bytes(from);
+    if (i > max) {
+        return(0);
+    }
+    memset(to,0,(unsigned int)max);
+    if (!BN_bn2bin(from,&(to[max-i])))
+        return(0);
+    return(1);
 }
 
 int openssl_to_private(RSA *from, R_RSA_PRIVATE_KEY *to) {
-	to->bits = BN_num_bits(from->n);
-	if (!_bn2bin(from->n,to->modulus,MAX_RSA_MODULUS_LEN)) 
-	    return(0);
-	if (!_bn2bin(from->e,to->publicExponent,MAX_RSA_MODULUS_LEN)) 
-	    return(0);
-	if (!_bn2bin(from->d,to->exponent,MAX_RSA_MODULUS_LEN)) 
-	    return(0);
-	if (!_bn2bin(from->p,to->prime[0],MAX_RSA_PRIME_LEN)) 
-	    return(0);
-	if (!_bn2bin(from->q,to->prime[1],MAX_RSA_PRIME_LEN)) 
-	    return(0);
-	if (!_bn2bin(from->dmp1,to->primeExponent[0],MAX_RSA_PRIME_LEN)) 
-	    return(0);
-	if (!_bn2bin(from->dmq1,to->primeExponent[1],MAX_RSA_PRIME_LEN)) 
-	    return(0);
-	if (!_bn2bin(from->iqmp,to->coefficient,MAX_RSA_PRIME_LEN)) 
-	    return(0);
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+    const BIGNUM *n;
+    const BIGNUM *e;
+    const BIGNUM *d;
+    const BIGNUM *p;
+    const BIGNUM *q;
+    const BIGNUM *dmp1;
+    const BIGNUM *dmq1;
+    const BIGNUM *iqmp;
+
+    RSA_get0_key(from, &n, &e, &d);
+    RSA_get0_factors(from, &p, &q);
+    RSA_get0_crt_params(from, &dmp1, &dmq1, &iqmp);
+
+    to->bits = BN_num_bits(n);
+    if (!_bn2bin(n,to->modulus,MAX_RSA_MODULUS_LEN))
+        return(0);
+    if (!_bn2bin(e,to->publicExponent,MAX_RSA_MODULUS_LEN))
+        return(0);
+    if (!_bn2bin(d,to->exponent,MAX_RSA_MODULUS_LEN))
+        return(0);
+    if (!_bn2bin(p,to->prime[0],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(q,to->prime[1],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(dmp1,to->primeExponent[0],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(dmq1,to->primeExponent[1],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(iqmp,to->coefficient,MAX_RSA_PRIME_LEN))
+        return(0);
+#else
+    to->bits = BN_num_bits(from->n);
+    if (!_bn2bin(from->n,to->modulus,MAX_RSA_MODULUS_LEN))
+        return(0);
+    if (!_bn2bin(from->e,to->publicExponent,MAX_RSA_MODULUS_LEN))
+        return(0);
+    if (!_bn2bin(from->d,to->exponent,MAX_RSA_MODULUS_LEN))
+        return(0);
+    if (!_bn2bin(from->p,to->prime[0],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(from->q,to->prime[1],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(from->dmp1,to->primeExponent[0],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(from->dmq1,to->primeExponent[1],MAX_RSA_PRIME_LEN))
+        return(0);
+    if (!_bn2bin(from->iqmp,to->coefficient,MAX_RSA_PRIME_LEN))
+        return(0);
+#endif
     return 1;
 }
 
@@ -541,8 +634,8 @@ int check_validity_of_cert(
     bio = BIO_new(BIO_s_file());
     BIO_read_filename(bio, cFile);
     if (NULL == (cert = PEM_read_bio_X509(bio, NULL, 0, NULL))) {
-	    BIO_vfree(bio);
-	    return 0;
+        BIO_vfree(bio);
+        return 0;
     }
     // verify certificate
     store = X509_STORE_new();
@@ -568,26 +661,45 @@ int check_validity_of_cert(
         BIO_vfree(bio);
         return 0;
     }
+#ifdef HAVE_OPAQUE_EVP_PKEY
+    if (EVP_PKEY_id(pubKey) == EVP_PKEY_RSA) {
+#else
     if (pubKey->type == EVP_PKEY_RSA) {
+#endif
         BN_CTX *c = BN_CTX_new();
         if (!c) {
-	        X509_free(cert);
-	        EVP_PKEY_free(pubKey);
-	        BIO_vfree(bio);
-	        return 0;
-	    }
-	    if (!RSA_blinding_on(pubKey->pkey.rsa, c)) {
-	        X509_free(cert);
-	        EVP_PKEY_free(pubKey);
-	        BIO_vfree(bio);
-	        BN_CTX_free(c);
-	        return 0;
-	    }
-	    retval = RSA_verify(NID_md5, md5_md, MD5_DIGEST_LENGTH, sfileMsg, sfsize, pubKey->pkey.rsa);
-	    RSA_blinding_off(pubKey->pkey.rsa);
-	    BN_CTX_free(c);
+            X509_free(cert);
+            EVP_PKEY_free(pubKey);
+            BIO_vfree(bio);
+            return 0;
+        }
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+        RSA *rsa;
+        rsa = EVP_PKEY_get0_RSA(pubKey);
+        if (!RSA_blinding_on(rsa, c)) {
+#else
+        if (!RSA_blinding_on(pubKey->pkey.rsa, c)) {
+#endif
+            X509_free(cert);
+            EVP_PKEY_free(pubKey);
+            BIO_vfree(bio);
+            BN_CTX_free(c);
+            return 0;
+        }
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+        retval = RSA_verify(NID_md5, md5_md, MD5_DIGEST_LENGTH, sfileMsg, sfsize, rsa);
+        RSA_blinding_off(rsa);
+#else
+        retval = RSA_verify(NID_md5, md5_md, MD5_DIGEST_LENGTH, sfileMsg, sfsize, pubKey->pkey.rsa);
+        RSA_blinding_off(pubKey->pkey.rsa);
+#endif
+        BN_CTX_free(c);
     }
+#ifdef HAVE_OPAQUE_EVP_PKEY
+    if (EVP_PKEY_id(pubKey) == EVP_PKEY_DSA) {
+#else
     if (pubKey->type == EVP_PKEY_DSA) {
+#endif
         fprintf(stderr,
             "%s: ERROR: DSA keys are not supported.\n",
             time_to_string(dtime())
@@ -618,7 +730,7 @@ char *check_validity(
     if (!of) return NULL;
     MD5_Init(&md5CTX);
     while (0 != (rbytes = (int)fread(rbuf, 1, sizeof(rbuf), of))) {
-	    MD5_Update(&md5CTX, rbuf, rbytes);
+        MD5_Update(&md5CTX, rbuf, rbytes);
     }
     MD5_Final(md5_md, &md5CTX);
     fclose(of);
@@ -628,12 +740,12 @@ char *check_validity(
     char file[MAXPATHLEN];
     while (!dir_scan(file, dir, sizeof(file))) {
         char fpath[MAXPATHLEN];
-	    snprintf(fpath, sizeof(fpath), "%s/%s", certPath, file);
+        snprintf(fpath, sizeof(fpath), "%s/%s", certPath, file);
         // TODO : replace '128'  
-	    if (check_validity_of_cert(fpath, md5_md, signature, 128, caPath)) {
-	        dir_close(dir);
-	        return strdup(fpath);
-	    }
+        if (check_validity_of_cert(fpath, md5_md, signature, 128, caPath)) {
+            dir_close(dir);
+            return strdup(fpath);
+        }
     }
 
     dir_close(dir);
@@ -666,7 +778,7 @@ int cert_verify_file(
     if (!of) return false;
     MD5_Init(&md5CTX);
     while (0 != (rbytes = (int)fread(rbuf, 1, sizeof(rbuf), of))) {
-	    MD5_Update(&md5CTX, rbuf, rbytes);
+        MD5_Update(&md5CTX, rbuf, rbytes);
     }
     MD5_Final(md5_md, &md5CTX);
     fclose(of);
@@ -693,10 +805,10 @@ int cert_verify_file(
             bio = BIO_new(BIO_s_file());
             BIO_read_filename(bio, fbuf);
             if (NULL == (cert = PEM_read_bio_X509(bio, NULL, 0, NULL))) {
-        	    BIO_vfree(bio);
+                BIO_vfree(bio);
                 printf("Cannot read certificate ('%s')\n", fbuf);
                 file_counter++;
-        	    continue;
+                continue;
             }
             fflush(stdout);
             subj = X509_get_subject_name(cert);
@@ -704,7 +816,7 @@ int cert_verify_file(
             // ???
             //X509_NAME_free(subj);
             X509_free(cert);
-    	    BIO_vfree(bio);
+            BIO_vfree(bio);
             if (strcmp(buf, signatures->signatures.at(i).subject)) {
                 printf("Subject does not match ('%s' <-> '%s')\n", buf, signatures->signatures.at(i).subject);
                 file_counter++;
diff --git a/lib/crypt.h b/lib/crypt.h
index 022bd2a..63c577a 100644
--- a/lib/crypt.h
+++ b/lib/crypt.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef H_CRYPT
-#define H_CRYPT
+#ifndef BOINC_CRYPT_H
+#define BOINC_CRYPT_H
 
 // We're set up to use either RSAEuro or the OpenSSL crypto library.
 // We use our own data structures (R_RSA_PUBLIC_KEY and R_RSA_PRIVATE_KEY)
@@ -26,6 +26,11 @@
 
 #include <openssl/rsa.h>
 
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) /* OpenSSL 1.1.0+ */
+#define HAVE_OPAQUE_EVP_PKEY 1 /* since 1.1.0 -pre3 */
+#define HAVE_OPAQUE_RSA_DSA_DH 1 /* since 1.1.0 -pre5 */
+#endif
+
 #define MAX_RSA_MODULUS_BITS 1024
 #define MAX_RSA_MODULUS_LEN ((MAX_RSA_MODULUS_BITS + 7) / 8)
 #define MAX_RSA_PRIME_BITS ((MAX_RSA_MODULUS_BITS + 1) / 2)
diff --git a/lib/crypt_prog.cpp b/lib/crypt_prog.cpp
index 2a1eb5d..8cfffc2 100644
--- a/lib/crypt_prog.cpp
+++ b/lib/crypt_prog.cpp
@@ -62,23 +62,23 @@ void die(const char* p) {
 
 void usage() {
     fprintf(stderr,
-        "Usage: crypt_prog options\n\n"
-        "Options:\n\n"
-        "-genkey n private_keyfile public_keyfile\n"
-        "    create an n-bit key pair\n"
-        "-sign file private_keyfile\n"
-        "    create a signature for a given file, write to stdout\n"
-        "-sign_string string private_keyfile\n"
-        "    create a signature for a given string\n"
-        "-verify file signature_file public_keyfile\n"
-        "    verify a signature\n"
-        "-test_crypt private_keyfile public_keyfile\n"
-        "    test encrypt/decrypt functions\n"
-        "-conkey o2b/b20 priv/pub input_file output_file\n"
-        "    convert keys between BOINC and OpenSSL format\n"
-        "-cert_verify file signature certificate_dir\n"
-        "    verify a signature using a directory of certificates\n"
-    );
+            "Usage: crypt_prog options\n\n"
+            "Options:\n\n"
+            "-genkey n private_keyfile public_keyfile\n"
+            "    create an n-bit key pair\n"
+            "-sign file private_keyfile\n"
+            "    create a signature for a given file, write to stdout\n"
+            "-sign_string string private_keyfile\n"
+            "    create a signature for a given string\n"
+            "-verify file signature_file public_keyfile\n"
+            "    verify a signature\n"
+            "-test_crypt private_keyfile public_keyfile\n"
+            "    test encrypt/decrypt functions\n"
+            "-convkey o2b/b2o priv/pub input_file output_file\n"
+            "    convert keys between BOINC and OpenSSL format\n"
+            "-cert_verify file signature certificate_dir\n"
+            "    verify a signature using a directory of certificates\n"
+           );
 }
 
 unsigned int random_int() {
@@ -93,7 +93,7 @@ unsigned int random_int() {
         die("Can't load ADVAPI32.DLL");
     }
     BOOLEAN (APIENTRY *pfn)(void*, ULONG) =
-    (BOOLEAN (APIENTRY *)(void*,ULONG))GetProcAddress(hLib,"SystemFunction036");
+        (BOOLEAN (APIENTRY *)(void*,ULONG))GetProcAddress(hLib,"SystemFunction036");
     if (pfn) {
         char buff[32];
         ULONG ulCbBuff = sizeof(buff);
@@ -125,13 +125,18 @@ int main(int argc, char** argv) {
     unsigned char signature_buf[256], buf[256], buf2[256];
     FILE *f, *fpriv, *fpub;
     char cbuf[256];
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+    RSA *rsa_key = RSA_new();
+#else
     RSA rsa_key;
+#endif
     RSA *rsa_key_;
-	BIO *bio_out=NULL;
+    BIO *bio_out=NULL;
     BIO *bio_err=NULL;
     char *certpath;
     bool b2o=false; // boinc key to openssl key ?
     bool kpriv=false; // private key ?
+    BIGNUM *e;
 
     if (argc == 1) {
         usage();
@@ -146,7 +151,16 @@ int main(int argc, char** argv) {
         n = atoi(argv[2]);
 
         srand(random_int());
-        RSA* rp = RSA_generate_key(n,  65537, 0, 0);
+        e = BN_new();
+        retval = BN_set_word(e, (unsigned long)65537);
+        if (retval != 1) {
+            die("BN_set_word");
+        }
+        RSA *rp = RSA_new();
+        retval = RSA_generate_key_ex(rp, n, e, NULL);
+        if (retval != 1) {
+            die("RSA_generate_key_ex");
+        }
         openssl_to_keys(rp, n, private_key, public_key);
         fpriv = fopen(argv[3], "w");
         if (!fpriv) die("fopen");
@@ -200,8 +214,8 @@ int main(int argc, char** argv) {
         retval = md5_file(argv[2], md5_buf, size);
         if (retval) die("md5_file");
         retval = check_file_signature(
-            md5_buf, public_key, signature, is_valid
-        );
+                     md5_buf, public_key, signature, is_valid
+                 );
         if (retval) die("check_file_signature");
         if (is_valid) {
             printf("file is valid\n");
@@ -248,9 +262,9 @@ int main(int argc, char** argv) {
             printf("siganture verified using certificate '%s'.\n\n", certpath);
             free(certpath);
         }
-    // this converts, but an executable signed with sign_executable,
-    // and signature converted to OpenSSL format cannot be verified with
-    // OpenSSL
+        // this converts, but an executable signed with sign_executable,
+        // and signature converted to OpenSSL format cannot be verified with
+        // OpenSSL
     } else if (!strcmp(argv[1], "-convsig")) {
         if (argc < 5) {
             usage();
@@ -306,18 +320,18 @@ int main(int argc, char** argv) {
             die("either 'pub' or 'priv' must be defined for -convkey\n");
         }
         OpenSSL_add_all_algorithms();
-		ERR_load_crypto_strings();
-		ENGINE_load_builtin_engines();
-		if (bio_err == NULL) {
-		    bio_err = BIO_new_fp(stdout, BIO_NOCLOSE);
+        ERR_load_crypto_strings();
+        ENGINE_load_builtin_engines();
+        if (bio_err == NULL) {
+            bio_err = BIO_new_fp(stdout, BIO_NOCLOSE);
         }
         //enc=EVP_get_cipherbyname("des");
         //if (enc == NULL)
         //    die("could not get cypher.\n");
         // no encription yet.
         bio_out=BIO_new(BIO_s_file());
-		if (BIO_write_filename(bio_out,argv[5]) <= 0) {
-			perror(argv[5]);
+        if (BIO_write_filename(bio_out,argv[5]) <= 0) {
+            perror(argv[5]);
             die("could not create output file.\n");
         }
         if (b2o) {
@@ -330,22 +344,30 @@ int main(int argc, char** argv) {
                 retval = scan_key_hex(fpriv, (KEY*)&private_key, sizeof(private_key));
                 fclose(fpriv);
                 if (retval) die("scan_key_hex\n");
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+                private_to_openssl(private_key, rsa_key);
+#else
                 private_to_openssl(private_key, &rsa_key);
+#endif
 
                 //i = PEM_write_bio_RSAPrivateKey(bio_out, &rsa_key,
-        		//				enc, NULL, 0, pass_cb, NULL);
-        		// no encryption yet.
-        		
+                //				enc, NULL, 0, pass_cb, NULL);
+                // no encryption yet.
+
                 //i = PEM_write_bio_RSAPrivateKey(bio_out, &rsa_key,
-        		//				NULL, NULL, 0, pass_cb, NULL);
+                //				NULL, NULL, 0, pass_cb, NULL);
                 fpriv = fopen(argv[5], "w+");
                 if (!fpriv) die("fopen");
+#ifdef HAVE_OPAQUE_RSA_DSA_DH
+                PEM_write_RSAPrivateKey(fpriv, rsa_key, NULL, NULL, 0, 0, NULL);
+#else
                 PEM_write_RSAPrivateKey(fpriv, &rsa_key, NULL, NULL, 0, 0, NULL);
+#endif
                 fclose(fpriv);
-    		    //if (i == 0) {
+                //if (i == 0) {
                 //    ERR_print_errors(bio_err);
                 //    die("could not write key file.\n");
-    		    //}
+                //}
             } else {
                 fpub = fopen(argv[4], "r");
                 if (!fpub) {
@@ -359,11 +381,11 @@ int main(int argc, char** argv) {
                     die("fopen");
                 }
                 public_to_openssl(public_key, rsa_key_);
-    		    i = PEM_write_RSA_PUBKEY(fpub, rsa_key_);
-    		    if (i == 0) {
+                i = PEM_write_RSA_PUBKEY(fpub, rsa_key_);
+                if (i == 0) {
                     ERR_print_errors(bio_err);
                     die("could not write key file.\n");
-    		    }
+                }
                 fclose(fpub);
             }
         } else {
diff --git a/lib/daemonmgt.h b/lib/daemonmgt.h
index e527160..4d530b2 100644
--- a/lib/daemonmgt.h
+++ b/lib/daemonmgt.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINC_DAEMONMANAGEMENT_H_
-#define _BOINC_DAEMONMANAGEMENT_H_
+#ifndef BOINC_DAEMONMGT_H
+#define BOINC_DAEMONMGT_H
 
 extern bool is_daemon_installed();
 extern bool is_daemon_starting();
diff --git a/lib/diagnostics.cpp b/lib/diagnostics.cpp
index b23e611..bdd1707 100644
--- a/lib/diagnostics.cpp
+++ b/lib/diagnostics.cpp
@@ -24,12 +24,6 @@
 #include "stdwx.h"
 #endif
 
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#define snprintf    _snprintf
-#define strdate     _strdate
-#define strtime     _strtime
-#endif
-
 #ifdef __EMX__
 #include <sys/stat.h>
 #endif
@@ -52,7 +46,7 @@
 #include "mac_backtrace.h"
 #endif
 
-#ifdef __GLIBC__
+#ifdef HAVE_EXECINFO_H
 #include <execinfo.h>
 #endif
 
@@ -67,7 +61,7 @@
 
 #include "diagnostics.h"
 
-#ifdef ANDROID
+#ifdef ANDROID_VOODOO
 // for signal handler backtrace
 unwind_backtrace_signal_arch_t unwind_backtrace_signal_arch;
 acquire_my_map_info_list_t acquire_my_map_info_list;
@@ -109,7 +103,7 @@ static double      max_stderr_file_size = 2048*1024;
 static double      stdout_file_size = 0;
 static double      max_stdout_file_size = 2048*1024;
 
-#ifdef ANDROID
+#ifdef ANDROID_VOODOO
 static void*       libhandle;
 #endif
 
@@ -371,8 +365,13 @@ int diagnostics_init(
 #if defined(_WIN32)
 
     //_set_abort_behavior(NULL, _WRITE_ABORT_MSG);
+#ifdef __MINGW32__
+    std::set_terminate(boinc_term_func);
+    std::set_unexpected(boinc_term_func);
+#else
     set_terminate(boinc_term_func);
     set_unexpected(boinc_term_func);
+#endif
 
 #if defined(_DEBUG)
 
@@ -409,7 +408,7 @@ int diagnostics_init(
 
 #endif // defined(_WIN32)
 
-#ifdef ANDROID
+#ifdef ANDROID_VOODOO
 #define resolve_func(l,x) \
   x=(x##_t)dlsym(l,#x); \
   if (!x) {\
@@ -430,7 +429,7 @@ int diagnostics_init(
     } else {
         fprintf(stderr,"stackdumps unavailable\n");
     }
-#endif // ANDROID
+#endif // ANDROID_VOODOO
 
     // Install unhandled exception filters and signal traps.
     if (BOINC_SUCCESS != boinc_install_signal_handlers()) {
@@ -567,7 +566,7 @@ int diagnostics_finish() {
 #endif // defined(_DEBUG)
 #endif // defined(_WIN32)
 
-#ifdef ANDROID
+#ifdef ANDROID_VOODOO
     if (libhandle) {
       dlclose(libhandle);
     }
@@ -730,7 +729,7 @@ void set_signal_exit_code(int x) {
     signal_exit_code = x;
 }
 
-#ifdef ANDROID
+#ifdef ANDROID_VOODOO
 const char *argv0;
 
 static char *xtoa(size_t x) {
@@ -751,10 +750,14 @@ static char *xtoa(size_t x) {
 #endif
 
 #ifdef HAVE_SIGACTION
+#ifdef ANDROID_VOODOO
 void boinc_catch_signal(int signal, struct siginfo *siginfo, void *sigcontext) {
 #else
+void boinc_catch_signal(int signal, struct siginfo *, void *) {
+#endif  // ANDROID
+#else
 void boinc_catch_signal(int signal) {
-#endif
+#endif  // HAVE_SIGACTION
     switch(signal) {
     case SIGHUP: fprintf(stderr, "SIGHUP: terminal line hangup\n");
          return;
@@ -772,7 +775,7 @@ void boinc_catch_signal(int signal) {
     default: fprintf(stderr, "unknown signal %d\n", signal); break;
     }
 
-#ifdef __GLIBC__
+#ifdef HAVE_EXECINFO_H
     void *array[64];
     size_t size;
     size = backtrace (array, 64);
@@ -798,25 +801,33 @@ void boinc_catch_signal(int signal) {
     PrintBacktrace();
 #endif
 
-#ifdef ANDROID
-    // this is some dark undocumented Android voodoo that uses libcorkscrew.so
-    // minimal use of library functions because they may not work in an signal
+#ifdef ANDROID_VOODOO
+    // this is some dark undocumented Android voodoo that uses libcorkscrew.so.
+    // Minimal use of library functions because they may not work in a signal
     // handler.
+    //
 #define DUMP_LINE_LEN 256
     static backtrace_frame_t backtrace[64];
     static backtrace_symbol_t backtrace_symbols[64]; 
     if (unwind_backtrace_signal_arch != NULL) {
-        map_info_t *map_info=acquire_my_map_info_list();
-        ssize_t size=unwind_backtrace_signal_arch(siginfo,sigcontext,map_info,backtrace,0,64);
-        get_backtrace_symbols(backtrace,size,backtrace_symbols);
+        map_info_t *map_info = acquire_my_map_info_list();
+        ssize_t size = unwind_backtrace_signal_arch(
+            siginfo, sigcontext, map_info, backtrace, 0, 64
+        );
+        get_backtrace_symbols(backtrace, size, backtrace_symbols);
         char line[DUMP_LINE_LEN];
-        for (int i=0;i<size;i++) {
-            format_backtrace_line(i,&backtrace[i],&backtrace_symbols[i],line,DUMP_LINE_LEN);
-            line[DUMP_LINE_LEN-1]=0;
+        for (int i=0; i<size; i++) {
+            format_backtrace_line(
+                i, &backtrace[i], &backtrace_symbols[i], line, DUMP_LINE_LEN
+            );
+            line[DUMP_LINE_LEN-1] = 0;
             if (backtrace_symbols[i].symbol_name) {
                 strlcat(line," ",DUMP_LINE_LEN);
                 if (backtrace_symbols[i].demangled_name) {
-                   strlcat(line,backtrace_symbols[i].demangled_name,DUMP_LINE_LEN);
+                    strlcat(
+                        line, backtrace_symbols[i].demangled_name,
+                        DUMP_LINE_LEN
+                    );
                 }
             } else {
                 symbol_table_t* symbols = NULL;
@@ -831,28 +842,32 @@ void boinc_catch_signal(int signal) {
                 }
                 if (symbol) {
                     int offset = backtrace[i].absolute_pc - symbol->start;
-                    strlcat(line," (",DUMP_LINE_LEN);
-                    strlcat(line,symbol->name,DUMP_LINE_LEN);
-                    strlcat(line,"+",DUMP_LINE_LEN);
-                    strlcat(line,xtoa(offset),DUMP_LINE_LEN);
-                    strlcat(line,")",DUMP_LINE_LEN);
-                    line[DUMP_LINE_LEN-1]=0;
+                    strlcat(line, " (", DUMP_LINE_LEN);
+                    strlcat(line, symbol->name, DUMP_LINE_LEN);
+                    strlcat(line, "+", DUMP_LINE_LEN);
+                    strlcat(line, xtoa(offset), DUMP_LINE_LEN);
+                    strlcat(line, ")", DUMP_LINE_LEN);
+                    line[DUMP_LINE_LEN-1] = 0;
                 } else {
-                    strlcat(line, " (\?\?\?)",DUMP_LINE_LEN);
+                    strlcat(line, " (\?\?\?)", DUMP_LINE_LEN);
                 }
                 if (symbols) free_symbol_table(symbols);
             }
             if (backtrace[i].absolute_pc) {
-              strlcat(line," [",DUMP_LINE_LEN);
-              strlcat(line,xtoa(*reinterpret_cast<unsigned int *>(backtrace[i].absolute_pc)),DUMP_LINE_LEN);
-              strlcat(line,"]",DUMP_LINE_LEN);
+                strlcat(line, " [", DUMP_LINE_LEN);
+                strlcat(
+                    line,
+                    xtoa(*reinterpret_cast<unsigned int *>(backtrace[i].absolute_pc)),
+                    DUMP_LINE_LEN
+                );
+                strlcat(line, "]", DUMP_LINE_LEN);
             }
-            strlcat(line,"\n",DUMP_LINE_LEN);
-            write(fileno(stderr),line,strlen(line));
+            strlcat(line, "\n", DUMP_LINE_LEN);
+            write(fileno(stderr),line, strlen(line));
             fflush(stderr);
         }
     }
-#endif // ANDROID
+#endif // ANDROID_VOODOO
 
     fprintf(stderr, "\nExiting...\n");
     _exit(signal_exit_code);
diff --git a/lib/diagnostics.h b/lib/diagnostics.h
index 7641041..e4468e1 100644
--- a/lib/diagnostics.h
+++ b/lib/diagnostics.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINC_DIAGNOSTICS_
-#define _BOINC_DIAGNOSTICS_
+#ifndef BOINC_DIAGNOSTICS_H
+#define BOINC_DIAGNOSTICS_H
 
 
 #ifdef _WIN32
@@ -34,6 +34,11 @@
 #include <dlfcn.h>
 #endif
 
+// some of the Android stuff below causes seg faults on some devices.
+// Disable by default.
+// Set this to enable it.
+//
+//#define ANDROID_VOODOO
 
 // flags for boinc_init_diagnostics()
 //
@@ -146,7 +151,7 @@ extern void set_signal_exit_code(int);
 }
 #endif
 
-#ifdef ANDROID
+#ifdef ANDROID_VOODOO
 // Yes, these are undocumented android functions located
 // libcorkscrew.so .  They may not always be there, but it's better than
 // nothing.  And we've got source so we could reimplement them if necessary.
@@ -213,7 +218,7 @@ extern find_symbol_t find_symbol;
 typedef void (* format_backtrace_line_t)(unsigned, const backtrace_frame_t *, const backtrace_symbol_t *, char *, size_t);
 extern format_backtrace_line_t format_backtrace_line;
 
-#endif // ANDROID
+#endif // ANDROID_VOODOO
 
 #ifdef _WIN32
 
diff --git a/lib/diagnostics_win.cpp b/lib/diagnostics_win.cpp
index 9e181c9..7b6f2fd 100644
--- a/lib/diagnostics_win.cpp
+++ b/lib/diagnostics_win.cpp
@@ -27,12 +27,6 @@
 #include "win_util.h"
 #endif
 
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#define snprintf    _snprintf
-#define strdate     _strdate
-#define strtime     _strtime
-#endif
-
 #ifndef __CYGWIN32__
 #include "stackwalker_win.h"
 #endif
@@ -103,11 +97,11 @@ BOOL diagnostics_get_registry_value(LPCSTR lpName, LPDWORD lpdwType, LPDWORD lpd
 
 // Provide a structure to store process measurements at the time of a
 //   crash.
-typedef struct _BOINC_PROCESSENTRY {
+struct BOINC_PROCESSENTRY {
     DWORD               process_id;
     VM_COUNTERS         vm_counters;
     IO_COUNTERS         io_counters;
-} BOINC_PROCESSENTRY, *PBOINC_PROCESSENTRY;
+};
 
 static BOINC_PROCESSENTRY diagnostics_process;
 
@@ -122,7 +116,7 @@ static BOINC_PROCESSENTRY diagnostics_process;
 //   to dump backtraces for all threads during an abort or
 //   crash.  This is platform specific in nature since it
 //   depends on the OS datatypes.
-typedef struct _BOINC_THREADLISTENTRY {
+struct BOINC_THREADLISTENTRY {
     DWORD               thread_id;
     HANDLE              thread_handle;
     BOOL                crash_suspend_exempt;
@@ -135,14 +129,14 @@ typedef struct _BOINC_THREADLISTENTRY {
     INT                 crash_wait_reason;
     PEXCEPTION_POINTERS crash_exception_record;
     char                crash_message[1024];
-} BOINC_THREADLISTENTRY, *PBOINC_THREADLISTENTRY;
+};
 
-static std::vector<PBOINC_THREADLISTENTRY> diagnostics_threads;
+static std::vector<BOINC_THREADLISTENTRY*> diagnostics_threads;
 static HANDLE hThreadListSync;
 
 
 // Initialize the thread list entry.
-int diagnostics_init_thread_entry(PBOINC_THREADLISTENTRY entry) {
+int diagnostics_init_thread_entry(BOINC_THREADLISTENTRY *entry) {
     entry->thread_id = 0;
     entry->thread_handle = 0;
     entry->crash_suspend_exempt = FALSE;
@@ -216,8 +210,8 @@ int diagnostics_finish_thread_list() {
 
 // Return a pointer to the thread entry.
 //
-PBOINC_THREADLISTENTRY diagnostics_find_thread_entry(DWORD dwThreadId) {
-    PBOINC_THREADLISTENTRY pThread = NULL;
+BOINC_THREADLISTENTRY* diagnostics_find_thread_entry(DWORD dwThreadId) {
+    BOINC_THREADLISTENTRY* pThread = NULL;
     UINT                   uiIndex = 0;
     size_t                 size = 0;
 
@@ -283,7 +277,7 @@ int diagnostics_get_process_information(PVOID* ppBuffer, PULONG pcbBuffer) {
 int diagnostics_update_thread_list() {
     DWORD                   dwCurrentProcessId = GetCurrentProcessId();
     HANDLE                  hThread = NULL;
-    PBOINC_THREADLISTENTRY  pThreadEntry = NULL;
+    BOINC_THREADLISTENTRY   *pThreadEntry = NULL;
     ULONG                   cbBuffer = 32*1024;    // 32k initial buffer
     PVOID                   pBuffer = NULL;
     PSYSTEM_PROCESSES       pProcesses = NULL;
@@ -312,7 +306,7 @@ int diagnostics_update_thread_list() {
             // Enumerate the threads
             for(uiSystemIndex = 0; uiSystemIndex < pProcesses->ThreadCount; uiSystemIndex++) {
                 pThread = &pProcesses->Threads[uiSystemIndex];
-                pThreadEntry = diagnostics_find_thread_entry((DWORD)pThread->ClientId.UniqueThread);
+                pThreadEntry = diagnostics_find_thread_entry((DWORD)(uintptr_t)pThread->ClientId.UniqueThread);
 
                 if (pThreadEntry) {
                     pThreadEntry->crash_kernel_time = (FLOAT)pThread->KernelTime.QuadPart;
@@ -326,12 +320,12 @@ int diagnostics_update_thread_list() {
                     hThread = OpenThread(
                         THREAD_ALL_ACCESS,
                         FALSE,
-                        (DWORD)(pThread->ClientId.UniqueThread)
+                        (DWORD)(uintptr_t)(pThread->ClientId.UniqueThread)
                     );
 
                     pThreadEntry = new BOINC_THREADLISTENTRY;
                     diagnostics_init_thread_entry(pThreadEntry);
-                    pThreadEntry->thread_id = (DWORD)(pThread->ClientId.UniqueThread);
+                    pThreadEntry->thread_id = (DWORD)(uintptr_t)(pThread->ClientId.UniqueThread);
                     pThreadEntry->thread_handle = hThread;
                     pThreadEntry->crash_kernel_time = (FLOAT)pThread->KernelTime.QuadPart;
                     pThreadEntry->crash_user_time = (FLOAT)pThread->UserTime.QuadPart;
@@ -364,7 +358,7 @@ int diagnostics_update_thread_list() {
 // thread dump the human readable exception information.
 int diagnostics_set_thread_exception_record(PEXCEPTION_POINTERS pExPtrs) {
     HANDLE hThread;
-    PBOINC_THREADLISTENTRY pThreadEntry = NULL;
+    BOINC_THREADLISTENTRY *pThreadEntry = NULL;
 
     // Wait for the ThreadListSync mutex before writing updates
     WaitForSingleObject(hThreadListSync, INFINITE);
@@ -401,7 +395,7 @@ int diagnostics_set_thread_exception_record(PEXCEPTION_POINTERS pExPtrs) {
 // Set the current thread to suspend exempt status.  Prevents deadlocks.
 int diagnostics_set_thread_exempt_suspend() {
     HANDLE hThread;
-    PBOINC_THREADLISTENTRY pThreadEntry = NULL;
+    BOINC_THREADLISTENTRY *pThreadEntry = NULL;
 
     // Wait for the ThreadListSync mutex before writing updates
     WaitForSingleObject(hThreadListSync, INFINITE);
@@ -440,7 +434,7 @@ int diagnostics_set_thread_exempt_suspend() {
 // prototype needs to be compatible with C.
 int diagnostics_is_thread_exempt_suspend(long thread_id) {
     int retval = 1;
-    PBOINC_THREADLISTENTRY pThreadEntry = NULL;
+    BOINC_THREADLISTENTRY *pThreadEntry = NULL;
 
     // Wait for the ThreadListSync mutex before writing updates
     WaitForSingleObject(hThreadListSync, INFINITE);
@@ -462,7 +456,7 @@ int diagnostics_is_thread_exempt_suspend(long thread_id) {
 // Set the current thread's crash message.
 int diagnostics_set_thread_crash_message(char* message) {
     HANDLE hThread;
-    PBOINC_THREADLISTENTRY pThreadEntry = NULL;
+    BOINC_THREADLISTENTRY *pThreadEntry = NULL;
 
     // Wait for the ThreadListSync mutex before writing updates
     WaitForSingleObject(hThreadListSync, INFINITE);
@@ -1335,7 +1329,7 @@ int diagnostics_dump_process_information() {
 
 // Dump the captured information for a given thread.
 //
-int diagnostics_dump_thread_information(PBOINC_THREADLISTENTRY pThreadEntry) {
+int diagnostics_dump_thread_information(BOINC_THREADLISTENTRY *pThreadEntry) {
     std::string strStatusExtra;
 
     if (pThreadEntry->crash_state == StateWait) {
@@ -1557,7 +1551,7 @@ UINT WINAPI diagnostics_unhandled_exception_monitor(LPVOID /* lpParameter */) {
     unsigned int i;
     CONTEXT      c;
     BOINC_WINDOWCAPTURE window_info;
-    PBOINC_THREADLISTENTRY pThreadEntry = NULL;
+    BOINC_THREADLISTENTRY *pThreadEntry = NULL;
 
     // We should not suspend our crash dump thread.
     diagnostics_set_thread_exempt_suspend();
diff --git a/lib/diagnostics_win.h b/lib/diagnostics_win.h
index 82af90d..3bb304a 100644
--- a/lib/diagnostics_win.h
+++ b/lib/diagnostics_win.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINC_DIAGNOSTICS_WIN_
-#define _BOINC_DIAGNOSTICS_WIN_
+#ifndef BOINC_DIAGNOSTICS_WIN_H
+#define BOINC_DIAGNOSTICS_WIN_H
 
 #include "boinc_win.h"
 
@@ -27,7 +27,7 @@ typedef LONG       NTSTATUS;
 typedef LONG       KPRIORITY;
 
 //MinGW-W64 defines this struct in its own header
-#ifndef HAVE_CLIENT_ID
+#if !defined(HAVE_CLIENT_ID) && !defined(__MINGW32__)
 typedef struct _CLIENT_ID {
     DWORD          UniqueProcess;
     DWORD          UniqueThread;
@@ -35,7 +35,7 @@ typedef struct _CLIENT_ID {
 #endif
 
 //MinGW-W64 defines this struct in its own header
-#ifndef HAVE_VM_COUNTERS
+#if !defined(HAVE_VM_COUNTERS) && !defined(__MINGW32__)
 typedef struct _VM_COUNTERS {
 #ifdef _WIN64
 // the following was inferred by painful reverse engineering
@@ -67,7 +67,7 @@ typedef struct _VM_COUNTERS {
 #endif
 
 //MinGW-W64 defines this struct in its own header
-#ifndef HAVE_SYSTEM_THREADS
+#if !defined(HAVE_SYSTEM_THREADS) && !defined(__MINGW32__)
 typedef struct _SYSTEM_THREADS {
     LARGE_INTEGER  KernelTime;
     LARGE_INTEGER  UserTime;
@@ -112,7 +112,7 @@ typedef struct _SYSTEM_PROCESSES {
 #endif
 
 //MinGW-W64 defines this struct in its own header
-#ifndef HAVE_THREAD_STATE
+#if !defined(HAVE_THREAD_STATE) && !defined(__MINGW32__)
 typedef enum _THREAD_STATE {
     StateInitialized,
     StateReady,
@@ -150,4 +150,11 @@ typedef enum _THREAD_WAIT_REASON {
 } THREAD_WAIT_REASON;
 #endif
 
+// older mingw versions (before 2012-07-12) do not define this in winternl.h
+#if defined(__MINGW32__)
+#ifndef NT_SUCCESS
+#define NT_SUCCESS(status)     ((NTSTATUS) (status) >= 0)
+#endif
+#endif
+
 #endif
diff --git a/lib/error_numbers.h b/lib/error_numbers.h
index 911f29d..4dec93a 100644
--- a/lib/error_numbers.h
+++ b/lib/error_numbers.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _ERROR_NUMBERS_H_
-#define _ERROR_NUMBERS_H_
+#ifndef BOINC_ERROR_NUMBERS_H
+#define BOINC_ERROR_NUMBERS_H
 
 // The following are process exit codes (not function return values).
 // They are used by the core client and apps.
@@ -212,6 +212,7 @@
 #define ERR_NEED_HTTPS      -238
 #define ERR_CHMOD           -239
 #define ERR_STAT            -240
+#define ERR_FCLOSE          -241
 
 // PLEASE: add a text description of your error to 
 // the text description function boincerror() in str_util.cpp.
diff --git a/lib/filesys.cpp b/lib/filesys.cpp
index 21368fe..a54e833 100644
--- a/lib/filesys.cpp
+++ b/lib/filesys.cpp
@@ -42,7 +42,6 @@
 #include <cerrno>
 #include <sys/stat.h>
 #include <sys/file.h>
-#include <ctime>
 #include <cstring>
 #include <cstdlib>
 #include <sys/time.h>
@@ -77,6 +76,10 @@
 
 #include "filesys.h"
 
+#ifdef __APPLE__
+#include "mac_spawn.h"
+#endif
+
 #ifdef _WIN32
 typedef BOOL (CALLBACK* FreeFn)(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
 #endif
@@ -89,24 +92,28 @@ char boinc_failed_file[MAXPATHLEN];
 
 int is_file(const char* path) {
 #ifdef _WIN32
-    struct __stat64 sbuf;
-    int retval = _stat64(path, &sbuf);
+    DWORD dwAttrib = GetFileAttributesA(path);
+    return (dwAttrib != INVALID_FILE_ATTRIBUTES
+        && !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY)
+    );
 #else
     struct stat sbuf;
     int retval = lstat(path, &sbuf);
-#endif
     return (!retval && (((sbuf.st_mode) & S_IFMT) == S_IFREG));
+#endif
 }
 
 int is_dir(const char* path) {
 #ifdef _WIN32
-    struct __stat64 sbuf;
-    int retval = _stat64(path, &sbuf);
+    DWORD dwAttrib = GetFileAttributesA(path);
+    return (dwAttrib != INVALID_FILE_ATTRIBUTES
+        && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY)
+    );
 #else
     struct stat sbuf;
     int retval = lstat(path, &sbuf);
-#endif
     return (!retval && (((sbuf.st_mode) & S_IFMT) == S_IFDIR));
+#endif
 }
 
 #ifndef _WIN32
@@ -343,18 +350,24 @@ int boinc_delete_file(const char* path) {
 // get file size
 //
 int file_size(const char* path, double& size) {
-    int retval;
-
 #if defined(_WIN32) && !defined(__CYGWIN32__) && !defined(__MINGW32__)
-    struct __stat64 sbuf;
-    retval = _stat64(path, &sbuf);
+    HANDLE h = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
+    if (h == INVALID_HANDLE_VALUE) return ERR_STAT;
+    LARGE_INTEGER lisize;
+    if (GetFileSizeEx(h, &lisize)) {
+        size = (double) lisize.QuadPart;
+        CloseHandle(h);
+        return 0;
+    }
+    return ERR_STAT;
 #else
+    int retval;
     struct stat sbuf;
     retval = stat(path, &sbuf);
-#endif
     if (retval) return ERR_NOT_FOUND;
     size = (double)sbuf.st_size;
     return 0;
+#endif
 }
 
 int boinc_truncate(const char* path, double size) {
@@ -527,34 +540,40 @@ FILE* boinc_fopen(const char* path, const char* mode) {
     return f;
 }
 
-
+// returns true if anything (file, dir, whatever) exists at given path;
+// name is misleading.
+//
 int boinc_file_exists(const char* path) {
 #ifdef _WIN32
-    struct __stat64 buf;
-    if (_stat64(path, &buf)) {
+    // don't use _stat64 because it doesn't work with VS2015, XP client
+    DWORD dwAttrib = GetFileAttributesA(path);
+    return (dwAttrib != INVALID_FILE_ATTRIBUTES
+        && !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY)
+    );
 #else
     struct stat buf;
     if (stat(path, &buf)) {
-#endif
         return false;     // stat() returns zero on success
     }
     return true;
+#endif
 }
 
+#if 0
 // same, but doesn't traverse symlinks
 //
 int boinc_file_or_symlink_exists(const char* path) {
 #ifdef _WIN32
-    struct __stat64 buf;
-    if (_stat64(path, &buf)) {
+    return boinc_file_exists(path);
 #else
     struct stat buf;
     if (lstat(path, &buf)) {
-#endif
         return false;     // stat() returns zero on success
     }
     return true;
+#endif
 }
+#endif
 
 // returns zero on success, nonzero if didn't touch file
 //
@@ -592,6 +611,7 @@ int boinc_copy(const char* orig, const char* newf) {
     // system() invokes a shell, it may not properly copy the file's 
     // ownership or permissions when called from the BOINC Client 
     // under sandbox security, so we copy the file directly.
+    //
     FILE *src, *dst;
     int m, n;
     int retval = 0;
@@ -605,15 +625,29 @@ int boinc_copy(const char* orig, const char* newf) {
     }
     while (1) {
         n = fread(buf, 1, sizeof(buf), src);
-        if (n <= 0) break;
+        if (n <= 0) {
+            // could be either EOF or an error.
+            // Check for error case.
+            //
+            if (!feof(src)) {
+                retval = ERR_FREAD;
+            }
+            break;
+        }
         m = fwrite(buf, 1, n, dst);
         if (m != n) {
             retval = ERR_FWRITE;
             break;
         }
     }
-    fclose(src);
-    fclose(dst);
+    if (fclose(src)){
+       fclose(dst);
+       return ERR_FCLOSE;
+    }
+
+    if (fclose(dst)){
+       return ERR_FCLOSE;
+    }
     return retval;
 #endif
 }
@@ -652,7 +686,13 @@ static int boinc_rename_aux(const char* old, const char* newf) {
     if (retval) {
         char buf[MAXPATHLEN+MAXPATHLEN];
         sprintf(buf, "mv \"%s\" \"%s\"", old, newf);
+#ifdef __APPLE__
+        // system() is deprecated in Mac OS 10.10.
+        // Apple says to call posix_spawn instead.
+        retval = callPosixSpawn(buf);
+#else
         retval = system(buf);
+#endif
     }
     if (retval) return ERR_RENAME;
     return 0;
@@ -747,14 +787,16 @@ int boinc_make_dirs(const char* dirpath, const char* filepath) {
 
 
 FILE_LOCK::FILE_LOCK() {
-#ifndef _WIN32
+#if defined(_WIN32) && !defined(__CYGWIN32__)
+  handle = INVALID_HANDLE_VALUE;
+#else
     fd = -1;
 #endif
     locked = false;
 }
 
 FILE_LOCK::~FILE_LOCK() {
-#ifndef _WIN32
+#if !defined(_WIN32) || defined(__CYGWIN32__)
     if (fd >= 0) close(fd);
 #endif
 }
@@ -782,7 +824,12 @@ int FILE_LOCK::lock(const char* filename) {
     fl.l_start = 0;
     fl.l_len = 0;
     if (fcntl(fd, F_SETLK, &fl) == -1) {
-        return ERR_FCNTL;
+        // ENOSYS means file locking is not implemented in this FS.
+        // In this case just return success (i.e. don't actually do locking)
+        //
+        if (errno != ENOSYS) {
+            return ERR_FCNTL;
+        }
     }
 #endif
     locked = true;
@@ -821,6 +868,7 @@ void relative_to_absolute(const char* relname, char* path) {
     }
 }
 
+
 #if defined(_WIN32)
 int boinc_allocate_file(const char* path, double size) {
     int retval = 0;
@@ -846,9 +894,42 @@ int boinc_allocate_file(const char* path, double size) {
     CloseHandle(h);
     return retval;
 }
+
+FILE* boinc_temp_file(
+    const char* dir, const char* prefix, char* temp_path, double size
+) {
+    GetTempFileNameA(dir, prefix, 0, temp_path);
+    boinc_allocate_file(temp_path, size);
+    return boinc_fopen(temp_path, "wb");
+}
+
+#else
+
+// Unix version: use mkstemp.  tempnam() prioritizes an env var
+// in deciding where to put temp file
+
+FILE* boinc_temp_file(const char* dir, const char* prefix, char* temp_path) {
+    sprintf(temp_path, "%s/%s_XXXXXX", dir, prefix);
+    int fd = mkstemp(temp_path);
+    if (fd < 0) {
+        return 0;
+    }
+    return fdopen(fd, "wb");
+}
+
 #endif
 
-// get total and free dpace on current filesystem (in bytes)
+void boinc_path_to_dir(const char* path, char* dir) {
+    strcpy(dir, path);
+    char* p = strrchr(dir, '/');
+    if (p) {
+        *p = 0;
+    } else {
+        strcpy(dir, ".");
+    }
+}
+
+// get total and free space on current filesystem (in bytes)
 //
 #ifdef _WIN32
 int get_filesystem_info(double &total_space, double &free_space, char*) {
diff --git a/lib/filesys.h b/lib/filesys.h
index 1cef251..9b174f2 100644
--- a/lib/filesys.h
+++ b/lib/filesys.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _FILESYS_
-#define _FILESYS_
+#ifndef BOINC_FILESYS_H
+#define BOINC_FILESYS_H
 
 #if defined(_WIN32) && !defined(__CYGWIN32__)
 #include "boinc_win.h"
@@ -43,34 +43,44 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-  extern int boinc_delete_file(const char*);
-  extern int boinc_touch_file(const char *path);
-  extern FILE* boinc_fopen(const char* path, const char* mode);
-    // like fopen(), except:
-    // retry a few times on failure
-    // Unix: set close-on-exec flag
-  extern int boinc_copy(const char* orig, const char* newf);
-  extern int boinc_rename(const char* old, const char* newf);
-  extern int boinc_mkdir(const char*);
+    extern int boinc_delete_file(const char*);
+    extern int boinc_touch_file(const char *path);
+    extern FILE* boinc_fopen(const char* path, const char* mode);
+        // like fopen(), except:
+        // retry a few times on failure
+        // Unix: set close-on-exec flag
+    extern int boinc_copy(const char* orig, const char* newf);
+    extern int boinc_rename(const char* old, const char* newf);
+    extern int boinc_mkdir(const char*);
 #ifdef _WIN32
-  extern int boinc_allocate_file(const char*, double size);
+    extern int boinc_allocate_file(const char*, double size);
 #else
-  extern int boinc_copy_attributes(const char* orig, const char* newf);
-  extern int boinc_chown(const char*, gid_t);
+    extern int boinc_copy_attributes(const char* orig, const char* newf);
+    extern int boinc_chown(const char*, gid_t);
 #endif
-  extern int boinc_rmdir(const char*);
-  extern void boinc_getcwd(char*);
-  extern void relative_to_absolute(const char* relname, char* path);
-  extern int boinc_make_dirs(const char*, const char*);
-  extern char boinc_failed_file[MAXPATHLEN];
-  extern int is_file(const char* path);
-  extern int is_dir(const char* path);
-  extern int is_file_follow_symlinks(const char* path);
-  extern int is_dir_follow_symlinks(const char* path);
-  extern int is_symlink(const char* path);
-  extern int boinc_truncate(const char*, double);
-  extern int boinc_file_exists(const char* path);
-  extern int boinc_file_or_symlink_exists(const char* path);
+    extern int boinc_rmdir(const char*);
+    extern void boinc_getcwd(char*);
+    extern void relative_to_absolute(const char* relname, char* path);
+    extern int boinc_make_dirs(const char*, const char*);
+    extern char boinc_failed_file[MAXPATHLEN];
+    extern int is_file(const char* path);
+    extern int is_dir(const char* path);
+    extern int is_file_follow_symlinks(const char* path);
+    extern int is_dir_follow_symlinks(const char* path);
+    extern int is_symlink(const char* path);
+    extern int boinc_truncate(const char*, double);
+    extern int boinc_file_exists(const char* path);
+    extern int boinc_file_or_symlink_exists(const char* path);
+#ifdef _WIN32
+    extern FILE* boinc_temp_file(
+        const char* dir, const char* prefix, char* temp_path, double size
+    );
+#else
+    extern FILE* boinc_temp_file(const char* dir, const char* prefix, char* temp_path);
+#endif
+    extern void boinc_path_to_dir(const char* path, char* dir);
+        // given a file path, get path of its directory
+        // (i.e. remove the last / and what follows)
 
 #ifdef __cplusplus
 }
diff --git a/lib/gui_rpc_client.h b/lib/gui_rpc_client.h
index e42917f..fda40d0 100644
--- a/lib/gui_rpc_client.h
+++ b/lib/gui_rpc_client.h
@@ -17,8 +17,8 @@
 
 // a C++ interface to BOINC GUI RPC
 
-#ifndef _GUI_RPC_CLIENT_H_
-#define _GUI_RPC_CLIENT_H_
+#ifndef BOINC_GUI_RPC_CLIENT_H
+#define BOINC_GUI_RPC_CLIENT_H
 
 #if !defined(_WIN32) || defined (__CYGWIN__)
 #include <cstdio>
@@ -364,6 +364,7 @@ struct GR_PROXY_INFO {
     int socks_server_port;
     std::string socks5_user_name;
     std::string socks5_user_passwd;
+    bool socks5_remote_dns;
 
 	std::string noproxy_hosts;
 
@@ -400,7 +401,10 @@ struct CC_STATE {
     APP_VERSION* lookup_app_version(PROJECT*, APP*,
         char* platform, int vnum, char* plan_class
     );
-    APP_VERSION* lookup_app_version_old(PROJECT*, APP*, int);
+    APP_VERSION* lookup_app_version(PROJECT*, APP*,
+        int vnum, char* plan_class
+    );
+    APP_VERSION* lookup_app_version(PROJECT*, APP*, int vnum);
     WORKUNIT* lookup_wu(PROJECT*, const char* name);
     RESULT* lookup_result(PROJECT*, const char* name);
     RESULT* lookup_result(const char* url, const char* name);
@@ -748,6 +752,8 @@ struct RPC_CLIENT {
     int set_global_prefs_override_struct(GLOBAL_PREFS&, GLOBAL_PREFS_MASK&);
     int get_cc_config(CC_CONFIG& config, LOG_FLAGS& log_flags);
     int set_cc_config(CC_CONFIG& config, LOG_FLAGS& log_flags);
+    int get_app_config(const char* url, APP_CONFIGS& conf);
+    int set_app_config(const char* url, APP_CONFIGS& conf);
     int get_daily_xfer_history(DAILY_XFER_HISTORY&);
 	int set_language(const char*);
 };
@@ -835,4 +841,4 @@ struct SET_LOCALE {
 
 extern int read_gui_rpc_password(char*);
 
-#endif /* _GUI_RPC_CLIENT_H_ */
+#endif // BOINC_GUI_RPC_CLIENT_H
diff --git a/lib/gui_rpc_client_ops.cpp b/lib/gui_rpc_client_ops.cpp
index 86a9089..74bd32a 100644
--- a/lib/gui_rpc_client_ops.cpp
+++ b/lib/gui_rpc_client_ops.cpp
@@ -703,6 +703,7 @@ void RESULT::clear() {
     version_num = 0;
     safe_strcpy(plan_class, "");
     safe_strcpy(project_url, "");
+    safe_strcpy(platform, "");
     safe_strcpy(graphics_exec_path, "");
     safe_strcpy(web_graphics_url, "");
     safe_strcpy(remote_desktop_addr, "");
@@ -845,7 +846,6 @@ GR_PROXY_INFO::GR_PROXY_INFO() {
 }
 
 int GR_PROXY_INFO::parse(XML_PARSER& xp) {
-	std::string noproxy;
     use_http_proxy = false;
     use_socks_proxy = false;
     use_http_authentication = false;
@@ -855,6 +855,7 @@ int GR_PROXY_INFO::parse(XML_PARSER& xp) {
         if (xp.parse_int("socks_server_port", socks_server_port)) continue;
         if (xp.parse_string("socks5_user_name", socks5_user_name)) continue;
         if (xp.parse_string("socks5_user_passwd", socks5_user_passwd)) continue;
+        if (xp.parse_bool("socks5_remote_dns", socks5_remote_dns)) continue;
         if (xp.parse_string("http_server_name", http_server_name)) continue;
         if (xp.parse_int("http_server_port", http_server_port)) continue;
         if (xp.parse_string("http_user_name", http_user_name)) continue;
@@ -879,6 +880,7 @@ void GR_PROXY_INFO::clear() {
     http_user_passwd.clear();
     socks5_user_name.clear();
     socks5_user_passwd.clear();
+    socks5_remote_dns = false;
 	noproxy_hosts.clear();
 }
 
@@ -968,13 +970,18 @@ int CC_STATE::parse(XML_PARSER& xp) {
             }
             result->app = result->wup->app;
             APP_VERSION* avp;
-            if (result->version_num) {
+            if (strlen(result->platform)) {
                 avp = lookup_app_version(
                     project, result->app,
                     result->platform, result->version_num, result->plan_class
                 );
+            } else if (result->version_num) {
+                avp = lookup_app_version(
+                    project, result->app,
+                    result->version_num, result->plan_class
+                );
             } else {
-                avp = lookup_app_version_old(
+                avp = lookup_app_version(
                     project, result->app, result->wup->version_num
                 );
             }
@@ -1072,7 +1079,22 @@ APP_VERSION* CC_STATE::lookup_app_version(
     return 0;
 }
 
-APP_VERSION* CC_STATE::lookup_app_version_old(
+APP_VERSION* CC_STATE::lookup_app_version(
+    PROJECT* project, APP* app,
+    int version_num, char* plan_class
+) {
+    unsigned int i;
+    for (i=0; i<app_versions.size(); i++) {
+        if (app_versions[i]->project != project) continue;
+        if (app_versions[i]->app != app) continue;
+        if (app_versions[i]->version_num != version_num) continue;
+        if (strcmp(app_versions[i]->plan_class, plan_class)) continue;
+        return app_versions[i];
+    }
+    return 0;
+}
+
+APP_VERSION* CC_STATE::lookup_app_version(
     PROJECT* project, APP* app, int version_num
 ) {
     unsigned int i;
@@ -1956,6 +1978,7 @@ int RPC_CLIENT::set_proxy_settings(GR_PROXY_INFO& procinfo) {
         "        <socks_server_port>%d</socks_server_port>\n"
         "        <socks5_user_name>%s</socks5_user_name>\n"
         "        <socks5_user_passwd>%s</socks5_user_passwd>\n"		
+        "        <socks5_remote_dns>%d</socks5_remote_dns>\n"		
 		"        <no_proxy>%s</no_proxy>\n"
         "    </proxy_info>\n"
         "</set_proxy_settings>\n",
@@ -1970,6 +1993,7 @@ int RPC_CLIENT::set_proxy_settings(GR_PROXY_INFO& procinfo) {
         procinfo.socks_server_port,
         procinfo.socks5_user_name.c_str(),
         procinfo.socks5_user_passwd.c_str(),
+        procinfo.socks5_remote_dns?1:0,
 		procinfo.noproxy_hosts.c_str()
     );
     buf[sizeof(buf)-1] = 0;
@@ -2368,14 +2392,19 @@ int RPC_CLIENT::get_newer_version(std::string& version, std::string& version_dow
     RPC rpc(this);
 
     version = "";
+    version_download_url = "";
+
     retval = rpc.do_rpc("<get_newer_version/>\n");
     if (!retval) {
         while (rpc.fin.fgets(buf, 256)) {
+            if (!version.empty() && !version_download_url.empty()) {
+                break;
+            }
             if (parse_str(buf, "<newer_version>", version)) {
-                return ERR_XML_PARSE;
+                continue;
             }
             if (parse_str(buf, "<download_url>", version_download_url)) {
-                return ERR_XML_PARSE;
+                continue;
             }
         }
     }
@@ -2577,11 +2606,59 @@ int RPC_CLIENT::set_cc_config(CC_CONFIG& config, LOG_FLAGS& log_flags) {
     mf.init_buf_write(buf, sizeof(buf));
     config.write(mf, log_flags);
 
+    string x = string("<set_cc_config>\n")+buf+string("</set_cc_config>\n");
+    retval = rpc.do_rpc(x.c_str());
+    if (retval) return retval;
+    return rpc.parse_reply();
+}
+
+int RPC_CLIENT::get_app_config(const char* url, APP_CONFIGS& config) {
+    int retval;
+    static LOG_FLAGS log_flags;
+    SET_LOCALE sl;
+    RPC rpc(this);
+    MSG_VEC mv;
+    char buf[1024];
+
+    sprintf(buf,
+        "<get_app_config>\n"
+        "    <url>%s</url>\n"
+        "</get_app_config>\n",
+        url
+    );
     retval = rpc.do_rpc(buf);
     if (retval) return retval;
+
+    while (!rpc.xp.get_tag()) {
+        if (rpc.xp.match_tag("app_config")) {
+            return config.parse(rpc.xp, mv, log_flags);
+        } else if (rpc.xp.match_tag("error")) {
+            rpc.xp.element_contents("</error>", buf, sizeof(buf));
+            printf("get_app_config error: %s\n", buf);
+            return -1;
+        }
+    }
+    return ERR_XML_PARSE;
+}
+
+int RPC_CLIENT::set_app_config(const char* url, APP_CONFIGS& config) {
+    SET_LOCALE sl;
+    char buf[64000];
+    MIOFILE mf;
+    int retval;
+    RPC rpc(this);
+
+    mf.init_buf_write(buf, sizeof(buf));
+    mf.printf("<url>%s</url>\n", url);
+    config.write(mf);
+
+    string x = string("<set_app_config>\n")+buf+string("</set_app_config>\n");
+    retval = rpc.do_rpc(x.c_str());
+    if (retval) return retval;
     return rpc.parse_reply();
 }
 
+
 static int parse_notices(XML_PARSER& xp, NOTICES& notices) {
     int retval;
 
diff --git a/lib/gui_rpc_client_print.cpp b/lib/gui_rpc_client_print.cpp
index b03c117..77b033f 100644
--- a/lib/gui_rpc_client_print.cpp
+++ b/lib/gui_rpc_client_print.cpp
@@ -118,9 +118,22 @@ void APP::print() {
 }
 
 void APP_VERSION::print() {
+    printf("   project: %s\n", project->project_name.c_str());
     printf("   application: %s\n", app->name);
+    printf("   platform: %s\n", platform);
+    if (strlen(plan_class)) {
+        printf("   plan class: %s\n", plan_class);
+    }
     printf("   version: %.2f\n", version_num/100.0);
-    printf("   project: %s\n", project->project_name.c_str());
+    if (avg_ncpus != 1) {
+        printf("   avg #CPUS: %.3f\n", avg_ncpus);
+    }
+    if (gpu_type != PROC_TYPE_CPU) {
+        printf("   coprocessor type: %s\n", proc_type_name(gpu_type));
+        printf("   coprocessor usage: %.3f\n", gpu_usage);
+    }
+    printf("   estimated GFLOPS: %.2f\n", flops/1e9);
+    printf("   filename: %s\n", exec_filename);
 }
 
 void WORKUNIT::print() {
@@ -135,7 +148,9 @@ void RESULT::print() {
     printf("   name: %s\n", name);
     printf("   WU name: %s\n", wu_name);
     printf("   project URL: %s\n", project_url);
-    time_t foo = (time_t)report_deadline;
+    time_t foo = (time_t)received_time;
+    printf("   received: %s", ctime(&foo));
+    foo = (time_t)report_deadline;
     printf("   report deadline: %s", ctime(&foo));
     printf("   ready to report: %s\n", ready_to_report?"yes":"no");
     printf("   got server ack: %s\n", got_server_ack?"yes":"no");
diff --git a/lib/hostinfo.cpp b/lib/hostinfo.cpp
index 5ecb729..475fd70 100644
--- a/lib/hostinfo.cpp
+++ b/lib/hostinfo.cpp
@@ -124,6 +124,7 @@ int HOST_INFO::parse(XML_PARSER& xp, bool static_items_only) {
         if (xp.parse_double("d_free", d_free)) continue;
         if (xp.parse_str("os_name", os_name, sizeof(os_name))) continue;
         if (xp.parse_str("os_version", os_version, sizeof(os_version))) continue;
+        if (xp.parse_str("product_name", product_name, sizeof(product_name))) continue;
         if (xp.parse_str("virtualbox_version", virtualbox_version, sizeof(virtualbox_version))) continue;
         if (xp.match_tag("coprocs")) {
             this->coprocs.parse(xp);
@@ -144,7 +145,8 @@ int HOST_INFO::parse(XML_PARSER& xp, bool static_items_only) {
 // - client state XML file (net info, coprocs)
 // - a GUI RPC reply (net info, coprocs)
 // - a scheduler request message
-//   (net info unless config says otherwise, no coprocs)
+//   (net info unless config says otherwise,
+//   no coprocs - we write them separately)
 // - account manager request
 //   (net info unless config says otherwise, coprocs)
 // - app init file (net info, coprocs)
@@ -188,7 +190,8 @@ int HOST_INFO::write(
         "    <d_total>%f</d_total>\n"
         "    <d_free>%f</d_free>\n"
         "    <os_name>%s</os_name>\n"
-        "    <os_version>%s</os_version>\n",
+        "    <os_version>%s</os_version>\n"
+        "    <n_usable_coprocs>%d</n_usable_coprocs>\n",
         host_cpid,
         p_ncpus,
         pv,
@@ -205,7 +208,8 @@ int HOST_INFO::write(
         d_total,
         d_free,
         osn,
-        osv
+        osv,
+        coprocs.ndevs()
     );
     if (strlen(product_name)) {
         xml_escape(product_name, pn, sizeof(pn));
diff --git a/lib/hostinfo.h b/lib/hostinfo.h
index a04d08e..e18e265 100644
--- a/lib/hostinfo.h
+++ b/lib/hostinfo.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _HOSTINFO_
-#define _HOSTINFO_
+#ifndef BOINC_HOSTINFO_H
+#define BOINC_HOSTINFO_H
 
 // Description of a host's hardware and software.
 // This is used a few places:
@@ -62,7 +62,6 @@ public:
     char os_name[256];
     char os_version[256];
     char product_name[256];       // manufacturer and/or model of system
-                                  // currently used for Android devices
     char mac_address[256];      // MAC addr e.g. 00:00:00:00:00:00
                                 // currently populated for Android
 
@@ -103,6 +102,8 @@ public:
 };
 
 #ifdef __APPLE__
+    int get_system_uptime();
+
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/lib/idlemon.h b/lib/idlemon.h
index b46acce..a3de636 100644
--- a/lib/idlemon.h
+++ b/lib/idlemon.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINC_IDLEMONITOR_H_
-#define _BOINC_IDLEMONITOR_H_
+#ifndef BOINC_IDLEMON_H
+#define BOINC_IDLEMON_H
 
 extern bool startup_idle_monitor();
 extern bool attach_idle_monitor();
diff --git a/lib/md5_file.h b/lib/md5_file.h
index a283f46..64db520 100644
--- a/lib/md5_file.h
+++ b/lib/md5_file.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef h_MD5_FILE
-#define h_MD5_FILE
+#ifndef BOINC_MD5_FILE_H
+#define BOINC_MD5_FILE_H
 
 #include <string>
 
diff --git a/lib/mem_usage.h b/lib/mem_usage.h
index 3ef9465..882dd0c 100644
--- a/lib/mem_usage.h
+++ b/lib/mem_usage.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __MEM_USAGE__
-#define __MEM_USAGE__
+#ifndef BOINC_MEM_USAGE_H
+#define BOINC_MEM_USAGE_H
 
 extern int mem_usage(double& vm_usage, double& resident_set);
 
diff --git a/lib/mfile.h b/lib/mfile.h
index 39e68a6..1708059 100644
--- a/lib/mfile.h
+++ b/lib/mfile.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _MFILE_
-#define _MFILE_
+#ifndef BOINC_MFILE_H
+#define BOINC_MFILE_H
 
 #include <cstdio>
 #include <cstdarg>
diff --git a/lib/miofile.h b/lib/miofile.h
index 8b31d1b..cff7f07 100644
--- a/lib/miofile.h
+++ b/lib/miofile.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _MIOFILE_
-#define _MIOFILE_
+#ifndef BOINC_MIOFILE_H
+#define BOINC_MIOFILE_H
 
 #ifdef _USING_FCGI_
 #include "boinc_fcgi.h"
diff --git a/lib/msg_log.cpp b/lib/msg_log.cpp
index f390183..6bd438d 100644
--- a/lib/msg_log.cpp
+++ b/lib/msg_log.cpp
@@ -18,7 +18,6 @@
 #ifdef _WIN32
 #include "boinc_win.h"
 #else
-#include "config.h"
 #include <cstring>
 #include <string>
 #endif
@@ -67,9 +66,11 @@ MSG_LOG::MSG_LOG(FILE* output_) {
     debug_level = 0;
     output = output_;
     indent_level = 0;
-    spaces[0] = 0;
     pid = 0;
-    safe_strcpy(spaces+1, "                                                                              ");
+    spaces[0] = 0;
+    for (int i=1; i<80; i++) {
+        spaces[i] = 0;
+    }
 }
 
 void MSG_LOG::enter_level(int diff) {
@@ -83,6 +84,15 @@ void MSG_LOG::enter_level(int diff) {
     spaces[indent_level] = 0;
 }
 
+void MSG_LOG::set_indent_level(const int new_indent_level) {
+    if (new_indent_level < 0) indent_level = 0;
+    else if (new_indent_level > 39) indent_level = 39;
+    else indent_level = new_indent_level;
+
+    memset(spaces, ' ', sizeof(spaces));
+    spaces[indent_level] = 0;
+}
+
 void MSG_LOG::vprintf(int kind, const char* format, va_list va) {
     char buf[256];
     const char* now_timestamp = precision_time_to_string(dtime());
diff --git a/lib/msg_log.h b/lib/msg_log.h
index c112d25..191c374 100644
--- a/lib/msg_log.h
+++ b/lib/msg_log.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINC_MSG_LOG_H_
-#define _BOINC_MSG_LOG_H_
+#ifndef BOINC_MSG_LOG_H
+#define BOINC_MSG_LOG_H
 
 #include <cstdio>
 #include <cstdarg>
@@ -42,9 +42,9 @@
 class MSG_LOG {
 public:
     int debug_level;
+    int indent_level;
     char spaces[80];
     FILE* output;
-    int indent_level;
     int pid;
 
     MSG_LOG(FILE* output);
@@ -61,6 +61,9 @@ public:
     void vprintf(int kind, const char* format, va_list va);
     void vprintf_multiline(int kind, const char* str, const char* prefix_format, va_list va);
     void vprintf_file(int kind, const char* filename, const char* prefix_format, va_list va);
+    void set_debug_level(int new_level) { debug_level = new_level; }
+    void set_indent_level(int new_level);
+
 
 protected:
 
diff --git a/lib/msg_queue.h b/lib/msg_queue.h
index 76a9693..7c91bae 100644
--- a/lib/msg_queue.h
+++ b/lib/msg_queue.h
@@ -17,8 +17,8 @@
 
 // DEPRECATED
 
-#ifndef _MSG_QUEUE_
-#define _MSG_QUEUE_
+#ifndef BOINC_MSG_QUEUE_H
+#define BOINC_MSG_QUEUE_H
 
 #include <sys/types.h>
 #include <sys/ipc.h>
diff --git a/lib/network.h b/lib/network.h
index b2af6e7..64a389d 100644
--- a/lib/network.h
+++ b/lib/network.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _BOINC_NETWORK_H_
-#define _BOINC_NETWORK_H_
+#ifndef BOINC_NETWORK_H
+#define BOINC_NETWORK_H
 
 #include <string.h>
 #ifdef _WIN32
diff --git a/lib/notice.h b/lib/notice.h
index ff3580e..56fa482 100644
--- a/lib/notice.h
+++ b/lib/notice.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __NOTICE_H__
-#define __NOTICE_H__
+#ifndef BOINC_NOTICE_H
+#define BOINC_NOTICE_H
 
 #include <string>
 
diff --git a/lib/opencl_boinc.cpp b/lib/opencl_boinc.cpp
index 270fa0a..8dbe466 100644
--- a/lib/opencl_boinc.cpp
+++ b/lib/opencl_boinc.cpp
@@ -306,7 +306,7 @@ void OPENCL_DEVICE_PROP::description(char* buf, int buflen, const char* type) {
 // this is here to take advantage of the other OpenCL code.
 void OPENCL_CPU_PROP::clear() {
     platform_vendor[0] = 0;
-    memset(&opencl_prop, 0, sizeof(opencl_prop));
+    opencl_prop.clear();
 }
 
 void OPENCL_CPU_PROP::write_xml(MIOFILE& f) {
diff --git a/lib/opencl_boinc.h b/lib/opencl_boinc.h
index 3076765..49b8307 100644
--- a/lib/opencl_boinc.h
+++ b/lib/opencl_boinc.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef OPENCL_BOINC_H
-#define OPENCL_BOINC_H
+#ifndef BOINC_OPENCL_BOINC_H
+#define BOINC_OPENCL_BOINC_H
 
 #include "cl_boinc.h"
 #include "miofile.h"
@@ -83,6 +83,9 @@ struct OPENCL_DEVICE_PROP {
     void write_xml(MIOFILE&, const char* tag, bool temp_file=false);
     int parse(XML_PARSER&, const char* end_tag);
     void description(char* buf, int buflen, const char* type);
+    void clear() {
+        memset(this, 0, sizeof(*this));
+    }
 };
 
 // NOTE: OpenCL has only 32 bits for global_mem_size, so
diff --git a/lib/parse.cpp b/lib/parse.cpp
index a866979..3709253 100644
--- a/lib/parse.cpp
+++ b/lib/parse.cpp
@@ -15,12 +15,14 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// A very crude interface for parsing XML files;
-// assumes all elements are either single-line or
+// This file contains two XML parsers:
+//
+// 1) a very crude one, which assumes all elements are either single-line or
 // have start and end tags on separate lines.
 // This is meant to be used ONLY for parsing XML files produced
 // by the BOINC scheduling server or client.
-// Could replace this with a more general parser.
+//
+// 2) a better one (class XML_PARSER) which parses arbitrary XML
 
 #if   defined(_WIN32) && !defined(__STDWX_H__)
 #include "boinc_win.h"
@@ -39,14 +41,6 @@
 #endif
 #endif
 
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
-
-#if !defined(HAVE_STRDUP) && defined(HAVE__STRDUP)
-#define strdup _strdup
-#endif
-
 #ifdef _USING_FCGI_
 #include "boinc_fcgi.h"
 #endif
@@ -152,12 +146,15 @@ int copy_stream(FILE* in, FILE* out) {
 }
 
 // append to a malloc'd string
+// If reallocation fails, the pointer p remains unchanged, and the data will
+// not be freed. (strong exception safety)
 //
 int strcatdup(char*& p, char* buf) {
-    p = (char*)realloc(p, strlen(p) + strlen(buf)+1);
-    if (!p) {
+    char* new_p = (char*)realloc(p, strlen(p) + strlen(buf)+1);
+    if (!new_p) {
         return ERR_MALLOC;
     }
+    p = new_p;
     strcat(p, buf);
     return 0;
 }
@@ -210,12 +207,18 @@ int dup_element(FILE* in, const char* tag_name, char** pp) {
         if (strstr(buf, end_tag)) {
             snprintf(buf, sizeof(buf), "</%s>\n", tag_name);
             retval = strcatdup(p, buf);
-            if (retval) return retval;
+            if (retval) {
+                free(p);
+                return retval;
+            }
             *pp = p;
             return 0;
         }
         retval = strcatdup(p, buf);
-        if (retval) return retval;
+        if (retval) {
+            free(p);
+            return retval;
+        }
     }
     free(p);
     return ERR_XML_PARSE;
@@ -902,7 +905,7 @@ void XML_PARSER::skip_unexpected(
 // copy this entire element, including start and end tags, to the buffer
 //
 int XML_PARSER::copy_element(string& out) {
-    char end_tag[TAG_BUF_LEN], buf[1024];
+    char end_tag[TAG_BUF_LEN], buf[ELEMENT_BUF_LEN];
 
     // handle <foo/> case
     //
diff --git a/lib/parse.h b/lib/parse.h
index bc0d4af..56eaf27 100644
--- a/lib/parse.h
+++ b/lib/parse.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef PARSE_H
-#define PARSE_H
+#ifndef BOINC_PARSE_H
+#define BOINC_PARSE_H
 
 #include <cstdio>
 #include <stdlib.h>
@@ -36,12 +36,15 @@
 #define XML_PARSE_DATA      5
 #define XML_PARSE_OVERFLOW  6
 
-#define TAG_BUF_LEN         256
+#define TAG_BUF_LEN         4096
+    // max tag length
+#define ELEMENT_BUF_LEN     65536
+    // max element length (matches BLOB_SIZE, max size of XML fields in DB)
 
 struct XML_PARSER {
     int scan_comment();
     int scan_cdata(char*, int);
-    char parsed_tag[4096];
+    char parsed_tag[TAG_BUF_LEN];
     bool is_tag;
     MIOFILE* f;
     XML_PARSER(MIOFILE*);
@@ -217,7 +220,7 @@ struct XML_PARSER {
 
     // copy everything up to (but not including) the given end tag.
     // The copied text may include XML tags.
-    // strips whitespace.
+    // strips start/end whitespace.
     //
     inline int element_contents(const char* end_tag, char* buf, int buflen) {
         int n=0;
diff --git a/lib/prefs.h b/lib/prefs.h
index ebbe3cc..1bbce0e 100644
--- a/lib/prefs.h
+++ b/lib/prefs.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PREFS_
-#define _PREFS_
+#ifndef BOINC_PREFS_H
+#define BOINC_PREFS_H
 
 #include <cstdio>
 
@@ -94,7 +94,7 @@ struct TIME_SPAN {
         Between
     };
     TIME_SPAN() : present(false), start_hour(0), end_hour(0) {}
-    TIME_SPAN(double start, double end) : start_hour(start), end_hour(end) {}
+    TIME_SPAN(double start, double end) : present(false), start_hour(start), end_hour(end) {}
 
     bool suspended(double hour) const;
     TimeMode mode() const;
diff --git a/lib/proc_control.h b/lib/proc_control.h
index 0b3f547..972e87b 100644
--- a/lib/proc_control.h
+++ b/lib/proc_control.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PROC_CONTROL_
-#define _PROC_CONTROL_
+#ifndef BOINC_PROC_CONTROL_H
+#define BOINC_PROC_CONTROL_H
 
 #include <vector>
 #ifdef _WIN32
diff --git a/lib/procinfo.h b/lib/procinfo.h
index c5852c3..4d745e6 100644
--- a/lib/procinfo.h
+++ b/lib/procinfo.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PROCINFO_
-#define _PROCINFO_
+#ifndef BOINC_PROCINFO_H
+#define BOINC_PROCINFO_H
 
 #include <vector>
 #include <map>
diff --git a/lib/project_init.h b/lib/project_init.h
index 0c35835..4c249cc 100644
--- a/lib/project_init.h
+++ b/lib/project_init.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PROJECT_INIT_
-#define _PROJECT_INIT_
+#ifndef BOINC_PROJECT_INIT_H
+#define BOINC_PROJECT_INIT_H
 
 #define PROJECT_INIT_FILENAME       "project_init.xml"
 
diff --git a/lib/proxy_info.cpp b/lib/proxy_info.cpp
index 814dd43..63c85ed 100644
--- a/lib/proxy_info.cpp
+++ b/lib/proxy_info.cpp
@@ -39,9 +39,11 @@ int PROXY_INFO::parse(XML_PARSER& xp) {
         if (xp.parse_int("http_server_port", http_server_port)) continue;
         if (xp.parse_str("socks5_user_name", socks5_user_name,sizeof(socks5_user_name))) continue;
         if (xp.parse_str("socks5_user_passwd", socks5_user_passwd,sizeof(socks5_user_passwd))) continue;
+        if (xp.parse_bool("socks5_remote_dns", socks5_remote_dns)) continue;
         if (xp.parse_str("http_user_name", http_user_name,sizeof(http_user_name))) continue;
         if (xp.parse_str("http_user_passwd", http_user_passwd,sizeof(http_user_passwd))) continue;
         if (xp.parse_str("no_proxy", noproxy_hosts, sizeof(noproxy_hosts))) continue;
+        if (xp.parse_bool("no_autodetect", no_autodetect)) continue;
     }
     return ERR_XML_PARSE;
 }
@@ -72,9 +74,11 @@ int PROXY_INFO::write(MIOFILE& out) {
         "    <http_server_port>%d</http_server_port>\n"
         "    <socks5_user_name>%s</socks5_user_name>\n"
         "    <socks5_user_passwd>%s</socks5_user_passwd>\n"
+        "    <socks5_remote_dns>%d</socks5_remote_dns>\n"
         "    <http_user_name>%s</http_user_name>\n"
         "    <http_user_passwd>%s</http_user_passwd>\n"
-        "    <no_proxy>%s</no_proxy>\n",
+        "    <no_proxy>%s</no_proxy>\n"
+        "    <no_autodetect>%d</no_autodetect>\n",
         use_http_proxy?"    <use_http_proxy/>\n":"",
         use_socks_proxy?"    <use_socks_proxy/>\n":"",
         use_http_auth?"    <use_http_auth/>\n":"",
@@ -84,9 +88,11 @@ int PROXY_INFO::write(MIOFILE& out) {
         http_server_port,
         s5un,
         s5up,
+        socks5_remote_dns?1:0,
         hun,
         hup,
-        noproxy_hosts
+        noproxy_hosts,
+        no_autodetect?1:0
     );
     if (strlen(autodetect_server_name)) {
         out.printf(
@@ -116,9 +122,11 @@ void PROXY_INFO::clear() {
     http_server_port = 80;
     safe_strcpy(socks5_user_name, "");
     safe_strcpy(socks5_user_passwd, "");
+    socks5_remote_dns = false;
     safe_strcpy(http_user_name, "");
     safe_strcpy(http_user_passwd, "");
     safe_strcpy(noproxy_hosts, "");
+    no_autodetect = false;
     safe_strcpy(autodetect_server_name, "");
     autodetect_proxy_supported = false;
     need_autodetect_proxy_settings = false;
@@ -126,4 +134,3 @@ void PROXY_INFO::clear() {
     autodetect_port = 80;
     autodetect_protocol = 0;
 }
-
diff --git a/lib/proxy_info.h b/lib/proxy_info.h
index e6b78a3..5497d80 100644
--- a/lib/proxy_info.h
+++ b/lib/proxy_info.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PROXY_INFO_
-#define _PROXY_INFO_
+#ifndef BOINC_PROXY_INFO_H
+#define BOINC_PROXY_INFO_H
 
 struct XML_PARSER;
 class MIOFILE;
@@ -44,18 +44,24 @@ struct PROXY_INFO {
     int socks_server_port;
     char socks5_user_name[256];
     char socks5_user_passwd[256];
+    bool socks5_remote_dns;
+        // send DNS requests to the proxy
 
     // a list of hosts for which we should NOT go through a proxy
     // (e.g. a company PC attached to both local and remote projects)
     //
     char noproxy_hosts[256];
 
+    // don't autodetect proxy (Win)
+    //
+    bool no_autodetect;
+
     // On Windows, if neither HTTP nor SOCKS proxy is specified,
     // we try the "autodetect" mechanism.
     // If it gets anything, the info is filled in below
     //
     bool autodetect_proxy_supported;
-        // if true, some mechinism for detecting proxy servers is
+        // if true, some mechanism for detecting proxy servers is
         // supported by the client.
     int autodetect_protocol;
         // URL_PROTOCOL_SOCKS, URL_PROTOCOL_HTTP, or URL_PROTOCOL_HTTPS
diff --git a/lib/remote_submit.cpp b/lib/remote_submit.cpp
index efb0508..0b7ad5a 100644
--- a/lib/remote_submit.cpp
+++ b/lib/remote_submit.cpp
@@ -36,8 +36,38 @@
 using std::vector;
 using std::string;
 
+//#define SHOW_REQUEST
 //#define SHOW_REPLY
 
+// replies can have one or more <error> elements.
+// These can be either PHP Notices or Warnings (which are not fatal),
+// or fatal errors.
+// Fatal errors have nonzero error_num.
+//
+struct ERROR {
+    int error_num;
+    char error_msg[256];
+    char type[256];
+    char file[256];
+    char line[256];
+
+    void parse(XML_PARSER& xp) {
+        error_num = 0;
+        strcpy(error_msg, "");
+        strcpy(type, "");
+        strcpy(file, "");
+        strcpy(line, "");
+        while (!xp.get_tag()) {
+            if (xp.match_tag("/error")) break;
+            if (xp.parse_str("error_msg", error_msg, sizeof(error_msg))) continue;
+            if (xp.parse_int("error_num", error_num)) continue;
+            if (xp.parse_str("type", type, sizeof(type))) continue;
+            if (xp.parse_str("file", file, sizeof(file))) continue;
+            if (xp.parse_str("line", line, sizeof(line))) continue;
+        }
+    }
+};
+
 // do an HTTP GET request.
 //
 static int do_http_get(
@@ -83,6 +113,10 @@ static int do_http_post(
         return -1;
     }
 
+#ifdef SHOW_REQUEST
+    printf("HTTP request:\n%s\n", request);
+#endif
+
     struct curl_httppost *formpost=NULL;
     struct curl_httppost *lastptr=NULL;
     struct curl_slist *headerlist=NULL;
@@ -123,7 +157,7 @@ static int do_http_post(
 int query_files(
     const char* project_url,
     const char* authenticator,
-    vector<string> &md5s,
+    vector<string> &boinc_names,
     int batch_id,
     vector<int> &absent_files,
     string& error_msg
@@ -137,8 +171,8 @@ int query_files(
         sprintf(buf, "<batch_id>%d</batch_id>\n", batch_id);
         req_msg += string(buf);
     }
-    for (unsigned int i=0; i<md5s.size(); i++) {
-        sprintf(buf, "   <md5>%s</md5>\n", md5s[i].c_str());
+    for (unsigned int i=0; i<boinc_names.size(); i++) {
+        sprintf(buf, "   <phys_name>%s</phys_name>\n", boinc_names[i].c_str());
         req_msg += string(buf);
     }
     req_msg += "</query_files>\n";
@@ -153,21 +187,28 @@ int query_files(
     }
     fseek(reply, 0, SEEK_SET);
     int x;
-    retval = -1;
-    error_msg = "";
-    while (fgets(buf, 256, reply)) {
+    retval = 0;
+    MIOFILE mf;
+    mf.init_file(reply);
+    XML_PARSER xp(&mf);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("query_files reply: %s", buf);
+        printf("query_files reply: %s\n", xp.parsed_tag);
 #endif
-        if (strstr(buf, "absent_files")) {
-            retval = 0;
-            continue;
-        }
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-        if (parse_int(buf, "<file>", x)) {
-            absent_files.push_back(x);
-            continue;
+        if (xp.match_tag("absent_files")) {
+            while (!xp.get_tag()) {
+                if (xp.match_tag("/absent_files")) break;
+                if (xp.parse_int("file", x)) {
+                    absent_files.push_back(x);
+                }
+            }
+        } else if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
         }
     }
     fclose(reply);
@@ -178,7 +219,7 @@ int upload_files (
     const char* project_url,
     const char* authenticator,
     vector<string> &paths,
-    vector<string> &md5s,
+    vector<string> &boinc_names,
     int batch_id,
     string &error_msg
 ) {
@@ -190,8 +231,8 @@ int upload_files (
         sprintf(buf, "<batch_id>%d</batch_id>\n", batch_id);
         req_msg += string(buf);
     }
-    for (unsigned int i=0; i<md5s.size(); i++) {
-        sprintf(buf, "<md5>%s</md5>\n", md5s[i].c_str());
+    for (unsigned int i=0; i<boinc_names.size(); i++) {
+        sprintf(buf, "<phys_name>%s</phys_name>\n", boinc_names[i].c_str());
         req_msg += string(buf);
     }
     req_msg += "</upload_files>\n";
@@ -205,17 +246,26 @@ int upload_files (
     }
     fseek(reply, 0, SEEK_SET);
     retval = -1;
-    error_msg = "";
-    while (fgets(buf, 256, reply)) {
+    bool success;
+    MIOFILE mf;
+    mf.init_file(reply);
+    XML_PARSER xp(&mf);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("upload_files reply: %s", buf);
+        printf("upload_files reply: %s\n", xp.parsed_tag);
 #endif
-        if (strstr(buf, "success")) {
+        if (xp.parse_bool("success", success)) {
             retval = 0;
             continue;
         }
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -254,22 +304,28 @@ int create_batch(
         fclose(reply);
         return retval;
     }
-    char buf[256];
     batch_id = 0;
     fseek(reply, 0, SEEK_SET);
-    int error_num = 0;
-    error_msg = "";
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    mf.init_file(reply);
+    XML_PARSER xp(&mf);
+    retval = 0;
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("create_batch reply: %s", buf);
+        printf("create_batch reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_int(buf, "<batch_id>", batch_id)) continue;
-        if (parse_int(buf, "<error_num>", error_num)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-
+        if (xp.parse_int("batch_id", batch_id)) continue;
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
-    return error_num;
+    return retval;
 }
 
 int estimate_batch(
@@ -309,17 +365,25 @@ int estimate_batch(
     }
     fseek(reply, 0, SEEK_SET);
     retval = -1;
-    error_msg = "";
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    mf.init_file(reply);
+    XML_PARSER xp(&mf);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("submit_batch reply: %s", buf);
+        printf("estimate_batch reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_double(buf, "<seconds>", est_makespan)) {
+        if (xp.parse_double("seconds", est_makespan)) {
             retval = 0;
             continue;
         }
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -355,13 +419,33 @@ int submit_jobs(
         }
         for (unsigned int j=0; j<job.infiles.size(); j++) {
             INFILE infile = job.infiles[j];
-            sprintf(buf,
-                "<input_file>\n"
-                "<mode>local_staged</mode>\n"
-                "<source>%s</source>\n"
-                "</input_file>\n",
-                infile.physical_name
-            );
+            switch (infile.mode) {
+            case FILE_MODE_LOCAL_STAGED:
+                sprintf(buf,
+                    "<input_file>\n"
+                    "<mode>local_staged</mode>\n"
+                    "<source>%s</source>\n"
+                    "</input_file>\n",
+                    infile.physical_name
+                );
+                break;
+            case FILE_MODE_REMOTE:
+                sprintf(buf,
+                    "<input_file>\n"
+                    "<mode>remote</mode>\n"
+                    "<url>%s</url>\n"
+                    "<nbytes>%f</nbytes>\n"
+                    "<md5>%s</md5>\n"
+                    "</input_file>\n",
+                    infile.url,
+                    infile.nbytes,
+                    infile.md5
+                );
+                break;
+            default:
+                fprintf(stderr, "unsupported file mode %d\n", infile.mode);
+                exit(1);
+            }
             request += buf;
         }
         request += "</job>\n";
@@ -377,18 +461,26 @@ int submit_jobs(
     }
     fseek(reply, 0, SEEK_SET);
     retval = -1;
-    error_msg = "";
     int temp;
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    mf.init_file(reply);
+    XML_PARSER xp(&mf);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("submit_batch reply: %s", buf);
+        printf("submit_batch reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_int(buf, "<batch_id>", temp)) {
+        if (xp.parse_int("batch_id", temp)) {
             retval = 0;
             continue;
         }
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -427,37 +519,45 @@ int query_batch_set(
     fseek(reply, 0, SEEK_SET);
     retval = -1;
     qb_reply.server_time = 0;
-    error_msg = "";
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    mf.init_file(reply);
+    XML_PARSER xp(&mf);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
         printf("query_batches reply: %s", buf);
 #endif
-        if (strstr(buf, "jobs")) {
+        if (xp.match_tag("query_batch2")) {
             retval = 0;
             continue;
         }
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-        if (parse_double(buf, "<server_time>", qb_reply.server_time)) continue;
-        if (parse_int(buf, "<batch_size>", batch_size)) {
+        if (xp.parse_double("server_time", qb_reply.server_time)) continue;
+        if (xp.parse_int("batch_size", batch_size)) {
             qb_reply.batch_sizes.push_back(batch_size);
             continue;
         }
-        if (strstr(buf, "<job>")) {
+        if (xp.match_tag("job")) {
             JOB_STATUS js;
-            while (fgets(buf, 256, reply)) {
+            while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
                 printf("query_batches reply: %s", buf);
 #endif
-                if (strstr(buf, "</job>")) {
+                if (xp.match_tag("/job")) {
                     qb_reply.jobs.push_back(js);
                     break;
                 }
-                if (parse_str(buf, "job_name", js.job_name)) continue;
-                if (parse_str(buf, "status", js.status)) continue;
+                if (xp.parse_string("job_name", js.job_name)) continue;
+                if (xp.parse_string("status", js.status)) continue;
             }
             continue;
         }
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -548,7 +648,7 @@ int query_batches(
     XML_PARSER xp(&mf);
     mf.init_file(reply);
     while (!xp.get_tag()) {
-        if (xp.match_tag("/batches")) {
+        if (xp.match_tag("/query_batches")) {
             retval = 0;
             error_msg = "";
             break;
@@ -560,8 +660,14 @@ int query_batches(
             }
             continue;
         }
-        if (xp.parse_string("error_msg", error_msg)) continue;
-        if (xp.parse_int("error_num", retval)) continue;
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -670,17 +776,26 @@ int abort_jobs(
     }
     fseek(reply, 0, SEEK_SET);
     retval = -1;
-    error_msg = "";
-    while (fgets(buf, 256, reply)) {
+    bool success;
+    MIOFILE mf;
+    XML_PARSER xp(&mf);
+    mf.init_file(reply);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("abort_jobs reply: %s", buf);
+        printf("abort_jobs reply: %s\n", xp.parsed_tag);
 #endif
-        if (strstr(buf, "success")) {
+        if (xp.parse_bool("success", success)) {
             retval = 0;
             continue;
         }
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -716,20 +831,25 @@ int get_templates(
         return retval;
     }
     retval = -1;
-    error_msg = "";
     fseek(reply, 0, SEEK_SET);
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    XML_PARSER xp(&mf);
+    mf.init_file(reply);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("get_templates reply: %s", buf);
+        printf("get_templates reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-        if (strstr(buf, "<templates>")) {
-            MIOFILE mf;
-            XML_PARSER xp(&mf);
-            mf.init_file(reply);
+        if (xp.match_tag("templates")) {
             retval = td.parse(xp);
         }
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -829,20 +949,25 @@ int query_completed_job(
         return retval;
     }
     retval = -1;
-    error_msg = "";
     fseek(reply, 0, SEEK_SET);
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    XML_PARSER xp(&mf);
+    mf.init_file(reply);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("query_completed_job reply: %s", buf);
+        printf("query_completed_job reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-        if (strstr(buf, "<completed_job>")) {
-            MIOFILE mf;
-            XML_PARSER xp(&mf);
-            mf.init_file(reply);
+        if (xp.match_tag("completed_job")) {
             retval = jd.parse(xp);
         }
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -871,18 +996,27 @@ int retire_batch(
         return retval;
     }
     retval = -1;
-    error_msg = "";
+    bool success;
     fseek(reply, 0, SEEK_SET);
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    XML_PARSER xp(&mf);
+    mf.init_file(reply);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("retire_batch reply: %s", buf);
+        printf("retire_batch reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-        if (strstr(buf, "success")) {
+        if (xp.parse_bool("success", success)) {
             retval = 0;
             continue;
         }
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -914,18 +1048,28 @@ int set_expire_time(
         return retval;
     }
     retval = -1;
+    bool success;
     error_msg = "";
     fseek(reply, 0, SEEK_SET);
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    XML_PARSER xp(&mf);
+    mf.init_file(reply);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("set_expire_time reply: %s", buf);
+        printf("set_expire_time reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-        if (strstr(buf, "success")) {
+        if (xp.parse_bool("success", success)) {
             retval = 0;
             continue;
         }
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
@@ -936,7 +1080,7 @@ int ping_server(
     string &error_msg
 ) {
     string request;
-    char url[1024], buf[256];
+    char url[1024];
     request = "<ping> </ping>\n";   // the space is needed
     sprintf(url, "%ssubmit_rpc_handler.php", project_url);
     FILE* reply = tmpfile();
@@ -947,18 +1091,28 @@ int ping_server(
         return retval;
     }
     retval = -1;
+    bool success;
     error_msg = "";
     fseek(reply, 0, SEEK_SET);
-    while (fgets(buf, 256, reply)) {
+    MIOFILE mf;
+    XML_PARSER xp(&mf);
+    mf.init_file(reply);
+    while (!xp.get_tag()) {
 #ifdef SHOW_REPLY
-        printf("reply: %s\n", buf);
+        printf("ping_server() reply: %s\n", xp.parsed_tag);
 #endif
-        if (parse_int(buf, "<error_num>", retval)) continue;
-        if (parse_str(buf, "<error_msg>", error_msg)) continue;
-        if (strstr(buf, "success")) {
+        if (xp.parse_bool("success", success)) {
             retval = 0;
             continue;
         }
+        if (xp.match_tag("error")) {
+            ERROR error;
+            error.parse(xp);
+            if (error.error_num) {
+                retval = error.error_num;
+                error_msg = error.error_msg;
+            }
+        }
     }
     fclose(reply);
     return retval;
diff --git a/lib/remote_submit.h b/lib/remote_submit.h
index 12aeef9..40499b9 100644
--- a/lib/remote_submit.h
+++ b/lib/remote_submit.h
@@ -18,8 +18,8 @@
 // C++ interfaces to remote job submission and file management RPCs
 // See http://boinc.berkeley.edu/trac/wiki/RemoteJobs#Cinterface
 
-#ifndef REMOTE_SUBMIT_H
-#define REMOTE_SUBMIT_H
+#ifndef BOINC_REMOTE_SUBMIT_H
+#define BOINC_REMOTE_SUBMIT_H
 
 #include <stdio.h>
 #include <string>
@@ -28,39 +28,51 @@
 
 #include "parse.h"
 
-using std::string;
-using std::vector;
-using std::map;
+// Input file modes.
+// Only LOCAL_STAGED and REMOTE are implemented now.
+//
+#define FILE_MODE_LOCAL         1
+#define FILE_MODE_LOCAL_STAGED  2
+#define FILE_MODE_SEMILOCAL     3
+#define FILE_MODE_INLINE        4
+#define FILE_MODE_REMOTE        5
 
 struct INFILE {
-    char physical_name[256];    // BOINC physical name
-    char src_path[256];         // path on submit machine
+    int mode;                   // see above
+
     char logical_name[256];
         // filename on execution machine.
-        // not used; could be used to check consistency w/ input template
+        // Supplied by Condor, but not currently used.
+        // could be used to check consistency w/ input template
+    char src_path[256];
+        // path on submit machine
+        // used by Condor GAHP; not part of the API
+
+    // the following used for LOCAL_STAGED
+    char physical_name[256];    // BOINC physical name
+
+    // the following used for REMOTE
+    char url[256];
+    double nbytes;
+    char md5[256];
 };
 
 struct JOB {
     char job_name[256];
-    string cmdline_args;
-    vector<INFILE> infiles;
-};
-
-struct LOCAL_FILE {
-    char md5[64];
-    double nbytes;
+    std::string cmdline_args;
+    std::vector<INFILE> infiles;
 };
 
 struct JOB_STATUS {
-    string job_name;
-    string status;
+    std::string job_name;
+    std::string status;
     JOB_STATUS(){}
 };
 
 struct QUERY_BATCH_SET_REPLY {
     double server_time;         // server time at start of query
-    vector<int> batch_sizes;    // how many jobs in each of the queried batches
-    vector<JOB_STATUS> jobs;    // the jobs, sequentially
+    std::vector<int> batch_sizes;    // how many jobs in each of the queried batches
+    std::vector<JOB_STATUS> jobs;    // the jobs, sequentially
 };
 
 struct OUTFILE {
@@ -72,13 +84,13 @@ struct FETCH_OUTPUT_REQ {
     char job_name[256];
     char dir[256];
     bool fetch_all;
-    string stderr_filename;
-    vector<OUTFILE> file_descs;
+    std::string stderr_filename;
+    std::vector<OUTFILE> file_descs;
 };
 
 struct TEMPLATE_DESC {
-    vector<string> input_files;
-    vector<string> output_files;
+    std::vector<std::string> input_files;
+    std::vector<std::string> output_files;
 
     int parse(XML_PARSER&);
 };
@@ -93,7 +105,7 @@ struct COMPLETED_JOB_DESC {
     int exit_status;
     double elapsed_time;
     double cpu_time;
-    string stderr_out;
+    std::string stderr_out;
 
     int parse(XML_PARSER&);
 };
@@ -104,19 +116,19 @@ struct COMPLETED_JOB_DESC {
 extern int query_files(
     const char* project_url,
     const char* authenticator,
-    vector<string> &md5s,
+    std::vector<std::string> &boinc_names,
     int batch_id,
-    vector<int> &absent_files,
-    string& error_msg
+    std::vector<int> &absent_files,
+    std::string& error_msg
 );
 
 extern int upload_files (
     const char* project_url,
     const char* authenticator,
-    vector<string> &paths,
-    vector<string> &md5s,
+    std::vector<std::string> &paths,
+    std::vector<std::string> &boinc_names,
     int batch_id,
-    string& error_msg
+    std::string& error_msg
 );
 
 extern int create_batch(
@@ -126,7 +138,7 @@ extern int create_batch(
     const char* app_name,
     double expire_time,
     int &batch_id,
-    string& error_msg
+    std::string& error_msg
 );
 
 extern int submit_jobs(
@@ -134,17 +146,17 @@ extern int submit_jobs(
     const char* authenticator,
     char app_name[256],
     int batch_id,
-    vector<JOB> jobs,
-    string& error_msg
+    std::vector<JOB> jobs,
+    std::string& error_msg
 );
 
 extern int estimate_batch(
     const char* project_url,
     const char* authenticator,
     char app_name[256],
-    vector<JOB> jobs,
+    std::vector<JOB> jobs,
     double& est_makespan,
-    string& error_msg
+    std::string& error_msg
 );
 
 // Return the short status of the jobs in a given set of batches
@@ -154,9 +166,9 @@ extern int query_batch_set(
     const char* project_url,
     const char* authenticator,
     double min_mod_time,
-    vector<string> &batch_names,
+    std::vector<std::string> &batch_names,
     QUERY_BATCH_SET_REPLY& reply,
-    string& error_msg
+    std::string& error_msg
 );
 
 struct BATCH_STATUS {
@@ -183,8 +195,8 @@ struct BATCH_STATUS {
 extern int query_batches(
     const char* project_url,
     const char* authenticator,
-    vector<BATCH_STATUS>& batches,
-    string& error_msg
+    std::vector<BATCH_STATUS>& batches,
+    std::string& error_msg
 );
 
 struct JOB_STATE {
@@ -206,8 +218,8 @@ extern int query_batch(
     const char* authenticator,
     int batch_id,
     const char batch_name[256],
-    vector<JOB_STATE>& jobs,
-    string& error_msg
+    std::vector<JOB_STATE>& jobs,
+    std::string& error_msg
 );
 
 extern int get_output_file(
@@ -216,14 +228,14 @@ extern int get_output_file(
     const char* job_name,
     int file_num,
     const char* dst_path,
-    string& error_msg
+    std::string& error_msg
 );
 
 extern int abort_jobs(
     const char* project_url,
     const char* authenticator,
-    vector<string> &job_names,
-    string& error_msg
+    std::vector<std::string> &job_names,
+    std::string& error_msg
 );
 
 extern int query_completed_job(
@@ -231,7 +243,7 @@ extern int query_completed_job(
     const char* authenticator,
     const char* job_name,
     COMPLETED_JOB_DESC&,
-    string& error_msg
+    std::string& error_msg
 );
 
 extern int get_templates(
@@ -240,14 +252,14 @@ extern int get_templates(
     const char* app_name,   // either this
     const char* job_name,   // or this must be non-NULL
     TEMPLATE_DESC&,
-    string& error_msg
+    std::string& error_msg
 );
 
 extern int retire_batch(
     const char* project_url,
     const char* authenticator,
     const char* batch_name,
-    string& error_msg
+    std::string& error_msg
 );
 
 extern int set_expire_time(
@@ -255,12 +267,12 @@ extern int set_expire_time(
     const char* authenticator,
     const char* batch_name,
     double expire_time,
-    string& error_msg
+    std::string& error_msg
 );
 
 extern int ping_server(
     const char* project_url,
-    string& error_msg
+    std::string& error_msg
 );
 
 #endif
diff --git a/lib/run_app_windows.cpp b/lib/run_app_windows.cpp
index 28792cd..136b03a 100644
--- a/lib/run_app_windows.cpp
+++ b/lib/run_app_windows.cpp
@@ -71,7 +71,7 @@ GetAccountSid(
         //
         *Sid = (PSID)HeapAlloc(GetProcessHeap(), 0, cbSid);
 
-        if(*Sid == NULL) throw;
+        if(*Sid == NULL) throw 0;
 
         ReferencedDomain = (LPSTR)HeapAlloc(
                         GetProcessHeap(),
@@ -79,7 +79,7 @@ GetAccountSid(
                         cchReferencedDomain * sizeof(CHAR)
                         );
 
-        if(ReferencedDomain == NULL) throw;
+        if(ReferencedDomain == NULL) throw 0;
 
         //
         // Obtain the SID of the specified account on the specified system.
@@ -103,7 +103,7 @@ GetAccountSid(
                             *Sid,
                             cbSid
                             );
-                if(*Sid == NULL) throw;
+                if(*Sid == NULL) throw 0;
 
                 ReferencedDomain = (LPSTR)HeapReAlloc(
                             GetProcessHeap(),
@@ -111,9 +111,9 @@ GetAccountSid(
                             ReferencedDomain,
                             cchReferencedDomain * sizeof(CHAR)
                             );
-                if(ReferencedDomain == NULL) throw;
+                if(ReferencedDomain == NULL) throw 0;
             }
-            else throw;
+            else throw 0;
         }
 
         //
@@ -296,17 +296,17 @@ void get_sandbox_account_service_token() {
                     dwSize + 1);
 
                 if (pszUserName == NULL)
-                    throw;
+                    throw 0;
 
                 if (!GetUserNameEx(
                         NameSamCompatible,
                         pszUserName,
                         &dwSize)
                 )
-                    throw;
+                    throw 0;
             }
             else
-                throw;
+                throw 0;
 
             // Obtain the SID for the current user name.
 
@@ -315,7 +315,7 @@ void get_sandbox_account_service_token() {
                     pszUserName,
                     &pBOINCMasterSID)
             )
-                throw;
+                throw 0;
 
             // Obtain the DACL for the service token.
 
@@ -336,7 +336,7 @@ void get_sandbox_account_service_token() {
                     dwSizeNeeded);
 
                 if (pTokenDefaultDACL == NULL)
-                    throw;
+                    throw 0;
 
                 dwSize = dwSizeNeeded;
 
@@ -347,10 +347,10 @@ void get_sandbox_account_service_token() {
                         dwSize,
                         &dwSizeNeeded)
                 )
-                    throw;
+                    throw 0;
             }
             else
-                throw;
+                throw 0;
 
             //
             pOldAcl = pTokenDefaultDACL->DefaultDacl;
@@ -371,7 +371,7 @@ void get_sandbox_account_service_token() {
                     sizeof(ACL_SIZE_INFORMATION),
                     AclSizeInformation)
                 )
-                   throw;
+                   throw 0;
             }
 
             // Compute the size of the new ACL.
@@ -389,12 +389,12 @@ void get_sandbox_account_service_token() {
                 dwNewAclSize);
 
             if (pNewAcl == NULL)
-                throw;
+                throw 0;
 
             // Initialize the new DACL.
 
             if (!InitializeAcl(pNewAcl, dwNewAclSize, ACL_REVISION))
-                throw;
+                throw 0;
 
             // If DACL is present, copy it to a new DACL.
 
@@ -407,7 +407,7 @@ void get_sandbox_account_service_token() {
                     {
                         // Get an ACE.
                         if (!GetAce(pOldAcl, i, &pTempAce))
-                            throw;
+                            throw 0;
 
                         // Add the ACE to the new ACL.
                         if (!AddAce(
@@ -417,7 +417,7 @@ void get_sandbox_account_service_token() {
                                 pTempAce,
                             ((PACE_HEADER)pTempAce)->AceSize)
                         )
-                            throw;
+                            throw 0;
                     }
                 }
             }
@@ -431,7 +431,7 @@ void get_sandbox_account_service_token() {
             );
 
             if (pace1 == NULL)
-                throw;
+                throw 0;
 
             pace1->Header.AceType  = ACCESS_ALLOWED_ACE_TYPE;
             pace1->Header.AceFlags = CONTAINER_INHERIT_ACE |
@@ -443,7 +443,7 @@ void get_sandbox_account_service_token() {
             pace1->Mask            = PROCESS_ALL_ACCESS;
 
             if (!CopySid(GetLengthSid(pBOINCProjectSID), &pace1->SidStart, pBOINCProjectSID))
-                throw;
+                throw 0;
 
             // Add an ACE to the process.
 
@@ -454,7 +454,7 @@ void get_sandbox_account_service_token() {
                 (LPVOID)pace1,
                 pace1->Header.AceSize)
             )
-                throw;
+                throw 0;
 
             // Add the second ACE to the process.
 
@@ -465,7 +465,7 @@ void get_sandbox_account_service_token() {
             );
 
             if (pace2 == NULL)
-                throw;
+                throw 0;
 
             pace2->Header.AceType  = ACCESS_ALLOWED_ACE_TYPE;
             pace2->Header.AceFlags = CONTAINER_INHERIT_ACE |
@@ -477,7 +477,7 @@ void get_sandbox_account_service_token() {
             pace2->Mask            = PROCESS_ALL_ACCESS;
 
             if (!CopySid(GetLengthSid(pBOINCMasterSID), &pace2->SidStart, pBOINCMasterSID))
-                throw;
+                throw 0;
 
             // Add an ACE to the process.
 
@@ -488,7 +488,7 @@ void get_sandbox_account_service_token() {
                 (LPVOID)pace2,
                 pace2->Header.AceSize)
             )
-                throw;
+                throw 0;
 
             // Set a new Default DACL for the token.
             pTokenDefaultDACL->DefaultDacl = pNewAcl;
@@ -499,7 +499,7 @@ void get_sandbox_account_service_token() {
                 pTokenDefaultDACL,
                 dwNewAclSize)
             )
-                throw;
+                throw 0;
 
             // Indicate success.
             fprintf(stderr, "New Token ACL Success!!!\n");
diff --git a/lib/sched_msgs.cpp b/lib/sched_msgs.cpp
new file mode 100644
index 0000000..1fc1d54
--- /dev/null
+++ b/lib/sched_msgs.cpp
@@ -0,0 +1,68 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2008 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <string.h>
+#include "config.h"
+#include "sched_msgs.h"
+
+SCHED_MSG_LOG log_messages;
+
+const char* SCHED_MSG_LOG::v_format_kind(int kind) const {
+    switch(kind) {
+    case MSG_CRITICAL: return "[CRITICAL]";
+    case MSG_WARNING:  return "[warning]";
+    case MSG_NORMAL:   return "";
+    case MSG_DEBUG:    return "[debug]";
+    default:       return "*** internal error: invalid MessageKind ***";
+    }
+}
+
+bool SCHED_MSG_LOG::v_message_wanted(int kind) const {
+    return ( kind <= debug_level );
+}
+
+#ifdef _USING_FCGI_
+
+SCHED_MSG_LOG::~SCHED_MSG_LOG() {
+   close();
+}
+
+void SCHED_MSG_LOG::close() {
+    if (output) {
+        flush();
+        fclose(output);
+        output = NULL;
+    }
+}
+
+#ifndef _USING_FCGI_
+void SCHED_MSG_LOG::redirect(FILE* f) {
+#else
+void SCHED_MSG_LOG::redirect(FCGI_FILE* f) {
+#endif
+    close();
+    output = f;
+}
+
+void SCHED_MSG_LOG::flush() {
+    if (output) {
+        fflush(output->stdio_stream);
+    }
+}
+#endif
+
+const char *BOINC_RCSID_b40ff9bb53 = "$Id$";
diff --git a/lib/sched_msgs.h b/lib/sched_msgs.h
new file mode 100644
index 0000000..3fb2a78
--- /dev/null
+++ b/lib/sched_msgs.h
@@ -0,0 +1,51 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2008 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef BOINC_SCHED_MSGS_H
+#define BOINC_SCHED_MSGS_H
+
+#include "msg_log.h"
+
+#ifdef _USING_FCGI_
+#include "boinc_fcgi.h"
+#endif
+
+enum { MSG_CRITICAL=1, MSG_WARNING, MSG_NORMAL, MSG_DEBUG, MSG_DETAIL };
+
+class SCHED_MSG_LOG : public MSG_LOG {
+    const char* v_format_kind(int kind) const;
+    bool v_message_wanted(int kind) const;
+public:
+    enum { MSG_CRITICAL=1, MSG_WARNING, MSG_NORMAL, MSG_DEBUG, MSG_DETAIL };
+    SCHED_MSG_LOG(): MSG_LOG(stderr) { debug_level = MSG_NORMAL; }
+    void set_file(FILE* f) {output=f;}
+    void set_debug_level(int new_level) { debug_level = new_level; }
+    bool debug() {return debug_level >= MSG_DEBUG;}
+    bool detail() {return debug_level >= MSG_DETAIL;}
+
+#ifdef _USING_FCGI_
+    ~SCHED_MSG_LOG();
+    void redirect(FCGI_FILE* f);
+    void close();
+    void flush();
+#endif
+};
+
+#define _(x) "_(\"" x "\")"
+
+extern SCHED_MSG_LOG log_messages;
+#endif
diff --git a/lib/shmem.cpp b/lib/shmem.cpp
index ea88e88..19d63cd 100644
--- a/lib/shmem.cpp
+++ b/lib/shmem.cpp
@@ -395,7 +395,7 @@ int detach_shmem_mmap(void* p, size_t size) {
     return munmap((char *)p, size);
 }
 
-#if HAVE_SYS_SHM_H
+#if HAVE_SYS_SHM_H && !defined(ANDROID)
 
 // Compatibility routines for Unix/Linux/Mac V5 applications 
 //
diff --git a/lib/stackwalker_imports.h b/lib/stackwalker_imports.h
index c1d79b9..66c60e6 100644
--- a/lib/stackwalker_imports.h
+++ b/lib/stackwalker_imports.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __STACKWALKER_IMPORTS_H__
-#define __STACKWALKER_IMPORTS_H__
+#ifndef BOINC_STACKWALKER_IMPORTS_H
+#define BOINC_STACKWALKER_IMPORTS_H
 
 #define gle (GetLastError())
 #define TTBUFLEN                8096 // for a temp buffer (2^13)
diff --git a/lib/stackwalker_win.cpp b/lib/stackwalker_win.cpp
index 25f1fdc..d7a8301 100644
--- a/lib/stackwalker_win.cpp
+++ b/lib/stackwalker_win.cpp
@@ -48,12 +48,9 @@
 #include "stdwx.h"
 #endif
 
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
-
 #include "diagnostics.h"
 #include "str_replace.h"
+#include "str_util.h"
 #include "stackwalker_win.h"
 #include "stackwalker_imports.h"
 
diff --git a/lib/stackwalker_win.h b/lib/stackwalker_win.h
index 1104878..33621a0 100644
--- a/lib/stackwalker_win.h
+++ b/lib/stackwalker_win.h
@@ -19,8 +19,8 @@
  *
  *////////////////////////////////////////////////////////////////////////////
 
-#ifndef __STACKWALKER_H__
-#define __STACKWALKER_H__
+#ifndef BOINC_STACKWALKER_WIN_H
+#define BOINC_STACKWALKER_WIN_H
 
 // Make extern "C", so it will also work with normal C-Programs
 #ifdef __cplusplus
@@ -36,4 +36,4 @@ extern void StackwalkThread( HANDLE hThread, CONTEXT* c );
 }
 #endif
 
-#endif  // __STACKWALKER_H__
+#endif
diff --git a/lib/std_fixes.h b/lib/std_fixes.h
index 62a5a65..e00b315 100644
--- a/lib/std_fixes.h
+++ b/lib/std_fixes.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _STD_FIXES_H_
-#define _STD_FIXES_H_
+#ifndef BOINC_STD_FIXES_H
+#define BOINC_STD_FIXES_H
 
 #ifdef __cplusplus
 
@@ -116,5 +116,5 @@ inline int creat(const char *filename, mode_t mode) { return creat64(filename,mo
 
 #endif
 #endif /* __cplusplus */
-#endif /* STD_FIXES_H */
+#endif // BOINC_STD_FIXES_H
 
diff --git a/lib/str_replace.h b/lib/str_replace.h
index 7d6a303..1be8bfb 100644
--- a/lib/str_replace.h
+++ b/lib/str_replace.h
@@ -17,11 +17,14 @@
 
 // declare replacement string functions for platforms that lack themn
 
-#ifndef STR_REPLACE_H
-#define STR_REPLACE_H
+#ifndef BOINC_STR_REPLACE_H
+#define BOINC_STR_REPLACE_H
 
-#ifndef _WIN32
+#if (defined(HAVE_CONFIG_H) || defined(__APPLE__))
 #include "config.h"
+#endif
+
+#ifndef _WIN32
 #include <sys/types.h>
 #endif
 
@@ -58,7 +61,11 @@ inline int strcasecmp(const char* s1, const char* s2) {
 }
 #endif
 
-#define safe_strcpy(x, y) strlcpy(x, y, sizeof(x))
-#define safe_strcat(x, y) strlcat(x, y, sizeof(x))
+#ifdef _WIN32
+#define snprintf _snprintf
+    // Yucky!  _snprintf() is not the same as snprintf();
+    // it doesn't null-terminate if buffer is too small.
+    // This is a workaround until we switch to VS2015, which has sprintf()
+#endif
 
 #endif
diff --git a/lib/str_util.cpp b/lib/str_util.cpp
index 8e00441..898e92d 100644
--- a/lib/str_util.cpp
+++ b/lib/str_util.cpp
@@ -297,27 +297,38 @@ int parse_command_line(char* p, char** argv) {
 
 // remove whitespace from start and end of a string
 //
-void strip_whitespace(char *str) {
-    char *s = str;
-    while (*s) {
-        if (!isascii(*s)) break;
-        if (!isspace(*s)) break;
-        s++;
+void strip_whitespace(string& str) {
+    while (1) {
+        if (str.length() == 0) break;
+        if (!isascii(str[0])) break;
+        if (!isspace(str[0])) break;
+        str.erase(0, 1);
     }
-    if (s != str) strcpy_overlap(str, s);
 
-    size_t n = strlen(str);
+    int n = (int) str.length();
     while (n>0) {
+        if (!isascii(str[n-1])) break;
+        if (!isspace(str[n-1])) break;
         n--;
-        if (!isascii(str[n])) break;
-        if (!isspace(str[n])) break;
-        str[n] = 0;
     }
+    str.erase(n, str.length()-n);
 }
 
-void strip_whitespace(string& str) {
+void strip_whitespace(char *str) {
+    string s = str;
+    strip_whitespace(s);
+    strcpy(str, s.c_str());
+}
+
+// remove whitespace and quotes from start and end of a string
+//
+void strip_quotes(string& str) {
     while (1) {
         if (str.length() == 0) break;
+        if (str[0] == '"' || str[0] == '\'') {
+            str.erase(0, 1);
+            continue;
+        }
         if (!isascii(str[0])) break;
         if (!isspace(str[0])) break;
         str.erase(0, 1);
@@ -325,6 +336,12 @@ void strip_whitespace(string& str) {
 
     int n = (int) str.length();
     while (n>0) {
+        if (str[n-1] == '"' || str[n-1] == '\'') {
+            if (str[n-2] != '\\') {
+                n--;
+                continue;
+            }
+        }
         if (!isascii(str[n-1])) break;
         if (!isspace(str[n-1])) break;
         n--;
@@ -332,6 +349,61 @@ void strip_whitespace(string& str) {
     str.erase(n, str.length()-n);
 }
 
+void strip_quotes(char *str) {
+    string s = str;
+    strip_quotes(s);
+    strcpy(str, s.c_str());
+}
+
+// This only unescapes some special shell characters used in /etc/os-release
+// see https://www.freedesktop.org/software/systemd/man/os-release.html
+void unescape_os_release(char* buf) {
+    char* out = buf;
+    char* in = buf;
+    while (*in) {
+        if (*in != '\\') {
+            *out++ = *in++;
+        } else if (*(in+1) == '$') {
+            *out++ = '$';
+            in += 2;
+        } else if (*(in+1) == '\'') {
+            *out++ = '\'';
+            in += 2;
+        } else if (*(in+1) == '"') {
+            *out++ = '"';
+            in += 2;
+        } else if (*(in+1) == '\\') {
+            *out++ = '\\';
+            in += 2;
+        } else if (*(in+1) == '`') {
+            *out++ = '`';
+            in += 2;
+        } else {
+            *out++ = *in++;
+        }
+    }
+    *out = 0;
+}
+
+// collapse multiple whitespace into one (will not strip_whitespace)
+//
+void collapse_whitespace(string& str) {
+    int n = (int) str.length();
+    if (n<2) return;
+    for (int i=1; i<n; i++) {
+        if (isspace(str[i-1]) && isspace(str[i])) {
+            str.erase(i, 1);
+            n--; i--;
+        }
+    }
+}
+
+void collapse_whitespace(char *str) {
+    string s = str;
+    collapse_whitespace(s);
+    strcpy(str, s.c_str());
+}
+
 char* time_to_string(double t) {
     static char buf[100];
     if (!t) {
@@ -543,6 +615,7 @@ const char* boincerror(int which_error) {
         case ERR_NEED_HTTPS: return "HTTPS needed";
         case ERR_CHMOD : return "chmod() failed";
         case ERR_STAT : return "stat() failed";
+        case ERR_FCLOSE : return "fclose() failed";
         case HTTP_STATUS_NOT_FOUND: return "HTTP file not found";
         case HTTP_STATUS_PROXY_AUTH_REQ: return "HTTP proxy authentication failure";
         case HTTP_STATUS_RANGE_REQUEST_ERROR: return "HTTP range request error";
@@ -765,3 +838,59 @@ vector<string> split(string s, char delim) {
     }
     return result;
 }
+
+// check whether filename is legit
+// - can't start with /
+// - can't have control chars
+// - can't have ..
+//
+bool is_valid_filename(const char* name) {
+    size_t n = strlen(name);
+    for (size_t i=0; i<n; i++) {
+        if (iscntrl(name[i])) {
+            return false;
+        }
+    }
+    if (strstr(name, "..")) {
+        return false;
+    }
+    if (name[0] == '/') {
+        return false;
+    }
+    return true;
+}
+
+// get the name part of a filepath
+// returns:
+//   0 on success
+//  -1 when fpath is empty
+//  -2 when fpath is a directory
+int path_to_filename(string fpath, string& fname) {
+    std::string::size_type n;
+    if (fpath.size() == 0) {
+        return -1;
+    }
+    n = fpath.rfind("/");
+    if (n == std::string::npos) {
+        fname = fpath;
+    } else if (n == fpath.size()-1) {
+        return -2;
+    } else {
+        fname = fpath.substr(n+1);
+    }
+    return 0;
+}
+
+// get the name part of a filepath
+//
+// wrapper for path_to_filename(string, string&)
+int path_to_filename(string fpath, char* &fname) {
+    string name;
+    int retval = path_to_filename(fpath, name);
+    if (retval) {
+        return retval;
+    }
+    fname = new char[name.size()+1];
+    strcpy(fname, name.c_str());
+    return 0;
+}
diff --git a/lib/str_util.h b/lib/str_util.h
index 410d695..840b287 100644
--- a/lib/str_util.h
+++ b/lib/str_util.h
@@ -15,13 +15,16 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef STR_UTIL_H
-#define STR_UTIL_H
+#ifndef BOINC_STR_UTIL_H
+#define BOINC_STR_UTIL_H
 
 #include <string>
 #include <vector>
 #include <string.h>
 
+#define safe_strcpy(x, y) strlcpy(x, y, sizeof(x))
+#define safe_strcat(x, y) strlcat(x, y, sizeof(x))
+
 extern void strcpy_overlap(char*, const char*);
 extern int ndays_to_string(double x, int smallest_timescale, char *buf);
 extern void nbytes_to_string(double nbytes, double total_bytes, char* str, int len);
@@ -29,6 +32,11 @@ extern int parse_command_line(char*, char**);
 extern void c2x(char *what);
 extern void strip_whitespace(char *str);
 extern void strip_whitespace(std::string&);
+extern void strip_quotes(char *str);
+extern void strip_quotes(std::string&);
+extern void unescape_os_release(char *str);
+extern void collapse_whitespace(char *str);
+extern void collapse_whitespace(std::string&);
 extern char* time_to_string(double);
 extern char* precision_time_to_string(double);
 extern void secs_to_hmsf(double, char*);
@@ -102,4 +110,8 @@ extern void strip_translation(char* p);
 
 extern std::vector<std::string> split(std::string, char delim);
 
+extern bool is_valid_filename(const char*);
+
+extern int path_to_filename(std::string fpath, std::string& fname);
+extern int path_to_filename(std::string fpath, char* &fname);
 #endif
diff --git a/lib/submit_api.py b/lib/submit_api.py
new file mode 100644
index 0000000..7c482d5
--- /dev/null
+++ b/lib/submit_api.py
@@ -0,0 +1,279 @@
+# This file is part of BOINC.
+# http://boinc.berkeley.edu
+# Copyright (C) 2016 University of California
+#
+# BOINC is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation,
+# either version 3 of the License, or (at your option) any later version.
+#
+# BOINC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+
+# Python bindings of the remote job submission and file management APIs
+
+import urllib
+import copy
+import xml.etree.ElementTree as ET
+import requests
+    # you'll need to "yip install requests"
+import hashlib
+
+# describes an input file
+#
+class FILE_DESC:
+    def __init__(self):
+        return
+    def to_xml(self):
+        xml = ('<input_file>\n'
+        '<mode>%s</mode>\n'
+        ) %(self.mode)
+        if self.mode == 'remote':
+            xml += ('<url>%s</url>\n'
+            '<nbytes>%f</nbytes>\n'
+            '<md5>%s</md5>\n'
+            ) %(self.url, self.nbytes, self.md5)
+        else:
+            xml += '<source>%s</source>\n' %(self.source)
+        xml += '</input_file>\n'
+        return xml
+
+# describes a job
+#
+class JOB_DESC:
+    def __init__(self):
+        return
+    def to_xml(self):
+        xml = '<job>\n'
+        if hasattr(self, 'rsc_fpops_est'):
+            xml += '<rsc_fpops_est>%f</rsc_fpops_est>\n'%self.rsc_fpops_est
+        if hasattr(self, 'command_line'):
+            xml += '<command_line>%s</command_line>\n'%self.command_line
+        if hasattr(self, 'wu_template'):
+            xml += '<wu_template>\n%s\n</wu_template>\n'%self.wu_template
+        if hasattr(self, 'result_template'):
+            xml += '<result_template>\n%s\n</result_template>\n'%self.result_template
+        if hasattr(self, 'files'):
+            for file in self.files:
+                xml += file.to_xml()
+        xml += '</job>\n'
+        return xml
+
+# describes a batch for submit() or estimate()
+#
+class BATCH_DESC:
+    def __init__(self):
+        return
+
+    def to_xml(self, op):
+        xml = ('<%s>\n'
+            '<authenticator>%s</authenticator>\n'
+            '<batch>\n'
+            '<app_name>%s</app_name>\n'
+        ) %(op, self.authenticator, self.app_name)
+
+        if hasattr(self, 'batch_id'):
+            xml += '<batch_id>%s</batch_id>\n'%(self.batch_id)
+        elif hasattr(self, 'batch_name'):
+            xml += '<batch_name>%s</batch_name>\n'%(self.batch_name)
+        for job in self.jobs:
+            xml += job.to_xml()
+        xml += '</batch>\n</%s>\n' %(op)
+        return xml
+
+class CREATE_BATCH_REQ:
+    def __init__(self):
+        return
+    def to_xml(self):
+        xml = ('<create_batch>\n'
+        '<authenticator>%s</authenticator>\n'
+        '<app_name>%s</app_name>\n'
+        '<batch_name>%s</batch_name>\n'
+        '<expire_time>%f</expire_time>\n'
+        '</create_batch>\n') %(self.authenticator, self.app_name, self.batch_name, self.expire_time)
+        return xml
+
+# a generic request
+#
+class REQUEST:
+    def __init__(self):
+        return
+
+def do_http_post(req, project_url, handler='submit_rpc_handler.php'):
+    print req
+    url = project_url + handler
+    params = urllib.urlencode({'request': req})
+    f = urllib.urlopen(url, params)
+    reply = f.read()
+    print "REPLY:", reply
+    return ET.fromstring(reply)
+
+########### API FUNCTIONS START HERE ###############
+
+def abort_batch(req):
+    req_xml = ('<abort_batch>\n'
+    '<authenticator>%s</authenticator>\n'
+    '<batch_id>%s</batch_id>\n'
+    '</abort_batch>\n'
+    ) %(req.authenticator, req.batch_id)
+    return do_http_post(req_xml, req.project)
+
+def abort_jobs(req):
+    req_xml = ('<abort_jobs>\n'
+    '<authenticator>%s</authenticator>\n'
+    ) %(req.authenticator)
+    for job in req.jobs:
+        req_xml += '<job_name>%s</job_name>\n'%(job)
+    req_xml += '</abort_jobs>\n'
+    return do_http_post(req_xml, req.project)
+
+# req is a CREATE_BATCH_REQ
+#
+def create_batch(req):
+    return do_http_post(req.to_xml(), req.project)
+
+def estimate_batch(req):
+    return do_http_post(req.to_xml('estimate_batch'), req.project)
+
+def query_batch(req):
+    req_xml = ('<query_batch>\n'
+    '<authenticator>%s</authenticator>\n'
+    '<batch_id>%s</batch_id>\n'
+    '<get_cpu_time>%d</get_cpu_time>\n'
+    '<get_job_details>%d</get_job_details>\n'
+    '</query_batch>\n'
+    ) %(req.authenticator, req.batch_id, 1 if req.get_cpu_time else 0, 1 if req.get_job_details else 0)
+    return do_http_post(req_xml, req.project)
+
+def query_batches(req):
+    req_xml = ('<query_batches>\n'
+    '<authenticator>%s</authenticator>\n'
+    '<get_cpu_time>%d</get_cpu_time>\n'
+    '</query_batches>\n'
+    ) %(req.authenticator, 1 if req.get_cpu_time else 0)
+    return do_http_post(req_xml, req.project)
+
+def query_completed_job(req):
+    req_xml = ('<query_completed_job>\n'
+    '<authenticator>%s</authenticator>\n'
+    '<job_name>%s</job_name>\n'
+    '</query_completed_job>\n'
+    ) %(req.authenticator, req.job_name)
+    return do_http_post(req_xml, req.project)
+
+def query_job(req):
+    req_xml = ('<query_job>\n'
+    '<authenticator>%s</authenticator>\n'
+    '<job_id>%s</job_id>\n'
+    '</query_job>\n'
+    ) %(req.authenticator, req.job_id)
+    return do_http_post(req_xml, req.project)
+
+def get_output_file(req):
+    auth_str = hashlib.md5(req.authenticator+req.instance_name).hexdigest()
+    name = req.instance_name
+    file_num = req.file_num
+    return req.project+"/get_output.php?cmd=result_file&result_name=%s&file_num=%s&auth_str=%s"%(name, file_num, auth_str)
+
+def get_output_files(req):
+    auth_str = hashlib.md5(req.authenticator+str(req.batch_id)).hexdigest()
+    return req.project+"/get_output.php?cmd=batch_files&batch_id=%s&auth_str=%s"%(req.batch_id, auth_str)
+
+def retire_batch(req):
+    req_xml = ('<retire_batch>\n'
+    '<authenticator>%s</authenticator>\n'
+    '<batch_id>%s</batch_id>\n'
+    '</retire_batch>\n'
+    ) %(req.authenticator, req.batch_id)
+    return do_http_post(req_xml, req.project)
+
+def submit_batch(req):
+    return do_http_post(req.to_xml('submit_batch'), req.project)
+
+# see if reply is error.
+# if so print the message and return True
+#
+def check_error(response):
+    if response.find('error') is not None:
+         print 'error: ', response.find('error').find('error_msg').text
+         return True
+
+############ FILE MANAGEMENT API ##############
+
+class QUERY_FILES_REQ:
+    def __init__(self):
+        return
+
+    def to_xml(self):
+        xml = ('<query_files>\n'
+        '<authenticator>%s</authenticator>\n'
+        '<batch_id>%d</batch_id>\n') %(self.authenticator, self.batch_id)
+        for name in self.boinc_names:
+            xml += '<phys_name>%s</phys_name>\n' %(name)
+        xml += '</query_files>\n'
+        return xml
+
+class UPLOAD_FILES_REQ:
+    def __init__(self):
+        return
+
+    def to_xml(self):
+        xml = ('<upload_files>\n'
+        '<authenticator>%s</authenticator>\n'
+        '<batch_id>%d</batch_id>\n') %(self.authenticator, self.batch_id)
+        for name in self.boinc_names:
+            xml += '<phys_name>%s</phys_name>\n' %(name)
+        xml += '</upload_files>\n'
+        return xml
+
+def query_files(query_req):
+    reply = do_http_post(query_req.to_xml(), query_req.project, 'job_file.php')
+    return reply
+
+# This actually does two RPCs:
+# query_files() to find what files aren't already on server
+# upload_files() to upload them
+#
+def upload_files(upload_files_req):
+    query_req = QUERY_FILES_REQ()
+    query_req.authenticator = upload_files_req.authenticator
+    query_req.batch_id = upload_files_req.batch_id
+    query_req.boinc_names = upload_files_req.boinc_names
+    query_req_xml = query_req.to_xml()
+    reply = do_http_post(query_req_xml, upload_files_req.project, 'job_file.php')
+    if reply[0].tag == 'error':
+        return reply
+
+    absent = reply.find('absent_files').findall('file')
+    #print 'query files succeeded; ',len(absent), ' files need upload'
+    boinc_names = []
+    local_names = []
+    for n in absent:
+        ind = int(n.text)
+        boinc_names.append(upload_files_req.boinc_names[ind])
+        local_names.append(upload_files_req.local_names[ind])
+    upload_files_req.boinc_names = boinc_names
+    upload_files_req.local_names = local_names
+
+    # make a description of upoad files for "requests"
+    #
+    files = []
+    for i in range(len(boinc_names)):
+        bn = boinc_names[i]
+        ln = local_names[i]
+        upload_name = 'file_%d'%(i)
+        files.append((upload_name, (bn, open(ln, 'rb'), 'application/octet-stream')))
+
+    url = upload_files_req.project + '/job_file.php'
+    req_xml = upload_files_req.to_xml()
+    #print req_xml
+    req = {'request': req_xml}
+    reply = requests.post(url, data=req, files=files)
+    #print "reply text: ", reply.text
+    return ET.fromstring(reply.text)
diff --git a/lib/synch.h b/lib/synch.h
index 749a090..97ea5db 100644
--- a/lib/synch.h
+++ b/lib/synch.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SYNCH_H_
-#define _SYNCH_H_
+#ifndef BOINC_SYNCH_H
+#define BOINC_SYNCH_H
 
 #include <sys/sem.h>
 
diff --git a/lib/translate.h b/lib/translate.h
index 16c4c37..2b90fc4 100644
--- a/lib/translate.h
+++ b/lib/translate.h
@@ -32,8 +32,8 @@
 // translation will be found in some language useful to the user.
 //
 
-#ifndef _BOINC_TRANSLATE_H
-#define _BOINC_TRANSLATE_H
+#ifndef BOINC_TRANSLATE_H
+#define BOINC_TRANSLATE_H
 
 // We use only C APIs for maximum portability
 #ifdef __cplusplus
@@ -72,4 +72,4 @@ void BOINCTranslationCleanup();
 } // extern "C" {
 #endif
 
-#endif  // _BOINC_TRANSLATE_H
+#endif  // BOINC_TRANSLATE_H
diff --git a/lib/unix_util.h b/lib/unix_util.h
index 6b853b4..9687ee8 100644
--- a/lib/unix_util.h
+++ b/lib/unix_util.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef UNIX_UTIL_H
-#define UNIX_UTIL_H
+#ifndef BOINC_UNIX_UTIL_H
+#define BOINC_UNIX_UTIL_H
 
 // Nothing in this file is needed on WIN32
 #ifndef _WIN32
@@ -74,5 +74,5 @@ extern "C" char *ether_ntoa(const struct ether_addr *addr);
 
 #endif /* _WIN32 */
 
-#endif /* UNIX_UTIL_H */
+#endif // BOINC_UNIX_UTIL_H
 
diff --git a/lib/url.cpp b/lib/url.cpp
index d6db724..e5e1682 100644
--- a/lib/url.cpp
+++ b/lib/url.cpp
@@ -27,9 +27,6 @@
 #include <ctype.h>
 #include <stdlib.h>
 #endif
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
 
 #include "str_util.h"
 #include "str_replace.h"
diff --git a/lib/url.h b/lib/url.h
index c687554..15840c8 100644
--- a/lib/url.h
+++ b/lib/url.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef URL_H
-#define URL_H
+#ifndef BOINC_URL_H
+#define BOINC_URL_H
 
 #include <string>
 
diff --git a/lib/util.cpp b/lib/util.cpp
index 2a7c797..9ea53a6 100644
--- a/lib/util.cpp
+++ b/lib/util.cpp
@@ -21,6 +21,7 @@
 #else
 #include "stdwx.h"
 #endif
+#include "str_replace.h"
 #include "win_util.h"
 #endif
 
@@ -319,7 +320,11 @@ void boinc_crash() {
 
 // read file (at most max_len chars, if nonzero) into malloc'd buf
 //
+#ifdef _USING_FCGI_
+int read_file_malloc(const char* path, char*& buf, size_t, bool) {
+#else
 int read_file_malloc(const char* path, char*& buf, size_t max_len, bool tail) {
+#endif
     int retval;
     double size;
 
@@ -593,6 +598,9 @@ int wait_client_mutex(const char* dir, double timeout) {
 bool boinc_is_finite(double x) {
 #if defined (HPUX_SOURCE)
     return _Isfinite(x);
+#elif defined (__APPLE__)
+    // finite() is deprecated in OS 10.9
+    return std::isfinite(x) != 0;
 #else
     return finite(x) != 0;
 #endif
@@ -617,3 +625,24 @@ double rand_normal() {
     cached = true;
     return z*cos(PI2*u2);
 }
+
+// determines the real path and filename of the current process
+// not the current working directory
+//
+int get_real_executable_path(char* path, size_t max_len) {
+#ifdef HAVE__PROC_SELF_EXE
+    int ret = readlink("/proc/self/exe", path, max_len);
+    if ( ret >= 0) {
+        path[ret] = '\0'; // readlink does not null terminate
+        return 0;
+    } else {
+#ifdef _USING_FCGI_
+        FCGI::perror("readlink");
+#else
+        perror("readlink");
+#endif
+        return ERR_PROC_PARSE;
+    }
+#endif
+    return ERR_NOT_IMPLEMENTED;
+}
diff --git a/lib/util.h b/lib/util.h
index 7bf6b9c..c01fbbe 100644
--- a/lib/util.h
+++ b/lib/util.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef UTIL_H
-#define UTIL_H
+#ifndef BOINC_UTIL_H
+#define BOINC_UTIL_H
 
 #include <stdlib.h>
 #include <string>
@@ -110,6 +110,8 @@ extern bool process_exists(int);
 
 extern int wait_client_mutex(const char* dir, double timeout);
 
+extern int get_real_executable_path(char* path, size_t max_len);
+
 #ifdef GCL_SIMULATOR
 extern double simtime;
 #define time(x) ((int)simtime)
diff --git a/lib/win_util.cpp b/lib/win_util.cpp
index 3db88e9..28253c5 100644
--- a/lib/win_util.cpp
+++ b/lib/win_util.cpp
@@ -21,15 +21,12 @@
 #include "stdwx.h"
 #endif
 
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#define snprintf    _snprintf
-#endif
-
 #include "diagnostics.h"
 #include "util.h"
 #include "filesys.h"
 #include "win_util.h"
 #include "str_replace.h"
+#include "str_util.h"
 
 
 /**
diff --git a/lib/win_util.h b/lib/win_util.h
index 4830a8b..6b76779 100644
--- a/lib/win_util.h
+++ b/lib/win_util.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _WIN_UTIL_
-#define _WIN_UTIL_
+#ifndef BOINC_WIN_UTIL_H
+#define BOINC_WIN_UTIL_H
 
 extern BOOL TerminateProcessById(DWORD dwProcessId);
 extern void chdir_to_data_dir();
@@ -28,4 +28,4 @@ extern char* windows_format_error_string(
     unsigned long dwError, char* pszBuf, int iSize
 );
 
-#endif // _WIN_UTIL_
+#endif
diff --git a/locale/ar/BOINC-Project-Generic.po b/locale/ar/BOINC-Project-Generic.po
deleted file mode 100644
index 043e2a9..0000000
--- a/locale/ar/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6428 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2012-11-13 16:40 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ar\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:624
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/forum_forum.php:71
-#: ../user/sample_index.php:119
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/forum_forum.php:73 ../user/sample_index.php:118
-#: ../project.sample/project.inc:47
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:681
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:690
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1174 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:622 ../inc/forum.inc:627 ../inc/forum.inc:726
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/user.inc:329 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:624
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:627
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:630 ../inc/prefs.inc:690 ../inc/prefs.inc:692
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:630
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:636
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:639
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:684 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:684
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:707
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:728
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:746
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:757
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:779
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1054 ../user/forum_thread.php:187
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1054
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1056 ../user/forum_thread.php:193
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1056
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1061 ../user/forum_thread.php:226
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1061
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1066
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1073
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1077
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1082
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1115
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1125
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1132
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1139
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1144
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1172
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1173 ../inc/team.inc:120 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1175 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../inc/team.inc:120 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1234
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1239
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1250
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:55 ../inc/prefs.inc:625 ../inc/prefs.inc:1030
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:627 ../inc/prefs.inc:1031
-#: ../user/server_status.php:319
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:626 ../inc/prefs.inc:1032
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:83
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:87 ../inc/host.inc:92
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:87
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:92
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:98 ../inc/host.inc:645 ../inc/result.inc:614
-#: ../inc/team.inc:202 ../inc/team.inc:350 ../inc/user.inc:200
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-#: ../user/team_admins.php:62 ../user/team_change_founder_form.php:77
-#: ../user/team_email_list.php:64 ../user/top_users.php:49
-#: ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:102 ../inc/host.inc:104 ../inc/host.inc:216
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:104 ../inc/host.inc:333
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/result.inc:616
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:109 ../inc/host.inc:220 ../inc/host.inc:225
-#: ../inc/host.inc:654 ../inc/team.inc:94 ../inc/team.inc:207
-#: ../inc/team.inc:212 ../inc/team.inc:214 ../inc/team.inc:356
-#: ../inc/team.inc:361 ../inc/user.inc:122 ../inc/user.inc:136
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:110 ../inc/user.inc:122 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:112
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:114
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:115
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:117
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:119 ../inc/host.inc:660
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:122 ../inc/host.inc:229
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:126
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:134
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:137
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:137 ../inc/host.inc:140
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:144
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:144 ../inc/host.inc:147
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:147
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:153
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:158
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:153 ../inc/host.inc:160 ../inc/result.inc:207
-#: ../inc/result.inc:217 ../inc/result.inc:235 ../inc/result.inc:253
-#: ../inc/result.inc:269 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:29
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:158 ../inc/host.inc:160
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/host_app_versions.php:64
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:164
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:165
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:175 ../inc/host.inc:317 ../inc/user.inc:153
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:179 ../inc/host.inc:200
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:180
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:181
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:183
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:185
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:187
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:190
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:192 ../inc/host.inc:647
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:194
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:201 ../inc/host.inc:662
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:214
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:215 ../inc/host.inc:649 ../inc/team.inc:349
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:219 ../inc/host.inc:652
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:224 ../inc/team.inc:95 ../inc/team.inc:208
-#: ../inc/team.inc:217 ../inc/team.inc:219 ../inc/team.inc:355
-#: ../inc/team.inc:360 ../inc/user.inc:137
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/host.inc:657 ../inc/result.inc:47
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:231 ../inc/host.inc:658
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:232
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:296
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:316
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:321
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:493
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:500
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:506
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:573
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:576
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:579
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:596
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:600
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:605
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:607
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:642 ../inc/result.inc:623
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:655
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:711 ../user/merge_by_name.php:67
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:59 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:76
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:84
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:90
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:98
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:100 ../inc/prefs.inc:109 ../inc/prefs.inc:143
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:104
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:113
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:121
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:129
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:138
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:146
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:148
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:152
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:157
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:161
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:166
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:174 ../inc/prefs.inc:188
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:176 ../inc/prefs.inc:185
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:179
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:190 ../inc/prefs.inc:200 ../inc/prefs.inc:205
-#: ../inc/prefs.inc:210
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:193
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:195
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:198
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:203
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:208
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:217
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:222 ../inc/prefs.inc:227 ../inc/prefs.inc:269
-#: ../inc/util.inc:264
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:225
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:231
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:240
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:248
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:250 ../inc/prefs.inc:255
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:253
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:258
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:262
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:268
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:273
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:286
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:297
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:307
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:319
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:331
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:345
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:354
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:361
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:375
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:376
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:379
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:382
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:431
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:437
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1007
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1009
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:664 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:689 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:691 ../inc/prefs.inc:819
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:797 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:808
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:818 ../inc/prefs.inc:896
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:824
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:832 ../inc/prefs.inc:877
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:834 ../inc/prefs.inc:880
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:889
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:856 ../user/add_venue.php:43 ../user/add_venue.php:67
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:870
-msgid ""
-"These apply to all BOINC projects in which you participate.<br>\n"
-"             On computers participating in multiple projects, the most "
-"recently modified preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:874
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:926
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:930
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1018 ../inc/prefs.inc:1027
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:192
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:196
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:210
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:218 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:261
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:263
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:267
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:34
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:48
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:49 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:56
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:82
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:105 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:106 ../inc/result.inc:167 ../inc/result.inc:214
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:107
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:108
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:109 ../inc/result.inc:259
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:110 ../inc/result.inc:262
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:111 ../inc/result.inc:200
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:165 ../inc/result.inc:212 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:166 ../inc/result.inc:213 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:172
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:173
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:174
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:175
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:176
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:177
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:179
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:180 ../inc/result.inc:224 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:185 ../inc/result.inc:248
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:190
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:193
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:195
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:196
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:197 ../inc/result.inc:250
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:198 ../inc/result.inc:251
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:201
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:202 ../inc/result.inc:231 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:203 ../inc/result.inc:232 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:204 ../inc/result.inc:233
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:215 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:223 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:227
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:229
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:230 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:240 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:241 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:242
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:243
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:244 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:245 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:258
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:264
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:265
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:266
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:293
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:297
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:301
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:305
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:309
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:313
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:340 ../inc/result.inc:345 ../inc/result.inc:348
-#: ../inc/result.inc:351
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:345
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:348
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:351
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:357 ../inc/result.inc:617
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:358
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:359
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:361 ../user/server_status.php:246
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:362
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:363
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:364 ../inc/result.inc:628
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:365 ../inc/result.inc:710
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:615
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:618
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:619
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:620
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:621
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:622
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:624
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:625
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:626
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:627
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:642
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:645
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:692
-msgid "State"
-msgstr ""
-
-#: ../inc/team.inc:33
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:36 ../inc/team.inc:114 ../inc/team.inc:225
-#: ../inc/team.inc:365 ../inc/team.inc:449 ../inc/user.inc:206
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:106 ../user/edit_user_info_form.php:40
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:42 ../inc/team.inc:447
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:44
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:45 ../user/profile_menu.php:77 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:54
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:56
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:65 ../inc/team.inc:549 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:70
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:80
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:82 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:90
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:112
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:115 ../inc/team.inc:366 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:119 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:120 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:128
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:129
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:132
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:139
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:144
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:148 ../inc/team.inc:351
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:149 ../inc/team.inc:246
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:161
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:176
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:177
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:177 ../inc/team.inc:178 ../inc/team.inc:179
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:178
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:179
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:248
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:269 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:273 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:281
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:294
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:318
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:415
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:426
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:427
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:430
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:432 ../inc/team.inc:442
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:437
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:440
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:456
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:27
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:116
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:118
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:146
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../user/pending.php:64
-msgid "Pending credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../inc/user.inc:152 ../inc/user.inc:153
-#: ../inc/user.inc:218 ../inc/user.inc:243 ../inc/user.inc:327
-#: ../inc/user.inc:402 ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:152
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:164
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:166 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:168
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:170
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:184
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:199
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:201 ../user/edit_passwd_form.php:48
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:204 ../inc/user.inc:321
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:207
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:208 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:212
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:214 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:214
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:217 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:222
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:226
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:229
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:230 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:233
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:234 ../user/prefs.php:32
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:240 ../user/sample_index.php:114
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:504
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:327 ../inc/user.inc:329 ../user/server_status.php:396
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:336
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:122
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:124
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:194 ../user/login_form.php:37 ../user/login_form.php:62
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:195 ../user/create_account_form.php:38
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:196
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:238
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:247
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:267
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:270
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:273
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:434
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:503
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:559
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:770
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:773
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:791
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:792
-msgid "Error:"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:129 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:106
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:85
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/sample_index.php:109
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:49
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:38 ../user/create_account_action.php:40
-#: ../user/create_account_form.php:43
-msgid "Account creation is disabled"
-msgstr ""
-
-#: ../user/create_account_action.php:41
-msgid ""
-"Sorry, this project has disabled the creation of new accounts.\n"
-"Please try again later."
-msgstr ""
-
-#: ../user/create_account_action.php:53
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:77
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:80
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:91
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:95
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:108 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:113 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:134
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid "Account creation is currently disabled. Please try again later."
-msgstr ""
-
-#: ../user/create_account_form.php:53
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:69
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:100 ../user/edit_email_form.php:48
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:101
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:104
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:121
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:127
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:55 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:28 ../user/edit_email_form.php:52
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:39
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:49
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:28
-#: ../user/edit_passwd_form.php:58
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:44
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:45
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:51
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:52
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:56
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:57
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:29
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:34
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:37
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:45
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:49
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:31
-msgid ""
-"This project hasn\\'t created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:34
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:38
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:40
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:57
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:60
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:156
-#: ../user/forum_thread.php:272
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:127
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:136
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:157 ../user/forum_thread.php:273
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:169
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:170
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:176
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:177
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:188
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:194
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:200
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:201
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:206
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:207
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:213
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:214
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:219
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:220
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:227
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:232
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:233
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:243
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:244
-msgid "Export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:249
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:250
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:258 ../user/forum_thread.php:260
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-"<b>C:\\Program Files\\BOINC</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:182 ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/home.php:49 ../project.sample/project.inc:47
-msgid "Your account"
-msgstr ""
-
-#: ../user/host_app_versions.php:26
-msgid "nvidia GPU"
-msgstr ""
-
-#: ../user/host_app_versions.php:36
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:39
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:42
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:44
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:46
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:55
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:62
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:71
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:24 ../user/sample_index.php:74
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:44
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:70
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:75
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:80
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:82
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:86
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:92
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:94
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:110
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:57
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:63
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:33
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:45
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:74
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:78
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:84
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:85
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:79
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:97
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:35
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:44
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:51
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:55
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:57
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35 ../user/sample_index.php:116
-msgid "Profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:38
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:39
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:40
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:45
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:58
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:63
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:67
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:73
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:30
-msgid "No such task"
-msgstr ""
-
-#: ../user/result.php:32
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:102
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/sample_index.php:180
-msgid "User of the day"
-msgstr ""
-
-#: ../user/server_status.php:91
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:94
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:236
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:238
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:244
-msgid "Server status"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:257
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:263
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:266
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:300
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:301
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:302
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:304
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:308
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:314
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:331
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:336 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:356
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:373
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:380
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:398
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:403
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:392 ../user/server_status.php:408
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:414
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:423
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:426 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:428
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:429
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:430
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:30 ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:179
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:98
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:100
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:104
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:110 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:35
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:47
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:180
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:182
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:187
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:47
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:49
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:52
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:95
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/az/BOINC-Setup.mo b/locale/az/BOINC-Setup.mo
index 191a4c3..9045168 100644
Binary files a/locale/az/BOINC-Setup.mo and b/locale/az/BOINC-Setup.mo differ
diff --git a/locale/az/BOINC-Setup.po b/locale/az/BOINC-Setup.po
index 9474399..74e834e 100644
--- a/locale/az/BOINC-Setup.po
+++ b/locale/az/BOINC-Setup.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2016-01-11 17:07+0000\n"
+"PO-Revision-Date: 2016-01-11 17:08+0000\n"
 "Last-Translator: Orkhan Guliyev <orkhan at ourstudio.az>\n"
 "Language-Team: Azerbaijani (http://www.transifex.com/boinc/boinc/language/az/)\n"
 "MIME-Version: 1.0\n"
diff --git a/locale/be/BOINC-Project-Generic.po b/locale/be/BOINC-Project-Generic.po
deleted file mode 100644
index bc471ba..0000000
--- a/locale/be/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6428 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2012-11-13 16:40 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: be\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:624
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/forum_forum.php:71
-#: ../user/sample_index.php:119
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/forum_forum.php:73 ../user/sample_index.php:118
-#: ../project.sample/project.inc:47
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:681
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:690
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1174 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:622 ../inc/forum.inc:627 ../inc/forum.inc:726
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/user.inc:329 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:624
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:627
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:630 ../inc/prefs.inc:690 ../inc/prefs.inc:692
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:630
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:636
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:639
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:684 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:684
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:707
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:728
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:746
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:757
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:779
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1054 ../user/forum_thread.php:187
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1054
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1056 ../user/forum_thread.php:193
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1056
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1061 ../user/forum_thread.php:226
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1061
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1066
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1073
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1077
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1082
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1115
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1125
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1132
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1139
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1144
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1172
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1173 ../inc/team.inc:120 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1175 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../inc/team.inc:120 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1234
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1239
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1250
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:55 ../inc/prefs.inc:625 ../inc/prefs.inc:1030
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:627 ../inc/prefs.inc:1031
-#: ../user/server_status.php:319
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:626 ../inc/prefs.inc:1032
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:83
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:87 ../inc/host.inc:92
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:87
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:92
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:98 ../inc/host.inc:645 ../inc/result.inc:614
-#: ../inc/team.inc:202 ../inc/team.inc:350 ../inc/user.inc:200
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-#: ../user/team_admins.php:62 ../user/team_change_founder_form.php:77
-#: ../user/team_email_list.php:64 ../user/top_users.php:49
-#: ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:102 ../inc/host.inc:104 ../inc/host.inc:216
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:104 ../inc/host.inc:333
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/result.inc:616
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:109 ../inc/host.inc:220 ../inc/host.inc:225
-#: ../inc/host.inc:654 ../inc/team.inc:94 ../inc/team.inc:207
-#: ../inc/team.inc:212 ../inc/team.inc:214 ../inc/team.inc:356
-#: ../inc/team.inc:361 ../inc/user.inc:122 ../inc/user.inc:136
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:110 ../inc/user.inc:122 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:112
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:114
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:115
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:117
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:119 ../inc/host.inc:660
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:122 ../inc/host.inc:229
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:126
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:134
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:137
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:137 ../inc/host.inc:140
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:144
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:144 ../inc/host.inc:147
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:147
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:153
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:158
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:153 ../inc/host.inc:160 ../inc/result.inc:207
-#: ../inc/result.inc:217 ../inc/result.inc:235 ../inc/result.inc:253
-#: ../inc/result.inc:269 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:29
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:158 ../inc/host.inc:160
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/host_app_versions.php:64
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:164
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:165
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:175 ../inc/host.inc:317 ../inc/user.inc:153
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:179 ../inc/host.inc:200
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:180
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:181
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:183
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:185
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:187
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:190
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:192 ../inc/host.inc:647
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:194
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:201 ../inc/host.inc:662
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:214
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:215 ../inc/host.inc:649 ../inc/team.inc:349
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:219 ../inc/host.inc:652
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:224 ../inc/team.inc:95 ../inc/team.inc:208
-#: ../inc/team.inc:217 ../inc/team.inc:219 ../inc/team.inc:355
-#: ../inc/team.inc:360 ../inc/user.inc:137
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/host.inc:657 ../inc/result.inc:47
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:231 ../inc/host.inc:658
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:232
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:296
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:316
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:321
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:493
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:500
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:506
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:573
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:576
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:579
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:596
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:600
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:605
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:607
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:642 ../inc/result.inc:623
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:655
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:711 ../user/merge_by_name.php:67
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:59 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:76
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:84
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:90
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:98
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:100 ../inc/prefs.inc:109 ../inc/prefs.inc:143
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:104
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:113
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:121
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:129
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:138
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:146
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:148
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:152
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:157
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:161
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:166
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:174 ../inc/prefs.inc:188
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:176 ../inc/prefs.inc:185
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:179
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:190 ../inc/prefs.inc:200 ../inc/prefs.inc:205
-#: ../inc/prefs.inc:210
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:193
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:195
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:198
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:203
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:208
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:217
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:222 ../inc/prefs.inc:227 ../inc/prefs.inc:269
-#: ../inc/util.inc:264
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:225
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:231
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:240
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:248
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:250 ../inc/prefs.inc:255
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:253
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:258
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:262
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:268
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:273
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:286
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:297
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:307
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:319
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:331
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:345
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:354
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:361
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:375
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:376
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:379
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:382
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:431
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:437
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1007
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1009
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:664 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:689 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:691 ../inc/prefs.inc:819
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:797 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:808
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:818 ../inc/prefs.inc:896
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:824
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:832 ../inc/prefs.inc:877
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:834 ../inc/prefs.inc:880
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:889
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:856 ../user/add_venue.php:43 ../user/add_venue.php:67
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:870
-msgid ""
-"These apply to all BOINC projects in which you participate.<br>\n"
-"             On computers participating in multiple projects, the most "
-"recently modified preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:874
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:926
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:930
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1018 ../inc/prefs.inc:1027
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:192
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:196
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:210
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:218 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:261
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:263
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:267
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:34
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:48
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:49 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:56
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:82
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:105 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:106 ../inc/result.inc:167 ../inc/result.inc:214
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:107
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:108
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:109 ../inc/result.inc:259
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:110 ../inc/result.inc:262
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:111 ../inc/result.inc:200
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:165 ../inc/result.inc:212 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:166 ../inc/result.inc:213 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:172
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:173
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:174
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:175
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:176
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:177
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:179
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:180 ../inc/result.inc:224 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:185 ../inc/result.inc:248
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:190
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:193
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:195
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:196
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:197 ../inc/result.inc:250
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:198 ../inc/result.inc:251
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:201
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:202 ../inc/result.inc:231 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:203 ../inc/result.inc:232 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:204 ../inc/result.inc:233
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:215 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:223 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:227
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:229
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:230 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:240 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:241 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:242
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:243
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:244 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:245 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:258
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:264
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:265
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:266
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:293
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:297
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:301
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:305
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:309
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:313
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:340 ../inc/result.inc:345 ../inc/result.inc:348
-#: ../inc/result.inc:351
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:345
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:348
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:351
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:357 ../inc/result.inc:617
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:358
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:359
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:361 ../user/server_status.php:246
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:362
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:363
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:364 ../inc/result.inc:628
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:365 ../inc/result.inc:710
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:615
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:618
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:619
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:620
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:621
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:622
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:624
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:625
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:626
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:627
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:642
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:645
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:692
-msgid "State"
-msgstr ""
-
-#: ../inc/team.inc:33
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:36 ../inc/team.inc:114 ../inc/team.inc:225
-#: ../inc/team.inc:365 ../inc/team.inc:449 ../inc/user.inc:206
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:106 ../user/edit_user_info_form.php:40
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:42 ../inc/team.inc:447
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:44
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:45 ../user/profile_menu.php:77 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:54
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:56
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:65 ../inc/team.inc:549 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:70
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:80
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:82 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:90
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:112
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:115 ../inc/team.inc:366 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:119 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:120 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:128
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:129
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:132
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:139
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:144
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:148 ../inc/team.inc:351
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:149 ../inc/team.inc:246
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:161
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:176
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:177
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:177 ../inc/team.inc:178 ../inc/team.inc:179
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:178
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:179
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:248
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:269 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:273 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:281
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:294
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:318
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:415
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:426
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:427
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:430
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:432 ../inc/team.inc:442
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:437
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:440
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:456
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:27
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:116
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:118
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:146
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../user/pending.php:64
-msgid "Pending credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../inc/user.inc:152 ../inc/user.inc:153
-#: ../inc/user.inc:218 ../inc/user.inc:243 ../inc/user.inc:327
-#: ../inc/user.inc:402 ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:152
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:164
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:166 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:168
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:170
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:184
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:199
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:201 ../user/edit_passwd_form.php:48
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:204 ../inc/user.inc:321
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:207
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:208 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:212
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:214 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:214
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:217 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:222
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:226
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:229
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:230 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:233
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:234 ../user/prefs.php:32
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:240 ../user/sample_index.php:114
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:504
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:327 ../inc/user.inc:329 ../user/server_status.php:396
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:336
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:122
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:124
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:194 ../user/login_form.php:37 ../user/login_form.php:62
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:195 ../user/create_account_form.php:38
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:196
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:238
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:247
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:267
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:270
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:273
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:434
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:503
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:559
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:770
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:773
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:791
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:792
-msgid "Error:"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:129 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:106
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:85
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/sample_index.php:109
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:49
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:38 ../user/create_account_action.php:40
-#: ../user/create_account_form.php:43
-msgid "Account creation is disabled"
-msgstr ""
-
-#: ../user/create_account_action.php:41
-msgid ""
-"Sorry, this project has disabled the creation of new accounts.\n"
-"Please try again later."
-msgstr ""
-
-#: ../user/create_account_action.php:53
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:77
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:80
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:91
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:95
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:108 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:113 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:134
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid "Account creation is currently disabled. Please try again later."
-msgstr ""
-
-#: ../user/create_account_form.php:53
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:69
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:100 ../user/edit_email_form.php:48
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:101
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:104
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:121
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:127
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:55 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:28 ../user/edit_email_form.php:52
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:39
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:49
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:28
-#: ../user/edit_passwd_form.php:58
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:44
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:45
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:51
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:52
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:56
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:57
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:29
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:34
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:37
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:45
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:49
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:31
-msgid ""
-"This project hasn\\'t created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:34
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:38
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:40
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:57
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:60
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:156
-#: ../user/forum_thread.php:272
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:127
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:136
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:157 ../user/forum_thread.php:273
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:169
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:170
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:176
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:177
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:188
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:194
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:200
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:201
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:206
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:207
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:213
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:214
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:219
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:220
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:227
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:232
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:233
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:243
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:244
-msgid "Export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:249
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:250
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:258 ../user/forum_thread.php:260
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-"<b>C:\\Program Files\\BOINC</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:182 ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/home.php:49 ../project.sample/project.inc:47
-msgid "Your account"
-msgstr ""
-
-#: ../user/host_app_versions.php:26
-msgid "nvidia GPU"
-msgstr ""
-
-#: ../user/host_app_versions.php:36
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:39
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:42
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:44
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:46
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:55
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:62
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:71
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:24 ../user/sample_index.php:74
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:44
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:70
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:75
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:80
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:82
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:86
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:92
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:94
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:110
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:57
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:63
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:33
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:45
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:74
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:78
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:84
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:85
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:79
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:97
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:35
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:44
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:51
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:55
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:57
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35 ../user/sample_index.php:116
-msgid "Profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:38
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:39
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:40
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:45
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:58
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:63
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:67
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:73
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:30
-msgid "No such task"
-msgstr ""
-
-#: ../user/result.php:32
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:102
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/sample_index.php:180
-msgid "User of the day"
-msgstr ""
-
-#: ../user/server_status.php:91
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:94
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:236
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:238
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:244
-msgid "Server status"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:257
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:263
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:266
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:300
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:301
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:302
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:304
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:308
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:314
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:331
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:336 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:356
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:373
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:380
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:398
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:403
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:392 ../user/server_status.php:408
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:414
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:423
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:426 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:428
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:429
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:430
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:30 ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:179
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:98
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:100
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:104
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:110 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:35
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:47
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:180
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:182
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:187
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:47
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:49
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:52
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:95
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/bg/BOINC-Client.mo b/locale/bg/BOINC-Client.mo
index 979f3a8..52ea763 100644
Binary files a/locale/bg/BOINC-Client.mo and b/locale/bg/BOINC-Client.mo differ
diff --git a/locale/bg/BOINC-Client.po b/locale/bg/BOINC-Client.po
index 8b1115e..eb1d927 100644
--- a/locale/bg/BOINC-Client.po
+++ b/locale/bg/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Vesselin Stoilov <vesselin91 at gmail.com>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-08 18:19+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Bulgarian (http://www.transifex.com/projects/p/boinc/language/bg/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-06 14:15+0000\n"
+"Last-Translator: Vesselin Stoilov <vesselin91 at gmail.com>\n"
+"Language-Team: Bulgarian (http://www.transifex.com/boinc/boinc/language/bg/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: bg\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Съобщение от акаунт мениджър"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Съобщение от сървър"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Някои задачи се нуждаят от повече памет отколкото е позволена във вашите предпочитания.  Моля проверете предпочитанията си."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Не може да се запише файл за състоянието; проверете правата върху папката"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Променливата на средата HTTP_PROXY трябва да посочва HTTP прокси"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Използвали сте грешен URL за този проект.  Когато е удобно премахнете този проект и тогава добавете %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Този проект използва стар URL. Когато е удобно, премахнете проекта, след което добавете %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Синтактична грешка в app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Файлът посочен в app_info.xml не съществува: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Налична е нова версия на BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Изтегляне"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "не може да бъде използвано за CUDA или OpenCL изчисления с CUDA драйвър версия 6.5 или по-нова"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Неочакван текст в cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Неразпознат таг в cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Липсва начален таг в cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Грешка в настройките на cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Липсва завършващ таг в cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "За да поправите това, можете да"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "промените Предпочитанията на Проекта на уебсайта на проекта"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "премахнете GPU изключенията във файла cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "промените настройките си на уебсайта на проекта"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Невалиден или липсващ ключ на акаунта.  За да поправите това, премахнете и добавете този проект."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Невалиден ключ за присъединяване.  За да поправите това, премахнете и добавете този проект."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Проектът е сменил своя ключ за сигурност.  Моля премахнете и добавете този проект."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Този проект не поддържа операционна система"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Този проект не поддържа CPU тип"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Вашият BOINC клиент е твърде стар.  Моля, инсталирайте текущата версия."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Този проект не поддържа компютри от тип"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Обновете до последната версия на драйвера за да изпълнявате задачи с помощта на GPU-то на компютъра Ви"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Обновете до последната версия на драйвера за да използвате всички GPU приложения на този проект"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Нужна е по-нова версия на BOINC за да използвате вашето NVIDIA GPU; моля обновете до текущата версия"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Необходимо е %s GPU за стартиране на задачи за този проект"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Няма налични задачи за приложенията които сте избрали."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Типът на вашия компютър не се поддържа от този проект"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Необходима е по-нова версия на BOINC; моля, инсталирайте текущата версия"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Налични за задачи за %s, но вашите предпочитания са зададени да не ги приемате"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Неизвестно име на приложение в app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Вашият файл app_info.xml няма използваема версия на"
diff --git a/locale/bg/BOINC-Manager.mo b/locale/bg/BOINC-Manager.mo
index 70f94c8..2f5fa38 100644
Binary files a/locale/bg/BOINC-Manager.mo and b/locale/bg/BOINC-Manager.mo differ
diff --git a/locale/bg/BOINC-Manager.po b/locale/bg/BOINC-Manager.po
old mode 100755
new mode 100644
index 6ef45e9..9329363
--- a/locale/bg/BOINC-Manager.po
+++ b/locale/bg/BOINC-Manager.po
@@ -1,66 +1,54 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC Manager 6.x\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-02 00:00-0800\n"
-"PO-Revision-Date: 2013-09-10 11:32+0000\n"
-"Last-Translator: Dimitar <mexicoman at abv.bg>\n"
-"Language-Team: AMD Powered @ Home Team <timeros at gmail.com>\n"
-"Language: bg\n"
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-16 13:39+0000\n"
+"Last-Translator: Vesselin Stoilov <vesselin91 at gmail.com>\n"
+"Language-Team: Bulgarian (http://www.transifex.com/boinc/boinc/language/bg/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: bg\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-1: clientgui/msw\n"
-"X-Poedit-SearchPath-2: clientgui/gtk\n"
-"X-Poedit-SearchPath-3: clientgui/mac\n"
-"X-Poedit-SearchPath-0: clientgui\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-POOTLE-MTIME: 1378812727.0\n"
 
-# 100%
-#: AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
-#, c-format, c-format
 msgid "Identify your account at %s"
 msgstr "Идентифицирайте Вашия акаунт в %s"
 
-#: AccountInfoPage.cpp:393
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
-msgstr ""
-"Моля въведете информацията за своя акаунт\n"
-"(за да създадете акаунт, посетете интернет страницата на проекта)"
+msgstr "Моля въведете информацията за своя акаунт\n(за да създадете акаунт, посетете интернет страницата на проекта)"
 
-#: AccountInfoPage.cpp:397
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
-msgstr ""
-"Този проект в момента не приема нови акаунти.\n"
-"Можете да го добавите само ако вече имате регистриран акаунт."
+msgstr "Този проект в момента не приема нови акаунти.\nМожете да го добавите само ако вече имате регистриран акаунт."
 
-#: AccountInfoPage.cpp:401
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Вече участвате ли в този проект?"
 
-#: AccountInfoPage.cpp:405
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Не, нов потребител"
 
-#: AccountInfoPage.cpp:408
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Да, съществуващ потребител"
 
-#: AccountInfoPage.cpp:413
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -68,485 +56,510 @@ msgid ""
 "Please click on the 'Find login information' link\n"
 "below to find out what to put in the email address and\n"
 "password fields."
-msgstr ""
-"Не можем да настроим автоматично информацията\n"
-"за Вашия акаунт.\n"
-"\n"
-"Моля натиснете на връзката 'Намери информация за вход' \n"
-"по-долу за да разберете какво да попълните в полетата\n"
-"за имейл адрес и парола."
+msgstr "Не можем да настроим автоматично информацията\nза Вашия акаунт.\n\nМоля натиснете на връзката 'Намери информация за вход' \nпо-долу за да разберете какво да попълните в полетата\nза имейл адрес и парола."
 
-#: AccountInfoPage.cpp:416
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Намери информация за вход"
 
-#: AccountInfoPage.cpp:436 AccountInfoPage.cpp:641
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Парола:"
 
-#: AccountInfoPage.cpp:443 AccountInfoPage.cpp:665
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Изберете &парола:"
 
-#: AccountInfoPage.cpp:446
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "П&отвърдете парола:"
 
-#: AccountInfoPage.cpp:453
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Вече участвате ли в %s?"
 
-#: AccountInfoPage.cpp:482
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Потребителско име:"
 
-#: AccountInfoPage.cpp:508
+#: clientgui/AccountInfoPage.cpp:483
+msgid "&Email address or LDAP ID:"
+msgstr "&Имейл адрес или ID в LDAP:"
+
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Имейл адрес:"
 
-#: AccountInfoPage.cpp:515
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "минимална дължина %d"
 
-#: AccountInfoPage.cpp:522
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Забравили сте паролата си?"
 
-#: AccountInfoPage.cpp:529
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
-msgstr ""
-"Ако все още не сте се регистрирали с този акаунт мениджър,\n"
-"моля направете го преди да продължите.  Натиснете на връзката\n"
-"по-долу за да се регистрирате или за да получите отново забравена парола."
+msgstr "Ако все още не сте се регистрирали с този акаунт мениджър,\nмоля направете го преди да продължите.  Натиснете на връзката\nпо-долу за да се регистрирате или за да получите отново забравена парола."
 
-#: AccountInfoPage.cpp:532
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
-msgstr ""
+msgstr "Уебстраница на акаунт мениджъра"
 
-#: AccountInfoPage.cpp:574 WelcomePage.cpp:348
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Добави проект"
 
-#: AccountInfoPage.cpp:576
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Обнови акаунт мениджъра"
 
-#: AccountInfoPage.cpp:578 WelcomePage.cpp:307 WelcomePage.cpp:321
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Използвай акаунт мениджър"
 
-#: AccountInfoPage.cpp:585
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
-msgstr ""
+msgstr "Моля, въведете потребителско име."
 
-#: AccountInfoPage.cpp:587
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
-msgstr ""
+msgstr "Моля, въведете имейл адрес."
 
-#: AccountInfoPage.cpp:597
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
-msgstr ""
+msgstr "Моля, въведете парола не по-къса от %d символа."
 
-#: AccountInfoPage.cpp:607
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
-msgstr ""
-"Паролата и паролата за потвърждение не са еднакви. Моля напишете ги отново."
+msgstr "Паролата и паролата за потвърждение не са еднакви. Моля напишете ги отново."
 
-#: AccountManagerInfoPage.cpp:272
+#: clientgui/AccountManagerInfoPage.cpp:270
 msgid "Choose an account manager"
 msgstr "Изберете акаунт мениджър"
 
-#: AccountManagerInfoPage.cpp:275
+#: clientgui/AccountManagerInfoPage.cpp:273
 msgid ""
 "To choose an account manager, click its name or \n"
 "type its URL below."
-msgstr ""
-"За да изберете акаунт мениджър натиснете на неговото име или \n"
-"напишете неговия URL отдолу."
+msgstr "За да изберете акаунт мениджър натиснете на неговото име или \nнапишете неговия URL отдолу."
 
-#: AccountManagerInfoPage.cpp:279
+#: clientgui/AccountManagerInfoPage.cpp:277
 msgid "Account manager details:"
-msgstr ""
+msgstr "Данни за акаунт мениджъра:"
 
-#: AccountManagerInfoPage.cpp:283
+#: clientgui/AccountManagerInfoPage.cpp:281
 msgid "Account manager &URL:"
-msgstr ""
+msgstr "&URL на акаунт мениджъра:"
 
-#: AccountManagerInfoPage.cpp:287
+#: clientgui/AccountManagerInfoPage.cpp:285
 msgid "Open web page"
-msgstr ""
+msgstr "Отвори уебстраница"
 
-#: AccountManagerInfoPage.cpp:290
+#: clientgui/AccountManagerInfoPage.cpp:288
 msgid "Visit this account manager's web site"
-msgstr ""
+msgstr "Посетете уебстраницата на този акаунт мениджър"
 
-#: AccountManagerProcessingPage.cpp:187 AccountManagerPropertiesPage.cpp:193
+#. %s is the project name
+#. i.e. 'BOINC', 'GridRepublic'
+#: clientgui/AccountManagerProcessingPage.cpp:186
+#: clientgui/AccountManagerPropertiesPage.cpp:192
 #, c-format
 msgid "Communicating with %s."
 msgstr "Комуникация с %s."
 
-#: AccountManagerProcessingPage.cpp:194 AccountManagerPropertiesPage.cpp:200
+#: clientgui/AccountManagerProcessingPage.cpp:193
+#: clientgui/AccountManagerPropertiesPage.cpp:199
 msgid "Communicating with server."
 msgstr "Комуникация със сървър."
 
-#: AccountManagerProcessingPage.cpp:199 AccountManagerPropertiesPage.cpp:205
+#: clientgui/AccountManagerProcessingPage.cpp:198
+#: clientgui/AccountManagerPropertiesPage.cpp:204
 msgid "Please wait..."
 msgstr "Моля изчакайте..."
 
-#: AccountManagerProcessingPage.cpp:326
+#: clientgui/AccountManagerProcessingPage.cpp:325
 msgid "An internal server error has occurred.\n"
 msgstr "Възникна вътрешна грешка на сървъра.\n"
 
-#: AdvancedFrame.cpp:95
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Свързан"
 
-#: AdvancedFrame.cpp:103
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Прекъснат"
 
-#: AdvancedFrame.cpp:322 sg_BoincSimpleFrame.cpp:119
+#: clientgui/AdvancedFrame.cpp:329
+#, c-format
+msgid "New %s window..."
+msgstr "Нов %s прозорец..."
+
+#: clientgui/AdvancedFrame.cpp:333
+#, c-format
+msgid "Open another %s window"
+msgstr "Отвори друг %s прозорец"
+
+#: clientgui/AdvancedFrame.cpp:344
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Изберете компютър...\tCtrl+Shift+I"
+
+#: clientgui/AdvancedFrame.cpp:345
+msgid "Connect to a BOINC client on another computer"
+msgstr "Свържете се с BOINC клиент на друг компютър"
+
+#: clientgui/AdvancedFrame.cpp:349
+msgid "Shut down connected client..."
+msgstr "Изключи свързания клиент..."
+
+#: clientgui/AdvancedFrame.cpp:350
+msgid "Shut down the currently connected BOINC client"
+msgstr "Спиране на BOINC клиента, свързан в момента"
+
+#: clientgui/AdvancedFrame.cpp:355 clientgui/sg_BoincSimpleFrame.cpp:120
 #, c-format
 msgid "Close the %s window"
 msgstr "Затворете прозореца на %s"
 
-#: AdvancedFrame.cpp:325 sg_BoincSimpleFrame.cpp:122
-msgid "&Close Window"
-msgstr "&Затворете Прозореца"
+#: clientgui/AdvancedFrame.cpp:358 clientgui/sg_BoincSimpleFrame.cpp:123
+msgid "&Close window"
+msgstr "&Затворете прозорец"
 
-#: AdvancedFrame.cpp:336 AdvancedFrame.cpp:343 AdvancedFrame.cpp:350
+#: clientgui/AdvancedFrame.cpp:367 clientgui/AdvancedFrame.cpp:372
+#: clientgui/AdvancedFrame.cpp:377 clientgui/sg_BoincSimpleFrame.cpp:132
+#: clientgui/sg_BoincSimpleFrame.cpp:137
 #, c-format
 msgid "Exit %s"
 msgstr "Изход от %s"
 
-#: AdvancedFrame.cpp:371
+#: clientgui/AdvancedFrame.cpp:391 clientgui/sg_BoincSimpleFrame.cpp:151
+msgid "Preferences..."
+msgstr "Предпочитания..."
+
+#: clientgui/AdvancedFrame.cpp:400
 msgid "&Notices\tCtrl+Shift+N"
 msgstr "&Известия\tCtrl+Shift+N"
 
-#: AdvancedFrame.cpp:372
-msgid "Display notices"
-msgstr "Покажи известия"
+#: clientgui/AdvancedFrame.cpp:401
+msgid "Show notices"
+msgstr "Покажи известията"
 
-#: AdvancedFrame.cpp:377
+#: clientgui/AdvancedFrame.cpp:406
 msgid "&Projects\tCtrl+Shift+P"
 msgstr "&Проекти\tCtrl+Shift+P"
 
-#: AdvancedFrame.cpp:378
-msgid "Display projects"
-msgstr "Покажи проекти"
+#: clientgui/AdvancedFrame.cpp:407
+msgid "Show projects"
+msgstr "Покажи проектите"
 
-#: AdvancedFrame.cpp:383
+#: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
 msgstr "&Задачи\tCtrl+Shift+T"
 
-#: AdvancedFrame.cpp:384
-msgid "Display tasks"
-msgstr "Покажи задачи"
+#: clientgui/AdvancedFrame.cpp:413
+msgid "Show tasks"
+msgstr "Покажи задачите"
 
-#: AdvancedFrame.cpp:389
+#: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
 msgstr "Транс&фери\tCtrl+Shift+X"
 
-#: AdvancedFrame.cpp:390
-msgid "Display transfers"
-msgstr "Покажи трансфери"
+#: clientgui/AdvancedFrame.cpp:419
+msgid "Show file transfers"
+msgstr "Покажи трансферите на файлове"
 
-#: AdvancedFrame.cpp:395
+#: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
 msgstr "&Статистика\tCtrl+Shift+S"
 
-#: AdvancedFrame.cpp:396
-msgid "Display statistics"
-msgstr "Покажи статистика"
+#: clientgui/AdvancedFrame.cpp:425
+msgid "Show statistics"
+msgstr "Покажи статистиките"
 
-#: AdvancedFrame.cpp:401
-msgid "&Disk usage\tCtrl+Shift+D"
-msgstr "&Употреба на диска\tCtrl+Shift+D"
+#: clientgui/AdvancedFrame.cpp:430
+msgid "&Disk\tCtrl+Shift+D"
+msgstr "&Диск\tCtrl+Shift+D"
 
-#: AdvancedFrame.cpp:402
-msgid "Display disk usage"
-msgstr "Покажи употреба на диска"
+#: clientgui/AdvancedFrame.cpp:431
+msgid "Show disk usage"
+msgstr "Покажи потреблението на диска"
 
-#: AdvancedFrame.cpp:409
+#: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
 msgstr "Прост &Изглед...\tCtrl+Shift+V"
 
-#: AdvancedFrame.cpp:410
-msgid "Display the simple graphical interface."
-msgstr "Покажи простия графически интерфейс."
+#: clientgui/AdvancedFrame.cpp:439
+msgid "Switch to the Simple View"
+msgstr "Смяна към Опростен Изглед"
+
+#: clientgui/AdvancedFrame.cpp:453 clientgui/AdvancedFrame.cpp:477
+#: clientgui/sg_BoincSimpleFrame.cpp:205
+msgid "&Add project..."
+msgstr "&Добави проект..."
+
+#: clientgui/AdvancedFrame.cpp:454 clientgui/AdvancedFrame.cpp:478
+#: clientgui/sg_BoincSimpleFrame.cpp:206
+msgid "Add a project"
+msgstr "Добави проект"
 
-#: AdvancedFrame.cpp:424
-msgid "&Add project or account manager..."
-msgstr "&Добави проект или акаунт мениджър..."
+#: clientgui/AdvancedFrame.cpp:458
+msgid "&Use account manager..."
+msgstr "&Използвай акаунт мениджър..."
 
-#: AdvancedFrame.cpp:425 sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr ""
-"Стани доброволец за някои или за всички 30+ проекта в много области на "
-"науката"
+#: clientgui/AdvancedFrame.cpp:459
+msgid "Use an account manager to control this computer."
+msgstr "Използвай акаунт мениджър, за да контролираш този компютър."
 
-#: AdvancedFrame.cpp:429
+#: clientgui/AdvancedFrame.cpp:463
 #, c-format
 msgid "&Synchronize with %s"
 msgstr "&Синхронизирай с %s"
 
-#: AdvancedFrame.cpp:433
+#: clientgui/AdvancedFrame.cpp:467
 #, c-format
 msgid "Get current settings from %s"
 msgstr "Вземи текущи настройки от %s"
 
-#: AdvancedFrame.cpp:443
-msgid "&Add project..."
-msgstr "&Добави проект..."
-
-#: AdvancedFrame.cpp:444
-msgid "Add a project"
-msgstr "Добави проект"
-
-#: AdvancedFrame.cpp:447
+#: clientgui/AdvancedFrame.cpp:481
 #, c-format
 msgid "S&top using %s..."
 msgstr "С&при да използваш %s..."
 
-#: AdvancedFrame.cpp:453
+#: clientgui/AdvancedFrame.cpp:487
 msgid "Remove this computer from account manager control."
 msgstr "Премахни този компютър от контрола на акаунт мениджъра."
 
-#: AdvancedFrame.cpp:458 sg_BoincSimpleFrame.cpp:178
-msgid "&Options..."
-msgstr "&Опции..."
+#: clientgui/AdvancedFrame.cpp:493
+msgid "Run CPU &benchmarks"
+msgstr "Стартирай референтните CPU &показатели"
 
-#: AdvancedFrame.cpp:459 sg_BoincSimpleFrame.cpp:179
-msgid "Configure display options and proxy settings"
-msgstr "Конфигурирай опциите на дисплея и настройките на проксито"
+#: clientgui/AdvancedFrame.cpp:494
+msgid "Run tests that measure CPU speed"
+msgstr "Проведи тестове, които измерват скоростта на централния процесор"
 
-#: AdvancedFrame.cpp:463 sg_BoincSimpleFrame.cpp:172
-msgid "Computing &preferences..."
-msgstr "Изчислителни &предпочитания..."
+#: clientgui/AdvancedFrame.cpp:498
+msgid "Retry pending transfers"
+msgstr "Опитай отново предстоящите трансфери"
 
-#: AdvancedFrame.cpp:464 sg_BoincSimpleFrame.cpp:173
-msgid "Configure computing preferences"
-msgstr "Настройте изчислителните предпочитания"
+#: clientgui/AdvancedFrame.cpp:499
+msgid "Retry deferred file transfers and task requests"
+msgstr "Опитай отново отложените трансфери и заявки за задачи"
+
+#: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
+msgid "Event Log...\tCtrl+Shift+E"
+msgstr "Регистър на събитията...\tCtrl+Shift+E"
 
-#: AdvancedFrame.cpp:472
+#: clientgui/AdvancedFrame.cpp:505
+msgid "Show diagnostic messages"
+msgstr "Покажи диагностичните съобщения"
+
+#: clientgui/AdvancedFrame.cpp:513
 msgid "&Run always"
 msgstr "&Работи винаги"
 
-#: AdvancedFrame.cpp:473
+#: clientgui/AdvancedFrame.cpp:514
 msgid "Allow work regardless of preferences"
 msgstr "Позволи работа независимо от предпочитанията"
 
-#: AdvancedFrame.cpp:477
+#: clientgui/AdvancedFrame.cpp:518
 msgid "Run based on &preferences"
 msgstr "Работи на база на &предпочитанията"
 
-#: AdvancedFrame.cpp:478
+#: clientgui/AdvancedFrame.cpp:519
 msgid "Allow work according to preferences"
 msgstr "Позволи работа според предпочитанията"
 
-#: AdvancedFrame.cpp:482
+#: clientgui/AdvancedFrame.cpp:523
 msgid "&Suspend"
 msgstr "&Временно прекрати"
 
-#: AdvancedFrame.cpp:483
+#: clientgui/AdvancedFrame.cpp:524
 msgid "Stop work regardless of preferences"
 msgstr "Спри работа независимо от предпочитанията"
 
-#: AdvancedFrame.cpp:508
+#: clientgui/AdvancedFrame.cpp:549
 msgid "Use GPU always"
 msgstr "Използвай GPU винаги"
 
-#: AdvancedFrame.cpp:509
+#: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
 msgstr "Позволи GPU работа независимо от предпочитанията"
 
-#: AdvancedFrame.cpp:513
+#: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
 msgstr "Използвай GPU на база на предпочитанията"
 
-#: AdvancedFrame.cpp:514
+#: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
 msgstr "Позволи GPU работа според предпочитанията"
 
-#: AdvancedFrame.cpp:518
+#: clientgui/AdvancedFrame.cpp:559
 msgid "Suspend GPU"
 msgstr "Временно прекрати GPU"
 
-#: AdvancedFrame.cpp:519
+#: clientgui/AdvancedFrame.cpp:560
 msgid "Stop GPU work regardless of preferences"
 msgstr "Спри GPU работа независимо от предпочитанията"
 
-#: AdvancedFrame.cpp:543
-msgid "Network activity always available"
-msgstr "Мрежовата дейност е винаги възможна"
+#: clientgui/AdvancedFrame.cpp:584
+msgid "Network activity always"
+msgstr "Винаги позволена мрежова активност"
 
-#: AdvancedFrame.cpp:544
+#: clientgui/AdvancedFrame.cpp:585
 msgid "Allow network activity regardless of preferences"
 msgstr "Позволи връзка по мрежата независимо от предпочитанията"
 
-#: AdvancedFrame.cpp:548
+#: clientgui/AdvancedFrame.cpp:589
 msgid "Network activity based on preferences"
 msgstr "Мрежова дейност на база на предпочитанията"
 
-#: AdvancedFrame.cpp:549
+#: clientgui/AdvancedFrame.cpp:590
 msgid "Allow network activity according to preferences"
 msgstr "Позволи мрежова дейност според предпочитанията"
 
-#: AdvancedFrame.cpp:553
-msgid "Network activity suspended"
-msgstr "Мрежовата дейност е временно прекратена"
+#: clientgui/AdvancedFrame.cpp:594
+msgid "Suspend network activity"
+msgstr "Спри временно мрежовата активност"
 
-#: AdvancedFrame.cpp:554
-msgid "Stop BOINC network activity"
-msgstr "Спри мрежовата дейност на BOINC"
+#: clientgui/AdvancedFrame.cpp:595
+msgid "Stop network activity"
+msgstr "Прекрати мрежовата активност"
 
-#: AdvancedFrame.cpp:564
-#, c-format
-msgid "Connect to another computer running %s"
-msgstr "Свържи се с друг компютър, който има стартиран %s"
+#: clientgui/AdvancedFrame.cpp:604 clientgui/sg_BoincSimpleFrame.cpp:191
+msgid "Computing &preferences..."
+msgstr "Изчислителни &предпочитания..."
 
-#: AdvancedFrame.cpp:569
-msgid "Select computer..."
-msgstr "Избери компютър..."
+#: clientgui/AdvancedFrame.cpp:605 clientgui/sg_BoincSimpleFrame.cpp:192
+msgid "Configure computing preferences"
+msgstr "Настройте изчислителните предпочитания"
 
-#: AdvancedFrame.cpp:574
-msgid "Shut down connected client..."
-msgstr "Изключи свързания клиент..."
+#: clientgui/AdvancedFrame.cpp:610
+msgid "Exclusive applications..."
+msgstr "Ексклузивни приложения..."
 
-#: AdvancedFrame.cpp:575
-msgid "Shut down the currently connected client"
-msgstr "Изключи свързаният в момента клиент"
+#: clientgui/AdvancedFrame.cpp:611
+msgid "Configure exclusive applications"
+msgstr "Настройка на ексклузивните приложения"
 
-#: AdvancedFrame.cpp:579
-msgid "Run CPU &benchmarks"
-msgstr "Стартирай референтните CPU &показатели"
+#: clientgui/AdvancedFrame.cpp:616
+msgid "Select columns..."
+msgstr "Изберете колони..."
+
+#: clientgui/AdvancedFrame.cpp:617
+msgid "Select which columns to display"
+msgstr "Изберете кои колони да се показват"
+
+#: clientgui/AdvancedFrame.cpp:621
+msgid "Event Log options...\tCtrl+Shift+F"
+msgstr "Опции на Регистъра на Събития...\tCtrl+Shift+F"
 
-#: AdvancedFrame.cpp:580
-msgid "Runs BOINC CPU benchmarks"
-msgstr "Стартира BOINC референтни CPU показатели"
+#: clientgui/AdvancedFrame.cpp:622
+msgid "Enable or disable various diagnostic messages"
+msgstr "Включване или изключване на разнообразни диагностични съобщения"
 
-#: AdvancedFrame.cpp:584
-msgid "Do network communication"
-msgstr "Извърши комуникация по мрежата"
+#: clientgui/AdvancedFrame.cpp:626 clientgui/sg_BoincSimpleFrame.cpp:197
+msgid "&Other options..."
+msgstr "&Други опции..."
 
-#: AdvancedFrame.cpp:585
-msgid "Do all pending network communication"
-msgstr "Извърши всички изчакващи връзки по мрежата"
+#: clientgui/AdvancedFrame.cpp:627
+msgid "Configure display options and network settings"
+msgstr "Конфигурация на опциите за визуализация и настройките на мрежата"
 
-# 94%
-#: AdvancedFrame.cpp:589
+#: clientgui/AdvancedFrame.cpp:632
 msgid "Read config files"
 msgstr "Прочети конфигуриращите файлове"
 
-#: AdvancedFrame.cpp:590
-msgid "Read configuration info from cc_config.xml and any app_config.xml files"
-msgstr ""
-"Прочети конфигуриращата информация от файловете cc_config.xml и "
-"app_config.xml"
+#: clientgui/AdvancedFrame.cpp:633
+msgid ""
+"Read configuration info from cc_config.xml and any app_config.xml files"
+msgstr "Прочети конфигуриращата информация от файловете cc_config.xml и app_config.xml"
 
-#: AdvancedFrame.cpp:594
+#: clientgui/AdvancedFrame.cpp:637
 msgid "Read local prefs file"
 msgstr "Прочети файла с локални предпочитания"
 
-#: AdvancedFrame.cpp:595
+#: clientgui/AdvancedFrame.cpp:638
 msgid "Read preferences from global_prefs_override.xml."
 msgstr "Прочети предпочитанията от global_prefs_override.xml."
 
-#: AdvancedFrame.cpp:600
-#, c-format
-msgid "Launch another instance of %s..."
-msgstr "Стартирай още един брой от %s..."
-
-#: AdvancedFrame.cpp:604
-#, c-format
-msgid "Launch another %s"
-msgstr "Стартирай още един %s"
-
-#: AdvancedFrame.cpp:614
-msgid "Event Log...\tCtrl+Shift+E"
-msgstr "Регистър на събитията...\tCtrl+Shift+E"
-
-#: AdvancedFrame.cpp:615
-msgid "Display diagnostic messages."
-msgstr "Покажи диагностични съобщения."
-
-#: AdvancedFrame.cpp:625 sg_BoincSimpleFrame.cpp:188
+#: clientgui/AdvancedFrame.cpp:646 clientgui/sg_BoincSimpleFrame.cpp:219
 #, c-format
 msgid "%s &help"
 msgstr "%s &помощ"
 
-#: AdvancedFrame.cpp:631 sg_BoincSimpleFrame.cpp:194
+#: clientgui/AdvancedFrame.cpp:650 clientgui/sg_BoincSimpleFrame.cpp:223
 #, c-format
 msgid "Show information about %s"
 msgstr "Покажи информация за %s"
 
-#: AdvancedFrame.cpp:643
+#: clientgui/AdvancedFrame.cpp:660
 #, c-format
 msgid "&%s help"
 msgstr "&%s помощ"
 
-#: AdvancedFrame.cpp:649 sg_BoincSimpleFrame.cpp:212
+#: clientgui/AdvancedFrame.cpp:664 clientgui/sg_BoincSimpleFrame.cpp:237
 #, c-format
 msgid "Show information about the %s"
 msgstr "Покажи информация за %s"
 
-#: AdvancedFrame.cpp:661 sg_BoincSimpleFrame.cpp:224
+#: clientgui/AdvancedFrame.cpp:675 clientgui/sg_BoincSimpleFrame.cpp:247
 #, c-format
 msgid "%s &web site"
-msgstr ""
+msgstr "%s &уебстраница"
 
-#: AdvancedFrame.cpp:667 sg_BoincSimpleFrame.cpp:230
+#: clientgui/AdvancedFrame.cpp:679 clientgui/sg_BoincSimpleFrame.cpp:251
 #, c-format
 msgid "Show information about BOINC and %s"
 msgstr "Покажи информация за BOINC и %s"
 
-#: AdvancedFrame.cpp:679 BOINCTaskBar.cpp:530 sg_BoincSimpleFrame.cpp:242
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
+#: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
 msgstr "&Относно %s..."
 
-#: AdvancedFrame.cpp:685 sg_BoincSimpleFrame.cpp:248
+#: clientgui/AdvancedFrame.cpp:696 clientgui/sg_BoincSimpleFrame.cpp:268
 msgid "Licensing and copyright information."
 msgstr "Информация за лицензи и авторски права."
 
-#: AdvancedFrame.cpp:692 sg_BoincSimpleFrame.cpp:255
+#: clientgui/AdvancedFrame.cpp:703 clientgui/sg_BoincSimpleFrame.cpp:275
 msgid "&File"
 msgstr "&Файл"
 
-#: AdvancedFrame.cpp:696 sg_BoincSimpleFrame.cpp:259
+#: clientgui/AdvancedFrame.cpp:707 clientgui/sg_BoincSimpleFrame.cpp:279
 msgid "&View"
 msgstr "&Изглед"
 
-#: AdvancedFrame.cpp:700 sg_BoincSimpleFrame.cpp:263
-msgid "&Tools"
-msgstr "И&нструменти"
-
-#: AdvancedFrame.cpp:704
+#: clientgui/AdvancedFrame.cpp:711
 msgid "&Activity"
 msgstr "&Дейност"
 
-#: AdvancedFrame.cpp:708
-msgid "A&dvanced"
-msgstr "За &напреднали"
+#: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
+msgid "&Options"
+msgstr "&Опции"
 
-#: AdvancedFrame.cpp:712 DlgEventLog.cpp:332 sg_BoincSimpleFrame.cpp:267
-#: wizardex.cpp:374 wizardex.cpp:381
+#: clientgui/AdvancedFrame.cpp:719 clientgui/sg_BoincSimpleFrame.cpp:287
+msgid "&Tools"
+msgstr "И&нструменти"
+
+#: clientgui/AdvancedFrame.cpp:723 clientgui/sg_BoincSimpleFrame.cpp:291
+#: clientgui/wizardex.cpp:374 clientgui/wizardex.cpp:381
 msgid "&Help"
 msgstr "&Помощ"
 
-#: AdvancedFrame.cpp:1199
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Спри да използваш %s"
 
-#: AdvancedFrame.cpp:1204
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -554,263 +567,225 @@ msgid ""
 "but you'll have to manage projects manually.\n"
 "\n"
 "Do you want to stop using %s?"
-msgstr ""
-"Ако спрете да използвате %s,\n"
-"Вие ще запазите всички текущи проекти,\n"
-"но ще трябва да ги управлявате ръчно.\n"
-"\n"
-"Искате ли да спрете да използвате %s?"
+msgstr "Ако спрете да използвате %s,\nВие ще запазите всички текущи проекти,\nно ще трябва да ги управлявате ръчно.\n\nИскате ли да спрете да използвате %s?"
 
-#: AdvancedFrame.cpp:1401
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Изключи текущия клиент..."
 
-#: AdvancedFrame.cpp:1410
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
-msgstr ""
-"%s ще изключи текущия клиент\n"
-"и ще Ви предложи да се свържете към друг хост."
+msgstr "%s ще изключи текущия клиент\nи ще Ви предложи да се свържете към друг хост."
 
-#: AdvancedFrame.cpp:1745 DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: AdvancedFrame.cpp:1754
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s успешно добави %s"
 
-#: AdvancedFrame.cpp:1893
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: AdvancedFrame.cpp:1897
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Свързване към %s"
 
-#: AdvancedFrame.cpp:1900
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Свързан към %s (%s)"
 
-#: AlreadyExistsPage.cpp:184
+#: clientgui/AlreadyExistsPage.cpp:184
 msgid "Username already in use"
 msgstr "Потребителското име е вече заето"
 
-#: AlreadyExistsPage.cpp:187
+#: clientgui/AlreadyExistsPage.cpp:187
 msgid ""
 "An account with that username already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Акаунт с това потребителско име вече съществува и\n"
-"има различна парола от тази която въведохте.\n"
-"\n"
-"Моля посетете уеб сайта на проекта и следвайте инструкциите там."
+msgstr "Акаунт с това потребителско име вече съществува и\nима различна парола от тази която въведохте.\n\nМоля посетете уеб сайта на проекта и следвайте инструкциите там."
 
-#: AlreadyExistsPage.cpp:191
+#: clientgui/AlreadyExistsPage.cpp:191
 msgid "Email address already in use"
 msgstr "Имейл адреса вече е използван"
 
-#: AlreadyExistsPage.cpp:194
+#: clientgui/AlreadyExistsPage.cpp:194
 msgid ""
 "An account with that email address already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Акаунт с този имейл адрес вече съществува и има\n"
-"различна парола от тази която въведохте.\n"
-"\n"
-"Моля посетете уеб сайта на проекта и следвайте инструкциите там."
+msgstr "Акаунт с този имейл адрес вече съществува и има\nразлична парола от тази която въведохте.\n\nМоля посетете уеб сайта на проекта и следвайте инструкциите там."
 
-#: AsyncRPC.cpp:1031
+#: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
 msgstr "Комуникация с BOINC клиент.  Моля изчакайте ..."
 
-#: AsyncRPC.cpp:1034
+#: clientgui/AsyncRPC.cpp:1034
 #, c-format
 msgid "&Quit %s"
 msgstr "&Напусни %s"
 
-#: AsyncRPC.cpp:1036
+#: clientgui/AsyncRPC.cpp:1036
 #, c-format
 msgid "E&xit %s"
 msgstr "И&зход от %s"
 
-#: AsyncRPC.cpp:1040
+#: clientgui/AsyncRPC.cpp:1040
 #, c-format
 msgid "%s - Communication"
 msgstr "%s - Предаване на информация"
 
-#: AsyncRPC.cpp:1056 DlgAdvPreferencesBase.cpp:107 sg_DlgPreferences.cpp:433
+#: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Отказ"
 
-#: BOINCBaseFrame.cpp:505
+#: clientgui/BOINCBaseFrame.cpp:512
 #, c-format
 msgid "%s - Connection Error"
 msgstr "%s - Грешка при Връзката"
 
-#: BOINCBaseFrame.cpp:514
+#: clientgui/BOINCBaseFrame.cpp:521
 msgid ""
 "You currently are not authorized to manage the client.\n"
-"Please contact your administrator to add you to the 'boinc_users' local user "
-"group."
-msgstr ""
-"В момента не сте оторизиран да управлявате клиента.\n"
-"Моля свържете се с вашия администратор за да Ви добави към локалната "
-"'boinc_клиенти' група."
+"Please contact your administrator to add you to the 'boinc_users' local user group."
+msgstr "В момента не сте оторизиран да управлявате клиента.\nМоля свържете се с вашия администратор за да Ви добави към локалната 'boinc_клиенти' група."
 
-#: BOINCBaseFrame.cpp:523
+#: clientgui/BOINCBaseFrame.cpp:530
 msgid ""
 "Authorization failed connecting to running client.\n"
 "Make sure you start this program in the same directory as the client."
-msgstr ""
-"Оторизацията не успя да се свърже с работещ клиент.\n"
-"Проверете дали стартирате програмата в същата папка в която е клиента."
+msgstr "Оторизацията не успя да се свърже с работещ клиент.\nПроверете дали стартирате програмата в същата папка в която е клиента."
 
-#: BOINCBaseFrame.cpp:525
+#: clientgui/BOINCBaseFrame.cpp:532
 msgid "Authorization failed connecting to running client."
 msgstr "Оторизацията не успя да се свърже с работещ клиент."
 
-#: BOINCBaseFrame.cpp:533
+#: clientgui/BOINCBaseFrame.cpp:540
 msgid "The password you have provided is incorrect, please try again."
 msgstr "Паролата която въведохте е грешна, моля опитайте отново."
 
-#: BOINCBaseFrame.cpp:577
+#: clientgui/BOINCBaseFrame.cpp:584
 #, c-format
 msgid "%s - Connection Failed"
 msgstr "%s - Неуспешно Свързване"
 
-#: BOINCBaseFrame.cpp:586
+#: clientgui/BOINCBaseFrame.cpp:593
 #, c-format
 msgid ""
 "%s is not able to connect to a %s client.\n"
 "Would you like to try to connect again?"
-msgstr ""
-"%s не успява да се свърже с %s клиент.\n"
-"Искате ли да опитате да се свържете отново?"
+msgstr "%s не успява да се свърже с %s клиент.\nИскате ли да опитате да се свържете отново?"
 
-#: BOINCBaseFrame.cpp:622
+#: clientgui/BOINCBaseFrame.cpp:629
 #, c-format
 msgid "%s - Daemon Start Failed"
 msgstr "%s - Демон Неуспешно Стартиране"
 
-#: BOINCBaseFrame.cpp:632
+#: clientgui/BOINCBaseFrame.cpp:639
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
-"Please launch the Control Panel->Administative Tools->Services applet and "
-"start the BOINC service."
-msgstr ""
-"%s не успява да стартира %s клиент.\n"
-"Моля стартирайте приложението Control Panel->Administrative Tools->Services "
-"и от там стартирайте BOINC сервиза."
+"Please launch the Control Panel->Administative Tools->Services applet and start the BOINC service."
+msgstr "%s не успява да стартира %s клиент.\nМоля стартирайте приложението Control Panel->Administrative Tools->Services и от там стартирайте BOINC сервиза."
 
-#: BOINCBaseFrame.cpp:638
+#: clientgui/BOINCBaseFrame.cpp:645
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please start the daemon and try again."
-msgstr ""
-"%s не успява да стартира %s клиент.\n"
-"Моля стартирайте демона и опитайте отново."
+msgstr "%s не успява да стартира %s клиент.\nМоля стартирайте демона и опитайте отново."
 
-#: BOINCBaseFrame.cpp:689
+#: clientgui/BOINCBaseFrame.cpp:696
 #, c-format
 msgid "%s - Connection Status"
 msgstr "%s - Статус на Връзката"
 
-#: BOINCBaseFrame.cpp:700
+#: clientgui/BOINCBaseFrame.cpp:707
 #, c-format
 msgid ""
 "%s is not currently connected to a %s client.\n"
-"Please use the 'Advanced\\Select Computer...' menu option to connect up to a "
-"%s client.\n"
+"Please use the 'Advanced\\Select Computer...' menu option to connect up to a %s client.\n"
 "To connect up to your local computer please use 'localhost' as the host name."
-msgstr ""
-"%s в момента не е свързан към %s клиент.\n"
-"Моля използвайте 'За напреднали\\Избери Компютър...' меню опцията, за да се "
-"свържете към %s client.\n"
-"За да се свържете към локалния Ви компютър моля използвайте 'localhost' за "
-"име на хоста."
+msgstr "%s в момента не е свързан към %s клиент.\nМоля използвайте 'За напреднали\\Избери Компютър...' меню опцията, за да се свържете към %s client.\nЗа да се свържете към локалния Ви компютър моля използвайте 'localhost' за име на хоста."
 
-#: BOINCBaseView.cpp:779
+#. Create the web sites task group
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Уеб страници на проекта"
 
-#: BOINCClientManager.cpp:575
+#: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
 msgstr "%s - Неочакван Изход"
 
-#: BOINCClientManager.cpp:585
+#: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
 "Would you like to restart it again?"
-msgstr ""
-"Клиента %s се изключи неочаквано 3 пъти за последните %d минути.\n"
-"Искате ли да го рестартирате отново?"
+msgstr "Клиента %s се изключи неочаквано 3 пъти за последните %d минути.\nИскате ли да го рестартирате отново?"
 
-#: BOINCDialupManager.cpp:61
+#: clientgui/BOINCDialupManager.cpp:61
 #, c-format
 msgid "%s - Network Status"
 msgstr "%s - Статус на Връзката"
 
-#: BOINCDialupManager.cpp:241
+#: clientgui/BOINCDialupManager.cpp:241
 #, c-format
 msgid ""
 "%s needs to connect to the Internet.\n"
 "May it do so now?"
-msgstr ""
-"%s трябва да се свърже с Интернет.\n"
-"Може ли да го направи сега?"
+msgstr "%s трябва да се свърже с Интернет.\nМоже ли да го направи сега?"
 
-#: BOINCDialupManager.cpp:254
+#: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
 msgstr "%s се свързва към Интернет."
 
-#: BOINCDialupManager.cpp:303
+#: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
 msgstr "%s успя да се свърже към Интернет."
 
-#: BOINCDialupManager.cpp:331
+#: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
 msgstr "%s не успя да се свърже към Интернет."
 
-#: BOINCDialupManager.cpp:372
+#: clientgui/BOINCDialupManager.cpp:372
 #, c-format
 msgid ""
 "%s has detected it is now connected to the Internet.\n"
 "Updating all projects and retrying all transfers."
-msgstr ""
-"%s установи, че сега е свързан към Интернет.\n"
-"Обновяване на всички проекти и възстановяване на всички трансфери."
+msgstr "%s установи, че сега е свързан към Интернет.\nОбновяване на всички проекти и възстановяване на всички трансфери."
 
-#: BOINCDialupManager.cpp:417
+#: clientgui/BOINCDialupManager.cpp:417
 #, c-format
 msgid "%s has successfully disconnected from the Internet."
 msgstr "%s успя да прекъсне връзката с Интернет."
 
-#: BOINCDialupManager.cpp:433
+#: clientgui/BOINCDialupManager.cpp:433
 #, c-format
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s не успя да прекъсне връзката с Интернет."
 
-#: BOINCGUIApp.cpp:339
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -821,846 +796,983 @@ msgid ""
 " or\n"
 "  - contact your administrator to add you to the 'boinc_master'\n"
 "     user group."
-msgstr ""
-"В момента не сте оторизиран да управлявате клиента.\n"
-"\n"
-"За да стартирате %s като такъв потребител, моля:\n"
-"- преинсталирайте %s като отговорите \"Да\" на въпроса за\n"
-"потребители, които не са администратори\n"
-"или\n"
-"- свържете се с вашия администратор за да Ви добави към\n"
-"'boinc_master' потребителска група."
-
-#: BOINCGUIApp.cpp:345
+msgstr "В момента не сте оторизиран да управлявате клиента.\n\nЗа да стартирате %s като такъв потребител, моля:\n- преинсталирайте %s като отговорите \"Да\" на въпроса за\nпотребители, които не са администратори\nили\n- свържете се с вашия администратор за да Ви добави към\n'boinc_master' потребителска група."
+
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
-msgstr ""
-"%s собственост или разрешения не са настроени правилно; моля преинсталирайте "
-"%s.\n"
-"(Код за грешка %d"
+msgstr "%s собственост или разрешения не са настроени правилно; моля преинсталирайте %s.\n(Код за грешка %d"
 
-#: BOINCGUIApp.cpp:351
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " @ "
 
-#: BOINCGUIApp.cpp:354 MainDocument.cpp:2484 MainDocument.cpp:2534
-#: MainDocument.cpp:2554 ViewTransfers.cpp:803
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: BOINCGUIApp.cpp:384
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
-msgstr ""
-"За да работи правилно BOINC се нуждае от рестартиране.\n"
-"Моля рестартирайте Вашия компютър и опитайте отново."
+msgstr "За да работи правилно BOINC се нуждае от рестартиране.\nМоля рестартирайте Вашия компютър и опитайте отново."
 
-#: BOINCGUIApp.cpp:385 DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC Мениджър"
 
-#: BOINCGUIApp.cpp:572
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC Мениджър бе стартиран от операционната система автоматично"
 
-#: BOINCGUIApp.cpp:574
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Стартирай BOINC така че само иконата в системната лента да е видима"
 
-#: BOINCGUIApp.cpp:576
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Папка съдържаща изпълнимия BOINC Клиент файл"
 
-#: BOINCGUIApp.cpp:577
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Папка с BOINC данни"
 
-#: BOINCGUIApp.cpp:579
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Име на хоста или IP адрес"
 
-#: BOINCGUIApp.cpp:580
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "GUI RPC номер на порт"
 
-#: BOINCGUIApp.cpp:581
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Парола"
 
-#: BOINCGUIApp.cpp:582
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Стартирай BOINC с тези аргументи по избор"
 
-#: BOINCGUIApp.cpp:583
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "изключи BOINC защитени потребители и разрешения"
 
-#: BOINCGUIApp.cpp:584
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
-msgstr ""
-"задайте режим на отстраняване на грешки за да позволите съобщения за грешки "
-"от мениджърa"
+msgstr "задайте режим на отстраняване на грешки за да позволите съобщения за грешки от мениджърa"
 
-#: BOINCGUIApp.cpp:585
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "позволени множество прозорци на BOINC Мениджъра"
 
-#: BOINCGUIApp.cpp:587
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Не се използва: заобиколно решение за бъг в XCode 4.2"
 
-#: BOINCGUIApp.cpp:814
+#: clientgui/BOINCGUIApp.cpp:591
+msgid "Not run the daemon"
+msgstr "Не стартирай daemon-а"
+
+#. These are just special tags so deal with them in a special way
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Автоматично Разпознаване)"
 
-#: BOINCGUIApp.cpp:815
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Непознат)"
 
-#: BOINCGUIApp.cpp:816
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Дефиниран от Потребителя)"
 
-#: BOINCTaskBar.cpp:508
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Отвори %s Интернет страница..."
 
-#: BOINCTaskBar.cpp:515
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Отвори %s..."
 
-#: BOINCTaskBar.cpp:522 BOINCTaskBar.cpp:619 BOINCTaskBar.cpp:627
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Почивка"
 
-#: BOINCTaskBar.cpp:524 BOINCTaskBar.cpp:646 BOINCTaskBar.cpp:654
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Почивка за GPU"
 
-#: BOINCTaskBar.cpp:542
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "И&зход"
 
-#: BOINCTaskBar.cpp:612 ViewProjects.cpp:718 ViewWork.cpp:795
-#: sg_BoincSimpleFrame.cpp:758 sg_ProjectCommandPopup.cpp:110
-#: sg_TaskCommandPopup.cpp:102
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
+#: clientgui/sg_ProjectCommandPopup.cpp:125
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Възобнови работа"
 
-#: BOINCTaskBar.cpp:639
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Възобнови GPU работа"
 
-#: BOINCTaskBar.cpp:713
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Изчисленията са позволени"
 
-#: BOINCTaskBar.cpp:717
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Изчисленията за временно прекратени - "
 
-#: BOINCTaskBar.cpp:727
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU изчисленията са позволени"
 
-#: BOINCTaskBar.cpp:730
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU изчисленията са временно прекратени - "
 
-#: BOINCTaskBar.cpp:739
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Мрежата е активирана"
 
-#: BOINCTaskBar.cpp:742
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Мрежата е временно деактивирана - "
 
-#: BOINCTaskBar.cpp:750
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Повторно свързване с клиента."
 
-#: BOINCTaskBar.cpp:752
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Не сте свързан с клиент."
 
-#: BOINCTaskBar.cpp:805
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Известия"
 
-#: BOINCTaskBar.cpp:811
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Има нови известия - натиснете за преглед."
 
-#: CompletionErrorPage.cpp:199
+#: clientgui/CompletionErrorPage.cpp:199
 msgid "Failed to add project"
 msgstr "Неуспех при добавяне на проект"
 
-#: CompletionErrorPage.cpp:204
+#: clientgui/CompletionErrorPage.cpp:204
 msgid "Failed to update account manager"
 msgstr "Неуспех при обновяване на акаунт мениджъра"
 
-#: CompletionErrorPage.cpp:208
+#: clientgui/CompletionErrorPage.cpp:208
 msgid "Failed to remove account manager"
 msgstr "Неуспех при премахване на акаунт мениджъра"
 
-#: CompletionErrorPage.cpp:212
+#: clientgui/CompletionErrorPage.cpp:212
 msgid "Failed to add account manager"
 msgstr "Неуспех при добавяне на акаунт мениджъра"
 
-#: CompletionErrorPage.cpp:221
+#: clientgui/CompletionErrorPage.cpp:221
 msgid ""
 "Please try again later.\n"
 "\n"
 "Click Finish to close."
-msgstr ""
+msgstr "Моля, опитайте по-късно.\n\nНатиснете Приключване, за да затворите."
 
-#: CompletionErrorPage.cpp:225 CompletionPage.cpp:222 CompletionPage.cpp:242
-#: CompletionPage.cpp:273
+#: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
+#: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
 msgid "Click Finish to close."
 msgstr "Натиснете Приключи за да затворите."
 
-#: CompletionErrorPage.cpp:234
+#: clientgui/CompletionErrorPage.cpp:234
 msgid "Messages from server:"
 msgstr "Съобщения от сървъра:"
 
-#: CompletionPage.cpp:207
+#: clientgui/CompletionPage.cpp:207
 msgid "Project added"
 msgstr "Проектът е добавен"
 
-#: CompletionPage.cpp:213
+#: clientgui/CompletionPage.cpp:213
 msgid "This project has been successfully added."
 msgstr "Този проект бе успешно добавен."
 
-#: CompletionPage.cpp:218
+#: clientgui/CompletionPage.cpp:218
 msgid ""
 "When you click Finish, your web browser will go to a page where\n"
 "you can set your account name and preferences."
-msgstr ""
-"Когато натиснете Приключи, уеб браузърът Ви ще отиде на страница\n"
-"където можете да настроите свето акаунт име и предпочитания."
+msgstr "Когато натиснете Приключи, уеб браузърът Ви ще отиде на страница\nкъдето можете да настроите свето акаунт име и предпочитания."
 
-#: CompletionPage.cpp:232
+#: clientgui/CompletionPage.cpp:232
 #, c-format
 msgid "Update from %s completed."
 msgstr "Обновяването от %s приключи."
 
-#: CompletionPage.cpp:236
+#: clientgui/CompletionPage.cpp:236
 msgid "Update completed."
 msgstr "Обновяването приключи."
 
-#: CompletionPage.cpp:247
+#. Attach Completed
+#: clientgui/CompletionPage.cpp:247
 msgid "Now using account manager"
 msgstr "Сега използвате акаунт мениджър"
 
-#: CompletionPage.cpp:252
+#: clientgui/CompletionPage.cpp:252
 #, c-format
 msgid "Welcome to %s!"
 msgstr "Добре дошли в %s!"
 
-#: CompletionPage.cpp:263
+#: clientgui/CompletionPage.cpp:263
 #, c-format
 msgid "You are now using %s to manage accounts."
 msgstr "Сега използвате %s за да управлявате акаунти."
 
-#: CompletionPage.cpp:267
+#: clientgui/CompletionPage.cpp:267
 msgid "You are now using this account manager."
 msgstr "Сега използвате този акаунт мениджър."
 
-#: DlgAbout.cpp:113 mac/Mac_GUI.cpp:96
+#: clientgui/DlgAbout.cpp:113
 #, c-format
 msgid "About %s"
 msgstr "Относно %s"
 
-#: DlgAbout.cpp:172
+#: clientgui/DlgAbout.cpp:172
 msgid "Version:"
 msgstr "Версия:"
 
-#: DlgAbout.cpp:180
+#: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
 msgstr "wxWidgets Версия:"
 
-#: DlgAbout.cpp:188
+#: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
 msgstr "Авторски права:"
 
-# 98%
-#: DlgAbout.cpp:192
+#: clientgui/DlgAbout.cpp:192
 msgid ""
-"(C) 2003-2013 University of California, Berkeley.\n"
+"(C) 2003-2015 University of California, Berkeley.\n"
 "All Rights Reserved."
-msgstr ""
-"(C) 2003-2013 Калифорнийски Университет, Бъркли.\n"
-"Всички Права Запазени."
+msgstr "(C) 2003-2015 Калифорнийски Университет, Бъркли.\nВсички права запазени."
+
+#: clientgui/DlgAbout.cpp:196
+msgid "BOINC is distributed under the GNU Lesser General Public License v3.0."
+msgstr "BOINC се разпространява под Лек Общ Публичен Лиценз на ГНУ, версия 3.0."
 
-#: DlgAbout.cpp:196
-msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr "Отворена Инфраструктура на Бъркли за Изчисления в Мрежа"
+#: clientgui/DlgAbout.cpp:203
+msgid "For more information, visit "
+msgstr "За повече информация, посетете "
 
-#: DlgAbout.cpp:208 DlgExitMessage.cpp:173 DlgGenericMessage.cpp:120
-#: DlgOptions.cpp:396 DlgSelectComputer.cpp:163
+#: clientgui/DlgAbout.cpp:215 clientgui/DlgExitMessage.cpp:173
+#: clientgui/DlgGenericMessage.cpp:120 clientgui/DlgOptions.cpp:410
+#: clientgui/DlgSelectComputer.cpp:163
 msgid "&OK"
 msgstr "&OK"
 
-#: DlgAdvPreferences.cpp:544
-msgid "invalid number"
-msgstr ""
-
-#: DlgAdvPreferences.cpp:545
-msgid "invalid time, format is HH:MM"
-msgstr "невалиден час, формата е ЧЧ:ММ"
-
-#: DlgAdvPreferences.cpp:546
-msgid "invalid time interval, format is HH:MM-HH:MM"
-msgstr "невалиден часови интервал, формата е ЧЧ:ММ-ЧЧ:ММ"
-
-#: DlgAdvPreferences.cpp:751
-msgid "invalid input value detected"
-msgstr "засечена невалидна въведена стойност"
-
-#: DlgAdvPreferences.cpp:753
-msgid "Validation Error"
-msgstr "Грешка при Проверка"
-
-#: DlgAdvPreferences.cpp:885 DlgAdvPreferences.cpp:891
-#: DlgAdvPreferences.cpp:897
-msgid "Applications to add"
-msgstr "Приложения за добавяне"
-
-#: DlgAdvPreferences.cpp:914
-#, c-format
-msgid "'%s' is not an executable application."
-msgstr "'%s' не е изпълнимо приложение."
-
-#: DlgAdvPreferences.cpp:915 DlgAdvPreferences.cpp:962
-#: DlgAdvPreferences.cpp:986
-msgid "Add Exclusive App"
-msgstr "Добави Ексклузивно Приложение"
-
-#: DlgAdvPreferences.cpp:927
-msgid "Name of application to add?"
-msgstr "Име на приложение за добавяне?"
-
-#: DlgAdvPreferences.cpp:927
-msgid "Add exclusive app"
-msgstr "Добави ексклузивно приложение"
-
-#: DlgAdvPreferences.cpp:961
-#, c-format
-msgid "Application names must end with '%s'"
-msgstr "Имената на приложенията трябва да завършват с '%s'"
-
-#: DlgAdvPreferences.cpp:985
+#: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
-msgid "'%s' is already in the list."
-msgstr "'%s' е вече в списъка."
+msgid "%s - Computing preferences"
+msgstr "%s - Изчислителни предпочитания"
 
-#: DlgAdvPreferences.cpp:1077
+#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:163
 msgid ""
-"Do you really want to clear all local preferences?\n"
-"(This will not affect exclusive applications.)"
-msgstr ""
-"Наистина ли искате да изтриете всички локални предпочитания?\n"
-"(Това няма да засегне ексклузивните приложения.)"
-
-#: DlgAdvPreferences.cpp:1078 sg_DlgPreferences.cpp:1030
-msgid "Confirmation"
-msgstr "Потвърждение"
+"Using local preferences.\n"
+"Click \"Use web prefs\" to use web-based preferences from"
+msgstr "Използвам локалните предпочитания.\nИзберете \"Използвай уеб предпочитания\" за да използвате уеб-базираните предпочитания от"
 
-#: DlgAdvPreferencesBase.cpp:46 sg_DlgPreferences.cpp:946
-#, c-format
-msgid "%s - Preferences"
-msgstr "%s - Предпочитания"
+#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
+msgid "Using web-based preferences from"
+msgstr "Използвам уеб-базирани предпочитания от"
 
-#: DlgAdvPreferencesBase.cpp:62
-msgid ""
-"This dialog controls preferences for this computer only.\n"
-"Click OK to set preferences.\n"
-"Click Clear to restore web-based settings (except exclusive apps)."
-msgstr ""
-"Този прозорец контролира предпочитания само за този компютър.\n"
-"Натиснете OK за да настроите предпочитания.\n"
-"Натиснете Изчисти за да възстановите уеб-базираните настройки (с изключение "
-"на ексклузивните приложения)."
+#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
+msgid "Set values and click OK to use local preferences instead."
+msgstr "Въведете стойности и натиснете ОК, за да използвате локалните предпочитания."
 
-#: DlgAdvPreferencesBase.cpp:65 sg_DlgPreferences.cpp:428
-msgid "Clear"
-msgstr "Изчисти"
+#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
+msgid "Use web prefs"
+msgstr "Използвай уеб предпочитания"
 
-#: DlgAdvPreferencesBase.cpp:66
-msgid "clear all local preferences and close the dialog"
-msgstr "изчиства всички локални предпочитания и затваря диалога"
+#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
+msgid "Restore web-based preferences and close the dialog."
+msgstr "Възстанови уеб-базираните предпочитания и затвори този диалог."
 
-#: DlgAdvPreferencesBase.cpp:81
-msgid "processor usage"
-msgstr "използване на процесора"
+#: clientgui/DlgAdvPreferencesBase.cpp:140
+#: clientgui/DlgAdvPreferencesBase.cpp:684
+msgid "Computing"
+msgstr "Изчисляване"
 
-#: DlgAdvPreferencesBase.cpp:84
-msgid "network usage"
-msgstr "използване на мрежата"
+#. Network schedule
+#: clientgui/DlgAdvPreferencesBase.cpp:143
+#: clientgui/DlgAdvPreferencesBase.cpp:886
+msgid "Network"
+msgstr "Мрежа"
 
-#: DlgAdvPreferencesBase.cpp:87
-msgid "disk and memory usage"
-msgstr "използване на диска и паметта"
+#: clientgui/DlgAdvPreferencesBase.cpp:146
+msgid "Disk and memory"
+msgstr "Диск и памет"
 
-#: DlgAdvPreferencesBase.cpp:90
-msgid "exclusive applications"
-msgstr "ексклузивни приложения"
+#: clientgui/DlgAdvPreferencesBase.cpp:149
+msgid "Daily schedules"
+msgstr "Дневен план"
 
-#: DlgAdvPreferencesBase.cpp:102 sg_DlgPreferences.cpp:424
+#: clientgui/DlgAdvPreferencesBase.cpp:162
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
 
-#: DlgAdvPreferencesBase.cpp:103
-msgid "save all values and close the dialog"
-msgstr "запазва всички стойности и затваря диалога"
+#: clientgui/DlgAdvPreferencesBase.cpp:163
+msgid "Save all values and close the dialog."
+msgstr "Запамети всички стойности и затвори този диалог."
 
-#: DlgAdvPreferencesBase.cpp:108
-msgid "close the dialog without saving"
-msgstr "затваря диалоговия прозорец без да запази"
+#: clientgui/DlgAdvPreferencesBase.cpp:169
+msgid "Close the dialog without saving."
+msgstr "Затвори диалога без запаметяване."
 
-#: DlgAdvPreferencesBase.cpp:112 Localization.cpp:35 Localization.cpp:121
-#: Localization.cpp:139 sg_BoincSimpleFrame.cpp:794 sg_DlgPreferences.cpp:439
+#: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
+#: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
+#: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Помощ"
 
-#: DlgAdvPreferencesBase.cpp:113
-msgid "shows the preferences web page"
-msgstr "показва предпочитанията от интернет страницата"
-
-#: DlgAdvPreferencesBase.cpp:135
-msgid "Computing allowed"
-msgstr "Изчисленията са разрешени"
+#: clientgui/DlgAdvPreferencesBase.cpp:174
+msgid "Shows the preferences web page."
+msgstr "Отваря уебстраницата с предпочитанията."
 
-#: DlgAdvPreferencesBase.cpp:139
-msgid "While computer is on batteries"
-msgstr "Докато компютъра работи на батерии"
+#: clientgui/DlgAdvPreferencesBase.cpp:236
+#: clientgui/DlgAdvPreferencesBase.cpp:463
+msgid "Usage limits"
+msgstr "Лимити на потреблението"
 
-#: DlgAdvPreferencesBase.cpp:142
+#: clientgui/DlgAdvPreferencesBase.cpp:241
+#, no-c-format
 msgid ""
-"check this if you want this computer to do work while it runs on batteries"
-msgstr ""
-"отметнете това ако искате този компютър да изчислява докато работи на "
-"батерии"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Резервирайте няколко процесора за други приложения. Например, 75% означава 'използвай 6 ядра от 8-ядрен процесор'."
 
-#: DlgAdvPreferencesBase.cpp:148
-msgid "While computer is in use"
-msgstr "Докато компютъра се използва"
-
-#: DlgAdvPreferencesBase.cpp:151
-msgid ""
-"check this if you want this computer to do work even when you're using it"
-msgstr ""
-"отметнете това ако искате този компютър да изчислява докато го използвате"
+#: clientgui/DlgAdvPreferencesBase.cpp:243
+#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
+msgid "Use at most"
+msgstr "Използвай максимум"
 
-#: DlgAdvPreferencesBase.cpp:157
-msgid "Use GPU while computer is in use"
-msgstr "Използвай GPU докато компютъра се използва"
+#: clientgui/DlgAdvPreferencesBase.cpp:248
+#, no-c-format
+msgid "% of the CPUs"
+msgstr "% от всички процесори"
 
-#: DlgAdvPreferencesBase.cpp:160
+#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
+#, no-c-format
 msgid ""
-"check this if you want your GPU to do work even when you're using the "
-"computer"
-msgstr ""
-"отметнете това ако искате вашето GPU да изчислява дори когато използвате "
-"компютъра"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Временно спирай/възстановявай изчисленията на всеки няколко секунди, за да се понижат температурата на процесора и потреблението на енергия. Например, 75% означава 'изчислявай 3 секунди, изчакай 1 секунда, след което повтори цикъла'."
 
-#: DlgAdvPreferencesBase.cpp:172
-msgid "Only after computer has been idle for"
-msgstr "Само след като компютъра е бил неактивен за"
+#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
+#, no-c-format
+msgid "% of CPU time"
+msgstr "% процесорно време"
 
-#: DlgAdvPreferencesBase.cpp:182
-msgid ""
-"do work only after you haven't used the computer for this number of minutes"
-msgstr ""
-"изчислявай само след като не сте използвали компютъра от толкова на брой "
-"минути"
+#: clientgui/DlgAdvPreferencesBase.cpp:267
+msgid "When to suspend"
+msgstr "Кога да се спре временно"
 
-#: DlgAdvPreferencesBase.cpp:187 DlgAdvPreferencesBase.cpp:336
-#: sg_DlgPreferences.cpp:417
-msgid "minutes"
-msgstr "минути"
+#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:239
+msgid "Suspend when computer is on battery"
+msgstr "Временно спри докато компютърът е на батерия"
 
-#: DlgAdvPreferencesBase.cpp:206
-msgid "While processor usage is less than"
-msgstr "Докато използвате процесора по-малко от"
+#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Отметнете, за да спирате изчисленията на портативни устройства докато работят на батерии."
 
-#: DlgAdvPreferencesBase.cpp:216
-msgid "suspend work if processor usage exceeds this level"
-msgstr "временно прекратява работа ако използвате процесора над това ниво"
+#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
+msgid "Suspend when computer is in use"
+msgstr "Временно спри докато компютърът е в употреба"
 
-#: DlgAdvPreferencesBase.cpp:221
-msgid "percent (0 means no restriction)"
-msgstr "процента (0 означава, че няма ограничение)"
+#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Отметнете, за да спирате изчисленията и трансферите на файлове докато използвате компютъра."
 
-#: DlgAdvPreferencesBase.cpp:235 DlgAdvPreferencesBase.cpp:496
-msgid "Every day between hours of"
-msgstr "Всеки ден в часовия диапазон от"
+#: clientgui/DlgAdvPreferencesBase.cpp:291
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Временно спри GPU изчисленията докато компютърът е в употреба"
 
-#: DlgAdvPreferencesBase.cpp:239
-msgid "start work at this time"
-msgstr "започни работа в този час"
+#: clientgui/DlgAdvPreferencesBase.cpp:294
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Отметнете за да спирате GPU изчисленията докато използвате компютъра."
 
-#: DlgAdvPreferencesBase.cpp:243 DlgAdvPreferencesBase.cpp:504
-#: sg_DlgPreferences.cpp:326 sg_DlgPreferences.cpp:348
-msgid "and"
-msgstr "и"
+#. min idle time
+#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Това определя кога компютър се счита за 'в употреба'."
 
-#: DlgAdvPreferencesBase.cpp:247
-msgid "stop work at this time"
-msgstr "спри работа в този час"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'В употреба' означава активност на мишката/клавиатурата през последните"
 
-#: DlgAdvPreferencesBase.cpp:251 DlgAdvPreferencesBase.cpp:512
-msgid "(no restriction if equal)"
-msgstr "(няма ограничение ако са равни)"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:315
+#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:276
+msgid "minutes"
+msgstr "минути"
 
-#: DlgAdvPreferencesBase.cpp:256 DlgAdvPreferencesBase.cpp:517
-msgid "Day-of-week override:"
-msgstr "Ден от седмицата за незачитане:"
+#: clientgui/DlgAdvPreferencesBase.cpp:323
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Временно спри докато потреблението на процесора от други приложения е над"
 
-#: DlgAdvPreferencesBase.cpp:261 DlgAdvPreferencesBase.cpp:522
-msgid "check box to specify hours for this day of week"
-msgstr "поставете отметка за да уточните часове за този ден от седмицата"
+#: clientgui/DlgAdvPreferencesBase.cpp:325
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Временно спри изчисленията докато компютърът е зает, изпълнявайки други програми."
 
-#: DlgAdvPreferencesBase.cpp:267 DlgAdvPreferencesBase.cpp:528
-msgid "Monday"
-msgstr "Понеделник"
+#: clientgui/DlgAdvPreferencesBase.cpp:339
+msgid "To suspend by time of day, see the \"Daily Schedules\" section."
+msgstr "За да спирате изчисленията в зависимост от времето на денонощието, вижте секцията \"Дневен план\"."
 
-#: DlgAdvPreferencesBase.cpp:274 DlgAdvPreferencesBase.cpp:535
-msgid "Tuesday"
-msgstr "Вторник"
+#. Context: heading for a group of miscellaneous preferences
+#: clientgui/DlgAdvPreferencesBase.cpp:349
+#: clientgui/DlgAdvPreferencesBase.cpp:516
+msgid "Other"
+msgstr "Други"
 
-#: DlgAdvPreferencesBase.cpp:281 DlgAdvPreferencesBase.cpp:542
-msgid "Wednesday"
-msgstr "Сряда"
+#. buffer sizes
+#: clientgui/DlgAdvPreferencesBase.cpp:355
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Складирай минимум толкова задачи, колкото да държат компютъра зает за толкова време."
 
-#: DlgAdvPreferencesBase.cpp:288 DlgAdvPreferencesBase.cpp:549
-msgid "Thursday"
-msgstr "Четвъртък"
+#. context: Store at least ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:359
+msgid "Store at least"
+msgstr "Складирай минимум"
 
-#: DlgAdvPreferencesBase.cpp:295 DlgAdvPreferencesBase.cpp:556
-msgid "Friday"
-msgstr "Петък"
+#. context: Store at least ___ days of work
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:370
+#: clientgui/DlgAdvPreferencesBase.cpp:392
+msgid "days of work"
+msgstr "денонощия работа"
 
-#: DlgAdvPreferencesBase.cpp:302 DlgAdvPreferencesBase.cpp:563
-msgid "Saturday"
-msgstr "Събота"
+#: clientgui/DlgAdvPreferencesBase.cpp:376
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Складирай допълнително задачи над минималното ниво. Определя за колко време е заявена работа при контакт с проекта."
 
-#: DlgAdvPreferencesBase.cpp:309 DlgAdvPreferencesBase.cpp:570
-msgid "Sunday"
-msgstr "Неделя"
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:380
+msgid "Store up to an additional"
+msgstr "Складирай максимум допълнително"
 
-#: DlgAdvPreferencesBase.cpp:323
-msgid "Other options"
-msgstr "Други опции"
+#: clientgui/DlgAdvPreferencesBase.cpp:399
+#, c-format
+msgid "If you run several projects, %s may switch between them this often."
+msgstr "Ако подпомагате няколко проекта, %s може да сменя между тях толкова често."
 
-#: DlgAdvPreferencesBase.cpp:330
-msgid "Switch between applications every"
-msgstr "Превключване между приложенията на всеки"
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:404
+msgid "Switch between tasks every"
+msgstr "Сменяй между задачите на всеки"
 
-#: DlgAdvPreferencesBase.cpp:339
-msgid "On multiprocessor systems, use at most"
-msgstr "При мултипроцесорни системи, използвай максимум"
+#: clientgui/DlgAdvPreferencesBase.cpp:419
+msgid ""
+"This controls how often tasks save their state to disk, so that they later "
+"can be continued from that point."
+msgstr "Това определя колко често задачите запаметяват състоянието си на диска, за да могат по-късно да продължат от тази точка."
 
-#: DlgAdvPreferencesBase.cpp:346
-#, no-c-format
-msgid "% of the processors (0 means ignore this setting)"
-msgstr ""
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:423
+msgid "Request tasks to checkpoint at most every"
+msgstr "Изисквай от задачите да запаметяват състоянието си най-много на всеки"
 
-#: DlgAdvPreferencesBase.cpp:349 DlgAdvPreferencesBase.cpp:605
-#: DlgAdvPreferencesBase.cpp:627 DlgAdvPreferencesBase.cpp:648
-#: DlgAdvPreferencesBase.cpp:669 DlgAdvPreferencesBase.cpp:679
-msgid "Use at most"
-msgstr "Използвай максимум"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:432
+msgid "seconds"
+msgstr "секунди"
 
-#: DlgAdvPreferencesBase.cpp:356
-#, no-c-format
-msgid "% CPU time"
-msgstr "% CPU време"
+#. upload/download rates
+#: clientgui/DlgAdvPreferencesBase.cpp:469
+msgid "Limit the download rate of file transfers."
+msgstr "Ограничи скоростта на сваляне при файлови трансфери."
 
-#: DlgAdvPreferencesBase.cpp:378
-msgid "General options"
-msgstr "Основни опции"
+#: clientgui/DlgAdvPreferencesBase.cpp:470
+msgid "Limit download rate to"
+msgstr "Ограничи скоростта на изтегляне до"
 
-#: DlgAdvPreferencesBase.cpp:386
-msgid "Maximum download rate"
-msgstr "Максимална скорост на даунлоуд"
+#: clientgui/DlgAdvPreferencesBase.cpp:474
+#: clientgui/DlgAdvPreferencesBase.cpp:483
+msgid "KB/second"
+msgstr "КБ/секунда"
 
-#: DlgAdvPreferencesBase.cpp:392 DlgAdvPreferencesBase.cpp:401
-msgid "KBytes/sec."
-msgstr "Кбайта/сек."
+#: clientgui/DlgAdvPreferencesBase.cpp:478
+msgid "Limit the upload rate of file transfers."
+msgstr "Ограничи скоростта на качване при файлови трансфери."
 
-#: DlgAdvPreferencesBase.cpp:395
-msgid "Maximum upload rate"
-msgstr "Максимална скорост на ъплоуд"
+#: clientgui/DlgAdvPreferencesBase.cpp:479
+msgid "Limit upload rate to"
+msgstr "Ограничи скоростта на качване до"
 
-#: DlgAdvPreferencesBase.cpp:406
-msgid "Transfer at most"
-msgstr "Прехвърляй максимум"
+#: clientgui/DlgAdvPreferencesBase.cpp:490
+#, c-format
+msgid "Example: %s should transfer at most 2000 MB of data every 30 days."
+msgstr "Например: %s би трябвало да прехвърля най-много 2000 МБ данни на всеки 30 дни."
 
-#: DlgAdvPreferencesBase.cpp:412
-msgid "Mbytes"
-msgstr "Мбайта"
+#: clientgui/DlgAdvPreferencesBase.cpp:492
+msgid "Limit usage to"
+msgstr "Ограничи потреблението до"
 
-#: DlgAdvPreferencesBase.cpp:415
-msgid "every"
-msgstr "всеки"
+#: clientgui/DlgAdvPreferencesBase.cpp:496
+msgid "MB every"
+msgstr "МБ на всеки"
 
-#: DlgAdvPreferencesBase.cpp:421 DlgAdvPreferencesBase.cpp:444
-#: DlgAdvPreferencesBase.cpp:463
+#: clientgui/DlgAdvPreferencesBase.cpp:500
 msgid "days"
 msgstr "дни"
 
-#: DlgAdvPreferencesBase.cpp:429
-msgid "Minimum work buffer"
-msgstr "Минимален буфер за работа"
-
-#: DlgAdvPreferencesBase.cpp:438
-msgid "Try to maintain enough tasks to keep busy for this many days"
-msgstr "Опитай да поддържаш достатъчно задачи за да си зает за този брой дни"
-
-#: DlgAdvPreferencesBase.cpp:450
-msgid "Max additional work buffer"
-msgstr "Максимален допълнителен буфер за работа"
+#: clientgui/DlgAdvPreferencesBase.cpp:505
+msgid "To limit transfers by time of day, see the \"Daily Schedules\" section."
+msgstr "За ограничение на трансферите в зависимост от времето на денонощието, вижте секцията \"Дневен план\"."
 
-#: DlgAdvPreferencesBase.cpp:459
-msgid "In addition, maintain enough tasks for up to this many days"
-msgstr "Допълнително, поддържай достатъчно задачи за максимум този брой дни"
-
-#: DlgAdvPreferencesBase.cpp:466
-msgid "Skip image file verification"
-msgstr "Пропусни проверка с файл с изображение"
-
-#: DlgAdvPreferencesBase.cpp:468
-msgid "check this if your Internet provider modifies image files"
-msgstr ""
-"отметнете това ако вашия Интернет доставчик променя файлове с изображение"
+#: clientgui/DlgAdvPreferencesBase.cpp:522
+#, c-format
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of %s."
+msgstr "Отметнете само ако интернет доставчика ви модифицира изображения. Пропускането на стъпката за проверка намалява сигурността на %s."
 
-#: DlgAdvPreferencesBase.cpp:476
-msgid "Connect options"
-msgstr "Опции при свързване"
+#: clientgui/DlgAdvPreferencesBase.cpp:524
+msgid "Skip data verification for image files"
+msgstr "Пропусни проверката на данни за изображения"
 
-#: DlgAdvPreferencesBase.cpp:478
-msgid "Confirm before connecting to internet"
-msgstr "Потвърди преди свързване с интернет"
+#: clientgui/DlgAdvPreferencesBase.cpp:528
+msgid "Confirm before connecting to Internet"
+msgstr "Питай за потвърждение преди свързване с интернет"
 
-#: DlgAdvPreferencesBase.cpp:480
-msgid ""
-"if checked, a confirmation dialog will be displayed before trying to connect "
-"to the Internet"
-msgstr ""
-"ако е отметнато, ще се появи прозорец за потвърждение преди да се опита да "
-"се свърже с Интернет"
+#: clientgui/DlgAdvPreferencesBase.cpp:529
+#: clientgui/DlgAdvPreferencesBase.cpp:533
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Полезно само ако използвате модем, ISDN или VPN връзка."
 
-#: DlgAdvPreferencesBase.cpp:484
+#: clientgui/DlgAdvPreferencesBase.cpp:532
 msgid "Disconnect when done"
 msgstr "Прекъсни връзката когато си готов"
 
-#: DlgAdvPreferencesBase.cpp:486
-msgid ""
-"if checked, BOINC hangs up when network usage is done\n"
-"(only relevant for dialup-connection)"
-msgstr ""
-"ако е отметнато, BOINC ще прекъсне връзката когато приключи да използва "
-"мрежата\n"
-"(приложимо само при свързване през телефонна линия)"
-
-#: DlgAdvPreferencesBase.cpp:492
-msgid "Network usage allowed"
-msgstr "Позволено е използване на мрежата"
+#: clientgui/DlgAdvPreferencesBase.cpp:559 clientgui/ViewResources.cpp:116
+msgid "Disk"
+msgstr "Дисково пространство"
 
-#: DlgAdvPreferencesBase.cpp:500
-msgid "network usage start hour"
-msgstr "начален час за използване на мрежата"
+#: clientgui/DlgAdvPreferencesBase.cpp:564
+#, c-format
+msgid "%s will use the most restrictive of these settings:"
+msgstr "%s ще използва най-ограничаващите от следните настройки:"
 
-#: DlgAdvPreferencesBase.cpp:508
-msgid "network usage stop hour"
-msgstr "краен час за използване на мрежата"
+#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
+#, c-format
+msgid "Limit the total amount of disk space used by %s."
+msgstr "Ограничаване на дисковото пространство, използвано от %s."
 
-#: DlgAdvPreferencesBase.cpp:598 DlgItemProperties.cpp:231
-msgid "Disk usage"
-msgstr "Употреба на диска"
+#: clientgui/DlgAdvPreferencesBase.cpp:573
+#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
+msgid "Use no more than"
+msgstr "Използвай не повече от"
 
-#: DlgAdvPreferencesBase.cpp:609
-msgid "the maximum disk space used by BOINC (in Gigabytes)"
-msgstr ""
-"максимумът използвано пространство на твърдия диск от BOINC (в Гигабайти)"
+#: clientgui/DlgAdvPreferencesBase.cpp:577
+msgid "GB"
+msgstr "GB"
 
-#: DlgAdvPreferencesBase.cpp:613
-msgid "Gigabytes disk space"
-msgstr "Гигабайти дисково пространство"
+#: clientgui/DlgAdvPreferencesBase.cpp:582
+#, c-format
+msgid ""
+"Limit disk usage to leave this much free space on the volume where %s stores"
+" data."
+msgstr "Ограничаване потреблението на диска така, че на дяла, където %s складира данни, да остава не по-малко свободно пространство от посоченото."
 
-#: DlgAdvPreferencesBase.cpp:616
+#: clientgui/DlgAdvPreferencesBase.cpp:585
 msgid "Leave at least"
 msgstr "Остави поне"
 
-#: DlgAdvPreferencesBase.cpp:620
-msgid "BOINC leaves at least this amount of disk space free (in Gigabytes)"
-msgstr ""
-"BOINC оставя поне това количество дисково пространство свободно (в "
-"Гигабайти)"
-
-#: DlgAdvPreferencesBase.cpp:624
-msgid "Gigabytes disk space free"
-msgstr "Гигабайти свободно дисково пространство"
+#: clientgui/DlgAdvPreferencesBase.cpp:589
+msgid "GB free"
+msgstr "ГБ свободни"
 
-#: DlgAdvPreferencesBase.cpp:631
-msgid "BOINC uses at most this percentage of total disk space"
-msgstr "BOINC използва максимум този процент от общото дисково пространство"
+#: clientgui/DlgAdvPreferencesBase.cpp:594
+#, c-format
+msgid ""
+"Limit the percentage of disk space used by %s on the volume where it stores "
+"data."
+msgstr "Ограничаване процента използвано дисково пространство на дяла, използван от %s."
 
-#: DlgAdvPreferencesBase.cpp:636
+#: clientgui/DlgAdvPreferencesBase.cpp:602
 #, no-c-format
-msgid "% of total disk space"
-msgstr "% от общото дисково пространство"
-
-#: DlgAdvPreferencesBase.cpp:639
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Задачите се запазват на диска на всеки максимум"
+msgid "% of total"
+msgstr "%"
 
-#: DlgAdvPreferencesBase.cpp:645
-msgid "seconds"
-msgstr "секунди"
+#: clientgui/DlgAdvPreferencesBase.cpp:609
+msgid "Memory"
+msgstr "Памет"
 
-#: DlgAdvPreferencesBase.cpp:655
-#, no-c-format
-msgid "% of page file (swap space)"
-msgstr "% от виртуална памет (суап пространство)"
+#: clientgui/DlgAdvPreferencesBase.cpp:614
+#, c-format
+msgid "Limit the memory used by %s when you're using the computer."
+msgstr "Ограничаване потреблението на системна памет от %s докато използвате компютъра."
 
-#: DlgAdvPreferencesBase.cpp:662
-msgid "Memory usage"
-msgstr "Употреба на паметта"
+#: clientgui/DlgAdvPreferencesBase.cpp:616
+msgid "When computer is in use, use at most"
+msgstr "Когато компютърът е в употреба, използвай най-много"
 
-#: DlgAdvPreferencesBase.cpp:676
+#: clientgui/DlgAdvPreferencesBase.cpp:622
+#: clientgui/DlgAdvPreferencesBase.cpp:634
+#: clientgui/DlgAdvPreferencesBase.cpp:650
 #, no-c-format
-msgid "% when computer is in use"
-msgstr "% когато компютъра се използва"
+msgid "%"
+msgstr "%"
 
-#: DlgAdvPreferencesBase.cpp:686
-#, no-c-format
-msgid "% when computer is idle"
-msgstr "% когато компютъра не се използва"
+#: clientgui/DlgAdvPreferencesBase.cpp:627
+#, c-format
+msgid "Limit the memory used by %s when you're not using the computer."
+msgstr "Ограничаване потреблението на системна памет от %s докато не използвате компютъра."
 
-#: DlgAdvPreferencesBase.cpp:691
-msgid "Leave applications in memory while suspended"
-msgstr "Остави приложенията в паметта докато са временно прекратени"
+#: clientgui/DlgAdvPreferencesBase.cpp:629
+msgid "When computer is not in use, use at most"
+msgstr "Когато компютърът не е в употреба, използвай най-много"
 
-#: DlgAdvPreferencesBase.cpp:693
-msgid "if checked, suspended work units are left in memory"
-msgstr "ако е отметнато, временно прекратените задачи остават в паметта"
+#: clientgui/DlgAdvPreferencesBase.cpp:638
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Оставяй в системната памет задачите, които не се обработват от графичния процесор, докато са временно спрени"
 
-#: DlgAdvPreferencesBase.cpp:713
+#: clientgui/DlgAdvPreferencesBase.cpp:639
 msgid ""
-"Suspend processor and network usage when these applications are running:"
-msgstr ""
-"Временно прекрати употребата на процесора и мрежата когато следните "
-"приложения работят:"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Ако е отметнато, временно спрените задачи остават в системната памет и възстановяването им е без загуба на работа. В противен случай те се разреждат от паметта и при възстановяване се зарежда състоянието от последното запаметяване на диска."
 
-#: DlgAdvPreferencesBase.cpp:722
-msgid "Add..."
-msgstr "Добави..."
+#: clientgui/DlgAdvPreferencesBase.cpp:643
+#, c-format
+msgid "Limit the swap space (page file) used by %s."
+msgstr "Ограничаване на използваното от %s swap пространство (page file)."
 
-#: DlgAdvPreferencesBase.cpp:723
-msgid "Add an application to this list"
-msgstr "Добавете приложение към този списък"
+#: clientgui/DlgAdvPreferencesBase.cpp:645
+msgid "Page/swap file: use at most"
+msgstr "Page/swap пространство: използвай най-много"
 
-#: DlgAdvPreferencesBase.cpp:728 ViewProjects.cpp:202
-#: sg_ProjectCommandPopup.cpp:85
-msgid "Remove"
-msgstr "Премахни"
+#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
+msgid "and"
+msgstr "и"
 
-#: DlgAdvPreferencesBase.cpp:729
-msgid "Remove an application from this list"
-msgstr "Премахнете приложение от този списък"
+#: clientgui/DlgAdvPreferencesBase.cpp:671
+msgid "to"
+msgstr "до"
 
-#: DlgAdvPreferencesBase.cpp:738
-msgid "For advanced options, refer to "
-msgstr "За допълнителни опции се обърнете към "
+#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:296
+msgid "Compute only during a particular period each day."
+msgstr "Извършвай изчисления само в определен период от денонощието."
 
-#: DlgEventLog.cpp:219
-#, c-format
-msgid "%s - Event Log"
-msgstr "%s - Регистър на Събитията"
+#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:299
+msgid "Compute only between"
+msgstr "Извършвай изчисления само между"
 
-#: DlgEventLog.cpp:232 ViewMessages.cpp:117 ViewProjects.cpp:219
-#: ViewStatistics.cpp:435 ViewStatistics.cpp:2009 ViewTransfers.cpp:182
-#: ViewWork.cpp:232
+#: clientgui/DlgAdvPreferencesBase.cpp:718
+#: clientgui/DlgAdvPreferencesBase.cpp:902
+msgid "Day-of-week override"
+msgstr "Корекция за ден от седмицата"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:727
+#: clientgui/DlgAdvPreferencesBase.cpp:906
+msgid "Override the times above on the selected days:"
+msgstr "Използвай тези времена за горепосочените дни:"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:750
+#: clientgui/DlgAdvPreferencesBase.cpp:923
+msgid "Monday"
+msgstr "Понеделник"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:777
+#: clientgui/DlgAdvPreferencesBase.cpp:938
+msgid "Friday"
+msgstr "Петък"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:792
+#: clientgui/DlgAdvPreferencesBase.cpp:951
+msgid "Tuesday"
+msgstr "Вторник"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:807
+#: clientgui/DlgAdvPreferencesBase.cpp:966
+msgid "Saturday"
+msgstr "Събота"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:820
+#: clientgui/DlgAdvPreferencesBase.cpp:979
+msgid "Wednesday"
+msgstr "Сряда"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:835
+#: clientgui/DlgAdvPreferencesBase.cpp:994
+msgid "Sunday"
+msgstr "Неделя"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:848
+#: clientgui/DlgAdvPreferencesBase.cpp:1007
+msgid "Thursday"
+msgstr "Четвъртък"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
+msgid "Transfer files only during a particular period each day."
+msgstr "Осъществявай трансфер на файлове само в определен период от денонощието."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
+msgid "Transfer files only between"
+msgstr "Осъществявай трансфер на файлове само между"
+
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Невалидно число"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Невалиден час, стойностите трябва да бъдат между 0:00 и 24:00, форматът е ЧЧ:ММ"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Началният час трябва да бъде различен от крайния час."
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Числото трябва да бъде между 0 и 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Числото трябва да бъде между 0 и 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Числото трябва да бъде между 1 и 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "засечена невалидна въведена стойност"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Грешка при Проверка"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Изчистете локалните предпочитания и използвайте уеб-базираните?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Потвърждение"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
+#, c-format
+msgid "%s Diagnostic Log Flags"
+msgstr "%s Диагностични флагове на регистъра"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
+msgid ""
+"These flags enable various types of diagnostic messages in the Event Log."
+msgstr "Тези флагове позволяват различни типове диагностични съобщения в Регистъра на Записите."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
+msgid "More info ..."
+msgstr "Повече информация ..."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
+msgid "Save all values and close the dialog"
+msgstr "Запамети всички стойности и затвори този диалог"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
+msgid "Defaults"
+msgstr "Стойности по подразбиране"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
+msgid "Restore default settings"
+msgstr "Възстанови настройките по подразбиране"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
+msgid "Close the dialog without saving"
+msgstr "Затвори този диалог без да запаметяваш промените"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Приложи"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Запиши всички стойности"
+
+#: clientgui/DlgEventLog.cpp:227
+#, c-format
+msgid "%s - Event Log"
+msgstr "%s - Регистър на Събитията"
+
+#. Create List Pane Items
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
+#: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
+#: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
+#: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Проект"
 
-#: DlgEventLog.cpp:233 ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Време"
 
-#: DlgEventLog.cpp:234 ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Съобщение"
 
-#: DlgEventLog.cpp:290 DlgEventLog.cpp:354
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Покажи само този проект"
 
-#: DlgEventLog.cpp:294
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Копирай &Всичко"
 
-#: DlgEventLog.cpp:296 DlgEventLog.cpp:300 ViewMessages.cpp:89
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
+#: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Копира всички съобщения в клип-борда."
 
-#: DlgEventLog.cpp:305
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Копирай &Избраното"
 
-#: DlgEventLog.cpp:308 DlgEventLog.cpp:316 ViewMessages.cpp:97
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
+#: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or command key while clicking on messages."
-msgstr ""
-"Копира избраните съобщения в клип-борда. Може да изберете няколко съобщения "
-"като задържите клавиша Shift или командния клавиш, докато кликвате на "
-"съобщенията."
+"messages by holding down the shift or command key while clicking on "
+"messages."
+msgstr "Копира избраните съобщения в клип-борда. Може да изберете няколко съобщения като задържите клавиша Shift или командния клавиш, докато кликвате на съобщенията."
 
-#: DlgEventLog.cpp:310 DlgEventLog.cpp:318 ViewMessages.cpp:99
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
+#: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or control key while clicking on messages."
-msgstr ""
-"Копира избраните съобщения в клип-борда. Можете да изберете няколко "
-"съобщения като задържите клавиша Shift или Ctrl, докато кликвате на "
-"съобщенията."
+"messages by holding down the shift or control key while clicking on "
+"messages."
+msgstr "Копира избраните съобщения в клип-борда. Можете да изберете няколко съобщения като задържите клавиша Shift или Ctrl, докато кликвате на съобщенията."
 
-#: DlgEventLog.cpp:325 DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Затвори"
 
-#: DlgEventLog.cpp:334 sg_BoincSimpleFrame.cpp:798 sg_DlgPreferences.cpp:442
-#, c-format
-msgid "Get help with %s"
-msgstr "Вземи помощ с %s"
-
-#: DlgEventLog.cpp:348
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Покажи всички &съобщения"
 
-#: DlgEventLog.cpp:349 DlgEventLog.cpp:351
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Показва съобщения за всички проекти"
 
-#: DlgEventLog.cpp:355 DlgEventLog.cpp:357
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Покажи само съобщенията за избрания проект"
 
-#: DlgExitMessage.cpp:82
+#: clientgui/DlgExclusiveApps.cpp:60
+#, c-format
+msgid "%s - Exclusive Applications"
+msgstr "%s - Ексклузивни приложения"
+
+#: clientgui/DlgExclusiveApps.cpp:72
+msgid ""
+"Suspend processor and network usage when these applications are running:"
+msgstr "Временно прекрати употребата на процесора и мрежата когато следните приложения работят:"
+
+#: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
+msgid "Add..."
+msgstr "Добави..."
+
+#: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
+msgid "Add an application to this list"
+msgstr "Добавете приложение към този списък"
+
+#: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
+msgid "Remove"
+msgstr "Премахни"
+
+#: clientgui/DlgExclusiveApps.cpp:87 clientgui/DlgExclusiveApps.cpp:111
+msgid "Remove an application from this list"
+msgstr "Премахнете приложение от този списък"
+
+#: clientgui/DlgExclusiveApps.cpp:96
+msgid "Suspend GPU usage when these applications are running:"
+msgstr "Временно прекрати употребата на GPU когато следните приложения работят:"
+
+#: clientgui/DlgExclusiveApps.cpp:122
+msgid "For advanced options, refer to "
+msgstr "За допълнителни опции се обърнете към "
+
+#: clientgui/DlgExclusiveApps.cpp:147
+msgid "save all values and close the dialog"
+msgstr "запазва всички стойности и затваря диалога"
+
+#: clientgui/DlgExclusiveApps.cpp:153
+msgid "close the dialog without saving"
+msgstr "затваря диалоговия прозорец без да запази"
+
+#: clientgui/DlgExclusiveApps.cpp:158
+msgid "shows the preferences web page"
+msgstr "показва предпочитанията от интернет страницата"
+
+#. TODO: fill in the default directory for MSW
+#. TODO: fill in the default directory for Linux
+#: clientgui/DlgExclusiveApps.cpp:303 clientgui/DlgExclusiveApps.cpp:309
+#: clientgui/DlgExclusiveApps.cpp:315
+msgid "Applications to add"
+msgstr "Приложения за добавяне"
+
+#: clientgui/DlgExclusiveApps.cpp:332
+#, c-format
+msgid "'%s' is not an executable application."
+msgstr "'%s' не е изпълнимо приложение."
+
+#: clientgui/DlgExclusiveApps.cpp:333 clientgui/DlgExclusiveApps.cpp:380
+#: clientgui/DlgExclusiveApps.cpp:404
+msgid "Add Exclusive App"
+msgstr "Добави Ексклузивно Приложение"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Name of application to add?"
+msgstr "Име на приложение за добавяне?"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Add exclusive app"
+msgstr "Добави ексклузивно приложение"
+
+#: clientgui/DlgExclusiveApps.cpp:379
+#, c-format
+msgid "Application names must end with '%s'"
+msgstr "Имената на приложенията трябва да завършват с '%s'"
+
+#: clientgui/DlgExclusiveApps.cpp:403
+#, c-format
+msgid "'%s' is already in the list."
+msgstr "'%s' е вече в списъка."
+
+#: clientgui/DlgExitMessage.cpp:82
 #, c-format
 msgid "%s - Exit Confirmation"
 msgstr "%s - Потвърждение за Изход"
 
-#: DlgExitMessage.cpp:130
+#: clientgui/DlgExitMessage.cpp:130
 #, c-format
 msgid ""
 "You have requested to exit the %s,\n"
@@ -1669,15 +1781,9 @@ msgid ""
 "\n"
 "If you also want to stop running the tasks,\n"
 "choose from the following options:"
-msgstr ""
-"Пожелахте да излезете от %s,\n"
-"който Ви позволява да преглеждате и управлявате\n"
-"задачите работещи на вашия компютър.\n"
-"\n"
-"Ако също така искате да изключите и задачите,\n"
-"изберете измежду следните възможности:"
+msgstr "Пожелахте да излезете от %s,\nкойто Ви позволява да преглеждате и управлявате\nзадачите работещи на вашия компютър.\n\nАко също така искате да изключите и задачите,\nизберете измежду следните възможности:"
 
-#: DlgExitMessage.cpp:135
+#: clientgui/DlgExitMessage.cpp:135
 #, c-format
 msgid ""
 "This will shut down %s and its tasks until either the\n"
@@ -1686,948 +1792,1020 @@ msgid ""
 "In most cases, it is better just to close the %s window\n"
 "rather than to exit the application; that will allow %s to run its\n"
 "tasks at the times you selected in your preferences."
-msgstr ""
-"Това ще изключи %s и неговите задачи докато или\n"
-"%s или %s скрийн-сейвъра се стартира отново.\n"
-"\n"
-"В повечето случаи, е по-добре само да затворите %s прозореца\n"
-"отколкото да излезете от приложението; това ще позволи на %s да стартира\n"
-"задачите според часовите диапазони избрани във вашите предпочитания."
+msgstr "Това ще изключи %s и неговите задачи докато или\n%s или %s скрийн-сейвъра се стартира отново.\n\nВ повечето случаи, е по-добре само да затворите %s прозореца\nотколкото да излезете от приложението; това ще позволи на %s да стартира\nзадачите според часовите диапазони избрани във вашите предпочитания."
 
-#: DlgExitMessage.cpp:153
+#: clientgui/DlgExitMessage.cpp:153
 #, c-format
 msgid "Stop running tasks when exiting the %s"
 msgstr "Спри работещите задачи при излизане от %s"
 
-#: DlgExitMessage.cpp:165
+#: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
 msgstr "Запомни това решение и не показвай повече този диалог."
 
-#: DlgExitMessage.cpp:178 DlgGenericMessage.cpp:125 DlgOptions.cpp:401
-#: DlgSelectComputer.cpp:168 wizardex.cpp:378
+#: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
+#: clientgui/DlgOptions.cpp:415 clientgui/DlgSelectComputer.cpp:168
+#: clientgui/wizardex.cpp:378
 msgid "&Cancel"
 msgstr "&Откажи"
 
-#: DlgGenericMessage.cpp:112
+#: clientgui/DlgGenericMessage.cpp:112
 msgid "Don't show this dialog again."
 msgstr "Не показвай този диалог повече."
 
-#: DlgItemProperties.cpp:168 DlgItemProperties.cpp:171
-#: DlgItemProperties.cpp:174 DlgItemProperties.cpp:177
-msgid "Don't fetch tasks for "
-msgstr "Не взимай задачи за "
+#: clientgui/DlgHiddenColumns.cpp:64
+#, c-format
+msgid "%s Column Selection"
+msgstr "Избор на колона за %s"
+
+#: clientgui/DlgHiddenColumns.cpp:77
+#, c-format
+msgid "Select which columns %s should show."
+msgstr "Изберете кои колони да показва %s."
+
+#: clientgui/DlgHiddenColumns.cpp:358
+msgid ""
+"Are you sure you want to reset all list columns to the default "
+"configurations?"
+msgstr "Сигурни ли сте, че искате да върнете всички колони към конфигурацията по подразбиране?"
+
+#: clientgui/DlgHiddenColumns.cpp:359
+msgid "Confirm defaults"
+msgstr "Потвърдете настройките по подразбиране"
 
-#: DlgItemProperties.cpp:168
+#: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
+#: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
+msgid "Don't request tasks for "
+msgstr "Не изисквай задачи за"
+
+#: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
 msgstr "Предпочитание на проекта"
 
-#: DlgItemProperties.cpp:171
+#: clientgui/DlgItemProperties.cpp:197
 msgid "Account manager preference"
 msgstr "Предпочитание на акаунт мениджъра"
 
-#: DlgItemProperties.cpp:174
+#: clientgui/DlgItemProperties.cpp:200
 msgid "Project has no apps for "
 msgstr "Проекта няма приложения за "
 
-#: DlgItemProperties.cpp:177
+#: clientgui/DlgItemProperties.cpp:203
 msgid "Client configuration excludes "
 msgstr "Конфигурацията на клиента изключва "
 
-#: DlgItemProperties.cpp:181
-msgid " work fetch deferred for"
-msgstr " вземането на работа е отсрочено за"
+#: clientgui/DlgItemProperties.cpp:209
+#, c-format
+msgid "%s task request deferred for"
+msgstr "Искане на задача за %s отложено за"
 
-#: DlgItemProperties.cpp:182
-msgid " work fetch deferral interval"
-msgstr " вземането на работа е отсрочено за интервала"
+#: clientgui/DlgItemProperties.cpp:213
+#, c-format
+msgid "%s task request deferral interval"
+msgstr "Интервал при отлагане поискването на задача за %s "
 
-#: DlgItemProperties.cpp:213
+#. set dialog title
+#: clientgui/DlgItemProperties.cpp:247
 msgid "Properties of project "
 msgstr "Свойства на проект "
 
-#: DlgItemProperties.cpp:217 DlgOptions.cpp:218
+#. layout controls
+#: clientgui/DlgItemProperties.cpp:251 clientgui/DlgOptions.cpp:232
 msgid "General"
 msgstr "Основни"
 
-#: DlgItemProperties.cpp:218
-msgid "Master URL"
-msgstr "Главен URL"
+#: clientgui/DlgItemProperties.cpp:252
+msgid "URL"
+msgstr "URL"
 
-#: DlgItemProperties.cpp:219
+#: clientgui/DlgItemProperties.cpp:253
 msgid "User name"
 msgstr "Потребителско име"
 
-#: DlgItemProperties.cpp:220
+#: clientgui/DlgItemProperties.cpp:254
 msgid "Team name"
 msgstr "Име на отбор"
 
-#: DlgItemProperties.cpp:221 ViewProjects.cpp:224
+#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:256
 msgid "Resource share"
 msgstr "Подялба на ресурс"
 
-#: DlgItemProperties.cpp:223
+#: clientgui/DlgItemProperties.cpp:257
 msgid "Scheduler RPC deferred for"
 msgstr "Scheduler RPC е отсрочен за"
 
-#: DlgItemProperties.cpp:226
+#: clientgui/DlgItemProperties.cpp:260
 msgid "File downloads deferred for"
 msgstr "Сваляне на файловете е отсрочено за"
 
-#: DlgItemProperties.cpp:229
+#: clientgui/DlgItemProperties.cpp:263
 msgid "File uploads deferred for"
 msgstr "Качване на файловете е отсрочено за"
 
-#: DlgItemProperties.cpp:232
+#: clientgui/DlgItemProperties.cpp:265
+msgid "Disk usage"
+msgstr "Употреба на диска"
+
+#: clientgui/DlgItemProperties.cpp:266
 msgid "Computer ID"
 msgstr "Идентификатор на компютъра"
 
-#: DlgItemProperties.cpp:234
+#: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
 msgstr "Не натоварващи CPU"
 
-#: DlgItemProperties.cpp:234 DlgItemProperties.cpp:236
-#: DlgItemProperties.cpp:237 DlgItemProperties.cpp:239
-#: DlgItemProperties.cpp:242 DlgItemProperties.cpp:251
-#: DlgItemProperties.cpp:254 DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:268 clientgui/DlgItemProperties.cpp:270
+#: clientgui/DlgItemProperties.cpp:271 clientgui/DlgItemProperties.cpp:273
+#: clientgui/DlgItemProperties.cpp:276 clientgui/DlgItemProperties.cpp:285
+#: clientgui/DlgItemProperties.cpp:288 clientgui/DlgItemProperties.cpp:291
 msgid "yes"
 msgstr "да"
 
-#: DlgItemProperties.cpp:236
+#: clientgui/DlgItemProperties.cpp:270
 msgid "Suspended via GUI"
 msgstr "Временно прекратен чрез GUI"
 
-#: DlgItemProperties.cpp:236 DlgItemProperties.cpp:237
+#: clientgui/DlgItemProperties.cpp:270 clientgui/DlgItemProperties.cpp:271
 msgid "no"
 msgstr "не"
 
-#: DlgItemProperties.cpp:237
-msgid "Don't request more work"
-msgstr "Не искай повече работа"
+#: clientgui/DlgItemProperties.cpp:271
+msgid "Don't request tasks"
+msgstr "Не поисквай задачи"
 
-#: DlgItemProperties.cpp:239
+#: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
 msgstr "В ход е повикване на Планировчика"
 
-#: DlgItemProperties.cpp:242
+#: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
 msgstr "В ход е съобщения към сървъра"
 
-#: DlgItemProperties.cpp:245 DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:279 clientgui/DlgItemProperties.cpp:281
 msgid "Host location"
 msgstr "Местоположение на хоста"
 
-#: DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:281
 msgid "default"
 msgstr "по подразбиране"
 
-#: DlgItemProperties.cpp:251
+#: clientgui/DlgItemProperties.cpp:285
 msgid "Added via account manager"
 msgstr "Добавен чрез акаунт мениджър"
 
-#: DlgItemProperties.cpp:254
+#: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
 msgstr "Премахни когато задачите приключат"
 
-#: DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
 msgstr "Приключен"
 
-#: DlgItemProperties.cpp:259
+#: clientgui/DlgItemProperties.cpp:293
+msgid "Tasks completed"
+msgstr "Завършени задачи"
+
+#: clientgui/DlgItemProperties.cpp:294
+msgid "Tasks failed"
+msgstr "Неуспешни задачи"
+
+#: clientgui/DlgItemProperties.cpp:296
 msgid "Credit"
 msgstr "Кредит"
 
-#: DlgItemProperties.cpp:260
+#: clientgui/DlgItemProperties.cpp:297
 msgid "User"
 msgstr "Потребител"
 
-#: DlgItemProperties.cpp:267
+#: clientgui/DlgItemProperties.cpp:300 clientgui/DlgItemProperties.cpp:308
+#, c-format
+msgid "%s total, %s average"
+msgstr "%s общо, %s средно"
+
+#: clientgui/DlgItemProperties.cpp:305
 msgid "Host"
 msgstr "Хост"
 
-#: DlgItemProperties.cpp:276
+#: clientgui/DlgItemProperties.cpp:315
 msgid "Scheduling"
 msgstr "Планиране"
 
-#: DlgItemProperties.cpp:277
+#: clientgui/DlgItemProperties.cpp:316
 msgid "Scheduling priority"
 msgstr "Приоритет при планиране"
 
-#: DlgItemProperties.cpp:278
+#: clientgui/DlgItemProperties.cpp:317
 msgid "CPU"
 msgstr "CPU"
 
-#: DlgItemProperties.cpp:302
+#: clientgui/DlgItemProperties.cpp:341
 msgid "Duration correction factor"
 msgstr "Коригиращ коефициент за продължителност"
 
-#: DlgItemProperties.cpp:316
+#: clientgui/DlgItemProperties.cpp:349
+msgid "Last scheduler reply"
+msgstr "Последен отговор от Планировчика"
+
+#: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
 msgstr "Свойства на задача "
 
-#: DlgItemProperties.cpp:328 ViewWork.cpp:238
+#: clientgui/DlgItemProperties.cpp:372 clientgui/ViewWork.cpp:266
 msgid "Application"
 msgstr "Приложение"
 
-#: DlgItemProperties.cpp:329 ViewWork.cpp:239
+#: clientgui/DlgItemProperties.cpp:373 clientgui/ViewWork.cpp:267
 msgid "Name"
 msgstr "Име"
 
-#: DlgItemProperties.cpp:330
+#: clientgui/DlgItemProperties.cpp:374
 msgid "State"
 msgstr "Състояние"
 
-#: DlgItemProperties.cpp:333
+#: clientgui/DlgItemProperties.cpp:377
 msgid "Received"
 msgstr "Получени"
 
-#: DlgItemProperties.cpp:336
+#: clientgui/DlgItemProperties.cpp:380
 msgid "Report deadline"
 msgstr "Срок за докладване"
 
-#: DlgItemProperties.cpp:338
+#: clientgui/DlgItemProperties.cpp:382
 msgid "Resources"
 msgstr "Ресурси"
 
-#: DlgItemProperties.cpp:341
+#: clientgui/DlgItemProperties.cpp:385
 msgid "Estimated computation size"
 msgstr "Очакван изчислителен размер"
 
-#: DlgItemProperties.cpp:344
-msgid "CPU time at last checkpoint"
-msgstr "CPU време при последната проверка"
-
-#: DlgItemProperties.cpp:345 DlgItemProperties.cpp:360
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "CPU време"
 
-#: DlgItemProperties.cpp:347 DlgItemProperties.cpp:361
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Процесорно време след последното запаметяване на състоянието"
+
+#: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Изминало време"
 
-#: DlgItemProperties.cpp:349
+#: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
 msgstr "Очаквано оставащо време"
 
-#: DlgItemProperties.cpp:350
+#: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
 msgstr "Готова част"
 
-#: DlgItemProperties.cpp:351
+#: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
 msgstr "Размер на виртуалната памет"
 
-#: DlgItemProperties.cpp:352
+#: clientgui/DlgItemProperties.cpp:398
 msgid "Working set size"
 msgstr "Размер на работния комплект"
 
-#: DlgItemProperties.cpp:354
+#: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
 msgstr "Папка"
 
-#: DlgItemProperties.cpp:357
+#: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
 msgstr "Идентификатор на процес"
 
-#: DlgItemProperties.cpp:427 ViewWork.cpp:1032 sg_TaskPanel.cpp:823
+#: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
+msgid "Progress rate"
+msgstr "Темпо на прогреса"
+
+#: clientgui/DlgItemProperties.cpp:409
+msgid "per hour"
+msgstr "за час"
+
+#: clientgui/DlgItemProperties.cpp:411
+msgid "per minute"
+msgstr "за минута"
+
+#: clientgui/DlgItemProperties.cpp:413
+msgid "per second"
+msgstr "за секунда"
+
+#: clientgui/DlgItemProperties.cpp:421
+msgid "Executable"
+msgstr "Изпълним"
+
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Локален: "
 
-#: DlgOptions.cpp:129 DlgOptions.cpp:135
+#: clientgui/DlgOptions.cpp:130 clientgui/DlgOptions.cpp:136
 msgid "Options"
 msgstr "Опции"
 
-#: DlgOptions.cpp:175
+#: clientgui/DlgOptions.cpp:179
 msgid "Language:"
 msgstr "Език:"
 
-#: DlgOptions.cpp:182
+#: clientgui/DlgOptions.cpp:186
 msgid "What language should BOINC use?"
 msgstr "Кой език да използва BOINC?"
 
-#: DlgOptions.cpp:186
+#: clientgui/DlgOptions.cpp:190
 msgid "Notice reminder interval:"
 msgstr "Интервал за напомнящи известия:"
 
-#: DlgOptions.cpp:193
+#: clientgui/DlgOptions.cpp:197
 msgid "How often should BOINC remind you of new notices?"
 msgstr "Колко често следва BOINC да Ви напомня за нови известия?"
 
-#: DlgOptions.cpp:198
+#: clientgui/DlgOptions.cpp:202
 msgid "Run Manager at login?"
 msgstr "Стартирай Мениджъра при влизане?"
 
-#: DlgOptions.cpp:204
+#: clientgui/DlgOptions.cpp:208
 msgid "Run the BOINC Manager when you log on."
 msgstr "Стартирай BOINC Мениджъра при включване."
 
-#: DlgOptions.cpp:209
+#: clientgui/DlgOptions.cpp:213
+msgid "Run daemon?"
+msgstr "Стартиране на daemon-а?"
+
+#: clientgui/DlgOptions.cpp:219
+msgid "Run daemon when launching the Manager."
+msgstr "Стартирай daemon-а при пускане на Мениджъра."
+
+#: clientgui/DlgOptions.cpp:223
 msgid "Enable Manager exit dialog?"
 msgstr "Активиране на диалог при излизане от Мениджъра?"
 
-#: DlgOptions.cpp:215
+#: clientgui/DlgOptions.cpp:229
 msgid "Display the exit dialog when shutting down the Manager."
 msgstr "Покажи диалоговия прозорец за изход когато Мениждъра се изключва."
 
-#: DlgOptions.cpp:226
+#: clientgui/DlgOptions.cpp:240
 msgid "Dial-up and Virtual Private Network settings"
 msgstr "Dial-up и Virtual Private Network настройки"
 
-#: DlgOptions.cpp:240
+#: clientgui/DlgOptions.cpp:254
 msgid "&Set Default"
 msgstr "&Задай стойности по подразбиране"
 
-#: DlgOptions.cpp:245
+#: clientgui/DlgOptions.cpp:259
 msgid "&Clear Default"
 msgstr "&Изчисти стойности по подразбиране"
 
-#: DlgOptions.cpp:252
+#: clientgui/DlgOptions.cpp:266
 msgid "Default Connection:"
 msgstr "Връзка по подразбиране:"
 
-#: DlgOptions.cpp:259
+#: clientgui/DlgOptions.cpp:273
 msgid "Connections"
 msgstr "Връзки"
 
-#: DlgOptions.cpp:268
+#: clientgui/DlgOptions.cpp:282
 msgid "Connect via HTTP proxy server"
 msgstr "Свържи се чрез HTTP прокси сървър"
 
-#: DlgOptions.cpp:272
+#: clientgui/DlgOptions.cpp:286
 msgid "HTTP Proxy Server Configuration"
 msgstr "Настройки на HTTP Прокси Сървър"
 
-#: DlgOptions.cpp:280 DlgOptions.cpp:344
+#: clientgui/DlgOptions.cpp:294 clientgui/DlgOptions.cpp:358
 msgid "Address:"
 msgstr "Адрес:"
 
-#: DlgOptions.cpp:288 DlgOptions.cpp:352 ProxyPage.cpp:340 ProxyPage.cpp:360
+#: clientgui/DlgOptions.cpp:302 clientgui/DlgOptions.cpp:366
+#: clientgui/ProxyPage.cpp:340 clientgui/ProxyPage.cpp:360
 msgid "Port:"
 msgstr "Порт:"
 
-#: DlgOptions.cpp:296 DlgOptions.cpp:360
+#: clientgui/DlgOptions.cpp:310 clientgui/DlgOptions.cpp:374
 msgid "Don't use proxy for:"
 msgstr "Не използвай прокси за:"
 
-#: DlgOptions.cpp:303 DlgOptions.cpp:367
+#: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
 msgid "Leave these blank if not needed"
 msgstr "Остави тези полета празни ако не са нужни"
 
-#: DlgOptions.cpp:309 DlgOptions.cpp:373 ProxyPage.cpp:343 ProxyPage.cpp:363
+#: clientgui/DlgOptions.cpp:323 clientgui/DlgOptions.cpp:387
+#: clientgui/ProxyPage.cpp:343 clientgui/ProxyPage.cpp:363
 msgid "User Name:"
 msgstr "Потребителско Име:"
 
-#: DlgOptions.cpp:317 DlgOptions.cpp:381 DlgSelectComputer.cpp:152
-#: ProxyPage.cpp:346 ProxyPage.cpp:366
+#: clientgui/DlgOptions.cpp:331 clientgui/DlgOptions.cpp:395
+#: clientgui/DlgSelectComputer.cpp:152 clientgui/ProxyPage.cpp:346
+#: clientgui/ProxyPage.cpp:366
 msgid "Password:"
 msgstr "Парола:"
 
-#: DlgOptions.cpp:324
+#: clientgui/DlgOptions.cpp:338
 msgid "HTTP Proxy"
 msgstr "HTTP Прокси"
 
-#: DlgOptions.cpp:332
+#: clientgui/DlgOptions.cpp:346
 msgid "Connect via SOCKS proxy server"
 msgstr "Свържи се чрез SOCKS прокси сървър"
 
-#: DlgOptions.cpp:336
+#: clientgui/DlgOptions.cpp:350
 msgid "SOCKS Proxy Server Configuration"
 msgstr "Настройки на SOCKS Прокси Сървър"
 
-#: DlgOptions.cpp:388
+#: clientgui/DlgOptions.cpp:402
 msgid "SOCKS Proxy"
 msgstr "SOCKS Прокси"
 
-#: DlgOptions.cpp:586
+#: clientgui/DlgOptions.cpp:600
 msgid "always"
 msgstr "винаги"
 
-#: DlgOptions.cpp:587
+#: clientgui/DlgOptions.cpp:601
 msgid "1 hour"
 msgstr "1 час"
 
-#: DlgOptions.cpp:588
+#: clientgui/DlgOptions.cpp:602
 msgid "6 hours"
 msgstr "6 часа"
 
-#: DlgOptions.cpp:589
+#: clientgui/DlgOptions.cpp:603
 msgid "1 day"
 msgstr "1 ден"
 
-#: DlgOptions.cpp:590
+#: clientgui/DlgOptions.cpp:604
 msgid "1 week"
 msgstr "1 седмица"
 
-#: DlgOptions.cpp:591
+#: clientgui/DlgOptions.cpp:605
 msgid "never"
 msgstr "никога"
 
-#: DlgOptions.cpp:688
+#: clientgui/DlgOptions.cpp:703
 #, c-format
 msgid "%s - Language Selection"
 msgstr "%s - Избор на Език"
 
-#: DlgOptions.cpp:695
+#: clientgui/DlgOptions.cpp:710
 #, c-format
-#, c-format, c-format
 msgid ""
 "The %s's language has been changed.  In order for this change to take "
 "effect, you must restart the %s."
-msgstr ""
-"Езикът на %s беше променен.  За да влезе в сила тази промяна, трябва да "
-"рестартирате %s."
+msgstr "Езикът на %s беше променен.  За да влезе в сила тази промяна, трябва да рестартирате %s."
 
-#: DlgSelectComputer.cpp:91
+#: clientgui/DlgSelectComputer.cpp:91
 #, c-format
 msgid "%s - Select Computer"
 msgstr "%s - Избери Компютър"
 
-#: DlgSelectComputer.cpp:125
+#: clientgui/DlgSelectComputer.cpp:125
 #, c-format
 msgid ""
 "Another instance of %s is already running \n"
 "on this computer.  Please select a client to monitor."
-msgstr ""
-"Още един %s е вече стартиран на този \n"
-"компютър.  Моля изберете клиент който да наблюдавате."
+msgstr "Още един %s е вече стартиран на този \nкомпютър.  Моля изберете клиент който да наблюдавате."
 
-#: DlgSelectComputer.cpp:143
+#: clientgui/DlgSelectComputer.cpp:143
 msgid "Host name:"
 msgstr "Име на хоста:"
 
-#: Localization.cpp:31 Localization.cpp:69
+#: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
 msgid "Message boards"
 msgstr "Форуми"
 
-#: Localization.cpp:33
+#: clientgui/Localization.cpp:33
 msgid "Correspond with other users on the SETI at home message boards"
 msgstr "Общувайте с други потребители във форумите на SETI at home"
 
-#: Localization.cpp:37
+#: clientgui/Localization.cpp:37
 msgid "Ask questions and report problems"
 msgstr "Задавайте въпроси и докладвайте проблеми"
 
-#: Localization.cpp:39 Localization.cpp:81 Localization.cpp:111
-#: Localization.cpp:129
+#: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
+#: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
 msgid "Your account"
 msgstr "Вашият акаунт"
 
-#: Localization.cpp:41 Localization.cpp:87 Localization.cpp:113
+#: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
+#: clientgui/Localization.cpp:113
 msgid "View your account information and credit totals"
 msgstr "Вижте информацията за вашия акаунт и общите суми кредит"
 
-#: Localization.cpp:43
+#: clientgui/Localization.cpp:43
 msgid "Your preferences"
 msgstr "Вашите предпочитания"
 
-#: Localization.cpp:45
+#: clientgui/Localization.cpp:45
 msgid "View and modify your SETI at home account profile and preferences"
 msgstr "Вижте и променете своя профил на акаунта и предпочитания в SETI at home"
 
-#: Localization.cpp:47 Localization.cpp:89
+#: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
 msgid "Your results"
 msgstr "Вашите резултати"
 
-#: Localization.cpp:49 Localization.cpp:91
+#: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
 msgid "View your last week (or more) of computational results and work"
-msgstr ""
-"Вижте изчислените от Вас резултати и работа за последната седмица (или "
-"повече)"
+msgstr "Вижте изчислените от Вас резултати и работа за последната седмица (или повече)"
 
-#: Localization.cpp:51 Localization.cpp:93
+#: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
 msgid "Your computers"
 msgstr "Вашите компютри"
 
-#: Localization.cpp:53
+#: clientgui/Localization.cpp:53
 msgid "View a listing of all the computers on which you are running SETI at Home"
 msgstr "Вижте списък на всички ваши компютри, които работят по SETI at Home"
 
-#: Localization.cpp:55 Localization.cpp:97
+#: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
 msgid "Your team"
 msgstr "Вашият отбор"
 
-#: Localization.cpp:57 Localization.cpp:99
+#: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
 msgid "View information about your team"
 msgstr "Вижте информация за вашия отбор"
 
-#: Localization.cpp:61
+#: clientgui/Localization.cpp:61
 msgid "Common questions"
 msgstr "Често задавани въпроси"
 
-#: Localization.cpp:63
+#: clientgui/Localization.cpp:63
 msgid "Read the Einstein at Home Frequently Asked Question list"
 msgstr "Прочетете списъка с Често Задавани Въпроси за Einstein at Home"
 
-#: Localization.cpp:65
+#: clientgui/Localization.cpp:65
 msgid "Screensaver info"
 msgstr "Информация за скрийн-сейвъра"
 
-#: Localization.cpp:67
+#: clientgui/Localization.cpp:67
 msgid "Read a detailed description of the Einstein at Home screensaver"
 msgstr "Прочетете подробно описание за скрийн-сейвъра на Einstein at Home"
 
-#: Localization.cpp:71
+#: clientgui/Localization.cpp:71
 msgid ""
 "Correspond with admins and other users on the Einstein at Home message boards"
 msgstr "Общувайте с админи и други потребители във форума на Einstein at Home"
 
-#: Localization.cpp:73
+#: clientgui/Localization.cpp:73
 msgid "Einstein status"
 msgstr "Einstein статус"
 
-#: Localization.cpp:75
+#: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
 msgstr "Текущ статус на Einstein at Home сървъра"
 
-#: Localization.cpp:77
+#: clientgui/Localization.cpp:77
 msgid "Report problems"
 msgstr "Докладвайте проблеми"
 
-#: Localization.cpp:79
+#: clientgui/Localization.cpp:79
 msgid "A link to the Einstein at Home problems and bug reports message board"
 msgstr "Линк към форума на Einstein at Home за проблеми и бъгове"
 
-#: Localization.cpp:83
+#: clientgui/Localization.cpp:83
 msgid "View and modify your Einstein at Home account profile and preferences"
-msgstr ""
-"Вижте и променете профила и предпочитанията на своя Einstein at Home акаунт"
+msgstr "Вижте и променете профила и предпочитанията на своя Einstein at Home акаунт"
 
-#: Localization.cpp:85
+#: clientgui/Localization.cpp:85
 msgid "Account summary"
 msgstr "Обобщена информация за акаунта"
 
-#: Localization.cpp:95
+#: clientgui/Localization.cpp:95
 msgid ""
 "View a listing of all the computers on which you are running Einstein at Home"
 msgstr "Вижте списък с всички ваши компютри, които работят по Einstein at Home"
 
-#: Localization.cpp:101
+#: clientgui/Localization.cpp:101
 msgid "LIGO project"
 msgstr "Проект LIGO"
 
-#: Localization.cpp:103
+#: clientgui/Localization.cpp:103
 msgid ""
 "The home page of the Laser Interferometer Gravitational-wave Observatory "
 "(LIGO) project"
-msgstr ""
-"Начална страница на проекта Laser Interferometer Gravitational-wave "
-"Observatory (LIGO)"
+msgstr "Начална страница на проекта Laser Interferometer Gravitational-wave Observatory (LIGO)"
 
-#: Localization.cpp:105
+#: clientgui/Localization.cpp:105
 msgid "GEO-600 project"
 msgstr "Проект GEO-600"
 
-#: Localization.cpp:107
+#: clientgui/Localization.cpp:107
 msgid "The home page of the GEO-600 project"
 msgstr "Начална страница на проекта GEO-600"
 
-#: Localization.cpp:115 Localization.cpp:133 ViewProjects.cpp:221
-#: ViewStatistics.cpp:465
+#: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
+#: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
 msgid "Team"
 msgstr "Отбор"
 
-#: Localization.cpp:117
+#: clientgui/Localization.cpp:117
 msgid "Info about your Team"
 msgstr "Информация за вашия Отбор"
 
-#: Localization.cpp:123
+#: clientgui/Localization.cpp:123
 msgid "Get help for climateprediction.net"
 msgstr "Получете помощ за climateprediction.net"
 
-#: Localization.cpp:125
+#: clientgui/Localization.cpp:125
 msgid "News"
 msgstr "Новини"
 
-#: Localization.cpp:127
+#: clientgui/Localization.cpp:127
 msgid "climateprediction.net News"
 msgstr "Новини от climateprediction.net"
 
-#: Localization.cpp:131
+#: clientgui/Localization.cpp:131
 msgid "View your account information, credits, and trickles"
 msgstr "Вижте информацията за своя акаунт, кредити и съобщения"
 
-#: Localization.cpp:135
+#: clientgui/Localization.cpp:135
 msgid "Info about your team"
 msgstr "Информация за вашия отбор"
 
-#: Localization.cpp:141
+#: clientgui/Localization.cpp:141
 msgid "Search for help in our help system"
 msgstr "Потърсете помощ в нашата система за помощ"
 
-#: Localization.cpp:143
+#: clientgui/Localization.cpp:143
 msgid "Global Statistics"
 msgstr "Глобална Статистика"
 
-#: Localization.cpp:145
+#: clientgui/Localization.cpp:145
 msgid "Summary statistics for World Community Grid"
 msgstr "Обобщена статистика за World Community Grid"
 
-#: Localization.cpp:147
+#: clientgui/Localization.cpp:147
 msgid "My Grid"
 msgstr "Моята Мрежа"
 
-#: Localization.cpp:149
+#: clientgui/Localization.cpp:149
 msgid "Your statistics and settings"
 msgstr "Вашата статистика и настройки"
 
-#: Localization.cpp:151
+#: clientgui/Localization.cpp:151
 msgid "Device Profiles"
 msgstr "Профили на Устройства"
 
-#: Localization.cpp:153
+#: clientgui/Localization.cpp:153
 msgid "Update your device settings"
 msgstr "Обновете настройките на устройството си"
 
-#: Localization.cpp:155
+#: clientgui/Localization.cpp:155
 msgid "Research"
 msgstr "Проучване"
 
-#: Localization.cpp:157
+#: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Научи за проектите включени в World Community Grid"
 
-#: MainDocument.cpp:583
-msgid "Starting client"
-msgstr "Стартиране на клиент"
-
-#: MainDocument.cpp:591
-msgid "Connecting to client"
-msgstr "Свързване към клиент"
-
-#: MainDocument.cpp:1195
-msgid "Retrieving system state; please wait..."
-msgstr "Получаване на информация за състоянието на системата; моля изчакайте..."
-
-#: MainDocument.cpp:1816
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Липсващо приложение"
 
-#: MainDocument.cpp:1817
+#: clientgui/MainDocument.cpp:1820
 msgid ""
-"Please download and install the CoRD application from http://cord."
-"sourceforge.net"
-msgstr ""
-"Моля изтеглете и инсталирайте приложението CoRD от "
+"Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
+msgstr "Моля изтеглете и инсталирайте приложението CoRD от http://cord.sourceforge.net"
 
-#: MainDocument.cpp:2432
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "на батерии"
 
-#: MainDocument.cpp:2433
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "компютъра се използва"
 
-#: MainDocument.cpp:2434
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "заявка от потребителя"
 
-#: MainDocument.cpp:2435
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "ограничителни часове"
 
-#: MainDocument.cpp:2436
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "CPU изчисляване на референтни показатели е в прогрес"
 
-#: MainDocument.cpp:2437
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "нуждае се от дисково пространство - проверете предпочитанията"
 
-#: MainDocument.cpp:2438
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "компютъра не се използва"
 
-#: MainDocument.cpp:2439
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "стартиране"
 
-#: MainDocument.cpp:2440
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "стартирано е ексклузивно приложение"
 
-#: MainDocument.cpp:2441
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "CPU е зает"
 
-#: MainDocument.cpp:2442
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "лимита за мрежов трафик е надхвърлен"
 
-#: MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "поискано от операционната система"
 
-#: MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "неизвестна причина"
 
-#: MainDocument.cpp:2467
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU липсва, "
 
-#: MainDocument.cpp:2474
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Нов"
 
-#: MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Свалянето е неуспешно"
 
-#: MainDocument.cpp:2480
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Сваляне"
 
-#: MainDocument.cpp:2482 MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (временно прекратен - "
 
-#: MainDocument.cpp:2490
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Проектът е временно прекратен от потребителя"
 
-#: MainDocument.cpp:2492
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Задачата е временно прекратена от потребителя"
 
-#: MainDocument.cpp:2494
+#. an NCI process can be running even though computation is suspended
+#. (because of <dont_suspend_nci>
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Временно прекратен - "
 
-# 75%
-#: MainDocument.cpp:2500
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU временно прекратено - "
 
-#: MainDocument.cpp:2507
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Изчакване на паметта"
 
-#: MainDocument.cpp:2509
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Изчакване на споделената памет"
 
-#: MainDocument.cpp:2512
-msgid "Running, high priority"
-msgstr "Работи, висок приоритет"
-
-#: MainDocument.cpp:2514
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Работи"
 
-#: MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (не-CPU-интензивен)"
 
-#: MainDocument.cpp:2520
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Изчаква да работи"
 
-#: MainDocument.cpp:2522 MainDocument.cpp:2528
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Готова да започне"
 
-#: MainDocument.cpp:2532
-msgid " (Scheduler wait: "
-msgstr " (Изчакване от Планировчика: "
+#: clientgui/MainDocument.cpp:2524
+msgid "Postponed: "
+msgstr "Отложени: "
 
-#: MainDocument.cpp:2536
-msgid " (Scheduler wait)"
-msgstr " (Изчакване от Планировчика)"
+#: clientgui/MainDocument.cpp:2527
+msgid "Postponed"
+msgstr "Отложени"
 
-#: MainDocument.cpp:2540
-msgid " (Waiting for network access)"
-msgstr " (Изчакване за достъп до мрежата)"
+#: clientgui/MainDocument.cpp:2531
+msgid "Waiting for network access"
+msgstr "Изчакване на достъп до мрежата"
 
-#: MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Изчислителна грешка"
 
-#: MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Изпращането неуспешно"
 
-#: MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Изпращане"
 
-#: MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Прекратена от потребителя"
 
-#: MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Прекратена от проекта"
 
-#: MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Прекратена: не е стартирана преди крайния срок"
 
-#: MainDocument.cpp:2570
-msgid "Aborted: disk limit exceeded"
-msgstr "Прекратена: надхвърлен лимит на диска"
+#: clientgui/MainDocument.cpp:2561
+msgid "Aborted: task disk limit exceeded"
+msgstr "Прекратена: надхвърлен лимит за задачи на диска"
 
-#: MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Прекратена: надхвърлен работен лимит от време"
 
-#: MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Прекратена: надхвърлен лимит памет"
 
-#: MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Прекратена"
 
-#: MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Придобита"
 
-#: MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Готова за докладване"
 
-#: MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Грешка: невалидно състояние '%d'"
 
-#: NoInternetConnectionPage.cpp:179
+#: clientgui/NoInternetConnectionPage.cpp:179
 msgid "No Internet connection"
 msgstr "Няма връзка с Интернет"
 
-#: NoInternetConnectionPage.cpp:182
+#: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
 msgstr "Моля свържете се с Интернет и опитайте отново."
 
-#: NotDetectedPage.cpp:181
+#: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
 msgstr "Проекта не е намерен"
 
-#: NotDetectedPage.cpp:184
+#: clientgui/NotDetectedPage.cpp:184
 msgid ""
 "The URL you supplied is not that of a BOINC-based project.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
-"URL-то, което предоставихте, не е на BOINC-базиран проект.\n"
-"\n"
-"Моля проверете URL-то и опитайте отново."
+msgstr "URL-то, което предоставихте, не е на BOINC-базиран проект.\n\nМоля проверете URL-то и опитайте отново."
 
-#: NotDetectedPage.cpp:188
+#: clientgui/NotDetectedPage.cpp:188
 msgid "Account manager not found"
 msgstr "Акаунт мениджър не е намерен"
 
-#: NotDetectedPage.cpp:191
+#: clientgui/NotDetectedPage.cpp:191
 msgid ""
 "The URL you supplied is not that of a BOINC-based account\n"
 "manager.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
-"URL-то, което предоставихте, не е на BOINC-базиран акаунт\n"
-"мениджър.\n"
-"\n"
-"Моля проверете URL-то и опитайте отново."
+msgstr "URL-то, което предоставихте, не е на BOINC-базиран акаунт\nмениджър.\n\nМоля проверете URL-то и опитайте отново."
 
-#: NotFoundPage.cpp:181
+#: clientgui/NotFoundPage.cpp:181
 msgid "Login Failed."
 msgstr "Входа е Неуспешен."
 
-#: NotFoundPage.cpp:185
+#: clientgui/NotFoundPage.cpp:185
 msgid "Check the username and password, and try again."
 msgstr "Проверете потребителското име и парола и опитайте отново."
 
-#: NotFoundPage.cpp:189
+#: clientgui/NotFoundPage.cpp:189
 msgid "Check the email address and password, and try again."
 msgstr "Проверете имейл адреса и паролата, и опитайте отново."
 
-#: NoticeListCtrl.cpp:222
+#: clientgui/NoticeListCtrl.cpp:229
 msgid "more..."
 msgstr "още..."
 
-#: ProjectInfoPage.cpp:477 ProjectInfoPage.cpp:778 ProjectInfoPage.cpp:782
-msgid "All"
-msgstr "Всички"
-
-#: ProjectInfoPage.cpp:615
+#: clientgui/ProjectInfoPage.cpp:221
 msgid "Choose a project"
 msgstr "Изберете проект"
 
-#: ProjectInfoPage.cpp:619
+#: clientgui/ProjectInfoPage.cpp:226
 msgid "To choose a project, click its name or type its URL below."
-msgstr ""
-"За да изберете проект, натиснете на неговото име или напишете URL-то му "
-"отдолу."
+msgstr "За да изберете проект, натиснете на неговото име или напишете URL-то му отдолу."
 
-#: ProjectInfoPage.cpp:623
+#: clientgui/ProjectInfoPage.cpp:242
 msgid "Categories:"
 msgstr "Категории:"
 
-#: ProjectInfoPage.cpp:627 sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Проекти:"
 
-#: ProjectInfoPage.cpp:631
+#: clientgui/ProjectInfoPage.cpp:274
 msgid "Project details"
 msgstr "Подробности за проекта"
 
-#: ProjectInfoPage.cpp:635
+#: clientgui/ProjectInfoPage.cpp:284
 msgid "Research area:"
 msgstr "Сфера на проучване:"
 
-#: ProjectInfoPage.cpp:639
+#: clientgui/ProjectInfoPage.cpp:294
 msgid "Organization:"
 msgstr "Организация:"
 
-#: ProjectInfoPage.cpp:643
+#: clientgui/ProjectInfoPage.cpp:304
 msgid "Web site:"
 msgstr "Интернет страница:"
 
-#: ProjectInfoPage.cpp:647
+#: clientgui/ProjectInfoPage.cpp:315
 msgid "Supported systems:"
 msgstr "Поддържани системи:"
 
-#: ProjectInfoPage.cpp:651
+#: clientgui/ProjectInfoPage.cpp:352
 msgid "Project URL:"
 msgstr "URL на Проекта:"
 
-#: ProjectInfoPage.cpp:826
+#: clientgui/ProjectInfoPage.cpp:486 clientgui/ProjectInfoPage.cpp:686
+#: clientgui/ProjectInfoPage.cpp:690
+msgid "All"
+msgstr "Всички"
+
+#: clientgui/ProjectInfoPage.cpp:735
 msgid ""
 "This project may not have work for your type of computer.  Do you want to "
 "add it anyway?"
-msgstr ""
-"Този проект може да няма работа за вашия тип компютър.  Искате ли да го "
-"добавите все пак?"
+msgstr "Този проект може да няма работа за вашия тип компютър.  Искате ли да го добавите все пак?"
 
-#: ProjectInfoPage.cpp:850
+#: clientgui/ProjectInfoPage.cpp:767
 msgid "You already added this project. Please choose a different project."
 msgstr "Вече сте добавили този проект. Моля изберете различен проект."
 
-#: ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Комуникация с проект."
+#: clientgui/ProjectProcessingPage.cpp:321
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Комуникация с проекта\nМоля изчакайте..."
 
-#: ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Необходимите файлове не са намерени на сървъра."
 
-#: ProjectProcessingPage.cpp:512 ProjectProcessingPage.cpp:574
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Възникна вътрешна грешка на сървъра."
 
-#: ProjectPropertiesPage.cpp:334
+#: clientgui/ProjectWelcomePage.cpp:251
+#, c-format
+msgid "Welcome to %s."
+msgstr "Добре дошли в %s."
+
+#: clientgui/ProjectWelcomePage.cpp:254
+msgid "You have volunteered to compute for this project:"
+msgstr "Избрали сте да участвате доброволно в този проект:"
+
+#: clientgui/ProjectWelcomePage.cpp:255
+msgid "Name:"
+msgstr "Име:"
+
+#: clientgui/ProjectWelcomePage.cpp:258
+msgid "Home:"
+msgstr "Вкъщи:"
+
+#: clientgui/ProjectWelcomePage.cpp:262
+msgid "Description:"
+msgstr "Описание:"
+
+#: clientgui/ProjectWelcomePage.cpp:265
+msgid "URL:"
+msgstr "URL:"
+
+#: clientgui/ProjectWelcomePage.cpp:268
+msgid "User:"
+msgstr "Потребител:"
+
+#: clientgui/ProjectWelcomePage.cpp:273
 msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr ""
-"Комуникация с проекта\n"
-"Моля изчакайте..."
+"WARNING: This project is not registered with BOINC.  Make sure you trust it "
+"before continuing."
+msgstr "ВНИМАНИЕ: Този проект не е регистриран с BOINC. Уверете се, че му имате доверие преди да продължите."
+
+#: clientgui/ProjectWelcomePage.cpp:277
+msgid "To continue, click Next."
+msgstr "За да продължите, натиснете Напред."
 
-#: ProxyInfoPage.cpp:195
+#: clientgui/ProxyInfoPage.cpp:195
 msgid "Network communication failure"
 msgstr "Неуспешно свързване"
 
-#: ProxyInfoPage.cpp:199
+#: clientgui/ProxyInfoPage.cpp:199
 msgid ""
 "The World Community Grid - BOINC software failed to communicate\n"
 "over the Internet. The most likely reasons are:\n"
@@ -2642,22 +2820,9 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
-"Софтуера между The World Community Grid - BOINC не успя да се свърже\n"
-"през Интернет. Най-вероятните причини са:\n"
-"\n"
-"1) Проблем със свързването.  Проверете вашата мрежова или модемна връзка\n"
-"и тогава натиснете Назад за да опитате отново.\n"
-"\n"
-"2) Личен защитен антивирусен софтуер блокира софтуера между World Community\n"
-"Grid - BOINC.  Настройте вашата лична защитна стена да позволява на\n"
-"BOINC и на BOINC Мениджър да комуникират на порт 80 и на порт 443,\n"
-"след това натиснете Назад за да опитате отново.\n"
-"\n"
-"3) Вие използвате прокси сървър.\n"
-"Натиснете Напред за да зададете настройките на проксито на BOINC програмата."
+msgstr "Софтуера между The World Community Grid - BOINC не успя да се свърже\nпрез Интернет. Най-вероятните причини са:\n\n1) Проблем със свързването.  Проверете вашата мрежова или модемна връзка\nи тогава натиснете Назад за да опитате отново.\n\n2) Личен защитен антивирусен софтуер блокира софтуера между World Community\nGrid - BOINC.  Настройте вашата лична защитна стена да позволява на\nBOINC и на BOINC Мениджър да комуникират на порт 80 и на порт 443,\nслед това натиснете Назад за да [...]
 
-#: ProxyInfoPage.cpp:203
+#: clientgui/ProxyInfoPage.cpp:203
 msgid ""
 "BOINC failed to communicate on the Internet.\n"
 "The most likely reasons are:\n"
@@ -2672,2091 +2837,991 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
-"BOINC не успя да се свърже през Интернет.\n"
-"Най-вероятните причини са:\n"
-"\n"
-"1) Проблем със свързването.  Проверете вашата мрежова\n"
-"или модемна връзка и тогава натиснете Назад за да опитате отново.\n"
-"\n"
-"2) Личен защитен антивирусен софтуер блокира BOINC.\n"
-"Настройте вашата лична защитна стена да позволява на BOINC и на\n"
-"BOINC Мениджър да комуникират на порт 80,\n"
-"тогава натиснете Назад за да опитате отново.\n"
-"\n"
-"3) Вие използвате прокси сървър.\n"
-"Натиснете Напред за да зададете настройките на проксито на BOINC програмата."
+msgstr "BOINC не успя да се свърже през Интернет.\nНай-вероятните причини са:\n\n1) Проблем със свързването.  Проверете вашата мрежова\nили модемна връзка и тогава натиснете Назад за да опитате отново.\n\n2) Личен защитен антивирусен софтуер блокира BOINC.\nНастройте вашата лична защитна стена да позволява на BOINC и на\nBOINC Мениджър да комуникират на порт 80,\nтогава натиснете Назад за да опитате отново.\n\n3) Вие използвате прокси сървър.\nНатиснете Напред за да зададете настройките  [...]
 
-#: ProxyPage.cpp:331
+#: clientgui/ProxyPage.cpp:331
 msgid "Proxy configuration"
 msgstr "Прокси настройки"
 
-#: ProxyPage.cpp:334
+#: clientgui/ProxyPage.cpp:334
 msgid "HTTP proxy"
 msgstr "HTTP прокси"
 
-#: ProxyPage.cpp:337 ProxyPage.cpp:357
+#: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
 msgid "Server:"
 msgstr "Сървър:"
 
-#: ProxyPage.cpp:350
+#: clientgui/ProxyPage.cpp:350
 msgid "Autodetect"
 msgstr "Автоматично засичане"
 
-#: ProxyPage.cpp:354
+#: clientgui/ProxyPage.cpp:354
 msgid "SOCKS proxy"
 msgstr "SOCKS прокси"
 
-#: TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Условия за Ползване"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Скин"
 
-#: TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Моля прочетете следните условия за ползване:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Изберете изгледа на потребителския интерфейс."
 
-#: TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Съгласен съм с условията на ползване."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Разширен Изглед...\t Ctrl+Shift+A"
 
-#: TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Показване на разширения графичен интерфейс."
 
-#: UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Проекта е временно недостъпен"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Конфигурирай опциите на дисплея и настройките на проксито"
 
-#: UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-"Проекта е временно недостъпен.\n"
-"\n"
-"Моля опитайте отново по-късно."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Покажи диагностични съобщения."
 
-#: UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Акаунт мениджъра е временно недостъпен"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-"Акаунт мениджъра е временно недостъпен.\n"
-"\n"
-"Моля опитайте отново по-късно."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "По подразбиране"
 
-#: ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Моля посочете ключ на акаунта, за да продължите."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Временно прекратяване"
 
-#: ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Невалиден Ключ на Акаунта; моля въведете валиден Ключ на Акаунта"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Временно прекратете Изчисленията"
 
-#: ValidateAccountKey.cpp:82 ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Конфликт при потвърждаване"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Подновете Изчисленията"
 
-#: ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Моля посочете имейл адрес"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Известия"
 
-#: ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Невалиден имейл адрес; моля въведете валиден имейл адрес"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Отворете прозорец за да прегледате известията от проектите или от BOINC"
 
-#: ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Липсващ URL"
-
-#: ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr ""
-"Моля посочете URL.\n"
-"Например:\n"
-"http://www.example.com/"
-
-#: ValidateURL.cpp:83 ValidateURL.cpp:87 ValidateURL.cpp:91
-#: ValidateURL.cpp:103 ValidateURL.cpp:107 ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Невалиден URL"
-
-#: ValidateURL.cpp:84 ValidateURL.cpp:88 ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr ""
-"Моля въведете валиден URL.\n"
-"Например:\n"
-"http://boincproject.example.com"
-
-#: ValidateURL.cpp:104 ValidateURL.cpp:108
-#, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' не съдържа валидно име на хост."
-
-#: ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' не съдържа валидна пътека."
-
-#: ViewMessages.cpp:84 ViewProjects.cpp:170 ViewStatistics.cpp:1978
-#: ViewTransfers.cpp:160 ViewWork.cpp:183
-msgid "Commands"
-msgstr "Команди"
-
-#: ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Копирай всички съобщения"
-
-#: ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Копирай избраните съобщения"
-
-#: ViewMessages.cpp:106 ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Покажи само този проект"
-
-#: ViewMessages.cpp:107 ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Покажи само съобщенията от избрания проект."
-
-#: ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Съобщения"
-
-#: ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Копиране на всички съобщения в клип-борда..."
-
-#: ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Копиране на избраните съобщения в клип-борда..."
-
-#: ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Филтриране на съобщения..."
-
-#: ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Покажи всички съобщения"
-
-#: ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Показва съобщенията за всички проекти."
-
-#: ViewNotices.cpp:58 sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Търсене на известия; моля изчакайте..."
-
-#: ViewNotices.cpp:65 sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Няма известия в този момент."
-
-#: ViewNotices.cpp:99 sg_BoincSimpleFrame.cpp:776
-msgid "Notices"
-msgstr "Известия"
-
-#: ViewProjects.cpp:174 sg_ProjectCommandPopup.cpp:61
-msgid "Update"
-msgstr "Обнови проекта"
-
-#: ViewProjects.cpp:175 sg_ProjectCommandPopup.cpp:62
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr ""
-"Докладва всички приключили задачи, получава най-новия кредит, получава "
-"най-новите предпочитания и е възможно да вземе още задачи."
-
-#: ViewProjects.cpp:181 ViewProjects.cpp:722 ViewWork.cpp:208 ViewWork.cpp:801
-#: sg_BoincSimpleFrame.cpp:757 sg_ProjectCommandPopup.cpp:67
-#: sg_ProjectCommandPopup.cpp:113 sg_TaskCommandPopup.cpp:66
-#: sg_TaskCommandPopup.cpp:106
-msgid "Suspend"
-msgstr "Временно прекратяване"
-
-#: ViewProjects.cpp:182 ViewProjects.cpp:722 sg_ProjectCommandPopup.cpp:68
-#: sg_ProjectCommandPopup.cpp:114
-msgid "Suspend tasks for this project."
-msgstr "Временно прекратява задачите по този проект."
-
-#: ViewProjects.cpp:188 ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:73
-#: sg_ProjectCommandPopup.cpp:121
-msgid "No new tasks"
-msgstr "Без нови задачи"
-
-#: ViewProjects.cpp:189 sg_ProjectCommandPopup.cpp:74
-msgid "Don't get new tasks for this project."
-msgstr "Не взимай нови задачи за този проект."
-
-#: ViewProjects.cpp:195 sg_ProjectCommandPopup.cpp:79
-msgid "Reset project"
-msgstr "Нулирай проекта"
-
-#: ViewProjects.cpp:196 sg_ProjectCommandPopup.cpp:80
-msgid ""
-"Delete all files and tasks associated with this project, and get new tasks.  "
-"You can update the project first to report any completed tasks."
-msgstr ""
-"Изтрива всички файлове и задачи асоциирани с този проект, и взима нови "
-"задачи.  Можете първо да обновите проекта, за да докладвате завършените "
-"задачи."
-
-#: ViewProjects.cpp:203 sg_ProjectCommandPopup.cpp:86
-msgid ""
-"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
-"report any completed tasks)."
-msgstr ""
-"Премахва този проект.  Задачите по които се работи ще бъдат изгубени "
-"(използвайте първо 'Обнови' за да докладвате завършените задачи)."
-
-#: ViewProjects.cpp:209 ViewWork.cpp:222 sg_ProjectCommandPopup.cpp:91
-#: sg_TaskCommandPopup.cpp:78
-msgid "Properties"
-msgstr "Свойства"
-
-#: ViewProjects.cpp:210 sg_ProjectCommandPopup.cpp:92
-msgid "Show project details."
-msgstr "Покажи детайли на проекта."
-
-#: ViewProjects.cpp:220 ViewStatistics.cpp:450
-msgid "Account"
-msgstr "Акаунт"
-
-#: ViewProjects.cpp:222
-msgid "Work done"
-msgstr "Извършена работа"
-
-#: ViewProjects.cpp:223
-msgid "Avg. work done"
-msgstr "Средно извършена работа"
-
-#: ViewProjects.cpp:225 ViewTransfers.cpp:188 ViewWork.cpp:234
-msgid "Status"
-msgstr "Статус"
-
-#: ViewProjects.cpp:250
-msgid "Projects"
-msgstr "Проекти"
-
-#: ViewProjects.cpp:302
-msgid "Updating project..."
-msgstr "Обновяване на проект..."
-
-#: ViewProjects.cpp:344
-msgid "Resuming project..."
-msgstr "Подновяване на проект..."
-
-#: ViewProjects.cpp:348
-msgid "Suspending project..."
-msgstr "Временно прекратяване на проект..."
-
-#: ViewProjects.cpp:385
-msgid "Telling project to allow additional task downloads..."
-msgstr "Казва на проекта да позволи взимането на допълнителни задачи..."
-
-#: ViewProjects.cpp:389
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Казва на проекта да не взима допълнителни задачи..."
-
-#: ViewProjects.cpp:425
-msgid "Resetting project..."
-msgstr "Нулиране на проект..."
-
-#: ViewProjects.cpp:438 sg_ProjectCommandPopup.cpp:214
-#, c-format
-msgid "Are you sure you want to reset project '%s'?"
-msgstr "Сигурни ли сте, че искате да нулирате проекта '%s'?"
-
-#: ViewProjects.cpp:444 sg_ProjectCommandPopup.cpp:220
-msgid "Reset Project"
-msgstr "Нулирай Проекта"
-
-#: ViewProjects.cpp:483
-msgid "Removing project..."
-msgstr "Премахване на проект..."
-
-#: ViewProjects.cpp:496 sg_ProjectCommandPopup.cpp:251
-#, c-format
-#, c-format, c-format
-msgid "Are you sure you want to remove project '%s'?"
-msgstr "Сигурни ли сте, че искате да премахнете проект '%s'?"
-
-#: ViewProjects.cpp:502 sg_ProjectCommandPopup.cpp:257
-msgid "Remove Project"
-msgstr "Премахни Проекта"
-
-#: ViewProjects.cpp:543 ViewWork.cpp:599
-msgid "Launching browser..."
-msgstr "Стартиране на браузър..."
-
-#: ViewProjects.cpp:718 sg_ProjectCommandPopup.cpp:111
-msgid "Resume tasks for this project."
-msgstr "Поднови задачите по този проект."
-
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:118
-msgid "Allow new tasks"
-msgstr "Позволи нови задачи"
-
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:119
-msgid "Allow fetching new tasks for this project."
-msgstr "Позволява взимането на нови задачи за този проект."
-
-#: ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:122
-msgid "Don't fetch new tasks for this project."
-msgstr "Не взимай нови задачи за този проект."
-
-#: ViewProjects.cpp:1058
-msgid "Requested by user"
-msgstr "По желание на потребителя"
-
-#: ViewProjects.cpp:1059
-msgid "To fetch work"
-msgstr "За да изтегли работа"
-
-#: ViewProjects.cpp:1060
-msgid "To report completed tasks"
-msgstr "За да докладва приключени задачи"
-
-#: ViewProjects.cpp:1061
-msgid "To send trickle-up message"
-msgstr "За да изпрати изходящо съобщение"
-
-#: ViewProjects.cpp:1062
-msgid "Requested by account manager"
-msgstr "По желание на акаунт мениджъра"
-
-#: ViewProjects.cpp:1063
-msgid "Project initialization"
-msgstr "Инициализация на проекта"
-
-#: ViewProjects.cpp:1064
-msgid "Requested by project"
-msgstr "По желание на проекта"
-
-#: ViewProjects.cpp:1065
-msgid "Unknown reason"
-msgstr "Неизвестна причина"
-
-#: ViewProjects.cpp:1079
-msgid "Suspended by user"
-msgstr "Временно прекратено от потребителя"
-
-#: ViewProjects.cpp:1082
-msgid "Won't get new tasks"
-msgstr "Няма да взима нови задачи"
-
-#: ViewProjects.cpp:1085
-msgid "Project ended - OK to remove"
-msgstr "Проектът е приключен - ОК да бъде премахнат"
-
-#: ViewProjects.cpp:1088
-msgid "Will remove when tasks done"
-msgstr "Ще премахне когато задачите са готови"
-
-#: ViewProjects.cpp:1091
-msgid "Scheduler request pending"
-msgstr "Очаква се заявка от Планировчика"
-
-#: ViewProjects.cpp:1097
-msgid "Scheduler request in progress"
-msgstr "Тече заявка от Планировчика"
-
-#: ViewProjects.cpp:1100
-msgid "Trickle up message pending"
-msgstr "Очаква се изходящо съобщение"
-
-#: ViewProjects.cpp:1106
-msgid "Communication deferred "
-msgstr "Връзката е отложена "
-
-#: ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Общо използвано дисково пространство"
-
-#: ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Използвано дисково пространство от BOINC проекти"
-
-#: ViewResources.cpp:116
-msgid "Disk"
-msgstr "Дисково пространство"
-
-#: ViewResources.cpp:249
-msgid "no projects: 0 bytes used"
-msgstr "няма проекти: 0 байта заети"
-
-#: ViewResources.cpp:286
-msgid "used by BOINC: "
-msgstr "използвано от BOINC: "
-
-#: ViewResources.cpp:296
-msgid "free, available to BOINC: "
-msgstr "свободно, достъпно за BOINC: "
-
-#: ViewResources.cpp:306
-msgid "free, not available to BOINC: "
-msgstr "свободно, недостъпно за BOINC: "
-
-#: ViewResources.cpp:316
-msgid "free: "
-msgstr "свободно: "
-
-#: ViewResources.cpp:326
-msgid "used by other programs: "
-msgstr "използвано от други програми: "
-
-#: ViewStatistics.cpp:1205
-msgid "User Total"
-msgstr "Общ кредит на потребителя"
-
-#: ViewStatistics.cpp:1206
-msgid "User Average"
-msgstr "Среден кредит на потребителя"
-
-#: ViewStatistics.cpp:1207
-msgid "Host Total"
-msgstr "Общ кредит на хоста"
-
-#: ViewStatistics.cpp:1208
-msgid "Host Average"
-msgstr "Среден кредит на хоста"
-
-#: ViewStatistics.cpp:1355
-#, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Последно обновяване: преди %.0f дни"
-
-#: ViewStatistics.cpp:1982
-msgid "Show user total"
-msgstr "Покажи общия кредит на потребителя"
-
-#: ViewStatistics.cpp:1983
-msgid "Show total credit for user"
-msgstr "Покажи общия кредит на потребителя"
-
-#: ViewStatistics.cpp:1989
-msgid "Show user average"
-msgstr "Покажи среден кредит на потребителя"
-
-#: ViewStatistics.cpp:1990
-msgid "Show average credit for user"
-msgstr "Покажи среден кредит на потребителя"
-
-#: ViewStatistics.cpp:1996
-msgid "Show host total"
-msgstr "Покажи общ кредит на хоста"
-
-#: ViewStatistics.cpp:1997
-msgid "Show total credit for host"
-msgstr "Покажи общия кредит на хоста"
-
-#: ViewStatistics.cpp:2003
-msgid "Show host average"
-msgstr "Покажи среден кредит на хоста"
-
-#: ViewStatistics.cpp:2004
-msgid "Show average credit for host"
-msgstr "Покажи среден кредит на хоста"
-
-#: ViewStatistics.cpp:2013
-msgid "< &Previous project"
-msgstr "< &Предходен проект"
-
-#: ViewStatistics.cpp:2014
-msgid "Show chart for previous project"
-msgstr "Покажи диаграма за предходния проект"
-
-#: ViewStatistics.cpp:2019
-msgid "&Next project >"
-msgstr "&Следващ проект >"
-
-#: ViewStatistics.cpp:2020
-msgid "Show chart for next project"
-msgstr "Покажи диаграма за следващия проект"
-
-#: ViewStatistics.cpp:2026 ViewStatistics.cpp:2416
-msgid "Hide project list"
-msgstr "Скрий списъка с проекти"
-
-#: ViewStatistics.cpp:2027 ViewStatistics.cpp:2416
-msgid "Use entire area for graphs"
-msgstr "Използвай цялата област за графики"
-
-#: ViewStatistics.cpp:2032
-msgid "Mode view"
-msgstr "Режим изглед"
-
-#: ViewStatistics.cpp:2036
-msgid "One project"
-msgstr "Един проект"
-
-#: ViewStatistics.cpp:2037
-msgid "Show one chart with selected project"
-msgstr "Покажи една диаграма с избрания проект"
-
-#: ViewStatistics.cpp:2043
-msgid "All projects (separate)"
-msgstr "Всички проекти (по отделно)"
-
-#: ViewStatistics.cpp:2044
-msgid "Show all projects, one chart per project"
-msgstr "Покажи всички проекти, с по една диаграма за всеки проект"
-
-#: ViewStatistics.cpp:2050
-msgid "All projects (together)"
-msgstr "Всички проекти (заедно)"
-
-#: ViewStatistics.cpp:2051
-msgid "Show one chart with all projects"
-msgstr "Покажи една диаграма с всички проекти"
-
-#: ViewStatistics.cpp:2057
-msgid "All projects (sum)"
-msgstr "Всички проекти (сума)"
-
-#: ViewStatistics.cpp:2058
-msgid "Show one chart with sum of projects"
-msgstr "Покажи една диаграма със сумата от проектите"
-
-#: ViewStatistics.cpp:2079
-msgid "Statistics"
-msgstr "Статистики"
-
-#: ViewStatistics.cpp:2103 ViewStatistics.cpp:2124 ViewStatistics.cpp:2145
-#: ViewStatistics.cpp:2167 ViewStatistics.cpp:2188 ViewStatistics.cpp:2209
-#: ViewStatistics.cpp:2230 ViewStatistics.cpp:2251 ViewStatistics.cpp:2272
-#: ViewStatistics.cpp:2296
-msgid "Updating charts..."
-msgstr "Обновяване на диаграмите..."
-
-#: ViewStatistics.cpp:2420
-msgid "Show project list"
-msgstr "Покажи списъка с проекти"
-
-#: ViewStatistics.cpp:2420
-msgid "Uses smaller area for graphs"
-msgstr "Използва по-малка област за графики"
-
-#: ViewTransfers.cpp:164
-msgid "Retry Now"
-msgstr "Опитай отново сега"
-
-#: ViewTransfers.cpp:165
-msgid "Retry the file transfer now"
-msgstr "Опитай отново файлов трансфер сега"
-
-#: ViewTransfers.cpp:171
-msgid "Abort Transfer"
-msgstr "Прекрати Трансфер"
-
-#: ViewTransfers.cpp:172
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr ""
-"Прекрати този файлов трансфер.  Вие няма да получите кредит за задачата."
-
-#: ViewTransfers.cpp:183
-msgid "File"
-msgstr "Файл"
-
-#: ViewTransfers.cpp:184 ViewWork.cpp:233
-msgid "Progress"
-msgstr "Прогрес"
-
-#: ViewTransfers.cpp:185
-msgid "Size"
-msgstr "Размер"
-
-#: ViewTransfers.cpp:186
-msgid "Elapsed Time"
-msgstr "Изминало време"
-
-#: ViewTransfers.cpp:187
-msgid "Speed"
-msgstr "Скорост"
-
-#: ViewTransfers.cpp:213
-msgid "Transfers"
-msgstr "Трансфери"
-
-#: ViewTransfers.cpp:280
-msgid "Network activity is suspended - "
-msgstr "Мрежовата активност е временно прекратена - "
-
-#: ViewTransfers.cpp:282
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ""
-".\n"
-"Можете да я активирате с помощта на менюто Дейности."
-
-#: ViewTransfers.cpp:285
-msgid "BOINC"
-msgstr "BOINC"
-
-#: ViewTransfers.cpp:292
-msgid "Retrying transfer now..."
-msgstr "Повторен опит за трансфер сега..."
-
-#: ViewTransfers.cpp:330
-msgid "Aborting transfer..."
-msgstr "Прекъсване на трансфера..."
-
-#: ViewTransfers.cpp:343
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr ""
-"Сигурни ли сте, че искате да прекратите прехвърлянето на този файл '%s'?\n"
-"ВНИМАНИЕ: Прекратяването на трансфера ще направи\n"
-"невалидна задачата и Вие няма да получите кредит за нея."
-
-#: ViewTransfers.cpp:349
-msgid "Abort File Transfer"
-msgstr "Прекъсни Трансфер на Файла"
-
-#: ViewTransfers.cpp:780
-msgid "Upload"
-msgstr "Качване"
-
-#: ViewTransfers.cpp:780
-msgid "Download"
-msgstr "Сваляне"
-
-#: ViewTransfers.cpp:784
-msgid "retry in "
-msgstr "нов опит след "
-
-#: ViewTransfers.cpp:786
-msgid "failed"
-msgstr "неуспешен"
-
-#: ViewTransfers.cpp:789
-msgid "suspended"
-msgstr "временно прекъснат"
-
-#: ViewTransfers.cpp:794
-msgid "active"
-msgstr "активен"
-
-#: ViewTransfers.cpp:796
-msgid "pending"
-msgstr "в очакване"
-
-#: ViewTransfers.cpp:803
-msgid " (project backoff: "
-msgstr " (отстъп на проекта: "
-
-#: ViewWork.cpp:187 ViewWork.cpp:777
-msgid "Show active tasks"
-msgstr "Покажи активните задачи"
-
-#: ViewWork.cpp:188 ViewWork.cpp:778
-msgid "Show only active tasks."
-msgstr "Покажи само активните задачи."
-
-#: ViewWork.cpp:194 sg_TaskCommandPopup.cpp:60
-msgid "Show graphics"
-msgstr "Покажи графики"
-
-#: ViewWork.cpp:195 sg_TaskCommandPopup.cpp:61
-msgid "Show application graphics in a window."
-msgstr "Покажи графиката от приложението в прозорец."
-
-#: ViewWork.cpp:201
-msgid "Show VM Console"
-msgstr "Покажи VM Конзола"
-
-#: ViewWork.cpp:202
-msgid "Show VM Console in a window."
-msgstr "Показва VM Конзола в прозорец."
-
-#: ViewWork.cpp:209
-msgid "Suspend work for this result."
-msgstr "Временно прекрати работа по този резултат."
-
-#: ViewWork.cpp:215 sg_TaskCommandPopup.cpp:72
-msgid "Abort"
-msgstr "Прекрати"
-
-#: ViewWork.cpp:216
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Отказвате се от работа по резултата. Няма да получите кредит за него."
-
-#: ViewWork.cpp:223 sg_TaskCommandPopup.cpp:79
-msgid "Show task details."
-msgstr "Покажи подробности по задачата."
-
-#: ViewWork.cpp:235
-msgid "Elapsed"
-msgstr "Изминало"
-
-#: ViewWork.cpp:236
-msgid "Remaining (estimated)"
-msgstr "Оставащо (предполагаема стойност)"
-
-#: ViewWork.cpp:237
-msgid "Deadline"
-msgstr "Краен срок"
-
-#: ViewWork.cpp:264
-msgid "Tasks"
-msgstr "Задачи"
-
-#: ViewWork.cpp:357
-msgid "Resuming task..."
-msgstr "Подновяване на задача..."
-
-#: ViewWork.cpp:360
-msgid "Suspending task..."
-msgstr "Временно прекратяване на задача..."
-
-#: ViewWork.cpp:389
-msgid "Showing graphics for task..."
-msgstr "Показване на графики за задача..."
-
-#: ViewWork.cpp:426
-msgid "Showing VM console for task..."
-msgstr "Показване на VM конзола за задача..."
-
-#: ViewWork.cpp:479
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr ""
-"Сигурни ли сте, че искате да прекъснете тази задача '%s'?\n"
-"(Прогрес: %s, Статус: %s)"
-
-#: ViewWork.cpp:485
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Сигурни ли сте, че искате да прекъснете тези %d задачи?"
-
-#: ViewWork.cpp:490 sg_TaskCommandPopup.cpp:256
-msgid "Abort task"
-msgstr "Прекрати задача"
-
-# 75%
-#: ViewWork.cpp:499
-msgid "Aborting task..."
-msgstr "Прекратяване на задача..."
-
-#: ViewWork.cpp:771
-msgid "Show all tasks"
-msgstr "Покажи всички задачи"
-
-#: ViewWork.cpp:772
-msgid "Show all tasks."
-msgstr "Покажи всички задачи."
-
-#: ViewWork.cpp:796 sg_TaskCommandPopup.cpp:103
-msgid "Resume work for this task."
-msgstr "Поднови работа по тази задача."
-
-#: ViewWork.cpp:802 sg_TaskCommandPopup.cpp:107
-msgid "Suspend work for this task."
-msgstr "Временно прекрати работа по тази задача."
-
-#: WelcomePage.cpp:284
-msgid "Add project or account manager"
-msgstr "Добавете проект или акаунт мениджър"
-
-#: WelcomePage.cpp:288
-msgid "Add project or use BOINC Account Manager"
-msgstr "Добавете проект или използвайте BOINC Акаунт Мениджър"
-
-#: WelcomePage.cpp:297
-#, c-format
-msgid ""
-"If possible, add projects at the\n"
-"%s web site.\n"
-"\n"
-"Projects added via this wizard will not be\n"
-"listed on or managed via %s."
-msgstr ""
-"По възможност, добавайте проекти с помощта на\n"
-"%s интернет страницата.\n"
-"\n"
-"Проекти добавени чрез този съветник няма да бъдат\n"
-"показани или управлявани чрез %s."
-
-#: WelcomePage.cpp:313
-msgid ""
-"There are over 30 BOINC-based projects\n"
-"doing research in many areas of science,\n"
-"and you can volunteer for as many of them as you like.\n"
-"You can add a project directly,\n"
-"or use an 'Account Manager' web site to select projects."
-msgstr ""
-"Има над 30 BOINC-базирани проекти извършващи\n"
-"проучвания в много области на науката и Вие можете\n"
-"да се включите доброволно в толкова от тях колкото пожелаете.\n"
-"Можете да добавите проект директно,\n"
-"или да използвате Интернет страница на 'Акаунт Мениджър' за да изберете "
-"проекти."
-
-#: WelcomePage.cpp:325
-msgid ""
-"You have chosen to add a new volunteer computing project or change which "
-"projects\n"
-"you contribute to.\n"
-"\n"
-"Some of these projects are run and managed by World Community Grid, while "
-"others\n"
-"are run and managed by other researchers or organizations. The BOINC "
-"software\n"
-"can divide your spare processing power among any combination of projects.\n"
-"\n"
-"Alternatively, if you have registered with a BOINC Account Manager, you can "
-"use\n"
-"this to choose which projects to support.\n"
-"\n"
-"Please choose which type of change you would like to make:\n"
-msgstr ""
-"Вие сте избрали да добавите нов доброволен изчислителен проект или да "
-"промените\n"
-"към кои проекти допринасяте.\n"
-"\n"
-"Някои от тези проекти са стартирани и управлявани от World Community Grid, "
-"докато други\n"
-"са стартирани и управлявани от други изследователи или организации. "
-"Софтуерът BOINC\n"
-"може да разпредели вашата свободна изчислителна мощ за всякаква комбинация "
-"от проекти.\n"
-"\n"
-"Като алтернатива, ако сте се регистрирали с BOINC Акаунт Мениджър, можете да "
-"използвате\n"
-"него за да изберете кои проекти да подкрепите.\n"
-"\n"
-"Моля изберете кой тип промяна искате да направите:\n"
-
-#: WelcomePage.cpp:339
-msgid "Use a BOINC Account Manager"
-msgstr "Използвай BOINC Акаунт Мениджър"
-
-#: WelcomePage.cpp:352
-msgid "To continue, click Next."
-msgstr "За да продължите, натиснете Напред."
-
-#: WelcomePage.cpp:358
-msgid "Add or change your World Community Grid projects"
-msgstr "Добавяйте или променяйте вашите World Community Grid проекти"
-
-#: WelcomePage.cpp:361
-msgid "Add projects run by other researchers or organizations"
-msgstr "Добави проекти управлявани от други изследователи или организации"
-
-#: WizardAttach.cpp:634
-msgid "Do you really want to cancel?"
-msgstr "Сигурни ли сте че искате да се откажете?"
-
-#: WizardAttach.cpp:635
-msgid "Question"
-msgstr "Въпрос"
-
-#: sg_BoincSimpleFrame.cpp:149
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Разширен Изглед...\t Ctrl+Shift+A"
-
-#: sg_BoincSimpleFrame.cpp:150
-msgid "Display the advanced graphical interface."
-msgstr "Показване на разширения графичен интерфейс."
-
-#: sg_BoincSimpleFrame.cpp:157
-msgid "Skin"
-msgstr "Скин"
-
-#: sg_BoincSimpleFrame.cpp:159
-msgid "Select the appearance of the user interface."
-msgstr "Изберете изгледа на потребителския интерфейс."
-
-#: sg_BoincSimpleFrame.cpp:206
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
 #, c-format
-msgid "&%s"
-msgstr "&%s"
-
-#: sg_BoincSimpleFrame.cpp:390
-msgid "Default"
-msgstr "По подразбиране"
-
-#: sg_BoincSimpleFrame.cpp:759
-msgid "Suspend Computing"
-msgstr "Временно прекратете Изчисленията"
+msgid "Get help with %s"
+msgstr "Вземи помощ с %s"
 
-#: sg_BoincSimpleFrame.cpp:760
-msgid "Resume Computing"
-msgstr "Подновете Изчисленията"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Търсене на известия; моля изчакайте..."
 
-#: sg_BoincSimpleFrame.cpp:777
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Отворете прозорец за да прегледате известията от проектите или от BOINC"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Няма известия в този момент."
 
-#: sg_DlgMessages.cpp:146
+#: clientgui/sg_DlgMessages.cpp:146
 msgid "Close"
 msgstr "Затвори"
 
-#: sg_DlgMessages.cpp:389
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
 msgid "%s - Notices"
 msgstr "%s - Известия"
 
-#: sg_DlgPreferences.cpp:268
-msgid "This dialog controls preferences for this computer only."
-msgstr "Този диалог контролира предпочитанията само за този компютър."
-
-#: sg_DlgPreferences.cpp:273
-msgid "Click OK to set preferences."
-msgstr "Натиснете ОК за да зададете предпочитания."
-
-#: sg_DlgPreferences.cpp:278
-msgid ""
-"Click Clear to restore web-based settings for all preferences listed below."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:285
+#: clientgui/sg_DlgPreferences.cpp:208
 msgid ""
 "For additional settings, select Computing Preferences in the Advanced View."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:313
-msgid "Do work only between:"
-msgstr "Извършвай работа само между:"
+msgstr "За допълнителни настройки, изберете Изчислителни предпочитания от Разширен Изглед."
 
-#: sg_DlgPreferences.cpp:335
-msgid "Connect to internet only between:"
-msgstr "Свързвай се с интернет само между:"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "ГБ дисково пространство"
 
-#: sg_DlgPreferences.cpp:357 sg_DlgPreferences.cpp:374
-msgid "Use no more than:"
-msgstr "Не използвай повече от:"
-
-#: sg_DlgPreferences.cpp:370
-msgid "of disk space"
-msgstr "дисково пространство"
-
-#: sg_DlgPreferences.cpp:387
-msgid "of the processor"
-msgstr "от процесора"
-
-#: sg_DlgPreferences.cpp:391
-msgid "Do work while on battery?"
-msgstr "Да извършва ли работа докато е на батерии?"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Изчислителни предпочитания"
 
-#: sg_DlgPreferences.cpp:404
-msgid "Do work after idle for:"
-msgstr "Извършвай работа след като си бил неактивен за:"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Изчистете всички локални предпочитания и използвайте уеб-базираните?"
 
-#: sg_DlgPreferences.cpp:429
-msgid "Clear all local preferences listed above and close the dialog"
-msgstr ""
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
+msgid "Update"
+msgstr "Обнови проекта"
 
-#: sg_DlgPreferences.cpp:602 sg_DlgPreferences.cpp:605
-#: sg_DlgPreferences.cpp:681 sg_DlgPreferences.cpp:685
-#: sg_DlgPreferences.cpp:697 sg_DlgPreferences.cpp:701
-#: sg_DlgPreferences.cpp:844 sg_DlgPreferences.cpp:855
-msgid "Anytime"
-msgstr "По всяко време"
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
+msgid ""
+"Report all completed tasks, get latest credit, get latest preferences, and "
+"possibly get more tasks."
+msgstr "Докладва всички приключили задачи, получава най-новия кредит, получава най-новите предпочитания и е възможно да вземе още задачи."
 
-#: sg_DlgPreferences.cpp:638
-msgid "100 MB"
-msgstr "100 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:73
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
+msgid "Suspend tasks for this project."
+msgstr "Временно прекратява задачите по този проект."
 
-#: sg_DlgPreferences.cpp:639
-msgid "200 MB"
-msgstr "200 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
+msgid "No new tasks"
+msgstr "Без нови задачи"
 
-#: sg_DlgPreferences.cpp:640
-msgid "500 MB"
-msgstr "500 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
+msgid "Don't get new tasks for this project."
+msgstr "Не взимай нови задачи за този проект."
 
-#: sg_DlgPreferences.cpp:641
-msgid "1 GB"
-msgstr "1 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
+msgid "Reset project"
+msgstr "Нулирай проекта"
 
-#: sg_DlgPreferences.cpp:642
-msgid "2 GB"
-msgstr "2 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
+msgid ""
+"Delete all files and tasks associated with this project, and get new tasks."
+"  You can update the project first to report any completed tasks."
+msgstr "Изтрива всички файлове и задачи асоциирани с този проект, и взима нови задачи.  Можете първо да обновите проекта, за да докладвате завършените задачи."
 
-#: sg_DlgPreferences.cpp:643
-msgid "5 GB"
-msgstr "5 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
+msgid ""
+"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
+"report any completed tasks)."
+msgstr "Премахва този проект.  Задачите по които се работи ще бъдат изгубени (използвайте първо 'Обнови' за да докладвате завършените задачи)."
 
-#: sg_DlgPreferences.cpp:644
-msgid "10 GB"
-msgstr "10 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:96
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
+msgid "Properties"
+msgstr "Свойства"
 
-#: sg_DlgPreferences.cpp:645
-msgid "20 GB"
-msgstr "20 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
+msgid "Show project details."
+msgstr "Покажи детайли на проекта."
 
-#: sg_DlgPreferences.cpp:646
-msgid "50 GB"
-msgstr "50 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Поднови задачите по този проект."
 
-#: sg_DlgPreferences.cpp:647
-msgid "100 GB"
-msgstr "100 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Позволи нови задачи"
 
-#: sg_DlgPreferences.cpp:717
-#, c-format
-msgid "%d MB"
-msgstr "%d MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Позволява взимането на нови задачи за този проект."
 
-#: sg_DlgPreferences.cpp:719
-#, c-format
-msgid "%4.2f GB"
-msgstr "%4.2f GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Не взимай нови задачи за този проект."
 
-#: sg_DlgPreferences.cpp:760
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
-msgid "%d%%"
-msgstr "%d%%"
+msgid "Are you sure you want to reset project '%s'?"
+msgstr "Сигурни ли сте, че искате да нулирате проекта '%s'?"
 
-#: sg_DlgPreferences.cpp:796
-msgid "0 (Run Always)"
-msgstr "0 (Работи Винаги)"
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
+msgid "Reset Project"
+msgstr "Нулирай Проекта"
 
-#: sg_DlgPreferences.cpp:799
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
-msgid "%d"
-msgstr "%d"
+msgid "Are you sure you want to remove project '%s'?"
+msgstr "Сигурни ли сте, че искате да премахнете проект '%s'?"
 
-#: sg_DlgPreferences.cpp:1029
-msgid "Do you really want to clear all local preferences?\n"
-msgstr "Наистина ли искате да изчистите всички локални предпочитания?\n"
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
+msgid "Remove Project"
+msgstr "Премахни Проекта"
 
-#: sg_ProjectPanel.cpp:72
+#: clientgui/sg_ProjectPanel.cpp:73
 msgid "Add Project"
 msgstr "Добави Проект"
 
-#: sg_ProjectPanel.cpp:73
+#: clientgui/sg_ProjectPanel.cpp:74
 msgid "Synchronize"
 msgstr "Синхронизирай"
 
-#: sg_ProjectPanel.cpp:74
+#: clientgui/sg_ProjectPanel.cpp:75
 msgid "Work done for this project"
 msgstr "Работа приключена за този проект"
 
-#: sg_ProjectPanel.cpp:77
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Стани доброволец за някои или за всички 30+ проекта в много области на науката"
+
+#: clientgui/sg_ProjectPanel.cpp:78
 msgid "Synchronize projects with account manager system"
 msgstr "Синхронизирайте проекти със системата на акаунт мениджър"
 
-#: sg_ProjectPanel.cpp:124
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
 msgid "Select a project to access with the controls below"
 msgstr "Изберете проект до който да имате достъп със контролерите по-долу"
 
-# 88%
-#: sg_ProjectPanel.cpp:145
+#: clientgui/sg_ProjectPanel.cpp:146
 msgid "Project Web Pages"
 msgstr "Интернет Страници на Проекта"
 
-#: sg_ProjectPanel.cpp:149
+#: clientgui/sg_ProjectPanel.cpp:150
 msgid "Project Commands"
 msgstr "Команди на Проекта"
 
-#: sg_ProjectPanel.cpp:267
+#: clientgui/sg_ProjectPanel.cpp:279
 #, c-format
 msgid "Pop up a menu of web sites for project %s"
-msgstr ""
+msgstr "Показване на меню с уебстраници за проект %s"
 
-#: sg_ProjectPanel.cpp:269
+#: clientgui/sg_ProjectPanel.cpp:281
 #, c-format
 msgid "Pop up a menu of commands to apply to project %s"
 msgstr "Появява се меню с команди, които да прилагате за проект %s"
 
-#: sg_TaskCommandPopup.cpp:67
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Покажи графики"
+
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Покажи графиката от приложението в прозорец."
+
+#: clientgui/sg_TaskCommandPopup.cpp:73
 msgid "Suspend this task."
 msgstr "Временно прекрати тази задача."
 
-#: sg_TaskCommandPopup.cpp:73
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Прекрати"
+
+#: clientgui/sg_TaskCommandPopup.cpp:79
 msgid "Abandon this task. You will get no credit for it."
 msgstr "Изоставя тази задача. Вие няма да получите кредит за нея."
 
-#: sg_TaskCommandPopup.cpp:251
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Покажи подробности по задачата."
+
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Поднови работа по тази задача."
+
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Временно прекрати работа по тази задача."
+
+#: clientgui/sg_TaskCommandPopup.cpp:267
 #, c-format
-#, c-format, c-format
 msgid ""
 "Are you sure you want to abort this task '%s'?\n"
 "(Progress: %.1lf%%, Status: %s)"
-msgstr ""
-"Сугурни ли сте, че искате да прекратите тази задача '%s'?\n"
-"(Прогрес: %.1lf%%, Статус: %s)"
+msgstr "Сугурни ли сте, че искате да прекратите тази задача '%s'?\n(Прогрес: %.1lf%%, Статус: %s)"
+
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Прекрати задача"
 
-#: sg_TaskPanel.cpp:464
+#: clientgui/sg_TaskPanel.cpp:469
 msgid "You don't have any projects.  Please Add a Project."
 msgstr "Нямате добавени проекти.  Моля Добавете Проект."
 
-#: sg_TaskPanel.cpp:465
+#: clientgui/sg_TaskPanel.cpp:470
 msgid "Not available"
 msgstr "Няма на разположение"
 
-#: sg_TaskPanel.cpp:476
+#: clientgui/sg_TaskPanel.cpp:481
 msgid "Tasks:"
 msgstr "Задачи:"
 
-#: sg_TaskPanel.cpp:482
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
 msgid "Select a task to access"
 msgstr "Изберете задача, до която да получите достъп"
 
-#: sg_TaskPanel.cpp:493
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
 msgid "From:"
 msgstr "От:"
 
-#: sg_TaskPanel.cpp:547
+#: clientgui/sg_TaskPanel.cpp:553
 msgid "This task's progress"
 msgstr "Прогреса на тази задача"
 
-#: sg_TaskPanel.cpp:565
+#: clientgui/sg_TaskPanel.cpp:571
 msgid "Task Commands"
 msgstr "Команди за Задача"
 
-#: sg_TaskPanel.cpp:566
+#: clientgui/sg_TaskPanel.cpp:572
 msgid "Pop up a menu of commands to apply to this task"
 msgstr "Появява се меню с команди, които да прилагате върху тази задача"
 
-#: sg_TaskPanel.cpp:701
+#: clientgui/sg_TaskPanel.cpp:707
 #, c-format
-#, c-format, c-format
 msgid "Application: %s"
 msgstr "Приложение: %s"
 
-#: sg_TaskPanel.cpp:724
+#: clientgui/sg_TaskPanel.cpp:730
 #, c-format
 msgid "%.3f%%"
 msgstr "%.3f%%"
 
-#: sg_TaskPanel.cpp:732
+#: clientgui/sg_TaskPanel.cpp:738
 msgid "Application: Not available"
 msgstr "Приложение: Няма на разположение"
 
-#: sg_TaskPanel.cpp:832
+#: clientgui/sg_TaskPanel.cpp:839
 msgid "Not Available"
 msgstr "Няма на Разположение"
 
-#: sg_TaskPanel.cpp:847
+#: clientgui/sg_TaskPanel.cpp:854
 #, c-format
 msgid "Elapsed: %s"
 msgstr "Изминало време: %s"
 
-#: sg_TaskPanel.cpp:861
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
 msgid "Remaining (estimated): %s"
 msgstr "Оставащо време (пресметнато): %s"
 
-#: sg_TaskPanel.cpp:876
+#: clientgui/sg_TaskPanel.cpp:883
 #, c-format
 msgid "Status: %s"
 msgstr "Статус: %s"
 
-#: sg_TaskPanel.cpp:1223
+#: clientgui/sg_TaskPanel.cpp:1217
 msgid "Retrieving current status."
 msgstr "Изтегляне на текущия статус."
 
-#: sg_TaskPanel.cpp:1229
+#: clientgui/sg_TaskPanel.cpp:1223
 msgid "Downloading work from the server."
 msgstr "Изтегляне на работа от сървъра."
 
-#: sg_TaskPanel.cpp:1234
+#: clientgui/sg_TaskPanel.cpp:1228
 msgid "Processing Suspended:  Running On Batteries."
 msgstr "Процесите са Временно Прекратени:  Работи се На Батерии."
 
-#: sg_TaskPanel.cpp:1236
+#: clientgui/sg_TaskPanel.cpp:1230
 msgid "Processing Suspended:  User Active."
 msgstr "Процесите са Временно Прекратени:  Потребителя е Активен."
 
-#: sg_TaskPanel.cpp:1238
+#: clientgui/sg_TaskPanel.cpp:1232
 msgid "Processing Suspended:  User paused processing."
-msgstr ""
-"Процесите са Временно Прекратени:  Потребителят спря на пауза процесите."
+msgstr "Процесите са Временно Прекратени:  Потребителят спря на пауза процесите."
 
-#: sg_TaskPanel.cpp:1240
+#: clientgui/sg_TaskPanel.cpp:1234
 msgid "Processing Suspended:  Time of Day."
 msgstr "Процесите са Временно Прекратени:  Ограничителни Часове."
 
-#: sg_TaskPanel.cpp:1242
+#: clientgui/sg_TaskPanel.cpp:1236
 msgid "Processing Suspended:  Benchmarks Running."
-msgstr ""
-"Процесите са Временно Прекратени:  Изчисляват се Референтните Показатели."
+msgstr "Процесите са Временно Прекратени:  Изчисляват се Референтните Показатели."
+
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Обработката прекратена:  необходимо е дисково пространство."
 
-#: sg_TaskPanel.cpp:1244
+#: clientgui/sg_TaskPanel.cpp:1240
 msgid "Processing Suspended."
 msgstr "Процесите са Временно Прекратени."
 
-#: sg_TaskPanel.cpp:1248
+#: clientgui/sg_TaskPanel.cpp:1244
 msgid "Waiting to contact project servers."
 msgstr "Изчаква за свързване със сървърите на проекта."
 
-#: sg_TaskPanel.cpp:1252 sg_TaskPanel.cpp:1261
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
 msgid "Retrieving current status"
 msgstr "Извличане на текущ статус"
 
-#: sg_TaskPanel.cpp:1256
+#: clientgui/sg_TaskPanel.cpp:1252
 msgid "No work available to process"
 msgstr "Няма налична работа за обработване"
 
-#: sg_TaskPanel.cpp:1258
+#: clientgui/sg_TaskPanel.cpp:1254
 msgid "Unable to connect to the core client"
 msgstr "Не може да се свърже с централния клиент"
 
-#: wizardex.cpp:377 wizardex.cpp:553
-msgid "&Next >"
-msgstr "На&пред >"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Условия за Ползване"
 
-#: wizardex.cpp:383
-msgid "< &Back"
-msgstr "< На&зад"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Моля прочетете следните условия за ползване:"
 
-#: wizardex.cpp:553
-msgid "&Finish"
-msgstr "&Приключи"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Съгласен съм с условията на ползване."
 
-#: mac/Mac_GUI.cpp:110
-msgid "Preferences…"
-msgstr "Предпочитания…"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Не съм съгласен с условията за ползване."
 
-#: mac/Mac_GUI.cpp:122
-msgid "Services"
-msgstr "Услуги"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Проекта е временно недостъпен"
 
-#: mac/Mac_GUI.cpp:144
-#, c-format
-msgid "Hide %s"
-msgstr "Скрий %s"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Проекта е временно недостъпен.\n\nМоля опитайте отново по-късно."
 
-#: mac/Mac_GUI.cpp:158
-msgid "Hide Others"
-msgstr "Скрий Други"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Акаунт мениджъра е временно недостъпен"
 
-#: mac/Mac_GUI.cpp:172
-msgid "Show All"
-msgstr "Покажи Всички"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Акаунт мениджъра е временно недостъпен.\n\nМоля опитайте отново по-късно."
 
-#: mac/Mac_GUI.cpp:186
-#, c-format
-msgid "Quit %s"
-msgstr "Напусни %s"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Моля посочете ключ на акаунта, за да продължите."
+
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Невалиден Ключ на Акаунта; моля въведете валиден Ключ на Акаунта"
+
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Конфликт при потвърждаване"
+
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Моля посочете имейл адрес"
 
-#~ msgid "I do not agree with the terms of use."
-#~ msgstr "Не съм съгласен с условията на ползване."
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Невалиден имейл адрес; моля въведете валиден имейл адрес"
+
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Липсващ URL"
+
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Моля посочете URL.\nНапример:\nhttp://www.example.com/"
+
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Невалиден URL"
+
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Моля въведете валиден URL.\nНапример:\nhttp://boincproject.example.com"
 
-#~ msgid "Click Clear to restore web-based settings."
-#~ msgstr "Натиснете Изчисти за да възстановите уеб-базираните настройки."
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' не съдържа валидно име на хост."
 
-#~ msgid "For additional settings, select Computing Preferences in "
-#~ msgstr "За допълнителни настройки, изберете Изчислителни Предпочитания в "
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' не съдържа валидна пътека."
 
-#~ msgid "the Advanced View."
-#~ msgstr "Разширеният Изглед."
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Команди"
 
-#~ msgid "Workunit name"
-#~ msgstr "Име на работна единица"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Копирай всички съобщения"
 
-#~ msgid "invalid float"
-#~ msgstr "невалидно число"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Копирай избраните съобщения"
 
-#~ msgid "Display the advanced (accessible) graphical interface."
-#~ msgstr "Покажи разширения (достъпен) графичен интерфейс."
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Покажи само този проект"
 
-#~ msgid "Paused: Other work running"
-#~ msgstr "На Пауза: В ход е друга работа"
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Покажи само съобщенията от избрания проект."
 
-#~ msgid "Paused: User initiated.  Click 'Resume' to continue"
-#~ msgstr ""
-#~ "На Пауза: Активирана от потребителя.  Натиснете 'Подновяване' за да "
-#~ "продължите"
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Съобщения"
 
-#~ msgid "Paused: User active"
-#~ msgstr "На Пауза: Потребителя е активен"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Копиране на всички съобщения в клип-борда..."
 
-#~ msgid "Paused: Computer on battery"
-#~ msgstr "На Пауза: Компютъра работи на батерии"
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Копиране на избраните съобщения в клип-борда..."
 
-#~ msgid "Paused: Time of Day"
-#~ msgstr "На Пауза: Ограничителни Часове"
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Филтриране на съобщения..."
 
-#~ msgid "Paused: Benchmarks running"
-#~ msgstr "На Пауза: Изчисляват се Референтните Показатели"
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Покажи всички съобщения"
 
-#~ msgid "Paused"
-#~ msgstr "На пауза"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Показва съобщенията за всички проекти."
 
-#~ msgid "Paused: Application start delayed"
-#~ msgstr "На Пауза: Отложен старт на приложението"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Акаунт"
 
-#~ msgid "Click to show project graphics"
-#~ msgstr "Натиснете за да покаже графики на проекта"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Извършена работа"
 
-#~ msgid "Open a window to view messages"
-#~ msgstr "Отвори прозорец за преглед на съобщения"
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Средно извършена работа"
 
-#~ msgid "Stop all activity"
-#~ msgstr "Спри всички дейности"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Статус"
 
-#~ msgid "Resume activity"
-#~ msgstr "Поднови всички дейности"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Проекти"
 
-#~ msgid "Open a window to set your preferences"
-#~ msgstr "Отвори прозорец за да зададете вашите предпочитания"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "По желание на потребителя"
 
-#~ msgid "Switch to the BOINC advanced view"
-#~ msgstr "Превключи към разширения изглед на BOINC"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "За да изтегли работа"
 
-# 75%
-# 100%
-#~ msgid "My Projects:"
-#~ msgstr "Моите Проекти:"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "За да докладва приключени задачи"
 
-#, c-format
-#~ msgid "%s. Work done by %s: %0.2f"
-#~ msgstr "%s. Извършена работа от %s: %0.2f"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "За да изпрати изходящо съобщение"
 
-#, c-format
-#~ msgid "%.1lf"
-#~ msgstr "%.1lf"
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "По желание на акаунт мениджъра"
 
-#, c-format
-#~ msgid "%d hr %d min %d sec"
-#~ msgstr "%d ч %d мин %d сек"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Инициализация на проекта"
 
-#~ msgid "Are you sure you want to display graphics on a remote machine?"
-#~ msgstr "Сигурни ли сте, че искате да покажете графики на отдалечена машина?"
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "По желание на проекта"
 
-#~ msgid "Application: "
-#~ msgstr "Приложение: "
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Неизвестна причина"
 
-#~ msgid "Time Remaining: "
-#~ msgstr "Оставащо Време: "
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Временно прекратено от потребителя"
 
-#~ msgid "Elapsed Time: "
-#~ msgstr "Изминало Време: "
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Няма да взима нови задачи"
 
-#~ msgid "Account manager website"
-#~ msgstr "Интернет страница на акаунт мениджъра"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Проектът е приключен - ОК да бъде премахнат"
 
-#~ msgid "Account Manager &URL:"
-#~ msgstr "Акаунт Мениджър &URL:"
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Ще премахне когато задачите са готови"
 
-#, c-format
-#~ msgid "%s &website"
-#~ msgstr "%s &интернет страница"
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Очаква се заявка от Планировчика"
 
-#~ msgid "Notice List"
-#~ msgstr "Известие Списък"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Тече заявка от Планировчика"
 
-#, c-format
-#~ msgid "%s; received on %s"
-#~ msgstr "%s; получено на %s"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Очаква се изходящо съобщение"
 
-#, c-format
-#~ msgid "%s; received from %s; on %s"
-#~ msgstr "%s; получено от %s; на %s"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Комуникацията е отсрочена"
 
-#~ msgid "Click"
-#~ msgstr "Натиснете"
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Общо използвано дисково пространство"
 
-#~ msgid "Project List"
-#~ msgstr "Списък Проекти"
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Използвано дисково пространство от BOINC проекти"
 
-#~ msgid "Nvidia GPU Supported"
-#~ msgstr "Поддържа Nvidia GPU"
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "няма проекти: 0 байта заети"
 
-#~ msgid "ATI GPU Supported"
-#~ msgstr "Поддържа ATI GPU"
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "използвано от BOINC: "
 
-#~ msgid "Project Website"
-#~ msgstr "Интернет страница на Проекта"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "свободно, достъпно за BOINC: "
 
-#~ msgid "One or more items failed to load from the Internet."
-#~ msgstr "Един или повече елементи не успяха да се заредят от Интернет."
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "свободно, недостъпно за BOINC: "
 
-# 88%
-#~ msgid "Retry now"
-#~ msgstr "Опитай отново сега"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "свободно: "
 
-#~ msgid "10%"
-#~ msgstr "10%"
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "използвано от други програми: "
 
-#~ msgid "20%"
-#~ msgstr "20%"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Общ кредит на потребителя"
 
-#~ msgid "30%"
-#~ msgstr "30%"
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Среден кредит на потребителя"
 
-#~ msgid "40%"
-#~ msgstr "40%"
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Общ кредит на хоста"
 
-#~ msgid "50%"
-#~ msgstr "50%"
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Среден кредит на хоста"
 
-#~ msgid "60%"
-#~ msgstr "60%"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Последно обновяване: преди %.0f дни"
 
-#~ msgid "70%"
-#~ msgstr "70%"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Покажи общия кредит на потребителя"
 
-#~ msgid "80%"
-#~ msgstr "80%"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Покажи общия кредит на потребителя"
 
-#~ msgid "90%"
-#~ msgstr "90%"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Покажи среден кредит на потребителя"
 
-#~ msgid "100%"
-#~ msgstr "100%"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Покажи среден кредит на потребителя"
 
-#~ msgid "1"
-#~ msgstr "1"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Покажи общ кредит на хоста"
 
-#~ msgid "3"
-#~ msgstr "3"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Покажи общия кредит на хоста"
 
-#~ msgid "5"
-#~ msgstr "5"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Покажи среден кредит на хоста"
 
-#~ msgid "10"
-#~ msgstr "10"
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Покажи среден кредит на хоста"
 
-#~ msgid "15"
-#~ msgstr "15"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Предходен проект"
 
-#~ msgid "30"
-#~ msgstr "30"
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Покажи диаграма за предходния проект"
 
-#~ msgid "60"
-#~ msgstr "60"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Следващ проект >"
 
-#, c-format
-#~ msgid "Pop up a menu of websites for project %s"
-#~ msgstr "Появява се меню с интернет страници за проекта %s"
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Покажи диаграма за следващия проект"
 
-#~ msgid ""
-#~ "for accessibility support, please select advanced from the view menu or type "
-#~ "command shift a"
-#~ msgstr ""
-#~ "за поддръжка при достъпност, моля изберете за напреднали от менюто изглед "
-#~ "или напишете команда shift A"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Скрий списъка с проекти"
 
-#~ msgid "This panel contains graphs showing user totals for projects"
-#~ msgstr ""
-#~ "Този панел съдържа диаграми показващи общия кредит на потребителя по проекти"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Използвай цялата област за графики"
 
-#~ msgid "list headers"
-#~ msgstr "списък заглавия"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Режим изглед"
 
-#~ msgid "list of events"
-#~ msgstr "списък на събития"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Един проект"
 
-#~ msgid "list of events is empty"
-#~ msgstr "списък на събития е празен"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Покажи една диаграма с избрания проект"
 
-#, c-format
-#~ msgid "list of %s"
-#~ msgstr "списък на %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Всички проекти (по отделно)"
 
-#, c-format
-#~ msgid "list of %s is empty"
-#~ msgstr "списък на %s е празен"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Покажи всички проекти, с по една диаграма за всеки проект"
 
-#, c-format
-#~ msgid "; current sort column %d of %d; descending order; "
-#~ msgstr "; текущо сортиране колона %d от %d; намаляващ ред; "
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Всички проекти (заедно)"
 
-#, c-format
-#~ msgid "; current sort column %d of %d; ascending order; "
-#~ msgstr "; текущо сортиране колона %d от %d; нарастващ ред; "
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Покажи една диаграма с всички проекти"
 
-#, c-format
-#~ msgid "; column %d of %d; "
-#~ msgstr "; колона %d от %d; "
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Всички проекти (сума)"
 
-#~ msgid "list is empty"
-#~ msgstr "списъка е празен"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Покажи една диаграма със сумата от проектите"
 
-#, c-format
-#~ msgid "; row %d; "
-#~ msgstr "; ред %d; "
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Статистики"
 
-#, c-format
-#~ msgid "; selected row %d of %d; "
-#~ msgstr "; избран ред %d от %d; "
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Покажи списъка с проекти"
 
-#, c-format
-#~ msgid "; selected row %d ; "
-#~ msgstr "; избран ред %d ; "
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Използва по-малка област за графики"
 
-#, c-format
-#~ msgid "; row %d of %d; "
-#~ msgstr "; ред %d от %d; "
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Опитай отново сега"
 
-#~ msgid "blank"
-#~ msgstr "празен"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Опитай отново файлов трансфер сега"
 
-#~ msgid "list of projects or account managers"
-#~ msgstr "списък от проекти или акаунт мениджъри"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Прекрати Трансфер"
 
-#, c-format
-#~ msgid "selected row %d of %d; "
-#~ msgstr "избран ред %d от %d; "
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Прекрати този файлов трансфер.  Вие няма да получите кредит за задачата."
 
-#, c-format
-#~ msgid "row %d of %d; "
-#~ msgstr "ред %d от %d; "
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Файл"
 
-#~ msgid "The minimum username length for this project is 1. Please enter a different username."
-#~ msgstr ""
-#~ "Минималната дължина на потребителско име за този проект е 1. Моля въведете "
-#~ "различно потребителско име."
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Прогрес"
 
-#~ msgid "The minimum username length for this account manager is 1. Please enter a different username."
-#~ msgstr ""
-#~ "Минималната дължина на потребителско име за този акаунт мениджър е 1. Моля "
-#~ "въведете различно потребителско име."
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Размер"
 
-#~ msgid "The minimum email address length for this project is 1. Please enter a different email address."
-#~ msgstr ""
-#~ "Минималната дължина на имейл адрес за този проект е 1. Моля въведете "
-#~ "различен имейл адрес."
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Изминало"
 
-#~ msgid "The minimum email address length for this account manager is 1. Please enter a different email address."
-#~ msgstr ""
-#~ "Минималната дължина на имейл адрес за този акаунт мениджър е 1. Моля "
-#~ "въведете различен имейл адрес."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Скорост"
 
-#, c-format
-#~ msgid "The minimum password length for this project is %d. Please enter a different password."
-#~ msgstr ""
-#~ "Минималната дължина на паролата за този проект е %d. Моля въведете друга "
-#~ "парола."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Трансфери"
 
-#, c-format
-#~ msgid "The minimum password length for this account manager is %d. Please enter a different password."
-#~ msgstr ""
-#~ "Минималната дължина на паролата за този акаунт мениджър е %d. Моля въведете "
-#~ "друга парола."
-
-#~ msgid ""
-#~ "An error has occurred;\n"
-#~ "check the Event Log for details.\n"
-#~ "\n"
-#~ "Click Finish to close."
-#~ msgstr ""
-#~ "Появи се грешка;\n"
-#~ "проверете Регистъра на Събитията за подробности.\n"
-#~ "\n"
-#~ "Натиснете Приключи за да затворите прозореца."
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Мрежовата активност е временно прекратена - "
 
-#, no-c-format
-#~ msgid "% of the processors"
-#~ msgstr "% от процесорите"
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nМожете да я активирате с помощта на менюто Дейности."
 
-#, c-format
-#~ msgid "New page inserted. Index = %i"
-#~ msgstr "Вмъкната е нова страница. Индекс = %i"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
+#: clientgui/ViewTransfers.cpp:431
 #, c-format
-#~ msgid "New page appended. Index = %i"
-#~ msgstr "Приложена е нова страница. Индекс = %i"
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Сигурни ли сте, че искате да прекратите прехвърлянето на този файл '%s'?\nВНИМАНИЕ: Прекратяването на трансфера ще направи\nневалидна задачата и Вие няма да получите кредит за нея."
 
-#, c-format
-#~ msgid "Old Page Index = %i"
-#~ msgstr "Стара Страница Индекс = %i"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Прекъсни Трансфер на Файла"
 
-#, c-format
-#~ msgid "OnDropTarget: index by HitTest = %i"
-#~ msgstr "OnDropTarget: index by HitTest = %i"
-
-#~ msgid "Pie Ctrl"
-#~ msgstr "Контрол на Диаграмата"
-
-#~ msgid "specify work start and stop hours in format HH:MM-HH:MM"
-#~ msgstr "посочете часове за започване и спиране на работа във формат ЧЧ:ММ-ЧЧ:ММ"
-
-#~ msgid "specify network usage start and stop hours in format HH:MM-HH:MM"
-#~ msgstr ""
-#~ "посочете часове за започване и спиране на използване на мрежата във формат "
-#~ "ЧЧ:ММ-ЧЧ:ММ"
-
-#~ msgid "Identify your account "
-#~ msgstr "Идентифицирайте Вашия акаунт "
-
-#~ msgid "Read config file"
-#~ msgstr "Прочети конфигуриращия файл"
-
-#~ msgid "Read configuration info from cc_config.xml"
-#~ msgstr "Прочети конфигуриращата информация от cc_config.xml"
-
-#~ msgid ""
-#~ "(C) 2003-2011 University of California, Berkeley.\n"
-#~ "All Rights Reserved."
-#~ msgstr ""
-#~ "(C) 2003-2011 Калифорнийски Университет, Бъркли.\n"
-#~ "Всички Права Запазени."
-
-#~ msgid "NVIDIA GPU"
-#~ msgstr "NVIDIA GPU"
-
-#~ msgid "ATI GPU"
-#~ msgstr "ATI GPU"
-
-#~ msgid "Multicore CPU Supported"
-#~ msgstr "Поддържа Многоядрен CPU"
-
-#~ msgid "%s: %.0f"
-#~ msgstr "%s: %.0f"
-
-#~ msgid "Click 'Retry now' to transfer the file now"
-#~ msgstr "Натиснете \"Опитай отново сега\", за да трансферирате файла сега. "
-
-#~ msgid ""
-#~ "Click 'Abort transfer' to delete the file from the transfer queue. This "
-#~ "will prevent you from being granted credit for this result."
-#~ msgstr ""
-#~ "Натиснете \"Преустанови трансфера\", за да изтриете файла от списъка за "
-#~ "сваляне. По този начин няма да получите кредити за този резултат."
-
-#~ msgid "Aborting result..."
-#~ msgstr "Преустановяване на резултата..."
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Качване"
 
-#~ msgid ""
-#~ "You have chosen to add a new BOINC project.  Adding a new\n"
-#~ "project means that you will be connecting your computer to a new "
-#~ "organization.\n"
-#~ "If this is what you wanted to do, please click on\n"
-#~ "the 'Next' button below.\n"
-#~ "\n"
-#~ "Some projects like World Community Grid run multiple research "
-#~ "applications.\n"
-#~ "If you want to change which research applications are sent to your "
-#~ "computer\n"
-#~ "to run, visit the project's website and modify your\n"
-#~ "preferences there.\n"
-#~ "\n"
-#~ "To change which research applications are sent to you from\n"
-#~ "World Community Grid then please click on the following button:"
-#~ msgstr ""
-#~ "Избрахте да добавите нов BOINC проект.  Добавянето на нов проект\n"
-#~ "означава, че ще свързвате вашия компютър с нова организация.\n"
-#~ "Ако това е което искахте да направите, моля натиснете на\n"
-#~ "бутона 'Напред' по-долу.\n"
-#~ "\n"
-#~ "Някои проекти като например World Community Grid управляват множество\n"
-#~ "изследователски приложения. Ако искате да зададете кои точно "
-#~ "изследователски\n"
-#~ "приложения да се изпращат на вашия компютър за обработка, моля посетете\n"
-#~ "интернет страницата на проекта и настройте вашите предпочитания от там.\n"
-#~ "\n"
-#~ "За да смените кои точно изследователски приложения се изпращат към Вас "
-#~ "от\n"
-#~ "World Community Grid тогава моля натиснете на следния бутон:"
-
-#~ msgid "Change Research Applications at World Community Grid"
-#~ msgstr "Сменете Изследователските Приложения от World Community Grid"
-
-#, fuzzy
-#~ msgid "Don't fetch NVIDIA GPU tasks"
-#~ msgstr "Няма да взима нови задачи"
-
-#, fuzzy
-#~ msgid "Don't fetch ATI GPU tasks"
-#~ msgstr "Няма да взима нови задачи"
-
-#~ msgid "Web sites"
-#~ msgstr "Web сайтове"
-
-#~ msgid "Retrieving host information; please wait..."
-#~ msgstr "Обработвам информацията за хоста; моля изчакайте..."
-
-#~ msgid "Upload pending"
-#~ msgstr "Очаква качване"
-
-#~ msgid "Download pending"
-#~ msgstr "Очаква сваляне"
-
-#~ msgid "Failed to attach to project"
-#~ msgstr "Неуспешно влизане в проекта"
-
-#~ msgid "Failed to attach to account manager"
-#~ msgstr "Неуспех при прикрепянето към акаунт менажера. "
-
-#~ msgid "Attached to account manager"
-#~ msgstr "Прокрепен към акаунт менажер"
-
-#~ msgid "You are now successfully attached to this account manager."
-#~ msgstr "Успешно успяхте да се прикрепите към този акаунт менажер. "
-
-#~ msgid "All projects"
-#~ msgstr "Всички проекти"
-
-#~ msgid "Attach to project"
-#~ msgstr "Влез в проект"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Сваляне"
 
-#~ msgid "Attach to account manager"
-#~ msgstr "Прикрепи Акаунт Менажера"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "нов опит след "
 
-#~ msgid "Attach to a project"
-#~ msgstr "Влез в проект"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "неуспешен"
 
-#~ msgid "Attached to project"
-#~ msgstr "Влязъл в проекта"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "временно прекъснат"
 
-#~ msgid "You are now successfully attached to this project."
-#~ msgstr "Успешно успя да се прикрепиш към този проект. "
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "активен"
 
-#~ msgid "Attached to %s"
-#~ msgstr "Прикрепен към %s"
-
-#~ msgid "Detach"
-#~ msgstr "Излез от проекта"
-
-#~ msgid "Detaching from project..."
-#~ msgstr "Излизане от проекта..."
-
-#~ msgid "Are you sure you want to detach from project '%s'?"
-#~ msgstr "Сигурни ли сте, че искате да излезете от проекта '%s'?"
-
-#~ msgid "Detach from Project"
-#~ msgstr "Излез от проекта"
-
-#~ msgid "To completion"
-#~ msgstr "Остават"
-
-#~ msgid "Attach to a project to begin processing work"
-#~ msgstr "Влез в проект, за да започнеш да обработваш работа"
-
-#~ msgid "%s - Can't find web browser"
-#~ msgstr "%s - Не може да се намери браузър"
-
-#~ msgid ""
-#~ "%s tried to display the web page\n"
-#~ "\t%s\n"
-#~ "but couldn't find a web browser.\n"
-#~ "To fix this, set the environment variable\n"
-#~ "BROWSER to the path of your web browser,\n"
-#~ "then restart the %s."
-#~ msgstr ""
-#~ "%s се опита да покаже уеб страницата\n"
-#~ "\t%s\n"
-#~ "но не можа да намери браузър.\n"
-#~ "За да се оправи, настрой environment променливата\n"
-#~ "BROWSER да е пътят до твоя любим уеб браузър,\n"
-#~ "след това рестартирай %s."
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "в очакване"
 
-#~ msgid "Retrying communications for project(s)..."
-#~ msgstr "Опитвам отново комуникацията с проектите..."
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (отстъп на проекта: "
 
-#~ msgid ""
-#~ "Required wizard file(s) are missing from the target server.\n"
-#~ "(lookup_account.php/create_account.php)\n"
-#~ msgstr ""
-#~ "Нужните файл(ове) за магьосника липсват от избрания сървър. \n"
-#~ "(lookup_account.php/create_account.php)\n"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Покажи активните задачи"
 
-#~ msgid "User information"
-#~ msgstr "Информация за потребителя"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Покажи само активните задачи."
 
-#~ msgid "Account Manager URL"
-#~ msgstr "URL на акаунт менажера:"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Покажи VM Конзола"
 
-#~ msgid "Enter the URL of the account manager's web site."
-#~ msgstr "Въведете URL-то на уеб сайта на акаунт менажера"
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Показва VM Конзола в прозорец."
 
-#~ msgid "Exit the %s"
-#~ msgstr "Излиза от %s. "
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Временно прекрати работа по този резултат."
 
-#~ msgid "Attach to &project"
-#~ msgstr "Влез в проект"
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Отказвате се от работа по резултата. Няма да получите кредит за него."
 
-#~ msgid "Attaching to project..."
-#~ msgstr "Влизане в проект..."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Оставащо (предполагаема стойност)"
 
-#~ msgid "Removal from %s completed."
-#~ msgstr "Премахването от %s е завършено. "
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Краен срок"
 
-#~ msgid "Removal succeeded!"
-#~ msgstr "Премахването узпешно!"
-
-#~ msgid "Debug Flags"
-#~ msgstr "Debug Flags"
-
-#~ msgid "Project Properties Failure"
-#~ msgstr "Грешка при Настройките на Проекта"
-
-#~ msgid "Project Properties URL Failure"
-#~ msgstr "Грешка на URL-то за Настройки на Проекта"
-
-#~ msgid "Account Creation Disabled"
-#~ msgstr "Създаването на акаунти временно преустановено"
-
-#~ msgid "Account Already Exists"
-#~ msgstr "Акаунта вече съществува"
-
-#~ msgid "Project Already Attached"
-#~ msgstr "Проекта вече е добавен. "
-
-#~ msgid "Project Attach Failure"
-#~ msgstr "Грешка при добавянето на проекта"
-
-#~ msgid "Net Detection Failure"
-#~ msgstr "Грешка при установяването на връзка към Интернет"
-
-#~ msgid "You are already attached to this project."
-#~ msgstr "Ти вече си прикрепен към този проект. "
-
-#~ msgid ""
-#~ "Enter the username and password you used on\n"
-#~ "the web site."
-#~ msgstr ""
-#~ "Въведи потребителското име и паролата, които\n"
-#~ "си използвал на уеб сайта. "
-
-#~ msgid ""
-#~ "Enter the email address and password you used on\n"
-#~ "the web site."
-#~ msgstr ""
-#~ "Въведи email адреса и паролата, които си използвал\n"
-#~ "на уеб сайта. "
-
-#~ msgid "Enter account key"
-#~ msgstr "Въведете ключ на акаунта"
-
-#~ msgid ""
-#~ "This project uses an \"account key\" to identify you.\n"
-#~ "\n"
-#~ "Go to the project's web site to create an account. Your account\n"
-#~ "key will be emailed to you."
-#~ msgstr ""
-#~ "Този проект използва \"ключ на акаунта\", за да те идентифицира\n"
-#~ "\n"
-#~ "Отиди на уеб сайта на проекта, за да си създадеш акаунт. Твоят\n"
-#~ "ключ на акунта ще ти бъде пратен по email. "
-
-#~ msgid "An account key looks like:"
-#~ msgstr "Един ключ на акаунта изглежда така:"
-
-#~ msgid "82412313ac88e9a3638f66ea82186948"
-#~ msgstr "82412313ac88e9a3638f66ea82186948"
-
-#~ msgid "Account key:"
-#~ msgstr "Ключ на акаунта:"
-
-#~ msgid ""
-#~ "%s needs a connection to the Internet to perform some maintenance, open "
-#~ "the %s to connect up and perform the needed work."
-#~ msgstr ""
-#~ "%s се нуждае от връзка към Интернет за подръжка, отвори %s, за да се "
-#~ "свържеш и да свършиш неопходимата работа."
-
-#~ msgid ""
-#~ "%s is unable to communicate with a project and no default connection is "
-#~ "specified.\n"
-#~ "Please connect up to the Internet or specify a default connection via the "
-#~ "connections\n"
-#~ "tab in the Options dialog off of the advanced menu."
-#~ msgstr ""
-#~ "%s не можа да комуникира с проект и няма зададена връзка по "
-#~ "подразбиране. \n"
-#~ "Моля свържи се към Интернет или задай връзка по подразбиране от таба "
-#~ "връзки\n"
-#~ "в прозореца с опциите от advanced менюто. "
-
-#~ msgid ""
-#~ "Please provide the email address and password you used to register\n"
-#~ "at GridRepublic. (if you have not yet created an account at\n"
-#~ "GridRepublic, please do so at http://www.gridrepublic.org)"
-#~ msgstr ""
-#~ "Моля въведи email адреса и паролата, които използва при регистрацията\n"
-#~ "в GridRepublic. (ако все още не си си създал акаунт в\n"
-#~ "GridRepublic, моля направи го на http://www.gridrepublic.org)"
-
-#~ msgid "Start Project"
-#~ msgstr "Стартирай проекта"
-
-#~ msgid ""
-#~ "Please enter an email address and password. You will need your email\n"
-#~ "address if you want to change your account options or use our message\n"
-#~ "boards.\n"
-#~ "\n"
-#~ "We will send you occasional emails. You can stop these at any time.\n"
-#~ "We will not pass your email address on to others."
-#~ msgstr ""
-#~ "Моля въведи email адрес и парола. Ти ще имаш нужда от твоя email\n"
-#~ "адрес ако искаш да промениш опциите на акаунта ти или да използваш\n"
-#~ "нашите форуми. \n"
-#~ "\n"
-#~ "От време на време ще ти пращаме email-и. Можеш да спреш това по всяко "
-#~ "време\n"
-#~ "Ние няма да даваме твоя email на трети лица. "
-
-#~ msgid ""
-#~ "Congratulations, you have now successfully started your Climate\n"
-#~ "Change Experiment."
-#~ msgstr ""
-#~ "Поздравления, ти успешно успя да стартираш твоя Climate\n"
-#~ "Change Experiment."
-
-#~ msgid ""
-#~ "Click finish to exit. You will be taken to a web page which tells\n"
-#~ "you more about your model."
-#~ msgstr ""
-#~ "Натисни Край за да излезеш. Ще бъдеш отведен на уеб страница,\n"
-#~ "която ти дава повече информация за твоя модел. "
-
-#~ msgid ""
-#~ "This will shut down your experiment until it restarts automatically\n"
-#~ "following your user preferences. Close window to close the manager\n"
-#~ "without stopping the experiment."
-#~ msgstr ""
-#~ "Това ще прекрати твоя експеримент, докато не се рестартира\n"
-#~ "на база на твоите предпочитания. Затвори прозореца за да затвориш\n"
-#~ "менажера без да спираш задачите."
-
-#~ msgid "%s is currently suspended...\n"
-#~ msgstr "%s е временно прекратен...\n"
-
-#~ msgid "%s networking is currently suspended...\n"
-#~ msgstr "Интернет дейностите на %s са временно прекратени...\n"
-
-#~ msgid "%s is currently reconnecting to a %s client...\n"
-#~ msgstr "%s в момента се свързва отново към %s клиент...\n"
-
-#~ msgid ""
-#~ "A software platform for distributed computing using volunteered computer "
-#~ "resources"
-#~ msgstr ""
-#~ "Софтурна платформа за разпределено изчисление,  използвайки компютърните "
-#~ "ресурси на доброволци. "
-
-#~ msgid "Username:"
-#~ msgstr "Потребит. име:"
-
-#~ msgid "Click here to disable displaying this message in the future."
-#~ msgstr ""
-#~ "Натисни тук, за да изключиш показването на това съобщени за в бъдеще. "
-
-#~ msgid "Language Selection:"
-#~ msgstr "Избор на език:"
-
-#~ msgid "What language should the manager display by default."
-#~ msgstr "Какъв език трябва да използва менажера по подразбиране?"
-
-#~ msgid "Reminder Frequency:"
-#~ msgstr "Честота на напомнянията:"
-
-#~ msgid ""
-#~ "How often, in minutes, should the manager remind you of possible "
-#~ "connection events."
-#~ msgstr ""
-#~ "Колко често, в минути, менажера трябва да ви напомня за възможни дейности "
-#~ "изискващи връзка към Интернет?"
-
-#~ msgid ""
-#~ "Report completed work, get latest credit, get latest preferences, and "
-#~ "possibly get more work."
-#~ msgstr ""
-#~ "Докладва всичката свършена работа, взима последните кредити, взима "
-#~ "последните предпочитрания, и по възмойност сваля нова работа. "
-
-#~ msgid "&Defect from %s"
-#~ msgstr "&Излез от %s"
-
-#~ msgid "&%s\tF1"
-#~ msgstr "&%s\tF1"
-
-#~ msgid ""
-#~ "This will shut down your tasks until it restarts automatically\n"
-#~ "following your user preferences. Close window to close the manager\n"
-#~ "without stopping the tasks."
-#~ msgstr ""
-#~ "Това ще прекрати всички задачи, докато не се рестартират\n"
-#~ "на база на твоите предпочитания. Затвори прозореца за да затвориш\n"
-#~ "менажера без да спираш задачите."
-
-#~ msgid "Close Confirmation"
-#~ msgstr "Затвори потвърждението"
-
-#~ msgid "BOINC Manager - Detach from %s"
-#~ msgstr "BOINC Manager - Излез от %s"
-
-#~ msgid "Account not found"
-#~ msgstr "Акаунта не е намерен"
-
-#~ msgid "Project URL"
-#~ msgstr "URL на Проекта:"
-
-#~ msgid "Enter the URL of the project's web site."
-#~ msgstr "Напишете URL-то на уеб сайта на проекта. "
-
-#~ msgid "For a list of BOINC-based projects go to:"
-#~ msgstr "За списък на BOINC-базирани проекти отидете на:"
-
-#~ msgid "Click Next to configure BOINC's proxy settings."
-#~ msgstr "Натизнете Напред, за да конфигурирате прокси настройките на BOINC. "
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Задачи"
 
-#~ msgid "Disk Space"
-#~ msgstr "Дисково пространство"
-
-#~ msgid "Hide graphics"
-#~ msgstr "Скрий графики"
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Сигурни ли сте, че искате да прекъснете тази задача '%s'?\n(Прогрес: %s, Статус: %s)"
 
-#~ msgid "Hide application graphics window."
-#~ msgstr "Скрива прозореца с графиките на приложението. "
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Сигурни ли сте, че искате да прекъснете тези %d задачи?"
 
-#~ msgid "Preempted"
-#~ msgstr "Изчисленията отложени"
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Покажи всички задачи"
 
-#~ msgid "Ready to run"
-#~ msgstr "Готово за работа"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Покажи всички задачи."
 
-#~ msgid "Activities suspended by user"
-#~ msgstr "Дейностите временно прекратени от потребителя"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Сигурни ли сте че искате да се откажете?"
 
-#~ msgid ""
-#~ "We'll now remove this computer from %s.  You will\n"
-#~ "be responsible for managing the BOINC client software from\n"
-#~ "now on."
-#~ msgstr ""
-#~ "Сега ще премахнем този компютър от %s. Ти ще си\n"
-#~ "отговорен от сега нататък за менажирането на \n"
-#~ "BOINC клиентския софтуер. "
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Въпрос"
 
-#~ msgid ""
-#~ "We'll now guide you through the process of adding an account\n"
-#~ "manager."
-#~ msgstr ""
-#~ "Сега ще те преведем през процесът на добавяне на акаунт\n"
-#~ "менажер. "
+#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
+msgid "&Next >"
+msgstr "На&пред >"
 
-#~ msgid "Project Comm Failure"
-#~ msgstr "Грешка при свързването с Проекта"
+#: clientgui/wizardex.cpp:383
+msgid "< &Back"
+msgstr "< На&зад"
 
-#~ msgid "Google Comm Failure"
-#~ msgstr "Грешка при свързването с Google "
+#: clientgui/wizardex.cpp:553
+msgid "&Finish"
+msgstr "&Приключи"
 
-#~ msgid "Yahoo Comm Failure"
-#~ msgstr "Грешка при свързването с Yahoo "
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Услуги"
 
-#~ msgid "About BOINC Manager"
-#~ msgstr "&Относно BOINC Manager-а..."
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Скрий %s"
 
-#~ msgid "BOINC Manager - Dialup Logon"
-#~ msgstr "BOINC Manager - Dialup връзка"
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Скрий Други"
 
-#~ msgid "BOINC Manager - Options"
-#~ msgstr "BOINC Manager - Опции"
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Покажи Всички"
 
-#~ msgid "BOINC Manager - Select Computer"
-#~ msgstr "BOINC Manager - Избери Компютър"
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Напусни %s"
diff --git a/locale/bg/BOINC-Project-Generic.po b/locale/bg/BOINC-Project-Generic.po
deleted file mode 100755
index d447815..0000000
--- a/locale/bg/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6512 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-09-18 13:54+0000\n"
-"Last-Translator: Dimitar <mexicoman at abv.bg>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: bg\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1379512450.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Български"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Bulgarian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Удебелен текст: [b]текст[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Курсив текст: [i]текст[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Подчертан текст: [u]текст[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Цитиран текст: [quote]текст[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Показване на код: [code]код[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Списък: [list]текст[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Подреден списък: [list=]текст[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Вмъкване на изображение: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Вмъкване на URL: [url]http://url[/url] или [url=http://url]URL текст[/url]  "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Цвят на шрифта"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Цвят на шрифта: [color=red]текст[/color]  Съвет: можете да използвате също "
-"color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Подразбиране"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Тъмно Червен"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Червен"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Оранжев"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Кафяв"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Жълт"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Зелен"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Маслинов"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Синьозелен"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Син"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Тъмно Син"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Индиго"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Виолетов"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Размер на шрифта"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Размер на шрифта: [size=x-small]малък текст[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Малък"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Нормален"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Голям"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Затвори всички отворени bbCode тагове"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Затвори Тагове"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Първо най-старите"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Първо най-новите"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Първо най-високо оценените постове"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Първо най-новия пост"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Повечето прегледи първо"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Повечето публикации първо"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Търси за думи в съобщенията от форума"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Претърси форуми"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Разширено търсене"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Лични съобщения"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Въпроси и Отговори"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Форуми"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 форум"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Предходен"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Следващ"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Изпрати съобщение"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Изпрати %1 лично съобщение"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Присъединен: %1"
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Публикации: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Кредит: %1"
-
-# RAC = САСК - Средно Аритметичен Скорошен Кредит
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "САСК: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Не сте прочели това съобщение все още"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Непрочетен"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Съобщение %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "скрит"
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Публикуван: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr " - в отговор на "
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Редактиране"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Редактирайте това съобщение"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Последно изменен: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Тази публикация не е показана защото подателя е включен във вашия списък с "
-"'игнорирани'.  Натиснете %1тук%2 за да прегледате публикацията"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Докладвайте тази публикация като обидна"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Докладвайте като обидно"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Рейтинг: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "оценете: "
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Натиснете ако харесвате това съобщение"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Оценете +"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Натиснете ако не харесвате това съобщение"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Оценете -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Отговорете"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Публикувайте отговор на това съобщение"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Цитирайте"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Публикувайте отговор като цитирате това съобщение"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Скрито от модератор"
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Публикувано %1 от %2"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Не можете да публикувате или оценявате съобщения докато %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Публикациите трябва да бъдат 'приятелски за дете': не трябва да "
-"съдържат\n"
-"            съдържание което е нецензурно, свързано с омраза,\n"
-"            недвусмислено сексуално изразено или подсказващо.\n"
-"        <li> Никакви търговски реклами.\n"
-"        <li> Никакви препратки към интернет сайтове включващи сексуално "
-"съдържание,\n"
-"            хазартни игри или нетолерантност към другите.\n"
-"        <li> Никакви съобщения насочени да дразнят или антагонизират други "
-"хора,\n"
-"            или такива които не са по темата.\n"
-"        <li> Никакви съобщения които са насочено враждебни или обиждащи.\n"
-"        <li> Никакви обидни коментари включващи раса, религия,\n"
-"            националност, пол, класа или сексуалност.\n"
-"        "
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Правила:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Още информация"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Разкрий"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Разкрий тази публикация"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Скрий"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Скрий тази публикация"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Премести"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Премести тази публикация към друго заглавие"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Маркирай всички заглавия във всички форуми като прочетени."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Средно аритметичен скорошен кредит"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-# 80%
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Изпрати лично съобщение"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-# 83%
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "непрочетен"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-# 93%
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Лично съобщение"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr ""
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-# 92%
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Форум"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Предходен %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Форуми и лични съобщения"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr ""
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr ""
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Изображение което Ви представлява във форумите."
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-# 76%
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Редактирайте вашето съобщение"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-# 81%
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Не сте прочели това заглавие още"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-# 95%
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Въпроси и отговори"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Форуми"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Ако имате въпрос или проблем, моля използвайте секцията %1Въпроси & Отговори"
-"%2 във форумите."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"За да максимизираме дискусиите и потока от информация,\n"
-"нашите форуми се модерират.\n"
-"Публикациите във форумите са обект на следните правила за публикуване:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-# 90%
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "Присъединен %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Присъедини се %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-# 75%
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "текст"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Средно аритметичен скорошен кредит"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Средно аритметичен скорошен кредит"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/bg/BOINC-Setup.mo b/locale/bg/BOINC-Setup.mo
index 40938aa..d0beb1a 100644
Binary files a/locale/bg/BOINC-Setup.mo and b/locale/bg/BOINC-Setup.mo differ
diff --git a/locale/bg/BOINC-Setup.po b/locale/bg/BOINC-Setup.po
old mode 100755
new mode 100644
index d075c5a..3d2756b
--- a/locale/bg/BOINC-Setup.po
+++ b/locale/bg/BOINC-Setup.po
@@ -1,115 +1,102 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Vesselin Stoilov <vesselin91 at gmail.com>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2013-09-11 15:08+0000\n"
-"Last-Translator: Dimitar <mexicoman at abv.bg>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: bg\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-06 14:03+0000\n"
+"Last-Translator: Vesselin Stoilov <vesselin91 at gmail.com>\n"
+"Language-Team: Bulgarian (http://www.transifex.com/boinc/boinc/language/bg/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: bg\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.5.5\n"
-"X-Poedit-SearchPath-0: mac_installer\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
-"X-POOTLE-MTIME: 1378912083.0\n"
-"X-Poedit-KeywordsList: _\n"
-
-#: Installer.cpp:124
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr ""
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Съжаляваме, тази версия на %s изисква система 10.6 или по-нова."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Да"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Не"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Да работи ли BOINC дори когато няма логнат потребител?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
-"Users who are permitted to administer this computer will automatically be "
-"allowed to run and control %s.\n"
-"\n"
-"Do you also want non-administrative users to be able to run and control %s "
-"on this Mac?"
-msgstr ""
-"На потребители, които имат разрешение да администрират този компютър, "
-"автоматично ще им бъде позволено да стартират и да управляват %s.\n"
+"Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
-"Искате ли също потребители без администраторски права да могат да стартират "
-"и управляват %s на този Mac?"
+"Do you also want non-administrative users to be able to run and control %s on this Mac?"
+msgstr "На потребители, които имат разрешение да администрират този компютър, автоматично ще им бъде позволено да стартират и да управляват %s.\n\nИскате ли също потребители без администраторски права да могат да стартират и управляват %s на този Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr ""
-"Искате ли да зададете %s като скрийн-сейвър за всички %s потребители на този "
-"Mac?"
+msgstr "Искате ли да зададете %s като скрийн-сейвър за всички %s потребители на този Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Грешка при разрешенията след рестартиране"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
-msgstr ""
-"Премахването може да отнеме няколко минути.\n"
-"Моля имайте търпение."
+msgstr "Премахването може да отнеме няколко минути.\nМоля имайте търпение."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
 "\n"
 "This will remove the executables but will not touch %s data files."
-msgstr ""
-"Сигурни ли сте, че напълно искате да премахнете %s от вашия компютър?\n"
-"\n"
-"Това ще премахне изпълнимите файлове, но няма да закача файловете с данни на "
-"%s."
+msgstr "Сигурни ли сте, че напълно искате да премахнете %s от вашия компютър?\n\nТова ще премахне изпълнимите файлове, но няма да закача файловете с данни на %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Отказано: %s остана недокоснат."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Възникна грешка: код за грешка %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "име  на потребител"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
-msgstr ""
+msgstr "Искате ли също така да премахнете и VirtualBox от компютъра Ви? (VirtualBox беше инсталиран заедно с BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -119,35 +106,19 @@ msgid ""
 "\n"
 "for each user, the file\n"
 "\"%s\"."
-msgstr ""
-"Премахването завърши.\n"
-"\n"
-" Може да поискате да премахнете следните оставащи елементи с помощта на "
-"Търсачката: \n"
-"папката \"%s\"\n"
-"\n"
-"за всеки потребител, файла\n"
-"\"%s\"."
+msgstr "Премахването завърши.\n\n Може да поискате да премахнете следните оставащи елементи с помощта на Търсачката: \nпапката \"%s\"\n\nза всеки потребител, файла\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
-"Enter your administrator password to completely remove %s from you "
-"computer.\n"
-"\n"
-msgstr ""
-"Въведете своята администраторска парола за да премахнете напълно %s от вашия "
-"компютър.\n"
+"Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
+msgstr "Въведете своята администраторска парола за да премахнете напълно %s от вашия компютър.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Отказ"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Продължение..."
-
-#, c-format
-#~ msgid "Sorry, this version of %s requires system 10.4 or higher."
-#~ msgstr "За съжаление, тази версия на %s изисква система 10.4 или по-висока."
diff --git a/locale/bg/BOINC-Web.mo b/locale/bg/BOINC-Web.mo
index bf1b99f..b897715 100644
Binary files a/locale/bg/BOINC-Web.mo and b/locale/bg/BOINC-Web.mo differ
diff --git a/locale/bg/BOINC-Web.po b/locale/bg/BOINC-Web.po
old mode 100755
new mode 100644
index 473abb7..062c5be
--- a/locale/bg/BOINC-Web.po
+++ b/locale/bg/BOINC-Web.po
@@ -1,1047 +1,980 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
+# 
+# Translators:
+# Petko Stoyanov <masteraip at gmail.com>, 2016
+# Vesselin Stoilov <vesselin91 at gmail.com>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: BOINC Web 6.x\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2014-02-01 00:00 PST\n"
-"PO-Revision-Date: 2013-09-12 11:36+0000\n"
-"Last-Translator: Dimitar <mexicoman at abv.bg>\n"
-"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
-"Language: bg\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-01 08:47+0000\n"
+"Last-Translator: Vesselin Stoilov <vesselin91 at gmail.com>\n"
+"Language-Team: Bulgarian (http://www.transifex.com/boinc/boinc/language/bg/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: bg\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: doc\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1378985776.0\n"
-"X-Poedit-KeywordsList: tra\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Български"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Bulgarian"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! Ви асистира както при създаването и управлението на акаунтите за BOINC проекти, така и при избора на предпочитания, присъединяването към или създаването на отбори, свързването на компютърите към проектите и много други. Независимо дали сте нов или вече регистриран BOINC потребител, BAM ще Ви помогне да извлечете максимума от BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Членовете на GridRepublic използват скрийнсейвър, който позволява на компютрите им да работят върху изследователски проекти с масов интерес докато не се използват. Този скрийнсейвър не влияе върху производителността на компютъра повече от който и да е друг скрийнсейвър."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Търси"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
-msgstr "Върни се на BOINC главна страница"
+msgstr "Обратно към главната страница на BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
-msgstr "Тази страница %sможе да се преведе%s."
+msgstr "Тази страница може %sда бъде преведена%s."
 
-#: download.php:39
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
-msgstr ""
+msgstr "Препоръчваме ви да инсталирате и VirtualBox, за да може вашият компютър да работи и с проекти, които го изискват."
 
-#: download.php:41
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
-msgstr ""
+msgstr "Научете повече за VirtualBox."
 
-#: download.php:51
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
-msgstr ""
+msgstr "Изтегли BOINC + VirtualBox"
 
-#: download.php:54 download.php:69
+#. "for %s" identifies the operating system, e.g. "for Windows"
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
-msgstr ""
+msgstr "за %s"
 
-#: download.php:57 download.php:72
+#: doc/download.php:59 doc/download.php:74
 #, php-format
-msgid "BOINC version %s"
-msgstr ""
+msgid "BOINC %s"
+msgstr "BOINC %s"
 
-#: download.php:59
+#: doc/download.php:61
 #, php-format
-msgid "VirtualBox version %s"
-msgstr ""
+msgid "VirtualBox %s"
+msgstr "VirtualBox %s"
 
-#: download.php:67
+#: doc/download.php:69
 msgid "Download BOINC"
-msgstr "Изтеглете BOINC"
+msgstr "Изтегли BOINC"
 
-#: download.php:123
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
-msgstr ""
+msgstr "BOINC е програма, с помощта на която можете да дарите своето неизползвано процесорно време на проекти в областта на науката като SETI at home, Climateprediction.net, Rosetta at home, World Community Grid, и много други."
 
-#: download.php:125
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
-msgstr ""
+msgstr "След като инсталирате BOINC, можете да добавите толкова проекти, колкото пожелаете - няма ограничение."
 
-#: download.php:127
+#: doc/download.php:137
 msgid ""
-"You may run this software on a computer only if you own the computer or have "
-"the permission of its owner."
-msgstr ""
-"Можете да стартирате този софтуер на компютър само ако притежавате компютъра "
-"или имате разрешението на собственика му."
+"You may run this software on a computer only if you own the computer or have"
+" the permission of its owner."
+msgstr "Можете да използвате този софтуер само на устройства, който лично вие притежавате, или имате разрешение за това от собственика им."
 
-#: download.php:132
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
-msgstr ""
+msgstr "Препоръчваме ви да изтеглите BOINC от Google Play Store или Amazon Appstore, а не от тук."
 
-#: download.php:167
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Системни изисквания"
 
-#: download.php:168
+#: doc/download.php:178
 msgid "Release notes"
-msgstr "Бележки по изданието"
+msgstr "Информация за версията"
 
-#: download.php:169 index.php:86
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Помощ"
 
-#: download.php:170
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Всички версии"
 
-#: download.php:171
+#: doc/download.php:181
 msgid "Version history"
-msgstr "История на версията"
+msgstr "История на версиите"
 
-#: download.php:172
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "GPU изчисление"
 
-#: download.php:190
+#: doc/download.php:200
 msgid "BOINC: compute for science"
-msgstr "BOINC: изчислявайте за науката"
-
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who "
-"can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr ""
-"BOINC Онлайн Помощ Ви позволява да разговаряте едно-към-едно с опитни BOINC "
-"потребители, които могат: %s да отговарят на въпроси относно BOINC и "
-"доброволното изчисляване; %s да Ви преведат през процеса на инсталиране и "
-"използване на BOINC; %s да отстраняват всякакви проблеми които може да "
-"имате."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system. "
-"Skype is free (both the software and the calls).  If you don't already have "
-"Skype, please %sdownload and install it now%s.  When you're finished, return "
-"to this page."
-msgstr ""
-"BOINC Онлайн Помощ е базиран на %sSkype%s, Интернет-базирана телефонна "
-"система. Skype е безплатен (едновременно софтуера и обажданията).  Ако все "
-"още нямате Skype, моля %sизтеглете го и инсталирайте сега%s.  Когато сте "
-"готови се върнете на тази страница."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr ""
-"Най-добрия начин да получите помощ е чрез говор, за което се нуждаете или от "
-"вграден микрофон и колонки, или от външни слушалки за вашия компютър.  Също "
-"можете да използвате текстово-базирана Skype чат система или обикновена "
-"електронна поща (ако нямате Skype) за да комуникирате с Доброволците за "
-"Помощ."
+msgstr "BOINC: изчисление в полза на науката"
 
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Доброволци говорещи няколко езика са налични. Моля изберете език:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Станете Доброволец за Помощ"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr ""
-"Ако сте опитен BOINC потребител, ние Ви насърчаваме да %sстанете Доброволец "
-"за Помощ%s.  Това е страхотен начин да помогнете на каузата за научни "
-"изследвания и споделени изчисления - а също така е и забавно!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr ""
-"Ако вече сте Доброволец за Помощ: за да редактирате своите настройки, %"
-"sнатиснете тук%s."
-
-#: help_funcs.php:107
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr ""
-"BOINC помощниците са неплатени доброволци.  Техните съвети не минават през "
-"одобрение от BOINC или от Калифорнийския Университет."
-
-#: help_funcs.php:110
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr ""
-"%1Никога%2 не давайте информация за своя имейл адрес или парола на BOINC "
-"помощниците."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Изчислителна мощност"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
-msgstr "Най-добрите 100 доброволци"
+msgstr "Топ 100 доброволци"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Статистики"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "средно за 24 часа:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "ПетаФЛОП-а."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Активни:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "доброволци,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "компютри.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "средно аритметично за 24 часа:"
-
-# 80%
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOPS."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Новини"
 
-#: index.php:83
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Базата данни не е достъпна; моля, опитайте по-късно."
+
+#. "Volunteer" is used as a verb
+#: doc/index.php:90
 msgid "Volunteer"
-msgstr "Доброволец"
+msgstr "Стани Доброволец"
 
-#: index.php:85
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Използвайте свободното процесорно време на своя компютър (Уиндоус, Мак, Линукс или Андроид устройство) за да помогнете да лекуваме болести, изучим глобалното затопляне, открием пулсари, и много други видове научни изследвания. Безопасно е, сигурно е, и е лесно:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Изтегляне"
 
-#: index.php:87 index.php:120 index.php:171
-msgid "Documentation"
-msgstr "Документация"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "За Android устройства, изтеглете BOINC приложението от Google Play Store; за Kindle, можете да го изтеглите от Amazon App Store."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Можете да изберете да подпомагате %1проекти%2, като например %3, %4 и %5, сред много други."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Ако участвате в няколко проекта, изпробвайте %1акаунт мениджър%2, като %3GridRepublic%4 или %5BAM!%6."
+
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Научете повече:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Форуми"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Проекти"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Упътване"
 
-#: index.php:88
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Добавки"
 
-#: index.php:89
+#: doc/index.php:124
 msgid "Links"
 msgstr "Връзки"
 
-#: index.php:94
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure "
-"diseases, study global warming, discover pulsars, and do many other types of "
-"scientific research.  It's safe, secure, and easy:"
-msgstr ""
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Други начини да помогнете:"
 
-#: index.php:96
-msgid "Choose projects"
-msgstr ""
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Общ преглед"
 
-#: index.php:97
-msgid "Download BOINC software"
-msgstr ""
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Превод"
 
-#: index.php:98
-msgid "Enter an email address and password."
-msgstr ""
+#: doc/index.php:134
+msgid "Test"
+msgstr "Тест"
 
-#: index.php:102
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as %"
-"sGridRepublic%s or %sBAM!%s. "
-msgstr ""
-"Или, ако работите по няколко проекта, опитайте %sакаунт мениджър%s като "
-"например %sGridRepublic%s или %sBAM!%s. "
+#: doc/index.php:135
+msgid "Document"
+msgstr "Документ"
+
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Разгласете"
 
-#: index.php:118
-msgid "Compute with BOINC"
-msgstr "Изчислявайте с BOINC"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Докладвайте бъгове"
 
-#: index.php:121
-msgid "Software updates"
-msgstr "Обновяване на софтуера"
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Високопродуктивно изчисление с BOINC"
 
-#: index.php:128
+#: doc/index.php:150
 msgid ""
-"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving "
-"you the computing power of thousands of CPUs."
-msgstr ""
-"%1За Учени%2: използвайте BOINC за да създадете %3проект за доброволно "
-"изчисляване%4 който може да Ви даде изчислителната мощ на хиляди CPU-та."
+"%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
+"giving you the power of thousands of CPUs and GPUs."
+msgstr "%1Учени%2: използвайте BOINC, за да създадете %3собствен изчислителен проект%4, който може да ви осигури мощността на хиляди процесори, вкл. и графични."
 
-#: index.php:132
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
-msgstr ""
-"%1За Университети%2: използвайте BOINC за да създадете %3Виртуален Училищен "
-"Супер-изчислителен Център%4."
+msgstr "%1Университети%2: използвайте BOINC, за да създадете %3Виртуален училищен супер-изчислителен център%4."
 
-#: index.php:137
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
-msgstr "%1За Компании%2: използвайте BOINC за %3настолни Мрежови изчисления%4."
+msgstr "%1Компании%2: използвайте BOINC за %3настолни мрежови изчисления%4."
+
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Документация"
+
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC и Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Разработване на софтуер"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC е софтуерна платформа за доброволно участие в изчисления. Тя включва клиент, сървър, уеб компоненти и API за свързване на други компоненти."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Сорс код"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Компилиране на BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Документация по дизайна"
 
-#: index.php:149
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Ние винаги търсим програмисти, които да ни помагат с поддръжката и разработката на BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Процес на разработка"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Задачи за разработка"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC се разпространява под LGPL open-source лиценз."
+
+#: doc/index.php:200
 msgid "The BOINC project"
 msgstr "Проекта BOINC"
 
-#: index.php:155
-msgid "Message boards"
-msgstr "Форуми"
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC е обществен проект. Всеки желаещ да участва е добре дошъл."
 
-#: index.php:156
+#: doc/index.php:207
 msgid "Email lists"
-msgstr "Списъци с имейли"
-
-#: index.php:157
-msgid "Personnel and contributors"
-msgstr "Служители и сътрудници"
+msgstr "Имейл листи"
 
-#: index.php:158
+#: doc/index.php:208
 msgid "Events"
 msgstr "Събития"
 
-#: index.php:159
-msgid "Papers and talks"
-msgstr "Научни трудове и беседи"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Графики"
 
-#: index.php:160
-msgid "Research projects"
-msgstr "Изследователски проекти"
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Управление"
 
-#: index.php:161
-msgid "Logos and graphics"
-msgstr "Логота и графики"
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Онлайн помощ чрез Skype или имейл"
 
-#: index.php:162
-msgid "and"
-msgstr "и"
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Онлайн Помощ Ви позволява да получите персонална помощ от опитен BOINC потребител, който може да отговори на Вашите въпроси относно BOINC, както и да ви помогне с инсталацията и употребата на BOINC и отстраняването на проблеми."
 
-#: index.php:166
-msgid "Help wanted"
-msgstr "Търси се помощ"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Можете да комуникирате с помощник"
 
-#: index.php:168
-msgid "Programming"
-msgstr "Програмиране"
+#: doc/help.php:16
+msgid "by email"
+msgstr "чрез имейл"
 
-#: index.php:169
-msgid "Translation"
-msgstr "Превод"
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\nгласово, използвайки %1Skype%2, безплатна система за Интернет телефония. Ако все още нямате Skype, можете да го %3изтеглите и инсталирате сега%4. Когато приключите, върнете се към тази страница."
 
-#: index.php:170
-msgid "Testing"
-msgstr "Изпробване"
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "използвайки Skype чат"
 
-#: index.php:172
-msgid "Publicity"
-msgstr "Публичност"
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Свободни са доброволци, говорещи много езици. Моля, изберете език (показан е броят доброволци):"
 
-#: index.php:174
-msgid "Software development"
-msgstr "Разработване на софтуер"
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Станете Доброволец-помощник"
 
-#: index.php:175
-msgid "APIs for add-on software"
-msgstr "API-та за add-on софтуер"
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Ако сте опитен BOINC потребител, ние ви насърчаваме да %sстанете Доброволец-помоюник%s. Това е страхотен начин да помогнете на каузата за научни изследвания и споделени изчисления - а също така е и забавно!"
 
-#: index.php:217
+#: doc/help.php:52
 #, php-format
 msgid ""
-"Open-source software for %svolunteer computing%s and %sgrid computing%s."
-msgstr ""
-"Софтуер с отворен код за %sдоброволно изчисляване%s и %sизчисляване в мрежа%"
-"s."
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Ако вече сте Доброволец-помощник: за да редактирате своите настройки, %sнатиснете тук%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "BOINC помощниците са неплатени доброволци. Техните съвети не се считат за официална позиция на BOINC."
 
-#: index.php:230
-msgid "BOINC is based at The University of California, Berkeley"
-msgstr "BOINC е базиран в Калифорнийския Университет, Бъркли"
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1Никога%2 не давайте информация за своя имейл адрес или парола на BOINC помощниците."
 
-#: projects.inc:14
+#: doc/projects.inc:19
 msgid "Distributed sensing"
-msgstr "Разпределена сеизмология"
+msgstr "Разпределено наблюдение"
 
-# 78%
-#: projects.inc:19
-msgid "Stanford University"
-msgstr "Университет Станфорд"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech (Калифорнийски Технологичен Институт)"
 
-#: projects.inc:20
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Сеизмология"
 
-#: projects.inc:21
+#: doc/projects.inc:26
 msgid ""
-"The Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to Internet-connected computers.  You must buy a "
-"sensor to participate."
-msgstr ""
-"Мрежата за Хващане на Земетресения разработва най-голямата сеизмична мрежа с "
-"помощта на сензори прикрепени към Интернет-свързани компютри.  Трябва да си "
-"купите сензор за да участвате."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network (Мрежата за улавяне на земетресения) използва сензори, намиращи се в компютрите и смарт-телефоните, за да засича сеизмични вълни."
 
-#: projects.inc:27
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Фондация BOINC Полша"
 
-#: projects.inc:28
+#: doc/projects.inc:35
 msgid "Environmental research"
-msgstr "Проучване за околната среда"
+msgstr "Изследване на околната среда"
 
-#: projects.inc:29
+#: doc/projects.inc:36
 msgid ""
-"This project is creating a free and continuously updated map of radiation "
-"levels by using sensors connected to volunteers' computers.  You must buy a "
-"sensor to participate."
-msgstr ""
-"Този проект създава свободна и периодично обновяваща се карта на "
-"радиационните нива, като използва сензори свързани с компютри на доброволци. "
-" Трябва да си купите сензор за да участвате."
+"Radioactive at Home is creating a free and continuously updated map of "
+"radiation levels using sensors connected to volunteers' computers.  You must"
+" buy a sensor to participate."
+msgstr "Radioactive at Home създава безплатна и постоянно обновяваща се карта на радиационните нива, чрез използването на сензори, закачени към компютрите на доброволците. Трябва да имате закупен сензор, за да участвате в този проект."
 
-#: projects.inc:33
-msgid ""
-"To participate in these projects you must buy a sensor and attach it to your "
-"computer."
-msgstr ""
-"За да участвате в тези проекти трябва да си купите сензор и да го прикрепите "
-"към вашия компютър."
-
-#: projects.inc:37
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Когнитивна наука и изкуствен интелект"
 
-#: projects.inc:60 projects.inc:364 projects.inc:408 projects.inc:457
-#: projects.inc:464 projects.inc:511
-msgid "Private"
-msgstr "Частен"
+#: doc/projects.inc:51
+msgid "Cognitive Science"
+msgstr "Когнитивна наука"
+
+#: doc/projects.inc:52
+msgid ""
+"MindModeling at Home uses computational cognitive process modeling to better "
+"understand the human mind, and specifically to study the mechanisms and "
+"processes that enable and moderate human performance and learning."
+msgstr "MindModeling at Home използва изчислително моделиране на когнитивни процеси, за да може по-добре да разберем човешкия мозък, и по-специално да изучим механизмите и процесите, които ни правят това което сме."
 
-#: projects.inc:61
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Независим"
+
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Изкуствен интелект"
 
-#: projects.inc:62
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
 "databases, and part of speech taggers in order to imitate human behavior in "
 "conversations."
-msgstr ""
-"Правете синтактичен анализ и преобразувайте семантични мрежи за използване "
-"във FreeHAL, изкуствен интелект който използва семантични мрежи, производни "
-"думи, бази от данни с думи като части на речта и програми за морфологичен "
-"анализ с цел да се имитира човешко държание в разговори."
+msgstr "Анализирайте и преобразувайте семантични мрежи за използване във FreeHAL - изкуствен интелект, който използва семантични мрежи, производни думи, бази от данни с думи и програми за морфологичен анализ с цел да имитира човешко държание в разговори."
 
-#: projects.inc:69
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Биология и Медицина"
 
-#: projects.inc:82
+#: doc/projects.inc:88
+msgid "Medical physiology"
+msgstr "Медицинска физиология"
+
+#: doc/projects.inc:89
+msgid ""
+"DENIS at Home does cardiac electrophysiological simulations, studying the "
+"electrical activity of the heart."
+msgstr "DENIS at Home извършва кардио електро-физиологични симулации, изучавайки електрическата активност на сърцето."
+
+#: doc/projects.inc:98
+msgid "Molecular biology"
+msgstr "Молекулярна биология"
+
+#: doc/projects.inc:99
+msgid ""
+"RNA World seeks to identify, analyze, structurally predict and design RNA "
+"molecules on the basis of established bioinformatics software."
+msgstr "RNA World (РНК Свят) има за цел да идентифицира, анализира, предскаже структурата на и изгради РНК молекули на базата на доказан биоинформатичен софтуер."
+
+#: doc/projects.inc:107
 msgid "University College Dublin"
-msgstr "Университетски Колеж в Дъблин"
+msgstr "Университетски колеж Дъблин"
 
-#: projects.inc:83
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Търсене на лекарство против малария"
 
-#: projects.inc:84
+#: doc/projects.inc:109
 msgid ""
-"The parasite that causes malaria continues to evolve resistance to available "
-"medication. We therefore urgently need to discover new drugs to replace "
-"existing drugs. Importantly, these new drugs need to target NEW proteins in "
-"the parasite. The FightMalaria at Home project is aimed at finding these new "
-"targets."
-msgstr ""
-"Паразитът, който причинява малария, продължава да увеличава своята "
-"устойчивост към наличните лекарства. За това ние спешно се нуждаем да "
-"открием нови лекарства, които да заместят съществуващите такива. Най-важното "
-"е, че тези нови лекарства трябва да бъдат насочени към НОВИ протеини в "
-"паразита. Проектът FightMalaria at Home се цели в откриването на тези нови "
-"мишени."
-
-#: projects.inc:90
+"The parasite that causes malaria continues to evolve resistance to available"
+" medication. We therefore urgently need to discover new drugs, targeting new"
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Паразитът, причиняващ малария, продължава да развива своята резистентност към наличните лекарства. Поради тази причина, спешно трябва да открием нови лекарства, действащи върху други протеини в този паразит. Проектът FiND at Hoem има за цел да намери тези нови мишени."
+
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Университет Карлсруе (Германия)"
 
-#: projects.inc:91
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Предсказване структурата на протеини"
 
-#: projects.inc:92
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
 "the proteins interact with one another, to understand diseases related to "
-"protein malfunction or aggregation, and to develop new drugs on the basis of "
-"the three-dimensions structure of biologically important proteins."
-msgstr ""
-"POEM at HOME използва изчислителен подход за да предскаже биологически "
-"активните структури от белтъци, за да разбере механизмите когато белтъците "
-"взаимодействат един с друг, за да разбере болести свързани с неправилното "
-"функциониране или агрегацията на белтъците и да разработи нови лекарства на "
-"база на три-измерни структури от биологически ценни белтъци."
-
-#: projects.inc:98
-msgid "University of Delaware"
-msgstr "Университет Делауеър"
-
-#: projects.inc:99
-msgid "Study of protein - ligand interactions"
-msgstr ""
+"protein malfunction or aggregation, and to develop new drugs on the basis of"
+" the three-dimensions structure of biologically important proteins."
+msgstr "POEM at HOME използва изчислителен подход за да предскаже биологически активните структури от белтъци, за да разбере механизмите когато белтъците взаимодействат един с друг, за да разбере болести свързани с неправилното функциониране или агрегацията на белтъците и да разработи нови лекарства на база на три-измерни структури от биологически ценни белтъци."
 
-#: projects.inc:100
-msgid ""
-"Docking at Home has both bioscience and computer science goals. The project "
-"aims to further knowledge of the atomic details of protein-ligand "
-"interactions and, by doing so, will search for insights into the discovery "
-"of novel pharmaceuticals."
-msgstr ""
-
-#: projects.inc:114
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Биомедицински Проучвателен Парк Барселона (PRBB)"
 
-#: projects.inc:115
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Молекулярни симулации на протеини"
 
-#: projects.inc:116
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
 "New biomedical applications suddenly become possible giving a new role to "
 "computational biology for biomedical research."
-msgstr ""
-"GPUGrid.net представя новoвъведени изчислителни сценарии с помощта на първия "
-"изцяло атомен молекулярен динамически код (CellMD) специално оптимизиран да "
-"работи на NVIDIA GPU устройства. Нови био-медицински приложения изведнъж "
-"станаха възможни, даващи нова роля на изчислителната биология за "
-"био-медицински проучвания."
-
-#: projects.inc:122
-msgid "Technion, Israel"
-msgstr "Технион, Израел"
+msgstr "GPUGrid.net представя новoвъведени изчислителни сценарии с помощта на първия изцяло атомен молекулярен динамически код (CellMD) специално оптимизиран да работи на NVIDIA GPU устройства. Нови био-медицински приложения изведнъж станаха възможни, даващи нова роля на изчислителната биология за био-медицински проучвания."
 
-#: projects.inc:123
-msgid "Genetic linkage analysis"
-msgstr "Анализ на генетичните връзки"
-
-#: projects.inc:124
-msgid ""
-"Superlink at Technion helps geneticists all over the world find disease-"
-"provoking genes causing some types of diabetes, hypertension (high blood "
-"pressure), cancer, schizophrenia and many others."
-msgstr ""
-"Superlink at Technion помага на генетиците по целия свят да открият "
-"предразполагащи към болести гени, които причиняват някои типове диабети, "
-"хипертония (високо кръвно налягане), рак, шизофрения и много други."
-
-#: projects.inc:138
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Университет Мериленд Център за Биоинформатика и Изчислителна Биология"
 
-#: projects.inc:139
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Проучване на науките за живота"
 
-#: projects.inc:140
+#: doc/projects.inc:177
 msgid ""
-"The Lattice Project supplies computing power to scientists at the University "
-"of Maryland studying evolutionary relationships based on DNA sequence data; "
-"bacterial, plasmid, and virus protein sequences; and biological diversity in "
-"nature reserves. "
-msgstr ""
-"The Lattice Project предоставя изчислителна мощ на учени в Университета "
-"Мериленд изучаващи еволюционни взаимоотношения базирани на данни от ДНК "
-"последователности; бактериални, плазмидни и вирусови протеинови "
-"последователности; и биологическото разнообразие в природните резерви. "
+"The Lattice Project, developed and administered at the University of "
+"Maryland, supplies computing power to researchers worldwide who are studying"
+" evolutionary relationships using DNA and protein sequence data."
+msgstr "The Lattice Project (проектът Решетка), разработен и управляван от Мерилендския Университет, предоставя изчислителната мощ на учени от цял свят, които изучават еволюционните взаимоотношения използвайки ДНК и информация от протеиновите последователности."
 
-#: projects.inc:146
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "Швейцарски Тропически Институт"
 
-#: projects.inc:147
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Епидемиология"
 
-#: projects.inc:148
+#: doc/projects.inc:187
 msgid ""
-"Simulation models of the transmission dynamics and health effects of malaria "
-"are an important tool for malaria control. They can be used to determine "
+"Simulation models of the transmission dynamics and health effects of malaria"
+" are an important tool for malaria control. They can be used to determine "
 "optimal strategies for delivering mosquito nets, chemotherapy, or new "
 "vaccines which are currently under development and testing.  Such modeling "
 "is extremely computer intensive, requiring simulations of large human "
 "populations with a diverse set of parameters related to biological and "
 "social factors that influence the distribution of the disease. "
-msgstr ""
-"Моделите за симулация на динамиката на предаване и здравните ефекти на "
-"маларията са важен инструмент при контрола на маларията. Те могат да бъдат "
-"използвани за определяне на оптималните стратегии за мрежи от доставящи "
-"комари, химиотерапия, или нови ваксини в момент на разработване и изпитание. "
-" Подобно моделиране е изключително трудоемко за изчисление с компютър, и "
-"изисква симулации с големи човешки популации с разнообразни комбинации от "
-"параметри свързани с биологически и социални фактори които влияят на "
-"разпространението на болестта. "
-
-#: projects.inc:170
+msgstr "Моделите за симулация на динамиката на предаване и здравните ефекти на маларията са важен инструмент при контрола на маларията. Те могат да бъдат използвани за определяне на оптималните стратегии за мрежи от доставящи комари, химиотерапия, или нови ваксини в момент на разработване и изпитание.  Подобно моделиране е изключително трудоемко за изчисление с компютър, и изисква симулации с големи човешки популации с разнообразни комбинации от параметри свързани с биологически и социал [...]
+
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Университет Вашингтон"
 
-#: projects.inc:171 projects.inc:179
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Биология"
 
-#: projects.inc:172
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
 "Rosetta at home you will help us speed up and extend our research in ways we "
 "couldn't possibly attempt without your help. You will also be helping our "
-"efforts at designing new proteins to fight diseases such as HIV, Malaria, "
-"Cancer, and Alzheimer's"
-msgstr ""
-"Определете 3-измерните форми на протеини в проучване което може в крайна "
-"сметка да доведе до откриване на лекарства за някои главни човешки болести. "
-"Като работите с Rosetta at home ще ни помогнете да ускорим и разширим нашето "
-"проучване по начин по който не бихме могли без вашата помощ. Вие също ще "
-"помагате на нашите опити за създаване на нови протеини за борба срещу "
-"болести като СПИН, Малария, Рак и Болестта на Алцхаймер"
-
-#: projects.inc:178
-msgid "University of Vienna"
-msgstr "Университет Виена"
-
-#: projects.inc:180
-msgid ""
-"Calculate similarities between proteins. SIMAP provides a public database of "
-"the resulting data, which plays a key role in many bioinformatics research "
-"projects."
-msgstr ""
-"Изчислявайте подобности между протеини. SIMAP осигурява публична база данни "
-"от произлезлите данни, която играе ключова роля в много проекти за проучване "
-"в биоинформатиката."
+"efforts at designing new proteins to fight diseases such as HIV, malaria, "
+"cancer, and Alzheimer's"
+msgstr "Определянето на 3-измерни протеинови форми в проучване, което в крайна сметка може да доведе до намирането на лекове за някои от главните човешки болести. Участвайки в Rosetta at home, Вие ще ни помогнете да ускорим и разширим изследванията си по начини, по които не бихме могли да работим без вашата помощ. Също така, Вие ще подпомагате и нашите усилия да създадем нови протеини, с които да се борим със заболявания, като ХИВ, малария, рак и болестта на Алцхаймер"
 
-#: projects.inc:186
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Науки за Земята"
 
-#: projects.inc:198
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Университет Оксфорд"
 
-#: projects.inc:199
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Изучаване на климата"
 
-#: projects.inc:200
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
 "how the model responds to slight tweaks to these approximations - slight "
-"enough to not make the approximations any less realistic. This will allow us "
-"to improve our understanding of how sensitive our models are to small "
+"enough to not make the approximations any less realistic. This will allow us"
+" to improve our understanding of how sensitive our models are to small "
 "changes and also to things like changes in carbon dioxide and the sulphur "
 "cycle. This will allow us to explore how climate may change in the next "
 "century under a wide range of different scenarios."
-msgstr ""
-"Проучвайте приближенията които трябва да се направят в най-развитите "
-"климатични модели в наши дни. Като изчисляваме модела хиляди пъти ние се "
-"надяваме да открием как той реагира на най-фините настройки на тези "
-"приближения - достатъчно фини за да не правят приближенията по-малко "
-"реалистични. Това ще ни позволи да подобрим нашето разбиране за това колко "
-"чувствителни са нашите модели на малки промени и също на промени във "
-"въглеродния диоксид и серния цикъл. Това ще ни позволи да проучим как "
-"климата може да се промени през следващото столетие при голям обхват от "
-"сценарии."
-
-#: projects.inc:207
-msgid "Physical Science"
-msgstr ""
-
-#: projects.inc:213
-msgid "Mechanical engineering"
-msgstr ""
+msgstr "Проучвайте приближенията които трябва да се направят в най-развитите климатични модели в наши дни. Като изчисляваме модела хиляди пъти ние се надяваме да открием как той реагира на най-фините настройки на тези приближения - достатъчно фини за да не правят приближенията по-малко реалистични. Това ще ни позволи да подобрим нашето разбиране за това колко чувствителни са нашите модели на малки промени и също на промени във въглеродния диоксид и серния цикъл. Това ще ни позволи да про [...]
 
-#: projects.inc:214
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr ""
+#: doc/projects.inc:253
+msgid "Physical Science"
+msgstr "Физика"
 
-#: projects.inc:224 projects.inc:263 projects.inc:271
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Астрономия"
 
-#: projects.inc:225
+#: doc/projects.inc:270
 msgid ""
-"We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to "
-"generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby "
-"Universe. We will measure physical parameters (such as stellar mass surface "
-"density, star formation rate surface density, attenuation, and first-order "
-"star formation history) on a resolved pixel-by-pixel basis using spectral "
-"energy distribution (SED) fitting techniques in a distributed computing mode."
-msgstr ""
-"Ние ще комбинираме спектралното покритие от GALEX, Pan-STARRS1 и WISE за да "
-"генерираме много-честотен UV-оптически-NIR галактически атлас на близко "
-"разположената до нас Вселена. Ще измерваме физически параметри (като "
-"например плътността на повърхността на звздната маса, плътността на "
-"повърхността на темпото на образуване на звезди, разреждането и историята на "
-"образуването на първородните звезди) на базата на непоколебима пиксел по "
-"пиксел основа като използваме напасващи техники за спектрално енергийно "
-"разпределение (SED) в режим на разпределени компютърни изчисления."
-
-#: projects.inc:247
-msgid "University of Texas at Austin"
-msgstr "Университет Тексас в Остин"
-
-#: projects.inc:248 projects.inc:279
-msgid "Chemistry"
-msgstr "Химия"
+"TheSkyNet POGS is an astronomy project studying 16 different properties of "
+"galaxies, including brightness, mass, amount of dust and how fast stars are "
+"forming. We are using your processing power to conduct pixel-by-pixel "
+"calculations on multi-wavelength (ultraviolet, optical and near-infrared "
+"light) images of galaxies to produce an atlas that will help astronomers to "
+"better understand the distant universe."
+msgstr "TheSkyNet POGS е астрономичен проект, изучаващ 16 различни свойства на галактиките, в т.ч. яркост, маса, количество прах и колко бързо се формират звездите в тях. Ние използваме Вашата изчислителна мощ, за да провеждаме изчисления върху изображения на галактики с няколко дължини на вълните (ултравиолетова, оптична и близка до инфрачервения спектър светлини). По този начин сглобяваме атлас в помощ на астрономите да разберат по-добре далечната Вселена."
+
+#: doc/projects.inc:280 doc/projects.inc:366
+msgid "Astrophysics"
+msgstr "Астрофизика"
 
-#: projects.inc:249
+#: doc/projects.inc:281
 msgid ""
-"A common problem in theoretical chemistry, condensed matter physics and "
-"materials science is the calculation of the time evolution of an atomic "
-"scale system where, for example, chemical reactions and/or diffusion occur. "
-"Generally the events of interest are quite rare (many orders of magnitude "
-"slower than the vibrational movements of the atoms), and therefore direct "
-"simulations, tracking every movement of the atoms, would take thousands of "
-"years of computer calculations on the fastest present day computer before a "
-"single event of interest can be expected to occur.  Our research group is "
-"interested in calculating the long time dynamics of systems."
-msgstr ""
-"Често срещан проблем в теоретичната химия, физиката на кондензирана материя "
-"и материалознанието е определянето на еволюцията на система с атомен размер "
-"във времето където, например, протичат химически реакции и/или дифузия. Общо "
-"казано събитията от които се интересуваме са доста редки (на степен много "
-"пъти по-малка от вибрационните движения на атомите) и затова директни "
-"симулации, проследяващи всяко движение на атомите, биха отнели хиляди години "
-"компютърни изчисления на най-бързия компютър в наши дни преди да се появи "
-"единично събитие представляващо интерес за нас.  Нашата проучвателна група "
-"се интересува от изчисляване на динамиката на системите в много дълъг "
-"период."
-
-# 95%
-#: projects.inc:262
+"The aim of the project is to derive shapes and spin for a significant part "
+"of the asteroid population. As input data, we use any asteroid photometry "
+"that is available. The results are asteroid convex shape models with the "
+"direction of the spin axis and the rotation period."
+msgstr "Целта на проектът е да направи изводи за формите и въртенето на значителна част от популацията на астероиди. Като входни данни ние използваме всичката налична фотометрия на астероиди. Резултатите са модели на астероиди с изпъкнала форма, включващи посоката и оста на въртене и периодът на завъртане."
+
+#: doc/projects.inc:317
 msgid "University of Illinois at Urbana-Champaign"
 msgstr "Университет Илинойс в Урбана-Шампейн"
 
-#: projects.inc:264
+#: doc/projects.inc:319
 msgid ""
 "The goal of Cosmology at Home is to search for the model that best describes "
 "our Universe and to find the range of models that agree with the available "
 "astronomical particle physics data."
-msgstr ""
-"Целта на Cosmology at Home е да търси за модел който най-добре описва нашата "
-"Вселена и да намери обхват от модели които съвпадат с наличните данни за "
-"физиката на астрономическите елементарни частици."
+msgstr "Целта на Cosmology at Home е да търси за модел който най-добре описва нашата Вселена и да намери обхват от модели които съвпадат с наличните данни за физиката на астрономическите елементарни частици."
+
+#: doc/projects.inc:329
+msgid ""
+"Universe at Home aims to create the first database of the simulated stellar "
+"content of the Universe, from the earliest stars to the most exotic black "
+"hole binaries."
+msgstr "Universe at Home има за цел да създаде първата база данни от симулираното звездно съдържание на Вселената, от най-ранните звезди до най-екзотичните бинарни черни дупки."
+
+#: doc/projects.inc:332
+msgid "Do research in physics and astronomy"
+msgstr "Провеждане на изследвания във физиката и астрономията"
 
-#: projects.inc:270
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Политехнически Институт Ренселеър"
 
-#: projects.inc:272
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
-msgstr ""
-"Целта на Milkyway at Home е да създаде изключително точен три измерен модел на "
-"галактиката Млечен Път използвайки данни събрани от Слоун Цифрово Наблюдение "
-"на Небето."
+msgstr "Целта на Milkyway at Home е да създаде изключително точен три измерен модел на галактиката Млечен Път използвайки данни събрани от Слоун Цифрово Наблюдение на Небето."
+
+#: doc/projects.inc:342
+msgid "Study the structure of the Milky Way galaxy"
+msgstr "Изучаване структурата на галактиката Млечен Път"
 
-#: projects.inc:278
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Университет Лейден, Холандия"
 
-#: projects.inc:280
+#: doc/projects.inc:348
+msgid "Chemistry"
+msgstr "Химия"
+
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
-"calculations to the grid. Each user has his own personal queue for Classical "
-"Dynamics jobs. In this way students have used the grid to simulate liquid "
+"calculations to the grid. Each user has his own personal queue for Classical"
+" Dynamics jobs. In this way students have used the grid to simulate liquid "
 "argon, or to test the validity of the ideal gas law by actually doing the "
 "simulations through the grid."
-msgstr ""
-"Класически изчисления на повърхнини използващи Класическа Динамика.  Leiden "
-"Classical позволява на доброволци, студенти и други учени да предоставят "
-"своите собствени изчисления на мрежата. Всеки потребител има своя собствена "
-"опашка от задачи от Класическата Динамика. По този начин студенти са "
-"използвали мрежата за да симулират течен аргон, или да тестват валидността "
-"на закона за идеален газ като реално правят симулациите през мрежата."
-
-#: projects.inc:294
+msgstr "Класически изчисления на повърхнини използващи Класическа Динамика.  Leiden Classical позволява на доброволци, студенти и други учени да предоставят своите собствени изчисления на мрежата. Всеки потребител има своя собствена опашка от задачи от Класическата Динамика. По този начин студенти са използвали мрежата за да симулират течен аргон, или да тестват валидността на закона за идеален газ като реално правят симулациите през мрежата."
+
+#: doc/projects.inc:352
+msgid "Help students do atomic simulations"
+msgstr "Подпомага студентите в извършването на атомни симулации"
+
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Университет Уисконсин - Милуоки, Институт Макс Планк"
 
-#: projects.inc:295
-msgid "Astrophysics"
-msgstr "Астрофизика"
-
-#: projects.inc:296
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
 "observatory.  Einstein at Home is a World Year of Physics 2005 project "
 "supported by the American Physical Society (APS) and by a number of "
 "international organizations."
-msgstr ""
-"Претърсвайте за въртящи се неутронни звезди (също наричани пулсари) като "
-"използвате данни от гравитационните детектори за вълни LIGO и GEO и от радио "
-"обсерваторията в Аресибо.  Einstein at Home е проект в чест на Световната "
-"Година за Физика 2005г. и е поддържан от Американското Физическо Общество "
-"(APS) и определен брой международни организации."
+msgstr "Претърсвайте за въртящи се неутронни звезди (също наричани пулсари) като използвате данни от гравитационните детектори за вълни LIGO и GEO и от радио обсерваторията в Аресибо.  Einstein at Home е проект в чест на Световната Година за Физика 2005г. и е поддържан от Американското Физическо Общество (APS) и определен брой международни организации."
 
-#: projects.inc:310 projects.inc:318
+#: doc/projects.inc:370
+msgid "Help detect pulsars and gravitational waves"
+msgstr "Помага при засичането на пулсари и гравитационни вълни"
+
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN - ЦЕРН (Европейска Организация за Ядрени Изследвания)"
 
-#: projects.inc:311 projects.inc:319
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Физика"
 
-#: projects.inc:312
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
 "physics laboratory.  It is the most powerful instrument ever built to "
 "investigate on particles proprieties. LHC at home runs simulations to improve "
 "the design of LHC and its detectors."
-msgstr ""
-"Големият Адронен Колайдер (LHC) е ускорител на частици в CERN - ЦЕРН, "
-"Европейската Организация за Ядрени Изследвания, и е най-голямата лаборатория "
-"за изследване на физиката на елементарните частици.  Той е най-мощният "
-"инструмент някога строен за изследване на свойствата на елементарните "
-"частици. LHC at home прави симулации за да подобри дизайна на LHC и неговите "
-"детектори."
-
-#: projects.inc:320
+msgstr "Големият Адронен Колайдер (LHC) е ускорител на частици в CERN - ЦЕРН, Европейската Организация за Ядрени Изследвания, и е най-голямата лаборатория за изследване на физиката на елементарните частици.  Той е най-мощният инструмент някога строен за изследване на свойствата на елементарните частици. LHC at home прави симулации за да подобри дизайна на LHC и неговите детектори."
+
+#: doc/projects.inc:388
+msgid "Improve the design of the Large Hadron Collider"
+msgstr "Подобрява дизайна на Големия Адронен Колайдер"
+
+#: doc/projects.inc:395
 msgid ""
-"This project uses CERN-developed virtual machine technology for full-fledged "
-"LHC event physics simulation on volunteer computers.  Requires that you "
-"install VirtualBox on your computer"
-msgstr ""
-"Този проект използва разработена от CERN технология на виртуална машина за "
-"напълно развита в Големия Адронен Колайдер LHC симулация на физически "
-"събития за изчисляване на компютри на доброволци.  Изисква инсталация на "
-"ВиртуалнаКутия на вашия компютър"
+"This project uses CERN-developed virtual machine technology for LHC event "
+"physics simulation on volunteer computers.  Requires that you install "
+"VirtualBox on your computer"
+msgstr "Този проект използва разработена от CERN технология за виртуализацията симулации на събития от LHC в компютрите на доброволците. Изисква инсталиран VirtualBox на компютъра Ви"
+
+#: doc/projects.inc:398
+msgid "Simulate high-energy particle collisions"
+msgstr "Симулиране на сблъсъци между високоенергийни частици"
+
+#: doc/projects.inc:405
+msgid ""
+"ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
+" physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
+" particles and processes using head-on collisions of protons of "
+"extraordinary high energy."
+msgstr "ATLAS at Home използва изчислителната мощ на доброволци за да изпълнява симулации за ATLAS - експеримент в областта на физиката на елементарните частици - за Large Hadron Collider на CERN. ATLAS търси нови частици и процеси използвайки челни сблъсъци на протони с извънредно висока енергия."
+
+#: doc/projects.inc:408
+msgid "Simulate high-energy particle collisions for CERN"
+msgstr "Симулирай високоенергийни сблъсъци на частици за CERN"
 
-#: projects.inc:326
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Калифорнийски Университет, Бъркли"
 
-#: projects.inc:327
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Астрофизика, астробиология"
 
-#: projects.inc:328
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
 "radio SETI, uses radio telescopes to listen for narrow-bandwidth radio "
 "signals from space. Such signals are not known to occur naturally, so a "
 "detection would provide evidence of extraterrestrial technology."
-msgstr ""
-"SETI (Търсене на Извънземен Интелект) представлява научна област, чиято цел "
-"е да открие интелигентен извънземен живот. Един подход, известен като радио "
-"SETI, използва радио телескопи, които да слушат за ниско-честотни радио "
-"сигнали от космоса. Подобни сигнали не е известно да се появяват по "
-"естествен начин, за това тяхното засичане би доказало наличието на "
-"извънземна технология."
-
-#: projects.inc:342
-msgid "Bielefeld University of Applied Sciences"
-msgstr "Университет Билефелд за Приложни Науки"
-
-#: projects.inc:343
-msgid "Chemical engineering and nanotechnology"
-msgstr "Химично инженерство и нанотехнологии"
-
-#: projects.inc:344
-msgid ""
-"The study of molecular magnets and controlled nanoscale magnetism.  These "
-"magnetic molecules may be used to develop tiny magnetic switches, with "
-"applications in medicine (such as local tumor chemotherapy) and "
-"biotechnology."
-msgstr ""
-"Изучаване на молекулярни магнити и контролиран нано-мащабен магнетизъм.  "
-"Тези магнетични молекули могат да бъдат използвани за разработване на "
-"магнетични превключватели, с приложения в медицината (като например за "
-"локална химиотерапия на тумори) и био-технологиите."
+msgstr "SETI (Търсене на Извънземен Интелект) представлява научна област, чиято цел е да открие интелигентен извънземен живот. Един подход, известен като радио SETI, използва радио телескопи, които да слушат за ниско-честотни радио сигнали от космоса. Подобни сигнали не е известно да се появяват по естествен начин, за това тяхното засичане би доказало наличието на извънземна технология."
+
+#: doc/projects.inc:418
+msgid "Search for evidence of extra-terrestrial life"
+msgstr "Търси доказателства за извънземен живот"
 
-#: projects.inc:351
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Множество приложения"
 
-#: projects.inc:356
+#: doc/projects.inc:448
+msgid "Molecular biology, Computer Science"
+msgstr "Молекулярна биология, Компютърни Науки"
+
+#: doc/projects.inc:449
+msgid ""
+"The Citizen Science Grid is dedicated to supporting a wide range of research"
+" and educational projects using volunteer computing and citizen science."
+msgstr "Citizen Science Grid е посветена на поддръжката на широк спектър изследователски и образователни проекти, използвайки изчислителната мощ на доброволци и гражданска наука."
+
+#: doc/projects.inc:452
+msgid "Support science from the University of North Dakota"
+msgstr "Подкрепяне на наука от Щатски университет Северна Дакота"
+
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Китайска Академия на Науките"
 
-#: projects.inc:357
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Физика, биохимия и други"
 
-#: projects.inc:358
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr ""
-"Целта на CAS at home е да окуражи и подпомогне учени в Китай да приспособят "
-"технологиите на споделеното изчисляване и споделеното мислене за своите "
-"проучвания."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home се хоства в компютърния център на Института за Високоенергийна Физика (IHEP) към Китайската Академия на Науките и е в помощ на проектите на китайски учени, изучаващи протеинови структури, нанотехнологии, геномите на раковите заболявания, както и високоенергийна физика."
 
-#: projects.inc:365
+#: doc/projects.inc:462
+msgid "Help Chinese researchers"
+msgstr "Подпомагай китайските изследователи"
+
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Математика, физика, еволюция"
 
-#: projects.inc:366
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
-msgstr ""
-"Yoyo at home е посредник между BOINC и няколко съществуващи проекта за "
-"споделени изчисления: ECM, Muon, Evolution at home и distributed.net"
-
-#: projects.inc:371 projects.inc:527
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "MTA-SZTAKI Лаборатория за Паралелни и Разпределени Системи (Унгария)"
+msgstr "Yoyo at home е посредник между BOINC и няколко съществуващи проекта за споделени изчисления: ECM, Muon, Evolution at home и distributed.net"
 
-#: projects.inc:372
-msgid "European research projects"
-msgstr "Европейски изследователски проекти"
+#: doc/projects.inc:472
+msgid "Do research in math, physics, and evolution"
+msgstr "Участвай в изследвания в математиката, физиката и еволюцията"
 
-#: projects.inc:373
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered "
-"by the project include math, physics, biology, etc."
-msgstr ""
-"Проектът EDGeS at Home Beta интегрира споделено изчисляване в сервизната "
-"решетка на Европа като позволява на сервизни мрежи да изпращат задачи за "
-"обработване от доброволци участващи в този проект. Научните проекти включени "
-"в този проект включват математика, физика, биология и др."
-
-#: projects.inc:379
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Испански университети и центрове за проучвания"
 
-#: projects.inc:380
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Различни испански изследователски проекти"
 
-#: projects.inc:381
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Изследвания във физиката, материалознанието и био-медицината"
 
-#: projects.inc:387
+#: doc/projects.inc:492
+msgid "Help Spanish researchers"
+msgstr "Подпомагай испанските изследователи"
+
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM Корпоративно Гражданство"
 
-#: projects.inc:388
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Медицинско, насочено към околната среда и друго хуманитарно изследване"
 
-#: projects.inc:389
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
-"problems by creating the world's largest volunteer computing grid.  Research "
-"includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
+"problems by creating the world's largest volunteer computing grid.  Research"
+" includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
 "clean water and many more."
-msgstr ""
-"За последващо критично проучване с нестопанска цел на някои от "
-"най-належащите човешки проблеми, като се създаде най-голямата в света мрежа "
-"за споделени изчисления.  Проучването включва ХИВ-СПИН, рак, тропически и "
-"други пренебрегвани болести, слънчевата енергия, питейната вода и много "
-"други."
+msgstr "За последващо критично проучване с нестопанска цел на някои от най-належащите човешки проблеми, като се създаде най-голямата в света мрежа за споделени изчисления.  Проучването включва ХИВ-СПИН, рак, тропически и други пренебрегвани болести, слънчевата енергия, питейната вода и много други."
 
-#: projects.inc:395
+#: doc/projects.inc:502
+msgid "Do biomedical and environmental research"
+msgstr "Участвай в биомедицински изследвания и изследвания върху околната среда"
+
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Математика, изчисления и игри"
 
-#: projects.inc:401
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
+msgid "Mathematics"
+msgstr "Математика"
+
+#: doc/projects.inc:534
+msgid ""
+"NumberFields at home searches for fields with special properties. The primary "
+"application of this research is in the realm of algebraic number theory. "
+"Number theorists can mine the data for interesting patterns to help them "
+"formulate conjectures about number fields. Ultimately, this research will "
+"lead to a deeper understanding of the profound properties of numbers, the "
+"basic building blocks of all mathematics."
+msgstr "NumberFields at home търси полета със специални свойства. Основното приложение на това изследване е в областта на алгебричната теория на числата. Числовите теоретици могат да следят данните за интересни модели, които да им помогнат при формулирането на предположения за числови полета. Идеално, този проект би довел до по-задълбочено разбиране на основните свойства на числата, градивните елементи на цялата математика."
+
+#: doc/projects.inc:537
+msgid "Do research in algebraic number theory"
+msgstr "Участвай в изследвания в алгебричната теория на числата"
+
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Компютърна Наука"
 
-#: projects.inc:409
-msgid "Mathematics, Physics, Artificial Intelligence"
-msgstr "Математика, Физика, Изкуствен Интелект"
+#: doc/projects.inc:554
+msgid ""
+"Solve hard and practically important problems (discrete functions inversion "
+"problems, discrete optimization, bioinformatics, etc.) that can be "
+"effectively reduced to Boolean satisfiability problem."
+msgstr "Решавай трудни и важни в практиката задачи (инверсии на дискретни функции, дискретни оптимизации, биоинформатика и др.), които могат да бъдат сведени до задача тип Удовлетворимост на булева функция."
+
+#: doc/projects.inc:557
+msgid "Study computational complexity"
+msgstr "Изучаване на изчислителната комплексност"
 
-#: projects.inc:410
-msgid "Simulation of quantum computing; Goldbach's conjecture."
-msgstr "Симулация на квантови изчисления; Предположение на Goldbach."
+#: doc/projects.inc:582
+msgid "Cryptography and combinatorics"
+msgstr "Криптография и комбинаторика"
 
-#: projects.inc:450 projects.inc:458
+#: doc/projects.inc:583 doc/projects.inc:586
+msgid "Run applications from distributed.net"
+msgstr "Изпълнявай приложения от distributed.net"
+
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Криптография"
 
-#: projects.inc:459
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
-msgstr ""
-"Опит да се дешифрират 3 оригинални Енигма съобщения. Сигналите са били "
-"засечени в Северния Атлантик през 1942г. и се смята, че не могат да бъдат "
-"разбити."
+msgstr "Опит да се дешифрират 3 оригинални Енигма съобщения. Сигналите са били засечени в Северния Атлантик през 1942г. и се смята, че не могат да бъдат разбити."
 
-#: projects.inc:465 projects.inc:504 projects.inc:512 projects.inc:520
-#: projects.inc:528 projects.inc:568
-msgid "Mathematics"
-msgstr "Математика"
+#: doc/projects.inc:596
+msgid "Decode WWII submarine messages"
+msgstr "Декодирай съобщения от подводници от Втората световна война"
 
-#: projects.inc:466
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Изучаване на Collatz Conjecture, нерешено предположение в математиката"
 
-#: projects.inc:471
+#: doc/projects.inc:606
+msgid "Study the Collatz Conjecture"
+msgstr "Изучавай Collatz Conjecture"
+
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "Калифорнийски Щатски Университет Филертон"
 
-#: projects.inc:472
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Разлагане на големи цели числа"
 
-#: projects.inc:473
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -1049,1082 +982,62 @@ msgid ""
 "breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
 "NFS at Home is a continuation of that experience, only with integers that are "
 "hundreds of digits long."
-msgstr ""
-"NFS at Home е изследователски проект който използва Интернет-свързани компютри "
-"за да правят пресяващи стъпки от алгоритъм за разлагане на големи цели числа "
-"чрез метод на Пресяване на Числово Поле. Като млад ученик в училище Вие сте "
-"получили своя пръв опит в разлагането на цяло число на прости множители "
-"като например 15 = 3 * 5 или 35 = 5 * 7. NFS at Home е продължение на този "
-"опит, обаче с цели числа които са със стотици цифри дължина."
-
-#: projects.inc:479
-msgid ""
-"Vilnius Gediminas Technical University and Kaunas University of Technology "
-"(Lithuania)"
-msgstr ""
-"Технически Университет Вилнюс Гедиминас и Университет по Технология Каунас "
-"(Литва)"
+msgstr "NFS at Home е изследователски проект който използва Интернет-свързани компютри за да правят пресяващи стъпки от алгоритъм за разлагане на големи цели числа чрез метод на Пресяване на Числово Поле. Като млад ученик в училище Вие сте получили своя пръв опит в разлагането на цяло число на прости множители като например 15 = 3 * 5 или 35 = 5 * 7. NFS at Home е продължение на този опит, обаче с цели числа които са със стотици цифри дължина."
 
-#: projects.inc:480
-msgid "Software testing"
-msgstr "Тестване на софтуер"
+#: doc/projects.inc:616
+msgid "Study the factorization of large integers"
+msgstr "Изучавай факторизирането на големи цели числа"
 
-#: projects.inc:481
-msgid ""
-"The aim of this project is to provide a powerful distributed computing "
-"platform for scientists of Vilnius Gediminas Technical University (VGTU) as "
-"well as others Lithuanian academic institutions.  Current applications "
-"involve the study of Monte-Carlo based software testing."
-msgstr ""
-"Целта на този проект е да предостави мощна платформа за споделени изчисления "
-"на учените от Техническия Университет Вилнюс Гедиминас (VGTU) а също така и "
-"на други Литовски академични институции.  Текущите приложения включват "
-"изучаване и тестване на софтуер базиран на метода на Монте Карло."
-
-#: projects.inc:503
-msgid "Mathematical Institute of Leiden University / Kennislink"
-msgstr "Математически Институт в Университет Лейден / Кенислинк"
-
-#: projects.inc:505
-msgid ""
-"Search for 'abc-triples': positive integers a,b,c such that a+b=c, a < b "
-"< c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the "
-"product of the distinct prime factors of n. The ABC conjecture says that "
-"there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for "
-"any real h > 1. The ABC conjecture is currently one of the greatest open "
-"problems in mathematics. If it is proven to be true, a lot of other open "
-"problems can be answered directly from it."
-msgstr ""
-"Търсене на 'abc-тройки': положителни цели числа a,b,c такива че a+b=c, a "
-"< b < c, a,b,c нямат общи делители и c > rad(abc), където rad(n) е "
-"произведението от различните прости множители на n. Предположението за ABC "
-"твърди, че съществуват краен брой a,b,c такива, че log(c)/log(rad(abc)) > h "
-"за всяко реално h > 1. Предположението за ABC в момента е един от "
-"най-големите проблеми в математиката. Ако се докаже, че е вярно, много други "
-"отворени проблеми могат да бъдат решени директно от него."
-
-#: projects.inc:513
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
-msgstr ""
-"Primegrid управлява множество проекти, които търсят много големи прости "
-"числа под различни форми, включително и търсенето на най-голямото известно "
-"просто число."
+msgstr "Primegrid управлява множество проекти, които търсят много големи прости числа под различни форми, включително и търсенето на най-голямото известно просто число."
 
-#: projects.inc:519
+#: doc/projects.inc:662
+msgid "Search for large prime numbers"
+msgstr "Търси големи прости числа"
+
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Колеж РейнМейн Университет по Приложни Науки"
 
-#: projects.inc:521
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
-msgstr ""
-"Търсене на опровержения за две предположения свързани с идентифицирането на "
-"прости числа"
+msgstr "Търсене на опровержения за две предположения свързани с идентифицирането на прости числа"
 
-#: projects.inc:529
+#: doc/projects.inc:672
+msgid "Study the properties of prime numbers"
+msgstr "Изучавай свойствата на простите числа"
+
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI Лаборатория за Паралелни и Разпределени Системи (Унгария)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
-msgstr ""
-"Намиране на всички обобщени двойни бройни системи (в които за основа са "
-"матрици, а за цифри са вектори) до размерност 11."
+msgstr "Намиране на всички обобщени двойни бройни системи (в които за основа са матрици, а за цифри са вектори) до размерност 11."
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Коментар"
+#: doc/projects.inc:682
+msgid "Study number theory"
+msgstr "Изучавай Теорията на числата"
 
-#: ../html/inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Новини са налични и под формата на %sRSS feed%s"
+#: doc/projects.inc:739
+msgid ""
+"Testing and comparison of heuristic methods for getting separations of "
+"parallel algorithms working in the CAD system for designing logic control "
+"systems"
+msgstr "Тестване и сравнение на евристични методи за получаване на разделения в паралелните алгоритми, прилагани в CAD системата за проектиране на логически системи"
 
-# 75%
-#~ msgid "Astronomy, Physics, and Chemistry"
-#~ msgstr "Астрономия, Физика и Химия"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Дискутиране"
 
+#: html/inc/news.inc:112
 #, php-format
-#~ msgid "%s for %s (%s MB)"
-#~ msgstr "%s за %s (%s MB)"
-
-#~ msgid ""
-#~ "BOINC is a program that lets you donate your idle computer time to science "
-#~ "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
-#~ "Community Grid, and many others. <p> After installing BOINC on your "
-#~ "computer, you can connect it to as many of these projects as you like."
-#~ msgstr ""
-#~ "BOINC е програма която Ви позволява да дарите вашето неактивно компютърно "
-#~ "време на научни проекти като например SETI at home, Climateprediction.net, "
-#~ "Rosetta at home, World Community Grid и много други. <p> След като инсталирате "
-#~ "BOINC на вашия компютър можете да се свържете към толкова от тези проекти, "
-#~ "към колкото желаете."
-
-#~ msgid "Browser default"
-#~ msgstr "Браузър по подразбиране"
-
-#, php-format
-#~ msgid ""
-#~ " Use the idle time on your computer (Windows, Mac, or Linux) to cure "
-#~ "diseases, study global warming, discover pulsars, and do many other types of "
-#~ "scientific research.  It's safe, secure, and easy:  %sChoose%s projects  "
-#~ "%sDownload%s and run BOINC software  %sEnter%s an email address and "
-#~ "password. "
-#~ msgstr ""
-#~ " Използвайте неактивното време на своя компютър (Windows, Mac или Linux) за "
-#~ "да лекувате заразни болести, да изучавате глобалното затопляне, да откривате "
-#~ "пулсари и да извършвате много други видове научни изследвания.  Безопасно "
-#~ "е, сигурно и лесно:  %sИзберете%s проекти  %sИзтеглете%s и стартирайте BOINC "
-#~ "софтуера  %sВъведете%s своя имейл адрес и парола. "
-
-#~ msgid "IBM Corporate Community Relations"
-#~ msgstr "IBM Corporate Community Relations"
-
-#~ msgid "Humanitarian research on disease, natural disasters and hunger."
-#~ msgstr ""
-#~ "Хуманитарни изследвания върху заразни болести, природни бедствия и глад."
-
-#~ msgid ""
-#~ "To further critical non-profit research on some of humanity's most "
-#~ "pressing problems by creating the world's largest volunteer computing "
-#~ "grid.  Research includes HIV/AIDS, cancer, muscular dystrophy, dengue "
-#~ "fever, and many more."
-#~ msgstr ""
-#~ "Към бъдещо критическо изследване с не-стопанска цел на някои от най-"
-#~ "належащите човешки проблеми като се създаде най-голямата световна мрежа "
-#~ "за споделени изчисления.  Изследването включва СПИН, рак, мускулна "
-#~ "дистрофия, тропическа треска и много други."
-
-#~ msgid ""
-#~ "Primegrid is generating a public sequential prime number database, and is "
-#~ "searching for large twin primes of the form k*2<sup>n</sup>+1 and "
-#~ "k*2<sup>n</sup>-1"
-#~ msgstr ""
-#~ "Primegrid генерира като резултат публична база от данни от прости числа и "
-#~ "търси големи прости числа близнаци записани във формата k*2<sup>n</sup>+1 "
-#~ "и k*2<sup>n</sup>-1"
-
-#~ msgid "FreeHAL"
-#~ msgstr "FreeHAL"
-
-#~ msgid "private"
-#~ msgstr "частен"
-
-#~ msgid "POEM at HOME"
-#~ msgstr "POEM at HOME"
-
-#~ msgid "Docking at Home"
-#~ msgstr "Docking at Home"
-
-#~ msgid "GPUGrid.net"
-#~ msgstr "GPUGrid.net"
-
-#~ msgid "Superlink at Technion"
-#~ msgstr "Superlink at Technion"
-
-#~ msgid "The Lattice Project"
-#~ msgstr "The Lattice Project"
-
-#~ msgid "Malariacontrol.net"
-#~ msgstr "Malariacontrol.net"
-
-#~ msgid "Rosetta at home"
-#~ msgstr "Rosetta at home"
-
-#~ msgid "SIMAP"
-#~ msgstr "SIMAP"
-
-#~ msgid "Virtual Prairie"
-#~ msgstr "Виртуална Прерия"
-
-#~ msgid "University of Houston"
-#~ msgstr "Университет Хюстън"
-
-#~ msgid "Study of botanical ecosystems"
-#~ msgstr "Изучаване на ботанически екосистеми"
-
-#~ msgid ""
-#~ "Provide ecological guidelines on the design of prairies with the best "
-#~ "potential for water purification."
-#~ msgstr ""
-#~ "Предоставя екологични насоки върху дизайна на прериите заедно с най-добър "
-#~ "потенциал за пречистване на водата."
-
-#~ msgid "Climateprediction.net"
-#~ msgstr "Climateprediction.net"
-
-#~ msgid "Astronomy/Physics/Chemistry"
-#~ msgstr "Астрономия/Физика/Химия"
-
-#~ msgid "eOn"
-#~ msgstr "eOn"
-
-#~ msgid "Orbit at home"
-#~ msgstr "Orbit at home"
-
-#~ msgid "Planetary Science Institute"
-#~ msgstr "Институт за Планетарни Науки"
-
-#~ msgid "Monitor and study the hazard posed by near-Earth asteroids"
-#~ msgstr ""
-#~ "Наблюдаване и изучаване на риска породен от близки до Земята астероиди"
-
-#~ msgid "Cosmology at Home"
-#~ msgstr "Cosmology at Home"
-
-#~ msgid "University of Illinois at Urbana-Chamapign"
-#~ msgstr "Университет Илинойс в Урбана-Шампейн"
-
-#~ msgid "Milkyway at home"
-#~ msgstr "Milkyway at home"
-
-#~ msgid "Leiden Classical"
-#~ msgstr "Leiden Classical"
-
-#~ msgid "uFluids at home"
-#~ msgstr "uFluids at home"
-
-#~ msgid "Purdue University"
-#~ msgstr "Университет Пърдю"
-
-#~ msgid "Physics/Aeronautics"
-#~ msgstr "Физика/Аеронавтика"
-
-#~ msgid ""
-#~ "The uFluids project simulates two-phase fluid behavior in microgravity "
-#~ "and microfluidics problems. Our goal is to design better satellite "
-#~ "propellant management devices and address two-phase flow in microchannel "
-#~ "and MEMS devices."
-#~ msgstr ""
-#~ "Проектът uFluids симулира двуфазно поведение на флуид при микро-"
-#~ "гравитация и проблеми при микро-флуиди. Нашата цел е да създадем по-добри "
-#~ "устройства за управление на сателитното ракетно гориво и да управляваме "
-#~ "двуфазен поток в устройства с микро-канали и MEMS - Микро Електрически "
-#~ "Механични Системи."
-
-#~ msgid "Einstein at home"
-#~ msgstr "Einstein at home"
-
-#~ msgid "LHC at home"
-#~ msgstr "LHC at home"
-
-#~ msgid "SETI at home"
-#~ msgstr "SETI at home"
-
-#~ msgid "Quantum Monte Carlo at Home"
-#~ msgstr "Quantum Monte Carlo at Home"
-
-#~ msgid "University of Muenster (Germany)"
-#~ msgstr "Университет Мюнстер (Германия)"
-
-#~ msgid ""
-#~ "Study the structure and reactivity of molecules using Quantum Chemistry."
-#~ msgstr ""
-#~ "Изучаване структурата и реактивността на молекулите с помощта на "
-#~ "Квантовата Химия."
-
-#~ msgid "Spinhenge at home"
-#~ msgstr "Spinhenge at home"
-
-#~ msgid "CAS at home"
-#~ msgstr "CAS at home"
-
-#~ msgid "Yoyo at home"
-#~ msgstr "Yoyo at home"
-
-#~ msgid "EDGeS at Home"
-#~ msgstr "EDGeS at Home"
-
-#~ msgid "Ibercivis"
-#~ msgstr "Ibercivis"
-
-#~ msgid "World Community Grid"
-#~ msgstr "World Community Grid"
-
-#~ msgid "Enigma at Home"
-#~ msgstr "Enigma at Home"
-
-#~ msgid "Collatz Conjecture"
-#~ msgstr "Collatz Conjecture"
-
-#~ msgid "NFS at home"
-#~ msgstr "NFS at home"
-
-#~ msgid "VTU at home"
-#~ msgstr "VTU at home"
-
-#~ msgid "AQUA at home"
-#~ msgstr "AQUA at home"
-
-#~ msgid "D-Wave Systems, Inc."
-#~ msgstr "D-Wave Systems, Inc."
-
-#~ msgid "Quantum computing"
-#~ msgstr "Квантови изчисления"
-
-#~ msgid ""
-#~ "D-Wave's AQUA (Adiabatic QUantum Algorithms) is a research project whose "
-#~ "goal is to predict the performance of superconducting adiabatic quantum "
-#~ "computers on a variety of hard problems arising in fields ranging from "
-#~ "materials science to machine learning. AQUA at home uses Internet-connected "
-#~ "computers to help design and analyze quantum computing algorithms, using "
-#~ "Quantum Monte Carlo techniques."
-#~ msgstr ""
-#~ "Проектът AUQA (АКВА - Адиебатни КВантови Алгоритми) на фирмата D-Wave "
-#~ "Systems представлява изследователски проект чиято цел е да предскаже "
-#~ "производителността на супер-проводящи адиебатни квантови компютри при "
-#~ "множество трудни проблеми които се появяват в области граничещи от "
-#~ "материалознанието до машинното обучение. AQUA at home използва Интернет-"
-#~ "свързани компютри да помогнат да се създадат и анализират квантови "
-#~ "изчислителни алгоритми, с помощта на Квантови Монте Карло техники."
-
-#~ msgid "ABC at home"
-#~ msgstr "ABC at home"
-
-#~ msgid "PrimeGrid"
-#~ msgstr "PrimeGrid"
-
-#~ msgid "primaboinca"
-#~ msgstr "primaboinca"
-
-#~ msgid "SZTAKI Desktop Grid"
-#~ msgstr "SZTAKI Desktop Grid"
-
-#~ msgid "Chess960 at home"
-#~ msgstr "Chess960 at home"
-
-#~ msgid "Chess-960.org"
-#~ msgstr "Chess-960.org"
-
-#~ msgid "Game-playing"
-#~ msgstr "Игра на дъска"
-
-#~ msgid ""
-#~ "This project studies Chess 960, a variant of orthodox chess. In classical "
-#~ "chess the starting position of the game never changes.  In Chess 960, "
-#~ "just before the start of every game, the initial configuration of the "
-#~ "chess pieces is determined randomly."
-#~ msgstr ""
-#~ "Този проект изучава Chess 960, вариант на общоприетия шах. В класическия "
-#~ "шах стартовата позиция на играта никога не се променя.  В Chess 960 точно "
-#~ "преди старта на всяка игра, първоначалната конфигурация на фигурите се "
-#~ "определя на случаен принцип."
-
-#~ msgid "The current release is known to work with these Linux versions:"
-#~ msgstr "Текущата версия е известно, че работи със следните Линукс версии:"
-
-#~ msgid ""
-#~ "For other Linux versions, check if a BOINC package is offered by your "
-#~ "Linux distribution."
-#~ msgstr ""
-#~ "За други Линукс версии, проверете дали има създаден BOINC пакет за вашата "
-#~ "конкретна Линукс версия."
-
-#~ msgid ""
-#~ "Alternatively, download the %1BOINC client for older Linux versions%2. "
-#~ "This doesn't have a graphical interface, but it should work on all Linux "
-#~ "systems, both x86 and x64."
-#~ msgstr ""
-#~ "Като алтернатива, изтеглете %1BOINC клиент за по-стари Линукс версии%2. "
-#~ "Това няма графичен интерфейс, но би трябвало да работи на всички Линукс "
-#~ "системи, както на x86 така и на x64."
-
-#~ msgid ""
-#~ "Note: if your computer is equipped with an Graphics Processing Unit "
-#~ "(GPU), you may be able to %suse it to compute faster%s"
-#~ msgstr ""
-#~ "Бележка: ако вашия компютър е екипиран с Графическо Изчисляващо "
-#~ "Устройство (GPU), може и да бъдете в състояние да го %sизползвате да "
-#~ "изчислява по-бързо%s"
-
-#~ msgid "TeraFLOPS."
-#~ msgstr "TeraFLOPS."
-
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "POLL_INTRO"
-#~ msgstr ""
-#~ "Several volunteer computing projects, including Climateprediction.net, "
-#~ "Einstein at home, and SETI at home, use software called BOINC. If you "
-#~ "participate in projects like this, we request that you answer the "
-#~ "following questions. This will help BOINC-based projects increase "
-#~ "participation and achieve greater scientific results. <p> Please answer "
-#~ "as many questions as you want, then go to the bottom and click OK. If you "
-#~ "previously completed the survey but your answers have changed, please "
-#~ "complete it again - your new answers will replace the old ones. <p> The "
-#~ "current results of the survey are <a href=poll_results.php>here</a>. "
-
-#~ msgid "POLL_RUN"
-#~ msgstr "Do you run BOINC?"
-
-#~ msgid "POLL_PARTICIPATION"
-#~ msgstr "Your participation"
-
-#~ msgid "POLL_COMPUTERS"
-#~ msgstr "Your computers"
-
-#~ msgid "POLL_YOU"
-#~ msgstr "You"
-
-#~ msgid "POLL_NATIONALITY"
-#~ msgstr "Nationality"
-
-#~ msgid "POLL_COMMENTS"
-#~ msgstr "Comments"
-
-#~ msgid "POLL_COMMENTS_QUESTION"
-#~ msgstr ""
-#~ "Please suggest ways that BOINC, and the projects that use it, could be "
-#~ "improved:"
-
-#~ msgid "POLL_OTHER"
-#~ msgstr "Other:"
-
-#~ msgid "POLL_CHECK_ALL"
-#~ msgstr "[check all that apply]"
-
-#~ msgid "POLL_DONE"
-#~ msgstr "When done click:"
-
-#~ msgid "POLL_CURRENT"
-#~ msgstr "Yes - I have been running BOINC on my computer for..."
-
-#~ msgid "POLL_TWEEK"
-#~ msgstr "less than a week"
-
-#~ msgid "POLL_TMONTH"
-#~ msgstr "less than a month"
-
-#~ msgid "POLL_TYEAR"
-#~ msgstr "less than a year"
-
-#~ msgid "POLL_TMOREYEAR"
-#~ msgstr "more than a year"
-
-#~ msgid "POLL_LAPSED"
-#~ msgstr "No - I was running BOINC, but stopped because..."
-
-#~ msgid "POLL_LINTEREST"
-#~ msgstr "I lost interest"
-
-#~ msgid "POLL_LCOMPLICATED"
-#~ msgstr "it was too complicated"
-
-#~ msgid "POLL_LSTOPPED"
-#~ msgstr "I stopped it and forgot to start again"
-
-#~ msgid "POLL_LPROBLEMS"
-#~ msgstr "it caused problems on my computer"
-
-#~ msgid "POLL_LPOWER"
-#~ msgstr "it used too much electricity"
-
-#~ msgid "POLL_LNONBOINC"
-#~ msgstr "I switched to a non-BOINC computing project"
-
-#~ msgid "POLL_FAILED"
-#~ msgstr "No - I tried running BOINC, but..."
-
-#~ msgid "POLL_FINSTALL"
-#~ msgstr "the software didn't install correctly"
-
-#~ msgid "POLL_FFIGURE"
-#~ msgstr "I couldn't figure out how to use the software"
-
-#~ msgid "POLL_FNETWORK"
-#~ msgstr "I had network communication problems"
-
-#~ msgid "POLL_FATTACH"
-#~ msgstr "I couldn't attach to a project"
-
-#~ msgid "POLL_FWORK"
-#~ msgstr "I attached to a project, but never got any work"
-
-#~ msgid "POLL_NEVER"
-#~ msgstr "No - I never tried running BOINC, because..."
-
-#~ msgid "POLL_NSECURITY"
-#~ msgstr "I was concerned about security"
-
-#~ msgid "POLL_NPROJECT"
-#~ msgstr "I wasn't interested in any of the projects"
-
-#~ msgid "POLL_NPERMISSION"
-#~ msgstr "I don't have permission to run it on my computer"
-
-#~ msgid "POLL_NVERSION"
-#~ msgstr "No version was available for my computer"
-
-#~ msgid "POLL_KIND"
-#~ msgstr "What kind of computers do you have running BOINC?"
-
-#~ msgid "POLL_WHERE"
-#~ msgstr "Where are they?"
-
-#~ msgid "POLL_WORK"
-#~ msgstr "Work"
-
-#~ msgid "POLL_SCHOOL"
-#~ msgstr "School"
-
-#~ msgid "POLL_HOW_MANY"
-#~ msgstr "How many computers?"
-
-#~ msgid "POLL_TURNED_ON"
-#~ msgstr "On average, how many hours per day are they powered on?"
-
-#~ msgid "POLL_AGE"
-#~ msgstr "Age"
-
-#~ msgid "POLL_SEX"
-#~ msgstr "Sex"
-
-#~ msgid "POLL_MALE"
-#~ msgstr "Male"
-
-#~ msgid "POLL_FEMALE"
-#~ msgstr "Female"
-
-#~ msgid "POLL_EXPERTISE"
-#~ msgstr "Your level of computer expertise"
-
-#~ msgid "POLL_LEVB"
-#~ msgstr "Beginner"
-
-#~ msgid "POLL_LEVI"
-#~ msgstr "Intermediate"
-
-#~ msgid "POLL_LEVA"
-#~ msgstr "Advanced"
-
-#~ msgid "POLL_LEARN_WHERE"
-#~ msgstr "Where did you learn about BOINC projects?"
-
-#~ msgid "POLL_WTV"
-#~ msgstr "TV/radio/newspaper"
-
-#~ msgid "POLL_WPERS"
-#~ msgstr "From friends, relatives, or coworkers"
-
-#~ msgid "POLL_WTEAM"
-#~ msgstr "Team message boards or web sites"
-
-#~ msgid "POLL_WBOINC"
-#~ msgstr "The BOINC web site"
-
-#~ msgid "POLL_WWEB"
-#~ msgstr "Other web sites"
-
-#~ msgid "POLL_FACTOR"
-#~ msgstr ""
-#~ "Which are the most important factors when you decide whether to "
-#~ "participate in a BOINC project?"
-
-#~ msgid "POLL_GRAPHICS"
-#~ msgstr "Nice-looking screensaver graphics"
-
-#~ msgid "POLL_CREDIT_FAIR"
-#~ msgstr "Fair and quick granting of credit for work done"
-
-#~ msgid "POLL_CREDIT_MORE"
-#~ msgstr "Getting more credit from this project than from others"
-
-#~ msgid "POLL_MB_FRIENDLY"
-#~ msgstr "Helpful and friendly message boards"
-
-#~ msgid "POLL_MB_STAFF"
-#~ msgstr "Participation by project staff on the message boards"
-
-#~ msgid "POLL_WEB_SITE"
-#~ msgstr "Informative project web site"
-
-#~ msgid "POLL_SCIENCE_IMPORTANT"
-#~ msgstr "The science is important and beneficial"
-
-#~ msgid "POLL_SCIENCE_PUBLIC"
-#~ msgstr "Non-profit, and results are public"
-
-#~ msgid "POLL_RECOGNIZE"
-#~ msgstr "Personal recognition if my computer finds something"
-
-#~ msgid "POLL_PUBLISH"
-#~ msgstr "Publication by the project in scientific journals"
-
-#~ msgid "POLL_EMAIL"
-#~ msgstr "Periodic email newsletters from the project"
-
-#~ msgid "POLL_NPROJECTS"
-#~ msgstr "How many BOINC projects do you participate in?"
-
-#~ msgid "POLL_SSAVER"
-#~ msgstr "Do you run BOINC as a screensaver?"
-
-#~ msgid "POLL_YES"
-#~ msgstr "Yes"
-
-#~ msgid "POLL_NO"
-#~ msgstr "No"
-
-#~ msgid "POLL_MBOARDS"
-#~ msgstr "Your usage of project messages boards:"
-
-#~ msgid "POLL_MBR"
-#~ msgstr "to read information"
-
-#~ msgid "POLL_MBRW"
-#~ msgstr "to read and post information"
-
-#~ msgid "POLL_NONE"
-#~ msgstr "None"
-
-#~ msgid "POLL_HELP"
-#~ msgstr ""
-#~ "Where do you get information to help resolve problems with BOINC and/or "
-#~ "BOINC projects?"
-
-#~ msgid "POLL_HELP_PMB"
-#~ msgstr "The project message boards"
-
-#~ msgid "POLL_HELP_BMB"
-#~ msgstr "The BOINC message boards"
-
-#~ msgid "POLL_HELP_BDOC"
-#~ msgstr "The BOINC web site"
-
-#~ msgid "POLL_HELP_BMLIST"
-#~ msgstr "BOINC mailing lists"
-
-#~ msgid "POLL_HELP_WIKI"
-#~ msgstr "The Unofficial BOINC Wiki"
-
-#~ msgid "POLL_HELP_TEAM"
-#~ msgstr "Team web sites"
-
-#~ msgid "POLL_HELP_GOOGLE"
-#~ msgstr "Google or other search engines"
-
-#~ msgid "POLL_ERROR_TITLE"
-#~ msgstr "Error - results not recorded"
-
-#~ msgid "POLL_ERROR_TEXT"
-#~ msgstr ""
-#~ "An internal error has prevented us from recording your survey response.  "
-#~ "Please try again later."
-
-#~ msgid "POLL_RECORDED"
-#~ msgstr "Survey response recorded"
-
-#~ msgid "POLL_THANKS"
-#~ msgstr "Thank you for completing the BOINC user survey."
-
-#~ msgid "POLL_RESULTS_TITLE"
-#~ msgstr "Survey results"
-
-#~ msgid "POLL_RESULTS_TEXT"
-#~ msgstr ""
-#~ "These are the current results of the <a href=poll.php>BOINC user survey</"
-#~ "a>.  This page is updated every hour."
-
-# #############################################
-# help.php
-# #############################################
-#~ msgid "HELP_TITLE"
-#~ msgstr "Getting help with BOINC"
-
-#~ msgid "HELP_HEADING1"
-#~ msgstr "Online Help"
-
-#~ msgid "HELP_P1_1"
-#~ msgstr ""
-#~ "BOINC Online Help lets you talk one-on-one with experienced BOINC users, "
-#~ "who can: %s answer questions about BOINC and volunteer computing; %s walk "
-#~ "you through the process of installing and using BOINC; %s troubleshoot "
-#~ "any problems you might have. "
-
-#~ msgid "HELP_P1_2"
-#~ msgstr ""
-#~ "BOINC Online Help is based on %sSkype%s, an Internet-based telephone "
-#~ "system. Skype is free (both the software and the calls). If you don't "
-#~ "already have Skype, please %sdownload and install it now%s. When you're "
-#~ "finished, return to this page. "
-
-#~ msgid "HELP_P1_3"
-#~ msgstr ""
-#~ "The best way to get help is by voice, for which you need either built-in "
-#~ "microphone and speakers or an external headset for your computer. You can "
-#~ "also use Skype's text-based chat system or regular email (if you don't "
-#~ "have Skype) to communicate with Help Volunteers."
-
-#~ msgid "HELP_P1_4"
-#~ msgstr ""
-#~ "Volunteers speaking several languages are available. Please select a "
-#~ "language: "
-
-#~ msgid "HELP_HEADING2"
-#~ msgstr "BOINC help on the web"
-
-#~ msgid "HELP_P2_ITEM1"
-#~ msgstr "BOINC user's manual"
-
-#~ msgid "HELP_P2_ITEM2"
-#~ msgstr "Troubleshooting BOINC "
-
-#~ msgid "HELP_P2_ITEM3"
-#~ msgstr "BOINC-related web sites "
-
-#~ msgid "HELP_P2_ITEM4"
-#~ msgstr "The BOINC message boards "
-
-#~ msgid "HELP_P2_ITEM5"
-#~ msgstr "The message boards on any BOINC-based project "
-
-#~ msgid "HELP_HEADING3"
-#~ msgstr "Be a Help Volunteer"
-
-#~ msgid "HELP_P3_1"
-#~ msgstr ""
-#~ "If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-#~ "Volunteer%s. It's a great way to help the cause of scientific research "
-#~ "and volunteer computing - and it's fun!  "
-
-#~ msgid "HELP_P3_2"
-#~ msgstr ""
-#~ "If you're already a Help Volunteer: to edit your settings, %sclick here"
-#~ "%s. "
-
-# #############################################
-# index.php
-# #############################################
-#~ msgid "HOME_HEADING1"
-#~ msgstr "Volunteer"
-
-#~ msgid "HOME_P1"
-#~ msgstr ""
-#~ " Use the idle time on your computer  (Windows, Mac, or Linux)  to cure "
-#~ "diseases, study global warming,  discover pulsars, and do many other "
-#~ "types of scientific research.  It's safe, secure, and easy:  %sChoose%s "
-#~ "projects  %sDownload%s and run BOINC software  %sEnter%s an email address "
-#~ "and password. "
-
-#~ msgid "HOME_P2"
-#~ msgstr ""
-#~ "Or, if you run several projects, try an %saccount manager%s such as "
-#~ "%sGridRepublic%s or %sBAM!%s. "
-
-#~ msgid "HOME_P3"
-#~ msgstr ""
-#~ "If you have any questions, or need help getting started, you can %stalk "
-#~ "to a Volunteer Helper%s. "
-
-#~ msgid "HOME_DOWNLOAD"
-#~ msgstr "Download"
-
-#~ msgid "HOME_WEB_SITES"
-#~ msgstr "Web"
-
-#~ msgid "HOME_ADD_ONS"
-#~ msgstr "Add-ons"
-
-#~ msgid "HOME_SURVEY"
-#~ msgstr "Survey"
-
-#~ msgid "HOME_BOINC"
-#~ msgstr "Berkeley Open Infrastructure for Network Computing"
-
-#~ msgid "HOME_BOINC_DESC"
-#~ msgstr ""
-#~ "Open-source software for %svolunteer computing%s and %sgrid computing%s"
-
-# download.php 2006/08/03 by je2bwm
-# #######################################
-#~ msgid "DL_DOWNLOAD"
-#~ msgstr "Изтеглете BOINC"
-
-#~ msgid "DL_VERSION_LNAME_SIZE"
-#~ msgstr "%s за %s (%s MB)"
-
-#~ msgid "DL_WHATS_BOINC"
-#~ msgstr ""
-#~ " BOINC е програма, която Ви позволява да дарите        времето, през "
-#~ "което Вашият компюър не се използва, на научни проекти като        "
-#~ "SETI at home, Climateprediction.net, Rosetta at home,        World Community "
-#~ "Grid, и много други.        <p>        След инсталирането на BOINC на "
-#~ "Вашият компютър,        можете да участвате в толкова проекти, колкото "
-#~ "пожелаете.        <p>"
-
-#~ msgid "DL_SYSTEMREQ"
-#~ msgstr "Системни изисквания"
-
-#~ msgid "DL_RELNOTES"
-#~ msgstr "Информация за версията"
-
-#~ msgid "DL_OTHERSYS"
-#~ msgstr "Други системи"
-
-#~ msgid "DL_ALLVERSIONS"
-#~ msgstr "Всички версии"
-
-#~ msgid "DL_IF_OTHERTYPES"
-#~ msgstr "Ако компютърът Ви не е от един от горните типове, можете"
-
-#~ msgid "DL_MAKEYOUROWN"
-#~ msgstr "%s да си направите собствена версия на програмата %s или"
-
-#~ msgid "DL_DL_FROM3RDP"
-#~ msgstr ""
-#~ "%s да си изтеглите програмата от други сайтове %s (версия за Solaris/"
-#~ "Opteron, Linux/Opteron, Linux/PPC, HP-UX, и FreeBSD, и други)."
-
-#~ msgid "DL_DOWNLOAD_TITLE"
-#~ msgstr "BOINC: изчисление в името на науката"
-
-# #############################################
-# system_requirements.php by je2bwm 2006/08/07
-# #############################################
-#~ msgid "SRQ_PAGE_TITLE"
-#~ msgstr "Системни изисквания"
-
-#~ msgid "SRQ_INTRO"
-#~ msgstr ""
-#~ "Компютърът Ви трябва да покрива следните изисквания за да работи с BOINC. "
-#~ "BOINC-базираните проекти могат да имат допълнителни изисквания."
-
-#~ msgid "SRQ_MSWIN"
-#~ msgstr "Windows"
-
-#~ msgid "SRQ_OS"
-#~ msgstr "Операционна система"
-
-#~ msgid "SRQ_MSWIN_REQ_OS"
-#~ msgstr "Windows 98 или по-нов"
-
-#~ msgid "SRQ_MIN_HARDWARE"
-#~ msgstr "Минимален хардуер"
-
-#~ msgid "SRQ_MSWIN_REQ_CPU"
-#~ msgstr "Pentium 233 MHz (Препоръчително: Pentium 500 MHz или повече)"
-
-#~ msgid "SRQ_MSWIN_REQ_RAM"
-#~ msgstr "64 MB RAM (Препоръчително: 128 MB RAM или повече)"
-
-#~ msgid "SRQ_MSWIN_REQ_DISK"
-#~ msgstr "20 MB свободно дисково пространство"
-
-#~ msgid "SRQ_APPLMAC"
-#~ msgstr "Macintosh"
-
-#~ msgid "SRQ_APPLMAC_REQ_OS"
-#~ msgstr "Mac OS X 10.3 или по-нов"
-
-#~ msgid "SRQ_APPLMAC_REQ_CPU"
-#~ msgstr "Macintosh компютър с Intel x86or PowerPC G3, G4, или G5 процесор"
-
-#~ msgid "SRQ_APPLMAC_REQ_RAM"
-#~ msgstr "128 MB RAM (Препоръчително: 256 MB RAM или повече)"
-
-#~ msgid "SRQ_APPLMAC_REQ_DISK"
-#~ msgstr "200 MB свободно дисково прострамство"
-
-#~ msgid "SRQ_LINUX"
-#~ msgstr "Linux"
-
-#~ msgid "SRQ_LINUX_REQ_KERNEL"
-#~ msgstr "Linux kernel 2.2.14 или по-нов"
-
-#~ msgid "SRQ_LINUX_REQ_GLIBC"
-#~ msgstr "glibc 2.3.2 или по-нов"
-
-#~ msgid "SRQ_LINUX_REQ_XFREE86"
-#~ msgstr "XFree86-3.3.6 или по-нов"
-
-#~ msgid "SRQ_LINUX_REQ_GTKPLUS"
-#~ msgstr "gtk+2.0 или по-нов"
-
-#~ msgid "SRQ_LINUX_REQ_CPU"
-#~ msgstr "Pentium 500 MHz или повече"
-
-#~ msgid "SRQ_LINUX_REQ_RAM"
-#~ msgstr "64 MB RAM"
-
-#~ msgid "SRQ_LINUX_REQ_DISK"
-#~ msgstr "50 MB свободно дисково пространство"
-
-# #############################################
-# release notes by je2bwm 2006/08/09
-# #############################################
-#~ msgid "RLN_PAGE_TITLE"
-#~ msgstr "Информация за версията"
-
-#~ msgid "RLN_WHATS_NEW"
-#~ msgstr "Кое е новото в %s"
-
-#~ msgid "RLN_INSTALLING"
-#~ msgstr "Инсталиране"
-
-#~ msgid "RLN_UNINSTALLING"
-#~ msgstr "Деинсталиране"
-
-#~ msgid "RLN_KNOWN_ISSUES"
-#~ msgstr "Версиите до сега"
-
-#~ msgid "RLN_TROUBLESHOOT"
-#~ msgstr "Отстраняване на проблеми"
-
-#~ msgid "RLN_NEWF_5_4_AM"
-#~ msgstr ""
-#~ "Поддръжка на 'Мениджъри на акаунтите' - уеб-сайтове, които Ви позволяват "
-#~ "да разглеждате BOINC проектите, да се присъединявате или отписвате в/от "
-#~ "тях, променяте поделянето на ресурсите и настройките, и всичко това става "
-#~ "за секунди бързо и лесно. Мениджърите на акаунтите вършат прекрасна "
-#~ "работа и ако имате няколко компютъра - трябва да направите настройките "
-#~ "само веднъж."
-
-#~ msgid "RLN_NEWF_5_4_PREF_OVERRIDE"
-#~ msgstr ""
-#~ "Общите предпочитания (настройки) могат да бъдат отменени от такива от "
-#~ "локален файл; подробностите за това са  %s тук %s."
-
-#~ msgid "RLN_NEWF_5_4_ALERTS_CONNECT"
-#~ msgstr ""
-#~ "BOINC вече може да Ви предупреждава когато има нужда да създадете мрежова "
-#~ "връзка."
-
-#~ msgid "RLN_RECOMMEND_LATEST_VERSION"
-#~ msgstr "Препоръчваме на всички BOINC потребители да използват %s."
-
-#~ msgid "RLN_LINK2_VERSION_HISTORY"
-#~ msgstr "Подробен списък на версиите има %s тук %s."
-
-#~ msgid "RLN_MSWIN"
-#~ msgstr "Windows"
-
-#~ msgid "RLN_APPLMAC"
-#~ msgstr "Macintosh"
-
-#~ msgid "RLN_LINUX"
-#~ msgstr "Linux"
-
-#~ msgid "RLN_MSWIN_INSTALL_MODES"
-#~ msgstr "BOINC може да бъде инсталиран в някои от следните режими:"
-
-#~ msgid "RLN_SINGLE_USER_INSTALL"
-#~ msgstr "Инсталация за определен потребител"
-
-#~ msgid "RLN_MSWIN_INSTALL_SINGLE_USER_DESC"
-#~ msgstr ""
-#~ "Това е препоръчителния режим. BOINC работи докато Вие (инсталиращият "
-#~ "потребител) сте логнати в системата. BOINC се показва във Вашето Start "
-#~ "меню, но не и в менюто на останалите потребители на компютъра. Командата "
-#~ "'Show graphics' на BOINC работи само за Вас. BOINC скриин-сеивъра показва "
-#~ "графиките от програмата само за Вас (останалите потребители могат да "
-#~ "стартират скриин-сеивъра, но ще виждат  само текстова информация)."
-
-#~ msgid "RLN_SHARED_INSTALL"
-#~ msgstr "Споделена инсталация"
-
-#~ msgid "RLN_MSWIN_INSTALL_SHARED_DESC"
-#~ msgstr ""
-#~ "BOINC работи докато които и да е потребител е логнат в системата. BOINC "
-#~ "се показва в Start менюто на всички потребители. Докато BOINC работи, "
-#~ "това е за определен потребител (или първият логнат, или първия, стартирал "
-#~ "BOINC). Командата 'Show graphics' на BOINC работи само за този "
-#~ "потребител.  BOINC скриин-сеивъра показва графиките от програмата само за "
-#~ "този потребител (останалите потребители могат да стартират скриин-"
-#~ "сеивъра, но ще виждат само текстова информация)."
-
-#~ msgid "RLN_WIN_SERVICE_INSTALL"
-#~ msgstr "Инсталиране като услуга"
-
-#~ msgid "RLN_MSWIN_INSTALL_WINSERVICE_DESC"
-#~ msgstr ""
-#~ "BOINC работи през цялото време (дори никой да не е логнат). BOINC се "
-#~ "показва в Start менюто на инсталиралия програмата потребител, но не и на "
-#~ "останалите потребители.  Командата 'Show graphics' на BOINC мениджъра "
-#~ "няма да работи за никои потребител. BOINC скриин-сеивъра ще показва само "
-#~ "текстова информация."
-
-#~ msgid "RLN_LINUX_INSTALL_SEA_DESC"
-#~ msgstr ""
-#~ "Версията на BOINC за Linux се разпространява като саморазархивиращ се "
-#~ "архив. Този тип инсталация изисква да сте добре запознати с конзолните "
-#~ "команди на UNIX."
-
-#~ msgid "RLN_LINUX_DL_FILENAME"
-#~ msgstr "Файловете за сваляне имат имена, подобни на <code>%s</code>."
-
-#~ msgid "RLN_LINUX_RUN_SEA"
-#~ msgstr "След изтеглянето на файла, напишете <pre>%s</pre>"
-
-#~ msgid "RLN_LINUX_RESULTOF_SEA"
-#~ msgstr "Това ще създаде директория BOINC/ със следните файлове:"
-
-#~ msgid "RLN_BOINC_CORE_CL"
-#~ msgstr "Ядрото на BOINC клиента"
-
-#~ msgid "RLN_BOINC_MANAGER"
-#~ msgstr "BOINC мениджъра"
-
-#~ msgid "RLN_SCRIPT_RUN_CLIENT_DESC"
-#~ msgstr "Скрипт, който стартира BOINC клиента."
-
-#~ msgid "RLN_SCRIPT_RUN_MANAGER_DESC"
-#~ msgstr "Скрипт, който стартира BOINC мениджъра."
-
-#~ msgid "RLN_LINUX_AUTOSTART"
-#~ msgstr ""
-#~ "Може да искате да%s стартирате BOINC клиента автоматично %sпри зареждане "
-#~ "на операционната система."
-
-#~ msgid "RLN_MSWIN_UNINSTALL_DESC"
-#~ msgstr ""
-#~ "От меню Start, изберете Programs / BOINC / Uninstall. Или от меню Start, "
-#~ "изберете Settings / Add or remove programs."
-
-#~ msgid "RLN_ISSUE_PROXY_NTLMAUTH"
-#~ msgstr ""
-#~ "Ако използвате прокси сървър, при ъпдейт моля имайте в предвид, че в "
-#~ "момента разработваме подобрение за прокси сървъри, които използват NTLM "
-#~ "удостоверяване."
-
-#~ msgid "RLN_ISSUE_MSWIN_LATEST_DIRECTX"
-#~ msgstr ""
-#~ "Ако BOINC приложенията постоянно забиват на Вашия компютър, вероятно "
-#~ "имате нужда да инсталирате %sпоследната версия на DirectX %s."
-
-#~ msgid "RLN_ISSUE_MSWIN_SCREENSAVER_XP3D"
-#~ msgstr ""
-#~ "Ако BOINC работи едновременно със 3-D скриин-сеивърите на Windows XP, "
-#~ "компютърът ви може да стане по-бавен, тромав и неотзивчив."
-
-#~ msgid "RLN_ISSUE_MSWIN_NO_SCREENSAVER"
-#~ msgstr ""
-#~ "Програмите, създадени преди Октомври 2004 не показват графики на скриин-"
-#~ "сеивъра при инсталиране като услуга или споделена инсталация, или "
-#~ "инсталация за един потребител, ако е зададена парола на скриин-сеивъра "
-#~ "при NT-базирани машини."
-
-#~ msgid "RLN_TROUBLESHOOT_INTRO"
-#~ msgstr ""
-#~ "Ако имате проблеми с BOINC, ето няколко неща, които можете да "
-#~ "предприемете:"
-
-#~ msgid "RLN_TROUBLESHOOT_PRJ_SPECIFIC"
-#~ msgstr ""
-#~ "Ако проблема е с точно определен проект, отидете на раздела 'Въпроси и "
-#~ "Отговори' на уеб-саита на проекта. Там може да намерите решение на "
-#~ "проблема си. Ако не намерите, опиешете проблема си там, и ще получите "
-#~ "помощ от останалите потребители."
-
-#~ msgid "RLN_TROUBLESHOOT_PROBLEM_PERSIST"
-#~ msgstr ""
-#~ "Ако проблема с определения проект продължава да съществува, използвайте "
-#~ "BOINC мениджъра за да 'рестартирате' проекта. Това изтрива всичката "
-#~ "текуща работа и започва от начало."
-
-#~ msgid "RLN_TROUBLESHOOT_BOINC_ITSELF"
-#~ msgstr ""
-#~ "Ако имате проблеми със самият BOINC, можете да получите помощ от %s "
-#~ "форумите на BOINC %s."
+msgid "News is available as an %sRSS feed%s"
+msgstr "Новините са налични и под формата на %sRSS фиид%s"
diff --git a/locale/ca/BOINC-Client.mo b/locale/ca/BOINC-Client.mo
index d524c24..55bfba2 100644
Binary files a/locale/ca/BOINC-Client.mo and b/locale/ca/BOINC-Client.mo differ
diff --git a/locale/ca/BOINC-Client.po b/locale/ca/BOINC-Client.po
index 305b254..db4acca 100644
--- a/locale/ca/BOINC-Client.po
+++ b/locale/ca/BOINC-Client.po
@@ -5,12 +5,12 @@
 # Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-08 18:27+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Catalan (http://www.transifex.com/projects/p/boinc/language/ca/)\n"
+"PO-Revision-Date: 2015-02-09 20:53+0000\n"
+"Last-Translator: Rom Walton\n"
+"Language-Team: Catalan (http://www.transifex.com/boinc/boinc/language/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/ca/BOINC-Manager.mo b/locale/ca/BOINC-Manager.mo
index 0048bd7..143645d 100644
Binary files a/locale/ca/BOINC-Manager.mo and b/locale/ca/BOINC-Manager.mo differ
diff --git a/locale/ca/BOINC-Manager.po b/locale/ca/BOINC-Manager.po
index 579fc01..26a3ef8 100644
--- a/locale/ca/BOINC-Manager.po
+++ b/locale/ca/BOINC-Manager.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2015-12-13 18:15+0000\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
 "Last-Translator: Xavier Mor-Mur <xavi.mormur at gmail.com>\n"
 "Language-Team: Catalan (http://www.transifex.com/boinc/boinc/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/locale/ca/BOINC-Project-Generic.po b/locale/ca/BOINC-Project-Generic.po
deleted file mode 100644
index 357e3ee..0000000
--- a/locale/ca/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Andry Blyshchak <youandrytube at gmail.com>, 2015
-# Xavier Mor-Mur <xavi.mormur at gmail.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2015-09-29 20:55+0000\n"
-"Last-Translator: Xavier Mor-Mur <xavi.mormur at gmail.com>\n"
-"Language-Team: Catalan (http://www.transifex.com/boinc/boinc/language/ca/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ca\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Català"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Catalan"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Codi d'alta"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Es requereix un codi d'invitació vàlid per a crear un compte."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Nom"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Us identifica a la pàgina web. Utilitzeu el vostre nom real o un àlies."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Adreça de correu electrònic"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Ha de ser una adreça de correu vàlida del tipus 'nom at domini'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Contrasenya"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Ha de tenir al menys %1 caràcters"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Introduïu de nou la contrasenya"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "País"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Seleccioneu el país que voleu representar, si ho desitgeu."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Codi postal o ZIP"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Crear un compte"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Adreça de correu:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "a oblidat l'adreça de correu electrònic?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Contrasenya:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "ha oblidat la contrasenya?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Segueixi connectat"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Registrar-se"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Text en negreta: [b]text[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Text en cursiva: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Subratllar el text: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Text tatxat: [s]text[/s] (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Cita el text: [quote]text[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Mostrar el codi: [code]code[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Llista: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Llista ordenada: [list=]text[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Insereix una imatge: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Inserta URL: [url]http://url[/url] o [url=http://url]URL text[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Color de la font"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Color de la font: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Defecte"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Vermell fosc"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Vermell"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Taronja"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Marró"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Groc"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Verd"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Oliva"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Cyan"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Blau"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Blau fosc"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indi"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Violeta"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Mida de la lletra"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Mida de la lletra: [size=x-small]small text[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Petita"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Gran"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Tancar totes les etiquetes bbCode obertes"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Tancar les etiquetes"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "El més antic primer"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "El més recent primer"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "El de més alta puntuació primer"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "El més recent primer"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Els més vistos primer"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Els de més missatges primer"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Voluntari moderador"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Administrador del projecte"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Responsable de projecte"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Provador del projecte"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Desenvolupador voluntari"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Provador voluntari"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Científic del projecte"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Plafó d'ajuda d'experts"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Cercar paraules en els fòrums de missatges"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Cercar en els fòrums"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Recerca avançada"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Missatges privats"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Preguntes i respostes"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Panells de missatges"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "tauler de missatges %1"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Anterior"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Següent"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Missatge"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Enviar missatge"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Enviar %1 un missatge privat"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Unit: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Missatges: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Crèdit: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Encara no ha llegit aquest missatge"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "No llegit"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Missatge %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "ocult"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Publicat: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " -en resposta a "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Editar"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Edita aquest missatge"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Últim modificat: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Aquest missatge no es mostra perquè el remitent es troba a la seva llista 'ignorar'.  Feu clic a %1aqui%2 per veure aquest missatge"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Avisa d'aquest missatge com ofensiu"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Informa com ofensiu"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Qualificació: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "qualifica: "
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Fes clic aquí si t'agrada aquest missatge"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Qualifica +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Fes clic aquí si no t'agrada aquest missatge"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Qualifica -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Contestar"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Respon aquest missatge"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Remarca"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Respon remarcant aquest missatge"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Ocult per un moderador"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Missatges %1 de %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "No podeu enviar o valorar missatges fins %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Els missatges han de ser \"adequat per a nens\": no poden tenir\n            contingut que sigui obscè, d'odi inte-recial,\n            sexualment explícit o suggerent.\n        <li> No hi haurà anuncis comercials.\n        <li> No hi haurà enllaços a llocs web relacionats amb contingut sexual,\n            jocs d'atzar, o la intolerància dels altres.\n        <li> No hi haurà missatges destinats a molestar o antagonitzar a altres persones,\n          [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Regles:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Més informació"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Fer visible"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Fer visible aquest missatge"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Ocultar"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Ocultar aquest missatge"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Moure"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Moure el missatge a un altre fil"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Expulsar l'autor"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Voti per expulsar l'autor"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Voti per no expulsar l'autor"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Iniciar votació per expulsar l'autor"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Esborrar"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Esborrar aquesta entrada"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Només els membres de l'equip poden publicar al tauler d'anuncis de l'equip"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Per poder crear un nou fil a %1 heu de tenir un mínim nombre de crèdits. Això es per prevenir i protegir d'un del sistema."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "No pot crear cap més fil en aquest moment. Si us plau esperi una estona abans de provar-ho de nou. Aquest espera es necessària per protegir d'un abús del sistema."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Aquest fil està bloquejat. Només els moderadors del fòrum i els administradors poden publicar-hi."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "No es pot publicar en un fil ocult."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Fil"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Correu"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Opinions"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Últim correu"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Nous missatges en el fil %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Nous missatges en el fil subscrit"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Hi ha nous missatges en el fil '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Marcar tots el fils com a llegits"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Marcar com a llegits tots els fils a tots els taulers de missatges."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "No hi ha servidor"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "No disponible"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Inici"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Treball"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "Escola"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Actualitzar"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Informació de l'ordinador"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "Adreça IP"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(el mateix els últims %1 cops)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Adreça IP externa"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Mostra l'adreça IP"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Nom de domini"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Nom del producte"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Temps Local Estàndard"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 hores"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Propietari"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anònim"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Creat"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Crèdit total"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Crèdit mitjà"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Crèdit multi-projecte"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "Tipus de CPU"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Número de processadors"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Coprocessadors"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Sistema Operatiu"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Versió de BOINC"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Memòria"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Memòria cau"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Espai d'intercanvi"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Espai total en disc"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Espai lliure al disc"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Velocitat mesurada amb punt flotant"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 milions ops/seg"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Velocitat mesurada amb enters"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Velocitat mitja de càrrega"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Desconegut"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Velocitat mitja de descàrrega"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Temps de resposta mitjà"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 dies"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Característiques de l'aplicacion"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Mostra"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Feines"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Nombre de vegades que el client s'ha posat en contacte amb el servidor"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Últim vegada en contactar amb el servidor"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Una fracció del temps que BOINC s'està executant"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Mentre BOINC s'està executant, una fracció d'el temps s'utilitza en una connexió a Internet"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Mentre BOINC s'està executant, una fracció de temps es dedica al càlcul"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Mentre BOINC s'està executant, una fracció de temps es dedica al càlcul amb la GPU"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Mitjana d'eficiència de la CPU"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Durada de la tasca del factor de correcció"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Ubicació"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Eliminar aquest equip"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Combinar registres duplicats d'aquest equip"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Combinar"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Últim contacte"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informació de l'ordinador"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Categoria"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Crèdit promig"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Crèdit mitjà més recent"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Sistema operatiu"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 processadors)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Detalls"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Estadístiques multi-projecte:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "El host %1 supera el temps màxim:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "El host %1 té un SO incompatible:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "El host %1 té una CPU incompatible:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "mateix host"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "No es pot combinar el host %1 a %2 - són incompatibles"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Combinant el host %1 en el host %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "No es pot actualitzar el crèdit del nou ordinador"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "No es poden actualitzar el resultats"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "No es pot treure l'ordinador vell"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Tret l'ordinador vell %1"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Mostra:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Tots els ordinadors"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Només els ordinadors actius els darrers 30 dies"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "ID de l'ordinador"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "versió<br>BOINC"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Combinar ordinadors per el nom"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Navegador defecte"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Comentari"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Les notícies estan disponibles en format %sRSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Bústia d'entrada"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Escriure"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Enviar un missatge privat"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Vista prèvia"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "no existeix aquest missatge"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Per"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Identificadors ID o noms d'usuaris únics, separats per comes"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Assumpte"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Enviar missatge"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "ha enviat un missatge privat, assumpte:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Missatge privat%1 de %2, assumpte:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "No s'ha pogut crear el missatge"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Vostè no te permès lliurar missatges tan sovint. Si us plau esperi una estona abans de lliurar nous missatges."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "no llegit"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Per obtenir notificació per correu electrònic,%1editi les preferències de la comunitat%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Missatge privat"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Límits d'utilització"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Utilitzar com a màxim"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Conserva algunes CPU lliures per a altres aplicacions. Exemple: 75% significa l'ús de 6 nuclis en una CPU de 8 nuclis."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% de les CPU"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Suspendre/reprendre el càlcul cada pocs segons per reduir la temperatura de la CPU i l'ús d'energia. Exemple: 75% vol dir calcula durant 3 segons, espera durant 1 segon, i repeteix."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% de temps de CPU"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Quan suspendre"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Suspendre quan l'equip està connectat a la bateria"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Marca aquesta opció per suspendre la computació en els portàtils funcionant amb la bateria."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Suspendre quan l'ordinador estigui en us"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Marca aquesta opció per suspendre la computació i la transferència d'arxius mentre estàs utilitzant l'ordinador."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Suspèn la computació amb la GPU mentre l'ordinador està en ús"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Marca aquesta opció per suspendre la computació amb la GPU mentre estàs utilitzant l'ordinador."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'En ús' significa activitat del ratolí/teclat"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Això determina quan l'ordinador es considera \"en ús\"."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minuts"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Suspendre quan no hi ha activitat del ratolí/teclat"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Això permet que alguns ordinadors accedeixin a l'estat de baix consum quan no estiguin en ús."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Suspendre quan l'ús de la CPU per processos que no siguin de BOINC està per sobre de"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Suspendre la computació quan l'equip està ocupat executant altres programes."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Calcular només entre"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Calcular només durant un període determinat cada dia."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Un altre"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Emmagatzemar almenys"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Emmagatzemar almenys prou feines per mantenir l'equip ocupat durant tant de temps."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "dies de treball"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Emmagatzema fins a un màxim de"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Desar tasques addicionals per sobre del nivell mínim. Determina la quantitat de treball es demana al contactar amb un projecte."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Canviar entre tasques sobre cada"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Si executeu diversos projectes, BOINC pot canviar entre ells sovint."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Sol·licitar tasques al control almenys cada"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Això controla la freqüència en la que les tasques guarden el seu estat a disc, de manera que es poden reiniciar més tard."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "segons"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "No utilitzar més de"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Limitar l'espai total en disc utilitzat per BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Deixar al menys"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Limitar l'ús d'espai en disc per deixar-hi el màxim espai lliure on BOINC emmagatzema dades."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "Gb lliures"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "limitar el percentatge d'espai en disc utilitzat per BOINC en el volum en el qual emmagatzema dades."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% del total"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Quan l'ordinador està en ús, utilitzar com a màxim"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Limiti la memòria utilitzada per BOINC quan s'està utilitzant l'ordinador."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Memòria: quan l'ordinador no està en ús, utilitzar com a màxim"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Limiti la memòria utilitzada per BOINC quan no s'estigui utilitzant l'equip."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Deixar les aplicacions que no son de GPU en memòria mentre estan en suspens"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Si es marca, les tasques suspeses romanen en la memòria, i es poden reprendre sense pèrdua de feina. Si no es marca, les tasques suspeses s'eliminen de la memòria, i es reprenen des del seu últim punt de control."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Espai d'intercanvi: utilitzar com a màxim"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Limitar l'espai de intercanvi (fitxer d'intercanvi) utilitzat per BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Limita la taxa de baixada a"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Limitar la taxa de baixada en la transferència de fitxers."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "Kb/segon"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Taxa límit de pujada a"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Limitar la taxa de pujada en la transferència de fitxers."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Limita l'us fins"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Exemple: BOINC ha de transferir com a molt 2000 MB de dades cada 30 dies."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB cada"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "dies"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Transferir fitxers només entre"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Transferir fitxers només durant un període de temps cada dia."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Ometre la verificació de la data del fitxers imatge"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Marcar només si el teu proveïdor d'Internet modifica els fitxer imatge. Ometre la verificació redueix la seguretat de BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Confirmar abans de connectar-se a Internet"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Útil només si disposes d'una connexió per mòdem, ISDN o VPN."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Desconnectar en finalitzar"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Computant"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disc"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Xarxa"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Aquestes preferències s'apliquen a tots els projectes BOINC en què vostè participa."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1No es poden actualitzar les preferències.%2 Els valors marcats en vermell a continuació son fora de rang o no numèrics."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "computació"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Separa les preferències per %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Editar les preferències"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Eliminar"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Afegir preferències independents per %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Aquesta configuració s'aplica a tots els ordinadors que utilitzen aquest compte excepte"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "ordinadors en els que has configurat preferències locals utilitzant l'Administrador BOINC"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Dispositius Android"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Canviar vista)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Preferències combinades"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Preferències principals (per defecte)"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Preferències modificades per última vegada:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Afegir preferències"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Actualitzar les preferències"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "si"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "no"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Ubicació defecte de l'equip"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Els nous ordinadors utilitzaran aquesta ubicació per a les preferències de computació i dels projectes."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Compartició de recursos"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Determina la proporció dels recursos de l'ordinador assignats a aquest projecte. Per exemple: si participes a dos projectes BOINC, amb quotes de recursos de 100 i 200, el primer rebrà 1/3 dels seus recursos i el segon n'obtindrà 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accelerar les tasques de la GPU dedicant una CPU a cada un?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Utilitza CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Utilitza ATI GPU"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Utilitza NVIDIA GPU"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Utilitza Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Executar el test d'aplicacions?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Això ens ajuda a desenvolupar aplicacions, però pot provocar que les tasques fallin en el teu ordinador"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Missatges de correu electrònic seràn enviats des de %1; assegureu-vos que el seu filtre anti-spam accepta aquesta direcció."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Es OK per %1 i el seu equip (si n'hi ha) enviar-li per correu?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Pot %1 mostrar els seus equips en el seu lloc web?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Canvar vista)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Configuració específica del projecte"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "lloc erroni: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "subconjunt erroni: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "i"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "El seu perfil serà visible per als altres, tan aviat com sigui aprovat pel projecte. Això pot tardar alguns dies."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "El seu perfil ha estat marcat com a inacceptable. No és visible als altres. Si us plau, canviï'l."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Error de base de dades"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Per evitar el correu brossa, els perfils d'usuaris amb un crèdit mitjà de menys de %1 només es mostren als usuaris registrats. Demanem disculpes per aquest inconvenient."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Usuari expulsat"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "No hi ha cap perfil per aquest ID d'usuari."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Editi el seu perfil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "La seva enquesta en aquest perfil"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recomanar aquest perfil com Usuari del Dia:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1M'agrada%2 aquest perfil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Avisar els administradors d'un perfil ofensiu:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "No %1m\\'agrada%2 aquest perfil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Plataforma anònima"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "GPU Intel"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "No en la DB"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "pendent"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Tot"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "En progrés"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Validació pendent"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Validació no finalitzada"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Vàlid"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "No vàlid"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Error"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactiu"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "No enviats"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Finalitzat, a l'espera de la validació"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Finalitzat i validat"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Finalitzat, marcat com a no vàlid"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Finalitzat, no es pot validar"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Finalitzat, validació no concloent"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Finalitzat, massa tard per validar"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Finalitzat"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "No s'ha pogut lliurar"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Cancel·lat pel servidor"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "No s'ha iniciat per superar-se la data límit - cancel·lat"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "No s'ha pogut descarregar"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "S'ha produït un error durant la computació"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Error en carregar"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Avortada per l'usuari"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Error en la càrrega"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Temps d'espera esgotat - sense resposta"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "No era necessari"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Error de validació"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Abandonat"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Per sobre de"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Èxit"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Error de càlcul"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Resultat redundant"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Sense resposta"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nou"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Descarregant"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Processant"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Error de càlcul"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Carregant"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Fet"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Inicial"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "No cal"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Error workunit - comprovació omesa"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Comprovat, però encara no hi ha consens"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "La tasca va ser informada massa tard per validar"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "No s'ha pogut lliurar el resultat"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Massa errors (pot tenir errors)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Massa resultats (pot ser no determinista)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Massa resultats totals"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "WU cancel·lada"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Falta el resultat canònic"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Error no reconegut: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Nom de la tasca"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "feu clic per més detalls"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Mostra ID's"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Mostra els noms"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Feina"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Unitat de treball"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Ordinador"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Lliurat"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Temps informat<br />o termini"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "explicar"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Estatus"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Temps d'execució<br />(seg)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "Temps de CPU<br />(seg)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Crèdit"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Aplicació"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Workunit"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Informe termini"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Rebut"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Estat del servidor"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Final"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Estat del client"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "L'estat de sortida"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Temps d'execució"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "Temps de CPU"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Validar l'estat"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Pic de FLOPS del dispositiu"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Versió de l'aplicació"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Arxius de sortida"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Sortida stderr"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Estat"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Nom de la tasca:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Criteri de recerca (utilitzar un o mes)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Paraules clau"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Trobar equips amb aquestes paraules en els seus noms o descripcions"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Tipus d'equip"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Mostrar només equips actius"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Cerca"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "La seva petició no ha obtingut resposta del fundador."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Transferència finalitzada del lliurament del fundador"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Sol·licitat per vostè"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "el temps de resposta del fundador es %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Cap"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Iniciï la petició"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Posposat"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Informació de l'equip"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Descripció"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Pàgina web"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Estadístiques multi-projecte"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Tipus"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Panell de missatges"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Fils"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Ajuntar-se a aquest equip"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Nota: si activa 'PERMETRE email' a les preferències del projecte, en ajuntant-se a un equip permet als seus fundadors accedir a la vostra adreça de correu"
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "No s'accepten nous membres"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Canvi sol·licitat per el fundador"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Resposta per %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Canvi de l'equip fundador"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Membres"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Fundador"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Administradors"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Nous membres en el darrer dia"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Total de membres"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "mirar"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Membres actius"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Membres amb crèdits"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Administrador"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Anteriors %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Següent %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Equip inexistent."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Aquesta operació requereix ser fundador."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Aquesta operació requereix privilegis d'administrador d'equip"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "ADVERTÈNCIA: Aquest és un equip de BOINC general. Si vostè fa canvis aquí, aviat seran sobreescrits. Modificar %1l'equip BOINC general%2."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Nota de privacitat%2: si vostè crea un equip, les preferències del seu projecte (compartició de recursos, preferències gràfiques) seran visibles per a tothom."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Nom de l'equip, versió text"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "No utilitzi etiquetes HTML."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Nom de l'equip, versió HTML"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Pot utilitzar %1algunes etiquetes HTML%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Si desconeix HTML, no seleccioni aquesta opció."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL de la pàgina web de l'equip, si en té"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "sense \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Aquesta URL enllaçarà amb la pàgina de l'equip des d'aquest lloc."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Descripció de l'equip"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Acceptar nous membres?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Perfil d'usuari"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projectes en els quals esteu participant"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projectes en els quals %1 està participant"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Projecte"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Prémer per accedir a la pàgina de l'usuari"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Des de"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Computació i crèdits"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Ordinadors d'aquest compte"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Mirar"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "ID multi-projecte"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Estadístiques multi-projecte"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Compte"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Grup"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Multi-projecte"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Estadístiques en el seu mòbil"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Informació del compte"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Adreça de correu"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Codi postal"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 membre des de"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Canviar"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "adreça de correu electrònic"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "contrasenya"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "altre informació del compte"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "ID d'usuari"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Utilitzat en funcions comunitàries"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Claus del compte"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Preferències"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Quan i com BOINC utilitza el seu ordinador"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Preferències de computació"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Panell de missatges i missatges privats"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferències de la comunitat"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Preferències per a aquest projecte"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "preferències de %1"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Veure el perfil de %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Perfil"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Comunitat"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Crear"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 correus"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Notificacions"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Deixar el grup"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Administrador"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(petició de canvi del fundador pendent)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Membre de l'equip"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "trobar un grup"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Fundador però no membre de"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Trobar amics"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Amics"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Ordinadors"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Donant"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Contactar"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Aquesta persona és un amic"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Finalitzar amistat"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Petició pendent"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Afegir com amic"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "el nom d'usuari no pot tenir espais en blanc al principi o al final"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "no es pot deixar en blanc el nom d'usuari"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "el nom d'usuari no pot contenir etiquetes HTML"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "finalitzar la sessió"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "Registrar-se"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Crear un compte"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Pàgina de l'estat del servidor"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "S'ha produit un error a la base de dades processant la seva sol.licitud; si us plau, torni provar-ho més tard."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "No es pot gestionar la sol licitud"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "hores"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "seg"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "S'ha esgotat el temps per activar l'acces. Si us plau, feu clic a Enrere, carregui de nou la pàgina i torni a intentar-ho."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Utilitzar les marques BBCode per formatar el text"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Projecte aturat per manteniment"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 està temporalment aturat per manteniment.  Si us plau, provi-ho més tard."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "No es pot connectar a la base de dades - si us plau, provi-ho més tard"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "No es pot seleccionar la base de dades - si us plau, provi-ho més tard"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "caràcters restants"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Mantenir-me en aquest ordinador"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Finalitzar la configuració del compte"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Ha de proporcionar un nom per al seu compte"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "No estan permeses les etiquetes HTML en el nom"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Edita les preferències de %1"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Afegir %1 les preferències per a %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Aplicacions"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 actualment té les següents aplicacions. Quan participes a %1, feina per una o més d'aquestes aplicacions és assignada al teu ordinador. La versió actual de l’aplicació és descarrega al teu ordinador. Això succeeix de manera automàtica; no necessites fer res."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Plataforma"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Versió"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Computació mitjana"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Etiquetes BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "Les etiquetes BBCode li permeten donar format al text en el seu perfil i en els missatges.\nÉs similar a l'HTML, però més simple. Les etiquetes comencen amb un [ (on\nutilitzaveu %1 en HTML) i acaba amb ] (on uutilitzaveu %2 en\nHTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Exemples"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Negreta"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Itàlica"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Subratllar"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Ratllat"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Super-índex"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Text gran"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Text en vermell"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "enllaç al lloc web"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Text remarcat"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "utilitzar per remarcar blocs de text"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "utilitzar per a mostrar una imatge"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Fragment de codi aquí"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "utilitzar per mostrar un codi"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Text amb format"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "utilitzar per mostrar text pre-formatat (en general sol espai)"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Item 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Item2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Item 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "utilitzar per enllaçar al Trac de revisions al lloc web de BOINC"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "utilitzar per enllaçar a Trac Wiki en la pàgina web de BOINC"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Si no tanca una etiqueta o no s'especifica un paràmetre correctament,\nes mostrarà l'etiqueta en lloc del text amb format."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "No es pot crear el compte"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Feu clic a <b>Enrere</b> del navegador per intentar-ho de nou."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "La seva resposta reCAPTCHA no es correcte. Si us plau, provi-ho de nou."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Heu d'introduir un codi d'alta per la creació d'un compte."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "El codi d'alta que heu introduït no és vàlid."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Adreça de correu incorrecta: ha d'entrar una adreça de correu vàlida del tipus nom at domini"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Ja existeix un compte amb aquesta adreça de correu electrònic."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Les contrasenyes noves son diferents"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Les contrasenyes només poden contenir caràcters ASCII."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "La nova contrasenya és massa curta: la longitud mínima de la contrasenya és de %1 caràcters."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "No es pot crear el compte"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "NOTA: Si utilitzeu l'Administrador de BOINC, no utilitzeu aquest formulari. Executa BOINC, selecciona Afegir un projecte i escriviu una adreça de correu electrònic i contrasenya."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Aquest compte formarà part del grup %1 i tindrà les preferències del creador del projecte."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Imatge"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 La imatge del seu perfil es mostrarà a l'esquerra."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Per canviar-ho, premi el botó \"Navegar\" i seleccioni un arxiu JPEG o PNG (%1 o menys)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Per eliminar-lo del seu perfil, seleccioni aquesta casella:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Si desitja incloure una imatge en el seu perfil, premi el botó \"Navegar\" i seleccioni un fitxer JPEG o PNG. Si us plau seleccioni imatges de %1 o menys."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Idioma"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Seleccioni l'idioma en el que està escrit el seu perfil:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Lliurar el perfil"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Crear/editar el perfil"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "El format d'imatge que ha lliurat no està suportat."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "El seu %1perfil%2 li permet compartir les seves opinions i coneixements amb %3 comunitat."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "La seva resposta ReCaptcha no es correcte.  Si us plau, provi-ho de nou."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "La seva primera resposta ha estat marcada com spam per el sistema anti-spam Akimest.  Si us plau modifiqui el text i provi-ho de nou."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "La seva segona resposta ha estat marcada com spam per el sistema anti-spam Akismet.  Si us plau modifiqui el seu text i provi-ho de nou."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "El perfil que ha lliurat està buit."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "No es pot actualitzar el perfil: error de la base de dades"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "No es pot crear el perfil: error de la base de dades"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "S'ha guardat el perfil"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Felicitats! El seu perfil ha estat incorporat a la base de dades."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Mostra el teu perfil"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Crear un perfil"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Per prevenir l'spam, necessita un crèdit promitg de %1 o mes gran per crear o editar un perfil.  Disculpin aquestes molèsties."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "No es eliminar el compte"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Compte eliminat"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "El seu compte ha estat eliminat."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Confirmi l'eliminació del compte"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Eliminant el seu compte s'eliminarà tota la seva\ninformació personal dels nostres servidors,\nincloent el seu perfil i els seus missages en el fòrum.\nNo es lliuraran treballs als equips connectats\na aquest compte."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Això no es pot desfer.\nUn cop el compte ha estat eliminat, no podreu retrocedir."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Estàs segur que vols eliminar el teu compte?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Si"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Eliminar aquest compte"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "No"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "No eliminar aquest compte"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "no es pot eliminar el perfil - si us plau provi-ho més tard"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Confirma la Eliminació"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "El teu perfil ha estat eliminat."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Confirmar l'eliminació del perfil"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Està segur?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "En perfil eliminat ho es per sempres i no es pot recuperar --\nvostè haurà de començar de zero\nsi vol un altre perfil en el futur."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Si esteu segur, premeu 'Si'\nper eliminar el vostre perfil de la nostra base de dades."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Eliminar el meu perfil"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "No eliminar el meu perfil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transacció Completada"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Gràcies per la donació!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "La seva donació ha estat competada."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "La seva donació s'afegirà a la barra de progrés després de la confirmació a través de PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Ha cancel.lat la seva donació."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Aquest pprojecte no accepta donacions."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donacions"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Aquest projecte està acceptant donacions a través de\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Per fer una donació, escriviu la quantitat que desitja donar utilitzant el camp de sota.\n        PayPal accepta múltiples monedes\n        (Dòlars canadencs, Euros, Lliures Esterlines, Dòlars dels EUA,\n         Iens, Dòlars Australians, Dòlars Neozelandesos,\n        Francs suïssos, Dòlars de Hong Kong, Dòlars de Singapur, Corones Sueques,\n        Corones Daneses, Zloty Polonès, Corones Norugues,\n        Florí Hongarès, Corona Txeca).\n        Podeu utilitzar el convertidor d [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Quantitat que voleu fer una donació"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Valor estimat en"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Donació anònima"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Seleccioneu aquesta opció si no voleu que el vostre nom i número de compte apareixi a les\nllistes de donacions.<br>Si no està activada, apareixerà registrat com l'usuari de ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Per assignar la donació amb el seu ID d'usuari, si us plau registreu-vos."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Procedir"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "S'accepten donacions a través de"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Descarregar programari BOINC addicional"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Pot descarregar aplicatius de diverses categories."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Aquestes aplicacions no estan aprovades per %1 i les ha d'utilitzar sota la seva responsabilitat."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "No proporcionem instruccions per la instal·lació d'aquestes aplicacions.\nDe totes maneres, es probable que l'autor hagi proporcionat algun tipus d'ajuda per la instal·lació o des-instal·lació de l'aplicació. \nSi no estès disponible contacti l'autor."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Les instruccions per instal·lar i executar BOINC es troben %1aquí%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Aquesta llista està gestionada en la %1pàgina web de BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Canviï l'adreça de correu electrònic del compte"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "La nova adreça de correu electrònic '%1' es incorrecte."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "La nova adreça de correu és la mateixa que l'actual. No ha canviat res."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Ja existeix un compte amb aquesta adreça de correu electrònic"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Contrasenya incorrecte."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "L'adreça de correu electrònic del vostre compte ara és %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Si us plau %1valideu aquesta adreça de correu electrònic%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "No podem actualitzar la vostra adreça de correu electrònic a causa d'un problema de base de dades.  Si us plau provi-ho més tard."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Canviar l'adreça de correu electrònic"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Canviï l'adreça de correu electrònic del seu compte"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nova adreça de correu electrònic"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Ha de ser una adreça de correu vàlida del tipus 'nom at domini'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Sense contrasenya?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Confirmi que vol restaurar"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Aquesta acció esborrarà tots els canvis realitzats en les preferències de la seva comunitat. Per cancel lar, feu clic al botó Enrere del navegador."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Restablir les preferències"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Error: No es el tipus correcte d'arxiu, només PNG i JPEG són compatibles."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "La seva signatura era massa llarga, si us plau redueixi-la a un màxim de 250 caràcters."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Usuari inexistent:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Com prefereixes que t'avisem dels nous missatges privats, sol·licituds d'amistat, missatges en les discussions subscrites, i altres esdeveniments?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "A la pàgina del meu compte (no email)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Immediatament, per correu electrònic"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "En un únic correu electrònic diàri"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Identitat del plafó de missatges"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Una imatge que el representi en els fòrums."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPG o PNG. Mida: màxim de 4 KB, 100x100 píxels"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "No usar un avatar"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Utilitzar un Avatar Reconegut Globalment proporcionat per %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Utilitzar aquest avatar enviat:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Vista prèvia del avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Així és com es veurà el teu avatar"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Signatura per els missatges en el plafons d'anuncis"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Fes una ullada a %1diversos serveis gratuïts%2\n<br> proporcionan 'imatges de la signatura' dinàmicament\n<br> mostrant la seva informació de crèdit més recent, notícies de projectes, etc."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Adjuntar signatura per defecte"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Vista prèvia de la signatura"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "Aquesta és la forma en què la seva signatura es veurà en els fòrums"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Panell del missatge"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "El que vol mostrar"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Amaga les imatges dels avatars"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Amaga les signatures"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Mostra les imatges com enllaços"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Obrir els enllaços en una nova finestra/pestanya"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Ressaltar usuaris especials"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Veure aquesta quantitat de missatges per pàgina"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Com ordenar"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Fils:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Missatges:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Anar al primer missatge nou en el fil de forma automàtica"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "No moure els missatges fixats amunt"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Filtratge de missatges"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Usuaris filtrats"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "No feu cas dels missatges i dels missatges privats d'aquests usuaris."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ID d'usuari (per exemple: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Afegir l'usuari al filtre"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Premeu aqui per actualitzar les preferències"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Reinicialitza"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "O feu clic aquí per restablir les preferències als valors per defecte"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "No podem actualitzar la contrasenya a causa d'un problema de base de dades. Si us plau provi-ho més tard."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Canviï la contrasenya"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "La seva contrasenya ha estat canviada."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Nova contrasenya"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Nova contrasenya, una vegada més"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "Etiquetes HTML no estan permesos en el seu nom."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Ha de proporcionar un nom per al seu compte."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "No es pot actualitzar la informació de l'usuari."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Edita la configuració del compte"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Nom %1 real o sobrenom%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 de la seva pàgina web; %2 opcional"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Codi Postal (ZIP) %1 opcional%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Actualitzar informació"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Estats del servidor"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "A les tasques <b>estat del servidor</b> indica si la tasca ha estat enviada a un ordinador, i si és així si l'equip l'ha acabat. Els valors possibles són:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "La tasca no està llesta per a enviar (per exemple, per que els seus arxius d'entrada no estan disponibles)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "La tasca està llesta per enviar, però no s'ha enviat encara."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "En Procés"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "La tasca ha estat enviada, esperant que es s'acabi."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "La tasca ha estat enviada a un ordinador i o bé s'ha esgotat el temps o bé l'equip ha informat de la seva terminació."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Resultats"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "El <b>resultat</b> de una tasca es defineix si l'estat de servidor és <b>acabat</b>. Els valors possibles són:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "La tasca va ser enviada a un ordinador, però l'equip encara no ha completat el treball i informat dels resultats."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Un equip ha finalitzat i reportartat la tasca amb èxit."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "El servidor no ha pogut enviar la tasca a un equip (potser perquè les seves necessitats de recursos són massa grans)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Error del client"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "La tasca s'ha enviat a un ordinador i s'ha produït un error."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "La tasca va ser enviada a un ordinador i no s'ha rebut resposta dins del termini."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "La tasca no s'ha enviat a un equip, ja n'hi ha prou d'altres tasques acabades per aquest workunit."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "Es va reportar el resultat de la tasca però no s'ha pogut validar, en general a causa de que els arxius de sortida en el servidor s'han perdut."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Estats del client"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Un resultat de <b>estat del client</b> indica el grau de procés en què va produir."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "L'equip encara no ha completat la tasca."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "L'equip ha finalitzat la tasca correctament."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "L'equip no ha pogut descarregar els arxius d'aplicació o d'entrada."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "S'ha produït un error durant el càlcul."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "L'equip no ha pogut carregar els arxius de sortida."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Temps reportat i temps límit"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "El camp d'una tasca <b>Temps reportat i limit</b> depend de si ja s'ha reportat la tasca:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Ja s'ha informat"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "La data/hora que es va informar"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "No informat, temps límit en el futur"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Temps límit, mostrat en color verd."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "No informat, temps límit superat"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Temps límit, mostrat en color vermell."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Camp desconegut"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Vista prèvia del correu electrònic"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "El seu correu electrònic apareixerà en la següent forma:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Enviar un correu electrònic"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Utilitzeu el botó del navegador cap enrere per tornar al formulari de missatges"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Enviant correus electrònics"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "correu electrònic enviat amb èxit a %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "no s'ha pogut enviar el correu electrònic a %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Gràcies per informar als seus amics sobre %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Ha oblidat d'entrar els noms del seus amics i/o adreces de correu electrònic; Si us plau %1torneu al formulari%2 i entrreu-los."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Aquest projecte no ha creat un missatge de correu electrònic - si us plau notifica-ho als seus administradors"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Informa als teus amics sobre %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Ajuda'ns a infornar als teus amics, familiars i companys de treball sobre%1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Ompli el següent formulari amb els noms i adreces de correu electrònic de persones que puguin estar interessades en %1. I els enviarem un correu electrònic en nom seu, i vostè pot afegir el seu propi missatge si ho desitja."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "El seu nom:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "La seva adreça de correu electrònic:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Nom del seu amic:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Adreça de correu electrònic del seu amic:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Missatge addicional (opcional)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Enviar"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "No està autoritzat per expulsar usuaris."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Voti expulsió"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "No s'ha trobat cap usuari amb aquest ID."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "L'usuari ja està expulsat"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Està segur que vol expulsar %1?<br/>Això evitarà que %1 posi missatges durant al període de temps especificat.<br/>S'ha de fer només si %1 mostrat un comportament controvertit."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Seleccioneu una raó de la llista, opcionalment escrigui una descripció més detallada de per què l'usuari ha de ser expulsat."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Categoria"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Obscè"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Correus amb ira/odi"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Sol.licitud d'usuari"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Raó"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Enviat per correu si no està buit"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Procedir amb la votació"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Heu d'especificar una acció..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Ja no es pot editar aquest missatge.<br/>Missatges només es poden editar en durant els %1 minuts posteriors a la seva creació."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "No tens permís per editar aquest missatge."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Fòrum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Edita el teu missatge"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Títol"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Afegir la meva firma a aquest correu"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "No és visible per a tu"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Equip del plafó de missatges de %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Nou fil"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Afegir un nou fil a aquest fòrum"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Aquest plafó de missatges està disponible en format %1RSS%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Aquest fil es ocult"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Aquest fil està fixat i tancat, i no l'has llegit encara"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "fixat/tancat/no llegit"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Aquest fil està fixat i no l'has llegit encara"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "fixat/no llegit"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Encara no has llegit aquest fil i està tancat"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "no llegit/tancat"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Encara no has llegit aquest fil"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Aquest fil està fixat i tancat"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "fixat/tancat"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Aquest fil està fixat"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "fixar"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Aquest fil està tancat"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "tancat"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Has llegit aquest fil"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "llegeix"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Preguntes i respostes"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Parla en viu a través de Skype amb un voluntari, en qualsevol de diversos idiomes. Vés a%1BOINC Ajuda en Línia%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Preguntes"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Debat entre els membres de %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "Panell de missatges de %1"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Si té alguna pregunta o problema, si us plau utilitzi la secció de %1Preguntes i Respostes%2 dels plafons de missatges."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Fils subscrits"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Moderar missatges"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Ocultar el missatge"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Correu brosa comercial"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Missatge doble"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Moure el missatge"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID destí del fil:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Expulsar l'usuari"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Durada de l'expulsió"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 hores"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 dia"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 setmana"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 setmanes"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 mes"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Per sempre"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "CORRECTE"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Explicació opcional %1 Aquesta s'inclou en el correu electrònic a l'usuari.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "No estas autoritzat a moderar aquest missatge."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "No es pot moure a un tipus diferent de categoria"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "No es pot moure a una categoria diferent"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "No tens permís per expulsar usuaris"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Expulsió"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "L'usuari %1 ha estat expulsat."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "L'acció a fallat: possible problema de la base de dades"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "no autoritzat"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Moderar el fil '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Selecciona la categoria de raó, o escriu una descripció més detallada de per què ocultes o tanques el fil, i després prem OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Fòrum actual"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Fòrum destí"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Nou títol:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Només els administradors del projecte poden crear un fil aquí. No obstant això, ppots respondre a les discussions existents."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "El teu missatge ha estat marcat com correu brossa per Akismet el sistema anti-correu brossa. Si us plau, modifica el text i torna a intentar-ho."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Crear un nou fil"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Crear un nou fil"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Recordi que ha de afegir un títol"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Mostra aquest article com una Notícia a l'Administrador de BOINC"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Fer-ho només per als articles que puguin ser d'interès per a tots els voluntaris."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Classificació fora de línia"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Aquesta opció està desactivada per el projecte"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Necessita més crèdit mitja o crèdit total per classificar una noticia."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Vostè ja és valorat aquestmissatge."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Tornar al fil"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Entrada registrada"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "La seva entrada ha estat registrada. Gràcies per la seva ajuda."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Vot Registrat"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "La seva valoració ha estat enregistrada. Mercés per el seu interes."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Problemes en el Enviament del Vot"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "El seu missatge ha estat marcat com a correu brossa pel Akismet sistema anti-spam. Si us plau, modifiqui el text i torni a intentar-ho."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Publiqui-ho al fil"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Missatge:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "respongui a %1ID Missatge%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Respongui amb un missatge"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Afegir la meva firma a aquesta resposta"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Vostè necessita més crèdit de mitjana o total per per inserir un missatge."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Informe Registrat"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "El seu informe ha estat enregistrat. Mercès per la seva aportació."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Un moderador ara revisarà el seu informe i decidirà què fer - això pot trigar una mica, així que si us plau sigui pacient"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Informar d'un missatge en el fòrum"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Abans d'informar d'aquest missatge, pot utilitzar sistema +/- de classificació. Si un nombre important d'usuaris valora negativament un missatge, pot ser ocultat temporalment.<br />Vostè pot trobar el sistema de valoració en la part inferior del missatge."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Informar d'un missatge"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Per què trobeu ofensiu el missatge: %1Si us plau, inclogui informació suficient per que qui\nno l'ha llegit pugui identificar ràpidament el problema.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Informe no registrat"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "El seu informe no es pot registrar. Si us plau, espereu una mica i torneu a intentar-ho."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Si això no és un error temporal, si us plau informeu-ne als desenvolupadors del projecte."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Aquest plafó de notícies està disponible en format RSS."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Opcions:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Incloure només els missatges de l'usuari amb ID %1 (per defecte: tots els usuaris)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Incloure només els missatges dels darrers %1 dies (per defecte: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Només fils: %1 (incloure només el primer missatge de cada fil)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Recerca al fòrum"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Executar la cerca"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Cerca de paraules clau:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Es mostraran els missatges que continguin totes les paraules"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Per exemple: \"congelació de pantalla\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Cercar per l'ID de l'autor:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Només es mostraran els missatges d'aquest autor"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Per exemple: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Opcions de cerca"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Límits de la cerca"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Cercar com a molt aquest temps enrera"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 mesos"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 any"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "sense límit"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Només mostrar els missatges d'aquest forum"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Ordenar per"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Iniciar la cerca"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Resultats de la recerca al fòrum"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Fils que concorden amb la seva cerca:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Missatges que concorden amb la seva cerca:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Ho sentim, no hem trobat res que coincideixi amb la seva de cerca. Pot tractar d'ampliar la cerca utilitzant menys paraules (o paraules menys específiques)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "També pot %1intentar la mateixa cerca a Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Fer un altre cerca"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Subscripció satisfactoria"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Ara està subscrit a %1. Vostè serà notificat cada vegada que hi ha un nou missatge."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "A fallat la subscripció"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "En aquest moments no el podem subscriure a %1. Torni a provar-ho més tard.."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Cancel·lació de la suscripció satisfactoria"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Ja no està subscrit a %1. Ja no rebrà més notificacions d'aquest fil."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Ha fallat la cancel·lació de la suscripció"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "En aquests moments no podem cancel·lar la seva suscripció a %1. Si us plau provi-ho mes tard.."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Acció de suscripció desconeguda"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Aquest fòrum no està disponible per a vostè."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Aquest fil ha estat ocultat per els moderadors."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "La meva pregunta ja va ser contestada"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Feu clic aquí si la seva pregunta ha estat resposta adequadament"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Jo també m'he fet aquesta pregunta"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Afegir un nou missatge a aquest fil"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Finalitzar subscripció"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Vostè està subscrit a aquest fil.  Premi aquí per finalitzar-la."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Subscriure"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Premi per obtenir un correu quan hi hagin nous missatges en aquest fil"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Fer visible aquest fil"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Ocultar aquest fil"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Des enganxar-se"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "No permetre enganxar-se a aquest fil"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Enganxar-se"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Fer que aquest fil aparegui a l'inici de fòrum"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Des bloquejar"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Permetre nous missatges en aquest tema"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Bloquejar"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "No permetre nous missatges en aquest tema"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Moure aquest fil a un altre fil"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Editar el títol"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Editar el títol del fil"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Esborra tema permanent"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Exportar com a Avís"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "No exportar"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "No exportar aquesta noticia com Avís"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Ordenar"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "S'ha actualitzat l'estat del fil"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "S'ha actualitzat l'estat."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Missatges de %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Ja sou amics"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Heu sol·licitat l'amistat de %1 a %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Aquesta petició està pendent de confirmació."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 no accepta les peticions d'amistat de vostè"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Vostè no pot ser amic de vostè mateix"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Afegir un amic"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Vostè ha demanat que afegir %1 com amic. Li notificarem a %1 i li demanarem confirmi que són amics."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Afegir aquí un missatge opcional:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Petició d'amic lliurada"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "Hem notificat a %1 la seva petició."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Si us plau registris com %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Ha de registrar-se com %1 per veure aquesta sol.licitud d'amic"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Petició d'amic"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 ha sol·licitat l'amistat amb vosté."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 diu: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Acceptar l'amistat"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Prémer acceptar si %1 efectivament un amic"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Rebutjar"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Prémer rebutjar si %1 no es un amic"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Amistat confirmada"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "La seva amistat amb %1 ha estat confirmada."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Amistat rebutjada"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Ha rebutjat l'amistat amb %1"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Notificació no trobada"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Amic confirmat"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "Ara es amic de %1."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Finalitzar l'amistat?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Està segur de que vol finalitzar l'amistat amb %1?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Seguir sent amics"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Amistat cancel·lada"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "La seva amistat amb %1 ha estat cancel·lada."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Si coneix l'adreça de correu electrònic del seu compte, i hi pot rebre correu electrònic:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Introduïu l'adreça de correu electrònic, i premeu OK. Se li enviaràn per correu electrònic les instruccions per restablir la seva contrasenya."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Si ha oblidat el compte de seva l'adreça de correu electrònic, o no hi pot rebre correu electrònic:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Si heu executat BOINC amb aquest compte, pot accedir-hi. Així és com ho ha de fer:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Ves a la carpeta de dades de BOINC del teu ordinador (la localització es troba a l'inici del registre de'esdeveniments)"
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Cerqui l'arxiu del seu compte per a aquest projecte, que s'anomena <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Obri l'arxiu en un editor de text com el Bloc de notes. Veurà alguna cosa com"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Seleccioni i copií la cadena d'entre %1 i %2 (%3 en l'exemple anterior)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Enganxi la cadena en el camp de sota i premi CORRECTE."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Ara podrà accedir al seu compte, actualitzi el correu electrònic i la contrasenya del seu compte."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Registrar-se amb autenticador"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Ha oblidat la informació del seu compte?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "No s'ha informat cap tasca GPU"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Els millors models de GPU"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "Les llistes següents mostren els models de GPU més productius a diferents plataformes.  Les velocitats relatives, mesurades per la mitjana dels temps de les tasques, es mostren entre parèntesis."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Benvingut a %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Revisi i editi les preferències del seu compte utilitzant els vincles següents."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Si encara no ho ha fet, %1descarregui el programari client de BOINC %2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "El seu compte"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Plataforma anònima, falta l'aplicació"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "plataforma anònima"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Manca la versió de l'aplicació"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Manca l'aplicació"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Falta la plataforma"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Nombre de tasques completades"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Nombre màxim de tasques per dia"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Nombre de tasques d'avui"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Tasques vàlides consecutives"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Taxa mitjana de processament"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Característiques de l'aplicació del host %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "No tenim cap registre d'aquest equip."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "No pot eliminar l'historial d'aquest equip, ja que la nostra base de dades conté encara treballs per ell. Ha d'esperar uns dies fins que la feina d'aquest equip hagi estat esborrada de la base de dades del projecte."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Eliminar el registre de l'ordinador"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Registre eliminat."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Tornar a la llista dels equips"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Combinar els registres dels equips"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Combinar ordinadors"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "De vegades BOINC assigna per error diferents identitats al mateix equip. Pot corregir això combinant les identitats antigues amb la més recent."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "No hi ha servidors disponibles per combinar amb aquest."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Mostrar els detalls"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Comprovar els equips que són els mateixos que el %1 (creat %2, ID ordinador %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "nom"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "creat"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID de l'ordinador"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "no hi ha nom de l'ordinador central"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Combinar ordinadors"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Actualitzant el crèdit de l'ordinador"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "S'ha actualitzat el crèdit en el servidor"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Posició del ervidor actualitzada"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "cap"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "La posició d'aquest servidor s'ha establert a %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Aquest canvi tindrà efecte la pròxima vegada que el servidor es comuniqui amb aquest projecte."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Tornar a la pàgina del servidor"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Equips que pertanyen a %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Ordinadors ocults"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Aquest usuari ha optat per no mostrar informació sobre ell o els seus equips."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Els seus ordinadors"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Etiquetes HTML permeses"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Les següents etiquetes HTML estan permeses en les descripcions d'equip:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "negreta"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "cursiva"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "enllaç"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paràgraf"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "finalitza"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "preformatejat"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "imatge; l'alçada no pot superar els 450 píxels. Si us plau, no enllaceu amb les imatges sense el permís del lloc web on es troba la imatge."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "També pot utilitzar la notació amb ampersand per caràcters especials."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Llegiu les regles i normes nostres"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Executeu %1 només en ordinadors autoritzats"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Executi %1 només en els ordinadors propis, o per els que ha obtingut autorització del propietari. Algunes companyies i escoles tenen normes que prohibeixen la utilització dels seus ordinadors per projectes com %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Com %1 utilitza el vostre ordinador"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Quan executeu %1 en el vostre ordinador, utilitzarà part de la potència de la CPU, espai en disc, i ample de banda de la xarxa. Podeu controlar la quantitat de recursos utilitzats per %1, i quan els utilitza."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "El treball realitzat per el vostre ordinador contribueix a assolir les fites de %1, tal i com és descrit a la seva pàgina web. L’aplicació pot canviar en el temps."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Normes de privadesa"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "El vostre compte a %1 s'identifica per el nom que escolliu. Aquest nom es pot mostrar a la pàgina web de %1, amb un resum de la feina que vostre ordinador ha realitzat per a %1. Si voleu romandre anònim, escolliu un nom que no reveli la vostre identitat."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Si participeu a %1, informació respecte el vostre ordinador (com el tipus de processador, quantitat de memòria, etc.) serà registrada per %1 i utilitzada per decidir el tipus de feina a assignar al vostre ordinador. Aquesta informació també es mostrarà a les pàgines web de %1. No es mostrarà res que pugui revelar la localització del vostre ordinador (per exemple el seu nom de domini o adreça de xarxa)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Per participar a %1, heu de subministrar una adreça on rebre correu electrònic. Aquesta adreça de correu no es mostrarà a la pàgina web de %1 o d'organitzacions associades. %1 podrà enviar-vos noticies periòdicament; en qualsevol cas, podeu optar per cancel·lar-ho."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "El missatges privats a la web %1 només son visibles per qui els envia i el receptor.  %1 no comprova ni restringeix el continguts del missatges privats.  Si rep un missatge privat no desitjat d'un altre usuari %1, pot afegir-lo en el seu %2filtre de missatges%3.  Això evitarà que vegi cap missatge públic o privat d'aquest usuari."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Si utilitza els fòrums de la nostra web ha de seguir les %2normes%3.  Els missatges que enviï missatges als fòrums de %1 seran visibles per tothom, inclosos els que no son membres.  Lliurant els missatges al fòrum, esteu autoritzant de forma incondicional a tothom a veure'ls i copiar-los."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Es segura l'execució de %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Sempre que descarregueu un programa d'Internet pot passar que: el programa tingui errors perillosos, o que el servidor de descàrrega hagi estat manipulat. %1 ha treballat per minimitzar aquests riscos. Hem verificat amb cura les nostres aplicacions. Els nostres servidors estan protegits per tallafocs que estan configurats per alta seguretat. Per assegurar la integritat de la descàrrega dels programes, tots els programes disposen d'una signatura digital en un ordinador que no està [...]
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Les aplicacions executades per %1 poden causar l’escalfament d'alguns ordinadors. Si passa això, atureu l'execució de %1 o utilitzeu un %2programa%3 que limiti la utilització de la CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 ha estat desenvolupada per %2. BOINC ha estat desenvolupada a la Universitat de Califòrnia."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Responsabilitats"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 i %2 no assumeixen responsabilitats per danys al vostre ordinador, pèrdua de informació, o qualsevol altre incidència deguda a la participació a %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Altres projectes BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Altres projectes utilitzen la mateixa plataforma, BOINC, com %1. Podeu considerar la participació a un o mes d'aquests projectes. Fent això, el vostre ordinador executarà feina útil encara que %1 no tingui feina disponible."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Aquests altres projectes no estan associats amb %1, i no podem garantir la seva seguretat o la naturalesa de la seva recerca. Uniu-vos-hi sota la vostra responsabilitat."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Selecció d'idioma"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Aquest lloc web està disponible en diversos idiomes. L'idioma seleccionat actualment és: %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Normalment, l'elecció de la llengua està determinada per la configuració d'idioma del seu navegador, que és: %1.  Podeu canviar aquesta configuració utilitzant:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Eines/Opcions/General"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Eines/Opcions d'Internet/Idiomes"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "O pot seleccionar un idioma fent clic en un dels enllaços.  Això enviarà al seu navegador una galeta, assegureu-vos que el vostre navegador accepti galetes del nostre domini."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Nom de l'idioma (feu clic per seleccionar-lo)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Utilitzar la configuració d'idioma del navegador"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Les traduccions són realitzades per voluntaris.  Si la seva llengua materna no és aquí, %1vosté pot proporcionar una traducció%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "o %1crei un compte%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Processant %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Combinat %1 a %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Tornar a la llista dels seus equips"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Aquesta operació combina els equips en base al seu nom de domini.\n        <p>\n        Per a cada nom de domini, es combinaran tots els ordinadors més antics\n        amb aquest nom amb el nou equip que tingui aquest nom.\n        Els ordinadors no compatibles no es poden combinar.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Seguir endavant i fer això"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Tornar a la llista dels equips"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nPer augmentar al màxim la discussió i el flux d'informació,\nels taulers de missatges són moderats.\nEls missatges publicats estan subjectes a les següents normes:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nEls moderadors poden esborrar missatges que violin qualsevol d'aquestes regles.\nEls autors dels missatges esborrats seran notificats via correu electrònic.\nDelinqüents poden tenir la capacitat de poder publicar missatges tot hi estar revocat temporalment\n(encara que per evitar l'abús només els administradors tenen la capacitat de fer-ho).\nAccessos de mala conducta (\"analitzar\" missatges per atrapar a la\nadreces IP dels altres participants, creació excessiu de missat [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Crèdits pendents"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Resultat ID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID de la unitat de treball"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID de l'ordinador central"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Crèdit reclamat"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Crèdit pendent: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Bloquejar els missatges d'aquest usuari"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Bloqueja aquest usuari"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "El vostre missatge ha estat lliurat."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "No teniu missatges privats."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Envio i data"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Respondre a aquest missatge"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Esborrar aquest missatge"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Selecciona-ho tot"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Deseleccionar tots"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Esborrar el missatges seleccionats"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Enviar"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Necessita omplir tots els camps per enviar un missatge privat"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "El teu missatge ha estat marcat com correu brossa\n                per Akismet el sistema anti-correu brossa.\n                Si us plau, modifica el text i torna a intentar-ho."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "No es pot trobar l'usuari amb l'identificador %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "No es pot trobar l'usuari de nom %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 no es un nom d'usuari únic; teniu que utilitzar l'identificador ID"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "L'usuari %1 (ID: %2) no accepta missatges privats de vostè."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "No existeix l'usuari"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Segur de bloquejar %1?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Està segur que vol bloquejar que l'usuari %1 li enviï missatges privats?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Si us plau, tingui en compte que només pot bloquejar un nombre limitat d'usuaris."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Un cop bloquejat un usuari el podeu desbloquejar utilitzant la pàgina de preferències del fòrum."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "No, cancel·lar"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "aquest usuari no existeix"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "L'usuari %1 està bloquejat"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "L'usuari %1 té bloquejat el lliurament de missatges privats a vostè."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Per desbloquejar, visiti les %1preferències del panell de missatges%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Acció desconeguda"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Les seves preferències han estat actualitzades, i\n          entraràn en efecte quan l'ordinador es comuniqui amb %1\n          o utilitzi el comando %2Actualitzar%3 de l'Administrador BOINC."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Les teves preferències s'ha restablert als valors predeterminats, i\n          es faran efectius quan l'equip es comuniqui amb %1\n          o executis el comando %2 Actualitzar%3 des de l'Administrador de BOINC."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 de %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Tornar a les preferències"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Confirmeu l'eliminació de les preferències"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Estàs segur que voleu suprimir les preferències independents %1 de %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Eliminar preferències"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Cancel·lar"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Perfils"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "els %1Perfils%2 permet als usuaris compartir experiències i opinions amb la comunitat %3."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Explori la diversitat de voluntaris com vostè, i contribueixi amb les seves opinions per que en gaudeixin altres."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Si no ho ha fet encara, pot %1crear el seu propi perfil%2 per que les altres el puguin veure!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Usuari del Dia"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Explorador de Perfils d'Usuari"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Veure la %1Galeria d'Imatges de l'Usuari%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Veure els perfils %1per país%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Veure els perfils %1a l'atzar%2, %3a l'atzar amb imatges%2, or %4a l'atzar sense imatges%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Llistat alfabètic de perfils:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Cerca un text en el perfil"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "No hi ha perfils"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "No hi ha perfils que coincideixin amb la seva cerca."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Tipus de vot incorrecte:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Vot registrat"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Mercès"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "La seva recomanació ha estat enregistrada."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "El vot per rebutjar aquest perfil ha estat enregistrat."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Torna al perfil."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Perfils que continguin '%1'"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Nom d'usuari"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Projecte adjuntat"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Crèdit recent"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "No s'han trobat perfils que continguin '%1'"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Tasca inexistent:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Aquesta opció està desactivada temporalment"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "No s'ha trobat cap ordinador amb el ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "No hi ha accés"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Falta L'ID de l'usuari o del servidor"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "No hi ha tasques per mostrar"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Usuari del dia"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Aturat"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Executant"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Desactivat"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Estat del projecte"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Estat del servidor"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Programa"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Ordinador central"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Versió de l'esquema de la base de dades:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Estat del comput"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Usuaris"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Tasques per aplicació"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Mitjana de temps d'execució dels últims 100 resultats en hores: mitjana, mín, màx"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Usuaris en les últimes 24 hores"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Ordinador %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Estadístiques i funcionament dels plafons"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Estadístiques de %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Participants principals"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Grups principals"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Ordinadors principals"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "Models GPU"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "models CPU"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Estadístiques mes detallades de %1 i altres projectes BOINC disponibles a diverses pàgines web:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "També pot obtenir les seves estadístiques en forma de \"imatge\":"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "També pot obtenir les seves estadístiques individuals com a suma de tots els projectes BOINC a partir de diverses pàgines web; vegi la seva %1pàgina principal%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Equips"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 participants poden formar %2equips%3."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Només podeu pertànyer a un equip. Us podeu adjuntar o separar en qualsevol moment."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Cada equip te un %1fondador%2 que pot:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "accés a les adreces de correu electrònic dels membres de l'equip"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "editar el nom i descripció de l'equip"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "afegir o treure administradors d'equip"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "eliminar membres de l'equip"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "dissoldre un equip si no te membres"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Per adjuntar-vos a u equip, visiteu la seva pàgina i premeu %1Adjuntar-se a aquest equip%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Trobar un grup"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Tots els equips"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 equips"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Crear un nou equip"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Si no troba un equip que sigui adequat per a vostè, pot %1crear un equip%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Treure l'estatus d'Administrador de l'Equip a aquest membre"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Afegir o treure Administradors d'Equip"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Vostè pot seleccionar els membres de l'equip com a 'Equip d'Administradors'. L'Equip d'Administradors pot:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Editar la informació de l'equip (nom, URL, descripció, país)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Veure l'historial unir-se/separar-se de l'equip"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Moderar el fòrum d'equip, si és el cas (els administradors reben notificacions per de correu electrònic de la moderació i marca en vermell X informes)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Els Administradors de l'equip no poden:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Canviar el fundador de l'equip"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Eliminar membres"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Si un administrador de l'equip deixa l'equip, deixerà de ser un administrador de l'equip."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Us recomanem que seleccioneu només les persones conegudes i de confieu molt bé com Administradors de l'Equip."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Actualment no hi ha cap Administrador d'Equip"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Administradors d'Equip actuals"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Fer-se Administrador d'Equip de"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Afegir un Administrador d'Equip"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Adreça de correu electrònic dels membres de l'equip:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Afegir"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "no s'ha pogut eliminar l'administrador"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "L'usuari no és membre de l'equip"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 ja és un administrador de %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "No s'ha pogut afegir l'administrador"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Aquest equip no existeix"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "aquest equip no existeix"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "L'usuari no és membre de %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Canviant el fundador de %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 és ara el fundador de %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Canviar el fundador de %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "El membre de l'equip %1, va fer una petició al fundador d'aquest equip el %2, però ha deixat l'equip. per tant es cancel.la la petició."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "El membre de l'equip %1 ha contactat el fundador d'aquest equip. Això pot ser degut a que va deixar l'equip o no han tingut contacte amb l'equip durant molt de temps."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "rebutjar la petició"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Si no rebutja la petició de %1, %2 tindrà l'opció d'assumir la fundació de l'equip.<br /><br />\n                  Per acceptar la petició, assignar el fundador a %3 a través del formulari de sota."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Cap sol·licitud de transferència està pendent."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Per assignar fundador d'aquest equip a un altre membre, marqui la casella al costat del nom d'usuari i a continuació faci clic a <strong>Canviar fundador</strong>."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Nou fundador?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Canviar el fundador"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "No hi ha usuaris als que transferir l'equip."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Ha d'escollir un nom d'equip que no sigui en blanc"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Ja existeix un equip de nom %1 - provi un altre nom"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "No es pot crear l'equip - si us plau provi-ho més tard."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Crear un equip"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Vostè pertany a %1. Vostè ha de %2separar-se d'aquest equip%3 abans de crear-ne un de nou."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "No hi ha fundador o administrador"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Història de l'equip per %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Quan"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Usuari"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Acció"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Crèdit total en el moment de l'acció"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "pais erroni"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "El nom de '%1' està sent utilitzat per un altre equip."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Heu d'especificar el nom de l'equip"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "No es pot actualitzar l'equip - si us plau provi-ho més tard."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Editar %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Actualitzar la informació de l'equip"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 Llista de correu electrònic"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Llista de membres de %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Mostra com text pla"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Crear un Tauler de Missatges"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Vostè pot crear un tauler de missatges per a l'ús de %1."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Només els membres de l'equip podràn publicar-hi."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "En la seva opció, només els membres ho podran llegir."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Vostè i el seus Administradors d'Equip tindran privilegis de moderador."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Crea un tauler de missatges per %1"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "L'equip ja té un tauler de missatges"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Tauler de Missatges de l'Equip"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Temps mínim entre peticions (segons)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Crèdit total mínim per a enviar"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Crèdit mitja mínim per enviar"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Enviar"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Eliminar el tauler d'missatges del seu equip."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Realment vol eliminar el tauler d'missatges?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Esteu segur que voleu eliminar tauler d'missatges del seu equip? Tots els fils i missatges s'eliminaràn definitivament. (Vostè podrà, però, crear més endavant un nou tauler d'missatges)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Si - eliminar el tauler de missatges"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Tauler de missatges eliminat"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "El tauler d'missatges del seu equip s'ha eliminat. Vostè ara pot %1crear-ne un de nou%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Taule de Missatges de l'Equip actualitzat"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Actualització satisfactoria"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Error en l'actualització"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "L'equip no té cap fòrum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Vostè ha de ser un membre d'un equip per accedir a aquesta pàgina."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Sol.licitud al fundador de %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "El fundador actual ha estat notificat de la seva petició per correu electrònic i missatge privat.<br /><br />\n                       Si el fundador no respon dins de 60 dies vostèpodrà convertir-se en el fundador."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "La petició al fundador no es pot fer en aquest moments"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Assumit com fundador de %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Felicitacions, vostè és ara el fundador de l'equip %1. Vagi a %2Pàgina del seu compte%3 per a trobar les opcions d'administració de l'equip."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Rebutjar la petició de canvi fundador"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "La petició de fundador de %1 ha estat rebutjada."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "No hi han peticions de fundador."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "acció %1 desconeguda"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Tornar a la pàgina de l'equip"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Vostè necessita ser un membre d'un equip per accedir a aquesta pàgina."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Petició de fundador de %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Ara es fundador de l'equip %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "La seva petició de fundador de %1 a %2."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "han transcorregut 60 dies des de la seva petició, i el fundador no ha respost. Ara pot convertir-se en fundador fent clic aquí:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Convertir-se en fundador"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "El fundador va ser notificat de la seva petició. Si ell/ella no respon per %1 se li donarà l'opció de convertir-se en el fundador."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Si el fundador de l'equip no està actiu i vol assumir el paper de fundador, feu clic al botó de sota.  Al fundador actual se li enviarà un correu electrònicdetallant la seva petició, i podrà transferir-li la fundació a vostè oper rebutjar la seva petició. Si el fundador no respon en 60 dies, vostèpodrà convertir-se en el fundador.<br /><br />\n                       Esta segur que vol realitzar petició al fundador?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Petició al fundador"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "La petició de canvi de fundador ja ha estat feta per %1 a %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Una petició de canvi de fundador s0ha fet en els últims 90 dies, per tant no es permetent noves peticions. Torneu-ho a provar més tard."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "No està permés unir-se al l'equip %1."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Ja es membre"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Vostè ja és membre de %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "No es pot unir a l'equip - si us plau provi-ho més tard."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Antiguitat %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "S'ha unit a %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Uneix-te a %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Tingueu en compte:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Unir-se a un equip li dóna accés al seu fundador a la seva adreça de correu electrònic."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Unir-se a un equip no afecta el crèdit del compte."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Unir-se a l'equip"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Resultats de la cerca"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Resultats de la cerca per '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Vostè pot veure els membres d'aquests equips, les estadístiques i la informació."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Hi han més de 100 equips en la cerca. Es mostren els 100 primers."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Fi dels resultats. %1 Si no pot trobar l'equip que està buscant, vostè mateix pot %2crear un equip%3."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Equip d'administració de %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Edita la informació de l'equip"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Canviar el nom de l'equip, URL, descripció, tipus, o país"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Llista de membres:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "text"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Veure els noms dels membres i adreces de correu electrònic"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Veure l'historial de canvis:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Veure quan s'uneixen membres o abandonan aquest equip"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Respondre a la sol·licitud del fundador."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Si no respon per %1, %2 pot assumir la fundació d'aquest equip."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Eliminar membres inactius o no desitjats d'aquest equip"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Tansferir la fundació a un altre membre"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Afegir/Eliminar Administradors de l'Equip"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Donar als membres seleccionats privilegis d'Administrador de l'Equip"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Eliminar equip"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Només es permet si l'equip no té membres"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Crear o gestionar un taulell de missatges de l'equip"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Per que aquest equip es crei a tots els projectes BOINC (actuals i futurs) pot convertir-lo en un %1equip Boinc-gloval%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Animem als administradors d'equip a unir-se i participar en el grup Google de %1fundadors-d'equips-boinc%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "No es pot eliminar equip que no estigui buit"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Equip %1 eliminat"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Límit superat:  Només es poden mostrar els primers 1000 membres."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Membres de %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "No es pot deixar d'equip"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Equip no existeix, o que no pertanyen a ella."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Sortir de %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Tingueu en compte abans de sortir d'un equip:</strong>\n         <ul>\n         <li>Si surt d'un equip, pot tornar-hi més tard, o unir-se a qualsevol altre equip que desitji\n         <li>Deixar un equip no afecta de cap manera en el seu crèdit estadístic personal.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Deixar l'equip"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Eliminació dels usuaris de %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 no és membre de %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 ha estat eliminat"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Eliminar membres de %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Eliminar?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Nom (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Els que no son membres són seleccionats per a ser eliminats."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Eliminar usuaris"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Nom de l'equip"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Resultats de la recerca de l'equip"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "No s'han trobat equips amb la seu criteri de selecció. Provi una altra cerca."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "O vostè pot %1crear un nou equip%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Els següents equips verifiquen un o més criteris de cerca.\n            Per a unir-se a un equip, feu clic en al seu nom per anar a la pàgina de l'equip,\n               després premi %1Unir-se a aquest equip%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Canviï la seva cerca"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Vostè pot associar-se amb altres persones amb interessos similars, o del mateix país, empresa o escola."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Utilitzi aquest formulari per buscar els equips que siguin més adequats per a vostè."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1No estic interessat%2 en unir-me a un equip en aquest moment."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Límit superat - Ho sento, només els primers %1 elements"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Servidors principals"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Els %1 equips principals"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "No hi ha equips d'%1"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Participant des de"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "No ha estat elegit cap usuari del dia."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Usuari del Dia de %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtres"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Nom d'usuari comença amb"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Qualsevol"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Amb el perfil?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Qualsevol"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "En un equip?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Ordenar"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Disminuir el temps d'inici de sessió"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Disminuint el crèdit mitjana"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Disminuint el crèdit total"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "la paraula a cercar ha de ser de com a mínim 3 caràcters"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Resultats de la recerca de l'usuari"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Adjuntat"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "No hi ha usuaris que coincideixin amb els seus criteris de recerca."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Usuari no trobat!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Dades del compte<br/>de %1<br/>Temps:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Equip:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Equip TotCred:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Equip AvgCred:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Team: Cap"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Validar adreça de correu electrònic BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Si us plau, visiti el següent enllaç per a validar l'adreça de correu electrònic del seu %1 compte:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "S'ha enviat la validació del seu correu electrònic"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Un correu electrònic li ha estat enviat a %1. Visiti l'enllaç que conté per a validar la sevaadreça de correu electrònic."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "No existeix l'usuari."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Error en la URL - no es pot validar l'adreça de correu electrònic"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Error en l'actualització de base de dades - si us plau a provi-ho més tard."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Validar adreça de correu electrònic"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "L'adreça de correu electrònic del vostre compte ha estat validada."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Aquest usuari no te perfil"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Perdil: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Dades del compte"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Vostè pot accedir al seu compte, ja sigui per l'ús del seu correu electrònic i contrasenya,\n    o mitjançant l'ús de la 'clau de compte' assignada.\n    La seva clau de compte és:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Aquesta clau es pot utilitzar per:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "entra al teu compte a la web"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "per connectar un ordinador al seu compte sense necessitat d'utilitzar l'Administrador de BOINC.\n       Per a això, instal·lar BOINC,\n       crear un arxiu anomenat %1 al BOINC\n       directori de dades, i establir el seu contingut a:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Clau de compte feble"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "La teva 'clau de compte feble' es pot utilitzar per connectar ordinadors al teu compte\n    com es descriu més amunt, però no es pot utilitzar per iniciar sessió al teu compte o canviar-lo de cap manera.\n    Si vols connectar ordinadors no són de confiança o insegurs al teu compte,\n    fes-ho amb la teva clau de compte feble.\n    La teva clau de compte feble és:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Si canvies la contrasenya, la teva clau de compte febles canvia, i l'anterior deixarà de ser vàlida."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "no pot trobar workunit"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Workunit %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "aplicació"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "resultat canònic"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "crèdit atorgat"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tasques en curs"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "suprimit a l'espera de la conclusió"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "quòrum mínim"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "replicació inicial"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "nombre màxim de tasques amb error/totals/amb èxit"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "errors"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validació"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Pendent"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Pàgina principal"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Generat"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Els seus antecedents personals."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Expliqui'ns sobre vostè. Vostè podria dir-nos d'on es, la teva edat, ocupació, passatemps, o qualsevol altra cosa"
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Les seves opinions sobre %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Digui'ns la seva opinió sobre %1<ol>\n    <li>Per què executa %1?\n    <li>Quins són els seus punts de vista sobre el projecte?\n    <li>Algun suggeriment?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Combinació de colors per als gràfics"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Màxim % de la CPU per als gràfics%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Executar només les aplicacions seleccionades"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Només aconseguir tasques per a certes aplicacions. Útil per centrar-se en aplicacions particulars, o per excloure-les."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Si no hi ha treball disponible per a les aplicacions seleccionades, acceptar feina d'altres aplicacions?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Utilitza aplicacions no gràfiques si estàn disponibles?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(totes les aplicacions)"
diff --git a/locale/ca/BOINC-Setup.mo b/locale/ca/BOINC-Setup.mo
index 52695dd..62ea9cf 100644
Binary files a/locale/ca/BOINC-Setup.mo and b/locale/ca/BOINC-Setup.mo differ
diff --git a/locale/ca/BOINC-Setup.po b/locale/ca/BOINC-Setup.po
index 8305b7a..11ee400 100644
--- a/locale/ca/BOINC-Setup.po
+++ b/locale/ca/BOINC-Setup.po
@@ -5,12 +5,12 @@
 # Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-08 18:28+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Catalan (http://www.transifex.com/projects/p/boinc/language/ca/)\n"
+"PO-Revision-Date: 2015-04-20 12:34+0000\n"
+"Last-Translator: Rom Walton\n"
+"Language-Team: Catalan (http://www.transifex.com/boinc/boinc/language/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/ca/BOINC-Web.mo b/locale/ca/BOINC-Web.mo
index 809b448..077a2b1 100644
Binary files a/locale/ca/BOINC-Web.mo and b/locale/ca/BOINC-Web.mo differ
diff --git a/locale/ca/BOINC-Web.po b/locale/ca/BOINC-Web.po
index 45de465..920fc3f 100644
--- a/locale/ca/BOINC-Web.po
+++ b/locale/ca/BOINC-Web.po
@@ -12,7 +12,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
 "POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-03-03 14:23+0000\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
 "Last-Translator: Xavier Mor-Mur <xavi.mormur at gmail.com>\n"
 "Language-Team: Catalan (http://www.transifex.com/boinc/boinc/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/locale/copy_files.php b/locale/copy_files.php
deleted file mode 100755
index dcc3dd4..0000000
--- a/locale/copy_files.php
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env php
-
-<?php
-
-// copy project-web-site translation files from new to old location.
-// This is a kludge, but the simplest thing to do at this point
-
-$d = opendir(".");
-while ($f = readdir($d)) {
-    if ($f == '.') continue;
-    if ($f == '..') continue;
-    if ($f == 'templates') continue;
-    $x = $f."/BOINC-Project-Generic.po";
-    if (file_exists($x)) {
-        $cmd = "cp $x ../html/languages/translations/$f.po";
-        system($cmd);
-    }
-}
-
-?>
diff --git a/locale/cs/BOINC-Client.mo b/locale/cs/BOINC-Client.mo
index 97cf231..237dc56 100644
Binary files a/locale/cs/BOINC-Client.mo and b/locale/cs/BOINC-Client.mo differ
diff --git a/locale/cs/BOINC-Client.po b/locale/cs/BOINC-Client.po
index 595b6d2..727fb6c 100644
--- a/locale/cs/BOINC-Client.po
+++ b/locale/cs/BOINC-Client.po
@@ -1,162 +1,178 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Jiří Chvátal <george.choose3d at gmail.com>, 2017
 # Petr Nekvinda <petr.nekvinda at gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-28 16:59+0000\n"
-"Last-Translator: Petr Nekvinda <petr.nekvinda at gmail.com>\n"
-"Language-Team: Czech (http://www.transifex.com/projects/p/boinc/language/cs/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-05 11:33+0000\n"
+"Last-Translator: Jiří Chvátal <george.choose3d at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/boinc/boinc/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Zpráva od správce účtu"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Zpráva ze serveru"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Některé úlohy vyžadují více operační paměti, než máte povoleno v předvolbách. Zkontrolujte prosím vaše předvolby."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Nelze zapsat stavový soubor, zkontrolujte práva zápisu v cílové složce."
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Proměnná prostředí HTTP_PROXY musí obsahovat HTTP proxy adresu."
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Použili jste neplatnou URL adresu pro tento projekt. Až to bude vhodné, odeberte tento projekt a poté přidejte %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Tento projekt používá starou URL adresu.  Když se vám to bude hodit, projekt odeberte a pak přidejte %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Chyba syntaxe v app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Soubor odkazovaný v 'app_info.xml' neexistuje:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Je dostupná nová verze BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Stáhnout"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "nelze použít pro CUDA nebo OpenCL výpočty s CUDA ovladačem verze 6.5 nebo vyšší"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Nečekaný text v cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Nečekaný tag v cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Chybějící startovní tag v cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Chyba v nastavení cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Chybějící koncový tag v cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Pro opravení tohoto problém můžete"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "Změňte předvolby projektu na webu projektu"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "odebrat vyloučení GPU v souboru cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "Změňte nastavení na webu vašeho správce účtu"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Klíč k účtu buď chybí nebo je neplatný. Pro opravu prosím odeberte a znova přidejte tento projekt."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Neplatný podepisovací klíč. Pro opravu prosím odeberte a znova přidejte tento projekt."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Projekt změnil svůj bezpečnostní klíč. Pro opravu prosím odeberte a znova přidejte tento projekt."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Tento projekt nepodporuje Váš operační systém"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
-msgstr "Vaše CPU není projektem podporováno"
+msgstr "Tento projekt nepodporuje CPU výpočty"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Váš program BOINC je příliš starý. Nainstalujte si prosím aktuální verzi."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Tento projekt nepodporuje počítače typu"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Pro zpracování úkolů pomoci GPU si prosím nainstalujte nejnovější ovladače."
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Pro využití všech GPU aplikací tohoto projektu si prosím nainstalujte nejnovější ovladače."
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Pro využití vaší nVidia GPU je zapotřebí stáhnout si aktuální verzi programu BOINC."
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Pro počítání úkolů u tohoto projektu je zapotřebí %s GPU."
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Není dostupná žádná práce pro typ aplikací, které jste si zvolili."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Váš typ počítače není podporován tímto projektem."
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Nainstalujte si prosím novou verzi BOINC, která je vyžadována."
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Jsou dostupné úkoly pro %s, ale podle vašich předvoleb nebudou přijímány."
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Neznámé jméno aplikace v app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Váš soubor app_info.xml neobsahuje použitelnou verzi"
diff --git a/locale/cs/BOINC-Drupal.po b/locale/cs/BOINC-Drupal.po
index b6d5c94..92180c3 100644
--- a/locale/cs/BOINC-Drupal.po
+++ b/locale/cs/BOINC-Drupal.po
@@ -3,12 +3,13 @@
 # 
 # Translators:
 # Martin Suchan <martin.suchan at outlook.com>, 2015-2016
+# Petr Nekvinda <petr.nekvinda at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2016-04-07 06:48+0000\n"
-"Last-Translator: Martin Suchan <martin.suchan at outlook.com>\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-11-16 17:11+0000\n"
+"Last-Translator: Petr Nekvinda <petr.nekvinda at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/boinc/boinc/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -16,103 +17,114 @@ msgstr ""
 "Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-msgid "Please select a team type."
-msgstr "Vyberte prosím typ týmu."
+msgid "Reject profile"
+msgstr "Zamítnout profil"
+
+msgid "Ban user"
+msgstr "Vykázat uživatele"
+
+msgid "I'm new"
+msgstr "Jsem tu nový"
+
+msgid "I'm a BOINC user"
+msgstr "Jsem uživatel BOINCu"
+
+msgid "Authenticator login"
+msgstr "Přihlášení authenticatorem"
 
 msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "Žádost o změnu vlastnictví týmu již byla nedávno odeslána. O změnu vlastnictví je možné požádat maximálně jednou za 90 dní."
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Musíte získat o @count více kreditů abyste mohli komentovat na tomto webu."
 
-msgid "@count days remaining"
-msgstr "zbývá @count dnů"
+msgid "Generic"
+msgstr "Obecné"
 
-msgid "Inbox"
-msgstr "Schránka"
+msgid "Home"
+msgstr "Doma"
 
-msgid "Compose new"
-msgstr "Vytvořit novou"
+msgid "Work"
+msgstr "V práci"
+
+msgid "School"
+msgstr "Ve škole"
 
-msgid "respond to the request"
-msgstr "odpovědět na žádost"
+msgid "yes"
+msgstr "ano"
 
-msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "Obdržel jste žádost o změnu vlastnictví vašeho týmu. Prosím !respond."
+msgid "no"
+msgstr "ne"
 
-msgid "Respond to transfer request"
-msgstr "Odpovědět na žádost o převod"
+msgid "Resource settings"
+msgstr "Nastavení zdrojů"
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "Člen týmu @name vyžádal změnu vlastnictví týmu. Důvodem může být to, že jste opustil tým nebo jste již delší dobu tým nekontaktoval."
+msgid "Resource share"
+msgstr "Rozdělení práce"
 
 msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "Pokud nezamítnete tuto žádost do @date, @name dostane možnost převzít vlastnictví týmu. (poznámka: Pro přijetí žádosti lze předat vlastnictví týmu pomocí formuláře níže)"
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Určuje podíl zdrojů vašeho počítače přidělených na tento projekt. Příklad: pokud se účastníte dvou BOINC projektů s podíly zdrojů 100 a 200, první dostane 1/3 a druhý 2/3 výkonu."
 
-msgid "Deny request"
-msgstr "Odmítnout žádost"
+msgid "Use CPU"
+msgstr "Použít procesor"
 
-msgid "Send request"
-msgstr "Odeslat žádost"
+msgid "Enforced by version @number"
+msgstr "Funguje od verze @number"
 
-msgid "Friend request from !name [!site]"
-msgstr "Žádost o přítelství od !name [!site]"
+msgid "Use NVIDIA GPU"
+msgstr "Použít NVIDIA GPU"
 
-msgid "Message"
-msgstr "Zpráva"
+msgid "Use ATI GPU"
+msgstr "Použít ATI GPU"
+
+msgid "Use INTEL GPU"
+msgstr "Použít Intel GPU"
+
+msgid "Beta settings"
+msgstr "Beta testování"
+
+msgid "Run test applications?"
+msgstr "Povolit testovací aplikace?"
 
 msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name si vás přidal jako přítele na webu !site. Tuto žádost o přátelství lze přijmout nebo zamítnout. Zamítnutí žádosti neodešle žádnou zprávu, ale jen odebere tuto žádost z vašeho účtu i žadatele.\n\nŽádost si zobrazíte kliknutím na odkaz níže:\n!link\n\n!message\n\nDíky,\nTým webu !site"
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Toto nám pomáhá vyvíjet aplikace, ale může způsobit pády úloh během výpočtu"
 
-msgid "Cancel friend request"
-msgstr "Zrušit žádost o přátelství"
+msgid " Default value: @default"
+msgstr "Výchozí hodnota: @default"
 
-msgid "Remove request"
-msgstr "Odebrat žádost"
+msgid "Applications"
+msgstr "Aplikace"
 
-msgid "Approve request"
-msgstr "Schválit žádost"
+msgid "Default set"
+msgstr "Výchozí nastavení"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "!name přijal vaší žádost o přátelství [!site]"
+msgid "Set used for new computers"
+msgstr "Nastavení použité pro nové počítače"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name potvrdil vaší žádost o přátelství na webu !site.\n\nPro zobrazení profilu tohoto uživatele použijte odkaz níže:\n!link\n\n!message\n\nDíky,\nTým webu !site"
+msgid "Save changes"
+msgstr "Uložit změny"
 
-msgid "Email address"
-msgstr "Emailová adresa"
+msgid "Cancel"
+msgstr "Zpět"
 
-msgid "Home"
-msgstr "Doma"
+msgid "Show comparison view"
+msgstr "Zobrazit porovnání"
 
-msgid "Login"
-msgstr "Přihlásit se"
+msgid "Comment form"
+msgstr "Šablona komentáře"
 
-msgid "search"
-msgstr "hledat"
+msgid "Logout"
+msgstr "Odhlásit"
+
+msgid "Join now"
+msgstr "Připojit se"
+
+msgid "Account"
+msgstr "Účet"
 
 msgid "Server status"
 msgstr "Stav serveru"
@@ -120,332 +132,389 @@ msgstr "Stav serveru"
 msgid "Language"
 msgstr "Jazyk"
 
-msgid "Enter your @s email address."
-msgstr "Zadejte vaší @s emailovou adresu."
+msgid "Create content"
+msgstr "Vytvořit obsah"
 
-msgid "Join now"
-msgstr "Připojit se"
+msgid "General settings"
+msgstr "Obecné nastavení"
 
-msgid "I'm new"
-msgstr "Jsem tu nový"
+msgid "Name"
+msgstr "Jméno"
 
-msgid "I'm a BOINC user"
-msgstr "Jsem uživatel BOINCu"
+msgid "Time zone"
+msgstr "Časová zóna"
 
-msgid "Welcome back!"
-msgstr "Vítejte zpět!"
+msgid "Notification settings"
+msgstr "Nastavení oznámení"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home je program, který využívá volný výpočetní čas vašeho počítače k hledání gravitačních vln od rotujících neutronových hvězd (tzv. pulsarů), za použití dat z detektoru gravitačních vln LIGO. "
+msgid "Receive email notification for private messages?"
+msgstr "Zasílat upozornění emailem na soukromé zprávy?"
 
-msgid "Learn more"
-msgstr "Zjistit více"
+msgid "Receive email notification for friend requests?"
+msgstr "Zasílat upozornění emailem na žádosti o přátelství?"
 
-msgid "View account"
-msgstr "Zobrazit účet"
+msgid "Language settings"
+msgstr "Nastavení jazyka"
 
-msgid "About our screensaver"
-msgstr "O našem spořiči obrazovky"
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Výchozí jazyk tohoto účtu pro emaily a preferovaný jazyk pro zobrazení stránky."
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "V projektu je zapojeno již více než 500 000 dobrovolníků"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Pokud máte s vaší emailovou adresou asociovaného <a href=\"@gravatar-check\">platného Gravatara</a>, bude použit jako váš obrázek uživatele."
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Váš Gravatar nebude zobrazen, pokud si nahrajete vlastní obrázek uživatele."
 
-msgid "Mac"
-msgstr "Mac"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Pokud máte s vaší emailovou adresou asociovaného <a href=\"@gravatar-check\">platného Gravatara</a>, použijte jej jako váš obrázek uživatele."
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar nebude zobrazen, pokud si nahrajete vlastního avatara."
 
-msgid "Logout"
-msgstr "Odhlásit"
+msgid "Avatar settings"
+msgstr "Nastavení avatara"
 
-msgid "Name"
-msgstr "Jméno"
+msgid "This is not available until your profile is set up."
+msgstr "Toto není dostupné dokud nemáte nastavený profil."
 
-msgid "Avg credit"
-msgstr "Průměrný kredit"
+msgid "Create a profile"
+msgstr "Založit si profil"
 
-msgid "Total credit"
-msgstr "Celkový kredit"
+msgid "Upload an avatar"
+msgstr "Nahrát obrázek avatara"
 
-msgid "Enter your password to save changes"
-msgstr "Zadejte vaše heslo pro uložení změn"
+msgid "Forum settings"
+msgstr "Nastavení fóra"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Zadejte vaše aktuální heslo pokud si měníte emailovou\nadresu nebo heslo."
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "V detailu diskuze zobrazit maximálně @comments_per_page"
 
-msgid "BOINC user ID"
-msgstr "BOINC ID uživatele"
+msgid "comments per page"
+msgstr "komentářů na stránku"
 
-msgid "Drupal user ID"
-msgstr "Drupal ID uživatele"
+msgid "Sort comments in discussions"
+msgstr "Třídění komentářů v diskuzích"
 
-msgid "Account key"
-msgstr "Klíč k účtu"
+msgid "Newest post first"
+msgstr "Od nejnovějších příspěvků"
 
-msgid "Weak account key"
-msgstr "Slabý klíč k účtu"
+msgid "Oldest post first"
+msgstr "Od nejstarších příspěvků"
 
-msgid "Cross-project ID"
-msgstr "Meziprojektové ID"
+msgid "Signature"
+msgstr "Podpis"
 
-msgid "Save changes"
-msgstr "Uložit změny"
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Váš podpis bude veřejně zobrazen pod každým Vaším komentářem."
 
-msgid "Cancel"
-msgstr "Zpět"
+msgid "Hide signatures in forums"
+msgstr "Skrýt podpisy ve fórech"
 
-msgid "Change password"
-msgstr "Změnit heslo"
+msgid "Privacy settings"
+msgstr "Nastavení ochrany soukromí"
 
-msgid "What is @this_project?"
-msgstr "Co je @this_project?"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Může Vám @project či Váš tým (pokud jste v nějakém) zasílat emaily?"
 
-msgid "no projects..."
-msgstr "žádné projekty..."
+msgid "Should @project show your computers on its web site?"
+msgstr "Může @project zobrazovat vaše počítače na svých stránkách?"
 
-msgid "Download the desktop software"
-msgstr "Stáhněte si desktopovou aplikaci"
-
-msgid "Run the installer"
-msgstr "Spusťte instalátor"
+msgid "Id"
+msgstr "Id"
 
-msgid "When prompted enter @siteurl"
-msgstr "Po vyzvání zadejte @siteurl"
+msgid "Founder"
+msgstr "Vlastník"
 
-msgid "Password"
-msgstr "Heslo"
+msgid "Country"
+msgstr "Země"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Zadejte heslo, které patří k vašemu uživatelskéu jménu."
+msgid "Recent average credit"
+msgstr "Průměrný kredit uživatele"
 
-msgid "Request new password"
-msgstr "Žádost o nové heslo"
+msgid "Members"
+msgstr "Členové"
 
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Pokud již používáte BOINC, zadejte <i>Přidat\nProjekt</i>."
+msgid "Total Credit"
+msgstr "Celkový kredit"
 
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Pokud používáte aplikaci BOINC pro příkazovou řádku,\nvytvořte si nejprve účet pro tento projekt pomocí BOINC Managera\n(i jinde, pokud to bude nutné), a poté použijte tento účet pro připojení\nv aplikaci BOINC pro příkazovou řádku."
+msgid "User ID"
+msgstr "Uživatelské ID"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Pokud používáte aplikaci BOINC verze starší než-5.0,\naktualizujte si prosím na novější verzi pro vytvoření účtu\nu tohoto projektu."
+msgid "User"
+msgstr "Uživatel"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Pokud víte emailovou adresu od vašeho a můžete na této adrese přijímat emaily:"
+msgid "Admin since"
+msgstr "Administrátorem od"
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Zadejte tuto emailovou adresu a klikněte na OK. Budou vám zaslány instrukce k resetování vašeho hesla."
+msgid "Team ID"
+msgstr "Týmové ID"
 
-msgid "OK"
-msgstr "OK"
+msgid "User joined"
+msgstr "Uživatel se připojil"
 
-msgid "The latest news from the @site_name project"
-msgstr "Novinky z projektu @site_name"
+msgid "Timestamp"
+msgstr "Datum a čas"
 
-msgid "Comment form"
-msgstr "Komentáře od"
+msgid "Account Key"
+msgstr "Klíč k účtu"
 
-msgid "Total credits"
-msgstr "Celkový kredit"
+msgid "Member since"
+msgstr "Členem od"
 
-msgid "Recent avg credits"
-msgstr "Průměrný nedávný kredit"
+msgid "CPID"
+msgstr "ID napříč projekty"
 
-msgid "Country"
-msgstr "Země"
+msgid "Email Address"
+msgstr "Emailová adresa"
 
-msgid "Type"
-msgstr "Typ"
+msgid "Password Hash"
+msgstr "Hash hesla"
 
-msgid "Founder"
-msgstr "Vlastník"
+msgid "Postal Code"
+msgstr "Směrovací číslo"
 
-msgid "New members in last day"
-msgstr "Noví členové za poslední den"
+msgid "Send Email"
+msgstr "Odeslat email"
 
-msgid "Total members"
-msgstr "Celkem členů"
+msgid "Show Hosts"
+msgstr "Zobrazit počítače"
 
-msgid "Active members"
-msgstr "Aktivní členové"
+msgid "URL"
+msgstr "URL adresa"
 
-msgid "Members with credit"
-msgstr "Členové s kreditem"
+msgid "Computer ID"
+msgstr "ID počítače"
 
-msgid "Description"
-msgstr "Popis"
+msgid "Location"
+msgstr "Umístění"
 
-msgid "Search teams"
-msgstr "Vyhledat tým"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "% času kdy je povolená práce z doby, kdy BOINC počítá"
 
-msgid "Send message"
-msgstr "Odeslat zprávu"
+msgid "Average turnaround time"
+msgstr "Průměrný doba pro vrácení zpracované jednotky"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Created"
+msgstr "Vytvořen"
 
-msgid "Project"
-msgstr "Projekt"
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "% času kdy je dostupné připojení k Internetu z doby, kdy BOINC počítá"
 
-msgid "Web site"
-msgstr "Webové stránky"
+msgid "Average CPU efficiency"
+msgstr "Průměrná efektivita procesoru"
 
-msgid "No active computers"
-msgstr "Žádný aktivní počítač"
+msgid "Free disk space"
+msgstr "Volné místo na disku"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "Tento uživatel nemá žádný počítač, který byl aktivní za posledních 30 dní"
+msgid "Total disk space"
+msgstr "Celkové místo na disku"
 
-msgid " Default value: @default"
-msgstr "Výchozí hodnota: @default"
+msgid "Task duration correction factor"
+msgstr "Korekční faktor pro dobu trvání"
 
-msgid "Applications"
-msgstr "Aplikace"
+msgid "Avg. credit"
+msgstr "Průměrný kredit"
 
-msgid "yes"
-msgstr "ano"
+msgid "External IP address"
+msgstr "Veřejná IP adresa"
 
-msgid "no"
-msgstr "ne"
+msgid "Cross project ID"
+msgstr "Meziprojektové ID"
 
-msgid "Message @id"
-msgstr "Zpráva @id"
+msgid "Last IP address"
+msgstr "Poslední IP adresa"
 
-msgid "message @id"
-msgstr "zpráva @id"
+msgid "Cache"
+msgstr "Cache"
 
-msgid " in response to !parent"
-msgstr "jako odpověď na !parent"
+msgid "Memory"
+msgstr "Paměť"
 
-msgid "Credits per day"
-msgstr "Kreditů za den"
+msgid "Swap space"
+msgstr "Odkládací prostor"
 
-msgid "Computers hidden"
-msgstr "Počítače jsou skryté"
+msgid "Maximum daily WU quota per CPU"
+msgstr "Maximální denní kvóta pracovních jednotek na CPU"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "Tento uživatel si nepřeje zobrazovat informace o svých počítačích."
+msgid "Average download rate"
+msgstr "Průměrná rychlost stahování"
 
-msgid "Stderr output"
-msgstr "Výstup stderr"
+msgid "Average upload rate"
+msgstr "Průměrná rychlost odesílání"
 
-msgid "@time ago"
-msgstr "@time v minulosti"
+msgid "Same IP address count"
+msgstr "Počet připojení ze stejné IP adresy"
 
-msgid "n/a"
-msgstr "n/a"
+msgid "% of time BOINC client is running"
+msgstr "% času kdy je BOINC klient aktivní"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Odesláno uživatelem !username dne !datetime"
+msgid "Operating system"
+msgstr "Operační systém"
 
-msgid "Member since"
-msgstr "Členem od"
+msgid "Operating system version"
+msgstr "Verze operačního systému"
 
-msgid "View team"
-msgstr "Zobrazit tým"
+msgid "Measured floating point speed"
+msgstr "Naměřená rychlost operací v plovoucí řádové čárce"
 
-msgid "Friends (@count)"
-msgstr "Přátelé (@count)"
+msgid "Measured integer speed"
+msgstr "Naměřená rychlost celočíselných operací"
 
-msgid "Website"
-msgstr "Webové stránky"
+msgid "CPU model"
+msgstr "Model CPU"
 
-msgid "Locked"
-msgstr "Zamčené"
+msgid "Number of processors"
+msgstr "Počet procesorů"
 
-msgid "Computers pending"
-msgstr "Počítače nenalezené"
+msgid "CPU"
+msgstr "Procesor"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "Tento uživatel zatím nemá žádný aktivní počítač. Počítače budou zobrazeny až získají první kredit za výpočty."
+msgid "Number of times client has contacted server"
+msgstr "Kolikrát klient kontaktoval server"
 
-msgid "No results found..."
-msgstr "Nenalezen žádný výsledek..."
+msgid "Last contact"
+msgstr "Poslední kontakt"
 
-msgid "Background"
-msgstr "Pozadí"
+msgid "Serial number"
+msgstr "Seriové číslo"
 
-msgid "Teams"
-msgstr "Týmy"
+msgid "Timezone"
+msgstr "Časová zóna"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "Každý účastník @project se může stát členem jednoho týmu. Je možné se kdyokliv připojit k existujícímu týmu, nebo tým opustit. Pro připojení se k týmu navštivte stránku týmu a klikněte na \"Přidat se do týmu\". Každý tým má správce, který může:"
+msgid "Platform ID"
+msgstr "ID platformy"
 
-msgid "access team members' email addresses"
-msgstr "přistupovat k emailovým adresám členů týmu"
+msgid "Task ID"
+msgstr "ID úkolu"
 
-msgid "edit the team's name and description"
-msgstr "upravovat jméno a popis týmu"
+msgid "Workunit ID"
+msgstr "ID pracovní jednotky"
 
-msgid "add or remove team admins"
-msgstr "přidat nebo odebrat Správce týmu"
+msgid "Host ID"
+msgstr "ID počítače"
 
-msgid "remove members from the team"
-msgstr "vyloučit členy z týmu"
+msgid "Application ID"
+msgstr "ID aplikace"
 
-msgid "disband a team if it has no members"
-msgstr "rozpustit tým, pokud nebude mít žádné členy"
+msgid "Application version"
+msgstr "Verze aplikace"
 
-msgid "Create a new team"
-msgstr "Vytvořit nový tým"
+msgid "Claimed credit"
+msgstr "Získaný kredit"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Pokud vám nevyhovuje žádný tým, můžete si vytvořit vlastní."
+msgid "Client state"
+msgstr "Stav klienta"
 
-msgid "You must earn @count more credits!"
-msgstr "Musíte získat o @count více kreditů!"
+msgid "CPU time"
+msgstr "Procesorový čas"
 
-msgid "Threads"
-msgstr "Vlákna"
+msgid "Run time"
+msgstr "Čas běhu"
 
-msgid "Posts"
-msgstr "Příspěvky"
+msgid "Exit status"
+msgstr "Stav ukončení"
 
-msgid "Last post"
-msgstr "Poslední příspěvek"
+msgid "Granted credit"
+msgstr "Přidělený kredit"
 
-msgid "Manage subscriptions"
-msgstr "Spravovat odebírané"
+msgid "Outcome"
+msgstr "Výsledek"
 
-msgid "Featured"
-msgstr "Vybraný"
+msgid "Received time"
+msgstr "Obdrženo dne"
 
-msgid "Submitted on !datetime"
-msgstr "Odesláno dne !datetime"
+msgid "Report deadline"
+msgstr "Odevzdat do "
 
-msgid "Comments"
-msgstr "Komentáře"
+msgid "Sent"
+msgstr "Odesláno"
 
-msgid "Opinion"
-msgstr "Názor"
+msgid "Server state"
+msgstr "Stav serveru"
+
+msgid "Stderr out"
+msgstr "Výstup stderr"
+
+msgid "Validation state"
+msgstr "Stav validace"
+
+msgid "App ID"
+msgstr "ID aplikace"
+
+msgid "Canonical credit"
+msgstr "Částečný kredit"
+
+msgid "Canonical result ID"
+msgstr "ID částečného výsledku"
+
+msgid "Created time"
+msgstr "Vytvořeno dne"
+
+msgid "Error mask"
+msgstr "Chyba masky"
+
+msgid "Minimum quorum"
+msgstr "Minimální kvorum"
+
+msgid "Max error tasks"
+msgstr "Maximum chybných úkolů"
+
+msgid "Max success tasks"
+msgstr "Maximum úspěšných úkolů"
+
+msgid "Max total tasks"
+msgstr "Maximum celkem úkolů"
+
+msgid "Needs validation"
+msgstr "Vyžaduje validaci"
+
+msgid "Initial replication"
+msgstr "Počáteční replikace"
+
+msgid "Target number of results"
+msgstr "Cílový počet výsledků"
+
+msgid "Application version ID"
+msgstr "ID verze aplikace"
+
+msgid "Plan class"
+msgstr "Třída plánu"
+
+msgid "Version number"
+msgstr "Číslo verze"
+
+msgid "Computer"
+msgstr "Počítač"
+
+msgid "App version ID"
+msgstr "ID verze aplikace"
+
+msgid "Consecutive valid tasks"
+msgstr "Počet ověřených úkolů v řadě"
+
+msgid "Number of tasks completed"
+msgstr "Počet dokončených úkolů"
+
+msgid "Max tasks per day"
+msgstr "Max úkolů na den"
+
+msgid "Number of tasks today"
+msgstr "Počet úkolů za dnešek"
+
+msgid "Manage subscriptions"
+msgstr "Spravovat odebírané"
+
+msgid "Avg credit"
+msgstr "Průměrný kredit"
+
+msgid "Total credit"
+msgstr "Celkový kredit"
 
 msgid "More"
 msgstr "Více"
@@ -453,14 +522,103 @@ msgstr "Více"
 msgid "Tasks"
 msgstr "Úkoly"
 
-msgid "Generic"
-msgstr "Obecné"
+msgid "Computers hidden"
+msgstr "Počítače jsou skryté"
 
-msgid "Work"
-msgstr "V práci"
+msgid "This user has chosen not to show information about their computers."
+msgstr "Tento uživatel si nepřeje zobrazovat informace o svých počítačích."
 
-msgid "School"
-msgstr "Ve škole"
+msgid "no projects..."
+msgstr "žádné projekty..."
+
+msgid "Moderation"
+msgstr "Moderování"
+
+msgid "Unvetted profiles"
+msgstr "Nehodnocené profily"
+
+msgid "Inbox"
+msgstr "Schránka"
+
+msgid "Compose new"
+msgstr "Vytvořit novou"
+
+msgid "Posts contributed"
+msgstr "Počet příspěvků"
+
+msgid "Friends (@count)"
+msgstr "Přátelé (@count)"
+
+msgid "Welcome back!"
+msgstr "Vítejte zpět!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home je program, který využívá volný výpočetní čas vašeho počítače k hledání gravitačních vln od rotujících neutronových hvězd (tzv. pulsarů), za použití dat z detektoru gravitačních vln LIGO. "
+
+msgid "Learn more"
+msgstr "Zjistit více"
+
+msgid "View account"
+msgstr "Zobrazit účet"
+
+msgid "User of the day"
+msgstr "Uživatel dne"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "V projektu je zapojeno již více než 500 000 dobrovolníků a stále přibývají."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Kreditů za den"
+
+msgid "View user profile."
+msgstr "Zobrazit profil uživatele."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Počet příspěvků, které čekají na zmoderování"
+
+msgid "Background"
+msgstr "Pozadí"
+
+msgid "Opinion"
+msgstr "Názor"
+
+msgid "Enter your password to save changes"
+msgstr "Zadejte vaše heslo pro uložení změn"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Zadejte vaše aktuální heslo pokud si měníte emailovou\nadresu nebo heslo."
+
+msgid "BOINC user ID"
+msgstr "BOINC ID uživatele"
+
+msgid "Drupal user ID"
+msgstr "Drupal ID uživatele"
+
+msgid "Account key"
+msgstr "Klíč k účtu"
+
+msgid "Weak account key"
+msgstr "Slabý klíč k účtu"
+
+msgid "Cross-project ID"
+msgstr "Meziprojektové ID"
+
+msgid "Change password"
+msgstr "Změnit heslo"
 
 msgid "Presets"
 msgstr "Předvolby"
@@ -501,9 +659,6 @@ msgstr "Počítat když je počítač používán?"
 msgid "Run GPU work while computer is in use?"
 msgstr "Používat GPU pro výpočty, i když je počítač právě používán?"
 
-msgid "Enforced by version @number"
-msgstr "Funguje od verze @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "\"Používán\" znamená aktivita myši či klávesnice během posledních"
 
@@ -640,61 +795,38 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "Zaškrtněte POUZE pokud váš poskytovatel upravuje soubory s obrázky (dělá to např. UMTS). Vynechání kontroly snižuje bezpečnost BOINCu."
 
-msgid "Show comparison view"
-msgstr "Zobrazit porovnání"
+msgid "search"
+msgstr "hledat"
 
-msgid "Resource settings"
-msgstr "Nastavení zdrojů"
+msgid "What is @this_project?"
+msgstr "Co je @this_project?"
 
-msgid "Resource share"
-msgstr "Rozdělení práce"
+msgid "Login"
+msgstr "Přihlásit se"
 
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Určuje podíl zdrojů vašeho počítače přidělených na tento projekt. Příklad: pokud se účastníte dvou BOINC projektů s podíly zdrojů 100 a 200, první dostane 1/3 a druhý 2/3 výkonu."
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Use CPU"
-msgstr "Použít procesor"
+msgid "Project"
+msgstr "Projekt"
 
-msgid "Use NVIDIA GPU"
-msgstr "Použít NVIDIA GPU"
+msgid "No @type tasks"
+msgstr "Žádné úkoly typu @type"
 
-msgid "Use ATI GPU"
-msgstr "Použít ATI GPU"
+msgid "There are no tasks of this type on record"
+msgstr "Nenalezeny žádné úkoly tohoto typu"
 
-msgid "Use INTEL GPU"
-msgstr "Použít Intel GPU"
+msgid "Details"
+msgstr "Detaily"
 
-msgid "Beta settings"
-msgstr "Beta testování"
-
-msgid "Run test applications?"
-msgstr "Povolit testovací aplikace?"
-
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Toto nám pomáhá vyvíjet aplikace, ale může způsobit pády úloh během výpočtu"
-
-msgid "Default set"
-msgstr "Výchozí nastavení"
-
-msgid "Set used for new computers"
-msgstr "Nastavení použité pro nové počítače"
-
-msgid "Merge"
-msgstr "Spojit"
+msgid "Password"
+msgstr "Heslo"
 
-msgid "Delete"
-msgstr "Smazat"
+msgid "Enter the password that accompanies your username."
+msgstr "Zadejte heslo, které patří k vašemu uživatelskéu jménu."
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Tímto navždy smažete počítač @id z vašeho účtu. Opravdu to chcete provést?"
+msgid "Request new password"
+msgstr "Žádost o nové heslo"
 
 msgid "Mark all topics read"
 msgstr "Označit všechna témata jako přečtená"
@@ -722,146 +854,151 @@ msgstr "Zakázat rich-text"
 msgid "Enable rich-text"
 msgstr "Povolit rich-text"
 
-msgid "View user profile."
-msgstr "Zobrazit profil uživatele."
+msgid "Teams"
+msgstr "Týmy"
 
-msgid "BBcode help"
-msgstr "Nápověda k BBcode"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "Každý účastník @project se může stát členem jednoho týmu. Je možné se kdyokliv připojit k existujícímu týmu, nebo tým opustit. Pro připojení se k týmu navštivte stránku týmu a klikněte na \"Přidat se do týmu\". Každý tým má správce, který může:"
 
-msgid "Post comment"
-msgstr "Odeslat komentář"
+msgid "access team members' email addresses"
+msgstr "přistupovat k emailovým adresám členů týmu"
 
-msgid "No @type tasks"
-msgstr "Žádné úkoly typu @type"
+msgid "edit the team's name and description"
+msgstr "upravovat jméno a popis týmu"
 
-msgid "There are no tasks of this type on record"
-msgstr "Nenalezeny žádné úkoly tohoto typu"
+msgid "add or remove team admins"
+msgstr "přidat nebo odebrat Správce týmu"
 
-msgid "Clear"
-msgstr "Vymazat"
+msgid "remove members from the team"
+msgstr "vyloučit členy z týmu"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Tímto odeberete všechny vaše předvolby ze sady nastavení @name. Jste si jistí?"
+msgid "disband a team if it has no members"
+msgstr "rozpustit tým, pokud nebude mít žádné členy"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Toto platí pro všechny BOINC projekty, kterých se chcete účastnit."
+msgid "Search teams"
+msgstr "Vyhledat tým"
+
+msgid "Create a new team"
+msgstr "Vytvořit nový tým"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "Na počítačích podílejících se na více projektech, budou použita naposledy změněná nastavení."
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Pokud vám nevyhovuje žádný tým, můžete si vytvořit vlastní."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "Předvolby naposledy upraveny: @mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "Musíte získat o 1 kredit více!"
 
-msgid "Combined preferences"
-msgstr "Společné předvolby"
+msgid "@count million ops/sec"
+msgstr "@count milionů op/sek"
 
-msgid "Switch View"
-msgstr "Přepnout vzhled"
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/sek"
 
-msgid "every"
-msgstr "každých"
+msgid "@count days"
+msgstr "@count dnů"
 
-msgid "Edit"
-msgstr "Upravit"
+msgid "Stderr output"
+msgstr "Výstup stderr"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Tímto odeberete všechny vaše předvolby ze sady nastavení \"@name\". Jste si jistí?"
+msgid "Email address"
+msgstr "Emailová adresa"
 
-msgid "Add"
-msgstr "Přidat"
+msgid "Enter your @s email address."
+msgstr "Zadejte vaší @s emailovou adresu."
 
-msgid "General settings"
-msgstr "Obecné nastavení"
+msgid "Log in"
+msgstr "Přihlásit se"
 
-msgid "Time zone"
-msgstr "Časová zóna"
+msgid "Sorry, unrecognized email address or password."
+msgstr "Emailová adresa nebo heslo není správné."
 
-msgid "Notification settings"
-msgstr "Nastavení oznámení"
+msgid "Have you forgotten your password?"
+msgstr "Zapomněli jste vaše heslo?"
 
-msgid "Receive email notification for private messages?"
-msgstr "Zasílat upozornění emailem na soukromé zprávy?"
+msgid "No results found..."
+msgstr "Nenalezen žádný výsledek..."
 
-msgid "Receive email notification for friend requests?"
-msgstr "Zasílat upozornění emailem na žádosti o přátelství?"
+msgid "Anonymous"
+msgstr "Anonymní"
 
-msgid "Language settings"
-msgstr "Nastavení jazyka"
+msgid "Forgot password"
+msgstr "Zapomenuté heslo"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "Výchozí jazyk tohoto účtu pro emaily a preferovaný jazyk pro zobrazení stránky."
+msgid "authenticator-based login"
+msgstr "přihlášení pomocí authenticatoru"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "Pokud máte s vaší emailovou adresou asociovaného <a href=\"@gravatar-check\">platného Gravatara</a>, bude použit jako váš obrázek uživatele."
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Zadejte vaší emailovou adresu, na kterou vám budou zaslány informace k resetování vašeho hesla (nebo použijte !authenticator_login)."
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Váš Gravatar nebude zobrazen, pokud si nahrajete vlastní obrázek uživatele."
+msgid "Send"
+msgstr "Poslat"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "Pokud máte s vaší emailovou adresou asociovaného <a href=\"@gravatar-check\">platného Gravatara</a>, použijte jej jako váš obrázek uživatele."
+msgid "Submitted by !username on !datetime"
+msgstr "Odesláno uživatelem !username dne !datetime"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Gravatar nebude zobrazen, pokud si nahrajete vlastního avatara."
+msgid "Send message"
+msgstr "Odeslat zprávu"
 
-msgid "Avatar settings"
-msgstr "Nastavení avatara"
+msgid "Add as friend"
+msgstr "Přidat mezi přátele"
 
-msgid "This is not available until your profile is set up."
-msgstr "Toto není dostupné dokud nemáte nastavený profil."
+msgid "Website"
+msgstr "Webové stránky"
 
-msgid "Create a profile"
-msgstr "Založit si profil"
+msgid "Team"
+msgstr "Tým"
 
-msgid "Upload an avatar"
-msgstr "Nahrát obrázek avatara"
+msgid "Create new team"
+msgstr "Vytvořit nový tým"
 
-msgid "Forum settings"
-msgstr "Nastavení fóra"
+msgid "Search"
+msgstr "Hledat"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "V detailu diskuze zobrazit maximálně @comments_per_page"
+msgid "Total credits"
+msgstr "Celkový kredit"
 
-msgid "comments per page"
-msgstr "komentářů na stránku"
+msgid "Recent avg credits"
+msgstr "Průměrný nedávný kredit"
 
-msgid "Sort comments in discussions"
-msgstr "Třídění komentářů v diskuzích"
+msgid "Type"
+msgstr "Typ"
 
-msgid "Newest post first"
-msgstr "Od nejnovějších příspěvků"
+msgid "New members in last day"
+msgstr "Noví členové za poslední den"
 
-msgid "Oldest post first"
-msgstr "Od nejstarších příspěvků"
+msgid "Total members"
+msgstr "Celkem členů"
 
-msgid "Signature"
-msgstr "Podpis"
+msgid "Active members"
+msgstr "Aktivní členové"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "Váš podpis bude veřejně zobrazen pod každým Vaším komentářem."
+msgid "Members with credit"
+msgstr "Členové s kreditem"
 
-msgid "Hide signatures in forums"
-msgstr "Skrýt podpisy ve fórech"
+msgid "Web site"
+msgstr "Webové stránky"
 
-msgid "Privacy settings"
-msgstr "Nastavení ochrany soukromí"
+msgid "Description"
+msgstr "Popis"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Může Vám @project či Váš tým (pokud jste v nějakém) zasílat občasné emaily?"
+msgid "BBcode help"
+msgstr "Nápověda k BBcode"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Může @project zobrazovat vaše počítače na svých stránkách?"
+msgid "Post comment"
+msgstr "Odeslat komentář"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Doma"
+
+msgid "The latest news from the @site_name project"
+msgstr "Novinky z projektu @site_name"
 
 msgid "Hide"
 msgstr "Skrýt"
@@ -884,606 +1021,421 @@ msgstr "Nastavit toto téma jako trvale viditelné"
 msgid "moderation"
 msgstr "moderování"
 
-msgid "Post new comment"
-msgstr "Odeslat nový komentář"
+msgid "Reply"
+msgstr "Odpovědět"
 
-msgid "You must earn 1 more credit!"
-msgstr "Musíte získat o 1 kredit více!"
+msgid "Reply to this comment"
+msgstr "Odpovědět na tento komentář"
 
-msgid "Joined"
-msgstr "Připojen"
+msgid "Quote"
+msgstr "Citovat"
 
-msgid "Credit"
-msgstr "Kredit"
+msgid "Reply to this comment with quote"
+msgstr "Odpovědět s citací na tento komentář"
 
-msgid "RAC"
-msgstr "nedávný kredit"
+msgid "Edit"
+msgstr "Upravit"
 
-msgid "Join team"
-msgstr "Připojit se k týmu"
+msgid "Edit this comment"
+msgstr "Upravit tento komentář"
 
-msgid "Click here to become a member of @this_team"
-msgstr "Klikněte zde pro připojení k týmu @this_team"
+msgid "Delete"
+msgstr "Smazat"
 
-msgid "Join this team"
-msgstr "Připojit se k tomuto týmu"
+msgid "Delete this comment"
+msgstr "Smazat tento komentář"
 
-msgid "Manage team"
-msgstr "Spravovat tým"
-
-msgid "View member list"
-msgstr "Zobrazit seznam členů"
-
-msgid "Member names and emails"
-msgstr "Jména a emailové adresy členů"
-
-msgid "View change history"
-msgstr "Zobrazit historii změn"
-
-msgid "See member activity"
-msgstr "Zobrazit aktivitu členů"
-
-msgid "Manage team message board"
-msgstr "Spravovat týmové diskuzní fórum"
-
-msgid "Create or manage message board"
-msgstr "Vytvořit či spravovat diskuzní fórum"
-
-msgid "Remove members"
-msgstr "Odebrat členy"
-
-msgid "Change founder"
-msgstr "Změnit vlastníka"
-
-msgid "Manage team admins"
-msgstr "Spravovat správce týmu"
-
-msgid "Edit team info"
-msgstr "Upravit údaje o týmu"
-
-msgid "Remove team"
-msgstr "Zrušit tým"
-
-msgid "Team forum"
-msgstr "Týmové fórum"
-
-msgid "A discussion forum has been set up for team members."
-msgstr "Bylo založeno diskuzní fórum pro členy týmu."
-
-msgid "Enter forum"
-msgstr "Přejít do fóra"
-
-msgid "Leave team"
-msgstr "Opustit tým"
-
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Klikněte zde pro zrušení svého členství v týmu @this_team"
-
-msgid "Leave this team"
-msgstr "Opustit tento tým"
-
-msgid "Edit message board"
-msgstr "Upravit diskuzní fórum"
-
-msgid "Message board title"
-msgstr "Nadpis diskuzního fóra"
-
-msgid "Text only, no HTML tags"
-msgstr "Pouze text, žádné HTML tagy"
-
-msgid "Minimum time between posts"
-msgstr "Minimální čas mezi příspěvky"
-
-msgid "Seconds"
-msgstr "Vteřin"
-
-msgid "Minimum total credit to post"
-msgstr "Minimální celkový kredit potřebný pro přispívání"
-
-msgid "Minimum avg credit to post"
-msgstr "Minimální nedávný kredit potřebný pro přispívání"
-
-msgid "Allow public to read board?"
-msgstr "Povolit veřejný přístup ke čtení fóra?"
-
-msgid "Save message board"
-msgstr "Uložit diskuzní fórum"
-
-msgid "About message boards"
-msgstr "O diskuzních fórech"
-
-msgid "This is a team-only message board"
-msgstr "Toto diskuzní fórum je jen pro členy týmu"
-
-msgid "Only members may post"
-msgstr "Přispívat mohou jen členové týmu"
-
-msgid "Only members may read (optional)"
-msgstr "Číst příspěvky mohou jen členové týmu (volitelné)"
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Práva moderovat fórum má jen Vlastník a Správci týmu"
-
-msgid "Changing the team founder"
-msgstr "Změna vlastníka týmu"
-
-msgid "Notes about changes in foundership:"
-msgstr "Poznámka ke změně vlastnictví:"
-
-msgid "Any member of the team is eligible"
-msgstr "Každý člen týmu je způsobilý"
-
-msgid "Current founder becomes a normal user"
-msgstr "Aktuální vlastník se stane běžým členem"
-
-msgid "Foundership can be requested by team members:"
-msgstr "Vlastnictví může být vyžádáno členy týmu:"
-
-msgid "One request is allowed at a time"
-msgstr "Jen jedna žádost je povolena v jeden okamžik"
-
-msgid "It must be 60 days since any previous request"
-msgstr "Musí uplynout aspoň 60 dní od jakékoliv předchozí žádosti"
-
-msgid "Any active request must be older than 90 days"
-msgstr "Poslední aktivní žádost o změnu musí být aspoň 90 dní stará"
-
-msgid "Current founder has 60 days to respond to a request"
-msgstr "Aktuální správce má 60 dní na odpověď na žádost"
+msgid "Hide this comment"
+msgstr "Schovat tento komentář"
 
-msgid "Add team admin"
-msgstr "Přidat správce týmu"
+msgid "Message @id"
+msgstr "Zpráva @id"
 
-msgid "Enter email address"
-msgstr "Zadejte emailovou adresu"
+msgid "Convert"
+msgstr "Konvertovat"
 
-msgid "Current team admins"
-msgstr "Současní správci týmu"
+msgid "Convert this comment to a new topic"
+msgstr "Konvertovat tento komentář na samostatné vlákno"
 
-msgid "About team admins"
-msgstr "O správcích týmu"
+msgid "message @id"
+msgstr "zpráva @id"
 
-msgid "Team admins can:"
-msgstr "Správcí týmu mohou:"
+msgid " in response to !parent"
+msgstr "jako odpověď na !parent"
 
-msgid "Edit team information"
-msgstr "Upravovat informace o týmu"
+msgid "Post new comment"
+msgstr "Odeslat nový komentář"
 
-msgid "View the team's join / quit history"
-msgstr "Sledovat historii příchodů a odchodů v týmu"
+msgid "Comments"
+msgstr "Komentáře"
 
-msgid "Moderate the team forum"
-msgstr "Moderovat týmové fórum"
+msgid "discuss"
+msgstr "diskutovat"
 
-msgid "Remove members from the team"
-msgstr "Vyloučit členy z týmu"
+msgid "n/a"
+msgstr "n/a"
 
-msgid "Disband a team if it has no members"
-msgstr "Rozpustit tým, pokud nebude mít žádné členy"
+msgid "@time ago"
+msgstr "@time v minulosti"
 
-msgid "Team admins cannot:"
-msgstr "Správcí týmu nemohou:"
+msgid "Threads"
+msgstr "Vlákna"
 
-msgid "Change the team founder"
-msgstr "Změnit vlastníka týmu"
+msgid "Posts"
+msgstr "Příspěvky"
 
-msgid "Add / Remove team admins"
-msgstr "Přidat nebo odebrat správce týmu"
+msgid "Last post"
+msgstr "Poslední příspěvek"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Pokud správce týmu opustí tým, ztratí též svojí pozici správce týmu. Doporučujeme vybrat jen lidi kterým důvěřujete."
-
-msgid "Choose type"
-msgstr "Vybrat typ"
-
-msgid "Team name"
-msgstr "Název týmu"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "Název týmu - HTML verze (volitelné)"
-
-msgid "You may use limited HTML tags"
-msgstr "Můžete použít některé HTML tagy"
-
-msgid "Team website (optional)"
-msgstr "Webové stránky týmu (volitelné)"
-
-msgid "Displayed on the team's page"
-msgstr "Zobrazuje se na stránce týmu"
-
-msgid "Type of team"
-msgstr "Typ týmu"
-
-msgid "Accept new members?"
-msgstr "Povolit nové členy?"
-
-msgid "Description of team"
-msgstr "Popis týmu"
-
-msgid "Create new team"
-msgstr "Vytvořit nový tým"
-
-msgid "Create a team"
-msgstr "Vytvořit tým"
-
-msgid "Save team"
-msgstr "Uložit tým"
-
-msgid "Create team message board"
-msgstr "Vytvořit týmové diskuzní fórum"
-
-msgid "Create message board"
-msgstr "Vytvořit diskuzní fórum"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Buďte prosím zodpovědní v tom, co píšete, a nevkládejte urážlivé či útočné příspěvky. Urážlivé příspěvky nebo vlákna mohou být smazána moderátorem bez upozornění či varování. Nereagujte na urážlivé příspěvky. Namísto toho klikněte na \"Nahlásit\" u daného příspěvku čímž upozorníte moderátory."
 
-msgid "You may create a message board for use by @team"
-msgstr "Je možné pro potřebu @team vytvořit diskuzní fórum"
+msgid "this project"
+msgstr "tento projekt"
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Nastavte prosím minimální průměrný kredit, který musí mít uživatel, aby mohl přispívat do tohoto diskuzního fóra."
-
-msgid "Post new topic"
-msgstr "Založit nové téma"
-
-msgid "Anonymous"
-msgstr "Anonymní"
-
-msgid "Unpublished"
-msgstr "Nepublikované"
-
-msgid "parent removed"
-msgstr "Nadřazený prvek byl odebrán"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "Emailová adresa nebo heslo není správné."
-
-msgid "Have you forgotten your password?"
-msgstr "Zapomněli jste vaše heslo?"
-
-msgid "Id"
-msgstr "Id"
-
-msgid "Recent average credit"
-msgstr "Průměrný kredit uživatele"
-
-msgid "Members"
-msgstr "Členové"
-
-msgid "Total Credit"
-msgstr "Celkový kredit"
-
-msgid "User ID"
-msgstr "Uživatelské ID"
-
-msgid "User"
-msgstr "Uživatel"
-
-msgid "Admin since"
-msgstr "Administrátorem od"
-
-msgid "Team ID"
-msgstr "Týmové ID"
-
-msgid "User joined"
-msgstr "Uživatel se připojil"
-
-msgid "Timestamp"
-msgstr "Datum a čas"
-
-msgid "Account Key"
-msgstr "Klíč k účtu"
-
-msgid "CPID"
-msgstr "ID napříč projekty"
-
-msgid "Email Address"
-msgstr "Emailová adresa"
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Také vás žádáme, abyste diskuzní fóra využívali jen k diskuzi, která souvisí se systémem BOINC, jeho projekty a vědou, která s těmito projekty souvisí. K diskuzi nad širšími tématy prosím využijte neoficiální diskuzní fóra pro @project."
 
-msgid "Password Hash"
-msgstr "Hash hesla"
+msgid "These message boards now support BBCode tags only."
+msgstr "Tyto diskuzní fóra nyní podporují pouze BBCode tagy."
 
-msgid "Postal Code"
-msgstr "Směrovací číslo"
+msgid "Featured"
+msgstr "Vybraný"
 
-msgid "Send Email"
-msgstr "Odeslat email"
+msgid "Locked"
+msgstr "Zamčené"
 
-msgid "Show Hosts"
-msgstr "Zobrazit počítače"
+msgid "Submitted on !datetime"
+msgstr "Odesláno dne !datetime"
 
-msgid "URL"
-msgstr "URL adresa"
+msgid "Computers pending"
+msgstr "Počítače nenalezené"
 
-msgid "Computer ID"
-msgstr "ID počítače"
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Tento uživatel zatím nemá žádný aktivní počítač. Počítače budou zobrazeny až získají první kredit za výpočty."
 
-msgid "Location"
-msgstr "Umístění"
+msgid "Show IP address"
+msgstr "Zobrazit IP adresu"
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% času kdy je povolená práce z doby, kdy BOINC počítá"
+msgid "Download the desktop software"
+msgstr "Stáhněte si desktopovou aplikaci"
 
-msgid "Average turnaround time"
-msgstr "Průměrný doba pro vrácení zpracované jednotky"
+msgid "Run the installer"
+msgstr "Spusťte instalátor"
 
-msgid "Created"
-msgstr "Vytvořen"
+msgid "hours"
+msgstr "hodin"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "% času kdy je dostupné připojení k Internetu z doby, kdy BOINC počítá"
+msgid "When prompted enter @siteurl"
+msgstr "Po vyzvání zadejte @siteurl"
 
-msgid "Average CPU efficiency"
-msgstr "Průměrná efektivita procesor"
+msgid "Merge"
+msgstr "Spojit"
 
-msgid "Free disk space"
-msgstr "Volné místo na disku"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Tímto navždy smažete počítač @id z vašeho účtu. Opravdu to chcete provést?"
 
-msgid "Total disk space"
-msgstr "Celkové místo na disku"
+msgid "Post topic"
+msgstr "Téma příspěvku"
 
-msgid "Task duration correction factor"
-msgstr "Korekční faktor pro dobu trvání"
+msgid "Leave team"
+msgstr "Opustit tým"
 
-msgid "Avg. credit"
-msgstr "Průměrný kredit"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Klikněte zde pro zrušení svého členství v týmu @this_team"
 
-msgid "External IP address"
-msgstr "Veřejná IP adresa"
+msgid "Leave this team"
+msgstr "Opustit tento tým"
 
-msgid "Cross project ID"
-msgstr "Meziprojektové ID"
+msgid "Request foundership"
+msgstr "Zažádat o vlastnictví"
 
-msgid "Last IP address"
-msgstr "Poslední IP adresa"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Pokud vlastník týmu není již delší dobu aktivní, je možné požádat o převzetí vlastníctví týmu @this_team odesláním žádosti níže."
 
-msgid "Cache"
-msgstr "Cache"
+msgid "Initiate request"
+msgstr "Podat žádost"
 
-msgid "Memory"
-msgstr "Paměť"
+msgid "No active computers"
+msgstr "Žádný aktivní počítač"
 
-msgid "Swap space"
-msgstr "Odkládací prostor"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Tento uživatel nemá žádný počítač, který byl aktivní za posledních 30 dní"
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "Maximální denní kvóta pracovních jednotek na CPU"
+msgid "Clear"
+msgstr "Vymazat"
 
-msgid "Average download rate"
-msgstr "Průměrná rychlost stahování"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Tímto odeberete všechny vaše předvolby ze sady nastavení @name. Jste si jistí?"
 
-msgid "Average upload rate"
-msgstr "Průměrná rychlost odesílání"
+msgid "Your community preferences have been updated."
+msgstr "Vaše komunitní předvolby byly upraveny."
 
-msgid "Same IP address count"
-msgstr "Počet připojení ze stejné IP adresy"
+msgid "Combined preferences"
+msgstr "Společné předvolby"
 
-msgid "% of time BOINC client is running"
-msgstr "% času kdy je BOINC klient aktivní"
+msgid "Switch View"
+msgstr "Přepnout vzhled"
 
-msgid "Operating system"
-msgstr "Operační systém"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Tímto odeberete všechny vaše předvolby ze sady nastavení \"@name\". Jste si jistí?"
 
-msgid "Operating system version"
-msgstr "Verze operačního systému"
+msgid "Approve profile"
+msgstr "Schválit profil"
 
-msgid "Measured floating point speed"
-msgstr "Naměřená rychlost operací v plovoucí řádové čárce"
+msgid "Approve this profile content"
+msgstr "Schválit obsah tohoto profilu"
 
-msgid "Measured integer speed"
-msgstr "Naměřená rychlost celočíselných operací"
+msgid "Reject this profile content"
+msgstr "Zamítnout obsah tohoto profilu"
 
-msgid "CPU model"
-msgstr "Model CPU"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Toto platí pro všechny BOINC projekty, kterých se chcete účastnit."
 
-msgid "Number of processors"
-msgstr "Počet procesorů"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Na počítačích podílejících se na více projektech, budou použita naposledy změněná nastavení."
 
-msgid "CPU"
-msgstr "Procesor"
+msgid "Preferences last modified: @mod_time"
+msgstr "Předvolby naposledy upraveny: @mod_time"
 
-msgid "Number of times client has contacted server"
-msgstr "Kolikrát klient kontaktoval server"
+msgid "every"
+msgstr "každých"
 
-msgid "Last contact"
-msgstr "Poslední kontakt"
+msgid "Add"
+msgstr "Přidat"
 
-msgid "Serial number"
-msgstr "Seriové číslo"
+msgid "My team"
+msgstr "Můj tým"
 
-msgid "Timezone"
-msgstr "Časová zóna"
+msgid "You are a member of @team."
+msgstr "Jste členem @team."
 
-msgid "Platform ID"
-msgstr "ID platformy"
+msgid "View my team"
+msgstr "Zobrazit můj tým"
 
-msgid "Task ID"
-msgstr "ID úkolu"
+msgid "Manage team"
+msgstr "Spravovat tým"
 
-msgid "Workunit ID"
-msgstr "ID pracovní jednotky"
+msgid "View member list"
+msgstr "Zobrazit seznam členů"
 
-msgid "Host ID"
-msgstr "ID počítače"
+msgid "Member names and emails"
+msgstr "Jména a emailové adresy členů"
 
-msgid "Application ID"
-msgstr "ID aplikace"
+msgid "View change history"
+msgstr "Zobrazit historii změn"
 
-msgid "Application version"
-msgstr "Verze aplikace"
+msgid "See member activity"
+msgstr "Zobrazit aktivitu členů"
 
-msgid "Claimed credit"
-msgstr "Získaný kredit"
+msgid "Manage team message board"
+msgstr "Spravovat týmové diskuzní fórum"
 
-msgid "Client state"
-msgstr "Stav klienta"
+msgid "Create or manage message board"
+msgstr "Vytvořit či spravovat diskuzní fórum"
 
-msgid "CPU time"
-msgstr "Procesorový čas"
+msgid "Remove members"
+msgstr "Odebrat členy"
 
-msgid "Run time"
-msgstr "Čas běhu"
+msgid "Change founder"
+msgstr "Změnit vlastníka"
 
-msgid "Exit status"
-msgstr "Stav ukončení"
+msgid "Manage team admins"
+msgstr "Spravovat správce týmu"
 
-msgid "Granted credit"
-msgstr "Přidělený kredit"
+msgid "Edit team info"
+msgstr "Upravit údaje o týmu"
 
-msgid "Outcome"
-msgstr "Výsledek"
+msgid "Remove team"
+msgstr "Zrušit tým"
 
-msgid "Received time"
-msgstr "Obdrženo dne"
+msgid "Team forum"
+msgstr "Týmové fórum"
 
-msgid "Report deadline"
-msgstr "Odevzdat do "
+msgid "A discussion forum has been set up for team members."
+msgstr "Bylo založeno diskuzní fórum pro členy týmu."
 
-msgid "Sent"
-msgstr "Odesláno"
+msgid "Enter forum"
+msgstr "Přejít do fóra"
 
-msgid "Server state"
-msgstr "Stav serveru"
+msgid "Join team"
+msgstr "Připojit se k týmu"
 
-msgid "Stderr out"
-msgstr "Výstup stderr"
+msgid "Click here to become a member of @this_team"
+msgstr "Klikněte zde pro připojení k týmu @this_team"
 
-msgid "Validation state"
-msgstr "Stav validace"
+msgid "Join this team"
+msgstr "Připojit se k tomuto týmu"
 
-msgid "App ID"
-msgstr "ID aplikace"
+msgid "Choose type"
+msgstr "Vybrat typ"
 
-msgid "Canonical credit"
-msgstr "Částečný kredit"
+msgid "Team name"
+msgstr "Název týmu"
 
-msgid "Canonical result ID"
-msgstr "ID částečného výsledku"
+msgid "Text only, no HTML tags"
+msgstr "Pouze text, žádné HTML tagy"
 
-msgid "Created time"
-msgstr "Vytvořeno dne"
+msgid "Team name -- HTML version (optional)"
+msgstr "Název týmu - HTML verze (volitelné)"
 
-msgid "Error mask"
-msgstr "Chyba masky"
+msgid "You may use limited HTML tags"
+msgstr "Můžete použít některé HTML tagy"
 
-msgid "Minimum quorum"
-msgstr "Minimální kvorum"
+msgid "Team website (optional)"
+msgstr "Webové stránky týmu (volitelné)"
 
-msgid "Max error tasks"
-msgstr "Maximum chybných úkolů"
+msgid "Displayed on the team's page"
+msgstr "Zobrazuje se na stránce týmu"
 
-msgid "Max success tasks"
-msgstr "Maximum úspěšných úkolů"
+msgid "Type of team"
+msgstr "Typ týmu"
 
-msgid "Max total tasks"
-msgstr "Maximum celkem úkolů"
+msgid "Accept new members?"
+msgstr "Povolit nové členy?"
 
-msgid "Needs validation"
-msgstr "Vyžaduje validaci"
+msgid "Description of team"
+msgstr "Popis týmu"
 
-msgid "Initial replication"
-msgstr "Počáteční replikace"
+msgid "Create a team"
+msgstr "Vytvořit tým"
 
-msgid "Target number of results"
-msgstr "Cílový počet výsledků"
+msgid "Save team"
+msgstr "Uložit tým"
 
-msgid "Application version ID"
-msgstr "ID verze aplikace"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Pokud již používáte BOINC, zadejte <i>Přidat\nProjekt</i>."
 
-msgid "Plan class"
-msgstr "Třída plánu"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Pokud používáte aplikaci BOINC pro příkazovou řádku,\nvytvořte si nejprve účet pro tento projekt pomocí BOINC Managera\n(i jinde, pokud to bude nutné), a poté použijte tento účet pro připojení\nv aplikaci BOINC pro příkazovou řádku."
 
-msgid "Version number"
-msgstr "Číslo verze"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Pokud používáte aplikaci BOINC verze starší než-5.0,\naktualizujte si prosím na novější verzi pro vytvoření účtu\nu tohoto projektu."
 
-msgid "Computer"
-msgstr "Počítač"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Pokud jste zapomněli emailovou adresu od vašeho účtu, nebo u ní již nelze přijímat emaily:"
 
-msgid "App version ID"
-msgstr "ID verze aplikace"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Pokud jste používali BOINC s tímto účtem, stále k němu můžete získat přístup. Postupujte takto:"
 
-msgid "Consecutive valid tasks"
-msgstr "Počet ověřených úkolů v řadě"
+msgid "BOINC documentation"
+msgstr "BOINC dokumentace"
 
-msgid "Number of tasks completed"
-msgstr "Počet dokončených úkolů"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Jděte do datového adresáře BOINC na vašem počítači (podívejte na !boinc_wiki pro detaily)."
 
-msgid "Max tasks per day"
-msgstr "Max úkolů na den"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Najděte soubor k účtu od tohoto projektu; bude pojmenován jako %file (kde adresa projektu je %url)."
 
-msgid "Number of tasks today"
-msgstr "Počet úkolů za dnešek"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Otevřete soubor v textovém editoru, např. Poznámkovém bloku. Uvidíte něco jako:"
 
-msgid "Show IP address"
-msgstr "Zobrazit IP adresu"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Vyberte a zkopírujte do stránky řetězec mezi <authenticator> a </authenticator> (%auth v uvedeném příkladu)."
 
-msgid "hours"
-msgstr "hod"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Zkopírujte řetězec do pole níže a klikněte na OK."
 
-msgid "@count million ops/sec"
-msgstr "@count milionů op/sek"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Nyní budete přihlášen do vašeho účtu, aktualizujte si email a heslo k vašemu účtu."
 
-msgid "@rate KiB/sec"
-msgstr "@rate KiB/sek"
+msgid "Log in with authenticator"
+msgstr "Příhlásit se pomocí autentikátoru"
 
-msgid "@count days"
-msgstr "@count dnů"
+msgid "OK"
+msgstr "OK"
 
-msgid "Remove friend"
-msgstr "Odebrat přítele"
+msgid "Post new topic"
+msgstr "Založit nové téma"
 
-msgid "Ban user"
-msgstr "Vykázat uživatele"
+msgid "Create team message board"
+msgstr "Vytvořit týmové diskuzní fórum"
 
-msgid "Add as friend"
-msgstr "Přidat mezi přátele"
+msgid "Message board title"
+msgstr "Nadpis diskuzního fóra"
 
-msgid "Team"
-msgstr "Tým"
+msgid "Minimum time between posts"
+msgstr "Minimální čas mezi příspěvky"
 
-msgid "Reply"
-msgstr "Odpovědět"
+msgid "Seconds"
+msgstr "Vteřin"
 
-msgid "Reply to this comment"
-msgstr "Odpovědět na tento komentář"
+msgid "Minimum total credit to post"
+msgstr "Minimální celkový kredit potřebný pro přispívání"
 
-msgid "Quote"
-msgstr "Citovat"
+msgid "Minimum avg credit to post"
+msgstr "Minimální nedávný kredit potřebný pro přispívání"
 
-msgid "Reply to this comment with quote"
-msgstr "Odpovědět s citací na tento komentář"
+msgid "Allow public to read board?"
+msgstr "Povolit veřejný přístup ke čtení fóra?"
 
-msgid "Edit this comment"
-msgstr "Upravit tento komentář"
+msgid "Create message board"
+msgstr "Vytvořit diskuzní fórum"
 
-msgid "Delete this comment"
-msgstr "Smazat tento komentář"
+msgid "About message boards"
+msgstr "O diskuzních fórech"
 
-msgid "Hide this comment"
-msgstr "Schovat tento komentář"
+msgid "You may create a message board for use by @team"
+msgstr "Je možné pro potřebu @team vytvořit diskuzní fórum"
 
-msgid "Convert"
-msgstr "Konvertovat"
+msgid "Only members may post"
+msgstr "Přispívat mohou jen členové týmu"
 
-msgid "Convert this comment to a new topic"
-msgstr "Konvertovat tento komentář na samostatné vlákno"
+msgid "Only members may read (optional)"
+msgstr "Číst příspěvky mohou jen členové týmu (volitelné)"
 
-msgid "Details"
-msgstr "Detaily"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Práva moderovat fórum má jen Vlastník a Správci týmu"
 
 msgid "@ip_address (same the last @count times)"
 msgstr "@ip_address (stejná u posledních @count připojení)"
 
-msgid "commented on"
-msgstr "komentoval"
-
-msgid "Make unsticky"
-msgstr "Zrušit trvalou viditelnost"
-
-msgid "Remove sticky status from this topic"
-msgstr "Zrušit trvalé zobrazení u tohoto vlákna"
+msgid "Revise or post comment"
+msgstr "Zkontrolovat nebo odeslat komentář"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1498,321 +1450,304 @@ msgstr "Zkontrolovat počítače, které jsou stejné jako @name (vytvořen @dat
 msgid "Computer @old_id has been merged successfully into @id."
 msgstr "Počítač @old_id byl úspěšně propojen do @id."
 
-msgid "started discussion"
-msgstr "zahájil diskuzi"
-
-msgid "posted"
-msgstr "odeslal"
-
-msgid "Minimum value not met for @field"
-msgstr "Minimální hodnota nedosažena pro @field"
+msgid "parent removed"
+msgstr "Nadřazený prvek byl odebrán"
 
 msgid "Remove"
 msgstr "Odebrat"
 
-msgid "hidden"
-msgstr "skryté"
-
-msgid "Invalid data type for @field"
-msgstr "Špatný typ dat pro @field"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "Při změně emailu nebo hesla je vyžadována autentikace uživatele."
 
-msgid "Request foundership"
-msgstr "Zažádat o vlastnictví"
+msgid "Make unsticky"
+msgstr "Zrušit trvalou viditelnost"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Pokud vlastník týmu není již delší dobu aktivní, je možné požádat o převzetí vlastníctví týmu @this_team odesláním žádosti níže."
+msgid "Remove sticky status from this topic"
+msgstr "Zrušit trvalé zobrazení u tohoto vlákna"
 
-msgid "Initiate request"
-msgstr "Podat žádost"
+msgid "Unhide"
+msgstr "Odkrýt"
 
-msgid "A BOINC account already exists for @email."
-msgstr "Pro emailovou adresu @email již existuje BOINC účet."
+msgid "Unhide this comment"
+msgstr "Odkrýt tento komentář"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Buďte prosím zodpovědní v tom, co píšete, a nevkládejte urážlivé či útočné příspěvky. Urážlivé příspěvky nebo vlákna mohou být smazána moderátorem bez upozornění či varování. Nereagujte na urážlivé příspěvky. Namísto toho klikněte na \"Nahlásit\" u daného příspěvku čímž uporozníte moderátory."
+msgid "Unpublished"
+msgstr "Nepublikované"
 
-msgid "this project"
-msgstr "tento projekt"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Počítače @old_ids byly úspěšně propojeny do @id."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "Také vás žádáme, abyste diskuzní fóra využívali jen k diskuzi, která souvisí se systémem BOINC, jeho projekty a vědou, která s těmito projekty souvisí. K diskuzi nad širšími tématy prosím využijte neoficiální diskuzní fóra pro @project."
+msgid "Joined"
+msgstr "Připojen"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "Tyto diskuzní fóra nyní podporují pouze BBCode tagy."
+msgid "Credit"
+msgstr "Kredit"
 
-msgid "Posts contributed"
-msgstr "Počet příspěvků"
+msgid "RAC"
+msgstr "nedávný kredit"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Počet příspěvků, které čekají na zmoderování"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Neexistuje žádný účet pro @email -- vyberte \"Vytvořit nový účet\" pro zaregistrování"
 
-msgid "Approve profile"
-msgstr "Schválit profil"
+msgid "started discussion"
+msgstr "zahájil diskuzi"
 
-msgid "Approve this profile content"
-msgstr "Schválit obsah tohoto profilu"
+msgid "commented on"
+msgstr "komentoval"
 
-msgid "Edit profile"
-msgstr "Upravit profil"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Zadané heslo není platné. Zkontrolujte si prosím, zda je správné."
 
-msgid "Edit the content of this profile"
-msgstr "Upravit obsah tohoto profilu"
+msgid "Minimum value not met for @field"
+msgstr "Minimální hodnota nedosažena pro @field"
 
-msgid "Remove profile"
-msgstr "Odebrat profil"
+msgid "Invalid data type for @field"
+msgstr "Špatný typ dat pro @field"
 
-msgid "Remove this profile content from the system"
-msgstr "Odebrat obsah tohoto profilu ze systému"
+msgid "News"
+msgstr "Novinky"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "Vlastník týmu má @count dní na odpověď na vaší žádost o převzetí vlastnictví."
+msgid "Remove friend"
+msgstr "Odebrat přítele"
 
-msgid "Reject profile"
-msgstr "Zamítnout profil"
+msgid "ignore list"
+msgstr "Seznam ignorovaných"
 
-msgid "Reject this profile content"
-msgstr "Zamítnout obsah tohoto profilu"
+msgid "here"
+msgstr "zde"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username je na vašem !ignore_list. Klikněte !here pro zobrazení příspěvku."
+
+msgid "hidden"
+msgstr "skryté"
+
+msgid "Unknown"
+msgstr "Neznámé"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Neplatné nastavení pro \"%preference\""
 
-msgid "Reason for rejecting this profile"
-msgstr "Důvod k zamítnutí tohoto profilu"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: komentář odeslán do \"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author napsal odpověď do \"!topic_name\"."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Tento důvod bude součástí emailu, který dostane uživatel. Napište prosím krátký důvod, jaký je problém a jak ho napravit."
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Pro zobrazení diskuze na !site, klikněte zde: \n!comment_url"
 
-msgid "Submit"
-msgstr "Odeslat"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "Vlastník týmu má @count dní na odpověď na vaší žádost o převzetí vlastnictví."
+
+msgid "Unlock"
+msgstr "Odemknout"
+
+msgid "Unlock this thread for comments"
+msgstr "Povolit komentáře v tomto vlákně"
 
 msgid "project"
 msgstr "projekt"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "Neexistuje žádný účet pro @email -- vyberte \"Vytvořit nový účet\" pro zaregistrování"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email není správně naformátovaná emailová adresa, zkontrolujte si jí prosím"
 
-msgid "Unknown"
-msgstr "Neznámé"
+msgid "Please enter your email address"
+msgstr "Zadejte prosím vaší emailovou adresu"
 
-msgid "My team"
-msgstr "Můj tým"
+msgid "There is no account with that authenticator."
+msgstr "Tomuto authenticatoru neodpovídá žádný účet."
 
-msgid "You are a member of @team."
-msgstr "Jste členem @team."
+msgid "That authenticator is not valid."
+msgstr "Tento autentifikátor není platný."
 
-msgid "View my team"
-msgstr "Zobrazit můj tým"
+msgid "Send request"
+msgstr "Odeslat žádost"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Neplatné nastavení pro \"%preference\""
+msgid "Friend request from !name [!site]"
+msgstr "Žádost o přítelství od !name [!site]"
 
-msgid "Pending"
-msgstr "Nevyřízené"
+msgid "Message"
+msgstr "Zpráva"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "Musíte získat o @count více kreditů abyste mohli komentovat na tomto webu."
-
-msgid "Moderation"
-msgstr "Moderování"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name si vás přidal jako přítele na webu !site. Tuto žádost o přátelství lze přijmout nebo zamítnout. Zamítnutí žádosti neodešle žádnou zprávu, ale jen odebere tuto žádost z vašeho účtu i žadatele.\n\nŽádost si zobrazíte kliknutím na odkaz níže:\n!link\n\n!message\n\nDíky,\nTým webu !site"
 
-msgid "Unvetted profiles"
-msgstr "Nehodnocené profily"
+msgid "Cancel friend request"
+msgstr "Zrušit žádost o přátelství"
 
-msgid "Reason for banning this user"
-msgstr "Důvody k vykázání tohoto užovatele"
+msgid "Please set the minimum time required between posts."
+msgstr "Nastavte prosím minimální čas potřebný mezi příspěvky."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "Tento důvod bude součástí emailu, který dostane uživatel. Napište prosím krátký důvod, proč by měl být uživatel vykázán."
-
-msgid "Duration of the ban"
-msgstr "Délka trvání vykázání"
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "Počet dnů do vypršení vykázání. Nastavením na 0 bude vykázání trvalé."
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Nastavte prosím minimální hodnotu celkového kreditu, který uživatel musí získat pro možnost přispívání do tohoto vlákna."
 
-msgid "Lift user ban"
-msgstr "Zrušit uživateli vykázání"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Nastavte prosím minimální průměrný kredit, který musí mít uživatel, aby mohl přispívat do tohoto diskuzního fóra."
 
-msgid "You are banned from community participation until @date"
-msgstr "Jste vykázáni z této komunity až do @date"
+msgid "Edit message board"
+msgstr "Upravit diskuzní fórum"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "Počítače @old_ids byly úspěšně propojeny do @id."
+msgid "Save message board"
+msgstr "Uložit diskuzní fórum"
 
-msgid "A team named \"@name\" already exists."
-msgstr "Tým se jménem \"@name\" již existuje"
+msgid "This is a team-only message board"
+msgstr "Toto diskuzní fórum je jen pro členy týmu"
 
-msgid "Post topic"
-msgstr "Téma příspěvku"
+msgid "Maximum value exceeded for @field"
+msgstr "Maximální hodnota překročena o @field"
 
-msgid "Please enter your email address"
-msgstr "Zadejte prosím vaší emailovou adresu"
+msgid "Approve request"
+msgstr "Schválit žádost"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "Zadané heslo není platné. Zkontrolujte si prosím, zda je správné."
+msgid "!name accepted your friend request [!site]"
+msgstr "!name přijal vaší žádost o přátelství [!site]"
 
-msgid "Make founder"
-msgstr "Učinit vlastníkem"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name potvrdil vaší žádost o přátelství na webu !site.\n\nPro zobrazení profilu tohoto uživatele použijte odkaz níže:\n!link\n\n!message\n\nDíky,\nTým webu !site"
 
-msgid "User of the day"
-msgstr "Uživatel dne"
+msgid "posted"
+msgstr "odeslal"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: komentář odeslán do \"!topic_name\""
+msgid "Add team admin"
+msgstr "Přidat správce týmu"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author napsal odpověď do \"!topic_name\"."
+msgid "Enter email address"
+msgstr "Zadejte emailovou adresu"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "Pro zobrazení diskuze na !site, klikněte zde: \n!comment_url"
+msgid "Current team admins"
+msgstr "Současní správci týmu"
 
-msgid "At least one application must be selected"
-msgstr "Je třeba vybrat aspoň jednu aplikaci"
+msgid "About team admins"
+msgstr "O správcích týmu"
 
-msgid "Account"
-msgstr "Účet"
+msgid "Team admins can:"
+msgstr "Správcí týmu mohou:"
 
-msgid "Log in"
-msgstr "Přihlásit se"
+msgid "Edit team information"
+msgstr "Upravovat informace o týmu"
 
-msgid "Forgot password"
-msgstr "Zapomenuté heslo"
+msgid "View the team's join / quit history"
+msgstr "Sledovat historii příchodů a odchodů v týmu"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Zadejte vaší emailovou adresu, na kterou vám budou zaslány informace k resetování vašeho hesla."
+msgid "Moderate the team forum"
+msgstr "Moderovat týmové fórum"
 
-msgid "Send"
-msgstr "Poslat"
+msgid "Remove members from the team"
+msgstr "Vyloučit členy z týmu"
 
-msgid "Revise or post comment"
-msgstr "Zkontrolovat nebo odeslat komentář"
+msgid "Disband a team if it has no members"
+msgstr "Rozpustit tým, pokud nebude mít žádné členy"
 
-msgid "discuss"
-msgstr "diskutovat"
+msgid "Team admins cannot:"
+msgstr "Správcí týmu nemohou:"
 
-msgid "News"
-msgstr "Novinky"
+msgid "Change the team founder"
+msgstr "Změnit vlastníka týmu"
 
-msgid "Your community preferences have been updated."
-msgstr "Vaše komunitní předvolby byly upraveny."
+msgid "Add / Remove team admins"
+msgstr "Přidat nebo odebrat správce týmu"
 
-msgid "Unlock"
-msgstr "Odemknout"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Pokud správce týmu opustí tým, ztratí též svojí pozici správce týmu. Doporučujeme vybrat jen lidi kterým důvěřujete."
 
-msgid "Unlock this thread for comments"
-msgstr "Povolit komentáře v tomto vlákně"
+msgid "Lift user ban"
+msgstr "Zrušit uživateli vykázání"
 
-msgid "Authenticator login"
-msgstr "Přihlášení authenticatorem"
+msgid "A team named \"@name\" already exists."
+msgstr "Tým se jménem \"@name\" již existuje"
 
-msgid "Create content"
-msgstr "Vytvořit obsah"
+msgid "A BOINC account already exists for @email."
+msgstr "Pro emailovou adresu @email již existuje BOINC účet."
 
-msgid "authenticator-based login"
-msgstr "přihlášení pomocí authenticatoru"
+msgid "Make founder"
+msgstr "Učinit vlastníkem"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Zadejte vaší emailovou adresu, na kterou vám budou zaslány informace k resetování vašeho hesla (nebo použijte !authenticator_login)."
+msgid "Changing the team founder"
+msgstr "Změna vlastníka týmu"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "Pokud jste zapomněli emailovou adresu od vašeho účtu, nebo u ní již nelze přijímat emaily:"
+msgid "Notes about changes in foundership:"
+msgstr "Poznámka ke změně vlastnictví:"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "Pokud jste používali BOINC s tímto účtem, stále k němu můžete získat přístup. Postupujte takto:"
+msgid "Any member of the team is eligible"
+msgstr "Každý člen týmu je způsobilý"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Jděte do datového adresáře BOINC na vašem počítači (ve Windows je to obvykle %path1 nebo %path2."
+msgid "Current founder becomes a normal user"
+msgstr "Aktuální vlastník se stane běžým členem"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Najděte soubor k účtu od tohoto projektu; bude pojmenován jako %file (kde adresa projektu je %url)."
+msgid "Foundership can be requested by team members:"
+msgstr "Vlastnictví může být vyžádáno členy týmu:"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Otevřete soubor v textovém editoru, např. Poznámkovém bloku. Uvidíte něco jako:"
+msgid "One request is allowed at a time"
+msgstr "Jen jedna žádost je povolena v jeden okamžik"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Vyberte a zkopírujte do stránky řetězec mezi <authenticator> a </authenticator> (%auth v uvedeném příkladu)."
+msgid "It must be 60 days since any previous request"
+msgstr "Musí uplynout aspoň 60 dní od jakékoliv předchozí žádosti"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Zkopírujte řetězec do pole níže a klikněte na OK."
+msgid "Any active request must be older than 90 days"
+msgstr "Poslední aktivní žádost o změnu musí být aspoň 90 dní stará"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Nyní budete přihlášen do vašeho účtu, aktualizujte si email a heslo k vašemu účtu."
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Aktuální správce má 60 dní na odpověď na žádost"
 
-msgid "Log in with authenticator"
-msgstr "Příhlásit se pomocí autentikátoru"
+msgid "BOINC-wide teams site"
+msgstr "BOINC stránka týmů"
 
-msgid "There is no account with that authenticator."
-msgstr "Tomuto authenticatoru neodpovídá žádný účet."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Toto je BOINC tým. Změny mohou být provedeny zde: !site ."
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Jděte do <a href=\"%wikiref\">datového adresáře BOINC</a> na vašem počítači (ve Windows je to obvykle %path1 nebo %path2."
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Žádost o změnu vlastnictví týmu již byla nedávno odeslána. O změnu vlastnictví je možné požádat maximálně jednou za 90 dní."
 
-msgid "BOINC documentation"
-msgstr "BOINC dokumentace"
+msgid "@count days remaining"
+msgstr "zbývá @count dnů"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Jděte do datového adresáře BOINC na vašem počítači (podívejte na !boinc_wiki pro detaily)."
+msgid "Team name is required."
+msgstr "Název týmu je povinný."
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "Uplynulo @count dní od vaší žádosti a vlastník nijak neodpověděl."
+msgid "Reason for banning this user"
+msgstr "Důvody k vykázání tohoto užovatele"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "Nyní máte @count dní na převzetí vlastnictví před tím, než o to bude moci požádat jiný člen týmu."
-
-msgid "Assume foundership"
-msgstr "Převzít vlastnictví"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Tento důvod bude součástí emailu, který dostane uživatel. Napište prosím krátký důvod, proč by měl být uživatel vykázán."
 
-msgid "Unhide"
-msgstr "Odkrýt"
+msgid "Duration of the ban"
+msgstr "Délka trvání vykázání"
 
-msgid "Unhide this comment"
-msgstr "Odkrýt tento komentář"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Počet dnů do vypršení vykázání. Nastavením na 0 bude vykázání trvalé."
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email není správně naformátovaná emailová adresa, zkontrolujte si jí prosím"
+msgid "Submit"
+msgstr "Odeslat"
diff --git a/locale/cs/BOINC-Manager.mo b/locale/cs/BOINC-Manager.mo
index 38f3d3d..e737edc 100644
Binary files a/locale/cs/BOINC-Manager.mo and b/locale/cs/BOINC-Manager.mo differ
diff --git a/locale/cs/BOINC-Manager.po b/locale/cs/BOINC-Manager.po
index 247889d..bc1f72b 100644
--- a/locale/cs/BOINC-Manager.po
+++ b/locale/cs/BOINC-Manager.po
@@ -1,65 +1,60 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Christian Beer <christian.beer at posteo.de>, 2016
+# Šimon Orság <simonorsag98 at gmail.com>, 2016
 # Martin Suchan <martin.suchan at outlook.com>, 2015
 # Pavel <xxxq at seznam.cz>, 2015
-# Petr Nekvinda <petr.nekvinda at gmail.com>, 2015
+# Petr Nekvinda <petr.nekvinda at gmail.com>, 2015-2016
+# Šimon Orság <simonorsag98 at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-03-31 07:08+0000\n"
-"Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-17 16:09+0000\n"
+"Last-Translator: Tomas Hrdina <mot2425 at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/boinc/boinc/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Zadejte údaje k vašemu účtu u %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Zadejte prosím údaje k vašemu účtu\n(účet si vytvoříte na webových stránkách projektu)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Tento projekt momentálně neumožňuje vytváření nových účtů.\nMůžete jej přidat pouze, pokud již máte existující účet."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Máte již vytvořený účet u tohoto projektu?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Ne, jsem nový uživatel"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Ano, již mám účet"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -69,85 +64,85 @@ msgid ""
 "password fields."
 msgstr "Nepodařilo se automaticky nastavit informace\no vašem účtu.\n\nPro nápovědu co zadat do kolonek Emailová adresa a Heslo\nklikněte dole na odkaz 'Získat přihlašovací informace'."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Získat přihlašovací informace"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Heslo:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Zvolte si &heslo:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "P&otvrďte heslo:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Používáte již %s?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Uživatelské jméno:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&E-mailová adresa nebo LDAP ID:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Emailová adresa:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "minimální délka je %d znaků"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Zapomněli jste heslo?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Pokus ještě nejste registrováni u tohoto Správce účtu,\nučiňte tak, než budete pokračovat. Pro registraci nebo\nzískání zapomenutého hesla klikněte na odkaz dole."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Webová stránka Správce účtu"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Přidat projekt"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Aktualizovat Správce účtu"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Použít Správce účtu"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Zadejte prosím Vaše uživatelské jméno."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Zadejte prosím Vaši emailovou adresu."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Zadejte prosím heslo o délce alespoň %d znaků."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Zadaná hesla se neshodují. Prosím napište je znovu."
@@ -200,27 +195,27 @@ msgstr "Čekejte prosím..."
 msgid "An internal server error has occurred.\n"
 msgstr "Na serveru se vyskytla vnitřní chyba. \n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Připojen"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Odpojen"
 
 #: clientgui/AdvancedFrame.cpp:329
 #, c-format
 msgid "New %s window..."
-msgstr "Nové okno %s..."
+msgstr "nové okno %s"
 
 #: clientgui/AdvancedFrame.cpp:333
 #, c-format
 msgid "Open another %s window"
-msgstr "Otevřít další okno %s"
+msgstr "otevřít další okno %s"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Zvolit počítač..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Vyberte počítač...\tCtrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -322,7 +317,7 @@ msgstr "Přid&at projekt"
 
 #: clientgui/AdvancedFrame.cpp:458
 msgid "&Use account manager..."
-msgstr "Po&užít Správce účtu..."
+msgstr "&Použít Správce účtu..."
 
 #: clientgui/AdvancedFrame.cpp:459
 msgid "Use an account manager to control this computer."
@@ -530,7 +525,7 @@ msgstr "&Webové stránky %s"
 msgid "Show information about BOINC and %s"
 msgstr "Zobrazit webovou stránku s informacemi o projektu BOINC a o programu %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -554,7 +549,7 @@ msgstr "&Aktivity"
 
 #: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
 msgid "&Options"
-msgstr "M&ožnosti"
+msgstr "&Možnosti"
 
 #: clientgui/AdvancedFrame.cpp:719 clientgui/sg_BoincSimpleFrame.cpp:287
 msgid "&Tools"
@@ -565,12 +560,12 @@ msgstr "&Nástroje"
 msgid "&Help"
 msgstr "&Nápověda"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Přestat používat %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -580,39 +575,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Pokud přestanete používat %s,\nvšechny stávající projekty budou zachovány,\nale budete je muset spravovat manuálně.\n\nChcete přestat používat %s?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Vypnout aktuálního klienta..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s vypne aktuálně připojeného klienta\na vyzve vás k připojení k jinému počítači."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s úspěšně přidal %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Připojuji se k %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Připojeno k %s (%s)"
@@ -661,7 +656,7 @@ msgid "%s - Communication"
 msgstr "%s - Komunikace"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Zrušit"
@@ -736,7 +731,7 @@ msgid ""
 msgstr "%s není momentálně připojen ke klientu %s.\nPro připojení ke klientu %s použijte volbu 'Nastavení -> Volba počítače...'.\nChcete-li se připojit ke klientu běžícímu na vašem počítači, \ndo kolonky 'Jméno počítače' zadejte 'localhost'."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Webové stránky projektu"
 
@@ -796,7 +791,7 @@ msgstr "%s se úspěšně odpojil od Internetu."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s se nezvládl odpojit od Internetu."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -809,170 +804,170 @@ msgid ""
 "     user group."
 msgstr "Momentálně nemáte práva na správu klienta.\n\nAbyste mohl používat %s jako aktuální uživatel:\n- přeinstalujte %s s volbou \"Ano\" u otázky na\nne-administrátorské účty\nnebo\n- kontaktujte vašeho administrátora, aby vás přidal\ndo uživatelské skupiny 'boinc_master'."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "Práva či vlastnictví souborů %s nejsou nastavena správně, přeinstalujte prosím %s.\n(Chybový kód %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " v "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "Pro správné fungování BOINC je vyžadován restart.\nProsím restartujte počítač a zkuste to znova."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC manažer"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC manažer byl automaticky spuštěn operačním systémem"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Spustit BOINC pouze s ikonou v systémové liště"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Složka obsahující spustitelného BOINC klienta"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Složka pro BOINC data"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Jméno počítače nebo IP adresa"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "Číslo portu pro GUI RPC"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Heslo"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Spouštět BOINC s těmito volitelnými parametry"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "zrušit bezpečnostní uživatele a práva BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "Nastavit ladící režim správce vzhledů pro zobrazení chybových zpráv správce vzhledů"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "povoleno více instancí BOINC Manažera"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Nepoužito: oprava pro chybu v XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Nepouštět daemona"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Zjištěno automaticky)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Neznámé)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Definováno uživatelem)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Otevřít webové stránky %s..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Otevřít %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Uspat"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Uspat GPU"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "Ukončit"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Obnovit"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Obnovit GPU"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Počítání je povoleno"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Počítání je pozastaveno - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU počítání je povoleno"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU počítání je pozastaveno - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Přístup k Internetu je povolen"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Přístup k Internetu je pozastaven - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Obnovuji spojení s klientem."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Nepřipojeno ke klientu."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Zprávy"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Jsou dostupné nové zprávy - klikněte pro zobrazení."
 
@@ -1087,46 +1082,6 @@ msgstr "Pro více informací navštivte"
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Neplatné číslo"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Neplatný čas, hodnota musí být mezi 0:00 a 24:00, formát je HH:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "Počáteční čas musí být odlišný od koncového času"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Číslo musí být mezi 0 a 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Číslo musí být mezi 0 a 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Číslo musí být mezi 1 a 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "zadaná neplatná vstupní hodnota"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Chyba při validaci"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Zahodit místní předvolby a používat ty webové?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Potvrzení"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1174,7 +1129,7 @@ msgid "Daily schedules"
 msgstr "Denní plány"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1189,7 +1144,7 @@ msgstr "Zavřít dialog bez uložení změn."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Nápověda"
@@ -1588,75 +1543,123 @@ msgstr "Přenos souborů pouze během určitého časového období každý den.
 msgid "Transfer files only between"
 msgstr "Přenášet soubory pouze mezi"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Neplatné číslo"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Neplatný čas, hodnota musí být mezi 0:00 a 24:00, formát je HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Počáteční čas musí být odlišný od koncového času"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Číslo musí být mezi 0 a 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Číslo musí být mezi 0 a 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Číslo musí být mezi 1 a 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "zadaná neplatná vstupní hodnota"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Chyba při validaci"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Zahodit místní předvolby a používat ty webové?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Potvrzení"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s přepínače diagnostického logu"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Tyto přepínače povolují různé typy diagnostickéch zpráv v Záznamu událostí."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Více informací ..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Uložit všechny hodnoty a zavřít dialog"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "Výchozí"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Obnovit výchozí nastavení"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Zavřít dialog bez uložení změn"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Použít"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Uložit všechny hodnoty"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Záznam událostí"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projekt"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Čas"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Zpráva"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Zobrazit jen tento projekt"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Kopírovat &vše"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Zkopíruje všechny zprávy do schránky."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Kopírovat &vybrané"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1664,7 +1667,7 @@ msgid ""
 "messages."
 msgstr "Zkopíruje označené zprávy do schránky. Označit více zpráv je možno klikáním na zprávy se současně stisknutou klávesou Shift nebo Command."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1672,19 +1675,19 @@ msgid ""
 "messages."
 msgstr "Zkopíruje označené zprávy do schránky. Označit více zpráv je možno klikáním na zprávy se současně stisknutou klávesou Shift nebo Ctrl."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Zavřít"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Zobrazit všechny zprávy"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Zobrazit zprávy všech projektů."
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Zobrazit pouze zprávy vybraného projektu"
 
@@ -1707,7 +1710,7 @@ msgid "Add an application to this list"
 msgstr "Přidat aplikaci do tohoto seznamu"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Odebrat"
 
@@ -2041,14 +2044,14 @@ msgstr "Prostředky"
 msgid "Estimated computation size"
 msgstr "Odhadovaná doba výpočtu"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "Procesorový čas při posledním uložení "
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Procesorový čas"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Čas procesoru od kontroly"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Čas"
@@ -2098,8 +2101,8 @@ msgstr "za sekundu"
 msgid "Executable"
 msgstr "Spustitelný"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Místní:"
 
@@ -2458,203 +2461,191 @@ msgstr "Výzkum"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Dozvědět se víc o projektech umístěných na World Community Grid"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Startuji klienta"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Připojuji se ke klientovi"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Zjišťuji stav systému, prosím čekejte..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Chybějící aplikace"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Stáhněte si prosím a naistalujte aplikaci CoRD z adresy http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "na bateriích"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "počítač je používán"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "požadavek uživatele"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "čas"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "probíhají testy procesoru"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "nedostatek místa na disku - zkontrolujte prosím předvolby"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "počítač není používán"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "startuji"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "běží důležitější aplikace"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "procesor je vytížen"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "překročen limit přenosu dat po síti"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "vyžádáno operačním systémem"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "neznámý důvod"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU nenalezena, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Nový"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Chyba při stahování"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Stahuji"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (pozastaveno - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Projekt pozastaven uživatelem"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Úkol pozastaven uživatelem"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Pozastaveno - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU pozastaveno - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Čekám na uvolnění paměti"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Čekám na uvolnění sdílené paměti"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Počítám"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (nenáročný na procesor)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Čekám na zpracování"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Připraven"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Odloženo:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Odloženo"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "Čekám na připojení k Internetu"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Chyba při výpočtu"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Chyba při odesílání"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Odesílám"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Zrušeno uživatelem"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Zrušeno projektem"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Zrušeno: vypršela lhůta před započetím"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Zrušeno: překročeno místo na disku pro úkol"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Zrušeno: překročena maximální délka výpočtu"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Zrušeno: překročen povolený limit paměti"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Zrušeno"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Potvrzeno"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Odeslán. Připraven k ohlášení"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Chyba: Neplatný stav '%d'"
@@ -2718,7 +2709,7 @@ msgstr "Vyberte si projekt kliknutím na jeho jméno\nnebo napište jeho URL adr
 msgid "Categories:"
 msgstr "Kategorie:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projekty:"
 
@@ -2762,24 +2753,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Tento projekt již máte přidaný. Zvolte prosím jiný projekt."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Komunikuji s projektem."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Komunikuji s projektem.\nČekejte prosím..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Potřebné soubory nenalezeny na serveru."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Na serveru se vyskytla vnitřní chyba."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Komunikuji s projektem.\nČekejte prosím..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2877,1024 +2865,938 @@ msgstr "Autodekce"
 msgid "SOCKS proxy"
 msgstr "SOCKS proxy server"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Podmínky použití"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Vzhled"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Přečtěte si prosím následující podmínky použití:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Vyberte si vzhled aplikace."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Souhlasím s podmínkami použití."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Pokročilé zobrazení...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Nesouhlasím s podmínkami použití."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Zobrazit rozšířené grafické rozhraní."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projekt je dočasně nedostupný"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Nastavit vzhled a způsob připojení k Internetu (proxy server)"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Projekt je dočasně nedostupný.\n\nZkuste to prosím později. "
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Zobrazit diagnostické zprávy."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Správce účtu je dočasně nedostupný"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Správce účtu je dočasně nedostupný.\n\nZkuste to prosím později. "
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Výchozí"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Zadej prosím klíč k účtu pro pokračování."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Pozastavit"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Neplatný klíč k účtu - vložte prosím platný klíč"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Pozastavit výpočty"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Chyba při validaci"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Pokračovat ve výpočtech"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Zadejte prosím emailovou adresu"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Zprávy"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Neplatná emailová adresa - vložte prosím platnou adresu"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Otevřít okno s informačními zprávami projektů nebo BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Chybí URL adresa"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Zobrazit nápovědu pro %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Zadejte prosím URL adresu.\nNapříklad:\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Načítám zprávy, prosím čekejte..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Neplatná URL adresa"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Nejsou dostupné žádné zprávy."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Zadejte prosím platnou URL adresu.\nNapříklad:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Zavřít"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' neobsahuje platné jméno počítače."
+msgid "%s - Notices"
+msgstr "%s - Zprávy"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' neobsahuje platnou cestu."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Příkazy"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Zkopírovat všechny zprávy"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Zkopírovat označené zprávy"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Zobrazit jen tento projekt"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Zobrazit pouze zprávy vybraného projektu."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Zprávy"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Kopíruji všechny zprávy do schránky..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Kopíruji označené zprávy do schránky..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtruji zprávy..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Zobrazit všechny zprávy"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Zobrazit zprávy všech projektů."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Podrobnější nastavení najdete ve Výpočetních předvolbách v Pokročilém zobrazení."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Načítám zprávy, prosím čekejte..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB místa na disku"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Nejsou dostupné žádné zprávy."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Předvolby výpočtů"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Zprávy"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Zahodit všechny místní předvolby a používat ty webové?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Aktualizovat"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Nahlásit veškerou dokončenou práci, získat aktuální údaj o kreditu a nastavení a je-li možno, přijmout další práci."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Pozastavit"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Pozastavit práci tohoto projektu."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Nepřijímat další práci"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Zakázat projektu přijímat další práci."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Restartovat projekt"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Smazat všechny soubory a úkoly související s tímto projektem a stáhnout nové. Před restartováním doporučujeme projekt aktualizovat, čímž odešlete a ohlásíte všechny dokončené úkoly."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Odebrat tento projekt. Započatá práce bude ztracena. Před odebráním doporučujeme projekt aktualizovat, čímž odešlete a ohlásíte všechny dokončené úkoly. "
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Vlastnosti"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Zobrazit detaily projektu."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Účet"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Kredit"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Průměrný kredit"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Stav"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projekty"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Aktualizuji projekt..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Obnovuji projekt..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Pozastavuji projekt..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Obnovit práci pro tento projekt."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Povoluji projektu přijímat další práci..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Povolit další práci"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Zakazuji projektu přijímat další práci..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Povolit tomuto projektu přijímat další práci."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Restartuji projekt..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Zakázat tomuto projektu přijímat další práci."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Opravdu chcete restartovat projekt '%s'?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Restartovat projekt"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Odebírám projekt..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Opravdu chcete odebrat projekt '%s'?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Odebrat projekt"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Spouštím internetový prohlížeč..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Přidat projekt"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Obnovit práci pro tento projekt."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Synchronizovat"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Povolit další práci"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Práce hotova pro tento projekt"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Povolit tomuto projektu přijímat další práci."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Staňte se dobrovolníkem v kterémkoliv z více než 30 projektů v mnoha vědeckých oblastech"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Zakázat tomuto projektu přijímat další práci."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Synchronizovat projekty se systémem Správce účtu"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Vyžádáno uživatelem"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Zvolte projekt, který chcete ovládat prvky dole"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "Získat novou práci"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Webové stránky projektu"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "Nahlásit dokončené úkoly"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Příkazy projektu"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Odeslat zprávu o průběhu"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Otevřít menu s webovými stránkami projektu %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Vyžádáno správcem účtu"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Otevřít menu s příkazy pro projekt %s"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Prvotní nastavení projektu"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Zobrazit grafiku"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Vyžádáno projektem"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Zobrazit grafické okno aplikace."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Neznámý důvod"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Pozastavit tento úkol."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Pozastaveno uživatelem"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Zrušit"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Neobdrží další práci"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Zrušit tento úkol. Neobdržíte za něj žádný kredit."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Projekt ukončen - nyní je možné projekt opustit"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Zobrazit detaily úkolu."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Bude odebrán po dokončení úkolů"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Obnovit práci na tomto úkolu."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Nevyřízený požadavek plánovače"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Pozastavit práci na tomto úkolu."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Zpracovávám požadavek plánovače"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Opravdu chcete zrušit tento úkol '%s'?\n(Průběh: %.1lf%%, Stav: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Nevyřízené odeslání zprávy o průběhu"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Zrušit úkol"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Komunikace odložena"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Nemáte žádný projekt. Přidejte si prosím nějaký projekt."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Obsazené místo na disku"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Nedostupné"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Využití disku projekty BOINC"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Úkoly:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "žádné projekty: 0 bajtů použito"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Zvolit úkol"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "prostor využitý BOINC: "
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Od:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "volné, dostupné pro BOINC: "
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Průběh tohoto úkolu"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "volné, nedostupné pro BOINC: "
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Příkazy úkolu"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "volné místo: "
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Otevřít menu s příkazy pro tento úkol"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "využité ostatními programy: "
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Aplikace: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Celkový kredit uživatele"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Průměrný kredit uživatele"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Aplikace: Nedostupná"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Celkový kredit počítače"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Nedostupný"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Průměrný kredit počítače"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Uplynulo: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Poslední akualizace - před %.0f dny"
+msgid "Remaining (estimated): %s"
+msgstr "Zbývá (odhad): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Celkový kredit uživatele"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Stav: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Zobrazit celkový kredit uživatele"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Zjišťuji aktuální stav."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Průměrný kredit uživatele"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Stahuji práci ze serveru."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Zobrazit průměrný kredit uživatele"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Výpočty pozastaveny:  Provoz na baterie."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Celkový kredit počítače"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Výpočty pozastaveny:  Uživatel je aktivní."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Zobrazit celkový kredit počítače"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Výpočty pozastaveny:  Pozastaveno uživatelem."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Průměrný kredit počítače"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Výpočty pozastaveny:  Denní doba."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Zobrazit průměrný kredit počítače"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Výpočty pozastaveny:  Probíhají testy procesoru."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< &Předchozí projekt"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Zpracování pozastaveno: potřebuje místo na disku."
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Zobrazit graf předchozího projektu"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Výpočty pozastaveny."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "Další projekt >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Čekám na kontakt se servery projektu."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Zobrazit graf následujícího projektu"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Zjišťuji aktuální stav"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Schovat seznam projektů"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Není k dispozici žádná práce"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Použít celou oblast pro grafy"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Selhalo spojení s klientem"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Zobrazení"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Podmínky použití"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Jeden projekt"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Přečtěte si prosím následující podmínky použití:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Zobrazit jeden graf se zvoleným projektem"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Souhlasím s podmínkami použití."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Všechny projekty (zvlášť)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Nesouhlasím s podmínkami použití."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Zobrazit všechny projekty, každý ve svém grafu"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projekt je dočasně nedostupný"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Všechny projekty (dohromady)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Projekt je dočasně nedostupný.\n\nZkuste to prosím později. "
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Zobrazit jeden graf se všemi projekty"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Správce účtu je dočasně nedostupný"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Všechny projekty (součet)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Správce účtu je dočasně nedostupný.\n\nZkuste to prosím později. "
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Zobrazit jeden graf se součtem všech projektů"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Zadej prosím klíč k účtu pro pokračování."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Statistiky"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Neplatný klíč k účtu - vložte prosím platný klíč"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Aktualizuji grafy..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Chyba při validaci"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Zobrazit seznam projektů"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Zadejte prosím emailovou adresu"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Používá menší oblast pro grafy"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Neplatná emailová adresa - vložte prosím platnou adresu"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Obnovit přenos"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Chybí URL adresa"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Obnovit přenost souborů"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Zadejte prosím URL adresu.\nNapříklad:\nhttp://www.example.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Zrušit přenos"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Neplatná URL adresa"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Zrušit přenos souborů. Neobdržíte žádný kredit za tento úkol."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Zadejte prosím platnou URL adresu.\nNapříklad:\nhttp://boincproject.example.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Soubor"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' neobsahuje platné jméno počítače."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Průběh"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' neobsahuje platnou cestu."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Velikost"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Příkazy"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Čas"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Zkopírovat všechny zprávy"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Rychlost"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Zkopírovat označené zprávy"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Přenos"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Zobrazit jen tento projekt"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Přístup k síti je pozastaven - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Zobrazit pouze zprávy vybraného projektu."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nMůžete ho obnovit v menu Aktivity."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Zprávy"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Kopíruji všechny zprávy do schránky..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Pokouším se obnovit přenos..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Kopíruji označené zprávy do schránky..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Ruším přenos..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtruji zprávy..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Skutečně chcete zrušit přenos tohoto souboru '%s'?\nPozn: Zrušením přenosu souboru zrušíte daný úkol\na neobdržíte za něj kredit."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Zobrazit všechny zprávy"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Zrušit přenos souboru"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Zobrazit zprávy všech projektů."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Odesílání"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Účet"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Stáhování"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Kredit"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "zkusit znovu za "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Průměrný kredit"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "selhalo"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Stav"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "pozastaveno"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projekty"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "probíhá"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Vyžádáno uživatelem"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "vyčkává"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Získat novou práci"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (odložení projektu: "
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Nahlásit dokončené úkoly"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Zobrazit aktivní úkoly "
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Odeslat zprávu o průběhu"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Zobrazit pouze aktivní úkoly."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Vyžádáno správcem účtu"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Zobrazit grafiku"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Prvotní nastavení projektu"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Zobrazit grafické okno aplikace."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Vyžádáno projektem"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Zobrazit VM konzoli"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Neznámý důvod"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Zobrazit VM konzoli v okně."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Pozastaveno uživatelem"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Pozastavit práci na tomto úkolu."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Neobdrží další práci"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Zrušit"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projekt ukončen - nyní je možné projekt opustit"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Ukončit práci na tomto úkolu. Za úkol nebude přidělen žádný kredit."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Bude odebrán po dokončení úkolů"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Zobrazit detaily úkolu."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Nevyřízený požadavek plánovače"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Zbývá (odhad)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Zpracovávám požadavek plánovače"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Odevzdat do"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Nevyřízené odeslání zprávy o průběhu"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Úkoly"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Komunikace odložena"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Obnovuji úkol..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Obsazené místo na disku"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Pozastavuji úkol..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Využití disku projekty BOINC"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Zobrazuji grafické okno pro úkol..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "žádné projekty: 0 bajtů použito"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Zobrazuji VM konzoli pro úkol..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "prostor využitý BOINC: "
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Opravdu chcete zrušit tento úkol '%s'?\n(Průběh: %s, Stav: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "volné, dostupné pro BOINC: "
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Opravdu chcete zrušit těchto %d úkolů?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "volné, nedostupné pro BOINC: "
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Zrušit úkol"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "volné místo: "
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Ruším úkol..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "využité ostatními programy: "
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Zobrazit všechny úkoly "
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Celkový kredit uživatele"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Zobrazit všechny úkoly."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Průměrný kredit uživatele"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Obnovit práci na tomto úkolu."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Celkový kredit počítače"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Pozastavit práci na tomto úkolu."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Průměrný kredit počítače"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Opravdu chcete operaci zrušit?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Poslední akualizace - před %.0f dny"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Dotaz"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Celkový kredit uživatele"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Služby"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Zobrazit celkový kredit uživatele"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "Skrýt %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Průměrný kredit uživatele"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Skrýt ostatní"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Zobrazit průměrný kredit uživatele"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Zobrazit vše"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Celkový kredit počítače"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Opustit %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Zobrazit celkový kredit počítače"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Vzhled"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Průměrný kredit počítače"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Vyberte si vzhled aplikace."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Zobrazit průměrný kredit počítače"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Pokročilé zobrazení...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Předchozí projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Zobrazit rozšířené grafické rozhraní."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Zobrazit graf předchozího projektu"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Nastavit vzhled a způsob připojení k Internetu (proxy server)"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "Další projekt >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Zobrazit diagnostické zprávy."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Zobrazit graf následujícího projektu"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Schovat seznam projektů"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Výchozí"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Použít celou oblast pro grafy"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Pozastavit výpočty"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Zobrazení"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Pokračovat ve výpočtech"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Jeden projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Otevřít okno s informačními zprávami projektů nebo BOINC"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Zobrazit jeden graf se zvoleným projektem"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Zobrazit nápovědu pro %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Všechny projekty (zvlášť)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Zavřít"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Zobrazit všechny projekty, každý ve svém grafu"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Zprávy"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Všechny projekty (dohromady)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Podrobnější nastavení najdete ve Výpočetních předvolbách v Pokročilém zobrazení."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Zobrazit jeden graf se všemi projekty"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "GB místa na disku"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Všechny projekty (součet)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - Předvolby výpočtů"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Zobrazit jeden graf se součtem všech projektů"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Zahodit všechny místní předvolby a používat ty webové?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statistiky"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Přidat projekt"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Zobrazit seznam projektů"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Synchronizovat"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Používá menší oblast pro grafy"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Práce hotova pro tento projekt"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Obnovit přenos"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Staňte se dobrovolníkem v kterémkoliv z více než 30 projektů v mnoha vědeckých oblastech"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Obnovit přenost souborů"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Synchronizovat projekty se systémem Správce účtu"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Zrušit přenos"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Zvolte projekt, který chcete ovládat prvky dole"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Zrušit přenos souborů. Neobdržíte žádný kredit za tento úkol."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Webové stránky projektu"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Soubor"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Příkazy projektu"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Průběh"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Otevřít menu s webovými stránkami projektu %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Velikost"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Otevřít menu s příkazy pro projekt %s"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Čas"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Pozastavit tento úkol."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Rychlost"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Zrušit tento úkol. Neobdržíte za něj žádný kredit."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Přenos"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Opravdu chcete zrušit tento úkol '%s'?\n(Průběh: %.1lf%%, Stav: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Přístup k síti je pozastaven - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Nemáte žádný projekt. Přidejte si prosím nějaký projekt."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nMůžete ho obnovit v menu Aktivity."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Nedostupné"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Úkoly:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Skutečně chcete zrušit přenos tohoto souboru '%s'?\nPozn: Zrušením přenosu souboru zrušíte daný úkol\na neobdržíte za něj kredit."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Zvolit úkol"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Zrušit přenos souboru"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "Od:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Odesílání"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Průběh tohoto úkolu"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Stáhování"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Příkazy úkolu"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "zkusit znovu za "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Otevřít menu s příkazy pro tento úkol"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "selhalo"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Aplikace: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "pozastaveno"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "probíhá"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Aplikace: Nedostupná"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "vyčkává"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Nedostupný"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (odložení projektu: "
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Uplynulo: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Zobrazit aktivní úkoly "
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Zbývá (odhad): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Zobrazit pouze aktivní úkoly."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Stav: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Zobrazit VM konzoli"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Zjišťuji aktuální stav."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Zobrazit VM konzoli v okně."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Stahuji práci ze serveru."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Pozastavit práci na tomto úkolu."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Výpočty pozastaveny:  Provoz na baterie."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Ukončit práci na tomto úkolu. Za úkol nebude přidělen žádný kredit."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Výpočty pozastaveny:  Uživatel je aktivní."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Zbývá (odhad)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Výpočty pozastaveny:  Pozastaveno uživatelem."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Odevzdat do"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Výpočty pozastaveny:  Denní doba."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Úkoly"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Výpočty pozastaveny:  Probíhají testy procesoru."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Opravdu chcete zrušit tento úkol '%s'?\n(Průběh: %s, Stav: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Výpočty pozastaveny."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Opravdu chcete zrušit těchto %d úkolů?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "Čekám na kontakt se servery projektu."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Zobrazit všechny úkoly "
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Zjišťuji aktuální stav"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Zobrazit všechny úkoly."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Není k dispozici žádná práce"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Opravdu chcete operaci zrušit?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Selhalo spojení s klientem"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Dotaz"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3908,11 +3810,24 @@ msgstr "< Zpět"
 msgid "&Finish"
 msgstr "&Dokončit"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "V tyto dny v týdnu, počítat jen v tyto hodiny"
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Služby"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Skrýt %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Skrýt ostatní"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Zobrazit vše"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "V tyto dny v týdnu, posílat soubory jen v tyto hodiny"
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Opustit %s"
diff --git a/locale/cs/BOINC-Project-Generic.po b/locale/cs/BOINC-Project-Generic.po
deleted file mode 100644
index 9b7715b..0000000
--- a/locale/cs/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6515 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Martin Suchan <martin.suchan at outlook.com>, 2015
-# Pavel <xxxq at seznam.cz>, 2015
-# Petr Nekvinda <petr.nekvinda at gmail.com>, 2015
-# Petr Nekvinda <petr.nekvinda at gmail.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-04-07 06:48+0000\n"
-"Last-Translator: Martin Suchan <martin.suchan at outlook.com>\n"
-"Language-Team: Czech (http://www.transifex.com/boinc/boinc/language/cs/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: cs\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Čeština"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Czech"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Pozvánkový kód"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Pro vytvoření účtu je zapotřebí platný povánkový kód."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Jméno"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Vaše identifikace na stránkách. Použijte skutečné jméno, nebo přezdívku."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Emailová adresa"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Adresa musí být platného tvaru 'jmeno at domena'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Heslo"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Musí mít délku aspoň %1 znaků"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Potvrďte heslo"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Země"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Vyberte si zemi, kterou chcete reprezentovat."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "PSČ nebo ZIP kód"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Volitelné"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Vytvořit účet"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Emailová adresa:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "zapomenutá emailová adresa?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Heslo:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "zapomenuté heslo?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Zústat přihlášen"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Přihlásit se"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Tučný text: [b]text[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kurzíva: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Podtržený text: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Přeškrtnutý text: [s]text[/s] (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citovat text: [quote]text[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Zobrazit kód: [code]code[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Seznam: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Číslovaný seznam: [list=]text[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Vložit obrázek: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Vložit odkaz: [url]http://url[/url] nebo [url=http://url]text odkazu[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Barva fontu"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Barva fontu: [color=red]text[/color]  Lze použít anglické názvy barev, nebo přímo kód=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Výchozí"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Tmavě červená"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Červená"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Oranžová"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Hnědá"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Žlutá"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Zelená"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Olivově zelená"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Azurová"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Modrá"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Tmavě modrá"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indigově modrá"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Fialová"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Velikost fontu"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Velikost fontu: [size=x-small]malý text[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Malý"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normální"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Velký"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Uzavřít všechny otevřené bbCode tagy"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Uzavřít tagy"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Od nejstarších"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Od nejnovějších"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Od nejlépe hodnocených příspěvků"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Od nejnovějších příspěvků"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Od nejvíce zobrazení"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Od nejvíce příspěvků"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Dobrovolný moderátor"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Administrátor projektu"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Vývojář projektu"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Tester projektu"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Dobrovolný vývojář"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Dobrovolný tester"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Vědec projektu"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Odborník podpory"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Vyhledat slova v diskuzích"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Hledat v diskuzních fórech"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Pokročilé hledání"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Soukromé zprávy"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Otázky a odpovědi"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Diskuzní fóra"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "Diskuzní fórum %1"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Předchozí"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Další"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Zpráva"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Poslat zprávu"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Poslat %1 soukromou zprávu"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Připojen: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Příspěvků: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Kredit: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Tuto zprávu jste dosud nečetli"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Nepřečtené"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Zpráva %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "skryté"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Odesláno: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - jako odpověď na "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Upravit"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Upravit tuto zprávu"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Naposledy upraveno: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Příspěvek není zobrazen, protože jeho odesílatel je na vašem seznamu 'ignorovaých uživatelů'. %1Klikněte zde%2 pro zobrazení tohoto příspěvku."
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Nahlásit tento příspěvek jako urážlivý"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Nahlásit jako urážlivý"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Hodnocení: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "hodnotit:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Klikněte, pokud se vám líbí tento příspěvek"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Hodnotit +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Klikněte pokud se vám nelíbí tato zpráva"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Hodnotit -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Odpovědět"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Klikněte pro napsání odpovědi na tento příspěvek"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Citovat"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Klikněte pro citování tohoto příspěvku"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Schováno moderátorem"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Odesláno %1 od %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Nemáte povoleno přispívat nebo hlasovat až do %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Příspěvky musí být 'vhodné pro děti': nesmí obsahovat\nobsah, který je obscénní, nenávistný či\nse sesxuálně motivovaným obsahem.\n        <li> Žádné komerční nabídky.\n        <li> Žádné odkazy na stránky propagující sexuální obsah,\nhazard či nenávist k druhým.\n        <li> Žádné příspěvky c cílem urážet či znepřátelovat druhé,\n            či snažící se o zrušení smyslu diskuze.\n        <li> Žádné příspěvky, které jsou cíleně urážlivé či nenávist [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Pravidla:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Více informací"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Odkrýt"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Odkrýt tento příspěvek"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Skrýt"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Skrýt tento příspěvek"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Přesunout"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Přesunout příspěvek do jiného vlákna"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Vykázat autora"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Hlasovat pro vykázání autora"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Hlasovat pro nevykázání autora"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Začít hlasovat pro vykázání uživatele"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Smazat"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Vymazat tento příspěvek"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Jen členové týmu mohou přispívat do týmového fóra"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Pro vytvoření nového vlákna v %1 musíte mít určité množství kreditu. Toto omezení slouží jako ochrana proti zneužití systému."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Nové vlákno nemůžete vytvořit hned teď. Počkejte prosím chvíli a zkuste to znova. Tato prodleva byla zavedena proti zneužití systému."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Toto vlákno je zamčené, přispívat zde mohou jen moderátoři a administrátoři."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Nelze posílat příspěvky do schovaného vlákna."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Vlákno"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Příspěvky"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Zobrazení"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Poslední příspěvek"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Nové příspěvky ve vláknu %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Nové příspěvky ve sledovaném vláknu"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Ve vláknu jsou nové příspěvky '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Označit všechna vlákna jako přečtená"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Označit všechna vlákna na všech diskuzních fórech jako přečtená."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Žádný počítač"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Nedostupné"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Doma"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "V práci"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "Ve škole"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Aktualizovat"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Informace o počítači"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP adresa"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(stejná u posledních %1 připojení)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Veřejná IP adresa"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Zobrazit IP adresu"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Název domény"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Název produktu"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Místní čas"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 hodin"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Vlastník"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anonymní"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Vytvořen"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Celkový kredit"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Průměrný kredit"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Meziprojektový kredit"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "Typ procesoru"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Počet procesorů"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Koprocesory"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Operační systém"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Verze BOINC"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Paměť"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Odkládací prostor"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Celkové místo na disku"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Volné místo na disku"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Naměřená rychlost operací v plovoucí řádové čárce"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 milionů op/sek"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Naměřená rychlost celočíselných operací"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Prům. rychlost odesílání"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/sek"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Neznámé"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Prům. rychlost stahování"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Průměrný doba pro vrácení zpracované jednotky"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 dní"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Detaily aplikace"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Zobrazit"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Úkoly"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Kolikrát klient kontaktoval server"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Naposledy kontaktován server"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Podíl času běžícího BOINC"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Je-li spuštěn BOINC, zlomek času je počítač připojen k Internetu"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Je-li spuštěn BOINC, na zlomek času je počítání povoleno"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Je-li spuštěn BOINC, na zlomek času je GPU počítání povoleno"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Průměrná efektivita procesor"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Korekční faktor pro dobu trvání"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Umístění"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Smazat tento počítač"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Spojit duplicitní záznamy tohoto počítače"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Spojit"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Poslední kontakt"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informace o počítači"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Pozice"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Průměrný kredit"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Průměrný kredit uživatele"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Procesor"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operační systém"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 procesorů)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Detaily"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Statistiky napříč projekty:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Počítač %1 má překrývající se životnost:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "Počítač %1 má nekompatibilní op. systém:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Počítač  %1 má nekompatibilní procesor:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "stejný počítač"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Nelze spojit počítač %1 s %2 - nejsou vzájemně kompatibilní"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Spojuji počítač %1 s počítačem %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Nelze aktualizovat kredit nového počítače"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Nelze aktualizovat výsledky"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Nelze vyřadit starý počítač"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Vyřazený starý počítač %1"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Zobrazit:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Všechny počítače"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Jen počítače aktivní za posledních 30 dnů"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "ID počítače"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br/>verze"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Spojit počítače podle jména"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Výchozí prohlížeč"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Komentář"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Novinky jsou dostupné jako %sRSS zprávy%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Schránka"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Psát zprávu"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Poslat soukromou zprávu"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Náhled"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "nenalezena žádná zpráva"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Komu"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Uživatelská ID nebo unikátní uživatelská jména, oddělená čárkami"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Předmět"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Odeslat zprávu"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "vám poslal soukromou zprávu. Předmět:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Soukromá zpráva%1 od %2, předmět:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Zprávu nelze vytvořit"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Není možné posílat tolik soukromých zpráv během tak krátké chvíle. Počkejte prosím před posláním další zprávy."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "nepřečtené"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Pro zasílání novinek emailem %1upravit komunitní předvolby%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Soukromá zpráva"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Limity využití"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Použít nejvýše"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Zachovejte některé procesory volné pro jiné aplikace. Příklad: 75% znamená využívat 6 jader na 8-jádrovém procesoru."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% procesorů"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Pozastavení/obnovení počítání každých několik sekund na snížení teploty a energetického využití procesoru. Příklad: 75% znamená počítat 3 sekundy, čekat 1 sekundu a opakovat."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% procesorového času"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Kdy pozastavit"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Pozastavit, když počítač běží z baterie"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Zaškrtněte pro pozastavení počítání na přenosných zařízeních, když jsou napájeny z baterie."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Pozastavit, když je počítač používán"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Zaškrtněte pro pozastavení počítání a přenosu souborů, když je počítač používán."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Pozastavit GPU výpočty, kdy je počítač používán"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Zaškrtněte pro pozastavení GPU výpočtů během používání počítače."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "\"V provozu\" znamená impuls z myši/klávesnice během"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Určuje, kdy je počítač považován za \"v provozu\"."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minut"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Pozastavit, pokud myš/klávesnice nebyla aktivní během"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Toto umožňuje některým počítačům vstoupit do režimu nízké spotřeby, když není používán."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Pozastavit, pokud využití procesoru aplikacemi mimo BOINC je nad"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Pozastavit výpočty když je váš počítač zaneprázdněn jinými spuštěnými programy."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Počítat pouze mezi"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Počítat pouze během určitého času každý den."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Ostatní"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Ukládat aspoň"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Zásoba aspoň na tolik úkolů aby počítač běžel takovou dobu."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "dnů práce"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Zásobovat až do další"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Uložit další úkoly nad minimální úroveň. Určuje, kolik práce je požadováno při kontaktování projektu."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Přepínat mezi úkoly každých"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Pokud počítáte několik projektů, BOINC mezi nimi může přepínat s těmito intervaly."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Požádat úkoly o kontrolní bod nanejvýš každých"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Tato možnost určuje, jak často úkoly ukládají svůj stav na disk, takže mohou být restartovány později."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "vteřin"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Nepoužívat více než"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Omezit celkovou hodnotu místa na disku, kterou BOINC používá."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Ponechat aspoň"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Omezení využití místa na disku. Ponechání takového volného místa na svazku, kde BOINC ukládá data."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB volného místa"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Omezte procento využití disku používaného programem BOINC na svazku, kde ukládá data."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% celkového místa"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "V případě, že je počítač používán, využít maximálně"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Omezte paměť, kterou může BOINC použít, když používáte počítač."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Když počítač není používán, využít maximálně"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Omezte paměť, kterou může BOINC použít, když nevyužíváte počítač."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Ponechat úkoly nepoužívající GPU v paměti, když jsou výpočty pozastaveny"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Je-li políčko zaškrtnuto, pozastavené úlohy zůstanou v paměti a pokračování nebude znamenat žádnou ztrátu spočítané práce. Pokud políčko není zaškrtnuto, pozastavené úlohy jsou odstraněny z paměti a budou pokračovat od posledního kontrolního bodu."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Stránkovací/odkládací soubor: použít maximálně"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Omezte odkládací prostor (stránkovací soubor) použitý pro BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Omezit rychlost stahování na"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Omezte rychlost stahování souborů."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB za sekundu"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Omezit rychlost uploadu na"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Omezte rychlost odesílání souborů."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Omezit využití na"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Příklad: BOINC může přenést maximálně 2000 MB dat každých 30 dní."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB každých"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "dní"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Přenášet soubory pouze mezi"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Přenos souborů pouze během určitého časového období každý den."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Přeskočit ověřování dat pro obrazové soubory"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Zaškrtněte pouze v případě, že váš poskytovatel Internetu upravuje soubory obrázků. Přeskočení ověřování snižuje bezpečnost BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Potvrdit před připojením k Internetu"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Užitečné pouze v případě že máte modem, ISDN nebo VPN připojení."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Odpojit po ukončení komunikace"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Počítání"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disk"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Síť"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Tyto předvolby se vztahují na všechny BOINC projekty ve kterých se podílíte."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Nelze upravit předvolby.%2 Hodnoty označené červeně jsou mimo platný rozsah a nebo nejsou číselné."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "probíhá výpočet"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Vlastní předvolby pro %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Upravit předvolby"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Odebrat"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Přidat oddělené předvolby pro %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Toto nastavení platí pro všechny počítače používající tento účet s výjimkou"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "počítače, kde jste nastavili předvolby lokálně pomocí správce BOINC"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Zařízení se systémem Android"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Přepnout zobrazení)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Společné předvolby"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Primární (výchozí) předvolby"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Předvolby naposledy upraveny:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Přidat předvolby"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Aktualizovat předvolby"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "ano"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "ne"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Výchozí umístění počítače"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Nové počítače použijí toto umístění pro výpočty a předvolby projektu."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Rozdělení práce"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Určuje podíl zdrojů vašeho počítače přidělených na tento projekt. Například pokud se účastníte dvou BOINC projektů s podíly zdrojů 100 a 200, první dostane 1/3 a druhý 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Urychlit výpočty pomocí GPU přiřazením jednoho procesoru ke každému úkolu?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Použít procesor"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Použít ATI GPU"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Použít NVIDIA GPU"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Použít Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Povolit testovací aplikace?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Toto nám pomáhá vyvíjet aplikace, ale může způsobit pády úloh během výpočtu"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Emaily budou zasílané z adresy %1, ujistěte se, že Vám tuto adresu nezachytává spam filtr."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Může Vám %1 či Váš tým zasílat občasné emaily?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Má %1 zobrazovat vaše počítače na svých stránkách?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Přepnout vzhled)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Specifické nastavení projektu"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "špatné místo: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "špatný rozsah: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "a"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Váš profil bude viditelný pro ostatní po schválení projektem, to může trvat pár dní."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Váš profil byl označen jako závadný - momentálně není viditelný pro ostatní uživatele. Prosím upravte si jej."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Chyba databáze"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Abychom předcházeli spamu, jsou profily uživatelů s průměrným kreditem menším než %1 viditelné jen přihlášenými uživateli. Omlouváme se za tuto nepřijemnost."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Uživatel je vykázán"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Pro dané ID neexistuje žádný uživatelský profil."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Upravit váš profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Vaše reakce k tomuto profilu"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Doporučit tento profil na Uživatele dne:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1Líbí%2 se mi tento profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Upozornit administrátory na urážlivý profil:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1Nelíbí%2 se mi tento profil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonymní platforma"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "nVidia GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "AMD GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Není v DB"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "nevyřízené"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Všechny"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "Zpracováváno"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Čeká na validaci"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Neprůkazná validace"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Validní"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Neplatné"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Chyba"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Neaktivní"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Neodeslané"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Dokončeno, čeká se na validaci"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Dokončeno a validováno"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Dokončeno, označeno jako nevalidní"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Dokončeno, nelze validovat"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Dokončeno, částečně validováno"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Dokončeno, příliš pozdě na validaci"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Hotovo"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Nelze odeslat"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Zrušeno serverem"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Nezapočato před uplynutím lhůty - zrušeno"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Chyba při stahování"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Chyba při výpočtu"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Chyba při odesílání"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Zrušeno uživatelem"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Odeslání selhalo"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Vypršela lhůta - bez odpovědi"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Nepotřebné"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Chyba při validaci"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Zrušeno"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Pozdě"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Úspěšně dokončeno"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Chyba při výpočtu"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Nadbytečný výsledek"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Bez odpovědi"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nový"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Stahuji"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Zpracovávané"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Chyba při výpočtu"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Odesílám"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Hotovo"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Počáteční"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Nepotřebné"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Chyba pracovní jednotky - kontrola vynechána"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Zkontrolováno, ale zatím nerozhodnuto"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Úkol byl nahlášen příliš pozdě pro validaci"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Nelze odeslat výsledek"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Příliš mnoho chyb (možná chyba v zadání)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Příliš mnoho různých výsledků (výpočet může být nedeterministický)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Příliš mnoho konečných výsledků"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Pracovní jednotka zrušena"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Chybí kanonický výsledek"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Neznámá chyba: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Název úkolu"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "klikněte pro detaily"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Zobrazit ID"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Zobrazit názvy"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Úkol"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Pracovní jednotka"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Počítač"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Odesláno"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Čas nahlášení<br/>nebo lhůta pro dokončení"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "vysvětlení"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Stav"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Čas běhu<br/>(sek)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "Procesorový čas<br/>(sek)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Kredit"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Aplikace"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Pracovní jednotka"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Lhůta pro odevzdání"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Přijato"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Stav serveru"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Výsledek"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Stav klienta"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Stav ukončení"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Čas běhu"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "Procesorový čas"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Stav validace"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Maximální FLOPS zařízení"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Verze aplikace"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Výstupní soubory"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Výstup stderr"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Stav"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Název úkolu:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Kriteria pro hledání (použijte jedno či více)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Klíčová slova"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Hledat týmy s těmito slovy v názvu nebo popisu"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Typ týmu"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Zobrazit pouze aktivní týmy"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Hledat"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Vaše žádosti, u nichž vypršela lhůta na odpověď vlastníka."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Dokončit převod vlastnictví"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Požadováno vámi"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "lhůta na odpověď vlastníka je %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Žádná"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Podat žádost"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Odložené"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Informace o týmu"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Popis"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Webové stránky"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Meziprojektové statistiky"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Typ"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Diskuzní fórum"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Vlákna"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Připojit se k tomuto týmu"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Poznámka: pokud máte v předvolbách projektu 'OK u emailu', připojením k týmu poskytnete jeho vlastníkovi přístup k vaší emailové adrese."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Nepřijímá nové členy"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Požádáno o změnu vlastnictví"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Odpověď od %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Změna vlastníka týmu"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Členové"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Vlastník"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Administrátoři"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Noví členové za poslední den"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Celkem členů"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "zobrazit"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Aktivní členové"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Členové s kreditem"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Administrátor"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Předchozí %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Další %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Takový tým neexistije."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Tuto operaci může provádět jen vlastník."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Tuto operaci může provést jen administrátor týmu"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "VAROVÁNÍ: toto je globální BOINC tým. Změny zanesené zde budou brzy přepsány. Upravte namísto toho přímo %1globální BOINC tým%2."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Poznámka k soukromí%2: pokud založíte tým, vaše projektové předvolby (podíl prostředků, nastavení grafiky) budou veřejně viditelné."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Název týmu, textová verze"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Nepoužívejte HTML tagy."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Název týmu, HTML verze"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Můžete použít %1tyto HTML tagy%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Pokud neznáte HTML, nevyplňujte tento box."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "Webová stránka týmu, pokud je"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "bez \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Tato adresa bude použita jako odkaz z hlavní týmové stránky na tomto webu."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Popis týmu"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Povolit nové členy?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Profil uživatele"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projekty, v nichž se účastníte"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projeckty, ve kterých je %1 připojen"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Klikněte pro zobrazení stránky uživatele"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Od"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Počítání a kredit"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Počítače na tomto účtu"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Zobrazit"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Meziprojektové ID"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Meziprojektové statistiky"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Účet"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Tým"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Meziprojektové"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certifikát"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Statistiky ve vašem mobilu"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Informace o účtu"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Emailová adresa"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL adresa"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Směrovací číslo"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "Členem %1 od"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Změnit"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "emailová adresa"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "heslo"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "další informace o účtu"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "Uživatelské ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Použito u komunitních funkcí"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Klíče k účtu"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Předvolby"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Kdy a jak má BOINC používat váš počítač"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Předvolby výpočtů"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Diskuzní fóra a soukromé zprávy"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Předvolby komunity"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Předvolby pro tento projekt"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 předvolby"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Zobrazit profil %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Komunita"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Vytvořit"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 příspěvků"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Oznámení"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Opustit tým"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Spravovat"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(nevyřízený požadavek na změnu vlastnictví)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Člen týmu"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "najít tým"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Vlastník, ale ne člen týmu"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Najít přátele"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Přátelé"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Počítače"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Dárce"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Tento člověk je váš přítel"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Zrušit přátelství"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Nevyřízený požadavek"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Přidat mezi přátele"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "uživatelské jméno nemůže začínat nebo končit mezerou"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "uživatelské jméno nemůže být prázdné"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "uživatelské jméno nemůže obsahovat HTML tagy"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "odhlásit"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "přihlásit se"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Vytvořit účet"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Stránka se stavem serveru"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Při zpracování vašeho pořadavku nastala chyba databáze, zkuste to prosím později."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Nelze vyhodnotit požadavek"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "hod"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "sek"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Platnost odkazu vypršela. Klikněte prosím na Zpět, načtěte znova stránku a zkuste to znova."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Používejte BBCode tagy pro formátování vašeho textu"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Projekt odstavený z důvodu údržby"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 je dočasně nedostupný kvůli údržbě. Zkuste to prosím později."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Nelze se připojit k databázi - zkuste to prosím později."
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Nelze vybrat databázi - zkuste to prosím později."
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "zbývá znaků"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Zapamatovat si přihlášení na tomto počítači"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Dokončit nastavení účtu"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Je třeba zadat jméno k vašemu účtu"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Ve jméně nejsou povoleny HTML tagy"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Upravit %1 předvolby"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Přidat %1 předvolby pro %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Aplikace"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 má v současnosti následující aplikace. Pokud se účastníte v %1, úkoly pro jednu nebo více z těchto aplikací budou přiřazeny k vašemu počítači. Aktuální verze aplikace se stáhne do vašeho počítače. To se děje automaticky, není nutné nic dělat."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Verze"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Průměrný výpočet"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode značky"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BBCode značky vám umožňují formátovat text ve vašem profilu a v příspěvcích\nve fóru. Jsou podobné značkám HTML, začínají [ (kde byste použili %1 v HTML)\na končí ] (kde byste použili %2 v HTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Příklady"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Tučné"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Kurzíva"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Podtržení"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Přeškrtnuté"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Horní index"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Velké písmo"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Červený text"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "odkaz na webové stránky"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Citovaný text"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "použijte pro citovaný text"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "použijte pro zobrazení obrázku"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Ukázky kódu zde"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "použijte pro zobrazení kódu"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Předformátovaný text"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "použijte pro zobrazení předformátovaného, typicky u monospace písma"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Věc 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Věc2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Věc 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "použij k propojení s Trac tiketem na stránkách BOINC."
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "použij k propojení s Trac Wiki na stránkách BOINC."
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Pokud neuzavřete tag nebo nespecifikujete parametr správně, \nbude zobrazen samotný tag, místo formátovaného textu."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Nelze vytvořit účet"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Zkuste znovu kliknutím na tlačítko <b>Zpět</b> ve vašem prohlížeči."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Vaše 'reCAPTCHA' odpověď nebyla správná. Zkuste prosím znovu."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Pro vytvoření účtu je třeba vložit pozvánkový kód."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "Vámi vložený pozvánkový kód je neplatný."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Neplatná emailová adresa: Musíte zadat platnou adresu ve formátu jméno at doména"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Účet s touto emailovou adresou již existuje."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Nová hesla nejsou stejná"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Hesla smí obsahovat pouze ASCII znaky."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Nové heslo je příliš krátké: minimální délka hesla je %1 znaků."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Nelze vytvořit účet"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "Poznámka: Pokud používáte BOINC Manager, tak namísto tohoto formuláře jen pusťte BOINC, zvolte Přidat projekt a zadejte emailovou adresu a heslo."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Tento účet bude náležet týmu %1 a bude mít předvolby projektu po jeho vlastníkovi."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Obrázek"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Váš obrázek bude zobrazen vlevo."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Pro změnu klikněte na tlačítko \"Hledat\" a vyberte soubor typu JPEG nebo PNG (do %1)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Pro odebrání obrázku z Vašeho profilu zaškrtněte toto pole:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Pokud si přejete mít u svého profilu obrázek, klikněte na \"Hledat\" a zvolte soubor typu JPEG nebo PNG. Obrázek může být velký maximálně %1."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Jazyk"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Zvolte jazyk, ve kterém je napsán Váš profil:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Uložit profil"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Vytvořit/upravit profil"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "Formát vámi zvoleného obrázku není podporován."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Váš %1profil%2 vám umožňuje sdílet své názory a zázemí s %3 komunitou."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Vaše 'reCAPTCHA' odpověď nebyla správná. Zkuste prosím znovu."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Váš první příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. Upravte ho prosím a zkuste jej vložit znova."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Váš druhý příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. Upravte ho prosím a zkuste jej vložit znova."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Váš profil k uložení je prázdný."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Není možné upravit profil: chyba databáze"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Není možné vytvořit profil: chyba databáze"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Profil uložen"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Blahopřejeme! Váš profil byl úspěšně uložen v naší databázi."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Zobrazit váš profil"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Založit si profil"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Jako ochrana proti spamu je vyžadován kredit aspoň %1 pro založení či úpravu profilu. Omlouváme se za tuto nepříjemnost."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nelze smazat účet"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Účet smazán"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Váš účet byl smazán"
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Potvrďte smazání účtu"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Při smazání vašeho účtu dojde k odstranění  \nvšech vašich osobních údajů z našich serverů, \nvčetně vašeho profilu a příspěvků na nástence. \nNa žádný počítač připojený přes tento účet \nnebude zasílána žádná další práce."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Tuto operaci nelze vrátit zpět. \njakmile bude váš účet smazán, nepůjde žádným způsobem obnovit."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Opravdu si přejete smazat váš účet?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Ano"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Smazat tento účet"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Ne"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Zachovat tento účet"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "nelze se smazat profil - zkuste to prosím později"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Potvrďte smazání"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Váš profil byl smazán"
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Potvrzení smazání profilu"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Jste si jisti?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Smazané profily zmizí navždy a nelze je obnovit --\npokud budete chtít v budoucnu začít znova,\nbudete si muset vytvořit nový profil."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Pokud jste si jisti, kliknutím na 'Ano' ('Yes')\nodstraníte váš profil z naší databáze."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Smažte můj profil"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Zachovejte můj profil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transakce dokončena"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Děkujeme za váš dar!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Vaše darování bylo dokončeno."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Váš dar bude zobrazen po potvrzení systémem PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Zrušili jste váš dar."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Tento projekt nepřijímá dary."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 darů"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Tento projekt přijímá dary pomocí\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Vyplňte částku, kterou chcete darovat, do kolonky níže.\n        PayPal příjímá čáskty v různých měnách:\n        Kanadský Dolar, Euro, Britská Libra, US Dolar,\n        Jen, Australský Dolar, Novozélandský Dolar,\n        Švýcarský Frank, Hongkongský Dolar, Singapurský Dolar,\n        Švédská Koruna, Dánská Koruna, Polský Zlotý,\n        Norská Koruna, Maďarský Forint, Česká Koruna.\n        Převaděč měny vám ukáže ekvivalent darované částky v různých měnách\n        Poznámka: m [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Částka, kterou chcete darovat"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Odhadovaná hodnota v"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anonymní dar"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Zvolte tuto možnost, pokud si přejete, aby bylo vaše jméno a číslo účtu zobrazeno\nv seznamu dárců.<br>Pokud tuto možnost nezvolíte, budete zaznamenán jako uživatel č. %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Přihlašte se prosím, aby bylo možno přiřadit váš dar k vašemu uživatelskému jménu."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Pokračovat"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Dary jsou přijímány přes"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Stáhnout doplňkový software BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Je možné si stáhnout aplikace různých typů."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Za tyto aplikace %1 nijak neručí, použití je na vaše riziko."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Neposkytujeme informace k instalaci těchto aplikací, nicméně autor aplikace obvykle poskytuje základní informace pro instalaci a odinstalování své aplikace. Pro získání více informací, zkuste kontaktovat autora."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instrukce pro instalaci a používání BOINCu jsou %1zde%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Tento seznam je spravován centrálně na %1webových stránkách BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Změnit emailovou adresu účtu"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Nová emailová adresa '%1' je nepatná."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Nová emailová adresa je stejná jako ta původní. Nedošlo k žádné změně."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Účet s touto emailovou adresou již existuje."
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Neplatné heslo."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Emailová adresa vašeho účtu je nyní %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Prosím %1ověřte tuto emailovou adresu%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Nelze upravit emailovou adresu, chyba přístupu k databázi. Zkuste to prosím později."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Změnit emailovou adresu"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Změnit emailovou adresu vašeho účtu"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nová emailová adresa"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Adresa musí být platného tvaru 'jmeno at domena'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Bez hesla?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Potvrďte reset"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Touto akcí smažete všechny změny, které jste provedli v nastavení vaší komunity. Akci zrušíte kliknutím na tlačítko 'Zpět' ve vašem prohlížeči."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Resetovat předvolby"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Chyba: Nesprávný typ souboru. Jsou podporovány pouze typy PNG a JPEG."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Váš podpis je příliš dlouhý. Maximální přípustná délka je 250 znaků."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Uživatel nenalezen:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Jak vám máme oznamovat nové osobní zprávy, požadavky od přátel, příspěvky v odebíraných diskuzích a ostatní události?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Na mé stránce s účtem (bez emalu)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Okamžitě, pomocí emailu"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "Jednou denně v souhrnném emailu"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Vaše identita na diskuzním fóru"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Obrázek, který je zobrazen u vašich příspěvků na nástěnkách."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Formát: JPG nebo PNG. Velikost: nejvýše 4 KB, 100x100 bodů."
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Nezobrazovat avatar"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Použít 'Globally Recognized Avatar' poskytnutý od %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Toto je přijatý avatar:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Náhled avataru"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Takto bude váš avatar vypadat"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Podpis pro příspěvky na fóru"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Podívejte se na %1zajímavé doplňky zdarma%2\n<br> nabízející dynamické 'obrázky do podpisu'\n<br> zobrazující váš aktuální kredit, projektové novinky, atd."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Automaticky připojit podpis"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Náhled podpisu"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "Takto bude váš podpis vypadat v diskuzích"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Zobrazení zprávy"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Co zobrazovat"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Skrýt avatar"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Skrýt podpisy"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Zobrazovat obrázky jako odkazy"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Otevírat odkazy v novém okně/panelu"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Zvýraznit speciální uživatele"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Zobrazit tolik zpráv na stránce"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Jak řadit"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Vlákna:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Příspěvky:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Automaticky přeskoč na první příspěvek v diskuzi"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Nepřesouvat přišpendlené příspěvky na počátek"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Filtrování zpráv"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Fitrovaní uživatelé"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignorovat zprávy na diskuzním fóru a soukromé zprávy od těchto uživatelů."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ID uživatele (Například: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Přidat uživatele do filtru"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Klikněte pro nastavení předvoleb"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Resetovat"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Nebo vrať předvolby do základního nastavení kliknutím sem"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Nelze změnit vaše heslo z důvodu problémů s připojením k databázi - zkuste to prosím později."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Změnit heslo"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Vaše heslo bylo změněno."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Nové heslo"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Nové heslo, pro kontrolu"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "Ve vašem jméně nelze mít HTML tagy."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Je třeba zadat jméno k vašemu účtu."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Nelze upravit uživatelské údaje."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Upravit informace o účtu"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Jméno %1 pravé jméno nebo přezdívka%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 vaší webové stránky, volitelné%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Poštovní směrovací číslo %1 volitelné%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Upravit údaje"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Stav serveru"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "<b>Stav serveru</b> u úkolu ukazuje, zda byl již úkol odeslán uživateli, a pokud ano, tak zda ho počítač uživatele dokončil. Možné hodnoty jsou:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Úkol dosud není připraven k odeslání (například protože zdrojové soubory nejsou dostupné)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Úkol je připraven k odeslání, ale nebyl dosud odeslán."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Aktivní"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Úkol byl zaslán, čeká se na dokončení."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "Úkol byl odeslán uživateli a buď mu vypršela lhůta, nebo byl zpracován a nahlášen."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Výsledky"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "<b>Výsledek</b> u úkolu popisuje stav úkolu na serveru po jeho <b>dokončení</b>. Možné hodnoty jsou:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "Úkol byl odeslán uživateli, ale uživatelův počítač tento úkol dosud nedokončil a nenahlásil výsledek."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Tento úkol byl počítačem uživatele úspěšně dokončen a odeslán."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Server nebyl schopen odeslat tento úkol uživateli (pravděpodobně z důvodu nedostatku systémových prostředků)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Chyba u uživatele"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Tento úkol byl odeslán uživateli a vyskytla se u něj chyba."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "Tento úkol byl odeslán uživateli a během lhůty pro vrácení nebyla doručena žádná odpověď."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "Úkol nebyl odeslán uživateli, protože pro danou pracovní jednotku bylo již dokončeno dostatečné množství dílčích úkolů."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "Úkol byl dokončen, ale nemohl být na serveru ověřen, pravděpodobně kvůli tomu, že výsledné soubory se na serveru ztratily."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Stav klienta"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "<b>Stav u klienta<b/> u výsledku popisuje fázi zpracování, během které nastala chyba."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Počítač ještě nedokončil tento úkol."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Počítač dokončil tento úkol úspěšně."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Počítači se nezdařilo stáhnout aplikaci nebo data tohoto úkolu"
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Během výpočtu nastala chyba"
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Počítači se nezdařilo odeslat výsledné soubory."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Čas nahlášení nebo lhůta pro dokončení"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "<b>Čas nahlášení nebo ukončení</b> u úkolu popisuje, zda byl již výsledek úkolu odeslán nebo ne:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Již náhlášeno"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Datum a čas nahlášení"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Dosud nenahlášeno, lhůta ještě neuplynula"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Lhůta, zobrazena zeleně."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Dosud nenahlášeno, lhůta již uplynula"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Lhůta, zobrazena červeně."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Neznámé pole"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Náhled emailu"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Váš email se zobrazí následujícím způsobem:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Odeslat email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Použijte tlačítko Zpět ve vašem prohlížeči na návrat ke zprávě od"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Odesílání emailů"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "email odeslán úspěšně %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "email se nepodařilo odeslat %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Děkujeme, že jste řekli svým přátelům o %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Zapomněli jste zadat jména nebo emailové adresy vašich přátel. %1Vraťte se prosím do formuláře%2 a zadejte je."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Tento projekt nevytvořil e-mail - prosím upozorněte jeho správce"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Řekněte vašim přátelům o %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Pomožte nám tím, že řeknete svým přátelům, rodině či spolupracovníkům o %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Vyplňte do tohoto formuláře jména a emailová adresy lidí, o kterých se domníváte, že by měli zájem o %1. Pošleme jim vašim jménem email, ke kterému můžete připojit i vlastní zprávu."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Vaše jméno:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Vaše emailová adresa:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Jméno přítele:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Emailová adresa přítele:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Doprovodná zpráva (volitelné)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Poslat"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "Nemáte oprávnění vykazovat uživatele."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Hlasování o vykázání"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Nenalezen žádný uživatel s tímto ID."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "Uživatel již byl vykázán"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Jste si jisti, že chcete vykázat %1?<br/>%1 nebude moci přispívat po určenou dobu.<br/>%1 by měl být vykázán jen tehdy, pokud se delší dobu opakovaně choval jako trol."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Zvolte důvod a volitelně doplňte popis, proč by měl být uživatel vykázán."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Kategorie"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Neslušný"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Útočný / Nenávistný email"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Požadavek uživatele"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Důvod"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Poslán neprázdný"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Pokračovat s hlasováním"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Je třeba vybrat akci..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Tento příspěvek již nemůžete upravovat.<br/>Příspěvky mohou být upravované nejdéle %1 minut po vytvoření."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Nejste oprávněn upravovat tento příspěvek."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Fórum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Upravit vaší zprávu"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Název"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Přidat můj podpis k tomuto příspěvku"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Není pro vás viditelné"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Týmové diskuzní fórum pro %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Nové vlákno"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Přidat nové vlákno do tohoto fóra"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Příspěvky tohoto fóra jsou dosupné jako %1RSS zprávy%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Toto vlákno je schované"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Toto vlákno je trvale viditelné a zamčené, dosud jste ho nečetli"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "trvale viditelné/zamčené/nepřečtené"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Toto vlákno je trvale viditelné a dosud jste ho nečetli"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "trvale viditelné/nepřečtené"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Toto vlákno, které je nyní zamčené, jste dosud nečetli"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "nepřečtené/zamčené"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Toto vlákno jste dosud nečetli"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Toto vlákno je trvale viditelné a zamčené"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "trvale viditelné/zamčené"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Toto vlákno je trvale viditelné"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "trvale viditelné"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Toto vlákno je zamčené"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "zamčené"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Čtete toto vlákno"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "přečtené"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Otázky a odpovědi"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Promluvte si pomocí programu Skype s dobrovolníky mluvícími mnoha jazyky. Jděte na %1BOINC Online nápověda%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Téma"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Otázky"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Diskuze členů %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Diskuzní fóra"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Pokud máte nějaké dotazy či problémy, podívejte se prosím na sekci %1Otázky a odpovědi%2 na diskuzním fóru."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Sledovaná vlákna"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Moderovat příspěvek"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Skrýt příspěvek"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Komerční spam"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Dvojité odeslání"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Přesunout příspěvek"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "Cílové ID vlákna:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Vykázat uživatele"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Doba vykázání"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 hodiny"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 den"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 týden"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 týdny"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 měsíc"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Navždy"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Volitelné vysvětlení %1 Toto bude součástí emailu uživateli.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "Nejste oprávněn moderovat tento příspěvek."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Nelze přesunout do jiného typu kategorie"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Nelze přesunout do jiné kategorie"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Nemáte oprávnění vykazovat uživatele"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Vykázání"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "Uživatel %1 byl vykázán."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Akce selhala: Pravděpodobně problém s databází"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "nemáte oprávnění"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Moderovat vlákno '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Zvolte důvod, nebo jej napište ručně, proč schováváte nebo zamykáte toto vlákno, potom klikněte na OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Aktuální forum"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Cílové forum"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Nový nadpis:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Zde mohou zakládat vlákna jen administrátoři projektu. Můžete ale přispívat do existujících vláken."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Vaše zpráva byla ohodnocena anti-spamovým systémem Akismet jako spam. Upravte jí prosím a zkuste jí vložit znova."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Vytvořit nové vlákno"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Vytvořit nové vlákno"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Nezapomeňte přidat nadpis"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Zobraz tuto položku jako Zprávu v BOINC Manažeru"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Udělejte tak pouze pro položky, které mohou zajímat všechny dobrovolníky."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Hodnocení offline"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Tato vlastnost je vypnutá projektem"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Potřebujete více průměrného nebo celkového kreditu pro ohodnocení příspěvku."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Tento příspěvek již byl ohodnocen."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Vrátit se do vlákna"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Příspěvek zaznamenán"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Váš příspěvek byl zaznamenán. Děkujeme za vaší pomoc."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Hlas uložen"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Váš hlas byl uložen. Děkujeme za vaší pomoc."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Problém s odesíláním hlasu"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Váš příspěvek byl ohodnocen anti-spamovým systémem Akismet jako spam. Upravte ho prosím a zkuste jej vložit znova."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Přidat příspěvek"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Zpráva:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "odpovědět na %1ID zprávy%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Odpovědět"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Přidat můj podpis k této odpovědi"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Potřebujete více průměrného nebo celkového kreditu pro nahlášení příspěvku."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Nahlášení provedeno"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Vaše nahlášení bylo uloženo. Děkujeme za vaší pomoc."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Moderátor nyní zkontroluje vaše nahlášení a rozhodne, co se stane dále - to může nějakou dobu trvat, prosíme o ztrpení"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Nahlásit příspěvek"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Před nahlášením tohoto příspěvku zvažte použití hodnocení pomocí +/-. Pokud dostatečný počet uživatelů udělí negativní  hodnocení, příspěvek bude schován.<br/>Hodnocení +/- najdete ve spodku příspěvku."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Nahlásit příspěvek"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Čím vás tento příspěvek uráží: %1Vyplňte prosím dostatek údajů, aby člověk,\nkterý příspěvek dosud nečetl, snadno našel daný problém.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Nahlásit nepřihlášený"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Váš záznam nemohl být uložen. Počkejte prosím chvíli a zkuste to znova."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Pokud toto není vyjímečná chyba, kontaktujte prosím správce projektu."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS zprávy"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Příspěvky tohoto fóra jsou dosupné jako RSS zprávy."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Možnosti:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Zahrnout pouze příspěvky od uživatele s ID %1 (výchozí: od všech uživatelů)"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Zahrnout pouze příspěvky za posledních %1 dní (výchozí: za 30 dní)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Pouze vlákna: %1 (Zahrnout pouze první příspěvek v každém vláknu)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Hledat na fóru"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Vyhledávaný dotaz"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Hledat klíčová slova:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Budou zobrazeny příspěvky, které obsahují všechna zadaná slova"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Například: \"spořič obrazovky zatuhává\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Hledat ID autora:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Budou zobrazeny pouze příspěvky od tohoto autora"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Například: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Možnosti vyhledávání"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Limity vyhledávání"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Hledat pouze tolik dní nazpět"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 měsíců"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 rok"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "bez omezení"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Zobrazit pouze příspěvky z této diskuze"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Třídit podle"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Spustit hledání"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Výsledky hledání na fóru"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Vlákna odpovídající vašemu dotazu."
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Zprávy odpovídající vašemu dotazu."
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Bohužel, nebylo nalezeno nic, co by odpovídalo vašemu dotazu. Zkuste rozšířit výsledky vyhledávání použitím méně slov (nebo více specifických slov)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Můžete také zkusit %1vyhledat stejný dotaz pomocí Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Zkusit jiné vyhledávání"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Nastavení odebírání příspěvků bylo úspěšné"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Jste nyní přihlášen k %1, budete nyní upozorněn kdykoliv zde přibyde nový příspěvek."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Nastavení odebírání příspěvků selhalo"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Momentálně není možné nastavit vám odebírání příspěvků z %1. Zkuste to prosím později."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Zrušení odebírání příspěvků bylo úspěšné"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Již nejste přihlášen k %1, nebudete dále dostávat upozornění o tomto vláknu."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Zrušení odebírání příspěvků selhalo"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Momentálně není možné zrušit vám odebírání příspěvků z %1. Zkuste to prosím později."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Neznámá akce pro odebírání příspěvků"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Toto fórum pro vás není přístupné."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Toto vlákno bylo schováno správcem."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "Má otázka byla zodpovězena."
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Pokud byla vaše otázka dostatečně zodpovězena, klikněte prosím sem."
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Také mám tuto otázku"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Přidat zprávu do tohoto vlákna"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Zrušit odebírání příspěvků"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Odebíráte příspěvky z tohoto vlákna. Klikněte sem pro zrušení odebírání."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Odebírat příspěvky"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Klikněte pro zasílání emailu při každém novém příspěvku v tomto vlákně."
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Odkrýt toto vlákno"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Skrýt toto vlákno"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Zrušit trvalou viditelnost"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Zrušit trvalou viditelnost tohoto vlákna"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Nastavit trvalou viditelnost"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Udělat toto vlákno vždy se zobrazujícím v horní části fóra"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Odemknout"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Povolit nové příspěvky v tomto vlákně"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Zamknout"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Nepovolovat nové příspěvky v tomto vlákně"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Přesunout toto vlákno do jiného fóra"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Upravit nadpis"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Upravit nadpis vlákna"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Natrvalo odstranit vlákno"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Exportovat jako Zprávu"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Neexportovat"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Neexportovat tuto novinku jako Zprávu"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Setřídit"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Stav vlákna byl aktualizován"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "Status byl aktualizován."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Příspěvky od %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Současní přátelé"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Požádali jste o přátelství s %1 v %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Žádost stále očekává potvrzení."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 nepřijímá vaše žádosti o přátelství"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Nemůžete mít jako přítele sami sebe"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Přidat jako přítele"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Požádali jste o přidání %1 jako svého přítele. %1 nyní dostane zprávu s vaší žádostí pro potvrzení přátelství."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Přidat doprovodnou zprávu:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Žádost o přátelství zaslána"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "%1 dostal vaší žádost."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Přihlašte se prosím jako %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Musíte se přihlásit jako %1 pro zobrazení této žádosti o přátelství"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Žádost o přátelství"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 vás požádal o přátelství."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 říká: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Přijmout přátelství"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Klikněte na přijmout, pokud je %1 vaším přítelem"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Odmítnout"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Klikněte na odmítnout, pokud %1 není vaším přítelem"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Přátelství potvrzeno"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Vaše přátelství s %1 bylo potvrzeno."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Přátelství zamítnuto"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Odmítli jste přítelství s %1"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Oznámení nenalezeno"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Přítel potvrzen"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "%1 je nyní vaším přítelem."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Zrušit přátelství?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Jste si jistí, že chcete zrušit vaše přátelství s %1?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Zůstat přáteli"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Přátelství zrušeno"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Vaše přátelství s %1 bylo zrušeno."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Pokud víte emailovou adresu od vašeho a můžete na této adrese přijímat emaily:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Zadejte tuto emailovou adresu níže a klikněte na OK. Budou vám zaslány informace k resetování vašeho hesla."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Pokud jste zapomněli emailovou adresu od vašeho účtu, nebo u ní již nelze přijímat emaily:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Pokud jste používali BOINC s tímto účtem, stále k němu můžete získat přístup. Postupujte takto:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Jděte do datového adresáře BOINC na vašem počítači (jeho umístění je zapsáno v protokolu událostí při spuštění)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Najděte soubor k účtu od tohoto projektu; bude pojmenován <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Otevřete soubor v textovém editoru, např. Poznámkovém bloku. Uvidíte něco jako"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Vyberte a zkopírujte do stránky řetězec mezi %1 a %2 (%3 v uvedeném příkladu)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Zkopírujte řetězec do pole níže a klikněte na OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Nyní budete přihlášen do vašeho účtu, aktualizujte si email a heslo k vašemu účtu."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Příhlásit se pomocí autentikátoru"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Zapomenout informace o vašem účtu?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Žádné úkoly pro GPU nebyly nahlášeny"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Nejlepší modely GPU"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "Následující seznam ukazuje nejproduktivnější modely GPU na různých platformách. Relativní rychlost, měřená podle průměrných časů odevzdání úkolů je uvedena v závorkách."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Vítejte v %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Pro zobrazení a nastavení vlastností vašeho účtu použijte následující odkazy."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Pokud jste tak ještě neučinili, %1stáhněte si BOINC aplikaci%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Váš účet"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonymní platforma, neznámá aplikace"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "anonymní platforma"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Chybí verze aplikace"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Chybějící aplikace"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Chybí platforma"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Počet dokončených úkolů"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Max úkolů na den"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Počet úkolů za dnešek"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Počet ověřených úkolů v řadě"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Průměrná rychlost zpracování"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Detaily aplikace pro stroj %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Nemáme žádný záznam o tomto počítači."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Nelze smazat záznam tohoto počítače, protože naše databáze u něho stále eviduje práci. Musíte počkat pár dnů, než bude práce u tohoto počítače smazána z databáze."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Smazat záznam počítače"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Záznam smazán."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Vrátit se na seznam svých počítačů"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Spojit záznamy počítačů"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Spojit počítače"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "BOINC občas omylem přiřadí stejnému počítači více identit. Toto lze napravit propojením starších identit s tou nejnovější."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "S tímto počítačem nelze propojit žádný další."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Zobrazit detaily"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Zkontrolovat počítače, které jsou stejné jako %1 (vytvořen %2, ID počítače %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "jméno"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "vytvořena"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID počítače"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "žádná adresa"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Spojt počítače"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Aktualizuji kredit počítače"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Kredit počítače aktualizován"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Umístění počítače aktualizováno"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "žádné"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Umístění tohoto počítače bylo nastaveno na %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Tato změna se provede až při příští komunikaci počítače s projektem."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Návrat na stránku počítačů"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Počítače náležící %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Počítače jsou skryté"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Tento uživatel si nepřeje zobrazovat informace o svých počítačích."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Vaše počítače"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Povolené HTML tagy"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Tyto HTML tagy jsou povolené v popisu týmu:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "tučné"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "kurzíva"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "odkaz"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "odstavec"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "zalomení"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "předformátováno"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "obrázek; výška nesmí překročit 450 pixelů. Prosím neodkazujte na obrázky bez souhlasu webových stránek, kde je tento obrázek uložen."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Můžete použít i ampersandovou notaci pro speciální symboly."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Přečtěte si naše pravidla a zásady"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Používejte %1 jen na počítačích, kde to máte povoleno"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Používejte %1 pouze na počítačích které vlastníte, nebo na kterých vám to jejich vlastník povolil. Některé školy nebo firmy se řídí předpisy, které zakazují používat jejich počítače pro projekty jako je %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Jak bude %1 využívat váš počítač"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Při běhu bude %1 využívat část výpočetního výkonu, místa na disku a přenosové kapacity připojení vašeho počítače. Můžete ovlivnit, kolik prostředků bude %1 využívat a také kdy je bude využívat."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Práce vykonaná vaším počítačem přispěje k dosažení cílů %1, které jsou popsané na webových stránkách projektu. Cíle projektu se mohou čas od času měnit."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Ochrana soukromí"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Váš účet na %1 je identifikován podle jména, které si sami zvolíte. Toto jméno může být zobrazeno na stránkách %1 spolu s údaji o tom, kolik práce již váš počítač v %1 vykonal. Pokud si přejete zůstat v anonymitě, zvolte si takové jméno, které skryje vaší pravou identitu."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Pokud jste zapojen v %1, informace o vašem počítači (typ procesoru, velikost paměti atd.) bude zaznamenána v databázi %1 a použita pro určení, jaký typ práce bude vašemu počítači přidělen. Tyto informace budou také viditelné na stránkách %1. Nebude zobrazeno nic, co by odhalovalo umístění vašeho počítače, jako např. jméno domény či IP adresa."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Abyste se mohli zapojit do %1, musíte zadat vaší emailovou adresu, kterou používáte. Tato adresa nebude zobrazena na stránkách %1 ani sdělována jiným organizacím. %1 vám bude zasílat emailové novinky, které ovšem můžete kdykoliv zrušit."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Soukromé zprávy poslané na webu %1 jsou viditelné jen odesílateli a příjemci. %1 nezkoumá ani nehodnotí obsah soukromých zpráv. Pokud dostáváte nevyžádané soukromé zprávy od jiného uživatele %1, je možné tohoto uživatele zablokovat pomocí %2filtru zpráv%3. Tím zabráníte doručování veřejných i soukromých zpráv od tohoto uživatele."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Pokud navštěvujete diskuzní fórum na našem webu, je třeba dodržovat %2pravidla psaní příspěvků%3. Příspěvky vložené do fóra jsou viditelné všem uživatelům, včetně ne-členům. Přispíváním do fóra také dáváte všem nezrušitelné právo na čtení a kopírování vašich příspěvků."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Je bezpečné být zapojen v %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Kdykoliv si stahujete programy z Internetu, vystavujete se riziku, že program obsahuje nebezpečné chyby, nebo že server, ze kterého stahujete, byl napaden útočníkem. %1 vynakládá veškeré úsilí k minimalizaci těchto rizik. Naše servery jsou umístěny za firewallem a nastaveny na vysokou úroveň zabezpečení. Pro zajištění integrity byly všechny naše programy důkladně testovány a také digitálně podepsány na zabezpečeném počítači, který není připojen k Internetu."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Při běhu aplikačních programů %1 může docházet u některých počítačů k přehřívání. Pokud se tak stane, zastavte %1 nebo používejte %2pomocné programy%3 které sníží zatížení procesoru."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 byl vyvinut v %2. BOINC byl vyvinut na Kalifornské universitě v Berkeley."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Zodpovědnost"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 a %2 nenese žádnou zodpovědnost za ztrátu dat nebo jakoukoliv jinou příhodu nebo stav, který může vzniknout jako následek používání %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Jiné BOINC projekty"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Prostředí BOINC využívají i další projekty, podobně jako %1. Můžete zvážit vaše přispění i do těchto projektů a pokud tak učiníte, váš počítač bude pracovat užitečně i v době, kdy %1 nebude mít nic na práci."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Tyto další projekty nejsou nijak sdružené s %1 a tudíž se vám nemůžeme nijak zaručit za jejich bezpečnost či předmět výzkumu. Připojte se k nim dle vašeho uvážení."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Výběr jazyka"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Tato webová stránka je dostupná ve více jazycích. Aktuálně vybraný jazyk je %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Podle nastavení vašeho prohlížeče byl pro tyto stránky vybrán jazyk: %1. Toto nastavení lze změnit zde:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Menu/Možnosti/Obsah"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft Internet Explorer: Nástroje/Možnosti Internetu/Jazyky"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Nebo si můžete vybrat jazyk kliknutím na jeden z těchto odkazů - tím si váš prohlížeč uloží cookie s nastavením. Ujistěte se prosím, že váš prohlížeč podporuje cookies."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Jméno jazyku (klikněte pro výběr)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Použít jazyk podle nastavení prohlížeče"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Překlady jsou tvořeny dobrovolníky. Pokud tu váš rodný jazyk dosud není, %1můžete pomoci s překladem%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "nebo si %1vytvořit účet%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Zpracovávám %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1 byl spojen s počítačem %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Vrátit se na seznam vašich počítačů"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Tato operace sloučí počítače podle jejich doménového jména.\n<p>\nU všech nalezených doménových jmen sloučí všechny staší\npočítače s tímto jménem s nejnovějším počítačem s tímto jménem.\nNekompatibilní záznamy nebudou sloučeny.\n<p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Provést tuto akci"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Vrátit se na seznam počítačů"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nPro maximální přínos informací v této diskuzi,\njsou diskuzní fóra moderována.\nPřispívání na diskuzní fóra se řídí těmito pravidly:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nModerátoři mohou mazat příspěvky porušující tato pravidla.\nAutoři takových příspěvků budou upozorněni emailem.\nHrubě porušujícím uživatelům může být dočasně zakázáno přispívat\n(toto mohou provádět kvůli možnému zneužití jen projektoví administrátoři).\nJiné obtěžující chování, jako např. nástrahy v příspěvcích pro zjištění IP adresy\njiných uživatelů, masivní zakládání vláken či příspěvků, a pod. taktéž\nnebude tolerováno a může vést k podobnému postihu.\n<p>\nPokud si  [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Očekávaný kredit"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID výsledku"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID pracovní jednotky"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID počítače"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Získaný kredit"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Očekávaný kredit: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Blokovat zprávy od tohoto uživatele"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Zablokovat uživatele"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Vaše zpráva byla odeslána."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nemáte žádné soukromé zprávy."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Odesílatel a datum"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Odpovědět na tuto zprávu"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Smazat tuto zprávu"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Vybrat vše"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Odznačit vše"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Smazat vybrané zprávy"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Odesílatel"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Datum"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Je třeba vyplnit všechna pole pro poslání soukromé zprávy"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Vaše zpráva byla ohodnocena jako spam\nanti-spamovým systémem Akismet.\nUpravte jí prosím a zkuste jí vložit znova."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Uživatel s ID %1 nenalezen"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Uživatel se jménem %1 nenalezen"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 není unikátní uživatelské jméno; budete muset použít uživatelské ID"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Uživatel %1 (ID: %2) od vás nepřijímá soukromé zprávy."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Uživatel nenalezen"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Opravdu zablokovat %1?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Jste si opravdu jisti, že chcete zablokovat uživatele %1, aby vám nemohl posílat soukromé zprávy?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Vemte prosím na vědomí, že můžete zablokovat jen určitý počet uživatelů."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Uživatele, kterého jste zablokovali, můžete znova odblokovat ve vašem nastavení diskuzního fóra."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Ne, nemazat"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "uživatel nenalezen"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Uživatel %1 zablokován"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Uživatel %1 byl zablokován, nemůže vám posílat soukromé zprávy."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Pro odblokování navštivte %1předvolby diskuzního fóra%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Neznámá akce"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Vaše předvolby byly upraveny, změny se projeví\naž po komunikaci vašeho počítače s %1\nnebo při vykonání požadavku %2Aktualizovat%3 ze Správce BOINC."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Vaše předvolby byly vráceny na výchozí hodnoty,\nzměny se projeví až po komunikaci vašeho počítače s %1\nnebo při vykonání požadavku %2Aktualizovat%3 ze Správce BOINC."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 pro %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Zpět do předvoleb"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Potvrdit smazání předvoleb"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Jste si jisti, že chcete smazat vaše separátní %1 předvolby pro %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Smazat předvolby"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Zrušit"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profily"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Profily%2 umožňují uživatelům sdílet svá osobní zázemí a názory s komunitou %3."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Prozkoumejte, jak různorodý svět je mezi Vámi dobrovolníky, a přispějte i vaším vlastním pohledem pro ostatní k nahlédnutí."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Pokud se tak ještě nestalo, můžete si %1vytvořit svůj vlastní uživatelský profil%2, který ukážete ostatním!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Uživatel dne"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Prohlížení uživatelských profilů"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Prohlédněte si %1Galerii uživatelských obrázků%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Procházet profily %1podle země%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Procházet profily %1náhodně%2, %3náhodně s obrázky%2, nebo %4náhodně bez obrázků%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Abecední výčet profilů:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Hledat v textech profilů"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Žádné profily"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Nenalezen žádný profil odpovídající vašemu dotazu."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Neplatný typ hlasu:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Hlas uložen"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Děkujeme"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Vaše doporučení bylo uloženo."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Váš hlas pro zamítnutí tohoto profilu byl uložen."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Vrátit se do profilu."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Profily obsahující '%1'"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Jméno uživatele"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Připojil se k projektu"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Nedávný kredit"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Nenalezen žádný profil obsahující '%1'"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Úkol nenalezen:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Tato vlastnost je dočasně nedostupná."
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Nenalezen žádný počítač s ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Nemáte přístup"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Chybí uživatelské ID nebo ID počítače"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Žádné zobrazitelné úkoly"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Uživatel dne"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Zastavený"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Počítám"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Vypnutý"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Stav projektu"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Stav serveru"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Program"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Počítač"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Verze schématu databáze: "
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Stav výpočtů"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Uživatelé"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Úkoly podle aplikace"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Trvání výpočtu posledních 100 úkolů v hodinách: průměr, min, max"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Uživatelů během posledních 24 hodin"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Počítač %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistiky a žebříčky"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Statistiky %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Nejlepší účastníci"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Nejlepší týmy"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Nejlepší počítače"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU modely"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU modely"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Na mnoha webových stránkách jsou dostupné detailní statistiky o %1 a jiných BOINC projektech:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Je též možné získat vaše statistiky ve formě \"obrázku do podpisu\":"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Též je možné získat individuální statistiky ze všech BOINC projektů, kde jste zapojeni - na vaší %1domovské stránce%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Týmy"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 účastníci mohou vytvořit %2týmy%3."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Je možné být členem jen jednoho týmu v jeden okamžik. Tým můžete kdykoliv opustit a přidat se do jiného."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Každý tým má %1vlastníka%2, který může:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "přistupovat k emailovým adresám členů týmu"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "upravovat jméno a popis týmu"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "přidat nebo odebrat Správce týmu"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "vyloučit členy z týmu"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "rozpustit tým, pokud nebude mít žádné členy"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Pro připojení do týmu navštivte týmovou stránku a tam klikněte na %1Připojit se do týmu%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Najít tým"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Všechny týmy"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 týmy"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Vytvořit nový tým"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Pokud vám nevyhovuje žádný tým, můžete si %1vytvořit vlastní%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Odebrat tomuto členu práva Správce týmu"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Přidat nebo odebrat Správce týmu"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Můžete určit některé členy jako Správce týmu. Správci týmu mohou:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Upravovat informace o týmu (jméno, URL, popis)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Sledovat historii příchodů a odchodů v týmu"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Moderovat týmové fórum, pokud nějaké je (správci dostávají upozornění emailem o významných událostech na fóru a označení závadných příspěvků)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Správcí týmu nemohou:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Změnit vlastníka týmu"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Odebrat členy"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Pokud Správce týmu opustí tým, ztratí též svojí pozici Správce týmu"
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Doporučujeme vybrat jako Správce týmu pouze důvěryhodné členy, které dobře znáte."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Momentálně není žádný Správce týmu."
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Současní Správci týmu"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Stát se Správcem týmu v"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Přidat Správce týmu"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Emailová adresa člena týmu:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Přidat"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "nepodařilo se odebrat správce"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "Uživatel není členem týmu"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 je již správcem %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Nelze přidat správce"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Tým nenalezen"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "tým nenalezen"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "Uživatel není členem %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Měním vlastníka %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 je nyní vlastníkem %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Změnit vlastníka %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Člen týmu %1 požádal o změnu vlastnictví tohoto týmu v %2, ale poté opustil tým, jeho požadavek byl zrušen."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Člen týmu %1 požádal o vlastnictví tohoto týmu. Důvodem může být to, že jste opustil, nebo již delší dobu nekontaktoval tým."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "zamítnout žádost"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Pokud nezamítnete žádost na změnu vlastnictví od %1, %2 dostane možnost převzít vlastnictví.<br/><br/>\nPro přijetí nabídky převedení vlastnictví na %3 použijte následující formulář."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Žádný nevyřízený požadavek na změnu vlastnictví."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Pro převedení vlastnictví tohoto týmu na jiného člena, zaškrtněte políčko vedle jména člena a klikněte na <strong>Změnit vlastníka</strong>."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Nový vlastník?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Změnit vlastníka"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Žádní uživatelé k přenesení do týmu."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Je třeba zvolit neprázdné jméno týmu."
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Tým pojmenovaný %1 již existuje - zvolte si prosím jiné jméno."
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Není možné vytvořit tým - zkuste to prosím později."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Vytvořit tým"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Nyní jste v %1. Musíte nejdříve %2opustit tento tým%3 před vytvářením nového."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Není vlastník ani správce"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Historie týmu pro %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Kdy"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Uživatel"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Akce"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Celkový kredit v době akce"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "neplatná země"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "Jméno \"%1\" již používá jiný tým."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Je třeba zadat jméno týmu"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Není možné upravit tým - zkuste to prosím později."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Upravit %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Aktualizovat popis týmu"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 seznam emailů"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Seznam členů %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Zobrazit jako čistý text"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Vytvořit Diskuzní fórum"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Je možné pro potřebu %1 vytvořit diskuzní fórum."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Přispívat budou moci pouze členové týmu."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Lze nastavit, aby toto fórum mohli číst jen členové týmu."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Práva moderovat fórum budete mít vy a správci týmu."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Vytvořit diskuzní fórum pro %1."
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "Tým již má vlastní diskuzní fórum."
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Týmové diskuzní fórum"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Minimální čas mezi příspěvky (sek)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Minimální celkový kredit potřebný pro přispívání"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Minimální nedávný kredit potřebný pro přispívání"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Odeslat"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Zrušit týmové diskuzní fórum."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Opravdu zrušit diskuzní fórum?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Jste si jisti, že chcete zrušit vaše týmové diskuzní fórum? Všechna vlákna a příspěvky budou smazána. (Je ale možné založit si později nové fórum)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Ano - zrušit diskuzní fórum"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Diskuzní fórum zrušeno"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Vaše týmové diskuzní fórum bylo zrušeno. Nyní si můžete %1vytvořit nové%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Týmové diskuzní fórum aktualizováno"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Aktualizace byla úspěšná"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Aktualizace selhala"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "Tým nemá vlastní fórum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Musíte být členem tohoto týmu pro přístup k této stránce."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Požadavek na vlastnictví %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Aktuální vlastník byl upozorněn na váš požadavek emailem a soukromou zprávou.<br/><br/>\nPokud vlastník neodpoví do 60 dnů, bude vám umožněno stát se vlastníkem."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Žádost o vlastnictví není momentálně povolena"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Převzato vlastnictví %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Gratulujeme, nyní jste vlastníkem týmu %1. Na stránce %2Vašeho účtu%3 nyní naleznete volby pro administraci týmu."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Odmítnout žádost na změnu vlastnictví"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "Žádost o vlastnictví z %1 byla zamítnuta."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Nebyly žádné žádosti o změnu vlastnictví."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "neznámá akce %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Návrat na týmovou stránku"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Je třeba být členem tohoto týmu pro přístup k této stránce."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Zažádat o vlastnictví %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Nyní jste vlastníkem týmu %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Požádal jste o vlastnictví týmu %1 v %2."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "Uplynulo 60 dní od vaší žádosti a vlastník nijak neodpověděl. Můžete nyní převzít vlastnictví týmu kliknutím zde:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Převzít vlastnictví"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Vlastník obdržel vaší žádost. Pokud neodpoví do %1 bude vám dána možnost převzít vlastnictví."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Pokud vlastník týmu není aktivní a máte zájem převzít vlastnictví týmu klikněte na následující tlačítko. Aktuálnímu vlastníkovi bude odeslán email s detaily vaší žádosti - bude mu umožněno předat vám vlastnictví či vaší žádost odmítnout. Pokud vlastník neodpoví do 60 dnů, bude vám umožněno převzít vlastnictví.<br/><br/>Chcete požádat o převzetí vlastnictví?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Zažádat o vlastnictví"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Žádost o vlastnictví byla odeslána uživatelem %1 v %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Během posledních 90 dnů byla již odeslána žádost o vlastnictví, nové žádosti nejsou momentálně povolené. Zkuste to prosím později."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "Nelze se připojit k týmu %1."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Již členem"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Již jste členem týmu %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Nelze se připojit k týmu - zkuste to prosím později."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Připojili jste se k %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "Připojili jste se k %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Připojit se k %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Upozornění:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Připojením k týmu dáte jeho vlastníkovi přístup k vaší emailové adrese."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Připojení k týmu nijak neovlivní váš kredit."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Připojit se k týmu"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Výsledky hledání"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Výsledky hledání pro '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Je možné si zobrazit členy tohoto týmu, statistiky a další informace."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Pro váš dotaz bylo nalezeno více než 100 výsledků, zobrazeno je prvních 100."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Konec výsledků. %1 Pokud vám nevyhovuje žádný tým, můžete si %2vytvořit vlastní%3."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Administrace týmu pro %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Upravit údaje o týmu"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Změnit jméno týmu, URL adresu, popis, typ či zemi"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Seznam členů:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "text"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Zobrazit jména členů a jejich emailové adresy"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Zobrazit historii změn:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Zobrazit, kdy se k týmu přidávali či tým opouštěli členové"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Odpovědět na žádost o předání vlastnictví."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Pokud neodpovíte do %1, %2 bude moci převzít vlastnictví tohoto týmu."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Odebrat neaktivní či nežádoucí členy týmu."
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Převést vlastnictví na jiného člena"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Přidat/odebrat Správce týmu"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Nastavit vybraným členům týmu práva Správce týmu"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Zrušit tým"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Povoleno jen když tým nemá žádné členy"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Vytvořit či spravovat týmové diskuzní fórum"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Pro vytvoření týmu ve všech BOINC projektech, aktuálních i budoucích, lze založit %1Globální BOINC tým%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Správcům týmů je doporučováno zapojit se do Google skupiny %1boinc-team-founders%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Nelze smazat neprázdný tým"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Tým %1 smazán"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Překročen limit: Lze zobrazit jen prvních 1000 členů."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Členové %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Nelze opustit tým"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Tým neexistuje, nebo nejste jeho členem."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Opustit %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Upozornění před opuštěním týmu:</strong>\n         <ul>\n         <li>Pokud opustíte tým, můžete se do něj později vrátit, nebo se připojit do kteréhokoliv jiného týmu.</li>\n         <li>Opuštění týmu nemá žádný vliv na vaše statistiky či kredit.</li>\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Opustit tým"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Odebrání členů z %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 není členem %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 byl odebrán"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Odebrat členy z %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Odebrat?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Jméno (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Není vhodný žádný člen pro odebrání."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Odebrat uživatele"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Jméno týmu"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Výsledky hledání týmů"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Nenalezen žádný tým podle vašeho dotazu. Zkuste prosím jiný dotaz."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Nebo si můžete %založit nový tým%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Následující týmy odpovídají jednomu či více z vašich zadaných požadavků.\nPro přidání klikněte na jméno týmu - tím se dostanete na stránku tohoto týmu,\nzde klikněte na %1Přidat se do týmu%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Změnit hledané údaje"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Můžete se přidat do týmu k lidem, kteří mají podobné zájmy, jsou ze stejné země, společnosti či školy."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "K nalezení týmů, které by vás mohly zajímat, použijte tento formulář."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Nemám zájem%2 připojovat se momentálně k týmu."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Překročen limit - zobrazeno jen prvních %1 položek"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Nejlepší počítače"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Nejlepší %1 týmy"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "Nenalezeny žádné %1 týmy"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Účastníkem od"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "Nebyl zvolen žádný Uživatel dne."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Uživatel dne pro %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtry"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Uživatelské jméno začíná na"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Všechny"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "S profilem?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Nebo"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "V týmu?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Řazení"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Sestupně podle času registrace"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Sestupně podle průměrného kreditu"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Sestupně podle celkového kreditu"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "hledaný řetězec musí být aspoň 3 znaky dlouhý"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Výsledky hledání uživatelů"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Připojen"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Žádný uživatel neodpovídá vašim kriteriím."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Uživatel nenalezen!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Data o účtu<br/>pro %1<br/>Čas:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Tým:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Celkový kredit týmu:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Průměrný nový kredit týmu:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Tým: žádný"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Ověřit BOINC emailovou adresu"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Klikněte prosím na tento odkaz pro ověření emailové adresy vašeho účtu %1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Email pro ověření byl odeslán"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Byl odeslán email na %1. Klikněte prosím na odkaz, který tento email obsahuje, pro ověření dané emailové adresy."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Uživatel nenalezen."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Chyba dat v URL - nelze validovat emailovou adresu"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Aktualizace databáze selhala - zkuste to prosím později."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Ověřit emailovou adresu"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Emailová adresa vašeho účtu byla ověřena."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Tento uživatel nemá žádný profil"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profil: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Data účtu"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "K účtu můžete přistupovat buď pomocí vaší emailové adresy a hesla,\nnebo pomocí přiděleného \"klíče k účtu\".\nVáš klíč k účtu je:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Tento klíč může být použít k:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "přihlášení k účtu na webu"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "pro přídání počítače k vašemu účtu bez Správce BOINC.\nK tomu je třeba nainstalovat BOINC,\nvytvořit soubor s názvem %1 ve složce, kde má BOINC data,\na obsah tohoto souboru nastavit na:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Slabý klíč k účtu"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "Váš slabý klíč k účtu může být použit pro připojení počítačů k účtu\ntak, jak je popsáno výše, ale nemůže být nijak použit pro přihlášení k vašemu účtu či změně údajů.\nPokud chcete připojit k vašemu účtu nezabezpečené počítače,\npoužijte k tomu váš slabý klíč k účtu.\nVáš slabý klíč k účtu je:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Při změně hesla dojde též ke změně vašeho slabého klíče k účtu a váš předchozí slabý klíč se tak stane neplatným."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "nelze najít pracovní jednotku"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Pracovní jednotka %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "aplikační program"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "částečný výsledek"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "přidělený kredit"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Probíhající úkoly"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "potlačeno očekávané dokončení"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "minimální kvorum"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "počáteční replikace"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "max # chyb/celkem/úspěšných úkolů"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "chyby"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validace"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Nevyřízené"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Hlavní stránka"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Autorská práva"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Vytvořeno"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Vaše osobní zázemí."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Řekněte nám něco o sobě. Můžete například uvést odkud jste, jaký je váš věk, povolání, koníčky či cokoliv dalšího o vás."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Vaše názory na %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Řekněte nám, co si myslíte o %1<ol>\n    <li>Proč jste se zapojil do %1?</li>\n    <li>Jaké jsou vaše očekávání od projektu?</li>\n    <li>Nějaké připomínky?</li>\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Barevné schéma pro grafiku"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maximum CPU % pro grafiku %10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Povolit jen vybrané aplikace"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Dostávat úkoly jen pro určité aplikace. Užitečné při zaměření se na konkrétní aplikace, nebo pro jejich vyloučení."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Pokud není dostupná žádná práce pro vámi vybrané aplikace, přijímat práci i od jiných aplikací?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Jsou-li k dispozici rychlejší aplikace bez grafického prostředí, mají se použít?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(všechny aplikace)"
diff --git a/locale/cs/BOINC-Setup.mo b/locale/cs/BOINC-Setup.mo
index 5aa494e..1d0d4f3 100644
Binary files a/locale/cs/BOINC-Setup.mo and b/locale/cs/BOINC-Setup.mo differ
diff --git a/locale/cs/BOINC-Setup.po b/locale/cs/BOINC-Setup.po
index d25436c..e30e2a4 100644
--- a/locale/cs/BOINC-Setup.po
+++ b/locale/cs/BOINC-Setup.po
@@ -1,41 +1,46 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Pavel <xxxq at seznam.cz>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-04-20 12:34+0000\n"
-"Last-Translator: Petr Nekvinda <petr.nekvinda at gmail.com>\n"
-"Language-Team: Czech (http://www.transifex.com/projects/p/boinc/language/cs/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-17 16:10+0000\n"
+"Last-Translator: Tomas Hrdina <mot2425 at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/boinc/boinc/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Je nám líto, ale tato verze %s vyžaduje systém verze 10.5 nebo novější."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Omlouváme se, ale tato verze %s vyžaduje systém 10.6 nebo vyšší."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Ano"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Ne"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Má BOINC běžet i tehdy, když není přihlášen žádný uživatel?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -43,26 +48,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Uživatelé s administrátorskými právy na tomto počítači budou mít automaticky právo spouštět a kontrolovat %s.\n\nPřejete si, aby mohli i ne-administrátoři spouštět a kontrolovat %s na tomto Macu?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Přejete si nastavit %s jako spořič obrazovky pro všechny %s uživatele na tomto Macu?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Chyba v přístupových právech po novém spuštění"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Odebírání může trvat několik minut.\nStrpení prosím."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -70,27 +76,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Jste si jistí, že chcete zcela odebrat %s z tohoto počítače?\n\nTímto se odstraní aplikace, ale zachovají se %s uživatelské soubory."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Zrušeno: %s nebylo změněno."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Nastala chyba: kód chyby %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "jméno uživatele"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Chcete odinstalovat i VirtualBox? \n(VirtualBox byl nainstalován spolu s programem BOINC)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -102,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "Odebrání dokončeno.\n\nVolitelně můžete ještě odebrat tyto zbývající položky pomocí Finderu:\nsložka \"%s\"\n\npro každého uživatele, soubor\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Zadejte vaše administrátorské heslo pro úplné odebrání %s z vašeho počítače.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Zrušit"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Pokračovat..."
diff --git a/locale/cs/BOINC-Web.mo b/locale/cs/BOINC-Web.mo
index cb5825b..ea180ec 100644
Binary files a/locale/cs/BOINC-Web.mo and b/locale/cs/BOINC-Web.mo differ
diff --git a/locale/cs/BOINC-Web.po b/locale/cs/BOINC-Web.po
index f7b5692..c607adf 100644
--- a/locale/cs/BOINC-Web.po
+++ b/locale/cs/BOINC-Web.po
@@ -1,11 +1,10 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
+# Jiří Chvátal <george.choose3d at gmail.com>, 2017
 # Martin Suchan <martin.suchan at outlook.com>, 2015
 # Pavel <xxxq at seznam.cz>, 2015
 # Petr Nekvinda <petr.nekvinda at gmail.com>, 2015
@@ -13,9 +12,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-03-03 14:23+0000\n"
-"Last-Translator: Martin Suchan <martin.suchan at outlook.com>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-05 13:30+0000\n"
+"Last-Translator: Jiří Chvátal <george.choose3d at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/boinc/boinc/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -24,359 +23,466 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Čeština"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Czech"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! vám pomůže s vytvářením a správováním vašich BOINC účtů a pomůže vám s jejich nastavením, vytvářením týmů či připojením se do týmů, zapojením vašich počítačů do projektů a v mnohém dalším. Pokud jste novým uživatelem BOINC, pomůže vám BAM se vším co budete potřebovat."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Uživatelé spořiče obrazovky GridRepublic umožňují jejich počítačům zapojit se do výzkumných projektů když není jejich výkon plně využit. Tento spořič obrazovky neovlivňuje výkon počítače víc, než jakýkoli jiný spořič."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Hledat"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "Vrátit se na hlavní stránku BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Tato stránka je %spřeložitelná%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Doporučujeme nainstalovat současně i VirtualBox, aby mohl Váš počítač pracovat na projektech, které jej vyžadují."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "Chci se dozvědět více o VirtualBoxu."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "Stáhnout BOINC + VirtualBox"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "pro %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "Stáhnout BOINC"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINC je program, který Vám umožní věnovat volný výpočetní čas Vašeho počítače vědeckým projektům jako SETI at home, Climateprediction.net, Rosetta at home, World Community Grid a mnoha dalším."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "Po instalaci BOINCu do Vašeho počítače se můžete zapojit do tolika projektů, kolik budete chtít."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "Používejte prosím tento software pouze na počítačích, jejichž jste vlastníkem, nebo máte-li svolení jejich majitele."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "Doporučujeme Vám stáhnout BOINC z Google Play Store nebo Amazon Appstore, ne odsud."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Systémové požadavky"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Poznámky k vydání"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Nápověda"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Všechny verze"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr "Historie verzí"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "GPU výpočty"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: počítejte pro vědu"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "BOINC online pomoc vám umoňuje hovořit se zkušenými uživateli systému BOINC, kteří vám mohou: %s odpovědět otázky o BOINC dobrovolnickém počítání %s provést vás procesem instalace a nastavení programu BOINC %s vyřešit problémy, na které můžete narazit."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "BOINC online pomoc je založena na programu %sSkype%s pro telefonování přes internet. Skype je zdarma (program i telefonování). Pokud Skype dosud nemáte, %sstáhněte si jej zde%s a potom se vraťte na tuto stránku."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "Nejlepší způsob, jak získat pomoc, je pomocí hlasové komunikace, pro kterou budete potřebovat buď vestavěný mikrofon a sluchátka, nebo přenosný headset pro váš počítač. Pro komunikaci s dobrovolnými pomocníky lze též použít textovového rozhovoru přes Skype, nebo klasický email (pokud nepoužíváte Skype)."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Jsou dostupní dobrovolní pomocníci mluvící mnoha jazyky. Vyberte si prosím váš jazyk:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Staňte se dobrovolným pomocníkem"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Pokud jste zkušeným uživatelem programu BOINC, byly bychom rádi, pokud byste se %sstal dobrovolným pomocníkem%s. Je to skvělý způsob, jak pomoci vědeckému výzkumu a dobrovolnickému počítání - a je to také zábava!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Pokud jste již dobrovolným pomocníkem: k úpravě svého nastavení %sklikněte zde%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "BOINC pomocníci jsou neplacení dobrovolníci, jejichž činnost není zastřešována Kalifornskou univerzitou v Berkeley."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "BOINC pomocníkům %1nikdy%2 nedávejte svojí emailovou adresu či heslo."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Výpočetní síla"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "100 nejvýkonnějších dobrovolníků"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Statistiky"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "24 hodinový průměr:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOPů."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Aktivních:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "dobrovolníků,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "počítačů.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "24 hodinový průměr:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOPů."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Novinky"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Databáze není dostupná; zkuste to prosím později."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Staňte se dobrovolníkem"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Využijte volný čas Vašeho počítače (Windows, Mac, Linux nebo Android) k léčbě nemocí, studiu globálního oteplování, objevování pulsarů a mnoha dalším typům vědeckého výzkumu. Je to bezpečné a snadné:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Ke stažení"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Dokumentace"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Pro Android zařízení můžete BOINC stáhnout z Obchodu Google Play; pro Kindle z Amazon App Store."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Můžete si vybrat %1projekt%2 nebo také %3, %4, a %5, mnobo mnohé další."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Pokud se účastníte vícero projektů, zkuste %1account manager%2 či %3GridRepublic%4 nebo %5BAM!%6. "
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Dozvědět se víc:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Diskuzní fóra"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projekty"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Manuál"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Doplňky"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Odkazy"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Využijte volný čas Vašeho počítače (Windows, Mac, Linux nebo Android) k léčbě nemocí, studiu globálního oteplování, objevování pulsarů a mnoha dalším typům vědeckého výzkumu. Je to bezpečné a snadné:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Další možnosti pomoci:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Vyberte si projekty"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Přehled"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "Stáhněte si BOINC"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Překlad"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Zadejte emailovou adresu a heslo."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Test"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "Případně, pokud jste zapojeni do více projektů současně, vyzkoušejte některého ze %ssprávce účtů%s, jako jsou %sGridRepublic%s nebo %sBAM!%s."
+#: doc/index.php:135
+msgid "Document"
+msgstr "Dokument"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "Počítejte s programem BOINC"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Publikovat"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Aktualizace softwaru"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Nahlásit chyby"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Vysoce výkonné výpočty s BOINC"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1Vědci%2: využijte BOINC k vytvoření %3dobrovolnického výpočetního projektu%4, který vám umožní využít výpočetní sílu tísíců procesorů a GPU."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1Univerzity%2: využijte BOINC k vytvoření %3virtuálního univerzitního superpočítače%4."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Společnosti%2: využijte BOINC pro %3desktopový Grid computing%4."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "O projektu BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Dokumentace"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Diskuzní fóra"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC a Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Vývoj softwaru"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC je softwarová platforma pro dobrovolné výpočty. Obsahuje klient, server, webovou komponentu a API pro propojení s dalšími komponentami."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Zdrojový kód"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Vývoj BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Projektové dokumenty"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Stále hledáme programátory, kteří by nám pomohli udržovat a vyvíjet BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Vývojový proces"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Vývojové úkoly"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC je distribuován pod LGPL licencí."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "Projekt BOINC"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC je komunitní projekt. Vítán je kdokoli, kdo by se chtěl zapojit."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "Emailové konference"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "Události"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Zdrojový kód"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Grafika"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Administrace"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Živá pomoc přes Skype nebo email"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Live Help umožňuje přímou pomoc od zkušených uživatelů BOINC, kteří mohou odpovědět na dotazy o BOINC, pomoci vám s instalací a používáním BOINC a s řešením problémů."
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "API pro doplňkový software"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Můžete komunikovat s podporou"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Open-source software pro dobrovolnické počítání"
+#: doc/help.php:16
+msgid "by email"
+msgstr "pomocí emailu"
 
-#: projects.inc:19
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\npomocí hovoru %1Skype%2, zdarma online. Pokud nemáte Skype, můžete si jej  %3stáhnout a nainstalovat%4. Až budete hotovi, vraťte se na tuto stránku."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "pomocí Skype zpráv"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Spolupracovníci mluví mnoha jazyky. Prosím vyberte si jazyk pro komunikaci (počet pomocníků):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Staňte se dobrovolným pomocníkem"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Pokud jste zkušeným uživatelem programu BOINC, byly bychom rádi, pokud byste se %sstal dobrovolným pomocníkem%s. Je to skvělý způsob, jak pomoci vědeckému výzkumu a dobrovolnickému počítání - a je to také zábava!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Pokud jste již dobrovolným pomocníkem: k úpravě svého nastavení %sklikněte zde%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Pomocníci BOINC nejsou placení. Jejich pomoc není poskytována BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "BOINC pomocníkům %1nikdy%2 nedávejte svojí emailovou adresu či heslo."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Distribuovaný průzkum"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Stanfordská univerzita"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Seismologie"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "\"Quake-Catcher Network\" vyvíjí světově nejrozsáhlejší seismickou síť za pomocí senzorů připojených k počítačům a smartphonům."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network využívá senzorů připojených k počítačům a chytrým telefonům pro detekci seismických vln."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Polská nadace BOINC"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Výzkum životního prostředí"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Radioactive at Home vytváří volně přístupnou a pravidelně aktualizovanou mapu radiace pomocí sensorů připojených k počítačům na Internetu. Pro připojení k projektu je nutné vlastnit senzor."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Kognitivní vědy a umělá inteligence"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Kognitivní věda"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home využívá výpočetní modelování kognitivních procesů pro lepší pochopení lidské mysli, specificky ke studiu mechanismů a procesů, které umožňují a ovládají lidské projevy a učení."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Soukromý"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Nezávislost"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Umělá inteligence"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -384,55 +490,55 @@ msgid ""
 "conversations."
 msgstr "Parsování a konverze sémantických sítí pro využití ve FreeHAL, umělé inteligenci využívající sémantické sítě, čističe, části hlasových databází a hlasových označovačů s cílem napodobit lidské chování při konverzaci."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biologie a medicína"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Lékařská fyziologie"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home provádí srdeční elektrofyziologické simulace, které studují elektrickou aktivitu v srdci."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Molekulární biologie"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World se pokouší identifikovat, analyzovat a strukturálně předvídat a navrhovat RNA molekuly pomocí bioinformatického software."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "Univerzita v Dublinu"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Výzkum léků proti malárii"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "Paraziti, kteří způsobují malárii, se stávají stále odolnějsí proti dostupným lékům. Je proto třeba stále hledat nové léky, které budou zaměřené zejména na nové proteiny v těle parazita. Projekt FightNeglectedDiseases at Home si dává za cíl najít tyto nové léky proti malárii."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Parazit, který způsobuje Malárii je stále více rezistentní proti medikamentům. Musíme proto co nejdříve vyvinout nové léky účinkující cíleně proti proteinům parazita. projekt FIND at Home je zaměřený na nalezení těchto proteinů."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Univerzita v Karlsruhe (Německo)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Predikce struktury proteinů"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -441,15 +547,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME využívá výpočetní přístup k předvídání biologicky aktivních proteinových struktur, k porozumnění mechanizmů zpracovávajících signály při vzájemné inerakci mezi proteiny, k porozumnění chorob vztahujících se k poruchám proteinů, nebo jejich agregaci a k vývoji nových léků na bázi třírozměrných struktur biologicky významných proteinů."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Biomedicínský výzkumný park v Barceloně (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Molekulární simulace proteinů"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -457,31 +563,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net otevírá nové výpočetní možnosti díky prvnímu kódu pro simulaci molekulární dynamiky na úrovni atomů (CellMD), speciálně optimalizovanému pro provoz na NVIDIA GPU. Tímto se otevírají nové možnosti v oblasti biomedicíny a výpočetní biologie pro výzkum biomedicíny."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Univerzita v Marylandu, centrum bioinformatiky a výpočetní biologie"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Výzkum životních věd"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "The Lattice Project, vyvinutý a spravovaný Univerzitou v Marylandu, poskytuje výpočetní výkon vědcům z celého světa, kteří studují evoluční vztahy pomocí DNA a proteinových sekvenčních dat."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "Švýcarský institut tropů"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Epidemiologie"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -492,15 +598,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "Simulační modely přenosové dynamiky a zdravotních následků malárie jsou důležitým nástrojem pro výzkum a kontrolu šíření této nemoci. Mohou být použity pro stanovení optimálních strategií pro poskytování sítí proti komárům, chemoterapie, nebo nových očkovacích látek, které jsou v současné době ve fázi vývoje a testování. Takové modelování je extrémně náročné na výpočetní výkon - simulace velkých lidských populací s rozmanitým souborem parametrů, které souvisí s biologickými a soc [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Washingtonská univerzita"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biologie"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -510,19 +616,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "Zjišťujte 3-rozměrné tvary proteinů, jejichž výzkum může v důsledku vést až k nalezení léku na některé ze závažných lidských nemocí. Zapojením se v projektu Rosetta at home pomůžete urychlit a prohloubit náš výzkum způsobem, který bychom si bez vaší pomoci nemohli dovolit. Pomůžete nám také v našem úsilí navrhnout nové proteiny pro boj s nemocemi jako HIV, malarie, rakovina nebo Alzheimerova choroba."
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Vědy o Zemi"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Oxfordská univerzita"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Studie klimatu"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -534,25 +640,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "Zkoumejte aproximace u nejmodernějších klimatických modelů. Spuštěním modelu řádově tisíckrát se zjišťuje, jak model reaguje na drobné změny těchto aproximací - změny natolik malé, že nenaruší věrohodnost těchto aproximací. Toto nám umožní zlepšit naše chápání toho, jak citlivé jsou naše modely vůči k malým změnám a také k vlivům jako změny v podílu oxidu uhličitého a siřičitého cyklu, a také jak se klima může změnit v příštím století v širokém spektru různých scénářů."
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Fyzikální vědy"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Strojní inženýrství"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "V současné době počítáme optimální design struktury s 52 pruty"
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomie"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -562,11 +659,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS je astronomický projekt, který studuje 16 různých vlastností galaxií, včetně jasu, hmotnosti, množství prachových částic či jak rychle se formují hvězdy. Využíváme váš výpočetní výkon pro výpočty na úrovni pixelů na snímcích galaxií, které byly pořízené v různé vlnové délce (UV, viditelné pásmo, v blízké infračervené oblasti), za účelem vytvoření katalogu, který pomůže astronomům lépe porozumnět vzdálenému vesmíru."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Astrofyzika"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -574,57 +671,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "Cílem tohoto projektu je určení tvaru a osy rotace větší části z rodiny asteroidů. Jako vstupní data zde slouží fotometrie asteroidů, pokud je dostupná. Výsledkem jsou konvexní tvarové modely asteroidů se směrem a dobou rotace."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Věda a strojírenství pro letecký průmysl"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Illinoiská univerzita v Urbana-Champaign"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation je platforma pro provádění simulací v leteckém průmyslu, včetně optimalizací trajektorií nosičů, satelitů a sond, simulace exosféry  Měsíce či analyzování dynamických systémů u průzkumných vozítek-roverů."
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Provádějte simulace pro letecký průmysl"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Cílem Cosmology at Home jer hledání modelu, který nejlépe popisuje Vesmír, a hledání modelů, které odpovídají dostupným astroniomicým částicovým fyzikálním datům."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home si dává za cíl vytvořit první databázi simulovaného hvězdného obsahu vezmíru, od prvotních hvězd až po exotické binární černé díry."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Provádějte fyzikální a astronomický výzkum"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Polytechnický institut Rensselaer"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Cílem projektu Milkyway at Home je vytvoření vysoce podrobného třídimenzionálního modelu Mléčné dráhy pomocí dat získanch projektem Sloan Digital Sky Survey."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Studujte strukturu galaxie Mléčná dráha"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Univerzita Leiden, Nizozemí"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Chemie"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -634,15 +726,15 @@ msgid ""
 "simulations through the grid."
 msgstr "Výpočty v povrchové vědě prováděné pomocí klasické dynamiky. Leiden Classical umožňuje dobrovolníkům, studentům a  vědcům zadávat své osobní výpočty, které jsou počítány pomocí gridu. Každý uživatel má svojí osobní frontu pro úlohy klasické dynamiky. Tímto způsobem již studenti využily grid pro simulaci kapalného argonu, nebo k testování platnosti zákonu o ideálním plynu pomocí simulací na gridu."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Pomoc studentům se simulacemi atomů"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Univerzita ve Wisconsinu - Milwaukee, Institut Maxe Plancka"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -651,19 +743,19 @@ msgid ""
 "international organizations."
 msgstr "Hledání rotujících neutronových hvězd (taktéž známých pod názvem pulsar) za pomoci dat získaných z detektorů gravitačních vln LIGO a GEO a z observatoře Arecibo. Einstein at Home je projektem Světového roku fyziky 2005, který podporuje Americká fyzikální společnost (APS) a řada mezinárodních organizací."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "Pomožte hledat pulsary a gravitační vlny"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Evropská organizace pro jaderný výzkum)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Fyzika"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -672,22 +764,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "Velký hadronový urychlovač (The Large Hadron Collider - LHC) je urychlovač částic v CERNu, Evropské organizaci pro jaderný výzkum, světově největší laboratoři částicové fyziky. Je to světově nejvýkonnější postavený nástroj pro zkoumání vlastností částic. LHC at home provádí simulace pro zlepšení návrhu LHC a jeho detektorů."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "Zlepšování designu Velkého hadronového urychlovače LHC"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "Tento projekt vyvinutý v CERNu využívá technologii virtuálních strojů pro simulace fyzikálních událostí v LHC na počítačích zapojených dobrovolníků. Tento projekt vyžaduje instalaci VirtualBoxu na vašem počítači."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Simulování srážek vysokoenergetických částic"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -695,19 +787,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home využívá výpočetní čas zapojených dobrovolníků pro simulace na detektoru ATLAS, částicovém fyzikálním experimentu v LHC - hadronovém urychlovači částic v CERNu. ATLAS hledá nové částice a jevy pomocí srážek protonů s velmi vysokou energií."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "Simulování srážek vysokoenergetických částic pro CERN"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Kalifornská univerzita v Berkeley"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrofyzika, astrobiologie"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -716,106 +808,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Search for Extraterrestrial Intelligence - Hledání Mimozemské Inteligence) je vědecká oblast, jejímž cílem je hledání inteligentního života mimo Zemi. Jeden ze způsobů, známý jako radio SETI, používá radioteleskopy k zachytávání radiových signálů s úzkou šířkou pásma z vesmíru. Je známo, že tyto signály nevznikají přírodní cestou, jejich zachycení by tedy dokazovalo existenci mimozemské technologie."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "Hledání důkazů mimozemského života"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Více různých aplikací"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "Molekulární biologie, Počítačová věda"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "Citizen Science Grid využívá výpočetní sílu zapojených dobrovolníků pro podporu širokého množství výzkumných a vzdělávacích projektů."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "Pomožte vědnímu výzkumu na Univerzitě Severní Dakota "
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Čínská akademie věd"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Fyzika, biochemie a jiné"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "Cílem projektu CAS at home je podpora a pomoc vědcům v Číně při adopci technologií pro dobrovolné výpočty a skupinové přemýšlení u jejich výzkumu."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home je umístěn ve Výpočetním Centru Institutu fyziky vysokých energií (IHEP), Čínské výzkumné akademie, pro čínské studenty s projekty studujícími strukturu proteinů, nanotechnologie, genom rakoviny a fyziku vysokých energií."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Pomáhejte vědcům z Číny"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Matematika, fyzika, evoluce"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home je prostředníkem mezi platformou BOINC a dalšími dobrovolnými výpočetními projekty: ECM, Muon, Evolution at home a distributed.net"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "Provádějte výzkum v matematice, fyzice a evoluci"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "MTA-SZTAKI - laboratoř paralelních a distribuovaných výpočtů, Maďarsko"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Výzkumné projekty z Evropy"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "Projekt EDGeS at Home Beta spojuje jednotlivé dobrovolníky poskytující výkon pro výpočty do ucelené evropské sítě, čímž umožňuje zasílání úloh ke zpracování dobrovolníky tohoto projektu. Zahrnuté vědecké projekty se zabývají problémy v matematice, fyzice, biologii a dalších odvětvích."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Pomáhejte vědcům ze Evropy"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Univerzity a výkumná centra ve Španělsku"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Výzkumné projekty ze Španělska"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Fyzikální výzkum, materiálové vědy a biomedicína"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "Pomáhejte vědcům ze Španělska"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM Corporate Citizenship"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Medicína, životní prostředí a jiný humanitární výzkum"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -823,20 +896,20 @@ msgid ""
 "clean water and many more."
 msgstr "Neziskový výzkum v mnoha kritických oblastech lidských problémů pomocí světově největší dobrovolnické výpočetní sítě. Výzkum zahrnuje HIV-AIDS, rakovinu. tropické a zanedbané nemoci, solární energii, čistou voda a mnohé další."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "Provádějte výzkum biomedicíny a životního prostředí"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Matematika, výpočty a hry"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Matematika"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -846,64 +919,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home hledá tělesa se specifickými vlastnostmi. Primárním cílem tohoto výzkumu je oblast algebraické teorie čísel. Vědci v této oblasti budou moci ve výsledcích vyhledávat zajímavé vzory, které jim umožní formulovat konjektury nad číselnými tělesy. Tento výzkum ve výsledku pomůže k hlubšímu porozumnění vlastností čísel, základních stavebních kamenů matematiky."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "Provádějte výzkum v algebraické teorii čísel"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Počítačová věda"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "Řešte složité a prakticky důležité problémy (diskrétní funkce, inverzní problémy, diskrétní optimalizace, bioinformatika, atd.), které lze redukovat na problém splnitelnosti booleovské formule."
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Studujte výpočetní složitost"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Kryptografie a kombinatorika"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "Využívejte aplikace z distributed.net"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Kryptografie"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Pokus o dešifrování tří originálních zpráv Enigma. Signály byly zachyceny v severním Atlantiku v roce 1942 a jsou považovány za nerozluštěné."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "Dekódujte zprávy z ponorek z WWII"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Studium Collatzovy domněnky, nevyřešeného problému v matematice"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "Studujte Collatz Conjecture"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "Kalifornská státní univerzita Fullerton"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Faktorizace velkých čísel"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -913,56 +986,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home je výzkumný projekt, který využívá počítačů připojených k internetu k vykonání prosévací fáze při tzv. metodě prosévání sloužící k faktorizaci velkých čísel. Již jako malí studenti jste získali první zkušenosti s rozkladem celých čísel na prvočísla ve škole, kdy např. 15 = 3 * 5 nebo 35 = 5 * 7. Projekt NFS at Home je pokračováním této zkušnosti; akorát s tím rozdílem, že pracuje s čísly, které mají i stovky číslic."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "Studujte faktorizaci velkých čísel"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid zkoumá v několika projektech různé fruhy velmi velkých prvočísel, včetně hledání nových největších známých prvočísel."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Hledejte velká prvočísla"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Univerzita aplikovaných věd RheinMein"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Hledání protipříkladů ke dvěma domněnkám souvisejícími s hledáním prvočísel"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Studujte vlastnosti prvočísel"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI - laboratoř paralelních a distribuovaných výpočtů, Maďarsko"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Nalezení všech zobecněných binárních číselných systémů (kde jsou kořeny maticemi a čísla vektory) až do dimenze 11."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Studujte teorii čísel"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "Testování a porovnávání heuristických metod pro nalezení separací v paralelních algoritmech, které pracují v CAD systémech pro navrhování logických ovládacích systémů"
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Komentáře"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Diskuse"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Novinky jsou dostupné jako %szprávy RSS%s"
diff --git a/locale/da/BOINC-Client.mo b/locale/da/BOINC-Client.mo
index 07f67e0..10f03a7 100644
Binary files a/locale/da/BOINC-Client.mo and b/locale/da/BOINC-Client.mo differ
diff --git a/locale/da/BOINC-Client.po b/locale/da/BOINC-Client.po
index 6e68972..a7253da 100644
--- a/locale/da/BOINC-Client.po
+++ b/locale/da/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Gabriel Siegel <gsiegel at gabsoft.dk>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-08 17:43+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Danish (http://www.transifex.com/projects/p/boinc/language/da/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-15 21:29+0000\n"
+"Last-Translator: Gabriel Siegel <gsiegel at gabsoft.dk>\n"
+"Language-Team: Danish (http://www.transifex.com/boinc/boinc/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Besked fra kontohåndtering"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Besked fra server"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Nogle opgaver behøver mere hukommelse, end dine indstillinger tillader. Tjek venligst dine indstillinger."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Kunne ikke skrive tilstands-fil; tjek mappe-rettigheder"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Miljøvariablen HTTP_PROXY skal specificere en HTTP-proxy"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Du brugte en forkert URL til dette projekt. Når det er belejligt, fjern dette projekt og tilføj %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Dette projekt benytter en gammel URL. Når det er belejligt, fjern da dette projekt og tilføj derefter %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Syntaksfejl i app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Filen, der refereres til i app_info.xml, eksisterer ikke: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "En ny version af BOINC er tilgængelig."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Download"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "kan ikke benyttes til CUDA eller OpenCL beregning med CUDA driver version 6.5 eller nyere"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Uventet tekst i cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Ukendt mærke i cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Manglende startmærke i cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Fejl i valgmuligheder i cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Manglende slutmærke i cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "For at løse dette kan du"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "ændre projektindstillinger på projektets hjemmeside"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "fjerne GPU eksklusioner i din cc_config.xml fil"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "ændre dine indstillinger på din kontomanagerhjemmeside"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Ugyldig eller manglende kontonøgle. For at rette fejlen, fjern og tilføj dette projekt."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Ugyldig underskriftsnøgle for kode. For at rette fejlen, fjern og tilføj dette projekt."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Projektet har ændret sin sikkerhedsnøgle. Fjern og tilføj venligst dette projekt."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Dette projekt understøtter ikke operativsystemet"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Dette projekt understøtter ikke CPU-typen"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Din BOINC-klientsoftware er for gammel. Installér venligst den aktuelle version."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Dette projekt understøtter ikke computere af typen"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Opgradér til den seneste driver for at behandle opgaver ved hjælp af din computers GPU"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Opgrader til den seneste driver for at benytte alle dettes projekts GPU-applikationer"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "En nyere version af BOINC er krævet for at kunne benytte din NVIDIA GPU; opgradér venligst til den aktuelle version"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "En %s-GPU er krævet for at løse opgaver for dette projekt"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Ingen opgaver er tilgængelige for de applikationer, du har valgt."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Din computertype er ikke understøttet af dette projekt"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Nyere BOINC-version påkrævet; installér venligst den aktuelle version"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Opgaver for %s er tilgængelige, men dine indstillinger er sat til ikke at acceptere dem"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Ukendt app-navn i app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Din app_info.xml-fil har ikke en brugbar version af"
diff --git a/locale/da/BOINC-Manager.mo b/locale/da/BOINC-Manager.mo
index fb7d286..5284ad3 100644
Binary files a/locale/da/BOINC-Manager.mo and b/locale/da/BOINC-Manager.mo differ
diff --git a/locale/da/BOINC-Manager.po b/locale/da/BOINC-Manager.po
index f416bc2..eef3dc9 100644
--- a/locale/da/BOINC-Manager.po
+++ b/locale/da/BOINC-Manager.po
@@ -1,64 +1,58 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# janitor <apirateslifeforme at live.com>, 2015
+# Christoffer <netravnen+transifex at gmail.com>, 2015
+# Gabriel Siegel <gsiegel at gabsoft.dk>, 2017
 # Thomas Pryds <thomas at pryds.eu>, 2015-2016
-# Titanus Eramius <titanus at aptget.dk>, 2015
+# TitanusEramius <titanus at aptget.dk>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-04-07 06:48+0000\n"
-"Last-Translator: Thomas Pryds <thomas at pryds.eu>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-15 19:31+0000\n"
+"Last-Translator: Gabriel Siegel <gsiegel at gabsoft.dk>\n"
 "Language-Team: Danish (http://www.transifex.com/boinc/boinc/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Identificér din konto hos %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Indtast venligst din kontoinformation\n(for at oprette en konto kan du besøge projektets hjemmeside)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Dette projekt accepterer i øjeblikket ikke nye brugerkonti.\nDu kan kun tilføje projektet, hvis du allerede har en konto."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Kører du allerede dette projekt?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Nej, ny bruger"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Ja, eksisterende bruger"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -68,85 +62,85 @@ msgid ""
 "password fields."
 msgstr "Vi kunne ikke opsætte din kontoinformation\nautomatisk.\n\nKlik venligst på linket \"Find loginoplysninger\"\nherunder for at finde ud af, hvad du skal skrive i emailadresse- og\nkodeord-felterne."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Find loginoplysninger"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Kodeord:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Vælg et &kodeord:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "&Bekræft kodeord:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Kører du allerede %s?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Brugernavn:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&Email-adresse eller LDAP-ID:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Emailadresse:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "Minimal længde %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Har du glemt din adgangskode?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Hvis du ikke har registreret denne kontohåndtering,\nbedes du gøre det, før du fortsætter. Klik på nedenstående link\nfor at registrere eller for at hente en glemt adgangskode."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Hjemmeside for kontohåndtering"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Tilføj projekt"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Opdatér kontohåndtering"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Brug kontohåndtering"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Angiv venligst et brugernavn."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Angiv venligst en emailadresse."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Angiv venligst et kodeord på mindst %d tegn."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Kodeordet og bekræftelsen af kodeordet stemmer ikke overens. Indtast dem venligst igen."
@@ -199,11 +193,11 @@ msgstr "Vent venligst …"
 msgid "An internal server error has occurred.\n"
 msgstr "Der er opstået en intern serverfejl.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Forbundet"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Afbrudt"
 
@@ -218,8 +212,8 @@ msgid "Open another %s window"
 msgstr "Åbn endnu et %s-vindue"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Vælg computer …"
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Vælg computer...Ctrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -529,7 +523,7 @@ msgstr "%s hjemmeside"
 msgid "Show information about BOINC and %s"
 msgstr "Vis information om BOINC og %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -564,12 +558,12 @@ msgstr "&Værktøjer"
 msgid "&Help"
 msgstr "&Hjælp"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s – Stop med at bruge %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -579,39 +573,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Hvis du stopper med at bruge %s,\nvil du beholde alle dine nuværende projekter,\nmen du skal styre dem manuelt.\n\nVil du stoppe med at bruge %s?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s – Luk den nuværende klient ned …"
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s vil lukke den nuværende klient ned\nog vil derefter spørge efter en ny vært at forbinde til."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s har tilføjet %s med succes"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s – (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Forbinder til %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Forbundet til %s (%s)"
@@ -660,7 +654,7 @@ msgid "%s - Communication"
 msgstr "%s – Kommunikation"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "&Annullér"
@@ -735,7 +729,7 @@ msgid ""
 msgstr "%s er ikke forbundet til en %s-klient lige nu.\nBrug \"Avanceret\\Vælg computer …\"-menupunktet for at forbinde til en %s-klient.\nFor at forbinde til din lokale computer, brug \"localhost\" som værtsnavn."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Projekt-hjemmesider"
 
@@ -795,7 +789,7 @@ msgstr "%s har afbrudt forbindelsen til Internet."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s kunne ikke afbryde fra Internet."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -808,170 +802,170 @@ msgid ""
 "     user group."
 msgstr "Du er i øjeblikket ikke autoriseret til at styre klienten.\n\nFor at køre %s som denne bruger:\n  - geninstallér %s og svar \"Ja\" til spørgsmålet om\n    ikke-administrative brugere\n eller\n  - kontakt din administrator for at tilføje dig til brugergruppen\n    \"boinc_master\"."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "Ejerskab eller tilladelser for %s er ikke indstillet korrekt; geninstallér venligst %s.\n(Fejlkode %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " – "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "En genstart er nødvendig for, at BOINC kan køre ordentligt.\nGenstart venligst din computer og prøv igen."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC-håndtering"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC-håndtering blev startet automatisk af operativsystemet"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Start BOINC så kun ikonet i statusfeltet er synligt"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Mappe, der indeholder den eksekvérbare fil for BOINC-klienten"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "BOINC-datamappe"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Værtsnavn eller IP-adresse"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "GUI RPC portnummer"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Kodeord"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Start BOINC med disse valgfrie argumenter"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "deaktivér BOINCs sikkerhedsbrugere og -tilladelser"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "sæt tema-fejlfindingstilstand for at slå fejlbeskeder til for skinhåndtering"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "adskillige instanser af BOINC-håndtering tillades"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Bruges ikke: workaround for fejl i XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Kør ikke daemon"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Automatisk registrering)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Ukendt)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Brugerdefineret)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Åbn %s web …"
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Åbn %s …"
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Pause"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "GPU-pause"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Afslut"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Genoptag"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Genoptag GPU"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Beregning er slået til"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Beregning er suspenderet – "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU-beregning er slået til"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU-beregning er suspenderet – "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Netværksadgang er slået til"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Netværksadgang er suspenderet – "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Genforbinder til klienten."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Ikke forbundet til en klient."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s-meddelelser"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Der er nye meddelelser – klik for at se."
 
@@ -1086,46 +1080,6 @@ msgstr "For mere information, besøg"
 msgid "&OK"
 msgstr "&O.k."
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Ugyldigt tal"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Ugyldig tid; værdien skal være mellem 0:00 og 24:00, formatet er TT:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "Starttid skal være forskellig fra sluttid"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Tallet skal være mellem 0 og 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Tallet skal være mellem 0 og 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Nummeret skal være mellem 1 og 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "ugyldig input-værdi registreret"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Valideringsfejl"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Kassér lokale indstillinger og brug web-baserede indstillinger?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Bekræftelse"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1173,7 +1127,7 @@ msgid "Daily schedules"
 msgstr "Daglige planlægninger"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "O.k."
@@ -1188,7 +1142,7 @@ msgstr "Luk vinduet uden at gemme."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Hjælp"
@@ -1587,75 +1541,123 @@ msgstr "Overfør kun filer i en bestemt periode hver dag."
 msgid "Transfer files only between"
 msgstr "Overfør kun filer mellem"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Ugyldigt tal"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Ugyldig tid; værdien skal være mellem 0:00 og 24:00, formatet er TT:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Starttid skal være forskellig fra sluttid"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Tallet skal være mellem 0 og 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Tallet skal være mellem 0 og 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Nummeret skal være mellem 1 og 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "ugyldig input-værdi registreret"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Valideringsfejl"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Kassér lokale indstillinger og brug web-baserede indstillinger?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Bekræftelse"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s diagnostisk-logflag"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Disse flag aktiverer forskellige slags diagnostikbeskeder i hændelsesloggen."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Mere info …"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Gem alle værdier og luk vinduet"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "Standarder"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Genopret standardindstillinger"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Luk vinduet uden at gemme"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Anvend"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Gem alle værdier"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s – Hændelseslog"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projekt"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Tid"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Besked"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "Vis kun dette &projekt"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Kopiér &alle"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Kopiér alle beskederne til udklipsholderen."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Kopiér &valgte"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1663,7 +1665,7 @@ msgid ""
 "messages."
 msgstr "Kopiér de valgte beskeder til udklipsholderen. Du kan vælge flere beskeder ved at holde shift- eller command-tasten nede, mens du vælger."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1671,19 +1673,19 @@ msgid ""
 "messages."
 msgstr "Kopiér de valgte beskeder til udklipsholderen. Du kan vælge flere beskeder ved at holde shift- eller control-tasten nede, mens du vælger."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Luk"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Vis alle &beskeder"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Vis beskeder fra alle projekter."
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Vis kun beskeder for det valgte projekt"
 
@@ -1706,7 +1708,7 @@ msgid "Add an application to this list"
 msgstr "Tilføj en applikation til denne liste"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Fjern"
 
@@ -2040,14 +2042,14 @@ msgstr "Ressourcer"
 msgid "Estimated computation size"
 msgstr "Estimeret beregningsstørrelse"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "CPU-tid ved sidste checkpoint"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "CPU-tid"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "CPU tid siden milepæl"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Forløben tid"
@@ -2097,8 +2099,8 @@ msgstr "pr. sekund"
 msgid "Executable"
 msgstr "Eksekverbar"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Lokal:"
 
@@ -2457,203 +2459,191 @@ msgstr "Forskning"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Lær om projekter hos World Community Grid"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Starter klient"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Forbinder til klient"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Henter systemtilstand; vent venligst …"
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Manglende applikation"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Download og installér venligst CoRD-applikationen fra http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "på batterier"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "computeren er i brug"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "brugerforespørgsel"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "tidspunkt på dagen"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "kører CPU-ydelsesmåling"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "behøver diskplads – check indstillinger"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "computeren er ikke i brug"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "starter op"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "en eksklusiv applikation kører"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "CPU er optaget"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "begrænsning for netværksbåndbredde nået"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "forespurgt af operativsystem"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "ukendt begrundelse"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU mangler,"
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Ny"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Download mislykkedes"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Downloader"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr "(suspenderet – "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Projekt suspenderet af bruger"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Opgave suspenderet af bruger"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Suspenderet – "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU suspenderet – "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Venter på hukommelse"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Venter på delt hukommelse"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Kører"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (ikke CPU-intensiv)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Venter på at køre"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Klar til at starte"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Udsat:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Udsat"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "Venter på netværksadgang"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Beregningsfejl"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Upload mislykkedes"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Uploader"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Afbrudt af bruger"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Afbrudt af projekt"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Afbrudt: Ikke startet før frist"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Afbrudt: Diskgrænse for opgaver overskredet"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Afbrudt: Køretidsbegrænsning overskredet"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Afbrudt: Hukommelsesbegrænsning overskredet"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Afbrudt"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Anerkendt"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Klar til rapportering"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Fejl: Ugydig tilstand \"%d\""
@@ -2717,7 +2707,7 @@ msgstr "For at vælge et projekt skal du klikke på dets navn eller skrive dets
 msgid "Categories:"
 msgstr "Kategorier:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projekter:"
 
@@ -2761,24 +2751,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Du har allerede tilføjet dette projekt. Vælg venligst et andet projekt."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Kommunikerer med projekt."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Kommunikerer med projekt\nVent venligst …"
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Nødvendige filer blev ikke fundet på serveren."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Der er opstået en intern serverfejl."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Kommunikerer med projekt\nVent venligst …"
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2876,1024 +2863,938 @@ msgstr "Autoregistrering"
 msgid "SOCKS proxy"
 msgstr "SOCKS-proxy"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Brugsvilkår"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Tema"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Læs venligst følgende brugsvilkår:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Vælg udseende for brugergrænseflade."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Jeg er enig i brugsvilkårene."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Avanceret visning …\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Jeg er ikke enig i brugsvilkårene."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Vis den avancerede grafiske grænseflade."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projektet er midlertidigt utilgængeligt"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Konfigurér visningsvalgmuligheder og proxy-opsætning"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Projektet er midlertidigt utilgængeligt.\n\nPrøv venligst igen senere."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Vis diagnosticeringsbeskeder."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Kontohåndteringen er midlertidigt utilgængelig"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Kontohåndteringen er midlertidigt utilgængelig.\n\nPrøv venligst igen senere."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Standard"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Angiv venligst en kontonøgle for at fortsætte."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Suspendér"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Ugyldig kontonøgle; Indtast venligst en gyldig kontonøgle"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Suspendér beregning"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Valideringskonflikt"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Genoptag beregning"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Angiv venligst en emailadresse"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Meddelelser"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Ugyldig emailadresse; Indtast venligst en gyldig emailadresse"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Åbn en vindue, for at se meddelelser fra projekter eller BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Manglende URL"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Få hjælp til %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Angiv venligst en URL.\nFor eksempel:\nhttp://www.eksempel.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Henter meddelelser; vent venligst …"
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Ugyldig URL"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Der er ingen meddelelser på nuværende tidspunkt."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Angiv venligst en gyldig URL.\nFor eksempel:\nhttp://boincprojekt.eksempel.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Luk"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "\"%s\" indeholder ikke et gyldigt værtsnavn."
+msgid "%s - Notices"
+msgstr "%s – Meddelelser"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "\"%s\" indeholder ikke en gyldig sti."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Kommandoer"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Kopiér alle beskeder"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Kopier valgte beskeder"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Vis kun dette projekt"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Vis kun beskeder for det valgte projekt."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Beskeder"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Kopierer alle beskeder til udklipsholderen …"
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Kopierer de valgte beskeder til udklipsholderen …"
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtrerer beskeder …"
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Vis alle beskeder"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Vis beskeder fra alle projekter."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "For yderligere opsætning, vælg Beregningsindstillinger under Avanceret visning."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Henter meddelelser; vent venligst …"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB diskplads"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Der er ingen meddelelser på nuværende tidspunkt."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s – Beregningsindstillinger"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Meddelelser"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Kassér alle lokale indstillinger og brug web-baserede indstillinger?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Opdatér"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Rapportér alle færdige opgaver, hent seneste points, indstillinger, og hvis muligt, flere opgaver."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Suspendér"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Suspendér opgaver for dette projekt."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Ingen nye opgaver"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Hent ikke nye opgaver for dette projekt."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Nulstil projekt"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Sletter alle filer og opgaver tilhørende dette projekt og henter nye opgaver. Du kan opdatere projektet først for at rapportere eventuelle færdige opgaver."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Fjerner dette projekt. Igangværende opgaver vil blive tabt (brug \"Opdatér\" først for at rapportere eventuelle færdige opgaver)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Egenskaber"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Vis projektdetajler."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Konto"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Udført arbejde"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Gennemsnitligt udført arbejde"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Status"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projekter"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Opdaterer projekt …"
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Genoptager projekt …"
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Suspenderer projekt …"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Genoptag opgaver for dette projekt."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Tillader projektet at sende flere opgaver …"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Tillad nye opgaver"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Beder projektet om ikke at sende flere opgaver …"
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Tillad hentning af nye opgaver for dette projekt."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Nulstiller projekt …"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Hent ikke nye opgaver for dette projekt."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Er du sikker på, at du vil nulstille projektet \"%s\"?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Nulstil projekt"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Fjerner projekt …"
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Er du sikker på, at du vil fjerne projektet \"%s\"?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Fjern projekt"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Starter browser …"
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Tilføj projekt"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Genoptag opgaver for dette projekt."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Synkronisér"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Tillad nye opgaver"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Udført arbejde for dette projekt"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Tillad hentning af nye opgaver for dette projekt."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Meld dig som frivillig til en eller flere af de mere end 30 projekter indenfor videnskabens mange områder"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Hent ikke nye opgaver for dette projekt."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Synkronisér projekter med kontohåndteringssystem"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Forespurgt af bruger"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Vælg et projekt, der skal tilgås med knapperne herunder"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "For at hende arbejde"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Projektwebsider"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "For at rapportere færdiggjorte opgaver"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Projektkommandoer"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "For at sende sivebesked til server"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Vis en pop op-menu med hjemmesider for projektet %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Forespurgt af kontohåndtering"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Vis en menu med kommandoer for projektet %s"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Projektinitialisering"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Vis grafik"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Forespurgt af projekt"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Viser applikationsgrafik i et vindue."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Ukendt begrundelse"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Suspendér denne opgave."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Suspenderet af bruger"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Afbryd"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Henter ikke nye opgaver"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Opgiv denne opgave. Du vil ikke modtage points for den."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Projektet er slut – det er OK af fjerne"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Vis detaljer for opgave."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Fjernes når opgaver er færdige"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Genoptag arbejde for denne opgave."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Planlægger-forespørgsel afventer"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Suspendér arbejde for denne opgave."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Planlægger-forespørgsel igang"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Er du sikker på, at du vil afbryde denne opgave \"%s\"?\n(Udført: %.1lf%%, Status: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Sivebesked til server afventer"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Afbryd opgave"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Kommunikation udsat"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Du har ingen projekter. Tilføj venligst et projekt."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Total diskforbrug"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Ikke tilgængelig"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Diskforbrug af BOINC-projekter"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Opgaver:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "ingen projekter: 0 bytes brugt"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Vælg en opgave at tilgå"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "brugt af BOINC: "
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Fra:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "fri, tilgængeligt for BOINC: "
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Denne opgaves fremgang"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "fri, ikke tilgængeligt for BOINC: "
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Opgavekommandoer"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "fri: "
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Vis en menu med kommandoer for denne opgave"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "brugt af andre programmer: "
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Applikation: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Bruger-total"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Brugergennemsnit"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Applikation: ikke tilgængelig"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Vært-total"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Ikke tilgængelig"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Værtsgennemsnit"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Forløbet: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Seneste opdatering: %.0f dage siden"
+msgid "Remaining (estimated): %s"
+msgstr "Resterende (estimeret): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Vis bruger-total"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Status: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Vis total antal points for bruger"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Henter nuværende status."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Vis brugergennemsnit"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Henter arbejde fra serveren."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Vis løbende gennemsnitspoint for bruger"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Beregning suspenderet: Kører på batterier."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Vis vært-total"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Beregning suspenderet: Bruger er aktiv."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Vis total antal points for vært"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Beregning suspenderet: Bruger satte beregning på pause."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Vis værtsgennemsnit"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Beregning suspenderet: Tidspunkt på dagen."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Vis løbende gennemsnitspoint for vært"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Beregning suspenderet: Ydelsesmåling kører."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< &Forrige projekt"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Beregning suspenderet; der mangler diskplads"
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Vis graf for det forrige projekt"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Beregning suspenderet."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "&Næste projekt >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Venter på at kontakte projektservere."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Vis graf for det næste projekt"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Henter nuværende status"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Gem projektliste"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Intet arbejde tilgængeligt"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Brug hele området til grafer"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Kan ikke forbinde til kerneklienten"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Tilstandsvisning"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Brugsvilkår"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Et projekt"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Læs venligst følgende brugsvilkår:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Vis en graf over valgt projekt"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Jeg er enig i brugsvilkårene."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Alle projekter (separat)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Jeg er ikke enig i brugsvilkårene."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Vis alle projekter, en graf for hvert"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projektet er midlertidigt utilgængeligt"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Alle projekter (sammen)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Projektet er midlertidigt utilgængeligt.\n\nPrøv venligst igen senere."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Vis en graf med alle projekter"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Kontohåndteringen er midlertidigt utilgængelig"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Alle projekter (sum)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Kontohåndteringen er midlertidigt utilgængelig.\n\nPrøv venligst igen senere."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Vis en graf med sum for alle projekter"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Angiv venligst en kontonøgle for at fortsætte."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Statistik"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Ugyldig kontonøgle; Indtast venligst en gyldig kontonøgle"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Opdaterer grafer …"
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Valideringskonflikt"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Vis projektliste"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Angiv venligst en emailadresse"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Bruger mindre område for grafer"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Ugyldig emailadresse; Indtast venligst en gyldig emailadresse"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Prøv igen nu"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Manglende URL"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Prøv filoverførslen nu"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Angiv venligst en URL.\nFor eksempel:\nhttp://www.eksempel.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Afbryd overførsel"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Ugyldig URL"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Afbryd denne filoverførsel. Du får ikke points for opgaven."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Angiv venligst en gyldig URL.\nFor eksempel:\nhttp://boincprojekt.eksempel.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Fil"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "\"%s\" indeholder ikke et gyldigt værtsnavn."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Fremgang"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "\"%s\" indeholder ikke en gyldig sti."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Størrelse"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Kommandoer"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Forløben"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Kopiér alle beskeder"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Hastighed"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Kopier valgte beskeder"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Overførsler"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Vis kun dette projekt"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Netværksaktivitet er suspenderet – "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Vis kun beskeder for det valgte projekt."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nDu kan slå det til vha. menuen Aktivitet."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Beskeder"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Kopierer alle beskeder til udklipsholderen …"
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Prøver overførsel igen nu …"
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Kopierer de valgte beskeder til udklipsholderen …"
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Afbryder overførsel …"
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtrerer beskeder …"
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Er du sikker på du vil afbryde denne filoverførsel \"%s\"?\nBEMÆRK: Hvis du afbryder en overførsel, vil opgaven\ninvalideres, og du vil ikke få points for den."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Vis alle beskeder"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Afbryd filoverførsel"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Vis beskeder fra alle projekter."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Upload"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Konto"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Download"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Udført arbejde"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "prøv igen om "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Gennemsnitligt udført arbejde"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "mislykkedes"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Status"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "suspenderet"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projekter"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "aktiv"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Forespurgt af bruger"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "afventer"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "For at hende arbejde"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (projekt backoff:"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "For at rapportere færdiggjorte opgaver"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Vis aktive opgaver"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "For at sende sivebesked til server"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Vis kun aktive opgaver."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Forespurgt af kontohåndtering"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Vis grafik"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Projektinitialisering"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Viser applikationsgrafik i et vindue."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Forespurgt af projekt"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Vis VM-konsol"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Ukendt begrundelse"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Vis VM-konsol i et vindue."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Suspenderet af bruger"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Suspender arbejde for dette resultat."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Henter ikke nye opgaver"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Afbryd"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projektet er slut – det er OK af fjerne"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Opgiv arbejde på resultatet. Du vil ikke få points for det."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Fjernes når opgaver er færdige"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Vis detaljer for opgave."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Planlægger-forespørgsel afventer"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Resterende (estimeret)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Planlægger-forespørgsel igang"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Frist"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Sivebesked til server afventer"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Opgaver"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Kommunikation udsat"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Genoptager opgave …"
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Total diskforbrug"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Suspenderer opgave …"
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Diskforbrug af BOINC-projekter"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Viser grafik for opgave …"
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "ingen projekter: 0 bytes brugt"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Viser VM-konsol for opgave …"
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "brugt af BOINC: "
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Er du sikker på, at du vil afbryde denne opgave \"%s\"?\n(Udført: %s, Status: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "fri, tilgængeligt for BOINC: "
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Er du sikker på, at du vil afbryde disse %d opgaver?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "fri, ikke tilgængeligt for BOINC: "
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Afbryd opgave"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "fri: "
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Afbryder opgave …"
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "brugt af andre programmer: "
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Vis alle opgaver"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Bruger-total"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Vis alle opgaver."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Brugergennemsnit"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Genoptag arbejde for denne opgave."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Vært-total"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Suspendér arbejde for denne opgave."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Værtsgennemsnit"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Er du sikker på, at du vil annullere?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Seneste opdatering: %.0f dage siden"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Spørgsmål"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Vis bruger-total"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Servicer"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Vis total antal points for bruger"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "Gem %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Vis brugergennemsnit"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Gem andre"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Vis løbende gennemsnitspoint for bruger"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Vis alle"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Vis vært-total"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Afslut %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Vis total antal points for vært"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Tema"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Vis værtsgennemsnit"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Vælg udseende for brugergrænseflade."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Vis løbende gennemsnitspoint for vært"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Avanceret visning …\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Forrige projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Vis den avancerede grafiske grænseflade."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Vis graf for det forrige projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Konfigurér visningsvalgmuligheder og proxy-opsætning"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Næste projekt >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Vis diagnosticeringsbeskeder."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Vis graf for det næste projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Gem projektliste"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Standard"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Brug hele området til grafer"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Suspendér beregning"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Tilstandsvisning"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Genoptag beregning"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Et projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Åbn en vindue, for at se meddelelser fra projekter eller BOINC"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Vis en graf over valgt projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Få hjælp til %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Alle projekter (separat)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Luk"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Vis alle projekter, en graf for hvert"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s – Meddelelser"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Alle projekter (sammen)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "For yderligere opsætning, vælg Beregningsindstillinger under Avanceret visning."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Vis en graf med alle projekter"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "GB diskplads"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Alle projekter (sum)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s – Beregningsindstillinger"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Vis en graf med sum for alle projekter"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Kassér alle lokale indstillinger og brug web-baserede indstillinger?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statistik"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Tilføj projekt"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Vis projektliste"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Synkronisér"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Bruger mindre område for grafer"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Udført arbejde for dette projekt"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Prøv igen nu"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Meld dig som frivillig til en eller flere af de mere end 30 projekter indenfor videnskabens mange områder"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Prøv filoverførslen nu"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Synkronisér projekter med kontohåndteringssystem"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Afbryd overførsel"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Vælg et projekt, der skal tilgås med knapperne herunder"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Afbryd denne filoverførsel. Du får ikke points for opgaven."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Projektwebsider"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Fil"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Projektkommandoer"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Fremgang"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Vis en pop op-menu med hjemmesider for projektet %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Størrelse"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Vis en menu med kommandoer for projektet %s"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Forløben"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Suspendér denne opgave."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Hastighed"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Opgiv denne opgave. Du vil ikke modtage points for den."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Overførsler"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Er du sikker på, at du vil afbryde denne opgave \"%s\"?\n(Udført: %.1lf%%, Status: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Netværksaktivitet er suspenderet – "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Du har ingen projekter. Tilføj venligst et projekt."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nDu kan slå det til vha. menuen Aktivitet."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Ikke tilgængelig"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Opgaver:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Er du sikker på du vil afbryde denne filoverførsel \"%s\"?\nBEMÆRK: Hvis du afbryder en overførsel, vil opgaven\ninvalideres, og du vil ikke få points for den."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Vælg en opgave at tilgå"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Afbryd filoverførsel"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "Fra:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Upload"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Denne opgaves fremgang"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Download"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Opgavekommandoer"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "prøv igen om "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Vis en menu med kommandoer for denne opgave"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "mislykkedes"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Applikation: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "suspenderet"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "aktiv"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Applikation: ikke tilgængelig"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "afventer"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Ikke tilgængelig"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (projekt backoff:"
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Forløbet: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Vis aktive opgaver"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Resterende (estimeret): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Vis kun aktive opgaver."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Status: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Vis VM-konsol"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Henter nuværende status."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Vis VM-konsol i et vindue."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Henter arbejde fra serveren."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Suspender arbejde for dette resultat."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Beregning suspenderet: Kører på batterier."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Opgiv arbejde på resultatet. Du vil ikke få points for det."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Beregning suspenderet: Bruger er aktiv."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Resterende (estimeret)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Beregning suspenderet: Bruger satte beregning på pause."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Frist"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Beregning suspenderet: Tidspunkt på dagen."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Opgaver"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Beregning suspenderet: Ydelsesmåling kører."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Er du sikker på, at du vil afbryde denne opgave \"%s\"?\n(Udført: %s, Status: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Beregning suspenderet."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Er du sikker på, at du vil afbryde disse %d opgaver?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "Venter på at kontakte projektservere."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Vis alle opgaver"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Henter nuværende status"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Vis alle opgaver."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Intet arbejde tilgængeligt"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Er du sikker på, at du vil annullere?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Kan ikke forbinde til kerneklienten"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Spørgsmål"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3907,11 +3808,24 @@ msgstr "< &Tilbage"
 msgid "&Finish"
 msgstr "&Afslut"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "Beregn kun inden for dette tidsrum på denne ugedag:"
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Servicer"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Gem %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Gem andre"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Vis alle"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "Overfør kun filer inden for dette tidsrum på denne ugedag:"
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Afslut %s"
diff --git a/locale/da/BOINC-Project-Generic.po b/locale/da/BOINC-Project-Generic.po
deleted file mode 100755
index 64aad77..0000000
--- a/locale/da/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6845 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC Project (Generic) 6.x\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-10-12 18:56+0000\n"
-"Last-Translator: pryds <thomas at pryds.eu>\n"
-"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
-"Language: da\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1381604174.0\n"
-
-#, fuzzy
-msgid "LANG_NAME_NATIVE"
-msgstr "Danish"
-
-#, fuzzy
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Danish"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-#, fuzzy
-msgid "Default"
-msgstr "Slet"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-#, fuzzy
-msgid "Orange"
-msgstr "Skift"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Søg efter ord i forum-posts"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Søg i forummet"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Avanceret søgning"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Personlige beskeder"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Spørgsmål og svar (Q&A)"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Forum"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "Forum for %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Forfatter"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Meddelelse"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send message"
-msgstr "Send meddelelse"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send %1 a private message"
-msgstr "Send %1 en personlig meddelelse"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-#, fuzzy
-msgid "Posts: %1"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:596
-#, fuzzy
-msgid "Credit: %1"
-msgstr "Opret"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "You haven't read this message yet"
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "Unread"
-msgstr "ulæst"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-#, fuzzy
-msgid "Message %1"
-msgstr "Meddelelse"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "skjult"
-
-#: ../inc/forum.inc:625
-#, fuzzy
-msgid "Posted: %1"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-#, fuzzy
-msgid "Edit this message"
-msgstr "Send meddelelse"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
-msgid "Report as offensive"
-msgstr "Sidste indlæg"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Svar"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-#, fuzzy
-msgid "Quote"
-msgstr "Forlad holdet"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-#, fuzzy
-msgid "Posted %1 by %2"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-#, fuzzy
-msgid "More info"
-msgstr "Hold-info"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-#, fuzzy
-msgid "Banish author"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"For at starte et nyt emne i %t skal du have optjent points. Denne "
-"begrænsning er til for at forhindre misbrug af systemet."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Du kan ikke lave flere emner lige nu. Vent venligst et stykke tid før "
-"du prøver igen. Denne begrænsning er til for at forhindre "
-"misbrug af systemet."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Emne"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Indlæg"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Visninger"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Sidste indlæg"
-
-#: ../inc/forum.inc:1235
-#, fuzzy
-msgid "New posts in the thread %1"
-msgstr "Skriv indlæg"
-
-#: ../inc/forum.inc:1240
-#, fuzzy
-msgid "New posts in subscribed thread"
-msgstr "Tilmeld notificering"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Marker alle emner læst"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "Marker alle emner i alle fora 'læst'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Skole"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-#, fuzzy
-msgid "Created"
-msgstr "Opret"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Points ialt"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Løbende gennemsnit"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-#, fuzzy
-msgid "Application details"
-msgstr "Applikationer"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Jobs"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-#, fuzzy
-msgid "Merge"
-msgstr "Meddelelse"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rang"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Løbende gennemsnit"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-#, fuzzy
-msgid "Cross-project stats:"
-msgstr "Cross-project statistik"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-#, fuzzy
-msgid "All computers"
-msgstr "Computere"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-#, fuzzy
-msgid "Computer ID"
-msgstr "Computere"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Navn"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Indbakke"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Skriv"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Send personlig meddelelse"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Forhåndsvisning"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Til"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Bruger ID eller unikke brugernavne, separeret med komma"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Emne"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Send meddelelse"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Du kan ikke sende personlige meddelelser så ofte. Vent venligst et "
-"stykke tid før du sender flere meddelelser."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "ulæst"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "Personlige beskeder"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-#, fuzzy
-msgid "Edit preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-#, fuzzy
-msgid "Combined preferences"
-msgstr "Computer-indstillinger"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-#, fuzzy
-msgid "Edit %1 preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-#, fuzzy
-msgid "Add preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:948
-#, fuzzy
-msgid "Update preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-#, fuzzy
-msgid "Computation error"
-msgstr "Computere"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-#, fuzzy
-msgid "Done"
-msgstr "Ingen"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-#, fuzzy
-msgid "Task"
-msgstr "Jobs"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-#, fuzzy
-msgid "Computer"
-msgstr "Computere"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-#, fuzzy
-msgid "Sent"
-msgstr "Afsender"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-#, fuzzy
-msgid "Credit"
-msgstr "Opret"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-#, fuzzy
-msgid "Application"
-msgstr "Applikationer"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-#, fuzzy
-msgid "Application version"
-msgstr "Applikationer"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-#, fuzzy
-msgid "State"
-msgstr "Dato"
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Søge-kriterier (brug en eller flere)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Nøgleord"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Find hold med disse ord i deres navn eller beskrivelse"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Land"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Holdets type"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Vis kun aktive hold"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Søg"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Fuldfør overførslen af ejerskab"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Startet af dig"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "deadline for grundlæggerens svar er %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ingen"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Begynd forespørgsel"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Udskudt"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Hold-info"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Website"
-
-#: ../inc/team.inc:120
-#, fuzzy
-msgid "Cross-project stats"
-msgstr "Cross-project statistik"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Type"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Forum"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Emner"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Bliv medlem"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Note: hvis 'OK til email' er valgt i dine projekt-indstillinger vil hold-"
-"lederen af det hold du bliver medlem i få adgang til din email "
-"addresse."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Accepterer ikke nye medlemmer"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Medlemmer"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Hold-leder"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Admins"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Nye medlemmer siden igår"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Medlemmer ialt"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "se"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktive medlemmer"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Medlemmer med points"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Admin"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Næste %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Holdet findes ikke."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Denne funktion kræver at du er leder af holdet."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Denne funktion kræver at du har hold-administrator rettigheder"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Om sikkerheden%2: hvis du laver et hold vil dine projekt-indstillinger "
-"(dvs. resource-fordeling, grafik-indstillinger osv.) blive "
-"tilgængelige for offentligheden."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Hold navn, rentekst-udgave"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Brug ikke HTML tags."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Hold navn, HTML-udgave"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Du kan bruge %1nogle HTML tags%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Hvis ikke du kan HTML kan du lade feltet være tomt."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Holdets hjemmeside-URL, hvis den findes"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "uden \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-"Der vil blive linket til denne URL fra holdets side på dette website."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Beskrivelse af holdet"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projekter som du deltager i"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projekter som %1 deltager i"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Siden"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Udregninger og points"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Computere på denne konto"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Se"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Cross-project statistik"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Hold"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certifikat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistik på din mobil"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Konto-information"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Emailaddresse"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Postboks (områdenummer)"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "Medlem af %1 siden"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Skift"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "emailaddresse"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "password"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "anden konto-information"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Bruger ID"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Kontonøgle"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Indstillinger"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Hvornår og hvordan BOINC må bruge din computer"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Computer-indstillinger"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Forum og personlige meddelelser"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Forum-indstillinger"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1-indstillinger"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Slet"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Opret"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 indlæg"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Notificering"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Forlad holdet"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administrer"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Medlem af hold"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "find et hold"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Leder men ikke medlem af"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Find venner"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Venner"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Computere"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donor"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Denne person er en ven"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Afbryd venskab"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Forespørgsel igang"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Tilføj som ven"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "Log ud"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Opret en konto"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Du kan bruge BBCode-tags til at formatere din tekst"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identificerer dig på vores website. Brug dit rigtige navn eller et "
-"dæknavn."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Vælg det land, om noget, du gerne vil repræsentere."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Postbox (områdenummer)"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Ikke påkrævet"
-
-#: ../user/account_finish_action.php:27
-#, fuzzy
-msgid "You must supply a name for your account"
-msgstr "Du skal angive en invitationskode for at oprette en konto."
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Applikationer"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 har i øjeblikket følgende applikationer. Når du "
-"deltager i %1, vil jobs til en eller flere af disse applikationer blive "
-"tildelt til din computer. Den nyeste version af applikationen vil blive "
-"downloaded til din computer. Dette sker helt automatisk; du behøver "
-"ikke at foretage dig noget."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platform"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Installeret"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "Beskrivelse"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "Forlad holdet"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Hold"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-#, fuzzy
-msgid "User of the day"
-msgstr "Dagens Bruger"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profiler"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Top deltagere"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-#, fuzzy
-msgid "Top computers"
-msgstr "Computere"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-#, fuzzy
-msgid "Top teams"
-msgstr "Top %1 hold"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Læs vores regler og politik"
-
-#: ../user/create_account_action.php:26
-#, fuzzy
-msgid "Can't create account"
-msgstr "Opret brugerkonto"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Du skal angive en invitationskode for at oprette en konto."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Den invitationskode du angav var ikke korrekt."
-
-#: ../user/create_account_action.php:84
-#, fuzzy
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "Det skal være en gyldig adresse på formen 'navn at domain'."
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "Opret brugerkonto"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Denne brugerkonto vil blive tilmeldt holder '%1' og vil få tildelt "
-"projekt-indstillingers fra dette holds leder."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Invitationskode"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "A valid invitation code is required to create an account."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Emailaddresse"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Det skal være en gyldig adresse på formen 'navn at domain'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Password"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Skal være på mindst %1 bogstaver"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Bekræft password"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Opret brugerkonto"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "Opret brugerkonto"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "Kontonøgle"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "Din besked blev sendt."
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "Opret brugerkonto"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "Computere på denne konto"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-#, fuzzy
-msgid "Do not delete this account"
-msgstr "Computere på denne konto"
-
-#: ../user/delete_profile.php:30
-#, fuzzy
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-#, fuzzy
-msgid "Your profile has been deleted."
-msgstr "Din besked blev sendt."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-#, fuzzy
-msgid "%1 donations"
-msgstr "%1 indlæg"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-#, fuzzy
-msgid "Change email address of account"
-msgstr "emailaddresse"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "emailaddresse"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "Bekræft password"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-#, fuzzy
-msgid "Change the email address of your account"
-msgstr "emailaddresse"
-
-#: ../user/edit_email_form.php:37
-#, fuzzy
-msgid "New email address"
-msgstr "emailaddresse"
-
-#: ../user/edit_email_form.php:38
-#, fuzzy
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Det skal være en gyldig adresse på formen 'navn at domain'."
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Bekræft password"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "%1-indstillinger"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "Brug ikke HTML tags."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Emner"
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Indlæg"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Forum"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Forum og personlige meddelelser"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Tilføj bruger til filter"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "%1-indstillinger"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Svag kontonøgle"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Bekræft password"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Din besked blev sendt."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-#, fuzzy
-msgid "your account key"
-msgstr "Svag kontonøgle"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-#, fuzzy
-msgid "You must supply a name for your account."
-msgstr "Du skal angive en invitationskode for at oprette en konto."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-#, fuzzy
-msgid "Edit account information"
-msgstr "Konto-information"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Computere"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "Emailaddresse"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Send meddelelse"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Points der er i kø"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "emailaddresse"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Venner"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "emailaddresse"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Afsender"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Rang"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Send meddelelse"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Titel"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Tilføj min signatur til dette indlæg"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "Forum for %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Emne"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Tilføj min signatur til dette indlæg"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "ulæst"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "ulæst"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Emne"
-
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Spørgsmål og svar (Q&A)"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Emne"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Spørgsmål og svar (Q&A)"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Forum"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Tilmeld notificering"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Sidste indlæg"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Skriv indlæg"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "%1 indlæg"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Nuværende version"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Beskrivelse af holdet"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Opret nyt emne"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Opret nyt emne"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Skriv indlæg"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Skriv indlæg"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Meddelelse"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Tilføj min signatur til dette indlæg"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Sidste indlæg"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Sidste indlæg"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Ikke påkrævet"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Forum søgning"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Søg"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Søg i forummet"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 indlæg"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Resultater af forum søgning"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Ingen profiler passede med din søgning."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Ingen profiler passede med din søgning."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Beskrivelse af holdet"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Afmeld notificering"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-"prøv igen senere."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "Dette emne er blevet skjuldt af administrationelle årsager"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Afmeld notificering"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Tilmeld notificering"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Indlæg"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-#, fuzzy
-msgid "Add friend"
-msgstr "Tilføj som ven"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-#, fuzzy
-msgid "Cancel friendship?"
-msgstr "Afbryd venskab"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "anden konto-information"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Velkommen til %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Se og rediger dine konto-indstillinger ved at bruge nedenstående "
-"links."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Dagens Bruger"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Løbende gennemsnit"
-
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Applikationer"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Computere"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Navn"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-#, fuzzy
-msgid "created"
-msgstr "Opret"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Computere"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Holdet findes ikke."
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Meddelelse"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Ingen"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Computere på denne konto"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Computere"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Computere"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Brug ikke HTML tags."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Opret"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Du m&aring kun køre %1 på computere som du selv ejer eller hvor "
-"du har fået lov af ejeren. Nogle virksomheder og skoler har en "
-"computer-politik som forbyder at man bruger deres computere til projekter "
-"som %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Hvordan %1 vil bruge din computer"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Når du kører %1 på din computer vil den bruge en del af "
-"computerens CPU-kraft, diskplads og netværksbåndbredde. Du kan "
-"selv styre hvor mange af dine systemresourcer vil blive brugt af %1 - og "
-"hvornår de bliver brugt."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Arbejdet som din computer laver bidrager til %1's mål som beskrevet "
-"her på hjemmesiden. Applikationerne kan skifte fra tid til anden."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Informationspolitik"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Din brugetkonto på %1 er identificeret af et navn som du vælger. "
-"Dette navn vil blive vist på %1's website sammen med en opsummering "
-"af hvor meget arbejde din computer har fuldført for %1. Hvis du "
-"ønsker at være anonym bør du vælge et navn som "
-"ikke afslører din identitet."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Hvis du deltager i %1 vil information omkring din computer (som f.eks. dens "
-"processor type, mængden af hukkommelse, osv.) blive gemt af %1 og "
-"brugt til at afgøre hvilken type arbejde der sendes til din computer. "
-"Denne information vil også blive vist på %1's website. "
-"Information som kan afsløre computerens placering (som f.eks. "
-"domænenavn eller netværksadresse) vil dog ikke blive vist."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"For at deltage i %1 skal du angive en emailadresse hvor du kan modtage "
-"email. Denne adresse vil ikke blive vist p&aring %1's website og vil ikke "
-"blive delt med andre organisationer. %1 kan vælge at sende "
-"nyhedsbreve, som du kan tilmelde eller framelde dig hvornår det skal "
-"være."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Er det sikkert at køre %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Hver gang du downloader er program fra Internettet tager du en chance: "
-"programmet har måske farlige fejl eller download-serveren kan "
-"være blevet hacket. %1 har foretaget en solid indsats for at minimere "
-"disse risici. Vi har testet vores applikation for fejl. Vores servere er "
-"placeret bag en firewall og er blevet konfigureret til et højt "
-"sikkerhedsniveau. For at sikre integriteten af applikationerne bliver alle "
-"eksekverbare filer sikret med en digital signatur fra en computer der ikke "
-"er tilsluttet Internettet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Applikationerne som køres under %1 kan få nogle computere til "
-"at blive overbelastede pga. varme. Hvis dette sker bør du straks "
-"stoppe med at køre %1 og fremover kun køre %1 sammen med et %"
-"2add-on program%3 som begrænser CPU-forbruget."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 er udviklet af %2. BOINC er udviklet på 'University of California'."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Ansvarsfrasigelse"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 og %2 kan ikke holdes ansvarlige for skade på din computer, tab af "
-"data eller en hvilken som helst anden hændelse eller tilstand som "
-"måtte opstæ som resultat af deltagelse i %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Andre BOINC projekter"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Andre projekter bruger den samme platform, nemlig BOINC, som %1. Vi "
-"anbefaler at du overvejer at deltage i et eller flere andre af disse "
-"projekter. Ved at gøre dette vil din computer kunne udføre "
-"beregninger og arbejde selv når %1 ikke har arbejde til den."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Disse andre projekter har ingen sammenhæng med %1 og vi kan derfor "
-"ikke stå inde for deres sikkerhedspraksis eller deres forksning. "
-"Deltagelse sker på egen risiko."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-#, fuzzy
-msgid "Email address:"
-msgstr "Emailaddresse"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-#, fuzzy
-msgid "Password:"
-msgstr "Password"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Kør kun %1 på computere hvor du har lov til det"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Points der er i kø"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Points der er i kø"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Din besked blev sendt."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Du har ingen personlige meddelelser."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Afsender og dato"
-
-# 76%
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Computere på denne konto"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Computere på denne konto"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Afsender"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Dato"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Du skal udfylde alle felterne for at sende en personlig meddelelse"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Kunne ikke finde en bruger med id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Kunne ikke finde en bruger med brugernavn %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"%1 er ikke et unikt brugernavn; du bliver nødt til at bruge brugerens "
-"bruger-ID"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Brugeren %1 (ID: %2) accepterer ikke personlige meddelelser fra dig."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Skal %1 virkelig blokkeres?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Er du sikker på at du ønsker at blokkere %1 fra at sende dig "
-"personlige meddelelser?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Bemærk venligst at du kun kan blokkere et begrænset antal "
-"brugere."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Når brugeren er blevet blokkeret kan du genåbne adgangen igennem "
-"siden med forum-indstillinger."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nej, afbryd"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Bruger %1 er blokkeret"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-"Brugeren %1 er blevet blokkeret fra at sende dig personlige meddelelser."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "For at genåbne adgangen, besø %1forum-indstillingerne%2"
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "%1-indstillinger"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"%1Profiler%2 lader brugere dele deres baggrund og synspunkter med andre %"
-"3-brugere."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"Udforsk mangfoldigheden blandt de andre deltagere - og bidrag med dine egne "
-"synspunkter og holdninger"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"Hvis du ikke allere har gjort det kan du %1oprette din egen profil%2 "
-"så andre kan se den!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Dagens Bruger"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Bruger-profil Visning"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Se %1Brugernes Billedgalleri%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Gennemse profiler sortered %1efter land%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Gennemse profiler %1tilfældigt%2, %3tilfældigt med billeder%2, "
-"or %4tilfældigt uden billeder%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Alfabetisk profilliste:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Søg i profil-teksten"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Ingen profiler"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Ingen profiler passede med din søgning."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Bruger ID"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Applikationer"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Computere"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-#, fuzzy
-msgid "Find a team"
-msgstr "find et hold"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-#, fuzzy
-msgid "Create a new team"
-msgstr "Opret nyt emne"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Holdet findes ikke."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "Holdet findes ikke."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-#, fuzzy
-msgid "Create a team"
-msgstr "Opret nyt emne"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "Forum for %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Hold-info"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Forlad holdet"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Resultater af forum søgning"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top computere"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Top %1 hold"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Deltager siden"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Løbende gennemsnit"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Resultater af forum søgning"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Hold"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Ingen sådan bruger fundet"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Svag kontonøgle"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Der er lukket for oprettelse af nye brugerkonti"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Der er midlertidigt lukket for oprettelse af nye brugerkonto, men "
-#~ "prøv igen senere."
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "Holdet findes ikke."
-
-#, fuzzy
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Giver fuld adgang til din konto"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "NOTE: Hvis du bruger BOINC version 5.2+ sammen med BOINC Manageren skal du "
-#~ "ikke bruge denne side. Istedet skal du bare køre BOINC og vælge "
-#~ "'Attach Project' (eller 'Tilmeld projekt'), og indtaste en emailaddresse og "
-#~ "et password."
-
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Din 'svage kontonøgle' lader dig tilføje computere til din "
-#~ "konto til dette projekt uden at give mulighed for at logge ind på "
-#~ "kontoen eller ændre den på nogen måde."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Denne mekanisme virker kun på projekter som har opgraderet deres "
-#~ "software d. 7 Dec 2007 eller senere."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Din svage kontonøgle for dette projekt er:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "For at bruge din svage kontonøgle på en given maskine skal du "
-#~ "finde eller oprette 'konto filen' for projektet. Denne fil har et filnavn "
-#~ "på formen <b>account_PROJECT_URL.xml</b>. Konto-filen for %1 er <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr ""
-#~ "Opret denne fil hvis ikke den eksisterer allerede. Indholdet skal "
-#~ "være:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Din svage kontonøgle er baseret på dit password. Hvis du "
-#~ "ændrer dit password vil din svage kontonøgle også "
-#~ "ændres og den tidligere nøgle holder op med at virke."
-
-#~ msgid "Account key"
-#~ msgstr "Kontonøgle"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Giver fuld adgang til din konto"
-
-#~ msgid "Last %1"
-#~ msgstr "Sidste %1"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Resource-fordeling og grafik"
diff --git a/locale/da/BOINC-Setup.mo b/locale/da/BOINC-Setup.mo
index 54bae27..e832d45 100644
Binary files a/locale/da/BOINC-Setup.mo and b/locale/da/BOINC-Setup.mo differ
diff --git a/locale/da/BOINC-Setup.po b/locale/da/BOINC-Setup.po
index 0b4d749..fbff4be 100644
--- a/locale/da/BOINC-Setup.po
+++ b/locale/da/BOINC-Setup.po
@@ -1,40 +1,46 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Gabriel Siegel <gsiegel at gabsoft.dk>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-08 17:43+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Danish (http://www.transifex.com/projects/p/boinc/language/da/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-15 21:29+0000\n"
+"Last-Translator: Gabriel Siegel <gsiegel at gabsoft.dk>\n"
+"Language-Team: Danish (http://www.transifex.com/boinc/boinc/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Desværre, denne version af %s kræver system 10.5 eller nyere."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Beklager, denne version af %s kræver system 10.6 eller nyere."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Ja"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Nej"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Skal BOINC køre, selvom ingen bruger er logget ind?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -42,26 +48,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Brugere, som har tilladelse til at administrere denne computer, vil automatisk tillades at køre og styre %s.\n\nVil du også tillade ikke-administrative brugere at køre og styre %s på denne Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Vil du sætte %s som pauseskærm for alle %s-brugere på denne Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "O.k."
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Fejl ved rettigheder efter genstart"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Fjernelse kan tage adskillige minutter.\nVær venligst tålmodig."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +76,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Er du sikker på, at du vil fjerne %s fuldstændig fra din computer?\n\nDette vil fjerne de programfilerne men vil ikke røre ved %s datafiler."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Annulleret: %s er ikke ændret."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "En fejl opstod: fejlkode %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "navn på bruger"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Vil du også fjerne VirtualBox fra din computer?\n(VirtualBox blev installeret sammen med BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "Fjernelse fuldført.\n\n Du kan evt. fjerne de følgende tilbageblivende elementer vha. Finderen: \nmappen \"%s\"\n\nfor hver bruger, filen\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Indtast dit administrator-kodeord for fuldstændigt at fjerne %s fra din computer.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Annuller"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Fortsæt …"
diff --git a/locale/da/BOINC-Web.mo b/locale/da/BOINC-Web.mo
index 1a50d3d..6f9722f 100644
Binary files a/locale/da/BOINC-Web.mo and b/locale/da/BOINC-Web.mo differ
diff --git a/locale/da/BOINC-Web.po b/locale/da/BOINC-Web.po
old mode 100755
new mode 100644
index 6e746a5..10caccf
--- a/locale/da/BOINC-Web.po
+++ b/locale/da/BOINC-Web.po
@@ -1,974 +1,981 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
+# 
+# Translators:
+# Christoffer <netravnen+transifex at gmail.com>, 2015
+# Gabriel Siegel <gsiegel at gabsoft.dk>, 2017
+# Thomas Pryds <thomas at pryds.eu>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: BOINC Web 6.x\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2014-02-01 00:00 PST\n"
-"PO-Revision-Date: 2014-08-29 14:53+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
-"Language: da\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-15 21:01+0000\n"
+"Last-Translator: Gabriel Siegel <gsiegel at gabsoft.dk>\n"
+"Language-Team: Danish (http://www.transifex.com/boinc/boinc/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: doc\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1409324007.0\n"
-"X-Poedit-KeywordsList: tra\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "LANG_NAME_NATIVE"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "LANG_NAME_INTERNATIONAL"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! hjælper dig med at oprette og håndtere dine BOINC projektkonti og hjælper dig med indstillinger, med at melde dig på et hold eller oprette et nyt hold, med at forbinde dine computere til projekter og meget mere. Uanset om du er en ny eller en eksisterende BOINC bruger, hjælper BAM dig med at få mest muligt ud af BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "GridRepublic medlemmer kører en pauseskærm, som tillader deres computere at arbejde på forskningsprojekter af offentlig interesse mens deres maskiner ikke er i brug. Denne pauseskærm påvirker ikke ydelsen på værtscomputeren mere end en almindelig pauseskærm."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Søg"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "Tilbage til BOINC-hovedsiden"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Denne side kan %soversættes%s."
 
-#: download.php:39
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
-msgstr ""
+msgstr "Vi anbefaler, at du også installerer VirtualBox, så din computer kan arbejde på videnskabelige projekter, som kræver det."
 
-#: download.php:41
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
-msgstr ""
+msgstr "Lær mere om VirtualBox."
 
-#: download.php:51
-#, fuzzy
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
-msgstr "Download BOINC + Virtualbox"
+msgstr "Download BOINC + VirtualBox"
 
-#: download.php:54 download.php:69
+#. "for %s" identifies the operating system, e.g. "for Windows"
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
-msgstr ""
+msgstr "til %s"
 
-#: download.php:57 download.php:72
+#: doc/download.php:59 doc/download.php:74
 #, php-format
-msgid "BOINC version %s"
-msgstr ""
+msgid "BOINC %s"
+msgstr "BOINC v%s"
 
-#: download.php:59
+#: doc/download.php:61
 #, php-format
-msgid "VirtualBox version %s"
-msgstr ""
+msgid "VirtualBox %s"
+msgstr "VirtualBox v%s"
 
-#: download.php:67
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "Download BOINC"
 
-#: download.php:123
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
-msgstr ""
+msgstr "BOINC er et program, der lader dig donere din ubrugte computertid til videnskabelige projekter som SETI at home, Climateprediction.net, Rosetta at home, World Community Grid og mange andre."
 
-#: download.php:125
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
-msgstr ""
+msgstr "Efter du har installeret BOINC på din computer, kan du forbinde den til så mange af disse projekter, som du har lyst til."
 
-#: download.php:127
+#: doc/download.php:137
 msgid ""
-"You may run this software on a computer only if you own the computer or have "
-"the permission of its owner."
-msgstr ""
-"Du må kun køre denne software på en computer, hvis du ejer computeren eller "
-"har ejerens tilladelse til det."
+"You may run this software on a computer only if you own the computer or have"
+" the permission of its owner."
+msgstr "Du må kun køre denne software på en computer, hvis du ejer computeren eller har ejerens tilladelse til det."
 
-#: download.php:132
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
-msgstr ""
+msgstr "Vi anbefaler, at du downloader BOINC fra Google Play-butikken eller Amazon Appstore, ikke her fra."
 
-#: download.php:167
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Systemkrav"
 
-#: download.php:168
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Udgivelsesnoter"
 
-#: download.php:169 index.php:86
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Hjælp"
 
-#: download.php:170
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Alle versioner"
 
-#: download.php:171
+#: doc/download.php:181
 msgid "Version history"
 msgstr "Versionshistorik"
 
-#: download.php:172
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "GPU-beregning"
 
-#: download.php:190
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: beregn for videnskaben"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who "
-"can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr ""
-"BOINC onlinehjælp lader dig tale person-til-person med øvede BOINC-brugere, "
-"som kan: %s svare på spørgsmål om BOINC og frivillig beregning; %s lede dig "
-"gennem processen at installere og bruge BOINC; %s hjælpe med at løse ethvert "
-"problem, du måtte komme ud for."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system. "
-"Skype is free (both the software and the calls).  If you don't already have "
-"Skype, please %sdownload and install it now%s.  When you're finished, return "
-"to this page."
-msgstr ""
-"BOINC onlinehjælp er baseret på %sSkype%s, et Internetbaseret telefonsystem. "
-"Skype er gratis (både softwaren og opkaldene). Hvis du ikke allerede har "
-"Skype, kan du %sdownloade og installere det nu%s. Når du er færdig, kan du "
-"vende tilbage til denne side."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr ""
-"Den bedste måde at få hjælp er med lydopkald, til hvilket du har brug for "
-"enten indbygget mikrofon og højttalere eller et eksternt hovedtelefonsæt til "
-"din computer. Du kan også bruge Skype's tekstbaserede chat-system eller "
-"almindelig email (hvis du ikke har Skype) til kommunikation med frivillige "
-"hjælpere."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr ""
-"Frivillige, der taler adskilligfe sprog, er tilgængelige. Vælg venligst et "
-"sprog:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Bliv frivillig hjælper"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr ""
-"Hvis du er en øvet BOINC-bruger, opfordrer vi dig til at %sblive en "
-"frivillig hjælper%s. Det er en god måde at hjælpe videnskabelig forskning og "
-"frivillig beregning - og det er sjovt!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr ""
-"Hvis du allerede er frivillig hjælper: %sklik her%s for at redigere dine "
-"indstillinger."
-
-#: help_funcs.php:107
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr ""
-"BOINC-hjælpere er ubetalte frivillige. Deres råd er ikke godkendt af BOINC "
-"eller University of California."
-
-#: help_funcs.php:110
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr ""
-"Giv %1aldrig%2 information om emailadresse eller password til BOINC-"
-"hjælpere."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Computerkraft"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "Top-100 frivillige"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Statistik"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "24-timers gennemsnit:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOPS."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Aktive:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "frivillige,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "computere.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "24-timers gennemsnit:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOPS."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Nyheder"
 
-#: index.php:83
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Databasen er ikke tilgængelig; prøv venligst igen senere."
+
+#. "Volunteer" is used as a verb
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Deltag som frivillig"
 
-#: index.php:85
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Brug den ledige tid på din computer (Windows, Mac, Linux eller Android) til at helbrede sygdomme, studere global opvarmning, opdage pulsarer og foretage mange andre typer videnskabelig forskning. Det er sikkert og nemt:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Download"
 
-#: index.php:87 index.php:120 index.php:171
-msgid "Documentation"
-msgstr "Dokumentation"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Til Android-enheder kan du hente BOINC app'en i Google Play butikken og til Kindle enheder kan du hente den fra Amazon App butikken."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Du kan vælge at støtte %1projekter%2 så som %3, %4, og %5, samt mange andre."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Hvis du kører flere projekter, prøv da en %1kontomanager%2 som fx %3GridRepublic%4 eller %5BAM!%6."
+
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Få mere at vide:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Forum"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projekter"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Manual"
 
-#: index.php:88
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Tilføjelser"
 
-#: index.php:89
+#: doc/index.php:124
 msgid "Links"
 msgstr "Links"
 
-#: index.php:94
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure "
-"diseases, study global warming, discover pulsars, and do many other types of "
-"scientific research.  It's safe, secure, and easy:"
-msgstr ""
-"Brug den ledige tid på din computer (Windows, Mac, Linux eller Android) til "
-"at helbrede sygdomme, studere global opvarmning, opdage pulsarer og foretage "
-"mange andre typer videnskabelig forskning. Det er sikkert og nemt:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Andre måder at hjælpe på:"
 
-#: index.php:96
-msgid "Choose projects"
-msgstr "Vælg projekter"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Oversigt"
 
-#: index.php:97
-msgid "Download BOINC software"
-msgstr "Download BOINC-software"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Oversæt"
 
-#: index.php:98
-msgid "Enter an email address and password."
-msgstr "Angiv en emailadresse og kodeord."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Test"
 
-#: index.php:102
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as %"
-"sGridRepublic%s or %sBAM!%s. "
-msgstr ""
-"Eller, hvis du vil køre flere projekter, prøv en %skontohåndtering%s, så som "
-"%sGridRepublic%s eller %sBAM!%s. "
+#: doc/index.php:135
+msgid "Document"
+msgstr "Dokument"
+
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Offentliggør"
 
-#: index.php:118
-msgid "Compute with BOINC"
-msgstr "Beregn med BOINC"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Rapporter fejl"
 
-#: index.php:121
-msgid "Software updates"
-msgstr "Software-opdateringer"
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "\"High-throughput\" beregning med BOINC"
 
-#: index.php:128
+#: doc/index.php:150
 msgid ""
-"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving "
-"you the computing power of thousands of CPUs."
-msgstr ""
-"%1Forskere%2: brug BOINC til at oprette et %3frivilligt beregningsprojekt%4, "
-"der giver dig computerkraften fra tusinder af CPU'er."
+"%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
+"giving you the power of thousands of CPUs and GPUs."
+msgstr "%1Forskere%2: Brug BOINC til at oprette et %3beregningsprojekt for frivillige%4, som giver dig kræfterne fra tusinder af processorer og grafikkort."
 
-#: index.php:132
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
-msgstr ""
-"%1Universiteter%2: brug BOINC til at oprette et %3virtuelt supercomputer-"
-"center på campus%4."
+msgstr "%1Universiteter%2: brug BOINC til at oprette et %3virtuelt supercomputer-center på campus%4."
 
-#: index.php:137
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Virksomheder%2: brug BOINC til %3grid-computing på skrivebordet%4."
 
-#: index.php:149
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC og Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Softwareudvikling"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC er en software platform til frivillig beregning. Det omfatter en klient, en server, webkomponenter samt  API'er til at forbinde til andre komponenter."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Kildekode"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Byg BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Designdokumenter"
+
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Vi er altid på udkig efter programmører til at hjælpe os med at vedligeholde og videreudvikle BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Udviklingsproces"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Udviklingsopgaver"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC distribueres i henhold til open-source licensen LGPL."
+
+#: doc/index.php:200
 msgid "The BOINC project"
 msgstr "BOINC-projektet"
 
-#: index.php:155
-msgid "Message boards"
-msgstr "Forum"
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC er et fællesskabsbaseret projekt. Alle er velkomne til at deltage."
 
-#: index.php:156
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "Email-lister"
 
-#: index.php:157
-msgid "Personnel and contributors"
-msgstr "Personale og bidragere"
-
-#: index.php:158
+#: doc/index.php:208
 msgid "Events"
 msgstr "Arrangementer"
 
-#: index.php:159
-msgid "Papers and talks"
-msgstr "Artikler og forelæsninger"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Grafik"
 
-#: index.php:160
-msgid "Research projects"
-msgstr "Forskningsprojekter"
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Styring"
 
-#: index.php:161
-msgid "Logos and graphics"
-msgstr "Logoer og grafik"
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Live hjælp via Skype eller email"
 
-#: index.php:162
-msgid "and"
-msgstr "og"
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Live Hjælp giver dig en-til-en hjælp af en erfaren BOINC bruger, som kan svare på spørgsmål om BOINC og hjælpe dig med at installere og anvende BOINC samt fejlsøge på problemer."
 
-#: index.php:166
-msgid "Help wanted"
-msgstr "Hjælp ønskes"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Du kan kommunikere med en hjælper"
 
-#: index.php:168
-msgid "Programming"
-msgstr "Programmering"
+#: doc/help.php:16
+msgid "by email"
+msgstr "via email"
 
-#: index.php:169
-msgid "Translation"
-msgstr "Oversættelse"
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\nvia opkald med %1Skype%2, et gratis internetbaseret telefonisystem. Hvis du ikke allerede har Skype, kan du %3downloade og installere det nu%4. Når du er færdig, vend da tilbage til denne side."
 
-#: index.php:170
-msgid "Testing"
-msgstr "Testning"
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "via Skype chat"
 
-#: index.php:172
-msgid "Publicity"
-msgstr "Publicity"
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Frivillige der taler mange forskellige sprog er tilgængelige. Vælg venligst et sprog (antal hjælpere vises):"
 
-#: index.php:174
-msgid "Software development"
-msgstr "Softwareudvikling"
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Bliv frivillig hjælper"
 
-#: index.php:175
-msgid "APIs for add-on software"
-msgstr "API'er for tilføjelsessoftware"
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Hvis du er en øvet BOINC-bruger, opfordrer vi dig til at %sblive en frivillig hjælper%s. Det er en god måde at hjælpe videnskabelig forskning og frivillig beregning – og det er sjovt!"
 
-#: index.php:217
+#: doc/help.php:52
 #, php-format
 msgid ""
-"Open-source software for %svolunteer computing%s and %sgrid computing%s."
-msgstr ""
-"Software med åben kildekode til %sfrivillig beregning%s og %sgrid-beregning%"
-"s."
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Hvis du allerede er frivillig hjælper: %sklik her%s for at redigere dine indstillinger."
 
-#: index.php:230
-msgid "BOINC is based at The University of California, Berkeley"
-msgstr "BOINC har base på The University of California, Berkeley"
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "BOINC hjælpere er ulønnede frivillige. Deres råd er ikke godkendt af BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "Giv %1aldrig%2 information om emailadresse eller adgangskode til BOINC-hjælpere."
 
-#: projects.inc:14
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Distribueret føling"
 
-#: projects.inc:19
-msgid "Stanford University"
-msgstr "Stanford Universitet"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:20
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Seismologi"
 
-#: projects.inc:21
+#: doc/projects.inc:26
 msgid ""
-"The Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to Internet-connected computers.  You must buy a "
-"sensor to participate."
-msgstr ""
-"The Quake-Catcher Network udvikler verdens største seismiske netværk ved "
-"brug af sensorer, der er sat til Internet-tilsluttede computere. Du skal "
-"købe en sensor for at deltage."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Netværket benytter sensorer forbundet til computere og smartphones til at opfange seismiske bølger."
 
-#: projects.inc:27
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "BOINC Fond Polen "
 
-#: projects.inc:28
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Miljøforskning"
 
-#: projects.inc:29
-msgid ""
-"This project is creating a free and continuously updated map of radiation "
-"levels by using sensors connected to volunteers' computers.  You must buy a "
-"sensor to participate."
-msgstr ""
-"Dette projekt opretter et frit og løbende opdateret kort over "
-"strålingsniveauer ved hjælp af sensorer tilsluttet frivilliges computere. Du "
-"skal købe en sensor for at deltage."
-
-#: projects.inc:33
+#: doc/projects.inc:36
 msgid ""
-"To participate in these projects you must buy a sensor and attach it to your "
-"computer."
-msgstr ""
-"For at deltage i dette projekt skal du købe en sensor og slutte den til din "
-"computer."
+"Radioactive at Home is creating a free and continuously updated map of "
+"radiation levels using sensors connected to volunteers' computers.  You must"
+" buy a sensor to participate."
+msgstr "Radioactive at Home opbygger et gratis og løbende opdateret kort over strålingsniveauer ved at benytte sensorer forbundet til de frivillige deltageres computere. Du skal købe en sensor for at deltage."
 
-#: projects.inc:37
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Kognitiv videnskab og kunstig Intelligens"
 
-#: projects.inc:60 projects.inc:364 projects.inc:408 projects.inc:457
-#: projects.inc:464 projects.inc:511
-msgid "Private"
-msgstr "Privat"
+#: doc/projects.inc:51
+msgid "Cognitive Science"
+msgstr "Kognitiv videnskab"
 
-#: projects.inc:61
+#: doc/projects.inc:52
+msgid ""
+"MindModeling at Home uses computational cognitive process modeling to better "
+"understand the human mind, and specifically to study the mechanisms and "
+"processes that enable and moderate human performance and learning."
+msgstr "MindModeling at Home anvender beregningsmæssig kognitiv procesmodellering til bedre at forstå det menneskelige sind og til specifikt at studere de mekanismer og processer som muliggør og styrer menneskelig præstation og læring."
+
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Uafhængig"
+
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Kunstig Intelligens"
 
-#: projects.inc:62
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
 "databases, and part of speech taggers in order to imitate human behavior in "
 "conversations."
-msgstr ""
-"Analysere og konvertere semantiske net for brug i FreeHAL, en kunstig "
-"intelligens, der bruger semantiske netværk, stemmers, dele af taledatabaser "
-"og dele af taletaggers for at imitere menneskelig opførsel i konversationer."
+msgstr "Analysér og konvertér semantiske net for brug i FreeHAL, en kunstig intelligens, der bruger semantiske netværk, stemmers, dele af taledatabaser og dele af taletaggers for at imitere menneskelig opførsel i konversationer."
 
-#: projects.inc:69
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biologi og medicin"
 
-#: projects.inc:82
+#: doc/projects.inc:88
+msgid "Medical physiology"
+msgstr "Medicinsk fysiologi"
+
+#: doc/projects.inc:89
+msgid ""
+"DENIS at Home does cardiac electrophysiological simulations, studying the "
+"electrical activity of the heart."
+msgstr "DENIS at Home udfører elektrofysiologiske hjertesimulationer for at undersøge hjertets elektriske aktivitet."
+
+#: doc/projects.inc:98
+msgid "Molecular biology"
+msgstr "Molekylærbiologi"
+
+#: doc/projects.inc:99
+msgid ""
+"RNA World seeks to identify, analyze, structurally predict and design RNA "
+"molecules on the basis of established bioinformatics software."
+msgstr "RNA World søger at identificere, analysere, strukturelt forudsige og designe RNA molekyler på basis af etableret bioinformationssoftware."
+
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "University College Dublin"
 
-#: projects.inc:83
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
-msgstr "Antimateriel medicinopdagelse"
+msgstr "Antimalariel medicinopdagelse"
 
-#: projects.inc:84
+#: doc/projects.inc:109
 msgid ""
-"The parasite that causes malaria continues to evolve resistance to available "
-"medication. We therefore urgently need to discover new drugs to replace "
-"existing drugs. Importantly, these new drugs need to target NEW proteins in "
-"the parasite. The FightMalaria at Home project is aimed at finding these new "
-"targets."
-msgstr ""
-"Parasitten, som er årsag til malaria, fortsætter med at udvikle resistens "
-"mod tilgængelig medicin. Derfor haster det med at opdage ny medicin til at "
-"erstatte eksisterende medicin. En vigtig forudsætning er, at den nye medicin "
-"er målrettet mod NYE proteiner i parasitten. FightMalaria at Home-projektet er "
-"rettet mod at finde disse nye mål."
+"The parasite that causes malaria continues to evolve resistance to available"
+" medication. We therefore urgently need to discover new drugs, targeting new"
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Parasitten som forårsager malaria udvikler løbende resistens overfor den tilgængelige medicin. Vi har derfor akut behov for at opdage nye lægemidler, som går målrettet efter nye proteiner i parasitten. Find at Home projektet har som formål at finde disse nye mål."
 
-#: projects.inc:90
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Karlsruhe Universitet (Tyskland)"
 
-#: projects.inc:91
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Forudsigelse af proteinstruktur"
 
-#: projects.inc:92
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
 "the proteins interact with one another, to understand diseases related to "
-"protein malfunction or aggregation, and to develop new drugs on the basis of "
-"the three-dimensions structure of biologically important proteins."
-msgstr ""
-"POEM at home bruger en beregningsmæssig tilgang for at forudsige proteiners "
-"biologisk aktive struktur, for at forstå mekanismerne for signalbehandling "
-"når proteiner interagerer med hinanden, for at forstå sygdomme relateret "
-"proteinfejl og aggregering, og for at udvikle nye medikamenter baseret på "
-"biologisk vigtige proteiners basale tredimentionelle struktur."
-
-#: projects.inc:98
-msgid "University of Delaware"
-msgstr "Delaware Universitet"
-
-#: projects.inc:99
-msgid "Study of protein - ligand interactions"
-msgstr ""
-
-#: projects.inc:100
-msgid ""
-"Docking at Home has both bioscience and computer science goals. The project "
-"aims to further knowledge of the atomic details of protein-ligand "
-"interactions and, by doing so, will search for insights into the discovery "
-"of novel pharmaceuticals."
-msgstr ""
+"protein malfunction or aggregation, and to develop new drugs on the basis of"
+" the three-dimensions structure of biologically important proteins."
+msgstr "POEM at home bruger en beregningsmæssig tilgang for at forudsige proteiners biologisk aktive struktur, for at forstå mekanismerne for signalbehandling når proteiner interagerer med hinanden, for at forstå sygdomme relateret proteinfejl og aggregering, og for at udvikle nye medikamenter baseret på biologisk vigtige proteiners basale tredimentionelle struktur."
 
-#: projects.inc:114
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Barcelona Biomedicinsk Forskningspark (PRBB)"
 
-#: projects.inc:115
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Molekylære simuleringer af proteiner"
 
-#: projects.inc:116
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
 "New biomedical applications suddenly become possible giving a new role to "
 "computational biology for biomedical research."
-msgstr ""
-
-#: projects.inc:122
-msgid "Technion, Israel"
-msgstr "Technion, Israel"
+msgstr "GPUGrid.net åbner op for nye beregningsmæssige scenarier via den første helatomsmolekylære dynamiske kode (CellMD) specielt optimeret til at køre på nVidia grafikkort. Nye biomedicinske anvendelser bliver pludselig muliggjort, hvilket giver en ny rolle til beregningsmæssig biologi til biomedicinsk forskning."
 
-#: projects.inc:123
-msgid "Genetic linkage analysis"
-msgstr ""
-
-#: projects.inc:124
-msgid ""
-"Superlink at Technion helps geneticists all over the world find disease-"
-"provoking genes causing some types of diabetes, hypertension (high blood "
-"pressure), cancer, schizophrenia and many others."
-msgstr ""
-
-#: projects.inc:138
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
-msgstr ""
+msgstr "University of Maryland Center for Bioinformatik og Beregningsmæssig Biologi"
 
-#: projects.inc:139
+#: doc/projects.inc:176
 msgid "Life science research"
-msgstr ""
+msgstr "Biovidenskabelig forskning"
 
-#: projects.inc:140
+#: doc/projects.inc:177
 msgid ""
-"The Lattice Project supplies computing power to scientists at the University "
-"of Maryland studying evolutionary relationships based on DNA sequence data; "
-"bacterial, plasmid, and virus protein sequences; and biological diversity in "
-"nature reserves. "
-msgstr ""
+"The Lattice Project, developed and administered at the University of "
+"Maryland, supplies computing power to researchers worldwide who are studying"
+" evolutionary relationships using DNA and protein sequence data."
+msgstr "Gitterprojektet udviklet og administreret af University of Maryland giver regnekraft til forskere verden over som studerer evolutionære relationer ved hjælp af DNA og proteinsekvensdata."
 
-#: projects.inc:146
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
-msgstr ""
+msgstr "Det Schweiziske Tropeinstitut"
 
-#: projects.inc:147
+#: doc/projects.inc:186
 msgid "Epidemiology"
-msgstr ""
+msgstr "Epidemologi"
 
-#: projects.inc:148
+#: doc/projects.inc:187
 msgid ""
-"Simulation models of the transmission dynamics and health effects of malaria "
-"are an important tool for malaria control. They can be used to determine "
+"Simulation models of the transmission dynamics and health effects of malaria"
+" are an important tool for malaria control. They can be used to determine "
 "optimal strategies for delivering mosquito nets, chemotherapy, or new "
 "vaccines which are currently under development and testing.  Such modeling "
 "is extremely computer intensive, requiring simulations of large human "
 "populations with a diverse set of parameters related to biological and "
 "social factors that influence the distribution of the disease. "
-msgstr ""
+msgstr "Simuleringer af transmissionsdynamik og helbredsmæssige virkninger af malaria er et vigtigt redskab i forbindelse med malariabekæmpelse. De kan bruges til at fastslå optimale strategier for leverance af myggenet, kemoterapi eller nye vacciner som nu er under udvikling og test. Sådanne simuleringer er ekstremt beregningstunge og kræver simulering af store menneskelige befolkningsgrupper med en stor mængde parametre relateret til biologiske og sociale faktorer, som har betydning fo [...]
 
-#: projects.inc:170
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Washington Universitet"
 
-#: projects.inc:171 projects.inc:179
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biologi"
 
-#: projects.inc:172
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
 "Rosetta at home you will help us speed up and extend our research in ways we "
 "couldn't possibly attempt without your help. You will also be helping our "
-"efforts at designing new proteins to fight diseases such as HIV, Malaria, "
-"Cancer, and Alzheimer's"
-msgstr ""
-
-#: projects.inc:178
-msgid "University of Vienna"
-msgstr "Wien Universitet"
-
-#: projects.inc:180
-msgid ""
-"Calculate similarities between proteins. SIMAP provides a public database of "
-"the resulting data, which plays a key role in many bioinformatics research "
-"projects."
-msgstr ""
+"efforts at designing new proteins to fight diseases such as HIV, malaria, "
+"cancer, and Alzheimer's"
+msgstr "Fastslå den tredimensionale form af proteiner til brug for forskning, der i sidste ende kan føre til at finde en kur mod nogle af de væsentligste menneskelige sygdomme. Ved at køre Rosetta at home hjælper du os med at accelerere og udvide vores forskning på en måde vi umuligt kunne forsøge uden din hjælp. Du vil også hjælpe os i vores bestræbelser på at designe nye proteiner til at bekæmpe sygdomme såsom HIV, malaria, kræft og Alzheimers."
 
-#: projects.inc:186
+#: doc/projects.inc:231
 msgid "Earth Sciences"
-msgstr ""
+msgstr "Geovidenskaber"
 
-#: projects.inc:198
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Oxford Universitet"
 
-#: projects.inc:199
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Klimastudier"
 
-#: projects.inc:200
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
 "how the model responds to slight tweaks to these approximations - slight "
-"enough to not make the approximations any less realistic. This will allow us "
-"to improve our understanding of how sensitive our models are to small "
+"enough to not make the approximations any less realistic. This will allow us"
+" to improve our understanding of how sensitive our models are to small "
 "changes and also to things like changes in carbon dioxide and the sulphur "
 "cycle. This will allow us to explore how climate may change in the next "
 "century under a wide range of different scenarios."
-msgstr ""
+msgstr "Undersøg de approksimationer, der er nødt til at blive lavet i de førende klimamodeller. Ved at køre modellen tusinder af gange, håber vi på at finde ud af, hvordan modellerne reagerer på mindre justeringer i disse approksimationer - små nok til ikke at gøre approksimationerne mindre realistiske. Dette vil hjælpe os til en bedre forståelse for, hvor følsomme vores modeller er overfor små ændringer og også overfor ting som ændringer i kuldioxid og i svovlkredsløbet. Dette vil gøre [...]
 
-#: projects.inc:207
+#: doc/projects.inc:253
 msgid "Physical Science"
-msgstr ""
-
-#: projects.inc:213
-msgid "Mechanical engineering"
-msgstr ""
-
-#: projects.inc:214
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr ""
+msgstr "Fysisk videnskab"
 
-#: projects.inc:224 projects.inc:263 projects.inc:271
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomi"
 
-#: projects.inc:225
+#: doc/projects.inc:270
 msgid ""
-"We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to "
-"generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby "
-"Universe. We will measure physical parameters (such as stellar mass surface "
-"density, star formation rate surface density, attenuation, and first-order "
-"star formation history) on a resolved pixel-by-pixel basis using spectral "
-"energy distribution (SED) fitting techniques in a distributed computing mode."
-msgstr ""
-
-#: projects.inc:247
-msgid "University of Texas at Austin"
-msgstr ""
-
-#: projects.inc:248 projects.inc:279
-msgid "Chemistry"
-msgstr "Kemi"
+"TheSkyNet POGS is an astronomy project studying 16 different properties of "
+"galaxies, including brightness, mass, amount of dust and how fast stars are "
+"forming. We are using your processing power to conduct pixel-by-pixel "
+"calculations on multi-wavelength (ultraviolet, optical and near-infrared "
+"light) images of galaxies to produce an atlas that will help astronomers to "
+"better understand the distant universe."
+msgstr "TheSkyNet POGS er et astronomiprojekt som studerer 16 forskellige galaktiske egenskaber herunder lysstyrke, masse, støvmængde og hvor hurtigt stjerner dannes. Vi bruger din regnekraft til at udføre pixel-for-pixel beregninger på multibølgelængdebilleder (ultraviolet, synligt og nær-infrarødt lys) af galakser for at opbygge et atlas, som vil hjælpe astronomer til bedre at forstå de fjerntliggende dele af vores univers."
+
+#: doc/projects.inc:280 doc/projects.inc:366
+msgid "Astrophysics"
+msgstr "Astrofysik"
 
-#: projects.inc:249
+#: doc/projects.inc:281
 msgid ""
-"A common problem in theoretical chemistry, condensed matter physics and "
-"materials science is the calculation of the time evolution of an atomic "
-"scale system where, for example, chemical reactions and/or diffusion occur. "
-"Generally the events of interest are quite rare (many orders of magnitude "
-"slower than the vibrational movements of the atoms), and therefore direct "
-"simulations, tracking every movement of the atoms, would take thousands of "
-"years of computer calculations on the fastest present day computer before a "
-"single event of interest can be expected to occur.  Our research group is "
-"interested in calculating the long time dynamics of systems."
-msgstr ""
+"The aim of the project is to derive shapes and spin for a significant part "
+"of the asteroid population. As input data, we use any asteroid photometry "
+"that is available. The results are asteroid convex shape models with the "
+"direction of the spin axis and the rotation period."
+msgstr "Projektets mål er at udlede form og rotation på en betydelig mængde af asteroiderne. Som inputdata bruger vi den tilgængelige asteroidefotometri. Resultatet er modeller over asteroidernes konvekse form inklusiv rotationsaksens retning og rotationsperioden."
 
-#: projects.inc:262
+#: doc/projects.inc:317
 msgid "University of Illinois at Urbana-Champaign"
-msgstr ""
+msgstr "University of Illinois ved Urbana-Champaign"
 
-#: projects.inc:264
+#: doc/projects.inc:319
 msgid ""
 "The goal of Cosmology at Home is to search for the model that best describes "
 "our Universe and to find the range of models that agree with the available "
 "astronomical particle physics data."
-msgstr ""
-"Målet for Cosmology at Home er at søge efter den model, der bedst beskriver "
-"vores univers, og at finde den mængde modeller, som passer sammen med den "
-"eksisterende atronomiske data for partikelfysik."
+msgstr "Målet for Cosmology at Home er at søge efter den model, der bedst beskriver vores univers, og at finde den mængde modeller, som passer sammen med den eksisterende atronomiske data for partikelfysik."
+
+#: doc/projects.inc:329
+msgid ""
+"Universe at Home aims to create the first database of the simulated stellar "
+"content of the Universe, from the earliest stars to the most exotic black "
+"hole binaries."
+msgstr "Universe at Home har som mål at opbygge den første database over det simulerede stjerneindhold i universet fra de første stjerner til de meste eksotiske binære sorte huller."
+
+#: doc/projects.inc:332
+msgid "Do research in physics and astronomy"
+msgstr "Gør forskning i fysik og astronomi"
 
-#: projects.inc:270
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Rensselaer polyteknisk institut"
 
-#: projects.inc:272
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
-msgstr ""
-"Målet for Milkyway at Home er at skabe en yderst præcis tredimentionel model af "
-"vores galakse, Mælkevejen, ved hjælp af data, der er samlet af the Sloan "
-"Digital Sky Survey."
+msgstr "Målet for Milkyway at Home er at skabe en yderst præcis tredimentionel model af vores galakse, Mælkevejen, ved hjælp af data, der er samlet af the Sloan Digital Sky Survey."
 
-#: projects.inc:278
+#: doc/projects.inc:342
+msgid "Study the structure of the Milky Way galaxy"
+msgstr "Studer strukturen af galaksen Mælkevejen"
+
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Leiden Universitet, Holland"
 
-#: projects.inc:280
+#: doc/projects.inc:348
+msgid "Chemistry"
+msgstr "Kemi"
+
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
-"calculations to the grid. Each user has his own personal queue for Classical "
-"Dynamics jobs. In this way students have used the grid to simulate liquid "
+"calculations to the grid. Each user has his own personal queue for Classical"
+" Dynamics jobs. In this way students have used the grid to simulate liquid "
 "argon, or to test the validity of the ideal gas law by actually doing the "
 "simulations through the grid."
-msgstr ""
+msgstr "Overfladevidenskabelige beregninger vha. klassisk dynamik. Leiden Classical lader frivillige, studerende og forskere indsende deres personlige beregninger til netværket. Hver bruger har sin egen personlige kø af klassiskdynamiske jobs. På denne måde har studerende benyttet netværket til at simulerer flydende argon, eller til at teste gyldigheden af idealgasloven ved faktisk at udføre simulationerne gennem netværket."
+
+#: doc/projects.inc:352
+msgid "Help students do atomic simulations"
+msgstr "Hjælp studerende med at foretage atom-niveau simuleringer"
 
-#: projects.inc:294
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Wisconsin Universitet - Milwaukee, Max Planck Instituttet"
 
-#: projects.inc:295
-msgid "Astrophysics"
-msgstr "Astrofysik"
-
-#: projects.inc:296
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
 "observatory.  Einstein at Home is a World Year of Physics 2005 project "
 "supported by the American Physical Society (APS) and by a number of "
 "international organizations."
-msgstr ""
-"Søgning efter roterende neutronstjerner (også kendt som pulsarer) ved hjælp "
-"af data fra gravitationsbølgedetektorerne LIGO og GEO og fra "
-"radioobservatoriet Arecibo. Einstein at Home er et projekt fra World Year of "
-"Physics 2005, støttet af the American Physical Society (APS) og af et antal "
-"internationelle organisationer."
+msgstr "Søgning efter roterende neutronstjerner (også kendt som pulsarer) ved hjælp af data fra gravitationsbølgedetektorerne LIGO og GEO og fra radioobservatoriet Arecibo. Einstein at Home er et projekt fra World Year of Physics 2005, støttet af the American Physical Society (APS) og af et antal internationelle organisationer."
+
+#: doc/projects.inc:370
+msgid "Help detect pulsars and gravitational waves"
+msgstr "Hjælp med at finde pulsarer og tyngdebølger"
 
-#: projects.inc:310 projects.inc:318
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (den europæiske organisation for kerneforskning)"
 
-#: projects.inc:311 projects.inc:319
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Fysik"
 
-#: projects.inc:312
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
 "physics laboratory.  It is the most powerful instrument ever built to "
 "investigate on particles proprieties. LHC at home runs simulations to improve "
 "the design of LHC and its detectors."
-msgstr ""
-"The Large Hadron Collider (LHC) er en partikelaccelerator hos CERN, den "
-"europæiske organisation for kerneforskning, verdens største laboratorium for "
-"partikelfysik. Det er det kraftigste instrument, der nogensinde er bygget "
-"for at udforske partiklernes egenskaber. LHC at home kører simuleringer for at "
-"forbedre LHC's design og dens detektorer."
+msgstr "The Large Hadron Collider (LHC) er en partikelaccelerator hos CERN, den europæiske organisation for kerneforskning, verdens største laboratorium for partikelfysik. Det er det kraftigste instrument, der nogensinde er bygget for at udforske partiklernes egenskaber. LHC at home kører simuleringer for at forbedre LHC's design og dens detektorer."
 
-#: projects.inc:320
+#: doc/projects.inc:388
+msgid "Improve the design of the Large Hadron Collider"
+msgstr "Forbedre designet af LHC acceleratoren"
+
+#: doc/projects.inc:395
 msgid ""
-"This project uses CERN-developed virtual machine technology for full-fledged "
-"LHC event physics simulation on volunteer computers.  Requires that you "
-"install VirtualBox on your computer"
-msgstr ""
-"Dette projekt bruger virtuel maskinteknologi udviklet af CERN for fuldgyldig "
-"simulering af fysikken bag LHC-begivenheder på frivillige computere. Kræver "
-"at du installerer VirtualBox på din computer"
+"This project uses CERN-developed virtual machine technology for LHC event "
+"physics simulation on volunteer computers.  Requires that you install "
+"VirtualBox on your computer"
+msgstr "Dette projekt benytter CERN-udviklet virtuel maskine teknologi til simulering af fysiske LHC hændelser på frivilliges computere. Kræver at du installerer VirtualBox på din computer"
+
+#: doc/projects.inc:398
+msgid "Simulate high-energy particle collisions"
+msgstr "Simuler højenergi partikel kollisioner"
+
+#: doc/projects.inc:405
+msgid ""
+"ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
+" physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
+" particles and processes using head-on collisions of protons of "
+"extraordinary high energy."
+msgstr "ATLAS at Home benytter frivilliges computere til at køre simuleringer for ATLAS - et partikelfysikeksperiment ved CERNs Large Hadron Collider. ATLAS leder efter nye partikler og processer gennem kollisioner mellem protoner ved ekstraordinært høje energiniveauer."
 
-#: projects.inc:326
+#: doc/projects.inc:408
+msgid "Simulate high-energy particle collisions for CERN"
+msgstr "Simuler højenergi partikel kollisioner for CERN"
+
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "University of California, Berkeley"
 
-#: projects.inc:327
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrofysik, astrobiologi"
 
-#: projects.inc:328
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
 "radio SETI, uses radio telescopes to listen for narrow-bandwidth radio "
 "signals from space. Such signals are not known to occur naturally, so a "
 "detection would provide evidence of extraterrestrial technology."
-msgstr ""
-"SETI (søgning efter udenjordisk intelligens) er et videnskabeligt område, "
-"hvis mål er at opdage intelligent liv uden for Jorden. Én tilgang, kendt som "
-"radio-SETI, bruger radioteleskoper for at lytte efter radiosignaler med "
-"smal båndbredde fra rummet. Sådanne signaler forekommer, så vidt vides, ikke "
-"naturligt, så sådan en opdagelse ville give bevis for udenjordisk "
-"teknologi."
-
-#: projects.inc:342
-msgid "Bielefeld University of Applied Sciences"
-msgstr "Bielefeld University of Applied Sciences"
-
-#: projects.inc:343
-msgid "Chemical engineering and nanotechnology"
-msgstr ""
+msgstr "SETI (søgning efter udenjordisk intelligens) er et videnskabeligt område, hvis mål er at opdage intelligent liv uden for Jorden. Én tilgang, kendt som radio-SETI, bruger radioteleskoper for at lytte efter radiosignaler med smal båndbredde fra rummet. Sådanne signaler forekommer, så vidt vides, ikke naturligt, så sådan en opdagelse ville give bevis for udenjordisk teknologi."
 
-#: projects.inc:344
-msgid ""
-"The study of molecular magnets and controlled nanoscale magnetism.  These "
-"magnetic molecules may be used to develop tiny magnetic switches, with "
-"applications in medicine (such as local tumor chemotherapy) and "
-"biotechnology."
-msgstr ""
-"Studiet af molekylære magneter og kontrolleret magnetisme på nanoskala. "
-"Disse magnetiske molekyler vil måske kunne anvendes til fremstillingen af "
-"bittesmå magnetiske kontakter til brug indenfor medicin (fx lokal "
-"tumorkemoterapi) og bioteknologi."
+#: doc/projects.inc:418
+msgid "Search for evidence of extra-terrestrial life"
+msgstr "Søg efter tegn på liv i rummet"
 
-#: projects.inc:351
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Adskillige anvendelser"
 
-#: projects.inc:356
+#: doc/projects.inc:448
+msgid "Molecular biology, Computer Science"
+msgstr "Molekylærbiologi, datalogi"
+
+#: doc/projects.inc:449
+msgid ""
+"The Citizen Science Grid is dedicated to supporting a wide range of research"
+" and educational projects using volunteer computing and citizen science."
+msgstr "Citizen Science Grid er dedikeret til at støtte et bredt spektrum af forsknings- og undervisningsprojekter gennem anvendelse af frivilliges computere og borgervidenskab."
+
+#: doc/projects.inc:452
+msgid "Support science from the University of North Dakota"
+msgstr "Støt forskning på University of North Dakota"
+
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Det kinesiske videnskabsakademi"
 
-#: projects.inc:357
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Fysik, biokemi og andre"
 
-#: projects.inc:358
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr ""
-"Formålet med CAS at home er at opmuntre og assistere videnskabsfolk i Kina til "
-"at adoptere teknologierne for frivillig beregning og den frivillige "
-"tankegang for deres forskning."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home er hostet af Beregningscentret på Institut for Højenergifysik (IHEP) på Det Kinesiske Forskningsakademi og bruges af kinesiske forskere med projekter der studerer proteinstrukturerer, nanoteknologi, kræft genomforskning og højenergifysik."
+
+#: doc/projects.inc:462
+msgid "Help Chinese researchers"
+msgstr "Hjælp kinesiske forskere"
 
-#: projects.inc:365
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Matematik, fysik, evolution"
 
-#: projects.inc:366
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
-msgstr ""
-"Yoyo at home er et mellemled mellem BOINC og adskillige eksisterende frivillige "
-"beregningsprojekter: ECM, Muon, Evolution at home og distributed.net"
+msgstr "Yoyo at home er et mellemled mellem BOINC og adskillige eksisterende frivillige beregningsprojekter: ECM, Muon, Evolution at home og distributed.net"
 
-#: projects.inc:371 projects.inc:527
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr ""
-"MTA-SZTAKI laboratorium for parallelle og distribuerede systemer (Ungarn)"
-
-#: projects.inc:372
-msgid "European research projects"
-msgstr "Europæiske forskningsprojekter"
-
-#: projects.inc:373
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered "
-"by the project include math, physics, biology, etc."
-msgstr ""
+#: doc/projects.inc:472
+msgid "Do research in math, physics, and evolution"
+msgstr "Foretag forskning i matematik, fysik og udvikling"
 
-#: projects.inc:379
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Spanske universiteter og forskningscentre"
 
-#: projects.inc:380
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Diverse spanske forskningsprojekter"
 
-#: projects.inc:381
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Forskning i fysik, materialevidenskab og biomedicin"
 
-#: projects.inc:387
+#: doc/projects.inc:492
+msgid "Help Spanish researchers"
+msgstr "Hjælp spanske forskere"
+
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
-msgstr ""
+msgstr "IBM Corporate Citizenship"
 
-#: projects.inc:388
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Medicinsk, miljømæssig og anden humanitær forskning"
 
-#: projects.inc:389
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
-"problems by creating the world's largest volunteer computing grid.  Research "
-"includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
+"problems by creating the world's largest volunteer computing grid.  Research"
+" includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
 "clean water and many more."
-msgstr ""
+msgstr "At understøtte kritisk non-profit forskning i nogle af menneskehedens mest presserende problemer ved at oprette verdens største beregningsnetværk. Forskningen inkluderer HIV-AID, kræft, tropesygdomme og forsømte sygdomme, solenergi, rent vand og meget andet."
 
-#: projects.inc:395
+#: doc/projects.inc:502
+msgid "Do biomedical and environmental research"
+msgstr "Udfør biomedicinsk forskning og miljøforskning"
+
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Matematik, beregning og spil"
 
-#: projects.inc:401
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
+msgid "Mathematics"
+msgstr "Matematik"
+
+#: doc/projects.inc:534
+msgid ""
+"NumberFields at home searches for fields with special properties. The primary "
+"application of this research is in the realm of algebraic number theory. "
+"Number theorists can mine the data for interesting patterns to help them "
+"formulate conjectures about number fields. Ultimately, this research will "
+"lead to a deeper understanding of the profound properties of numbers, the "
+"basic building blocks of all mathematics."
+msgstr "NumberFields at home søger efter felter med særlige egenskaber. Den primære anvendelse af denne forskning skal findes indenfor algebraisk talteori. Talteoretikere kan gennemsøge data for interessante mønstre, der kan hjælpe dem til at formulere formodninger om talfelter. I sidste ende vil denne forskning føre til en dybere forståelse for de dybe talegenskaber, der er den basale byggesten i al matematik."
+
+#: doc/projects.inc:537
+msgid "Do research in algebraic number theory"
+msgstr "Udfør forskning i algebraisk talteori"
+
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Datalogi"
 
-#: projects.inc:409
-msgid "Mathematics, Physics, Artificial Intelligence"
-msgstr "Matematik, fysik, kunstig intelligens"
+#: doc/projects.inc:554
+msgid ""
+"Solve hard and practically important problems (discrete functions inversion "
+"problems, discrete optimization, bioinformatics, etc.) that can be "
+"effectively reduced to Boolean satisfiability problem."
+msgstr "Løs svære og praktisk vigtige problemer (opgaver med at finde inverse funktioner for diskrete funktioner, diskret optimering, bioinformatik osv.) der effektivt kan reduceres til boolske satisfyability problemer."
+
+#: doc/projects.inc:557
+msgid "Study computational complexity"
+msgstr "Studér bereningsmæssig kompleksitet"
+
+#: doc/projects.inc:582
+msgid "Cryptography and combinatorics"
+msgstr "Kryptografi og kombinatorik"
 
-#: projects.inc:410
-msgid "Simulation of quantum computing; Goldbach's conjecture."
-msgstr "Simulering af kvanteberegning; Goldbachs formodning."
+#: doc/projects.inc:583 doc/projects.inc:586
+msgid "Run applications from distributed.net"
+msgstr "Kør applikationer fra distributed.net"
 
-#: projects.inc:450 projects.inc:458
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Kryptografi"
 
-#: projects.inc:459
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
-msgstr ""
-"Forsøg på at afkode 3 originale Enigma-beskeder. Signalerne blev opfanget i "
-"det nordlige Atlanterhav i 1942, og menes aldrig at være blevet afkodet."
+msgstr "Forsøg på at afkode 3 originale Enigma-beskeder. Signalerne blev opfanget i det nordlige Atlanterhav i 1942, og menes aldrig at være blevet afkodet."
 
-#: projects.inc:465 projects.inc:504 projects.inc:512 projects.inc:520
-#: projects.inc:528 projects.inc:568
-msgid "Mathematics"
-msgstr "Matematik"
+#: doc/projects.inc:596
+msgid "Decode WWII submarine messages"
+msgstr "Dekrypter 2. verdenskrig ubåds beskeder"
 
-#: projects.inc:466
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Studier af Collatz-formodningen, en uløst formodning i matematik"
 
-#: projects.inc:471
+#: doc/projects.inc:606
+msgid "Study the Collatz Conjecture"
+msgstr "Studér Collatz formodningen"
+
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "California State University Fullerton"
 
-#: projects.inc:472
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Faktorisering af store heltal"
 
-#: projects.inc:473
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -976,525 +983,62 @@ msgid ""
 "breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
 "NFS at Home is a continuation of that experience, only with integers that are "
 "hundreds of digits long."
-msgstr ""
+msgstr "NFS at Home er et forskningsprojekt som benytter computere forbundne via Internettet til at udføre gittersigtningen i talfeltssigtningsfaktorisering af store heltal. Som ung skoleelev fik du din første erfaring med at primtalsfaktorisere heltal som fx 15 = 3 * 5 eller 35 = 5 * 7. NFS at Home er en udvidelse af denne erfaring blot med heltale bestående af hundredevis af cifre."
 
-#: projects.inc:479
-msgid ""
-"Vilnius Gediminas Technical University and Kaunas University of Technology "
-"(Lithuania)"
-msgstr ""
-
-#: projects.inc:480
-msgid "Software testing"
-msgstr "Software-test"
-
-#: projects.inc:481
-msgid ""
-"The aim of this project is to provide a powerful distributed computing "
-"platform for scientists of Vilnius Gediminas Technical University (VGTU) as "
-"well as others Lithuanian academic institutions.  Current applications "
-"involve the study of Monte-Carlo based software testing."
-msgstr ""
-
-#: projects.inc:503
-msgid "Mathematical Institute of Leiden University / Kennislink"
-msgstr "Matematisk Institut ved Leiden Universitet / Kennislink"
+#: doc/projects.inc:616
+msgid "Study the factorization of large integers"
+msgstr "Studér primtalsfaktorisering af store heltal"
 
-#: projects.inc:505
-msgid ""
-"Search for 'abc-triples': positive integers a,b,c such that a+b=c, a < b "
-"< c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the "
-"product of the distinct prime factors of n. The ABC conjecture says that "
-"there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for "
-"any real h > 1. The ABC conjecture is currently one of the greatest open "
-"problems in mathematics. If it is proven to be true, a lot of other open "
-"problems can be answered directly from it."
-msgstr ""
-
-#: projects.inc:513
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
-msgstr ""
-"Primegrid har flere projekter, der søger efter forskellige former for meget "
-"store primtal, der iblandt søgning efter det størts kendte primtal."
+msgstr "Primegrid har flere projekter, der søger efter forskellige former for meget store primtal, der iblandt søgning efter det størts kendte primtal."
+
+#: doc/projects.inc:662
+msgid "Search for large prime numbers"
+msgstr "Søg efter store primtals numre"
 
-#: projects.inc:519
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
-msgstr ""
+msgstr "Hochschule RheinMain University of Applied Sciences"
 
-#: projects.inc:521
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
-msgstr ""
-"Søgning efter modeksempler til to formodninger, relateret til "
-"identificeringen af primtal"
+msgstr "Søgning efter modeksempler til to formodninger, relateret til identificeringen af primtal"
+
+#: doc/projects.inc:672
+msgid "Study the properties of prime numbers"
+msgstr "Studere primtalsegenskaber"
 
-#: projects.inc:529
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI laboratorium for parallelle og distribuerede systemer (Ungarn)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
-msgstr ""
+msgstr "Find alle de generaliserede binære talsystemer (hvor basen er matricer og cifre er vektorer) op til 11 dimensioner."
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Kommentér"
+#: doc/projects.inc:682
+msgid "Study number theory"
+msgstr "Studer tal-teori"
 
-#: ../html/inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Nyheder er tilgængelige som en %sRSS-strøm%s"
-
-#~ msgid "Download BOINC + Virtualbox"
-#~ msgstr "Download BOINC + Virtualbox"
+#: doc/projects.inc:739
+msgid ""
+"Testing and comparison of heuristic methods for getting separations of "
+"parallel algorithms working in the CAD system for designing logic control "
+"systems"
+msgstr "Test og sammenligning af heuristiske metoder til at få separerede parallelle algoritmer til at virke i et CAD system til at designe logiske kontrolsystemer."
 
-#, php-format
-#~ msgid "%s for %s (%s MB)"
-#~ msgstr "%s til %s (%s MB)"
-
-#~ msgid ""
-#~ "BOINC is a program that lets you donate your idle computer time to science "
-#~ "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
-#~ "Community Grid, and many others. <p> After installing BOINC on your "
-#~ "computer, you can connect it to as many of these projects as you like."
-#~ msgstr ""
-#~ "BOINC er et program, der lader dig donere din overskydende computertid til "
-#~ "videnskabelige projekter, så som SETI at home, Climateprediction.net, "
-#~ "Rosetta at home, Rosld Community Grid og mange andre. <p> Efter at have "
-#~ "installeret BOINC på din computer, kan du forbinde den til så mange af disse "
-#~ "projekter, du har lyst til."
-
-#~ msgid "Astronomy, Physics, and Chemistry"
-#~ msgstr "Astronomi, fysik og kemi"
-
-#~ msgid "Browser default"
-#~ msgstr "Browser-standard"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Diskutér"
 
+#: html/inc/news.inc:112
 #, php-format
-#~ msgid ""
-#~ " Use the idle time on your computer (Windows, Mac, or Linux) to cure "
-#~ "diseases, study global warming, discover pulsars, and do many other types of "
-#~ "scientific research.  It's safe, secure, and easy:  %sChoose%s projects  "
-#~ "%sDownload%s and run BOINC software  %sEnter%s an email address and "
-#~ "password. "
-#~ msgstr ""
-#~ " Brug din computers overskydende tid (Windows, Mac eller Linux) til at "
-#~ "kurere sygdomme, studere global opvarmning, opdage pulsarer og udføre mange "
-#~ "slags videnskabelig forskning. Det er sikkert og nemt: %sVælg%s projekter  %"
-#~ "sDownload%s og kør BOINC-software  %sIndtast%s en emailadresse og kodeord. "
-
-#, fuzzy
-#~ msgid "POEM at HOME"
-#~ msgstr "Home"
-
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-# #######################################
-# poll-related stuff
-# #######################################
-#~ msgid "POLL_TITLE"
-#~ msgstr "BOINC user survey"
-
-#~ msgid "POLL_INTRO"
-#~ msgstr ""
-#~ "Several volunteer computing projects, including Climateprediction.net, "
-#~ "Einstein at home, and SETI at home, use software called BOINC. If you "
-#~ "participate in projects like this, we request that you answer the "
-#~ "following questions. This will help BOINC-based projects increase "
-#~ "participation and achieve greater scientific results. <p> Please answer "
-#~ "as many questions as you want, then go to the bottom and click OK. If you "
-#~ "previously completed the survey but your answers have changed, please "
-#~ "complete it again - your new answers will replace the old ones. <p> The "
-#~ "current results of the survey are <a href=poll_results.php>here</a>. "
-
-#~ msgid "POLL_RUN"
-#~ msgstr "Do you run BOINC?"
-
-#~ msgid "POLL_PARTICIPATION"
-#~ msgstr "Your participation"
-
-#~ msgid "POLL_COMPUTERS"
-#~ msgstr "Your computers"
-
-#~ msgid "POLL_YOU"
-#~ msgstr "You"
-
-#~ msgid "POLL_NATIONALITY"
-#~ msgstr "Nationality"
-
-#~ msgid "POLL_COMMENTS"
-#~ msgstr "Comments"
-
-#~ msgid "POLL_COMMENTS_QUESTION"
-#~ msgstr ""
-#~ "Please suggest ways that BOINC, and the projects that use it, could be "
-#~ "improved:"
-
-#~ msgid "POLL_OTHER"
-#~ msgstr "Other:"
-
-#~ msgid "POLL_CHECK_ALL"
-#~ msgstr "[check all that apply]"
-
-#~ msgid "POLL_DONE"
-#~ msgstr "When done click:"
-
-#~ msgid "POLL_CURRENT"
-#~ msgstr "Yes - I have been running BOINC on my computer for..."
-
-#~ msgid "POLL_TWEEK"
-#~ msgstr "less than a week"
-
-#~ msgid "POLL_TMONTH"
-#~ msgstr "less than a month"
-
-#~ msgid "POLL_TYEAR"
-#~ msgstr "less than a year"
-
-#~ msgid "POLL_TMOREYEAR"
-#~ msgstr "more than a year"
-
-#~ msgid "POLL_LAPSED"
-#~ msgstr "No - I was running BOINC, but stopped because..."
-
-#~ msgid "POLL_LINTEREST"
-#~ msgstr "I lost interest"
-
-#~ msgid "POLL_LCOMPLICATED"
-#~ msgstr "it was too complicated"
-
-#~ msgid "POLL_LSTOPPED"
-#~ msgstr "I stopped it and forgot to start again"
-
-#~ msgid "POLL_LPROBLEMS"
-#~ msgstr "it caused problems on my computer"
-
-#~ msgid "POLL_LPOWER"
-#~ msgstr "it used too much electricity"
-
-#~ msgid "POLL_LNONBOINC"
-#~ msgstr "I switched to a non-BOINC computing project"
-
-#~ msgid "POLL_FAILED"
-#~ msgstr "No - I tried running BOINC, but..."
-
-#~ msgid "POLL_FINSTALL"
-#~ msgstr "the software didn't install correctly"
-
-#~ msgid "POLL_FFIGURE"
-#~ msgstr "I couldn't figure out how to use the software"
-
-#~ msgid "POLL_FNETWORK"
-#~ msgstr "I had network communication problems"
-
-#~ msgid "POLL_FATTACH"
-#~ msgstr "I couldn't attach to a project"
-
-#~ msgid "POLL_FWORK"
-#~ msgstr "I attached to a project, but never got any work"
-
-#~ msgid "POLL_NEVER"
-#~ msgstr "No - I never tried running BOINC, because..."
-
-#~ msgid "POLL_NSECURITY"
-#~ msgstr "I was concerned about security"
-
-#~ msgid "POLL_NPROJECT"
-#~ msgstr "I wasn't interested in any of the projects"
-
-#~ msgid "POLL_NPERMISSION"
-#~ msgstr "I don't have permission to run it on my computer"
-
-#~ msgid "POLL_NVERSION"
-#~ msgstr "No version was available for my computer"
-
-#~ msgid "POLL_KIND"
-#~ msgstr "What kind of computers do you have running BOINC?"
-
-#~ msgid "POLL_WHERE"
-#~ msgstr "Where are they?"
-
-#~ msgid "POLL_WORK"
-#~ msgstr "Work"
-
-#~ msgid "POLL_SCHOOL"
-#~ msgstr "School"
-
-#~ msgid "POLL_HOW_MANY"
-#~ msgstr "How many computers?"
-
-#~ msgid "POLL_TURNED_ON"
-#~ msgstr "On average, how many hours per day are they powered on?"
-
-#~ msgid "POLL_AGE"
-#~ msgstr "Age"
-
-#~ msgid "POLL_SEX"
-#~ msgstr "Sex"
-
-#~ msgid "POLL_MALE"
-#~ msgstr "Male"
-
-#~ msgid "POLL_FEMALE"
-#~ msgstr "Female"
-
-#~ msgid "POLL_EXPERTISE"
-#~ msgstr "Your level of computer expertise"
-
-#~ msgid "POLL_LEVB"
-#~ msgstr "Beginner"
-
-#~ msgid "POLL_LEVI"
-#~ msgstr "Intermediate"
-
-#~ msgid "POLL_LEVA"
-#~ msgstr "Advanced"
-
-#~ msgid "POLL_LEARN_WHERE"
-#~ msgstr "Where did you learn about BOINC projects?"
-
-#~ msgid "POLL_WTV"
-#~ msgstr "TV/radio/newspaper"
-
-#~ msgid "POLL_WPERS"
-#~ msgstr "From friends, relatives, or coworkers"
-
-#~ msgid "POLL_WTEAM"
-#~ msgstr "Team message boards or web sites"
-
-#~ msgid "POLL_WBOINC"
-#~ msgstr "The BOINC web site"
-
-#~ msgid "POLL_WWEB"
-#~ msgstr "Other web sites"
-
-#~ msgid "POLL_FACTOR"
-#~ msgstr ""
-#~ "Which are the most important factors when you decide whether to "
-#~ "participate in a BOINC project?"
-
-#~ msgid "POLL_GRAPHICS"
-#~ msgstr "Nice-looking screensaver graphics"
-
-#~ msgid "POLL_CREDIT_FAIR"
-#~ msgstr "Fair and quick granting of credit for work done"
-
-#~ msgid "POLL_CREDIT_MORE"
-#~ msgstr "Getting more credit from this project than from others"
-
-#~ msgid "POLL_MB_FRIENDLY"
-#~ msgstr "Helpful and friendly message boards"
-
-#~ msgid "POLL_MB_STAFF"
-#~ msgstr "Participation by project staff on the message boards"
-
-#~ msgid "POLL_WEB_SITE"
-#~ msgstr "Informative project web site"
-
-#~ msgid "POLL_SCIENCE_IMPORTANT"
-#~ msgstr "The science is important and beneficial"
-
-#~ msgid "POLL_SCIENCE_PUBLIC"
-#~ msgstr "Non-profit, and results are public"
-
-#~ msgid "POLL_RECOGNIZE"
-#~ msgstr "Personal recognition if my computer finds something"
-
-#~ msgid "POLL_PUBLISH"
-#~ msgstr "Publication by the project in scientific journals"
-
-#~ msgid "POLL_EMAIL"
-#~ msgstr "Periodic email newsletters from the project"
-
-#~ msgid "POLL_NPROJECTS"
-#~ msgstr "How many BOINC projects do you participate in?"
-
-#~ msgid "POLL_SSAVER"
-#~ msgstr "Do you run BOINC as a screensaver?"
-
-#~ msgid "POLL_YES"
-#~ msgstr "Yes"
-
-#~ msgid "POLL_NO"
-#~ msgstr "No"
-
-#~ msgid "POLL_MBOARDS"
-#~ msgstr "Your usage of project messages boards:"
-
-#~ msgid "POLL_MBR"
-#~ msgstr "to read information"
-
-#~ msgid "POLL_MBRW"
-#~ msgstr "to read and post information"
-
-#~ msgid "POLL_NONE"
-#~ msgstr "None"
-
-#~ msgid "POLL_HELP"
-#~ msgstr ""
-#~ "Where do you get information to help resolve problems with BOINC and/or "
-#~ "BOINC projects?"
-
-#~ msgid "POLL_HELP_PMB"
-#~ msgstr "The project message boards"
-
-#~ msgid "POLL_HELP_BMB"
-#~ msgstr "The BOINC message boards"
-
-#~ msgid "POLL_HELP_BDOC"
-#~ msgstr "The BOINC web site"
-
-#~ msgid "POLL_HELP_BMLIST"
-#~ msgstr "BOINC mailing lists"
-
-#~ msgid "POLL_HELP_WIKI"
-#~ msgstr "The Unofficial BOINC Wiki"
-
-#~ msgid "POLL_HELP_TEAM"
-#~ msgstr "Team web sites"
-
-#~ msgid "POLL_HELP_GOOGLE"
-#~ msgstr "Google or other search engines"
-
-#~ msgid "POLL_ERROR_TITLE"
-#~ msgstr "Error - results not recorded"
-
-#~ msgid "POLL_ERROR_TEXT"
-#~ msgstr ""
-#~ "An internal error has prevented us from recording your survey response.  "
-#~ "Please try again later."
-
-#~ msgid "POLL_RECORDED"
-#~ msgstr "Survey response recorded"
-
-#~ msgid "POLL_THANKS"
-#~ msgstr "Thank you for completing the BOINC user survey."
-
-#~ msgid "POLL_RESULTS_TITLE"
-#~ msgstr "Survey results"
-
-#~ msgid "POLL_RESULTS_TEXT"
-#~ msgstr ""
-#~ "These are the current results of the <a href=poll.php>BOINC user survey</"
-#~ "a>.  This page is updated every hour."
-
-#~ msgid "DL_MIRRORS"
-#~ msgstr ""
-#~ "Note: files are downloaded from mirror servers at boinc.berkeley.edu, "
-#~ "morel.mit.edu, einstein.aei.mpg.de, einstein.astro.gla.ac.uk, einstein."
-#~ "ligo.caltech.edu, and einstein.aset.psu.edu (thanks to these "
-#~ "institutions). The server is chosen randomly - if a download fails, "
-#~ "reload this page and try again. "
-
-# #############################################
-# help.php
-# #############################################
-#~ msgid "HELP_TITLE"
-#~ msgstr "Getting help with BOINC"
-
-#~ msgid "HELP_HEADING1"
-#~ msgstr "Online Help"
-
-#~ msgid "HELP_P1_1"
-#~ msgstr ""
-#~ "BOINC Online Help lets you talk one-on-one with experienced BOINC users, "
-#~ "who can: %s answer questions about BOINC and volunteer computing; %s walk "
-#~ "you through the process of installing and using BOINC; %s troubleshoot "
-#~ "any problems you might have. "
-
-#~ msgid "HELP_P1_2"
-#~ msgstr ""
-#~ "BOINC Online Help is based on %sSkype%s, an Internet-based telephone "
-#~ "system. Skype is free (both the software and the calls). If you don't "
-#~ "already have Skype, please %sdownload and install it now%s. When you're "
-#~ "finished, return to this page. "
-
-#~ msgid "HELP_P1_3"
-#~ msgstr ""
-#~ "The best way to get help is by voice, for which you need either built-in "
-#~ "microphone and speakers or an external headset for your computer. You can "
-#~ "also use Skype's text-based chat system or regular email (if you don't "
-#~ "have Skype) to communicate with Help Volunteers."
-
-#~ msgid "HELP_P1_4"
-#~ msgstr ""
-#~ "Volunteers speaking several languages are available. Please select a "
-#~ "language: "
-
-#~ msgid "HELP_HEADING2"
-#~ msgstr "BOINC help on the web"
-
-#~ msgid "HELP_P2_ITEM1"
-#~ msgstr "BOINC user's manual"
-
-#~ msgid "HELP_P2_ITEM2"
-#~ msgstr "Troubleshooting BOINC "
-
-#~ msgid "HELP_P2_ITEM3"
-#~ msgstr "BOINC-related web sites "
-
-#~ msgid "HELP_P2_ITEM4"
-#~ msgstr "The BOINC message boards "
-
-#~ msgid "HELP_P2_ITEM5"
-#~ msgstr "The message boards on any BOINC-based project "
-
-#~ msgid "HELP_HEADING3"
-#~ msgstr "Be a Help Volunteer"
-
-#~ msgid "HELP_P3_1"
-#~ msgstr ""
-#~ "If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-#~ "Volunteer%s. It's a great way to help the cause of scientific research "
-#~ "and volunteer computing - and it's fun!  "
-
-#~ msgid "HELP_P3_2"
-#~ msgstr ""
-#~ "If you're already a Help Volunteer: to edit your settings, %sclick here"
-#~ "%s. "
-
-# #############################################
-# index.php
-# #############################################
-#~ msgid "HOME_HEADING1"
-#~ msgstr "Volunteer"
-
-#~ msgid "HOME_P1"
-#~ msgstr ""
-#~ " Use the idle time on your computer  (Windows, Mac, or Linux)  to cure "
-#~ "diseases, study global warming,  discover pulsars, and do many other "
-#~ "types of scientific research.  It's safe, secure, and easy:  %sChoose%s "
-#~ "projects  %sDownload%s and run BOINC software  %sEnter%s an email address "
-#~ "and password. "
-
-#~ msgid "HOME_P2"
-#~ msgstr ""
-#~ "Or, if you run several projects, try an %saccount manager%s such as "
-#~ "%sGridRepublic%s or %sBAM!%s. "
-
-#~ msgid "HOME_P3"
-#~ msgstr ""
-#~ "If you have any questions, or need help getting started, you can %stalk "
-#~ "to a Volunteer Helper%s. "
-
-#~ msgid "HOME_DOWNLOAD"
-#~ msgstr "Download"
-
-#~ msgid "HOME_WEB_SITES"
-#~ msgstr "Web"
-
-#~ msgid "HOME_ADD_ONS"
-#~ msgstr "Add-ons"
-
-#~ msgid "HOME_SURVEY"
-#~ msgstr "Survey"
-
-#~ msgid "HOME_BOINC"
-#~ msgstr "Berkeley Open Infrastructure for Network Computing"
-
-#~ msgid "HOME_BOINC_DESC"
-#~ msgstr ""
-#~ "Open-source software for %svolunteer computing%s and %sgrid computing%s"
+msgid "News is available as an %sRSS feed%s"
+msgstr "Nyheder er tilgængelige som en %sRSS-strøm%s"
diff --git a/locale/de/BOINC-Client.mo b/locale/de/BOINC-Client.mo
index 99a7968..3f45b5c 100644
Binary files a/locale/de/BOINC-Client.mo and b/locale/de/BOINC-Client.mo differ
diff --git a/locale/de/BOINC-Client.po b/locale/de/BOINC-Client.po
index f8a8c2d..134b5c2 100644
--- a/locale/de/BOINC-Client.po
+++ b/locale/de/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Christian Beer <christian.beer at posteo.de>, 2015-2016
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-08 16:01+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: German (http://www.transifex.com/projects/p/boinc/language/de/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-15 12:43+0000\n"
+"Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
+"Language-Team: German (http://www.transifex.com/boinc/boinc/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Nachricht vom Kontomanager"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Nachricht vom Server"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Einige Aufgaben benötigen mehr Arbeitsspeicher als von ihren Einstellungen erlaubt wird. Bitte die Einstellungen überprüfen."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Konnte Statusdatei nicht schreiben; bitte Zugriffsrechte überprüfen"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Die HTTP_PROXY Umgebungsvariable muss einen HTTP-Proxy angeben"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Du hast die falsche URL für dieses Projekt genutzt. Wenn möglich bitte dieses Projekt entfernen und %s neu hinzufügen."
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Es wird eine alte URL für dieses Projekt genutzt. Wenn möglich bitte dieses Projekt entfernen und %s neu hinzufügen."
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Syntaxfehler in app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Datei auf die aus app_info.xml verwiesen wurde, existiert nicht: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Eine neue Version von BOINC ist verfügbar."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Herunterladen"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "kann nicht für CUDA oder OpenCL Berechnungen mit CUDA 6.5 oder neuer benutzt werden"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Unerwarteter Text in cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Nicht erkanntes Tag in cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Fehlendes Starttag in cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Fehler in den cc_config.xml Optionen"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Fehlendes Endetag in cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Um dies zu beheben können Sie"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "die Projekteinstellungen auf der Projektwebseite ändern"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "die GPU Ausnahmen in Ihrer cc_config.xml Datei entfernen"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "die Einstellungen auf der Webseite Ihrer Kontoverwaltung ändern"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Ungültiger oder fehlender Kontoschlüssel.  Projekt entfernen und neu hinzufügen zum beheben."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Ungültiger Signaturschlüssel. Projekt entfernen und neu hinzufügen zum beheben."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Dieses Projekt hat einen neuen Sicherheitsschlüssel. Entfernen und fügen sie das Projekt neu hinzu."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Dieses Projekt unterstützt nicht das Betriebssystem"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Dieses Projekt unterstützt nicht den Prozessortyp"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Die BOINC Installation ist zu alt. Bitte die aktuelle Version installieren."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Dieses Projekt unterstützt keine Computer vom Typ"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Auf die neuesten Treiber aktualisieren, um die GPU dieses Computers nutzen zu können."
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Auf die neuesten Treiber aktualisieren, um alle GPU-Anwendungen dieses Projekts nutzen zu können."
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Eine neuere Version von BOINC ist erforderlich um die NVIDIA GPU zu verwenden. Bitte auf die aktuellste Version aktualisieren."
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Für dieses Projekt wird eine %s GPU benötigt"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Für die gewählten Anwendungen ist keine Arbeit verfügbar."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Der Computertyp wird von diesem Projekt nicht unterstützt."
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Neuere BOINC Version wird benötigt. Bitte die aktuelle Version installieren."
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Aufgaben für %s sind verfügbar, aber die aktuellen Einstellungen verbieten diese"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Unbekannter Anwendungsname in app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Ihre app_info.xml Datei enthält keine nutzbare Version von"
diff --git a/locale/de/BOINC-Drupal.po b/locale/de/BOINC-Drupal.po
index e70b48a..2b0c1b0 100644
--- a/locale/de/BOINC-Drupal.po
+++ b/locale/de/BOINC-Drupal.po
@@ -4,7 +4,7 @@
 # Translators:
 # Christian Beer <christian.beer at posteo.de>, 2015-2016
 # Jakub Meisner <tangornsvk at gmail.com>, 2015
-# Jan Schladetzky <keiken at keiken.eu>, 2015
+# Jan Schladetzky <inactive+Keiken at transifex.com>, 2015
 # Jonas <jesus_007 at posteo.de>, 2015
 # Velociraptor, 2015
 # Rom Walton, 2016
@@ -13,8 +13,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2016-05-31 11:15+0000\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2017-03-20 13:10+0000\n"
 "Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
 "Language-Team: German (http://www.transifex.com/boinc/boinc/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -23,103 +23,114 @@ msgstr ""
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-msgid "Please select a team type."
-msgstr "Bitte den Typ des Teams auswählen."
+msgid "Reject profile"
+msgstr "Profil ablehnen"
+
+msgid "Ban user"
+msgstr "Benutzer ausschließen"
+
+msgid "I'm new"
+msgstr "Ich bin neu"
+
+msgid "I'm a BOINC user"
+msgstr "Ich bin ein BOINC-Benutzer"
+
+msgid "Authenticator login"
+msgstr "Authenticator Login"
 
 msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "Eine Änderung des Gründerstatus wurde bereits kürzlich beantragt. Es ist nur eine Anfrage aller 90 Tage möglich."
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Um Beiträge auf dieser Seite zu schreiben müssen noch @count Punkte errechnet werden."
 
-msgid "@count days remaining"
-msgstr "@count Tage verbleiben"
+msgid "Generic"
+msgstr "Allgemein"
 
-msgid "Inbox"
-msgstr "Posteingang"
+msgid "Home"
+msgstr "Startseite"
 
-msgid "Compose new"
-msgstr "Neu erstellen"
+msgid "Work"
+msgstr "Arbeit"
 
-msgid "respond to the request"
-msgstr "auf die Anfrage reagieren"
+msgid "School"
+msgstr "in der Schule"
 
-msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "Die Übernahme des Gründerstatus für Ihr Team wurde beantragt. Bitte reagieren Sie darauf."
+msgid "yes"
+msgstr "ja"
 
-msgid "Respond to transfer request"
-msgstr "Auf die Übernahmeanfrage reagieren"
+msgid "no"
+msgstr "nein"
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "Das Mitglied @name hat den Gründerstatus für dieses Team angefordert. Entweder haben Sie das Team verlassen oder schon lange keinen Kontakt mehr gesucht."
+msgid "Resource settings"
+msgstr "Ressourceneinstellungen"
+
+msgid "Resource share"
+msgstr "Ressourcenaufteilung"
 
 msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "Wenn Sie die Anfrage nicht bis @date beantworten, wird @name die Möglichkeit bekommen den Gründerstatus zu übernehmen. (Hinweis: Um die Anfrage von @name zu akzeptieren, einfach das folgende Formular benutzen.)"
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Bestimmt den Anteil an den Ressourcen des Computer die diesem Projekt zur Verfügung stehen. Beispiel: Bei einer Aufteilung zwischen zwei Projekten von 100 und 200 wird das erste 1/3 der Ressourcen bekommen und das andere 2/3."
 
-msgid "Deny request"
-msgstr "Anforderung ablehnen"
+msgid "Use CPU"
+msgstr "CPU benutzen"
 
-msgid "Send request"
-msgstr "Anfrage absenden"
+msgid "Enforced by version @number"
+msgstr "Unterstützt ab Version @number"
 
-msgid "Friend request from !name [!site]"
-msgstr "Freundschaftsanfrage von !name [!site]"
+msgid "Use NVIDIA GPU"
+msgstr "NVIDIA-Grafikprozessor benutzen"
 
-msgid "Message"
-msgstr "Nachricht"
+msgid "Use ATI GPU"
+msgstr "ATI-Grafikprozessor benutzen"
+
+msgid "Use INTEL GPU"
+msgstr "INTEL-Grafikprozessor benutzen"
+
+msgid "Beta settings"
+msgstr "Beta-Einstellungen"
+
+msgid "Run test applications?"
+msgstr "Testanwendungen erlauben?"
 
 msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name hat Sie als Freund auf !site hinzugefügt. Sie können diese Anfrage erlauben oder ablehnen. Das Ablehnen wird keine Benachrichtigung erzeugen aber die Anfrage aus beiden Konten entfernen.\n\nBitte folgen Sie diesem Link zur Anfrage:\n!link\n\n!message\n\nDanke,\nDas !site Team"
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Dies hilft uns, Anwendungen zu verbessern, kann aber zu fehlerhaften Aufgaben auf Ihrem Computers führen"
 
-msgid "Cancel friend request"
-msgstr "Freundschaftsanfrage ablehnen"
+msgid " Default value: @default"
+msgstr "Standard-Wert: @default"
 
-msgid "Remove request"
-msgstr "Anfrage entfernen"
+msgid "Applications"
+msgstr "Anwendungen"
 
-msgid "Approve request"
-msgstr "Anfrage bestätigen"
+msgid "Default set"
+msgstr "Standard Set"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "!name hat Ihrer Freundschaftsanfrage zugestimmt [!site]"
+msgid "Set used for new computers"
+msgstr "Diese Einstellungen für neue Computer verwenden?"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name hat Ihre Freundschaftsanfrage auf !site bestätigt.\n\nFolgen Sie diesem Link um das Benutzerprofil aufzrufen:\n!link\n\n!message\n\nDanke,\nDas !site Team"
+msgid "Save changes"
+msgstr "Änderungen speichern"
 
-msgid "Email address"
-msgstr "E-Mail-Adresse"
+msgid "Cancel"
+msgstr "Abbrechen"
 
-msgid "Home"
-msgstr "zu Hause"
+msgid "Show comparison view"
+msgstr "Vergleichsansicht anzeigen"
 
-msgid "Login"
-msgstr "Login"
+msgid "Comment form"
+msgstr "Kommentar von"
 
-msgid "search"
-msgstr "Suche"
+msgid "Logout"
+msgstr "Abmelden"
+
+msgid "Join now"
+msgstr "Beitreten"
+
+msgid "Account"
+msgstr "Konto"
 
 msgid "Server status"
 msgstr "Serverstatus"
@@ -127,227 +138,395 @@ msgstr "Serverstatus"
 msgid "Language"
 msgstr "Sprache"
 
-msgid "Enter your @s email address."
-msgstr "@s E-Mail-Adresse eingeben"
+msgid "Create content"
+msgstr "Inhalt erstellen"
 
-msgid "Join now"
-msgstr "Beitreten"
+msgid "General settings"
+msgstr "Allgemeine Einstellungen"
 
-msgid "I'm new"
-msgstr "Ich bin neu"
+msgid "Name"
+msgstr "Name"
 
-msgid "I'm a BOINC user"
-msgstr "Ich bin ein BOINC-Benutzer"
+msgid "Time zone"
+msgstr "Zeitzone"
 
-msgid "Welcome back!"
-msgstr "Willkommen zurück!"
+msgid "Notification settings"
+msgstr "Benachrichtigungs-Einstellungen"
+
+msgid "Receive email notification for private messages?"
+msgstr "E-Mail-Benachrichtigungen über private Mitteilungen empfangen?"
+
+msgid "Receive email notification for friend requests?"
+msgstr "E-Mail Benachrichtigung für Freundschaftsanfragen erhalten?"
+
+msgid "Language settings"
+msgstr "Spracheinstellungen"
 
 msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at home ist ein Programm, welches die Leerlaufzeit Ihres Computers nutzt, um einen Bildschirmschoner anzuzeigen, welcher nach Gravitationswellen von rotierenden Neutronensternen sucht, auch Pulsare genannt. Die Daten kommen vom LIGO (Laser-Interferometer Gravitationswellen-Observatorium) Gravitationswellendetektor."
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Standard-Sprache dieses Kontos für die Anzeige von E-Mails und Seitenansichten."
 
-msgid "Learn more"
-msgstr "Mehr erfahren"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Wenn Sie einen <a href=\"@gravatar-check\">gültigen Gravatar</a> mit Ihrer E-Mail-Adresse verknüpft haben, so wird dieser als Ihr Benutzer-Bild verwendet."
 
-msgid "View account"
-msgstr "Konto ansehen"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Ihr Gravatar wird nicht angezeigt, wenn Sie ein Benutzerbild hochladen."
 
-msgid "About our screensaver"
-msgstr "Über unseren Bildschirmschoner"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Wenn Sie einen <a href=\"@gravatar-check\">gültigen Gravatar</a> mit Ihrer E-Mail-Adresse verknüpft haben, verwenden Sie diesen als Ihr Benutzer-Bild."
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "Über 500.000 Freiwillige und es werden noch mehr."
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar wird nicht angezeigt, wenn ein Avatar hochgeladen wird."
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Avatar settings"
+msgstr "Avatar-Einstellungen"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "This is not available until your profile is set up."
+msgstr "Dies ist nicht verfügbar, solange Ihr Profil nicht eingerichtet ist."
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Create a profile"
+msgstr "Profil erstellen"
 
-msgid "Logout"
-msgstr "Abmelden"
+msgid "Upload an avatar"
+msgstr "Avatar hochladen"
 
-msgid "Name"
-msgstr "Name"
+msgid "Forum settings"
+msgstr "Foreneinstellungen"
 
-msgid "Avg credit"
-msgstr "Punktedurchschnitt"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "In Themengebieten, zeige maximal @comments_per_page"
 
-msgid "Total credit"
+msgid "comments per page"
+msgstr "Kommentare pro Seite"
+
+msgid "Sort comments in discussions"
+msgstr "Kommentare in Diskussionen sortieren"
+
+msgid "Newest post first"
+msgstr "Neuester Beitrag zuerst"
+
+msgid "Oldest post first"
+msgstr "Ältester Beitrag zuerst"
+
+msgid "Signature"
+msgstr "Signatur"
+
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Ihre Signatur wird am Ende Ihrer Kommentare angezeigt."
+
+msgid "Hide signatures in forums"
+msgstr "Alle Signaturen in Foren ausblenden"
+
+msgid "Privacy settings"
+msgstr "Datenschutz-Einstellungen"
+
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Ist es OK für @project und Dein Team (wenn beigetreten) Dich per E-Mail zu kontaktieren?"
+
+msgid "Should @project show your computers on its web site?"
+msgstr "Soll @project Ihren Rechner auf seiner Webseite anzeigen?"
+
+msgid "Id"
+msgstr "ID"
+
+msgid "Founder"
+msgstr "Gründer"
+
+msgid "Country"
+msgstr "Land"
+
+msgid "Recent average credit"
+msgstr "aktueller Punktedurchschnitt"
+
+msgid "Members"
+msgstr "Mitglieder"
+
+msgid "Total Credit"
 msgstr "Gesamtpunkte"
 
-msgid "Enter your password to save changes"
-msgstr "Passwort eingeben um Änderungen zu speichern"
+msgid "User ID"
+msgstr "Benutzer ID"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Geben Sie ihr Passwort ein, wenn Sie Ihre E-Mail-Adresse oder Passwort ändern möchten."
+msgid "User"
+msgstr "Benutzer"
 
-msgid "BOINC user ID"
-msgstr "BOINC-Benutzer-ID"
+msgid "Admin since"
+msgstr "Verwalter seit"
 
-msgid "Drupal user ID"
-msgstr "Drupal-Benutzer-ID"
+msgid "Team ID"
+msgstr "Team-ID"
 
-msgid "Account key"
-msgstr "Kontoschlüssel"
+msgid "User joined"
+msgstr "Benutzer ist beigetreten"
 
-msgid "Weak account key"
-msgstr "schwacher Kontoschlüssel"
+msgid "Timestamp"
+msgstr "Zeitstempel"
 
-msgid "Cross-project ID"
+msgid "Account Key"
+msgstr "Account Schlüssel"
+
+msgid "Member since"
+msgstr "Mitglied seit"
+
+msgid "CPID"
+msgstr "CPID"
+
+msgid "Email Address"
+msgstr "E-Mail-Adresse"
+
+msgid "Password Hash"
+msgstr "Passwort-Hash"
+
+msgid "Postal Code"
+msgstr "Postleitzahl"
+
+msgid "Send Email"
+msgstr "E-Mail senden"
+
+msgid "Show Hosts"
+msgstr "Zeige Host"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Computer ID"
+msgstr "Computer-ID"
+
+msgid "Location"
+msgstr "Ort"
+
+msgid "While BOINC running, % of time work is allowed"
+msgstr "Während BOINC läuft, sind in % der Zeit Berechnungen erlaubt"
+
+msgid "Average turnaround time"
+msgstr "mittlere Taskdauer"
+
+msgid "Created"
+msgstr "Erstellt"
+
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "Während BOINC läuft, besteht % der Zeit eine Internetverbindung"
+
+msgid "Average CPU efficiency"
+msgstr "mittlere CPU-Effizienz"
+
+msgid "Free disk space"
+msgstr "Freier Festplatten-Speicherplatz"
+
+msgid "Total disk space"
+msgstr "gesamter Festplattenspeicher"
+
+msgid "Task duration correction factor"
+msgstr "Korrekturfaktor der Taskdauer"
+
+msgid "Avg. credit"
+msgstr "Punktedurchschnitt"
+
+msgid "External IP address"
+msgstr "Externe IP-Adresse"
+
+msgid "Cross project ID"
 msgstr "Projektübergreifende ID"
 
-msgid "Save changes"
-msgstr "Änderungen speichern"
+msgid "Last IP address"
+msgstr "Letzte IP-Adresse"
 
-msgid "Cancel"
-msgstr "Abbrechen"
+msgid "Cache"
+msgstr "CPU Cache"
 
-msgid "Change password"
-msgstr "Passwort ändern"
+msgid "Memory"
+msgstr "Arbeitsspeicher"
 
-msgid "What is @this_project?"
-msgstr "Was ist @this_project?"
+msgid "Swap space"
+msgstr "Auslagerungsdatei"
 
-msgid "no projects..."
-msgstr "Keine Projekte ..."
+msgid "Maximum daily WU quota per CPU"
+msgstr "Maximale tägliche WU-Quote pro CPU"
 
-msgid "Download the desktop software"
-msgstr "Herunterladen der Desktopanwendung"
+msgid "Average download rate"
+msgstr "mittlere Downloadgeschwindigkeit"
 
-msgid "Run the installer"
-msgstr "Installer starten"
+msgid "Average upload rate"
+msgstr "mittlere Uploadgeschwindigkeit"
 
-msgid "When prompted enter @siteurl"
-msgstr "Wenn gefordert, geben Sie die @siteurl ein"
+msgid "Same IP address count"
+msgstr "Selbe IP Adresse"
 
-msgid "Password"
-msgstr "Passwort"
+msgid "% of time BOINC client is running"
+msgstr "% der Zeit ist Boinc am laufen"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Geben Sie das Passwort ein, dass Ihrem Benutzernamen zugeordnet ist."
+msgid "Operating system"
+msgstr "Betriebssystem"
 
-msgid "Request new password"
-msgstr "Neues Passwort anfordern"
+msgid "Operating system version"
+msgstr "Betriebssystem-Version"
 
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Falls BOINC bereits läuft, wählen Sie <i>Projekt\nhinzufügen</i>"
+msgid "Measured floating point speed"
+msgstr "ermittelte Geschwindigkeit für Gleitkommazahlen"
 
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Falls Sie eine Command-Line Version von BOINC benutzen,\nnutzen Sie bitte vorher die BOINC Manager Software (falls nötig wo anders) um einen Account\nfür das Projekt zu erstellen, dann benutzen Sie den Account um sich mit der Command-Line Version\nzu verbinden."
+msgid "Measured integer speed"
+msgstr "ermittelte Geschwindigkeit für ganze Zahlen"
+
+msgid "CPU model"
+msgstr "CPU-Modell"
+
+msgid "Number of processors"
+msgstr "Anzahl der Prozessoren"
+
+msgid "CPU"
+msgstr "CPU"
+
+msgid "Number of times client has contacted server"
+msgstr "Anzahl der Verbindungen zum Server"
+
+msgid "Last contact"
+msgstr "Letzter Kontakt"
+
+msgid "Serial number"
+msgstr "Seriennummer"
+
+msgid "Timezone"
+msgstr "Zeitzone"
+
+msgid "Platform ID"
+msgstr "Plattform ID"
+
+msgid "Task ID"
+msgstr "Aufgaben ID"
+
+msgid "Workunit ID"
+msgstr "Job ID"
+
+msgid "Host ID"
+msgstr "Rechner ID"
+
+msgid "Application ID"
+msgstr "Anwendungs ID"
+
+msgid "Application version"
+msgstr "Anwendungsversion"
+
+msgid "Claimed credit"
+msgstr "geforderte Punkte"
+
+msgid "Client state"
+msgstr "Clientstatus"
+
+msgid "CPU time"
+msgstr "CPU Zeit"
+
+msgid "Run time"
+msgstr "Laufzeit"
+
+msgid "Exit status"
+msgstr "Endstatus"
+
+msgid "Granted credit"
+msgstr "Gewährte Punkte"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Wenn Sie eine Version von BOINC älter als 5.0 verwenden, müssen Sie erst auf eine neuere Version aktualisieren um ein Konto anlegen zu können."
+msgid "Outcome"
+msgstr "Resultat"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Wenn Sie die E-Mail-Adresse des Kontos noch wissen und die E-Mails auch abrufen können:"
+msgid "Received time"
+msgstr "Empfangen um"
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Bitte die E-Mail-Adresse eingeben und bestätigen. Eine E-Mail mit Anweisungen zum zurücksetzen Ihres Passwortes wird in kürze verschickt."
+msgid "Report deadline"
+msgstr "Ablaufdatum"
 
-msgid "OK"
-msgstr "OK"
+msgid "Sent"
+msgstr "Gesendet"
 
-msgid "The latest news from the @site_name project"
-msgstr "Die aktuellsten Neuigkeiten vom @site_name Projekt"
+msgid "Server state"
+msgstr "Serverstatus"
 
-msgid "Comment form"
-msgstr "Kommentar von"
+msgid "Stderr out"
+msgstr "Stderr Ausgabe"
 
-msgid "Total credits"
-msgstr "Gesamtpunkte"
+msgid "Validation state"
+msgstr "Prüfungsstatus"
 
-msgid "Recent avg credits"
-msgstr "Aktueller Punktedurchschnitt"
+msgid "App ID"
+msgstr "App-ID"
 
-msgid "Country"
-msgstr "Land"
+msgid "Canonical credit"
+msgstr "Anerkannte Punkte"
 
-msgid "Type"
-msgstr "Typ"
+msgid "Canonical result ID"
+msgstr "autorisierte Ergebnis ID"
 
-msgid "Founder"
-msgstr "Gründer"
+msgid "Created time"
+msgstr "Erstellungszeit"
 
-msgid "New members in last day"
-msgstr "Neue Mitglieder (letzte 24h)"
+msgid "Error mask"
+msgstr "Fehlermaske"
 
-msgid "Total members"
-msgstr "Mitglieder insgesamt"
+msgid "Minimum quorum"
+msgstr "Mindestanzahl"
 
-msgid "Active members"
-msgstr "aktive Mitglieder"
+msgid "Max error tasks"
+msgstr "Maximale fehlerhafte Aufgaben"
 
-msgid "Members with credit"
-msgstr "Mitglieder mit Punkten"
+msgid "Max success tasks"
+msgstr "Maximale erfolgreiche Aufgaben"
 
-msgid "Description"
-msgstr "Beschreibung"
+msgid "Max total tasks"
+msgstr "Maximale Gesamtaufgaben"
 
-msgid "Search teams"
-msgstr "Such-Gruppen"
+msgid "Needs validation"
+msgstr "Benötigt Validierung"
 
-msgid "Send message"
-msgstr "Nachricht senden"
+msgid "Initial replication"
+msgstr "Anfängliche Kopien"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Target number of results"
+msgstr "Zieltrefferanzahl"
 
-msgid "Project"
-msgstr "Projekt"
+msgid "Application version ID"
+msgstr "Anwendungsversions-ID"
 
-msgid "Web site"
-msgstr "Internetseite"
+msgid "Plan class"
+msgstr "Plan Klasse"
 
-msgid "No active computers"
-msgstr "Keine aktiven Rechner"
+msgid "Version number"
+msgstr "Versionsnummer"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "Dieser Nutzer besitzt keine Computer, die in den letzten 30 Tagen aktiv waren."
+msgid "Computer"
+msgstr "Computer"
 
-msgid " Default value: @default"
-msgstr "Standard-Wert: @default"
+msgid "App version ID"
+msgstr "Anwendungsversions-ID"
 
-msgid "Applications"
-msgstr "Anwendungen"
+msgid "Consecutive valid tasks"
+msgstr "Aufeinander-folgende, gültige Aufgaben"
 
-msgid "yes"
-msgstr "ja"
+msgid "Number of tasks completed"
+msgstr "Anzahl der abgeschloßenen Aufgaben"
 
-msgid "no"
-msgstr "nein"
+msgid "Max tasks per day"
+msgstr "Max. Aufgaben pro Tag"
 
-msgid "Message @id"
-msgstr "Nachricht @id"
+msgid "Number of tasks today"
+msgstr "Anzahl der Aufgaben heute"
 
-msgid "message @id"
-msgstr "Nachricht @id"
+msgid "Manage subscriptions"
+msgstr "Abonnements verwalten"
 
-msgid " in response to !parent"
-msgstr "als Antwort auf !parent"
+msgid "Avg credit"
+msgstr "Punktedurchschnitt"
 
-msgid "Credits per day"
-msgstr "Punkte pro Tag"
+msgid "Total credit"
+msgstr "Gesamtpunkte"
+
+msgid "More"
+msgstr "Mehr"
+
+msgid "Tasks"
+msgstr "Aufgaben"
 
 msgid "Computers hidden"
 msgstr "Computer sind versteckt"
@@ -355,119 +534,97 @@ msgstr "Computer sind versteckt"
 msgid "This user has chosen not to show information about their computers."
 msgstr "Dieser Benutzer hat die Informationen zu seinen Computern verborgen."
 
-msgid "Stderr output"
-msgstr "Stderr Ausgabe"
+msgid "no projects..."
+msgstr "Keine Projekte ..."
 
-msgid "@time ago"
-msgstr "vor @time"
+msgid "Moderation"
+msgstr "Moderation"
 
-msgid "n/a"
-msgstr "nicht verfügbar"
+msgid "Unvetted profiles"
+msgstr "Ungeprüfte Profile"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Eingereicht von !username um !datetime"
+msgid "Inbox"
+msgstr "Posteingang"
 
-msgid "Member since"
-msgstr "Mitglied seit"
+msgid "Compose new"
+msgstr "Neu erstellen"
 
-msgid "View team"
-msgstr "Gruppe anzeigen"
+msgid "Posts contributed"
+msgstr "Kommentar beigetragen"
 
 msgid "Friends (@count)"
 msgstr "Freunde (@count)"
 
-msgid "Website"
-msgstr "Webseite"
-
-msgid "Locked"
-msgstr "Gesperrt"
-
-msgid "Computers pending"
-msgstr "ausstehende Computer"
-
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "Dieser Benutzer hat noch keine Computer verbunden. Diese werden erst angezeigt nachdem Punkte erarbeitet wurden."
-
-msgid "No results found..."
-msgstr "Keine Ergebnisse gefunden ..."
-
-msgid "Background"
-msgstr "Hintergrund"
-
-msgid "Teams"
-msgstr "Gruppen"
+msgid "Welcome back!"
+msgstr "Willkommen zurück!"
 
 msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "Teilnehmer bei @project können sich in Teams organisieren. Sie können in genau einem Team Mitglied sein. Ein Beitritt oder das Verlassen eines teams ist jederzeit möglich. Um einem Team beizutreten klicken Sie auf der Teamseite den Link \"Diesem Team beitreten\". Jedes Team besitzt einen Gründer welcher folgende Möglichkeiten besitzt:"
-
-msgid "access team members' email addresses"
-msgstr "die E-Mail-Adressen der Mitglieder einsehen kann,"
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at home ist ein Programm, welches die Leerlaufzeit Ihres Computers nutzt, um einen Bildschirmschoner anzuzeigen, welcher nach Gravitationswellen von rotierenden Neutronensternen sucht, auch Pulsare genannt. Die Daten kommen vom LIGO (Laser-Interferometer Gravitationswellen-Observatorium) Gravitationswellendetektor."
 
-msgid "edit the team's name and description"
-msgstr "den Namen und die Beschreibung des Teams ändern kann,"
+msgid "Learn more"
+msgstr "Mehr erfahren"
 
-msgid "add or remove team admins"
-msgstr "Hinzufügen oder entfernen von Teamadmins"
+msgid "View account"
+msgstr "Konto ansehen"
 
-msgid "remove members from the team"
-msgstr "Mitglieder aus dem Team entfernen kann,"
+msgid "User of the day"
+msgstr "Nutzer des Tages"
 
-msgid "disband a team if it has no members"
-msgstr "ein Team auflösen kann, wenn es keine Mitglieder mehr hat."
+msgid "Over 500,000 volunteers and counting."
+msgstr "Über 500.000 Freiwillige und es werden noch mehr."
 
-msgid "Create a new team"
-msgstr "Neues Team erstellen"
+msgid "Windows"
+msgstr "Windows"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Falls du kein Team findest was zu dir passt, kannst du selber eins gründen."
+msgid "Mac"
+msgstr "Mac"
 
-msgid "You must earn @count more credits!"
-msgstr "Es müssen noch mindstens @count Punkte errechnet werden!"
+msgid "Linux"
+msgstr "Linux"
 
-msgid "Threads"
-msgstr "Themen"
+msgid "Credits per day"
+msgstr "Punkte pro Tag"
 
-msgid "Posts"
-msgstr "Beiträge"
+msgid "View user profile."
+msgstr "Benutzerprofil anzeigen."
 
-msgid "Last post"
-msgstr "Letzter Beitrag"
+msgid "Profile awaiting moderator approval"
+msgstr "Profil erwartet Bestätigung durch Moderator"
 
-msgid "Manage subscriptions"
-msgstr "Abonnements verwalten"
+msgid "Background"
+msgstr "Hintergrund"
 
-msgid "Featured"
-msgstr "Angezeigt"
+msgid "Opinion"
+msgstr "Meinung"
 
-msgid "Submitted on !datetime"
-msgstr "Eingereicht um !datetime "
+msgid "Enter your password to save changes"
+msgstr "Passwort eingeben um Änderungen zu speichern"
 
-msgid "Comments"
-msgstr "Kommentare"
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Geben Sie ihr Passwort ein, wenn Sie Ihre E-Mail-Adresse oder Passwort ändern möchten."
 
-msgid "Opinion"
-msgstr "Meinung"
+msgid "BOINC user ID"
+msgstr "BOINC-Benutzer-ID"
 
-msgid "More"
-msgstr "Mehr"
+msgid "Drupal user ID"
+msgstr "Drupal-Benutzer-ID"
 
-msgid "Tasks"
-msgstr "Aufgaben"
+msgid "Account key"
+msgstr "Kontoschlüssel"
 
-msgid "Generic"
-msgstr "Generisch"
+msgid "Weak account key"
+msgstr "schwacher Kontoschlüssel"
 
-msgid "Work"
-msgstr "Arbeit"
+msgid "Cross-project ID"
+msgstr "Projektübergreifende ID"
 
-msgid "School"
-msgstr "in der Schule"
+msgid "Change password"
+msgstr "Passwort ändern"
 
 msgid "Presets"
 msgstr "Voreinstellungen"
@@ -488,7 +645,7 @@ msgid "Custom"
 msgstr "benutzerdefiniert "
 
 msgid "Update preset"
-msgstr "Aktualisiere Voreinstellung"
+msgstr "Voreinstellungen aktualisieren"
 
 msgid "Advanced settings"
 msgstr "Erweiterte Einstellungen"
@@ -508,9 +665,6 @@ msgstr "Rechnen während der Computer benutzt wird?"
 msgid "Run GPU work while computer is in use?"
 msgstr "GPU-Arbeit ausführen wenn der Computer benutzt wird?"
 
-msgid "Enforced by version @number"
-msgstr "Unterstützt ab Version @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "'In Benutzung' bedeutet Maus/Tastatur Aktivitäten in den letzten"
 
@@ -550,947 +704,744 @@ msgstr "Zwischen Aufgaben wechseln alle"
 msgid "Recommended: @period minutes"
 msgstr "Empfehlung: @period Minuten"
 
-msgid "On multiprocessors, use at most"
-msgstr "Bei mehreren Prozessoren, nutze höchstens"
-
-msgid "processors"
-msgstr "Prozessoren"
-
-msgid "Set to 0 for no limit"
-msgstr "Auf 0 setzen für keine Begrenzung"
-
-msgid "% of the processors"
-msgstr "% der Prozessoren"
-
-msgid "Use at most"
-msgstr "Nutze höchstens"
-
-msgid "% of the CPU time"
-msgstr "% der CPU-Zeit"
-
-msgid "Can be used to reduce CPU heat"
-msgstr "Kann benutzt werden um CPU Überhitzung zu vermeiden"
-
-msgid "Disk and memory usage"
-msgstr "Festplatten- und Speichernutzung"
-
-msgid "Disk: use at most"
-msgstr "Festplatte: nutze höchstens"
-
-msgid "Disk: leave free at least"
-msgstr "Festplatte: mindestens frei lassen"
-
-msgid "Values smaller than @number are ignored"
-msgstr "Werte kleiner als @number werden ignoriert"
-
-msgid "% of total"
-msgstr "% von Gesamt"
-
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Sicherung der Aufgaben auf die Festplatte höchstens alle"
-
-msgid "seconds"
-msgstr "Sekunden"
-
-msgid "Swap space: use at most"
-msgstr "Auslagerungsspeicher: nutze höchstens"
-
-msgid "Memory: when computer is in use, use at most"
-msgstr "Arbeitsspeicher: wenn Computer benutzt wird, nutze höchstens"
-
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Arbeitsspeicher: wenn Computer nicht genutzt wird, nutze höchstens"
-
-msgid "Network usage"
-msgstr "Netzwerknutzung"
-
-msgid "Computer is connected to the Internet about every"
-msgstr "Rechner ist mit dem Internet verbunden alle"
-
-msgid "days"
-msgstr "Tage"
-
-msgid ""
-"Leave blank or 0 if always connected. @project will try to maintain at least"
-" this much work."
-msgstr "Leer lassen oder 0 falls immer verbunden. @project wird mindestens so viel Arbeit zur Verfügung halten"
-
-msgid "Maintain enough work for an additional"
-msgstr "Halte genug Arbeit zur Verfügung für zusätzliche"
-
-msgid "Confirm before connecting to Internet?"
-msgstr "Vor dem Verbinden mit dem Internet bestätigen?"
-
-msgid "Matters only if you have a modem, ISDN, or VPN connection"
-msgstr "Spielt nur dann eine Rolle, wenn Sie eine Verbindung via Modem, ISDN oder VPN aufbauen"
-
-msgid "Disconnect when done?"
-msgstr "Verbindung trennen, wenn erledigt?"
-
-msgid "Maximum download rate"
-msgstr "Maximale Download-Rate"
-
-msgid "Maximum upload rate"
-msgstr "Maximale Upload-Rate"
-
-msgid "Use network only between the hours of:"
-msgstr "Netzwerk nur zwischen folgenden Stunden benutzen:"
-
-msgid "Transfer at most"
-msgstr "Übertrage höchstens"
-
-msgid "Skip image file verification?"
-msgstr "Bilddatei-Überprüfung überspringen?"
-
-msgid ""
-"Check this ONLY if your Internet provider modifies image files (UMTS does "
-"this, for example). Skipping verification reduces the security of BOINC."
-msgstr "Nur wählen, wenn Ihr Internetanbieter Bilddateien verändert (z.B. bei UMTS)."
-
-msgid "Show comparison view"
-msgstr "Vergleichsansicht anzeigen"
-
-msgid "Resource settings"
-msgstr "Ressourceneinstellungen"
-
-msgid "Resource share"
-msgstr "Ressourcenaufteilung"
-
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Bestimmt den Anteil an den Ressourcen des Computer die diesem Projekt zur Verfügung stehen. Beispiel: Bei einer Aufteilung zwischen zwei Projekten von 100 und 200 wird das erste 1/3 der Ressourcen bekommen und das andere 2/3."
-
-msgid "Use CPU"
-msgstr "CPU benutzen"
-
-msgid "Use NVIDIA GPU"
-msgstr "NVIDIA-Grafikprozessor benutzen"
-
-msgid "Use ATI GPU"
-msgstr "ATI-Grafikprozessor benutzen"
-
-msgid "Use INTEL GPU"
-msgstr "INTEL-Grafikprozessor benutzen"
-
-msgid "Beta settings"
-msgstr "Beta-Einstellungen"
-
-msgid "Run test applications?"
-msgstr "Testanwendung starten?"
-
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Dies hilft uns, Anwendungen zu verbessern, kann aber zu fehlerhaften Aufgaben auf Ihrem Computers führen"
-
-msgid "Default set"
-msgstr "Standard Set"
-
-msgid "Set used for new computers"
-msgstr "Setze benutzt für neue Computer"
-
-msgid "Merge"
-msgstr "Zusammenführen"
-
-msgid "Delete"
-msgstr "Löschen"
-
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Das wird die Host @id für immer von Ihrem Account löschen. Sind Sie sich wirklich sicher?"
-
-msgid "Mark all topics read"
-msgstr "Alle Themen als gelesen markieren"
-
-msgid "Mark all forums read"
-msgstr "Alle Foren als gelesen markieren"
-
-msgid ""
-"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
-"administrator if this problem persists."
-msgstr "Fehler bei der Überprüfung Ihrer Captchas-Lösung: Unbekannte Captcha-Sitzungs-ID. Bitte kontaktieren Sie den Administrator der Webseite, falls dieses Problem weiterhin besteht."
-
-msgid "The answer you entered for the CAPTCHA was not correct."
-msgstr "Ihre Lösung des Captchas war falsch. "
-
-msgid "Access denied. You must login to view this page."
-msgstr "Zugriff verweigert. Sie müssen sich anmelden, um diese Seite anzuzeigen. "
-
-msgid "You are not authorized to access this page."
-msgstr "Sie haben keine Berechtigung, um auf diese Seite zuzugreifen."
-
-msgid "Disable rich-text"
-msgstr "Rich Text (RTF) ausschalten"
-
-msgid "Enable rich-text"
-msgstr "Rich Text (RTF) einschalten"
-
-msgid "View user profile."
-msgstr "Benutzerprofil anzeigen."
-
-msgid "BBcode help"
-msgstr "BBcode-Hilfe"
-
-msgid "Post comment"
-msgstr "Kommentar abschicken"
-
-msgid "No @type tasks"
-msgstr "Keine @type Aufgaben"
-
-msgid "There are no tasks of this type on record"
-msgstr "Es sind keine Aufgaben von diesem Typ aufgenommen"
-
-msgid "Clear"
-msgstr "Löschen"
-
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Dies wird alle Einstellungen aus den @name Einstellungen entfernen. Sind Sie sicher?"
-
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Diese gelten für alle BOINC Projekte an denen Sie teilnehmen."
-
-msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "Nimmt ein Rechner an mehreren Projekten teil, werden die neuesten Einstellungen verwendet."
-
-msgid "Preferences last modified: @mod_time"
-msgstr "Einstellungen zuletzt geändert: @mod_time"
-
-msgid "Combined preferences"
-msgstr "kombinierte Einstellungen"
-
-msgid "Switch View"
-msgstr "Ansicht wechseln"
-
-msgid "every"
-msgstr "pro"
-
-msgid "Edit"
-msgstr "Bearbeiten"
-
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Dies wird alle Einstellungen aus den \"@name\" Einstellungen entfernen. Sind Sie sicher?"
-
-msgid "Add"
-msgstr "Hinzufügen"
-
-msgid "General settings"
-msgstr "Allgemeine Einstellungen"
-
-msgid "Time zone"
-msgstr "Zeitzone"
-
-msgid "Notification settings"
-msgstr "Benachrichtigungs-Einstellungen"
-
-msgid "Receive email notification for private messages?"
-msgstr "E-Mail-Benachrichtigungen über private Mitteilungen empfangen?"
-
-msgid "Receive email notification for friend requests?"
-msgstr "E-Mail Benachrichtigung für Freundschaftsanfragen erhalten?"
+msgid "On multiprocessors, use at most"
+msgstr "Bei mehreren Prozessoren, nutze höchstens"
 
-msgid "Language settings"
-msgstr "Spracheinstellungen"
+msgid "processors"
+msgstr "Prozessoren"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "Standard-Sprache dieses Kontos für die Anzeige von E-Mails und Seitenansichten."
+msgid "Set to 0 for no limit"
+msgstr "Auf 0 setzen für keine Begrenzung"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "Wenn Sie einen <a href=\"@gravatar-check\">gültigen Gravatar</a> mit Ihrer E-Mail-Adresse verknüpft haben, so wird dieser als Ihr Benutzer-Bild verwendet."
+msgid "% of the processors"
+msgstr "% der Prozessoren"
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Ihr Gravatar wird nicht angezeigt, wenn Sie ein Benutzerbild hochladen."
+msgid "Use at most"
+msgstr "Nutze höchstens"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "Wenn Sie einen <a href=\"@gravatar-check\">gültigen Gravatar</a> mit Ihrer E-Mail-Adresse verknüpft haben, verwenden Sie diesen als Ihr Benutzer-Bild."
+msgid "% of the CPU time"
+msgstr "% der CPU-Zeit"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Gravatar wird nicht angezeigt, wenn ein Avatar hochgeladen wird."
+msgid "Can be used to reduce CPU heat"
+msgstr "Kann benutzt werden um CPU Überhitzung zu vermeiden"
 
-msgid "Avatar settings"
-msgstr "Avatar-Einstellungen"
+msgid "Disk and memory usage"
+msgstr "Festplatten- und Speichernutzung"
 
-msgid "This is not available until your profile is set up."
-msgstr "Dies ist nicht verfügbar, solange Ihr Profil nicht eingerichtet ist."
+msgid "Disk: use at most"
+msgstr "Festplatte: nutze höchstens"
 
-msgid "Create a profile"
-msgstr "Profil erstellen"
+msgid "Disk: leave free at least"
+msgstr "Festplatte: mindestens frei lassen"
 
-msgid "Upload an avatar"
-msgstr "Avatar hochladen"
+msgid "Values smaller than @number are ignored"
+msgstr "Werte kleiner als @number werden ignoriert"
 
-msgid "Forum settings"
-msgstr "Foreneinstellungen"
+msgid "% of total"
+msgstr "% von Gesamt"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "In Themengebieten, zeige maximal @comments_per_page"
+msgid "Tasks checkpoint to disk at most every"
+msgstr "Sicherung der Aufgaben auf die Festplatte höchstens alle"
 
-msgid "comments per page"
-msgstr "Kommentare pro Seite"
+msgid "seconds"
+msgstr "Sekunden"
 
-msgid "Sort comments in discussions"
-msgstr "Kommentare in Diskussionen sortieren"
+msgid "Swap space: use at most"
+msgstr "Auslagerungsspeicher: nutze höchstens"
 
-msgid "Newest post first"
-msgstr "Neuester Beitrag zuerst"
+msgid "Memory: when computer is in use, use at most"
+msgstr "Arbeitsspeicher: wenn Computer benutzt wird, nutze höchstens"
 
-msgid "Oldest post first"
-msgstr "Ältester Beitrag zuerst"
+msgid "Memory: when computer is not in use, use at most"
+msgstr "Arbeitsspeicher: wenn Computer nicht genutzt wird, nutze höchstens"
 
-msgid "Signature"
-msgstr "Signatur"
+msgid "Network usage"
+msgstr "Netzwerknutzung"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "Ihre Signatur wird am Ende Ihrer Kommentare angezeigt."
+msgid "Computer is connected to the Internet about every"
+msgstr "Rechner ist mit dem Internet verbunden alle"
 
-msgid "Hide signatures in forums"
-msgstr "Signaturen in Foren nicht anzeigen"
+msgid "days"
+msgstr "Tage"
 
-msgid "Privacy settings"
-msgstr "Datenschutz-Einstellungen"
+msgid ""
+"Leave blank or 0 if always connected. @project will try to maintain at least"
+" this much work."
+msgstr "Leer lassen oder 0 falls immer verbunden. @project wird mindestens so viel Arbeit zur Verfügung halten"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Ist es OK für @project und Dein Team (wenn beigetreten) Dich per E-Mail zu kontaktieren?"
+msgid "Maintain enough work for an additional"
+msgstr "Halte genug Arbeit zur Verfügung für zusätzliche"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Soll @project Ihren Rechner auf seiner Webseite anzeigen?"
+msgid "Confirm before connecting to Internet?"
+msgstr "Vor dem Verbinden mit dem Internet bestätigen?"
 
-msgid "Hide"
-msgstr "Verstecken"
+msgid "Matters only if you have a modem, ISDN, or VPN connection"
+msgstr "Spielt nur dann eine Rolle, wenn Sie eine Verbindung via Modem, ISDN oder VPN aufbauen"
 
-msgid "Hide this topic"
-msgstr "Dieses Thema verstecken"
+msgid "Disconnect when done?"
+msgstr "Verbindung trennen, wenn erledigt?"
 
-msgid "Lock"
-msgstr "Sperren"
+msgid "Maximum download rate"
+msgstr "Maximale Download-Rate"
 
-msgid "Lock this thread for comments"
-msgstr "Diesen Strang für Kommentare sperren"
+msgid "Maximum upload rate"
+msgstr "Maximale Upload-Rate"
 
-msgid "Make sticky"
-msgstr "Anpinnen"
+msgid "Use network only between the hours of:"
+msgstr "Netzwerk nur zwischen folgenden Stunden benutzen:"
 
-msgid "Make this topic sticky"
-msgstr "Diese Thema festpinnen"
+msgid "Transfer at most"
+msgstr "Übertrage höchstens"
 
-msgid "moderation"
-msgstr "Moderation"
+msgid "Skip image file verification?"
+msgstr "Bilddatei-Überprüfung überspringen?"
 
-msgid "Post new comment"
-msgstr "Neuen Kommentar abschicken"
+msgid ""
+"Check this ONLY if your Internet provider modifies image files (UMTS does "
+"this, for example). Skipping verification reduces the security of BOINC."
+msgstr "Nur wählen, wenn Ihr Internetanbieter Bilddateien verändert (z.B. bei UMTS)."
 
-msgid "You must earn 1 more credit!"
-msgstr "Sie müssen noch 1 zusätzlichen Punkt errechnen"
+msgid "search"
+msgstr "Suche"
 
-msgid "Joined"
-msgstr "Beitritt"
+msgid "What is @this_project?"
+msgstr "Was ist @this_project?"
 
-msgid "Credit"
-msgstr "Punkte"
+msgid "Login"
+msgstr "Login"
 
-msgid "RAC"
-msgstr "RAC"
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Join team"
-msgstr "Team beitreten"
+msgid "Project"
+msgstr "Projekt"
 
-msgid "Click here to become a member of @this_team"
-msgstr "Hier klicken, um ein Mitglied der Gruppe @this_team zu werden"
+msgid "No @type tasks"
+msgstr "Keine @type Aufgaben"
 
-msgid "Join this team"
-msgstr "Diesem Team beitreten"
+msgid "There are no tasks of this type on record"
+msgstr "Es gibt aktuell keine Aufgaben von diesem Typ"
 
-msgid "Manage team"
-msgstr "Gruppe verwalten"
+msgid "Details"
+msgstr "Details"
 
-msgid "View member list"
-msgstr "Mitgliederliste anzeigen"
+msgid "Password"
+msgstr "Passwort"
 
-msgid "Member names and emails"
-msgstr "Namen und E-Mails der Mitglieder anzeigen"
+msgid "Enter the password that accompanies your username."
+msgstr "Geben Sie das Passwort ein, dass Ihrem Benutzernamen zugeordnet ist."
 
-msgid "View change history"
-msgstr "Änderungshistorie anzeigen"
+msgid "Request new password"
+msgstr "Neues Passwort anfordern"
 
-msgid "See member activity"
-msgstr "Mitgliederaktivität anzeigen"
+msgid "Mark all topics read"
+msgstr "Alle Themen als gelesen markieren"
 
-msgid "Manage team message board"
-msgstr "Team-Diskussionsforum verwalten"
+msgid "Mark all forums read"
+msgstr "Alle Foren als gelesen markieren"
 
-msgid "Create or manage message board"
-msgstr "Diskussionsforum erstellen oder verwalten"
+msgid ""
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
+msgstr "Fehler bei der Überprüfung Ihrer Captchas-Lösung: Unbekannte Captcha-Sitzungs-ID. Bitte kontaktieren Sie den Administrator der Webseite, falls dieses Problem weiterhin besteht."
 
-msgid "Remove members"
-msgstr "Mitglieder entfernen"
+msgid "The answer you entered for the CAPTCHA was not correct."
+msgstr "Ihre Lösung des Captchas war falsch. "
 
-msgid "Change founder"
-msgstr "Gründer wechseln"
+msgid "Access denied. You must login to view this page."
+msgstr "Zugriff verweigert. Sie müssen sich anmelden, um diese Seite anzuzeigen. "
 
-msgid "Manage team admins"
-msgstr "Gruppen-Verwalter verwalten"
+msgid "You are not authorized to access this page."
+msgstr "Sie haben keine Berechtigung, um auf diese Seite zuzugreifen."
 
-msgid "Edit team info"
-msgstr "Teaminformationen bearbeiten"
+msgid "Disable rich-text"
+msgstr "Rich Text (RTF) ausschalten"
 
-msgid "Remove team"
-msgstr "Team entfernen"
+msgid "Enable rich-text"
+msgstr "Rich Text (RTF) einschalten"
 
-msgid "Team forum"
-msgstr "Gruppen-Forum"
+msgid "Teams"
+msgstr "Teams"
 
-msgid "A discussion forum has been set up for team members."
-msgstr "Ein Diskussionsforum wurde für Gruppenmitglieder eingerichtet."
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "Teilnehmer bei @project können sich in Teams organisieren. Sie können in genau einem Team Mitglied sein. Ein Beitritt oder das Verlassen eines teams ist jederzeit möglich. Um einem Team beizutreten klicken Sie auf der Teamseite den Link \"Diesem Team beitreten\". Jedes Team besitzt einen Gründer welcher folgende Möglichkeiten besitzt:"
 
-msgid "Enter forum"
-msgstr "Forum betreten"
+msgid "access team members' email addresses"
+msgstr "die E-Mail-Adressen der Mitglieder einsehen kann,"
 
-msgid "Leave team"
-msgstr "Gruppe verlassen"
+msgid "edit the team's name and description"
+msgstr "den Namen und die Beschreibung des Teams ändern kann,"
 
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Hier klicken, um die Gruppe @this_team zu verlassen"
+msgid "add or remove team admins"
+msgstr "Hinzufügen oder entfernen von Teamadmins"
 
-msgid "Leave this team"
-msgstr "Verlasse diese Gruppe"
+msgid "remove members from the team"
+msgstr "Mitglieder aus dem Team entfernen kann,"
 
-msgid "Edit message board"
-msgstr "Forum bearbeiten"
+msgid "disband a team if it has no members"
+msgstr "ein Team auflösen kann, wenn es keine Mitglieder mehr hat."
 
-msgid "Message board title"
-msgstr "Diskussionsforen Titel"
+msgid "Search teams"
+msgstr "Team suchen"
 
-msgid "Text only, no HTML tags"
-msgstr "Nur Text, keine HTML-Tags"
+msgid "Create a new team"
+msgstr "Neues Team erstellen"
 
-msgid "Minimum time between posts"
-msgstr "Zeitpause zwischen dem Abschicken zweier Beiträge"
+msgid ""
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Falls du kein Team findest was zu dir passt, kannst du selber eins gründen."
 
-msgid "Seconds"
-msgstr "Sekunden"
+msgid "You must earn 1 more credit!"
+msgstr "Sie müssen noch 1 zusätzlichen Punkt errechnen!"
 
-msgid "Minimum total credit to post"
-msgstr "Mindestpunktzahl (Gesamt) für Schreibrecht"
+msgid "@count million ops/sec"
+msgstr "@count Millionen Operationen/Sek"
 
-msgid "Minimum avg credit to post"
-msgstr "Mindestpunktzahl (Durchschnitt) für Schreibrecht"
+msgid "@rate KiB/sec"
+msgstr "@rate KB/sec"
 
-msgid "Allow public to read board?"
-msgstr "Brett öffentlich lesbar machen?"
+msgid "@count days"
+msgstr "@count Tage"
 
-msgid "Save message board"
-msgstr "Forum speichern"
+msgid "Stderr output"
+msgstr "Stderr Ausgabe"
 
-msgid "About message boards"
-msgstr "Über Diskussionsforen"
+msgid "Email address"
+msgstr "E-Mail-Adresse"
 
-msgid "This is a team-only message board"
-msgstr "Dies ist ein geschlossenes Team- Diskussionsforum"
+msgid "Enter your @s email address."
+msgstr "@s E-Mail-Adresse eingeben"
 
-msgid "Only members may post"
-msgstr "Nur Mitglieder können Beiträge verfassen"
+msgid "Log in"
+msgstr "Anmelden"
 
-msgid "Only members may read (optional)"
-msgstr "Nur Mitglieder können Beiträge lesen (optional)"
+msgid "Sorry, unrecognized email address or password."
+msgstr "Falsche E-Mail-Adresse oder falsches Passwort."
 
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Der Gründer und die Team-Admins haben Moderatorenrechte."
+msgid "Have you forgotten your password?"
+msgstr "Haben Sie Ihr Passwort vergessen?"
 
-msgid "Changing the team founder"
-msgstr "Gruppen-Gründer wechseln"
+msgid "No results found..."
+msgstr "Keine Ergebnisse gefunden ..."
 
-msgid "Notes about changes in foundership:"
-msgstr "Anmerkungen über Änderungen im Gründungsstatus:"
+msgid "Anonymous"
+msgstr "anonym"
 
-msgid "Any member of the team is eligible"
-msgstr "Jedes Gruppenmitglied ist wählbar"
+msgid "Forgot password"
+msgstr "Passwort vergessen"
 
-msgid "Current founder becomes a normal user"
-msgstr "Bisheriger Gründer wird normaler Benutzer"
+msgid "authenticator-based login"
+msgstr "Authenticator-basierter Login"
 
-msgid "Foundership can be requested by team members:"
-msgstr "Gründungsstatus kann von Teammitgliedern beantragt werden:"
+msgid ""
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Bitte geben Sie Ihre E-Mail-Adresse ein um die Anleitung zum zurücksetzen des Passwortes zu erhalten (oder Sie nutzen den !authenticator_login)."
 
-msgid "One request is allowed at a time"
-msgstr "Es ist immer nur eine Anfrage möglich"
+msgid "Send"
+msgstr "Senden"
 
-msgid "It must be 60 days since any previous request"
-msgstr "Es müssen 60 Tage vergangen sein seit der letzten Anfrage"
+msgid "Submitted by !username on !datetime"
+msgstr "Eingereicht von !username um !datetime"
 
-msgid "Any active request must be older than 90 days"
-msgstr "Jede aktive Anfrage muss älter als 90 Tage sein"
+msgid "Send message"
+msgstr "Nachricht senden"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "Der aktuelle Gründer hat 60 Tage Zeit umd auf die Anfrage zu antworten"
+msgid "Add as friend"
+msgstr "als Freund hinzufügen"
 
-msgid "Add team admin"
-msgstr "Gruppen-Verwalter hinzufügen"
+msgid "Website"
+msgstr "Webseite"
 
-msgid "Enter email address"
-msgstr "E-Mail-Adresse eingeben"
+msgid "Team"
+msgstr "Team"
 
-msgid "Current team admins"
-msgstr "Aktuelle Gruppen-Verwalter"
+msgid "Create new team"
+msgstr "Neues Team anlegen"
 
-msgid "About team admins"
-msgstr "Über Gruppen-Verwalter"
+msgid "Search"
+msgstr "Suche"
 
-msgid "Team admins can:"
-msgstr "Gruppen-Verwalter können:"
+msgid "Total credits"
+msgstr "Gesamtpunkte"
 
-msgid "Edit team information"
-msgstr "Gruppen-Information bearbeiten"
+msgid "Recent avg credits"
+msgstr "Aktueller Punktedurchschnitt"
 
-msgid "View the team's join / quit history"
-msgstr "Mitgliedschafts-Historie der Gruppe anzeigen"
+msgid "Type"
+msgstr "Typ"
 
-msgid "Moderate the team forum"
-msgstr "Gruppenforum moderieren"
+msgid "New members in last day"
+msgstr "Neue Mitglieder (letzte 24h)"
 
-msgid "Remove members from the team"
-msgstr "Mitglieder aus der Gruppen entfernen"
+msgid "Total members"
+msgstr "Mitglieder insgesamt"
 
-msgid "Disband a team if it has no members"
-msgstr "Gruppe auflösen, wenn sie keine Mitglieder mehr hat"
+msgid "Active members"
+msgstr "aktive Mitglieder"
 
-msgid "Team admins cannot:"
-msgstr "Gruppen-Verwalter können nicht:"
+msgid "Members with credit"
+msgstr "Mitglieder mit Punkten"
 
-msgid "Change the team founder"
-msgstr "den Team-Gründer ändern"
+msgid "Web site"
+msgstr "Internetseite"
 
-msgid "Add / Remove team admins"
-msgstr "Gruppen-Verwalter hinzufügen/entfernen"
+msgid "Description"
+msgstr "Beschreibung"
 
-msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Wenn ein Team-Administrator das Team verlässt ist er nicht mehr länger Team-Administrator. Wir empfehlen es nur Leute auszuwählen, die Sie kennen und denen Sie vertrauen"
+msgid "BBcode help"
+msgstr "BBcode-Hilfe"
 
-msgid "Choose type"
-msgstr "Typ auswählen"
+msgid "Post comment"
+msgstr "Kommentar abschicken"
 
-msgid "Team name"
-msgstr "Teamname"
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "zu Hause"
 
-msgid "Team name -- HTML version (optional)"
-msgstr "Gruppenname – HTML-Version (optional)"
+msgid "The latest news from the @site_name project"
+msgstr "Die aktuellsten Neuigkeiten vom @site_name Projekt"
 
-msgid "You may use limited HTML tags"
-msgstr "Sie können eingeschränkte HTML-Tags verwenden"
+msgid "Hide"
+msgstr "Verstecken"
 
-msgid "Team website (optional)"
-msgstr "Gruppen-Webseite (optional)"
+msgid "Hide this topic"
+msgstr "Dieses Thema verstecken"
 
-msgid "Displayed on the team's page"
-msgstr "Angezeigt auf der Gruppenseite"
+msgid "Lock"
+msgstr "Sperren"
 
-msgid "Type of team"
-msgstr "Typ des Teams"
+msgid "Lock this thread for comments"
+msgstr "Diesen Strang für Kommentare sperren"
 
-msgid "Accept new members?"
-msgstr "Neue Mitglieder akzeptieren?"
+msgid "Make sticky"
+msgstr "Anpinnen"
 
-msgid "Description of team"
-msgstr "Beschreibung des Teams"
+msgid "Make this topic sticky"
+msgstr "Dieses Thema festpinnen"
 
-msgid "Create new team"
-msgstr "Neue Gruppe anlegen"
+msgid "moderation"
+msgstr "Moderation"
 
-msgid "Create a team"
-msgstr "Ein Team erstellen"
+msgid "Reply"
+msgstr "Antworten"
 
-msgid "Save team"
-msgstr "Gruppe speichern"
+msgid "Reply to this comment"
+msgstr "Auf diesen Kommentar antworten"
 
-msgid "Create team message board"
-msgstr "Team-Diskussionsforum erstellen"
+msgid "Quote"
+msgstr "Zitieren"
 
-msgid "Create message board"
-msgstr "Diskussionsforum erstellen"
+msgid "Reply to this comment with quote"
+msgstr "Auf diesen Kommentar mit Zitat antworten"
 
-msgid "You may create a message board for use by @team"
-msgstr "Sie können ein Diskussionsforum zur Nutzung durch @team erstellen"
+msgid "Edit"
+msgstr "Bearbeiten"
 
-msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Bitte die durchschnittlichen Punkte angeben die ein Benutzer erreichen muss, um Kommentare im Diskussionsforum erstellen zu können."
+msgid "Edit this comment"
+msgstr "Diesen Kommentar bearbeiten"
 
-msgid "Post new topic"
-msgstr "Neues Thema erstellen"
+msgid "Delete"
+msgstr "Löschen"
 
-msgid "Anonymous"
-msgstr "anonym"
+msgid "Delete this comment"
+msgstr "Diesen Kommentar löschen"
 
-msgid "Unpublished"
-msgstr "Unveröffentlicht"
+msgid "Hide this comment"
+msgstr "Diesen Kommentar verstecken"
 
-msgid "parent removed"
-msgstr "Elternelement wurde gelöscht"
+msgid "Message @id"
+msgstr "Nachricht @id"
 
-msgid "Sorry, unrecognized email address or password."
-msgstr "Falsche E-Mail-Adresse oder falsches Passwort."
+msgid "Convert"
+msgstr "Konvertieren"
 
-msgid "Have you forgotten your password?"
-msgstr "Haben Sie Ihr Passwort vergessen?"
+msgid "Convert this comment to a new topic"
+msgstr "Diesen Kommentar in ein neues Thema umwandeln"
 
-msgid "Id"
-msgstr "ID"
+msgid "message @id"
+msgstr "Nachricht @id"
 
-msgid "Recent average credit"
-msgstr "aktueller Punktedurchschnitt"
+msgid " in response to !parent"
+msgstr "als Antwort auf !parent"
 
-msgid "Members"
-msgstr "Mitglieder"
+msgid "Post new comment"
+msgstr "Neuen Kommentar abschicken"
 
-msgid "Total Credit"
-msgstr "Gesamtpunkte"
+msgid "Comments"
+msgstr "Kommentare"
 
-msgid "User ID"
-msgstr "Benutzer ID"
+msgid "discuss"
+msgstr "diskutieren"
 
-msgid "User"
-msgstr "Benutzer"
+msgid "n/a"
+msgstr "nicht verfügbar"
 
-msgid "Admin since"
-msgstr "Verwalter seit"
+msgid "@time ago"
+msgstr "vor @time"
 
-msgid "Team ID"
-msgstr "Gruppen-ID"
+msgid "Threads"
+msgstr "Themen"
 
-msgid "User joined"
-msgstr "Benutzer ist beigetreten"
+msgid "Posts"
+msgstr "Beiträge"
 
-msgid "Timestamp"
-msgstr "Zeitstempel"
+msgid "Last post"
+msgstr "Letzter Beitrag"
 
-msgid "Account Key"
-msgstr "Account Schlüssel"
+msgid ""
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Bitte seien Sie verantwortungsbewusst mit dem was Sie schreiben und erstellen Sie keine Beiträge welche beleidigend oder abwertend sind. Beleidigende Beiträge oder Themen werden von den Forenmoderatoren ohne Warnung oder Diskussion gelöscht. Bitte reagieren Sie nicht auf beleidigende Beiträge. Nutzen Sie den \"melden\" Link des Beitrags um einen Moderator darauf aufmerksam zu machen."
 
-msgid "CPID"
-msgstr "CPID"
+msgid "this project"
+msgstr "dieses Projekt"
 
-msgid "Email Address"
-msgstr "E-Mail-Adresse"
+msgid ""
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Wir möchten Sie außerdem bitten, dass alle Diskussionen in den Foren einen Bezug zu @project oder BOINC haben. Mit der kleinen Ausnahme des Science Bereichs wo alle Themen welche die zugrunde liegende Forschung betrifft diskutiert werden können. Wenn Sie an einer generelleren Diskussion teilnehmen wollen, wenden Sie sich bitte an ein inoffizielles Forum von @project."
 
-msgid "Password Hash"
-msgstr "Passwort-Hash"
+msgid "These message boards now support BBCode tags only."
+msgstr "Die Nachrichtenforen unterstützen nur BBCode-Tags."
 
-msgid "Postal Code"
-msgstr "Postleitzahl"
+msgid "Featured"
+msgstr "Hervorgehoben"
 
-msgid "Send Email"
-msgstr "E-Mail senden"
+msgid "Locked"
+msgstr "Gesperrt"
 
-msgid "Show Hosts"
-msgstr "Zeige Host"
+msgid "Submitted on !datetime"
+msgstr "Eingereicht um !datetime "
 
-msgid "URL"
-msgstr "URL"
+msgid "Computers pending"
+msgstr "ausstehende Computer"
 
-msgid "Computer ID"
-msgstr "Computer-ID"
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Dieser Benutzer hat noch keine Computer verbunden. Diese werden erst angezeigt nachdem Punkte erarbeitet wurden."
 
-msgid "Location"
-msgstr "Ort"
+msgid "Show IP address"
+msgstr "Zeige IP-Adresse"
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Während BOINC läuft, sind in % der Zeit Berechnungen erlaubt"
+msgid "Download the desktop software"
+msgstr "Herunterladen der Desktopanwendung"
 
-msgid "Average turnaround time"
-msgstr "mittlere Taskdauer"
+msgid "Run the installer"
+msgstr "Installer starten"
 
-msgid "Created"
-msgstr "Erstellt"
+msgid "hours"
+msgstr "Stunden"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Während BOINC läuft, besteht % der Zeit eine Internetverbindung"
+msgid "When prompted enter @siteurl"
+msgstr "Wenn gefordert, geben Sie die @siteurl ein"
 
-msgid "Average CPU efficiency"
-msgstr "mittlere CPU-Effizienz"
+msgid "Merge"
+msgstr "Zusammenführen"
 
-msgid "Free disk space"
-msgstr "Freier Festplatten-Speicherplatz"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Das wird die Host @id für immer von Ihrem Account löschen. Sind Sie sich wirklich sicher?"
 
-msgid "Total disk space"
-msgstr "gesamter Festplattenspeicher"
+msgid "Post topic"
+msgstr "Beitrag erstellen"
 
-msgid "Task duration correction factor"
-msgstr "Korrekturfaktor der Taskdauer"
+msgid "Leave team"
+msgstr "Team verlassen"
 
-msgid "Avg. credit"
-msgstr "Punktedurchschnitt"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Hier klicken, um das Team @this_team zu verlassen"
 
-msgid "External IP address"
-msgstr "Externe IP-Adresse"
+msgid "Leave this team"
+msgstr "Verlasse dieses Team"
 
-msgid "Cross project ID"
-msgstr "Projektübergreifende ID"
+msgid "Request foundership"
+msgstr "Gründerstatus anfordern"
 
-msgid "Last IP address"
-msgstr "Letzte IP-Adresse"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Wenn der Teamgründer nicht aktiv ist und Sie die Rolle des Gründers übernehmen wollen, klicken Sie unten, um den Gründerstatus für @this_team anzufordern."
 
-msgid "Cache"
-msgstr "CPU Cache"
+msgid "Initiate request"
+msgstr "Übernahme einleiten"
 
-msgid "Memory"
-msgstr "Arbeitsspeicher"
+msgid "No active computers"
+msgstr "Keine aktiven Rechner"
 
-msgid "Swap space"
-msgstr "Auslagerungsdatei"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Dieser Nutzer besitzt keine Computer, die in den letzten 30 Tagen aktiv waren."
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "Maximale tägliche WU-Quote pro CPU"
+msgid "Clear"
+msgstr "Löschen"
 
-msgid "Average download rate"
-msgstr "mittlere Downloadgeschwindigkeit"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Dies wird alle Einstellungen aus den @name Einstellungen entfernen. Sind Sie sicher?"
 
-msgid "Average upload rate"
-msgstr "mittlere Uploadgeschwindigkeit"
+msgid "Your community preferences have been updated."
+msgstr "Ihre Communityeinstellungen wurden aktualisiert."
 
-msgid "Same IP address count"
-msgstr "Selbe IP Adresse"
+msgid "Combined preferences"
+msgstr "kombinierte Einstellungen"
 
-msgid "% of time BOINC client is running"
-msgstr "% der Zeit ist Boinc am laufen"
+msgid "Switch View"
+msgstr "Ansicht wechseln"
 
-msgid "Operating system"
-msgstr "Betriebssystem"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Dies wird alle Einstellungen aus den \"@name\" Einstellungen entfernen. Sind Sie sicher?"
 
-msgid "Operating system version"
-msgstr "Betriebssystem-Version"
+msgid "Approve profile"
+msgstr "Profil bestätigen"
 
-msgid "Measured floating point speed"
-msgstr "ermittelte Geschwindigkeit für Gleitkommazahlen"
+msgid "Approve this profile content"
+msgstr "Profilinhalt bestätigen"
 
-msgid "Measured integer speed"
-msgstr "ermittelte Geschwindigkeit für ganze Zahlen"
+msgid "Reject this profile content"
+msgstr "Profilinhalt ablehnen"
 
-msgid "CPU model"
-msgstr "CPU-Modell"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Diese gelten für alle BOINC Projekte an denen Sie teilnehmen."
 
-msgid "Number of processors"
-msgstr "Anzahl der Prozessoren"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Nimmt ein Rechner an mehreren Projekten teil, werden die neuesten Einstellungen verwendet."
 
-msgid "CPU"
-msgstr "CPU"
+msgid "Preferences last modified: @mod_time"
+msgstr "Einstellungen zuletzt geändert: @mod_time"
 
-msgid "Number of times client has contacted server"
-msgstr "Anzahl der Verbindungen zum Server"
+msgid "every"
+msgstr "pro"
 
-msgid "Last contact"
-msgstr "Letzter Kontakt"
+msgid "Add"
+msgstr "Hinzufügen"
 
-msgid "Serial number"
-msgstr "Seriennummer"
+msgid "My team"
+msgstr "Ihr Team"
 
-msgid "Timezone"
-msgstr "Zeitzone"
+msgid "You are a member of @team."
+msgstr "Sie sind Mitglied bei @team."
 
-msgid "Platform ID"
-msgstr "Plattform ID"
+msgid "View my team"
+msgstr "Ihr Team anzeigen"
 
-msgid "Task ID"
-msgstr "Aufgaben ID"
+msgid "Manage team"
+msgstr "Team verwalten"
 
-msgid "Workunit ID"
-msgstr "Job ID"
+msgid "View member list"
+msgstr "Mitgliederliste anzeigen"
 
-msgid "Host ID"
-msgstr "Rechner ID"
+msgid "Member names and emails"
+msgstr "Namen und E-Mails der Mitglieder anzeigen"
 
-msgid "Application ID"
-msgstr "Anwendungs ID"
+msgid "View change history"
+msgstr "Änderungshistorie anzeigen"
 
-msgid "Application version"
-msgstr "Anwendungsversion"
+msgid "See member activity"
+msgstr "Mitgliederaktivität anzeigen"
 
-msgid "Claimed credit"
-msgstr "geforderte Punkte"
+msgid "Manage team message board"
+msgstr "Team-Diskussionsforum verwalten"
 
-msgid "Client state"
-msgstr "Clientstatus"
+msgid "Create or manage message board"
+msgstr "Diskussionsforum erstellen oder verwalten"
 
-msgid "CPU time"
-msgstr "CPU Zeit"
+msgid "Remove members"
+msgstr "Mitglieder entfernen"
 
-msgid "Run time"
-msgstr "Laufzeit"
+msgid "Change founder"
+msgstr "Gründer wechseln"
 
-msgid "Exit status"
-msgstr "Endstatus"
+msgid "Manage team admins"
+msgstr "Team-Verwalter verwalten"
 
-msgid "Granted credit"
-msgstr "Gewährte Punkte"
+msgid "Edit team info"
+msgstr "Teaminformationen bearbeiten"
 
-msgid "Outcome"
-msgstr "Resultat"
+msgid "Remove team"
+msgstr "Team entfernen"
 
-msgid "Received time"
-msgstr "Empfangen um"
+msgid "Team forum"
+msgstr "Team-Forum"
 
-msgid "Report deadline"
-msgstr "Ablaufdatum"
+msgid "A discussion forum has been set up for team members."
+msgstr "Ein Diskussionsforum wurde für Teammitglieder eingerichtet."
 
-msgid "Sent"
-msgstr "Gesendet"
+msgid "Enter forum"
+msgstr "Forum betreten"
 
-msgid "Server state"
-msgstr "Serverstatus"
+msgid "Join team"
+msgstr "Team beitreten"
 
-msgid "Stderr out"
-msgstr "Stderr Ausgabe"
+msgid "Click here to become a member of @this_team"
+msgstr "Hier klicken, um ein Mitglied des Teams @this_team zu werden"
 
-msgid "Validation state"
-msgstr "Prüfungsstatus"
+msgid "Join this team"
+msgstr "Diesem Team beitreten"
 
-msgid "App ID"
-msgstr "App-ID"
+msgid "Choose type"
+msgstr "Typ auswählen"
 
-msgid "Canonical credit"
-msgstr "Anerkannte Punkte"
+msgid "Team name"
+msgstr "Teamname"
 
-msgid "Canonical result ID"
-msgstr "autorisierte Ergebnis ID"
+msgid "Text only, no HTML tags"
+msgstr "Nur Text, keine HTML-Tags"
 
-msgid "Created time"
-msgstr "Erstellte Zeit"
+msgid "Team name -- HTML version (optional)"
+msgstr "Teamname – HTML-Version (optional)"
 
-msgid "Error mask"
-msgstr "Fehlermaske"
+msgid "You may use limited HTML tags"
+msgstr "Sie können ausgewählte HTML-Tags verwenden"
 
-msgid "Minimum quorum"
-msgstr "Mindestanzahl"
+msgid "Team website (optional)"
+msgstr "Team-Webseite (optional)"
 
-msgid "Max error tasks"
-msgstr "Maximale fehlerhafte Aufgaben"
+msgid "Displayed on the team's page"
+msgstr "Angezeigt auf der Teamseite"
 
-msgid "Max success tasks"
-msgstr "Maximale erfolgreiche Aufgaben"
+msgid "Type of team"
+msgstr "Typ des Teams"
 
-msgid "Max total tasks"
-msgstr "Maximale Gesamtaufgaben"
+msgid "Accept new members?"
+msgstr "Neue Mitglieder akzeptieren?"
 
-msgid "Needs validation"
-msgstr "Benötigt Validierung"
+msgid "Description of team"
+msgstr "Beschreibung des Teams"
 
-msgid "Initial replication"
-msgstr "Anfängliche Kopie"
+msgid "Create a team"
+msgstr "Ein Team erstellen"
 
-msgid "Target number of results"
-msgstr "Zieltrefferanzahl"
+msgid "Save team"
+msgstr "Team speichern"
 
-msgid "Application version ID"
-msgstr "Anwendungsversions-ID"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Falls BOINC bereits läuft, wählen Sie <i>Projekt\nhinzufügen</i>"
 
-msgid "Plan class"
-msgstr "Plan Klasse"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Falls Sie eine Command-Line Version von BOINC benutzen,\nnutzen Sie bitte vorher die BOINC Manager Software (falls nötig wo anders) um einen Account\nfür das Projekt zu erstellen, dann benutzen Sie den Account um sich mit der Command-Line Version\nzu verbinden."
 
-msgid "Version number"
-msgstr "Versionsnummer"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Wenn Sie eine Version von BOINC älter als 5.0 verwenden, müssen Sie erst auf eine neuere Version aktualisieren um ein Konto anlegen zu können."
 
-msgid "Computer"
-msgstr "Computer"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Wenn Sie die E-Mail-Adresse Ihres Kontos vergessen haben oder die E-Mails nicht mehr abrufen können:"
 
-msgid "App version ID"
-msgstr "Anwendungsversions-ID"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Wenn Sie BOINC mit diesem Konto eingesetzt haben gibt es einen weiteren Weg sich anzumelden:"
 
-msgid "Consecutive valid tasks"
-msgstr "Aufeinander-folgende, gültige Aufgaben"
+msgid "BOINC documentation"
+msgstr "BOINC Dokumentation"
 
-msgid "Number of tasks completed"
-msgstr "Anzahl der abgeschloßenen Aufgaben"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Navigieren Sie in das BOINC Datenverzeichnis auf Ihrem Computer (siehe !boinc_wiki für eine Hilfestellung wo man dieses findet)."
 
-msgid "Max tasks per day"
-msgstr "Max. Aufgaben pro Tag"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Finden Sie Ihre Kontodatei des Projektes, der Dateiname lautet: %file (wobei die Projekt-URL %url ist)."
 
-msgid "Number of tasks today"
-msgstr "Anzahl der Aufgaben heute"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Öffnen Sie die Datei mit einem Texteditor (z.B. Editor oder WordPad). Sie sehen ungefähr folgendes:"
 
-msgid "Show IP address"
-msgstr "Zeige IP-Adresse"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Kopieren Sie die Zeichenfolge zwischen <authenticator> und </authenticator> (%auth im obigen Beispiel)."
 
-msgid "hours"
-msgstr "Stunden"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Fügen Sie die Zeichenfolge in das untere Feld ein und bestätigen mit OK."
 
-msgid "@count million ops/sec"
-msgstr "@count Millionen Operationen/Sek"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Sie werden jetzt mit Ihrem Konto angemeldet, bitte aktualisieren Sie als erstes Ihre E-Mail-Adresse und Ihr Passwort."
 
-msgid "@rate KiB/sec"
-msgstr "@rate KB/sec"
+msgid "Log in with authenticator"
+msgstr "Einloggen mit Kontoschlüssel"
 
-msgid "@count days"
-msgstr "@count Tage"
+msgid "OK"
+msgstr "OK"
 
-msgid "Remove friend"
-msgstr "Freund löschen"
+msgid "Post new topic"
+msgstr "Neues Thema erstellen"
 
-msgid "Ban user"
-msgstr "Benutzer ausschließen"
+msgid "Create team message board"
+msgstr "Team-Diskussionsforum erstellen"
 
-msgid "Add as friend"
-msgstr "als Freund hinzufügen"
+msgid "Message board title"
+msgstr "Diskussionsforen Titel"
 
-msgid "Team"
-msgstr "Team"
+msgid "Minimum time between posts"
+msgstr "Zeitpause zwischen dem Abschicken zweier Beiträge"
 
-msgid "Reply"
-msgstr "Antworten"
+msgid "Seconds"
+msgstr "Sekunden"
 
-msgid "Reply to this comment"
-msgstr "Auf diesen Kommentar antworten"
+msgid "Minimum total credit to post"
+msgstr "Mindestpunktzahl (Gesamt) für Schreibrecht"
 
-msgid "Quote"
-msgstr "Zitieren"
+msgid "Minimum avg credit to post"
+msgstr "Mindestpunktzahl (Durchschnitt) für Schreibrecht"
 
-msgid "Reply to this comment with quote"
-msgstr "Auf dieses Kommentar mit Zitat antworten"
+msgid "Allow public to read board?"
+msgstr "Forum öffentlich lesbar machen?"
 
-msgid "Edit this comment"
-msgstr "Diesen Kommentar bearbeiten"
+msgid "Create message board"
+msgstr "Diskussionsforum erstellen"
 
-msgid "Delete this comment"
-msgstr "Diesen Kommentar löschen"
+msgid "About message boards"
+msgstr "Über Diskussionsforen"
 
-msgid "Hide this comment"
-msgstr "Diesen Kommentar verstecken"
+msgid "You may create a message board for use by @team"
+msgstr "Sie können ein Diskussionsforum zur Nutzung durch @team erstellen"
 
-msgid "Convert"
-msgstr "Konvertieren"
+msgid "Only members may post"
+msgstr "Nur Mitglieder können Beiträge verfassen"
 
-msgid "Convert this comment to a new topic"
-msgstr "Diesen Kommentar in ein neues Thema umwandeln"
+msgid "Only members may read (optional)"
+msgstr "Nur Mitglieder können Beiträge lesen (optional)"
 
-msgid "Details"
-msgstr "Details"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Der Gründer und die Team-Admins haben Moderatorenrechte."
 
 msgid "@ip_address (same the last @count times)"
 msgstr "@ip_address (die gleiche, wie beim letzten @count)"
 
-msgid "commented on"
-msgstr "kommentierte"
-
-msgid "Make unsticky"
-msgstr "Entpinnen"
-
-msgid "Remove sticky status from this topic"
-msgstr "Entfernen der Hervorhebung des Themas"
+msgid "Revise or post comment"
+msgstr "Kommentar korrigieren oder absenden"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1505,321 +1456,304 @@ msgstr "Überprüfen der Computer die mit @name übereinstimmen (erstellt am @da
 msgid "Computer @old_id has been merged successfully into @id."
 msgstr "Der Computer @old_id wurde erfolgreich in @id zusammengefügt."
 
-msgid "started discussion"
-msgstr "Diskussion gestartet"
-
-msgid "posted"
-msgstr "Veröffentlicht"
-
-msgid "Minimum value not met for @field"
-msgstr "Mindestwert nicht erreicht für @field"
+msgid "parent removed"
+msgstr "Elternelement wurde gelöscht"
 
 msgid "Remove"
 msgstr "Entfernen"
 
-msgid "hidden"
-msgstr "verborgen"
-
-msgid "Invalid data type for @field"
-msgstr "Ungültiger Datentyp für @field"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "Authentifizierung benötigt, wenn E-Mail-Adresse oder Passwort geändert werden."
 
-msgid "Request foundership"
-msgstr "Gründerstatus anfordern"
+msgid "Make unsticky"
+msgstr "Entpinnen"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Wenn der Teamgründer nicht aktiv ist und Sie die Rolle des Gründers übernehmen wollen, klicken Sie unten, um den Gründerstatus für @this_team anzufordern."
+msgid "Remove sticky status from this topic"
+msgstr "Entfernen der Hervorhebung des Themas"
 
-msgid "Initiate request"
-msgstr "Übernahme einleiten"
+msgid "Unhide"
+msgstr "Sichtbar machen"
 
-msgid "A BOINC account already exists for @email."
-msgstr "Für @email existiert bereits ein BOINC-Account."
+msgid "Unhide this comment"
+msgstr "Diesen Kommentar sichtbar machen"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Bitte seien Sie verantwortungsbewusst mit dem was Sie schreiben und erstellen Sie keine Beiträge welche beleidigend oder abwertend sind. Beleidigende Beiträge oder Themen werden von den Forenmoderatoren ohne Warnung oder Diskussion gelöscht. Bitte reagieren Sie nicht auf beleidigende Beiträge. Nutzen Sie den \"melden\" Link des Beitrags um einen Moderator darauf aufmerksam zu machen."
+msgid "Unpublished"
+msgstr "Unveröffentlicht"
 
-msgid "this project"
-msgstr "dieses Projekt"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Computer @old_ids wurden in den neuen @id erfolgreich zusammengeführt."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "Wir möchten Sie außerdem bitten, dass alle Diskussionen in den Foren einen Bezug zu @project oder BOINC haben. Mit der kleinen Ausnahme des Science Bereichs wo alle Themen welche die zugrunde liegende Forschung betrifft diskutiert werden können. Wenn Sie an einer generelleren Diskussion teilnehmen wollen, wenden Sie sich bitte an ein inoffizielles Forum von @project."
+msgid "Joined"
+msgstr "Beitritt"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "Die Nachrichtenforen unterstützen nur BBCode-Tags."
+msgid "Credit"
+msgstr "Punkte"
 
-msgid "Posts contributed"
-msgstr "Kommentar beigetragen"
+msgid "RAC"
+msgstr "RAC"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Profil erwartet Bestätigung durch Moderator"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Kein Account für @email vorhanden -- wähle \"Neuen Account erstellen\" zum registrieren."
 
-msgid "Approve profile"
-msgstr "Profil bestätigen"
+msgid "started discussion"
+msgstr "Diskussion gestartet"
 
-msgid "Approve this profile content"
-msgstr "Profilinhalt bestätigen"
+msgid "commented on"
+msgstr "kommentierte"
+
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Das eingegebene Passwort ist nicht gültig. Bitte überprüfen Sie ob es korrekt ist."
+
+msgid "Minimum value not met for @field"
+msgstr "Mindestwert nicht erreicht für @field"
+
+msgid "Invalid data type for @field"
+msgstr "Ungültiger Datentyp für @field"
+
+msgid "News"
+msgstr "Nachrichten"
+
+msgid "Remove friend"
+msgstr "Freund löschen"
+
+msgid "ignore list"
+msgstr "Ignorieren-Liste"
+
+msgid "here"
+msgstr "Hier"
 
-msgid "Edit profile"
-msgstr "Profil editieren"
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username ist auf deiner !ignore_list. !here klicken um den Beitrag trotzdem zu sehen."
 
-msgid "Edit the content of this profile"
-msgstr "Profilinhalt editieren"
+msgid "hidden"
+msgstr "verborgen"
+
+msgid "Unknown"
+msgstr "Unbekannt"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Ungültige Einstellung für \"%preference\""
 
-msgid "Remove profile"
-msgstr "Profil entfernen"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: ein Kommentar wurde zu \"!topic_name\" hinzugefügt"
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author hat eine Antwort zu \"!topic_name\" geschrieben"
 
-msgid "Remove this profile content from the system"
-msgstr "Entfernt diesen Profilinhalt vom System"
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Um dieses Thema bei !site anzuschauen hier klicken:\n!comment_url"
 
 msgid "The team founder has @count days to respond to your transfer request."
 msgstr "Der Teamgründer hat @count Tage Zeit, um auf Ihre Transfer Anfrage zu reagieren."
 
-msgid "Reject profile"
-msgstr "Profil ablehnen"
-
-msgid "Reject this profile content"
-msgstr "Profilinhalt ablehnen"
-
-msgid "Reason for rejecting this profile"
-msgstr "Gründ für das Ablehnen des Profils"
-
-msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Der Grund wird in eine E-Mail an den Nutzer eingebunden. Bitte schreiben Sie eine kurze Erklärung des Problems und wie man es beheben kann."
+msgid "Unlock"
+msgstr "Entsperren"
 
-msgid "Submit"
-msgstr "Übertragen"
+msgid "Unlock this thread for comments"
+msgstr "Dieses Thema für Kommentare entsperren"
 
 msgid "project"
 msgstr "Projekt"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "Kein Account für @email vorhanden -- wähle \"Neuen Account erstellen\" zum registrieren."
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email ist keine gültige E-Mail-Adresse, bitte überprüfen"
 
-msgid "Unknown"
-msgstr "Unbekannt"
+msgid "Please enter your email address"
+msgstr "Geben Sie bitte ihre E-Mail-Adresse ein"
 
-msgid "My team"
-msgstr "Ihr Team"
+msgid "There is no account with that authenticator."
+msgstr "Es gibt kein Konto mit diesem Kontoschlüssel."
 
-msgid "You are a member of @team."
-msgstr "Sie sind Mitglied bei @team."
+msgid "That authenticator is not valid."
+msgstr "Dieser Authentifikator ist nicht gültig."
 
-msgid "View my team"
-msgstr "Ihr Team anzeigen"
+msgid "Send request"
+msgstr "Anfrage absenden"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Ungültige Einstellung für \"%preference\""
+msgid "Friend request from !name [!site]"
+msgstr "Freundschaftsanfrage von !name [!site]"
 
-msgid "Pending"
-msgstr "Ausstehend"
+msgid "Message"
+msgstr "Nachricht"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "Um Beiträge auf dieser Seite zu schreiben müssen noch @count Punkte errechnet werden."
-
-msgid "Moderation"
-msgstr "Moderation"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name hat Sie als Freund auf !site hinzugefügt. Sie können diese Anfrage erlauben oder ablehnen. Das Ablehnen wird keine Benachrichtigung erzeugen aber die Anfrage aus beiden Konten entfernen.\n\nBitte folgen Sie diesem Link zur Anfrage:\n!link\n\n!message\n\nDanke,\nDas !site Team"
 
-msgid "Unvetted profiles"
-msgstr "Ungeprüfte Profile"
+msgid "Cancel friend request"
+msgstr "Freundschaftsanfrage ablehnen"
 
-msgid "Reason for banning this user"
-msgstr "Grund für das ausschließen dieses Benutzers"
+msgid "Please set the minimum time required between posts."
+msgstr "Bitte die Mindestzeit zwischen zwei Beiträgen setzen."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "Dieser Grund wird dem Benutzer in einer E-Mail mitgeteilt. Bitte schreiben Sie eine kurze Erklärung warum der Benutzer ausgeschlossen wurde."
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Bitte die Anzahl Punkte angeben die ein Benutzer erreichen muss, um Kommentare in diesem Diskussionsforum erstellen zu können."
 
-msgid "Duration of the ban"
-msgstr "Dauer des Banns"
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "Anzahl Tage die der Benutzer ausgeschlossen ist. Auf 0 setzen um für immer auszuschließen."
-
-msgid "Lift user ban"
-msgstr "Ausschluss des Benutzers aufheben"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Bitte die durchschnittlichen Punkte angeben die ein Benutzer erreichen muss, um Kommentare im Diskussionsforum erstellen zu können."
 
-msgid "You are banned from community participation until @date"
-msgstr "Sie sind von der Beteiligung an dieser Webseite bis @date ausgeschlossen"
+msgid "Edit message board"
+msgstr "Forum bearbeiten"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "Computer @old_ids wurden in den neuen @id erfolgreich zusammengeführt."
+msgid "Save message board"
+msgstr "Forum speichern"
 
-msgid "A team named \"@name\" already exists."
-msgstr "Es existiert bereits ein Team mit dem Namen \"@name\"."
+msgid "This is a team-only message board"
+msgstr "Dies ist ein geschlossenes Team-Diskussionsforum"
 
-msgid "Post topic"
-msgstr "Beitrag erstellen"
+msgid "Maximum value exceeded for @field"
+msgstr "Maximalwert für @field überschritten"
 
-msgid "Please enter your email address"
-msgstr "Geben Sie bitte ihre E-Mail-Adresse ein"
+msgid "Approve request"
+msgstr "Anfrage bestätigen"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "Das eingegebene Passwort ist nicht gültig. Bitte überprüfen Sie ob es korrekt ist."
+msgid "!name accepted your friend request [!site]"
+msgstr "!name hat Ihrer Freundschaftsanfrage zugestimmt [!site]"
 
-msgid "Make founder"
-msgstr "Zum Gründer machen"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name hat Ihre Freundschaftsanfrage auf !site bestätigt.\n\nFolgen Sie diesem Link um das Benutzerprofil aufzrufen:\n!link\n\n!message\n\nDanke,\nDas !site Team"
 
-msgid "User of the day"
-msgstr "Nutzer des Tages"
+msgid "posted"
+msgstr "Veröffentlicht"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: ein Kommentar wurde zu \"!topic_name\" hinzugefügt"
+msgid "Add team admin"
+msgstr "Team-Verwalter hinzufügen"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author hat eine Antwort zu \"!topic_name\" geschrieben"
+msgid "Enter email address"
+msgstr "E-Mail-Adresse eingeben"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "Um dieses Thema bei !site anzuschauen hier klicken:\n!comment_url"
+msgid "Current team admins"
+msgstr "Aktuelle Team-Verwalter"
 
-msgid "At least one application must be selected"
-msgstr "Es muss mindestens eine Anwendung ausgewählt werden"
+msgid "About team admins"
+msgstr "Über Team-Verwalter"
 
-msgid "Account"
-msgstr "Konto"
+msgid "Team admins can:"
+msgstr "Team-Verwalter können:"
 
-msgid "Log in"
-msgstr "Anmelden"
+msgid "Edit team information"
+msgstr "Team-Information bearbeiten"
 
-msgid "Forgot password"
-msgstr "Passwort vergessen"
+msgid "View the team's join / quit history"
+msgstr "Mitgliedschafts-Historie des Teams anzeigen"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Bitte geben Sie Ihre E-Mail-Adresse ein um die Anleitung zum zurücksetzen des Passwortes zu erhalten."
+msgid "Moderate the team forum"
+msgstr "Das Teamforum moderieren"
 
-msgid "Send"
-msgstr "Senden"
+msgid "Remove members from the team"
+msgstr "Mitglieder aus dem Team entfernen"
 
-msgid "Revise or post comment"
-msgstr "Kommentar korrigieren oder absenden"
+msgid "Disband a team if it has no members"
+msgstr "Team auflösen, wenn es keine Mitglieder mehr hat"
 
-msgid "discuss"
-msgstr "diskutieren"
+msgid "Team admins cannot:"
+msgstr "Team-Verwalter können nicht:"
 
-msgid "News"
-msgstr "Nachrichten"
+msgid "Change the team founder"
+msgstr "den Team-Gründer ändern"
 
-msgid "Your community preferences have been updated."
-msgstr "Ihre Communityeinstellungen wurden aktualisiert."
+msgid "Add / Remove team admins"
+msgstr "Team-Verwalter hinzufügen/entfernen"
 
-msgid "Unlock"
-msgstr "Entsperren"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Wenn ein Team-Administrator das Team verlässt ist er nicht mehr länger Team-Administrator. Wir empfehlen es nur Leute auszuwählen, die Sie kennen und denen Sie vertrauen"
 
-msgid "Unlock this thread for comments"
-msgstr "Dieses Thema für Kommentare entsperren"
+msgid "Lift user ban"
+msgstr "Ausschluss des Benutzers aufheben"
 
-msgid "Authenticator login"
-msgstr "Authenticator Login"
+msgid "A team named \"@name\" already exists."
+msgstr "Es existiert bereits ein Team mit dem Namen \"@name\"."
 
-msgid "Create content"
-msgstr "Inhalt erstellen"
+msgid "A BOINC account already exists for @email."
+msgstr "Für @email existiert bereits ein BOINC-Account."
 
-msgid "authenticator-based login"
-msgstr "Authenticator-basierter Login"
+msgid "Make founder"
+msgstr "Zum Gründer machen"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Bitte geben Sie Ihre E-Mail-Adresse ein um die Anleitung zum zurücksetzen des Passwortes zu erhalten (oder Sie nutzen den !authenticator_login)."
+msgid "Changing the team founder"
+msgstr "Team-Gründer wechseln"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "Wenn Sie die E-Mail-Adresse Ihres Kontos vergessen haben oder die E-Mails nicht mehr abrufen können:"
+msgid "Notes about changes in foundership:"
+msgstr "Anmerkungen über Änderungen im Gründungsstatus:"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "Wenn Sie BOINC mit diesem Konto eingesetzt haben gibt es einen weiteren Weg sich anzumelden:"
+msgid "Any member of the team is eligible"
+msgstr "Jedes Teammitglied ist wählbar"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Navigieren Sie in das BOINC Datenverzeichnis auf Ihrem Computer (mit Windows ist dies üblicherweise %path1 oder %path2)."
+msgid "Current founder becomes a normal user"
+msgstr "Bisheriger Gründer wird normaler Benutzer"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Finden Sie Ihre Kontodatei des Projektes, der Dateiname lautet: %file (wobei die Projekt-URL %url ist)."
+msgid "Foundership can be requested by team members:"
+msgstr "Gründungsstatus kann von Teammitgliedern beantragt werden:"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Öffnen Sie die Datei mit einem Texteditor (z.B. Editor oder WordPad). Sie sehen ungefähr folgendes:"
+msgid "One request is allowed at a time"
+msgstr "Es ist immer nur eine Anfrage möglich"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Kopieren Sie die Zeichenfolge zwischen <authenticator> und </authenticator> (%auth im obigen Beispiel)."
+msgid "It must be 60 days since any previous request"
+msgstr "Es müssen 60 Tage vergangen sein seit der letzten Anfrage"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Fügen Sie die Zeichenfolge in das untere Feld ein und bestätigen mit OK."
+msgid "Any active request must be older than 90 days"
+msgstr "Jede aktive Anfrage muss älter als 90 Tage sein"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Sie werden jetzt mit Ihrem Konto angemeldet, bitte aktualisieren Sie als erstes Ihre E-Mail-Adresse und Ihr Passwort."
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Der aktuelle Gründer hat 60 Tage Zeit umd auf die Anfrage zu antworten"
 
-msgid "Log in with authenticator"
-msgstr "Einloggen mit Kontoschlüssel"
+msgid "BOINC-wide teams site"
+msgstr "BOINC-weite Teams Webseite"
 
-msgid "There is no account with that authenticator."
-msgstr "Es gibt kein Konto mit diesem Kontoschlüssel."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Dies ist ein BOINC-weites Team. Änderungen können nur auf der !site getätigt werden."
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Navigieren Sie in das <a href=\"%wikiref\">BOINC Datenverzeichnis</a> auf Ihrem Computer (mit Windows ist dies üblicherweise %path1 oder %path2)."
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Eine Änderung des Gründerstatus wurde bereits kürzlich beantragt. Es ist nur eine Anfrage aller 90 Tage möglich."
 
-msgid "BOINC documentation"
-msgstr "BOINC Dokumentation"
+msgid "@count days remaining"
+msgstr "@count Tage verbleiben"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Navigieren Sie in das BOINC Datenverzeichnis auf Ihrem Computer (siehe !boinc_wiki für eine Hilfestellung wo man dieses findet)."
+msgid "Team name is required."
+msgstr "Ein Teamname ist erforderlich."
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "@count Tage sind seit der Anfrage vergangen und der Gründer hat nicht reagiert."
+msgid "Reason for banning this user"
+msgstr "Grund für das ausschließen dieses Benutzers"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "Sie haben nun @count Tage um die Gründerschaft anzunehmen, bevor ein anderes Teammitglied einen Antrag stellt."
-
-msgid "Assume foundership"
-msgstr "Gründerstatus anfordern"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Dieser Grund wird dem Benutzer in einer E-Mail mitgeteilt. Bitte schreiben Sie eine kurze Erklärung warum der Benutzer ausgeschlossen wurde."
 
-msgid "Unhide"
-msgstr "Sichtbar machen"
+msgid "Duration of the ban"
+msgstr "Dauer des Banns"
 
-msgid "Unhide this comment"
-msgstr "Diesen Kommentar sichtbar machen"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Anzahl Tage die der Benutzer ausgeschlossen ist. Auf 0 setzen um für immer auszuschließen."
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email ist keine gültige E-Mail-Adresse, bitte überprüfen"
+msgid "Submit"
+msgstr "Übertragen"
diff --git a/locale/de/BOINC-Manager.mo b/locale/de/BOINC-Manager.mo
index d94199b..215c240 100644
Binary files a/locale/de/BOINC-Manager.mo and b/locale/de/BOINC-Manager.mo differ
diff --git a/locale/de/BOINC-Manager.po b/locale/de/BOINC-Manager.po
index 927c9f6..5cbbb2c 100644
--- a/locale/de/BOINC-Manager.po
+++ b/locale/de/BOINC-Manager.po
@@ -1,21 +1,23 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Christian Beer <christian.beer at posteo.de>, 2015-2016
+# Christian Beer <christian.beer at posteo.de>, 2015-2017
 # Florian Heuer <f.a.heuer at gmail.com>, 2015
 # informatorius <helmut.killer at live.de>, 2015
-# Jan Schladetzky <keiken at keiken.eu>, 2015
+# Jan Schladetzky <inactive+Keiken at transifex.com>, 2015
 # JimsB <kai.erbstoesser at t-online.de>, 2015
 # Haubi, 2015
 # Markus Youssef <mk.kiri.youssef at gmail.com>, 2015
+# Michael Adams, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-05-31 11:22+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-20 13:46+0000\n"
 "Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
 "Language-Team: German (http://www.transifex.com/boinc/boinc/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -23,46 +25,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Identifizieren Sie Ihr Benutzerkonto bei %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Bitte geben Sie Ihre Kontoinformationen ein.\n(Zum Erstellen eines Benutzerkontos, Projektseite besuchen)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Dieses Projekt kann zur Zeit keine weiteren Benutzerkonten aufnehmen.\nSie können es nur hinzufügen, wenn Sie bereits über ein\nTeilnehmerkonto verfügen."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Nehmen Sie bereits an diesem Projekt teil?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Nein, neuer Benutzer"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Ja, existierender Benutzer"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -72,85 +66,85 @@ msgid ""
 "password fields."
 msgstr "Die Kontoinformationen konnten nicht automatisch\nermittelt werden. \n\nBitte benutzen Sie den Link \"Kontoinformationen suchen\", \num die richtigen Eingaben für die E-Mail-Adresse und \ndas Passwort zu finden."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Kontoinformationen suchen"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Passwort:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "&Passwort wählen:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "Passwort &bestätigen:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Läuft %s bereits?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Benutzername:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&E-Mail-Adresse oder LDAP-ID:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&E-Mail-Adresse:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "minimale Länge %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Haben Sie Ihr Passwort vergessen?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Bevor Sie fortfahren, müssen Sie bereits ein Konto\nbei dieser Kontoverwaltung besitzen. Klicken Sie auf\nden folgenden Link, um sich zu registrieren oder ein\nneues Passwort anzufordern."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Webseite der Kontoverwaltung"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Projekt hinzufügen"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Kontoverwaltung aktualisieren"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Kontoverwaltung benutzen"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Geben Sie bitte einen Benutzernamen ein."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Geben Sie bitte eine E-Mail-Adresse ein."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Geben Sie bitte ein Passwort mit mindestens %d Zeichen ein."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Das Passwort und die Bestätigung weichen voneinander ab. Bitte wiederholen sie die Eingabe."
@@ -203,11 +197,11 @@ msgstr "Bitte warten..."
 msgid "An internal server error has occurred.\n"
 msgstr "Ein interner Server-Fehler ist aufgetreten.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Verbunden"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Verbindung getrennt"
 
@@ -222,8 +216,8 @@ msgid "Open another %s window"
 msgstr "Weiteres %s Fenster öffnen"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "&Computer auswählen..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Computer auswählen...\tCtrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -533,7 +527,7 @@ msgstr "%s &Webseite"
 msgid "Show information about BOINC and %s"
 msgstr "Zeige Informationen über BOINC und %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -568,12 +562,12 @@ msgstr "&Werkzeuge"
 msgid "&Help"
 msgstr "&Hilfe"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Nutzung von %s beenden"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -583,39 +577,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Wenn Sie sich von %s abmelden\nbleiben alle Ihre aktuellen Projekte erhalten,\nmüssen sie aber manuell verwalten.\n\nWollen Sie mit der Abmeldung von %s fortfahren?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Beende den aktuellen Client..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s - beendet den aktuell verbundenen Client,\nund fragt nach einem anderen Rechner zum Verbinden."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s hat erfolgreich %s hinzugefügt."
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Verbinden mit %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Verbunden mit %s (%s)"
@@ -664,7 +658,7 @@ msgid "%s - Communication"
 msgstr "%s - Kommunikation"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "&Abbrechen"
@@ -739,7 +733,7 @@ msgid ""
 msgstr "%s ist augenblicklich nicht mit mit dem %s Client verbunden.\nBitte benutzen Sie die 'Datei\\Computer auswählen ...'Menüoption um die Verbindung mit einem %s Client neu aufzubauen.\nWenn Sie keinen anderen Computer fern-steuern wollen, dann lassen Sie die Felder 'Computername und Passwort leer, oder benutzen Sie 'localhost' als Computername."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Projekt-Webseite"
 
@@ -799,7 +793,7 @@ msgstr "%s hat die Internetverbindung erfolgreich beendet."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s konnte die Internetverbindung nicht beenden."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -812,170 +806,170 @@ msgid ""
 "     user group."
 msgstr "Sie sind momentan nicht befugt diesen Client zu verwalten.\n\nUm %s mit dem aktuellen Nutzer auszuführen müssen Sie:\n  - %s neu installieren und die Frage bezüglich\n     \"non-administrative users\" mit \"Ja\" beantworten\n oder\n  - Ihren Administrator kontaktieren damit Sie in die\n    Benutzergruppe 'boinc_master'  aufgenommen werden."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "Der Besitzstatus oder die Berechtigungen von %s sind nicht korrekt. Bitte installieren Sie %s neu.\n(Fehlercode %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " bei "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "Ein Neustart ist erforderlich damit BOINC einwandfrei\nfunktioniert. Bitte starten sie den Computer neu und\nversuchen es erneut."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC-Manager"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "Der BOINC-Manager wurde automatisch vom Betriebssystem gestartet."
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Starte BOINC so, dass nur das Symbol im Infobereich der Taskleiste sichtbar ist."
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Verzeichnis der BOINC-Client Programmdateien"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Datenverzeichnis des BOINC-Client"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Rechnername oder IP-Adresse"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "GUI RPC Portnummer"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Passwort"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Starte BOINC mit diesen optionalen Argumenten"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "BOINC Sicherheit Benutzer und Rechte abschalten"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "Skin-Debugmodus einschalten um Skin-Manager Fehlermeldungen zu sehen"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "mehrere Instanzen des BOINC Managers erlauben"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Nicht verwendet: Workaround für den Fehler in XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Dienst nicht starten."
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Automatische Erkennung)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Unbekannt)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Benutzerauswahl)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Öffne %s Web..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Öffne %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "1h pausieren"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "GPU 1h pausieren"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Beenden"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Fortsetzen"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "GPU fortsetzen"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Rechnen ist erlaubt"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Berechnung wurde angehalten - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Rechnen mit GPU ist erlaubt"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU Berechnung wurde angehalten - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Netzwerkzugriff erlaubt"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Netzwerkzugriff ist abgeschaltet - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Wiederherstellen der Verbindung zu einem Client."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Nicht mit einem Client verbunden."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Nachrichten"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Es gibt neue Nachrichten - klicken zum anzeigen."
 
@@ -1090,46 +1084,6 @@ msgstr "Für mehr Informationen besuchen Sie"
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "ungültige Zahl"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Ungültige Zeit, Wert muss zwischen 0:00 und 24:00 liegen, das Format ist HH:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "Die Startzeit muss sich von der Endzeit unterscheiden"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Zahl muss zwischen 0 und 10 sein"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Zahl muss zwischen 0 und 100 sein"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Zahl muss zwischen 1 und 100 liegen"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "Ungültiger Eingabewert entdeckt"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Gültigkeitsproblem"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Lokale Einstellungen verwerfen und Web-basierte Einstellungen verwenden?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Bestätigung"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1177,7 +1131,7 @@ msgid "Daily schedules"
 msgstr "täglicher Zeitplan"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1192,7 +1146,7 @@ msgstr "Dialog schließen ohne Änderungen zu speichern"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Hilfe"
@@ -1275,7 +1229,7 @@ msgstr "Dies bestimmt, wann der Rechner als „in Benutzung“ angesehen wird."
 #. context: 'In use' means mouse/keyboard input in last ___ minutes
 #: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
 msgid "'In use' means mouse/keyboard input in last"
-msgstr "'In Benutzung' meint Aktivität der Maus/Tastatur in den letzten"
+msgstr "\"In Benutzung\" bedeutet Maus-/Tastatur-Aktivität innerhalb der letzten"
 
 #. context: 'In use' means mouse/keyboard input in last ___ minutes
 #. context: Switch between tasks every ___ minutes
@@ -1591,75 +1545,123 @@ msgstr "Erlaubt Dateiübertragungen nur innerhalb einer täglichen Zeitspanne."
 msgid "Transfer files only between"
 msgstr "Dateien übertragen zwischen:"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "ungültige Zahl"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Ungültige Zeit, Wert muss zwischen 0:00 und 24:00 liegen, das Format ist HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Die Startzeit muss sich von der Endzeit unterscheiden"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Zahl muss zwischen 0 und 10 sein"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Zahl muss zwischen 0 und 100 sein"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Zahl muss zwischen 1 und 100 liegen"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "Ungültiger Eingabewert entdeckt"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Gültigkeitsproblem"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Lokale Einstellungen verwerfen und Web-basierte Einstellungen verwenden?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Bestätigung"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s Diagnosemeldungen einstellen"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Diese Einstellungen aktivieren verschiedene Typen von Diagnosemeldungen im Meldungsfenster."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "weitere Infos..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Änderungen speichern und Dialog schließen"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "zurücksetzen"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Standardeinstellungen wiederherstellen"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Dialog schließen ohne Änderungen zu speichern"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Übernehmen"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Einstellungen sofort übernehmen"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Ereignisanzeige"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projekt"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Zeit"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Meldung"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "Zeige nur dieses &Projekt"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "&Alles kopieren"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Kopiert alle Meldungen in die Zwischenablage."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "au&sgewählte Meldungen kopieren"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1667,7 +1669,7 @@ msgid ""
 "messages."
 msgstr "Kopiert alle ausgewählten (markierten) Meldungen in die Zwischenablage. Durch Drücken und Halten der Umschalt- oder Strg-Taste können Sie mehrere Meldungen gleichzeitig markieren."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1675,19 +1677,19 @@ msgid ""
 "messages."
 msgstr "Kopiert alle ausgewählten (markierten) Meldungen in die Zwischenablage.\nDurch Drücken und Halten der Umschalt- oder Strg-Taste können Sie \nmehrere Meldungen gleichzeitig markieren."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "Schli&eßen"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Zeige alle &Meldungen"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Zeige Meldungen für alle Projekte."
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Zeigt nur die Meldungen für das gewählte Projekt."
 
@@ -1710,7 +1712,7 @@ msgid "Add an application to this list"
 msgstr "Füge eine Anwendung zur dieser Liste hinzu"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Entfernen"
 
@@ -2044,14 +2046,14 @@ msgstr "Ressourcen"
 msgid "Estimated computation size"
 msgstr "Geschätzter Berechnungsaufwand"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "Prozessor-Zeit beim letzten Checkpoint"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Prozessorzeit"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Prozessor-Zeit seit dem letzten Checkpoint"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "bisherige Laufzeit"
@@ -2101,8 +2103,8 @@ msgstr "pro Sekunde"
 msgid "Executable"
 msgstr "Ausführbare Datei"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Lokal: "
 
@@ -2461,203 +2463,191 @@ msgstr "Forschung"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Erfahren Sie mehr über die auf World Community Grid gehosteten Projekte"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Starte Client"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Verbindung zum Client wird hergestellt."
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Ermittlung des BOINC-Systemstatus. Bitte etwas Geduld..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "fehlende Anwendung"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Bitte installieren Sie die CoRD Anwendung von http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "Batteriebetrieb"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "Computer wird benutzt"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "Benutzergefordert"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "Tageszeit"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "CPU Benchmarks laufen"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "Festplattenplatz benötigt - Einstellungen überprüfen"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "Computer wird nicht benutzt"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "starte"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "eine exklusive Anwendung läuft gerade"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "CPU ist beschäftigt"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "Maximales Datenübertragungsvolumen überschritten"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "vom Betriebssystem angefordert"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "Ursache unbekannt"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU nicht gefunden, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Neu"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Herunterladen fehlgeschlagen"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
-msgstr "Am herunterladen"
+msgstr "lädt herunter"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (angehalten - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Projekt angehalten durch Benutzer"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Angehalten durch Benutzer"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Angehalten- "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU angehalten - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Warten auf Speicher"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Warten auf geteilten Speicher"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Aktiv"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (nicht CPU-intensiv)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Verdrängt"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Zur Ausführung bereit"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Verschoben:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Verschoben"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "Warte auf Netzwerkzugriffserlaubnis"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Berechnungsfehler"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Hochladen fehlgeschlagen"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Lädt hoch"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Abgebrochen durch Benutzer"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Abgebrochen durch das Projekt"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Abgebrochen: kein Start vor Stichtag möglich."
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Abgebrochen: Festplattenlimit der Aufgabe überschritten"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Abgebrochen: Laufzeitlimit überschritten"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Abgebrochen: Arbeitsspeicherlimit überschritten"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Abgebrochen"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Bestätigt"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Hochgeladen, meldebereit"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Fehler: Ungültiger Status '%d'"
@@ -2721,7 +2711,7 @@ msgstr "Um ein Projekt zu wählen, klicke auf dessen Namen oder gib die Projekta
 msgid "Categories:"
 msgstr "Kategorien:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projekte:"
 
@@ -2765,24 +2755,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Projekt schon vorhanden. Bitte wählen Sie ein anderes Projekt."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Kommunikation mit dem Server."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Kommunikation mit dem Projekt\nBitte warten..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Benötigte Dateien wurden auf Server nicht gefunden."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Ein interner Server-Fehler ist aufgetreten."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Kommunikation mit dem Projekt\nBitte warten..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2880,1024 +2867,938 @@ msgstr "Automatische Erkennung"
 msgid "SOCKS proxy"
 msgstr "SOCKS Proxy"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Nutzungsbedingungen"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Skin"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Bitte lesen Sie die folgenden Nutzungsbedingungen:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Wählen Sie das Aussehen der Benutzeroberfläche."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Ich stimme den Nutzungsbedingungen zu."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Erweiterte &Ansicht...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Ich stimme den Nutzungsbedingungen nicht zu."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Die fortgeschrittene Grafikoberfläche anzeigen."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projekt ist vorübergehend nicht erreichbar"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Das Aussehen des BOINC Managers und die Proxy Einstellungen konfigurieren."
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Das Projekt ist vorübergehend nicht zu erreichen.\n\nBitte versuchen Sie es später nochmal."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Zeige Diagnosenachrichten."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Die Kontoverwaltung ist vorübergehend nicht zu erreichen."
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Die Kontoverwaltung ist vorübergehend nicht zu erreichen.\n\nBitte versuchen Sie es später nochmal."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Standard"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Bitte geben Sie einen Kontoschlüssel ein um fortzufahren."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Anhalten"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Unzulässiger oder fehlender Kontoschlüssel (Account Key); bitte geben Sie einen gültigen Schlüssel ein."
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Berechnungen anhalten"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Überprüfungskonflikt"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Berechnung fortsetzen"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Bitte geben Sie eine E-Mail-Adresse ein."
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Nachrichten"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Unzulässige E-Mail-Adresse; bitte geben Sie eine gültige E-Mail-Adresse ein."
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Öffne ein Fenster um Projekt oder BOINC Nachrichten anzuzeigen"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Fehlende URL"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Hilfe für %s bekommen"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Bitte geben sie eine URL ein.\nZum Beispiel:\nhttp://example.com"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Nachrichten werden abgerufen. Bitte warten..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Falsche URL"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Es sind zur Zeit keine Nachrichten verfügbar."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Bitte geben Sie eine gültige Internetadresse ein.\nZum Beispiel:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Schließen"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' Enthält keinen zulässigen Rechnernamen."
+msgid "%s - Notices"
+msgstr "%s - Nachrichten"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' enhält keine zulässige Pfadangabe."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Befehle"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Alles kopieren"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Auswahl kopieren"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Zeige nur dieses Projekt"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Zeigt nur die Meldungen für dieses Projekt."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Meldungen"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Kopiert alle Meldungen in die Zwischenablage..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Kopiere ausgewählte Meldungen in die Zwischenablage..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtere Meldungen..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Zeige alle Meldungen"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Zeige Meldungen für alle Projekte."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Weitere Einstellungen stehen unter 'Assistenten' -> 'Einstellungen...' in der Erweiterten Ansicht."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Nachrichten werden abgerufen. Bitte warten..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB Festplattenplatz"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Es sind zur Zeit keine Nachrichten verfügbar."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Berechnungseinstellungen"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Nachrichten"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Lokale Einstellungen verwerfen und Web-basierte Einstellungen verwenden?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Aktualisieren"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Berichtet über alle fertig gestellten Aufgaben des ausgewählten (markierten) Projekts, holt die letzten Statistiken und Einstellungen und erhält eventuell mehr Aufgaben."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Anhalten"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Pausiert zeitweilig die Aufgaben des ausgewählten Projekts."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Keine neuen Aufgaben"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Fordert keine neuen Aufgaben für das ausgewählte Projekt mehr an."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Zurücksetzen"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Entfernt alle Aufgaben und Anwendungen des ausgewählten Projekts von diesem Computer. Sie sollten das Projekt vorher aktualisieren um alle erledigten Aufgaben dem Server zu melden."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Entfernt dieses Projekt von diesem Computer. Sie sollten vorher das Projekt aktualisieren um alle erledigten Aufgaben dem Server zu melden."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Eigenschaften"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Zeige Projekt-Details."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Konto"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Arbeit erledigt"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Durchschn. geleistete Arbeit"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Status"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projekte"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Projekt wird aktualisiert..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Projekt wird fortgesetzt..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Projekt wird angehalten..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Setzt die pausierte Arbeit an dem ausgewählten Projekt fort."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Erlaubt dem Projekt neue Aufgaben anzufordern..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Neue Aufgaben zulassen"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Verbietet dem Projekt neue Aufgaben anzufordern..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Erlaubt das Anfordern von neuen Aufgaben für das ausgewählte (markierte) Projekt."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Projekt wird zurückgesetzt..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Fordert keine neuen Aufgaben für das ausgewählte (markierte) Projekt mehr an."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Wollen Sie das Projekt '%s' wirklich zurücksetzen?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Projekt zurücksetzen"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Projekt wird entfernt..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Wollen Sie das Projekt '%s' wirklich entfernen?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Projekt entfernen"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Webbrowser wird gestartet..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Projekt hinzufügen"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Setzt die pausierte Arbeit an dem ausgewählten Projekt fort."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Synchronisieren"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Neue Aufgaben zulassen"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "erledigte Arbeit für dieses Projekt"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Erlaubt das Anfordern von neuen Aufgaben für das ausgewählte (markierte) Projekt."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Nimm an einigen oder allen der über 30 Projekte aus verschiedenen Bereichen teil."
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Fordert keine neuen Aufgaben für das ausgewählte (markierte) Projekt mehr an."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Synchronisiere Projekt mit der Kontoverwaltung"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Vom Benutzer angefragt"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Wähle ein Projekt für den Zugriff mit den unteren Bedienelementen aus"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "Um Arbeit zu holen"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Projekt -Webseite"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "Um fertige Aufgaben zu melden"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Projekt-Befehle"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Um eine Zwischenmeldung zu senden"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Öffne Menü für die Webseiten von %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Von der Kontenverwaltung angefordert"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Blende ein Menü mit Befehlen für Projekt %s ein"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Projektinitialisierung"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Grafik anzeigen"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Vom Projekt angefordert"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Zeigt die Anwendungsgrafik der ausgewählten (markierten), aktiven Berechnung in einem Fenster."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Unbekannte Ursache"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Diese Aufgabe pausieren."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Angehalten durch Benutzer"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Abbrechen"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Erhält keine neue Aufgaben"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Diese Aufgabe abbrechen. Es werden keine Punkte angerechnet."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Projekt beendet - Bereit zum entfernen"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Zeige Aufgabendetails."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Entfernen, sobald Aufgaben erledigt sind"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Berechnung für diese Aufgabe wiederaufnehmen."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Wartende Scheduleranfrage"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Pausiert die Arbeit an der ausgewählten Aufgabe."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Laufende Scheduleranfrage"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Sind Sie sicher dass Sie die Aufgabe abbrechen wollen '%s'?\n(Fortscshritt: %.1lf%%, Status: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Zwischenmeldung ausstehend"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Aufgabe abbrechen"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Kommunikation verzögert"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Sie haben kein Projekt eingetragen. Bitte fügen Sie ein Projekt hinzu."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Festplattennutzung gesamt"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Nicht Verfügbar"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Festplattennutzung durch BOINC-Projekte"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Aufgaben:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "keine Projekte: 0 Bytes benutzt"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Eine Aufgabe auswählen"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "Von BOINC belegt: "
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Von:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "Frei, für BOINC verfügbar: "
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Fortschritt dieser Aufgabe"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "Frei, nicht für BOINC verfügbar: "
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Aufgabenbefehle"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "Frei: "
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Zeige ein Befehlsmenü für diese Aufgabe"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "Anderweitig belegt: "
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Anwendung: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Benutzer Gesamt"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Benutzer Durchschnitt"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Anwendung: Nicht Verfügbar"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Rechner Gesamt"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Nicht Verfügbar"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Rechner Durchschnitt"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Vergangen: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Letztes Update: Vor %.0f Tagen."
+msgid "Remaining (estimated): %s"
+msgstr "Verbleibend (geschätzt): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Benutzer Gesamt"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Status: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Gesamtpunktzahl des Benutzers anzeigen"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Aktueller Status wird ermittelt."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Benutzer Durchschnitt"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Lade neue Aufgaben vom Server."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Durchschnittliche Punktzahl des Benutzers anzeigen"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Berechnungen angehalten: Batteriebetrieb."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Rechner Gesamt"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Berechnungen angehalten: Benutzer ist aktiv."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Gesamtpunktzahl für den Computer anzeigen"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Berechnungen angehalten: Angehalten durch Benutzer."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Rechner Durchschnitt"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Berechnungen angehalten: Zeitbegrenzung."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Durchschnittliche Punktzahl für den Computer anzeigen"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Berechnungen angehalten: Benchmarks laufen."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< &Vorheriges Projekt"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Berechnungen angehalten: mehr Speicherplatz benötigt."
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Zeige Grafik für das vorherige Projekt"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Berechnungen angehalten."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "&Nächstes Projekt >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Warte auf Kontakt zum Projektserver."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Grafik für das nächste Projekt anzeigen"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Ermittle den aktuellen Status."
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Projektliste ausblenden"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Keine Aufgaben zu bearbeiten."
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Den ganzen Bereich für Grafiken nutzen"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Verbindung mit dem Basisclient nicht möglich."
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Ansicht"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Nutzungsbedingungen"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Ein Projekt"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Bitte lesen Sie die folgenden Nutzungsbedingungen:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Eine Grafik mit dem ausgewählten Projekt anzeigen"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Ich stimme den Nutzungsbedingungen zu."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Alle Projekte (separat)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Ich stimme den Nutzungsbedingungen nicht zu."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Alle Projekte anzeigen, eine Grafik je Projekt"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projekt ist vorübergehend nicht erreichbar"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Alle Projekte (zusammen)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Das Projekt ist vorübergehend nicht zu erreichen.\n\nBitte versuchen Sie es später nochmal."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Eine Grafik mit allen Projekten anzeigen"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Die Kontoverwaltung ist vorübergehend nicht zu erreichen."
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Alle Projekte (Summe)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Die Kontoverwaltung ist vorübergehend nicht zu erreichen.\n\nBitte versuchen Sie es später nochmal."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Eine Grafik mit allen Projekten (summiert) anzeigen"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Bitte geben Sie einen Kontoschlüssel ein um fortzufahren."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Statistiken"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Unzulässiger oder fehlender Kontoschlüssel (Account Key); bitte geben Sie einen gültigen Schlüssel ein."
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Grafiken werden aktualisiert..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Überprüfungskonflikt"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Projektliste anzeigen"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Bitte geben Sie eine E-Mail-Adresse ein."
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Kleineren Bereich für Grafiken nutzen"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Unzulässige E-Mail-Adresse; bitte geben Sie eine gültige E-Mail-Adresse ein."
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Jetzt nochmal versuchen"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Fehlende URL"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Den Dateitransfer jetzt erneut versuchen."
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Bitte geben sie eine URL ein.\nZum Beispiel:\nhttp://example.com"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Abbrechen"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Falsche URL"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Diese Dateiübertragung abbrechen. Es werden keine Punkte für diese Aufgabe angerechnet."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Bitte geben Sie eine gültige Internetadresse ein.\nZum Beispiel:\nhttp://boincproject.example.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Datei"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' Enthält keinen zulässigen Rechnernamen."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Fortschritt"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' enhält keine zulässige Pfadangabe."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Größe"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Befehle"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Vergangen"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Alles kopieren"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Geschwindigkeit"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Auswahl kopieren"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Übertragung"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Zeige nur dieses Projekt"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Netzwerkzugriff ist pausiert - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Zeigt nur die Meldungen für dieses Projekt."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nKann über das Menü Steuerung aktiviert werden."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Meldungen"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Kopiert alle Meldungen in die Zwischenablage..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Übertragung wird jetzt wiederholt..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Kopiere ausgewählte Meldungen in die Zwischenablage..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Übertragung wird abgebrochen..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtere Meldungen..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Sind Sie sicher dass Sie die Dateiübertragung \"%s\" abbrechen wollen?\nAchtung: Das Abbrechen der Übertragung macht diese ungültig\nund Sie werden keine Punkte dafür bekommen."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Zeige alle Meldungen"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Dateiübertragug abbrechen"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Zeige Meldungen für alle Projekte."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Hochladen"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Konto"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Herunterladen"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Arbeit erledigt"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "Wiederhole in "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Durchschn. geleistete Arbeit"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "fehlgeschlagen"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Status"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "angehalten"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projekte"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "aktiv"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Vom Benutzer angefragt"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "ausstehend"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Um Arbeit zu holen"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (Projektverzögerung: "
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Um fertige Aufgaben zu melden"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Zeige aktive Aufgaben"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Um eine Zwischenmeldung zu senden"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Zeigt nur aktive Aufgaben an."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Von der Kontenverwaltung angefordert"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Grafik anzeigen"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Projektinitialisierung"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Zeigt die Anwendungsgrafik der ausgewählten (markierten), aktiven Berechnung in einem Fenster."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Vom Projekt angefordert"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Zeige die VM Konsole"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Unbekannte Ursache"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Zeigt die VM Konsole in einem eigenen Fenster"
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Angehalten durch Benutzer"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Unterbricht die Arbeit an der ausgewählten (markierten) Berechnung."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Erhält keine neue Aufgaben"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Abbrechen"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projekt beendet - Bereit zum entfernen"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Bricht die Arbeit an der ausgewählten (markierten) Berechnung dauerhaft ab. Diese zählt dann auch nicht mehr für die Statistik. Das kann nicht rückgängig gemacht werden."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Entfernen, sobald Aufgaben erledigt sind"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Zeige Aufgabendetails."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Wartende Scheduleranfrage"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Verbleibend (geschätzt)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Laufende Scheduleranfrage"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Ablaufdatum"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Zwischenmeldung ausstehend"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Aufgaben"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Kommunikation verzögert"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Aufgabe wird fortgesetzt..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Festplattennutzung gesamt"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Aufgabe wird angehalten..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Festplattennutzung durch BOINC-Projekte"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Zeigt die Grafik für Aufgabe..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "keine Projekte: 0 Bytes benutzt"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Zeige die VM Konsole einer Aufgabe..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "Von BOINC belegt: "
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Wollen Sie die Aufgabe '%s' wirklich abbrechen?\n(Fortschritt: %s, Status: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "Frei, für BOINC verfügbar: "
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Wollen Sie diese %d Aufgaben wirklich abbrechen?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "Frei, nicht für BOINC verfügbar: "
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Aufgabe abbrechen"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "Frei: "
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Aufgabe wird abgebrochen..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "Anderweitig belegt: "
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Zeige alle Aufgaben"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Benutzer Gesamt"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Zeige alle Aufgaben."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Benutzer Durchschnitt"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Berechnung für diese Aufgabe wiederaufnehmen."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Rechner Gesamt"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Pausiert die Arbeit an der ausgewählten Aufgabe."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Rechner Durchschnitt"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Wollen Sie wirklich abbrechen?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Letztes Update: Vor %.0f Tagen."
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Frage"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Benutzer Gesamt"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Dienste"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Gesamtpunktzahl des Benutzers anzeigen"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "%s ausblenden"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Benutzer Durchschnitt"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Andere ausblenden"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Durchschnittliche Punktzahl des Benutzers anzeigen"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Alle einblenden"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Rechner Gesamt"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Beende %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Gesamtpunktzahl für den Computer anzeigen"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Skin"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Rechner Durchschnitt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Wählen Sie das Aussehen der Benutzeroberfläche."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Durchschnittliche Punktzahl für den Computer anzeigen"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Erweiterte &Ansicht...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Vorheriges Projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Die fortgeschrittene Grafikoberfläche anzeigen."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Zeige Grafik für das vorherige Projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Das Aussehen des BOINC Managers und die Proxy Einstellungen konfigurieren."
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Nächstes Projekt >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Zeige Diagnosenachrichten."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Grafik für das nächste Projekt anzeigen"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Projektliste ausblenden"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Standard"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Den ganzen Bereich für Grafiken nutzen"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Berechnungen anhalten"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Ansicht"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Berechnung fortsetzen"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Ein Projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Öffne ein Fenster um Projekt oder BOINC Nachrichten anzuzeigen"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Eine Grafik mit dem ausgewählten Projekt anzeigen"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Hilfe für %s bekommen"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Alle Projekte (separat)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Schließen"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Alle Projekte anzeigen, eine Grafik je Projekt"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Nachrichten"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Alle Projekte (zusammen)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Weitere Einstellungen stehen unter 'Assistenten' -> 'Einstellungen...' in der Erweiterten Ansicht."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Eine Grafik mit allen Projekten anzeigen"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "GB Festplattenplatz"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Alle Projekte (Summe)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - Berechnungseinstellungen"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Eine Grafik mit allen Projekten (summiert) anzeigen"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Lokale Einstellungen verwerfen und Web-basierte Einstellungen verwenden?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statistiken"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Projekt hinzufügen"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Projektliste anzeigen"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Synchronisieren"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Kleineren Bereich für Grafiken nutzen"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "erledigte Arbeit für dieses Projekt"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Jetzt nochmal versuchen"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Nimm an einigen oder allen der über 30 Projekte aus verschiedenen Bereichen teil."
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Den Dateitransfer jetzt erneut versuchen."
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Synchronisiere Projekt mit der Kontoverwaltung"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Abbrechen"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Wähle ein Projekt für den Zugriff mit den unteren Bedienelementen aus"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Diese Dateiübertragung abbrechen. Es werden keine Punkte für diese Aufgabe angerechnet."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Projekt -Webseite"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Datei"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Projekt-Befehle"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Fortschritt"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Öffne Menü für die Webseiten von %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Größe"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Blende ein Menü mit Befehlen für Projekt %s ein"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Vergangen"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Diese Aufgabe pausieren."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Geschwindigkeit"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Diese Aufgabe abbrechen. Es werden keine Punkte angerechnet."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Übertragung"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Sind Sie sicher dass Sie die Aufgabe abbrechen wollen '%s'?\n(Fortscshritt: %.1lf%%, Status: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Netzwerkzugriff ist pausiert - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Sie haben kein Projekt eingetragen. Bitte fügen Sie ein Projekt hinzu."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nKann über das Menü Steuerung aktiviert werden."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Nicht Verfügbar"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Aufgaben:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Sind Sie sicher dass Sie die Dateiübertragung \"%s\" abbrechen wollen?\nAchtung: Das Abbrechen der Übertragung macht diese ungültig\nund Sie werden keine Punkte dafür bekommen."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Eine Aufgabe auswählen"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Dateiübertragug abbrechen"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "Von:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Hochladen"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Fortschritt dieser Aufgabe"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Herunterladen"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Aufgabenbefehle"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "Wiederhole in "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Blende ein Menü ein für anwendbare Befehle für diese Aufgabe"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "fehlgeschlagen"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Anwendung: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "angehalten"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "aktiv"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Anwendung: Nicht Verfügbar"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "ausstehend"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Nicht Verfügbar"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (Projektverzögerung: "
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Vergangen: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Zeige aktive Aufgaben"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Verbleibend (geschätzt): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Zeigt nur aktive Aufgaben an."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Status: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Zeige die VM Konsole"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Aktueller Status wird ermittelt."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Zeigt die VM Konsole in einem eigenen Fenster"
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Lade neue Aufgaben vom Server."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Unterbricht die Arbeit an der ausgewählten (markierten) Berechnung."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Berechnungen angehalten: Batteriebetrieb."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Bricht die Arbeit an der ausgewählten (markierten) Berechnung dauerhaft ab. Diese zählt dann auch nicht mehr für die Statistik. Das kann nicht rückgängig gemacht werden."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Berechnungen angehalten: Benutzer ist aktiv."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Verbleibend (geschätzt)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Berechnungen angehalten: Angehalten durch Benutzer."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Ablaufdatum"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Berechnungen angehalten: Zeitbegrenzung."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Aufgaben"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Berechnungen angehalten: Benchmarks laufen."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Wollen Sie die Aufgabe '%s' wirklich abbrechen?\n(Fortschritt: %s, Status: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Berechnungen angehalten."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Wollen Sie diese %d Aufgaben wirklich abbrechen?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "Warte auf Kontakt zum Projektserver."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Zeige alle Aufgaben"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Ermittle den aktuellen Status."
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Zeige alle Aufgaben."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Keine Aufgaben zu bearbeiten."
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Wollen Sie wirklich abbrechen?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Verbindung mit dem Basisclient nicht möglich."
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Frage"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3911,11 +3812,24 @@ msgstr "< &Zurück"
 msgid "&Finish"
 msgstr "&Beenden"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "An diesen Tagen der Woche nur während dieser Stunden rechnen."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Dienste"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "%s ausblenden"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Andere ausblenden"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Alle einblenden"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "An diesen Tagen der Woche nur während dieser Stunden Dateien übertragen."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Beende %s"
diff --git a/locale/de/BOINC-Project-Generic.po b/locale/de/BOINC-Project-Generic.po
deleted file mode 100644
index 347b817..0000000
--- a/locale/de/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Christian Beer <christian.beer at posteo.de>, 2015-2016
-# Wolf Dieter Dallinger <wolf.dieter at dallinger.de>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-05-31 11:23+0000\n"
-"Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
-"Language-Team: German (http://www.transifex.com/boinc/boinc/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Deutsch"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "German"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Einladungs-Code"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Zum Erstellen eines Kontos ist ein gültiger Einladungscode erforderlich."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Name"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identifiziert Sie auf unserer Webseite. Verwenden Sie Ihren richtigen Namen oder ein Pseudonym."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "E-Mail-Adresse"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Muss eine gültige E-Mail-Adresse in der Form 'name at domain.tld' sein."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Passwort"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Muss aus mindestens %1 Zeichen bestehen."
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Passwort bestätigen"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Land"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Wählen Sie, falls gewünscht, das Land, das Sie vertreten möchten."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Postleitzahl"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Freiwillig"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Konto erstellen"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "E-Mail-Adresse:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "E-Mail-Adresse vergessen?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Passwort:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "Passwort vergessen?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "angemeldet bleiben"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Anmelden"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Fettgeschriebener Text: [b]text[/b] (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kursivgeschriebener Text: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Unterstrichener Text: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Durchgestrichener Text: [s]text[/s]  (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Zitate: [quote]text[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Quelltext anzeigen: [code]Quelltext[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Listen: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Nummerierte Listen: [list=]text[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Ein Bild einfügen: [img]http://bild_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Einen Link einfügen: [url]http://linkadresse[/url] oder [url=http://linkadresse]linktext[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Schriftfarbe"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Schriftfarbe: [color=red]text[/color]  Tipp: es funktioniert auch so: color=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Standard"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Dunkelrot"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Rot"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Orange"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Braun"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Gelb"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Grün"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Olivgrün"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Türkis"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Blau"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Dunkelblau"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indigo"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Violett"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Schriftgröße"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Schriftgröße: [size=x-small]kleiner Text[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Klein"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Groß"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Alle offenen bbCodes schließen"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Tags schließen"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Älteste zuerst"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Neueste zuerst"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Am besten bewertete Beiträge zuerst"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Neuster Beitrag zuerst"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Meist angesehene zuerst"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Meiste Beiträge zuerst"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "freiwilliger Moderator"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Projektadministrator"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Projektentwickler"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Projekttester"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "freiwilliger Entwickler"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "freiwilliger Tester"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Projektwissenschaftler"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Helpdesk Experte"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Suche in Forenbeiträgen"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Suche im Forum"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Erweiterte Suche"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Private Nachrichten"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Fragen und Antworten"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Diskussionsforen"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 Diskussionsforen"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Vorherige"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Nächste"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Nachricht"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Nachricht senden"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Private Nachricht an %1 senden"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Beigetreten: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Beiträge: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Punkte: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "Punktedurchschnitt pro Tag: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Sie haben diese Nachricht noch nicht gelesen"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "ungelesen"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Nachricht %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "verborgen"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Geschrieben: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - als Antwort für "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Diese Nachricht bearbeiten"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Zuletzt geändert: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Dieser Beitrag wird nicht angezeigt weil der Absender von Ihnen geblockt wurde. %1Trotzdem anzeigen%2."
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Diesen Beitrag als anstößig melden"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Als anstößig melden"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Bewertung: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "Bewerten: "
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Hier klicken wenn Sie diesen Beitrag hilfreich finden."
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "positiv bewerten"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Hier klicken wenn Ihnen dieser Beitrag nicht gefällt."
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "negativ bewerten"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Antworten"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Auf diesen Beitrag antworten."
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Zitieren"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Beim antworten diesen Beitrag zitieren"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Von einem Moderator versteckt"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Geschrieben am %1 von %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Sie können keine Beiträge schreiben oder bewerten bis %1."
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Beiträge müssen 'kinderfreundlich' sein: Sie dürfen keine\n            obszönen, hasserfüllten, sexuell freizügige\n            oder andeutende Inhalte haben.\n        <li> Keine kommerzielle Werbung.\n        <li> Keine Verlinkung auf Webseiten mit sexuellen Inhalten,\n            Glücksspiel, oder Intoleranz gegenüber anderen.\n        <li> Keine Beiträge die andere verärgern oder reizen sollen,\n            oder das Thema an sich reißen sollen.\n   [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Regeln:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "mehr Informationen"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Sichtbar machen"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Beitrag sichtbar machen"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Verstecken"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Beitrag verstecken"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Verschieben"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Diesen Beitrag in ein anderes Thema verschieben"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Autor verbannen"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Für die Verbannung des Autors abstimmen"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Gegen die Verbannung des Autors abstimmen"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Eine Abstimmung zur Verbannung des Autors starten"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Löschen"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Diesen Beitrag löschen"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Nur Teammitglieder können Beiträge im Teamforum erstellen."
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Um ein neues Thema in %1 anlegen zu können, müssen Sie über eine bestimmte Punkteanzahl verfügen. Dies soll vor Missbrauch des Systems schützen."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Sie können für den Moment keine weiteren Themen mehr anlegen. Bitte warten Sie einige Zeit und versuchen Sie es dann erneut. Diese Verzögerung wurde eingeführt, um Missbrauch des Systems vorzubeugen."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Dieses Thema ist geschlossen. Nur Moderatoren oder Administratoren dürfen hier Beiträge erstellen."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "In einem versteckten Thema kann kein Beitrag erstellt werden."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Themen"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Beiträge"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Ansichten"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Letzter Beitrag"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Neue Beiträge im Thema %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Neue Beiträge in abonniertem Thema"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Es gibt neue Beiträge im Thema '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Alle Themen als gelesen markieren"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Alle Themen in allen Bereichen als gelesen markieren."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Kein Computer angegeben"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Nicht verfügbar"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "zu Hause"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Arbeit"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "in der Schule"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Aktualisieren"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Informationen zum Computer"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP Adresse"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(die letzten %1 mal gleich)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Externe IP-Adresse"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Zeige IP-Adresse"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Domäne"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Produktname"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Ortszeit"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "GMT %1 Stunden"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Besitzer"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "anonym"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Erstellt"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Gesamtguthaben"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Durchschnittliche Punkte"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Projektübergreifende Punkte"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPU Typ"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Anzahl der Prozessoren"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Koprozessor"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Betriebssystem"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC Version"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Arbeitsspeicher"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "CPU Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Auslagerungsdatei"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "gesamter Festplattenspeicher"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "freier Festplattenspeicher"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "ermittelte Geschwindigkeit für Gleitkommazahlen"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 Millionen Operationen/Sek"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "ermittelte Geschwindigkeit für ganze Zahlen"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "mittlere Uploadgeschwindigkeit"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/sek"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "mittlere Downloadgeschwindigkeit"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "mittlere Taskdauer"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 Tage"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Anwendungsdetails"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Zeige"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Aufgaben"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Anzahl der Verbindungen zum Server"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "letztmaliger Kontakt mit Server"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Anteil der Gesamtlaufzeit von BOINC"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Verfügbarkeit der Internetverbindung, während BOINC lief"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Verfügbarkeit der Rechenleistung, während BOINC lief"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Verfügbarkeit der Grafikkartenberechnung, während BOINC lief"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "mittlere CPU-Effizienz"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Korrekturfaktor der Taskdauer"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Ort"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Diesen Computer löschen"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Doppelte Einträge dieses Computer zusammenführen"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Zusammenführen"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Letzter Kontakt"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informationen zum Computer"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rang"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Punktedurchschnitt"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "aktueller Punktedurchschnitt"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Betriebssystem"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 Prozessoren)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Details"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Projektübergreifende Statistiken:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "PC %1 hat eine überschneidende Nutzungszeit:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "PC %1 hat kein kompatibles Betriebssystem:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "PC %1 hat keinen kompatiblen Prozessor:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "gleicher Computer"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Der PC %1 kann nicht mit %2 zusammen geführt werden. Die Computer sind inkompatibel."
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Führe PC %1 mit %2 zusammen."
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Konnte Punkte für neuen Computer nicht aktualisieren."
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Aufgaben konnten nicht aktualisiert werden"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Konnte den alten Computer nicht zur Ruhe setzen"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Setze Computer %1 zur Ruhe"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Zeige:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Alle Computer"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Nur aktive Computer der letzten 30 Tage"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "Computer ID"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>Version"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Computer nach Namen zusammen führen"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Browsereinstellung"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Kommentar"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Nachrichten sind auch als %sRSS feed%s verfügbar."
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Posteingang"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Schreiben"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Private Nachricht versenden"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Vorschau"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "Keine entsprechende Nachricht gefunden"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "An"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Benutzer-IDs oder eindeutige Benutzernamen, durch Kommas getrennt"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Betreff"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Nachricht senden"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "hat dir eine private Nachricht gesendet; Betreff:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Private Nachricht%1 von %2; Betreff:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Nachricht konnte nicht erstellt werden."
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Sie dürfen nicht in so kurzen Abständen private Nachrichten versenden. Bitte warten Sie ein wenig, bis Sie weitere Nachrichten versenden."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "ungelesen"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "E-Mail Benachrichtigungen in den %1Communityeinstellungen%2 einrichten."
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Private Nachricht"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Nutzungsbegrenzungen"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Nutze höchstens"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Erlaubt es einige Prozessoren für andere Anwendungen zu reservieren. Beispiel: 75% benutzt nur 6 Kerne eines 8 Kern Prozessors."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% der Prozessoren"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Die Berechnung alle paar Sekunden pausieren/fortsetzen um die Prozessortemperatur und den Energieverbrauch zu senken. Beispiel: 75% bedeutet 3 Sekunden zu rechnen und 1 Sekunde zu warten."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% der Prozessorzeit"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Wann pausiert werden soll"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Pausieren, während Rechner im Akku-Betrieb läuft"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Anklicken, damit die Berechnung pausiert, während der Rechner im Akku-Betrieb läuft."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Pausieren, während Rechner in Benutzung ist"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Anklicken, damit die Berechnung und die Datei-Übertragung pausiert, während der Rechner in Benutzung ist."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Verwendung des Grafik-Prozessors pausieren, während der Rechner in Benutzung ist."
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Anklicken, damit die Verwendung des Grafik-Prozessors pausiert wird, während der Rechner in Benutzung ist."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'In Benutzung' meint Aktivität der Maus/Tastatur in den letzten"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Dies bestimmt, wann der Rechner als „in Benutzung“ angesehen wird."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "Minuten"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Pausieren wenn keine Aktivität der Maus/Tastatur in den letzten"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Dies erlaubt einigen Rechnern, in den Energiesparmodus zu wechseln, wenn sie nicht in Benutzung sind."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Pausieren, wenn die Prozessorauslastung durch andere Programme über folgenden Wert steigt:"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Pausieren wenn der Computer mit anderen Anwendungen beschäftigt ist."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Rechne nur zwischen:"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Berechnungen nur während eines bestimmten Zeitraumes eines jeden Tages durchführen.   "
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Anderer"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Speichere mindestens"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Speichere ausreichend Aufträge, um den Rechner so lange zu beschäftigen."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "Tage"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Speichere zusätzlich für weitere"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Speichere zusätzliche Aufgaben über dem Minimum. Bestimmt wie viele Aufgaben beim Kontakt mit dem Projekt angefordert werden."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Zwischen Aufträgen wechseln etwa alle"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Wenn Sie mehrere Projekte bearbeiten, dann darf BOINC zwischen diesen so häufig wechseln."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Sicherung der Aufgaben höchstens alle"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Dies bestimmt wie oft Aufgaben auf die Festplatte gesichert werden, damit diese später fortgesetzt werden können."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "Sekunden"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Nutze nicht mehr als:"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Beschränke den Festplattenplatz, den BOINC benutzt."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Lasse mindestens"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Begrenzung des Festplattenplatzes damit so viel Speicher auf dem von BOINC genutzten Datenträger freibleibt."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB frei:"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Prozentuale begrenzung des Festplattenplatzes den BOINC auf dem Datenträger nutzen darf."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% von Gesamt"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Wenn der Computer benutzt wird, nutze höchstens"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Begrenzung des Arbeitsspeichers welcher von BOINC genutzt wird, während der Computer anderweitig genutzt wird."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Wenn der Computer nicht genutzt wird, nutze höchstens"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Begrenzung des Arbeitsspeichers welcher von BOINC genutzt wird, während der Computer nicht anderweitig genutzt wird."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Lasse nicht-GPU Aufgaben im Speicher, wenn sie pausiert sind"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Wenn ausgewählt verbleiben pausierte Aufgaben im Speicher und können ohne Verlust fortgesetzt werden. Wenn nicht ausgewählt wird der Speicher freigegeben und die Aufgaben vom letzten Sicherungspunkt fortgesetzt."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Auslagerungsspeicher: nutze höchstens"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Beschränke den Auslagerungsspeicher (die Auslagerungsdatei), den BOINC benutzt."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Begrenze Downloadrate auf"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Begrenzt die Downloadrate von Dateiübertragungen."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/Sekunde"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Begrenze Uploadrate auf"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Begrenzt die Uploadrate von Dateiübertragungen."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Begrenze Datentransfer auf"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Beispiel: BOINC darf höchstens 2000 MB Daten alle 30 Tage übertragen."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB pro"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "Tage"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Dateien übertragen zwischen:"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Erlaubt Dateiübertragungen nur innerhalb einer täglichen Zeitspanne."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Die Datenverifikation von Bildern überspringen."
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Nur auswählen wenn der Internetprovider Bilder verändert. Das Überspringen der Verifikation reduziert die Sicherheit von BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Bestätigen, bevor mit dem Internet verbunden wird."
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Nur nützlich wenn Sie eine Verbindung via Modem, ISDN oder VPN aufbauen."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Verbindung trennen, wenn fertig"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Berechnung"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Festplatte"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Netzwerk"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Diese Einstellung werden für alle BOINC-Projekte an denen Sie teilnehmen verwendet."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1 Einstellungen aktualisieren nicht möglich! %2 Die rot markierten Werte sind außerhalb zulässiger Werte oder nicht numerisch!"
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "Berechnung"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Separate Einstellungen für %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Einstellungen bearbeiten"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Entfernen"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Separate Einstellungen für %1 hinzufügen"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Diese Einstellungen sind für alle Computer dieses Kontos gültig, außer"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "Computer, bei welchen mittels des BOINC Managers lokale Einstellungen gespeichert wurden"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Android Geräten"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Ansicht wechseln)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "kombinierte Einstellungen"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Primäreinstellungen (Standard)"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Letzte Änderung:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Einstellungen hinzufügen"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Einstellungen aktualisieren"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "ja"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "nein"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Computerstandort (Standard)"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Neue Computer werden diesen Standort für die Einstellungen benutzen."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Ressourcenaufteilung"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Bestimmt den Anteil an den Ressourcen des Computer die diesem Projekt zur Verfügung stehen. Beispiel: Bei einer Aufteilung zwischen zwei Projekten von 100 und 200 wird das erste 1/3 der Ressourcen bekommen und das andere 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Beschleunige Berechnung, durch Bereitstellung jeweils einer CPU je GPU?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "CPU benutzen"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "ATI-Grafikprozessor benutzen"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "NVIDIA-Grafikprozessor benutzen"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Intel-Grafikprozessor benutzen"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Die Ausführung von Testanwendung erlauben?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Dies hilft uns, Anwendungen zu verbessern, kann aber zu fehlerhaften Aufgaben auf Ihrem Computers führen"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "E-Mails werden von %1 gesendet; Bitte sicher stellen, dass der Spamfilter diese Adresse akzeptiert."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Ist es OK für %1 und Dein Team (wenn beigetreten) Dich per E-Mail zu kontaktieren?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Sollen deine Computer auf der %1 Webseite angezeigt werden?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Ansicht wechseln)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Projektspezifische Einstellungen"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "fehlerhafter Ort: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "fehlerhafte Teilmenge: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "und"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Dein Profil wird den anderen Benutzern veröffentlicht sobald es vom Projekt geprüft wurde. Dies dauert eventuell ein paar Tage."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Dein Profil wurde als unakzeptable markiert. Es ist für niemanden einsehbar. Bitte verändere es."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Datenbankfehler"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Um Spam zu vermeiden, werden Profile von Benutzern mit einem Punktedurchschnitt von unter %1 nur eingeloggten Benutzern angezeigt. Wir bitten, diese Unannehmlichkeit zu entschuldigen."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Benutzer ist gesperrt"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Es existiert kein Profil für diese Benuzer-ID."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Profil bearbeiten"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Ihre Meinung zu diesem Profil"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Dieses Profil für den Benutzer des Tages vorschlagen:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Dieses Profil ist %1lesenswert%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Den Administrator auf ein fragwürdiges Profil hinweisen:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Dieses Profil ist %1nicht lesenswert%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonyme Plattform"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA Grafikkarte"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI Grafikkarte"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel Grafikkarte"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Nicht in der Datenbank"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "ausstehend"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Alle"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "In Bearbeitung"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Überprüfung ausstehend"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Überprüfung ohne Ergebnis"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Gültig"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Ungültig"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Fehler"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inaktiv"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Ungesendet"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Fertig, Warte auf Bestätigung"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Fertig und Bestätigt"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Fertig, als ungültig markiert"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Fertig, Bestätigung nicht möglich"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Fertig, Bestätigung nicht eindeutig"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Fertig, zu spät für Bestätigung"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Fertig"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Konnte nicht gesendet werden"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Abgebrochen durch Server"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Nicht vor Ablaufdatum gestartet - abgebrochen"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Fehler beim Download"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Fehler beim Berechnen"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Fehler beim Hochladen"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Abbruch durch Benutzer"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Hochladen fehlgeschlagen"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Zeitüberschreitung - keine Antwort"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Wurde nicht benötigt"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Bestätigungsfehler"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Aufgegeben"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Abgeschlossen"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Erfolgreich"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Berechnungsfehler"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "nicht benötigtes Ergebnis"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "keine Antwort"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Neu"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "am herunterladen"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "in Bearbeitung"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Berechnungsfehler"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "am Hochladen"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Fertig"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Initialisiert"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "nicht benötigt"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Arbeitspaket fehlerhaft - Prüfung übersprungen"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Überprüft, noch keine Übereinstimmung"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Paket war zu spät für eine Überprüfung"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Konnte Ergebnis nicht senden"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Zu viele Fehler (evtl. ein Bug)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Zu viele Ergebnisse (evtl. nicht eindeutig)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Zu viele Ergebnisse insgesamt"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Paket abgebrochen"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "autorisiertes Ergebnis fehlt"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Unbekannter Fehler: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Paketname"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "anklicken für Einzelheiten"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Zeige IDs"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Zeige Namen"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Aufgabe"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Arbeitspaket"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Computer"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Gesendet"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Meldezeit<br />oder Ablaufdatum"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "Erklärung"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Laufzeit<br />(sek)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU Zeit<br />(sek)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Punkte"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Anwendung"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Arbeitspaket"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Ablaufdatum"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Empfangen"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Serverstatus"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Resultat"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Clientstatus"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Endstatus"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Laufzeit"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU Zeit"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Prüfungsstatus"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "max. FLOPS des Gerätes"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Anwendungsversion"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Ausgabedateien"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Stderr Ausgabe"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Status"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Aufgabenname:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Suchkriterien (eins oder mehrere nutzbar)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Schlagwörter"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Findet Teams mit diesen Begriffen im Namen oder der Beschreibung."
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Typ des Teams"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Nur aktive Teams anzeigen"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Suche"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Von Dir angefordert und die Rückmeldung des Gründers ist ausgeblieben."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Transfer des Gründerstatus abschließen"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Von Ihnen angefordert"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "Die Rückmeldezeit des Gründers beträgt %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Keines"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Übernahme einleiten"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "laufende Übernahme"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Team Informationen"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Beschreibung"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Internetseite"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Projektübergreifende Statistiken"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Typ"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Diskussionsforen"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Themen"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Diesem Team beitreten"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Hinweis: Wenn Sie E-Mails in den Projekteinstellungen erlauben, kann der Gründer des Teams Ihre E-Mail-Adresse einsehen."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Akzeptiert keine neuen Mitglieder"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Wechsel des Gründerstatus beantragt"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Rückmeldung bis %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Teamgründer wechseln"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Mitglieder"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Gründer"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Team-Admins"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Neue Mitglieder (letzte 24h)"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Mitglieder insgesamt"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "Anzeigen"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "aktive Mitglieder"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Mitglieder mit Punkten"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Admin"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Vorherige %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Nächste %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Kein Team gefunden."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Diese Aktion benötigt den Gründerstatus."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Diese Aktion benötigt die Team-Admin Berechtigung."
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "WARNUNG: Dies ist ein BOINC-weites Team. Hier vorgenommene Änderungen werden automatisch wieder überschrieben. Bearbeiten Sie das %1BOINC-weite Team%2 stattdessen."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Datenschutzhinweis%2: Wenn Sie ein Team erstellen, werden Ihre Projekteinstellungen (Ressourcenverteilung, Grafikeinstellungen) für jeden sichtbar."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Teamname (Textversion)"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Keine HTML-Tags möglich."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Teamname (HTML-Version)"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Sie können nur %1bestimmte HTML-Tags%2 verwenden."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Wenn Sie HTML nicht kennen, lassen Sie dieses Feld frei."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL der Team-Internetseite, wenn vorhanden"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "ohne \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Diese URL wird als Link zur Team-Internetseite benutzt."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Beschreibung des Teams"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Neue Mitglieder akzeptieren?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Benutzerprofil"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projekte bei denen Sie teilnehmen"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projekte bei denen %1 teilnimmt"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Anklicken für mehr Infos"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Seit"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Berechnungen und Punkte"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Computer, die zu diesem Konto gehören"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Anzeigen"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Projektübergreifende ID"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Projektübergreifende Statistiken"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Konto"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Team"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Projektübergreifend"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Urkunde"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Statistiken auf Ihrem Mobiltelefon"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Kontoinformationen"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "E-Mail-Adresse"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Postleitzahl"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 Mitglied seit"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Ändern"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "E-Mail-Adresse"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "Passwort"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "Andere Kontoinformationen"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "Benutzer ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "für Community Funktionen"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Kontoschlüssel"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Einstellungen"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Wann und wie BOINC Ihren Computer verwenden darf"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Berechnungseinstellungen"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Diskussionsforen und Private Nachrichten"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Communityeinstellungen"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Einstellungen für dieses Projekt"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 Einstellungen"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Das Profil von %1 anzeigen"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Community"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Erstellen"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 Beiträge"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Benachrichtigungen"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Team verlassen"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Verwalten"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(ausstehender Gründerwechsel)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Mitglied im Team"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "Team finden"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Gründer aber nicht Mitglied von"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Freunde finden"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Freunde"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Computer"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Spender"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Diese Person ist ein Freund"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Freundschaft aufheben"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Anfrage läuft"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "als Freund hinzufügen"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "Der Benutzername kann keine Leerzeichen am Anfang oder Ende beinhalten"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "Der Benutzername darf nicht leer sein."
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "Der Benutzername darf keine HTML-Tags beinhalten."
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "Abmelden"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "Anmelden"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Konto erstellen"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Serverstatus"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Ein Datenbankfehler ist bei Ihrer Anfrage aufgetreten. Bitte versuchen Sie es später noch einmal."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Verarbeitung der Anfrage nicht möglich"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "Stunden"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "min."
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "sek."
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Die Zeit für den Aufruf der verlinkten Seite ist abgelaufen. Bitte klicken Sie in ihrem Browser auf die Taste 'Zurück', laden Sie die Seite neu und versuchen sie es erneut."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Der Text lässt sich mit Hilfe von BBCode-Tags formatieren"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Projekt wegen Wartungsarbeiten angehalten"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 ist momentan wegen Wartungsarbeiten nicht verfügbar. Bitte versuchen Sie es später noch einmal."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Es ist momentan nicht möglich die Datenbank zu erreichen - Bitte versuchen Sie es später noch einmal."
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Es ist momentan nicht möglich die Datenbank auszuwählen - Bitte versuchen Sie es später noch einmal"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "verbleibende Zeichen"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Auf diesem Computer angemeldet bleiben"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Kontoeinrichtung abschließen"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Sie müssen einen Namen für Ihr Konto eintragen"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML-Tags im Namen sind nicht erlaubt"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "%1 Einstellungen bearbeiten"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "%1 Einstellungen für %2 hinzufügen"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Anwendungen"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "Die folgenden Anwendungen gehören zur Zeit zu %1. Wenn Sie an %1 teilnehmen, werden Ihrem Computer Aufgaben für eine oder mehrere dieser Anwendungen zugewiesen. Die aktuelle Version der jeweiligen Anwendung wird automatisch auf Ihren Computer heruntergeladen."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Plattform"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Version"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Durchschnittliche Leistung"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode tags"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "Mit BBCode tags können Sie Text in Ihrem Profil und im Nachrichtenforum formatieren.\nDas ist vergleichbar mit HTML, aber einfacher. Die tags starten mit einem [ (wo sie mit\nHTML %1 verwendet hätten) und enden mit ] (wo sie mit HTML %2 verwendet hätten)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Beispiele"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Fett"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "kursiv"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "unterstrichen"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Durchstreichen"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Hochgestellt"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Große Schrift"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Rote Schrift"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "Link zu einer Webseite"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Zitierter Text"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "Für Zitatblöcke benutzen"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "benutzen um ein Bild anzuzeigen"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Quellcodeschnippsel hier"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "benutzen um Quellcode anzuzeigen"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "vorformatierter Text"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "Benutzen um vorformatierten Text (gewöhnlich in monospace Schrift) anzuzeigen"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Element 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "benutzen um auf ein Trac-Ticket der BOINC Webseite zu verweisen"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "benutzen um auf das Trac-Wiki der BOINC Webseite zu verlinken"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Wenn Sie einen Tag nicht korrekt schließen oder einen Parameter nicht richtig angegeben haben,\ndann werden die Tags anstatt des formatierten Textes angezeigt."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Konto kann nicht erstellt werden"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Klicken Sie den <b>Zurück</b>-Knopf ihres Browser und versuchen Sie es erneut."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Ihre Antwort im reCAPTCHA war nicht korrekt. Bitte versuchen Sie es noch einmal."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Um ein Konto zu erstellen müssen Sie einen Einladungscode eingeben."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "Dieser Einladungscode ist leider ungültig."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Ungültige E-Mail-Adresse: Sie müssen eine gültige E-Mail-Adresse in der Form 'name at domain.tld' eingeben."
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Es besteht bereits ein Konto mit dieser E-Mail-Adresse."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Die neuen Passwörter sind unterschiedlich"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Passwörter dürfen nur aus ASCII-Zeichen bestehen."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Das neue Passwort ist zu kurz: Bitte mindestens %1 Zeichen verwenden."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Das Konto konnte nicht erstellt werden."
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "Hinweis: Wenn Sie den BOINC Manager benutzen, dann benötigen Sie dieses Formular nicht. Starten Sie BOINC und wählen Sie Projekt hinzufügen und geben Sie dort Ihre E-Mail-Adresse und Passwort ein."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Dieses Konto wird dem Team %1 angehören und die Projekteinstellungen des Teamgründers besitzen."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Bild"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Ihr Profilbild wird links angezeigt."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Zum Ersetzen wählen Sie eine JPG oder PNG Datei (max. %1) mit der \"Browse\" Schaltfläche aus."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Um das Bild aus Ihrem Profil zu entfernen, das Kästchen auswählen:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Wenn Sie Ihr Profil mit einem Bild versehen wollen, wählen Sie eine JPEG oder PNG Datei mit der \"Browse\"-Schaltfläche aus. Maximale Dateigröße: %1"
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Sprache"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Die Sprache auswählen in der Ihr Profil geschrieben ist:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Profil speichern"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Profil erstellen/bearbeiten"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "Das Format Ihres hochgeladenen Bildes wird nicht unterstützt."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Mit Ihrem %1Profil%2 können Sie Ihre Ansichten und Meinungen der %3 Community mitteilen."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Die reCaptcha Auswertung war nicht korrekt. Bitte versuchen Sie es erneut."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Ihre erste Anwort wurde vom Akismet Anti-Spam-System als Spam markiert. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Ihre zweite Antwort wurde vom Akismet Anti-Spam-System als Spam markiert. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Ihr übertragenes Profil war leer."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Datenbankfehler: Das Profil konnte nicht aktualisiert werden"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Datenbankfehler: Das Profil konnte nicht erstellt werden"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Profil gespeichert"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Glückwunsch! Ihr Profil wurde in unsere Datenbank aufgenommen."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Ihr Profil ansehen"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Profil erstellen"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Zum Schutz vor unerwünschter Werbung ist ein Punktedurchschnitt von min. %1 erforderlich um ein Profil zu erstellen. Wir entschuldigen uns für diese Unannehmlichkeit."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Das Konto konnte nicht gelöscht werden"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Konto gelöscht"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Ihr Konto wurde gelöscht."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Kontolöschung bestätigen"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Bei der Löschung Ihres Kontos werden alle Ihre\npersönlichen Informationen von unseren Servern gelöscht,\ninklusive des Profils und Nachrichten im Forum.\nKeine Arbeit wird mehr an Computer verteilt die\nzu diesem Konto gehören."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Dies kann nicht rückgängig gemacht werden.\nSobald das Konto gelöscht wurde, können Sie es nicht mehr zurückbekommen."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Sind Sie wirklich sicher, dass Sie Ihr Konto löschen wollen?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Ja"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Dieses Konto löschen"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nein"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Dieses Konto NICHT löschen"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "Konnte Profil nicht löschen - Bitte versuchen Sie es später noch einmal"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Bestätigung der Löschung"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Ihr Profil wurde gelöscht."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Bestätigung der Profillöschung"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Sind Sie sicher?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Gelöschte Profile sind für immer verloren und können nicht wiederhergestellt werden.\nSie müssen alle Daten neu eingeben,\nwenn Sie ein neues Profil möchten."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Wenn Sie absolut sicher sind Ihr Profil aus\nder Datenbank zu entfernen, dann klicken Sie 'Ja'."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Mein Profil löschen"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Mein Profil soll nicht gelöscht werden"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transaktion abgeschloßen"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Danke für Ihre Spende!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Ihr Spendenvorgang wurde abgeschlossen."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Ihre Spende wird dem Fortschrittsbalken nach der Bestätigung durch PayPal hinzugefügt."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Sie haben Ihren Spendenvorgang abgebrochen."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Dieses Projekt akzeptiert keine Spenden."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 Spenden"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Dieses Projekt akzeptiert Spenden mittels\n%1"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Um zu spenden, einfach den Betrag den Sie spenden wollen in das folgende Feld eintragen.\nPayPal akzeptiert verschiedene Währungen\n(Kanadische Dollars, Euros, Pfund Sterling, U.S. Dollars.\nYen, Australische Dollars, Neuseeland Dollars,\nSchweizer Franken, Hong Kong Dollars, Singapur Dollars, Schwedische Kronen,\nDänische Kronen, Polnische Zloty, Norwegische Kronen,\nUngarische Forint, Tschechische Kronen)\nSie können den vorhandenen Währungskonverter benutzen\num den eingegeben [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Betrag den Sie spenden möchten"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Geschätzter Wert in"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anonyme Spende"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Hier auswählen wenn Ihr Name und Projektkonto<b>nicht</b>\nin der Liste der Spender angezeigt werden soll.<br> Falls nicht ausgewählt, dann werden sie aufgenommen als Benutzer ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Bitte einloggen um die Spende ihrem Benutzerkonto zuweisen zu können."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Fortfahren"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Spenden werden akzeptiert mittels"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "BOINC Add-On's herunterladen"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Sie können Anwendungen aus verschiedenen Kategorien herunterladen."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Diese Anwendungen sind nicht von %1 unterstützt und die Benutzung erfolgt auf eigene Gefahr."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Wir stellen keine Anleitungen zur Installation der Anwendungen bereit.\nMöglicherweise hat der Autor einiges an Hilfe über Installation oder Deinstallation der Anwendung bereitgestellt.\nFalls das nicht ausreicht sollten Sie den Autor/Herausgeber direkt kontaktieren."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Anweisungen und Hilfe zur %1Installation und Nutzung von BOINC%2 sind ebenfalls erhältlich."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Diese Liste ist zentral verwaltet von der %1BOINC Webseite%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Die E-Mail-Adresse des Kontos ändern."
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Die neue E-Mail-Adresse '%1', ist ungültig."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Die neue E-Mail-Adresse ist die gleiche wie die im Moment genutzte. Nichts wurde verändert."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Es existiert bereits ein Konto mit dieser E-Mail-Adresse."
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Ungültiges Passwort."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Die E-Mail-Adresse Ihres Kontos ist jetzt %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Bitte %1bestätigen Sie diese E-Mail-Adresse%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Wir konnten Ihre E-Mail-Adresse,wegen einem Problem mit der Datenbank, nicht aktualisieren. Bitte versuchen Sie es später noch einmal."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "E-Mail-Adresse ändern"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Die E-Mail-Adresse Ihres Kontos ändern."
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "neue E-Mail-Adresse"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Muss eine gültige E-Mail-Adresse der Form 'name at domain.tld' sein."
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Kein Passwort?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Zurücksetzen bestätigen"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Diese Aktion wird alle Änderungen die Sie in Ihren Community-Einstellungen gemacht haben löschen. Zum Abbrechen, den 'Zurück'-Schalter Ihres Browsers klicken."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Einstellungen zurücksetzen"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Fehler: Nicht der richtige Dateityp, nur Formate PNG und JPEG sind unterstützt."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Ihre Signatur war zu lang, bitte bleiben Sie unter 250 Zeichen."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Kein solcher Benutzer:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Wie sollen wir Sie bei neuen privaten Nachrichten, Freundschaftsanfragen, Antworten in abonnierten Foren und bei anderen Ereignissen benachrichtigen?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Auf der Seite meines Kontos (keine E-Mail)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Unverzüglich, per E-Mail"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "In einer täglichen E-Mail-Zusammenfassung"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Identität in Diskussionsforen"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Ein Bild welches in den Diskussionsforen angezeigt wird."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPEG oder PNG. Größe: max. 4KB, 100x100 pixel"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Keinen Avatar benutzen"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Benutze einen allgemein anerkannten und bereitgestellten Avatar von %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Benutze diesen hochgeladenen Avatar:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Avatar Vorschau"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "So wird Ihr Avatar aussehen"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Signatur für Nachrichten in den Diskussionsforen"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Weitere %1 verschiedene freie Dienste%2 zur\n<br> Bereitstellung dynamischer 'Signaturbilder',\n<br> Anzeigen Ihrer aktuellen Punkte, Projektneuigkeiten, etc."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Standardmäßig Signatur anhängen"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Vorschau Signatur"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "So wird Ihre Signatur in den Diskussionsforen aussehen"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Nachrichtenanzeige"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Was soll angezeigt werden?"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "alle Avatarbilder ausblenden"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "alle Signaturen ausblenden"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Bilder als Links anzeigen"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Öffne Links in einem neuen Fenster/Tab"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Besondere Benutzer hervorheben"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Diese Anzahl Nachrichten pro Seite anzeigen."
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "sortieren nach"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Themen:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Beiträge:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Automatisch zum ersten neuen Beitrag im Thema springen"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Angepinnte Beiträge nicht nach oben bewegen"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Nachrichtenfilter"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Gefilterte Benutzer"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignoriere Beiträge in Diskussionsforen und Private Nachrichten von diesen Benutzern."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "Benutzer ID (zum Beispiel: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Benutzer zum Filter hinzufügen"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Hier klicken um die Einstellungen zu aktualisieren"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Zurücksetzen"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Oder hier klicken um auf die Standardvorgaben zurückzusetzen"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Wir konnten Ihr Passwort wegen eines Datenbankproblems nicht ändern. Bitte versuchen Sie es später noch einmal."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Passwort ändern"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Ihr Passwort wurde geändert"
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Neues Passwort"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Neues Passwort bestätigen"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML-Tags sind in Ihrem Namen nicht erlaubt."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Sie müssen einen Namen für das Konto angeben."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Kontoinformationen konnten nicht aktualisiert werden."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Kontoinformationen bearbeiten"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Name %1 Echter Name oder Spitzname %2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 Ihrer Webseite; optional %2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Postleitzahl %1 optional %2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Angaben aktualisieren"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Serverzustände"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "Der <b>Serverzustand</b> einer Aufgabe zeigt an ob die Aufgabe zu einem Computer verschickt wurde, und wenn das so ist ob der Computer sie beendet hat. Mögliche Werte sind:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Die Aufgabe ist nicht fertig zum versenden (zum Beispiel, weil ihre Eingabedateien nicht verfügbar sind)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Die Aufgabe ist fertig zum versenden, aber wurde noch nicht verschickt."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "In Bearbeitung"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Die Aufgabe wurde verschickt; warte auf Fertigstellung."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "Die Aufgabe wurde an einen Computer verschickt und entweder ist die Abgabefrist abgelaufen oder der Computer hat sie als fertig gemeldet."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Resultate"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "Das <b>Resultat</b> einer Aufgabe ist definiert wenn ihr Serverzustand <b>beendet</b> ist. Mögliche Werte sind:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "Die Aufgabe wurde zu einem Computer geschickt, aber der Computer hat die Arbeit noch nicht beendet und die Ergebnisse gemeldet."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Ein Computer beendete und meldete die Aufgabe erfolgreich zurück."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Der Server war nicht in der Lage die Aufgabe zu einem Computer zu schicken (evtl. weil ihre Systemanforderungen zu groß waren)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Clientfehler"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Die Aufgabe wurde zu einem Computer geschickt und ein Fehler ist aufgetreten."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "Die Aufgabe wurde zu einem Computer geschickt und keine Antwort wurde innerhalb der Zeitbegrenzung empfangen."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "Die Aufgabe wurde nicht an einen Computer geschickt weil bereits genug andere Aufgaben für dieses Arbeitspaket fertig sind."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "Die Aufgabe wurde gemeldet aber konnte nicht validiert werden, typisch wenn die Ausgabedateien auf dem Server weg sind."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Clientzustand"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Der <b>Clientzustand</b> eines Ergebnisses zeigt die Phase der Verarbeitung an, in der ein Fehler aufgetreten ist."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Der Computer hat die Aufgabe noch nicht fertiggestellt."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Der Computer hat die Aufgabe erfolgreich fertiggestellt."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Der Computer konnte die Anwendung oder die Eingabedateien nicht herunterladen."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Ein Fehler ist während der Berechnung aufgetreten."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Der Computer konnte die Ausgabedateien nicht hochladen."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Zeitpunkt der Einreichung und Abgabefrist"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "Die Spalte <b>Zeitpunkt der Einreichung und Abgabefrist</b> hängt davon ab, ob die Aufgabe schon gemeldet wurde:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "bereits gemeldet"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Der Zeitpunkt wann sie gemeldet wurde"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Noch nicht gemeldet, Abgabefrist in der Zukunft"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Abgabefrist, in grün angezeigt."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Noch nicht gemeldet, Abgabefrist in der Vergangenheit"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Abgabefrist, in rot angezeigt."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Unbekanntes Feld"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Vorschau der E-Mail"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Ihre E-Mail wird wie folgt aussehen:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "E-Mail senden"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Benutzen Sie den Zurückschalter Ihres Browsers um auf das Nachrichtenformular zurück zu kehren"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "E-Mails senden"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "E-Mail erfolgreich an %1 gesendet"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "Fehler beim versenden der E-Mail an %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Danke dass Sie ihren Freunden über %1 berichtet haben"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Sie haben die Namen und/oder E-Mail-Adressen ihrer Freunde vergessen einzutragen; Bitte %1gehen Sie zu dem Formular zurück%2 und geben Sie sie ein."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Das Projekt konnte keine E-Mail versenden - bitte informieren Sie die Administratoren"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Erzählen Sie ihren Freunden von %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Helfen Sie uns indem Sie Freunden, Familie und Mitarbeitern von %1 erzählen"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Füllen Sie dieses Formular mit Namen und E-Mail-Adressen von Leuten aus von denen Sie denken sie währen an %1 interessiert. Wir werden ihnen in Ihrem Namen eine E-Mail schicken und Sie können wenn Sie mögen ihre eigene Nachricht hinzufügen ."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Ihr Name:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Ihre E-Mail-Adresse:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Name des Freundes:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "E-Mail-Adresse des Freundes:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Zusätzliche Nachricht (optional)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Senden"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "Sie sind nicht befugt Benutzer zu verbannen."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Abstimmung über Verbannung"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Kein Benutzer mit dieser ID gefunden."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "Benutzer ist bereits gebannt"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Sind Sie sicher dass Sie %1 verbannen wollen?<br/>Das wird verhindern dass %1 für eine ausgewählte Zeit etwas schreiben kann.<br/>Das sollte nur geschehen wenn %1 dauerhaft schlechtes Verhalten gezeigt hat."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Wählen Sie den Grund aus der Kategorie, optional schreiben Sie eine längere Erklärung warum der Benutzer gebannt werden sollte."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Kategorie"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Obszön"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Beleidigende/Hass Mail"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Benutzeranfrage"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Grund"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "wird verschickt wenn nicht leer"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Mit Abstimmung fortfahren"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Sie müssen eine Aktion bestimmen...."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Sie können diesen Beitrag nicht länger bearbeiten.<br/>Beiträge können nur bis zu %1 Minuten nachdem sie erstellt wurden bearbeitet werden."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Sie sind nicht befugt diesen Beitrag zu bearbeiten."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Ihre Nachricht bearbeiten"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Titel"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Diesem Beitrag meine Signatur anfügen"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Für Sie nicht sichtbar"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Team-Diskussionsforum für %1 "
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Neues Thema"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Ein neues Thema in diesem Forum erstellen"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Dieses Diskussionsforum ist auch als %1RSS feed%2 verfügbar"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Dieses Thema ist versteckt"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Dieses Thema ist angepinnt und gesperrt und Sie haben es noch nicht gelesen"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "angepinnt/gesperrt/ungelesen"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Dieses Thema ist angepinnt und Sie haben es noch nicht gelesen"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "angepinnt/ungelesen"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Sie haben dieses Thema noch nicht gelesen und es ist gesperrt"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "ungelesen/gesperrt"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Sie haben dieses Thema noch nicht gelesen"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Dieses Thema ist angepinnt und gesperrt"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "angepinnt/gesperrt"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Dieses Thema ist angepinnt"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "angepinnt"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Dieses Thema ist gesperrt"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "gesperrt"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Sie haben dieses Thema gelesen"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "gelesen"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Fragen und Antworten"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Sprechen Sie live mit einem Helfer in einer der vielen Sprachen über Skype. Gehen Sie zur %1BOINC Online Hilfe%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Themengebiet"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Fragen"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Diskussionen der Mitglieder von %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Diskussionsforen"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Wenn Sie eine Frage oder ein Problem haben, benutzen Sie bitte die %1Fragen & Antworten%2 Rubrik der Diskussionsforen."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Abonnierte Themen"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Beitrag moderieren"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Beitrag verstecken"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Kommerzieller Spam/Werbung"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "doppelter Beitrag"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Verschiebe Beitrag"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID des Zielthemas:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Benutzer verbannen"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Dauer der Verbannung"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 Stunden"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 Tag"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 Woche"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 Wochen"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 Monat"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Für immer"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Zusätzliche Erklärung %1 Diese ist in der E-Mail an Benutzer enthalten.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "Sie sind nicht befugt diesen Beitrag zu moderieren."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Kann nicht zu einem anderen Kategorietyp verschoben werden"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Kann nicht zu einer anderen Kategorie verschoben werden."
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Nicht befugt um Benutzer zu verbannen"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Verbannung"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "Benutzer %1 wurde verbannt."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Aktion fehlgeschlagen: mögliches Datenbankproblem"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "nicht befugt"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Moderiere Thema '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Den Grund in der Kategorie auswählen, oder eine längere Beschreibung eingeben warum Sie das Thema sperren oder verstecken wollen; dann OK drücken."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Aktuelles Forum"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Zielforum"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Neuer Titel:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Nur Projektadministratoren können hier ein Thema erstellen. Wie dem auch sei, Sie können vielleicht in bereits existierenden Themen antworten."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Ihr verwendeter Text wurde beim ersten Versuch vom Akismet Anti-Spam-System als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Neues Thema erstellen"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Ein neues Thema erstellen"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Denken Sie daran einen Titel anzugeben"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Dieses Element als eine Nachricht im BOINC Manager anzeigen"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Machen Sie das nur für Elemente die von Interesse für die Benutzer sein könnten."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Bewertung abgeschaltet"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Diese Funktion ist zur Zeit vom Projekt abgeschaltet."
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Sie brauchen eine höhere durchschnittliche Punktzahl oder Gesamtpunktzahl um einen Beitrag zu bewerten."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Sie haben diesen Beitrag bereits bewertet."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Zurück zum Thema"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Eingabe gespeichert"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Ihre Eingabe wurden gespeichert. Danke für Ihre Hilfe."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Stimme registriert"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Ihre Bewertung wurde gespeichert. Danke für Ihre Eingabe."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Problem bei der Abstimmung (Übermittlungsfehler)"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Ihr verwendeter Text wurde beim ersten Versuch von dem Akismet Anti-Spam-System als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Zum Thema antworten"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Nachricht:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "Antworte zur %1Nachricht ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Antwort schreiben"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Füge dieser Antwort meine Signatur hinzu"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Sie brauchen eine höhere durchschnittliche Punktzahl oder Gesamtpunktzahl um einen Beitrag zu melden."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Bericht registriert"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Ihre Meldung wurde gespeichert. Danke für ihren Beitrag."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Ein Moderator wird jetzt Ihre Meldung anschauen und entscheiden was passieren wird - dies kann eine Zeit lang dauern, gedulden Sie sich bitte"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Forenbeitrag melden"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Bevor sie diesen Beitrag melden, überlegen Sie sich vielleicht stattdessen das Bewertungssystem (+/-) zu benutzen. Wenn genug Benutzer einen Beitrag negativ bewerten wird er evtl. versteckt werden.<br />Sie können das Bewertungssystem am Ende des Beitrags finden."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Beitrag melden"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Warum finden Sie diesen Beitrag unverschämt/angreifend: %1Bitte genug Information einfügen damit eine andere Person\ndie das Thema noch nicht gelesen hat schnell das Problem erkennen kann.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Meldung nicht registriert"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Ihre Meldung konnte nicht aufgezeichnet werden. Bitte warten Sie eine Weile und versuchen Sie es erneut."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Wenn das kein temporärer Fehler ist, dann melden Sie das bitte den Projektentwicklern."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS feed"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Dieses Diskussionsforum ist auch als RSS-Feed verfügbar."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Optionen:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Beinhaltet nur Beiträge von Benutzer-ID %1 (Standard: alle Benutzer)"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Beinhaltet nur Beiträge der letzten %1 Tage (Standard: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Nur Themen: %1 (Beinhaltet nur die ersten Beiträge eines jeden Themas)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Forum durchsuchen"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Suchanfrage"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Suche nach Schlüsselwörtern:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Beiträge die die angegebenen Wörter enthalten werden angezeigt"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Zum Beispiel: \"Bildschirmschoner eingefroren\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Suche nach Autor ID:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Nur Beiträge dieses Benutzers werden angezeigt"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Zum Beispiel: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Suchoptionen"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Einschränkungen der Suche"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Suche maximal diese Anzahl von Tagen in der Vergangenheit."
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 Monate"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 Jahr"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "keine Einschränkung"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Nur Beiträge aus diesem Forum anzeigen"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Sortieren nach"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Suche starten"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Ergebnisse der Forensuche"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Thementitel die Ihrer Anfrage entsprechen:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Nachrichten die Ihrer Anfrage entsprechen:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Entschuldigung, Es konnte nichts gefunden werden was Ihrer Suchanfrage entspricht. Sie können versuchen Ihre Suche unter Verwendung von weniger Wörtern zu erweitern (oder weniger spezielle Wörter verwenden)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Sie können ebenfalls %1die gleiche Suche auf Google probieren.%2 "
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Andere Suche ausführen"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Abonnement erfolgreich"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Sie sind nun Abonnent von %1. Sie werden benachrichtigt sobald ein neuer Beitrag existiert."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Abonnement fehlgeschlagen"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Wir sind momentan nicht in der Lage Sie %1 abonnieren zu lassen. Bitte versuchen Sie es später noch einmal."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Abmeldung vom Abonnement erfolgreich"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Sie abonnieren nicht länger %1. Sie werden keine Mitteilungen mehr für dieses Thema erhalten."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Abmeldung (Abonnement) fehlgeschlagen"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Wir sind momentan nicht in der Lage Sie von dem Abonnement %1 abzumelden. Bitte versuchen Sie es später noch einmal."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Unbekannte Abonnement Aktion"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Dieses Forum ist für Sie nicht sichtbar."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Dieses Thema wurde von Moderatoren versteckt."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "Meine Frage wurde beantwortet"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Klicken Sie hier falls Ihre Frage hinlänglich beantwortet wurde."
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Ich habe auch diese Frage"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Eine neue Nachricht zu diesem Thema schreiben"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Nicht mehr abonnieren"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Sie haben dieses Thema abonniert. Hier klicken zum abbestellen."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Abonnieren"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Anklicken um benachrichtigt zu werden, wenn neue Beiträge geschrieben wurden."
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Dieses Thema sichtbar machen"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Dieses Thema vor der Öffentlichkeit verstecken"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Entpinnen"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Dieses Thema nicht anpinnen"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Anpinnen"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Diesen Strang immer am Anfang dieses Forums anzeigen "
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Entsperren"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Neue Beiträge in diesem Thema erlauben"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Sperren"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Keine neuen Beiträge in diesem Thema erlauben"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Dieses Thema in ein anderes Forum verschieben"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Titel bearbeiten"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Den Titel des Themas bearbeiten"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Thema endgültig löschen"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Als Client-Nachricht exportieren"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Nicht exportieren"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Diesen Beitrag nicht als Client-Nachricht exportieren"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Sortieren"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Themenstatus aktualisiert"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "Der Status wurde aktualisiert."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Beiträge von %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Ihr seit bereits Freunde"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Sie haben die Freundschaft mit %1 am %2 angefragt."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Es wird noch auf eine Antwort gewartet."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 hat einer Freundschaft mit Ihnen nicht zugestimmt"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Sie können nicht mit sich selbst Freundschaft schließen."
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "als Freund hinzufügen"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Sie möchten mit %1 Freundschaft schließen. Wir werden %1 benachrichtigen und Ihn/Sie bitten die Freundschaft zu bestätigen."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Eine Nachricht mitsenden (optional):"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Freundschaftsanfrage gesendet"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "Wir haben %1 über die Anfrage benachrichtigt."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Bitte melden Sie sich als %1 an"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Sie müssen sich als %1 anmelden um die Freundschaftsanfrage zu sehen"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Freundschaftsanfrage"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 hat die Freundschaft mit Ihnen angefragt."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 sagt: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Freundschaft akzeptieren"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Akzeptieren anklicken wenn %1 tatsächlich ein Freund ist"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Ablehnen"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Ablehnen anklicken wenn %1 kein Freund ist"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Freundschaft bestätigt"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Ihre Freundschaft mit %1 wurde bestätigt."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Freundschaft abgelehnt"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Sie haben die Freundschaft mit %1 abgelehnt."
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Benachrichtigung nicht gefunden"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Freundschaft bestätigt"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "Sie sind nun mit %1 befreundet."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Freundschaft aufheben"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Bist Du sicher die Freundschaft mit %1 aufzuheben?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Freunde bleiben"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Freundschaft aufgehoben"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Ihre Freundschaft mit %1 wurde aufgehoben."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Wenn Sie die E-Mail-Adresse des Kontos noch wissen und die E-Mails auch abrufen können:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Bitte die E-Mail-Adresse eingeben und bestätigen. Eine E-Mail mit Anweisungen zum zurücksetzen Ihres Passwortes wird in kürze verschickt."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Wenn Sie die E-Mail-Adresse Ihres Kontos vergessen haben oder die E-Mails nicht mehr abrufen können:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Wenn Sie BOINC mit diesem Konto eingesetzt haben gibt es einen weiteren Weg sich anzumelden:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Navigieren Sie in das BOINC Datenverzeichnis auf Ihrem Computer (das Verzeichnis findet sich im Meldungsfenster nach dem Start)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Finden Sie Ihre Kontodatei des Projektes, der Dateiname lautet: <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Öffnen Sie die Datei mit einem Texteditor (z.B. Editor oder WordPad). Sie sehen ungefähr folgendes:"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Kopieren Sie die Zeichenfolge zwischen %1 und %2 (%3 im obigen Beispiel)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Fügen Sie die Zeichenfolge in das untere Feld ein und bestätigen mit OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Sie werden jetzt mit Ihrem Konto angemeldet, bitte aktualisieren Sie als erstes Ihre E-Mail-Adresse und Ihr Passwort."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Einloggen mit Kontoschlüssel"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Kontoinformationen vergessen?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Es sind noch keine GPU Aufgaben zurückgemeldet."
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Beste Grafikkarten"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "Die produktivsten Grafikkarten für die verschiedenen Plattformen zeigt diese Liste. Die relative Geschwindigkeit, berechnet aus der durchschnittlichen Bearbeitungszeit, ist in Klammern angegeben."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Willkommen bei %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Die Kontoeinstellungen können Sie mit den folgenden Links anzeigen und bearbeiten."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Laden Sie die %1BOINC-Clientsoftware%2 herunter, wenn Sie das nicht bereits getan haben."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Ihr Konto"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonyme Plattform, fehlende Anwendung"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "Anonyme Plattform"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "fehlende Anwendungsversion"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "fehlende Anwendung"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "fehlende Plattform"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Anzahl der abgeschloßenen Aufgaben"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Max. Aufgaben pro Tag"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Anzahl der Aufgaben heute"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Aufeinander-folgende, gültige Aufgaben"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "mittlere Berechnungsgeschwindigkeit"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Anwendungsdetails für Rechner %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Es gibt keine Aufzeichnungen zu diesem Computer."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Sie können den Eintrag für diesen Computer nicht löschen, da  für ihn noch Arbeitspakete in der Datenbank existieren. Bitte warten Sie einige Tage bis die Einträge vom Projekt gelöscht werden."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Den Eintrag für diesen Computer löschen"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Eintrag gelöscht."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Zurück zur Liste der Computer"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Computereinträge zusammen führen"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Computer zusammenführen"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Es kann vorkommen das BOINC mehrere Einträge für einen Computer anlegt. Sie können dies korrigieren indem Sie ältere Einträge mit dem aktuellsten zusammenführen."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Es gibt keine Computer die mit diesem zusammengeführt werden können."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Details anzeigen"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Überprüfen der Computer die mit %1 übereinstimmen (erstellt %2, Computer ID %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "Name"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "erstellt"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "Computer ID"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "kein Computername"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Computer zusammenführen"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Punkte der Computer werden aktualisiert"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Punkte des Computers aktualisiert"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Ort des Computer aktualisiert"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "keine"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Der Ort dieses Computer wurde auf %1 gesetzt."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Diese Änderung wird erst bei der nächsten Kommunikation des Computers mit dem Projekt wirksam."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Zurück zur Computerseite"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Computer von %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Computer sind versteckt"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Dieser Benutzer hat die Informationen zu seinen Computern verborgen."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Ihre Computer"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Erlaubte HTML-Tags"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Die folgenden HTML-Tags sind in der Teambeschreibung erlaubt:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "Fett"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "kursiv"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "Verlinkung"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "Absatz"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "Zeilenumbruch"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "vorformatiert"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "Bild, max. Höhe: 450 pixel. Bitte nicht auf Bilder, ohne das Einverständnis des Urhebers, verlinken."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Sie können auch die kaufmännisch-Und Notation für spezielle Zeichen benutzen."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Lesen Sie unsere Regeln und Grundsätze"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Installieren Sie %1 nur, wenn Sie dazu befugt sind"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Installieren Sie %1 ausschliesslich auf Computern, die Sie besitzen, oder von denen Ihnen die Zugriffserlaubnis des Besitzers vorliegt. Die Regeln mancher Firmen und Schulen verbieten die Nutzung ihrer Computer für Projekte wie %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Wie %1 Ihren Computer verwendet"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Wenn Sie %1 auf Ihrem Computer arbeiten lassen, beansprucht es einen Teil der Rechenleistung, des Festplattenplatzes und der Netzwerkbandbreite. Sie können selbst bestimmen, wann und in welchem Umfang Ressourcen von %1 benutzt werden dürfen."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Die von Ihrem Computer durchgeführte Arbeit trägt dazu bei, die Ziele von %1 zu erreichen, wie sie auf der Webseite beschrieben sind. Die Anwendungsprogramme können sich dabei von Zeit zu Zeit ändern."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Datenschutz"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Ihr Konto bei %1 wird mit einem Namen ihrer Wahl identifiziert. Dieser Name wird auf der %1-Webseite angezeigt, zusammen mit einer Übersicht der Arbeit, die Ihr Computer für %1 geleistet hat. Wählen Sie einen Namen, der keine Rückschlüsse auf Ihre wahre Identität zulässt, wenn Sie anonym bleiben möchten."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Wenn Sie an %1 teilnehmen, werden Informationen über Ihren Computer  (darunter der Prozessortyp, die Speichergröße, usw.) aufgezeichnet und von %1 verwendet, um zu entscheiden, welche Art von Aufgaben Ihrem Computer zugewiesen werden sollen. Diese Informationen werden ebenfalls auf der Webseite von %1 gezeigt. Es wird Nichts angezeigt, dass Rückschlüsse auf den Standort Ihres Computers zulässt (wie z. B. sein Domainnname oder seine Netzwerkadresse)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Um an %1 teilnehmen zu können, müssen Sie eine E-Mail-Adresse angeben, mit der Sie E-Mails empfangen können. Diese ist nicht auf der %1-Webseite einsehbar und wird auch nicht an Dritte weitergegeben. %1 wird Ihnen möglicherweise in regelmäßigen Abständen Newsletter senden; darauf können Sie aber jederzeit verzichten."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Über die %1 Webseite versendete private Nachrichten können nur vom Sender und Empfänger gelesen werden.  %1 unternimmt keine Überprüfung des Inhalts von privaten Nachrichten.  Wenn Sie ungewollt private Nachrichten von einem %1 anderen Nutzer erhalten, können Sie diesen zu Ihrem %2Filter hinzufügen%3.  Damit sehen Sie keine öffentlichen und privaten Nachrichten dieses Nutzers mehr."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Wenn Sie unsere Diskussionsforen benutzen wollen, müssen Sie die %2Regeln & Grundsätze%3 befolgen. Nachrichten in den %1 Diskussionsforen sind öffentlich sichtbar. Mit dem Veröffentlichen stimmen Sie zu, dass Jedermann Ihre Nachrichten ansehen und kopieren darf."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Ist es sicher an %1 teilzunehmen?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Wann immer Sie ein Programm aus dem Internet herunterladen, riskieren Sie, dass das Programm gefährliche Fehler enthält, oder der Download-Server gehackt worden sein könnte. %1 hat große Anstrengungen unternommen, diese Risiken zu minimieren. Wir haben unsere Anwendungen einer sorgfältigen Prüfung unterzogen. Unsere Server werden durch eine Firewall und weitere Sicherheitsmechanismen geschützt. Um sicherzustellen, dass die vom Programm heruntergeladenen Dateien nicht manipuliert  [...]
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Die Anwendungen von %1 können auf manchen Computern zu Überhitzung führen. Wenn dies passiert, sollten Sie aufhören, mit dem betreffenden Computer für %1 zu arbeiten oder ein %2Hilfprogramm%3 einsetzen, das die Prozessornutzung beschränkt."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 wurde von %2 entwickelt. BOINC wurde an der Universität von Kalifornien entwickelt."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Haftungsausschluss"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 und %2 haften weder für Beschädigungen Ihres Computers, Datenverlust, noch irgend ein anderes Ereignis, das möglicherweise aus der Teilnahme an %1 resultieren könnte."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Andere BOINC-Projekte"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Es gibt andere Projekte, bei denen wie bei %1 die Softwareplattform BOINC zum Einsatz kommt. Möglicherweise ziehen Sie in Betracht, an einem oder mehreren dieser Projekte teilzunehmen. Dadurch wird Ihr Computer auch dann sinnvolle Arbeit verrichten, wenn von %1 gerade keine Arbeitspakete verfügbar sind."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Es besteht keinerlei Verbindung zwischen diesen anderen Projekten und %1 und wir können uns nicht für deren Sicherheitspraktiken und die Natur derer Nachforschungen verbürgen. Nehmen Sie an diesen Projekten auf eigene Verantwortung teil."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Sprachauswahl"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Diese Internetseite ist in mehreren Sprachen verfügbar. Die aktuelle Einstellung ist: %1 (%2)"
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Die aktuelle Sprache wird durch die Einstellungen Ihres Browsers bestimmt, diese ist: %1. Sie können die Einstellungen wie folgt ändern:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Extras/Einstellungen/Inhalt"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Internet Explorer: Extras/Internetoptionen/Allgemein/Sprachen"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Oder Sie können auch direkt eine Sprache aus der unteren Liste auswählen. Dadurch wird ein Cookie gesetzt. Bitte stellen Sie sicher, dass Ihr Browser Cookies von unserer Domain gestattet."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Sprachauswahl (klicken zum auswählen)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Browserspracheinstellungen verwenden"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Übersetzungen werden durch Freiwillige erstellt. Wenn Ihre Muttersprache nicht aufgeführt ist, können Sie selbst %1eine Übersetzung erstellen%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "oder %1Konto erstellen%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Bearbeite %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "PC %1 in PC %2 integriert"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Zurück zur Liste Ihrer Computer"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Diese Aktion führt Computer anhand des Rechnernamens zusammen.\n        <p>\n        Alle Computer mit dem gleichen Rechnernamen,\n        werden in dem neuesten Computer zusammengeführt.\n        Inkompatible Computer werden nicht zusammengeführt.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Mit der Aktion fortfahren"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Zurück zur Liste der Computer"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nUm eine angenehme Diskussion und den bestmöglichen Informationsfluss zu gewährleisten wird dieses Forum moderiert. Forenbeiträge müssen den folgenden Regeln entsprechen:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nModeratoren können Beiträge löschen die gegen eine der folgenden Regeln verstoßen.\nDie Autoren der gelöschten Beiträge werden per E-Mail benachrichtigt.\nBei schwerwiegenden Verstößen wird dem Benutzer vorrübergehend die Fähigkeit Nachrichten zu schreiben entzogen.\n(Um Missbrauch zu verhindern haben daher nur Projektadministratoren die Möglichkeit dies zu tun).\nWeitere Arten von schlechtem Verhalten sind (\"Phishing\" das Ausspähen von\nIP-Adressen und anderer Daten der [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Ausstehende Punkte"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Aufgaben ID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "Job ID"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "Rechner ID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "geforderte Punkte"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Ausstehende Punkte: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Nachrichten von diesem Nutzer blockieren"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Benutzer blockieren"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Ihre Nachricht wurde versendet."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Sie haben keine privaten Nachrichten."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Absender und Zeit"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Auf diese Nachricht antworten"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Diese Nachricht löschen"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Alle auswählen"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Alle abwählen"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Ausgewählte Nachrichten löschen"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Absender"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Datum"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Sie müssen alle Eingabefelder ausfüllen, um eine private Nachricht zu senden"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Ihr verwendeter Text wurde vom Akismet Anti-Spam-System als Spam erkannt. Bitte verändern Sie Ihren Text und versuchen Sie es erneut."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Benutzer mit der ID %1 konnte nicht gefunden werden"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Benutzer mit dem Benutzernamen %1 konnte nicht gefunden werden"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 ist kein einmaliger Benutzername; Sie müssen die Benutzer-ID verwenden"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Der Benutzer %1 (ID: %2) möchten keine privaten Nachrichten von Ihnen erhalten."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Benutzer nicht gefunden"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "%1 wirklich blockieren?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Möchten Sie wirklich keine privaten Nachrichten mehr vom Benutzer %1 erhalten?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Bitte beachten Sie, dass Sie nur eine begrenzte Anzahl Benutzer blockieren können."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Sobald Sie den Benutzer blockiert haben, können Sie die Blockierung in den Foren-Einstellungen wieder aufheben."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Nein, abbrechen"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "Benutzer nicht gefunden"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Benutzer %1 blockiert"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Benutzer %1 kann Ihnen keine weiteren privaten Nachrichten senden."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Die Blockierung können Sie in den %1Einstellungen für das Diskussionsforum %2 aufheben."
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Unbekannte Aktion"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Ihre Einstellungen wurden aktualisiert. Clienteinstellungen\nwerden aktiviert wenn der Computer mit %1 kommuniziert\noder der %2Aktualisieren%3 Knopf im Manager geklickt wurde."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Ihre Einstellungen wurden auf den Standard zurückgesetzt. Clienteinstellungen\nwerden aktiviert wenn der Computer mit %1 kommuniziert\noder der %2Aktualisieren%3 Knopf im Manager geklickt wurde."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 für %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Zurück zu den Einstellungen"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Löschen der Einstellungen bestätigen"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Bist du sicher, dass die %1 Einstellungen für %2 gelöscht werden sollen?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Einstellungen entfernen"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profile"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Profile%2 geben den Nutzern die Möglichkeit Ihre Ansichten und Meinungen zur %3 Community auszudrücken."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Entdecken Sie die Vielfalt der anderen Freiwilligen und stellen Sie Ihre eigenen Ansichten dar."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Falls nicht schon vorhanden, sollten Sie Ihr %1eigenes Benutzerprofil anlegen%2 und den anderen Benutzern zeigen!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Nutzer des Tages"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Nutzerprofile entdecken"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "%1Bildergalerie der Nutzer%2 anschauen."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Durchsuchen der Profile %1nach Ländern%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Durchsuchen der Profile %1per Zufall%2, %3per Zufall mit Bildern%2 oder %4per Zufall ohne Bilder%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Profile nach Alphabet sortiert:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Profiltexte durchsuchen"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Keine Profile vorhanden"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Keine Profile entsprachen Ihren Kriterien."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Ungültige Wahl"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Stimme gespeichert"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Dankeschön"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Ihre Empfehlung wurde gespeichert."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Ihre Stimme zur Abweisung dieses Profils wurde gespeichert."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Zum Profil zurückkehren."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Profile die '%1' enthalten"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Nutzername"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "dem Projekt beigetreten am"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Zuletzt verdiente Punkte"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Keine Profile die '%1' enthalten gefunden"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Keine solche Aufgabe:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Diese Funktion ist zur Zeit deaktiviert."
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Kein Computer mit der ID %1 gefunden"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Zugang verweigert"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Fehlende Nutzer oder Rechner ID"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Keine Aufgaben verfügbar"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Nutzer des Tages"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Nicht gestartet"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Gestartet"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Deaktiviert"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Projektstatus"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Serverstatus"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Programm"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Rechner"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Version des Datenbankschemas:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Status der Berechnung"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Benutzer"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Aufgaben pro Anwendung"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Laufzeiten der letzten 100 Aufgaben in h: durchschnitt, min, max"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Benutzer in den letzten 24 Stunden"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Computer %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistiken und Ranglisten"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Statistiken von %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Die besten Benutzer"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Die besten Teams"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Die besten Computer"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "Grafikkarten-Modelle"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "Prozessor-Modelle"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Mehr detaillierte Statistiken von %1 und anderen BOINC-basierten Projekten sind auf den folgenden Webseiten verfügbar:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Sie können außerdem Ihre aktuelle Statistik in Form eines Signaturbildes bekommen:"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Eine Zusammenfassung der Statistik für alle BOINC Projekte, an denen Sie teilnehmen, finden Sie auf %1Ihrer Kontoseite%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Teams"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 Benutzer können %2Teams%3 bilden."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Sie können nur einem Team gleichzeitig angehören. Sie können allerdings das Team jederzeit wechseln."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Jedes Team besitzt einen %1Gründer%2 welcher:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "die E-Mail-Adressen der Mitglieder einsehen kann,"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "den Namen und die Beschreibung des Teams ändern kann,"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "Team-Administratoren hinzufügen oder entfernen"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "Mitglieder aus dem Team entfernen kann,"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "ein Team auflösen kann, wenn es keine Mitglieder mehr hat."
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Um einem Team beizutreten besuchen Sie die Teamseite und benutzen Sie den %1Diesem Team beitreten%2 Link."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Ein Team finden"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Alle Teams"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "Teams vom Typ %1"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Neues Team erstellen"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Wenn Sie kein passendes Team finden können dann sollten Sie ein %1neues Team erstellen%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Teamadmin-Status von diesem Mitglied entfernen"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Hinzufügen oder entfernen von Teamadmins"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Sie können Mitglieder zu Team-Administratoren machen. Diese können:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Teameinstellungen ändern (Name, URL, Beschreibung, Land)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "die Beitritts-/Austrittshistorie ansehen"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "das Teamforum moderieren, wenn vorhanden (Admins bekommen bei Vorkommnissen eine Nachricht per E-Mail)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Team-Administratoren können nicht:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "den Team-Gründer ändern"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Mitglieder entfernen"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Wenn ein Administrator das Team verlässt ist er nicht mehr länger Team-Administrator."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Wir empfehlen das Sie nur Mitglieder zu Administratoren machen die Sie kennen und die vertrauenswürdig sind."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Es gibt zur Zeit keine Team-Administratoren."
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Aktuelle Team-Administratoren"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Administrator seit"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Team-Administrator hinzufügen"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "E-Mail-Adresse des Teammitglieds:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "Entfernen des Admins fehlgeschlagen"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "Benutzer ist nicht Mitglied eines Teams"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 ist bereits Admin von %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Admin konnte nicht hinzugefügt werden"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Kein Team gefunden"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "Kein Team gefunden"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "Benutzer ist nicht Mitglied von %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Gründer von %1 ändern"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 ist jetzt der Gründer von %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Gründer von %1 ändern"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Das Mitglied %1 wollte Gründer von %2 werden, hat das Team aber zwischenzeitlich verlassen. Daher wurde die Anfrage abgebrochen."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Das Mitglied %1 hat den Gründerstatus für dieses Team angefordert. Entweder haben Sie das Team verlassen oder schon lange keinen Kontakt mehr gesucht."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "Anforderung ablehnen"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Wenn Sie die Anfrage nicht bis %1 beantworten, wird %2 die Möglichkeit bekommen den Gründerstatus zu übernehmen.<br /><br />\nUm die Anfrage von %3 zu akzeptieren, einfach das folgende Formular benutzen."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Keine laufende Übernahmeanfrage."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Um den Gründerstatus dieses Teams an einen anderen Benutzer zu geben muss die Box neben dem Namen gewählt werden und mit dem Knopf <strong>Gründer wechseln</strong> bestätigt werden."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Neuer Gründer?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Gründer wechseln"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Es gibt keinen Benutzer der das Team übernehmen kann."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Der Name des Teams darf nicht leer sein."
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Das Team %1 besteht bereits, bitte wählen Sie einen anderen Namen."
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Das Team konnte nicht erstellt werden, bitte später noch einmal probieren."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Ein Team erstellen"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Du bist Mitglied von %1. Du musst aus dem %2Team austreten%3 um ein neues zu erstellen."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Nicht Gründer oder Admin"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Teamhistorie von %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Wann"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Benutzer"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Aktion"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Gesamtpunkte zum Zeitpunkt der Aktion"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "falsches Land"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "Der Name '%1' wird bereits von einem anderen Team verwendet."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Ein Teamname muss angegeben werden."
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Das Team konnte nicht aktualisiert werden, bitte später noch einmal probieren."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "%1 bearbeiten"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Teaminformationen aktualisieren"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "E-Mailverzeichnis von %1"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Mitgliederverzeichnis von %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Als reinen Text anzeigen"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Diskussionsforum erstellen"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Ein Diskussionsforum zur Nutzung durch %1 erstellen."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Nur Mitglieder des Teams können Beiträge verfassen."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Optional können auch nur Mitglieder das Forum sehen."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Der Gründer und die Team-Admins haben Moderatorenrechte."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Ein Diskussionsforum für %1 erstellen"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "Das Team hat bereits ein Diskussionsforum."
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Diskussionsforum des Teams"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Mindestzeit zwischen Beiträgen (Sekunden)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Mindestpunktzahl (Gesamt) für Schreibrecht"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Mindestpunktzahl (Durchschnitt) für Schreibrecht"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Übertragen"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Diskussionsforum des Teams entfernen."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Das Diskussionsforum wirklich entfernen?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Soll das Diskussionsforum wirklich entfernt werden? Alle Beiträge werden unwiderruflich gelöscht. Es kann aber danach ein neues (leeres) Diskussionsforum angelegt werden."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Ja - Forum entfernen"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Diskussionsforum entfernt"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Das Diskussionsforum des Teams wurde entfernt. Es kann jetzt ein %1neues angelegt werden%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Diskussionsforum des Teams aktualisiert"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Aktualisierung erfolgreich"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Aktualisierung fehlgeschlagen"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "Das Team hat kein Forum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Nur Mitglieder dieses Teams haben Zugriff auf diese Seite."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Gründerstatus für %1 anfordern"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Der aktuelle Gründer wurde von der Anfrage per E-Mail und PN benachrichtigt.<br /><br />\nWenn der Gründer nicht innerhalb von 60 Tagen reagiert wird der Wechsel möglich sein."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Wechsel des Gründerstatus zur Zeit nicht erlaubt"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Gründerstatus von %1 übernommen"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Glückwunsch, Du bist nun der Gründer von Team %1. Auf der %2Ihr Konto Seite%3 findet sich der Link zur Verwaltung des Teams."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Anfrage nach Gründerwechsel ablehnen"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "Die Anfrage zum Gründerwechsel von %1 wurde abgelehnt."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Es gibt keine Anfragen zum Gründerwechsel."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "unbekannte Aktion %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Zurück zur Teamseite"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Man muss Mitglied eines Teams sein um diese Seite anzusehen."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Gründerstatus für %1 anfordern"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Du bist nun der Gründer von Team %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Du hast den Gründerstatus von %1 am %2 angefragt."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "60 Tage sind seit der Anfrage vergangen und der Gründer hat nicht reagiert. Du kannst nun den Gründerstatus bekommen:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Gründerstatus anfordern"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Der Gründer wurde über die Anfrage informiert. Wenn Er/Sie nicht bis %1 antwortet bekommst du die Möglichkeit den Gründerstatus zu übernehmen."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Wenn der Gründer des Teams nicht mehr Aktiv ist, kann der Gründerstatus von jedem Teammitglied übernommen werden. Der aktuelle Gründer bekommt eine E-Mail mit den Informationen und kann der Übertragung zustimmen oder diese ablehnen. Sollte der Gründer nicht innerhalb von 60 Tagen antworten, besteht dann die Möglichkeit den Gründerstatus zu übernehmen.<br /><br />\nSicher das die Übernahme des Gründerstatus eingeleitet werden soll?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Gründerstatus anfordern"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Der Gründerstatus wurde bereits von %1 am %2 beantragt."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Innerhalb der letzten 90 Tage wurde der Gründerstatus bereits beantragt, neue Anfragen sind nicht erlaubt. Bitte später erneut versuchen."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "Dem Team %1 kann nicht beigetreten werden."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Bereits Mitglied des Teams"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Du bist bereits Mitglied im Team %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Dem Team konnte nicht beigetreten werden, bitte später noch einmal probieren."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "%1 beigetreten"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "Du bist %1 beigetreten."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "%1 beitreten"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Bitte beachten:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Als Mitglied ist deine E-Mail Adresse für den Gründer einsehbar"
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Der Beitritt hat keinen Einfluss auf deine Punkte."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Team beitreten"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Suchergebnisse"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Suchergebnisse für '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Die Mitglieder, Statistiken und Informationen zu diesem Team anschauen."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Mehr als 100 Teams entsprachen der Suche. Nur die ersten 100 werden angezeigt."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Wenn kein passendes Team gefunden wurde dann kann auch ein %1neues Team erstellt%2 werden."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Verwaltung von Team %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Teaminformationen bearbeiten"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Den Namen des Teams, die URL, die Beschreibung, den Typ oder das Land ändern."
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Mitgliederliste:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "Text"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Mitgliedsnamen und E-Mail Adressen anzeigen"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Änderungshistorie anzeigen:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Zeigt welche Mitglieder wann dem Team beigetreten sind oder dieses verlassen haben."
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Auf eine Anfrage zum Gründerwechsel antworten."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Wenn nicht bis zum %1 geantwortet wurde, kann %2 den Gründerstatus dieses Teams bekommen."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Inaktive oder unerwünschte Mitglieder dieses Teams entfernen."
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Den Gründerstatus auf ein anderes Mitglied übertragen."
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Hinzufügen/Entfernen von Teamadmins"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Die gewählten Mitglieder zu Teamadmins erklären,"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Team entfernen"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Nur erlaubt wenn das Team keine Mitglieder mehr hat."
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Ein Diskussionsforum für das Team erstellen oder verwalten."
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Um dieses Team in allen BOINC-Projekten (aktuelle und zukünftige) anzulegen, kann es zu einem %1BOINC-weitem Team%2 gemacht werden."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Teamadmins werden ersucht sich an der Google Gruppe %1boinc-team-founders%2 (englisch) zu beteiligen."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Nicht-leeres Team kann nicht gelöscht werden."
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Team %1 gelöscht"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limit überschritten: Nur die ersten 1000 Mitglieder können angezeigt werden."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Mitglieder von %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Team konnte nicht verlassen werden."
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Das Team existiert nicht oder Sie sind kein Mitglied."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Verlasse %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Vor dem Verlassen eines Teams bitte beachten:</strong>\n<ul>\n<li>Nach dem verlassen, kann man einem anderen Team oder diesem Team wieder beitreten.</li>\n<li>Das Verlassen eines Teams beeinflußt nicht die Anzahl der eigenen Punkte.</li>\n</ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Team verlassen"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Entferne Mitglieder aus %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 ist nicht Mitglied von %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 wurde entfernt"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Entferne Mitglieder aus %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Entfernen?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Name (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Keine Mitglieder können entfernt werden."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Mitglieder entfernen"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Teamname"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Ergebnisse der Teamsuche"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Keine Teams mit diesen Kriterien gefunden. Bitte neue Suche starten."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Oder ein %1neues Team erstellen%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Ein oder Mehrere Suchkriterien passen zu den folgenden Teams.\nUm einem Team beizutreten, bitte erst auf den Namen und\ndann %1diesem Team beitreten%2 klicken."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Suche ändern"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Du kannst dich mit Leuten in Teams zusammenschließen, welche die ähnlichen Interessen haben oder aus dem selben Land, Unternehmen oder Schule kommen."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Benutze dieses Formular um Teams zu finden, die vielleicht die richtigen für dich sind."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Ich bin im Moment nicht daran interessiert%2 einem Team beizutreten."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Höchstgrenze erreicht - Nur die ersten %1 Einträge werden angezeigt"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Die besten Rechner"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Die besten %1 Teams"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "Es gibt keine %1 Teams."
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Benutzer seit"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "Kein Benutzer des Tages gewählt."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Benutzer des Tages am %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filterkriterien"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Benutzername beginnt mit"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Jeder"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Mit Profil?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Entweder"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "In einem Team?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Sortierung"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Absteigendes Anmeldedatum"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Absteigendes Durchschnittsguthaben"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Absteigendes Gesamtguthaben"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "Der Suchbegriff muss mindestens 3 Zeichen enthalten"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Ergebnisse der Benutzersuche"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Beitritt"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Keine Benutzer entsprechen Ihren Suchkriterien."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Benutzer nicht gefunden!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Kontodaten<br/>für %1<br/>Zeit:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Team:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Team GesPunkt:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Team DurchschnPunkt:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Team: Keins"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Bestätige die BOINC E-Mail Adresse"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Bitte besuchen Sie den folgenden Link um ihre E-Mail Adresse für Ihren %1 Account zu bestätigen:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "E-Mail zur Validierung gesendet"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Es wurde eine E-Mail an die Adresse %1 gesendet. Bitte den enthaltenen Link aufrufen um die E-Mail Adresse zu validieren."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Benutzer nicht gefunden."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Fehler in der URL - E-Mail Adresse konnte nicht bestätigt werden."
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Aktualisierung der Datenbank fehlgeschlagen - Bitte später erneut probieren."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "E-Mail Adresse bestätigen"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Die E-Mail Adresse Ihres Kontos wurde bestätigt."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Dieser Benutzer hat kein Profil."
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profil: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Kontoinformationen"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Der Zugriff auf das Benutzerkonto kann per E-Mail-Adresse und Passwort,\noder per 'Kontoschlüssel' erfolgen.\nIhr Kontoschlüssel ist:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Dieser Schlüssel kann für folgendes verwendet werden:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "einloggen in das Benutzerkonto per Browser"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "Um einen Computer zu Ihrem Konto hinzuzufügen, ohne den BOINC-Manager zu verwenden, installieren Sie BOINC und erstellen eine Datei mit dem Namen '%1' im BOINC Datenverzeichnis und dem folgenden Inhalt:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "schwacher Kontoschlüssel"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "                  Der 'schwache Kontoschlüssel' kann wie oben beschrieben zum hinzufügen von Computern\nzu Ihrem Konto genutzt werden, jedoch können damit keine Änderungen am Benutzerkonto selbst vorgenommen werden.\nWenn Sie also unsichere oder nicht vertrauenswürdige Computer zu Ihrem Konto hinzufügen wollen,\nbenutzen Sie bitte den schwachen Kontoschlüssel.\nDieser lautet:                "
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Wenn Sie Ihr Passwort ändern, ändert sich auch der schwache Kontoschlüssel und der vorherige wird ungültig."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "Arbeitspaket nicht gefunden"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Paket %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "Anwendung"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "autorisiertes Ergebnis"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "gewährte Punkte"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Aufgaben in Arbeit"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "unterdrückt bis zum Abschluss"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "Mindestanzahl"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "Anfängliche Kopien"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "max # von Fehler/Gesamt/Erfolg Aufgaben"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "Fehler"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "Gültigkeit"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Ausstehend"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Startseite"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Erstellt"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Informationen zu ihrer Person."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Erzähl uns etwas über dich. Du könntest etwas darüber erzählen wo du herkommst, dein Alter, Beschäftigung, Hobbys, oder andere Sachen über dich selbst."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Deine Meinungen zu %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Teilen Sie uns Ihre Gedanken zu %1 mit<ol>\n<li>Warum führen Sie %1 aus?\n<li>Wie ist Ihre Meinung zu diesem Projekt?\n<li>Haben Sie Hinweise oder Verbesserungsvorschläge?\n</ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Farbschema für Grafiken"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "maximale CPU % für Grafiken%1 0 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Startet nur die ausgewählte Anwendung/en"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Nur Aufgaben für bestimmte Anwendungen erlauben. Nützlich um Anwendungen zu bevorzugen oder auszuschließen."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Wenn keine Aufgaben für die ausgewählten Anwendungen vorhanden sind, Aufgaben von anderen Anwendungen akzeptieren?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Schnellere, nicht-grafische Anwendungen verwenden, sofern verfügbar?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(alle Anwendungen)"
diff --git a/locale/de/BOINC-Setup.mo b/locale/de/BOINC-Setup.mo
index d9ec1e1..3a740a3 100644
Binary files a/locale/de/BOINC-Setup.mo and b/locale/de/BOINC-Setup.mo differ
diff --git a/locale/de/BOINC-Setup.po b/locale/de/BOINC-Setup.po
index 03aee7a..b3ebfec 100644
--- a/locale/de/BOINC-Setup.po
+++ b/locale/de/BOINC-Setup.po
@@ -1,40 +1,46 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Christian Beer <christian.beer at posteo.de>, 2016
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-08 16:02+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: German (http://www.transifex.com/projects/p/boinc/language/de/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-15 12:39+0000\n"
+"Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
+"Language-Team: German (http://www.transifex.com/boinc/boinc/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Entschuldigung, diese Version von %s benötigt die Systemversion 10.5 oder höher."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Entschuldigung, diese Version von %s benötigt die Systemversion 10.6 oder höher."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Ja"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Nein"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Soll BOINC auch gestarten werden, wenn kein Benutzer angemeldet ist?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -42,26 +48,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Administrative Benutzer dieses Computers werden automatisch bemächtigt %s zu starten und zu kontrollieren.\n\nMöchten Sie es auch nicht-administrativen Benutzern gestatten %s auf diesem Computer zu starten und zu kontrollieren?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Möchten Sie %s als Bildschirmschoner für alle %s Benutzer dieses Mac festlegen?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "Bestätigen"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Berechtigungsfehler nach Neustart"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Das Entfernen dauert eventuell ein paar Minuten.\nBitte warten Sie."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +76,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Sind Sie sicher das Sie %s von Ihrem Computer entfernen sollen?\n\nDiese Aktion wird alle ausführbaren Dateien aber keine Datendateien von %s entfernen."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Abgebrochen: %s wurde nicht verändert."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Ein Fehler ist aufgetreten: Fehlercode %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "Benutzername"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Möchten Sie VirtualBox ebenfalls von Ihrem Computer entfernen?\n(VirtualBox wurde mit BOINC installiert)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "Entfernung beendet.\n\nDie folgenden Ordner sollten mit dem Finder gelöscht werden: \ndas Verzeichnis \"%s\"\n\nund für jeden Benutzer die Datei\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Geben sie Ihr Administratorpasswort ein, um %s komplett von diesem Computer zu entfernen.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Weiter..."
diff --git a/locale/de/BOINC-Web.mo b/locale/de/BOINC-Web.mo
index d0da104..ac42d82 100644
Binary files a/locale/de/BOINC-Web.mo and b/locale/de/BOINC-Web.mo differ
diff --git a/locale/de/BOINC-Web.po b/locale/de/BOINC-Web.po
index d20fac1..6bc1ffc 100644
--- a/locale/de/BOINC-Web.po
+++ b/locale/de/BOINC-Web.po
@@ -1,20 +1,18 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
 # Christian Beer <christian.beer at posteo.de>, 2015-2016
-# Jan Schladetzky <keiken at keiken.eu>, 2015
+# Jan Schladetzky <inactive+Keiken at transifex.com>, 2015
 # Jonas <jesus_007 at posteo.de>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-05-31 11:26+0000\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-15 16:05+0000\n"
 "Last-Translator: Christian Beer <christian.beer at posteo.de>\n"
 "Language-Team: German (http://www.transifex.com/boinc/boinc/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -24,359 +22,466 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Deutsch"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "German"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! hilft Ihnen dabei die Konten bei mehreren BOINC Projekten zu verwalten. Es kann Konten anlegen, Einstellungen abgleichen, Teammitgliedschaften anpassen, Computer mit Projekten verbinden und vieles mehr. Es ist egal ob Sie ein neuer oder existierender BOINC Nutzer sind, BAM! hilft Ihnen das beste aus BOINC heraus zu holen."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Teilnehmer bei GridRepublic stellen die nicht anderweitig genutzte Rechenleistung Ihrer Computer diversen Projekten welche dem Gemeinwohl dienen zur Verfügung."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Suche"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "Zurück zur BOINC Hauptseite"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Diese Seite ist %sübersetzbar%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Wir empfehlen die Installation von VirtualBox. Damit kann Ihr Rechner auch an Projekten teilnehmen die dies erfordern."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "Mehr über VirtualBox erfahren."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "BOINC und VirtualBox herunterladen"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "für %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "BOINC herunterladen"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINC ist ein Programm womit die ungenutzte Rechenleistung Ihres Computers, für wissenschaftliche Projekte wie SETI at home, Climateprediction.net, Rosetta at home, World Community Grid oder viele andere eingesetzt werden kann."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "Nachdem Sie BOINC auf Ihrem Computer installiert haben, können Sie so viele Projekte hinzufügen wie Sie wünschen."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "Sie dürfen die Software nur auf einem Computer benutzen wenn Sie der Eigentümer sind oder das Einverständnis des Besitzers haben."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "Wir empfehlen, BOINC über den Google Play Store oder Amazon Appstore zu installieren und nicht von hier."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Systemanforderungen"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Versionshinweise"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Hilfe"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Alle Versionen"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr "Versionshistorie"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "Grafikkarten-gestützte Berechnung (GPUs)"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: Rechenkraft für die Wissenschaft"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "Die BOINC Online-Hilfe ermöglicht die schnelle Hilfe von erfahrenen BOINC Benutzern, welche: %s Fragen zu BOINC und verteiltem Rechnen beantworten, %s bei der Installation und Benutzung von BOINC unterstützen, %s eventuelle Probleme untersuchen und Hilfestellungen geben."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "Die BOINC Online-Hilfe nutzt %sSkype%s, ein Internet-basierter Telefoniedienst. Skype ist kostenlos (die Software und die Anrufe). Wenn Sie nicht bereits Skype installiert haben, dann laden Sie es bitte herunter (%sSkype herunterladen%s) und kommen dann wieder zu dieser Seite zurück."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "Der beste Weg um Hilfe zu erhalten ist über Sprache, für welche sie entweder ein eingebautes Mikrofon und Lautsprecher oder ein externes Headset benötigen. Sie können ebenfalls das von Skype genutzte Text-basierende Chat-System oder eine einfache E-Mail (falls sie kein Skype besitzen) nutzen um anderen zu helfen."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Freiwillige in verschiedenen Sprachen stehen zur Verfügung. Bitte wählen sie eine Sprache:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Seien sie ein freiwilliger Helfer"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Wenn sie ein erfahrener BOINC Nutzer sind, bitten wir sie ein %sfreiwilliger Helfer zu werden%s. Es ist eine tolle Möglichkeit der wissenschaftlichen Forschung und dem verteilten Rechnen zu helfen - und es macht Spaß!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Wenn sie bereits ein freiwilliger Helfer sind, können Sie hier Ihre %sEinstellungen ändern%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "Die Helfer von BOINC sind unbezahlte Freiwillige. Ihre Hinweise stellen keine Äußerungen von BOINC oder der Universität von Kalifornien dar."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "Geben Sie %1niemals%2 Ihre E-Mail Adresse oder Ihr Passwort an einen BOINC Helfer weiter."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Rechenleistung"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "Top 100 der Helfer"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Statistiken"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "24-Stunden-Durchschnitt:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOPS."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Aktiv:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "Helfer,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "Computer.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "24-Stunden-Durchschnitt:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOPS."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Nachrichten"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Datenbank nicht verfügbar. Bitte später erneut versuchen."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Mithelfen"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Nutzen Sie die Leerlaufzeit Ihres Rechners (Windows, Mac, Linux oder Android) um Krankheiten zu heilen, die globale Klimaerwärmung zu studieren, Pulsare zu entdecken oder viele andere Arten von wissenschaftlicher Forschung zu unterstützen. Es ist ungefährlich, verlässlich und einfach:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Herunterladen"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Dokumentation"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Bei Android Geräten sollte BOINC über den Google Play Store oder Amazon App-Shop (Kindle) installiert werden."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Sie können auswählen welche %1Projekte%2 Sie unterstützen wollen. Beispiele sind: %3, %4, %5 und viele andere."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Wenn sie an verschiedenen Projekte teilnehmen, probieren sie eine %1Kontoverwaltung%2 wie z.B. %3Gridrepublic%4 oder %5BAM!%6."
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Mehr erfahren:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Foren"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projekte"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Handbuch"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Erweiterungen"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Verweise"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Nutzen Sie die Leerlaufzeit Ihres Rechners (Windows, Mac, Linux oder Android) um Krankheiten zu heilen, die globale Klimaerwärmung zu studieren, Pulsare zu entdecken oder viele andere Arten von wissenschaftlicher Forschung zu unterstützen. Es ist ungefährlich, verlässlich und einfach:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Andere Unterstützung:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Projekte auswählen"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Übersicht"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "BOINC Software herunterladen"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Übersetzen"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Geben Sie eine E-Mail-Adresse und Passwort ein."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Testen"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "Oder, wenn sie an verschiedenen Projekte teilnehmen, probieren sie eine %sKontoverwaltung%s wie z.B. %sGridrepublic%s oder %sBAM!%s."
+#: doc/index.php:135
+msgid "Document"
+msgstr "Dokumentation"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "Berechnung mit BOINC"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Öffentlichkeitsarbeit"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Programmaktualisierungen"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Fehler melden"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Hochdurchsatz-Projekte mit BOINC"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1Wissenschaftler%2: benutzen Sie BOINC um ein %3Projekt für verteiltes Rechnen%4 zu erstellen und somit die Leistung von tausenden von CPUs und GPUs zu nutzen."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1Universitäten%2: benutzen Sie BOINC um einen virtuellen campusweiten Supercomputer zu erstellen."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Unternehmen%2: benutzen Sie BOINC für %3Vernetztes Rechnen%4 (Desktop Grid)."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "Über BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Dokumentation"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Foren"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC und Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Softwareentwicklung"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC ist eine Plattform für Verteiltes Rechnen. Es beinhaltet Client-, Server- und Webkomponenten sowie weitere Schnittstellen (APIs) um externe Komponenten anzuschließen."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Quellcode"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "BOINC erstellen"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Designdokumente"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Wir sind immer auf der Suche nach Entwicklern welche uns bei der Weiterentwicklung von BOINC helfen."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Entwicklungsprozess"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Aufgaben"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC wird unter der GNU Lesser General Public License v3.0 verbreitet."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "Das BOINC Projekt"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC ist ein Gemeinschaftsprojekt. Jeder ist willkommen daran teilzunehmen."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "E-Mail-Listen"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "Veranstaltungen"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Quellcode"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Grafiken"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Verwaltung"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "direkte Hilfe per Skype oder E-Mail"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "Die BOINC Hilfe ermöglicht die schnelle Hilfe von erfahrenen BOINC Benutzern, welche Fragen zu BOINC und verteiltem Rechnen beantworten, bei der Installation und Benutzung von BOINC unterstützen, eventuelle Probleme untersuchen und Hilfestellungen geben."
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "APIs für Erweiterungs-Software"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Sie können mit einem Helfer einfach kommunizieren"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Open-source Software für verteiltes Rechnen"
+#: doc/help.php:16
+msgid "by email"
+msgstr "per E-Mail"
 
-#: projects.inc:19
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\nper Sprachchat, mittels %1Skype%2, ein Internet-basierter Telefoniedienst. Skype ist kostenlos (die Software und die Anrufe). Wenn Sie nicht bereits Skype installiert haben, dann laden Sie es bitte herunter (%3Skype herunterladen%4) und kommen dann wieder zu dieser Seite zurück."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "per Textnachrichten mittels Skype"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Freiwillige in verschiedenen Sprachen stehen zur Verfügung. Bitte wählen sie eine Sprache (Anzahl der Helfer wird angezeigt):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Seien sie ein freiwilliger Helfer"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Wenn sie ein erfahrener BOINC Nutzer sind, bitten wir sie ein %sfreiwilliger Helfer zu werden%s. Es ist eine tolle Möglichkeit der wissenschaftlichen Forschung und dem verteilten Rechnen zu helfen - und es macht Spaß!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Wenn sie bereits ein freiwilliger Helfer sind, können Sie hier Ihre %sEinstellungen ändern%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Die Helfer von BOINC sind unbezahlte Freiwillige. Ihre Hinweise stellen keine offiziellen Äußerungen von BOINC dar."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "Geben Sie %1niemals%2 Ihre E-Mail Adresse oder Ihr Passwort an einen BOINC Helfer weiter."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Dezentrale Erfassung"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Universität Stanford"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Erdbebenkunde"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "Das Quake-Catcher Netzwerk entwickelt das weltweit größte seismische Netzwerk mittels Sensoren, welche an über das Internet verbundenen Rechnern und Smartphones angeschlossen sind."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Das Quake-Catcher Netzwerk benutzt Sensoren, welche an über das Internet verbundenen Rechnern und Smartphones angeschlossen sind um Erdbeben zu detektieren."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Stiftung BOINC Polen (Gemeinnützige Organisation)"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Umweltforschung"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Radioactive at Home erstellt eine freie und ständig aktualisiert Strahlenbelastungkarte, durch die Benutzung von Sensoren an Computern von Freiwilligen. Sie müssen gegebenenfalls einen geeigneten Sensor kaufen, um teilnehemn zu können."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "kognitive Wissenschaft und künstliche Intelligenz"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Kognitionswissenschaft"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home benutzt eine computergestützte Modellierung von kognitiven Prozessen um das menschliche Gehirn besser zu verstehen. Ins besonders geht es um das Studium von Mechanismen und Prozessen welche die Leistungs- und Lernfähigkeit von Menschen beeinflussen."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Privat"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Unabhängig"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Künstliche Intelligenz"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -384,55 +489,55 @@ msgid ""
 "conversations."
 msgstr "Analysiere und konvertiere semantische Netze für die Nutzung mit FreeHAL, einer Künstlichen Intelligenz, die semantische Netzwerke, Stemming-Verfahren, Wortklassen-Datenbanken und Wortklassen-Tagging verwendet, um menschliches Konversationsverhaltenzu  emulieren."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biologie und Medizin"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Medizinische Physiologie"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home macht elektrophysiologisch Herzsimulationen, um die elektischen Aktivitäten des Herzes zu erforschen."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Molekularbiologie"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World versucht auf der Basis etablierter Werkzeuge der Bioinformatik, RNA Moleküle zu identifizieren, zu analysieren, strukturell vorherzusagen und zu designen."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "Universität Dublin"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Antimalaria Medikamentenentwicklung"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "Der Parasit, welcher Malaria verursacht, entwickelt zunehmend Resistenzen gegen verfügbare Medikamente. Daher müssen wir dringend neue Arzneimittel erforschen, welche neue Proteine im Parasiten angreifen. Das FightNeglectedDiseases at Home Projekt ist darauf spezialisiert, diese neuen Angriffspunkte zu ermitteln."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Der Parasit, welcher Malaria verursacht, entwickelt zunehmend Resistenzen gegen verfügbare Medikamente. Daher müssen wir dringend neue Arzneimittel erforschen, welche neue Proteine im Parasiten angreifen. Das FiND at Home Projekt ist darauf spezialisiert, diese neuen Angriffspunkte zu ermitteln."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Universität Karlsruhe (Deutschland)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Vorhersage von Proteinstrukturen"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -441,15 +546,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME verwendet einen computergestützten Ansatz zur Vorhersage der biologisch aktiven Struktur von Proteinen, zur Erweiterung des Verständnisses der Signalverarbeitungsmechanismen bei der Interaktion mehrerer Proteine, von Krankheiten mit Proteindysfunktion oder -Agglomeration sowie um neue Medikamente auf Basis der dreidimensionalen Struktur biologisch bedeutsamer Proteinen zu entwickeln."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Barcelona Biomedical Research Park (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Molekularsimulationen von Proteinen"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -457,31 +562,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net eröffnet neue rechnergestützte Szenarios mit der ersten Anwendung für Molekulardynamik auf Atomebene (CellMD), optimiert für NVIDIA GPUs. Dadurch sind neue biomedizinische Anwendungen möglich, die eine neu Rolle in der  Bioinformatik und der biomedizinischen Forschung spielen werden."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "University of Maryland, Zentrum für Bioinformatik und Rechenbetonte Biologie"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Biowissenschaftliche Forschung"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "Das Lattice Projekt, welches an der Universität von Maryland entwickelt und verwaltet wird, stellt Rechenleistung für Forscher in der ganzen Welt bereit um evolutionäre Zusammenhänge mittels DNA und Proteinsequencen untersuchen."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "Schweizer Tropeninstitut"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Epidemiologie"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -492,15 +597,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "Simulationsmodelle der Transmissionsdynamik und gesundheitlichen Auswirkungen von Malaria sind ein wichtiges Werkzeug für die Kontrolle von Malaria. Diese können verwendet werden um optimale Strategien auszuarbeiten um Moskitonetze zu liefern, Chemotherapie oder neue Impfstoffe hervorbringen welche im Moment noch in Entwicklung sind und getestet werden. Solche Modellierungen sind extrem rechenintensiv, benötigen Simulationen von größeren Bevölkerungsmengen mit diversen Sets von P [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Universität von Washington"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biologie"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -510,19 +615,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "Bestimmen Sie die 3-dimensionalen Formen von Proteinen in der Forschung, die letztlich zur Erforschung von Heilverfahren für einige wichtige Krankheiten des Menschen führen können. Durch die Ausführung von Rosetta at home werden Sie uns helfen das ganze zu beschleunigen und unsere Forschung zu erweitern, wie wir es ohne Ihre Mithilfe nicht erst versuchen könnten. Sie werden auch helfen, unsere Anstrengungen bei der Entwicklung neuer Proteine​​, um Krankheiten wie HIV, Malaria, Krebs [...]
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Geowissenschaften"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Universität Oxford"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Klimastudien"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -534,25 +639,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "Berechne die Näherungen die für die modernen Klima Modelle gemacht werden müssen. Vom tausendfachen Durchrechnen erhoffen wir uns herauszufinden, wie das Modell aus minimale Änderungen dieser Näherungen reagiert - so minimal, dass die Näherungen nicht unrealistisch werden. Das wird uns ermöglichen unser Verständnis über die Sensibilität unsere Modelle auf kleine Veränderungen und auch Dinge wie Veränderungen im CO2- und Schwefel-Kreislauf zu vergrößern. Dies wird uns erlauben zu  [...]
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Naturwissenschaft"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Maschinenbau"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "Im Moment berrechnen wir das optimale Design der 52 bar Bindung."
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomie"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -562,11 +658,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS ist ein Astronomieprojekt welches 16 verschiedene Eigenschaften von Galaxien, unter anderem Helligkeit, Masse, Menge an Staub und Geschwindigkeit der Sternentstehung, untersucht. Wir benutzen Ihre Rechenleistung um eine Pixel für Pixel Berechnung auf multispektralen Bildern (Ultraviolett, Optisch, Nahinfrarot) von Galaxien durchzuführen um einen Atlas zu erzeugen der es Wissenschaftlern ermöglicht das ferne Universum besser zu verstehen."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Astrophysik"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -574,57 +670,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "Das Ziel dieses Projektes ist es die Form und Drehung eines signifikanten Teils des Asteroidenbestandes zu bestimmen. Als Ausgangsdaten benutzen wir jede Art von Asteroidenaufnahmen die verfügbar sind. Das Ergebnis sind konvexe Hüllenmodelle mit der Richtung der Drehachse und der Umdrehungsgeschwindigkeit."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Luft- und Raumfahrt-bezogene Wissenschaft und Konstruktion"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Universität von Illinois in Urbana (bei Champaign)"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation ist eine Plattform für Luft- und Raumfahrt-bezogene simulation. Unter anderem werden Bahnoptimierungen für Raketen, Satelliten und Sonden, Simulation der Mondatmosphäre und die Analayse von dynamischen Systemen von Erkundungsfahrzeugen durchgeführt."
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Luft- und Raumfahrt-bezogene Simulationen ausführen"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Das Ziel von Cosmology at Home ist es ein Modell zu suchen, welches unser Universum am besten beschreibt und eine Auswahl von Modellen zu finden, welche mit den verfügbaren astronomischen partikelphysischen Daten übereinstimmt."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home zielt darauf ab die erste Datenbank des simulierten Inhalts des Universums, von den frühestens Sternen zu den exotischsten Schwarzen Loch Binärsystemen, zu erstellen."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Forschung in Physik und Astronomie ausführen"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "politechnisches Institut von Rensselaer"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Das Ziel von Milkyway at Home ist es ein sehr genaues dreidimensionales Modell der Milchstraße mit Hilfe von Daten, die man vom Sloan Digital Sky Survey erhalten hat, herzustellen."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Studiere die Struktur der Milchstraßengalaxie"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Leiden Universität, Niederlande"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Chemie"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -634,15 +725,15 @@ msgid ""
 "simulations through the grid."
 msgstr "Berechnungen der Oberflächenforschung mit der klassichen Dynamik. Leiden Classical erlaubt es Freiwilligen, Studenten und anderen Wissenschaftlern ihre eigenen Berechnungen in das Rechennetz einzuspeisen. Jeder Anwender hat seine eigene Schlange von Arbeiten für das Projekt. Auf diese Weise haben Studenten das Rechennetz genutzt um flüssiges Argon zu simulieren oder das Gesetz des idealen Gases durch Simulationen mit Hilfe des Rechennetzes zu beweisen."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Helfen Sie Studenten bei Atomphysiksimulation"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Universität von Wisconsin in Milwaukee,  Max-Planck-Institut"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -651,19 +742,19 @@ msgid ""
 "international organizations."
 msgstr "Suche nach rotierenden Neutronensternen (auch Pulsare genannt) unter Verwendung von Daten der LIGO und GEO Gravitationswellen-Detektoren sowie dem Arecibo Radioteleskop. Einstein at Home ist ein \"World Year of Physics 2005\" Projekt, welches von der American Physical Society (APS) und von verschiedenen internationalen Organisationen unterstützt wird."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "Helfen sie bei der Entdeckung von Pulsaren und Gravitationswellen"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Europäische Organisation für Nuklearforschung)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Physik"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -672,22 +763,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "Der Large Hadron Collider (LHC) ist ein Teilchenbeschleuniger beim CERN, der europäischen Organisation für Nuklearforschung, das weltgrößte Partikelphysiklabor. Es ist das leistungsstärkste bis jetzt gebaute Gerät, um das Partikelverhalten zu untersuchen. LHC at home führt Simulationen aus, um die Bauform des LHC und seine Detektoren zu verbessern."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "Verbessern Sie des Design des Large Hadron Colliders"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "Dieses Projekt nutzt eine vom CERN entwickelte Virtuelle-Maschinen Technologie zur Simulation von LHC Ereignissen auf den Computern von freiwilligen Unterstützern. Sie müssen VirtualBox auf Ihrem Computer installiert haben um teilzunehmen."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Simulieren Sie Hochenergie-Teilchenkollisionen"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -695,19 +786,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home benutzt verteiltes Rechnen um Simulationen für ATLAS, ein Teilchenphysikexperiment an CERN's Large Hadron Collider, durchzuführen. ATLAS sucht nach neuen Teilchen mittels der Kollision von hoch-energetischen Protonen."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "Simulieren Sie Hochenergie-Teilchenkollisionen für das CERN"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Universität von Kalifornien in Berkeley"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrophysik, Astrobiologie"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -716,106 +807,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Search for Extraterrestrial Intelligence) ist ein Bereich der Wissenschaft mit dem Ziel Leben ausserhalb der Erde zu finden. Eine Methode, bekannt als Radio-SETI, benutzt Radio Teleskope, um Signale von geringer Bandbreite aus dem Weltall aufzuspüren. Es sind keine natürlichen Quellen für solche Strahlung bekannt, daher wäre sie der Beweis für außerirdische Technologie."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "Such Sie nach Beweisen für außerirdisches Leben"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Mehrere Anwendungen"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "Molekularbiologie, Informatik"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "Das Citizen Science Grid ist dafür bestimmt eine große Bandbreite an Forschungs- und Bildungsprojekten mittels verteiltem Rechnen und Citizen Science zu unterstützen."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "Unterstützen Sie die Forschung an der Universität von North Dakota"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Chinesische Akademie der Wissenschaften"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Physik, Biochemie und weitere"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "Das Ziel von CAS at home ist die Förderung und Unterstützung der Wissenschaftler in China sich die Technologie der freiwilligen Mithilfe und Datenverarbeitung für Ihre Forschung anzueignen."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home wird am Rechenzentrum des Instituts für Hochenergiephysik (IHEP) an der Chinesischen Akademie der Wissenschaften betrieben. Es bietet chinesischen Studenten die Möglichkeit in den Bereichen Proteinstrukturforschung, Nanotechnology, Krebsforschung und Hochenergiephysik zu forschen."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Helfen Sie chinesischen Wissenschaftlern"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Mathematik, Physik, Evolution"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home ist ein Adapter zwischen BOINC und einigen existierenden verteiltes Rechnen Projekten: ECM, Muon, Evolution at home und distributed.net."
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "Forschung in Mathematik, Physik und Evolutionsbiologie ausführen"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "MTA-SZTAKI - Labor für Parallele und Verteilte Systeme (Ungarn)"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Europäische Forschungsprojekte"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "Das EDGeS at home Beta Projekt integriert freiwillige Berechnungen in das Service-Grid-Netzwerk Europas, indem es Service-Grids ermöglicht wird Arbeitseinheiten von Freiwilligen ausführen zu lassen. Die wissenschaftlichen Projekte, die von dem Projekt abgedeckt werden beinhalten Mathematik, Physik, Biologie, u.a.."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Helfen Sie europäischen Wissenschaftlern"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Spanische Universitäten und Forschungszentren"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Verschiedene spanische Forschungsprojekte"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Forschung im Bereich der Physik, Materialforschung und Biomedizin"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "Helfen Sie spanischen Wissenschaftlern"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM Öffentlichkeitsarbeit"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Medizin, Ökologie und andere Philanthropische Forschungen"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -823,20 +895,20 @@ msgid ""
 "clean water and many more."
 msgstr "Erstellt das weltweit größte Netzwerk des Verteilten Rechnens um entscheidende gemeinnützige Forschung in den dringendsten Problemen der Menschheit zu fördern.  Dies betrifft unter anderem HIV-Aids, Krebs, tropische und vernachlässigte Krankheiten, Solarenergie, sauberes Wasser und vieles mehr."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "Forschung in Biomedizin und Umweltforschung ausführen"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Mathematik, Berechnungen und Spiele"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Mathematik"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -846,64 +918,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home sucht nach Zahlenfeldern mit bestimmten Eigenschaften. Die primäre Anwendung dieser Untersuchungen ist im Bereich der algebraischen Zahlentheorie. Zahlentheoretiker können den Datenbestand auf interessante Muster untersuchen und so neue Vermutungen über Zahlenfelder aufstellen. Am Ende wird diese Forschung zu einem besseren Verständnis der Eigenschaften von Zahlen führen, welche die Grundsteine der gesamten Mathematik sind."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "Forschung in algebraischer Zahlentheorie ausführen"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Informatik"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "Lösen Sie schwere und praktische relevante Probleme (Umkehrfunktionen von diskreten Funktionen, diskrete Optimierung, Bioinformatik, usw.) welche auf das Erfüllbarkeitsproblem reduziert werden können."
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Forschung im Bereich Berechnungskomplexität"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Kryptographie und Kombinatorik"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "Anwendungen von distributed.net ausführen"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Kryptographie"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Der Versuch drei original Enigma Nachrichten zu entschlüsseln. Die Signale wurden 1942 im Nordatlantik abgefangen und es wird angenommen, dass sie noch nicht geknackt wurden."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "Entschlüsseln Sie U-Boot Meldungen aus dem 2. Weltkrieg"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Untersuchung des Collatz Problems, ein ungelöstes Mathematisches Problem"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "Untersuchung der Collatz Vermutung"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "Universität von California in Fullerton"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Faktorisierung großer natürlicher Zahlen"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -913,56 +985,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home ist ein Forschungsprojekt welches die mit dem Internet verbundenen Computer dazu benutzt eine schrittweise Primfaktorzerlegung einer großen ganzen Zahl durchzuführen. Als junger Schüler hast du deine ersten Erfahrung damit gemacht ganze Zahlen in Primzahlfaktoren zu zerlegen, wie 15= 3*5 oder 35= 5*7. NFS at Home setzt diese Erfahrung fort, lediglich mit ganzen Zahlen welche hunderte von Stellen lang sind."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "Untersuchung der Faktorisierung großer Zahlen"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid bietet mehrere Projekte für die unterschiedlichen Formen von sehr großen Primzahlen, inklusive der Suche nach der größten bekannten Primzahl."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Suche nach großen Primzahlen"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Hochschule RheinMain Universität der Angewandten Wissenschaften"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Suche nach Gegenbeispielen für zwei Vermutungen die sich auf die Identifizierung von Primzahlen beziehen"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Untersuchung der Eigenschaften von Primzahlen"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI - Labor für Parallele und Verteilte Systeme (Ungarn)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Finde alle verallgemeinerten binären Zahlensysteme (in denen Basen Matrizen und Zeichen Vektoren sind) bis zur Dimension 11."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Untersuchungen der Zahlentheorie"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "Testen und Vergleichen Sie heuristische Methoden zur Trennung von parallelen Algorithmen in CAD Systemen zum Entwurf von logischen Kontrollsystemen"
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Kommentieren"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "diskutieren"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Nachrichten auch als %sRSS feed%s erhältlich"
diff --git a/locale/el/BOINC-Manager.po b/locale/el/BOINC-Manager.po
old mode 100755
new mode 100644
diff --git a/locale/el/BOINC-Project-Generic.po b/locale/el/BOINC-Project-Generic.po
deleted file mode 100755
index 8de4c6d..0000000
--- a/locale/el/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6524 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2010-11-26 20:50+0200\n"
-"Last-Translator: chris g <chr1407 at hotmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.1.6\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Αναζήτηση για λέξεις σε μηνύματα στο φόρουμ"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Αναζήτηση στα φόρουμ"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Προηγμένη αναζήτηση"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Ερωτήσεις και απαντήσεις"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 πίνακας μηνυμάτων"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Συγγραφέας"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-#, fuzzy
-msgid "Message"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send message"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send %1 a private message"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-#, fuzzy
-msgid "Posts: %1"
-msgstr "Δημοσιεύσεις"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "Unread"
-msgstr "Νήμα"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-#, fuzzy
-msgid "Message %1"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:625
-#, fuzzy
-msgid "Posted: %1"
-msgstr "Δημοσιεύσεις"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-#, fuzzy
-msgid "Edit this message"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
-msgid "Report as offensive"
-msgstr "Τελευταία δημοσίευση"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-#, fuzzy
-msgid "Posted %1 by %2"
-msgstr "Δημοσιεύσεις"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Νήμα"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Δημοσιεύσεις"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Τελευταία δημοσίευση"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Σημάδεψε όλα τα νήματα ως διαβασμένα"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "Σημάδεψε όλα τα νήματα σε όλους τους πίνακες μηνυμάτων ως \"διαβασμένα\"."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Μη διαθέσιμο"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Σπίτι"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Εργασία"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Σχολείο"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Ανανέωση"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Πληροφορίες υπολογιστή"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "Διεύθυνση IP"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Εξωτερική διεύθυνση IP"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Εμφάνιση διεύθυνσης IP"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Ιδιοκτήτης"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Ανώνυμος"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Τύπος κεντρικής μονάδας επεξεργασίας"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Λειτουργικό σύστημα"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Έκδοση του BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Μνήμη"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Ελεύθερος χώρος στο δίσκο"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Άγνωστο"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-#, fuzzy
-msgid "Operating system"
-msgstr "Λειτουργικό σύστημα"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Όνομα"
-
-#: ../inc/host.inc:682
-#, fuzzy
-msgid "BOINC<br>version"
-msgstr "Έκδοση του BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-#, fuzzy
-msgid "Send private message"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-# 83%
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-#, fuzzy
-msgid "unread"
-msgstr "Νήμα"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-#, fuzzy
-msgid "CPU time"
-msgstr "Τύπος κεντρικής μονάδας επεξεργασίας"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr ""
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-#, fuzzy
-msgid "Message board"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-#, fuzzy
-msgid "Threads"
-msgstr "Νήμα"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-#, fuzzy
-msgid "Team"
-msgstr "Νήμα"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Νήμα"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr ""
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr ""
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-#, fuzzy
-msgid "Delete Confirmation"
-msgstr "Πληροφορίες υπολογιστή"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-#, fuzzy
-msgid "Anonymous donation"
-msgstr "Ανώνυμος"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Νήμα"
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Δημοσιεύσεις"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Άγνωστο"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Ιδιοκτήτης"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Προσωπικά μηνύματα"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "%1 πίνακας μηνυμάτων"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Νήμα"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Νήμα"
-
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Ερωτήσεις και απαντήσεις"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Ερωτήσεις και απαντήσεις"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-#, fuzzy
-msgid "%1 Message boards"
-msgstr "%1 πίνακας μηνυμάτων"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Τελευταία δημοσίευση"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Πίνακας μηνυμάτων"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Τελευταία δημοσίευση"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Τελευταία δημοσίευση"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Αναζήτηση στα φόρουμ"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Αναζήτηση στα φόρουμ"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Αναζήτηση στα φόρουμ"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Αναζήτηση στα φόρουμ"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Αναζήτηση στα φόρουμ"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Δημοσιεύσεις"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Όνομα"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Πληροφορίες υπολογιστή"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Άγνωστο"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Όνομα"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "%1 πίνακας μηνυμάτων"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Αναζήτηση στα φόρουμ"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Νήμα"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/el/BOINC-Setup.mo b/locale/el/BOINC-Setup.mo
index 91e9f72..5ebf67e 100644
Binary files a/locale/el/BOINC-Setup.mo and b/locale/el/BOINC-Setup.mo differ
diff --git a/locale/el/BOINC-Setup.po b/locale/el/BOINC-Setup.po
old mode 100755
new mode 100644
index 7c6db46..d45f6b3
--- a/locale/el/BOINC-Setup.po
+++ b/locale/el/BOINC-Setup.po
@@ -1,31 +1,28 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# 
+# Translators:
+# Alex Chrisakis, 2016
+# Street Photograher <jvm at opmbx.org>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2013-10-21 15:34+0000\n"
-"Last-Translator: chris g <chr1407 at hotmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: el\n"
+"PO-Revision-Date: 2016-07-06 22:27+0000\n"
+"Last-Translator: Alex Chrisakis\n"
+"Language-Team: Greek (http://www.transifex.com/boinc/boinc/language/el/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: el\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SearchPath-0: mac_installer\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
-"X-POOTLE-MTIME: 1382369640.0\n"
-"X-Poedit-KeywordsList: _\n"
 
 #: Installer.cpp:124
 #, c-format
 msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr ""
+msgstr "Συγνώμη, αυτή η έκδοση του %s απαιτεί σύστημα 10,5 ή υψηλότερο."
 
 #: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
 msgid "Yes"
@@ -37,24 +34,20 @@ msgstr "Όχι"
 
 #: PostInstall.cpp:133
 msgid "Should BOINC run even when no user is logged in?"
-msgstr ""
-"Να εκτελείται το BOINC ακόμη και όταν κανένας χρήστης δεν είναι "
-"συνδεδεμένος;"
+msgstr "Να εκτελείται το BOINC ακόμη και όταν κανένας χρήστης δεν είναι συνδεδεμένος;"
 
 #: PostInstall.cpp:1416
 #, c-format
 msgid ""
-"Users who are permitted to administer this computer will automatically be "
-"allowed to run and control %s.\n"
+"Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
-"Do you also want non-administrative users to be able to run and control %s "
-"on this Mac?"
-msgstr ""
+"Do you also want non-administrative users to be able to run and control %s on this Mac?"
+msgstr "Στους χρήστες που τους επιτρέπεται να διαχειριστούν αυτόν τον υπολογιστή θα τους επιτραπεί αυτόματα να τρέχουν και να ελέγχουν το %s.\n\nΘέλετε και οι μη-διαχειριστές χρήστες να μπορούν να τρέχουν και να έλεγχουν το %s σε αυτόν τον Mac;"
 
 #: PostInstall.cpp:1444
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr ""
+msgstr "Θέλετε να θέσετε το %s σαν προφύλαξη οθόνης για όλους τους %s σε αυτόν τον Mac; "
 
 #: uninstall.cpp:82
 msgid "OK"
@@ -65,13 +58,10 @@ msgid "Permission error after relaunch"
 msgstr "Σφάλμα άδειας μετά απο επανεκτέλεση"
 
 #: uninstall.cpp:141
-#, fuzzy
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
-msgstr ""
-"Η Αφαίρεση μπορεί να διαρκέσει αρκετά λεπτά.\n"
-"Παρακαλώ να είστε υπομονετικοί."
+msgstr "Η αφαίρεση μπορεί να διαρκέσει αρκετά λεπτά.\nΠαρακαλώ περιμένετε."
 
 #: uninstall.cpp:156
 #, c-format
@@ -79,12 +69,7 @@ msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
 "\n"
 "This will remove the executables but will not touch %s data files."
-msgstr ""
-"Είστε σίγουροι οτι θέλετε να αφαιρέσετε τελείως το %s απο τον υπολογιστή "
-"σας;\n"
-"\n"
-"Αυτό θα αφαιρέσει τα εκτελέσιμα αρχεία αλλά τα %s αρχεία δεδομένων θα "
-"μείνουν ανέπαφα."
+msgstr "Είστε σίγουροι οτι θέλετε να αφαιρέσετε τελείως το %s απο τον υπολογιστή σας;\n\nΑυτό θα αφαιρέσει τα εκτελέσιμα αρχεία αλλά τα %s αρχεία δεδομένων θα μείνουν ανέπαφα."
 
 #: uninstall.cpp:163
 #, c-format
@@ -104,7 +89,7 @@ msgstr "όνομα   του χρήστη"
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
-msgstr ""
+msgstr "Θέλετε επιπλέον να αφαιρεθεί και το VirtualBox από τον υπολογιστή;\n(Το VirtualBox είχε εγκατασταθεί μαζί με το BOINC)."
 
 #: uninstall.cpp:312
 #, c-format
@@ -116,18 +101,14 @@ msgid ""
 "\n"
 "for each user, the file\n"
 "\"%s\"."
-msgstr ""
+msgstr "H αφαίρεση ολοκληρώθηκε.\n\nΜπορεί να θελήσετε να καταργήσετε τα παρακάτω στοιχεία που απομένουν χρησιμοποιώντας τον Finder:\nο φάκελος \"%s\"\n\nγια κάθε χρήστη, το αρχείο\n\"%s\"."
 
 #: uninstall.cpp:840
 #, c-format
 msgid ""
-"Enter your administrator password to completely remove %s from you "
-"computer.\n"
-"\n"
-msgstr ""
-"Βάλτε τον κωδικό διαχειριστή για να αφαιρέσετε τελείως το %s απο τον "
-"υπολογιστή σας\n"
+"Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
+msgstr "Βάλτε τον κωδικό διαχειριστή για να αφαιρέσετε τελείως το %s απο τον υπολογιστή σας\n\n"
 
 #: uninstall.cpp:1616
 msgid "Cancel"
@@ -136,7 +117,3 @@ msgstr "Ακύρωση"
 #: uninstall.cpp:1617
 msgid "Continue..."
 msgstr "Συνέχεια..."
-
-#, c-format
-#~ msgid "Sorry, this version of %s requires system 10.4 or higher."
-#~ msgstr "Συγγνώμη, αυτή η έκδοση του %s απαιτεί σύστημα 10.4 ή μεγαλύτερο."
diff --git a/locale/el/BOINC-Web.po b/locale/el/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/en/BOINC-Drupal.po b/locale/en/BOINC-Drupal.po
index cb24844..321a0b0 100644
--- a/locale/en/BOINC-Drupal.po
+++ b/locale/en/BOINC-Drupal.po
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2015-12-15 12:54+0000\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-08-16 12:47+0000\n"
 "Last-Translator: Rom Walton\n"
 "Language-Team: English (http://www.transifex.com/boinc/boinc/language/en/)\n"
 "MIME-Version: 1.0\n"
@@ -15,436 +15,504 @@ msgstr ""
 "Language: en\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-msgid "Please select a team type."
-msgstr "Please select a team type."
-
-msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "A team foundership change was already requested recently. Only one request is allowed within a period of 90 days."
+msgid "Reject profile"
+msgstr "Reject profile"
 
-msgid "@count days remaining"
-msgstr "@count days remaining"
+msgid "Ban user"
+msgstr "Ban user"
 
-msgid "Inbox"
-msgstr "Inbox"
+msgid "I'm new"
+msgstr "I'm new"
 
-msgid "Compose new"
-msgstr "Compose new"
+msgid "I'm a BOINC user"
+msgstr "I'm a BOINC user"
 
-msgid "respond to the request"
-msgstr "respond to the request"
+msgid "Authenticator login"
+msgstr "Authenticator login"
 
 msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "A foundership transfer request has been made for your team. Please !respond."
-
-msgid "Respond to transfer request"
-msgstr "Respond to transfer request"
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "You must earn @count more credits to be able to post comments on this site."
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "Team member @name has requested team foundership. This may be because you left the team or have not had contact with the team for a long time."
+msgid "Generic"
+msgstr "Generic"
 
-msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "If you don't decline the request by @date, @name will have the option of assuming team foundership. (note: To accept the request, assign foundership to @name using the form below)"
+msgid "Home"
+msgstr "Home"
 
-msgid "Deny request"
-msgstr "Deny request"
+msgid "Work"
+msgstr "Work"
 
-msgid "Send request"
-msgstr "Send request"
+msgid "School"
+msgstr "School"
 
-msgid "Friend request from !name [!site]"
-msgstr "Friend request from !name [!site]"
+msgid "yes"
+msgstr "yes"
 
-msgid "Message"
-msgstr "Message"
+msgid "no"
+msgstr "no"
 
-msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n\nFollow the link below to view this request:\n!link\n\n!message\n\nThanks,\nThe !site team"
+msgid "Resource settings"
+msgstr "Resource settings"
 
-msgid "Cancel friend request"
-msgstr "Cancel friend request"
+msgid "Resource share"
+msgstr "Resource share"
 
-msgid "Remove request"
-msgstr "Remove request"
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determines the proportion of your computer's resources allocated to this project. Example: if you participate in two BOINC projects with resource shares of 100 and 200, the first will get 1/3 of your resources and the second will get 2/3."
 
-msgid "Approve request"
-msgstr "Approve request"
+msgid "Use CPU"
+msgstr "Use CPU"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "!name accepted your friend request [!site]"
+msgid "Enforced by version @number"
+msgstr "Enforced by version @number"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name confirmed you as a friend on !site.\n\nFollow this link to view his or her profile:\n!link\n\n!message\n\nThanks,\nThe !site team"
+msgid "Use NVIDIA GPU"
+msgstr "Use NVIDIA GPU"
 
-msgid "Email address"
-msgstr "Email address"
+msgid "Use ATI GPU"
+msgstr "Use ATI GPU"
 
-msgid "Home"
-msgstr "Home"
+msgid "Use INTEL GPU"
+msgstr "Use INTEL GPU"
 
-msgid "Login"
-msgstr "Login"
+msgid "Beta settings"
+msgstr "Beta settings"
 
-msgid "search"
-msgstr "search"
+msgid "Run test applications?"
+msgstr "Run test applications?"
 
-msgid "Server status"
-msgstr "Server status"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "This helps us develop applications, but may cause jobs to fail on your computer"
 
-msgid "Language"
-msgstr "Language"
+msgid " Default value: @default"
+msgstr " Default value: @default"
 
-msgid "Enter your @s email address."
-msgstr "Enter your @s email address."
+msgid "Applications"
+msgstr "Applications"
 
-msgid "Join now"
-msgstr "Join now"
+msgid "Default set"
+msgstr "Default set"
 
-msgid "I'm new"
-msgstr "I'm new"
+msgid "Set used for new computers"
+msgstr "Set used for new computers"
 
-msgid "I'm a BOINC user"
-msgstr "I'm a BOINC user"
+msgid "Save changes"
+msgstr "Save changes"
 
-msgid "Welcome back!"
-msgstr "Welcome back!"
+msgid "Cancel"
+msgstr "Cancel"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home is a program that uses your computer's idle time to run a screensaver to search for gravitational waves from spinning neutron stars (also called pulsars) using data from the LIGO gravitational wave detector."
+msgid "Show comparison view"
+msgstr "Show comparison view"
 
-msgid "Learn more"
-msgstr "Learn more"
+msgid "Comment form"
+msgstr "Comment form"
 
-msgid "View account"
-msgstr "View account"
+msgid "Logout"
+msgstr "Logout"
 
-msgid "About our screensaver"
-msgstr "About our screensaver"
+msgid "Join now"
+msgstr "Join now"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "Over 500,000 volunteers and counting."
+msgid "Account"
+msgstr "Account"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Server status"
+msgstr "Server status"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Language"
+msgstr "Language"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Create content"
+msgstr "Create content"
 
-msgid "Logout"
-msgstr "Logout"
+msgid "General settings"
+msgstr "General settings"
 
 msgid "Name"
 msgstr "Name"
 
-msgid "Avg credit"
-msgstr "Avg credit"
+msgid "Time zone"
+msgstr "Time zone"
 
-msgid "Total credit"
-msgstr "Total credit"
+msgid "Notification settings"
+msgstr "Notification settings"
 
-msgid "Enter your password to save changes"
-msgstr "Enter your password to save changes"
+msgid "Receive email notification for private messages?"
+msgstr "Receive email notification for private messages?"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Enter your current password if changing your email\n          address or password."
+msgid "Receive email notification for friend requests?"
+msgstr "Receive email notification for friend requests?"
 
-msgid "BOINC user ID"
-msgstr "BOINC user ID"
+msgid "Language settings"
+msgstr "Language settings"
 
-msgid "Drupal user ID"
-msgstr "Drupal user ID"
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "This account's default language for e-mails and preferred language for site presentation."
 
-msgid "Account key"
-msgstr "Account key"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with your e-mail address, it will be used for your user picture."
 
-msgid "Weak account key"
-msgstr "Weak account key"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Your Gravatar will not be shown if you upload a user picture."
 
-msgid "Cross-project ID"
-msgstr "Cross-project ID"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with your e-mail address, use it for your user picture."
 
-msgid "Save changes"
-msgstr "Save changes"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar will not be shown if an avatar is uploaded."
 
-msgid "Cancel"
-msgstr "Cancel"
+msgid "Avatar settings"
+msgstr "Avatar settings"
 
-msgid "Change password"
-msgstr "Change password"
+msgid "This is not available until your profile is set up."
+msgstr "This is not available until your profile is set up."
 
-msgid "What is @this_project?"
-msgstr "What is @this_project?"
+msgid "Create a profile"
+msgstr "Create a profile"
 
-msgid "no projects..."
-msgstr "no projects..."
+msgid "Upload an avatar"
+msgstr "Upload an avatar"
 
-msgid "Download the desktop software"
-msgstr "Download the desktop software"
+msgid "Forum settings"
+msgstr "Forum settings"
 
-msgid "Run the installer"
-msgstr "Run the installer"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "In discussion topics, show at most @comments_per_page"
 
-msgid "When prompted enter @siteurl"
-msgstr "When prompted enter @siteurl"
+msgid "comments per page"
+msgstr "comments per page"
 
-msgid "Password"
-msgstr "Password"
+msgid "Sort comments in discussions"
+msgstr "Sort comments in discussions"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Enter the password that accompanies your username."
+msgid "Newest post first"
+msgstr "Newest post first"
 
-msgid "Request new password"
-msgstr "Request new password"
-
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "If you're already running BOINC, select <i>Add\n      Project</i>."
-
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "If you're running a command-line version of BOINC,\n        first use the BOINC Manager software (elsewhere if necessary) to create an\n        an account at this project, then use that account to connect with the\n        command-line version."
+msgid "Oldest post first"
+msgstr "Oldest post first"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "If you're running a pre-5.0 version of BOINC, please\n        upgrade to a more recent version to create an account\n        at this project."
+msgid "Signature"
+msgstr "Signature"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) If you know your account's email address, and you can receive email there:"
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Your signature will be publicly displayed at the end of your comments."
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Enter the email address and click OK. You will be sent email instructions for resetting your password."
+msgid "Hide signatures in forums"
+msgstr "Hide signatures in forums"
 
-msgid "OK"
-msgstr "OK"
+msgid "Privacy settings"
+msgstr "Privacy settings"
 
-msgid "The latest news from the @site_name project"
-msgstr "The latest news from the @site_name project"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Is it OK for @project and your team (if any) to email you?"
 
-msgid "Comment form"
-msgstr "Comment form"
+msgid "Should @project show your computers on its web site?"
+msgstr "Should @project show your computers on its web site?"
 
-msgid "Total credits"
-msgstr "Total credits"
+msgid "Id"
+msgstr "Id"
 
-msgid "Recent avg credits"
-msgstr "Recent avg credits"
+msgid "Founder"
+msgstr "Founder"
 
 msgid "Country"
 msgstr "Country"
 
-msgid "Type"
-msgstr "Type"
+msgid "Recent average credit"
+msgstr "Recent average credit"
 
-msgid "Founder"
-msgstr "Founder"
+msgid "Members"
+msgstr "Members"
 
-msgid "New members in last day"
-msgstr "New members in last day"
+msgid "Total Credit"
+msgstr "Total Credit"
 
-msgid "Total members"
-msgstr "Total members"
+msgid "User ID"
+msgstr "User ID"
 
-msgid "Active members"
-msgstr "Active members"
+msgid "User"
+msgstr "User"
 
-msgid "Members with credit"
-msgstr "Members with credit"
+msgid "Admin since"
+msgstr "Admin since"
 
-msgid "Description"
-msgstr "Description"
+msgid "Team ID"
+msgstr "Team ID"
 
-msgid "Search teams"
-msgstr "Search teams"
+msgid "User joined"
+msgstr "User joined"
 
-msgid "Send message"
-msgstr "Send message"
+msgid "Timestamp"
+msgstr "Timestamp"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Account Key"
+msgstr "Account Key"
 
-msgid "Project"
-msgstr "Project"
+msgid "Member since"
+msgstr "Member since"
 
-msgid "Web site"
-msgstr "Web site"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "No active computers"
-msgstr "No active computers"
+msgid "Email Address"
+msgstr "Email Address"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "This user has no computers that have been active in the last 30 days."
+msgid "Password Hash"
+msgstr "Password Hash"
 
-msgid " Default value: @default"
-msgstr " Default value: @default"
+msgid "Postal Code"
+msgstr "Postal Code"
 
-msgid "Applications"
-msgstr "Applications"
+msgid "Send Email"
+msgstr "Send Email"
 
-msgid "yes"
-msgstr "yes"
+msgid "Show Hosts"
+msgstr "Show Hosts"
 
-msgid "no"
-msgstr "no"
+msgid "URL"
+msgstr "URL"
 
-msgid "Message @id"
-msgstr "Message @id"
+msgid "Computer ID"
+msgstr "Computer ID"
 
-msgid "message @id"
-msgstr "message @id"
+msgid "Location"
+msgstr "Location"
 
-msgid " in response to !parent"
-msgstr " in response to !parent"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "While BOINC running, % of time work is allowed"
 
-msgid "Credits per day"
-msgstr "Credits per day"
+msgid "Average turnaround time"
+msgstr "Average turnaround time"
 
-msgid "Computers hidden"
-msgstr "Computers hidden"
+msgid "Created"
+msgstr "Created"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "This user has chosen not to show information about their computers."
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "While BOINC running, % of time host has an Internet connection"
 
-msgid "Stderr output"
-msgstr "Stderr output"
+msgid "Average CPU efficiency"
+msgstr "Average CPU efficiency"
 
-msgid "@time ago"
-msgstr "@time ago"
+msgid "Free disk space"
+msgstr "Free disk space"
 
-msgid "n/a"
-msgstr "n/a"
+msgid "Total disk space"
+msgstr "Total disk space"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Submitted by !username on !datetime"
+msgid "Task duration correction factor"
+msgstr "Task duration correction factor"
 
-msgid "Member since"
-msgstr "Member since"
+msgid "Avg. credit"
+msgstr "Avg. credit"
 
-msgid "View team"
-msgstr "View team"
+msgid "External IP address"
+msgstr "External IP address"
 
-msgid "Friends (@count)"
-msgstr "Friends (@count)"
+msgid "Cross project ID"
+msgstr "Cross project ID"
 
-msgid "Website"
-msgstr "Website"
+msgid "Last IP address"
+msgstr "Last IP address"
 
-msgid "Locked"
-msgstr "Locked"
+msgid "Cache"
+msgstr "Cache"
 
-msgid "Computers pending"
-msgstr "Computers pending"
+msgid "Memory"
+msgstr "Memory"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "This user does not yet have any associated computers. Computers will be displayed when they have earned their first credits."
+msgid "Swap space"
+msgstr "Swap space"
 
-msgid "No results found..."
-msgstr "No results found..."
+msgid "Maximum daily WU quota per CPU"
+msgstr "Maximum daily WU quota per CPU"
 
-msgid "Background"
-msgstr "Background"
+msgid "Average download rate"
+msgstr "Average download rate"
 
-msgid "Teams"
-msgstr "Teams"
+msgid "Average upload rate"
+msgstr "Average upload rate"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "@project participants may form teams. You may belong to only one team. You can join or quit a team at any time. To join a team, visit its team page and click \"Join this team\". Each team has a founder who may:"
+msgid "Same IP address count"
+msgstr "Same IP address count"
 
-msgid "access team members' email addresses"
-msgstr "access team members' email addresses"
+msgid "% of time BOINC client is running"
+msgstr "% of time BOINC client is running"
 
-msgid "edit the team's name and description"
-msgstr "edit the team's name and description"
+msgid "Operating system"
+msgstr "Operating system"
 
-msgid "add or remove team admins"
-msgstr "add or remove team admins"
+msgid "Operating system version"
+msgstr "Operating system version"
 
-msgid "remove members from the team"
-msgstr "remove members from the team"
+msgid "Measured floating point speed"
+msgstr "Measured floating point speed"
 
-msgid "disband a team if it has no members"
-msgstr "disband a team if it has no members"
+msgid "Measured integer speed"
+msgstr "Measured integer speed"
 
-msgid "Create a new team"
-msgstr "Create a new team"
+msgid "CPU model"
+msgstr "CPU model"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "If you cannot find a team that is right for you, you can create a team."
+msgid "Number of processors"
+msgstr "Number of processors"
 
-msgid "You must earn @count more credits!"
-msgstr "You must earn @count more credits!"
+msgid "CPU"
+msgstr "CPU"
 
-msgid "Threads"
-msgstr "Threads"
+msgid "Number of times client has contacted server"
+msgstr "Number of times client has contacted server"
 
-msgid "Posts"
-msgstr "Posts"
+msgid "Last contact"
+msgstr "Last contact"
 
-msgid "Last post"
-msgstr "Last post"
+msgid "Serial number"
+msgstr "Serial number"
 
-msgid "Manage subscriptions"
-msgstr "Manage subscriptions"
+msgid "Timezone"
+msgstr "Timezone"
 
-msgid "Featured"
-msgstr "Featured"
+msgid "Platform ID"
+msgstr "Platform ID"
 
-msgid "Submitted on !datetime"
-msgstr "Submitted on !datetime"
+msgid "Task ID"
+msgstr "Task ID"
 
-msgid "Comments"
-msgstr "Comments"
+msgid "Workunit ID"
+msgstr "Workunit ID"
 
-msgid "Opinion"
-msgstr "Opinion"
+msgid "Host ID"
+msgstr "Host ID"
+
+msgid "Application ID"
+msgstr "Application ID"
+
+msgid "Application version"
+msgstr "Application version"
+
+msgid "Claimed credit"
+msgstr "Claimed credit"
+
+msgid "Client state"
+msgstr "Client state"
+
+msgid "CPU time"
+msgstr "CPU time"
+
+msgid "Run time"
+msgstr "Run time"
+
+msgid "Exit status"
+msgstr "Exit status"
+
+msgid "Granted credit"
+msgstr "Granted credit"
+
+msgid "Outcome"
+msgstr "Outcome"
+
+msgid "Received time"
+msgstr "Received time"
+
+msgid "Report deadline"
+msgstr "Report deadline"
+
+msgid "Sent"
+msgstr "Sent"
+
+msgid "Server state"
+msgstr "Server state"
+
+msgid "Stderr out"
+msgstr "Stderr out"
+
+msgid "Validation state"
+msgstr "Validation state"
+
+msgid "App ID"
+msgstr "App ID"
+
+msgid "Canonical credit"
+msgstr "Canonical credit"
+
+msgid "Canonical result ID"
+msgstr "Canonical result ID"
+
+msgid "Created time"
+msgstr "Created time"
+
+msgid "Error mask"
+msgstr "Error mask"
+
+msgid "Minimum quorum"
+msgstr "Minimum quorum"
+
+msgid "Max error tasks"
+msgstr "Max error tasks"
+
+msgid "Max success tasks"
+msgstr "Max success tasks"
+
+msgid "Max total tasks"
+msgstr "Max total tasks"
+
+msgid "Needs validation"
+msgstr "Needs validation"
+
+msgid "Initial replication"
+msgstr "Initial replication"
+
+msgid "Target number of results"
+msgstr "Target number of results"
+
+msgid "Application version ID"
+msgstr "Application version ID"
+
+msgid "Plan class"
+msgstr "Plan class"
+
+msgid "Version number"
+msgstr "Version number"
+
+msgid "Computer"
+msgstr "Computer"
+
+msgid "App version ID"
+msgstr "App version ID"
+
+msgid "Consecutive valid tasks"
+msgstr "Consecutive valid tasks"
+
+msgid "Number of tasks completed"
+msgstr "Number of tasks completed"
+
+msgid "Max tasks per day"
+msgstr "Max tasks per day"
+
+msgid "Number of tasks today"
+msgstr "Number of tasks today"
+
+msgid "Manage subscriptions"
+msgstr "Manage subscriptions"
+
+msgid "Avg credit"
+msgstr "Avg credit"
+
+msgid "Total credit"
+msgstr "Total credit"
 
 msgid "More"
 msgstr "More"
@@ -452,14 +520,103 @@ msgstr "More"
 msgid "Tasks"
 msgstr "Tasks"
 
-msgid "Generic"
-msgstr "Generic"
+msgid "Computers hidden"
+msgstr "Computers hidden"
 
-msgid "Work"
-msgstr "Work"
+msgid "This user has chosen not to show information about their computers."
+msgstr "This user has chosen not to show information about their computers."
 
-msgid "School"
-msgstr "School"
+msgid "no projects..."
+msgstr "no projects..."
+
+msgid "Moderation"
+msgstr "Moderation"
+
+msgid "Unvetted profiles"
+msgstr "Unvetted profiles"
+
+msgid "Inbox"
+msgstr "Inbox"
+
+msgid "Compose new"
+msgstr "Compose new"
+
+msgid "Posts contributed"
+msgstr "Posts contributed"
+
+msgid "Friends (@count)"
+msgstr "Friends (@count)"
+
+msgid "Welcome back!"
+msgstr "Welcome back!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home is a program that uses your computer's idle time to run a screensaver to search for gravitational waves from spinning neutron stars (also called pulsars) using data from the LIGO gravitational wave detector."
+
+msgid "Learn more"
+msgstr "Learn more"
+
+msgid "View account"
+msgstr "View account"
+
+msgid "User of the day"
+msgstr "User of the day"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Over 500,000 volunteers and counting."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Credits per day"
+
+msgid "View user profile."
+msgstr "View user profile."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Profile awaiting moderator approval"
+
+msgid "Background"
+msgstr "Background"
+
+msgid "Opinion"
+msgstr "Opinion"
+
+msgid "Enter your password to save changes"
+msgstr "Enter your password to save changes"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Enter your current password if changing your email\n          address or password."
+
+msgid "BOINC user ID"
+msgstr "BOINC user ID"
+
+msgid "Drupal user ID"
+msgstr "Drupal user ID"
+
+msgid "Account key"
+msgstr "Account key"
+
+msgid "Weak account key"
+msgstr "Weak account key"
+
+msgid "Cross-project ID"
+msgstr "Cross-project ID"
+
+msgid "Change password"
+msgstr "Change password"
 
 msgid "Presets"
 msgstr "Presets"
@@ -500,9 +657,6 @@ msgstr "Run while computer is in use?"
 msgid "Run GPU work while computer is in use?"
 msgstr "Run GPU work while computer is in use?"
 
-msgid "Enforced by version @number"
-msgstr "Enforced by version @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "\"In use\" means mouse/keyboard activity in last"
 
@@ -639,61 +793,38 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "Check this ONLY if your Internet provider modifies image files (UMTS does this, for example). Skipping verification reduces the security of BOINC."
 
-msgid "Show comparison view"
-msgstr "Show comparison view"
+msgid "search"
+msgstr "search"
 
-msgid "Resource settings"
-msgstr "Resource settings"
+msgid "What is @this_project?"
+msgstr "What is @this_project?"
 
-msgid "Resource share"
-msgstr "Resource share"
+msgid "Login"
+msgstr "Login"
 
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Determines the proportion of your computer's resources allocated to this project. Example: if you participate in two BOINC projects with resource shares of 100 and 200, the first will get 1/3 of your resources and the second will get 2/3."
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Use CPU"
-msgstr "Use CPU"
-
-msgid "Use NVIDIA GPU"
-msgstr "Use NVIDIA GPU"
-
-msgid "Use ATI GPU"
-msgstr "Use ATI GPU"
-
-msgid "Use INTEL GPU"
-msgstr "Use INTEL GPU"
-
-msgid "Beta settings"
-msgstr "Beta settings"
-
-msgid "Run test applications?"
-msgstr "Run test applications?"
+msgid "Project"
+msgstr "Project"
 
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "This helps us develop applications, but may cause jobs to fail on your computer"
+msgid "No @type tasks"
+msgstr "No @type tasks"
 
-msgid "Default set"
-msgstr "Default set"
+msgid "There are no tasks of this type on record"
+msgstr "There are no tasks of this type on record"
 
-msgid "Set used for new computers"
-msgstr "Set used for new computers"
+msgid "Details"
+msgstr "Details"
 
-msgid "Merge"
-msgstr "Merge"
+msgid "Password"
+msgstr "Password"
 
-msgid "Delete"
-msgstr "Delete"
+msgid "Enter the password that accompanies your username."
+msgstr "Enter the password that accompanies your username."
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "This will delete host @id from your account forever. Are you sure this is OK?"
+msgid "Request new password"
+msgstr "Request new password"
 
 msgid "Mark all topics read"
 msgstr "Mark all topics read"
@@ -721,146 +852,151 @@ msgstr "Disable rich-text"
 msgid "Enable rich-text"
 msgstr "Enable rich-text"
 
-msgid "View user profile."
-msgstr "View user profile."
+msgid "Teams"
+msgstr "Teams"
 
-msgid "BBcode help"
-msgstr "BBcode help"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "@project participants may form teams. You may belong to only one team. You can join or quit a team at any time. To join a team, visit its team page and click \"Join this team\". Each team has a founder who may:"
 
-msgid "Post comment"
-msgstr "Post comment"
+msgid "access team members' email addresses"
+msgstr "access team members' email addresses"
 
-msgid "No @type tasks"
-msgstr "No @type tasks"
+msgid "edit the team's name and description"
+msgstr "edit the team's name and description"
 
-msgid "There are no tasks of this type on record"
-msgstr "There are no tasks of this type on record"
+msgid "add or remove team admins"
+msgstr "add or remove team admins"
 
-msgid "Clear"
-msgstr "Clear"
+msgid "remove members from the team"
+msgstr "remove members from the team"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "This will remove all of your settings from the @name preference set. Are you sure?"
+msgid "disband a team if it has no members"
+msgstr "disband a team if it has no members"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "These apply to all BOINC projects in which you participate."
+msgid "Search teams"
+msgstr "Search teams"
+
+msgid "Create a new team"
+msgstr "Create a new team"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "On computers attached to multiple projects, the most recently modified preferences will be used."
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "If you cannot find a team that is right for you, you can create a team."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "Preferences last modified: @mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "You must earn 1 more credit!"
 
-msgid "Combined preferences"
-msgstr "Combined preferences"
+msgid "@count million ops/sec"
+msgstr "@count million ops/sec"
 
-msgid "Switch View"
-msgstr "Switch View"
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/sec"
 
-msgid "every"
-msgstr "every"
+msgid "@count days"
+msgstr "@count days"
 
-msgid "Edit"
-msgstr "Edit"
+msgid "Stderr output"
+msgstr "Stderr output"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "This will remove all of your settings from the \"@name\" preference set. Are you sure?"
+msgid "Email address"
+msgstr "Email address"
 
-msgid "Add"
-msgstr "Add"
+msgid "Enter your @s email address."
+msgstr "Enter your @s email address."
 
-msgid "General settings"
-msgstr "General settings"
+msgid "Log in"
+msgstr "Log in"
 
-msgid "Time zone"
-msgstr "Time zone"
+msgid "Sorry, unrecognized email address or password."
+msgstr "Sorry, unrecognized email address or password."
 
-msgid "Notification settings"
-msgstr "Notification settings"
+msgid "Have you forgotten your password?"
+msgstr "Have you forgotten your password?"
 
-msgid "Receive email notification for private messages?"
-msgstr "Receive email notification for private messages?"
+msgid "No results found..."
+msgstr "No results found..."
 
-msgid "Receive email notification for friend requests?"
-msgstr "Receive email notification for friend requests?"
+msgid "Anonymous"
+msgstr "Anonymous"
 
-msgid "Language settings"
-msgstr "Language settings"
+msgid "Forgot password"
+msgstr "Forgot password"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "This account's default language for e-mails and preferred language for site presentation."
+msgid "authenticator-based login"
+msgstr "authenticator-based login"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with your e-mail address, it will be used for your user picture."
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Enter your email address to receive instructions for resetting your password (or use the !authenticator_login)."
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Your Gravatar will not be shown if you upload a user picture."
+msgid "Send"
+msgstr "Send"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with your e-mail address, use it for your user picture."
+msgid "Submitted by !username on !datetime"
+msgstr "Submitted by !username on !datetime"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Gravatar will not be shown if an avatar is uploaded."
+msgid "Send message"
+msgstr "Send message"
 
-msgid "Avatar settings"
-msgstr "Avatar settings"
+msgid "Add as friend"
+msgstr "Add as friend"
 
-msgid "This is not available until your profile is set up."
-msgstr "This is not available until your profile is set up."
+msgid "Website"
+msgstr "Website"
 
-msgid "Create a profile"
-msgstr "Create a profile"
+msgid "Team"
+msgstr "Team"
 
-msgid "Upload an avatar"
-msgstr "Upload an avatar"
+msgid "Create new team"
+msgstr "Create new team"
 
-msgid "Forum settings"
-msgstr "Forum settings"
+msgid "Search"
+msgstr "Search"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "In discussion topics, show at most @comments_per_page"
+msgid "Total credits"
+msgstr "Total credits"
 
-msgid "comments per page"
-msgstr "comments per page"
+msgid "Recent avg credits"
+msgstr "Recent avg credits"
 
-msgid "Sort comments in discussions"
-msgstr "Sort comments in discussions"
+msgid "Type"
+msgstr "Type"
 
-msgid "Newest post first"
-msgstr "Newest post first"
+msgid "New members in last day"
+msgstr "New members in last day"
 
-msgid "Oldest post first"
-msgstr "Oldest post first"
+msgid "Total members"
+msgstr "Total members"
 
-msgid "Signature"
-msgstr "Signature"
+msgid "Active members"
+msgstr "Active members"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "Your signature will be publicly displayed at the end of your comments."
+msgid "Members with credit"
+msgstr "Members with credit"
 
-msgid "Hide signatures in forums"
-msgstr "Hide signatures in forums"
+msgid "Web site"
+msgstr "Web site"
 
-msgid "Privacy settings"
-msgstr "Privacy settings"
+msgid "Description"
+msgstr "Description"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Is it OK for @project and your team (if any) to email you?"
+msgid "BBcode help"
+msgstr "BBcode help"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Should @project show your computers on its web site?"
+msgid "Post comment"
+msgstr "Post comment"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Home"
+
+msgid "The latest news from the @site_name project"
+msgstr "The latest news from the @site_name project"
 
 msgid "Hide"
 msgstr "Hide"
@@ -883,606 +1019,421 @@ msgstr "Make this topic sticky"
 msgid "moderation"
 msgstr "moderation"
 
-msgid "Post new comment"
-msgstr "Post new comment"
+msgid "Reply"
+msgstr "Reply"
 
-msgid "You must earn 1 more credit!"
-msgstr "You must earn 1 more credit!"
+msgid "Reply to this comment"
+msgstr "Reply to this comment"
 
-msgid "Joined"
-msgstr "Joined"
+msgid "Quote"
+msgstr "Quote"
 
-msgid "Credit"
-msgstr "Credit"
+msgid "Reply to this comment with quote"
+msgstr "Reply to this comment with quote"
 
-msgid "RAC"
-msgstr "RAC"
-
-msgid "Join team"
-msgstr "Join team"
-
-msgid "Click here to become a member of @this_team"
-msgstr "Click here to become a member of @this_team"
-
-msgid "Join this team"
-msgstr "Join this team"
-
-msgid "Manage team"
-msgstr "Manage team"
-
-msgid "View member list"
-msgstr "View member list"
-
-msgid "Member names and emails"
-msgstr "Member names and emails"
-
-msgid "View change history"
-msgstr "View change history"
-
-msgid "See member activity"
-msgstr "See member activity"
-
-msgid "Manage team message board"
-msgstr "Manage team message board"
-
-msgid "Create or manage message board"
-msgstr "Create or manage message board"
-
-msgid "Remove members"
-msgstr "Remove members"
-
-msgid "Change founder"
-msgstr "Change founder"
-
-msgid "Manage team admins"
-msgstr "Manage team admins"
-
-msgid "Edit team info"
-msgstr "Edit team info"
-
-msgid "Remove team"
-msgstr "Remove team"
-
-msgid "Team forum"
-msgstr "Team forum"
-
-msgid "A discussion forum has been set up for team members."
-msgstr "A discussion forum has been set up for team members."
-
-msgid "Enter forum"
-msgstr "Enter forum"
-
-msgid "Leave team"
-msgstr "Leave team"
-
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Click here to revoke your membership with @this_team"
-
-msgid "Leave this team"
-msgstr "Leave this team"
-
-msgid "Edit message board"
-msgstr "Edit message board"
-
-msgid "Message board title"
-msgstr "Message board title"
-
-msgid "Text only, no HTML tags"
-msgstr "Text only, no HTML tags"
-
-msgid "Minimum time between posts"
-msgstr "Minimum time between posts"
-
-msgid "Seconds"
-msgstr "Seconds"
-
-msgid "Minimum total credit to post"
-msgstr "Minimum total credit to post"
-
-msgid "Minimum avg credit to post"
-msgstr "Minimum avg credit to post"
-
-msgid "Allow public to read board?"
-msgstr "Allow public to read board?"
-
-msgid "Save message board"
-msgstr "Save message board"
-
-msgid "About message boards"
-msgstr "About message boards"
-
-msgid "This is a team-only message board"
-msgstr "This is a team-only message board"
-
-msgid "Only members may post"
-msgstr "Only members may post"
-
-msgid "Only members may read (optional)"
-msgstr "Only members may read (optional)"
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Founder & Team Admins have moderator privileges"
-
-msgid "Changing the team founder"
-msgstr "Changing the team founder"
-
-msgid "Notes about changes in foundership:"
-msgstr "Notes about changes in foundership:"
-
-msgid "Any member of the team is eligible"
-msgstr "Any member of the team is eligible"
-
-msgid "Current founder becomes a normal user"
-msgstr "Current founder becomes a normal user"
-
-msgid "Foundership can be requested by team members:"
-msgstr "Foundership can be requested by team members:"
+msgid "Edit"
+msgstr "Edit"
 
-msgid "One request is allowed at a time"
-msgstr "One request is allowed at a time"
+msgid "Edit this comment"
+msgstr "Edit this comment"
 
-msgid "It must be 60 days since any previous request"
-msgstr "It must be 60 days since any previous request"
+msgid "Delete"
+msgstr "Delete"
 
-msgid "Any active request must be older than 90 days"
-msgstr "Any active request must be older than 90 days"
+msgid "Delete this comment"
+msgstr "Delete this comment"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "Current founder has 60 days to respond to a request"
+msgid "Hide this comment"
+msgstr "Hide this comment"
 
-msgid "Add team admin"
-msgstr "Add team admin"
+msgid "Message @id"
+msgstr "Message @id"
 
-msgid "Enter email address"
-msgstr "Enter email address"
+msgid "Convert"
+msgstr "Convert"
 
-msgid "Current team admins"
-msgstr "Current team admins"
+msgid "Convert this comment to a new topic"
+msgstr "Convert this comment to a new topic"
 
-msgid "About team admins"
-msgstr "About team admins"
+msgid "message @id"
+msgstr "message @id"
 
-msgid "Team admins can:"
-msgstr "Team admins can:"
+msgid " in response to !parent"
+msgstr " in response to !parent"
 
-msgid "Edit team information"
-msgstr "Edit team information"
+msgid "Post new comment"
+msgstr "Post new comment"
 
-msgid "View the team's join / quit history"
-msgstr "View the team's join / quit history"
+msgid "Comments"
+msgstr "Comments"
 
-msgid "Moderate the team forum"
-msgstr "Moderate the team forum"
+msgid "discuss"
+msgstr "discuss"
 
-msgid "Remove members from the team"
-msgstr "Remove members from the team"
+msgid "n/a"
+msgstr "n/a"
 
-msgid "Disband a team if it has no members"
-msgstr "Disband a team if it has no members"
+msgid "@time ago"
+msgstr "@time ago"
 
-msgid "Team admins cannot:"
-msgstr "Team admins cannot:"
+msgid "Threads"
+msgstr "Threads"
 
-msgid "Change the team founder"
-msgstr "Change the team founder"
+msgid "Posts"
+msgstr "Posts"
 
-msgid "Add / Remove team admins"
-msgstr "Add / Remove team admins"
+msgid "Last post"
+msgstr "Last post"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "If a team admin quits the team, they cease to be a team admin. We recommend only selecting people you know and trust"
-
-msgid "Choose type"
-msgstr "Choose type"
-
-msgid "Team name"
-msgstr "Team name"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "Team name -- HTML version (optional)"
-
-msgid "You may use limited HTML tags"
-msgstr "You may use limited HTML tags"
-
-msgid "Team website (optional)"
-msgstr "Team website (optional)"
-
-msgid "Displayed on the team's page"
-msgstr "Displayed on the team's page"
-
-msgid "Type of team"
-msgstr "Type of team"
-
-msgid "Accept new members?"
-msgstr "Accept new members?"
-
-msgid "Description of team"
-msgstr "Description of team"
-
-msgid "Create new team"
-msgstr "Create new team"
-
-msgid "Create a team"
-msgstr "Create a team"
-
-msgid "Save team"
-msgstr "Save team"
-
-msgid "Create team message board"
-msgstr "Create team message board"
-
-msgid "Create message board"
-msgstr "Create message board"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Please be responsible in what you write and do not create posts which are offensive or insulting. Offensive posts or threads may be deleted by forum moderators without warning or discussion. Do not respond to offensive postings. Click on the \"report\" button at the bottom of the post to call it to the attention of the moderators."
 
-msgid "You may create a message board for use by @team"
-msgstr "You may create a message board for use by @team"
+msgid "this project"
+msgstr "this project"
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Please set the minimum average credit that a user is required to have in order to post to this message board."
-
-msgid "Post new topic"
-msgstr "Post new topic"
-
-msgid "Anonymous"
-msgstr "Anonymous"
-
-msgid "Unpublished"
-msgstr "Unpublished"
-
-msgid "parent removed"
-msgstr "parent removed"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "Sorry, unrecognized email address or password."
-
-msgid "Have you forgotten your password?"
-msgstr "Have you forgotten your password?"
-
-msgid "Id"
-msgstr "Id"
-
-msgid "Recent average credit"
-msgstr "Recent average credit"
-
-msgid "Members"
-msgstr "Members"
-
-msgid "Total Credit"
-msgstr "Total Credit"
-
-msgid "User ID"
-msgstr "User ID"
-
-msgid "User"
-msgstr "User"
-
-msgid "Admin since"
-msgstr "Admin since"
-
-msgid "Team ID"
-msgstr "Team ID"
-
-msgid "User joined"
-msgstr "User joined"
-
-msgid "Timestamp"
-msgstr "Timestamp"
-
-msgid "Account Key"
-msgstr "Account Key"
-
-msgid "CPID"
-msgstr "CPID"
-
-msgid "Email Address"
-msgstr "Email Address"
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "We also ask that you keep all discussion on the message boards related to @project or BOINC with the small exception of the Science message board where you are free to discuss anything relevant to the underlying science. Participants interested in broader discussions should post to unofficial forums for @project."
 
-msgid "Password Hash"
-msgstr "Password Hash"
+msgid "These message boards now support BBCode tags only."
+msgstr "These message boards now support BBCode tags only."
 
-msgid "Postal Code"
-msgstr "Postal Code"
+msgid "Featured"
+msgstr "Featured"
 
-msgid "Send Email"
-msgstr "Send Email"
+msgid "Locked"
+msgstr "Locked"
 
-msgid "Show Hosts"
-msgstr "Show Hosts"
+msgid "Submitted on !datetime"
+msgstr "Submitted on !datetime"
 
-msgid "URL"
-msgstr "URL"
+msgid "Computers pending"
+msgstr "Computers pending"
 
-msgid "Computer ID"
-msgstr "Computer ID"
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "This user does not yet have any associated computers. Computers will be displayed when they have earned their first credits."
 
-msgid "Location"
-msgstr "Location"
+msgid "Show IP address"
+msgstr "Show IP address"
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "While BOINC running, % of time work is allowed"
+msgid "Download the desktop software"
+msgstr "Download the desktop software"
 
-msgid "Average turnaround time"
-msgstr "Average turnaround time"
+msgid "Run the installer"
+msgstr "Run the installer"
 
-msgid "Created"
-msgstr "Created"
+msgid "hours"
+msgstr "hours"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "While BOINC running, % of time host has an Internet connection"
+msgid "When prompted enter @siteurl"
+msgstr "When prompted enter @siteurl"
 
-msgid "Average CPU efficiency"
-msgstr "Average CPU efficiency"
+msgid "Merge"
+msgstr "Merge"
 
-msgid "Free disk space"
-msgstr "Free disk space"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "This will delete host @id from your account forever. Are you sure this is OK?"
 
-msgid "Total disk space"
-msgstr "Total disk space"
+msgid "Post topic"
+msgstr "Post topic"
 
-msgid "Task duration correction factor"
-msgstr "Task duration correction factor"
+msgid "Leave team"
+msgstr "Leave team"
 
-msgid "Avg. credit"
-msgstr "Avg. credit"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Click here to revoke your membership with @this_team"
 
-msgid "External IP address"
-msgstr "External IP address"
+msgid "Leave this team"
+msgstr "Leave this team"
 
-msgid "Cross project ID"
-msgstr "Cross project ID"
+msgid "Request foundership"
+msgstr "Request foundership"
 
-msgid "Last IP address"
-msgstr "Last IP address"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "If the team founder is not active and you want to assume the role of founder, click below to request foundership of @this_team."
 
-msgid "Cache"
-msgstr "Cache"
+msgid "Initiate request"
+msgstr "Initiate request"
 
-msgid "Memory"
-msgstr "Memory"
+msgid "No active computers"
+msgstr "No active computers"
 
-msgid "Swap space"
-msgstr "Swap space"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "This user has no computers that have been active in the last 30 days."
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "Maximum daily WU quota per CPU"
+msgid "Clear"
+msgstr "Clear"
 
-msgid "Average download rate"
-msgstr "Average download rate"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "This will remove all of your settings from the @name preference set. Are you sure?"
 
-msgid "Average upload rate"
-msgstr "Average upload rate"
+msgid "Your community preferences have been updated."
+msgstr "Your community preferences have been updated."
 
-msgid "Same IP address count"
-msgstr "Same IP address count"
+msgid "Combined preferences"
+msgstr "Combined preferences"
 
-msgid "% of time BOINC client is running"
-msgstr "% of time BOINC client is running"
+msgid "Switch View"
+msgstr "Switch View"
 
-msgid "Operating system"
-msgstr "Operating system"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "This will remove all of your settings from the \"@name\" preference set. Are you sure?"
 
-msgid "Operating system version"
-msgstr "Operating system version"
+msgid "Approve profile"
+msgstr "Approve profile"
 
-msgid "Measured floating point speed"
-msgstr "Measured floating point speed"
+msgid "Approve this profile content"
+msgstr "Approve this profile content"
 
-msgid "Measured integer speed"
-msgstr "Measured integer speed"
+msgid "Reject this profile content"
+msgstr "Reject this profile content"
 
-msgid "CPU model"
-msgstr "CPU model"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "These apply to all BOINC projects in which you participate."
 
-msgid "Number of processors"
-msgstr "Number of processors"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "On computers attached to multiple projects, the most recently modified preferences will be used."
 
-msgid "CPU"
-msgstr "CPU"
+msgid "Preferences last modified: @mod_time"
+msgstr "Preferences last modified: @mod_time"
 
-msgid "Number of times client has contacted server"
-msgstr "Number of times client has contacted server"
+msgid "every"
+msgstr "every"
 
-msgid "Last contact"
-msgstr "Last contact"
+msgid "Add"
+msgstr "Add"
 
-msgid "Serial number"
-msgstr "Serial number"
+msgid "My team"
+msgstr "My team"
 
-msgid "Timezone"
-msgstr "Timezone"
+msgid "You are a member of @team."
+msgstr "You are a member of @team."
 
-msgid "Platform ID"
-msgstr "Platform ID"
+msgid "View my team"
+msgstr "View my team"
 
-msgid "Task ID"
-msgstr "Task ID"
+msgid "Manage team"
+msgstr "Manage team"
 
-msgid "Workunit ID"
-msgstr "Workunit ID"
+msgid "View member list"
+msgstr "View member list"
 
-msgid "Host ID"
-msgstr "Host ID"
+msgid "Member names and emails"
+msgstr "Member names and emails"
 
-msgid "Application ID"
-msgstr "Application ID"
+msgid "View change history"
+msgstr "View change history"
 
-msgid "Application version"
-msgstr "Application version"
+msgid "See member activity"
+msgstr "See member activity"
 
-msgid "Claimed credit"
-msgstr "Claimed credit"
+msgid "Manage team message board"
+msgstr "Manage team message board"
 
-msgid "Client state"
-msgstr "Client state"
+msgid "Create or manage message board"
+msgstr "Create or manage message board"
 
-msgid "CPU time"
-msgstr "CPU time"
+msgid "Remove members"
+msgstr "Remove members"
 
-msgid "Run time"
-msgstr "Run time"
+msgid "Change founder"
+msgstr "Change founder"
 
-msgid "Exit status"
-msgstr "Exit status"
+msgid "Manage team admins"
+msgstr "Manage team admins"
 
-msgid "Granted credit"
-msgstr "Granted credit"
+msgid "Edit team info"
+msgstr "Edit team info"
 
-msgid "Outcome"
-msgstr "Outcome"
+msgid "Remove team"
+msgstr "Remove team"
 
-msgid "Received time"
-msgstr "Received time"
+msgid "Team forum"
+msgstr "Team forum"
 
-msgid "Report deadline"
-msgstr "Report deadline"
+msgid "A discussion forum has been set up for team members."
+msgstr "A discussion forum has been set up for team members."
 
-msgid "Sent"
-msgstr "Sent"
+msgid "Enter forum"
+msgstr "Enter forum"
 
-msgid "Server state"
-msgstr "Server state"
+msgid "Join team"
+msgstr "Join team"
 
-msgid "Stderr out"
-msgstr "Stderr out"
+msgid "Click here to become a member of @this_team"
+msgstr "Click here to become a member of @this_team"
 
-msgid "Validation state"
-msgstr "Validation state"
+msgid "Join this team"
+msgstr "Join this team"
 
-msgid "App ID"
-msgstr "App ID"
+msgid "Choose type"
+msgstr "Choose type"
 
-msgid "Canonical credit"
-msgstr "Canonical credit"
+msgid "Team name"
+msgstr "Team name"
 
-msgid "Canonical result ID"
-msgstr "Canonical result ID"
+msgid "Text only, no HTML tags"
+msgstr "Text only, no HTML tags"
 
-msgid "Created time"
-msgstr "Created time"
+msgid "Team name -- HTML version (optional)"
+msgstr "Team name -- HTML version (optional)"
 
-msgid "Error mask"
-msgstr "Error mask"
+msgid "You may use limited HTML tags"
+msgstr "You may use limited HTML tags"
 
-msgid "Minimum quorum"
-msgstr "Minimum quorum"
+msgid "Team website (optional)"
+msgstr "Team website (optional)"
 
-msgid "Max error tasks"
-msgstr "Max error tasks"
+msgid "Displayed on the team's page"
+msgstr "Displayed on the team's page"
 
-msgid "Max success tasks"
-msgstr "Max success tasks"
+msgid "Type of team"
+msgstr "Type of team"
 
-msgid "Max total tasks"
-msgstr "Max total tasks"
+msgid "Accept new members?"
+msgstr "Accept new members?"
 
-msgid "Needs validation"
-msgstr "Needs validation"
+msgid "Description of team"
+msgstr "Description of team"
 
-msgid "Initial replication"
-msgstr "Initial replication"
+msgid "Create a team"
+msgstr "Create a team"
 
-msgid "Target number of results"
-msgstr "Target number of results"
+msgid "Save team"
+msgstr "Save team"
 
-msgid "Application version ID"
-msgstr "Application version ID"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "If you're already running BOINC, select <i>Add\n      Project</i>."
 
-msgid "Plan class"
-msgstr "Plan class"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "If you're running a command-line version of BOINC,\n        first use the BOINC Manager software (elsewhere if necessary) to create an\n        an account at this project, then use that account to connect with the\n        command-line version."
 
-msgid "Version number"
-msgstr "Version number"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "If you're running a pre-5.0 version of BOINC, please\n        upgrade to a more recent version to create an account\n        at this project."
 
-msgid "Computer"
-msgstr "Computer"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "If you forgot your account's email address, or you can't receive email there:"
 
-msgid "App version ID"
-msgstr "App version ID"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "If you have run BOINC under the account, you can still access it. Here's how:"
 
-msgid "Consecutive valid tasks"
-msgstr "Consecutive valid tasks"
+msgid "BOINC documentation"
+msgstr "BOINC documentation"
 
-msgid "Number of tasks completed"
-msgstr "Number of tasks completed"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Go to the BOINC data directory on your computer (see !boinc_wiki for help finding this)."
 
-msgid "Max tasks per day"
-msgstr "Max tasks per day"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Find your account file for this project; it will have a name like %file (where the project URL is %url)."
 
-msgid "Number of tasks today"
-msgstr "Number of tasks today"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Open the file in a text editor like Notepad. You'll see something like:"
 
-msgid "Show IP address"
-msgstr "Show IP address"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Select and Copy the string between <authenticator> and </authenticator> (%auth in the above example)."
 
-msgid "hours"
-msgstr "hours"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Paste the string into the field below, and click OK."
 
-msgid "@count million ops/sec"
-msgstr "@count million ops/sec"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "You will now be logged in to your account; update the email and password of your account."
 
-msgid "@rate KiB/sec"
-msgstr "@rate KiB/sec"
+msgid "Log in with authenticator"
+msgstr "Log in with authenticator"
 
-msgid "@count days"
-msgstr "@count days"
+msgid "OK"
+msgstr "OK"
 
-msgid "Remove friend"
-msgstr "Remove friend"
+msgid "Post new topic"
+msgstr "Post new topic"
 
-msgid "Ban user"
-msgstr "Ban user"
+msgid "Create team message board"
+msgstr "Create team message board"
 
-msgid "Add as friend"
-msgstr "Add as friend"
+msgid "Message board title"
+msgstr "Message board title"
 
-msgid "Team"
-msgstr "Team"
+msgid "Minimum time between posts"
+msgstr "Minimum time between posts"
 
-msgid "Reply"
-msgstr "Reply"
+msgid "Seconds"
+msgstr "Seconds"
 
-msgid "Reply to this comment"
-msgstr "Reply to this comment"
+msgid "Minimum total credit to post"
+msgstr "Minimum total credit to post"
 
-msgid "Quote"
-msgstr "Quote"
+msgid "Minimum avg credit to post"
+msgstr "Minimum avg credit to post"
 
-msgid "Reply to this comment with quote"
-msgstr "Reply to this comment with quote"
+msgid "Allow public to read board?"
+msgstr "Allow public to read board?"
 
-msgid "Edit this comment"
-msgstr "Edit this comment"
+msgid "Create message board"
+msgstr "Create message board"
 
-msgid "Delete this comment"
-msgstr "Delete this comment"
+msgid "About message boards"
+msgstr "About message boards"
 
-msgid "Hide this comment"
-msgstr "Hide this comment"
+msgid "You may create a message board for use by @team"
+msgstr "You may create a message board for use by @team"
 
-msgid "Convert"
-msgstr "Convert"
+msgid "Only members may post"
+msgstr "Only members may post"
 
-msgid "Convert this comment to a new topic"
-msgstr "Convert this comment to a new topic"
+msgid "Only members may read (optional)"
+msgstr "Only members may read (optional)"
 
-msgid "Details"
-msgstr "Details"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Founder & Team Admins have moderator privileges"
 
 msgid "@ip_address (same the last @count times)"
 msgstr "@ip_address (same the last @count times)"
 
-msgid "commented on"
-msgstr "commented on"
-
-msgid "Make unsticky"
-msgstr "Make unsticky"
-
-msgid "Remove sticky status from this topic"
-msgstr "Remove sticky status from this topic"
+msgid "Revise or post comment"
+msgstr "Revise or post comment"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1497,321 +1448,304 @@ msgstr "Check the computers that are the same as @name (created on @date at @tim
 msgid "Computer @old_id has been merged successfully into @id."
 msgstr "Computer @old_id has been merged successfully into @id."
 
-msgid "started discussion"
-msgstr "started discussion"
-
-msgid "posted"
-msgstr "posted"
-
-msgid "Minimum value not met for @field"
-msgstr "Minimum value not met for @field"
+msgid "parent removed"
+msgstr "parent removed"
 
 msgid "Remove"
 msgstr "Remove"
 
-msgid "hidden"
-msgstr "hidden"
-
-msgid "Invalid data type for @field"
-msgstr "Invalid data type for @field"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "Authentication is required when changing E-mail address or setting new password."
 
-msgid "Request foundership"
-msgstr "Request foundership"
+msgid "Make unsticky"
+msgstr "Make unsticky"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "If the team founder is not active and you want to assume the role of founder, click below to request foundership of @this_team."
+msgid "Remove sticky status from this topic"
+msgstr "Remove sticky status from this topic"
 
-msgid "Initiate request"
-msgstr "Initiate request"
+msgid "Unhide"
+msgstr "Unhide"
 
-msgid "A BOINC account already exists for @email."
-msgstr "A BOINC account already exists for @email."
+msgid "Unhide this comment"
+msgstr "Unhide this comment"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Please be responsible in what you write and do not create posts which are offensive or insulting. Offensive posts or threads may be deleted by forum moderators without warning or discussion. Do not respond to offensive postings. Click on the \"report\" button at the bottom of the post to call it to the attention of the moderators."
+msgid "Unpublished"
+msgstr "Unpublished"
 
-msgid "this project"
-msgstr "this project"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Computers @old_ids have been merged successfully into @id."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "We also ask that you keep all discussion on the message boards related to @project or BOINC with the small exception of the Science message board where you are free to discuss anything relevant to the underlying science. Participants interested in broader discussions should post to unofficial forums for @project."
+msgid "Joined"
+msgstr "Joined"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "These message boards now support BBCode tags only."
+msgid "Credit"
+msgstr "Credit"
 
-msgid "Posts contributed"
-msgstr "Posts contributed"
+msgid "RAC"
+msgstr "RAC"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Profile awaiting moderator approval"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "No account exists for @email -- select \"Create new account\" to register"
 
-msgid "Approve profile"
-msgstr "Approve profile"
+msgid "started discussion"
+msgstr "started discussion"
 
-msgid "Approve this profile content"
-msgstr "Approve this profile content"
+msgid "commented on"
+msgstr "commented on"
 
-msgid "Edit profile"
-msgstr "Edit profile"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Password entered is not valid. Please verify that it is correct."
 
-msgid "Edit the content of this profile"
-msgstr "Edit the content of this profile"
+msgid "Minimum value not met for @field"
+msgstr "Minimum value not met for @field"
 
-msgid "Remove profile"
-msgstr "Remove profile"
+msgid "Invalid data type for @field"
+msgstr "Invalid data type for @field"
 
-msgid "Remove this profile content from the system"
-msgstr "Remove this profile content from the system"
+msgid "News"
+msgstr "News"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "The team founder has @count days to respond to your transfer request."
+msgid "Remove friend"
+msgstr "Remove friend"
 
-msgid "Reject profile"
-msgstr "Reject profile"
+msgid "ignore list"
+msgstr "ignore list"
 
-msgid "Reject this profile content"
-msgstr "Reject this profile content"
+msgid "here"
+msgstr "here"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username is on your !ignore_list. Click !here to view this post."
+
+msgid "hidden"
+msgstr "hidden"
+
+msgid "Unknown"
+msgstr "Unknown"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Invalid setting for \"%preference\""
 
-msgid "Reason for rejecting this profile"
-msgstr "Reason for rejecting this profile"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: comment posted to \"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author has posted a reply to \"!topic_name\"."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "This reason will be included in an email to the user. Please write a brief explanation of the problem and how to fix it."
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "To view this topic at !site, click here: \n!comment_url"
 
-msgid "Submit"
-msgstr "Submit"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "The team founder has @count days to respond to your transfer request."
+
+msgid "Unlock"
+msgstr "Unlock"
+
+msgid "Unlock this thread for comments"
+msgstr "Unlock this thread for comments"
 
 msgid "project"
 msgstr "project"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "No account exists for @email -- select \"Create new account\" to register"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email is not a well formed email address, please verify"
 
-msgid "Unknown"
-msgstr "Unknown"
+msgid "Please enter your email address"
+msgstr "Please enter your email address"
 
-msgid "My team"
-msgstr "My team"
+msgid "There is no account with that authenticator."
+msgstr "There is no account with that authenticator."
 
-msgid "You are a member of @team."
-msgstr "You are a member of @team."
+msgid "That authenticator is not valid."
+msgstr "That authenticator is not valid."
 
-msgid "View my team"
-msgstr "View my team"
+msgid "Send request"
+msgstr "Send request"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Invalid setting for \"%preference\""
+msgid "Friend request from !name [!site]"
+msgstr "Friend request from !name [!site]"
 
-msgid "Pending"
-msgstr "Pending"
+msgid "Message"
+msgstr "Message"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "You must earn @count more credits to be able to post comments on this site."
-
-msgid "Moderation"
-msgstr "Moderation"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n\nFollow the link below to view this request:\n!link\n\n!message\n\nThanks,\nThe !site team"
 
-msgid "Unvetted profiles"
-msgstr "Unvetted profiles"
+msgid "Cancel friend request"
+msgstr "Cancel friend request"
 
-msgid "Reason for banning this user"
-msgstr "Reason for banning this user"
+msgid "Please set the minimum time required between posts."
+msgstr "Please set the minimum time required between posts."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "This reason will be included in an email to the user. Please write a brief explanation of why the user is being banned."
-
-msgid "Duration of the ban"
-msgstr "Duration of the ban"
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "The number of days until the ban expires. Set to 0 to ban permanently."
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Please set the minimum total credit that a user must earn in order to post to this message board."
 
-msgid "Lift user ban"
-msgstr "Lift user ban"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Please set the minimum average credit that a user is required to have in order to post to this message board."
 
-msgid "You are banned from community participation until @date"
-msgstr "You are banned from community participation until @date"
+msgid "Edit message board"
+msgstr "Edit message board"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "Computers @old_ids have been merged successfully into @id."
+msgid "Save message board"
+msgstr "Save message board"
 
-msgid "A team named \"@name\" already exists."
-msgstr "A team named \"@name\" already exists."
+msgid "This is a team-only message board"
+msgstr "This is a team-only message board"
 
-msgid "Post topic"
-msgstr "Post topic"
+msgid "Maximum value exceeded for @field"
+msgstr "Maximum value exceeded for @field"
 
-msgid "Please enter your email address"
-msgstr "Please enter your email address"
+msgid "Approve request"
+msgstr "Approve request"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "Password entered is not valid. Please verify that it is correct."
+msgid "!name accepted your friend request [!site]"
+msgstr "!name accepted your friend request [!site]"
 
-msgid "Make founder"
-msgstr "Make founder"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name confirmed you as a friend on !site.\n\nFollow this link to view his or her profile:\n!link\n\n!message\n\nThanks,\nThe !site team"
 
-msgid "User of the day"
-msgstr "User of the day"
+msgid "posted"
+msgstr "posted"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: comment posted to \"!topic_name\""
+msgid "Add team admin"
+msgstr "Add team admin"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author has posted a reply to \"!topic_name\"."
+msgid "Enter email address"
+msgstr "Enter email address"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "To view this topic at !site, click here: \n!comment_url"
+msgid "Current team admins"
+msgstr "Current team admins"
 
-msgid "At least one application must be selected"
-msgstr "At least one application must be selected"
+msgid "About team admins"
+msgstr "About team admins"
 
-msgid "Account"
-msgstr "Account"
+msgid "Team admins can:"
+msgstr "Team admins can:"
 
-msgid "Log in"
-msgstr "Log in"
+msgid "Edit team information"
+msgstr "Edit team information"
 
-msgid "Forgot password"
-msgstr "Forgot password"
+msgid "View the team's join / quit history"
+msgstr "View the team's join / quit history"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Enter your email address to receive instructions for resetting your password."
+msgid "Moderate the team forum"
+msgstr "Moderate the team forum"
 
-msgid "Send"
-msgstr "Send"
+msgid "Remove members from the team"
+msgstr "Remove members from the team"
 
-msgid "Revise or post comment"
-msgstr "Revise or post comment"
+msgid "Disband a team if it has no members"
+msgstr "Disband a team if it has no members"
 
-msgid "discuss"
-msgstr "discuss"
+msgid "Team admins cannot:"
+msgstr "Team admins cannot:"
 
-msgid "News"
-msgstr "News"
+msgid "Change the team founder"
+msgstr "Change the team founder"
 
-msgid "Your community preferences have been updated."
-msgstr "Your community preferences have been updated."
+msgid "Add / Remove team admins"
+msgstr "Add / Remove team admins"
 
-msgid "Unlock"
-msgstr "Unlock"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "If a team admin quits the team, they cease to be a team admin. We recommend only selecting people you know and trust"
 
-msgid "Unlock this thread for comments"
-msgstr "Unlock this thread for comments"
+msgid "Lift user ban"
+msgstr "Lift user ban"
 
-msgid "Authenticator login"
-msgstr "Authenticator login"
+msgid "A team named \"@name\" already exists."
+msgstr "A team named \"@name\" already exists."
 
-msgid "Create content"
-msgstr "Create content"
+msgid "A BOINC account already exists for @email."
+msgstr "A BOINC account already exists for @email."
 
-msgid "authenticator-based login"
-msgstr "authenticator-based login"
+msgid "Make founder"
+msgstr "Make founder"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Enter your email address to receive instructions for resetting your password (or use the !authenticator_login)."
+msgid "Changing the team founder"
+msgstr "Changing the team founder"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "If you forgot your account's email address, or you can't receive email there:"
+msgid "Notes about changes in foundership:"
+msgstr "Notes about changes in foundership:"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "If you have run BOINC under the account, you can still access it. Here's how:"
+msgid "Any member of the team is eligible"
+msgstr "Any member of the team is eligible"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Go to the BOINC data directory on your computer (on Windows this is usually %path1 or %path2."
+msgid "Current founder becomes a normal user"
+msgstr "Current founder becomes a normal user"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Find your account file for this project; it will have a name like %file (where the project URL is %url)."
+msgid "Foundership can be requested by team members:"
+msgstr "Foundership can be requested by team members:"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Open the file in a text editor like Notepad. You'll see something like:"
+msgid "One request is allowed at a time"
+msgstr "One request is allowed at a time"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Select and Copy the string between <authenticator> and </authenticator> (%auth in the above example)."
+msgid "It must be 60 days since any previous request"
+msgstr "It must be 60 days since any previous request"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Paste the string into the field below, and click OK."
+msgid "Any active request must be older than 90 days"
+msgstr "Any active request must be older than 90 days"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "You will now be logged in to your account; update the email and password of your account."
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Current founder has 60 days to respond to a request"
 
-msgid "Log in with authenticator"
-msgstr "Log in with authenticator"
+msgid "BOINC-wide teams site"
+msgstr "BOINC-wide teams site"
 
-msgid "There is no account with that authenticator."
-msgstr "There is no account with that authenticator."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "This is a BOINC-wide team. Changes can be made at the !site."
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on Windows this is usually %path1 or %path2."
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "A team foundership change was already requested recently. Only one request is allowed within a period of 90 days."
 
-msgid "BOINC documentation"
-msgstr "BOINC documentation"
+msgid "@count days remaining"
+msgstr "@count days remaining"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Go to the BOINC data directory on your computer (see !boinc_wiki for help finding this)."
+msgid "Team name is required."
+msgstr "Team name is required."
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "@count days have elapsed since your request and the founder has not responded."
+msgid "Reason for banning this user"
+msgstr "Reason for banning this user"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "You now have @count days to assume foundership before another team member may submit a request."
-
-msgid "Assume foundership"
-msgstr "Assume foundership"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "This reason will be included in an email to the user. Please write a brief explanation of why the user is being banned."
 
-msgid "Unhide"
-msgstr "Unhide"
+msgid "Duration of the ban"
+msgstr "Duration of the ban"
 
-msgid "Unhide this comment"
-msgstr "Unhide this comment"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "The number of days until the ban expires. Set to 0 to ban permanently."
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email is not a well formed email address, please verify"
+msgid "Submit"
+msgstr "Submit"
diff --git a/locale/en/BOINC-Project-Generic.po b/locale/en/BOINC-Project-Generic.po
deleted file mode 100644
index 36326bf..0000000
--- a/locale/en/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6511 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2015-06-24 20:09+0000\n"
-"Last-Translator: Rom Walton\n"
-"Language-Team: English (http://www.transifex.com/projects/p/boinc/language/en/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: en\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "LANG_NAME_NATIVE"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "LANG_NAME_INTERNATIONAL"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Invitation Code"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "A valid invitation code is required to create an account."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Name"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identifies you on our web site. Use your real name or a nickname."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Email Address"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Must be a valid address of the form 'name at domain'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Password"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Must be at least %1 characters"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Confirm password"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Country"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Select the country you want to represent, if any."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Postal or ZIP Code"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Optional"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Create account"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Email address:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "forgot email address?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Password:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "forgot password?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Stay logged in"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Log in"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Bold text: [b]text[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Italic text: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Underline text: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Strikethrough text: [s]text[/s]  (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Quote text: [quote]text[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Code display: [code]code[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "List: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Ordered list: [list=]text[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Insert image: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Font color"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Default"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Dark Red"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Red"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Orange"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Brown"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Yellow"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Green"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Olive"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Cyan"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Blue"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Dark Blue"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indigo"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Violet"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Font size"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Font size: [size=x-small]small text[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Small"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Large"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Close all open bbCode tags"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Close Tags"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Oldest first"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Newest first"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Highest rated posts first"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Newest post first"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Most views first"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Most posts first"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Volunteer moderator"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Project administrator"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Project developer"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Project tester"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Volunteer developer"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Volunteer tester"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Project scientist"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Help desk expert"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Search for words in forum messages"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Search forums"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Advanced search"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Private messages"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Questions and Answers"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Message boards"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 message board"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Previous"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Next"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Author"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Message"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Send message"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Send %1 a private message"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Joined: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Posts: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Credit: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "You haven't read this message yet"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Unread"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Message %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "hidden"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Posted: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - in response to "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Edit"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Edit this message"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Last modified: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "This post is not shown because the sender is on your 'ignore' list.  Click %1here%2 to view this post"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Report this post as offensive"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Report as offensive"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Rating: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "rate: "
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Click if you like this message"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Rate +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Click if you don't like this message"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Rate -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Reply"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Post a reply to this message"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Quote"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Post a reply by quoting this message"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Hidden by a moderator"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Posted %1 by %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "You may not post or rate messages until %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Posts must be 'kid friendly': they may not contain\n            content that is obscene, hate-related,\n            sexually explicit or suggestive.\n        <li> No commercial advertisements.\n        <li> No links to web sites involving sexual content,\n            gambling, or intolerance of others.\n        <li> No messages intended to annoy or antagonize other people,\n            or to hijack a thread.\n        <li> No messages that are delibera [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Rules:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "More info"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Unhide"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Unhide this post"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Hide"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Hide this post"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Move"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Move post to a different thread"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Banish author"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Vote to banish author"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Vote not to banish author"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Start vote to banish author"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Delete"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Delete this post"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Only team members can post to the team message board"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "In order to create a new thread in %1 you must have a certain amount of credit. This is to prevent and protect against abuse of the system."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "You cannot create any more threads right now. Please wait a while before trying again. This delay has been enforced to protect against abuse of the system."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "This thread is locked. Only forum moderators and administrators are allowed to post there."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Can't post to a hidden thread."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Thread"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Posts"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Views"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Last post"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "New posts in the thread %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "New posts in subscribed thread"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "There are new posts in the thread '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Mark all threads as read"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Mark all threads in all message boards as read."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "No host"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Unavailable"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Home"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Work"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "School"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Update"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Computer information"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP address"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(same the last %1 times)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "External IP address"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Show IP address"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Domain name"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Product name"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Local Standard Time"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 hours"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Owner"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anonymous"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Created"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Total credit"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Average credit"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Cross project credit"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPU type"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Number of processors"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Coprocessors"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Operating System"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC version"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Memory"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Swap space"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Total disk space"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Free Disk Space"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Measured floating point speed"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 million ops/sec"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Measured integer speed"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Average upload rate"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Unknown"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Average download rate"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Average turnaround time"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 days"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Application details"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Show"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Tasks"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Number of times client has contacted server"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Last time contacted server"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Fraction of time BOINC is running"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "While BOINC is running, fraction of time computer has an Internet connection"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "While BOINC is running, fraction of time computing is allowed"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "While is BOINC running, fraction of time GPU computing is allowed"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Average CPU efficiency"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Task duration correction factor"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Location"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Delete this computer"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Merge duplicate records of this computer"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Merge"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Last contact"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Computer info"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rank"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Avg. credit"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Recent average credit"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operating system"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 processors)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Details"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Cross-project stats:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Host %1 has overlapping lifetime:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "Host %1 has an incompatible OS:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Host %1 has an incompatible CPU:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "same host"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Can't merge host %1 into %2 - they're incompatible"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Merging host %1 into host %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Couldn't update credit of new computer"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Couldn't update results"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Couldn't retire old computer"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Retired old computer %1"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Show:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "All computers"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Only computers active in past 30 days"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "Computer ID"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>version"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Merge computers by name"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Browser default"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Comment"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "News is available as an %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Inbox"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Write"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Send private message"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Preview"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "no such message"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "To"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "User IDs or unique usernames, separated with commas"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Subject"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Send message"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "sent you a private message; subject:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Private message%1 from %2, subject:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Couldn't create message"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "You are not allowed to send privates messages so often. Please wait some time before sending more messages."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "unread"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "For email notification, %1edit community prefs%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Private message"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Usage limits"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Use at most"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Keep some CPUs free for other applications. Example: 75% means use 6 cores on an 8-core CPU."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% of the CPUs"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Suspend/resume computing every few seconds to reduce CPU temperature and energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, and repeat."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% of CPU time"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "When to suspend"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Suspend when computer is on battery"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Check this to suspend computing on portables when running on battery power."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Suspend when computer is in use"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Check this to suspend computing and file transfers when you're using the computer."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Suspend GPU computing when computer is in use"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Check this to suspend GPU computing when you're using the computer."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'In use' means mouse/keyboard input in last"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "This determines when the computer is considered 'in use'."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minutes"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Suspend when no mouse/keyboard input in last"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "This allows some computers to enter low-power mode when not in use."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Suspend when non-BOINC CPU usage is above"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Suspend computing when your computer is busy running other programs."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Compute only between"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Compute only during a particular period each day."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Other"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Store at least"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Store at least enough tasks to keep the computer busy for this long."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "days of work"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Store up to an additional"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Store additional tasks above the minimum level.  Determines how much work is requested when contacting a project."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Switch between tasks about every"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "If you run several projects, BOINC may switch between them this often."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Request tasks to checkpoint at most every"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "This controls how often tasks save their state to disk, so that they can be restarted later."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "seconds"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Use no more than"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Limit the total amount of disk space used by BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Leave at least"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Limit disk usage to leave this much free space on the volume where BOINC stores data."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB free"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Limit the percentage of disk space used by BOINC on the volume where it stores data."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% of total"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "When computer is in use, use at most"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Limit the memory used by BOINC when you're using the computer."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "When computer is not in use, use at most"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Limit the memory used by BOINC when you're not using the computer."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Leave non-GPU tasks in memory while suspended"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "If checked, suspended tasks stay in memory, and resume with no work lost. If unchecked, suspended tasks are removed from memory, and resume from their last checkpoint."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Page/swap file: use at most"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Limit the swap space (page file) used by BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Limit download rate to"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Limit the download rate of file transfers."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/second"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Limit upload rate to"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Limit the upload rate of file transfers."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Limit usage to"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB every"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "days"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Transfer files only between"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Transfer files only during a particular period each day."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Skip data verification for image files"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Check this only if your Internet provider modifies image files. Skipping verification reduces the security of BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Confirm before connecting to Internet"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Useful only if you have a modem, ISDN or VPN connection."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Disconnect when done"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Computing"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disk"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Network"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "These preferences apply to all the BOINC projects in which you participate."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Unable to update preferences.%2 The values marked in red below were out of range or not numeric."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "computing"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Separate preferences for %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Edit preferences"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Remove"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Add separate preferences for %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "These settings apply to all computers using this account except"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "computers where you have set preferences locally using the BOINC Manager"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Android devices"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Switch view)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Combined preferences"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Primary (default) preferences"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Preferences last modified:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Add preferences"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Update preferences"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "yes"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "no"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Default computer location"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "New computers will use this location for computing and project preferences."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Resource share"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Determines the proportion of your computer's resources allocated to this project. For example, if you participate in two BOINC projects with resource shares of 100 and 200, the first will get 1/3 of your resources and the second will get 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accelerate GPU tasks by dedicating a CPU to each one?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Use CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Use ATI GPU"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Use NVIDIA GPU"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Use Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Run test applications?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "This helps us develop applications, but may cause jobs to fail on your computer"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Emails will be sent from %1; make sure your spam filter accepts this address."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Is it OK for %1 and your team (if any) to email you?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Should %1 show your computers on its web site?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Switch View)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Project specific settings"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "bad venue: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "bad subset: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "and"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Your profile will be made visible to other people as soon as it has been approved by the project. This may take up to a few days."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Your profile has been marked as unacceptable. It is not visible to other people. Please change it."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Database error"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "To prevent spam, profiles of users with an average credit of less than %1 are displayed only to logged-in users. We apologize for this inconvenience."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "User is banished"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "No profile exists for that user ID."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Edit your profile"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Your feedback on this profile"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recommend this profile for User of the Day:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "I %1like%2 this profile"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Alert administrators to an offensive profile:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "I %1do not like%2 this profile"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonymous platform"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Not in DB"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "pending"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "All"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "In progress"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Validation pending"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Validation inconclusive"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Valid"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Invalid"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Error"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactive"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Unsent"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Completed, waiting for validation"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Completed and validated"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Completed, marked as invalid"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Completed, can't validate"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Completed, validation inconclusive"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Completed, too late to validate"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Completed"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Couldn't send"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Cancelled by server"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Not started by deadline - canceled"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Error while downloading"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Error while computing"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Error while uploading"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Aborted by user"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Upload failed"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Timed out - no response"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Didn't need"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Validate error"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Abandoned"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Over"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Success"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Computation error"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Redundant result"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "No reply"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "New"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Downloading"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Processing"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Compute error"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Uploading"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Done"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Initial"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Not necessary"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Workunit error - check skipped"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Checked, but no consensus yet"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Task was reported too late to validate"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Couldn't send result"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Too many errors (may have bug)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Too many results (may be nondeterministic)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Too many total results"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "WU cancelled"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Canonical result is missing"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Unrecognized Error: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Task name"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "click for details"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Show IDs"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Show names"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Task"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Work unit"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Computer"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Sent"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Time reported<br />or deadline"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "explain"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Run time<br />(sec)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU time<br />(sec)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Credit"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Application"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Workunit"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Report deadline"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Received"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Server state"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Outcome"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Client state"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Exit status"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Run time"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU time"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Validate state"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Device peak FLOPS"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Application version"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Output files"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Stderr output"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "State"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Task name:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Search criteria (use one or more)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Key words"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Find teams with these words in their names or descriptions"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Type of team"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Show only active teams"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Search"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Requested by you, and founder response deadline has passed."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Complete foundership transfer"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Requested by you"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "founder response deadline is %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "None"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Initiate request"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Deferred"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Team info"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Description"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Web site"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Cross-project stats"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Type"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Message board"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Threads"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Join this team"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Note: if 'OK to email' is set in your project preferences, joining a team gives its founder access to your email address."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Not accepting new members"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Foundership change requested"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Respond by %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Team foundership change"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Members"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Founder"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Admins"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "New members in last day"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Total members"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "view"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Active members"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Members with credit"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Admin"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Previous %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Next %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "No such team."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "This operation requires foundership."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "This operation requires team admin privileges"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "WARNING: this is a BOINC-wide team. If you make changes here, they will soon be overwritten. Edit the %1BOINC-wide team%2 instead."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Privacy note%2: if you create a team, your project preferences (resource share, graphics preferences) will be visible to the public."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Team name, text version"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Don't use HTML tags."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Team name, HTML version"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "You may use %1limited HTML tags%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "If you don't know HTML, leave this box blank."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL of team web page, if any"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "without \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "This URL will be linked to from the team's page on this site."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Description of team"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Accept new members?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "User profile"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projects in which you are participating"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projects in which %1 is participating"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Project"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Click for user page"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Since"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Computing and credit"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Computers on this account"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "View"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Cross-project ID"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Cross-project statistics"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Account"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Team"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Cross-project"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certificate"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Stats on your cell phone"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Account information"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Email address"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Postal code"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 member since"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Change"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "email address"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "password"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "other account info"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "User ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Used in community functions"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Account keys"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Preferences"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "When and how BOINC uses your computer"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Computing preferences"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Message boards and private messages"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Community preferences"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Preferences for this project"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 preferences"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "View the profile of %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profile"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Community"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Create"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 posts"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Notifications"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Quit team"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Administer"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(foundership change request pending)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Member of team"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "find a team"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Founder but not member of"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Find friends"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Friends"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Computers"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Donor"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Contact"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "This person is a friend"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Cancel friendship"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Request pending"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Add as friend"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "user name cannot have leading or trailing white space"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "user name must be nonempty"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "user name may not contain HTML tags"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "log out"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "log in"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Create an account"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Server status page"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "A database error occurred while handling your request; please try again later."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Unable to handle request"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "hours"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "sec"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Link has timed out. Please click Back, refresh the page, and try again."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Use BBCode tags to format your text"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Project down for maintenance"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 is temporarily shut down for maintenance.  Please try again later."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Unable to connect to database - please try again later"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Unable to select database - please try again later"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "characters remaining"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Stay logged in on this computer"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Finish account setup"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "You must supply a name for your account"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML tags not allowed in name"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Edit %1 preferences"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Add %1 preferences for %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Applications"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 currently has the following applications. When you participate in %1, tasks for one or more of these applications will be assigned to your computer. The current version of the application will be downloaded to your computer. This happens automatically; you don't have to do anything."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Platform"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Version"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Average computing"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode tags"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BBCode tags let you format text in your profile and message-board postings.\nIt's similar to HTML, but simpler. The tags start with a [ (where you would\nhave used %1 in HTML) and end with ] (where you would have used %2 in\nHTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Examples"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Bold"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Italic"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Underline"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Strikethrough"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Superscript"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Big text"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Red text"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "link to website"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Quoted text"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "use for quoted blocks of text"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "use to display an image"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Code snippet here"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "use to display some code"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Pre-formatted text"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "use to display pre-formatted (usually monospaced) text"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Item 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Item2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Item 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "use to link to Trac ticket on BOINC website"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "use to link to Trac Wiki on BOINC website"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "If you don't close a tag or don't specify a parameter correctly,\nthe raw tag itself will display instead of the formatted text."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Can't create account"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Click your browser's <b>Back</b> button to try again."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Your reCAPTCHA response was not correct. Please try again."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "You must supply an invitation code to create an account."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "The invitation code you gave is not valid."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Invalid email address: you must enter a valid address of the form name at domain"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "There's already an account with that email address."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "New passwords are different"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Passwords may only include ASCII characters."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "New password is too short: minimum password length is %1 characters."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Couldn't create account"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, select Add Project, and enter an email address and password."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "This account will belong to the team %1 and will have the project preferences of its founder."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Picture"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Your profile picture is shown to the left."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 or less)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "To remove it from your profile, check this box:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "If you would like include a picture with your profile, click the \"Browse\" button and select a JPEG or PNG file. Please select images of %1 or less."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Language"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Select the language in which your profile is written:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Submit profile"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Create/edit profile"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "The format of your uploaded image is not supported."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Your %1profile%2 lets you share your opinions and background with the %3 community."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Your ReCaptcha response was not correct.  Please try again."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Your first response was flagged as spam by the Akismet anti-spam system.  Please modify your text and try again."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Your second response was flagged as spam by the Akismet anti-spam system.  Please modify your text and try again."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Your profile submission was empty."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Could not update the profile: database error"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Could not create the profile: database error"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Profile saved"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Congratulations! Your profile was successfully entered into our database."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "View your profile"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Create a profile"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "To prevent spam, an average credit of %1 or greater is required to create or edit a profile.  We apologize for this inconvenience."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Couldn't delete account"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Account deleted"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Your account has been deleted."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Confirm delete account"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Deleting your account will remove all of your\npersonal information from our servers,\nincluding your profile and message-board posts.\nNo jobs will be issued to any computers attached\nto this account."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "This cannot be undone.\nOnce your account has been deleted, you cannot get it back."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Are you sure you want to delete your account?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Yes"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Delete this account"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "No"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Do not delete this account"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "couldn't delete profile - please try again later"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Delete Confirmation"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Your profile has been deleted."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Profile delete confirmation"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Are you sure?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Deleted profiles are gone forever and cannot be recovered --\nyou will have to start from scratch\nif you want another profile in the future."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "If you're sure, click 'Yes'\nto remove your profile from our database."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Delete my profile"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Do not delete my profile"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transaction Completed"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Thank you for donating!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Your donation for has been completed."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Your donation will be added to the progress bar after confirmation by PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "You have canceled your donation."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "This project is not accepting donations."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donations"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "This project is accepting donations via\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "To donate, fill in the amount you want to donate using the field below.\n        PayPal is accepting multiple currencies\n        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n         Yen, Australian Dollars, New Zealand Dollars,\n        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n        Danish Kroner, Polish Zloty, Norwegian Kroner,\n        Hungarian Forint, Czech Koruna).\n        You can use included currency converter\n        to see t [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Amount you would like to donate"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Estimated value in"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anonymous donation"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Select this if you dont want your name and account number displayed in\ndonator lists.<br>If not checked, you will be recorded as user ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "To assign the donation with your user ID, please log in."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Proceed"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Donations are accepted through"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Download BOINC add-on software"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "You can download applications in several categories."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "These applications are not endorsed by %1 and you use them at your own risk."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "We do not provide instructions for installing these applications.\nHowever, the author may have provided some help on installing or uninstalling the application. \nIf this is not enough you should contact the author."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instructions for installing and running BOINC are %1here%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "This list is managed centrally at %1the BOINC website%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Change email address of account"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "New email address '%1' is invalid."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "New email address is same as existing address. Nothing is changed."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "There's already an account with that email address"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Invalid password."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "The email address of your account is now %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Please %1validate this email address%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "We can't update your email address due to a database problem.  Please try again later."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Change email address"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Change the email address of your account"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "New email address"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Must be a valid address of the form 'name at domain'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "No password?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Confirm reset"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "This action will erase any changes you have made in your community preferences. To cancel, click your browser's Back button."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Reset preferences"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Error: Not the right kind of file, only PNG and JPEG are supported."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Your signature was too long, please keep it less than 250 characters."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "No such user:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "How should we notify you of new private messages, friend requests, posts in subscribed threads, and other events?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "On my Account page (no email)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Immediately, by email"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "In a single daily email"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Message-board identity"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "An image representing you on the message boards."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Don't use an avatar"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Use a Globally Recognized Avatar provided by %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Use this uploaded avatar:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Avatar preview"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "This is how your avatar will look"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Signature for message board posts"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Check out %1various free services%2\n<br> providing dynamic 'signature images'\n<br> showing your latest credit info, project news, etc."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Attach signature by default"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Signature preview"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "This is how your signature will look in the forums"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Message display"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "What to display"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Hide avatar images"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Hide signatures"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Show images as links"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Open links in new window/tab"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Highlight special users"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Display this many messages per page"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "How to sort"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Threads:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Posts:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Jump to first new post in thread automatically"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Don't move sticky posts to top"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Message filtering"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Filtered users"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignore message board posts and private messages from these users."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "User ID (For instance: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Add user to filter"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Click here to update preferences"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Reset"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Or click here to reset preferences to the defaults"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "We can't update your password due to a database problem. Please try again later."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Change password"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Your password has been changed."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "New password"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "New password, again"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML tags are not allowed in your name."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "You must supply a name for your account."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Couldn't update user info."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Edit account information"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Name %1 real name or nickname%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 of your web page; optional%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Postal (ZIP) code %1 Optional%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Update info"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Server states"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "A tasks's <b>server state</b> indicates whether the task has been sent to a computer, and if so whether the computer has finished it. Possible values are:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "The task is not ready to send (for example, because its input files are unavailable)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "The task is ready to send, but hasn't been sent yet."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "In Progress"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "The task has been sent; waiting for completion."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "The task has been sent to a computer and either it has timed out or the computer has reported its completion."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Outcomes"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. Possible values are:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "The task was sent to a computer, but the computer has not yet completed the work and reported the outcome."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "A computer completed and reported the task successfully."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "The server wasn't able to send the task to a computer (perhaps because its resource requirements were too large)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Client error"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "The task was sent to a computer and an error occurred."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "The task was sent to a computer and no reply was received within the time limit."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "The task wasn't sent to a computer because enough other tasks were completed for this workunit."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "The task was reported but could not be validated, typically because the output files were lost on the server."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Client states"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "A result's <b>client state</b> indicates the stage of processing at which an error occurred."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "The computer has not yet completed the task."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "The computer completed the task successfully."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "The computer couldn't download the application or input files."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "An error occurred during computation."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "The computer couldn't upload the output files."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Time reported and deadline"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "A task's <b>Time reported or deadline</b> field depends on whether the task has been reported yet:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Already reported"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "The date/time it was reported"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Not reported yet, deadline in the future"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Deadline, shown in green."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Not reported yet, deadline in the past"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Deadline, shown in red."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Unknown field"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Email preview"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Your email will appear as follows:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Send email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Use your browser's back button to return to message form"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Sending emails"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "email sent successfully to %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "failed to send email to %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Thanks for telling your friends about %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "You forgot to enter your friends' names and/or email addresses; Please %1return to the form%2 and enter them."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "This project hasn't created an email message - please notify its administrators"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Tell your friends about %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Help us by telling your friends, family and coworkers about %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Fill in this form with the names and email addresses of people you think might be interested in %1. We'll send them an email in your name, and you can add your own message if you like."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Your name:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Your email address:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Friend's name:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Friend's email address:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Additional message (optional)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Send"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "You are not authorized to banish users."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Banishment Vote"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "No user with this ID found."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "User is already banished"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Are you sure you want to banish %1?<br/>This will prevent %1 from posting for chosen time period.<br/>It should be done only if %1 has consistently exhibited trollish behavior."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Select the reason category, optionally write a longer description of why the user should be banished."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Category"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Obscene"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Flame/Hate mail"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "User Request"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Reason"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Mailed if nonempty"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Proceed with vote"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "You must specify an action..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "You can no longer edit this post.<br/>Posts can only be edited at most %1 minutes after they have been created."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "You are not authorized to edit this post."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Edit your message"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Title"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Add my signature to this post"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Not visible to you"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Team message board for %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "New thread"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Add a new thread to this forum"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "This message board is available as an %1RSS feed%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "This thread is hidden"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "This thread is sticky and locked, and you haven't read it yet"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "sticky/locked/unread"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "This thread is sticky and you haven't read it yet"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "sticky/unread"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "You haven't read this thread yet, and it's locked"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "unread/locked"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "You haven't read this thread yet"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "This thread is sticky and locked"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "sticky/locked"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "This thread is sticky"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "sticky"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "This thread is locked"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "locked"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "You read this thread"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "read"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Questions and answers"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Talk live via Skype with a volunteer, in any of several languages. Go to %1BOINC Online Help%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Topic"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Questions"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Discussion among members of %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Message boards"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "If you have a question or problem, please use the %1Questions & Answers%2 section of the message boards."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Subscribed threads"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Moderate post"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Hide post"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Commercial spam"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Doublepost"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Move post"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "Destination thread ID:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Banish user"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Ban duration"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 hours"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 day"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 week"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 weeks"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 month"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Forever"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Optional explanation %1 This is included in email to user.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "You are not authorized to moderate this post."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Can't move to different category type"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Can't move to different category"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Not authorized to banish users"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Banishment"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "User %1 has been banished."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Action failed: possible database problem"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "not authorized"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Moderate thread '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Select the reason category, or write a longer description of why you're hiding or locking the thread; then press OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Current forum"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Destination forum"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "New title:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Only project admins may create a thread here. However, you may reply to existing threads."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Your message was flagged as spam by the Akismet anti-spam system. Please modify your text and try again."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Create new thread"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Create a new thread"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Remember to add a title"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Show this item as a Notice in the BOINC Manager"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Do so only for items likely to be of interest to all volunteers."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Rating offline"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "This function is turned off by the project"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "You need more average or total credit to rate a post."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "You have already rated this post."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Return to thread"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Input Recorded"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Your input has been recorded. Thanks for your help."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Vote Registered"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Your rating has been recorded. Thanks for your input."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Vote Submission Problem"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Your post has been flagged as spam by the Akismet anti-spam system. Please modify your text and try again."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Post to thread"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Message:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "reply to %1Message ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Post reply"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Add my signature to this reply"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "You need more average or total credit to report a post."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Report Registered"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Your report has been recorded. Thanks for your input."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "A moderator will now look at your report and decide what will happen - this may take a little while, so please be patient"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Report a forum post"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Before reporting this post, consider using the +/- rating system instead. If enough users rate a post negatively it will eventually be hidden.<br />You can find the rating system at the bottom of the post."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Report post"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Why do you find the post offensive: %1Please include enough information so that a person that\nhas not yet read the thread will quickly be able to identify the issue.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Report not registered"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Your report could not be recorded. Please wait a while and try again."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "If this is not a temporary error, please report it to the project developers."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS feed"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "This message board is available as an RSS feed."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Options:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Include only posts by user ID %1 (default: all users)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Include only posts from the last %1 days (default: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Threads only: %1 (Include only the first post of every thread)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Forum search"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Search query"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Search for keywords:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Posts that contain all the specified words will be displayed"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "For example: \"screensaver freeze\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Search for author ID:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Only posts by this author will be displayed"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "For example: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Search options"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Search limits"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Search at most this many days back in time"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 months"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 year"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "no limit"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Only display posts from this forum"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Sort by"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Start the search"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Forum search results"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Thread titles matching your query:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Messages matching your query:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Sorry, couldn't find anything matching your search query. You can try to broaden your search by using less words (or less specific words)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "You can also %1try the same search on Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Perform another search"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Subscription successful"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "You are now subscribed to %1. You will be notified whenever there is a new post."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Subscription failed"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "We are currently unable to subscribe you to %1. Please try again later.."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Unsubscription successful"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "You are no longer subscribed to %1. You will no longer receive notifications for this thread."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Unsubscription failed"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "We are currently unable to unsubscribe you from %1. Please try again later.."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Unknown subscription action"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "This forum is not visible to you."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "This thread has been hidden by moderators."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "My question was answered"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Click here if your question has been adequately answered"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "I've also got this question"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Add a new message to this thread"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Unsubscribe"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "You are subscribed to this thread.  Click here to unsubscribe."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Subscribe"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Click to get email when there are new posts in this thread"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Unhide this thread"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Hide this thread"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Make unsticky"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Make this thread not sticky"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Make sticky"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Make this thread always appear at top of forum"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Unlock"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Allow new posts in this thread"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Lock"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Don't allow new posts in this thread"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Move this thread to a different forum"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Edit title"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Edit thread title"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Delete thread permanently"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Export as Notice"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Don't export"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Don't export this news item as a Notice"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Sort"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Thread status updated"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "The status has been updated."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Posts by %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Already friends"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "You requested friendship with %1 on %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "This request is still pending confirmation."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 is not accepting friendship requests from you"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "You can't be friends with yourself"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Add friend"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "You have asked to add %1 as a friend. We will notify %1 and will ask him/her to confirm that you are friends."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Add an optional message here:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Friend request sent"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "We have notified %1 of your request."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Please log in as %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "You must log in as %1 to view this friend request"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Friend request"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 has requested friendship with you."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 says: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Accept friendship"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Click accept if %1 is in fact a friend"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Decline"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Click decline if %1 is not a friend"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Friendship confirmed"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Your friendship with %1 has been confirmed."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Friendship declined"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "You have declined friendship with %1"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Notification not found"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Friend confirmed"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "You are now friends with %1."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Cancel friendship?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Are you sure you want to cancel your friendship with %1?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Stay friends"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Friendship cancelled"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Your friendship with %1 has been cancelled."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) If you know your account's email address, and you can receive email there:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Enter the email address below, and click OK. You will be sent email instructions for resetting your password."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) If you forgot your account's email address, or you can't receive email there:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "If you have run BOINC under this account, you can still access it. Here's how:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Go to the BOINC data directory on your computer (its location is written to the Event Log at startup)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Find your account file for this project; it will be named <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Open the file in a text editor like Notepad. You'll see something like"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Select and Copy the string between %1 and %2 (%3 in the above example)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Paste the string into the field below, and click OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "You will now be logged in to your account; update the email and password of your account."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Log in with authenticator"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Forgot your account info?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "No GPU tasks reported"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Top GPU models"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "The following lists show the most productive GPU models on different platforms.  Relative speeds, measured by average elapsed time of tasks, are shown in parentheses."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Welcome to %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "View and edit your account preferences using the links below."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "If you have not already done so, %1download BOINC client software%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Your account"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonymous platform, missing app"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "anonymous platform"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Missing app version"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Missing app"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Missing platform"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Number of tasks completed"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Max tasks per day"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Number of tasks today"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Consecutive valid tasks"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Average processing rate"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Application details for host %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "We have no record of that computer."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "You can not delete our record of this computer because our database still contains work for it. You must wait a few days until the work for this computer has been deleted from the project database."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Delete record of computer"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Record deleted."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Return to list of your computers"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Merge computer records"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Merge computers"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Sometimes BOINC assigns separate identities to the same computer by mistake. You can correct this by merging old identities with the newest one."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "No hosts are eligible for merging with this one."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Show details"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Check the computers that are the same as %1 (created %2, computer ID %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "name"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "created"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "computer ID"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "no hostname"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Merge hosts"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Updating computer credit"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Host credit updated"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Host venue updated"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "none"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "The venue of this host has been set to %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "This change will take effect the next time the host communicates with this project."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Return to host page"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Computers belonging to %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Computers hidden"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "This user has chosen not to show information about his or her computers."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Your computers"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Allowed HTML tags"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "The following HTML tags are allowed in team descriptions:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "bold"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "italics"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlink"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paragraph"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "break"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "preformatted"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "image; height cannot exceed 450 pixels. Please do not link to images without permission of the web site where the image is hosted."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "You can also use ampersand notation for special characters."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Read our rules and policies"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Run %1 only on authorized computers"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Run %1 only on computers that you own, or for which you have obtained the owner's permission. Some companies and schools have policies that prohibit using their computers for projects such as %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "How %1 will use your computer"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "When you run %1 on your computer, it will use part of the computer's CPU power, disk space, and network bandwidth. You can control how much of your resources are used by %1, and when it uses them."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "The work done by your computer contributes to the goals of %1, as described on its web site. The application programs may change from time to time."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Privacy policy"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Your account on %1 is identified by a name that you choose. This name may be shown on the %1 web site, along with a summary of the work your computer has done for %1. If you want to be anonymous, choose a name that doesn't reveal your identity."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "If you participate in %1, information about your computer (such as its processor type, amount of memory, etc.) will be recorded by %1 and used to decide what type of work to assign to your computer. This information will also be shown on %1's web site. Nothing that reveals your computer's location (e.g. its domain name or network address) will be shown."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "To participate in %1, you must give an address where you receive email. This address will not be shown on the %1 web site or shared with organizations. %1 may send you periodic newsletters; however, you can opt out at any time."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Private messages sent on the %1 web site are visible only to the sender and recipient.  %1 does not examine or police the content of private messages.  If you receive unwanted private messages from another %1 user, you may add them to your %2message filter%3.  This will prevent you from seeing any public or private messages from that user."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "If you use our web site forums you must follow the %2posting guidelines%3.  Messages posted to the %1 forums are visible to everyone, including non-members.  By posting to the forums, you are granting irrevocable license for anyone to view and copy your posts."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Is it safe to run %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Any time you download a program through the Internet you are taking a chance: the program might have dangerous errors, or the download server might have been hacked. %1 has made efforts to minimize these risks. We have tested our applications carefully. Our servers are behind a firewall and are configured for high security. To ensure the integrity of program downloads, all executable files are digitally signed on a secure computer not connected to the Internet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "The applications run by %1 may cause some computers to overheat. If this happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 was developed by %2. BOINC was developed at the University of California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Liability"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 and %2 assume no liability for damage to your computer, loss of data, or any other event or condition that may occur as a result of participating in %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Other BOINC projects"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Other projects use the same platform, BOINC, as %1. You may want to consider participating in one or more of these projects. By doing so, your computer will do useful work even when %1 has no work available for it."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "These other projects are not associated with %1, and we cannot vouch for their security practices or the nature of their research. Join them at your own risk."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Language selection"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "This web site is available in several languages. The currently selected language is %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Normally the choice of language is determined by your browser's language setting, which is: %1.  You can change this setting using:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Tools/Options/General"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Tools/Internet Options/Languages"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Or you can select a language by clicking on one of the links.  This will send your browser a cookie; make sure your browser accepts cookies from our domain."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Language name (click to select)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Use browser language setting"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Translations are done by volunteers.  If your native language is not here, %1you can provide a translation%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "or %1create an account%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Processing %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Merged %1 into %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Return to the list of your computers"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "This operation merges computers based on their domain name.\n        <p>\n        For each domain name, it will merge all older computers\n        having that name with the newest computer having that name.\n        Incompatible computers will not be merged.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Go ahead and do this"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Return to the list of computers"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nTo maximize discussion and flow of information,\nour message boards are moderated.\nMessage board postings are subject to the following posting rules:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nModerators may delete posts that violate any of these rules.\nThe authors of deleted posts will be notified via email.\nGross offenders may have their ability to post messages temporarily revoked\n(though to prevent abuse only project administrators have the ability to do so).\nAdditional kinds of bad behavior (\"bugging\" posts to trap the\nIP addresses of other participants, excessive thread creation to spam\nthe forums, etc.), while not listed in the formal rules, may s [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Pending credit"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Result ID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "Workunit ID"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "Host ID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Claimed credit"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Pending credit: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Block messages from this user"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Block user"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Your message has been sent."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "You have no private messages."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Sender and date"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Reply to this message"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Delete this message"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Select all"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Unselect all"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Delete selected messages"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Sender"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Date"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "You need to fill all fields to send a private message"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Your message was flagged as spam\n                by the Akismet anti-spam system.\n                Please modify your text and try again."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Could not find user with id %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Could not find user with username %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 is not a unique username; you will have to use user ID"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "User %1 (ID: %2) is not accepting private messages from you."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "No such user"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Really block %1?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Are you really sure you want to block user %1 from sending you private messages?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Please note that you can only block a limited amount of users."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Once the user has been blocked you can unblock it using forum preferences page."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "No, cancel"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "no such user"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "User %1 blocked"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "User %1 has been blocked from sending you private messages."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "To unblock, visit %1message board preferences%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Unknown action"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Your preferences have been updated, and\n          will take effect when your computer communicates with %1\n          or you issue the %2Update%3 command from the BOINC Manager."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Your preferences have been reset to the defaults, and\n          will take effect when your computer communicates with %1\n          or you issue the %2Update%3 command from the BOINC Manager."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 for %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Back to preferences"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Confirm delete preferences"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Are you sure you want to delete your separate %1 preferences for %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Remove preferences"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Cancel"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profiles"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Profiles%2 let individuals share backgrounds and opinions with the %3 community."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Explore the diversity of your fellow volunteers, and contribute your own views for others to enjoy."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "If you haven't already, you can %1create your own user profile%2 for others to see!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "User of the Day"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "User Profile Explorer"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "View the %1User Picture Gallery%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Browse profiles %1by country%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random without pictures%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Alphabetical profile listings:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Search profile text"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "No profiles"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "No profiles matched your query."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Invalid vote type:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Vote Recorded"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Thank you"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Your recommendation has been recorded."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Your vote to reject this profile has been recorded."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Return to profile."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Profiles containing '%1'"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "User name"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Joined project"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Recent credit"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "No profiles found containing '%1'"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "No such task:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "This feature is turned off temporarily"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "No computer with ID %1 found"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "No access"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Missing user ID or host ID"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "No tasks to display"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "User of the day"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Not Running"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Running"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Disabled"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Project status"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Server status"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Program"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Host"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Database schema version: "
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Computing status"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Users"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Tasks by application"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Runtime of last 100 tasks in hours: average, min, max"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Users in last 24 hours"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Computer %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistics and leaderboards"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Statistics for %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Top participants"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Top teams"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Top computers"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU models"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU models"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "More detailed statistics for %1 and other BOINC-based projects are available at several web sites:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "You can also get your current statistics in the form of a \"signature image\":"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Additionally you can get your individual statistics summed across all BOINC projects from several sites; see your %1home page%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Teams"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 participants may form %2teams%3."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "You may belong to only one team. You can join or quit a team at any time."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Each team has a %1founder%2 who may:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "access team members' email addresses"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "edit the team's name and description"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "add or remove team admins"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "remove members from the team"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "disband a team if it has no members"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "To join a team, visit its team page and click %1Join this team%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Find a team"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "All teams"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 teams"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Create a new team"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "If you cannot find a team that is right for you, you can %1create a team%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Remove Team Admin status from this member"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Add or remove Team Admins"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "You can select team members as 'Team Admins'. Team Admins can:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Edit team information (name, URL, description, country)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "View the team's join/quit history"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Moderate the team forum, if any (admins get email notification of moderation events and red X reports)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Team Admins cannot:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Change the team founder"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Remove members"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "If a Team Admin quits the team, they cease to be a Team Admin."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "We recommend that you select only people you know and trust very well as Team Admins."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "There are currently no Team Admins"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Current Team Admins"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Became Team Admin on"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Add Team Admin"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Email address of team member:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Add"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "failed to remove admin"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "User is not member of team"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 is already an admin of %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Couldn't add admin"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "No such team"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "no such team"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "User is not a member of %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Changing founder of %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 is now founder of %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Change founder of %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Team member %1 requested this team's foundership on %2, but left the team, thus canceling the request."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Team member %1 has requested this team's foundership. This may be because you left the team or haven't had contact with the team for a long time."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "decline request"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n                  To accept the request, assign foundership to %3 using the form below."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "No transfer request is pending."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "To assign foundership of this team to another member, check the box next to member name and click <strong>Change founder</strong> below."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "New founder?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Change founder"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "There are no users to transfer team to."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "You must choose a non-blank team name"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "A team named %1 already exists - try another name"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Could not create team - please try later."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Create a team"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "You belong to %1. You must %2quit this team%3 before creating a new one."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Not founder or admin"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Team history for %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "When"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "User"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Action"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Total credit at time of action"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "bad country"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "The name '%1' is being used by another team."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Must specify team name"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Could not update team - please try again later."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Edit %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Update team info"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 Email List"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Member list of %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Show as plain text"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Create Message Board"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "You may create a message board for use by %1."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Only team members will be able to post."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "At your option, only members will be able to read."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "You and your Team Admins will have moderator privileges."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Create a message board for %1"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "Team already has a message board"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Team Message Board"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Minimum time between posts (seconds)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Minimum total credit to post"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Minimum average credit to post"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Submit"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Remove your team's message board."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Really remove message board?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Are you sure you want to remove your team's message board? All threads and posts will be permanently removed. (You may, however, create a new message board later)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Yes - remove message board"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Message board removed"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Your team's message board has been removed. You may now %1create a new one%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Team Message Board Updated"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Update successful"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Update failed"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "Team has no forum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "You must be a member of a team to access this page."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Requesting foundership of %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "The current founder has been notified of your request by email and private message.<br /><br />\n                       If the founder does not respond within 60 days you will be allowed to become the founder."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Foundership request not allowed now"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Assumed foundership of %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Congratulations, you are now the founder of team %1. Go to %2Your Account page%3 to find the Team Admin options."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Decline founder change request"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "The foundership request from %1 has been declined."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "There were no foundership requests."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "undefined action %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Return to team page"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "You need to be a member of a team to access this page."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Request foundership of %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "You are now founder of team %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "You requested the foundership of %1 on %2."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "60 days have elapsed since your request, and the founder has not responded. You may now assume foundership by clicking here:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Assume foundership"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "The founder was notified of your request. If he/she does not respond by %1 you will be given an option to become founder."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n                       Are you sure you want to request foundership?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Request foundership"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Founder change has already been requested by %1 on %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "A foundership change was requested during the last 90 days, so new requests are not allowed. Please try again later."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "The team %1 is not joinable."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Already a member"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "You are already a member of %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Couldn't join team - please try again later."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Joined %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "You have joined %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Join %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Please note:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Joining a team gives its founder access to your email address."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Joining a team does not affect your account's credit."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Join team"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Search Results"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Search results for '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "You may view these teams' members, statistics, and information."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "More than 100 teams match your search. The first 100 are shown."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "End of results. %1 If you cannot find the team you are looking for, you may %2create a team%3 yourself."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Team administration for %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Edit team info"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Change team name, URL, description, type, or country"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Member list:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "text"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "View member names and email addresses"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "View change history:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "See when members joined or quit this team"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Respond to foundership request."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "If you don't respond by %1, %2 may assume foundership of this team."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Remove inactive or unwanted members from this team"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Transfer foundership to another member"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Add/remove Team Admins"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Give selected team members Team Admin privileges"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Remove team"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Allowed only if team has no members"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Create or manage a team message board"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "To have this team created on all BOINC projects (current and future) you can make it into a %1BOINC-wide team%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Team admins are encouraged to join and participate in the Google %1boinc-team-founders%2 group."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Can't delete non-empty team"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Team %1 deleted"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limit exceeded:  Can only display the first 1000 members."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Members of %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Unable to quit team"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Team doesn't exist, or you don't belong to it."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Quit %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Please note before quitting a team:</strong>\n         <ul>\n         <li>If you quit a team, you may rejoin later, or join any other team you desire\n         <li>Quitting a team does not affect your personal credit statistics in any way.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Quit Team"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Removing users from %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 is not a member of %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 has been removed"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Remove members from %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Remove?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Name (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "No members are eligible for removal."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Remove users"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Team name"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Team search results"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "No teams were found matching your criteria. Try another search."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Or you can %1create a new team%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "The following teams match one or more of your search criteria.\n            To join a team, click its name to go to the team page,\n               then click %1Join this team%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Change your search"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "You can team up with other people with similar interests, or from the same country, company, or school."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Use this form to find teams that might be right for you."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1I'm not interested%2 in joining a team right now."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limit exceeded - Sorry, first %1 items only"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top hosts"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Top %1 teams"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "There are no %1 teams"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Participant since"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "No user of the day has been chosen."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "User of the Day for %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filters"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "User name starts with"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Any"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "With profile?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Either"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "On a team?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Ordering"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Decreasing sign-up time"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Decreasing average credit"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Decreasing total credit"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "search string must be at least 3 characters"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "User search results"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Joined"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "No users match your search criteria."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "User not found!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Account Data<br/>for %1<br/>Time:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Team:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Team TotCred:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Team AvgCred:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Team: None"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Validate BOINC email address"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Please visit the following link to validate the email address of your %1 account:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Validate email sent"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "An email has been sent to %1. Visit the link it contains to validate your email address."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "No such user."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Error in URL data - can't validate email address"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Database update failed - please try again later."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Validate email address"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "The email address of your account has been validated."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "This user has no profile"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profile: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Account data"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "You can access your account either by using your email address and password,\n    or by using an assigned 'account key'.\n    Your account key is:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "This key can be used to:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "log in to your account on the web"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "to attach a computer to your account without using the BOINC Manager.\n       To do so, install BOINC,\n       create a file named %1 in the BOINC\n       data directory, and set its contents to:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Weak account key"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "Your 'weak account key' can be used to attach computers to your account\n    as described above, but cannot be used to log in to your account or change it in any way.\n    If you want to attach untrusted or insecure computers to your account,\n    do so using your weak account key.\n    Your weak account key is:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "If you change your password, your weak account key changes, and your previous weak account key becomes invalid."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "can't find workunit"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Workunit %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "application"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "canonical result"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "granted credit"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tasks in progress"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "suppressed pending completion"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "minimum quorum"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "initial replication"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "max # of error/total/success tasks"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "errors"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validation"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Pending"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Main page"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Generated"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Your personal background."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Tell us about yourself. You could tell us where you're from, your age, occupation, hobbies, or anything else about yourself."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Your opinions about %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Tell us your thoughts about %1<ol>\n    <li>Why do you run %1?\n    <li>What are your views about the project?\n    <li>Any suggestions?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Color scheme for graphics"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maximum CPU % for graphics%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Run only the selected applications"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Only get tasks for certain applications. Useful to focus on particular applications, or to exclude them."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "If no work for selected applications is available, accept work from other applications?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Use faster non-graphical applications if available?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(all applications)"
diff --git a/locale/en/BOINC-Web.po b/locale/en/BOINC-Web.po
index 61ba69d..bff0756 100644
--- a/locale/en/BOINC-Web.po
+++ b/locale/en/BOINC-Web.po
@@ -10,10 +10,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2015-06-24 20:09+0000\n"
+"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
+"PO-Revision-Date: 2015-07-10 02:01+0000\n"
 "Last-Translator: Rom Walton\n"
-"Language-Team: English (http://www.transifex.com/projects/p/boinc/language/en/)\n"
+"Language-Team: English (http://www.transifex.com/p/boinc/language/en/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -101,7 +101,7 @@ msgstr "System requirements"
 msgid "Release notes"
 msgstr "Release notes"
 
-#: download.php:179 index.php:89
+#: download.php:179 index.php:93
 msgid "Help"
 msgstr "Help"
 
@@ -218,153 +218,103 @@ msgid "News"
 msgstr "News"
 
 #. "Volunteer" is used as a verb
-#: index.php:85
+#: index.php:89
 msgid "Volunteer"
 msgstr "Volunteer"
 
-#: index.php:88
+#: index.php:92
 msgid "Download"
 msgstr "Download"
 
-#: index.php:90 index.php:132 index.php:184
+#: index.php:94 index.php:138
 msgid "Documentation"
 msgstr "Documentation"
 
-#: index.php:91
+#: index.php:95
 msgid "Add-ons"
 msgstr "Add-ons"
 
-#: index.php:92
+#: index.php:96
 msgid "Links"
 msgstr "Links"
 
-#: index.php:97
+#: index.php:101
 msgid ""
 "Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
 " diseases, study global warming, discover pulsars, and do many other types "
 "of scientific research.  It's safe, secure, and easy:"
 msgstr "Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure diseases, study global warming, discover pulsars, and do many other types of scientific research.  It's safe, secure, and easy:"
 
-#: index.php:99
+#: index.php:103
 msgid "Choose projects"
 msgstr "Choose projects"
 
-#: index.php:100
+#: index.php:104
 msgid "Download BOINC software"
 msgstr "Download BOINC software"
 
-#: index.php:101
+#: index.php:105
 msgid "Enter an email address and password."
 msgstr "Enter an email address and password."
 
-#: index.php:105
+#: index.php:109
 #, php-format
 msgid ""
 "Or, if you run several projects, try an %saccount manager%s such as "
 "%sGridRepublic%s or %sBAM!%s. "
 msgstr "Or, if you run several projects, try an %saccount manager%s such as %sGridRepublic%s or %sBAM!%s. "
 
-#: index.php:130
+#: index.php:136
 msgid "Compute with BOINC"
 msgstr "Compute with BOINC"
 
-#: index.php:133
+#: index.php:139
 msgid "Software updates"
 msgstr "Software updates"
 
-#: index.php:140
+#: index.php:146
 msgid ""
-"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving"
-" you the computing power of thousands of CPUs."
-msgstr "%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving you the computing power of thousands of CPUs."
+"%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
+"giving you the power of thousands of CPUs and GPUs."
+msgstr "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, giving you the power of thousands of CPUs and GPUs."
 
-#: index.php:144
+#: index.php:150
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing Center%4."
 
-#: index.php:149
+#: index.php:155
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 
-#: index.php:161
-msgid "The BOINC project"
-msgstr "The BOINC project"
-
 #: index.php:167
+msgid "About BOINC"
+msgstr "About BOINC"
+
+#: index.php:181
 msgid "Message boards"
 msgstr "Message boards"
 
-#: index.php:168
+#: index.php:182
 msgid "Email lists"
 msgstr "Email lists"
 
-#: index.php:169
-msgid "Personnel and contributors"
-msgstr "Personnel and contributors"
-
-#: index.php:170
+#: index.php:183
 msgid "Events"
 msgstr "Events"
 
-#: index.php:171
-msgid "Papers and talks"
-msgstr "Papers and talks"
-
-#: index.php:172
-msgid "Research projects"
-msgstr "Research projects"
-
-#: index.php:173
-msgid "Logos and graphics"
-msgstr "Logos and graphics"
-
-#: index.php:174
-msgid "and"
-msgstr "and"
-
-#: index.php:178
+#: index.php:184
 msgid "Source code"
 msgstr "Source code"
 
-#: index.php:179
-msgid "Help wanted"
-msgstr "Help wanted"
-
-#: index.php:181
-msgid "Programming"
-msgstr "Programming"
-
-#: index.php:182
-msgid "Translation"
-msgstr "Translation"
-
-#: index.php:183
-msgid "Testing"
-msgstr "Testing"
-
-#: index.php:185
-msgid "Publicity"
-msgstr "Publicity"
-
-#: index.php:187
-msgid "Software development"
-msgstr "Software development"
-
-#: index.php:188
+#: index.php:186
 msgid "APIs for add-on software"
 msgstr "APIs for add-on software"
 
-#: index.php:230
-#, php-format
-msgid ""
-"Open-source software for %svolunteer computing%s and %sgrid computing%s."
-msgstr "Open-source software for %svolunteer computing%s and %sgrid computing%s."
-
-#: index.php:243
-msgid "BOINC is based at The University of California, Berkeley"
-msgstr "BOINC is based at The University of California, Berkeley"
+#: index.php:231
+msgid "Open-source software for volunteer computing"
+msgstr "Open-source software for volunteer computing"
 
 #: projects.inc:19
 msgid "Distributed sensing"
@@ -403,6 +353,17 @@ msgstr "Radioactive at Home is creating a free and continuously updated map of radi
 msgid "Cognitive science and artifical intelligence"
 msgstr "Cognitive science and artifical intelligence"
 
+#: projects.inc:51
+msgid "Cognitive Science"
+msgstr "Cognitive Science"
+
+#: projects.inc:52
+msgid ""
+"MindModeling at Home uses computational cognitive process modeling to better "
+"understand the human mind, and specifically to study the mechanisms and "
+"processes that enable and moderate human performance and learning."
+msgstr "MindModeling at Home uses computational cognitive process modeling to better understand the human mind, and specifically to study the mechanisms and processes that enable and moderate human performance and learning."
+
 #: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
 #: projects.inc:657
 msgid "Private"
@@ -424,6 +385,26 @@ msgstr "Parse and convert semantic nets for use in FreeHAL, an artificial intell
 msgid "Biology and Medicine"
 msgstr "Biology and Medicine"
 
+#: projects.inc:88
+msgid "Medical physiology"
+msgstr "Medical physiology"
+
+#: projects.inc:89
+msgid ""
+"DENIS at Home does cardiac electrophysiological simulations, studying the "
+"electrical activity of the heart."
+msgstr "DENIS at Home does cardiac electrophysiological simulations, studying the electrical activity of the heart."
+
+#: projects.inc:98
+msgid "Molecular biology"
+msgstr "Molecular biology"
+
+#: projects.inc:99
+msgid ""
+"RNA World seeks to identify, analyze, structurally predict and design RNA "
+"molecules on the basis of established bioinformatics software."
+msgstr "RNA World seeks to identify, analyze, structurally predict and design RNA molecules on the basis of established bioinformatics software."
+
 #: projects.inc:107
 msgid "University College Dublin"
 msgstr "University College Dublin"
@@ -578,6 +559,45 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS is an astronomy project studying 16 different properties of galaxies, including brightness, mass, amount of dust and how fast stars are forming. We are using your processing power to conduct pixel-by-pixel calculations on multi-wavelength (ultraviolet, optical and near-infrared light) images of galaxies to produce an atlas that will help astronomers to better understand the distant universe."
 
+#: projects.inc:280 projects.inc:366
+msgid "Astrophysics"
+msgstr "Astrophysics"
+
+#: projects.inc:281
+msgid ""
+"The aim of the project is to derive shapes and spin for a significant part "
+"of the asteroid population. As input data, we use any asteroid photometry "
+"that is available. The results are asteroid convex shape models with the "
+"direction of the spin axis and the rotation period."
+msgstr "The aim of the project is to derive shapes and spin for a significant part of the asteroid population. As input data, we use any asteroid photometry that is available. The results are asteroid convex shape models with the direction of the spin axis and the rotation period."
+
+#: projects.inc:290
+msgid "Aerospace-related science and engineering"
+msgstr "Aerospace-related science and engineering"
+
+#: projects.inc:291
+msgid ""
+"Constellation is a platform for aerospace-related simulations, including "
+"trajectory optimization of launchers, satellites and probes, simulation of "
+"Moon's near-surface exosphere, and analysis of dynamic systems of "
+"exploration-rovers"
+msgstr "Constellation is a platform for aerospace-related simulations, including trajectory optimization of launchers, satellites and probes, simulation of Moon's near-surface exosphere, and analysis of dynamic systems of exploration-rovers"
+
+#: projects.inc:294
+msgid "Perform aerospace-related simulations"
+msgstr "Perform aerospace-related simulations"
+
+#: projects.inc:329
+msgid ""
+"Universe at Home aims to create the first database of the simulated stellar "
+"content of the Universe, from the earliest stars to the most exotic black "
+"hole binaries."
+msgstr "Universe at Home aims to create the first database of the simulated stellar content of the Universe, from the earliest stars to the most exotic black hole binaries."
+
+#: projects.inc:332
+msgid "Do research in physics and astronomy"
+msgstr "Do research in physics and astronomy"
+
 #: projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Rensselaer Polytechnic Institute"
@@ -589,6 +609,10 @@ msgid ""
 "Survey."
 msgstr "The goal of Milkyway at Home is to create a highly accurate three dimensional model of the Milky Way galaxy using data gathered by the Sloan Digital Sky Survey."
 
+#: projects.inc:342
+msgid "Study the structure of the Milky Way galaxy"
+msgstr "Study the structure of the Milky Way galaxy"
+
 #: projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Leiden University, The Netherlands"
@@ -607,14 +631,14 @@ msgid ""
 "simulations through the grid."
 msgstr "Surface science calculations using Classical Dynamics.  Leiden Classical allows volunteers, students and other scientist to submit their personal calculations to the grid. Each user has his own personal queue for Classical Dynamics jobs. In this way students have used the grid to simulate liquid argon, or to test the validity of the ideal gas law by actually doing the simulations through the grid."
 
+#: projects.inc:352
+msgid "Help students do atomic simulations"
+msgstr "Help students do atomic simulations"
+
 #: projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 
-#: projects.inc:366
-msgid "Astrophysics"
-msgstr "Astrophysics"
-
 #: projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
@@ -624,6 +648,10 @@ msgid ""
 "international organizations."
 msgstr "Search for spinning neutron stars (also called pulsars) using data from the LIGO and GEO gravitational wave detectors, and from the Arecibo radio observatory.  Einstein at Home is a World Year of Physics 2005 project supported by the American Physical Society (APS) and by a number of international organizations."
 
+#: projects.inc:370
+msgid "Help detect pulsars and gravitational waves"
+msgstr "Help detect pulsars and gravitational waves"
+
 #: projects.inc:383 projects.inc:393 projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (European Organization for Nuclear Research)"
@@ -641,6 +669,10 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the European Organization for Nuclear Research, the world's largest particle physics laboratory.  It is the most powerful instrument ever built to investigate on particles proprieties. LHC at home runs simulations to improve the design of LHC and its detectors."
 
+#: projects.inc:388
+msgid "Improve the design of the Large Hadron Collider"
+msgstr "Improve the design of the Large Hadron Collider"
+
 #: projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
@@ -648,6 +680,10 @@ msgid ""
 "VirtualBox on your computer"
 msgstr "This project uses CERN-developed virtual machine technology for LHC event physics simulation on volunteer computers.  Requires that you install VirtualBox on your computer"
 
+#: projects.inc:398
+msgid "Simulate high-energy particle collisions"
+msgstr "Simulate high-energy particle collisions"
+
 #: projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
@@ -656,6 +692,10 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new particles and processes using head-on collisions of protons of extraordinary high energy."
 
+#: projects.inc:408
+msgid "Simulate high-energy particle collisions for CERN"
+msgstr "Simulate high-energy particle collisions for CERN"
+
 #: projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "University of California, Berkeley"
@@ -673,10 +713,28 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose goal is to detect intelligent life outside Earth. One approach, known as radio SETI, uses radio telescopes to listen for narrow-bandwidth radio signals from space. Such signals are not known to occur naturally, so a detection would provide evidence of extraterrestrial technology."
 
+#: projects.inc:418
+msgid "Search for evidence of extra-terrestrial life"
+msgstr "Search for evidence of extra-terrestrial life"
+
 #: projects.inc:442
 msgid "Multiple applications"
 msgstr "Multiple applications"
 
+#: projects.inc:448
+msgid "Molecular biology, Computer Science"
+msgstr "Molecular biology, Computer Science"
+
+#: projects.inc:449
+msgid ""
+"The Citizen Science Grid is dedicated to supporting a wide range of research"
+" and educational projects using volunteer computing and citizen science."
+msgstr "The Citizen Science Grid is dedicated to supporting a wide range of research and educational projects using volunteer computing and citizen science."
+
+#: projects.inc:452
+msgid "Support science from the University of North Dakota"
+msgstr "Support science from the University of North Dakota"
+
 #: projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Chinese Academy of Sciences"
@@ -692,6 +750,10 @@ msgid ""
 "their research."
 msgstr "The objective of CAS at home is to encourage and assist scientists in China to adopt the technologies of volunteer computing and volunteer thinking for their research."
 
+#: projects.inc:462
+msgid "Help Chinese researchers"
+msgstr "Help Chinese researchers"
+
 #: projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Mathematics, physics, evolution"
@@ -702,6 +764,10 @@ msgid ""
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home is an adapter between BOINC and several existing volunteer computing projects: ECM, Muon, Evolution at home, and distributed.net"
 
+#: projects.inc:472
+msgid "Do research in math, physics, and evolution"
+msgstr "Do research in math, physics, and evolution"
+
 #: projects.inc:477 projects.inc:677
 msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
 msgstr "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
@@ -718,6 +784,10 @@ msgid ""
 " by the project include math, physics, biology, etc."
 msgstr "The EDGeS at Home Beta project integrates volunteer computing into the service grid network of Europe by allowing service grids to send workunits to be processed by the volunteers of this project. The scientific projects covered by the project include math, physics, biology, etc."
 
+#: projects.inc:482
+msgid "Help European researchers"
+msgstr "Help European researchers"
+
 #: projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Spanish universities and research centers"
@@ -730,6 +800,10 @@ msgstr "Various Spanish research projects"
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Research in physics, material science, and biomedicine"
 
+#: projects.inc:492
+msgid "Help Spanish researchers"
+msgstr "Help Spanish researchers"
+
 #: projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM Corporate Citizenship"
@@ -746,14 +820,56 @@ msgid ""
 "clean water and many more."
 msgstr "To further critical non-profit research on some of humanity's most pressing problems by creating the world's largest volunteer computing grid.  Research includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, clean water and many more."
 
+#: projects.inc:502
+msgid "Do biomedical and environmental research"
+msgstr "Do biomedical and environmental research"
+
 #: projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Mathematics, computing, and games"
 
+#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
+#: projects.inc:678
+msgid "Mathematics"
+msgstr "Mathematics"
+
+#: projects.inc:534
+msgid ""
+"NumberFields at home searches for fields with special properties. The primary "
+"application of this research is in the realm of algebraic number theory. "
+"Number theorists can mine the data for interesting patterns to help them "
+"formulate conjectures about number fields. Ultimately, this research will "
+"lead to a deeper understanding of the profound properties of numbers, the "
+"basic building blocks of all mathematics."
+msgstr "NumberFields at home searches for fields with special properties. The primary application of this research is in the realm of algebraic number theory. Number theorists can mine the data for interesting patterns to help them formulate conjectures about number fields. Ultimately, this research will lead to a deeper understanding of the profound properties of numbers, the basic building blocks of all mathematics."
+
+#: projects.inc:537
+msgid "Do research in algebraic number theory"
+msgstr "Do research in algebraic number theory"
+
+#: projects.inc:553
+msgid "Computer Science"
+msgstr "Computer Science"
+
+#: projects.inc:554
+msgid ""
+"Solve hard and practically important problems (discrete functions inversion "
+"problems, discrete optimization, bioinformatics, etc.) that can be "
+"effectively reduced to Boolean satisfiability problem."
+msgstr "Solve hard and practically important problems (discrete functions inversion problems, discrete optimization, bioinformatics, etc.) that can be effectively reduced to Boolean satisfiability problem."
+
+#: projects.inc:557
+msgid "Study computational complexity"
+msgstr "Study computational complexity"
+
 #: projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Cryptography and combinatorics"
 
+#: projects.inc:583 projects.inc:586
+msgid "Run applications from distributed.net"
+msgstr "Run applications from distributed.net"
+
 #: projects.inc:592
 msgid "Cryptography"
 msgstr "Cryptography"
@@ -764,14 +880,18 @@ msgid ""
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Attempt to decode 3 original Enigma messages. The signals were intercepted in the North Atlantic in 1942 and are believed to be unbroken."
 
-#: projects.inc:602 projects.inc:658 projects.inc:668 projects.inc:678
-msgid "Mathematics"
-msgstr "Mathematics"
+#: projects.inc:596
+msgid "Decode WWII submarine messages"
+msgstr "Decode WWII submarine messages"
 
 #: projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 
+#: projects.inc:606
+msgid "Study the Collatz Conjecture"
+msgstr "Study the Collatz Conjecture"
+
 #: projects.inc:611
 msgid "California State University Fullerton"
 msgstr "California State University Fullerton"
@@ -790,12 +910,20 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home is a research project that uses Internet-connected computers to do the lattice sieving step in the Number Field Sieve factorization of large integers. As a young school student, you gained your first experience at breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. NFS at Home is a continuation of that experience, only with integers that are hundreds of digits long."
 
+#: projects.inc:616
+msgid "Study the factorization of large integers"
+msgstr "Study the factorization of large integers"
+
 #: projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid has multiple projects searching for different forms of very large prime numbers, including searching for the largest known prime number."
 
+#: projects.inc:662
+msgid "Search for large prime numbers"
+msgstr "Search for large prime numbers"
+
 #: projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Hochschule RheinMain University of Applied Sciences"
@@ -806,12 +934,27 @@ msgid ""
 "of prime numbers"
 msgstr "Search for counterexamples to two conjectures related to the identification of prime numbers"
 
+#: projects.inc:672
+msgid "Study the properties of prime numbers"
+msgstr "Study the properties of prime numbers"
+
 #: projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Find all the generalized binary number systems (in which bases are matrices and digits are vectors) up to dimension 11."
 
+#: projects.inc:682
+msgid "Study number theory"
+msgstr "Study number theory"
+
+#: projects.inc:739
+msgid ""
+"Testing and comparison of heuristic methods for getting separations of "
+"parallel algorithms working in the CAD system for designing logic control "
+"systems"
+msgstr "Testing and comparison of heuristic methods for getting separations of parallel algorithms working in the CAD system for designing logic control systems"
+
 #: ../html/inc/news.inc:40
 msgid "Comment"
 msgstr "Comment"
diff --git a/locale/es/BOINC-Client.mo b/locale/es/BOINC-Client.mo
index beda754..dc6b022 100644
Binary files a/locale/es/BOINC-Client.mo and b/locale/es/BOINC-Client.mo differ
diff --git a/locale/es/BOINC-Client.po b/locale/es/BOINC-Client.po
index cbf8c28..13001cb 100644
--- a/locale/es/BOINC-Client.po
+++ b/locale/es/BOINC-Client.po
@@ -1,161 +1,178 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Antonio Regidor García <chikitosan at gmail.com>, 2015
+# Gonzalo Pesquero <gpesquero at yahoo.es>, 2016
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-23 23:14+0000\n"
-"Last-Translator: Rom Walton\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/boinc/language/es/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-27 21:50+0000\n"
+"Last-Translator: Gonzalo Pesquero <gpesquero at yahoo.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/boinc/boinc/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Mensaje del administrador de cuentas"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Mensaje del servidor "
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Algunas tareas necesitan más memoria que la permitida por sus preferencias. Revíselas."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "No se ha podido escribir el archivo de estado; compruebe los permisos de la carpeta"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "La variable de entorno HTTP_PROXY debe especificar un proxy HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Ha usado una URL incorrecta para este proyecto. Cuando le convenga, elimine este proyecto y añada %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Este proyecto está utilizando una URL antigua. Cuando sea conveniente, elimina el proyecto, entonces añade %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Error de sintaxis en app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "No existe un archivo referido en app_info.xml: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Está disponible una versión nueva de BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Descargar"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "no puede ser utilizado para computación CUDA u OpenCL con un driver CUDA 6.5 o posterior"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Texto inesperado en cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Etiqueta no reconocida en cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Falta una etiqueta de apertura en cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Error en las opciones de cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Falta una etiqueta de cierre en cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Para arreglar esto, tu puedes"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "cambia las Preferencias del Proyecto en la página web del proyecto "
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "quitar exclusiones de GPU en tu archivo cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "cambia tu configuración en tu página web del administrador de cuentas"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Falta la clave de cuenta o es incorrecta. Para solucionarlo, sepárese y vuelva a unirse a este proyecto."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Clave de firma del código incorrecta. Para solucionarlo, sepárese y vuelva a unirse a este proyecto."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "El proyecto ha cambiado su clave de seguridad. Sepárese y vuelva a unirse a este proyecto."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Este proyecto no admite el sistema operativo"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Este proyecto no admite el tipo de CPU"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
-msgstr "Su versión de BOINC es demasiado antigua. Instale la versión actual."
+msgstr "Su cliente de BOINC es demasiado antiguo. Instale la versión actual."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Este proyecto no admite computadores del tipo"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr "Actualice el controlador a la última versión para procesar tareas usando la GPU de su computador"
+msgstr "Actualice el controlador a la última versión para procesar tareas con la GPU del computador"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Actualice el controlador a la última versión para usar todas las aplicaciones de GPU de este proyecto"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Es necesaria una nueva versión de BOINC para usar su GPU NVIDIA; actualícelo a la versión actual"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Es necesaria una GPU %s para ejecutar tareas de este proyecto"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "No hay tareas disponibles para las aplicaciones que ha elegido."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Este proyecto no admite su tipo de computador"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
-msgstr "Es necesaria una versión más reciente de BOINC; instale la versión actual"
+msgstr "Es necesaria una versión más reciente de BOINC; instale la actual"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Hay tareas disponibles para %s, pero ha configurado sus preferencias para no aceptarlas."
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Nombre de aplicación desconocido en app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Su archivo app_info.xml no tiene una versión usable de"
diff --git a/locale/es/BOINC-Drupal.po b/locale/es/BOINC-Drupal.po
new file mode 100644
index 0000000..0fcd5cc
--- /dev/null
+++ b/locale/es/BOINC-Drupal.po
@@ -0,0 +1,1762 @@
+# LANGUAGE translation of PROJECT
+# Copyright (c) YEAR NAME <EMAIL at ADDRESS>
+# 
+# Translators:
+# axel ezequiel ramos <axel.ezequiel at outlook.com>, 2015
+# el buve, 2015
+# Gonzalo Pesquero <gpesquero at yahoo.es>, 2016
+# Jose Nuñez <jose87_jose87 at hotmail.com>, 2016
+# juanda097 <juanda097 at openmailbox.org>, 2015
+# kinoxl <kinoxl at gmail.com>, 2015
+# miguel raz <miguelraz at ciencias.unam.mx>, 2015
+# Mihai Pantazi <malexandru_70 at hotmail.com>, 2016
+# Raúl, 2015
+# Rodrigo Olmos <rodrigo.olmos at gmail.com>, 2015
+# Ronald Roncalla <rjpre30 at hotmail.com>, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-12-27 22:03+0000\n"
+"Last-Translator: Gonzalo Pesquero <gpesquero at yahoo.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/boinc/boinc/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Reject profile"
+msgstr "Rechazar perfil"
+
+msgid "Ban user"
+msgstr "Bloquear a usuario"
+
+msgid "I'm new"
+msgstr "Soy nuevo"
+
+msgid "I'm a BOINC user"
+msgstr "Soy usuario de BOINC"
+
+msgid "Authenticator login"
+msgstr "Inicio de sesión de autenticador"
+
+msgid ""
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Debes conseguir @count más créditos para poder postear comentarios en este sitio."
+
+msgid "Generic"
+msgstr "Generales"
+
+msgid "Home"
+msgstr "Inicio"
+
+msgid "Work"
+msgstr "Trabajo"
+
+msgid "School"
+msgstr "Escuela"
+
+msgid "yes"
+msgstr "si"
+
+msgid "no"
+msgstr "no"
+
+msgid "Resource settings"
+msgstr "Configuraciones de recursos"
+
+msgid "Resource share"
+msgstr "Asignación de recursos"
+
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina la proporción de tus recursos de computadora contribuidos al proyecto. Ejemplo: si participas en dos proyectos BOINC con distribución de recursos de 100 y 200, el primero obtendrá 1/3 de tus recursos y el segundo 2/3."
+
+msgid "Use CPU"
+msgstr "Usar CPU"
+
+msgid "Enforced by version @number"
+msgstr "Obligado por versión @number"
+
+msgid "Use NVIDIA GPU"
+msgstr "Usar GPU NVIDIA"
+
+msgid "Use ATI GPU"
+msgstr "Usar GPU ATI"
+
+msgid "Use INTEL GPU"
+msgstr "Usar GPU INTEL"
+
+msgid "Beta settings"
+msgstr "Configuracioens Beta"
+
+msgid "Run test applications?"
+msgstr "¿Ejecutar aplicaciones de testeo?"
+
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Esto nos ayuda a desarrollar aplicaciones, pero puede causar que algunos trabajos fallen en su ordenador"
+
+msgid " Default value: @default"
+msgstr "Valor por defecto: @default"
+
+msgid "Applications"
+msgstr "Programas"
+
+msgid "Default set"
+msgstr "Conjunto default"
+
+msgid "Set used for new computers"
+msgstr "Conjunto usado por nuevas computadoras"
+
+msgid "Save changes"
+msgstr "Guardar cambios"
+
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgid "Show comparison view"
+msgstr "Enseñar vista de comparación."
+
+msgid "Comment form"
+msgstr "Comentario de "
+
+msgid "Logout"
+msgstr "Cerrar sesión"
+
+msgid "Join now"
+msgstr "Únete ahora"
+
+msgid "Account"
+msgstr "Cuenta"
+
+msgid "Server status"
+msgstr "Estado del servidor"
+
+msgid "Language"
+msgstr "Idioma"
+
+msgid "Create content"
+msgstr "Crear contenido"
+
+msgid "General settings"
+msgstr "Configuraciones generales"
+
+msgid "Name"
+msgstr "Nombre"
+
+msgid "Time zone"
+msgstr "Zona horaria"
+
+msgid "Notification settings"
+msgstr "Configuración de notificaciones"
+
+msgid "Receive email notification for private messages?"
+msgstr "¿Recibir notificación de mensajes privados por correo electrónico?"
+
+msgid "Receive email notification for friend requests?"
+msgstr "¿Recibir notificación de solicitudes de amistad por correo electrónico?"
+
+msgid "Language settings"
+msgstr "Configuración de idioma"
+
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "El idioma por defecto de esta cuenta será usado para e-mails y la presentación del sitio."
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Si tienes un <a href=\"@gravatar-check\">Gravatar válido</a> asociado a tu e-mail, será usado como tu foto de perfil."
+
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Su Gravatar no será mostrado si sube una foto de perfil"
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Si tienes un <a href=\"@gravatar-check\"> Gravatar válido </a> asociado con tu dirección de correo electrónico, usalo para la foto de perfil de tu usuario."
+
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar no se mostrará si se sube un avatar."
+
+msgid "Avatar settings"
+msgstr "Ajustes de avatar"
+
+msgid "This is not available until your profile is set up."
+msgstr "No disponible hasta que tu perfil este configurado."
+
+msgid "Create a profile"
+msgstr "Crear un perfil"
+
+msgid "Upload an avatar"
+msgstr "Subir un avatar"
+
+msgid "Forum settings"
+msgstr "Configuracón de foro"
+
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "En los tópicos de discusión, mostrar @comments_per_page como máximo"
+
+msgid "comments per page"
+msgstr "Comentarios por página"
+
+msgid "Sort comments in discussions"
+msgstr "Ordenar comentarios en las discusiones"
+
+msgid "Newest post first"
+msgstr "Mensajes más nuevos primero"
+
+msgid "Oldest post first"
+msgstr "Publicaciones antiguas primero"
+
+msgid "Signature"
+msgstr "Firma"
+
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Tu firma sera mostrada publicamente al final de tus comentarios."
+
+msgid "Hide signatures in forums"
+msgstr "Ocultar firmas en los foros"
+
+msgid "Privacy settings"
+msgstr "Configuraciones de privacidad."
+
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "¿Autoriza a que @project y su equipo (si existe) le envíen correo electrónico?"
+
+msgid "Should @project show your computers on its web site?"
+msgstr "¿Debería @project mostrar sus ordenadores en este sitio web?"
+
+msgid "Id"
+msgstr "Identificación"
+
+msgid "Founder"
+msgstr "Fundador"
+
+msgid "Country"
+msgstr "País"
+
+msgid "Recent average credit"
+msgstr "Promedio de créditos recientes"
+
+msgid "Members"
+msgstr "Miembros"
+
+msgid "Total Credit"
+msgstr "Total del crédito"
+
+msgid "User ID"
+msgstr "ID de usuario"
+
+msgid "User"
+msgstr "Usuario"
+
+msgid "Admin since"
+msgstr "Administrador desde"
+
+msgid "Team ID"
+msgstr "Identificación del equipo"
+
+msgid "User joined"
+msgstr "Se ha unido un usuario"
+
+msgid "Timestamp"
+msgstr "Marca de tiempo"
+
+msgid "Account Key"
+msgstr "Clave de cuenta"
+
+msgid "Member since"
+msgstr "Miembro desde"
+
+msgid "CPID"
+msgstr "CPID"
+
+msgid "Email Address"
+msgstr "Dirección de Correo Electrónico"
+
+msgid "Password Hash"
+msgstr "Hash de contraseña"
+
+msgid "Postal Code"
+msgstr "Código postal"
+
+msgid "Send Email"
+msgstr "Enviar correo electrónico"
+
+msgid "Show Hosts"
+msgstr "Mostrar Hosts"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Computer ID"
+msgstr "ID del ordenador"
+
+msgid "Location"
+msgstr "Localización"
+
+msgid "While BOINC running, % of time work is allowed"
+msgstr "Mientras se ejecuta BOINC, % del tiempo que se permite el trabajo"
+
+msgid "Average turnaround time"
+msgstr "Tiempo promedio de finalización"
+
+msgid "Created"
+msgstr "Creado"
+
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "Mientras se ejecuta BOINC, % de tiempo que el ordenador tiene una conexión a Internet"
+
+msgid "Average CPU efficiency"
+msgstr "Rendimiento promedio de la CPU"
+
+msgid "Free disk space"
+msgstr "Espacio libre en disco"
+
+msgid "Total disk space"
+msgstr "Espacio total en disco"
+
+msgid "Task duration correction factor"
+msgstr "Factor de corrección de la duración de la tarea"
+
+msgid "Avg. credit"
+msgstr "Crédito promedio"
+
+msgid "External IP address"
+msgstr "Direccion IP externa"
+
+msgid "Cross project ID"
+msgstr "ID de proyecto cruzado"
+
+msgid "Last IP address"
+msgstr "Última dirección IP"
+
+msgid "Cache"
+msgstr "Cache"
+
+msgid "Memory"
+msgstr "Memoria"
+
+msgid "Swap space"
+msgstr "Espacio de intercambio"
+
+msgid "Maximum daily WU quota per CPU"
+msgstr "Cuota WU máxima diaria por CPU"
+
+msgid "Average download rate"
+msgstr "Velocidad promedio de descarga"
+
+msgid "Average upload rate"
+msgstr "Velocidad promedio de envío"
+
+msgid "Same IP address count"
+msgstr "Misma dirección IP"
+
+msgid "% of time BOINC client is running"
+msgstr "Se está ejecutando % de tiempo cliente BOINC"
+
+msgid "Operating system"
+msgstr "Sistema operativo"
+
+msgid "Operating system version"
+msgstr "Versión del sistema operativo"
+
+msgid "Measured floating point speed"
+msgstr "Velocidad de punto flotante calculada"
+
+msgid "Measured integer speed"
+msgstr "Velocidad de entero calculada"
+
+msgid "CPU model"
+msgstr "Modelo de CPU"
+
+msgid "Number of processors"
+msgstr "Número de procesadores"
+
+msgid "CPU"
+msgstr "CPU"
+
+msgid "Number of times client has contacted server"
+msgstr "Número de veces que el cliente ha contactado al servidor"
+
+msgid "Last contact"
+msgstr "Último contacto"
+
+msgid "Serial number"
+msgstr "Número de serie"
+
+msgid "Timezone"
+msgstr "Zona horaria"
+
+msgid "Platform ID"
+msgstr "ID de plataforma"
+
+msgid "Task ID"
+msgstr "ID de Tarea"
+
+msgid "Workunit ID"
+msgstr "ID de Unidad de trabajo"
+
+msgid "Host ID"
+msgstr "ID de host"
+
+msgid "Application ID"
+msgstr "ID de la aplicación"
+
+msgid "Application version"
+msgstr "Versión de la aplicación"
+
+msgid "Claimed credit"
+msgstr "Crédito reclamado"
+
+msgid "Client state"
+msgstr "Estado del cliente"
+
+msgid "CPU time"
+msgstr "Tiempo de CPU"
+
+msgid "Run time"
+msgstr "Tiempo de ejecución"
+
+msgid "Exit status"
+msgstr "Estado de salida"
+
+msgid "Granted credit"
+msgstr "Crédito otorgado"
+
+msgid "Outcome"
+msgstr "Resultado"
+
+msgid "Received time"
+msgstr "Tiempo recibido"
+
+msgid "Report deadline"
+msgstr "Límite para informar"
+
+msgid "Sent"
+msgstr "Enviado"
+
+msgid "Server state"
+msgstr "Estado del servidor"
+
+msgid "Stderr out"
+msgstr "salida Stderr"
+
+msgid "Validation state"
+msgstr "Estado de validación"
+
+msgid "App ID"
+msgstr "APP ID"
+
+msgid "Canonical credit"
+msgstr "Crédito Canonical"
+
+msgid "Canonical result ID"
+msgstr "ID de resultado Canonical"
+
+msgid "Created time"
+msgstr "Fecha de creación"
+
+msgid "Error mask"
+msgstr "Error de máscra"
+
+msgid "Minimum quorum"
+msgstr "Quórum mínimo"
+
+msgid "Max error tasks"
+msgstr "Tareas de error Máx."
+
+msgid "Max success tasks"
+msgstr "Tareas de éxito Máx."
+
+msgid "Max total tasks"
+msgstr "Máximas tareas totales"
+
+msgid "Needs validation"
+msgstr "Necesita validación"
+
+msgid "Initial replication"
+msgstr "Replicación inicial"
+
+msgid "Target number of results"
+msgstr "Número objetivo de resultados"
+
+msgid "Application version ID"
+msgstr "ID de versión de aplicación"
+
+msgid "Plan class"
+msgstr "Plan de clase"
+
+msgid "Version number"
+msgstr "Número de versión"
+
+msgid "Computer"
+msgstr "Ordenador"
+
+msgid "App version ID"
+msgstr "ID de versión de Aplicación"
+
+msgid "Consecutive valid tasks"
+msgstr "Tareas válidas consecutivas"
+
+msgid "Number of tasks completed"
+msgstr "Número de tareas completadas"
+
+msgid "Max tasks per day"
+msgstr "Máximo de tareas por día"
+
+msgid "Number of tasks today"
+msgstr "Número de tareas hoy"
+
+msgid "Manage subscriptions"
+msgstr "Administrar subscripciones"
+
+msgid "Avg credit"
+msgstr "Media de crédito"
+
+msgid "Total credit"
+msgstr "Crédito total"
+
+msgid "More"
+msgstr "Más"
+
+msgid "Tasks"
+msgstr "Tareas"
+
+msgid "Computers hidden"
+msgstr "Ordenadores escondidos"
+
+msgid "This user has chosen not to show information about their computers."
+msgstr "Este usuario ha seleccionado no mostrar información sobre sus ordenadores."
+
+msgid "no projects..."
+msgstr "no hay proyectos..."
+
+msgid "Moderation"
+msgstr "Moderación"
+
+msgid "Unvetted profiles"
+msgstr "Perfiles no vetados"
+
+msgid "Inbox"
+msgstr "Bandeja de entrada"
+
+msgid "Compose new"
+msgstr "Redactar nuevo"
+
+msgid "Posts contributed"
+msgstr "Publicaciones contribuidas"
+
+msgid "Friends (@count)"
+msgstr "Amigos (@count)"
+
+msgid "Welcome back!"
+msgstr "¡Bienvenido de nuevo!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home es un programa que utiliza el tiempo de inactividad de tu computadora para correr un salvapantallas que busca ondas gravitacionales provenientes de estrellas de neutrones que giran (también llamadas Púlsar) usando datos del detector de ondas gravitacionales LIGO."
+
+msgid "Learn more"
+msgstr "Aprender más"
+
+msgid "View account"
+msgstr "Cuenta vista"
+
+msgid "User of the day"
+msgstr "Usuario del día"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Más de 500.000 voluntarios y contando."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Créditos por día"
+
+msgid "View user profile."
+msgstr "Ver perfil de usuario"
+
+msgid "Profile awaiting moderator approval"
+msgstr "Perfil en espera de ser aprobador por el moderador"
+
+msgid "Background"
+msgstr "Fondo"
+
+msgid "Opinion"
+msgstr "Opinión"
+
+msgid "Enter your password to save changes"
+msgstr "Introduzca su contraseña para guardar los cambios"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Introduzca su contraseña actual si cambia su dirección de correo electrónico o su contraseña."
+
+msgid "BOINC user ID"
+msgstr "ID de usuario de BOINC"
+
+msgid "Drupal user ID"
+msgstr "ID de usuario de Drupal"
+
+msgid "Account key"
+msgstr "Clave de la cuenta"
+
+msgid "Weak account key"
+msgstr "Clave débil de cuenta"
+
+msgid "Cross-project ID"
+msgstr "ID interproyectos"
+
+msgid "Change password"
+msgstr "Cambiar contraseña"
+
+msgid "Presets"
+msgstr "Preconfiguraciones"
+
+msgid "Standard"
+msgstr "Estándar"
+
+msgid "Maximum"
+msgstr "Máximo"
+
+msgid "Green"
+msgstr "Verde"
+
+msgid "Minimum"
+msgstr "Mínimo"
+
+msgid "Custom"
+msgstr "Personalizadas"
+
+msgid "Update preset"
+msgstr "Preconfiguraciones de usuario"
+
+msgid "Advanced settings"
+msgstr "Configuraciones avanzadas."
+
+msgid "Processor usage"
+msgstr "Uso del procesador"
+
+msgid "Run while computer is on battery power?"
+msgstr "¿Correr cuando el ordenador esta funcionando con baterias?"
+
+msgid "Only applies to portable computers"
+msgstr "Solo se aplica a ordenadores portátiles"
+
+msgid "Run while computer is in use?"
+msgstr "¿Correr cuando el ordenador está en uso?"
+
+msgid "Run GPU work while computer is in use?"
+msgstr "Usar la GPU cuando el ordenador está en uso"
+
+msgid "\"In use\" means mouse/keyboard activity in last"
+msgstr "\"En uso\" significa actividad de ratón/tablero al último"
+
+msgid "minutes"
+msgstr "minutos"
+
+msgid "Suspend work if no mouse/keyboard activity in last"
+msgstr "Suspender trabajo si no hay actividad de ratón/teclado al último"
+
+msgid "Needed to enter low-power mode on some computers"
+msgstr "Requerido para ingresar a modo de bajo consumo en algunas computadoras"
+
+msgid "Suspend work if CPU usage is above"
+msgstr "suspender el trabajo si el uso del procesador excede este nivel"
+
+msgid "0 means no restriction. Enforced by version @number"
+msgstr "0 significa sin restricción. Obligado por versión @number"
+
+msgid "Do work only between the hours of:"
+msgstr "Trabajar sólo entre:"
+
+msgid "and"
+msgstr "y"
+
+msgid "No restriction if equal"
+msgstr "Sin restricción si igual"
+
+msgid "Leave tasks in memory while suspended?"
+msgstr "¿Dejar tareas en memoria si suspendidas?"
+
+msgid "Suspended tasks will consume swap space if \"yes\""
+msgstr "Suspender tareas consumira espacio de swap si \"Sí\""
+
+msgid "Switch between tasks every"
+msgstr "Cambiar entre tareas cada"
+
+msgid "Recommended: @period minutes"
+msgstr "Recomendado: @period minutos"
+
+msgid "On multiprocessors, use at most"
+msgstr "En sistemas multiprocesador, usar como máximo"
+
+msgid "processors"
+msgstr "procesadores"
+
+msgid "Set to 0 for no limit"
+msgstr "Fijar a 0 para sín límite"
+
+msgid "% of the processors"
+msgstr "% de los procesadores"
+
+msgid "Use at most"
+msgstr "Utilizar como  máximo"
+
+msgid "% of the CPU time"
+msgstr "% de tiempo de CPU"
+
+msgid "Can be used to reduce CPU heat"
+msgstr "Puede usarse para reducir calor de CPU"
+
+msgid "Disk and memory usage"
+msgstr "Uso de disco y memoria"
+
+msgid "Disk: use at most"
+msgstr "Disco: usar como máximo"
+
+msgid "Disk: leave free at least"
+msgstr "Disco: dejar libre como mínimo"
+
+msgid "Values smaller than @number are ignored"
+msgstr "Valores menores a @number son ignorados"
+
+msgid "% of total"
+msgstr "% del total"
+
+msgid "Tasks checkpoint to disk at most every"
+msgstr "Las tareas vuelcan al disco al menos cada"
+
+msgid "seconds"
+msgstr "segundos"
+
+msgid "Swap space: use at most"
+msgstr "Espacio de intercambio: usar como máximo"
+
+msgid "Memory: when computer is in use, use at most"
+msgstr "Memoria: cuando el ordendador está en uso, usar como máximo"
+
+msgid "Memory: when computer is not in use, use at most"
+msgstr "Memoria: cuando el ordenador no está en uso, usar como máximo"
+
+msgid "Network usage"
+msgstr "Uso de la red"
+
+msgid "Computer is connected to the Internet about every"
+msgstr "Computadora debe estar conectada al internet apróximadamente cada"
+
+msgid "days"
+msgstr "días"
+
+msgid ""
+"Leave blank or 0 if always connected. @project will try to maintain at least"
+" this much work."
+msgstr "Deja en blanco o 0 si siempre conectado. @project intentará mantener al menos este trabajo."
+
+msgid "Maintain enough work for an additional"
+msgstr "Mantener suficiente trabajo para un adicional"
+
+msgid "Confirm before connecting to Internet?"
+msgstr "¿Confirmar antes de conectar a Internet?"
+
+msgid "Matters only if you have a modem, ISDN, or VPN connection"
+msgstr "Importa solo si es módem, ISDN, o conexión de VPN"
+
+msgid "Disconnect when done?"
+msgstr "¿Desconectar cuando haya termiando?"
+
+msgid "Maximum download rate"
+msgstr "Velocidad máxima de descarga"
+
+msgid "Maximum upload rate"
+msgstr "Velocidad máxima de envío"
+
+msgid "Use network only between the hours of:"
+msgstr "Usar red sólo entre las horas:"
+
+msgid "Transfer at most"
+msgstr "Transferir como máximo"
+
+msgid "Skip image file verification?"
+msgstr "¿Saltar verificación de imagen?"
+
+msgid ""
+"Check this ONLY if your Internet provider modifies image files (UMTS does "
+"this, for example). Skipping verification reduces the security of BOINC."
+msgstr "Seleccionar SÓLO si tu proveedro de internet modifica archivos de imágenes (e.g., UMTS). Saltarse esta verificiación reduce la seguridad de BOINC."
+
+msgid "search"
+msgstr "buscar"
+
+msgid "What is @this_project?"
+msgstr "¿Qué es @this_project?"
+
+msgid "Login"
+msgstr "Inicio de sesión"
+
+msgid "BOINC"
+msgstr "BOINC"
+
+msgid "Project"
+msgstr "Proyecto"
+
+msgid "No @type tasks"
+msgstr "Sin @type tareas"
+
+msgid "There are no tasks of this type on record"
+msgstr "No hay tareas de este tipo en registro"
+
+msgid "Details"
+msgstr "Detalles"
+
+msgid "Password"
+msgstr "Contraseña"
+
+msgid "Enter the password that accompanies your username."
+msgstr "Ingresa la contraseña que corresponde con tu usuario."
+
+msgid "Request new password"
+msgstr "Solicitar nueva contraseña"
+
+msgid "Mark all topics read"
+msgstr "Marcar todos los temas como leídos"
+
+msgid "Mark all forums read"
+msgstr "Marcar todos los foros como leídos"
+
+msgid ""
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
+msgstr "Error de validación de CAPTCHA: ID de sesión de CAPTCHA desconocido. Contacte al administrador del sitio si este problema persiste"
+
+msgid "The answer you entered for the CAPTCHA was not correct."
+msgstr "La respuesta que ha introducido para el CAPTCHA es incorrecta."
+
+msgid "Access denied. You must login to view this page."
+msgstr "Acceso denegado. Debes iniciar sesión para ver esta página."
+
+msgid "You are not authorized to access this page."
+msgstr "No esta autorizado para acceder a esta página. "
+
+msgid "Disable rich-text"
+msgstr "Desactivar enriquecer texto"
+
+msgid "Enable rich-text"
+msgstr "Activar enriquecer texto"
+
+msgid "Teams"
+msgstr "Equipo"
+
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "participantes de @project pueden formar equipos. Tu puedes pertenecer a un solo equipo. Tu puedes unirte o renunciar a un equipo en cualquier momento. Para unirte a un equipo, visita su página de equipo y dale click a \"Únete a este equipo\". Cada equipo tiene un fundador que puede:"
+
+msgid "access team members' email addresses"
+msgstr "acceder a las direcciones de e-mail de los miembros"
+
+msgid "edit the team's name and description"
+msgstr "editar el nombre y la descripción del equipo"
+
+msgid "add or remove team admins"
+msgstr "agregar o eliminar administradores de equipo"
+
+msgid "remove members from the team"
+msgstr "quitar miembros del equipo"
+
+msgid "disband a team if it has no members"
+msgstr "dar de baja el equipo si no tiene miembros"
+
+msgid "Search teams"
+msgstr "Buscar equipos"
+
+msgid "Create a new team"
+msgstr "Crear un nuevo equipo"
+
+msgid ""
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Si no encuentras un equipo que sea el indicado para ti, puedes crear un equipo."
+
+msgid "You must earn 1 more credit!"
+msgstr "¡Debe conseguir 1 crédito más!"
+
+msgid "@count million ops/sec"
+msgstr "@count millón ops/seg"
+
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/seg"
+
+msgid "@count days"
+msgstr "@count días"
+
+msgid "Stderr output"
+msgstr "Stderr output"
+
+msgid "Email address"
+msgstr "Dirección de correo electrónico"
+
+msgid "Enter your @s email address."
+msgstr "Ingresa tu @s dirección de email."
+
+msgid "Log in"
+msgstr "Iniciar sesión"
+
+msgid "Sorry, unrecognized email address or password."
+msgstr "Lo sentimos, no se reconoce el correo electrónico o la contraseña"
+
+msgid "Have you forgotten your password?"
+msgstr "Ha olvidado su contraseña?"
+
+msgid "No results found..."
+msgstr "No se han encontrado resultados..."
+
+msgid "Anonymous"
+msgstr "Anónimo"
+
+msgid "Forgot password"
+msgstr "¿Ha olvidado su contraseña?"
+
+msgid "authenticator-based login"
+msgstr "Inicio de sesión basado en el autenticador"
+
+msgid ""
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Ingresa tu correo electrónico para recibir instrucciones para reiniciar tu contraseña ( o usa el !authenticator_login)."
+
+msgid "Send"
+msgstr "Enviado"
+
+msgid "Submitted by !username on !datetime"
+msgstr "Ingresado por !username el !datetime"
+
+msgid "Send message"
+msgstr "Enviar mensaje"
+
+msgid "Add as friend"
+msgstr "Añadir como amigo"
+
+msgid "Website"
+msgstr "Sitio web"
+
+msgid "Team"
+msgstr "Equipo"
+
+msgid "Create new team"
+msgstr "Crear nuevo equipo"
+
+msgid "Search"
+msgstr "Buscar"
+
+msgid "Total credits"
+msgstr "Créditos totales"
+
+msgid "Recent avg credits"
+msgstr "Recibir créditos promedios"
+
+msgid "Type"
+msgstr "Tipo"
+
+msgid "New members in last day"
+msgstr "Miembros nuevos en el último día"
+
+msgid "Total members"
+msgstr "Total de miembros"
+
+msgid "Active members"
+msgstr "Miembros activos"
+
+msgid "Members with credit"
+msgstr "Miembros con crédito"
+
+msgid "Web site"
+msgstr "Sitio web"
+
+msgid "Description"
+msgstr "Descripción"
+
+msgid "BBcode help"
+msgstr "ayuda BBcode"
+
+msgid "Post comment"
+msgstr "Postear comentario"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Inicio"
+
+msgid "The latest news from the @site_name project"
+msgstr "Las últimas noticias del @site_name proyecto"
+
+msgid "Hide"
+msgstr "Ocultar"
+
+msgid "Hide this topic"
+msgstr "Ocultar este tema"
+
+msgid "Lock"
+msgstr "Bloquear"
+
+msgid "Lock this thread for comments"
+msgstr "Bloquear comentarios para este hilo"
+
+msgid "Make sticky"
+msgstr "Adherir"
+
+msgid "Make this topic sticky"
+msgstr "Adherir este tema"
+
+msgid "moderation"
+msgstr "moderación"
+
+msgid "Reply"
+msgstr "Responder"
+
+msgid "Reply to this comment"
+msgstr "Responder este comentario"
+
+msgid "Quote"
+msgstr "Citar"
+
+msgid "Reply to this comment with quote"
+msgstr "Responder este comentario citando"
+
+msgid "Edit"
+msgstr "Editar"
+
+msgid "Edit this comment"
+msgstr "Editar este comentario"
+
+msgid "Delete"
+msgstr "Borrar"
+
+msgid "Delete this comment"
+msgstr "Eliminar este comentario"
+
+msgid "Hide this comment"
+msgstr "Ocultar este comentario"
+
+msgid "Message @id"
+msgstr "Mensage @id"
+
+msgid "Convert"
+msgstr "Convertir"
+
+msgid "Convert this comment to a new topic"
+msgstr "Convertir este comentario en un tema nuevo"
+
+msgid "message @id"
+msgstr "mensaje @id"
+
+msgid " in response to !parent"
+msgstr "en respuesta a !parent"
+
+msgid "Post new comment"
+msgstr "Publicar nuevo comentario"
+
+msgid "Comments"
+msgstr "Comentarios"
+
+msgid "discuss"
+msgstr "discutir"
+
+msgid "n/a"
+msgstr "n/a"
+
+msgid "@time ago"
+msgstr "Hace @time"
+
+msgid "Threads"
+msgstr "Hilos"
+
+msgid "Posts"
+msgstr "Mensajes"
+
+msgid "Last post"
+msgstr "Último mensaje"
+
+msgid ""
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Por favor, sé responsable con respecto a lo que escribas y no insultes o crees publicaciones ofensivas. Éstas serán eliminadas del foro por los moderadores sin ninguna advertencia o posibilidad de discusión. No respondas a publicaciones ofensivas. Clickea en el botón \"reportar\" debajo de la publicacion para llamar la atención de los moderadores."
+
+msgid "this project"
+msgstr "este proyecto"
+
+msgid ""
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "También te pedimos que mantengas toda la conversación en el tablón de mensajes relacionado a @project o BOINC con la pequeña excepción del tablón de mensajes de Ciencia donde tendrás plena libertad de discutir sobre cualquier cosa de ciencia fundamental. Los participantes interesados en discusiones más extensas deberían dejar mensajes en los foros de @project no oficiales."
+
+msgid "These message boards now support BBCode tags only."
+msgstr "Este tablón de mensajes ahora solo soporta etiquetas BBCode."
+
+msgid "Featured"
+msgstr "Destacados"
+
+msgid "Locked"
+msgstr "Bloqueado"
+
+msgid "Submitted on !datetime"
+msgstr "Enviada el !datetime"
+
+msgid "Computers pending"
+msgstr "Ordenadores pendientes"
+
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Este usuario no ha asociado ningun ordenador todavía. Los ordenadores seran mostrados cuando hayan obtenido sus primeros créditos."
+
+msgid "Show IP address"
+msgstr "Mostrar direccion IP"
+
+msgid "Download the desktop software"
+msgstr "Descargar el software de escritorio"
+
+msgid "Run the installer"
+msgstr "Ejecutar el instalador"
+
+msgid "hours"
+msgstr "horas"
+
+msgid "When prompted enter @siteurl"
+msgstr "Cuando se solicite usar @siteurl"
+
+msgid "Merge"
+msgstr "Fusionar"
+
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Esto borrará al anfitrión @id de tu cuenta por siempre. ¿Seguro que esto está bien?"
+
+msgid "Post topic"
+msgstr "Tema del post"
+
+msgid "Leave team"
+msgstr "Abandonar el equipo"
+
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Click aquí para dejar de ser miembro de @this_team"
+
+msgid "Leave this team"
+msgstr "Abandonar este equipo"
+
+msgid "Request foundership"
+msgstr "Solicitar puesto de fundador"
+
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Si el fundador del equipo no está activo y quieres asumir el rol de fundador, haz click debajo para solicitar el puesto de fundador de @this_team."
+
+msgid "Initiate request"
+msgstr "Iniciar solicitud"
+
+msgid "No active computers"
+msgstr "No hay ordenadores activos"
+
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Este usuario no tiene ordenadores que hayan estado activos en los últimos 30 días."
+
+msgid "Clear"
+msgstr "Restablecer"
+
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Esto eliminará todas sus preferencias para el conjunto de preferencias @name. ¿Está seguro?"
+
+msgid "Your community preferences have been updated."
+msgstr "Las preferencias de tu comunidad han sido actualizadas."
+
+msgid "Combined preferences"
+msgstr "Preferencias combinadas"
+
+msgid "Switch View"
+msgstr "Cambiar vista"
+
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Esto eliminará todos sus ajustes de preferencias de \"@name\". ¿Está seguro?"
+
+msgid "Approve profile"
+msgstr "Aprobar perfil"
+
+msgid "Approve this profile content"
+msgstr "Aprobar el contenido de este perfil"
+
+msgid "Reject this profile content"
+msgstr "Rechazar el contenido de este perfil"
+
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Esto aplica a todos los proyectos BOINC en los que participas."
+
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "En computadores con múltiples proyetos, esto modifica las preferecias más recientemente usadas."
+
+msgid "Preferences last modified: @mod_time"
+msgstr "Fecha de última modificación de las preferencias: @mod_time"
+
+msgid "every"
+msgstr "cada"
+
+msgid "Add"
+msgstr "Añadir"
+
+msgid "My team"
+msgstr "Mi equipo"
+
+msgid "You are a member of @team."
+msgstr "Eres miembro de @team"
+
+msgid "View my team"
+msgstr "Ver mi equipo"
+
+msgid "Manage team"
+msgstr "Coordinar grupo"
+
+msgid "View member list"
+msgstr "Ver lista de miembros"
+
+msgid "Member names and emails"
+msgstr "Nombres y correos de miembros"
+
+msgid "View change history"
+msgstr "Ver historial de cambios"
+
+msgid "See member activity"
+msgstr "Ver actividad de miembros"
+
+msgid "Manage team message board"
+msgstr "Gestionar tablón de mensajes del equipo"
+
+msgid "Create or manage message board"
+msgstr "Crear o gestionar tablón de mensajes"
+
+msgid "Remove members"
+msgstr "Eliminar miembros"
+
+msgid "Change founder"
+msgstr "Cambiar fundador"
+
+msgid "Manage team admins"
+msgstr "Gestionar admins del equipo"
+
+msgid "Edit team info"
+msgstr "Editar información de equipo"
+
+msgid "Remove team"
+msgstr "Eliminar equipo"
+
+msgid "Team forum"
+msgstr "Foro del equipo"
+
+msgid "A discussion forum has been set up for team members."
+msgstr "Un foro de discusión ha sido creado para los usuarios del equipo."
+
+msgid "Enter forum"
+msgstr "Entrar en el foro"
+
+msgid "Join team"
+msgstr "Unirse a este equipo"
+
+msgid "Click here to become a member of @this_team"
+msgstr "Haga click aquí para hacerse miembro de @this_team"
+
+msgid "Join this team"
+msgstr "Unirse a este equipo"
+
+msgid "Choose type"
+msgstr "Elegir tipo"
+
+msgid "Team name"
+msgstr "Nombre del equipo"
+
+msgid "Text only, no HTML tags"
+msgstr "Sólo texto, sin etiquetas HTML"
+
+msgid "Team name -- HTML version (optional)"
+msgstr "Nombre del equipo -- versión HTML (opcional)"
+
+msgid "You may use limited HTML tags"
+msgstr "Puedes usar etiquetas HTML limitadas."
+
+msgid "Team website (optional)"
+msgstr "Sitio web del equipo (opcional)"
+
+msgid "Displayed on the team's page"
+msgstr "Mostrado en la página del equipo"
+
+msgid "Type of team"
+msgstr "Tipo de equipo"
+
+msgid "Accept new members?"
+msgstr "¿Aceptar nuevos miembros?"
+
+msgid "Description of team"
+msgstr "Descripción del equipo"
+
+msgid "Create a team"
+msgstr "Crear un equipo"
+
+msgid "Save team"
+msgstr "Guardar equipo"
+
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Si ya estas ejecutando BOINC, selecciona <i>Add\n\nProject</i>."
+
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Si estás ejecutando la versión terminal de BOINC,\nprimero usa el software de BOINC Manager (en otro lado si es necesario) para crear una\ncuenta en este proyecto, y luego usa esa cuenta para conectarte a la versión terminal."
+
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Si estás ejecutando la versión pre-5.0 de BOINC, por favor\nactualiza a una versión más reciente para crear una cuenta\nen este proyecto."
+
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Si ha olvidado la dirección de correo electrónico de su cuenta, o no puede recibir correo electrónico allí:"
+
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Si corres BOINC bajo tu cuenta, lo puedes accesar. Así se hace:"
+
+msgid "BOINC documentation"
+msgstr "Documentación de BOINC"
+
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Ir a la carpeta de datos de BOINC de tu ordenador (ver !boinc_wiki si necesitas ayuda para encontrarla)"
+
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Encuentra tu archivo de cuenta para este proyecto; tendrá el nombre de %file (donde el URL del proyecto es %URL)."
+
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Abra el archivo con un editor de texto como Notepad. Verás algo como:"
+
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Selecciona y copia la cadena entre <authenticator> y </authenticator> (%utor en el ejemplo anterior)."
+
+msgid "Paste the string into the field below, and click OK."
+msgstr "Pega la cadena en el campo de abajo y click en OK."
+
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Ahora estarás conectado a tu cuenta; actualiza el e-mail y la contraseña de tu cuenta."
+
+msgid "Log in with authenticator"
+msgstr "Iniciar sesión con autenticador"
+
+msgid "OK"
+msgstr "Aceptar"
+
+msgid "Post new topic"
+msgstr "Publicar nuevo tema"
+
+msgid "Create team message board"
+msgstr "Crear tablón de mensajes para equipo"
+
+msgid "Message board title"
+msgstr "Título de tablón de mensajes"
+
+msgid "Minimum time between posts"
+msgstr "Tiempo mínimo entre posts"
+
+msgid "Seconds"
+msgstr "Segundos"
+
+msgid "Minimum total credit to post"
+msgstr "Crédito mínimo para postear"
+
+msgid "Minimum avg credit to post"
+msgstr "Promedio mínimo de créditos para dejar mensajes"
+
+msgid "Allow public to read board?"
+msgstr "¿Permitir la lectura pública?"
+
+msgid "Create message board"
+msgstr "Crear un tablón de mensajes"
+
+msgid "About message boards"
+msgstr "Acerca de tablón de mensajes"
+
+msgid "You may create a message board for use by @team"
+msgstr "Puede crear un tablón de mensajes para uso de @team"
+
+msgid "Only members may post"
+msgstr "Sólo los miembros pueden postear"
+
+msgid "Only members may read (optional)"
+msgstr "Sólo los miembros pueden leer (opcional)"
+
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "El Fundador y los Administradores de Equipo tienen privilegios de moderador"
+
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (El mismo que las últimas @count veces)"
+
+msgid "Revise or post comment"
+msgstr "Revisar o enviar comentario"
+
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "A veces BOINC asigna identidades diferentes al mismo ordenador por error. Puedes corregir esto fusionando identidades antiguas con las nuevas."
+
+msgid ""
+"Check the computers that are the same as @name (created on @date at @time "
+"with computer ID @id)"
+msgstr "Revise las computadoras que son las mismas que @name (creadas el @date a las @time con ID de computadora @id)"
+
+msgid "Computer @old_id has been merged successfully into @id."
+msgstr "Computadora @old_id ha sido exitosamente unido a @id."
+
+msgid "parent removed"
+msgstr "padre eliminado"
+
+msgid "Remove"
+msgstr "Eliminar"
+
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
+msgstr "Una autenticación sera requerida cuando se cambie la dirección de E-mail o cuando se cree una nueva contraseña."
+
+msgid "Make unsticky"
+msgstr "Eliminar de adheridos"
+
+msgid "Remove sticky status from this topic"
+msgstr "Eliminar estado de adherido a este tema"
+
+msgid "Unhide"
+msgstr "Hacer visible"
+
+msgid "Unhide this comment"
+msgstr "Mostrar este comentario"
+
+msgid "Unpublished"
+msgstr "No publicado"
+
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Computadores @old_ids han sido exitosamente juntadas a @id."
+
+msgid "Joined"
+msgstr "Unido"
+
+msgid "Credit"
+msgstr "Crédito"
+
+msgid "RAC"
+msgstr "RAC"
+
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "No existe una cuenta para @email - Selecciona \"Crear nueva cuenta\" para registrarse"
+
+msgid "started discussion"
+msgstr "Discusión iniciada"
+
+msgid "commented on"
+msgstr "comentado en"
+
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "La contraseña introducida no es válida. Por favor, verifica que es correcta."
+
+msgid "Minimum value not met for @field"
+msgstr "Valor mínimo no cumplido para @field"
+
+msgid "Invalid data type for @field"
+msgstr "Tipo de datos inválido para @field"
+
+msgid "News"
+msgstr "Noticias"
+
+msgid "Remove friend"
+msgstr "Eliminar amigo"
+
+msgid "ignore list"
+msgstr "lista de ignorados"
+
+msgid "here"
+msgstr "aquí"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username está en tu !ignore_list. Click !here para ver esta publicación."
+
+msgid "hidden"
+msgstr "oculto"
+
+msgid "Unknown"
+msgstr "Desconocido"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Valor no válido para \"%preference\""
+
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: comentario posteado a \"!tema_nombre\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!autor ha posteado una respuesta a \"!tema_nombre\"."
+
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Para ver este tema en !sitio, dále click aquí:\n!commentario_url"
+
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "El fundador del grupo tiene @count dias para responder tu pedido de transferencia."
+
+msgid "Unlock"
+msgstr "Desbloquear"
+
+msgid "Unlock this thread for comments"
+msgstr "Desbloquear este hilo para los comentarios"
+
+msgid "project"
+msgstr "proyecto"
+
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email no es un correo electrónico válido, por favor, comprueba que sea correcto"
+
+msgid "Please enter your email address"
+msgstr "Por favor, introduce tu dirección de correo electrónico"
+
+msgid "There is no account with that authenticator."
+msgstr "No hay ninguna cuenta con ese autenticador."
+
+msgid "That authenticator is not valid."
+msgstr "Ese autenticador no es válido."
+
+msgid "Send request"
+msgstr "Enviar solicitud"
+
+msgid "Friend request from !name [!site]"
+msgstr "Petición de amistad de @name [!site]"
+
+msgid "Message"
+msgstr "Mensaje"
+
+msgid ""
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name te ha agregado como su amigo en !site. Puedes aprobar o denegar esta solicitud. Denegar esta solicitud no le enviará una notificación, pero será eliminada de ambas de tus cuentas.\n\nSigue este enlace para ver la solicitud:\n!link\n\n!message\n\nGracias,\nEl equipo de !site"
+
+msgid "Cancel friend request"
+msgstr "Cancelar petición de amistad"
+
+msgid "Please set the minimum time required between posts."
+msgstr "Por favor establezca un tiempo mínimo entre mensajes."
+
+msgid ""
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Por favor establezca un total mínimo de créditos que un usuario debe tener para que pueda dejar un mensaje en este tablero."
+
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Por favor establezca un promedio mínimo de créditos requerido para que un usuario pueda dejar un mensaje en este tablero."
+
+msgid "Edit message board"
+msgstr "Editar tablón de mensaje"
+
+msgid "Save message board"
+msgstr "Guardar tablón de mensaje"
+
+msgid "This is a team-only message board"
+msgstr "Este es un tablón solo para mensajes de equipo"
+
+msgid "Maximum value exceeded for @field"
+msgstr "Valor máximo excedido para @field"
+
+msgid "Approve request"
+msgstr "Aprobar petición"
+
+msgid "!name accepted your friend request [!site]"
+msgstr "!name ha aceptado tu petición de amistad [!site]"
+
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name te ha confirmado como su amigo en !site.\n\nSigue este enlace para ver su perfil:\n!link\n\n!message\n\nGracias,\nEl equipo de !team"
+
+msgid "posted"
+msgstr "Publicado"
+
+msgid "Add team admin"
+msgstr "Añadir administrador de equipo"
+
+msgid "Enter email address"
+msgstr "Introduzca su dirección de correo electrónico"
+
+msgid "Current team admins"
+msgstr "Administradores del equipo actual"
+
+msgid "About team admins"
+msgstr "Sobre los administradores de equipo"
+
+msgid "Team admins can:"
+msgstr "Los administradores de equipo pueden:"
+
+msgid "Edit team information"
+msgstr "Editar información de equipo"
+
+msgid "View the team's join / quit history"
+msgstr "Ver el historial de Unirse / Salirse del equipo"
+
+msgid "Moderate the team forum"
+msgstr "Moderar el foro del equipo"
+
+msgid "Remove members from the team"
+msgstr "Eliminar miembros del equipo"
+
+msgid "Disband a team if it has no members"
+msgstr "Disolver un equipo si no tiene miembros"
+
+msgid "Team admins cannot:"
+msgstr "Los administradores de equipo no pueden:"
+
+msgid "Change the team founder"
+msgstr "Cambiar fundador de equipo"
+
+msgid "Add / Remove team admins"
+msgstr "Añadir / eliminar administradores de equipo"
+
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Si un administrador de equipo se retira, deja de ser administrador del equipo. Recomendamos solo seleccionar personas que conozcas y confies"
+
+msgid "Lift user ban"
+msgstr "Eliminar suspensión de usuario"
+
+msgid "A team named \"@name\" already exists."
+msgstr "Ya existe un equipo con el nombre \"@name\"."
+
+msgid "A BOINC account already exists for @email."
+msgstr "Ya existe una cuenta de BOINC para @email."
+
+msgid "Make founder"
+msgstr "Hacer fundador"
+
+msgid "Changing the team founder"
+msgstr "Cambiando al fundador del equipo"
+
+msgid "Notes about changes in foundership:"
+msgstr "Notas sobre cambios en los fundadores"
+
+msgid "Any member of the team is eligible"
+msgstr "Cualquier miembro del equipo es elegible"
+
+msgid "Current founder becomes a normal user"
+msgstr "El actual fundador pasa a ser un usuario normal"
+
+msgid "Foundership can be requested by team members:"
+msgstr "La fundación puede ser solicitada por los miembros del equipo:"
+
+msgid "One request is allowed at a time"
+msgstr "Se permite una solicitud a la vez"
+
+msgid "It must be 60 days since any previous request"
+msgstr "Debe tener 60 días desde cualquier solicitud anterior"
+
+msgid "Any active request must be older than 90 days"
+msgstr "Cualquier solicitud activa debe tener más de 90 días"
+
+msgid "Current founder has 60 days to respond to a request"
+msgstr "El fundador actual tiene 60 dias para responder a una solicitud"
+
+msgid "BOINC-wide teams site"
+msgstr "Sitio de equipos BOINC"
+
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Este en un equipo BOINC. Los cambios pueden realizarse en el !sitio."
+
+msgid ""
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Un cambio de fundación de equipo ya ha sido solicitado recientemente. Solo está permitida una petición cada 90 días."
+
+msgid "@count days remaining"
+msgstr "@count días restantes"
+
+msgid "Team name is required."
+msgstr "Se requiere un nombre de equipo."
+
+msgid "Reason for banning this user"
+msgstr "Razón para suspender a este usuario"
+
+msgid ""
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Esta razón será incluido en un correo al usuario. Por favor escribe una explicación concisa de por qué se está suspendiendo a este usuario."
+
+msgid "Duration of the ban"
+msgstr "Duración de suspensión"
+
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Número de días hasta la expiración de suspensión. Fijar a 0 o suspender indefinidamente."
+
+msgid "Submit"
+msgstr "Enviar"
diff --git a/locale/es/BOINC-Manager.mo b/locale/es/BOINC-Manager.mo
index 06afcc8..83d7d67 100644
Binary files a/locale/es/BOINC-Manager.mo and b/locale/es/BOINC-Manager.mo differ
diff --git a/locale/es/BOINC-Manager.po b/locale/es/BOINC-Manager.po
old mode 100755
new mode 100644
index d1ad6fe..34e0415
--- a/locale/es/BOINC-Manager.po
+++ b/locale/es/BOINC-Manager.po
@@ -1,65 +1,66 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC Manager 4.x\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-02 00:00-0800\n"
-"PO-Revision-Date: 2013-09-22 20:57+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: BOINC Development Team <rwalton at ssl.berkeley.edu>\n"
-"Language: es\n"
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Antonio Regidor García <chikitosan at gmail.com>, 2015
+# el buve, 2015
+# fco.aguilarm <fco.aguilarm at gmail.com>, 2015
+# Gonzalo Pesquero <gpesquero at yahoo.es>, 2016
+# Kevin Puertas <kevin01010 at gmail.com>, 2015
+# kinoxl <kinoxl at gmail.com>, 2015
+# Lluis de Miguel <demi_23-04-97 at hotmail.com>, 2015
+# miguel raz <miguelraz at ciencias.unam.mx>, 2015
+# Pablo Hinojosa <pablohn6 at gmail.com>, 2016
+# Raúl, 2015
+# Ronald Roncalla <rjpre30 at hotmail.com>, 2016
+# vladevil <vladevil at gmail.com>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-27 21:41+0000\n"
+"Last-Translator: Gonzalo Pesquero <gpesquero at yahoo.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/boinc/boinc/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-1: clientgui/msw\n"
-"X-Poedit-SearchPath-2: clientgui/gtk\n"
-"X-Poedit-SearchPath-3: clientgui/mac\n"
-"X-Poedit-SearchPath-0: clientgui\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-POOTLE-MTIME: 1379883430.0\n"
 
-# 81%
-#: AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
-msgstr "Identifique su cuenta en %s"
+msgstr "Identifíquese en %s"
 
-#: AccountInfoPage.cpp:393
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
-msgstr ""
-"Por favor introduzca la información de su cuenta\n"
-"(para crear una cuenta, visite la página del proyecto)"
+msgstr "Escriba la información de su cuenta\n(para crear una cuenta, visite la página del proyecto)"
 
-#: AccountInfoPage.cpp:397
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
-msgstr ""
-"Este proyecto no acepta actualmente nuevas cuentas.\n"
-"Usted puede unirse sólo si ya tiene una cuenta."
+msgstr "Este proyecto no acepta actualmente nuevas cuentas.\nUsted puede unirse sólo si ya tiene una cuenta."
 
-#: AccountInfoPage.cpp:401
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
-msgstr "¿Ha ejecutando este proyecto antes?"
+msgstr "¿Está usted ejecutando ya este proyecto?"
 
-#: AccountInfoPage.cpp:405
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&No, nuevo usuario"
 
-#: AccountInfoPage.cpp:408
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "Sí, usuario &existente"
 
-#: AccountInfoPage.cpp:413
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -67,491 +68,510 @@ msgid ""
 "Please click on the 'Find login information' link\n"
 "below to find out what to put in the email address and\n"
 "password fields."
-msgstr ""
-"No se ha podido establecer la información de su cuenta\n"
-"automáticamente.\n"
-"\n"
-"Por favor, pulse en el vínculo 'Buscar información de acceso'\n"
-"debajo para encontrar que poner en los campos\n"
-"dirección de correo y contraseña."
+msgstr "No se ha podido establecer la información de su cuenta\nautomáticamente.\n\nPor favor, pulse en el vínculo 'Buscar información de acceso'\ndebajo para encontrar que poner en los campos\ndirección de correo y contraseña."
 
-#: AccountInfoPage.cpp:416
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Buscar información de acceso"
 
-#: AccountInfoPage.cpp:436 AccountInfoPage.cpp:641
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "C&lave:"
 
-#: AccountInfoPage.cpp:443 AccountInfoPage.cpp:665
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Escoja una c&lave:"
 
-#: AccountInfoPage.cpp:446
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "C&onfirmar clave:"
 
-#: AccountInfoPage.cpp:453
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "¿Está usted ejecutando ya %s?"
 
-#: AccountInfoPage.cpp:482
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Nombre  de usuario:"
 
-#: AccountInfoPage.cpp:508
+#: clientgui/AccountInfoPage.cpp:483
+msgid "&Email address or LDAP ID:"
+msgstr "&Dirección de email o ID LDAP"
+
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Dirección de correo:"
 
-#: AccountInfoPage.cpp:515
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "longitud mínima %d"
 
-#: AccountInfoPage.cpp:522
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "¿Olvidó su clave?"
 
-#: AccountInfoPage.cpp:529
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
-msgstr ""
-"Si no se ha registrado todavía con este administrador de cuentas,\n"
-"por favor, hágalo antes de continuar.  Pulse en el vínculo de debajo\n"
-"para registrarse o recuperar una contraseña olvidada."
+msgstr "Si no se ha registrado todavía con este administrador de cuentas,\npor favor, hágalo antes de continuar.  Pulse en el vínculo de debajo\npara registrarse o recuperar una contraseña olvidada."
 
-#: AccountInfoPage.cpp:532
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Sitio web del administrador de cuentas"
 
-#: AccountInfoPage.cpp:574 WelcomePage.cpp:348
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Añadir proyecto"
 
-#: AccountInfoPage.cpp:576
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Actualizar el administrador de cuentas"
 
-#: AccountInfoPage.cpp:578 WelcomePage.cpp:307 WelcomePage.cpp:321
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Usar administrador de cuentas"
 
-#: AccountInfoPage.cpp:585
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
-msgstr ""
+msgstr "Por favor, introduce un nombre de usuario."
 
-#: AccountInfoPage.cpp:587
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
-msgstr "Por favor especifique una dirección de correo"
+msgstr "Por favor, introduce una dirección de correo electrónico."
 
-#: AccountInfoPage.cpp:597
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
-msgstr ""
+msgstr "Introduzca una contraseña de, como mínimo, %d caracteres."
 
-#: AccountInfoPage.cpp:607
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
-msgstr ""
-"La clave y la confirmación de clave no concuerdan. Por favor tecléelas de "
-"nuevo."
+msgstr "La clave y la confirmación de clave no concuerdan. Por favor tecléelas de nuevo."
 
-#: AccountManagerInfoPage.cpp:272
+#: clientgui/AccountManagerInfoPage.cpp:270
 msgid "Choose an account manager"
 msgstr "Elija un administrador de cuentas"
 
-#: AccountManagerInfoPage.cpp:275
+#: clientgui/AccountManagerInfoPage.cpp:273
 msgid ""
 "To choose an account manager, click its name or \n"
 "type its URL below."
-msgstr ""
-"Para elegir un administrador de cuentas, pulse sobre su nombre o \n"
-"introduzca su URL debajo."
+msgstr "Para elegir un administrador de cuentas, pulse sobre su nombre o \nintroduzca su URL debajo."
 
-#: AccountManagerInfoPage.cpp:279
-#, fuzzy
+#: clientgui/AccountManagerInfoPage.cpp:277
 msgid "Account manager details:"
-msgstr "Sitio web del administrador de cuentas"
+msgstr "Detalles del administrador de cuentas:"
 
-#: AccountManagerInfoPage.cpp:283
-#, fuzzy
+#: clientgui/AccountManagerInfoPage.cpp:281
 msgid "Account manager &URL:"
-msgstr "U&RL del Administrador de Cuentas:"
+msgstr "&URL del Administrador de Cuentas:"
 
-#: AccountManagerInfoPage.cpp:287
+#: clientgui/AccountManagerInfoPage.cpp:285
 msgid "Open web page"
-msgstr ""
+msgstr "Abrir sitio web"
 
-#: AccountManagerInfoPage.cpp:290
+#: clientgui/AccountManagerInfoPage.cpp:288
 msgid "Visit this account manager's web site"
-msgstr ""
+msgstr "Visita el sitio web del adminsitrador de esta cuenta"
 
-#: AccountManagerProcessingPage.cpp:187 AccountManagerPropertiesPage.cpp:193
+#. %s is the project name
+#. i.e. 'BOINC', 'GridRepublic'
+#: clientgui/AccountManagerProcessingPage.cpp:186
+#: clientgui/AccountManagerPropertiesPage.cpp:192
 #, c-format
 msgid "Communicating with %s."
 msgstr "Comunicándose con %s."
 
-#: AccountManagerProcessingPage.cpp:194 AccountManagerPropertiesPage.cpp:200
+#: clientgui/AccountManagerProcessingPage.cpp:193
+#: clientgui/AccountManagerPropertiesPage.cpp:199
 msgid "Communicating with server."
 msgstr "Comunicándose con el servidor."
 
-#: AccountManagerProcessingPage.cpp:199 AccountManagerPropertiesPage.cpp:205
+#: clientgui/AccountManagerProcessingPage.cpp:198
+#: clientgui/AccountManagerPropertiesPage.cpp:204
 msgid "Please wait..."
 msgstr "Por favor espere..."
 
-#: AccountManagerProcessingPage.cpp:326
+#: clientgui/AccountManagerProcessingPage.cpp:325
 msgid "An internal server error has occurred.\n"
 msgstr "Ha ocurrido un error interno en el servidor.\n"
 
-#: AdvancedFrame.cpp:95
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Conectado"
 
-#: AdvancedFrame.cpp:103
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Desconectado"
 
-#: AdvancedFrame.cpp:322 sg_BoincSimpleFrame.cpp:119
+#: clientgui/AdvancedFrame.cpp:329
+#, c-format
+msgid "New %s window..."
+msgstr "Nueva %s ventana..."
+
+#: clientgui/AdvancedFrame.cpp:333
+#, c-format
+msgid "Open another %s window"
+msgstr "Abra otra %s ventana"
+
+#: clientgui/AdvancedFrame.cpp:344
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Seleccionar ordenador...⇥Ctrl+Mayús+I"
+
+#: clientgui/AdvancedFrame.cpp:345
+msgid "Connect to a BOINC client on another computer"
+msgstr "Conectar al cliente BOINC en otro ordenador"
+
+#: clientgui/AdvancedFrame.cpp:349
+msgid "Shut down connected client..."
+msgstr "Cerrar c&liente conectado..."
+
+#: clientgui/AdvancedFrame.cpp:350
+msgid "Shut down the currently connected BOINC client"
+msgstr "Apagar el cliente BOINC que se encuentra conectado"
+
+#: clientgui/AdvancedFrame.cpp:355 clientgui/sg_BoincSimpleFrame.cpp:120
 #, c-format
 msgid "Close the %s window"
 msgstr "Cerrar la ventana %s"
 
-#: AdvancedFrame.cpp:325 sg_BoincSimpleFrame.cpp:122
-msgid "&Close Window"
+#: clientgui/AdvancedFrame.cpp:358 clientgui/sg_BoincSimpleFrame.cpp:123
+msgid "&Close window"
 msgstr "&Cerrar Ventana"
 
-#: AdvancedFrame.cpp:336 AdvancedFrame.cpp:343 AdvancedFrame.cpp:350
+#: clientgui/AdvancedFrame.cpp:367 clientgui/AdvancedFrame.cpp:372
+#: clientgui/AdvancedFrame.cpp:377 clientgui/sg_BoincSimpleFrame.cpp:132
+#: clientgui/sg_BoincSimpleFrame.cpp:137
 #, c-format
 msgid "Exit %s"
 msgstr "Salir de %s"
 
-#: AdvancedFrame.cpp:371
+#: clientgui/AdvancedFrame.cpp:391 clientgui/sg_BoincSimpleFrame.cpp:151
+msgid "Preferences..."
+msgstr "Preferencias..."
+
+#: clientgui/AdvancedFrame.cpp:400
 msgid "&Notices\tCtrl+Shift+N"
 msgstr "&Avisos\t Ctrl+Shift+A"
 
-#: AdvancedFrame.cpp:372
-msgid "Display notices"
-msgstr "Visualiza los anuncios"
+#: clientgui/AdvancedFrame.cpp:401
+msgid "Show notices"
+msgstr "Mostrar avisos"
 
-#: AdvancedFrame.cpp:377
+#: clientgui/AdvancedFrame.cpp:406
 msgid "&Projects\tCtrl+Shift+P"
 msgstr "&Proyectos\t Crtl+Shift+P"
 
-#: AdvancedFrame.cpp:378
-msgid "Display projects"
-msgstr "Visualizar los proyectos"
+#: clientgui/AdvancedFrame.cpp:407
+msgid "Show projects"
+msgstr "Mostrar proyectos"
 
-#: AdvancedFrame.cpp:383
+#: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
 msgstr "&Tareas\tCtrl+Shift+T"
 
-#: AdvancedFrame.cpp:384
-msgid "Display tasks"
-msgstr "Visualizar las tareas"
+#: clientgui/AdvancedFrame.cpp:413
+msgid "Show tasks"
+msgstr "Mostrar tareas"
 
-#: AdvancedFrame.cpp:389
+#: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
 msgstr "Trans&ferencias\tCtrl+Shift+F"
 
-#: AdvancedFrame.cpp:390
-msgid "Display transfers"
-msgstr "Visualizar las transferencias"
+#: clientgui/AdvancedFrame.cpp:419
+msgid "Show file transfers"
+msgstr "Mostrar transferencias de archivos"
 
-#: AdvancedFrame.cpp:395
+#: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
 msgstr "&Estadísticas\t Ctrl+Shift+E"
 
-#: AdvancedFrame.cpp:396
-msgid "Display statistics"
-msgstr "Visualizar las estadísticas"
+#: clientgui/AdvancedFrame.cpp:425
+msgid "Show statistics"
+msgstr "Mostrar estadísticas"
 
-#: AdvancedFrame.cpp:401
-msgid "&Disk usage\tCtrl+Shift+D"
-msgstr "&Disco\tCtrl+Shift+D"
+#: clientgui/AdvancedFrame.cpp:430
+msgid "&Disk\tCtrl+Shift+D"
+msgstr "&Disk\tCtrl+Shift+D"
 
-#: AdvancedFrame.cpp:402
-msgid "Display disk usage"
-msgstr "Visualizar uso del disco"
+#: clientgui/AdvancedFrame.cpp:431
+msgid "Show disk usage"
+msgstr "Mostrar uso del disco"
 
-#: AdvancedFrame.cpp:409
+#: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
 msgstr "&Vista Simple...\tCtrl+Shift+V"
 
-#: AdvancedFrame.cpp:410
-msgid "Display the simple graphical interface."
-msgstr "Muestra el interfaz gráfico simple de BOINC."
+#: clientgui/AdvancedFrame.cpp:439
+msgid "Switch to the Simple View"
+msgstr "Cambiar a vista simple"
+
+#: clientgui/AdvancedFrame.cpp:453 clientgui/AdvancedFrame.cpp:477
+#: clientgui/sg_BoincSimpleFrame.cpp:205
+msgid "&Add project..."
+msgstr "&Añadir proyecto..."
+
+#: clientgui/AdvancedFrame.cpp:454 clientgui/AdvancedFrame.cpp:478
+#: clientgui/sg_BoincSimpleFrame.cpp:206
+msgid "Add a project"
+msgstr "Añadir un proyecto"
 
-#: AdvancedFrame.cpp:424
-msgid "&Add project or account manager..."
-msgstr "&Añadir un proyecto o un administrador de cuentas..."
+#: clientgui/AdvancedFrame.cpp:458
+msgid "&Use account manager..."
+msgstr "&Usar administrador de cuentas..."
 
-#: AdvancedFrame.cpp:425 sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr ""
-"Ser voluntario de alguno o todos de los más de 30 proyectos en muchas áreas "
-"de la ciencia"
+#: clientgui/AdvancedFrame.cpp:459
+msgid "Use an account manager to control this computer."
+msgstr "Utilizar un administrador de cuenta para controlar este ordenador"
 
-#: AdvancedFrame.cpp:429
+#: clientgui/AdvancedFrame.cpp:463
 #, c-format
 msgid "&Synchronize with %s"
 msgstr "&Sincronizar con %s"
 
-#: AdvancedFrame.cpp:433
+#: clientgui/AdvancedFrame.cpp:467
 #, c-format
 msgid "Get current settings from %s"
 msgstr "Obtener las preferencias actuales de %s"
 
-#: AdvancedFrame.cpp:443
-msgid "&Add project..."
-msgstr "&Añadir proyecto..."
-
-#: AdvancedFrame.cpp:444
-msgid "Add a project"
-msgstr "Añadir un proyecto"
-
-#: AdvancedFrame.cpp:447
+#: clientgui/AdvancedFrame.cpp:481
 #, c-format
 msgid "S&top using %s..."
 msgstr "&Parar de usar %s..."
 
-#: AdvancedFrame.cpp:453
+#: clientgui/AdvancedFrame.cpp:487
 msgid "Remove this computer from account manager control."
 msgstr "Eliminar el control de este ordenador por el administrador de cuentas."
 
-#: AdvancedFrame.cpp:458 sg_BoincSimpleFrame.cpp:178
-msgid "&Options..."
-msgstr "&Opciones..."
+#: clientgui/AdvancedFrame.cpp:493
+msgid "Run CPU &benchmarks"
+msgstr "Ejecutar &pruebas de rendimiento de la CPU"
 
-#: AdvancedFrame.cpp:459 sg_BoincSimpleFrame.cpp:179
-msgid "Configure display options and proxy settings"
-msgstr "Configurar las opciones del interfaz de usuario y los valores del proxy"
+#: clientgui/AdvancedFrame.cpp:494
+msgid "Run tests that measure CPU speed"
+msgstr "Ejecutar pruebas para medir la velocidad de la CPU"
 
-#: AdvancedFrame.cpp:463 sg_BoincSimpleFrame.cpp:172
-msgid "Computing &preferences..."
-msgstr "&Preferencias de computación..."
+#: clientgui/AdvancedFrame.cpp:498
+msgid "Retry pending transfers"
+msgstr "Reintentar transferencias pendientes"
 
-#: AdvancedFrame.cpp:464 sg_BoincSimpleFrame.cpp:173
-msgid "Configure computing preferences"
-msgstr "Configurar preferencias de computación"
+#: clientgui/AdvancedFrame.cpp:499
+msgid "Retry deferred file transfers and task requests"
+msgstr "Reintentar transferencias de archivos diferidas y petición de tareas"
+
+#: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
+msgid "Event Log...\tCtrl+Shift+E"
+msgstr "Registro de sucesos... \t Ctrl+Shift+E"
+
+#: clientgui/AdvancedFrame.cpp:505
+msgid "Show diagnostic messages"
+msgstr "Mostrar mensajes diagnósticos"
 
-#: AdvancedFrame.cpp:472
+#: clientgui/AdvancedFrame.cpp:513
 msgid "&Run always"
 msgstr "&Ejecutar siempre"
 
-#: AdvancedFrame.cpp:473
+#: clientgui/AdvancedFrame.cpp:514
 msgid "Allow work regardless of preferences"
 msgstr "Permitir el trabajo sin tener en cuenta sus preferencias"
 
-#: AdvancedFrame.cpp:477
+#: clientgui/AdvancedFrame.cpp:518
 msgid "Run based on &preferences"
 msgstr "Ejecutar según &preferencias"
 
-#: AdvancedFrame.cpp:478
+#: clientgui/AdvancedFrame.cpp:519
 msgid "Allow work according to preferences"
 msgstr "Permitir el trabajo de acuerdo con sus preferencias"
 
-#: AdvancedFrame.cpp:482
+#: clientgui/AdvancedFrame.cpp:523
 msgid "&Suspend"
 msgstr "S&uspender"
 
-#: AdvancedFrame.cpp:483
+#: clientgui/AdvancedFrame.cpp:524
 msgid "Stop work regardless of preferences"
 msgstr "Detiene el trabajo sin tener en cuenta sus preferencias"
 
-#: AdvancedFrame.cpp:508
+#: clientgui/AdvancedFrame.cpp:549
 msgid "Use GPU always"
 msgstr "Usar la GPU siempre"
 
-#: AdvancedFrame.cpp:509
+#: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
 msgstr "Permitir trabajar a la GPU sin tener en cuenta sus preferencias"
 
-#: AdvancedFrame.cpp:513
+#: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
 msgstr "Usar &GPU según preferencias"
 
-#: AdvancedFrame.cpp:514
+#: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
 msgstr "Permitir trabajar a la GPU de acuerdo con sus preferencias"
 
-#: AdvancedFrame.cpp:518
+#: clientgui/AdvancedFrame.cpp:559
 msgid "Suspend GPU"
 msgstr "Suspender GPU"
 
-#: AdvancedFrame.cpp:519
+#: clientgui/AdvancedFrame.cpp:560
 msgid "Stop GPU work regardless of preferences"
 msgstr "Detiene el trabajo de la GPU sin tener en cuenta sus preferencias"
 
-#: AdvancedFrame.cpp:543
-msgid "Network activity always available"
-msgstr "Actividad de red siempre &disponible"
+#: clientgui/AdvancedFrame.cpp:584
+msgid "Network activity always"
+msgstr "Actividad de red siempre"
 
-#: AdvancedFrame.cpp:544
+#: clientgui/AdvancedFrame.cpp:585
 msgid "Allow network activity regardless of preferences"
 msgstr "Actividad de red sin tener en cuenta sus preferencias"
 
-#: AdvancedFrame.cpp:548
+#: clientgui/AdvancedFrame.cpp:589
 msgid "Network activity based on preferences"
 msgstr "Actividad de red basada en sus preferencias"
 
-#: AdvancedFrame.cpp:549
+#: clientgui/AdvancedFrame.cpp:590
 msgid "Allow network activity according to preferences"
-msgstr "Perimitir actividad de red de acuerdo con sus preferencias"
+msgstr "Permitir actividad de red de acuerdo con sus preferencias"
 
-#: AdvancedFrame.cpp:553
-msgid "Network activity suspended"
-msgstr "Actividad de red suspendida"
+#: clientgui/AdvancedFrame.cpp:594
+msgid "Suspend network activity"
+msgstr "Suspender actividad de la red"
 
-#: AdvancedFrame.cpp:554
-msgid "Stop BOINC network activity"
-msgstr "Detiene la actividad de red de BOINC"
+#: clientgui/AdvancedFrame.cpp:595
+msgid "Stop network activity"
+msgstr "Detener actividad de red"
 
-#: AdvancedFrame.cpp:564
-#, c-format
-msgid "Connect to another computer running %s"
-msgstr "Conecta a otro ordenador ejecutando %s"
+#: clientgui/AdvancedFrame.cpp:604 clientgui/sg_BoincSimpleFrame.cpp:191
+msgid "Computing &preferences..."
+msgstr "&Preferencias de computación..."
 
-#: AdvancedFrame.cpp:569
-msgid "Select computer..."
-msgstr "Seleccionar orde&nador..."
+#: clientgui/AdvancedFrame.cpp:605 clientgui/sg_BoincSimpleFrame.cpp:192
+msgid "Configure computing preferences"
+msgstr "Configurar preferencias de computación"
 
-#: AdvancedFrame.cpp:574
-msgid "Shut down connected client..."
-msgstr "Cerrar c&liente conectado..."
+#: clientgui/AdvancedFrame.cpp:610
+msgid "Exclusive applications..."
+msgstr "Aplicaciones exclusivas..."
 
-#: AdvancedFrame.cpp:575
-msgid "Shut down the currently connected client"
-msgstr "Cerrar el cliente actualmente conectado"
+#: clientgui/AdvancedFrame.cpp:611
+msgid "Configure exclusive applications"
+msgstr "Configurar aplicaciones exclusivas"
 
-#: AdvancedFrame.cpp:579
-msgid "Run CPU &benchmarks"
-msgstr "Ejecutar &pruebas de rendimiento de la CPU"
+#: clientgui/AdvancedFrame.cpp:616
+msgid "Select columns..."
+msgstr "Seleccionar columnas..."
+
+#: clientgui/AdvancedFrame.cpp:617
+msgid "Select which columns to display"
+msgstr "Seleccione las columnas a mostrar"
 
-#: AdvancedFrame.cpp:580
-msgid "Runs BOINC CPU benchmarks"
-msgstr "Ejecuta las pruebas de rendimiento de BOINC"
+#: clientgui/AdvancedFrame.cpp:621
+msgid "Event Log options...\tCtrl+Shift+F"
+msgstr "Opciones de registro de eventos...\tCtrl+Shift+F"
 
-#: AdvancedFrame.cpp:584
-msgid "Do network communication"
-msgstr "Ejecutar comunicaciones de red"
+#: clientgui/AdvancedFrame.cpp:622
+msgid "Enable or disable various diagnostic messages"
+msgstr "Activar o desactivar varios mensajes de diagnóstico"
 
-#: AdvancedFrame.cpp:585
-msgid "Do all pending network communication"
-msgstr "Ejecutar todas las comunicaciones de red pendientes"
+#: clientgui/AdvancedFrame.cpp:626 clientgui/sg_BoincSimpleFrame.cpp:197
+msgid "&Other options..."
+msgstr "&Otras opciones..."
 
-# 94%
-#: AdvancedFrame.cpp:589
+#: clientgui/AdvancedFrame.cpp:627
+msgid "Configure display options and network settings"
+msgstr "Configurar las opciones de la interfaz de usuario y las opciones de red"
+
+#: clientgui/AdvancedFrame.cpp:632
 msgid "Read config files"
 msgstr "Leer ficheros de configuración"
 
-#: AdvancedFrame.cpp:590
-msgid "Read configuration info from cc_config.xml and any app_config.xml files"
-msgstr ""
-"Leer información de configuración de los ficheros cc_config.xml y todos los "
-"app_config.xml"
+#: clientgui/AdvancedFrame.cpp:633
+msgid ""
+"Read configuration info from cc_config.xml and any app_config.xml files"
+msgstr "Leer información de configuración de los ficheros cc_config.xml y todos los app_config.xml"
 
-#: AdvancedFrame.cpp:594
+#: clientgui/AdvancedFrame.cpp:637
 msgid "Read local prefs file"
 msgstr "Leer a&rchivo local de preferencias"
 
-#: AdvancedFrame.cpp:595
+#: clientgui/AdvancedFrame.cpp:638
 msgid "Read preferences from global_prefs_override.xml."
 msgstr "Leer preferencias de global_prefs_override.xml."
 
-#: AdvancedFrame.cpp:600
-#, c-format
-msgid "Launch another instance of %s..."
-msgstr "Ejecutar otro proceso de %s..."
-
-#: AdvancedFrame.cpp:604
-#, c-format
-msgid "Launch another %s"
-msgstr "Ejecutar otro %s"
-
-#: AdvancedFrame.cpp:614
-msgid "Event Log...\tCtrl+Shift+E"
-msgstr "Registro de sucesos... \t Ctrl+Shift+E"
-
-#: AdvancedFrame.cpp:615
-msgid "Display diagnostic messages."
-msgstr "Visualizar mensajes de diagnóstico."
-
-#: AdvancedFrame.cpp:625 sg_BoincSimpleFrame.cpp:188
+#: clientgui/AdvancedFrame.cpp:646 clientgui/sg_BoincSimpleFrame.cpp:219
 #, c-format
 msgid "%s &help"
 msgstr "A&yuda %s"
 
-#: AdvancedFrame.cpp:631 sg_BoincSimpleFrame.cpp:194
+#: clientgui/AdvancedFrame.cpp:650 clientgui/sg_BoincSimpleFrame.cpp:223
 #, c-format
 msgid "Show information about %s"
 msgstr "Muestra información acerca de  %s"
 
-#: AdvancedFrame.cpp:643
+#: clientgui/AdvancedFrame.cpp:660
 #, c-format
 msgid "&%s help"
 msgstr "Ayuda &%s"
 
-#: AdvancedFrame.cpp:649 sg_BoincSimpleFrame.cpp:212
+#: clientgui/AdvancedFrame.cpp:664 clientgui/sg_BoincSimpleFrame.cpp:237
 #, c-format
 msgid "Show information about the %s"
 msgstr "Muestra información acerca de %s"
 
-#: AdvancedFrame.cpp:661 sg_BoincSimpleFrame.cpp:224
+#: clientgui/AdvancedFrame.cpp:675 clientgui/sg_BoincSimpleFrame.cpp:247
 #, c-format
-#, c-format, fuzzy
 msgid "%s &web site"
 msgstr "Página &web de %s"
 
-#: AdvancedFrame.cpp:667 sg_BoincSimpleFrame.cpp:230
+#: clientgui/AdvancedFrame.cpp:679 clientgui/sg_BoincSimpleFrame.cpp:251
 #, c-format
 msgid "Show information about BOINC and %s"
 msgstr "Muestra información acerca de BOINC y %s"
 
-#: AdvancedFrame.cpp:679 BOINCTaskBar.cpp:530 sg_BoincSimpleFrame.cpp:242
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
+#: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
 msgstr "A&cerca de %s..."
 
-#: AdvancedFrame.cpp:685 sg_BoincSimpleFrame.cpp:248
+#: clientgui/AdvancedFrame.cpp:696 clientgui/sg_BoincSimpleFrame.cpp:268
 msgid "Licensing and copyright information."
 msgstr "Información de licencia y copyright"
 
-#: AdvancedFrame.cpp:692 sg_BoincSimpleFrame.cpp:255
+#: clientgui/AdvancedFrame.cpp:703 clientgui/sg_BoincSimpleFrame.cpp:275
 msgid "&File"
 msgstr "&Archivo"
 
-#: AdvancedFrame.cpp:696 sg_BoincSimpleFrame.cpp:259
+#: clientgui/AdvancedFrame.cpp:707 clientgui/sg_BoincSimpleFrame.cpp:279
 msgid "&View"
 msgstr "&Ver"
 
-#: AdvancedFrame.cpp:700 sg_BoincSimpleFrame.cpp:263
-msgid "&Tools"
-msgstr "&Herramientas"
-
-#: AdvancedFrame.cpp:704
+#: clientgui/AdvancedFrame.cpp:711
 msgid "&Activity"
 msgstr "Ac&tividad"
 
-#: AdvancedFrame.cpp:708
-msgid "A&dvanced"
-msgstr "Avan&zado"
+#: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
+msgid "&Options"
+msgstr "&Opciones"
+
+#: clientgui/AdvancedFrame.cpp:719 clientgui/sg_BoincSimpleFrame.cpp:287
+msgid "&Tools"
+msgstr "&Herramientas"
 
-#: AdvancedFrame.cpp:712 DlgEventLog.cpp:332 sg_BoincSimpleFrame.cpp:267
-#: wizardex.cpp:374 wizardex.cpp:381
+#: clientgui/AdvancedFrame.cpp:723 clientgui/sg_BoincSimpleFrame.cpp:291
+#: clientgui/wizardex.cpp:374 clientgui/wizardex.cpp:381
 msgid "&Help"
 msgstr "A&yuda"
 
-#: AdvancedFrame.cpp:1199
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Dejar de usar %s"
 
-#: AdvancedFrame.cpp:1204
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -559,264 +579,225 @@ msgid ""
 "but you'll have to manage projects manually.\n"
 "\n"
 "Do you want to stop using %s?"
-msgstr ""
-"Si deja de usar %s,\n"
-"conservará todos sus proyectos actuales,\n"
-"pero tendrá que administrar los proyectos manualmente.\n"
-"\n"
-"¿Quiere dejar de usar %s?"
+msgstr "Si deja de usar %s,\nconservará todos sus proyectos actuales,\npero tendrá que administrar los proyectos manualmente.\n\n¿Quiere dejar de usar %s?"
 
-#: AdvancedFrame.cpp:1401
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Cerrar el cliente actual..."
 
-#: AdvancedFrame.cpp:1410
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
-msgstr ""
-"%s cerrá el cliente actual y le pedirá\n"
-"otro ordenador al que conectarse (host)."
+msgstr "%s cerrá el cliente actual y le pedirá\notro ordenador al que conectarse (host)."
 
-#: AdvancedFrame.cpp:1745 DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: AdvancedFrame.cpp:1754
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s ha agregado con éxito %s"
 
-#: AdvancedFrame.cpp:1893
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: AdvancedFrame.cpp:1897
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Conectando a %s"
 
-#: AdvancedFrame.cpp:1900
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Conectado a %s (%s)"
 
-#: AlreadyExistsPage.cpp:184
+#: clientgui/AlreadyExistsPage.cpp:184
 msgid "Username already in use"
 msgstr "Nombre de usuario ya en uso."
 
-#: AlreadyExistsPage.cpp:187
+#: clientgui/AlreadyExistsPage.cpp:187
 msgid ""
 "An account with that username already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Ya existe una cuenta con ese nombre de usuario y tiene una\n"
-"clave diferente que la que usted introdujo.\n"
-"\n"
-"Por favor visite la página web del proyecto y siga allí las instrucciones."
+msgstr "Ya existe una cuenta con ese nombre de usuario y tiene una\nclave diferente que la que usted introdujo.\n\nPor favor visite la página web del proyecto y siga allí las instrucciones."
 
-#: AlreadyExistsPage.cpp:191
+#: clientgui/AlreadyExistsPage.cpp:191
 msgid "Email address already in use"
 msgstr "Dirección de correo ya en uso."
 
-#: AlreadyExistsPage.cpp:194
+#: clientgui/AlreadyExistsPage.cpp:194
 msgid ""
 "An account with that email address already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Ya existe una cuenta con esa dirección de correo y tiene una\n"
-"clave diferente que la que usted introdujo.\n"
-"\n"
-"Por favor visite la página web del proyecto y siga allí las instrucciones."
+msgstr "Ya existe una cuenta con esa dirección de correo y tiene una\nclave diferente que la que usted introdujo.\n\nPor favor visite la página web del proyecto y siga allí las instrucciones."
 
-#: AsyncRPC.cpp:1031
+#: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
 msgstr "Comunicando con cliente BOINC._ Por favor, espere ..."
 
-#: AsyncRPC.cpp:1034
+#: clientgui/AsyncRPC.cpp:1034
 #, c-format
 msgid "&Quit %s"
 msgstr "&Cerrar %s"
 
-#: AsyncRPC.cpp:1036
+#: clientgui/AsyncRPC.cpp:1036
 #, c-format
 msgid "E&xit %s"
 msgstr "&Salir de %s"
 
-#: AsyncRPC.cpp:1040
+#: clientgui/AsyncRPC.cpp:1040
 #, c-format
 msgid "%s - Communication"
 msgstr "%s - Comunicación"
 
-#: AsyncRPC.cpp:1056 DlgAdvPreferencesBase.cpp:107 sg_DlgPreferences.cpp:433
+#: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: BOINCBaseFrame.cpp:505
+#: clientgui/BOINCBaseFrame.cpp:512
 #, c-format
 msgid "%s - Connection Error"
 msgstr "%s - Error de Conexión"
 
-#: BOINCBaseFrame.cpp:514
+#: clientgui/BOINCBaseFrame.cpp:521
 msgid ""
 "You currently are not authorized to manage the client.\n"
-"Please contact your administrator to add you to the 'boinc_users' local user "
-"group."
-msgstr ""
-"Usted no está autorizado actualmente a administrar el cliente.\n"
-"Por favor, contacte con su administrador para que le añada al grupo de "
-"usuarios locales 'boinc_users'."
+"Please contact your administrator to add you to the 'boinc_users' local user group."
+msgstr "Usted no está autorizado actualmente a administrar el cliente.\nPor favor, contacte con su administrador para que le añada al grupo de usuarios locales 'boinc_users'."
 
-#: BOINCBaseFrame.cpp:523
+#: clientgui/BOINCBaseFrame.cpp:530
 msgid ""
 "Authorization failed connecting to running client.\n"
 "Make sure you start this program in the same directory as the client."
-msgstr ""
-"Fallo en la autorización para conectarse a un cliente en ejecución.\n"
-"Asegúrese de que inicia este programa en el mismo directorio que el cliente."
+msgstr "Fallo en la autorización para conectarse a un cliente en ejecución.\nAsegúrese de que inicia este programa en el mismo directorio que el cliente."
 
-#: BOINCBaseFrame.cpp:525
+#: clientgui/BOINCBaseFrame.cpp:532
 msgid "Authorization failed connecting to running client."
 msgstr "Falló la autorización la conectar a cliente en ejecución."
 
-#: BOINCBaseFrame.cpp:533
+#: clientgui/BOINCBaseFrame.cpp:540
 msgid "The password you have provided is incorrect, please try again."
 msgstr "La clave que ha introducido no es válida, por favor inténtelo de nuevo."
 
-#: BOINCBaseFrame.cpp:577
+#: clientgui/BOINCBaseFrame.cpp:584
 #, c-format
 msgid "%s - Connection Failed"
 msgstr "%s - Conexión Fallida"
 
-#: BOINCBaseFrame.cpp:586
+#: clientgui/BOINCBaseFrame.cpp:593
 #, c-format
 msgid ""
 "%s is not able to connect to a %s client.\n"
 "Would you like to try to connect again?"
-msgstr ""
-"%s no ha podido conectar con un cliente %s.\n"
-"¿Le gustaría intentarlo de nuevo?"
+msgstr "%s no ha podido conectar con un cliente %s.\n¿Le gustaría intentarlo de nuevo?"
 
-#: BOINCBaseFrame.cpp:622
+#: clientgui/BOINCBaseFrame.cpp:629
 #, c-format
 msgid "%s - Daemon Start Failed"
 msgstr "%s - Inicio de Servicio Fallido"
 
-#: BOINCBaseFrame.cpp:632
+#: clientgui/BOINCBaseFrame.cpp:639
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
-"Please launch the Control Panel->Administative Tools->Services applet and "
-"start the BOINC service."
-msgstr ""
-"%s no puede iniciar un cliente %s.\n"
-"Por favor, vaya a Panel de Control->Herramientas Administrativas->Servicios "
-"e inicie el servicio BOINC."
+"Please launch the Control Panel->Administative Tools->Services applet and start the BOINC service."
+msgstr "%s no puede iniciar un cliente %s.\nPor favor, vaya a Panel de Control->Herramientas Administrativas->Servicios e inicie el servicio BOINC."
 
-#: BOINCBaseFrame.cpp:638
+#: clientgui/BOINCBaseFrame.cpp:645
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please start the daemon and try again."
-msgstr ""
-"%s no puede iniciar un cliente %s.\n"
-"Por favor inicie el servicio e inténtelo de nuevo"
+msgstr "%s no puede iniciar un cliente %s.\nPor favor inicie el servicio e inténtelo de nuevo"
 
-#: BOINCBaseFrame.cpp:689
+#: clientgui/BOINCBaseFrame.cpp:696
 #, c-format
 msgid "%s - Connection Status"
 msgstr "%s - Estado de la Conexión"
 
-#: BOINCBaseFrame.cpp:700
+#: clientgui/BOINCBaseFrame.cpp:707
 #, c-format
 msgid ""
 "%s is not currently connected to a %s client.\n"
-"Please use the 'Advanced\\Select Computer...' menu option to connect up to a "
-"%s client.\n"
+"Please use the 'Advanced\\Select Computer...' menu option to connect up to a %s client.\n"
 "To connect up to your local computer please use 'localhost' as the host name."
-msgstr ""
-"%s no está actualmente conectado a un cliente %s.\n"
-"Por favor utilice la opción de menú 'Avanzado\\Seleccionar ordenador...' para "
-"conectar a un cliente %s.\n"
-"Para conectar a su ordenador local por favor utilice 'localhost' como nombre "
-"del ordenador."
+msgstr "%s no está actualmente conectado a un cliente %s.\nPor favor utilice la opción de menú 'Avanzado\\Seleccionar ordenador...' para conectar a un cliente %s.\nPara conectar a su ordenador local por favor utilice 'localhost' como nombre del ordenador."
 
-#: BOINCBaseView.cpp:779
+#. Create the web sites task group
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Páginas web del proyecto"
 
-#: BOINCClientManager.cpp:575
+#: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
 msgstr "%s - Salida inesperada"
 
-#: BOINCClientManager.cpp:585
+#: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
 "Would you like to restart it again?"
-msgstr ""
-"El cliente %s ha salido inesperadamente 3 veces durante los últimos %d "
-"minutos.\n"
-"¿Desea reiniciarlo de nuevo?"
+msgstr "El cliente %s ha salido inesperadamente 3 veces durante los últimos %d minutos.\n¿Desea reiniciarlo de nuevo?"
 
-#: BOINCDialupManager.cpp:61
+#: clientgui/BOINCDialupManager.cpp:61
 #, c-format
 msgid "%s - Network Status"
 msgstr "%s - Estado de la Red"
 
-#: BOINCDialupManager.cpp:241
+#: clientgui/BOINCDialupManager.cpp:241
 #, c-format
 msgid ""
 "%s needs to connect to the Internet.\n"
 "May it do so now?"
-msgstr ""
-"%s necesita conectar a Internet.\n"
-"¿Puede hacerlo ahora?"
+msgstr "%s necesita conectar a Internet.\n¿Puede hacerlo ahora?"
 
-#: BOINCDialupManager.cpp:254
+#: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
 msgstr "%s está conectando a Internet."
 
-#: BOINCDialupManager.cpp:303
+#: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
 msgstr "%s se ha conectado a Internet con éxito."
 
-#: BOINCDialupManager.cpp:331
+#: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
 msgstr "%s falló al conectarse a Internet."
 
-#: BOINCDialupManager.cpp:372
+#: clientgui/BOINCDialupManager.cpp:372
 #, c-format
 msgid ""
 "%s has detected it is now connected to the Internet.\n"
 "Updating all projects and retrying all transfers."
-msgstr ""
-"%s ha detectado que ahora está conectado a Internet.\n"
-"Actualizando todos los proyectos y reintentando todas las transferencias."
+msgstr "%s ha detectado que ahora está conectado a Internet.\nActualizando todos los proyectos y reintentando todas las transferencias."
 
-#: BOINCDialupManager.cpp:417
+#: clientgui/BOINCDialupManager.cpp:417
 #, c-format
 msgid "%s has successfully disconnected from the Internet."
 msgstr "%s se ha desconectado de Internet con éxito."
 
-#: BOINCDialupManager.cpp:433
+#: clientgui/BOINCDialupManager.cpp:433
 #, c-format
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s falló al desconectarse de Internet."
 
-#: BOINCGUIApp.cpp:339
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -827,853 +808,983 @@ msgid ""
 " or\n"
 "  - contact your administrator to add you to the 'boinc_master'\n"
 "     user group."
-msgstr ""
-"Usted actualmente no está autorizado para administrar el cliente.\n"
-"\n"
-"Para ejecutar %s con este usuario, por favor:\n"
-"    - reinstale %s respondiendo \"Yes\" a la pregunta acerca de\n"
-"           usuarios que no son administradores\n"
-"  o\n"
-"    - contacte con su administrador para que le añada al\n"
-"           grupo de usuarios 'boinc_master'."
-
-#: BOINCGUIApp.cpp:345
+msgstr "Usted actualmente no está autorizado para administrar el cliente.\n\nPara ejecutar %s con este usuario, por favor:\n    - reinstale %s respondiendo \"Yes\" a la pregunta acerca de\n           usuarios que no son administradores\n  o\n    - contacte con su administrador para que le añada al\n           grupo de usuarios 'boinc_master'."
+
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
-msgstr ""
-"Los permisos o los propietarios de %s no están configurados correctamente; "
-"por favor reinstale %s.\n"
-"(Código de error %d"
+msgstr "Los permisos o los propietarios de %s no están configurados correctamente; por favor reinstale %s.\n(Código de error %d"
 
-#: BOINCGUIApp.cpp:351
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " en "
 
-#: BOINCGUIApp.cpp:354 MainDocument.cpp:2484 MainDocument.cpp:2534
-#: MainDocument.cpp:2554 ViewTransfers.cpp:803
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: BOINCGUIApp.cpp:384
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
-msgstr ""
-"Es necesario reiniciar para que BOINC funcione correctamente.\n"
-"Por favor, reinicie su ordenador e inténtelo de nuevo."
+msgstr "Es necesario reiniciar para que BOINC funcione correctamente.\nPor favor, reinicie su ordenador e inténtelo de nuevo."
 
-#: BOINCGUIApp.cpp:385 DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "Administrador BOINC"
 
-#: BOINCGUIApp.cpp:572
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
-msgstr ""
-"El Administrador BOINC ha sido iniciado por el sistema operativo "
-"automáticamente"
+msgstr "El Administrador BOINC ha sido iniciado por el sistema operativo automáticamente"
 
-#: BOINCGUIApp.cpp:574
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
-msgstr ""
-"Inicia BOINC de forma que sólo sea visible el icono en el área de "
-"notificación"
+msgstr "Inicia BOINC de forma que sólo sea visible el icono en el área de notificación"
 
-#: BOINCGUIApp.cpp:576
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Carpeta que contiene el ejecutable del Cliente BOINC"
 
-#: BOINCGUIApp.cpp:577
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Carpeta con los datos de BOINC"
 
-#: BOINCGUIApp.cpp:579
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Nombre del ordenador o dirección IP"
 
-#: BOINCGUIApp.cpp:580
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "Número de puerto GUI RPC"
 
-#: BOINCGUIApp.cpp:581
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Contraseña"
 
-#: BOINCGUIApp.cpp:582
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Arrancar BOINC con estos argumentos opcionales"
 
-#: BOINCGUIApp.cpp:583
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "desactiva la seguridad de usuarios y permisos en BOINC"
 
-#: BOINCGUIApp.cpp:584
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
-msgstr ""
-"activar modo depuración de pieles (skin) para permitir los mensajes de error "
-"del administrador de pieles"
+msgstr "activar modo depuración de pieles (skin) para permitir los mensajes de error del administrador de pieles"
 
-#: BOINCGUIApp.cpp:585
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "permitidas múltiples instancias del administrador BOINC"
 
-#: BOINCGUIApp.cpp:587
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "No usado: solución temporal para el error en XCode 4.2"
 
-#: BOINCGUIApp.cpp:814
+#: clientgui/BOINCGUIApp.cpp:591
+msgid "Not run the daemon"
+msgstr "No ejecutado por daemon"
+
+#. These are just special tags so deal with them in a special way
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Detección Automática)"
 
-#: BOINCGUIApp.cpp:815
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Desconocido)"
 
-#: BOINCGUIApp.cpp:816
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Definido por el Usuario)"
 
-#: BOINCTaskBar.cpp:508
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Abrir la web %s..."
 
-#: BOINCTaskBar.cpp:515
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Abrir %s..."
 
-#: BOINCTaskBar.cpp:522 BOINCTaskBar.cpp:619 BOINCTaskBar.cpp:627
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Dormitar"
 
-#: BOINCTaskBar.cpp:524 BOINCTaskBar.cpp:646 BOINCTaskBar.cpp:654
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Dormitar la GPU"
 
-#: BOINCTaskBar.cpp:542
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Salir"
 
-#: BOINCTaskBar.cpp:612 ViewProjects.cpp:718 ViewWork.cpp:795
-#: sg_BoincSimpleFrame.cpp:758 sg_ProjectCommandPopup.cpp:110
-#: sg_TaskCommandPopup.cpp:102
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
+#: clientgui/sg_ProjectCommandPopup.cpp:125
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Reanudar"
 
-#: BOINCTaskBar.cpp:639
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Reanudar GPU"
 
-#: BOINCTaskBar.cpp:713
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Computación permitida"
 
-#: BOINCTaskBar.cpp:717
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Computación suspendida - "
 
-#: BOINCTaskBar.cpp:727
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Computación de la GPU permitida"
 
-#: BOINCTaskBar.cpp:730
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "Computación de la GPU suspendida - "
 
-#: BOINCTaskBar.cpp:739
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Uso de la red permitido"
 
-#: BOINCTaskBar.cpp:742
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Actividad de red suspendida - "
 
-#: BOINCTaskBar.cpp:750
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Reconectando a cliente."
 
-#: BOINCTaskBar.cpp:752
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "No conectado a un cliente."
 
-#: BOINCTaskBar.cpp:805
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Avisos"
 
-#: BOINCTaskBar.cpp:811
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Hay nuevos avisos - haz click para verlos."
 
-#: CompletionErrorPage.cpp:199
+#: clientgui/CompletionErrorPage.cpp:199
 msgid "Failed to add project"
 msgstr "Fallo al añadir el proyecto"
 
-#: CompletionErrorPage.cpp:204
+#: clientgui/CompletionErrorPage.cpp:204
 msgid "Failed to update account manager"
 msgstr "Fallo al actualizar el administrador de cuentas"
 
-#: CompletionErrorPage.cpp:208
+#: clientgui/CompletionErrorPage.cpp:208
 msgid "Failed to remove account manager"
 msgstr "Fallo al borrar el administrador de cuentas"
 
-#: CompletionErrorPage.cpp:212
+#: clientgui/CompletionErrorPage.cpp:212
 msgid "Failed to add account manager"
 msgstr "Fallo al añadir el administrador de cuentas"
 
-#: CompletionErrorPage.cpp:221
+#: clientgui/CompletionErrorPage.cpp:221
 msgid ""
 "Please try again later.\n"
 "\n"
 "Click Finish to close."
-msgstr ""
+msgstr "Por favor intenta otra vez más tarde.\n\nDále click a Fin para terminar."
 
-#: CompletionErrorPage.cpp:225 CompletionPage.cpp:222 CompletionPage.cpp:242
-#: CompletionPage.cpp:273
+#: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
+#: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
 msgid "Click Finish to close."
 msgstr "Haga clic en Finalizar para cerrar."
 
-#: CompletionErrorPage.cpp:234
+#: clientgui/CompletionErrorPage.cpp:234
 msgid "Messages from server:"
 msgstr "Mensajes del servidor:"
 
-#: CompletionPage.cpp:207
+#: clientgui/CompletionPage.cpp:207
 msgid "Project added"
 msgstr "Proyecto añadido"
 
-#: CompletionPage.cpp:213
+#: clientgui/CompletionPage.cpp:213
 msgid "This project has been successfully added."
 msgstr "Este proyecto ha sido añadido correctamente."
 
-#: CompletionPage.cpp:218
+#: clientgui/CompletionPage.cpp:218
 msgid ""
 "When you click Finish, your web browser will go to a page where\n"
 "you can set your account name and preferences."
-msgstr ""
-"Cuando haga clic en Finalizar, su navegador irá a la página donde\n"
-"usted pueda establecer su nombre de cuenta y preferencias."
+msgstr "Cuando haga clic en Finalizar, su navegador irá a la página donde\nusted pueda establecer su nombre de cuenta y preferencias."
 
-#: CompletionPage.cpp:232
+#: clientgui/CompletionPage.cpp:232
 #, c-format
 msgid "Update from %s completed."
 msgstr "Actualización desde %s completada."
 
-#: CompletionPage.cpp:236
+#: clientgui/CompletionPage.cpp:236
 msgid "Update completed."
 msgstr "Actualización completada."
 
-#: CompletionPage.cpp:247
+#. Attach Completed
+#: clientgui/CompletionPage.cpp:247
 msgid "Now using account manager"
 msgstr "Actualmente se está usando administrador de cuentas"
 
-#: CompletionPage.cpp:252
+#: clientgui/CompletionPage.cpp:252
 #, c-format
 msgid "Welcome to %s!"
 msgstr "¡Bienvenido a %s!"
 
-#: CompletionPage.cpp:263
+#: clientgui/CompletionPage.cpp:263
 #, c-format
 msgid "You are now using %s to manage accounts."
 msgstr "Usted está utilizando %s para administrar sus cuentas."
 
-#: CompletionPage.cpp:267
+#: clientgui/CompletionPage.cpp:267
 msgid "You are now using this account manager."
 msgstr "Usted está usando este administrador de cuentas."
 
-#: DlgAbout.cpp:113 mac/Mac_GUI.cpp:96
+#: clientgui/DlgAbout.cpp:113
 #, c-format
 msgid "About %s"
 msgstr "Acerca de %s"
 
-#: DlgAbout.cpp:172
+#: clientgui/DlgAbout.cpp:172
 msgid "Version:"
 msgstr "Versión:"
 
-#: DlgAbout.cpp:180
+#: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
 msgstr "Versión de wxWidgets"
 
-#: DlgAbout.cpp:188
+#: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
 msgstr "Copyright:"
 
-# 98%
-#: DlgAbout.cpp:192
+#: clientgui/DlgAbout.cpp:192
 msgid ""
-"(C) 2003-2013 University of California, Berkeley.\n"
+"(C) 2003-2015 University of California, Berkeley.\n"
 "All Rights Reserved."
-msgstr ""
-"(C) 2003-2013 Universidad de California, Berkeley.\n"
-"Reservados Todos los Derechos."
+msgstr "(C) 2003-2015 Universidad de California, Berkeley.\nTodos los derechos reservados."
+
+#: clientgui/DlgAbout.cpp:196
+msgid "BOINC is distributed under the GNU Lesser General Public License v3.0."
+msgstr "BOINC está distribuido bajo la licencia de GNU Lesse General Public License v3.0."
 
-#: DlgAbout.cpp:196
-msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr "Infraestructura Abierta de Berkeley para Computación en Red"
+#: clientgui/DlgAbout.cpp:203
+msgid "For more information, visit "
+msgstr "Para más información, visite"
 
-#: DlgAbout.cpp:208 DlgExitMessage.cpp:173 DlgGenericMessage.cpp:120
-#: DlgOptions.cpp:396 DlgSelectComputer.cpp:163
+#: clientgui/DlgAbout.cpp:215 clientgui/DlgExitMessage.cpp:173
+#: clientgui/DlgGenericMessage.cpp:120 clientgui/DlgOptions.cpp:410
+#: clientgui/DlgSelectComputer.cpp:163
 msgid "&OK"
 msgstr "&Aceptar"
 
-#: DlgAdvPreferences.cpp:544
-msgid "invalid number"
-msgstr ""
-
-#: DlgAdvPreferences.cpp:545
-msgid "invalid time, format is HH:MM"
-msgstr "hora inválida, el format es HH:MM"
-
-#: DlgAdvPreferences.cpp:546
-msgid "invalid time interval, format is HH:MM-HH:MM"
-msgstr "intervalo de tiempo inválido, el formato es HH:MM-HH:MM"
-
-#: DlgAdvPreferences.cpp:751
-msgid "invalid input value detected"
-msgstr "detectada introducción de valor inválido"
-
-#: DlgAdvPreferences.cpp:753
-msgid "Validation Error"
-msgstr "Error de Validación"
-
-#: DlgAdvPreferences.cpp:885 DlgAdvPreferences.cpp:891
-#: DlgAdvPreferences.cpp:897
-msgid "Applications to add"
-msgstr "Aplicaciones a añadir"
-
-#: DlgAdvPreferences.cpp:914
-#, c-format
-msgid "'%s' is not an executable application."
-msgstr "'%s' no es una aplicación ejecutable."
-
-#: DlgAdvPreferences.cpp:915 DlgAdvPreferences.cpp:962
-#: DlgAdvPreferences.cpp:986
-msgid "Add Exclusive App"
-msgstr "Añadir Aplicación Exclusiva"
-
-#: DlgAdvPreferences.cpp:927
-msgid "Name of application to add?"
-msgstr "¿Nombre de la aplicación a añadir?"
-
-#: DlgAdvPreferences.cpp:927
-msgid "Add exclusive app"
-msgstr "Añadir aplicación exclusiva"
-
-#: DlgAdvPreferences.cpp:961
-#, c-format
-msgid "Application names must end with '%s'"
-msgstr "Los nombres de aplicación deben terminar en '%s'"
-
-#: DlgAdvPreferences.cpp:985
+#: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
-msgid "'%s' is already in the list."
-msgstr "'%s' ya está en la lista."
+msgid "%s - Computing preferences"
+msgstr "%s - Preferencias de computación"
 
-#: DlgAdvPreferences.cpp:1077
+#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:163
 msgid ""
-"Do you really want to clear all local preferences?\n"
-"(This will not affect exclusive applications.)"
-msgstr ""
-"¿Quiere realmente borrar todas las preferencias locales?\n"
-"(Esto no afectará a las aplicaciones exclusivas.)"
-
-#: DlgAdvPreferences.cpp:1078 sg_DlgPreferences.cpp:1030
-msgid "Confirmation"
-msgstr "Confirmación"
+"Using local preferences.\n"
+"Click \"Use web prefs\" to use web-based preferences from"
+msgstr "Usar preferencias locales.\nDa click a \"Usar preferencias web\" para usar preferencias basadas en la web de"
 
-#: DlgAdvPreferencesBase.cpp:46 sg_DlgPreferences.cpp:946
-#, c-format
-msgid "%s - Preferences"
-msgstr "%s - Preferencias"
+#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
+msgid "Using web-based preferences from"
+msgstr "Usando preferencias web de"
 
-#: DlgAdvPreferencesBase.cpp:62
-msgid ""
-"This dialog controls preferences for this computer only.\n"
-"Click OK to set preferences.\n"
-"Click Clear to restore web-based settings (except exclusive apps)."
-msgstr ""
-"Este diálogo sólo controla las preferencias de este ordenador.\n"
-"Pulse Aceptar para guardar las preferencias.\n"
-"Pulse Restablecer para restaurar las preferencias basadas en web (excepto "
-"aplicaciones exclusivas)."
+#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
+msgid "Set values and click OK to use local preferences instead."
+msgstr "Fijar valores y dar click a OK para usar preferencias locales en vez."
 
-#: DlgAdvPreferencesBase.cpp:65 sg_DlgPreferences.cpp:428
-msgid "Clear"
-msgstr "Restablecer"
+#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
+msgid "Use web prefs"
+msgstr "Usar preferencias web"
 
-#: DlgAdvPreferencesBase.cpp:66
-msgid "clear all local preferences and close the dialog"
-msgstr "restaurar todas las preferencias locales y cerrar la ventana"
+#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
+msgid "Restore web-based preferences and close the dialog."
+msgstr "Restaurar preferencais a base web y cerrar diálogo"
 
-#: DlgAdvPreferencesBase.cpp:81
-msgid "processor usage"
-msgstr "uso del procesador"
+#: clientgui/DlgAdvPreferencesBase.cpp:140
+#: clientgui/DlgAdvPreferencesBase.cpp:684
+msgid "Computing"
+msgstr "Procesando"
 
-#: DlgAdvPreferencesBase.cpp:84
-msgid "network usage"
-msgstr "uso de la red"
+#. Network schedule
+#: clientgui/DlgAdvPreferencesBase.cpp:143
+#: clientgui/DlgAdvPreferencesBase.cpp:886
+msgid "Network"
+msgstr "Red"
 
-#: DlgAdvPreferencesBase.cpp:87
-msgid "disk and memory usage"
-msgstr "uso de disco y memoria"
+#: clientgui/DlgAdvPreferencesBase.cpp:146
+msgid "Disk and memory"
+msgstr "Disco y memoria"
 
-#: DlgAdvPreferencesBase.cpp:90
-msgid "exclusive applications"
-msgstr "aplicaciones exclusivas"
+#: clientgui/DlgAdvPreferencesBase.cpp:149
+msgid "Daily schedules"
+msgstr "Programa diario"
 
-#: DlgAdvPreferencesBase.cpp:102 sg_DlgPreferences.cpp:424
+#: clientgui/DlgAdvPreferencesBase.cpp:162
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "Aceptar"
 
-#: DlgAdvPreferencesBase.cpp:103
-msgid "save all values and close the dialog"
-msgstr "grabar todos los valores y cerrar la ventana"
+#: clientgui/DlgAdvPreferencesBase.cpp:163
+msgid "Save all values and close the dialog."
+msgstr "Guardar todos los valores y cerrar el diálogo."
 
-#: DlgAdvPreferencesBase.cpp:108
-msgid "close the dialog without saving"
-msgstr "cerrar la ventana sin grabar"
+#: clientgui/DlgAdvPreferencesBase.cpp:169
+msgid "Close the dialog without saving."
+msgstr "Cerrar el diálogo sin guardar."
 
-#: DlgAdvPreferencesBase.cpp:112 Localization.cpp:35 Localization.cpp:121
-#: Localization.cpp:139 sg_BoincSimpleFrame.cpp:794 sg_DlgPreferences.cpp:439
+#: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
+#: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
+#: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Ayuda"
 
-#: DlgAdvPreferencesBase.cpp:113
-msgid "shows the preferences web page"
-msgstr "muestra la página web de preferencias"
-
-#: DlgAdvPreferencesBase.cpp:135
-msgid "Computing allowed"
-msgstr "Computación permitida"
+#: clientgui/DlgAdvPreferencesBase.cpp:174
+msgid "Shows the preferences web page."
+msgstr "Muestra la página web de preferencias."
 
-#: DlgAdvPreferencesBase.cpp:139
-msgid "While computer is on batteries"
-msgstr "Cuando el ordenador funcione con baterías"
+#: clientgui/DlgAdvPreferencesBase.cpp:236
+#: clientgui/DlgAdvPreferencesBase.cpp:463
+msgid "Usage limits"
+msgstr "Límite de uso"
 
-#: DlgAdvPreferencesBase.cpp:142
+#: clientgui/DlgAdvPreferencesBase.cpp:241
+#, no-c-format
 msgid ""
-"check this if you want this computer to do work while it runs on batteries"
-msgstr ""
-"márquela si quiere que este ordenador trabaje mientras está funcionando con "
-"baterías"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Guardar algunos CPUs como libres para otras apliaciones. Por Ejemplo: 75% significa que usas 6 núcleos en una CPU de 8 núcleos."
 
-#: DlgAdvPreferencesBase.cpp:148
-msgid "While computer is in use"
-msgstr "Cuando el ordenador está en uso"
-
-#: DlgAdvPreferencesBase.cpp:151
-msgid ""
-"check this if you want this computer to do work even when you're using it"
-msgstr ""
-"márquela si quiere que este ordenador trabaje incluso cuando usted lo está "
-"usando"
+#: clientgui/DlgAdvPreferencesBase.cpp:243
+#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
+msgid "Use at most"
+msgstr "Utilizar como  máximo"
 
-#: DlgAdvPreferencesBase.cpp:157
-msgid "Use GPU while computer is in use"
-msgstr "Usar la GPU cuando el ordenador está en uso"
+#: clientgui/DlgAdvPreferencesBase.cpp:248
+#, no-c-format
+msgid "% of the CPUs"
+msgstr "% de la CPU"
 
-#: DlgAdvPreferencesBase.cpp:160
+#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
+#, no-c-format
 msgid ""
-"check this if you want your GPU to do work even when you're using the "
-"computer"
-msgstr ""
-"márquela si quiere que su GPU ejecute tareas incluso cuando usted esté "
-"usando su ordenador"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Suspender/resumir computación cada pocos segundos para reducir temperatura de CPU y consumo de energía. Ejemplo: 75% significa procesar por 3 segundos, esperar por 1 segundo, y repetir."
 
-#: DlgAdvPreferencesBase.cpp:172
-msgid "Only after computer has been idle for"
-msgstr "Sólo si el ordenador ha estado inactivo durante"
+#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
+#, no-c-format
+msgid "% of CPU time"
+msgstr "% del tiempo de la CPU"
 
-#: DlgAdvPreferencesBase.cpp:182
-msgid ""
-"do work only after you haven't used the computer for this number of minutes"
-msgstr ""
-"hacer trabajo sólo cuando no se haya usado el ordenador durante este número "
-"de minutos"
+#: clientgui/DlgAdvPreferencesBase.cpp:267
+msgid "When to suspend"
+msgstr "Cuando suspender"
 
-#: DlgAdvPreferencesBase.cpp:187 DlgAdvPreferencesBase.cpp:336
-#: sg_DlgPreferences.cpp:417
-msgid "minutes"
-msgstr "minutos"
+#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:239
+msgid "Suspend when computer is on battery"
+msgstr "Suspender cuando la computadora usa la batería"
 
-#: DlgAdvPreferencesBase.cpp:206
-msgid "While processor usage is less than"
-msgstr "Cuando el uso del procesador es menor que"
+#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Marcar esto para suspender cómputo en portables cuando operan con batería."
 
-#: DlgAdvPreferencesBase.cpp:216
-msgid "suspend work if processor usage exceeds this level"
-msgstr "suspender el trabajo si el uso del procesador excede este nivel"
+#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
+msgid "Suspend when computer is in use"
+msgstr "Suspender cuando el ordenador esté en uso"
 
-#: DlgAdvPreferencesBase.cpp:221
-msgid "percent (0 means no restriction)"
-msgstr "porciento (0 significa sin restricciones)"
+#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Selecciona esto para suspender cómputo y transferencia de datos cuando estas usando al computadora."
 
-#: DlgAdvPreferencesBase.cpp:235 DlgAdvPreferencesBase.cpp:496
-msgid "Every day between hours of"
-msgstr "Cada día entre las horas"
+#: clientgui/DlgAdvPreferencesBase.cpp:291
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Suspender computación GPU cuando el ordenador esté en uso"
 
-#: DlgAdvPreferencesBase.cpp:239
-msgid "start work at this time"
-msgstr "empezar el trabajo a esta hora"
+#: clientgui/DlgAdvPreferencesBase.cpp:294
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Selecciona para suspender computación de GPU cuando estés usando la computadora."
 
-#: DlgAdvPreferencesBase.cpp:243 DlgAdvPreferencesBase.cpp:504
-#: sg_DlgPreferences.cpp:326 sg_DlgPreferences.cpp:348
-msgid "and"
-msgstr "y"
+#. min idle time
+#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Esto determina cuando la computadora es considerada 'en uso'."
 
-#: DlgAdvPreferencesBase.cpp:247
-msgid "stop work at this time"
-msgstr "suspender el trabajo a esta hora"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'En uso' significa actividad en el ratón/teclado en los últimos"
 
-#: DlgAdvPreferencesBase.cpp:251 DlgAdvPreferencesBase.cpp:512
-msgid "(no restriction if equal)"
-msgstr "(sin restricciones si son iguales)"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:315
+#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:276
+msgid "minutes"
+msgstr "minutos"
 
-#: DlgAdvPreferencesBase.cpp:256 DlgAdvPreferencesBase.cpp:517
-msgid "Day-of-week override:"
-msgstr "Inactividad por día de la semana:"
+#: clientgui/DlgAdvPreferencesBase.cpp:323
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "suspender el trabajo si el uso del procesador excede este nivel"
 
-#: DlgAdvPreferencesBase.cpp:261 DlgAdvPreferencesBase.cpp:522
-msgid "check box to specify hours for this day of week"
-msgstr ""
-"seleccione el cuadro para especificar las horas para este día de la semana"
+#: clientgui/DlgAdvPreferencesBase.cpp:325
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Suspender computación cuando la computadora está ocupada corriendo otros programas."
 
-#: DlgAdvPreferencesBase.cpp:267 DlgAdvPreferencesBase.cpp:528
-msgid "Monday"
-msgstr "Lunes"
+#: clientgui/DlgAdvPreferencesBase.cpp:339
+msgid "To suspend by time of day, see the \"Daily Schedules\" section."
+msgstr "Para suspender durante partes del día vea la sección de \"Horarios Diarios\""
 
-#: DlgAdvPreferencesBase.cpp:274 DlgAdvPreferencesBase.cpp:535
-msgid "Tuesday"
-msgstr "Martes"
+#. Context: heading for a group of miscellaneous preferences
+#: clientgui/DlgAdvPreferencesBase.cpp:349
+#: clientgui/DlgAdvPreferencesBase.cpp:516
+msgid "Other"
+msgstr "Otros"
 
-#: DlgAdvPreferencesBase.cpp:281 DlgAdvPreferencesBase.cpp:542
-msgid "Wednesday"
-msgstr "Miércoles"
+#. buffer sizes
+#: clientgui/DlgAdvPreferencesBase.cpp:355
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Almacene suficientes tareas para mantener el ordenador ocupado un tiempo"
 
-#: DlgAdvPreferencesBase.cpp:288 DlgAdvPreferencesBase.cpp:549
-msgid "Thursday"
-msgstr "Jueves"
+#. context: Store at least ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:359
+msgid "Store at least"
+msgstr "Almacenar por lo menos"
 
-#: DlgAdvPreferencesBase.cpp:295 DlgAdvPreferencesBase.cpp:556
-msgid "Friday"
-msgstr "Viernes"
+#. context: Store at least ___ days of work
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:370
+#: clientgui/DlgAdvPreferencesBase.cpp:392
+msgid "days of work"
+msgstr "días de trabajo"
 
-#: DlgAdvPreferencesBase.cpp:302 DlgAdvPreferencesBase.cpp:563
-msgid "Saturday"
-msgstr "Sábado"
+#: clientgui/DlgAdvPreferencesBase.cpp:376
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Almacene tareas adicionales mínimas. Así se determina cuanto trabajo se solicita al contactar con un proyecto."
 
-#: DlgAdvPreferencesBase.cpp:309 DlgAdvPreferencesBase.cpp:570
-msgid "Sunday"
-msgstr "Domingo"
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:380
+msgid "Store up to an additional"
+msgstr "Almacene incluso un adicional"
 
-#: DlgAdvPreferencesBase.cpp:323
-msgid "Other options"
-msgstr "Otras opciones"
+#: clientgui/DlgAdvPreferencesBase.cpp:399
+#, c-format
+msgid "If you run several projects, %s may switch between them this often."
+msgstr "Si ejecuta varios proyectos, %s puede cambiar entre ellos."
 
-#: DlgAdvPreferencesBase.cpp:330
-msgid "Switch between applications every"
-msgstr "Cambio entre aplicaciones cada"
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:404
+msgid "Switch between tasks every"
+msgstr "Cambiar entre tareas cada"
 
-#: DlgAdvPreferencesBase.cpp:339
-msgid "On multiprocessor systems, use at most"
-msgstr "En sistemas multiprocesador, utilizar como máximo"
+#: clientgui/DlgAdvPreferencesBase.cpp:419
+msgid ""
+"This controls how often tasks save their state to disk, so that they later "
+"can be continued from that point."
+msgstr "Esto controla cada cuanto tiempo grabar el estado en disco para que, de esta manera, se pueda continuar desde ese punto."
 
-#: DlgAdvPreferencesBase.cpp:346
-#, no-c-format
-msgid "% of the processors (0 means ignore this setting)"
-msgstr ""
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:423
+msgid "Request tasks to checkpoint at most every"
+msgstr "Solicita tareas al punto de referencia al menos cada "
 
-#: DlgAdvPreferencesBase.cpp:349 DlgAdvPreferencesBase.cpp:605
-#: DlgAdvPreferencesBase.cpp:627 DlgAdvPreferencesBase.cpp:648
-#: DlgAdvPreferencesBase.cpp:669 DlgAdvPreferencesBase.cpp:679
-msgid "Use at most"
-msgstr "Utilizar como  máximo"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:432
+msgid "seconds"
+msgstr "segundos"
 
-#: DlgAdvPreferencesBase.cpp:356
-#, no-c-format
-msgid "% CPU time"
-msgstr "% del tiempo de la CPU"
+#. upload/download rates
+#: clientgui/DlgAdvPreferencesBase.cpp:469
+msgid "Limit the download rate of file transfers."
+msgstr "Limitar la tasa de descarga de los ficheros transferidos."
 
-#: DlgAdvPreferencesBase.cpp:378
-msgid "General options"
-msgstr "Opciones generales"
+#: clientgui/DlgAdvPreferencesBase.cpp:470
+msgid "Limit download rate to"
+msgstr "Limitar la tasa de descarga a "
 
-#: DlgAdvPreferencesBase.cpp:386
-msgid "Maximum download rate"
-msgstr "Velocidad máxima de descarga"
+#: clientgui/DlgAdvPreferencesBase.cpp:474
+#: clientgui/DlgAdvPreferencesBase.cpp:483
+msgid "KB/second"
+msgstr "KB/segundo"
 
-#: DlgAdvPreferencesBase.cpp:392 DlgAdvPreferencesBase.cpp:401
-msgid "KBytes/sec."
-msgstr "KB/s"
+#: clientgui/DlgAdvPreferencesBase.cpp:478
+msgid "Limit the upload rate of file transfers."
+msgstr "Limitar la tasa de subida de la transferencia de ficheros."
 
-#: DlgAdvPreferencesBase.cpp:395
-msgid "Maximum upload rate"
-msgstr "Velocidad máxima de envío"
+#: clientgui/DlgAdvPreferencesBase.cpp:479
+msgid "Limit upload rate to"
+msgstr "Limitar la subida a "
 
-#: DlgAdvPreferencesBase.cpp:406
-msgid "Transfer at most"
-msgstr "Transferir como máximo"
+#: clientgui/DlgAdvPreferencesBase.cpp:490
+#, c-format
+msgid "Example: %s should transfer at most 2000 MB of data every 30 days."
+msgstr "Ejemplo: %s debería transferir como máximo 2000 MB de información cada 30 días."
 
-#: DlgAdvPreferencesBase.cpp:412
-msgid "Mbytes"
-msgstr "Mbytes"
+#: clientgui/DlgAdvPreferencesBase.cpp:492
+msgid "Limit usage to"
+msgstr "Limitar uso a "
 
-#: DlgAdvPreferencesBase.cpp:415
-msgid "every"
-msgstr "cada"
+#: clientgui/DlgAdvPreferencesBase.cpp:496
+msgid "MB every"
+msgstr "MB cada"
 
-#: DlgAdvPreferencesBase.cpp:421 DlgAdvPreferencesBase.cpp:444
-#: DlgAdvPreferencesBase.cpp:463
+#: clientgui/DlgAdvPreferencesBase.cpp:500
 msgid "days"
 msgstr "días"
 
-#: DlgAdvPreferencesBase.cpp:429
-msgid "Minimum work buffer"
-msgstr "Bufer mínimo de trabajo"
-
-#: DlgAdvPreferencesBase.cpp:438
-msgid "Try to maintain enough tasks to keep busy for this many days"
-msgstr ""
-"Trata de mantener suficientes tareas para estar ocupado durante todos estos "
-"días"
-
-#: DlgAdvPreferencesBase.cpp:450
-msgid "Max additional work buffer"
-msgstr "Bufer máximo de trabajo adicional"
+#: clientgui/DlgAdvPreferencesBase.cpp:505
+msgid "To limit transfers by time of day, see the \"Daily Schedules\" section."
+msgstr "Para limitar las transferencias diarias consulte la sección de \"Horarios Diarios\"."
 
-#: DlgAdvPreferencesBase.cpp:459
-msgid "In addition, maintain enough tasks for up to this many days"
-msgstr ""
-"Adicionalmente, mantener suficientes tareas como máximo para todos estos "
-"días"
-
-#: DlgAdvPreferencesBase.cpp:466
-msgid "Skip image file verification"
-msgstr "No verificar archivos de imagen"
-
-#: DlgAdvPreferencesBase.cpp:468
-msgid "check this if your Internet provider modifies image files"
-msgstr "márquela si su proveedor de Internet modifica los archivos de imágenes"
+#: clientgui/DlgAdvPreferencesBase.cpp:522
+#, c-format
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of %s."
+msgstr "Marque esto solo si su proveedor de internet modifica los ficheros de imágen. Saltar la verificación reduce la seguridad en %s."
 
-#: DlgAdvPreferencesBase.cpp:476
-msgid "Connect options"
-msgstr "Opciones de conexión"
+#: clientgui/DlgAdvPreferencesBase.cpp:524
+msgid "Skip data verification for image files"
+msgstr "Saltar verificación de datos para los ficheros de imágen"
 
-#: DlgAdvPreferencesBase.cpp:478
-msgid "Confirm before connecting to internet"
+#: clientgui/DlgAdvPreferencesBase.cpp:528
+msgid "Confirm before connecting to Internet"
 msgstr "Confirmar antes de conectar a Internet"
 
-#: DlgAdvPreferencesBase.cpp:480
-msgid ""
-"if checked, a confirmation dialog will be displayed before trying to connect "
-"to the Internet"
-msgstr ""
-"si está marcada, una venta aparecerá antes de intentar conectar a Internet"
+#: clientgui/DlgAdvPreferencesBase.cpp:529
+#: clientgui/DlgAdvPreferencesBase.cpp:533
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Usable solo si dispones de modem, RDSI o conexión VPN."
 
-#: DlgAdvPreferencesBase.cpp:484
+#: clientgui/DlgAdvPreferencesBase.cpp:532
 msgid "Disconnect when done"
 msgstr "Desconectar cuando finalice"
 
-#: DlgAdvPreferencesBase.cpp:486
-msgid ""
-"if checked, BOINC hangs up when network usage is done\n"
-"(only relevant for dialup-connection)"
-msgstr ""
-"si está marcada, BOINC cuelga cuando ha terminado de usar la red\n"
-"( sólo para conexiones  a través de módem) "
-
-#: DlgAdvPreferencesBase.cpp:492
-msgid "Network usage allowed"
-msgstr "Uso de la red permitido"
+#: clientgui/DlgAdvPreferencesBase.cpp:559 clientgui/ViewResources.cpp:116
+msgid "Disk"
+msgstr "Disco"
 
-#: DlgAdvPreferencesBase.cpp:500
-msgid "network usage start hour"
-msgstr "hora de comienzo de uso de la red"
+#: clientgui/DlgAdvPreferencesBase.cpp:564
+#, c-format
+msgid "%s will use the most restrictive of these settings:"
+msgstr "%s usará el más restrictivo de estos valores:"
 
-#: DlgAdvPreferencesBase.cpp:508
-msgid "network usage stop hour"
-msgstr "hora de finalización de uso de la red"
+#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
+#, c-format
+msgid "Limit the total amount of disk space used by %s."
+msgstr "Limitar el total de uso de disco en %s."
 
-#: DlgAdvPreferencesBase.cpp:598 DlgItemProperties.cpp:231
-msgid "Disk usage"
-msgstr "Uso del disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:573
+#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
+msgid "Use no more than"
+msgstr "No usar más de"
 
-#: DlgAdvPreferencesBase.cpp:609
-msgid "the maximum disk space used by BOINC (in Gigabytes)"
-msgstr "el espacio máximo de disco usado por BOINC (en gigabytes)"
+#: clientgui/DlgAdvPreferencesBase.cpp:577
+msgid "GB"
+msgstr "GB"
 
-#: DlgAdvPreferencesBase.cpp:613
-msgid "Gigabytes disk space"
-msgstr "gigabytes de espacio en disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:582
+#, c-format
+msgid ""
+"Limit disk usage to leave this much free space on the volume where %s stores"
+" data."
+msgstr "Limitar el uso del disco para liberar espacio en la unidad donde %s almacena los datos."
 
-#: DlgAdvPreferencesBase.cpp:616
+#: clientgui/DlgAdvPreferencesBase.cpp:585
 msgid "Leave at least"
 msgstr "Dejar como mínimo"
 
-#: DlgAdvPreferencesBase.cpp:620
-msgid "BOINC leaves at least this amount of disk space free (in Gigabytes)"
-msgstr ""
-"BOINC deja como mínimo esta cantidad de espacio de disco libre (en "
-"gigabytes)"
-
-#: DlgAdvPreferencesBase.cpp:624
-msgid "Gigabytes disk space free"
-msgstr "gigabytes de espacio libre en disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:589
+msgid "GB free"
+msgstr "GB libres"
 
-#: DlgAdvPreferencesBase.cpp:631
-msgid "BOINC uses at most this percentage of total disk space"
-msgstr "BOINC usa como máximo este porcentaje del espacio total del disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:594
+#, c-format
+msgid ""
+"Limit the percentage of disk space used by %s on the volume where it stores "
+"data."
+msgstr "Limita el porcentaje de disco usado por $s en la unidad donde se almacena la información."
 
-#: DlgAdvPreferencesBase.cpp:636
+#: clientgui/DlgAdvPreferencesBase.cpp:602
 #, no-c-format
-msgid "% of total disk space"
-msgstr "% del espacio total de disco"
-
-#: DlgAdvPreferencesBase.cpp:639
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Las tareas vuelcan al disco al menos cada"
+msgid "% of total"
+msgstr "% del total"
 
-#: DlgAdvPreferencesBase.cpp:645
-msgid "seconds"
-msgstr "segundos"
+#: clientgui/DlgAdvPreferencesBase.cpp:609
+msgid "Memory"
+msgstr "Memoria"
 
-#: DlgAdvPreferencesBase.cpp:655
-#, no-c-format
-msgid "% of page file (swap space)"
-msgstr "% del archivo de paginación (espacio de intercambio)"
+#: clientgui/DlgAdvPreferencesBase.cpp:614
+#, c-format
+msgid "Limit the memory used by %s when you're using the computer."
+msgstr "Limita la memoria usada por %s cuando está usando el ordenador."
 
-#: DlgAdvPreferencesBase.cpp:662
-msgid "Memory usage"
-msgstr "Uso de memoria"
+#: clientgui/DlgAdvPreferencesBase.cpp:616
+msgid "When computer is in use, use at most"
+msgstr "Cuando el ordenador esté en uso, utilizar como máximo"
 
-#: DlgAdvPreferencesBase.cpp:676
+#: clientgui/DlgAdvPreferencesBase.cpp:622
+#: clientgui/DlgAdvPreferencesBase.cpp:634
+#: clientgui/DlgAdvPreferencesBase.cpp:650
 #, no-c-format
-msgid "% when computer is in use"
-msgstr "% cuando el ordenador se usa"
+msgid "%"
+msgstr "%"
 
-#: DlgAdvPreferencesBase.cpp:686
-#, no-c-format
-msgid "% when computer is idle"
-msgstr "% cuando el ordenador esta inactivo"
+#: clientgui/DlgAdvPreferencesBase.cpp:627
+#, c-format
+msgid "Limit the memory used by %s when you're not using the computer."
+msgstr "Limita la memoria usada por %s cuando no está utilizando el ordenador."
 
-#: DlgAdvPreferencesBase.cpp:691
-msgid "Leave applications in memory while suspended"
-msgstr "Dejar las aplicaciones en memoria mientras están suspendidas"
+#: clientgui/DlgAdvPreferencesBase.cpp:629
+msgid "When computer is not in use, use at most"
+msgstr "Cuando el ordenador no está en uso, usar como máximo"
 
-#: DlgAdvPreferencesBase.cpp:693
-msgid "if checked, suspended work units are left in memory"
-msgstr ""
-"si está marcada, las unidades de trabajo suspendidas son dejadas en memoria"
+#: clientgui/DlgAdvPreferencesBase.cpp:638
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Dejar las tareas  en memoria que no sean de la  GPU suspendidas"
 
-#: DlgAdvPreferencesBase.cpp:713
+#: clientgui/DlgAdvPreferencesBase.cpp:639
 msgid ""
-"Suspend processor and network usage when these applications are running:"
-msgstr ""
-"Suspender el uso del procesador y la red cuando estas aplicaciones estén "
-"funcionando:"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Si está marcado, las tareas suspendidas quedan en memoria y se retomarán sin pérdida de datos. Si no está marcado, las tareas que se suspendan se eliminarán de la memoria y reinician desde el último punto de control."
 
-#: DlgAdvPreferencesBase.cpp:722
-msgid "Add..."
-msgstr "Añadir..."
+#: clientgui/DlgAdvPreferencesBase.cpp:643
+#, c-format
+msgid "Limit the swap space (page file) used by %s."
+msgstr "Limita el espacio de intercambio (archivo de paginación) usado al %s."
 
-#: DlgAdvPreferencesBase.cpp:723
-msgid "Add an application to this list"
-msgstr "Añadir una aplicación a esta lista"
+#: clientgui/DlgAdvPreferencesBase.cpp:645
+msgid "Page/swap file: use at most"
+msgstr "Archivos de paginación/intercambio: usar como máximo"
 
-#: DlgAdvPreferencesBase.cpp:728 ViewProjects.cpp:202
-#: sg_ProjectCommandPopup.cpp:85
-msgid "Remove"
-msgstr "Eliminar"
+#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
+msgid "and"
+msgstr "y"
 
-#: DlgAdvPreferencesBase.cpp:729
-msgid "Remove an application from this list"
-msgstr "Eliminar una aplicación de esta lista"
+#: clientgui/DlgAdvPreferencesBase.cpp:671
+msgid "to"
+msgstr "a"
 
-#: DlgAdvPreferencesBase.cpp:738
-msgid "For advanced options, refer to "
-msgstr "Para opciones avanzadas, dirigirse a "
+#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:296
+msgid "Compute only during a particular period each day."
+msgstr "Computar solo durante un periodo particular cada día."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:299
+msgid "Compute only between"
+msgstr "Computar solo entre"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:718
+#: clientgui/DlgAdvPreferencesBase.cpp:902
+msgid "Day-of-week override"
+msgstr "Saltarse un día de la semana"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:727
+#: clientgui/DlgAdvPreferencesBase.cpp:906
+msgid "Override the times above on the selected days:"
+msgstr "Saltar los tiempos en los días seleccionados:"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:750
+#: clientgui/DlgAdvPreferencesBase.cpp:923
+msgid "Monday"
+msgstr "Lunes"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:777
+#: clientgui/DlgAdvPreferencesBase.cpp:938
+msgid "Friday"
+msgstr "Viernes"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:792
+#: clientgui/DlgAdvPreferencesBase.cpp:951
+msgid "Tuesday"
+msgstr "Martes"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:807
+#: clientgui/DlgAdvPreferencesBase.cpp:966
+msgid "Saturday"
+msgstr "Sábado"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:820
+#: clientgui/DlgAdvPreferencesBase.cpp:979
+msgid "Wednesday"
+msgstr "Miércoles"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:835
+#: clientgui/DlgAdvPreferencesBase.cpp:994
+msgid "Sunday"
+msgstr "Domingo"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:848
+#: clientgui/DlgAdvPreferencesBase.cpp:1007
+msgid "Thursday"
+msgstr "Jueves"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
+msgid "Transfer files only during a particular period each day."
+msgstr "Transferir ficheros sólo durante un período particular cada día."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
+msgid "Transfer files only between"
+msgstr "Transferir archivos solo entre"
 
-#: DlgEventLog.cpp:219
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Número inválido"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Hora inválida, el valor debe encontrarse entre 0:00 y 24:00, el formato es HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Tiempo de arranque debe ser distinto a tiempo de finalización."
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "El número debe de estar entre 0 y 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "El número debe estar entre 0 y 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "El número debe estar entre 1 y 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "detectada introducción de valor inválido"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Error de Validación"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "¿Descartar preferencias locales y usar las preferencias de la web?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Confirmación"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
+#, c-format
+msgid "%s Diagnostic Log Flags"
+msgstr "%s Marcas del Registro de Diagnóstico"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
+msgid ""
+"These flags enable various types of diagnostic messages in the Event Log."
+msgstr "Estas marcas activan varios tipos de mensajes de diagnóstico en el registro de eventos."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
+msgid "More info ..."
+msgstr "Mas información ..."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
+msgid "Save all values and close the dialog"
+msgstr "Guardar todos los valores y cerrar la ventana"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
+msgid "Defaults"
+msgstr "Restablecer"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
+msgid "Restore default settings"
+msgstr "Restaurar configuración por defecto"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
+msgid "Close the dialog without saving"
+msgstr "Cerrar la ventana sin grabar."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Aplicar"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Guardar todos los valores"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Registro de Sucesos"
 
-#: DlgEventLog.cpp:232 ViewMessages.cpp:117 ViewProjects.cpp:219
-#: ViewStatistics.cpp:435 ViewStatistics.cpp:2009 ViewTransfers.cpp:182
-#: ViewWork.cpp:232
+#. Create List Pane Items
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
+#: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
+#: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
+#: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Proyecto"
 
-#: DlgEventLog.cpp:233 ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Hora"
 
-#: DlgEventLog.cpp:234 ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Mensaje"
 
-#: DlgEventLog.cpp:290 DlgEventLog.cpp:354
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "Mostrar sólo este &proyecto"
 
-#: DlgEventLog.cpp:294
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Copiar &Todo"
 
-#: DlgEventLog.cpp:296 DlgEventLog.cpp:300 ViewMessages.cpp:89
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
+#: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Copia todos los mensajes al portapapeles"
 
-#: DlgEventLog.cpp:305
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Copiar &Selección"
 
-#: DlgEventLog.cpp:308 DlgEventLog.cpp:316 ViewMessages.cpp:97
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
+#: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or command key while clicking on messages."
-msgstr ""
-"Copia los mensajes seleccionados al portapapeles. Puede seleccionar "
-"múltiples mensajes manteniendo pulsadas las teclas Shift o Control mientras "
-"hace clic en los mensajes."
+"messages by holding down the shift or command key while clicking on "
+"messages."
+msgstr "Copia los mensajes seleccionados al portapapeles. Puede seleccionar múltiples mensajes manteniendo pulsadas las teclas Shift o Control mientras hace clic en los mensajes."
 
-#: DlgEventLog.cpp:310 DlgEventLog.cpp:318 ViewMessages.cpp:99
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
+#: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or control key while clicking on messages."
-msgstr ""
-"Copia los mensajes seleccionados al portapapeles. Puede seleccionar "
-"múltiples mensajes manteniendo pulsadas las teclas Shift y/o Control "
-"mientras hace clic en los mensajes."
+"messages by holding down the shift or control key while clicking on "
+"messages."
+msgstr "Copia los mensajes seleccionados al portapapeles. Puede seleccionar múltiples mensajes manteniendo pulsadas las teclas Shift y/o Control mientras hace clic en los mensajes."
 
-#: DlgEventLog.cpp:325 DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Cerrar"
 
-#: DlgEventLog.cpp:334 sg_BoincSimpleFrame.cpp:798 sg_DlgPreferences.cpp:442
-#, c-format
-msgid "Get help with %s"
-msgstr "Obtener ayuda con %s"
-
-#: DlgEventLog.cpp:348
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Mostrar todos los &mensajes"
 
-#: DlgEventLog.cpp:349 DlgEventLog.cpp:351
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Mostar los mensajes de todos los proyectos"
 
-#: DlgEventLog.cpp:355 DlgEventLog.cpp:357
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Mostrar sólo los mensajes para el proyecto seleccionado"
 
-#: DlgExitMessage.cpp:82
+#: clientgui/DlgExclusiveApps.cpp:60
+#, c-format
+msgid "%s - Exclusive Applications"
+msgstr "%s - Aplicaciones Exclusivas"
+
+#: clientgui/DlgExclusiveApps.cpp:72
+msgid ""
+"Suspend processor and network usage when these applications are running:"
+msgstr "Suspender el uso del procesador y la red cuando estas aplicaciones estén funcionando:"
+
+#: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
+msgid "Add..."
+msgstr "Añadir..."
+
+#: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
+msgid "Add an application to this list"
+msgstr "Añadir una aplicación a esta lista"
+
+#: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
+msgid "Remove"
+msgstr "Eliminar"
+
+#: clientgui/DlgExclusiveApps.cpp:87 clientgui/DlgExclusiveApps.cpp:111
+msgid "Remove an application from this list"
+msgstr "Eliminar una aplicación de esta lista"
+
+#: clientgui/DlgExclusiveApps.cpp:96
+msgid "Suspend GPU usage when these applications are running:"
+msgstr "Suspender el uso de la GPU cuando estas aplicaciones se estén ejecutando:"
+
+#: clientgui/DlgExclusiveApps.cpp:122
+msgid "For advanced options, refer to "
+msgstr "Para opciones avanzadas, dirigirse a "
+
+#: clientgui/DlgExclusiveApps.cpp:147
+msgid "save all values and close the dialog"
+msgstr "grabar todos los valores y cerrar la ventana"
+
+#: clientgui/DlgExclusiveApps.cpp:153
+msgid "close the dialog without saving"
+msgstr "cerrar la ventana sin grabar"
+
+#: clientgui/DlgExclusiveApps.cpp:158
+msgid "shows the preferences web page"
+msgstr "muestra la página web de preferencias"
+
+#. TODO: fill in the default directory for MSW
+#. TODO: fill in the default directory for Linux
+#: clientgui/DlgExclusiveApps.cpp:303 clientgui/DlgExclusiveApps.cpp:309
+#: clientgui/DlgExclusiveApps.cpp:315
+msgid "Applications to add"
+msgstr "Aplicaciones a añadir"
+
+#: clientgui/DlgExclusiveApps.cpp:332
+#, c-format
+msgid "'%s' is not an executable application."
+msgstr "'%s' no es una aplicación ejecutable."
+
+#: clientgui/DlgExclusiveApps.cpp:333 clientgui/DlgExclusiveApps.cpp:380
+#: clientgui/DlgExclusiveApps.cpp:404
+msgid "Add Exclusive App"
+msgstr "Añadir Aplicación Exclusiva"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Name of application to add?"
+msgstr "¿Nombre de la aplicación a añadir?"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Add exclusive app"
+msgstr "Añadir aplicación exclusiva"
+
+#: clientgui/DlgExclusiveApps.cpp:379
+#, c-format
+msgid "Application names must end with '%s'"
+msgstr "Los nombres de aplicación deben terminar en '%s'"
+
+#: clientgui/DlgExclusiveApps.cpp:403
+#, c-format
+msgid "'%s' is already in the list."
+msgstr "'%s' ya está en la lista."
+
+#: clientgui/DlgExitMessage.cpp:82
 #, c-format
 msgid "%s - Exit Confirmation"
 msgstr "%s - Confirmación de Salir"
 
-#: DlgExitMessage.cpp:130
+#: clientgui/DlgExitMessage.cpp:130
 #, c-format
 msgid ""
 "You have requested to exit the %s,\n"
@@ -1682,15 +1793,9 @@ msgid ""
 "\n"
 "If you also want to stop running the tasks,\n"
 "choose from the following options:"
-msgstr ""
-"Ha solicitado salir de %s,\n"
-"que le permite ver y administrar\n"
-"las tareas ejecutándose en su ordenador.\n"
-"\n"
-"Si también quiere parar de ejecutar las tareas,\n"
-"elija entre las siguientes opciones:"
+msgstr "Ha solicitado salir de %s,\nque le permite ver y administrar\nlas tareas ejecutándose en su ordenador.\n\nSi también quiere parar de ejecutar las tareas,\nelija entre las siguientes opciones:"
 
-#: DlgExitMessage.cpp:135
+#: clientgui/DlgExitMessage.cpp:135
 #, c-format
 msgid ""
 "This will shut down %s and its tasks until either the\n"
@@ -1699,950 +1804,1020 @@ msgid ""
 "In most cases, it is better just to close the %s window\n"
 "rather than to exit the application; that will allow %s to run its\n"
 "tasks at the times you selected in your preferences."
-msgstr ""
-"Esto cerrará %s y sus tareas hasta que la aplicación\n"
-"%s o el salvapantallas %s sean ejecutados de nuevo.\n"
-"\n"
-"En la mayoría de los casos, es mejor cerrar la ventana de %s solamente\n"
-"más que salir de la aplicación, eso le permitirá a %s ejecutar sus\n"
-"tareas a las horas que usted seleccionó en sus preferencias."
+msgstr "Esto cerrará %s y sus tareas hasta que la aplicación\n%s o el salvapantallas %s sean ejecutados de nuevo.\n\nEn la mayoría de los casos, es mejor cerrar la ventana de %s solamente\nmás que salir de la aplicación, eso le permitirá a %s ejecutar sus\ntareas a las horas que usted seleccionó en sus preferencias."
 
-#: DlgExitMessage.cpp:153
+#: clientgui/DlgExitMessage.cpp:153
 #, c-format
 msgid "Stop running tasks when exiting the %s"
 msgstr "Detener la ejecución de tareas al salir de %s"
 
-#: DlgExitMessage.cpp:165
+#: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
 msgstr "Recordar esta opción y no volver a mostrar este mensaje."
 
-#: DlgExitMessage.cpp:178 DlgGenericMessage.cpp:125 DlgOptions.cpp:401
-#: DlgSelectComputer.cpp:168 wizardex.cpp:378
+#: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
+#: clientgui/DlgOptions.cpp:415 clientgui/DlgSelectComputer.cpp:168
+#: clientgui/wizardex.cpp:378
 msgid "&Cancel"
 msgstr "&Cancelar"
 
-#: DlgGenericMessage.cpp:112
+#: clientgui/DlgGenericMessage.cpp:112
 msgid "Don't show this dialog again."
 msgstr "No mostrar este mensaje de nuevo."
 
-#: DlgItemProperties.cpp:168 DlgItemProperties.cpp:171
-#: DlgItemProperties.cpp:174 DlgItemProperties.cpp:177
-msgid "Don't fetch tasks for "
-msgstr "No buscar tareas para "
+#: clientgui/DlgHiddenColumns.cpp:64
+#, c-format
+msgid "%s Column Selection"
+msgstr "%s Selección de Columna"
+
+#: clientgui/DlgHiddenColumns.cpp:77
+#, c-format
+msgid "Select which columns %s should show."
+msgstr "Seleccione qué columnas %s debería mostrar"
+
+#: clientgui/DlgHiddenColumns.cpp:358
+msgid ""
+"Are you sure you want to reset all list columns to the default "
+"configurations?"
+msgstr "¿Está seguro que quiere volver a la configuración inicia toda la lista de columnas?"
+
+#: clientgui/DlgHiddenColumns.cpp:359
+msgid "Confirm defaults"
+msgstr "Confirme los valores por defecto"
 
-#: DlgItemProperties.cpp:168
+#: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
+#: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
+msgid "Don't request tasks for "
+msgstr "No solicitar tareas para"
+
+#: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
 msgstr "Preferencia del proyecto"
 
-#: DlgItemProperties.cpp:171
+#: clientgui/DlgItemProperties.cpp:197
 msgid "Account manager preference"
 msgstr "Preferencia del administrador de cuentas"
 
-#: DlgItemProperties.cpp:174
+#: clientgui/DlgItemProperties.cpp:200
 msgid "Project has no apps for "
 msgstr "El proyecto no tiene aplicaciones para "
 
-#: DlgItemProperties.cpp:177
+#: clientgui/DlgItemProperties.cpp:203
 msgid "Client configuration excludes "
 msgstr "La configuración del cliente excluye "
 
-#: DlgItemProperties.cpp:181
-msgid " work fetch deferred for"
-msgstr " búsqueda de trabajo aplazada"
+#: clientgui/DlgItemProperties.cpp:209
+#, c-format
+msgid "%s task request deferred for"
+msgstr "%s peticiones de tareas aplazadas para "
 
-#: DlgItemProperties.cpp:182
-msgid " work fetch deferral interval"
-msgstr " intervalo diferido la búsqueda de trabajo "
+#: clientgui/DlgItemProperties.cpp:213
+#, c-format
+msgid "%s task request deferral interval"
+msgstr "%s intervalo de aplazamiento de petición de tarea"
 
-#: DlgItemProperties.cpp:213
+#. set dialog title
+#: clientgui/DlgItemProperties.cpp:247
 msgid "Properties of project "
 msgstr "Propiedades del proyecto "
 
-#: DlgItemProperties.cpp:217 DlgOptions.cpp:218
+#. layout controls
+#: clientgui/DlgItemProperties.cpp:251 clientgui/DlgOptions.cpp:232
 msgid "General"
 msgstr "General"
 
-#: DlgItemProperties.cpp:218
-msgid "Master URL"
-msgstr "URL principal"
+#: clientgui/DlgItemProperties.cpp:252
+msgid "URL"
+msgstr "URL"
 
-#: DlgItemProperties.cpp:219
+#: clientgui/DlgItemProperties.cpp:253
 msgid "User name"
 msgstr "Nombre de usuario:"
 
-#: DlgItemProperties.cpp:220
+#: clientgui/DlgItemProperties.cpp:254
 msgid "Team name"
 msgstr "Nombre del equipo"
 
-#: DlgItemProperties.cpp:221 ViewProjects.cpp:224
+#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:256
 msgid "Resource share"
 msgstr "Asignación de recursos"
 
-#: DlgItemProperties.cpp:223
+#: clientgui/DlgItemProperties.cpp:257
 msgid "Scheduler RPC deferred for"
 msgstr "Petición (RPC) del planificador aplazada"
 
-#: DlgItemProperties.cpp:226
+#: clientgui/DlgItemProperties.cpp:260
 msgid "File downloads deferred for"
 msgstr "Descargas de archivos aplazada durante"
 
-#: DlgItemProperties.cpp:229
+#: clientgui/DlgItemProperties.cpp:263
 msgid "File uploads deferred for"
 msgstr "Envíos de archivos aplazados durante"
 
-#: DlgItemProperties.cpp:232
+#: clientgui/DlgItemProperties.cpp:265
+msgid "Disk usage"
+msgstr "Uso del disco"
+
+#: clientgui/DlgItemProperties.cpp:266
 msgid "Computer ID"
 msgstr "ID del ordenador"
 
-#: DlgItemProperties.cpp:234
+#: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
 msgstr "Uso no intensivo de CPU"
 
-#: DlgItemProperties.cpp:234 DlgItemProperties.cpp:236
-#: DlgItemProperties.cpp:237 DlgItemProperties.cpp:239
-#: DlgItemProperties.cpp:242 DlgItemProperties.cpp:251
-#: DlgItemProperties.cpp:254 DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:268 clientgui/DlgItemProperties.cpp:270
+#: clientgui/DlgItemProperties.cpp:271 clientgui/DlgItemProperties.cpp:273
+#: clientgui/DlgItemProperties.cpp:276 clientgui/DlgItemProperties.cpp:285
+#: clientgui/DlgItemProperties.cpp:288 clientgui/DlgItemProperties.cpp:291
 msgid "yes"
 msgstr "si"
 
-#: DlgItemProperties.cpp:236
+#: clientgui/DlgItemProperties.cpp:270
 msgid "Suspended via GUI"
 msgstr "Suspendido mediante interfaz gráfica (GUI)"
 
-#: DlgItemProperties.cpp:236 DlgItemProperties.cpp:237
+#: clientgui/DlgItemProperties.cpp:270 clientgui/DlgItemProperties.cpp:271
 msgid "no"
 msgstr "no"
 
-#: DlgItemProperties.cpp:237
-msgid "Don't request more work"
-msgstr "No solicitar más trabajo"
+#: clientgui/DlgItemProperties.cpp:271
+msgid "Don't request tasks"
+msgstr "No solicitar tareas"
 
-#: DlgItemProperties.cpp:239
+#: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
 msgstr "Llamada al planificador en progreso"
 
-#: DlgItemProperties.cpp:242
+#: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
 msgstr "Trickle-up pendiente"
 
-#: DlgItemProperties.cpp:245 DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:279 clientgui/DlgItemProperties.cpp:281
 msgid "Host location"
 msgstr "Ubicación del host"
 
-#: DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:281
 msgid "default"
 msgstr "predeterminado"
 
-#: DlgItemProperties.cpp:251
+#: clientgui/DlgItemProperties.cpp:285
 msgid "Added via account manager"
 msgstr "Añadido mediante administrador de cuentas"
 
-#: DlgItemProperties.cpp:254
+#: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
 msgstr "Eliminar cuando las tareas estén terminadas"
 
-#: DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
 msgstr "Finalizado"
 
-#: DlgItemProperties.cpp:259
+#: clientgui/DlgItemProperties.cpp:293
+msgid "Tasks completed"
+msgstr "Tareas completadas"
+
+#: clientgui/DlgItemProperties.cpp:294
+msgid "Tasks failed"
+msgstr "Tareas fallidas"
+
+#: clientgui/DlgItemProperties.cpp:296
 msgid "Credit"
 msgstr "Crédito"
 
-#: DlgItemProperties.cpp:260
+#: clientgui/DlgItemProperties.cpp:297
 msgid "User"
 msgstr "Usuario"
 
-#: DlgItemProperties.cpp:267
+#: clientgui/DlgItemProperties.cpp:300 clientgui/DlgItemProperties.cpp:308
+#, c-format
+msgid "%s total, %s average"
+msgstr "%s total, % medio"
+
+#: clientgui/DlgItemProperties.cpp:305
 msgid "Host"
 msgstr "Ordenador"
 
-#: DlgItemProperties.cpp:276
+#: clientgui/DlgItemProperties.cpp:315
 msgid "Scheduling"
 msgstr "Planificando"
 
-#: DlgItemProperties.cpp:277
+#: clientgui/DlgItemProperties.cpp:316
 msgid "Scheduling priority"
 msgstr "Planificando prioridad"
 
-#: DlgItemProperties.cpp:278
+#: clientgui/DlgItemProperties.cpp:317
 msgid "CPU"
 msgstr "CPU"
 
-#: DlgItemProperties.cpp:302
+#: clientgui/DlgItemProperties.cpp:341
 msgid "Duration correction factor"
 msgstr "Factor de corrección de duración"
 
-#: DlgItemProperties.cpp:316
+#: clientgui/DlgItemProperties.cpp:349
+msgid "Last scheduler reply"
+msgstr "Última respuesta del planificador "
+
+#: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
 msgstr "Propiedades de la tarea "
 
-#: DlgItemProperties.cpp:328 ViewWork.cpp:238
+#: clientgui/DlgItemProperties.cpp:372 clientgui/ViewWork.cpp:266
 msgid "Application"
 msgstr "Programa"
 
-#: DlgItemProperties.cpp:329 ViewWork.cpp:239
+#: clientgui/DlgItemProperties.cpp:373 clientgui/ViewWork.cpp:267
 msgid "Name"
 msgstr "Nombre"
 
-#: DlgItemProperties.cpp:330
+#: clientgui/DlgItemProperties.cpp:374
 msgid "State"
 msgstr "Estado"
 
-#: DlgItemProperties.cpp:333
+#: clientgui/DlgItemProperties.cpp:377
 msgid "Received"
 msgstr "Recibido"
 
-#: DlgItemProperties.cpp:336
+#: clientgui/DlgItemProperties.cpp:380
 msgid "Report deadline"
 msgstr "Límite para informar"
 
-#: DlgItemProperties.cpp:338
+#: clientgui/DlgItemProperties.cpp:382
 msgid "Resources"
 msgstr "Recursos"
 
-#: DlgItemProperties.cpp:341
+#: clientgui/DlgItemProperties.cpp:385
 msgid "Estimated computation size"
 msgstr "Tamaño de cálculo estimado"
 
-#: DlgItemProperties.cpp:344
-msgid "CPU time at last checkpoint"
-msgstr "Tiempo de CPU en el último chequeo"
-
-#: DlgItemProperties.cpp:345 DlgItemProperties.cpp:360
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Tiempo de CPU"
 
-#: DlgItemProperties.cpp:347 DlgItemProperties.cpp:361
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Tiempo de CPU desde el punto de referencia"
+
+#: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Tiempo transcurrido"
 
-#: DlgItemProperties.cpp:349
+#: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
 msgstr "Tiempo restante aproximado"
 
-#: DlgItemProperties.cpp:350
+#: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
 msgstr "Parte hecha"
 
-#: DlgItemProperties.cpp:351
+#: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
 msgstr "Tamaño de la memoria virtual"
 
-#: DlgItemProperties.cpp:352
+#: clientgui/DlgItemProperties.cpp:398
 msgid "Working set size"
 msgstr "Tamaño conjunto trabajo"
 
-#: DlgItemProperties.cpp:354
+#: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
 msgstr "Carpeta"
 
-#: DlgItemProperties.cpp:357
+#: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
 msgstr "ID de proceso"
 
-#: DlgItemProperties.cpp:427 ViewWork.cpp:1032 sg_TaskPanel.cpp:823
+#: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
+msgid "Progress rate"
+msgstr "Índice de progreso"
+
+#: clientgui/DlgItemProperties.cpp:409
+msgid "per hour"
+msgstr "por hora"
+
+#: clientgui/DlgItemProperties.cpp:411
+msgid "per minute"
+msgstr "por minuto"
+
+#: clientgui/DlgItemProperties.cpp:413
+msgid "per second"
+msgstr "por segundo"
+
+#: clientgui/DlgItemProperties.cpp:421
+msgid "Executable"
+msgstr "Ejecutable"
+
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Local: "
 
-#: DlgOptions.cpp:129 DlgOptions.cpp:135
+#: clientgui/DlgOptions.cpp:130 clientgui/DlgOptions.cpp:136
 msgid "Options"
 msgstr "Opciones"
 
-#: DlgOptions.cpp:175
+#: clientgui/DlgOptions.cpp:179
 msgid "Language:"
 msgstr "Idioma:"
 
-#: DlgOptions.cpp:182
+#: clientgui/DlgOptions.cpp:186
 msgid "What language should BOINC use?"
 msgstr "¿Qué idioma debe usar BOINC?"
 
-#: DlgOptions.cpp:186
+#: clientgui/DlgOptions.cpp:190
 msgid "Notice reminder interval:"
 msgstr "Intervalo de recuerdo de avisos:"
 
-#: DlgOptions.cpp:193
+#: clientgui/DlgOptions.cpp:197
 msgid "How often should BOINC remind you of new notices?"
 msgstr "¿Con qué frecuencia debe BOINC recordarle los nuevos avisos?"
 
-#: DlgOptions.cpp:198
+#: clientgui/DlgOptions.cpp:202
 msgid "Run Manager at login?"
 msgstr "¿Ejecutar el Administrador al iniciar la sesión?"
 
-#: DlgOptions.cpp:204
+#: clientgui/DlgOptions.cpp:208
 msgid "Run the BOINC Manager when you log on."
 msgstr "Ejecutar el Administrador BOINC cuando inicie la sesión."
 
-#: DlgOptions.cpp:209
+#: clientgui/DlgOptions.cpp:213
+msgid "Run daemon?"
+msgstr "¿Lanzar demonio?"
+
+#: clientgui/DlgOptions.cpp:219
+msgid "Run daemon when launching the Manager."
+msgstr "Lanzar demonio cuando se inicie el Administrador. "
+
+#: clientgui/DlgOptions.cpp:223
 msgid "Enable Manager exit dialog?"
 msgstr "¿Habilitar el mensaje de salida del Administrador?"
 
-#: DlgOptions.cpp:215
+#: clientgui/DlgOptions.cpp:229
 msgid "Display the exit dialog when shutting down the Manager."
 msgstr "Visualizar el mensaje de salida cuando cierre el Administrador."
 
-#: DlgOptions.cpp:226
+#: clientgui/DlgOptions.cpp:240
 msgid "Dial-up and Virtual Private Network settings"
 msgstr "Configuración de Módem de Acceso Telefónico y Red Privada Virtual"
 
-#: DlgOptions.cpp:240
+#: clientgui/DlgOptions.cpp:254
 msgid "&Set Default"
 msgstr "&Establecer como Predeterminada"
 
-#: DlgOptions.cpp:245
+#: clientgui/DlgOptions.cpp:259
 msgid "&Clear Default"
 msgstr "&Borrar como Predeterminada"
 
-#: DlgOptions.cpp:252
+#: clientgui/DlgOptions.cpp:266
 msgid "Default Connection:"
 msgstr "Conexión por Defecto:"
 
-#: DlgOptions.cpp:259
+#: clientgui/DlgOptions.cpp:273
 msgid "Connections"
 msgstr "Conexiones"
 
-#: DlgOptions.cpp:268
+#: clientgui/DlgOptions.cpp:282
 msgid "Connect via HTTP proxy server"
 msgstr "Conectar vía servidor proxy HTTP"
 
-#: DlgOptions.cpp:272
+#: clientgui/DlgOptions.cpp:286
 msgid "HTTP Proxy Server Configuration"
 msgstr "Configuración Servidor Proxy HTTP"
 
-#: DlgOptions.cpp:280 DlgOptions.cpp:344
+#: clientgui/DlgOptions.cpp:294 clientgui/DlgOptions.cpp:358
 msgid "Address:"
 msgstr "Dirección:"
 
-#: DlgOptions.cpp:288 DlgOptions.cpp:352 ProxyPage.cpp:340 ProxyPage.cpp:360
+#: clientgui/DlgOptions.cpp:302 clientgui/DlgOptions.cpp:366
+#: clientgui/ProxyPage.cpp:340 clientgui/ProxyPage.cpp:360
 msgid "Port:"
 msgstr "Puerto:"
 
-#: DlgOptions.cpp:296 DlgOptions.cpp:360
+#: clientgui/DlgOptions.cpp:310 clientgui/DlgOptions.cpp:374
 msgid "Don't use proxy for:"
 msgstr "No usar proxy para:"
 
-#: DlgOptions.cpp:303 DlgOptions.cpp:367
+#: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
 msgid "Leave these blank if not needed"
 msgstr "Dejarlos en blanco si no se necesitan"
 
-#: DlgOptions.cpp:309 DlgOptions.cpp:373 ProxyPage.cpp:343 ProxyPage.cpp:363
+#: clientgui/DlgOptions.cpp:323 clientgui/DlgOptions.cpp:387
+#: clientgui/ProxyPage.cpp:343 clientgui/ProxyPage.cpp:363
 msgid "User Name:"
 msgstr "Nombre de usuario:"
 
-#: DlgOptions.cpp:317 DlgOptions.cpp:381 DlgSelectComputer.cpp:152
-#: ProxyPage.cpp:346 ProxyPage.cpp:366
+#: clientgui/DlgOptions.cpp:331 clientgui/DlgOptions.cpp:395
+#: clientgui/DlgSelectComputer.cpp:152 clientgui/ProxyPage.cpp:346
+#: clientgui/ProxyPage.cpp:366
 msgid "Password:"
 msgstr "Clave:"
 
-#: DlgOptions.cpp:324
+#: clientgui/DlgOptions.cpp:338
 msgid "HTTP Proxy"
 msgstr "Proxy HTTP"
 
-#: DlgOptions.cpp:332
+#: clientgui/DlgOptions.cpp:346
 msgid "Connect via SOCKS proxy server"
 msgstr "Conectar vía servidor proxy SOCKS"
 
-#: DlgOptions.cpp:336
+#: clientgui/DlgOptions.cpp:350
 msgid "SOCKS Proxy Server Configuration"
 msgstr "Configuración Servidor Proxy SOCKS"
 
-#: DlgOptions.cpp:388
+#: clientgui/DlgOptions.cpp:402
 msgid "SOCKS Proxy"
 msgstr "Proxy SOCKS"
 
-#: DlgOptions.cpp:586
+#: clientgui/DlgOptions.cpp:600
 msgid "always"
 msgstr "siempre"
 
-#: DlgOptions.cpp:587
+#: clientgui/DlgOptions.cpp:601
 msgid "1 hour"
 msgstr "1 hora"
 
-#: DlgOptions.cpp:588
+#: clientgui/DlgOptions.cpp:602
 msgid "6 hours"
 msgstr "6 horas"
 
-#: DlgOptions.cpp:589
+#: clientgui/DlgOptions.cpp:603
 msgid "1 day"
 msgstr "1 día"
 
-#: DlgOptions.cpp:590
+#: clientgui/DlgOptions.cpp:604
 msgid "1 week"
 msgstr "1 semana"
 
-#: DlgOptions.cpp:591
+#: clientgui/DlgOptions.cpp:605
 msgid "never"
 msgstr "nunca"
 
-#: DlgOptions.cpp:688
+#: clientgui/DlgOptions.cpp:703
 #, c-format
 msgid "%s - Language Selection"
 msgstr "%s - Selección de Idioma"
 
-#: DlgOptions.cpp:695
+#: clientgui/DlgOptions.cpp:710
 #, c-format
-#, c-format, c-format
 msgid ""
 "The %s's language has been changed.  In order for this change to take "
 "effect, you must restart the %s."
-msgstr ""
-"Se ha cambiado el idioma de %s.   Para que este cambio tenga efecto usted "
-"debe reiniciar %s."
+msgstr "Se ha cambiado el idioma de %s.   Para que este cambio tenga efecto usted debe reiniciar %s."
 
-#: DlgSelectComputer.cpp:91
+#: clientgui/DlgSelectComputer.cpp:91
 #, c-format
 msgid "%s - Select Computer"
 msgstr "%s - Seleccionar ordenador"
 
-#: DlgSelectComputer.cpp:125
+#: clientgui/DlgSelectComputer.cpp:125
 #, c-format
 msgid ""
 "Another instance of %s is already running \n"
 "on this computer.  Please select a client to monitor."
-msgstr ""
-"Otra instancia de %s ya está ejecutándose\n"
-"en este ordenador.   Por favor seleccione un cliente a monitorizar."
+msgstr "Otra instancia de %s ya está ejecutándose\nen este ordenador.   Por favor seleccione un cliente a monitorizar."
 
-#: DlgSelectComputer.cpp:143
+#: clientgui/DlgSelectComputer.cpp:143
 msgid "Host name:"
 msgstr "Nombre del ordenador:"
 
-#: Localization.cpp:31 Localization.cpp:69
+#: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
 msgid "Message boards"
 msgstr "Foros"
 
-#: Localization.cpp:33
+#: clientgui/Localization.cpp:33
 msgid "Correspond with other users on the SETI at home message boards"
 msgstr "Escríbase con otros usuarios en los foros de SETI at home"
 
-#: Localization.cpp:37
+#: clientgui/Localization.cpp:37
 msgid "Ask questions and report problems"
 msgstr "Haga preguntas e informe de problemas"
 
-#: Localization.cpp:39 Localization.cpp:81 Localization.cpp:111
-#: Localization.cpp:129
+#: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
+#: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
 msgid "Your account"
 msgstr "Su cuenta"
 
-#: Localization.cpp:41 Localization.cpp:87 Localization.cpp:113
+#: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
+#: clientgui/Localization.cpp:113
 msgid "View your account information and credit totals"
 msgstr "Vea información de su cuenta y sus créditos totales"
 
-#: Localization.cpp:43
+#: clientgui/Localization.cpp:43
 msgid "Your preferences"
 msgstr "Sus preferencias"
 
-#: Localization.cpp:45
+#: clientgui/Localization.cpp:45
 msgid "View and modify your SETI at home account profile and preferences"
 msgstr "Vea y modifique su perfil y preferencias de su cuenta SETI at home"
 
-#: Localization.cpp:47 Localization.cpp:89
+#: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
 msgid "Your results"
 msgstr "Sus resultados"
 
-#: Localization.cpp:49 Localization.cpp:91
+#: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
 msgid "View your last week (or more) of computational results and work"
 msgstr "Vea el trabajo y resultados de su última semana (o más)"
 
-#: Localization.cpp:51 Localization.cpp:93
+#: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
 msgid "Your computers"
 msgstr "Sus ordenadores"
 
-#: Localization.cpp:53
+#: clientgui/Localization.cpp:53
 msgid "View a listing of all the computers on which you are running SETI at Home"
-msgstr ""
-"Vea una lista de todos los ordenadores en los que usted está ejecutando "
-"SETI at home"
+msgstr "Vea una lista de todos los ordenadores en los que usted está ejecutando SETI at home"
 
-#: Localization.cpp:55 Localization.cpp:97
+#: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
 msgid "Your team"
 msgstr "Su equipo"
 
-#: Localization.cpp:57 Localization.cpp:99
+#: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
 msgid "View information about your team"
 msgstr "Vea información acerca de su equipo"
 
-#: Localization.cpp:61
+#: clientgui/Localization.cpp:61
 msgid "Common questions"
 msgstr "Preguntas más frecuentes"
 
-#: Localization.cpp:63
+#: clientgui/Localization.cpp:63
 msgid "Read the Einstein at Home Frequently Asked Question list"
 msgstr "Lea la lista de Preguntas Más Frecuentes en Einstein at Home"
 
-#: Localization.cpp:65
+#: clientgui/Localization.cpp:65
 msgid "Screensaver info"
 msgstr "Información del salvapantallas"
 
-#: Localization.cpp:67
+#: clientgui/Localization.cpp:67
 msgid "Read a detailed description of the Einstein at Home screensaver"
 msgstr "Lea la descripción detallada del salvapantallas de Einstein at Home"
 
-#: Localization.cpp:71
+#: clientgui/Localization.cpp:71
 msgid ""
 "Correspond with admins and other users on the Einstein at Home message boards"
-msgstr ""
-"Escríbase con lo administradores y otros usuarios en los foros de "
-"Einstein at Home"
+msgstr "Escríbase con lo administradores y otros usuarios en los foros de Einstein at Home"
 
-#: Localization.cpp:73
+#: clientgui/Localization.cpp:73
 msgid "Einstein status"
 msgstr "Estado de Einstein"
 
-#: Localization.cpp:75
+#: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
 msgstr "Estado actual del servidor de Einstein at Home"
 
-#: Localization.cpp:77
+#: clientgui/Localization.cpp:77
 msgid "Report problems"
 msgstr "Informe de problemas"
 
-#: Localization.cpp:79
+#: clientgui/Localization.cpp:79
 msgid "A link to the Einstein at Home problems and bug reports message board"
 msgstr "Un enlace a los foros de informe de problemas y fallos en Einstein at Home"
 
-#: Localization.cpp:83
+#: clientgui/Localization.cpp:83
 msgid "View and modify your Einstein at Home account profile and preferences"
 msgstr "Vea y modifique su perfil y preferencias de su cuenta Einstein at Home"
 
-#: Localization.cpp:85
+#: clientgui/Localization.cpp:85
 msgid "Account summary"
 msgstr "Sumario de cuentas"
 
-#: Localization.cpp:95
+#: clientgui/Localization.cpp:95
 msgid ""
 "View a listing of all the computers on which you are running Einstein at Home"
-msgstr ""
-"Vea una lista de todos los ordenadores en los que usted está ejecutando "
-"Einstein at Home"
+msgstr "Vea una lista de todos los ordenadores en los que usted está ejecutando Einstein at Home"
 
-#: Localization.cpp:101
+#: clientgui/Localization.cpp:101
 msgid "LIGO project"
 msgstr "Proyecto LIGO"
 
-#: Localization.cpp:103
+#: clientgui/Localization.cpp:103
 msgid ""
 "The home page of the Laser Interferometer Gravitational-wave Observatory "
 "(LIGO) project"
-msgstr ""
-"La página de inicio del proyecto LIGO (Observatorio de Ondas Gravitacionales "
-"por Interferometría Laser)"
+msgstr "La página de inicio del proyecto LIGO (Observatorio de Ondas Gravitacionales por Interferometría Laser)"
 
-#: Localization.cpp:105
+#: clientgui/Localization.cpp:105
 msgid "GEO-600 project"
 msgstr "Proyecto GEO-600"
 
-#: Localization.cpp:107
+#: clientgui/Localization.cpp:107
 msgid "The home page of the GEO-600 project"
 msgstr "La página de inicio del proyecto GEO-600"
 
-#: Localization.cpp:115 Localization.cpp:133 ViewProjects.cpp:221
-#: ViewStatistics.cpp:465
+#: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
+#: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
 msgid "Team"
 msgstr "Equipo"
 
-#: Localization.cpp:117
+#: clientgui/Localization.cpp:117
 msgid "Info about your Team"
 msgstr "Información acerca de su Equipo"
 
-#: Localization.cpp:123
+#: clientgui/Localization.cpp:123
 msgid "Get help for climateprediction.net"
 msgstr "Consiga ayuda para climateprediction.net"
 
-#: Localization.cpp:125
+#: clientgui/Localization.cpp:125
 msgid "News"
 msgstr "Noticias"
 
-#: Localization.cpp:127
+#: clientgui/Localization.cpp:127
 msgid "climateprediction.net News"
 msgstr "Noticias de climateprediction.net"
 
-#: Localization.cpp:131
+#: clientgui/Localization.cpp:131
 msgid "View your account information, credits, and trickles"
 msgstr "Vea la información de su cuenta, créditos totales y progresos"
 
-#: Localization.cpp:135
+#: clientgui/Localization.cpp:135
 msgid "Info about your team"
 msgstr "Información acerca de su equipo"
 
-#: Localization.cpp:141
+#: clientgui/Localization.cpp:141
 msgid "Search for help in our help system"
 msgstr "Buscar ayuda en nuestro sistema de ayuda"
 
-#: Localization.cpp:143
+#: clientgui/Localization.cpp:143
 msgid "Global Statistics"
 msgstr "Estadísticas Globales"
 
-#: Localization.cpp:145
+#: clientgui/Localization.cpp:145
 msgid "Summary statistics for World Community Grid"
 msgstr "Sumario de las estadísticas de World Community Grid"
 
-#: Localization.cpp:147
+#: clientgui/Localization.cpp:147
 msgid "My Grid"
 msgstr "Mis datos"
 
-#: Localization.cpp:149
+#: clientgui/Localization.cpp:149
 msgid "Your statistics and settings"
 msgstr "Sus estadísticas y configuración"
 
-#: Localization.cpp:151
+#: clientgui/Localization.cpp:151
 msgid "Device Profiles"
 msgstr "Perfiles de Dispositivo"
 
-#: Localization.cpp:153
+#: clientgui/Localization.cpp:153
 msgid "Update your device settings"
 msgstr "Actualiza la configuración de su dispositivo"
 
-#: Localization.cpp:155
+#: clientgui/Localization.cpp:155
 msgid "Research"
 msgstr "Investigación"
 
-#: Localization.cpp:157
+#: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Aprenda acerca de los proyectos albergados en World Community Grid"
 
-#: MainDocument.cpp:583
-msgid "Starting client"
-msgstr "Iniciando cliente"
-
-#: MainDocument.cpp:591
-msgid "Connecting to client"
-msgstr "Conectando al cliente"
-
-#: MainDocument.cpp:1195
-msgid "Retrieving system state; please wait..."
-msgstr "Recuperando estado del sistema; por favor espere..."
-
-#: MainDocument.cpp:1816
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Aplicación perdida"
 
-#: MainDocument.cpp:1817
+#: clientgui/MainDocument.cpp:1820
 msgid ""
-"Please download and install the CoRD application from http://cord."
-"sourceforge.net"
-msgstr ""
-"Por favor descargue e instale la aplicación CoRD de "
+"Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
+msgstr "Por favor descargue e instale la aplicación CoRD de http://cord.sourceforge.net"
 
-#: MainDocument.cpp:2432
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "con baterías"
 
-#: MainDocument.cpp:2433
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "ordenador está en uso"
 
-#: MainDocument.cpp:2434
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "petición del usuario"
 
-#: MainDocument.cpp:2435
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "hora del día"
 
-#: MainDocument.cpp:2436
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "benchmarks de CPU en progreso"
 
-#: MainDocument.cpp:2437
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "se necesita espacio en disco - compruebe las preferencias"
 
-#: MainDocument.cpp:2438
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "ordenador no está en uso"
 
-#: MainDocument.cpp:2439
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "Iniciando"
 
-#: MainDocument.cpp:2440
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
-msgstr "una aplicación se está ejecuntando en exclusiva"
+msgstr "una aplicación se está ejecutando en exclusiva"
 
-#: MainDocument.cpp:2441
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "la CPU está ocupada"
 
-#: MainDocument.cpp:2442
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "límite de ancho de banda de red excedido"
 
-#: MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "solicitado por el sistema operativo"
 
-#: MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "razón desconocida"
 
-#: MainDocument.cpp:2467
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "falta GPU,  "
 
-#: MainDocument.cpp:2474
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Nuevo"
 
-#: MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Descarga fallida"
 
-#: MainDocument.cpp:2480
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Descargando"
 
-#: MainDocument.cpp:2482 MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (suspendido - "
 
-#: MainDocument.cpp:2490
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Proyecto suspendido por el usuario"
 
-#: MainDocument.cpp:2492
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Tarea suspendida por el usuario"
 
-#: MainDocument.cpp:2494
+#. an NCI process can be running even though computation is suspended
+#. (because of <dont_suspend_nci>
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Suspendido - "
 
-# 75%
-#: MainDocument.cpp:2500
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU suspendida - "
 
-#: MainDocument.cpp:2507
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Esperando memoria"
 
-#: MainDocument.cpp:2509
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Esperando memoria compartida"
 
-#: MainDocument.cpp:2512
-msgid "Running, high priority"
-msgstr "Ejecutando, alta prioridad"
-
-#: MainDocument.cpp:2514
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Ejecutando"
 
-#: MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr "(no-CPU-intensivo)"
 
-#: MainDocument.cpp:2520
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Esperando para ejecutar"
 
-#: MainDocument.cpp:2522 MainDocument.cpp:2528
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Listo para comenzar"
 
-#: MainDocument.cpp:2532
-msgid " (Scheduler wait: "
-msgstr "  (Planificador en espera: "
+#: clientgui/MainDocument.cpp:2524
+msgid "Postponed: "
+msgstr "Pospuesto:"
 
-#: MainDocument.cpp:2536
-msgid " (Scheduler wait)"
-msgstr "  (Planificador en espera)"
+#: clientgui/MainDocument.cpp:2527
+msgid "Postponed"
+msgstr "Posponer"
 
-#: MainDocument.cpp:2540
-msgid " (Waiting for network access)"
-msgstr " (Esperando acceso a la red)"
+#: clientgui/MainDocument.cpp:2531
+msgid "Waiting for network access"
+msgstr "Esperando por acceso a la red"
 
-#: MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Error de cálculo"
 
-#: MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Envío fallido"
 
-#: MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Enviando"
 
-#: MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Abortado por el usuario"
 
-#: MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Abortado por el proyecto"
 
-#: MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Abortado: no iniciado por el límite de tiempo"
 
-#: MainDocument.cpp:2570
-msgid "Aborted: disk limit exceeded"
-msgstr "Abortado: límite de disco excedido"
+#: clientgui/MainDocument.cpp:2561
+msgid "Aborted: task disk limit exceeded"
+msgstr "Abortado: límite de disco para la tarea excedido"
 
-#: MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Abortado: límite de tiempo de ejecución excedido"
 
-#: MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Abortado: límite de memoria excedido"
 
-#: MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Abortado"
 
-#: MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Aceptado"
 
-#: MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Listo para informar"
 
-#: MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Error: estado inválido '%d'"
 
-#: NoInternetConnectionPage.cpp:179
+#: clientgui/NoInternetConnectionPage.cpp:179
 msgid "No Internet connection"
 msgstr "Sin conexión a Internet"
 
-#: NoInternetConnectionPage.cpp:182
+#: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
 msgstr "Por favor conecte a Internet e inténtelo de nuevo."
 
-#: NotDetectedPage.cpp:181
+#: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
 msgstr "Proyecto no encontrado"
 
-#: NotDetectedPage.cpp:184
+#: clientgui/NotDetectedPage.cpp:184
 msgid ""
 "The URL you supplied is not that of a BOINC-based project.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
-"La URL que suministró no es de un proyecto basado en BOINC.\n"
-"\n"
-"Por favor compruebe la dirección e inténtelo de nuevo."
+msgstr "La URL que suministró no es de un proyecto basado en BOINC.\n\nPor favor compruebe la dirección e inténtelo de nuevo."
 
-#: NotDetectedPage.cpp:188
+#: clientgui/NotDetectedPage.cpp:188
 msgid "Account manager not found"
 msgstr "Administrador de cuentas no encontrado"
 
-#: NotDetectedPage.cpp:191
+#: clientgui/NotDetectedPage.cpp:191
 msgid ""
 "The URL you supplied is not that of a BOINC-based account\n"
 "manager.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
-"La URL que ha suministrado no es de un administrador de cuentas\n"
-"BOINC.\n"
-"\n"
-"Por favor compruebe la dirección e inténtelo de nuevo."
+msgstr "La URL que ha suministrado no es de un administrador de cuentas\nBOINC.\n\nPor favor compruebe la dirección e inténtelo de nuevo."
 
-#: NotFoundPage.cpp:181
+#: clientgui/NotFoundPage.cpp:181
 msgid "Login Failed."
 msgstr "Identificación Fallida."
 
-#: NotFoundPage.cpp:185
+#: clientgui/NotFoundPage.cpp:185
 msgid "Check the username and password, and try again."
 msgstr "Verifique su nombre de usuario y clave e inténtelo de nuevo."
 
-#: NotFoundPage.cpp:189
+#: clientgui/NotFoundPage.cpp:189
 msgid "Check the email address and password, and try again."
 msgstr "Verifique que su dirección de correo y clave e inténtelo de nuevo."
 
-#: NoticeListCtrl.cpp:222
+#: clientgui/NoticeListCtrl.cpp:229
 msgid "more..."
 msgstr "más..."
 
-#: ProjectInfoPage.cpp:477 ProjectInfoPage.cpp:778 ProjectInfoPage.cpp:782
-msgid "All"
-msgstr "Todo"
-
-#: ProjectInfoPage.cpp:615
+#: clientgui/ProjectInfoPage.cpp:221
 msgid "Choose a project"
 msgstr "Elegir un proyecto"
 
-#: ProjectInfoPage.cpp:619
+#: clientgui/ProjectInfoPage.cpp:226
 msgid "To choose a project, click its name or type its URL below."
-msgstr ""
-"Para elegir un proyecto, pulse sobre su nombre o introduzca su URL debajo."
+msgstr "Para elegir un proyecto, pulse sobre su nombre o introduzca su URL debajo."
 
-#: ProjectInfoPage.cpp:623
+#: clientgui/ProjectInfoPage.cpp:242
 msgid "Categories:"
 msgstr "Categorías:"
 
-#: ProjectInfoPage.cpp:627 sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Proyectos:"
 
-#: ProjectInfoPage.cpp:631
+#: clientgui/ProjectInfoPage.cpp:274
 msgid "Project details"
 msgstr "Detalles del proyecto"
 
-#: ProjectInfoPage.cpp:635
+#: clientgui/ProjectInfoPage.cpp:284
 msgid "Research area:"
 msgstr "Área de investigación:"
 
-#: ProjectInfoPage.cpp:639
+#: clientgui/ProjectInfoPage.cpp:294
 msgid "Organization:"
 msgstr "Organización:"
 
-#: ProjectInfoPage.cpp:643
+#: clientgui/ProjectInfoPage.cpp:304
 msgid "Web site:"
 msgstr "Sitio web:"
 
-#: ProjectInfoPage.cpp:647
+#: clientgui/ProjectInfoPage.cpp:315
 msgid "Supported systems:"
 msgstr "Sistemas soportados:"
 
-#: ProjectInfoPage.cpp:651
+#: clientgui/ProjectInfoPage.cpp:352
 msgid "Project URL:"
 msgstr "URL del proyecto:"
 
-#: ProjectInfoPage.cpp:826
+#: clientgui/ProjectInfoPage.cpp:486 clientgui/ProjectInfoPage.cpp:686
+#: clientgui/ProjectInfoPage.cpp:690
+msgid "All"
+msgstr "Todo"
+
+#: clientgui/ProjectInfoPage.cpp:735
 msgid ""
 "This project may not have work for your type of computer.  Do you want to "
 "add it anyway?"
-msgstr ""
-"Puede que este proyecto no tenga trabajo para su tipo de ordenador.  ¿Quiere "
-"añadirlo de todas formas?"
+msgstr "Puede que este proyecto no tenga trabajo para su tipo de ordenador.  ¿Quiere añadirlo de todas formas?"
 
-#: ProjectInfoPage.cpp:850
+#: clientgui/ProjectInfoPage.cpp:767
 msgid "You already added this project. Please choose a different project."
 msgstr "Usted ya ha agregado este proyecto. Por favor, elija otro proyecto."
 
-#: ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Comunicando con el proyecto."
+#: clientgui/ProjectProcessingPage.cpp:321
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Comunicando con el proyecto\nPor favor espere..."
 
-#: ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Los archivos requeridos no se encuentran en el servidor."
 
-#: ProjectProcessingPage.cpp:512 ProjectProcessingPage.cpp:574
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Ha ocurrido un error interno en el servidor."
 
-#: ProjectPropertiesPage.cpp:334
+#: clientgui/ProjectWelcomePage.cpp:251
+#, c-format
+msgid "Welcome to %s."
+msgstr "Bienvenido a %s."
+
+#: clientgui/ProjectWelcomePage.cpp:254
+msgid "You have volunteered to compute for this project:"
+msgstr "Se ha presentado voluntario en computación para este proyecto:"
+
+#: clientgui/ProjectWelcomePage.cpp:255
+msgid "Name:"
+msgstr "Nombre:"
+
+#: clientgui/ProjectWelcomePage.cpp:258
+msgid "Home:"
+msgstr "Inicio:"
+
+#: clientgui/ProjectWelcomePage.cpp:262
+msgid "Description:"
+msgstr "Descripción:"
+
+#: clientgui/ProjectWelcomePage.cpp:265
+msgid "URL:"
+msgstr ":"
+
+#: clientgui/ProjectWelcomePage.cpp:268
+msgid "User:"
+msgstr "Usuario:"
+
+#: clientgui/ProjectWelcomePage.cpp:273
 msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr ""
-"Comunicando con el proyecto\n"
-"Por favor espere..."
+"WARNING: This project is not registered with BOINC.  Make sure you trust it "
+"before continuing."
+msgstr "AVISO: Este proyecto no está registrado con BOINC. Asegúrese que confía en él antes de continuar."
+
+#: clientgui/ProjectWelcomePage.cpp:277
+msgid "To continue, click Next."
+msgstr "Para continuar, haga clic en Siguiente."
 
-#: ProxyInfoPage.cpp:195
+#: clientgui/ProxyInfoPage.cpp:195
 msgid "Network communication failure"
 msgstr "Fallo en comunicación de red"
 
-#: ProxyInfoPage.cpp:199
+#: clientgui/ProxyInfoPage.cpp:199
 msgid ""
 "The World Community Grid - BOINC software failed to communicate\n"
 "over the Internet. The most likely reasons are:\n"
@@ -2657,22 +2832,9 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
-"El programa World Community Grid - BOINC no ha podido establecer conexión\n"
-"con Internet. Las razones más probables son:\n"
-"\n"
-"1) Problema de conexión.  Compruebe su conexión de red o módem\n"
-"y haga clic en Anterior para intentarlo de nuevo.\n"
-"\n"
-"2) Un cortafuegos personal está bloqueando el programa World Community\n"
-" Grid - BOINC.  Configure su cortafuegos personal para dejar\n"
-"que BOINC y el Administrador BOINC se comuniquen con el puerto 80 y el 443,\n"
-"entonces haga clic en Anterior para intentarlo de nuevo.\n"
-"\n"
-"2) Usted está utilizando un servidor proxy.\n"
-"Haga clic en Siguiente para configurar los parámetros proxy de BOINC."
+msgstr "El programa World Community Grid - BOINC no ha podido establecer conexión\ncon Internet. Las razones más probables son:\n\n1) Problema de conexión.  Compruebe su conexión de red o módem\ny haga clic en Anterior para intentarlo de nuevo.\n\n2) Un cortafuegos personal está bloqueando el programa World Community\n Grid - BOINC.  Configure su cortafuegos personal para dejar\nque BOINC y el Administrador BOINC se comuniquen con el puerto 80 y el 443,\nentonces haga clic en Anterior pa [...]
 
-#: ProxyInfoPage.cpp:203
+#: clientgui/ProxyInfoPage.cpp:203
 msgid ""
 "BOINC failed to communicate on the Internet.\n"
 "The most likely reasons are:\n"
@@ -2687,2421 +2849,991 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
-"BOINC no ha podido establecer conexión con Internet.\n"
-"Las razones más probables son:\n"
-"\n"
-"1) Problema de conexión.   Compruebe su conexión de red\n"
-"o módem y haga clic en Anterior para intentarlo de nuevo.\n"
-"\n"
-"2) Un cortafuegos personal está bloqueando BOINC.\n"
-"Configure su cortafuegos personal para dejar que BOINC y\n"
-"el Administrador BOINC se comuniquen con el puerto 80,\n"
-" entonces haga clic en Anterior para intentarlo de nuevo.\n"
-"\n"
-"2) Usted está utilizando un servidor proxy.\n"
-"Haga clic en Siguiente para configurar los parámetros proxy de BOINC."
+msgstr "BOINC no ha podido establecer conexión con Internet.\nLas razones más probables son:\n\n1) Problema de conexión.   Compruebe su conexión de red\no módem y haga clic en Anterior para intentarlo de nuevo.\n\n2) Un cortafuegos personal está bloqueando BOINC.\nConfigure su cortafuegos personal para dejar que BOINC y\nel Administrador BOINC se comuniquen con el puerto 80,\n entonces haga clic en Anterior para intentarlo de nuevo.\n\n2) Usted está utilizando un servidor proxy.\nHaga cl [...]
 
-#: ProxyPage.cpp:331
+#: clientgui/ProxyPage.cpp:331
 msgid "Proxy configuration"
 msgstr "Configuración proxy"
 
-#: ProxyPage.cpp:334
+#: clientgui/ProxyPage.cpp:334
 msgid "HTTP proxy"
 msgstr "Proxy HTTP"
 
-#: ProxyPage.cpp:337 ProxyPage.cpp:357
+#: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
 msgid "Server:"
 msgstr "Servidor:"
 
-#: ProxyPage.cpp:350
+#: clientgui/ProxyPage.cpp:350
 msgid "Autodetect"
 msgstr "Autodetección"
 
-#: ProxyPage.cpp:354
+#: clientgui/ProxyPage.cpp:354
 msgid "SOCKS proxy"
 msgstr "Proxy SOCKS"
 
-#: TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Terminos de Uso"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Piel"
 
-#: TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Por favor, lea los siguientes términos de uso:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Seleccione el aspecto de la interfaz de usuario."
 
-#: TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Acepto los términos de uso."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Vista Avanzada\tCtrl+Shift+A"
 
-#: TermsOfUsePage.cpp:237
-#, fuzzy
-msgid "I do not agree to the terms of use."
-msgstr "No acepto los términos de uso:"
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Muestra la interfaz gráfica avanzada."
 
-#: UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Proyecto temporalmente no disponible"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Configurar las opciones del interfaz de usuario y los valores del proxy"
 
-#: UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-"El proyecto actualmente no está disponible.\n"
-"\n"
-"Por favor inténtelo más tarde."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Visualizar mensajes de diagnóstico."
 
-#: UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Administrador de cuentas temporalmente no disponible"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-"El administrador de cuentas no está actualmente disponible.\n"
-"\n"
-"Por favor inténtelo más tarde."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Predeterminado"
 
-#: ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Por favor especifique una clave de cuenta para continuar."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Suspender"
 
-#: ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Clave de Cuenta inválida; por favor introduzca una clave válida"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Suspender la Computación"
 
-#: ValidateAccountKey.cpp:82 ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Error de validación"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Reanudar la Computación"
 
-#: ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Por favor especifique una dirección de correo"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Avisos"
 
-#: ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Dirección de correo inválida; por favor introduzca una dirección válida"
-
-#: ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "URL no introducida"
-
-#: ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr ""
-"Por favor especifique una URL.\n"
-"Por ejemplo:\n"
-"http://www.ejemplo.com/"
-
-#: ValidateURL.cpp:83 ValidateURL.cpp:87 ValidateURL.cpp:91
-#: ValidateURL.cpp:103 ValidateURL.cpp:107 ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "URL inválida"
-
-#: ValidateURL.cpp:84 ValidateURL.cpp:88 ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr ""
-"Por favor especifique una URL válida.\n"
-"Por ejemplo:\n"
-"http://proyectoboinc.ejemplo.com"
-
-#: ValidateURL.cpp:104 ValidateURL.cpp:108
-#, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' no contiene un nombre válido de ordenador."
-
-#: ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' no contiene una ruta válida."
-
-#: ViewMessages.cpp:84 ViewProjects.cpp:170 ViewStatistics.cpp:1978
-#: ViewTransfers.cpp:160 ViewWork.cpp:183
-msgid "Commands"
-msgstr "Comandos"
-
-#: ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Copiar todos los mensajes"
-
-#: ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Copiar los mensajes seleccionados"
-
-#: ViewMessages.cpp:106 ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Mostrar sólo este proyecto"
-
-#: ViewMessages.cpp:107 ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Mostrar sólo los mensajes del proyecto seleccionado."
-
-#: ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Mensajes"
-
-#: ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Copiando todos los mensajes al portapapeles..."
-
-#: ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Copiando los mensajes seleccionados al portapapeles..."
-
-#: ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtrando mensajes..."
-
-#: ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Mostrar todos los mensajes"
-
-#: ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Mostar los mensajes de todos los proyectos."
-
-#: ViewNotices.cpp:58 sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Buscando avisos; por favor espere..."
-
-#: ViewNotices.cpp:65 sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "No hay avisos en este momento."
-
-#: ViewNotices.cpp:99 sg_BoincSimpleFrame.cpp:776
-msgid "Notices"
-msgstr "Avisos"
-
-#: ViewProjects.cpp:174 sg_ProjectCommandPopup.cpp:61
-msgid "Update"
-msgstr "Actualizar"
-
-#: ViewProjects.cpp:175 sg_ProjectCommandPopup.cpp:62
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr ""
-"Enviar todas las tareas completadas, actualizar los créditos, actualizar sus "
-"preferencias y posiblemente descargar más tareas."
-
-#: ViewProjects.cpp:181 ViewProjects.cpp:722 ViewWork.cpp:208 ViewWork.cpp:801
-#: sg_BoincSimpleFrame.cpp:757 sg_ProjectCommandPopup.cpp:67
-#: sg_ProjectCommandPopup.cpp:113 sg_TaskCommandPopup.cpp:66
-#: sg_TaskCommandPopup.cpp:106
-msgid "Suspend"
-msgstr "Suspender"
-
-#: ViewProjects.cpp:182 ViewProjects.cpp:722 sg_ProjectCommandPopup.cpp:68
-#: sg_ProjectCommandPopup.cpp:114
-msgid "Suspend tasks for this project."
-msgstr "Suspender las tareas de este proyecto."
-
-#: ViewProjects.cpp:188 ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:73
-#: sg_ProjectCommandPopup.cpp:121
-msgid "No new tasks"
-msgstr "No pedir nuevas tareas"
-
-#: ViewProjects.cpp:189 sg_ProjectCommandPopup.cpp:74
-msgid "Don't get new tasks for this project."
-msgstr "No pedir más tareas para este proyecto."
-
-#: ViewProjects.cpp:195 sg_ProjectCommandPopup.cpp:79
-msgid "Reset project"
-msgstr "Reiniciar proyecto"
-
-#: ViewProjects.cpp:196 sg_ProjectCommandPopup.cpp:80
-msgid ""
-"Delete all files and tasks associated with this project, and get new tasks.  "
-"You can update the project first to report any completed tasks."
-msgstr ""
-"Borrar todos los archivos y tareas asociadas a este proyecto, y pedir nuevas "
-"tareas. Puede actualizar antes el proyecto para enviar cualquier tarea "
-"completada."
-
-#: ViewProjects.cpp:203 sg_ProjectCommandPopup.cpp:86
-msgid ""
-"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
-"report any completed tasks)."
-msgstr ""
-"Eliminar este proyecto.   Las tareas en progreso se perderán (use "
-"'Actualizar' en primer lugar para informar las tareas completadas)."
-
-#: ViewProjects.cpp:209 ViewWork.cpp:222 sg_ProjectCommandPopup.cpp:91
-#: sg_TaskCommandPopup.cpp:78
-msgid "Properties"
-msgstr "Propiedades"
-
-#: ViewProjects.cpp:210 sg_ProjectCommandPopup.cpp:92
-msgid "Show project details."
-msgstr "Mostrar los detalles del proyecto."
-
-#: ViewProjects.cpp:220 ViewStatistics.cpp:450
-msgid "Account"
-msgstr "Cuenta"
-
-#: ViewProjects.cpp:222
-msgid "Work done"
-msgstr "Trabajo finalizado"
-
-#: ViewProjects.cpp:223
-msgid "Avg. work done"
-msgstr "Promedio trabajo realizado"
-
-#: ViewProjects.cpp:225 ViewTransfers.cpp:188 ViewWork.cpp:234
-msgid "Status"
-msgstr "Estado"
-
-#: ViewProjects.cpp:250
-msgid "Projects"
-msgstr "Proyectos"
-
-#: ViewProjects.cpp:302
-msgid "Updating project..."
-msgstr "Actualizando proyecto..."
-
-#: ViewProjects.cpp:344
-msgid "Resuming project..."
-msgstr "Reanudando proyecto..."
-
-#: ViewProjects.cpp:348
-msgid "Suspending project..."
-msgstr "Suspendiendo proyecto..."
-
-#: ViewProjects.cpp:385
-msgid "Telling project to allow additional task downloads..."
-msgstr "Solicitando al proyecto que permita la descarga de más tareas..."
-
-#: ViewProjects.cpp:389
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Solicitando al proyecto que no consiga más tareas..."
-
-#: ViewProjects.cpp:425
-msgid "Resetting project..."
-msgstr "Reiniciando proyecto..."
-
-#: ViewProjects.cpp:438 sg_ProjectCommandPopup.cpp:214
-#, c-format
-msgid "Are you sure you want to reset project '%s'?"
-msgstr "¿Está seguro de que quiere reiniciar el proyecto '%s'?"
-
-#: ViewProjects.cpp:444 sg_ProjectCommandPopup.cpp:220
-msgid "Reset Project"
-msgstr "Reiniciar Proyecto"
-
-#: ViewProjects.cpp:483
-msgid "Removing project..."
-msgstr "Eliminando proyecto..."
-
-#: ViewProjects.cpp:496 sg_ProjectCommandPopup.cpp:251
-#, c-format
-msgid "Are you sure you want to remove project '%s'?"
-msgstr "¿Está seguro de que quiere eliminar el proyecto '%s'?"
-
-#: ViewProjects.cpp:502 sg_ProjectCommandPopup.cpp:257
-msgid "Remove Project"
-msgstr "Eliminar Proyecto"
-
-#: ViewProjects.cpp:543 ViewWork.cpp:599
-msgid "Launching browser..."
-msgstr "Lanzando navegador..."
-
-#: ViewProjects.cpp:718 sg_ProjectCommandPopup.cpp:111
-msgid "Resume tasks for this project."
-msgstr "Reanudar las tareas para este proyecto"
-
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:118
-msgid "Allow new tasks"
-msgstr "Permitir nuevas tareas"
-
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:119
-msgid "Allow fetching new tasks for this project."
-msgstr "Permitir conseguir nuevas tareas para este proyecto."
-
-#: ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:122
-msgid "Don't fetch new tasks for this project."
-msgstr "No pedir más tareas para este proyecto."
-
-#: ViewProjects.cpp:1058
-msgid "Requested by user"
-msgstr "Pedido por el usuario"
-
-#: ViewProjects.cpp:1059
-msgid "To fetch work"
-msgstr "Buscar trabajo"
-
-#: ViewProjects.cpp:1060
-msgid "To report completed tasks"
-msgstr "Informar las tareas completadas"
-
-#: ViewProjects.cpp:1061
-msgid "To send trickle-up message"
-msgstr "Enviar mensaje trickle-up"
-
-#: ViewProjects.cpp:1062
-msgid "Requested by account manager"
-msgstr "Pedido por el administrador de cuentas"
-
-#: ViewProjects.cpp:1063
-msgid "Project initialization"
-msgstr "Iniciación del proyecto"
-
-#: ViewProjects.cpp:1064
-msgid "Requested by project"
-msgstr "Pedido por el proyecto"
-
-#: ViewProjects.cpp:1065
-msgid "Unknown reason"
-msgstr "Razón desconocida"
-
-#: ViewProjects.cpp:1079
-msgid "Suspended by user"
-msgstr "Suspendido por el usuario"
-
-#: ViewProjects.cpp:1082
-msgid "Won't get new tasks"
-msgstr "No se descargarán nuevas tareas"
-
-#: ViewProjects.cpp:1085
-msgid "Project ended - OK to remove"
-msgstr "Proyecto finalizado - listo para eliminarlo"
-
-#: ViewProjects.cpp:1088
-msgid "Will remove when tasks done"
-msgstr "Se eliminará cuando las tareas estén terminadas"
-
-#: ViewProjects.cpp:1091
-msgid "Scheduler request pending"
-msgstr "Pendiente petición al Planificador"
-
-#: ViewProjects.cpp:1097
-msgid "Scheduler request in progress"
-msgstr "Petición al planificador en progreso"
-
-#: ViewProjects.cpp:1100
-msgid "Trickle up message pending"
-msgstr "Mensaje trickle up pendiente"
-
-#: ViewProjects.cpp:1106
-msgid "Communication deferred "
-msgstr "Comunicación aplazada "
-
-#: ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Total de disco utilizado"
-
-#: ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Disco utilizado por los proyectos BOINC"
-
-#: ViewResources.cpp:116
-msgid "Disk"
-msgstr "Disco"
-
-#: ViewResources.cpp:249
-msgid "no projects: 0 bytes used"
-msgstr "sin proyectos: 0 bytes usados"
-
-#: ViewResources.cpp:286
-msgid "used by BOINC: "
-msgstr "utilizado por BOINC:  "
-
-#: ViewResources.cpp:296
-msgid "free, available to BOINC: "
-msgstr "libre, disponible para BOINC: "
-
-#: ViewResources.cpp:306
-msgid "free, not available to BOINC: "
-msgstr "libre, no disponible para BOINC: "
-
-#: ViewResources.cpp:316
-msgid "free: "
-msgstr "libre: "
-
-#: ViewResources.cpp:326
-msgid "used by other programs: "
-msgstr "utilizado por otros programas:  "
-
-#: ViewStatistics.cpp:1205
-msgid "User Total"
-msgstr "Total Usuario"
-
-#: ViewStatistics.cpp:1206
-msgid "User Average"
-msgstr "Promedio Usuario"
-
-#: ViewStatistics.cpp:1207
-msgid "Host Total"
-msgstr "Total Ordenador"
-
-#: ViewStatistics.cpp:1208
-msgid "Host Average"
-msgstr "Promedio Ordenador"
-
-#: ViewStatistics.cpp:1355
-#, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Última actualización: hace %.0f días"
-
-#: ViewStatistics.cpp:1982
-msgid "Show user total"
-msgstr "Mostrar totales del usuario"
-
-#: ViewStatistics.cpp:1983
-msgid "Show total credit for user"
-msgstr "Muestra el crédito total del usuario"
-
-#: ViewStatistics.cpp:1989
-msgid "Show user average"
-msgstr "Mostrar promedios del usuario"
-
-#: ViewStatistics.cpp:1990
-msgid "Show average credit for user"
-msgstr "Muestra el crédito promedio del usuario"
-
-#: ViewStatistics.cpp:1996
-msgid "Show host total"
-msgstr "Mostrar totales del ordenador"
-
-#: ViewStatistics.cpp:1997
-msgid "Show total credit for host"
-msgstr "Muestra el crédito total del ordenador"
-
-#: ViewStatistics.cpp:2003
-msgid "Show host average"
-msgstr "Mostrar promedios del ordenador"
-
-#: ViewStatistics.cpp:2004
-msgid "Show average credit for host"
-msgstr "Muestra el crédito promedio del ordenador"
-
-#: ViewStatistics.cpp:2013
-msgid "< &Previous project"
-msgstr "< Proyecto &anterior"
-
-#: ViewStatistics.cpp:2014
-msgid "Show chart for previous project"
-msgstr "Muestra el gráfico del proyecto anterior"
-
-#: ViewStatistics.cpp:2019
-msgid "&Next project >"
-msgstr "&Siguiente proyecto >"
-
-#: ViewStatistics.cpp:2020
-msgid "Show chart for next project"
-msgstr "Muestra el gráfico del siguiente proyecto"
-
-#: ViewStatistics.cpp:2026 ViewStatistics.cpp:2416
-msgid "Hide project list"
-msgstr "Ocultar la lista de proyectos"
-
-#: ViewStatistics.cpp:2027 ViewStatistics.cpp:2416
-msgid "Use entire area for graphs"
-msgstr "Usar todo el área para gráficos"
-
-#: ViewStatistics.cpp:2032
-msgid "Mode view"
-msgstr "Modo de presentación"
-
-#: ViewStatistics.cpp:2036
-msgid "One project"
-msgstr "Un proyecto"
-
-#: ViewStatistics.cpp:2037
-msgid "Show one chart with selected project"
-msgstr "Muestra un gráfico del proyecto seleccionado"
-
-#: ViewStatistics.cpp:2043
-msgid "All projects (separate)"
-msgstr "Todos los proyectos (separados)"
-
-#: ViewStatistics.cpp:2044
-msgid "Show all projects, one chart per project"
-msgstr "Muestra todos los proyectos, un gráfico por proyecto"
-
-#: ViewStatistics.cpp:2050
-msgid "All projects (together)"
-msgstr "Todos los proyectos (juntos)"
-
-#: ViewStatistics.cpp:2051
-msgid "Show one chart with all projects"
-msgstr "Muestra un gráfico con todos los proyectos"
-
-#: ViewStatistics.cpp:2057
-msgid "All projects (sum)"
-msgstr "Todos los proyectos (suma)"
-
-#: ViewStatistics.cpp:2058
-msgid "Show one chart with sum of projects"
-msgstr "Muestra un gráfico con la suma de los proyectos"
-
-#: ViewStatistics.cpp:2079
-msgid "Statistics"
-msgstr "Estadísticas"
-
-#: ViewStatistics.cpp:2103 ViewStatistics.cpp:2124 ViewStatistics.cpp:2145
-#: ViewStatistics.cpp:2167 ViewStatistics.cpp:2188 ViewStatistics.cpp:2209
-#: ViewStatistics.cpp:2230 ViewStatistics.cpp:2251 ViewStatistics.cpp:2272
-#: ViewStatistics.cpp:2296
-msgid "Updating charts..."
-msgstr "Actualizando gráficas..."
-
-#: ViewStatistics.cpp:2420
-msgid "Show project list"
-msgstr "Mostrar la lista de proyectos"
-
-#: ViewStatistics.cpp:2420
-msgid "Uses smaller area for graphs"
-msgstr "Usar un área menor para gráficos"
-
-#: ViewTransfers.cpp:164
-msgid "Retry Now"
-msgstr "Reintentar Ahora"
-
-#: ViewTransfers.cpp:165
-msgid "Retry the file transfer now"
-msgstr "Reintentar la transferencia del archivo ahora"
-
-#: ViewTransfers.cpp:171
-msgid "Abort Transfer"
-msgstr "Abortar Transferencia"
-
-#: ViewTransfers.cpp:172
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr ""
-"Abortar la transferencia de este archivo.   No obtendrá crédito por la "
-"tarea."
-
-#: ViewTransfers.cpp:183
-msgid "File"
-msgstr "Archivo"
-
-#: ViewTransfers.cpp:184 ViewWork.cpp:233
-msgid "Progress"
-msgstr "Progreso"
-
-#: ViewTransfers.cpp:185
-msgid "Size"
-msgstr "Tamaño"
-
-#: ViewTransfers.cpp:186
-msgid "Elapsed Time"
-msgstr "Tiempo transcurrido"
-
-#: ViewTransfers.cpp:187
-msgid "Speed"
-msgstr "Velocidad"
-
-#: ViewTransfers.cpp:213
-msgid "Transfers"
-msgstr "Transferencias"
-
-#: ViewTransfers.cpp:280
-msgid "Network activity is suspended - "
-msgstr "La actividad de red está suspendida - "
-
-#: ViewTransfers.cpp:282
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ""
-".\n"
-"Usted puede habilitarlo usando el menú Actividad."
-
-#: ViewTransfers.cpp:285
-msgid "BOINC"
-msgstr "BOINC"
-
-#: ViewTransfers.cpp:292
-msgid "Retrying transfer now..."
-msgstr "Reintentando transferencia ahora..."
-
-#: ViewTransfers.cpp:330
-msgid "Aborting transfer..."
-msgstr "Cancelando la transferencia..."
-
-#: ViewTransfers.cpp:343
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr ""
-"¿Está seguro de que quiere abortar la transferencia de este fichero  '%s'?\n"
-"NOTA: Abortar una transferencia invalidará la tarea y usted\n"
-"no recibirá créditos por ella."
-
-#: ViewTransfers.cpp:349
-msgid "Abort File Transfer"
-msgstr "Cancelar Transferencia de Archivo"
-
-#: ViewTransfers.cpp:780
-msgid "Upload"
-msgstr "Enviar"
-
-#: ViewTransfers.cpp:780
-msgid "Download"
-msgstr "Descargar"
-
-#: ViewTransfers.cpp:784
-msgid "retry in "
-msgstr "reintentar en "
-
-#: ViewTransfers.cpp:786
-msgid "failed"
-msgstr "falló"
-
-#: ViewTransfers.cpp:789
-msgid "suspended"
-msgstr "suspendido"
-
-#: ViewTransfers.cpp:794
-msgid "active"
-msgstr "activo"
-
-#: ViewTransfers.cpp:796
-msgid "pending"
-msgstr "pendiente"
-
-#: ViewTransfers.cpp:803
-msgid " (project backoff: "
-msgstr "  (proyecto parado:_"
-
-#: ViewWork.cpp:187 ViewWork.cpp:777
-msgid "Show active tasks"
-msgstr "Mostrar tareas activas"
-
-#: ViewWork.cpp:188 ViewWork.cpp:778
-msgid "Show only active tasks."
-msgstr "Mostrar sólo tareas activas."
-
-#: ViewWork.cpp:194 sg_TaskCommandPopup.cpp:60
-msgid "Show graphics"
-msgstr "Mostrar gráficos"
-
-#: ViewWork.cpp:195 sg_TaskCommandPopup.cpp:61
-msgid "Show application graphics in a window."
-msgstr "Mostrar los gráficos de la aplicación en una ventana."
-
-#: ViewWork.cpp:201
-msgid "Show VM Console"
-msgstr "Mostrar Consola VM"
-
-#: ViewWork.cpp:202
-msgid "Show VM Console in a window."
-msgstr "Mostrar la Consola VM en una ventana."
-
-#: ViewWork.cpp:209
-msgid "Suspend work for this result."
-msgstr "Suspender el trabajo para este resultado."
-
-#: ViewWork.cpp:215 sg_TaskCommandPopup.cpp:72
-msgid "Abort"
-msgstr "Cancelar"
-
-#: ViewWork.cpp:216
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Abandonar el trabajo con el resultado. No conseguirá crédito por él."
-
-#: ViewWork.cpp:223 sg_TaskCommandPopup.cpp:79
-msgid "Show task details."
-msgstr "Mostrar detalles de la tarea."
-
-#: ViewWork.cpp:235
-msgid "Elapsed"
-msgstr "Transcurrido"
-
-#: ViewWork.cpp:236
-msgid "Remaining (estimated)"
-msgstr "Restante (estimado)"
-
-#: ViewWork.cpp:237
-msgid "Deadline"
-msgstr "Límite para informar"
-
-#: ViewWork.cpp:264
-msgid "Tasks"
-msgstr "Tareas"
-
-#: ViewWork.cpp:357
-msgid "Resuming task..."
-msgstr "Reanudando tareas..."
-
-#: ViewWork.cpp:360
-msgid "Suspending task..."
-msgstr "Suspendiendo tareas..."
-
-#: ViewWork.cpp:389
-msgid "Showing graphics for task..."
-msgstr "Mostrando gráficos para la tarea..."
-
-#: ViewWork.cpp:426
-msgid "Showing VM console for task..."
-msgstr "Mostrando consola VM para la tarea..."
-
-#: ViewWork.cpp:479
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr ""
-"¿Está seguro de querer cancelar esta tarea '%s'?\n"
-"(Progreso: %s, Estado: %s)"
-
-#: ViewWork.cpp:485
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "¿Está seguro de querer abortar estas %d tareas?"
-
-#: ViewWork.cpp:490 sg_TaskCommandPopup.cpp:256
-msgid "Abort task"
-msgstr "Cancelar tarea"
-
-# 75%
-#: ViewWork.cpp:499
-msgid "Aborting task..."
-msgstr "Abortando tarea..."
-
-#: ViewWork.cpp:771
-msgid "Show all tasks"
-msgstr "Mostrar todas las tareas"
-
-#: ViewWork.cpp:772
-msgid "Show all tasks."
-msgstr "Mostrar todas las tareas."
-
-#: ViewWork.cpp:796 sg_TaskCommandPopup.cpp:103
-msgid "Resume work for this task."
-msgstr "Reanudar el trabajo para esta tarea."
-
-#: ViewWork.cpp:802 sg_TaskCommandPopup.cpp:107
-msgid "Suspend work for this task."
-msgstr "Suspender el trabajo para esta tarea."
-
-#: WelcomePage.cpp:284
-msgid "Add project or account manager"
-msgstr "Añadir proyecto o administrador de cuentas"
-
-#: WelcomePage.cpp:288
-msgid "Add project or use BOINC Account Manager"
-msgstr "Añadir proyecto o usar Administrador de Cuentas BOINC"
-
-#: WelcomePage.cpp:297
-#, c-format
-msgid ""
-"If possible, add projects at the\n"
-"%s web site.\n"
-"\n"
-"Projects added via this wizard will not be\n"
-"listed on or managed via %s."
-msgstr ""
-"Si es posible, añada proyectos desde el\n"
-"sitio web de %s.\n"
-"\n"
-"Los proyectos que son añadidos a través de esta opción no serán\n"
-"listados o administrados a través de %s."
-
-#: WelcomePage.cpp:313
-msgid ""
-"There are over 30 BOINC-based projects\n"
-"doing research in many areas of science,\n"
-"and you can volunteer for as many of them as you like.\n"
-"You can add a project directly,\n"
-"or use an 'Account Manager' web site to select projects."
-msgstr ""
-"Hay más de 30 proyectos basados en BOINC\n"
-"investigando en muchas áreas de la ciencia,\n"
-"y usted puede ser voluntario en tantos de ellos como desee.\n"
-"Usted puede unirse a un proyecto directamente,\n"
-"o usar un sitio web 'Administrador de cuentas' para elegir los proyectos."
-
-#: WelcomePage.cpp:325
-msgid ""
-"You have chosen to add a new volunteer computing project or change which "
-"projects\n"
-"you contribute to.\n"
-"\n"
-"Some of these projects are run and managed by World Community Grid, while "
-"others\n"
-"are run and managed by other researchers or organizations. The BOINC "
-"software\n"
-"can divide your spare processing power among any combination of projects.\n"
-"\n"
-"Alternatively, if you have registered with a BOINC Account Manager, you can "
-"use\n"
-"this to choose which projects to support.\n"
-"\n"
-"Please choose which type of change you would like to make:\n"
-msgstr ""
-"Usted ha elegido añadir un nuevo proyecto de computación voluntaria o "
-"cambiar los proyectos\n"
-"con los que contribuye.\n"
-"\n"
-"Algunos de estos proyectos son mantenidos y dirigidos por World Community "
-"Grid, mientras que otros\n"
-"son mantenidos y dirigidos por otros investigadores u organizaciones. El "
-"programa BOINC\n"
-"puede dividir la potencia de procesamiento libre entre cualquier combinación "
-"de proyectos.\n"
-"\n"
-"Alternativamente, si usted se ha registrado con un Administrador de Cuentas "
-"BOINC, usted puede usarlo\n"
-"para elegir qué proyectos apoyar.\n"
-"\n"
-"Por favor, elija qué tipo de cambio le gustaría hacer:\n"
-
-#: WelcomePage.cpp:339
-msgid "Use a BOINC Account Manager"
-msgstr "Usar un Administrador de Cuentas BOINC"
-
-#: WelcomePage.cpp:352
-msgid "To continue, click Next."
-msgstr "Para continuar, haga clic en Siguiente."
-
-#: WelcomePage.cpp:358
-msgid "Add or change your World Community Grid projects"
-msgstr "Añadir o cambiar sus proyectos de World Community Grid"
-
-#: WelcomePage.cpp:361
-msgid "Add projects run by other researchers or organizations"
-msgstr "Agregar proyectos dirigidos por otros investigadores u organizaciones"
-
-#: WizardAttach.cpp:634
-msgid "Do you really want to cancel?"
-msgstr "¿Realmente desea cancelar?"
-
-#: WizardAttach.cpp:635
-msgid "Question"
-msgstr "Pregunta"
-
-#: sg_BoincSimpleFrame.cpp:149
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Vista Avanzada\tCtrl+Shift+A"
-
-#: sg_BoincSimpleFrame.cpp:150
-msgid "Display the advanced graphical interface."
-msgstr "Muestra la interfaz gráfica avanzada."
-
-#: sg_BoincSimpleFrame.cpp:157
-msgid "Skin"
-msgstr "Piel"
-
-#: sg_BoincSimpleFrame.cpp:159
-msgid "Select the appearance of the user interface."
-msgstr "Seleccione el aspecto de la interfaz de usuario."
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Abrir una ventana para ver avisos de los proyectos o de BOINC"
 
-#: sg_BoincSimpleFrame.cpp:206
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
 #, c-format
-msgid "&%s"
-msgstr "&%s"
-
-#: sg_BoincSimpleFrame.cpp:390
-msgid "Default"
-msgstr "Predeterminado"
-
-#: sg_BoincSimpleFrame.cpp:759
-msgid "Suspend Computing"
-msgstr "Suspender la Computación"
+msgid "Get help with %s"
+msgstr "Obtener ayuda con %s"
 
-#: sg_BoincSimpleFrame.cpp:760
-msgid "Resume Computing"
-msgstr "Reanudar la Computación"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Buscando avisos; por favor espere..."
 
-#: sg_BoincSimpleFrame.cpp:777
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Abrir una ventana para ver avisos de los proyectos o de BOINC"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "No hay avisos en este momento."
 
-#: sg_DlgMessages.cpp:146
+#: clientgui/sg_DlgMessages.cpp:146
 msgid "Close"
 msgstr "Cerrar"
 
-#: sg_DlgMessages.cpp:389
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
 msgid "%s - Notices"
 msgstr "%s - Avisos"
 
-#: sg_DlgPreferences.cpp:268
-msgid "This dialog controls preferences for this computer only."
-msgstr "Este diálogo contola las preferencias de este ordenador solamente."
-
-#: sg_DlgPreferences.cpp:273
-msgid "Click OK to set preferences."
-msgstr "Pulse Aceptar para establecer las preferencias."
-
-#: sg_DlgPreferences.cpp:278
-msgid ""
-"Click Clear to restore web-based settings for all preferences listed below."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:285
-#, fuzzy
+#: clientgui/sg_DlgPreferences.cpp:208
 msgid ""
 "For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Para ajustes adicionales, seleccione Preferencias de Computación en"
-
-#: sg_DlgPreferences.cpp:313
-msgid "Do work only between:"
-msgstr "Trabajar sólo entre:"
-
-#: sg_DlgPreferences.cpp:335
-msgid "Connect to internet only between:"
-msgstr "Conectar a Internet sólo entre:"
-
-#: sg_DlgPreferences.cpp:357 sg_DlgPreferences.cpp:374
-msgid "Use no more than:"
-msgstr "No usar más de:"
+msgstr "Para opciones adicionales, seleccione Preferencias de computación en la Vista Avanzada."
 
-#: sg_DlgPreferences.cpp:370
-msgid "of disk space"
-msgstr "de espacio en disco"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB de espacio en disco"
 
-#: sg_DlgPreferences.cpp:387
-msgid "of the processor"
-msgstr "del procesador"
-
-#: sg_DlgPreferences.cpp:391
-msgid "Do work while on battery?"
-msgstr "¿Trabajar cuando use baterías?"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Preferencias de cálculo"
 
-#: sg_DlgPreferences.cpp:404
-msgid "Do work after idle for:"
-msgstr "Trabajar después de estar inactivo durante:"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "¿Descartar todas las preferencias y usar las basadas en la Web?"
 
-#: sg_DlgPreferences.cpp:429
-#, fuzzy
-msgid "Clear all local preferences listed above and close the dialog"
-msgstr "restaurar todas las preferencias locales y cerrar la ventana"
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
+msgid "Update"
+msgstr "Actualizar"
 
-#: sg_DlgPreferences.cpp:602 sg_DlgPreferences.cpp:605
-#: sg_DlgPreferences.cpp:681 sg_DlgPreferences.cpp:685
-#: sg_DlgPreferences.cpp:697 sg_DlgPreferences.cpp:701
-#: sg_DlgPreferences.cpp:844 sg_DlgPreferences.cpp:855
-msgid "Anytime"
-msgstr "En cualquier momento"
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
+msgid ""
+"Report all completed tasks, get latest credit, get latest preferences, and "
+"possibly get more tasks."
+msgstr "Enviar todas las tareas completadas, actualizar los créditos, actualizar sus preferencias y posiblemente descargar más tareas."
 
-#: sg_DlgPreferences.cpp:638
-msgid "100 MB"
-msgstr "100 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:73
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
+msgid "Suspend tasks for this project."
+msgstr "Suspender las tareas de este proyecto."
 
-#: sg_DlgPreferences.cpp:639
-msgid "200 MB"
-msgstr "200 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
+msgid "No new tasks"
+msgstr "No pedir nuevas tareas"
 
-#: sg_DlgPreferences.cpp:640
-msgid "500 MB"
-msgstr "500 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
+msgid "Don't get new tasks for this project."
+msgstr "No pedir más tareas para este proyecto."
 
-#: sg_DlgPreferences.cpp:641
-msgid "1 GB"
-msgstr "1 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
+msgid "Reset project"
+msgstr "Reiniciar proyecto"
 
-#: sg_DlgPreferences.cpp:642
-msgid "2 GB"
-msgstr "2 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
+msgid ""
+"Delete all files and tasks associated with this project, and get new tasks."
+"  You can update the project first to report any completed tasks."
+msgstr "Borrar todos los archivos y tareas asociadas a este proyecto, y pedir nuevas tareas. Puede actualizar antes el proyecto para enviar cualquier tarea completada."
 
-#: sg_DlgPreferences.cpp:643
-msgid "5 GB"
-msgstr "5 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
+msgid ""
+"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
+"report any completed tasks)."
+msgstr "Eliminar este proyecto.   Las tareas en progreso se perderán (use 'Actualizar' en primer lugar para informar las tareas completadas)."
 
-#: sg_DlgPreferences.cpp:644
-msgid "10 GB"
-msgstr "10 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:96
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
+msgid "Properties"
+msgstr "Propiedades"
 
-#: sg_DlgPreferences.cpp:645
-msgid "20 GB"
-msgstr "20 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
+msgid "Show project details."
+msgstr "Mostrar los detalles del proyecto."
 
-#: sg_DlgPreferences.cpp:646
-msgid "50 GB"
-msgstr "50 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Reanudar las tareas para este proyecto"
 
-#: sg_DlgPreferences.cpp:647
-msgid "100 GB"
-msgstr "100 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Permitir nuevas tareas"
 
-#: sg_DlgPreferences.cpp:717
-#, c-format
-msgid "%d MB"
-msgstr "%d MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Permitir conseguir nuevas tareas para este proyecto."
 
-#: sg_DlgPreferences.cpp:719
-#, c-format
-msgid "%4.2f GB"
-msgstr "%4.2f GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "No pedir más tareas para este proyecto."
 
-#: sg_DlgPreferences.cpp:760
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
-msgid "%d%%"
-msgstr "%d%%"
+msgid "Are you sure you want to reset project '%s'?"
+msgstr "¿Está seguro de que quiere reiniciar el proyecto '%s'?"
 
-#: sg_DlgPreferences.cpp:796
-msgid "0 (Run Always)"
-msgstr "0 (Ejecutar siempre)"
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
+msgid "Reset Project"
+msgstr "Reiniciar Proyecto"
 
-#: sg_DlgPreferences.cpp:799
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
-msgid "%d"
-msgstr "%d"
+msgid "Are you sure you want to remove project '%s'?"
+msgstr "¿Está seguro de que quiere eliminar el proyecto '%s'?"
 
-#: sg_DlgPreferences.cpp:1029
-msgid "Do you really want to clear all local preferences?\n"
-msgstr "¿Realmente desea borrar todas las preferencias locales?"
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
+msgid "Remove Project"
+msgstr "Eliminar Proyecto"
 
-#: sg_ProjectPanel.cpp:72
+#: clientgui/sg_ProjectPanel.cpp:73
 msgid "Add Project"
 msgstr "Añadir proyecto"
 
-#: sg_ProjectPanel.cpp:73
+#: clientgui/sg_ProjectPanel.cpp:74
 msgid "Synchronize"
 msgstr "Sincronizar"
 
-#: sg_ProjectPanel.cpp:74
+#: clientgui/sg_ProjectPanel.cpp:75
 msgid "Work done for this project"
 msgstr "Trabajo realizado para este proyecto"
 
-#: sg_ProjectPanel.cpp:77
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Ser voluntario de alguno o todos de los más de 30 proyectos en muchas áreas de la ciencia"
+
+#: clientgui/sg_ProjectPanel.cpp:78
 msgid "Synchronize projects with account manager system"
 msgstr "Sincronizar los proyectos con el sistema de administrador de cuentas"
 
-#: sg_ProjectPanel.cpp:124
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
 msgid "Select a project to access with the controls below"
 msgstr "Seleccione un proyecto al que acceder con los controles de abajo"
 
-#: sg_ProjectPanel.cpp:145
+#: clientgui/sg_ProjectPanel.cpp:146
 msgid "Project Web Pages"
 msgstr "Páginas Web del Proyecto"
 
-#: sg_ProjectPanel.cpp:149
+#: clientgui/sg_ProjectPanel.cpp:150
 msgid "Project Commands"
 msgstr "Comandos del Proyecto"
 
-#: sg_ProjectPanel.cpp:267
+#: clientgui/sg_ProjectPanel.cpp:279
 #, c-format
-#, c-format, fuzzy
 msgid "Pop up a menu of web sites for project %s"
 msgstr "Saca un menú de sitios web del proyecto %s"
 
-#: sg_ProjectPanel.cpp:269
+#: clientgui/sg_ProjectPanel.cpp:281
 #, c-format
 msgid "Pop up a menu of commands to apply to project %s"
 msgstr "Saca un menú de comandos a aplicar al proyecto %s"
 
-#: sg_TaskCommandPopup.cpp:67
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Mostrar gráficos"
+
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Mostrar los gráficos de la aplicación en una ventana."
+
+#: clientgui/sg_TaskCommandPopup.cpp:73
 msgid "Suspend this task."
 msgstr "Suspender esta tarea."
 
-#: sg_TaskCommandPopup.cpp:73
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Cancelar"
+
+#: clientgui/sg_TaskCommandPopup.cpp:79
 msgid "Abandon this task. You will get no credit for it."
 msgstr "Abandonar este tarea. No obtendrá crédito por ella."
 
-#: sg_TaskCommandPopup.cpp:251
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Mostrar detalles de la tarea."
+
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Reanudar el trabajo para esta tarea."
+
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Suspender el trabajo para esta tarea."
+
+#: clientgui/sg_TaskCommandPopup.cpp:267
 #, c-format
 msgid ""
 "Are you sure you want to abort this task '%s'?\n"
 "(Progress: %.1lf%%, Status: %s)"
-msgstr ""
-"¿Está seguro de querer cancelar la tarea '%s'?\n"
-"(Progreso: %.1lf%%, Estado: %s)"
+msgstr "¿Está seguro de querer cancelar la tarea '%s'?\n(Progreso: %.1lf%%, Estado: %s)"
+
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Cancelar tarea"
 
-#: sg_TaskPanel.cpp:464
+#: clientgui/sg_TaskPanel.cpp:469
 msgid "You don't have any projects.  Please Add a Project."
 msgstr "Usted no tiene ningún proyecto. Por favor únase a uno."
 
-#: sg_TaskPanel.cpp:465
+#: clientgui/sg_TaskPanel.cpp:470
 msgid "Not available"
 msgstr "No disponible"
 
-#: sg_TaskPanel.cpp:476
+#: clientgui/sg_TaskPanel.cpp:481
 msgid "Tasks:"
 msgstr "Tareas:"
 
-#: sg_TaskPanel.cpp:482
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
 msgid "Select a task to access"
 msgstr "Seleccione una tarea a la que acceder"
 
-#: sg_TaskPanel.cpp:493
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
 msgid "From:"
 msgstr "De:"
 
-#: sg_TaskPanel.cpp:547
+#: clientgui/sg_TaskPanel.cpp:553
 msgid "This task's progress"
 msgstr "Progreso de esta tarea"
 
-#: sg_TaskPanel.cpp:565
+#: clientgui/sg_TaskPanel.cpp:571
 msgid "Task Commands"
 msgstr "Comandos de la Tarea"
 
-#: sg_TaskPanel.cpp:566
+#: clientgui/sg_TaskPanel.cpp:572
 msgid "Pop up a menu of commands to apply to this task"
 msgstr "Visualizar un menú de comandos aplicables a esta tarea"
 
-#: sg_TaskPanel.cpp:701
+#: clientgui/sg_TaskPanel.cpp:707
 #, c-format
 msgid "Application: %s"
 msgstr "Aplicación: %s"
 
-#: sg_TaskPanel.cpp:724
+#: clientgui/sg_TaskPanel.cpp:730
 #, c-format
 msgid "%.3f%%"
 msgstr "%.3f%%"
 
-#: sg_TaskPanel.cpp:732
+#: clientgui/sg_TaskPanel.cpp:738
 msgid "Application: Not available"
 msgstr "Aplicación: No disponible"
 
-#: sg_TaskPanel.cpp:832
+#: clientgui/sg_TaskPanel.cpp:839
 msgid "Not Available"
 msgstr "No Disponible"
 
-#: sg_TaskPanel.cpp:847
+#: clientgui/sg_TaskPanel.cpp:854
 #, c-format
 msgid "Elapsed: %s"
 msgstr "Transcurrido: %s"
 
-#: sg_TaskPanel.cpp:861
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
 msgid "Remaining (estimated): %s"
 msgstr "Restante (estimado): %s"
 
-#: sg_TaskPanel.cpp:876
+#: clientgui/sg_TaskPanel.cpp:883
 #, c-format
 msgid "Status: %s"
 msgstr "Estado: %s"
 
-#: sg_TaskPanel.cpp:1223
+#: clientgui/sg_TaskPanel.cpp:1217
 msgid "Retrieving current status."
 msgstr "Recuperando estado actual."
 
-#: sg_TaskPanel.cpp:1229
+#: clientgui/sg_TaskPanel.cpp:1223
 msgid "Downloading work from the server."
 msgstr "Descargando trabajo del servidor."
 
-#: sg_TaskPanel.cpp:1234
+#: clientgui/sg_TaskPanel.cpp:1228
 msgid "Processing Suspended:  Running On Batteries."
 msgstr "Procesamiento Suspendido: Funcionando con Baterías."
 
-#: sg_TaskPanel.cpp:1236
+#: clientgui/sg_TaskPanel.cpp:1230
 msgid "Processing Suspended:  User Active."
 msgstr "Procesamiento Suspendido: Usuario Activo."
 
-#: sg_TaskPanel.cpp:1238
+#: clientgui/sg_TaskPanel.cpp:1232
 msgid "Processing Suspended:  User paused processing."
 msgstr "Procesamiento Suspendido: Usuario suspendió actividad."
 
-#: sg_TaskPanel.cpp:1240
+#: clientgui/sg_TaskPanel.cpp:1234
 msgid "Processing Suspended:  Time of Day."
 msgstr "Procesamiento Suspendido: Hora del Día."
 
-#: sg_TaskPanel.cpp:1242
+#: clientgui/sg_TaskPanel.cpp:1236
 msgid "Processing Suspended:  Benchmarks Running."
 msgstr "Procesamiento Suspendido: Ejecutando Pruebas Rendimiento."
 
-#: sg_TaskPanel.cpp:1244
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Procesamiento Suspendido: Necesario espacio en disco."
+
+#: clientgui/sg_TaskPanel.cpp:1240
 msgid "Processing Suspended."
 msgstr "Procesamiento Suspendido."
 
-#: sg_TaskPanel.cpp:1248
+#: clientgui/sg_TaskPanel.cpp:1244
 msgid "Waiting to contact project servers."
 msgstr "Esperando a contactar con los servidores del proyecto."
 
-#: sg_TaskPanel.cpp:1252 sg_TaskPanel.cpp:1261
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
 msgid "Retrieving current status"
 msgstr "Recuperando estado actual"
 
-#: sg_TaskPanel.cpp:1256
+#: clientgui/sg_TaskPanel.cpp:1252
 msgid "No work available to process"
 msgstr "No hay trabajo disponible para procesar"
 
-#: sg_TaskPanel.cpp:1258
+#: clientgui/sg_TaskPanel.cpp:1254
 msgid "Unable to connect to the core client"
 msgstr "No se puede conectar al cliente núcleo"
 
-#: wizardex.cpp:377 wizardex.cpp:553
-msgid "&Next >"
-msgstr "&Siguiente >"
-
-#: wizardex.cpp:383
-msgid "< &Back"
-msgstr "< &Anterior"
-
-#: wizardex.cpp:553
-msgid "&Finish"
-msgstr "&Finalizar"
-
-#: mac/Mac_GUI.cpp:110
-msgid "Preferences…"
-msgstr "Preferencias..."
-
-#: mac/Mac_GUI.cpp:122
-msgid "Services"
-msgstr "Servicios"
-
-#: mac/Mac_GUI.cpp:144
-#, c-format
-msgid "Hide %s"
-msgstr "Ocultar %s"
-
-#: mac/Mac_GUI.cpp:158
-msgid "Hide Others"
-msgstr "Ocultar los Otros"
-
-#: mac/Mac_GUI.cpp:172
-msgid "Show All"
-msgstr "Mostrar Todo"
-
-#: mac/Mac_GUI.cpp:186
-#, c-format
-msgid "Quit %s"
-msgstr "Cerrar %s"
-
-#~ msgid "I do not agree with the terms of use."
-#~ msgstr "No acepto los términos de uso:"
-
-#~ msgid "Click Clear to restore web-based settings."
-#~ msgstr "Haga clic en Restablecer para restaurar la configuración basada en web."
-
-#~ msgid "For additional settings, select Computing Preferences in "
-#~ msgstr "Para ajustes adicionales, seleccione Preferencias de Computación en"
-
-#~ msgid "the Advanced View."
-#~ msgstr "la Vista Avanzada."
-
-#~ msgid "Workunit name"
-#~ msgstr "Nombre unidad trabajo"
-
-#~ msgid "invalid float"
-#~ msgstr "número inválido"
-
-#~ msgid "Display the advanced (accessible) graphical interface."
-#~ msgstr "Cambiar al interfaz gráfico avanzado (accesible)."
-
-#~ msgid "Paused: Other work running"
-#~ msgstr "Detenido: Otro trabajo ejecutándose"
-
-#~ msgid "Paused: User initiated.  Click 'Resume' to continue"
-#~ msgstr "En pausa: Usuario iniciado.   Pulse 'Reanudar' para continuar"
-
-#~ msgid "Paused: User active"
-#~ msgstr "Detenido: Usuario activo"
-
-#~ msgid "Paused: Computer on battery"
-#~ msgstr "Detenido: Ordenador funcionando con batería"
-
-#~ msgid "Paused: Time of Day"
-#~ msgstr "Detenido: Hora del Día."
-
-#~ msgid "Paused: Benchmarks running"
-#~ msgstr "Detenido: Ejecutando pruebas de rendimiento."
-
-#~ msgid "Paused"
-#~ msgstr "Detenido"
-
-#~ msgid "Paused: Application start delayed"
-#~ msgstr "En pausa: Inicio del programa aplazado"
-
-#~ msgid "Click to show project graphics"
-#~ msgstr "Pulse para mostrar los gráficos del proyecto"
-
-#~ msgid "Open a window to view messages"
-#~ msgstr "Abrir una ventana para ver los mensajes"
-
-#~ msgid "Stop all activity"
-#~ msgstr "Detener toda actividad"
-
-#~ msgid "Resume activity"
-#~ msgstr "Continuar actividad"
-
-#~ msgid "Open a window to set your preferences"
-#~ msgstr "Abre una ventana para establecer sus preferencias"
-
-#~ msgid "Switch to the BOINC advanced view"
-#~ msgstr "Cambiar a la vista avanzada de BOINC"
-
-#~ msgid "My Projects:"
-#~ msgstr "Mis proyectos:"
-
-#, c-format
-#~ msgid "%s. Work done by %s: %0.2f"
-#~ msgstr "%s. Trabajo hecho por %s: %0.2f"
-
-#, c-format
-#~ msgid "%.1lf"
-#~ msgstr "%.1lf"
-
-#, c-format
-#~ msgid "%d hr %d min %d sec"
-#~ msgstr "%d hr %d min %d seg"
-
-#~ msgid "Are you sure you want to display graphics on a remote machine?"
-#~ msgstr "¿Está seguro que desea mostrar los gráficos en un ordenador remoto?"
-
-#~ msgid "Application: "
-#~ msgstr "Aplicación:"
-
-#~ msgid "Time Remaining: "
-#~ msgstr "Tiempo Restante:"
-
-#~ msgid "Elapsed Time: "
-#~ msgstr "Tiempo transcurrido:"
-
-#~ msgid "Account manager website"
-#~ msgstr "Sitio web del administrador de cuentas"
-
-#~ msgid "Account Manager &URL:"
-#~ msgstr "U&RL del Administrador de Cuentas:"
-
-#, c-format
-#~ msgid "%s &website"
-#~ msgstr "Página &web de %s"
-
-#~ msgid "Notice List"
-#~ msgstr "Lista de Avisos"
-
-#, c-format
-#~ msgid "%s; received on %s"
-#~ msgstr "%s; recibido en %s"
-
-#, c-format
-#~ msgid "%s; received from %s; on %s"
-#~ msgstr "%s; recibido de %s; en %s"
-
-#~ msgid "Click"
-#~ msgstr "Pulsar"
-
-#~ msgid "Project List"
-#~ msgstr "Lista de Proyectos"
-
-#~ msgid "Nvidia GPU Supported"
-#~ msgstr "GPU Nvidia soportada"
-
-#~ msgid "ATI GPU Supported"
-#~ msgstr "GPU ATI soportada"
-
-#~ msgid "Project Website"
-#~ msgstr "Sitio Web del proyecto"
-
-#~ msgid "One or more items failed to load from the Internet."
-#~ msgstr "Uno o más elementos fallaron la carga desde Internet."
-
-# 88%
-#~ msgid "Retry now"
-#~ msgstr "Reintentar ahora"
-
-#~ msgid "10%"
-#~ msgstr "10%"
-
-#~ msgid "20%"
-#~ msgstr "20%"
-
-#~ msgid "30%"
-#~ msgstr "30%"
-
-#~ msgid "40%"
-#~ msgstr "40%"
-
-#~ msgid "50%"
-#~ msgstr "50%"
-
-#~ msgid "60%"
-#~ msgstr "60%"
-
-#~ msgid "70%"
-#~ msgstr "70%"
-
-#~ msgid "80%"
-#~ msgstr "80%"
-
-#~ msgid "90%"
-#~ msgstr "90%"
-
-#~ msgid "100%"
-#~ msgstr "100%"
-
-#~ msgid "1"
-#~ msgstr "1"
-
-#~ msgid "3"
-#~ msgstr "3"
-
-#~ msgid "5"
-#~ msgstr "5"
-
-#~ msgid "10"
-#~ msgstr "10"
-
-#~ msgid "15"
-#~ msgstr "15"
-
-#~ msgid "30"
-#~ msgstr "30"
-
-#~ msgid "60"
-#~ msgstr "60"
-
-#, c-format
-#~ msgid "Pop up a menu of websites for project %s"
-#~ msgstr "Saca un menú de sitios web del proyecto %s"
-
-#~ msgid ""
-#~ "for accessibility support, please select advanced from the view menu or type "
-#~ "command shift a"
-#~ msgstr ""
-#~ "para soporte para accesibilidad, por favor seleccione avanzada en el menu "
-#~ "ver o pulse ctrl shift a"
-
-#~ msgid "This panel contains graphs showing user totals for projects"
-#~ msgstr ""
-#~ "Este panel contiene gráficos que muestran los totales del usuario para los "
-#~ "proyectos"
-
-#~ msgid "list headers"
-#~ msgstr "encabezados de la lista"
-
-#~ msgid "list of events"
-#~ msgstr "lista de eventos"
-
-#~ msgid "list of events is empty"
-#~ msgstr "la lista de eventos está vacía"
-
-#, c-format
-#~ msgid "list of %s"
-#~ msgstr "lista de %s"
-
-#, c-format
-#~ msgid "list of %s is empty"
-#~ msgstr "la lista de %s está vacía"
-
-#, c-format
-#~ msgid "; current sort column %d of %d; descending order; "
-#~ msgstr "; clasificación actual por columna %d de %d; orden descendente; "
-
-#, c-format
-#~ msgid "; current sort column %d of %d; ascending order; "
-#~ msgstr "; clasificación actual por columna %d de %d; orden ascendente; "
-
-#, c-format
-#~ msgid "; column %d of %d; "
-#~ msgstr "; columna %d de %d; "
-
-#~ msgid "list is empty"
-#~ msgstr "la lista está vacía"
-
-#, c-format
-#~ msgid "; row %d; "
-#~ msgstr "; fila %d; "
-
-#, c-format
-#~ msgid "; selected row %d of %d; "
-#~ msgstr "; fila selecionada %d de %d; "
-
-#, c-format
-#~ msgid "; selected row %d ; "
-#~ msgstr "; fila seleccionada %d ; "
-
-#, c-format
-#~ msgid "; row %d of %d; "
-#~ msgstr "; fila %d de %d; "
-
-#~ msgid "blank"
-#~ msgstr "en blanco"
-
-#~ msgid "list of projects or account managers"
-#~ msgstr "lista de proyectos o administradores de cuenta"
-
-#, c-format
-#~ msgid "selected row %d of %d; "
-#~ msgstr "fila seleccionada %d de %d; "
-
-#, c-format
-#~ msgid "row %d of %d; "
-#~ msgstr "fila %d de %d; "
-
-#~ msgid "The minimum username length for this project is 1. Please enter a different username."
-#~ msgstr ""
-#~ "La longitud mínima de usuario para este proyecto es 1. Por favor, introduzca "
-#~ "un usuario diferente."
-
-#~ msgid "The minimum username length for this account manager is 1. Please enter a different username."
-#~ msgstr ""
-#~ "La longitud mínima de usuario para este administrador de cuentas es 1. Por "
-#~ "favor, introduzca un usuario diferente."
-
-#~ msgid "The minimum email address length for this project is 1. Please enter a different email address."
-#~ msgstr ""
-#~ "La longitud mínima de correo electrónico para este proyecto es 1. Por favor, "
-#~ "introduzca un correo electrónico diferente."
-
-#~ msgid "The minimum email address length for this account manager is 1. Please enter a different email address."
-#~ msgstr ""
-#~ "La longitud mínima de correo electrónico para este administrador de cuentas "
-#~ "es 1. Por favor, introduzca un correo electrónico diferente."
-
-#, c-format
-#~ msgid "The minimum password length for this project is %d. Please enter a different password."
-#~ msgstr ""
-#~ "La longitud mínima de clave para este proyecto es %d. Por favor introduzca "
-#~ "una clave diferente."
-
-#, c-format
-#~ msgid "The minimum password length for this account manager is %d. Please enter a different password."
-#~ msgstr ""
-#~ "La longitud mínima de clave para este administrador de cuentas es %d. Por "
-#~ "favor introduzca una clave diferente."
-
-#~ msgid ""
-#~ "An error has occurred;\n"
-#~ "check the Event Log for details.\n"
-#~ "\n"
-#~ "Click Finish to close."
-#~ msgstr ""
-#~ "Se ha producido un error;\n"
-#~ "vea el Registro de Sucesos para más detalles.\n"
-#~ "\n"
-#~ "Haga clic en Finalizar para cerrar."
-
-#, no-c-format
-#~ msgid "% of the processors"
-#~ msgstr "% de los procesadores"
-
-#, c-format
-#~ msgid "New page inserted. Index = %i"
-#~ msgstr "Nueva página insertada. Índice = %i"
-
-#, c-format
-#~ msgid "New page appended. Index = %i"
-#~ msgstr "Nueva página añadida. Índice = %i"
-
-#, c-format
-#~ msgid "Old Page Index = %i"
-#~ msgstr "Índice de Páginas Viejas = %i"
-
-#, c-format
-#~ msgid "OnDropTarget: index by HitTest = %i"
-#~ msgstr "AlSoltarObjetivo: índice por HitTest = %i"
-
-#~ msgid "Pie Ctrl"
-#~ msgstr "Control de Gráficas"
-
-#~ msgid "specify work start and stop hours in format HH:MM-HH:MM"
-#~ msgstr ""
-#~ "especificar horas de comienzo y final del trabajo en el formato HH:MM-HH:MM"
-
-#~ msgid "specify network usage start and stop hours in format HH:MM-HH:MM"
-#~ msgstr ""
-#~ "especificar horas de comienzo y final de uso de la red en el formato HH:MM-"
-#~ "HH:MM"
-
-#~ msgid "Identify your account "
-#~ msgstr "Identifique su cuenta "
-
-#~ msgid "Read config file"
-#~ msgstr "Leer &fichero de configuración"
-
-#~ msgid "Read configuration info from cc_config.xml"
-#~ msgstr "Leer información de configuración de cc_config.xml"
-
-#~ msgid ""
-#~ "(C) 2003-2011 University of California, Berkeley.\n"
-#~ "All Rights Reserved."
-#~ msgstr ""
-#~ "(C) 2003-2011 Universidad de California, Berkeley.\n"
-#~ "Reservados Todos los Derechos."
-
-#~ msgid "NVIDIA GPU"
-#~ msgstr "GPU NVIDIA"
-
-#~ msgid "ATI GPU"
-#~ msgstr "GPU ATI"
-
-#~ msgid "Multicore CPU Supported"
-#~ msgstr "CPU multinúcleo soportada"
-
-#~ msgid "%s: %.0f"
-#~ msgstr "%s: %.0f"
-
-#~ msgid "Click 'Retry now' to transfer the file now"
-#~ msgstr "Haga clic en 'Reintentar Ahora' para tranferir ahora el archivo"
-
-#~ msgid ""
-#~ "Click 'Abort transfer' to delete the file from the transfer queue. This "
-#~ "will prevent you from being granted credit for this result."
-#~ msgstr ""
-#~ "Haga clic en 'Abortar Transferencia' para eliminar el archivo de la cola "
-#~ "de transferencias. Esto le impedirá conseguir los créditos por este "
-#~ "resultado."
-
-#~ msgid "Aborting result..."
-#~ msgstr "Cancelando resultado..."
-
-#~ msgid ""
-#~ "You have chosen to add a new BOINC project.  Adding a new\n"
-#~ "project means that you will be connecting your computer to a new "
-#~ "organization.\n"
-#~ "If this is what you wanted to do, please click on\n"
-#~ "the 'Next' button below.\n"
-#~ "\n"
-#~ "Some projects like World Community Grid run multiple research "
-#~ "applications.\n"
-#~ "If you want to change which research applications are sent to your "
-#~ "computer\n"
-#~ "to run, visit the project's website and modify your\n"
-#~ "preferences there.\n"
-#~ "\n"
-#~ "To change which research applications are sent to you from\n"
-#~ "World Community Grid then please click on the following button:"
-#~ msgstr ""
-#~ "Ha seleccionado añadir un nuevo proyecto BOINC.  Añadir un nuevo\n"
-#~ "proyecto supone que conectará su ordenador a una nueva organización.\n"
-#~ "Si esto es lo que desea hacer, por favor pulse\n"
-#~ "el botón 'Siguiente' debajo.\n"
-#~ "\n"
-#~ "Algunos proyectos como World Community Grid ejecutan varios programas de "
-#~ "investigación.\n"
-#~ "Si quiere cambiar qué programas de investigación son enviados a su "
-#~ "ordenador\n"
-#~ "para ser ejecutados, visite el sitio web del proyecto y modifique allí\n"
-#~ "sus preferencias.\n"
-#~ "\n"
-#~ "Para cambiar qué programas de investigación le son enviados desde\n"
-#~ "World Community Grid por favor pulse el siguiente botón: "
-
-#~ msgid "Change Research Applications at World Community Grid"
-#~ msgstr "Cambiar Programas de Investigación en World Community Grid"
-
-#~ msgid "Don't fetch NVIDIA GPU tasks"
-#~ msgstr "No buscar tareas para la GPU NVIDIA"
-
-#~ msgid "NVIDIA GPU work fetch deferred for"
-#~ msgstr "Búsqueda de trabajo para la GPU NVIDIA aplazada"
-
-#~ msgid "NVIDIA GPU work fetch deferral interval"
-#~ msgstr "Intervalo de búsqueda de trabajo para la GPU NVIDIA"
-
-#~ msgid "Don't fetch ATI GPU tasks"
-#~ msgstr "No buscar tareas para la GPU ATI"
-
-#~ msgid "ATI GPU work fetch deferred for"
-#~ msgstr "Búsqueda de trabajo para la GPU ATI aplazada"
-
-#~ msgid "ATI GPU work fetch deferral interval"
-#~ msgstr "Intervalo de búsqueda de trabajo para la GPU ATI"
-
-#~ msgid "Web sites"
-#~ msgstr "Páginas web"
-
-#~ msgid "Connect about every"
-#~ msgstr "Conectar cada"
-
-#~ msgid ""
-#~ "this computer is connected to the Internet about every X days\n"
-#~ "(0 if it's always connected)"
-#~ msgstr ""
-#~ "este ordenador se conecta a Internet aproximadamente cada X días\n"
-#~ "(0 si está siempre conectado)"
-
-#~ msgid "days (max. 10)"
-#~ msgstr "días(máx.10)"
-
-#~ msgid "Display and network &options..."
-#~ msgstr "&Opciones visualización y red..."
-
-#~ msgid ""
-#~ "You have requested to exit the %s,\n"
-#~ "which allows you to view and manage\n"
-#~ "the science applications running on your computer.\n"
-#~ "\n"
-#~ "If you also want to stop running the science applications when you\n"
-#~ "exit the Manager, then choose from the following options:"
-#~ msgstr ""
-#~ "Usted ha solicitado salir de %s,\n"
-#~ "que le permite ver y administrar\n"
-#~ "los programas científicos ejecutándose en su ordenador.\n"
-#~ "\n"
-#~ "Si también desea parar de ejecutar los programas científicos cuando "
-#~ "usted\n"
-#~ "salga del Administrador, entonces escoja entre las siguientes opciones:"
-
-#~ msgid "Stop running science applications when exiting the Manager"
-#~ msgstr ""
-#~ "Parar de ejecutar las aplicaciones científicas al salir del Administrador"
-
-#~ msgid "CPU work fetch priority"
-#~ msgstr "Búsqueda de trabajo para la CPU prioritaria"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Terminos de Uso"
 
-#~ msgid "NVIDIA GPU scheduling priority"
-#~ msgstr "Planificación de GPU NVIDIA prioritaria"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Por favor, lea los siguientes términos de uso:"
 
-#~ msgid "NVIDIA GPU work fetch priority"
-#~ msgstr "Búsqueda de trabajo para la GPU NVIDIA prioritaria"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Acepto los términos de uso."
 
-#~ msgid "ATI GPU scheduling priority"
-#~ msgstr "Planificación de GPU ATI prioritaria"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "No acepto los términos de uso."
 
-#~ msgid "ATI GPU work fetch priority"
-#~ msgstr "Búsqueda de trabajo para la GPU ATI prioritaria"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Proyecto temporalmente no disponible"
 
-#~ msgid "%s - Options"
-#~ msgstr "%s - Opciones"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "El proyecto actualmente no está disponible.\n\nPor favor inténtelo más tarde."
 
-#~ msgid "Retrieving host information; please wait..."
-#~ msgstr "Recuperando información del ordenador; por favor espere..."
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Administrador de cuentas temporalmente no disponible"
 
-#~ msgid " (waiting for GPU memory)"
-#~ msgstr " (esperando por memoria de la GPU)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "El administrador de cuentas no está actualmente disponible.\n\nPor favor inténtelo más tarde."
 
-#~ msgid "%s - Messages"
-#~ msgstr "%s - Mensajes"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Por favor especifique una clave de cuenta para continuar."
 
-#~ msgid "Skin:"
-#~ msgstr "Piel:"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Clave de Cuenta inválida; por favor introduzca una clave válida"
 
-#~ msgid "Preferences"
-#~ msgstr "Preferencias"
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Error de validación"
 
-#~ msgid "I want to customize my preferences for this computer only."
-#~ msgstr "Quiero personalizar mis preferencias sólo para este ordenador."
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Por favor especifique una dirección de correo"
 
-#~ msgid "Customized Preferences"
-#~ msgstr "Preferencias Personalizadas"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Dirección de correo inválida; por favor introduzca una dirección válida"
 
-#~ msgid "Upload suspended - "
-#~ msgstr "Envío suspendido - "
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "URL no introducida"
 
-#~ msgid "Download suspended - "
-#~ msgstr "Descarga suspendida - "
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Por favor especifique una URL.\nPor ejemplo:\nhttp://www.ejemplo.com/"
 
-#~ msgid "Upload pending"
-#~ msgstr "Envío pendiente"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "URL inválida"
 
-#~ msgid "Download pending"
-#~ msgstr "Descarga pendiente"
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Por favor especifique una URL válida.\nPor ejemplo:\nhttp://proyectoboinc.ejemplo.com"
 
-#~ msgid "Get help with BOINC"
-#~ msgstr "Consiga ayuda con BOINC"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' no contiene un nombre válido de ordenador."
 
-#~ msgid "Event Log..."
-#~ msgstr "Registro de Sucesos..."
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' no contiene una ruta válida."
 
-#~ msgid "error"
-#~ msgstr "error"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Comandos"
 
-#~ msgid "A new version of BOINC is available."
-#~ msgstr "Hay diponible una nueva versión de BOINC."
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Copiar todos los mensajes"
 
-#~ msgid "Download it."
-#~ msgstr "Descárgalo."
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Copiar los mensajes seleccionados"
 
-#~ msgid "Couldn't write state file; check directory permissions"
-#~ msgstr ""
-#~ "No se pudo escribir en el archivo state; compuebe los permisos de la "
-#~ "carpeta"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Mostrar sólo este proyecto"
 
-#~ msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-#~ msgstr "La variable de entorno HTTP_PROXY debe especificar un proxy HTTP"
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Mostrar sólo los mensajes del proyecto seleccionado."
 
-#~ msgid "Attaching to project or account manager..."
-#~ msgstr "Conectando a proyecto o administrador de cuentas..."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Mensajes"
 
-#~ msgid "%s - Detach from %s"
-#~ msgstr "%s - Separarse de %s"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Copiando todos los mensajes al portapapeles..."
 
-#~ msgid "Retrying communications."
-#~ msgstr "Reintentando comunicaciones."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Copiando los mensajes seleccionados al portapapeles..."
 
-#~ msgid "Failed to attach to project"
-#~ msgstr "Fallo al unirse a un proyecto"
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtrando mensajes..."
 
-#~ msgid "Failed to attach to account manager"
-#~ msgstr "Fallo al unirse al administrador de cuentas"
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Mostrar todos los mensajes"
 
-#~ msgid "Attached to account manager"
-#~ msgstr "Unido al administrador de cuentas"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Mostar los mensajes de todos los proyectos."
 
-#~ msgid "You are now successfully attached to the %s system."
-#~ msgstr "Usted ahora se ha unido con éxito al sistema %s."
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Cuenta"
 
-#~ msgid "You are now successfully attached to this account manager."
-#~ msgstr "Usted se ha unido con éxito a este administrador de cuentas."
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Trabajo finalizado"
 
-#~ msgid "News Feeds"
-#~ msgstr "Fuentes de noticias"
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Promedio trabajo realizado"
 
-#~ msgid "Display the latest news about BOINC"
-#~ msgstr "Mostrar las últimas noticias sobre BOINC"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Estado"
 
-#~ msgid "not attached to any BOINC project: 0 bytes"
-#~ msgstr "no unido a ningún proyecto BOINC: 0 bytes"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Proyectos"
 
-#~ msgid "All projects"
-#~ msgstr "Todos los proyectos"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Pedido por el usuario"
 
-#~ msgid "Attach to project"
-#~ msgstr "Unirse a un pro&yecto"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Buscar trabajo"
 
-#~ msgid "Attach to account manager"
-#~ msgstr "Unirse a un administrador de cuentas"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Informar las tareas completadas"
 
-#~ msgid "Attach to a project"
-#~ msgstr "Unirse a un proyecto"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Enviar mensaje trickle-up"
 
-#~ msgid "%s needs to connect to the Internet.  Please click to open %s."
-#~ msgstr "%s necesita conectar a Internet. Por favor haga clic para abrir %s."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Pedido por el administrador de cuentas"
 
-#~ msgid ""
-#~ "%s is unable to communicate with a project and needs an Internet "
-#~ "connection.\n"
-#~ "Please connect to the Internet, then select the 'Do network "
-#~ "communications' item from the Advanced menu."
-#~ msgstr ""
-#~ "%s es incapaz de comunicarse con un proyecto y necesita una conexión a  "
-#~ "Internet.\n"
-#~ "Por favor, conéctese a Internet, y entonces seleccione la opción "
-#~ "'Ejecutar comunicaciones de red' dentro del menú Avanzado."
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Iniciación del proyecto"
 
-#~ msgid ""
-#~ "%s couldn't do Internet communication, and no default connection is "
-#~ "selected.\n"
-#~ "Please connect to the Internet, or select a default connection\n"
-#~ "using Advanced/Options/Connections."
-#~ msgstr ""
-#~ "%s no pudo comunicarse con Internet, y no se ha especificado una conexión "
-#~ "por defecto.\n"
-#~ "Por favor conéctese a Internet, o especifique una conexión por defecto\n"
-#~ "en Avanzado/Opciones/Conexiones."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Pedido por el proyecto"
 
-#~ msgid "One or more notices are now available for viewing."
-#~ msgstr "Uno o más avisos están disponibles."
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Razón desconocida"
 
-#~ msgid "Attached to project"
-#~ msgstr "Unido a un proyecto"
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Suspendido por el usuario"
 
-#~ msgid "You are now successfully attached to this project."
-#~ msgstr "Usted se ha unido con éxito a este proyecto."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "No se descargarán nuevas tareas"
 
-#~ msgid "Attached to %s"
-#~ msgstr "Unido a %s"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Proyecto finalizado - listo para eliminarlo"
 
-#~ msgid "Detach when done"
-#~ msgstr "Separarse cuando termine"
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Se eliminará cuando las tareas estén terminadas"
 
-#~ msgid "Retrieving notices..."
-#~ msgstr "Recuperando avisos..."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Pendiente petición al Planificador"
 
-#~ msgid "Detach"
-#~ msgstr "Separarse"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Petición al planificador en progreso"
 
-#~ msgid "Detaching from project..."
-#~ msgstr "Separándose del proyecto..."
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Mensaje trickle up pendiente"
 
-#~ msgid "Are you sure you want to detach from project '%s'?"
-#~ msgstr "¿Está seguro de que quiere separarse del proyecto '%s'?"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Comunicación aplazada"
 
-#~ msgid "Detach from Project"
-#~ msgstr "Separarse del proyecto"
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Total de disco utilizado"
 
-#~ msgid "Message from project server:"
-#~ msgstr "Mensaje del servidor del proyecto:"
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Disco utilizado por los proyectos BOINC"
 
-#~ msgid "XML syntax error in"
-#~ msgstr "Error de sintaxis XML en"
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "sin proyectos: 0 bytes usados"
 
-#~ msgid "Can't resolve hostname in"
-#~ msgstr "No se puede resolver el nombre del host en"
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "utilizado por BOINC:  "
 
-#~ msgid "Unrecognized tag in"
-#~ msgstr "Etiqueta no reconocida en"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "libre, disponible para BOINC: "
 
-#~ msgid "Missing start tag in"
-#~ msgstr "Etiqueta de inicio perdida en"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "libre, no disponible para BOINC: "
 
-#~ msgid "Unparsed tag in"
-#~ msgstr "Etiqueta no analizada sintácticamente en"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "libre: "
 
-#~ msgid "Missing end tag in"
-#~ msgstr "Etiqueta de final perdida en"
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "utilizado por otros programas:  "
 
-#~ msgid ""
-#~ "BOINC can't access Internet - check network connection or proxy "
-#~ "configuration."
-#~ msgstr ""
-#~ "BOINC no puede acceder a Internet - compruebe la conexión a la red o la "
-#~ "configuración proxy."
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Total Usuario"
 
-#~ msgid "Attach this computer to a project or account manager"
-#~ msgstr "Unir este ordenador a un proyecto o administrador de cuentas"
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Promedio Usuario"
 
-#~ msgid " - user active"
-#~ msgstr "- usuario activo"
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Total Ordenador"
 
-#~ msgid " - computation suspended"
-#~ msgstr "- computación suspendida"
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Promedio Ordenador"
 
-#~ msgid " - need disk space"
-#~ msgstr "- necesita espacio en disco"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Última actualización: hace %.0f días"
 
-#~ msgid "Attach to an additional project"
-#~ msgstr "Unirse a un proyecto adicional"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Mostrar totales del usuario"
 
-#~ msgid "To completion"
-#~ msgstr "Tiempo restante"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Muestra el crédito total del usuario"
 
-#~ msgid ""
-#~ "We'll guide you through the process of attaching\n"
-#~ "to a project or account manager."
-#~ msgstr ""
-#~ "Le guiaremos a través del proceso de unirse\n"
-#~ "a un proyecto o administrador de cuentas."
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Mostrar promedios del usuario"
 
-#~ msgid "events"
-#~ msgstr "sucesos"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Muestra el crédito promedio del usuario"
 
-#~ msgid " is empty"
-#~ msgstr " está vacío"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Mostrar totales del ordenador"
 
-#~ msgid "%d of %d; "
-#~ msgstr "%d de %d; "
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Muestra el crédito total del ordenador"
 
-#~ msgid "current sort column "
-#~ msgstr "columna de orden actual "
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Mostrar promedios del ordenador"
 
-#~ msgid " descending order "
-#~ msgstr " orden descendente "
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Muestra el crédito promedio del ordenador"
 
-#~ msgid " ascending order "
-#~ msgstr " orden ascendente "
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< Proyecto &anterior"
 
-#~ msgid "column "
-#~ msgstr "columna "
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Muestra el gráfico del proyecto anterior"
 
-#~ msgid "of %d; "
-#~ msgstr "de %d; "
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Siguiente proyecto >"
 
-#~ msgid "Attach to a project or account manager to begin processing work"
-#~ msgstr ""
-#~ "Unirse a un proyecto o administrador de cuentas para comenzar a procesar "
-#~ "trabajo"
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Muestra el gráfico del siguiente proyecto"
 
-#~ msgid "Attach to a project to begin processing work"
-#~ msgstr "Únase a un proyecto para empezar a procesar trabajo"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Ocultar la lista de proyectos"
 
-#~ msgid "Use GPU never"
-#~ msgstr "No usar nunca la GPU"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Usar todo el área para gráficos"
 
-#~ msgid "BOINC Notification"
-#~ msgstr "Notificación de BOINC"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Modo de presentación"
 
-#~ msgid ""
-#~ "TEST: Fluffy at Home just found out that the Fluffy project has been "
-#~ "published in Nature"
-#~ msgstr ""
-#~ "PRUEBA: Fluffy at Home ha encontrado que el proyecto Fluffy ha sido "
-#~ "publicado en Nature"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Un proyecto"
 
-#~ msgid "%s: %.2f%% completed."
-#~ msgstr "%s: %.2f%% completado."
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Muestra un gráfico del proyecto seleccionado"
 
-#~ msgid "%d tasks running."
-#~ msgstr "%d tareas ejecutándose."
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Todos los proyectos (separados)"
 
-#~ msgid "&Close Window\tCtrl+W"
-#~ msgstr "&Cerrar Ventana\tCtrl+W"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Muestra todos los proyectos, un gráfico por proyecto"
 
-#~ msgid "&Messages\tCtrl+Shift+M"
-#~ msgstr "&Mensajes\tCtrl+Shift+M"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Todos los proyectos (juntos)"
 
-#~ msgid "Display messages"
-#~ msgstr "Visualizar los mensajes"
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Muestra un gráfico con todos los proyectos"
 
-#~ msgid "Display news"
-#~ msgstr "Visualizar las noticias"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Todos los proyectos (suma)"
 
-#~ msgid "%s - Can't find web browser"
-#~ msgstr "%s - No puede encontrar un navegador web"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Muestra un gráfico con la suma de los proyectos"
 
-#~ msgid ""
-#~ "%s tried to display the web page\n"
-#~ "\t%s\n"
-#~ "but couldn't find a web browser.\n"
-#~ "To fix this, set the environment variable\n"
-#~ "BROWSER to the path of your web browser,\n"
-#~ "then restart the %s."
-#~ msgstr ""
-#~ "%s intentó mostrar la página web\n"
-#~ "\t%s\n"
-#~ "pero no pudo encontrar un navegador web.\n"
-#~ "Para arreglar esto, establezca la variable de entorno\n"
-#~ "BROWSER con la ruta hacia su navegador,\n"
-#~ "y entonces reinicie %s."
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Estadísticas"
 
-#~ msgid "Starting client services; please wait..."
-#~ msgstr "Iniciando servicios cliente; por favor espere..."
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Mostrar la lista de proyectos"
 
-#~ msgid "BOINC Website"
-#~ msgstr "Sitio web de BOINC"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Usar un área menor para gráficos"
 
-#~ msgid "Display the latest news about BOINC from the BOINC website"
-#~ msgstr ""
-#~ "Mostrar las últimas noticias sobre BOINC desde el sitio web de BOINC"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Reintentar Ahora"
 
-#~ msgid "User information"
-#~ msgstr "Información de usuario"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Reintentar la transferencia del archivo ahora"
 
-#~ msgid "Account Manager URL"
-#~ msgstr "URL del Administrador de Cuentas"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Abortar Transferencia"
 
-#~ msgid "Enter the URL of the account manager's web site."
-#~ msgstr "Introduzca la URL de la página web del administrador de cuentas."
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Abortar la transferencia de este archivo.   No obtendrá crédito por la tarea."
 
-#~ msgid "Close BOINC Manager Window."
-#~ msgstr "Cerrar la ventana del Administrador BOINC."
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Archivo"
 
-#~ msgid "Exit the %s"
-#~ msgstr "Salir de %s"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Progreso"
 
-#~ msgid "&Advanced View\tCTRL+SHIFT+A"
-#~ msgstr "Vista &Avanzada\tCTRL+SHIFT+A"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Tamaño"
 
-#~ msgid ""
-#~ "Advanced views allow you to sort various columns and displays graphical "
-#~ "progress bars."
-#~ msgstr ""
-#~ "La vista avanzada le permite ordenar diferentes columnas y visualiza "
-#~ "barras de progreso."
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Transcurrido"
 
-#~ msgid "&Simple View...\tCTRL+SHIFT+S"
-#~ msgstr "Vista &Simple...\tCTRL+SHIFT+S"
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Velocidad"
 
-#~ msgid "Display the simple BOINC graphical interface."
-#~ msgstr "Muestra el interfaz gráfico BOINC simple."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Transferencias"
 
-#~ msgid "Attach to &account manager..."
-#~ msgstr "Unirse a un &administrador de cuentas..."
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "La actividad de red está suspendida - "
 
-#~ msgid "Attach to an account manager"
-#~ msgstr "Unirse a un administrador de cuentas"
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nUsted puede habilitarlo usando el menú Actividad."
 
-#~ msgid "Attach to &project"
-#~ msgstr "&Unirse a un proyecto"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#~ msgid "Attaching to project..."
-#~ msgstr "Uniéndose a un proyecto..."
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "¿Está seguro de que quiere abortar la transferencia de este fichero  '%s'?\nNOTA: Abortar una transferencia invalidará la tarea y usted\nno recibirá créditos por ella."
 
-#~ msgid "Retrying communications for project(s)..."
-#~ msgstr "Reintentando la comunicación con el(los) proyecto(s)..."
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Cancelar Transferencia de Archivo"
 
-#~ msgid "Removal from %s completed."
-#~ msgstr "Eliminación de %s completada."
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Enviar"
 
-#~ msgid "Removal succeeded!"
-#~ msgstr "¡Eliminación con éxito!"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Descargar"
 
-#~ msgid "Switch between applications between every"
-#~ msgstr "Cambiar entre aplicaciones cada"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "reintentar en "
 
-#~ msgid "Write to disk at most every"
-#~ msgstr "Escribir al disco como máximo cada"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "falló"
 
-#~ msgid "Slot"
-#~ msgstr "Espacio (slot)"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "suspendido"
 
-#~ msgid "Already Attached to Project"
-#~ msgstr "Unido ya al Proyecto"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "activo"
 
-#~ msgid "This project may not have work for your type of computer."
-#~ msgstr "Este proyecto podría no tener trabajo para su tipo de ordenador."
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "pendiente"
 
-#~ msgid "Click here to go to %s's website."
-#~ msgstr "Pulse aquí para ir al sitio web de %s."
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr "  (proyecto parado:_"
 
-#~ msgid ""
-#~ "Required wizard file(s) are missing from the target server.\n"
-#~ "(lookup_account.php/create_account.php)\n"
-#~ msgstr ""
-#~ "Los ficheros requeridos por el asistente no se encuentran en el servidor "
-#~ "señalado.\n"
-#~ "(lookup_account.php/create_account.php)\n"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Mostrar tareas activas"
 
-#~ msgid "ID"
-#~ msgstr "ID"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Mostrar sólo tareas activas."
 
-#~ msgid "Priority"
-#~ msgstr "Prioridad"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Mostrar Consola VM"
 
-#~ msgid "MessagesGrid"
-#~ msgstr "Mensajes"
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Mostrar la Consola VM en una ventana."
 
-#~ msgid "Copying selected messages to Clipboard..."
-#~ msgstr "Copiando los mensajes seleccionados al portapapeles..."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Suspender el trabajo para este resultado."
 
-#~ msgid "Info"
-#~ msgstr "Información"
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Abandonar el trabajo con el resultado. No conseguirá crédito por él."
 
-#~ msgid "Warning"
-#~ msgstr "Advertencia"
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Restante (estimado)"
 
-#~ msgid "ProjectsGrid"
-#~ msgstr "Proyectos"
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Límite para informar"
 
-#~ msgid "TransfersGrid"
-#~ msgstr "Transferencias"
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Tareas"
 
-#~ msgid "Aborting transfer(s)..."
-#~ msgstr "Cancelando transferencia(s)..."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "¿Está seguro de querer cancelar esta tarea '%s'?\n(Progreso: %s, Estado: %s)"
 
-#~ msgid ""
-#~ "Are you sure you want to abort this file(s) transfer ?\n"
-#~ "NOTE: Aborting a transfer will invalidate a task and you\n"
-#~ "will not receive credit for it."
-#~ msgstr ""
-#~ "¿Está seguro de que quiere cancelar la transferencia de este(estos) "
-#~ "fichero(s)?\n"
-#~ "NOTA: Cancelar una transferencia invalidará la tarea y usted\n"
-#~ "no recibirá créditos por ella."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "¿Está seguro de querer abortar estas %d tareas?"
 
-#~ msgid "Abort File Transfer(s)"
-#~ msgstr "Cancelar Transferencia(s) de Archivo(s)"
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Mostrar todas las tareas"
 
-#~ msgid "TasksGrid"
-#~ msgstr "Tareas"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Mostrar todas las tareas."
 
-#~ msgid ""
-#~ "We'll now guide you through the process of attaching\n"
-#~ "to a project."
-#~ msgstr ""
-#~ "Nosotros ahora le guiaremos a través del proceso de unión\n"
-#~ "a un proyecto."
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "¿Realmente desea cancelar?"
 
-#~ msgid "&Stop using%s"
-#~ msgstr "&Dejar de usar%s"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Pregunta"
 
-#~ msgid ""
-#~ "We'll now remove this computer from %s.  From now on,\n"
-#~ "attach and detach projects directly from this computer.\n"
-#~ msgstr ""
-#~ "Nosotros ahora eliminaremos este ordenador de %s. A partir de ahora,\n"
-#~ " únase y sepárese de los proyectos directamente desde este ordenador.\n"
+#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
+msgid "&Next >"
+msgstr "&Siguiente >"
 
-#~ msgid ""
-#~ "We'll now guide you through the process of attaching\n"
-#~ "to an account manager.\n"
-#~ "\n"
-#~ "If you want to attach to a single project, click Cancel,\n"
-#~ "then select the 'Attach to project' menu item instead."
-#~ msgstr ""
-#~ "Le guiaremos ahora a través del proceso de unión\n"
-#~ "a un administrador de cuentas.\n"
-#~ "\n"
-#~ "Si quiere unirse a un único proyecto, haga clic en Cancelar,\n"
-#~ "y después seleccione la opción de Menú \"Unirse a un proyecto\"."
+#: clientgui/wizardex.cpp:383
+msgid "< &Back"
+msgstr "< &Anterior"
 
-#~ msgid "Debug Flags"
-#~ msgstr "Marcas de depuración"
+#: clientgui/wizardex.cpp:553
+msgid "&Finish"
+msgstr "&Finalizar"
 
-#~ msgid "Project Properties Failure"
-#~ msgstr "Fallo en Propiedades del Proyecto"
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Servicios"
 
-#~ msgid "Project Communication Failure"
-#~ msgstr "Fallo de Comunicaciones del Proyecto"
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Ocultar %s"
 
-#~ msgid "Project Properties URL Failure"
-#~ msgstr "Fallo en la URL de Propiedades del Proyecto"
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Ocultar los Otros"
 
-#~ msgid "Account Creation Disabled"
-#~ msgstr "Creación de Cuentas Desactivada"
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Mostrar Todo"
 
-#~ msgid "Account Already Exists"
-#~ msgstr "Cuenta ya Existente"
-
-#~ msgid "Project Already Attached"
-#~ msgstr "Ya está unido a este proyecto"
-
-#~ msgid "Project Attach Failure"
-#~ msgstr "Fallo en Unión al Proyecto"
-
-#~ msgid "Failure Communicating with Reference Site"
-#~ msgstr "Fallo en la Comunicación con el Servidor de Referencia"
-
-#~ msgid "Net Detection Failure"
-#~ msgstr "Fallo en Detección de Red"
-
-#~ msgid ""
-#~ "You can copy and paste the URL from your browser's\n"
-#~ "address bar."
-#~ msgstr ""
-#~ "Usted puede copiar y pegar la URL desde la barra\n"
-#~ "de direcciones de su navegador."
-
-#~ msgid "For a list of account managers go to:"
-#~ msgstr "Para una lista de administradores de cuentas vaya a:"
-
-#~ msgid "&Advanced View"
-#~ msgstr "Vista &Avanzada"
-
-#~ msgid "Already attached to project"
-#~ msgstr "Unido ya a proyecto"
-
-#~ msgid "You are already attached to this project."
-#~ msgstr "Usted ya está unido a este proyecto."
-
-#~ msgid "Static text"
-#~ msgstr "Texto estático"
-
-#~ msgid "Radiobutton"
-#~ msgstr "Botón de selección"
-
-#~ msgid "Short term debt"
-#~ msgstr "Planificación de CPU prioritaria"
-
-#~ msgid "Long term debt"
-#~ msgstr "Búsqueda de trabajo prioritaria"
-
-#~ msgid "Test"
-#~ msgstr "Prueba"
-
-#~ msgid "Enter account key"
-#~ msgstr "Introduzca la clave de cuenta"
-
-#~ msgid ""
-#~ "This project uses an \"account key\" to identify you.\n"
-#~ "\n"
-#~ "Go to the project's web site to create an account. Your account\n"
-#~ "key will be emailed to you."
-#~ msgstr ""
-#~ "Este proyecto utiliza una \"clave de cuenta\" para identificarle.\n"
-#~ "\n"
-#~ "Vaya al la página web del proyecto para crear una cuenta. Su clave\n"
-#~ "de cuenta le será enviada por correo electrónico."
-
-#~ msgid "An account key looks like:"
-#~ msgstr "La clave de cuenta se parece a esto:"
-
-#~ msgid "82412313ac88e9a3638f66ea82186948"
-#~ msgstr "82412313ac88e9a3638f66ea82186948"
-
-#~ msgid "Account key:"
-#~ msgstr "Clave de cuenta:"
-
-#~ msgid "For a list of BOINC-based account managers go to:"
-#~ msgstr ""
-#~ "Para una lista de los administradores de cuenta basados en BOINC vaya a:"
-
-#~ msgid "&Accessible View"
-#~ msgstr "Vista &Accesible"
-
-#~ msgid ""
-#~ "Accessible views are compatible with accessibility aids such as screen "
-#~ "readers."
-#~ msgstr ""
-#~ "Las Vistas accesibles son compatibles con ayudas para accesibilidad tales "
-#~ "como lectores de pantalla."
-
-#~ msgid "&Grid View"
-#~ msgstr "Vista &Gráfica"
-
-#~ msgid ""
-#~ "Grid views allow you to sort various columns and displays graphical "
-#~ "progress bars."
-#~ msgstr ""
-#~ "Las Vistas gráficas le permiten ordenar varias columnas y visualiza "
-#~ "barras de progreso."
-
-#~ msgid ":"
-#~ msgstr ":"
-
-#~ msgid ""
-#~ "%s is going to shutdown the core client it is currently connected to.\n"
-#~ "NOTE: Choosing 'OK' will cause the select new computer dialog to appear \n"
-#~ "so you can attach to a different core client."
-#~ msgstr ""
-#~ "%s va a cerrar el cliente núcleo al que está actualmente conectado.\n"
-#~ "NOTA: Si elige 'Aceptar' provocará que aparezca el diálogo para "
-#~ "seleccionar un nuevo ordenador\n"
-#~ "de forma que pueda unirse a un nuevo cliente núcleo."
-
-#~ msgid "BOINC leaves at least this amount of disk space free (in Gigagytes)"
-#~ msgstr ""
-#~ "BOINC deja como mínimo esta cantidad de espacio de disco libre (en "
-#~ "gigabytes)"
-
-#~ msgid "Click here to disable displaying this message in the future."
-#~ msgstr "Haga Clic aquí para desactivar este mensaje en el futuro."
-
-#~ msgid "Language Selection:"
-#~ msgstr "Selección de Idioma:"
-
-#~ msgid "What language should the manager display by default."
-#~ msgstr "Qué idioma debe el administrador mostrar por defecto."
-
-#~ msgid "Reminder Frequency:"
-#~ msgstr ""
-#~ "Frecuencia de Recordatorio:\n"
-#~ "(para eventos de conexión)"
-
-#~ msgid ""
-#~ "How often, in minutes, should the manager remind you of possible "
-#~ "connection events."
-#~ msgstr ""
-#~ "Cada cuánto, en minutos, debe recordarle el administrador de posibles "
-#~ "eventos de conexión."
-
-#~ msgid ""
-#~ "BOINC failed to communicate on the Internet. The most likely\n"
-#~ "reasons are:\n"
-#~ "\n"
-#~ "1) Connectivity problem.  Check your network\n"
-#~ "or modem connection and click Back to try again.\n"
-#~ "\n"
-#~ "2) Personal firewall software is blocking BOINC.\n"
-#~ "Configure your personal firewall to let BOINC\n"
-#~ "communicate on port 80, then click Back to try again.\n"
-#~ "\n"
-#~ "3) You are using a proxy server.\n"
-#~ "Click Next to configure BOINC's proxy settings."
-#~ msgstr ""
-#~ "BOINC no ha podido establecer conexión con Internet. Las razones más\n"
-#~ "comunes son:\n"
-#~ "\n"
-#~ "1) Problema de conexión. Compruebe su conexión\n"
-#~ "de red o módem y haga clic en Anterior para intentarlo de nuevo.\n"
-#~ "\n"
-#~ "2) Algún cortafuegos personal está bloqueando BOINC.\n"
-#~ "Configure su cortafuegos personal para dejar que BOINC\n"
-#~ "se comunique con el puerto 80, entonces haga clic en Anterior para "
-#~ "intentarlo de nuevo.\n"
-#~ "\n"
-#~ "2) Usted está utilizando un servidor proxy.\n"
-#~ "Haga clic en Siguiente para configurar los parámetros proxy en BOINC."
-
-#~ msgid "total disk usage"
-#~ msgstr "uso total del disco"
-
-#~ msgid "disk usage by BOINC projects"
-#~ msgstr "uso del disco por los proyectos BOINC"
-
-#~ msgid "not attached to any BOINC project - 0 bytes"
-#~ msgstr "no unido a ningún proyecto BOINC - 0 bytes"
-
-#~ msgid "used by BOINC - "
-#~ msgstr "utilizado por BOINC - "
-
-#~ msgid "used by other programs - "
-#~ msgstr "utilizado por otros programas - "
-
-#~ msgid "Project Comm Failure"
-#~ msgstr "Fallo en Comunicación con Proyecto"
-
-#~ msgid "Google Comm Failure"
-#~ msgstr "Fallo de Comunicación con Google"
-
-#~ msgid "Yahoo Comm Failure"
-#~ msgstr "Fallo de Comunicación con Yahoo"
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Cerrar %s"
diff --git a/locale/es/BOINC-Project-Generic.po b/locale/es/BOINC-Project-Generic.po
deleted file mode 100755
index 6fa8d19..0000000
--- a/locale/es/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,7200 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-09-22 20:57+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: \n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1379883430.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Español"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Spanish"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Texto en negrita: [b]texto[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Texto en cursiva: [i]texto[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Texto subrayado: [u]texto[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Texto de cita: [quote]texto[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Visualización de código: [code]código[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Lista ordenada: [list=]texto[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Insertar imagen: [img]http://url_de_imagen[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Insertar URL: [url]http://url[/url] o [url=http://url]texto URL[/url]  "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Color de fuente"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Color de fuente: [color=red]texto[/color]  Nota: también puede usar "
-"color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Por defecto"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Rojo Oscuro"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Rojo"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Naranja"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Marrón"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Amarillo"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Verde"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliva"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Turquesa"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Azul"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Azul Oscuro"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Índigo"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Violeta"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Tamaño de fuente"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Tamaño de fuente: [size=x-small]texto pequeño[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Pequeña"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Grande"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Cerrar todas las etiquetas bbCode abiertas"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Cerrar Etiquetas"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Más antiguo primero"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Más nuevo primero"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Mensajes más valorados primero"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Mensajes más nuevos primero"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Buscar palabras en los mensajes del foro"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Buscar en los foros"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Búsqueda avanzada"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Mensajes privados"
-
-# ########################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Preguntas y Respuestas"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Foros"
-
-# ########################################
-# Forum sample index page
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "foro de %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Anterior"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Siguiente"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Mensaje"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Enviar mensaje"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Enviar a %1 un mensaje privado"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Unido: %1"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Mensajes: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Crédito: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "No ha leído este mensaje todavía"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "No leído"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Mensaje %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "oculto"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Enviados: %1"
-
-#: ../inc/forum.inc:628
-#, fuzzy
-msgid " - in response to "
-msgstr "Fuera de tiempo - sin respuesta"
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Editar"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Edite este mensaje"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Última modificación: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Informar este mensaje como ofensivo"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Informar como ofensivo"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Valoración: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "valoración: "
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Pulse si le gusta este mensaje"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Valoración +"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Pulse si no le gusta este mensaje"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Valoración -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Responder"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Enviar una respuesta a este mensaje"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Citar"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Enviar una respuesta citando este mensaje"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Oculto por un moderador"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Enviado %1 por %2"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "No tiene mensajes privados."
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-#, fuzzy
-msgid "More info"
-msgstr "Información del equipo"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Hacer visible"
-
-#: ../inc/forum.inc:1055
-#, fuzzy
-msgid "Unhide this post"
-msgstr "Hacer visible este hilo"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Ocultar"
-
-#: ../inc/forum.inc:1057
-#, fuzzy
-msgid "Hide this post"
-msgstr "Ocultar"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Mover"
-
-#: ../inc/forum.inc:1062
-#, fuzzy
-msgid "Move post to a different thread"
-msgstr "Mover este hilo a un foro diferente"
-
-#: ../inc/forum.inc:1067
-#, fuzzy
-msgid "Banish author"
-msgstr "No existe dicho usuario"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Para crear un nuevo hilo en %1 usted debe tener una cierta cantidad de "
-"créditos.Ésto es así para la prevención y protección contra abusos del "
-"sistema."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Usted no puede crear más hilos por ahora. Por favor espere un rato antes de "
-"intentarlo de nuevo. Este retraso ha sido implementado como protección ante "
-"abusos del sistema."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Hilo"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Mensajes"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Visitas"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Último mensaje"
-
-#: ../inc/forum.inc:1235
-#, fuzzy
-msgid "New posts in the thread %1"
-msgstr "Responder a este hilo"
-
-#: ../inc/forum.inc:1240
-#, fuzzy
-msgid "New posts in subscribed thread"
-msgstr "Suscribirse"
-
-#: ../inc/forum.inc:1241
-#, fuzzy
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-"Pulse para recibir correo electrónico cuando haya nuevos mensajes en este "
-"hilo"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Marcar todos los hilos como leídos"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "Marcar todos los hilos en todos los foros como 'leídos'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Sin servidor"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "No disponible"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Inicio"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Trabajo"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Escuela"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Actualizar"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Informacion del ordenador"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "Direccion IP"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(igual las últimas %1 veces)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Direccion IP externa"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Mostrar direccion IP"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Nombre de dominio"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Zona horaria"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 horas"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Propietario"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anónimo"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Creado"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Crédito total"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Crédito promedio"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Crédito de los proyectos"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Tipo de CPU"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Número de procesadores"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Coprocesadores"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Sistema Operativo"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Versión de BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Memoria"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Espacio de intercambio"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Espacio total en disco"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Espacio Libre en Disco"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Velocidad de punto flotante calculada"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 millones de operaciones/seg"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Velocidad de entero calculada"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Velocidad promedio de envío"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/seg"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Desconocido"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Velocidad promedio de descarga"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Tiempo promedio de finalización"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 días"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Destalles de la aplicación"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Mostrar"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Tareas"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-#, fuzzy
-msgid "Number of times client has contacted server"
-msgstr "Número de veces que BOINC ha contactado con el servidor"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Ultima vez que contactó con el servidor"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% del tiempo que BOINC se ejecuta"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Mientras se ejecuta BOINC, % de tiempo que el ordenador tiene una conexión a "
-"Internet"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Mientras se ejecuta BOINC, % del tiempo que se permite el trabajo"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Rendimiento promedio de la CPU"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Factor de corrección de la duración de la tarea"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Localización"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Eliminar este ordenador"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Fusionar registros duplicados de este ordenador"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Fusionar"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Último contacto"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Información del ordenador"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Posición"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Crédito promedio"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Sistema operativo"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 procesadores)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Detalles"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Estadísticas entre proyectos:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "El ordenador %1 tiene un SO incompatible:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "El ordenador %1 tiene una CPU incompatible:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "No se pudo actualizar los creditos del nuevo ordenador"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "No se ha podido actualizar los resultados"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "No se pudo eliminar el antiguo ordenador"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Eliminado el antiguo ordenador %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Mostrar:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Todos los ordenadores"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Sólo ordenadores activos en los últimos 30 días"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID del ordenador"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nombre"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "Versión<br>BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Unir ordenadores por nombre"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Comentario"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Las noticias están disponibles en formato %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Bandeja de entrada"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Escribir"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Enviar mensaje privado"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Previsualizar"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "No existe dicho mensaje"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Para"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "IDs de usuario o nombres de usuario únicos, separados con comas."
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Asunto"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Enviar mensaje"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Usted no está autorizado a enviar mensajes privados con tanta frecuencia. "
-"Por favor espere un tiempo antes de enviar más mensajes."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "no leído"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Para notificaciones por email, %1editar las preferencias comunitarias%2"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "Mensajes privados"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"¿Suspender el trabajo mientras el ordenador está funcionando con baterías? %"
-"1 Sólo importa para ordenadores portátiles %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "¿Suspender el trabajo mientras el ordenador está en uso?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"¿Suspender el trabajo de la GPU mientras el ordenador está en uso? %1 Válido "
-"desde la versión 6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'En uso' significa actividad del ratón/teclado en los últimos"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minutos"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Suspender el trabajo si no hay actividad del ratón/teclado en los últimos %1 "
-"Necesario para entrar en modo bajo consumo en algunos ordenadores %2"
-
-#: ../inc/prefs.inc:114
-#, fuzzy
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Suspender el trabajo de la CPU si su uso es superior al %1 0 significa sin "
-"restricciones<br>Válido desde la versión 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"Hacer trabajo sólo entre las horas %1 Sin restricciones si son iguales %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"¿Dejar las tareas en memoria mientras están suspendidas? %1 Las tareas "
-"suspendidas consumirán espacio de intercambio si se selecciona 'sí' %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Cambiar entre tareas cada %1 Recomendado: 60 minutos %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "En sistemas multiprocesador, usar como máximo"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesadores"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"En sistemas multiprocesador, usar como máximo %1 Obligatorio a partir de la "
-"versión 6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% de los procesadores"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Usar como máximo %1 Puede usarse para reducir la temperatura de la CPU %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% del tiempo de la CPU"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disco: usar como máximo"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disco: dejar libre al menos %1 Valores menores que %2 son ignorados %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% del total"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Las tareas vuelcan al disco al menos cada"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "segundos"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Espacio de intercambio: usar como máximo"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Memoria: cuando el ordendador está en uso, usar como máximo"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Memoria: cuando el ordenador no está en uso, usar como máximo"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "días"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"¿Confirmar antes de conectar a Internet? %1 Importa sólo si usted tiene una "
-"conexión por módem, RDSI o VPN  %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"¿Desconectar al terminar? %1 Importa sólo si tiene una conexión por módem, "
-"RDSI o VPN %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Velocidad máxima de descarga:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbytes/s"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Velocidad máxima de envío:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Usar la red sólo entre las horas"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Transferir como máximo %1 Obligatorio para la versión 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mbytes cada"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"¿No verific¡ficar los archivos de imagen? %1 Márquelo SÓLO si su proveedor "
-"de Internet modifica los archivos de imagenes (UMTS lo hace, por ejemplo). %"
-"2 No verificarlos reduce la seguridad de BOINC. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la CPU %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la GPU ATI %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Usar la GPU NVIDIA %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Usar la GPU ATI %1 Obligatorio a partir de la versión 6.10+ %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"¿Ejecutar aplicaciones de pruebas? %1 Esto nos ayuda a desarrollar "
-"aplicaciones, pero puede provocar que los trabajos fallen en su ordenador %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Se enviarán correos electrónicos desde %1; asegurese de que su filtro "
-"antispam acepta esta dirección."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "¿Debería %1 mostrar sus ordenadores en este sitio web?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Uso de disco y memoria"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Uso del procesador"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Uso de la red"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Estas preferencias se aplican a todos los proyectos BOINC en los que usted "
-"participa."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1No se pudo actualizar sus preferencias.%2 Los valores marcados en rojo "
-"debajo están fuera de rango o no son numéricos."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "sí"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "no"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "sin límite"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Añadir"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Quitar"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Procesando"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Preferencias aparte para %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Editar las preferencias"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Añadir preferencias aparte para %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Cambiar Vista)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Preferencias combinadas"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Configuración específica del proyecto"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Preferencias principales (por defecto)"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Editar preferencias de %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Ultima modificación de las preferencias:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Añadir preferencias"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Actualizar preferencias"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Localización del ordenador por defecto"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "y"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Su perfil será hecho visible para otra gente tan pronto como haya sido "
-"aprobado por el proyecto. Esto puede tomar unos pocos días."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Su perfil ha sido marcado como inaceptable. No es visible para otra gente. "
-"Por favor, cámbielo."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Error de la base de datos"
-
-#: ../inc/profile.inc:193
-#, fuzzy
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Para evitar el spam, los perfiles de usuarios con un crédito promedio de "
-"menos que %1 son visualizados sólo a usuarios conectados.   Pedimos "
-"disculpas por las molestias."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "El usuario está prohibido"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "No hay perfil para este ID de usuario."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Edite su perfil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Su opinión sobre este perfil"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recomendar este perfil como Usuario del Día"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Me %1gusta%2 este perfil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Alerte a los administradores de un perfil ofensivo:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1No me gusta%2 este perfil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Plataforma anónima"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "No está en base de datos"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "pendiente"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Todo"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "En progreso"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Válido"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Inválido"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Error"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactivo"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "No enviado"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Completado, esperando validación"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Completado y validado"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Completado, marcado como inválido"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Completado, no se puede validar"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Completado, validación no concluyente"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Completado, demasiado tarde para validar"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Completado"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "No se pudo enviar"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Cancelado por el servidor"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Error en la descarga"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Error en ejecución"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Error en el envío"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Abortado por el usuario"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-#, fuzzy
-msgid "Upload failed"
-msgstr "Falló la actualización: "
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Fuera de tiempo - sin respuesta"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Error de validación"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Abandonado"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Con éxito"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Error de ejecución"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Resultado redundante"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Sin respuesta"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nuevo"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Descargando"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Procesando"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Error de ejecución"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Enviando"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Hecho"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Inicial"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "No necesario"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Error en la unidad de trabajo - comprobación no hecha"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Compobada, pero no hay consenso todavía"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "La tarea fue informada como demasiado tarde para validar"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "No se pudo enviar el resultado"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Demasiados errores (puede que haya un error de programación)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Demasiados resultados (puede no ser determinante)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Demasiados resultados totales"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Unidad de trabajo cancelada"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Error no reconocido: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Nombre de la tarea"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "pulse para ver detalles"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Mostrar IDs"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Mostrar nombres"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Tarea"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Unidad de trabajo"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Ordenador"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Enviado"
-
-#: ../inc/result.inc:373
-#, fuzzy
-msgid "Time reported<br />or deadline"
-msgstr "Límite de tiempo para informar"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Estado"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Tiempo de ejecución <br/>(seg)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Tiempo de CPU<br/> (seg)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Crédito"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Aplicación"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Unidad de trabajo"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Recibir"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Estado del servidor"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Resultado"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Estado del cliente"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Límite de tiempo para informar"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Tiempo de ejecución"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Tiempo de CPU"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Estado de validación"
-
-# ########################################<br /><br />
-# Apps page (apps.php)
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Versión de la aplicación"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-#, fuzzy
-msgid "State"
-msgstr "Estado"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Nombre de la tarea"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Criterio de búsqueda (use uno o varios)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Palabras clave"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Buscar equipos con estas palabras en sus nombres o descripciones"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "País"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Tipo de equipo"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Mostrar sólo equipos activos"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Buscar"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-"Solicitado por usted, y el tiempo límite de repuesta del fundador ha "
-"acabado."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Completar la transferencia de fundador"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Solicitado por usted"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "el tiempo límite para que el fundador responda es %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ninguno"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Iniciar solicitud"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Aplazado"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Información del equipo"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Descripción"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Sitio web"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Estadísticas entre proyectos"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tipo"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Foro"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Hilos"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Unirse a este equipo"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Nota: si 'OK to email' (permitir enviar correos) está seleccionado en las "
-"preferencias de su proyecto, uniéndose a un equipo le da a su fundador "
-"acceso a su dirección de correo electrónico."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "No se aceptan nuevos miembros"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Petición de cambio del fundador"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Respondido por %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Cambio del fundador del equipo"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Miembros"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Fundador"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administradores"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Miembros nuevos en el último día"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Total de miembros"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "ver"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Miembros activos"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Miembros con crédito"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administrador"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Anteriores %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Siguiente %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "No existe dicho equipo."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Esta operación requiere ser fundador."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Esta operación requiere privilegios de administrador de equipo"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Nota de privacidad%2: si usted crea un equipo, sus preferencias del "
-"proyecto (recursos compartidos, preferencia gráficas) serán visibles para el "
-"público."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Nombre del equipo, versión en texto"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "No use etiquetas HTML."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Nombre del equipo, versión HTML"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Puede usar un %1número limitado de etiquetas HTML%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Si no conoce el HTML, deje este recuadro en blanco."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "URL de la página web del equipo, si la hay"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "sin \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-"Este URL será puesto como vínculo en la página del equipo en este sitio."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Descripción del equipo"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "¿Aceptar nuevos miembros?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Perfil de usuario"
-
-# ########################################
-# Public user page (show_user.php)
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Proyectos en los que está usted participando"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Proyectos en los que %1 está participando"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Proyecto"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Pulse para ver la página de usuario"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Desde"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Trabajo  computacional y crédito"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Ordenadores en esta cuenta"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Ver"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "ID interproyectos"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Estadísticas interproyectos"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Cuenta"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Equipo"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Interproyectos"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certificado"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Estadísticas en su teléfono móvil"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Información de la cuenta"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Dirección de correo electrónico"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Código postal"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "miembro de %1 desde"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Cambiar"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "correo electrónico"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "contraseña"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "otros datos de la cuenta"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "ID de usuario"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Usado para funciones comunitarias"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Clave de cuenta"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Preferencias"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Cuándo y cómo BOINC usa su ordenador"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Preferencias de cálculo computacional"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Foros y mensajes privados"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferencias de la comunidad"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Preferencias para este proyecto"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "Preferencias de %1"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Comunidad"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Borrar"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Crear"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Perfil"
-
-# ########################################
-# Forum
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 mensajes"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Notificaciones"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Separase del equipo"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administrar"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(petición de modificación del fundador pendiente)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Miembro del equipo"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "buscar un equipo"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Fundador pero no miembro de"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Encontrar amigos"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Amigos"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Ordenadores"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donante"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Contactar"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Esta persona es un amigo"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Cancelar amistad"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Solicitud pediente"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Añadir como amigo"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "Salir"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "Iniciar sesión"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Iniciar sesión"
-
-# ########################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Creación de cuenta"
-
-#: ../inc/util.inc:206
-#, fuzzy
-msgid "Server status page"
-msgstr "Estado del servidor"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "No se ha podido procesar su petición"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Use etiquetas BBCode para formatear su texto"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-#, fuzzy
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Permanecer conectado en este ordenador"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Le identifica en nuestra página web. Utilice su nombre real o un apodo."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Seleccione el país que quiere representar, si lo hay."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Código Postal"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../user/account_finish_action.php:27
-#, fuzzy
-msgid "You must supply a name for your account"
-msgstr "Debe proporcionar un nombre para su cuenta."
-
-#: ../user/account_finish_action.php:30
-#, fuzzy
-msgid "HTML tags not allowed in name"
-msgstr "No se permiten etiquetas HTML en su nombre."
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Añadir %1 preferencias para %2"
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Programas"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 actualmente usa los siguientes programas. Cuando usted participa en %1, a "
-"su ordenador se le asigna trabajo para uno o más de estos programas. La "
-"versión actual del programa se descargará en su ordenador. Esto sucede "
-"automáticamente; usted no tiene que hacer nada."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Plataforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versión"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Instalada"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-#, fuzzy
-msgid "Italic"
-msgstr "Inválido"
-
-#: ../user/bbcode.php:34
-#, fuzzy
-msgid "Underline"
-msgstr "Declinar"
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "Descripción"
-
-#: ../user/bbcode.php:36
-#, fuzzy
-msgid "Big text"
-msgstr "Siguiente"
-
-#: ../user/bbcode.php:37
-#, fuzzy
-msgid "Red text"
-msgstr "Siguiente"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "Separase del equipo"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Su cuenta"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Equipo"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Usuario del día"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Estado del servidor"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Perfiles"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# ########################################<br />
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Top de participantes"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Top de computadoras"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Top de equipos"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Idioma"
-
-# ########################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Lea nuestras políticas y normas"
-
-#: ../user/create_account_action.php:26
-#, fuzzy
-msgid "Can't create account"
-msgstr "Crear cuenta"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-#, fuzzy
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-"La respuesta al ReCaptcha no es correcta.  Por favor inténtelo de nuevo."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Debe indicar un código de invitación para crear una cuenta."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "El código de invitación introducido no es válido."
-
-#: ../user/create_account_action.php:84
-#, fuzzy
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "Debe ser una dirección válida con la forma 'nombre at dominio'"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-#, fuzzy
-msgid "New passwords are different"
-msgstr "Nueva contraseña, de nuevo"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "Crear cuenta"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Esta cuenta pertenecerá al grupo %1 y tendrá las preferencias de proyecto de "
-"su fundador."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Código de Invitación"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Se necesita un código de invitación válido para crear una cuenta."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Dirección de Correo Electrónico"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Debe ser una dirección válida con la forma 'nombre at dominio'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Contraseña"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Debe ser al menos de %1 caracteres"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Confirme contraseña"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Crear cuenta"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Imagen"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Su imagen se muestra a la izquierda."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Para reemplazarla, haz click en el botón \"Explorar\" y elige una imagen en "
-"formato PNG o JPG (%1 o menor)"
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Para quitarla de tu perfil, marque este cuadro:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Si desea incluir una imagen en su perfil, haga clic en el botón \"Explorar\" y "
-"seleccione un archivo JPEG o PNG. Por favor seleccione imágenes de %1 o "
-"menos."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Idioma"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Seleccione el lenguaje en que está escrito su perfil:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Enviar perfil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Crear/editar perfil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "El formato de la imagen que ha enviado no está soportado."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"Su %1perfil%2 le permite compartir sus opiniones y experiencia con la %3 "
-"comunidad."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-"La respuesta al ReCaptcha no es correcta.  Por favor inténtelo de nuevo."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Su segunda respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "El envío de su perfil estaba vacío."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "No se pudo actualizar el perfil: error de la base de datos"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "No se pudo crear el perfil: error de la base de datos"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Perfil guardado"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-"¡Felicitaciones! Su perfil ha sido grabado correctamente en nuestra base de "
-"datos"
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Ver tu perfil%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Crear un perfil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Para evitar el Spam, necesitas un promedio de %1 créditos o más para crear o "
-"editar un perfil.  Sentimos las molestias."
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "No se pudo eliminar el antiguo ordenador"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "Datos de la cuenta"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "Crear cuenta"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-#, fuzzy
-msgid "Are you sure you want to delete your account?"
-msgstr "Esta seguro/segura de querer cancelar su amistad con %1?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Sí"
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "Eliminar este ordenador"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "No"
-
-#: ../user/delete_account.php:80
-#, fuzzy
-msgid "Do not delete this account"
-msgstr "Eliminar este ordenador"
-
-#: ../user/delete_profile.php:30
-#, fuzzy
-msgid "couldn't delete profile - please try again later"
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../user/delete_profile.php:33
-#, fuzzy
-msgid "Delete Confirmation"
-msgstr "Informacion del ordenador"
-
-#: ../user/delete_profile.php:35
-#, fuzzy
-msgid "Your profile has been deleted."
-msgstr "Su mensaje ha sido enviado."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-#, fuzzy
-msgid "Delete my profile"
-msgstr "Crear un perfil"
-
-#: ../user/delete_profile.php:53
-#, fuzzy
-msgid "Do not delete my profile"
-msgstr "%1No me gusta%2 este perfil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-#, fuzzy
-msgid "Your donation for has been completed."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-#, fuzzy
-msgid "This project is not accepting donations."
-msgstr "Esta petición está todavía pendiente de confirmación."
-
-#: ../user/donations.php:34
-#, fuzzy
-msgid "%1 donations"
-msgstr "%1 días"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-#, fuzzy
-msgid "Anonymous donation"
-msgstr "Plataforma anónima"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-#, fuzzy
-msgid "Proceed"
-msgstr "Perfil guardado"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Descarge extensiones para BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Usted puede descargar programas de varias categorías."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Estos programas no están aprobados por %1 y usted asume los riesgos de "
-"usarlos."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Nosotros no proporcionamos instrucciones para instalar estos programas.\n"
-"Sin embargo, el autor puede haber proporcionado ayuda para instalar o "
-"desinstalar el programa. \n"
-"Si esto no es suficiente deberá contactar con el autor."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instrucciones para instalar y ejecutar BOINC están %1aquí%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-"Esta lista es administrada centralmente desde %1el sitio web de BOINC%2."
-
-#: ../user/edit_email_action.php:31
-#, fuzzy
-msgid "Change email address of account"
-msgstr "Cambiar la dirección de correo de su cuenta"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "Nuevo correo electrónico"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "Confirme contraseña"
-
-#: ../user/edit_email_action.php:62
-#, fuzzy
-msgid "The email address of your account is now %1."
-msgstr "La dirección de correo de tu cuenta ha sido validada."
-
-#: ../user/edit_email_action.php:64
-#, fuzzy
-msgid "Please %1validate this email address%2."
-msgstr "Validar dirección de correo electrónico"
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Cambiar dirección de correo"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Cambiar la dirección de correo de su cuenta"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nuevo correo electrónico"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Debe ser una dirección válida con la forma 'nombre at dominio'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "¿Sin contraseña?"
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Confirme contraseña"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "Editar las preferencias"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "No existe dicho usuario"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-#, fuzzy
-msgid "On my Account page (no email)"
-msgstr "Obtener la clave de cuenta por correo electrónico"
-
-#: ../user/edit_forum_preferences_form.php:58
-#, fuzzy
-msgid "Immediately, by email"
-msgstr "Obtener la clave de cuenta por correo electrónico"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Foro"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "No use etiquetas HTML."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Foros"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Hilos"
-
-# ########################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Mensajes"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Foro"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Foros y mensajes privados"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Añadir usuario a filtrar"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "Actualizar preferencias"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Clave débil de cuenta"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Confirme contraseña"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Cambiar contraseña"
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Su mensaje ha sido enviado."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "su correo electrónico y su antigua contraseña"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "su clave de cuenta"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Contraseña actual"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>O</b>: Clave de cuenta"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Obtener la clave de cuenta por correo electrónico"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Nueva contraseña"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Nueva contraseña, de nuevo"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "No se permiten etiquetas HTML en su nombre."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Debe proporcionar un nombre para su cuenta."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-#, fuzzy
-msgid "Edit account information"
-msgstr "Información de la cuenta"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-#, fuzzy
-msgid "Server states"
-msgstr "Estado del servidor"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "En progreso"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-#, fuzzy
-msgid "Outcomes"
-msgstr "Resultado"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Error de validación"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-#, fuzzy
-msgid "Client states"
-msgstr "Estado del cliente"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Límite de tiempo para informar"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-#, fuzzy
-msgid "Already reported"
-msgstr "Ya amigos"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Desconocido"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "Dirección de correo electrónico"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Enviar mensaje"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Crédito pendiente"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-#, fuzzy
-msgid "Tell your friends about %1"
-msgstr "Tus opiniones sobre %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your name:"
-msgstr "Mostrar nombres"
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "correo electrónico"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Amigos"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "Nuevo correo electrónico"
-
-#: ../user/ffmail_form.php:56
-#, fuzzy
-msgid "Additional message (optional)"
-msgstr "Agregue un mensaje opcional aquí:"
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Remitente"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-#, fuzzy
-msgid "No user with this ID found."
-msgstr "No se encontró computadora con ID %1"
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "El usuario está prohibido"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-#, fuzzy
-msgid "User Request"
-msgstr "No hay petición"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Propietario"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Versión"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-#, fuzzy
-msgid "You must specify an action..."
-msgstr "Debe proporcionar un nombre para su cuenta."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-#, fuzzy
-msgid "You are not authorized to edit this post."
-msgstr "Ahora %1 y tu sois amigos."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Edite su perfil"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Título"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Añadir mi firma a éste mensaje"
-
-#: ../user/forum_forum.php:41
-#, fuzzy
-msgid "Not visible to you"
-msgstr "Este foro no es visible para usted."
-
-# ########################################
-# Forum sample index page
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "foro de %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Hilo"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Añadir un mensaje nuevo a este hilo"
-
-#: ../user/forum_forum.php:116
-#, fuzzy
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Las noticias están disponibles en formato %sRSS feed%s"
-
-# ########################################
-# Forum thread
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Este hilo está oculto por motivos administrativos"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "no leído"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "no leído"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "No tiene mensajes privados."
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Editar el título del hilo"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Editar el título del hilo"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "Desbloquear"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "You read this thread"
-msgstr "Ocultar este hilo"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Hilo"
-
-# ########################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Preguntas y Respuestas"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Versión"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-# ########################################
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Foros de %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Si tiene alguna pregunta o problema, por favor, use la sección %1Preguntas & "
-"Respuestas%2 de los foros."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Suscribirse"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Último mensaje"
-
-#: ../user/forum_moderate_post.php:52
-#, fuzzy
-msgid "Hide post"
-msgstr "Ocultar"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "Sin servidor"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Responder a este hilo"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "No existe dicho usuario"
-
-#: ../user/forum_moderate_post.php:80
-#, fuzzy
-msgid "Ban duration"
-msgstr "validación"
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "UTC %1 horas"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 días"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "%1 mensajes"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-#, fuzzy
-msgid "You are not authorized to moderate this post."
-msgstr "Ahora %1 y tu sois amigos."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "No enviado"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "El usuario está prohibido"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Contraseña actual"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Descripción del equipo"
-
-#: ../user/forum_moderate_thread.php:77
-#, fuzzy
-msgid "New title:"
-msgstr "Editar título"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-#, fuzzy
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Crear un hilo nuevo"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Crear un hilo nuevo"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-#, fuzzy
-msgid "This function is turned off by the project"
-msgstr "Esta opción está deshabilitada temporalmente"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Responder a este hilo"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-#, fuzzy
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-#, fuzzy
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-#, fuzzy
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Responder a este hilo"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Mensaje"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-#, fuzzy
-msgid "Post reply"
-msgstr "Sin respuesta"
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Añadir mi firma a éste mensaje"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Report Registered"
-msgstr "Límite de tiempo para informar"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Último mensaje"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Último mensaje"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-#, fuzzy
-msgid "Report not registered"
-msgstr "Límite de tiempo para informar"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-#, fuzzy
-msgid "This message board is available as an RSS feed."
-msgstr "Las noticias están disponibles en formato %sRSS feed%s"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Opcional"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Busqueda en el foro"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Buscar"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Buscar en los foros"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 mensajes"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-#, fuzzy
-msgid "Sort by"
-msgstr "Clasificar"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Resultados de la búsqueda en el foro"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "No hay perfiles que correspondan a su búsqueda."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "No hay perfiles que correspondan a su búsqueda."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Descripción del equipo"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Cancelar suscripción"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#: ../user/forum_subscribe.php:74
-#, fuzzy
-msgid "Unknown subscription action"
-msgstr "Acción desconocida"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Este foro no es visible para usted."
-
-# ########################################
-# Forum thread
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "Este hilo está oculto por motivos administrativos"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Mi pregunta fue respondida."
-
-#: ../user/forum_thread.php:129
-#, fuzzy
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-"¡Si su pregunta ha sido respondida adecuadamente, por favor, pulse aquí para "
-"cerrarla!"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Yo también tengo esta pregunta"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Añadir un mensaje nuevo a este hilo"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Cancelar suscripción"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-"Usted está suscrito a este hilo.   Pulse aquí para cancelar la suscripción."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Suscribirse"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Pulse para recibir correo electrónico cuando haya nuevos mensajes en este "
-"hilo"
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Hacer visible este hilo"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Ocultar este hilo"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Desbloquear"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Desbloquear este hilo"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Bloquear"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Bloquear este hilo"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Mover este hilo a un foro diferente"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Editar título"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Editar el título del hilo"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Clasificar"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Mensajes"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Ya amigos"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Usted ha pedido amistad con %1 en %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Esta petición está todavía pendiente de confirmación."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 no está aceptando peticiones suyas de amistad"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "No puedes hacerte amigo de ti mismo."
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Añadir amigo"
-
-#: ../user/friend.php:74
-#, fuzzy
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Usted pidió agregar a %1 como amigo. Nosotros avisaremos a %2 y le pediremos "
-"que confirme que ustedes son amigos."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Agregue un mensaje opcional aquí:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Petición de amigo enviada"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Hemos notificado a %1 su petición."
-
-#: ../user/friend.php:126
-#, fuzzy
-msgid "Please log in as %1"
-msgstr "Por favor, inicie la sesión"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Petición de amigo"
-
-#: ../user/friend.php:141
-#, fuzzy
-msgid "%1 has requested friendship with you."
-msgstr "Usted ha pedido amistad con %1 en %2."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 dice: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Aceptar amistad"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Pulse aceptar si %1 es realmente un amigo"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Declinar"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Pulse declinar si %1 no es un amigo"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Amistad confirmada"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Su amistad con %1 ha sido confirmada."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Amistad declinada"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Usted ha declinado la amistad con %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Notificación no encontrada"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Amigo confirmado"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Ahora %1 y tu sois amigos."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "¿Cancelar amistad?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Esta seguro/segura de querer cancelar su amistad con %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Seguir siendo amigos"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Amistad cancelada"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Su amistad con %1 ha sido cancelada."
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "otros datos de la cuenta"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Bienvenido a %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Vea y edite las preferencias de su cuenta usando los enlaces de abajo."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-#, fuzzy
-msgid "Anonymous platform, missing app"
-msgstr "Plataforma anónima"
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Plataforma anónima"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Número de procesadores"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Velocidad promedio de envío"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Destalles de la aplicación"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "Fusionar registros duplicados de este ordenador"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Eliminar este ordenador"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "¿Desea borrarlo?"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "Unir ordenadores por nombre"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Unir ordenadores por nombre"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "Mostrar nombres"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Nombre"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-#, fuzzy
-msgid "created"
-msgstr "Crear"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "ID del ordenador"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Sin servidor"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Fusionar"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Hecho"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-#, fuzzy
-msgid "Return to host page"
-msgstr "Regresar al perfil."
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Información del ordenador"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Información del ordenador"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Top de computadoras"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "No use etiquetas HTML."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Creado"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Ejecute %1 sólo en ordenadores que le pertenezcan, o de los que haya "
-"obtenido permiso del propietario. Algunas compañías y escuelas tienen normas "
-"que prohiben usar sus ordenadores para proyectos como %1"
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Cómo usará %1 su ordenador"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Cuando ejecute %1 en su ordenador, utilizará parte de la potencia de su CPU, "
-"espacio en disco, y ancho de banda de red. Usted puede controlar la "
-"cantidad de recursos que usa %1, y cuándo son utilizados."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"El trabajo hecho por su ordenador contribuye a los objetivos de %1, como se "
-"describe en su página web. Los programas pueden cambiar cada cierto tiempo."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Política de privacidad"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Su cuenta en %1 es identificada por un nombre que usted elige. Éste nombre "
-"puede ser mostrado en la página web de %1, junto a un resumen del trabajo "
-"que su ordenador ha hecho para %1. Si quiere mantener su anonimato, elija un "
-"nombre que no revele su identidad."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Si usted participa en %1, información sobre su ordenador (como el tipo de "
-"procesador, cantidad de memoria, etc.) será guardada por %1 y usada para "
-"decidir qué tipo de trabajo se asigna a su ordenador. Ésta información se "
-"mostrará también en la página web de %1. Nada que permita conocer la "
-"situación de su ordenador (por ejemplo su nombre de dominio o dirección de "
-"red) será mostrado."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Para participar en %1, usted debe indicar una dirección donde recibir correo "
-"electrónico. Ésta dirección no se mostrará en la página web de %1 ni será "
-"compartida con otras organizaciones. %1 podrá mandarle boletines "
-"periódicamente; sin embargo  usted puede decidir desactivar su envío en "
-"cualquier momento."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"Los mensajes privados enviados en el sitio web de %1 son sólo visibles para "
-"la persona que los ha enviado y para la persona que los recibe.   %1 no "
-"examina o revisa el contenido de los mensajes privados.   Si usted recibe "
-"mensajes privados que no desea de otro usuario de %1, usted podrá agregarlo "
-"a su %2filtro de mensajes%3.   Esto evitará que usted vea más mensajes "
-"públicos o privados de ese usuario."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "¿Es seguro ejecutar %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Cada vez que descarga un programa de Internet está asumiendo un riesgo: el "
-"programa puede tener errores peligrosos, o el servidor del que se descarga "
-"puede haber sido pirateado. %1 ha hecho esfuerzos para minimizar estos "
-"riesgos. Hemos probado nuestros programas cuidadosamente. Nuestros "
-"servidores están detras de un cortafuegos y están configurados para una "
-"seguridad máxima. Para asegurar la integridad de la descarga de los "
-"programas, todos los ficheros ejecutables están firmados digitalmente en un "
-"ordenador seguro que no está conectado a Internet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Las aplicaciones ejecutadas por %1 pueden provocar que algunos ordenadores "
-"se sobrecalienten. Si ésto ocurre, no ejecute %1 o use un %programa "
-"complementario% que limite el uso de la CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 fue desarrolado por %2. BOINC fue desarrollado en la Universidad de "
-"California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Responsabilidades"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 y %2 no asumen ninguna responsabilidad por daños en su ordenador, pérdida "
-"de datos, o cualquier otro suceso o circunstancia que pueda ocurrir como "
-"resultado de participar en %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Otros proyectos BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Otros proyectos usan la misma plataforma, BOINC, como %1. Usted puede "
-"decidir si participar en uno o más de esos proyectos. Haciéndolo su "
-"ordenador hará trabajo útil incluso cuando %1 no tenga trabajo disponible."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Dichos proyectos no están relacionados con %1, y no podemos reponder por sus "
-"niveles de seguridad o la naturaleza de su investigación. Únase a ellos por "
-"su cuenta y riesgo."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Dirección de correo electrónico:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "¿Ha olvidado el correo electrónico?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "¿Ha olvidado su contraseña?"
-
-#: ../user/login_form.php:51
-#, fuzzy
-msgid "Stay logged in"
-msgstr "Permanecer conectado en este ordenador"
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "o %1cree una cuenta%2."
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Procesando"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Ejecutar %1 sólo en ordenadores autorizados"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Crédito pendiente"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Unidad de trabajo"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "crédito concedido"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Crédito pendiente"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Bloquear a usuario"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Su mensaje ha sido enviado."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "No tiene mensajes privados."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Remitente y fecha"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "No existe dicho mensaje"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Borrar los mensajes seleccionados"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Borrar los mensajes seleccionados"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Remitente"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Fecha"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Necesita rellenar todos los campos para enviar un mensaje privado"
-
-#: ../user/pm.php:188
-#, fuzzy
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Su primera respuesta fue marcada como spam por el sistema anti-spam Akismet. "
-" Por favor, modifique su texto e inténtelo de nuevo."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "No se encontró ningún usuario con id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "No se encontró ningún usuario con nombre de usuario %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 es un nombre de usuario que no es único; debe usar el ID de usuario"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "El usuario %1 (ID: %2) no acepta mensajes privados de usted."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "No existe dicho usuario"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "¿Desea bloquear %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"¿Está usted seguro de que quiere bloquear al usuario %1 para que no le envíe "
-"mensajes privados?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Por favor, tenga en cuenta que usted sólo puede bloquear un número limitado "
-"de usuarios."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Una vez que el usuario ha sido bloqueado usted puede desbloquearlo en la "
-"página de preferencias del foro."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "No, cancelar"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "No existe dicho usuario"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Usuario %1 bloqueado"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-"El usuario %1 ha sido bloqueado para que no le pueda enviar mensajes  "
-"privados."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Para desbloquearlo, visite las %1preferencias del foro%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Acción desconocida"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Editar las preferencias"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"Los %1perfiles%2 permiten a los individuos compartir experiencias y "
-"opiniones con la comunidad %3."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"Explore la diversidad de voluntarios como usted, y contribuya con sus "
-"propias opiniones para entretenimiento de otros. "
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"¡Si no lo ha hecho todavía, usted puede %1crear su propio perfil de usuario%"
-"2 para que otros lo vean!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Usuario del Día"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Explorador de Perfiles de Usuario"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Ver la %1Galería de Imágenes de Usuario%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Ver perfiles %1por país%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Ver perfiles %1al azar%2, %3al azar con imágenes%2, o %4al azar sin imágenes"
-"%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Listado alfabético de perfiles:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Búsqueda de texto en perfiles"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "No hay perfiles"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "No hay perfiles que correspondan a su búsqueda."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Gracias"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Su recomendación ha sido grabada."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Regresar al perfil."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Nombre de la tarea"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Esta opción está deshabilitada temporalmente"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "No se encontró computadora con ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Sin acceso"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Falta el ID de usuario o del host"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tareas en progreso"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Programas"
-
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "No enviado"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "En progreso"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Ordenador"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Estadísticas y tabla de posiciones"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Estadisticas de %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Estadisticas más detalladas de %1 y otros projectos basados en BOINC están "
-"disponibles en varios sitios web:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-"Usted también puede obtener sus estadísticas actuales en formato \"imagen "
-"para firmar\""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Adicionalmente usted podra acceder a sus estadísticas individuales sumadas "
-"de todos sus projectos BOINC desde varios sitios web; mire su %1página de "
-"incio%2."
-
-#: ../user/team.php:27
-#, fuzzy
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 participantes pueden formar %2equipos%3"
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Usted solo podrá pertenecer a un equipo. Usted puede unirse o salir de un "
-"equipo en cualquier momento."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Cada equipo tiene un %1fundador%2 que puede:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "acceder a las direcciones de e-mail de los miembros"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "editar el nombre y la descripción del equipo"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "quitar miembros del equipo"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "dar de baja el equipo si no tiene miembros"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Para unirse a un equipo, visite la página del equipo y pulse en %1Unirse a "
-"este equipo%2"
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Encontrar un equipo"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Todos los equipos"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 equipos"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Crear un nuevo equipo"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-"Si no encuentras un equipo que sea el indicado para ti, puedes %1crear un "
-"equipo%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "No existe dicho equipo."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "No existe dicho equipo."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "El nombre del equipo no puede estar en blanco"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Ya existe un equipo llamado %1- intente otro nombre"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Crear un equipo"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Usted pertenece a %1. Usted debe %2quitarse de este equipo%3 antes de crear "
-"uno nuevo."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-#, fuzzy
-msgid "Could not update team - please try again later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-# ########################################
-# Forum sample index page
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "foro de %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-#, fuzzy
-msgid "Update failed"
-msgstr "Falló la actualización: "
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Información del equipo"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-#, fuzzy
-msgid "Return to team page"
-msgstr "Regresar al perfil."
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-#, fuzzy
-msgid "Couldn't join team - please try again later."
-msgstr "No se pudo crear el equipo - por favor, intentelo más tarde"
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Perfil: %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Perfil: %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-#, fuzzy
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Si no encuentras un equipo que sea el indicado para ti, puedes %1crear un "
-"equipo%2."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-#, fuzzy
-msgid "text"
-msgstr "Siguiente"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Separase del equipo"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-#, fuzzy
-msgid "Remove?"
-msgstr "Quitar"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Resultados de la búsqueda en el foro"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Mejores ordenadores"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Mejores equipos de %1"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Participante desde"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Promedio de créditos recientes"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Resultados de la búsqueda en el foro"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Equipo"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-#, fuzzy
-msgid "Validate BOINC email address"
-msgstr "Validar dirección de correo electrónico"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "No existe dicho usuario"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-"Ha fallado la actualización de la base de datos - por favor, inténtelo de "
-"nuevo más tarde."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Validar dirección de correo electrónico"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "La dirección de correo de tu cuenta ha sido validada."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Este usuario no tiene perfil"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Perfil: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Datos de la cuenta"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Clave débil de cuenta"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-# 81%
-#: ../user/workunit.php:35
-#, fuzzy
-msgid "Workunit %1"
-msgstr "Unidad de trabajo"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "crédito concedido"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "errores"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validación"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Pendiente"
-
-#: ../project.sample/project.inc:43
-#, fuzzy
-msgid "Main page"
-msgstr "Nombre de dominio"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Generado"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Tus opiniones sobre %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Esquema de color para gráficos"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Ejecutar sólo las aplicaciones seleccionadas"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(todas las aplicaciones)"
-
-#, fuzzy
-#~ msgid "Error:"
-#~ msgstr "Error"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "La creación de cuentas está desactivada."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "La creación de cuentas está desactivada. Por favor, inténtelo más tarde."
-
-#, fuzzy
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Estas se aplican a todos los proyectos BOINC en los que usted participa.<br>\n"
-#~ "                         En ordenadores unidos a múltiples proyectos, se "
-#~ "usarán las preferencias modificadas más recientemente."
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "No existe dicho equipo."
-
-#, fuzzy
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "El ordenador está conectado a Internet aproximadamente cada %1 Dejar en "
-#~ "blanco o 0 si siempre está conectado. %2 BOINC intentará mantener el mayor "
-#~ "trabajo posible. %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Mantener suficiente trabajo para otro"
-
-#~ msgid "Update failed: "
-#~ msgstr "Falló la actualización: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Proporciona %1acceso limitado%2 a su cuenta"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "NOTA: Si usted usa una versión de BOINC 5.2+ con el Administrador de BOINC, "
-#~ "no utilice éste formulario. Simplemente ejecute BOINC, seleccione Unirse a "
-#~ "un Proyecto, e introduzca una dirección de correo electrónico y una "
-#~ "contraseña. "
-
-#, fuzzy
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Su recomendación ha sido grabada."
-
-# ########################################
-# "Weak account key" page (weak_auth.php)
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Su 'clave débil de cuenta' le permite unir computadoras a su cuenta en este "
-#~ "proyecto, sin permitir entrar a su cuenta en el sitio web del proyecto o "
-#~ "cambiar datos de la cuenta de alguna forma."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Este mecanismo funciona sólo con los proyectos que hayan actualizado el "
-#~ "software de su servidor a la versión del 7 de Diciembre de 2007 o posterior."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Su clave débil de cuenta para este proyecto es:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Para usar su clave débil en cierta computadora, busque o cree el 'archivo de "
-#~ "cuenta' para este proyecto. El nombre de este archivo está en la forma "
-#~ "<b>cuenta_URL_DEL_PROYECTO.xml</b>. El archivo de cuenta para %1 es <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Cree este archivo si es necesario. Ponga en él lo siguiente:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Su clave débil de cuenta está basada en su contraseña. Si cambia su "
-#~ "contraseña, su clave débil cambiará también, y su clave anterior quedará "
-#~ "invalidada."
-
-#~ msgid "Account key"
-#~ msgstr "Clave de cuenta"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Proporciona acceso total  a su cuenta"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Clasificar"
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "No hay hilo con id %1. Por favor, pulse en el enlace y pruebe de nuevo."
-
-#~ msgid "Request not found"
-#~ msgstr "Petición no encontrada"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 le ha añadido como amigo."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Datos de la cuenta de %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr ""
-#~ "ERROR: %1 no existe!  No se puede crear el cuadro de lista combinada.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Para proteger las páginas web del proyecto del spam, por favor introduzca "
-#~ "las dos palabras que aparecen en la imagen:<br>"
-
-#~ msgid "BOINC client version"
-#~ msgstr "Versión del cliente BOINC"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "Cuota diaria máxima de unidad de trabajo por CPU"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/día"
-
-#~ msgid "Last %1"
-#~ msgstr "Último %1"
-
-# #########################################
-# Language: Spanish (Spain)
-# FileID  : $Id: es.po 16499 2008-11-17 06:28:03Z JensSeidler $
-# Author  : Janus Kristensen (Translator: Alejandro Martín Covarrubias)
-# Email   : jbk at visualgroup.dk (alex.covarrubias at gmail.com)
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Recursos usados y gráficos"
-
-#~ msgid "fll"
-#~ msgstr "fll"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Tareas para la computadora %1"
-
-#~ msgid "Provides"
-#~ msgstr "Proporciona"
-
-#~ msgid "limited access"
-#~ msgstr "acceso limitado"
-
-# ########################################
-# "Your account" page (home.php)
-#~ msgid "to your account"
-#~ msgstr "a su cuenta"
-
-#~ msgid "Current version"
-#~ msgstr "Versión actual"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Marcar como no leído"
-
-#~ msgid "With selected"
-#~ msgstr "Con los seleccionados"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "¿Está seguro de que quiere borrar el mensaje con asunto "%1" "
-#~ "(enviado por %2 el %3)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Sí, borrar"
-
-# ########################################
-# "Your account" page (home.php)
-# #########################################
-# Language: Spanish (Spain)
-# FileID  : $Id: es.po 16499 2008-11-17 06:28:03Z JensSeidler $
-# Author  : Janus Kristensen (Translator: Alejandro Martín Covarrubias)
-# Email   : jbk at visualgroup.dk (alex.covarrubias at gmail.com)
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "No such message."
-#~ msgstr "No existe dicho mensaje."
diff --git a/locale/es/BOINC-Setup.mo b/locale/es/BOINC-Setup.mo
index be2de84..cd3265d 100644
Binary files a/locale/es/BOINC-Setup.mo and b/locale/es/BOINC-Setup.mo differ
diff --git a/locale/es/BOINC-Setup.po b/locale/es/BOINC-Setup.po
index 7d683d7..225fa28 100644
--- a/locale/es/BOINC-Setup.po
+++ b/locale/es/BOINC-Setup.po
@@ -1,67 +1,75 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Antonio Regidor García <chikitosan at gmail.com>, 2015
+# juanda097 <juanda097 at openmailbox.org>, 2016
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-23 23:14+0000\n"
-"Last-Translator: Rom Walton\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/boinc/language/es/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-30 03:54+0000\n"
+"Last-Translator: juanda097 <juanda097 at openmailbox.org>\n"
+"Language-Team: Spanish (http://www.transifex.com/boinc/boinc/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Lo sentimos, esta versión de %s requiere un sistema 10.5 o superior."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Lo sentimos, esta versión de %s requiere un sistema 10.6 o superior."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Sí"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "No"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
-msgstr "¿Debe ejecutarse BOINC incluso cuando ningun usuario ha iniciado la sesión?"
+msgstr "¿BOINC debe ejecutarse aun cuando ningún usuario haya iniciado una sesión?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
-msgstr "A los usuarios con permiso para administrar este computador se les permitirá automáticamente ejecutar y controlar %s.\n\n¿Quiere que los usuarios no administradores también puedan ejecutar y controlar %s en este Mac?"
+msgstr "A los usuarios con permiso para administrar este computador se les permitirá automáticamente ejecutar y controlar %s.\n\n¿Quiere que también los usuarios no administradores puedan ejecutar y controlar %s en este Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "¿Quiere definir %s como el salvapantallas de todos los usuarios de %s de este Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "Aceptar"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Error de permisos tras reiniciar"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "La eliminación puede tardar varios minutos.\nTenga paciencia."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +77,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "¿Está seguro de que quiere eliminar completamente %s de su computador?\n\nEso borrará los ejecutables pero no tocará los archivos de datos de %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Cancelado: no se ha tocado %s."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Ha ocurrido un error: código %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
-msgstr "nombre del usuario"
+msgstr "usuario"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "¿También quiere eliminar Virtualbox de su computador?\n(Virtualbox se instaló junto con BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -99,19 +107,19 @@ msgid ""
 "\n"
 "for each user, the file\n"
 "\"%s\"."
-msgstr "Eliminación terminada.\n\n Puede que quiera eliminar los siguientes elementos restantes usando el Finder: \nel directorio «%s»\n\npara cada usuario, el archivo\n«%s»."
+msgstr "Eliminación terminada.\n\nPuede que quiera eliminar los siguientes elementos restantes usando el Finder: \nel directorio «%s»\n\npara cada usuario, el archivo\n«%s»."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Escriba la contraseña de administrador para borrar completamente %s del computador.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Continuar..."
diff --git a/locale/es/BOINC-Web.mo b/locale/es/BOINC-Web.mo
index ea62a5d..cc106e7 100644
Binary files a/locale/es/BOINC-Web.mo and b/locale/es/BOINC-Web.mo differ
diff --git a/locale/es/BOINC-Web.po b/locale/es/BOINC-Web.po
index 1d8224c..801d3f1 100644
--- a/locale/es/BOINC-Web.po
+++ b/locale/es/BOINC-Web.po
@@ -1,23 +1,23 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
+# Alonso Lara <alonso.lara.plana at gmail.com>, 2017
 # Antonio Regidor García <chikitosan at gmail.com>, 2015
 # el buve, 2015
 # fco.aguilarm <fco.aguilarm at gmail.com>, 2015
+# juanda097 <juanda097 at openmailbox.org>, 2016
 # vladevil <vladevil at gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2015-07-24 04:51+0000\n"
-"Last-Translator: fco.aguilarm <fco.aguilarm at gmail.com>\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/boinc/language/es/)\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-04 18:17+0000\n"
+"Last-Translator: Alonso Lara <alonso.lara.plana at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/boinc/boinc/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -25,359 +25,466 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Español"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Spanish"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! Le ayuda a crear y administrar sus cuentas de proyectos de BOINC y le ayuda a establecer preferencias, unirse o crear equipos, conectando sus equipos a proyectos y mucho más. Si usted es un usuario de BOINC nuevo o existente, BAM le ayudará a sacar el máximo provecho de BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Los miembros de GridRepublic ejecutan un salvapantallas que permite a sus computadoras trabajar en proyectos de investigación de interés público cuando las máquinas no están en uso. Este protector de pantalla no afecta al rendimiento de la computadora anfitriona como tampoco lo hace un protector de pantalla normal."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Buscar"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "Volver a la página principal de BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Esta página es %straducible%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Le recomendamos que instale también VirtualBox, para que su computador pueda trabajar para los proyectos científicos que lo requieren."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "Saber más de VirtualBox."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "Bajar BOINC y VirtualBox"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "para %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "Descargar BOINC"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINC es un programa que le permite donar el tiempo en que su computador está inactivo a proyectos científicos como SETI at home, Climateprediction.net, Rosetta at home, World Community Grid y muchos otros."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "Tras instalar BOINC en su computador, puede conectarlo con tantos proyectos como quiera."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "Puede ejecutar este programa en un computador sólo si es de su propiedad o tiene permiso de su propietario."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "Le recomendamos que descargue BOINC de Google Play o Amazon Appstore, no de aquí."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Requisitos del sistema"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Notas de la versión"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Ayuda"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Todas las versiones"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr "Historial de las versiones"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "Computación con GPU"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: computar para la ciencia"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "La ayuda en línea de BOINC le permite hablar de forma individual con usuarios de BOINC con experiencia, que pueden: %s contestar a preguntas sobre BOINC y la computación voluntaria, %s guiarle en el proceso de instalar y usar BOINC, y %s resolver cualquier problema que pudiera tener."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "La ayuda en línea de BOINC está basada en %sSkype%s, un sistema de telefonía por Internet. Skype es gratuito (el programa y las llamadas). Si todavía no tiene Skype, %sdescárguelo e instálelo%s. Cuando haya terminado, vuelva a esta página."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "El mejor modo de obtener ayuda es por voz, para lo que necesita un micrófono y altavoces integrados en su computador o externos. Puede usar también el chat de texto de Skype o el correo electrónico normal (si no tiene Skype) para comunicarse con ayudantes voluntarios."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Hay disponibles voluntarios que hablan distintos idiomas. Elija un idioma:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Sea un ayudante voluntario"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Si es un usuario de BOINC con experiencia, le animamos a %sser ayudante voluntario%s. Es una estupenda manera de ayudar a la causa de la investigación científica y la computación voluntaria. ¡Y es interesante!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Si ya es ayudante voluntario: %spulse aquí%s para cambiar sus preferencias."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "Los ayudantes de BOINC son voluntarios no remunerados. Sus consejos no están avalados por BOINC o por la Universidad de California."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "%1Nunca%2 revele su email o contraseña a los ayudantes de BOINC."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Potencia de cálculo"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "Mejores 100 voluntarios"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Estadística"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "media de 24 horas:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOPS."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Activos:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "voluntarios,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "computadores.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "media de 24 horas:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOPS."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Noticias"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Base de datos no disponible; Por favor, inténtelo de nuevo más tarde."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Ayudar"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Use el tiempo en que su computador (Windows, Mac, Linux o Android) está inactivo para curar enfermedades, estudiar el calentamiento global, descubrir púlsares y muchos otros tipos de investigaciones científicas. Es seguro y fácil:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Descargar"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Documentación"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Para dispositivos Android, obtén la aplicación BOINC desde la Google Play Store; Para Kindle, obtenga de la Amazon App Store."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Puede optar por soportar %1proyectos%2 como %3, %4 y %5, entre muchos otros."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Si ejecuta varios proyectos, pruebe un %1administrador de cuentas%2 como %3GridRepublic%4 o %5BAM!%6."
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Aprende más:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Foros"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Proyectos"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Manual"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Complementos"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Enlaces"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Use el tiempo en que su computador (Windows, Mac, Linux o Android) está inactivo para curar enfermedades, estudiar el calentamiento global, descubrir púlsares y muchos otros tipos de investigaciones científicas. Es seguro y fácil:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Otras maneras de ayudar:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Elegir proyectos"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Visión general"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "Descargar BOINC"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Traducir"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Escriba una dirección de email y una contraseña."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Prueba"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "O, si ejecuta varios proyectos, pruebe un %sadministrador de cuentas%s, como %sGridRepublic%s o %sBAM!%s."
+#: doc/index.php:135
+msgid "Document"
+msgstr "Documento"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "Computar con BOINC"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Publicar"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Actualizaciones de programas"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Reportar errores"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Computación de alto rendimiento con BOINC"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1Científicos%2: utilizan BOINC para crear un %3proyecto de cómputo voluntario%4, otorgandole a usted la potencia de procesamiento de miles de CPUs y GPUs."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1Universidades%2: usen BOINC para crear un %3centro de supercomputación virtual del campus%4"
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Empresas%2: usen BOINC para la %3computación en red con ordenadores de sobremesa%4."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "Sobre BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Documentación"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Foros"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC y Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Desarrollo de programas"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC es una plataforma de software para la computación voluntaria. Incluye componentes cliente, servidor y web y API para conectar otros componentes."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Código fuente"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Construyendo BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Documentos de diseño"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Siempre estamos buscando programadores que nos ayuden a mantener y desarrollar BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Proceso de desarrollo"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Tareas de desarrollo"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC se distribuye bajo la licencia open-source LGPL."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "El proyecto BOINC"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC es un proyecto comunitario. Todos son bienvenidos a participar."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "Listas de correo"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "Eventos"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Código fuente"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Gráficos"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Gobernancia"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Ayuda en vivo vía Skype o correo electrónico"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Live Help obtenemos la ayuda individual de un usuario experimentado de BOINC, que puede responder preguntas sobre BOINC, ayudarle a instalar y utilizar BOINC y solucionar problemas."
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "APIs para complementos"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Puede comunicarse con un ayudante"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Programa de código abierto para computación voluntaria"
+#: doc/help.php:16
+msgid "by email"
+msgstr "por correo electrónico"
 
-#: projects.inc:19
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\npor voz, usando %1Skype%2, un sistema de telefonía por internet gratuito. Si todavía no tiene Skype, puede %3descargarlo e instalarlo ahora%4. Cuando haya terminado, regrese a esta página."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "usando Skype chat"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Voluntarios que hablan muchos idiomas están disponibles. Por favor, seleccione un idioma (el número de ayudantes se muestra):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Sea un ayudante voluntario"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Si es un usuario de BOINC con experiencia, le animamos a %sser ayudante voluntario%s. Es una estupenda manera de ayudar a la causa de la investigación científica y la computación voluntaria. ¡Y es interesante!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Si ya es ayudante voluntario: %spulse aquí%s para cambiar sus preferencias."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Los ayudantes de BOINC son voluntarios no remunerados. Su consejo no es respaldado por BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1Nunca%2 revele su email o contraseña a los ayudantes de BOINC."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Sensores distribuidos"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Universidad de Stanford"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Sismología"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "La Quake-Catcher Network está desarrollando la mayor red sísmica del mundo usando computadores con sensores en ordenadores y smartphones"
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network utiliza sensores conectados a computadoras y teléfonos inteligentes para detectar ondas sísmicas."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Fundación BOINC Polonia"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Investigación medioambiental"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Radioactive at Home está creando un mapa de niveles de radiación gratuito y conmtinuamente actualizado usando sensores conectados a los ordenadores de los voluntarios. Debes de comprar un sensor para participar."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Ciencia cognitiva e inteligencia artificial"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Ciencia Cognitiva"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home usa el modelado computacional de procesos cognitivos para entender mejor la mente humana, y específicamente para estudiar los mecánismos y procesos que permíten y moderan el desempeño humano y el aprendizaje."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Privado"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Independiente"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Inteligencia artificial"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -385,55 +492,55 @@ msgid ""
 "conversations."
 msgstr "Analiza sintáticamente y convierte redes semánticas para usarlas en FreeHAL, una inteligencia artificial que usa redes semánticas, lematizadores, bases de datos de categorías gramaticales y etiquetadores de categorías gramaticales con el fin de imitar el comportamiento humano en las conversaciones."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biología y medicina"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Fisiología médica"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home realiza simulaciones electrofisiológicas cardíacas, estudiando la actividad eléctrica del corazón."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Biología molecular"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World busca identificar, analizar, estructuralmente predecir y diseñar moléculas de ARN sobre la base de programas bioinformáticos establecidos."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "Colegio Universitario de Dublín"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Descubrimiento de medicamentos antimalaria"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "El parásito que causa la malaria sigue desarrollando resistencia a la medicación disponible. Por tanto, necesitamos descubrir con urgencia nuevos medicamentos, dirigidos a las proteínas del parásito. El proyecto FightNeglectedDiseases at Home está dirigido a encontrar esas proteínas."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "El parásito que causa la malaria continúa desarrollando resistencia a la medicación disponible. Por lo tanto, necesitamos urgentemente descubrir nuevos fármacos, dirigidos a nuevas proteínas en el parásito. El proyecto FiND at Home tiene como objetivo encontrar estos nuevos objetivos."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Universidad de Karlsruhe (Alemania)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Predicción de la estructura de las proteínas"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -442,15 +549,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME usa un enfoque computacional para predecir la estructura biológicamente activa de las proteínas, para entender los mecanismos del procesamiento de señales cuando las proteínas interactúan entre sí, para entender enfermedades relacionadas con el mal funcionamiento o agregación de las proteínas y para desarrollar nuevos medicamentos basados en las estructuras tridimensionales de proteínas importantes biológicamente."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Parque de Investigación Biomédica de Barcelona (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Simulaciones moleculares de proteínas"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -458,31 +565,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net abre nuevas posibilidades computacionales con el primer código de dinámica molecular a nivel atómico (CellMD) optimizado para ejecutarse en las GPU NVIDIA. De repente se han vuelto posibles nuevas aplicaciones biomédicas, lo que le da un nuevo papel a la biología computacional para la investigación biomédica."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Centro de Bioinformática y Biología Computacional de la Universidad de Maryland"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Investigaciones de las ciencias de la vida"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "The Lattice Project, desarrollado y administrado en la Universidad de Maryland, provee capacidad de cómputo a los investigadores alrededor del mundo, quienes estudian relaciones evolutivas utilizando ADN y secuencias de datos proteicos."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "El Instituto Tropical Suizo"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Epidemiología"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -493,15 +600,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "Los modelos de simulación de la dinámica de transmisión y efectos en la salud de la malaria son una herramienta importante para el control de esta enfermedad. Pueden usarse para determinar las estrategias óptimas para suministrar mosquiteras, quimioterapia o nuevas vacunas que están actualmente en desarrollo y pruebas. Esa modelización requiere mucha potencia de cálculo; se necesitan simulaciones de poblaciones humanas grandes con un conjunto diverso de parámetros relacionados co [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Universidad de Washington"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biología"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -511,19 +618,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "Determina las formas 3-dimensionales de proteínas en investigación que podrían culminar en el descubrimiento de curas para algunas de las enfermedades humanas más importantes. Al ejecutar Rosetta at home nos ayudará a acelerar y extender nuestra investigación en formas que simplemente no podríamos intentar sin su ayuda. Además estará apoyando nuestros esfuerzos en el diseño de nuevas proteínas para combatir enfermedades como el VIH, la malaria, el cáncer y el Alzheimer."
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Ciencias de la Tierra"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Universidad de Oxford"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Estudio del clima"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -535,25 +642,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "Investiga las aproximaciones que han de hacerse en los modelos climáticos más avanzados. Ejecutando el modelo miles de veces esperamos averiguar cómo responde a ligeros ajustes de estas aproximaciones (lo bastante pequeñas para no hacer las aproximaciones menos realistas). Esto nos permitirá mejorar nuestro conocimiento sobre la sensibilidad de nuestros modelos a cambios pequeños y también a cosas como cambios en el dióxido de carbono y en el ciclo del azufre. Esto nos permitirá  [...]
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Ciencias físicas"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Ingeniería mecánica"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "En la actualidad estamos calculando el diseño óptimo de una estructura llamada el armazón de 52 barras"
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomía"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -563,11 +661,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS es un proyecto astronómico que estudia 16 propiedades diferentes de las galaxias, incluyendo brillo, masa, cantidad de polvo y la rápidez de formación de las estrellas. Nosotros utilizamos su capacidad de procesamiento para conducir cálculos pixel por pixel en múltiples longitudes de onda (ultravioleta, luz visible y cercana al infrarojo) de imágenes de galaxias para producir un atlas que ayudará a los astrónomos a entender mejor el distante universo."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Astrofísica"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -575,57 +673,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "El objetivo del proyecto es derivar formas y giros de una parte significativa de la población de asteroides. Como datos de entrada, utilizamos cualquier fotometría de asteroides disponible. Los resultados son modelos de forma convexa de asteroides con la dirección del eje de giro y el punto de rotación."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Ciencia Aeroespacial e ingeniería"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Universidad de Illinois en Urbana-Champaign"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation es una plataforma para simulaciones aeroespaciales, incluyendo optimización de trayectoría de lanzadores, satélites y sondas, simulación de la exósfera cercana a la superficie de la Luna, y análisis de sistemas dinámicos de los rovers de exploración."
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Realiza simulaciones aeroespaciales"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "El objetivo de Cosmology at Home es buscar el modelo que describa mejor nuestro universo y encontrar la serie de modelos que concuerden con los datos astronómicos y de física de partículas disponibles."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home tiene como objetivo crear la primer base de datos de contenido estelar simulado del Universo, desde las primeras estrellas hasta los más exóticos hoyos negros binarios. "
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Investiga en física y astronomía"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Instituto Politécnico Rensselaer"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "El objetivo de Milkyway at Home es crear un modelo tridimensional de alta precisión de la Vía Láctea usando datos recolectados por el Sloan Digital Sky Survey."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Estudia la estructura de la Vía Láctea"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Universidad de Leiden, los Países Bajos"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Química"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -635,15 +728,15 @@ msgid ""
 "simulations through the grid."
 msgstr "Cálculos de ciencia de superficies usando dinámica clásica. Leiden Classical permite a voluntarios, estudiantes y otros científicos enviar sus cálculos personales a la red. Cada usuario tiene su propia cola personal de tareas de dinámica clásica. Los estudiantes han usado el grid de esta manera para simular argón líquido o comprobar la validez de la ley de los gases ideales haciendo simulaciones reales mediante la red."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Ayuda estudiantes a hacer simulaciones atómicas"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Univ. de Wisconsin-Milwaukee e Instituto Max Planck"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -652,19 +745,19 @@ msgid ""
 "international organizations."
 msgstr "Busca estrellas de neutrones en rotación (llamadas también púlsares) usando datos de los detectores de ondas gravitatorias LIGO y GEO, y del radiotelescopio de Arecibo. Einstein at Home es un proyecto del Año Mundial de la Física 2005 financiado por la Sociedad Estadounidense de Física y diversas organizaciones extranjeras."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "Ayuda a detectar púlsares y ondas gravitacionales"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Organización Europea para la Investigación Nuclear)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Física"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -673,22 +766,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "El Gran Colisionador de Hadrones (LHC, por sus siglas en inglés) es un acelerador de partículas del CERN, la Organización Europea para la Investigación Nuclear, el mayor laboratorio de física de partículas del mundo. Es el instrumento más potente jamás construido para investigar las propiedades de las partículas. LHC at home ejecuta simulaciones para mejorar el diseño del LHC y sus detectores."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "Mejora el diseño del Gran Colisionador de Hadrones"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "Este proyecto utiliza tecnología de máquinas virtuales desarrollada por el CERN para la simulación de eventos del LHC en los ordenadores de los voluntarios. Requiere que instale VirtualBox en su ordenador."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Simula colisiones de partículas de alta energía"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -696,19 +789,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home usa el cómputo de voluntarios para ejecutar simulaciones para ATLAS, un experimento de física de partículas en el Gran Colisionador de Hadrones en CERN. ATLAS busca nuevas partículas y procesos utilizando colisiones frontales de protones de altísima energía."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "Simula colisiones de partículas de alta energía para CERN"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Universidad de California en Berkeley"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrofísica y astrobiología"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -717,106 +810,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "La búsqueda de inteligencia extraterrestre (SETI, por sus siglas en inglés) es un campo científico cuyo objetivo es detectar vida inteligente fuera de la Tierra. Un enfoque, conocido como radioSETI, usa radiotelescopios para escuchar señales de radio del espacio de banda estrecha. No se conocen señales de ese tipo que ocurran de forma natural, por lo que una detección nos daría una evidencia de tecnología extraterrestre."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "Busca evidencia de vida extraterrestre"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Varias aplicaciones"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "Biología molecular, Ciencias Computacionales"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "The Citizen Science Grid se dedica a apoyar un amplio campo de investigación y proyectos educativos utilizando cómputo voluntario y ciencia ciudadana."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "Apoya la ciencia desde la Universidad de Dakota del Norte"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Academia China de las Ciencias"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Física, bioquímica y otros"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "El objetivo de CAS at home is fomentar y ayudar a los científicos de China a adoptar las tecnologías de la computación voluntaria y el pensamiento voluntario para sus investigaciones."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home es organizado por el Centro de Informática del Instituto de Física de Altas Energías (IHEP) de la Academia China de Ciencias, para científicos chinos con proyectos de estructura de proteínas, nanotecnología, genómica del cáncer y física de alta energía."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Ayuda a investigadores chinos"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Matemáticas, física y evolución"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home es un adaptador entre BOINC y varios proyectos de computación voluntaria existentes: ECM, Muon, Evolution at home y distributed.net"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "Investiga en matemáticas, física, y evolución"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "Laboratorio MTA-SZTAKI de Sistemas Paralelos y Distribuidos (Hungría)"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Proyectos de investigación europeos"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "El proyecto EDGeS at Home Beta integra la computación voluntaria en la red de grids de servicio de Europa permitiendo a los grids de servicio enviar tareas para que las procesen los voluntarios del proyecto. Los proyectos científicos que cubre EDGeS at Home son de matemáticas, física, biología, etc."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Ayuda a investigadores europeos"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Universidades y centros de investigación españoles"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Varios proyectos de investigación españoles"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Investigación en física, ciencia de materiales y biomedicina"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "Ayuda a investigadores españoles"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "Ciudadanía Corporativa de IBM"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Investigación humanitaria en medicina, medio ambiente y otros campos"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -824,20 +898,20 @@ msgid ""
 "clean water and many more."
 msgstr "Desarrollar investigaciones cruciales sin ánimo de lucro sobre algunos de los problemas más acuciantes de la humanidad creando la mayor red de computación voluntaria del mundo. Los campos de investigación incluyen el SIDA-VIH, el cáncer, las enfermedades tropicales y olvidadas, la energía solar, la depuración del agua y muchos otros."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "Lleva a cabo investigaciones biomédicas y ambientales"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Matemáticas, computación y juegos"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Matemáticas"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -847,64 +921,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home busca campos de propiedades especiales. La aplicación primaria de esta investigación es en el campo de la teoría algebraica de números. Los teóricos de números pueden minar los datos en búsqueda de patrones interesantes para ayudarles a formular conjeturas sobre campos numéricos. Finalmente, esta investigación llevará a adentrarse más en una comprensión de las propiedades más profundas de los números, los bloques básicos de construcción de todas las matemáticas."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "Investiga la teoría algebraica de números"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Informática"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "Resuelve problemas difíciles y importantes a la práctica (funciones discretas problemas de inversión, optimización discreta, bioinformática, etc.) que se puede reducir de manera efectiva a un problema satisfacibilidad Boole."
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Estudia la complejidad computacional"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Criptografía y combinatoria"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "Ejecuta aplicaciones desde distributed.net"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Criptografía"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Intenta descifrar tres mensajes originales de Enigma. Las señales se interceptaron en el Atlántico Norte en 1942 y se cree que están por descifrar."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "Decodifica mensajes submarinos de la Segunda Guerra Mundial"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Estudia la Conjetura de Collatz, una conjetura matemática no resuelta"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "Estudia la Conjetura de Collatz"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "Universidad Estatal de California Fullerton"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Factorización de enteros grandes"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -914,56 +988,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home es un proyecto de investigación que usa computadores conectados con Internet para hacer el paso del cribado de red en la factorización de enteros grandes mediante la criba de cuerpos numéricos. Seguramente usted tuvo su primera experiencia con la descomposición de enteros en factores primos cuando estudiaba en la escuela primaria, haciendo descomposiciones como  15 = 3 * 5 o 35 = 5 * 7. NFS at Home es una continuación de esa experiencia, sólo que con enteros de cientos de cifras."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "Estudia la factorización de enteros grandes"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid tiene muchos proyectos, que buscan números primos muy grandes de distintos tipos, incluida la búsqueda del mayor número primo conocido."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Busca números primos grandes"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Universidad Hochschule RheinMain de Ciencias Aplicadas"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Busca contraejemplos de dos conjeturas relacionadas con la identificación de números primos"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Estudia las propiedades los números primos"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "Laboratorio MTA-SZTAKI de Sistemas Paralelos y Distribuidos (Hungría)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Encontrar todos los sistemas numéricos binarios generalizados (en los que las bases son matrices y las cifras son vectores) hasta la dimensión 11."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Estudia la teoría de números"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "Prueba y comparación de métodos heurísticos para obtener separaciones de algorítmos paralelos que trabajan en un sistema CAD para el diseño de sistemas lógicos de control"
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Comentar"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discusión"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Las noticias están disponibles en formato %sRSS feed%s"
diff --git a/locale/fa/BOINC-Project-Generic.po b/locale/fa/BOINC-Project-Generic.po
deleted file mode 100644
index 2d81fe8..0000000
--- a/locale/fa/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6428 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2012-11-13 16:40 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: fa\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:624
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/forum_forum.php:71
-#: ../user/sample_index.php:119
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/forum_forum.php:73 ../user/sample_index.php:118
-#: ../project.sample/project.inc:47
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:681
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:690
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1174 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:622 ../inc/forum.inc:627 ../inc/forum.inc:726
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/user.inc:329 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:624
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:627
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:630 ../inc/prefs.inc:690 ../inc/prefs.inc:692
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:630
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:636
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:639
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:684 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:684
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:707
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:728
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:746
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:757
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:779
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1054 ../user/forum_thread.php:187
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1054
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1056 ../user/forum_thread.php:193
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1056
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1061 ../user/forum_thread.php:226
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1061
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1066
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1073
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1077
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1082
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1115
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1125
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1132
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1139
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1144
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1172
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1173 ../inc/team.inc:120 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1175 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../inc/team.inc:120 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1234
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1239
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1250
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:55 ../inc/prefs.inc:625 ../inc/prefs.inc:1030
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:627 ../inc/prefs.inc:1031
-#: ../user/server_status.php:319
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:626 ../inc/prefs.inc:1032
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:83
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:87 ../inc/host.inc:92
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:87
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:92
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:98 ../inc/host.inc:645 ../inc/result.inc:614
-#: ../inc/team.inc:202 ../inc/team.inc:350 ../inc/user.inc:200
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-#: ../user/team_admins.php:62 ../user/team_change_founder_form.php:77
-#: ../user/team_email_list.php:64 ../user/top_users.php:49
-#: ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:102 ../inc/host.inc:104 ../inc/host.inc:216
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:104 ../inc/host.inc:333
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/result.inc:616
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:109 ../inc/host.inc:220 ../inc/host.inc:225
-#: ../inc/host.inc:654 ../inc/team.inc:94 ../inc/team.inc:207
-#: ../inc/team.inc:212 ../inc/team.inc:214 ../inc/team.inc:356
-#: ../inc/team.inc:361 ../inc/user.inc:122 ../inc/user.inc:136
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:110 ../inc/user.inc:122 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:112
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:114
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:115
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:117
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:119 ../inc/host.inc:660
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:122 ../inc/host.inc:229
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:126
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:134
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:137
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:137 ../inc/host.inc:140
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:144
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:144 ../inc/host.inc:147
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:147
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:153
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:158
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:153 ../inc/host.inc:160 ../inc/result.inc:207
-#: ../inc/result.inc:217 ../inc/result.inc:235 ../inc/result.inc:253
-#: ../inc/result.inc:269 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:29
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:158 ../inc/host.inc:160
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/host_app_versions.php:64
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:164
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:165
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:175 ../inc/host.inc:317 ../inc/user.inc:153
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:179 ../inc/host.inc:200
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:180
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:181
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:183
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:185
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:187
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:190
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:192 ../inc/host.inc:647
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:194
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:201 ../inc/host.inc:662
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:214
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:215 ../inc/host.inc:649 ../inc/team.inc:349
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:219 ../inc/host.inc:652
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:224 ../inc/team.inc:95 ../inc/team.inc:208
-#: ../inc/team.inc:217 ../inc/team.inc:219 ../inc/team.inc:355
-#: ../inc/team.inc:360 ../inc/user.inc:137
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/host.inc:657 ../inc/result.inc:47
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:231 ../inc/host.inc:658
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:232
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:296
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:316
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:321
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:493
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:500
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:506
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:573
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:576
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:579
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:596
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:600
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:605
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:607
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:642 ../inc/result.inc:623
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:655
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:711 ../user/merge_by_name.php:67
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:59 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:76
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:84
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:90
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:98
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:100 ../inc/prefs.inc:109 ../inc/prefs.inc:143
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:104
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:113
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:121
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:129
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:138
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:146
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:148
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:152
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:157
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:161
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:166
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:174 ../inc/prefs.inc:188
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:176 ../inc/prefs.inc:185
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:179
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:190 ../inc/prefs.inc:200 ../inc/prefs.inc:205
-#: ../inc/prefs.inc:210
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:193
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:195
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:198
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:203
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:208
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:217
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:222 ../inc/prefs.inc:227 ../inc/prefs.inc:269
-#: ../inc/util.inc:264
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:225
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:231
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:240
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:248
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:250 ../inc/prefs.inc:255
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:253
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:258
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:262
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:268
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:273
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:286
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:297
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:307
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:319
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:331
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:345
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:354
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:361
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:375
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:376
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:379
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:382
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:431
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:437
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1007
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1009
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:664 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:689 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:691 ../inc/prefs.inc:819
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:797 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:808
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:818 ../inc/prefs.inc:896
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:824
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:832 ../inc/prefs.inc:877
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:834 ../inc/prefs.inc:880
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:889
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:856 ../user/add_venue.php:43 ../user/add_venue.php:67
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:870
-msgid ""
-"These apply to all BOINC projects in which you participate.<br>\n"
-"             On computers participating in multiple projects, the most "
-"recently modified preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:874
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:926
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:930
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1018 ../inc/prefs.inc:1027
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:192
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:196
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:210
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:218 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:261
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:263
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:267
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:34
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:48
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:49 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:56
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:82
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:105 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:106 ../inc/result.inc:167 ../inc/result.inc:214
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:107
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:108
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:109 ../inc/result.inc:259
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:110 ../inc/result.inc:262
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:111 ../inc/result.inc:200
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:165 ../inc/result.inc:212 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:166 ../inc/result.inc:213 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:172
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:173
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:174
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:175
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:176
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:177
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:179
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:180 ../inc/result.inc:224 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:185 ../inc/result.inc:248
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:190
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:193
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:195
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:196
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:197 ../inc/result.inc:250
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:198 ../inc/result.inc:251
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:201
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:202 ../inc/result.inc:231 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:203 ../inc/result.inc:232 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:204 ../inc/result.inc:233
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:215 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:223 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:227
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:229
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:230 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:240 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:241 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:242
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:243
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:244 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:245 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:258
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:264
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:265
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:266
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:293
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:297
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:301
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:305
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:309
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:313
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:340 ../inc/result.inc:345 ../inc/result.inc:348
-#: ../inc/result.inc:351
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:345
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:348
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:351
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:357 ../inc/result.inc:617
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:358
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:359
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:361 ../user/server_status.php:246
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:362
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:363
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:364 ../inc/result.inc:628
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:365 ../inc/result.inc:710
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:615
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:618
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:619
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:620
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:621
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:622
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:624
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:625
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:626
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:627
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:642
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:645
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:692
-msgid "State"
-msgstr ""
-
-#: ../inc/team.inc:33
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:36 ../inc/team.inc:114 ../inc/team.inc:225
-#: ../inc/team.inc:365 ../inc/team.inc:449 ../inc/user.inc:206
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:106 ../user/edit_user_info_form.php:40
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:42 ../inc/team.inc:447
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:44
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:45 ../user/profile_menu.php:77 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:54
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:56
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:65 ../inc/team.inc:549 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:70
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:80
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:82 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:90
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:112
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:115 ../inc/team.inc:366 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:119 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:120 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:128
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:129
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:132
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:139
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:144
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:148 ../inc/team.inc:351
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:149 ../inc/team.inc:246
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:161
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:176
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:177
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:177 ../inc/team.inc:178 ../inc/team.inc:179
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:178
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:179
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:248
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:269 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:273 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:281
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:294
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:318
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:415
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:426
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:427
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:430
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:432 ../inc/team.inc:442
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:437
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:440
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:456
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:27
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:116
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:118
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:146
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../user/pending.php:64
-msgid "Pending credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../inc/user.inc:152 ../inc/user.inc:153
-#: ../inc/user.inc:218 ../inc/user.inc:243 ../inc/user.inc:327
-#: ../inc/user.inc:402 ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:152
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:164
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:166 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:168
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:170
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:184
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:199
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:201 ../user/edit_passwd_form.php:48
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:204 ../inc/user.inc:321
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:207
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:208 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:212
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:214 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:214
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:217 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:222
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:226
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:229
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:230 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:233
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:234 ../user/prefs.php:32
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:240 ../user/sample_index.php:114
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:504
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:327 ../inc/user.inc:329 ../user/server_status.php:396
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:336
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:122
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:124
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:194 ../user/login_form.php:37 ../user/login_form.php:62
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:195 ../user/create_account_form.php:38
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:196
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:238
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:247
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:267
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:270
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:273
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:434
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:503
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:559
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:770
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:773
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:791
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:792
-msgid "Error:"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:129 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:106
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:85
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/sample_index.php:109
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:49
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:38 ../user/create_account_action.php:40
-#: ../user/create_account_form.php:43
-msgid "Account creation is disabled"
-msgstr ""
-
-#: ../user/create_account_action.php:41
-msgid ""
-"Sorry, this project has disabled the creation of new accounts.\n"
-"Please try again later."
-msgstr ""
-
-#: ../user/create_account_action.php:53
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:77
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:80
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:91
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:95
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:108 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:113 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:134
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid "Account creation is currently disabled. Please try again later."
-msgstr ""
-
-#: ../user/create_account_form.php:53
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:69
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:100 ../user/edit_email_form.php:48
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:101
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:104
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:121
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:127
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:55 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:28 ../user/edit_email_form.php:52
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:39
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:49
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:28
-#: ../user/edit_passwd_form.php:58
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:44
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:45
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:51
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:52
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:56
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:57
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:29
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:34
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:37
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:45
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:49
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:31
-msgid ""
-"This project hasn\\'t created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:34
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:38
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:40
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:57
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:60
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:156
-#: ../user/forum_thread.php:272
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:127
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:136
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:157 ../user/forum_thread.php:273
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:169
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:170
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:176
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:177
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:188
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:194
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:200
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:201
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:206
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:207
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:213
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:214
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:219
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:220
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:227
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:232
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:233
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:243
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:244
-msgid "Export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:249
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:250
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:258 ../user/forum_thread.php:260
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-"<b>C:\\Program Files\\BOINC</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:182 ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/home.php:49 ../project.sample/project.inc:47
-msgid "Your account"
-msgstr ""
-
-#: ../user/host_app_versions.php:26
-msgid "nvidia GPU"
-msgstr ""
-
-#: ../user/host_app_versions.php:36
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:39
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:42
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:44
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:46
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:55
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:62
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:71
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:24 ../user/sample_index.php:74
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:44
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:70
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:75
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:80
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:82
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:86
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:92
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:94
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:110
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:57
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:63
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:33
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:45
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:74
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:78
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:84
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:85
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:79
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:97
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:35
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:44
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:51
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:55
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:57
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35 ../user/sample_index.php:116
-msgid "Profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:38
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:39
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:40
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:45
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:58
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:63
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:67
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:73
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:30
-msgid "No such task"
-msgstr ""
-
-#: ../user/result.php:32
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:102
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/sample_index.php:180
-msgid "User of the day"
-msgstr ""
-
-#: ../user/server_status.php:91
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:94
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:236
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:238
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:244
-msgid "Server status"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:257
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:263
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:266
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:300
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:301
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:302
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:304
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:308
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:314
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:331
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:336 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:356
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:373
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:380
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:398
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:403
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:392 ../user/server_status.php:408
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:414
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:423
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:426 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:428
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:429
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:430
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:30 ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:179
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:98
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:100
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:104
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:110 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:35
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:47
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:180
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:182
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:187
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:47
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:49
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:52
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:95
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/fa_IR/BOINC-Client.mo b/locale/fa_IR/BOINC-Client.mo
new file mode 100644
index 0000000..b663d61
Binary files /dev/null and b/locale/fa_IR/BOINC-Client.mo differ
diff --git a/locale/fa_IR/BOINC-Client.po b/locale/fa_IR/BOINC-Client.po
new file mode 100644
index 0000000..e05a97e
--- /dev/null
+++ b/locale/fa_IR/BOINC-Client.po
@@ -0,0 +1,163 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Ali Vakilzadeh <ali.vakilzadeh at gmail.com>, 2016
+# Amir H. Firouzian, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-10-15 22:25-0700\n"
+"PO-Revision-Date: 2016-04-30 07:39+0000\n"
+"Last-Translator: Ali Vakilzadeh <ali.vakilzadeh at gmail.com>\n"
+"Language-Team: Persian (Iran) (http://www.transifex.com/boinc/boinc/language/fa_IR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa_IR\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: acct_mgr.cpp:450 acct_mgr.cpp:459
+msgid "Message from account manager"
+msgstr "پیام از طرف مدیر حسابها"
+
+#: client_msgs.cpp:81
+msgid "Message from server"
+msgstr "پیام از طرف سرور"
+
+#: client_state.cpp:258
+msgid ""
+"Some tasks need more memory than allowed by your preferences.  Please check "
+"the preferences."
+msgstr "بعضی از وظائف نیاز به حافظه ای بیش از آنچه در تنظیمات ثبت شده دارند. لطفاً تنظیمات خود را بررسی فرمایید."
+
+#: client_state.cpp:520
+msgid "Couldn't write state file; check directory permissions"
+msgstr "قادر به ضبط فایل وضعیت نیستم. لطفاً مجوزهای دایرکتوری مربوطه را بررسی فرمایید."
+
+#: cs_cmdline.cpp:303
+msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
+msgstr "متغیر محیطی HTTP_PROXY بایستی به یک پروکسی از نوع HTTP اشاره نماید."
+
+#: cs_scheduler.cpp:613
+#, c-format
+msgid ""
+"You used the wrong URL for this project.  When convenient, remove this "
+"project, then add %s"
+msgstr "شما آدرس URL اشتباهی را برای این پروژه استفاده نموده اید. در زمان مناسب، پروژه را حذف و سپس %s را اضافه نمایید."
+
+#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+msgid "Syntax error in app_info.xml"
+msgstr "خطای ترکیب بندی در فایل app_info.xml"
+
+#: cs_statefile.cpp:868
+msgid "File referenced in app_info.xml does not exist: "
+msgstr "فایلی در app_info.xml مورد ارجاع قرار گرفته که وجود خارجی ندارد."
+
+#: current_version.cpp:91
+msgid "A new version of BOINC is available."
+msgstr "نسخه جدید BOINC قابل دریافت است."
+
+#: current_version.cpp:94 current_version.cpp:102
+msgid "Download"
+msgstr "بارگذاری"
+
+#: log_flags.cpp:269 log_flags.cpp:449
+msgid "Unexpected text in cc_config.xml"
+msgstr "متن غیر منتظره در فایل cc_config.xml"
+
+#: log_flags.cpp:423 log_flags.cpp:475
+msgid "Unrecognized tag in cc_config.xml"
+msgstr "برچسب غیر منتظره در فایل cc_config.xml"
+
+#: log_flags.cpp:440
+msgid "Missing start tag in cc_config.xml"
+msgstr "برچسب شروع در فایل cc_config.xml از قلم افتاده است."
+
+#: log_flags.cpp:465
+msgid "Error in cc_config.xml options"
+msgstr "خطا در انتخابهای فایل cc_config.xml"
+
+#: log_flags.cpp:483
+msgid "Missing end tag in cc_config.xml"
+msgstr "برچسب انتها در فایل cc_config.xml از قلم افتاده است."
+
+#: ../sched/handle_request.cpp:307
+msgid "Invalid or missing account key.  To fix, remove and add this project."
+msgstr "کلید حساب خراب یا مفقود شده است. برای اصلاح مشکل، این پروژه را حذف و مجددا اضافه فرمایید."
+
+#: ../sched/handle_request.cpp:849
+msgid "Invalid code signing key.  To fix, remove and add this project."
+msgstr "کلید امضای کد خراب است. برای اصلاح مشکل، این پروژه را حذف و مجدداً اضافه فرمایید."
+
+#: ../sched/handle_request.cpp:859
+msgid ""
+"The project has changed its security key.  Please remove and add this "
+"project."
+msgstr "این پروژه کلید امنیتی خود را تغییر داده است. لطفاً پروژه را حذف و دوباره اضافه نمایید."
+
+#: ../sched/handle_request.cpp:943
+msgid "This project doesn't support operating system"
+msgstr "این پروژه، محیط سیستم عامل شما را حمایت نمی کند."
+
+#: ../sched/handle_request.cpp:969
+msgid "This project doesn't support CPU type"
+msgstr "این پروژه از پردازندهء شما حمایت نمی کند."
+
+#: ../sched/handle_request.cpp:993
+msgid ""
+"Your BOINC client software is too old.  Please install the current version."
+msgstr "نرم افزار کلاینت BOINC شما خیلی قدیمی شده. لطفاً نسخهء به روز شده را نصب نمایید."
+
+#: ../sched/handle_request.cpp:1259
+msgid "This project doesn't support computers of type"
+msgstr "این پروژه قادر به حمایت نیست از کامپیوتر نوع:"
+
+#: ../sched/sched_send.cpp:1092
+msgid ""
+"Upgrade to the latest driver to process tasks using your computer's GPU"
+msgstr "برای استفاده از GPU لطفاً داریور مربوطه را به بالاترین نسخهء ممکن به روز رسانی کنید."
+
+#: ../sched/sched_send.cpp:1099
+msgid ""
+"Upgrade to the latest driver to use all of this project's GPU applications"
+msgstr "برای استفاده همهء اپ های پروژه از GPU، درایور مربوطه را به بالاترین نسخه به روز رسانی کنید."
+
+#: ../sched/sched_send.cpp:1118
+msgid ""
+"A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
+" the current version"
+msgstr "برای استفاده از NVIDIA GPU نسخهء بالاتری از BOINC لازم دارید. لطفا به نسخهء جدید به روز رسانی فرمایید."
+
+#: ../sched/sched_send.cpp:1146
+#, c-format
+msgid "An %s GPU is required to run tasks for this project"
+msgstr "یک پردازندهء GPU %s برای اجرای وظایف این پروژه لازم است."
+
+#: ../sched/sched_send.cpp:1262
+msgid "No tasks are available for the applications you have selected."
+msgstr "برای اپ انتخاب شدهء شما هیچ وظیفه ای در دسترس نیست."
+
+#: ../sched/sched_send.cpp:1288
+msgid "Your computer type is not supported by this project"
+msgstr "نوع رایانهء شما مورد حمایت این پروژه نیست."
+
+#: ../sched/sched_send.cpp:1294
+msgid "Newer BOINC version required; please install current version"
+msgstr "نسخهء جدیدتر BOINC لازم است. لطفاً به روز رسانی فرمایید."
+
+#: ../sched/sched_send.cpp:1305
+#, c-format
+msgid ""
+"Tasks for %s are available, but your preferences are set to not accept them"
+msgstr "وظایفی برای %s در دسترس هست اما تنظیمات شما در راستای نپذیرفتن آن است. خود دانید."
+
+#: ../sched/sched_types.cpp:254
+msgid "Unknown app name in app_info.xml"
+msgstr "نام اپ ذکر شده در app_info.xml ناشناس است."
+
+#: ../sched/sched_version.cpp:214
+msgid "Your app_info.xml file doesn't have a usable version of"
+msgstr "فایل app_info.xml شما نسخه ء قابل استفاده ای ندارد از:"
diff --git a/locale/fi/BOINC-Client.mo b/locale/fi/BOINC-Client.mo
index 454b65e..482b542 100644
Binary files a/locale/fi/BOINC-Client.mo and b/locale/fi/BOINC-Client.mo differ
diff --git a/locale/fi/BOINC-Client.po b/locale/fi/BOINC-Client.po
index a394515..f39df1b 100644
--- a/locale/fi/BOINC-Client.po
+++ b/locale/fi/BOINC-Client.po
@@ -4,15 +4,15 @@
 # 
 # Translators:
 # Sami Nordlund <sami.nordlund at kolumbus.fi>, 2015
-# Vesa Nilakari, 2015
+# Kasvain <kasvain at gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-03-14 11:42+0000\n"
+"PO-Revision-Date: 2015-03-14 11:47+0000\n"
 "Last-Translator: Sami Nordlund <sami.nordlund at kolumbus.fi>\n"
-"Language-Team: Finnish (http://www.transifex.com/projects/p/boinc/language/fi/)\n"
+"Language-Team: Finnish (http://www.transifex.com/boinc/boinc/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -39,7 +39,7 @@ msgstr "Tilatiedoston kirjoitus ei onnistu, tarkista kansion käyttöoikeudet"
 
 #: cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-msgstr "HTTP_PROXY-ympäristömuuttujalle pitää määritellä HTTP-välityspalvelin"
+msgstr "HTTP_PROXY ympäristömuuttujalle pitää määritellä HTTP proxy"
 
 #: cs_scheduler.cpp:613
 #, c-format
@@ -86,11 +86,11 @@ msgstr "Puuttuva loppumerkki tiedostossa cc_config.xml"
 
 #: ../sched/handle_request.cpp:307
 msgid "Invalid or missing account key.  To fix, remove and add this project."
-msgstr "Väärä tai puuttuva tiliavain.  Kokeile poistaa projekti ja lisätä se uudelleen."
+msgstr "Väärä tai puuttuva tiliavain.  Poista projekti ja lisää se uudelleen."
 
 #: ../sched/handle_request.cpp:849
 msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Virheellinen varmenneavain.  Kokeile poistaa projekti ja lisätä se uudelleen."
+msgstr "Virheellinen varmenneavain.  Poistaa projekti ja lisää se uudelleen."
 
 #: ../sched/handle_request.cpp:859
 msgid ""
@@ -118,12 +118,12 @@ msgstr "Tämä projekti ei tue tietokonetyyppejä"
 #: ../sched/sched_send.cpp:1092
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr "Päivitä tuoreimpaan ajuriin käyttääksesi tietokoneen GPUta laskennassa"
+msgstr "Päivitä uusimpaan ajuriin käyttääksesi tietokoneen GPUta laskennassa"
 
 #: ../sched/sched_send.cpp:1099
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
-msgstr "Päivitä tuoreimpaan ajuriin käyttääksesi projektin kaikkia GPU-sovelluksia"
+msgstr "Päivitä uusimpaan ajuriin käyttääksesi projektin kaikkia GPU-sovelluksia"
 
 #: ../sched/sched_send.cpp:1118
 msgid ""
diff --git a/locale/fi/BOINC-Project-Generic.po b/locale/fi/BOINC-Project-Generic.po
deleted file mode 100755
index c3c1fc5..0000000
--- a/locale/fi/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,7149 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-06-22 06:09+0000\n"
-"Last-Translator: Sami Nordlund <sami.nordlund at kolumbus.fi>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: fi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1403417349.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Lihavoitu teksti: [b]teksti[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kursivoitu teksti: [i]teksti[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Alleviivattu teksti: [u]teksti[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Lainattu teksti: [quote]teksti[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Koodin näyttö: [code]koodi[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Listaus: [list]teksti[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Numeroitu listaus: [list=]teksti[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Liitä kuva: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Liitä URL: [url]http://url[/url] tai [url=http://url]URL teksti[/url]  "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Fontin väri"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Fontin väri: [color=red]teksti[/color]  Vinkki: voit myös käyttää "
-"color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Oletus"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Tummanpunainen"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Punainen"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Oranssi"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Ruskea"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Keltainen"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Vihreä"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliivinvihreä"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Syaani"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Sininen"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Tummansininen"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indigon sininen"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Violetti"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Fontin koko"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Fontin koko: [size=x-small]pieni teksti[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Pieni"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normaali"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Suuri"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Sulje kaikki avoimet bbCode -tagit"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Sulje tagit"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Vanhin ensin"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Uusin ensin"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Eniten arvioidut viestit ensin"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Uusin viesti ensin"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Eniten katsottu ensin"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Eniten viestejä ensin"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Etsi sanoja foorumin viesteistä"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Hae foorumeista"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Tarkennettu haku"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Yksityisviestit"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Kysymykset ja vastaukset"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Keskustelupalstat"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 keskustelupalsta"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Edellinen"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Seuraava"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Kirjoittaja"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Viesti"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Lähetä viesti"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Lähetä yksityisviesti käyttäjälle %1"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Liitytty: %1"
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Viestit: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Pisteet: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Et ole vielä lukenut tätä viestiä"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Lukematon"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Viesti %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "piilotettu"
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Lähetetty: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr " - vastauksena viestiin "
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Muokkaa"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Muokkaa tätä viestiä"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Muokattu viimeksi: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Viesti ei näy, koska lähettäjä on \"älä huomioi\" listallasi.  Napsauta %"
-"1tästä%2 katsoaksesi viestiä"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Raportoi tämä viesti loukkaavana"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Raportoi loukkaavana"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Arviointi: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "arvioi: "
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Napsauta jos pidät tästä viestistä"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Arvioi +"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Napsauta jos et pidä tästä viestistä"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Arvioi -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Vastaa"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Kirjoita vastaus tähän viestiin"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Lainaa"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Kirjoita vastaus lainaamalla viestiä"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Moderaattorin piilottama"
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Kirjoitettu %1 jäsen %2"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Et voi lähettää tai arvioida viestejä ennen %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Viestien tulee olla lapsille sopivia: ne eivät saa sisältää\n"
-"            aineistoa, joka on ruokotonta, vihaavaa,\n"
-"            seksuaalista tai vihjailevaa.\n"
-"        <li> Ei kaupallista mainontaa.\n"
-"        <li> Ei linkkejä sivuille, joilla on eroottista,\n"
-"            uhkapeli- tai suvaitsematonta aineistoa.\n"
-"        <li> Ei viestejä, joiden on tarkoitus ärsyttää tai vastustaa muita "
-"ihmisiä\n"
-"            tai kaapata viestiketju.\n"
-"        <li> Ei viestejä, jotka ovat tarkoituksella vihaavia tai loukkaavia.\n"
-"        <li> Ei loukkaavia kommentteja koskien rotua, uskontoa,\n"
-"            kansallisuutta, sukupuolta, yhteiskuntaluokkaa tai "
-"seksuaalisuutta.\n"
-"        "
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Säännöt:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Lisätiedot"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Poista piilotus"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Poista tämän viestin piilotus"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Piilota"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Piilota tämä viesti"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Siirrä"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Siirrä tämä viesti toiseen viestiketjuun"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Torju kirjoittaja"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Äänestä, että kirjoittaja torjutaan"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Äänestä, ettei kirjoittajaa torjuta"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Aloita äänestys kirjoittajan torjumiseksi"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "Vain tiimin jäsenet voivat kirjoittaa tiimin keskustelupalstalle"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Uuden viestiketjun aloittamiseksi tällä palstalla (%1) sinulla pitää olla "
-"tietty määrä pisteitä. Tällä pyritään estämään järjestelmän väärinkäytökset."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Et voi juuri nyt lisätä viestiketjuja. Odota hetken aikaa ennen kuin yrität "
-"uudelleen. Viive johtuu pyrkimyksestä estää järjestelmän väärinkäytökset."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Tämä viestiketju on lukittu. Ainoastaan foorumin moderaattorit ja "
-"ylläpitäjät voivat kirjoittaa viestejä ketjuun."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Piilotettuun ketjuun ei voi kirjoittaa."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Viestiketju"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Viestit"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Katsottu"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Viimeisin viesti"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Uudet viestit viestiketjussa %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Uudet viestit tilatussa viestiketjussa"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Viestiketjussa \"%1\" on uusia viestejä"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Merkitse kaikki ketjut luetuiksi"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Merkitse kaikkien palstojen kaikki viestiketjut luetuiksi."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Ei konetta"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Ei saatavissa"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Koti"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Työ"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Koulu"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mobiili"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Päivitä"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Tietokoneen tiedot"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP-osoite"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(sama viimeiset %1 kertaa)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Ulkoinen IP-osoite"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Näytä IP-osoite"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Domain-nimi"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr "Tuotenimi"
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Paikallinen normaaliaika"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 tuntia"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Omistaja"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonyymi"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Luotu"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Kokonaispisteet"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Keskim. pisteet"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Projektikohtaiset pisteet"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Keskusyksikön tyyppi"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Prosessorien lkm"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Apusuorittimet"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Käyttöjärjestelmä"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINCin versio"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Muistia"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 Mt"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Välimuisti"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 Kt"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Näennäismuisti"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Kokonaislevytila"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 Gt"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Vapaa levytila"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Mitattu liukulukulaskennan nopeus"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 miljoonaa laskutoimitusta sekunnissa"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Mitattu kokonaislukulaskennan nopeus"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Keskimääräinen lähetysnopeus"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 Kt/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Tuntematon"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Keskimääräinen latausnopeus"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Keskimääräinen läpimenoaika"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 päivää"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Sovellustiedot"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Näytä"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Tehtäviä"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Ohjelman yhteydenottokertojen määrä palvelimeen"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Viimeksi ollut yhteydessä palvelimeen"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% ajasta, jolloin BOINC on käynnissä"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "BOINCin ollessa käynnissä on internetyhteys käytössä % ajasta"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "BOINCin ollessa käynnissä on laskenta sallittu % ajasta"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Keskimääräinen CPU-tehokkuus"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Korjauskerroin tehtävän kestolle"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Sijainti"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Poista tämä tietokone"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Sulauta tämän tietokoneen duplikaattitiedot"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Sulauta"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Viimeksi yhteydessä"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Tietokoneen tiedot"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Sija"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Keskim. pisteet"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Lähiajan keskim. pisteet"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU (näytönohjain)"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Käyttöjärjestelmä"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 prosessoria)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Lisätiedot"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Projektikohtaiset tilastot:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Koneella %1 on päällekkäinen käyttöaika:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Koneella %1 ei ole yhteensopivaa käyttöjärjestelmää:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Koneella %1 ei ole yhteensopivaa suoritinta:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "sama kone"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-"Konetta %1 ei voi sulauttaa koneen %2 kanssa - ne eivät ole yhteensopivia"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Sulautetaan konetta %1 koneen %2 kanssa"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Uuden koneen pisteitä ei voitu päivittää"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Tuloksia ei voitu päivittää"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Vanhaa konetta ei voitu poistaa käytöstä"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Vanha kone %1 on poistettu käytöstä"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Näytä:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Kaikki tietokoneet"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Vain kuukauden aikana yhteydessä olleet koneet"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "Tietokoneen tunniste"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nimi"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br>versio"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Sulauta koneet nimien mukaan"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "Selaimen oletus"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Kommentti"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Uutiset saatavana %sRSS-syötteenä%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Saapuneet"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Kirjoita"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Lähetä yksityisviesti"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Esikatselu"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "viestiä ei ole"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Vastaanottaja"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Käyttäjien tunnisteet tai nimet pilkulla erotettuna"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Otsikko"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Lähetä viesti"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "lähetti sinulle yksityisviestin; otsikko:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Yksityisviesti%1 käyttäjältä %2, otsikko:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Viestin luonti ei onnistunut"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Et voi lähettää yksityisviestejä näin usein. Odota hetken aikaa ennen kuin "
-"lähetät lisää viestejä."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "lukemattomat"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Sähköposti-ilmoituksen saamiseksi %1muokkaa yhteisöasetuksia%2"
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Yksityisviesti"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Hyllytä työ koneen ollessa akkukäytöllä? %1 (koskee vain kannettavia) %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Hyllytä työ tietokoneen ollessa käytössä?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Hyllytä näytönohjaimen (GPU) työ tietokoneen ollessa käytössä? %1 versiosta "
-"6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "\"Käytössä\" tarkoittaa hiiren/näppäimistön käyttöä"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minuuttia"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Hyllytä työ jos hiirtä/näppäimistöä ei ole käytetty %1 (tarvitaan joissakin "
-"koneissa mentäessä virransäästötilaan) %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Hyllytä työ kun muu kuin BOINCin aiheuttama suorittimen käyttö on yli %1 0 "
-"tarkoittaa ei rajoitusta<br>versiosta 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Suorita vain %1 tuntien aikana. Ei rajoitusta jos samat arvot%2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Jätä tehtävät muistiin hyllytyksen ajaksi? %1 Hyllytetyt työt vievät "
-"näennaismuistia jos valinta on \"kyllä\" %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Vaihda tehtävien välillä %1 suositus: 60 minuuttia %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Monisuoritinkoneissa käytä enintään"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "prosessoria"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr "Monisuoritinkoneissa käytä enintään %1 versiosta 6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% prosessoreista"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "Käytä enintään %1 (vähentää suorittimen lämpöä) %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% suoritinajasta"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Levy: käytä enintään"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "Gt"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Levy: jätä vapaaksi vähintään %1 Arvoa %2 pienemmät jätetään huomiotta %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% kokonaismäärästä"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Aikaväli tarkistuspisteen kirjoittamiselle levylle"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "sekuntia"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Näennäismuisti: käytä enintään"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Muisti: koneen ollessa käytössä, käytä enintään"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Muisti: koneen ollessa jouten, käytä enintään"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "Pidä työtä vähintään%1(max 10 päivää).%2"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "päivää"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... ja lisäksi"
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Vahvista ennen internetyhteyden avaamista? %1 Vaikutusta jos on modeemi-, "
-"ISDN- tai VPN-yhteys %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr "Lopeta yhteys? %1 Vaikutusta jos on modeemi-, ISDN- tai VPN-yhteys %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Suurin latausnopeus:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbittiä/sek"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Suurin lähetysnopeus:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Verkkoyhteyttä käytetään vain tunteina"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Siirrä enintään %1 Versiosta 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Megatavua joka"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Ohitetaanko kuvatiedosto verifiointi? %1 Merkitse tämä VAIN jos "
-"operaattorisi muokkaa kuvatiedostoja (kuten UMTS tekee). %2 Ohitus heikentää "
-"BOINCin turvallisuutta. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Resurssien jako %1 Määrittää koneesi resurssit tälle projektille. Esim.: jos "
-"osallistut kahteen BOINC-projektiin resurssijaolla 100 ja 200, ensimmäinen "
-"saa 1/3 koneen resursseista ja toinen 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Nopeuta GPU paketteja antamalla jokaiselle oma CPU ydin?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Käytä keskusyksikköä %1 (versiosta 6.10+) %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Käytä ATI-näytönohjainta %1 (versiosta 6.10+) %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Käytä NVIDIA-näytönohjainta %1 (versiosta 6.10+) %2"
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Käytä Intel GPUta %1 (versiosta 7.2+) %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Ajetaanko testisovellukset? %1 Helpottaa sovellusten kehittämistä, mutta voi "
-"aiheuttaa ongelmia töiden kanssa %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Sähköpostit lähetetään osoitteesta %1; varmista, että roskapostisuodatin "
-"hyväksyy tämän osoitteen."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Saako %1 ja tiimisi (jos on) lähettää sinulle sähköpostia?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Saako %1 näyttää tietokoneesi nettisivullaan?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Levyn ja muistin käyttö"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Suorittimen käyttö"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Verkon käyttö"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Nämä asetukset vaikuttavat kaikkiin BOINC-projekteihin, joihin osallistut."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Asetusten päivitys ei onnistu.%2 Punaisella merkityt arvot ovat "
-"virheellisiä tai ne eivät ole numeerisia."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "väärä paikka: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "väärä osajoukko: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "kyllä"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "ei"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "ei rajoitusta"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Lisää"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Poista"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Laskenta"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Erilliset asetukset paikalle %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Muokkaa asetuksia"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Lisää erilliset asetukset paikalle %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(vaihda näkymää)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Yhdistetyt asetukset"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Projektikohtaiset asetukset"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Ensisijaiset (oletus) asetukset"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Muokkaa %1 asetuksia"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Nämä vaikuttavat kaikkiin BOINC-projekteihin joihin osallistut."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"Useisiin projekteihin osallistuvissa tietokoneissa käytetään viimeksi "
-"muokattuja asetuksia."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Nämä asetukset eivät vaikuta Android-laitteisiin."
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Asetuksia muokattu viimeksi:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Lisää asetukset"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Päivitä asetukset"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Tietokoneen oletussijainti"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "ja"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Profiilisi näkyy muille heti kun se on hyväksytty projektin taholta. Se voi "
-"kestää muutaman päivän."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Profiilisi on merkitty epätyydyttäväksi, joten se ei näy muille. Ole hyvä ja "
-"muuta sitä."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Tietokantavirhe"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Spämmin estämiseksi niiden käyttäjien profiilit, joiden keskim. pisteet ovat "
-"alle %1, näkyvät vain kirjautuneille käyttäjille. Pahoittelemme mahdollista "
-"haittaa."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Käyttäjä on torjuttu"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Tällä käyttäjätunnuksella ei ole profiilia."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Muokkaa profiilisia"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Palautteesi tästä profiilista"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Suosittele tätä profiilia \"Päivän käyttäjäksi\":"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Pidän %1tästä%2 profiilista"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Kerro ylläpidolle loukkaavasta profiilista:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "En %1pidä%2 tästä profiilista"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonyymi alusta"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIAn GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATIn GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Ei tietokannassa"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "odottaa"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Kaikki"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "Laskennassa"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Vahvistusta odottavat"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Vahvistus epäselvä"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Vahvistetut"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Vahvistamattomat"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Virheet"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Ei-aktiivinen"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Lähettämättä"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Valmis, odottaa vahvistusta"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Valmis ja vahvistettu"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Valmis, merkattu virheelliseksi"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Valmis, ei voida vahvistaa"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Valmis, vahvistus epäselvä"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Valmis, myöhästynyt vahvistamisesta"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Valmis"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Ei voitu lähettää"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Palvelimen peruuttama"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Ei aloitettu takarajaan mennessä - peruutettu"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Virhe latauksessa"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Virhe laskennassa"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Virhe lähetyksessä"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Käyttäjän keskeyttämä"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Lähetys epäonnistui"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Aika loppui - ei vastausta"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Ei tarvittu"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Vahvistusvirhe"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Hylätty"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Valmis"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Onnistui"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Laskentavirhe"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Ylimääräinen"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Ei vastausta"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Uusi"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Ladataan"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Käsitellään"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Laskentavirhe"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Lähetetään"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Valmis"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Alussa"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Ei tarvita"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Työpakettivirhe - tarkistus ohitettu"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Ei vielä selvyyttä"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Tehtävä raportoitiin liian myöhään vahvistettavaksi"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Tehtävää ei voitu lähettää"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Liian monta virhettä (mahdollisesti bugi)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Liian monta tehtävää (voi olla päättämätön)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Liian monta tehtävää kaikkiaan"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Työpaketti peruttu"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Tunnistamaton virhe: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Tehtävänimi"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "napsauta tietoihin"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Näytä tunnisteet"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Näytä nimet"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Tehtävä"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Työpaketti"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Tietokone"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Lähetetty"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Raportointiaika<br />tai takaraja"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "selite"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Tila"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Laskenta-aika<br />(sekuntia)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Suoritinaika<br />(sekuntia)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Pisteet"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Sovellus"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Työpaketti"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Vastaanotettu"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Tila palvelimella"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Tulos"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Tila ohjelmassa"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Exit status"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Raportoinnin takaraja"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Laskenta-aika"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Suoritinaika"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Vahvistuksen tila"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Sovellusversio"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Tulostetiedostot"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Stderr output"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Tila"
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr "Tehtävän nimi:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Hakuehto (yksi tai useampi)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Hakusanat"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Etsi tiimejä, joiden nimessä tai kuvauksessa ovat nämä sanat"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Maa"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Tiimin tyyppi"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Näytä vain aktiiviset tiimit"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Hae"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Pyyntösi, perustajan vastauksen takaraja saavutettu."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Päätä perustajuuden vaihto"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Sinun pyytämäsi"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "perustajan vastauksen takaraja on %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ei mikään"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Pyynnön aloitus"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Lykätty"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Tiimin tiedot"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Kuvaus"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Nettisivu"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Projektikohtaiset tilastot"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tyyppi"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Keskustelupalsta"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Viestiketjut"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Liity tähän tiimiin"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Huom: jos sallit sähköpostin lähettämisen projektin asetuksissa, tiimiin "
-"liittyessä sen perustaja saa sähköpostiosoitteesi."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Ei ota uusia jäseniä"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Pyyntö vaihtaa perustaja"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Vastaus %1 mennessä"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Tiimin perustajan vaihto"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Jäsenet"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Perustaja"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Ylläpitäjät"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Uusia jäseniä viimeisen vrk:n aikana"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Jäseniä kaikkiaan"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "katso"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktiivisia jäseniä"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Jäsenet, joilla pisteitä"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Ylläpitäjä"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Edelliset %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Seuraavat %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Tiimiä ei ole."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Toiminto vaatii perustajan oikeudet."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Toiminto vaatii ylläpitäjän oikeudet"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"VAROITUS: tämä on BOINC-laajuinen tiimi. Jos teet muutoksia tässä, ne "
-"tulevat pian ylikirjoitetuksi. Muokkaa sen sijaan %1BOINC-laajuista tiimiä%"
-"2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Yksityisyydestä%2: jos luot tiimin, projektisi asetukset (kuten resurssien "
-"jako) näkyvät kaikille."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Tiimin nimi, tekstiversio"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Älä käytä HTML-tageja."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Tiimin nimi, HTML-versio"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Voit käyttää %1HTML-tageja rajoitetusti%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Jätä tämä kohta tyhjäksi, jos et osaa HTML:ää."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Tiimin nettisivun osoite, jos on"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "ilman \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Tämä URL linkitetään tiimin sivulta tälle sivulle."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Tiimin kuvaus"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Sallii uudet jäsenet?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Käyttäjäprofiili"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projektit, joihin osallistut"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projektit, joihin %1 osallistuu"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekti"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Napsauta käyttäjän sivulle"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Mistä lähtien"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Laskenta ja pisteet"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Tämän tilin tietokoneet"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Katso"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Projektienvälinen tunniste"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Projektikohtaiset tilastot"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Tili"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Tiimi"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Projektikohtainen"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Todistus"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Tilastot kännykkääsi"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Tuntematon vahvistus: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Tilin tiedot"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Sähköpostiosoite"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Postinumero"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 jäsen alkaen"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Vaihda"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "sähköpostiosoite"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "salasana"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "muu tilitieto"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Käyttäjä-ID"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Käytetään yhteisötoiminnoissa"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Tiliavaimet"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Asetukset"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Milloin ja miten BOINC käyttää tietokonettasi"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Laskenta-asetukset"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Keskustelupalsta ja yksityisviestit"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Yhteisöasetukset"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Tämän projektin asetukset"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 asetukset"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Yhteisö"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Poista"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Luo"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profiili"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 viestiä"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Ilmoitukset"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Irrottaudu tiimistä"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Ylläpitäjä"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(perustajuuden vaihtopyyntö odottaa)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Tiimin jäsen"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "etsi tiimi"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Perustaja mutta ei jäsen tiimissä"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Etsi ystäviä"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Ystävät"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Tietokoneet"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Lahjoittaja"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Yhteydenotto"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Tämä henkilö on ystävä"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Peruuta ystävyys"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Pyyntö odottaa"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Lisää ystäväksi"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr "käyttäjänimen alussa tai lopussa ei saa olla välilyöntiä"
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr "käyttäjänimi ei saa olla tyhjä"
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr "käyttäjänimi ei saa sisältää HTML-tageja"
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "kirjaudu ulos"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "kirjaudu"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Kirjaudu"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Luo tili"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Palvelimen tilasivu"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Tapahtui tietokantavirhe, yritä myöhemmin uudelleen."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Pyyntöä ei voida käsitellä"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "tuntia"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "sek"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Linkki ei ole voimassa. Klikkaa Back-/Takaisin-nappia, lataa sivu ja yritä "
-"uudelleen."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Katso %1:n profiilia"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Tekstin muotoiluun voi käyttää BBCodea"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "Projekti suljettu ylläpidon ajaksi"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 on tilapäisesti suljettu ylläpitotoimien vuoksi.  Yritä myöhemmin "
-"uudelleen."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Tietokantaan ei saada yhteyttä - yritä myöhemmin uudelleen"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Tietokannan valinta ei onnistu - yritä myöhemmin uudelleen"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Pysy kirjautuneena tällä tietokoneella"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Tilin asennus valmis"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Sinut tunnistetaan tällä nettisivullamme. Voit käyttää oikeaa tai "
-"lempinimeä."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Valitse maa."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Postinumero"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Valinnainen"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Tilillesi täytyy antaa nimi"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML-tägit eivät ole sallittuja nimessä"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Lisää %1 asetukset paikalle %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Sovellukset"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 on tällä hetkellä seuraavat sovellukset. Osallistuessasi %1 -projektiin, "
-"yksi tai useampi työpaketti näistä sovelluksista annetaan tietokoneellesi. "
-"Viimeisin sovellusversio ladataan koneellesi. Tämä tapahtuu automaattisesti; "
-"sinun ei tarvitse tehdä mitään."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Alusta"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versio"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Asennusaika"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode tagit"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-"BBCode tageilla voit muokata profiilisi ja keskustelupalstan viestiesi "
-"tekstiä.\n"
-"Se on samantapaista kuin HTML, mutta yksinkertaisempi. Tagi alkaa [ "
-"-merkillä\n"
-"(HTML käyttää %1) ja päättyy merkkiin ] (HTML käyttää %2)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Esimerkit"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Lihavoitu"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Kursivoitu"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Alleviivattu"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Yläindeksi"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Iso teksti"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Punainen teksti"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "linkki nettisivulle"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Lainattu teksti"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "käytetään lainattuun tekstiosuuteen"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "käytetään näyttämään kuva"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Koodinpätkä tähän"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "käytetään näyttämään koodia"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Muotoilematon teksti"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "käytetään näyttämään muotoilematonta (yleensä tasavälinen) tekstiä"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Kohta 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Kohta2"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "Kohta 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "käytetään linkittämään Trac-lipukkeeseen BOINCin nettisivulla"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "käytetään linkittämään Trac Wikiin BOINCin nettisivulla"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "käytetään linkittämään SVN muutoksiin BOINCin nettisivulla"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Jos et päätä tagia tai määrittele parametriä oikein,\n"
-"itse tagi näkyy eikä tekstin muotoilu."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Osanottajat"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Suorita työtä"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Tilisi"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "katso tilastoja, muokkaa asetuksia"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Tiimit"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "luo tiimi tai liity tiimiin"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Päivän käyttäjä"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Palvelimen tila"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profiilit"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Käyttäjähaku"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Tilastot"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Osallistujien kärki"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Tietokoneiden kärki"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Tiimien kärki"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "GPU-mallien kärki"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Kielet"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Lue sääntömme ja periaatteemme"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Tiliä ei voi luoda"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Napsauta selaimesi <b>Back/Takaisin</b> nappia yrittääksesi uudelleen."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "reCAPTCHA-vastaus oli väärin. Yritä uudelleen."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Kutsukoodi tarvitaan tilin luomiseen."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Antamasi kutsukoodi on virheellinen."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Virheellinen sähköpostiosoite: osoitteen pitää olla oikean muotoinen tyyliin "
-"\"nimi at domain\""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Tällä sähköpostiosoitteella on jo tili."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Uudet salasanat ovat erilaisia"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "Salasanat voivat sisältää vain ASCII-merkkejä."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Uusi salasana on liian lyhyt: salasanan vähimmäispituus on %1 merkkiä."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Tilin luonti ei onnistunut"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-"HUOMAA: Jos käytät BOINC Manageria, älä käytä tätä lomaketta. Käynnistä "
-"BOINC, valitse Lisää projekti ja anna sähköpostiosoite ja salasana."
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Tämä tili kuuluu tiimiin %1 ja projektiasetukset ovat perustajan tekemiä."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Kutsukoodi"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Tilin luomiseen tarvitaan voimassaoleva kutsukoodi."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Sähköpostiosoite"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Osoitteen pitää olla oikean muotoinen tyyliin \"nimi at domain\"."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Salasana"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Vähintään %1 merkkiä"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Vahvista salasana"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Syötä kuvassa näkyvät sanat"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Luo tili"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Kuva"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Profiilisi kuva näkyy vasemmalla."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Vaihda se napsauttamalla \"Selaa\" ja valitse joko JPEG- tai PNG-tiedosto (%1 "
-"tai vähemmän)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Poista se profiilistasi valitsemalla tämä kohta:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Jos haluat kuvan profiiliisi, napsauta \"Selaa\" ja valitse joko JPEG- tai "
-"PNG-tiedosto. Valitse kuva, joka on %1 tai vähemmän."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Kieli"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Valitse kieli, jolla profiilisi on kirjoitettu:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Lähetä profiili"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Syötä kuvassa näkyvät sanat."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Luo/muokkaa profiilia"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Lähettämäsi kuvatiedoston tyyppiä ei tueta."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "%1Profiilisi%2 avulla voit jakaa mielipiteitäsi %3 -yhteisön kanssa."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "ReCaptcha-vastaus oli väärin.  Yritä uudelleen."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Ensimmäinen kirjoituksesi merkittiin spämmiksi Akismet-"
-"spämminestojärjestelmän toimesta.  Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Toinen kirjoituksesi merkittiin spämmiksi Akismet-spämminestojärjestelmän "
-"toimesta.  Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "Jättämäsi profiili oli tyhjä."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Profiilin päivitys ei onnistunut: tietokantavirhe"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Profiilin luonti ei onnistunut: tietokantavirhe"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profiili tallennettu"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Onnittelut! Profiilisi tallennettiin tietokantaan."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Tarkastele profiiliasi%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Luo profiili"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Spämmin estämiseksi profiilin luonti tai muokkaus vaatii keskimääräisten "
-"pisteiden määräksi %1 tai enemmän.  Pahoittelut mahdollisesta haitasta."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Tilin poisto ei onnistunut"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Tili poistettu"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Tilisi on poistettu."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Vahvista tilin poisto"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-"Tilisi poistaminen poistaa kaikki\n"
-"tietosi palvelimelta mukaan lukien,\n"
-"profiilisi ja keskustelupalstan viestit.\n"
-"Tähän tiliin liitettyihin tietokoneisiin ei lähetetä\n"
-"töitä."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Tätä ei voi peruuttaa.\n"
-"Tiliä ei voi saada takaisin kun se on poistettu."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Haluatko varmasti poistaa tilisi?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Kyllä"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Poista tämä tili"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Ei"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Älä poista tätä tiliä"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "profiilin poisto ei onnistunut - yritä myöhemmin uudelleen"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Poiston vahvistus"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Profiilisi on poistettu."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Profiilin poiston vahvistus"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Oletko varma?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-"Profiilit poistetaan pysyvästi eikä niitä voi palauttaa --\n"
-"joudut aloittamaan täysin alusta\n"
-"jos haluat myöhemmin luoda toisen profiilin."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Jos olet varma, napsauta \"Kyllä\"\n"
-"poistaaksesi profiilisi tietokannastamme."
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Poista profiilini"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Älä poista profiiliani"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Tapahtuma valmis"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Kiitos lahjoituksesta!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Lahjoituksesi on suoritettu."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Lahjoituksesi lisätään lahjoituksia kuvaavaan palkkiin sen jälkeen kun "
-"PayPal on vahvistanut sen."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Olet peruuttanut lahjoituksesi."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Tämä projekti ei ota vastaan lahjoituksia."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 lahjoitukset"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Tämä projekti ottaa lahjoituksia vastaan\n"
-"%1:n kautta."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-"Anna haluamasi lahjoitussumma allaolevaan kenttään.\n"
-"        PayPal hyväksyy useita valuuttoja\n"
-"        (Kanadan dollari, euro, punta, Yhdysvaltain dollari,\n"
-"         jeni, Australian dollari, Uusi-Seelannin dollari,\n"
-"        Sveitsin frangi, Hong Kongin dollari, Singaporen dollari, Ruotsin "
-"kruunu,\n"
-"        Tanskan kruunu, Puolan zloty, Norjan kruunu,\n"
-"        Unkarin forintti, Tsekin koruna).\n"
-"        Voit käyttää valuuttamuunninta\n"
-"        nähdäksesi lahjoitussumman eri valuutoissa\n"
-"        (huomaa, että kurssit ovat arvioita\n"
-"         ja todellinen määrä voi olla eri)."
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Haluamasi lahjoitussumma"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Arvioitu arvo"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Nimetön lahjoitus"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Valitse tämä jos et halua nimeäsi ja tiliäsi näytettävän\n"
-"lahjoittajien listauksissa.<br>Jos ei ole valittu, sinut näytetään "
-"käyttäjätunnisteella %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Kirjaudu sisään jos haluat lahjoituksesi liitettävän käyttäjätunnisteeseesi."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Jatka"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Lahjoitukset välittää"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Lataa BOINCin ohjelmistolaajennoksia"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Sovelluksia voi ladata useista kategorioista."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Näitä sovelluksia ei ole hyväksytty %1 toimesta, joten käytät niitä omalla "
-"vastuulla."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Emme anna ohjeita näiden sovellusten asentamiseen.\n"
-"Tekijällä saattaa olla joitakin ohjeita sovelluksen asennukseen ja poistoon. "
-"\n"
-"Jos tämä ei riitä, sinun tulisi ottaa yhteyttä tekijään."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Ohjeet BOINCin asennukseen ja käyttöön löytyvät %1täältä%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Tätä listaa hoidetaan keskitetysti %1BOINC-nettisivulla%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Vaihda tilin sähköpostiosoite"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Uusi sähköpostiosoite \"%1\" on virheellinen."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Uusi sähköpostiosoite on sama kuin aiempi. Mitään ei muuteta."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Tällä sähköpostiosoitteella on jo olemassa tili"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Virheellinen salasana."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Tilisi sähköpostiosoite on nyt %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Vahvista %1tämä sähköpostiosoite%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Sähköpostiosoitettasi ei voida päivittää tietokantaongelman vuoksi.  Yritä "
-"myöhemmin uudelleen."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Vaihda sähköpostiosoite"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Vaihda tilisi sähköpostiosoite"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Uusi sähköpostiosoite"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Osoitteen pitää olla oikean muotoinen tyyliin \"nimi at domain\""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Ei salasanaa?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Vahvista nollaus"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Tämä pyyhkii kaikki muutokset, jotka olet tehnyt yhteisöasetuksissa. Peruuta "
-"napsauttamalla selaimesi Back/Takaisin painiketta."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Nollaa asetukset"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Virhe: Vääränlainen tiedosto, vain PNG ja JPEG ovat tuettuja."
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Sigusi on liian pitkä, pidä se alle 250 merkin mittaisena."
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Käyttäjää ei ole: %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-"Miten sinulle ilmoitetaan uusista yksityisviesteistä, ystävyyskutsuista, "
-"viesteistä tilatuissa viestiketjuissa ja muista tapahtumista?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Tilisivullani (ei sähköpostia)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Välittömästi sähköpostitse"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Yhdellä päivittäisellä sähköpostilla"
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr "Keskustelupalstan identiteetti"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Kuva, joka kuvaa sinua keskustelupalstoilla."
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Formaatti: JPG tai PNG. Koko: enintään 4 kt, 100x100 pikseliä"
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Älä käytä avataria"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Käytä avataria, jonka tarjoaa %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Käytä tätä lähetettyä avataria:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Avatarin esikatselu"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Tältä avatarisi näyttää"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Sigu keskustelupalstan viesteille"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Katso %1ilmaisia palveluja%2\n"
-"<br> jotka tarjoavat dynaamisia \"sigukuvia\"\n"
-"<br> joissa näkyvät viimeisimmät pisteet, projektiuutiset ym."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "merkkejä jäljellä"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Liitä sigu oletuksena"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Sigun esikatselu"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Tältä sigusi näyttää foorumeilla"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr "Viestin näyttäminen"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Mitä näytetään"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Piilota avatar-kuvat"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Piilota sigut"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Näytä kuvat linkkeinä"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Avaa linkit uudessa ikkunassa/välilehdessä"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Korosta erityiset käyttäjät"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr "Näytä näin monta viestiä sivua kohden"
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Kuinka järjestetään"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Viestiketjut:"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Viestit:"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr "Mene ketjun ensimmäiseen viestiin automaattisesti"
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr "Älä siirrä pysyviä viestejä ylös"
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Viestisuodatus"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Suodatetut käyttäjät"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Älä huomioi keskustelupalstojen viestejä ja yksityisviestejä näiltä "
-"käyttäjiltä."
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "Käyttäjätunniste (Esim. 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Lisää käyttäjä suodatettavaksi"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Napsauta tästä päivittääksesi asetukset"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Palauta"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Tai napsauta tästä palauttaaksesi oletusasetukset"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Virheellinen tiliavain"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Tällä sähköpostiosoitteella ei löydy tiliä"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Virheellinen salasana"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Vaihda salasana"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Salasanasi on vaihdettu."
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Tietokantaongelman vuoksi emme voi päivittää salasanaasi. Yritä myöhemmin "
-"uudelleen."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Voit tunnistautua joko"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "sähköpostiosoitteellasi ja vanhalla salasanalla"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "tiliavaimellasi"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Nykyinen salasana"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>TAI</b>: Tiliavain"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Tiliavain sähköpostitse"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Uusi salasana"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Uusi salasana uudelleen"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML-tägit eivät ole sallittuja nimessäsi."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Tilillesi täytyy antaa nimi."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Käyttäjätiedon päivitystä ei voitu tehdä."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Muokkaa tilitietoja"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Nimi, %1 oikea tai lempinimi%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL-osoite %1 kotisivullesi; valinnainen%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Postinumero %1 Valinnainen%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Päivitä tiedot"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Tilat palvelimella"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-"Tehtävän <b>tila palvelimella</b> kertoo, onko tehtävä lähetetty "
-"tietokoneelle ja jos on, onko tietokone jo suorittanut sen. Mahdolliset "
-"arvot ovat:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Tehtävä ei ole valmis lähetettäväksi (esim. jokin tiedosto puuttuu)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Tehtävä on valmis lähetettäväksi mutta sitä ei ole vielä lähetetty."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Laskennassa"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Tehtävä on lähetetty ja odottaa valmistumista."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-"Tehtävä on lähetetty tietokoneelle ja joko aika on loppunut tai tietokone on "
-"raportoinut sen valmistuneeksi."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Tulokset"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-"Tehtävän <b>tulos</b> on määritelty, jos sen tila palvelimella on "
-"<b>valmis</b>. Mahdolliset arvot ovat:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-"Tehtävä on lähetetty tietokoneelle, mutta tietokone ei ole vielä saanut sitä "
-"valmiiksi ja raportoinut tulosta."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Tietokone on saanut tehtävän valmiksi ja raportoinut sen onnistuneesti."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-"Palvelin ei kyennyt lähettämään tehtävää tietokoneelle (mahdollisesti sen "
-"resurssivaatimukset olivat liian suuret)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Ohjelman virhe"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Tehtävä lähetettiin tietokoneelle mutta tapahtui virhe."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-"Tehtävä lähetettiin tietokoneelle mutta vastausta ei saatu aikarajan "
-"kuluessa."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Tehtävää ei lähetetty tietokoneelle, koska riittävä määrä muita tehtäviä on "
-"saatu valmiiksi tässä työpaketissa."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-"Tehtävä raportoitiin mutta ei voitu vahvistaa, yleensä siksi, koska "
-"tulostetiedostot ovat kadonnut palvelimelta."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Tilat ohjelmassa"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Tehtävän <b>tila ohjelmassa</b> kertoo, missä vaiheessa käsittelyä tapahtui "
-"virhe."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Tietokone ei ole vielä saanut tehtävää valmiiksi."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Tietokone sai tehtävän valmiiksi onnistuneesti."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Tietokone ei voinut ladata sovellusta tai syötetiedostoja."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Laskennan aikana tapahtui virhe."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Tietokone ei voinut lähettää tulostetiedostoja."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Raportointiaika ja takaraja"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-"Tehtävän <b>Raportointiaika tai takaraja</b> -kenttä riippuu siitä, onko "
-"tehtävä jo raportoitu:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "On jo raportoitu"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Päiväys/aika jolloin se raportoitiin"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Ei vielä raportoitu, takaraja tulevaisuudessa"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Takaraja, näkyy vihreänä."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Ei vielä raportoitu, takaraja ohitettu"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Takaraja, näkyy punaisena."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Tuntematon kenttä"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Sähköpostin esikatselu"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Sähköpostisi näkyy näin:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Lähetä sähköposti"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Käytä selaimesi back/takaisin nappia palataksesi viestilomakkeelle"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Lähetetään sähköposteja"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "sähköposti lähetettiin osoitteeseen %1"
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr "sähköpostia ei voitu lähettää osoitteeseen %1: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Kiitos kun kerroit ystävillesi %1 -projektista"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Unohdit täyttää ystävän nimen ja/tai sähköpostiosoitteen; palaa %"
-"1lomakkeeseen%2 ja täytä kohdat."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Tämä projekti ei luonut sähköpostiviestiä - ilmoita asiasta ylläpidolle"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Kerro ystävillesi %1 -projektista"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Kerro ystävillesi, sukulaisillesi ja työkavereillesi %1 -projektista"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Täytä lomakkeeseen niiden ihmisten nimet ja sähköpostiosoitteet, joiden "
-"oletat olevan kiinnostunut projektista %1. Lähetämme heille sähköpostin "
-"nimissäsi, johon voit liittää oman viestisi halutessasi."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Nimesi:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Sähköpostiosoitteesi:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Ystävän nimi:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Ystävän sähköpostiosoite:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Lisäviesti (valinnainen)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Lähetä"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr "Sinulla ei ole oikeuksia torjua käyttäjiä."
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr "Torjuntaehdotus"
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr "Käyttäjää tällä tunnisteella ei löydy."
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr "Käyttäjä on jo torjuttu"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-"Haluatko varmasti torjua käyttäjän %1?<br/>Tämä estää käyttäjää %1 "
-"lähettämästä viestejä tietyn ajan.<br/>Tämä tulisi tehdä vain jos %1 on "
-"jatkuvasti harjoittanut trollaavaa käyttäytymistä."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Valitse syykategoria, vaihtoehtoisesti kirjoita kuvaus, miksi käyttäjä "
-"tulisi torjua."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Kategoria"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Säädytön"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Fleimi/vihaposti"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Käyttäjän pyyntö"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Muu"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Syy"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr "Postitetaan jos ei ole tyhjä"
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr "Jatka ehdotusta"
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Toiminto pitää määritellä..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-"Et voi enää muokata tätä viestiä.<br/>Viestiä voi muokata enintään %1 "
-"minuuttia viestin luomisen jälkeen."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Sinulla ei ole oikeuksia muokata tätä viestiä."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Foorumi"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Muokkaa viestiäsi"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Otsikko"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Lisää siguni tähän viestiin"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Ei näy sinulle"
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr "Tiimin keskustelupalsta %1"
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr "Uusi viestiketju"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Lisää uusi viestiketju tälle foorumille"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Tämä keskustelupalsta on saatavana %1RSS-syötteenä%2"
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr "Tämä viestiketju on piilotettu"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Tämä ketju on pysyvä ja lukittu etkä ole vielä lukenut sitä"
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr "pysyvä/lukittu/lukematon"
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Tämä ketju on pysyvä etkä ole vielä lukenut sitä"
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr "pysyvä/lukematon"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Et ole vielä lukenut tätä ketjua, ja se on lukittu"
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "lukematon/lukittu"
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Et ole vielä lukenut tätä ketjua"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr "Tämä ketju on pysyvä ja lukittu"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr "pysyvä/lukittu"
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr "Tämä ketju on pysyvä"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr "pysyvä"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr "Tämä viestiketju on lukittu"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "lukittu"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Olet lukenut tämän viestiketjun"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "luettu"
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Kysymykset ja vastaukset"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Keskustele vapaaehtoisen kanssa Skypen välityksellä jollakin useista "
-"kielistä. Mene %1BOINC Online -apuun%2."
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Aihe"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Kysymykset"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Keskustelua %1 -jäsenten kanssa"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Keskustelupalsta"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Jos on kysymyksiä tai ongelmia, käytä keskustelupalstan %1Kysymyksiä ja "
-"vastauksia%2 -osiota."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Tilatut viestiketjut"
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr "Moderoi viestiä"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Piilota viesti"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Kaupallinen spämmi"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Tuplaviesti"
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Siirrä viesti"
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr "Kohdeketjun tunniste:"
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr "Torju käyttäjä"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Torjunta kestää"
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 tuntia"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 päivä"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 viikko"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 viikkoa"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 kuukausi"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Ikuisesti"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Valinnainen selvitys %1 Tämä liitetään sähköpostiin käyttäjälle.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "Ok"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Sinulla ei ole oikeuksia moderoida tätä viestiä."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Ei voi siirtää toiseen kategoriatyyppiin"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Ei voi siirtää toiseen kategoriaan"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Ei oikeutta torjua käyttäjiä"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Torjunta"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Käyttäjä %1 on torjuttu."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Toiminto epäonnistui: mahdollisesti tietokantaongelma"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "ei oikeutta"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr "Moderoi viestiketjua \"%1\""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-"Valitse syykategoria tai kirjoita pidempi kuvaus, miksi piilotat tai "
-"lukitset viestiketjun ja napsauta OK."
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr "Nykyinen foorumi"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Kohdefoorumi"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Uusi otsikko:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-"Vain projektin ylläpitäjät voivat luoda tänne viestiketjun. Voit kuitenkin "
-"vastata olemassa oleviin ketjuihin."
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Viestisi merkittiin spämmiksi Akismet-spämminestojärjestelmän toimesta. "
-"Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Luo uusi viestiketju"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Luo uusi viestiketju"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr "Muista lisätä otsikko"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Näytä tämä BOINC Managerin ilmoituksissa"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Tee niin vain, jos se todennäköisesti kiinnostaa kaikkia."
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr "Arvioi ilman yhteyttä"
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Projekti on kytkenyt tämän toiminnon pois päältä"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Viestin arviointiin tarvitaan enemmän keskimääräisiä tai kokonaispisteitä."
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr "Olet jo arvioinut tämän viestin."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Takaisin viestiketjuun"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr "Palautteesi tallennettiin"
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Palautteesi on tallennettu. Kiitos avusta."
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Ehdotus rekisteröity"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Arviointisi tallennettiin. Kiitos."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr "Ongelma ehdotuksen lähettämisessä"
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Viestisi merkittiin spämmiksi Akismet-spämminestojärjestelmän toimesta. "
-"Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Kirjoita viestiketjuun"
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr "Viesti:"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr "vastaus viestiin %1Message ID%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr "Kirjoita vastaus"
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr "Lisää siguni tähän vastaukseen"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr "Tarvitset enemmän pisteitä raportoidaksesi viestistä."
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr "Raportti rekisteröity"
-
-# 92%
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Raporttisi on tallennettu. Kiitos palautteestasi."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-"Moderaattori katsoo raporttiasi ja päättää mitä tapahtuu - se voi viedä "
-"jonkin aikaa, joten ole kärsivällinen"
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr "Raportoi foorumin viestistä"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-"Ennen viestin raportointia kannattaa harkita +/- arviointijärjestelmän "
-"käyttöä. Jos tarpeeksi moni käyttäjä arvioi viestin negatiivisesti, se "
-"lopulta piilotetaan.<br />Arviointijärjestelmä löytyy viestin lopusta."
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr "Raportoi viestistä"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Miksi koet viestin loukkaavaksi: %1Anna tarpeeksi tietoa, jotta henkilö, "
-"joka ei vielä ole lukenut\n"
-"viestiketjua, saa nopean käsityksen asiasta.%2"
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr "Raporttia ei rekisteröity"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Raporttiasi ei pystytty tallentamaan. Odota hetki ja yritä uudelleen."
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Jos tämä ei ole tilapäinen virhe, raportoi asiasta projektin kehittäjille."
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr "%1 RSS syöte"
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr "Tämä keskustelupalsta on saatavana RSS-syötteenä."
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr "Valinnat:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Sisällytä vain viestit käyttäjätunnisteella %1 (oletus: kaikki käyttäjät)."
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Sisällytä vain viestit viimeisen %1 päivän ajalta (oletus: 30)."
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Lyhennä viestit: %1 (Sisällytä vain ensimmäiset 265 merkkiä jokaisesta "
-"viestistä)"
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-"Vain viestiketjut: %1 (Sisällytä jokaisesta ketjusta vain ensimmäinen "
-"viesti)"
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Hae foorumilta"
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr "Hakukysely"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Hae avainsanoja:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Viestit, jotka sisältävät kaikki annetut sanat, näytetään"
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "Esimerkiksi: \"screensaver freeze\""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr "Hae kirjoittajan tunnisteella:"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr "Vain tämän kirjoittajan viestit näytetään"
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Esimerkiksi: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Hakuehdot"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Haun rajoitukset"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Hae enintään näin monta päivää taaksepäin"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 kuukautta"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 vuosi"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr "Näytä vain tämän foorumin viestit"
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Järjestä"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr "Aloita haku"
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Foorumihaun tulokset"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Hakuasi vastaavat viestiketjujen otsikot:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Hakuasi vastaavat viestit:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Valitettavasti mitään hakuasi vastaavaa ei löytynyt. Voit laajentaa hakuasi "
-"käyttämällä vähemmän sanoja (tai vähemmän tarkkoja ilmauksia)."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Voit myös yrittää %1samaa hakua Googlessa.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Tee uusi haku"
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr "Tilaus onnistui"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Olet tilannut %1:n. Saat ilmoituksen kun uusi viesti tulee."
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr "Tilaus epäonnistui"
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "%1 tilaustasi ei saada alkamaan. Yritä myöhemmin uudelleen.."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr "Tilauksen päättäminen onnistui"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"%1 tilauksesi ei enää ole voimassa. Et saa ilmoituksia tästä viestiketjusta."
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr "Tilauksen päättäminen epäonnistui"
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "%1 tilaustasi ei saada lopetettua. Yritä myöhemmin uudelleen.."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr "Tuntematon tilaustoiminto"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Tämä foorumi ei näy sinulle."
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr "Tämä viestiketju on piilotettu moderaattorien toimesta."
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Kysymykseni sai vastauksen"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr "Napsauta tästä jos kysymykseesi on vastattu tyydyttävästi"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Kysyisin myös tätä"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Lisää viesti tähän viestiketjuun"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Peruuta tilaus"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Olet tilannut tämän viestiketjun.  Napsauta peruuttaaksesi tilauksen."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Tilaa"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Napsauta saadaksesi sähköpostia kun tähän viestiketjuun tulee uusia viestejä"
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Poista tämän viestiketjun piilotus"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Piilota tämä viestiketju"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "Poista pysyvyys"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "Poista viestiketjun pysyvyys"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "Tee pysyvä"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Tee tästä viestiketjusta pysyvä"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Vapauta"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Vapauta tämä viestiketju"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Lukitse"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Lukitse tämä viestiketju"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Siirrä tämä viestiketju"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Muokkaa otsikkoa"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Muokkaa viestiketjun otsikkoa"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr "Vie ilmoituksena"
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr "Älä vie"
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr "Älä vie tätä uutista ilmoituksena"
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Järjestä"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr "Ketjun tila päivitetty"
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr "Tila on päivitetty."
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr "%1 -käyttäjän viestit"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "On jo ystävä"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Pyysit ystävyyttä %1 kanssa %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Tämä pyyntö odottaa vahvistusta."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 ei hyväksy ystävyyspyyntöjä sinulta"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Et voi olla ystävä itsesi kanssa"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Lisää ystäväksi"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Olet pyytänyt, että %1 lisätään ystäväksesi. Ilmoitamme hänelle (%1) ja "
-"pyydämme häntä vahvistamaan ystävyytenne."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Lisää valinnainen viesti tähän:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Ystävyyskutsu lähetettiin"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Olemme ilmoittaneet %1 pyynnöstäsi."
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr "Ole hyvä ja kirjaudu käyttäjänä %1"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr "Sinun pitää kirjautua käyttäjänä %1 nähdäksesi tämän ystävyyspyynnön"
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Ystävyyspyyntö"
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr "%1 on pyytänyt ystävyyttä kanssasi."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 sanoo: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Hyväksy ystävyys"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Napsauta hyväksy, jos %1 on ystävä"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Kieltäydy"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Napsauta kieltäydy jos %1 ei ole ystävä"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Ystävyys vahvistettu"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Ystävyytesi %1 kanssa on vahvistettu."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Ystävyys torjuttu"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Torjuit ystävyyden %1 kanssa"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Ilmoitusta ei löydy"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Ystävä vahvistettu"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Olet nyt ystävä %1 kanssa."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Peruuta ystävyys?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Haluatko varmasti peruuttaa ystävyyden %1 kanssa?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Pysy ystävänä"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Ystävyys peruttu"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Ystävyytesi %1 kanssa on peruttu."
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Tilitieto unohtunut?"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-"1) Jos tilisi sähköpostiosoite on tiedossa ja pääset lukemaan sähköposteja "
-"siellä:"
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-"Anna sähköpostiosoitteesi ja napsauta OK. Saat ohjeet salasanan "
-"asettamiseksi."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-"2) Jos olet unohtanut tilisi sähköpostiosoitteen tai et pääse lukemaan "
-"sähköposteja siellä:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-"Jos olet ajanut BOINCia tällä tilillä, pääset siihen yhä käsiksi. Näin se "
-"tapahtuu:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-"Mene tietokoneen BOINC datahakemistoon (sijainti löytyy tapahtumalokin "
-"alusta)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Hae tämän projektin tilitiedosto; se on nimeltään <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Avaa tiedosto tekstieditorilla, esim. Notepadilla. Tiedosto näyttää "
-"tämäntapaiselta"
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Valitse ja kopioi merkkijono %1 ja %2 välillä (%3 ylläolevassa esimerkissä)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Liitä merkkijono allaolevaan kenttään ja napsauta OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Kirjaudut nyt tilillesi; päivitä tilisi sähköposti ja salasana."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Kirjaudu varmenteella"
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr "GPU tehtäviä ei ole raportoitu"
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-"Seuraava listaus näyttää tehokkaimmat GPU mallit eri alustoilla.  "
-"Suhteellinen nopeus on suluissa."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Tervetuloa %1 -projektiin"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Katso ja muokkaa tilisi asetuksia alla olevien linkkien kautta."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Jos et ole vielä tehnyt niin, %1lataa BOINC ohjelmisto%2."
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonyymi alusta, puuttuva sovellus"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "anonyymi alusta"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Puuttuva sovellusversio"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Puuttuva sovellus"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Puuttuva alusta"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Valmiiksi saatujen tehtävien määrä"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Suurin määrä tehtäviä päivää kohti"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Tehtävien määrä tänään"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Peräkkäiset vahvistetut tehtävät"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Keskimääräinen suoritusnopeus"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Koneen %1 sovellustiedot"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Tietokoneesta ei ole merkintää."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-"Et voi poistaa tämän tietokoneen merkintää, koska tietokannassamme on yhä "
-"työtä sille. Odota muutama päivä, jotta tietokoneen työt on poistettu "
-"projektin tietokannasta."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Poista merkintä tietokoneesta"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Merkintä poistettu."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Takaisin tietokonelistaasi"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Sulauta tietokoneiden merkinnät"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Sulauta koneet"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Joskus BOINC liittää vahingossa samalle koneelle eri tunnisteita. Voit "
-"korjata tämän sulauttamalla vanhat tunnisteet uusimman kanssa."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Tämän koneen kanssa sulautettavaksi sopivia koneita ei ole."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Näytä tiedot"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-"Tarkista tietokoneet, jotka ovat samoja kuin %1 (luotu %2, koneen tunniste %"
-"3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "nimi"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "luotu"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "tietokoneen tunniste"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "ei konenimeä"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Sulauta koneet"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr "Päivitetään koneen pisteitä"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Koneen paikka päivitetty"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "ei mikään"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Tämän koneen paikka on asetettu paikkaan %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-"Tämä muutos tulee voimaan kun kone on seuraavan kerran yhteydessä "
-"projektiin."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Takaisin konesivulle"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Tietokoneet, jotka kuuluvat käyttäjälle %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Tietokoneet piilotettu"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Tämä käyttäjä ei ole halunnut näyttää tietokoneittensa tietoja."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Tietokoneesi"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Sallitut HTML-tagit"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Seuraavat HTML-tagit ovat sallittuja tiimin kuvauksessa:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "lihavointi"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "kursivointi"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlinkki"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "kappale"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "rivinvaihto"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "muotoilematon"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-"kuva; korkeus enintään 450 pikseliä. Älä linkitä kuviin ilman nettisivuston, "
-"jolla kuva on, lupaa."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Voit käyttää et-merkkiä erikoismerkkeihin."
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Aja %1 vain koneella, johon sinulla on oikeus"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Aja %1 vain tietokoneella, jonka omistat tai jonka käyttöön olet saanut "
-"luvan. Jotkut yritykset ja koulut eivät salli tietokoneittensa käyttöä %1 "
-"tapaisiin projekteihin."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Kuinka %1 käyttää tietokonettasi"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Ajaessasi %1 -projektia koneellasi se käyttää tietokoneen keskusyksikön "
-"tehoa, levytilaa ja tietoliikenneyhteyttä. Voit vaikuttaa siihen, paljonko %"
-"1 käyttää näitä resursseja ja milloin."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Tietokoneesi tekemä työ hyödyttää %1 -projektin tavoitteita siten kuin sen "
-"nettisivuilla on kerrottu. Sovellusohjelmat voivat vaihtua aika ajoin."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Tietosuojalausunto"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"%1 -tilisi tunnistetaan valitsemallasi nimellä. Nimi saattaa näkyä %1 "
-"-projektin nettisivulla samoin kuin tietokoneesi suorittamat työt %1 "
-"-projektille. Jos haluat pysyä anonyyminä, valitse nimi joka ei paljasta "
-"identiteettiäsi."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Osallistuessasi %1 -projektiin, tietoja tietokoneestasi (suorittimen tyyppi, "
-"muistin määrä jne.) tallennetaan %1 -projektin toimesta ja sen perusteella "
-"päätetään, minkäläisiä töitä tietokoneellesi annetaan. Tiedot näkyvät myös %"
-"1 -projektin nettisivuilla. Sellaisia tietoja, joista voitaisiin nähdä "
-"tietokoneesi sijainti, ei näytetä (esim. domain-nimi tai verkko-osoite)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Osallistuessasi %1 -projektiin sinun tulee antaa toimiva sähköpostiosoite. "
-"Osoitetta ei näytetä %1 -nettisivulla eikä jaeta muille. %1 saattaa lähettää "
-"ajoittaisia uutiskirjeitä, jotka voit keskeyttää milloin vain."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"%1 -sivuston kautta lähetetyt yksityisviestit näkyvät vain lähettäjälle ja "
-"vastaanottajalle.  %1 ei tutki yksityisviestien sisältöä.  Jos saat ei-"
-"toivottuja yksityisviestejä %1 -käyttäjältä, voit lisätä heidät %"
-"2viestisuodattimeen%3.  Sen jälkeen et näe kyseisen käyttäjän yleisiä tai "
-"yksityisiä viestejä."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Käyttäessäsi nettifoorumiamme, noudata viestien lähettämistä koskevaa %"
-"2ohjeistusta%3.  %1 -foorumiin lähetetyt viestit näkyvät kaikille, myös "
-"niille, jotka eivät ole jäseniä.  Lähettämällä viestin foorumiin myönnät "
-"kaikille oikeuden katsoa ja kopioida viestejäsi."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Onko %1 turvallinen ajaa?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Aina ladatessasi ohjelman internetistä otat riskin: ohjelmassa saattaa olla "
-"vakavia virheitä tai latauspalvelimelle on murtauduttu. %1 on pyrkinyt "
-"minimoimaan nämä riskit. Sovellukset on testattu huolellisesti. Palvelimet "
-"ovat palomuurilla suojattu ja asennettu turvallisuutta ajatellen. "
-"Ladattavien ohjelmien eheys on varmistettu digitaalisella "
-"allekirjoituksella, joka on tehty tietokoneella, joka ei ole yhteydessä "
-"internettiin."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Sovellukset, jota %1 käyttää, voivat aiheuttaa joidenkin tietokoneiden "
-"ylikuumenemista. Jos niin käy, lopeta %1 tai käytä %2ohjelmaa%3 joka "
-"rajoittaa keskusyksikön kuormitusta."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 kehitettiin %2 toimesta. BOINC kehitettiin Kalifornian yliopistolla."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Vastuu"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 ja %2 eivät ota mitään vastuuta tietokoneellesi aiheutuvasta vahingosta, "
-"tietojen häviämisestä tai mistään muusta tapahtumasta, joka on seurausta "
-"osallistumisesta %1 -projektiin."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Muita BOINC-projekteja"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Muutkin projektit käyttävät samaa alustaa, BOINCia, kuten myös %1. Haluat "
-"ehkä osallistua yhteen tai useampaan näistä projekteista. Silloin "
-"tietokoneesi suorittaa hyödyllistä työtä silloinkin kun %1 -projektilla ei "
-"ole työtä."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Nämä muut projektit eivät ole missään yhteydessä %1 -projektiin emmekä voi "
-"taata heidän turvamenettelyjään tai tutkimusten luonnetta. Heidän "
-"projekteihinsa liittyminen tapahtuu omalla riskillä."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Kielivalinta"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Tämä nettisivu löytyy useammalla kielellä. Nykyinen kielivalinta on %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Kielivalinta perustuu yleensä selaimen kieliasetukseen, joka on: %1.  Voit "
-"muuttaa asetusta:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-"Firefox: Työkalut/Asetukset/Sisältö-välilehti, josta Kielet-kohta ja "
-"Valitse-nappi"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Työkalut/Internet-asetukset/Kielet"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Kielen voi myös valita napsauttamalla jotain linkeistä.  Tällöin "
-"selaimellesi lähetetään eväste. Varmista, että selaimesi hyväksyy meidän "
-"evästeet."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Kielen nimi (napsauta valitaksesi)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Käytä selaimen kieliasetusta"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Käännökset tehdään vapaaehtoisvoimin.  Jos oma kielesi ei ole listalla, %"
-"1voit tarjota käännöstä%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Sähköpostiosoite:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "sähköpostiosoite unohtunut?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Salasana:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "salasana unohtunut?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Pysy kirjautuneena"
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "tai %1luo tili%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Käsitellään %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Sulautettiin kone %1 koneeseen %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Takaisin tietokonelistaasi"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-"Tämä toiminto sulauttaa tietokoneet niiden domainnimen perusteella.\n"
-"        <p>\n"
-"        Jokainen vanha tietokone sulautetaan uusimman koneen\n"
-"        kanssa, jolla on sama domainnimi.\n"
-"        Epäyhteensopivia koneita ei sulauteta.\n"
-"        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Suorita tämä toiminto"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Takaisin tietokonelistaan"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-"\n"
-"Keskustelun ja tiedonkulun varmistamiseksi,\n"
-"keskustelupalstamme ovat moderoituja.\n"
-"Palstojen viestien on täytettävä seuraavat säännöt:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-"\n"
-"<p>\n"
-"Moderaattorit voivat poistaa viestit, jotka ovat sääntöjen vastaisia.\n"
-"Poistettujen viestien kirjoittajat saavat tiedon sähköpostitse.\n"
-"Sääntöjen rikkojat voivat menettää oikeudet viestien kirjoittamiseen "
-"joksikin aikaa\n"
-"(väärinkäytösten estämiseksi vain projektien ylläpitäjät voivat rajoittaa "
-"oikeuksia).\n"
-"Muutkin huonot tavat (kuten viestiketjujen luominen\n"
-"foorumin spämmäämiseksi)\n"
-"voivat johtaa vastaaviin\n"
-"rangaistuksiin.\n"
-"<p>\n"
-"Jos viesti mielestäsi rikkoo sääntöjä,\n"
-"napsauta punaista X-merkkiä ja täytä lomake;\n"
-"moderaattorit saavat tiedon valituksestasi.\n"
-"Käytä nappia vain selvissä tapauksissa - ei\n"
-"henkilökohtaisissa kiistoissa.\n"
-"<p>\n"
-"Yritämme olla mahdollisimman reiluja moderoinnissa,\n"
-"mutta suuren käyttäjämäärän ja eri näkemysten vuoksi,\n"
-"aina joku on tyytymätön\n"
-"moderointipäätökseen.\n"
-"Tämä on valitettavaa,\n"
-"emmekä voi olla mieliksi kaikille kaiken aikaa ja\n"
-"päätökset pitää tehdä voimavarojen mukaan sekä\n"
-"foorumin parhaaksi.\n"
-"Älä keskustele moderoinnista foorumilla. Emme ole sosiaalinen\n"
-"projekti emmekä ole tekemässä täydellistä järjestelmää.\n"
-"Moderointikeskustelut eivät siten ole tuottavia vaan mahdollisesti\n"
-"yllyttäviä. Jos sinulla on asiallinen vaatimus,\n"
-"lähetä sähköpostia alla olevaa osoitteeseen.\n"
-"<p>\n"
-"Moderointikäytäntö on %1 projektin tekemä.\n"
-"Kommentteja käytännöstä voi lähettää osoitteeseen %2.\n"
-"\n"
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Pisteitä odottavat"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Tehtävän tunniste"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "Työpaketin tunniste"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "Koneen tunniste"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Pyydetyt pisteet"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Odottavat pisteet: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Torju viestit tältä käyttäjältä"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Torju käyttäjä"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Viestisi on lähetetty."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Sinulle ei ole yksityisviestejä."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Lähettäjä ja päiväys"
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr "Vastaa tähän viestiin"
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr "Poista tämä viesti"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr "Valitse kaikki"
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr "Poista valinta kaikista"
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Poista valitut viestit"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Lähettäjä"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Päiväys"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Kaikki kentät pitää täyttää yksityisviestin lähettämiseksi"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Viestisi merkittiin spämmiksi\n"
-"                Akismet-spämminestojärjestelmän toimesta.\n"
-"                Muokkaa tekstiäsi ja yritä uudelleen."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Käyttäjätunnistetta %1 ei löytynyt"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Käyttäjänimeä %1 ei löytynyt"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 ei ole kelvollinen käyttäjänimi; käytä käyttäjän ID:tä"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Käyttäjä %1 (tunniste: %2) ei halua sinulta yksityisviestejä."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Käyttäjää ei ole olemassa"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Estetäänkö %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Haluatko estää käyttäjää %1 lähettämästä yksityisviestejä?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Voit estää vain rajoitetun määrän käyttäjiä."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Foorumin asetukset-sivulta voi poistaa aiemmin tehdyn käyttäjäeston."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Ei, peruuta"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "käyttäjää ei ole"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Käyttäjä %1 estetty"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Käyttäjää %1 on estetty lähettämästä sinulle yksityisviestejä."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Esto poistetaan %1keskustelupalstan asetuksista%2"
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr "Tuntematon toiminto"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Asetukset on päivitetty ja ne tulevat voimaan\n"
-"          kun tietokoneesi on yhteydessä %1 kanssa\n"
-"          tai kun napsautat %2Päivitä%3 BOINC Managerissa."
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Asetukset on palautettu oletuksiinsa ja ne tulevat voimaan\n"
-"          kun tietokoneesi on yhteydessä %1 kanssa\n"
-"          tai kun napsautat %2Päivitä%3 BOINC Managerissa."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Takaisin asetuksiin"
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr "Vahvista asetusten poisto"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Haluatko poistaa erilliset %1 -asetukset paikalle %2?"
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "Poista asetukset"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "Peruuta"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"%1Profiilien%2 avulla voi jakaa taustatietojaan ja mielipiteitään %3 "
-"-yhteisön kanssa."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Tutustu muihin vapaaehtoisiin ja kerro omat ajatuksesi muille."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"Jos et ole jo tehnyt, niin voit luoda oman %1käyttäjäprofiilisi%2 muiden "
-"nähtäväksi."
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Päivän käyttäjä"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Käyttäjäprofiilien selaus"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Katso %1käyttäjien kuvagallerioita%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Selaa profiileja %1valtioittain%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Selaa profiileja %1satunnaisjärjestyksessä%2, %3satunnaisesti kuvilla%2 tai "
-"%4satunnaisesti ilman kuvia%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Aakkosellinen profiililistaus:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Hae profiilin tekstistä"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Ei profiileja"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Ei hakuehdot täyttäviä profiileja."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr "Virheellinen ehdotus:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Ehdotus tallennettiin"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Kiitos"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Suosituksesi tallennettiin."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Ehdotuksesi profiilin torjumiseksi on tallennettu."
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Takaisin profiiliin."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr "Profiilit, jotka sisältävät \"%1\""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr "Käyttäjänimi"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr "Liittynyt projektiin"
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr "Lähiajan pisteet"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr "Profiilit, jotka sisältävät \"%1\" ei löytynyt"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Tehtävä %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Tämä toiminto on tilapäisesti kytketty pois päältä"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Tietokonetta tunnisteella %1 ei löydy"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Ei pääsyä"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Käyttäjä- tai konetunniste puuttuu"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Näytettäviä tehtäviä ei ole"
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Käynnissä"
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr "Ei käynnissä"
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr "Sammutettu"
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "Projektin tila"
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Palvelimen ohjelmistoversio: %1"
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr "Ohjelma"
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr "Kone"
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "tietokantaa käyttävät sivut"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "lähettävä/vast.ottava palvelin"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "aikatauluttaja"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Käynnissä:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Ohjelma toimii normaalisti"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Ei käynnissä:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Ohjelma sammui tai projekti on suljettu"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Sammutettu:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Ohjelma on sammutettu"
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr "Laskennan tila"
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Tietokantapalvelimeen ei saada yhteyttä"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Tehtäviä lähetettävänä"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Suorituksessa olevat"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Varmennusta odottavat työpaketit"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Yhdistämistä odottavat työpaketit"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Poistoa odottavat työpaketit"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Poistoa odottavat paketit"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Siirtokasautuma (tuntia)"
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr "Käyttäjiä"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "joilla pisteitä hiljattain"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "joilla pisteitä"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "viimeisen vrk:n aikana rekisteröityneet"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "tämänhetkiset GigaFLOPSit"
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr "Tehtävät sovelluksittain"
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "sovellus"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "lähettämättä"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "laskennassa"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "viim. 100 paketin keskim. suoritusaika ed. tunnillta (min-max)"
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "käyttäjiä edellisen 24 tunnin aikana"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Tietokone %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Tilastot ja sijalistaukset"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Käyttäjän %1 tilastot"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Tarkemmat tilastot %1 -projektista ja muista BOINC-pohjaisista projekteista "
-"löytyvät useilta nettisivuilta:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr "Voit saada nykyiset tilastosi \"sigu-kuvana\":"
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Lisäksi voit saada omat tilastosi summattuna kaikkien BOINC-projektien "
-"kesken useilta nettisivuilta. Katso tarkemmin %1omalta sivultasi%2."
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 -osallistujat voivat perustaa %2tiimejä%3."
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Voit kuulua kerrallaan vain yhteen tiimiin. Tiimiin voi liittyä ja siitä "
-"erota milloin vain."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Jokaisella tiimillä on %1perustaja%2 joka:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "saa tiimin jäsenten sähköpostiosoitteet"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "voi muokata tiimin nimeä ja kuvausta"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "lisätä tai poistaa tiimin ylläpitäjiä"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "voi poistaa jäseniä tiimistä"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "voi lopettaa tiimin, jos siinä ei ole jäseniä"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Tiimiin voi liittyä käymällä sen nettisivuilla ja napsauttamalla %1Liity "
-"tähän tiimiin%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Hae tiimi"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Kaikki tiimit"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 tiimit"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Luo uusi tiimi"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Jos et löydä itsellesi sopivaa tiimiä, %1voit luoda sen%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr "Poista tiimin ylläpitäjän oikeudet tältä henkilöltä"
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "Lisää tai poista tiimin ylläpitäjä"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Voi valita tiimin jäsenen tiimin ylläpitäjäksi. Ylläpitäjä voi:"
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Muokata tiimin tietoja (nimeä, URL-osoitetta, kuvausta, valtiota)"
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr "Katsoa tiimin liittymis-/eroamishistoriaa"
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderoi tiimin foorumia (ylläpitäjät saavat sähköposti-ilmoituksen "
-"moderointitapahtumista)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "Tiimin ylläpitäjä ei voi:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "Vaihtaa tiimin perustajaa"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Poistaa jäseniä"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Jos tiimin ylläpitäjä eroaa tiimistä, myös hänen ylläpitäjän oikeutensa "
-"lakkaavat."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-"Tiimin ylläpitäjäksi tulisi valita henkilö, jonka tunnet hyvin ja johon "
-"luotat."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "Tällä hetkellä ei ole ylläpitäjiä"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "Nykyiset ylläpitäjät"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "Ylläpitäjäksi tiimiin"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "Lisää ylläpitäjä"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "Tiimin jäsenen sähköpostiosoite:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "ylläpitäjän poisto epäonnistui"
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr "Käyttäjä ei ole tiimin jäsen"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr "%1 on jo %2 -tiimin ylläpitäjä"
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr "Ylläpitäjän lisäys epäonnistui"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Tiimiä ei ole"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "tiimiä ei ole"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "Käyttäjä ei ole %1 jäsen"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "Vaihdetaan tiimin %1 perustajuutta"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 on nyt tiimin %2 perustaja"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "Vaihda tiimin %1 perustaja"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-"Tiimin jäsen %1 pyysi tämän tiimin perustajuutta %2, mutta erosi tiimistä "
-"samalla peruuttaen pyyntönsä."
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Tiimin jäsen %1 on pyytänyt tiimin perustajuutta. Tämä johtunee siitä, että "
-"olet irrottautunut tiimistä tai et ole ollut yhteydessä tiimiin pitkään "
-"aikaan."
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "torju pyyntö"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Jos et torju pyyntöä %1 mennessä, %2 saa mahdollisuuden ottaa tiimin "
-"perustajuus.<br /><br />\n"
-"                  Hyväksy pyyntö liittämällä perustajuus %3:lle allaolevalla "
-"lomakeella."
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "Siirtopyyntöjä ei ole odottamassa."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Vaihtaaksesi tämän tiimin perustajuuden toiselle jäsenelle, merkitse "
-"laatikko käyttäjän nimen vieressä ja napsauta alempana <strong>Vaihda "
-"perustaja</strong>."
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "Uusi perustaja?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "Vaihda perustaja"
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr "Tiimiin siirrettäviä käyttäjiä ei ole."
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Tiimille pitää valita jokin nimi"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Tiiminimi %1 on jo käytössä - kokeile toista nimeä"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Tiimin luonti ei onnistunut - yritä myöhemmin uudelleen."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Luo tiimi"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-"Kuulut tiimiin %1. Sinun pitää %2erota tästä tiimistä%3 ennen kuin voit "
-"luoda uuden."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr "Ei perustaja tai ylläpitäjä"
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "Tiimin %1 historia"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Milloin"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Käyttäjä"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "Toiminto"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr "Kokonaispisteet toiminnon tapahtuessa"
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "väärä maa"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "Nimi \"%1\" on toisen tiimin käytössä."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "Tiiminimi on annettava"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Tiimin päivitys ei onnistunut - yritä myöhemmin uudelleen."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Muokkaa %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Päivitä tiimitiedot"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 Postituslista"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "%1:n jäsenlista"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Näytä pelkkkänä tekstinä"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr "Luo keskustelupalsta"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr "Voit luoda keskustelupalstan %1 -tiimille."
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr "Vain tiimin jäsenet voivat lähettää viestejä."
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "Lukuoikeus voidaan rajoittaa vain jäsenille."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Sinulla ja tiimin ylläpitäjillä on moderaattorin oikeudet."
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr "Luo keskustelupalsta %1 -tiimille"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr "Tiimillä on jo keskustelupalsta"
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr "Tiimin keskustelupalsta"
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr "Lyhin aika viestien välillä (sekuntia)"
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr "Viestin lähettämiseen vaadittava pistemäärä"
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr "Viestin lähettämiseen vaadittava keskimääräinen pistemäärä"
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Lähetä"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr "Poista tiimisi keskustelupalsta."
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr "Poistetaanko keskustelupalsta?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-"Poistetaanko tiimin keskustelupalsta? Kaikki viestiketjut viesteineen "
-"poistetaan pysyvästi (voit luoda uuden keskustelupalstan myöhemmin)."
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr "Kyllä - poista keskustelupalsta"
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr "Keskustelupalsta poistettu"
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr "Tiimisi keskustelupalsta on poistettu. Voit %1luoda uuden%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr "Tiimin keskustelupalsta päivitetty"
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "Päivitys onnistui"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Päivitys epäonnistui"
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr "Tiimillä ei ole foorumia"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "Nähdäksesi sivun sinun pitää olla tiimin jäsen."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr "Pyydetään tiimin %1 perustajuutta"
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Nykyiselle perustajalle on ilmoitettu pyynnöstäsi sähköpostitse ja "
-"yksityisviestillä.<br /><br />\n"
-"                       Jos perustaja ei vastaa 60 päivän kuluessa, saat "
-"ryhtyä perustajaksi."
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr "Perustajuutta ei voi nyt pyytää"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr "Otettiin tiimin %1 perustajuus"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-"Onnittelut, olet nyt tiimin %1 perustaja. Käy %2tilisivulla%3 katsomassa "
-"ylläpitäjän asetukset."
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr "Torju pyyntö perustajan vaihdosta"
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr "Perustajuuspyyntö käyttäjältä %1 on torjuttu."
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr "Perustajuuspyyntöjä ei löytynyt."
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "määrittämätön toiminto %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "Takaisin tiimin sivulle"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "Sinun pitää olla tiimin jäsen nähdäksesi tämän sivun."
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr "Pyydä tiimin %1 perustajuutta"
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr "Olet nyt tiimin %1 perustaja."
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr "Pyysit %1 perustajuutta %2."
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-"60 päivää on kulunut pyynnöstäsi eikä perustaja ole vastannut. Voit nyt "
-"ottaa perustajuuden napsauttamalla tästä:"
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr "Ota perustajuus"
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-"Perustajalle ilmoitettiin pyynnöstäsi. Jos hän ei vastaa tietyn ajan "
-"kuluessa (%1) saat mahdollisuuden olla perustaja."
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-"Jos tiimin perustaja ei ole aktiivinen ja haluat omaksua perustajan roolin, "
-"napsauta allaolevaa nappia. Nykyiselle perustajalle lähetetään sähköposti "
-"koskien pyyntöäsi ja mahdollisuus siirtää tai evätä perustajuus. Jos "
-"perustaja ei vastaa 60 päivän kuluessa, voit saada perustajuuden.<br /><br "
-"/>\n"
-"                       Haluatko pyytää perustajuutta?"
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr "Pyydä perustajuutta"
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "%1 on jo pyytänyt perustajuuden vaihtoa %2."
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-"Perustajuuden vaihtoa on pyydetty viimeisen 90 päivän aikana, joten uusia "
-"pyyntöjä ei sallita. Yritä myöhemmin uudelleen."
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr "Tiimiin %1 ei voi liittyä."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "On jo jäsen"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Olet jo jäsenenä %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Tiimiin liittyminen epäonnistui - yritä myöhemmin uudelleen."
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "Liityttiin %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr "Liityit %1."
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Liity %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr "Huomaa:"
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Liittymällä tiimiin sen perustaja saa sähköpostiosoitteesi."
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr "Tiimiin liittyminen ei vaikuta mitenkään tilisi pisteisiin."
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr "Liity tiimiin"
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Hakutulokset"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Hakutulokset haulle \"%1\""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Voit katsoa näiden tiimien jäseniä, tilastoja ja tietoja."
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Yli 100 tiimiä vastaa hakuasi. Ensimmäiset 100 näytetään."
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Tulosten loppu. %1 Jos et löydä hakemaasi tiimiä, voit itse %2luoda tiimin%"
-"3."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr "%1 -tiimin ylläpitäjät"
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "Muokkaa tiimin tietoja"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "Muuta tiimin nimeä, URL-osoitetta, kuvausta, tyyppiä tai valtiota"
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Käyttäjälista:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "teksti"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Selaa jäsenten nimiä ja sähköpostiosoitteita"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr "Selaa muutoshistoriaa:"
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr "Tarkastele, milloin jäsenet ovat liittyneet tai eronneet tästä tiimistä"
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr "Vastaa perustajuuspyyntöön."
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Jos et vastaa %1 mennessä, %2 voi ottaa tämän tiimin perustajuuden."
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Poista ei-aktiiviset tai ei-toivotut jäsenet tästä tiimistä"
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr "Siirrä perustajuus toiselle jäsenelle"
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "Lisää/poista ylläpitäjiä"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr "Anna valituille jäsenille ylläpitäjän oikeudet"
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "Poista tiimi"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "Sallittu vain jos tiimillä ei ole jäseniä"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr "Luo tai hoida tiimin keskustelupalstaa"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Jotta tämä tiimi olisi kaikissa BOINC-projekteissa (nykyisissä ja tulevissa) "
-"voit tehdä siitä %1BOINC-laajuisen tiimin%2."
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-"Tiimin ylläpitäjiä rohkaistaan liittymään ja osallistumaan Googlen %1boinc-"
-"team-founders%2 -ryhmään."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Lisää tietoa BOINC-tiimien ylläpitäjille löytyy osoitteesta %"
-"1www.boincteams.com%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Tiimin pitää olla tyhjä ennen poistamista"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Tiimi %1 poistettu"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Raja saavutettu:  näytetään vain ensimmäiset 1000 jäsentä."
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "%1:n jäsenet"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "Tiimistä eroaminen ei onnistu"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Tiimiä ei ole tai et kuulu siihen."
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "Eroa %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Ennen tiimistä eroamista:</strong>\n"
-"         <ul>\n"
-"         <li>Tiimistä erotessasi voit liittyä myöhemmn uudelleen tai liittyä "
-"toiseen tiimiin\n"
-"         <li>Tiimistä eroaminen ei vaikuta mitenkään pistetilastoihisi.\n"
-"         </ul>"
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Eroa tiimistä"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Poistetaan käyttäjiä tiimistä %1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 ei ole %2 jäsen"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 on poistettu"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Poista jäseniä tiimistä %1"
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "Poista?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Nimi (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "Poistettavia jäseniä ei ole."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Poista käyttäjiä"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Tiiminimi"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Tiimihaun tulokset"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Hakuehdollasi ei löytynyt tiimiä. Kokeile uutta hakua."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Tai %1voit luoda uuden tiimin%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-"Seuraavat tiimit vastaavat hakuehtojasi.\n"
-"            Liittyäksesi tiimiin napsauta tiimin nimeä mennäksesi sen "
-"nettisivulle,\n"
-"               jossa napsauta %1Liity tähän tiimiin%2."
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "Muuta hakua"
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-"Tiimin voi perustaa ihmisten kanssa, joilla on samat mielenkiinnon kohteet "
-"tai ovat samasta maasta, yrityksestä tai koulusta."
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr "Käytä tätä lomaketta hakeaksesi itsellesi sopivia tiimejä."
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1En halua nyt%2 liittyä tiimiin."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Raja saavutettu - vain ensimmäiset %1 näytetään"
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Koneiden kärki"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "%1 -tiimien kärki"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr "%1 -tiimejä ei ole"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Osallistunut alkaen"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "Päivän käyttäjää ei ole valittu."
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr "%1:n päivän käyttäjä: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Suodattimet"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Käyttäjänimi alkaa"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Mikä tahansa"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Profiililla?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Molemmat"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "Tiimissä?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Järjestetään"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Aleneva järjestys liittymisajan mukaan"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Aleneva järjestys keskimääräisten pisteiden mukaan"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Aleneva järjestys kokonaispisteiden mukaan"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "hakuehdossa pitää olla väh. 3 merkkiä"
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Käyttäjähaun tulokset"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Liittynyt"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr "Hakuehdoilla ei löytynyt käyttäjiä."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Käyttäjää ei löytynyt!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Tilitiedot<br/>%1<br/>Aika:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Tiimi:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Tiimin kok.pisteet:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Tiimin keskim.pisteet:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Tiimi: Ei mikään"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Vahvista BOINC-sähköpostiosoite"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-"Napsauta oheista linkkiä vahvistaaksesi sähköpostisoitteen tilillesi %1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Vahvistussähköposti lähetetty"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-"Sähköposti on lähetetty osoitteeseen %1. Napsauta siinä olevaa linkkiä "
-"vahvistaaksesi sähköpostiosoitteesi."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Käyttäjää ei ole."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Virhe URL-osoitteessa - sähköpostiosoitetta ei voi vahvistaa"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Tietokannan päivitys epäonnistui, yritä myöhemmin uudelleen."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Vahvista sähköpostiosoite"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Tilisi sähköpostiosoite on vahvistettu."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Tällä käyttäjällä ei ole profiilia"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Profiili: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Tilitiedot"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-"Pääset tiliisi käyttämällä joko sähköpostiosoitettasi ja salasanaa,\n"
-"    tai käyttämällä \"tiliavainta\".\n"
-"    Tiliavaimesi on:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Tätä avainta voidaan käyttää:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "kirjautumiseen tiliisi netissä"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-"liittämään tietokone tiliisi ilman BOINC Manageria.\n"
-"       Toimi näin: asenna BOINC,\n"
-"       luo tiedosto nimeltään %1 BOINC\n"
-"       datahakemistoon ja laita sisällöksi:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Heikko tiliavain"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-"Heikkoa tiliavaintasi voidaan käyttää tietokoneitten littämiseen tiliisi\n"
-"    yllä kerrotulla tavalla, mutta sitä ei voi käyttää kirjautumiseen tai "
-"tilisi muuttamiseen.\n"
-"    Jos haluat liittää turvattoman tietokoneen tiliisi,\n"
-"    tee se käyttämällä heikkoa tiliavainta.\n"
-"    Heikko tiliavaimesi on:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-"Jos vaihdat salasanasi, heikko tiliavaimesi muuttuu ja aiempi heikko "
-"tiliavain mitätöityy."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "työpakettia ei löydy"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Työpaketti %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "kanoninen tulos"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "myönnetyt pisteet"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "julkaisuesto päättynyt"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "oikeita tuloksia vähintään"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "alustavia toisintoja"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "suurin lkm virheitä/kokonaismääriä/onnistuneita tehtäviä"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "virheet"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "vahvistus"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Odottavat"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Etusivu"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Tekijänoikeus"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Luotu"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr "Taustatietoja itsestäsi."
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Kerro itsestäsi. Voit kertoa mistä päin olet, ikäsi, ammattisi, "
-"harrastuksesi ja niin edelleen."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Mitä mieltä olet %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-"Kerro, mitä mieltä olet %1<ol>\n"
-"    <li>Miksi ajat %1?\n"
-"    <li>Minkälaisia näkemyksiä sinulla on projektista?\n"
-"    <li>Ehdotuksia?\n"
-"    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Grafiikan värivalinta"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Suurin CPU:n %-osuus grafiikalle%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Aja vain valittuja sovelluksia"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Jos valituille sovelluksille ei ole työtä, hyväksytäänkö työtä muille "
-"sovelluksille?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(kaikki sovellukset)"
-
-#~ msgid "Error:"
-#~ msgstr "Virhe:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Tilin luonti on pois käytöstä"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Valitettavasti tämä projekti ei salli uuden tilin luontia.\n"
-#~ "Yritä myöhemmin uudelleen."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Tilin luonti on tällä hetkellä pois käytöstä. Yritä myöhemmin uudelleen."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "nvidia GPU"
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Tämä projekti ei vielä ole luonut sähköpostiviestiä - ilmoita asiasta "
-#~ "ylläpitäjille"
-
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Käytä Intel GPUta %1 (versiosta 7.0+) %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Nämä koskevat kaikkia BOINC-projekteja joihin osallistut.<br>\n"
-#~ "             Tuoreimpia asetuksia käytetään koneissa, jotka osallistuvat "
-#~ "useisiin projekteihin."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "Vie tämä uutinen ilmoituksena"
-
-#~ msgid ""
-#~ "Go to the BOINC data directory on your computer (on Windows this is usually "
-#~ "<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-#~ "<b>C:\\Program Files\\BOINC</b>."
-#~ msgstr ""
-#~ "Siirry BOINCin datahakemistoon (Windowsissa se on yleensä <b>C:\\Documents "
-#~ "and Settings\\All Users\\Application Data\\BOINC</b> tai <b>C:\\Program "
-#~ "Files\\BOINC</b>."
-
-#~ msgid "No such task"
-#~ msgstr "Tehtävää ei ole"
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Kone on yhteydessä nettiin %1 Jätä tyhjäksi tai 0 jos yhteys on aina. %2 "
-#~ "BOINC yrittää pitää vähintään tämän verran työtä (enint. 10 päivää). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Pidä lisäksi työtä tämän verran"
-
-#~ msgid "Update failed: "
-#~ msgstr "Päivitys epäonnistui: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Sallii %1rajoitetun pääsyn%2 tiliisi"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Älä käytä tätä lomaketta. Käynnistä BOINC, valitse Lisää projekti ja syötä "
-#~ "sähköpostiosoite ja salasana."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Älä järjestele pysyviä viestejä"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Jos viestiketju sisältää enemmän kuin näin monta viestiä"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "näytä vain ensimmäinen ja näin monta lopuista"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Raporttisi on tallennettu. Kiitos."
-
-#~ msgid "Search type"
-#~ msgstr "Hakutapa"
-
-#~ msgid "User names starting with"
-#~ msgstr "Käyttäjänimet, jotka alkavat"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "\"Heikko tiliavain\" mahdollistaa tietokoneesi liittämisen tähän projektiin, "
-#~ "mutta ei anna kirjautua sisään tai muuttaa tiliä mitenkään."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Tämä toiminto toimii vain projekteissa, jotka ovat päivittäneet "
-#~ "palvelinohjelmistonsa 7.12.2007 tai sen jälkeen."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Tämän projektisi heikko tiliavain on:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Käyttääksesi heikkoa tiliavainta tietokoneella, etsi tai luo \"tilitiedosto\" "
-#~ "projektille. Tiedoston nimi on muotoa <b>account_PROJECT_URL.xml</b>. "
-#~ "Tilitiedosto projektille %1 on <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Luo tämä tiedosto tarvittaessa. Sisällöksi tulee:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Heikko tiliavaimesi perustuu salasanaasi. Jos muutat salasanaasi, heikko "
-#~ "tiliavain muuttuu ja vastaava aiempi avain muuttuu käyttökelvottomaksi."
-
-#~ msgid "Account key"
-#~ msgstr "Tilin avain"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Sallii täydet oikeudet tiliisi"
-
-#~ msgid "Export"
-#~ msgstr "Vie"
-
-#~ msgid "- private message"
-#~ msgstr "- yksityisviesti"
-
-#~ msgid "Private message from"
-#~ msgstr "Yksityisviesti käyttäjältä"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "Sähköpostiosoitteen vahvistus odottaa"
-
-#~ msgid "Logged in as %1."
-#~ msgstr "Kirjauduttu nimellä %1."
-
-#~ msgid "Log in as someone else."
-#~ msgstr "Kirjaudu jonakin toisena."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Viestiketjua tunnisteella %1 ei ole. Tarkista linkki ja yritä uudelleen."
-
-#~ msgid "Request not found"
-#~ msgstr "Pyyntöä ei löydy"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 on lisännyt sinut ystäväkseen."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Käyttäjän %1 tilitiedot"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "keskustelupalstan luonti ei onnistunut"
-
-#~ msgid "message board not found"
-#~ msgstr "keskustelupalstaa ei löydy"
-
-#~ msgid "no such forum"
-#~ msgstr "foorumia ei ole"
-
-#~ msgid "unknown command %1"
-#~ msgstr "tuntematon kometo %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "VIRHE: %1 ei ole olemassa!  Valikkoa ei voi luoda.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Roskapostin estämiseksi pyydämme syöttämään kuvassa näkyvät sanat:<br>\n"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC-versio"
-
-#~ msgid "Client detached"
-#~ msgstr "Ohjelman lopettama"
-
-#~ msgid "Maximum daily WU quota per CPU"
-#~ msgstr "Suurin työpakettien päivittäinen määrä suoritinta kohden"
-
-#~ msgid "%1/day"
-#~ msgstr "%1/päivä"
-
-#~ msgid "Anonymous platform - CPU"
-#~ msgstr "Anonyymi alusta - CPU"
-
-#~ msgid "Anonymous platform - NVIDIA GPU"
-#~ msgstr "Anonyymi alusta - NVIDIA GPU"
-
-#~ msgid "Anonymous platform - ATI GPU"
-#~ msgstr "Anonyymi alusta - ATI GPU"
-
-#~ msgid "Task ID"
-#~ msgstr "Tehtävän tunniste"
-
-#~ msgid "Granted credit"
-#~ msgstr "Myönnetyt pisteet"
diff --git a/locale/fi/BOINC-Setup.mo b/locale/fi/BOINC-Setup.mo
index b6d10d6..d5f506f 100644
Binary files a/locale/fi/BOINC-Setup.mo and b/locale/fi/BOINC-Setup.mo differ
diff --git a/locale/fi/BOINC-Setup.po b/locale/fi/BOINC-Setup.po
index b7dc544..272ed4c 100644
--- a/locale/fi/BOINC-Setup.po
+++ b/locale/fi/BOINC-Setup.po
@@ -3,15 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Vesa Nilakari, 2015
+# Kasvain <kasvain at gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-03-05 05:13+0000\n"
-"Last-Translator: Vesa Nilakari\n"
-"Language-Team: Finnish (http://www.transifex.com/projects/p/boinc/language/fi/)\n"
+"PO-Revision-Date: 2015-04-20 12:34+0000\n"
+"Last-Translator: Sami Nordlund <sami.nordlund at kolumbus.fi>\n"
+"Language-Team: Finnish (http://www.transifex.com/boinc/boinc/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/fr/BOINC-Client.mo b/locale/fr/BOINC-Client.mo
index 94661e4..2fc50cf 100644
Binary files a/locale/fr/BOINC-Client.mo and b/locale/fr/BOINC-Client.mo differ
diff --git a/locale/fr/BOINC-Client.po b/locale/fr/BOINC-Client.po
index 6a2ad9d..dfcaab8 100644
--- a/locale/fr/BOINC-Client.po
+++ b/locale/fr/BOINC-Client.po
@@ -1,163 +1,180 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Axelle Andy, 2015
+# Frederic94500 <frederictran at hotmail.fr>, 2017
+# Jerome Cadet <jerome.cadet at pobox.com>, 2017
 # Philippe Janocha, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2016-01-20 19:17+0000\n"
-"Last-Translator: Philippe Janocha\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-07 10:58+0000\n"
+"Last-Translator: Jerome Cadet <jerome.cadet at pobox.com>\n"
 "Language-Team: French (http://www.transifex.com/boinc/boinc/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Message du gestionnaire de compte"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Message du serveur"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Certaines tâches nécessitent davantage de mémoire que celle permise dans vos préférences.  Merci de vérifier les préférences."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Impossible d'écrire dans le fichier d'état ; vérifiez les droits d'accès aux répertoires"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "La variable d'environnement HTTP_PROXY doit définir un proxy HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Vous avez utilisé la mauvaise URL pour ce projet. Retirez ce projet puis ajoutez de nouveau %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Ce projet utilise une ancienne URL. Quand cela sera opportun, supprimez le projet puis ajoutez %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Erreur de syntaxe dans app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Le fichier référencé dans app_info.xml n'existe pas : "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Une nouvelle version de BOINC est disponible."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Télécharger"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "ne peut pas être utilisé pour le calcul CUDA ou OpenCL avec le pilote CUDA 6.5 ou ultérieur"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Texte incorrect dans cc_config.xml "
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Balise non reconnue dans cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Balise de début manquante dans cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Erreur dans les options cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Balise de fin manquante dans cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Pour réparer ceci, vous pouvez"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "modifier les préférences de projet sur le site web du projet"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "supprimer les exclusions de GPU dans votre fichier cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "modifier vos paramètres sur le site web de votre gestionnaire de compte "
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Clé de compte invalide ou manquante. Veuillez retirer puis ajouter ce projet à nouveau."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Clé de signature de code invalide. Veuillez retirer puis ajouter ce projet à nouveau."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Le projet a changé sa clé de sécurité. Veuillez retirer et ajouter à nouveau ce projet."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Ce projet ne supporte pas ce système d'exploitation"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Ce projet ne supporte pas ce type de processeur"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Votre logiciel client BOINC est trop ancien. Merci d'installer la dernière version."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Ce projet ne supporte pas les ordinateurs de ce type"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Veuillez mettre à jour votre système avec les derniers drivers pour pouvoir calculer avec le GPU"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Veuillez mettre à jour votre système avec les derniers drivers pour pouvoir calculer toutes les applications GPU de ce projet"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Une version plus récente de BOINC est requise pour utiliser votre GPU NVIDIA ; merci de mettre à jour avec la dernière version"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Un processeur graphique %s est nécessaire pour effectuer les tâches de ce projet"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Aucune tâche disponible pour les applications que vous avez sélectionnées."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Votre ordinateur n'est pas supporté par ce projet"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "La nouvelle version de BOINC est nécessaire ; merci d'installer la dernière version"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Des tâches pour %s sont disponibles, mais vos préférences commandent de ne pas les accepter"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Nom de programme inconnu dans app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Votre fichier app_info.xml n'a pas une version utilisable de"
diff --git a/locale/fr/BOINC-Drupal.po b/locale/fr/BOINC-Drupal.po
index 4c44e6f..a6ad514 100644
--- a/locale/fr/BOINC-Drupal.po
+++ b/locale/fr/BOINC-Drupal.po
@@ -9,13 +9,15 @@
 # Lucas Mascaro <mascaro.lucas at yahoo.fr>, 2015
 # Petit Jérôme <yeromu at gmail.com>, 2015
 # Philippe Janocha, 2016
+# Ruben Rouvière <ruben at caramail.com>, 2016
+# Sacha Muszlak, 2016
 # Theresa Jordan <foreverblessedbyhim at gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2016-03-03 15:09+0000\n"
-"Last-Translator: Philippe Janocha\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-09-01 12:16+0000\n"
+"Last-Translator: Sacha Muszlak\n"
 "Language-Team: French (http://www.transifex.com/boinc/boinc/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,436 +25,504 @@ msgstr ""
 "Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-msgid "Please select a team type."
-msgstr "Veuillez sélectionner un type d'équipe."
-
-msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "Un changement de chef d'équipe a déjà été demandé récemment. Une seule requête est autorisée par période de 90 jours."
+msgid "Reject profile"
+msgstr "Rejeter le profil"
 
-msgid "@count days remaining"
-msgstr "@name jours restants."
+msgid "Ban user"
+msgstr "Bannir un utilisateur"
 
-msgid "Inbox"
-msgstr "Messagerie"
+msgid "I'm new"
+msgstr "Je suis nouveau"
 
-msgid "Compose new"
-msgstr "Rédiger un nouveau contenu"
+msgid "I'm a BOINC user"
+msgstr "Je suis un utilisateur de BOINC"
 
-msgid "respond to the request"
-msgstr "répondre à la requête"
+msgid "Authenticator login"
+msgstr "Identifiant de l'authentificateur"
 
 msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "Une demande de changement de chef d'équipe a été faite pour votre équipe. Veuillez y répondre."
-
-msgid "Respond to transfer request"
-msgstr "Répondre à la requête de transfert"
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Vous devez gagner @count crédits supplémentaires pour pouvoir écrire des commentaires sur ce site."
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "Le membre @name se propose d’être chef d'équipe. C'est peut-être parce que vous avez quitté l'équipe ou que vous n'avez pas eu de contact avec l'équipe depuis longtemps."
+msgid "Generic"
+msgstr "Générique"
 
-msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "Si vous ne répondez pas à la requête avant le @date, @name pourra devenir le fondateur de l'équipe. (remarque : Pour accepter la requête, assignez @name au rôle de fondateur comme décrit ci-dessous)."
+msgid "Home"
+msgstr "Accueil"
 
-msgid "Deny request"
-msgstr "Refuser la demande"
+msgid "Work"
+msgstr "Travail"
 
-msgid "Send request"
-msgstr "Envoyer la demande"
+msgid "School"
+msgstr "École"
 
-msgid "Friend request from !name [!site]"
-msgstr "Demande d'ami de !name [!site]"
+msgid "yes"
+msgstr "oui"
 
-msgid "Message"
-msgstr "Message"
+msgid "no"
+msgstr "non"
 
-msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name vous a ajouté comme ami sur !site. Vous pouvez accepter ou refuser cette demande. Rejeter une demande n'enverra pas de notification, mais supprimera la demande de vos deux comptes.\n\nSuivez le lien ci-dessous pour voir cette demande :\n\n!link\n\n!message\n\nMerci,\nl'équipe !site"
+msgid "Resource settings"
+msgstr "Configuration des ressources"
 
-msgid "Cancel friend request"
-msgstr "Annuler la demande d'ami"
+msgid "Resource share"
+msgstr "Partage des ressources"
 
-msgid "Remove request"
-msgstr "Supprimer la demande"
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Détermine la proportion des ressources de votre ordinateur allouée à ce projet. Par exemple : si vous participez à deux projets BOINC avec un partage de ressources de 100 et 200, le premier aura 1/3 des vos ressources et le second 2/3."
 
-msgid "Approve request"
-msgstr "Accepter la demande"
+msgid "Use CPU"
+msgstr "Utiliser le processeur"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "!name a accepté votre demande d'ami [!site]"
+msgid "Enforced by version @number"
+msgstr "Imposé par la version @number"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name a confirmé que vous étiez son ami sur !site.\n\nSuivez ce lien pour afficher son profil :\n!link\n\n!message\n\nMerci,\nl'équipe !site."
+msgid "Use NVIDIA GPU"
+msgstr "Utiliser la carte graphique NVIDIA"
 
-msgid "Email address"
-msgstr "Adresse email"
+msgid "Use ATI GPU"
+msgstr "Utiliser la carte graphique ATI"
 
-msgid "Home"
-msgstr "Accueil"
+msgid "Use INTEL GPU"
+msgstr "Utiliser la carte graphique INTEL"
 
-msgid "Login"
-msgstr "Nom d'utilisateur"
+msgid "Beta settings"
+msgstr "Configuration Beta"
 
-msgid "search"
-msgstr "Rechercher"
+msgid "Run test applications?"
+msgstr "Exécuter les applications de test ? "
 
-msgid "Server status"
-msgstr "État du serveur"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Ceci nous aide à développer les applications, mais peut générer des erreurs de calcul sur votre ordinateur"
 
-msgid "Language"
-msgstr "Langue"
+msgid " Default value: @default"
+msgstr "Valeur par défaut : @default"
 
-msgid "Enter your @s email address."
-msgstr "Entrez votre adresse mail @s."
+msgid "Applications"
+msgstr "Applications"
 
-msgid "Join now"
-msgstr "Inscrivez-vous"
+msgid "Default set"
+msgstr "Valeur par défaut"
 
-msgid "I'm new"
-msgstr "Je suis nouveau"
+msgid "Set used for new computers"
+msgstr "Valeur utilisée pour les nouveaux ordinateurs"
 
-msgid "I'm a BOINC user"
-msgstr "Je suis un utilisateur de BOINC"
+msgid "Save changes"
+msgstr "Enregistrer les modifications"
 
-msgid "Welcome back!"
-msgstr "Bienvenue !"
+msgid "Cancel"
+msgstr "Annuler"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home est un programme qui exécute un économiseur d'écran lorsque votre ordinateur est inutilisé afin de rechercher des ondes gravitationnelles provenant d'étoiles à neutrons en rotation (également appelées pulsars) à l'aide de données provenant du détecteur d'ondes gravitationnelles LIGO."
+msgid "Show comparison view"
+msgstr "Afficher la vue de comparaison"
 
-msgid "Learn more"
-msgstr "Pour en savoir plus"
+msgid "Comment form"
+msgstr "Formulaire de commentaire"
 
-msgid "View account"
-msgstr "Voir le compte"
+msgid "Logout"
+msgstr "Déconnecter"
 
-msgid "About our screensaver"
-msgstr "À propos de notre économiseur d'écran"
+msgid "Join now"
+msgstr "Inscrivez-vous"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "Plus de 500 000 bénévoles et calculateurs."
+msgid "Account"
+msgstr "Compte"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Server status"
+msgstr "État du serveur"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Language"
+msgstr "Langue"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Create content"
+msgstr "Créer un contenu"
 
-msgid "Logout"
-msgstr "Déconnecter"
+msgid "General settings"
+msgstr "Paramètres généraux"
 
 msgid "Name"
 msgstr "Nom"
 
-msgid "Avg credit"
-msgstr "Crédit moyen"
+msgid "Time zone"
+msgstr "Fuseau horaire"
 
-msgid "Total credit"
-msgstr "Crédit total"
+msgid "Notification settings"
+msgstr "Paramètres de notification"
 
-msgid "Enter your password to save changes"
-msgstr "Veuillez entrer votre mot de passe pour valider les changements"
+msgid "Receive email notification for private messages?"
+msgstr "Voulez-vous recevoir un email de notification pour les messages privés ?"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Saisissez votre mot de passe actuel si vous souhaitez changer votre adresse email ou votre mot de passe."
+msgid "Receive email notification for friend requests?"
+msgstr "Voulez-vous recevoir un mail de notification pour les messages d'amis ?"
 
-msgid "BOINC user ID"
-msgstr "Nom d'utilisateur Boinc"
+msgid "Language settings"
+msgstr "Paramètres de langue"
 
-msgid "Drupal user ID"
-msgstr "Nom d'utilisateur Drupal"
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "La langue par défaut de ce compte pour les e-mails et la langue préférée pour le contenu du site."
 
-msgid "Account key"
-msgstr "Clé de compte"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Si vous avez un avatar <a href=\"@gravatar-check\"> Gravatar <a> associé à votre adresse email, il sera utilisé comme image de profil."
 
-msgid "Weak account key"
-msgstr "Clé de compte non robuste"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Votre image Gravatar ne sera pas affichée si vous téléchargez une image personnalisée."
 
-msgid "Cross-project ID"
-msgstr "Identifiant inter-projets"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Si vous avez un avatar <a href=\"@gravatar-check\"> Gravatar <a> associé à votre adresse email, il sera utilisé comme image de profil"
 
-msgid "Save changes"
-msgstr "Enregistrer les modifications"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar ne sera pas montré si un avatar est envoyé"
 
-msgid "Cancel"
-msgstr "Annuler"
+msgid "Avatar settings"
+msgstr "Paramètres d'avatar"
 
-msgid "Change password"
-msgstr "Modifier le mot de passe"
+msgid "This is not available until your profile is set up."
+msgstr "Ceci n'est pas possible tant que votre profil n'est pas établi."
 
-msgid "What is @this_project?"
-msgstr "Qu'est ce que @this_project ?"
+msgid "Create a profile"
+msgstr "Créer un profil"
 
-msgid "no projects..."
-msgstr "aucun projet..."
+msgid "Upload an avatar"
+msgstr "Télécharger un avatar"
 
-msgid "Download the desktop software"
-msgstr "Télécharger l'application"
+msgid "Forum settings"
+msgstr "Paramètres du forum"
 
-msgid "Run the installer"
-msgstr "Lancer l'installation"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "Dans les sujets de discussion, afficher au plus @comments_per_page"
 
-msgid "When prompted enter @siteurl"
-msgstr "Lorsqu'on vous le demande, entrez l'adresse @siteurl"
+msgid "comments per page"
+msgstr "commentaires par page"
 
-msgid "Password"
-msgstr "Mot de passe"
+msgid "Sort comments in discussions"
+msgstr "Trier les commentaires des discussions"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Entrez le mot de passe correspondant à votre nom d'utilisateur."
+msgid "Newest post first"
+msgstr "Les messages les plus récents d'abord"
 
-msgid "Request new password"
-msgstr "Demander un nouveau mot de passe"
-
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Si vous exécutez déjà BOINC, sélectionnez <i>Ajouter\nun Projet</i>."
-
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Si vous utilisez une version de BOINC en ligne de commande,\nutilisez d'abord le logiciel BOINC Manager (à un autre endroit si nécessaire)\npour créer un compte sur ce projet, puis utilisez ce compte pour se connecter\nà l'aide de la version en ligne de commande."
+msgid "Oldest post first"
+msgstr "Les messages les plus anciens d'abord"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Si vous utilisez une version de BOINC antérieure à 5.0, veuillez\nla mettre à jour vers une version plus récente afin de créer un compte\nsur ce projet."
+msgid "Signature"
+msgstr "Signature"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Si vous connaissez l'adresse email de votre compte, vous pouvez recevoir un email ici :"
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Votre signature sera visible publiquement à la fin de vos commentaires."
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Entrez l'adresse email et cliquez sur OK. Vous allez recevoir un email avec les instructions pour réinitialiser votre mot de passe."
+msgid "Hide signatures in forums"
+msgstr "Masquer les signatures dans les forums"
 
-msgid "OK"
-msgstr "OK"
+msgid "Privacy settings"
+msgstr "Paramètres de confidentialité"
 
-msgid "The latest news from the @site_name project"
-msgstr "Les dernières actualités du projet @site_name"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Acceptez-vous que @project et votre équipe (si vous en avez une) puissent vous envoyer des e-mails ?"
 
-msgid "Comment form"
-msgstr "Formulaire de commentaire"
+msgid "Should @project show your computers on its web site?"
+msgstr "Acceptez-vous que @project affiche vos ordinateurs sur son site web ?"
 
-msgid "Total credits"
-msgstr "Total des crédits"
+msgid "Id"
+msgstr "ID"
 
-msgid "Recent avg credits"
-msgstr "Crédit moyen récent"
+msgid "Founder"
+msgstr "Fondateur"
 
 msgid "Country"
 msgstr "Pays"
 
-msgid "Type"
-msgstr "Type"
+msgid "Recent average credit"
+msgstr "Crédit moyen récent"
 
-msgid "Founder"
-msgstr "Fondateur"
+msgid "Members"
+msgstr "Membres"
 
-msgid "New members in last day"
-msgstr "Nouveaux membres du jour"
+msgid "Total Credit"
+msgstr "Crédit total"
 
-msgid "Total members"
-msgstr "Total des membres"
+msgid "User ID"
+msgstr "Identifiant utilisateur"
 
-msgid "Active members"
-msgstr "Membres actifs"
+msgid "User"
+msgstr "Utilisateur"
 
-msgid "Members with credit"
-msgstr "Membres crédités"
+msgid "Admin since"
+msgstr "Administrateur depuis le"
 
-msgid "Description"
-msgstr "Description"
+msgid "Team ID"
+msgstr "ID de l'équipe"
 
-msgid "Search teams"
-msgstr "Rechercher une équipe"
+msgid "User joined"
+msgstr "L’utilisateur a rejoint"
 
-msgid "Send message"
-msgstr "Envoyer un message"
+msgid "Timestamp"
+msgstr "Horodatage"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Account Key"
+msgstr "Clé du compte"
 
-msgid "Project"
-msgstr "Projet"
+msgid "Member since"
+msgstr "Membre depuis le"
 
-msgid "Web site"
-msgstr "Site web"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "No active computers"
-msgstr "Pas d'ordinateur actif"
+msgid "Email Address"
+msgstr "Adresse email"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "Aucun ordinateur de l'utilisateur n'a été actif durant les 30 derniers jours."
+msgid "Password Hash"
+msgstr "Hash du mot de passe"
 
-msgid " Default value: @default"
-msgstr "Valeur par défaut : @default"
+msgid "Postal Code"
+msgstr "Code postal"
 
-msgid "Applications"
-msgstr "Applications"
+msgid "Send Email"
+msgstr "Envoyer l'e-mail"
 
-msgid "yes"
-msgstr "oui"
+msgid "Show Hosts"
+msgstr "Voir les hôtes"
 
-msgid "no"
-msgstr "non"
+msgid "URL"
+msgstr "URL"
 
-msgid "Message @id"
-msgstr "Message @id"
+msgid "Computer ID"
+msgstr "ID de l'ordinateur"
 
-msgid "message @id"
-msgstr "message @id"
+msgid "Location"
+msgstr "Localisation"
 
-msgid " in response to !parent"
-msgstr "en réponse à !parent"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "Lorsque BOINC fonctionne, % de temps de travail autorisé"
 
-msgid "Credits per day"
-msgstr "Crédits par jour"
+msgid "Average turnaround time"
+msgstr "Temps de cycle moyen"
 
-msgid "Computers hidden"
-msgstr "Ordinateurs masqués"
+msgid "Created"
+msgstr "Créé"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "Cet utilisateur a choisi de ne pas montrer d'informations sur ses ordinateurs."
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "Lorsque BOINC fonctionne, % du temps où l'hôte a une connexion Internet"
 
-msgid "Stderr output"
-msgstr "Stderr output"
+msgid "Average CPU efficiency"
+msgstr "Performance moyenne du processeur"
 
-msgid "@time ago"
-msgstr "Il y a @time"
+msgid "Free disk space"
+msgstr "Espace disque libre"
 
-msgid "n/a"
-msgstr "non disponible"
+msgid "Total disk space"
+msgstr "Taille totale du disque"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Soumis par !username le !datetime"
+msgid "Task duration correction factor"
+msgstr "Facteur de correction de durée de tâche"
 
-msgid "Member since"
-msgstr "Membre depuis le"
+msgid "Avg. credit"
+msgstr "Crédit moyen"
 
-msgid "View team"
-msgstr "Voir l'équipe"
+msgid "External IP address"
+msgstr "Adresse IP externe"
 
-msgid "Friends (@count)"
-msgstr "Amis (@count)"
+msgid "Cross project ID"
+msgstr "ID Inter-projet"
 
-msgid "Website"
-msgstr "Site Web"
+msgid "Last IP address"
+msgstr "Dernière adresse IP"
 
-msgid "Locked"
-msgstr "Verrouillé"
+msgid "Cache"
+msgstr "Cache"
 
-msgid "Computers pending"
-msgstr "Ordinateurs en attente"
+msgid "Memory"
+msgstr "Mémoire"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "Cet utilisateur n'a pas encore associé d'ordinateurs. Les ordinateurs s'afficheront lorsqu'ils auront gagné leurs premiers crédits."
+msgid "Swap space"
+msgstr "Espace d'échange (swap)"
 
-msgid "No results found..."
-msgstr "Aucun résultat trouvé..."
+msgid "Maximum daily WU quota per CPU"
+msgstr "Quota maximum journalier WU par processeur"
 
-msgid "Background"
-msgstr "Fond d'écran"
+msgid "Average download rate"
+msgstr "Débit moyen de téléchargement (download)"
 
-msgid "Teams"
-msgstr "Équipes"
+msgid "Average upload rate"
+msgstr "Débit moyen en téléversement (upload)"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "Les participants au projet @project peuvent former des équipes. Vous ne pouvez appartenir qu'à une seule équipe. Vous pouvez rejoindre ou quitter une équipe à tout moment. Pour rejoindre une équipe, visitez la page de l'équipe et cliquez sur \"Rejoindre cette équipe\". Chaque équipe a un fondateur qui peut :"
+msgid "Same IP address count"
+msgstr "Compte de même adresse IP"
 
-msgid "access team members' email addresses"
-msgstr "accéder aux adresses email des membres de l'équipe"
+msgid "% of time BOINC client is running"
+msgstr "% de temps de fonctionnement de BOINC"
 
-msgid "edit the team's name and description"
-msgstr "éditer le nom et la description de l'équipe"
+msgid "Operating system"
+msgstr "Système d'exploitation"
 
-msgid "add or remove team admins"
-msgstr "Ajouter ou supprimer des administrateurs de l'équipe"
+msgid "Operating system version"
+msgstr "Version du système d'exploitation"
 
-msgid "remove members from the team"
-msgstr "supprimer des membres de l'équipe"
+msgid "Measured floating point speed"
+msgstr "Vitesse mesurée pour les calculs en virgule flottante"
 
-msgid "disband a team if it has no members"
-msgstr "supprimer l'équipe si elle n'a aucun membre"
+msgid "Measured integer speed"
+msgstr "Vitesse mesurée pour les calculs en nombres entiers"
 
-msgid "Create a new team"
-msgstr "Créer une nouvelle équipe"
+msgid "CPU model"
+msgstr "Type de processeur"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Si vous ne trouvez pas d'équipe vous correspondant, vous pouvez créer une équipe."
+msgid "Number of processors"
+msgstr "Nombre de processeurs"
 
-msgid "You must earn @count more credits!"
-msgstr "Vous devez gagner @count crédits supplémentaires !"
+msgid "CPU"
+msgstr "Processeur"
 
-msgid "Threads"
-msgstr "Sujets"
+msgid "Number of times client has contacted server"
+msgstr "Nombre de fois où le client BOINC a contacté le serveur"
 
-msgid "Posts"
-msgstr "Messages"
+msgid "Last contact"
+msgstr "Dernier contact"
 
-msgid "Last post"
-msgstr "Dernier message"
+msgid "Serial number"
+msgstr "Numéro de série"
 
-msgid "Manage subscriptions"
-msgstr "Gérer les inscriptions"
+msgid "Timezone"
+msgstr "Fuseau horaire"
 
-msgid "Featured"
-msgstr "Mis en avant"
+msgid "Platform ID"
+msgstr "ID de plateforme"
 
-msgid "Submitted on !datetime"
-msgstr "Soumit le !datetime"
+msgid "Task ID"
+msgstr "ID de tâche"
 
-msgid "Comments"
-msgstr "Commentaires"
+msgid "Workunit ID"
+msgstr "ID d'unité de travail (WU)"
 
-msgid "Opinion"
-msgstr "Avis"
+msgid "Host ID"
+msgstr "ID d’hôte"
+
+msgid "Application ID"
+msgstr "ID d'application "
+
+msgid "Application version"
+msgstr "Version de l'application"
+
+msgid "Claimed credit"
+msgstr "Crédit demandé"
+
+msgid "Client state"
+msgstr "État du client"
+
+msgid "CPU time"
+msgstr "Temps processeur"
+
+msgid "Run time"
+msgstr "Temps de fonctionnement"
+
+msgid "Exit status"
+msgstr "État à la sortie"
+
+msgid "Granted credit"
+msgstr "Crédit accordé"
+
+msgid "Outcome"
+msgstr "Résultats"
+
+msgid "Received time"
+msgstr "Temps de réception"
+
+msgid "Report deadline"
+msgstr "Date limite de rapport"
+
+msgid "Sent"
+msgstr "Envoyé"
+
+msgid "Server state"
+msgstr "État du serveur"
+
+msgid "Stderr out"
+msgstr "Stderr out"
+
+msgid "Validation state"
+msgstr "État de validation "
+
+msgid "App ID"
+msgstr "ID d'application"
+
+msgid "Canonical credit"
+msgstr "Crédit canonique"
+
+msgid "Canonical result ID"
+msgstr "ID de résultat canonique"
+
+msgid "Created time"
+msgstr "Date de création"
+
+msgid "Error mask"
+msgstr "Masque d'erreur"
+
+msgid "Minimum quorum"
+msgstr "Quorum minimum"
+
+msgid "Max error tasks"
+msgstr "Nombre de tâches erronées maximum"
+
+msgid "Max success tasks"
+msgstr "Nombre de tâches réussies maximum"
+
+msgid "Max total tasks"
+msgstr "Nombre total de tâches maximum"
+
+msgid "Needs validation"
+msgstr "Validation requise"
+
+msgid "Initial replication"
+msgstr "Réplication initiale"
+
+msgid "Target number of results"
+msgstr "Objectif de résultat"
+
+msgid "Application version ID"
+msgstr "ID de version de l'application"
+
+msgid "Plan class"
+msgstr "Classe de plan"
+
+msgid "Version number"
+msgstr "Numéro de version"
+
+msgid "Computer"
+msgstr "Ordinateur"
+
+msgid "App version ID"
+msgstr "ID de version de l'application"
+
+msgid "Consecutive valid tasks"
+msgstr "Nombre de tâches valides consécutives"
+
+msgid "Number of tasks completed"
+msgstr "Nombre de tâches terminées"
+
+msgid "Max tasks per day"
+msgstr "Nombre maximal de tâches par jour"
+
+msgid "Number of tasks today"
+msgstr "Nombre de tâches aujourd'hui"
+
+msgid "Manage subscriptions"
+msgstr "Gérer les inscriptions"
+
+msgid "Avg credit"
+msgstr "Crédit moyen"
+
+msgid "Total credit"
+msgstr "Crédit total"
 
 msgid "More"
 msgstr "Plus"
@@ -460,14 +530,103 @@ msgstr "Plus"
 msgid "Tasks"
 msgstr "Tâches"
 
-msgid "Generic"
-msgstr "Générique"
+msgid "Computers hidden"
+msgstr "Ordinateurs masqués"
 
-msgid "Work"
-msgstr "Travail"
+msgid "This user has chosen not to show information about their computers."
+msgstr "Cet utilisateur a choisi de ne pas montrer d'informations sur ses ordinateurs."
 
-msgid "School"
-msgstr "École"
+msgid "no projects..."
+msgstr "aucun projet..."
+
+msgid "Moderation"
+msgstr "Modération"
+
+msgid "Unvetted profiles"
+msgstr "Profils non vérifiés"
+
+msgid "Inbox"
+msgstr "Messagerie"
+
+msgid "Compose new"
+msgstr "Rédiger un nouveau contenu"
+
+msgid "Posts contributed"
+msgstr "Messages contribués"
+
+msgid "Friends (@count)"
+msgstr "Amis (@count)"
+
+msgid "Welcome back!"
+msgstr "Bienvenue !"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home est un programme qui exécute un économiseur d'écran lorsque votre ordinateur est inutilisé afin de rechercher des ondes gravitationnelles provenant d'étoiles à neutrons en rotation (également appelées pulsars) à l'aide de données provenant du détecteur d'ondes gravitationnelles LIGO."
+
+msgid "Learn more"
+msgstr "Pour en savoir plus"
+
+msgid "View account"
+msgstr "Voir le compte"
+
+msgid "User of the day"
+msgstr "Utilisateur du jour"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Plus de 500 000 bénévoles et calculateurs."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Crédits par jour"
+
+msgid "View user profile."
+msgstr "Voir le profil de l'utilisateur."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Profil en attente de validation par un modérateur"
+
+msgid "Background"
+msgstr "Fond d'écran"
+
+msgid "Opinion"
+msgstr "Avis"
+
+msgid "Enter your password to save changes"
+msgstr "Veuillez entrer votre mot de passe pour valider les changements"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Saisissez votre mot de passe actuel si vous souhaitez changer votre adresse email ou votre mot de passe."
+
+msgid "BOINC user ID"
+msgstr "Nom d'utilisateur Boinc"
+
+msgid "Drupal user ID"
+msgstr "Nom d'utilisateur Drupal"
+
+msgid "Account key"
+msgstr "Clé de compte"
+
+msgid "Weak account key"
+msgstr "Clé de compte non robuste"
+
+msgid "Cross-project ID"
+msgstr "Identifiant inter-projets"
+
+msgid "Change password"
+msgstr "Modifier le mot de passe"
 
 msgid "Presets"
 msgstr "Préréglages"
@@ -508,9 +667,6 @@ msgstr "Calculer pendant l'utilisation de votre ordinateur ?"
 msgid "Run GPU work while computer is in use?"
 msgstr "Calculer avec la carte graphique pendant l'utilisation de votre ordinateur ?"
 
-msgid "Enforced by version @number"
-msgstr "Imposé par la version @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "'Est utilisé' signifie qu'il y a eu une activité de la souris ou du clavier dans les dernières"
 
@@ -647,61 +803,38 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "Cochez ceci SEULEMENT si votre fournisseur Internet modifie des fichiers images (comme l'UMTS par exemple). Ignorer la vérification réduit la sécurité de BOINC."
 
-msgid "Show comparison view"
-msgstr "Afficher la vue de comparaison"
+msgid "search"
+msgstr "Rechercher"
 
-msgid "Resource settings"
-msgstr "Configuration des ressources"
+msgid "What is @this_project?"
+msgstr "Qu'est ce que @this_project ?"
 
-msgid "Resource share"
-msgstr "Partage des ressources"
+msgid "Login"
+msgstr "Nom d'utilisateur"
 
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Détermine la proportion des ressources de votre ordinateur allouée à ce projet. Par exemple : si vous participez à deux projets BOINC avec un partage de ressources de 100 et 200, le premier aura 1/3 des vos ressources et le second 2/3."
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Use CPU"
-msgstr "Utiliser le processeur"
-
-msgid "Use NVIDIA GPU"
-msgstr "Utiliser la carte graphique NVIDIA"
-
-msgid "Use ATI GPU"
-msgstr "Utiliser la carte graphique ATI"
-
-msgid "Use INTEL GPU"
-msgstr "Utiliser la carte graphique INTEL"
-
-msgid "Beta settings"
-msgstr "Configuration Beta"
-
-msgid "Run test applications?"
-msgstr "Exécuter les applications de test ? "
+msgid "Project"
+msgstr "Projet"
 
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Ceci nous aide à développer les applications, mais peut générer des erreurs de calcul sur votre ordinateur"
+msgid "No @type tasks"
+msgstr "Pas de tâche @type"
 
-msgid "Default set"
-msgstr "Valeur par défaut"
+msgid "There are no tasks of this type on record"
+msgstr "Il n'y a aucune tâche de ce type"
 
-msgid "Set used for new computers"
-msgstr "Valeur utilisée pour les nouveaux ordinateurs"
+msgid "Details"
+msgstr "Détails"
 
-msgid "Merge"
-msgstr "Fusionner"
+msgid "Password"
+msgstr "Mot de passe"
 
-msgid "Delete"
-msgstr "Supprimer"
+msgid "Enter the password that accompanies your username."
+msgstr "Entrez le mot de passe correspondant à votre nom d'utilisateur."
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Ceci supprimera à jamais l'hôte @id de votre compte. En êtes-vous sûr ?"
+msgid "Request new password"
+msgstr "Demander un nouveau mot de passe"
 
 msgid "Mark all topics read"
 msgstr "Marquer tous les sujets comme lus"
@@ -729,146 +862,151 @@ msgstr "Désactiver le RTF"
 msgid "Enable rich-text"
 msgstr "Activer le RTF"
 
-msgid "View user profile."
-msgstr "Voir le profil de l'utilisateur."
+msgid "Teams"
+msgstr "Équipes"
 
-msgid "BBcode help"
-msgstr "Aide pour le BBcode"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "Les participants au projet @project peuvent former des équipes. Vous ne pouvez appartenir qu'à une seule équipe. Vous pouvez rejoindre ou quitter une équipe à tout moment. Pour rejoindre une équipe, visitez la page de l'équipe et cliquez sur \"Rejoindre cette équipe\". Chaque équipe a un fondateur qui peut :"
 
-msgid "Post comment"
-msgstr "Publier le commentaire"
+msgid "access team members' email addresses"
+msgstr "accéder aux adresses email des membres de l'équipe"
 
-msgid "No @type tasks"
-msgstr "Pas de tâche @type"
+msgid "edit the team's name and description"
+msgstr "éditer le nom et la description de l'équipe"
 
-msgid "There are no tasks of this type on record"
-msgstr "Il n'y a aucune tâche de ce type"
+msgid "add or remove team admins"
+msgstr "Ajouter ou supprimer des administrateurs de l'équipe"
 
-msgid "Clear"
-msgstr "Supprimer"
+msgid "remove members from the team"
+msgstr "supprimer des membres de l'équipe"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Ceci supprimera tous vos paramètres de réglage de préférence @name. En êtes-vous sûr ?"
+msgid "disband a team if it has no members"
+msgstr "supprimer l'équipe si elle n'a aucun membre"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Ceux-ci s'appliquent à tous les projets BOINC auxquels vous participez."
+msgid "Search teams"
+msgstr "Rechercher une équipe"
+
+msgid "Create a new team"
+msgstr "Créer une nouvelle équipe"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "Sur les ordinateurs participants à plusieurs projets, les préférences le plus récemment modifiées seront utilisées."
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Si vous ne trouvez pas d'équipe vous correspondant, vous pouvez créer une équipe."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "Dernière modification des préférences : @mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "Vous devez gagner un crédit supplémentaire !"
 
-msgid "Combined preferences"
-msgstr "Préférences combinées"
+msgid "@count million ops/sec"
+msgstr "@count MIPS"
 
-msgid "Switch View"
-msgstr "Basculer l'affichage"
+msgid "@rate KiB/sec"
+msgstr "@rate Ko/s"
 
-msgid "every"
-msgstr "chaque"
+msgid "@count days"
+msgstr "@count jours"
 
-msgid "Edit"
-msgstr "Éditer"
+msgid "Stderr output"
+msgstr "Stderr output"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Ceci supprimera tous vos paramètres de réglage de préférence \"@name\". En êtes-vous sûr ?"
+msgid "Email address"
+msgstr "Adresse email"
 
-msgid "Add"
-msgstr "Ajouter"
+msgid "Enter your @s email address."
+msgstr "Entrez votre adresse mail @s."
 
-msgid "General settings"
-msgstr "Paramètres généraux"
+msgid "Log in"
+msgstr "Connexion"
 
-msgid "Time zone"
-msgstr "Fuseau horaire"
+msgid "Sorry, unrecognized email address or password."
+msgstr "Désolé, cette adresse email ou ce mot de passe n'ont pas été reconnus."
 
-msgid "Notification settings"
-msgstr "Paramètres de notification"
+msgid "Have you forgotten your password?"
+msgstr "Avez-vous perdu votre mot de passe ?"
 
-msgid "Receive email notification for private messages?"
-msgstr "Voulez-vous recevoir un email de notification pour les messages privés ?"
+msgid "No results found..."
+msgstr "Aucun résultat trouvé..."
 
-msgid "Receive email notification for friend requests?"
-msgstr "Voulez-vous recevoir un mail de notification pour les messages d'amis ?"
+msgid "Anonymous"
+msgstr "Anonyme"
 
-msgid "Language settings"
-msgstr "Paramètres de langue"
+msgid "Forgot password"
+msgstr "Mot de passe oublié"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "La langue par défaut de ce compte pour les e-mails et la langue préférée pour le contenu du site."
+msgid "authenticator-based login"
+msgstr "Connexion à l'aide d'un authentificateur"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "Si vous avez un avatar <a href=\"@gravatar-check\"> Gravatar <a> associé à votre adresse email, il sera utilisé comme image de profil."
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Saisissez votre adresse email pour recevoir les instructions qui vous permettront de réinitialiser votre mot de passe (ou utilisez le !authenticator_login)."
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Votre image Gravatar ne sera pas affichée si vous téléchargez une image personnalisée."
+msgid "Send"
+msgstr "Envoyer"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "Si vous avez un avatar <a href=\"@gravatar-check\"> Gravatar <a> associé à votre adresse email, il sera utilisé comme image de profil"
+msgid "Submitted by !username on !datetime"
+msgstr "Soumis par !username le !datetime"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Gravatar ne sera pas montré si un avatar est envoyé"
+msgid "Send message"
+msgstr "Envoyer un message"
 
-msgid "Avatar settings"
-msgstr "Paramètres d'avatar"
+msgid "Add as friend"
+msgstr "Ajouter en tant qu'ami"
 
-msgid "This is not available until your profile is set up."
-msgstr "Ceci n'est pas possible tant que votre profil n'est pas établi."
+msgid "Website"
+msgstr "Site Web"
 
-msgid "Create a profile"
-msgstr "Créer un profil"
+msgid "Team"
+msgstr "Équipe"
 
-msgid "Upload an avatar"
-msgstr "Télécharger un avatar"
+msgid "Create new team"
+msgstr "Créer une nouvelle équipe"
 
-msgid "Forum settings"
-msgstr "Paramètres du forum"
+msgid "Search"
+msgstr "Recherche"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "Dans les sujets de discussion, afficher au plus @comments_per_page"
+msgid "Total credits"
+msgstr "Total des crédits"
 
-msgid "comments per page"
-msgstr "commentaires par page"
+msgid "Recent avg credits"
+msgstr "Crédit moyen récent"
 
-msgid "Sort comments in discussions"
-msgstr "Trier les commentaires des discussions"
+msgid "Type"
+msgstr "Type"
 
-msgid "Newest post first"
-msgstr "Les messages les plus récents d'abord"
+msgid "New members in last day"
+msgstr "Nouveaux membres du jour"
 
-msgid "Oldest post first"
-msgstr "Les messages les plus anciens d'abord"
+msgid "Total members"
+msgstr "Total des membres"
 
-msgid "Signature"
-msgstr "Signature"
+msgid "Active members"
+msgstr "Membres actifs"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "Votre signature sera visible publiquement à la fin de vos commentaires."
+msgid "Members with credit"
+msgstr "Membres crédités"
 
-msgid "Hide signatures in forums"
-msgstr "Masquer les signatures dans les forums"
+msgid "Web site"
+msgstr "Site web"
 
-msgid "Privacy settings"
-msgstr "Paramètres de confidentialité"
+msgid "Description"
+msgstr "Description"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Acceptez-vous que @project et votre équipe (si vous en avez une) puissent vous envoyer des e-mails ?"
+msgid "BBcode help"
+msgstr "Aide pour le BBcode"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Acceptez-vous que @project affiche vos ordinateurs sur son site web ?"
+msgid "Post comment"
+msgstr "Publier le commentaire"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Maison"
+
+msgid "The latest news from the @site_name project"
+msgstr "Les dernières actualités du projet @site_name"
 
 msgid "Hide"
 msgstr "Masquer"
@@ -891,606 +1029,421 @@ msgstr "Épingler ce sujet"
 msgid "moderation"
 msgstr "modération"
 
-msgid "Post new comment"
-msgstr "Poster un nouveau commentaire"
+msgid "Reply"
+msgstr "Répondre"
 
-msgid "You must earn 1 more credit!"
-msgstr "Vous devez gagner un crédit supplémentaire !"
+msgid "Reply to this comment"
+msgstr "Répondre à ce commentaire"
 
-msgid "Joined"
-msgstr "Rejoint"
+msgid "Quote"
+msgstr "Citer"
 
-msgid "Credit"
-msgstr "Crédit"
+msgid "Reply to this comment with quote"
+msgstr "Répondre à ce commentaire avec une citation"
 
-msgid "RAC"
-msgstr "Crédit moyen récent"
-
-msgid "Join team"
-msgstr "Rejoindre l'équipe"
-
-msgid "Click here to become a member of @this_team"
-msgstr "Cliquez ici pour devenir membre de @this_team"
-
-msgid "Join this team"
-msgstr "Rejoindre cette équipe"
-
-msgid "Manage team"
-msgstr "Gérer l'équipe"
-
-msgid "View member list"
-msgstr "Voir la liste des membres"
-
-msgid "Member names and emails"
-msgstr "E-mails et noms des membres"
-
-msgid "View change history"
-msgstr "Afficher l'historique des changements"
-
-msgid "See member activity"
-msgstr "Voir l'activité des membres"
-
-msgid "Manage team message board"
-msgstr "Gérer le forum de l'équipe"
-
-msgid "Create or manage message board"
-msgstr "Créer ou gérer un forum"
-
-msgid "Remove members"
-msgstr "Supprimer des membres"
-
-msgid "Change founder"
-msgstr "Changer de chef d'équipe"
-
-msgid "Manage team admins"
-msgstr "Gérer les administrateurs de l'équipe"
-
-msgid "Edit team info"
-msgstr "Éditer les informations de l'équipe"
-
-msgid "Remove team"
-msgstr "Supprimer l'équipe"
-
-msgid "Team forum"
-msgstr "Le forum de l'équipe"
-
-msgid "A discussion forum has been set up for team members."
-msgstr "Un forum de discussion a été mis en place pour les membres de l'équipe."
-
-msgid "Enter forum"
-msgstr "Entrer dans le forum"
-
-msgid "Leave team"
-msgstr "Quitter l'équipe "
-
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Cliquez ici pour vous retirer de l'équipe @this_team"
-
-msgid "Leave this team"
-msgstr "Quitter cette équipe"
-
-msgid "Edit message board"
-msgstr "Éditer ce message "
-
-msgid "Message board title"
-msgstr "Titre du message"
-
-msgid "Text only, no HTML tags"
-msgstr "Texte uniquement, pas de balises HTML"
-
-msgid "Minimum time between posts"
-msgstr "Délai minimum entre les dépôts de messages"
-
-msgid "Seconds"
-msgstr "Secondes"
-
-msgid "Minimum total credit to post"
-msgstr "Crédit total minimum pour pouvoir poster"
-
-msgid "Minimum avg credit to post"
-msgstr "Crédit moyen minimum pour pouvoir poster"
-
-msgid "Allow public to read board?"
-msgstr "Autoriser la lecture du forum à tout le monde ?"
-
-msgid "Save message board"
-msgstr "Enregistrer ce message"
-
-msgid "About message boards"
-msgstr "À propos de ce message"
-
-msgid "This is a team-only message board"
-msgstr "Ceci est un forum réservé à l'équipe"
-
-msgid "Only members may post"
-msgstr "Seuls les membres peuvent poster"
-
-msgid "Only members may read (optional)"
-msgstr "Seul les membres peuvent lire (optionnel) "
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Le fondateur et les administrateurs de l'équipe ont les privilèges de modérateur."
-
-msgid "Changing the team founder"
-msgstr "Changer le chef d'équipe"
-
-msgid "Notes about changes in foundership:"
-msgstr "Notes à propos des changements de chef :"
-
-msgid "Any member of the team is eligible"
-msgstr "Tout membre de l'équipe est éligible"
-
-msgid "Current founder becomes a normal user"
-msgstr "Le fondateur actuel devient un utilisateur normal"
-
-msgid "Foundership can be requested by team members:"
-msgstr "La place de fondateur peut être demandée par les membres de l’équipe :"
+msgid "Edit"
+msgstr "Éditer"
 
-msgid "One request is allowed at a time"
-msgstr "Une seule requête est autorisée à la fois"
+msgid "Edit this comment"
+msgstr "Modifier ce commentaire"
 
-msgid "It must be 60 days since any previous request"
-msgstr "Il faut attendre 60 jours depuis la précédente requête"
+msgid "Delete"
+msgstr "Supprimer"
 
-msgid "Any active request must be older than 90 days"
-msgstr "Une requête active doit dater de plus de 90 jours"
+msgid "Delete this comment"
+msgstr "Supprimer ce commentaire"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "Le fondateur actuel a 60 jours pour répondre à une requête "
+msgid "Hide this comment"
+msgstr "Cacher ce commentaire"
 
-msgid "Add team admin"
-msgstr "Ajouter un administrateur à l'équipe"
+msgid "Message @id"
+msgstr "Message @id"
 
-msgid "Enter email address"
-msgstr "Entrez l'adresse e-mail"
+msgid "Convert"
+msgstr "Convertir"
 
-msgid "Current team admins"
-msgstr "Administrateurs actuels de l'équipe"
+msgid "Convert this comment to a new topic"
+msgstr "Convertir ce commentaire en nouveau sujet"
 
-msgid "About team admins"
-msgstr "À propos de l'équipe d'administrateurs"
+msgid "message @id"
+msgstr "message @id"
 
-msgid "Team admins can:"
-msgstr "Les administrateurs de l’équipe peuvent :"
+msgid " in response to !parent"
+msgstr "en réponse à !parent"
 
-msgid "Edit team information"
-msgstr "Éditer les informations de l'équipe"
+msgid "Post new comment"
+msgstr "Poster un nouveau commentaire"
 
-msgid "View the team's join / quit history"
-msgstr "Voir l'historique des venues et des départs dans l'équipe"
+msgid "Comments"
+msgstr "Commentaires"
 
-msgid "Moderate the team forum"
-msgstr "Modérer le forum de l'équipe"
+msgid "discuss"
+msgstr "discuter"
 
-msgid "Remove members from the team"
-msgstr "Supprimer des membres de l'équipe"
+msgid "n/a"
+msgstr "non disponible"
 
-msgid "Disband a team if it has no members"
-msgstr "Supprimer l'équipe si elle n'a aucun membre"
+msgid "@time ago"
+msgstr "Il y a @time"
 
-msgid "Team admins cannot:"
-msgstr "Les administrateurs de l'équipe ne peuvent pas :"
+msgid "Threads"
+msgstr "Sujets"
 
-msgid "Change the team founder"
-msgstr "Modifier le nom du fondateur de l'équipe"
+msgid "Posts"
+msgstr "Messages"
 
-msgid "Add / Remove team admins"
-msgstr "Ajouter / Supprimer un administrateur de l'équipe"
+msgid "Last post"
+msgstr "Dernier message"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Si un administrateur quitte l'équipe, il cesse d'être un administrateur de l'équipe. Nous vous recommandons de sélectionner uniquement des personnes que vous connaissez et à qui vous faites confiance"
-
-msgid "Choose type"
-msgstr "Choisissez le type"
-
-msgid "Team name"
-msgstr "Nom de l'équipe"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "Nom de l'équipe -- Version HTML (optionnelle)"
-
-msgid "You may use limited HTML tags"
-msgstr "Vous pouvez utiliser certaines balises HTML"
-
-msgid "Team website (optional)"
-msgstr "Site internet de l'équipe (optionnel)"
-
-msgid "Displayed on the team's page"
-msgstr "Affiché sur la page de l'équipe"
-
-msgid "Type of team"
-msgstr "Type d'équipe"
-
-msgid "Accept new members?"
-msgstr "Accepter de nouveaux membres ?"
-
-msgid "Description of team"
-msgstr "Description de l'équipe"
-
-msgid "Create new team"
-msgstr "Créer une nouvelle équipe"
-
-msgid "Create a team"
-msgstr "Créer une équipe"
-
-msgid "Save team"
-msgstr "Enregistrer l'équipe"
-
-msgid "Create team message board"
-msgstr "Créer un forum de l’équipe"
-
-msgid "Create message board"
-msgstr "Créer un forum"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Veuillez être responsable de ce que vous écrivez et ne créez pas de messages offensants ou insultants. Les messages ou sujets offensants peuvent être supprimés par les modérateurs du forum sans avertissement ni explication. Ne réagissez pas aux messages offensants. Cliquez sur le bouton \"signaler\" au bas du message afin d'attirer l'attention des modérateurs."
 
-msgid "You may create a message board for use by @team"
-msgstr "Vous pouvez créer un forum relatif à @team."
+msgid "this project"
+msgstr "ce projet"
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Veuillez indiquer le crédit moyen minimal qu'un utilisateur doit avoir afin de pouvoir poster sur ce forum."
-
-msgid "Post new topic"
-msgstr "Poster un nouveau sujet"
-
-msgid "Anonymous"
-msgstr "Anonyme"
-
-msgid "Unpublished"
-msgstr "Non publié"
-
-msgid "parent removed"
-msgstr "parent supprimé"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "Désolé, cette adresse email ou ce mot de passe n'ont pas été reconnus."
-
-msgid "Have you forgotten your password?"
-msgstr "Avez-vous perdu votre mot de passe ?"
-
-msgid "Id"
-msgstr "ID"
-
-msgid "Recent average credit"
-msgstr "Crédit moyen récent"
-
-msgid "Members"
-msgstr "Membres"
-
-msgid "Total Credit"
-msgstr "Crédit total"
-
-msgid "User ID"
-msgstr "Identifiant utilisateur"
-
-msgid "User"
-msgstr "Utilisateur"
-
-msgid "Admin since"
-msgstr "Administrateur depuis le"
-
-msgid "Team ID"
-msgstr "ID de l'équipe"
-
-msgid "User joined"
-msgstr "L’utilisateur a rejoint"
-
-msgid "Timestamp"
-msgstr "Horodatage"
-
-msgid "Account Key"
-msgstr "Clé du compte"
-
-msgid "CPID"
-msgstr "CPID"
-
-msgid "Email Address"
-msgstr "Adresse email"
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Nous vous demandons également de ne discuter que de BOINC ou de @project sur le forum, à l'exception du forum Science où vous êtes libre de discuter de tout ce qui se rapporte à la science sous-jacente aux projets. Les participants souhaitant discuter de sujets plus généraux sont invités à le faire sur les forums non-officiels de @project."
 
-msgid "Password Hash"
-msgstr "Hash du mot de passe"
+msgid "These message boards now support BBCode tags only."
+msgstr "Ces forums sont maintenant compatibles avec les balises BBCode."
 
-msgid "Postal Code"
-msgstr "Code postal"
+msgid "Featured"
+msgstr "Mis en avant"
 
-msgid "Send Email"
-msgstr "Envoyer l'e-mail"
+msgid "Locked"
+msgstr "Verrouillé"
 
-msgid "Show Hosts"
-msgstr "Voir les hôtes"
+msgid "Submitted on !datetime"
+msgstr "Soumit le !datetime"
 
-msgid "URL"
-msgstr "URL"
+msgid "Computers pending"
+msgstr "Ordinateurs en attente"
 
-msgid "Computer ID"
-msgstr "ID de l'ordinateur"
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Cet utilisateur n'a pas encore associé d'ordinateurs. Les ordinateurs s'afficheront lorsqu'ils auront gagné leurs premiers crédits."
 
-msgid "Location"
-msgstr "Localisation"
+msgid "Show IP address"
+msgstr "Afficher l'adresse IP"
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Lorsque BOINC fonctionne, % de temps de travail autorisé"
+msgid "Download the desktop software"
+msgstr "Télécharger l'application"
 
-msgid "Average turnaround time"
-msgstr "Temps de cycle moyen"
+msgid "Run the installer"
+msgstr "Lancer l'installation"
 
-msgid "Created"
-msgstr "Créé"
+msgid "hours"
+msgstr "heures"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Lorsque BOINC fonctionne, % du temps où l'hôte a une connexion Internet"
+msgid "When prompted enter @siteurl"
+msgstr "Lorsqu'on vous le demande, entrez l'adresse @siteurl"
 
-msgid "Average CPU efficiency"
-msgstr "Performance moyenne du processeur"
+msgid "Merge"
+msgstr "Fusionner"
 
-msgid "Free disk space"
-msgstr "Espace disque libre"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Ceci supprimera à jamais l'hôte @id de votre compte. En êtes-vous sûr ?"
 
-msgid "Total disk space"
-msgstr "Taille totale du disque"
+msgid "Post topic"
+msgstr "Poster le sujet"
 
-msgid "Task duration correction factor"
-msgstr "Facteur de correction de durée de tâche"
+msgid "Leave team"
+msgstr "Quitter l'équipe "
 
-msgid "Avg. credit"
-msgstr "Crédit moyen"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Cliquez ici pour vous retirer de l'équipe @this_team"
 
-msgid "External IP address"
-msgstr "Adresse IP externe"
+msgid "Leave this team"
+msgstr "Quitter cette équipe"
 
-msgid "Cross project ID"
-msgstr "ID Inter-projet"
+msgid "Request foundership"
+msgstr "Demander le titre de fondateur"
 
-msgid "Last IP address"
-msgstr "Dernière adresse IP"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Si le fondateur de l'équipe est inactif et que vous désirez assumer ce rôle, cliquez ci-dessous pour effectuer une requête de changement de fondateur pour @this_team"
 
-msgid "Cache"
-msgstr "Cache"
+msgid "Initiate request"
+msgstr "Initier la requête"
 
-msgid "Memory"
-msgstr "Mémoire"
+msgid "No active computers"
+msgstr "Pas d'ordinateur actif"
 
-msgid "Swap space"
-msgstr "Espace d'échange (swap)"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Aucun ordinateur de l'utilisateur n'a été actif durant les 30 derniers jours."
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "Quota maximum journalier WU par processeur"
+msgid "Clear"
+msgstr "Supprimer"
 
-msgid "Average download rate"
-msgstr "Débit moyen de téléchargement (download)"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Ceci supprimera tous vos paramètres de réglage de préférence @name. En êtes-vous sûr ?"
 
-msgid "Average upload rate"
-msgstr "Débit moyen en téléversement (upload)"
+msgid "Your community preferences have been updated."
+msgstr "Vos préférences de communauté ont été mises à jour."
 
-msgid "Same IP address count"
-msgstr "Compte de même adresse IP"
+msgid "Combined preferences"
+msgstr "Préférences combinées"
 
-msgid "% of time BOINC client is running"
-msgstr "% de temps de fonctionnement de BOINC"
+msgid "Switch View"
+msgstr "Basculer l'affichage"
 
-msgid "Operating system"
-msgstr "Système d'exploitation"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Ceci supprimera tous vos paramètres de réglage de préférence \"@name\". En êtes-vous sûr ?"
 
-msgid "Operating system version"
-msgstr "Version du système d'exploitation"
+msgid "Approve profile"
+msgstr "Approuver le profil"
 
-msgid "Measured floating point speed"
-msgstr "Vitesse mesurée pour les calculs en virgule flottante"
+msgid "Approve this profile content"
+msgstr "Approuver le contenu de ce profil"
 
-msgid "Measured integer speed"
-msgstr "Vitesse mesurée pour les calculs en nombres entiers"
+msgid "Reject this profile content"
+msgstr "Rejeter le contenu de ce profil"
 
-msgid "CPU model"
-msgstr "Type de processeur"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Ceux-ci s'appliquent à tous les projets BOINC auxquels vous participez."
 
-msgid "Number of processors"
-msgstr "Nombre de processeurs"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Sur les ordinateurs participants à plusieurs projets, les préférences le plus récemment modifiées seront utilisées."
 
-msgid "CPU"
-msgstr "Processeur"
+msgid "Preferences last modified: @mod_time"
+msgstr "Dernière modification des préférences : @mod_time"
 
-msgid "Number of times client has contacted server"
-msgstr "Nombre de fois où le client BOINC a contacté le serveur"
+msgid "every"
+msgstr "chaque"
 
-msgid "Last contact"
-msgstr "Dernier contact"
+msgid "Add"
+msgstr "Ajouter"
 
-msgid "Serial number"
-msgstr "Numéro de série"
+msgid "My team"
+msgstr "Mon équipe"
 
-msgid "Timezone"
-msgstr "Fuseau horaire"
+msgid "You are a member of @team."
+msgstr "Vous êtes membre de l'équipe @team"
 
-msgid "Platform ID"
-msgstr "ID de plateforme"
+msgid "View my team"
+msgstr "Voir mon équipe"
 
-msgid "Task ID"
-msgstr "ID de tâche"
+msgid "Manage team"
+msgstr "Gérer l'équipe"
 
-msgid "Workunit ID"
-msgstr "ID d'unité de travail (WU)"
+msgid "View member list"
+msgstr "Voir la liste des membres"
 
-msgid "Host ID"
-msgstr "ID d’hôte"
+msgid "Member names and emails"
+msgstr "E-mails et noms des membres"
 
-msgid "Application ID"
-msgstr "ID d'application "
+msgid "View change history"
+msgstr "Afficher l'historique des changements"
 
-msgid "Application version"
-msgstr "Version de l'application"
+msgid "See member activity"
+msgstr "Voir l'activité des membres"
 
-msgid "Claimed credit"
-msgstr "Crédit demandé"
+msgid "Manage team message board"
+msgstr "Gérer le forum de l'équipe"
 
-msgid "Client state"
-msgstr "État du client"
+msgid "Create or manage message board"
+msgstr "Créer ou gérer un forum"
 
-msgid "CPU time"
-msgstr "Temps processeur"
+msgid "Remove members"
+msgstr "Supprimer des membres"
 
-msgid "Run time"
-msgstr "Temps de fonctionnement"
+msgid "Change founder"
+msgstr "Changer de chef d'équipe"
 
-msgid "Exit status"
-msgstr "État à la sortie"
+msgid "Manage team admins"
+msgstr "Gérer les administrateurs de l'équipe"
 
-msgid "Granted credit"
-msgstr "Crédit accordé"
+msgid "Edit team info"
+msgstr "Éditer les informations de l'équipe"
 
-msgid "Outcome"
-msgstr "Résultats"
+msgid "Remove team"
+msgstr "Supprimer l'équipe"
 
-msgid "Received time"
-msgstr "Temps de réception"
+msgid "Team forum"
+msgstr "Le forum de l'équipe"
 
-msgid "Report deadline"
-msgstr "Date limite de rapport"
+msgid "A discussion forum has been set up for team members."
+msgstr "Un forum de discussion a été mis en place pour les membres de l'équipe."
 
-msgid "Sent"
-msgstr "Envoyé"
+msgid "Enter forum"
+msgstr "Entrer dans le forum"
 
-msgid "Server state"
-msgstr "État du serveur"
+msgid "Join team"
+msgstr "Rejoindre l'équipe"
 
-msgid "Stderr out"
-msgstr "Stderr out"
+msgid "Click here to become a member of @this_team"
+msgstr "Cliquez ici pour devenir membre de @this_team"
 
-msgid "Validation state"
-msgstr "État de validation "
+msgid "Join this team"
+msgstr "Rejoindre cette équipe"
 
-msgid "App ID"
-msgstr "ID d'application"
+msgid "Choose type"
+msgstr "Choisissez le type"
 
-msgid "Canonical credit"
-msgstr "Crédit canonique"
+msgid "Team name"
+msgstr "Nom de l'équipe"
 
-msgid "Canonical result ID"
-msgstr "ID de résultat canonique"
+msgid "Text only, no HTML tags"
+msgstr "Texte uniquement, pas de balises HTML"
 
-msgid "Created time"
-msgstr "Date de création"
+msgid "Team name -- HTML version (optional)"
+msgstr "Nom de l'équipe -- Version HTML (optionnelle)"
 
-msgid "Error mask"
-msgstr "Masque d'erreur"
+msgid "You may use limited HTML tags"
+msgstr "Vous pouvez utiliser certaines balises HTML"
 
-msgid "Minimum quorum"
-msgstr "Quorum minimum"
+msgid "Team website (optional)"
+msgstr "Site internet de l'équipe (optionnel)"
 
-msgid "Max error tasks"
-msgstr "Nombre de tâches erronées maximum"
+msgid "Displayed on the team's page"
+msgstr "Affiché sur la page de l'équipe"
 
-msgid "Max success tasks"
-msgstr "Nombre de tâches réussies maximum"
+msgid "Type of team"
+msgstr "Type d'équipe"
 
-msgid "Max total tasks"
-msgstr "Nombre total de tâches maximum"
+msgid "Accept new members?"
+msgstr "Accepter de nouveaux membres ?"
 
-msgid "Needs validation"
-msgstr "Validation requise"
+msgid "Description of team"
+msgstr "Description de l'équipe"
 
-msgid "Initial replication"
-msgstr "Réplication initiale"
+msgid "Create a team"
+msgstr "Créer une équipe"
 
-msgid "Target number of results"
-msgstr "Objectif de résultat"
+msgid "Save team"
+msgstr "Enregistrer l'équipe"
 
-msgid "Application version ID"
-msgstr "ID de version de l'application"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Si vous exécutez déjà BOINC, sélectionnez <i>Ajouter\nun Projet</i>."
 
-msgid "Plan class"
-msgstr "Classe de plan"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Si vous utilisez une version de BOINC en ligne de commande,\nutilisez d'abord le logiciel BOINC Manager (à un autre endroit si nécessaire)\npour créer un compte sur ce projet, puis utilisez ce compte pour se connecter\nà l'aide de la version en ligne de commande."
 
-msgid "Version number"
-msgstr "Numéro de version"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Si vous utilisez une version de BOINC antérieure à 5.0, veuillez\nla mettre à jour vers une version plus récente afin de créer un compte\nsur ce projet."
 
-msgid "Computer"
-msgstr "Ordinateur"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Si vous avez oublié l'adresse email de votre compte, ou si vous ne pouvez pas recevoir d'email ici :"
 
-msgid "App version ID"
-msgstr "ID de version de l'application"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Si vous avez exécuté BOINC avec ce compte, vous pouvez toujours y avoir accès. Voici comment : "
 
-msgid "Consecutive valid tasks"
-msgstr "Nombre de tâches valides consécutives"
+msgid "BOINC documentation"
+msgstr "Documentation de BOINC"
 
-msgid "Number of tasks completed"
-msgstr "Nombre de tâches terminées"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Aller dans le répertoire de données de BOINC de votre ordinateur (voir !boinc_wiki pour obtenir de l'aide pour le trouver).                "
 
-msgid "Max tasks per day"
-msgstr "Nombre maximal de tâches par jour"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Trouvez votre fichier de compte pour ce projet, il sera nommé %file (tandis que l'URL du projet est %url)."
 
-msgid "Number of tasks today"
-msgstr "Nombre de tâches aujourd'hui"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Ouvrez ce fichier dans un éditeur de texte tel que Notepad. Vous verrez quelque chose ressemblant à :"
 
-msgid "Show IP address"
-msgstr "Afficher l'adresse IP"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Sélectionnez et copiez la chaîne de caractères entre <authenticator> et </authenticator>  (%auth dans l'exemple du dessus)."
 
-msgid "hours"
-msgstr "heures"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Collez la chaîne de caractères dans le champ ci-dessous et cliquez sur OK."
 
-msgid "@count million ops/sec"
-msgstr "@count MIPS"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Vous serez alors connecté à votre compte ; mettez à jour votre email et votre mot de passe."
 
-msgid "@rate KiB/sec"
-msgstr "@rate Ko/s"
+msgid "Log in with authenticator"
+msgstr "Connectez-vous avec l'authentificateur"
 
-msgid "@count days"
-msgstr "@count jours"
+msgid "OK"
+msgstr "OK"
 
-msgid "Remove friend"
-msgstr "Supprimer un ami"
+msgid "Post new topic"
+msgstr "Poster un nouveau sujet"
 
-msgid "Ban user"
-msgstr "Bannir un utilisateur"
+msgid "Create team message board"
+msgstr "Créer un forum de l’équipe"
 
-msgid "Add as friend"
-msgstr "Ajouter en tant qu'ami"
+msgid "Message board title"
+msgstr "Titre du message"
 
-msgid "Team"
-msgstr "Équipe"
+msgid "Minimum time between posts"
+msgstr "Délai minimum entre les dépôts de messages"
 
-msgid "Reply"
-msgstr "Répondre"
+msgid "Seconds"
+msgstr "Secondes"
 
-msgid "Reply to this comment"
-msgstr "Répondre à ce commentaire"
+msgid "Minimum total credit to post"
+msgstr "Crédit total minimum pour pouvoir poster"
 
-msgid "Quote"
-msgstr "Citer"
+msgid "Minimum avg credit to post"
+msgstr "Crédit moyen minimum pour pouvoir poster"
 
-msgid "Reply to this comment with quote"
-msgstr "Répondre à ce commentaire avec une citation"
+msgid "Allow public to read board?"
+msgstr "Autoriser la lecture du forum à tout le monde ?"
 
-msgid "Edit this comment"
-msgstr "Modifier ce commentaire"
+msgid "Create message board"
+msgstr "Créer un forum"
 
-msgid "Delete this comment"
-msgstr "Supprimer ce commentaire"
+msgid "About message boards"
+msgstr "À propos de ce message"
 
-msgid "Hide this comment"
-msgstr "Cacher ce commentaire"
+msgid "You may create a message board for use by @team"
+msgstr "Vous pouvez créer un forum relatif à @team."
 
-msgid "Convert"
-msgstr "Convertir"
+msgid "Only members may post"
+msgstr "Seuls les membres peuvent poster"
 
-msgid "Convert this comment to a new topic"
-msgstr "Convertir ce commentaire en nouveau sujet"
+msgid "Only members may read (optional)"
+msgstr "Seul les membres peuvent lire (optionnel) "
 
-msgid "Details"
-msgstr "Détails"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Le fondateur et les administrateurs de l'équipe ont les privilèges de modérateur."
 
 msgid "@ip_address (same the last @count times)"
 msgstr "@ip_address (identique les dernières @count fois)"
 
-msgid "commented on"
-msgstr "commentaires activés"
-
-msgid "Make unsticky"
-msgstr "Ne plus épingler"
-
-msgid "Remove sticky status from this topic"
-msgstr "Ne plus marquer ce sujet comme épinglé"
+msgid "Revise or post comment"
+msgstr "Corriger ou poster le commentaire"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1505,321 +1458,304 @@ msgstr "Vérifier les ordinateurs qui sont les mêmes que @name (créé le @date
 msgid "Computer @old_id has been merged successfully into @id."
 msgstr "L'ordinateur @old_id a bien été changé en @id."
 
-msgid "started discussion"
-msgstr "discussion commencée"
-
-msgid "posted"
-msgstr "posté"
-
-msgid "Minimum value not met for @field"
-msgstr "La valeur minimale pour @field n'a pas été atteinte"
+msgid "parent removed"
+msgstr "parent supprimé"
 
 msgid "Remove"
 msgstr "Supprimer"
 
-msgid "hidden"
-msgstr "caché"
-
-msgid "Invalid data type for @field"
-msgstr "Type de donnée invalide pour @field"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "Une authentification est obligatoire pour changer l'adresse e-mail ou changer de mot de passe."
 
-msgid "Request foundership"
-msgstr "Demander le titre de fondateur"
+msgid "Make unsticky"
+msgstr "Ne plus épingler"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Si le fondateur de l'équipe est inactif et que vous désirez assumer ce rôle, cliquez ci-dessous pour effectuer une requête de changement de fondateur pour @this_team"
+msgid "Remove sticky status from this topic"
+msgstr "Ne plus marquer ce sujet comme épinglé"
 
-msgid "Initiate request"
-msgstr "Initier la requête"
+msgid "Unhide"
+msgstr "Faire apparaître"
 
-msgid "A BOINC account already exists for @email."
-msgstr "Un compte BOINC existe déjà pour l'email @email."
+msgid "Unhide this comment"
+msgstr "Faire apparaître ce commentaire"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Veuillez être responsable de ce que vous écrivez et ne créez pas de messages offensants ou insultants. Les messages ou sujets offensants peuvent être supprimés par les modérateurs du forum sans avertissement ni explication. Ne réagissez pas aux messages offensants. Cliquez sur le bouton \"signaler\" au bas du message afin d'attirer l'attention des modérateurs."
+msgid "Unpublished"
+msgstr "Non publié"
 
-msgid "this project"
-msgstr "ce projet"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Les ordinateurs @old_ids ont bien été changés en @id."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "Nous vous demandons également de ne discuter que de BOINC ou de @project sur le forum, à l'exception du forum Science où vous êtes libre de discuter de tout ce qui se rapporte à la science sous-jacente aux projets. Les participants souhaitant discuter de sujets plus généraux sont invités à le faire sur les forums non-officiels de @project."
+msgid "Joined"
+msgstr "Rejoint"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "Ces forums sont maintenant compatibles avec les balises BBCode."
+msgid "Credit"
+msgstr "Crédit"
 
-msgid "Posts contributed"
-msgstr "Messages contribués"
+msgid "RAC"
+msgstr "Crédit moyen récent"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Profil en attente de validation par un modérateur"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Il n'existe pas de compte pour @email -- sélectionnez \"Créer un nouveau compte\" pour vous enregistrer"
 
-msgid "Approve profile"
-msgstr "Approuver le profil"
+msgid "started discussion"
+msgstr "discussion commencée"
 
-msgid "Approve this profile content"
-msgstr "Approuver le contenu de ce profil"
+msgid "commented on"
+msgstr "commentaires activés"
 
-msgid "Edit profile"
-msgstr "Éditer le profil"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Le mot de passe entré n'est pas valide. Veuillez en vérifier l’exactitude."
 
-msgid "Edit the content of this profile"
-msgstr "Éditer le contenu de ce profil"
+msgid "Minimum value not met for @field"
+msgstr "La valeur minimale pour @field n'a pas été atteinte"
 
-msgid "Remove profile"
-msgstr "Supprimer le profil"
+msgid "Invalid data type for @field"
+msgstr "Type de donnée invalide pour @field"
 
-msgid "Remove this profile content from the system"
-msgstr "Supprimer du système le contenu de ce profil"
+msgid "News"
+msgstr "Nouvelles"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "Le fondateur de l'équipe a @count jours pour répondre à votre demande de transfert."
+msgid "Remove friend"
+msgstr "Supprimer un ami"
 
-msgid "Reject profile"
-msgstr "Rejeter le profil"
+msgid "ignore list"
+msgstr "Liste de personnes ignorées"
 
-msgid "Reject this profile content"
-msgstr "Rejeter le contenu de ce profil"
+msgid "here"
+msgstr "ici"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username est dans !ignore_list. Cliquer !here pour voir ce message."
+
+msgid "hidden"
+msgstr "caché"
+
+msgid "Unknown"
+msgstr "Inconnu"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Réglage invalide pour \"%preference\""
 
-msgid "Reason for rejecting this profile"
-msgstr "Raison du rejet de ce profil"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site : commentaire posté sur le sujet \"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "L'!auteur a posté une réponse sur le sujet \"!topic_name\"."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Cette raison sera incluse dans un email envoyé a l'utilisateur. Veuillez écrire une brève explication sur le problème et comment le résoudre."
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Pour voir ce sujet sur le site !site, cliquez ici :\n!comment_url"
 
-msgid "Submit"
-msgstr "Soumettre"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "Le fondateur de l'équipe a @count jours pour répondre à votre demande de transfert."
+
+msgid "Unlock"
+msgstr "Déverrouiller"
+
+msgid "Unlock this thread for comments"
+msgstr "Déverrouiller ce fil de commentaires"
 
 msgid "project"
 msgstr "Projet"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "Il n'existe pas de compte pour @email -- sélectionnez \"Créer un nouveau compte\" pour vous enregistrer"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email n'est pas une adresse email correcte, veuillez la vérifier"
 
-msgid "Unknown"
-msgstr "Inconnu"
+msgid "Please enter your email address"
+msgstr "Veuillez entrer votre adresse email"
 
-msgid "My team"
-msgstr "Mon équipe"
+msgid "There is no account with that authenticator."
+msgstr "Il n'y a pas de compte avec cet authentificateur."
 
-msgid "You are a member of @team."
-msgstr "Vous êtes membre de l'équipe @team"
+msgid "That authenticator is not valid."
+msgstr "Cette authentifiant n'est pas valide."
 
-msgid "View my team"
-msgstr "Voir mon équipe"
+msgid "Send request"
+msgstr "Envoyer la demande"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Réglage invalide pour \"%preference\""
+msgid "Friend request from !name [!site]"
+msgstr "Demande d'ami de !name [!site]"
 
-msgid "Pending"
-msgstr "En attente"
+msgid "Message"
+msgstr "Message"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "Vous devez gagner @count crédits supplémentaires pour pouvoir écrire des commentaires sur ce site."
-
-msgid "Moderation"
-msgstr "Modération"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name vous a ajouté comme ami sur !site. Vous pouvez accepter ou refuser cette demande. Rejeter une demande n'enverra pas de notification, mais supprimera la demande de vos deux comptes.\n\nSuivez le lien ci-dessous pour voir cette demande :\n\n!link\n\n!message\n\nMerci,\nl'équipe !site"
 
-msgid "Unvetted profiles"
-msgstr "Profils non vérifiés"
+msgid "Cancel friend request"
+msgstr "Annuler la demande d'ami"
 
-msgid "Reason for banning this user"
-msgstr "Raison pour bannir cet utilisateur"
+msgid "Please set the minimum time required between posts."
+msgstr "Définissez l'intervalle de temps minimum requis entre des messages."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "Cette raison sera incluse dans un email envoyé a l'utilisateur. Veuillez écrire une brève explication sur la cause du bannissement. "
-
-msgid "Duration of the ban"
-msgstr "Durée du bannissement "
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "Nombre de jour avant que le bannissement expire. Choisissez 0 pour bannir de manière définitive. "
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Définissez le crédit total minimum qu'un utilisateur doit avoir acquis pour poster."
 
-msgid "Lift user ban"
-msgstr "Lever le bannissement de l'utilisateur"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Veuillez indiquer le crédit moyen minimal qu'un utilisateur doit avoir afin de pouvoir poster sur ce forum."
 
-msgid "You are banned from community participation until @date"
-msgstr "Vous êtes banni de cette communauté jusqu'au @date"
+msgid "Edit message board"
+msgstr "Éditer ce message "
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "Les ordinateurs @old_ids ont bien été changés en @id."
+msgid "Save message board"
+msgstr "Enregistrer ce message"
 
-msgid "A team named \"@name\" already exists."
-msgstr "Une équipe appelée \"@name\" existe déjà."
+msgid "This is a team-only message board"
+msgstr "Ceci est un forum réservé à l'équipe"
 
-msgid "Post topic"
-msgstr "Poster le sujet"
+msgid "Maximum value exceeded for @field"
+msgstr "Valeur maximale dépassée pour @field"
 
-msgid "Please enter your email address"
-msgstr "Veuillez entrer votre adresse email"
+msgid "Approve request"
+msgstr "Accepter la demande"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "Le mot de passe entré n'est pas valide. Veuillez en vérifier l’exactitude."
+msgid "!name accepted your friend request [!site]"
+msgstr "!name a accepté votre demande d'ami [!site]"
 
-msgid "Make founder"
-msgstr "Le rendre fondateur"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name a confirmé que vous étiez son ami sur !site.\n\nSuivez ce lien pour afficher son profil :\n!link\n\n!message\n\nMerci,\nl'équipe !site."
 
-msgid "User of the day"
-msgstr "Utilisateur du jour"
+msgid "posted"
+msgstr "posté"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site : commentaire posté sur le sujet \"!topic_name\""
+msgid "Add team admin"
+msgstr "Ajouter un administrateur à l'équipe"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "L'!auteur a posté une réponse sur le sujet \"!topic_name\"."
+msgid "Enter email address"
+msgstr "Entrez l'adresse e-mail"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "Pour voir ce sujet sur le site !site, cliquez ici :\n!comment_url"
+msgid "Current team admins"
+msgstr "Administrateurs actuels de l'équipe"
 
-msgid "At least one application must be selected"
-msgstr "Veuillez sélectionner au moins une application"
+msgid "About team admins"
+msgstr "À propos de l'équipe d'administrateurs"
 
-msgid "Account"
-msgstr "Compte"
+msgid "Team admins can:"
+msgstr "Les administrateurs de l’équipe peuvent :"
 
-msgid "Log in"
-msgstr "Connexion"
+msgid "Edit team information"
+msgstr "Éditer les informations de l'équipe"
 
-msgid "Forgot password"
-msgstr "Mot de passe oublié"
+msgid "View the team's join / quit history"
+msgstr "Voir l'historique des venues et des départs dans l'équipe"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Saisissez votre adresse email pour recevoir les instructions qui vous permettront de réinitialiser votre mot de passe."
+msgid "Moderate the team forum"
+msgstr "Modérer le forum de l'équipe"
 
-msgid "Send"
-msgstr "Envoyer"
+msgid "Remove members from the team"
+msgstr "Supprimer des membres de l'équipe"
 
-msgid "Revise or post comment"
-msgstr "Corriger ou poster le commentaire"
+msgid "Disband a team if it has no members"
+msgstr "Supprimer l'équipe si elle n'a aucun membre"
 
-msgid "discuss"
-msgstr "discuter"
+msgid "Team admins cannot:"
+msgstr "Les administrateurs de l'équipe ne peuvent pas :"
 
-msgid "News"
-msgstr "Nouvelles"
+msgid "Change the team founder"
+msgstr "Modifier le nom du fondateur de l'équipe"
 
-msgid "Your community preferences have been updated."
-msgstr "Vos préférences de communauté ont été mises à jour."
+msgid "Add / Remove team admins"
+msgstr "Ajouter / Supprimer un administrateur de l'équipe"
 
-msgid "Unlock"
-msgstr "Déverrouiller"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Si un administrateur quitte l'équipe, il cesse d'être un administrateur de l'équipe. Nous vous recommandons de sélectionner uniquement des personnes que vous connaissez et à qui vous faites confiance"
 
-msgid "Unlock this thread for comments"
-msgstr "Déverrouiller ce fil de commentaires"
+msgid "Lift user ban"
+msgstr "Lever le bannissement de l'utilisateur"
 
-msgid "Authenticator login"
-msgstr "Identifiant de l'authentificateur"
+msgid "A team named \"@name\" already exists."
+msgstr "Une équipe appelée \"@name\" existe déjà."
 
-msgid "Create content"
-msgstr "Créer un contenu"
+msgid "A BOINC account already exists for @email."
+msgstr "Un compte BOINC existe déjà pour l'email @email."
 
-msgid "authenticator-based login"
-msgstr "Connexion à l'aide d'un authentificateur"
+msgid "Make founder"
+msgstr "Le rendre fondateur"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Saisissez votre adresse email pour recevoir les instructions qui vous permettront de réinitialiser votre mot de passe (ou utilisez le !authenticator_login)."
+msgid "Changing the team founder"
+msgstr "Changer le chef d'équipe"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "Si vous avez oublié l'adresse email de votre compte, ou si vous ne pouvez pas recevoir d'email ici :"
+msgid "Notes about changes in foundership:"
+msgstr "Notes à propos des changements de chef :"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "Si vous avez exécuté BOINC avec ce compte, vous pouvez toujours y avoir accès. Voici comment : "
+msgid "Any member of the team is eligible"
+msgstr "Tout membre de l'équipe est éligible"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Aller dans le répertoire des données de BOINC de votre ordinateur (sous Windows, c'est généralement %path_1 ou %path_2)."
+msgid "Current founder becomes a normal user"
+msgstr "Le fondateur actuel devient un utilisateur normal"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Trouvez votre fichier de compte pour ce projet, il sera nommé %file (tandis que l'URL du projet est %url)."
+msgid "Foundership can be requested by team members:"
+msgstr "La place de fondateur peut être demandée par les membres de l’équipe :"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Ouvrez ce fichier dans un éditeur de texte tel que Notepad. Vous verrez quelque chose ressemblant à :"
+msgid "One request is allowed at a time"
+msgstr "Une seule requête est autorisée à la fois"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Sélectionnez et copiez la chaîne de caractères entre <authenticator> et </authenticator>  (%auth dans l'exemple du dessus)."
+msgid "It must be 60 days since any previous request"
+msgstr "Il faut attendre 60 jours depuis la précédente requête"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Collez la chaîne de caractères dans le champ ci-dessous et cliquez sur OK."
+msgid "Any active request must be older than 90 days"
+msgstr "Une requête active doit dater de plus de 90 jours"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Vous serez alors connecté à votre compte ; mettez à jour votre email et votre mot de passe."
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Le fondateur actuel a 60 jours pour répondre à une requête "
 
-msgid "Log in with authenticator"
-msgstr "Connectez-vous avec l'authentificateur"
+msgid "BOINC-wide teams site"
+msgstr "site d'équipes globales BOINC "
 
-msgid "There is no account with that authenticator."
-msgstr "Il n'y a pas de compte avec cet authentificateur."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Ceci est une équipe globale BOINC. Les modifications peuvent être faite à !site."
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Aller dans le répertoire des données <a href=\"%wikiref\"> de BOINC de votre ordinateur (sous Windows, c'est généralement %path1 ou %path2)."
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Un changement de chef d'équipe a déjà été demandé récemment. Une seule requête est autorisée par période de 90 jours."
 
-msgid "BOINC documentation"
-msgstr "Documentation de BOINC"
+msgid "@count days remaining"
+msgstr "@name jours restants."
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Aller dans le répertoire de données de BOINC de votre ordinateur (voir !boinc_wiki pour obtenir de l'aide pour le trouver).                "
+msgid "Team name is required."
+msgstr "Nom d'équipe requis."
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "@count jours se sont écoulés depuis votre requête et le fondateur n'a pas répondu."
+msgid "Reason for banning this user"
+msgstr "Raison pour bannir cet utilisateur"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "Vous avez maintenant @count jours pour endosser la fondation avant qu'un autre membre de l'équipe puisse soumettre une demande."
-
-msgid "Assume foundership"
-msgstr "Prendre le titre de fondateur"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Cette raison sera incluse dans un email envoyé a l'utilisateur. Veuillez écrire une brève explication sur la cause du bannissement. "
 
-msgid "Unhide"
-msgstr "Faire apparaître"
+msgid "Duration of the ban"
+msgstr "Durée du bannissement "
 
-msgid "Unhide this comment"
-msgstr "Faire apparaître ce commentaire"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Nombre de jour avant que le bannissement expire. Choisissez 0 pour bannir de manière définitive. "
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email n'est pas une adresse email correcte, veuillez la vérifier"
+msgid "Submit"
+msgstr "Soumettre"
diff --git a/locale/fr/BOINC-Manager.mo b/locale/fr/BOINC-Manager.mo
index 0c471e2..25b5227 100644
Binary files a/locale/fr/BOINC-Manager.mo and b/locale/fr/BOINC-Manager.mo differ
diff --git a/locale/fr/BOINC-Manager.po b/locale/fr/BOINC-Manager.po
index 6d7e39d..a11cea8 100644
--- a/locale/fr/BOINC-Manager.po
+++ b/locale/fr/BOINC-Manager.po
@@ -1,6 +1,7 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Amaury Van Espen, 2015
@@ -10,62 +11,56 @@
 # Christian Beer <christian.beer at posteo.de>, 2015-2016
 # Clément Jonglez <clement.jonglez at isae.fr>, 2015
 # Frédéric Ménétrier, 2015
-# Jerome Cadet <jerome.cadet at pobox.com>, 2015
+# Jerome Cadet <jerome.cadet at pobox.com>, 2015-2016
+# Lucas Mascaro <mascaro.lucas at yahoo.fr>, 2017
 # Philippe Janocha, 2016
 # PINSET Romaric <inactive+RomaricP at transifex.com>, 2015
+# Sacha Muszlak, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-03-26 14:54+0000\n"
-"Last-Translator: Philippe Janocha\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-29 23:38+0000\n"
+"Last-Translator: Lucas Mascaro <mascaro.lucas at yahoo.fr>\n"
 "Language-Team: French (http://www.transifex.com/boinc/boinc/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Identifiez votre compte à %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Veuillez entrer les informations de votre compte\n(pour créer un compte, visitez le site web du projet)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Ce projet n'accepte plus de nouveaux comptes pour le moment.\nVous pouvez l'ajouter seulement si vous avez déjà un compte."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Participez-vous déjà à ce projet ?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Non, nouvel utilisateur"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Oui, utilisateur existant"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -75,85 +70,85 @@ msgid ""
 "password fields."
 msgstr "Nous n'avons pas été en mesure de mettre en place vos informations de compte\nautomatiquement.\n\nVeuillez cliquer sur le lien 'Rechercher les informations de connexion' \nci-dessous pour savoir quoi mettre dans les champs adresse e-mail et\nmot de passe."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Trouvez les informations de connexion"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Mot de passe :"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Choisissez un &mot de passe :"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "C&onfirmez le mot de passe :"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Participez-vous déjà à %s ?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Nom d’utilisateur :"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&adresse e-mail ou ID LDAP :"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Adresse de courriel :"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "longueur minimum %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Mot de passe oublié ?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Si vous ne vous êtes pas encore inscrit à ce gestionnaire de compte, \nmerci de le faire avant de continuer. Cliquez sur le lien ci-dessous pour \nvous enregistrer ou pour récupérer un mot de passe oublié."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Site du gestionnaire de compte"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Ajouter un projet"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Mettre à jour le gestionnaire de compte"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Utiliser le gestionnaire de compte"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Veuillez saisir un nom d'utilisateur."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Veuillez saisir une adresse de courriel."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Veuillez entrer un mot de passe d'au moins %d caractères."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Le mot de passe et la confirmation du mot de passe sont différents. Veuillez les entrer à nouveau."
@@ -206,11 +201,11 @@ msgstr "Veuillez patienter..."
 msgid "An internal server error has occurred.\n"
 msgstr "Une erreur interne du serveur a eu lieu.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Connecté"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Déconnecté"
 
@@ -225,8 +220,8 @@ msgid "Open another %s window"
 msgstr "Ouvrir une autre fenêtre %s"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Sélectionner un ordinateur..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Sélectionner un ordinateur...\tCtrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -282,7 +277,7 @@ msgstr "&Tâches\tCtrl+Shift+T"
 
 #: clientgui/AdvancedFrame.cpp:413
 msgid "Show tasks"
-msgstr "Montrer les tâches"
+msgstr "Tâches"
 
 #: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
@@ -475,7 +470,7 @@ msgstr "Sélectionner les colonnes à afficher"
 
 #: clientgui/AdvancedFrame.cpp:621
 msgid "Event Log options...\tCtrl+Shift+F"
-msgstr "Options du Journal des événements...\tCtrl+Shift+F"
+msgstr "Options du Journal des événements...\\tCtrl+Shift+F"
 
 #: clientgui/AdvancedFrame.cpp:622
 msgid "Enable or disable various diagnostic messages"
@@ -536,7 +531,7 @@ msgstr "Site web de %s"
 msgid "Show information about BOINC and %s"
 msgstr "Afficher les informations à propos de BOINC et %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -571,12 +566,12 @@ msgstr "&Outils"
 msgid "&Help"
 msgstr "&Aide"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Arrêter d'utiliser %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -586,39 +581,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Si vous cessez d'utiliser %s, \nvous conserverez tous vos projets \nmais vous devrez les gérer manuellement.\n\nVoulez-vous cesser d'utiliser %s ?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Arrêter le client actuel..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s arrêtera le client connecté\net vous invitera à vous connecter à un autre ordinateur."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s a ajouté avec succès %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Connexion à %s en cours"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Connecté à %s (%s)"
@@ -667,7 +662,7 @@ msgid "%s - Communication"
 msgstr "%s - Communication"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Annuler"
@@ -742,7 +737,7 @@ msgid ""
 msgstr "%s n'est actuellement pas connecté à un client %s.\nVeuillez utiliser l'option du menu 'Avancé\\Sélectionner un ordinateur...' pour vous connecter à un client %s.\nPour vous connecter à votre ordinateur local, veuillez utiliser 'localhost' comme nom d'hôte."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Pages web du projet"
 
@@ -802,7 +797,7 @@ msgstr "%s a réussi à se déconnecter d'Internet."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s n'a pas réussi à se déconnecter d'Internet."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -815,170 +810,170 @@ msgid ""
 "     user group."
 msgstr "Vous n'êtes pas autorisé actuellement à gérer le client.\n\nPour exécuter %s à l'aide de ce compte, merci de :\n- réinstaller %s en répondant \"Oui\" à la question sur\nles utilisateurs non-administrateurs\nou\n- contacter votre administrateur pour qu'il ajoute ce compte au\ngroupe utilisateurs \"boinc_master\"."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "Les autorisations des fichiers %s ne sont pas paramétrées correctement; veuillez réinstaller %s.\n(Code erreur %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " chez "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "Un redémarrage est requis pour le bon fonctionnement de BOINC.\nVeuillez redémarrer votre ordinateur et réessayer."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "Manager BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC Manager a été démarré automatiquement par le système d'exploitation"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Démarrer BOINC avec seulement l'icône de la barre des tâches visible"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Répertoire contenant les fichiers exécutables de BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Répertoire des données BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Nom de l'hôte ou adresse IP"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "Numéro de port GUI RPC"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Mot de passe"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Démarrer BOINC avec ces arguments optionnels"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "désactiver les permissions et les sécurités utilisateur de BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "sélectionner le mode débogage d'apparence pour activer les messages d'erreur du gestionnaire d'apparence"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "instances multiples du gestionnaire BOINC autorisées"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Non utilisé : contournement du bogue dans XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Ne pas lancer le démon"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Détection automatique)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Inconnu)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Défini par l'utilisateur)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Ouvre le site web de %s..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Ouvrir %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Mettre en veille"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Mettre en veille le processeur graphique"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Quitter"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Reprendre"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Reprendre l'activité du processeur graphique"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Le calcul est autorisé"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Le calcul est suspendu - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Le calcul du processeur graphique est autorisé"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "Le calcul du processeur graphique est suspendu - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Utilisation du réseau autorisée"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Activité réseau suspendue - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr " Reconnexion au client en cours."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Aucune connexion à un client."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "Notifications de %s"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Il y a de nouveaux messages - cliquer pour visualiser."
 
@@ -1093,46 +1088,6 @@ msgstr "Pour plus d'informations, consultez "
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "nombre invalide"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Horaire incorrect, la valeur doit être comprise entre 00:00 et 24:00, au format HH:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "L'heure de début doit être différente de l'heure de fin"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Le nombre doit être compris entre 0 et 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Le nombre doit être compris entre 0 et 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Le nombre doit être compris entre 1 et 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "valeur invalide détectée"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Erreur de validation"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Remplacer les préférences locales par les préférences enregistrées sur le web ?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Confirmation"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1180,7 +1135,7 @@ msgid "Daily schedules"
 msgstr "Planifications journalières"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1195,7 +1150,7 @@ msgstr "Fermer la fenêtre sans enregistrer les modifications."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Aide"
@@ -1594,75 +1549,123 @@ msgstr "Transférer les fichiers uniquement pendant une période donnée chaque
 msgid "Transfer files only between"
 msgstr "Transférer des fichiers seulement entre"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "nombre invalide"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Horaire incorrect, la valeur doit être comprise entre 00:00 et 24:00, au format HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "L'heure de début doit être différente de l'heure de fin"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Le nombre doit être compris entre 0 et 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Le nombre doit être compris entre 0 et 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Le nombre doit être compris entre 1 et 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "valeur invalide détectée"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Erreur de validation"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Remplacer les préférences locales par les préférences enregistrées sur le web ?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Confirmation"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "Drapeaux de journal de diagnostic de %s"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Ces indicateurs permettent différents types de messages de diagnostic dans le Journal des événements."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Plus d'informations..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Enregistrer toutes les valeurs et fermer la boîte de dialogue"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "Par défaut"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Restaurer les paramètres par défaut"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Fermer la fenêtre sans sauvegarder"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Appliquer"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Sauvegarder toutes les valeurs"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Journal des événements"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projet"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Date"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Message"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "Ne &montrer que ce projet"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "&Tout copier"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Copier tous les messages dans le presse-papier."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Copier la &sélection"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1670,7 +1673,7 @@ msgid ""
 "messages."
 msgstr "Copie les messages sélectionnés dans le presse-papier. Vous pouvez sélectionner plusieurs messages en maintenant appuyée la touche Shift ou Cmd lorsque vous cliquez sur les messages."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1678,19 +1681,19 @@ msgid ""
 "messages."
 msgstr "Copie les messages sélectionnés dans le presse-papiers. Vous pouvez sélectionner plusieurs messages en maintenant appuyée la touche Shift ou Ctrl lorsque vous cliquez sur les messages."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Fermer"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Montrer tous les &messages"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Montrer les messages de tous les projets."
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Ne montrer que les messages du projet sélectionné."
 
@@ -1713,7 +1716,7 @@ msgid "Add an application to this list"
 msgstr "Ajouter une application à cette liste"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Supprimer"
 
@@ -2047,14 +2050,14 @@ msgstr "Ressources"
 msgid "Estimated computation size"
 msgstr "Taille de tâche estimée"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "Temps processeur au dernier point de sauvegarde"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Temps de calcul"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Temps processeur depuis le point de sauvegarde"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Temps écoulé"
@@ -2104,8 +2107,8 @@ msgstr "par seconde"
 msgid "Executable"
 msgstr "Exécutable"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Local :"
 
@@ -2464,203 +2467,191 @@ msgstr "Recherche"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "S'informer sur les projets hébergés par World Community Grid"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Client en cours de démarrage"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Connexion au client en cours"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Recherche de l'état du système ; veuillez patienter..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Application manquante"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Merci d'installer l'application CorD à partir de http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "sur batterie"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "l'ordinateur est utilisé"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "requête utilisateur"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "moment de la journée"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "Tests de puissance de l'ordinateur en cours"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "a besoin d'espace disque - vérifiez les préférences"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "l'ordinateur n'est pas utilisé"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "en cours de démarrage"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr " une application prioritaire est en cours d'exécution"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "Le processeur est occupé"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "dépassement de limite du débit réseau"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "demandé par le système d'exploitation"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "raison inconnue"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "pas de processeur graphique, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Nouveau"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Échec du téléchargement"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Téléchargement en cours"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (suspendu - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Projet suspendu par l'utilisateur"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Tâche suspendue par l'utilisateur"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Suspendu - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "Activité du processeur graphique suspendue"
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "En attente de mémoire"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "En attente de mémoire partagée"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Calculs en cours"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (sollicite peu le processeur)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Calcul en pause"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Prêt à démarrer"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Reporté : "
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Reporté"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr " En attente d’accès réseau"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Erreur de calcul"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Échec de l'envoi"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Envoi en cours"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Annulé par l'utilisateur"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Annulé par le projet"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Avorté : non démarré dans le délai imparti"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Annulé : limite du disque atteinte"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Annulé : limite du temps d'exécution atteinte"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Annulé : limite de la mémoire atteinte"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Annulé"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Confirmé"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Prêt à valider"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Erreur : état invalide '%d'"
@@ -2724,7 +2715,7 @@ msgstr "Pour choisir un projet, cliquez sur son nom ou tapez son adresse ci-dess
 msgid "Categories:"
 msgstr "Catégories :"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projets :"
 
@@ -2768,24 +2759,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Vous avez déjà ajouté ce projet. Vous pouvez choisir un autre projet."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Communication avec le projet en cours."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Communication avec le projet en cours \nVeuillez patienter..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Fichiers requis introuvables sur le serveur."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Une erreur interne du serveur a eu lieu."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Communication avec le projet en cours \nVeuillez patienter..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2883,1024 +2871,938 @@ msgstr "Détection automatique"
 msgid "SOCKS proxy"
 msgstr "Proxy SOCKS"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Conditions d'utilisation"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Apparence"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Merci de lire les conditions d'utilisation suivantes :"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Choisissez l'apparence de l'interface utilisateur."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "J'accepte les conditions d'utilisation."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Vue Avancée...\\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Je n'accepte pas les conditions d'utilisation."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Afficher l'interface graphique avancée."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projet momentanément indisponible"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Configuration des options d'affichage et des paramètres de proxy"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Le projet est momentanément indisponible.\n\nVeuillez réessayer plus tard."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Afficher les messages de diagnostic."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Gestionnaire de compte momentanément indisponible"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Le gestionnaire de compte est momentanément indisponible.\n\nVeuillez réessayer plus tard."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Valeur par défaut"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Veuillez entrer une clé d'identification pour continuer."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Suspendre"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Clé d'identification invalide ; veuillez entrer une clé d'identification valide."
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Suspendre le calcul"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Conflit de validation"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Reprendre le calcul"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Veuillez entrer une adresse email"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Notifications"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Adresse email invalide ; veuillez entrer une adresse email valide"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Ouvrir une fenêtre pour voir les notifications des projets ou de BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Adresse web manquante"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Obtenir de l'aide avec %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Veuillez entrer une adresse web.\nPar exemple :\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Recherche de notifications ; veuillez patienter..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Adresse web invalide"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Aucune notification en cours."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Veuillez entrer une adresse web valide.\nPar exemple :\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Fermer"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' ne contient pas de nom d'hôte valide."
+msgid "%s - Notices"
+msgstr "Notifications de %s"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' ne contient pas de chemin valide."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Commandes"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Copier tous les messages"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Copier les messages sélectionnés"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Ne montrer que ce projet"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Ne montrer les messages que pour le projet sélectionné."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Messages"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Copie de tous les messages dans le presse-papier en cours..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Copie les messages sélectionnés dans le presse-papier..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtrer les messages..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Montrer tous les messages"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Montrer les messages pour tous les projets."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Pour des réglages supplémentaires, choisissez Préférences de calcul dans la Vue avancée."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Recherche de notifications ; veuillez patienter..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "Go d'espace de stockage"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Aucune notification en cours."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Préférences de calcul"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Notifications"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Remplacer les préférences locales par les préférences enregistrées sur le web ?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Mettre à jour"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Envoie les calculs terminés, met à jour les crédits, met à jour les préférences et peut télécharger de nouvelles tâches à calculer."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Suspendre"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Suspend les tâches de ce projet."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Pas de nouvelle tâche"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Ne récupère pas de nouveau travail pour ce projet."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Recommencer le projet"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Supprime tous les fichiers et toutes les tâches associés à ce projet et recharge les fichiers nécessaires. Vous pouvez d'abord mettre à jour le projet pour transmettre tout le travail effectué."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Supprimer ce projet. Le travail en cours sera perdu. (Cliquez d'abord sur 'Mettre à jour' pour envoyer les calculs terminés)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Propriétés"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Afficher les détails du projet."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Compte"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Travail effectué"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Travail effectué moyen"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "État"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projets"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Mise à jour du projet en cours..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Reprise du projet en cours..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Mise en pause du projet en cours..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Reprend le calcul pour ce projet."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Informe le projet qu'il peut télécharger du travail supplémentaire..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Autoriser de nouvelles tâches"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Informe le projet de ne pas télécharger de travail supplémentaire..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Autorise le téléchargement de nouvelles tâches pour ce projet."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Réinitialisation du projet en cours..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Ne récupère pas de nouvelles tâches pour ce projet."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Êtes-vous sûr de vouloir recommencer le projet '%s’ ?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Recommencer le projet"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Suppression du projet en cours..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Êtes-vous sûr de vouloir supprimer le projet '%s’ ?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Supprimer le projet"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Démarrage du navigateur en cours..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Ajouter un projet"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Reprend le calcul pour ce projet."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Synchroniser"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Autoriser de nouvelles tâches"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Travail effectué pour ce projet"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Autorise le téléchargement de nouvelles tâches pour ce projet."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Volontaire pour tout projet parmi la trentaine disponibles dans de nombreux domaines de sciences"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Ne récupère pas de nouvelles tâches pour ce projet."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Synchroniser les projets avec le gestionnaire de compte"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Demandé par l'utilisateur"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Choisir un projet à accéder avec les contrôles ci-dessous"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "Pour demander du travail"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Pages web du projet"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "Pour rapporter une tâche terminée"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Commandes du projet"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Pour envoyer les messages de progression de tâche"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Afficher une liste des sites web pour le projet %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Demandé par le gestionnaire de compte"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Afficher une liste des commandes à appliquer au projet %s"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Initialisation du projet"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Montrer les graphiques"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Demandé par le projet"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Montre les graphiques de l'application dans une fenêtre."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Raison inconnue"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Suspendre cette tâche."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Suspendu par l'utilisateur"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Abandonner"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Pas de nouveau travail"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Abandonner cette tâche. Vous ne recevrez pas de crédit pour cette tâche."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Projet terminé - OK pour le supprimer"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Afficher les détails de la tâche."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Le projet sera supprimé lorsque les tâches seront terminées"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Reprendre le calcul de cette tâche."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Requête au planificateur en attente"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Suspendre le calcul de cette tâche."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Requête au planificateur en cours"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Êtes-vous sûr de vouloir abandonner cette tâche '%s'?\n(Avancement : %.1lf%%, État : %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Message de progression de tâche en cours"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Abandonner la tâche"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Communication différée "
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Vous n'avez aucun projet. Veuillez ajouter un projet."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Occupation totale de la mémoire de stockage"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Indisponible"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Occupation de la mémoire de stockage par les projets BOINC"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Tâches :"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "Aucun projet : 0 octet utilisé"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Choisir une tâche"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "utilisé par BOINC :"
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "De :"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "libre, disponible pour BOINC :"
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Avancement de cette tâche"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "libre, indisponible pour BOINC :"
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Commandes de tâche"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "libre :"
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Afficher une liste des commandes applicables à cette tâche"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "utilisé par d'autres programmes :"
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Application : %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Total de l'utilisateur"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Moyenne de l'utilisateur"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Application : indisponible"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Total de l'hôte"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Indisponible"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Moyenne de l'hôte"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Écoulé : %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Dernière mise à jour : il y a %.0f jour(s)"
+msgid "Remaining (estimated): %s"
+msgstr "Restant (estimation) : %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Total de l'utilisateur"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Statut : %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Crédit total de l'utilisateur"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Recherche de l'état actuel."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Moyenne de l'utilisateur"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Téléchargement des tâches depuis le serveur en cours."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Crédit moyen de l'utilisateur"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Calcul suspendu : fonctionne sur batterie."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Total de l'hôte"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Calcul suspendu : utilisateur actif."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Crédit total de l'hôte"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Calcul suspendu : l'utilisateur a mis en pause le calcul."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Moyenne de l'hôte"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Calcul suspendu : restriction sur les jours de la semaine."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Crédit moyen de l'hôte"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Calcul suspendu : tests de puissance de l'ordinateur."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< &Projet précédent"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Calcul suspendu: Espace disque nécessaire."
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Montrer le graphique du projet précédent"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Calcul suspendu."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "&Projet suivant >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "En attente du contact des serveurs de projets."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Montrer le graphique du projet suivant"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Recherche de l'état actuel"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Masquer la liste de projets"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Aucune tâche disponible à traiter"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Utiliser toute la place pour les graphiques"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Impossible de se connecter au client BOINC"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Mode visuel"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Conditions d'utilisation"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Un projet"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Merci de lire les conditions d'utilisation suivantes :"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Montre un graphique pour le projet sélectionné"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "J'accepte les conditions d'utilisation."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Tous les projets (séparés)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Je n'accepte pas les conditions d'utilisation."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Montre tous les projets, un graphique par projet"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projet momentanément indisponible"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Tous les projets (ensemble)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Le projet est momentanément indisponible.\n\nVeuillez réessayer plus tard."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Montre un graphique pour tous les projets"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Gestionnaire de compte momentanément indisponible"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Tous les projets (somme)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Le gestionnaire de compte est momentanément indisponible.\n\nVeuillez réessayer plus tard."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Montre un graphique avec la somme de tous les projets"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Veuillez entrer une clé d'identification pour continuer."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Statistiques"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Clé d'identification invalide ; veuillez entrer une clé d'identification valide."
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Mise à jour des graphiques en cours..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Conflit de validation"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Montrer la liste des projets"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Veuillez entrer une adresse email"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Utilise une place plus petite pour les graphiques"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Adresse email invalide ; veuillez entrer une adresse email valide"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Réessayer maintenant"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Adresse web manquante"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Réessayer de transférer ce fichier maintenant."
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Veuillez entrer une adresse web.\nPar exemple :\nhttp://www.example.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Annuler le transfert"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Adresse web invalide"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Abandonner cet envoi de fichier. Vous ne recevrez pas de crédit pour cette tâche."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Veuillez entrer une adresse web valide.\nPar exemple :\nhttp://boincproject.example.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Fichier"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' ne contient pas de nom d'hôte valide."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Avancement"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' ne contient pas de chemin valide."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Taille"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Commandes"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Écoulé"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Copier tous les messages"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Vitesse"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Copier les messages sélectionnés"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Transferts"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Ne montrer que ce projet"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Activité réseau suspendue - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Ne montrer les messages que pour le projet sélectionné."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nVous pouvez l'activer par le menu Activité."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Messages"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Copie de tous les messages dans le presse-papier en cours..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Réessai du transfert en cours..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Copie les messages sélectionnés dans le presse-papier..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Annulation du transfert en cours..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtrer les messages..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Êtes-vous sûr de vouloir abandonner le transfert de ce fichier '%s' ?\nNOTE : L'abandon d'un transfert invalidera la tâche\net vous ne recevrez pas de crédits pour cette tâche."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Montrer tous les messages"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Annuler le transfert de fichier"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Montrer les messages pour tous les projets."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Envoi"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Compte"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Téléchargement"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Travail effectué"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "réessayer dans "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Travail effectué moyen"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "échoué"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "État"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "suspendu"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projets"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "actif"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Demandé par l'utilisateur"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "en attente"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Pour demander du travail"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (retrait de projet :"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Pour rapporter une tâche terminée"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Montrer les tâches actives"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Pour envoyer les messages de progression de tâche"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Ne montre que les tâches actives."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Demandé par le gestionnaire de compte"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Montrer les graphiques"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Initialisation du projet"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Montre les graphiques de l'application dans une fenêtre."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Demandé par le projet"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Montrer la console VM"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Raison inconnue"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Montre la console VM dans une fenêtre."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Suspendu par l'utilisateur"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Suspend le calcul de cette unité."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Pas de nouveau travail"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Abandonner"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projet terminé - OK pour le supprimer"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Abandonne le calcul de cette unité. Vous n'obtiendrez pas de crédit pour cette unité."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Le projet sera supprimé lorsque les tâches seront terminées"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Afficher les détails de la tâche."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Requête au planificateur en attente"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Restant (estimation)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Requête au planificateur en cours"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Date limite d'envoi"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Message de progression de tâche en cours"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Tâches"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Communication différée "
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Reprise de la tâche en cours..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Occupation totale de la mémoire de stockage"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Suspension de la tâche en cours..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Occupation de la mémoire de stockage par les projets BOINC"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Affichage des graphiques de cette tâche en cours..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "Aucun projet : 0 octet utilisé"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Montrer la console VM pour la tâche..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "utilisé par BOINC :"
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Êtes-vous sûr de vouloir abandonner cette tâche '%s' ?\n(Avancement: %s, État: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "libre, disponible pour BOINC :"
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Êtes-vous sûr de vouloir annuler ces %d tâches ?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "libre, indisponible pour BOINC :"
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Abandonner la tâche"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "libre :"
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Annulation de la tâche..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "utilisé par d'autres programmes :"
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Montrer toutes les tâches"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Total de l'utilisateur"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Montre toutes les tâches."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Moyenne de l'utilisateur"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Reprendre le calcul de cette tâche."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Total de l'hôte"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Suspendre le calcul de cette tâche."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Moyenne de l'hôte"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Voulez-vous vraiment annuler ?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Dernière mise à jour : il y a %.0f jour(s)"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Question"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Total de l'utilisateur"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Services"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Crédit total de l'utilisateur"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "Masquer %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Moyenne de l'utilisateur"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Masquer les autres"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Crédit moyen de l'utilisateur"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Montrer tout"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Total de l'hôte"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Quitter %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Crédit total de l'hôte"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Apparence"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Moyenne de l'hôte"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Choisissez l'apparence de l'interface utilisateur."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Crédit moyen de l'hôte"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Vue Avancée...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Projet précédent"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Afficher l'interface graphique avancée."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Montrer le graphique du projet précédent"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Configuration des options d'affichage et des paramètres de proxy"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Projet suivant >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Afficher les messages de diagnostic."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Montrer le graphique du projet suivant"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Masquer la liste de projets"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Valeur par défaut"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Utiliser toute la place pour les graphiques"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Suspendre le calcul"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Mode visuel"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Reprendre le calcul"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Un projet"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Ouvrir une fenêtre pour voir les notifications des projets ou de BOINC"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Montre un graphique pour le projet sélectionné"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Obtenir de l'aide avec %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Tous les projets (séparés)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Fermer"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Montre tous les projets, un graphique par projet"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "Notifications de %s"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Tous les projets (ensemble)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Pour des réglages supplémentaires, choisissez Préférences de calcul dans la Vue avancée."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Montre un graphique pour tous les projets"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "Go d'espace de stockage"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Tous les projets (somme)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - Préférences de calcul"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Montre un graphique avec la somme de tous les projets"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Remplacer les préférences locales par les préférences enregistrées sur le web ?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statistiques"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Ajouter un projet"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Montrer la liste des projets"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Synchroniser"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Utilise une place plus petite pour les graphiques"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Travail terminé pour ce projet"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Réessayer maintenant"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Volontaire pour tout projet parmi la trentaine disponibles dans de nombreux domaines de sciences"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Réessayer de transférer ce fichier maintenant."
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Synchroniser les projets avec le gestionnaire de compte"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Annuler le transfert"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Choisir un projet à accéder avec les contrôles ci-dessous"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Abandonner cet envoi de fichier. Vous ne recevrez pas de crédit pour cette tâche."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Pages web du projet"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Fichier"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Commandes du projet"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Avancement"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Afficher une liste des sites web pour le projet %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Taille"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Afficher une liste des commandes à appliquer au projet %s"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Écoulé"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Suspendre cette tâche."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Vitesse"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Abandonner cette tâche. Vous ne recevrez pas de crédit pour cette tâche."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Transferts"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Êtes-vous sûr de vouloir abandonner cette tâche '%s'?\n(Avancement : %.1lf%%, État : %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Activité réseau suspendue - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Vous n'avez aucun projet. Veuillez ajouter un projet."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nVous pouvez l'activer par le menu Activité."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Indisponible"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Tâches :"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Êtes-vous sûr de vouloir abandonner le transfert de ce fichier '%s' ?\nNOTE : L'abandon d'un transfert invalidera la tâche\net vous ne recevrez pas de crédits pour cette tâche."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Choisir une tâche"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Annuler le transfert de fichier"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "De :"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Envoi"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Avancement de cette tâche"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Téléchargement"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Commandes de tâche"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "réessayer dans "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Afficher une liste des commandes applicables à cette tâche"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "échoué"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Application : %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "suspendu"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "actif"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Application : indisponible"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "en attente"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Indisponible"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (retrait de projet :"
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Écoulé : %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Montrer les tâches actives"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Restant (estimation) : %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Ne montre que les tâches actives."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Statut : %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Montrer la console VM"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Recherche de l'état actuel."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Montre la console VM dans une fenêtre."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Téléchargement des tâches depuis le serveur en cours."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Suspend le calcul de cette unité."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Calcul suspendu : fonctionne sur batterie."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Abandonne le calcul de cette unité. Vous n'obtiendrez pas de crédit pour cette unité."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Calcul suspendu : utilisateur actif."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Restant (estimation)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Calcul suspendu : l'utilisateur a mis en pause le calcul."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Date limite d'envoi"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Calcul suspendu : restriction sur les jours de la semaine."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Tâches"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Calcul suspendu : tests de puissance de l'ordinateur."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Êtes-vous sûr de vouloir abandonner cette tâche '%s' ?\n(Avancement: %s, État: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Calcul suspendu."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Êtes-vous sûr de vouloir annuler ces %d tâches ?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "En attente du contact des serveurs de projets."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Montrer toutes les tâches"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Recherche de l'état actuel"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Montre toutes les tâches."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Aucune tâche disponible à traiter"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Voulez-vous vraiment annuler ?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Impossible de se connecter au client BOINC"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Question"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3914,11 +3816,24 @@ msgstr "< &Retour"
 msgid "&Finish"
 msgstr "&Fin"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "En ce jour de la semaine, ne calculer que pendant ces heures."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Services"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Masquer %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Masquer les autres"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Montrer tout"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "En ce jour de la semaine, transférer des fichiers que pendant ces heures."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Quitter %s"
diff --git a/locale/fr/BOINC-Project-Generic.po b/locale/fr/BOINC-Project-Generic.po
deleted file mode 100644
index 3008863..0000000
--- a/locale/fr/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6516 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Axel Coutemanche <brulavoineaxel at gmail.com>, 2016
-# Jerome Cadet <jerome.cadet at pobox.com>, 2015
-# Jun Seo <seo.galileo at gmail.com>, 2015
-# Philippe Janocha, 2016
-# PINSET Romaric <inactive+RomaricP at transifex.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-03-03 15:09+0000\n"
-"Last-Translator: Philippe Janocha\n"
-"Language-Team: French (http://www.transifex.com/boinc/boinc/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "LANG_NAME_NATIVE"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "LANG_NAME_INTERNATIONAL"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Code d'invitation"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Un code d'invitation valide est requis pour créer un compte."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Nom"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Vous identifie sur notre site web. Utilisez votre nom réel ou un pseudonyme."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Adresse email"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Doit être une adresse valide de type 'nom at domaine'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Mot de passe"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "1 caractères au moins"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Confirmation du mot de passe"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Pays"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Le cas échéant, choisissez le pays que vous voulez représenter (si il y en a)."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Code postal"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Facultatif"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Création de compte"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Adresse email :"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "adresse email oubliée ?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Mot de passe :"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "mot de passe oublié ?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Rester connecté"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Connexion"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Texte en gras: [b]texte[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Texte en italique: [i]texte[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Texte souligné: [u]texte[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Texte barré : [s]text[/s]  (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citation : [quote]texte[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Affichage de code: [code]code[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Liste: [list]texte[/list]  (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Liste triée: [list=]texte[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Insérer une image: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Insérer une adresse: [url]http://url[/url] ou [url=http://url]Texte de l'URL[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Couleur de la police"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Couleur de la police: [color=red]texte[/color] Astuce: vous pouvez aussi utiliser color=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Par défaut"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Rouge foncé"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Rouge"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Orange"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Marron"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Jaune"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Vert"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Vert olive"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Cyan"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Bleu"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Bleu foncé"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Bleu foncé violacé (indigo)"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Violet"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Taille de la police"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Taille de la police: [size=x-small]texte en petit[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Petit"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Grand"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Fermer toutes les balises bbCode ouvertes"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Fermer les balises"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Le plus ancien en premier"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Le plus récent en premier"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Les messages les mieux classés en premier"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Les messages les plus récents en premier"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Les plus lus en premier"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Le plus de messages en premier "
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Modérateur"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Administrateur du projet"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Développeur du projet"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Testeur du projet"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Développeur bénévole"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Testeur bénévole"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Scientifique du projet"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Expert assistance"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Chercher des mots dans les messages du forum"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Chercher dans les forums"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Recherche avancée"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Messages privés"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Questions / Réponses"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Forums"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "Forum %1"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Précédent"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Suivant"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Auteur"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Message"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Envoyer  message"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Envoyer à %1 un message privé"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "A rejoint: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Messages: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Crédit: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Vous n'avez pas encore lu ce message"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Non lu"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Message %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "caché"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Publié par: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - en réponse à "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Editer"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Éditer ce message"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Dernière modification: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Ce message n'est pas affiché car l'expéditeur est dans votre liste d'expéditeurs ignorés.   Cliquez %1ici%2 pour afficher ce message."
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Signaler ce message offensant"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Signaler comme offensant"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Classement: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "classer: "
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Cliquez si vous aimez ce message"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Classement +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Cliquez si vous n'aimez pas ce message"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Classement -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Répondre"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Répondre à ce message"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Citer"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Répondre en citant ce message"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Caché par un modérateur"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "%1 Publié par %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Vous ne pouvez pas répondre ou classer de message jusqu'au %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n                                 <ul>\n                                 <li> Les messages doivent être «adapté aux enfants»: ils ne peuvent pas contenir\n                                              de contenu obscène, incitant à la haine,\n                                               sexuellement explicite ou suggestif.\n                                 <li> Pas de publicité commerciale.\n                                 <li> Pas de liens vers des sites Web ayant un contenu [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Règles:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Plus d'informations"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Démasquer"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Démasquer ce message"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Masquer"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Masquer ce message"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Déplacer"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Déplacer ce message vers une autre discussion"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Bannir l'utilisateur"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Voter pour bannir cet utilisateur"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Voter pour ne pas bannir cet utilisateur"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Débuter un vote pour bannir cet utilisateur"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Supprimer"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Supprimer ce message"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Seuls les membres d'équipes peuvent écrire dans le forum d'équipe"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Pour pouvoir créer un nouveau sujet dans %1 vous devez disposer d'une certaine quantité de crédit. Cette mesure a pour but de prévenir les abus."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Vous ne pouvez pas créer de sujet supplémentaire dans l'immédiat. Veuillez attendre un moment puis réessayer. Ce délai a été instauré pour prévenir les abus."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Ce sujet est verrouillé. Seul les modérateurs et administrateurs du forum sont autorisés à écrire ici."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Vous ne pouvez pas écrire dans une discussion masquée."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Sujet"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Messages"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Vues"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Dernier message"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Nouveaux messages dans la discussion %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Nouveaux messages dans une discussion suivie"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Il y a de nouveaux messages dans la discussion '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Marquer toutes les discussions comme lues"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Marquer tous les sujets de tous les forums comme 'lus'."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Aucun hôte"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Indisponible"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Maison"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Travail"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "École"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Mise à jour"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Informations sur l'ordinateur"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "Adresse IP"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(identiques les %1 dernières fois)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Adresse IP externe"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Afficher l'adresse IP"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Nom de domaine"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Nom du produit"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Heure locale"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "%1 heures Temps Universel (UTC)"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Propriétaire"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anonyme"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Créé"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Crédit total"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Crédit moyen"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Crédit inter-projet"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "Type de CPU"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Nombre de processeurs"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Coprocesseurs"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Système d'exploitation"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Version de BOINC"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Mémoire"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 Mo"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 Ko"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Espace d'échange (swap)"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Taille totale de disque"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 Go"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Espace disque disponible"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Vitesse mesurée pour les calculs en virgule flottante"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 million(s) d'opérations/s"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Vitesse mesurée pour les calculs en nombres entiers"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Débit moyen en téléchargement ascendant"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 Ko/s"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Inconnu"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Débit moyen de téléchargement"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Temps de cycle moyen"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 jours"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Détails de l'application"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Afficher"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Tâches"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Nombre de fois où le client BOINC a contacté le serveur"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Dernière date de contact avec le serveur"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "% de temps de fonctionnement de BOINC"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Lorsque BOINC est en fonctionnement, % du temps où l'hôte a une connexion internet."
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Lorsque BOINC fonctionne, % de temps de travail autorisé"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Lorsque BOINC fonctionne, % de temps de travail GPU autorisé"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Efficacité moyenne du CPU"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Facteur de correction de durée de tâche"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Localisation"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Supprimer cet ordinateur"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Fusionner les enregistrements dupliqués de cet ordinateur"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Fusionner"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Dernier contact"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informations sur l'ordinateur"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rang"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Crédit moyen"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Crédit moyen récent"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Système d'exploitation"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 processeurs)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Détails"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Statistiques inter-projets :"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "L'hôte %1 a une durée de vie qui chevauche :"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "L'hôte %1 a un système d'exploitation incompatible :"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "L'hôte %1 utilise un CPU incompatible :"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "même hôte"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Impossible de fusionner l'hôte %1 avec l'hôte %2 - ils sont incompatibles"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Fusion de l'hôte %1 avec l'hôte %2 en cours"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Impossible de mettre à jour le crédit du nouvel ordinateur"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Impossible de mettre à jour les résultats"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Impossible de retirer l'ancien ordinateur"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "L'ancien ordinateur %1 a été retiré"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Afficher :"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Tous les ordinateurs"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Uniquement les ordinateurs actifs durant les 30 derniers jours"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "ID de l'ordinateur"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>version"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Fusionner les ordinateurs par le nom"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Navigateur par défaut"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Commentaire"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Les nouvelles sont disponibles en %sflux RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Courrier entrant"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Écrire"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Envoyer un message privé"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Prévisualisation"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "message inexistant"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "A"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Identifiants utilisateurs, séparés par des virgules"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Sujet"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Envoyer message"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "message privé envoyé; sujet:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Message privé %1 de %2, sujet:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Impossible de créer le message"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Vous n'êtes pas autorisé à envoyer des messages privés si fréquemment. Veuillez patienter avant d'en envoyer plus."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "non lu"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Pour les notifications par email,  %1éditer les préférences de communauté%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Message privé"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Les limites d'utilisation"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Utiliser au plus"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Garder certains processeurs libres pour d'autres applications. Exemple : 75 % signifie utiliser 6 cœurs sur un processeur 8-core."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% du temps CPU"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Suspend puis reprend les calculs toutes les quelques secondes afin de réduire la température du processeur et la consommation d'énergie. Exemple : 75 % signifie calculer pendant 3 secondes, attendre 1 seconde et répéter."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% du temps CPU"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Quand suspendre les calculs"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Suspension quand l'ordinateur est sur batterie"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Cochez cette case pour suspendre les calculs sur votre portable quand il fonctionne sur batterie."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Suspendre les calculs lorsque l'ordinateur est utilisé"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Cochez cette case pour suspendre le calcul et les transferts de fichiers lorsque vous utilisez l'ordinateur."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Suspendre le calcul par la carte graphique lorsque l'ordinateur est utilisé"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Cochez cette case pour suspendre le calcul par la carte graphique lorsque vous utilisez l'ordinateur."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'Est utilisé' signifie qu'il y a eu une activité de la souris ou du clavier dans les dernières"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Ceci permet de déterminer quand l'ordinateur est considéré comme \"en usage\"."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minutes"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Suspendre si pas d'utilisation souris / clavier durant "
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Ceci permet à certains ordinateurs de se mettre en mode de consommation réduite s'ils ne sont pas utilisés."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Suspendre lorsque l'utilisation du processeur est au-dessus de"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Suspendre le calcul lorsque votre ordinateur est occupé à exécuter d'autres programmes."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Réaliser des calculs seulement entre"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Autoriser les calculs seulement durant  une certaine période chaque jour."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Autre"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Stocker au moins"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Stocker au moins assez de tâches pour occuper l'ordinateur pendant cette durée."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "jours de travail"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Stocker jusqu'à un additionnel"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Stocker des tâches supplémentaires au-dessus du niveau minimum.  Détermine la quantité de travail demandée lorsque vous communiquez avec un projet."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Permuter entre les tâches toutes les"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Si vous exécutez plusieurs projets, BOINC peut basculer entre les tâches à cette fréquence."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Demander des tâches au point de contrôle au plus chaque"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Ce paramètre règle le nombre de fois que les tâches peuvent enregistrer leur état sur le disque, afin qu'elles puissent être redémarrées plus tard."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "secondes"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Ne pas utiliser plus de:"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Limiter la quantité totale d'espace disque utilisée par BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "Go"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Laisser au moins"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Limiter l'utilisation du disque dur afin de laisser suffisamment d'espace libre sur le volume où BOINC stocke les données."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB libre"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Limiter le pourcentage d'espace disque utilisée par BOINC sur le volume où il stocke les données."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% du total"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Lorsque l'ordinateur est utilisé, utilisez au maximum"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Limiter la mémoire utilisée par BOINC lorsque vous utilisez l'ordinateur."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Lorsque l'ordinateur n'est pas en utilisation, utiliser au maximum"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Limiter la mémoire utilisée par BOINC lorsque vous n'utilisez pas l'ordinateur."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Laisser les tâches non-GPU en mémoire lorsqu'elles sont suspendues"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Si coché, les tâches seront gardées en mémoire pour pouvoir reprendre le travail sans perte. Si non coché, les tâches suspendues seront supprimées de la mémoire, et la reprise s'effectuera depuis leur dernier point de contrôle."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Espace d'échange (swap) : utiliser au plus"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Limiter l'espace d'échange utilisé par BOINC (pagefile.sys ou swap)."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Taux limite de téléchargement descendant"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Limiter le taux de transfert de fichiers descendant (download)."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/seconde"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Taux limite de téléchargement ascendant"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Limiter le taux de transferts de fichiers ascendant (upload)."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Limiter à"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Exemple : BOINC doit transférer au maximum 2000 MB de données tous les 30 jours."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB chaque"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "jours"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Transférer des fichiers seulement entre"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Transférer des fichiers uniquement pendant une période donnée chaque jour."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Ignorer la vérification des données pour les fichiers image"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Cochez si votre fournisseur d'accès Internet modifie les fichiers image.\nIgnorer cette vérification réduit la sécurité de BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Confirmer avant de se connecter à internet"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Utiliser uniquement si vous avez un modem, la connexion VPN ou RNIS."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Se déconnecter dès que terminé"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Calculs en cours"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disque"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Utilisation du réseau"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Ces préférences s'appliquent à tous les projets BOINC auxquels vous participez."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Impossible de mettre à jour les préférences.%2 Les valeurs marquées en rouge ci-dessous sont hors bornes ou non numériques."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "calcul"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Préférences séparées pour %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Modifier les préférences"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Supprimer"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Ajouter des préférences séparées pour %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Ces paramètres s'appliquent à tous les ordinateurs utilisant ce compte sauf "
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "ordinateurs où vous avez réglé les préférences localement à l'aide du BOINC Manager"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Appareils Android"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Basculer de vue)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Préférences combinées"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Préférences principales (par défaut)"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Dernière modification des préférences :"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Ajouter des préférences"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Mettre à jour les préférences"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "oui"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "non"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Localisation par défaut de l'ordinateur"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Les nouveaux ordinateurs utiliseront cet emplacement pour les préférences de calcul et de projet."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Partage des ressources"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Détermine la proportion des ressources de votre ordinateur allouées à ce projet. Exemple : si vous participez à deux projets BOINC avec un partage de ressources de 100 et 200, le premier aura 1/3 des vos ressources et le second 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accélérer les tâches GPU en dédiant un core CPU à chacune ?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Utiliser le CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Utiliser le GPU ATI"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Utiliser le GPU NVIDIA"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Utiliser le GPU Intel"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Exécuter les applications de test ? "
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Ceci nous aide à développer les applications, mais peut générer des erreurs de calculs sur votre ordinateur"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Les e-mails seront envoyés de %1. Assurez-vous que votre filtre anti-spam accepte cette adresse."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Acceptez-vous que %1 et votre équipe (si vous en avez une) puisse vous envoyer des e-mails ?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Acceptez-vous que %1 affiche vos ordinateurs sur son site web ?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Basculer de vue)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Paramètres spécifiques au projet"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "mauvais lieu de rendez-vous : %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "mauvais sous-ensemble : %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "et"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Votre profil sera visible pour les autres personnes dès qu'il aura été approuvé par le projet. Cela peut prendre quelques jours."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Votre profil a été marqué comme inacceptable. Il n'est pas visible par les autres personnes. Veuillez en changer."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Erreur de base de données"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Pour éviter le spam, les profils des utilisateurs ayant un crédit moyen inférieur à %1 ne seront affichés que si ces utilisateurs sont enregistrés. Veuillez nous excuser pour cet inconvénient."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "L'utilisateur est banni"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Aucun profil n'existe pour cet ID d'utilisateur"
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Éditer votre profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Vos impressions sur ce profil"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recommander ce profil en tant qu'utilisateur du jour :"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "J'%1aime%2 ce profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Alerter les administrateurs sur un profil problématique : "
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Je %1n'aime pas%2 ce profil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Plateforme anonyme"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "GPU Intel"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Pas dans la base de données"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "en attente"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Tous"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "En cours"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Validation en attente"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Validation non concluante"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Valide"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Invalide"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Erreur"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactif"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Non envoyé"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Terminé, en attente de validation"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Terminé et validé"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Terminé, marqué comme invalide"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Terminé, validation impossible"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Terminé, validation peu concluante"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Terminé, trop tardif pour valider"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Terminé"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Impossible d'envoyer"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Annulé par le serveur"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Pas démarré avant la date limite - annulé"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Erreur en cours de téléchargement (sens download)"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Erreur en cours de calculs"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Erreur en cours de téléchargement (sens upload)"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Annulé par l'utilisateur"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Échec du chargement "
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Délai expiré - aucune réponse"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "N'a pas eu besoin de"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Valider l'erreur"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "abandonné"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Sur"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Succès"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Erreur de calcul"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Résultats redondants"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Aucune réponse"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nouveau"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Téléchargement (download)"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "En cours de calculs"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Erreur de calcul"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Téléversement (upload)"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Fait"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Initial"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Pas nécessaire"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Erreur d'unité de travail (WU) - contrôle abandonné"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Vérifié, mais encore aucun consensus déterminé"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "La tâche a été déclarée trop tardivement pour être validée"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Impossible d'envoyer les résultats"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Trop d'erreurs (peut être un bug)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Trop de résultats (peut être non déterministe)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Trop de résultats totaux"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Unité de travail (WU) annulée"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Résultats canoniques manquants"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Erreur non reconnue : %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Nom de tâche"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "cliquer pour voir les détails"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Afficher les ID"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Afficher les noms"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Tâche"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Unité de travail (WU)"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Ordinateur"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Envoyé"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Délai reporté<br/>ou date limite"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "explication"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "État"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Temps de fonctionnement<br />(sec)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "Temps de CPU<br />(sec)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Crédit"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Application"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Unité de travail (WU)"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Date limite de rapport"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Reçu"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "État du serveur"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Résultats"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "État du client"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "État à la sortie"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Temps de fonctionnement"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "Temps de CPU"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Valider l'état"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "FLOPS maximum de l'appareil"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Version de l'application"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Fichiers sortants"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Stderr output"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "État"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Nom de la tâche:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Critères de recherche (un ou plus)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Mots clefs"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Trouver des équipes dont le nom ou la description contiennent ces mots clefs"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Type d'équipe"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Ne montrer que les équipes actives"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Recherche"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Vous l'avez requis, et la date de limite de réponse du fondateur est passée."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Finaliser le transfert du compte fondateur"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Vous l'avez requis"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "la date limite de réponse du fondateur est %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Aucun(e)"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Initier la requête"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Différé(e)"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Info équipe"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Description"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Site web"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Statistiques inter-projets"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Type"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Forum"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Sujets"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Rejoindre cette équipe"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Note : si 'OK to email' est choisi dans vos préférences de projets, le fait de rejoindre une équipe, donnera accès à votre adresse email à son fondateur."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "N'accepte pas de nouveaux membres"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Changement de fondateur demandé"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Répondre par %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Changement de fondateur de l'équipe"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Membres"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Fondateur"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Administrateurs"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Nouveaux membres de la veille"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Membres totaux"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "voir"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Membres actifs"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Membres avec du crédit"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Administrateur"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "%1 précédent"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Prochains %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Pas de telle équipe."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Cette opération requiert d'être fondateur."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Cette opération requiert les privilèges d'administrateur de l'équipe"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "ATTENTION : ceci est une équipe regroupant tout BOINC. Si vous faites des modifications ici, elles seront écrasées rapidement. A la place, éditez %1l'équipe globale BOINC%2."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Confidentialité%2: si vous créez une équipe, vos préférences (partage de ressources, préférences graphiques) deviendront publiques."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Nom de l'équipe, version texte"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Ne pas utiliser de balises HTML."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Nom de l'équipe, version HTML"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Vous pouvez utiliser %1certaines balises HTML%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Si vous ne connaissez pas HTML, laissez cette zone vide."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL de l'équipe si disponible"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "sans \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "La page de l'équipe sur ce site pointera sur cette URL."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Description de l'équipe"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Accepte des nouveaux membres ?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Profil utilisateur"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projets auxquels vous participez"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projets auxquels %1 participe"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Projet"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Cliquer pour voir la page utilisateur"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Depuis"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Calculs et crédits"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Ordinateurs de ce compte"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Voir"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Identifiant inter-projets"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Statistiques inter-projets"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Compte"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Equipe"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Inter-projets"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Statistiques sur votre téléphone mobile"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Informations de compte"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Adresse email"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Code postal"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 membre depuis"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Changer"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "adresse email"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "mot de passe"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "autres informations"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "Identifiant utilisateur"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Utilisé par les fonctionnalités de communauté"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Clés de compte"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Préférences"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Quand et comment BOINC utilise votre ordinateur"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Préférences de calcul"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Forums et messages privés"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Préférences de communauté"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Préférences pour ce projet"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "Préférences de %1"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Consulter le profil de %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Communauté"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Créer"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 messages"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Notifications"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Quitter l'équipe"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Administrer"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(demande de changement de fondateur en cours)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Membre de l'équipe"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "trouver une équipe"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Fondateur mais non membre de"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Trouver des amis"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Amis"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Ordinateurs"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Donateur"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Contacter"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Cette personne est un(e) ami(e)"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Annuler l'amitié"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Requête en cours"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Ajouter en tant qu'ami(e)"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "le nom d'utilisateur ne peut contenir d'espace au début ou à la fin"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "le nom d'utilisateur ne doit pas être vide"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "le nom d'utilisateur ne peut pas contenir de balises HTML"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "déconnexion"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "connexion"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Créer un compte"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "État du serveur"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Une erreur de base de données s'est produite durant le traitement de votre demande ; veuillez réessayer ultérieurement."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Impossible de traiter la requête"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "heures"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "sec"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Expiration du délai. Veuillez cliquer Retour, rafraîchissez la page et réessayez."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Utiliser les balises BBCode pour mettre votre texte en forme"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Le projet est arrêté pour cause de maintenance."
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 est temporairement arrêté pour cause de maintenance. Veuillez réessayer ultérieurement."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Impossible de se connecter à la base de données - veuillez réessayer ultérieurement."
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Impossible d'interroger la base de données - veuillez réessayer ultérieurement"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "caractères restants"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Rester connecté sur cet ordinateur"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Terminer le paramétrage du compte"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Vous devez fournir un nom pour votre compte."
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Les balises HTML ne sont pas autorisées dans le nom."
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Modifier les préférences de %1"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Ajouter %1 préférences pour %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Applications"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 dispose actuellement des applications suivantes. Lorsque vous participez à %1, du travail pour une de ces applications ou plus sera attribué à votre ordinateur. La version courante de l'application sera téléchargée par votre ordinateur. Tout se passe automatiquement, vous n'avez rien à faire."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Plateforme"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Version"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Calcul moyen"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Balises BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "Les balises BBCode vous permettent de formater le texte de votre profil et les messages publiés.\nC'est similaire au HTML, mais en plus simple. Les balises commencent par un [ (là où vous\nauriez dû utiliser %1 en HTML) et se terminent par ] (où vous auriez dû utiliser %2 \nen HTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Exemples"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Gras"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Italique"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Souligné"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Barré"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Exposant"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Texte long"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Texte en rouge"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "Lien vers le site Web"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Texte cité"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "utiliser pour citer des blocs de texte"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "utiliser pour afficher une image"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Extrait de code ici"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "utiliser pour afficher du code"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Texte pré-formaté"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "utiliser pour afficher du texte pré-formaté (habituellement monospace)"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Objet 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Objet 2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Objet 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "utiliser pour renvoyer sur la gestion de tickets sur le site BOINCE"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "utiliser pour renvoyer sur le wiki Trac sur le site BOINC"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Si vous ne fermez pas une balise ou ne spécifiez pas correctement un paramètre, \nle texte même de la balise sera affiché et non le texte formaté."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Impossible de créer le compte "
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Cliquer sur le bouton <b>Retour</b> de votre navigateur pour essayer à nouveau."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Votre réponse ReCaptcha est incorrecte.  Veuillez réessayer."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Vous devez fournir un code d'invitation pour pouvoir créer un compte."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "Le code d'invitation que vous avez fourni n'est pas valide."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Adresse email invalide : vous devez entrer une adresse valide de type 'nom at domaine'."
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Il y a déjà un compte avec cette adresse mail."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Les nouveaux mots de passe sont différents "
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Les mots de passe peuvent seulement contenir des caractères ASCII."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Le nouveau mot de passe est trop court : la longueur minimale du mot de passe est de %1 caractères."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Impossible de créer le compte "
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "NOTE: Si vous utilisez le BOINC Manager ne pas utiliser ce formulaire. Exécutez BOINC, choisissez Ajouter un projet puis entrer votre adresse email et mot de passe."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Ce compte fera partie de l'équipe %1 et aura les préférences de son fondateur."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Image"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Votre image de profil s'affiche à gauche."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Pour la remplacer, cliquez sur le bouton \"Parcourir\" et sélectionnez un fichier JPEG ou PNG (%1 ou moins)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Cochez cette case pour la supprimer de votre profil : "
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Pour inclure une image, cliquez sur le bouton \"Parcourir\" et sélectionnez un fichier JPEG ou PNG. Veuillez choisir une image de %1 ou moins."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Langue"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Sélectionnez la langue de votre profil : "
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Soumettre le profil"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Création/édition du profil"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "Le format de l'image que vous avez envoyé n'est pas supporté."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Votre %1profil%2 vous permet de partager vos opinions et votre vécu avec la communauté %3."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Votre réponse ReCaptcha est incorrecte.  Veuillez réessayer."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Votre première réponse a été marquée comme spam par le système Akismet.  Veuillez modifier votre texte et réessayer."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Votre deuxième réponse a été marquée comme spam par le système Akismet.  Veuillez modifier votre texte et réessayer."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Votre profil est vide."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Impossible de mettre le profil à jour : erreur de base de données"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Impossible de créer le profil : erreur de base de données"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Profil sauvegardé"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Félicitations ! Votre profil a été créé avec succès dans notre base de données."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Voir votre profil"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Créer un profil"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Pour nous protéger du spam, un crédit moyen de %1 ou plus est requis pour pouvoir créer ou éditer un profil.  Toutes nos excuses pour la gène occasionnée."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Impossible de supprimer le compte"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Compte supprimé"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Votre compte a été supprimé."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Confirmer la suppression du compte"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Supprimer votre compte va retirer toutes\nvos informations personnelles de nos serveurs,\ny compris votre profil et vos messages sur le forum.\nAucune tâche ne sera plus envoyée sur aucun\nordinateur rattaché à ce compte."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Ceci ne peut pas être annulé.\nUne fois votre compte supprimé, vous ne pouvez plus le récupérer."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Êtes-vous sûr de vouloir supprimer votre compte ? "
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Oui"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Supprimer ce compte"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Non"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Ne pas supprimer ce compte"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "Impossible de supprimer le profil - veuillez réessayer ultérieurement."
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Confirmation de la suppression"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Votre profil a été supprimé. "
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Confirmation de la suppression du profil"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Êtes-vous sûr ?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Les profils supprimés ne peuvent plus être récupérés --\nvous devrez tout recommencer si vous voulez \nun nouveau profil par la suite."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Si vous êtes sûr, cliquez sur 'Oui'\npour supprimer votre profil de notre base de données."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Supprimer mon profil"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Ne pas supprimer mon profil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transaction terminée"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Merci pour votre don !"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Votre don a été enregistré."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Votre don sera ajouté à la barre de progression après confirmation par PayPal. "
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Vous avez annulé votre don."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Ce projet n'accepte pas les dons."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 dons"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Ce projet accepte les dons via\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Pour faire un don, remplir le montant que voulez donner dans les champs ci-dessous.\n            PayPal accepte diverses devises (Dollars Canadiens, Euros, \n            Livres Sterling, U.S. Dollars, Yen, Dollars Australiens, Dollars Néo Zélandais,\n            Francs Suisses, Dollars de Hong Kong, Dollars de Singapour, \n            Couronnes Suédoises, Couronnes Danoises, Zloty Polonais, \n            Couronnes Norvégiennes, Florins Hongrois, Couronnes Tchèques).\n             [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Montant que vous souhaitez donner"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Valeur estimée en"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Donation anonyme"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Choisissez cette option si vous ne voulez pas que le nom et numéro de votre compte soient affichés dans\nla liste des donateurs. <br>Si cette option n'est pas cochée vous serez enregistré comme utilisateur n° %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Pour associer votre don à votre compte utilisateur, veuillez vous connecter."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Exécuter"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Les dons sont acceptés via"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Télécharger des logiciels supplémentaires liés à BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Vous pouvez télécharger des applications dans plusieurs catégories."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Ces applications ne sont pas supportées par %1 et vous les utilisez à vos risques."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Nous ne fournissons pas d'instructions pour installer ces applications.\nToutefois, l'auteur peut avoir fourni de l'aide sur son installation ou sa suppression. \nSi ce n'est pas suffisant, merci de contacter l'auteur."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instructions pour l'installation et le fonctionnement de BOINC %1ici%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "La gestion de cette liste est centralisée sur %1le site web BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Modifie l'adresse email de votre compte"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "La nouvelle adresse email %1 est invalide."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "La nouvelle adresse email est la même que l'actuelle. Rien n'a été changé."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Il existe déjà un compte avec cette adresse email."
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Mot de passe invalide"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "L'adresse e-mail de votre compte est maintenant %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Veuillez %1valider l'adresse e-mail%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Impossible de mettre à jour la base de données - veuillez réessayer ultérieurement"
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Modifier l'adresse email"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Modifie l'adresse email de votre compte"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nouvelle adresse email"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Doit être une adresse valide de type 'name at domain'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Aucun mot de passe ?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Confirmer la réinitialisation"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Cette action va supprimer tout changement fait dans vos préférence de communauté. Pour annuler cliquer sur le bouton Retour de votre navigateur."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Réinitialiser les préférences"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Erreur : mauvais format de fichier, seuls les PNG et les JPEG sont supportés."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Votre signature est trop longue, maximum 250 caractères."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Utilisateur inexistant:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Comment devons vous vous notifier de nouveaux messages privés, demandes d'amitié, messages publiés dans vos sujets suivis, et autres évènements ?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Sur ma page de compte (pas de mail)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Immédiatement, par email"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "Dans un mail récapitulatif journalier"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Identité sur le Forum"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Une image qui vous représente sur le forum."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPG ou PNG. Taille : au plus 4 Ko, 100x100 pixels."
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Ne pas utiliser d'avatar."
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Utiliser un Avatar Global fourni par %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Utiliser cet avatar téléchargé :"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Prévisualisation de l'avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Votre avatar sera vu comme ceci"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Signature pour les messages sur le forum"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Essayez divers %1services gratuits%2<br> \noffrant des images de signature dynamique<br> \nmontrant vos statistiques, des nouvelles des projets, etc."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Attacher la signature par défaut"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Prévisualiser la signature"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "Voici à quoi ressemblera votre signature sur les forums"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Affichage de message"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Ce qu'il faut afficher"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Cacher les images d'avatars"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Cacher les signatures"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Montrer les images sous forme de liens"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Ouvrir les liens dans une nouvelle fenêtre / onglet"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Mettre en avant les utilisateurs spéciaux"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Affichez ce nombre de messages par page"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Comment trier"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Sujets:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Messages:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Aller au premier nouveau message dans le sujet automatiquement"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Ne pas déplacer les messages épinglés en haut"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Filtre de messages"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Utilisateurs filtrés"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignorer les messages du forum et les messages privés de ces utilisateurs."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ID Utilisateur (par exemple : 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Ajouter un utilisateur au filtre"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Cliquer ici pour mettre à jour les préférences"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Réinitialiser"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Ou cliquer ici pour réinitialiser les préférences avec les valeurs par défaut"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Impossible de mettre à jour votre mot de passe à cause d'un problème de base de données - veuillez réessayer ultérieurement."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Modifier le mot de passe"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Votre mot de passe a été changé."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Nouveau mot de passe"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Nouveau mot de passe (vérification)"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "Les balises HTML ne sont pas autorisées dans le nom."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Vous devez fournir un nom pour votre compte."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Impossible de mettre à jour les informations de l'utilisateur."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Éditer les informations de compte"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Nom %1 nom réel ou surnom%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 de votre page web; optionnel%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Code postal %1 optionnel%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Mettre à jour les informations"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "États du serveur"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "L'état de serveur d'une tâche indique si la tâche a été envoyée à un ordinateur, et si l'ordinateur l'a terminé. Les valeurs possibles sont :"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Cette tâche n'est pas prête à être envoyée (par exemple parce que ses fichiers d'entrée ne sont pas disponibles)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Cette tâche est prête à être envoyée mais ne l'a pas encore été."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "En cours"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Cette tâche a été envoyée ; en attente de finalisation."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "Cette tâche a été envoyée à un ordinateur et soit sa durée maximale de calcul a été dépassée, soit l'ordinateur a signalé sa finalisation."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Résultats"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "Un <b>résultat</b> de tâche est défini si son statut de serveur est <b>terminé</b>. Les valeurs possibles sont :"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "La tâche a été envoyée à un ordinateur mais il ne l'a pas terminé ni renvoyé les résultats."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Un ordinateur a terminé et envoyé les résultats de la tâche avec succès."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Le serveur n'a pas pu envoyer la tâche à un ordinateur (peut-être car les besoins en ressources étaient trop important)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Erreur du client"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "La tâche a été envoyée à un ordinateur et une erreur est survenue."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "La tâche a été envoyée à un ordinateur et aucune réponse n'a été reçue dans la limite de durée prévue."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "La tâche n'a pas été envoyée à un ordinateur car suffisamment de tâches ont été terminées pour cette unité de travail."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "La tâche a été renvoyée mais n'a pas pu être validée, généralement car les fichiers en sortie ont été perdus sur le serveur."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "États du client"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "<b>L'état de client</b> d'un résultat indique l'étape du calcul à laquelle une erreur est survenue."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "L'ordinateur n'a pas encore terminé la tâche."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "L'ordinateur a terminé la tâche avec succès."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "L'ordinateur n'a pas pu télécharger l'application les fichiers d'entrée."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Une erreur est survenue durant le calcul."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "L'ordinateur n'a pas pu envoyer les fichiers de résultat."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Temps écoulé et date limite"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "Le champ <b>Temps écoulé ou date limite</b>  d'une tâche dépend de si elle a déjà été renvoyée:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Déjà renvoyé"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "La date et l'heure à laquelle elle a été renvoyée"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Pas encore renvoyée, date limite dans le futur"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Date limite, en vert"
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Pas encore renvoyée, date limite dans le passé"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Date limite, en rouge"
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Champ inconnu"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Prévisualisation de l'email"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Votre email apparaîtra comme suit :"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Envoyer l'email "
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Utilisez la bouton Retour de votre navigateur pour revenir au formulaire de message"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Envoi d'emails en cours"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "email envoyé avec succès à %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "échec de l'envoi de l'email de %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Merci d'avoir parlé à vos amis de %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Vous avez omis d'entrer les noms et/ou adresses emails de vos amis; merci de %1revenir sur le formulaire%2 pour les saisir."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Ce projet n'a pas créé de message email - Veuillez notifier ses administrateurs"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Parlez à vos amis de %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Aidez nous en parlant de %1 à vos amis, collègues et famille."
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Remplissez le formulaire avec les noms et adresses emails des personnes qui pourraient être intéressées par %1. Nous leur enverrons un email en votre nom, et vous pouvez ajouter votre propre message si vous le souhaitez."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Votre nom:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Votre adresse email:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Nom des amis:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Adresses email des amis:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Ajoutez un message optionnel ici : "
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Envoyer"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "Vous n'êtes pas autorisé à bannir des utilisateurs."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Vote de bannissement "
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Aucun utilisateur trouvé avec cet ID."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "Cet utilisateur est déjà banni."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Etes vous sûr que vous voulez bannir %1?<br/> Ceci empêchera %1 de publier pour une période donnée.<br/> Ceci ne doit être fait que si %1 a explicitement et de façon continue eu une attitude trollesque."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Choisissez une catégorie et éventuellement une description plus longue sur les raisons pour lesquelles cet utilisateur devrait être banni. "
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Catégorie"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Obsénité"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Courriel enflammé/haineux"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Requête utilisateur"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Raison"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Envoyé si non vide"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Continuez le vote"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Vous devez choisir une action ..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Vous ne pouvez plus éditer ce message.<br/>Les messages peuvent être édités seulement %1 minutes après qu'ils ont été créés."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Vous n'êtes pas autorisé à éditer ce message."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Éditer votre message"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Titre"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Ajouter ma signature à ce message"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Non visible pour vous"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Forum d'équipe pour %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Nouveau sujet"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Ajouter un nouveau sujet à ce forum"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Ce forum est également disponible en %sflux RSS%s"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Ce sujet est masqué"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Ce sujet est épinglé et verrouillé et vous ne l'avez pas encore lu"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "épinglé/verrouillé/non lu"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Ce sujet est épinglé et vous ne l'avez pas encore lu"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "épinglé/non lu"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Vous n'avez pas encore lu ce sujet, et il est verrouillé"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "non lu/verrouillé "
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Vous n'avez pas encore lu ce sujet"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Ce sujet est épinglé et verrouillé"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "épinglé/verrouillé"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Ce sujet est épinglé"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "épinglé"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Ce sujet est verrouillé"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "verrouillé"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Vous lisez ce sujet"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "lu"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Questions et Réponses"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Parlez en direct via Skype avec un volontaire, dans n'importe laquelle des langues suivantes. Allez à %1l'Aide en Ligne BOINC%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Sujet"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Questions"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Discussions entres les membres de %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Forums"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Si vous avez une question ou un problème, veuillez utiliser la section %1Questions & Réponses%2 des forums."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Sujets souscrits"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Modérer le message"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Masquer le message"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Spam commercial"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Message dupliqué"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Déplacer le message"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID du sujet de destination:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Bannir l'utilisateur"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Durée de l'interdiction"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 heures"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 jour"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 semaine"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 semaines"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 mois"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Définitif"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Explications optionnelles %1 Ceci est inclus dans le mail à l'utilisateur %2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "Vous n'êtes pas autorisé à modérer ce message."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Impossible de déplacer dans un type de catégorie différente"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Impossible de déplacer dans une catégorie différente"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Non autorisé à bannir des utilisateurs"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Bannissement"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "L'utilisateur %1 a été banni"
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Echec de l'action : problème de base de données probable"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "non autorisé"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Modérer le sujet '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Choisir la catégorie de motif, ou écrivez une description plus longue sur les raisons pour lesquelles vous masquez ou verrouillez ce sujet puis validez."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Forum actuel"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Forum de destination"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Nouveau titre:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Seuls les administrateurs de projets peuvent créer un sujet ici. Cependant vous pouvez répondre dans des sujets existants."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Votre réponse a été marquée comme spam par le système anti-spam Akismet. Veuillez modifier votre texte et réessayer."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Créer une nouvelle discussion"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Créer une nouvelle discussion"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Pensez à ajouter un titre"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Montrer cette information comme une notification dans le BOINC Manager"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Ne le faire que pour des informations pouvant être intéressantes pour tous les volontaires."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Noter hors ligne"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Cette fonctionnalité est désactivée temporairement"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Vous devez avoir un crédit moyen ou total supérieur pour pouvoir noter un message."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Vous avez déjà noté ce message."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Retour au sujet"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Saisie enregistrée"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Votre saisie a été enregistrée. Merci de votre aide."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Vote enregistré"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Votre note a été enregistrée. Merci de votre participation."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Problème d'envoi de vote"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Votre message a été marqué comme spam par le système anti-spam Akismet. Veuillez modifier votre texte et réessayer."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Écrire un message dans la discussion"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Message:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "répondre au %1Message ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Envoyer la réponse"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Ajouter ma signature à ce message"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Vous devez avoir un crédit moyen ou total supérieur pour pouvoir signaler ce message."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Signalement enregistré"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Votre signalement a été enregistré. Merci de votre participation."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Un modérateur va maintenant regarder votre signalement et décider de ce qui doit se passer - cela peut prendre du temps, merci d'être patient."
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Signaler un message du forum"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Avant de signaler de message, songez plutôt à utiliser le système de note +/-. Si suffisamment d'utilisateurs note négativement un message il finira par être masqué.<br/>Vous trouverez le système de notation en bas de ce message."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Signaler un message"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Pourquoi trouvez vous ce message insultant : %1Merci d'inclure suffisamment d'information pour qu'une personne \nn'ayant pas encore lu le sujet puisse être capable d'identifier rapidement le problème%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Signalement non enregistré"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Votre signalement n'a pas pu être enregistré. Merci d'attendre avant d'essayer de nouveau."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Si cela n'est pas une erreur temporaire, merci de le signaler à l'administrateur du projet."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 flux RSS"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Ce forum est également disponible en flux RSS."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Options:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "N'inclure que les messages pour l'utilisateur ID %1 (valeur par défaut : tous les utilisateurs)"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "N'inclure que les messages des %1 derniers jours (valeur par défaut : 30)"
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Sujets seulement: %1 (n'inclure que les premiers messages de chaque sujet)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Recherche sur le forum"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Requête de recherche"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Chercher les mots clés:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Les messages contenant tous les mots spécifiés seront affichés"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Par exemple : \"Économiseur d'écran figé\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Rechercher par identifiant de l'auteur :"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Seuls les messages de cet auteur seront affichés"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Par exemple: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Options de recherche"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Limites de recherche"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Rechercher au plus ce nombre de jours dans le passé"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 mois"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 an"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "aucune limite"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Afficher uniquement les messages de ce forum"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Trier par"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Démarrer la recherche"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Résultats de la recherche sur le forum"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Titres de sujet correspondant à votre requête :"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Messages correspondant à votre requête :"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Désolé, impossible de trouver une correspondance à votre requête. Vous pouvez essayer d'élargir votre recherche en utilisant moins de mots (ou des mots moins spécifiques)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Vous pouvez aussi %1 tenter la même recherche sur Google. %2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Exécutez une autre recherche"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Abonnement réussi"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Vous êtes maintenant abonné à %1. Vous serez notifiés à chaque nouveau message."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Abonnement échoué"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Nous ne pouvons pas actuellement vous abonner à %1. Veuillez réessayer plus tard.."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Désabonnement réussi"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Vous n'êtes plus abonné à %1. Vous ne recevrez plus de notifications pour ce sujet."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Désabonnement échoué"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Nous ne pouvons pas vous désabonner maintenant de %1. Veuillez réessayer plus tard."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Action d'abonnement inconnue"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Ce forum vous est invisible."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Ce sujet a été masqué par les modérateurs."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "On a répondu à ma question"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Cliquer ici si vous avez obtenu une réponse correcte"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "J'ai également cette question"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Ajouter un message à ce sujet"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Désinscription"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Vous avez souscrit à ce sujet.  Cliquez ici pour vous désinscrire."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Souscription"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Cliquez ici pour être averti par email lorsque de nouveaux messages sont ajoutés à ce sujet"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Démasquer ce sujet"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Masquer ce sujet"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Ne plus épingler"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Ne pas mettre ce sujet en évidence"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Epingler"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Faire apparaître cette discussion toujours en haut du forum"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Déverrouiller"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Autorisez de nouveaux messages dans cette discussion"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Verrouiller"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "N'autorisez pas de nouveaux messages dans cette discussion"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Déplacer ce sujet vers un forum différent"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Éditer le titre"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Éditer le titre du sujet"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Supprimer la discussion définitivement"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Exporter en tant que Notification"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Ne pas exporter"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Ne pas exporter cette actualité en tant que Notification"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Trier"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Statut du sujet mis à jour"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "Le statut a été mis à jour."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Publié par %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Déjà amis"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Vous avez souhaité être ami avec %1 sur %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Cette requête est toujours en attente de confirmation."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 n'accepte pas de demande d'amitié de votre part"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Vous ne pouvez pas être ami avec vous-même"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Ajouter ami"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Vous avez demandé à être ami avec %1. Nous avons notifié %2 pour qu'il/elle confirme que vous êtes bien amis."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Ajoutez un message optionnel ici : "
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Requête d'amitié envoyée"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "Nous avons notifié %1 de votre requête."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Veuillez vous connecter en tant que %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Vous devez vous connecter en tant que %1 pour voir la demande d'amitié"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Requête d'amitié"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 vous a envoyé une demande d'amitié."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 dit : %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Accepter l'amitié"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Cliquez sur accepter si %1 est un(e) ami(e)"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Décliner"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Cliquez sur décliner si %1 n'est pas un(e) ami(e)"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Amitié confirmée"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Votre amitié avec %1 a été confirmée."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Amitié déclinée"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Votre amitié avec %1 a été déclinée."
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Notification introuvable"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Ami(e) confirmé(e)"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "Vous êtes maintenant ami(e) avec %1."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Annuler l'amitié ?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Êtes-vous sûr de vouloir annuler votre amitié avec %1 ?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Rester amis"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Amitié annulée"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Votre amitié avec %1 a été annulée."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Si vous connaissez l'adresse email de votre compte, vous pouvez recevoir un email ici :"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Entrez l'adresse email ci-dessous et cliquez OK. Vous allez recevoir un email avec les instructions pour réinitialiser votre mot de passe."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Si vous avez oublié l'adresse email de votre compte, ou si vous ne pouvez pas recevoir d'email ici :"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Si vous avez exécuté BOINC avec ce compte, vous pouvez toujours y avoir accès. Voici comment : "
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Aller dans le répertoire de données de BOINC de votre ordinateur (son chemin est inscrit dans le Journal d’événements au démarrage).                "
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Trouvez votre fichier de compte pour ce projet, il sera nommé <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Ouvrez ce fichier dans un éditeur de texte tel que Notepad. Vous verrez quelque chose ressemblant à "
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Sélectionnez et copiez la chaîne de caractères entre %1 et %2 (%3 dans l'exemple du dessus)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Collez la chaîne dans le champ ci-dessous et cliquez OK"
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Vous serez alors connecté à votre compte, mettez à jour votre email et votre mot de passe."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Connectez vous avec l'authentificateur"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Vous avez oublié les informations de votre compte ?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Pas de tâche GPU rapportée "
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Meilleurs modèles GPU"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "Les listes suivantes présentent les modèles de GPU les plus productifs sur les différentes plates-formes. Les vitesses relatives sont indiquées entre parenthèses."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Bienvenue sur %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Voir et éditer vos préférences de compte en utilisant les liens ci-dessous."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Si vous ne l'avez pas déjà fait, %1téléchargez le logiciel client BOINC %2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Votre compte"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Plateforme anonyme, application manquante"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "Plateforme anonyme"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Version de l'application manquante"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Application manquante"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Plateforme manquante"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Nombre de tâches terminées"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Nombre maximal de tâches par jour"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Nombre de tâches aujourd'hui"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Nombre de tâches valides consécutives"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Taux de calcul moyen"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Détails de l'application pour l'hôte %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Nous n'avons pas d'enregistrement sur cet ordinateur."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Vous ne pouvez pas supprimer les enregistrements pour cet ordinateur car notre base de données contient toujours des unités de travail pour lui. Vous devez attendre quelques jours avant que le travail de cet ordinateur soit supprimé de la base de données du projet."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Supprimer cet ordinateur"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Enregistrement supprimé."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Retourner à la liste de vos ordinateurs"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Fusionner les enregistrements de l'ordinateur"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Fusionner les ordinateurs"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Dans certains cas BOINC donne des identifiants séparés à un même ordinateur par erreur. Vous pouvez corriger cela en fusionnant les anciennes identités avec la nouvelle."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Aucun ordinateur n'est disponible pour fusioner avec celui-ci."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Afficher les détails"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Vérifier les ordinateurs qui sont les mêmes que %1 (créé le %2, ID ordinateur %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "nom"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "créé"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID de l'ordinateur"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "Aucun hôte"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Fusionner les hôtes"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Mettre à jour les crédit de l'ordinateur"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Crédits de l'hôte mis à jour"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Emplacement de l'hôte mis à jour"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "aucun"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "L'emplacement de cet hôte a été défini comme %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Ce changement prendra effet la prochaine fois que cet hôte communiquera avec le projet."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Retour à la page des hôtes"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Ordinateurs appartenant à %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Ordinateurs masqués"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Cet utilisateur a choisi de ne pas montrer d'information au sujet de ses ordinateurs."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Vos ordinateurs"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Balises HTML autorisées."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Les balises HTML suivantes sont autorisées dans la description de l'équipe:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "gras"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "italique"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlien"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paragraphe"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "saut"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "pré-formaté"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "image ; la hauteur ne peut excéder 450 pixels. Merci de ne pas faire de lien vers des images sans la permission du site où l'image est hébergée. "
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Vous pouvez également utiliser la notation esperluète pour les caractères spéciaux."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Lisez nos règles et lignes de conduite"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "N'utilisez %1 que sur des machines pour lesquelles vous en avez l'autorisation"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "N'utilisez %1 que sur des ordinateurs qui vous appartiennent, ou pour lesquels vous avez obtenu l'autorisation de leur propriétaire. Certaines entreprises ou écoles ont des règles qui interdisent l'usage de leurs ressources informatiques pour des projets tels que %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Comment %1 utilisera votre ordinateur"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Lorsque %1 fonctionne sur votre ordinateur, une partie de votre puissance CPU, espace disque dur, et bande passante réseau sera utilisée. Vous pouvez contrôler la quantité de ces ressources utilisables par %1, et à quel moment elles pourront être utilisées."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Le travail effectué par votre ordinateur contribue à atteindre les objectifs de %1, tels que décrits sur son site web. L'application de calcul peut varier de temps en temps."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Politique de confidentialité"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Votre compte sur %1 est identifié par un pseudonyme que vous choisissez. Ce pseudo peut être affiché sur le site %1 ainsi qu'un résumé des jobs calculés par votre ordinateur %1. Si vous désirez rester anonyme, choisissez un nom qui ne révèle pas votre identité."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Si vous participez à %1, des informations concernant votre ordinateur (comme votre processeur, la mémoire installée, etc...) seront enregistrées par %1 et utilisées afin de décider quel type de job vous recevrez. Ces informations seront également visibles sur le site de %1. En revanche, rien ne servant à vous identifier (comme votre nom de domaine ou votre adresse réseau) ne sera affiché."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Pour participer à %1, vous devez donner une adresse mail valide. Celle-ci ne sera pas montrée sur le site de %1, ni partagée avec d'autres sites ou sociétés. %1 peut vous y envoyer ses newsletters, mais vous pouvez vous y désinscrire quand bon vous semble."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Les messages privés envoyés sur le site de %1 ne sont visibles que de l'expéditeur et du destinataire. %1 n'examine ni ne modère le contenu de ces messages. Si vous recevez des messages non désirés en provenance d'un autre utilisateur de %1, vous pouvez ajouter cette personne à votre %2filtre de messages%3. Les messages publics et privés en provenance de cet utilisateur seront bloqués."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Si vous utilisez les forums de notre site, vous devez suivre le %2guide du forum%3.  Les messages postés sur les forums %1 sont visibles pour tous, même les non-membres.  En postant sur les forums, vous accorder à tout le monde, de façon irrévocable, la possibilité de voir et copier vos messages."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Est-il sûr de lancer %1 ?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "A chaque fois que vous téléchargez un programme par internet vous jouez votre chance : le programme peut contenir des erreurs dangereuses, ou le serveur de téléchargement peut avoir été compromis. %1 a fait des efforts pour minimiser ces risques. Nous avons testé nos applications avec attention. Nos serveurs sont derrière des pares-feu et sont configurés pour une haute sécurité. Pour assurer l'intégrité des téléchargements de programmes, tous les fichiers exécutables sont signés  [...]
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Les applications lancées par %1 peuvent engendrer une surchauffe sur certains ordinateurs. Si cela se produit, arrêter %1 ou utiliser un %2programme utilitaire%3 pour limiter l'utilisation du CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 a été développé par %2. BOINC a été développé à l'Université de Californie."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Responsabilité"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 et %2 n'assument aucune responsabilité pour les dommages éventuels à votre ordinateur, la perte de données, ou tout autre événement ou condition qui peuvent être engendrés par la participation à %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Autres projets BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "D'autre projets utilisent la même plateforme BOINC, comme %1. Vous pouvez participer à un ou plusieurs de ces projets. Ce faisant, votre ordinateur participera à un travail utile, même lorsque %1 n'a aucune tâche disponible actuellement."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Ces autres projets ne sont pas associés à %1, et nous ne pouvons pas nous porter garant de leur pratiques de sécurité ou de la nature de leur recherches. Vous pouvez les rejoindre mais à vos propres risques."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Choix de la langue"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Ce site web est disponible dans plusieurs langues. La langue sélectionnée actuellement est %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Normalement, le choix de la langue est déterminé par la langue configurée dans votre navigateur, qui est : %1.  Vous pouvez la modifier en utilisant :"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox : Outils/Options/Général"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE : Outils/Options Internet/Langues"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Ou vous pouvez choisir une langue en cliquant sur l'un des liens.  Ceci enverra un cookie à votre navigateur. Assurez-vous alors que votre navigateur accepte les cookies provenant de notre domaine."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Nom des langues (cliquer pour sélectionner)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Utiliser la langue paramétrée dans le navigateur"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Les traductions sont effectuées par des volontaires.  Si votre langue native n'y est pas, %1vous pouvez fournir une traduction%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "ou %1créer un compte%2"
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "En cours de calcul sur %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Fusion de %1 dans %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Retourner à la liste de vos ordinateurs"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Cette opération fusionne les ordinateurs en fonction de leur nom de domaine.  \n                     <p>\n                        Pour chaque nom de domaine, tous les ordinateurs les plus anciens ayant ce nom\n                       seront fusionnés avec les ordinateurs les plus récents ayant ce nom.\n                       Les ordinateurs incompatibles ne seront pas fusionnés.\n                       <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Faites ceci"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Retourner à la liste des ordinateurs"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nAfin de maximiser la discussion et la circulation de l'information, \nnos forums sont modérés.\nLes messages des forums sont soumis aux règles suivantes:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>Les modérateurs peuvent supprimer les messages qui ne respectent pas l'une de ces règles.\nLes auteurs des messages supprimés seront avisés par e-mail.\nLes auteurs offensants peuvent avoir leur capacité à envoyer des messages temporairement\nrévoquée(mais pour éviter les abus seuls les administrateurs de projets ont la capacité de le\nfaire).\nD'autres types de mauvais comportement («messages piégés» pour  pour récupérer les \nAdresses IP des autres participants, création d [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Crédit en suspens"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID Résultat"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID d'unité de travail (WU)"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID Hôte"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Crédit demandé"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Crédit en suspens: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Bloquer les messages de cet utilisateur"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Bloquer un utilisateur"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Votre message a été envoyé."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Vous n'avez pas de message privé."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Émetteur et date"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Répondre à ce message"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Supprimer ce message"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Sélectionner tout "
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Dé-sélectionner tout"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Supprimer le message sélectionné"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Émetteur"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Date"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Vous devez remplir tous les champs pour envoyer un message privé"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Votre réponse a été marquée comme spam \n                                                     par le système anti-spam Akismet.\n                                                     Veuillez modifier votre texte et réessayer."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Impossible de trouver l'utilisateur avec l'identifiant %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Impossible de trouver l'utilisateur avec le nom d'utilisateur %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 est un nom d'utilisateur déjà attribué; merci de choisir un autre identifiant."
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "L'utilisateur %1 (ID : %2) n'accepte pas vos messages privés."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Utilisateur inexistant"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Voulez-vous réellement bloquer %1 ?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Etes-vous réellement certain de vouloir bloquer l'a réception des messages privés provenant de l'utilisateur %1 ?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Veuillez noter que vous ne pouvez bloquer qu'un nombre limité d'utilisateurs."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Un fois l'utilisateur bloqué, vous pouvez le débloquer en utilisant la page \"préférences du forum\"."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Non, annuler"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "Utilisateur inexistant"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Utilisateur %1 bloqué"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "L'utilisateur %1 a été bloqué et ne peut plus vous envoyer de messages privés."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Pour débloquer, aller sur les %1préférences de messages%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Action inconnue"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Vos préférences ont été mises à jour. Les préférences du client\nseront prises en compte lorsque votre ordinateur communiquera avec %1\nou si vous utilisez la commande %2Mise à jour%3 depuis le BOINC Manager."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Vos préférences ont été réinitialisées et\n                                  prendront effet lorsque votre ordinateur communiquera avec %1\n                                  ou si vous demandez une %2mises à jour%3 depuis le BOINC Manager."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 pour %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Retour aux préférences"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Confirmer la suppression des préférences"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Voulez-vous vraiment supprimer vos préférences séparées de %1 pour %2 ?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Supprimer les préférences"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Annuler"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profils"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Profils%2 permet à chacun de partager des choses et opinions avec la communauté."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Explorez la diversité de vos camarades également volontaires, et apportez la contribution de vos propres vues à d'autres que vous appréciez."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Si ce n'est déjà fait, vous pouvez créer votre %1profil utilisateur%2 qui sera visible par les autres utilisateurs !"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "L'utilisateur du jour"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Navigateur de profil utilisateur"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Regarder la %1galerie photo%2 de l'utilisateur."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Parcourir les profils %1par pays%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Parcourir les profils %1aléatoirement%2, %3aléatoirement avec photos%2, ou %4aléatoirement sans photos%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Liste des profils par ordre alphabétique :"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Rechercher un profil par texte"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Aucun profil"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Aucun profil ne correspond à votre requête."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Type de vote invalide :"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Vote enregistré"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Merci"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Votre recommandation a été enregistrée"
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Votre vote de rejet de ce profil a été enregistré."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Retour au profil."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Profils contenant '%1'"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Nom de l'utilisateur"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Projet rejoint"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Crédits récents"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Aucun profil contenant '%1'"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Tâche inexistante:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Cette fonctionnalité est désactivée temporairement"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Aucun ordinateur trouvé ayant l'ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Aucun accès"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Il manque l'ID de l'utilisateur ou du hôte"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Aucune tâche à afficher"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Utilisateur du jour"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Arrêté"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "En cours d'exécution"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Suspendu"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Statut du projet"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "État du serveur"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Programme"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Hôte"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Version du schéma de base de donnée:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "État de l'exécution"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Utilisateurs"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Tâches par application"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Temps d'exécution moyen des 100 derniers résultats en heures (min-max)"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Utilisateurs dans les dernières 24 heures"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Ordinateur %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistiques et tableaux principaux"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Statistiques de %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Top des participants"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Top des équipes"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Top des ordinateurs"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "Modèles GPU"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "Modèles CPU"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Des statistiques plus détaillées pour %1 et d'autres projets basés sur BOINC sont disponibles sur ces différents sites web :"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Vous pouvez également avoir vos statistiques courantes sous la forme d'une \"image de signature\" :"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Accessoirement, vous pouvez avoir la somme de vos statistiques individuelles sur tous les projets BOINC de sites différents; allez voir votre %1page d'accueil%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Equipes"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 participants peuvent former une %2équipes%"
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Vous ne pouvez appartenir qu'à une seule équipe. Vous pouvez quitter ou joindre une équipe à tout moment."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Chaque équipe a un %fondateur%2 qui peut :"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "accéder aux adresses email des membres de l'équipe"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "éditer le nom et la description de l'équipe"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "Ajouter ou supprimer des administrateurs de l'équipe"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "supprimer des membres de l'équipe"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "supprimer l'équipe si elle n'a aucun membre"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Pour rejoindre une équipe, visitez la page de cette équipe et cliquez sur %Rejoindre cette équipe%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Trouver une équipe"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Toutes les équipes"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 équipes"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Créer une nouvelle équipe"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Si vous ne trouvez pas d'équipe vous correspondant, vous pouvez %1créer une équipe%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Supprimer ce membre des administrateurs de l'équipe"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Ajouter ou supprimer des administrateurs de l'équipe"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Vous pouvez sélectionner des membres de l'équipe comme 'administrateurs de l'équipe'.\nCes administrateurs peuvent :"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Éditer les informations de l'équipe (nom, URL, description, pays)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Voir l'historique des entrées/départs de l'équipe"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Modérer le forum de l'équipe, s'il existe (les administrateurs reçoivent des notification par e-mail des événements de modération et des rapports 'rouges X')"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Les administrateurs de l'équipe ne peuvent pas :"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Modifier le nom du fondateur de l'équipe"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Supprimer des membres"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Si une administrateur quitte l'équipe, il cesse d'être administrateur d'équipe."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Nous vous recommandons de sélectionner uniquement des gens que vous connaissez et auxquels vous avez pleinement confiance pour être administrateur de l'équipe."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Il n'y a actuellement aucun administrateur de l'équipe"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Administrateurs de l'équipe actuels"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Administrateur de l'équipe depuis"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Ajouter un administrateur de l'équipe"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Adresse e-mail du membre de l'équipe :"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Ajouter"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "échec de la suppression de l'administrateur"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "L'utilisateur n'est pas membre de l'équipe"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 est déjà administrateur de %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Impossible d'ajouter l'administrateur"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Équipe inexistante"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "équipe inexistante"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "L'utilisateur n'est pas membre de %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "En cours de modification du fondateur de %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 est maintenant le fondateur de %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Modifier le fondateur de %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Le membre %1 a demandé à être déclaré fondateur de l'équipe le %2, mais a quitté l'équipe depuis : la requête va être supprimée."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Le membre %1 a demandé à être déclaré fondateur de l'équipe. Ceci peut être du au fait que vous avez quitté l'équipe ou que vous n'avez eu aucun contact avec l'équipe depuis un long moment."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "décline la requête"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Si vous ne déclinez pas la requête par %1, %2 aura l'option d'assumer le rôle de fondateur de l'équipe.<br /><br />\n                                Pour accepter la requête, assignez le rôle de fondateur à %3 en utilisant le formulaire ci-dessous."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Aucune requête de transfert en attente."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Pour assigner le rôle de fondateur de cette équipe à un autre membre, sélectionnez le membre via la boîte de sélection située près de son nom et cliquer <strong>Changer de fondateur</strong> ci-dessous."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Nouveau fondateur ?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Changer de fondateur"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Il n'y a pas d'utilisateur à qui transférer l'équipe."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Vous devez choisir une nom d'équipe"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Une équipe nommée %1 existe déjà. Essayez un autre nom"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Impossible de créer l'équipe. Essayez plus tard."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Créer une équipe"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Vous appartenez à l'équipe %1. Vous devez %2quitter cette équipe%3 avant d'en créer une."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Aucun fondateur ou administrateur"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Historique d'équipe pour %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Quand"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Utilisateur"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Action"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Crédit total au moment de l'action"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "pays invalide"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "Le nom '%1' est déjà utilisé par une autre équipe."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Doit spécifier un nom d'équipe"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Impossible de mettre à jour l'équipe. Réessayez plus tard."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Éditer %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Mettre à jour les informations d'équipe"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "Liste des e-mails de %1"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Liste des membres de %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Afficher en clair"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Créer un forum"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Vous pouvez créer un forum relatif à %1."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Seuls les membres de l'équipe pourront poster dans le forum."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Selon votre choix, seuls les membres pourront lire."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Vous et les administrateurs de votre équipe auront les privilèges de modérateur."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Créer un forum pour %1"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "L'équipe a déjà un forum"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Forum de l'équipe"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Délai minimum entre les dépôts de messages (en secondes)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Crédit total minimum pour pouvoir poster"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Crédit moyen minimum pour pouvoir poster"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Soumettre"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Supprimer le forum de votre équipe."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Voulez-vous vraiment supprimer le forum de votre équipe ?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Êtes-vous sûr de vouloir supprimer le forum de votre équipe ? Tous les fils et messages seront alors définitivement supprimés. (Vous aurez néanmoins la possibilité de créer un nouveau forum ensuite)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Oui - supprimer le forum"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Le forum a été supprimé"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Le forum de votre équipe a été supprimé. Vous pouvez éventuellement en %1créer un nouveau%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Le forum de l'équipe a été mis à jour"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Mis à jour avec succès"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Échec de la mise à jour"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "L'équipe n'a pas de forum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Vous devez être membre d'une équipe pour pouvoir accéder à cette page."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Demande en cours du titre de fondateur pour %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Le fondateur actuel a été notifié de votre demande par un e-mail et un message privé.<br /><br />\n                       Si le fondateur ne répond pas dans les 60 jours, vous serez alors autorisé à devenir le fondateur."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Les requêtes pour le titre de fondateur ne sont pas autorisées actuellement."
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Titre de fondateur assumé pour %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Félicitations ! Vous êtes maintenant le fondateur de l'équipe %1. Allez sur %2la page de votre compte%3 pour y trouver les options d'administration."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Refuser la requête de changement de fondateur"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "La requête de titre de fondateur de %1 a été rejetée."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Il n'y a aucune requête de titre de fondateur."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "action non-définie %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Retour à la page principale"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Vous devez être membre d'une équipe pour accéder à cette page."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Demande le titre de fondateur pour %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Vous avez maintenant le titre de fondateur de %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Vous avez demandé le titre de fondateur de %1 le %2."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "Soixante jours se sont écoulés depuis votre requête et le fondateur n'a pas répondu. Vous pouvez maintenant prendre le titre de fondateur en cliquant ici :"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Prendre le titre de fondateur"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Le fondateur a été notifié de votre requête. S'il ne répond pas dans les %1, il vous sera proposé une option pour devenir le fondateur."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Si le fondateur de l'équipe n'est pas actif et que vous voulez assumer ce rôle, cliquer sur le bouton ci-dessous. Un e-mail sera envoyé au fondateur actuel pour détailler votre requête. Il pourra alors vous transférer le titre de fondateur ou refuser votre requête. Si le fondateur ne répond pas dans les 60 jours, vous serez alors autorisé à devenir fondateur.<br /><br />\n                       Voulez-vous vraiment demander le titre de fondateur ?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Demander le titre de fondateur"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Une demande de changement de fondateur a déjà été effectuée par %1 le %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Un changement de fondateur a été demandé dans les 90 derniers jours : aucune nouvelle requête n'est donc autorisée. Veuillez réessayer ultérieurement."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "L'équipe %1 ne peut être rejointe."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Déjà un membre"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Vous êtes déjà membre de %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Impossible de rejoindre l'équipe - veuillez réessayer ultérieurement."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "A rejoint %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "Vous avez rejoint %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Rejoindre %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Veuillez noter :"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Rejoindre une équipe donne à son fondateur l'accès à votre adresse e-mail."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Rejoindre une équipe ne modifie pas le crédit sur votre compte."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Rejoindre l'équipe"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Résultats de la recherche"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Résultats pour la recherche de '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Vous pouvez voir les membres, les statistiques et les informations de ces équipes."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Plus de 100 équipes correspondent à vos critères de recherche. Seules les 100 premières sont affichées."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Fin des résultats. %1 Si vous ne pouvez pas trouver l'équipe que vous recherchez, vous pouvez %2créer une équipe%3 par vous même."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Administration de l'équipe %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Éditer les informations d'équipe"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Modifier le nom d'équipe, URL, description, type ou pays"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Liste des membres :"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "texte"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Voir le nom des membres et leur adresse e-mail"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Historique des changements d'affichage :"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Voir quand les membres on rejoint ou quitté cette équipe"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Répondre à une requête de titre de fondateur."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Si vous ne répondez pas par %1, %2 pourra obtenir le titre de fondateur de cette équipe."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Supprimer de cette équipe les membres inactifs ou non désirés"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Transférer le titre de fondateur à un autre membre"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Ajouter/Supprimer un administrateur de l'équipe"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Donner les privilèges d'administrateur de l'équipe aux membres sélectionnés"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Supprimer l'équipe"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Autorisé uniquement si l'équipe ne possède aucun membre"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Créer ou gérer un forum d'équipe"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Pour avoir cette équipe présente sur tous les projets BOINC (présents et futurs), vous pouvez la qualifier %1d'équipe générale BOINC%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Les administrateurs d'équipe sont encouragés à rejoindre et à participer au groupe Google %1boinc-team-founders%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Impossible de supprimer une équipe non vide"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "L'équipe %1 a été supprimée"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limite dépassée : seuls les 1000 premiers membres peuvent être affichés."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Membres de %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Impossible de quitter l'équipe"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "L'équipe n'existe pas, ou vous n'en êtes pas membre."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Quitter %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Avant de quitter une équipe, veuillez noter :</strong>\n         <ul>\n         <li>Si vous quittez une équipe, vous pourrez la rejoindre à nouveau ultérieurement, ou rejoindre une autre équipe.\n         <li>Quitter une équipe ne modifie aucunement les statistiques de votre crédit personnel.\n          </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Quitter l'équipe"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Enlever les utilisateurs de %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 n'est pas membre de %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 a été enlevé"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Enlever les membres de %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Enlever ?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Nom (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Aucun membre n'est éligible pour la suppression."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Enlever les utilisateurs"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Nom d'équipe"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Résultats de la recherche d'équipe"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Aucune équipe correspondant à vos critères n'a été trouvée. Essayez une autre recherche."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Sinon vous pouvez %1créer une nouvelle équipe%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Les équipes suivantes correspondent à au moins un critère de votre recherche.\n            Pour rejoindre une équipe, cliquer sur son nom aller sur la page de l'équipe,\n            ensuite cliquer %1Rejoindre cette équipe%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Modifier votre recherche"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Vous pouvez constituer une équipe avec d'autres personnes ayant des intérêts similaires, ou d'un même pays, d'une même compagnie, ou bien encore d'une même école."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Utiliser ce formulaire pour trouver des équipes qui peuvent vous correspondre."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Je ne suis pas intéressé%2 pour rejoindre une équipe maintenant."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limite dépassée - Désolé, mais seulement les %1 items"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top des hôtes"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Top %1 des équipes"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "In n'y a pas %1 équipes"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Participant depuis"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "Aucun 'utilisateur du jour' n'a été choisi."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Utilisateur du jour pour %1 : %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtres"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Le nom d'utilisateur commence par"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "N'importe"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Avec un profil ?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Soit"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "Sur une équipe ?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "En train de trier"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Date d'inscription décroissante"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Crédit moyen décroissant"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Crédit total décroissant"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "la chaîne doit contenir au moins 3 caractères"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Résultats de la recherche d'utilisateur"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Rejoint"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Aucun utilisateur ne correspond aux critères de recherche."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Utilisateur non trouvé !"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Données de compte<br/>pour %1<br/>Date :"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Équipe :"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Crédit total de l'équipe :"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Crédit moyen de l'équipe :"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Équipe : aucune"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Valider l'adresse e-mail BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Veuillez visiter le lien suivant pour valider l'adresse e-mail pour votre compte %1 :"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "E-mail de validation envoyé"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Un e-mail a été envoyé à %1. Visitez le lien qu'il contient pour valider votre adresse e-mail."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Utilisateur inexistant."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Erreur dans les données de l'URL - impossible de valider l'adresse e-mail"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Échec de la mise à jour de la base de données - veuillez réessayer ultérieurement."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Valider l'adresse e-mail"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "L'adresse e-mail de votre compte a été validée."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Cet utilisateur n'a pas de profil"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profil : %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Données de compte"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Vous pouvez accéder à votre compte soit en utilisant votre adresse email et mot de passe\n             ou en utilisant une 'clé de compte'.\n             Votre clé de compte est :"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Cette clé peut être utilisée pour:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "se connecter à votre compte sur Internet"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "pour rattacher un ordinateur à votre compte sans utiliser le BOINC Manager\n                        Vous devez installer BOINC,\n                        crée un répertoire nommé %1 dans le répertoire\n                         de données BOINC, et définir son contenu à:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Clé de compte non robuste"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "Votre 'clé de compte non robuste' peut être utilisée pour rattacher des ordinateurs à votre compte\n        comme décrit ci-dessus, mais ne peut pas être utilisée pour se connecter à votre compte ou le modifier en aucune façon.\n        Si vous voulez rattacher des ordinateurs dans lesquels vous n'avez pas confiance ou qui ne sont pas sûrs à votre compte,\n        faites le avec votre clé de compte non robuste.\n        Votre clé de compte non robuste est:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Si vous changez votre mot de passe, votre clé de compte non robuste change, et vos clés de compte non robustes antérieures ne sont plus valides."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "impossible de trouver l'unité de travail"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Unité de travail %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "applications"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "résultats canoniques"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "crédit accordé"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tâches en cours"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "Suppression en cours"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "quorum minimum"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "réplication initiale"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "nombre maximum de tâches en erreur/totales/succès"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "erreurs"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validation"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "En attente"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Page principale"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Généré"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Votre parcours personnel."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Parlez-nous de vous. Vous pouvez nous dire d'où vous venez, votre âge, vos occupations et hobbies, ou toutes autres choses vous concernant."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Votre opinion concernant %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Dites nous vos pensées à propos de %1<ol>\n    <li>Pourquoi utilisez vous %1?\n    <li>Quel est votre point de vue à propos du projet ?\n    <li>Des suggestions ?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Combinaison de couleurs des graphismes"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Pourcentage maximal de CPU pour les graphiques %10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Utiliser uniquement les applications sélectionnées"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Ne recevoir du travail que pour certaines applications. Utile pour se concentrer sur certaines applications, ou pour en exclure."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Si aucun travail n'est disponible pour les applications sélectionnées, autoriser des travaux pour d'autres applications ? "
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Utilisez une application non graphique plus rapide, si disponible ? "
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(toutes les applications)"
diff --git a/locale/fr/BOINC-Setup.mo b/locale/fr/BOINC-Setup.mo
index 0ff96f4..0447134 100644
Binary files a/locale/fr/BOINC-Setup.mo and b/locale/fr/BOINC-Setup.mo differ
diff --git a/locale/fr/BOINC-Setup.po b/locale/fr/BOINC-Setup.po
index 9c338f6..4555be7 100644
--- a/locale/fr/BOINC-Setup.po
+++ b/locale/fr/BOINC-Setup.po
@@ -1,41 +1,47 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Lucas Mascaro <mascaro.lucas at yahoo.fr>, 2017
 # Philippe Janocha, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2016-02-11 16:24+0000\n"
-"Last-Translator: Philippe Janocha\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-29 23:54+0000\n"
+"Last-Translator: Lucas Mascaro <mascaro.lucas at yahoo.fr>\n"
 "Language-Team: French (http://www.transifex.com/boinc/boinc/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Désolé, cette version de %s requiert un système 10.5 ou supérieur."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Désolé, cette version de %s nécessite un système 10.6 ou supérieur."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Oui"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Non"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "BOINC doit-il fonctionner même lorsqu'aucun utilisateur n'est connecté ?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -43,26 +49,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Les utilisateurs ayant les privilèges administrateurs sur cet ordinateur seront automatiquement autorisés à exécuter et contrôler %s.\n\nVoulez-vous aussi autoriser les utilisateurs non-administrateurs à exécuter et contrôler %s sur ce Mac ?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Voulez-vous établir %s comme économiseur d'écran pour tous les utilisateurs de %s sur ce Mac ?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Erreur de droit d'accès après un redémarrage"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "La suppression peut durer plusieurs minutes.\nVeuillez patienter."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -70,27 +77,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Êtes-vous certain de vouloir supprimer %s de votre ordinateur ?\n\nCela supprimera les fichiers exécutables mais pas les fichiers de données %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Annulé : %s n'a pas été modifié ."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Une erreur est survenue : code d'erreur %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "nom d'utilisateur"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
-msgstr "Voulez-vous également supprimer VirtualBox de votre ordinateur?\n(VirtualBox a été installé en même temps que BOINC)"
+msgstr "Voulez-vous également supprimer VirtualBox de votre ordinateur ?\n(VirtualBox a été installé en même temps que BOINC)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -102,17 +109,17 @@ msgid ""
 "\"%s\"."
 msgstr "Suppression effectuée.\n\nVous voulez peut-être supprimer les éléments restants suivants en utilisant le Finder : \nle répertoire \"%s\"\n\npour chaque utilisateur, le fichier\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Tapez votre mot de passe administrateur pour effacer complètement %s de votre ordinateur. \n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Annuler"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Continuer..."
diff --git a/locale/fr/BOINC-Web.mo b/locale/fr/BOINC-Web.mo
index 529e598..d9be015 100644
Binary files a/locale/fr/BOINC-Web.mo and b/locale/fr/BOINC-Web.mo differ
diff --git a/locale/fr/BOINC-Web.po b/locale/fr/BOINC-Web.po
index b73cb53..e331384 100644
--- a/locale/fr/BOINC-Web.po
+++ b/locale/fr/BOINC-Web.po
@@ -1,20 +1,19 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
-# Jerome Cadet <jerome.cadet at pobox.com>, 2015
+# Frederic94500 <frederictran at hotmail.fr>, 2017
+# Jerome Cadet <jerome.cadet at pobox.com>, 2015,2017
 # Philippe Janocha, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-02-11 17:32+0000\n"
-"Last-Translator: Philippe Janocha\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-07 20:23+0000\n"
+"Last-Translator: Jerome Cadet <jerome.cadet at pobox.com>\n"
 "Language-Team: French (http://www.transifex.com/boinc/boinc/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,359 +22,466 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Français"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "French"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! vous aide à créer et gérer vos comptes de projet BOINC et vous aide au réglage des préférences, à rejoindre ou créer des équipes, à rattacher vos ordinateurs aux projets et bien plus encore.  Que vous soyez un nouvel utilisateur ou bien un utilisateur existant de BOINC, BAM vous aidera à tirer le meilleur parti de BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Les membres de GridRepublic exécutent un économiseur d’écran qui permet à leurs ordinateurs pour travailler sur des projets de recherche d’intérêt public lorsque les machines ne sont pas en cours d’utilisation. Cet économiseur d’écran n’affecte pas plus les performances de l’ordinateur hôte qu’un économiseur d’écran ordinaire."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Recherche"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "Retourner à la page principale de BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Cette page est %straduisible%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Nous vous recommandons d'installer également VirtualBox afin que votre ordinateur puisse aussi faire fonctionner les projets qui le nécessitent."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "En savoir plus sur VirtualBox."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "Télécharger BOINC + VirtualBox"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "pour %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "Télécharger BOINC"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINC est un programme qui vous permet d'offrir le temps de calcul inutilisé de votre ordinateur  à des projets scientifiques comme SETI at home, Climateprediction.net, Rosetta at home, World Community Grid et beaucoup d'autres."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "Après avoir installé BOINC sur votre ordinateur, vous pouvez le connecter à autant de projets que vous le désirez."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "Vous ne devez faire fonctionner ce logiciel sur un ordinateur que s'il vous appartient ou si vous  avez la permission de son propriétaire."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "Nous vous recommandons de télécharger BOINC depuis le site de Google Play ou d'Amazon Appstore, et non d'ici."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Prérequis système"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Notes de publication"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Aide"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Toutes les versions"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr "Historique des versions"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "calcul du processeur graphique"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC : calculez pour la science"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "L'aide en ligne de BOINC vous permet de converser de vive voix avec des utilisateurs expérimentés, qui peuvent : %s répondre aux questions concernant BOINC et le calcul distribué bénévole ; %s vous guider dans l'installation et l'utilisation de BOINC ; %s solutionner les problèmes que vous pourriez rencontrer."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "L'aide en ligne BOINC est basée sur %sSkype%s, un système de téléphonie basé sur Internet. Skype est gratuit (le logiciel et les communications).  Si vous ne possédez pas encore Skype, veuillez %sle télécharger et l'installer maintenant%s.  Lorsque vous aurez terminé, revenez sur cette page."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "La meilleure façon de demander de l'aide est de le faire de vive voix. Pour cela vous devez disposer d'un microphone et d'enceintes ou d'un casque. Vous pouvez également utiliser le système de tchat textuel de Skype ou plus classiquemeent le courriel (si vous ne disposez pas de Skype) pour communiquer avec les bénévoles."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Des bénévoles parlant plusieurs langues sont disponibles. Veuillez sélectionner une langue : "
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Devenez bénévole de support"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Si vous êtes un utilisateur expérimenté de BOINC, nous vous encourageons à %sdevenir un volontaire de support%s.  C'est un bon moyen d'aider la recherche scientifique et le calcul distribué bénévole - et c'est sympathique !"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Si vous êtes un bénévole de support : pour éditer vos paramètres, %scliquez ici%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "Les volontaires de support BOINC sont des bénévoles. Leurs conseils ne sont pas sous la responsabilité de BOINC ou de l'Université de Californie."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "%1Ne jamais%2 donner votre adresse email ou votre mot de passe aux bénévoles de support BOINC."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Puissance de calcul"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "Les 100 meilleurs participants"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Statistiques"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "moyenne sur 24 heures :"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PétaFLOPS."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Actif :"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "volontaires,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "ordinateurs.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "moyenne sur 24 heures :"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PétaFLOPS."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Actualités"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Base de données non disponible ; veuillez réessayer ultérieurement."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Participant"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Utilise les ressources inexploitées de votre ordinateur (Windows, Mac, Linux ou Android) pour guérir des maladies, étudier le réchauffement planétaire, découvrir des pulsars et participer à beaucoup d'autres types de recherche scientifique. C'est sans danger, sécurisé et facile :"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Téléchargement"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Documentation"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Pour les appareils Android, obtenez l’application BOINC depuis le Google Play Store ; pour Kindle, obtenez le depuis l’Amazon App Store."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Vous pouvez choisir de soutenir  1projects%2 comme les 3%, 4% et 5%, parmi beaucoup d’autres."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Si vous exécutez plusieurs projets, essayez un %1gestionnaire de compte%2 tel que %3GridRepublic4 % ou %5BAM !%6. "
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Pour en savoir plus"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Forums de discussion"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projets"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Manuel"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Extensions"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Liens"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Utilise les ressources inexploitées de votre ordinateur (Windows, Mac, Linux ou Android) pour guérir des maladies, étudier le réchauffement planétaire, découvrir des pulsars et participer à beaucoup d'autres types de recherche scientifique. C'est sans danger, sécurisé et facile :"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Autres façons d’aider :"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Choisir des projets"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Vue d’ensemble"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "Télécharger le logiciel BOINC"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Traduire"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Entrer une adresse courriel et un mot de passe."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Tester"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "Ou, si vous participez à plusieurs projets, essayez un %sgestionnaire de compte%s comme %sGridRepublic%s ou %sBAM!%s. "
+#: doc/index.php:135
+msgid "Document"
+msgstr "Document"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "Calculer avec BOINC"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Faire connaître"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Mises à jour logicielles"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Signaler un bug"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Calcul haute intensité avec BOINC"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1Scientifiques%2 : utilisez BOINC pour créer un %3projet de calcul bénévole%4 vous procurant ainsi la puissance de calcul de milliers de processeurs."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1Universités%2 : utilisez BOINC pour créer un %3centre de calculs universitaire virtuel%4."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Sociétés%2 : utilisez BOINC pour du %3calcul distribué%4."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "À propos de BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Documentation"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Forums de discussion"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC et Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Développement logiciel"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC est une plate-forme logicielle pour le calcul volontaire. Il inclut les composants client, serveur et web, et des API pour connecter d'autres composants."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Code source"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Fabriquer BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Documents de conception"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Nous recherchons toujours des programmeurs pour nous aider à maintenir et développer BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Processus de développement"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Tâches de développement"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC est distribué sous licence open source LGPL."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "Le projet BOINC"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC est un projet communautaire.  Chacun est invité à participer."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "Listes email"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "Évènements"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Code source"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Graphiques"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Gouvernance"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Aide en direct via Skype ou email"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Live Help permet d’obtenir de l’aide individuelle d’un utilisateur expérimenté de BOINC, qui peut répondre aux questions sur BOINC, vous aider à installez et utilisez BOINC, et résoudre les problèmes."
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "API pour extensions logicielles"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Vous pouvez communiquer avec une application d’assistance"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Logiciel open-source pour le calcul distribué bénévole."
+#: doc/help.php:16
+msgid "by email"
+msgstr "par e-mail"
 
-#: projects.inc:19
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\npar la voix, à l’aide de % 1Skype%2, un système de téléphone gratuit sur Internet. Si vous n’avez pas déjà Skype, vous pouvez le %3télécharger et l'installez maintenant%4.  Lorsque vous avez terminé, revenez à cette page."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "à l’aide de Skype chat"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Des bénévoles parlant de nombreuses langues sont disponibles. Veuillez sélectionner une langue (le nombre d’assistants est indiqué) :"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Devenez bénévole de support"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Si vous êtes un utilisateur expérimenté de BOINC, nous vous encourageons à %sdevenir un volontaire de support%s.  C'est un bon moyen d'aider la recherche scientifique et le calcul distribué bénévole - et c'est sympathique !"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Si vous êtes un bénévole de support : pour éditer vos paramètres, %scliquez ici%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Les assistants BOINC sont bénévoles.  Leurs conseils ne sont pas cautionnés par BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1Ne jamais%2 donner votre adresse email ou votre mot de passe aux bénévoles de support BOINC."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Réseau de capteurs"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Université de Stanford"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech "
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Sismologie"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "Le Réseau de Capteurs Sismiques QCN développe le plus grand réseau sismologique au monde en utilisant les capteurs liés aux ordinateurs et aux smartphones connectés à Internet."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network utilise des capteurs associés aux ordinateurs et aux smartphones pour détecter les ondes sismiques."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Fondation BOINC de Pologne"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Recherche environnementale"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Ce projet crée une cartographie gratuite continuellement mise à jour des niveaux de radiation en utilisant les capteurs reliés aux ordinateurs des participants. Vous devez acheter un capteur pour y participer."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Science cognitive et intelligence artificielle"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Science cognitive"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home utilise la modélisation des processus cognitifs par ordinateur afin de mieux comprendre l'esprit humain, et en particulier d'étudier les mécanismes et les processus qui permettent et contrôlent la performance humaine et l'apprentissage."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Privé"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Indépendant"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Intelligence artificielle"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -383,55 +489,55 @@ msgid ""
 "conversations."
 msgstr "Analyser et convertir les filets sémantiques pour une utilisation dans FreeHAL, une intelligence artificielle qui utilise des réseaux sémantiques, des analyseurs morphologiques et une partie des bases de données orales afin d'imiter le comportement humain dans les conversations."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biologie et médecine"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Physiologie médicale"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home effectue des simulations électrophysiologiques cardiaques, en étudiant l'activité électrique du cœur."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Biologie moléculaire"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World cherche à identifier, analyser, prévoir structurellement et concevoir des molécules d’ARN à l'aide de logiciels de bio-informatique reconnus."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "University College Dublin"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Découverte de médicaments antipaludiques"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "Le parasite causant la malaria continue de développer une résistance aux médicaments disponibles. C'est pourquoi il est urgent de découvrir de nouveaux médicaments pour cibler de nouvelles protéines du parasite. Le projet Find at Home a pour but de trouver ces nouvelles cibles."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Le parasite qui cause la malaria continue de faire évoluer sa résistance aux médicaments disponibles. Il est donc urgent de découvrir de nouveaux médicaments, cibler de nouvelles protéines chez le parasite. Le projet FiND at Home vise à trouver ces nouvelles cibles."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Université de Karlsruhe (Allemagne)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Prédiction de la structure des protéines"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -440,15 +546,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME utilise une approche informatique pour prédire la structure des protéines biologiquement actives, pour comprendre les mécanismes de traitement du signal lorsque les protéines interagissent les unes avec les autres, pour comprendre les maladies liées à un dysfonctionnement des protéines ou l'agrégation, et à développer de nouveaux médicaments sur la base de structures tridimensionnelles des protéines biologiquement importantes."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Campus de Recherche Biomédicale de Barcelone (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Simulations moléculaires de protéines"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -456,31 +562,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net ouvre des nouveaux scénarios informatiques par l'emploi du premier code dynamique moléculaire atomique (CeIIMD) spécialement optimisé pour fonctionner sur les processeurs graphiques NVIDIA. De nouvelles applications biomédicales deviennent alors possibles donnant un nouveau rôle à la biologie informatique pour la recherche biomédicale."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Centre Universitaire du Maryland pour la bio-informatique et la biologie informatique"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Recherche en sciences de la vie"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "Le projet Lattice, développé et administré à l'Université du Maryland, fournit de la puissance de calcul aux chercheurs du monde entier qui étudient les relations évolutives en utilisant des données d'ADN et de séquences de protéines."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "L'institut Tropical Suisse"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Épidémiologie"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -491,15 +597,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "Les modèles de simulation dynamique de transmission et d'effets sur la santé de la malaria sont un outil important pour le contrôle de la malaria. Ils peuvent être utilisés pour déterminer les stratégies optimales pour livrer des moustiquaires, la chimiothérapie ou de nouveaux vaccins qui sont actuellement en cours de développement et de test. Une telle modélisation est extrêmement gourmande en puissance de calcul, exigeant des simulations sur de larges populations humaines avec  [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Université de Washington"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biologie"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -509,19 +615,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "Déterminer les structures tridimensionnelles de protéines dans la recherche qui peut mener à la découverte de remèdes pour quelques maladies humaines majeures. En calculant pour Rosetta at home, vous nous aiderez à accélérer et prolonger notre recherche bien plus que nous ne pourrions le faire sans votre aide. Vous nous aiderez également dans nos efforts à concevoir de nouvelles protéines pour combattre les maladies telles que VIH, la malaria, le cancer et la maladie d’Alzheimer."
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Sciences de la terre"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Université d'Oxford"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Étude du climat"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -533,25 +639,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "Étudier les approximations des modèles climatiques les plus pointus. En relançant le modèle des centaines de fois, nous espérons trouver comment le modèle réagit aux petits ajustements de ces approximations - suffisamment petites pour ne pas rendre ces approximations irréalistes. Cela nous permettra de mieux comprendre à quel point nos modèles sont sensibles à ces petits changements et aussi à des choses comme des changements dans le dioxyde de carbone et le cycle du soufre. Cela [...]
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Sciences Physiques"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Ingénierie Mécanique"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "Nous sommes en train de calculer le design optimum d'une structure appelée le \"52-bar truss\""
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomie"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -561,11 +658,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS est un projet d'astronomie qui étudie 16 propriétés différentes des galaxies, comme la luminosité, la masse, la quantité de poussière et la vitesse de formation des étoiles. Nous utilisons la puissance de traitement de votre ordinateur pour mener des calculs pixel par pixel sur plusieurs longueurs d'onde (ultraviolet, lumière visible et proche infrarouge) des images de galaxies pour produire un atlas qui aidera les astronomes à mieux comprendre l'univers lointain."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Astrophysique"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -573,57 +670,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "Le but du projet est de déduire des formes et des orbites pour une partie importante de la population d'astéroïdes. Les données en entrée utilisées sont toutes les photométries disponibles d'astéroïdes. Les résultats sont des modèles de formes convexes d'astéroïdes avec la direction de l'axe de rotation et la période de rotation."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Science et ingénierie liées à l'aérospatiale"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Université de l'Illinois à Urbana-Champaign"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation est une plate-forme pour les simulations liées à l'aérospatiale, notamment l'optimisation de la trajectoire de lanceurs, satellites et sondes, la simulation de l'exosphère proche de la surface de la Lune et l'analyse des systèmes dynamiques des rovers d'exploration"
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Effectuer des simulations liées à l'aérospatiale"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Le but de Cosmology at Home est de rechercher le modèle qui décrit le mieux notre Univers et de trouver la gamme de modèles conformes aux données disponibles en physique des particules en astronomie."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Univers at Home a pour but de créer la première base de données du contenu stellaire simulé de l'Univers, depuis les premières étoiles jusqu'aux trous noirs binaires les plus exotiques."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Faire des recherches en physique et en astronomie"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Institut Polytechnique Rensselaer"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Le but de Milkyway at Home est de créer un modèle tridimensionnel de haute précision de la Voie Lactée en utilisant les données recueillies par The Sloan Digital Sky Survey (SDSS)."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Étudier la structure de la galaxie de la Voie Lactée"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Université de Leyde, Pays-Bas"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Chimie"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -633,15 +725,15 @@ msgid ""
 "simulations through the grid."
 msgstr "Calculs scientifiques de surface en utilisant la dynamique classique. Leiden Classical permet à des bénévoles, des étudiants et des scientifiques de soumettre leurs calculs personnels à la grille. Chaque utilisateur a sa file d'attente personnelle pour des tâches de dynamique classique. Ainsi, des étudiants ont utilisé la grille pour simuler l'argon liquide ou pour tester la validité de la loi des gaz parfaits en faisant des simulations à travers la grille de calcul."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Aider les étudiants à faire des simulations atomiques"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Université du Wisconsin - Milwaukee, Institut Max Planck"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -650,19 +742,19 @@ msgid ""
 "international organizations."
 msgstr "Recherche d'étoiles à neutrons en rotation (également appelées pulsars) en utilisant les données des détecteurs d'ondes gravitationnelles LIGO et GEO, et de l'observatoire radio d'Arecibo. Einstein at Home est un projet de l'Année Mondiale de la Physique 2005 soutenu par l'American Physical Society (APS) et par un certain nombre d'organisations internationales."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "Aider à détecter les pulsars et les ondes gravitationnelles "
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Organisation Européenne pour la Recherche Nucléaire)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Physique"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -671,22 +763,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "Le grand collisionneur de hadrons (LHC) est un accélérateur de particules au CERN, l'organisation européenne pour la recherche nucléaire, le plus grand laboratoire mondial de physique de la matière. C'est l’instrument le plus puissant jamais construit pour l'étude des propriétés de la matière. LHC at home exécute des simulations pour améliorer la conception du LHC et de ses détecteurs."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "Améliorer le design du Large Hadron Collider"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "Ce projet utilise la technologie de machines virtuelles développées par le CERN pour simuler sur les ordinateurs des participants des évènements physiques propres au LHC. Cela requiert l'installation de VirtualBox sur votre ordinateur"
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Simuler des collisions de particules à haute énergie"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -694,19 +786,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home utilise le calcul bénévole pour exécuter des simulations pour ATLAS, une expérience de physique des particules au Grand collisionneur de hadrons du CERN. ATLAS recherche de nouvelles particules et des procédés à l'aide de collisions frontales de protons à des énergies extraordinairement hautes."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "Simuler des collisions de particules à haute énergie pour le CERN"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Université de Californie, Berkeley"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrophysique, astrobiologie"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -715,106 +807,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Search for Extraterrestrial Intelligence) est un champ scientifique dont l'objectif est de détecter la vie intelligente en dehors de la Terre. Une approche, connue sous le nom de radio SETI, utilise des radiotélescopes pour écouter les signaux radio à bande passante étroite de l'espace. Ces signaux ne sont pas connus pour se produire naturellement, en détecter serait une preuve de la technologie extraterrestre."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "Rechercher des preuves de vie extraterrestre"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Applications multiples"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "Biologie moléculaire, informatique"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "Le Citizen Science Grid est dédié à soutenir un large éventail de projets de recherche et d'enseignement en utilisant le calcul bénévole et la science citoyenne."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "Soutenir la science avec l'Université du Dakota du Nord"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Académie Chinoise des Sciences"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Physique, biochimie et autres"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "L'objectif de CAS at home est d'encourager et d'assister les scientifiques en Chine à adopter les technologies de calcul bénévole distribué pour leur recherche."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at Home est hébergé par le Centre informatique de l’Institut de haute énergie physique (IHEP), Académie chinoise des Sciences, pour des scientifiques chinois avec des projets étudiant la structure des protéines, la nanotechnologie, la génomique du cancer et la physique des hautes énergies."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Aider les chercheurs chinois"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Mathématique, physique, évolution"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home est un adaptateur entre BOINC et plusieurs projets existants de calcul partagé : ECM, Muon, Evolution at home et distributed.net"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "Faire des recherches en mathématiques, en physique et sur l'évolution"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "Laboratoire MTA-SZTAKI de Systèmes parallèles et distribués (Hongrie)"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Projets de recherche européens"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "Le projet EGDeS at Home Beta intègre le calcul bénévole dans le réseau de grille de service de l'Europe en permettant aux grilles existantes d'envoyer des unités de travail pour être traitées par des bénévoles. Les projets scientifiques couverts par le projet comprennent les mathématiques, la physique, la biologie, etc."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Aider les chercheurs européens"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Centres de recherche et universités espagnols"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Plusieurs projets de recherche espagnols"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Recherche en physique, science des matériaux et biomédecine"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "Aider les chercheurs espagnols"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM Corporate Citizenship"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Recherches médicales, environnementales et autres recherches humanitaires"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -822,20 +895,20 @@ msgid ""
 "clean water and many more."
 msgstr "Pour aider des recherches cruciales à but non lucratives sur les problèmes les plus urgents de l'humanité en créant le plus grand réseau de calcul partagé bénévole. La recherche inclut le SIDA, le cancer, les maladies tropicales et orphelines, l'énergie solaire, l'eau propre et bien d’autres encore."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "Faire des recherches biomédicales et environnementales"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Mathématiques, informatique et jeux"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Mathématiques"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -845,64 +918,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home recherche des champs numériques ayant des propriétés particulières. L'application principale de cette recherche est du domaine de la théorie algébrique des nombres. Les théoriciens des nombres peuvent exploiter les données ayant des propriétés intéressantes pour les aider à formuler des conjectures sur les champs numériques. Cette recherche mènera à une meilleure compréhension des propriétés profondes des nombres, qui sont les briques de base de toutes les mathé [...]
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "Faire de la recherche en théorie algébrique des nombres"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Sciences informatiques"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "Résoudre des problèmes difficiles et pratiques importants (problèmes d'inversion de fonctions discrètes, optimisation discrète, bio-informatique, etc) qui peuvent être efficacement réduits à un problème de satisfaisabilité booléenne."
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Étude de la complexité des calculs informatiques"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Cryptographie et combinatoire"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "Exécuter les applications de distributed.net"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Chiffrement"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Tenter de décoder des messages des machines Enigma. Ces signaux ont été interceptés dans l'Atlantique nord en 1942 et sont réputés indéchiffrables."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "Décoder les messages des sous-marins allemands de la Deuxième Guerre mondiale"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
-msgstr "Étude de la conjecture de Collatz, une conjecture non résolue en mathématique."
+msgstr "Étude de la conjecture de Collatz, une conjecture non résolue en mathématique"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "Étudier la conjecture de Collatz"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
-msgstr "Université de l’État de Californie à Fullerton"
+msgstr "Université Fullerton de l’État de Californie"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Factorisation de grands nombres entiers"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -910,58 +983,62 @@ msgid ""
 "breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
 "NFS at Home is a continuation of that experience, only with integers that are "
 "hundreds of digits long."
-msgstr "NFS at Home est un projet de recherche qui utilise des ordinateurs connectés à Internet pour calculer des étapes de factorisation de grands nombres entiers (Sieve). En tant que jeune étudiant vous avez eu votre première expérience en décomposant un nombre entier en facteurs premiers, tels que 15 = 3 * 35 = 5 ou 5 * 7. NFS at Home est la continuation de cette expérience, mais avec des nombres entiers longs de centaines de chiffres."
+msgstr "NFS at Home est un projet de recherche qui utilise des ordinateurs connectés à Internet pour calculer des étapes de factorisation de grands nombres entiers (Sieve). Jeune écolier, vous l’avez expérimenté en décomposant un nombre entier en facteurs premiers, tels que 15 = 3 * 5 ou 35 = 5 * 7. NFS at Home est la continuation de cette expérience, mais avec des nombres entiers longs de centaines de chiffres."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "Étudier la factorisation des grands nombres entiers"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
-msgstr "Primegrid regroupe divers projets de recherche sur différentes formes de très grands nombres premiers, incluant des recherches sur les plus grands nombres premiers connus."
+msgstr "Primegrid regroupe divers projets de recherche de différentes formes sur de très grands nombres premiers, incluant des recherches sur les plus grands nombres premiers connus."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Rechercher de grands nombres entiers"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
-msgstr "Université de Hochschule RheinMain des sciences appliquées"
+msgstr "Université des sciences appliquées de Hochschule RheinMain"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Recherche de contre-exemples à deux conjectures liées à l'identification de nombres premiers"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Étudier les propriétés des nombres entiers"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "Laboratoire MTA-SZTAKI de Systèmes parallèles et distribués (Hongrie)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
-msgstr "Trouvez tous les systèmes de nombre binaires généralisés (dans lequel les bases sont des matrices et les chiffres sont des vecteurs) jusqu'à la dimension 11."
+msgstr "Trouvez tous les systèmes de nombres binaires généralisés (dans lequel les bases sont des matrices et les chiffres sont des vecteurs) jusqu'à la dimension 11."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Étudier la théorie des nombres"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "Test et comparaison des méthodes heuristiques pour obtenir des séparations d'algorithmes parallèles en travaillant avec des systèmes de CAO pour la conception de systèmes de contrôle logiques"
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Commentaires"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discuter"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
-msgstr "Les nouvelles sont disponibles en tant que %sflux RSS%s"
+msgstr "Les nouvelles sont disponibles en %sflux RSS%s"
diff --git a/locale/gl/BOINC-Project-Generic.po b/locale/gl/BOINC-Project-Generic.po
deleted file mode 100644
index 13f74b1..0000000
--- a/locale/gl/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6428 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2012-11-13 16:40 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: gl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:624
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/forum_forum.php:71
-#: ../user/sample_index.php:119
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/forum_forum.php:73 ../user/sample_index.php:118
-#: ../project.sample/project.inc:47
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:681
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:690
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1174 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:622 ../inc/forum.inc:627 ../inc/forum.inc:726
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/user.inc:329 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:624
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:627
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:630 ../inc/prefs.inc:690 ../inc/prefs.inc:692
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:630
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:636
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:639
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:684 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:684
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:707
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:728
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:746
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:757
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:779
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1054 ../user/forum_thread.php:187
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1054
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1056 ../user/forum_thread.php:193
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1056
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1061 ../user/forum_thread.php:226
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1061
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1066
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1073
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1077
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1082
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1115
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1125
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1132
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1139
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1144
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1172
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1173 ../inc/team.inc:120 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1175 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../inc/team.inc:120 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1234
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1239
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1250
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:55 ../inc/prefs.inc:625 ../inc/prefs.inc:1030
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:627 ../inc/prefs.inc:1031
-#: ../user/server_status.php:319
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:626 ../inc/prefs.inc:1032
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:83
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:87 ../inc/host.inc:92
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:87
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:92
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:98 ../inc/host.inc:645 ../inc/result.inc:614
-#: ../inc/team.inc:202 ../inc/team.inc:350 ../inc/user.inc:200
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-#: ../user/team_admins.php:62 ../user/team_change_founder_form.php:77
-#: ../user/team_email_list.php:64 ../user/top_users.php:49
-#: ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:102 ../inc/host.inc:104 ../inc/host.inc:216
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:104 ../inc/host.inc:333
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/result.inc:616
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:109 ../inc/host.inc:220 ../inc/host.inc:225
-#: ../inc/host.inc:654 ../inc/team.inc:94 ../inc/team.inc:207
-#: ../inc/team.inc:212 ../inc/team.inc:214 ../inc/team.inc:356
-#: ../inc/team.inc:361 ../inc/user.inc:122 ../inc/user.inc:136
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:110 ../inc/user.inc:122 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:112
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:114
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:115
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:117
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:119 ../inc/host.inc:660
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:122 ../inc/host.inc:229
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:126
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:134
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:137
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:137 ../inc/host.inc:140
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:144
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:144 ../inc/host.inc:147
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:147
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:153
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:158
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:153 ../inc/host.inc:160 ../inc/result.inc:207
-#: ../inc/result.inc:217 ../inc/result.inc:235 ../inc/result.inc:253
-#: ../inc/result.inc:269 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:29
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:158 ../inc/host.inc:160
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/host_app_versions.php:64
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:164
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:165
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:175 ../inc/host.inc:317 ../inc/user.inc:153
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:179 ../inc/host.inc:200
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:180
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:181
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:183
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:185
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:187
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:190
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:192 ../inc/host.inc:647
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:194
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:201 ../inc/host.inc:662
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:214
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:215 ../inc/host.inc:649 ../inc/team.inc:349
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:219 ../inc/host.inc:652
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:224 ../inc/team.inc:95 ../inc/team.inc:208
-#: ../inc/team.inc:217 ../inc/team.inc:219 ../inc/team.inc:355
-#: ../inc/team.inc:360 ../inc/user.inc:137
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/host.inc:657 ../inc/result.inc:47
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:231 ../inc/host.inc:658
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:232
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:296
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:316
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:321
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:493
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:500
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:506
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:573
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:576
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:579
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:596
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:600
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:605
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:607
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:642 ../inc/result.inc:623
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:655
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:711 ../user/merge_by_name.php:67
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:59 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:76
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:84
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:90
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:98
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:100 ../inc/prefs.inc:109 ../inc/prefs.inc:143
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:104
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:113
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:121
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:129
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:138
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:146
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:148
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:152
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:157
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:161
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:166
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:174 ../inc/prefs.inc:188
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:176 ../inc/prefs.inc:185
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:179
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:190 ../inc/prefs.inc:200 ../inc/prefs.inc:205
-#: ../inc/prefs.inc:210
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:193
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:195
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:198
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:203
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:208
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:217
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:222 ../inc/prefs.inc:227 ../inc/prefs.inc:269
-#: ../inc/util.inc:264
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:225
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:231
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:240
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:248
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:250 ../inc/prefs.inc:255
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:253
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:258
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:262
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:268
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:273
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:286
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:297
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:307
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:319
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:331
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:345
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:354
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:361
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:375
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:376
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:379
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:382
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:431
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:437
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1007
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1009
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:664 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:689 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:691 ../inc/prefs.inc:819
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:797 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:808
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:818 ../inc/prefs.inc:896
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:824
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:832 ../inc/prefs.inc:877
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:834 ../inc/prefs.inc:880
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:889
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:856 ../user/add_venue.php:43 ../user/add_venue.php:67
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:870
-msgid ""
-"These apply to all BOINC projects in which you participate.<br>\n"
-"             On computers participating in multiple projects, the most "
-"recently modified preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:874
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:926
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:930
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1018 ../inc/prefs.inc:1027
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:192
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:196
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:210
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:218 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:261
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:263
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:267
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:34
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:48
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:49 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:56
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:82
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:105 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:106 ../inc/result.inc:167 ../inc/result.inc:214
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:107
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:108
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:109 ../inc/result.inc:259
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:110 ../inc/result.inc:262
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:111 ../inc/result.inc:200
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:165 ../inc/result.inc:212 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:166 ../inc/result.inc:213 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:172
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:173
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:174
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:175
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:176
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:177
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:179
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:180 ../inc/result.inc:224 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:185 ../inc/result.inc:248
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:190
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:193
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:195
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:196
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:197 ../inc/result.inc:250
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:198 ../inc/result.inc:251
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:201
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:202 ../inc/result.inc:231 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:203 ../inc/result.inc:232 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:204 ../inc/result.inc:233
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:215 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:223 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:227
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:229
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:230 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:240 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:241 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:242
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:243
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:244 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:245 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:258
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:264
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:265
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:266
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:293
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:297
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:301
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:305
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:309
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:313
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:340 ../inc/result.inc:345 ../inc/result.inc:348
-#: ../inc/result.inc:351
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:345
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:348
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:351
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:357 ../inc/result.inc:617
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:358
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:359
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:361 ../user/server_status.php:246
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:362
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:363
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:364 ../inc/result.inc:628
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:365 ../inc/result.inc:710
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:615
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:618
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:619
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:620
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:621
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:622
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:624
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:625
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:626
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:627
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:642
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:645
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:692
-msgid "State"
-msgstr ""
-
-#: ../inc/team.inc:33
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:36 ../inc/team.inc:114 ../inc/team.inc:225
-#: ../inc/team.inc:365 ../inc/team.inc:449 ../inc/user.inc:206
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:106 ../user/edit_user_info_form.php:40
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:42 ../inc/team.inc:447
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:44
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:45 ../user/profile_menu.php:77 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:54
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:56
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:65 ../inc/team.inc:549 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:70
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:80
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:82 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:90
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:112
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:115 ../inc/team.inc:366 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:119 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:120 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:128
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:129
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:132
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:139
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:144
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:148 ../inc/team.inc:351
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:149 ../inc/team.inc:246
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:161
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:176
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:177
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:177 ../inc/team.inc:178 ../inc/team.inc:179
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:178
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:179
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:248
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:269 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:273 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:281
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:294
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:318
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:415
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:426
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:427
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:430
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:432 ../inc/team.inc:442
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:437
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:440
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:456
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:27
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:116
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:118
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:146
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../user/pending.php:64
-msgid "Pending credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../inc/user.inc:152 ../inc/user.inc:153
-#: ../inc/user.inc:218 ../inc/user.inc:243 ../inc/user.inc:327
-#: ../inc/user.inc:402 ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:152
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:164
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:166 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:168
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:170
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:184
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:199
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:201 ../user/edit_passwd_form.php:48
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:204 ../inc/user.inc:321
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:207
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:208 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:212
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:214 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:214
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:217 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:222
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:226
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:229
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:230 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:233
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:234 ../user/prefs.php:32
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:240 ../user/sample_index.php:114
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:504
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:327 ../inc/user.inc:329 ../user/server_status.php:396
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:336
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:122
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:124
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:194 ../user/login_form.php:37 ../user/login_form.php:62
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:195 ../user/create_account_form.php:38
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:196
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:238
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:247
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:267
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:270
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:273
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:434
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:503
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:559
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:770
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:773
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:791
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:792
-msgid "Error:"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:129 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:106
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:85
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/sample_index.php:109
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:49
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:38 ../user/create_account_action.php:40
-#: ../user/create_account_form.php:43
-msgid "Account creation is disabled"
-msgstr ""
-
-#: ../user/create_account_action.php:41
-msgid ""
-"Sorry, this project has disabled the creation of new accounts.\n"
-"Please try again later."
-msgstr ""
-
-#: ../user/create_account_action.php:53
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:77
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:80
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:91
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:95
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:108 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:113 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:134
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid "Account creation is currently disabled. Please try again later."
-msgstr ""
-
-#: ../user/create_account_form.php:53
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:69
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:100 ../user/edit_email_form.php:48
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:101
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:104
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:121
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:127
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:55 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:28 ../user/edit_email_form.php:52
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:39
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:49
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:28
-#: ../user/edit_passwd_form.php:58
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:44
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:45
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:51
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:52
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:56
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:57
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:29
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:34
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:37
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:45
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:49
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:31
-msgid ""
-"This project hasn\\'t created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:34
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:38
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:40
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:57
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:60
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:156
-#: ../user/forum_thread.php:272
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:127
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:136
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:157 ../user/forum_thread.php:273
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:169
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:170
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:176
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:177
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:188
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:194
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:200
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:201
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:206
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:207
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:213
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:214
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:219
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:220
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:227
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:232
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:233
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:243
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:244
-msgid "Export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:249
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:250
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:258 ../user/forum_thread.php:260
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-"<b>C:\\Program Files\\BOINC</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:182 ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/home.php:49 ../project.sample/project.inc:47
-msgid "Your account"
-msgstr ""
-
-#: ../user/host_app_versions.php:26
-msgid "nvidia GPU"
-msgstr ""
-
-#: ../user/host_app_versions.php:36
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:39
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:42
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:44
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:46
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:55
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:62
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:71
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:24 ../user/sample_index.php:74
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:44
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:70
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:75
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:80
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:82
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:86
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:92
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:94
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:110
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:57
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:63
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:33
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:45
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:74
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:78
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:84
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:85
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:79
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:97
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:35
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:44
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:51
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:55
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:57
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35 ../user/sample_index.php:116
-msgid "Profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:38
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:39
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:40
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:45
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:58
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:63
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:67
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:73
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:30
-msgid "No such task"
-msgstr ""
-
-#: ../user/result.php:32
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:102
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/sample_index.php:180
-msgid "User of the day"
-msgstr ""
-
-#: ../user/server_status.php:91
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:94
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:236
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:238
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:244
-msgid "Server status"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:257
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:263
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:266
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:300
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:301
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:302
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:304
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:308
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:314
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:331
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:336 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:356
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:373
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:380
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:398
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:403
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:392 ../user/server_status.php:408
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:414
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:423
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:426 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:428
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:429
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:430
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:30 ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:179
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:98
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:100
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:104
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:110 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:35
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:47
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:180
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:182
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:187
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:47
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:49
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:52
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:95
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/he/BOINC-Client.mo b/locale/he/BOINC-Client.mo
index aea4f79..d822fb5 100644
Binary files a/locale/he/BOINC-Client.mo and b/locale/he/BOINC-Client.mo differ
diff --git a/locale/he/BOINC-Client.po b/locale/he/BOINC-Client.po
old mode 100755
new mode 100644
index 8fd02f7..31f1221
--- a/locale/he/BOINC-Client.po
+++ b/locale/he/BOINC-Client.po
@@ -1,226 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Shmuel Shwartz, 2016-2017
 msgid ""
 msgstr ""
-"Project-Id-Version: BOINC-Client\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2012-04-26 04:05+0200\n"
-"Last-Translator: Ido <dj_legolas1 at hotmail.com>\n"
-"Language-Team: IOPanel.net\n"
-"Language: he\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-12 19:00+0000\n"
+"Last-Translator: Shmuel Shwartz\n"
+"Language-Team: Hebrew (http://www.transifex.com/boinc/boinc/language/he/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: he\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.1.6\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "הודעה ממנהל החשבונות"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "הודעה מהשרת"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
-msgstr ""
-"חלק מהמשימות מצריכות יותר זיכרון מהכמות המאושרת בהגדרות שלך. אנא בדוק את "
-"ההגדרות."
+msgstr "חלק מהמשימות מצריכות יותר זיכרון מהכמות המאושרת בהגדרות שלך. אנא בדוק את ההגדרות."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
-msgstr "ללא יכולת לרשום קובץ מצב; בדוק הרשאות תיקייה"
+msgstr "לא ניתן לרשום קובץ מצב; בדוק הרשאות תיקייה"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-msgstr "משתנה הסביבה HTTP_PROXY חייב לציין פרוקסי מסוג HTTP"
+msgstr "משתנה הסביבה HTTP_PROXY חייב לציין שרת מתווך HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "השתמשת בכתובת שגויה לפרוייקט זה. כשיהיה נוח, הסר פרוייקט זה והוסף %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "מיזם זה משתמש בכתובת אינטרנט ישנה.  בזמן הנוח לך, הסר את המיזם, ולאחר מכן הוסף את %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "שגיאת תחביר ב-app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "קובץ שהופנה מ-app_info.xml אינו קיים:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "גרסה חדשה של BOINC זמינה."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
-msgstr ""
+msgstr "הורדה"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "אינה יכולה להשתמש לצורך חישוב CUDA או OpenCL עם CUDA מנהל התקן 6.5 או מאוחר יותר"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "טקסט לא צפוי ב-cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "תג לא מוכר ב-cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "תג התחלה חסר  ב-cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "שגיאה באפשרויות cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "תג סיום חסר ב-cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
-msgid "Invalid or missing account key.  To fix, remove and add this project."
-msgstr "מפתח החשבון אינו נכון או חסר. לתיקון, הסר והוסף פרוייקט זה מחדש."
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "כדי לפתור זאת, באפשרותך "
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "שנה את העדפות המיזם באתר האינטרנט של המיזם"
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "מפתח קוד רישום שגוי. לתיקון, הסר והוסף פרוייקט זה מחדש."
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "הסר מעבדים גרפיים מוחרגים בקובץ ה-cc_config.xml שלך"
 
-#: ../sched/handle_request.cpp:859
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "שנה את ההגדרות שלך באתר מנהל החשבון"
+
+#: sched/handle_request.cpp:317
+msgid "Invalid or missing account key.  To fix, remove and add this project."
+msgstr "מפתח החשבון אינו נכון או חסר. לתיקון, הסר והוסף מיזם זה מחדש."
+
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
-msgstr "הפרוייקט שינה את מפתח האבטחה שלו. הסר והוסף פרוייקט זה מחדש."
+msgstr "המיזם שינה את מפתח האבטחה שלו. הסר והוסף מיזם זה מחדש."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
-msgstr "פרוייקט זה לא תומך במערכת הפעלה"
+msgstr "מיזם זה לא תומך במערכת הפעלה"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
-msgstr "פרוייקט זה לא תומך בסוג המעבד"
+msgstr "מיזם זה לא תומך בסוג המעבד"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
-msgstr "גרסת קליינט ה-BOINC ישנה מידי. אנא התקן את הגירסה הנוכחית."
+msgstr "גרסת לקוח ה-BOINC ישנה מידי. אנא התקן את הגירסה הנוכחית."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
-msgstr "פרוייקט זה אינו תומך במחשבים מסוג"
+msgstr "מיזם זה אינו תומך במחשבים מסוג"
 
-#: ../sched/sched_send.cpp:1092
-msgid "Upgrade to the latest driver to process tasks using your computer's GPU"
+#: sched/sched_send.cpp:1107
+msgid ""
+"Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "עדכן למנהלי ההתקן האחרונים כדי לבצע חישובים בעזרת המעבד הגרפי"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
-msgstr ""
-"עדכן למנהלי ההתקן האחרונים כדי להשתמש בכל היישומים הזמינים עבור המעבד הגרפי"
+msgstr "עדכן למנהלי ההתקן האחרונים כדי להשתמש בכל היישומים הזמינים עבור המעבד הגרפי"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
-"A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to "
-"the current version"
-msgstr ""
-"יש צורך בגרסה חדשה יותר של BOINC על מנת להשתמש במעבד הגרפי של NVIDIA; אנא "
-"עדכן לגרסה הנוכחית"
+"A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
+" the current version"
+msgstr "יש צורך בגרסה חדשה יותר של BOINC על מנת להשתמש במעבד הגרפי של NVIDIA; אנא עדכן לגרסה הנוכחית"
 
-# 94%
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
-#, c-format, fuzzy
 msgid "An %s GPU is required to run tasks for this project"
-msgstr "נדרש מעבד גרפי של  ATI להרצת משימות מפרוייקט זה"
+msgstr "נדרש מעבד גרפי של %s להרצת משימות ממיזם זה"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "אין משימות זמינות ליישומים שבחרת."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
-msgstr "מחשבך אינו נתמך ע\"י פרוייקט זה"
+msgstr "מחשבך אינו נתמך ע\"י מיזם זה"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "נדרשת גרסה חדשה של BOINC; אנא התקן גרסה נוכחית"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
-msgstr ""
-
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "שם יישום לא מוכר ב-app_info.xml"
+msgstr "משימות זמינות עבור %s, אך ההעדפות שלך מוגדרות לא לקבל אותם"
 
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "קובץ ה- app_info.xml שלך אינו מכיל גרסה שמישה של"
-
-#~ msgid "Download it."
-#~ msgstr "הורד אותה."
-
-#~ msgid "An NVIDIA or ATI GPU is required to run tasks for this project"
-#~ msgstr "נדרש מעבד גרפי של NVIDIA או ATI להרצת משימות מפרוייקט זה"
-
-#~ msgid "An NVIDIA GPU is required to run tasks for this project"
-#~ msgstr "נדרש מעבד גרפי של NVIDIA להרצת משימות מפרוייקט זה"
-
-#~ msgid "An ATI GPU is required to run tasks for this project"
-#~ msgstr "נדרש מעבד גרפי של  ATI להרצת משימות מפרוייקט זה"
-
-#~ msgid ""
-#~ "Tasks for NVIDIA GPU are available, but your preferences are set to not "
-#~ "accept them"
-#~ msgstr ""
-#~ "משימות עבור מעבד גרפי של NVIDIA זמינות, אך ההעדפות שלך מוגדרות ללא לקבל אותן"
-
-#~ msgid ""
-#~ "Tasks for ATI GPU are available, but your preferences are set to not accept "
-#~ "them"
-#~ msgstr ""
-#~ "משימות עבור מעבד גרפי של ATI זמינות, אך ההעדפות שלך מוגדרות ללא לקבל אותן"
-
-#~ msgid ""
-#~ "Tasks for CPU are available, but your preferences are set to not accept them"
-#~ msgstr "משימות למעבד זמינות, אך ההעדפות שלך מוגדרות ללא לקבל אותן"
-
-#~ msgid "error"
-#~ msgstr "שגיאה"
-
-#~ msgid "Can't resolve hostname in remote_hosts.cfg"
-#~ msgstr "לא יכול לפענח שם-מחשב ב-remote_hosts.cfg"
-
-#~ msgid "is not available for"
-#~ msgstr "אינו זמין עבור"
-
-#~ msgid "Notice from BOINC"
-#~ msgstr "התראה מ-BOINC"
-
-#~ msgid "Message from"
-#~ msgstr "הודעה מאת"
-
-#~ msgid ""
-#~ "You may have an outdated code signing key.  Try attaching and reattaching "
-#~ "this project."
-#~ msgstr "מפתח חתימת הקוד שלך פג תוקף. נסה להתנתק ולהתחבר מחדש לפרוייקט."
-
-#~ msgid "XML syntax error in"
-#~ msgstr "שגיאת תחביר XML ב- "
-
-#~ msgid "Unparsed tag in"
-#~ msgstr "לא ניתן לפענח את התג ב-"
-
-#~ msgid ""
-#~ "Your preference for network connection interval is too high for this "
-#~ "project"
-#~ msgstr "ההעדפות שלך למרווחי ביחורים לרשת גבוהים מידי בפרוייקט זה"
diff --git a/locale/he/BOINC-Drupal.po b/locale/he/BOINC-Drupal.po
new file mode 100644
index 0000000..dbb7a64
--- /dev/null
+++ b/locale/he/BOINC-Drupal.po
@@ -0,0 +1,1752 @@
+# LANGUAGE translation of PROJECT
+# Copyright (c) YEAR NAME <EMAIL at ADDRESS>
+# 
+# Translators:
+# Shmuel Shwartz, 2016-2017
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2017-01-13 13:49+0000\n"
+"Last-Translator: Shmuel Shwartz\n"
+"Language-Team: Hebrew (http://www.transifex.com/boinc/boinc/language/he/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: he\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Reject profile"
+msgstr "דחה פרופיל"
+
+msgid "Ban user"
+msgstr "החרם משתמש"
+
+msgid "I'm new"
+msgstr "אני חדש"
+
+msgid "I'm a BOINC user"
+msgstr "אני משתמש BOINC"
+
+msgid "Authenticator login"
+msgstr "כניסת מאמת"
+
+msgid ""
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "עליך להרוויח עוד @count נקודות זכות כדי שתוכל לכתוב תגובות באתר זה."
+
+msgid "Generic"
+msgstr "גנרי"
+
+msgid "Home"
+msgstr "בית"
+
+msgid "Work"
+msgstr "עבודה"
+
+msgid "School"
+msgstr "בית ספר"
+
+msgid "yes"
+msgstr "כן"
+
+msgid "no"
+msgstr "לא"
+
+msgid "Resource settings"
+msgstr "הגדרות משאבים"
+
+msgid "Resource share"
+msgstr "שתוף משאבים"
+
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "קובע את היחס של משאבי המחשב המוקצים למיזם זה. דוגמה: אם תשתתף בשני מיזמי BOINC עם שיתוף משאבים של 100 ו-200, הראשון יקבל 1/3 מהמשאבים שלך והשני יקבל 2/3."
+
+msgid "Use CPU"
+msgstr "השתמש במעבד"
+
+msgid "Enforced by version @number"
+msgstr "נאכף על-ידי גירסה @number"
+
+msgid "Use NVIDIA GPU"
+msgstr "השתמש במעבד גרפי NVIDIA"
+
+msgid "Use ATI GPU"
+msgstr "השתמש במעבד גרפי ATI"
+
+msgid "Use INTEL GPU"
+msgstr "השתמש במעבד גרפי Intel"
+
+msgid "Beta settings"
+msgstr "הגדרות בטא"
+
+msgid "Run test applications?"
+msgstr "הפעל יישומי בדיקה?"
+
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "זה עוזר לנו לפתח יישומים, אך עלול לגרום לעבודות להיכשל במחשב שלך"
+
+msgid " Default value: @default"
+msgstr " ערך ברירת מחדל: @default"
+
+msgid "Applications"
+msgstr "יישומים"
+
+msgid "Default set"
+msgstr "קביעת ברירת המחדל"
+
+msgid "Set used for new computers"
+msgstr "קביעה המשמשת עבור מחשבים חדשים"
+
+msgid "Save changes"
+msgstr "שמור שינויים"
+
+msgid "Cancel"
+msgstr "ביטול"
+
+msgid "Show comparison view"
+msgstr "הצגת השוואה"
+
+msgid "Comment form"
+msgstr "תגובה מאת"
+
+msgid "Logout"
+msgstr "יציאה מהמערכת"
+
+msgid "Join now"
+msgstr "הצטרף עכשיו"
+
+msgid "Account"
+msgstr "חשבון"
+
+msgid "Server status"
+msgstr "מצב השרת"
+
+msgid "Language"
+msgstr "שפה"
+
+msgid "Create content"
+msgstr "צור תוכן"
+
+msgid "General settings"
+msgstr "הגדרות כלליות"
+
+msgid "Name"
+msgstr "שם"
+
+msgid "Time zone"
+msgstr "אזור זמן"
+
+msgid "Notification settings"
+msgstr "הגדרות הודעות"
+
+msgid "Receive email notification for private messages?"
+msgstr "קבל הודעות דוא\"ל עבור הודעות פרטיות?"
+
+msgid "Receive email notification for friend requests?"
+msgstr "קבל הודעות דוא\"ל עבור בקשות חברות?"
+
+msgid "Language settings"
+msgstr "הגדרות שפה"
+
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "שפת ברירת המחדל של חשבון זה עבור הודעות דוא\"ל ושפה מועדפת עבור הצגת האתר."
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "אם יש לך <a href=\"@gravatar-check\">Gravatar תקף</a> המשויך לכתובת הדוא\"ל שלך, הוא ישמש עבור תמונת המשתמש שלך."
+
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "ה-Gravatar שלך לא יוצג אם העלאת תמונת משתמש."
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "אם יש לך <a href=\"@gravatar-check\">Gravatar תקף</a> המשויך לכתובת הדוא\"ל שלך, השתמש בו עבור תמונת המשתמש שלך."
+
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar לא יוצג אם יצגן (avatar) מועלה."
+
+msgid "Avatar settings"
+msgstr "הגדרות יצגן (avatar)"
+
+msgid "This is not available until your profile is set up."
+msgstr "אינו זמין עד שהפרופיל שלך יוגדר."
+
+msgid "Create a profile"
+msgstr "צור פרופיל"
+
+msgid "Upload an avatar"
+msgstr "העלה יצגן (avatar)"
+
+msgid "Forum settings"
+msgstr "הגדרות פורום"
+
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "בנושאי דיון, הצג @comments_per_page לכל היותר"
+
+msgid "comments per page"
+msgstr "תגובות לדף"
+
+msgid "Sort comments in discussions"
+msgstr "מיין תגובות בדיונים"
+
+msgid "Newest post first"
+msgstr "רשומות חדשות ראשונות"
+
+msgid "Oldest post first"
+msgstr "רשומות ישנות ראשונות"
+
+msgid "Signature"
+msgstr "חתימה"
+
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "החתימה שלך תוצג בפומבי בסוף התגובות שלך."
+
+msgid "Hide signatures in forums"
+msgstr "הסתר חתימות בפורומים"
+
+msgid "Privacy settings"
+msgstr "הגדרות פרטיות"
+
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "הרשה ל- at project ולצוות שלך (אם יש) לשלוח לך דוא\"ל?"
+
+msgid "Should @project show your computers on its web site?"
+msgstr "הרשה ל- at project להציג את המחשבים שלך באתר האינטרנט שלו?"
+
+msgid "Id"
+msgstr "מזהה"
+
+msgid "Founder"
+msgstr "מייסד"
+
+msgid "Country"
+msgstr "מדינה"
+
+msgid "Recent average credit"
+msgstr "ממוצע נקודות זכות לאחרונה"
+
+msgid "Members"
+msgstr "חברים"
+
+msgid "Total Credit"
+msgstr "סך נקודות זכות"
+
+msgid "User ID"
+msgstr "זיהוי משתמש"
+
+msgid "User"
+msgstr "משתמש"
+
+msgid "Admin since"
+msgstr "מנהל מאז"
+
+msgid "Team ID"
+msgstr "מזהה צוות"
+
+msgid "User joined"
+msgstr "המשתמש הצטרף"
+
+msgid "Timestamp"
+msgstr "חותמת זמן"
+
+msgid "Account Key"
+msgstr "מפתח חשבון"
+
+msgid "Member since"
+msgstr "חבר מאז"
+
+msgid "CPID"
+msgstr "מזהה מיזם מוצלב"
+
+msgid "Email Address"
+msgstr "כתובת דוא\"ל"
+
+msgid "Password Hash"
+msgstr "גיבוב (hash) סיסמה"
+
+msgid "Postal Code"
+msgstr "מיקוד"
+
+msgid "Send Email"
+msgstr "דוא\"ל נשלח"
+
+msgid "Show Hosts"
+msgstr "הצג מארחים"
+
+msgid "URL"
+msgstr "כתובת אינטרנט"
+
+msgid "Computer ID"
+msgstr "מזהה מחשב"
+
+msgid "Location"
+msgstr "מיקום"
+
+msgid "While BOINC running, % of time work is allowed"
+msgstr "בזמן ש-BOINC רץ, מותרת עבודה ב-% מהזמן."
+
+msgid "Average turnaround time"
+msgstr "זמן סבב ממוצע"
+
+msgid "Created"
+msgstr "נוצר"
+
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "בזמן ש-BOINC רץ, ב-% מהזמן יש למארח גישה לאינטרנט."
+
+msgid "Average CPU efficiency"
+msgstr "יעילות מעבד ממוצעת"
+
+msgid "Free disk space"
+msgstr "שטח דיסק פנוי"
+
+msgid "Total disk space"
+msgstr "שטח דיסק כולל"
+
+msgid "Task duration correction factor"
+msgstr "גורם התיקון של משך המשימה"
+
+msgid "Avg. credit"
+msgstr "ממוצע נקודות זכות"
+
+msgid "External IP address"
+msgstr "כתובת IP חיצונית"
+
+msgid "Cross project ID"
+msgstr "מזהה מיזם מוצלב"
+
+msgid "Last IP address"
+msgstr "כתובת IP אחרונה"
+
+msgid "Cache"
+msgstr "מטמון"
+
+msgid "Memory"
+msgstr "זיכרון"
+
+msgid "Swap space"
+msgstr "שטח החלפה"
+
+msgid "Maximum daily WU quota per CPU"
+msgstr "המיכסה המרבית של יחידות עבודה יומיות למעבד"
+
+msgid "Average download rate"
+msgstr "קצב הורדה ממוצע"
+
+msgid "Average upload rate"
+msgstr "קצב העלאה ממוצע"
+
+msgid "Same IP address count"
+msgstr "ספירת כתובת IP זהה"
+
+msgid "% of time BOINC client is running"
+msgstr "% מהזמן שלקוח BOINC רץ"
+
+msgid "Operating system"
+msgstr "מערכת הפעלה"
+
+msgid "Operating system version"
+msgstr "גרסת מערכת ההפעלה"
+
+msgid "Measured floating point speed"
+msgstr "מהירות מחושבת של נקודה צפה"
+
+msgid "Measured integer speed"
+msgstr "מהירות מחושבת של מספר שלם"
+
+msgid "CPU model"
+msgstr "דגם מעבד"
+
+msgid "Number of processors"
+msgstr "מספר מעבדים"
+
+msgid "CPU"
+msgstr "מעבד"
+
+msgid "Number of times client has contacted server"
+msgstr "מספר הפעמים שהלקוח יצר קשר עם השרת"
+
+msgid "Last contact"
+msgstr "יצירת קשר אחרונה"
+
+msgid "Serial number"
+msgstr "מספר סידורי"
+
+msgid "Timezone"
+msgstr "אזור זמן"
+
+msgid "Platform ID"
+msgstr "מזהה פלטפורמה"
+
+msgid "Task ID"
+msgstr "מזהה משימה"
+
+msgid "Workunit ID"
+msgstr "מזהה יחידת עבודה"
+
+msgid "Host ID"
+msgstr "מזהה מארח"
+
+msgid "Application ID"
+msgstr "מזהה יישום"
+
+msgid "Application version"
+msgstr "גרסת יישום"
+
+msgid "Claimed credit"
+msgstr "נקודות זכות שנתבעו"
+
+msgid "Client state"
+msgstr "מצב לקוח"
+
+msgid "CPU time"
+msgstr "זמן מעבד"
+
+msgid "Run time"
+msgstr "זמן ריצה"
+
+msgid "Exit status"
+msgstr "מצב יציאה"
+
+msgid "Granted credit"
+msgstr "נקודות זכות מוענקות"
+
+msgid "Outcome"
+msgstr "תוצאה"
+
+msgid "Received time"
+msgstr "זמן קבלה"
+
+msgid "Report deadline"
+msgstr "מועד אחרון לדיווח"
+
+msgid "Sent"
+msgstr "נשלח"
+
+msgid "Server state"
+msgstr "מצב השרת"
+
+msgid "Stderr out"
+msgstr "פלט Stderr"
+
+msgid "Validation state"
+msgstr "מצב אימות"
+
+msgid "App ID"
+msgstr "מזהה יישום"
+
+msgid "Canonical credit"
+msgstr "נקודות זכות קנוניות"
+
+msgid "Canonical result ID"
+msgstr "מזהה תוצאה קנוני"
+
+msgid "Created time"
+msgstr "זמן שנוצר"
+
+msgid "Error mask"
+msgstr "מסיכת שגיאה"
+
+msgid "Minimum quorum"
+msgstr "מניין מזערי"
+
+msgid "Max error tasks"
+msgstr "משימות שגויות מרביות"
+
+msgid "Max success tasks"
+msgstr "משימות מצליחות מרביות"
+
+msgid "Max total tasks"
+msgstr "סך משימות מרביות"
+
+msgid "Needs validation"
+msgstr "זקוק לאימות"
+
+msgid "Initial replication"
+msgstr "שכפול ראשוני"
+
+msgid "Target number of results"
+msgstr "מספר היעד של תוצאות"
+
+msgid "Application version ID"
+msgstr "מזהה גרסת יישום"
+
+msgid "Plan class"
+msgstr "מחלקת תוכנית"
+
+msgid "Version number"
+msgstr "מספר גרסה"
+
+msgid "Computer"
+msgstr "מחשב"
+
+msgid "App version ID"
+msgstr "מזהה גרסת יישום"
+
+msgid "Consecutive valid tasks"
+msgstr "משימות חוקיות עוקבות"
+
+msgid "Number of tasks completed"
+msgstr "מספר משימות שהסתיימו"
+
+msgid "Max tasks per day"
+msgstr "משימות מרביות ליום"
+
+msgid "Number of tasks today"
+msgstr "מספר משימות היום"
+
+msgid "Manage subscriptions"
+msgstr "נהל מינויים"
+
+msgid "Avg credit"
+msgstr "ממוצע נקודות זכות"
+
+msgid "Total credit"
+msgstr "סך נקודות זכות"
+
+msgid "More"
+msgstr "עוד"
+
+msgid "Tasks"
+msgstr "משימות"
+
+msgid "Computers hidden"
+msgstr "מחשבים מוסתרים"
+
+msgid "This user has chosen not to show information about their computers."
+msgstr "משתמש זה בחר שלא להציג מידע אודות המחשבים שלו."
+
+msgid "no projects..."
+msgstr "אין מיזמים..."
+
+msgid "Moderation"
+msgstr "הנחייה"
+
+msgid "Unvetted profiles"
+msgstr "פרופילים לא בדוקים"
+
+msgid "Inbox"
+msgstr "דואר נכנס"
+
+msgid "Compose new"
+msgstr "כתוב חדש"
+
+msgid "Posts contributed"
+msgstr "רשומות שנתרמו"
+
+msgid "Friends (@count)"
+msgstr "חברים (@count)"
+
+msgid "Welcome back!"
+msgstr "ברוכים השבים!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home היא תוכנית המשתמשת בזמן חוסר פעילות של המחשב שלך להפעלת שומר מסך כדי לחפש גלי כבידה של כוכבי נייטרונים מסוחררים (הנקראים גם פולסרים), באמצעות נתונים מגלאי גלי הכבידה LIGO."
+
+msgid "Learn more"
+msgstr "למד עוד"
+
+msgid "View account"
+msgstr "הצג חשבון"
+
+msgid "User of the day"
+msgstr "משתמש היום"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "מעל 500,000 מתנדבים ועוד היד נטויה."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "מקינטוש"
+
+msgid "Linux"
+msgstr "לינוקס"
+
+msgid "Credits per day"
+msgstr "נקודות זכות ליום"
+
+msgid "View user profile."
+msgstr "הצג פרופיל משתמש."
+
+msgid "Profile awaiting moderator approval"
+msgstr "הפרופיל ממתין לאישור המנחה"
+
+msgid "Background"
+msgstr "רקע"
+
+msgid "Opinion"
+msgstr "חוות דעת"
+
+msgid "Enter your password to save changes"
+msgstr "הזן את הסיסמה שלך כדי לשמור את השינויים"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "הזן את הסיסמה הנוכחית שלך אם אתה משנה את כתובת הדוא\"ל או הסיסמה שלך."
+
+msgid "BOINC user ID"
+msgstr "מזהה משתמש BOINC"
+
+msgid "Drupal user ID"
+msgstr "מזהה משתמש Drupal"
+
+msgid "Account key"
+msgstr "מפתח חשבון"
+
+msgid "Weak account key"
+msgstr "מפתח חשבון חלש"
+
+msgid "Cross-project ID"
+msgstr "מזהה מיזם מוצלב"
+
+msgid "Change password"
+msgstr "שנה סיסמה"
+
+msgid "Presets"
+msgstr "קביעות מוגדרות מראש"
+
+msgid "Standard"
+msgstr "רגיל"
+
+msgid "Maximum"
+msgstr "מרב"
+
+msgid "Green"
+msgstr "ירוק"
+
+msgid "Minimum"
+msgstr "מזער"
+
+msgid "Custom"
+msgstr "מותאם אישית"
+
+msgid "Update preset"
+msgstr "עדכן קבוע מראש"
+
+msgid "Advanced settings"
+msgstr "הגדרות מתקדמות"
+
+msgid "Processor usage"
+msgstr "ניצול מעבד"
+
+msgid "Run while computer is on battery power?"
+msgstr "הרץ בזמן שהמחשב מופעל על סוללה?"
+
+msgid "Only applies to portable computers"
+msgstr "חל רק במחשבים ניידים"
+
+msgid "Run while computer is in use?"
+msgstr "הרץ כאשר המחשב נמצא בשימוש?"
+
+msgid "Run GPU work while computer is in use?"
+msgstr "הרץ עבודת מעבד גרפי כאשר המחשב נמצא בשימוש?"
+
+msgid "\"In use\" means mouse/keyboard activity in last"
+msgstr "\"בשימוש\" פירושו פעילות עכבר/מקלדת ב-"
+
+msgid "minutes"
+msgstr "דקות"
+
+msgid "Suspend work if no mouse/keyboard activity in last"
+msgstr "השעה עבודה אם אין פעילות עכבר/מקלדת ב-"
+
+msgid "Needed to enter low-power mode on some computers"
+msgstr "צריך להיכנס למצב צריכת חשמל נמוכה במחשבים מסויימים"
+
+msgid "Suspend work if CPU usage is above"
+msgstr "השעה עבודה אם השימוש במעבד עולה על"
+
+msgid "0 means no restriction. Enforced by version @number"
+msgstr "0 פירושו ללא הגבלה. נאכף על-ידי גירסה @number"
+
+msgid "Do work only between the hours of:"
+msgstr "עבוד רק בין השעות:"
+
+msgid "and"
+msgstr "ו-"
+
+msgid "No restriction if equal"
+msgstr "ללא הגבלה אם שווה"
+
+msgid "Leave tasks in memory while suspended?"
+msgstr "השאר משימות בזיכרון כאשר הן מושעות?"
+
+msgid "Suspended tasks will consume swap space if \"yes\""
+msgstr "משימות מושעות יצרכו שטח ההחלפה אם \"כן\""
+
+msgid "Switch between tasks every"
+msgstr "החלף בין משימות כל"
+
+msgid "Recommended: @period minutes"
+msgstr "מומלץ: @period דקות"
+
+msgid "On multiprocessors, use at most"
+msgstr "במעבדים מרובים, השתמש לכל היותר"
+
+msgid "processors"
+msgstr "מעבדים"
+
+msgid "Set to 0 for no limit"
+msgstr "הגדר 0 עבור ללא הגבלה"
+
+msgid "% of the processors"
+msgstr "% של המעבדים"
+
+msgid "Use at most"
+msgstr "השתמש לכל היותר ב-"
+
+msgid "% of the CPU time"
+msgstr "% מזמן המעבד"
+
+msgid "Can be used to reduce CPU heat"
+msgstr "ניתן לשימוש להפחתת חום המעבד"
+
+msgid "Disk and memory usage"
+msgstr "ניצול דיסק וזכרון"
+
+msgid "Disk: use at most"
+msgstr "דיסק: השתמש לכל היותר"
+
+msgid "Disk: leave free at least"
+msgstr "דיסק: השאר שטח פנוי של לפחות"
+
+msgid "Values smaller than @number are ignored"
+msgstr "ערכים קטנים מ- at number לא ייחשבו"
+
+msgid "% of total"
+msgstr "% מהסך הכללי"
+
+msgid "Tasks checkpoint to disk at most every"
+msgstr "משימות יבצעו נקודות ביקורת בדיסק לכל היותר כל"
+
+msgid "seconds"
+msgstr "שניות"
+
+msgid "Swap space: use at most"
+msgstr "שטח החלפה: השתמש לכל היותר"
+
+msgid "Memory: when computer is in use, use at most"
+msgstr "זכרון: כאשר המחשב נמצא בשימוש, השתמש לכל היותר"
+
+msgid "Memory: when computer is not in use, use at most"
+msgstr "זכרון: כאשר המחשב לא נמצא בשימוש, השתמש לכל היותר"
+
+msgid "Network usage"
+msgstr "ניצול רשת"
+
+msgid "Computer is connected to the Internet about every"
+msgstr "המחשב מחובר לאינטרנט בערך כל"
+
+msgid "days"
+msgstr "ימים"
+
+msgid ""
+"Leave blank or 0 if always connected. @project will try to maintain at least"
+" this much work."
+msgstr "השאר ריק או 0 אם תמיד מחובר. @project ינסה לשמור כמות עבודה זו לפחות."
+
+msgid "Maintain enough work for an additional"
+msgstr "שמור עבודה מספיקה לעוד"
+
+msgid "Confirm before connecting to Internet?"
+msgstr "לאשר לפני חיבור לאינטרנט?"
+
+msgid "Matters only if you have a modem, ISDN, or VPN connection"
+msgstr "חשוב רק אם יש לך חיבור מודם, ISDN, או VPN"
+
+msgid "Disconnect when done?"
+msgstr "התנתק בסיום?"
+
+msgid "Maximum download rate"
+msgstr "קצב הורדה מרבי"
+
+msgid "Maximum upload rate"
+msgstr "קצב העלאה מרבי"
+
+msgid "Use network only between the hours of:"
+msgstr "השתמש ברשת רק בין השעות:"
+
+msgid "Transfer at most"
+msgstr "העבר לכל היותר"
+
+msgid "Skip image file verification?"
+msgstr "דלג על אימות קובץ התמונה?"
+
+msgid ""
+"Check this ONLY if your Internet provider modifies image files (UMTS does "
+"this, for example). Skipping verification reduces the security of BOINC."
+msgstr "סמן את זה אך ורק אם ספק האינטרנט משנה את קבצי התמונה (UMTS עושה זאת, לדוגמה). דילוג על אימות מפחית את האבטחה של BOINC."
+
+msgid "search"
+msgstr "חפש"
+
+msgid "What is @this_project?"
+msgstr "מהו @this_project?"
+
+msgid "Login"
+msgstr "היכנס"
+
+msgid "BOINC"
+msgstr "BOINC"
+
+msgid "Project"
+msgstr "מיזם"
+
+msgid "No @type tasks"
+msgstr "אין משימות @type"
+
+msgid "There are no tasks of this type on record"
+msgstr "אין משימות מסוג זה ברשימה"
+
+msgid "Details"
+msgstr "פרטים"
+
+msgid "Password"
+msgstr "סיסמה"
+
+msgid "Enter the password that accompanies your username."
+msgstr "הזן את הסיסמה המתלווה לשם המשתמש שלך."
+
+msgid "Request new password"
+msgstr "בקש סיסמה חדשה"
+
+msgid "Mark all topics read"
+msgstr "סמן את כל הנושאים כנקראו"
+
+msgid "Mark all forums read"
+msgstr "סמן את כל הפורומים כנקראו"
+
+msgid ""
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
+msgstr "שגיאת אימות אנוש: מזהה שיח של אימות אנוש לא ידוע. אם הבעיה נמשכת, פנה אל מנהל האתר."
+
+msgid "The answer you entered for the CAPTCHA was not correct."
+msgstr "התשובה שהזנת לאימות האנוש לא הייתה נכונה."
+
+msgid "Access denied. You must login to view this page."
+msgstr "הגישה נדחתה. עליך להיכנס כדי להציג דף זה."
+
+msgid "You are not authorized to access this page."
+msgstr "אינך מורשה לגשת לדף זה."
+
+msgid "Disable rich-text"
+msgstr "השבת טקסט עשיר"
+
+msgid "Enable rich-text"
+msgstr "אפשר טקסט עשיר"
+
+msgid "Teams"
+msgstr "צוות"
+
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "משתתפי @project עשויים ליצור צוותים. תוכל להשתייך רק לצוות אחד. באפשרותך להצטרף או לפרוש מצוות בכל עת. להצטרפות לצוות, בקר בדף הצוות ולחץ על \"הצטרף לצוות\". בכל צוות יש מייסד אשר עשוי ל-:"
+
+msgid "access team members' email addresses"
+msgstr "גש לכתובות הדוא\"ל של חברי הצוות"
+
+msgid "edit the team's name and description"
+msgstr "ערוך את שם הצוות ותיאורו"
+
+msgid "add or remove team admins"
+msgstr "הוסף או הסר מנהלי צוות"
+
+msgid "remove members from the team"
+msgstr "הסר חברים מהצוות"
+
+msgid "disband a team if it has no members"
+msgstr "פרק צוות אם אין בו חברים"
+
+msgid "Search teams"
+msgstr "חפש צוותים"
+
+msgid "Create a new team"
+msgstr "צור צוות חדש"
+
+msgid ""
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "אם אינך מצליח לאתר צוות המתאים לך, באפשרותך ליצור צוות."
+
+msgid "You must earn 1 more credit!"
+msgstr "עליך להרוויח עוד 1 נקודות קרדיט!"
+
+msgid "@count million ops/sec"
+msgstr "@count מיליון פעולות/שניה"
+
+msgid "@rate KiB/sec"
+msgstr "@rate ק\"ב/שניה"
+
+msgid "@count days"
+msgstr "@count ימים"
+
+msgid "Stderr output"
+msgstr "פלט Stderr"
+
+msgid "Email address"
+msgstr "כתובת דוא\"ל"
+
+msgid "Enter your @s email address."
+msgstr "הזן את כתובת הדוא\"ל של @s שלך."
+
+msgid "Log in"
+msgstr "היכנס"
+
+msgid "Sorry, unrecognized email address or password."
+msgstr "מצטערים, כתובת הדוא\"ל או הסיסמה אינם מזוהים."
+
+msgid "Have you forgotten your password?"
+msgstr "האם שכחת את הסיסמה שלך?"
+
+msgid "No results found..."
+msgstr "לא נמצאו תוצאות..."
+
+msgid "Anonymous"
+msgstr "עלום שם"
+
+msgid "Forgot password"
+msgstr "שכחתי סיסמה"
+
+msgid "authenticator-based login"
+msgstr "כניסה מבוססת מאמת"
+
+msgid ""
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "הזן את כתובת הדוא\"ל שלך כדי לקבל הנחיות לאיפוס הסיסמה שלך (או השתמש ב-!authenticator_login)."
+
+msgid "Send"
+msgstr "שלח"
+
+msgid "Submitted by !username on !datetime"
+msgstr "נשלח על-ידי !username ב-"
+
+msgid "Send message"
+msgstr "שלח הודעה"
+
+msgid "Add as friend"
+msgstr "הוסף כחבר"
+
+msgid "Website"
+msgstr "אתר אינטרנט"
+
+msgid "Team"
+msgstr "צוות"
+
+msgid "Create new team"
+msgstr "צור צוות חדש"
+
+msgid "Search"
+msgstr "חפש"
+
+msgid "Total credits"
+msgstr "סך נקודות זכות"
+
+msgid "Recent avg credits"
+msgstr "ממוצע נקודות זכות לאחרונה"
+
+msgid "Type"
+msgstr "סוג"
+
+msgid "New members in last day"
+msgstr "חברים חדשים ביום האחרון"
+
+msgid "Total members"
+msgstr "סה\"כ חברים"
+
+msgid "Active members"
+msgstr "חברים פעילים"
+
+msgid "Members with credit"
+msgstr "חברים עם נקודות זכות"
+
+msgid "Web site"
+msgstr "אתר אינטרנט"
+
+msgid "Description"
+msgstr "תיאור"
+
+msgid "BBcode help"
+msgstr "עזרה של BBcode"
+
+msgid "Post comment"
+msgstr "פרסם תגובה"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "בית"
+
+msgid "The latest news from the @site_name project"
+msgstr "החדשות האחרונות ממיזם @site_name"
+
+msgid "Hide"
+msgstr "הסתר"
+
+msgid "Hide this topic"
+msgstr "הסתר נושא זה"
+
+msgid "Lock"
+msgstr "נעל"
+
+msgid "Lock this thread for comments"
+msgstr "נעל את השרשור לתגובות"
+
+msgid "Make sticky"
+msgstr "נעץ"
+
+msgid "Make this topic sticky"
+msgstr "נעץ נושא זה"
+
+msgid "moderation"
+msgstr "הנחייה"
+
+msgid "Reply"
+msgstr "השב"
+
+msgid "Reply to this comment"
+msgstr "השב לתגובה זו"
+
+msgid "Quote"
+msgstr "צטט"
+
+msgid "Reply to this comment with quote"
+msgstr "השב לתגובה זו עם ציטוט"
+
+msgid "Edit"
+msgstr "עריכה"
+
+msgid "Edit this comment"
+msgstr "ערוך תגובה זו"
+
+msgid "Delete"
+msgstr "מחק"
+
+msgid "Delete this comment"
+msgstr "מחק תגובה זו"
+
+msgid "Hide this comment"
+msgstr "הסתר תגובה זו"
+
+msgid "Message @id"
+msgstr "הודעה @id"
+
+msgid "Convert"
+msgstr "המר"
+
+msgid "Convert this comment to a new topic"
+msgstr "המר תגובה זו לנושא חדש"
+
+msgid "message @id"
+msgstr "הודעה @id"
+
+msgid " in response to !parent"
+msgstr " בתגובה ל-!parent"
+
+msgid "Post new comment"
+msgstr "פרסם תגובה חדשה"
+
+msgid "Comments"
+msgstr "תגובות"
+
+msgid "discuss"
+msgstr "דון"
+
+msgid "n/a"
+msgstr "לא ישים"
+
+msgid "@time ago"
+msgstr "@time קודם"
+
+msgid "Threads"
+msgstr "שרשורים"
+
+msgid "Posts"
+msgstr "רשומות"
+
+msgid "Last post"
+msgstr "רשומה אחרונה"
+
+msgid ""
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "בבקשה היה אחראי למה שאתה כותב ואל תיצור רשומות פוגעניות או מעליבות. רשומות או שרשורים פוגעניים עלולים להימחק על ידי המנחים ללא מתן אזהרה וללא דיון. אל תגיב לרשומות פוגעניות. לחץ על כפתור \"דווח\" בתחתית הרשומה כדי להסב את תשומת לב המנחים אליהם."
+
+msgid "this project"
+msgstr "מיזם זה"
+
+msgid ""
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "אנחנו מבקשים גם שתשמור שכל דיון בלוחות הודעות יהיה קשור ל- at project או ל-BOINC, למעט יוצא דופן קטן של לוח ההודעות המדע, בו אתה חופשי לדבר על כל דבר הרלוונטי למדע הבסיסי. משתתפים המעוניינים בדיונים רחבים יותר צריכים לפרסם בפורומים לא רשמיים של @project."
+
+msgid "These message boards now support BBCode tags only."
+msgstr "לוחות הודעות אלו תומכים כעת בתגיות BBCode בלבד."
+
+msgid "Featured"
+msgstr "מובלט"
+
+msgid "Locked"
+msgstr "נעול"
+
+msgid "Submitted on !datetime"
+msgstr "נשלח ב-!datetime"
+
+msgid "Computers pending"
+msgstr "מחשבים ממתינים"
+
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "למשתמש זה אין עדיין מחשבים משוייכים. המחשבים יוצגו כאשר הם ירוויחו את נקודות הזכות הראשונות שלהם."
+
+msgid "Show IP address"
+msgstr "הצג כתובת IP"
+
+msgid "Download the desktop software"
+msgstr "הורד את התוכנה השולחנית"
+
+msgid "Run the installer"
+msgstr "הרץ את תוכנית ההתקנה"
+
+msgid "hours"
+msgstr "שעות"
+
+msgid "When prompted enter @siteurl"
+msgstr "כאשר תתבקש הזן @siteurl"
+
+msgid "Merge"
+msgstr "מזג"
+
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "פעולה זו תמחק לצמיתות את המארח @id מהחשבון שלך. אתה בטוח שאתה מאשר?"
+
+msgid "Post topic"
+msgstr "פרסם נושא"
+
+msgid "Leave team"
+msgstr "עזוב צוות"
+
+msgid "Click here to revoke your membership with @this_team"
+msgstr "לחץ כאן כדי לבטל את החברות שלך ב- at this_team"
+
+msgid "Leave this team"
+msgstr "עזוב צוות זה"
+
+msgid "Request foundership"
+msgstr "בקש תפקיד מייסד"
+
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "אם מייסד הצוות אינו פעיל ואתה רוצה ליטול את תפקיד המייסד, לחץ להלן כדי לבקש תפקיד מייסד של @this_team."
+
+msgid "Initiate request"
+msgstr "יזום בקשה"
+
+msgid "No active computers"
+msgstr "אין מחשבים פעילים"
+
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "למשתמש זה אין מחשבים שהיו פעילים ב-30 הימים האחרונים."
+
+msgid "Clear"
+msgstr "נקה"
+
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "פעולה זו תסיר את כל ההגדרות שלך מסידרת העדפה @name. האם אתה בטוח?"
+
+msgid "Your community preferences have been updated."
+msgstr "העדפות הקהילה שלך עודכנו."
+
+msgid "Combined preferences"
+msgstr "העדפות משולבות"
+
+msgid "Switch View"
+msgstr "החלף תצוגה"
+
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "פעולה זו תסיר את כל ההגדרות שלך מסידרת ההעדפות \"@name\". האם אתה בטוח?"
+
+msgid "Approve profile"
+msgstr "אשר פרופיל"
+
+msgid "Approve this profile content"
+msgstr "אשר תוכן פרופיל זה"
+
+msgid "Reject this profile content"
+msgstr "דחה תוכן פרופיל זה"
+
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "דברים אלו חלים על כל המיזמים של BOINC בהם אתה משתתף."
+
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "במחשבים המחוברים למיזמים מרובים, ההעדפות ששונו לאחרונה יהיו בשימוש."
+
+msgid "Preferences last modified: @mod_time"
+msgstr "עדכון ההעדפות אחרון: @mod_time"
+
+msgid "every"
+msgstr "כל"
+
+msgid "Add"
+msgstr "הוספה"
+
+msgid "My team"
+msgstr "הצוות שלי"
+
+msgid "You are a member of @team."
+msgstr "אתה חבר של @team."
+
+msgid "View my team"
+msgstr "הצג את הצוות שלי"
+
+msgid "Manage team"
+msgstr "נהל צוות"
+
+msgid "View member list"
+msgstr "הצג רשימת חברים"
+
+msgid "Member names and emails"
+msgstr "שמות החברים ודוא\"ל"
+
+msgid "View change history"
+msgstr "הצג היסטוריית שינויים"
+
+msgid "See member activity"
+msgstr "צפה בפעילות החבר"
+
+msgid "Manage team message board"
+msgstr "נהל את לוח ההודעות של הצוות"
+
+msgid "Create or manage message board"
+msgstr "צור או נהל לוח הודעות"
+
+msgid "Remove members"
+msgstr "הסר משתמשים"
+
+msgid "Change founder"
+msgstr "שנה מייסד"
+
+msgid "Manage team admins"
+msgstr "הוסף מנהלי צוות"
+
+msgid "Edit team info"
+msgstr "ערוך את המידע אודות הצוות"
+
+msgid "Remove team"
+msgstr "הסר צוות"
+
+msgid "Team forum"
+msgstr "פורום הצוות"
+
+msgid "A discussion forum has been set up for team members."
+msgstr "פורום דיונים הוגדר עבור חברי הצוות."
+
+msgid "Enter forum"
+msgstr "הזן פורום"
+
+msgid "Join team"
+msgstr "הצטרף לצוות"
+
+msgid "Click here to become a member of @this_team"
+msgstr "לחץ כאן כדי להיות חבר ב- at this_team"
+
+msgid "Join this team"
+msgstr "הצטרף לצוות זה"
+
+msgid "Choose type"
+msgstr "בחר סוג"
+
+msgid "Team name"
+msgstr "שם הצוות"
+
+msgid "Text only, no HTML tags"
+msgstr "טקסט בלבד, ללא תגיות HTML"
+
+msgid "Team name -- HTML version (optional)"
+msgstr "שם הצוות - גרסת HTML (רשות)"
+
+msgid "You may use limited HTML tags"
+msgstr "תוכל להשתמש בתגיות HTML מוגבלות"
+
+msgid "Team website (optional)"
+msgstr "אתר אינטרנט של הצוות (רשות)"
+
+msgid "Displayed on the team's page"
+msgstr "מוצג בדף הצוות"
+
+msgid "Type of team"
+msgstr "סוג הצוות"
+
+msgid "Accept new members?"
+msgstr "האם לקבל חברים חדשים?"
+
+msgid "Description of team"
+msgstr "תיאור הצוות"
+
+msgid "Create a team"
+msgstr "צור צוות"
+
+msgid "Save team"
+msgstr "שמור צוות"
+
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "אם אתה כבר מריץ BOINC, בחר <i>הוסף מיזם</i>."
+
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "אם אתה מפעיל גירסה של שורת הפקודה של BOINC, \nהשתמש קודם בתוכנת מנהל BOINC (במקומות אחרים במקרה הצורך) כדי ליצור\nחשבון במיזם זה, ואז השתמש בחשבון זה כדי להתחבר עם הגרסה של שורת הפקודה."
+
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "אם אתה מפעיל גירסת קודמת ל-5.0 BOINC, אנא שדרג לגרסה עדכנית יותר כדי ליצור חשבון במיזם זה."
+
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "אם שכחת את כתובת הדוא\"ל של החשבון שלך, או שאתה לא יכול לקבל דוא\"ל שם:"
+
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "אם הפעלת את BOINC תחת החשבון, עדיין תוכל לגשת לזה. הנה כיצד:"
+
+msgid "BOINC documentation"
+msgstr "תיעוד BOINC"
+
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "עבור אל ספריית הנתונים של BOINC במחשב שלך (ראה !boinc_wiki לעזרה במציאה את זה)."
+
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "מצא את קובץ החשבון למיזם זה; השם שלו יהיה דומה ל-%file (כאשר כתובת האינטרנט של המיזם היא %url)."
+
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "פתח את הקובץ בעורך טקסט כפנקס רשימות. תראה משהו דומה ל-:"
+
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "בחר והעתק את המחרוזת בין <מאמת> ל-</authenticator> (%auth בדוגמה לעיל)."
+
+msgid "Paste the string into the field below, and click OK."
+msgstr "הדבק את המחרוזת לתוך השדה שלהלן ולחץ על אישור."
+
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "כעת תכנס לחשבון שלך; עדכן את הדוא\"ל והסיסמה של החשבון שלך."
+
+msgid "Log in with authenticator"
+msgstr "היכנס באמצעות מאמת"
+
+msgid "OK"
+msgstr "אישור"
+
+msgid "Post new topic"
+msgstr "פרסם נושא חדש"
+
+msgid "Create team message board"
+msgstr "צור לוח הודעות של הצוות"
+
+msgid "Message board title"
+msgstr "כותרת לוח ההודעות"
+
+msgid "Minimum time between posts"
+msgstr "זמן ממזערי בין פרסומים"
+
+msgid "Seconds"
+msgstr "שניות"
+
+msgid "Minimum total credit to post"
+msgstr "סך נקודות זכות מזערי כדי לפרסם"
+
+msgid "Minimum avg credit to post"
+msgstr "ממוצע נקודות זכות מזערי כדי לפרסם"
+
+msgid "Allow public to read board?"
+msgstr "אפשר לכלל הציבור לקרוא בלוח ההודעות?"
+
+msgid "Create message board"
+msgstr "צור לוח הודעות"
+
+msgid "About message boards"
+msgstr "על אודות לוחות הודעות"
+
+msgid "You may create a message board for use by @team"
+msgstr "באפשרותך ליצור לוח הודעות לשימוש על-ידי @team"
+
+msgid "Only members may post"
+msgstr "רק חברים יכולים לפרסם"
+
+msgid "Only members may read (optional)"
+msgstr "רק חברים יכולים לקרוא (רשות)"
+
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "למייסד ומנהל הצוות יש הרשאות מנחה"
+
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (זהה ל- at count האחרונים)"
+
+msgid "Revise or post comment"
+msgstr "הגה או פרסם תגובה"
+
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "לפעמים BOINC מקצה זהויות נפרדות לאותו המחשב בטעות. באפשרותך לתקן זאת על-ידי מיזוג זהויות ישנות עם החדשות."
+
+msgid ""
+"Check the computers that are the same as @name (created on @date at @time "
+"with computer ID @id)"
+msgstr "בדוק את המחשבים שזהים ל- at name (נוצרו ב- at date ב- at time עם מזהה המחשב @id)"
+
+msgid "Computer @old_id has been merged successfully into @id."
+msgstr "המחשב @old_id התמזג בהצלחה לתוך @id."
+
+msgid "parent removed"
+msgstr "הורה הוסר"
+
+msgid "Remove"
+msgstr "הסר"
+
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
+msgstr "נדרש אימות בעת שינוי כתובת דוא\"ל או הגדרת סיסמה חדשה."
+
+msgid "Make unsticky"
+msgstr "בטל נעיצה"
+
+msgid "Remove sticky status from this topic"
+msgstr "הסר את מצב הנעיצה מנושא זה"
+
+msgid "Unhide"
+msgstr "בטל הסתרה"
+
+msgid "Unhide this comment"
+msgstr "בטל הסתרת תגובה זו"
+
+msgid "Unpublished"
+msgstr "לא פורסם"
+
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "המחשבים @old_ids מוזגו בהצלחה לתוך @id."
+
+msgid "Joined"
+msgstr "הצטרף"
+
+msgid "Credit"
+msgstr "נקודות זכות"
+
+msgid "RAC"
+msgstr "נקודות זכות ממוצעות לאחרונה"
+
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "אין חשבון קיים עבור @email -- בחר \"צור חשבון חדש\" כדי להירשם"
+
+msgid "started discussion"
+msgstr "התחיל דיון "
+
+msgid "commented on"
+msgstr "תגובה ב-"
+
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "הסיסמה שהוזנה אינה חוקית. נא ודא כי היא נכונה."
+
+msgid "Minimum value not met for @field"
+msgstr "לא הושג הערך המזערי עבור @field"
+
+msgid "Invalid data type for @field"
+msgstr "סוג נתונים לא חוקי עבור @field"
+
+msgid "News"
+msgstr "חדשות"
+
+msgid "Remove friend"
+msgstr "הסר חבר"
+
+msgid "ignore list"
+msgstr "רשימת התעלמות"
+
+msgid "here"
+msgstr "כאן"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr " !username ב-!ignore_list שלך. לחץ !here כדי להציג רשומה זו."
+
+msgid "hidden"
+msgstr "מוסתר"
+
+msgid "Unknown"
+msgstr "לא ידוע"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "הגדרה לא חוקית עבור "
+
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: התגובה פורסמה ב-\"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "המחבר פרסם תגובה ל-"
+
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "כדי להציג נושא זה ב-!site, לחץ כאן:\n!comment_url"
+
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "למייסד הצוות יש @count יום להגיב לבקשת ההעברה שלך"
+
+msgid "Unlock"
+msgstr "בטל נעילה"
+
+msgid "Unlock this thread for comments"
+msgstr "פתח את השרשור לתגובות"
+
+msgid "project"
+msgstr "מיזם"
+
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email אינה כתובת דוא\"ל תקינה, אנא וודא תקינות"
+
+msgid "Please enter your email address"
+msgstr "אנא הזן את כתובת הדוא\"ל שלך"
+
+msgid "There is no account with that authenticator."
+msgstr "אין חשבון עם מאמת זה."
+
+msgid "That authenticator is not valid."
+msgstr "מאמת זה אינו חוקי."
+
+msgid "Send request"
+msgstr "שלח בקשה"
+
+msgid "Friend request from !name [!site]"
+msgstr "בקשת חברות מ-!name [!site]"
+
+msgid "Message"
+msgstr "הודעה"
+
+msgid ""
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name הוסיף אותך כחבר ב-!site. באפשרותך לאשר או לדחות את הבקשה. דחיית הבקשה לא תשלח הודעה, אבל תסיר את הבקשה משני החשבונות שלכם.\n\nהפעל את הקישור שלהלן כדי להציג בקשה זו:\n!link\n\n!message\n\nתודה,\nצוות !site"
+
+msgid "Cancel friend request"
+msgstr "בטל בקשת חברות"
+
+msgid "Please set the minimum time required between posts."
+msgstr "נא הגדר את משך הזמן המזערי הנדרש בין פרסום רשומות."
+
+msgid ""
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "נא הגדר את מינימום סך נקודות הזכות שהמשתמש צריך להרוויח על מנת לפרסם בלוח הודעות זה."
+
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "נא הגדר את מינימום ממוצע נקודות הזכות שצריך להיות למשתמש על מנת לפרסם בלוח הודעות זה."
+
+msgid "Edit message board"
+msgstr "ערוך לוח הודעות"
+
+msgid "Save message board"
+msgstr "שמור לוח הודעות"
+
+msgid "This is a team-only message board"
+msgstr "זהו לוח הודעות לצוות בלבד"
+
+msgid "Maximum value exceeded for @field"
+msgstr "חריגה מהערך המרבי עבור @field"
+
+msgid "Approve request"
+msgstr "אשר בקשה"
+
+msgid "!name accepted your friend request [!site]"
+msgstr "!name קיבל את בקשת החברות שלך [!site]"
+
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name אישר אותך כחבר ב-!site.\n\nהפעל קישור זה כדי להציג את הפרופיל שלו או שלה:\n!link\n\n!message\n\nתודה,\nצוות "
+
+msgid "posted"
+msgstr "פורסם"
+
+msgid "Add team admin"
+msgstr "הוסף מנהל צוות"
+
+msgid "Enter email address"
+msgstr "הזן כתובת דוא\"ל"
+
+msgid "Current team admins"
+msgstr "מנהלי צוות נוכחיים"
+
+msgid "About team admins"
+msgstr "אודות מנהלי צוות"
+
+msgid "Team admins can:"
+msgstr "מנהלי צוות יכולים:"
+
+msgid "Edit team information"
+msgstr "ערוך את המידע על הצוות"
+
+msgid "View the team's join / quit history"
+msgstr "צפה בהיסטוריית הצטרפות / עזיבה של הצוות"
+
+msgid "Moderate the team forum"
+msgstr "הנחה את פורום הצוות"
+
+msgid "Remove members from the team"
+msgstr "הסר חברים מהצוות"
+
+msgid "Disband a team if it has no members"
+msgstr "פרק צוות אם אין בו חברים"
+
+msgid "Team admins cannot:"
+msgstr "מנהלי צוות לא יכולים:"
+
+msgid "Change the team founder"
+msgstr "שנה את מייסד הצוות"
+
+msgid "Add / Remove team admins"
+msgstr "הוסף / הסר מנהלי צוות"
+
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "אם מנהל צוות עוזב את הצוות, הוא מפסיק להיות מנהל צוות. אנו ממליצים לבחור רק באנשים שאתה מכיר וסומך עליהם"
+
+msgid "Lift user ban"
+msgstr "הסר חרם משתמש"
+
+msgid "A team named \"@name\" already exists."
+msgstr "צוות בשם \"@name\" כבר קיים."
+
+msgid "A BOINC account already exists for @email."
+msgstr "חשבון BOINC כבר קיים עבור @email."
+
+msgid "Make founder"
+msgstr "צור מייסד"
+
+msgid "Changing the team founder"
+msgstr "שינוי מייסד הצוות"
+
+msgid "Notes about changes in foundership:"
+msgstr "הערות על שינויים בתפקיד מייסד:"
+
+msgid "Any member of the team is eligible"
+msgstr "כל חבר בצוות זכאי"
+
+msgid "Current founder becomes a normal user"
+msgstr "המייסד הנוכחי הופך למשתמש רגיל"
+
+msgid "Foundership can be requested by team members:"
+msgstr "בקשה לתפקיד מייסד יכולה להיות מוגשת ע\"י חברי הצוות:"
+
+msgid "One request is allowed at a time"
+msgstr "בקשה אחת מותרת בכל פעם"
+
+msgid "It must be 60 days since any previous request"
+msgstr "חייבים לעבור 60 יום מאז כל בקשה קודמת"
+
+msgid "Any active request must be older than 90 days"
+msgstr "כל בקשה פעילה חייבת להיות בת יותר מ-90 יום"
+
+msgid "Current founder has 60 days to respond to a request"
+msgstr "למייסד הנוכחי יש 60 יום להגיב לבקשה"
+
+msgid "BOINC-wide teams site"
+msgstr "אתר צוות בתחום BOINC"
+
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "זהו צוות בתחום BOINC. ניתן לבצע שינויים ב- !site."
+
+msgid ""
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "בקשה לשינוי תפקיד מייסד של צוות כבר הוגשה לאחרונה. רק בקשה אחת מותרת בתקופה של 90 יום."
+
+msgid "@count days remaining"
+msgstr "@count ימים נותרו"
+
+msgid "Team name is required."
+msgstr "דרוש שם צוות."
+
+msgid "Reason for banning this user"
+msgstr "סיבה להחרמת משתמש זה"
+
+msgid ""
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "סיבה זו תכלל בהודעת הדוא\"ל למשתמש. נא לכתוב הסבר קצר למה המשתמש הוחרם."
+
+msgid "Duration of the ban"
+msgstr "משך הזמן של החרם"
+
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "מספר הימים עד שהחרם יפוג. הגדר 0 כדי להחרים לצמיתות."
+
+msgid "Submit"
+msgstr "שלח"
diff --git a/locale/he/BOINC-Manager.po b/locale/he/BOINC-Manager.po
old mode 100755
new mode 100644
diff --git a/locale/he/BOINC-Project-Generic.po b/locale/he/BOINC-Project-Generic.po
deleted file mode 100755
index 8c0f4b9..0000000
--- a/locale/he/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,7047 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2012-04-26 04:05+0200\n"
-"Last-Translator: Ido <dj_legolas1 at hotmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: he\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.1.6\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Hebrew"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "ברירת מחדל"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-#, fuzzy
-msgid "Orange"
-msgstr "שינוי"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "חפש מילים בפורום"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "חפש פורומים"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "חיפוש מתקדם"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "הודעות פרטיות"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "שאלות ותשובות"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "לוחות הודעות"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 לוח הודעות"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "הקודם"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "הבא"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "יוצר"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "הודעה"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send message"
-msgstr "שלח הודעה"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send %1 a private message"
-msgstr "שלח הודעה פרטית"
-
-#: ../inc/forum.inc:581
-#, fuzzy
-msgid "Joined: %1"
-msgstr "הצטרפת ל-%1"
-
-#: ../inc/forum.inc:590
-#, fuzzy
-msgid "Posts: %1"
-msgstr "הודעות"
-
-#: ../inc/forum.inc:596
-#, fuzzy
-msgid "Credit: %1"
-msgstr "נקודות זכות"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "You haven't read this message yet"
-msgstr "אין לך הודעות פרטיות."
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "Unread"
-msgstr "לא נקרא"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-#, fuzzy
-msgid "Message %1"
-msgstr "הודעה"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "מוסתר"
-
-#: ../inc/forum.inc:625
-#, fuzzy
-msgid "Posted: %1"
-msgstr "הודעות"
-
-#: ../inc/forum.inc:628
-#, fuzzy
-msgid " - in response to "
-msgstr "חלף זמן שהוקצב - אין תגובה"
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "עריכה"
-
-#: ../inc/forum.inc:631
-#, fuzzy
-msgid "Edit this message"
-msgstr "ערוך את הפרופיל שלך"
-
-#: ../inc/forum.inc:637
-#, fuzzy
-msgid "Last modified: %1"
-msgstr "ההעדפות ששונו לאחרונה/העדפות שונו לאחרונה:"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
-msgid "Report as offensive"
-msgstr "הודעה אחרונה"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-# 83%
-#: ../inc/forum.inc:675
-#, fuzzy
-msgid "Click if you like this message"
-msgstr "לא ניתן ליצור הודעה"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-#, fuzzy
-msgid "Click if you don't like this message"
-msgstr "לא ניתן ליצור הודעה"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "השב"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-#, fuzzy
-msgid "Quote"
-msgstr "עזוב קבוצה"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-#, fuzzy
-msgid "Posted %1 by %2"
-msgstr "הודעות"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "אין לך הודעות פרטיות."
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-#, fuzzy
-msgid "More info"
-msgstr "מידע על הקבוצה"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "הצג"
-
-#: ../inc/forum.inc:1055
-#, fuzzy
-msgid "Unhide this post"
-msgstr "הצג אשכול זה"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "הסתר"
-
-#: ../inc/forum.inc:1057
-#, fuzzy
-msgid "Hide this post"
-msgstr "הסתר"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "הזז"
-
-#: ../inc/forum.inc:1062
-#, fuzzy
-msgid "Move post to a different thread"
-msgstr "הזז אשכול זה לפורום אחר"
-
-#: ../inc/forum.inc:1067
-#, fuzzy
-msgid "Banish author"
-msgstr "לא קיים משתמש"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-#, fuzzy
-msgid "Only team members can post to the team message board"
-msgstr "יצירת או ניהול לוח ההודעות של הקבוצה"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"על מנת ליצור אשכול חדש ב-%1 עליך להיות בעל כמות מסויימת של נקודות זכות. זאת "
-"על מנת למנוע ולהגן מפני שימוש לרעה במערכת."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"אינך יכול ליצור אשכולות חדשים כרגע. אנא המתן זמן קצר לפני שתנסה שוב. השהייה "
-"זו הופעלה על מנת להגן מפני שימוש לרעה במערכת."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "אשכול"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "הודעות"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "צפיות"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "הודעה אחרונה"
-
-#: ../inc/forum.inc:1235
-#, fuzzy
-msgid "New posts in the thread %1"
-msgstr "הצב הודעה באשכול זה"
-
-#: ../inc/forum.inc:1240
-#, fuzzy
-msgid "New posts in subscribed thread"
-msgstr "הרשמה"
-
-#: ../inc/forum.inc:1241
-#, fuzzy
-msgid "There are new posts in the thread '%1'"
-msgstr "לחץ לקבלת הודעות בדוא\"ל כאשר ישנן רשומות חדשות באשכול זה"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "סמן את כל האשכולות כנקראו"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "סמן את כל האשכולות בכל לוחות ההודעות כ'נקרא'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "אין שרת מארח"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "לא זמין"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "בית"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "עבודה"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "בית ספר"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "עדכן"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "מידע אודות המחשב"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "כתובת IP"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(זהה ב-%1 פעמים האחרונות)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "כתובת IP חיצונית"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "הצג כתובת IP"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "שם תחום"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "זמן תקני מקומי"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 שעות"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "בעלים"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "אנונימי"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "נוצר"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "נקודות זכות כלליות"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "ממוצע נקודות זכות"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "נקודות זכות עבור פרוייקט מוצלב"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "סוג מעבד"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "מספר מעבדים"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "מעבדי עזר"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "מערכת הפעלה"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "גרסת BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "זיכרון"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "מטמון"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "שטח החלפה"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "שטח דיסק כללי"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "שטח דיסק פנוי"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "מהירות מחושבת של נקודה צפה"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 מיליון פעולות/שניה"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "מהירות מחושבת של מספר שלם"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "קצב העלאה ממוצע"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB לשניה"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "לא ידוע"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "קצב הורדה ממוצע"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "זמן סבב ממוצע"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 ימים"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "פרטי יישום"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "הצג"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "משימות"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-#, fuzzy
-msgid "Number of times client has contacted server"
-msgstr "מספר הפעמים ש-BOINC יצר קשר עם שרת"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "יצירת קשר אחרונה עם השרת"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% מהזמן ש-BOINC רץ"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "בזמן ש-BOINC רץ, % מהזמן למארח הייתה גישה לאינטרנט."
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "בזמן ש-BOINC רץ, % מהזמן ניתן היה לבצע חישובים."
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "יעילות מעבד ממוצעת"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "גורם התיקון של משך המשימה"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "מיקום"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "מחק מחשב זה"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "מזג רשומות כפולות של מחשב זה"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "מזג"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "יצירת קשר אחרון"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "מידע אודות המחשב"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "דרגה"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "ממוצע נקודות זכות"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "ממוצע נקודות זכות לאחרונה"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "מעבד"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "מעבד גרפי"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "מערכת הפעלה"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 מעבדים)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "פרטים"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "סטטיסטיקות פרוייקט מוצלב:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "למחשב %1 יש אורך חיים חופף:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "למחשב %1 יש מערכת הפעלה לא מתאימה:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "למחשב %1 יש מעבד לא מתאים:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "אותו מחשב"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "לא ניתן למזג מחשב %1 ל-%2 - אין ביניהם התאמה"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "מתבצע מיזוג של מחשב %1 למחשב %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "לא ניתן לעדכן נקודות זכות עבור המחשב החדש"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "לא ניתן לעדכן תוצאות"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "לא ניתן לבטל מחשב ישן"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "מחשב ישן שבוטל %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "הצג:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "כל המחשבים"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "רק מחשבים אשר היו פעילים ב-30 הימים האחרונים"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "זיהוי מחשב"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "שם"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "גרסת<br>BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "מזג מחשבים לפי שם"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "תגובה"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "חדשות זמינות כ%sעדכון RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "דואר נכנס"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "כתוב"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "שלח הודעה פרטית"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "תצוגה מקדימה"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "לא קיים משתמש"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "ל"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "זיהויי משתמש או שמות משתמש מיוחדים, מופרדים באמצעות פסיק"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "נושא"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "שלח הודעה"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "שלח לך הודעה פרטית; נושא;"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "הודעה פרטית %1 מתוך %2, נושא:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "לא ניתן ליצור הודעה"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"אינך מורשה לשלוח הודעות פרטיות בתכיפות כה גדולה. אנא המתן מעט בטרם תשלח "
-"הודעות נוספות."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "לא נקרא"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "עבור התראות במייל, %1ערוך הגדרות קהילה%2"
-
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "הודעות פרטיות"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"האם להשהות עבודה כאשר המחשב פועל על סוללות? %1 מתייחס רק למחשבים ניידים %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "האם להשהות עבודה כאשר המחשב נמצא בשימוש?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"האם להשהות פעילות מעבד גרפי כאשר המחשב נמצא בשימוש? %1 נאכף על ידי גרסה "
-"6.6.21 ומעלה %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'בשימוש', פירושו פעילות עכבר/מקלדת ב-"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "הדקות האחרונות"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"השהה עבודה אם לא קיימת פעילות עכבר/מקלדת %1 יש להיכנס למצב צריכת חשמל "
-"במחשבים מסויימים %2"
-
-#: ../inc/prefs.inc:114
-#, fuzzy
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"השהה עבודה אם ניצול המעבד עולה על %1 0 פירושו ללא הגבלה<br>נאכף בגרסה "
-"6.10.30 ומעלה %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "בצע חישובים רק בין השעות %1 ללא הגבלה אם זהה %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"האם להשאיר משימות בזכרון בעת השהייה? %1 משימות מושהות יצרכו שטח החלפה אם "
-"'כן' %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "החלף בין משימות כל %1 מומלץ: 60 דקות %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "במעבדים מרובים, השתמש לכל היותר"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "מעבדים"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr "במעבדים מרובים, השתמש לכל היותר %1 נאכף בגרסה 6.1 ומעלה %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% של המעבדים"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "השתמש לכל היותר %1 ניתן להשתמש להפחתת התחממות המעבד %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% מזמן המעבד"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "דיסק: השתמש לכל היותר"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "דיסק: השאר חופשי לכל הפחות %1 ערכים נמוכים מ %2 לא ייחשבו %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% מהסך הכללי"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "משימות יכתבו נקודות ביקורת לדיסק לכל היותר כל"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "שניות"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "שטח החלפה: השתמש לכל היותר"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "זכרון: כאשר המחשב נמצא בשימוש, השתמש לכל היותר"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "זכרון: כאשר המחשב לא נמצא בשימוש, השתמש לכל היותר"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "ימים"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"האם לאמת לפני חיבור לאינטרנט? %1 הכרחי רק אם ברשותך חיבור בעזרת מודם, ISDN "
-"או VPN %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr "להתנתק בעת סיום? %1 הכרחי רק אם ברשותך חיבור בעזרת מודם, ISDN או VPN %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "קצב הורדה מירבי:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "KB לשניה"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "קבצ העלאה מירבי:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "השתמש בחיבור לרשת רק בין השעות"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "העבר לכל היותר %1 נאכף בגרסה 6.10.46 ומעלה %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "MB לשניה"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"לדלג על אימות קובץ תמונה? %1 סמן רק במידה וספק האינטרנט שלך משנה קבצי תמונה "
-"(לדוגמה, UMTS). %2 דילוג על האימות מקטין את האבטחה של BOINC. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"חלוקת משאבים %1 קובע את יחס החלוקה במשאבי המחשב שלך לפרוייקט זה. לדוגמה: אם "
-"אתה משתתף בשני פורוייקטים של BOINC עם חלוקת משאבים של 100 ו-200, הפרוייקט "
-"הראשון יקבל 1/3 מהמשאבים ואילו השני יקבל 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "השתמש במעבד %1 נאכף בגרסה 6.10 ומעלה %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "השתמש במעבד גרפי של ATI %1 נאכף בגרסה 6.10 ומעלה %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "השתמש במעבד גרפי של NVIDIA %1 נאכף בגרסה 6.10 ומעלה %2"
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"האם להריץ יישומי בדיקה? %1 הדבר עוזר לנו לפתח יישומים, אך עשוי לגרום לכשלון "
-"במשימות במחשבך %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr "אימיילים יישלחו מ %1; וודא כי מסנן דואר הזבל שלך מאשר כתובת זו."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "האם ניתן לאפשר ל%1 וקבוצתך (אם קיימת) לשלוח לך אימייל?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "האם על %1 להציג את מחשביך באתר שלו?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "ניצול דיסק וזכרון"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "ניצול מעבד"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "ניצול רשת"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "העדפות אלו יחולו על כל פרוייקטי BOINC בהם אתם משתתפים."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr "%1לא ניתן לעדכן העדפות.%2 הערכים באדום הם מחוץ לטווח או אינם מספרים."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "מיקום שגוי: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "תת-קבוצה שגויה: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "כן"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "לא"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "ללא הגבלה"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "הוספה"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "הסרה"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "חישוב"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "העדפות נפרדות עבור %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "ערוך העדפות"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "הוסף העדפות נפרדות עבור %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(החלף תצוגה)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "העדפות משולבות"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "הגדרות ספציפיות של הפרוייקט"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "העדפות ראשיות (ברירת מחדל)"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "ערוך העדפות %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-#, fuzzy
-msgid "Preferences last modified:"
-msgstr "ההעדפות ששונו לאחרונה/העדפות שונו לאחרונה:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "הוסף העדפות"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "עדכון העדפות"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "מיקום ברירת מחדל של המחשב"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "ו"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"הפרופיל שלך יהיה גלוי לאחרים ברגע שיאושר ע\"י הפרוייקט. הדבר עשוי לקחת מספר "
-"ימים."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "הפרופיל שלך סומן כבלתי קביל. הוא אינו גלוי לאחרים. אנא שנה אותו."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "שגיאת בסיס נתונים"
-
-#: ../inc/profile.inc:193
-#, fuzzy
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"בכדי למנוע זיבול, פרופילים של משתמשים עם ממוצע נקודות זכות קטן מ-%1 מוצגים "
-"רק למשתמשים מחוברים. אנו מתנצלים על אי הנוחות."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "משתמש מוחרם"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "לא קיים פרופיל עבור זיהוי משתמש זה."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "ערוך את הפרופיל שלך"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "המשוב שלך על פרופיל זה"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "המלץ על פרופיל זה למשתמש היום:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "אני %1אוהב%2 פרופיל זה"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "התרע בפני המנהלים מפני פרופיל פוגעני:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "אני %1לא אוהב%2 פרופיל זה"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "פלטפורמה אנונימית"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "מעבד גרפי של NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "מעבד גרפי של ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "אינו נמצא בבסיס הנתונים"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "ממתין"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "הכל"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "בתהליך"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "תקף"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "לא תקף"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "שגיאה"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "אינו פעיל"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "לא נשלח"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "הושלם, ממתין לתיקוף"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "הושלם ותוקף"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "הושלם, סומן כלא תקף"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "הושלם, לא ניתן לתקף"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "הושלם, תיקוף אינו חד משמעי"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "הושלם, מאוחר מדי לתקף"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "הושלם"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "לא ניתן לשלוח"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "בוטל ע\"י השרת"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "שגיאה בעת הורדה"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "שגיאה בעת חישוב"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "שגיאה בעת העלאה"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "בוטל ע\"י המשתמש"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-#, fuzzy
-msgid "Upload failed"
-msgstr "עדכון נכשל"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "חלף זמן שהוקצב - אין תגובה"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "לא נזקק"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "שגיאת תיקוף"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "ננטש"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-#, fuzzy
-msgid "Over"
-msgstr "הסתיים/מעל"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "הצלחה"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "שגיאת חישוב"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "תוצאה מיותרת"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "אין תשובה"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "חדש"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "מוריד"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "מעבד"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "שגיאת חישוב"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "מעלה"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "הסתיים"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "התחלתי"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "אינו נחוץ"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "שגיאת יחידת עבודה - דילוג על בדיקה"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "נבדק, אך טרם התקבלה הסכמה"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "המשימה דווחה מאוחר מדי לתיקוף"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "לא ניתן לשלוח תוצאה"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "יותר מדי שגיאות (ייתכן וקיים באג)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "יותר מדי תוצאות (ייתכן ואינו דטרמיניסטי)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "יותר מדי תוצאות כלליות"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "יחידת עבודה בוטלה"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "שגיאה לא מזוהה: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "שם המשימה"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "לחץ לפרטים"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "הצג זיהויים"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "הצג שמות"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "משימה"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "יחידת עבודה"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "מחשב"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "נשלח"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "זמן דיווח<br />או תאריך יעד"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "הסבר"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "מצב"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "זמן ריצה<br />(שניות)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "זמן מעבד<br />(שניות)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "נקודות זכות"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "יישום"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "יחידת עבודה"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "התקבל"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "מצב השרת"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "תוצאה"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "מצב המחשב"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "מצב יציאה"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "תאריך יעד לדיווח"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "זמן ריצה"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "זמן מעבד"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "מצב תיקוף"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "גרסת יישום"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "פלט Stderr"
-
-#: ../inc/result.inc:706
-#, fuzzy
-msgid "State"
-msgstr "מצב"
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "חיפוש מאפיין (אחד או יותר)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "מילות מפתח"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "מצא קבוצות עם מילים אלו בשמות או בתיאור שלהן"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "מדינה"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "סוג הקבוצה"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "הצג קבוצות פעילות בלבד"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "חיפוש"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "התבקש על ידך, ותאריך היעד לתשובת מייסד עבר."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "השלם העברת בעלות מייסד"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "התבקש על ידך"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "תאריך יעד לתשובת מייסד הוא %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "לא קיים"
-
-#: ../inc/team.inc:74
-#, fuzzy
-msgid "Initiate request"
-msgstr "התחלת בקשה"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "נדחה"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "מידע על הקבוצה"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "תיאור"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "אתר אינטרנט"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "סטטיסטיקות פרוייקט מוצלב"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "סוג"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "לוח הודעות"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "אשכולות"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "הצטרף לקבוצה זו"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"הערה: אם בהעדפות הפרוייקט שלך מוגדר \"אישור למייל\", הצטרפות לקבוצה תאפשר "
-"למייסד גישה לכתובת הדוא\"ל שלך."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "לא מקבלים חברים חדשים"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "התבקש שינוי בעלות מייסד"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "השב עד %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "שינוי בעלות מייסד הקבוצה"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "חברים"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "מייסד"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "מנהלים"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "חברים חדשים ביום האחרון"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "סה\"כ חברים"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "הצג"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "חברים פעילים"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "חברים עם נקודות זכות"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "מנהל"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-#, fuzzy
-msgid "Previous %1"
-msgstr "%1 הקודמים/הקודם"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-#, fuzzy
-msgid "Next %1"
-msgstr "%1 הבאים/הבא"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "לא קיימת קבוצה."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "פעולה זו מצריכה בעלות מייסד."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "פעולה זו מצריכה הרשאות מנהל קבוצה"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"אזהרה: זוהי קבוצת כלל-BOINC. אם תבצע שינויים כאן, הם ישוכתבו בקרוב. ערוך "
-"במקום זאת את %1קבוצת כלל-BOINC%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1הערת פרטיות%2: בעת יצירת קבוצה, העדפות הפרוייקט שלך (חלוקת משאבים, העדפות "
-"גרפיות) יהיו גלויות לציבור הרחב."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "שם הקבוצה, גרסת טקסט"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "אל תשתמש בתגי HTML."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "שם הקבוצה, גרסת HTML"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "באפשרותך להשתמש %1בכמות מוגבלת של תגי HTML%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "אם אין לך ידע ב-HTML, השאר תיבה זו ריקה."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "כתובת אתר האינטרנט של הקבוצה, אם קיימת"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "ללא \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "ניתן יהיה להגיע לכתובת זו מדף הקבוצה באתר זה."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "תיאור הקבוצה"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "האם לקבל חברים חדשים?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "פרופיל משתמש"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "פרוייקטים בהם אתה משתתף"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "פרוייקטים בהם %1 משתתף"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "פרוייקט"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "לחץ לקבלת דף משתמש"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "מאז"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "חישוב ונקודות זכות"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "מחשבים של חשבון זה"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "הצג"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "זיהוי פרוייקט מוצלב"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "סטטיסטיקות פרוייקט מוצלב"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "חשבון"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "קבוצה"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "פרוייקט מוצלב"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "אישור"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "קבלת נתונים לנייד שלך"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "סוג התראה לא מזוהה: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "מידע אודות החשבון"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "כתובת אימייל"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "כתובת אתר"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "מיקוד"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 חבר מאז"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "שינוי"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "כתובת אימייל"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "סיסמא"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "מידע חשבון אחר"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "זיהוי משתמש"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "נמצא בשימוש בפונקציות קהילה"
-
-# 91%
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "מפתח חשבון"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "העדפות"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "מתי וכיצד משתמש BOINC במחשבך"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "העדפות חישוב"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "לוחות הודעות והודעות פרטיות"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "העדפות קהילה"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "העדפות עבור פרוייקט זה"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "העדפות %1"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "קהילה"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "מחק"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "צור"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "פרופיל"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "הרשומות של %1"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "התראות"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "עזוב קבוצה"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "נהל"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(בקשת שינוי בעלות מייסד ממתינה)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "חבר בקבוצה"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "מצא קבוצה"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "מייסד אך לא חבר ב"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "מצא חברים"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "חברים"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "מחשבים"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "תורם"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "צור קשר"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "גורם זה הוא חבר"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "ביטול חברות"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "בקשה ממתינה"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "הוסף כחבר"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "יציאה"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "התחבר"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "התחבר"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "צור חשבון"
-
-#: ../inc/util.inc:206
-#, fuzzy
-msgid "Server status page"
-msgstr "מצב השרת"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "אירעה שגיאה בבסיס הנתונים בעת הטיפול בבקשתך; אנא נסה שנית מאוחר יותר."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "לא ניתן לטפל בבקשה"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "שעות"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "דקות"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "שניות"
-
-#: ../inc/util.inc:444
-#, fuzzy
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "הקישור לא החזיר תשובה. לחץ על חזור, רענן את העמוד ונסה שוב."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "הצג את הפרופיל של %1"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "השתמש בתגי BBCode בכדי לפרמט את הטקסט"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "הפרוייקט הופסק לצרכי תחזוקה"
-
-#: ../inc/util.inc:799
-#, fuzzy
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"דף זה דורש גישה לבסיס הנתונים. בסיס הנתונים שלנו סגור זמנית לצרכי תחזוקה. "
-"אנא נסה שנית מאוחר יותר."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "לא ניתן להתחבר לבסיס הנתונים - אנא נסה שנית מאוחר יותר"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "לא ניתן לבחור בסיס נתונים - אנא נסה שנית מאוחר יותר"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "הישאר מחובר במחשב זה"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "מזהה אותך באתר האינטרנט שלנו. השתמש בשמך האמיתי או בכינוי."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "בחר את המדינה אותה ברצונך לייצג, אם בכלל."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "מיקוד"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "אפשרי"
-
-#: ../user/account_finish_action.php:27
-#, fuzzy
-msgid "You must supply a name for your account"
-msgstr "עלייך לספק שם עבור חשבונך."
-
-#: ../user/account_finish_action.php:30
-#, fuzzy
-msgid "HTML tags not allowed in name"
-msgstr "תגיות HTML אסורות לשימוש בשמך."
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "הוסף %1 העדפות עבור %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "יישומים"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"כרגע, היישומים הבאים מוגדרים עבור %1. כאשר הנך נוטל חלק ב-%1, תישלח למחשבך "
-"עבודה עבור אחד מהיישומים הללו, או יותר. מחשבך יוריד את הגרסא הנוכחית של "
-"היישום. הדבר קורה בצורה אוטומטית; אתה לא צריך לעשות דבר."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "פלטפורמה"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "גרסא"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "זמן התקנה"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-#, fuzzy
-msgid "Italic"
-msgstr "לא תקף"
-
-#: ../user/bbcode.php:34
-#, fuzzy
-msgid "Underline"
-msgstr "דחייה"
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "תיאור"
-
-#: ../user/bbcode.php:36
-#, fuzzy
-msgid "Big text"
-msgstr "טקסט"
-
-#: ../user/bbcode.php:37
-#, fuzzy
-msgid "Red text"
-msgstr "טקסט"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "עזוב קבוצה"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "חשבונך"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "קבוצה"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "משתמש היום"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "מצב השרת"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "פרופילים"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "משתתפים מובילים"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "מחשבים מובילים"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "קבוצות מובילות"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "קרא את החוקים והמדיניות שלנו"
-
-#: ../user/create_account_action.php:26
-#, fuzzy
-msgid "Can't create account"
-msgstr "צור חשבון"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-#, fuzzy
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "תגובת ה-ReCaptcha שלך שגויה. אנא נסה שנית."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "עלייך לספק קוד הזמנה בכדי ליצור חשבון."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "קוד ההזמנה אשר סיפקת אינו תקף."
-
-#: ../user/create_account_action.php:84
-#, fuzzy
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "צריכה להיות כתובת תקפה בצורת 'שם@דומיין'"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-#, fuzzy
-msgid "New passwords are different"
-msgstr "סיסמא חדשה, שוב"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "צור חשבון"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "פרוייקט זה ישתייך לקבוצה %1 ויהיה בעל העדפות הפרוייקט של מייסד הקבוצה."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "קוד הזמנה"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "נדרש קוד הזמנה תקף בכדי ליצור חשבון."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "כתובת דוא\"ל"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "צריכה להיות כתובת תקפה בסגנון 'שם@דומיין'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "סיסמא"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "נדרשים לפחות %1 תווים"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "אימות סיסמא"
-
-#: ../user/create_account_form.php:113
-#, fuzzy
-msgid "Please enter the words shown in the image"
-msgstr "אנא הזן את המילים אשר מוצגות בתמונה."
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "צור חשבון"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "תמונה"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 תמונת הפרופיל שלך מוצגת מצד שמאל."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"בכדי להחליף אותה, לחץ על כפתור \"עיון\" ובחר קובץ JPEG או PNG (%1 או פחות)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "בכדי להסירה מהפרופיל שלך, סמן תיבה זו:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"אם ברצונך להוסיף תמונה לפרופיל שלך, לחץ על כפתור \"עיון\" ובחר בקובץ JPEG או "
-"PNG. אנא בחר תמונה בגודל %1 או פחות."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "שפה"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "בחר את שפת הפרופיל שלך:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "הגש פרופיל"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "אנא הזן את המילים אשר מוצגות בתמונה."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "צור/ערוך פרופיל"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "הפורמט של התמונות שלך אינו נתמך."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "%1הפרופיל%2 שלך מאפשר לך לשתף את דעותייך ואת הרקע שלך עם קהילת %3."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "תגובת ה-ReCaptcha שלך שגויה. אנא נסה שנית."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"תגובתך הראשונה סומנה כזבל על-ידי מערכת למניעת זיבול של Akismet. אנא ערוך את "
-"הטקסט ונסה שנית."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"תגובתך השנייה סומנה כזבל על-ידי מערכת למניעת זיבול של Akismet. אנא ערוך את "
-"הטקסט ונסה שנית."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "הפרופיל שהגשת הינו ריק."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "לא ניתן לעדכן את הפרופיל: שגיאת בסיס נתונים"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "לא ניתן ליצור פרופיל: שגיאת בסיס נתונים"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "הפרופיל נשמר"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "ברכותינו! הפרופיל שלך התווסף בהצלחה לבסיס הנתונים שלנו."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1צפה בפרופיל שלך%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "צור פרופיל"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"בכדי למנוע זיבול, נדרש ממוצע של %1 נקודות זכות או יותר. אנו מתנצלים על אי "
-"הנוחות."
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "לא ניתן לבטל מחשב ישן"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "נתוני חשבון"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "המלצתך נרשמה."
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "צור חשבון"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-#, fuzzy
-msgid "Are you sure you want to delete your account?"
-msgstr "האם אתה בטוח כי ברצונך למחוק את ההעדפות הנפרדות של %1 עבור %2?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "כן"
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "מחק מחשב זה"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "לא"
-
-#: ../user/delete_account.php:80
-#, fuzzy
-msgid "Do not delete this account"
-msgstr "מחק מחשב זה"
-
-#: ../user/delete_profile.php:30
-#, fuzzy
-msgid "couldn't delete profile - please try again later"
-msgstr "לא ניתן להצטרף לקבוצה - אנא נסה שנית מאוחר יותר."
-
-#: ../user/delete_profile.php:33
-#, fuzzy
-msgid "Delete Confirmation"
-msgstr "מידע אודות המחשב"
-
-#: ../user/delete_profile.php:35
-#, fuzzy
-msgid "Your profile has been deleted."
-msgstr "הודעתך נשלחה."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-#, fuzzy
-msgid "Delete my profile"
-msgstr "צור פרופיל"
-
-#: ../user/delete_profile.php:53
-#, fuzzy
-msgid "Do not delete my profile"
-msgstr "אני %1לא אוהב%2 פרופיל זה"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-#, fuzzy
-msgid "Your donation for has been completed."
-msgstr "המלצתך נרשמה."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-#, fuzzy
-msgid "This project is not accepting donations."
-msgstr "בקשה זו עדיין ממתינה לאישור."
-
-#: ../user/donations.php:34
-#, fuzzy
-msgid "%1 donations"
-msgstr "%1 ימים"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-#, fuzzy
-msgid "Anonymous donation"
-msgstr "פלטפורמה אנונימית"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-#, fuzzy
-msgid "Proceed"
-msgstr "הפרופיל נשמר"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "הורדת תכנת תוסף עבור BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "ניתן להוריד יישומים במספר קטגוריות."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "יישומים אלו אינם מאושרים על-ידי %1 והשימוש בהם הוא על אחריותך."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"אנו לא מספקים הוראות להתקנת יישומים אלו.\n"
-"עם זאת, שהמחבר עשוי היה לספק מעט עזרה לגבי התקנה או הסרה של היישום .\n"
-"אם אין זה מספיק עליך ליצור קשר עם המחבר."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "הוראות התקנה והפעלה של BOINC  נמצאות %1כאן%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "רשימה זו מנוהלת בבסיסה ב%1אתר BOINC%2."
-
-#: ../user/edit_email_action.php:31
-#, fuzzy
-msgid "Change email address of account"
-msgstr "שנה את כתובת הדוא\"ל של חשבונך"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "כתובת דוא\"ל חדשה"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "אימות סיסמא"
-
-#: ../user/edit_email_action.php:62
-#, fuzzy
-msgid "The email address of your account is now %1."
-msgstr "כתובת הדוא\"ל של חשבונך תוקפה."
-
-#: ../user/edit_email_action.php:64
-#, fuzzy
-msgid "Please %1validate this email address%2."
-msgstr "תיקוף כתובת דוא\"ל"
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "לא ניתן לבחור בסיס נתונים - אנא נסה שנית מאוחר יותר"
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "שנה כתובת דוא\"ל"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "שנה את כתובת הדוא\"ל של חשבונך"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "כתובת דוא\"ל חדשה"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "צריכה להיות כתובת תקפה בצורת 'שם@דומיין'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "ללא סיסמא?"
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "אימות סיסמא"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "הסר העדפות"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "לא קיים משתמש"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-#, fuzzy
-msgid "On my Account page (no email)"
-msgstr "קבלת מפתח חשבון בדוא\"ל"
-
-#: ../user/edit_forum_preferences_form.php:58
-#, fuzzy
-msgid "Immediately, by email"
-msgstr "קבלת מפתח חשבון בדוא\"ל"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "לוח הודעות"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "אל תשתמש בתגי HTML."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-#, fuzzy
-msgid "Signature for message board posts"
-msgstr "יצירת לוח הודעות עבור %1"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "לוחות הודעות"
-
-#: ../user/edit_forum_preferences_form.php:129
-#, fuzzy
-msgid "What to display"
-msgstr "אין משימות להצגה"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "אשכולות"
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "הודעות"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "לוח הודעות"
-
-#: ../user/edit_forum_preferences_form.php:164
-#, fuzzy
-msgid "Filtered users"
-msgstr "מסננים"
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "לוחות הודעות והודעות פרטיות"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "הוסף משתמש למסנן"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "עדכון העדפות"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "מפתח חשבון חלש"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "אימות סיסמא"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "שינוי סיסמא"
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "הודעתך נשלחה."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "לא ניתן להתחבר לבסיס הנתונים - אנא נסה שנית מאוחר יותר"
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "תוכל לזהות את עצמך על-ידי שימוש"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "בכתובת הדוא\"ל והסיסמא הישנה שלך"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "במפתח החשבון שלך"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "סיסמא נוכחית"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>או</b>: מפתח חשבון"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "קבלת מפתח חשבון בדוא\"ל"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "סיסמא חדשה"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "סיסמא חדשה, שוב"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "תגיות HTML אסורות לשימוש בשמך."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "עלייך לספק שם עבור חשבונך."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "לא ניתן לעדכן מידע משתמש."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "ערוך מידע חשבון"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "שם %1 שם אמיתי או כינוי%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "כתובת %1 אתר האינטרנט שלך; אפשרי%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "מיקוד %1 אפשרי%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "עדכון מידע"
-
-#: ../user/explain_state.php:27
-#, fuzzy
-msgid "Server states"
-msgstr "מצב השרת"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "בתהליך"
-
-#: ../user/explain_state.php:41
-#, fuzzy
-msgid "The task has been sent; waiting for completion."
-msgstr "משימות ממתינות למחיקת קבצים"
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-#, fuzzy
-msgid "Outcomes"
-msgstr "תוצאה"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "שגיאת תיקוף"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-#, fuzzy
-msgid "Client states"
-msgstr "מצב המחשב"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "זמן דיווח<br />או תאריך יעד"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-#, fuzzy
-msgid "Already reported"
-msgstr "כבר חברים"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "לא ידוע"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "כתובת אימייל"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "שלח הודעה"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "נקודות זכות ממתינות"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-#, fuzzy
-msgid "Tell your friends about %1"
-msgstr "דעותיך על %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your name:"
-msgstr "הצג שמות"
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "כתובת אימייל"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "חברים"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "כתובת דוא\"ל חדשה"
-
-#: ../user/ffmail_form.php:56
-#, fuzzy
-msgid "Additional message (optional)"
-msgstr "הוסף הודעה אופציונאלית כאן:"
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "שולח"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-#, fuzzy
-msgid "No user with this ID found."
-msgstr "לא נמצא מחשב עם הזיהוי %1"
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "משתמש מוחרם"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-#, fuzzy
-msgid "User Request"
-msgstr "אין בקשה"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "אחד מהשניים"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "גרסא"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-#, fuzzy
-msgid "You must specify an action..."
-msgstr "עלייך לספק שם עבור חשבונך."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-#, fuzzy
-msgid "You are not authorized to edit this post."
-msgstr "אתה כעת חבר של %1."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "ערוך את הפרופיל שלך"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "כותרת"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "הוסף את חתימתי לרשומה זו"
-
-#: ../user/forum_forum.php:41
-#, fuzzy
-msgid "Not visible to you"
-msgstr "פורום זה אינו גלוי לך."
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "יצירת לוח הודעות עבור %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "אשכול"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "הוסף הודעה חדשה לאשכול זה"
-
-#: ../user/forum_forum.php:116
-#, fuzzy
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "חדשות זמינות כ%sעדכון RSS%s"
-
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "אשכול זה הוסתר על-ידי מנהלי הפורום"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "לא נקרא"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "לא נקרא"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "אין לך הודעות פרטיות."
-
-#: ../user/forum_forum.php:192
-#, fuzzy
-msgid "This thread is sticky and locked"
-msgstr "נעץ אשכול זה"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "נעץ אשכול זה"
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "sticky"
-msgstr "נעץ"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "נעץ אשכול זה"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "בטל נעילה"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "You read this thread"
-msgstr "הסתר אשכול זה"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "אשכול"
-
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "שאלות ותשובות"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "נושא"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "גרסא"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "דיון בין חברי %1"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "לוחות ההודעות של %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"אם יש לך שאלה או בעיה, אנא השתמש בחלק %1שאלות ותשובות%2 של לוחות המודעות."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "הרשמה"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "הודעה אחרונה"
-
-#: ../user/forum_moderate_post.php:52
-#, fuzzy
-msgid "Hide post"
-msgstr "הסתר"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "אין שרת מארח"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "הצב הודעה באשכול זה"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "לא קיים משתמש"
-
-#: ../user/forum_moderate_post.php:80
-#, fuzzy
-msgid "Ban duration"
-msgstr "אימות"
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "שעות"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 ימים"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "הרשומות של %1"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-#, fuzzy
-msgid "You are not authorized to moderate this post."
-msgstr "אתה כעת חבר של %1."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "לא נשלח"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "משתמש מוחרם"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "סיסמא נוכחית"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "תיאור הקבוצה"
-
-#: ../user/forum_moderate_thread.php:77
-#, fuzzy
-msgid "New title:"
-msgstr "ערוך כותרת"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-#, fuzzy
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"תגובתך הראשונה סומנה כזבל על-ידי מערכת למניעת זיבול של Akismet. אנא ערוך את "
-"הטקסט ונסה שנית."
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "צור אשכול חדש"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "צור אשכול חדש"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-#, fuzzy
-msgid "This function is turned off by the project"
-msgstr "תכונה זו אינה פעילה זמנית"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-#, fuzzy
-msgid "You have already rated this post."
-msgstr "הנך כבר חבר ב-%1."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "חזרה לדף הקבוצה"
-
-#: ../user/forum_rate.php:72
-#, fuzzy
-msgid "Input Recorded"
-msgstr "הצבעה נרשמה"
-
-#: ../user/forum_rate.php:73
-#, fuzzy
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "המלצתך נרשמה."
-
-#: ../user/forum_rate.php:75
-#, fuzzy
-msgid "Vote Registered"
-msgstr "הצבעה נרשמה"
-
-#: ../user/forum_rate.php:76
-#, fuzzy
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "המלצתך נרשמה."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-#, fuzzy
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"תגובתך הראשונה סומנה כזבל על-ידי מערכת למניעת זיבול של Akismet. אנא ערוך את "
-"הטקסט ונסה שנית."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "הצב הודעה באשכול זה"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "הודעה"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-#, fuzzy
-msgid "Post reply"
-msgstr "אין תשובה"
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "הוסף את חתימתי לרשומה זו"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Report Registered"
-msgstr "תאריך יעד לדיווח"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "המלצתך נרשמה."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "הודעה אחרונה"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "הודעה אחרונה"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-#, fuzzy
-msgid "Report not registered"
-msgstr "תאריך יעד לדיווח"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-#, fuzzy
-msgid "This message board is available as an RSS feed."
-msgstr "חדשות זמינות כ%sעדכון RSS%s"
-
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "אפשרי"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "חיפוש בפורום"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "סוג חיפוש"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "חפש פורומים"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "חפש פורומים"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "חפש פורומים"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "תוצאות חיפוש"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "הרשומות של %1"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-#, fuzzy
-msgid "Sort by"
-msgstr "מיין"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "תוצאות חיפוש בפורום"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "לא נמצאו פרופילים המתאימים לחיפושך."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "לא נמצאו פרופילים המתאימים לחיפושך."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-#, fuzzy
-msgid "Subscription successful"
-msgstr "עדכון בוצע בהצלחה"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "תיאור הקבוצה"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "יצירת חשבון אינה פעילה בזמן זה. אנא נסה שנית מאוחר יותר."
-
-#: ../user/forum_subscribe.php:61
-#, fuzzy
-msgid "Unsubscription successful"
-msgstr "עדכון בוצע בהצלחה"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "ביטול הרשמה"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "יצירת חשבון אינה פעילה בזמן זה. אנא נסה שנית מאוחר יותר."
-
-#: ../user/forum_subscribe.php:74
-#, fuzzy
-msgid "Unknown subscription action"
-msgstr "פעולה לא ידועה"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "פורום זה אינו גלוי לך."
-
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "אשכול זה הוסתר על-ידי מנהלי הפורום"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "שאלתי נענתה"
-
-#: ../user/forum_thread.php:129
-#, fuzzy
-msgid "Click here if your question has been adequately answered"
-msgstr "אם קיבלת תשובה מספקת לשאלתך, לחץ כאן כדי לסגור אותה!"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "כמו כן, ברצוני לשאול שאלה זו"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "הוסף הודעה חדשה לאשכול זה"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "ביטול הרשמה"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "אתה רשום לאשכול זה. לחץ כאן כדי לביטול ההרשמה."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "הרשמה"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr "לחץ לקבלת הודעות בדוא\"ל כאשר ישנן רשומות חדשות באשכול זה"
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "הצג אשכול זה"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "הסתר אשכול זה"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "בטל נעיצה"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "בטל נעיצה של אשכול זה"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "נעץ"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "נעץ אשכול זה"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "בטל נעילה"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "בטל נעילה של אשכול זה"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "נעל"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "נעל אשכול זה"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "הזז אשכול זה לפורום אחר"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "ערוך כותרת"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "ערוך כותרת אשכול"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "מיין"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "הודעות"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "כבר חברים"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "ביקשת להיות חבר של %1 ב-%2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "בקשה זו עדיין ממתינה לאישור."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 אינו מקבל בקשות חברות ממך"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "אינך יכול להיות חבר של עצמך"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "הוסף חבר"
-
-#: ../user/friend.php:74
-#, fuzzy
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"ביקשת להוסיף את %1 כחבר/ה. אנו נודיע ל-%2 ונבקש ממנו/ה לאשר כי הנכם חברים."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "הוסף הודעה אופציונאלית כאן:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "בקשת חברות נשלחה"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "יידענו את %1 על בקשתך."
-
-#: ../user/friend.php:126
-#, fuzzy
-msgid "Please log in as %1"
-msgstr "מחובר כ%1."
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "בקשת חברות"
-
-#: ../user/friend.php:141
-#, fuzzy
-msgid "%1 has requested friendship with you."
-msgstr "ביקשת להיות חבר של %1 ב-%2."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 אומר: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "קבל חברות"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "לחץ על קבל במידה ו-%1 הוא אכן חבר"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "דחייה"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "לחץ על דחייה במידה ו-%1 אינו חבר"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "חברות אושרה"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "חברותך עם %1 אושרה."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "חברות נדחתה"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "דחית חברות עם %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "התראה לא נמצאה"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "החבר אושר"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "אתה כעת חבר של %1."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "לבטל חברות?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "האם אתה בטוח כי ברצונך לבטל את חברותך עם %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "השארו חברים"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "חברות בוטלה"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "חברותך עם %1 בוטלה."
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "מידע חשבון אחר"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-#, fuzzy
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "אנא בקר בקישור הבא בכדי לתקף את כתובת הדוא\"ל של חשבונך ב-%1:"
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "ברוכים הבאים ל-%1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "צפה וערוך את העדפות החשבון שלך בעזרת הקישורים הבאים."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-#, fuzzy
-msgid "Anonymous platform, missing app"
-msgstr "פלטפורמה אנונימית"
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "פלטפורמה אנונימית"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-#, fuzzy
-msgid "Missing app"
-msgstr "סוג חיפוש חסר"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-#, fuzzy
-msgid "Max tasks per day"
-msgstr "אין משימות להצגה"
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "אין משימות להצגה"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "קצב העלאה ממוצע"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "פרטי יישום עבור מחשב %1"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "מזג רשומות כפולות של מחשב זה"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "מחק מחשב זה"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "תאריך יעד לדיווח"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "הרץ את %1 רק על מחשבים מורשים"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "מזג מחשבים לפי שם"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "מזג מחשבים לפי שם"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "הצג שמות"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "שם"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "נוצר"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "זיהוי מחשב"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "אין שרת מארח"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "מזג"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "הסתיים"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-#, fuzzy
-msgid "Return to host page"
-msgstr "חזרה לדף הקבוצה"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "מחשבים המשתייכים ל-%1"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "מידע אודות המחשב"
-
-#: ../user/hosts_user.php:56
-#, fuzzy
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "משתמש זה בחר שלא להציג מידע אודות המחשבים שלו."
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "מחשבים מובילים"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "אל תשתמש בתגי HTML."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "נוצר"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "הרץ את %1 רק על מחשבים מורשים"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"הרץ את %1 רק על מחשבים אשר משתייכים לך, או על מחשבים אשר לגביהם קיבלת את "
-"רשות הבעלים. בחלק מהחברות ובתי-הספר קיימת מדיניות האוסרת שימוש במחשביהם "
-"לפרוייקטים כגון %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "איזה שימוש יעשה %1 במחשבך"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"כאשר תריץ את %1 על מחשבך, הוא ינצל חלק מכוח העיבוד, שטח הדיסק ורוחב הפס של "
-"המחשב. באפשרותך לשלוט בכמות המשאבים בהם %1 יעשה שימוש, ובזמן השימוש בהם."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"העבודה אשר מתבצעת על-ידי מחשבך תורמת למטרות של %1, כפי שמתואר באתר שלו. "
-"תוכנות היישום עשויות להשתנות מדי פעם."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "מדיניות פרטיות"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"חשבונך ב-%1 מזוהה על-ידי שם לבחירתך. שם זה עשוי להיות מוצג באתר של %1, מלווה "
-"בסיכום העבודה אשר מחשבך ביצע עבור %1. אם ברצונך להשאר אנונימי, בחר בשם אשר "
-"אינו חושף את זהותך."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"אם אתה נוטל חלק ב-%1, מידע אודות מחשבך (כגון סוג מעבד, כמות זכרון וכו') "
-"יתועד על-ידי %1 וינוצל בכדי להחליט לגבי סוג העבודה אשר יוקצב עבור מחשבך. כמו "
-"כן, מידע זה יוצג באתר של %1. לא יוצג אף פרט אשר חושף את מיקום מחשבך (כגון "
-"שם תחום או כתובת רשת)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"בכדי להשתתף ב-%1, עלייך לספק כתובת אליה תקבל הודעות דוא\"ל. כתובת זו לא תוצג "
-"באתר של %1 או תשותף עם ארגונים. %1 עשוי לשלוח עלוני מידע תקופתיים; עם זאת, "
-"באפשרותך לבטלם בכל עת. "
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"הודעות פרטיות אשר נשלחות באתר של %1 גלויות רק לשולח ולנמען. %1 אינו בוחן או "
-"מפקח על תוכנן של הודעות פרטיות. אם אתה מקבל הודעות פרטיות בלתי רצויות ממשתמש "
-"%1 אחר, באפשרותך להוסיפו ל%2מסנן ההודעות%3 שלך. הדבר ימנע ממך לצפות בהודעות "
-"ציבוריות או פרטיות של משתמש זה."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"אם אתה משתמש בפורומים של האתר שלנו, עלייך לעקוב אחר %2הנחיות הצבת ההודעות%3. "
-"הודעות המוצבות בפורומים של %1 גלויות לכולם, גם לאנשים שאינם חברים. כאשר אתה "
-"מציב הודעות בפורומים, אתה מעניק אישור שלא ניתן לבטלו לצפייה והעתקה של "
-"הודעותיך."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "האם זה בטוח להריץ את %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"בכל פעם בה אתה מוריד תכנה מהאינטרנט, אתה נוטל סיכון: שגיאות מסוכנות עלולות "
-"להופיע בתכנה, או ששרת ההורדה נפרץ. %1 עשה מאמצים בכדי למזער סיכונים אלה. "
-"בדקנו את היישומים שלנו בזהירות. שרתינו מוגנים על-ידי חומת אש ומוגדרים לרמת "
-"אבטחה גבוהה. על מנת להבטיח את שלמות הורדות התכנה, כל הקבצים הניתנים להרצה "
-"נחתמו דיגיטלית על מחשב מאובטח אשר לא מחובר לרשת האינטרנט."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"היישומים אשר מורצים על-ידי %1 עשויים לגרום להתחממות-יתר בחלק מהמחשבים. אם "
-"הדבר קורה, הפסק להריץ את %1 או השתמש ב%2תכנת שירות%3 המגבילה את ניצול המעבד."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 פותח על-ידי %2. BOINC פותחה על-ידי אוניברסיטת קליפורניה."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "אחריות"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 ו-%2 אינם נוטלים כל אחריות על נזק אשר ייגרם למחשבך, איבוד מידע או כל "
-"אירוע או מצב אחר, אשר עלול להיגרם כתוצאה מהשתתפות ב-%1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "פרוייקטי BOINC אחרים"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"פרוייקטים אחרים משתמשים באותה הפלטפורמה, BOINC, כמו %1. אולי תרצה לשקול "
-"להשתתף באחד או יותר מפרוייקטים אלו. כך, מחשבך יוכל לבצע עבודה מועילה, גם "
-"כאשר ל-%1 אין עבודה זמינה למחשבך."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"פרוייקטים אחרים אלו אינם משוייכים ל-%1, ואין באפשרותינו לערוב לאמצעי אבטחתם "
-"או לטבע מחקרם. ההצטרפות לקבוצה היא על אחריותך."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "בחירת שפה"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "אתר זה זמין במספר שפות. השפה הנוכחית היא %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"לרוב, בחירת השפה נקבעת על-ידי הגדרת השפה של הדפדפן, שהיא: %1. באפשרותך לשנות "
-"הגדרה זו באמצעות:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: כלים-אפשרויות-כללי"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Internet Explorer: כלים-אפשרויות אינטרנט-שפות"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"או שבאפשרותך לבחור שפה על-ידי לחיצה על אחד הקישורים הבאים. הדבר יישלח עוגיה "
-"לדפדפן שלך; וודא כי הדפדפן מוגדר לקבל עוגיות מהתחום שלנו."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "שם השפה (לחץ לבחירה)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "השתמש בהגדרת השפה של הדפדפן"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"התרגומים מבוצעים על-ידי מתנדבים. אם שפת האם שלך לא מופיעה כאן, %1באפשרותך "
-"לספק תרגום%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "כתובת דוא\"ל:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "שכחת את כתובת הדוא\"ל?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "סיסמא:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "שכחת את הסיסמא?"
-
-#: ../user/login_form.php:51
-#, fuzzy
-msgid "Stay logged in"
-msgstr "לא מחובר."
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "או %1צור חשבון%2."
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "מעבד"
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "מתבצע מיזוג של מחשב %1 למחשב %2"
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "הרץ את %1 רק על מחשבים מורשים"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "הרץ את %1 רק על מחשבים מורשים"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "נקודות זכות ממתינות"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "יחידת עבודה"
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Host ID"
-msgstr "מחשב"
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "נקודות זכות מוענקות"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "נקודות זכות ממתינות"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "לא קיים משתמש"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "הודעתך נשלחה."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "אין לך הודעות פרטיות."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "שולח ותאריך"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "חזרה לדף הקבוצה"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "מחק הודעות נבחרות"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "מחק הודעות נבחרות"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "שולח"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "תאריך"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "עלייך למלא את כל השדות על מנת לשלוח הודעה פרטית"
-
-#: ../user/pm.php:188
-#, fuzzy
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"תגובתך הראשונה סומנה כזבל על-ידי מערכת למניעת זיבול של Akismet. אנא ערוך את "
-"הטקסט ונסה שנית."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "לא ניתן למצוא משתמש עם הזיהוי %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "לא ניתן למצוא משתמש עם שם המשתמש %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 אינו שם משתמש ייחודי; עלייך להשתמש בזיהוי משתמש"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "משתמש %1 (זיהוי: %2) אינו מקבל הודעות פרטיות ממך."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "לא קיים משתמש"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "האם לחסום את %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "האם אתה בטוח כי ברצונך לחסום את המשתמש %1 לשליחת הודעות פרטיות?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "שים לב, כי באפשרותך לחסום כמות מוגבלת של משתמשים."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"ברגע שהמשתמש נחסם, באפשרותך לבטל את החסימה על-ידי שימוש בדף העדפות פורום."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "לא, ביטול"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "לא קיים משתמש"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "משתמש %1 נחסם"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "משתמש %1 נחסם לשליחת הודעות פרטיות."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "בכדי לבטל חסימה, בקר ב%1העדפות לוח הודעות%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "פעולה לא ידועה"
-
-#: ../user/prefs.php:32
-#, fuzzy
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"העדפותיך עודכנו, ו\n"
-"\t      ייכנסו לתוקף כאשר מחשבך ייתקשר עם %1\n"
-"\t      או הרץ את פקודת %2עדכון%3 במנהל של BOINC."
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 עבור %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "חזרה להעדפות"
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr "אשר מחיקת העדפות"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "האם אתה בטוח כי ברצונך למחוק את ההעדפות הנפרדות של %1 עבור %2?"
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "הסר העדפות"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "ביטול"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1פרופילים%2 מאפשרים לאנשים לשתף רקעים ודעות עם קהילת %3."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"גלה את המגוון הרחב של עמיתיך המתנדבים, ותרום את השקפותיך להנאתם של אחרים."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "אם טרם עשית זאת, באפשרותך %1ליצור פרופיל אישי%2 שאחרים יוכלו לראות!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "משתמש היום"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "סייר פרופיל משתמש"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "צפה ב%1גלריית תמונות משתמש%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "דפדף בפרופילים %1לפי מדינה%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"דפדף בפרופילים %1באקראיות%2, %3באקראיות עם תמונות%2 או %4באקראיות ללא תמונות"
-"%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "רשומות פרופילים לפי א\"ב:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "חיפוש טקסט בפרופיל"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "אין פרופילים"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "לא נמצאו פרופילים המתאימים לחיפושך."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr "סוג הצבעה לא תקף:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "הצבעה נרשמה"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "תודה לך"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "המלצתך נרשמה."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr "הצבעתך לדחיית פרופיל זה נרשמה."
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "חזרה לפרופיל."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "שם המשימה"
-
-#: ../user/profile_search_action.php:41
-#, fuzzy
-msgid "Joined project"
-msgstr "הצטרפת ל-%1"
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "עם נקודות זכות אחרונות"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "משימה %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "תכונה זו אינה פעילה זמנית"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "לא נמצא מחשב עם הזיהוי %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "אין גישה"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "חסר זיהוי משתמש או מחשב"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "אין משימות להצגה"
-
-#: ../user/server_status.php:97
-#, fuzzy
-msgid "Running"
-msgstr "רץ/רצה (מדובר בפרוייקט או משימה?!)"
-
-#: ../user/server_status.php:100
-#, fuzzy
-msgid "Not Running"
-msgstr "לא רץ/רצה (כנ\"ל)"
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr "מנוטרל"
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "מצב הפרוייקט"
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "גרסת תכנת השרת: %1"
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr "תכנית"
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr "מחשב"
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "שרת העלאה/הורדה"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "מתזמן"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "רץ:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "התכנה מתפקדת כראוי"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "לא רץ:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "כשלון בתכנית או שהפרוייקט לא פעיל"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "מנוטרל:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "התכנית מנוטרלת"
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr "מצב החישוב"
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "שרת בסיס-הנתונים אינו נגיש"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "משימות מוכנות לשליחה"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-#, fuzzy
-msgid "Tasks in progress"
-msgstr "משימות בתהליך"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "יחידות עבודה ממתינות לאישור"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "יחידות עבודה ממתינות להטמעה"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "יחידות עבודה ממתינות למחיקת קבצים"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "משימות ממתינות למחיקת קבצים"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr "משתמשים"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "עם נקודות זכות אחרונות"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "עם נקודות זכות"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "נרשמו ב-24 השעות האחרונות"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "GigaFLOP נוכחי"
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr "משימות לפי יישום"
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "יישום"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "לא נשלח"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "בתהליך"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "זמן ריצה ממוצע בשעות של 100 התוצאות האחרונות (מינימום-מקסימום)"
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "משתמשים ב-24 השעות האחרונות"
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "מחשב"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "סטטיסטיקות וטבלאות מובילים"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "סטטיסטיקות עבור %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"סטטיסטיקות מפורטות יותר עבור %1 ופרוייקטים מבוססי BOINC אחרים ניתן למצוא "
-"בכמה אתרי אינטרנט:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr "באפשרותך לקבל את הסטטיסטיקות הנוכחיות שלך בצורת \"תמונת חתימה\":"
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"בנוסף, באפשרותך לקבל סיכום של הסטטיסטיקות האישיות שלך בכל פרוייקטי BOINC "
-"ממספר אתרים; ראה את %1דף הבית%2."
-
-#: ../user/team.php:27
-#, fuzzy
-msgid "%1 participants may form %2teams%3."
-msgstr "משתתפי %1 רשאים ליצור %2קבוצות%3"
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"באפשרותך להשתייך לקבוצה אחת בלבד. תוכל להצטרף לקבוצה או לעזוב אותה בכל זמן "
-"שתרצה."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "לכל קבוצה יש %1מייסד%2 אשר יכול:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "לגשת לכתובות דוא\"ל של חברי הקבוצה"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "לערוך את שם הקבוצה ותיאורה"
-
-#: ../user/team.php:35
-#, fuzzy
-msgid "add or remove team admins"
-msgstr "הוסף או הסר מנהלי קבוצה"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "להסיר חברים מהקבוצה"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "לפרק קבוצה אם אין בה חברים"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "בכדי להצטרף לקבוצה, בקר באתר של הקבוצה ולחץ על %1הצטרף לקבוצה זו%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "מצא קבוצה"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "כל הקבוצות"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "הקבוצות של %1"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "יצירת קבוצה חדשה"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "אם אינך מוצא קבוצה המתאימה לך, באפשרותך %1ליצור קבוצה%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr "הסר את הרשאות מנהל קבוצה ממשתמש זה"
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "הוסף או הסר מנהלי קבוצה"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "באפשרותך לבחור חברי קבוצה להיות מנהלי קבוצה. מנהלי קבוצה יכולים:"
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr "לערוך את מידע הקבוצה (שם, כתובת אתר, תיאור, מדינה)"
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr "לצפות בהיסטוריית הצטרפות/עזיבת קבוצה"
-
-#: ../user/team_admins.php:45
-#, fuzzy
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"לנהל את פורום הקבוצה, אם קיים (מנהלים מקבלים התראות בדוא\"ל אודות אירועי "
-"ניהול ודיווחי X אדום)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "מנהלי קבוצה לא יכולים:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "לשנות את מייסד הקבוצה"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "להסיר משתמשים"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "אם מנהל קבוצה עוזב את הקבוצה, הוא מפסיק להיות מנהל קבוצה."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-"אנו ממליצים כי תבחר רק אנשים אותם אתה מכיר וסומך עליהם להיות מנהלי קבוצה."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "כרגע לא קיימים מנהלי קבוצה"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "מנהלי קבוצה נוכחיים"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "הפוך למנהל קבוצה ב"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "הוסף מנהל קבוצה"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "כתובת הדוא\"ל של חבר הקבוצה:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "כשלון בהסרת מנהל"
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr "המשתמש אינו חבר בקבוצה"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr "%1 הוא כבר מנהל של %2"
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr "לא ניתן להוסיף מנהל"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "לא קיימת קבוצה"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "לא קיימת קבוצה"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "המשתמש אינו חבר ב-%1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "משנה את מייסד %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 הוא כעת המייסד של %2"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "שינוי המייסד של %1"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-"חבר הקבוצה %1 ביקש את הרשאות המייסד של הקבוצה בתאריך %2, אך עזב את הקבוצה, "
-"ובכך ביטל את הבקשה."
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"חבר הקבוצה %1 ביקש את הרשאות המייסד של הקבוצה. הדבר ייתכן עקב עזיבתך את "
-"הקבוצה או חוסר תקשורת עם הקבוצה במשך זמן רב."
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "סירוב לבקשה"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"אם לא תסרב לבקשתו של %1, ל-%2 תהיה אפשרות לקבל על עצמו את הרשאות מייסד "
-"הקבוצה. <br /><br />\n"
-" בכדי לקבל את הבקשה, הקצה את הרשאות המייסד ל-%3 בעזרת הטופס הבא."
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "אין בקשת העברה ממתינה."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"בכדי להקצות את הרשאות מייסד הקבוצה לחבר אחר, סמן את התיבה ליד שמו של החבר "
-"ולחץ על <strong>שנה מייסד</strong> בתחתית."
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "מייסד חדש?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "שינוי מייסד"
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "עלייך לבחור שם קבוצה שאינו ריק"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "קבוצה בשם %1 כבר קיימת - נסה שם אחר"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "לא ניתן ליצור קבוצה - אנא נסה מאוחר יותר."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "צור קבוצה"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "אתה משתייך ל-%1. עלייך %2לעזוב קבוצה זו%3 בטרם תיצור קבוצה חדשה."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr "לא מייסד או מנהל"
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "היסטוריית קבוצה עבור %1"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "מתי"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "משתמש"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "פעולה"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr "סך נקודות זכות בזמן הפעולה"
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "מדינה שגויה"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "השם '%1' נמצא בשימוש של קבוצה אחרת."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "יש לציין את שם הקבוצה"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "לא ניתן לעדכן קבוצה - אנא נסה שנית מאוחר יותר."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "עריכת %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "עדכון מידע אודות הקבוצה"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "רשימת התפוצה של %1"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "רשימת חברי %1"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "הצג כטקסט פשוט"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr "יצירת לוח הודעות"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr "באפשרותך ליצור לוח הודעות לשימוש ע\"י %1."
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr "רק חברי הקבוצה יורשו להציב הודעות."
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "אם תרצה, רק חברים יוכלו לקרוא."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "לך ולמנהלי הקבוצה יהיו הרשאות ניהול פורום."
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr "יצירת לוח הודעות עבור %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr "כבר קיים לוח הודעות לקבוצה"
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr "לוח ההודעות של הקבוצה"
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr "זמן מינימלי בין הצבת הודעות (שניות)"
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "הגשה"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr "הסר את לוח ההודעות של הקבוצה."
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr "האם להסיר את לוח ההודעות?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-"האם אתה בטוח כי ברצונך להסיר את לוח ההודעות של קבוצתך? כל האשכולות וההודעות "
-"יוסרו לצמיתות. (למרות זאת, באפשרותך ליצור לוח הודעות חדש בהמשך)."
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr "כן - הסר את לוח ההודעות"
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr "לוח הודעות הוסר"
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr "לוח ההודעות של קבוצתך הוסר. באפשרותך כעת %1ליצור לוח חדש%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr "לוח ההודעות של הקבוצה עודכן"
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "עדכון בוצע בהצלחה"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "עדכון נכשל"
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "לקבוצה לא קיים פורום"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "עלייך להיות חבר בקבוצה בכדי להיכנס לדף זה."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr "מבקש הרשאות מייסד של %1"
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"המייסד הנוכחי קיבל הודעה בדוא\"ל והודעה פרטית בנוגע לבקשתך.<br /><br />\n"
-" אם המייסד לא יגיב תוך 60 יום, תורשה להפוך למייסד."
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr "לא ניתן לבקש הרשאות מייסד בזמן זה"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr "הוקצאו הרשאות מייסד של %1"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-"ברכותינו, אתה כעת המייסד של הקבוצה %1. גש ל%2דף החשבון שלך%3 בכדי למצוא את "
-"אפשרויות מנהל הקבוצה."
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr "סרב לבקשת החלפת המייסד"
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr "בקשת הרשאות המייסד של %1 נדחתה"
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr "לא קיימות בקשות להרשאות מייסד."
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "פעולה לא מוגדרת %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "חזרה לדף הקבוצה"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "עלייך להיות חבר בקבוצה בכדי להיכנס לדף זה."
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr "בקשת הרשאות מייסד של %1"
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr "אתה כעת המייסד של הקבוצה %1."
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr "ביקשת את הרשאות המייסד של %1 בתאריך %2."
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-"חלפו 60 יום מאז בקשתך, והמייסד טרם הגיב. באפשרותך להקצות את הרשאות המייסד "
-"לעצמך ע\"י לחיצה כאן:"
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr "הקצה הרשאות מייסד"
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-"הודעה על בקשתך נשלחה למייסד. אם הוא/היא לא יגיב/תגיב עד %1, יהיה באפשרותך "
-"להפוך למייסד."
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-"אם מייסד הקבוצה אינו פעיל וברצונך לקבל את תפקיד המייסד, לחץ על הלחצן למטה. "
-"המייסד הנוכחי יקבל דוא\"ל המפרט את בקשתך ויוכל להעביר לך את הרשאות המייסד או "
-"לסרב לבקשה. במידה והמייסד לא יענה תוך 60 יום, תוכל להפוך למייסד.<br /><br />\n"
-" האם אתה בטוח שברצונך לבקש הרשאות מייסד?"
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr "בקשת הרשאות מייסד"
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "שינוי המייסד כבר התבקש ע\"י %1 בתאריך %2."
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-"שינוי הרשאות מייסד כבר התבקש במהלך 90 הימים האחרונים, ולכן לא ניתן לבקש שוב. "
-"אנא נסה שנית מאוחר יותר."
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr "לא ניתן להצטרף לקבוצה %1."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "כבר חבר"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "הנך כבר חבר ב-%1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "לא ניתן להצטרף לקבוצה - אנא נסה שנית מאוחר יותר."
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "הצטרפת ל-%1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr "הצטרפת ל-%1."
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "הצטרף ל-%1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr "שים לב:"
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr "הצטרפות לקבוצה מעניקה למייסד גישה לכתובת הדוא\"ל שלך."
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr "הצטרפות לקבוצה אינה משפיעה על נקודות הזכות שלך."
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr "הצטרף לקבוצה"
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "תוצאות חיפוש"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "תוצאות חיפוש עבור '%1'"
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr "באפשרותך לצפות בחברים, הסטטיסטיקות והמידע של הקבוצות הללו."
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "למעלה מ-100 קבוצות התאימו לחיפוש שלך. 100 הראשונות מוצגות."
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"סוף התוצאות. %1 אם אינך מוצא את הקבוצה אותה אתה מחפש, באפשרותך %2ליצור קבוצה"
-"%3 בעצמך."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr "ניהול קבוצה עבור %1"
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "ערוך את המידע אודות הקבוצה"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "שנה את שם הקבוצה, כתובת האתר, התיאור, הסוג או המדינה."
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "רשימת חברים:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "טקסט"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "הצג שמות חברים וכתובות דוא\"ל"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr "הצג היסטוריית שינויים:"
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr "בדוק מתי חברים הצטרפו לקבוצה או עזבו אותה"
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr "הגב לבקשת הרשאות מייסד."
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "אם לא תגיב עד %1, %2 יוכל להקצות לעצמו את הרשאות המייסד של הקבוצה."
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr "הסר חברים לא פעילים או לא רצויים מהקבוצה"
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr "העבר הרשאות מייסד לחבר אחר"
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "הוסף/הסר מנהלי קבוצה"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr "הענק לחברי הקבוצה הנבחרים הרשאות מנהלי קבוצה"
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "הסר קבוצה"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "אפשרי רק כאשר אין חברים בקבוצה"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr "יצירת או ניהול לוח ההודעות של הקבוצה"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"בכדי להקים קבוצה זו בכל פרוייקטי BOINC (נוכחיים ועתידיים), באפשרותך להפוך "
-"אותה ל%1קבוצת BOINC-wide%2."
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-"אנו מעודדים מנהלי קבוצה להצטרף ולהשתתף בקבוצת %מייסדי קבוצות boinc%2 של "
-"Google."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"משאבים אחרים עבור מנהלי קבוצות BOINC ניתן למצוא באתר צד שלישי, %"
-"1www.boincteams.com%2"
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "לא ניתן למחוק קבוצה לא ריקה"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "קבוצה %1 נמחקה"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "חריגה מהמגבלה: ניתן להציג רק את 1000 החברים הראשונים."
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "חברי %1"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "לא ניתן לעזוב את הקבוצה"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "קבוצה לא קיימת, או שאינך משתייך אליה."
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "עזוב את %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>שים לב לפני הפרישה מקבוצה:</strong>\n"
-"         <ul>\n"
-"         <li>אם תפרוש מקבוצה, ביכולתך להצטרף מחדש מאוחר יותר, או להצטרף לכל "
-"קבוצה אחרת שתחפוץ בה\n"
-"         <li>הפרישה מקבוצה לא משפיע על סטטיסטיקת הניקודות זכות האישיות שלך "
-"באף צורה.\n"
-"         </ul>"
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "עזוב קבוצה"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "מסיר משתמשים מ-%1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 אינו חבר ב-%2"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 הוסר"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "הסרת חברים מ-%1"
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "האם להסיר?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "שם (זיהוי)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "לא קיימים חברים המתאימים להסרה."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "הסר משתמשים"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "שם הקבוצה"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "תוצאות חיפוש קבוצה"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "לא נמצאו קבוצות המתאימות לקריטריונים שלך. נסה חיפוש נוסף."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "או שתוכל %1ליצור קבוצה חדשה%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-"הקבוצות הבאות תואמות לאחד או יותר מקריטריוני החיפוש שלך.\n"
-"בכדי להצטרף לקבוצה, לחץ על שמה על מנת לגשת לדף הקבוצה,\n"
-"ולאחר מכן לחץ %1הצטרף לקבוצה זו%2."
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "שינוי החיפוש"
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-"תוכל להצטרף לאנשים אחרים בעלי תחומי עניין זהים, או מאותה המדינה, חברה או "
-"אותו בית-ספר."
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr "השתמש בטופס זה בכדי למצוא קבוצות אשר עשויות להתאים לך."
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1איני מעוניין%2 להצטרף לקבוצה בשלב זה."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "חריגה מהמגבלה - אנו מתנצלים, %1 הפריטים הראשונים בלבד"
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "המחשבים המובילים"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "הקבוצות המובילות של %1"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr "לא קיימות קבוצות של %1"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "משתתף מאז"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "לא נבחר משתמש היום."
-
-#: ../user/uotd.php:33
-#, fuzzy
-msgid "User of the Day for %1: %2"
-msgstr "משתמש היום של/בתאריך %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "מסננים"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "שם משתמש מתחיל ב-"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "כל"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "עם פרופיל?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "אחד מהשניים"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "נמצא בקבוצה?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "ממוצע נקודות זכות לאחרונה"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "ממוצע נקודות זכות לאחרונה"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "מחרוזת החיפוש צריכה להכיל מינימום 3 תווים"
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "תוצאות חיפוש משתמש"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "הצטרף"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr "לא נמצאו משתמשים המתאימים לקריטריונים שלך."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "משתמש לא נמצא!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "קבוצה:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "סך נקודות זכות של הקבוצה:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "ממוצע נקודות זכות של הקבוצה:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "קבוצה: אף אחת"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "תיקוף כתובת דוא\"ל של BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "אנא בקר בקישור הבא בכדי לתקף את כתובת הדוא\"ל של חשבונך ב-%1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "נשלח אימייל לתיקוף"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-"אימייל עבור %1 נשלח. בקר בקישור אשר הוא מכיל בכדי לתקף את כתובת הדוא\"ל שלך."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "לא קיים משתמש."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "שגיאה בנתוני URL - לא ניתן לתקף כתובת דוא\"ל"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "כשלון בעדכון בסיס-נתונים - אנא נסה שנית מאוחר יותר."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "תיקוף כתובת דוא\"ל"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "כתובת הדוא\"ל של חשבונך תוקפה."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "למשתמש זה אין פרופיל"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "פרופיל: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "נתוני חשבון"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "מפתח חשבון חלש"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "לא ניתן למצוא יחידת עבודה"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "יחידת עבודה %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "תוצאה קאנונית"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "נקודות זכות מוענקות"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "סיום ממתין שנדחק"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "שכפול ראשוני"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "מספר מירבי של משימות שגויות/כוללות/מוצלחות"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "שגיאות"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "אימות"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "ממתין"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "עמוד ראשי"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "זכויות יוצרים"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "נוצר"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr "הרקע האישי שלך."
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"ספר לנו על עצמך. תוכל לספר מהיכן אתה, מה גילך, עיסוקך, תחביביך או כל דבר "
-"אחר."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "דעותיך על %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-"ספר לנו את מחשבותייך על %1<ol>\n"
-"<li>מדוע אתה מריץ את %1?\n"
-"<li>מהן השקפותייך על הפרוייקט?\n"
-"<li>הצעות כלשהן?\n"
-"</ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "תרשימי צבעים עבור גרפיקות"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "% מירבי עבור גרפיקות%10...100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "הרץ את היישומים הנבחרים בלבד"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "אם לא קיימת עבודה עבור היישומים הנבחרים, האם לקבל עבודה מיישומים אחרים?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(כל היישומים)"
-
-#~ msgid "Error:"
-#~ msgstr "שגיאה:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "יצירת חשבון אינה פעילה"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "יצירת חשבון אינה פעילה בזמן זה. אנא נסה שנית מאוחר יותר."
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "הנ\"ל מיושם בכלל פרוייקטי BOINC בהם אתה משתתף.<br>\n"
-#~ "במחשבים אשר משתתפים במספר פרוייקטים, ההעדפות ששונו לאחרונה יהיו בשימוש."
-
-#~ msgid "No such task"
-#~ msgstr "משימה זו לא קיימת"
-
-#, fuzzy
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "המחשב מחובר לאינטרנט בערך כל %1 השאר ריק או 0 אם מחובר תמיד. %2 BOINC ינסה "
-#~ "להשאיר לפחות כמות זו של עבודה. %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "שמור כמות עבודה אשר תספיק לעוד"
-
-#~ msgid "Update failed: "
-#~ msgstr "עדכון נכשל:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "מספק %1גישה מוגבלת%2 לחשבונך"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "הערה: אם אתה משתמש במנהל BOINC, אל תשתמש בטופס זה. פשוט הפעל את BOINC, בחר "
-#~ "בהוספת פרוייקט והזן כתובת דוא\"ל וסיסמא. "
-
-#, fuzzy
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "המלצתך נרשמה."
-
-#~ msgid "Search type"
-#~ msgstr "סוג חיפוש"
-
-#~ msgid "User names starting with"
-#~ msgstr "שמות משתמש מתחילים ב-"
-
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "'מפתח החשבון החלש' מאפשר לך לקשר מחשב לחשבונך מבלי לאפשר לו להתחבר לחשבון או "
-#~ "לשנות אותו באף צורה."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "מנגנון זה עובד רק עם פרוייקטים אשר שידרגו את תכנת השרת שלהם ב-7.12.2007 או "
-#~ "מאוחר יותר."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "מפתח החשבון החלש שלך עבור פרוייקט זה:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "בכדי להשתמש במפתח החשבון החלש שלך במחשב נתון, מצא או צור את 'קובץ החשבון' "
-#~ "עבור פרוייקט זה. התבנית של שם הקובץ היא <b>account_PROJECT_URL.xml</b>. קובץ "
-#~ "החשבון עבור %1 הוא <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "צור קובץ זה במידת הצורך. הגדר את תוכנו ל:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "מפתח החשבון החלש שלך הוא נגזרת של סיסמתך. אם תשנה את סיסמתך, ישתנה מפתח "
-#~ "החשבון החלש שלך, והמפתח הקודם לא יהיה בתוקף."
-
-#~ msgid "Account key"
-#~ msgstr "מפתח חשבון"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "מספק גישה מלאה לחשבונך"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "מיין"
-
-#~ msgid "- private message"
-#~ msgstr "- הודעה פרטית"
-
-#~ msgid "Private message from"
-#~ msgstr "הודעה פרטית מאת"
-
-#~ msgid "Email address verification pending"
-#~ msgstr "אימות כתובת מייל ממתין"
-
-#~ msgid "Log in as someone else."
-#~ msgstr "התחבר כגורם אחר."
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr "לא קיים אשכול עם הזיהוי %1. אנא בדוק את הקישור ונסה שנית."
-
-#~ msgid "Request not found"
-#~ msgstr "בקשה לא נמצאה"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 הוסיף אותך כחבר."
-
-#~ msgid "Account data for %1"
-#~ msgstr "נתוני חשבון עבור %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "לא ניתן ליצור לוח הודעות"
-
-#~ msgid "message board not found"
-#~ msgstr "לוח הודעות לא נמצא"
-
-#~ msgid "no such forum"
-#~ msgstr "לא קיים פורום"
-
-#~ msgid "unknown command %1"
-#~ msgstr "פקודה לא מוכרת %1"
diff --git a/locale/he/BOINC-Setup.mo b/locale/he/BOINC-Setup.mo
index b12362a..816a261 100644
Binary files a/locale/he/BOINC-Setup.mo and b/locale/he/BOINC-Setup.mo differ
diff --git a/locale/he/BOINC-Setup.po b/locale/he/BOINC-Setup.po
old mode 100755
new mode 100644
index e31e256..ca164df
--- a/locale/he/BOINC-Setup.po
+++ b/locale/he/BOINC-Setup.po
@@ -1,100 +1,102 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Shmuel Shwartz, 2016
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: he\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-29 13:49+0000\n"
+"Last-Translator: Shmuel Shwartz\n"
+"Language-Team: Hebrew (http://www.transifex.com/boinc/boinc/language/he/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.5\n"
-"X-Poedit-SearchPath-0: mac_installer\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
-"X-Poedit-KeywordsList: _\n"
+"Language: he\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr ""
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "מצטערים, גירסה זו של %s דורשת מערכת 10.6 ומעלה."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
-msgstr ""
+msgstr "כן"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
-msgstr ""
+msgstr "לא"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
-msgstr ""
+msgstr "האם על BOINC לפעול גם כאשר אף משתמש אינו מחובר?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
-"Users who are permitted to administer this computer will automatically be "
-"allowed to run and control %s.\n"
+"Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
-"Do you also want non-administrative users to be able to run and control %s "
-"on this Mac?"
-msgstr ""
+"Do you also want non-administrative users to be able to run and control %s on this Mac?"
+msgstr "משתמשים המורשים לנהל מחשב זה יאופשרו אוטומטית להפעיל ולשלוט ב-%s.\n\nהאם ברצונך שגם משתמשים שאינם מנהלי מערכת יוכלו לנהל ולשלוט ב-%s  ב-Mac זה?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr ""
+msgstr "האם ברצונך להגדיר את %s כשומר מסך עבור כל המשתמשים ב-%s  ב-Mac זה?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
-msgstr ""
+msgstr "אישור"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
-msgstr ""
+msgstr "הרשאה שגיאה לאחר הפעה מחדש"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
-msgstr ""
+msgstr "ההסרה עשויה להימשך מספר דקות.\nנא המתן בסבלנות."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
 "\n"
 "This will remove the executables but will not touch %s data files."
-msgstr ""
+msgstr "האם אתה בטוח שברצונך להסיר את %s לחלוטין מהמחשב שלך?\n\nפעולה זו תסיר את קבצי ההפעלה אך לא תיגע בקבצי הנתונים של %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
-msgstr ""
+msgstr "בוטל: לא בוצע כל שינוי ב-%s."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
-msgstr ""
+msgstr "אירעה שגיאה: קוד שגיאה %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
-msgstr ""
+msgstr "שם המשתמש"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
-msgstr ""
+msgstr "האם ברצונך להסיר גם את VirtualBox מהמחשב שלך?\n(VirtualBox הותקן יחד עם BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -104,20 +106,19 @@ msgid ""
 "\n"
 "for each user, the file\n"
 "\"%s\"."
-msgstr ""
+msgstr "ההסרה הושלמה.\n\nייתכן שתרצה להסיר את הפריטים הנותרים הבאים באמצעות Finder: \nספריית \"%s\"\n\nעבור כל משתמש, הקובץ \n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
-"Enter your administrator password to completely remove %s from you "
-"computer.\n"
+"Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
-msgstr ""
+msgstr "הזן את סיסמת מנהל המערכת כדי להסיר לחלוטין את %s מהמחשב שלך.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
-msgstr ""
+msgstr "ביטול"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
-msgstr ""
+msgstr "המשך..."
diff --git a/locale/he/BOINC-Web.po b/locale/he/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/hr/BOINC-Client.po b/locale/hr/BOINC-Client.po
old mode 100755
new mode 100644
diff --git a/locale/hr/BOINC-Manager.po b/locale/hr/BOINC-Manager.po
old mode 100755
new mode 100644
diff --git a/locale/hr/BOINC-Project-Generic.po b/locale/hr/BOINC-Project-Generic.po
deleted file mode 100755
index 1d881b0..0000000
--- a/locale/hr/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6467 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: hr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr ""
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr ""
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr ""
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/hr/BOINC-Setup.po b/locale/hr/BOINC-Setup.po
old mode 100755
new mode 100644
diff --git a/locale/hr/BOINC-Web.po b/locale/hr/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/hu/BOINC-Client.mo b/locale/hu/BOINC-Client.mo
index 6da83a8..ccc117e 100644
Binary files a/locale/hu/BOINC-Client.mo and b/locale/hu/BOINC-Client.mo differ
diff --git a/locale/hu/BOINC-Client.po b/locale/hu/BOINC-Client.po
index 819247b..32fadb9 100644
--- a/locale/hu/BOINC-Client.po
+++ b/locale/hu/BOINC-Client.po
@@ -1,162 +1,178 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Attila Fenyvesi <fenya25 at gmail.com>, 2017
 # Gabor Cseh <csega at mailbox.hu>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-23 23:14+0000\n"
-"Last-Translator: Gabor Cseh <csega at mailbox.hu>\n"
-"Language-Team: Hungarian (http://www.transifex.com/projects/p/boinc/language/hu/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-24 23:43+0000\n"
+"Last-Translator: Attila Fenyvesi <fenya25 at gmail.com>\n"
+"Language-Team: Hungarian (http://www.transifex.com/boinc/boinc/language/hu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: hu\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Üzenet a fiókkezelőtől"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Üzenet a szervertől"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Néhány feladatnak a beállításokban engedélyezettnél több memóriára van szüksége. Kérjük, ellenőrizd a beállításokat."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Az állapotadatok nem írhatók; kérjük, ellenőrizd a könyvtár jogosultságait"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "A HTTP_PROXY környezeti változónak egy HTTP proxy-t kell megadnia"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Nem megfelelő URL-t adtál meg a projekthez. Távolítsd el ezt a projektet, majd add hozzá %s-t"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Ez a projekt régi URL-t használ. Amikor kényelmes távolítsd el a projektet, aztán add hozzá %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Szintaktikai hiba az app_info.xml-ben"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "A hivatkozott fájl nem létezik az app_info.xml-ben:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Új BOINC verzió érhető el."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Letöltés"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "nem használható CUDA vagy OpenCL számításra a CUDA illesztőprogram 6.5 vagy későbbi verziójával"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Váratlan szöveg a cc_config.xml fájlban"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Felismerhetetlen címke a cc_config.xml-ben"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Hiányzó indító címke a cc_config.xml fájlban"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Hiba a cc_config.xml beállításaiban"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Hiányzó lezáró címke a cc_config.xml fájlban"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "A javításhoz Ön megteheti "
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "változtassa meg a Projekt Beállításokat a projekt weboldalán"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "távolítsa el a GPU kivételeket az Ön cc_config.xml filejában"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "változtassa meg a beállításait az Ön fiókkezelőjének a weboldalán"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Érvénytelen vagy hiányzó fiókkulcs. A hiba kijavításához csatlakoztasd le, majd add hozzá újra ezt a projektet."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Érvénytelen aláíró kulcs. A hiba kijavításához csatlakozz le, majd add hozzá újra ezt a projektet."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "A projekt megváltoztatta a biztonsági kulcsát. Kérjük, csatlakoztasd le, majd add hozzá újra ezt a projektet."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Ez a projekt nem támogatja az alábbi operációs rendszert"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Ez a projekt nem támogatja az alábbi CPU típust"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Az Ön BOINC kliens szoftvere túl régi. Kérjük, telepítse a jelenlegi verziót."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Ez a projekt nem támogatja az alábbí típusú számítógépet"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "A számítógép GPU-ját használó feladatok futtatásához telepítsd a legfrissebb videókártya illesztőprogramot"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "E projekt GPU-alkalmazásainak használatához telepítsd a legfrissebb videókártya illesztőprogramot"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "NVIDIA GPU-d használatához a BOINC újabb verziója szükséges; kérjük, telepítsd a jelenlegi verziót"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "%s GPU szükséges a projekt feladatainak futtatásához"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Az általad kiválasztott alkalmazásokhoz nincs elérhető feladat."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Ez a projekt nem támogatja a számítógéptípusodat"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Újabb BOINC verzió szükséges; kérjük, telepítsd a legfrissebbet"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "%s számára elérhetőek feladatok, de a beállításaid miatt nem futtathatók"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Ismeretlen alkalmazásnév az app_info.xml fájlban"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Az app_info.xml fájlodnak nincsen használható verziója erről a projektről:"
diff --git a/locale/hu/BOINC-Manager.mo b/locale/hu/BOINC-Manager.mo
index f039a79..a453955 100644
Binary files a/locale/hu/BOINC-Manager.mo and b/locale/hu/BOINC-Manager.mo differ
diff --git a/locale/hu/BOINC-Manager.po b/locale/hu/BOINC-Manager.po
index b649849..61d44d5 100644
--- a/locale/hu/BOINC-Manager.po
+++ b/locale/hu/BOINC-Manager.po
@@ -1,65 +1,58 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Attila Fenyvesi <fenya25 at gmail.com>, 2015
+# Attila Fenyvesi <fenya25 at gmail.com>, 2015,2017
 # Gabor Cseh <csega at mailbox.hu>, 2015-2016
 # misibacsi, 2015
 # Zoltan Retvari <retvari at freemail.hu>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-04-11 12:37+0000\n"
-"Last-Translator: Gabor Cseh <csega at mailbox.hu>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-23 17:31+0000\n"
+"Last-Translator: Attila Fenyvesi <fenya25 at gmail.com>\n"
 "Language-Team: Hungarian (http://www.transifex.com/boinc/boinc/language/hu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: hu\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Fiókod azonosítása itt: %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Kérjük, add meg fiókinformációid\n(fiók létrehozásához keresd fel a projekt weblapját)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Ebben a projektben jelenleg nem készíthetők új fiókok.\nCsak akkor csatlakozhatsz, ha már van fiókod."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Már futtatod ezt a projektet?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Nem, új felhasználó"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Igen, létező felhasználó"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -69,85 +62,85 @@ msgid ""
 "password fields."
 msgstr "Az automatikus fiókinformáció-beállítás\nnem sikerült.\n\nKérjük, kattints az alábbi 'Bejelentkezési infók keresése' linkre\na megfelelő email cím és jelszó\ninformációkért."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Bejelentkezési infók keresése"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Jelszó:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Válassz &jelszót:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "Jelszó &megerősítése:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Már futtatod a(z) %s-t?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Felhasználói név:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&Email cím vagy LDAP azonosító:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Email cím:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "minimum hossz %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Elfelejtetted a jelszavad?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Ha még nem regisztráltál erre a fiókkezelőre,\nkérjük, tedd meg, mielőtt továbblépnél. Kattints az alábbi\nlinkre a regisztrációhoz, vagy az elfelejtett jelszó visszaszerzéséhez."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "A fiókkezelő honlapja"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Projekt hozzáadása"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "A fiókkezelő frissítése"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "A fiókkezelő használata"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Kérjük, adj meg egy felhasználónevet."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Kérjük, adj meg egy email címet."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Kérjük, adj meg egy legalább %d karakter hosszú jelszót."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "A jelszó és megerősítése nem egyezik. Kérlek, próbáld újra."
@@ -200,11 +193,11 @@ msgstr "Kérjük, várj..."
 msgid "An internal server error has occurred.\n"
 msgstr "Belső szerverhiba történt.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Kapcsolódva"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Kapcsolat megszakítva"
 
@@ -219,8 +212,8 @@ msgid "Open another %s window"
 msgstr "Másik %s ablak megnyitása"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Számítógép kiválasztása..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Számítógép kiválasztása...⇥Ctrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -530,7 +523,7 @@ msgstr "%s &weboldal"
 msgid "Show information about BOINC and %s"
 msgstr "Információk a BOINC kezelőről és erről: %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -565,12 +558,12 @@ msgstr "&Eszközök"
 msgid "&Help"
 msgstr "&Segítség"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - %s használatának befejezése"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -580,39 +573,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Ha befejezed %s használatát,\nazzal bár megtartod jelenlegi projektjeid,\nde csak manuálisan tudod kezelni azokat.\n\nBiztosan befejezed %s használatát?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - A jelenlegi kliens leállítása..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s le fogja állítani az aktuális klienst\nés bekéri tőled egy másik gazdagép adatait."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s sikeresen hozzáadva ehhez: %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Kapcsolódás ehhez: %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Kapcsolódva ehhez: %s (%s)"
@@ -661,7 +654,7 @@ msgid "%s - Communication"
 msgstr "%s - Kommunikáció"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Mégsem"
@@ -736,7 +729,7 @@ msgid ""
 msgstr "%s jelenleg nem kapcsolódsz egy %s klienshez sem.\nKérjük, használd a 'Haladó\\Számítógép kiválasztása...' menüpontot egy %s klienshez való csatlakozáshoz.\nA helyi számítógép csatlakoztatásához a számítógépnév megadásánál használd a 'localhost' kifejezést."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "A projekt weboldalai"
 
@@ -796,7 +789,7 @@ msgstr "A(z) %s sikeresen lekapcsolódott az internetről."
 msgid "%s failed to disconnected from the Internet."
 msgstr "A(z) %s nem tudott lekapcsolódni az internetről."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -809,170 +802,170 @@ msgid ""
 "     user group."
 msgstr "Jelenleg nem vagy jogosult a kliens kezelésére.\n\n%s használata ezzel a felhasználóval:\n- telepítsd újra %s-t és válaszolj \"Igen\"-nel a\nnem adminisztratív felhasználókra vonatkozó kérdésre\nvagy\n- lépj kapcsolatba a rendszergazdával és kérd meg, hogy adjon hozzá a\n'boinc_master'\nfelhasználói csoporthoz."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "A(z) %s tulajdonosi és hozzáférési jogai nincsenek megfelelően beállítva; kérjük, telepítsd újra a(z) %s-t.\n(Hibakód %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr "itt:"
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "A BOINC megfelelő futásához újraindítás szükséges.\nKérjük, indítsd újra a számítógépet, majd próbáld újra."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC Kezelő"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "A BOINC Kezelőt az operációs rendszer automatikusan indította"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "A BOINC indítása csak tálcaikonként "
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "A futtatható BOINC Klienst tartalmazó könyvtár"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "BOINC adatkönyvtár"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Gazdanév vagy IP cím"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "GUI RPC portszám"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Jelszó"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "A BOINC indítása a következő opcionális paraméterekkel"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "BOINC biztonsági felhasználók és hozzáférések kikapcsolása"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "kinézet hibakereső mód beállítása, ezzel a kinézetkezelő hibaüzeneteinek engedélyezése"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "a BOINC Kezelő több példányának futása engedélyezve"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Nincs használatban az XCode 4.2-ben található hibához készített megoldás "
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Ne futtasd a kiszolgálót"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Automatikus felismerés)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Ismeretlen)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Felhasználó által megadva)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "%s megnyitása a Weben..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "%s megnyitása..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Alvó állapot"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "GPU szundi"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "K&ilépés"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Folytatás"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "GPU folytatása"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Számítás engedélyezve"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Számítás felfüggesztve -"
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU számítás engedélyezve"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU számítás felfüggesztve -"
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Hálózati forgalom engedélyezve"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Hálózati forgalom felfüggesztve -"
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Újracsatlakozás a klienshez."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Nincs kapcsolódva a klienshez."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Megjegyzések"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Új üzenetek érkeztek - kattints a megtekintésükhöz."
 
@@ -1087,46 +1080,6 @@ msgstr "További információkért keresd fel"
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Érvénytelen szám"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Érvénytelen idő, az értéknek 0:00 és 24:00 közt kell lennie, a formátum: ÓÓ:PP"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "A kezdő időpontnak különböznie kell a záró időponttól"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "A számnak 0 és 10 közt kell lennie"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "A számnak 0 és 100 közt kell lennie"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "A számnak 1 és 100 között kell lennie"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "érvénytelen bemeneti érték"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Érvényesítési hiba"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Eldobod a helyi beállításokat és a webalapú beállításokat használod?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Megerősítés"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1174,7 +1127,7 @@ msgid "Daily schedules"
 msgstr "Napi menetrend"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1189,7 +1142,7 @@ msgstr "Párbeszédablak bezárása mentés nélkül."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Súgó"
@@ -1588,75 +1541,123 @@ msgstr "Fájlok továbbítása csak a nap egy meghatározott időszakában."
 msgid "Transfer files only between"
 msgstr "Csak ettől eddig továbbítson fájlokat:"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Érvénytelen szám"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Érvénytelen idő, az értéknek 0:00 és 24:00 közt kell lennie, a formátum: ÓÓ:PP"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "A kezdő időpontnak különböznie kell a záró időponttól"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "A számnak 0 és 10 közt kell lennie"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "A számnak 0 és 100 közt kell lennie"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "A számnak 1 és 100 között kell lennie"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "érvénytelen bemeneti érték"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Érvényesítési hiba"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Eldobod a helyi beállításokat és a webalapú beállításokat használod?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Megerősítés"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s diagnosztikai naplózás jelzők"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Ezek a jelzők különböző hibakeresési üzenetet engedélyeznek, amik a hibanaplóba kerülnek."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "További infó"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Minden érték mentése és a párbeszédablak bezárása."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "Alapértelmezett"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Visszaállítás alapértelmezettre "
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Párbeszédablak bezárása mentés nélkül"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Alkalmaz"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Összes érték mentése"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Eseménynapló"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projekt"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Idő"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Üzenet"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Csak ezt a projektet mutassa"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "&Mindent másol"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Minden üzenet másolása a vágólapra."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "&Kijelöltek másolása"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1664,7 +1665,7 @@ msgid ""
 "messages."
 msgstr "A kiválasztott üzenetek másolása a vágólapra. Több üzenetet is kiválaszthatsz, ha az üzenetkre történő kattintás közben nyomva tartod a Shift, vagy a parancsbillentyűt."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1672,19 +1673,19 @@ msgid ""
 "messages."
 msgstr "A kiválasztott üzenetek másolása a vágólapra. Több üzenetet is kiválaszthatsz, ha az üzenetkre történő kattintás közben nyomva tartod a Shift, vagy a CTRL billentyűt."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Bezárás"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "&Minden üzenet mutatása"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Az összes projekt üzeneteinek mutatása."
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Csak a kiválasztott projekt üzeneteinek mutatása"
 
@@ -1707,7 +1708,7 @@ msgid "Add an application to this list"
 msgstr "Alkalmazás hozzáadása ehhez a listához"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Eltávolítás"
 
@@ -2041,14 +2042,14 @@ msgstr "Erőforrások"
 msgid "Estimated computation size"
 msgstr "Becsült kiszámítási idő"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "CPU idő az utolsó ellenőrzőpontnál"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Processzor idő"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "CPU idő az utolsó ellenőrzőpont óta"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Eltelt idő"
@@ -2098,8 +2099,8 @@ msgstr "másodpercenként"
 msgid "Executable"
 msgstr "Program"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Helyi:"
 
@@ -2458,203 +2459,191 @@ msgstr "Kutatás"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Tudj meg többet a World Community Grid-nél futó projektekről"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Kliens indítása"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Csatlakozás a klienshez"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Rendszerállapot lekérdezése; kérlek várj..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Hiányzó alkalmazás"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Kérjük, töltsd le és telepítsd a CoRD alkalmazást a http://cord.sourceforge.net oldalról"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "akkumulátorról működik"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "a számítógép használatban van"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "felhasználói kérés"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "napszak"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "CPU sebességmérés fut"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "több lemezterület szükséges - ellenőrizd a beállításokat"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "a számítógép nincs használatban"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "elindulás"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "egy exkluzív alkalmazás fut"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "a CPU foglalt"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "hálózati sávszélességi korlát túllépve"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "az operációs rendszer kérésére"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "ismerelten ok"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU hiányzik,"
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Új"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Sikertelen letöltés"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Letöltés"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (felfüggesztve - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "A projektet a felhasználó felfüggesztette"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "A feladatot a felhasználó felfüggesztette"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Felfüggesztve - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU felfüggesztve - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Várakozás a memóriára"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Várakozás a megosztott memóriára"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Fut"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (nem CPU igényes)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Futásra vár"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Indításra kész"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Elhalasztva:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Elhalasztva"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "Várakozás a hálózati hozzáférésre"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Számolási hiba"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Sikertelen feltöltés"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Feltöltés"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Felhasználó által eldobva"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "A projekt által eldobva"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Eldobva: a jelentési határidőig nem indult el"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Megszakítva: a feladat meghaladta a  tárhelykorlátot"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Megszakítva: futási időkorlát túllépve"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Megszakítva: memóriakorlát túllépve"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Eldobva"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Nyugtázva"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Jelentésre kész"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Hiba: érvénytelen állapot '%d'"
@@ -2718,7 +2707,7 @@ msgstr "Projekt kiválasztásához kattints a projekt nevére vagy gépeld be al
 msgid "Categories:"
 msgstr "Kategóriák:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projektek:"
 
@@ -2762,24 +2751,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Már hozzáadtad ezt a projektet. Kérjük, válassz másikat."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Kommunikáció a projekttel."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Kommunikáció a projekttel.\nKérlek, várj..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "A szükséges fájlok nem találhatók a szerveren."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Belső szerverhiba történt."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Kommunikáció a projekttel.\nKérlek, várj..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2877,1024 +2863,938 @@ msgstr "Automatikus felismerés"
 msgid "SOCKS proxy"
 msgstr "SOCKS proxy"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Felhasználási feltételek"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Kinézet"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Kérjük, olvasd el a következő felhasználási feltételeket:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Válaszd ki a felhasználói felület kinézetét."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Elfogadom a felhasználási feltételeket."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Haladó nézet...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Nem fogadom el a felhasználási feltételeket."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "A haladó grafikus felület megjelenítése."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "A projekt ideiglenesen nem elérhető."
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "A grafikus megjelentés és a proxy beállítása"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "A projekt ideiglenesen nem elérhető.\n\nKérlek, próbáld újra. "
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Diagnosztikai üzenetek mutatása."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "A fiókkezelő ideiglenesen nem elérhető"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "A fiókkezelő ideiglenesen nem elérhető.\n\nKérlek, próbáld újra."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Alapértelmezett"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Kérjük, adj meg egy fiókkulcsot a folytatáshoz."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Felfüggesztés"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Érvénytelen fiókkulcs, kérjük adj meg érvényes fiókkulcsot"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Számítás felfüggesztése"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Érvényesítési ütközés"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Számítás folytatása"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Kérjük, add meg email címed"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Értesítések"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Érvénytelen email cím; kérjük, érvényes emailcímet adj meg"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Ablak nyitása a BOINC-tól, vagy a projektektől érkező üzenetek megtekintéséhez"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Hiányzó URL"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Segítség ehhez: %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Kérjük, adj meg egy URL-t.\nPéldául:\nhttp://www.pelda.hu/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Értesítések betöltése; kérjük, várj..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Érvénytelen URL"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Jelenleg nincsenek értesítések."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Kérjük, adj meg egy érvényes URL-t.\nPéldául:\nhttp://boincprojekt.pelda.hu"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Bezár"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' nem tartalmaz érvényes gépnevet."
+msgid "%s - Notices"
+msgstr "%s - Értesítések"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' nem tartalmaz érvényes útvonalat."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Parancsok"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Minden üzenet másolása"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Kijelölt üzenetek másolása"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Csak ezt a projektet mutasd"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Csak a kiválasztott projekt üzeneteit mutasd."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Üzenetek"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Minden üzenet másolása a vágólapra..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Kiválasztott üzenetek másolása a vágólapra..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Üzenetek szűrése..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Minden üzenet mutatása"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Az összes projekt üzeneteinek mutatása."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "További beállításokért válaszd ki a Számítási beállításokat a Haladó nézetben."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Értesítések betöltése; kérjük, várj..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "Gigabájt lemezterület"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Jelenleg nincsenek értesítések."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Számítási beállítások"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Értesítések"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Eldobod a helyi beállításokat és a webalapú beállításokat használod?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Frissítés"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Befejezett feladatok jelentése, legutóbbi kreditek és beállítások letöltése, esetlegesen új munka letöltése."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Felfüggesztés"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Ezen projekt feladatainak felfüggesztése."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Nincs új feladat"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Ehhez a projekthez nem töltődnek le új feladatok."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Projekt nullázása"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "A projekthez kapcsolódó összes fájl és feladat törlése, és új feladatok kérése. Először frissítsd a projektet, hogy ezzel az összes elkészült feladatot jelentsd."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "A számítógép leválasztása a projektről. Folyamatban lévő munka elvész (először használd a 'Frissítés'-t, hogy az összes elkészült munkát jelentsd)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Tulajdonságok"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "A projekt részleteinek mutatása."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Fiók"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Elkészült munka"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Átl. elkészült munka"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Állapot"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projektek"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Projekt frissítése..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Projekt folytatása..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Projekt felfüggesztése..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Ezen projekt feladatainak folytatása."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "A projekt felkérése további feladatok letöltésének engedélyezésére..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Új feladatok engedélyezése"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "A projekt felkérése további feladatok letöltésének tiltására..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Új feladatok letöltésének engedélyezése e projekthez."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Projekt nullázása..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Letiltja új feladatok letöltését e projekthez."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Biztos vagy benne, hogy a(z) '%s' projektet nullázod?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Projekt nullázása"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Projekt eltávolítása..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Biztos vagy benne, hogy eltávolítod a(z) '%s' projektet?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Projekt eltávolítása"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Böngésző indítása..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Projekt hozzáadása"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Ezen projekt feladatainak folytatása."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Szinkronizálás"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Új feladatok engedélyezése"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "A projektben elvégzett munka"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Új feladatok letöltésének engedélyezése e projekthez."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Vegyél részt bármelyikben a több mint 30 tudományos projektből"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Letiltja új feladatok letöltését e projekthez."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Projektek szinkronizálása a fiókkezelő rendszerrel"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "A felhasználó kezdeményezte"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Válassz ki egy projektet, amelyhez a lenti beállítások szerint szeretnél hozzáférni"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "Új munka kérése"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "A projekt weboldalai"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "Elkészült feladatok jelentése"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Projekt parancsok"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Időközi jelentés küldése"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Felugró menü a(z) %s projekt weboldalairól"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "A fiókkezelő kezdeményezte"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Felugró menü a(z) %s projektre alkalmazható parancsokról"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Projekt előkészítése"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Grafikus ablak megjelenítése"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Projekt kezdeményezte"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Az alkalmazás grafikájának megjelenítése egy új ablakban."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Ismeretlen ok"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Ezen feladat felfüggesztése."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Felhasználó által felfüggesztve"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Eldobás"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Nem tölt le új feladatot"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Ezen feladat eldobása. Nem fogsz kreditet kapni érte."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "A projekt befejeződött - nyomj OK-t az eltávolításához"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Feladat részleteinek megjelenítése."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Eltávolítás a feladatok befejezésekor"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Munka folytatása e feladaton."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Függő kérés az ütemezőhöz"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Munka felfüggesztése e feladaton."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Ütemező által indított kérés folyamatban"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Biztosan eldobod ezt a csomagot: '%s'?\n(Elkészült: %.1lf%%, Állapot: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Időközi jelentés függőben"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Feladat eldobása"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Kommunikáció elhalasztva "
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Nincs egy projekted sem. Kérjük, adj hozzá egyet."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Teljes lemezhasználat"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Nem elérhető"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "A BOINC projektek lemezhasználata"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Feladatok:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "nincs projekt, felhasználva: 0 bájt"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Válassz ki egy feladatot, amelyhez hozzá szeretnél férni"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "BOINC által használt:"
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Innen:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "szabad, a BOINC rendelkezésére áll:"
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Ezen feladat állapota"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "szabad, de nem áll a BOINC rendelkezésére:"
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Feladatparancsok"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "szabad:"
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Felugró menü az ezen feladatra alkalmazható parancsokról"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "más programok által használt: "
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Alkalmazás: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Felhasználó - Összes kredit"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Felhasználó - Átlag kredit"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Alkalmazás: Nem elérhető"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Számítógép - Összes kredit"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Nem elérhető"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Számítógép - Átlag kredit"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Eltelt: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Utolsó frissítés: %.0f napja"
+msgid "Remaining (estimated): %s"
+msgstr "Hátralévő (becsült): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Felhasználó - Összes kredit"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Állapot: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "A felhasználó összes kreditjének mutatása"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Aktuális állapot lekérdezése."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Felhasználó - Átlag kredit"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Munka letöltése a szerverről."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "A felhasználó kreditátlagának mutatása"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Számítás felfüggesztve: A gép akkumulátorról működik."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Számítógép - Összes kredit"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Számítás felfüggesztve: a felhasználó aktív."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "A számítógép összes kreditjének mutatása"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Számítás felfüggesztve: a felhasználó függesztette fel."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Számítógép - Átlag kredit"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Számítás felfüggesztve: ilyenkor nem dolgozhat."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "A számítógép kreditátlagának mutatása"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Számítás felfüggesztve: sebességmérés fut."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< E&lőző projekt"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Számítás felfüggesztve: lemezterület szükséges"
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Az előző projekt grafikonjának megjelenítése"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Számítás felfüggesztve."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "&Következő projekt >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Várakozás a projektszerverekkel való kapcsolatfelvételre."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "A következő projekt grafikonjának megjelenítése"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Aktuális állapot lekérdezése"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Projektlista elrejtése"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Nincs feldolgozható munka"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Használja a teljes területet a grafikonhoz"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Nem lehet csatlakozni a magklienshez"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Mód nézet"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Felhasználási feltételek"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Egy projekt"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Kérjük, olvasd el a következő felhasználási feltételeket:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Egy grafikon mutatása a kiválasztott projekttel"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Elfogadom a felhasználási feltételeket."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Minden projekt (külön)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Nem fogadom el a felhasználási feltételeket."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Megmutatja az összes projektet, projektenként külön grafikonon"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "A projekt ideiglenesen nem elérhető."
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Minden projekt (együtt)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "A projekt ideiglenesen nem elérhető.\n\nKérlek, próbáld újra. "
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Az összes projekt ábrázolása egy grafikonon"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "A fiókkezelő ideiglenesen nem elérhető"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Minden projekt (összeg)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "A fiókkezelő ideiglenesen nem elérhető.\n\nKérlek, próbáld újra."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Egy grafikonon ábrázolja a projektek összegeit"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Kérjük, adj meg egy fiókkulcsot a folytatáshoz."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Statisztika"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Érvénytelen fiókkulcs, kérjük adj meg érvényes fiókkulcsot"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Grafikonok frissítése..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Érvényesítési ütközés"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Projektlista megjelenítése"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Kérjük, add meg email címed"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "A grafikonokhoz kisebb területet használ"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Érvénytelen email cím; kérjük, érvényes emailcímet adj meg"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Próbálja most"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Hiányzó URL"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Fájlátvitel újrapróbálása most"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Kérjük, adj meg egy URL-t.\nPéldául:\nhttp://www.pelda.hu/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Átvitel megszakítása"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Érvénytelen URL"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Fájlátvitel megszakítása. Nem fogsz kreditet kapni a feladatért."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Kérjük, adj meg egy érvényes URL-t.\nPéldául:\nhttp://boincprojekt.pelda.hu"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Fájl"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' nem tartalmaz érvényes gépnevet."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Feldolgozottság"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' nem tartalmaz érvényes útvonalat."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Méret"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Parancsok"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Eltelt"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Minden üzenet másolása"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Sebesség"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Kijelölt üzenetek másolása"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Adatforgalom"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Csak ezt a projektet mutasd"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Hálózati aktivitás felfüggesztve - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Csak a kiválasztott projekt üzeneteit mutasd."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nAz aktivitás menüben tudod engedélyezni."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Üzenetek"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Minden üzenet másolása a vágólapra..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Próbálkozás az átvitellel..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Kiválasztott üzenetek másolása a vágólapra..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Átvitel megszakítása..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Üzenetek szűrése..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Biztos, hogy megszakítod ezt a fájlátvitelt: '%s'?\nFIGYELEM: Az átvitel megszakítása érvényteleníti a feladatot,\nés így nem fogsz érte kreditet kapni."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Minden üzenet mutatása"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Fájlátvitel megszakítása"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Az összes projekt üzeneteinek mutatása."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Feltöltés"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Fiók"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Letöltés"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Elkészült munka"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "újrapróbálás ennyi idő múlva: "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Átl. elkészült munka"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "nem sikerült"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Állapot"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "felfüggesztve"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projektek"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "aktív"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "A felhasználó kezdeményezte"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "függőben"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Új munka kérése"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr "(a projekt visszatartja:"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Elkészült feladatok jelentése"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Aktív feladatok mutatása"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Időközi jelentés küldése"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Csak az aktív feladatok mutatása."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "A fiókkezelő kezdeményezte"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Grafikus ablak megjelenítése"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Projekt előkészítése"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Az alkalmazás grafikájának megjelenítése egy új ablakban."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Projekt kezdeményezte"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Virtuális gép konzol"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Ismeretlen ok"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Virtuális gép konzol megjelenítése új ablakban."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Felhasználó által felfüggesztve"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Munka felfüggesztése ezen a csomagon."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Nem tölt le új feladatot"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Eldobás"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "A projekt befejeződött - nyomj OK-t az eltávolításához"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Jelen munka eredményének eldobása. Nem fogsz kreditet kapni érte."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Eltávolítás a feladatok befejezésekor"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Feladat részleteinek megjelenítése."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Függő kérés az ütemezőhöz"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Hátralévő (becsült)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Ütemező által indított kérés folyamatban"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Határidő"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Időközi jelentés függőben"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Feladatok"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Kommunikáció elhalasztva "
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Feladat folytatása..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Teljes lemezhasználat"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Feladat felfüggesztése..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "A BOINC projektek lemezhasználata"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "A feladat grafikájának megjelenítése..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "nincs projekt, felhasználva: 0 bájt"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Virtuális gép konzol mutatása a feladathoz..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "BOINC által használt:"
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Biztosan eldobod ezt a csomagot: '%s'?\n(Elkészült: %s, állapot: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "szabad, a BOINC rendelkezésére áll:"
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Biztosan eldobod ezeket a(z) %d feladatokat?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "szabad, de nem áll a BOINC rendelkezésére:"
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Feladat eldobása"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "szabad:"
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Feladat megszakítása..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "más programok által használt: "
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Minden feladat mutatása"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Felhasználó - Összes kredit"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Minden feladat mutatása."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Felhasználó - Átlag kredit"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Munka folytatása e feladaton."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Számítógép - Összes kredit"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Munka felfüggesztése e feladaton."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Számítógép - Átlag kredit"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Tényleg meg akarod szakítani?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Utolsó frissítés: %.0f napja"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Kérdés"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Felhasználó - Összes kredit"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Szolgáltatások"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "A felhasználó összes kreditjének mutatása"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "%s elrejtése"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Felhasználó - Átlag kredit"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Többi elrejtése"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "A felhasználó kreditátlagának mutatása"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Mutasd mindet"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Számítógép - Összes kredit"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "%s bezárása"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "A számítógép összes kreditjének mutatása"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Kinézet"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Számítógép - Átlag kredit"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Válaszd ki a felhasználói felület kinézetét."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "A számítógép kreditátlagának mutatása"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Haladó nézet...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< E&lőző projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "A haladó grafikus felület megjelenítése."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Az előző projekt grafikonjának megjelenítése"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "A grafikus megjelentés és a proxy beállítása"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Következő projekt >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Diagnosztikai üzenetek mutatása."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "A következő projekt grafikonjának megjelenítése"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Projektlista elrejtése"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Alapértelmezett"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Használja a teljes területet a grafikonhoz"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Számítás felfüggesztése"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Mód nézet"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Számítás folytatása"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Egy projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Ablak nyitása a BOINC-tól, vagy a projektektől érkező üzenetek megtekintéséhez"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Egy grafikon mutatása a kiválasztott projekttel"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Segítség ehhez: %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Minden projekt (külön)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Bezár"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Megmutatja az összes projektet, projektenként külön grafikonon"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Értesítések"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Minden projekt (együtt)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "További beállításokért válaszd ki a Számítási beállításokat a Haladó nézetben."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Az összes projekt ábrázolása egy grafikonon"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "Gigabájt lemezterület"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Minden projekt (összeg)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - Számítási beállítások"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Egy grafikonon ábrázolja a projektek összegeit"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Eldobod a helyi beállításokat és a webalapú beállításokat használod?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statisztika"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Projekt hozzáadása"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Projektlista megjelenítése"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Szinkronizálás"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "A grafikonokhoz kisebb területet használ"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "A projektben elvégzett munka"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Próbálja most"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Vegyél részt bármelyikben a több mint 30 tudományos projektből"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Fájlátvitel újrapróbálása most"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Projektek szinkronizálása a fiókkezelő rendszerrel"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Átvitel megszakítása"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Válassz ki egy projektet, amelyhez a lenti beállítások szerint szeretnél hozzáférni"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Fájlátvitel megszakítása. Nem fogsz kreditet kapni a feladatért."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "A projekt weboldalai"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Fájl"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Projekt parancsok"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Feldolgozottság"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Felugró menü a(z) %s projekt weboldalairól"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Méret"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Felugró menü a(z) %s projektre alkalmazható parancsokról"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Eltelt"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Ezen feladat felfüggesztése."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Sebesség"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Ezen feladat eldobása. Nem fogsz kreditet kapni érte."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Adatforgalom"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Biztosan eldobod ezt a csomagot: '%s'?\n(Elkészült: %.1lf%%, Állapot: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Hálózati aktivitás felfüggesztve - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Nincs egy projekted sem. Kérjük, adj hozzá egyet."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nAz aktivitás menüben tudod engedélyezni."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Nem elérhető"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Feladatok:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Biztos, hogy megszakítod ezt a fájlátvitelt: '%s'?\nFIGYELEM: Az átvitel megszakítása érvényteleníti a feladatot,\nés így nem fogsz érte kreditet kapni."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Válassz ki egy feladatot, amelyhez hozzá szeretnél férni"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Fájlátvitel megszakítása"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "Innen:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Feltöltés"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Ezen feladat állapota"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Letöltés"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Feladatparancsok"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "újrapróbálás ennyi idő múlva: "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Felugró menü az ezen feladatra alkalmazható parancsokról"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "nem sikerült"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Alkalmazás: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "felfüggesztve"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "aktív"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Alkalmazás: Nem elérhető"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "függőben"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Nem elérhető"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr "(a projekt visszatartja:"
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Eltelt: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Aktív feladatok mutatása"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Hátralévő (becsült): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Csak az aktív feladatok mutatása."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Állapot: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Virtuális gép konzol"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Aktuális állapot lekérdezése."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Virtuális gép konzol megjelenítése új ablakban."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Munka letöltése a szerverről."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Munka felfüggesztése ezen a csomagon."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Számítás felfüggesztve: A gép akkumulátorról működik."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Jelen munka eredményének eldobása. Nem fogsz kreditet kapni érte."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Számítás felfüggesztve: a felhasználó aktív."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Hátralévő (becsült)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Számítás felfüggesztve: a felhasználó függesztette fel."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Határidő"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Számítás felfüggesztve: ilyenkor nem dolgozhat."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Feladatok"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Számítás felfüggesztve: sebességmérés fut."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Biztosan eldobod ezt a csomagot: '%s'?\n(Elkészült: %s, állapot: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Számítás felfüggesztve."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Biztosan eldobod ezeket a(z) %d feladatokat?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "Várakozás a projektszerverekkel való kapcsolatfelvételre."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Minden feladat mutatása"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Aktuális állapot lekérdezése"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Minden feladat mutatása."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Nincs feldolgozható munka"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Tényleg meg akarod szakítani?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Nem lehet csatlakozni a magklienshez"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Kérdés"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3908,11 +3808,24 @@ msgstr "< &Vissza"
 msgid "&Finish"
 msgstr "&Befejez"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "A hétnek ezen a napján csak ezekben az órákban fusson."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Szolgáltatások"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "%s elrejtése"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Többi elrejtése"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Mutasd mindet"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "A hétnek ezen a napján csak ezekben az órákban továbbítson fájlokat."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "%s bezárása"
diff --git a/locale/hu/BOINC-Project-Generic.po b/locale/hu/BOINC-Project-Generic.po
deleted file mode 100755
index 588466b..0000000
--- a/locale/hu/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,7146 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-04-05 17:35+0000\n"
-"Last-Translator: Gabor <csega at mailbox.hu>\n"
-"Language-Team: \n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n !=1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Bookmarks: 7,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1396719309.0\n"
-
-# The name of this language in this language
-msgid "LANG_NAME_NATIVE"
-msgstr "Magyar"
-
-# The name of this language in an international language (English)
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Hungarian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Félkövér szöveg: [b]szöveg[/b] (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Dőlt szöveg: [i]szöveg[/i] (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Aláhúzott szöveg: [u]szöveg[/u] (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Idézett szöveg: [quote]szöveg[/quote] (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Kód megjelenítése: [code]kód[/code] (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]szöveg[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Rendezett lista: [list=]szöveg[/list] (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Kép beszúrása: [img]http://kép_url-je[/img] (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"URL beszúrása: [url]http://url[/url] vagy [url=http://url]URL szöveg[/url] "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Betűszín"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Betűszín: [color=red]szöveg[/color] Tipp: használhatja a color=#FF0000 "
-"kifejezést is"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Alapértelmezett"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Sötétpiros"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Piros"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Narancssárga"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Barna"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Citromsárga"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Zöld"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliva"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Cián"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Kék"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Sötétkék"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indigó"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Ibolya"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Betűméret"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Betűméret: [size=x-small]kis méretű szöveg[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Kicsi"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normál"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Nagy"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Minden nyitott bbKód címke bezárása"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Címkék bezárása"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Legrégebbit előre"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Legújabbat előre"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "A legnépszerűbb bejegyzést előre"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Legújabb bejegyzést előre"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "A legnézettebbet előre"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Legtöbb bejegyzést előre"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Szavak keresése a fórumüzenetekben"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Keresés a fórumokban"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Részletes keresés"
-
-# #######################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Személyes üzenetek"
-
-# #######################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Kérdések és válaszok"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Üzenőfalak"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 üzenőfal"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Előző"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Következő"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Szerző"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Üzenet"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Üzenet küldése"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Privát üzenet küldése neki: %1"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Csatlakozott: %1"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Bejegyzések: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Kredit: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Ezt az üzenetet még nem olvasta"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Olvasatlan"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "%1. üzenet"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "rejtett"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Beküldve: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr "- válasz erre:"
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Szerkesztés"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Üzenet szerkesztése"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Utolsó módosítás: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Ez a bejegyzés nem látható, mert a beküldője az Ön \"mellőzöttek\" listáján "
-"van. Kattintson %1ide%2 a megtekintéshez."
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Bejegyzés jelentése, mert sértő"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Sértő bejegyzés jelentése"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Minősítés: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "minősítés: "
-
-# 83%
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Kattintson ide, ha tetszik ez az üzenet"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Pozitív"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Kattintson ide, ha nem tetszik ez az üzenet"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Negatív"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Válasz"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Válasz erre az üzenetre"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Idézés"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Válasz ebből az üzenetből vett idézettel"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Egy moderátor elrejtette"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "%2 írta ekkor: %1"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Nem írhat vagy minősíthet üzeneteket %1-ig"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-"\n"
-"<ul>\n"
-"<li> A bejegyzéseknek \"gyerekbarátnak\" kell lenniük:\n"
-"nem lehet bennük trágár, gyűlölködő,\n"
-"nyíltan szexualitásról szóló, vagy ezekre utaló tartalom.\n"
-"<li> Nem lehetnek bennük reklámok.\n"
-"<li> Tilos a szexuális tartalmakkal, szerencsejátékkal\n"
-"foglalkozó, vagy mások felé intoleranciát tanúsító\n"
-"oldalakra mutató linkek közzététele.\n"
-"<li> Tilos a megzavarónak, sértőnek szánt hozzászólás,\n"
-"illetve a téma elterelése.\n"
-"<li> Tilos a szándékosan rosszindulatú, ellenszenvet tükröző üzenetek "
-"közzététele.\n"
-"<li> Nem megengedett a gyalázkodó hozzászólás, ide értve a faji, vallási,\n"
-"nemzetiségi, nemekkel kapcsolatos, osztályi, vagy szexuális témákat.\n"
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Szabályok:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "További infó"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Felfed"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Hozzászólás felfedése"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Elrejt"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Hozzászólás elrejtése"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Mozgat"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Hozzászólás áthelyezése egy másik témába"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Szerző kitiltása"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Legyen kitiltva a szerző"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Ne legyen kitiltva a szerző"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Szavazás indítása a szerző kitiltásáról"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "A csapat üzenőfalára csak csapattagok írhatnak"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Új %1 téma készítéséhez rendelkeznie kell egy meghatározott mennyiségű "
-"kredittel. Erre a rendszer használatával való visszaélések elkerülése végett "
-"van szükség."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Ebben a pillanatban nem készíthet új témát. Kérjük, várjon egy kicsit, "
-"mielőtt újra próbálná. Ez a késleltetés a rendszer használatával való "
-"visszaélés megakadályozása érdekében került bevezetésre."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Ez a téma le van zárva. Csak a fórum moderátorai és adminisztrátorai "
-"írhatnak ide."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Ne szólhat hozzá rejtett témához."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Téma"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Üzenetek"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Megtekintések"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Utolsó üzenet"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Új hozzászólások e témában: %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Új hozzászólások a témában, amire feliratkozott"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Új hozzászólások vannak e témában: '%1'"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Minden téma megjelölése olvasottként"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Minden üzenőfal minden témáját 'olvasott'-nak jelöli."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Nincs kiszolgáló"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Nem elérhető"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Otthon"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Munka"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Csoport"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Frissítés"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Számítógép infó..."
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP cím"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(ugyanez a legutóbbi %1 alkalommal)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Külső IP cím"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Mutasd az IP címet"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Domain név"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Standard helyi idő"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 óra"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Tulajdonos"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Névtelen"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Létrehozva"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Összes kredit"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Átlag kredit"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Kereszt project kredit"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Processzor típus"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "processzorok száma"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Társprocesszorok"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Operációs rendszer"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC verzió"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Memória"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Swap tárhely"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Teljes lemezterület"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Szabad lemezterület"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Mért lebegőpontos-sebesség"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 millió művelet/sec"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Mért fixpontos-sebesség"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Átlagos feltöltési sebesség"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Ismeretlen"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Átlagos letöltési sebesség"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Átlagos fordulási idő"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 nap"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Az alkalmazás részletei"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Mutasd"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Feladatok"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "A kliens szerverhez való kapcsolódásainak száma"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Utolsó kapcsolódás a kiszolgálóhoz"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "%-a az időnek, amikor a BOINC fut"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Az idő azon %-a, amikor a gazdagépen van internetkapcsolat a BOINC futása "
-"közben"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Az idő azon %-a, amikor munka engedélyezve van a BOINC futása közben"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Átlagos CPU teljesítmény"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Feladat időtartam korrekciós faktor"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Hely"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Számítógép törlése"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Egyesítse ezen számítógép kettőzött bejegyzéseit"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Egyesítés"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Utolsó kapcsolat"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Számítógép infó"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rang"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Átl. kredit"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operációs rendszer"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 processor)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Részletek"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Projekt-közi statisztikák:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "A(z) %1 gépnek átfedő élettartama van:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "A(z) %1 számítógépnek nem kompatibilis operációs rendszere van:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "A(z) %1 számítógépnek nem kompatibilis a CPU-ja:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "ugyanaz a számítógép"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Nem tudom egyesíteni %1 és %2 gépeket - nem kompatibilisek"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "%1 és %2 számítógép egyesítése"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Az új számítógép kreditjei nem frissíthetők"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Az eredmények nem frissíthetők"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "A régi számítógép nem leválaszható"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "%1 régi számítógép leválasztva"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Mutasd:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Minden számítógép"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Csak az utóbbi 30 napban aktív számítógépek"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "Számítógép ID"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Név"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br>verzió"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Számítógépek egyesítése név szerint"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Hozzászólás"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "A hírek elérhetőak %sRSS feed%s formában"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Bejövő"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Levélírás"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Privát üzenet küldése"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Előnézet"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "nincs ilyen üzenet"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Címzett"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Felhasználói IDk, vagy egyedei felhasználónevek, vesszővel elválasztva"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Tárgy"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Üzenet küldése"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "privát üzenetet küldött; tárgy:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Privát üzenet%1, küldte: %2, tárgy:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Nem hozható létre üzenet"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Nem küldhet ilyen gyakran privát üzeneteket. Kérjük, várjon egy kicsit, "
-"mielőtt további üzeneteket küldene."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "olvasatlan"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Email értesítéshez %1módosítsa a közösségi beállításokat%2"
-
-# #######################################
-# Private messages
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Személyes üzenet"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Felfüggeszti a munkát, ha a számítógép akkumulátorról működik? %1 Csak "
-"hordozható számítógépeknél fontos %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Felfüggeszti a munkát, ha a számítógép használatban van?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Felfüggeszti a GPU munkát, ha a számítógép használatban van? %1 Kényszerítve "
-"a 6.6.21+ verzióknál %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-"'A használatban' azt jelenti, hogy egér/billentyűzet aktivitás volt "
-"észlelhető az utóbbi"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "percben"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Munka felfüggesztése, ha nem észlelhető egér/billentyűzet aktivitás az "
-"utóbbi %1 alatt. Néhány számítógépnél szükséges az alacsony "
-"energiafogyasztású módba lépéshez %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Munka felfüggesztése, ha a BOINC-on kívüli CPU használat %1 fölött van, 0 "
-"esetén nincs korlátozás<br>Kényszerítve a 6.10.30 fölötti verzióknál%2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Csak ezen időszakban dolgozzon: %1 Nincs korlátozás, ha megegyeznek %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"A feladatokat a memóriában hagyjam a felfüggesztés alatt? %1 A "
-"felfüggesztett feladatok lapozó területet foglalnak, ha az 'igen'-t "
-"választja %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Váltás a feladatok között ennyi időnként: %1 Ajánlott: 60 perc %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Többprocesszoros rendszereken legfeljebb"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "processzor"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Többprocesszoros rendszereken legfeljebb %1 Kényszerítve a 6.1+ verzióknál %"
-"2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "%-át használja a processzoroknak"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "Legfeljebb %1 A CPU hőkibocsátás csökkentésére használható %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "%-át használja a CPU időnek"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Lemez: legfeljebb"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Lemez: hagyjon szabadon legalább ennyit: %1 Ha az érték kisebb, mint %2, "
-"figyelmen kívül hagyjuk %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-#, fuzzy, php-format
-msgid "% of total"
-msgstr "%-a a teljesnek"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Feladat lemezre mentése legfeljebb ennyi időnként:"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "másodperc"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Swap terület: használjon legfeljebb"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-"Memória: ha a számítógép használatban van, legfeljebb ennyit használjon:"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-"Memória: ha a számítógép nincs használatban, legfeljebb ennyit használjon:"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "nap"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Megerősítést kér, mielőtt csatlakozik az Internethez? %1 Csak modemes, ISDN "
-"vagy VPN kapcsolat esetén számít. %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Lecsatlakozik, ha kész? %1 Csak modemes, ISDN vagy VPN kapcsolat esetén "
-"számít. %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Maximális letöltés:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbájt/mp"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Maximális feltöltés:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Csak ebben az időszakban használja a hálózatot"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Legfeljebb %1 adatot vigyen át. Kényszerítve 6.10.46 verzió felett. %2"
-
-#: ../inc/prefs.inc:269
-#, fuzzy
-msgid "Mbytes every"
-msgstr "Megabájtonként"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Kihagyja a képfájl ellenőrzését? %1 CSAK akkor válassza ezt, ha az "
-"internetszolgáltatója (pld. az UMTS) módosítja a képfájlokat. %2 Az "
-"ellenőrzés kihagyása csökkenti a BOINC biztonságát. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Erőforrás-megosztás %1 Meghatározza, a számítógépe erőforrásainak mekkora "
-"része legyen ehhez a projekthez rendelve. Például ha két BOINC projektben "
-"vesz részt 100 és 200 erőforrás-megosztással, az első az erőforrások 1/3-át, "
-"a második a 2/3-át kapja. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-"Felgyorsítsa a GPU-feladatokat úgy, hogy egy-egy CPU-t rendel mindegyikhez?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Használja a CPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Használja az ATI GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Használja az NVIDIA GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Használja az ATI GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Szeretne teszt-alkalmazásokat futtatni? %1 Ezzel segít nekünk az "
-"alkalmazások fejlesztésében, de néha a feladatok elvesztését okozhatja "
-"számítógépén. %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Az emailek erről a címről fognak érkezni: %1; bizonyosodjon meg róla, hogy a "
-"spamszűrője elfogadja ezt a címet!"
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Jóváhagyja, hogy %1 és az Ön csapata (ha van) emailt küldhessen Önnek?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Megjelenítheti a(z) %1 weboldalán az Ön számítógépét?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Lemez- és memóriahasználat"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Processzorhasználat"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Hálózathasználat"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Ezek a beállítások minden BOINC projektre vonatkoznak, amiben részt vesz."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1 Nem sikerült frissíteni a beállításokat. %2 A pirossal jelöl értékek az "
-"elfogadható tartományon kívül esnek, vagy nem számok."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "hibás hely: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "hibás részhalmaz: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "igen"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nem"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "nincs korlát"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Hozzáadás"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Eltávolítás"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Számítás"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Külön beállítások %1 számára"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Beállítások szerkesztése"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Külön beállítások hozzáadása ehhez: %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Nézet váltása)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Kombinált beállítások"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Projektspecifikus beállítások"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Elsődleges (alapértelmezett) beállítások"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "%1 beállítások szerkesztése"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Utoljára módositott beállítások"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Beállítások hozzáadása"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Beállítások frissítése"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "A számítógép alapértelmezett helye"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "és"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"A profilját láthatóvá tesszük másoknak is, amint a projekt jóváhagyja azt. "
-"Ez akár néhány napba is telhet."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"A profilja elfogadhatatlannak lett jelölve. Mások nem láthatják. Kérjük, "
-"változtassa meg."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Adatbázis hiba"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"A levélszemét elleni intézkedések részeként a(z) %1 átlagos kredit alatti "
-"felhasználók profiljait csak bejelentkezett felhasználók láthatják. Elnézést "
-"kérünk a kényelmetlenségért."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Felhasználó száműzve"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Ilyen felhasználói azonosítóval nem létezik profil."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Profil szerkesztése"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Az Ön véleménye erről a profilról"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Profil előterjesztése a Nap felhasználójának:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1Tetszik%2 ez a profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Sértő profil esetén az adminisztrátorok értesítése:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1Nem tetszik%2  ez a profil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Névtelen platform"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Nincs az adatbázisban"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "függőben"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Mind"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "Folyamatban"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Érvényes"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Érvénytelen"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Hiba"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inaktív"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Nincs elküldve"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Elkészült, jóváhagyásra vár"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Elkészült és jóváhagyva"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Elkészült, érvénytelennek jelölve"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Elkészült, nem lehet érvényesíteni"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Elkészült, az érvényesítés hatástalan"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Elkészült, túl késő érvényesíteni"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Elkészült"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Nem lehet elküldeni"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Kiszolgáló által törölve"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Hiba történt a letöltés alatt"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Hiba történt a számolás közben"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Hiba a feltöltás alatt"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Felhasználó által megszakítva"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Feltöltés sikertelen"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Idő lejárt - nincs válasz"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Nem szükséges"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Érvényesítési hiba"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Eldobva"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Vége"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Sikeres"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Számolási hiba"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Felesleges eredmény"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Nincs válasz"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Új"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Letöltés"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Feldolgozás"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Számolási hiba"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Feltöltés"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Kész"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Kezdeti"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Nem szükséges"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Munkacsomag hiba - ellenőrzés kihagyva"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Ellenőrizve, de még nincs megegyezés"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "A feladat elfogadásának határideje lejárt"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Az eredményt nem lehet elküldeni"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Túl sok hiba (talán hibás a program)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Túl sok eredmény (lehet, hogy nem meghatározható)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Túl sok teljes eredmény"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "MCs elvetve"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Ismeretlen hiba: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Feladat neve"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "kattintson a részletekért"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "ID-k mutatása"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Nevek mutatása"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Feladat"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Munkacsomag"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Számítógép"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Elküldve"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "A jelentés ideje<br />vagy határidő"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "megmagyaráz"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Állapot"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Futási idő<br />(mp)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "CPU idő<br />(mp)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Kredit"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Alkalmazás"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Munkacsomag"
-
-#: ../inc/result.inc:632
-#, fuzzy
-msgid "Received"
-msgstr "Beérkezett"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Szerver állapot"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Kimenet"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Kliens állapot"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Kilépési állapot"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Jelentési határidő"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Futási idő"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "CPU idő"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Érvényesítési állapot"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Az alkalmazás verziója"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Kimeneti fájlok"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Stderr kimenet"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Állapot"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Feladat neve"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Keresési feltétel(ek)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Kulcsszavak"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-"Keressen csapatokat, amiknek nevében vagy leírásában benne vannak a "
-"következő szavak"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Ország"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Csapat típusa"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Csak az aktív csapatokat mutassa"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Keresés"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Ön kérte, és az alapító válaszadási határideje lejárt."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Teljes alapítói jogkör átvitele"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Ön kérte"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "alapítói válaszadási határidő: %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Nincs"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Kérés elküldése"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Elhalasztva"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Csapat infó"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Leírás"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Weboldal"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Projekt-közti statisztikák"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Típus"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Üzenőfal"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Témák"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Csatlakozzon ehhez a csapathoz"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Megjegyzés: ha a projekt beállításoknál az email engedélyezve van, a "
-"csapathoz való csatlakozás láthatóvá teszi emailcímét a csapat alapítója "
-"számára."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Nem fogad új tagokat"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Alapító megváltoztatása kérve"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Válaszoljon %1-el"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Csapat alapítójának megváltoztatása"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Tagok"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Alapító"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Adminok"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Új tagok tegnap"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Összes tag"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "megtekint"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktív tagok"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Kredittel rendelkező tagok"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Admin"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Előző %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Következő %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Nincs ilyen csapat."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Ehhez a művelethez alapítói jogkör szükséges."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Ehhez a művelthez csapat adminisztrátori jogosultság szükséges"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"FIGYELEM: ez egy BOINC-közi csapat. Ha itt változtatásokat eszközöl, azok "
-"hamarosan felül lesznek írva. Szerkessze inkább a %1BOINC-közi csapatot%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Adatvédelmi megjegyzés%2: ha létrehoz egy csapatot, az Ön projekt "
-"beállításai (erőforrás-megosztás, megjelenítési beállítások) mindenki "
-"számára láthatóak lesznek."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Csapatnév, szöveges változat"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Ne használjon HTML címkéket."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Csapatnév, HTML változat"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Használhat %1bizonyos HTML címkéket%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Ha nem ismeri a HTML-t, hagyja üresen ezt a négyzetet."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "A csapat honlapja, ha van"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "\"http://\" nélkül"
-
-#: ../inc/team.inc:443
-#, fuzzy
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Erre az URL-re fog hivatkozni a csapat oldala ezen a honlapon."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "A csapat leírása"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Fogad új tagokat?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Felhasználói profil"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projektek, amikben részt vesz"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projektek, amikben %1 részt vesz"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Kattintson a felhasználó oldalához"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Ennyi ideje:"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Számítás és kredit"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Ezen fiók számítógépei"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Megtekint"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Projekt-közti ID"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Projekt-közti statisztikák"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Fiók"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Csapat"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Projekt-közti"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Tanúsítvány"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statisztikák a mobiltelefonján"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Ismeretlen értesítési típus: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Fiókinformáció"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Email cím"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Irányítószám"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 tag ennyi ideje:"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Változtat"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "email cím"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "jelszó"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "egyéb fiókinformáció"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Felhasználói azonosító"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Közösségi funkciókhoz használt"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Fiókkulcs"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Beállítások"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Mikor és hogyan használja a BOINC számítógépét"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Számítási beállítások"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Üzenőfalak és privát üzenetek"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Közösségi beállítások"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Ezen projekt beállításai"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 beállítások"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Közösség"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Törlés"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Létrehoz"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 üzenet"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Értesítések"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Kilépés a csapatból"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Igazgató"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(alapító változtatási kérelem folyamatban)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Ezen csapat tagja:"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "csapat keresése"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Alapítója, de nem tagja ennek a csapatnak:"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Ismerősök keresése"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Barátok"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Számítógépek"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donor"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kapcsolat"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Ez a személy ismerőse Önnek"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Barátság megszüntetése"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Kérés folyamatban"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Barátokhoz ad"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "kijelentkezés"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "bejelentkezés"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Bejelentkezés"
-
-# #######################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Fiók létrehozása"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "A szerver állapotának oldala"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-"Kérése feldolgozásakor adatbázis hiba történt; kérjük, próbálja újra később."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "A kérés teljesítése sikertelen"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "óra"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "perc"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "mp"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"A link lejárt. Kattintson a Vissza gombra, frissítse a lapot, és próbálja "
-"újra."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "%1 profiljának megtekintése"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "BBCode használata a szöveg formázásához"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "A projekt karbantartás miatt szünetel"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 karbantartás miatt szünetel. Próbálja újra később."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Az adatbázishoz csatlakozás sikertelen - kérjük, próbálja újra később"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Az adatbázis kiválasztása sikertelen - kérjük, próbálja újra később"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Maradjon bejelentkezve ezen a gépen"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Fiókbeállítás befejezése"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Ez az Ön azonosítója weboldalunkon. Használja a valódi-, vagy a becenevét."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Válassza ki, melyik országot képviseli, ha van ilyen."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Irányítószám"
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Választható"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "A fióknév megadása kötelező"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML címkék nem használhatóak a névben"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Adjon %1 beállításokat ehhez: %2"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Alkalmazások"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"A(z) %1 jelenleg a következő alkalmazásokat használja. Ha részt vesz a(z) %1 "
-"projektben, ezen alkalmazások közül egy vagy több futtathatóvá válik az Ön "
-"számítógépén. Az alkalmazás aktuális verziója letöltődik számítógépére. A "
-"folyamat automatikus; Önnek semmit nem kell tennie."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platform"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Verzió"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Telepítve ekkor:"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode címkék"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-"BBCode-al formázhatja a profilján és a hozzászólásaiban megjelenő szöveget.\n"
-"A BBCode a HTML-hez hasonló nyelv, de egyszerűbb. A tag-ek [-el kezdődnek\n"
-"(ahol HTML-ben %1 lenne)  és ]-el végződnek (ahol HTML-ben %2 lenne)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Példák"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Félkövér"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Dőlt"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Aláhúzott"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Felső index"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Nagy betűk"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Piros betűk"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "hivatkozás egy weboldalra"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Idézet"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "idézett szövegblokkokhoz használható"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "kép megjelenítéséhez használható"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Megjelenítendő kódrészlet"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "kód megjelenítéséhez használható"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Előre formázott szöveg"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "előre formázott (írógépbetűs) szöveghez használható"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "1. elem"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "2. elem"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "2. elem"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "használja a BOINC oldalon levő Trac jegyre való hivatkozáshoz"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "használja a BOINC oldalon levő Trac Wiki-re való hivatkozáshoz"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "használja a BOINC oldalon levő SVN változtatásokra való hivatkozáshoz"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Ha nem zár le egy címkét, vagy nem megfelelően ad meg egy paramétert,\n"
-"a nyers címke fog megjelenni a formázott szöveg helyett."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# #######################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Az Ön fiókja"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Csapatok"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "A nap felhasználója"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Szerver állapot"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-#, fuzzy
-msgid "Profiles"
-msgstr "Profil"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# #######################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Kiemelkedő résztvevők"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Kiemelkedő számítógépek"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "A legjobb csapatok"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "A legjobb GPU típusok"
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Nyelv"
-
-# #######################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Olvassa el a szabályokat és eljárásokat"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "A fiók létrehozása sikertelen"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Kattintson a böngésző <b>Vissza</b> gombjára az újra próbáláshoz."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "A reCAPTCHA válasza hibás volt. Kérjük, próbálja újra."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Új fiók létrehozásához Önnek meghívókóddal kell rendelkeznie."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Az Ön által megadott meghívó"
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Érvénytelen email cím: az érvényes emailcímnek 'név at szolgáltató' alakúnak "
-"kell lennie"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Már létezik fiók ezzel az emailcímmel."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Az új jelszavak nem egyeznek"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "A jelszavak csak ASCII karakterekből állhatnak."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Az új jelszó túl rövid: legalább %1 karakter hosszúnak kell lennie."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Nem sikerült a fiókot létrehozni"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Ez a fiók a(z) %1 nevű csapathoz fog tartozni, és automatikusan átveszi az "
-"alapító projektbeállításait."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Meghívókód"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Fiók létrehozása csak érvényes meghívókóddal lehetséges."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Email cím"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Az emailcímnek 'név at szolgáltató' alakúnak kell lennie!"
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Jelszó"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Legalább %1 karakternek kell lennie"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Jelszó megerősítése"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Kérjük, írja be a képen látható betűket"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Fiók létrehozása"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Kép"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Az Ön profilképe balra látható."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Megváltoztatásához kattintson a \"Tallózás\" gombra, és válasszon egy JPEG "
-"vagy PNG fájlt. (max. %1)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "A profiljából való törléshez válassza ezt a dobozt:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Ha szeretne képet mellékelni a profiljához, kattintson a \"Tallózás\" gombra "
-"és válasszon egy JPEG vagy PNG fájlt. Legfeljebb %1 méretű képet válasszon."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Nyelv"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Válassza ki, milyen nyelven írodott a profilja:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Profil mentése"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Kérjük írja be a képen látható szavakat."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Profil létrehozása/szerkesztése"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "A feltöltött kép formátuma nem támogatott."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"A %1profilján%2 megoszthatja véleményét és ismereteit a(z) %3 közösséggel."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Nem volt jó a ReCaptcha felismerése. Kérjük, próbálja újra."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Az első válaszát spam-nek érzékelte az Akismet spam-szűrő. Kérjük, módosítsa "
-"a szöveget és próbálja újra."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"A második válaszát spam-nek érzékelte az Akismet spam-szűrő. Kérjük "
-"módosítsa a szöveget és próbálja újra."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "A beküldött profilja üres volt."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Nem tudtam frissíteni a profilt: adatbázishiba"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Nem tudtam létrehozni a profilt: adatbázishiba"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profil elmentve"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Gratulálunk! A profilja sikeresen bekerült az adatbázisunkba."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Profiljának megtekintése%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Profil létrehozása"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"A visszaélések megakadályozására legalább %1 kredit szükséges profil "
-"létrehozásához vagy szerkesztéséhez. Elnézést kérünk a kényelmetlenségért."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nem tudtam törölni a fiókot."
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Fiók törölve"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Az Ön fiókját töröltük."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Fiók törlésének jóváhagyása"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-"Fiókjának törlésével minden\n"
-"személyes információját töröljük szervereinkről,\n"
-"beleértve a profilját és a fórum-hozzászólásait is.\n"
-"Az ehhez a fiókhoz csatlakozó számítógépek\n"
-"nem kapnak új munkát."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Ezt nem lehet visszavonni.\n"
-"Ha törölte a fiókját, nem fér hozzá többé."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Biztosan törölni akarja a fiókját?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Igen"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Fiók törlése"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nem"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Ne törölje ezt a fiókot"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "nem tudtam törölni a profilt, kérjük próbálja meg később"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Törlés jóváhagyása"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "A fiókját töröltük."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Profiltörlés jóváhagyása"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Biztos benne?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-"A törölt profilok végleg megszűnnek, és nem lehet őket visszaállítani --\n"
-"ha később másik profilt szeretne létrehozni,\n"
-"elölről kell kezdenie."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Ha biztos benne, hogy profilját\n"
-"törölni akarja adatbázisunkból, kattintson az \"Igen\" gombra!"
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Profil törlése"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Ne törölje a profilomat"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - tranzakció befejezve"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Köszönjük az adományt!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Az adománya megérkezett."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Az adományát a PayPal visszaigazolása után megjelenítjük az állapotjelző "
-"csíkon."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Megszakította az adakozást."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Ez a projekt nem fogad el adományokat."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 adomány"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Ez a projekt elfogad adományokat, \n"
-"e szolgáltatáson keresztül: %1"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-"Írja az alábbi mezőbe, mennyit kíván adományozni.\n"
-"A PayPal többféle valutát elfogad\n"
-"(kanadai dollár, euró, angol font, usa dollár\n"
-"japán jen, ausztrál dollár, új-zélandi dollár\n"
-"svájci frank, hongkongi dollár, szingapúri dollár, svéd korona\n"
-"dán korona, lengyel zloty, norvég korona,\n"
-"magyar forint, cseh korona).\n"
-"Használja a beépített valutaváltót\n"
-" az adományának átváltásához más valutákra\n"
-"(vegye figyelembe, hogy az árfolyamok csak becslések,\n"
-" a valós árfolyamtól különbözhetnek)."
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Adományozni kívánt összeg"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Becsült értéke"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Névtelen adomány"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Jelölje be, ha nem akarja, hogy a neve és számlaszáma szerepeljen\n"
-"az adakozók listáján.<br>Ha nem választja ki, %1 ID-jű felhasználóként fog "
-"szerepelni."
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Jelentkezzen be, hogy az adományát a felhasználói ID-hez köthesse."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Tovább"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Adományokat elfogadunk ezzel:"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "BOINC-kiegészítő program letöltése"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Több különböző kategóriából is letölthet alkalmazásokat."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Ezeket az alkalmazásokat nem ellenőrizte a(z) %1, saját felelősségére "
-"használja őket."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Ezen alkalmazások telepítéséhez nem nyújtunk útmutatást,\n"
-"habár a szerző lehet, hogy nyújtott segítséget a telepítéshez vagy "
-"eltávolításhoz.\n"
-"Ha az nem elég, lépjen kapcsolatba a szerzővel."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "A BOINC telepítéséhez és futtatásához %1itt van az útmutató%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Ezt a listát a %BOINC honlapon%2 központilag kezeljük."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "A fiókhoz rendelt email cím megváltoztatása"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Az új, '%1' email cím érvénytelen."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Az új email cím megegyezik az eddigivel. Nem változott semmi."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Már létezik fiók ezzel az email címmel"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Érvénytelen jelszó."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Fiókjának email címe jelenleg %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Kérjük, %1erősítse meg ezt az email címet%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Adatbázis probléma miatt nem tudjuk frissíteni az email címét. Kérjük, "
-"próbálja meg később."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "E-mail cím megváltoztatása"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "A fiókjához tartozó email cím megváltoztatása"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Új email cím"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Az érvényes emailcímnek 'név at szolgáltató' alakúnak kell lennie"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Nincs jelszó?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Visszaállítás megerősítése"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Ez a művelet törölni fog minden változtatást, amit a közösségi "
-"beállításokban eszközölt. Ha mégsem szeretné a törlést, kattintson a "
-"böngészőben a Vissza gombra!"
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Beállítások visszaállítása"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Hiba: Helytelen filetípus! Csak PNG vagy JPEG formátum támogatott!"
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Az aláírása túl hosszú, kérjük, módosítsa 250 karakternél rövidebbre!"
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Nincs %1 nevű felhasználó"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-"Hogyan értesítsük Önt a különböző eseményekről, új üzenetekről, ismerősnek "
-"jelölésekről, új bejegyzésekről a feliratkozott témákban?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Felhasználói oldalamon (ne e-mailben)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Azonnal, e-mailben"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Napi egyszer, e-mailben"
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Üzenőfalak"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Profilkép"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Az Ön üzenőfalakon megjelenő képe"
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "JPG vagy PNG formátum, legfeljebb 4 KB, 100x100 pixel"
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Ne legyen profilkép"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Használjon globális profilképet (gravatart) innen: %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Használja az alábbi feltöltött profilképet:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Profilkép előnézet"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Így fog megjelenni a profilképe"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Aláírás az üzenőfali bejegyzésekhez"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Tekintse meg a különböző %1ingyenes szolgáltatásokat%2, melyek\n"
-"<br> kitűnő aláírásképeket biztosítanak\n"
-"<br> megjelenítik az Ön legfrissebb kreditinformációit, a projekt híreket, "
-"stb."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "fennmaradó karakterek"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Aláírás alapértelmezett csatolása"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Aláírás előnézet"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Így fog megjelenni az aláírása a fórumokon"
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Üzenőfalak"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Megjelenítendő"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Profilkép elrejtése"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Aláírás elrejtése"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Képek megjelenítése hivatkozásként"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Hivatkozások megnyitása új ablakban/fülön"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Különleges felhasználók kiemelése"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Rendezés módja"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Témák"
-
-# #######################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Üzenetek"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr "Automatikus ugrás a téma legújabb bejegyzésére"
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Üzenetek szűrése"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Szűrt felhasználók"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-"Hagyja figyelmen kívül az alábbi felhasználók bejegyzéseit és privát "
-"üzeneteit."
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "Felhasználó azonosító (például: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Ezen felhasználó szűrőhöz adása"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Kattintson ide a beállítások frissítéséhez"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Visszaállítás"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-"Vagy kattintson ide a beállítások alapértelmezettre történő "
-"visszaállításához"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Érvénytelen fiókkulcs"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Ehhez az e-mail címhez nem találtam felhasználói fiókot"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Érvénytelen jelszó"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Jelszó megváltoztatása"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Jelszava megváltozott"
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Adatbázis probléma miatt nem tudjuk frissíteni a jelszavát. Kérjük, próbálja "
-"meg később."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Azonosíthatja magát"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "e-mail címének és régi jelszavának megadásával"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "felhasználói fiókkulcsának megadásával"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Jelenlegi jelszó"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>VAGY</b> Fiókkulcsának megadásával"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Fiókkulcs kérése e-mailben"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Új jelszó"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Új jelszó, még egyszer"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "A HTML-kódok nem engedélyezettek a névben."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Fiók létrehozásához kötelező a nevet megadnia."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Nem tudtuk frissíteni a felhasználói adatokat."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Fiókinformációk szerkesztése"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Név %1 valódi név vagy becenév%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "%1 Weblapjának URL-je%2 (nem kötelező)"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Irányítószám %1 Nem kötelező%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Infók frissítése"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Szerver állapot"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-"A feladat <b>szerverstátusza</b> megmutatja, hogy a feladat már kiküldésre "
-"került-e, illetve hogy a számítógép elvégezte-e azt. A lehetséges értékek:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-"A feladat nem áll készen a küldésre (például mert a bemeneti fájljai nem "
-"érhetők el)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "A feladat készen áll a küldésre, de még nincs kiküldve."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Folyamatban"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "A feladat kiküldve; várakozás a befejezésre."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-"A feladat kiküldve egy számítógépre és lejárt az ideje, vagy a számítógép "
-"jelezte a befejezését."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Eredmény"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-"A feladat <b>kimenete</b> akkor értelmezhető, ha a szerver státusz: "
-"<b>kész</b>. Lehetséges értékek:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-"A feladat kiküldve, de a számítógép még nem végezte el és nem jelezte az "
-"eredményt."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "A számítógép jelezte a feladat sikeres elvégzését."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-"A szerver nem tudta kiküldeni a feladatot a számítógépre (talán a feladat "
-"túlzott erőforrásigénye miatt)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Kliens hiba"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "A feladat kiküldve a számítógépre, de hiba lépett fel."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "A feladat kiküldve a számítógépre, de határidőn belül nem jött válasz."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"A feladat nem került kiküldésre, mivel elég egyéb feladat lett kész ehhez a "
-"munkacsomaghoz."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-"A feladat elvégzését jelezték, de nem hagyható jóvá, tipikusan azért, mert a "
-"kimeneti fájlok a szerveren elvesztek."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Kliens állapotok"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"Az eredmény <b>kliens állapota</b> jelzi a feldolgozás azon lépését, melynél "
-"a hiba jelentkezett."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "A számítógép még nem végezte el a feladatot."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "A számítógép sikeresen befejezte a feladatot."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-"A számítógép nem tudta letölteni az alkalmazást vagy a bemeneti fájlokat."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Hiba lépett fel a feldolgozás során."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "A számítógép nem tudta feltölteni a kimeneti fájlokat."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Jelentés ideje és határidő"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-"Egy feladat <b>Jelentés ideje és határidő</b> mező értéke attól függ, hogy "
-"annak állapotáról érkezett-e már jelentés:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Már jelentve"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Jelentés dátuma/ideje"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Nincs jelentve, a határidő még nem járt le"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Határidő, zölddel kiemelve."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Nincs jelentve, határidő már lejárt"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Határidő, pirossal kiemelve."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Ismeretlen mező"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Email előnézet"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Az Ön emailje így fog megjelenni:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Email küldése"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Ha vissza akar térni az üzenet űrlaphoz, használja a böngésző Vissza gombját"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "E-mail küldése"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "email sikeresen elküldve %1 részére"
-
-#: ../user/ffmail_action.php:86
-#, fuzzy
-msgid "failed to send email to %1: %2"
-msgstr "az email küldése sikertelen neki: %1: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Köszönjük, hogy mesél ismerőseinek erről: %1"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Elfelejtette megadni barátai neveit és/vagy email címeiket; Kérjük, térjen %"
-"1vissza az űrlaphoz%2 és adja meg ezeket."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Meséljen barátainak erről: %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-"Segítse munkánkat és meséljen barátainak, családjának és munkatársainak "
-"erről: %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Adja meg azon ismerősei nevét és email címét, akiket Ön szerint érdekelhet "
-"a(z) %1 projektről. Küldünk egy emailt nekik az Ön nevében, amihez saját "
-"üzenetet is hozzáadhat, ha szeretne."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Az Ön neve:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Az Ön email címe:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Ismerős neve:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Ismerős email címe:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Személyes üzenet (nem kötelező)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Elküld"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr "Nincs jogosultsága a felhasználók kitiltásához."
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr "Kitiltási javaslat"
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr "Ezzel az azonosítóval nem található felhasználó."
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr "A felhasználó már ki van tiltva"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-"Biztos benne, hogy ki akarja tiltani %1-t?<br/>Így %1 nem írhat új "
-"bejegyzést egy megadott ideig.<br/>Csak akkor tiltsuk ki %1-t, ha "
-"folyamatosan zavaró viselkedést folytat."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Válassza ki az okot, esetleg írja le bővebben, miért kellene a felhasználót "
-"kitiltani."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Oka"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Trágár"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Gyűlölködő emailek"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Felhasználó kérésére"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Egyéb"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Indoklás"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr "Küldés, ha nem üres"
-
-#: ../user/forum_banishment_vote.php:74
-#, fuzzy
-msgid "Proceed with vote"
-msgstr "Szavazattal megerősítve"
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Válasszon egy műveletet..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-"Már nem szerkesztheti a bejegyzést.<br/>A bejegyzések létrehozásuk után csak "
-"max. %1 percig szerkeszthetőek."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Nincs jogosultsága ezen bejegyzés szerkesztéséhez."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-#, fuzzy
-msgid "Forum"
-msgstr "Fórum index"
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Üzenet szerkesztése"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Cím"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Aláírás hozzáadása ehhez az üzenethez"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Nem látható az Ön számára"
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "%1 üzenőfal"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Téma"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Új téma hozzáadása ehhez a fórumhoz"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Ez az üzenőfal elérhető %1RSS-hírfolyam%2 formában"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Ezt a témát adminisztratív okokból rejtetté tették"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Ez a téma kiemelt és zárt, Ön még nem olvasta."
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr "kiemelt/zárt/olvasatlan"
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Ez a téma kiemelt és Ön még nem olvasta."
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr "kiemelt/olvasatlan"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Ez a téma zárt és Ön még nem olvasta"
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "zárt/olvasatlan"
-
-# 81%
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Még nem olvasta ezt a témát"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr "Ez a téma kiemelt és zárt"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr "kiemelt/zárt"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Ezt a témát adminisztratív okokból rejtetté tették"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Ezt a témát adminisztratív okokból rejtetté tették"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "zárt"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Már olvasta ezt a témát"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "olvasott"
-
-# #######################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Kérdések és válaszok"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Beszéljen Skype-on egy önkéntessel a számos támogatott nyelv bármelyikén! "
-"Látogassa meg a %1BOINC Online Súgóját%2."
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tárgy"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Kérdések"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "%1 tagok beszélgetése"
-
-# #######################################
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 Üzenőfalak"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Ha kérdése vagy problémája van, kérjük, használja az üzenőfalak %1Kérdések & "
-"válaszok%2 részét."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Feliratkozott témák"
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr "Bejegyzés moderálása"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Bejegyzés elrejtése"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Kereskedelmi spam"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Duplázott bejegyzés"
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Bejegyzés áthelyezése"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Küldés a témához"
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr "Felhasználó kitiltása"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Kitiltás időtartama"
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 óra"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 nap"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 hét"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 hét"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 hónap"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Végleges"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Indoklás (nem kötelező) %1 Ezt emailben megkapja a felhasználó. %2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Nincs jogosultsága a bejegyzés moderálásához."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Nem sorolható át másik kategóriatípusba"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Nem sorolható át másik kategóriába"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Nincs jogosultsága felhasználók kitiltásához"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Kitiltás"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "%1 felhasználó kitiltva."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Művelet sikertelen: valószínűleg adatbázis probléma"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "nem jogosult"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr "'%1' téma moderálása"
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-"Válassza ki az indok kategóriát, vagy írja le bővebben, miért rejti el vagy "
-"zárja le a témát; majd nyomja meg az OK gombot!"
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Jelenlegi verzió"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Célfórum"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Új cím:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-"Csak a projekt adminok hozhatnak létre új témát ezen a helyen. A meglévő "
-"témákra azonban válaszolhat."
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Az Ön üzenetét levélszemétnek minősítette az Akismet spamszűrő rendszer. "
-"Kérjük, módosítsa a szöveget és próbálja meg újra!"
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Új téma létrehozása"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Új téma létrehozása"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr "Ne felejtsen el címet megadni"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Jelölje meg Értesítésként ezt az elemet a BOINC Kezelőben"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Csak azokkal az elemekkel tegyen így, amelyek minden résztvevőt "
-"érdekelhetnek!"
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr "Offline értékelés"
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Ezt a funkciót a projekt kikapcsolta."
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Nagyobb átlagra vagy több összes kreditre van szüksége egy bejegyzés "
-"értékeléséhez."
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr "Már értékelte ezt a bejegyzést"
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Vissza a témához"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr "Bevitel rögzítve"
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "A bevitelt rögzítettük. Köszönjük segítségét!"
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Szavazat regisztrálva"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Értékelését rögzítettük. Köszönjük véleményét!"
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr "Szavazat leadási probléma"
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Bejegyzését spamnek minősítette az Akismet spamszűrő rendszer. Kérjük, "
-"módosítsa a szöveget és próbálja meg újra!"
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Bejegyzés írása a témához"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Üzenet"
-
-#: ../user/forum_reply.php:140
-#, fuzzy
-msgid "reply to %1Message ID%2:"
-msgstr "válasz az %1Üzenet ID-re%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr "Válasz írása"
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Aláírás hozzáadása ehhez az üzenethez"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-"Magasabb átlagra vagy több összes kreditre van szüksége egy bejegyzés "
-"jelentéséhez."
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr "Jelentés regisztrálva"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Jelentését rögzítettük. Köszönjük jelzését!"
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-"Egy moderátor meg fogja vizsgálni jelentését és eldönti, mi fog történni - "
-"ez egy kis időt vesz igénybe, türelmét kérjük!"
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr "Fórumbejegyzés jelentése"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-"Mielőtt jelentené ezt a bejegyzést, használja a +/- értékelési rendszert "
-"inkább! Ha elég felhasználó értékeli negatívan, rejtve lesz.<br />Az "
-"értékelő rendszert a bejegyzés alján találja."
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr "Bejegyzés jelentése"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Miért találja sértőnek ezt a bejegyzést: %1 Kérjük adjon meg elég "
-"információt ahhoz, hogy\n"
-"a felhasználók számára a bejegyzés elolvasása nélkül is világos legyen a "
-"probléma. %2"
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr "A jelentés nem rögzült"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Jelentése nem rögzíthető. Kérjük várjon egy kicsit, és próbálja meg újra!"
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-"Ha nem időszakos a hibáról van szó, kérjük jelezze a projekt fejlesztőinek!"
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr "%1 RSS csatorna"
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr "Ez az üzenőfal elérhető %sRSS csatorna%s formában."
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Beállítások:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Csak a(z) %1 azonosítójú felhasználó bejegyzéseit mutasd (alapértelmezett: "
-"minden felhasználó)."
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Csak az elmúlt %1 nap bejegyzéseit mutasd (alapértelmezett: 30 nap)."
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Hosszú bejegyzések részleges megjelenítése: %1 (Minden bejegyzésből csak az "
-"első 265 karakter jelenik meg)"
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Csak témák: %1 (Minden témából csak az első bejegyzés)"
-
-# #######################################
-# Forum search features
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Keresés a fórumban"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Keresés"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Keresés kulcsszavakra:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-"Csak az összes megadott szót tartalmazó bejegyzések lesznek megjelenítve"
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "Például: \"képernyővédő rögzítés\""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr "Keresés szerző azonosítóra:"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr "Csak a megadott szerző bejegyzései jelennek meg"
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Például: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Keresési beállítások"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Keresés határai"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Keresés legfeljebb ennyi napra visszamenőleg"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 hónap"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 év"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr "Bejegyzések csak ebből a fórumból"
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Rendezés módja"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr "Keresés indítása"
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Keresés eredménye"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "A lekérdezésnek megfelelő témacímek:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "A lekérdezésnek megfelelő üzenetek:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Sajnáljuk, nem található a lekérdezésnek megfelelő eredmény. Kiterjesztheti "
-"a keresést kevesebb szóra (vagy kevésbé speciális szavakra) történő "
-"kereséssel."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Megpróbálkozhat %1rákeresni ugyanerre a Google-n is.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Újabb keresés"
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr "Sikeres feliratkozás"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Feliratkozott a %1-ra/re. Értesítjük, ha újabb bejegyzés születik."
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr "A feliratkozás sikertelen"
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Pillanatnyilag nem tudjuk a feliratkozását teljesíteni a következőre: %1. "
-"Kérjük próbálja meg később."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr "Sikeres leiratkozás"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Leiratkozott %1-ról/ről. Már nem fog értesítéseket kapni erről a témáról."
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr "A leiratkozás sikertelen"
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Pillanatnyilag nem tudjuk a leiratkozását teljesíteni a következőről: %1. "
-"Kérjük próbálja meg később."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr "Ismeretlen feliratkozási művelet"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Ez a fórum nem látható az Ön számára."
-
-# #######################################
-# Forum thread
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr "Ezt a témát a moderátorok rejtetté tették."
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "A kérdésemre választ kaptam"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr "Kattintson ide, ha a kérdésére megfelelő választ kapott"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Ez az én kérdésem is"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Új üzenet hozzáadása ehhez a témához"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Leiratkozás"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Feliratkozott erre a témára. Leiratkozáshoz kattintson ide."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Feliratkozás"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Kattintson ide, ha értesítést kér e-mailben a téma új bejegyzéseiről"
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Téma felfedése"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Téma elrejtése"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "Ne legyen ragadós"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "Ez a téma ne legyen ragadós"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "Legyen ragadós"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Ez a téma legyen ragadós"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Zárolás feloldása"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Téma zárolásának feloldása"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Zárolás"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Téma zárolása"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Ezen téma áthelyezése másik fórumba"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Cím szerkesztése"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Téma címének szerkesztése"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr "Megjelölés figyelmeztetésként"
-
-#: ../user/forum_thread.php:251
-#, fuzzy
-msgid "Don't export"
-msgstr "Ne jelölje meg"
-
-#: ../user/forum_thread.php:252
-#, fuzzy
-msgid "Don't export this news item as a Notice"
-msgstr "Ne jelölje meg a hírt figyelmeztetésként"
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Rendezés"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr "Témaállapot frissítve"
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr "Az állapot frissítésre került."
-
-# #######################################
-# Forum
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr "%1 bejegyzései"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Már barátok"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Barátnak jelölte %1-t %2-n"
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "A jelölés visszaigazolásra vár."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 nem fogadta el a barátnak jelölést"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Nem jelölheti saját magát barátnak"
-
-# 76%
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Barát hozzáadása"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"%1-t barátként jelölte meg. Értesíteni fogjuk %1-t a barátság megerősítése "
-"céljából."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Üzenet hozzáadása (nem kötelező):"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Barátnak jelölés elküldve"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Értesítettük %1-t a jelölésről."
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr "Kérjük jelentkezzen be %1-ként"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr "%1-ként kell bejelentkeznie a barátnak jelölés megtekintéséhez"
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Barátnak jelölés"
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr "%1 barátnak jelölte"
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 üzenete: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Barátnak jelölés elfogadása"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Ha %1 valóban a barátja, kattintson ide az elfogadáshoz"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Visszautasítás"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Ha %1 nem a barátja, kattintson ide a visszautasításhoz"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Barátság megerősítve"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "%1 és az Ön barátsága megerősítve."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Barátság visszautasítva"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Visszautasította %1 barátnak jelölését"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Nem található értesítés"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Barátság megerősítve"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "%1 az Ön barátja"
-
-# 94%
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Törli a barátságot?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Biztos benne, hogy törli a barátságot vele: %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Barátság megtartása"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Barátság törölve"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Már nem barátok vele: %1."
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Elfelejtette fiókinformációit?"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-"Adja meg e-mail címét lejjebb és kattintson az OK gombra! A jelszó "
-"visszaállításához e-mailben küldünk segítséget."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Ha elfelejtette e-mail címét vagy nem tud leveleket fogadni:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Ha ebben a fiókban futtatja a BOINC-ot, hozzáférhet az alábbi módon:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-"Keresse meg fiókfile-ját a projekthez az alábbi elnevezéssel: <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Szövegszerkesztőben (pl. Jegyzettömb) nyissa meg a fájlt. Valami ilyesmit "
-"fog látni:"
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-"Jelölje ki és másolja ki a karakterláncot %1 és %2 között (%3 a fenti "
-"példában)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-"Illessze be a karakterláncot az alábbi mezőbe és kattintson az OK gombra."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr "GPU feladat nincs jelentve"
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Üdvözöljük a(z) %1 nevű projektben"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Fiókbeállításainak megtekintéséhez és megváltoztatásához használja az alábbi "
-"linkeket."
-
-# Ezt még ellenőrizni kell, hogy működik-e rendesen!!!
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Ha még nem tette, %1töltse le a BOINC kliens szoftvert%2."
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Névtelen platform, hiányzó app"
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Névtelen platform"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Hiányzó app verzió"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Hiányzó app"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Hiányzó platform"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Elvégzett feladatok száma"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Maximális feladat naponta"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Mai feladatok száma"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Egymást követő érvényes feladatok"
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Átlagos feltöltési sebesség"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Alkalmazások"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Nincs adat erről a számítógépről."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-"Nem törölheti a számítógép adatait, mert adatbázisunk még tartogat neki "
-"munkát. Néhány napot várnia kell, míg a számítógéphez rendelt munka törlődik "
-"a projekt adatbázisból."
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Számítógép törlése"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Adatok törölve."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Vissza a számítógépek listájához"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "Számítógépek egyesítése név szerint"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Számítógépek egyesítése név szerint"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-"Időként a BOINC tévedésből elkülöníti az egy számítógéphez tartozó "
-"identitásokat. Ön kijavíthatja ezt a régi identitások összefűzésével."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Nincs megfelelő gép az összefűzéshez."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Részletek mutatása"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Név"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "létrehozva"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Számítógép ID"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Nincs kiszolgáló"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Egyesítés"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Kész"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-"A változtatás a gép projekthez történő következő kapcsolódásakor lép életbe."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Ezen fiók számítógépei"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Számítógép infó"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Ez a felhasználó elrejtette számítógépe adatait."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Az Ön számítógépei"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Engedélyezett HTML címkék"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Az alábbi HTML címkék engedélyezettek a csapatleírásban:"
-
-# 75%
-#: ../user/html.php:27
-msgid "bold"
-msgstr "félkövér"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "dőlt"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hivatkozás"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "bekezdés"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "sortörés"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "előformázott"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "A(z) %1 projektet csak jogosult számítógépeken futtassa"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"A %1 projektet csak olyan számítógépeken futtassa, melyeknek Ön a "
-"tulajdonosa, vagy amelyekhez megkapta a tulajdonos hozzájárulását. Néhány "
-"vállalat és iskola biztonsági szabályzata tiltja az olyan projektek "
-"futtatását, mint a(z) %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Hogyan fogja a(z) %1 igénybe venni az Ön számítógépét"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Számítógépén történő futása során %1 használni fogja gépe CPU-"
-"teljesítményének, szabad merevlemez-területének, és hálózati "
-"sávszélességének egy részét. Ön korlátozhatja %1 által használható "
-"erőforrásokat, valamint azt, hogy mikor használhatja ezeket."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Az Ön számítógépe által elvégzett munkacsomaggal hozzájárult a(z) %1 "
-"céljainak teljesítéséhez - ahogy az a weboldalon is olvasható. A futtatható "
-"alkalmazások időről időre változhatnak."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Adatvédelmi eljárások"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"A(z) %1 projektben létrehozott fiókja az Ön által választott név alapján "
-"lesz azonosítva. Ez a név megjelenhet a(z) %1 weboldalán, az Ön számítógépe "
-"által %1 számára elvégzett munka összesítésével egyetemben. Ha Ön névtelen "
-"szeretne maradni, válasszon olyan nevet, amely nem fedi fel kilétét."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Ha Ön részt vesz a(z) %1 projektben, bizonyos információk a számítógépéről "
-"(úgy mint a processzor típusa, a memória nagysága stb.) továbbításra "
-"kerülnek a(z) %1 felé. Arra használjuk  ezeket, hogy eldöntsük, mely "
-"munkacsomagtípust képes az Ön számítógépe hatékonyan feldolgozni. Ez az "
-"információ megjelenik a(z) %1 weboldalán is. Semmi olyasmi nem kerül "
-"nyilvánosságra, ami alapján meg lehetne határozni számítógépe helyét (mint "
-"pl. a domain név, vagy a hálózati cím)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"A(z) %1 projektben való részvételhez meg kell adnia egy emailcímet, ahová a "
-"projekt által küldött emaileket kapja. Ez a cím nem lesz látható a(z) %1 "
-"weboldalán, és nem lesz megosztva semmilyen szervezettel. A(z) %1 "
-"rendszeresen küldhet Önnek hírlevelet, de ezt a funkciót bármikor "
-"kikapcsolhatja."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Biztonságos a(z) %1 futtatása?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Amikor letölt egy programot az interneten keresztül, mindig megvan az "
-"esélye, hogy a program veszélyes hibákat tartalmaz, vagy a letöltő szervert "
-"hackertámadás érte. A(z) %1 ezen kockázatok minimalizálására törekedett. "
-"Alkalmazásainkat nagy körültekintéssel teszteltük. Szerverünk tűzfallal "
-"védett és a magas biztonsági beállítások szerint konfigurált. A "
-"programletöltések biztonsága érdekében minden futtatható fájl digitálisan "
-"alá lett írva egy, az internethez nem csatlakozó, biztonságos számítógépen."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"A(z) %1 által futtatott alkalmazások a számítógép túlmelegedését okozhatják. "
-"Ha ez megtörténik, ne futtassa tovább a(z) %1 projektet, vagy használjon "
-"egy %2segédprogramot%3, mely limitálja a CPU-használatot."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"A(z) %1 %2 által fejlesztve. A BOINCot a Kaliforniai Egyetemen "
-"fejlesztették."
-
-# Vagy kötelezettség, még meg kéne nézni!!!
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Felelősség"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"A(z) %1 és a(z) %2 nem vállal felelősséget a számítógépen okozott kár, "
-"adatvesztés, vagy bármely egyéb esemény vagy körülmény okozta károkért, amik "
-"a(z) %1 projektben való részvételből erednek."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Egyéb BOINC projektek"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Más projektek is használják ugyanazt a platformot - a BOINCot -, amit a(z) %"
-"1 is. Fontolja meg részvételét egy vagy több ilyen projektben. Ha Ön így "
-"tesz, számítógépe hasznos munkát végezhet akkor is, amikor a(z) %1 "
-"projektnek nincs elérhető munkacsomagja."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Ezek a projektek nincsenek kapcsolatban a(z) %1 projekttel, így nem ismerjük "
-"ezek biztonsági beállításait, vagy a kutatásuk természetét. Csak saját "
-"felelősségére csatlakozzon hozzájuk."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-#, fuzzy
-msgid "Email address:"
-msgstr "Email cím"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-#, fuzzy
-msgid "Password:"
-msgstr "Jelszó"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Feldolgozás"
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "%1 és %2 számítógép egyesítése"
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "A(z) %1 projektet csak jogosult számítógépeken futtassa"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "A(z) %1 projektet csak jogosult számítógépeken futtassa"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Feldolgozatlan kredit"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Munkacsomag"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "Átlag kredit"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Feldolgozatlan kredit"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Üzenet elküldve."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nincs privát üzenete."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Küldő és dátum"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Nincs ilyen üzenet"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Kiválasztott üzenetek megtekintése"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-#, fuzzy
-msgid "Delete selected messages"
-msgstr "Kiválasztott üzenetek megtekintése"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Privát üzenet küldéséhez minden mezőt ki kell töltenie"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Nem található felhasználó ezzel az ID-vel: %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Nem található ilyen nevű felhasználó: %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 nevű felhasználóból több is van. Használja a felhasználó ID-jét."
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "A %1 nevű felhasználó (ID-je: %2) nem fogad Öntől személyes üzeneteket."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Valóban blokkolja a(z) %1 nevű felhasználót?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Biztos benne, hogy blokkolni kívánja a(z) %1 nevű felhasználó Önnek küldött "
-"privát üzeneteit?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Kérem vegye figyelembe, hogy csak korlátozott számú felhasználót blokkolhat."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Egy felhasználó blokkolását feloldhatja a fórumbeállítások oldalon."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nem, mégse"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "A(z) %1 nevű felhasználó blokkolva"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-"A(z) %1 nevű felhasználót blokkolta, így Ő nem küldhet Önnek privát "
-"üzenetet."
-
-# Ez sem biztos, hogy jó, ellenőrizni kell!!!
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "A feloldáshoz látogassa meg az %1üzenőfalbeállításokat%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Ismeretlen"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Beállítások szerkesztése"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-#, fuzzy
-msgid "User of the Day"
-msgstr "A nap felhasználója"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-#, fuzzy
-msgid "Profiles containing '%1'"
-msgstr "Címek, melyek ezt tartalmazzás: '%1'"
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Feladat neve"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../user/profile_search_action.php:54
-#, fuzzy
-msgid "No profiles found containing '%1'"
-msgstr "Címek, melyek ezt tartalmazzás: '%1'"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Alkalmazások"
-
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "Nincs elküldve"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "Folyamatban"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Számítógép"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-#, fuzzy
-msgid "Find a team"
-msgstr "csapat keresése"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Új csapat létrehozása"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderálja a csapatfórumot, ha van (az adminok kapnak email értesítést a "
-"moderálási eseményekről és a piros X jelentésekről)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Nincs ilyen csapat."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "Nincs ilyen csapat."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Csapat létrehozása"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "%1 üzenőfal"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-#, fuzzy
-msgid "Update failed"
-msgstr "Frissítés sikertelen:"
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Keresés a fórumokban"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Csatlakozott: %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Csatlakozott: %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-#, fuzzy
-msgid "text"
-msgstr "Következő"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Kilépés a csapatból"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-#, fuzzy
-msgid "Remove?"
-msgstr "Eltávolítás"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-# 80%
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Keresés eredménye"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Legjobb hostok"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "A legjobb %1 csapatok"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Ennyi ideje tag:"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Átlagos kredit a közelmúltban"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-# 75%
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Keresés eredménye"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Csapat"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Nincs ilyen felhasználó"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Pót fiókkulcs"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-# 81%
-#: ../user/workunit.php:35
-#, fuzzy
-msgid "Workunit %1"
-msgstr "Munkacsomag"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Függőben"
-
-#: ../project.sample/project.inc:43
-#, fuzzy
-msgid "Main page"
-msgstr "Domain név"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Meséljen magáról. Elmondhatja nekünk, honnan jött, mennyi idős, mivel "
-"foglalkozik, mi a hobbija vagy bármi mást."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Grafika színsémája"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maximum CPU % grafikához%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Csak a kijelölt alkalmazásokat futtassa"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Ha a kijelölt alkalmazáshoz nincs munkacsomag, elfogad munkacsomagot más "
-"alkalmazástól?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(minden alkalmazás)"
-
-#~ msgid "Error:"
-#~ msgstr "Hiba:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Fiók létrehozása letiltva."
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "A fióklétrehozás ehhez a projekthez jelenleg le van tiltva.\n"
-#~ "Kérjük, próbálja újra később."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "A fióklétrehozás jelenleg nem engedélyezett. Kérjük, próbálja meg később."
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Ez a projekt nem hozott létre email üzenetet - kérjük, értesítse az "
-#~ "adminisztrátorokat"
-
-#, fuzzy
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Használja az ATI GPU-t %1 Erőltetve a 6.10 verzió felett %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Ezek minden BOINC projektre vonatkoznak, amiben részt vesz.<br>\n"
-#~ "Több projektben résztvevő számítógépeknél a legutóbb módosított beállítások "
-#~ "lesznek érvényben."
-
-#~ msgid "Export this news item as a Notice"
-#~ msgstr "E hír megjelölése figyelmeztetésként"
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "Nincs ilyen csapat."
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "A számítógép körülbelül ennyi időnként csatlakozik az Internetre: %1 Hagyja "
-#~ "üresen, vagy írjon 0-t, ha mindig csatlakozik. %2 A BOINC megpróbál legalább "
-#~ "ennyi munkát tartani a gépen (max. 10 nap). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Tartson elég munkát a gépen még legalább ennyi időre:"
-
-#~ msgid "Update failed: "
-#~ msgstr "Frissítés sikertelen:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "%1Korlátozott%2 hozzáférést biztosít a fiókjához"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Ne használja ezt az űrlapot. Csak futtassa a BOINCot, válassza a Projekt "
-#~ "hozzáadását, és írjon be egy email címet és egy jelszót."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Ne rendezze át az emlékeztetőket"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Ha egy témakör az itt megadottnál több bejegyzést tartalmaz,"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr ""
-#~ "csak az elsőt és az utána következő itt megjelölt darabszámút jelenítse meg"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Jelentését rögzítettük. Köszönjük jelzését!"
-
-# #######################################
-# "Weak account key" page (weak_auth.php)
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "A 'gyenge fiókkulcs' lehetővé teszi, hogy Ön számítógépeit hozzácsatolja a "
-#~ "projektben létrehozott fiókjához anélkül, hogy újra és újra kellje "
-#~ "jelentkeznie a fiókjához, vagy bármi módon megváltoztatnia azt."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Ez a művelet csak olyan projekteken működik, melyek szerver szoftvere 2007. "
-#~ "december 7-e óta frissítve lett."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Az ehhez a projekthez tartozó gyenge fiókkulcsa a következő:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "A gyenge fiókkulcs egy adott hoston történő használatához keresse meg, vagy "
-#~ "hozza létre a projekthez tartozó 'fiókfájlt'. A fájlnévnek a következőképpen "
-#~ "kell kinéznie: <b>account_PROJECT_URL.xml</b>. A fiókfájl ehhez: %1, a "
-#~ "következő: <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Ezen fájl létrehozása, ha szükséges. A fájl tartalmát erre állítsa be:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Az Ön gyenge fiókkulcsa a jelszava alapján generálódik. Ha megváltoztatja "
-#~ "jelszavát, gyenge fiókkulcsa is megváltozik, az előző gyenge fiókkulcsa "
-#~ "pedig érvénytelenné válik."
-
-#~ msgid "Account key"
-#~ msgstr "Fiókkulcs"
-
-#~ msgid "- private message"
-#~ msgstr "- privát üzenet"
-
-# #######################################
-# Private messages
-#~ msgid "Private message from"
-#~ msgstr "Személyes üzenet tőle:"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC kliens verzió"
-
-# #########################################
-# Language: English (International)
-# FileID  : $Id$
-# Author  : Janus Kristensen
-# Email   : jbk at visualgroup.dk
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Erőforrás-megosztás és grafika"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Megjelölés olvasatlanként"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Biztosan törölni akarja a "%1" tárgyú, (küldte: %2, ekkor: %3) "
-#~ "üzenetet?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Igen, törlés"
-
-#~ msgid "Posts containing '%1'"
-#~ msgstr "Üzenetek, melyek ezt tartalmazzák: '%1'"
-
-#~ msgid "No titles containing '%1' could be found."
-#~ msgstr "Nem található '%1' kifejezést tartalmazó cím."
-
-#~ msgid "No posts containing '%1' could be found."
-#~ msgstr "Nem található '%1' kifejezést tartalmazó üzenet."
-
-#~ msgid "administrative functions"
-#~ msgstr "adminisztratív funkciók"
-
-#~ msgid "Message board preferences"
-#~ msgstr "Üzenőfal beállításai"
-
-#~ msgid "Account number"
-#~ msgstr "Fiókszám"
-
-#~ msgid "Used in URLs"
-#~ msgstr "URL-ekben használva"
diff --git a/locale/hu/BOINC-Setup.mo b/locale/hu/BOINC-Setup.mo
index a28cb10..8e6b643 100644
Binary files a/locale/hu/BOINC-Setup.mo and b/locale/hu/BOINC-Setup.mo differ
diff --git a/locale/hu/BOINC-Setup.po b/locale/hu/BOINC-Setup.po
index 31893fc..7cf7a80 100644
--- a/locale/hu/BOINC-Setup.po
+++ b/locale/hu/BOINC-Setup.po
@@ -1,71 +1,77 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Attila Fenyvesi <fenya25 at gmail.com>, 2015
+# Attila Fenyvesi <fenya25 at gmail.com>, 2015,2017
 # fischer braun <fischer.braun at gmx.net>, 2015
-# Gabor Cseh <csega at mailbox.hu>, 2015
+# Gabor Cseh <csega at mailbox.hu>, 2015-2016
 # misibacsi, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2016-02-08 09:37+0000\n"
-"Last-Translator: Gabor Cseh <csega at mailbox.hu>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-23 17:24+0000\n"
+"Last-Translator: Attila Fenyvesi <fenya25 at gmail.com>\n"
 "Language-Team: Hungarian (http://www.transifex.com/boinc/boinc/language/hu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: hu\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Sajnos a(z) %s ezen verziója 10.5 vagy nagyobb rendszerverziót igényel."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Sajnos a(z) %s ezen verziója 10.6 vagy nagyobb rendszerverziót igényel."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Igen"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Nem"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Akkor is fusson a BOINC, ha mindenki kijelentkezett?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
-msgstr "A felhasználók, akik ezen számítógépen adminisztrátori jogosultsággal rendelkeznek automatikusan engedélyt kapnak a %s futtatására és vezérlésére.\n\nSzeretnéd, hogy a nem adminisztrátori jogú felhasználók is futtathassák és vezéreljék %s-t ezen a Mac-en?"
+msgstr "A felhasználók, akik ezen számítógépen adminisztrátori jogosultsággal rendelkeznek, automatikusan engedélyt kapnak a %s futtatására és vezérlésére.\n\nSzeretnéd, hogy a nem adminisztrátori jogú felhasználók is futtathassák és vezéreljék %s-t ezen a Mac-en?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr "Akarja beállítani %s-t képernyővédőnek minden %s felhasználó számára ezen a Mac-en?"
+msgstr "Be akarod állítani %s-t képernyővédőnek minden %s felhasználó számára ezen a Mac-en?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Hozzáférési hiba újraindítás után"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Az eltávolítás több percet is igénybe vehet.\nKérjük, légy türelmes."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -73,27 +79,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Biztosan eltávolítod:  %s -t erről a számítógépről?\n\nEz letörli a végrehajtható állományokat, de meghagyja %s adatfájljait."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Visszavonva: %s nem változott."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Hiba történt: hibakód: %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "a felhasználó neve"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "El akarod távolítani a VirtualBox-ot is a számítógépről?\n(a VirtualBox a BOINC-cal együtt lett felrakva)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -105,17 +111,17 @@ msgid ""
 "\"%s\"."
 msgstr "Eltávolítás befejezve.\n\nEltávolíthatod a következő fennmaradó elemeket a Kereső használatával:\n a \"%s\" könyvár \n\nminden felhasználóhoz, a \"%s\" fájl."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Add meg az adminisztrátori jelszót %s teljes eltávolításához erről a számítógépről.\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Mégsem"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Folytatás..."
diff --git a/locale/hu/BOINC-Web.mo b/locale/hu/BOINC-Web.mo
index 05d2b3c..b494203 100644
Binary files a/locale/hu/BOINC-Web.mo and b/locale/hu/BOINC-Web.mo differ
diff --git a/locale/hu/BOINC-Web.po b/locale/hu/BOINC-Web.po
index 3360561..ea90af7 100644
--- a/locale/hu/BOINC-Web.po
+++ b/locale/hu/BOINC-Web.po
@@ -7,16 +7,19 @@
 # 
 # Translators:
 # fischer braun <fischer.braun at gmx.net>, 2015
-# Gabor Cseh <csega at mailbox.hu>, 2015
+# Gabor Cseh <csega at mailbox.hu>, 2015-2016
 # misibacsi, 2015
+# misibacsi, 2015
+# PB <regisztralo111 at gmail.com>, 2015
+# Zoltan Retvari <retvari at freemail.hu>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2014-02-01 00:00 PST\n"
-"PO-Revision-Date: 2015-06-24 12:59+0000\n"
+"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
+"PO-Revision-Date: 2016-06-19 12:07+0000\n"
 "Last-Translator: Gabor Cseh <csega at mailbox.hu>\n"
-"Language-Team: Hungarian (http://www.transifex.com/projects/p/boinc/language/hu/)\n"
+"Language-Team: Hungarian (http://www.transifex.com/boinc/boinc/language/hu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -37,89 +40,90 @@ msgstr "Vissza a BOINC főoldalára"
 msgid "This page is %stranslatable%s."
 msgstr "Ez az oldal %slefordítható%s."
 
-#: download.php:39
+#: download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Javasoljuk, hogy telepítsd a VirtualBoxot is, így a számítógéped részt tud venni azon a tudományos projektekben is, melyek futásához ez a szoftver elengedhetetlen."
 
-#: download.php:41
+#: download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "Tudj meg többet a VirtualBoxról."
 
-#: download.php:51
+#: download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "A BOINC + VirtualBox letöltése"
 
-#: download.php:54 download.php:69
+#. "for %s" identifies the operating system, e.g. "for Windows"
+#: download.php:56 download.php:71
 #, php-format
 msgid "for %s"
 msgstr "%s rendszerre"
 
-#: download.php:57 download.php:72
+#: download.php:59 download.php:74
 #, php-format
-msgid "BOINC version %s"
-msgstr "BOINC verzió %s"
+msgid "BOINC %s"
+msgstr "BOINC %s"
 
-#: download.php:59
+#: download.php:61
 #, php-format
-msgid "VirtualBox version %s"
-msgstr "VirtualBox verzió %s"
+msgid "VirtualBox %s"
+msgstr "VirtualBox %s"
 
-#: download.php:67
+#: download.php:69
 msgid "Download BOINC"
 msgstr "A BOINC letöltése"
 
-#: download.php:123
+#: download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
-msgstr "A BOINC egy program, amely lehetővé teszi, hogy számítógéped üresjárati idejét olyan tudományos projekteknek adományozd, mint a SETI at home, a Climateprediction.net, a Rosetta at home, a Word Community Grid és még sokan mások."
+msgstr "A BOINC egy program, amellyel a számítógéped üresjárati idejét olyan tudományos projekteknek adományozhatod, mint a SETI at home, a Climateprediction.net, a Rosetta at home, a Word Community Grid és még sok másik."
 
-#: download.php:125
+#: download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "A BOINC számítógépedre történő telepítése után annyi projekthez csatlakozhatsz, amennyihez jól esik."
 
-#: download.php:127
+#: download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
-msgstr "Csak olyan számítógépeken futtassa ezt a szoftvert, ahol ön a tulajdonos, vagy rendelkezik a tulajdonos engedélyével."
+msgstr "Csak olyan számítógépeken futtasd ezt a szoftvert, ahol te vagy a tulajdonos, vagy rendelkezel a tulajdonos engedélyével."
 
-#: download.php:132
+#: download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
-msgstr "Javasoljuk, hogy a BOINCot ne innen töltsd le, hanem inkább a Google Play Storeból, vagy az Amazon Appstoreból."
+msgstr "Javasoljuk, hogy a BOINC-ot ne innen töltsd le, hanem inkább a Google Play Store-ból, vagy az Amazon Appstore-ból."
 
-#: download.php:167
+#: download.php:177
 msgid "System requirements"
 msgstr "Rendszerigény"
 
-#: download.php:168
+#: download.php:178
 msgid "Release notes"
 msgstr "Verzióinformáció"
 
-#: download.php:169 index.php:86
+#: download.php:179 index.php:93
 msgid "Help"
 msgstr "Segítség"
 
-#: download.php:170
+#: download.php:180
 msgid "All versions"
 msgstr "Összes verzió"
 
-#: download.php:171
+#: download.php:181
 msgid "Version history"
 msgstr "Verziótörténet"
 
-#: download.php:172
+#: download.php:182
 msgid "GPU computing"
 msgstr "GPU számítás"
 
-#: download.php:190
+#: download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: számítás a tudományért"
 
@@ -130,7 +134,7 @@ msgid ""
 " can: %s answer questions about BOINC and volunteer computing; %s walk you "
 "through the process of installing and using BOINC; %s troubleshoot any "
 "problems you might have."
-msgstr "A BOINC Online Segítség lehetőséget biztosít olyan tapasztalt felhasználókkal való személyes beszélgetésre, akik %s megválaszolják a BOINC-kal és az önkéntes részvétellel kapcsolatos kérdéseit; %s végigvezetik a BOINC telepítésének és használatának folyamatán; %s segítenek a felmerülő problémák megoldásában."
+msgstr "A BOINC Online Segítség lehetőséget biztosít olyan tapasztalt felhasználókkal való személyes beszélgetésre, akik %s megválaszolják a BOINC-ra vonatkozó és az önkéntes részvétellel kapcsolatos kérdéseid; %s végigvezetnek a BOINC telepítésének és használatának folyamatán; %s segítenek a felmerülő problémák megoldásában."
 
 #: help.php:21
 #, php-format
@@ -139,7 +143,7 @@ msgid ""
 " Skype is free (both the software and the calls).  If you don't already have"
 " Skype, please %sdownload and install it now%s.  When you're finished, "
 "return to this page."
-msgstr "A BOINC Online Segítség alapja a %sSkype%s, egy internetes telefonrendszer. A Skype ingyenes (a szoftver és a hívások is). Ha önnek még nincs meg a Skype, kérem %stöltse le és telepítse most%s. Ha ezzel végzett, térjen vissza erre az oldalra."
+msgstr "A BOINC Online Segítség alapja a %sSkype%s, egy internetes telefonrendszer. A Skype ingyenes (a szoftver és a hívások is). Ha még nincs meg a Skype, kérlek %stöltsd le és telepítsd most%s. Ha ezzel végeztél, térj vissza erre az oldalra."
 
 #: help.php:28
 msgid ""
@@ -147,13 +151,13 @@ msgid ""
 "microphone and speakers or an external headset for your computer.  You can "
 "also use Skype's text-based chat system or regular email (if you don't have "
 "Skype) to communicate with Help Volunteers."
-msgstr "Szóban a legjobb segítséget kapni, de ehhez szüksége lesz egy beépített mikrofonra és hangszórókra, vagy egy külső headsetre a számítógépén. Használhatja a Skype szöveg alapú csevegő rendszerét is, vagy (ha önnek nincs Skype-ja) emailen keresztül is kommunikálhat az önkéntes segítőkkel."
+msgstr "Szóban a legjobb segítséget kapni, de ehhez szükséged lesz egy beépített mikrofonra és hangszórókra, vagy egy külső headsetre a számítógépeden. Használhatod a Skype szövegalapú csevegő rendszerét is, vagy (ha nincs Skype-od) emailen keresztül is kommunikálhatsz az önkéntes segítőkkel."
 
 #: help.php:31
 msgid ""
 "Volunteers speaking several languages are available. Please select a "
 "language:"
-msgstr "Önkénteseink számos különböző nyelven beszélnek. Kérem válasszon egy nyelvet:"
+msgstr "Önkénteseink számos különböző nyelven beszélnek. Kérlek válassz egy nyelvet:"
 
 #: help.php:47
 msgid "Be a Help Volunteer"
@@ -165,21 +169,21 @@ msgid ""
 "If you're an experienced BOINC user, we encourage you to %sbecome a Help "
 "Volunteer%s.  It's a great way to help the cause of scientific research and "
 "volunteer computing - and it's fun!"
-msgstr "Ha ön egy tapasztalt BOINC felhasználó, bátran %sjelentkezzen önkéntes segítőnek%s. Ez egy nagyszerű lehetőség a tudományos kutatások és az önkéntes számítási rendszer ügyének elősegítésére - és szórakoztató is!"
+msgstr "Ha tapasztalt BOINC felhasználó vagy, bátran %sjelentkezz önkéntes segítőnek%s. Ez egy nagyszerű lehetőség a tudományos kutatások és az önkéntes számítási rendszer ügyének elősegítésére - és szórakoztató is!"
 
 #: help.php:56
 #, php-format
 msgid ""
 "If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Ha ön már önkéntes segítő: a beállításai szerkesztéséhez %skattintson ide%s."
+msgstr "Ha már önkéntes segítő vagy: a beállításaid szerkesztéséhez %skattints ide%s."
 
-#: help_funcs.php:107
+#: help_funcs.php:136
 msgid ""
 "BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
 "or the University of California."
 msgstr "A BOINC segítők nem fizetett alkalmazottak. Tanácsaikért sem a BOINC, sem a Kaliforniai Egyetem nem vállal felelősséget."
 
-#: help_funcs.php:110
+#: help_funcs.php:139
 msgid "%1Never%2 give email address or password information to BOINC helpers."
 msgstr "%1Soha%2 ne add ki email címed vagy jelszó információid a BOINC segítőknek."
 
@@ -219,204 +223,163 @@ msgstr "PetaFLOPS."
 msgid "News"
 msgstr "Hírek"
 
-#: index.php:83
+#. "Volunteer" is used as a verb
+#: index.php:89
 msgid "Volunteer"
 msgstr "Önkéntes"
 
-#: index.php:85
+#: index.php:92
 msgid "Download"
 msgstr "Letöltés"
 
-#: index.php:87 index.php:120 index.php:171
+#: index.php:94 index.php:138
 msgid "Documentation"
 msgstr "Dokumentáció"
 
-#: index.php:88
+#: index.php:95
 msgid "Add-ons"
 msgstr "Kiegészítők"
 
-#: index.php:89
+#: index.php:96
 msgid "Links"
 msgstr "Linkek"
 
-#: index.php:94
+#: index.php:101
 msgid ""
 "Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
 " diseases, study global warming, discover pulsars, and do many other types "
 "of scientific research.  It's safe, secure, and easy:"
 msgstr "Használd (Windows, Mac, Linux vagy Android rendszerű) számítógéped üresjárati idejét betegségek gyógyítására, a globális felmelegedés tanulmányozására, pulzárok felfedezésére és sok más egyéb tudományos kutatás előmozdítására. Mindez veszélytelen, biztonságos és könnyű:"
 
-#: index.php:96
+#: index.php:103
 msgid "Choose projects"
 msgstr "Válassz projektet"
 
-#: index.php:97
+#: index.php:104
 msgid "Download BOINC software"
 msgstr "A BOINC szoftver letöltése"
 
-#: index.php:98
+#: index.php:105
 msgid "Enter an email address and password."
 msgstr "Add meg az email címed és egy jelszót."
 
-#: index.php:102
+#: index.php:109
 #, php-format
 msgid ""
 "Or, if you run several projects, try an %saccount manager%s such as "
 "%sGridRepublic%s or %sBAM!%s. "
-msgstr "Ha több projektben is részt vesz, próbáljon ki egy %sfiókkezelőt%s, mint például a %sGridRepublic%s vagy a %sBAM!%s."
+msgstr "Ha több projektben is részt veszel, próbálj ki egy %sfiókkezelőt%s, mint például a %sGridRepublic%s vagy a %sBAM!%s."
 
-#: index.php:118
+#: index.php:136
 msgid "Compute with BOINC"
 msgstr "Számítás a BOINC segítségével"
 
-#: index.php:121
+#: index.php:139
 msgid "Software updates"
 msgstr "Szoftverfrissítések"
 
-#: index.php:128
+#: index.php:146
 msgid ""
-"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving"
-" you the computing power of thousands of CPUs."
-msgstr "%1Kutatók%2: Használjanak BOINC-ot olyan %3önkéntes számítási projekt%4 létrehozásához, amellyel több ezer processzor számítási teljesítményét használhatják fel."
+"%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
+"giving you the power of thousands of CPUs and GPUs."
+msgstr "%1Tudósok%2: a BOINC segítségével %3önkéntes számítási projektek%4 hozhatók létre, CPU-k és GPU-k ezreinek teljesítményét adva."
 
-#: index.php:132
+#: index.php:150
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
-msgstr "%1Egyetemek%2: Használjanak BOINC-ot %3Virtuális Szuperszámítóközpont%4 létrehozásához."
+msgstr "%1Egyetemek%2: A BOINC használata %3Virtuális Szuperszámítóközpont%4 létrehozásához."
 
-#: index.php:137
+#: index.php:155
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
-msgstr "%1Vállalatok%2: Használjanak BOINC-ot %3asztali Grid számítások%4 létrehozásához."
+msgstr "%1Vállalatok%2: A BOINC használata %3asztali Grid számítások%4 létrehozásához."
 
-#: index.php:149
-msgid "The BOINC project"
-msgstr "A BOINC projekt"
+#: index.php:167
+msgid "About BOINC"
+msgstr "A BOINC-ról"
 
-#: index.php:155
+#: index.php:181
 msgid "Message boards"
 msgstr "Üzenőfalak"
 
-#: index.php:156
+#: index.php:182
 msgid "Email lists"
 msgstr "Levelezőlisták"
 
-#: index.php:157
-msgid "Personnel and contributors"
-msgstr "Munkatársak és közreműködők"
-
-#: index.php:158
+#: index.php:183
 msgid "Events"
 msgstr "Események"
 
-#: index.php:159
-msgid "Papers and talks"
-msgstr "Cikkek és előadások"
-
-#: index.php:160
-msgid "Research projects"
-msgstr "Kutatási projektek"
-
-#: index.php:161
-msgid "Logos and graphics"
-msgstr "Logók és grafikák"
-
-#: index.php:162
-msgid "and"
-msgstr "és"
-
-#: index.php:166
-msgid "Help wanted"
-msgstr "Segítőket keresünk"
-
-#: index.php:168
-msgid "Programming"
-msgstr "Programozás"
-
-#: index.php:169
-msgid "Translation"
-msgstr "Fordítás"
-
-#: index.php:170
-msgid "Testing"
-msgstr "Tesztelés"
-
-#: index.php:172
-msgid "Publicity"
-msgstr "Nyilvánosság"
-
-#: index.php:174
-msgid "Software development"
-msgstr "Szoftverfejlesztés"
+#: index.php:184
+msgid "Source code"
+msgstr "Forráskód"
 
-#: index.php:175
+#: index.php:186
 msgid "APIs for add-on software"
 msgstr "API-k kiegészítő szoftverekhez"
 
-#: index.php:217
-#, php-format
-msgid ""
-"Open-source software for %svolunteer computing%s and %sgrid computing%s."
-msgstr "Nyílt forráskódú szoftver %sönkéntes%s, illetve %sgriden végzett számításokhoz%s."
+#: index.php:231
+msgid "Open-source software for volunteer computing"
+msgstr "Nyílt-forráskódú szoftver az önkéntes számításokhoz"
 
-#: index.php:230
-msgid "BOINC is based at The University of California, Berkeley"
-msgstr "A BOINC központja a Kalifornia Egyetemen, Berkeley-ben található"
-
-#: projects.inc:14
+#: projects.inc:19
 msgid "Distributed sensing"
 msgstr "Elosztott érzékelés"
 
-#: projects.inc:19
+#: projects.inc:24
 msgid "Stanford University"
 msgstr "Stanford Egyetem"
 
-#: projects.inc:20
+#: projects.inc:25
 msgid "Seismology"
 msgstr "Szeizmológia"
 
-#: projects.inc:21
+#: projects.inc:26
 msgid ""
-"The Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to Internet-connected computers.  You must buy a "
-"sensor to participate."
-msgstr "A Quake-Catcher Network az internethez csatlakoztatott számítógépekre szerelt érzékelők segítségével a világ legnagyobb szeizmikus hálózatát fejleszti ki. A részvételhez vásárolnod kell egy érzékelőt."
+"Quake-Catcher Network is developing the world's largest seismic network "
+"using sensors attached to computers and smartphones."
+msgstr "A Quake-Catcher Network az internethez csatlakoztatott számítógépekre szerelt érzékelők segítségével a világ legnagyobb szeizmikus hálózatát fejleszti ki."
 
-#: projects.inc:27
+#: projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "BOINC Lengyelország Alapítvány"
 
-#: projects.inc:28
+#: projects.inc:35
 msgid "Environmental research"
 msgstr "Környezeti kutatás"
 
-#: projects.inc:29
-msgid ""
-"This project is creating a free and continuously updated map of radiation "
-"levels by using sensors connected to volunteers' computers.  You must buy a "
-"sensor to participate."
-msgstr "A projekt célja ingyenes és folyamatosan frissülő sugárzási térkép létrehozása a résztvevő számítógépekhez kapcsolt érzékelők adatai alapján. A részvételhez vásárolnod kell egy érzékelőt."
-
-#: projects.inc:33
+#: projects.inc:36
 msgid ""
-"To participate in these projects you must buy a sensor and attach it to your"
-" computer."
-msgstr "Az ezekben a projektekben való részvételhez vásárolnod kell egy érzékelőt, és csatlakoztatnod kell a számítógépedhez."
+"Radioactive at Home is creating a free and continuously updated map of "
+"radiation levels using sensors connected to volunteers' computers.  You must"
+" buy a sensor to participate."
+msgstr "A Radioactive at Home projekt célja egy ingyenes és folyamatosan frissülő sugárzási térkép létrehozása a résztvevő számítógépekhez kapcsolt érzékelők adatai alapján. A részvételhez vásárolnod kell egy érzékelőt."
 
-#: projects.inc:37
+#: projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Kognitív tudomány és mesterséges intelligencia"
 
-#: projects.inc:60 projects.inc:364 projects.inc:408 projects.inc:457
-#: projects.inc:464 projects.inc:511
+#: projects.inc:51
+msgid "Cognitive Science"
+msgstr "Kognitív Tudomány"
+
+#: projects.inc:52
+msgid ""
+"MindModeling at Home uses computational cognitive process modeling to better "
+"understand the human mind, and specifically to study the mechanisms and "
+"processes that enable and moderate human performance and learning."
+msgstr "A MindModeling at Home a kognitív folyamatok számítógépes modellezését végzi az emberi elme jobb megértése érdekében, különös tekintettel az emberi teljesítményt és tanulást lehetővé tevő, illetve azt mérséklő mechanizmusok és folyamatok tanulmányozására."
+
+#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
+#: projects.inc:657
 msgid "Private"
 msgstr "Magán"
 
-#: projects.inc:61
+#: projects.inc:71
 msgid "Artificial intelligence"
-msgstr "mesterséges intelligencia"
+msgstr "Mesterséges intelligencia"
 
-#: projects.inc:62
+#: projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -424,36 +387,55 @@ msgid ""
 "conversations."
 msgstr "Szemantikus hálók feldolgozása és konvertálása a FreeHAL-hoz, egy mesterséges intelligenciához, amely szemantikus hálózatokat, szótő keresést, szófaj adatbázisokat, szövegkörnyezet vizsgálatot használ, hogy imitálja az emberi viselkedést a párbeszédekben."
 
-#: projects.inc:69
+#: projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biológia és orvostudomány"
 
-#: projects.inc:82
+#: projects.inc:88
+msgid "Medical physiology"
+msgstr "Orvosi élettan"
+
+#: projects.inc:89
+msgid ""
+"DENIS at Home does cardiac electrophysiological simulations, studying the "
+"electrical activity of the heart."
+msgstr "A DENIS at Home szív-elektrofiziológiai szimulációkkal tanulmányozza a szív elektromos tevékenységét."
+
+#: projects.inc:98
+msgid "Molecular biology"
+msgstr "Molekuláris biológia"
+
+#: projects.inc:99
+msgid ""
+"RNA World seeks to identify, analyze, structurally predict and design RNA "
+"molecules on the basis of established bioinformatics software."
+msgstr "Az RNA World célja RNS molekulák azonosítása, elemezése, strukturális előrejelzése és tervezése szilárd alapokon nyugvó bioinformatikai szoftverek használatával."
+
+#: projects.inc:107
 msgid "University College Dublin"
 msgstr "University College Dublin"
 
-#: projects.inc:83
+#: projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Maláriaellenes gyógyszerfelfedezés"
 
-#: projects.inc:84
+#: projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
-" medication. We therefore urgently need to discover new drugs to replace "
-"existing drugs. Importantly, these new drugs need to target NEW proteins in "
-"the parasite. The FightMalaria at Home project is aimed at finding these new "
-"targets."
-msgstr "A maláriát okozó parazita egy idő után rezisztenssé válik az elérhető gyógyszerekre. Ezért sürgősen szükségünk van új gyógyszerek felfedezésére, a mostani gyógyszerek lecserélésére. Fontos, hogy ezek az új gyógyszerek a parazita új fehérjéit célozzák meg. A FightMalaria at Home projekt célja ezeknek az új célpontoknak a megtalálása."
+" medication. We therefore urgently need to discover new drugs, targeting new"
+" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
+"at finding these new targets."
+msgstr "A maláriát okozó élősködő folyamatosan fejlődik, ellenállóvá válva az elérhető gyógyszerekkel szemben. Ezért sürgősen fel kell fedeznünk új gyógyszereket, melyek az élősködőben lévő új fehérjéket célozzák meg. A FightNeglectedDieases at Home projekt ezeket szeretné megtalálni."
 
-#: projects.inc:90
+#: projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Karlsruhe-i Egyetem (Németország)"
 
-#: projects.inc:91
+#: projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Fehérjestruktúra előrejelzés"
 
-#: projects.inc:92
+#: projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -462,79 +444,47 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "A POEM at HOME egy olyan számítási megközelítést használ, aminek segítségével igyekszik előre jelezni adott összetételű fehérjék biológiailag aktív szerkezetét, megérteni a kölcsönhatásuk során lezajló jelfeldolgozási mechanizmusokat, megismerni a fehérjék helytelen működése vagy felhalmozódása miatt kialakuló betegségeket, illetve az élettani szempontból lényeges fehérjék háromdimenziós szerkezete alapján új gyógyszereket kifejleszteni."
 
-#: projects.inc:98
-msgid "University of Delaware"
-msgstr "Delaware Egyetem"
-
-#: projects.inc:99
-msgid "Study of protein - ligand interactions"
-msgstr "Fehérje - ligandum interakciók tanulmányozása"
-
-#: projects.inc:100
-msgid ""
-"Docking at Home has both bioscience and computer science goals. The project "
-"aims to further knowledge of the atomic details of protein-ligand "
-"interactions and, by doing so, will search for insights into the discovery "
-"of novel pharmaceuticals."
-msgstr "A Docking at Home egyszerre szolgál élettudományi és számítástechnikai célokat. A projekt a fehérje-ligandum kölcsönhatások atomi szinten történő, még jobb megismerését célozza meg, egyúttal újfajta gyógyszerkészítmények felfedezésének módjait is kutatja."
-
-#: projects.inc:114
+#: projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Barcelonai Orvosbiológiai Kutatópark (PRBB)"
 
-#: projects.inc:115
+#: projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Fehérjék molekuláris szimulációja"
 
-#: projects.inc:116
+#: projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
 "New biomedical applications suddenly become possible giving a new role to "
 "computational biology for biomedical research."
-msgstr "A GPUGrid.net új számítási utakat nyit az első, speciálisan NVIDIA GPU-ra optimalizált, teljes-atomos molekuladinamikai kódja (CellMD) révén. Segítségével új orvosbiológiai alkalmazások gyorsabban válnak megvalósíthatóvá, ezzel új szerepet adva a biológiai számítástudománynak az orvosbiológiai kutatások területén."
-
-#: projects.inc:122
-msgid "Technion, Israel"
-msgstr "Technion, Izrael"
+msgstr "A GPUGrid.net új számítási utakat nyit a speciálisan NVIDIA GPU-ra optimalizált, első teljes-atomos molekuladinamikai kód (CellMD) révén. Általa új orvosbiológiai alkalmazások váltak hirtelen elérhetővé, ezzel új szerepet adva a biológiai számítástudománynak az orvosbiológiai kutatások területén."
 
-#: projects.inc:123
-msgid "Genetic linkage analysis"
-msgstr "Genetikai kapcsolatok elemzése"
-
-#: projects.inc:124
-msgid ""
-"Superlink at Technion helps geneticists all over the world find disease-"
-"provoking genes causing some types of diabetes, hypertension (high blood "
-"pressure), cancer, schizophrenia and many others."
-msgstr "A Superlink at Technion segít a világ genetikusainak, hogy megtalálják azokat a betegségeket keltő géneket, amelyek sok más mellett a cukorbetegség, a magas vérnyomás, a rák és a skizofrénia egyes típusainak okozói."
-
-#: projects.inc:138
+#: projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Maryland Egyetem Bioinformatikai és Biomodellezési Központ"
 
-#: projects.inc:139
+#: projects.inc:176
 msgid "Life science research"
 msgstr "Élettudományok kutatása"
 
-#: projects.inc:140
+#: projects.inc:177
 msgid ""
-"The Lattice Project supplies computing power to scientists at the University"
-" of Maryland studying evolutionary relationships based on DNA sequence data;"
-" bacterial, plasmid, and virus protein sequences; and biological diversity "
-"in nature reserves. "
-msgstr "A Lattice Projekt számítási teljesítményt biztosít a Maryland egyetem kutatóinak, evolúciós kapcsolatok DNS szekvencia adatokon, baktérium, plazmid, és vírus protein szekvenciákon, valamint természetvédelmi területek biodiverzitásán alapuló tanulmányozásához."
+"The Lattice Project, developed and administered at the University of "
+"Maryland, supplies computing power to researchers worldwide who are studying"
+" evolutionary relationships using DNA and protein sequence data."
+msgstr "A Maryland-i Egyetemen fejlesztett és igazgatott The Lattice Project azoknak a kutatóknak biztosít számítási teljesítményt szerte a világon, akik evolúciós kapcsolatokat tanulmányoznak a DNS, és fehérjesorozatok adatainak felhasználásával."
 
-#: projects.inc:146
+#: projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "A Svájci Trópusi Intézet"
 
-#: projects.inc:147
+#: projects.inc:186
 msgid "Epidemiology"
 msgstr "Járványtan"
 
-#: projects.inc:148
+#: projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -543,50 +493,39 @@ msgid ""
 "is extremely computer intensive, requiring simulations of large human "
 "populations with a diverse set of parameters related to biological and "
 "social factors that influence the distribution of the disease. "
-msgstr "A malária egészségre való hatásának, illetve terjedési dinamizmusának szimulációs modellezése a malária megfékezésének fontos eszköze. Ezek felhasználhatók a szúnyoghálók szállítási stratégiájának, a kemoterápia vagy az új, még fejlesztés és tesztelés alatt álló védőoltások megfelelő megtervezéséhez. Ez a modellezés azonban rendkívül számításigényes, hiszen nagy emberpopulációkat kell szimulálnia, méghozzá a fertőzés terjedését befolyásoló számos élettani és társadalmi tényező fü [...]
+msgstr "A malária egészségre való hatásának, illetve terjedési dinamizmusának szimulációs modellezése a malária megfékezésének fontos eszköze. Az eredmények felhasználhatók a szúnyoghálók szállítási stratégiájának, a kemoterápia vagy az új, még fejlesztés és tesztelés alatt álló védőoltások megfelelő megtervezéséhez. Ez a modellezés azonban rendkívül számításigényes, hiszen nagy emberpopulációkat kell szimulálnia, méghozzá a fertőzés terjedését befolyásoló számos élettani és társadalmi t [...]
 
-#: projects.inc:170
+#: projects.inc:211
 msgid "University of Washington"
 msgstr "Washingtoni Egyetem"
 
-#: projects.inc:171 projects.inc:179
+#: projects.inc:212
 msgid "Biology"
 msgstr "Biológia"
 
-#: projects.inc:172
+#: projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
 "Rosetta at home you will help us speed up and extend our research in ways we "
 "couldn't possibly attempt without your help. You will also be helping our "
-"efforts at designing new proteins to fight diseases such as HIV, Malaria, "
-"Cancer, and Alzheimer's"
-msgstr "Kutatásunk célja a fehérjék háromdimenziós alakjának meghatározása, amely végül egyes jelentős emberi betegségek gyógyszereinek felfedezéséhez vezethet. A Rosetta at home futtatásával segíthet kutatásunk olyan mértékű felgyorsításában és kiterjesztésében, amire az Önök segítsége nélkül bizonyosan képtelenek volnánk. Egyúttal olyan fehérjék megtervezését célzó kutatásunkat is segítheti, amelyek például a HIV, a malária, a rák vagy az Alzheimer-kór leküzdéséhez járulhatnak hozzá."
-
-#: projects.inc:178
-msgid "University of Vienna"
-msgstr "Bécsi Egyetem"
+"efforts at designing new proteins to fight diseases such as HIV, malaria, "
+"cancer, and Alzheimer's"
+msgstr "Kutatásunk célja a fehérjék háromdimenziós alakjának meghatározása, amely végül egyes jelentős emberi betegségek gyógyszereinek felfedezéséhez vezethet. A Rosetta at home futtatásával segíthetsz kutatásunk olyan mértékű felgyorsításában és kiterjesztésében, amire a segítséged nélkül bizonyosan képtelenek volnánk. Egyúttal olyan fehérjék megtervezését célzó kutatásunkat is segítheted, amelyek például a HIV, a malária, a rák vagy az Alzheimer-kór leküzdéséhez járulhatnak hozzá."
 
-#: projects.inc:180
-msgid ""
-"Calculate similarities between proteins. SIMAP provides a public database of"
-" the resulting data, which plays a key role in many bioinformatics research "
-"projects."
-msgstr "Fehérjék közötti hasonlóságokat számol. A SIMAP a kiszámolt adatokból egy nyilvános adatbázist hoz létre, amely jelentős szerepet játszik több bioinformatikai kutatási projektben."
-
-#: projects.inc:186
+#: projects.inc:231
 msgid "Earth Sciences"
 msgstr "Földtudományok"
 
-#: projects.inc:198
+#: projects.inc:243
 msgid "Oxford University"
 msgstr "Oxfordi Egyetem"
 
-#: projects.inc:199
+#: projects.inc:244
 msgid "Climate study"
 msgstr "Klímakutatás"
 
-#: projects.inc:200
+#: projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -596,85 +535,99 @@ msgid ""
 "changes and also to things like changes in carbon dioxide and the sulphur "
 "cycle. This will allow us to explore how climate may change in the next "
 "century under a wide range of different scenarios."
-msgstr "A projekt olyan közelítéseket vizsgál, melyek megfelelnek a legújabb klímamodellekkel szemben támasztott elvárásoknak. Egy modellt több ezer alkalommal lefuttatva reményeink szerint megláthatjuk, miként válaszol, ha kis módosításokat végzünk e közelítésekben – elég kicsiket ahhoz, hogy a közelítések még realisztikusak maradjanak. Mindez lehetővé teszi számunkra annak megértését, hogy mennyire érzékenyek ezek a modellek kis változtatásokra, például a szén-dioxid- vagy a kénciklusb [...]
+msgstr "A projekt olyan közelítéseket vizsgál, melyek megfelelnek a legújabb klímamodellekkel szemben támasztott elvárásoknak. Egy modellt több ezer alkalommal lefuttatva reményeink szerint megláthatjuk, miként válaszol, ha kis módosításokat végzünk e közelítésekben – elég kicsiket ahhoz, hogy a közelítések még realisztikusak maradjanak. Mindez lehetővé teszi számunkra annak megértését, hogy mennyire érzékenyek ezek a modellek kis változtatásokra, valamint a szén-dioxid- vagy a kénciklus [...]
 
-#: projects.inc:207
+#: projects.inc:253
 msgid "Physical Science"
 msgstr "Fizikai tudományok"
 
-#: projects.inc:213
+#: projects.inc:259
 msgid "Mechanical engineering"
 msgstr "Gépészet"
 
-#: projects.inc:214
+#: projects.inc:260
 msgid ""
 "Currently we are calculating the optimum design of a structure call the 52 "
 "bar truss"
 msgstr "Jelenleg az optimális konstrukcióját számoljuk ki az 52 baros nyalábnak nevezett struktúrának"
 
-#: projects.inc:224 projects.inc:263 projects.inc:271
+#: projects.inc:269 projects.inc:328 projects.inc:338
 msgid "Astronomy"
 msgstr "Csillagászat"
 
-#: projects.inc:225
+#: projects.inc:270
 msgid ""
-"We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to "
-"generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby "
-"Universe. We will measure physical parameters (such as stellar mass surface "
-"density, star formation rate surface density, attenuation, and first-order "
-"star formation history) on a resolved pixel-by-pixel basis using spectral "
-"energy distribution (SED) fitting techniques in a distributed computing "
-"mode."
-msgstr "Kombinálni fogjuk a GALEX, a Pan-STARRS1 és a WISE által lefedett spektrális tartományokat és ezekből létrehozunk egy több hullámhosszt lefedő UV-optikai-NIR galaktikus atlaszt az univerzum hozzánk közeli részéről. Spektrális energiaeloszlás (spectral energy distribution - SED) illesztési technikákkal különböző fizikai paramétereket fogunk mérni (csillagok felületi sűrűsége, csillagkeletkezési ráta felületi sűrűsége, csillapítás és elsőrendű csillagkeletkezési történelem) eloszto [...]
+"TheSkyNet POGS is an astronomy project studying 16 different properties of "
+"galaxies, including brightness, mass, amount of dust and how fast stars are "
+"forming. We are using your processing power to conduct pixel-by-pixel "
+"calculations on multi-wavelength (ultraviolet, optical and near-infrared "
+"light) images of galaxies to produce an atlas that will help astronomers to "
+"better understand the distant universe."
+msgstr "A TheSkyNet POGS egy csillagászati projekt, amely a galaxisok 16 különböző tulajdongását vizsgálja, ideértve azok fényességét, tömegét, a pormennyiségüket és a bennük lévő csillagok kialakulási sebességét. A te számítási kapacitásod felhasználásával pixelről pixelre végzett számításokat végzünk a galaxisok több hullámhosszt tartalmazó (ultraibolya, optikai és közeli infravörös fényű) képein. Célunk egy olyan atlasz készítése, ami segít a csillagászoknak jobban megérteni a távoli  [...]
 
-#: projects.inc:247
-msgid "University of Texas at Austin"
-msgstr "Texasi Egyetem, Austin"
+#: projects.inc:280 projects.inc:366
+msgid "Astrophysics"
+msgstr "Asztrofizika"
 
-#: projects.inc:248 projects.inc:279
-msgid "Chemistry"
-msgstr "Kémia"
+#: projects.inc:281
+msgid ""
+"The aim of the project is to derive shapes and spin for a significant part "
+"of the asteroid population. As input data, we use any asteroid photometry "
+"that is available. The results are asteroid convex shape models with the "
+"direction of the spin axis and the rotation period."
+msgstr "A projekt célja az aszteroidák alakjának és forgásának meghatározása a populáció minél nagyobb részére. Bemenetként az aszteroidákról elérhető bármilyen fotometriai adatot felhasználunk. Eredményként az aszteroidák konvex alakmodelljeit kapjuk a forgástengely irányával és a forgási periódussal."
 
-#: projects.inc:249
+#: projects.inc:290
+msgid "Aerospace-related science and engineering"
+msgstr "A világűrrel kapcsolatos mérnöki és tudományos kutatások"
+
+#: projects.inc:291
 msgid ""
-"A common problem in theoretical chemistry, condensed matter physics and "
-"materials science is the calculation of the time evolution of an atomic "
-"scale system where, for example, chemical reactions and/or diffusion occur. "
-"Generally the events of interest are quite rare (many orders of magnitude "
-"slower than the vibrational movements of the atoms), and therefore direct "
-"simulations, tracking every movement of the atoms, would take thousands of "
-"years of computer calculations on the fastest present day computer before a "
-"single event of interest can be expected to occur.  Our research group is "
-"interested in calculating the long time dynamics of systems."
-msgstr "Az elméleti kémia, a kondenzált anyagfizika és az anyagtudomány egy általános problémája azon atomi méretű rendszerek időfejlődésének kiszámítása, amelyekben például kémiai reakciók és/vagy diffúzió történik. Általános esetben ezek az események nagyon ritkák (több nagyságrenddel lassabbak, mint az atomok rezgések miatt bekövetkező mozgása), ezért a közvetlen szimuláció - azaz az atomok mozgásának pontos követése - évezredekig kellene, hogy fusson a jelenlegi leggyorsabb számítógé [...]
+"Constellation is a platform for aerospace-related simulations, including "
+"trajectory optimization of launchers, satellites and probes, simulation of "
+"Moon's near-surface exosphere, and analysis of dynamic systems of "
+"exploration-rovers"
+msgstr "A Constellation egy világűrrel kapcsolatos szimulációk számára létrehozott platform, mely többek között a kilövőállomások, műholdak és szondák pályájának optimalizálást, a Hold felszínközeli légkörének szimulációját, valamint a felderítő roverek dinamikai rendszereinek analízisét végzi."
 
-#: projects.inc:262
-msgid "University of Illinois at Urbana-Champaign"
-msgstr "Illinois-i Egyetem, Urbana-Champaign"
+#: projects.inc:294
+msgid "Perform aerospace-related simulations"
+msgstr "Végezz a világűrrel kapcsolatos szimulációkat"
 
-#: projects.inc:264
+#: projects.inc:329
 msgid ""
-"The goal of Cosmology at Home is to search for the model that best describes "
-"our Universe and to find the range of models that agree with the available "
-"astronomical particle physics data."
-msgstr "A Cosmology at Home célja egy olyan modell keresése, amely a lehető legjobb leírást adja az Univerzumunkról, valamint megtalálni a modellek azon halmazát, amelyek összhangban vannak a csillagászati részecskefizika elérhető adataival."
+"Universe at Home aims to create the first database of the simulated stellar "
+"content of the Universe, from the earliest stars to the most exotic black "
+"hole binaries."
+msgstr "A Universe at Home célja az első olyan adatbázis létrehozása, amely szimulációból határozza meg az univerzum csillagtartalmát a legkorábbi csillagoktól kezdve egészen a legegzotikusabb kettős fekete lyukakig."
 
-#: projects.inc:270
+#: projects.inc:332
+msgid "Do research in physics and astronomy"
+msgstr "Kutass fizikai és csillagászati témakörben"
+
+#: projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Rensselaer-i Műszaki Egyetem"
 
-#: projects.inc:272
+#: projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "A Milkyway at Home célja a Tejútrendszer egy igen pontos, háromdimenziós modelljének elkészítése a Sloan Digitális Égboltfelmérési Program által begyűjtött adatok felhasználásával."
 
-#: projects.inc:278
+#: projects.inc:342
+msgid "Study the structure of the Milky Way galaxy"
+msgstr "A Tejútrendszer struktúrájának tanulmányozása"
+
+#: projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Leiden-i Egyetem, Hollandia"
 
-#: projects.inc:280
+#: projects.inc:348
+msgid "Chemistry"
+msgstr "Kémia"
+
+#: projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -684,32 +637,36 @@ msgid ""
 "simulations through the grid."
 msgstr "Klasszikus dinamikát használó felszíni számítások. A Leiden Classical használatával önkéntesek, hallgatók, diákok és más kutatók küldhetik fel személyes számolásaikat a gridre. Minden felhasználónak saját várakozási sora van a klasszikus dinamikai feladatokhoz. Ilyen módon használták már hallgatók a gridet folyékony argon szimulációjához, vagy az ideális gáztörvény érvényességének ellenőrzésére a griden végzett szimuláció segítségével."
 
-#: projects.inc:294
+#: projects.inc:352
+msgid "Help students do atomic simulations"
+msgstr "Segíts a hallgatóknak atomi szimulációkat futtatni"
+
+#: projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Wisconsin-i Egyetem - Milwaukee, Max Planck Intézet"
 
-#: projects.inc:295
-msgid "Astrophysics"
-msgstr "Asztrofizika"
-
-#: projects.inc:296
+#: projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
 "observatory.  Einstein at Home is a World Year of Physics 2005 project "
 "supported by the American Physical Society (APS) and by a number of "
 "international organizations."
-msgstr "A projekt célja forgó neutroncsillagok (más néven pulzárok) keresése a LIGO és GEO gravitációshullám-detektorok, illetve az Arecibo rádióobszervatórium adatainak felhasználásával.  Az Einstein at Home egy a \"Fizika Nemzetközi Éve 2005\" projekt alprojektjei közül, melyet az Amerikai Fizikai Társaság (American Physical Society - APS) és számos nemzetközi szervezet is támogat."
+msgstr "A projekt célja forgó neutroncsillagok (más néven pulzárok) keresése a LIGO és a GEO gravitációshullám-detektorok, illetve az Arecibo rádióobszervatórium adatainak felhasználásával.  Az Einstein at Home egy a \"Fizika Nemzetközi Éve 2005\" projekt alprojektjei közül, melyet az Amerikai Fizikai Társaság (American Physical Society - APS) és számos nemzetközi szervezet is támogat."
 
-#: projects.inc:310 projects.inc:318
+#: projects.inc:370
+msgid "Help detect pulsars and gravitational waves"
+msgstr "Pulzárok és gravitációs hullámok észlelése"
+
+#: projects.inc:383 projects.inc:393 projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Nukleáris Kutatások Európai Szervezete)"
 
-#: projects.inc:311 projects.inc:319
+#: projects.inc:384 projects.inc:394 projects.inc:404
 msgid "Physics"
 msgstr "Fizika"
 
-#: projects.inc:312
+#: projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -718,84 +675,114 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "A Nagy Hadronütköztető (Large Hadron Collider - LHC) egy részecskegyorsító a CERNnél, azaz a Nukleáris Kutatások Európai Szervezeténél, mely a világ legnagyobb részecskefizikai laboratóriuma. Ez a valaha épített legnagyobb teljesítményű eszköz, melyet a részecskék tulajdonságainak vizsgálata céljából hoztak létre. Az LHC at home az LHC, és detektorainak tervezését elősegítő szimulációkat futtat."
 
-#: projects.inc:320
+#: projects.inc:388
+msgid "Improve the design of the Large Hadron Collider"
+msgstr "Fejleszd a Nagy Hadron Ütköztetőt (Large Hadron Collider - LHC)"
+
+#: projects.inc:395
 msgid ""
-"This project uses CERN-developed virtual machine technology for full-fledged"
-" LHC event physics simulation on volunteer computers.  Requires that you "
-"install VirtualBox on your computer"
-msgstr "Ez a projekt a CERN által fejlesztett virtuális gép technológiát használja LHC események fizikájának teljes értékű szimulációjára a résztvevők számítógépein. A projekt futtatásához telepítened kell a VirtualBoxot."
+"This project uses CERN-developed virtual machine technology for LHC event "
+"physics simulation on volunteer computers.  Requires that you install "
+"VirtualBox on your computer"
+msgstr "Ez a projekt a CERN által fejlesztett virtuális gép technológiát használja az LHC események fizikájának teljes értékű szimulációjára a résztvevők számítógépein. A projekt futtatásához telepítened kell a VirtualBoxot."
 
-#: projects.inc:326
+#: projects.inc:398
+msgid "Simulate high-energy particle collisions"
+msgstr "Nagyenergiájú részecskeütközések szimulációja"
+
+#: projects.inc:405
+msgid ""
+"ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
+" physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
+" particles and processes using head-on collisions of protons of "
+"extraordinary high energy."
+msgstr "Az ATLAS at Home önkéntesek számítógépei segítségével szimulációkat futtat az ATLAS számára,  amely egy részecskefizikai kísérlet a CERN Nagy Hadronütköztetőjében. Az ATLAS új részecskéket és folyamatokat keres rendkívül magas energiával történő frontális protonütköztetések segítségével."
+
+#: projects.inc:408
+msgid "Simulate high-energy particle collisions for CERN"
+msgstr "Nagyenergiájú részecskeütközések szimulációja a CERN számára"
+
+#: projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Kaliforniai Egyetem, Berkeley"
 
-#: projects.inc:327
+#: projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Asztrofizika, asztrobiológia"
 
-#: projects.inc:328
+#: projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
 "radio SETI, uses radio telescopes to listen for narrow-bandwidth radio "
 "signals from space. Such signals are not known to occur naturally, so a "
 "detection would provide evidence of extraterrestrial technology."
-msgstr "A SETI (Földönkívüli Intelligencia Keresése) egy olyan tudományos terület, mely Földön kívüli értelmes életet keres. Ennek egyik módja a rádió-SETI, melynél rádióteleszkópokkal figyelik az űrből érkező keskeny sávszélességű rádiójeleket. Az ilyen jelek jellemzően nem keletkeznek természetes úton, tehát észlelésük bizonyítéka lehetne földönkívüli technológia létezésének."
+msgstr "A SETI (Földönkívüli Intelligencia Keresése) egy olyan tudományos terület, mely Földön kívüli értelmes életet keres. Ennek egyik módja a rádió-SETI, melynél rádióteleszkópokkal figyelik az űrből érkező, keskeny sávszélességű rádiójeleket. Az ilyen jelek jellemzően nem keletkeznek természetes úton, tehát észlelésük bizonyítéka lehetne földönkívüli technológia létezésének."
 
-#: projects.inc:342
-msgid "Bielefeld University of Applied Sciences"
-msgstr "Alkalmazott Tudományok Bielefeldi Egyeteme"
+#: projects.inc:418
+msgid "Search for evidence of extra-terrestrial life"
+msgstr "Földönkívüli élet bizonyítékainak keresése"
+
+#: projects.inc:442
+msgid "Multiple applications"
+msgstr "Többféle alkalmazás"
 
-#: projects.inc:343
-msgid "Chemical engineering and nanotechnology"
-msgstr "Kémiai tervezés és nanotechnológia"
+#: projects.inc:448
+msgid "Molecular biology, Computer Science"
+msgstr "Molekuláris biológia, számítástudomány"
 
-#: projects.inc:344
+#: projects.inc:449
 msgid ""
-"The study of molecular magnets and controlled nanoscale magnetism.  These "
-"magnetic molecules may be used to develop tiny magnetic switches, with "
-"applications in medicine (such as local tumor chemotherapy) and "
-"biotechnology."
-msgstr "A molekuláris mágnesek és az irányított nanoméretű mágnesesség tanulmányozása.  Ezek a mágneses molekulák segíthetnének apró mágneses kapcsolók kifejlesztésében, melyek a gyógyászatban (például helyi tumorkemoterápiában) és a biotechnológiában lennének alkalmazhatók."
+"The Citizen Science Grid is dedicated to supporting a wide range of research"
+" and educational projects using volunteer computing and citizen science."
+msgstr "A Citizen Science Grid a kutatás és ismeretterjesztés több területének támogatását tűzte ki célul az önkéntesek számítógépei és segítsége által."
 
-#: projects.inc:351
-msgid "Multiple applications"
-msgstr "Többféle alkalmazás"
+#: projects.inc:452
+msgid "Support science from the University of North Dakota"
+msgstr "Támogasd a tudományt az Észak-Dakotai Egyetemen"
 
-#: projects.inc:356
+#: projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Kínai Tudományos Akadémia"
 
-#: projects.inc:357
+#: projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Fizika, biokémia és egyebek"
 
-#: projects.inc:358
+#: projects.inc:459
 msgid ""
 "The objective of CAS at home is to encourage and assist scientists in China to "
 "adopt the technologies of volunteer computing and volunteer thinking for "
 "their research."
-msgstr "A CAS at home célja, hogy ösztönözze és segítse Kína tudósait, hogy kutatásukhoz befogadják az önkéntesi gondolkodás és számítás technológiáját."
+msgstr "A CAS at home célja, hogy ösztönözze és segítse Kína tudósait, hogy kutatásukhoz alkalmazzák az önkéntes hozzájárulás gondolkodásmódját és technológiáját."
 
-#: projects.inc:365
+#: projects.inc:462
+msgid "Help Chinese researchers"
+msgstr "Segítség kínai kutatóknak"
+
+#: projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Matematika, fizika, evolúció"
 
-#: projects.inc:366
+#: projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "A Yoyo at home egy illesztő alkalmazás a BOINC és különböző, már létező önkéntes számítási projektek között. Ilyenek az: ECM, Muon, Evolution at home és a distributed.net"
 
-#: projects.inc:371 projects.inc:527
+#: projects.inc:472
+msgid "Do research in math, physics, and evolution"
+msgstr "Kutatás matematikai, fizikai és evolúciós témakörben"
+
+#: projects.inc:477 projects.inc:677
 msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
 msgstr "MTA-SZTAKI Párhuzamos és Elosztott Rendszerek Laboratóriuma (Magyarország)"
 
-#: projects.inc:372
+#: projects.inc:478
 msgid "European research projects"
 msgstr "Európai kutatási projektek"
 
-#: projects.inc:373
+#: projects.inc:479
 msgid ""
 "The EDGeS at Home Beta project integrates volunteer computing into the service "
 "grid network of Europe by allowing service grids to send workunits to be "
@@ -803,27 +790,35 @@ msgid ""
 " by the project include math, physics, biology, etc."
 msgstr "Az EDGeS at Home Beta projekt az önkéntes számítást az európai szolgáltatási grid hálózatba integrálja, ezáltal lehetővé téve a szolgáltatási gridek számára munkacsomagok küldését az e projektben résztvevő önkénteseknek. A projekt által lefedett tudományos projektek matematikai, fizikai, biológiai stb. témájúak."
 
-#: projects.inc:379
+#: projects.inc:482
+msgid "Help European researchers"
+msgstr "Segítség európai kutatóknak"
+
+#: projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Spanyol egyetemek és kutatóközpontok"
 
-#: projects.inc:380
+#: projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Különböző spanyol kutatási projektek"
 
-#: projects.inc:381
+#: projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Kutatások a fizika, az anyagtudomány és a biogyógyászat területén"
 
-#: projects.inc:387
+#: projects.inc:492
+msgid "Help Spanish researchers"
+msgstr "Segítség spanyol kutatóknak"
+
+#: projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM vállalati polgárság"
 
-#: projects.inc:388
+#: projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Orvosi, környezeti és más humanitárius kutatások"
 
-#: projects.inc:389
+#: projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -831,50 +826,87 @@ msgid ""
 "clean water and many more."
 msgstr "Az emberiséget érintő legégetőbb problémák non-profit kutatásának elősegítésére létrehoztuk a világ legnagyobb önkéntes számítási hálózatát. A kutatások célterülete többek között a HIV-AIDS, rák, trópusi és elhanyagolt betegségek, napenergia, tiszta víz és még sok más."
 
-#: projects.inc:395
+#: projects.inc:502
+msgid "Do biomedical and environmental research"
+msgstr "Végezz biomedikai és környezetvédelmi kutatásokat"
+
+#: projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Matematika, számítás és játékok"
 
-#: projects.inc:401
+#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
+#: projects.inc:678
+msgid "Mathematics"
+msgstr "Matematika"
+
+#: projects.inc:534
+msgid ""
+"NumberFields at home searches for fields with special properties. The primary "
+"application of this research is in the realm of algebraic number theory. "
+"Number theorists can mine the data for interesting patterns to help them "
+"formulate conjectures about number fields. Ultimately, this research will "
+"lead to a deeper understanding of the profound properties of numbers, the "
+"basic building blocks of all mathematics."
+msgstr "A NumberFields at home különleges tulajdonságokkal rendelkező mezőket keres. Ezen kutatás elsődleges alkalmazási területe az algebrai számelmélet. A számelmélettel foglalkozó matematikusok adatbányászatot végeznek érdekes minták után kutatva, ami segíti őket a különböző számmezőkre vonatkozó sejtések megfogalmazásában. Végezetül ez a kutatás el fog vezetni a számok legmélyebb tulajdonságainak behatóbb ismeretéhez, melyek a matematika minden területének építőkövei."
+
+#: projects.inc:537
+msgid "Do research in algebraic number theory"
+msgstr "Végezz algebrai számelméleti kutatásokat"
+
+#: projects.inc:553
 msgid "Computer Science"
 msgstr "Számítástudomány"
 
-#: projects.inc:409
-msgid "Mathematics, Physics, Artificial Intelligence"
-msgstr "Matematika, fizika, mesterséges intelligencia"
+#: projects.inc:554
+msgid ""
+"Solve hard and practically important problems (discrete functions inversion "
+"problems, discrete optimization, bioinformatics, etc.) that can be "
+"effectively reduced to Boolean satisfiability problem."
+msgstr "Nehéz és gyakorlati jelentőséggel bíró problémák megoldása (diszkrét függvényinverziós problémák, diszkrét optimalizáció, bioinformatika stb.), amiket a gyakorlatban Bool-i kielégíthetőségi prolémákra lehet leegyszerűsíteni."
+
+#: projects.inc:557
+msgid "Study computational complexity"
+msgstr "Tanulmányozd a számítási komplexitást"
+
+#: projects.inc:582
+msgid "Cryptography and combinatorics"
+msgstr "Kriptográfia és kombinatorika"
 
-#: projects.inc:410
-msgid "Simulation of quantum computing; Goldbach's conjecture."
-msgstr "Kvantumszámítások szimulációja; Goldbach-sejtés"
+#: projects.inc:583 projects.inc:586
+msgid "Run applications from distributed.net"
+msgstr "Futtass alkalmazásokat a distributed.net-től"
 
-#: projects.inc:450 projects.inc:458
+#: projects.inc:592
 msgid "Cryptography"
 msgstr "Kriptográfia"
 
-#: projects.inc:459
+#: projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Megpróbálunk dekódolni 3 eredeti Enigma üzenetet. A feltörhetetlennek hitt jeleket az Észak-Atlanti térségben fogták 1942-ben."
 
-#: projects.inc:465 projects.inc:504 projects.inc:512 projects.inc:520
-#: projects.inc:528 projects.inc:568
-msgid "Mathematics"
-msgstr "Matematika"
+#: projects.inc:596
+msgid "Decode WWII submarine messages"
+msgstr "Második világháborús tengeralattjáró üzenetek megfejtése"
 
-#: projects.inc:466
+#: projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
-msgstr "Egy a matematikában még megoldatlan, az úgynevezett Collatz-sejtést tanulmányozzuk"
+msgstr "Tanulmányozz egy a matematikában még megoldatlan, úgynevezett Collatz-sejtést"
+
+#: projects.inc:606
+msgid "Study the Collatz Conjecture"
+msgstr "A Collatz-sejtés tanulmányozása"
 
-#: projects.inc:471
+#: projects.inc:611
 msgid "California State University Fullerton"
 msgstr "Kaliforniai Állami Egyetem, Fullerton"
 
-#: projects.inc:472
+#: projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Nagy egész számok faktorizációja"
 
-#: projects.inc:473
+#: projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -882,63 +914,53 @@ msgid ""
 "breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
 "NFS at Home is a continuation of that experience, only with integers that are "
 "hundreds of digits long."
-msgstr "Az NFS at Home olyan kutatási projekt, mely interneteléréssel rendelkező számítógépeket használ nagy egész számok rácson történő szitálásához. Általános iskolásként Ön is megszerezte első tapasztalatait egy egész szám prímtényezőkre való bontásával kapcsolatban, mint például hogy 15 = 3 * 5, vagy hogy 35 = 5 * 7. Az NFS at Home ezen tapasztalatok kiterjesztése, csak éppen több száz számjegy hosszúságú egész számokra."
-
-#: projects.inc:479
-msgid ""
-"Vilnius Gediminas Technical University and Kaunas University of Technology "
-"(Lithuania)"
-msgstr "Vilnius Gediminas Műszaki Egyetem és Kaunas Műszaki Egyetem (Litvánia)"
-
-#: projects.inc:480
-msgid "Software testing"
-msgstr "Szoftvertesztelés"
-
-#: projects.inc:481
-msgid ""
-"The aim of this project is to provide a powerful distributed computing "
-"platform for scientists of Vilnius Gediminas Technical University (VGTU) as "
-"well as others Lithuanian academic institutions.  Current applications "
-"involve the study of Monte-Carlo based software testing."
-msgstr "Jelen projekt célja egy szélesen elosztott számítógépes platform létrehozása a Vilnius Gediminas Műszaki Egyetem (VGME) illetve más litvániai akadémiai intézmények kutatóinak számára. Jelen alkalmazások Monte-Carlo alapú szoftvertesztelési kutatások részei."
-
-#: projects.inc:503
-msgid "Mathematical Institute of Leiden University / Kennislink"
-msgstr "A Leideni Egyetem Matematikai Intézete / Kennislink"
+msgstr "Az NFS at Home egy olyan kutatási projekt, mely interneteléréssel rendelkező számítógépeket használ nagy egész számok rácson történő szitálásához. Általános iskolásként te is megszerezted első tapasztalataidat egy egész szám prímtényezőkre való bontásával kapcsolatban, mint például hogy 15 = 3 * 5, vagy hogy 35 = 5 * 7. Az NFS at Home ezen tapasztalatok kiterjesztése, csak éppen több száz számjegy hosszúságú egész számokra."
 
-#: projects.inc:505
-msgid ""
-"Search for 'abc-triples': positive integers a,b,c such that a+b=c, a < b "
-"< c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the "
-"product of the distinct prime factors of n. The ABC conjecture says that "
-"there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for "
-"any real h > 1. The ABC conjecture is currently one of the greatest open "
-"problems in mathematics. If it is proven to be true, a lot of other open "
-"problems can be answered directly from it."
-msgstr "'ABC-hármasok' keresése: a, b és c olyan pozitív egész számok, melyekre igaz, hogy a+b=c, a < b < nincs közös osztójuk és c > rad(abc), ahol rad(n) az n különböző egész szorzóinak eredménye. Az ABC-feltevés szerint véges számban találhatóak olyan a, b, és c számok, melyekre igaz, hogy log(c)/log(rad(abc)) > h, ahol h 1-nél nagyobb valós szám. Az ABC-feltevés napjainkban a matematika egyik legnagyobb nyitott problémája. Ha igaznak bizonyul, rengeteg egyéb nyitott problémára  [...]
+#: projects.inc:616
+msgid "Study the factorization of large integers"
+msgstr "Tanulmányozd a nagy egész számok faktorizációját"
 
-#: projects.inc:513
+#: projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "A Primegridnek több projektje van, melyek különböző alakú, nagyon nagy prímszámokat keresnek, ideértve a legnagyobb ismert prímszám keresését."
 
-#: projects.inc:519
+#: projects.inc:662
+msgid "Search for large prime numbers"
+msgstr "Nagy prímszámok keresése"
+
+#: projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "RheinMaini Alkalmazott Tudományok Egyeteme"
 
-#: projects.inc:521
+#: projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Prímszámok azonosításához kapcsolódó két sejtéshez tartozó ellenpéldák keresése"
 
-#: projects.inc:529
+#: projects.inc:672
+msgid "Study the properties of prime numbers"
+msgstr "Prímszámok tulajdonságainak vizsgálata"
+
+#: projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Az összes általánosított kettes számrendszer megtalálása (melyekben a bázisok mátrixok, a számjegyek pedig vektorok) egészen 11 dimenzióig."
 
+#: projects.inc:682
+msgid "Study number theory"
+msgstr "A számelmélet tanulmányozása"
+
+#: projects.inc:739
+msgid ""
+"Testing and comparison of heuristic methods for getting separations of "
+"parallel algorithms working in the CAD system for designing logic control "
+"systems"
+msgstr "A CAD-ban működő logikai irányítórendszerek tervezésére irányuló párhuzamos algoritmusok elválasztását célzó heurisztikus módszerek tesztelése és összehasonlítása"
+
 #: ../html/inc/news.inc:40
 msgid "Comment"
 msgstr "Hozzászólás"
diff --git a/locale/it_IT/BOINC-Client.mo b/locale/it_IT/BOINC-Client.mo
index c9534a3..e810c44 100644
Binary files a/locale/it_IT/BOINC-Client.mo and b/locale/it_IT/BOINC-Client.mo differ
diff --git a/locale/it_IT/BOINC-Client.po b/locale/it_IT/BOINC-Client.po
index 13f2e9b..2cd2b44 100644
--- a/locale/it_IT/BOINC-Client.po
+++ b/locale/it_IT/BOINC-Client.po
@@ -1,14 +1,17 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# OlatusRooc <sebastiano.pistore.info at aol.com>, 2016
+# Sebastiano Pistore <olatusrooc at virgilio.it>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2016-04-13 09:10+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-24 11:23+0000\n"
 "Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
 "Language-Team: Italian (Italy) (http://www.transifex.com/boinc/boinc/language/it_IT/)\n"
 "MIME-Version: 1.0\n"
@@ -16,146 +19,160 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it_IT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Messaggio dall'account manager"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Messaggio dal server"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
-msgstr "Alcune workunit richiedono più memoria RAM di quanta ne sia permessa dalle tue preferenze. Se vuoi eseguirle devi aumentare il limite massimo."
+msgstr "Alcune WU richiedono più RAM di quanta ne sia permessa dalle preferenze. Per eseguirle aumentare il limite."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Impossibile scrivere il file di stato; controllare i permessi della cartella"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "La variabile d'ambiente HTTP_PROXY deve specificare un proxy HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Stai usando l'URL sbagliato per questo progetto. Quando possibile rimuovi questo progetto, poi connettiti a %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Stai usando il vecchio URL di questo progetto. Appena possibile rimuovi il progetto, e poi connettiti a %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Errore di sintassi nel file app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "ll file referenziato in app_info.xml non esiste: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
-msgstr "Una nuova versione di BOINC è disponibile."
+msgstr "È disponibile una nuova versione di BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
-msgstr "Scarica"
+msgstr "Scaricamento"
+
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "non può venire usato per i calcolo tramite CUDA o OpenCL con driver 6.5 o successivi"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Testo non leggibile presente nel file cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Tag non riconosciuto nel file cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Tag di apertura mancante nel file cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Errore nel file cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Tag di chiusura mancante nel file cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Per risolvere il problema segui questa procedura, "
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "cambia le Preferenze del progetto nella sua pagina web"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "rimuovi le limitazioni per la GPU nel file cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "modifica le impostazioni del tuo account manager via web"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Account key sbagliata o mancante. Per risolvere il problema rimuovi il progetto e poi riconnettilo."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Account key invalida. Per risolvere rimuovi il progetto e poi riconnettilo."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Il progetto ha modificato la sua chiave di sicurezza. Per risolvere il problema rimuovi il progetto e poi riconnettilo."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Il progetto non supporta il sistema operativo"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Il progetto non supporta le CPU"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "È disponibile una nuova versione del client BOINC. Se favore installala."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Il progetto non supporta i computer"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr "Aggiorna i driver della scheda video all'ultima versione per \npoter processare le workunit che utilizzano la GPU del computer"
+msgstr "Aggiorna i driver della scheda video all'ultima versione per \neseguire working unit che utilizzano la GPU del computer"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
-msgstr "Aggiorna i driver della scheda video per poter eseguire le tutte le applicazioni GPU di questo progetto"
+msgstr "Aggiorna i driver della scheda video per poter eseguire tutte le applicazioni GPU di questo progetto"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
-msgstr "La versione di BOINC installata non permette l'uso della GPU Nvidia. Per risolvere il problema scarica l'ultima versione di BOINC."
+msgstr "La versione di BOINC installata non permette l'uso delle GPU nVidia. Per risolvere il problema scarica l'ultima versione di BOINC."
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "È necessaria una GPU %s per eseguire le applicazioni di questo progetto"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
-msgstr "Nessuna workunit è disponibile per le applicazioni selezionate."
+msgstr "Nessuna working unit disponibile per le applicazioni selezionate."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Il tuo tipo di computer non è supportato da questo progetto"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "È richiesta una versione di BOINC più recente; per favore installa l'ultima versione"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
-msgstr "Sono disponibili delle workunit per %s, ma le tue preferenze sono impostate per non accettarle"
-
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "App name sconosciuto nel file app_info.xml"
+msgstr "Sono disponibili delle WU per %s, ma le tue preferenze sono impostate per non accettarle"
 
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Il file app_info.xml non ha una versione utilizzabile di"
diff --git a/locale/it_IT/BOINC-Drupal.po b/locale/it_IT/BOINC-Drupal.po
index b413f51..e02045c 100644
--- a/locale/it_IT/BOINC-Drupal.po
+++ b/locale/it_IT/BOINC-Drupal.po
@@ -9,8 +9,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2016-05-31 10:39+0000\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2017-02-24 11:33+0000\n"
 "Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
 "Language-Team: Italian (Italy) (http://www.transifex.com/boinc/boinc/language/it_IT/)\n"
 "MIME-Version: 1.0\n"
@@ -19,454 +19,611 @@ msgstr ""
 "Language: it_IT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-msgid "Please select a team type."
-msgstr "Seleziona una tipologia di team."
-
-msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "Recentemente è stato richiesto un cambio del fondatore. È permesso presentare al massimo una richiesta di cambio fondatore ogni 90 giorni."
+msgid "Reject profile"
+msgstr "Boccia profilo"
 
-msgid "@count days remaining"
-msgstr "@count giorni rimanenti"
+msgid "Ban user"
+msgstr "Banna utente"
 
-msgid "Inbox"
-msgstr "Leggi"
+msgid "I'm new"
+msgstr "Sono uno nuovo"
 
-msgid "Compose new"
-msgstr "Scrivi nuova"
+msgid "I'm a BOINC user"
+msgstr "Sono già un utente BOINC"
 
-msgid "respond to the request"
-msgstr "rispondi alla richiesta"
+msgid "Authenticator login"
+msgstr "Accedi via Authenticator"
 
 msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "È stata presentata una richiesta di cambio fondatore per il tuo team. Per favore !respond."
-
-msgid "Respond to transfer request"
-msgstr "Rispondi alla richiesta di trasferimento"
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Devi guadagnare ancora almeno @count crediti per poter inviare commenti."
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "@name, un membro del team, ha chiesto di diventarne il fondatore. Questo può essere accaduto perchè sei uscito dal team oppure perchè non hai avuto contatti con il team per un lungo periodo."
+msgid "Generic"
+msgstr "Generico"
 
-msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "Se non rifiuti questa richiesta entro il @date, @name potrà diventare fondatore. (N.B: per accogliere subito la richiesta e trasferire la tua carica a @name, compila questo form)."
+msgid "Home"
+msgstr "Casa"
 
-msgid "Deny request"
-msgstr "Nega la richiesta"
+msgid "Work"
+msgstr "Lavoro"
 
-msgid "Send request"
-msgstr "Invia la richiesta"
+msgid "School"
+msgstr "Scuola"
 
-msgid "Friend request from !name [!site]"
-msgstr "Richiesta di amicizia da parte di !name [!site]"
+msgid "yes"
+msgstr "sì"
 
-msgid "Message"
-msgstr "Messaggio"
+msgid "no"
+msgstr "no"
 
-msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name ti ha mandato una richiesta di amicizia su !site: puoi accettarla o rifiutarla. Rifiutare una richiesta non comporta l'invio di una notifica ma rimuoverà la richiesta da entrambi gli account.\n\nPuoi usare questo link per vedere la richiesta:\n!link\n\n!message\n\nCordiali saluti,\nIl !site team"
+msgid "Resource settings"
+msgstr "Impostazioni delle risorse"
 
-msgid "Cancel friend request"
-msgstr "Cancella la richiesta di amicizia"
+msgid "Resource share"
+msgstr "Allocazione risorse"
 
-msgid "Remove request"
-msgstr "Rimuovi la richiesta"
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina la percentuale di risorse del computer destinate a questo progetto. Esempio: se si partecipa a due progetti BOINC con quote di risorse di 100 e 200, il primo otterrà 1/3 delle vostre risorse e il secondo ne avrà i 2/3."
 
-msgid "Approve request"
-msgstr "Accetta la richiesta"
+msgid "Use CPU"
+msgstr "Usa la CPU"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "!name ha accettato la tua richiesta di amicizia [!site]"
+msgid "Enforced by version @number"
+msgstr "Disponibile dalla versione @number"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name ha accettato la tua amicizia su !site.\n\nFacendo click su questo link potrai leggere il suo profilo:\n!link\n\n!message\n\nCordiali saluti,\nIl !site team"
+msgid "Use NVIDIA GPU"
+msgstr "Utilizzare GPU NVIDIA"
 
-msgid "Email address"
-msgstr "E-mail"
+msgid "Use ATI GPU"
+msgstr "Utilizzare GPU ATI"
 
-msgid "Home"
-msgstr "Homepage"
+msgid "Use INTEL GPU"
+msgstr "Utilizzare GPU INTEL"
 
-msgid "Login"
-msgstr "Login"
+msgid "Beta settings"
+msgstr "Impostazioni beta"
 
-msgid "search"
-msgstr "ricerca"
+msgid "Run test applications?"
+msgstr "Eseguire le applicazioni di test?"
 
-msgid "Server status"
-msgstr "Stato del server"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Quest'opzione ci aiuta a sviluppare e migliorare le applicazioni, ma potrebbe causare elaborazioni fallite sul computer"
 
-msgid "Language"
-msgstr "Lingua"
+msgid " Default value: @default"
+msgstr " Valore di default: @default"
 
-msgid "Enter your @s email address."
-msgstr "Inserisci il tuo @s indirizzo email."
+msgid "Applications"
+msgstr "Applicazioni"
 
-msgid "Join now"
-msgstr "Aderisci adesso"
+msgid "Default set"
+msgstr "Impostazioni predefinite"
 
-msgid "I'm new"
-msgstr "Sono uno nuovo"
+msgid "Set used for new computers"
+msgstr "Impostazioni predefinite per nuovi computer"
 
-msgid "I'm a BOINC user"
-msgstr "Sono già un utente BOINC"
+msgid "Save changes"
+msgstr "Salva modifiche"
 
-msgid "Welcome back!"
-msgstr "Bentornato!"
+msgid "Cancel"
+msgstr "Annulla"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home è un programma che utilizza il tempo di inattività del computer per eseguire uno screensaver per la ricerca di onde gravitazionali da stelle di neutroni (anche chiamata Pulsar) utilizzando i dati del rivelatore di onde gravitazionali LIGO."
+msgid "Show comparison view"
+msgstr "Visualizza confronto vista"
 
-msgid "Learn more"
-msgstr "Vuoi saperne di più?"
+msgid "Comment form"
+msgstr "Form commenti"
 
-msgid "View account"
-msgstr "Visualizza account"
+msgid "Logout"
+msgstr "Logout"
 
-msgid "About our screensaver"
-msgstr "Informazioni sullo screensaver"
+msgid "Join now"
+msgstr "Aderisci adesso"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "Più di 500.000 volontari."
+msgid "Account"
+msgstr "Account"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Server status"
+msgstr "Stato dei server"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Language"
+msgstr "Lingua"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Create content"
+msgstr "Crea contenuti"
 
-msgid "Logout"
-msgstr "Logout"
+msgid "General settings"
+msgstr "Impostazioni generali"
 
 msgid "Name"
 msgstr "Nome"
 
-msgid "Avg credit"
-msgstr "Media dei crediti"
+msgid "Time zone"
+msgstr "Fuso orario"
 
-msgid "Total credit"
-msgstr "Totale dei crediti"
+msgid "Notification settings"
+msgstr "Impostazioni di notifica"
 
-msgid "Enter your password to save changes"
-msgstr "Inserisci la tua password per salvare i cambiamenti\t"
+msgid "Receive email notification for private messages?"
+msgstr "Ricevere email di notifica per i messaggi privati?"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Inserisci la tua password attuale se vuoi cambiare il tuo indirizzo\n          email o la password."
+msgid "Receive email notification for friend requests?"
+msgstr "Ricevere email di notifica per le richieste di amicizia?"
 
-msgid "BOINC user ID"
-msgstr "ID utente BOINC"
+msgid "Language settings"
+msgstr "Impostazioni lingua"
 
-msgid "Drupal user ID"
-msgstr "ID utente Drupal"
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Lingua predefinita di questo account e-mail e lingua preferita del sito."
 
-msgid "Account key"
-msgstr "Chiave account"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Se avete un <a href=\"@gravatar-check\"> indirizzo Gravatar valido</a> associato con l'indirizzo di posta elettronica, verrà utilizzato per l'immagine dell'utente."
 
-msgid "Weak account key"
-msgstr "Chiave di accesso debole"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Il tuo Gravatar non verrà mostrato se si caricherete un'immagine manualmente."
 
-msgid "Cross-project ID"
-msgstr "CPID"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Se avete un <a href=\"@gravatar-check\"> Gravatar valido</a> associato  con l'indirizzo di posta elettronica, potete utilizzarlo per l'immagine dell'utente."
 
-msgid "Save changes"
-msgstr "Salva"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Il Gravatar non verrà mostrato se viene caricato un avatar."
 
-msgid "Cancel"
-msgstr "Annulla"
+msgid "Avatar settings"
+msgstr "Impostazioni avatar"
 
-msgid "Change password"
-msgstr "Cambia password"
+msgid "This is not available until your profile is set up."
+msgstr "Non disponibile fino a quando il profilo verrà terminato."
 
-msgid "What is @this_project?"
-msgstr "Che cos'è @this_project?"
+msgid "Create a profile"
+msgstr "Crea un profilo"
 
-msgid "no projects..."
-msgstr "nessun progetto..."
+msgid "Upload an avatar"
+msgstr "Carica un avatar"
 
-msgid "Download the desktop software"
-msgstr "Scarica il software desktop"
+msgid "Forum settings"
+msgstr "Impostazioni forum"
 
-msgid "Run the installer"
-msgstr "Esegui l'installer"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "Negli argomenti di discussione, al massimo visualizza @comments_per_page"
 
-msgid "When prompted enter @siteurl"
-msgstr "Quando richiesto inserire @siteurl"
+msgid "comments per page"
+msgstr "commenti per pagina"
 
-msgid "Password"
-msgstr "Password"
+msgid "Sort comments in discussions"
+msgstr "Ordina i commenti nelle discussioni"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Inserisci la password associata al tuo username."
+msgid "Newest post first"
+msgstr "Prima i messaggi più recenti"
 
-msgid "Request new password"
-msgstr "Richiedi una nuova password"
+msgid "Oldest post first"
+msgstr "Prima i messaggi meno recenti"
 
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Se si sta già eseguendo BOINC, selezionare <i>Aggiungi\nprogetto</i>."
+msgid "Signature"
+msgstr "Firma"
 
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Se si esegue una versione a riga di comando di BOINC,\ninnanzitutto utilizzare il software BOINC Manager (altrove se necessario) per creare un account su questo progetto, quindi utilizzare tale account per connettersi con la versione da riga di comando."
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "La tua firma sarà visualizzata pubblicamente alla fine dei tuoi commenti."
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Se utilizzi una versione pre-5.0 di BOINC, per\npiacere aggiorna a una versione più recente per creare un account\na questo progetto."
+msgid "Hide signatures in forums"
+msgstr "Nascondi le firme nei forum"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) se ricordi l'indirizzo email del tuo account e puoi leggerne le mail, fai così:"
-
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Inserisci l'indirizzo email e fai clic su OK. Ti invieremo per posta elettronica le istruzioni per reimpostare la password."
-
-msgid "OK"
-msgstr "OK"
+msgid "Privacy settings"
+msgstr "Impostazioni privacy"
 
-msgid "The latest news from the @site_name project"
-msgstr "Le ultime notizie dal progetto @site_name"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Vuoi ricevere le email dal  tuo team (se esiste) per @project?"
 
-msgid "Comment form"
-msgstr "form commenti"
+msgid "Should @project show your computers on its web site?"
+msgstr "Può @project visualizzare i tuoi computer sul suo sito web?"
 
-msgid "Total credits"
-msgstr "Crediti totali"
+msgid "Id"
+msgstr "Id"
 
-msgid "Recent avg credits"
-msgstr "Media crediti recenti"
+msgid "Founder"
+msgstr "Fondatore"
 
 msgid "Country"
 msgstr "Stato"
 
-msgid "Type"
-msgstr "Tipo"
-
-msgid "Founder"
-msgstr "Fondatore"
+msgid "Recent average credit"
+msgstr "Media dei crediti recenti"
 
-msgid "New members in last day"
-msgstr "Nuovi membri nelle ultime 24 ore"
+msgid "Members"
+msgstr "Membri"
 
-msgid "Total members"
-msgstr "Numero totale dei membri"
+msgid "Total Credit"
+msgstr "Credito totale"
 
-msgid "Active members"
-msgstr "Membri attivi"
+msgid "User ID"
+msgstr "ID dell'utente"
 
-msgid "Members with credit"
-msgstr "Membri con crediti"
+msgid "User"
+msgstr "Utente"
 
-msgid "Description"
-msgstr "Descrizione"
+msgid "Admin since"
+msgstr "Admin dal"
 
-msgid "Search teams"
-msgstr "Cerca i team"
+msgid "Team ID"
+msgstr "ID del team"
 
-msgid "Send message"
-msgstr "Spedisci il messaggio"
+msgid "User joined"
+msgstr "L'utente è entrato"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Timestamp"
+msgstr "Timestamp"
 
-msgid "Project"
-msgstr "Progetto"
+msgid "Account Key"
+msgstr "Chiave account"
 
-msgid "Web site"
-msgstr "Sito web"
+msgid "Member since"
+msgstr "Membro dal"
 
-msgid "No active computers"
-msgstr "Nessun computer attivo"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "Questo utente non ha avuto alcun computer attivo negli ultimi 30 giorni."
+msgid "Email Address"
+msgstr "Indirizzo email"
 
-msgid " Default value: @default"
-msgstr " Valore di default: @default"
+msgid "Password Hash"
+msgstr "Hash della password"
 
-msgid "Applications"
-msgstr "Applicazioni"
+msgid "Postal Code"
+msgstr "CAP"
 
-msgid "yes"
-msgstr "sì"
+msgid "Send Email"
+msgstr "Invia email"
 
-msgid "no"
-msgstr "no"
+msgid "Show Hosts"
+msgstr "Visualizza dispositivi"
 
-msgid "Message @id"
-msgstr "Messaggio @id"
+msgid "URL"
+msgstr "URL"
 
-msgid "message @id"
-msgstr "messaggio @id"
+msgid "Computer ID"
+msgstr "ID del computer "
 
-msgid " in response to !parent"
-msgstr "in risposta a !parent"
+msgid "Location"
+msgstr "Luogo"
 
-msgid "Credits per day"
-msgstr "Crediti giornalieri"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "Quando BOINC è attivo, % di tempo in cui il lavoro è permesso"
 
-msgid "Computers hidden"
-msgstr "Computer nascosti"
+msgid "Average turnaround time"
+msgstr "Tempo medio di completamento"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "Questo utente ha scelto di non mostrare informazioni sui suoi computer."
+msgid "Created"
+msgstr "Creato"
 
-msgid "Stderr output"
-msgstr "Output su Stderr"
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "Quando BOINC è attivo, % di tempo che l'host ha una connessione Internet"
 
-msgid "@time ago"
-msgstr "@time fa"
+msgid "Average CPU efficiency"
+msgstr "Efficienza media CPU"
 
-msgid "n/a"
-msgstr "n/d"
+msgid "Free disk space"
+msgstr "Spazio su disco libero"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Inviato da !username il !datetime"
+msgid "Total disk space"
+msgstr "Spazio totale su disco"
 
-msgid "Member since"
-msgstr "Membro dal"
+msgid "Task duration correction factor"
+msgstr "Fattore correzione durata WU"
 
-msgid "View team"
-msgstr "Vedi team"
+msgid "Avg. credit"
+msgstr "Media dei crediti"
 
-msgid "Friends (@count)"
-msgstr "Amici (@count)"
+msgid "External IP address"
+msgstr "Indirizzo IP esterno"
 
-msgid "Website"
-msgstr "Sito web"
+msgid "Cross project ID"
+msgstr "ID su tutti i progetti"
 
-msgid "Locked"
-msgstr "Bloccato"
+msgid "Last IP address"
+msgstr "Ultimo indirizzo IP"
 
-msgid "Computers pending"
-msgstr "Computer in attesa"
+msgid "Cache"
+msgstr "Cache"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "Questo utente non dispone ancora di computer associati. I computer verranno visualizzati quando avranno guadagnato i loro primi crediti."
+msgid "Memory"
+msgstr "Memoria"
 
-msgid "No results found..."
-msgstr "Nessun risultato trovato..."
+msgid "Swap space"
+msgstr "Spazio di swap"
 
-msgid "Background"
-msgstr "Background"
+msgid "Maximum daily WU quota per CPU"
+msgstr "Numero massimo elaborazioni giornaliere per CPU"
 
-msgid "Teams"
-msgstr "Team"
+msgid "Average download rate"
+msgstr "Velocità media di download"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "I partecipanti a @project possono formare dei team. Si può appartenere ad un solo team alla volta. È possibile unirsi o lasciare un team in qualsiasi momento. Per entrare in un team, visita la sua pagina e fai clic su \"Entra nel team\". Ogni team ha un fondatore che può:"
+msgid "Average upload rate"
+msgstr "Velocità media di upload"
 
-msgid "access team members' email addresses"
-msgstr "accedere alle informazioni sugli indirizzi email dei membri"
+msgid "Same IP address count"
+msgstr "Numero di indirizzi IP uguali"
 
-msgid "edit the team's name and description"
-msgstr "modificare il nome e la descrizione del team"
+msgid "% of time BOINC client is running"
+msgstr "% di tempo che il client BOINC è in esecuzione"
 
-msgid "add or remove team admins"
-msgstr "aggiungere o rimuovere gli amministratori del team"
+msgid "Operating system"
+msgstr "Sistema operativo"
 
-msgid "remove members from the team"
-msgstr "rimuovere i membri dal team"
+msgid "Operating system version"
+msgstr "Versione sistema operativo"
 
-msgid "disband a team if it has no members"
-msgstr "sciogliere il team, nel momento in cui lo stesso abbia un solo membro"
+msgid "Measured floating point speed"
+msgstr "Velocità misurata in calcoli in virgola mobile"
 
-msgid "Create a new team"
-msgstr "Crea un nuovo team"
+msgid "Measured integer speed"
+msgstr "Velocità calcoli interi"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Se non trovi una squadra che è giusta per te, puoi creare una squadra."
+msgid "CPU model"
+msgstr "Modello CPU"
 
-msgid "You must earn @count more credits!"
-msgstr "Devi avere @count crediti in più!"
+msgid "Number of processors"
+msgstr "Numero di processori"
 
-msgid "Threads"
-msgstr "Argomenti"
+msgid "CPU"
+msgstr "CPU"
 
-msgid "Posts"
-msgstr "Messaggi"
+msgid "Number of times client has contacted server"
+msgstr "Numero di volte che BOINC ha contattato il server"
 
-msgid "Last post"
-msgstr "Ultimo messaggio"
+msgid "Last contact"
+msgstr "Ultimo contatto"
 
-msgid "Manage subscriptions"
-msgstr "Imposta le sottoscrizioni"
+msgid "Serial number"
+msgstr "Numero di serie"
 
-msgid "Featured"
-msgstr "Evidenziato"
+msgid "Timezone"
+msgstr "Fuso orario"
 
-msgid "Submitted on !datetime"
-msgstr "Inviato il !datetime"
+msgid "Platform ID"
+msgstr "ID piattaforma"
 
-msgid "Comments"
-msgstr "Commenti"
+msgid "Task ID"
+msgstr "ID elaborazione"
 
-msgid "Opinion"
-msgstr "Opinione"
+msgid "Workunit ID"
+msgstr "ID della workunit"
 
-msgid "More"
-msgstr "Altro"
+msgid "Host ID"
+msgstr "ID dell'host"
 
-msgid "Tasks"
-msgstr "Elaborazioni"
+msgid "Application ID"
+msgstr "ID applicazione"
 
-msgid "Generic"
-msgstr "Generico"
+msgid "Application version"
+msgstr "Versione dell'applicazione"
 
-msgid "Work"
-msgstr "Lavoro"
+msgid "Claimed credit"
+msgstr "Credito garantito"
 
-msgid "School"
-msgstr "Scuola"
+msgid "Client state"
+msgstr "Stato del client"
 
-msgid "Presets"
-msgstr "Inizializzazioni"
+msgid "CPU time"
+msgstr "Tempo CPU"
+
+msgid "Run time"
+msgstr "Tempo di elaborazione"
+
+msgid "Exit status"
+msgstr "Stato di uscita"
+
+msgid "Granted credit"
+msgstr "Credito assegnato"
+
+msgid "Outcome"
+msgstr "Risultato"
+
+msgid "Received time"
+msgstr "Tempo di ricezione"
+
+msgid "Report deadline"
+msgstr "Scadenza"
+
+msgid "Sent"
+msgstr "Inviato"
+
+msgid "Server state"
+msgstr "Stato server"
+
+msgid "Stderr out"
+msgstr "Errore su stderr"
+
+msgid "Validation state"
+msgstr "Stato di validazione"
+
+msgid "App ID"
+msgstr "ID Applicazione"
+
+msgid "Canonical credit"
+msgstr "Credito canonico"
+
+msgid "Canonical result ID"
+msgstr "ID risultato canonico"
+
+msgid "Created time"
+msgstr "Tempo di creazione"
+
+msgid "Error mask"
+msgstr "Maschera errori"
+
+msgid "Minimum quorum"
+msgstr "Quorum minimo"
+
+msgid "Max error tasks"
+msgstr "Numero massimo WU fallite"
+
+msgid "Max success tasks"
+msgstr "Numero massimo WU terminate con successo"
+
+msgid "Max total tasks"
+msgstr "Numero massimo WU totali"
+
+msgid "Needs validation"
+msgstr "Richiede validazione"
+
+msgid "Initial replication"
+msgstr "Replica iniziale"
+
+msgid "Target number of results"
+msgstr "Numero di risultati obiettivo"
+
+msgid "Application version ID"
+msgstr "ID versione applicazione"
+
+msgid "Plan class"
+msgstr "Classe pianificata"
+
+msgid "Version number"
+msgstr "Numero di versione"
+
+msgid "Computer"
+msgstr "Computer"
+
+msgid "App version ID"
+msgstr "ID versione applicazione"
+
+msgid "Consecutive valid tasks"
+msgstr "WU valide consecutive"
+
+msgid "Number of tasks completed"
+msgstr "WU completate"
+
+msgid "Max tasks per day"
+msgstr "WU massime giornaliere"
+
+msgid "Number of tasks today"
+msgstr "WU giornaliere"
+
+msgid "Manage subscriptions"
+msgstr "Imposta le sottoscrizioni"
+
+msgid "Avg credit"
+msgstr "Media dei crediti"
+
+msgid "Total credit"
+msgstr "Totale dei crediti"
+
+msgid "More"
+msgstr "Altro"
+
+msgid "Tasks"
+msgstr "Elaborazioni"
+
+msgid "Computers hidden"
+msgstr "Computer nascosti"
+
+msgid "This user has chosen not to show information about their computers."
+msgstr "Questo utente ha scelto di non mostrare informazioni sui suoi computer."
+
+msgid "no projects..."
+msgstr "nessun progetto..."
+
+msgid "Moderation"
+msgstr "Moderazione"
+
+msgid "Unvetted profiles"
+msgstr "Profili autoritativi"
+
+msgid "Inbox"
+msgstr "Leggi"
+
+msgid "Compose new"
+msgstr "Scrivi"
+
+msgid "Posts contributed"
+msgstr "Post inviati"
+
+msgid "Friends (@count)"
+msgstr "(@count) amici "
+
+msgid "Welcome back!"
+msgstr "Bentornato!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home è un programma che utilizza il tempo di inattività del computer per eseguire uno screensaver per la ricerca di onde gravitazionali da stelle di neutroni (anche chiamata Pulsar) utilizzando i dati del rivelatore di onde gravitazionali LIGO."
+
+msgid "Learn more"
+msgstr "Vuoi saperne di più?"
+
+msgid "View account"
+msgstr "Visualizza account"
+
+msgid "User of the day"
+msgstr "Utente del giorno"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Più di 500.000 volontari, sempre in aumento."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Crediti giornalieri"
+
+msgid "View user profile."
+msgstr "Visualizza il profilo utente."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Profilo in attesa di approvazione di un moderatore"
+
+msgid "Background"
+msgstr "Background"
+
+msgid "Opinion"
+msgstr "Opinione"
+
+msgid "Enter your password to save changes"
+msgstr "Inserisci la tua password per salvare i cambiamenti\t"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Inserisci la tua password attuale se vuoi cambiare il tuo indirizzo\n          email o la password."
+
+msgid "BOINC user ID"
+msgstr "ID utente BOINC"
+
+msgid "Drupal user ID"
+msgstr "ID utente Drupal"
+
+msgid "Account key"
+msgstr "Chiave account"
+
+msgid "Weak account key"
+msgstr "Chiave di accesso debole"
+
+msgid "Cross-project ID"
+msgstr "CPID"
+
+msgid "Change password"
+msgstr "Cambia password"
+
+msgid "Presets"
+msgstr "Impostazioni predefinite"
 
 msgid "Standard"
 msgstr "Standard"
@@ -484,7 +641,7 @@ msgid "Custom"
 msgstr "Personalizzato"
 
 msgid "Update preset"
-msgstr "Aggiorna preset"
+msgstr "Aggiorna impostazioni predefinite"
 
 msgid "Advanced settings"
 msgstr "Impostazioni avanzate"
@@ -504,11 +661,8 @@ msgstr "Elabora quando il computer è 'in uso'?"
 msgid "Run GPU work while computer is in use?"
 msgstr "Elaborare con la GPU mentre il computer è 'in uso'?"
 
-msgid "Enforced by version @number"
-msgstr "Disponibile dalla versione @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
-msgstr "'In uso' significa che il mouse o la tastiera sono stati usati negli ultimi"
+msgstr "\"In uso\" significa che il mouse o la tastiera sono stati usati negli ultimi"
 
 msgid "minutes"
 msgstr "minuti"
@@ -535,7 +689,7 @@ msgid "No restriction if equal"
 msgstr "Nessuna restrizione se uguale"
 
 msgid "Leave tasks in memory while suspended?"
-msgstr "Lasciare le attività in memoria mentre sospese?"
+msgstr "Lasciare i processi in memoria mentre sono sospesi?"
 
 msgid "Suspended tasks will consume swap space if \"yes\""
 msgstr "Segnando \"si\" i processi sospesi utilizzeranno spazio di swap"
@@ -643,67 +797,44 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "Seleziona solo se il provider Internet modifica i file di immagine (ad esempio UMTS lo fa). Ignorare la verifica riduce la sicurezza di BOINC."
 
-msgid "Show comparison view"
-msgstr "Visualizza confronto vista"
-
-msgid "Resource settings"
-msgstr "Impostazioni delle risorse"
+msgid "search"
+msgstr "ricerca"
 
-msgid "Resource share"
-msgstr "Allocazione risorse"
+msgid "What is @this_project?"
+msgstr "Che cos'è @this_project?"
 
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Determina la percentuale di risorse del computer destinate a questo progetto. Esempio: se si partecipa a due progetti BOINC con quote di risorse di 100 e 200, il primo otterrà 1/3 delle vostre risorse e il secondo ne avrà i 2/3."
+msgid "Login"
+msgstr "Login"
 
-msgid "Use CPU"
-msgstr "Usa la CPU"
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Use NVIDIA GPU"
-msgstr "Utilizzare GPU NVIDIA"
+msgid "Project"
+msgstr "Progetto"
 
-msgid "Use ATI GPU"
-msgstr "Utilizzare GPU ATI"
+msgid "No @type tasks"
+msgstr "Nessuna task del tipo @type"
 
-msgid "Use INTEL GPU"
-msgstr "Utilizzare GPU INTEL"
+msgid "There are no tasks of this type on record"
+msgstr "Non ci sono elaborazioni di questo tipo registrate"
 
-msgid "Beta settings"
-msgstr "Impostazioni beta"
+msgid "Details"
+msgstr "Dettagli"
 
-msgid "Run test applications?"
-msgstr "Eseguire le applicazioni di test?"
+msgid "Password"
+msgstr "Password"
 
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Questo ci aiuta a sviluppare applicazioni, ma potrebbe causare elaborazioni fallite sul tuo computer"
+msgid "Enter the password that accompanies your username."
+msgstr "Inserisci la password associata al tuo username."
 
-msgid "Default set"
-msgstr "Set predefinito"
+msgid "Request new password"
+msgstr "Richiedi una nuova password"
 
-msgid "Set used for new computers"
-msgstr "Set utilizzato per nuovi computer"
+msgid "Mark all topics read"
+msgstr "Segna come letti tutti gli argomenti"
 
-msgid "Merge"
-msgstr "Unisci"
-
-msgid "Delete"
-msgstr "Cancella"
-
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Questo eliminerà l'host @id dal tuo account per sempre. Sei sicuro di farlo?"
-
-msgid "Mark all topics read"
-msgstr "Segna come letti tutti gli argomenti"
-
-msgid "Mark all forums read"
-msgstr "Segna come letti tutti i forum"
+msgid "Mark all forums read"
+msgstr "Segna come letti tutti i forum"
 
 msgid ""
 "CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
@@ -714,7 +845,7 @@ msgid "The answer you entered for the CAPTCHA was not correct."
 msgstr "La risposta che hai inserito per il CAPTCHA non era corretta."
 
 msgid "Access denied. You must login to view this page."
-msgstr "Accesso negato. Devi autenticarti per visualizzare questa pagina."
+msgstr "Accesso negato. Devi autenticarti per poter visualizzare questa pagina."
 
 msgid "You are not authorized to access this page."
 msgstr "Non sei autorizzato ad accedere a questa pagina."
@@ -725,146 +856,151 @@ msgstr "Disabilitare RTF"
 msgid "Enable rich-text"
 msgstr "Abilitare RTF"
 
-msgid "View user profile."
-msgstr "Visualizza il profilo utente."
+msgid "Teams"
+msgstr "Team"
 
-msgid "BBcode help"
-msgstr "Guida BBcode"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "I partecipanti a @project possono formare dei team. Si può appartenere ad un solo team alla volta. È possibile unirsi o lasciare un team in qualsiasi momento. Per entrare in un team, visita la sua pagina e fai clic su \"Entra nel team\". Ogni team ha un fondatore che può:"
 
-msgid "Post comment"
-msgstr "Posta un commento"
+msgid "access team members' email addresses"
+msgstr "accedere alle informazioni sugli indirizzi email dei membri"
 
-msgid "No @type tasks"
-msgstr "Nessun task del tipo @type"
+msgid "edit the team's name and description"
+msgstr "modificare il nome e la descrizione del team"
 
-msgid "There are no tasks of this type on record"
-msgstr "Non ci sono incarichi di questo tipo registrati"
+msgid "add or remove team admins"
+msgstr "aggiungere o rimuovere gli amministratori del team"
 
-msgid "Clear"
-msgstr "Rimuovi"
+msgid "remove members from the team"
+msgstr "rimuovere i membri dal team"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Questa azione rimuoverà tutte le tue impostazioni dall'insieme di preferenze di @nome. Ne sei sicuro? "
+msgid "disband a team if it has no members"
+msgstr "sciogliere il team, nel momento in cui lo stesso abbia un solo membro"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Queste si applicano a tutti i progetti BOINC nei quali partecipi."
+msgid "Search teams"
+msgstr "Cerca team"
+
+msgid "Create a new team"
+msgstr "Crea un nuovo team"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "Nel caso di computer collegati a più progetti, verranno utilizzate le preferenze modificate più di recente."
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Se non trovi un team che ti vada bene, puoi crearne uno nuovo."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "Preferenze ultima modifica: @mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "Ti manca ancora 1 credito!"
 
-msgid "Combined preferences"
-msgstr "Preferenze combinate"
+msgid "@count million ops/sec"
+msgstr "@count milioni di operazioni/secondo"
 
-msgid "Switch View"
-msgstr "Cambia visuale"
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/sec"
 
-msgid "every"
-msgstr "ogni"
+msgid "@count days"
+msgstr "@count giorni"
 
-msgid "Edit"
-msgstr "Modifica"
+msgid "Stderr output"
+msgstr "Output su Stderr"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Questa azione rimuoverà tutte le tue impostazioni dall'insieme di preferenze di \"@name\". Ne sei sicuro?"
+msgid "Email address"
+msgstr "E-mail"
 
-msgid "Add"
-msgstr "Aggiungi"
+msgid "Enter your @s email address."
+msgstr "Inserisci il tuo @s indirizzo email."
 
-msgid "General settings"
-msgstr "Impostazioni generali"
+msgid "Log in"
+msgstr "Accedi"
 
-msgid "Time zone"
-msgstr "Fuso orario"
+msgid "Sorry, unrecognized email address or password."
+msgstr "Indirizzo mail o password non riconosciuti."
 
-msgid "Notification settings"
-msgstr "Impostazioni di notifica"
+msgid "Have you forgotten your password?"
+msgstr "Password dimenticata?"
 
-msgid "Receive email notification for private messages?"
-msgstr "Ricevere email di notifica per i messaggi privati?"
+msgid "No results found..."
+msgstr "Nessun risultato trovato..."
 
-msgid "Receive email notification for friend requests?"
-msgstr "Ricevere email di notifica per richieste di amicizia?"
+msgid "Anonymous"
+msgstr "Anonimo"
 
-msgid "Language settings"
-msgstr "Impostazioni lingua"
+msgid "Forgot password"
+msgstr "Password dimenticata"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "Lingua predefinita di questo account e-mail e lingua preferita per la presentazione del sito."
+msgid "authenticator-based login"
+msgstr "accesso via Authenticator"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "Se avete un <a href=\"@gravatar-check\"> indirizzo Gravatar valido</a> associato con il tuo indirizzo di posta elettronica, esso verrà utilizzato per l'immagine dell'utente."
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Inserisci il tuo indirizzo email per ricevere le istruzioni su come reimpostare la password (oppure utilizza !authenticator_login)."
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Il tuo Gravatar non verrà mostrato se si carica un'immagine dell'utente."
+msgid "Send"
+msgstr "Invia"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "Se avete un <a href=\"@gravatar-check\"> Gravatar valido</a> associato con il vostro indirizzo di posta elettronica, potete utilizzarlo come l'immagine dell'utente."
+msgid "Submitted by !username on !datetime"
+msgstr "Inviato da !username il !datetime"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Il Gravatar non verrà mostrato se viene caricato un avatar."
+msgid "Send message"
+msgstr "Spedisci il messaggio"
 
-msgid "Avatar settings"
-msgstr "Impostazioni Avatar"
+msgid "Add as friend"
+msgstr "Aggiungi come amico"
 
-msgid "This is not available until your profile is set up."
-msgstr "Questo non è disponibile fino a quando il profilo è non è terminato."
+msgid "Website"
+msgstr "Sito web"
 
-msgid "Create a profile"
-msgstr "Crea un profilo"
+msgid "Team"
+msgstr "Team"
 
-msgid "Upload an avatar"
-msgstr "Carica un avatar"
+msgid "Create new team"
+msgstr "Crea un nuovo team"
 
-msgid "Forum settings"
-msgstr "Impostazioni forum"
+msgid "Search"
+msgstr "Cerca"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "Negli argomenti di discussione, al massimo visualizza @comments_per_page"
+msgid "Total credits"
+msgstr "Crediti totali"
 
-msgid "comments per page"
-msgstr "commenti per pagina"
+msgid "Recent avg credits"
+msgstr "Media crediti recenti"
 
-msgid "Sort comments in discussions"
-msgstr "Ordina i commenti nelle discussioni"
+msgid "Type"
+msgstr "Tipo"
 
-msgid "Newest post first"
-msgstr "Prima i messaggi più recenti"
+msgid "New members in last day"
+msgstr "Nuovi membri nelle ultime 24 ore"
 
-msgid "Oldest post first"
-msgstr "Prima i messaggi meno recenti"
+msgid "Total members"
+msgstr "Numero totale dei membri"
 
-msgid "Signature"
-msgstr "Firma"
+msgid "Active members"
+msgstr "Membri attivi"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "La tua firma sarà visualizzata pubblicamente alla fine dei tuoi commenti."
+msgid "Members with credit"
+msgstr "Membri con crediti"
 
-msgid "Hide signatures in forums"
-msgstr "Nascondi le firme nei forum"
+msgid "Web site"
+msgstr "Sito web"
 
-msgid "Privacy settings"
-msgstr "Impostazioni privacy"
+msgid "Description"
+msgstr "Descrizione"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Vuoi ricevere le email dal  tuo team (se esiste) per @project?"
+msgid "BBcode help"
+msgstr "Guida BBcode"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Può @project visualizzare i tuoi computer sul suo sito web?"
+msgid "Post comment"
+msgstr "Posta un commento"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Casa"
+
+msgid "The latest news from the @site_name project"
+msgstr "Le ultime notizie dal progetto @site_name"
 
 msgid "Hide"
 msgstr "Nascondi"
@@ -887,606 +1023,421 @@ msgstr "Evidenzia questo topic"
 msgid "moderation"
 msgstr "moderazione"
 
-msgid "Post new comment"
-msgstr "Posta un nuovo commento"
-
-msgid "You must earn 1 more credit!"
-msgstr "Ti manca ancora 1 credito!"
-
-msgid "Joined"
-msgstr "Entrato"
-
-msgid "Credit"
-msgstr "Crediti"
-
-msgid "RAC"
-msgstr "RAC"
-
-msgid "Join team"
-msgstr "Entra in un team"
-
-msgid "Click here to become a member of @this_team"
-msgstr "Clicca qui per diventare membro di @this_team"
-
-msgid "Join this team"
-msgstr "Unisciti a questo team"
-
-msgid "Manage team"
-msgstr "Gestisci il team"
-
-msgid "View member list"
-msgstr "Visualizza la lista dei membri"
-
-msgid "Member names and emails"
-msgstr "Nomi ed email dei membri"
-
-msgid "View change history"
-msgstr "Visualizza la storia dei cambiamenti"
-
-msgid "See member activity"
-msgstr "Visualizza l'attività dei membri"
-
-msgid "Manage team message board"
-msgstr "Gestisci la board messaggi del team"
-
-msgid "Create or manage message board"
-msgstr "Crea o gestisci la board dei messaggi"
-
-msgid "Remove members"
-msgstr "Rimuovi membri"
-
-msgid "Change founder"
-msgstr "Cambia fondatore"
-
-msgid "Manage team admins"
-msgstr "Gestisci gli amministratori del team"
-
-msgid "Edit team info"
-msgstr "Modifica le informazioni del team"
-
-msgid "Remove team"
-msgstr "Rimuovi team"
-
-msgid "Team forum"
-msgstr "Forum del team"
-
-msgid "A discussion forum has been set up for team members."
-msgstr "Un forum di discussione è stato impostato per i membri del team."
-
-msgid "Enter forum"
-msgstr "Entra nel forum"
-
-msgid "Leave team"
-msgstr "Abbandona il team"
-
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Clicca qui per revocare la tua iscrizione su @this_team"
-
-msgid "Leave this team"
-msgstr "Abbandona questo team"
-
-msgid "Edit message board"
-msgstr "Modifica la board dei messaggi"
-
-msgid "Message board title"
-msgstr "Titolo della board dei messaggi"
-
-msgid "Text only, no HTML tags"
-msgstr "Solo testo, nessun tag HTML"
-
-msgid "Minimum time between posts"
-msgstr "Tempo minimo tra i post"
-
-msgid "Seconds"
-msgstr "Secondi"
-
-msgid "Minimum total credit to post"
-msgstr "Credito totale minimo per scrivere"
-
-msgid "Minimum avg credit to post"
-msgstr "Credito totale minimo per scrivere"
-
-msgid "Allow public to read board?"
-msgstr "Permettere la lettura della board pubblicamente?"
-
-msgid "Save message board"
-msgstr "Salva la board messaggi"
-
-msgid "About message boards"
-msgstr "Informazioni sulla board dei messaggi"
-
-msgid "This is a team-only message board"
-msgstr "Questa è una board messaggi solo del team"
-
-msgid "Only members may post"
-msgstr "Solo i membri possono postare"
-
-msgid "Only members may read (optional)"
-msgstr "Solo i membri possono leggere (opzionale)"
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Fondatore & Team Admins hanno i privilegi di moderatore"
-
-msgid "Changing the team founder"
-msgstr "Cambia il fondatore del team"
+msgid "Reply"
+msgstr "Rispondi"
 
-msgid "Notes about changes in foundership:"
-msgstr "Note riguardanti i cambiamenti dell'account fondatore:"
+msgid "Reply to this comment"
+msgstr "Rispondi a questo commento"
 
-msgid "Any member of the team is eligible"
-msgstr "Ogni membro del team è eleggibile"
+msgid "Quote"
+msgstr "Cita"
 
-msgid "Current founder becomes a normal user"
-msgstr "Il fondatore corrente diventa un utente normale"
+msgid "Reply to this comment with quote"
+msgstr "Rispondi a questo commento quotandolo"
 
-msgid "Foundership can be requested by team members:"
-msgstr "La qualifica di fondatore può essere richiesta dai membri del team:"
+msgid "Edit"
+msgstr "Modifica"
 
-msgid "One request is allowed at a time"
-msgstr "Una richiesta per volta è permessa"
+msgid "Edit this comment"
+msgstr "Modifica questo commento"
 
-msgid "It must be 60 days since any previous request"
-msgstr "Devono trascorrere 60 giorni dalla richiesta precedente"
+msgid "Delete"
+msgstr "Cancella"
 
-msgid "Any active request must be older than 90 days"
-msgstr "Qualsiasi richiesta attiva deve essere superiore a 90 giorni"
+msgid "Delete this comment"
+msgstr "Cancella questo commento"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "Il Fondatore corrente ha 60 giorni per rispondere a una richiesta"
+msgid "Hide this comment"
+msgstr "Nascondi questo commento"
 
-msgid "Add team admin"
-msgstr "Aggiungi un amministratore del team"
+msgid "Message @id"
+msgstr "Messaggio @id"
 
-msgid "Enter email address"
-msgstr "Inserire il proprio indirizzo email"
+msgid "Convert"
+msgstr "Converti"
 
-msgid "Current team admins"
-msgstr "Amministratori del team correnti"
+msgid "Convert this comment to a new topic"
+msgstr "Converti questo commento in un nuovo topic"
 
-msgid "About team admins"
-msgstr "Informazioni sugli amministratori del team"
+msgid "message @id"
+msgstr "messaggio @id"
 
-msgid "Team admins can:"
-msgstr "Gli amministratori del team possono:"
+msgid " in response to !parent"
+msgstr "in risposta a !parent"
 
-msgid "Edit team information"
-msgstr "Modifica le informazioni del team"
+msgid "Post new comment"
+msgstr "Posta un nuovo commento"
 
-msgid "View the team's join / quit history"
-msgstr "Guarda le storia delle richieste di ingresso / uscita dal team"
+msgid "Comments"
+msgstr "Commenti"
 
-msgid "Moderate the team forum"
-msgstr "Modera il forum del team"
+msgid "discuss"
+msgstr "discuti"
 
-msgid "Remove members from the team"
-msgstr "Rimuovere i membri dal team"
+msgid "n/a"
+msgstr "n/d"
 
-msgid "Disband a team if it has no members"
-msgstr "Sciogli il team, se non ha più membri"
+msgid "@time ago"
+msgstr "@time fa"
 
-msgid "Team admins cannot:"
-msgstr "L'admin del team non può:"
+msgid "Threads"
+msgstr "Argomenti"
 
-msgid "Change the team founder"
-msgstr "Cambia il fondatore del team"
+msgid "Posts"
+msgstr "Messaggi"
 
-msgid "Add / Remove team admins"
-msgstr "Aggiungi / Rimuovi amministratori del team"
+msgid "Last post"
+msgstr "Ultimo messaggio"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Se un admin esce dal team, cessa di essere un amministratore del team. Si consiglia di selezionare solo persone che conosci e di fiducia"
-
-msgid "Choose type"
-msgstr "Scegli tipo"
-
-msgid "Team name"
-msgstr "Nome del team"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "Nome Team -- versione HTML (opzionale)"
-
-msgid "You may use limited HTML tags"
-msgstr "Puoi utilizzare solo alcuni tag HTML"
-
-msgid "Team website (optional)"
-msgstr "Sito web del team (opzionale)"
-
-msgid "Displayed on the team's page"
-msgstr "Visualizzato nella pagina del team"
-
-msgid "Type of team"
-msgstr "Tipo di team"
-
-msgid "Accept new members?"
-msgstr "Accettare nuovi membri?"
-
-msgid "Description of team"
-msgstr "Descrizione del team"
-
-msgid "Create new team"
-msgstr "Creare un nuovo team"
-
-msgid "Create a team"
-msgstr "Crea un team"
-
-msgid "Save team"
-msgstr "Salva team"
-
-msgid "Create team message board"
-msgstr "Creare una board dei messaggi del team"
-
-msgid "Create message board"
-msgstr "Crea la board messaggi"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Si prega di essere responsabile in quello che scrivi e non creare post che sono offensivi o ingiuriosi. Post offensivi o thread possono essere eliminati dai moderatori del forum senza avviso o discussione. Non rispondere a commenti offensivi. Fare clic sul pulsante \"report\" nella parte inferiore del post per riportarlo all'attenzione dei moderatori."
 
-msgid "You may create a message board for use by @team"
-msgstr "È possibile creare una message board pronta all'uso di @team"
+msgid "this project"
+msgstr "questo progetto"
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Per piacere imposta il credito minimo medio richiesto ad un utente per poter postare in questa board messaggi."
-
-msgid "Post new topic"
-msgstr "Posta un nuovo topic"
-
-msgid "Anonymous"
-msgstr "Anonimo"
-
-msgid "Unpublished"
-msgstr "Non pubblicato"
-
-msgid "parent removed"
-msgstr "padre rimosso"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "Indirizzo mail o password non riconosciuti."
-
-msgid "Have you forgotten your password?"
-msgstr "Password dimenticata?"
-
-msgid "Id"
-msgstr "Id"
-
-msgid "Recent average credit"
-msgstr "Media dei crediti recenti"
-
-msgid "Members"
-msgstr "Membri"
-
-msgid "Total Credit"
-msgstr "Credito totale"
-
-msgid "User ID"
-msgstr "ID dell'utente"
-
-msgid "User"
-msgstr "Utente"
-
-msgid "Admin since"
-msgstr "Admin dal"
-
-msgid "Team ID"
-msgstr "ID del team"
-
-msgid "User joined"
-msgstr "L'utente è entrato"
-
-msgid "Timestamp"
-msgstr "Timestamp"
-
-msgid "Account Key"
-msgstr "Chiave account"
-
-msgid "CPID"
-msgstr "CPID"
-
-msgid "Email Address"
-msgstr "indirizzo email"
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Chiediamo inoltre di mantenere tutte le discussioni in bacheca legate a @project o BOINC ad eccezione della board di messaggi scientifici dove siete liberi di discutere di qualcosa di rilevante per la scienza di base. I partecipanti interessati a discussioni più ampie dovrebbero postare nel forum non ufficiale per @project."
 
-msgid "Password Hash"
-msgstr "Hash password"
+msgid "These message boards now support BBCode tags only."
+msgstr "Queste bacheche al momento supportano solo il tag BBCode."
 
-msgid "Postal Code"
-msgstr "Codice di avviamento postale"
+msgid "Featured"
+msgstr "Evidenziato"
 
-msgid "Send Email"
-msgstr "Invia Email"
+msgid "Locked"
+msgstr "Bloccato"
 
-msgid "Show Hosts"
-msgstr "Visualizza Dispositivi"
+msgid "Submitted on !datetime"
+msgstr "Inviato il !datetime"
 
-msgid "URL"
-msgstr "URL"
+msgid "Computers pending"
+msgstr "Computer in attesa"
 
-msgid "Computer ID"
-msgstr "ID del computer "
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Questo utente non dispone ancora di computer associati. I computer verranno visualizzati quando avranno guadagnato i loro primi crediti."
 
-msgid "Location"
-msgstr "Luogo"
+msgid "Show IP address"
+msgstr "Visualizza indirizzo IP"
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Quando BOINC è attivo, % di tempo in cui il lavoro è permesso"
+msgid "Download the desktop software"
+msgstr "Scarica il software per desktop"
 
-msgid "Average turnaround time"
-msgstr "Tempo medio di completamento"
+msgid "Run the installer"
+msgstr "Esegui l'installer"
 
-msgid "Created"
-msgstr "Creato"
+msgid "hours"
+msgstr "ore"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Quando BOINC è attivo, % di tempo che l'host ha una connessione Internet"
+msgid "When prompted enter @siteurl"
+msgstr "Quando richiesto inserire @siteurl"
 
-msgid "Average CPU efficiency"
-msgstr "Efficienza media CPU"
+msgid "Merge"
+msgstr "Unisci"
 
-msgid "Free disk space"
-msgstr "Spazio su disco libero"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Questo eliminerà l'host @id dal tuo account per sempre. Sei sicuro di farlo?"
 
-msgid "Total disk space"
-msgstr "Spazio totale su disco"
+msgid "Post topic"
+msgstr "Argomento del post"
 
-msgid "Task duration correction factor"
-msgstr "Fattore di correzione della durata del lavoro"
+msgid "Leave team"
+msgstr "Abbandona il team"
 
-msgid "Avg. credit"
-msgstr "Media dei crediti"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Clicca qui per revocare la tua iscrizione a @this_team"
 
-msgid "External IP address"
-msgstr "Indirizzo IP esterno"
+msgid "Leave this team"
+msgstr "Abbandona questo team"
 
-msgid "Cross project ID"
-msgstr "ID su tutti i progetti"
+msgid "Request foundership"
+msgstr "Richiedi cambio fondatore"
 
-msgid "Last IP address"
-msgstr "Ultimo indirizzo IP"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Se il fondatore del team non è attivo e desideri assumere il ruolo di fondatore, cliccare qui sotto per chiedere di diventare il fondatore di @this_team."
 
-msgid "Cache"
-msgstr "Cache"
+msgid "Initiate request"
+msgstr "Avvia la richiesta"
 
-msgid "Memory"
-msgstr "Memoria"
+msgid "No active computers"
+msgstr "Nessun computer attivo"
 
-msgid "Swap space"
-msgstr "Spazio di swap"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Questo utente non ha avuto alcun computer attivo negli ultimi 30 giorni."
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "Numero massimo elaborazioni giornaliere per CPU"
+msgid "Clear"
+msgstr "Rimuovi"
 
-msgid "Average download rate"
-msgstr "Velocità media di download"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Questa'azione rimuoverà tutte le tue impostazioni dall'insieme di preferenze di @nome. Vuoi proseguire?"
 
-msgid "Average upload rate"
-msgstr "Velocità media di upload"
+msgid "Your community preferences have been updated."
+msgstr "Sono state aggiornate le preferenze della comunità."
 
-msgid "Same IP address count"
-msgstr "Numero di indirizzi IP uguali"
+msgid "Combined preferences"
+msgstr "Preferenze combinate"
 
-msgid "% of time BOINC client is running"
-msgstr "% di tempo che il client BOINC è in esecuzione"
+msgid "Switch View"
+msgstr "Cambia visuale"
 
-msgid "Operating system"
-msgstr "Sistema operativo"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Questa azione rimuoverà tutte le tue impostazioni dall'insieme di preferenze di \"@name\". Vuoi proseguire?"
 
-msgid "Operating system version"
-msgstr "Versione sistema operativo"
+msgid "Approve profile"
+msgstr "Approva profilo"
 
-msgid "Measured floating point speed"
-msgstr "Velocità misurata in calcoli in virgola mobile"
+msgid "Approve this profile content"
+msgstr "Approva il contenuto di questo profilo"
 
-msgid "Measured integer speed"
-msgstr "Velocità calcoli interi"
+msgid "Reject this profile content"
+msgstr "Rigetta il contenuto di questo profilo"
 
-msgid "CPU model"
-msgstr "modello CPU"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Queste si applicano a tutti i progetti BOINC nei quali partecipi."
 
-msgid "Number of processors"
-msgstr "Numero di processori"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Nel caso di computer collegati a più progetti, verranno utilizzate le preferenze modificate più di recente."
 
-msgid "CPU"
-msgstr "CPU"
+msgid "Preferences last modified: @mod_time"
+msgstr "Preferenze ultima modifica: @mod_time"
 
-msgid "Number of times client has contacted server"
-msgstr "Numero di volte che BOINC ha contattato il server"
+msgid "every"
+msgstr "ogni"
 
-msgid "Last contact"
-msgstr "Ultimo contatto"
+msgid "Add"
+msgstr "Aggiungi"
 
-msgid "Serial number"
-msgstr "Numero di serie"
+msgid "My team"
+msgstr "Il mio team"
 
-msgid "Timezone"
-msgstr "Timezone"
+msgid "You are a member of @team."
+msgstr "Sei un membro di @team."
 
-msgid "Platform ID"
-msgstr "ID piattaforma"
+msgid "View my team"
+msgstr "Mostra il mio team"
 
-msgid "Task ID"
-msgstr "ID elaborazione"
+msgid "Manage team"
+msgstr "Gestisci il team"
 
-msgid "Workunit ID"
-msgstr "ID workunit"
+msgid "View member list"
+msgstr "Visualizza la lista dei membri"
 
-msgid "Host ID"
-msgstr "ID host"
+msgid "Member names and emails"
+msgstr "Nomi ed email dei membri"
 
-msgid "Application ID"
-msgstr "ID applicazione"
+msgid "View change history"
+msgstr "Visualizza la storia dei cambiamenti"
 
-msgid "Application version"
-msgstr "Versione dell'applicazione"
+msgid "See member activity"
+msgstr "Visualizza l'attività dei membri"
 
-msgid "Claimed credit"
-msgstr "Credito garantito"
+msgid "Manage team message board"
+msgstr "Gestisci la board messaggi del team"
 
-msgid "Client state"
-msgstr "Stato del client"
+msgid "Create or manage message board"
+msgstr "Crea o gestisci la board dei messaggi"
 
-msgid "CPU time"
-msgstr "Tempo CPU"
+msgid "Remove members"
+msgstr "Rimuovi membri"
 
-msgid "Run time"
-msgstr "Tempo di elaborazione"
+msgid "Change founder"
+msgstr "Cambia fondatore"
 
-msgid "Exit status"
-msgstr "Stato di uscita"
+msgid "Manage team admins"
+msgstr "Gestisci gli amministratori del team"
 
-msgid "Granted credit"
-msgstr "Credito garantito"
+msgid "Edit team info"
+msgstr "Modifica le informazioni del team"
 
-msgid "Outcome"
-msgstr "Risultato"
+msgid "Remove team"
+msgstr "Rimuovi team"
 
-msgid "Received time"
-msgstr "Tempo di ricezione"
+msgid "Team forum"
+msgstr "Forum del team"
 
-msgid "Report deadline"
-msgstr "Scadenza"
+msgid "A discussion forum has been set up for team members."
+msgstr "Un forum di discussione è stato impostato per i membri del team."
 
-msgid "Sent"
-msgstr "Inviato"
+msgid "Enter forum"
+msgstr "Entra nel forum"
 
-msgid "Server state"
-msgstr "Stato server"
+msgid "Join team"
+msgstr "Entra in un team"
 
-msgid "Stderr out"
-msgstr "Errore su stderr"
+msgid "Click here to become a member of @this_team"
+msgstr "Clicca qui per diventare membro di @this_team"
 
-msgid "Validation state"
-msgstr "Stato di validazione"
+msgid "Join this team"
+msgstr "Unisciti a questo team"
 
-msgid "App ID"
-msgstr "ID Applicazione"
+msgid "Choose type"
+msgstr "Scegli tipo"
 
-msgid "Canonical credit"
-msgstr "Credito canonico"
+msgid "Team name"
+msgstr "Nome del team"
 
-msgid "Canonical result ID"
-msgstr "ID risultato canonico"
+msgid "Text only, no HTML tags"
+msgstr "Solo testo, nessun tag HTML"
 
-msgid "Created time"
-msgstr "Tempo di creazione"
+msgid "Team name -- HTML version (optional)"
+msgstr "Nome Team -- versione HTML (opzionale)"
 
-msgid "Error mask"
-msgstr "Maschera errori"
+msgid "You may use limited HTML tags"
+msgstr "Puoi utilizzare solo alcuni tag HTML"
 
-msgid "Minimum quorum"
-msgstr "Quorum minimo"
+msgid "Team website (optional)"
+msgstr "Sito web del team (opzionale)"
 
-msgid "Max error tasks"
-msgstr "Numero massimo di elaborazioni fallite"
+msgid "Displayed on the team's page"
+msgstr "Visualizzato nella pagina del team"
 
-msgid "Max success tasks"
-msgstr "Numero massimo di elaborazioni terminate con successo"
+msgid "Type of team"
+msgstr "Tipo di team"
 
-msgid "Max total tasks"
-msgstr "Numero massimo di elaborazioni totali"
+msgid "Accept new members?"
+msgstr "Accettare nuovi membri?"
 
-msgid "Needs validation"
-msgstr "Richiede validazione"
+msgid "Description of team"
+msgstr "Descrizione del team"
 
-msgid "Initial replication"
-msgstr "Replica iniziale"
+msgid "Create a team"
+msgstr "Crea un team"
 
-msgid "Target number of results"
-msgstr "Numero di risultati obiettivo"
+msgid "Save team"
+msgstr "Salva team"
 
-msgid "Application version ID"
-msgstr "ID versione applicazione"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Se si sta già eseguendo BOINC, selezionare <i>Aggiungi\nprogetto</i>."
 
-msgid "Plan class"
-msgstr "Classe pianificata"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Se si esegue una versione a riga di comando di BOINC,\ninnanzitutto utilizzare il software BOINC Manager (altrove se necessario) per creare un account su questo progetto, quindi utilizzare tale account per connettersi con la versione da riga di comando."
 
-msgid "Version number"
-msgstr "Numero di versione"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Se utilizzi una versione di BOINC precedente alla 5.0, per\npiacere aggiornala a una versione più recente prima di creare un account\nsu questo progetto."
 
-msgid "Computer"
-msgstr "Computer"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Se hai dimenticato l'indirizzo email del tuo account, oppure non puoi ricevere email:"
 
-msgid "App version ID"
-msgstr "ID versione applicazione"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Se è stato eseguito BOINC con l'account, è ancora possibile accedervi. Ecco come:"
 
-msgid "Consecutive valid tasks"
-msgstr "Lavori validi consecutivi"
+msgid "BOINC documentation"
+msgstr "Documentazione di BOINC"
 
-msgid "Number of tasks completed"
-msgstr "Numero di lavori completati"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Vai nella directory dei dati BOINC sul tuo computer (guarda !boinc_wiki per trovare aiuto su questo)."
 
-msgid "Max tasks per day"
-msgstr "Massimo numero di lavori giornalieri"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Trova il file di account per questo progetto; avrà un nome come %file (dove l'URL del progetto è %url)."
 
-msgid "Number of tasks today"
-msgstr "Numero di lavori giornaliero"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Apri il file in un editor di testo come Notepad. Vedrai qualcosa di simile:"
 
-msgid "Show IP address"
-msgstr "Visualizza indirizzo IP"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Selezionare e copiare la stringa tra <autenticator> e </authenticator> (%auth nell'esempio precedente)."
 
-msgid "hours"
-msgstr "ore"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Incolla la stringa nel campo sotto, e premi OK."
 
-msgid "@count million ops/sec"
-msgstr "@count milioni di operazioni/secondo"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Ora accederai con il tuo account; aggiorna l'email e la password."
 
-msgid "@rate KiB/sec"
-msgstr "@rate KiB/sec"
+msgid "Log in with authenticator"
+msgstr "Accedi via Authenticator"
 
-msgid "@count days"
-msgstr "@count giorni"
+msgid "OK"
+msgstr "OK"
 
-msgid "Remove friend"
-msgstr "Rimuovi amico"
+msgid "Post new topic"
+msgstr "Posta un nuovo topic"
 
-msgid "Ban user"
-msgstr "Banna utente"
+msgid "Create team message board"
+msgstr "Creare una board dei messaggi del team"
 
-msgid "Add as friend"
-msgstr "Aggiungi come amico"
+msgid "Message board title"
+msgstr "Titolo della board dei messaggi"
 
-msgid "Team"
-msgstr "Team"
+msgid "Minimum time between posts"
+msgstr "Tempo minimo tra i post"
 
-msgid "Reply"
-msgstr "Rispondi"
+msgid "Seconds"
+msgstr "Secondi"
 
-msgid "Reply to this comment"
-msgstr "Rispondi a questo commento"
+msgid "Minimum total credit to post"
+msgstr "Credito totale minimo per scrivere"
 
-msgid "Quote"
-msgstr "Cita"
+msgid "Minimum avg credit to post"
+msgstr "Credito totale minimo per scrivere"
 
-msgid "Reply to this comment with quote"
-msgstr "Rispondi a questo commento quotandolo"
+msgid "Allow public to read board?"
+msgstr "Permettere la lettura della board pubblicamente?"
 
-msgid "Edit this comment"
-msgstr "Modifica questo commento"
+msgid "Create message board"
+msgstr "Crea la board messaggi"
 
-msgid "Delete this comment"
-msgstr "Cancella questo commento"
+msgid "About message boards"
+msgstr "Informazioni sulla board dei messaggi"
 
-msgid "Hide this comment"
-msgstr "Nascondi questo commento"
+msgid "You may create a message board for use by @team"
+msgstr "È possibile creare una message board pronta all'uso di @team"
 
-msgid "Convert"
-msgstr "Converti"
+msgid "Only members may post"
+msgstr "Solo i membri possono postare"
 
-msgid "Convert this comment to a new topic"
-msgstr "Converti questo commento in un nuovo topic"
+msgid "Only members may read (optional)"
+msgstr "Solo i membri possono leggere (opzionale)"
 
-msgid "Details"
-msgstr "Dettagli"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Il fondatore e gli amministratori del team hanno i privilegi di moderatore"
 
 msgid "@ip_address (same the last @count times)"
 msgstr "@ip_address (lo stesso delle ultime @count volte)"
 
-msgid "commented on"
-msgstr "commentato su"
-
-msgid "Make unsticky"
-msgstr "Non evidenziare"
-
-msgid "Remove sticky status from this topic"
-msgstr "Rimuove lo stato in evidenza da questo argomento"
+msgid "Revise or post comment"
+msgstr "Modifica o posta commento"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1501,321 +1452,304 @@ msgstr "Controllare i computer che sono le stesse di @name (creato il @date alle
 msgid "Computer @old_id has been merged successfully into @id."
 msgstr "Il computer @old_id è stato integrato con successo nel @id."
 
-msgid "started discussion"
-msgstr "discussione iniziata"
-
-msgid "posted"
-msgstr "postato"
-
-msgid "Minimum value not met for @field"
-msgstr "Valore minimo non raggiunto per @field"
+msgid "parent removed"
+msgstr "padre rimosso"
 
 msgid "Remove"
 msgstr "Rimuovi"
 
-msgid "hidden"
-msgstr "nascosto"
-
-msgid "Invalid data type for @field"
-msgstr "Tipo dati invalido per @field"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "È richiesta l'autenticazione quando si cambia indirizzo di posta elettronica o si imposta una nuova password."
 
-msgid "Request foundership"
-msgstr "Richiedi cambio fondatore"
+msgid "Make unsticky"
+msgstr "Non evidenziare"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Se il fondatore del team non è attivo e si desidera assumere il ruolo di fondatore, cliccare qui sotto per richiedere la foundership di @this_team."
+msgid "Remove sticky status from this topic"
+msgstr "Rimuove lo stato in evidenza da questo argomento"
 
-msgid "Initiate request"
-msgstr "Avvia la richiesta"
+msgid "Unhide"
+msgstr "Rendi visibile"
 
-msgid "A BOINC account already exists for @email."
-msgstr "Esiste già un account BOINC registrato con @email."
+msgid "Unhide this comment"
+msgstr "Mostra questo commento"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Si prega di essere responsabile in quello che scrivi e non creare post che sono offensivi o ingiuriosi. Post offensivi o thread possono essere eliminati dai moderatori del forum senza avviso o discussione. Non rispondere a commenti offensivi. Fare clic sul pulsante \"report\" nella parte inferiore del post per riportarlo all'attenzione dei moderatori."
+msgid "Unpublished"
+msgstr "Non pubblicato"
 
-msgid "this project"
-msgstr "questo progetto"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "I @old_ids dei computer sono stati uniti con successo in @id."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "Chiediamo inoltre di mantenere tutte le discussioni in bacheca legate a @project o BOINC ad eccezione della board di messaggi scientifici dove siete liberi di discutere di qualcosa di rilevante per la scienza di base. I partecipanti interessati a discussioni più ampie dovrebbero postare nel forum non ufficiale per @project."
+msgid "Joined"
+msgstr "Iscritto"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "Queste bacheche al momento supportano solo il tag BBCode."
+msgid "Credit"
+msgstr "Crediti"
 
-msgid "Posts contributed"
-msgstr "Post contribuiti"
+msgid "RAC"
+msgstr "RAC"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Profilo in attesa di approvazione di un moderatore"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Non esiste un account per @email, seleziona \"Crea nuovo account\" per registrarne uno"
 
-msgid "Approve profile"
-msgstr "Approva profilo"
+msgid "started discussion"
+msgstr "discussione iniziata"
 
-msgid "Approve this profile content"
-msgstr "Approva il contenuto di questo profilo"
+msgid "commented on"
+msgstr "commentato su"
 
-msgid "Edit profile"
-msgstr "Modifica profilo"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "La password immessa non è valida. Si prega di verificare che sia corretta."
+
+msgid "Minimum value not met for @field"
+msgstr "Valore minimo non raggiunto per @field"
+
+msgid "Invalid data type for @field"
+msgstr "Tipo dati invalido per @field"
+
+msgid "News"
+msgstr "News"
+
+msgid "Remove friend"
+msgstr "Rimuovi amico"
+
+msgid "ignore list"
+msgstr "lista degli ignorati"
+
+msgid "here"
+msgstr "qui"
 
-msgid "Edit the content of this profile"
-msgstr "Modifica il contenuto di questo profilo"
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username è nella tua !ignore_list. Fai click !here per leggere il post."
 
-msgid "Remove profile"
-msgstr "Rimuovi profilo"
+msgid "hidden"
+msgstr "nascosto"
+
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Impostazione non valida per \"%preference\""
 
-msgid "Remove this profile content from the system"
-msgstr "Rimuovi questo contenuto del profilo dal sistema"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: commento postato in \"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author ha postato una risposta in \"!topic_name\"."
+
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Per vedere questo topic su !site, clicca qui: \n!comment_url"
 
 msgid "The team founder has @count days to respond to your transfer request."
 msgstr "Il fondatore del team ha @count giorni per rispondere alla vostra richiesta di trasferimento."
 
-msgid "Reject profile"
-msgstr "Rigetta profilo"
-
-msgid "Reject this profile content"
-msgstr "Rigetta il contenuto di questo profilo"
-
-msgid "Reason for rejecting this profile"
-msgstr "Motivo del rigetto del profilo"
-
-msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Questo motivo verrà incluso in una e-mail all'utente. Si prega di scrivere una breve spiegazione del problema e come risolverlo."
+msgid "Unlock"
+msgstr "Sblocca"
 
-msgid "Submit"
-msgstr "Invia"
+msgid "Unlock this thread for comments"
+msgstr "Sbloccare questo thread per i commenti"
 
 msgid "project"
 msgstr "progetto"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "Non esiste un account per @email, seleziona \"Crea nuovo account\" per registrarne uno"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email non è un indirizzo email valido, si prega di controllarlo"
 
-msgid "Unknown"
-msgstr "Sconosciuto"
+msgid "Please enter your email address"
+msgstr "Inserisci il tuo indirizzo email"
 
-msgid "My team"
-msgstr "Il mio team"
+msgid "There is no account with that authenticator."
+msgstr "Non c'è nessun account con quell'autenticatore."
 
-msgid "You are a member of @team."
-msgstr "Sei un membro di @team."
+msgid "That authenticator is not valid."
+msgstr "Non valido."
 
-msgid "View my team"
-msgstr "Mostra il mio team"
+msgid "Send request"
+msgstr "Invia la richiesta"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Impostazione non valida per \"%preference\""
+msgid "Friend request from !name [!site]"
+msgstr "Richiesta di amicizia da parte di !name [!site]"
 
-msgid "Pending"
-msgstr "Non assegnato"
+msgid "Message"
+msgstr "Messaggio"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "Devi guadagnare ancora almeno @count crediti per poter inviare commenti su questo sito."
-
-msgid "Moderation"
-msgstr "Moderazione"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name ti ha mandato una richiesta di amicizia su !site: puoi accettarla o rifiutarla. Rifiutare una richiesta non comporta l'invio di una notifica ma rimuoverà la richiesta da entrambi gli account.\n\nPuoi usare questo link per vedere la richiesta:\n!link\n\n!message\n\nCordiali saluti,\nIl !site team"
 
-msgid "Unvetted profiles"
-msgstr "Profili autoritativi"
+msgid "Cancel friend request"
+msgstr "Cancella la richiesta di amicizia"
 
-msgid "Reason for banning this user"
-msgstr "Motivo del ban per questo utente"
+msgid "Please set the minimum time required between posts."
+msgstr "Per favore impostare il tempo minimo che deve trascorrere tra un post e l'invio del successivo."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "Questo motivo verrà incluso in una email all'utente. Si prega di scrivere una breve spiegazione del del perché l'utente sta per essere bannato."
-
-msgid "Duration of the ban"
-msgstr "Durata del ban"
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "Il numero di giorni di durata del ban. Impostare su 0 per un ban permanente."
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Per favore impostare il numero minimo di crediti necessari ad ogni utente per poter inviare messaggi."
 
-msgid "Lift user ban"
-msgstr "Aumentare la durata del ban utente"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Impostare il credito minimo medio richiesto ad un utente per poter postare in questo forum."
 
-msgid "You are banned from community participation until @date"
-msgstr "Sei stato bannato dalla community fino al @date"
+msgid "Edit message board"
+msgstr "Modifica la board dei messaggi"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "I @old_ids dei computer sono stati uniti con successo in @id."
+msgid "Save message board"
+msgstr "Salva la board messaggi"
 
-msgid "A team named \"@name\" already exists."
-msgstr "Un team di nome \"@name\" esiste già."
+msgid "This is a team-only message board"
+msgstr "Questa è una board messaggi solo del team"
 
-msgid "Post topic"
-msgstr "Argomento del post"
+msgid "Maximum value exceeded for @field"
+msgstr "Valore troppo lungo nel campo @field"
 
-msgid "Please enter your email address"
-msgstr "Inserisci il tuo indirizzo email"
+msgid "Approve request"
+msgstr "Accetta la richiesta"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "La password immessa non è valida. Si prega di verificare che sia corretta."
+msgid "!name accepted your friend request [!site]"
+msgstr "!name ha accettato la tua richiesta di amicizia [!site]"
 
-msgid "Make founder"
-msgstr "Rendi fondatore"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name ha accettato la tua amicizia su !site.\n\nFacendo click su questo link potrai leggere il suo profilo:\n!link\n\n!message\n\nCordiali saluti,\nIl !site team"
 
-msgid "User of the day"
-msgstr "Utente del giorno"
+msgid "posted"
+msgstr "postato"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: commento postato in \"!topic_name\""
+msgid "Add team admin"
+msgstr "Aggiungi un amministratore del team"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author ha postato una risposta in \"!topic_name\"."
+msgid "Enter email address"
+msgstr "Inserire il proprio indirizzo email"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "Per vedere questo topic su !site, clicca qui: \n!comment_url"
+msgid "Current team admins"
+msgstr "Amministratori del team correnti"
 
-msgid "At least one application must be selected"
-msgstr "È necessario selezionare almeno un'applicazione"
+msgid "About team admins"
+msgstr "Informazioni sugli amministratori del team"
 
-msgid "Account"
-msgstr "Account"
+msgid "Team admins can:"
+msgstr "Gli amministratori del team possono:"
 
-msgid "Log in"
-msgstr "Entra"
+msgid "Edit team information"
+msgstr "Modifica le informazioni del team"
 
-msgid "Forgot password"
-msgstr "Password dimenticata"
+msgid "View the team's join / quit history"
+msgstr "Guarda le storia delle richieste di ingresso / uscita dal team"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Inserisci il tuo indirizzo email per ricevere le istruzioni su come reimpostare la password."
+msgid "Moderate the team forum"
+msgstr "Modera il forum del team"
 
-msgid "Send"
-msgstr "Invia"
+msgid "Remove members from the team"
+msgstr "Rimuovere i membri dal team"
 
-msgid "Revise or post comment"
-msgstr "Modifica o posta commento"
+msgid "Disband a team if it has no members"
+msgstr "Sciogli il team, se non ha più membri"
 
-msgid "discuss"
-msgstr "discuti"
+msgid "Team admins cannot:"
+msgstr "L'admin del team non può:"
 
-msgid "News"
-msgstr "News"
+msgid "Change the team founder"
+msgstr "Cambia il fondatore del team"
 
-msgid "Your community preferences have been updated."
-msgstr "Sono state aggiornate le preferenze della comunità."
+msgid "Add / Remove team admins"
+msgstr "Aggiungi / Rimuovi amministratori del team"
 
-msgid "Unlock"
-msgstr "Sblocca"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Se un admin esce dal team, cessa di essere un amministratore del team. Si consiglia di selezionare solo persone che conosci e di fiducia"
 
-msgid "Unlock this thread for comments"
-msgstr "Sbloccare questo thread per i commenti"
+msgid "Lift user ban"
+msgstr "Aumentare la durata del ban utente"
 
-msgid "Authenticator login"
-msgstr "Login autenticatore"
+msgid "A team named \"@name\" already exists."
+msgstr "Un team di nome \"@name\" esiste già."
 
-msgid "Create content"
-msgstr "Crea contenuti"
+msgid "A BOINC account already exists for @email."
+msgstr "Esiste già un account BOINC associato ad @email."
 
-msgid "authenticator-based login"
-msgstr "Login basato sull'autenticatore"
+msgid "Make founder"
+msgstr "Rendi fondatore"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Inserisci il tuo indirizzo email per ricevere le istruzioni su come reimpostare la password (oppure utilizza il !authenticator_login)."
+msgid "Changing the team founder"
+msgstr "Cambia il fondatore del team"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "Se hai dimenticato l'indirizzo email del tuo account, oppure non puoi ricevere email:"
+msgid "Notes about changes in foundership:"
+msgstr "Note riguardanti i cambiamenti dell'account fondatore:"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "Se è stato eseguito BOINC con l'account, è ancora possibile accedervi. Ecco come:"
+msgid "Any member of the team is eligible"
+msgstr "Ogni membro del team è eleggibile"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Vai nella directory dei dati BOINC sul tuo computer (in Windows si trova solitamente in %path1 oppure %path2)."
+msgid "Current founder becomes a normal user"
+msgstr "Il fondatore corrente diventa un utente normale"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Trova il file di account per questo progetto; avrà un nome come %file (dove l'URL del progetto è %url)."
+msgid "Foundership can be requested by team members:"
+msgstr "La qualifica di fondatore può essere richiesta dai membri del team:"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Apri il file in un editor di testo come Notepad. Vedrai qualcosa di simile:"
+msgid "One request is allowed at a time"
+msgstr "Una richiesta per volta è permessa"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Selezionare e copiare la stringa tra <autenticator> e </authenticator> (%auth nell'esempio precedente)."
+msgid "It must be 60 days since any previous request"
+msgstr "Devono trascorrere 60 giorni dalla richiesta precedente"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Incolla la stringa nel campo sotto, e premi OK."
+msgid "Any active request must be older than 90 days"
+msgstr "Qualsiasi richiesta attiva deve essere superiore a 90 giorni"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Farai ora il login con il tuo account; aggiorna la e-mail e la password del tuo account."
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Il Fondatore corrente ha 60 giorni per rispondere a una richiesta"
 
-msgid "Log in with authenticator"
-msgstr "Fai il login come autenticatore"
+msgid "BOINC-wide teams site"
+msgstr "Sito dei team BOINC-wide"
 
-msgid "There is no account with that authenticator."
-msgstr "Non c'è nessun account con quell'autenticatore."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Questo è un team BOINC-wide. Le modifiche devono essere effettuate tramite il !site."
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Andare nella <a href=\"%wikiref\">directory dei dati BOINC</a> sul tuo computer (in Windows si trova solitamente in %path1 oppure in %path2)."
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Recentemente è stato richiesto un cambio del fondatore. È permesso presentare al massimo una richiesta di cambio fondatore ogni 90 giorni."
 
-msgid "BOINC documentation"
-msgstr "Documentazione di BOINC"
+msgid "@count days remaining"
+msgstr "@count giorni rimanenti"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Vai nella directory dei dati BOINC sul tuo computer (guarda !boinc_wiki per trovare aiuto su questo)."
+msgid "Team name is required."
+msgstr "È indispensabile inserire il nome del gruppo."
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "@count giorni sono trascorsi dalla vostra richiesta e il fondatore non ha risposto."
+msgid "Reason for banning this user"
+msgstr "Motivo del ban per questo utente"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "Hai @count giorni per assumere la foundership prima che un altro membro del team possa inviare una richiesta."
-
-msgid "Assume foundership"
-msgstr "Assumi ruolo di fondatore"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Questo motivo verrà incluso in una email all'utente. Si prega di scrivere una breve spiegazione del perché l'utente sta per essere bannato."
 
-msgid "Unhide"
-msgstr "Rendi visibile"
+msgid "Duration of the ban"
+msgstr "Durata del ban"
 
-msgid "Unhide this comment"
-msgstr "Mostra questo commento"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Numero di giorni di durata del ban. Impostare a 0 per un ban permanente."
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email non è un indirizzo email valido, si prega di controllarlo"
+msgid "Submit"
+msgstr "Invia"
diff --git a/locale/it_IT/BOINC-Manager.mo b/locale/it_IT/BOINC-Manager.mo
index ab81c5d..ddeadea 100644
Binary files a/locale/it_IT/BOINC-Manager.mo and b/locale/it_IT/BOINC-Manager.mo differ
diff --git a/locale/it_IT/BOINC-Manager.po b/locale/it_IT/BOINC-Manager.po
index 49ca8f8..2605a7c 100644
--- a/locale/it_IT/BOINC-Manager.po
+++ b/locale/it_IT/BOINC-Manager.po
@@ -1,17 +1,19 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Alessandro Dalla Rosa <exit96dalla at gmail.com>, 2015
 # Gianfranco Costamagna <costamagnagianfranco at yahoo.it>, 2015-2016
-# Sebastiano Pistore <olatusrooc at virgilio.it>, 2015-2016
+# OlatusRooc <sebastiano.pistore.info at aol.com>, 2016
+# Sebastiano Pistore <olatusrooc at virgilio.it>, 2015-2017
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-04-15 08:53+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-24 11:14+0000\n"
 "Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
 "Language-Team: Italian (Italy) (http://www.transifex.com/boinc/boinc/language/it_IT/)\n"
 "MIME-Version: 1.0\n"
@@ -19,46 +21,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it_IT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Identifica il tuo account su %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Inserisci i dati del tuo account\n(per creare un nuovo account visita il sito web del progetto)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Questo progetto attualmente non accetta nuove iscrizioni.\nPuoi connetterti al progetto solo se hai già un account."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Hai già un account su questo progetto?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&No, nuovo utente"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Si, utente registrato"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -66,87 +60,87 @@ msgid ""
 "Please click on the 'Find login information' link\n"
 "below to find out what to put in the email address and\n"
 "password fields."
-msgstr "Non siamo stati in grado di impostare le informazioni del tuo account automaticamente.\n\nClicca sul link 'Recupera le informazioni di accesso'\nin basso per trovare cosa inserire nei campi\nindirizzo email e password."
+msgstr "Non siamo stati in grado di impostare automaticamente le informazioni del tuo account.\n\nClicca sul link 'Recupera le informazioni di accesso'\nin basso per trovare cosa inserire nei campi\nindirizzo email e password."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Recupera le informazioni di accesso"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Password:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Scegli una &password:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "C&onferma la password:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Hai già un account sul progetto %s?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Nome utente:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
-msgstr "indirizzo &Email o ID LDAP:"
+msgstr "Indirizzo &email o ID LDAP:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Indirizzo email:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "lunghezza minima %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Hai dimenticato la password?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Se non sei già registrato con questo account manager,\nsei pregato di farlo prima di procedere.  Clicca sul link qui sotto\nper registrarti o per recuperare la password dimenticata."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Sito web dell'account manager"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Aggiungi un progetto"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Aggiorna l'account manager"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Usa l'account manager"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Si prega di inserire un nome utente."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Inserire il proprio indirizzo email."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Per favore inserire una password di almeno %d caratteri."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "La password inserita e la password di conferma non corrispondono. Prova a scriverle di nuovo."
@@ -183,12 +177,12 @@ msgstr "Visita il sito web del tuo account manager"
 #: clientgui/AccountManagerPropertiesPage.cpp:192
 #, c-format
 msgid "Communicating with %s."
-msgstr "In comunicazione con %s."
+msgstr "Comunicazione in corso con %s."
 
 #: clientgui/AccountManagerProcessingPage.cpp:193
 #: clientgui/AccountManagerPropertiesPage.cpp:199
 msgid "Communicating with server."
-msgstr "In comunicazione con il server."
+msgstr "Comunicazione in corso con il server."
 
 #: clientgui/AccountManagerProcessingPage.cpp:198
 #: clientgui/AccountManagerPropertiesPage.cpp:204
@@ -199,11 +193,11 @@ msgstr "Si prega di attendere..."
 msgid "An internal server error has occurred.\n"
 msgstr "Si è verificato un errore interno del server.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Connesso"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Disconnesso"
 
@@ -218,8 +212,8 @@ msgid "Open another %s window"
 msgstr "Avvia una nuova finestra di %s"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Seleziona un computer..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Selezionare Computer...\tCtrl+Maiusc+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -352,7 +346,7 @@ msgstr "Esegui il &benchmark della CPU"
 
 #: clientgui/AdvancedFrame.cpp:494
 msgid "Run tests that measure CPU speed"
-msgstr "Avvia dei test che misurano la velocità di calcolo della CPU e della GPU"
+msgstr "Avvia dei test che misurano la velocità di calcolo della CPU"
 
 #: clientgui/AdvancedFrame.cpp:498
 msgid "Retry pending transfers"
@@ -360,7 +354,7 @@ msgstr "Ritenta i trasferimenti in attesa"
 
 #: clientgui/AdvancedFrame.cpp:499
 msgid "Retry deferred file transfers and task requests"
-msgstr "Ritenta i trasferimenti e le richieste di nuove elaborazioni rimandate"
+msgstr "Ritenta gli invii ed i trasferimenti di WU"
 
 #: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
 msgid "Event Log...\tCtrl+Shift+E"
@@ -400,11 +394,11 @@ msgstr "E&laborazione GPU continua"
 
 #: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
-msgstr "Elabora con la GPU senza interruzioni e indipendentemente dalle preferenze"
+msgstr "Elabora con la GPU indipendentemente dalle preferenze"
 
 #: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
-msgstr "Ela&borazione GPU secondo le preferenze"
+msgstr "Ela&borazione con la GPU secondo le preferenze"
 
 #: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
@@ -529,7 +523,7 @@ msgstr "Sito &web di %s"
 msgid "Show information about BOINC and %s"
 msgstr "Mostra informazioni su BOINC e su %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -564,12 +558,12 @@ msgstr "&Strumenti"
 msgid "&Help"
 msgstr "A&iuto"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Arresto nell'uso di %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -579,39 +573,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Se smetti di utilizzare %s,\nmanterrai tutti i tuoi progetti correnti,\nma dovrai gestirli manualmente.\n\nVuoi smettere di usare %s?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Chiusura del client..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s chiuderà il client attualmente connesso,\ne ti chiederà di indicarne un altro a cui connettersi."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s è stato aggiunto correttamente %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Connessione in corso con %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Connesso a %s (%s)"
@@ -642,7 +636,7 @@ msgstr "Un account con l'indirizzo e-mail specificato esiste già ed ha una\npas
 
 #: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
-msgstr "In comunicazione con il client BOINC.  Attendere prego ..."
+msgstr "Comunicazione in corso con il client BOINC. Attendere prego ..."
 
 #: clientgui/AsyncRPC.cpp:1034
 #, c-format
@@ -660,7 +654,7 @@ msgid "%s - Communication"
 msgstr "%s - Comunicazione"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Annulla"
@@ -735,7 +729,7 @@ msgid ""
 msgstr "%s al momento non è connesso al client %s.\nUsa l'opzione del menù 'Avanzate\\Seleziona un computer...' per connettersi al client %s.\nPer connetterti al computer locale usa 'localhost' come host name."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Pagine web del progetto"
 
@@ -766,17 +760,17 @@ msgstr "%s deve connettersi a Internet.\nPuò farlo ora?"
 #: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
-msgstr "%s si sta connettendo a Internet."
+msgstr "%s si sta connettendo ad Internet."
 
 #: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
-msgstr "%s è riuscito a connettersi a Internet."
+msgstr "%s è riuscito a connettersi ad Internet."
 
 #: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
-msgstr "%s non è riuscito a connettersi a Internet."
+msgstr "%s non è riuscito a connettersi ad Internet."
 
 #: clientgui/BOINCDialupManager.cpp:372
 #, c-format
@@ -795,7 +789,7 @@ msgstr "%s è riuscito a disconnettersi da Internet."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s non è riuscito a disconnettersi da Internet."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -808,170 +802,170 @@ msgid ""
 "     user group."
 msgstr "Non sei autorizzato a gestire il client.\n\nPer avviare %s come utente semplice:\n  - reinstalla %s rispondendo \"Si\" alla domanda sugli\n     utenti non-amministratori\n o\n  - contatta l'amministratore del computer per aggiungere il tuo \n     account al gruppo 'boinc_master'."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "La proprietà o i permessi di %s non sono impostati correttamente; per risolvere il problema reinstalla %s.\n(Codice errore %d)"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr "a"
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "Per un corretto funzionamento di BOINC è necessario riavviare il sistema.\nPer favore riavvia e prova nuovamente."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC Manager"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC Manager è stato avviato automaticamente dal sistema operativo"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Avvia BOINC in modo che sia visibile solo l'icona nella barra di sistema"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Cartella contenente file eseguibili del client BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Cartella dei dati di BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Nome dell'host o indirizzo IP"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "Numero della porta GUI RPC"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Password"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Avvia BOINC con questi parametri opzionali"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "disabilita la sicurezza utenti e i permessi di BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "imposta la modalità di debug per la visualizzazione per abilitarne i messaggi di errore del gestore"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "Permetti istanze multiple di BOINC Manager"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Non utilizzato: workaround per il bug in XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Non eseguire il demone"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Rilevamento automatico)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Sconosciuto)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Definito dall'utente)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Apri %s Web..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Apri %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Sospendi tutto"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
-msgstr "Ferma GPU"
+msgstr "Sospendi la GPU"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Esci"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Riprendi"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
-msgstr "Riprendi GPU"
+msgstr "Riprendi l'uso della GPU"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "L'elaborazione è abilitata"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "L'elaborazione è sospesa -"
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "L'elaborazione con la GPU è abilitata"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
-msgstr "L'elaborazione con la GPU è sospesa -"
+msgstr "L'elaborazione con la GPU è sospesa - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "La rete è abilitata"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "L'attività di rete è sospesa -"
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Riconnessione al client in corso."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Non connesso ad un client."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "Avvisi di %s"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Ci sono nuovi avvisi, clicca per vederli."
 
@@ -1060,7 +1054,7 @@ msgstr "Versione:"
 
 #: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
-msgstr "Versione dei wxWidget:"
+msgstr "Versione di wxWidgets:"
 
 #: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
@@ -1086,46 +1080,6 @@ msgstr "Per ulteriori informazioni visita"
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Numero non valido"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Orario non valido, il valore deve essere compreso tra 00:00 e 24:00. Il formato è HH:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "Il tempo di avvio deve essere diverso dal tempo di fine"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Il numero deve essere compreso tra 0 e 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Il numero deve essere compreso tra 0 e 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Il numero deve essere compreso tra 1 e 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "rilevato valore inserito non valido"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Errore di validazione"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Scartare le preferenze locali e utilizzare quelle web?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Conferma"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1173,7 +1127,7 @@ msgid "Daily schedules"
 msgstr "Operazioni pianificate"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1188,7 +1142,7 @@ msgstr "Chiude la finestra senza salvare."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Aiuto"
@@ -1207,7 +1161,7 @@ msgstr "Limite di utilizzo"
 msgid ""
 "Keep some CPUs free for other applications. Example: 75% means use 6 cores "
 "on an 8-core CPU."
-msgstr "Mantieni alcune CPU libere per altre applicazioni. Esempio: 75% significa usa 6 core in una CPU ad 8 core."
+msgstr "Mantieni alcune CPU disponibili per altre applicazioni. Esempio: 75% significa usa 6 core in una CPU ad 8 core."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:243
 #: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
@@ -1261,12 +1215,12 @@ msgstr "Sospendi l'elaborazione GPU quando il computer è in uso"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:294
 msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Spunta questa voce per sospendere l'elaborazione GPU quando stai usando il computer."
+msgstr "Spunta questa voce per sospendere l'elaborazione tramite GPU quando stai usando il computer."
 
 #. min idle time
 #: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
 msgid "This determines when the computer is considered 'in use'."
-msgstr "Questo determina quando il computer è considerato 'in uso'."
+msgstr "Determina quando il computer è considerato 'in uso'."
 
 #. context: 'In use' means mouse/keyboard input in last ___ minutes
 #: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
@@ -1301,12 +1255,12 @@ msgstr "Altro"
 #. buffer sizes
 #: clientgui/DlgAdvPreferencesBase.cpp:355
 msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Mantieni elaborazioni sufficienti per tenere il computer occupato per questo periodo."
+msgstr "Mantieni WU sufficienti per tenere il computer occupato per questo periodo."
 
 #. context: Store at least ___ days of work
 #: clientgui/DlgAdvPreferencesBase.cpp:359
 msgid "Store at least"
-msgstr "Memorizza almeno"
+msgstr "Scarica almeno"
 
 #. context: Store at least ___ days of work
 #. context: Store up to an additional ___ days of work
@@ -1319,7 +1273,7 @@ msgstr "giorni di lavoro"
 msgid ""
 "Store additional tasks above the minimum level.  Determines how much work is"
 " requested when contacting a project."
-msgstr "Archivia elaborazioni addizionali oltre la soglia minima. Determina quante workunit vengono richieste quando si contatta un progetto."
+msgstr "Scarica working unit oltre la soglia minima. Determina quante WU vengono richieste quando un progetto viene contattato."
 
 #. context: Store up to an additional ___ days of work
 #: clientgui/DlgAdvPreferencesBase.cpp:380
@@ -1408,7 +1362,7 @@ msgstr "Salta la verifica dati dei file immagine"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:528
 msgid "Confirm before connecting to Internet"
-msgstr "Conferma prima di connettersi ad Internet"
+msgstr "Conferma prima di connetterti ad Internet"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:529
 #: clientgui/DlgAdvPreferencesBase.cpp:533
@@ -1426,7 +1380,7 @@ msgstr "Disco"
 #: clientgui/DlgAdvPreferencesBase.cpp:564
 #, c-format
 msgid "%s will use the most restrictive of these settings:"
-msgstr "%s utilizzerà le più restrittive di queste impostazioni:"
+msgstr "%s utilizzerà le impostazioni più restrittive tra le seguenti:"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
 #, c-format
@@ -1480,7 +1434,7 @@ msgstr "Limita la memoria utilizzata da %s quando stai usando il computer."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:616
 msgid "When computer is in use, use at most"
-msgstr "Quando il computer è in 'uso', utilizza al massimo"
+msgstr "Quando il computer è 'in uso' utilizza al massimo"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:622
 #: clientgui/DlgAdvPreferencesBase.cpp:634
@@ -1500,14 +1454,14 @@ msgstr "Quando il computer non è 'in uso', utilizza al massimo"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:638
 msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Lascia le elaborazioni non-GPU in memoria quando sospese"
+msgstr "Lascia le elaborazioni non-GPU in RAM mentre sono sospese"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:639
 msgid ""
 "If checked, suspended tasks stay in memory, and resume with no work lost. If"
 " unchecked, suspended tasks are removed from memory, and resume from their "
 "last checkpoint."
-msgstr "Se selezionato, le elaborazioni sospese rimangono nella RAM (senza occupare la CPU) e riprendono senza rischiare di perdere i risultati dei calcoli. Se deselezionato, le elaborazioni sospese sono rimosse dalla memoria, quando vengono chiamate ripartono dal disco fisso ed i calcoli ripartono dall'ultimo checkpoint."
+msgstr "Se selezionato, le elaborazioni sospese rimangono nella RAM (senza impegnare la CPU) e riprendono senza rischiare di perdere i risultati dei calcoli. Se deselezionato, le elaborazioni sospese sono rimosse dalla memoria, quando vengono chiamate ripartono dal disco fisso ed i calcoli ripartono dall'ultimo checkpoint."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:643
 #, c-format
@@ -1587,75 +1541,123 @@ msgstr "Trasferisci i files solo durante un particolare periodo ogni giorno."
 msgid "Transfer files only between"
 msgstr "Trasferisci files solo tra"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Numero non valido"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Orario non valido, il valore deve essere compreso tra 00:00 e 24:00. Il formato è HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Il tempo di avvio deve essere diverso dal tempo di fine"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Il numero deve essere compreso tra 0 e 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Il numero deve essere compreso tra 0 e 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Il numero deve essere compreso tra 1 e 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "rilevato valore inserito non valido"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Errore di validazione"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Scartare le preferenze locali e utilizzare quelle web?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Conferma"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s Flag dei log di diagnostica"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Questi flag abilitano vari tipi di messaggi di diagnostica nel Log degli eventi."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Maggiori informazioni..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Salva tutti i valori e chiudi la finestra"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "Valori predefiniti"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Ripristina le impostazioni predefinite"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Chiudi la finestra senza salvare"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Applica"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Salva tutto"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Log degli eventi"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Progetto"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Ora"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Messaggio"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "Mostra &solo questo progetto"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Copi&a tutto"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Copia tutti i messaggi negli appunti."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Copia i &selezionati"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1663,7 +1665,7 @@ msgid ""
 "messages."
 msgstr "Copia i messaggi selezionati negli appunti. Puoi selezionare più messaggi insieme tenendo premuto il tasto Shift o command mentre clicchi sui messaggi."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1671,19 +1673,19 @@ msgid ""
 "messages."
 msgstr "Copia i messaggi selezionati negli appunti. Puoi selezionare più messaggi insieme tenendo premuto il tasto Shift o Ctrl mentre clicchi sui messaggi."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Chiudi"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Mostra tutti i &messaggi"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Mostra i messaggi di tutti i progetti"
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Mostra solamente i messaggi del progetto selezionato"
 
@@ -1706,7 +1708,7 @@ msgid "Add an application to this list"
 msgstr "Aggiungi un'applicazione alla lista"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Rimuovi"
 
@@ -1783,7 +1785,7 @@ msgid ""
 "\n"
 "If you also want to stop running the tasks,\n"
 "choose from the following options:"
-msgstr "Hai chiesto di uscire da %s,\nche ti permette di vedere e gestire\ni lavori in corso sul tuo computer.\n\nSe vuoi anche fermare i lavori in corso,\nscegli dalle opzioni seguenti:"
+msgstr "Hai chiesto di uscire da %s,\nche ti permette di vedere e gestire\nle elaborazioni sul tuo computer.\n\nSe vuoi anche fermare le elaborazioni in corso,\nscegli dalle opzioni seguenti:"
 
 #: clientgui/DlgExitMessage.cpp:135
 #, c-format
@@ -1794,12 +1796,12 @@ msgid ""
 "In most cases, it is better just to close the %s window\n"
 "rather than to exit the application; that will allow %s to run its\n"
 "tasks at the times you selected in your preferences."
-msgstr "Questo terminerà %s e tutti i suoi processi finchè l'applicazione\n%s o lo screensaver di %s verranno eseguiti nuovamente.\n\nIn molti casi, è consigliabile chiudere solo la finestra del %s invece\nche uscire dall'applicazione; questo permetterebbe a %s di eseguire i suoi\nprocessi negli orari che hai selezionato nelle tue preferenze."
+msgstr "Questo terminerà %s e tutti i suoi processi finché l'applicazione\n%s o lo screensaver di %s verranno lanciati nuovamente.\n\nIn molti casi, è consigliabile chiudere solo la finestra del %s invece\nche uscire dall'applicazione; questo permette ad %s di eseguire i suoi\nprocessi negli orari che hai selezionato nelle tue preferenze."
 
 #: clientgui/DlgExitMessage.cpp:153
 #, c-format
 msgid "Stop running tasks when exiting the %s"
-msgstr "Ferma i lavori in corso quando esci da %s"
+msgstr "Ferma le elaborazioni in corso quando esci da %s"
 
 #: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
@@ -1838,7 +1840,7 @@ msgstr "Conferma le impostazioni predefinite"
 #: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
 #: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
 msgid "Don't request tasks for "
-msgstr "Non richiedere elaborazioni per "
+msgstr "Non richiedere WU per "
 
 #: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
@@ -1859,12 +1861,12 @@ msgstr "La configurazione del client esclude"
 #: clientgui/DlgItemProperties.cpp:209
 #, c-format
 msgid "%s task request deferred for"
-msgstr "richiesta di attività per %s rimandata di"
+msgstr "richiesta di working unit per %s rimandata di"
 
 #: clientgui/DlgItemProperties.cpp:213
 #, c-format
 msgid "%s task request deferral interval"
-msgstr "intervallo di richiesta di nuove elaborazioni per %s"
+msgstr "intervallo di richiesta di nuove WU per %s"
 
 #. set dialog title
 #: clientgui/DlgItemProperties.cpp:247
@@ -1914,7 +1916,7 @@ msgstr "ID del computer"
 
 #: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
-msgstr "Non intensivo per la CPU"
+msgstr "Non intensiva per la CPU"
 
 #: clientgui/DlgItemProperties.cpp:268 clientgui/DlgItemProperties.cpp:270
 #: clientgui/DlgItemProperties.cpp:271 clientgui/DlgItemProperties.cpp:273
@@ -1933,7 +1935,7 @@ msgstr "no"
 
 #: clientgui/DlgItemProperties.cpp:271
 msgid "Don't request tasks"
-msgstr "Non richiedere workunit"
+msgstr "Non richiedere WU"
 
 #: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
@@ -1941,7 +1943,7 @@ msgstr "Richiesta allo scheduler in corso"
 
 #: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
-msgstr "Messaggio istantaneo in attesa"
+msgstr "Messaggio trickle in attesa"
 
 #: clientgui/DlgItemProperties.cpp:279 clientgui/DlgItemProperties.cpp:281
 msgid "Host location"
@@ -1957,7 +1959,7 @@ msgstr "Aggiunto mediante account manager"
 
 #: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
-msgstr "Rimuovi il progetto al termine dell'elaborazione"
+msgstr "Rimuovi il progetto al termine delle elaborazioni"
 
 #: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
@@ -2010,7 +2012,7 @@ msgstr "Ultima risposta dello scheduler"
 
 #: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
-msgstr "Proprietà della workunit"
+msgstr "Proprietà dell'elaborazione"
 
 #: clientgui/DlgItemProperties.cpp:372 clientgui/ViewWork.cpp:266
 msgid "Application"
@@ -2040,14 +2042,14 @@ msgstr "Risorse in uso"
 msgid "Estimated computation size"
 msgstr "Durata stimata del calcolo"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "Tempo dall'ultimo checkpoint"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Tempo CPU"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Tempo CPU da ultimo checkpoint"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Tempo trascorso"
@@ -2070,7 +2072,7 @@ msgstr "Dimensioni della memoria di lavoro"
 
 #: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
-msgstr "Cartella"
+msgstr "Directory"
 
 #: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
@@ -2097,8 +2099,8 @@ msgstr "al secondo"
 msgid "Executable"
 msgstr "Eseguibile"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Locale:"
 
@@ -2347,7 +2349,7 @@ msgstr "Discuti con gli amministratori e gli altri utenti sul forum di Einstein@
 
 #: clientgui/Localization.cpp:73
 msgid "Einstein status"
-msgstr "Stato di Einstein"
+msgstr "Status di Einstein"
 
 #: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
@@ -2455,205 +2457,193 @@ msgstr "Ricerca"
 
 #: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
-msgstr "Informati sui progetti ospitati nel World Community Grid"
-
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Avvio client"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Connessione al client in corso"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Recupero dello stato del sistema in corso; attendere per favore..."
+msgstr "Informati sui progetti ospitati dalla World Community Grid"
 
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Applicazione mancante"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Per favore scarica e installa l'applicazione CoRd da http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "alimentazione a batterie"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "il computer è in uso"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
-msgstr "Richiesta dell'utente"
+msgstr "richiesta dell'utente"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "limiti di orario"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "Benchmark della CPU in corso"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
-msgstr "È necessario più spazio su disco, controlla le preferenze"
+msgstr "È necessario più spazio su disco - controlla le preferenze"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "il computer non è in uso"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
-msgstr "Avvio del client"
+msgstr "avvio del client"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "un'applicazione è in esecuzione in modalità esclusiva"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "La CPU è occupata"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
-msgstr "Limite della banda di connessione della rete superato"
+msgstr "superato limite banda di connessione della rete"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "richiesta dal sistema operativo"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "motivo sconosciuto"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "Manca la GPU, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Nuovo"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Scaricamento fallito"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Scaricamento in corso"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
-msgstr "(sospesa -"
+msgstr " (sospesa - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Progetto sospeso dall'utente"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Elaborazione sospesa dall'utente"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
-msgstr "Sospesa -"
+msgstr "Sospesa - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
-msgstr "GPU sospesa -"
+msgstr "GPU sospesa - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "In attesa di più memoria libera"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "In attesa di memoria condivisa"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "In elaborazione"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
-msgstr "(non intensivo per la CPU)"
+msgstr " (non intensiva per la CPU)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "In attesa di esecuzione"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Pronto per l'elaborazione"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
-msgstr "Ritardata:"
+msgstr "Ritardato: "
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
-msgstr "Ritardata"
+msgstr "Ritardato"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "in attesa di accesso alla rete"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Errore di calcolo"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Invio non riuscito"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Invio in corso"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Annullato dall'utente"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Annullato dal progetto"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
-msgstr "Annullato: a causa della scadenza della workunit"
+msgstr "Annullato: per scadenza della workunit"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
-msgstr "Interrotto: limite elaborazioni disco superato"
+msgstr "Interrotto: superato limite WU su disco"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
-msgstr "Annullato: limite di elaborazione superato"
+msgstr "Annullato: superato limite workunit"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
-msgstr "Annullato: limite di memoria superato"
+msgstr "Annullato: superato limite utilizzo memoria"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Annullato"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Riconosciuto"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
-msgstr "Pronto per il report"
+msgstr "Pronto per l'invio"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Errore: stato non valido '%d'"
@@ -2664,7 +2654,7 @@ msgstr "Nessuna connessione Internet"
 
 #: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
-msgstr "Attiva una connessione Internet e riprova."
+msgstr "Apri una connessione Internet e riprova."
 
 #: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
@@ -2717,7 +2707,7 @@ msgstr "Per selezionare un progetto, clicca sul nome o digita il suo indirizzo s
 msgid "Categories:"
 msgstr "Categorie:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Progetti:"
 
@@ -2761,24 +2751,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Sei già connesso a questo progetto. Scegli un progetto diverso."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "In comunicazione con il progetto."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Comunicazione in corso con il progetto\nAttendere prego..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "I file richiesti non sono stati trovati sul server del progetto."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Si è verificato un errore interno del server."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Comunicazione col progetto in corso\nAttendere prego..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2837,7 +2824,7 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr "Il programma BOINC di World Community Grid non riesce a\ncomunicare su internet. Le principali ragioni sono:\n\n1) Problemi di connettività. Controlla la tua connessione di rete o\nla connessione del modem e poi riprova l'operazione.\n\n2) Il firewall sta bloccando il progetto BOINC World Community Grid. Devi configurare il tuo\nfirewall per permettere a BOINC di comunicare sulle porte 80 e 443.\nUna volta fatto questo, clicca su indietro e riprova.\n\n3) Stai usando un server pr [...]
+msgstr "Il programma BOINC di World Community Grid non riesce a\ncomunicare via internet. Le principali ragioni possono essere:\n\n1) Problemi di connettività. Controlla la tua connessione di rete o\nla connessione del modem e poi riprova l'operazione.\n\n2) Il firewall sta bloccando il progetto BOINC World Community Grid. Devi configurare il tuo\nfirewall per permettere a BOINC di comunicare sulle porte 80 e 443.\nUna volta fatto questo, clicca su indietro e riprova.\n\n3) Stai usando u [...]
 
 #: clientgui/ProxyInfoPage.cpp:203
 msgid ""
@@ -2876,1024 +2863,938 @@ msgstr "Rilevamento automatico"
 msgid "SOCKS proxy"
 msgstr "Proxy SOCKS"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Condizioni d'uso"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Interfaccia"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Leggi le condizioni d'uso che seguono:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Seleziona la grafica dell'interfaccia utente."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Accetto le condizioni d'uso."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Visualizzazione avanzata...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Non accetto le condizioni d'uso."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Visualizza l'interfaccia grafica avanzata di BOINC."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Progetto temporaneamente non disponibile"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Configura le opzioni dell'interfaccia grafica e del proxy"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Il Progetto è temporaneamente non disponibile.\n\nSi prega di riprovare più tardi."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Visualizza i messaggi di diagnostica del client."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Account manager temporaneamente non disponibile"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "L'account manager non è temporaneamente disponibile.\n\nSi prega di riprovare più tardi."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Predefinito"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Inserire la chiave di accesso per proseguire."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Sospendi"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Chiave di accesso non valida; inserire una chiave di accesso valida"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Sospendi l'elaborazione"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Conflitto di validazione"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Riprendi l'elaborazione"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Specificare un indirizzo email"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Avvisi"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Indirizzo email non valido; inserire un indirizzo email valido"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Apri una finestra per visualizzare gli avvisi dei progetti e del sistema BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "URL mancante"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Ottieni aiuto con %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Specificare un URL.\nPer esempio:\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Scaricamento notizie; attendere prego..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "URL non valido"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Non ci sono avvisi al momento"
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Specificare un URL valido.\nPer esempio:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Chiudi"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' non contiene un nome di computer valido."
+msgid "%s - Notices"
+msgstr "Avvisi di %s"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' non contiene un percorso valido."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Comandi"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Copia tutti i messaggi"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Copia i messaggi selezionati"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Mostra solo questo progetto"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Mostra solamente i messaggi del progetto selezionato."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Messaggi"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Copia di tutti i messaggi negli appunti in corso..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Copia di tutti i messaggi selezionati negli appunti in corso..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtraggio dei messaggi in corso..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Mostra tutti i messaggi"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Mostra i messaggi di tutti i progetti."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Per impostazioni aggiuntive, seleziona Preferenze di elaborazione nella Visuale avanzata."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Scaricamento notizie; attendere prego..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB di spazio su disco"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Non ci sono avvisi al momento"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Preferenze di elaborazione"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Avvisi"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Cancellare tutte le preferenze locali e utilizzare le preferenze web?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Aggiorna"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
-msgstr "Riporta il lavoro completato, aggiorna il totale dei crediti e le preferenze, e possibilmente ottiene altro lavoro."
-
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Sospendi"
+msgstr "Invio WU completate, aggiornamento totale crediti e preferenze, richiesta nuove WU."
 
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
-msgstr "Sospendi il lavoro per questo progetto."
+msgstr "Sospendi elaborazioni di questo progetto."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
-msgstr "Blocca la richiesta di lavoro"
+msgstr "Blocca richiesta WU"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
-msgstr "Non scaricare nuovo lavoro per questo progetto."
+msgstr "Non scaricare nuove WU per questo progetto."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Reset del progetto"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
-msgstr "Cancella tutti i file e le elaborazioni associate a questo progetto e scarica nuovo lavoro.  Puoi aggiornare il progetto prima di eseguire il reset per riportare le elaborazioni già completate."
+msgstr "Cancella tutti i file e le elaborazioni associate a questo progetto e scarica nuove WU.  Puoi aggiornare il progetto prima di eseguire il reset per inviare le elaborazioni completate."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
-msgstr "Rimuovi questo progetto dal computer.  Il lavoro in corso andrà perso (usa prima 'Aggiorna' per inviare il lavoro già completato)."
+msgstr "Rimuovi questo progetto dal computer.  Le elaborazioni in corso andranno perse (usa prima 'Aggiorna' per inviare le WU già completate)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Proprietà"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Visualizza i dettagli del progetto."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Account"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Crediti totali"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Media dei crediti"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Stato"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Progetti"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Aggiornamento del progetto in corso..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Riavvio del progetto in corso..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Sospensione del progetto in corso..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Riprendi le elaborazioni di questo progetto."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Comunicazione con il progetto per abilitare lo scaricamento di ulteriore lavoro in corso..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Abilita richiesta WU"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Comunicazione con il progetto per non ottenere ulteriore lavoro in corso..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Permetti a questo progetto di richiedere nuove working unit."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Reset del progetto in corso..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Non richiedere nuove working unit per questo progetto."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Vuoi davvero fare il reset del progetto '%s'?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Reset del progetto"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Rimozione del progetto in corso..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Vuoi davvero rimuovere il progetto '%s'?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Disconnettiti dal progetto"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Avvio del browser in corso..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Aggiungi un progetto"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Riprendi il lavoro per questo progetto."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Sincronizza"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Abilita richiesta workunit"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Lavoro svolto per questo progetto"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Permetti a questo progetto di richiedere nuove workunit."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Diventa volontario in uno dei oltre 30 progetti delle varie aree scientifiche"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Non richiedere nuove workunit per questo progetto."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Sincronizza i progetti con il sistema dell'account manager"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Richiesto dall'utente"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Seleziona un progetto a cui accedere mediantei i controlli sottostanti..."
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "Per ottenere lavoro"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Siti web del progetto"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "Per riportare attività completate"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Comandi del progetto"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Per mandare un messaggio istantaneo al server"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Apri una finestra con i siti web del progetto %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Richiesto dall'account manager"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Apri una finestra di menù dei comandi da applicare al progetto %s"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Inizializzazione del progetto"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Mostra la grafica"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Richiesto dal progetto"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Mostra la grafica dell'applicazione in una finestra."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Motivo sconosciuto"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Sospendi elaborazione."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Sospeso dall'utente"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Annulla"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Non richiedere nuovo lavoro"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Cancella quest'elaborazione. Non otterrai crediti."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Progetto concluso. È possibile rimuoverlo senza conseguenze."
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Visualizza i dettagli dell'elaborazione."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Rimuovi il progetto al termine dell'elaborazione"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Riprendi l'elaborazione selezionata."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Richiesta allo scheduler in attesa"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Sospendi l'elaborazione selezionata."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Richiesta allo scheduler in corso"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Sei sicuro di voler annullare l'elaborazione di '%s'?\n(Avanzamento: %.1lf%%, Stato: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Attesa su messaggio trickle"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Annulla l'elaborazione"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Comunicazione rimandata"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Non sei connesso ad alcun progetto.  Prima connettiti ad un progetto."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Totale dello spazio del disco utilizzato"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Non disponibile"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Spazio del disco utilizzato dai progetti BOINC"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Elaborazioni:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "Nessun progetto: 0 bytes utlizzati"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Seleziona un'elaborazione alla quale accedere"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "usato da BOINC:"
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Da:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "libero, utilizzabile da BOINC:"
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Avanzamento dell'attività"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "libero, non utilizzabile da BOINC:"
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Comandi dell'attività"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "libero:"
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Apri una finestra di menù dei comandi da mandare a questo lavoro"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "utilizzato da altri programmi:"
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Applicazione: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Totale utente"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Media dell'utente"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Applicazione: Non disponibile"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Totale del computer"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Non disponibile"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Media del computer"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Trascorso: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Ultimo aggiornamento: %.0f giorni fa"
+msgid "Remaining (estimated): %s"
+msgstr "Tempo mancante: %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Mostra il totale dell'utente"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Stato: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Mostra i crediti totali dell'utente"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Ricezione dello stato corrente in corso."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Mostra la media dell'utente"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Scaricamento delle workunit dal server in corso."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Mostra la media dei crediti dell'utente"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Elaborazione sospesa: alimentazione a batterie."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Mostra il totale del computer"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Elaborazione sospesa: l'utente è attivo."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Mostra i crediti totali del computer"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Elaborazione sospesa: l'utente ha sospeso l'elaborazione."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Mostra la media del computer"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Elaborazione sospesa: superati i limiti di orario."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Mostra la media dei crediti del computer"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Elaborazione sospesa: esecuzione dei benchmark."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< Progetto &precedente"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Elaborazione sospesa: necessario più spazio su disco"
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Mostra il grafico per il progetto precedente"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Elaborazione sospesa."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "Progetto &successivo >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "In attesa di contattare i server dei progetti."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Mostra il grafico per il progetto successivo"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Ricezione dello stato corrente in corso"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Nascondi la lista dei progetti"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Nessuna WU disponibile da elaborare"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Utilizza l'intera area per i grafici"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Impossibile connettersi al client BOINC"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Tipo di visualizzazione"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Condizioni d'uso"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Un progetto alla volta"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Leggi le condizioni d'uso che seguono:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Mostra il grafico del progetto selezionato"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Accetto le condizioni d'uso."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Tutti i progetti (separatamente)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Non accetto le condizioni d'uso."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Mostra tutti i progetti; un grafico per ogni progetto"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Progetto temporaneamente non disponibile"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Tutti i progetti (insieme)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Il Progetto è temporaneamente non disponibile.\n\nSi prega di riprovare più tardi."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Mostra tutti i progetti in un unico grafico"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Account manager temporaneamente non disponibile"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Tutti i progetti (sommati)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "L'account manager non è temporaneamente disponibile.\n\nSi prega di riprovare più tardi."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Mostra la somma dei progetti in un unico grafico"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Inserire la chiave di accesso per proseguire."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Statistiche"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Chiave di accesso non valida; inserire una chiave di accesso valida"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Aggiornamento dei grafici in corso..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Conflitto di validazione"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Mostra la lista dei progetti"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Specificare un indirizzo email"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Utilizza un'area minore per i grafici"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Indirizzo email non valido; inserire un indirizzo email valido"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Ritenta il trasferimento"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "URL mancante"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Riprova il trasferimento del file ora"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Specificare un URL.\nPer esempio:\nhttp://www.example.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Annulla il trasferimento"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "URL non valido"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Annulla il trasferimento di questo file.  Non otterrai crediti per il lavoro."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Specificare un URL valido.\nPer esempio:\nhttp://boincproject.example.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "File"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' non contiene un nome di computer valido."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Avanzamento"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' non contiene un percorso valido."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Dimensione"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Comandi"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Tempo"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Copia tutti i messaggi"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Velocità"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Copia i messaggi selezionati"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Trasferimenti"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Mostra solo questo progetto"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "L'attività di rete è sospesa -"
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Mostra solamente i messaggi del progetto selezionato."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nPuoi attivarlo utlizzando il menù Attività"
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Messaggi"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Copia di tutti i messaggi negli appunti in corso..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Tentativo di trasferimento in corso..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Copia di tutti i messaggi selezionati negli appunti in corso..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Interruzione del trasferimento in corso..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtraggio dei messaggi in corso..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Sei sicuro di voler annullare il trasferimento di '%s'?\nNOTA: Annullando il trasferimento, invaliderai l'elaborazione e\nnon otterrai i relativi crediti."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Mostra tutti i messaggi"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Annulla il trasferimento del file"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Mostra i messaggi di tutti i progetti."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Invio"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Account"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Ricezione"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Crediti totali"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "Riprova tra "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Media dei crediti"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "fallito"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Stato"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "sospeso"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Progetti"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "attivo"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Richiesto dall'utente"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "in attesa"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Per ottenere lavoro"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr "(rinvio causa progetto: "
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Per inviare le WU completate"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Mostra le elaborazioni in corso"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Per mandare un messaggio trickle al server"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Mostra solo le elaborazioni in corso."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Richiesto dall'account manager"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Mostra la grafica"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Inizializzazione del progetto"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Mostra la grafica dell'applicazione in una finestra."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Richiesto dal progetto"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Mostra la Console VM"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Motivo sconosciuto"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Mostra la console VM in una finestra."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Sospeso dall'utente"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Sospende l'elaborazione selezionata."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Non richiedere nuove WU"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Annulla"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Progetto concluso. È possibile rimuoverlo senza conseguenze."
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Abbandona l'elaborazione selezionata. Non otterrai crediti."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Rimuovi il progetto al termine dell'elaborazione"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Visualizza i dettagli dell'elaborazione."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Richiesta allo scheduler in attesa"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Tempo mancante (stimato)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Richiesta allo scheduler in corso"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Scadenza"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Messaggio trickle in attesa"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Elaborazioni"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Comunicazione rimandata"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Avvio dell'elaborazione..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Totale dello spazio del disco utilizzato"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Sospensione dell'elaborazione..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Spazio del disco utilizzato dai progetti BOINC"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Mostra la grafica dell'applicazione..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "Nessun progetto: 0 byte utlizzati"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Mostra la console VM per il lavoro..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "usato da BOINC:"
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Sei sicuro di voler annullare l'elaborazione di '%s'?\n(Avanzamento: %s, Stato: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "libero, utilizzabile da BOINC:"
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Sei sicuro di voler annullare queste %d elaborazioni?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "libero, non utilizzabile da BOINC:"
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Annulla l'elaborazione"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "libero:"
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Interruzione del lavoro in corso..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "utilizzato da altri programmi:"
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Mostra tutte le elaborazioni"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Totale utente"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Mostra tutte le elaborazioni."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Media dell'utente"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Riprendi l'elaborazione selezionata."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Totale del computer"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Sospendi l'elaborazione selezionata."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Media del computer"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Sei certo di voler annullare?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Ultimo aggiornamento: %.0f giorni fa"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Domanda"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Mostra il totale dell'utente"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Servizi"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Mostra i crediti totali dell'utente"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "Nascondi %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Mostra la media dell'utente"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Nascondi gli altri"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Mostra la media dei crediti dell'utente"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Mostra tutti"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Mostra il totale del computer"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Esci da %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Mostra i crediti totali del computer"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Interfaccia"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Mostra la media del computer"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Seleziona la grafica dell'interfaccia utente."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Mostra la media dei crediti del computer"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Visualizzazione avanzata...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< Progetto &precedente"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Visualizza l'interfaccia grafica avanzata di BOINC."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Mostra il grafico per il progetto precedente"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Configura le opzioni dell'interfaccia grafica e del proxy"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "Progetto &successivo >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Visualizza i messaggi di diagnostica del client."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Mostra il grafico per il progetto successivo"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Nascondi la lista dei progetti"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Predefinito"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Utilizza l'intera area per i grafici"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Sospendi l'elaborazione"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Tipo di visualizzazione"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Riprendi l'elaborazione"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Un progetto alla volta"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Apri una finestra per visualizzare gli avvisi dei progetti e del sistema BOINC"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Mostra il grafico del progetto selezionato"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Ottieni aiuto con %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Tutti i progetti (separatamente)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Chiudi"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Mostra tutti i progetti; un grafico per ogni progetto"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "Avvisi di %s"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Tutti i progetti (insieme)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Per impostazioni aggiuntive, seleziona Preferenze di elaborazione nella Vista avanzata."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Mostra tutti i progetti in un unico grafico"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "GB di spazio su disco"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Tutti i progetti (sommati)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - Preferenze di elaborazione"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Mostra la somma dei progetti in un unico grafico"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Cancellare tutte le preferenze locali e utilizzare le preferenze web?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statistiche"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Aggiungi un progetto"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Mostra la lista dei progetti"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Sincronizza"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Utilizza un'area minore per i grafici"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Lavoro svolto per questo progetto"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Ritenta il trasferimento"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Diventa volontario in uno dei oltre 30 progetti delle varie aree scientifiche"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Riprova il trasferimento del file ora"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Sincronizza i progetti con il sistema dell'account manager"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Annulla il trasferimento"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Seleziona un progetto a cui accedere mediantei i controlli sottostanti..."
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Annulla il trasferimento di questo file.  Non otterrai crediti per il lavoro."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Siti web del progetto"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "File"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Comandi del progetto"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Avanzamento"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Apri una finestra con i siti web del progetto %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Dimensione"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Apri una finestra di menù dei comandi da applicare al progetto %s"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Tempo"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Sospendi questo lavoro."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Velocità"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Abbandona questa elaborazione. Non otterrai crediti."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Trasferimenti"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Sei sicuro di voler annullare l'elaborazione di '%s'?\n(Avanzamento: %.1lf%%, Stato: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "L'attività di rete è sospesa -"
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Non sei connesso ad alcun progetto.  Prima connettiti ad un progetto."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nPuoi attivarlo utlizzando il menù Attività"
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Non disponibile"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Elaborazioni:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Sei sicuro di voler annullare il trasferimento di '%s'?\nNOTA: Annullando il trasferimento, invaliderai l'elaborazione e\nnon otterrai i relativi crediti."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Seleziona un'attività alla quale acccedere"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Annulla il trasferimento del file"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "Da:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Invio"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Avanzamento di questa attività"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Ricezione"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Comandi dell'attività"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "Riprova tra "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Apri una finestra di menù dei comandi da applicare a questo lavoro"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "fallito"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Applicazione: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "sospeso"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "attivo"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Applicazione: Non disponibile"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "in attesa"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Non disponibile"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr "(rinvio causa progetto: "
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Trascorso: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Mostra le elaborazioni in corso"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Tempo mancante: %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Mostra solo le elaborazioni in corso."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Stato: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Mostra la Console VM"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Ricezione dello stato corrente in corso."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Mostra la console VM in una finestra."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Scaricamento delle workunit dal server in corso."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Sospende l'elaborazione selezionata."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Elaborazione sospesa: alimentazione a batterie."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Abbandona l'elaborazione selezionata. Non otterrai crediti."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Elaborazione sospesa: l'utente è attivo."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Tempo mancante (stimato)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Elaborazione sospesa: l'utente ha sospeso l'elaborazione."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Scadenza"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Elaborazione sospesa: superati i limiti di orario."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Elaborazioni"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Elaborazione sospesa: esecuzione dei benchmark."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Sei sicuro di voler annullare l'elaborazione di '%s'?\n(Avanzamento: %s, Stato: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Elaborazione sospesa."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Sei sicuro di voler annullare queste %d elaborazioni?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "In attesa di contattare i server dei progetti."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Mostra tutte le elaborazioni"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Ricezione dello stato corrente in corso"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Mostra tutte le elaborazioni."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Nessuna WU disponibile da elaborare"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Sei certo di voler annullare?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Impossibile connettersi al client BOINC"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Domanda"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3907,11 +3808,24 @@ msgstr "< &Indietro"
 msgid "&Finish"
 msgstr "&Fine"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "In questo giorno della settimana, elabora solo durante queste ore."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Servizi"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Nascondi %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Nascondi gli altri"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Mostra tutti"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "In questo giorno della settimana, trasferisci file solo durante queste ore."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Esci da %s"
diff --git a/locale/it_IT/BOINC-Project-Generic.po b/locale/it_IT/BOINC-Project-Generic.po
deleted file mode 100644
index 54beb4c..0000000
--- a/locale/it_IT/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6515 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Daniele Nasuti <daniele.nasuti at gmail.com>, 2015
-# Daniele Nasuti <daniele.nasuti at gmail.com>, 2015
-# Gianfranco Costamagna <costamagnagianfranco at yahoo.it>, 2015
-# Sebastiano Pistore <olatusrooc at virgilio.it>, 2015-2016
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-04-14 08:05+0000\n"
-"Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
-"Language-Team: Italian (Italy) (http://www.transifex.com/boinc/boinc/language/it_IT/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: it_IT\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Italiano"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Italian"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Codice d'invito"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "E' necessario un codice d'invito valido per poter creare un account."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Nome"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identificati sul nostro sito. Usa il tuo nome reale oppure un alias."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Email"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Devi inserire un indirizzo email valido nella forma 'nome at dominio'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Password"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Deve essere di almeno %1 caratteri"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Conferma la password"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Stato"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Seleziona la nazione che vuoi rappresentare, se lo desideri."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "CAP"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Dati facoltativi"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Crea un account"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Indirizzo E-mail:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "hai dimenticato l'indirizzo mail?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Chiave d'accesso"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "hai dimenticato la password?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Rimani autenticato"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Entra"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Testo in grassetto: [b]testo[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Testo in corsivo: [i]testo[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Testo sottolineato: [u]testo[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "testo con Strikethrough: [s]testo[/s] (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Testo citato: [quote]testo[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Mostra codice: [code]codice[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]testo[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Lista ordinata: [list=]testo[/list] (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Inserisci immagine: [img]http://url_immagine[/img] (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Inserisci link: [url]http://link[/url] oppure [url=http://linkl]testo[/url] (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Colore del carattere"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Colore del carattere: [color=red]testo[/color] Suggerimento: puoi anche definire un colore personalizzato nella forma color=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Predefinito"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Rosso scuro"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Rosso"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Arancione"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Marrone"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Giallo"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Verde"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Verde oliva"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Blu ciano"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Blu"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Blu scuro"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indaco"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Viola"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Dimensione del carattere"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Dimensione del carattere: [size=x-small]testo piccolo[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Piccolo"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normale"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Grande"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Chiudi tutti i tag bbCode aperti"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Chiudi tutti i tag"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Prima i più vecchi"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Prima i più recenti"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Prima i messaggi più votati"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Prima i messaggi più recenti"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Prima i più visualizzati"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Prima le discussioni con più messaggi"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Moderatore volontario"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Amministratore del progetto"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Sviluppatore del progetto"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Tester del progetto"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Sviluppatore volontario"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Tester volontario"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Scienziato del progetto"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Esperto di helpdesk"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Cerca delle parole nei messaggi del forum"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Cerca nel forum"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Ricerca avanzata"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Messaggi privati"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Domande e risposte"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Indice del forum"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "Forum di %1"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Precedente"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Successivo"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Autore"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Messaggio"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Spedisci il messaggio"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Spedisci %1 un messaggio privato"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Iscritto: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Messaggi: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Crediti: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Non hai ancora letto questo messaggio"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Non letto"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Messaggio %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "nascosto"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Messaggi: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr "- in risposta a"
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Modifica"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Modifica questo messaggio"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Ultima modifica: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Questo messaggio non è mostrato perché l'autore è nella tua lista 'ignorati'.  Clicca %1qui%2 per vedere questo messaggio"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Segnale questo messaggio come offensivo."
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Segnala come offensivo"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Valutazione: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "valutazione:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Clicca se ti piace questo messaggio"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Valuta +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Clicca se non ti piace questo messaggio"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Valuta -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Rispondi"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Replica a questo messaggio"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Cita"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Replica a questo messaggio citandolo"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Nascosto da un moderatore"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Inviato %1 da %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Non puoi inviare o valutare messaggi fino al %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> I messaggi devono essere adatti ai bambini: non devono avere\n            contenuti osceni, violenti,\n            sessuali né allusivi né espliciti.\n        <li> E' vietata la pubblicità.\n        <li> Sono vietati i link verso siti che comprendono contenuti sessuali,\n            gioco d'azzardo o intolleranza verso altri.\n        <li> Sono vietati i messaggi tesi a dar fastidio o  provocare altre persone,\n            o a confondere una discussio [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Regole:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Maggiori informazioni"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Rendi visibile"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Rendi visibile questo messaggio"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Nascondi"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Nascondi questo messaggio"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Sposta"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Sposta questo argomento in un'altra discussione"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Banna l'autore"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Vota per bannare l'utente"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Vota per non bannare l'utente"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Inizia la votazione per bannare l'utente"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Cancella"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Cancella questo messaggio"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Solo i membri del team possono inviare messaggi al forum del team"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Per creare un nuovo argomento su %1 devi avere un certo numero di crediti. Questa precauzione è stata inserita per prevenire e proteggere da qualsiasi abuso del sistema."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Ora non puoi aprire altri argomenti. Riprova più tardi. Questa precauzione è stata inserita per proteggere il sistema da eventuali abusi."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Questa discussione è bloccata. Solo i moderatori e gli amministratori possono scrivere qui."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Non posso scrivere in un thread nascosto."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Argomento"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Messaggi"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Visite"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Ultimo messaggio"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Nuovi messa nella discussione %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Nuovi messaggi in discussioni alla quali sei iscritto"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Ci sono nuovi messaggi nella discussione '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Segna tutti gli argomenti come letti"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Segna tutte le discussioni nel forum come lette."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Nessun host"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Non disponibile"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Homepage"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Lavoro"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "Scuola"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Aggiorna"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Informazioni sul computer"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "Indirizzo IP"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(uguale alle ultime %1 volte)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Indirizzo IP esterno"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Visualizza indirizzo IP"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Nome dominio"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Nome prodotto"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Ora locale"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "ore UTC %1"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Proprietario"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anonimo"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Creato"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Crediti totali"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Credito medio"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Crediti su tutti i progetti"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "tipo di CPU"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Numero di processori"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Coprocessori"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Sistema Operativo"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "versione BOINC"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Memoria"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Spazio di swap"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Spazio totale su disco"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Spazio Libero su Disco"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Velocità misurata in calcoli in virgola mobile"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 milioni di operazioni/sec"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Velocità calcoli interi"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Velocità media di upload"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Sconosciuto"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Velocità media di download"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Tempo medio di completamento"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 giorni"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Dettagli dell'applicazione"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Visualizza:"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Elaborazioni"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Numero di volte che BOINC ha contattato il server"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Ultima volta in cui è stato contattato il server"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Frazione di tempo nel quale BOINC è in uso"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Quando BOINC è attivo, frazione di tempo che il computer ha una connessione Internet"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Mentre BOINC è attivo, percentuale di lavoro nel quale l'elaborazione è permessa"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Mentre BOINC è attivo, frazione del tempo GPU nella quale l'elaborazione è permessa"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Efficienza media CPU"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Fattore di correzione della durata del lavoro"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Luogo"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Cancella questo computer"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Unisci risultati multipli di questo computer"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Unisci"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Ultimo contatto"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informazioni computer"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Posizione"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Media dei crediti"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Media dei crediti recenti"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Sistema operativo"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 processori)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Dettagli"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Statistiche di tutti i progetti:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "L'host %1 ha un tempo di sovrapposizione:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "L'Host %1 ha un SO incompatibile:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "L'host %1 ha una CPU incompatibile:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "stesso host"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Non posso unire l'host %1 con %2 - sono incompatibili"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Unione host %1 con host %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Non posso aggiornare il credito dei nuovi computer"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Non posso aggiornare i risultati"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Non posso ritirare un vecchio computer"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Ritirato il vecchio computer %1"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Visualizza:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Tutti i computer"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Solo i computer attivi negli ultimi 30 giorni"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "ID Computer"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "versione <br>BOINC"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Unisci i computer dal nome"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Browser predefinito"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Commenta"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Puoi ricevere le news con un %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Leggi"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Scrivi"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Spedisci un messaggio privato"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Anteprima"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "nessun messaggio"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Per"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "ID o nomi degli utenti separati da virgole"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Oggetto"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Spedisci il messaggio"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "ti ho mandato un messaggio privato; titolo:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Messaggio privato%1 da %2, titolo:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Non in grado di scrivere il messaggio"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Non sei autorizzato ad inviare messaggi privati così spesso. Per favore aspetta qualche minuto prima di inviarne degli altri."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "non letto"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Per ricevere le notifiche via mail, %1modifica le preferenze della comunità%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Messaggi privati"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Limiti di utilizzo"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Usa al massimo"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Mantieni una parte di CPU disponibile per le altre applicazioni. Esempio 75% significa usa 6 core in una CPU ad 8 core."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% delle CPU"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Sospendi/riprendi l'elaborazione ogni x secondi per ridurre la temperatura della CPU e l'utilizzo di energia. Esempio: 75% significa elaborazione per 3 secondi, pausa per 1 secondo, e poi ripeti."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% del tempo della CPU"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Quando sospendere"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Sospendere quando il computer è alimentato da batteria"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Spunta questa voce per sospendere l'elaborazione su portatili quando si è alimentati a batteria."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Sospendere quando il computer è 'in uso'"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Spunta questa voce se vuoi sospendere l'elaborazione e il trasferimento di files quando stai utilizzando il computer."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Sospendi l'elaborazione GPU quando il computer è 'in uso'"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Spunta questa voce per sospendere l'elaborazione GPU quando stai usando il computer."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "\"In uso\" significa che il mouse o la tastiera sono stati usati negli ultimi"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Questo determina quando il computer è considerato 'in uso'."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minuti"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Sospendi quando non c'è attività mouse/tastiera in corso"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Permette ad alcuni computer di entrare in modalità risparmio energetico quando non sono 'in uso'."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Sospendi quando l'utilizzo CPU da parte di applicazioni non-BOINC è superiore a"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Sospendi l'elaborazione quando il tuo computer è occupato da altre applicazioni."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Calcolare solo tra"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Elabora solo durante una particolare finestra temporale ogni giorno."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Altro"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Memorizzare almeno"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Archivia sufficienti elaborazioni da mantenere il computer occupato per almeno questo tempo."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "giorni di lavoro"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Memorizzare fino ad un ulteriore"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Archivia elaborazioni addizionali sopra la soglia minima. Determina quanto lavoro è richiesto quando si contatta un progetto."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Cambia elaborazione ogni"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Se elabori per diversi progetti, BOINC potrebbe fare lo switch tra i progetti in base a questo tempo."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Richiedi alle elaborazioni di fare un checkpoint al massimo ogni"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Questo controlla ogni quanto le elaborazioni devono salvare il loro stato su disco, cosicché possano essere riavviate più tardi."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "secondi"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Utilizzare non più di"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Limita l'utilizzo totale del disco utilizzato da BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Lascia come minimo"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Limita l'utilizzo del disco per lasciare questo spazio libero nel luogo dove BOINC salva i dati."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB liberi"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Limita la percentuale di spazio disco utilizzato da BOINC nel luogo dove salva i dati."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% di spazio totale su disco"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Quando il computer è 'in uso', utilizza al massimo"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Limita la memoria utilizzata da BOINC quando stai utilizzando il computer."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Quando il computer non è 'in uso', utilizza al massimo"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Limita la memoria utilizzata da BOINC quando non stai utilizzando il computer."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Lascia le elaborazioni non-GPU in memoria quando sospese"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Quando selezionata, le elaborazioni sospese rimangono in memoria, e riprendono senza lavoro perso. Se non selezionata, le elaborazioni sospese sono rimosse dalla memoria, e l'elaborazione riprende dall'ultimo checkpoint."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "File di swap: utilizza al massimo"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Limita lo spazio di swap (file di paging) utilizzato da BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Limite di download rate a"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Limita la velocità di download per i trasferimenti dei file."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/secondo"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Limite di upload a "
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Limita la velocità di upload per i trasferimenti dei file."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Limite di utilizzo per"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Esempio: BOINC può trasferire al massimo 2000 MB di dati ogni 30 giorni."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB ogni"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "giorni"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Trasferisci files solo nell'intervallo"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Trasferisci files solo durante una certa finestra temporale del giorno."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Salta la verifica dei dati per le immagini"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Spunta questa voce solo se il tuo provider Internet modifica i file immagine. Saltare la verifica riduce la sicurezza di BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Conferma prima di connettersi ad Internet"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Utile solo se si possiede una connessione modem, ISDN oppure VPN."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Disconnetti al termine delle operazioni"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Computazione"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disco"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Rete"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Queste preferenze si applicano a tutti i progetti BOINC ai quali partecipi."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Impossibile aggiornare le preferenze.%2 I valori segnati in rosso sono fuori dall'intervallo consentito o non sono numerici."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "elaborazione"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Preferenze separate per %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Modifica le Preferenze"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Rimuovi"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Aggiungi le preferenze separate per %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Queste impostazioni si applicano a tutti i computer con questo account tranne"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "computer dove hai selezionato preferenze locali utilizzando il BOINC Manager"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Dispositivi Android"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Cambia Visuale)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Preferenze combinate"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Impostazioni principali (predefinite)"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Ultima modifica delle preferenze:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Aggiungi le preferenze"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Aggiorna le preferenze"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "sì"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "no"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Posizione del computer predefinita"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "I nuovi computer utilizzeranno questo luogo per le preferenze di elaborazione e dei progetti."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Allocazione risorse"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Determina la proporzione delle risorse allocate del tuo computer a questo progetto. Ad esempio, se participi a due progetti BOINC con uno share di risorse di 100 e 200, il primo avrà 1/3 delle tue risorse, mentre il secondo avrà 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accelerare le applicazioni GPU dedicando a ciascuna una CPU?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Usa la CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Utilizzare GPU ATI"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Utilizzare GPU NVIDIA"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Utilizzare Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Avviare le applicazioni di test?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Questo ci aiuta a sviluppare applicazioni, ma potrebbe causare elaborazioni fallite sul tuo computer"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Verranno mandate email da %1; accertati che il tuo filtro di spam accetti questo indirizzo. "
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Sei d'accordo che %1 ed il tuo team (se ne hai uno) possano inviarti email?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1 può mostrare i tuoi computer sul suo sito web?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Cambia Visuale)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Impostazioni specifiche per il progetto"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "sede non valida: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "sottoclasse non valida: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "e"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Il tuo profile verrà reso visibile agli altri utenti non appena viene approvato dal progetto. Questo potrebbe richiedere alcuni giorni."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Il tuo profilo è stato considerato inacettabile. Non è visibile agli altri utenti. Per favore modificalo."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Errore del database"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Per evitare lo spam, i profili degli utenti con un credito medio inferiore a %1 vengono mostrati solo agli utenti connessi. Ci scusiamo per questo inconveniente."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "L'utente è stato bannato."
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Non esiste alcun profilo con questo ID utente."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Modifica il tuo profilo"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Feedback ricevuti dal tuo profilo"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Raccomanda questo profilo come Utente del Giorno:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Questo profilo %1mi piace%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Avvisa gli amministratori del profilo offensivo:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Questo profilo %1non mi piace%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Piattaforma anonima"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "GPU Intel"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Non è nel DB"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "non assegnato"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Tutti"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "In corso"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Validazione in attesa"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Validazione inconclusiva"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Valido"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Invalido"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Errore"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Non attivo"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Non inviato"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Completato, in attesa di validazione"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Completato e validato"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Completato, indicato come non valido"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Completato, impossibile da validare"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Completato, validazione inconclusiva"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Completato, troppo tardi per validarlo"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Completato"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Non poteva essere inviato"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Cancellato dal server"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Non partito a causa della scadenza - cancellato"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Errore durante lo scaricamento"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Errore durante l'elaborazione"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Errore durante l'invio dei dati"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Interrotto dall'utente"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Invio fallito"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Scaduto - nessuna risposta"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Non era necessario"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Errore di validazione"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Abbandonato"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Terminato"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Successo"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Errore di elaborazione"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Risultato ridondante"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Nessuna risposta"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nuovo"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Scaricamento in corso"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "In elaborazione"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Errore di computazione"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Invio dati"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Finito"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Inizio"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Non necessario"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Errore nell'attività - il controllo è stato ignorato"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Controllato, ma ancora non approvato"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Il lavoro è stato riportato troppo tardi per la validazione"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Non posso mandare il risultato"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Troppi errori (potrebbe avere problemi)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Troppi risultati (può essere non deterministico)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Troppi risultati totali"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Workunit cancellata"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Il risultato canonico è mancante."
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Errore non riconosciuto: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Nome della workunit"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "clicca per i dettagli"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Mostra gli ID"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Visualizza nomi"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Attività"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Work unit"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Computer"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Inviato"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Tempo riportato<br />o scadenza"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "spiega"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Stato"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Tempo di elaborazione<br />(sec)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "Tempo CPU<br/>(sec)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Crediti"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Applicazione"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Lavoro"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Scadenza"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Ricevuto"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Stato server"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Risultato"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Stato client"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Stato di uscita"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Tempo di elaborazione"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "Tempo CPU"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Stato di validazione"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Picco di FLOPS del dispositivo"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Versione dell'applicazione"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "File di output"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Output su Stderr"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Stato"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Nome del lavoro:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Criteri di ricerca (usane uno o più di uno)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Parole chiave"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Trova i team che hanno queste parole nel loro nome o nella loro descrizione"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Tipo di team"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Mostra solo i team attivi"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Cerca"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Richiesto da te, e il fondatore non ha risposto entro il tempo limite."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Completa il trasferimento del fondatore"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Richiesto da te"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "il limite massimo per una risposta del fondatore è %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Nessuno"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Avvia la richiesta"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Rinviato"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Informazioni sul team"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Descrizione"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Sito web"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Statistiche di tutti i progetti"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Tipo"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Forum"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Argomenti"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Unisciti a questo team"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Nota: se nelle tue preferenze del progetto la voce 'OK alle email' è spuntata, unendosi al team, si dà il consenso al fondatore ad inviare messaggi al tuo indirizzo di posta elettronica."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Non accetta nuovi membri"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Richiesta di cambio del fondatore"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Risposta di %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Cambio di fondatore del team"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Membri"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Fondatore"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Amministratori"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Nuovi membri nell'ultimo giorno"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Totale dei membri"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "visualizza"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Membri attivi"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Membri con credito"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Amministratore"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Precedente %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Successivi %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Nessun team."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Per fare questa operazione devi essere il fondatore."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Per fare questa operazione devi avere i privilegi da amministratore"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "ATTENZIONE: questo è un grosso team di BOINC. Se fai delle modifiche qui, saranno presto sovrascritte. Modifica al suo posto il %1BOINC-wide team%2."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Nota sulla privacy%2: se hai intenzione di creare un team, le preferenze del tuo progetto (allocazione delle risorse, preferenze grafiche) saranno visibili a tutti."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Nome del team, versione testuale"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Non usare i tag HTML."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Nome del team, versione HTML"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Puoi usare %1un numero limitato di tag HTML%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Se non conosci l'HTML, lascia questo campo vuoto."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL del sito web del gruppo, se esiste"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "senza \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Questo indirizzo sarà linkato nella pagina del team su questo sito."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Descrizione del team"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Accetare nuovi membri?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Profilo utente"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Progetti a cui stai partecipando"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Progetti in cui %1 sta partecipando"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Progetto"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Clicca qui per la pagina dell'utente"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Membro dal"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Elaborazioni e crediti"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Computer di questo account"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Visualizza"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "ID su tutti i progetti (CPID)"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Statistiche di tutti i progetti"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Account"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Team"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Inter-progetto"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certificato"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Statistiche sul tuo telefono cellulare"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Informazioni sull'account"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "E-mail"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Codice postale"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "membro dal %1"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Cambia"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "e-mail"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "password"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "altre informazioni sull'account"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "ID dell'utente"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Usato nel forum"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Chiave di accesso"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Preferenze"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Quando e come usi BOINC sul tuo computer"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Preferenze di elaborazione"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Forum e messaggi privati"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferenze per la comunità"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Preferenze per questo progetto"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "Preferenze per %1"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Mostra il profilo di %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profilo"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Comunità"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Crea"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 messaggi"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Notifiche"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Abbandona il team"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Amministra"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(richiesta per cambio del fondatore in corso)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Membro del team"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "trova un team"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Fondatore ma non membro di"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Trova degli amici"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Amici"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Computer"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Donatore"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Contatta"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Questa persona è un amico"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Cancella l'amicizia"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Richiesta in corso"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Aggiungi come amico"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "lo username non può iniziare o terminare con uno spazio"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "lo username non può essere vuoto"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "lo username non può contenere tag HTML"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "Esci"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "accedi"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Crea un account"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Stato del server"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Si è verificato un errore del database durante l'elaborazione della richiesta; per favore riprova più tardi."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Impossibile gestire la richiesta"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "ore"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "minuti"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "secondi"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Tempo di connessione al link scaduto. Per favore clicca Indietro, aggiorna la pagina e prova ancora."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Usa i tag BBCode per formattare il testo"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Progetto sospeso per manutenzione"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 è temporaneamente fuori servizio per manutenzione. Riprova più tardi."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Impossibile connettersi al database - per favore riprova più tardi"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Impossibile selezionare il database - per favore riprova più tardi"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "caratteri rimanenti"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Rimani loggato su questo computer"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Completa la configurazione dell'account"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Devi fornire un nome per il tuo account"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "I tag HTML non sono ammessi nel nome"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Modifica le preferenze per %1"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Aggiungi %1 preferenze per %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Applicazioni"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 al momento sta usando le seguenti applicazioni. Quando partecipi a %1, le elaborazioni per una o più di queste applicazioni saranno assegnate al tuo computer. La versione corrente delle applicazioni sarà scaricata sul tuo computer. Questo succede automaticamente; non devi fare nulla."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Piattaforma"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Versione"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Elaborazione media"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Tag BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "I tag BBCode ti consentono di formattare il testo del tuo profilo e i messaggi inviati in bacheca.\n Essi sono simili all'HTML, ma più semplici. I tag iniziano con una [ (in HTML potresti\n usare %1) e terminano con ] (in HTML\n potresti usare %2)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Esempi"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Grassetto"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Corsivo"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Sottolineato"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Barrato"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Apice"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Testo in grande"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Testo in rosso"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "link al sito"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Testo citato"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "utilizza per le citazioni"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "usa per visualizzare un'immagine"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Inserisci qui il frammento di codice"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "usa per visualizzare codici"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Testo preformattato"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "usa per visualizzare un testo preformattato (di solito è un carattere monospaziato)"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Elemento 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Elemento 2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Elemento 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "usa per inserire un link ad un ticket su Trac sul sito BOINC"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "usa per inserire un link alla Wiki Trac sul sito BOINC"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Se non chiudi un tag, o no specifichi un parametro in maniera corretta,\nil tag sarà visualizzato in chiaro al posto del testo formattato."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Non è possibile creare l'account"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Fai click sul tasto <b>Indietro</b> del tuo browser per riprovare."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "La tua risposta al ReCaptcha non è corretta. Prova di nuovo."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Devi fornire un codice d'invito per creare un account."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "Il codice d'invito inserito non è valido."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Indirizzo email non valido: deve essere un indirizzo email valido del tipo nome at dominio"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Esiste già un account associato a questo indirizzo email."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Le nuove password sono diverse"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Le password possono comprendere solo caratteri ASCII."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "La nuova password è troppo corta: la lunghezza minima è di %1 caratteri."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Non è stato possibile creare l'account"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "NOTA: Se utilizzi il BOINC Manager, non usare questo form. Avvia BOINC, seleziona Aggiungi Progetto, e inserisci una email e una password."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Questo account apparterrà al team %1 ed avrà le preferenze del progetto decise dal suo fondatore."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Immagine"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 La tua immagine del profilo è mostrata sulla sinistra."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Per cambiarla clicca sul pulsante \"Browse\" e seleziona una file JPEG o PNG (più piccolo di %1)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Per eliminarla dal tuo profilo, seleziona questa l'opzione:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Se vuoi aggiungere una immagine al tuo profilo, clicca sul pulsante \"Browse\" e seleziona una file JPEG o PNG. Sei pregato di scegliere un file più piccolo di %1."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Lingua"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Seleziona la lingua in cui è scritto il tuo profilo:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Invia il profilo"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Crea/modifica il profilo"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "Il formato dell'immagine che hai caricato non è supportato."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "La pagina del tuo %1profilo%2 ti permettere di condividere le tue opinioni e il tuo background con la comunità di %3."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "La tua risposta al ReCaptcha non è corretta.  Prova di nuovo."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Le cose che hai scritto nel primo spazio sono state segnalate come spam dal sistema anti-spam Akismet.  Modifica il testo e riprova."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Le cose che hai scritto nel secondo spazio sono state segnalate come spam dal sistema anti-spam Akismet.  Modifica il testo e riprova."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "I campi del tuo profilo sono vuoti."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Impossibile aggiornare il profilo: errore del database"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Impossibile creare il profilo: errore del database"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Il profilo è stato salvato"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Congratulazioni! Il tuo profilo è stato inserito con successo nel database."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Visualizza il tuo profilo"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Crea un profilo"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Per prevenire lo spam, è richiesta una media di crediti superiore a %1 per creare o modificare un profilo.  Ci scusiamo per l'inconveniente."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Non è stato possibile cancellare l'account"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Account cancellato"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Il tuo account è stato cancellato."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Conferma cancellazione dell'account"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "La cancellazione del tuo account rimuoverà tutte le tue\ninformazioni personali dai nostri server,\nincluso il tuo profilo e i messaggi inviati al forum.\nNon sarà rilasciato nessun lavoro a nessun computer\nassociato a questo account."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Impossibile annullare l'operazione.\nUna volta che il tuo account è stato cancellato, non potrai riabilitarlo."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Sei sicuro di voler cancellare il tuo account?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Si"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Cancella questo account"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "No"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Non cancellare questo account"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "non è possibile eliminare il profilo - per favore riprova più tardi"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Conferma eliminazione"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Il tuo profilo è stato cancellato."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Conferma eliminazione del profilo"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Sei sicuro?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "I profili cancellati sono perduti per sempre e non possono essere ripristinati:\ndovrai ricominciare dall'inizio\nse vorrai un altro profilo in futuro."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Se sei sicuro, clicca 'Sì'\nper rimuovere il tuo profilo dal nostro database."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Cancella il mio profilo"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Non cancellare il mio profilo"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transazione Completata"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Grazie per la tua donazione!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "La tua donazione è stata completata."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "La tua donazione sarà aggiunta alla barra di avanzamento dopo la conferma da parte di PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Hai annullato la tua donazione."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Questo progetto non accetta donazioni."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donazioni"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Questo progetto accetta donazioni via\n %1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Per fare una donazione, inserisci l'importo che vuoi donare usando i seguenti campi.\nPayPal accetta diverse valute\n(Dollari Canadesi, Euro, Sterline, Dollari U.S.A.,\nYen, Dollari Australiani, Dollari Neozelandesi,\nFranchi Svizzeri, Dollari di Hong Kong, Dollari di Singapore, Corone Svedesi,\nCorone Danesi, Zloty Polacchi, Corone Norvegesi,\nFiorini Ungheresi, Corone Ceche).\nPuoi usare il convertitore di valuta\nper vedere la somma donata equivalente nelle diverse valute\n(pe [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Somma che vuoi donare"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Valore stimato in"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Donazione anonima"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Seleziona questo se vuoi che il tuo nome e il tuo numero di account non vengano\nvisualizzati nella lista donatori.<br>Se non selezioni, sarai memorizzato come un utente con ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Per associare la donazione al tuo ID utente devi accedere con il tuo account."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Procedi"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Le donazioni sono accettate tramite"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Scarica degli add-on per BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Puoi scaricare applicazioni di vari tipi."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Queste applicazioni non sono supportate da %1 e il loro utilizzo è sotto la tua sola responsabilità."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Non forniamo istruzioni per l'installazione di queste applicazioni.\nIn ogni caso l'autore potrebbe aver fornito qualche informazione sull'installazione o disinstallazione dell'applicazione. \nSe questo non è sufficiente dovrai contattare l'autore."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Le istruzioni per l'installazione e il funzionamento di BOINC si trovano %1qui%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Questo elenco è amministrato centralmente dal %1sito web di BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Cambia l'indirizzo email del tuo account"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Il nuovo indirizzo email '%1' non è valido."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Il nuovo indirizzo email è uguale a quello esistente. Nulla è stato cambiato."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Esiste già un account associato a questo indirizzo email"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Password non valida."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "L'indirizzo email del tuo account è ora %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Sei pregato di %1validare questo indirizzo email%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Non possiamo aggiornare il tuo indirizzo email a causa di un problema del database. Per favore riprova più tardi."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Cambia l'indirizzo email"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Cambia l'indirizzo email del tuo account"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nuovo indirizzo email"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Deve essere un indirizzo email valido del tipo 'nome at dominio'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Non hai la password?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Conferma il reset"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Questa azione eliminerà qualsiasi cambiamento apportato alle tue preferenze. Per annullare clicca sul pulsante Indietro del tuo browser."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Reimposta le preferenze"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Errore. Questo non è il tipo di file corretto, soltanto immagini PNG e JPEG sono consentite."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "La tua firma era troppo lunga, sono consentiti al più 250 caratteri."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Utente non trovato:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "In che modo possiamo notificarti nuovi messaggi privati, richieste da amici, avvisi sugli argomenti sottoscritti e altri eventi?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Sulla mia pagina Account (no email)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Immediatamente, per email"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "In una singola email giornaliera"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Itentità messaggi"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Immagine che ti rappresenta sul forum."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Formato: JPG o PNG. Dimensione: al massimo 4KB, 100x100 pixel."
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Non usare un avatar"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Usa un Globally Recognized Avatar fornito da %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Usa questa immagine caricata:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Anteprima dell'avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Così apparirà il tuo avatar"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Firma per i messaggi nel forum"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Dai un'occhiati ai %1 servizi gratuiti%2\n<br> che forniscono 'immagini per le firme dinamiche' da usare nei forum, social, ecc...\n<br> e che mostrano informazioni sui tuoi crediti recenti, notizie dei progetto ed altro."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Allega di default la firma"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Anteprima della firma"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "La tua firma nel forum apparirà così:"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Visualizza messaggi"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Cosa visualizzare"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Nascondi le immagini degli avatar"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Nascondi le firme"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Visualizza le immagini come link"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Apri i collegamenti in una nuova finestra/scheda"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Evidenzia utenti speciali"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Virualizza questo numero di messaggi per pagina"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Come ordinare"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Discussioni:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Messaggi:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Vai automaticamente al primo nuovo messaggio della discussione"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Non muovere i post offensivi al top"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Filtro messaggi"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Utenti filtrati"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignora i post e i messaggi privati da questi utenti."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ID utente (per esempio: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Aggiungi l'utente al filtro"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Clicca qui per aggiornare le preferenze"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Reset"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Oppure clicca qui per resettare le preferenze ai valorid di default"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Impossibile aggiornare la password a causa di un problema al database. Per favore riprova più tardi."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Cambia password"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "La tua password è stata cambiata."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Nuova password"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Ripeti nuova password"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "I tag HTML non sono permessi nel tuo nome."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Devi dare un nome per il tuo account."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Non posso aggiornare le informazioni utente."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Modifica le informazioni account"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Nome %1 nome reale o nickname%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 della tua pagina web; opzionale%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Codice postale (ZIP) %1 Opzionale%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Aggiorna informazioni"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Stato server"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "Lo <b>stato del server</b> di un'attività indica se l'attività è stata inviata ad un computer e, nel caso, se il computer l'ha completata. I valori possibili sono:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Il lavoro non è pronta per essere inviato (per esempio, perché i suoi file di input non sono disponibili)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Il lavoro è pronto per essere spedito, ma non è stata ancora inviato."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "In Corso"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Il lavoro è stato inviato; in attesa del completamento."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "Il lavoro è stato inviato ad un computer ed è scaduto oppure il computer ha segnalato il suo completamento."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Risultati"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "Il <b>risultato</b> di un lavoro è definito se lo stato del suo server è <b>finito</b>. Valori possibili sono:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "Il lavoro è stato inviato ad un computer, ma il computer non ha ancora completato il lavoro e riportato il risultato."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Il computer ha completato e riportato il lavoro con successo."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Il server non è stato in grado di inviare il lavoro ad un computer (forse perché i requisiti di risorse erano troppo elevati)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Errore client"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Il lavoro è stato inviato ad un computer ma c'è stato un errore."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "Il lavoro è stato inviato ad un computer e nessuna risposta è stata ricevuta entro il tempo limite."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "Il lavoro non è stato inviato ad un computer perché sufficienti altri lavori sono stati completati per questà unità di lavoro."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "Il lavoro è stato riportato ma non è stata possibile la validazione, tipicamente a causa del fatto che i file di output sono stati persi sul server."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Stato client"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Il <b>client state</b> di un risultato indica lo stato di processamento nel quale l'errore è avvenuto."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Il computer non ha ancora completato il lavoro."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Il computer ha completato il lavoro con successo."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Il computer non ha potuto scaricare l'applicazione o i file di input."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "È avvenuto un errore durante l'elaborazione."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Il computer non ha potuto inviare i file di output."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Tempo riportato e scadenza"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "La colonna <b>Tempo riportato o Scadenza</b> di un lavoro dipende dal fatto che il lavoro è già stato riportato o no:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Già riportato"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "La data/ora nella quale è stato riportato"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Non ancora riportato, scadenza nel futuro"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Scadenza, visualizzata in verde."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Non ancora riportato, scadenza nel passato"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Scadenza, visualizzata in rosso."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Campo sconosciuto"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Anteprima email"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "La tua e-mail apparirà come segue:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Spedisci una email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Usa il tasto indietro del browser per tornare alla compilazione del messaggio"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Invio email"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "e-mail inviata correttamente a %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "impossibile inviare l'e-mail a %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Grazie per aver segnalato %1 ai tuoi amici"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Hai dimenticato di inserire nomi e/o indirizzi e-mail dei tuoi amici; per favore, %1torna al modulo%2 e inseriscili."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Questo progetto non ha creato un messaggio email - per favore notificalo ai suoi amministratori"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Consiglia %1 ai tuoi amici"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Aiutaci segnalando %1 ai tuoi amici, familiari e colleghi"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Compila questo modulo con i nomi e gli indirizzi e-mail delle persone che pensi possano essere interessate a %1. Invieremo una e-mail a tuo nome, e se ti va puoi aggiungere il tuo messaggio."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Il tuo nome:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Il tuo indirizzo email:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Nome dell'amico:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Indirizzo email dell'amico:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Aggiungi un messaggio (facoltativo):"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Invia"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "Non sei autorizzato a bandire gli utenti."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Vota per Bannare"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Non è stato trovato nessun utente con questo ID."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "L'utente è già bannato"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Sei sicuro di voler bandire %1?<br/>Questo impedirà a %1 di pubblicare per il periodo di tempo stabilito.<br/>Dovrebbe essere fatto solo se %1 si è comportato ripetutamente da troll."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Seleziona la categoria del motivo e scrivi eventualmente una descrizione più lunga sul perché l'utente dovrebbe essere bandito."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Categoria"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Osceno"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Messaggi di provocazione/odio"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Richiesta Utente"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Motivo"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Spedita se non vuota"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Procedi con la votazione"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Devi specificare un'azione..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Non puoi più modificare questo messaggio.<br/>I messaggi possono essere modificati al massimo %1 minuti dopo che sono stati creati."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Non sei autorizzato a modificare questo post."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Modifica il tuo messaggio"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Titolo"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Aggiungi la mia firma a questo messaggio"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Non è visibile a te"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Forum dei messaggi del team per %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Nuovo thread"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Aggiungi un nuovo thread a questo forum"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Puoi ricevere le news con un %1RSS feed%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Questo thread è stato nascosto dai moderatori"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Questo thread è evidenziato e bloccato, e non letto"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "evidenziati/bloccati/non letti"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Questo thread è evidenzato e non letto"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "offensivo/non letto"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Nonhai ancora letto questo thread, ed è bloccato"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "non letto/bloccato"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Non hai ancora letto questo thread"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Questo thread è offensivo e bloccato"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "evidenziato/bloccato"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Questo thread è offensivo"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "offensivo"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Questo thread è bloccato"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "bloccato"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Hai letto questo thread"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "leggi"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Domande e risposte"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Parla dal vivo via Skype con un volontario, in una tra le diverse lingue. Vai all'%1Aiuto Online di BOINC%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Domande"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Discussione tra i membri di %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "Forum di %1"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Se hai delle domande o problemi usa la sezione %1Domande & Risposte%2 del forum."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Thread seguiti"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Modera post"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Nascondi post"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Spam commerciale"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Post doppio"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Muovi post"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID thread di destinazione:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Banna utente"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Durata del ban"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 ore"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 giorno"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 settimana"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 settimane"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 mese"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Per sempre"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Spiegazione facoltativa %1 Questa sarà inclusa nell'e-mail inviata all'utente.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "Non sei autorizzato a moderare questo post."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Non posso muoverlo in una categoria differente"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Non posso muoverlo in una categoria differente"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Non autorizzato a bandire gli utenti"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Banna"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "L'utente %1 è stato bannato."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Azione fallita: possibile problema al database"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "non autorizzato"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Modera la discussione '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Seleziona la categoria del motivo, o scrivi una descrizione più lunga sul perché stai nascondendo o bloccando la discussione; quindi premi OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Forum corrente"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Forum destinazione"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Nuovo titolo:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Solo gli amministratori di progetto possono creare un thread qui. Tuttavia, puoi rispondere a thread esistenti."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Le cose che hai scritto nel primo spazio sono state segnalate come spam dal sistema anti-spam Akismet. Modifica il testo e riprova."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Crea un nuovo thread"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Crea un nuovo argomento"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Ricordati di aggiungere un titolo"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Mostra questo elemento come Notifica nel BOINC Manager"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Fallo solo per gli elementi che siano verosimilmente di interesse per tutti i volontari."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Votazione offline"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Questa funziona è disabilitata dal progetto"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Ti serve un credito medio o totale maggiore per poter votare un post."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Hai già votato questo post."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Ritorna al thread"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Input Registrato"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Il tuo input è stato registrato. Grazie per il tuo aiuto."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Il voto è stato registrato"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Il tuo voto è stato registrato. Grazie per il tuo contributo."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Problema nell'invio del voto"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Il tuo post è stato contrassegnato come spam dal sistema anti-spam Akismet. Per favore modifica il testo e riprova."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Rispondi a questo argomento"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Messaggio:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "rispondi a %1Message ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Rispondi al post"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Aggiungi la mia firma a questa risposta"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Ti serve più credito medio o totale per segnalare un post."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Segnalazione registrata"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "La tua segnalazione è stata registrata. Grazie per il tuo aiuto."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Un moderatore darà ora un'occhiata alla tua segnalazione e deciderà il da farsi - potrebbe volerci un po' di tempo, quindi sii paziente"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Segnala un post del forum"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Prima di segnalare questo messaggio, considera invece l'uso del sistema di voto +/-. Se abbastanza utenti giudicano un post negativamente, esso sarà alla fine nascosto.<br />Puoi trovare il sistema di voto in fondo al messaggio."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Segnala post"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Perché trovi il post offensivo: %1Per favore includi sufficienti informazioni affinché una persona che\nnon ha ancora letto la discussione possa essere in grado di individuare rapidamente il problema.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Segnalazione non registrata"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Non è stato possibile registrare la tua segnalazione. Per favore aspetta un po' e riprova."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Se questo non è un errore temporaneo, per favore segnalalo agli sviluppatori del progetto."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 feed RSS"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Puoi ricevere le news con un feed RSS."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Opzioni:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Includi solamente i messaggi dell'utente con ID %1 (predefinito: tutti gli utenti)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Includi solamente i messaggi degli ultimi %1 giorni (predefinito: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Solo threads: %1 (include solamente i primi messaggi di ogni discussione)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Cerca nel forum"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Tipo ricerca"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Cerca per parole chiave:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Saranno mostrati i messaggi contenenti tutte le parole specificate"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Per esempio:\"screensaver bloccato\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Cerca per ID autore:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Saranno mostrati solo i messaggi di questo autore"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Per esempio:\"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Opzioni di ricerca"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Limita ricerca"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Ricerca al massimo questo numero di giorni precedenti"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 mesi"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 anno"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "nessun limite"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Mostra solamente messaggi da questo forum"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Ordina per"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Inizia la ricerca"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Risultato della ricerca nel forum"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Nessun titolo corrisponde alla tua ricerca:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Messaggi corrispondenti alla tua ricerca:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Spiacente, impossibile trovare qualcosa che corrispondesse alla tua richiesta. Puoi provare ad ampliare la tua ricerca usando meno parole (o parole meno specifiche)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Puoi anche %1tentare la stessa ricerca su Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Eseguire un'altra ricerca"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Sottoscrizione eseguita con successo"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Sei ora iscritto a %1. Ti verrà notificato quando ci sarà un nuovo messaggio."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Sottoscrizione fallita"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Non è stato momentaneamente possibile sottoscriverti a %1. Per favore riprova più tardi."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Rimozione sottoscrizione eseguita con successo"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Non sei più iscritto a %1. Non riceverai più notifiche per questo thread."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Rimozione sottoscrizione fallita"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Non è momentaneamente possibile rimuovere la sottoscrizione da %1. Per favore riprova più tardi."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Azione di sottoscrizione sconosciuta"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Non ti è concesso vedere questo forum."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Questo thread è stato nascosto dai moderatori."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "È stata data risposta alla mia domanda"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Se è stata data un'adeguata risposta alla tua domanda, sei pregato di premere qui."
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Ho anche questa domanda da porre"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Aggiungi un nuovo messaggio a questo argomento"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Cancella l'iscrizione"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Sei iscritto a questo argomento.  Clicca qui per cancellare l'iscrizione."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Iscriviti"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Clicca per ricevere una email quando ci sono nuovi messaggi su questo argomento"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Rendi visibile questo argomento"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Nascondi questo argomento"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Non evidenziare"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Fai in modo che questo thread non sia in evidenza"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Evidenzia"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Metti questo thread sempre al primo posto nel forum"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Sblocca"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Permetti nuovi post in questo thread"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Blocca"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Non permettere nuovi post in questo thread"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Sposta questo argomento in un altro forum"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Modifica il titolo"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Modifica il titolo dell'argomento"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Cancella thread permanentemente"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Esporta come Notizia"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Non esportare"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Non esportare questa notizia come Notizia"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Ordina"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Stato del thread aggiornato"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "Lo stato è stato aggiornato."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Messaggi di %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Siete già amici"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Hai fatto richiesta di amicizia con %1 su %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Questa richiesta è ancora in attesa di accettazione."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 non accetta la tua richiesta di amicizia"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Non puoi essere amico di te stesso"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Aggiungi agli amici"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Hai richiesto di aggiungere %1 agli amici. Notificheremo la cosa a %1 e gli/le chiederemo di confermare che siete amici."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Aggiungi un messaggio (facoltativo):"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Richiesta di amicizia inviata"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "Abbiamo notificato a %1 la tua richiesta."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Per favore esegui il log in come %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Devi fare il login come %1 per vedere questa richiesta di amicizia"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Richiesta di amicizia"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "Hai ricevuto una richiesta di amicizia da %1."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 dice: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Accetto la richiesta di amicizia"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Clicca su Accetto se %1 è un tuo amico"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Rifiuto"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Clicca su Rifiuto se %1 non è un tuo amico"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "L'amicizia è stata accettata"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "La tua amicizia con %1 è stata accettata."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "L'amicizia è stata rifiutata"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Hai rifiutato l'amicizia con %1"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Notifica non trovata"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Conferma dell'amicizia"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "Tu ora sei amico/a di %1."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Cancella l'amicizia"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Sei certo di voler cancellare la tua amicizia con %1?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Rimani amico"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "L'amicizia è stata cancellata"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "La tua amicizia con %1 è stata cancellata."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Se conosci l'indirizzo e-mail dell'account, e puoi ricevere mail su di esso:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Inserisci l'indirizzo e-mail qui sotto, e premi OK. Ti saranno inviate le istruzioni via mail per resettare la tua password."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Se hai dimenticato l'indirizzo e-mail dell'account, oppure non puoi ricevere mail su di esso:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Se hai già utilizzato BOINC con questo account, puoi ancora accedere a lui. Ecco come:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Vai nella directory dati di BOINC sul tuo computer (la sua locazione è scritta nel Log Eventi all'avvio)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Trova il file del tuo account per questo progetto; sarà chiamato <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Apri il file in un editor di testo come Notepad. Vedrai qualcosa come"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Selezione e Copia la stringa compresa tra %1 e %2 (%3 nell'esempio sopra)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Incolla la stringa nel campo sotto, e premi OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Farai ora il login con il tuo account; aggiorna la e-mail e la password del tuo account."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Fai il login come autenticatore"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Hai dimenticato le tue informazioni account?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Nessun task GPU riportato"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Top modelli GPU"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "La lista seguente visualizza i modelli GPU più performanti sulle diverse piattaforme. Le velocità relative, misurate dal tempo medio di esecuzione delle elaborazioni, sono visualizzati tra parentesi."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Benvenuto in %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Visualizza e modifica le tue preferenze dell'account usando i link sottostanti."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Se non lo hai ancora fatto, %1scarica il client di BOINC%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Il tuo account"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Piattaforma anonima, applicazione mancante"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "piattaforma anonima"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Versione applicazione mancante"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Applicazione mancante"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Piattaforma mancante"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Numero di lavori completati"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Massimo numero di lavori giornalieri"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Numero di lavori giornaliero"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Lavori validi consecutivi"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Velocità di processamento media"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Dettagli applicazione per l'host %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Non ci sono record per questo computer."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Non puoi cancellare il record di questo computer perché il nostro database contiene ancora lavoro per lui. Devi attendere qualche giorno fino a quando il lavoro per questo computer è stato cancellato dal database del progetto"
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Cancella record del computer"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Record cancellato."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Ritorna alla lista dei tuoi computer"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Unisci i record del computer"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Unisci i computer"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "A volte BOINC assegna identità separate allo stesso computer per errore. Puoi correggere questo unendo le vecchie identità con le nuove"
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Nessun host è stato scelto per unirsi a questo."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Visualizza dettagli"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Controlla i computer che sono simili a %1 (creato %2, ID computer %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "nome"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "creato"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID computer"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "nessun hostname"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Unisci hosts"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Aggiornamento crediti del computer"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Crediti degli host aggiornati"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Luogo di accoglienza aggiornato"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "nessuno"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "La sede di questo host è stata impostata a %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Questa modifica avrà effetto la prossima volta che l'host comunicherà con questo progetto."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Ritorna alla pagina dell'host"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Computer appartenente a %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Computer nascosto"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Questo utente ha scelto di non mostrare le informazioni sui suoi computer."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "I tuoi computer"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Tag HTML permessi"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "I tag HTML seguenti sono permessi nella descrizione del team:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "grassetto"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "corsivo"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlink"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paragrafo"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "rompere"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "preformattato"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "immagine; l'altezza non può superare i 450 pixel. Per favore non mettere link ad immagini senza il permesso del sito web che le ospita."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "È anche possibile utilizzare la notazione con la e commerciale per caratteri speciali."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Leggi le nostre regole e linee di condotta"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Avvia %1 solo su computer autorizzati"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Avvia %1 solo sui tuoi computer o su quelli per cui hai ottenuto il permesso dal proprietario. Alcune aziende e scuole proibiscono l'uso di progetti come %1 sui propri computer."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Come %1 userà il tuo computer"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Quando lo farai girare sul tuo computer, %1 utilizzerà una parte della CPU, del disco fisso e della connessione internet. Puoi sempre tenere sotto controllo le risorse utilizzate da %1 e quando vengono usate."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Il lavoro svolto dal tuo computer sarà un prezioso contributo per raggiungere gli obbiettivi di %1, come descritto sul sito web del progetto. Le applicazioni del programma possono variare di volta in volta."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Politiche sulla privacy"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Il tuo account su %1 è identificato con il nome che hai scelto. Questo nome sarà mostrato sul sito web di %1 assieme ad un sommario del lavoro svolto dal tuo computer per %1. Se vuoi rimanere anonimo, puoi sempre scegliere un nome che nasconda la tua vera identità."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Se partecipi a %1, le informazioni relative al tuo computer (tipo del processore, quantità di memoria, ecc...) saranno registrate da %1 e usate per decidere il tipo di lavoro da assegnare al tuo computer. Queste informazioni saranno inoltre mostrati sul sito web di %1. Non verrà mostrato niente che possa rivelare l'ubicazione del tuo computer (per esempio il nome del suo dominio o gli indirizzi di rete)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Per partecipare a %1, devi fornire un indirizzo di posta elettronica per ricevere le email. Questo indirizzo non sarà mostrata sul sito web di %1 o condiviso con altre organizzazioni. %1 potrà inviarti periodicamente una email informativa; in ogni caso puoi sempre decidere di non partecipare più al progetto in qualsiasi momento."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "I messaggi privati inviati sul sito web di %1 sono visibili solo al mittente e al ricevente.  %1 non controlla o censura il contenuto dei messaggi privati.  Se ricevi un messaggio privato non gradito da un altro utente di %1, puoi aggiungerlo al tuo %2filtro dei messaggi%3.  Questo ti evita di dover vedere altri messaggi publici o privati di quell'utente."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Se usi i forum del nostro sito devi seguire le %2linee guida del forum%3.  I messaggi inseriti nei forum di %1 sono visibili a tutti, inclusi gli ospiti non registrati.  Scrivendo sul forum tu fornisci una licenza irrevocabile a chiunque di guardare e copiare i tuoi messaggi."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "E' sicuro elaborare su %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Ogni volta che scarichi un programma attraverso Internet, puoi incontrare dei rischi: il programma potrebbe provocare degli errori pericolosi, o il server da cui stai scaricando potrebbe essere non sicuro. %1 si sforza continuamente per diminuire questi rischi. Testiamo molto accuratamente tutte le nostre applicazioni. I nostri server sono tutti coperti da un firewall configurato per una massima sicurezza. Per accertarci dell'integrità dei download, tutti i file eseguibili vengon [...]
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Le applicazioni avviate da %1 possono provocare surriscaldamento. Se ciò dovesse accadere, basta solo fermare %1 o usare un %2programma di utilità%3 che limiti l'uso della CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 è sviluppato da %2. BOINC è sviluppato dalla Università della California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Responsabilità"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 e %2 non si assumono alcuna responsabilità per eventuali danni causati al tuo computer, perdita di dati o altri eventi o circostanze che possono accadere come conseguenza della partecipazione a %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Altri progetti BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Altri progetti che usano la stessa piattaforma, BOINC, come %1. Prendi in considerazione la tua partecipazione a uno, o più, di questi progetti; così facendo, il tuo computer svolgerà un utilissimo lavoro anche quando %1 non ha lavoro disponibile."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Questi altri progetti non sono associati con %1, quindi non possiamo garantirne la sicurezza o la natura delle loro ricerche. L'adesione a tali progetti è sotto la vostra sola responsabilità."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Selezione lingua"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Questo sito web è disponibile in molte lingue. La lingua correntemente selezionata è %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Normalmente la scelta della lingua è determinata dalle impostazioni di lingua del tuo browser, che è: %1. Puoi cambiare questa impostazione usando:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Strumenti/Opzioni/Generale"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Strumenti/Opzioni Internet/Lingue"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Oppure puoi selezionare una lingua cliccando su uno dei link.  Questo manderà al tuo browser un cookie; assicurati che il tuo browser accetti i cookies dal nostro dominio."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Nome lingua (clicca per selezionare)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Usa impostazioni lingua del browser"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Le traduzioni sono fatte da volontari.  Se la tua lingua madre non è qui, %1puoi tradurla tu%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "oppure %1crea un account%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Elaborazione %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Unito %1 con %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Ritorna alla lista dei tuoi computer"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Questa operazione unisce i computer in base al loro nome di dominio.\n        <p>\n        Per ogni nome di dominio, unirà tutti i vecchi computer\n        con quel nome con quelli nuovi aventi lo stesso nome.\n        Computer non compatibili non saranno uniti.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Vai avanti e fai questo"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Ritorna alla lista dei computer"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nPer massimizzare le discussioni e il flusso di informazioni,\ni nostri forum di messaggi sono moderati.\nI post nei forum sono soggetti alle seguenti regole:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nI moderatori possono cancellare post che violano una delle regole seguenti.\nGli autori dei post cancellati riceveranno una notifica via e-mail.\nChi offende potrebbe avere la sua capacità di scrivere revocata temporaneamente\n(per prevenire abusi solo gli amministratori dei progetti possono farlo).\nTutti gli altri tipi di  comportamenti negativi (\"bugging\" post per scoprire\nl'indirizzo IP degli altri partecipanti, creazione di thread eccessiva per spammare\ni forum, e [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Crediti non ancora assegnati"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID Risultato"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID lavoro"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID host"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Credito garantito"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Crediti non attesa assegnati: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Blocca i messaggi da questo utente"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Blocca utente"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Il tuo messaggio è stato inviato."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Non hai messaggi privati."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Mittente e data"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Rispondi a questo messaggio"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Cancella questo messaggio"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Seleziona tutto"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Deseleziona tutto"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Cancella i messaggi selezionati"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Mittente"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Devi riempire tutti i campi per poter inviare un messaggio privato"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Il tuo messaggio è stato segnalato come spam\n                dal sistema anti-spam Akismet.\n                Per favore modifica il testo e riprova."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Non è stato trovato alcun utente con l'id %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Non è stato trovato alcun utente chiamato %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 è un nome che hanno più utenti, devi usare l'ID dell'utente"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "L'utente %1 (ID: %2) non accetta messaggi privati da te."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Nessun utente"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Vuoi realmente bloccare %1?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Sei veramente sicuro di voler bloccare l'utente %1 dal mandarti messaggi privati?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Ricordati che puoi bloccare solamente un numero limitato di utenti."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Una volta bloccato un utente puoi sempre sbloccarlo tramite la pagina delle preferenze sul forum."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "No, annulla"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "utente non trovato"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Utente %1 bloccato"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Ora l'utente %1 non può più inviarti messaggi privati."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Per sboccare un utente, visita la pagina %1preferenze del forum%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Azione sconosciuta"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Le tue preferenze sono state aggiornate e\navranno effetto quando il tuo computer comunicherà con %1\noppure quando lancerai  il comando %2Aggiorna%3 dal BOINC manager."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Le tue preferenze sono state resettate al default, e\n          avranno effetto quando il tuo computer comunicherà con %1\n          oppure cliccherai sul comando %2Aggiorna%3 dal BOINC Manager"
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 per %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Ritorna alle preferenze"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Conferma la cancellazione delle preferenze"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Sei sicuro di voler cancellare le tue preferenze separate %1 per %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Rimuovi preferenze"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Cancella"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profili"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "I %1profili%2 permettono agli utenti di condividere le proprie esperienze con la comunità di %3."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Guarda la diversità dei volontari tuoi compagni e contribuisci con le tue opinioni. "
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Se non l'hai ancora fatto, puoi %1creare un tuo profilo%2 da far vedere agli altri!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Utente del giorno"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Guarda i profili degli utenti"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Guarda la %1Galleria delle Immagini degli utenti%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Visualizza i profili %1per nazionalità%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Visualizza i profili %1casualmente%2, %3casualmente con immagine%2 o %4casualmente senza immagine%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Profili in ordine alfabetico:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Ricerca profilo mediante testo"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Nessun profilo"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Nessun profilo corrisponde ai tuoi criteri di ricerca."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Tipo di voto non valido:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Il voto è stato registrato"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Grazie"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "La tua raccomandazione è stata registrata."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Il tuo voto per deferire questo profilo è stato registrato."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Ritorna al profilo."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Profili contenenti '%1'"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Nome utente"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Entrato nel progetto"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Crediti recenti"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Nessun profilo contenente '%1' trovato"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Nessuna elaborazione trovata:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Questa funzione è stata temporaneamente sospesa"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Non è stato trovato nessun computer con l'ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Accesso negato"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Manca l'ID dell'utente o l'ID del computer"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Nessun lavoro da visualizzare"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Utente del giorno"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Non in esecuzione"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "In esecuzione"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Disabilitato"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Stato del progetto"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Stato del server"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Programma"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Ospite"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Versione schema Database:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Stato di elaborazione"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Utenti"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Attività dall'applicazione"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Tempo di esecuzione delle ultime 100 elaborazioni in ore: medio, minimo, massimo"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Utenti nelle ultime 24 ore"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Computer %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistiche e classifiche"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Statistiche di %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "I migliori utenti"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "I migliori team"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "I migliori computer"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "Modelli di GPU"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "Modelli di CPU"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Altre dettagliate statistiche su %1 e altri progetti basati su BOINC sono disponibili su diversi siti web:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Puoi anche ottenere le tue statistiche in forma di immagine (\"firma\"):"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Inoltre puoi vedere le tue statistiche individuali di tutti i progetti BOINC su diversi siti; guarda la %1pagina del tuo account%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Team"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "I partecipanti a %1 possono formare dei %2team%3."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Puoi appartenere solo ad un team. Puoi unirti o lasciare un team in qualsiasi momento."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Ogni team ha un %1fondatore%2 che può:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "accedere alle informazioni sugli indirizzi email dei membri"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "modificare il nome e la descrizione del team"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "aggiungi o rimuovi admin del team"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "rimuovere i membri dal team"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "sciogliere il team, solo se non ha più membri"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Per unirti ad un team visita la pagina del team e clicca su %1Unirsi a questo team%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Trova un team"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Tutti i team"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 team"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Crea un nuovo team"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Se non riesci a trovare un team giusto per te, puoi sempre %1creare un team%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Rimuovi lo stato di Amministratore del Team per questo membro"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Aggiungi o rimuovi Admin del team"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Puoi selezionare membri del team cone 'Amministratori del Team'. Gli Amministratori del Team possono:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Modifica le informazioni del team (nome, URL, descrizione, stato)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Vedi il resoconto di iscritti/cancellati del team"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Moderate il forum del team, se esiste (gli amministratori ricevono email di notifica degli atti di moderazione e reports)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Gli admin del team non possono:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Cambia il fondatore del team"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Rimuovi membri"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Se un Amministratore del Team esce dal team, smette di essere Amministratore."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Ci raccomandiamo che tu scelga solo persone che conosci e di cui ti fidi molto come Amministratori del Team."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Non ci sono attualmente Amministratori del Team"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Attuali amministratori del team"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Diventa Amministratore del Team di"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Aggiungi l'Amministratore del Team"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Indirizzo email del membro del team:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Aggiungi"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "errore nella rimozione dell'admin"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "L'utente non è membro di un team"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 è già un admin di %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Impossibile aggiungere l'amministratore"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Nessun team"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "nessun team"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "L'utente non è un membro di %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Cambio fondatore di %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 è ora il fondatore di %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Cambia il fondatore di %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Il membro del team %1 ha richiesto la carica di fondatore di questo team in %2, ma ha abbandonato il team, di conseguenza la richiesta è stata cancellata."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Il membro %1 ha richiesto di essere il fondatore di questo team. Potrebbe essere perché hai abbandonato il team oppure non hai avuto contatti con il team per un lungo periodo."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "rifiuta richiesta"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Se non rifiuti la richiesta di %1. %2 avrà l'opzione di assumere la carica di fondatore del team.<br /><br />\n Per accettare la richiesta, assegna la fusione a %3, utilizzando lo schema sotto. "
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Nessuna richiesta di trasferimento in corso."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Per assegnare il ruolo di fondatore di questo team ad un altro membro, controlla il riquadro vicino al nome del membro e clicca su <strong> Cambia fondatore <strong> sotto."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Nuovo fondatore?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Cambia fondatore"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Non ci sono utenti su cui trasferire il team."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Non puoi lasciare in bianco il nome del team"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Un team chiamato %1 esiste già - prova con un altro nome"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Non è stato possibile creare il team - riprovare più tardi."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Crea un team"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Tu sei membro del team %1. Devi %2lasciare questo team%3 prima di crearne uno nuovo."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Nessun fondatore o amministratore"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Storia del team per %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Quando"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Utente"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Attività"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Credito totale durante l'attività"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "paese sbagliato"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "Il nome '%1' è usato da un altro team."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Devi specificare un nome di un team"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Non è stato possibile aggiornare il team - riprovare più tardi."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Modifica %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Aggiorna informazioni team"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 Mail list"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Lista membri di %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Mostra come testo normale"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Crea un forum di messaggi"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Tu puoi creare un forum du messaggio per l'uso da parte di %1"
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Solo i membri del gruppo avranno la possibilità di scrivere."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Con una tua opzione, solo i membri potranno leggere."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Tu ed i tuoi Amministratori del team avrete i privilegi di moderatori."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Crea un forum di messaggi per %1"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "Il team ha già un forum di messaggi."
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Forum di messaggi del team."
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Tempo minimo tra i messaggi (secondi)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Credito totale minimo necessario per scrivere"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Credito medio minimo necessario per scrivere"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Invia"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Rimuovi il forum di messaggi del tuo team."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Veramente vuoi rimuovere il forum di messaggi?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Sei sicuro di voler rimuovere il forum di messaggi del tuo tem? Tutte le discussioni ed i messaggi verranno permanentemente rimossi. (Tu puoi, comunque, creare un nuovo forum di messaggi successivamente)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Sì-rimuovi il forum di messaggi."
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Forum di messaggi rimosso."
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Il forum di messaggi del tuo team è stato rimosso. Tu puoi ora %1 crearne uno nuovo%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Forum di messaggi del team aggiornato."
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Aggiornamento eseguito"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Aggiornamento fallito"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "Il team non ha forum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Devi essere membro di un team per avere accesso a questa pagina."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Richiedi cambio fondatore di %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Il fondatore corrente è stato informato della tua richiesta mediante email e messaggio privato.<br /><br />\n Se il fondatore non risponde in 60 giorni,  sarai autorizzato a diventare il nuovo fondatore."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Richiesta di cambio fondatore non permessa in questo momento"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Assumi carica di fondatore di %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Congratulazioni, sei ora il nuovo fondatore del team %1. Vai a %2La tua pagina Acoount%3 per trovare le opzioni dell'Ammnistratore di Team."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Declina richiesta di cambio fondatore"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "La richiesta di cambio fondatore di %1 è stata rifiutata."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Non ci sono richieste di cambio fondatore."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "Azione non definita %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Ritorna alla pagina del team"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Devi essere membro del team per avere accesso a questa pagina"
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Richiedi cambio fondatore per %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Sei ora il fondatore del gruppo %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Hai richiesto la carica di fondatore di %1 su %2"
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "60 giorni sono passati dalla tua richiesta, e il fondatore non ha risposto. Puoi assumere la carica di fondatore cliccando qui:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Assumi ruolo di fondatore"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Il fondatore è stato avvisato della tua richiesta. Se lui/lei non risponderà entro %1 ti sarà data la possibilità di diventare fondatore."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Se il fondatore del team non è attivo e vuoi assumere il ruolo di fondatore, clicca il bottone qui sotto. Sarà mandata una e-mail al fondatore corrente con la tua richiesta, e sarà capace di trasferire il ruolo di fondatore a te o di declinare la tua richiesta. Se il fondatore non risponde in 60 giorni, ti sarà permesso di diventare il fondatore.<br /><br />\n                       Sei sicuro di voler richiedere il ruolo di fondatore?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Richiedi cambio fondatore"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Richiesta di cambio fondatore già fatta da %1 su %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Una richiesta di cambio fondatore è stata fatta negli ultimi 90 giorni, quindi ne nuove richieste non sono permesse. Per favore riprova più tardi."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "Non si può entrare nel team %1."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Sei già membro"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Sei già membro di %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Non puoi entrare nel team - per favore riprova più tardi."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Entrato in %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "Sei entrato in %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Entra in %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Si prega di notare:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Entrare in un team da al fondatore accesso al tuo indirizzo e-mail."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Entrare in un team non influisce sui crediti del proprio account."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Entra in un team"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Risultati ricerca"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Risultati ricerca per '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Puoi vedere i membri, statistiche, e informazioni di questi team."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Più di 100 team soddisfano la tua ricerca. Sono visualizzati i primi 100."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Fine dei risultati. %1 Se non riesci a trovare un team giusto per te, puoi sempre %2creare un team%3."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Amministrazione del team per %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Modifica le informazioni del team"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Cambia il nome del team, URL, descrizione, tipo o nazione"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Lista membri:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "testo"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Visualizza i nomi dei membri e gli indirizzi mail"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Visualizza la cronologia dei cambiamenti:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Mostra quando i membri si sono uniti o hanno abbandonato questo team"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Rispondi alla richiesta di cambio fondatore."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Se non rispondi a %1, %2 potrebe assumere il ruolo di fondatore del team."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Rimuovi membri inattivi o indesiderati da questo team"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Trasferisci carica di fondatore ad un altro membro"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Aggiungi/Rimuovi Admin del team"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Dai ai membri del team selezionati i privilegi di Admin del team"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Rimuovi team"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Permesso solo se il team non ha membri"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Crea o gestisci un forum del team"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Per far si che questo team sia creato in tutti i progetti BOINC (correnti e futuri), puoi trasformarlo in un %1BOINC-wide team%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Gli amministratori dei team sono pregati di unirsi e partecipare sul gruppo Google %1fondatori di team boinc%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Non posso cancellare i team non vuoti"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Team %1 cancellato"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limite superato: Puoi solo visualizzare i primi 1000 membri."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Membri di %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Impossibile uscire dal team"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Il team non esiste, oppure non gli appartieni"
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Esci da %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Prima di uscire da un team nota che:</strong>\n         <ul>\n         <li>Se esci da un team, puoi rientrare successivamente, oppure entrare in un altro team tu desideri\n         <li>Uscire da un team non ha effetti sulle tue statistiche personali in nessun modo.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Abbandona il Team"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Rimozione utenti da %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 non è un membro di %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 è stato rimosso"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Rimuovi membri da %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Rimuovi?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Nome (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Nessun membro può essere rimosso."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Rimuovi utenti"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Nome team"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Risultato della ricerca team"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Nessun team trovato. Prova un'altra ricerca"
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Oppure, puoi %1creare un nuovo team%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "I team seguenti soddisfano uno o più dei tuoi criteri di ricerca.\n            Per entrare in un team, clicca sul nome o vai sulla sua pagina,\n               poi clicca su %1Unisciti a questo team%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Cambia la ricerca"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Puoi entrare in un team con persone aventi interessi simili, provenienti dallo stesso paese, luogo di lavoro, o scuola."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Usa questo form per trovare team che possono essere adeguati per te."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Non sono interessanto%2 nell'entrare in un team adesso."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limite massimo superato - Scusa, solo i primi %1 elementi"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "I migliori computer"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "I migliori team su %1"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "Non ci sono team %1"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Partecipante dal"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "Nessun utente del giorno è stato scelto."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Utente del giorno per %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtri"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Il nome utente inizia con"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Qualsiasi"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Con un profilo?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Entrambi"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "In un team?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Ordinamento"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Decremento tempo di sign-up"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Diminuzione del credito medio"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Diminuzione del credito totale"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "la stringa deve essere di almeno 3 caratteri"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Risultato della ricerca utenti"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Entrato"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Nessun utente corrisponde al criterio di ricerca."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Utente non trovato!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Dati account<br/>per %1<br/>Tempo:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Team:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Credito totale del Team:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Credito medio del Team:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Team: Nessuno"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Convalida indirizzo email BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Per favore visita il link seguente per convalidare l'indirizzo e-mail del tuo account %1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Email di convalida inviata"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Una email è stata inviata a %1. Visita il link che contiene per convalidare il tuo indirizzo email."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Utente non trovato."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Errore nei dati dell'URL - impossibile convalidare l'indirizzo email"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Aggiornamento database fallito - per favore riprovare più tardi."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Convalida l'indirizzo email"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "L'indirizzo email del tuo account è stato convalidato."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Questo utente non ha un profilo"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profilo: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Dati dell'account"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Puoi accedere al tuoi account sia utilizzando il tuo email e password,\n    oppure usando una 'chiave account' assegnata.\n    La tua chiave account è:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Questa chiave può essere usata per:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "fai il login al tuo account sul web"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "per aggiungere un computer al tuo account senza usare il BOINC Manager.\n       Per farlo, installa BOINC,\n       crea un file chiamato %1 nella cartella dati\n       di BOINC, e scrivi come contenuto:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Chiave di accesso debole"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "La tua 'chiave di accesso debole' può essere usata per aggiungere computer al tuo account\n    come descritto sopra, ma non può essere usata per fare il login al tuo account o per cambiarlo in nessun modo.\n    Se vuoi aggiungere computer non fidati o non sicuri al tuo account,\n    fallo usando la tua chiave di accesso debole.\n    La tua chiave di accesso debole è:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Se cambi la tua password, la tua chiave di accesso debole cambia, e quella precedente diventa non valida."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "impossibile trovare il lavoro"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Workunit %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "applicazione"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "risultato canonico"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "credito garantito"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Attività in corso"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "completamento in sospeso cancellato"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "quorum minimo"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "replica iniziale"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "massimo # di lavori con errori/totali/successi"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "errori"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "convalida"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Non assegnato"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Pagina principale"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Generato"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Il tuo sfondo personale."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Parlaci di te. Puoi dirci da dove vieni, la tua età, occupazione, hobbies o qualsiasi altra cosa su di te."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Le tue opinioni riguardo %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Dicci i tuoi pensieri riguardo %1<ol>\n    <li>Perché utilizzi %1?\n    <li>Quali sono i tuoi punti di vista sul progetto?\n    <li>Suggerimenti?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Schema di colori per la grafica"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Massima CPU % per la grafica%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Avvia solo le applicazioni selezionate"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Ottieni elaborazioni solo per alcune applicazioni. Utile per focalizzarsi su particolari applicazioni, o per escluderle."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Se non è disponibile lavoro per le applicazioni selezionate accettarne dalle altre applicazioni?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Utilizzare l'applicazione non-grafica, più veloce, se disponibile?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(tutte le applicazioni)"
diff --git a/locale/it_IT/BOINC-Setup.mo b/locale/it_IT/BOINC-Setup.mo
index 5dbe88b..1918d7a 100644
Binary files a/locale/it_IT/BOINC-Setup.mo and b/locale/it_IT/BOINC-Setup.mo differ
diff --git a/locale/it_IT/BOINC-Setup.po b/locale/it_IT/BOINC-Setup.po
index c78340d..e9f23c1 100644
--- a/locale/it_IT/BOINC-Setup.po
+++ b/locale/it_IT/BOINC-Setup.po
@@ -1,15 +1,16 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Sebastiano Pistore <olatusrooc at virgilio.it>, 2015
+# Sebastiano Pistore <olatusrooc at virgilio.it>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2016-03-30 11:03+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-12 11:24+0000\n"
 "Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
 "Language-Team: Italian (Italy) (http://www.transifex.com/boinc/boinc/language/it_IT/)\n"
 "MIME-Version: 1.0\n"
@@ -17,80 +18,85 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it_IT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Scusa, questa versione di %s richiede un sistema 10.5 o superiore."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Siamo spiacenti, questa versione di %s richiede un sistema operativo versione 10.6 o superiore."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Sì"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "No"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
-msgstr "BOINC deve lavorare quando non ci sono utenti connessi?"
+msgstr "BOINC può rimanere in esecuzione quando non ci sono utenti connessi?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
-msgstr "Gli utenti ai quali è permessa l'amministrazione di questo computer avranno automaticamente i permessi per avviare e controllare %s.\n\nVuoi anche dare agli utenti non amministrativi i permessi per avviare e controllare %s in questo Mac?"
+msgstr "Gli utenti ai quali è permessa l'amministrazione di questo computer avranno automaticamente i permessi per avviare e controllare %s.\n\nVuoi concedere anche agli utenti non amministratori i permessi per avviare e controllare %s in questo Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Vuoi impostare %s come screensaver per tutti gli utenti %s di questo Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Errore di permessi dopo il riavvio"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "La rimozione può richiedere alcuni minuti.\nSi prega di attendere."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
 "\n"
 "This will remove the executables but will not touch %s data files."
-msgstr "Sei sicuro di voler rimuovere completamente %s dal tuo computer?\n\nQuesto rimuoverà anche gli eseguibili ma non toccherà i file di dati di %s."
+msgstr "Sei sicuro di voler rimuovere completamente %s dal tuo computer?\n\nQuesto rimuoverà gli eseguibili ma non modificherà i file dei dati di %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
-msgstr "Annullato: %s non è stato toccato."
+msgstr "Annullato: %s non è stato modificato."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Errore non previsto: codice errore %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "nome utente"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
-msgstr "Vuoi anche rimuovere VirtualBox dal tuo computer?\n(VirtualBox è stato installato con BOINC.)"
+msgstr "Vuoi anche rimuovere VirtualBox dal tuo computer?\n(VirtualBox è stato installato assieme a BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -102,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "Rimozione completata.\n\n Potresti voler rimuovere i seguenti elementi rimanenti utilizzando Finder: \nla directory \"%s\"\n\nper ogni utente, il file\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Inserisci la tua password di amministratore per rimuovere completamente %s dal tuo computer.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Annulla"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Continua..."
diff --git a/locale/it_IT/BOINC-Web.mo b/locale/it_IT/BOINC-Web.mo
index d9ab574..b771574 100644
Binary files a/locale/it_IT/BOINC-Web.mo and b/locale/it_IT/BOINC-Web.mo differ
diff --git a/locale/it_IT/BOINC-Web.po b/locale/it_IT/BOINC-Web.po
index 6d055e9..f9f02e3 100644
--- a/locale/it_IT/BOINC-Web.po
+++ b/locale/it_IT/BOINC-Web.po
@@ -1,20 +1,19 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
 # Daniele Masini <d.masini.it at gmail.com>, 2016
 # Gianfranco Costamagna <costamagnagianfranco at yahoo.it>, 2015
+# OlatusRooc <sebastiano.pistore.info at aol.com>, 2016
 # Sebastiano Pistore <olatusrooc at virgilio.it>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-04-13 09:21+0000\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-02-23 11:19+0000\n"
 "Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
 "Language-Team: Italian (Italy) (http://www.transifex.com/boinc/boinc/language/it_IT/)\n"
 "MIME-Version: 1.0\n"
@@ -24,359 +23,466 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Italiano"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Italian"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! ti aiuta nella creazione e nella gestione degli account dei progetti BOINC e nella gestione delle preferenze, nell'adesione e nella creazione di team, nell'assegnare i computer ai diversi progetti, e molto altro ancora. Sia che tu sia un nuovo utente BOINC sia che lo usi già da tempo, troverai BAM uno strumento per far rendere  al massimo BOINC con il minimo sforzo."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Gli utenti di GridRepublic eseguono uno screensaver, quando le loro macchine non vengono utilizzate , che mostra i calcoli eseguiti sui loro computer per aiutare dei progetti di ricerca di interesse generale. Lo screensaver non influisce sulle prestazioni dei computer più di quanto faccia un qualunque salvaschermo."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Cerca"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
-msgstr "Torna alla pagina principale di BOINC"
+msgstr "Torna alla home di BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Questa pagina %spuò essere tradotta%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
-msgstr "Raccomandiamo l'installazione di VirtualBox perché alcuni progetti scientifici lo richiedono (ogni progetto che ne ha bisogno lo specifica)."
+msgstr "Raccomandiamo l'installazione di VirtualBox perché alcuni progetti lo richiedono (ogni progetto che ne ha bisogno lo specifica)."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "Leggi di più su VirtualBox."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "Scarica BOINC + Virtualbox"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "per %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "Scarica BOINC"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
-msgstr "BOINC è un programma che ti permette di donare il tempo inutilizzato del processore del tuo computer per aiutare progetti come SETI at home, Climateprediction.net, Rosetta at home, World Community Grid e molti altri."
+msgstr "BOINC è un programma che ti permette di usare il tempo inutilizzato del processore del computer per aiutare progetti come SETI at home, Climateprediction.net, Rosetta at home, World Community Grid e molti altri."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "Dopo l'installazione di BOINC sul tuo computer potrai scegliere di aiutare tutti i progetti che vorrai."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
-msgstr "Puoi eseguire questo software su un computer solo se se il proprietario del computer o se hai il permesso del suo proprietario."
+msgstr "Puoi eseguire questo software su un computer solo se ne sei il proprietario o se hai il permesso del suo proprietario."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "Ti consigliamo di scaricare BOINC da Google Play Store oppure da Amazon Appstore, non da qui. Utilizza questo collegamento solo se hai delle difficoltà con gli store ufficiali."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Requisiti di sistema"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Note di rilascio"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Aiuto"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Tutte le versioni"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
-msgstr "Storico delle versioni"
+msgstr "Cronologia delle versioni"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "Elaborazione con GPU"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: elabora per la scienza"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "L'assistenza online di BOINC ti permette di contattare utenti esperti di BOINC che possono: %s rispondere a domande su BOINC e sul calcolo distribuito volontario; %s assisterti nel processo di installazione ed utilizzo di BOINC; %s risolvere eventuali problemi che tu possa avere."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "L'assistenza online BOINC si appoggia a %sSkype%s, un sistema di telefonia tramite Internet. Skype è gratuito (sia il software che le chiamate).  Se non hai ancora Skype, %sscaricalo ed installalo ora%s.  Quando hai finito ritorna su questa pagina."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "Il modo migliore per ricevere aiuto è a voce: per farlo è necessario aver collegato al proprio computer un microfono e delle casse audio, oppure delle cuffie.  Per comunicare con i volontari dell' assistenza online puoi anche utilizzare la chat testuale di Skype o le e-mail (se non hai Skype)."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Sono disponibili volontari che parlano varie lingue. Seleziona la lingua nella quale vuoi ricevere l'aiuto:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Diventa un volontario dell'assistenza online"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Se sei un utente esperto di BOINC ti incoraggiamo a %sdiventare un volontario dell'assistenza online%s.  È molto importante per la ricerca scientifica e per il calcolo distribuito volontario: inoltre è anche divertente!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Se sei già un volontario dell'assistenza online per modificare le tue opzioni %sclicca qui%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "Gli aiutanti di BOINC sono volontari a titolo gratuito. La loro consulenza non è sostenuta da BOINC o dall'Università della California."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "Non devi %1MAI%2 fornire il tuo indirizzo e-mail o la tua password ai volontari di BOINC."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Potenza di calcolo"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
-msgstr "I migliori 100 volontari"
+msgstr "Primi 100 volontari"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Statistiche"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "Media ultime 24 ore:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOP."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Attivi:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "volontari,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "computer.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "Media delle ultime 24 ore:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOPS."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
-msgstr "News"
+msgstr "Avvisi"
+
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Database non disponibile; per favore riprovare più tardi."
 
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
-msgstr "Utente volontario"
+msgstr "volontario"
+
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Utilizza il tempo libero del tuo computer (Windows, Mac, Linux, o Android) per curare malattie, studiare il riscaldamento globale, scoprire pulsar, e per molti altri tipi di ricerca scientifica.  È innocuo, sicuro e facile:"
 
-#: index.php:92
+#: doc/index.php:95
 msgid "Download"
 msgstr "Scarica"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Documentazione"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Per l'uso nei dispositivi Android, ti consigliamo di scaricare BOINC da Google Play Store; Per l'uso su dispositivi Kindle scaricare da Amazon App Store."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Puoi scegliere di sostenere %1projects%2 come ad esempio %3, %4, oppure %5, tra i molti."
 
-#: index.php:95
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Se supporti numerosi progetti, prova ad usare un %1account manager%2 come %3GridRepublic%4 oppure %5BAM!%6. "
+
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Per saperne di più:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Forum"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Progetti"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Manuale"
+
+#: doc/index.php:123
 msgid "Add-ons"
-msgstr "Add-ons"
+msgstr "Add-on"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Link"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Utilizza il tempo libero del tuo computer (Windows, Mac, Linux, o Android) per curare malattie, studiare il riscaldamento globale, scoprire pulsar, e per molti altri tipi di ricerca scientifica.  È innocuo, sicuro e facile:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Altri modi per aiutarci:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Scegli i progetti"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Panoramica"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "Scarica il software BOINC"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Tradurre"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Inserisci un indirizzo email ed una password."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Testare"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "O, se supporti numerosi progetti, prova ad usare un %saccount manager%s come %sGridRepublic%s o %sBAM!%s. "
+#: doc/index.php:135
+msgid "Document"
+msgstr "Documentare"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "Fare calcoli usando BOINC"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Fare propaganda"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Aggiornamenti del software"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Segnalare bug"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Calcolo intensivo tramite BOINC"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1Scienziati%2: potete usare BOINC per realizzare un %3progetto di calcolo volontario%4 che abbia la potenza di elaborazione di migliaia di CPU e GPU."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
-msgstr "%1Università%2: potete usare BOINC per creare un %3mainframe virtuale%4 disponibile per tutti i bisogni dell'università."
+msgstr "%1Università%2: potete usare BOINC per creare un %3mainframe virtualizzato%4."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
-msgstr "%1Aziende%2: potete usare BOINC per il %3grid computing%4."
+msgstr "%1Aziende%2: potete usare BOINC per il %3calcolo distribuito%4 se avete bisogno di elevata potenza di calcolo."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "Informazioni su BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Documentazione"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Forum"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC e Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Sviluppo del software"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC è una piattaforma software per il calcolo distribuito. Include un client per diverse piattaforme, un server, componenti per interagire tramite un'interfaccia web, e delle API per coordinare il tutto."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Codice sorgente"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Compilare BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Linee guida di progettazione"
+
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Siamo sempre in cerca di programmatori per la manutenzione del codice di BOINC e l'implementazione di nuove funzionalità."
 
-#: index.php:182
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Processo di sviluppo"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Task di sviluppo"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC è distribuito sotto licenza open source LGPL."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "Progetto BOINC"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC è un progetto partecipativo. Tutti possono partecipare e sono i benvenuti."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "Mailing list"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "Eventi"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Codice sorgente"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Grafica"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Gestione"
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "API per il software di terze parti (add-on)"
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Assistenza dal vivo via Skype o email"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Software open-source per il calcolo volontario"
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "L'assistenza dal vivo è pensata per mettere direttamente in contatto le persone in difficoltà con un utente esperto, che si sia reso precedentemente disponibile a rispondere a dubbi su BOINC, aiutare nell'installazione e nell'uso, ed a seguire l'utente nella risoluzione di problemi relativi a BOINC."
+
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Puoi comunicare con un volontario dell'assistenza"
+
+#: doc/help.php:16
+msgid "by email"
+msgstr "via email"
+
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\na voce, via %1Skype%2, un sistema telefonico basato su Internet. Se non disponi di un client Skype puoi %3scaricarlo ed installarlo%4, in un attimo. Una volta pronto, torna a questa pagina."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "usando la chat di Skype"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "I volontari parlano diverse lingue. Scegli la lingua in cui preferisci essere assistito (il numero dei parlanti di ogni lingua è indicato tra parentesi):"
 
-#: projects.inc:19
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Diventa un volontario dell'assistenza online"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Se sei un utente esperto di BOINC ti incoraggiamo a %sdiventare un volontario dell'assistenza online%s.  È molto importante per la ricerca scientifica e per il calcolo distribuito volontario: inoltre è anche divertente!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Se sei già un volontario dell'assistenza online per modificare le tue opzioni %sclicca qui%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Le persone elencate in questa pagina sono volontarie e prestano la loro opera a titolo gratuito. La loro consulenza non è sottoposta ad approvazione da parte di BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "Non devi %1MAI%2 fornire il tuo indirizzo e-mail o la tua password ai volontari di BOINC."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Rilevamento distribuito"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Università di Stanford"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Sismologia"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "Il Quake-Catcher Network sta sviluppando la rete sismica più grande del mondo utilizzando sensori collegati a computer e smartphone."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network utilizza sensori collegati a computer e smartphone per rilevare onde sismiche."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Fondazione BOINC Polonia"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Ricerca ambientale"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Radioactive at Home ha come scopo la creazione di una mappa liberamente disponibile a tutti e continuamente aggiornata dei livelli di radiazioni, usando sensori collegati ai computer dei volontari.  È necessario acquistare un sensore per partecipare."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
-msgstr "Scienze cognitive e intelligenza artificiale"
+msgstr "Scienze cognitive ed intelligenza artificiale"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Scienze cognitive"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
-msgstr "MindModeling at Home utilizza la modellazione computazionale del processo cognitivo per capire meglio la mente umana e in particolare per studiare i meccanismi ed i processi che consentono e moderano le prestazioni umane e l'apprendimento."
+msgstr "MindModeling at Home utilizza la modellazione computazionale dei processi cognitivi per capire meglio la mente umana ed in particolare per studiare i meccanismi ed i processi che permettono ed ostacolano le prestazioni umane e l'apprendimento."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Privato"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Indipendente"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Intelligenza artificiale"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -384,55 +490,55 @@ msgid ""
 "conversations."
 msgstr "Analizzare e convertire reti semantiche da utilizzare in FreeHAL, un'intelligenza artificiale che utilizza reti semantiche, stemmers, parti di database linguistici, e parti di analizzatori grammaticali allo scopo di imitare il comportamento umano nelle conversazioni."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
-msgstr "Biologia e Medicina"
+msgstr "Biologia e medicina"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Fisiologia medica"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
-msgstr "Denis at Home fa simulazioni elettrofisiologiche cardiache, studiando l'attività elettrica del cuore."
+msgstr "Denis at Home esegue simulazioni elettrofisiologiche cardiache, studiando l'attività elettrica del cuore."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Biologia molecolare"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World mira ad identificare, analizzare, prevedere la struttura e progettare molecole di RNA usando software bioinformatici già testati."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "University College di Dublino"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
-msgstr "Ricerca di farmaci antimalarici"
+msgstr "Farmacologia degli antimalarici"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "Il parassita che causa la malaria continua a evolvere resistenza ai farmaci disponibili. Abbiamo pertanto urgente bisogno di scoprire nuovi farmaci, che agiscano sulle nuove proteine del parassita. Il progetto FightNeglectedDiseases at Home mira a trovare questi nuovi obiettivi."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Il parassita che è causa della malaria continua a sviluppare resistenza ai farmaci che si rendono via via disponibili. Abbiamo pertanto un urgente bisogno di sviluppare nuovi farmaci, che agiscano sulle proteine che si evolvono nel parassita. FiND at Home mira a scoprire quali sono queste proteine e come colpirle."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Università di Karlsruhe, Germania"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Predizione della struttura delle proteine"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -441,15 +547,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME usa un approccio computazionale per prevedere la struttura biologicamente attiva delle proteine, per comprendere i meccanismi di elaborazione del segnale quando le proteine interagiscono le une con le altre, per comprendere le malattie relative al malfunzionamento o all'aggregazione delle proteine, e sviluppare nuovi farmaci sulla base della struttura tridimensionale delle proteine biologicamente importanti."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Barcelona Biomedical Research Park (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Simulazioni molecolari di proteine"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -457,31 +563,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net apre nuovi scenari computazionali grazie al primo codice di dinamica molecolare esteso a tutti gli atomi (CellMD) appositamente ottimizzato per girare sulle GPU NVIDIA. Di colpo diventano possibili nuove applicazioni biomediche che conferiscono un nuovo ruolo alla biologia computazionale nella ricerca biomedica."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Centro per la bioinformatica e la biologia computazionale dell'Università del Maryland"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Studi nel campo delle scienze della vita"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
-msgstr "Il progetto Lattice, sviluppato e amministrato presso l'Università del Maryland, fornisce potenza di elaborazione per i ricercatori in tutto il mondo che studiano le relazioni evolutive, utilizzando i dati di sequenza di DNA e proteine."
+msgstr "Il progetto Lattice, sviluppato e amministrato presso l'Università del Maryland, fornisce potenza di elaborazione per i ricercatori in tutto il mondo che studiano le relazioni evolutive, utilizzando DNA e sequenze di proteine."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "The Swiss Tropical Institute"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Epidemiologia"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -490,17 +596,17 @@ msgid ""
 "is extremely computer intensive, requiring simulations of large human "
 "populations with a diverse set of parameters related to biological and "
 "social factors that influence the distribution of the disease. "
-msgstr "I modelli di simulazione delle dinamiche di trasmissione della malaria e dei suoi effetti sulla salute sono un importante strumento per il controllo della malaria. Essi possono essere usati per determinare le strategie ottimali nella distribuzione di zanzariere, chemioterapie o nuovi vaccini in via di sviluppo e sperimentazione. Tale modellazione è estremamente intensiva dal punto di vista computazionale, dato che richiede la simulazione di popolazioni umane con un diverso gruppo [...]
+msgstr "I modelli di simulazione delle dinamiche di trasmissione della malaria e dei suoi effetti sulla salute sono un importante strumento per il controllo della malaria. Essi possono essere usati per determinare le strategie ottimali nella distribuzione di zanzariere, chemioterapie o nuovi vaccini in via di sviluppo e sperimentazione. Questa modellazione è estremamente intensiva dal punto di vista computazionale, dato che richiede la simulazione di popolazioni umane con un diverso grup [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Università di Washington"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biologia"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -508,21 +614,21 @@ msgid ""
 "couldn't possibly attempt without your help. You will also be helping our "
 "efforts at designing new proteins to fight diseases such as HIV, malaria, "
 "cancer, and Alzheimer's"
-msgstr "Determina le forme 3d delle proteine in ricerca che in ultima analisi può portare a trovare cure per alcune principali malattie umane. Eseguendo Rosetta at home ci aiuterete a velocizzare e ampliare la nostra ricerca in modi che non potevamo nemmeno immaginare senza il tuo aiuto. Sarete anche in grado di aiutare i nostri sforzi a progettare nuove proteine per combattere malattie come HIV, malaria, cancro e Alzheimer"
+msgstr "Determinare le forme 3d delle proteine in una ricerca che in ultima analisi può condurre allo sviluppo di cure per alcune delle principali malattie umane. Eseguendo Rosetta at home ci aiuterete a velocizzare e rendere più precisa la nostra ricerca in modi che non potevamo nemmeno immaginare senza il tuo aiuto. Sarete anche in grado di aiutare i nostri sforzi a progettare nuove proteine per combattere malattie come HIV, malaria, cancro ed Alzheimer"
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Scienze della Terra"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Università di Oxford"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Climatologia"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -532,27 +638,18 @@ msgid ""
 "changes and also to things like changes in carbon dioxide and the sulphur "
 "cycle. This will allow us to explore how climate may change in the next "
 "century under a wide range of different scenarios."
-msgstr "Investigare le approssimazioni che devono essere fatte allo stato dell'arte dei modelli climatici. Eseguendo l'elaborazione del modello migliaia di volte contiamo di scoprire in che modo esso risponda a piccole variazioni di queste approssimazioni - sufficientemente piccole da non far diventare le approssimazioni meno realistiche. Questo ci consentirà di migliorare la nostra comprensione di quanto sensibili siano i nostri modelli a piccoli cambiamenti, ed anche ad aspetti quali i [...]
+msgstr "Investigare le approssimazioni che sono accettabili nei modelli climatici allo stato dell'arte. Eseguendo l'elaborazione di un modello migliaia di volte contiamo di scoprire in che modo esso risponda a piccole variazioni di queste approssimazioni - sufficientemente piccole da non far diventare le approssimazioni meno realistiche. Questo ci consentirà di migliorare la nostra comprensione di quanto sensibili siano i nostri modelli ai piccoli cambiamenti, anche ad aspetti quali i ca [...]
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Fisica"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Ingegneria meccanica"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "Al momento stiamo calcolando il design migliore per una complicata struttura detta \"52 bar truss\"."
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomia"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -562,11 +659,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS è un progetto di astronomia che studia 16 diverse proprietà delle galassie, tra cui luminosità, massa, quantità di polvere e quanto velocemente si stanno formando le stelle. Stiamo utilizzando la potenza di elaborazione per condurre calcoli pixel-per-pixel sulle immagini di multi-lunghezza d'onda (luce ultravioletta, ottica e infrarosso) di galassie per produrre un atlante che aiuterà gli astronomi a capire meglio l'universo lontano."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Astrofisica"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -574,57 +671,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "L'obiettivo del progetto è quello di derivare forme e spin per una parte significativa della popolazione degli asteroidi. Come dati di input, usiamo qualsiasi fotometria di asteroidi che è disponibile. I risultati sono modelli di forma convessa dell'asteroide con la direzione dell'asse di rotazione e il periodo di rotazione."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Ingegneria aerospaziale e scienze collegate"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Università dell'Illinois di Urbana-Champaign"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation è una piattaforma per le simulazioni aerospaziali: ottimizzazione della traiettoria di lanciatori, satelliti e sonde, simulazione dell'esosfera vicina alla superficie della Luna e analisi dei sistemi dinamici di esplorazione dei rover"
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Esegue simulazioni legate all'aerospaziale"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "L'obiettivo di Cosmology at Home è di cercare il modello che meglio descrive il nostro Universo e trovare l'intervallo di modelli che concordano con i dati disponibili dalla fisica delle particelle astronomiche."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home mira a creare il primo database del contenuto simulato stellare dell'universo, dalle stelle più vecchie ai buchi neri binari più esotici."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Fare ricerca in fisica ed astronomia"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
-msgstr "Rensselaer Polytechnic Institute"
+msgstr "Politecnico Rensselaer a Troy"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "L'obiettivo di Milkyway at Home è di creare un modello tridimensionale più accurato possibile della Via Lattea usando i dati raccolti dallo Sloan Digital Sky Survey."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Studio della struttura della Via Lattea"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Università di Leida, Paesi Bassi"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Chimica"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -634,15 +726,15 @@ msgid ""
 "simulations through the grid."
 msgstr "Calcoli relativi alla scienza delle superfici utilizzando la dinamica classica. Leiden Classical permette a volontari, studenti e altri scienziati di accodare le proprie richieste di elaborazione nella rete. Ogni utente ha la sua coda personale per le simulazioni di dinamica classica. In questo modo degli studenti hanno già usato la rete per simulare l'argon liquido, o per testare la validità della legge dei gas ideali (equazione di stato dei gas perfetti)."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Aiutare gli studenti a fare simulazioni atomiche"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Università del Wisconsin a Milwaukee ed Istituto Max Planck"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -651,19 +743,19 @@ msgid ""
 "international organizations."
 msgstr "Cercare stelle di neutroni rotanti (dette anche pulsar) usando i dati dai rivelatori di onde gravitazionali LIGO e GEO, e dal radiotelescopio di Arecibo. Einstein at Home è un progetto dell'Anno internazionale della Fisica 2005, supportato dall'American Physical Society (APS) e da un certo numero di organizzazioni internazionali."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "Aiuto nel rilevamento di pulsar ed onde gravitazionali"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
-msgstr "CERN (Organizzazione Europea per la Ricerca Nucleare)"
+msgstr "CERN (Organizzazione europea per la ricerca nucleare)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Fisica"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -672,42 +764,42 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "Il Large Hadron Collider (LHC) è un acceleratore di particelle sito al CERN, l'Organizzazione Europea per la Ricerca Nucleare, il più grande laboratorio di fisica delle particelle del mondo. Oggi è il più potente strumento del mondo per lo studio delle proprietà delle particelle. LHC at home esegue simulazioni per migliorare il progetto di LHC e dei suoi rivelatori."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "Migliorare il progetto di LHC"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
-msgstr "Questo progetto utilizza la macchina virtuale sviluppata al CERN per la simulazione fisica degli eventi dell'LHC sui computer dei volontari.  È necessario installare VirtualBox su questi computer per eseguirla."
+msgstr "Questo progetto utilizza la macchina virtuale sviluppata al CERN per la simulazione fisica degli eventi dell'LHC sui computer dei volontari. È necessario installare VirtualBox sui computer per eseguirla."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Simulare collisioni di particelle ad alta energia"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
 " particles and processes using head-on collisions of protons of "
 "extraordinary high energy."
-msgstr "Atlas at Home esegue simulazioni per ATLAS, un esperimento di fisica delle particelle al Large Hadron Collider del CERN.  ATLAS cerca nuove particelle e processi tramite collisioni di protoni ad alta energia."
+msgstr "Atlas at Home esegue simulazioni per ATLAS, un esperimento di fisica delle particelle al Large Hadron Collider del CERN. ATLAS cerca di individuare nuove particelle e fenomeni che si verificano durante le collisioni di protoni ad alta energia."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "Simulare collisioni di particelle ad alta energia per il CERN"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Università di Berkeley, California"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrofisica, astrobiologia"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -716,106 +808,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Search for Extraterrestrial Intelligence, Ricerca di intelligenza extraterrestre) è un'area scientifica il cui obiettivo è rilevare vita intelligente al di fuori della Terra. Uno degli approcci che adotta, noto come SETI radio, utilizza radiotelescopi per ascoltare segnali radio a banda stretta provenienti dallo spazio. È noto che tali segnali non sono di origine naturale, quindi la loro rilevazione costituirebbe una prova dell'esistenza di tecnologia extraterrestre."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "Ricerca di prove di vita extraterrestre"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Applicazioni multiple"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
-msgstr "Biologia molecolare, Informatica"
+msgstr "Biologia molecolare, informatica"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "Il Citizen Science Grid è dedicato a sostenere una vasta gamma di ricerche e progetti educativi utilizzando il calcolo volontario e la scienza della città."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
-msgstr "Sostenere la scienza dalle University del North Dakota"
+msgstr "Sostenere la ricerca dell'Università del Nord Dakota"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Accademia cinese delle scienze"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
-msgstr "Fisica, biochimica, ed altro"
+msgstr "Fisica, biochimica, altre"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "L'obiettivo di CAS at home è di incoraggiare ed assistere gli scienziati cinesi ad adottare le tecnologie del calcolo distribuito volontario pensando alle loro ricerche."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home è portato avanti dal Centro di calcolo dell'Istituto di Fisica delle alte energie (IHEP), dell'Accademia cinese delle scienze, per servire gli scienziati cinesi i cui progetti ricadano nello studio della struttura delle proteine, la nanotecnologia, l'oncogenetica, e la fisica delle alte energie."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Aiutare i ricercatori cinesi"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
-msgstr "Matematica, fisica, evoluzione"
+msgstr "Matematica, fisica, biologia evoluzionistica"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home è un wrapper tra BOINC e vari altri progetti di calcolo volontario esistenti: ECM, Muon, Evolution at home, e distributed.net"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "Fare ricerca in matematica, fisica ed evoluzione"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "MTA-SZTAKI, Laboratorio di sistemi paralleli e distribuiti, Ungheria"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Progetti di ricerca europei"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "Il progetto EDGeS at Home Beta integra il calcolo volontario nella Network Service Grid europea permettendole di inviare workunit da far elaborare ai volontari. I progetti scientifici coperti dal progetto includono matematica, fisica, biologia, ecc."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Aiutare i ricercatori europei"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Università e centri di ricerca spagnoli"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Diversi progetti di ricerca spagnoli"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Ricerca in fisica, scienza dei materiali e biomedicina"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "Aiutare i ricercatori spagnoli"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
-msgstr "Cittadinanza IBM Corporate"
+msgstr "IBM Corporate Citizenship"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Medicina, ambiente ed altre ricerche benefiche"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -823,20 +896,20 @@ msgid ""
 "clean water and many more."
 msgstr "Ricerche critiche non profit su alcuni dei problemi importanti dell'umanità e si prefigge di creare la più grande rete di calcolo distribuito.  Le ricerche includono HIV-AIDS, cancro, malattie tropicali, malattie poco studiate, energia solare, acqua pulita ed altri campi."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "Fare la ricerca biomedica e dell'ambiente"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Matematica, calcolo computazionale e teoria dei giochi"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Matematica"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -846,64 +919,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home ricerca per campi con proprietà speciali. L'applicazione principale di questa ricerca è il regno della teoria dei numeri algebrica. I teorici dei numeri possono estrarre i dati per modelli interessanti per aiutarli a formulare congetture sui campi dei numeri. In definitiva, questa ricerca porterà a una più profonda comprensione delle proprietà profonde dei numeri, i blocchi base di tutta la matematica."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "Fare ricerca in teoria dei numeri algebrica"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Informatica"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "Risolvere i problemi con una complessità e importanza pratica (problemi di inversione di funzioni discrete, ottimizzazione discreta, bioinformatica, ecc.) che possono essere efficacemente ridotti al problema di soddisfacibilità booleana."
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Studiare la complessità computazionale"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
-msgstr "Crittografia e combinatoria"
+msgstr "Crittografia e calcolo combinatorio"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "Eseguire applicazioni da distributed.net"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Crittografia"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Tentare di decodificare tre messaggi codificati con la macchina Enigma dalla Germania nazista. I segnali vennero intercettati nell'Atlantico del nord nel 1942 e si crede siano intatti, anche se il loro contenuto è ancora sconosciuto."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "Decodificare i messaggi dei sommergibili della Seconda guerra mondiale"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Studiare la congettura di Collatz, una congettura matematica irrisolta"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "Studiare la congettura di Collatz"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
-msgstr "California State University Fullerton"
+msgstr "Università statale della California a Fullerton"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Fattorizzazione di numeri interi grandi"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -913,56 +986,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home è un progetto di ricerca che utilizza computer connessi ad Internet per effettuare l'iterazione del crivello di reticoli (lattice sieving) nella fattorizzazione di grandi interi con il metodo del crivello dei campi di numeri. Da giovane studente, hai fatto la tua prima esperienza di scomposizione di interi in fattori primi, ad esempio 15 = 3 * 5 oppure 35 = 5 * 7. NFS at Home è una continuazione di quell'esperienza, solo con interi con centinaia di cifre."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "Studiare la fattorizzazione dei numeri interi grandi"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid ha progetti multipli che cercano differenti forme di grandi numeri primi, inclusa la ricerca del più grande numero primo conosciuto."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Ricerca di numeri primi grandi"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Hochschule RheinMain University of Applied Sciences"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Cercare controesempi a due congetture riguardanti l'identificazione di numeri primi"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Studiare le proprietà dei numeri primi"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI, Laboratorio di sistemi paralleli e distribuiti, Ungheria"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Trovare tutti i sistemi generalizzati di numeri binari (nei quali le basi sono matrici e le cifre sono vettori) fino a dimensione 11."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Studiare la teoria dei numeri"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
-msgstr "Test e confronto di metodi euristici per ottenere separazioni di algoritmi paralleli che funzionino in ambienti CAD orientati alla progettazione di sistemi di controllo"
+msgstr "Test e confronto di metodi euristici per ottenere separazioni di algoritmi paralleli che funzionino in ambienti CAD orientati alla progettazione di sistemi di controllo."
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Commenta"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discuti"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Le news sono disponibili come %sfeed RSS%s"
diff --git a/locale/ja/BOINC-Client.mo b/locale/ja/BOINC-Client.mo
index 1460f88..049d7e1 100644
Binary files a/locale/ja/BOINC-Client.mo and b/locale/ja/BOINC-Client.mo differ
diff --git a/locale/ja/BOINC-Client.po b/locale/ja/BOINC-Client.po
index 6c94559..a3ca7b4 100644
--- a/locale/ja/BOINC-Client.po
+++ b/locale/ja/BOINC-Client.po
@@ -7,12 +7,12 @@
 # Masahiro Tagashira, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-23 16:16+0000\n"
+"PO-Revision-Date: 2015-02-28 20:12+0000\n"
 "Last-Translator: Masahiro Tagashira\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/boinc/language/ja/)\n"
+"Language-Team: Japanese (http://www.transifex.com/boinc/boinc/language/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -21,11 +21,11 @@ msgstr ""
 
 #: acct_mgr.cpp:450 acct_mgr.cpp:459
 msgid "Message from account manager"
-msgstr "アカウント・マネージャからのお知らせ:"
+msgstr "アカウント・マネージャからのお知らせ"
 
 #: client_msgs.cpp:81
 msgid "Message from server"
-msgstr "プロジェクト・サーバからのメッセージ:"
+msgstr "プロジェクト・サーバからのメッセージ"
 
 #: client_state.cpp:258
 msgid ""
@@ -39,14 +39,14 @@ msgstr "状態ファイルを書くことができませんでした。ディレ
 
 #: cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-msgstr "環境変数 HTTP_PROXY で HTTP プロキシを指定する必要があります。"
+msgstr "環境変数 HTTP_PROXY でHTTPプロキシを指定する必要があります。"
 
 #: cs_scheduler.cpp:613
 #, c-format
 msgid ""
 "You used the wrong URL for this project.  When convenient, remove this "
 "project, then add %s"
-msgstr "このプロジェクトに対して誤った URL を使っています。都合の良いときに、このプロジェクトを削除し、その後 %s を追加してください。"
+msgstr "このプロジェクトに対して誤ったURLを使っています。都合の良いときに、このプロジェクトを削除し、その後 %s を追加してください。"
 
 #: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
 msgid "Syntax error in app_info.xml"
@@ -100,41 +100,41 @@ msgstr "このプロジェクトはセキュリティ・キーを変更しまし
 
 #: ../sched/handle_request.cpp:943
 msgid "This project doesn't support operating system"
-msgstr "このプロジェクトは次に示す OS をサポートしていません: "
+msgstr "このプロジェクトは次に示すOSをサポートしていません: "
 
 #: ../sched/handle_request.cpp:969
 msgid "This project doesn't support CPU type"
-msgstr "このプロジェクトは次に示す CPU をサポートしていません: "
+msgstr "このプロジェクトは次に示すCPUをサポートしていません: "
 
 #: ../sched/handle_request.cpp:993
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
-msgstr "あなたのマシンに入っている BOINC クライアントソフトウェアは古過ぎます。現在の版にインストールしなおしてください。"
+msgstr "あなたのマシンに入っているBOINCクライアントソフトウェアは古過ぎます。現在の版にインストールしなおしてください。"
 
 #: ../sched/handle_request.cpp:1259
 msgid "This project doesn't support computers of type"
-msgstr "このプロジェクトは次に示す プラットフォーム をサポートしていません: "
+msgstr "このプロジェクトは次に示すプラットフォームをサポートしていません: "
 
 #: ../sched/sched_send.cpp:1092
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr "あなたのコンピュータが持つ GPU を使ってタスクを処理したければ、ドライバーを最新のものにアップグレードしてください。"
+msgstr "あなたのコンピュータが持つGPUを使ってタスクを処理したければ、ドライバーを最新のものにアップグレードしてください。"
 
 #: ../sched/sched_send.cpp:1099
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
-msgstr "このプロジェクトの GPU アプリケーションの全てを使いたければ、ドライバーを最新のものにアップグレードしてください。"
+msgstr "このプロジェクトのGPUアプリケーションの全てを使いたければ、ドライバーを最新のものにアップグレードしてください。"
 
 #: ../sched/sched_send.cpp:1118
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
-msgstr "あなたのマシンの NVIDIA GPU を使いたければ、より新しい版の BOINC が必要です。現在の版の BOINC へアップグレードしてください。"
+msgstr "あなたのマシンのNVIDIA GPUを使いたければ、より新しいバージョンのBOINCが必要です。最新バージョンのBOINCへアップグレードしてください。"
 
 #: ../sched/sched_send.cpp:1146
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
-msgstr "このプロジェクトの仕事を動作させるためには %s GPU が必要とされます"
+msgstr "このプロジェクトの仕事を動作させるためには %s GPUが必要とされます"
 
 #: ../sched/sched_send.cpp:1262
 msgid "No tasks are available for the applications you have selected."
@@ -146,7 +146,7 @@ msgstr "あなたのコンピュータのプラットフォームはこのプロ
 
 #: ../sched/sched_send.cpp:1294
 msgid "Newer BOINC version required; please install current version"
-msgstr "より新しい版の BOINC が必要です。最新版をインストールしてください。"
+msgstr "より新しいバージョンのBOINCが必要です。最新バージョンをインストールしてください。"
 
 #: ../sched/sched_send.cpp:1305
 #, c-format
@@ -160,4 +160,4 @@ msgstr "app_info.xml の中に不明なアプリケーション名がありま
 
 #: ../sched/sched_version.cpp:214
 msgid "Your app_info.xml file doesn't have a usable version of"
-msgstr "あなたの app_info.xml ファイルには次のアプリケーションの利用可能な版が記述されていません:"
+msgstr "あなたの app_info.xml ファイルには次のアプリケーションの利用可能な版が記述されていません: "
diff --git a/locale/ja/BOINC-Manager.mo b/locale/ja/BOINC-Manager.mo
index 9e4332c..880197b 100644
Binary files a/locale/ja/BOINC-Manager.mo and b/locale/ja/BOINC-Manager.mo differ
diff --git a/locale/ja/BOINC-Manager.po b/locale/ja/BOINC-Manager.po
index 45dc6e4..72d5b81 100644
--- a/locale/ja/BOINC-Manager.po
+++ b/locale/ja/BOINC-Manager.po
@@ -4,15 +4,17 @@
 # 
 # Translators:
 # boinc at tokyo <boinc.tokyo at gmail.com>, 2015
-# crazymaster <ken.i54k at gmail.com>, 2015
-# Masahiro Tagashira, 2015
+# Kenichi Ito <ken.i54k at gmail.com>, 2015
+# Kenichi Ito <ken.i54k at gmail.com>, 2015
+# Masahiro Tagashira, 2015-2016
+# victory <victory.deb at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-08-24 17:05-0500\n"
-"PO-Revision-Date: 2015-09-13 03:02+0000\n"
-"Last-Translator: boinc at tokyo <boinc.tokyo at gmail.com>\n"
+"POT-Creation-Date: 2015-10-16 17:27-0500\n"
+"PO-Revision-Date: 2016-07-19 17:22+0000\n"
+"Last-Translator: victory <victory.deb at gmail.com>\n"
 "Language-Team: Japanese (http://www.transifex.com/boinc/boinc/language/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -210,7 +212,7 @@ msgstr "接続を切りました"
 #: clientgui/AdvancedFrame.cpp:329
 #, c-format
 msgid "New %s window..."
-msgstr "新しい %s ウィンドウ…"
+msgstr "新しい %s ウィンドウ..."
 
 #: clientgui/AdvancedFrame.cpp:333
 #, c-format
@@ -321,7 +323,7 @@ msgstr "プロジェクトを追加します"
 
 #: clientgui/AdvancedFrame.cpp:458
 msgid "&Use account manager..."
-msgstr "アカウント・マネージャを使用(&U)…"
+msgstr "アカウント・マネージャを使用(&U)..."
 
 #: clientgui/AdvancedFrame.cpp:459
 msgid "Use an account manager to control this computer."
@@ -460,7 +462,7 @@ msgstr "排他的なアプリケーションの設定"
 
 #: clientgui/AdvancedFrame.cpp:616
 msgid "Select columns..."
-msgstr "カラムの選択…"
+msgstr "カラムの選択..."
 
 #: clientgui/AdvancedFrame.cpp:617
 msgid "Select which columns to display"
@@ -661,7 +663,7 @@ msgstr "%s - 通信"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
 #: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
-#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:355
+#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "キャンセル"
 
@@ -739,12 +741,12 @@ msgstr "%s は現在 %s クライアントと繋がっていません。メニ
 msgid "Project web pages"
 msgstr "プロジェクトのウェブページ"
 
-#: clientgui/BOINCClientManager.cpp:545
+#: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
 msgstr "%s - 予期しない終了"
 
-#: clientgui/BOINCClientManager.cpp:555
+#: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
@@ -820,7 +822,7 @@ msgid " at "
 msgstr "で"
 
 #: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:887
+#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
 msgid ")"
 msgstr ")"
 
@@ -923,7 +925,7 @@ msgstr "GPU を休止"
 msgid "E&xit"
 msgstr "終了(&X)"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:808
+#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
 #: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
 #: clientgui/sg_ProjectCommandPopup.cpp:125
 #: clientgui/sg_TaskCommandPopup.cpp:118
@@ -1086,15 +1088,15 @@ msgstr "詳細については、以下を訪問してください"
 msgid "&OK"
 msgstr "OK(&O)"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:773
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
 msgid "Invalid number"
 msgstr "無効な数字"
 
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:774
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
 msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
 msgstr "無効な時間です、値は 0:00 から 24:00 の間、書式は HH:MM でなければなりません"
 
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:775
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
 msgid "Start time must be different from end time"
 msgstr "開始時間は終了時間と異ならなければなりません"
 
@@ -1102,7 +1104,7 @@ msgstr "開始時間は終了時間と異ならなければなりません"
 msgid "Number must be between 0 and 10"
 msgstr "数字は 0 から 10 の間でなければなりません"
 
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:776
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
 msgid "Number must be between 0 and 100"
 msgstr "数字は 0 から 100 の間でなければなりません"
 
@@ -1110,11 +1112,11 @@ msgstr "数字は 0 から 100 の間でなければなりません"
 msgid "Number must be between 1 and 100"
 msgstr "数は 0 から 100 の間でなければなりません"
 
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:847
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
 msgid "invalid input value detected"
 msgstr "無効な入力値が検出されました"
 
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:849
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
 msgid "Validation Error"
 msgstr "検証エラー"
 
@@ -1122,7 +1124,7 @@ msgstr "検証エラー"
 msgid "Discard local preferences and use web-based preferences?"
 msgstr "ローカル・プレファレンスを放棄してウェブ上のプレファレンスを使用しますか?"
 
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1175
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
 msgid "Confirmation"
 msgstr "確認"
 
@@ -1131,25 +1133,25 @@ msgstr "確認"
 msgid "%s - Computing preferences"
 msgstr "%s - 計算に関するプレファレンス(好みの設定)"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:161
+#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:163
 msgid ""
 "Using local preferences.\n"
 "Click \"Use web prefs\" to use web-based preferences from"
 msgstr "ローカル・プレファレンスを使用しています。\n[ウェブのプレファレンスを使用する]をクリックすると下記のウェブ上のプレファレンスを使用します:"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:169
+#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
 msgid "Using web-based preferences from"
 msgstr "下記のウェブ上のプレファレンスを使用しています:"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:187
+#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
 msgid "Set values and click OK to use local preferences instead."
 msgstr "代わりにローカル・プレファレンスを使用する場合、値を設定しOKをクリックします。"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:215
+#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
 msgid "Use web prefs"
 msgstr "ウェブのプレファレンスを使用する"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:216
+#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
 msgid "Restore web-based preferences and close the dialog."
 msgstr "ウェブ上のプレファレンスを復元しダイアログを終了します。"
 
@@ -1174,7 +1176,7 @@ msgstr "日ごとのスケジュール"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
 #: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
-#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:351
+#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
 
@@ -1189,7 +1191,7 @@ msgstr "保存せずにダイアログを終了します。"
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
 #: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
-#: clientgui/sg_DlgPreferences.cpp:361
+#: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "ヘルプ"
 
@@ -1210,7 +1212,7 @@ msgid ""
 msgstr "他のアプリケーションのためにいくつかの CPU を自由に保ちます。例: 75%であれば、8コアCPUの場合そのうち6コアを使用するということです。"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:243
-#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:284
+#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
 msgid "Use at most"
 msgstr "最大で"
 
@@ -1219,7 +1221,7 @@ msgstr "最大で"
 msgid "% of the CPUs"
 msgstr "% の CPUコアまで"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:282
+#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
 #, no-c-format
 msgid ""
 "Suspend/resume computing every few seconds to reduce CPU temperature and "
@@ -1227,7 +1229,7 @@ msgid ""
 "and repeat."
 msgstr "CPU温度とエネルギー使用量を抑制するために数秒ごとに計算を一時停止/再開する。例: 75%であれば、3秒計算・1秒一時停止を繰り返すということです。"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:289
+#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
 #, no-c-format
 msgid "% of CPU time"
 msgstr "% の CPU 時間まで"
@@ -1236,20 +1238,20 @@ msgstr "% の CPU 時間まで"
 msgid "When to suspend"
 msgstr "いつ一時停止するか"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:237
+#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:239
 msgid "Suspend when computer is on battery"
 msgstr "コンピュータがバッテリーで稼働している時一時停止"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:233
+#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
 msgid ""
 "Check this to suspend computing on portables when running on battery power."
 msgstr "携帯用機器でバッテリー電源で動作している時計算を一時停止するには、ここにチェックを入れてください。"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:251
+#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
 msgid "Suspend when computer is in use"
 msgstr "コンピュータを使用中は、計算を一時停止"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:247
+#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
 msgid ""
 "Check this to suspend computing and file transfers when you're using the "
 "computer."
@@ -1264,19 +1266,19 @@ msgid "Check this to suspend GPU computing when you're using the computer."
 msgstr "あなたがコンピュータを使用している時 GPU による計算を一時停止するには、ここにチェックを入れます。"
 
 #. min idle time
-#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:262
+#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
 msgid "This determines when the computer is considered 'in use'."
 msgstr "ここではコンピュータがどんな場合に「使用中」とみなすか決定します。"
 
 #. context: 'In use' means mouse/keyboard input in last ___ minutes
-#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:266
+#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
 msgid "'In use' means mouse/keyboard input in last"
 msgstr "「使用中」とは、マウス・キーボード入力が右の時間内にあった場合のことです:"
 
 #. context: 'In use' means mouse/keyboard input in last ___ minutes
 #. context: Switch between tasks every ___ minutes
 #: clientgui/DlgAdvPreferencesBase.cpp:315
-#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:274
+#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:276
 msgid "minutes"
 msgstr "分"
 
@@ -1338,9 +1340,9 @@ msgstr "タスクの切り替え間隔"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:419
 msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "ここではタスクが後ほど再起動されることが出来るようにするために、ディスクにその状態を保存する間隔を設定します。"
+"This controls how often tasks save their state to disk, so that they later "
+"can be continued from that point."
+msgstr "これはタスクの状態をディスクに保存する頻度を制御します。保存することで、後でそこから再開できるようになります。"
 
 #. context: Request tasks to checkpoint at most every ___ seconds
 #: clientgui/DlgAdvPreferencesBase.cpp:423
@@ -1428,13 +1430,13 @@ msgstr "ディスク"
 msgid "%s will use the most restrictive of these settings:"
 msgstr "%sは、これら3つの設定のうち最も制限的なものを使用します:"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:333
+#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
 #, c-format
 msgid "Limit the total amount of disk space used by %s."
 msgstr "%sによって使用されるディスク領域の合計を制限します。"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:573
-#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:336
+#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
 msgid "Use no more than"
 msgstr "使用上限:"
 
@@ -1518,7 +1520,7 @@ msgstr "%s によって使用されるスワップ領域(ページファイル)
 msgid "Page/swap file: use at most"
 msgstr "ページ/スワップファイル: 最大使用時でも"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:293
+#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
 msgid "and"
 msgstr "から"
 
@@ -1526,11 +1528,11 @@ msgstr "から"
 msgid "to"
 msgstr "から"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:294
+#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:296
 msgid "Compute only during a particular period each day."
 msgstr "それぞれの日の特定範囲の時間帯だけ計算します。"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:297
+#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:299
 msgid "Compute only between"
 msgstr "下記の間だけ計算:"
 
@@ -1579,11 +1581,11 @@ msgstr "日曜日"
 msgid "Thursday"
 msgstr "木曜日"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:315
+#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
 msgid "Transfer files only during a particular period each day."
 msgstr "それぞれの日の特定範囲の時間帯だけファイルを転送します。"
 
-#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:317
+#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
 msgid "Transfer files only between"
 msgstr "下記の間だけファイルを転送"
 
@@ -1599,7 +1601,7 @@ msgstr "これらのフラグは、イベントログ内のさまざまな種類
 
 #: clientgui/DlgDiagnosticLogFlags.cpp:99
 msgid "More info ..."
-msgstr "詳細情報…"
+msgstr "詳細情報..."
 
 #: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
@@ -1617,45 +1619,45 @@ msgstr "初期値の設定を復元"
 msgid "Close the dialog without saving"
 msgstr "保存せずにダイアログを終了する"
 
-#: clientgui/DlgEventLog.cpp:227
+#: clientgui/DlgEventLog.cpp:236
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - イベント・ログ"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
-#: clientgui/ViewProjects.cpp:255 clientgui/ViewStatistics.cpp:411
+#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "プロジェクト"
 
-#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "日時"
 
-#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "メッセージ"
 
-#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
+#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
 msgid "&Show only this project"
 msgstr "このプロジェクトだけを表示(&S)"
 
-#: clientgui/DlgEventLog.cpp:300
+#: clientgui/DlgEventLog.cpp:309
 msgid "Copy &All"
 msgstr "すべてコピー(&A)"
 
-#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
+#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "全メッセージをクリップボードにコピーします"
 
-#: clientgui/DlgEventLog.cpp:311
+#: clientgui/DlgEventLog.cpp:320
 msgid "Copy &Selected"
 msgstr "選択部分をコピー(&S)"
 
-#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
+#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1663,7 +1665,7 @@ msgid ""
 "messages."
 msgstr "選択したメッセージをクリップボードにコピーします。シフトまたはコマンドキーを押しながらクリックすることで複数のメッセージを選択できます。"
 
-#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
+#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1671,19 +1673,19 @@ msgid ""
 "messages."
 msgstr "選択したメッセージをクリップボードにコピーします。シフトまたはコントロールキーを押しながら、メッセージをクリックすれば複数のメッセージを選択できます。 "
 
-#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "閉じる(&C)"
 
-#: clientgui/DlgEventLog.cpp:340
+#: clientgui/DlgEventLog.cpp:349
 msgid "Show all &messages"
 msgstr "全メッセージを表示(&M)"
 
-#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
+#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
 msgid "Show messages for all projects"
 msgstr "すべてのプロジェクトのメッセージを表示"
 
-#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
 msgid "Show only the messages for the selected project"
 msgstr "選択したプロジェクトのメッセージだけを表示"
 
@@ -1699,14 +1701,14 @@ msgstr "これらのアプリケーションが動作中の場合プロセッサ
 
 #: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
 msgid "Add..."
-msgstr "追加…"
+msgstr "追加..."
 
 #: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
 msgid "Add an application to this list"
 msgstr "このリストにアプリケーションを追加"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:234 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
 msgid "Remove"
 msgstr "削除"
 
@@ -1825,13 +1827,13 @@ msgstr "%s カラムの選択"
 msgid "Select which columns %s should show."
 msgstr "%s がどのカラムを表示すべきか選択します。"
 
-#: clientgui/DlgHiddenColumns.cpp:314
+#: clientgui/DlgHiddenColumns.cpp:358
 msgid ""
 "Are you sure you want to reset all list columns to the default "
 "configurations?"
 msgstr "本当にすべての表のカラムを初期構成にリセットしますか?"
 
-#: clientgui/DlgHiddenColumns.cpp:315
+#: clientgui/DlgHiddenColumns.cpp:359
 msgid "Confirm defaults"
 msgstr "初期値の確認"
 
@@ -1888,7 +1890,7 @@ msgstr "参加者名(ユーザー名)"
 msgid "Team name"
 msgstr "チームの名称"
 
-#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:260
+#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:256
 msgid "Resource share"
 msgstr "リソース割り当て"
 
@@ -1981,8 +1983,8 @@ msgstr "参加者"
 
 #: clientgui/DlgItemProperties.cpp:300 clientgui/DlgItemProperties.cpp:308
 #, c-format
-msgid "%0.2f total, %0.2f average"
-msgstr "%0.2f 合計 %0.2f 平均"
+msgid "%s total, %s average"
+msgstr "合計 %s、平均 %s"
 
 #: clientgui/DlgItemProperties.cpp:305
 msgid "Host"
@@ -2040,64 +2042,64 @@ msgstr "リソース"
 msgid "Estimated computation size"
 msgstr "推定計算量"
 
-#: clientgui/DlgItemProperties.cpp:388
+#: clientgui/DlgItemProperties.cpp:390
 msgid "CPU time at last checkpoint"
 msgstr "最新のチェックポイントでのCPU時間"
 
-#: clientgui/DlgItemProperties.cpp:389 clientgui/DlgItemProperties.cpp:415
+#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "CPU時間"
 
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:416
+#: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "経過時間"
 
-#: clientgui/DlgItemProperties.cpp:393
+#: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
 msgstr "推定される残り時間"
 
-#: clientgui/DlgItemProperties.cpp:394
+#: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
 msgstr "仕事の計算完了率"
 
-#: clientgui/DlgItemProperties.cpp:395
+#: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
 msgstr "仮想メモリの大きさ"
 
-#: clientgui/DlgItemProperties.cpp:396
+#: clientgui/DlgItemProperties.cpp:398
 msgid "Working set size"
 msgstr "ワーキング・セットの大きさ"
 
-#: clientgui/DlgItemProperties.cpp:398
+#: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
 msgstr "ディレクトリ"
 
-#: clientgui/DlgItemProperties.cpp:401
+#: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
 msgstr "プロセスID"
 
-#: clientgui/DlgItemProperties.cpp:407 clientgui/DlgItemProperties.cpp:409
-#: clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
 msgid "Progress rate"
 msgstr "進捗率"
 
-#: clientgui/DlgItemProperties.cpp:407
+#: clientgui/DlgItemProperties.cpp:409
 msgid "per hour"
 msgstr "毎時"
 
-#: clientgui/DlgItemProperties.cpp:409
+#: clientgui/DlgItemProperties.cpp:411
 msgid "per minute"
 msgstr "毎分"
 
-#: clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
 msgid "per second"
 msgstr "毎秒"
 
-#: clientgui/DlgItemProperties.cpp:419
+#: clientgui/DlgItemProperties.cpp:421
 msgid "Executable"
 msgstr "実行可能ファイル"
 
-#: clientgui/DlgItemProperties.cpp:485 clientgui/ViewWork.cpp:1125
+#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
 #: clientgui/sg_TaskPanel.cpp:828
 msgid "Local: "
 msgstr "ローカル:"
@@ -2393,7 +2395,7 @@ msgid "The home page of the GEO-600 project"
 msgstr "GEO-600 プロジェクトのホームページ"
 
 #: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewStatistics.cpp:441
+#: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
 msgid "Team"
 msgstr "チーム"
 
@@ -2457,23 +2459,23 @@ msgstr "研究"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "World Community Grid で運営されるプロジェクトについて知る"
 
-#: clientgui/MainDocument.cpp:584
+#: clientgui/MainDocument.cpp:585
 msgid "Starting client"
 msgstr "クライアントを起動中"
 
-#: clientgui/MainDocument.cpp:592
+#: clientgui/MainDocument.cpp:593
 msgid "Connecting to client"
 msgstr "クライアントに接続中"
 
-#: clientgui/MainDocument.cpp:1206
+#: clientgui/MainDocument.cpp:1207
 msgid "Retrieving system state; please wait..."
 msgstr "システムの状態を取得しています。お待ちください..."
 
-#: clientgui/MainDocument.cpp:1827
+#: clientgui/MainDocument.cpp:1828
 msgid "Missing application"
 msgstr "見つからないアプリケーション"
 
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1829
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
@@ -2970,7 +2972,7 @@ msgid "'%s' does not contain a valid path."
 msgstr "'%s' には有効なパスが含まれていません。 "
 
 #. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:202
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
 #: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
 #: clientgui/ViewWork.cpp:207
 msgid "Commands"
@@ -3018,7 +3020,7 @@ msgstr "すべてのプロジェクトのメッセージを表示"
 
 #: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
 msgid "Fetching notices; please wait..."
-msgstr "お知らせを取得中、お待ち下さい…"
+msgstr "お知らせを取得中、お待ち下さい..."
 
 #: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
 msgid "There are no notices at this time."
@@ -3028,17 +3030,17 @@ msgstr "お知らせは現在ありません。"
 msgid "Notices"
 msgstr "お知らせ"
 
-#: clientgui/ViewProjects.cpp:206 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
 msgid "Update"
 msgstr "更新"
 
-#: clientgui/ViewProjects.cpp:207 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "完了した全タスクを報告し、最新の功績 (credit) とプレファレンス (好みの設定) を取得し、可能であれば更にタスクを取得します。"
 
-#: clientgui/ViewProjects.cpp:213 clientgui/ViewProjects.cpp:812
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
 #: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
 #: clientgui/sg_BoincSimpleFrame.cpp:893
 #: clientgui/sg_ProjectCommandPopup.cpp:72
@@ -3047,196 +3049,196 @@ msgstr "完了した全タスクを報告し、最新の功績 (credit) とプ
 msgid "Suspend"
 msgstr "一時停止"
 
-#: clientgui/ViewProjects.cpp:214 clientgui/ViewProjects.cpp:812
+#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
 #: clientgui/sg_ProjectCommandPopup.cpp:129
 msgid "Suspend tasks for this project."
 msgstr "このプロジェクトが実行しているタスクを一時的に停止します。"
 
-#: clientgui/ViewProjects.cpp:220 clientgui/ViewProjects.cpp:831
+#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
 #: clientgui/sg_ProjectCommandPopup.cpp:136
 msgid "No new tasks"
 msgstr "新規タスクの取得禁止"
 
-#: clientgui/ViewProjects.cpp:221 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
 msgid "Don't get new tasks for this project."
 msgstr "このプロジェクトのタスクを新たに取得しないようにします。"
 
-#: clientgui/ViewProjects.cpp:227 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
 msgid "Reset project"
 msgstr "プロジェクトをリセット"
 
-#: clientgui/ViewProjects.cpp:228 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "このプロジェクトに関係するすべてのファイルとタスクを削除し、新しいタスクを取得します。完了した仕事を報告するには、先にそのプロジェクトを更新してください。"
 
-#: clientgui/ViewProjects.cpp:235 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "このプロジェクトを削除します。進行中のタスクは消えてしまいます(完了したタスクを報告するため、削除する前にプロジェクトの「更新」を行ってください)。 "
 
-#: clientgui/ViewProjects.cpp:241 clientgui/ViewWork.cpp:246
+#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
 #: clientgui/sg_TaskCommandPopup.cpp:84
 msgid "Properties"
 msgstr "プロパティ"
 
-#: clientgui/ViewProjects.cpp:242 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
 msgid "Show project details."
 msgstr "プロジェクトの詳細を表示します。"
 
-#: clientgui/ViewProjects.cpp:256 clientgui/ViewStatistics.cpp:426
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
 msgid "Account"
 msgstr "アカウント"
 
-#: clientgui/ViewProjects.cpp:258
+#: clientgui/ViewProjects.cpp:254
 msgid "Work done"
 msgstr "終了した仕事量"
 
-#: clientgui/ViewProjects.cpp:259
+#: clientgui/ViewProjects.cpp:255
 msgid "Avg. work done"
 msgstr "終了した仕事量の平均"
 
-#: clientgui/ViewProjects.cpp:261 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
 #: clientgui/ViewWork.cpp:262
 msgid "Status"
 msgstr "状態"
 
-#: clientgui/ViewProjects.cpp:340
+#: clientgui/ViewProjects.cpp:336
 msgid "Projects"
 msgstr "プロジェクト"
 
-#: clientgui/ViewProjects.cpp:392
+#: clientgui/ViewProjects.cpp:388
 msgid "Updating project..."
 msgstr "プロジェクトを更新しています..."
 
-#: clientgui/ViewProjects.cpp:434
+#: clientgui/ViewProjects.cpp:430
 msgid "Resuming project..."
 msgstr "プロジェクトを再開させています..."
 
-#: clientgui/ViewProjects.cpp:438
+#: clientgui/ViewProjects.cpp:434
 msgid "Suspending project..."
 msgstr "プロジェクトを一時停止させています..."
 
-#: clientgui/ViewProjects.cpp:475
+#: clientgui/ViewProjects.cpp:471
 msgid "Telling project to allow additional task downloads..."
 msgstr "タスクをさらにダウンロードしてよいことをプロジェクトに伝えています..."
 
-#: clientgui/ViewProjects.cpp:479
+#: clientgui/ViewProjects.cpp:475
 msgid "Telling project to not fetch any additional tasks..."
 msgstr "タスクを余分に取得しないようにプロジェクトに伝えています..."
 
-#: clientgui/ViewProjects.cpp:515
+#: clientgui/ViewProjects.cpp:511
 msgid "Resetting project..."
 msgstr "プロジェクトをリセットしています..."
 
-#: clientgui/ViewProjects.cpp:528 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "本当にプロジェクト '%s' をリセットしてよろしいですか?"
 
-#: clientgui/ViewProjects.cpp:534 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
 msgid "Reset Project"
 msgstr "プロジェクトをリセット"
 
-#: clientgui/ViewProjects.cpp:573
+#: clientgui/ViewProjects.cpp:569
 msgid "Removing project..."
 msgstr "プロジェクトを削除しています..."
 
-#: clientgui/ViewProjects.cpp:586 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "本当にプロジェクト '%s' を削除してよろしいですか?"
 
-#: clientgui/ViewProjects.cpp:592 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
 msgid "Remove Project"
 msgstr "プロジェクトを削除"
 
-#: clientgui/ViewProjects.cpp:633 clientgui/ViewWork.cpp:686
+#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
 msgid "Launching browser..."
 msgstr "ブラウザを起動中..."
 
-#: clientgui/ViewProjects.cpp:808 clientgui/sg_ProjectCommandPopup.cpp:126
+#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
 msgid "Resume tasks for this project."
 msgstr "このプロジェクトのタスクを再開します"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:133
+#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
 msgid "Allow new tasks"
 msgstr "新規タスクを許可"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:134
+#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
 msgid "Allow fetching new tasks for this project."
 msgstr "このプロジェクトについて新しいタスクの取得を許可します。"
 
-#: clientgui/ViewProjects.cpp:831 clientgui/sg_ProjectCommandPopup.cpp:137
+#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
 msgid "Don't fetch new tasks for this project."
 msgstr "このプロジェクトについて新しいタスクの取得を禁止します。"
 
-#: clientgui/ViewProjects.cpp:1135
+#: clientgui/ViewProjects.cpp:1131
 msgid "Requested by user"
 msgstr "参加者の指示による"
 
-#: clientgui/ViewProjects.cpp:1136
+#: clientgui/ViewProjects.cpp:1132
 msgid "To fetch work"
 msgstr "仕事を取りに行く"
 
-#: clientgui/ViewProjects.cpp:1137
+#: clientgui/ViewProjects.cpp:1133
 msgid "To report completed tasks"
 msgstr "完了したタスクを報告する"
 
-#: clientgui/ViewProjects.cpp:1138
+#: clientgui/ViewProjects.cpp:1134
 msgid "To send trickle-up message"
 msgstr "トリクルアップ・メッセージを送信する"
 
-#: clientgui/ViewProjects.cpp:1139
+#: clientgui/ViewProjects.cpp:1135
 msgid "Requested by account manager"
 msgstr "アカウント・マネージャの指示による"
 
-#: clientgui/ViewProjects.cpp:1140
+#: clientgui/ViewProjects.cpp:1136
 msgid "Project initialization"
 msgstr "プロジェクトの初期化"
 
-#: clientgui/ViewProjects.cpp:1141
+#: clientgui/ViewProjects.cpp:1137
 msgid "Requested by project"
 msgstr "プロジェクトの指示による"
 
-#: clientgui/ViewProjects.cpp:1142
+#: clientgui/ViewProjects.cpp:1138
 msgid "Unknown reason"
 msgstr "理由不明"
 
-#: clientgui/ViewProjects.cpp:1156
+#: clientgui/ViewProjects.cpp:1152
 msgid "Suspended by user"
 msgstr "参加者により一時停止中"
 
-#: clientgui/ViewProjects.cpp:1159
+#: clientgui/ViewProjects.cpp:1155
 msgid "Won't get new tasks"
 msgstr "新規タスクの取得禁止"
 
-#: clientgui/ViewProjects.cpp:1162
+#: clientgui/ViewProjects.cpp:1158
 msgid "Project ended - OK to remove"
 msgstr "プロジェクトは終了しました - 削除するにはOKを押します。"
 
-#: clientgui/ViewProjects.cpp:1165
+#: clientgui/ViewProjects.cpp:1161
 msgid "Will remove when tasks done"
 msgstr "タスクが完了したら削除します"
 
-#: clientgui/ViewProjects.cpp:1168
+#: clientgui/ViewProjects.cpp:1164
 msgid "Scheduler request pending"
 msgstr "スケジューラへの要求を保留"
 
-#: clientgui/ViewProjects.cpp:1174
+#: clientgui/ViewProjects.cpp:1170
 msgid "Scheduler request in progress"
 msgstr "スケジューラへ要求中"
 
-#: clientgui/ViewProjects.cpp:1177
+#: clientgui/ViewProjects.cpp:1173
 msgid "Trickle up message pending"
 msgstr "トリクルアップ・メッセージの送信保留あり"
 
-#: clientgui/ViewProjects.cpp:1183
+#: clientgui/ViewProjects.cpp:1179
 msgid "Communication deferred"
 msgstr "延期された通信"
 
@@ -3268,7 +3270,7 @@ msgstr "空き領域だが BOINC では利用できない部分:"
 msgid "free: "
 msgstr "空き領域:"
 
-#: clientgui/ViewResources.cpp:299
+#: clientgui/ViewResources.cpp:298
 msgid "used by other programs: "
 msgstr "その他のプログラムによる使用領域:"
 
@@ -3479,35 +3481,35 @@ msgstr "本当にこのファイル転送 '%s' を中止してよろしいです
 msgid "Abort File Transfer"
 msgstr "ファイル転送を中止"
 
-#: clientgui/ViewTransfers.cpp:864
+#: clientgui/ViewTransfers.cpp:845
 msgid "Upload"
 msgstr "アップロード"
 
-#: clientgui/ViewTransfers.cpp:864
+#: clientgui/ViewTransfers.cpp:845
 msgid "Download"
 msgstr "ダウンロード"
 
-#: clientgui/ViewTransfers.cpp:868
+#: clientgui/ViewTransfers.cpp:849
 msgid "retry in "
 msgstr "右記の時間内に再試行:"
 
-#: clientgui/ViewTransfers.cpp:870
+#: clientgui/ViewTransfers.cpp:851
 msgid "failed"
 msgstr "失敗"
 
-#: clientgui/ViewTransfers.cpp:873
+#: clientgui/ViewTransfers.cpp:854
 msgid "suspended"
 msgstr "一時停止中"
 
-#: clientgui/ViewTransfers.cpp:878
+#: clientgui/ViewTransfers.cpp:859
 msgid "active"
 msgstr "活動中"
 
-#: clientgui/ViewTransfers.cpp:880
+#: clientgui/ViewTransfers.cpp:861
 msgid "pending"
 msgstr "保留中"
 
-#: clientgui/ViewTransfers.cpp:887
+#: clientgui/ViewTransfers.cpp:867
 msgid " (project backoff: "
 msgstr " (プロジェクトとの通信待機: "
 
@@ -3597,7 +3599,7 @@ msgstr "タスクを中止"
 
 #: clientgui/ViewWork.cpp:586
 msgid "Aborting task..."
-msgstr "タスクを中止しています…"
+msgstr "タスクを中止しています..."
 
 #: clientgui/ViewWork.cpp:858
 msgid "Show all tasks"
@@ -3690,7 +3692,7 @@ msgstr "計算を再開"
 msgid "Open a window to view notices from projects or BOINC"
 msgstr "プロジェクトまたは BOINC からのお知らせを見るためウィンドウを開く"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:364
+#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
 #, c-format
 msgid "Get help with %s"
 msgstr "%s について助けを求める"
@@ -3704,21 +3706,21 @@ msgstr "閉じる"
 msgid "%s - Notices"
 msgstr "%s からのお知らせ"
 
-#: clientgui/sg_DlgPreferences.cpp:206
+#: clientgui/sg_DlgPreferences.cpp:208
 msgid ""
 "For additional settings, select Computing Preferences in the Advanced View."
 msgstr "追加設定は、詳細表示から計算に関するプレファレンスを選択してください。"
 
-#: clientgui/sg_DlgPreferences.cpp:344
+#: clientgui/sg_DlgPreferences.cpp:346
 msgid "GB of disk space"
 msgstr "GB のディスク領域"
 
-#: clientgui/sg_DlgPreferences.cpp:1093
+#: clientgui/sg_DlgPreferences.cpp:1105
 #, c-format
 msgid "%s - Computing Preferences"
 msgstr "%s - 計算に関するプレファレンス"
 
-#: clientgui/sg_DlgPreferences.cpp:1174
+#: clientgui/sg_DlgPreferences.cpp:1186
 msgid "Discard all local preferences and use web-based preferences?"
 msgstr "すべてのローカル・プレファレンスを放棄してウェブ上のプレファレンスを使用しますか?"
 
@@ -3755,12 +3757,12 @@ msgstr "プロジェクトのウェブサイト"
 msgid "Project Commands"
 msgstr "プロジェクトに関する操作"
 
-#: clientgui/sg_ProjectPanel.cpp:276
+#: clientgui/sg_ProjectPanel.cpp:278
 #, c-format
 msgid "Pop up a menu of web sites for project %s"
 msgstr "プロジェクト %s のポップアップ・メニューを開く"
 
-#: clientgui/sg_ProjectPanel.cpp:278
+#: clientgui/sg_ProjectPanel.cpp:280
 #, c-format
 msgid "Pop up a menu of commands to apply to project %s"
 msgstr "プロジェクト %s に対する操作のポップアップ・メニューを開く"
@@ -3847,51 +3849,51 @@ msgstr "残り時間(推定): %s"
 msgid "Status: %s"
 msgstr "状態: %s"
 
-#: clientgui/sg_TaskPanel.cpp:1229
+#: clientgui/sg_TaskPanel.cpp:1206
 msgid "Retrieving current status."
 msgstr "現在の状態を読み出しています。"
 
-#: clientgui/sg_TaskPanel.cpp:1235
+#: clientgui/sg_TaskPanel.cpp:1212
 msgid "Downloading work from the server."
 msgstr "仕事をサーバからダウンロードしています。"
 
-#: clientgui/sg_TaskPanel.cpp:1240
+#: clientgui/sg_TaskPanel.cpp:1217
 msgid "Processing Suspended:  Running On Batteries."
 msgstr "処理を一時停止: バッテリーで稼働中"
 
-#: clientgui/sg_TaskPanel.cpp:1242
+#: clientgui/sg_TaskPanel.cpp:1219
 msgid "Processing Suspended:  User Active."
 msgstr "処理を一時停止: 参加者がコンピュータを使用中"
 
-#: clientgui/sg_TaskPanel.cpp:1244
+#: clientgui/sg_TaskPanel.cpp:1221
 msgid "Processing Suspended:  User paused processing."
 msgstr "処理を一時停止: 参加者の指示による一時停止"
 
-#: clientgui/sg_TaskPanel.cpp:1246
+#: clientgui/sg_TaskPanel.cpp:1223
 msgid "Processing Suspended:  Time of Day."
 msgstr "処理を一時停止: 動作制限時間帯"
 
-#: clientgui/sg_TaskPanel.cpp:1248
+#: clientgui/sg_TaskPanel.cpp:1225
 msgid "Processing Suspended:  Benchmarks Running."
 msgstr "処理を一時停止: ベンチマーク走行中"
 
-#: clientgui/sg_TaskPanel.cpp:1250
+#: clientgui/sg_TaskPanel.cpp:1227
 msgid "Processing Suspended."
 msgstr "処理は一時停止されました。"
 
-#: clientgui/sg_TaskPanel.cpp:1254
+#: clientgui/sg_TaskPanel.cpp:1231
 msgid "Waiting to contact project servers."
 msgstr "プロジェクトのサーバに接続待機しています。"
 
-#: clientgui/sg_TaskPanel.cpp:1258 clientgui/sg_TaskPanel.cpp:1267
+#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
 msgid "Retrieving current status"
 msgstr "現在の状態を読み出し中"
 
-#: clientgui/sg_TaskPanel.cpp:1262
+#: clientgui/sg_TaskPanel.cpp:1239
 msgid "No work available to process"
 msgstr "処理する仕事がありません"
 
-#: clientgui/sg_TaskPanel.cpp:1264
+#: clientgui/sg_TaskPanel.cpp:1241
 msgid "Unable to connect to the core client"
 msgstr "コア・クライアントに接続不可"
 
diff --git a/locale/ja/BOINC-Project-Generic.po b/locale/ja/BOINC-Project-Generic.po
deleted file mode 100644
index 828f6ab..0000000
--- a/locale/ja/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# crazymaster <ken.i54k at gmail.com>, 2015
-# Masahiro Tagashira, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-03-03 15:09+0000\n"
-"Last-Translator: Masahiro Tagashira\n"
-"Language-Team: Japanese (http://www.transifex.com/boinc/boinc/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "日本語"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Japanese"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "招待コード"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "アカウントを作るには、有効な招待コードが必要です。"
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "名前"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "我々のウェブサイト上であなたを識別する名前です。実名でも、ニックネームでも結構です。"
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Eメールアドレス"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "有効なメールアドレスを「ローカル部@ドメイン」の形で記入しなければなりません。"
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "パスワード"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "少なくとも %1 文字はなければなりません"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "確認のためパスワードをもう一度"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "国名"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "表示したい国の名前があれば、選択してください。"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "郵便番号もしくは ZIP コード"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "記入は任意"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "アカウントを作成する"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Eメールアドレス:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "Eメールアドレスをお忘れですか?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "パスワード:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "パスワードをお忘れですか?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "ログインしたままにする"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "ログインする"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "太字にするテキスト: [b]テキスト[/b] (Alt+B)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "斜体にするテキスト: [i]テキスト[/i] (Alt+I)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "下線を引くテキスト [u]テキスト[/u] (Alt+U)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "取り消し線を引くテキスト: [s]テキスト[/s] (Alt+K)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "引用するテキスト: [quote]テキスト[/quote] (Alt+Q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "コードとして表示する: [code]コード[/code] (Alt+C)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "リストにする: [list]テキスト[/list] (Alt+L)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "番号付きリストにする: [list=]テキスト[/list] (Alt+O)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "画像の挿入: [img]http://画像のURL[/img] (Alt+P)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "URLの挿入: [url]http://URL[/url] もしくはテキストにハイパーリンクをつける場合 [url=http://URL]テキスト[/url] (Alt+W)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "フォントの色"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "フォントの色を指定: [color=red]フォント[/color] ヒント: この場合あなたは #FF0000 (HTMLでの色名称でいうRed) の色もまた使うことができます。"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "指定省略時の標準設定"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "暗赤色"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "赤色"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "オレンジ色"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "茶色"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "黄色"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "緑色"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "オリーブ色"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "シアン色"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "青色"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "暗青色"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "藍色"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "スミレ色"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "フォントの大きさ"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "フォントの大きさを指定する: [size=x-small]小さいフォントのテキスト[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "小さい"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "標準"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "大きい"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "開いているBBコードの全てのタグを閉じる"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "タグを閉じる"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "古い順"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "新しい順"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "評価の高い順"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "新しい投稿順"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "読まれた回数が多い順"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "投稿の多い順"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "ボランティア・モデレーター"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "プロジェクト管理者"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "プロジェクト開発者"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "プロジェクト・テスター"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "ボランティア・デベロッパー"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "ボランティア・テスター"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "プロジェクト内の科学者"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "ヘルプデスクの専門家"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "掲示板内のメッセージ内を語句検索します"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "掲示板を検索"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "高度な検索"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "非公開メッセージ"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "質問と答(Q&A)"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "掲示板"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 掲示板"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "前へ"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "次へ"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "投稿者"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "メッセージ"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "メッセージを送信"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "%1 さんに非公開メッセージを送信する"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "参加した日: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "投稿数: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "功績値: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "最近の平均功績: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "あなたはこのメッセージをまだ読んでいません"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "未読"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "メッセージ %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "非公開"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "投稿日時: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr "- に対する返答"
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "編集"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "このメッセージを編集"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "最終更新: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "この投稿は投稿者があなたの「除外」リストにあるため表示されていません。ご覧になるには%1ここ%2をクリックしてください。"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "この投稿を攻撃的であるとして報告"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "攻撃的であるとして報告"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "評価: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "評価する:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "このメッセージが好ましいと思う場合はクリック"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "+として評価"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "このメッセージが好ましいと思わない場合はクリック"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "-として評価"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "返信"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "このメッセージへの返信を投稿"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "引用"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "このメッセージを引用することによって返信を投稿"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "モデレーターによって隠されています"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "%2 さんによって %1 が投稿されました"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "あなたは %1 までメッセージを投稿もしくは評価してはいけません"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n<ul>\n<li> 投稿は「子供に無害」でなければなりません。わいせつであったり、憎悪関連、性的に露骨あるいは示唆的であってはなりません。\n<li> 商業広告は禁止です。\n<li> 性的な内容、ギャンブル、他人に不寛容であるものに関係するウェブサイトへのリンクの貼り付けは禁止です。\n<li> 故意に他の人を困らせるあるいは反感をもたせたり、掲示板を乗っ取るメッセージは禁止です。\n<li> 故意的な敵意のあるあるいは侮辱的なメッセージは禁止です。\n<li> 人種、宗教、国籍、性別、階級、性的関心に関連する罵倒は禁止です。"
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "規約:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "詳細情報"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "表示する"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "この投稿を見えるようにします"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "隠す"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "この投稿を隠します"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "移動する"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "この投稿を別の掲示板に移動します"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "投稿者を投稿禁止にする"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "投稿者を投稿禁止にするよう投票"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "投稿者を投稿禁止にしないよう投票"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "投稿者を投稿禁止にするかどうかの採決を開始"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "削除"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "この投稿を削除する"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "チームメンバーのみがチームの掲示板に投稿できます"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "%1 の中に新しいスレッドを作るには、 一定の量の功績値(credit)を獲得済みでなければなりません。これは、悪用を防いでこの掲示板システムを守るための制約です。"
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "現在、スレッドを新規作成することはできません。 しばらく待ってからもう一度お試しください。悪用防止のため、この掲示板では時間を置かず続けてスレッドを作成することはできません。"
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "この掲示板はロックされました。掲示板のモデレーターおよび管理者のみ投稿が許可されます。"
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "隠された掲示板には投稿できません。"
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "スレッド"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "投稿"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "閲覧数"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "最新の投稿"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "スレッドへの新しい投稿: %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "参加しているスレッドへの新しい投稿"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "スレッドに新しい投稿があります:「 %1 」"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "全てのスレッドを既読にする"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "すべての掲示板のすべてのスレッドを既読として設定します。"
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "計算機がありません"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "利用不可"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "自宅"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "勤務場所"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "学校"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "更新"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "コンピュータの情報"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP アドレス"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(最新%1回は同じ値)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "外部 IP アドレス"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "IP アドレスを表示"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "ドメイン名"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "製品名"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "現地標準時刻"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 時間"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "所有者"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "非公表"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "作成日時"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "総功績"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "功績の平均増加量"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "プロジェクト横断の功績値"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPUのタイプ"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "プロセッサ数"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "コプロセッサの数"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "オペレーティングシステム"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC のバージョン"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "メモリ"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "キャッシュ"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "スワップ領域"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "合計ディスク領域"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "空きディスク領域"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "浮動小数点演算速度の測定値"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 メガ 命令/秒"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "整数演算速度の測定値"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "平均アップロード速度"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/秒"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "不明"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "平均ダウンロード速度"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "平均ターンアラウンド時間"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 日"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "アプリケーションの詳細情報"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "内容を見る"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "タスク"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "BOINC クライアントがサーバーに接続した回数"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "最後にサーバーに接続した日時"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "BOINC が動作している一部の時間"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "BOINC の実行中、一部の時間コンピュータはインターネットに接続されます"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "BOINC の実行中、一部の時間計算が許可されます"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "BOINC の実行中、一部の時間 GPU による計算が許可されます"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "平均 CPU 時間獲得率"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "タスク期間補正因子"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "設置場所"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "このコンピュータを削除"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "このコンピュータに関する重複する記録をマージする"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "マージする"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "最後の接続日時"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "コンピュータの情報"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "順位"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "平均功績値"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "最近の平均功績(功績値/日)"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "オペレーティングシステム"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(プロセッサ数 %1)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "詳細"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "プロジェクト横断 統計データ:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "計算機 %1 は右の重複する存続期間があります:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "計算機 %1 のOSとは互換性がありません:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "計算機 %1 のCPUとは互換性がありません:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "同一の計算機です"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "計算機 %1 を %2 にマージできません - 両者に互換性がありません"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "計算機 %1 を %2 にマージしています"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "新しいコンピュータの功績値を更新できませんでした"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "結果を更新できませんでした"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "古いコンピュータを退役させることができませんでした"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "古いコンピュータ %1 を引退させました"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "表示範囲:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "すべてのコンピュータ"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "過去30日の間に活動のあったコンピュータのみ"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "コンピュータのID "
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>バージョン"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "ドメイン名でコンピュータをマージする"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "ブラウザのデフォルト"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "コメント"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "ニュースは、%sRSSフィード%s で読めます"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "受信箱"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "作成"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "非公開メッセージを送信する"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "プレビュー"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "該当するメッセージはありません"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "宛先"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "ユーザーIDあるいは、一意の名前を入力します。複数の場合はカンマで区切ってください。"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "件名"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "メッセージを送信"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "さんがあなたに非公開メッセージを送信しました。件名:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "非公開メッセージ%1 送信者: %2、件名:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "非公開メッセージを作成できませんでした"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "非公開メッセージをこれほど頻繁には送信することができません。さらにメッセージを送信したい場合は時間をおいてからにしてください。"
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "未読"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Eメールでの通知を必要とする場合、%1コミュニティのプレファレンスを編集%2してください"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "非公開メッセージ"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "使用量の制限"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "最大使用時で"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "他のアプリケーションのためにいくつかの CPU を自由に保ちます。例: 75%であれば、8コアCPUの場合そのうち6コアを使用することを意味します。"
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% oの CPUコアまで"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "CPU温度とエネルギー使用量を抑制するために数秒ごとに計算を一時停止/再開する。例: 75%であれば、3秒計算・1秒一時停止を繰り返します。"
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% の CPU 時間まで"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "いつ一時停止するか"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "コンピュータがバッテリーで稼働している時一時停止"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "携帯用機器でバッテリー電源で動作している時計算を一時停止するには、ここにチェックを入れてください。"
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "コンピュータを使用中は、計算を一時停止"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "あなたがコンピュータを使用している時計算とファイル転送を一時停止するには、ここにチェックを入れます。"
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "コンピュータを使用中は、GPU による計算を一時停止"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "あなたがコンピュータを使用している時 GPU による計算を一時停止するには、ここにチェックを入れます。"
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "「使用中」とは、マウス・キーボード入力が右の時間内にあった場合のことです:"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "ここではコンピュータがどんな場合に「使用中」とみなすか決定します。"
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "分"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "「使用中」とは、マウス・キーボード入力が右の時間内にあった場合のことです:"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "これは、一部のコンピュータが使用しないときに低電力モードに入ることを可能にします。"
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "超えることで一時停止する場合の BOINC 以外のCPU使用量:"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "コンピュータが他のプログラムによってビジー状態にある時、計算を一時停止します。"
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "動作許容時間帯:"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "それぞれの日の特定範囲の時間帯だけ計算します。"
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "その他"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "最低限の備蓄量:"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "長時間コンピュータのビジー状態を保つために、最低に見積もっても十分なタスクを蓄えておきます。"
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "日分の仕事"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "追加で下記の分まで備蓄:"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "最小レベル以上の追加タスクを備蓄してください。プロジェクトに連絡する際に要求される作業の量を決定します。"
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "タスクのおおよその切り替え間隔"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "いくつかのプロジェクトを動作させる場合、BOINC はこの間隔でそれらプロジェクトを切り替えるでしょう"
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "タスクにチェックポイント書き込みを要求する最大間隔"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "ここではタスクが後ほど再起動されることが出来るようにするために、ディスクにその状態を保存する間隔を設定します。"
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "秒"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "使用上限:"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "BOINC によって使用されるディスク領域の合計を制限します。"
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "最低限の空き領域"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "BOINC のデータを格納するボリュームでこれだけの空きスペースを残してディスク使用量を制限します。"
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB の空き領域"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "データを格納するボリュームで BOINC が使用するディスク領域の割合を制限します。"
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% まで(全体比)"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "コンピュータを使用中、使用するのは最大でも"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "あなたがコンピュータを使用している時 BOINC よって使用されるメモリを制限します。"
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "コンピュータが使用されていない時、使用するのは最大でも"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "あなたがコンピュータを使用していない時 BOINC によって使用されるメモリを制限します。"
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "一時停止中に、GPU向けでないタスクをメモリ上に残す"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "チェックを入れた場合、一時停止されたタスクはメモリにとどまり、仕事のロスなしで再開します。チェックを外した場合、一時停止されたタスクはメモリから取り除かれ、最後のチェックポイントから再開します。"
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "ページ/スワップファイル: 最大使用時でも"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "BOINC によって使用されるスワップ領域(ページファイル)を制限します。"
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "ダウンロード速度を下記に制限:"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "ファイル転送のダウンロード速度を制限します。"
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/秒"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "アップロード速度を下記に制限:"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "ファイル転送のアップロード速度を制限します。"
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "使用限度量"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "例: BOINC は多くとも30日ごとに2000MBのデータまで転送するはずです。"
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB/"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "日分"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "下記の間だけファイルを転送する:"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "それぞれの日の特定範囲の時間帯だけファイルを転送します。"
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "画像ファイルのデータ検証をスキップする"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "インターネットプロバイダが画像ファイルを変更する場合はチェックを入れてください。検証をスキップすると BOINC のセキュリティレベルは低下します。"
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "インターネットに接続する前に確認する"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "モデム、ISDN または VPN 接続を使っているときのみ便利です。"
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "終わったら切断"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "計算"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "ディスク"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "ネットワーク"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "これらのプレファレンス(好みの設定)は、あなたが参加するすべての BOINC プロジェクトに適用されます。"
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1 プレファレンスを更新することができません。 %2 赤色で強調された値は指定可能範囲外であるか、数値でありません。"
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "コンピューティング"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "%1用の個別プレファレンス"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "プレファレンスを編集"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "削除"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "%1用に個別プレファレンスを追加する"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "これらの設定はこのアカウントを使用するすべてのコンピュータに適用します。以下の場合は除きます:"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "BOINC マネージャを使用し、ローカルでプレファレンスを設定したコンピュータ"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Android デバイス"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(表示切り替え)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "総合プレファレンス"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "初期(指定省略時)のプレファレンス"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "最後に変更されたプレファレンス:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "プレファレンスを追加する"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "プレファレンスを更新する"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "はい"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "いいえ"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "初期(指定省略時)のコンピュータ設置場所"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "新しいコンピュータは計算とプロジェクトのプレファレンスのために、この場所のものを使用します。"
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "リソース割り当て"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "このプロジェクトに割り当てるあなたのコンピュータの資源量の割合を決める指標です。例えば、2つの BOINC プロジェクトに参加していたとして、リソース割り当てをそれぞれ100・200と指定した場合、1つ目のプロジェクトに1/3が割り当てられ、2つ目には2/3の資源が割り当てられます。"
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "CPU をそれぞれに専用に割り当てて、GPU タスクを高速化しますか?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "CPU を使用する"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "ATI GPU を使用する"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "NVIDIA GPU を使用する"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Intel GPU を使用する"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "試用版のアプリケーションを実行しますか?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "指定すればアプリケーション開発者を手助けすることになりますが、そのアプリケーションはあなたのコンピュータ上で異常終了することがあるかもしれません"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Eメールが %1 より送付されます。スパムフィルターがこのアドレスをブロックしないようにしてください。"
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "%1 および(所属している場合)あなたのチームから、Eメールを送信してもよろしいですか?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1 があなたのコンピュータをこのウェブサイト上に表示してかまいませんか?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(表示切り替え)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "プロジェクト固有の設定"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "不適切な場所: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "不適切な適用範囲: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "~"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "あなたのプロフィールはこのプロジェクトから承認され次第、他の方にも見えるようになります。それまで数日かかるかもしれません。"
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "あなたのプロフィールは容認されませんでした。他の方からは見えません。変更してください。"
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "データベースで異常発生"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "スパムを防ぐため、功績の平均増加量が %1 より少ない参加者のプロフィールはログイン済みのユーザーに対してしか表示されません。ご不便をおかけします。"
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "ユーザーは書き込み禁止状態になっています"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "そのユーザーIDにはプロフィールがありません。"
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "あなたのプロフィールを編集する"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "このプロフィールへのあなたのフィードバック"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "「今日の参加者紹介」へこのプロフィールを推薦する:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "このプロフィールが %1 好き %2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "不快感を与えるプロフィールであることを管理者に注意喚起する:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "このプロフィールは %1 好ましくない %2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "名前のないプラットフォーム"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "データベースに未登録"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "保留中"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "すべて"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "計算中"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "検証を保留中"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "検証したが未確定"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "有効"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "無効"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "異常発生"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "活動していない"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "未送出"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "計算済、検証待ち"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "計算済、検証済み"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "計算済、無効と判定"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "計算済、検証不可"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "計算済、検証したが未確定"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "計算済、検証期限に間に合わず"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "計算済"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "送出できず"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "サーバにより取り消し"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "報告期限までに開始されませんでした - 取り消されました"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "ダウンロード中に異常発生"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "計算中に異常発生"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "アップロード中に異常発生"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "参加者により中止"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "アップロード失敗"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "タイムアウト - 応答なし"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "不要となった"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "検証で異常発生"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "中途放棄された"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "終了後"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "成功"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "計算エラー"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "余分な結果"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "応答なし"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "新規"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "ダウンロード中"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "処理中"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "計算エラー"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "アップロード中"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "完了"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "初期状態"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "不必要"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "ワークユニットの異常 - 検証省略"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "検証したが、一致数がまだ基準に至らず"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "検証するにはタスクの報告が遅すぎた"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "結果を送出できず"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "異常過多(おそらくバグ)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "計算結果過多(おそらく非決定的)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "結果の総数過多"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "ワークユニットが取り消されました"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "基準となる結果が見つかりません"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "認識できない異常: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "タスク名"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "詳細はここをクリック"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "IDを表示"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "名前を表示"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "タスク"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "ワークユニット"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "コンピュータ"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "送出日時"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "報告日時 <br />または報告期限"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "説明"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "状態"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "実行時間<br />(秒)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU時間<br />(秒)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "功績値"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "アプリケーション"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "ワークユニット"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "報告期限"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "受信日時"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "サーバー側の状態"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "結果"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "クライアント側の状態"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "終了ステータス"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "実行時間"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU時間"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "検証状態"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "デバイスのピーク FLOPS"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "アプリケーションのバージョン"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "出力ファイル"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "標準エラー出力(stderr)"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "状態"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "タスク名:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "検索条件(一つ以上要指定)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "キーワード"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "指定する語句がその名称または説明文に含まれているチームを探します"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "チームの種類"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "活動中のチームだけを表示"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "検索"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "あなたが要求しましたが、創設者は期限までに応答しませんでした。"
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "創設者権利の移転を完了する"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "あなたが要求中です"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "創設者の応答期限は、 %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "なし"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "要求を開始する"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "延期された"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "チームの情報"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "説明文"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "ウェブサイト"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "プロジェクト横断の統計"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "種類"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "掲示板"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "スレッド"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "このチームに参加する"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "注意:あなたがプロジェクト・プレファレンスの中で「Eメールを送っても良い」と設定した状態でチームへ参加すると、 そのチームの創設者はあなたのメールアドレスを知ることになります。"
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "新しいメンバーを受け入れていません"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "創設者権限の移譲が要求されています"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "%1 までに応答してください"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "チーム創設者の変更"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "メンバー"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "創設者"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "管理者"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "チームに昨日参加した新しいメンバー"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "メンバーの総数"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "表示する"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "活動中のメンバー数"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "功績(credit)を獲得済みのメンバーの数"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "管理者"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "前へ %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "次へ %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "該当するチームはありません。"
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "この操作には創設者の権限が必要です。"
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "この操作にはチーム管理者の権限が必要です"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "<警告>: これは BOINC ワイドのチームです。ここで変更を行っても、 そのうち上書きされてしまいます。代わりに %1 BOINC ワイドのチーム %2 を編集してください。"
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1 プライバシーに関する注意 %2 : チームを作成すると、あなたのプロジェクト・プレファレンス(リソース割り当て、グラフィックについてのプレファレンス)が公開されます。"
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "チーム名、テキスト版"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "HTMLタグを使わないでください。"
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "チーム名、HTML版"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "%1 一部のHTMLタグ %2 は使えます。"
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "HTMLの使い方をご存知でなければ、この欄は空白にしてください。"
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "チームのウェブページのURL(省略可)"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "\"http://\" は含めないでください。"
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "このURLへは、このサイト内のチームのページからリンクが張られます。"
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "チームの説明文"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "新しいメンバーを受け入れますか?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "参加者のプロフィール"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "あなたが参加しているプロジェクト"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "%1 が参加しているプロジェクト"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "プロジェクト"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "クリックすると参加者のページへ"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "参加開始日"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "計算と功績"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "このアカウントのコンピュータ"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "表示"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "プロジェクト横断 ID"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "プロジェクト横断の統計"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "アカウント"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "チーム"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "プロジェクト横断"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "証明書"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "携帯電話向け統計データ"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "アカウント情報"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Eメールアドレス"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "郵便番号"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 への登録日"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "変更"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "Eメールアドレス"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "パスワード"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "その他のアカウント情報"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "ユーザーID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "コミュニティ機能の中で使われるIDです"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "アカウント・キー"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "プレファレンス(好みの設定)"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "あなたのコンピュータをいつ・どのようにBOINCに使わせるか。"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "計算についての好みの設定(プレファレンス)"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "掲示板と非公開メッセージ"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "コミュニティについての好みの設定(プレファレンス)"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "このプロジェクト用のプレファレンス"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 についての好みの設定(プレファレンス)"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "%1 のプロフィールを見る"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "プロフィール"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "コミュニティ"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "作成"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 回投稿"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "通知"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "チームを離脱する"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "管理作業をする"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(創設者権限の移譲要求は保留中)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "チームのメンバー"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "チームを検索"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "下記のメンバーではない創設者:"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "友人を検索"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "友人"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "コンピュータ"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "寄付の実績"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "連絡"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "この人物は友人です"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "友人関係を取り消す"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "要求は保留中"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "友人として追加"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "ユーザー名は、先頭もしくは末尾の空白を持つことはできません"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "ユーザー名は空であってはなりません"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "ユーザー名に HTML タグを含んではなりません"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "ログアウト"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "ログイン"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "新しいアカウントを作成"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "サーバー側の状態のページ"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "あなたからの要求を処理中にデータベース・サーバで異常が起こりました。後ほどまた試してください。"
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "要求を処理できません"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "時間"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "分"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "秒"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "セッションがタイムアウトしました。ブラウザの戻るボタンをクリックし、そこでページを再読み込み(更新)してから、もう一度試してください。"
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "テキストに書式を設定するときはBBコードタグを使ってください"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "メンテナンスのためプロジェクト停止中"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 プロジェクトはメンテナンスのため一時的に停止しています。後ほどまたお試しください。"
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "データベースに接続できません - 後ほど試してください"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "データベースの選択ができませんでした - 後ほどまた試してください"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "文字(残り)"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "このコンピュータからログインしたままにする"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "アカウント設定を完了させる"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "アカウントには名前をつけなければなりません"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "アカウントの名前の中では、HTML タグは使えません"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "%1 プレファレンスを編集する"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "%1 プレファレンスを %2 向けに追加"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "アプリケーション"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 プロジェクトには、現在下記のアプリケーションがあります。 %1 プロジェクトに参加すると、これらのアプリケーションのうち、 1つまたは複数のアプリケーションのタスクがあなたのコンピュータに割り当てられます。これらのアプリケーションの最新版がダウンロードされます。これらは自動的に行われるので、何もする必要はありません。 "
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "プラットフォーム"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "バージョン"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "平均的な計算"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBコードタグ"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BBコードタグで、あなたのプロフィール・掲示板へ投稿するメッセージに書式を付けることができます。\nそれは HTML に似ていますが、よりわかりやすいものです。これらのタグは [ で始まり、] で終わります (HTMLでは %1 で始まり\n、%2 で終わる約束でした)。"
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "例"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "太字"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "斜体"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "下線"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "取り消し線"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "上付き文字"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "大きな字"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "赤色の字"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "ウェブサイトへのリンク"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "引用するテキスト"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "テキストを引用されたブロックとするために使います"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "画像の表示に使います"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "コード・スニペットはここ"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "ソースコードを表示させるために使います"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "フォーマット済みテキスト"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "フォーマット済み(通常は等幅の)テキストを表示させるために使います"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "項目 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "項目2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "項目 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "BOINC ウェブサイト上の Trac チケットへリンクするために使います"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "BOINC ウェブサイト上の Trac Wiki へリンクするために使います"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "開始タグだけで終了タグなしのまま放置したり、パラメータを正しく\n指定しないと、フォーマットされたテキストではなくタグがそのまま表示されます。"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "アカウントを作成できません"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "ブラウザの<b>戻る</b>ボタンをクリックし、もう一度試してください。"
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "あなたが reCAPTCH へ打ち込んだ内容は正しくありませんでした。もう一度試してください。 "
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "アカウントを作るには、招待コードを入力しなければなりません。"
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "入力した招待コードの値は有効ではありません。"
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "無効なメールアドレスです: 「ローカル部@ドメイン」の形式で有効なアドレスを入力しなければなりません"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "そのメールアドレスを使っているアカウントがすでに存在しています。"
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "新しいパスワードとして入力した2つが一致しません"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "パスワードには、ASCII 文字しか使えません。"
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "新しいパスワードが短すぎます: 最低でも %1 文字だけの長さが必要です。"
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "アカウントを作成できませんでした"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "注意: BOINC マネージャを使用する場合、このフォームを使用しないでください。ともかくBOINCを起動し、「プロジェクトを追加」を選択し、Eメールアドレスとパスワードを入力してください。"
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "このアカウントは、チーム %1 に加わります。さらに、そのアカウントの持つプロジェクト・プレファレンス(好みの設定)は、そのチームの創設者のものと同じになります。"
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "写真"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 でのあなたのプロフィール写真は左のとおりです。"
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "置き換えたいなら、「参照」または「ファイルを選択」などと書かれた次のボタンをクリックして、JPEG または PNG ファイル(サイズは %1 以下)を指定してください。"
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "あなたのプロフィールから写真を削除するには、右のボックスにチェックを入れてください : "
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "プロフィールにあなたの写真を載せたいなら、「参照」または「ファイルを選択」などと書かれた右のボタンををクリックして、JPEG または PNG ファイルを指定してください。 サイズが %1 以下のものを選択してください。"
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "言語"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "プロフィールが書かれている言語を選択します: "
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "プロフィールを提出する"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "プロフィールの作成・編集"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "あなたがアップロードした画像の形式はサポートされていません。"
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "%1プロフィール%2 を載せることによって、意見や経歴をこの %3 コミュニティで共有できます。"
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "あなたが ReCaptcha へ打ち込んだ内容は正しくありませんでした。もう一度試してください。 "
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "あなたが書き込んだ最初の内容は Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "あなたが書き込んだ2度目の内容も Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "あなたが提出したプロフィールの内容は空でした。"
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "プロフィールの更新に失敗しました: データベースでエラーが発生"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "プロフィールの作成に失敗しました: データベースでエラーが発生"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "プロフィールを保存しました"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "おめでとうございます! あなたのプロフィールはこのプロジェクトのデータベースへ記録されました。"
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "あなたのプロフィールを見る"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "プロフィールを作成する"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "スパム防止のため、プロフィールを作成または編集するには、功績の平均増加量(average credit)が %1 以上である必要があります。ご不便をおかけし申し訳ありません。"
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "アカウントを削除できませんでした"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "アカウントが削除されました"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "あなたのアカウントは削除されました。"
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "アカウントの削除を了承"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "ご自分のアカウントを削除すると、あなたに関係するすべての情報がわれわれのサーバから削除されます。\nあなたのプロフィールと掲示板への投稿内容も消えてしまいます。\nこのアカウントに追加されているどのコンピュータにも仕事が配布されなくなります。"
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "この操作は元に戻すことができません。\nいったんあなたのアカウントが削除されれば、その内容を取り戻すことはできません。"
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "本当にあなたのアカウントを削除してよろしいですか?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "はい"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "このアカウントを削除"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "いいえ"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "このアカウントを削除しない"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "プロフィールを削除できませんでした - しばらくたってからもう一度試してください。"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "削除確認"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "あなたのプロフィールは削除されました。"
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "プロフィール削除の確認"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "本当によろしいですか?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "いったんプロフィールを削除すると、回復できません。\n将来他のプロフィールを望む場合、まったく何もないところから始めなければならなくなります。"
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "ご了解のうえ、「はい」をクリックしてください。\n当プロジェクトのデータベースからあなたのプロフィールを削除します。"
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "自分のプロフィールを削除する"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "自分のプロフィールを削除しない"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - 取引完了"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "寄付ありがとうございます!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "寄付の支払い処理が完了しました。"
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "PayPay からの確認の後、あなたの寄付額はプログレスバーに加えられます。"
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "あなたは寄付をキャンセルしました。"
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "このプロジェクトは寄付を受け付けておりません。"
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 への寄付"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "このプロジェクトは、以下の仕組みを経由して寄付を頂いています。\n%1"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "寄付をいただける場合、下記の欄への寄付額の入力をお願い致します。\n        PayPal は複数の通貨からの入金を受け付けます\n        (カナダドル、ユーロ、イギリスポンド、アメリカドル、\n         日本円、オーストラリアドル、ニュージーランドドル、\n        スイスフラン、香港ドル、シンガポールドル、\n   スウェーデンクローナ、デンマーククローネ、\n        ポーランドズォティ、ノルウェークローネ、\n        ハンガリーフォリント、チェココルナ)。\nこのページに組み込まれた通貨換算機能を使って、異なる通貨での相当額を調べることができます。\n(換算に使うレートは推定値ですので、実際に取り引きされる額とは差異が生じる可能性があります)"
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "寄付したい金額"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "次の通貨での推定相当額"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "匿名での寄付"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "寄付者一覧にあなたの名前やアカウント番号を載せたくなければ、\nここを選択してください。<br> チェックを入れなければ、ユーザーID %1 であなたの寄付を記録いたします。"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "あなたのユーザーIDに寄付を結びつけるには、ログインしてください。"
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "次へ進む"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "寄付は右の仕組みを通じて受け取ります:"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "BOINC のアドオン・ソフトウェアをダウンロードする"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "いくつかの分類から選んでアプリケーションをダウンロードできます。"
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "これらのアプリケーションは %1 が推奨するものではないので、ご自身の責任で使用してください。"
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "我々はこれらのアプリケーションのインストール方法を提供しません。 \nしかし、それぞれのアプリケーションの作者がインストールもしくはアンインストール方法について、ある程度ヘルプを提供しているかもしれません。\nそれが十分でなければ、作者に連絡するべきです。"
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "BOINC のインストールと稼働の仕方は、%1ここ%2 にあります。 "
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "この一覧は %1 BOINC のウェブサイト %2 で集中管理されています。"
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "アカウントのEメールアドレスを変更します"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "新しいEメールアドレス '%1' は無効です。"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "新しいEメールアドレスは従来のものと同じです。変更はありません。"
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "そのEメールアドレスをもつアカウントがすでにあります"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "無効なパスワードです。"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "あなたのアカウントのEメールアドレスは、%1 になりました。"
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "%1 このEメールアドレスを認証 %2 してください。"
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "データベースでの問題が原因であなたのEメールアドレスを更新できませんでした。しばらくたってからもう一度試してください。"
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Eメールアドレスを変更する"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "あなたのアカウントのEメールアドレスを変更します"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "新しいEメールアドレス"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "有効なEメールアドレスを、「ローカル部@ドメイン」の形で記入しなければなりません。"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "パスワードが見つからない場合はこちら"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "リセットの確認"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "コミュニティでのプレファレンス(好みの設定)であなたが変更した内容は、この操作で消えてしまいます。キャンセルするには、ブラウザの戻るボタンをクリックしてください。"
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "プレファレンスをリセット"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "エラー: 適切な種類のファイルではありません。PNG または JPEG のみサポートされます。"
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "あなたの指定したシグネチャは長すぎます。250文字未満にしてください。"
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "該当する参加者はいません:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "どのように非公開メッセージ、友達リクエスト、 参加しているスレッドへの投稿などの新着について通知すれば良いですか?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "あなたのアカウントページに表示(メール通知なし)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Eメールで即座に通知"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "一日に一回Eメールで通知"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "掲示板での自分の表示方法"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "アバター"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "掲示板であなたを示す画像です。"
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "データ形式: JPG または PNG。サイズ: 最大 4 KB、100x100 ピクセル"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "アバターを使わない"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "%1 によって提供され、グローバルに認識されるアバターを使用する"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "アップロードされたこのアバター画像を使用する: "
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "アバターのプレビュー"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "これは、あなたのアバターがどのように見えるかです"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "掲示板へ投稿時のシグネチャ"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "%1 ここ %2 にシグネチャ用の様々な無料のサービスがあります。\n<br> あなたの最新の功績値(credit)や、プロジェクトの\n<br> ニュースなどを動的なシグネチャ画像で提供してくれます。"
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "デフォルトではシグネチャを付加"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "シグネチャのプレビュー"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "これは、掲示板の中であなたのシグネチャがどのように見えるかです"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "メッセージの表示方法"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "表示する項目"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "アバター画像を隠す"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "シグネチャを隠す"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "画像をリンクとして表示"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "リンクを別ウィンドウ/タブで開く"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "特定の参加者を強調表示する"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "ページあたりのこれくらい多数のメッセージを表示"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "並べ替え方法"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "スレッド:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "投稿:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "スレッド内の最新の投稿に自動的にジャンプする"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "一番上にスティッキーポストを移動しない"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "メッセージのフィルタリング"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "表示から除かれる参加者"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "これらの参加者による掲示板への投稿と非公開メッセージを無視します。"
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ユーザーID (たとえば、123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "フィルターに参加者を追加"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "プレファレンスを更新するにはここをクリック"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "リセット"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "あるいはここをクリックしてプレファレンスを初期値にリセットします"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "データベースの問題が原因であなたのパスワードを変更できませんでした。後ほどまた試してください。"
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "パスワードの変更"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "あなたのパスワードは変更されました。"
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "新しいパスワード"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "新しいパスワードをもう一度"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "アカウントの名前の中では、HTML タグは使えません。"
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "アカウントには名前をつけなければなりません。"
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "アカウント情報を更新できませんでした。"
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "アカウント情報を編集"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "名前 %1 本名またはニックネーム %2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 あなたのウェブページのURL、省略可 %2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "郵便番号 %1 省略可 %2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "アカウント情報の更新"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "サーバー側の状態"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "タスクの<b>サーバ側の状態</b>とは、そのタスクがいずれかのコンピュータへ送出済みであるかどうか、送出済みならば、そのコンピュータがそれを計算し終わったかを示します。ありうる値は右のとおりです:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "タスクは送出の準備ができていない(たとえば、その入力ファイルが使えないため)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "タスクは送出の準備ができているが、まだ送出されていない。"
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "計算中"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "タスクは送出済みで、計算の完了待ち"
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "タスクはあるコンピュータに送出済みで、すでにタイムアウトしてしまったか、あるいはそのコンピュータから計算完了の報告があった。"
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "結果"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "タスクの<b>結果</b>は、そのサーバ側の状態が <b>終了後(over)</b>の場合にだけ意味を持ちます。ありうる値は以下のとおりです:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "そのタスクはあるコンピュータに送出されたが、そのコンピュータは計算をまだ終えておらず、結果を報告していない。"
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "あるコンピュータがそのタスクの計算を完了し、成功裏にタスクを報告した。"
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "サーバはそのタスクをどのコンピュータにも送ることができていない(おそらく、資源の要求量が大きすぎるため)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "クライアントでの異常"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "そのタスクはあるコンピュータに送出されたが、異常が発生した。"
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "そのタスクはあるコンピュータに送出されたが、制限時間内に返事がなかった。"
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "そのタスクはどのコンピュータにも送出されていない。なぜなら、十分な数のタスクが対応するワークユニットで完了しているから。"
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "そのタスクは報告がなされているが、検証ができていない。典型的には出力ファイルがサーバ側で失われているため。"
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "クライアント側の状態"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "あるリザルトの<b>クライアント側の状態</b>とは、異常がどの処理段階で発生したかを示します。"
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "そのコンピュータはまだそのタスクを完了していない。"
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "そのコンピュータは、そのタスクを成功裏に計算を完了した。"
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "そのコンピュータはアプリケーションまたは入力ファイルのダウンロードができなかった。"
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "計算中に異常が発生した。"
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "そのコンピュータは、出力ファイルをアップロードできなかった。"
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "報告日時または期限"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "あるタスクの<b>報告日時または期限</b>の欄は、そのタスクが報告済みかどうかによって意味が右のように決まります:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "既に報告済みの場合"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "その日時はタスクの報告がなされた時のもの"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "報告されていないが、期限がまだ先の場合"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "期限の日時を緑色で示します。"
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "報告されておらず、期限が過ぎている場合"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "期限の日時を赤色で示します。"
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "不明のフィールド"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Eメールのプレビュー"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "あなたのEメイルは次のように見えるはずです:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Eメールの送信"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "メッセージの入力画面に戻るには、ブラウザの戻るボタンを使ってください"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Eメールを送信中"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "%1 へのEメール送信が成功しました"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "%1 へのEメール送信が失敗しました: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "%1 についてお友達に伝えていただき、ありがとうございます"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "お友達の名前やEメールアドレスを入力するのをお忘れです。%1 入力画面に戻って %2 入力してください。"
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "このプロジェクトはEメール・メッセージを作成していません - 管理者に知らせてください"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "%1 についてあなたのお友達に伝えてください"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "あなたのお友達や家族、同僚の方々に %1 について伝えるのを手伝ってください"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "%1 に興味をもちそうだとあなたが思う方々の名前とEメールアドレスを、このフォームに入力してください。それらの方へ当プロジェクトからあなたの名前でEメールを送ります。あなたが希望する場合ご自身のメッセージを追加することもできます。"
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "あなたの名前:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "あなたのEメールアドレス:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "お友達のお名前:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "お友達のEメールアドレス:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "付記したいメッセージ(任意)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "送信"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "あなたには参加者を投稿禁止にする権限はありません。"
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "投稿禁止の採決"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "このIDの参加者は見つかりません。"
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "参加者はすでに投稿禁止になっています"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "本当に %1 を投稿禁止にしますか?<br/>参加者 %1 は決められた期間、投稿できなくなります。<br/>この処置は %1 によって挑発的な振る舞いが継続的になされた場合に限定されるべきです。"
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "理由を分類から選んでください。その参加者がなぜ投稿を禁止されるべきかの説明文を書き込むこともできます(任意)。"
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "分類"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "低俗である"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "感情に任せた/悪意あるメール"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "参加者の要求"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "理由"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "記入すればメールで通知されます"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "採決へ進む"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "あなたは、行動を指定しなければなりません..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "この投稿内容はもはや変更できません。<br/>投稿内容は最初に作成されてから %1 分に限って、編集が許可されます。"
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "あなたにはこの投稿を編集する権限がありません。"
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "掲示板"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "あなたのメッセージを編集する"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "タイトル"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "自分のシグネチャをこの投稿に追加"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "あなたはこの掲示板を見ることはできません。"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "%1 用のチーム掲示板"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "新しいスレッド"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "この掲示板に新しいスレッドを追加"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "この掲示板は %1RSSフィード%2 として利用できます"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "このスレッドは隠されています。"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "このスレッドは表示位置固定かつ書き込み禁止状態で、あなたはまだ読んでいません"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "位置固定/書き込み禁止/未読"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "このスレッドは表示位置固定状態で、あなたはまだ読んでいません"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "位置固定/未読"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "あなたはこのスレッドをまだ読んでいません。そして書き込み禁止状態です"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "未読/書き込み禁止"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "あなたはこのスレッドをまだ読んでいません"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "このスレッドは表示位置固定かつ書込み禁止状態です"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "位置固定/書き込み禁止"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "このスレッドは表示位置固定状態です"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "位置固定"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "このスレッドは書き込み禁止状態です"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "書き込み禁止"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "あなたはこのスレッドを読みました"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "既読"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "質問と答(Q&A)"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "ボランティアとSkypeで直接話しましょう。複数の言語で利用できます。 %1 BOINC オンライン・ヘルプ %2 へどうぞ。"
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "トピック"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "質問"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "%1 メンバー間での議論"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 掲示板"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "疑問や問題をかかえているなら、掲示板の %1質問と答(Q&A)%2 セクションをご利用ください。"
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "参加しているスレッド"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "投稿をモデレートする"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "投稿を隠す"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "商業目的のスパム"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "二重投稿"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "投稿を移動する"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "移動先のスレッドID:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "参加者を投稿禁止にする"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "禁止期間"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4時間"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1日"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1週間"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2週間"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "一ヶ月"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "永久"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "追加の説明 %1 この部分は参加者への Eメールに挿入されます。 %2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "あなたにはこの投稿をモデレートする権限がありません。"
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "異なる分類のところへは移動できません"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "異なる分類のところへは移動できません"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "参加者を投稿禁止にする権限がありません"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "投稿禁止"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "参加者 %1 は投稿禁止になりました。"
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "処理失敗: データベースの問題かもしれません"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "権限がありません"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "スレッド '%1' をモデレートする"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "理由を分類から選ぶか、あるいは、なぜそのスレッドの表示を抑止したり書き込み禁止にするのか説明を記述し、最後にOKボタンを押してください。"
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "現在の掲示板"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "移動先の掲示板"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "新しいタイトル:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "ここではプロジェクト管理者のみ新しいスレッドを作成できます。それでも、既存のスレッドに返信することはあなたにもできます。"
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "あなたのメッセージは Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "新しいスレッドを作成"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "新しいスレッドを作成"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "題名の入力をお忘れなく"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "この項目を BOINC Manager のお知らせとして表示する"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "そうするのは、ボランティアの全ての方が興味を持つであろう項目に限ってください。"
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "評価機能は停止しています"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "この機能はプロジェクトによって止められています"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "投稿を評価するためには、あなたはより多くの平均功績(credits/day) をあげるか、より多くの総功績(credits)を持っていなければなりません。"
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "あなたはすでにこの投稿を評価済みです。"
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "スレッドに戻る"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "入力内容は記録されました"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "入力内容は記録されました。ご協力に感謝します。"
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "投票は記録されました"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "評価していただいた内容は記録されました。ご協力に感謝します。"
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "投票時に問題発生"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "あなたの投稿内容は Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集し、もう一度試してみてください。"
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "スレッドに投稿する"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "メッセージ:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "右の%1メッセージ ID%2に返信する:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "返信を投稿する"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "自分のシグネチャをこの返信に追加する"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "あなたはより多くの平均功績(credits/day) あるいは、より多くの総功績(credits)を持っていなければなりません。"
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "報告は登録されました"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "あなたの報告は登録されました。入力ありがとうございます。"
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "モデレーターはあなたの報告を確認してからどうするべきか決めます - これには少々時間がかかります、辛抱強くお待ちください。"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "掲示板の投稿について報告"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "この投稿に関して報告を提出する前に、代わりに +/- を付ける評価システムを使うことをご検討願います。投稿に対して十分な数の参加者が否定的な評価をすれば、ゆくゆくはその投稿は表示されなくなります。<br />評価システムはその投稿の末尾にあります。"
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "投稿について報告する"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "なぜその投稿が攻撃的であると考えるか: %1そのスレッドをまだ読んでいない人からみても、\n問題点がすぐにわかるよう、十分な情報を含めて書いてください。%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "報告は登録されませんでした"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "あなたの報告を記録することができませんでした。少し待ってからもう一度試してみてください。"
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "これが一時的なエラーでないなら、このプロジェクトの開発者に報告してください。"
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 の RSS フィード"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "この掲示板は RSS フィードで読めます。"
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "オプション:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "ユーザーID %1(デフォルト:すべての参加者)からの投稿だけを含める。"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "最新の %1 日間(デフォルト:30日)の投稿だけを含める。"
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "スレッドのみ: %1 (各スレッドの最初の投稿だけを含める)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "掲示板内の検索"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "検索クエリ"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "キーワードで検索:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "指定した全ての語を含む投稿が表示されます"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "たとえば、\"screensaver freeze\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "投稿者のIDで検索:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "指定した ID の人が書いた投稿だけが表示されます"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "たとえば、 \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "検索オプション"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "検索範囲の制限"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "今から次の日数までさかのぼった範囲でだけ検索します"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 ヶ月"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1年"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "無制限"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "指定した掲示板の投稿だけから検索します"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "並べ替え"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "検索開始"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "掲示板の検索結果"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "検索で見つけたスレッドの題名:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "検索で見つけたメッセージ:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "残念ながら、ご指定の条件に合致するものは見つかりませんでした。より少ない単語を使って(特定の単語を減らして)、検索条件を緩めてから再試行してはいかがでしょう。"
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "さらに、%1同じ検索を Googleで試みる%2ということもできるでしょう。"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "別の検索をする"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "参加登録成功"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "これであなたは %1 に参加しました。新しい投稿があれば通知がなされます。"
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "参加に失敗"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "あなたを %1 に参加させることが現在できません。後ほどもう一度お試しください…"
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "参加登録の削除に成功"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "あなたはもはや %1 には参加していません。このスレッドからの通知を受け取ることはもうありません。"
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "参加登録の削除に失敗"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "あなたの %1 への参加登録を削除することが現在できません。後ほどもう一度お試しください…"
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "不明な参加行動"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "あなたはこの掲示板を見ることはできません。"
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "モデレーターによりこのスレッドは隠されています。"
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "私の質問に回答されました"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "あなたの質問に適切な回答があったのなら、ここをクリックしてください。"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "私も同じ疑問をもっていた"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "このスレッドに新しいメッセージを投稿"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "スレッドへの参加をやめる"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "あなたはこのスレッドに参加しています。 参加をやめるにはここをクリックします。"
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "参加する"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "このスレッドに新しい投稿があったとき、メールを受け取るにはここをクリックします"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "このスレッドを見えるようにします"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "このスレッドを隠します"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "表示位置を固定しない"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "このスレッドを常に一覧の先頭に固定しないようにする"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "表示位置を一覧の先頭へ固定する"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "このスレッドが常に掲示板の上部に表示されるようにする"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "書き込み禁止をはずす"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "このスレッドへの新しい投稿を許可する"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "書き込み禁止にする"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "このスレッドへの新しい投稿を許可しない"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "このスレッドを別の掲示板に移動します"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "題名を編集する"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "スレッドの題名を編集します"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "スレッドを永久に削除する"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "お知らせとしてエクスポート"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "エクスポートしない"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "このニュースをお知らせとしてエクスポートしない"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "並べ替え"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "スレッド状態が更新されました"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "状態が更新されました。"
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "%1 からの投稿"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "既に友人関係にあります"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "あなたは %2 において %1 さんへ友人関係の承認をリクエストしました。"
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "このリクエストはまだ承認待ち状態にあります。"
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 さんはあなたからの友人関係の承認リクエストを受け入れていません"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "自分自身を友人にすることはできません"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "友人の追加"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "あなたは %1 さんを友人にしようと依頼しました。 われわれから %1 さんへ通知し、あなたを友人と認めるか尋ねます。"
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "付記したいメッセージがあればどうぞ:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "友人関係の承認リクエストを送信しました"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "%1 さんにあなたの要求を通知しました。"
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "%1 としてログインしてください"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "この友人関係の承認リクエストの内容を見るには、%1 としてログインしなければなりません"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "友人関係の承認リクエスト"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 さんがあなたに友人関係の承認をリクエストしました。"
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 さんからのメッセージ: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "友人関係を受け入れる"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "%1 さんが実際に友人であれば、「受け入れる」をクリックしてください"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "辞退する"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "%1 さんが友人でなければ、「辞退する」をクリックしてください"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "友人関係が確認されました"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "%1 さんとの友人関係が確認されました。"
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "友人関係は辞退されました"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "あなたは %1 さんとの友人関係を辞退しました"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "通知はありません"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "友人と確認されました"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "今回、友人となった方々は次のとおりです: %1"
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "友人関係を取り消しますか?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "本当に %1 さんとの友人関係を取り消してよろしいですか?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "友人のままにする"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "友人関係が取り消されました"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "あなたと %1 さんの友人関係は取り消されました。"
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) アカウントに登録したあなたの Eメールアドレスを憶えているなら、こちらから Eメールをお送りできます:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "その Eメイルアドレスを以下に入力し OK をクリックしてください。あなたのパスワードをリセットするための手順を書いた Eメールをあなたに送ります。"
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) アカウントに登録したあなたの Eメールアドレスを忘れてしまったか、そのアドレスでは Eメールの受信ができない場合:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "このアカウントで BOINC を動作させたことがあるなら、まだあなたのアカウントにアクセスする手立ては残っています。どうするかというと:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "あなたのコンピュータの BOINC のデータディレクトリへ移動します(場所は起動時にイベント・ログへ書き込まれます)。"
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "このプロジェクトであなたのアカウントを記録しているファイルを見つけてください。その名前は<b>%1</b>のようになっています。"
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "そのファイルをメモ帳(Notepad.exe)のようなテキスト・エディタで開いてください。次のようなテキストが見えるでしょう"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "%1 と %2 の間にある文字列(上記の例では %3 のところ)を選択してコピーします。"
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "その文字列を以下の欄に貼り付けます。そして、OK をクリックしてください。"
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "するとあなたのアカウントにログインできるでしょう。そうしたら、アカウントの Eメールアドレスとパスワードを適宜更新してください。"
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "認証子(authenticator)を使ってログインする"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "アカウント関連情報をお忘れですか?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "GPU タスクが報告されていません"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "上位の GPU モデル"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "下記のリストは異なるプラットフォーム上で最も生産性の高い GPU のモデルを示しています。タスクの平均経過時間によって計測された相対速度は、括弧の中に表示されています。"
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "%1 へようこそ!"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "以下のリンクを使ってアカウントのプレファレンス(好みの設定)を確認・変更してください。"
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "まだダウンロードしていなければ、%1BOINC クライアント・ソフトウェアをダウンロード%2してください。"
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "あなたのアカウント"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "名前のないプラットフォーム、アプリケーションなし"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "名前のないプラットフォーム"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "アプリケーションのバージョンなし"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "アプリケーションなし"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "プラットフォームなし"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "完了したタスクの数"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "一日あたりの最大タスク数"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "今日のタスク数"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "連続して有効な結果を返したタスク数"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "平均処理速度"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "計算機 %1 のアプリケーション詳細"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "そのコンピュータに関する記録はありません。"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "このコンピュータに関する記録を消すことはできません。それはわれわれのデータベースにこのコンピュータで処理した仕事がまだ残っているためです。その仕事がプロジェクトのデータベースから削除されるまで数日待たなければなりません。"
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "コンピュータに関する記録を削除する"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "記録を削除しました。"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "あなたのコンピュータの一覧に戻る"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "コンピュータに関する記録をマージする"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "コンピュータをマージする"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "ときどき BOINC は誤って別々の識別子を同一のコンピュータに割り当ててしまうことがあります。古い識別子を最新の識別子へ合併することで、訂正することができます。"
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "この計算機とマージできるものはありませんでした。"
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "詳細を表示"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "%1 (生成日時 %2、コンピュータ ID %3)と同じコンピュータにチェックを入れてください:"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "名前"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "生成日時"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "コンピュータ ID "
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "ホスト名なし"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "計算機をマージする"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "コンピュータの功績値を更新中"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "計算機の功績値が更新されました"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "計算機の所在地を更新しました"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "指定なし"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "この計算機の所在地は %1 に設定されました。"
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "この変更が効果を発揮するのは、計算機がこのプロジェクトと次回交信したときです。"
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "計算機のページへ戻る"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1 さんのコンピュータ"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "コンピュータは表示されません"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "この参加者は自分のコンピュータの情報を表示しないことを選びました。"
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "あなたのコンピュータ"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "使用可能な HTML タグ"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "以下の HTML タグをチームの説明文の中で使うことが許可されています:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "太字"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "斜体"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "ハイパーリンク"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "段落"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "改行"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "整形済みテキスト"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "画像。 高さは 450ピクセル以下。画像が置かれているウェブサイトの許可なしにその画像にリンクを張ることはしないでください。"
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "さらに、アンパサンド表記を特殊文字のために使うこともできます。"
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "このプロジェクトの「規則と方針」を読んでください"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "%1 を実行するコンピュータは、あなたが権限を持っているものだけにしてください"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "%1 を実行するコンピュータは、あなたの所有するものであるか、あるいは、あなたが所有者から許可を得たコンピュータだけにしてください。 会社や学校の一部には、そのコンピュータを %1 のようなプロジェクトのために使うことを禁じる方針のところがあります。 "
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "%1 はどのようにあなたのコンピュータを使うか"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "あなたのコンピュータで %1 を動かすと、そのコンピュータの CPU パワー、 ディスク領域、そしてネットワーク帯域幅の一部を使います。 あなたは、これらの資源をどれだけ、そして何時、%1 に振り向けるかを制御できます。"
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "あなたのコンピュータがした仕事は、%1 プロジェクトの目標に貢献します。その目標はプロジェクトのウェブサイトに書かれています。そのアプリケーションプログラムは、時間がたつにつれ変更されるかもしれません。 "
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "プライバシーポリシー"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "%1 プロジェクトのあなたのアカウントは、あなたが選んだ名前で識別されます。この名前は %1 プロジェクトのウェブサイト上で表示されるかもしれません。そこでは、%1 プロジェクトであなたのコンピュータがやり終えた仕事の概略も表示されるかもしれません。無名の人のままでいたかったら、あなたが誰なのか分かるような名前を選んではいけません。 "
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "%1 に参加すると、あなたのコンピュータに関する情報(プロセッサのタイプや、メモリの量など)は、%1 プロジェクトにより記録され、どのようなタイプの仕事をそのコンピュータに割り当てるかを判断するために使われます。この情報も、%1 のウェブサイト上で表示されます。 あなたのコンピュータの位置を明かしてしまうようなもの(たとえば、ドメイン名やネットワークアドレス)は表示されることはありません。"
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "%1 に参加するには、メールを受信できるアドレスを提示しなければなりません。このアドレスは、%1 プロジェクトのウェブサイトで表示されることはなく、複数の組織間で共有されることもありません。%1 プロジェクトは定期的なニュースレターをこのメールアドレス向けに送信することがありますが、受信しないようにいつでも変更可能です。"
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "%1 ウェブサイトの中で送信された非公開メッセージは、送信者と受信者だけが見ることができます。%1 プロジェクトは非公開メッセージの内容をチェックしたり取り締まったりすることはありません。%1 プロジェクトの他の参加者から、望まぬ非公開メッセージを受信したら、あなたの %2メッセージ・フィルター%3 にその参加者を登録できます。こうすると、その参加者からのメッセージは、公開メッセージであろうと非公開メッセージであろうと、あなたの目に触れることはなくなります。"
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "このウェブサイトの掲示板をお使いになるのでしたら、%2投稿のガイドライン%3 に従わなければなりません。この %1 掲示板に投稿されたメッセージは、メンバー以外の方も含め誰でも読むことができます。いったんメッセージを投稿すると、どのような人にでもあなたの投稿内容を見たり、それをコピーする許可を永久に取り消すことのできない形で与えることを認めたことになります。 "
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "%1 を実行することは安全か?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "インターネットからプログラムをダウンロードするときには、いつでも危険がついて回ります。つまり、そのプログラムが危険な異常を起こしたり、ダウンロードサーバが侵入を受けていたということがあり得ます。%1 プロジェクトでは、このようなリスクを極力減らす努力をしています。私たちのアプリケーションは注意深くテストされています。サーバはファイアウォールの背後に置かれていて、安全性の高い設定がなされています。プログラム・ダウンロードの完全性を保証するため、インターネットから隔離した安全なコンピュータを使い、すべての実行可能ファイルにデジタル署名をつけています。"
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "%1 プロジェクトで実行するアプリケーションは、一部のコンピュータを過熱させるかもしれません。もしそうなったら、%1 の実行を止めるか、CPU 使用量を制限する %2ユーティリティ・プログラム%3 を使ってください。 "
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 は %2 で開発されました。 BOINC は、カリフォルニア大学(University of California)で開発されました。 "
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "責務"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 に参加したことの結果として生じた、あなたのコンピュータの被害、データの損失、あるいはどんな事件や状況についても、%1 と %2 は、なんら責任を負いません。"
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "その他の BOINC プロジェクト"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "他のプロジェクトも、%1 と同様に、BOINC という同じプラットフォームを使います。あなたはこれらの他のプロジェクトにも参加したいと思うかもしれません。もし他のプロジェクトにも参加していれば、たとえ %1 に渡せる仕事がなくなったときでさえ、あなたのコンピュータは有用な仕事を実行することができます。 "
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "これらの他のプロジェクトは、%1 と共同で運営されているわけではありません。ですから、それらプロジェクトのセキュリティ管理の実施具合や、研究内容の性質については、なんら私たちが保証できるものではありません。あなた自身のリスクで参加してください。"
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "言語の選択"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "このウェブサイトは複数の言語で表示できます。現在、選択されている言語は、%1 です。"
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "通常、このウェブサイトの表示に使う言語はあなたが使っているブラウザの言語設定から決まるようになっており、それは現在 %1 です。 ブラウザの言語設定は、以下のようにして変更できます:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: ツール(T)/オプション(O)/一般"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft Internet Explorer: ツール(T)/インターネット・オプション(O)/全般/言語(L)"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "あるいは別のやり方として、下記のテーブルにあるリンクをクリックすることでも言語を選択できます。この方法では、あなたのブラウザに「クッキー」が送られますので、このウェブページのドメインからクッキーを受け入れられるようにブラウザを設定しておいてください。"
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "言語名 (選択するものをクリックしてください)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "ブラウザの言語設定に従う"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "翻訳はボランティアの方々にしていただいています。あなたの第一言語がここになければ、%1あなたも翻訳をすることができます%2。"
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "または %1アカウントを作成する%2 。"
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "%1 を処理中"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1 を %2 にマージしました"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "あなたのコンピュータの一覧に戻る"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "この操作では、そのドメイン名に基づいてコンピュータをマージします。\n<p>\nそれぞれ同じドメイン名の場合、すべての古いコンピュータを最新のコンピュータにマージします。\n互換性のないコンピュータはマージされません。\n<p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "先へ進んでこれを行う"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "コンピュータの一覧に戻る"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\n議論や情報の流れを最大化するため、私たちの掲示板は加減されています。\n掲示板への投稿は以下の投稿規約を条件とします:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nモデレーターは、これらの規約のいずれかに違反する投稿を削除する場合があります。\n削除された投稿者には、Eメールで通知されます。\n悪質な違反者はメッセージを投稿する能力が一時的に無効にされている場合があります(悪用を防ぐためではありますが、唯一プロジェクト管理者がそうする能力を持っています)。\n正規のルールに記載されていないものの、さらなる種類の有害行動はそれでもやはり同じような罰則につながる可能性があります(他の参加者のIPアドレスをトラップする「盗聴」のような投稿、掲示板へのスパムのための過度のスレッドの作成など)。\n<p>\nある投稿が投稿規約のいずれかに違反すると思われる場合は、該当する投稿の赤いXをクリックし、フォームに必要事項を記入します。そうすることでモデレーターにあなたの苦情が通知されます。\n個人的異議以外・明確な違反についてのみこのボタンを使用してください。\n<p>\n私たちは調停するとき、できる限り公平にしようとしますが、多くの異なる観点をもつユーザーの大規模なコミュニティには、常に私たちの節度の決定に満足でき [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "保留中の功績"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "結果のID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ワークユニットのID"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "計算機のID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "要求された功績値"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "保留中の功績値: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "この参加者からのメッセージをブロックする"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "参加者をブロックする"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "メッセージは送信されました。"
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "非公開メッセージは届いていません。"
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "送信者名と日付"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "このメッセージへ返信する"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "このメッセージを削除する"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "すべて選択"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "すべて選択解除"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "選択したメッセージを削除する"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "送信者"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "日付"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "非公開メッセージを送信するためには、すべての欄に入力しなければなりません。"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "あなたが書き込んだ初回の内容は Akismet anti-spam システムからスパムの疑いがあると判定されました。テキストを編集しなおしてから、もう一度試してみてください。"
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "IDが %1 の参加者は見つかりませんでした"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "ユーザー名が %1 の参加者は見つかりませんでした"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "ユーザー名 %1 は複数存在します。ユーザーIDを指定してください。"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "%1 さん(ID: %2 )は、あなたからの非公開メッセージを受け付けていません。"
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "該当する参加者はいません"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "本当に %1 をブロックしますか?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "本当に %1 から送信される非公開メッセージをブロックしますか?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "ブロックできる相手の数に限りがあります。ご注意ください。"
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "この利用者からのメッセージを一旦ブロックしても、掲示板のプレファレンス(好みの設定)でブロックを解除することができます。"
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "いいえ、やめます"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "該当する参加者はいません"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "参加者 %1 をブロックしました"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "参加者 %1 については、すでにあなたへ非公開メッセージを送れないブロック状態になっています。"
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "ブロックを解除するには、%1掲示板のプレファレンス(好みの設定)%2 で設定を変更してください。"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "不明な動作"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "あなたのプレファレンス(好みの設定)は更新されました。\nこの更新が効果を発揮するタイミングは、あなたのコンピュータが %1 と通信したとき、または、あなたが %2更新%3 の指令を BOINC マネージャから出したときです。"
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "あなたのプレファレンスは初期値にリセットされました。\nこの更新が効果を発揮するタイミングは、あなたのコンピュータが %1 と通信したとき、またはあなたが %2更新%3 の指令を BOINC マネージャから出したときです。"
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%2 用の %1"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "プレファレンス一覧のページに戻る"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "プレファレンス削除の確認"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "本当に %2 用の 個別 %1 プレファレンスを削除してもよろしいですか?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "プレファレンスを削除"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "キャンセル"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "プロフィール"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1プロフィール%2 は、参加者個人それぞれが、このプロジェクトの  %3 コミュニティとの間で、経歴や意見を共有することを可能にします。"
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "ボランティアで参加している仲間の多彩さをみて回りましょう。 そして、他の参加者が楽しめるようにあなたの見方を提供しましょう。"
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "まだご自身のプロフィールを作っていないなら、他の参加者が見ることができるように、%1あなたのプロフィールを作りましょう!%2"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "毎日の参加者紹介"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "参加者のプロフィールのエクスプローラ"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "%1参加者の写真ギャラリー%2 を見ます。"
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "%1国ごと%2に自己紹介を見ます。"
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "プロフィールを見る:%1無作為に選択%2、%3画像付きのものから無作為に選択%4、 %5画像なしのものから無作為に選択%6。"
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "アルファベット順の自己紹介一覧:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "プロフィールのテキストを検索"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "該当するプロフィールはありません"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "検索条件に一致するプロフィールはありませんでした。"
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "無効な投票のタイプ:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "投票は記録されました"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "ありがとうございます"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "あなたのご推薦を記録しました。"
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "このプロフィールに拒否投票したことを記録しました。"
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "プロフィールに戻ります。"
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "'%1' を含むプロフィール"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "ユーザー名"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "参加しているプロジェクト"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "最近の平均功績値(クレジット)"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "'%1' を含むプロフィールはありません"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "該当するタスクはありません:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "この機能は一時的に停止させられています"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "ID %1 を持つコンピュータは見つかりません"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "アクセス禁止"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "ユーザーIDまたは計算機のIDが指定されていません"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "表示すべきタスクがありません"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "毎日の参加者紹介"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "停止状態"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "実行中"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "指示により停止"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "プロジェクトの状態"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "サーバー側の状態"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "プログラム"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "計算機"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "データベース・スキーマのバージョン:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "計算の進捗状況"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "参加者"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "アプリケーションごとのタスク統計"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "最近100リザルトの平均計算所要時間(単位:時間): 平均値、最小値、最大値"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "24時間内に計算結果を返した参加者数"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "コンピュータ %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "統計データとリーダーボード"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "%1 の統計データ"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "参加者のランキング"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "チームのランキング"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "コンピュータのランキング"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU モデル"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU モデル"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "%1 と他の BOINC プロジェクトについてのより詳しい統計データを、下記のいくつかのウェブサイトで見ることができます:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "ご自分の統計データを、シグネチャ用画像に埋め込んで使うことができます。下記をご覧ください:"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "さらに、すべての BOINC プロジェクトに渡って集計されたご自分の統計データを得ることが、いくつかのサイトから可能です。ご自分の %1ホームページ%2 をご覧ください。"
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "チーム"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 の参加者は %2チーム%3 を作ることができます。"
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "所属できるチームは1つだけです。チームへの参加と離脱はいつでも可能です。"
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "それぞれのチームには、%1創設者%2 が1名います。創設者ができることは以下のとおりです:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "チームメンバーのメールアドレスにアクセス"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "チームの名称と説明文を編集"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "チーム管理者を追加/削除"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "チームからメンバーを削除"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "メンバーがいなければチームを解散する"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "チームに参加するには、そのチームのページに行って、%1このチームに参加%2 をクリックします。"
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "チームを検索"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "全てのチーム"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 チーム"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "新しくチームを作る"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "あなたにふさわしいと思うチームが見つからなかったら、新しく %1チームを作る%2 こともできます。"
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "このメンバーをチーム管理者の地位からはずします"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "チーム管理者を追加/削除する"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "チームのメンバーから「チーム管理者」を複数選べます。チーム管理者は以下のことができます:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "チームの情報(名前、URL、説明文、国名)を編集する"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "チームへの参加/脱退の履歴を見る"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "必要に応じて(調停が必要な状態を知らせるメール、あるいは、Red X レポートを受信した場合)チーム掲示板の仲裁をする"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "チーム管理者にはできないことは以下のとおりです:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "チーム創設者の変更"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "メンバーの除名"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "チーム管理者がそのチームを脱退したとすれば、チーム管理者もやめることになります。"
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "チーム管理者として、あなたが知っていて十分信頼している人のみを選ぶことをお薦めします。"
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "現在、チーム管理者は不在です"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "現在のチーム管理者"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "以下のチームのチーム管理者になりました:"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "チーム管理者を追加する"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "チームメンバーのEメールアドレス:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "追加"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "チーム管理者の削除に失敗しました"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "その人はチームのメンバーではありません"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 はすでに %2 のチーム管理者です"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "チーム管理者を追加できませんでした"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "該当するチームはありません"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "該当するチームはありません"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "その人は %1 のメンバーではありません"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "%1 の創設者を変更中"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 は今、%2 の創設者になりました"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "%1 の創設者を変更する"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "チームメンバであった %1 は、%2 でこのチームの創設者の地位を要求していましたが、チームから脱退してしまったので、その要求を取り消します。"
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "チームメンバの %1 は、このチームの創設者の地位を要求しています。それはあなたがそのチームを去ったか、あるいは長い間チームとの連絡を絶っていたからかもしれません。"
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "要求を拒否する"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "%1 による要求を拒否しないなら、%2 はチームの創設者を引き受ける選択権をもつことになります。<br /><br />\n要求を受け入れるには、下記のフォームを使って創設者の権限を %3 に割り当てます。"
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "保留されている権限委譲の要求はありません。"
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "他のメンバーにこのチームの創設者権限を割り当てるには、メンバー名の横にあるボックスにチェックを入れて、下にある <strong>創設者の変更</strong> をクリックします。"
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "新しい創設者ですか?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "創設者の変更"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "チームを移動するユーザーはいません。"
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "チームの名前は空白であってはなりません"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "%1 という名前のチームは既に存在します - 別の名前で試してください"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "チームを作ることができませんでした - しばらくたってからもう一度試してください。"
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "チームを作る"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "あなたは %1 に属しています。新しいチームを作る前に、 %2 このチームから離脱する %3 必要があります。"
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "創設者でもチーム管理者でもありません"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "%1 のチーム履歴"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "日時"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "参加者"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "参加/脱退"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "チーム参加・脱退時の総功績"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "国名が正しくありません"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "名前 '%1' は他のチームによって使われています。"
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "チームの名前は指定必須です"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "チームの情報を更新できませんでした - しばらくたってからもう一度試してください。"
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "%1 を編集"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "チームの情報を更新"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 のメンバーのEメール一覧"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "%1 のメンバー一覧"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "プレーンテキストとして表示"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "掲示板を作成する"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "%1 によって使われる掲示板を作ることができます。"
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "チームに所属するメンバーだけが投稿できます。"
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "チームのメンバーだけが閲覧できるようにすることも選択できます。"
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "あなたとチーム管理者にモデレーターの権限が付きます。"
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "%1 用の掲示板を作成する"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "チームにはすでに掲示板があります"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "チームの掲示板"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "連続投稿の間隔の最小時間(秒)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "投稿するために必要な総功績(credit)の最小値"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "投稿するために必要な平均功績(credits/day)の最小値"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "送信"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "チームの掲示板を削除します。"
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "本当に掲示板を削除しますか?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "本当にチームの掲示板を削除してもよろしいですか?すべてのスレッドと投稿内容が永久に失われます(それでも、その後で新しい掲示板を作ることはできます)。"
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "はい - 掲示板を削除します"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "掲示板を削除しました"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "あなたのチームの掲示板は削除されました。%1新しい掲示板を作る%2ことができます。"
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "チームの掲示板が更新されました"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "更新成功"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "更新失敗"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "チームには掲示板がありません"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "このページにアクセスするにはチームのメンバーでなければなりません。"
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "%1 の創設者権限の委譲を要求中"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "あなたの要求を現在の創設者にEメールと非公開メッセージの両方で通知しました。<br /><br />\n創設者が 60日以内に応答しなければ、あなたが創設者になることが許されます。"
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "創設者権限の要求は現在許されていません"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "%1 の創設者権限を引き継ぎました"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "おめでとうございます。今、あなたはチーム %1 の創設者になりました。チーム管理者のオプションを見るには、%2あなたのアカウントのページ%3へ行ってください。"
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "創設者変更の要求を拒否する"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "%1 からの創設者変更の要求は拒否されました。"
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "創設者権限の要求はありませんでした。"
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "未定義のアクション %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "チームのページへ戻る"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "このページにアクセスするにはチームのメンバーでなければなりません。"
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "%1 の創設者権限を要求する"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "あなたは今、チーム %1 の創設者になりました。"
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "あなたは %2 に %1 の創設者権限を要求しました。"
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "あなたが要求を出してから60日が経過しましたが、創設者は応答しませんでした。ここをクリックすることによって創設者権限を引き継げます:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "創設者権限を引き継ぐ"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "創設者にあなたの要求が通知されました。%1 までに創設者が応答しなければ、あなたが創設者になる選択権が与えられます。"
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "チームの創設者が活動しておらず、あなたがその役割を引き継ぎたい場合、以下のボタンをクリックしてください。現在の創設者にEメールが送信され、あなたの要求が説明されます。創設者は権限をあなたに委譲するか、委譲要求を拒否するかを選べます。創設者が60日以内に応答しなければ、あなたが新しい創設者になります。<br /><br />\n本当に創設者の権限委譲を要求しますか?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "創設者権限の委譲要求"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "創設者の変更は %1 からすでに %2 に要求されています。"
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "過去90日内に創設者の権限委譲が要求されていましたので、新規の要求は許可されません。しばらくたってからもう一度試してください。"
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "チーム %1 には参加できません。"
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "すでに所属しています"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "あなたはすでに %1 に所属しています。"
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "チームに参加できませんでした - しばらくたってからもう一度試してください。"
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "%1 に参加完了"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "%1 に参加しました。"
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "%1 に参加する"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "以下にご注意ください:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "チームに参加すると、その創設者はあなたのメールアドレスを知ることになります。"
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "チームへ参加しても、あなたのアカウントの功績値には影響はありません。"
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "チームに参加する"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "検索結果"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "'%1' の検索結果"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "以下のチームのメンバー数、統計データおよび情報を見ることができます。"
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "100件を超える数のチームが見つかりました。最初の100件を表示します。"
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "検索結果の最後です。%1 探しているチームを見つけることができなかったなら、ご自身で %2チームを作る%3 こともできます。"
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "%1 のチーム管理"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "チームの情報を編集する"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "チームの名前、URL、説明文、タイプ、国名を更新する"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "メンバー一覧:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "テキスト"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "メンバーの名前とEメールアドレスを表示する"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "メンバー変更の履歴を表示:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "メンバーのチーム参加/脱退日時を表示する"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "創設者権限の委譲要求に応答します。"
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "%1までに応答しないと、%2 がチーム創設者の地位を引き継ぐかもしれません。"
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "活動していない、もしくは好ましくないメンバーをチームから削除する"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "創設者権限を他のメンバーに委譲する"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "チーム管理者を追加/削除する"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "選択したメンバーにチーム管理者の特権を与える"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "チームを削除する"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "チームにメンバーがいないときだけ可能"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "チームの掲示板を作成/管理する"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "このチームをすべて(現在および未来にわたって)の BOINC プロジェクトに設置するために、%1BOINC ワイドのチーム%2 というものにすることもできます。"
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "チーム管理者には、Googleの %1boinc-team-founders%2 グループに参加して活動することをおすすめします。"
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "メンバーのいるチームは削除できません"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "チーム %1 を削除しました"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "制限超過: 最初の1000メンバーのみ表示可能です。"
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "%1のメンバー一覧"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "チームから脱退できません"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "指定したチームが存在しないか、あなたはそのチームに所属していません。"
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "%1 から脱退する"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>チームを脱退する前に注意していただくこと:</strong>\n<ul>\n<li>チームを抜けたら、後でそこに戻ることも、希望する他のチームに参加することもできます\n<li>チームを脱退しても、決してあなた個人の功績統計には影響しません。\n</ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "チームを離脱する"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "%1 からメンバーを削除しています"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 は %2 のメンバーではありません"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 は削除されました"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "%1 からメンバーを削除する"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "削除しますか?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "名前 (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "削除すべきメンバーは存在しません。"
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "メンバーを削除する"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "チームの名前"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "チームの検索結果"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "検索条件に合致するチームはありません。違う条件で探してみてください。"
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "あるいは、%1新しくチームを作る%2こともできます。"
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "以下のチームが検索条件のうち1つ以上に合致しました。\nチームに参加するには、その名前をクリックしてそのチームのページに行き、%1このチームに参加%2をクリックしてください。"
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "検索条件を変える"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "チームは、同じような興味を持った人、同じ国・会社・学校の人などと一緒になって結成することができます。"
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "このフォームを使ってあなたに適切なチームを探してください。"
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "私は今のところ%1チームへの参加に興味がありません%2。"
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "制限超過 - 残念ですが、最初の %1 項目のみ"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "コンピュータのランキング"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "%1 チームのランキング"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "%1 にチームがありません"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "参加日時"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "毎日の参加者紹介の対象者が選ばれていません。"
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "毎日の参加者紹介、本日(%1)は %2 さん"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "フィルター"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "参加者名の先頭文字列"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "何でもよい"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "プロフィールの記入があるかどうか"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "どちらでもよい"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "チームへの所属有無"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "整理"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "サインアップ日時が新しい人から表示"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "平均功績(credits/day)の多い人から表示"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "総功績(credits)の多い人から表示"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "検索条件の文字列は、少なくとも3文字必要です"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "参加者の検索結果"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "参加日時"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "検索条件に合う参加者はいませんでした。"
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "該当する参加者が見つかりません!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "アカウント・データ<br/>名前: %1<br/>時刻:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "チーム:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "チームの総功績:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "チームの平均功績:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "チーム: なし"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "BOINC のEメールアドレスを確認"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "あなたが %1 アカウントに指定した Eメールアドレスを確認するため、下記のリンクを訪問してください:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "送信された Eメールに確認を返す"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Eメールを %1 に送信しました。そこに含まれるリンクをたどって、あなたのEメールアドレスが正しいことを証明してください。"
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "該当する参加者はありません。"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "URLデータに異常あり - Eメールアドレスが確認できません"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "データベース更新失敗 - 後ほどやり直してください。"
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Eメールアドレスを確認する"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "あなたのアカウントのEメールアドレスは確認されています。"
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "この参加者にはプロフィールがありません"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "プロフィール: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "アカウントのデータ"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "あなたはEメールアドレスとパスワード、もしくは割り当てられた「アカウント・キー」どちらかを使ってアカウントにアクセスできます。\nあなたのアカウント・キー:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "このキーは以下のことに使用することができます:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "ウェブ上であなたのアカウントへのログイン"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "BOINC マネージャを使用せずに、アカウントにコンピュータを接続します。\nそのためには、BOINC をインストールし、BOINC のデータディレクトリに %1 という名前のファイルを作成し、以下の内容を設定します:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "弱いアカウント・キー"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "あなたの「弱いアカウント・キー」は前述のように、あなたのアカウントにコンピュータを接続するために使用することができますが、あなたのアカウントにログインしたり、アカウントを変更するために使用することはどのような方法でもできません。\nアカウントに信頼されていないあるいは安全でないコンピュータをアカウントに接続したい場合は、弱いアカウント・キーを使用してください。\nあなたの弱いアカウント・キー : "
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "もしパスワードを変更するならば、あなたの弱いアカウント・キーは変更され、以前の弱いアカウントを・キーは無効になります。"
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "ワークユニットが見つかりません"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "ワークユニット %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "アプリケーション"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "基準となる結果"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "認められた功績値"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "タスクを実行中"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "完了保留中のワークユニットは表示を省略"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "最少定足数"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "複製の初期量"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "タスク数の各種上限値(異常、総数、正常)"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "異常"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "検証"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "保留中"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "メインページ"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "生成日時"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "あなたの経歴。"
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "ご自身について書いてください。出身地、年齢、職業、趣味のほか、何でもあなたに関することをどうぞ。"
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "%1 についてのあなたのご意見"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "%1についてどのような考えをお持ちか教えてください。<ol>\n<li>なぜ %1 を稼働させているのでしょうか?\n<li>このプロジェクトについて何か意見がありますか?\n<li>その他にも提案をいただけますか?\n</ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "グラフィックの配色"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "グラフィックに割り当てる最大CPU使用率(%) %1 0 ... 100 %2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "選択したアプリケーションだけを実行する"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "特定のアプリケーションのためのタスクのみ取得します。特定のアプリケーションに集中する、またはそれらを除外する場合に便利です。"
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "選択したアプリケーションの仕事がないとき、他のアプリケーションの仕事も受け入れますか?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "利用可能な場合、より高速な非グラフィカルアプリケーションを使用しますか?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(すべてのアプリケーション)"
diff --git a/locale/ja/BOINC-Setup.mo b/locale/ja/BOINC-Setup.mo
index 39b2f20..b0f118c 100644
Binary files a/locale/ja/BOINC-Setup.mo and b/locale/ja/BOINC-Setup.mo differ
diff --git a/locale/ja/BOINC-Setup.po b/locale/ja/BOINC-Setup.po
index 1da51ca..049bb07 100644
--- a/locale/ja/BOINC-Setup.po
+++ b/locale/ja/BOINC-Setup.po
@@ -9,9 +9,9 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-03-09 18:40+0000\n"
+"PO-Revision-Date: 2015-04-20 12:34+0000\n"
 "Last-Translator: Masahiro Tagashira\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/boinc/language/ja/)\n"
+"Language-Team: Japanese (http://www.transifex.com/boinc/boinc/language/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/ja/BOINC-Web.mo b/locale/ja/BOINC-Web.mo
index a99399d..ba85eab 100644
Binary files a/locale/ja/BOINC-Web.mo and b/locale/ja/BOINC-Web.mo differ
diff --git a/locale/ja/BOINC-Web.po b/locale/ja/BOINC-Web.po
index e8afabc..f8f12e2 100644
--- a/locale/ja/BOINC-Web.po
+++ b/locale/ja/BOINC-Web.po
@@ -6,15 +6,21 @@
 # FileID  : $Id$
 # 
 # Translators:
+# boinc at tokyo <boinc.tokyo at gmail.com>, 2015
+# Kenichi Ito <ken.i54k at gmail.com>, 2015
+# gedyra <gedyra at gmail.com>, 2016
+# Kenichi Ito <ken.i54k at gmail.com>, 2015
 # Masahiro Tagashira, 2015
+# Masahiro Tagashira, 2015
+# gedyra <gedyra at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2014-02-01 00:00 PST\n"
-"PO-Revision-Date: 2015-03-09 12:08+0000\n"
-"Last-Translator: Masahiro Tagashira\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/boinc/language/ja/)\n"
+"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
+"PO-Revision-Date: 2016-07-19 13:59+0000\n"
+"Last-Translator: victory <victory.deb at gmail.com>\n"
+"Language-Team: Japanese (http://www.transifex.com/boinc/boinc/language/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -35,89 +41,90 @@ msgstr "BOINC のホームページに戻る"
 msgid "This page is %stranslatable%s."
 msgstr "このページは %s翻訳可能です%s 。"
 
-#: download.php:39
+#: download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "私達はVirtualBoxも同様にインストールすることをおすすめします、そうすることであなたのコンピュータはVirtualBoxを必要とする科学プロジェクトを動作させることが出来ます。"
 
-#: download.php:41
+#: download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "VirtualBoxについてもっと詳しく。"
 
-#: download.php:51
+#: download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "BOINC+VirtualBoxをダウンロード"
 
-#: download.php:54 download.php:69
+#. "for %s" identifies the operating system, e.g. "for Windows"
+#: download.php:56 download.php:71
 #, php-format
 msgid "for %s"
 msgstr "%s のための"
 
-#: download.php:57 download.php:72
+#: download.php:59 download.php:74
 #, php-format
-msgid "BOINC version %s"
-msgstr "BOINCのバージョン %s"
+msgid "BOINC %s"
+msgstr "BOINC %s"
 
-#: download.php:59
+#: download.php:61
 #, php-format
-msgid "VirtualBox version %s"
-msgstr "VirtualBoxのバージョン %s"
+msgid "VirtualBox %s"
+msgstr "VirtualBox %s"
 
-#: download.php:67
+#: download.php:69
 msgid "Download BOINC"
 msgstr "BOINCをダウンロード"
 
-#: download.php:123
+#: download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINCはあなたのコンピュータのアイドル時間を SETI at home, Climateprediction.net, Rosetta at home, World Community Grid ほか多くの科学プロジェクトに提供するためのプログラムです。"
 
-#: download.php:125
+#: download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "BOINCをコンピュータにインストールした後、あなたは好きなようにこれらのプロジェクトの多くに接続することができます。"
 
-#: download.php:127
+#: download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "ご自身で所有しているコンピュータあるいは所有者に許可を得た場合のみそのコンピュータでこのソフトウェアを実行できます。"
 
-#: download.php:132
+#: download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "私達はあなたがBOINCをこのページからではなく、Google PlayストアもしくはAmazonアプリストアからダウンロードすることをおすすめします。"
 
-#: download.php:167
+#: download.php:177
 msgid "System requirements"
 msgstr "コンピュータの条件"
 
-#: download.php:168
+#: download.php:178
 msgid "Release notes"
 msgstr "公開時の注意書き"
 
-#: download.php:169 index.php:86
+#: download.php:179 index.php:93
 msgid "Help"
 msgstr "ヘルプ"
 
-#: download.php:170
+#: download.php:180
 msgid "All versions"
 msgstr "全バージョンの一覧"
 
-#: download.php:171
+#: download.php:181
 msgid "Version history"
 msgstr "更新履歴"
 
-#: download.php:172
+#: download.php:182
 msgid "GPU computing"
 msgstr "GPUによるコンピューティング"
 
-#: download.php:190
+#: download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: 科学のための計算をしよう"
 
@@ -171,13 +178,13 @@ msgid ""
 "If you're already a Help Volunteer: to edit your settings, %sclick here%s."
 msgstr "既にヘルプ担当のボランティアをされている方へ:あなたの %s設定を編集する%s には左のリンクをクリックしてください。"
 
-#: help_funcs.php:107
+#: help_funcs.php:136
 msgid ""
 "BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
 "or the University of California."
 msgstr "BOINC ヘルパーは無給のボランティアです。彼らのアドバイスは、BOINC あるいは the University of California のいずれからも保証されるものではありません。"
 
-#: help_funcs.php:110
+#: help_funcs.php:139
 msgid "%1Never%2 give email address or password information to BOINC helpers."
 msgstr "%1決して%2 BOINC ヘルパーの方々に Eメールアドレスやパスワードを知らせないでください。"
 
@@ -217,204 +224,163 @@ msgstr "ペタフロップス(PFLOPS)"
 msgid "News"
 msgstr "ニュース"
 
-#: index.php:83
+#. "Volunteer" is used as a verb
+#: index.php:89
 msgid "Volunteer"
 msgstr "ボランティアとして参加してくださる方へ"
 
-#: index.php:85
+#: index.php:92
 msgid "Download"
 msgstr "ダウンロード"
 
-#: index.php:87 index.php:120 index.php:171
+#: index.php:94 index.php:138
 msgid "Documentation"
 msgstr "説明資料"
 
-#: index.php:88
+#: index.php:95
 msgid "Add-ons"
 msgstr "アドオン"
 
-#: index.php:89
+#: index.php:96
 msgid "Links"
 msgstr "リンク"
 
-#: index.php:94
+#: index.php:101
 msgid ""
 "Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
 " diseases, study global warming, discover pulsars, and do many other types "
 "of scientific research.  It's safe, secure, and easy:"
 msgstr "疾病の治癒、地球温暖化の研究、パルサーの発見、その他様々なタイプの科学的研究のためにあなたのコンピュータ(Windows, Mac, Linux, もしくはAndroid)のアイドル時間を利用しましょう。それは安全、安心、そして簡単です。"
 
-#: index.php:96
+#: index.php:103
 msgid "Choose projects"
 msgstr "プロジェクトを選んでください"
 
-#: index.php:97
+#: index.php:104
 msgid "Download BOINC software"
 msgstr "BOINCソフトウェアのダウンロード"
 
-#: index.php:98
+#: index.php:105
 msgid "Enter an email address and password."
 msgstr "Eメールアドレスとパスワードを入力してください。"
 
-#: index.php:102
+#: index.php:109
 #, php-format
 msgid ""
 "Or, if you run several projects, try an %saccount manager%s such as "
 "%sGridRepublic%s or %sBAM!%s. "
 msgstr "あるいは、もし複数のプロジェクトに参加したいなら、%3$s GridRepublic %4$s や %5$s BAM! %6$s のような %1$s アカウント・マネージャ%2$s を試してください。"
 
-#: index.php:118
+#: index.php:136
 msgid "Compute with BOINC"
 msgstr " BOINC を使って計算をしよう"
 
-#: index.php:121
+#: index.php:139
 msgid "Software updates"
 msgstr "ソフトウェアの更新"
 
-#: index.php:128
+#: index.php:146
 msgid ""
-"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving"
-" you the computing power of thousands of CPUs."
-msgstr "%1科学者%2: は BOINC を使って%3ボランティア・コンピューティング・プロジェクト%4 を作成することで、何千ものCPUの計算能力を手に入れることができます。"
+"%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
+"giving you the power of thousands of CPUs and GPUs."
+msgstr "%1科学者%2: BOINC を使って%3ボランティア・コンピューティング・プロジェクト%4を作成することで、何千ものCPUやGPUの計算能力を手に入れることができます。"
 
-#: index.php:132
+#: index.php:150
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1大学%2: BOINC を使って%3仮想キャンパス・スーパーコンピューティング・センタ%4を作ることができます。"
 
-#: index.php:137
+#: index.php:155
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1企業%2: BOINC を %3デスクトップ・グリッド・コンピューティング%4に使えます。"
 
-#: index.php:149
-msgid "The BOINC project"
-msgstr " BOINC プロジェクト"
+#: index.php:167
+msgid "About BOINC"
+msgstr "BOINC について"
 
-#: index.php:155
+#: index.php:181
 msgid "Message boards"
 msgstr "掲示板"
 
-#: index.php:156
+#: index.php:182
 msgid "Email lists"
 msgstr "Eメールリスト"
 
-#: index.php:157
-msgid "Personnel and contributors"
-msgstr "中心メンバーと貢献者たち"
-
-#: index.php:158
+#: index.php:183
 msgid "Events"
 msgstr "イベント"
 
-#: index.php:159
-msgid "Papers and talks"
-msgstr "論文と講演"
-
-#: index.php:160
-msgid "Research projects"
-msgstr "研究プロジェクト"
-
-#: index.php:161
-msgid "Logos and graphics"
-msgstr "ロゴとグラフィクス"
-
-#: index.php:162
-msgid "and"
-msgstr "と"
-
-#: index.php:166
-msgid "Help wanted"
-msgstr "手助けを求む"
-
-#: index.php:168
-msgid "Programming"
-msgstr "プログラミング"
-
-#: index.php:169
-msgid "Translation"
-msgstr "翻訳"
-
-#: index.php:170
-msgid "Testing"
-msgstr "テスト"
-
-#: index.php:172
-msgid "Publicity"
-msgstr "広報"
-
-#: index.php:174
-msgid "Software development"
-msgstr "ソフトウェア開発"
+#: index.php:184
+msgid "Source code"
+msgstr "ソースコード"
 
-#: index.php:175
+#: index.php:186
 msgid "APIs for add-on software"
 msgstr "アドオン・ソフトウェアのための API"
 
-#: index.php:217
-#, php-format
-msgid ""
-"Open-source software for %svolunteer computing%s and %sgrid computing%s."
-msgstr "BOINC は %sボランティア・コンピューティング%s と %sグリッド・コンピューティング%sのためのオープンソース・ソフトウェアです。"
+#: index.php:231
+msgid "Open-source software for volunteer computing"
+msgstr "ボランティア・コンピューティングのためのオープンソース・ソフトウェア"
 
-#: index.php:230
-msgid "BOINC is based at The University of California, Berkeley"
-msgstr "BOINC の本拠地は、カリフォルニア大学バークレー校にあります"
-
-#: projects.inc:14
+#: projects.inc:19
 msgid "Distributed sensing"
 msgstr "分散感知"
 
-#: projects.inc:19
+#: projects.inc:24
 msgid "Stanford University"
 msgstr "スタンフォード大学"
 
-#: projects.inc:20
+#: projects.inc:25
 msgid "Seismology"
 msgstr "地震学"
 
-#: projects.inc:21
+#: projects.inc:26
 msgid ""
-"The Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to Internet-connected computers.  You must buy a "
-"sensor to participate."
-msgstr "The Quake-Catcher Network はインターネットに接続されたコンピュータに繋がれたセンサーを使って世界最大の地震ネットワークを開発しています。参加するにはセンサーを購入しなければなりません。"
+"Quake-Catcher Network is developing the world's largest seismic network "
+"using sensors attached to computers and smartphones."
+msgstr "Quake-Catcher Network はコンピュータやスマートフォンに繋がれたセンサーを使って世界最大の地震ネットワークを開発しています。"
 
-#: projects.inc:27
+#: projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "BOINCポーランド財団"
 
-#: projects.inc:28
+#: projects.inc:35
 msgid "Environmental research"
 msgstr "環境保護研究"
 
-#: projects.inc:29
-msgid ""
-"This project is creating a free and continuously updated map of radiation "
-"levels by using sensors connected to volunteers' computers.  You must buy a "
-"sensor to participate."
-msgstr "このプロジェクトはボランティアのコンピュータに接続されたセンサーを使うことによって無料で継続的に更新される放射線レベルの地図を作っています。参加するにはセンサーを購入しなければなりません。"
-
-#: projects.inc:33
+#: projects.inc:36
 msgid ""
-"To participate in these projects you must buy a sensor and attach it to your"
-" computer."
-msgstr "これらのプロジェクトに参加するにはセンサーを購入しコンピュータに接続しなければなりません。"
+"Radioactive at Home is creating a free and continuously updated map of "
+"radiation levels using sensors connected to volunteers' computers.  You must"
+" buy a sensor to participate."
+msgstr "Radioactive at Home はボランティアのコンピュータに接続されたセンサーを使うことによって無料で継続的に更新される放射線レベルの地図を作っています。参加するにはセンサーを購入しなければなりません。"
 
-#: projects.inc:37
+#: projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "認知科学と人工知能"
 
-#: projects.inc:60 projects.inc:364 projects.inc:408 projects.inc:457
-#: projects.inc:464 projects.inc:511
+#: projects.inc:51
+msgid "Cognitive Science"
+msgstr "認知科学"
+
+#: projects.inc:52
+msgid ""
+"MindModeling at Home uses computational cognitive process modeling to better "
+"understand the human mind, and specifically to study the mechanisms and "
+"processes that enable and moderate human performance and learning."
+msgstr "MindModeling at Home は、よりよく人間の心を理解して、人間のパフォーマンスと学習を可能にして、メカニズムとその過程を研究するために、計算認知過程モデリングを使います。"
+
+#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
+#: projects.inc:657
 msgid "Private"
 msgstr "非公開"
 
-#: projects.inc:61
+#: projects.inc:71
 msgid "Artificial intelligence"
 msgstr "人工知能"
 
-#: projects.inc:62
+#: projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -422,36 +388,55 @@ msgid ""
 "conversations."
 msgstr "FreeHALで使うセマンティックネットを構文解析し変換すること。FreeHALは人工知能のひとつであり、セマンティックネットや語幹処理機能、音声データベースの一部、品詞タグ付け機能を使って人間の会話を模擬しようとするものです。"
 
-#: projects.inc:69
+#: projects.inc:82
 msgid "Biology and Medicine"
 msgstr "生物学と医療"
 
-#: projects.inc:82
+#: projects.inc:88
+msgid "Medical physiology"
+msgstr "医療生理学"
+
+#: projects.inc:89
+msgid ""
+"DENIS at Home does cardiac electrophysiological simulations, studying the "
+"electrical activity of the heart."
+msgstr "DENIS at Home は、心臓の電気活動を勉強して、心臓の電気生理学的シミュレーションを行います。"
+
+#: projects.inc:98
+msgid "Molecular biology"
+msgstr "分子生物学"
+
+#: projects.inc:99
+msgid ""
+"RNA World seeks to identify, analyze, structurally predict and design RNA "
+"molecules on the basis of established bioinformatics software."
+msgstr "RNA Worldは、特定、分析、構造的に予測および確立されたバイオインフォマティクス ソフトウェアに基づいて RNA 分子設計を目指しています。"
+
+#: projects.inc:107
 msgid "University College Dublin"
 msgstr "ユニバーシティ・カレッジ・ダブリン"
 
-#: projects.inc:83
+#: projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "抗マラリア薬の発見"
 
-#: projects.inc:84
+#: projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
-" medication. We therefore urgently need to discover new drugs to replace "
-"existing drugs. Importantly, these new drugs need to target NEW proteins in "
-"the parasite. The FightMalaria at Home project is aimed at finding these new "
-"targets."
-msgstr "マラリアを引き起こす寄生虫は、利用できる抗マラリア薬からの耐性獲得で進化し続けています。私達はしたがって早急に既存の薬に置き換わる新薬を発見する必要があります。さらに重要なことに、これらの新薬は寄生虫の新しいたんぱく質を目標とする必要があります。この FightMalaria at Home プロジェクトではこれらの新しい目標の発見を目指します。"
+" medication. We therefore urgently need to discover new drugs, targeting new"
+" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
+"at finding these new targets."
+msgstr "マラリアを引き起こす寄生虫は、利用できる薬剤に対する耐性を獲得して強くなります。したがって、緊急に新薬を発見する必要があります。FightNeglectedDiseases at Home プロジェクトは、これらの新しい目標を見つけることを目指としています。"
 
-#: projects.inc:90
+#: projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "カールスルーエ大学(ドイツ)"
 
-#: projects.inc:91
+#: projects.inc:118
 msgid "Protein structure prediction"
 msgstr "蛋白質構造の予測"
 
-#: projects.inc:92
+#: projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -460,31 +445,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME は、生物学的に活性をもつ種々の蛋白質の構造を予測するために、 計算指向のアプローチを使います。POEM at HOME はこれによって、 蛋白質どうしの間で信号処理が起こる場合の機構を理解したり、 蛋白質の誤動作や凝集に関係する疾病を理解する、あるいは、 生物学的に重要な蛋白質の三次元構造を基礎に新薬を開発します。"
 
-#: projects.inc:98
-msgid "University of Delaware"
-msgstr "デラウェア大学"
-
-#: projects.inc:99
-msgid "Study of protein - ligand interactions"
-msgstr "蛋白質-リガンド間の相互作用の研究"
-
-#: projects.inc:100
-msgid ""
-"Docking at Home has both bioscience and computer science goals. The project "
-"aims to further knowledge of the atomic details of protein-ligand "
-"interactions and, by doing so, will search for insights into the discovery "
-"of novel pharmaceuticals."
-msgstr "Docking at Home は、生物化学と計算機科学の両方の目標を持つプロジェクトです。 蛋白質とリガンド間の相互作用の原子的な詳細知識を深めることを目標とすると同時に、 その中で、革新的な薬品発見のための知見を探していきます。"
-
-#: projects.inc:114
+#: projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "バルセロナ生体医学研究パーク(PRBB)"
 
-#: projects.inc:115
+#: projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "蛋白質の分子シミュレーション"
 
-#: projects.inc:116
+#: projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -492,47 +461,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "NVIDAI GPU の上で走らせるように特別に最適化した、 全原子を対象粒子として扱う初めての分子動力学のプログラムコード(CellMD)を使うことにより、GPUGrid.netは、革新的な計算シナリオを開拓します。 新しい生体医学的応用が突然可能になり、 生体医学を研究するにあたり計算生物学に新しい役割を与えます。"
 
-#: projects.inc:122
-msgid "Technion, Israel"
-msgstr "テクニオン - イスラエル工科大学"
-
-#: projects.inc:123
-msgid "Genetic linkage analysis"
-msgstr "遺伝的連鎖解析"
-
-#: projects.inc:124
-msgid ""
-"Superlink at Technion helps geneticists all over the world find disease-"
-"provoking genes causing some types of diabetes, hypertension (high blood "
-"pressure), cancer, schizophrenia and many others."
-msgstr "Superlink at Technion は世界中の遺伝学者が、ある種の代謝異常や高血圧、ガン、 統合失調症などその他多くの疾病を誘発する遺伝子を探しやすくします。"
-
-#: projects.inc:138
+#: projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "メリーランド大学 バイオインフォマティックス(生命情報学)と計算生物学のためのセンター"
 
-#: projects.inc:139
+#: projects.inc:176
 msgid "Life science research"
 msgstr "生命科学の研究"
 
-#: projects.inc:140
+#: projects.inc:177
 msgid ""
-"The Lattice Project supplies computing power to scientists at the University"
-" of Maryland studying evolutionary relationships based on DNA sequence data;"
-" bacterial, plasmid, and virus protein sequences; and biological diversity "
-"in nature reserves. "
-msgstr "The Lattice Project は、メリーランド大学の科学者の種々の研究に計算能力を提供しています。 たとえば、DNA配列データを基礎にした進化論的関係の研究、バクテリア、プラスミド、およびウィルスの蛋白質の配列の研究、そして、自然保護区における生物の多様性の研究などです。 "
+"The Lattice Project, developed and administered at the University of "
+"Maryland, supplies computing power to researchers worldwide who are studying"
+" evolutionary relationships using DNA and protein sequence data."
+msgstr "Lattice プロジェクトはメリーランド大学で開発、管理され、DNA と蛋白質配列のデータを使って進化の関係を研究している世界中の研究者に計算能力を提供しています。"
 
-#: projects.inc:146
+#: projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "スイス熱帯病研究所"
 
-#: projects.inc:147
+#: projects.inc:186
 msgid "Epidemiology"
 msgstr "疫学"
 
-#: projects.inc:148
+#: projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -543,48 +496,37 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "マラリア対策にとって、マラリアの動的な伝播と健康への影響をシミュレーションするためのモデルは重要な道具です。これらのモデルによっていろいろな対抗手段を提供していく最も良いやり方を決めることに使うことができます。たとえば、蚊帳の配送方針、化学療法、現在開発・検証中の新ワクチンの使い方を最適化するのに使います。 これらのモデリングの手法は非常に大きな計算能力を必要とします。 多くの人口を対象にシミュレーションが必要ですし、 この病気の拡散に影響を与える生物学的因子と社会学的因子が、 数多くのパラメータに関係しているからです。"
 
-#: projects.inc:170
+#: projects.inc:211
 msgid "University of Washington"
 msgstr "ワシントン大学"
 
-#: projects.inc:171 projects.inc:179
+#: projects.inc:212
 msgid "Biology"
 msgstr "生物学"
 
-#: projects.inc:172
+#: projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
 "Rosetta at home you will help us speed up and extend our research in ways we "
 "couldn't possibly attempt without your help. You will also be helping our "
-"efforts at designing new proteins to fight diseases such as HIV, Malaria, "
-"Cancer, and Alzheimer's"
+"efforts at designing new proteins to fight diseases such as HIV, malaria, "
+"cancer, and Alzheimer's"
 msgstr "研究対象の蛋白質が3次元的にどのような形状であるかを決定します。 この仕事は最終的には人間のいくつかの主要な疾病の治療方法を見つけることになるかもしれません。 あなたが Rosetta at home を動作させることによって、私たちの研究を加速し拡大してくれます。 それはあなたの助力なしにはきっと達成できないものです。 さらに、HIVや、マラリア、癌、そしてアルツハイマー病のような疾病に対抗する、 新しい蛋白質を設計することにも力を貸していただけることになります。 "
 
-#: projects.inc:178
-msgid "University of Vienna"
-msgstr "ウィーン大学"
-
-#: projects.inc:180
-msgid ""
-"Calculate similarities between proteins. SIMAP provides a public database of"
-" the resulting data, which plays a key role in many bioinformatics research "
-"projects."
-msgstr "蛋白質の相互類似性を計算するプロジェクトです。 SIMAP は計算結果を公開データベースとして提供します。 このデータベースは多くの生命科学研究のプロジェクトで重要な役割を果たします。"
-
-#: projects.inc:186
+#: projects.inc:231
 msgid "Earth Sciences"
 msgstr "地球科学"
 
-#: projects.inc:198
+#: projects.inc:243
 msgid "Oxford University"
 msgstr "オックスフォード大学"
 
-#: projects.inc:199
+#: projects.inc:244
 msgid "Climate study"
 msgstr "気候の研究"
 
-#: projects.inc:200
+#: projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -596,83 +538,97 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "最先端の気候モデルにおいて必須の近似技術を研究します。 モデルを何千回も実行することによって、近似技術を微調整したときに、モデルがどのように反応するかを探り出そうとしています。ここで微調整といっているのは、近似が現実から離れてしまわないような小さなものです。このような手法によって、我々が使っているモデルが小さな変化にどのように敏感であるかという知識を豊かにします。また、二酸化炭素や硫黄循環での変化についても同様です。このようにして、次の世紀がどのような気候変化をするか、いくつものシナリオを広く探求できるようになります。 "
 
-#: projects.inc:207
+#: projects.inc:253
 msgid "Physical Science"
 msgstr "自然科学"
 
-#: projects.inc:213
+#: projects.inc:259
 msgid "Mechanical engineering"
 msgstr "機械工学"
 
-#: projects.inc:214
+#: projects.inc:260
 msgid ""
 "Currently we are calculating the optimum design of a structure call the 52 "
 "bar truss"
 msgstr "現在のところ私達は52本のバートラスと呼ばれる建造物の最適な図案を計算しています。"
 
-#: projects.inc:224 projects.inc:263 projects.inc:271
+#: projects.inc:269 projects.inc:328 projects.inc:338
 msgid "Astronomy"
 msgstr "天文学"
 
-#: projects.inc:225
+#: projects.inc:270
 msgid ""
-"We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to "
-"generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby "
-"Universe. We will measure physical parameters (such as stellar mass surface "
-"density, star formation rate surface density, attenuation, and first-order "
-"star formation history) on a resolved pixel-by-pixel basis using spectral "
-"energy distribution (SED) fitting techniques in a distributed computing "
-"mode."
-msgstr "私達は、近くの宇宙における多波長の、光学的には紫外線から近赤外線の銀河アトラスを生成するためにGALEX, Pan-STARRS1, そしてWISEのスペクトル範囲を結合しようとしています。私達は分散コンピューティング方式で、分光エネルギー分布(Spectral Energy Distribution, SED)適合技術を用いて分解された画素単位の基準で物理的パラメータ(星の質量面密度、星形成率の面密度、減衰、そして一次星形成史といったもの)を測定しようとしています。"
+"TheSkyNet POGS is an astronomy project studying 16 different properties of "
+"galaxies, including brightness, mass, amount of dust and how fast stars are "
+"forming. We are using your processing power to conduct pixel-by-pixel "
+"calculations on multi-wavelength (ultraviolet, optical and near-infrared "
+"light) images of galaxies to produce an atlas that will help astronomers to "
+"better understand the distant universe."
+msgstr "TheSkyNet POGS (PS1 (Pan-STARRS1) Optical Galaxy Survey) は光度や質量、塵の量、星の形成速度など銀河の16種の性質を研究する天文学プロジェクトです。あなたの処理能力を使って銀河の複数の波長 (紫外線、可視光線、近赤外線) の画像に対してピクセル単位の計算を実施し、星図を作成して天文学者が遠い銀河をより良く理解するのを支援します。"
 
-#: projects.inc:247
-msgid "University of Texas at Austin"
-msgstr "テキサス大学オースティン校"
+#: projects.inc:280 projects.inc:366
+msgid "Astrophysics"
+msgstr "天体物理学"
 
-#: projects.inc:248 projects.inc:279
-msgid "Chemistry"
-msgstr "化学"
+#: projects.inc:281
+msgid ""
+"The aim of the project is to derive shapes and spin for a significant part "
+"of the asteroid population. As input data, we use any asteroid photometry "
+"that is available. The results are asteroid convex shape models with the "
+"direction of the spin axis and the rotation period."
+msgstr "このプロジェクトの目標は小惑星集団の大部分について形状と自転を導き出すことです。入力データとして小惑星のあらゆる利用可能な光度測定を利用します。結果は地軸、自転の方向と自転周期を伴った小惑星の凸型モデルです。"
 
-#: projects.inc:249
+#: projects.inc:290
+msgid "Aerospace-related science and engineering"
+msgstr "航空宇宙関連の科学や工学"
+
+#: projects.inc:291
 msgid ""
-"A common problem in theoretical chemistry, condensed matter physics and "
-"materials science is the calculation of the time evolution of an atomic "
-"scale system where, for example, chemical reactions and/or diffusion occur. "
-"Generally the events of interest are quite rare (many orders of magnitude "
-"slower than the vibrational movements of the atoms), and therefore direct "
-"simulations, tracking every movement of the atoms, would take thousands of "
-"years of computer calculations on the fastest present day computer before a "
-"single event of interest can be expected to occur.  Our research group is "
-"interested in calculating the long time dynamics of systems."
-msgstr "理論化学、凝縮系物理学(物性物理学)および物質科学の分野での共通問題は、原子スケールの体系での時間経過を計算することです。そこでは、たとえば化学反応と拡散が起きています。一般に興味の対象となる事象は非常にまれにしか起きません(原子の振動という動きに比べ大幅に遅いオーダーでしか発生しません)。このため、原子の動きをそのまま追跡するような直接のシミュレーションをすると、興味ある動きがシミュレーションの中で起きるまでに、現状で最速のコンピュータによる計算でも何千年もの時間が掛かってしまうでしょう。われわれの研究グループは体系の長期にわたる原動力を計算することに興味があります。"
+"Constellation is a platform for aerospace-related simulations, including "
+"trajectory optimization of launchers, satellites and probes, simulation of "
+"Moon's near-surface exosphere, and analysis of dynamic systems of "
+"exploration-rovers"
+msgstr "Constellation は発射台、衛星、探査機の軌道最適化、月面付近の外気圏シミュレーション、探査車の動態体系の分析等を行う航空宇宙関連のシミュレーション基盤です。"
 
-#: projects.inc:262
-msgid "University of Illinois at Urbana-Champaign"
-msgstr "イリノイ大学アーバナ・シャンペーン校"
+#: projects.inc:294
+msgid "Perform aerospace-related simulations"
+msgstr "航空宇宙関連のシミュレーションを行う"
 
-#: projects.inc:264
+#: projects.inc:329
 msgid ""
-"The goal of Cosmology at Home is to search for the model that best describes "
-"our Universe and to find the range of models that agree with the available "
-"astronomical particle physics data."
-msgstr "Cosmology at Home の目標は、われわれの宇宙の状況を説明する最良のモデルを探すこと、および、天文学的素粒子物理学の入手可能なデータと一致するモデルの範囲を調べることです。"
+"Universe at Home aims to create the first database of the simulated stellar "
+"content of the Universe, from the earliest stars to the most exotic black "
+"hole binaries."
+msgstr "Universe at Home は最古の星から最も魅惑的なブラックホールの連星まで、銀河系にある星の体積をシミュレートした最初のデータベースを作成することを目標としています。"
 
-#: projects.inc:270
+#: projects.inc:332
+msgid "Do research in physics and astronomy"
+msgstr "物理学や天文学の研究を行う"
+
+#: projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "レンセラー工科大学"
 
-#: projects.inc:272
+#: projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Milkyway at Home の目標は、スローン・デジタル・スカイサーベイ(SDSS)で収集したデータを使って、天の川銀河の高精度な三次元モデルを作成することです。"
 
-#: projects.inc:278
+#: projects.inc:342
+msgid "Study the structure of the Milky Way galaxy"
+msgstr "天の川銀河の構造を調べる"
+
+#: projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "ライデン大学、オランダ"
 
-#: projects.inc:280
+#: projects.inc:348
+msgid "Chemistry"
+msgstr "化学"
+
+#: projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -682,15 +638,15 @@ msgid ""
 "simulations through the grid."
 msgstr "古典力学を使って表面科学の計算をすることです。Leiden Classical はボランティアの方、学生の方、そして他の科学者が彼ら個人の計算をこのグリッドで実行することを可能にします。各参加者は、古典力学のジョブキューをおのおの持っています。このようにして、学生たちはこのグリッドを使い、実際にシミュレーションをすることにより、液体アルゴンの模擬実験をしてみたり、理想気体の状態方程式の有効性をテストしたりしてきました。"
 
-#: projects.inc:294
+#: projects.inc:352
+msgid "Help students do atomic simulations"
+msgstr "学生が原子のシミュレーションを行うのを手伝う"
+
+#: projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "ウィスコンシン大学 - ミルウォーキー、マックスプランク研究所"
 
-#: projects.inc:295
-msgid "Astrophysics"
-msgstr "天体物理学"
-
-#: projects.inc:296
+#: projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -699,15 +655,19 @@ msgid ""
 "international organizations."
 msgstr "回転する中性子星(パルサーとも呼ばれます)を探索します。この計算には、LIGO(ハンフォード天文台)とGEO600(ドイツ)という重力波検出器が出力するデータと、アレシボ天文台からのデータを使います。Einstein at Home は、世界物理年(2005年)プロジェクトの一つで、アメリカ物理学会(APS)を始めとする多くの国際組織によって支援されています。"
 
-#: projects.inc:310 projects.inc:318
+#: projects.inc:370
+msgid "Help detect pulsars and gravitational waves"
+msgstr "パルサーと重力波を検出するのを手伝う"
+
+#: projects.inc:383 projects.inc:393 projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN(欧州原子核研究機構)"
 
-#: projects.inc:311 projects.inc:319
+#: projects.inc:384 projects.inc:394 projects.inc:404
 msgid "Physics"
 msgstr "物理学"
 
-#: projects.inc:312
+#: projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -716,22 +676,42 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "大型ハドロン衝突型加速器(The Large Hadron Collider, LHC)は、CERN の加速器です。CERN は原子核研究のためのヨーロッパの組織で、世界最大の素粒子物理学の研究所です。LHC は素粒子の性質を研究する装置として今までで最も強力なものです。LHC at home では LHC とその検出器の設計を改良するためのシミュレーションを実行します。 "
 
-#: projects.inc:320
+#: projects.inc:388
+msgid "Improve the design of the Large Hadron Collider"
+msgstr "大型ハドロン衝突型加速器の設計を改善する"
+
+#: projects.inc:395
 msgid ""
-"This project uses CERN-developed virtual machine technology for full-fledged"
-" LHC event physics simulation on volunteer computers.  Requires that you "
-"install VirtualBox on your computer"
-msgstr "このプロジェクトは、CERNが開発した、ボランティアのコンピュータで大型ハドロン衝突型加速器(LHC)における本格的な事象の物理学シミュレーションのための仮想マシン技術を利用します。コンピュータへのVirtualBoxのインストールが必要とされます。"
+"This project uses CERN-developed virtual machine technology for LHC event "
+"physics simulation on volunteer computers.  Requires that you install "
+"VirtualBox on your computer"
+msgstr "このプロジェクトはボランティアのコンピュータで CERN が開発した仮想マシン技術を利用し、LHC イベント物理学シミュレーションを行います。コンピュータに VirtualBox をインストールする必要があります。"
 
-#: projects.inc:326
+#: projects.inc:398
+msgid "Simulate high-energy particle collisions"
+msgstr "高エネルギー粒子の衝突をシミュレートする"
+
+#: projects.inc:405
+msgid ""
+"ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
+" physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
+" particles and processes using head-on collisions of protons of "
+"extraordinary high energy."
+msgstr "ATLAS at Homeは、CERNのラージハドロンコライダーによる量子力学の実験である、ATLASのためのシミュレーションを、ボランティアの計算によって行います。ATLASは新たな粒子と、その工程を、非常に大きなエネルギーを持つ陽子を正面衝突させることで探します。"
+
+#: projects.inc:408
+msgid "Simulate high-energy particle collisions for CERN"
+msgstr "CERNでの高エネルギー粒子の衝突をシミュレートする"
+
+#: projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "カリフォルニア大学バークレー校"
 
-#: projects.inc:327
+#: projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "天体物理学、天体生物学"
 
-#: projects.inc:328
+#: projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -740,60 +720,70 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "地球外知的生命体探査(Search for Extraterrestrial Intelligence, SETI)とは、地球外の知的生命を検出することを目的とする科学分野です。 Radio SETI として知られているその1つのアプローチでは、電波望遠鏡を使って宇宙からの狭帯域の電波信号に耳を傾けます。探している信号は自然に発生すると知られている種類のものではありません。したがって、そのような信号を検出すれば、地球外生物が持つ技術の証拠となります。"
 
-#: projects.inc:342
-msgid "Bielefeld University of Applied Sciences"
-msgstr "Bielefeld University of Applied Sciences"
+#: projects.inc:418
+msgid "Search for evidence of extra-terrestrial life"
+msgstr "地球外生命の証拠を検索"
+
+#: projects.inc:442
+msgid "Multiple applications"
+msgstr "複数の応用"
 
-#: projects.inc:343
-msgid "Chemical engineering and nanotechnology"
-msgstr "化学工学とナノテクノロジー"
+#: projects.inc:448
+msgid "Molecular biology, Computer Science"
+msgstr "分子生物学、計算機科学"
 
-#: projects.inc:344
+#: projects.inc:449
 msgid ""
-"The study of molecular magnets and controlled nanoscale magnetism.  These "
-"magnetic molecules may be used to develop tiny magnetic switches, with "
-"applications in medicine (such as local tumor chemotherapy) and "
-"biotechnology."
-msgstr "分子磁石とナノスケール磁化の制御の研究です。これらの磁化した分子は、医療(たとえば局所腫瘍化学療法)やバイオテクノロジーに応用できるごく小さい磁気スイッチを開発するために使用することができるかもしれません。"
+"The Citizen Science Grid is dedicated to supporting a wide range of research"
+" and educational projects using volunteer computing and citizen science."
+msgstr "The Citizen Science Grid はボランティアの計算能力を使う多様な研究、教育プロジェクトと市民科学を支援するために作られました。"
 
-#: projects.inc:351
-msgid "Multiple applications"
-msgstr "複数の応用"
+#: projects.inc:452
+msgid "Support science from the University of North Dakota"
+msgstr "ノースダコタ大学"
 
-#: projects.inc:356
+#: projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "中国科学院(Chinese Academy of Sciences)"
 
-#: projects.inc:357
+#: projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "物理学、生化学、およびその他"
 
-#: projects.inc:358
+#: projects.inc:459
 msgid ""
 "The objective of CAS at home is to encourage and assist scientists in China to "
 "adopt the technologies of volunteer computing and volunteer thinking for "
 "their research."
 msgstr "CAS at home の目的は、中国の科学者たちが自分らの研究のためにボランティア・コンピューティングの技術やボランティアの意見を採用することを促進・援助することです。"
 
-#: projects.inc:365
+#: projects.inc:462
+msgid "Help Chinese researchers"
+msgstr "中国の研究者を手伝う"
+
+#: projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "数学、物理学、進化生物学"
 
-#: projects.inc:366
+#: projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home は BOINC と数種の既存ボランティアプロジェクトである ECM、Muon、Evolution at home、および distributed.net の間に入るアダプタです。"
 
-#: projects.inc:371 projects.inc:527
+#: projects.inc:472
+msgid "Do research in math, physics, and evolution"
+msgstr "数学、物理学、進化学の研究を行う"
+
+#: projects.inc:477 projects.inc:677
 msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
 msgstr "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (ハンガリー)"
 
-#: projects.inc:372
+#: projects.inc:478
 msgid "European research projects"
 msgstr "ヨーロッパの研究プロジェクト"
 
-#: projects.inc:373
+#: projects.inc:479
 msgid ""
 "The EDGeS at Home Beta project integrates volunteer computing into the service "
 "grid network of Europe by allowing service grids to send workunits to be "
@@ -801,27 +791,35 @@ msgid ""
 " by the project include math, physics, biology, etc."
 msgstr "EDGeS at Home ベータ・プロジェクトは、サービスグリッドがこのプロジェクトのボランティアによって処理されるワークユニットを送信できるようにすることで、ヨーロッパ・サービス・グリッド・ネットワークへのボランティア・コンピューティングへ統合しています。当プロジェクトが対象とする科学プロジェクトは、数学、物理学、生物学などの分野を含みます。"
 
-#: projects.inc:379
+#: projects.inc:482
+msgid "Help European researchers"
+msgstr "ヨーロッパの研究者を手伝う"
+
+#: projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "スペインの大学と研究所群"
 
-#: projects.inc:380
+#: projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "スペインにおける様々な研究プロジェクト"
 
-#: projects.inc:381
+#: projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "物理学、物質科学および生体臨床医学における研究"
 
-#: projects.inc:387
+#: projects.inc:492
+msgid "Help Spanish researchers"
+msgstr "スペインの研究者を手伝う"
+
+#: projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBMによる企業市民活動"
 
-#: projects.inc:388
+#: projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "医療、環境保護そのほか人類に影響するものの研究"
 
-#: projects.inc:389
+#: projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -829,50 +827,87 @@ msgid ""
 "clean water and many more."
 msgstr "世界最大のボランティア・コンピューティング・グリッドを作り出すことによって、人類の最も差し迫った問題のいくつかの重要な非営利研究を助成します。研究は HIV・エイズ、ガン、熱帯性の顧みられない疾病、太陽エネルギー、きれいな水その他多くを含みます。"
 
-#: projects.inc:395
+#: projects.inc:502
+msgid "Do biomedical and environmental research"
+msgstr "生物医学および環境的な研究を行う"
+
+#: projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "数学、コンピューティング、およびゲーム"
 
-#: projects.inc:401
+#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
+#: projects.inc:678
+msgid "Mathematics"
+msgstr "数学"
+
+#: projects.inc:534
+msgid ""
+"NumberFields at home searches for fields with special properties. The primary "
+"application of this research is in the realm of algebraic number theory. "
+"Number theorists can mine the data for interesting patterns to help them "
+"formulate conjectures about number fields. Ultimately, this research will "
+"lead to a deeper understanding of the profound properties of numbers, the "
+"basic building blocks of all mathematics."
+msgstr "NumberFields at home は特別な特性をもつ領域を検索します。この研究の主な応用は代数的数理論の領域にあります。数論者は興味深いパターンのデータを得ることで、数の集団について推測した理論の組み立ての支援にできます。究極的に、この研究はあらゆる数学の基礎要素である数の深遠な特性を深く理解することにつながります。"
+
+#: projects.inc:537
+msgid "Do research in algebraic number theory"
+msgstr "代数的整数論の研究を行う"
+
+#: projects.inc:553
 msgid "Computer Science"
 msgstr "計算機科学"
 
-#: projects.inc:409
-msgid "Mathematics, Physics, Artificial Intelligence"
-msgstr "数学、物理学、人工知能"
+#: projects.inc:554
+msgid ""
+"Solve hard and practically important problems (discrete functions inversion "
+"problems, discrete optimization, bioinformatics, etc.) that can be "
+"effectively reduced to Boolean satisfiability problem."
+msgstr "難解で現実的に重要な問題 (離散関数反転問題、離散の最適化、生物情報学等) で真偽値を満たせるかという問題に効果的に落とし込めるものを解決します。"
+
+#: projects.inc:557
+msgid "Study computational complexity"
+msgstr "計算複雑性の研究"
+
+#: projects.inc:582
+msgid "Cryptography and combinatorics"
+msgstr "暗号理論と組み合わせ論"
 
-#: projects.inc:410
-msgid "Simulation of quantum computing; Goldbach's conjecture."
-msgstr "量子コンピューティングのシミュレーション、ゴールドバッハの予想です。"
+#: projects.inc:583 projects.inc:586
+msgid "Run applications from distributed.net"
+msgstr "distributed.net からアプリケーションを実行"
 
-#: projects.inc:450 projects.inc:458
+#: projects.inc:592
 msgid "Cryptography"
 msgstr "暗号理論"
 
-#: projects.inc:459
+#: projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "3つの本物のエニグマ(Enigma)メッセージの解読を試みます。これらの信号文は1942年に北大西洋で傍受されましたが、まだ解読されていないと信じられています。"
 
-#: projects.inc:465 projects.inc:504 projects.inc:512 projects.inc:520
-#: projects.inc:528 projects.inc:568
-msgid "Mathematics"
-msgstr "数学"
+#: projects.inc:596
+msgid "Decode WWII submarine messages"
+msgstr "第二次世界大戦時の潜水艦の通信の解読"
 
-#: projects.inc:466
+#: projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "数学上の未解決予想である、コラッツの予想を研究します"
 
-#: projects.inc:471
+#: projects.inc:606
+msgid "Study the Collatz Conjecture"
+msgstr "コラッツ予想の研究"
+
+#: projects.inc:611
 msgid "California State University Fullerton"
 msgstr "カリフォルニア州立大学フラトン校"
 
-#: projects.inc:472
+#: projects.inc:612
 msgid "Factorization of large integers"
 msgstr "大きな整数の因数分解"
 
-#: projects.inc:473
+#: projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -882,61 +917,51 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS@Home は、大きな整数を数体ふるい法(Number Field Sieve)で因数分解する処理のうち、格子ふるい(lattice sieving)の部分を計算する段階にインターネットに接続されたコンピュータを使うという研究プロジェクトです。若い学生のころには、あなたもある整数を素因数に分解したことがあるでしょう。たとえば、15 = 3 * 5 あるいは、35 = 5 * 7 のように。NFS at Home はその経験の延長上にあるものです。ただその整数が何百桁もの長さの整数であるというだけです。"
 
-#: projects.inc:479
-msgid ""
-"Vilnius Gediminas Technical University and Kaunas University of Technology "
-"(Lithuania)"
-msgstr "Vilnius Gediminas Technical University and Kaunas University of Technology (リトアニア)"
-
-#: projects.inc:480
-msgid "Software testing"
-msgstr "ソフトウェアのテスト"
-
-#: projects.inc:481
-msgid ""
-"The aim of this project is to provide a powerful distributed computing "
-"platform for scientists of Vilnius Gediminas Technical University (VGTU) as "
-"well as others Lithuanian academic institutions.  Current applications "
-"involve the study of Monte-Carlo based software testing."
-msgstr "このプロジェクトの目的は、ヴィリニュス・ゲディミナス工科大学(VGTU)およびその他リトアニアの学術機関へ、強力な分散コンピューティング・プラットフォームを提供することです。現在の応用分野には、モンテカルロ法によるソフトウェア検査の研究が含まれます。"
-
-#: projects.inc:503
-msgid "Mathematical Institute of Leiden University / Kennislink"
-msgstr "ライデン大学数学研究所とKennislink"
-
-#: projects.inc:505
-msgid ""
-"Search for 'abc-triples': positive integers a,b,c such that a+b=c, a < b "
-"< c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the "
-"product of the distinct prime factors of n. The ABC conjecture says that "
-"there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for "
-"any real h > 1. The ABC conjecture is currently one of the greatest open "
-"problems in mathematics. If it is proven to be true, a lot of other open "
-"problems can be answered directly from it."
-msgstr "「abc-triples」を探します。「abc-triples」とは、3つの正の整数を a, b, c とするとき、a + b = c  かつ、a < b < c  かつ、a, b, c が互いに素であり、c > rad(abc) であるようなものです。ただしここで rad( n) とは、n の互いに異なる個々の素因数の積です。ABC予想とは、h > 1 のどのような実数 h についても、log(c) / log(rad(abc)) > h となるような a, b, c の組はたかだか有限個しかないという予想です。ABC予想は現在多数ある数学の未解決問題のうちのひとつです。これが正しいと証明されると、まだ未解決の多くの数学の問題に答えをここから直接与えることができます。"
+#: projects.inc:616
+msgid "Study the factorization of large integers"
+msgstr "巨大な整数の因数分解の研究"
 
-#: projects.inc:513
+#: projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid は違う形でとても大きな素数(既知の最大の素数を探すことも含まれます)の探索をしている複数のプロジェクトを有します。"
 
-#: projects.inc:519
+#: projects.inc:662
+msgid "Search for large prime numbers"
+msgstr "巨大な素数の探索"
+
+#: projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Hochschule RheinMain University of Applied Sciences"
 
-#: projects.inc:521
+#: projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "素数判定法に関する2つの予想について反例を探します。"
 
-#: projects.inc:529
+#: projects.inc:672
+msgid "Study the properties of prime numbers"
+msgstr "素数の特性の研究"
+
+#: projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "一般化された2進数系(この場合、ベースが配列で、桁がベクトル)を11次元まですべて探り出します。"
 
+#: projects.inc:682
+msgid "Study number theory"
+msgstr "数論の研究"
+
+#: projects.inc:739
+msgid ""
+"Testing and comparison of heuristic methods for getting separations of "
+"parallel algorithms working in the CAD system for designing logic control "
+"systems"
+msgstr "論理制御システム設計用CADシステムで活用できる並列アルゴリズムを分離するための発見的方法のテストと比較"
+
 #: ../html/inc/news.inc:40
 msgid "Comment"
 msgstr "コメント"
diff --git a/locale/ka/BOINC-Client.mo b/locale/ka/BOINC-Client.mo
index 5a875b0..c65b7da 100644
Binary files a/locale/ka/BOINC-Client.mo and b/locale/ka/BOINC-Client.mo differ
diff --git a/locale/ka/BOINC-Client.po b/locale/ka/BOINC-Client.po
index a83c473..a2abf07 100644
--- a/locale/ka/BOINC-Client.po
+++ b/locale/ka/BOINC-Client.po
@@ -1,162 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# George Salukvadze <giosal90 at gmail.com>, 2015
+# George Salukvadze <giosal90 at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-05-26 12:38+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-09 12:18+0000\n"
 "Last-Translator: George Salukvadze <giosal90 at gmail.com>\n"
-"Language-Team: Georgian (http://www.transifex.com/projects/p/boinc/language/ka/)\n"
+"Language-Team: Georgian (http://www.transifex.com/boinc/boinc/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "შეტყობინება ანგარიშის მმართველისგან"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
-msgstr "შეტყობინება სერვისგან"
+msgstr "შეტყობინება სერვერისგან"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
-msgstr "ზოგ დავაკებას სჭირდება მეტი მეხსიერება, ვიდრე დაშვებულია თქვენი პარამეტრებით. გთხოვთ, შეამოწმოთ პარამეტრები."
+msgstr "ზოგ დავალებას სჭირდება მეტი მეხსიერება, ვიდრე დაშვებულია თქვენი პარამეტრებით. გთხოვთ, შეამოწმოთ პარამეტრები."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "მდგომარების ფაილი ვერ ჩაიწერა; გთხოვთ, შეამოწმოთ საქაღალდეს უფლებები"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "გარემოს ცვლადი HTTP_PROXY უნდა უთითებდეს HTTP პროქსის"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "თქვენ იყენებთ არასწორ URL-ს ამ პროექტისთვის. როდესაც იქნება მოსახერხებელი, წაშალეთ ეს პროექტი, შემდეგ დაამატეთ %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "ეს პროექტი იყენებს ძველ URL-ს. როდესაც იქნება მოსახერხებელი, წაშალეთ პროექტი, შემდეგ დაამატეთ %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "სინტაქსის შეცდომა app_info.xml-ში"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
-msgstr "ფაილი, რომელიც მითითებულია app_info.xml-ში, აღარ არსებობს:"
+msgstr "ფაილი, რომელიც მითითებულია app_info.xml-ში, არ არსებობს:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "მისაწვდომელია BOINC-ის ახალი ვერსია."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "გადმოწერა"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "CUDA ან OpenCL გამოთვლისთვის გამოყენება შეუძლებელია CUDA-ს დრაივერით 6.5 ან უფრო ახალით"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "მოულოდნელი ტექსტი cc_config.xml-ში"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "ამოუცნობი ტეგი cc_config.xml-ში"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "დაწყების ტეგი cc_config.xml-ში არ არსებობს"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "შეცდომა cc_config.xml-ის ოპციებში"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "დასრულების ტეგი cc_config.xml-ში არ არსებობს"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "ამის გასასწორებლად, შეგიძლიათ"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "შეცვალოთ პროექტის პარამეტრები პროექტის ვებ-გვერდზე"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "წაშალოთ გპ-ს გამონაკლისები თქვენს cc_config.xml ფაილში"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "შეცვალოთ თქვენი პარამეტრები თქვენი ანგარიშის მმართველის ვებ-გვერდზე"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "არასწორი ან არარსებული ანგარიშის გასაღები. გასასწორებლად, წაშალეთ და დაამატეთ ეს პროექტი."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "არასწორი კოდის მოსაწერი გასაღები. გასასწორებლად, წაშალეთ და დაამატეთ ეს პროექტი."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "პროექტმა შეცვალა თავისი უსაფრთხოების გასაღები. გთხოვთ, წაშალოთ და დაამატოთ ეს პროექტი."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "ამ პროექტს არ აქვს ამ ოპერაციული სისტემის მხარდაჭერა"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "ამ პროექტს არ აქვს ამ ცპ-ს ტიპის მხარდაჭერა"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
-msgstr "თქვენი BOINC კლიენტის პროგრამული უზრუნველყოფა არის ნამეტანი ძველი. გთხოვთ, დააყენოთ მიმდინარე ვერსია."
+msgstr "თქვენი BOINC-ის კლიენტის პროგრამული უზრუნველყოფა არის ნამეტანი ძველი. გთხოვთ, დააყენოთ მიმდინარე ვერსია."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
-msgstr "ამ პროექტს არ აქვს შემდეგ ტიპის კომპიუტერების მხარდაჭერა"
+msgstr "ამ პროექტს არ აქვს შემდეგი ტიპის კომპიუტერების მხარდაჭერა"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "განაახლეთ დრაივერი ბოლო ვერსიამდე დავალებების დასამუშავებლად თქვენი კომპიუტერის გპ-ს მეშვეობით"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "განაახლეთ დრაივერი ბოლო ვერსიამდე ამ პროექტის ყველა გპ აპლიკაციის გამოსაყენებლად"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "თქვენი NVIDIA გპ-ს გამოსაყენებლად საჭიროა BOINC-ის ახალი ვერსია; გთხოვთ, განაახლოთ მიმდინარე ვერსიამდე"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "ამ პროექტზე დავალებების გასაშვებად საჭიროა %s გპ"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
-msgstr "აიპლიკაციებისთვის, რომელიც თქვენ აირჩიეთ, არ არის მისაწვდომი დავალებები."
+msgstr "აპლიკაციებისთვის, რომელიც თქვენ აირჩიეთ, არ არის მისაწვდომი დავალებები."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "ამ პროექტს არ აქვს თქვენი კომპიუტერის ტიპის მხარდაჭერა"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "საჭიროა BOINC-ის ახალი ვერსია; გთხოვთ, დააყენოთ მიმდინარე ვერსია"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
-msgstr "მისაწვდომია დავალებები %s-ისთვის, მაგრამ თქვენი პარამეტრები დაყენებული ისე, რომ არ მიიღოთ ისინი."
-
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "უცნობი აპლიკაციის სახელი app_info.xml-ში"
+msgstr "მისაწვდომია დავალებები %s-ისთვის, მაგრამ თქვენი პარამეტრები დაყენებულია ისე, რომ არ მიიღოთ ისინი."
 
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "თქვენს app_info.xml ფაილს არ აქვს შემდეგის გამოყენებადი ვერსია"
diff --git a/locale/ka/BOINC-Setup.mo b/locale/ka/BOINC-Setup.mo
index 06a6da5..af41de7 100644
Binary files a/locale/ka/BOINC-Setup.mo and b/locale/ka/BOINC-Setup.mo differ
diff --git a/locale/ka/BOINC-Setup.po b/locale/ka/BOINC-Setup.po
index 7c1bc3f..323e83e 100644
--- a/locale/ka/BOINC-Setup.po
+++ b/locale/ka/BOINC-Setup.po
@@ -1,41 +1,46 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# George Salukvadze <giosal90 at gmail.com>, 2015
+# George Salukvadze <giosal90 at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-05-26 13:12+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-09 12:18+0000\n"
 "Last-Translator: George Salukvadze <giosal90 at gmail.com>\n"
-"Language-Team: Georgian (http://www.transifex.com/projects/p/boinc/language/ka/)\n"
+"Language-Team: Georgian (http://www.transifex.com/boinc/boinc/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "ბოდიში, %s-ის ეს ვერსია ითხოვს სისტემას 10.5 ან უფრო მაღალს."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "უკაცრავად, %s-ის ამ ვერსიას სჭირდება სისტემა 10.6 ან უფრო მაღალი."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "დიახ"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "არა"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "გსურთ, რომ BOINC იყოს გაშვებული მაშინაც, როდესაც არც ერთი მომხმარებებლი არ არის შესული?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -43,26 +48,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "მომხმარებლებს, ვისაც აქვს ამ კომპიუტერის ადმინისტრირების უფლება, ავტომატურად მიეცემათ უფლება გაუშვან და აკონტროლონ %s.\n\nგსურთ, ასევე არა-ადმინისტრატორ მომხმარებლებსაც ჰქონდეთ საშუალება გაუშვან და აკონტროლონ %s ამ მაკ-ზე?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr "გსურთ, დააყენოთ %s, როგორც ეკრანის გადამრჩენი, ყველა %s-ის მომხმარებლისთვის ამ მაკ-ზე?"
+msgstr "გსურთ, დააყენოთ %s, როგორც ეკრანის შემნახველი, ყველა %s-ის მომხმარებლისთვის ამ მაკ-ზე?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "ოკ"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "უფლებათა შეცდომა თავიდან გაშვებისას"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "წაშლამ შეიძლება დაიკავოს რამოდენიმე წუთი.\nგთხოვთ, მოითმინოთ."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -70,27 +76,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "დარწმუნებული ხართ, რომ გსურთ %s-ის სრულად წაშლა თქვენი კომპიუტერიდან?\n\nეს წაშლის გაშვებად ფაილებს, მაგრამ არ შეეხება %s-ის მონაცემთა ფაილებს."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "გაუქმებულია: %s არ იქნა შეხებული."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "მოხდა შეცდომა: შეცდომის კოდი %d."
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "მომხმარებლის სახელი"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "გსურთ, ასევე წაშალოთ VirtualBox-ი თქვენი კომპიუტერიდან?\n(VirtualBox-ი იყო დაყენებული BOINC-თან ერთად.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -102,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "წაშლა იქნა დასრულებული.\n\nთქვენი შეიძლება ასევე გინდოდეთ მაძიებლის მეშვეობით შემდეგის წაშლა:\nსაქაღალდე \"%s\"\n\nყოველი მომხმარებლისთვის, ფაილი\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "შეიყვანეთ თქვენი ადმინისტრატორის პაროლი %s-ის სრულად წასაშლელად თქვენი კომპიუტერიდან.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "გაუქმება"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "გაგრძელება..."
diff --git a/locale/ko/BOINC-Client.mo b/locale/ko/BOINC-Client.mo
index 4973e44..f8049ac 100644
Binary files a/locale/ko/BOINC-Client.mo and b/locale/ko/BOINC-Client.mo differ
diff --git a/locale/ko/BOINC-Client.po b/locale/ko/BOINC-Client.po
index f5a8dc0..6064832 100644
--- a/locale/ko/BOINC-Client.po
+++ b/locale/ko/BOINC-Client.po
@@ -1,161 +1,176 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-08 22:37+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Korean (http://www.transifex.com/projects/p/boinc/language/ko/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-18 00:43+0000\n"
+"Last-Translator: Kangsan Lee <treppolse at gmail.com>\n"
+"Language-Team: Korean (http://www.transifex.com/boinc/boinc/language/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "계정 관리자에서 온 메세지"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "서버에서 온 메세지"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "어떤 태스크는 환경설정 허용치보다 더 많은 메모리를 필요로 합니다. 환경설정을 확인하세요."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "상태 파일을 기록할 수 없습니다. 디렉토리 권한을 확인하세요"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "HTTP_PROXY 환경 변수에는 HTTP 프록시를 지정해야 합니다"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "잘못된 프로젝트 URL를 사용하고 있습니다.  이 프로젝트를 삭제하고 %s를 추가하세요"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "이 프로젝에서 오래된 URL를 사용하고 있습니다.  프로젝트를 삭제하고 %s를 추가하세요"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "app_info.xml에서 구문 오류 발견"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "app_info.xml에 파일 참조 위치가 존재하지 않음: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "BOINC 새 버전이 출시되었습니다."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "다운로드"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "CUDA 드라이버 6.5 이상 버전은 CUDA 혹은 OpenCL 연산에 사용할 수 없습니다"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "cc_config.xml에 예상치 못한 텍스트 발견"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "cc_config.xml에 유효하지 않은 태그 발견"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "cc_config.xml에 시작 태그가 빠짐"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "cc_config.xml 옵션에서 오류 발견"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "cc_config.xml에 마침 태그가 빠짐"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "이 문제를 해결하려며면 "
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "프로젝트 웹 사이트에서 프로젝트 환경설정을 변경하세요"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "cc_config.xml에서 GPU 예외 목록을 제거합니다"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "계정 관리자 웹 사이트에서 설정값을 변경하세요"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "계정 키가 틀렸거나 없습니다. 수정하려면 프로젝트를 삭제하고 다시 추가하세요."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "암호 서명 키가 틀렸습니다. 수정하려면 프로젝트를 삭제하고 다시 추가하세요."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "프로젝트 안전 키가 바꼈습니다. 프로젝트를 삭제하고 다시 추가하세요."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "이 프로젝트는 해당 운영체제를 지원하지 않습니다"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "이 프로젝트는 해당 CPU를 지원하지 않습니다"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "BOINC 클라이언트 소프트웨어가 오래되었습니다. 최신 버전을 설치하세요."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "이 프로젝트는 해당 컴퓨터를 지원하지 않습니다"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "해당 컴퓨터의 GPU로 태스크를 처리하려면 최신 드라이버로 업그레이드하세요"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "이 프로젝트의 GPU 응용 프로그램을 사용하려면 최신 드라이버로 업그레이드하세요"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "NVIDIA GPU를 사용하려면 더 높은 BOINC 버전이 필요합니다. 최신 버전으로 업그레이드하세요"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "이 프로젝트의 태스크를 실행하려면 %s GPU가 필요합니다"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "선택한 응용 프로그램으로 실행 가능한 태스크가 없습니다."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "이 프로젝트에서는 해당 컴퓨터는 지원되지 않습니다"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "더 높은 BOINC 버전이 필요합니다. 최신 버전을 설치하세요"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "%s용 태스크가 있습니다. 그러나 환경 설정에서 사용이 허가되지 않았습니다"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "app_info.xml에서 미확인 어플 이름 발견"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "app_info.xml에 사용 가능한 버전이 없음 :"
diff --git a/locale/ko/BOINC-Drupal.po b/locale/ko/BOINC-Drupal.po
index 790db58..8a1825f 100644
--- a/locale/ko/BOINC-Drupal.po
+++ b/locale/ko/BOINC-Drupal.po
@@ -6,477 +6,520 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-05-07 12:21+0000\n"
-"PO-Revision-Date: 2015-06-29 09:55+0000\n"
-"Last-Translator: Jihyuk Lee <ysjbserver at naver.com>\n"
-"Language-Team: Korean (http://www.transifex.com/projects/p/boinc/language/ko/)\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2017-01-13 21:58+0000\n"
+"Last-Translator: Kangsan Lee <treppolse at gmail.com>\n"
+"Language-Team: Korean (http://www.transifex.com/boinc/boinc/language/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "만약 이메일 주소와 연관되고 <a href=\"@gravatar-check\">인증된 그라바타</a>를 가지고 있다면 사용자 사진으로 사용할 수 있습니다."
+msgid "Reject profile"
+msgstr "프로필 거부"
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "사용자 사진을 올리면 그라바타는 보이지 않을 것입니다."
+msgid "Ban user"
+msgstr "사용자 추방"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "만약 이메일 주소와 연관되고 <a href=\"@gravatar-check\">인증된 그라바타</a>를 가지고 있다면 사용자 사진으로 사용해 보세요."
+msgid "I'm new"
+msgstr "새 사용"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "아바타를 올리면 그라바타는 보이지 않을 것입니다."
+msgid "I'm a BOINC user"
+msgstr "BOINC 사용자입니다"
 
-msgid "This is not available until your profile is set up."
-msgstr "사용자 프로필이 설정되기 전에는 사용할 수 없습니다."
+msgid "Authenticator login"
+msgstr "인증 부호 로그인"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "@project의 컴퓨터 목록을 웹 사이트 상에 공개하시겠습니까?"
+msgid ""
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "이 사이트에서 코멘트를 작성하려면 @count 이상의 크레딧을 벌어야 됩니다."
 
-msgid "Click here to revoke your membership with @this_team"
-msgstr "@this_team에서 탈퇴하길 원하시면 여기를 클릭하세요"
+msgid "Generic"
+msgstr "일반"
 
-msgid "Minimum avg credit to post"
-msgstr "포스팅에 필요한 최소 평균 크레딧"
+msgid "Home"
+msgstr "집"
 
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "창설자 & 팀 관리자는 관리자 권한을 가집니다"
+msgid "Work"
+msgstr "직장"
 
-msgid "Notes about changes in foundership:"
-msgstr "창설자 변경에 대한 설명:"
+msgid "School"
+msgstr "학교"
 
-msgid "Foundership can be requested by team members:"
-msgstr "팀 회원에게서 요청받은 창설자 후보:"
+msgid "yes"
+msgstr "예"
 
-msgid "One request is allowed at a time"
-msgstr "한 번에 하나의 요청만 허용됩니다"
+msgid "no"
+msgstr "아니오"
 
-msgid "Any active request must be older than 90 days"
-msgstr "활성화된 요청은 90일 이상 지나야 됩니다"
+msgid "Resource settings"
+msgstr "자원 설정"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "현재 창설자는 요청 후 60일 안에 답해야 합니다"
+msgid "Resource share"
+msgstr "자원 공유"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "만약 팀 관리자가 팀을 나가면, 팀 관리자가 직책이 사라지게 됩니다. 잘 알고 믿을 수 있는 사람만 선택하길 추천합니다."
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "이 프로젝트에서 사용할 자원 배분치를 결정하세요. 예: 여러분이 각각 100과 200의 자원을 공유하기로 한 BOINC 프로젝트에 참여하고 계시면 첫 번째는 1/3의 자원을 쓰게 되고, 두 번째는 2/3를 쓰게 됩니다."
 
-msgid "You may create a message board for use by @team"
-msgstr "@team에서 사용할 메세지 게시판을 만들 수 있습니다"
+msgid "Use CPU"
+msgstr "CPU 사용"
 
-msgid "parent removed"
-msgstr "영구적으로 삭제됨"
+msgid "Enforced by version @number"
+msgstr "@number 버전 이상이 필요함"
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "CPU당 최대 일일 WU 할당량"
+msgid "Use NVIDIA GPU"
+msgstr "NVIDIA GPU 사용"
 
-msgid "Received time"
-msgstr "전송 시각"
+msgid "Use ATI GPU"
+msgstr "ATI GPU 사용"
 
-msgid "App ID"
-msgstr "App ID"
+msgid "Use INTEL GPU"
+msgstr "Intel GPU 사용"
 
-msgid "Error mask"
-msgstr "오류 마스크"
+msgid "Beta settings"
+msgstr "베타 설정"
 
-msgid "Minimum quorum"
-msgstr "최소 정족수"
+msgid "Run test applications?"
+msgstr "테스트 프로그램을 실행합니까?"
 
-msgid "Max error tasks"
-msgstr "최대 오류 태스크 수"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "이는 프로그램 개발에 도움을 주지만, 해당 컴퓨터에서 실행에 실패할 수도 있습니다"
 
-msgid "Max success tasks"
-msgstr "최대 성공 태스크 수"
+msgid " Default value: @default"
+msgstr " 기본 값: @default"
 
-msgid "Max total tasks"
-msgstr "최대 총합 태스크 수"
+msgid "Applications"
+msgstr "응용 프로그램"
 
-msgid "Target number of results"
-msgstr "결과물 목표치"
+msgid "Default set"
+msgstr "기본 "
 
-msgid "Application version ID"
-msgstr "응용 프로그램 버전 ID"
+msgid "Set used for new computers"
+msgstr "새 컴퓨터 설정"
 
-msgid "Plan class"
-msgstr "프로그램 종류"
+msgid "Save changes"
+msgstr "변경사항 저장"
 
-msgid "Version number"
-msgstr "버전 숫자"
+msgid "Cancel"
+msgstr "취소"
 
-msgid "App version ID"
-msgstr "App  ID"
+msgid "Show comparison view"
+msgstr "비교 모드로 보여주기"
 
-msgid "@count million ops/sec"
-msgstr "@count 백만 ops/초"
+msgid "Comment form"
+msgstr "코멘트 양식"
 
-msgid "@rate KiB/sec"
-msgstr "@rate KiB/초"
+msgid "Logout"
+msgstr "로그아웃"
 
-msgid "@count days"
-msgstr "@count 일"
+msgid "Join now"
+msgstr "지금 "
 
-msgid "@ip_address (same the last @count times)"
-msgstr "@ip_address (최근 @count 시간동안 동일)"
+msgid "Account"
+msgstr "계정"
 
-msgid "commented on"
-msgstr "코멘트함"
+msgid "Server status"
+msgstr "서버 상태"
 
-msgid "Remove sticky status from this topic"
-msgstr "이 주제에서 찐득이 상태 제거"
+msgid "Language"
+msgstr "언어"
 
-msgid ""
-"Check the computers that are the same as @name (created on @date at @time "
-"with computer ID @id)"
-msgstr "@name과 동일한 컴퓨터인지 체크하세요 (컴퓨터 ID @id 생성시각: @date @time)"
+msgid "Create content"
+msgstr "생성 시각"
 
-msgid "Computer @old_id has been merged successfully into @id."
-msgstr "@old_id가 성공적으로 @id에 병합되었습니다."
+msgid "General settings"
+msgstr "일반 설정"
 
-msgid "started discussion"
-msgstr "토론이 시작되었습니다"
+msgid "Name"
+msgstr "이름"
 
-msgid "posted"
-msgstr "작성됨"
+msgid "Time zone"
+msgstr "시간대"
 
-msgid "Minimum value not met for @field"
-msgstr "@field 최소값을 채우지 못했습니다"
+msgid "Notification settings"
+msgstr "알림 설정"
 
-msgid "Invalid data type for @field"
-msgstr "유효하지 않은 데이터 종류 @field"
+msgid "Receive email notification for private messages?"
+msgstr "쪽지 수신시 이메일 알림을 받겠습니까?"
 
-msgid ""
-"Authentication is required when changing E-mail address or setting new "
-"password."
-msgstr "이메일 주소를 변경하거나 새로운 비밀번호를 설정할 때는 인증이 필요합니다."
+msgid "Receive email notification for friend requests?"
+msgstr "친구 요청시 이메일 알림을 받겠습니까?"
 
-msgid "Request foundership"
-msgstr "창설자 요청하기"
+msgid "Language settings"
+msgstr "언어 설정"
 
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "팀 창설자가 미활동중이고 창설자 직을 맡길 원한다면, 하단의 @this_team 창설자 요청을 클릭하세요."
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "이메일 및 사이트 전반에 적용되는 이 계정의 기본 언어."
 
-msgid "Initiate request"
-msgstr "요청 보내기"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "만약 이메일 주소와 연관되고 <a href=\"@gravatar-check\">인증된 그라바타</a>를 가지고 있다면 사용자 사진으로 사용할 수 있습니다."
 
-msgid "A BOINC account already exists for @email."
-msgstr "@email 를 사용한 BOINC 계정이 이미 있습니다."
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "사용자 사진을 올리면 그라바타는 보이지 않을 것입니다."
 
 msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "공격적이거나 무례한 포스트를 작성하지 마시고 여러분이 쓰는 글에 책임을 지세요. 공격적인 포스트나 스레드는 토론이나 경고없이 포럼 관리자가 삭제할 수도 있습니다. 공격적인 포스트에는 응답하지 마십시오. 포스트 하단의 \"신고\" 버튼을 클릭해서 관리자를 호출할 수 있습니다."
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "만약 이메일 주소와 연관되고 <a href=\"@gravatar-check\">인증된 그라바타</a>를 가지고 있다면 사용자 사진으로 사용해 보세요."
 
-msgid "this project"
-msgstr "이 프로젝트"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "아바타를 올리면 그라바타는 보이지 않을 것입니다."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "우리는 또한 기본 과학에 관련된 어떤 논의 자유롭게 위치를 과학 메시지 보드 작은 제외 @project 또는 BOINC 관련 게시판의 모든 논의를 계속 부탁드립니다. 폭 넓은 토론에 관심이 참가자 @project에 대한 비공식 포럼에 게시해야합니다."
+msgid "Avatar settings"
+msgstr "아바타 설정"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "이 메세지 게시판은 이제 BB코드 태그만 지원합니다."
+msgid "This is not available until your profile is set up."
+msgstr "사용자 프로필이 설정되기 전에는 사용할 수 없습니다."
 
-msgid "Posts contributed"
-msgstr "포스트가 투고됨"
+msgid "Create a profile"
+msgstr "프로필 만들기"
 
-msgid "Profile awaiting moderator approval"
-msgstr "관리자 승인을 기다리는 프로필"
+msgid "Upload an avatar"
+msgstr "아바타 업로드"
 
-msgid "Approve profile"
-msgstr "프로필 승인"
+msgid "Forum settings"
+msgstr "포럼 설정"
 
-msgid "Approve this profile content"
-msgstr "이 프로필 내용 승인"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "토론 주제에서는 최대 @comments_per_page 를 보여줍니다"
 
-msgid "Edit profile"
-msgstr "프로필 수정하기"
+msgid "comments per page"
+msgstr "페이지당 코멘트 수"
 
-msgid "Edit the content of this profile"
-msgstr "이 프로필 내용 수정하기"
+msgid "Sort comments in discussions"
+msgstr "토론 속 코멘트 정렬"
 
-msgid "Remove profile"
-msgstr "프로필 제거"
+msgid "Newest post first"
+msgstr "최신 포스트 순"
 
-msgid "Remove this profile content from the system"
-msgstr "이 프로필 내용을 시스템에서 제거하기"
+msgid "Oldest post first"
+msgstr "오래된 포스트 순"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "현재 창설자는 @count 일 안에 전달받은 요청에 응답해야 합니다."
+msgid "Signature"
+msgstr "서명"
 
-msgid "Reject profile"
-msgstr "프로필 거부"
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "작성한 서명은 여러분이 쓴 코멘트 하단에 공개되며 표시됩니다."
 
-msgid "Reject this profile content"
-msgstr "이 프로필 내용 거부"
+msgid "Hide signatures in forums"
+msgstr "포럼에서 서명 숨기기"
 
-msgid "Reason for rejecting this profile"
-msgstr "이 프로필의 거절 사유"
+msgid "Privacy settings"
+msgstr "개인정보 설정"
 
-msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "사용자에게 거절 사유가 포함되어서 이메일로 전송됩니다. 간단한 문제 설명과 어떻게 고칠 수 있는지를 적어 주세요."
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "@project와 소속 팀(전부)에서 이메일을 받길 원하십니까?"
 
-msgid "Submit"
-msgstr "제출"
+msgid "Should @project show your computers on its web site?"
+msgstr "@project의 컴퓨터 목록을 웹 사이트 상에 공개하시겠습니까?"
 
-msgid "project"
-msgstr "프로젝트"
+msgid "Id"
+msgstr "Id"
 
-msgid "Email address"
-msgstr "Email 주소"
+msgid "Founder"
+msgstr "창설자"
 
-msgid "Home"
-msgstr "집"
+msgid "Country"
+msgstr "국가"
 
-msgid "Login"
-msgstr "로그인"
+msgid "Recent average credit"
+msgstr "최근 평균 크레딧"
 
-msgid "search"
-msgstr "검색"
+msgid "Members"
+msgstr "맴버"
 
-msgid "Server status"
-msgstr "서버 상태"
+msgid "Total Credit"
+msgstr "총 크레딧"
 
-msgid "Language"
-msgstr "언어"
+msgid "User ID"
+msgstr "사용자 ID"
 
-msgid "Enter your @s email address."
-msgstr "@s 이메일 주소를 입력하세요."
+msgid "User"
+msgstr "사용자"
 
-msgid "Join now"
-msgstr "지금 "
+msgid "Admin since"
+msgstr "관리자 시작 시간:"
 
-msgid "I'm new"
-msgstr "새 사용"
+msgid "Team ID"
+msgstr "팀 ID"
 
-msgid "I'm a BOINC user"
-msgstr "BOINC 사용자입니다"
+msgid "User joined"
+msgstr "사용자가 가입함"
 
-msgid "Welcome back!"
-msgstr "재방문을 환영합니다!"
+msgid "Timestamp"
+msgstr "타임스탬프"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home은 LIGO 중력파 감지기에서 뽑아온 데이터를 이용해 회전하는 중성자 별(흔히 펄서로 알려짐)에서 온 중력파를 찾기 위해서 여러분의 컴퓨터가 쉬는 동안에 화면 보호기를 실행해 연산을 하는 프로그램입니다."
+msgid "Account Key"
+msgstr "계정 키"
 
-msgid "Learn more"
-msgstr "더 "
+msgid "Member since"
+msgstr "참여 시작일"
 
-msgid "View account"
-msgstr "계정 "
+msgid "CPID"
+msgstr "CPID"
 
-msgid "About our screensaver"
-msgstr "화면 보호기에 대해 알아보기"
+msgid "Email Address"
+msgstr "Email 주소"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "5십만 이상의 기여자 혹은 그 이상."
+msgid "Password Hash"
+msgstr "비밀번호 해시"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Postal Code"
+msgstr "우편 번호"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Send Email"
+msgstr "이메일 보내기"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Show Hosts"
+msgstr "호스트 보여주기"
 
-msgid "Logout"
-msgstr "로그아웃"
+msgid "URL"
+msgstr "URL"
 
-msgid "Name"
-msgstr "이름"
+msgid "Computer ID"
+msgstr "컴퓨터 ID"
 
-msgid "Avg credit"
-msgstr "평균 "
+msgid "Location"
+msgstr "위치"
 
-msgid "Total credit"
-msgstr "총 크레딧"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "BOINC가 실행되는 동안 허가된 작업의 시간(%)"
 
-msgid "Enter your password to save changes"
-msgstr "변경사항을 저장하려면 비밀번호를 입력하세요"
+msgid "Average turnaround time"
+msgstr "평균 반환 시간"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "이메일 또는 비밀번호를 변경할 경우 현재 사용 중인\n          비밀번호를 입력하세요."
+msgid "Created"
+msgstr "생성 시각"
 
-msgid "BOINC user ID"
-msgstr "BOINC  ID"
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "BOINC가 실행되는 동안, 호스트가 인터넷에 연결된 시간(%)"
 
-msgid "Drupal user ID"
-msgstr "Drupal  ID"
+msgid "Average CPU efficiency"
+msgstr "평균 CPU 효율"
 
-msgid "Account key"
-msgstr "계정 "
+msgid "Free disk space"
+msgstr "사용 가능한 공간"
 
-msgid "Weak account key"
-msgstr "약한 계정 키"
+msgid "Total disk space"
+msgstr "전체 디스크 용량"
 
-msgid "Cross-project ID"
+msgid "Task duration correction factor"
+msgstr "태스크 지연 보정값"
+
+msgid "Avg. credit"
+msgstr "평균 크레딧"
+
+msgid "External IP address"
+msgstr "외부 IP 주소"
+
+msgid "Cross project ID"
 msgstr "공유-프로젝트 ID"
 
-msgid "Save changes"
-msgstr "변경사항 저장"
+msgid "Last IP address"
+msgstr "마지막 IP 주소"
 
-msgid "Cancel"
-msgstr "취소"
+msgid "Cache"
+msgstr "캐시"
 
-msgid "Change password"
-msgstr "비밀번호 변경"
+msgid "Memory"
+msgstr "메모리"
 
-msgid "What is @this_project?"
-msgstr "@this_project은 무엇입니까?"
+msgid "Swap space"
+msgstr "스왑 영역"
 
-msgid "no projects..."
-msgstr "프로젝트 없음..."
+msgid "Maximum daily WU quota per CPU"
+msgstr "CPU당 최대 일일 WU 할당량"
 
-msgid "Download the desktop software"
-msgstr "데스크탑 소프트웨어를 다운로드하세요"
+msgid "Average download rate"
+msgstr "평균 다운로드 속도"
 
-msgid "Run the installer"
-msgstr "설치 프로그램 실행"
+msgid "Average upload rate"
+msgstr "평균 업로드 속"
 
-msgid "When prompted enter @siteurl"
-msgstr "명령창이 뜨면 @siteurl을 입력하세요"
+msgid "Same IP address count"
+msgstr "동일 IP 주소 카운트"
 
-msgid "Password"
-msgstr "비밀번호"
+msgid "% of time BOINC client is running"
+msgstr "BOINC 클라이언트가 동작한 시간(%)"
+
+msgid "Operating system"
+msgstr "운영체제(OS)"
+
+msgid "Operating system version"
+msgstr "운영 체제 버전"
+
+msgid "Measured floating point speed"
+msgstr "부동소수점 연산 속도"
+
+msgid "Measured integer speed"
+msgstr "정수 연산 속도"
+
+msgid "CPU model"
+msgstr "CPU 종류"
+
+msgid "Number of processors"
+msgstr "프로세서 수"
+
+msgid "CPU"
+msgstr "CPU"
+
+msgid "Number of times client has contacted server"
+msgstr "클라이언트가 서버와 통신한 횟수"
+
+msgid "Last contact"
+msgstr "마지막 통신"
+
+msgid "Serial number"
+msgstr "시리얼 번호"
+
+msgid "Timezone"
+msgstr "시간대"
+
+msgid "Platform ID"
+msgstr "플랫폼 ID"
+
+msgid "Task ID"
+msgstr "태스크 ID"
+
+msgid "Workunit ID"
+msgstr "작업 유닛 ID"
+
+msgid "Host ID"
+msgstr "호스트 ID"
+
+msgid "Application ID"
+msgstr "응용 프로그램 ID"
+
+msgid "Application version"
+msgstr "응용 프로그램 버전"
+
+msgid "Claimed credit"
+msgstr "요청된 크레딧"
+
+msgid "Client state"
+msgstr "클라이언트 상태"
+
+msgid "CPU time"
+msgstr "CPU 시간"
+
+msgid "Run time"
+msgstr "실행 시간"
 
-msgid "Enter the password that accompanies your username."
-msgstr "사용자 이름에 맞는 비밀번호를 입력하세요."
+msgid "Exit status"
+msgstr "마감 결과"
 
-msgid "Request new password"
-msgstr "새 비밀번호 요청"
+msgid "Granted credit"
+msgstr "획득 크레딧"
 
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "이미 BOINC를 실행하고 있다면, <i>프로젝트\n      추가</i>를 선택하세요."
+msgid "Outcome"
+msgstr "결과"
 
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "만약 커맨드라인 버전 BOINC를 실행하고 있다면,\n        "
+msgid "Received time"
+msgstr "전송 시각"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "만약 BOINC 5.0이전 버전을 실행하고 있는데,\n        이 프로젝트에 계정을 생성하고자 한다면 보다 최신 버전으로\n        업그레이드하세요."
+msgid "Report deadline"
+msgstr "리포트 마감 시각"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) 만약 계정과 이메일 주소를 알고 있다면, 수신 가능한 이메일 주소를 여기에 적어 주세요:"
+msgid "Sent"
+msgstr "전송 시각"
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "이메일 주소를 입력하고 OK를 누르세요. 비밀번호를 재설정하는 절차 안내문이 이메일로 보내집니다."
+msgid "Server state"
+msgstr "서버 상태"
 
-msgid "OK"
-msgstr "확인"
+msgid "Stderr out"
+msgstr "Stderr out"
 
-msgid "The latest news from the @site_name project"
-msgstr "@site_name 프로젝트에서 온 최신 뉴스"
+msgid "Validation state"
+msgstr "인증 현황"
 
-msgid "Comment form"
-msgstr "코멘트 양식"
+msgid "App ID"
+msgstr "App ID"
 
-msgid "Total credits"
-msgstr "총 크레딧"
+msgid "Canonical credit"
+msgstr "인증된 결과"
 
-msgid "Recent avg credits"
-msgstr "최근 평균 크레딧"
+msgid "Canonical result ID"
+msgstr "인정받은 결과 ID"
 
-msgid "Country"
-msgstr "국가"
+msgid "Created time"
+msgstr "생성 시각"
 
-msgid "Type"
-msgstr "종류"
+msgid "Error mask"
+msgstr "오류 마스크"
 
-msgid "Founder"
-msgstr "창설자"
+msgid "Minimum quorum"
+msgstr "최소 정족수"
 
-msgid "New members in last day"
-msgstr "전 날의 새로운 맴버"
+msgid "Max error tasks"
+msgstr "최대 오류 태스크 수"
 
-msgid "Total members"
-msgstr "전체 맴버"
+msgid "Max success tasks"
+msgstr "최대 성공 태스크 수"
 
-msgid "Active members"
-msgstr "활동하는 맴버"
+msgid "Max total tasks"
+msgstr "최대 총합 태스크 수"
 
-msgid "Members with credit"
-msgstr "크레딧을 가진 맴버"
+msgid "Needs validation"
+msgstr "인증이 필요합니다"
 
-msgid "Description"
-msgstr "개요"
+msgid "Initial replication"
+msgstr "초기 복제물"
 
-msgid "Search teams"
-msgstr "팀 검색"
+msgid "Target number of results"
+msgstr "결과물 목표치"
 
-msgid "Send message"
-msgstr "메세지 전송"
+msgid "Application version ID"
+msgstr "응용 프로그램 버전 ID"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Plan class"
+msgstr "프로그램 종류"
 
-msgid "Project"
-msgstr "프로젝트"
+msgid "Version number"
+msgstr "버전 숫자"
 
-msgid "Web site"
-msgstr "웹 사이트"
+msgid "Computer"
+msgstr "컴퓨터"
 
-msgid "No active computers"
-msgstr "활동 중인 컴퓨터 없음"
+msgid "App version ID"
+msgstr "App  ID"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "이 사용자는 최근 30일이내에 활동 중인 컴퓨터가 없습니다."
+msgid "Consecutive valid tasks"
+msgstr "연속적으로 유효한 태스크"
 
-msgid " Default value: @default"
-msgstr " 기본 값: @default"
+msgid "Number of tasks completed"
+msgstr "완료된 태스크 수"
 
-msgid "Applications"
-msgstr "응용 프로그램"
+msgid "Max tasks per day"
+msgstr "하루 태스크 최대량"
 
-msgid "yes"
-msgstr "예"
+msgid "Number of tasks today"
+msgstr "오늘의 태스크 수"
 
-msgid "no"
-msgstr "아니오"
+msgid "Manage subscriptions"
+msgstr "구독 관리"
 
-msgid "Message @id"
-msgstr "메세지 @id"
+msgid "Avg credit"
+msgstr "평균 "
 
-msgid "message @id"
-msgstr "메세지 @id"
+msgid "Total credit"
+msgstr "총 크레딧"
 
-msgid " in response to !parent"
-msgstr " !parent 의 응답"
+msgid "More"
+msgstr "자세히"
 
-msgid "Credits per day"
-msgstr "일별 크레딧"
+msgid "Tasks"
+msgstr "태스크"
 
 msgid "Computers hidden"
 msgstr "컴퓨터가 숨겨짐"
@@ -484,119 +527,97 @@ msgstr "컴퓨터가 숨겨짐"
 msgid "This user has chosen not to show information about their computers."
 msgstr "이 사용자는 컴퓨터 정보를 보여주지 않기로 정해놓았습니다."
 
-msgid "Stderr output"
-msgstr "Stderr 출력 값"
+msgid "no projects..."
+msgstr "프로젝트 없음..."
 
-msgid "@time ago"
-msgstr "@time 전"
+msgid "Moderation"
+msgstr "편집"
 
-msgid "n/a"
-msgstr "없음"
+msgid "Unvetted profiles"
+msgstr "검사되지 않은 프로필"
 
-msgid "Submitted by !username on !datetime"
-msgstr "!username 이 !datetime 에 제출함"
+msgid "Inbox"
+msgstr "쪽지함"
 
-msgid "Member since"
-msgstr "참여 시작일"
+msgid "Compose new"
+msgstr "신규 "
 
-msgid "View team"
-msgstr "팀 보기"
+msgid "Posts contributed"
+msgstr "포스트가 투고됨"
 
 msgid "Friends (@count)"
 msgstr "친구 (@count)"
 
-msgid "Website"
-msgstr "웹 사이트"
-
-msgid "Locked"
-msgstr "잠김"
-
-msgid "Computers pending"
-msgstr "보류된 컴퓨터"
-
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "이 사용자는 아직 연동된 컴퓨터가 없습니다. 컴퓨터는 첫 크레딧을 번 이후에 표시됩니다."
-
-msgid "No results found..."
-msgstr "결과"
-
-msgid "Background"
-msgstr "배경"
-
-msgid "Teams"
-msgstr "팀"
+msgid "Welcome back!"
+msgstr "재방문을 환영합니다!"
 
 msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "@projec 참여자는 팀을 결성할 수 있습니다. 사용자는 단 하나의 팀에만 속할 수 있습니다. 팀은 언제든지 가입하거나 탈퇴할 수 있습니다. 팀에 가입하려면, 팀 페이지를 방문하고 \"이 팀에 가입\" 버튼을 클릭하세요. 각 팀은 다음 창설자가 있습니다:"
-
-msgid "access team members' email addresses"
-msgstr "팀 멤버가 가진 이메일 주소를 열람"
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home은 LIGO 중력파 감지기에서 뽑아온 데이터를 이용해 회전하는 중성자 별(흔히 펄서로 알려짐)에서 온 중력파를 찾기 위해서 여러분의 컴퓨터가 쉬는 동안에 화면 보호기를 실행해 연산을 하는 프로그램입니다."
 
-msgid "edit the team's name and description"
-msgstr "팀 이름과 개요를 수정합니다"
+msgid "Learn more"
+msgstr "더 "
 
-msgid "add or remove team admins"
-msgstr "팀 관리자 추가/삭제"
+msgid "View account"
+msgstr "계정 "
 
-msgid "remove members from the team"
-msgstr "팀에서 멤버 추방하기"
+msgid "User of the day"
+msgstr "오늘의 사용자"
 
-msgid "disband a team if it has no members"
-msgstr "만약 팀 멤버가 없으면 팀을 해산할 수 있습니다"
+msgid "Over 500,000 volunteers and counting."
+msgstr "5십만 이상의 기여자 혹은 그 이상."
 
-msgid "Create a new team"
-msgstr "새로운 팀 만들기"
+msgid "Windows"
+msgstr "Windows"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "만약 여러분에게 맞는 팀을 찾지 못했다면, 팀을 생성할 수 있습니다."
+msgid "Mac"
+msgstr "Mac"
 
-msgid "You must earn @count more credits!"
-msgstr "@count 이상의 크레딧을 벌어야 됩니다!"
+msgid "Linux"
+msgstr "Linux"
 
-msgid "Threads"
-msgstr "스레드"
+msgid "Credits per day"
+msgstr "일별 크레딧"
 
-msgid "Posts"
-msgstr "포스트"
+msgid "View user profile."
+msgstr "사용자의 프로필을 봅니다."
 
-msgid "Last post"
-msgstr "마지막 포스트"
+msgid "Profile awaiting moderator approval"
+msgstr "관리자 승인을 기다리는 프로필"
 
-msgid "Manage subscriptions"
-msgstr "구독 관리"
+msgid "Background"
+msgstr "배경"
 
-msgid "Featured"
-msgstr "특집"
+msgid "Opinion"
+msgstr "의견"
 
-msgid "Submitted on !datetime"
-msgstr "!datetime 에 제출됨"
+msgid "Enter your password to save changes"
+msgstr "변경사항을 저장하려면 비밀번호를 입력하세요"
 
-msgid "Comments"
-msgstr "코멘트"
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "이메일 또는 비밀번호를 변경할 경우 현재 사용 중인\n          비밀번호를 입력하세요."
 
-msgid "Opinion"
-msgstr "의견"
+msgid "BOINC user ID"
+msgstr "BOINC  ID"
 
-msgid "More"
-msgstr "자세히"
+msgid "Drupal user ID"
+msgstr "Drupal  ID"
 
-msgid "Tasks"
-msgstr "태스크"
+msgid "Account key"
+msgstr "계정 "
 
-msgid "Generic"
-msgstr "일반"
+msgid "Weak account key"
+msgstr "약한 계정 키"
 
-msgid "Work"
-msgstr "직장"
+msgid "Cross-project ID"
+msgstr "공유-프로젝트 ID"
 
-msgid "School"
-msgstr "학교"
+msgid "Change password"
+msgstr "비밀번호 변경"
 
 msgid "Presets"
 msgstr "프리셋"
@@ -637,9 +658,6 @@ msgstr "컴퓨터를 사용하는 동안 GPU 사용"
 msgid "Run GPU work while computer is in use?"
 msgstr "컴퓨터를 사용하는 동안에도 GPU를 사용합니까?"
 
-msgid "Enforced by version @number"
-msgstr "@number 버전 이상이 필요함"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "\"사용 중\"은 마우스/키보드 입력 시간을 뜻합니다"
 
@@ -776,251 +794,445 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "인터넷 제공자가 이미지 파일을 변경할 경우에만 체크하세요.(예를 들어 UMTS가 이렇게 합니다)검증을 건너뛸 경우에는 BOINC의 보안성이 감소됩니다."
 
-msgid "Show comparison view"
-msgstr "비교 모드로 보여주기"
+msgid "search"
+msgstr "검색"
 
-msgid "Resource settings"
-msgstr "자원 설정"
+msgid "What is @this_project?"
+msgstr "@this_project은 무엇입니까?"
 
-msgid "Resource share"
-msgstr "자원 공유"
+msgid "Login"
+msgstr "로그인"
+
+msgid "BOINC"
+msgstr "BOINC"
+
+msgid "Project"
+msgstr "프로젝트"
+
+msgid "No @type tasks"
+msgstr "@type 태스크 없음"
+
+msgid "There are no tasks of this type on record"
+msgstr "레코드상에 이 유형의 태스크가 없습니다"
+
+msgid "Details"
+msgstr "자세히"
+
+msgid "Password"
+msgstr "비밀번호"
+
+msgid "Enter the password that accompanies your username."
+msgstr "사용자 이름에 맞는 비밀번호를 입력하세요."
+
+msgid "Request new password"
+msgstr "새 비밀번호 요청"
+
+msgid "Mark all topics read"
+msgstr "모든 주제를 읽음으로 표시"
+
+msgid "Mark all forums read"
+msgstr "모든 포럼을 읽음으로 표시"
 
 msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "이 프로젝트에서 사용할 자원 배분치를 결정하세요. 예: 여러분이 각각 100과 200의 자원을 공유하기로 한 BOINC 프로젝트에 참여하고 계시면 첫 번째는 1/3의 자원을 쓰게 되고, 두 번째는 2/3를 쓰게 됩니다."
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
+msgstr "CAPTCHA 인증 오류: 알 수 없는 CAPTCHA 세션 ID. 이 문제가 지속되면 사이트 관리자에게 연락하세요."
 
-msgid "Use CPU"
-msgstr "CPU 사용"
+msgid "The answer you entered for the CAPTCHA was not correct."
+msgstr "입력한 CAPTCHA 답변이 올바르지 않습니다."
 
-msgid "Use NVIDIA GPU"
-msgstr "NVIDIA GPU 사용"
+msgid "Access denied. You must login to view this page."
+msgstr "접근이 거부되었습니다. 이 페이지를 보려면 로그인해야 됩니다."
 
-msgid "Use ATI GPU"
-msgstr "ATI GPU 사용"
+msgid "You are not authorized to access this page."
+msgstr "이 페이지로의 접근이 허가되지 않았습니다."
 
-msgid "Use INTEL GPU"
-msgstr "Intel GPU 사용"
+msgid "Disable rich-text"
+msgstr "리치 텍스트 비활성화"
 
-msgid "Beta settings"
-msgstr "베타 설정"
+msgid "Enable rich-text"
+msgstr "리치 텍스트 활성화"
 
-msgid "Run test applications?"
-msgstr "테스트 프로그램을 실행합니까?"
+msgid "Teams"
+msgstr "팀"
 
 msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "이는 프로그램 개발에 도움을 주지만, 해당 컴퓨터에서 실행에 실패할 수도 있습니다"
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "@projec 참여자는 팀을 결성할 수 있습니다. 사용자는 단 하나의 팀에만 속할 수 있습니다. 팀은 언제든지 가입하거나 탈퇴할 수 있습니다. 팀에 가입하려면, 팀 페이지를 방문하고 \"이 팀에 가입\" 버튼을 클릭하세요. 각 팀은 다음 창설자가 있습니다:"
+
+msgid "access team members' email addresses"
+msgstr "팀 멤버가 가진 이메일 주소를 열람"
+
+msgid "edit the team's name and description"
+msgstr "팀 이름과 개요를 수정합니다"
+
+msgid "add or remove team admins"
+msgstr "팀 관리자 추가/삭제"
+
+msgid "remove members from the team"
+msgstr "팀에서 멤버 추방하기"
+
+msgid "disband a team if it has no members"
+msgstr "만약 팀 멤버가 없으면 팀을 해산할 수 있습니다"
+
+msgid "Search teams"
+msgstr "팀 검색"
+
+msgid "Create a new team"
+msgstr "새로운 팀 만들기"
+
+msgid ""
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "만약 여러분에게 맞는 팀을 찾지 못했다면, 팀을 생성할 수 있습니다."
+
+msgid "You must earn 1 more credit!"
+msgstr "반드시 크레딧 1이상 벌어야 됩니다"
+
+msgid "@count million ops/sec"
+msgstr "@count 백만 ops/초"
+
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/초"
+
+msgid "@count days"
+msgstr "@count 일"
+
+msgid "Stderr output"
+msgstr "Stderr 출력 값"
+
+msgid "Email address"
+msgstr "Email 주소"
+
+msgid "Enter your @s email address."
+msgstr "@s 이메일 주소를 입력하세요."
+
+msgid "Log in"
+msgstr "로그인"
+
+msgid "Sorry, unrecognized email address or password."
+msgstr "죄송합니다. 틀린 이메일 주소 혹은 비밀번호입니다."
+
+msgid "Have you forgotten your password?"
+msgstr "비밀번호를 잊어 버렸습니까?"
+
+msgid "No results found..."
+msgstr "결과"
+
+msgid "Anonymous"
+msgstr "익명"
+
+msgid "Forgot password"
+msgstr "비밀번호를 잊어버렸습니까"
+
+msgid "authenticator-based login"
+msgstr "인증 부호로 로그인 하기"
+
+msgid ""
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "비밀번호 재설정 절차 안내문을 받을 이메일 주소를 입력하세요(혹은 !authenticator_login을 사용하세요)."
+
+msgid "Send"
+msgstr "보내기"
+
+msgid "Submitted by !username on !datetime"
+msgstr "!username 이 !datetime 에 제출함"
+
+msgid "Send message"
+msgstr "메세지 전송"
+
+msgid "Add as friend"
+msgstr "친구로 추가"
+
+msgid "Website"
+msgstr "웹 사이트"
+
+msgid "Team"
+msgstr "팀"
+
+msgid "Create new team"
+msgstr "새로운 팀 만들기"
+
+msgid "Search"
+msgstr "검색"
+
+msgid "Total credits"
+msgstr "총 크레딧"
+
+msgid "Recent avg credits"
+msgstr "최근 평균 크레딧"
+
+msgid "Type"
+msgstr "종류"
+
+msgid "New members in last day"
+msgstr "전 날의 새로운 맴버"
+
+msgid "Total members"
+msgstr "전체 맴버"
+
+msgid "Active members"
+msgstr "활동하는 맴버"
+
+msgid "Members with credit"
+msgstr "크레딧을 가진 맴버"
+
+msgid "Web site"
+msgstr "웹 사이트"
+
+msgid "Description"
+msgstr "개요"
+
+msgid "BBcode help"
+msgstr "BB코드 도움말"
+
+msgid "Post comment"
+msgstr "코멘트 쓰기"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "집"
+
+msgid "The latest news from the @site_name project"
+msgstr "@site_name 프로젝트에서 온 최신 뉴스"
+
+msgid "Hide"
+msgstr "숨기기"
+
+msgid "Hide this topic"
+msgstr "이 주제 숨기기"
+
+msgid "Lock"
+msgstr "잠그기"
+
+msgid "Lock this thread for comments"
+msgstr "이 스레드에서 코멘트 쓰기 잠그기"
+
+msgid "Make sticky"
+msgstr "찐득이 붙이기"
+
+msgid "Make this topic sticky"
+msgstr "이 주제에 찐득이 붙이기"
+
+msgid "moderation"
+msgstr "편집"
+
+msgid "Reply"
+msgstr "답변"
+
+msgid "Reply to this comment"
+msgstr "이 코멘트에 답변 달기"
 
-msgid "Default set"
-msgstr "기본 "
+msgid "Quote"
+msgstr "인용구"
 
-msgid "Set used for new computers"
-msgstr "새 컴퓨터 설정"
+msgid "Reply to this comment with quote"
+msgstr "이 코멘트를 인용해 답변 달기"
 
-msgid "Merge"
-msgstr "병합"
+msgid "Edit"
+msgstr "수정"
+
+msgid "Edit this comment"
+msgstr "이 코멘트 수정"
 
 msgid "Delete"
 msgstr "삭제"
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "호스트 @id를 여러분 계정에서 영원히 삭제합니다. 계속해도 괜찮습니까?"
+msgid "Delete this comment"
+msgstr "이 코멘트 삭제"
 
-msgid "Mark all topics read"
-msgstr "모든 주제를 읽음으로 표시"
+msgid "Hide this comment"
+msgstr "이 코멘트 숨기기"
 
-msgid "Mark all forums read"
-msgstr "모든 포럼을 읽음으로 표시"
+msgid "Message @id"
+msgstr "메세지 @id"
 
-msgid ""
-"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
-"administrator if this problem persists."
-msgstr "CAPTCHA 인증 오류: 알 수 없는 CAPTCHA 세션 ID. 이 문제가 지속되면 사이트 관리자에게 연락하세요."
+msgid "Convert"
+msgstr "변환하기"
 
-msgid "The answer you entered for the CAPTCHA was not correct."
-msgstr "입력한 CAPTCHA 답변이 올바르지 않습니다."
+msgid "Convert this comment to a new topic"
+msgstr "이 코멘트를 새 주제로 변환합니다"
 
-msgid "Access denied. You must login to view this page."
-msgstr "접근이 거부되었습니다. 이 페이지를 보려면 로그인해야 됩니다."
+msgid "message @id"
+msgstr "메세지 @id"
 
-msgid "You are not authorized to access this page."
-msgstr "이 페이지로의 접근이 허가되지 않았습니다."
+msgid " in response to !parent"
+msgstr " !parent 의 응답"
 
-msgid "Disable rich-text"
-msgstr "리치 텍스트 비활성화"
+msgid "Post new comment"
+msgstr "새 코멘트 쓰기"
 
-msgid "Enable rich-text"
-msgstr "리치 텍스트 활성화"
+msgid "Comments"
+msgstr "코멘트"
 
-msgid "View user profile."
-msgstr "사용자의 프로필을 봅니다."
+msgid "discuss"
+msgstr "토론하기"
 
-msgid "BBcode help"
-msgstr "BB코드 도움말"
+msgid "n/a"
+msgstr "없음"
 
-msgid "Post comment"
-msgstr "코멘트 쓰기"
+msgid "@time ago"
+msgstr "@time 전"
 
-msgid "No @type tasks"
-msgstr "@type 태스크 없음"
+msgid "Threads"
+msgstr "스레드"
 
-msgid "There are no tasks of this type on record"
-msgstr "레코드상에 이 유형의 태스크가 없습니다"
+msgid "Posts"
+msgstr "포스트"
 
-msgid "Clear"
-msgstr "지우기"
+msgid "Last post"
+msgstr "마지막 포스트"
 
 msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "계속 진행하면 @name 환경설정 세트에서 설정값들이 모두 제거됩니다. 계속하시겠습니까?"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "공격적이거나 무례한 포스트를 작성하지 마시고 여러분이 쓰는 글에 책임을 지세요. 공격적인 포스트나 스레드는 토론이나 경고없이 포럼 관리자가 삭제할 수도 있습니다. 공격적인 포스트에는 응답하지 마십시오. 포스트 하단의 \"신고\" 버튼을 클릭해서 관리자를 호출할 수 있습니다."
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "이 값들은 여러분이 참여하는 모든 BOINC 프로젝트에 적용됩니다."
+msgid "this project"
+msgstr "이 프로젝트"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "여러 프로젝트에 연결된 컴퓨터는 가장 최근에 수정된 환경설정을 사용하게 될 것입니다."
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "우리는 기초적인 과학에 관련된, 어떠한 것이라도 자유롭게 토론하는 과학 메세지 게시판을 제외하고 @project나 BOINC와 연관된 메세지 게시판 상의 모든 토론을 보존하길 요청합니다. 광범위 토론에 흥미를 가진 참여자들은 @project용 비공식 포럼에 포스팅을 할 수 있습니다."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "마지막으로 환경설정이 수정된 시간: @mod_time"
+msgid "These message boards now support BBCode tags only."
+msgstr "이 메세지 게시판은 이제 BB코드 태그만 지원합니다."
 
-msgid "Combined preferences"
-msgstr "통합 환경 설정"
+msgid "Featured"
+msgstr "특집"
 
-msgid "Switch View"
-msgstr "보기 전환"
+msgid "Locked"
+msgstr "잠김"
 
-msgid "every"
-msgstr "매"
+msgid "Submitted on !datetime"
+msgstr "!datetime 에 제출됨"
 
-msgid "Edit"
-msgstr "수정"
+msgid "Computers pending"
+msgstr "보류된 컴퓨터"
 
 msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "계속하면 \"@name\" 로부터 모든 환경 설정값들을 제거하게 됩니다. 계속하시겠습니까?"
-
-msgid "Add"
-msgstr "추가"
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "이 사용자는 아직 연동된 컴퓨터가 없습니다. 컴퓨터는 첫 크레딧을 번 이후에 표시됩니다."
 
-msgid "General settings"
-msgstr "일반 설정"
+msgid "Show IP address"
+msgstr "IP 주소 보이기"
 
-msgid "Time zone"
-msgstr "시간대"
+msgid "Download the desktop software"
+msgstr "데스크탑 소프트웨어를 다운로드하세요"
 
-msgid "Notification settings"
-msgstr "알림 설정"
+msgid "Run the installer"
+msgstr "설치 프로그램 실행"
 
-msgid "Receive email notification for private messages?"
-msgstr "쪽지 수신시 이메일 알림을 받겠습니까?"
+msgid "hours"
+msgstr "시간"
 
-msgid "Receive email notification for friend requests?"
-msgstr "친구 요청시 이메일 알림을 받겠습니까?"
+msgid "When prompted enter @siteurl"
+msgstr "명령창이 뜨면 @siteurl을 입력하세요"
 
-msgid "Language settings"
-msgstr "언어 설정"
+msgid "Merge"
+msgstr "병합"
 
 msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "이메일 및 사이트 전반에 적용되는 이 계정의 기본 언어."
-
-msgid "Avatar settings"
-msgstr "아바타 설정"
-
-msgid "Create a profile"
-msgstr "프로필 만들기"
-
-msgid "Upload an avatar"
-msgstr "아바타 업로드"
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "호스트 @id를 여러분 계정에서 영원히 삭제합니다. 계속해도 괜찮습니까?"
 
-msgid "Forum settings"
-msgstr "포럼 설정"
+msgid "Post topic"
+msgstr "새 주제 포스트하기"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "토론 주제에서는 최대 @comments_per_page 를 보여줍니다"
+msgid "Leave team"
+msgstr "팀 탈퇴"
 
-msgid "comments per page"
-msgstr "페이지당 코멘트 수"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "@this_team에서 탈퇴하길 원하시면 여기를 클릭하세요"
 
-msgid "Sort comments in discussions"
-msgstr "토론 속 코멘트 정렬"
+msgid "Leave this team"
+msgstr "이 팀 탈퇴"
 
-msgid "Newest post first"
-msgstr "최신 포스트 순"
+msgid "Request foundership"
+msgstr "창설자 요청하기"
 
-msgid "Oldest post first"
-msgstr "오래된 포스트 순"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "팀 창설자가 미활동중이고 창설자 직을 맡길 원한다면, 하단의 @this_team 창설자 요청을 클릭하세요."
 
-msgid "Signature"
-msgstr "서명"
+msgid "Initiate request"
+msgstr "요청 보내기"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "작성한 서명은 여러분이 쓴 코멘트 하단에 공개되며 표시됩니다."
+msgid "No active computers"
+msgstr "활동 중인 컴퓨터 없음"
 
-msgid "Hide signatures in forums"
-msgstr "포럼에서 서명 숨기기"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "이 사용자는 최근 30일이내에 활동 중인 컴퓨터가 없습니다."
 
-msgid "Privacy settings"
-msgstr "개인정보 설정"
+msgid "Clear"
+msgstr "지우기"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "@project와 소속 팀(전부)에서 이메일을 받길 원하십니까?"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "계속 진행하면 @name 환경설정 세트에서 설정값들이 모두 제거됩니다. 계속하시겠습니까?"
 
-msgid "Hide"
-msgstr "숨기기"
+msgid "Your community preferences have been updated."
+msgstr "커뮤니티 환경설정이 업데이트되었습니다."
 
-msgid "Hide this topic"
-msgstr "이 주제 숨기기"
+msgid "Combined preferences"
+msgstr "통합 환경 설정"
 
-msgid "Lock"
-msgstr "잠그기"
+msgid "Switch View"
+msgstr "보기 전환"
 
-msgid "Lock this thread for comments"
-msgstr "이 스레드에서 코멘트 쓰기 잠그기"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "계속하면 \"@name\" 로부터 모든 환경 설정값들을 제거하게 됩니다. 계속하시겠습니까?"
 
-msgid "Make sticky"
-msgstr "찐득이 붙이기"
+msgid "Approve profile"
+msgstr "프로필 승인"
 
-msgid "Make this topic sticky"
-msgstr "이 주제에 찐득이 붙이기"
+msgid "Approve this profile content"
+msgstr "이 프로필 내용 승인"
 
-msgid "moderation"
-msgstr "편집"
+msgid "Reject this profile content"
+msgstr "이 프로필 내용 거부"
 
-msgid "Post new comment"
-msgstr "새 코멘트 쓰기"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "이 값들은 여러분이 참여하는 모든 BOINC 프로젝트에 적용됩니다."
 
-msgid "You must earn 1 more credit!"
-msgstr "반드시 크레딧 1이상 벌어야 됩니다"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "여러 프로젝트에 연결된 컴퓨터는 가장 최근에 수정된 환경설정을 사용하게 될 것입니다."
 
-msgid "Joined"
-msgstr "가입됨"
+msgid "Preferences last modified: @mod_time"
+msgstr "마지막으로 환경설정이 수정된 시간: @mod_time"
 
-msgid "Credit"
-msgstr "크레딧"
+msgid "every"
+msgstr "매"
 
-msgid "RAC"
-msgstr "RAC"
+msgid "Add"
+msgstr "추가"
 
-msgid "Join team"
-msgstr "팀 가입"
+msgid "My team"
+msgstr "내 팀"
 
-msgid "Click here to become a member of @this_team"
-msgstr "@this_team에 회원으로 가입하려면 여기를 클릭하세요"
+msgid "You are a member of @team."
+msgstr "@team의 회원입니다."
 
-msgid "Join this team"
-msgstr "이 팀에 가입"
+msgid "View my team"
+msgstr "내 팀 보기"
 
 msgid "Manage team"
 msgstr "팀 관리"
@@ -1067,98 +1279,14 @@ msgstr "팀 회원 전용 토론 포럼이 설정되었습니다."
 msgid "Enter forum"
 msgstr "포럼 "
 
-msgid "Leave team"
-msgstr "팀 탈퇴"
-
-msgid "Leave this team"
-msgstr "이 팀 탈퇴"
-
-msgid "Edit message board"
-msgstr "게시판 "
-
-msgid "Message board title"
-msgstr "메세지 게시판 "
-
-msgid "Text only, no HTML tags"
-msgstr "텍스트 전용, HTML 태그 미허용"
-
-msgid "Minimum time between posts"
-msgstr "포스트 사이의 최소 시간 간격"
-
-msgid "Seconds"
-msgstr "초"
-
-msgid "Minimum total credit to post"
-msgstr "포스팅에 필요한 최소 전체 크레딧"
-
-msgid "Allow public to read board?"
-msgstr "게시판에서 누구나 읽을 수 있게 할까요?"
-
-msgid "Save message board"
-msgstr "메세지 게시판에 저장"
-
-msgid "About message boards"
-msgstr "메세지 게시판 정보"
-
-msgid "This is a team-only message board"
-msgstr "이 게시판은 팀 전용 메세지 게시판입니다"
-
-msgid "Only members may post"
-msgstr "회원만 포스트할 수 있게 합니다"
-
-msgid "Only members may read (optional)"
-msgstr "회원만 읽을 수 있게 합니다(선택 사항)"
-
-msgid "Changing the team founder"
-msgstr "팀 창설자 변경하기"
-
-msgid "Any member of the team is eligible"
-msgstr "팀 회원 누구나 자격이 있습니다"
-
-msgid "Current founder becomes a normal user"
-msgstr "현재 창설자는 일반 사용자가 됩니다"
-
-msgid "It must be 60 days since any previous request"
-msgstr "이전 요청으로부터 60일이 지나야 됩니다"
-
-msgid "Add team admin"
-msgstr "팀 관리자 추가"
-
-msgid "Enter email address"
-msgstr "이메일 주소를 입력하세요"
-
-msgid "Current team admins"
-msgstr "현재 팀 관리자들"
-
-msgid "About team admins"
-msgstr "팀 관리자 정보"
-
-msgid "Team admins can:"
-msgstr "팀 관리자가 가능한 것:"
-
-msgid "Edit team information"
-msgstr "팀 정보 수정하기"
-
-msgid "View the team's join / quit history"
-msgstr "팀 가입 / 탈퇴 이력 보기"
-
-msgid "Moderate the team forum"
-msgstr "팀 포럼 관리하기"
-
-msgid "Remove members from the team"
-msgstr "팀에서 멤버 추방하기"
-
-msgid "Disband a team if it has no members"
-msgstr "팀 멤버가 없을 경우 팀을 해산할 수 있습니다"
-
-msgid "Team admins cannot:"
-msgstr "팀 관리자가 불가능한 것:"
+msgid "Join team"
+msgstr "팀 가입"
 
-msgid "Change the team founder"
-msgstr "팀 창설자 변경"
+msgid "Click here to become a member of @this_team"
+msgstr "@this_team에 회원으로 가입하려면 여기를 클릭하세요"
 
-msgid "Add / Remove team admins"
-msgstr "팀 관리자 추가 / 삭제"
+msgid "Join this team"
+msgstr "이 팀에 가입"
 
 msgid "Choose type"
 msgstr "종류를 선택하세요"
@@ -1166,6 +1294,9 @@ msgstr "종류를 선택하세요"
 msgid "Team name"
 msgstr "팀 이름"
 
+msgid "Text only, no HTML tags"
+msgstr "텍스트 전용, HTML 태그 미허용"
+
 msgid "Team name -- HTML version (optional)"
 msgstr "팀 이름 -- HTML 버전 (선택 사항)"
 
@@ -1187,333 +1318,435 @@ msgstr "회원 가입을 허가할까요?"
 msgid "Description of team"
 msgstr "팀 개요"
 
-msgid "Create new team"
-msgstr "새로운 팀 만들기"
-
 msgid "Create a team"
 msgstr "팀 만들기"
 
 msgid "Save team"
 msgstr "팀 저장"
 
-msgid "Create team message board"
-msgstr "팀 메세지 게시판 생성하기"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "이미 BOINC를 실행하고 있다면, <i>프로젝트\n      추가</i>를 선택하세요."
 
-msgid "Create message board"
-msgstr "게시판 생성"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "만약 커맨드라인 버전 BOINC를 실행하고 있다면,\n        "
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "이 메세지 게시판에 글을 쓰기 위해서 사용자에게 요구할 최소 평균 크레딧을 설정하세요."
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "만약 BOINC 5.0이전 버전을 실행하고 있는데,\n        이 프로젝트에 계정을 생성하고자 한다면 보다 최신 버전으로\n        업그레이드하세요."
+
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "만약 해당 계정의 이메일 주소를 잊었거나, 이메일을 받을 수 없는 경우:"
+
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "해당 계정으로 BOINC를 실행하고 있다면 계속 접근할 수 있습니다. 방법:"
+
+msgid "BOINC documentation"
+msgstr "BOINC 문서"
+
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "컴퓨터 상의 BOINC 데이터 디렉토리로 이동하세요(해당 항목을 찾는데 도움이 필요하면 !boinc_wiki 를 보세요)."
+
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "이 프로젝트용 계정 파일을 찾으세요. %file 이름을 가지고 있을 것입니다(프로젝트 URL은 %url입니다)."
+
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "메모장같은 텍스트 편집기로 파일을 여세요. 다음 내용을 볼 수 있습니다:"
+
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "<authenticator> 과 </authenticator> 사이에 있는 문자열을 선택하고 복사하세요(상단에 있는 %auth는 예제입니다)."
+
+msgid "Paste the string into the field below, and click OK."
+msgstr "하단의 입력란에 문자열을 붙여넣고 확인을 누르세요."
+
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "여러분의 계정으로 로그인할 것입니다. 계정의 메일 주소와 비밀번호를 업데이트하세요."
+
+msgid "Log in with authenticator"
+msgstr "인증 부호로 로그인 하기"
+
+msgid "OK"
+msgstr "확인"
 
 msgid "Post new topic"
 msgstr "새 주제를 포스트하기"
 
-msgid "Anonymous"
-msgstr "익명"
+msgid "Create team message board"
+msgstr "팀 메세지 게시판 생성하기"
 
-msgid "Unpublished"
-msgstr "미공개됨"
+msgid "Message board title"
+msgstr "메세지 게시판 "
 
-msgid "Sorry, unrecognized email address or password."
-msgstr "죄송합니다. 틀린 이메일 주소 혹은 비밀번호입니다."
+msgid "Minimum time between posts"
+msgstr "포스트 사이의 최소 시간 간격"
 
-msgid "Have you forgotten your password?"
-msgstr "비밀번호를 잊어 버렸습니까?"
+msgid "Seconds"
+msgstr "초"
 
-msgid "Id"
-msgstr "Id"
+msgid "Minimum total credit to post"
+msgstr "포스팅에 필요한 최소 전체 크레딧"
 
-msgid "Recent average credit"
-msgstr "최근 평균 크레딧"
+msgid "Minimum avg credit to post"
+msgstr "포스팅에 필요한 최소 평균 크레딧"
 
-msgid "Members"
-msgstr "맴버"
+msgid "Allow public to read board?"
+msgstr "게시판에서 누구나 읽을 수 있게 할까요?"
 
-msgid "Total Credit"
-msgstr "총 크레딧"
+msgid "Create message board"
+msgstr "게시판 생성"
 
-msgid "User ID"
-msgstr "사용자 ID"
+msgid "About message boards"
+msgstr "메세지 게시판 정보"
 
-msgid "User"
-msgstr "사용자"
+msgid "You may create a message board for use by @team"
+msgstr "@team에서 사용할 메세지 게시판을 만들 수 있습니다"
 
-msgid "Admin since"
-msgstr "관리자 시작 시간:"
+msgid "Only members may post"
+msgstr "회원만 포스트할 수 있게 합니다"
 
-msgid "Team ID"
-msgstr "팀 ID"
+msgid "Only members may read (optional)"
+msgstr "회원만 읽을 수 있게 합니다(선택 사항)"
 
-msgid "User joined"
-msgstr "사용자가 가입함"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "창설자 & 팀 관리자는 관리자 권한을 가집니다"
 
-msgid "Timestamp"
-msgstr "타임스탬프"
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (최근 @count 시간동안 동일)"
 
-msgid "Account Key"
-msgstr "계정 키"
+msgid "Revise or post comment"
+msgstr "코멘트 쓰기 혹은 수정"
 
-msgid "CPID"
-msgstr "CPID"
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "때때로 BOINC는 실수로 같은 컴퓨터를 개별적인 존재로 인정합니다. 여러분은 오래된 것을 새로운 것으로 통합시켜서 바로잡을 수 있습니다."
 
-msgid "Email Address"
-msgstr "Email 주소"
+msgid ""
+"Check the computers that are the same as @name (created on @date at @time "
+"with computer ID @id)"
+msgstr "@name과 동일한 컴퓨터인지 체크하세요 (컴퓨터 ID @id 생성시각: @date @time)"
 
-msgid "Password Hash"
-msgstr "비밀번호 해시"
+msgid "Computer @old_id has been merged successfully into @id."
+msgstr "@old_id가 성공적으로 @id에 병합되었습니다."
 
-msgid "Postal Code"
-msgstr "우편 번호"
+msgid "parent removed"
+msgstr "영구적으로 삭제됨"
 
-msgid "Send Email"
-msgstr "이메일 보내기"
+msgid "Remove"
+msgstr "제거"
 
-msgid "Show Hosts"
-msgstr "호스트 보여주기"
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
+msgstr "이메일 주소를 변경하거나 새로운 비밀번호를 설정할 때는 인증이 필요합니다."
 
-msgid "URL"
-msgstr "URL"
+msgid "Make unsticky"
+msgstr "찐득이 떼기"
 
-msgid "Computer ID"
-msgstr "컴퓨터 ID"
+msgid "Remove sticky status from this topic"
+msgstr "이 주제에서 찐득이 상태 제거"
+
+msgid "Unhide"
+msgstr "숨김 해제"
+
+msgid "Unhide this comment"
+msgstr "이 코멘트 숨기기"
+
+msgid "Unpublished"
+msgstr "미공개됨"
 
-msgid "Location"
-msgstr "위치"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "@old_id가 성공적으로 @id에 병합되었습니다."
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "BOINC가 실행되는 동안 허가된 작업의 시간(%)"
+msgid "Joined"
+msgstr "가입됨"
 
-msgid "Average turnaround time"
-msgstr "평균 반환 시간"
+msgid "Credit"
+msgstr "크레딧"
 
-msgid "Created"
-msgstr "생성 시각"
+msgid "RAC"
+msgstr "RAC"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "BOINC가 실행되는 동안, 호스트가 인터넷에 연결된 시간(%)"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "@email로 된 계정이 존재하지 않습니다 -- 등록하려면 \"새 계정 만들기\"를 선택하세요."
 
-msgid "Average CPU efficiency"
-msgstr "평균 CPU 효율"
+msgid "started discussion"
+msgstr "토론이 시작되었습니다"
 
-msgid "Free disk space"
-msgstr "사용 가능한 공간"
+msgid "commented on"
+msgstr "코멘트함"
 
-msgid "Total disk space"
-msgstr "전체 디스크 용량"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "입력한 비밀번호가 유효하지 않습니다. 비밀번호가 정확한지 확인해 주세요."
 
-msgid "Task duration correction factor"
-msgstr "태스크 지연 보정값"
+msgid "Minimum value not met for @field"
+msgstr "@field 최소값을 채우지 못했습니다"
 
-msgid "Avg. credit"
-msgstr "평균 크레딧"
+msgid "Invalid data type for @field"
+msgstr "유효하지 않은 데이터 종류 @field"
 
-msgid "External IP address"
-msgstr "외부 IP 주소"
+msgid "News"
+msgstr "뉴스"
 
-msgid "Cross project ID"
-msgstr "공유-프로젝트 ID"
+msgid "Remove friend"
+msgstr "친구 제거"
 
-msgid "Last IP address"
-msgstr "마지막 IP 주소"
+msgid "ignore list"
+msgstr "무시 목록"
 
-msgid "Cache"
-msgstr "캐시"
+msgid "here"
+msgstr "여기"
 
-msgid "Memory"
-msgstr "메모리"
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username는(은) !ignore_list에 있습니다. 이 포스트를 보려면 !here를 클릭하세요."
 
-msgid "Swap space"
-msgstr "스왑 영역"
+msgid "hidden"
+msgstr "숨김"
 
-msgid "Average download rate"
-msgstr "평균 다운로드 속도"
+msgid "Unknown"
+msgstr "불명"
 
-msgid "Average upload rate"
-msgstr "평균 업로드 속"
+msgid "Invalid setting for \"%preference\""
+msgstr "유효하지 않은 설정값 \"%preference\""
 
-msgid "Same IP address count"
-msgstr "동일 IP 주소 카운트"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: \"!topic_name\"에 코멘트 포스트하기"
 
-msgid "% of time BOINC client is running"
-msgstr "BOINC 클라이언트가 동작한 시간(%)"
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "\"!topic_name\"에 !author가 답변을 달았습니다."
 
-msgid "Operating system"
-msgstr "운영체제(OS)"
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "!site에서 이 주제를 보려면 여기를 클릭: \n!comment_url"
 
-msgid "Operating system version"
-msgstr "운영 체제 버전"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "현재 창설자는 @count 일 안에 전달받은 요청에 응답해야 합니다."
 
-msgid "Measured floating point speed"
-msgstr "부동소수점 연산 속도"
+msgid "Unlock"
+msgstr "잠금 해제"
 
-msgid "Measured integer speed"
-msgstr "정수 연산 속도"
+msgid "Unlock this thread for comments"
+msgstr "이 스레드에서 코멘트 쓰기 잠금 해제"
 
-msgid "CPU model"
-msgstr "CPU 종류"
+msgid "project"
+msgstr "프로젝트"
 
-msgid "Number of processors"
-msgstr "프로세서 수"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email 은 올바른 이메일 주소가 아닙니다. 다시 확인해주세요"
 
-msgid "CPU"
-msgstr "CPU"
+msgid "Please enter your email address"
+msgstr " 주소를 입력해 주세요."
 
-msgid "Number of times client has contacted server"
-msgstr "클라이언트가 서버와 통신한 횟수"
+msgid "There is no account with that authenticator."
+msgstr "해당 인식 부호를 가진 계정이 없습니다."
 
-msgid "Last contact"
-msgstr "마지막 통신"
+msgid "That authenticator is not valid."
+msgstr "이 인증 부호는 유효하지 않습니다. "
 
-msgid "Serial number"
-msgstr "시리얼 번호"
+msgid "Send request"
+msgstr "요청 보내기"
 
-msgid "Timezone"
-msgstr "시간대"
+msgid "Friend request from !name [!site]"
+msgstr "!name 이 친구 요청을 했습니다. [!site]"
 
-msgid "Platform ID"
-msgstr "플랫폼 ID"
+msgid "Message"
+msgstr "메시지"
 
-msgid "Task ID"
-msgstr "태스크 ID"
+msgid ""
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!site에서 !name이 당신을 친구로 추가했습니다. 이 요청을 승인하거나 거부할 수 있습니다. 요청을 거절해도 통지가 전송되지는 않으나, 해당 요청 또한 이 계정에서 삭제될 것입니다.\n\n이 요청을 보려면 아래 링크를 따라가세요:\n!link\n\n!message\n\n감사합니다.\nThe !site 팀"
+
+msgid "Cancel friend request"
+msgstr "친구 요청 취소"
+
+msgid "Please set the minimum time required between posts."
+msgstr "포스트와 포스트 사이의 최소 시간 간격을 설정하세요."
 
-msgid "Workunit ID"
-msgstr "작업 유닛 ID"
+msgid ""
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "이 메세지 게시판에 글을 쓰기 위해서 사용자가 벌어야 할 최소 전체 크레딧을 설정하세요."
 
-msgid "Host ID"
-msgstr "호스트 ID"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "이 메세지 게시판에 글을 쓰기 위해서 사용자에게 요구할 최소 평균 크레딧을 설정하세요."
 
-msgid "Application ID"
-msgstr "응용 프로그램 ID"
+msgid "Edit message board"
+msgstr "게시판 "
 
-msgid "Application version"
-msgstr "응용 프로그램 버전"
+msgid "Save message board"
+msgstr "메세지 게시판에 저장"
 
-msgid "Claimed credit"
-msgstr "요청된 크레딧"
+msgid "This is a team-only message board"
+msgstr "이 게시판은 팀 전용 메세지 게시판입니다"
 
-msgid "Client state"
-msgstr "클라이언트 상태"
+msgid "Maximum value exceeded for @field"
+msgstr "@field 최대값에 도달했습니다"
 
-msgid "CPU time"
-msgstr "CPU 시간"
+msgid "Approve request"
+msgstr " 승인"
 
-msgid "Run time"
-msgstr "실행 시간"
+msgid "!name accepted your friend request [!site]"
+msgstr "!name이 친구 요청을 수락했습니다. [!site]"
 
-msgid "Exit status"
-msgstr "마감 결과"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!site에서 !name이 당신을 친구로 인정했습니다.\n\n해당 사용자 프로필을 보려면 아래 링크를 따라가세요:\n!link\n\n!message\n\n감사합니다.\nThe !site 팀"
 
-msgid "Granted credit"
-msgstr "획득 크레딧"
+msgid "posted"
+msgstr "작성됨"
 
-msgid "Outcome"
-msgstr "결과"
+msgid "Add team admin"
+msgstr "팀 관리자 추가"
 
-msgid "Report deadline"
-msgstr "리포트 마감 시각"
+msgid "Enter email address"
+msgstr "이메일 주소를 입력하세요"
 
-msgid "Sent"
-msgstr "전송 시각"
+msgid "Current team admins"
+msgstr "현재 팀 관리자들"
 
-msgid "Server state"
-msgstr "서버 상태"
+msgid "About team admins"
+msgstr "팀 관리자 정보"
 
-msgid "Stderr out"
-msgstr "Stderr out"
+msgid "Team admins can:"
+msgstr "팀 관리자가 가능한 것:"
 
-msgid "Validation state"
-msgstr "인증 현황"
+msgid "Edit team information"
+msgstr "팀 정보 수정하기"
 
-msgid "Canonical credit"
-msgstr "인증된 결과"
+msgid "View the team's join / quit history"
+msgstr "팀 가입 / 탈퇴 이력 보기"
 
-msgid "Canonical result ID"
-msgstr "인정받은 결과 ID"
+msgid "Moderate the team forum"
+msgstr "팀 포럼 관리하기"
 
-msgid "Created time"
-msgstr "생성 시각"
+msgid "Remove members from the team"
+msgstr "팀에서 멤버 추방하기"
 
-msgid "Needs validation"
-msgstr "인증이 필요합니다"
+msgid "Disband a team if it has no members"
+msgstr "팀 멤버가 없을 경우 팀을 해산할 수 있습니다"
 
-msgid "Initial replication"
-msgstr "초기 복제물"
+msgid "Team admins cannot:"
+msgstr "팀 관리자가 불가능한 것:"
 
-msgid "Computer"
-msgstr "컴퓨터"
+msgid "Change the team founder"
+msgstr "팀 창설자 변경"
 
-msgid "Consecutive valid tasks"
-msgstr "연속적으로 유효한 태스크"
+msgid "Add / Remove team admins"
+msgstr "팀 관리자 추가 / 삭제"
 
-msgid "Number of tasks completed"
-msgstr "완료된 태스크 수"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "만약 팀 관리자가 팀을 나가면, 팀 관리자가 직책이 사라지게 됩니다. 잘 알고 믿을 수 있는 사람만 선택하길 추천합니다."
 
-msgid "Max tasks per day"
-msgstr "하루 태스크 최대량"
+msgid "Lift user ban"
+msgstr "사용자 차단 해제"
 
-msgid "Number of tasks today"
-msgstr "오늘의 태스크 수"
+msgid "A team named \"@name\" already exists."
+msgstr "\"@name\"로 된 팀 이름이 이미 존재합니다."
 
-msgid "Show IP address"
-msgstr "IP 주소 보이기"
+msgid "A BOINC account already exists for @email."
+msgstr "@email 를 사용한 BOINC 계정이 이미 있습니다."
 
-msgid "hours"
-msgstr "시간"
+msgid "Make founder"
+msgstr "창설자 지정"
 
-msgid "Remove friend"
-msgstr "친구 제거"
+msgid "Changing the team founder"
+msgstr "팀 창설자 변경하기"
 
-msgid "Ban user"
-msgstr "사용자 추방"
+msgid "Notes about changes in foundership:"
+msgstr "창설자 변경에 대한 설명:"
 
-msgid "Add as friend"
-msgstr "친구로 추가"
+msgid "Any member of the team is eligible"
+msgstr "팀 회원 누구나 자격이 있습니다"
 
-msgid "Team"
-msgstr "팀"
+msgid "Current founder becomes a normal user"
+msgstr "현재 창설자는 일반 사용자가 됩니다"
 
-msgid "Reply"
-msgstr "답변"
+msgid "Foundership can be requested by team members:"
+msgstr "팀 회원에게서 요청받은 창설자 후보:"
 
-msgid "Reply to this comment"
-msgstr "이 코멘트에 답변 달기"
+msgid "One request is allowed at a time"
+msgstr "한 번에 하나의 요청만 허용됩니다"
 
-msgid "Quote"
-msgstr "인용구"
+msgid "It must be 60 days since any previous request"
+msgstr "이전 요청으로부터 60일이 지나야 됩니다"
 
-msgid "Reply to this comment with quote"
-msgstr "이 코멘트를 인용해 답변 달기"
+msgid "Any active request must be older than 90 days"
+msgstr "활성화된 요청은 90일 이상 지나야 됩니다"
 
-msgid "Edit this comment"
-msgstr "이 코멘트 수정"
+msgid "Current founder has 60 days to respond to a request"
+msgstr "현재 창설자는 요청 후 60일 안에 답해야 합니다"
 
-msgid "Delete this comment"
-msgstr "이 코멘트 삭제"
+msgid "BOINC-wide teams site"
+msgstr "BOINC 전역 팀 사이트"
 
-msgid "Hide this comment"
-msgstr "이 코멘트 숨기기"
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "이 항목은 BOINC 전역 팀입니다. !site 에서 변경할 수 있습니다."
 
-msgid "Convert"
-msgstr "변환하기"
+msgid ""
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "이미 최근에 창설자 교체가 요청되었습니다. 90일동안에는 오직 하나의 요청만이 허용됩니다."
 
-msgid "Convert this comment to a new topic"
-msgstr "이 코멘트를 새 주제로 변환합니다"
+msgid "@count days remaining"
+msgstr "@count 일 남음"
 
-msgid "Details"
-msgstr "자세히"
+msgid "Team name is required."
+msgstr "팀 이름이 필요합니다."
 
-msgid "Make unsticky"
-msgstr "찐득이 떼기"
+msgid "Reason for banning this user"
+msgstr "이 사용자의 차단 사유"
 
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "때때로 BOINC는 실수로 같은 컴퓨터를 개별적인 존재로 인정합니다. 여러분은 오래된 것을 새로운 것으로 통합시켜서 바로잡을 수 있습니다."
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "사용자에게 차단 사유가 포함되어서 이메일로 전송됩니다. 왜 사용자가 차단되었는지 믿을 만한 설명을 적어주세요."
 
-msgid "Remove"
-msgstr "제거"
+msgid "Duration of the ban"
+msgstr "차단 기간"
 
-msgid "hidden"
-msgstr "숨김"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "차단 일수를 선택하세요. 0으로 설정하면 영구적으로 차단됩니다."
+
+msgid "Submit"
+msgstr "제출"
diff --git a/locale/ko/BOINC-Manager.mo b/locale/ko/BOINC-Manager.mo
index 5fe8900..c787c1c 100644
Binary files a/locale/ko/BOINC-Manager.mo and b/locale/ko/BOINC-Manager.mo differ
diff --git a/locale/ko/BOINC-Manager.po b/locale/ko/BOINC-Manager.po
index 71fa4bb..a9bf885 100644
--- a/locale/ko/BOINC-Manager.po
+++ b/locale/ko/BOINC-Manager.po
@@ -1,15 +1,16 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Jihyuk Lee <ysjbserver at naver.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-03-03 14:24+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-17 23:54+0000\n"
 "Last-Translator: Kangsan Lee <treppolse at gmail.com>\n"
 "Language-Team: Korean (http://www.transifex.com/boinc/boinc/language/ko/)\n"
 "MIME-Version: 1.0\n"
@@ -17,46 +18,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "%s에서 계정을 확인합니다"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "계정 정보를 입력해주세요\n(계정을 만드시려면, 프로젝트 웹 사이트를 방문해 주세요)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "이 프로젝트는 현재 새로운 계정을 만들 수 없습니다.\n이미 계정을 갖고 계신 경우에 한해서 추가할 수 있습니다."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "이미 이 프로젝트를 수행하고 계십니까?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "아니오, 새로운 사용자입니다"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "예, 기존 사용자 입니다"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -66,85 +59,85 @@ msgid ""
 "password fields."
 msgstr "자동적으로 사용자 계정 정보를 설정할려고 했으나\n실패했습니다.\n\n'로그인 정보 찾기' 링크를 클릭하십시오\n그 후에 찾고자 하는 계정의 email 주소와 비밀번호 칸을\n채우신 후에 찾으십시오."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "로그인 정보 찾기"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "비밀번호:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "비밀번호를 입력하세요:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "비밀번호 확인:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "여러분은 이미 %s를(을) 실행하고 있습니까?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "사용자 이름:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&Email 주소 혹은 LDAP ID:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Email 주소:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "최소 %d 이상"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "비밀번호를 잊어버렸습니까?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "아직 해당 계정 관리자에 등록하시지 않으셨다면 진행하기\n전에 등록해 주십시오. 아래 링크를 클릭해서 등록하시거나\n혹은 잊어버린 비밀번호를 다시 받으십시오."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "계정 관리자 웹 사이트"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "프로젝트 추가"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "계정 관리자 업데이트"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "계정 관리자 사용"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "사용자 이름을 입력해 주세요."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "email 주소를 입력해 주세요."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "최소한 %d 글자로 된 비밀번호를 입력해 주세요."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "처음 비밀번호와 재입력한 비밀번호가 일치하지 않습니다. 다시 입력해주세요."
@@ -197,11 +190,11 @@ msgstr "잠시 기다려 주세요..."
 msgid "An internal server error has occurred.\n"
 msgstr "내부 서버 오류가 발생했습니다.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "접속됨"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "접속해제됨"
 
@@ -216,8 +209,8 @@ msgid "Open another %s window"
 msgstr "다른 %s 창 열기"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "컴퓨터 선택(&S)..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "컴퓨터 선택...\tCtrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -527,7 +520,7 @@ msgstr "%s 웹 사이트(&W)"
 msgid "Show information about BOINC and %s"
 msgstr "BOINC와 %s에 대한 정보 보여주기"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -562,12 +555,12 @@ msgstr "도구(&T)"
 msgid "&Help"
 msgstr "도움말(&H)"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - %s 사용 중지"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -577,39 +570,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "%s 사용을 중지하면,\n현재 수행 중인 프로젝트는 유지되지만,\n해당 프로젝트를 직접 제어해야 합니다.\n\n정말로 %s 사용을 중지하겠습니까?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - 현재 클라이언트 종료..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s에 현재 연결된 클라이언트는 종료될 것이며,\n또다른 호스트로 연결해서 명령을 내릴 수 있습니다."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s는 성공적으로 %s에 추가되었습니다"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "%s에 접속 중"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "%s (%s)에 접속됨"
@@ -658,7 +651,7 @@ msgid "%s - Communication"
 msgstr "%s - 통신 중"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "취소"
@@ -733,7 +726,7 @@ msgid ""
 msgstr "%s는 현재 %s 클라이언트에 연결되어 있지 않습니다.\n'고급\\컴퓨터 선택...'메뉴 옵션을 이용해서 %s 클라이언트로 연결하십시오.\n로컬 컴퓨터로 연결되면 호스트 이름을 'localhost'로 바꿔주십시오."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "프로젝트 웹 페이지"
 
@@ -793,7 +786,7 @@ msgstr "%s가 성공적으로 인터넷 연결을 종료했습니다."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s가 인터넷 연결 종료에 실패했습니다."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -806,170 +799,170 @@ msgid ""
 "     user group."
 msgstr "현재 클라이언트 관리 권한이 부여되지 않았습니다.\n\n해당 사용자가 %s를 실행하는 법:\n  - 비 관리자 사용자에게 권한 부여 옵션에 \"네\"라고 대답한 후\n    %s를 다시 설치하십시요\n 또는\n  - 관리자에게 문의해서 여러분을 'boinc_master' 사용자 그룹에\n    추가하십시오."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "%s 소유권이나 권한이 적절히 설정되지 않았습니다. %s를 재설치해주세요.\n(오류 code %d)"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " 의"
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "BOINC를 정상적으로 실행하려면 재부팅이 필요합니다.\n컴퓨터를 다시 시작하고 재시도해 주세요."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC 관리자"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC 관리자를 운영 체제에서 자동적으로 시작시켰습니다"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "BOINC는 시스템 트레이 상태로 시작됨"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "실행 가능한 BOINC 클라이언트를 포함한 디렉토리"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "BOINC 데이터 디렉토리"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "호스트 이름 혹은 IP 주소"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "GUI RPC 포트 번호"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "비밀번호"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "BOINC는 해당 인수를 가지고 시작됨"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "BOINC 보안 사용자 및 권한 비활성화"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "스킨 관리자 오류 메세지 활성화를 위해 스킨 디버깅 모드 설정"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "BOINC 관리자 다중 실행이 허용됨"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "사용되지 않음: XCode 4.2 버그 회피책"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "데몬을 실행하지 않음"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(자동 감지)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(알 수 없음)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(사용자 지정)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "%s 웹 열기..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "%s 열기..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "꾸벅꾸벅 졸기"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "GPU 사용 중지"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "종료(&X)"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "다시 시작"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "GPU 다시 사용"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "연산이 활성화됩니다"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "연산이 일시 정지됨 - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU 연산이 활성화됩니다"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU 연산이 일시 정지됨 - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "네트워크 사용 가능"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "네트워크가 일시 정지됨 - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "클라이언트에 재연결."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "클라이언트에 연결되지 않았습니다."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s 공지 사항"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "새 공지 사항이 있습니다 - 보려면 클릭하세요."
 
@@ -1084,46 +1077,6 @@ msgstr "더 자세한 정보를 원하면 "
 msgid "&OK"
 msgstr "확인"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "유효하지 않은 숫자"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "유효하지 않은 시간. 해당 값은 0:00과 24:00사이이며 시간:분 형식이어야 합니다"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "시작 시간은 반드시 종료 시간과 달라야 합니다"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "숫자는 0과 10 사이여야 합니다"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "숫자는 0과 100 사이여야 합니다"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "숫자는 반드시 1과 100 사이여야 합니다"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "잘못된 입력값 발견"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "인증 오류"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "로컬 환경설정을 취소하고 웹기반 환경설정을 사용하시겠습니까?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "확인됨"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1171,7 +1124,7 @@ msgid "Daily schedules"
 msgstr "날짜별 스케줄"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "확인"
@@ -1186,7 +1139,7 @@ msgstr "저장하지 않고 창을 닫습니다."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "도움말"
@@ -1585,75 +1538,123 @@ msgstr "각 날짜별로 특정 기간에만 파일 전송이 이루어집니다
 msgid "Transfer files only between"
 msgstr "이 시간 사이에만 전송:"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "유효하지 않은 숫자"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "유효하지 않은 시간. 해당 값은 0:00과 24:00사이이며 시간:분 형식이어야 합니다"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "시작 시간은 반드시 종료 시간과 달라야 합니다"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "숫자는 0과 10 사이여야 합니다"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "숫자는 0과 100 사이여야 합니다"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "숫자는 반드시 1과 100 사이여야 합니다"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "잘못된 입력값 발견"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "인증 오류"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "로컬 환경설정을 취소하고 웹기반 환경설정을 사용하시겠습니까?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "확인됨"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s 진단 로그 플래그"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "이러한 플래그들은 이벤트 기록상에서 여러 종류의 진단 메세지를 활성화시킵니다."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "추가 정보 ..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "모든 값을 저장하고 창을 닫습니다"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "기본값"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "기본 설정값으로 복원"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "저장하지 않고 창을 닫습니다"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "적용"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "모든 값 "
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - 이벤트 로그"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "프로젝트"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "시간"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "메시지"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "이 프로젝트만 보여주기(&S)"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "모두 복사(&A)"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "모든 메시지를 클립보드에 복사"
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "선택한 항목 복사(&S)"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1661,7 +1662,7 @@ msgid ""
 "messages."
 msgstr "선택한 메세지를 클립보드로 복사합니다. 메세지를 클릭하는 동안 shift 키나 control 키를 눌러 여러 메세지를 선택할 수 있습니다"
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1669,19 +1670,19 @@ msgid ""
 "messages."
 msgstr "클립보드에 선택한 메시지를 복사합니다. 메시지를 클릭하는 동안 Shift나 Control 키를 누른 상태에서 여러 메시지를 선택할 수 있습니다."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "닫기"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "모든 메시지 보여주기(&m)"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "모든 프로젝트의 메세지를 보여줍니다."
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "선택한 프로젝의 메세지만 보여줍니다."
 
@@ -1704,7 +1705,7 @@ msgid "Add an application to this list"
 msgstr "응용 프로그램을 이 목록에 추가"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "제거"
 
@@ -2038,14 +2039,14 @@ msgstr "자원"
 msgid "Estimated computation size"
 msgstr "추정된 연산 크기"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "마지막 기록 지점의 CPU 시간"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "CPU 시간"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "기록 지점에서 경과한 CPU 시간"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "경과 시간"
@@ -2095,8 +2096,8 @@ msgstr "초"
 msgid "Executable"
 msgstr "실행 가능 파일"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "로컬: "
 
@@ -2455,203 +2456,191 @@ msgstr "연구"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "World Community Grid가 주관하는 프로젝트를 알아봅니다"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "클라이언트 시작 중"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "클라이언트에 연결."
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "시스템 상태를 검색 중 입니다; 잠시만 기다려 주세요..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "프로그램 누락됨"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "http://cord.sourceforge.net에서 CoRD 어플리케이션을 다운로드하고 설치하세요"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "배터리 가동"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "컴퓨터가 사용중"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "사용자 요청"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "설정한 시간이 아닙니다"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "CPU 벤치마크 진행 중"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "디스크 공간 필요 - 환경 설정을 확인하세요"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "컴퓨터가 사용중이 아님"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "시작하는 중"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "독점 프로그램이 실행 중"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "CPU가 다른 작업 중"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "네트워크 대역폭이 한계에 도달했습니다"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "운영체제에서 요청함"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "알 수 없는 원인"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU 탐지 실패,"
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "새로 만들기"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "다운로드 실패"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "다운로드 중"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (일시 정지됨 - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "사용자가 일시 정지시킨 프로젝트"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "사용자가 일시 정지시킨 태스크"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "일시 정지됨 - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU 일시 정지됨 - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr " - 디스크 공간이 부족합니다"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "공유된 메모리가 비길 기다리고 있습니다"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "실행 중"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr "(CPU 비 집약적)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "실행 대기 중"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "시작 대기"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "보류됨:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "보류됨"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "네트워크 액세스 대기중"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "계산 오류"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "업로드 실패"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "업로드 중"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "사용자 요구로 중단됨"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "프로젝트가 중단됨"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "취소됨: 마감 시각이 지났습니다"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "중단됨: 디스크 사용량 제한치 도달"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "중단됨: 실행 시간 제한치에 도달함"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "중단됨: 메모리 제한치에 도달함"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "중단됨"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "다운로드 성공"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "리포트 준비 됨"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "오류: 잘못된 상태 '%d'"
@@ -2715,7 +2704,7 @@ msgstr "프로젝트를 선택하려면 이를을 클릭하거나 하단에 URL
 msgid "Categories:"
 msgstr "카테고리:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "프로젝트:"
 
@@ -2759,24 +2748,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "이미 이 프로젝트가 추가되어 있습니다. 다른 프로젝트를 선택해주세요."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "프로젝트 서버와 통신 중"
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "프로젝트 서버와 통신하고 있습니다\n잠시 기다려 주세요..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "서버에서 필요한 파일을 찾을 수 없습니다."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "내부 서버 오류가 발생했습니다."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "프로젝트 서버와 통신하고 있습니다\n잠시 기다려 주세요..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2874,1024 +2860,938 @@ msgstr "자동 감지"
 msgid "SOCKS proxy"
 msgstr "SOCKS 프록시"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "사용 계약"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "스킨"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "다음 사용 계약을 읽어주세요:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "사용자 인터페이스의 외형을 선택하세요."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "사용 계약에 동의합니다."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "고급 보기...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "사용 계약에 동의하지 않습니다."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "고급 사용자 그래픽 인터페이스를 표시합니다."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "프로젝트가 일시적으로 불가능"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "화면 옵션과 프록시 환경을 설정합니다"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "프로젝트가 일시적으로 불가능합니다.\n\n나중에 다시 시도해주세요."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "진단 메세지를 보여줍니다."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "계정 관리자가 일시적으로 불가능"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "계정 관리자가 일시적으로 불가능합니다.\n\n나중에 다시 시도해주세요."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "기본값"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "계속하려면 계정 키를 정의해 주세요."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "일시 정지"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "잘못된 계정 키; 올바른 계정 키를 입력하세요"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "연산 일시중지"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "확인 충돌"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "연산 재개"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "email 주소를 입력해 주세요"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "공지 사항"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "잘못된 이메일 주소입니다; 올바른 이메일 주소를 입력 하세요"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "BOINC나 프로젝트에서 온 공지 사항을 보기 위해 창을 엽니다"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "URL 없음"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "%s 도움말을 얻으세요"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "URL을 지정해주세요.\n예를 들어:\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "공지사항 수신 중. 잠시만 기다려 주세요..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "잘못된 URL"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "지금은 새로운 공지 사항이 없습니다."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "올바른 URL을 지정해주세요.\n예를 들어:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "닫기"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s'은(는) 유효한 호스트 이름을 포함하고 있지 않습니다."
+msgid "%s - Notices"
+msgstr "%s - 공지 사항"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s'은(는) 유효한 경로를 포함하고 있지 않습니다."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "명령"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "모든 메시지 복사"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "선택한 메시지 복사"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "이 프로젝트만 보여주기"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "선택한 프로젝의 메세지만 보여줍니다."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "메시지"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "모든 메시지를 클립보드에 복사 중..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "선택한 메시지를 클립보드로 복사하고 있습니다..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "메세지를 걸러내고 있습니다..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "모든 메시지 보여주기"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "모든 프로젝트의 메세지를 보여줍니다."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "추가적인 설정은 고급 보기 상태로 변경 후 연산 환경 설정에서 선택하세요."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "공지사항 수신 중. 잠시만 기다려 주세요..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB 디스크 공간"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "지금은 새로운 공지 사항이 없습니다."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - 연산 환경 설정"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "공지 사항"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "모든 로컬 환경설정을 취소하고 웹기반 환경설정을 사용하겠습니까?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "업데이트"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "모든 완료된 태스크를 보고하고 마지막 크레딧과 환경 설정을 받아오며 가능하면 추가 태스크를 받아옵니다."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "일시 정지"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "이 프로젝트 태스크를 일시 정지시킵니다."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "새 태스크 금지"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "이 프로젝트의 새로운 태스크를 받지 않습니다."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "프로젝트 다시 설정"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "이 프로젝트와 관련된 모든 태스크와 파일들을 삭제하고 새 태스크를 받아옵니다. 그 전에 먼저 완료된 태스크를 보고하도록 업데이트할 수 있습니다."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "이 프로젝트를 제거합니다. 진행 중인 태스크는 소실됩니다. (완료된 태스크를 보고하려면 '업데이트'를 사용하세요)"
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "속성"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "자세한 프로젝트 정보를 보여줍니다."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "계정"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "완료된 작업"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "평균 완료된 작업"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "상태"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "프로젝트"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "프로젝트 업데이트 중..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "프로젝트 다시 시작 중..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "프로젝트 일시 정지 중..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "이 프로젝트의 태스크를 다시 시작합니다."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "추가적인 태스크 다운로드를 허용하도록 프로젝트에 알리는 중..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "새 태스크 허용"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "프로젝트에게 추가 태스크 수용 금지를 통보하고 있습니다..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "이 프로젝트의 새 태스크를 수용합니다."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "프로젝트 다시 설정 중..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "이 프로젝트의 새 태스크를 수용하지 않습니다."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "정말로 프로젝트 '%s' 다시 설정을 원하십니까?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "프로젝트 다시 설정"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "프로젝트 제거 중..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "정말로 프로젝트 '%s' 를(을) 제거하시겠습니까?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "프로젝트 제거"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "브라우저 시작 중..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "프로젝트 추가"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "이 프로젝트의 태스크를 다시 시작합니다."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "동기화"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "새 태스크 허용"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "이 프로젝트의 작업 완료"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "이 프로젝트의 새 태스크를 수용합니다."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "많은 과학 분야의 30개 이상 프로젝트중에서 하나 혹은 전부 참여하는 기여자"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "이 프로젝트의 새 태스크를 수용하지 않습니다."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "계정 관리자 시스템과 프로젝트를 동기화"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "사용자가 요청함"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "아래 명령으로 접근할 프로젝트를 선택하세요"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "작업 반입"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "프로젝트 웹 페이지"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "완료된 태스크 보고"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "프로젝트 명령"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Trickle up 메세지 보내기"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "메뉴에서 %s 프로젝트 웹 사이트를 띄웁니다"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "계정 관리자에서 요청함"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "%s 프로젝트에 적용할 명령 메뉴를 띄웁니다"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "프로젝트 초기화"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "그래픽 보여주기"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "프로젝트에서 요청함"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "창에서 애플리케이션 그래픽 보여주기"
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "알 수 없는 이유"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "이 태스크를 일시 중지합니다."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "사용자에 의한 일시 정지"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "중단"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "새 태스크를 받지 않음"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "이 태스크를 포기합니다. 크래딧을 얻을 수 없게 됩니다."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "프로젝트가 끝남 - 확인을 누르면 제거됩니다"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "자세한 태스크 정보를 보여줍니다."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "태스크 완료시 제거하기"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "이 태스크를 다시 시작합니다."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "스케줄러 요청을 기다리고 있는 중"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "이 태스크를 일시 중지합니다."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "스케쥴러 요청을 진행"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "정말로 이 태스크 '%s'를 중단하시겠습니까?\n(진행률: %.1lf%%, 상태: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Trickle up 메세지가 유보됨"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "태스크 중단"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "통신이 연기됨 "
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "어떤 프로젝트도 없습니다. 프로젝트를 추가해주세요."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "전체 디스크 사용량"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "사용 불가"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "BOINC 프로젝트가 사용하는 디스크 용량"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "태스크:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "프로젝트 없음: 0 바이트 사용"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "접근할 태스크를 선택하세요"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "BOINC가 사용함:"
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "알림:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "빈, BOINC가 사용 가능:"
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "이 태스크의 진행률"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "빈, BOINC가 사용 불가능:"
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "태스크 명령"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "빈:"
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "이 태스크에 적용할 명령 메뉴를 띄웁니다"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "다른 프로그램이 사용 중:"
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "응용 프로그램: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "사용자 전체"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "사용자 평균"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "응용 프로그램: 사용 불가"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "호스트 전체"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "사용 불가"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "호스트 평균"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "경과 시간: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "마지막 업데이트: %.0f 일 전"
+msgid "Remaining (estimated): %s"
+msgstr "남은 시간 (추정치): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "사용자 전체 보여주기"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "상태: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "사용자 전체 크레딧 보여주기"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "현재 상태를 복구중."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "사용자 평균 보여주기"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "작업 유닛을 서버에서 다운로드하고 있습니다."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "사용자 평균 크레딧 보여주기"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "작업 일시 정지: 컴퓨터가 배터리로 가동되고 있습니다."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "호스트 전체 보여주기"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "작업 일시 정지: 사용자가 활동을 시작했습니다."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "전체 호스트 크레딧을 보여줍니다"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "작업 일시 정지: 사용자가 작업을 중지시켰습니다."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "호스트 평균 보여주기"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "작업 일시 정지: 설정한 시간이 아닙니다."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "호스트 별로 평균 크레딧을 보여줍니다"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "작업 일시 정지: 벤치마크를 실행하고 있습니다."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< 이전 프로젝트"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "작업 일시 정지: 디스크 용량이 부족합니다."
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "이전 프로젝트를 차트로 보여줍니다"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "작업이 일시 정지되었습니다."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "다음 프로젝트 >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "프로젝트 서버 접속을 기다리고 있습니다."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "다음 프로젝트를 차트로 보여줍니다"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "현재 상태 복구중"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "프로젝트 목록 숨기기"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "수행가능한 작업이 없습니다"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "전체 영역 그래프 사용"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "코어 클라이언트와 연결이 불가능합니다"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "모드 뷰"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "사용 계약"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "한 프로젝트"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "다음 사용 계약을 읽어주세요:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "선택한 프로젝트를 차트로 보여줍니다"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "사용 계약에 동의합니다."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "모든 프로젝트 (분리)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "사용 계약에 동의하지 않습니다."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "모든 프로젝트를 각각 하나의 차트로 보여줍니다"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "프로젝트가 일시적으로 불가능"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "모든 프로젝트 (공동)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "프로젝트가 일시적으로 불가능합니다.\n\n나중에 다시 시도해주세요."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "모든 프로젝트를 하나의 차트로 보여줍니다"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "계정 관리자가 일시적으로 불가능"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "모든 프로젝트 (합계)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "계정 관리자가 일시적으로 불가능합니다.\n\n나중에 다시 시도해주세요."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "프로젝트 합계를 하나의 차트로 보여줍니다"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "계속하려면 계정 키를 정의해 주세요."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "통계"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "잘못된 계정 키; 올바른 계정 키를 입력하세요"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "차트 업데이트 중..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "확인 충돌"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "프로젝트 목록 보여주기"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "email 주소를 입력해 주세요"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "작은 그래프 사용"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "잘못된 이메일 주소입니다; 올바른 이메일 주소를 입력 하세요"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "지금 다시 시도"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "URL 없음"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "파일 전송을 지금 다시 시도"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "URL을 지정해주세요.\n예를 들어:\nhttp://www.example.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "전송 중단"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "잘못된 URL"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "해당 파일 전송을 포기합니다. 태스크 수행 크래딧을 얻을 수 없게 됩니다."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "올바른 URL을 지정해주세요.\n예를 들어:\nhttp://boincproject.example.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "파일"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s'은(는) 유효한 호스트 이름을 포함하고 있지 않습니다."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "진행률"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s'은(는) 유효한 경로를 포함하고 있지 않습니다."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "크기"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "명령"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "경과 시간"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "모든 메시지 복사"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "속도"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "선택한 메시지 복사"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "전송"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "이 프로젝트만 보여주기"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "네트워크 활동이 일시 정지됨 - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "선택한 프로젝의 메세지만 보여줍니다."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\n활동 메뉴에서 다시 활성화시킬 수 있습니다."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "메시지"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "모든 메시지를 클립보드에 복사 중..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "현재 전송을 다시 시도 중..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "선택한 메시지를 클립보드로 복사하고 있습니다..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "전송 중단 중..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "메세지를 걸러내고 있습니다..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "정말로 현재 전송 중인 파일 '%s'을(를) 중단할까요?\n주의: 전송을 중단하면 태스크를 무효화하며, 해당 태스크에\n대한 크레딧을 받지 못하게 됩니다."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "모든 메시지 보여주기"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "파일 전송 중단"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "모든 프로젝트의 메세지를 보여줍니다."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "업로드"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "계정"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "다운로드"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "완료된 작업"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "다시 시도 "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "평균 완료된 작업"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "실패"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "상태"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "일시 정지됨"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "프로젝트"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "활성"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "사용자가 요청함"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "대기 중"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "작업 반입"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (프로젝트 전송 지연: "
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "완료된 태스크 보고"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "활성 태스크 보여주기"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Trickle up 메세지 보내기"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "활성된 태스크만 보여줍니다."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "계정 관리자에서 요청함"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "그래픽 보여주기"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "프로젝트 초기화"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "창에서 애플리케이션 그래픽 보여주기"
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "프로젝트에서 요청함"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "VM 콘솔 보여주기"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "알 수 없는 이유"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "VM 콘솔 창을 보여줍니다."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "사용자에 의한 일시 정지"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "이 결과에 대하여 작업을 일시 정지 합니다."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "새 태스크를 받지 않음"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "중단"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "프로젝트가 끝남 - 확인을 누르면 제거됩니다"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "이 결과에서 작업을 버립니다. 크래딧을 얻을 수 없게됩니다."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "태스크 완료시 제거하기"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "자세한 태스크 정보를 보여줍니다."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "스케줄러 요청을 기다리고 있는 중"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "남은 시간 (추정치)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "스케쥴러 요청을 진행"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "리포트 마감 시각"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Trickle up 메세지가 유보됨"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "태스크"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "통신이 연기됨 "
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "태스크 다시 시작 중..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "전체 디스크 사용량"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "태스크 일시 정지 중..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "BOINC 프로젝트가 사용하는 디스크 용량"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "태스크 그래픽 보여주는 중..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "프로젝트 없음: 0 바이트 사용"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "VM 콘솔용 태스크 보여주는 중..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "BOINC가 사용함:"
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "정말로 태스크 '%s'를(을) 중단할까요?\n(진행률: %s, 상태: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "빈, BOINC가 사용 가능:"
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "정말로 태스크 '%d'를(을) 중단하겠습니까?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "빈, BOINC가 사용 불가능:"
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "태스크 중단"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "빈:"
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "태스크 중단 중..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "다른 프로그램이 사용 중:"
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "모든 태스크 보여주기"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "사용자 전체"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "모든 태스크를 보여줍니다."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "사용자 평균"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "이 태스크를 다시 시작합니다."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "호스트 전체"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "이 태스크를 일시 중지합니다."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "호스트 평균"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "정말 취소할까요?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "마지막 업데이트: %.0f 일 전"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "질문"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "사용자 전체 보여주기"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "서비스"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "사용자 전체 크레딧 보여주기"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "%s 숨기기"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "사용자 평균 보여주기"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "다른 항목 숨기기"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "사용자 평균 크레딧 보여주기"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "모두 보여주기"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "호스트 전체 보여주기"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "%s 종료"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "전체 호스트 크레딧을 보여줍니다"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "스킨"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "호스트 평균 보여주기"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "사용자 인터페이스의 외형을 선택하세요."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "호스트 별로 평균 크레딧을 보여줍니다"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "고급 보기...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< 이전 프로젝트"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "고급 사용자 그래픽 인터페이스를 표시합니다."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "이전 프로젝트를 차트로 보여줍니다"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "화면 옵션과 프록시 환경을 설정합니다"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "다음 프로젝트 >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "진단 메세지를 보여줍니다."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "다음 프로젝트를 차트로 보여줍니다"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "프로젝트 목록 숨기기"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "기본값"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "전체 영역 그래프 사용"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "연산 일시중지"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "모드 뷰"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "연산 재개"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "한 프로젝트"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "BOINC나 프로젝트에서 온 공지 사항을 보기 위해 창을 엽니다"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "선택한 프로젝트를 차트로 보여줍니다"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "%s 도움말을 얻으세요"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "모든 프로젝트 (분리)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "닫기"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "모든 프로젝트를 각각 하나의 차트로 보여줍니다"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - 공지 사항"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "모든 프로젝트 (공동)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "추가적인 설정은 고급 보기 상태로 변경 후 연산 환경 설정에서 선택하세요."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "모든 프로젝트를 하나의 차트로 보여줍니다"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "GB 디스크 공간"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "모든 프로젝트 (합계)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - 연산 환경 설정"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "프로젝트 합계를 하나의 차트로 보여줍니다"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "모든 로컬 환경설정을 취소하고 웹기반 환경설정을 사용하겠습니까?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "통계"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "프로젝트 추가"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "프로젝트 목록 보여주기"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "동기화"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "작은 그래프 사용"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "이 프로젝트의 작업 완료"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "지금 다시 시도"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "많은 과학 분야의 30개 이상 프로젝트중에서 하나 혹은 전부 참여하는 기여자"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "파일 전송을 지금 다시 시도"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "계정 관리자 시스템과 프로젝트를 동기화"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "전송 중단"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "아래 명령으로 접근할 프로젝트를 선택하세요"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "해당 파일 전송을 포기합니다. 태스크 수행 크래딧을 얻을 수 없게 됩니다."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "프로젝트 웹 페이지"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "파일"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "프로젝트 명령"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "진행률"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "메뉴에서 %s 프로젝트 웹 사이트를 띄웁니다"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "크기"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "%s 프로젝트에 적용할 명령 메뉴를 띄웁니다"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "경과 시간"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "이 태스크를 일시 중지합니다."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "속도"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "이 태스크를 포기합니다. 크래딧을 얻을 수 없게 됩니다."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "전송"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "정말로 이 태스크 '%s'를 중단하시겠습니까?\n(진행률: %.1lf%%, 상태: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "네트워크 활동이 일시 정지됨 - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "어떤 프로젝트도 없습니다. 프로젝트를 추가해주세요."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\n활동 메뉴에서 다시 활성화시킬 수 있습니다."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "사용 불가"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "태스크:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "정말로 현재 전송 중인 파일 '%s'을(를) 중단할까요?\n주의: 전송을 중단하면 태스크를 무효화하며, 해당 태스크에\n대한 크레딧을 받지 못하게 됩니다."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "접근할 태스크를 선택하세요"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "파일 전송 중단"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "알림:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "업로드"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "이 태스크의 진행률"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "다운로드"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "태스크 명령"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "다시 시도 "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "이 태스크에 적용할 명령 메뉴를 띄웁니다"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "실패"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "응용 프로그램: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "일시 정지됨"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "활성"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "응용 프로그램: 사용 불가"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "대기 중"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "사용 불가"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (프로젝트 전송 지연: "
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "경과 시간: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "활성 태스크 보여주기"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "남은 시간 (추정치): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "활성된 태스크만 보여줍니다."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "상태: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "VM 콘솔 보여주기"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "현재 상태를 복구중."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "VM 콘솔 창을 보여줍니다."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "작업 유닛을 서버에서 다운로드하고 있습니다."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "이 결과에 대하여 작업을 일시 정지 합니다."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "작업 일시 정지: 컴퓨터가 배터리로 가동되고 있습니다."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "이 결과에서 작업을 버립니다. 크래딧을 얻을 수 없게됩니다."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "작업 일시 정지: 사용자가 활동을 시작했습니다."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "남은 시간 (추정치)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "작업 일시 정지: 사용자가 작업을 중지시켰습니다."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "리포트 마감 시각"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "작업 일시 정지: 설정한 시간이 아닙니다."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "태스크"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "작업 일시 정지: 벤치마크를 실행하고 있습니다."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "정말로 태스크 '%s'를(을) 중단할까요?\n(진행률: %s, 상태: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "작업이 일시 정지되었습니다."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "정말로 태스크 '%d'를(을) 중단하겠습니까?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "프로젝트 서버 접속을 기다리고 있습니다."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "모든 태스크 보여주기"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "현재 상태 복구중"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "모든 태스크를 보여줍니다."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "수행가능한 작업이 없습니다"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "정말 취소할까요?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "코어 클라이언트와 연결이 불가능합니다"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "질문"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3905,11 +3805,24 @@ msgstr "< 뒤로"
 msgid "&Finish"
 msgstr "완료"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "일주일 중 해당 요일, 특정 시간대에만 연산을 수행합니다."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "서비스"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "%s 숨기기"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "다른 항목 숨기기"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "모두 보여주기"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "일주일 중 해당 요일, 특정 시간대에만 파일 전송이 이루어집니다."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "%s 종료"
diff --git a/locale/ko/BOINC-Project-Generic.po b/locale/ko/BOINC-Project-Generic.po
deleted file mode 100644
index 1ea6c60..0000000
--- a/locale/ko/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Jun Seo <seo.galileo at gmail.com>, 2015
-# Kangsan Lee <treppolse at gmail.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-01-08 01:00+0000\n"
-"Last-Translator: Kangsan Lee <treppolse at gmail.com>\n"
-"Language-Team: Korean (http://www.transifex.com/boinc/boinc/language/ko/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ko\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "한국어"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Korean"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "초대 코드"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "계정 생성을 위해서 올바른 초대 코드가 필요합니다."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "이름"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "이 웹 사이트에서 여러분을 식별합니다. 여러분의 본명이나 별명을 써주세요."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Email 주소"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "반드시 올바른 형식(name at domain)으로 입력해 주세요."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "비밀번호"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "최소 %1 글자이상으로 입력해 주세요"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "비밀번호 확인"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "국가"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "표시되기를 원하는 국가를 선택해주세요."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "우편 번호 혹은 ZIP 코드"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "부가 사항"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "계정 만들기"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Email 주소:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "email 주소를 잊어버렸습니까?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "비밀번호:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "비밀번호를 잊어버렸습니까?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "로그인 상태 유지"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "로그인"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "긁은 글씨: [b]text[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "기울임 글씨: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "밑줄친 글씨: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "취소선: [s]text[/s]  (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "인용된 글: [quote]text[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "코드 표시: [code]code[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "목록: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "정렬된 목록: [list=]text[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "이미지 삽입: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "URL 삽입: [url]http://url[/url] 또는 [url=http://url]URL text[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "글씨 색상"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "글씨 색상: [color=red]text[/color]  팁: 또한 컬러 코드(=#FF0000)도 사용할 수 있습니다"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "기본값"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "어두운 빨강"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "빨강"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "주황색"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "갈색"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "노랑"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "초록색"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "올리브색"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "하늘색"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "파랑"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "감색"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "남색"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "보라색"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "글씨 크기"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "글씨 크기: [size=x-small]small text[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "작게"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "보통"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "크게"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "열려진 bbCode 태그 모두 닫기"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "태그 닫기"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "오래된 순으로"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "새로운 순으로"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "추천이 많은 포스트 순"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "최신 포스트 순"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "조회수 순"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "포스트가 많은 순"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "관리 기여자"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "프로젝트 운영자"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "프로젝트 개발자"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "프로젝트 테스터"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "개발 기여자"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "테스트 기여자"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "프로젝트 연구자"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "도우미 전문가"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "포럼 게시물 중에서 검색할 단어"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "포럼 검색"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "고급 검색"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "쪽지"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "질문과 답변"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "게시판"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 게시판"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "이전"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "다음"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "작성자"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "내용"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "메세지 전송"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "%1에게 쪽지 보내기"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "가입 시기: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "작성 글: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "크레딧: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "아직 이 글을 읽지 않았습니다"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "읽지 않음"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "메세지 %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "숨김"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "작성됨: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - 응답한 항목"
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "수정"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "이 메세지 수정하기"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "마지막 수정: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "작성자가 '무시' 목록에 있으므로 이 포스트를 보여주지 않습니다. 이 포스트를 보려면 %1여기%2를 누르세요"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "이 포스트를 공격적인 글로 신고"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "공격적인 글 신고"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "선호도: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "점수:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "이 메세지가 맘에 들면 누르세요"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "점수 +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "해당 메세지가 안 좋다면 클릭하세요"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "점수 -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "답변"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "이 메세지에 답글 달기"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "인용구"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "이 메세지를 인용해서 답글 달기"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "관리자 권한으로 숨김"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "%1 포스트 %2 작성"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "%1까지는 점수 매기기나 글을 쓸 수 없습니다"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> 포스트는 '전연령'적으로 게시할 것: 외설적이거나\n            혐오스런 내용, 직접적 혹은 간접적으로\n            성적인 내용은 포함되면 안 됩니다.\n        <li> 상업적 광고는 금지됩니다.\n        <li> 성적인 내용, 도박, 그 외 허용될 수 없는 컨텐츠와\n            관련한 웹 사이트 링크를 금지합니다.\n        <li> 타인을 괴롭히거나 도발하기 위한 메세지, 스레드와 관련없는\n            내용의 메세지는 금지됩니다.\n        <li> 고의적인 모욕이나 인신 공격성 메세지는 금지됩니다.\n        <li> 인종, 종교, 국적, 성별, 지위 등과 관련하여서\n            비난하는 코멘트를 금지합니다.\n        "
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "규정:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "추가 정보"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "숨김 해제"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "이 포스트 숨김 해제"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "숨기기"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "이 포스트 숨기기"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "이동"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "이 포스트를 다른 스레드로 이동"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "사용자 차단"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "작성자를 차단시킴"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "작성자를 차단시키지 않음"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "작성자 차단 투표 시작"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "삭제"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "이 포스트 삭제"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "오직 팀 회원만이 팀 게시판에 글을 쓸 수 있습니다"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "%1에 새로운 스레드를 만들려면 여러분은 크레딧을 어느 정도 가지고 있어야 합니다. 이 것은 시스템 남용을 막으면서 보호해줍니다. "
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "지금은 더 이상 새로운 스레드를 만들 수 없습니다. 다시 시도하시기 전에 잠시 기다려주십시오. 이러한 지연은 시스템을 남용으로부터 보호하기 위해서 시행하고 있습니다."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "이 스레드는 잠겼습니다. 오직 포럼 관리자와 운영자만 여기에 글을 쓸 수 있습니다."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "숨겨진 스레드에 글을 쓸 수 없습니다."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "스레드"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "포스트"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "보기"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "마지막 포스트"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "%1 스레드에 새로운 포스트가 있습니다"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "구독 중인 스레드에 새로운 포스트가 있습니다"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "스레드 '%1'에 새 포스트가 있습니다"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "모든 스레드를 읽은 것으로 표시"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "모든 게시판 스레드를 읽은 것으로 표시합니다."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "호스트 없음"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "이용불가"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "집"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "직장"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "학교"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "업데이트"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "컴퓨터 정보"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP 주소"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(최근 %1 시간과 같음)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "외부 IP 주소"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "IP 주소 보이기"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "도메인 이름"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "기기 이름"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "현지 표준 시간대"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 시간"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "소유자"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "익명"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "생성 시각"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "총 크레딧"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "평균 크레딧"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "공유 프로젝트 크레딧"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPU 종류"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "프로세서 수"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "코프로세서"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "운영체제(OS)"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC 버전"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "메모리"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "캐시"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "스왑 영역"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "전체 디스크 용량"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "사용 가능한 공간"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "부동소수점 연산 속도"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 백만 ops/초"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "정수 연산 속도"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "평균 업로드 대역폭"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/초"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "불명"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "평균 다운로드 대역폭"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "평균 반환 시간"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 일"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "응용 프로그램 상세 정보"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "보이기"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "태스크 목록"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "클라이언트가 서버와 통신한 횟수"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "최근에 통신한 서버"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "BOINC가 실행된 시간(%)"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "BOINC가 실행되는 동안, 컴퓨터가 인터넷에 연결된 시간(%)"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "BOINC가 실행되는 동안 허가된 연산 시간(%)"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "BOINC가 실행되는 동안 허가된 GPU 연산 시간(%)"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "평균 CPU 효율"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "태스크 지연 보정값"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "위치"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "이 컴퓨터 삭제"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "이 컴퓨터의 중복되는 기록을 병합"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "병합"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "마지막 통신"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "컴퓨터 정보"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "순위"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "평균 크레딧"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "최근 평균 크레딧"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "운영체제(OS)"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 프로세서)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "자세히"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "공유 프로젝트 통계:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "호스트 %1에서는 이미 실행되고 있습니다:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "호스트 %1의 OS는 비호환됩니다:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "호스트 %1의 CPU는 비호환됩니다:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "같은 호스트"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "호스트 %1과 %2는 동기화할 수 없습니다 - 호환되지 않습니다"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "호스트 %1과 호스트 %2 동기화"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "새 컴퓨터의 크레딧을 업데이트 할 수 없습니다"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "결과를 업데이트할 수 없습니다"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "옛 컴퓨터를 은퇴시킬 수 없습니다"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "옛 컴퓨터 %1이 은퇴했습니다"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "보이기:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "모든 컴퓨터"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "최근 30일동안 활동한 컴퓨터만 보기"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "컴퓨터 ID"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>버전"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "이름순으로 컴퓨터 동기화"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "브라우저 기본값"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "내용"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "뉴스는 %sRSS 피드%s로도 제공됩니다"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "목록"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "쓰기"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "쪽지 보내기"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "미리 보기"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "해당 메세지가 없습니다"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "대상"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "ID 혹은 고유한 사용자 이름을 콤마로 구분해서 써주세요"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "제목"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "메세지 전송"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "받은 쪽지, 제목:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "쪽지%1 송신 %2 제목:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "글을 작성할 수 없습니다"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "쪽지를 일정 시간 안에 일정량 이상 보낼 수 없습니다. 새로운 쪽지를 보내실려면 일정시간 기다리셔야 합니다."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "읽지 않음"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "email 알림을 받으시려면 %1커뮤니티 환경설정을 수정해 주세요%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "쪽지"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "사용량 제한"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "최대 사용량"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "다른 응용 프로그램을 위해 CPU를 유휴 상태로 남겨둡니다. 예시: 75%이면 8코어 CPU 중 6코어를 사용합니다."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% (프로세서)"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "연산하는 동안 매 몇 초간 CPU 온도 및 에너지 사용량을 줄이기 위해 일시중지/재개를 반복합니다. 예시: 75%는 3초간 연산을 하고 1초간 대기하며 이 동작을 반복합니다."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% (CPU 시간)"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "일시중지시"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "컴퓨터가 배터리로 작동시 일시중지"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "배터리 전원으로 작동하는 상황일 때 연산을 일시중지시키려면 체크하세요."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "컴퓨터가 사용 중일 동안 연산을 일시중지"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "컴퓨터 사용시 연산 및 파일 전송을 일시중지시키려면 체크하세요."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "컴퓨터가 사용 중일 동안 GPU 연산을 일시중지"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "컴퓨터 사용시 GPU 연산을 일시중지시키려면 체크하세요."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'사용 중'은 마우스/키보드 입력 시간을 뜻합니다"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "이 것은 컴퓨터 '사용 중'인 것을 결정합니다."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "분"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "마우스/키보드 입력이 이 시간 안에 있으면"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "특정 컴퓨터에서 미사용시 저전력 모드로 들어가는 것을 허용시켜 줍니다."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "비BOINC CPU 사용량이 이 값 이상일 때 일시중지"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "컴퓨터가 다른 프로그램을 돌리느라 바쁠 때 연산을 일시중지시킵니다."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "이 시간 사이에만 작업"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "각 날짜별로 특정 시간대에만 연산"
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "기타"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "최소한"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "컴퓨터를 부지런히 돌리기 위해 충분한 태스크를 저장합니다."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "일치 작업량"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "추가적으로 유지할"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "최소 한도 이상으로 추가적인 태스크를 저장합니다. 또한 프로젝트 서버에 연락할 때 얼마나 많은 작업량을 요청할지 결정합니다."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "이 시간 이후로 응용 프로그램을 바꿈"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "여러 프로젝트를 수행할 경우, BOINC가 얼마나 자주 그것들을 교체할지 결정합니다."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "태스크 기록지점을 매 시간마다 기록하도록 "
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "태스크가 얼마나 자주 현재 상태를 디스크에 저장하는지 제어합니다. 이렇게 함으로써 태스크를 재시작할 수 있습니다."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "초"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "최대한"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "전체 디스크 공간 중 BOINC가 사용하는 용량을 제한합니다."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "최소한"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "BOINC 데이터가 저장되는 볼륨중 여유 공간으로 남겨둘 디스크 용량을 설정합니다."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB 남겨둡니다"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "BOINC 데이터가 저장되는 볼륨에서 사용하는 디스크 공간의 퍼센테이지를 제합니다."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% (전체 용량 중)"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "컴퓨터 사용시 최대 사용량"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "컴퓨터 사용시 BOINC에서 사용하는 메모리를 제한합니다."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "컴퓨터 미사용시 최대 사용량"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "컴퓨터가 미사용시 BOINC에서 사용하는 메모리를 제한합니다."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "일시중지되는 동안 비GPU 태스크를 메모리에 남겨두기"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "체크할 경우, 일시중지된 태스크는 메모리에 남으며 재개시 작업분을 잃지 않습니다. 체크하지 않을 경우, 일시중지된 태스크는 메모리에서 제거되며 재개시 마지막 기록지점에서 시작합니다."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "페이지/스왑 파일: 최대한"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "BOINC에서 사용하는 스왑 공간(페이지 파일)을 제한합니다."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "제한된 다운로드 "
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "파일 전송 중 최대 로드 비율을 제한합니다."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "제한된 업로드 비"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "파일 전송 중 최대 업로드 비율을 제한합니다."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "제한 사용량"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "예시: BOINC는 매 30일동안 최대 2000MB를 전송합니다."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "일"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "이 시간 사이에만 전송"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "각 날짜별로 특정 시기에만 파일 전송이 이루어집니다."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "이미지 파일 검증 건너뛰기"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "인터넷 제공자가 이미지 파일을 변경할 경우에만 체크하세요. 검증을 건너 뛸 경우에는 BOINC의 보안성이 감소합니다. "
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "인터넷 접속 전에 확인"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "모뎀, ISDN, VPN 연결시에 유용합니다."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "완료되면 접속 끊기"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "컴퓨팅"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "디스크"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "네트워크"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "이 환경 설정은 여러분이 참여하는 모든 BOINC 프로젝트에 적용됩니다."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1환경 설정을 업데이트할 수 없습니다.%2 빨간 색으로 표시된 곳이 범위를 넘어서거나 숫자가 아닙니다."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "연산"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "%1용 개별 환경 설정"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "환경 설정 수정"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "제거"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "%1용 개별 환경 설정 추가"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "이 설정값들은 이 계정을 사용하는 모든 컴퓨터에 적용됩니다. 예외)"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "여러분이 직접 다룰 수 있는, BOINC 관리자를 사용하는 컴퓨터의 위치"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "안드로이드 기기"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(보기 전환)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "통합 환경 설정"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "우선 적용 (기본) 환경 설정"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "최근 수정된 환경 설정:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "환경 설정 추가"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "환경 설정 업데이트"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "네"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "없음"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "기본 컴퓨터 위치"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "새로운 컴퓨터는 설정된 작업 위치와 프로젝트 환경설정을 사용하게 될 것입니다."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "자원 공유"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "이 프로젝트에서 사용할 자원 배분치를 결정하세요. 예: 여러분이 각각 100과 200의 자원을 공유하기로 한 BOINC 프로젝트에 참여하고 계시면 첫 번째는 1/3의 자원을 쓰게 되고, 두 번째는 2/3를 쓰게 됩니다."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "개별적으로 CPU를 할당해서 GPU 태스크를 가속할까요?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "CPU 사용"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "ATI GPU 사용"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "NVIDIA GPU 사용"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Intel GPU 사용"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "테스트 프로그램을 실행합니까?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "이는 프로그램 개발에 도움을 주지만, 해당 컴퓨터에서 실행에 실패할 수도 있습니다"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "email은 %1에서 보냅니다. 여러분의 스팸 필터에서 이 주소를 허용해 주세요."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "%1과 소속 팀(전부)에서 email을 받도록 허용하시겠습니까?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1이 여러분 컴퓨터를 웹 사이트에 공개하도록 하시겠습니까?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(보기 전환)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "프로젝트 개별 설정"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "잘못된 위치: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "잘못된 서브셋: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "와"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "여러분의 프로필은 프로젝트에서 승인하는 순간 다른 사람들에게 공개됩니다. 이 작업은 며칠정도 소요됩니다."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "여러분의 프로필이 승인되지 않았습니다. 다른 사람들에게 공개되지 않습니다. 다르게 바꿔 주세요."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "데이터베이스 오류"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "스팸을 방지하기 위해서 평균 크레딧이 %1 이하인 사용자의 프로필은 로그인한 사용자에게만 표시됩니다. 불편을 드려서 죄송합니다."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "사용자가 차단되었습니다"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "해당 사용자 ID의 프로필이 없습니다."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "프로필 수정하기"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "이 프로필에 대한 피드백"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "오늘의 사용자로 이 프로필을 추천하기:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "이 프로필을 %1추천%2합니다"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "공격적인 프로필을 관리자에게 경고하기:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "이 프로필을 %1비추합니다%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "불확실한 플랫폼"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "DB에 없습니다"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "보류 중"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "전체"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "진행 중"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "검증 유보 중"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "불확실한 검증"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "인증됨"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "무효"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "오류"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "미활동"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "미전송"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "완료, 검증 대기 중"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "완료되고 검증됨"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "완료됬으나 무효로 판명됨"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "완료됬으나 검증불가"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "완료됬으나 불확실한 검증"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "완료됬으나 마감 이후에 제출됨"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "완료됨"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "전송할 수 없음"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "서버에서 취소됨"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "기한 내 시작되지 않음 - 취소됨"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "다운로드 중 오류 발생"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "연산 중 오류 발생"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "업로드 중 오류 발생"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "사용자가 취소함"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "업로드 실패: "
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "시간 초과 - 응답 없음"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "불필요"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "검증 오류"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "취소됨"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "완료"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "성공"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "연산 오류"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "중복된 결과"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "응답 없음"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "신규"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "내려받는 중"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "진행중"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "연산 오류"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "업로드 중"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "완료"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "초기 상태"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "불필요"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "작업 유닛 오류 - 검사 미실시"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "검사됬으나 결과 정리는 되지 않음"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "태스크 인증 시간이 지나서 보고됨"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "결과를 전송할 수 없습니다"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "오류가 너무 많습니다 (버그가 있을 수 있습니다)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "결과가 너무 많습니다 (아직 확정되지 않았을 수도 있습니다)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "전체 결과가 너무 많습니다"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "WU가 취소됨"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "인증된 결과과 누락됨"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "예기치 못한 오류: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "태스크 이름"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "상세정보"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "ID 보이기"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "이름 보이기"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "태스크"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "작업 유닛"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "컴퓨터"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "전송 시각"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "보고 시각<br />혹은 마감 시각"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "상세 정보"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "상태"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "실행 시간<br />(sec)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU 시간<br />(초)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "크레딧"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "응용 프로그램"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "작업 유닛"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "리포트 마감 시각"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "보고 시각"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "서버 상태"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "결과"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "클라이언트 상태"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "마감 결과"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "실행 시간"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU 시간"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "인증 현황"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "장치 최고 FLOPS"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "응용 프로그램 버전"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "출력 파일"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Stderr 출력 값"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "상태"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "태스크 이름:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "검색 조건 (하나 이상 사용하세요)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "키워드"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "이름이나 개요에 있는 단어로 팀을 찾으십시오"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "팀 종류"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "활동 중인 팀만 보기"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "검색"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "요청에 대한 창설자의 응답 기한이 지났습니다."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "창설자에게 전송 완료"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "요청됨"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "창설자 응답 기한은 %1입니다"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "없음"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "변경 요구"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "연기됨"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "팀 정보"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "개요"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "웹 사이트"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "공유 프로젝트 통계"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "종류"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "게시판"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "스레드"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "이 팀에 가입"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "노트:만약 'OK to email\"이 프로젝트 환경설정에 설정되어 있으면, 가입한 팀의 창설자가 여러분의 email주소를 알 수 있습니다."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "회원 가입을 허가하지 않습니다"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "창설자 교체 요청이 있습니다"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "%1에 응답함"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "팀 창설자 변경"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "맴버들"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "창설자"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "관리자"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "전 날의 새로운 맴버"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "전체 맴버"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "보기"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "활동하는 맴버"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "크레딧을 가진 맴버"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "관리"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "이전 %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "다음 %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "해당 팀이 없습니다."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "이 기능은 창설자 권한이 필요합니다."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "이 기능은 팀 관리자 권한이 필요합니다"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "경고: 이 팀은 BOINC 광역 팀입니다. 만약 이 곳을 변경하게 되면 덮어쓰게 됩니다. 그 대신에 %1BOINC 광역 팀%2을 수정하세요."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1개인적 노트%2: 팀을 만들면, 프로젝트 환경 설정(자원 공유, 그래픽 설정)이 모든 사람에게 공개됩니다."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "팀 이름, 텍스트 버전"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "HTML 태그를 사용하지 않습니다."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "팀 이름, HTML 버전"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "%1제한된 HTML 태그%2를 사용할 수 있습니다."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "만약 HTML을 모른다면, 이 박스는 빈칸으로 남겨두세요."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "팀 웹 페이지 URL(있을 경우)"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "\"http://\" 제외"
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "이 URL은 이 사이트의 팀 페이지로 링크됩니다."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "팀 개요"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "회원 가입을 허가할까요?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "사용자 프로필"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "여러분이 참여하는 프로젝트들"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "%1이 참여하는 프로젝트들"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "프로젝트"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "사용자 페이지"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "참여 시작 시기"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "컴퓨팅과 크레딧"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "이 계정의 컴퓨터 목록"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "보기"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "공유-프로젝트 ID"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "공유-프로젝트 통계"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "계정"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "팀"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "공유-프로젝트"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "증명서"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "휴대 전화 통계"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "계정 정보"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Email 주소"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "우편 번호"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 참여 시작일"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "변경"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "email 주소"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "비밀번호"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "다른 계정 정보"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "사용자 ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "커뮤니티 기능 사용"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "계정 키"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "환경 설정"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "BOINC가 언제, 어떻게 여러분 컴퓨터를 사용할지 결정"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "컴퓨팅 환경 설정"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "게시판과 쪽지"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "커뮤니티 환경 설정"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "해당 프로젝트 환경설정"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 환경 설정"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "%1의 프로필 보기"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "프로필"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "커뮤니티"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "생성"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 포스트"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "공지"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "팀 탈퇴"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "관리자"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(창설자 변경 요청 대기중)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "팀 구성원"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "팀 찾기"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "창설자 (맴버 제외)"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "친구 찾기"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "친구들"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "컴퓨터들"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "기부자"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "접촉"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "이 사람은 친구입니다"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "친구 관계 취소"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "요청이 보류되었습니다"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "친구로 추가"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "사용자 이름의 처음 또는 끝부분에 공백이 있습니다"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "사용자 이름에는 공백을 쓸 수 없습니다"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "사용자 이름은 HTML 태그를 포함할 수 없습니다"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "로그 아웃"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "로그인"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "계정을 만드세요"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "서버 상태 페이지"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "사용자 요청 처리 중에 데이터베이스 오류가 발생했습니다. 나중에 다시 시도하세요."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "핸들 요청이 불가능합니다"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "시간"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "분"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "초"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "연결 시간 초과. '뒤로 가기'를 누르신 후 페이지를 새로 고치시고 다시 시도하세요."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "형식에 맞춰서 BBCode 태그를 쓰세요"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "정기 점검을 위해 서버가 꺼짐"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1는 현재 정기 점검때문에 일시적으로 종료되었습니다. 나중에 다시 시도하세요."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "선택한 데이터베이스에 접속할 수 없습니다. 나중에 다시 시도해주세요"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "선택한 데이터베이스를 사용할 수 없습니다. 나중에 다시 시도해주세요"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "사용 가능한 글자수"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "이 컴퓨터에서 로그인 유지"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "계정 설정 완료"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "계정명을 입력해야 합니다."
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "이름에는 HTML 태그를 사용할 수 없습니다"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "%1 환경 설정 수정"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "%2용 %1 환경 설정 추가"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "응용 프로그램"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "현재 %1(은)는 다음 응용 프로그램을 사용합니다. 여러분이 %1에 참여할 때 하나 이상의 응용 프로그램이 여러분 컴퓨터로 할당됩니다. 최신 버전의 응용 프로그램이 여러분 컴퓨터로 다운로드될 것입니다. 이 것은 자동으로 처리됩니다. 여러분은 아무 것도 하실 필요가 없습니다."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "플랫폼"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "버전"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "평균 연산력"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BB코드 태그"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BB코드 태그는 프로필과 게시판 포스트에서 사용할 수 있는 텍스트 규격입니다.\n이 것은 HTML과 유사하지만 보다 간단합니다. 태그는 [로 시작해서(HTML에서\n%1로 사용하던 곳) ]로 끝나야 합니다(HTML에서 %2로 사용하던 곳)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "예시"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "긁게"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "기울임"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "밑줄"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "취소선"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "어깨 숫자"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "크게"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "강조"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "웹사이트 링크"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "인용구"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "텍스트 인용구 사용"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "이미지 표시 사용"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "부분적인 코드는 여기 참고"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "특정 코드 표시 사용"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "사전 정의된 텍스트"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "사전 정의된(주로 모노스페이스) 텍스트 표시 사용"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "항목 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "항목2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "항목 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "BOINC 웹사이트 상의 Trac 티켓 링크 사용"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "BOINC 웹사이트 상의 Trac 위키 링크 사용"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "만약 종료 태그나 인수가 제대로 지정되지 않았다면\n규정된 텍스트 대신 원 태그가 표시됩니다."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "계정을 만들 수 없습니다"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "다시 시도하려면 브라우저의 <b>뒤로</b> 버튼을 누르세요."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "ReCaptcha 응답이 틀렸습니다. 다시 시도해 주세요."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "계정을 생성하실려면 초대 코드를 입력해야 합니다."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "초대 코드가 올바르지 않습니다."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "잘못된 이메일 주소: name at domain 형태의 올바른 주소를 입력해야 합니다"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "해당 이메일 주소를 사용한 계정이 이미 있습니다."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "새 비밀번호가 서로 다릅니다"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "비밀번호는 ASCII 문자만 사용할 수 있습니다."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "새 비밀번호가 너무 짧습니다. 최소 비밀번호 길이는 %1 글자입니다."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "계정을 만들지 못했습니다"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "비고: BOINC 관리자를 사용할 경우, 이 양식을 사용하지 마십시오. BOINC를 실행하고, 프로젝트 추가를 선택한 후 이메일 주소와 비밀번호를 입력해주세요."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "이 계정은 %1팀에 속하게 되며 프로젝트 환경 설정은 그 팀 창설자를 따르게 됩니다."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "사진"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 프로필 사진은 왼쪽에 표시됩니다."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "교체하려면 \"찾아보기\" 버튼을 누르고 JPEG나 PNG 파일을 선택하세요 (%1이하)"
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "프로필에서 제거하려면 이 박스에 체크하세요:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "만약 여러분 프로필에 사진을 포함시킬려면 \"찾아보기\" 버튼을 누르고 JPEG나 PNG 파일을 선택하세요. %1이하의 이미지를 선택해주세요."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "언어"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "여러분 프로필을 작성한 언어를 선택해 주세요:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "프로필 제출"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "프로필 작성/수정하기"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "업로드한 이미지 파일 포맷은 지원하지 않습니다."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "%1프로필%2은 여러분의 의견과 배경등을 %3 커뮤니티에서 공유하도록 합니다."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "ReCaptcha 응답이 틀렸습니다. 다시 시도해 주세요."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "첫번째 응답은 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "두번째 응답은 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "프로필 사항이 비었습니다."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "프로필 업데이트에 실패했습니다: 데이터베이스 오류"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "프로필 작성에 실패했습니다: 데이터베이스 오류"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "프로필이 저장되었습니다"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "축하합니다! 여러분의 프로필이 성공적으로 데이터베이스에 입력되었습니다."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "사용자 프로필 보기"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "프로필 만들기"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "스팸을 방지하기 위해서 프로필을 작성하거나 수정하려면 크레딧을 평균 %1 이상 가지고 있어야 합니다. 불편을 드려서 죄송합니다."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "계정을 삭제하지 못했습니다"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "계정이 삭제됨"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "계정이 삭제되었습니다."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "계정 삭제 확인"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "계정을 삭제하면 여러분의 프로필과 게시판\n 포스트를 포함한 모든 개인 정보가\n저희 서버에서 제거될 것입니다.\n이 계정에 연결된 모든 컴퓨터는 어떤 작업도\n요청할 수 없습니다."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "이 것은 되돌릴 수 없습니다.\n한 번 계정이 삭제되면 다시 복구할 수 없습니다."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "정말로 계정을 삭제하시겠습니까?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "네"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "이 계정 삭제"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "아니오"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "이 계정을 삭제하지 않습니다"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "프로필을 삭제하지 못했습니다 - 추후 다시 시도해 주세요"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "삭제 확인"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "프로필이 삭제되었습니다."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "프로필 삭제 확인"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "정말로 실행할까요?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "삭제된 프로필은 영원히 사라지며 복구가 불가능합니다 --\n추후에 다른 프로필을 원한다면\n여러분은 다시 작성해야 할 것입니다."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "확실하면 '삭제'를 누르세요.\n데이터베이스에서 프로필이 삭제됩니다."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "프로필 삭제하기"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "프로필을 삭제하지 않습니다"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - 처리가 완료되었습니다"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "기부해주셔서 감사합니다!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "기부가 완료되었습니다."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "여러분이 하신 기부는 PayPal을 통해 승인되어서 내역에 추가될 것입니다."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "기부를 취소하셨습니다."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "이 프로젝트는 기부를 받고 있지 않습니다."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 기부하기"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "이 프로젝트에서 수용하는 기부 수단\n%1"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "기부하실려면 아래 항목 중에서 기부하시고자 하는 양만큼 채워주십시오.\n        PayPal은 다양한 화폐를 수용합니다.\n        (캐나다 달러, 유로, 영국 파운드, 미국 달러,\n        엔, 오스트레일리아 달러, 뉴질랜드 달러,\n        스위스 프랑, 홍콩 달러, 싱가포르 달러, 스웨덴 크로나,\n        덴마크 크로나, 폴란드 줄러티, 노르웨이 크로네,\n        헝가리 포린트, 체코 코루나)\n        여러분은 다른 화폐로 얼마에 해당되는지\n        알기 위해서 동봉된 화폐 변환기를 사용할 수 있습니다.\n        (참고: 변환율은 어디까지나 추정치이며 실제\n        금액은 다를 수도 있습니다.)"
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "기부하시기를 원하는 금액"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "추정 변환 금액"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "익명 기부"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "만약 여러분의 이름과 계정 번호가 기부자 명단에 표시되길 원치 않으시면\n선택하세요.<br>체크하지 않으면 사용자 ID %1로 기록됩니다"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "여러분의 사용자 ID로 기부하시려면 로그인해 주세요."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "처리됨"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "해당 기부가 승인되었습니다:"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "BOINC 애드온 소프트웨어 다운로드"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "여러 항목의 응용 프로그램을 다운로드할 수 있습니다."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "이들 응용 프로그램은 %1에서 승인받지 않았으며 여러분이 위험부담을 안고 사용하셔야 합니다."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "저희는 이들 응용 프로그램을 설치하기 위한 설명서를 제공하지 않습니다.\n그러나 작성자는 응용 프로그램 설치나 삭제에 관해서 약간의 도움말을 제공할 수도 있습니다.\n그 것으로 충분하지 않다면 작성자에게 연락하세요."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "BOINC를 설치하고 실행하기 위한 설명서는 %1여기%2에 있습니다."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "이 목록은 %1BOINC 웹사이트%2를 중심으로 관리됩니다."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "이 계정의 이메일 주소 변경"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "새 이메일 주소 '%1'이 잘못되었습니다."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "새 이메일 주소가 기존 주소와 같습니다. 아무 것도 바뀌지 않습니다."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "해당 이메일 주소를 가진 계정이 이미 존재합니다"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "잘못된 비밀번호입니다."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "이제 해당 계정의 이메일 주소는 %1입니다."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "이 %1이메일 주소를 인증%2해 주세요."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "데이터베이스 문제로 이메일 주소를 업데이트할 수 없습니다.  나중에 다시 시도해주세요."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "email 주소 변경"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "이 계정의 email 주소를 바꿉니다"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "새 email 주소"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "반드시 올바른 형식(name at domain)으로 입력해 주세요."
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "비밀번호가 없습니까?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "재설정 확인"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "이 행위는 여러분의 커뮤니티 환경설정에서 바꾼 모든 변경 사항을 지울 것입니다. 취소하려면 브라우저의 '뒤로' 버튼을 누르세요."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "환경 설정 재설정"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "오류: 올바른 파일 형식이 아닙니다. 오직 PNG와 JPEG만 지원됩니다."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "서명이 너무 깁니다. 250자 이하로 맞춰 주십시오."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "해당 사용자가 없음:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "새로운 쪽지, 친구 요청, 구독 중인 스레드의 포스트, 기타 다른 사건을 저희가 얼마나 자주 알려주길 원하십니까?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "내 계정 페이지 (이메일 없음)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "이메일로 즉시"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "하루에 한 통"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "게시판 인증"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "아바타"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "게시판에서 여러분을 대표하는 이미지입니다."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "형식: JPG 혹은 PNG. 크기: 최대 4 KB, 100x100 픽셀"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "아바타를 사용하지 않습니다"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "%1에서 제공한 이미지를 인정된 아바타로서 사용"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "업로드한 이미지 사용:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "아바타 미리보기"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "여러분의 아바타가 어떻게 보이나 확인합니다"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "게시판 포스트용 서명"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "%1다양한 무료 서비스%2를 확인하세요\n<br> 동적인 '서명 이미지'를 제공하며, \n<br> 최근 크레딧 정보, 프로젝트 뉴스 등을 보여줍니다."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "기본 서명으로 연결"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "서명 미리보기"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "여러분의 서명이 포럼에서 어떻게 보이나 확인합니다"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "메세지 표시하기"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "표시할 목록"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "아바타 이미지 숨기기"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "서명 숨기기"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "링크된 이미지 보여주기"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "새 창/탭으로 링크 열기"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "특별 사용자 강조"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "이 메세지를 페이지 단위로 표시합니다"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "정렬 방식"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "스레드:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "포스트:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "자동으로 스레드에서 가장 최신 포스트로 건너가기"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "공고 포스트를 가장 위로 옮기지 않기"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "메세지 필터링"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "걸러진 사용자"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "해당 사용자가 쓴 게시판 포스트와 쪽지를 무시합니다."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "사용자 ID (예시: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "필터에 사용자 추가"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "환경 설정을 업데이트하려면 여기를 누르세요"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "재설정"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "혹은 여기를 눌러서 기본값으로 환경설정을 재설정하세요"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "데이터베이스 문제로 비밀번호를 업데이트할 수 없습니다.  나중에 다시 시도해주세요."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "비밀번호 변경"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "비밀번호가 변경되었습니다."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "새 비밀번호"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "새 비밀번호 재입력"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "이름에는 HTML 태그를 사용할 수 없습니다."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "계정을 생성하실려면 계정명을 입력해야 합니다."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "사용자 정보를 업데이트 할 수 없습니다"
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "계정 정보 수정"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "이름 %1 실명 혹은 별명 %2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "여러분의 홈 페이지 URL %1 선택 사항 %2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "우편번호 (ZIP) %1 선택 사항 %2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "정보 업데이트"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "서버 상태"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "태스크 <b>서버 현황</b>은 태스크가 클라이언트로 보내졌는지, 만약 그렇다면 해당 클라이언트가 작업을 마쳤는지 카르켜 줍니다. 가능한 값:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "태스크 전송 준비가 되지 않았습니다(예를 들어 해당 입력 파일을 사용할 수 없습니다)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "태스크 전송 준비가 완료됐으나, 아직 전송되지 않았습니다."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "진행 중"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "태스크가 전송되었습니다. 완료를 기다리는 중."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "태스크가 클라이언트로 전송되었으며 태스크의 마감이 지났거나 클라이언트에서 연산 완료를 보고했습니다."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "결과"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "태스크 <b>결과</b>는 태스크 서버 현황이 <b>완료</b>됨을 정의합니다. 가능한 값:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "태스크가 클라이언트로 전송되었으나, 클라이언트에서 아직 연산이 완료되지 않았으며 결과를 보고하지 않았습니다."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "클라이언트에서 연산을 완료했으며 성공적으로 보고했습니다."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "서버에서 클라이언트로 태스크를 전송할 수 없습니다 (아마도 해당 자원의 요구 사항이 너무 큰 듯 합니다)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "클라이언트 오류"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "태스크가 클라이언트로 전송되었으나 오류가 발생했습니다."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "태스크가 클라이언트로 전송되었으나 마감 시각까지 어떤 응답도 받지 못했습니다."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "해당 작업 유닛의 다른 태스크가 충분히 완료되었기에 클라이언트에게 태스크를 전송하지 않았습니다."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "태스크가 보고되었으나 인정되지 않았습니다. 일반적으로 출력 파일이 서버에서 유실되었기 때문입니다."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "클라이언트 상태"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "결과물의 <b>클라이언트 상황</b>은 오류가 발생한 연산 과정을 가르켜 줍니다."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "클라이언트가 아직 태스크를 완료하지 못했습니다."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "클라이언트가 성공적으로 태스크를 완료했습니다."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "클라이언트가 응용 프로그램 또는 입력 파일을 다운로드 받지 못했습니다."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "연상 도중에 오류가 발생했습니다."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "클라이언트가 출력 파일을 업로드하지 못했습니다."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "보고 시각 및 마감 시각"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "태스크 <b>보고된 시간 또는 마감 시각</b> 필드는 태스크가 이미 보고되었는지 여부에 따라 다릅니다:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "이미 보고됨"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "태스크가 보고된 날짜/시각"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "아직 보고되지 않음, 마감이 남았음"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "마감 시각, 초록색으로 표시."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "보고되지 않음, 마감을 넘겼음"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "마감 시각, 적색으로 표시."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "알 수 없는 항목"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "이메일 미리보기"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "이메일은 다음처럼 표시될 것입니다:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "이메일 보내기"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "메세지 폼으로 돌아가려면 브라우저의 뒤로 버튼을 사용하세요"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "이메일 전송 중"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "%1에게 성공적으로 메일을 보냈습니다"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "%1에게 메일을 보내지 못했습니다: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "%1을 친구들에게 전해주어서 감사합니다"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "친구의 이름 혹은 이메일 주소를 입력하지 않았습니다. 빠진 부분을 %1입력 폼으로 돌아가서 입력%2해주시기 바랍니다."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "이 프로젝트는 이메일 메세지를 생성할 수 없습니다 - 관리자에게 문의해 주세요"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "%1을 친구에게 말해주세요"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "%1을 친구, 가족, 직장 동료들에게 알려주어서 도와주세요"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "%1에 흥미를 가질 것 같은 사람들의 이름과 이메일 주소를 이 양식에 채워주세요. 여러분의 이름이 들어간 이메일(원한다면 메세지를 추가할 수도 있습니다.)을 저희가 그들에게 보낼 것입니다."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "여러분의 이름:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "여러분의 이메일 주소:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "친구 이름:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "친구의 이메일 주소:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "추가할 메세지(선택 사항)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "보내기"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "당신은 차단된 사용자이므로 접근할 수 없습니다."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "차단 투표"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "해당 ID의 사용자를 찾지 못했습니다."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "사용자가 이미 차단되었습니다"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "정말로 %1을 차단하시겠습니까?<br />이로써 지정된 기간 동안 %1은 포스팅을 할 수 없게 됩니다.<br />이 기능은 오직 %1이 유해한 행동을 일관되게 저지를 경우에만 사용하십시오."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "이유 카테고리를 선택하세요. 추가적으로 왜 이 사용자가 차단되어야 하는지 보다 긴 설명을 쓸 수 있습니다."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "카테고리"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "음란한 내용"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "분란/시비성 메일"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "사용자 요청"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "이유"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "입력될 경우 메일로 알립니다"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "투표로 처리됨"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "행동을 지정해야 합니다..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "더 이상 이 포스트를 편집할 수 없습니다.<br />포스트는 생성되고나서 %1 분 후에 편집할 수 있습니다."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "이 포스트를 수정할 권한이 없습니다."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "포럼"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "메세지 수정하기"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "제목"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "이 포스트에 서명을 추가하기"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "여러분에게 보이지 않음"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "%1용 팀 게시판 생성"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "새 스레드"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "이 스레드에 새로운 스레드를 추가하기"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "이 게시판은 %1RSS 피드%2로도 제공됩니다"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "이 스레드는 숨겨졌습니다"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "이 스레드는 공고 사항이며 아직 읽지 않았으며 잠겨 있습니다"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "공고/잠김/읽지 않음"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "이 스레드는 공고 사항이며 아직 읽지 않았습니다"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "공고/읽지 않음"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "아직 이 스레드를 읽지 않았으며 잠겨 있습니다"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "읽지 않음/잠김"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "아직 이 스레드를 읽지 않았습니다"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "이 스레드는 공고 사항이며 잠겨 있습니다"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "공고/잠김"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "이 스레드는 공고입니다"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "공고"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "이 스레드는 잠겨 있습니다"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "잠김"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "이 스레드를 읽었습니다"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "읽음"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "질문과 답변"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Skype를 통해서 여러 언어로 기여자들과 실시간으로 이야기하세요. %1BOINC 온라인 도움말%2로 가세요."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "주제"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "질문"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "%1 멤버들과 토론"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 게시판"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "질문이 있거나 문제가 생기면 게시판에서 %1질문 & 답변%2 섹션을 이용해 주세요."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "스레드 구독하기"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "포스트 관리하기"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "포스트 숨기기"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "상업적 스팸"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "2중 포스트"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "포스트 이동"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "목표 스레드 ID:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "사용자 차단"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "차단 기간"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 시간"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "하루"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 주"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 주"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 달"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "영구"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "확인"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "추가적 해명 %1 이 사항은 포함되어서 사용자에게 전해집니다.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "이 포스트를 관리할 권한이 없습니다."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "다른 종류의 카테고리로 옮길 수 없습니다"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "다른 카테고리로 옮길 수 없습니다"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "차단된 사용자이므로 접근할 수 없습니다"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "차단"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "사용자 %1가 차단되었습니다."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "액션 실패: 가용 데이터베이스 문제"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "인정되지 않음"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "스레드 '%1' 관리하기"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "이유 카테고리를 선택하세요. 아니면 왜 이 스레드를 숨기거나 잠겨야 하는지 보다 긴 설명을 쓸 수 있습니다. 확인을 누르세요."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "현재 포럼"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "목표 포럼"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "새 제목:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "오직 프로젝트 관리자만 이곳에 스레드를 생성할 수 있습니다. 그러나 기존 스레드에 리플은 달 수 있습니다."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "여러분의 글을 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "새 스레드 만들기"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "새 스레드 만들기"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "추가할 제목 기억하기"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "이 항목을 BOINC 관리자에서 공지 사항으로 보이기"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "관심을 가질만한 기여자들에게 이 행동을 실행하십시오."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "오프라인 점수"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "프로젝트에서 해당 기능을 껐습니다"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "포스트를 평가하려면 더 많은 평균 혹은 총 크레딧이 필요합니다."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "이미 이 포스트를 평가했습니다."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "스레드로 돌아가기"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "입력 사항이 기록됨"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "입력한 내용이 기록되었습니다. 도와주셔서 감사합니다."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "투표가 등록됨"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "평가 점수가 기록되었습니다. 입력해 주셔서 감사합니다."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "해결 의뢰할 문제를 투표하기"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "여러분의 글을 Akismet 스팸방어 시스템이 스팸으로 분류하였습니다. 텍스트를 수정하고 다시 시도해주세요."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "스레드 글쓰기"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "내용:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "%1메세지 ID%2에 답하기:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "포스트 답글"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "이 답글에 내 서명을 추가하기"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "포스트를 작성하려면 더 많은 평균 혹은 전체 크레딧이 필요합니다."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "신고가 등록됨"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "여러분의 응답이 기록되었습니다. 입력해주셔서 감사합니다."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "관리자가 여러분의 보고서를 보고 다음에 어떻게 할지 결정합니다. 이는 시간이 꽤 걸립니다. 그러므로 기다려 주세요."
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "포럼 포스트 신고"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "이 포스트를 신고하기 전에 +/- 등급 시스템 사용을 고려해 보세요. 만약 충분한 사용자들이 포스트에 부정적인 등급을 매겼다면 결국 숨김 처리될 것입니다.<br />포스트 하단부에서 등급 시스템을 찾을 수 있습니다."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "포스트 신고"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "왜 불쾌한 포스트를 찾습니까?: %1충분한 정보를 제공하세요. 그렇게 함으로써 사람들이 아직 읽지\n않은 스레드에서 신속하게 문제 사항을 식별할 수 있게 됩니다.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "신고가 등록되지 않음"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "신고가 기록되지 못했습니다. 잠시 기다리신 후에 다시 시도하세요."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "만약 이 것이 일시적인 오류가 아니라면, 프로젝트 개발자에게 보고하세요."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS 피드"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "이 게시판은 RSS 피드로도 제공됩니다."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "부가 사항:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "사용자 ID %1이 포함된 것만 표시합니다(기본값: 모든 사용자)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "최근 %1 일간의 포스트만 표시합니다(기본값: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "스레드만 표시: %1 (모든 스레드의 첫번째 포스트만 표시합니다)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "포럼 검색"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "검색 요청"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "키워드로 찾기:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "정의된 단어가 모두 포함된 포스트들이 표시될 것입니다"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "예시: \"screensaver freeze\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "작성자 ID로 찾기:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "해당 작성자가 쓴 포스트만 표시될 것입니다"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "예시: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "검색 옵션"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "검색 제한"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "최근 며칠 사이의 결과 검색"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 달"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 년"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "제한 없음"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "해당 포럼의 포스트만 표시"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "정렬 순서"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "검색 시작"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "포럼 검색 결과"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "요청에 맞는 스레드 제목:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "요청에 맞는 내용:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "죄송합니다. 검색 큐와 일치하는 어떤 것도 찾을 수 없습니다. 더 적은 단어(또는 더 적은 특정 단어)를 사용해서 검색 범위를 넓힐 수 있습니다."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "또한 %1구글에서 같은 내용을 검색%2할 수 있습니다."
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "다른 검색 실행"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "구독에 성공했습니다"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "%1을 구독하기로 했습니다. 새로운 포스트가 등록되면 알려줄 것입니다."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "구독에 실패했습니다"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "현재 %1을 구독할 수 없습니다. 나중에 다시 시도해주세요."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "구독 해제에 성공했습니다"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "더 이상 %1을 구독하지 않기로 했습니다. 더 이상 이 스레드에 관한 알림을 받지 못할 것입니다."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "구독해제에 실패했습니다"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "현재 %1 구독을 해제시킬 수 없습니다. 나중에 다시 시도해주세요."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "알려지지 구독 액션"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "이 포럼은 여러분이 볼 수 없습니다."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "이 스레드는 관리자가 숨겨놓았습니다"
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "질문에 답이 달렸습니다"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "만약 여러분 질문에 충분한 답변이 달렸다면 여기를 누르세요"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "이 질문에 답을 얻었습니다"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "이 스레드에 새로운 내용을 추가하기"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "구독 취소"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "여러분은 이 스레드를 구독하고 계십니다. 구독을 취소하려면 여기를 누르세요."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "구독하기"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "이 스레드에 새로운 포스트가 올라올 때 이메일로 보내주길 원하면 클릭하세요"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "이 스레드 숨김을 풉니다"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "이 스레드 숨기기"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "찐득이 떼기"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "이 스레드에서 찐득이를 뗍니다"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "찐득이 붙이기"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "이 스레드를 항상 포럼 상단에 고정시키기"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "잠금 해제"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "이 스레드에 새로운 포스트 작성 허용"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "잠그기"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "이 스레드에 새로운 포스트 작성 금지"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "이 스레드를 다른 포럼으로 이동시킵니다"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "제목 수정"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "스레드 제목 수정"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "영구적으로 스레드 삭제"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "공지 사항으로 반출"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "반출하지 않음"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "이 뉴스 항목을 공지 사항으로 반출하지 않습니다"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "정렬"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "스레드 상태가 업데이트됨"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "상태가 업데이트되었습니다."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "%1 포스트"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "이미 친구입니다"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "%2를 통해 %1에게 친구 관계를 요청했습니다."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "요청이 확정되길 기다리고 있습니다."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1(은)는 친구 관계 요청을 허용하고 있지 않습니다."
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "여러분 자신과는 친구가 될 수 없습니다"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "친구로 추가"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "%1을 친구로 추가하길 요청했습니다. %1에게 알리고 그에게 당신을 친구로 할지 확인하도록 요청할 것입니다."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "부가적인 내용은 여기에 추가하세요:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "친구 요청을 보냈습니다"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "여러분의 요청 %1에 대해서 알렸습니다."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "%1로 로그인하세요"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "해당 친구 요청을 보려면 %1로 로그인해야 됩니다"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "친구 요청"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1가 당신에게 친구 관계를 요청했습니다."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1의 말: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "친구 관계를 수락"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "%1이 사실상 친구라면 클릭해서 승낙합니다"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "거절"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "%1이 친구가 아니라면 클릭해서 거절합니다"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "친구 관계 확인됨"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "%1과 맺은 친구 관계가 확인되었습니다."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "친구 관계 거절"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "%1과의 친구 관계를 거절했습니다"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "공지를 찾을 수 없습니다"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "친구 확인"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "지금부터 %1와(과) 친구입니다."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "친구 관계를 취소합니까?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "정말로 사용자 %1과의 친구 관계를 취소하시겠습니까?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "친구로 등록"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "친구 관계가 취소됨"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "%1과 맺은 친구 관계가 취소되었습니다."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) 만약 해당 계정의 이메일 주소를 알고 있으며, 이메일을 받을 수 있는 경우:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "하단에 이메일 주소를 입력하고 확인을 누르세요. 비밀번호를 초기화하기 위한 절차가 이메일로 전송됩니다."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) 만약 해당 계정의 이메일 주소를 잊었거나, 이메일을 받을 수 없는 경우:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "해당 계정으로 BOINC를 실행하고 있다면 계속 접근할 수 있습니다. 방법:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "컴퓨터상의 BOINC 데이터 디렉토리로 이동하세요.(해당 디렉토리 위치는 BOINC 관리자의 이벤트 기록에 쓰여져 있습니다.)"
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "해당 프로젝트용 계정 파일을 찾으세요. 해당 파일은 <b>%1</b>입니다."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "메모장같은 텍스트 편집기로 파일을 여세요. 다음과 같은 것들을"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "%1과 %2 사이에 있는 문자열을 선택하고 복사하세요.(상단의 %3은 예시)"
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "하단의 입력란에 문자열을 붙여넣고 확인을 누르세요."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "여러분 계정은 로그인 상태를 유지할 것입니다. 여러분 계정의 메일 주소와 비밀번호를 업데이트하세요."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "인증 부호로 로그인 하기"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "계정 정보를 잊었습니까?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "보고된 GPU 태스크가 없습니다"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "최고 GPU 칩셋"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "다음 목록은 다른 플랫폼에서 가장 효율성이 높은 GPU 종류를 보여줍니다.  괄호 안 내용은 상대적인 속도를 나타냅니다."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "%1에 오신 걸 환영합니다"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "하단에 표시된 링크를 사용해서 계정 환경 설정을 보고 수정할 수 있습니다."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "만약 아직 그렇지 않다면 %1BOINC 클라이언트 소프트웨어를 다운로드하세요%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "계정"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "불확실한 플랫폼, 어플이 빠짐"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "불확실한 플랫폼"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "앱 버전 누락"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "어플이 빠짐"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "플랫폼 누락"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "태스크가 완료됨"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "하루 태스크 최대량"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "오늘의 태스크 수"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "연속적으로 인정된 태스크"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "평균 처리율"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "응용 프로그램 상세 정보: 호스트 %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "컴퓨터 기록이 없습니다."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "이 컴퓨터의 저희 기록을 삭제할 수 없습니다. 왜냐하면 저희 DB는 여전히 그 것을 포함한 채 작동하기 때문입니다. 프로젝트 DB에서 해당 컴퓨터의 작업이 삭제되기 전까지 며칠간 기다려야 합니다."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "컴퓨터 기록 삭제"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "기록이 삭제되었습니다."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "컴퓨터 목록으로 돌아가기"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "컴퓨터 기록 병합"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "컴퓨터 병합"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "때때로 BOINC는 실수로 같은 컴퓨터를 개별적인 존재로 인정합니다. 여러분은 오래된 것을 새로운 것으로 통합시켜서 바로잡을 수 있습니다."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "이 호스트와 통합할 자격이 있는 호스트가 없습니다."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "상세정보 보이기"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "%1과 같은 컴퓨터인지 확인합니다(생성 %2, 컴퓨터 ID %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "이름"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "생성 시각"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "컴퓨터 ID"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "호스트이름 없음"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "호스트 병합"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "컴퓨터 크레딧 업데이트 중"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "호스트 크레딧이 업데이트됨"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "호스트 위치가 업데이트됨"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "없음"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "이 호스트의 위치가 %1로 설정되었습니다."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "이 변화는 다음 번에 해당 호스트가 이 프로젝트 서버와 통신할 경우 적용될 것입니다."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "호스트 페이지로 돌아가기"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1에 속한 컴퓨터"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "컴퓨터가 숨겨짐"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "이 사용자는 소속된 컴퓨터 정보를 보여주지 않도록 선택했습니다."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "컴퓨터"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "허용된 HTML 태그"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "팀 개요에서 다음 HTML 태그들은 허용됩니다:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "긁게"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "기울임"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "하이퍼 링크"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "단락"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "구분"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "사전 정의됨"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "이미지: 높이는 450 픽셀을 초과할 수 없습니다. 이미지가 올려진, 권한없는 웹 사이트에 이미지를 링크하지 마십시오."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "여러분은 또한 &, 주석같은 특수 문자들을 사용할 수 있습니다."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "규칙과 정책을 읽어주십시오"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "%1(은)는 검증된 컴퓨터로만 실행하십시오"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "%1(은)는 여러분이 가진 컴퓨터 또는 소유자의 허락을 얻은 컴퓨터로 수행하십시오. 어떤 회사와 학교는 %1(과)와 같은 프로젝트를 수행하지 못하게 하려고 그들의 컴퓨터를 사용하지 못하게 하는 정책을 가지고 있습니다."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "%1(은)는 이렇게 여러분의 컴퓨터를 사용합니다"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "%1(을)를 실행하실 경우 여러분 컴퓨터의 CPU, 디스크 공간, 네트워크 대역폭 중 일부를 사용하게 됩니다. 여러분은 언제, 얼마만큼 %1이 여러분의 컴퓨터 자원을 사용할지 제어할 수 있습니다."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "여러분이 가진 컴퓨터로 한 작업은 %1 웹 사이트에 설명된 목표에 도달하는데 공헌하고 있습니다. 응용 프로그램은 시간이 지나면 바뀔 수 있습니다."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "사생활 보호 정책"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "%1(은)는 여러분이 선택한 이름을 바탕으로 여러분을 식별합니다. 이 이름은 %1 웹 사이트에서 여러분의 컴퓨터로  %1(을)를 수행한 결과와 함께 보여질 것입니다. 만약 익명으로 남길 원한다면 여러분의 이름을 밝히지 않도록 선택하십시오."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "만약 여러분이 %1에 참여한다면 여러분의 컴퓨터 정보(프로세서 종류, 메모리 용량, 기타)가 %1 서버에 기록됩니다. 이 것은 여러분 컴퓨터로 어떤 작업을 할당할지 결정하기 위해 사용됩니다. 이 정보는 또한 %1 웹 사이트에 공개됩니다. 여러분 컴퓨터의 위치를 알 수 있는 정보(예를 들어 도메인 네임이나 네트워크 주소)는 아무 것도 공개되지 않습니다."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "%1에 참여하려면 여러분이 실제로 받아볼 수 있는 email 주소를 제공해야 합니다. 이 주소는 %1 웹 사이트에 공개되지 않으며, 다른 기관과 공유하지도 않습니다. %1(은)는 여러분에게 주기적으로 소식지를 보낼 수도 있습니다. 그러나 이 것은 언제든지 거부할 수 있습니다."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "%1 웹 사이트를 통해 보낸 쪽지는 송신자와 수신자만 볼 수 있습니다. %1은 쪽지 내용을 검사하거나 감시하지 않습니다. 만약 여러분이 다른 %1 사용자에게서 쪽지를 받길 원하지 않는다면 그 것들을 %2메세지 필터%3에 추가할 수 있습니다. 이 것은 불특정 다수에게 보여지거나 혹은 다른 사용자에게서 온 쪽지로부터 원하지 않는 메세지를 막아줍니다."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "만약 우리 웹사이트 포럼을 이용하려면 %2글 쓰기 가이드라인%3을 따라야 합니다. %1 포럼에 작성된 게시물은 멤버가 아닌 사람을 포함한 누구나 볼 수 있습니다. 포럼에 글을 쓰면 여러분의 포스트들은 누구나 볼 수 있고 복사할 수 있는 권리를 부여받게 됩니다."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "%1(을)를 실행해도 안전합니까?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "언제든지 여러분은 인터넷을 통해서 프로그램을 다운로드할 수 있습니다. 어떤 때는 프로그램이 위험한 오류를 가지고 있을 수 도 있고 다운로드 서버가 해킹당했을 수도 있습니다. %1(은)는 이러한 위험을 최소화하기 위해 노력합니다. 우리는 우리의 응용 프로그램을 조심히 테스트합니다. 우리 서버는 높은 보안성을 위해서 방화벽 뒤에 두고 있습니다. 프로그램 다운로드를 안전하게 하기 위해서 모든 실행가능한 파일은 인터넷에 연결되지 않은 안전한 컴퓨터로 디지털 서명을 하고 있습니다."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "%1 응용을 수행 중에 어떤 컴퓨터는 과부하가 걸릴 수 있습니다. 만약 그렇게 되었다면 %1 수행을 중지하시거나 CPU사용량을 제한하기 위해 %2유틸리티 프로그램%3(을)를 사용하십시오."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1(은)는 %2에서 개발했습니다. BOINC는 California 대학에서 개발했습니다."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "책임"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1(과)와 %2(은)는 %1에 참여한 결과로 인해 발생할지도 모르는 컴퓨터가 입은 충격, 데이터 손실, 혹은 어떤 사건이나 손해도 책임지지 않습니다."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "다른 BOINC 프로젝트들"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "다른 프로젝트도 %1처럼 BOINC 플랫폼을 사용합니다. 여러분이 이들 프로젝트에 하나 이상 참여할 생각이 들지도 모릅니다. 그렇게 함으로서 %1에서 수행할 작업이 없어도 여러분 컴퓨터는 유용한 작업을 수행할 수 있습니다. "
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "다른 프로젝트는 %1(과)와 아무 관련이 없으며, 그들의 보안 상태나 그들이 하는 연구의 성격을 보증할 수 없습니다. 여러분은 위험을 감수하고서 그 것에 참여하셔야 합니다."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "언어 선택"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "이 웹 사이트는 다양한 언어로 이용할 수 있습니다. 현재 선택한 언어: %1"
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "보통 언어 설정은 여러분의 브라우저 언어 설정을 따릅니다. 현재 언어: %1  이 언어로 바꾸기: "
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: 도구/설정/일반"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: 도구/인터넷 옵션/언어"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "또는 다음 링크 중 하나를 클릭해서 언어를 선택할 수 있습니다.  이 사항은 브라우저에 쿠키로 저장됩니다. 브라우저가 이 도메인의 쿠키를 허용하도록 해야 합니다"
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "언어명 (선택하려면 클릭)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "브라우저 언어 설정 사용"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "번역은 자원봉사로 이루어 집니다. 만약 여러분의 언어가 여기에 없다면 %1번역을 할 수도 있습니다%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "또는 %1계정을 만드세요%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "진행중 %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1를 %2에 동기화"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "여러분의 컴퓨터 목록으로 돌아가기"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "이 명령은 도메인 이름에 기반해서 컴퓨터를 병합니다.\n        <p>\n        개별 도메인 이름별로 동일한 이름을 가진 모든 이전 컴퓨터는\n        같은 이름을 가진 가장 최신 컴퓨터로 병합될 것입니다.\n        호환되지 않는 컴퓨터는 병합되지 않을 것입니다.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "그대로 실행하세요"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "컴퓨터 목록으로 돌아가기"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\n논의를 활성화시키고 정보의 흐름을 촉진시키고자\n저희 게시판을 관리하고 있습니다.\n게시판 글쓰기는 다음 게시물 규칙을 따르고 있습니다.\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\n관리자는 이 규정을 위반한 포스트를 삭제할 것입니다.\n삭제된 포스트는 작성자에게 이메일로 통보됩니다.\n상습적인 위반자는 일시적으로 글을 쓸 권한을 잃게 될 것입니다.\n(그렇지만 남용을 방지하기 위해서 오직 프로젝트 운영자만 그럴 권한을 갖습니다.)\n추가적으로 안 좋은 행동(다른 참여자들의 IP 주소를 수집하기 위한 함정을\n놓는 \"도청\" 포스트, 포럼 내에 과도한 스레드를 생성해서 도배하는\n행위, 기타)은 공식 규정에 명시되지 않았지만 유사한 패널티를\n받을 가능성이 존재합니다.\n<p>\n만약 여러분이 생각하기에 게시판 규정을 포스트로 보이면\n포스트 상의 빨간 X 버튼을 클릭하고 양식을 작성해 주세요.\n여러분이 제기한 불만은 관리자에게 통보될 것입니다.\n이 버튼은 개인적인 관점인 아닌 명백한 위반일 경우에만\n사용해 주세요\n<p>\n저희는 관리시 최대한 공정하게 하려고 노력합니다.\n그렇지만 다른 관점을 가진 많은 사용자 [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "지급 유보된 크레딧"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "결과 ID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "작업 유닛 ID"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "호스트 ID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "요청된 크레딧"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "지급 유보된 크레딧: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "해당 사용자로부터 온 메세지 차단"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "사용자 차단"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "메세지가 전송되었습니다."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "쪽지가 없습니다."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "전송자와 날짜"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "이 메세지에 답하기"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "이 메세지 지우기"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "전체 선택"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "전체 선택 해제"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "선택된 메세지 지우기"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "송신자"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "날짜"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "쪽지를 보낼려면 모든 칸을 채워야 합니다"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "여러분의 글이 스팸으로 분류되었습니다\n                이는 Akismet 시스템이 처리합니다.\n                텍스트를 수정하고 다시 시도해주세요."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "ID %1을(를) 가진 사용자를 찾을 수 없습니다"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "사용자 이름 %1을(를) 가진 사용자를 찾을 수 없습니다"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1은(는) 고유한 사용자 이름이 아닙니다; 사용자 ID를 이용하세요"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "사용자 %1 (ID: %2)는 여러분의 쪽지 수신을 허용하고 있지 않습니다."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "해당 사용자가 없습니다"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "정말로 %1을 차단하시겠습니까?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "정말로 사용자 %1에게서 오는 쪽지를 차단하시겠습니까?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "제한된 숫자의 사용자를 차단할 수 있다는 걸 알아두세요."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "사용자가 차단되었습니다. 포럼 환경 설정 페이지에서 차단을 해제할 수 있습니다."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "아니오, 취소합니다"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "해당 사용자가 없습니다"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "사용자 %1이 차단되었습니다"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "사용자 %1에게서 오는 쪽지가 차단되었습니다."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "차단을 해제할려면, %1게시판 환경설정%2을 방문하세요"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "알려지지 행동"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "환경 설정이 업데이트되었습니다. 바뀐 설정은\n          여러분 컴퓨터가 %1 서버와 통신을 한 후에 적용될 것이며\n          혹은 BOINC 관리자에게 %2업데이트%3 명령을 요청할 수 있습니다."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "환경 설정이 기본값으로 초기화되었습니다. 바뀐 설정은\n          여러분 컴퓨터가 %1 서버와 통신을 한 후에 적용될 것입니다.\n          혹은 BOINC 관리자에서 %2업데이트%3 명령을 요청할 수 있습니다."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%2 %1"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "환경 설정으로 돌아가기"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "환경 설정 삭제 확인"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "정말로 %2 전용 환경 설정%1을 삭제하시겠습니까?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "환경 설정 제거"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "취소"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "프로필"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1프로필%2은 배경 지식과 의견을 %3 커뮤니티에서 개별적으로 공유하도록 합니다."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "여러분과 같은 기여자들의 다양성을 경험하고, 다른 사람과 즐기기 위해서 공헌할 수 있습니다."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "만약 아직 만들지 않았다면, 다른 사람에게 보여주기위해 %1사용자 프로필을 생성%2할 수 있습니다!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "오늘의 사용자"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "사용자 프로필 탐색기"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "%1사용자 사진 갤러리%2 보기"
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "%1 국가%2로 프로필 탐색"
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "%1 무작위%2, %3 무작위 사진 있음%2, 혹은 %4 무작위 사진 없음%2으로 프로필 탐색."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "알파벳 순서 프로필 목록:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "프로필 텍스트로 검색"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "프로필이 없습니다"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "조건에 맞는 프로필이 없습니다."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "잘못된 투표 종류:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "투표가 기록됨"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "감사합니다"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "추천서가 기록되었습니다."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "이 프로필에 대한 거부 투표가 기록되었습니다."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "프로필로 돌아갑니다."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "'%1'을 포함한 프로필"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "사용자 이름"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "참여 프로젝트"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "최근 크레딧"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "'%1'을 포함한 프로필을 찾지 못했습니다"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "해당 태스크가 없음:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "이 기능은 일시적으로 꺼집니다"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "ID %1가 가진 컴퓨터를 찾지 못했습니다"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "접근불가"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "빠진 사용자 ID 혹은 호스트 ID"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "표시할 태스크가 없습니다"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "오늘의 사용자"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "미실행중"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "가동 중"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "비활성화"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "프로젝트 상태"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "서버 상태"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "프로그램"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "호스트"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Database schema version: "
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "컴퓨팅 현황"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "사용자"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "태스크 수행 프로그램"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "최근 100개의 태스크 실행 시간: 평균, 최소, 최대"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "최근 24시간내에 활동한 사용자"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "컴퓨터 %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "통계와 명예의 전당"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "통계 %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "최고 기여자들"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "최고 팀"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "최고 컴퓨터"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU 종류"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU "
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "%1에 대한 더 자세한 통계와 다른 BOINC 기반 프로젝트들은 여러 웹사이트에서 이용 가능합니다:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "또한 여러분의 현재 통계는\"서명 이미지\" 형식으로도 얻을 수 있습니다:"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "거기다 모든 BOINC 프로젝트들을 통틀어서 정리된 개인별 통계는 여러 사이트에서 얻을 수 있습니다. %1홈 페이지%2를 봅니다."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "팀"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 참여자는 %2팀%3 형식을 띄고 있습니다."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "여러분은 오직 한 팀에만 소속될 수 있습니다. 언제든지 팀에 가입하거나 탈퇴할 수 있습니다."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "각 팀은 %1창설자%2가 있습니다:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "팀 멤버가 가진 이메일 주소를 열람"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "팀 이름과 개요를 수정합니다"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "팀 관리자 추가 혹은 제거"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "팀에서 멤버 추방하기"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "만약 팀 멤버가 없으면 팀을 해산할 수 있습니다"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "팀에 가입하려면 팀 홈페이지를 방문해서 %1팀 가입하기%2를 누르십시오."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "팀 찾기"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "모든 팀들"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 팀"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "새로운 팀 만들기"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "만약 여러분에게 맞는 팀을 찾지 못하셨다면 여러분은 %1팀을 만들 수도 있습니다%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "이 멤버에서 팀 관리자 상태 제거"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "팀 관리자 추가 혹은 제거"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "당신은 팀원을 '팀 관리자'로 지정할 수 있습니다. 팀 관리자 권한:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "팀 정보 수정 (이름, URL, 개요, 국가)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "팀 가입/탈퇴 기록 보기"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "모든 팀 포럼 관리 (관리자는 관리 기록 사항 또는 빨간 X 보고서 등을 이메일로 받아볼 수 있습니다)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "팀 관리자가 불가능한 것:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "팀 창설자 변경"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "맴버 추방"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "만약 팀 관리자가 팀을 탈퇴하면 팀 관리자도 그만두게 됩니다."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "우리는 여러분이 잘 알고 있고 신뢰할 수 있는 사람을 팀 관리자로 선택하기를 추천합니다."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "현재 팀 관리자가 없습니다"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "현재 팀 관리자들"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "팀 관리자로 승인되었습니다"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "팀 관리자 추가"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "팀 멤버 Email 주소:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "추가"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "관리자 제외에 실패했습니다"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "해당 사용자는 팀 회원이 아닙니다"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1은 이미 %2의 관리자입니다"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "관리자 추가 불가"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "해당 팀이 없습니다."
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "해당 팀이 없습니다."
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "해당 사용자는 %1의 멤버가 아닙니다"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "%1 창설자 변경합니다"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1은 지금부터 %2의 창설자입니다"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "%1 창설자 변경"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "팀원 %1은 %2의 팀 창설자로 요청되었습니다. 그러나 팀을 떠나게 되면 요청은 취소됩니다."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "팀원 %1은 이 팀의 창설자로 요청되었습니다. 그 것은 당신이 팀을 떠났거나 오랜 시간동안 팀에 접촉하지 않았기 때문일 것입니다."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "요청 거부"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "%1의 요구를 거부하지 않는다면 %2는 팀 창설자에 취임할 선택권을 가지게 됩니다.<br /><br />\n                  요청을 수락하려면 하단에 양식을 이용해서 %3을 창설자로 임명하세요."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "전송 요청이 보류되었습니다."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "이 팀의 다른 사람을 창설자로 임명하려면 멤버 이름 옆 상자에 체크하고 하단에 있는 <strong>창설자 변경</strong>을 클릭하세요."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "새 창설자로 바꿀까요?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "창설자 변경"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "팀에서 인계받을 사용자를 찾지 못했습니다."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "공백없이 팀 이름을 입력하셔야 합니다"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "팀 이름 %1(은)는 이미 존재합니다 - 다른 이름으로 해보세요"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "팀을 만들지 못했습니다 - 다음에 다시 시도해 주세요."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "팀을 만듭니다"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "%1에 소속되었습니다. 새로운 팀을 만들려면, 그 전에 %2이 팀을 탈퇴%3하셔야 됩니다."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "창설자 혹은 관리자가 아닙니다"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "%1 팀 역사"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "시간"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "사용자"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "행동"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "활동 시간에 따른 전체 크레딧"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "비선호 국가"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "해당 이름 '%1'은 다른 팀에서 사용하고 있습니다."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "팀 이름을 반드시 기입하세요"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "팀 정보를 업데이트하지 못했습니다 - 다음에 다시 시도해 주세요."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "%1 수정"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "팀 정보 업데이트"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 Email 목록"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "%1 멤버 목록"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "순수 텍스트로 보기"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "게시판 생성"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "%1을 사용해서 게시판을 만들 수 있습니다."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "팀원만이 글을 쓸 수 있습니다."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "여러분 선택에 따라서 팀원만이 글을 읽을 수 있습니다."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "여러분과 팀 관리자는 편집 권한을 가지고 있습니다."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "%1 게시판 생성"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "이미 팀 게시판이 있습니다"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "팀 게시판"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "포스트 사이의 최소 시간 간격 (초)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "포스팅에 필요한 최소 전체 크레딧"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "포스팅에 필요한 최소 평균 크레딧"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "제출"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "팀 게시판을 제거합니다"
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "정말로 게시판을 제거하시겠습니까?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "정말로 팀 게시판을 제거하시겠습니까? 모든 스레드와 포스트는 즉각 삭제됩니다. (그러나 이후에 새로 게시판을 만들 수도 있습니다)"
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "네 - 게시판을 제거합니다"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "게시판이 제거되었습니다"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "팀 게시판이 삭제되었습니다. 지금부터 %1새로운 게시판을 만들 수 있습니다%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "팀 게시판이 업데이트 되었습니다"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "성공적으로 업데이트됬습니다"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "업데이트 실패: "
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "팀 포럼이 없습니다"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "이 페이지에 접근하려면 팀 멤버여야만 합니다."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "%1 창설자 신청"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "현 창설자에게 당신의 요청 사항을 email과 쪽지로 알렸습니다.<br /><br />\n                       창설자가 60일 이내에 응답이 없으면 당신이 창설자가 되는 것이 허용됩니다."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "현재 창설자 신청을 할 수 없습니다"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "%1의 창설자로 임명되었습니다"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "축하합니다. 당신은 지금부터 %1 팀의 창설자입니다. %2계정 관리%3에 가서 팀 관리자 옵션을 찾아보세요."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "창설자 교체 요청 거절"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "%1에서 요청된 창설자 신청이 거부되었습니다."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "어떤 창설자 요청도 없습니다."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "정의되지 않은 행동 %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "팀 페이지로 돌아가기"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "이 페이지에 접근하려면 팀 멤버여야 합니다."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "%1 창설자 신청"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "지금부터 당신은 팀 %1의 창설자입니다."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "%2의 %1에게 창설자 변경를 신청했습니다."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "요청이 있은지 60일이 지났습니다. 그리고 창설자는 응답하지 않았습니다. 여기를 클릭하면 창설자에 임명됩니다:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "창설자 취임"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "창설자에게 요청 사항을 알렸습니다. 만약 그가 %1에 응답하지 않으면 당신은 창설자가 될 권한을 얻습니다."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "만약 팀 창설자가 활동을 안 하고 있고 당신이 창설자에 임명되길 원하면, 하단에 있는 버튼을 누르세요. 현 창설자에게 당신의 요청 사항이 이메일로 전송되고 당신에게 창설자 권한을 주거나 요청을 거부할 수 있습니다. 만약 창설자가 60일 동안 응답이 없으면 창설자가 되도록 허용됩니다.<br /><br />\n                       정말로 창설권 요청을 하시겠습니까?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "창설자 신청"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "%2의 %1가 창설자 교체 요청을 이미 했습니다."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "최근 90일 이내에 창설자 교체 요청이 있었기 때문에 새 요청은 허용되지 않습니다. 나중에 다시 시도해 주세요."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "%1 팀은 가입할 수 없습니다."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "이미 회원입니다"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "이미 %1의 회원입니다."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "팀에 가입하지 못했습니다 - 다음에 다시 시도해 주세요."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "%1에 가입됨"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "%1에 가입되었습니다."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "%1 가입"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "참고 사항:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "팀에 가입하면 팀 창설자가 여러분의 email 주소를 볼 수 있습니다."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "팀 가입은 여러분 계정의 크레딧에 어떤 영향도 끼치지 않습니다."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "팀 가입"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "검색 결과"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "'%1' 검색 결과"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "여러분은 이 팀의 회원, 통계, 정보를 볼 수 있습니다."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "100개 이상의 팀이 검색 조건을 만족합니다. 상위 100개만 표시됩니다."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "검색 종료. %1 만약 여러분에게 맞는 팀을 찾지 못하셨다면 여러분은 스스로 %2팀을 만들 수도%3 있습니다."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "%1 팀 관리하기"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "팀 정보 수정"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "팀 이름, URL, 개요, 유형, 국가 변경"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "맴버 목록:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "내용"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "회원 이름과 이메일 주소 열람"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "변경 내역 보기:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "이 팀의 회원 가입 및 탈퇴 현황 보기"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "창설자 요청에 응답합니다."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "당신이 %1에게 응답하지 않으면 %2가 이 팀의 창설자로 임명될 것입니다."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "이 팀에서 유령 회원 또는 원하지 않는 회원 추방하기"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "다른 멤버로 창설자 변경"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "팀 관리자 추가/삭제"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "선택한 멤버에게 팀 관리자 권한 부여"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "팀 해체"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "팀 멤버가 없을 때만 허용됩니다"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "팀 게시판 생성 및 관리"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "이 팀이 모든 BOINC 프로젝트에 생성되길 원하시면 (현재 및 미래에) 여러분은 %1BOINC 광역 팀으로 만들 수 있습니다%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "팀 관리자들은 구글 %1boinc-team-founders%2 그룹에 가입하고 참여하길 권장합니다."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "빈 팀이 아니므로 해체할 수 없습니다"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "%1 팀이 해제되었씁니다"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "제한 초과:  상위 회원 1000명만 표시됩니다."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "%1 멤버"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "팀을 탈퇴할 수 없습니다"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "팀이 존재하지 않거나 여러분이 속해있지 않습니다."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "탈퇴 %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>팀을 탈퇴하기 전에 읽어주세요:</strong>\n         <ul>\n         <li>팀을 탈퇴하게 되면 나중에 재가입하거나 원하는 다른 팀으로 가입할 수 있습니다\n         <li>팀 탈퇴는 어떤 방식으로든 개인의 크레딧에 어떤 영향도 주지 않습니다.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "팀 탈퇴"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "%1에서 사용자 제명"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1은 %2에 소속돼 있지 않습니다"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1이 제거되었습니다"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "%1에서 멤버 추방하기"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "제거할까요?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "이름 (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "어떤 멤버도 제명에 적합하지 않습니다."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "사용자 제거"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "팀 이름"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "팀 검색 결과"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "조건에 맞는 팀을 찾을 수 없습니다. 다른 조건으로 검색해 보세요."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "또는 새로운 %1팀을 만들 수 있습니다%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "아래 팀들은 하나 이상의 검색 조건과 일치합니다.\n            팀에 가입하려면 팀 페이지로 가기 위해 이름을 클릭하고\n               %1이 팀에 가입을 누르세요%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "검색 변경"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "여러분은 유사한 흥미를 가졌거나 같은 국가, 회사, 학교등의 다른 사람들과 팀을 이룰 수 있습니다."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "여러분에게 맞는 팀을 찾기 위해서 이 양식을 사용하세요."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "저는 지금 당장은 %1팀 가입에 관심없습니다%2."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "한계 도달 - 죄송합니다. 첫 %1 항목만 표시됩니다"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "최고 호스트"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "최고 %1 팀"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "%1 팀이 없습니다"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "참여 시작"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "오늘의 사용자가 선정되지 않았습니다."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "오늘의 사용자 %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "필터"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "사용자 이름의 첫글자"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "어떤"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "프로필도 검색?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "또한"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "팀 검색?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "정렬"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "가입 시각 내림차순"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "평균 크레딧 내림차순"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "총 크레딧 내림차순"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "검색어는 최소한 3글자 이상이어야 합니다"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "사용자 검색 결과"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "가입됨"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "검색 조건과 일치하는 사용자가 없습니다."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "사용자를 찾을 수 없습니다!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "계정 데이터<br/>%1<br/>시간:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "팀:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "팀 총 크레딧:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "팀 평균 크레딧:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "팀: 없음"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "BOINC email 주소 인증"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "%1 계정의 email주소를 인증하실려면 다음 링크로 방문해주세요:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "인증 email 발송"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "%1에게 이메일이 전송되었습니다. 여러분 이메일 주소를 인증하기 위한 링크를 방문해 주세요."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "해당 사용자가 없습니다."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "URL 데이터 오류 - 이메일 주소를 인증할 수 없습니다"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "데이터베이스 업데이트가 실패했습니다. 나중에 다시 시도해주세요."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "email 주소 인증"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "이 계정의 email 주소가 정상적으로 인증되었습니다."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "이 사용자는 프로필이 없습니다"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "프로필: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "계정 데이터"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "여러분은 여러분의 이메일 주소와 비밀번호를 사용해서 계정에 접근할 수도 있지만\n    한편으로 서명된 '계정 키'를 이용할 수도 있습니다.\n    여러분의 계정 키:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "이 키는 다음 프로젝트에 사용합니다:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "웹에서 여러분의 계정으로 로그인하기"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "BOINC 관리자를 사용하지 않고 여러분의 컴퓨터에 계정을 추가시킵니다.\n       그렇게 하려면 BOINC를 설치하고\n       %1 이름을 가진 파일을 BOINC 데이터\n       디렉토리에 생성 후 내용을 다음과 같이 맞춥니다:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "약한 계정 키"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "'약한 계정 키'는 위에서 설명한 대로 여러분이 가진 계정을 컴퓨터에 추가할 수 있게\n    해줍니다. 그러나 어떠한 방법으로든 계정에 로그인하거나 정보를 변경할 수는 없습니다.\n    만약 신뢰할 수 없거나 안전하지 않은 컴퓨터에 계정을 추가하고 싶다면\n    약한 계정 키를 사용해 주시기 바랍니다.\n    여러분의 약한 계정 키:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "만약 비밀번호를 바꾸면, 약한 계정 키도 바뀝니다. 또한 기존에 있던 약한 계정 키로는 인증이 되지 않습니다."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "작업 유닛을 찾을 수 없습니다"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "작업 유닛 %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "응용 프로그램"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "인증된 결과"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "획득 크레딧"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "진행 중인 태스크"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "완료될 때까지 비공개로 보류됨"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "최소 정족수"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "초기 복제물"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "최대 오류/전체/성공 태스크 수"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "오류"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "검증"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "보류 중"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "첫 페이지"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "생성 시각"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "자기 소개"
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "당신에 대해 얘기해보세요. 당신이 어디에서 왔는지, 나이, 직업, 취미, 기타 당신에 관한 것들을 얘기할 수 있습니다."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "%1에 대한 의견"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "%1에 대한 생각을 말해주세요<ol>\n    <li>왜 %1을 실행하나요?\n    <li>프로젝트를 어떻게 보고 계시나요?\n    <li>그 외 제안할 것은?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "그래픽 색 표현"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "그래픽 표시용 최대 CPU % %10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "선택된 응용 프로그램만 실행"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "특정 응용 프로그램이 있어야 태스크를 받을 수 있습니다. 특정 프로그램을 이용하시거나 해당 작업을 제외시키십시오."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "선택된 응용 프로그램용 작업이 없을 경우에 다른 프로그램 실행을 허용하시겠습니까?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "가능하면 더 빠른 그래픽 미표시 응용 프로그램을 사용합니다"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(모든 응용 프로그램)"
diff --git a/locale/ko/BOINC-Setup.mo b/locale/ko/BOINC-Setup.mo
index 75776df..35262fc 100644
Binary files a/locale/ko/BOINC-Setup.mo and b/locale/ko/BOINC-Setup.mo differ
diff --git a/locale/ko/BOINC-Setup.po b/locale/ko/BOINC-Setup.po
index 3317afa..9692199 100644
--- a/locale/ko/BOINC-Setup.po
+++ b/locale/ko/BOINC-Setup.po
@@ -1,40 +1,45 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-08 22:34+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Korean (http://www.transifex.com/projects/p/boinc/language/ko/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-18 00:45+0000\n"
+"Last-Translator: Kangsan Lee <treppolse at gmail.com>\n"
+"Language-Team: Korean (http://www.transifex.com/boinc/boinc/language/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "죄송합니다. 해당 %s 버전은 시스템 10.5 이상을 요구합니다."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "죄송합니다. 해당 %s 버전은 시스템 10.6 이상을 요구합니다."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "네"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "아니오"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "로그인한 사용자가 없을 때에도 BOINC를 실행하시겠습니까?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -42,26 +47,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "이 컴퓨터에서 관리하도록 허가받은 사용자들은 자동적으로 %s를(를) 실행하고 제어할 수 있도록 허용될 것입니다.\n\n이 Mac에서 비관리자 사용자들도 %s를(을) 실행하고 제어할 수 있게 하길 원하십니까?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "%s를(을) Mac상의 모든 %s 사용자용 화면 보호기로 지정하시겠습니까?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "확인"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "권한 오류 나중에 재실행하세요"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "제거에는 몇 분정도 걸릴 것입니다.\n잠시 기다려 주세요."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +75,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "정말로 이 컴퓨터에서 %s를(을) 완전히 제거하길 원하십니까?\n\n실행 파일은 제거되지만 %s 데이터 파일들은 건드리지 않습니다."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "취소됨: %s가 터치되지 않았습니다."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "오류가 발생했습니다: 오류 코드 %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "사용자 이름"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "이 컴퓨터에서 VirtualBox도 제거하길 원하십니까?\n(VirtualBox는 BOINC와 함께 설치되었습니다.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,17 +107,17 @@ msgid ""
 "\"%s\"."
 msgstr "제거가 완료되었습니다.\n\n 여러분은 파인더를 사용해서 잔존하는 다음 항목을 삭제할 수 있습니다: \n\"%s\" 디렉토리\n\n개별 사용자의 경우\n\"%s\" 파일."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "여러분 컴퓨터에서 %s를(을) 완전히 제거하려면 관리자 비밀번호를 입력해 주세요.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "취소"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "계속..."
diff --git a/locale/ko/BOINC-Web.mo b/locale/ko/BOINC-Web.mo
index 63476ee..0c39a8d 100644
Binary files a/locale/ko/BOINC-Web.mo and b/locale/ko/BOINC-Web.mo differ
diff --git a/locale/ko/BOINC-Web.po b/locale/ko/BOINC-Web.po
index ded3f88..de1e887 100644
--- a/locale/ko/BOINC-Web.po
+++ b/locale/ko/BOINC-Web.po
@@ -1,17 +1,15 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-03-03 15:09+0000\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-18 02:54+0000\n"
 "Last-Translator: Kangsan Lee <treppolse at gmail.com>\n"
 "Language-Team: Korean (http://www.transifex.com/boinc/boinc/language/ko/)\n"
 "MIME-Version: 1.0\n"
@@ -21,415 +19,522 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "한국어"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Korean"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM!은 BOINC 프로젝트 계정 생성 및 관리에 보조하고 환경 설정, 팀 가입 또는 생성, 컴퓨터를 프로젝트에 연결하는 것, 그외 많은 것을 도와줍니다.  신규이건 기존 BOINC 사용자이건, BAM은 BOINC를 최대한 활용할 수 있도록 도와줍니다."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "GridRepublic 회원은 컴퓨터가 다른 용도로 사용되지 않을 때 공익 연구 프로젝트상에서 컴퓨터로 작업을 하도록 허용한 스크린 세이버를 실행합니다. 이 스크린 세이버는 일반 스크린 세이버가 실행되는 것보다 더 많이 호스트 컴퓨터의 성능에 영향을 미치지 않습니다."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "검색"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "BOINC 메인 페이지로 돌아가기"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "이 페이지는 %s번역이 가능합니다%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "저희는 여러분이 VirtualBox도 같이 설치하길 권장합니다. 그렇게 하면 해당 기능을 요구하는 과학 프로젝트 작업도 수행할 수 있습니다."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "VirtualBox에 대해서 알아봅니다."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "BOINC + VirtualBox 다운로드"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "%s용"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "BOINC 다운로드"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINC는 SETI at home, Climateprediction.net, Rosetta at home, World Community Grid 그 외 다른 많은 과학 프로젝트들에게 여러분의 컴퓨터 대기 시간을 기부하도록 하는 프로그램입니다."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "컴퓨터에 BOINC를 설치한 후에 여러분이 선호하는 수많은 프로젝트에 연결하실 수 있습니다."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "여러분은 이 소프트웨어를 여러분이 소유한 컴퓨터 혹은 소유자로부터 권한을 부여받은 컴퓨터에서만 실행해야 합니다."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "이곳보다는 Google Play Store 또는 Amazon Appstore에서 BOINC를 다운로드하시길 권장합니다."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "시스템 요구 사항"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "릴리즈 노트"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "도움말"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "모든 버전"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
-msgstr "버전 업데이트 정보"
+msgstr "버전 이력"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "GPU 컴퓨팅"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: 과학을 위한 컴퓨팅"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "BOINC 온라인 도움말은 경험많은 BOINC 사용자와 1:1대화를 하도록 합니다 대상: %s는 BOINC와 기여자 컴퓨팅에 대해서 답합니다. %s는 BOINC 설치 진행 및 사용을 도와드릴 것입니다. %s는 여러분이 겪는 각종 문제를 해결해 드릴 것입니다."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "BOINC 온라인 도움말은 인터넷 전화인 %sSkype%s에 기반을 두고 있습니다. Skype는 소프트웨어와 전화 모두 무료입니다. 아직 Skype를 사용하고 계시지 않았다면, %s지금 다운로드하고 설치하십시오%s. 완료되면 이 페이지로 돌아오십시오."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "도움을 구하는 가장 좋은 방법은 목소리입니다. 이를 위해서 여러분 컴퓨터에는 마이크와 스피커 또는 외부 헤드셋이 필요합니다. 여러분은 또한 도우미 기여자들과 Skype 텍스트 기반 대화 시스템이나 일반적인 email (만약 Skype를 쓰지 않을 경우)로 대화를 주고받을 수 있습니다. "
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "기여자들은 몇가지 언어로 얘기하는 것이 가능합니다. 언어를 선택해 주세요:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "도우미 기여자 되기"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "만약 여러분이 경험많은 BOINC 사용자라면, 우리는 여러분이 %s도우미 기여자%s가 되길 장려합니다. 그 것은 과학적 연구와 기여자 컴퓨팅을 돕는 위대한 방법입니다 - 그리고 그 것을 즐기세요!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "여러분이 이미 도우미 기여자일 경우: 설정을 바꾸실려면 %s여기를 누르십시오%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "BOINC 도우미는 자원봉사자들입니다.  그들의 조언은 BOINC나 캘리포니아 대학교에서 보증하지 않습니다."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "%1절대로%2 이메일 주소나 비밀번호 정보를 BOINC 도우미에게 제공하지 마세요."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "컴퓨터 연산 능력"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "최고 순위 100인의 기여자들"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "통계"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "24 시간 평균:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PFLOPS"
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "활동:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "기여자,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "컴퓨터\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "24 시간 평균:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PFLOPS"
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "뉴스"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "데이터베이스 사용 불가. 나중에 다시 시도하세요."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "기여자"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "질병 치료, 지구 온난화 연구, 중성자별 발견 그 외에 또 많은 종류의 과학연구를 위해 여러분 컴퓨터(윈도우, 맥, 리눅스, 안드로이드)의 대기 시간을 사용하십시오. 이 것은 안전하고 보안이 철저하며 쉽습니다:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "다운로드"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "문서"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "안드로이드 디바이스의 경우, Google Play Store에서 BOINC 앱을 설치하세요. 킨들은 Amazon App Store에서 설치하세요."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "많은 프로젝트들 가운데서 %3, %4, %5와 같은 %1프로젝트%2를 지원하도록 선택할 수 있습니다."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "혹시 여러 프로젝트를 수행하고 있다면 %3GridRepublic%4이나 %5BAM!%6과 같은 %1계정 관리자%2를 이용해 보세요."
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "더 알아보기:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "게시판"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "프로젝트"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "매뉴얼"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "애드온"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "링크"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "질병 치료, 지구 온난화 연구, 중성자별 발견 그 외에 또 많은 종류의 과학연구를 위해 여러분 컴퓨터(윈도우, 맥, 리눅스, 안드로이드)의 대기 시간을 사용하십시오. 이 것은 안전하고 보안이 철저하며 쉽습니다:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "도움을 줄 다른 방법:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "프로젝트를 선택하세요"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "개요"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "BOINC 소프트웨어를 다운로드하세요"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "번역"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "이메일 주소와 비밀번호를 입력하세요."
+#: doc/index.php:134
+msgid "Test"
+msgstr "테스트"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "혹시 여러 개의 프로젝트를 수행하고 계시다면 %s계정 관리자%s(%sGridRepublic%s이나 %sBAM!%s등)를 사용해 보십시오."
+#: doc/index.php:135
+msgid "Document"
+msgstr "문서"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "BOINC를 이용한 컴퓨터 연산"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "공개 정보"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "소프트웨어 업데이트"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "버그 신고"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "BOINC와 함께하는 고출력 연산"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1과학자%2: BOINC를 이용해서 %3기여자 컴퓨팅 프로젝트%4를 생성하고 CPU와 GPU 수천 개분의 연산 능력을 제공받으세요."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1대학%2: %3가상 캠퍼스 슈퍼컴퓨터 센터%4를 생성해서 BOINC를 이용하세요."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1기업체%2: %3데스크탑 그리드 컴퓨팅%4을 위해 BOINC를 이용하세요."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "BOINC에 대해서"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "문서"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "게시판"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC 및 Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "소프트웨어 개발"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC는 기여자 컴퓨팅용 소프트웨어 플랫폼입니다. 여기에는 클라이언트, 서버, 웹 컴포넌트 및 다른 컴포넌트와 연결할 API를 포함합니다."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "소스 코드"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "BOINC 빌드하기"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "문서 설계"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "저희는 BOINC 유지 및 개발을 도와줄 프로그래머를 항상 찾고 있습니다."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "개발 과정"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "개발 과제"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC는 LGPL 오픈 소스 라이센스 하에 배포됩니다."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "BOINC 프로젝트"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC는 커뮤니티 기반 프로젝입니다.  누구나 참여를 환영합니다."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "메일링 리스트"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "이벤트"
 
-#: index.php:184
-msgid "Source code"
-msgstr "소스 코드"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "그래픽"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "관리자들"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Skype 또는 이메일을 통한 라이브 도움"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC 라이브 도움말은 숙련된 BOINC 사용자가 BOINC에 관한 질문에 대답하고, BOINC 설치 및 사용을 도우며, 문제를 해결할 수 있도록 일대일 도움을 제공합니다."
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "add-on 소프트웨어를 위한 API"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "도우미와 대화할 수 있습니다"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "기여자 컴퓨팅을 위한 오픈 소스 소프트웨어"
+#: doc/help.php:16
+msgid "by email"
+msgstr "이메일 지원"
 
-#: projects.inc:19
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\n%1Skype%2(인터넷 기반 무료 전화 시스템)를 이용한 음성 지원. 아직 Skype를 사용하고 계시지 않았다면, 바로 %3다운로드하고 설치%4할 수 있습니다.  완료되면 이 페이지로 돌아오십시오."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "Skype 채팅 사용"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "기여자들은 많은 언어로 얘기하는 것이 가능합니다. 언어를 선택해 주세요(도우미 숫자가 표시됩니다):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "도우미 기여자 되기"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "만약 여러분이 경험많은 BOINC 사용자라면, 우리는 여러분이 %s도우미 기여자%s가 되길 장려합니다. 그 것은 과학적 연구와 기여자 컴퓨팅을 돕는 위대한 방법입니다 - 그리고 그 것을 즐기세요!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "여러분이 이미 도우미 기여자일 경우: 설정을 바꾸실려면 %s여기를 누르십시오%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "BOINC 도우미는 무상 자원봉사자입니다.  그들의 조언은 BOINC에서 보증하지 않습니다."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1절대로%2 이메일 주소나 비밀번호 정보를 BOINC 도우미에게 제공하지 마세요."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "분산 검지"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "스탠포드 대학교"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "지진학"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "Quake-Catcher Network는 컴퓨터 및 스마트폰에 연결된 센서를 사용한, 세계에서 가장 큰 지진 감지망으로 개발되었습니다"
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network는 지진파를 감지하기 위해서 컴퓨터 및 스마트폰에 부착된 센서를 사용합니다."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "BOINC 폴란드 재단<br />(BOINC Poland Foundation)"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "환경 연구"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "이 프로젝트는 기여자들의 컴퓨터에 연결된 센서를 사용해서 지속적으로 업데이트되는 방사능 단계 지도를 대가없이 생성합니다. 여러분이 참여하려면 반드시 센서를 사야 됩니다."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "인지 과학과 인공 지능"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
-msgstr " 과학"
+msgstr "인지 과학"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home은 인간의 사고력을 보다 잘 이해하기 위하여, 특히 인간의 능력과 학습을 활성화시키고 조절하는 처리 과정 및 메커니즘을 연구하기 위하여 연산 인지 처리 모델을 사용합니다."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "개인"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "독립"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "인공 지능"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
 "databases, and part of speech taggers in order to imitate human behavior in "
 "conversations."
-msgstr "인공 지능은 회화에서 인간의 행동을 모방하기 위해서 의미망, 스테밍, 품사 데이터베이스, 품사 태거를 이용합니다. FreeHAL에서는 이런 인공 지능 개발을 위해서 의미망을 분석하고 FreeHAL에서 사용할 수 있게 변환합니다."
+msgstr "의미망, 형태소 분석기, 품사 데이터베이스 및 품사 태거를 사용하여 대화에서 인간의 행동을 모방하는 인공 지능인 FreeHAL에서 사용하기 위한 의미망을 구문 분석하고 변환합니다."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "생물학 및 의약"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "의학 생리학"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home은 심장의 전기적 활동을 연구하기 위해 심장 전기 생리학 시뮬레이션을 수행합니다."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "분자 "
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World는 인정받은 생물정보학 소프트웨어을 기반으로 RNA 분자를 식별, 분석, 구조적 예측 및 설계를 찾고자 합니다."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "칼리지 더블린 대학교<br />(University College Dublin)"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "항말라리야성 약물 발견"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "말라리야를 유발하는 기생충은 사용가능한 약물에 대한 내성이 계속 진화하고 있습니다. 따라서 우리는 시급히 현존하는 약을 대체할 새로운 약을 발견할 필요가 있습니다. 중요한 점은 이런 새로운 약은 기생충 안에 있는 '새로운' 단백질을 대상으로 요구합니다. FightMalaria at Home 프로젝트는 이러한 새로운 대상을 찾는 것을 목표로 합니다."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "말라리야를 유발하는 기생충은 사용가능한 약물에 대한 내성이 계속 진화하고 있습니다. 따라서 우리는 시급히 기생충 안에 있는 새로운 단백질을 대상으로 하는, 새로운 약을 발견할 필요가 있습니다. FiND at Home 프로젝트는 이런 새로운 대상을 찾는 것을 목표로 합니다."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Karlsruhe 대학교 (독일, University of Karlsruhe)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "단백질 구조 예측"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -438,15 +543,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME은 단백질의 활성 구조를 생물학적으로 예측하기 위해서 컴퓨터를 이용합니다. 또 단백질 간의 상호작용이 일어날 때의 신호처리 메커니즘을 이해하고자 합니다. 이외에 단백질의 기능 저하나 집적과 관련있는 질병을 이해하고 생물학적으로 중요한 단백질들의 3차원 구조에 기반해서 신약을 개발하는데 그 목적이 있습니다."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "바로셀로나 생물의학 연구 단지(PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "단백질 분자 시뮬레이션"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -454,31 +559,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net은 NVIDIA GPU에서 실행시키기 위해 처음으로 분자 속 전체 원자 동적 분석 코드(CellMD)로 특별히 최적화되었습니다. 이로서 새로운 계산 시나리오가 개척되었습니다. 새로운 생물의학 어플리케이션은 생물의학 연구를 위한 전산 생물학에 새로운 역할을 부여할 가능성을 가지고 있습니다."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "메릴랜드 대학교 생물정보학과 전산생물학 연구 센터(University of Maryland Center for Bioinformatics and Computational Biology)"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "생명 과학 연구"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "매릴랜드 대학교에서 개발하고 운영하는 The Lattice Project는 DNA와 단백질 배열 데이터를 이용해서 진화의 연관성을 연구하는 전세계 연구자들에게 연산력을 제공합니다."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "스위스 열대 연구소(The Swiss Tropical Institute)"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "전염병학"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -489,15 +594,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "전염 개체들의 시뮬레이션과 말라리아가 건강에 끼치는 영향은 말라리아 통제를 위한 중요한 수단입니다. 이는 현재 개발되고 있거나 시험 중인 새로운 백신, 화학요법, 모기장을 제공하기 위한 최적화된 전략을 정하기 위해서 이용될 수 있습니다. 이러한 모델은 컴퓨터에 매우 의존해야 되며, 질병 분포에 영향을 미치는 생물학적, 사회적 요인들이 관련된 인자를 포함한 여러 종류의 조건을 갖춘 대규모 인구 집단의 시뮬레이션이 요구됩니다."
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "워싱턴 대학교"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "생물학"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -507,19 +612,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "단백질의 3차원 형태를 파악하는 연구는 궁극적으로 특정 질병의 치료법을 이끌어낼 수 있을지도 모릅니다. Rosetta at home을 실행함으로써 여러분의 도움 없이는 시도할 수 없었던 방법으로 연구를 진행하고 있습니다. 따라서 여러분은 저희 연구의 속도를 높이고 확장하는 것을 도울 수 있습니다. 또한 HIV, 말라리아, 암, 알츠하이머 병과 같은 질환과 싸울 새로운 단백질의 설계를 도와줄 수 있습니다."
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "지구 과학"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "옥스퍼드 대학교"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "기후 연구"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -531,25 +636,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "최첨단 기후 모델로 만들어진 근사값을 추측합니다. 우리는 해당 모델을 여러 번 실행시켜서, 근사값을 조금씩 수정함에 따라 모델이 어떻게 반응하는지를 알아내려고 하고 있습니다.(근사값이 비현실적인 값이 되지 않을 만큼 조금씩만 변화시킵니다)  이 것은 우리의 모델이 작은 변화나 이산화탄소 및 유황순환의 변화에 얼마나 민감한지 이해할 수 있게 해줍니다. 또한 우리에게 기후가 다른 시나리오에서 넓은 지역에 걸쳐 다음 세기에 어떻게 변할 것인지 탐색할 수 있게 해줄 것입니다."
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "자연 과학"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "기계 공학"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "현재 저희는 52 바 트로스라는 구조물의 최적 설계안을 계산하고 있습니다"
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "천문학"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -559,11 +655,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS는 밝기, 질량, 먼지의 양 및 얼마나 빨리 별들이 형성되는지를 포함한 16가지 다른 속성의 은하를 연구하는 천문학 프로젝트입니다. 저희는 지도를 만들기 위해서 다파장(자외선, 가시광선 및 근적외선) 은하 이미지로 픽셀 단위 계산을 실시하고자 여러분의 처리 능력을 이용합니다. 이는 원거리 우주를 보다 잘 이해하려는 천문학자들에게 도움이 될 것입니다."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "천체물리학"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -571,57 +667,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "본 프로젝트의 목표는 소행성 천체의 밝혀진 일부로부터 모양과 회전을 알아내는 것입니다. 저희는 가능하면 어떠한 소행성 광도 측정 자료라도 데이터로 집어 넣습니다. 결과로서 소행성의 회전축의 방향과 회전 주기를 포함한 볼록형 모형을 얻습니다."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "항공우주 관련 과학 및 "
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "일리노이 대학교 어바나-샴페인<br />(University of Illinois at Urbana-Chamapign)"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation은 발사대, 위성, 탐사기의 궤적 최적화, 달의 근접표면 외기권 시뮬레이션, 월면차의 동역학계 분석을 포함한 항공우주 관련 시뮬레이션용 플랫폼입니다."
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "항공우주 관련 시뮬레이션 수행"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Cosmology at Home의 목표는 우리 우주를 가장 잘 기술할 수 있는 모델을 찾고 사용 가능한 천문학적 입자 물리학 데이터와 일치하는 모델의 범위를 찾습니다."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home 가장 바깥에 있는 블랙홀 바이너리 데이터로 가장 이른 별로부터, 우주를 시뮬레이션한 항성 데이터로 첫번째 데이터베이스를 생성하는 것을 목표로 합니다."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "물리학 및 천문학 연구 수행"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "렌셀러 폴리테크닉 대학교(Rensselaer Polytechnic Institute)"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Milkyway at Home의 목표는 슬론 디지털 스카이 탐사(Sloan Digital Sky Survey)에서 수집된 데이터를 사용해서 은하수 은하의 가장 정확한 3차원 모델을 만드는 것입니다."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "은하수의 은하 구조 연구"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "네덜란드 Leiden 대학교"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "화학"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -631,15 +722,15 @@ msgid ""
 "simulations through the grid."
 msgstr "표면 과학 계산은 고전 역학을 이용합니다. Leiden Classical은 기여자, 학생, 다른 과학자에게 가각 개인적으로 한 계산을 그리드로 제출할 수 있게 해줍니다. 각 유저는 고전 역학 작업을 위한 개인적인 대기열을 가지고 있습니다. 이런 방식으로 학생들은 액체 아르곤을 시뮬레이션하기 위해서 또는 실제로 그리드를 통해서 시뮬레이션을 실행함으로써 이상기체 법칙의 타당성을 시험하기 위해 그리드를 이용할 수 있습니다."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "원자 시뮬레이션을 수행하는 학생을 도와주세요"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "위스콘신-밀워키 대학교(Univ. of Wisconsin - Milwaukee), 막스 플랑크 연구소(Max Planck Institute)"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -648,19 +739,19 @@ msgid ""
 "international organizations."
 msgstr "LIGO 및 GEO 중력파 감지기와 아레시보 전파 망원경에서 수집된 데이터를 사용해서 회전하는 중성자 별(펄서라고도 합니다)을 찾습니다.  Einstein at Home은 미국 물리학 협회(APS) 및 수많은 국제 단체로부터 지원을 받는 2005 세계 과학의 해 프로젝트입니다."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "중성자 별 및 중력파 탐지를 도와주세요"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (유럽 입자 물리 연구소)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "물리학"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -669,22 +760,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "대형 강입자 가속기(LHC)는 CERN(유럽 입자 물리 연구소)에 위치한 소립자 가속기이며, 세계에서 가장 큰 입자 물리학 연구시설입니다. 이것은 입자의 속성을 조사하기 위해서 건설한 것 중 가장 강력한 장치입니다. LHC at home은 LHC 및 검출기의 설계를 향상시키기 위한 시뮬레이션을 수행합니다."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "거대 강입자 가속기의 설계를 개선합니다"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "이 프로젝트는 CERN이 개발한, 완전히 독립된 LHC 사건(event) 물리학 시뮬레이션용 가상 머신 기술을 기여자 컴퓨터 상에서 사용합니다. 따라서 여러분 컴퓨터에 VirtualBox를 설치해야 됩니다."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "고에너지 입자 충돌 시뮬레이션"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -692,19 +783,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home은 CERN의 강입자 가속기 상의 입자 물리학 실험 장치인 ATLAS를 위한 시뮬레이션을 수행하고자 기여자의 컴퓨터를 이용합니다. ATLAS는 새로운 입자를 찾고 매우 높은 에너지의 양자 정면 충돌을 처리합니다."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "CERN의 고에너지 입자 충돌 시뮬레이션"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "캘리포니아 대학교 버클리 캠퍼스(University of California, Berkeley)"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "천체물리학, 우주생물학"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -713,106 +804,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI(Search for Extraterrestrial Intelligence, 외계 지성체 탐사)는 지구 밖에 존재하는 지성체를 감지하는 데 목표를 둔 과학 분야입니다. 라디오 SETI로 알려진 한가지 접근 방법은 우주에서 오는, 좁은 대역폭의 전파를 듣기 위해서 전파 망원경을 사용합니다. 어떤 신호는 자연적으로 발생하지 않는다고 알려져 있습니다. 따라서 이 것의 감지는 외계 기술의 증거를 제공해 줄 수도 있습니다."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "지구외 생명체의 증거 탐색"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "여러 응용 분야"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "분자 생물학, 컴퓨터 과학"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "The Citizen Science Grid는 기여자 컴퓨팅과 공공과학(citizen science)을 이용한 광범위 연구 및 교육 프로젝트를 지원합니다"
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "노스다코타 대학교의 과학 연구 지원"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "중국 과학원"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "물리학, 생화학, 기타"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "CAS at home의 목적은 기여자 컴퓨팅 기술과 연구에 대한 기여자들의 생각을 채택해서 중국에 있는 과학자들을 장려하고 지원하는 것입니다."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home은 단백질 구조, 나노 기술, 암 유전체학 및 고에너지 물리학을 연구하는 프로젝트에 참여하는 중국 과학자들을 대상으로 중국 과학원 고능물리연구소(IHEP)의 컴퓨팅 센터가 주최합니다."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "중국 연구자들을 도와주세요"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "수학, 물리학, 진화론"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home은 BOINC와 기존 기여자 컴퓨팅 프로젝트(ECM, 뮤온, Evolution at home, distributed.net)를 중개합니다."
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "수학, 물리학, 진화론 분야 연구 수행"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "MTA-SZTAKI 병렬 및 분산 시스템 연구소 (헝가리, MTA-SZTAKI Laboratory of Parallel and Distributed Systems)"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "유럽의 연구 프로젝트들"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "EDGeS at Home 베타 프로젝트는 해당 프로젝트의 기여자가 처리해야할 작업 유닛을 전송하는 서비스 그리드를 허용함으로써 유럽 서비스 그리드 네트워크와 기여자 컴퓨팅을 통합합니다. 과학 프로젝트는 수학, 물리학, 생물학, 기타 등을 포함하고 있습니다."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "유럽의 연구자들을 "
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "여러 스페인 대학교 및 연구소"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "스페인의 각종 연구 프로젝트"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "물리학, 재료 과학, 생물 의학 등의 연구"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "스페인 연구자들을 "
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM 시민 공동체(IBM Corporate Citizenship)"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "의학, 환경 및 기타 인도주의적 연구"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -820,20 +892,20 @@ msgid ""
 "clean water and many more."
 msgstr "세계에서 가장 큰 기여자 컴퓨팅 그리드를 통해서 인류가 직면한 가장 심각한 문제를 비영리적으로 연구합니다.  연구에는 HIV 에이즈, 암, 열대 지방의 병 및 연구가 덜 된 질병, 태양 에너지, 깨끗한 물 이외에 많은 것들이 포함됩니다."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "생의학 및 환경 연구 수행"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "수학, 컴퓨팅, 게임"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "수학"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -843,64 +915,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home은 특수한 속성을 갖는 수체를 탐색합니다. 본 연구의 첫번째 목표는 대수적 수론 분야에 있습니다. 수 이론가들은 수체에 관한 추측을 공식화하는데 있어 도움을 줄 흥미로운 패턴 데이터를 채취할 수 있습니다. 궁극적으로 본 연구는 모든 수학의 기초 공사인, 심오한 수의 속성을 보다 깊이 이해하도록 이끌 것입니다."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "대수적 수론 연구 수행"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "컴퓨터 과학"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "불린 충족 가능성 문제를 효과적으로 경감시킬 수 있는 어렵고 완벽히 불가능한 문제들(이산함수 역문제, 이산최적화, 생물정보학, 기타)의 풀이"
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "계산의 복잡성 연구"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "암호학 및 조합론"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "distributed.net에서 배포된 응용 프로그램 실행"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "암호학"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "3가지 에니그마 원문을 해독하고자 시도합니다. 이 신호는 1942년 북대서양에서 포착되었으며 깨지지 않은 것으로 여겨지고 있습니다."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "2차 세계 대전 당시 잠수함의 암호문 해독"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "수학에서 풀리지 않은 Collatz 추측을 연구합니다."
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "콜라츠 추측 연구"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "캘리포니아 주립 대학교 풀러턴 캠퍼스(California State University Fullerton)"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "큰 정수의 인수 분해"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -910,56 +982,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home은 큰 정수들을 수체선별법(Number Field Sieve)으로써 인수분해하는 래티스 시빙 절차를 시행하기 위해서, 인터넷에 연결된 컴퓨터를 사용하는 연구 프로젝트입니다. 초등학교 저학년 시절에 15 = 3 * 5 혹은 35 = 5 * 7처럼 정수를 소인수로 쪼개어 본 경험을 하셨을 것입니다. NFS at Home은 이러한 경험의 연장선입니다. 단지 정수가 백자리 정도의 길이를 갖을 뿐입니다."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "거대 정수의 인수 분해 연구"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid는 다른 형태의 매우 큰 소수를 찾는 복수 프로젝트입니다. 그중에는 알려진 소수 중 가장 큰 소수를 찾는 프로젝트도 포함됩니다."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "거대 소수 찾기"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Hochschule RheinMain 응용 과학 대학교"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "소수 증명과 관련된 두가지 추측의 반례를 찾습니다"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "소수의 속성 "
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI 병렬 및 분산 시스템 연구소 (헝가리, MTA-SZTAKI Laboratory of Parallel and Distributed Systems)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "11차원 이상에서 법칙화된 2진수 체계(행렬들로 이루어졌으며, 숫자는 벡터)를 모두 찾습니다."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "수 이론 "
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "로직 제어 시스템 설계를 위한, CAD 시스템에서 작동하는 병렬 알고리즘의 구분 채집을 위한 휴리스틱 방법을 비교하고 테스트합니다"
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "코멘트"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "토론하기"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "공지 사항은 %sRSS 피드%s로도 제공됩니다"
diff --git a/locale/lt/BOINC-Client.mo b/locale/lt/BOINC-Client.mo
index dc416f9..56cc491 100644
Binary files a/locale/lt/BOINC-Client.mo and b/locale/lt/BOINC-Client.mo differ
diff --git a/locale/lt/BOINC-Client.po b/locale/lt/BOINC-Client.po
index a4bfe38..c08dd62 100644
--- a/locale/lt/BOINC-Client.po
+++ b/locale/lt/BOINC-Client.po
@@ -11,7 +11,7 @@ msgstr ""
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
 "PO-Revision-Date: 2015-03-14 11:03+0000\n"
 "Last-Translator: Rytis Slatkevičius <rytis.s at gmail.com>\n"
-"Language-Team: Lithuanian (http://www.transifex.com/projects/p/boinc/language/lt/)\n"
+"Language-Team: Lithuanian (http://www.transifex.com/boinc/boinc/language/lt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/lt/BOINC-Manager.po b/locale/lt/BOINC-Manager.po
old mode 100755
new mode 100644
diff --git a/locale/lt/BOINC-Project-Generic.po b/locale/lt/BOINC-Project-Generic.po
deleted file mode 100755
index 2257bec..0000000
--- a/locale/lt/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6929 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-04-25 11:11+0000\n"
-"Last-Translator: Rytis Slatkevičius <rytis.s at gmail.com>\n"
-"Language-Team: \n"
-"Language: lt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1398424289.0\n"
-
-# The name of this language in this language
-msgid "LANG_NAME_NATIVE"
-msgstr "Lietuvių"
-
-# The name of this language in an international language (English)
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Lithuanian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Pusjuodis tekstas: [b]tekstas[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Tekstas kursyvu: [i]tekstas[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Pabrauktas tekstas: [u]tekstas[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citata: [quote]tekstas[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Įprastiniai"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Tamsiai raudona"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Oranžinė"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Seniausi viršuje"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Naujausi viršuje"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Geriausiai įvertinti įrašai viršuje"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Naujausi įrašai viršuje"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Daugiausiai peržiūrų viršuje"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Daugiausiai įrašų viršuje"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Ieškoti žodžių forumų žinutėse"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Ieškoti forumuose"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Detali paieška"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Asmeninės žinutės"
-
-# ########################################
-# Links from the main page
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Klausimai ir atsakymai"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Forumai"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 forumas"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Autorius"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Žinutė"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Siųsti žinutę"
-
-# ########################################
-# Private messages
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Siųsti %1 asmeninę žinutę"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Prisijungė: %1"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Žinutės: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Kreditai: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Šios žinutės dar neperskaitėte"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Neskaityta"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Žinutė %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "paslėptas"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Paskelbta: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Redaguoti žinutę"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Pranešti apie įžeidžiančią"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Atsakyti"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Citata"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Paskelbta %1 (%2)"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Negalite skelbti ar vertinti žinučių iki %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Daugiau informacijos"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Nubausti vartotoją"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Kad galėtume sukurti naują temą %1 turite turėti tam tikrą kreditų kiekį. "
-"Tai reikalinga norint apsisaugoti nuo neteisėto sistemos išnaudojimo."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Negalite dabar sukurti daugiau temų. Šiek tiek palaukite prieš bandydami dar "
-"kartą. Šis laukimas naudojamas dėl apsaugos nuo neteisėto sistemos "
-"išnaudojimo."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Tema"
-
-# ########################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Žinutės"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Peržiūros"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Paskutinė žinutė"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Naujos žinutės temoje %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Naujos žinutės prenumeruotoje temoje"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Pažymėti visas temas kaip perskaitytas"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Pažymėti visas temas visuose forumuose kaip perskaitytas."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Nėra kompiuterio"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Neprieinamas"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Namai"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Darbas"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Mokykla"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Atnaujinti"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Kompiuterio informacija"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP adresas"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(toks pats paskutinius %1 kartų)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Išorinis IP adresas"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Rodyti IP adresą"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Domeno vardas"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 val."
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Savininkas"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonimas"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Sukurtas"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Iš viso kreditų"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Vidutiniai kreditai"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Tarpprojektiniai kreditai"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Centrinio procesoriaus tipas"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Procesorių skaičius"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Koprocesoriai"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Operacinė sistema"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC versija"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Atmintis"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Talpykla"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Iš viso vietos diske"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Laisvos vietos diske"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Išmatuota slankiojo kablelio operacijų sparta"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 milijonų op./s"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Išmatuota sveikųjų skaičių operacijų sparta"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Vidutinis išsiuntimo greitis"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Nežinomas"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Vidutinis atsiuntimo greitis"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Vidutinis atlikimo laikas"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 dienų"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Programos informacija"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Rodyti"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Užduotys"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Iš viso susisiekimų su serveriu"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Paskutinis susisiekimas su serveriu"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "Laiko dalis %, kai BOINC veikia"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"Laiko dalis %, kai BOINC veikia ir kompiuteris prisijungęs prie interneto"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Laiko dalis %, kai BOINC veikia ir leidžiama vykdyti skaičiavimus"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Vidutinis procesoriaus efektyvumas"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Užduočių trukmės korekcijos faktorius"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Vieta"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Pašalinti šį kompiuterį"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Sujungti pasikartojančius šio kompiuterio įrašus"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Sujungti"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Kompiuterio informacija"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Eilė"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Vid. kreditai"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Vidutinis kreditas"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Procesorius"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "Vaizdo procesorius"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operacinė sistema"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(procesorių: %1)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Tarpprojektinė statistika"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Negalima sujungti kompiuterio %1 į %2 - jie nesuderinami"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Jungiamas kompiuteris %1 į kompiuterį %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Rodyti:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Visi kompiuteriai"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "Kompiuterio ID"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Vardas"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br />versija"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Gautosios žinutės"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Rašyti"
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Siųsti asmeninę žinutę"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Peržiūra"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "žinutė nerasta"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Kam"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Vartotojo ID arba unikalūs vardai, atskirti kableliais"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Tema"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Siųsti žinutę"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Neleidžiama taip dažnai siųsti asmeninių žinučių. Šiek tiek palaukite prieš "
-"siųsdami daugiau žinučių."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "neskaityta"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-# ########################################
-# Private messages
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Asmeninė žinutė"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesoriai"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Keisti nustatymus"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Bendrieji nustatymai"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Keisti \"%1\" nustatymus"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Pridėti nustatymus"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Atnaujinti nustatymus"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Duomenų bazės klaida"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Vartotojas pašalintas"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Keisti aprašymą"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Jūsų atsiliepimai apie šį aprašymą"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Rekomenduokite šį aprašymą kaip dienos vartotoją:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Man šis aprašymas %1patinka%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Praneškite administratoriams apie įžeidžiantį aprašymą:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Man šis aprašymas %1nepatinka%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "laukiamas"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "Vykdomas"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Klaidingas"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Klaida"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Neišsiųsta"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Užbaigta, laukiama patikros"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Užbaigta ir patikrinta"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Užbaigta, pažymėta kaip kladinga"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Užbaigta, nepavyko patikrinti"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Klaida atsisiunčiant"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Klaida skaičiuojant"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Klaida įkeliant"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Patikrinimo klaida"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Skaičiavimo klaida"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Skaičiavimo klaida"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Atlikta"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Užduočių rinkinio klaida - patikrinimas praleistas"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Per daug klaidų (gali būti problema)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Užduoties pavadinimas"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Rodyti pavadinimus"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Užduotis"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Užduočių rinkinys"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Kompiuteris"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Išsiųsta"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Atlikimo laikas<br />arba galutinis terminas"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "paaiškinti"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Būsena"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Užtrukta laiko<br />(sek.)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Procesoriaus laikas<br />(sek.)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Kreditas"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Programa"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Užduočių rinkinys"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Priimta"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Būsena serveryje"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Būsena kliente"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Užtrukta laiko"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Centrinio procesoriaus laikas"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Patikrinimo būsena"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Programos versija"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Būsena"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Užduoties pavadinimas"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Paieškos kriterijai (naudokite vieną ar daugiau)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Raktiniai žodžiai"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Rasti komandas su šiais žodžiais pavadinimuose ar aprašymuose"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Valstybė"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Komandos tipas"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Rodyti tik aktyvias komandas"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Ieškoti"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Prašytas jūsų, ir laikas, skirtas įkūrėjui atsakyti, jau praėjo."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Užbaigti įkūrėjo pakeitimą"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Prašytas jūsų"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "laikas, skirtas įkūrėjui atsakyti, yra %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Nėra"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Pateikti prašymą"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Atidėtas"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Komandos informacija"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Aprašymas"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Tinklapis"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Tarpprojektinė statistika"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tipas"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Forumas"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Temos"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Prisijungti prie komandos"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Pastaba: jei \"galima siųsti el. laiškus\" įjungta jūsų pasirinkimuose, "
-"prisijungus prie komandos jos įkūrėjas gaus priėjimą prie jūsų el. pašto "
-"adreso."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Nauji dalyviai nepriimami"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Laukiamas įkūrėjo pakeitimas"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Atsakyti per %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Komandos įkūrėjo pakeitimas"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Dalyviai"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Įkūrėjas"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administratoriai"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Nauji nariai per paskutinę dieną"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Iš viso narių"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "peržiūrėti"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktyvūs nariai"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Nariai, turintys kreditų"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administratorius"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Kiti %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Tokios komandos nėra."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Šiam veiksmui atlikti turite būti įkūrėju."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Šiai operacijai atlikti turite būti komandos administratoriumi."
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Pastaba%2: jei įkursite komandą, jūsų nustatymai (resursų padalijimas, "
-"vaizdo nustatymai) bus prieinami viešai."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Komandos pavadinimas, tekstinė versija"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Nenaudokite HTML žymių."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Komandos pavadinimas, HTML versija"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Galite naudoti %1kai kurias HTML žymes%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Jei nežinote HTML, palikite šį lauką tuščią."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Komandos tinklapio adresas"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "be \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Ši nuoroda bus rodoma komandos puslapyje šiame tinklapyje."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Komandos aprašymas"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-# ########################################
-# Public user page (show_user.php)
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projektai, kuriuose dalyvaujate"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projektai, kuriuose dalyvauja %1"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projektas"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Spustelėkite dalyvio puslapiui"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Nuo"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Skaičiavimai ir kreditai"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Abonementui priskirti kompiuteriai"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Peržiūrėti"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Tarpprojektinis ID"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Tarpprojektinė statistika"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Komanda"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Tarpprojektinis"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Sertifikatas"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistika mobiliajame telefone"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Abonemento informacija"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "El. pašto adresas"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "Tinklapis"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Pašto kodas"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 narys nuo"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Pakeisti"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "el. pašto adresą"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "slaptažodį"
-
-# ########################################
-# "Your account" page (home.php)
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "kitą abonemento informaciją"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Vartotojo ID"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Naudojama bendruomenės funkcijose"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Abonemento raktas"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Nustatymai"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Kaip ir kada BOINC naudoja jūsų kompiuterį"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Skaičiavimų nustatymai"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Forumai ir asmeninės žinutės"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Bendruomenės nustatymai"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Šio projekto nustatymai"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 nustatymai"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Bendruomenė"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Ištrinti"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Sukurti"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Aprašymas"
-
-# ########################################
-# Forum
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 žinučių"
-
-# ########################################
-# Apps page (apps.php)
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Pranešimai"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Palikti komandą"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administruoti"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(laukiamas įkūrėjo pakeitimas)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Komandos narys"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "raskite komandą"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Įkūrėjas, tačiau ne narys"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Rasti draugus"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Draugai"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Kompiuteriai"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Suteikęs paramą"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Susisiekti"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Šis asmuo yra draugas"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Nutraukti draugystę"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Laukiama patvirtinimo"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Pridėti draugą"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "atsijungti"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "Prisijungti"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Prisijungti"
-
-# ########################################
-# "Your account" page (home.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Sukurti abonementą"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Serverio būsenos puslapis"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Naudokite BBCode žymes teksto formatavimui"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Likite prisijungęs šiame kompiuteryje"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identifikuoja jus mūsų internetinėje svetainėje. Galite naudoti savo tikrą "
-"vardą ar slapyvardį."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Pasirinkite valstybę, kuriai norite atstovauti."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Pašto kodas"
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Nebūtinas"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Privalote pateikti abonemento vardą"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Programos"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 šiuo metu naudoja šias programas. Kai dalyvaujate %1, užduotys vienai ar "
-"daugiau šių programų priskiriamos jūsų kompiuteriui, ir naujausia programos "
-"versija bus parsiųsta į jūsų kompiuterį. Tai vyksta automatiškai; jums "
-"nereikės daryti nieko."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versija"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Įdiegimo laikas"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Pakeltas tekstas"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Cituotas tekstas"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Jūsų abonementas"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Komandos"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Dienos dalyvis"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Būsena serveryje"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Aprašymai"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# ########################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Geriausi dalyviai"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-#, fuzzy
-msgid "Top computers"
-msgstr "Kompiuteriai"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Geriausios komandos"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-# ########################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Perskaitykite mūsų taisykles"
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Nepavyksta sukurti abonemento"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Privalote pateikti pakvietimo kodą, kad sukurtumėte abonementą."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Pateiktas pakvietimo kodas neteisingas."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Neteisingas el. pašto adresas: turi būti galiojantis elektroninio pašto "
-"adresas formatu \"vardas at domenas\""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Nepavyksta sukurti abonemento"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Šis abonementas priklausys %1 komandai ir turės komandos įkurėjo projekto "
-"nustatymus."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Pakvietimo kodas"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Reikia pateikti teisingą pakvietimo kodą, kad sukurtumėte abonementą."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "El. pašto adresas"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-"Turi būti galiojantis elektroninio pašto adresas formoje \"vardas at domenas\"."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Slaptažodis"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Turi bti bent %1 simboli ilgio"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Patvirtinkite slaptažodį"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Sukurti abonementą"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Paveikslėlis"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Jūsų aprašymo paveikslėlis rodomas kairėje."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Kad jį pakeistumėte, spustėlėkite mygtuką \"ieškoti\" ir pasirinkite JPEG arba "
-"PNG failą (%1 arba mažesnę)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Kad jį pašalintumėte, pažymėkite šį laukelį:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nepavyko ištrinti abonemento"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Abonementas ištrintas"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Jūsų abonementas ištrintas."
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Patvirtinkite abonemento trynimą"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Pašalinti šį abonementą"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Nešalinti šio abonemento"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Šalinimo patvirtinimas"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Aprašymas ištrintas."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Ištrinti mano aprašymą"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Netrinti mano aprašymo"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 paramų"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anoniminė parama"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Pakeisti abonemento pašto adresą"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Naujas el. pašto adresas \"%1\" neteisingas."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Neteisingas slaptažodis."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-#, fuzzy
-msgid "Change the email address of your account"
-msgstr "Naujas el. pašto adresas"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Naujas el. pašto adresas"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-"Turi būti galiojantis elektroninio pašto adresas formatu \"vardas at domenas\""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Patvirtinkite slaptažodį"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "Keisti nustatymus"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "Vartotojas nerastas"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Forumas"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "Nenaudokite HTML žymių."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Forumai"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Temos"
-
-# ########################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Žinutės"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Forumas"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Forumai ir asmeninės žinutės"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Filtruoti vartotoją"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "Atnaujinti nustatymus"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Silpnas abonemento raktas"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Patvirtinkite slaptažodį"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Jūsų žinutė išsiųsta."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "jūsų abonemento raktas"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-#, fuzzy
-msgid "You must supply a name for your account."
-msgstr "Privalote pateikti pakvietimo kodą, kad sukurtumėte abonementą."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Keisti abonemento informaciją"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Būsenos serveryje"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "Vykdomas"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Užduotis išsiųsta, laukiama užbaigimo."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Patikrinimo klaida"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Būsenos kliente"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Nežinomas"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "El. pašto adresas"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Siųsti žinutę"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Laukiamas kreditas"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your name:"
-msgstr "Rodyti pavadinimus"
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "el. pašto adresą"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Draugai"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "Naujas el. pašto adresas"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Siuntėjas"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "Vartotojas pašalintas"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Savininkas"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Versija"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-#, fuzzy
-msgid "Forum"
-msgstr "Forumų pradžios puslapis"
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Taisyti žinutę"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Pavadinimas"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Pridėti mano parašą"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "%1 forumas"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Tema"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Pridėti naują žinutę į šią temą"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "neskaityta"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "neskaityta"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Neturite asmeninių žinučių."
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "Blokuoti vartotoją"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Tema"
-
-# ########################################
-# Links from the main page
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Klausimai ir atsakymai"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Versija"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 forumai"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Jei turite klausimų ar problemų, naudokite %1klausimų ir atsakymų%2 forumų "
-"dalį."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Pranešti apie naujas žinutes"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Paskutinė žinutė"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "Nėra kompiuterio"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Rašyti į temą"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "tokio vartotojo nėra"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "UTC %1 val."
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 dienų"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "%1 žinučių"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "Neišsiųsta"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "Vartotojas pašalintas"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Dabartinė versija"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Komandos aprašymas"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Sukurti naują temą"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Sukurti naują temą"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Rašyti į temą"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Rašyti į temą"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Žinutė"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Pridėti mano parašą"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Report Registered"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Paskutinė žinutė"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Paskutinė žinutė"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-#, fuzzy
-msgid "Report not registered"
-msgstr "Galutinis atlikimo terminas"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-# ########################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Nebūtinas"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Paieška forumuose"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Ieškoti"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Ieškoti forumuose"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 žinučių"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Paieškos forume rezultatai"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Nėra aprašymų, atitinkančių jūsų užklausą."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Nėra aprašymų, atitinkančių jūsų užklausą."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Komandos aprašymas"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Nebepranešti apie naujas žinutes"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-# ########################################<br />
-# Forum thread
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "Ši tema buvo paslėpta moderatorių"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Pridėti naują žinutę į šią temą"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Nebepranešti apie naujas žinutes"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Pranešti apie naujas žinutes"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-# ########################################
-# Forum
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Žinutės"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Pridėti draugą"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Draugavimo užklausa išsiųsta"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Nutraukti draugystę?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Pamiršote prisijungimo informaciją?"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-"2) Jei pamiršote elektroninio pašto adresą arba į jį nebegalite gauti "
-"elektroninių laiškų:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Sveiki prisijungę prie %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-"Peržiūrėkite ir keiskite abonemento nustatymus naudodamiesi nuorodomis "
-"žemiau."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Jei to dar nepadarėte, %1parsisiųskite BOINC programinę įrangą%2."
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Procesorių skaičius"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Vidutinis išsiuntimo greitis"
-
-# ########################################<br />
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Programos informacija kompiuteriui %1"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "Sujungti pasikartojančius šio kompiuterio įrašus"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Pašalinti šį kompiuterį"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "Tikrai ištrinti?"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Kompiuteriai"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "Rodyti pavadinimus"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "pavadinimas"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "sukurtas"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Kompiuteris"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Nėra kompiuterio"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Sujungti"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Atlikta"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Kompiuteriai, priskirti %1"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Kompiuterio informacija"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Kompiuteriai"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Nenaudokite HTML žymių."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Sukurtas"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Projektą %1 vykdykite tik su tais kompiuteriais, kurių savininkas esate pats "
-"arba esate gavęs savininko leidimą. Kai kurios kompanijos ar mokyklos "
-"laikosi politikos, kuri draudžia naudoti kompiuterius projektams kaip %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Kaip %1 naudos jūsų kompiuterį"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Kai jūsų kompiuteryje bus vykdomas %1 projektas, jis naudos dalį kompiuterio "
-"procesoriaus galios, disko vietos ir interneto ryšio. Jūs galite "
-"kontroliuoti kiek savo resursų skirsite %1 projektui ir kada juos galima "
-"naudoti."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Darbas, kuri atliks Jūsų kompiuteris, padės įgyvendinti %1 projekto tikslus, "
-"kurie surašyti šioje interneto svetainėje. Projekto programos laikui bėgant "
-"gali keistis."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Privatumo politika"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Jūsų abonementas %1 projekte yra nustatomas pagal jūsų pasirinktą vardą. Šis "
-"vardas gali būti rodomas %1 projekto interneto svetainėje kartu su "
-"apibendrintais duomenimis apie kompiuterio atliktą darbą %1 projektui. Jei "
-"norite likti anonimiškas - pasirinkite vardą, kuris neatskleistų jūsų "
-"tapatybės."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Jei dalyvaujate %1 projekte, informacija apie jūsų kompiuterį (tokia kaip "
-"procesoriaus tipas, atminties kiekis ir kt.) bus įrašyta %1 projekto duomenų "
-"bazėje ir pagal ją bus sprendžiama, kokį darbą skirti jūsų kompiuteriui. Ši "
-"informacija taip pat bus rodoma %1 projekto interneto svetainėje. Jokia "
-"informacija, kuri galėtų atskleisti jūsų kompiuterio buvimo vietą (domeno "
-"pavadinima ar tinklo adresą) nebus rodoma."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Norint dalyvauti %1 projekte, jums reikėtų turėti elektroninio pašto dėžutę. "
-"Jūsų elektroninio pašto adresas nebus rodomas %1 projekto interneto "
-"svetainėje ar perduotas kitoms organizacijoms.%1 projektas gali jums "
-"atsiųsti periodinius naujienių biuletenius, tačiau jų galima atsisakyti bet "
-"kuriuo metu."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Ar saugu vykdyti %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Kiekvieną kartą, kai siunčiatės programą per internetą, gali būti kad: "
-"programa turi pavojingų klaidų ar serveris gali būti \"nulaužtas\". %1 "
-"projektas deda visas pastangas sumažinti šią riziką. Mes atidžiai išbandėme "
-"savo programas. Mūsų serveriai yra saugomi ugniasienių ir nustatyti "
-"aukščiausiam saugumo lygiui. Visos vykdomosios bylos yra pasirašytos "
-"skaitmeniniu parašu kompiuteryje, kuris nėra prijungtas prie interneto."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"%1 projekto vykdomos programos gali perkaitinti kai kuriuos kompiuterius. "
-"Jei taip atsitinka, nustokite vykdyti %1 projektą arba naudokite %"
-"2papildomas programas%3, kurios riboja kompiuterio procesoriaus naudojimą."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 buvo sukurtas %2. BOINC buvo sukurtas Kalifornijos Universitete."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Atsakomybė"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 projektas ir %2 neprisiima atsakomybės už žalą padarytą Jūsų "
-"kompiuteriui, duomenų praradinimą ar kokį kitą įvykį ar sąlygą, kuri galėjo "
-"kilti dėl dalyvavimo %1 projekte."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Kiti BOINC projektai"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Kiti projektai, kaip ir %1, naudoja BOINC. Jūs galite nuspręsti prisijungti "
-"prie vieno ar kelių projektų. Tokiu atveju, Jūsų kompiuteris atliks naudingą "
-"darbą kai %1 projektas užduočių neturės."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Šie projektai nėra susiję su %1, ir dėl to mes negalime garantuoti už jų "
-"projekto saugumą ar tyrimo tikslus. Jūs patys sprendžiate ar prisijungti "
-"prie kitų projektų."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "El. pašto adresas:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "pamiršote elektroninio pašto adresą?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Slaptažodis:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "pamiršote slaptažodį?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "arba %1užsiregistruokite%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "Jungiamas kompiuteris %1 į kompiuterį %2"
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Vykdykite %1 tik kompiuteriuose, kuriuose turite leidimą tai daryti"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Laukiamas kreditas"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Užduočių rinkinys"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "suteiktas kreditas"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Laukiamas kreditas"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Vartotojas nerastas"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Jūsų žinutė išsiųsta."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Neturite asmeninių žinučių."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Siuntėjas ir data"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Žinutė nerasta"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Ištrinti pasirinktas žinutes"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Ištrinti pasirinktas žinutes"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Siuntėjas"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Reikia užpildyti visus laukus, kad galėtumėte išsiųsti asmeninę žinutę"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Nepavyko rasti vartotojo su ID %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Nepavyko rasti vartotojo su vardu %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 nėra unikalus vartotojo vardas; turėsite naudoti vartotojo ID"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Vartotojas %1 (ID: %2) nepriima asmeninių žinučių iš jūsų."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Vartotojas nerastas"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Tikrai blokuoti %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Ar tikrai norite uždrausti vartotojui %1 siųsti jums asmenines žinutes?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Atminkite, kad galite blokuoti ribotą vartotojų skaičių."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Kai vartotojas bus užblokuotas, blokavimą galėsite atšaukti diskusijų lentos "
-"nustatymų puslapyje."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Ne, atšaukti"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "tokio vartotojo nėra"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Vartotojas %1 užblokuotas"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Vartotojui %1 uždrausta jums siųsti asmenines žinutes."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Kad atblokuotumėte, apsilankykite %1diskusijų lentos nustatymuose%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Nežinomas"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Keisti nustatymus"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Aprašymai%2 leidžia pasidalinti nuomonėmis su %3 bendruomene."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Apžvelkite savo kolegas dalyvius ir pateikite savo nuomonę kitiems."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Jei to dar nepadarėte, %1sukurkite savo aprašymą%2!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Dienos dalyvis"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Dalyvių aprašymų naršymas"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Peržiūrėti %1dalyvių paveikslėlių galeriją%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Peržiūrėti aprašymus %1pagal valstybę%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Peržiūrėti aprašymus %1atsitiktinai%2, %3atsitiktinai su paveikslėliais%2 "
-"arba %4atsitiktinai be paveikslėlių%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Abėcėlinis aprašymų sąrašas:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Ieškoti aprašymuose"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Nėra aprašymų"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Nėra aprašymų, atitinkančių jūsų užklausą."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-#, fuzzy
-msgid "Profiles containing '%1'"
-msgstr "Pavadinimai, turintys '%1'"
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Užduoties pavadinimas"
-
-#: ../user/profile_search_action.php:41
-#, fuzzy
-msgid "Joined project"
-msgstr "Prisijungė"
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Vidutinis kreditas"
-
-#: ../user/profile_search_action.php:54
-#, fuzzy
-msgid "No profiles found containing '%1'"
-msgstr "Pavadinimai, turintys '%1'"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "Projekto būsena"
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Užduočių rinkiniai, laukiantys patikrinimo"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Užduočių rinkiniai, laukiantys apdorojimo"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Užduočių rinkiniai, laukiantys failų trynimo"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Užduotys, laukiančios failų trynimo"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# ########################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "programa"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "neišsiųsta"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "vykdoma"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Kompiuteris"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Kad prisijungtumėte prie komandos, pereikite į komandos puslapį ir spauskite "
-"%1prisijungti prie komandos%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Raskite komandą"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Sukurti naują komandą"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Tokios komandos nėra"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "tokios komandos nėra"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Sukurti komandą"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "%1 forumas"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Komandos informacija"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Prisijungė"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Prisijungė"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Narių sąrašas"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Komanda %1 ištrinta"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Palikti komandą"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Komandos pavadinimas"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Komandų paieškos rezultatai"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Geriausi kompiuteriai"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Geriausios %1 komandos"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Dalyvis nuo"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Mažėjantis vidutinis kreditas"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Mažėjantis bendras kreditų skaičius"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Dalyvių paieškos rezultatai"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Prisijungė"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Dalyvis nerastas!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Komanda:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Tokio vartotojo nėra."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-# ########################################
-# "Your account" page (home.php)
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Silpnas abonemento raktas"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Užduočių rinkinys %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "suteiktas kreditas"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Laukiama"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Pagrindinis puslapis"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
-
-#~ msgid "Error:"
-#~ msgstr "Klaida:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Abonementų kūrimas yra išjungtas"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Abonementų kūrimas projekte šiuo metu yra išjungtas.\n"
-#~ "Pabandykite dar kartą vėliau."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "Abonementų kūrimas šiuo metu išjungtas. Pamėginkite vėliau."
-
-#~ msgid "No such task"
-#~ msgstr "Tokios užduoties nėra"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Suteikia %1ribotą priėjimą%2 prie jūsų abonemento"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Nenaudokite šios formos. Tiesiog paleiskite BOINC, pasirinkite \"Prisijungti "
-#~ "prie projekto\" ir įveskite savo elektroninio pašto adresą bei slaptažodį."
-
-# ########################################
-# "Weak account key" page (weak_auth.php)
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Jūsų paprastas abonemento raktas leidžia prijungti kompiuterius prie šio "
-#~ "projekto nepaliekant galimybės prisijungti prie jūsų abonemento ar jį kaip "
-#~ "nors pakeisti."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Šis mechanizmas veikia tik su projektais, kurie atnaujino serverio "
-#~ "programinę įrangą 2007 gruodžio 7 ar vėliau."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Jūsų paprastas abonemento raktas šiam projektui yra:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Kad naudotumėte paprastą abonemento raktą tam tikrame kompiuteryje, "
-#~ "suraskite ar sukurkite abonemento rinkmeną šiam projektui. Šios rinkmenos "
-#~ "vardas turi formą <b>account_PROJEKTO_ADRESAS.xml</b>. Abonemento rinkmena %"
-#~ "1 yra <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Sukurkite šią rinkmeną, jei reikia. Jos turinį pakeiskite į:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Jūsų paprastas abonemento raktas sukuriamas pagal jūsų slaptažodį. Jei "
-#~ "pakeičiate savo slaptažodį, jūsų paprastas abonemento raktas pasikeičia, ir "
-#~ "jūsų senas paprastas abonemento raktas tampa nebegaliojančiu."
-
-#~ msgid "Account key"
-#~ msgstr "Abonemento raktas"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Suteikia pilną priėjimą prie jūsų abonemento"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr ""
-#~ "KLAIDA: %1 neegzistuoja! Nepavyksta sukurti pasirinkimo laukelio.<br>"
-
-#~ msgid "BOINC client version"
-#~ msgstr "BOINC kliento versija"
-
-#~ msgid "%1/day"
-#~ msgstr "%1 per dieną"
-
-#~ msgid "Last %1"
-#~ msgstr "Buvę %1"
-
-# #########################################
-# Language: Lithuanian
-# FileID  : $Id: lt.po 15598 2008-07-12 16:05:25Z Rytis $
-# Author  : Rytis Slatkevičius
-# Email   : rytis.s at gmail.com
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Resursų padalijimas ir grafika"
-
-#~ msgid "Provides"
-#~ msgstr "Suteikia"
-
-#~ msgid "limited access"
-#~ msgstr "ribotą priėjimą"
-
-# ########################################
-# "Your account" page (home.php)
-#~ msgid "to your account"
-#~ msgstr "prie jūsų abonemento"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Pažymėti kaip neskaitytus"
-
-#~ msgid "With selected"
-#~ msgstr "Su pasirinktais"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Ar tikrai norite ištrinti žinutę, kurios tema "%1" (išsiuntė %2 "
-#~ "%3)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Taip, ištrinti"
-
-#~ msgid "No such message."
-#~ msgstr "Žinutė nerasta."
-
-#~ msgid "Posts containing '%1'"
-#~ msgstr "Žinutės, turinčios '%1'"
-
-#~ msgid "No titles containing '%1' could be found."
-#~ msgstr "Nerasta pavadinimų, turinčių \"%1\"."
-
-#~ msgid "No posts containing '%1' could be found."
-#~ msgstr "Nerasta įrašų, turinčių \"%1\"."
-
-#~ msgid "administrative functions"
-#~ msgstr "valdymo funkcijos"
-
-#~ msgid "Message board preferences"
-#~ msgstr "Diskusijų lentos nustatymai"
-
-#~ msgid "Account number"
-#~ msgstr "Abonemento numeris"
-
-#~ msgid "Used in URLs"
-#~ msgstr "Naudojamas internetiniuose adresuose"
diff --git a/locale/lt/BOINC-Setup.po b/locale/lt/BOINC-Setup.po
old mode 100755
new mode 100644
diff --git a/locale/lt/BOINC-Web.po b/locale/lt/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/lv/BOINC-Client.mo b/locale/lv/BOINC-Client.mo
index 1df03c4..86507f5 100644
Binary files a/locale/lv/BOINC-Client.mo and b/locale/lv/BOINC-Client.mo differ
diff --git a/locale/lv/BOINC-Client.po b/locale/lv/BOINC-Client.po
index 6425a81..58b3bcc 100644
--- a/locale/lv/BOINC-Client.po
+++ b/locale/lv/BOINC-Client.po
@@ -5,12 +5,12 @@
 # Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-08 23:05+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Latvian (http://www.transifex.com/projects/p/boinc/language/lv/)\n"
+"PO-Revision-Date: 2015-02-23 23:14+0000\n"
+"Last-Translator: Rom Walton\n"
+"Language-Team: Latvian (http://www.transifex.com/boinc/boinc/language/lv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/lv/BOINC-Project-Generic.po b/locale/lv/BOINC-Project-Generic.po
deleted file mode 100755
index 7a4a732..0000000
--- a/locale/lv/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6467 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: lv\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr ""
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr ""
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr ""
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/lv/BOINC-Setup.mo b/locale/lv/BOINC-Setup.mo
index ddc85da..eb5c4a7 100644
Binary files a/locale/lv/BOINC-Setup.mo and b/locale/lv/BOINC-Setup.mo differ
diff --git a/locale/lv/BOINC-Setup.po b/locale/lv/BOINC-Setup.po
index e356fa6..27c78cd 100644
--- a/locale/lv/BOINC-Setup.po
+++ b/locale/lv/BOINC-Setup.po
@@ -11,7 +11,7 @@ msgstr ""
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
 "PO-Revision-Date: 2015-06-21 23:02+0000\n"
 "Last-Translator: Atis Kozulis <boinc.at.latvia at gmail.com>\n"
-"Language-Team: Latvian (http://www.transifex.com/projects/p/boinc/language/lv/)\n"
+"Language-Team: Latvian (http://www.transifex.com/boinc/boinc/language/lv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/lv/BOINC-Web.po b/locale/lv/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/ms/BOINC-Client.po b/locale/ms/BOINC-Client.po
old mode 100755
new mode 100644
diff --git a/locale/ms/BOINC-Manager.po b/locale/ms/BOINC-Manager.po
old mode 100755
new mode 100644
diff --git a/locale/ms/BOINC-Project-Generic.po b/locale/ms/BOINC-Project-Generic.po
deleted file mode 100755
index 27700af..0000000
--- a/locale/ms/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6467 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ms\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.10.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr ""
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr ""
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr ""
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr ""
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/ms/BOINC-Setup.po b/locale/ms/BOINC-Setup.po
old mode 100755
new mode 100644
diff --git a/locale/ms/BOINC-Web.po b/locale/ms/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/nb/BOINC-Client.mo b/locale/nb/BOINC-Client.mo
index 604d34d..2fbeefa 100644
Binary files a/locale/nb/BOINC-Client.mo and b/locale/nb/BOINC-Client.mo differ
diff --git a/locale/nb/BOINC-Client.po b/locale/nb/BOINC-Client.po
index 9730666..d0317c3 100644
--- a/locale/nb/BOINC-Client.po
+++ b/locale/nb/BOINC-Client.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2016-04-07 15:58+0000\n"
+"PO-Revision-Date: 2016-04-07 16:00+0000\n"
 "Last-Translator: Rune Bjørge <runetbj at hotmail.com>\n"
 "Language-Team: Norwegian Bokmål (http://www.transifex.com/boinc/boinc/language/nb/)\n"
 "MIME-Version: 1.0\n"
@@ -117,7 +117,7 @@ msgstr "Dette prosjektet støtter ikke datamaskiner av type"
 #: ../sched/sched_send.cpp:1092
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr "Oppgradere til den siste versjon av grafikkdriver for å bruke PCens grafikkkort (GPU) til å gjøre beregninger"
+msgstr "Oppgradere til den siste versjon av grafikkdriver for å bruke PC'ens grafikkkort (GPU) til å gjøre beregninger"
 
 #: ../sched/sched_send.cpp:1099
 msgid ""
@@ -145,7 +145,7 @@ msgstr "Din datamaskintype støttes ikke av dette prosjektet"
 
 #: ../sched/sched_send.cpp:1294
 msgid "Newer BOINC version required; please install current version"
-msgstr "Krav om nyere versjon av BOINC; Installer siste versjon"
+msgstr "Dette krever en nyere versjon av BOINC. Vennligst Installer siste versjon"
 
 #: ../sched/sched_send.cpp:1305
 #, c-format
diff --git a/locale/nb/BOINC-Project-Generic.po b/locale/nb/BOINC-Project-Generic.po
deleted file mode 100755
index 728e881..0000000
--- a/locale/nb/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6872 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC-prject-generic\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-09-13 04:05+0000\n"
-"Last-Translator: Jan <jan at sherdahl.com>\n"
-"Language-Team: Hjelp andre <kenneth at skjold.biz>\n"
-"Language: nb\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1410581127.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Uthevet tekst: [b]tekst[/b]  (alt+b)                "
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kursiv tekst: [i]tekst[/i]  (alt+i)                "
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Understreket tekst: [u]tekst[/u]  (alt+u)                "
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Liste: [list]tekst[/list] (alt+l)                "
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Sett inn bilde: [img]http://image_url[/img]  (alt+p)                "
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Skriftfarge"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Forvalg"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Mørkerød"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Rød"
-
-#: ../inc/bbcode_html.inc:47
-#, fuzzy
-msgid "Orange"
-msgstr "Endre"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Brun"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Gul"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Grønn"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Olivengrønn"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Turkis"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Blå"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Mørkeblå"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Blåfiolett"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Fiolett"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Skriftstørrelse"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Skriftstørrelse: [size=x-small]Liten tekst[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Liten"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Stor"
-
-#: ../inc/bbcode_html.inc:65
-#, fuzzy
-msgid "Close all open bbCode tags"
-msgstr "Avslutt alle åpne bbCode tagger"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Eldste først"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Nyeste først"
-
-#: ../inc/forum.inc:39
-#, fuzzy
-msgid "Highest rated posts first"
-msgstr "Høyest rangerte innlegg først"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Nyeste post først"
-
-#: ../inc/forum.inc:42
-#, fuzzy
-msgid "Most views first"
-msgstr "Flest visninger først"
-
-#: ../inc/forum.inc:43
-#, fuzzy
-msgid "Most posts first"
-msgstr "Flest innlegg først"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Søk etter ord i forum meldinger"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Søk i forumene"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Avansert søk"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Private meldinger"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Spørsmål og svar"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Oppslagstavler"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 oppslagstavle"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Forrige"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Neste"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Forfatter"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Melding"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Send melding"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Send %1 en privat melding"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Sammenslått: %1"
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Innlegg: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Poeng: %1"
-
-#: ../inc/forum.inc:597
-#, fuzzy
-msgid "RAC: %1"
-msgstr "GAU: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Du har ikke lest denne meldingen enda"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Ulest"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Melding %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "skjult"
-
-#: ../inc/forum.inc:625
-#, fuzzy
-msgid "Posted: %1"
-msgstr "Postet: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Rediger"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Rediger denne meldingen"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Sist endret: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Dette innlegget vises ikke fordi avsender er på din 'ignoreringsliste'. "
-"Klikk %1her%2 for å vise innlegget"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Rapporter dette innlegget som støtende"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Rapporter som støtende"
-
-#: ../inc/forum.inc:672
-#, fuzzy
-msgid "Rating: %1"
-msgstr "Rangering: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "bedøm: "
-
-# 83%
-#: ../inc/forum.inc:675
-#, fuzzy
-msgid "Click if you like this message"
-msgstr " Klikk hvis du liker denne meldingen"
-
-#: ../inc/forum.inc:675
-#, fuzzy
-msgid "Rate +"
-msgstr "Bedøm +"
-
-#: ../inc/forum.inc:677
-#, fuzzy
-msgid "Click if you don't like this message"
-msgstr "Klikk hvis du ikke liker denne meldingen"
-
-#: ../inc/forum.inc:677
-#, fuzzy
-msgid "Rate -"
-msgstr "Bedøm -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Svar"
-
-#: ../inc/forum.inc:685
-#, fuzzy
-msgid "Post a reply to this message"
-msgstr "Svar på denne meldingen"
-
-#: ../inc/forum.inc:687
-#, fuzzy
-msgid "Quote"
-msgstr "Sitat"
-
-#: ../inc/forum.inc:687
-#, fuzzy
-msgid "Post a reply by quoting this message"
-msgstr "Svar på denne meldingen"
-
-#: ../inc/forum.inc:708
-#, fuzzy
-msgid "Hidden by a moderator"
-msgstr "Skjult av en moderator"
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Postet %1 av %2"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "Du kan ikke legge til eller rangere meldinger før %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Regler:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Mer informasjon"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Vis"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Vis dette innlegget"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Skjul"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Skjul dette innlegget"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "&Flytt"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Flytt innlegg til en annen tråd"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Forvis forfatter"
-
-#: ../inc/forum.inc:1074
-#, fuzzy
-msgid "Vote to banish author"
-msgstr "Stem for å forvise forfatter"
-
-#: ../inc/forum.inc:1078
-#, fuzzy
-msgid "Vote not to banish author"
-msgstr "Stem for ikke å forvise forfatter"
-
-#: ../inc/forum.inc:1083
-#, fuzzy
-msgid "Start vote to banish author"
-msgstr "Start avstemming for å forvise forfatter"
-
-#: ../inc/forum.inc:1116
-#, fuzzy
-msgid "Only team members can post to the team message board"
-msgstr "Bare teammedlemmer kan poste innlegg på teamets diskusjonsforum"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"For å kunne lage et nytt innlegg i %1 må du ha en hvis mengde kreditt. Dette "
-"for å forebygge og beskytte mot misbruk av systemet."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Du kan ikke lage flere innlegg akkurat nå. Vennligst vent en stund før du "
-"prøver igjen. Denne forsinkelsen er lagt til som beskyttelse mot misbruk av "
-"systemet"
-
-#: ../inc/forum.inc:1140
-#, fuzzy
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Denne tråden er stengt. Bare forumets moderatorer og administratorer har "
-"tillatelse til å poste innlegg der."
-
-#: ../inc/forum.inc:1145
-#, fuzzy
-msgid "Can't post to a hidden thread."
-msgstr "Kan ikke poste til en skjult tråd."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Tråd"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Innlegg"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Visninger"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Siste innlegg"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Nye innlegg i tråden %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Nye innlegg i tråden du abonnerer på"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Merk alle trådene som lest"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Merk alle tråder i alle diskusjonsforum som 'lest'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Ingen vert"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Ikke tilgjengelig"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Hjem"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Arbeid"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Skole"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Mobil"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Oppdater"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Datamaskininformasjon"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP adresse"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(lik de siste %1 ganger)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Ekstern IP adresse"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Vis IP adresse"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Domenenavn"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr "Produktnavn"
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Lokal standard tid"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 timer"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Eier"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonym"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Opprettet"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Totalt arbeid utført"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Gjennomsnittlig arbeid utført"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Prosessortype"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Antall prosessorer"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Støtteprosessorer"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Operativsystem"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC versjon"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Minne"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Buffer"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Veksleminne"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Total diskplass"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Ledig diskplass"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Målt flyttallshastighet"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 millioner operasjoner per sekund"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Målt heltallshastighet"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Gjennomsnittlig opplastingshastighet"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/sek"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Ukjent"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Gjennomsnittlig nedlastingshastighet"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 dager"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Programdetaljer"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Vis"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Oppgaver"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Antall ganger klient har kontaktet tjener"
-
-#: ../inc/host.inc:186
-#, fuzzy
-msgid "Last time contacted server"
-msgstr "Server sist kontaktet"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% av tiden BOINC kjører"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Gjennomsnittlig prosessoreffektivitet"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Plassering"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Slett denne datamaskinen"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Flett"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Siste kontakt"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Datamaskin informasjon"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Plassering"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-#, fuzzy
-msgid "Avg. credit"
-msgstr "Gj.sn. arbeid"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Gjennomsnitt nylig arbeid utført"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Prosessor"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operativsystem"
-
-#: ../inc/host.inc:315
-#, fuzzy
-msgid "(%1 processors)"
-msgstr "(%1 prosessorer)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Detaljer"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Kryss-prosjekt statistikk"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Vert %1 har et ikke kompatibelt operativsystem:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Vert %1 har en ikke kompatibel prosessor:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "samme vert"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Flett vert %1 inn i vert %2"
-
-#: ../inc/host.inc:618
-#, fuzzy
-msgid "Couldn't update credit of new computer"
-msgstr "Kunne ikke oppdatere poengene til ny datamaskin"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Kunne ikke oppdatere resultater"
-
-#: ../inc/host.inc:627
-#, fuzzy
-msgid "Couldn't retire old computer"
-msgstr "Kunne ikke pensjonere gammel datamaskin"
-
-#: ../inc/host.inc:629
-#, fuzzy
-msgid "Retired old computer %1"
-msgstr "Pensjonert gammel datamaskin %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Vis:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Alle datamaskiner"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Bare datamaskiner som har vært aktiv de siste 30 dager"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "Datamaskin ID"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Navn"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br>versjon"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-#, fuzzy
-msgid "Merge computers by name"
-msgstr "Slå sammen datamaskiner på navn"
-
-#: ../inc/language_names.inc:61
-#, fuzzy
-msgid "Browser default"
-msgstr "Standard utforsker"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Kommentar"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Nyheter er tilgjengelig som en %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Innboks"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Skriv"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Send en privat melding"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Forhåndsvisning"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "Ingen slik melding"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Til"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Bruker ID's eller unike brukernavn, separert med komma"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Emne"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Send melding"
-
-#: ../inc/pm.inc:121
-#, fuzzy
-msgid "sent you a private message; subject:"
-msgstr "sendte deg en privat melding; emne:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Privat melding%1 fra %2, emne:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Kunne ikke lage melding"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Du har ikke tillatelse til å sende private meldinger så ofte. Vennligst vent "
-"litt før du sender flere meldinger."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "ulest"
-
-#: ../inc/pm.inc:186
-#, fuzzy
-msgid "For email notification, %1edit community prefs%2"
-msgstr "For epostvarsel, %1rediger innstillinger for gruppen%2"
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Private meldinger"
-
-#: ../inc/prefs.inc:77
-#, fuzzy
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Suspender arbeid ved batteridrift? %1 Har betydning kun for bærbare "
-"datamaskiner %2"
-
-#: ../inc/prefs.inc:85
-#, fuzzy
-msgid "Suspend work while computer is in use?"
-msgstr "Suspendere arbeid når datamaskinen er i bruk?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minutter"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "prosessorer"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% av prosessorene"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% av CPU tid"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% av total"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "sekunder"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dager"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Maksimum nedlastingshastighet:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbytes/sek"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Maksimum opplastingshastighet:"
-
-#: ../inc/prefs.inc:259
-#, fuzzy
-msgid "Use network only between the hours of"
-msgstr "Bruk nettverk bare mellom klokken"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Disk- og minnebruk"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Prosessorbruk"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Nettverksbruk"
-
-#: ../inc/prefs.inc:392
-#, fuzzy
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Disse innstillingene gjelder for alle BOINC prosjektene du deltar i."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "ja"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nei"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "ingen grense"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Legg til"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Fjern"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Databehandling"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Separate innstillinger for %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Rediger innstillinger"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Legg til separate innstillinger for %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Bytt visning)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Kombinerte innstillinger"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Prosjekt spesifikke innstillinger"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-#, fuzzy
-msgid "Primary (default) preferences"
-msgstr "Primære (standard) innstillinger"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Redigere %1 innstillinger"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Innstillinger sist endret:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Legg til innstillinger"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Oppdater innstillinger"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "og"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Databasefeil"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Bruker er utestengt"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Ingen profil eksisterer for den bruker ID."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Rediger din profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Din tilbakemelding på denne profilen"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Anbefal denne profilen til Dagens Bruker:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Jeg %1liker%2 denne profilen"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Varsle administrator om en støtende profil:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Jeg %1like ikke%2 denne profilen"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonym plattform"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Ikke i DB"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Alle"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "I prosess"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Gyldig"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Ugyldig"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-#, fuzzy
-msgid "Error"
-msgstr "Feilet"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inaktiv"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Ikke sent"
-
-#: ../inc/result.inc:181
-#, fuzzy
-msgid "Completed, waiting for validation"
-msgstr "Ferdig, venter på validering"
-
-#: ../inc/result.inc:182
-#, fuzzy
-msgid "Completed and validated"
-msgstr "Ferdig og validert"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-#, fuzzy
-msgid "Completed, can't validate"
-msgstr "Ferdig, kan ikke validere"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-#, fuzzy
-msgid "Completed, too late to validate"
-msgstr "Ferdig, for sent å validere"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Ferdig"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Kunne ikke sende"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-#, fuzzy
-msgid "Cancelled by server"
-msgstr "Avbrutt av server"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-#, fuzzy
-msgid "Error while downloading"
-msgstr "Feil under nedlasting"
-
-#: ../inc/result.inc:204
-#, fuzzy
-msgid "Error while computing"
-msgstr "Feil oppsto ved beregning"
-
-#: ../inc/result.inc:205
-#, fuzzy
-msgid "Error while uploading"
-msgstr "Feil under nedlasting"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Opplasting feilet"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-#, fuzzy
-msgid "Didn't need"
-msgstr "Trengte ikke"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Valideringsfeil"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Over"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-#, fuzzy
-msgid "Success"
-msgstr "Lyktes"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Beregningsfeil"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Ikke svar"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Ny"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Laster ned"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Prosesserer"
-
-#: ../inc/result.inc:252
-#, fuzzy
-msgid "Compute error"
-msgstr "Prosesseringsfeil"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Laster opp"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Ferdig"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Ikke nødvendig"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Kunne ikke sende resultat"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "For mange feil (kan ha programvarefeil)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Oppgavenavn"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "klikk for detaljer"
-
-#: ../inc/result.inc:349
-#, fuzzy
-msgid "Show IDs"
-msgstr "Vis IDs"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Vis navn"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Oppgave"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Arbeidsenhet"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Datamaskin"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Sendt"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Tid rapportert<br /> eller frist"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "forklar"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Kjøretid<br />(sek)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Prosessortid<br />(sek)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Arbeid utført"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Applikasjon"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Arbeidsenhet"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Mottatt"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Tilstand tjener"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Utfall"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Tilstand klient"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Rapporter frist"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Kjøretid"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Prosessortid"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Valider tilstand"
-
-#: ../inc/result.inc:643
-#, fuzzy
-msgid "Application version"
-msgstr "Versjon applikasjon"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Utdata filer"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Tilstand"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Oppgavenavn"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Søke kriteria (bruk en eller flere)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Nøkkelord"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Finn team med disse ordene i navnet eller i beskrivelsen."
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Land"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Type team"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Vis bare aktive team"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Søk"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Anmodet av deg, og grunnleggers svarfrist er passert."
-
-#: ../inc/team.inc:63
-#, fuzzy
-msgid "Complete foundership transfer"
-msgstr "Fullført grunnlegger overføring"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Anmodet av deg"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "grunnleggers svarfrist er %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ingen"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Initiere anmodning"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Utsatt"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Team info"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Nettside"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Kryss-prosjekt statistikk"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Type"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Meldingstavle"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Tråder"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Bli med i dette teamet"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Obs: hvis 'Motta epost' er satt i dine prosjekt preferanser, vil "
-"grunnleggeren av et team få tilgang til din epost adresse hvis du blir "
-"medlem."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Aksepterer ikke nye medlemmer"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Endring av grunnlegger er anmodet"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Respons av %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Team grunnlegger endring"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Medlemmer"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Grunnlegger"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administratorer"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Nye medlemmer, siste dag"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Medlemmer totalt"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "visning"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktive medlemmer"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Medlemmer med arbeid utført"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administrator"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Neste %1"
-
-#: ../inc/team.inc:289
-#, fuzzy
-msgid "No such team."
-msgstr "Ingen slikt team."
-
-#: ../inc/team.inc:302
-#, fuzzy
-msgid "This operation requires foundership."
-msgstr "Denne handlingen krever grunnlegger rolle."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Denne handlingen krever team administrator rettigheter"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Personvern notat%2: hvis du lager et team, vil dine prosjekt preferanser "
-"(resurs deling, grafikk preferanser) være synlig for alle."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Team navn, tekst versjon"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Ikke bruk HTML tags."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Team navn, HTML versjon"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Du kan bruke %1begrensede HTML tags%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Hvis du ikke kan HTML, la denne boksen være blank."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "URL til Teamets nettside, hvis det er en nettside"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "uten \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Denne URL'en vil bli linket til, fra teamsiden på dette nettstedet."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Beskrivelse av teamet"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Tillat nye medlemmer?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Brukerprofil"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Prosjekter du deltar i."
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Prosjekter som %1 deltar i"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Prosjekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Klikk for brukerside"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Siden"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Databehandling og poeng"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Datamaskiner på denne kontoen"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Vis"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Kryss-prosjekt ID"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Kryss-prosjekt statistikk"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Konto"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Team"
-
-#: ../inc/user.inc:167
-#, fuzzy
-msgid "Cross-project"
-msgstr "Kryssprosjekt"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Sertifikat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistikk på din mobiltelefon"
-
-#: ../inc/user.inc:183
-#, fuzzy
-msgid "Unknown notification type: %1"
-msgstr "Ukjent varsel type: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Kontoinformasjon"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Epostadresse"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Postnummer"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 medlem siden"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Endre"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "epostadresse"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "passord"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "annen kontoinformasjon"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Bruker ID"
-
-#: ../inc/user.inc:213
-#, fuzzy
-msgid "Used in community functions"
-msgstr "Brukes i fellesskap funksjoner"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Kontonøkler"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Preferanser"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Når og hvordan BOINC bruker din datamaskin"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Beregningsalternativer"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Meldingstavle og private meldinger"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-#, fuzzy
-msgid "Community preferences"
-msgstr "Alternativer for felleskap"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Alternativer for dette prosjektet"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 alternativer"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Fellesskap"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Slett"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Opprett"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 innlegg"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Varsler"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Forlat team"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administrer"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(anmodning om grunnlegger endring forestående)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Medlem av team"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "Finn et team"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Grunnlegger men ikke medlem av"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Finn venner"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Venner"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Datamaskiner"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Giver"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Denne personen er en venn"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Avbryt vennskap"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-#, fuzzy
-msgid "Request pending"
-msgstr "Anmodning forestående"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Legg til som venn"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-#, fuzzy
-msgid "user name must be nonempty"
-msgstr "brukernavn kan ikke være tomt"
-
-#: ../inc/user.inc:454
-#, fuzzy
-msgid "user name may not contain HTML tags"
-msgstr "brukernavn kan ikke innehold HTML tagger"
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "logg ut"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "logg inn"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Logg inn"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Opprett en konto"
-
-#: ../inc/util.inc:206
-#, fuzzy
-msgid "Server status page"
-msgstr "Server status side"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-#, fuzzy
-msgid "Unable to handle request"
-msgstr "Ikke mulig å behandle forespørselen"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-#, fuzzy
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "sek"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Bruk BBkode tag's for å formatere teksten din"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 er midlertidig nede for vedlikehold. Vennligst prøv igjen senere."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Kan ikke koble til databasen - vennligst prøv igjen senere"
-
-#: ../inc/util.inc:821
-#, fuzzy
-msgid "Unable to select database - please try again later"
-msgstr "Kan ikke koble til databasen - vennligst prøv igjen senere"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identifiserer deg på vår nettside. Bruk ditt virkelige navn, eller et "
-"kallenavn."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Velg det landet du vil representere, hvis noen."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Postnummer"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Valgfritt"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Du må oppgi et navn for din konto"
-
-#: ../user/account_finish_action.php:30
-#, fuzzy
-msgid "HTML tags not allowed in name"
-msgstr "HTML tagger ikke tillatt på navn"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Legg til %1 innstillinger for %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Programmer"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"%1 har nå følgende programmer. Når du bidrar i %1, arbeid for et eller flere "
-"av disse programmene bli tildelt din datamaskin. Den gjeldende versjon av "
-"programmet vil bli lastet ned til din datamaskin. Dette skjer automatisk; du "
-"trenger ikke å gjøre noenting."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Plattform"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versjon"
-
-#: ../user/apps.php:52
-#, fuzzy
-msgid "Installation time"
-msgstr "Installasjonstid"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Eksempler"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Uthevet"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Kursiv"
-
-#: ../user/bbcode.php:34
-#, fuzzy
-msgid "Underline"
-msgstr "Understrek"
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "Beskrivelse"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Stor tekst"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Rød tekst"
-
-#: ../user/bbcode.php:38
-#, fuzzy
-msgid "link to website"
-msgstr "link til nettsted"
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "Sitert tekst"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Preformattert tekst"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Element 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:43
-#, fuzzy
-msgid "Item 2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Deltakere"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Utfør arbeid"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Din konto"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "vis statistikk, modifiser innstillinger"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Team"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#, fuzzy
-msgid "create or join a team"
-msgstr "opprett eller bli med i et team"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Dagens Bruker"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Serverstatus"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profiler"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Topp datamaskiner"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Topp teams"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Språk"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Les våre regler og retningslinjer"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Kan ikke opprette konto"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Du må ha en invitasjons kode for å lage en konto."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Invitasjons koden du skrev er ikke gyldig."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Ugyldig epostadresse: Du må taste inn en gyldig adresse i dette formatet "
-"name at domene"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "Lag konto"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Denne kontoen vil tilhøre team %1 og vil ha samme prosjekt preferanser som "
-"grunnleggeren."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Invitasjonskode"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "En gyldig invitasjonskode er nødvendig for å opprette en konto."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Epostadresse"
-
-#: ../user/create_account_form.php:83
-#, fuzzy
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Må være en gyldig adresse i denne formen 'name at domene'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Passord"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Må være minst %1 karakterer"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Bekreft passord"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Opprett konto"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Bilde"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Ditt profil bilde blir vist til venstre."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Språk"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Registrer profil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Opprett/rediger profil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profilen er lagret"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Opprett en profil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "Lag konto"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "Konto informasjon"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "Din anbefaling har blitt registrert"
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "Lag konto"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Ja"
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "Datamaskiner på denne kontoen"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nei"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Ikke slett denne kontoen"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "kunne ikke slette profil - vennligst prøv igjen senere"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Profilen din har blitt slettet."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Slett min profil"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Ikke slett min profil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-#, fuzzy
-msgid "Your donation for has been completed."
-msgstr "Din anbefaling har blitt registrert"
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donasjoner"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Beløp du ønsker å donere"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Fortsett"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Last ned BOINC legg-til software"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Endre epostadresse for kontoen"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "epost adresse"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "Bekreft passord"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Konto etablering er midlertidig deaktivert. Vennligst prøv igjen senere."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Endre epostadresse"
-
-#: ../user/edit_email_form.php:36
-#, fuzzy
-msgid "Change the email address of your account"
-msgstr "epost adresse"
-
-#: ../user/edit_email_form.php:37
-#, fuzzy
-msgid "New email address"
-msgstr "epost adresse"
-
-#: ../user/edit_email_form.php:38
-#, fuzzy
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Må være en gyldig adresse i denne formen 'name at domene'."
-
-#: ../user/edit_email_form.php:48
-#, fuzzy
-msgid "No password?"
-msgstr "Nytt passord"
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Bekreft passord"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Nullstill innstillinger"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Ingen slik bruker: %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr "Meldingstavle identitet"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "Ikke bruk HTML tags."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Forhåndsvisning signatur"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Oppslagstavler"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Tråder:"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Innlegg:"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Meldingsfilter"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Filtrerte brukere"
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Meldingstavle og private meldinger"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "Bruker ID (For eksempel: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "%1 preferanser"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Nullstill"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Svak konto nøkkel"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Bekreft passord"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Endre passord"
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Meldingen din har blitt sendt"
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Konto etablering er midlertidig deaktivert. Vennligst prøv igjen senere."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-#, fuzzy
-msgid "your account key"
-msgstr "Svak konto nøkkel"
-
-#: ../user/edit_passwd_form.php:46
-#, fuzzy
-msgid "Current password"
-msgstr "Nåværende passord"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Nytt passord"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Nytt passord, igjen"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-#, fuzzy
-msgid "You must supply a name for your account."
-msgstr "Du må ha en invitasjons kode for å lage en konto."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-#, fuzzy
-msgid "Edit account information"
-msgstr "Konto informasjon"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Oppdater info"
-
-#: ../user/explain_state.php:27
-#, fuzzy
-msgid "Server states"
-msgstr "Tilstand tjener"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "På fremmarsj"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-#, fuzzy
-msgid "Outcomes"
-msgstr "Utfall"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Klientfeil"
-
-#: ../user/explain_state.php:66
-#, fuzzy
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Oppgaven ble sendt til en datamaskin og en feil oppstod."
-
-#: ../user/explain_state.php:69
-#, fuzzy
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-"Oppgaven ble sendt til en datamaskin og ikke noe svar var mottatt innenfor "
-"tidsfristen."
-
-#: ../user/explain_state.php:72
-#, fuzzy
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Oppgaven ble ikke sendt til en datamaskin fordi nok andre oppgaver var "
-"ferdige for denne arbeidsenheten."
-
-#: ../user/explain_state.php:75
-#, fuzzy
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-"Oppgaven ble rapportert men kunne ikke bli validert, typisk fordi "
-"utdatafilene forsvant fra tjeneren."
-
-#: ../user/explain_state.php:80
-#, fuzzy
-msgid "Client states"
-msgstr "Tilstand klient"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-#, fuzzy
-msgid "The computer has not yet completed the task."
-msgstr "Datamaskinen har ikke foreløpig ferdigstilt oppgaven."
-
-#: ../user/explain_state.php:89
-#, fuzzy
-msgid "The computer completed the task successfully."
-msgstr "Datamaskinen fullførte oppgaven korrekt."
-
-#: ../user/explain_state.php:92
-#, fuzzy
-msgid "The computer couldn't download the application or input files."
-msgstr "Datamaskinen kunne ikke laste ned applikasjonen eller inndatafilene."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "En feil oppstod under beregning."
-
-#: ../user/explain_state.php:98
-#, fuzzy
-msgid "The computer couldn't upload the output files."
-msgstr "Datamaskinen kunne ikke laste opp utdatafilene."
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Tid rapportert<br /> eller frist"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Allerede rapportert"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-#, fuzzy
-msgid "Deadline, shown in green."
-msgstr "Frist, vist i grønt."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-#, fuzzy
-msgid "Deadline, shown in red."
-msgstr "Frist, vist i rødt."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Ukjent felt"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Forhåndsvisning epost"
-
-#: ../user/ffmail_action.php:48
-#, fuzzy
-msgid "Your email will appear as follows:"
-msgstr "Din epostadresse vil bli synlig som følgende:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Send epost"
-
-#: ../user/ffmail_action.php:59
-#, fuzzy
-msgid "Use your browser's back button to return to message form"
-msgstr "Bruk din nettlesers tilbake knapp for å gå tilbake til meldingsskjema"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Sender epost"
-
-#: ../user/ffmail_action.php:84
-#, fuzzy
-msgid "email sent successfully to %1"
-msgstr "epost sendt korrekt til %1"
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-#, fuzzy
-msgid "Thanks for telling your friends about %1"
-msgstr "Takk for at du fortalte din venner om %1"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-#, fuzzy
-msgid "Tell your friends about %1"
-msgstr "Fortell dine venner om %1"
-
-#: ../user/ffmail_form.php:37
-#, fuzzy
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Hjelp oss med å fortelle dine venner, familie og kolleger om %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Ditt navn:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Din epostadresse:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Venns navn:"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "epost adresse"
-
-#: ../user/ffmail_form.php:56
-#, fuzzy
-msgid "Additional message (optional)"
-msgstr "Legg til en valgfri melding her:"
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Avsender"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-#, fuzzy
-msgid "No user with this ID found."
-msgstr "Ingen datamaskin medID %1 funnet"
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "Bruker er allerede forvist"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Kategori"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Uanstendig"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-#, fuzzy
-msgid "User Request"
-msgstr "Ingen anmodning"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Annen"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Årsak"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Du må spesifisere en handling..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Du har ikke autorisasjon til å endre denne posten."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Rediger din melding"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Tittel"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Legg til min signatur til dette innlegget"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Ikke synlig for deg"
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "%1 oppslagstavle"
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr "Ny tråd"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Legg til en ny tråd i dette forumet"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr "Denne tråden er skjult"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "ulest"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "ulest"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Du har ingen private meldinger."
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Rediger tråd tittel"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Rediger tråd tittel"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "Lås opp"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "You read this thread"
-msgstr "Lås denne tråden"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Tråd"
-
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Spørsmål og svar"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Emne"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Versjon"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1Oppslagstavler"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Abonnér"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Siste innlegg"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Skjul post"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Flytte post"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Post til tråd"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "Ingen slik bruker"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 uke"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 uker"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 måned"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "For evig"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post_action.php:57
-#, fuzzy
-msgid "You are not authorized to moderate this post."
-msgstr "Du er nå venn med %1."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "Brukeren %1 har blitt forvist."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Handling feilet: Mulig databaseproblem"
-
-#: ../user/forum_moderate_thread.php:33
-#, fuzzy
-msgid "not authorized"
-msgstr "ikke autorisert"
-
-#: ../user/forum_moderate_thread.php:36
-#, fuzzy
-msgid "Moderate thread '%1'"
-msgstr "Moderer tråd '%1'"
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Beskrivelse av teamet"
-
-#: ../user/forum_moderate_thread.php:77
-#, fuzzy
-msgid "New title:"
-msgstr "Rediger tittel"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Lag en ny tråd"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Lag en ny tråd"
-
-#: ../user/forum_post.php:105
-#, fuzzy
-msgid "Remember to add a title"
-msgstr "Husk å legge til en tittel"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-#, fuzzy
-msgid "This function is turned off by the project"
-msgstr "Denne funksjonen er midlertidig avslått "
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Post til tråd"
-
-#: ../user/forum_rate.php:72
-#, fuzzy
-msgid "Input Recorded"
-msgstr "Stemme registrert"
-
-#: ../user/forum_rate.php:73
-#, fuzzy
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Din anbefaling har blitt registrert"
-
-#: ../user/forum_rate.php:75
-#, fuzzy
-msgid "Vote Registered"
-msgstr "Stemme registrert"
-
-#: ../user/forum_rate.php:76
-#, fuzzy
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Din anbefaling har blitt registrert"
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Post til tråd"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Melding"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Legg til min signatur til dette innlegget"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Din anbefaling har blitt registrert"
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Siste innlegg"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Siste innlegg"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Valgfritt"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Forum søk"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Søk"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Søk i forumene"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "For eksempel: \"skjermsparer frys\""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Søk i forumene"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "For eksempel: \"43214\""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Søk i forumene"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Søk i forumene"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "%1 innlegg"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-#, fuzzy
-msgid "Sort by"
-msgstr "Sorter"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Forum søkeresultat"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Ingen prifiler passet med din spørring"
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Ingen prifiler passet med din spørring"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Beskrivelse av teamet"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-"Konto etablering er midlertidig deaktivert. Vennligst prøv igjen senere."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Avslutt abonement"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-"Konto etablering er midlertidig deaktivert. Vennligst prøv igjen senere."
-
-#: ../user/forum_subscribe.php:74
-#, fuzzy
-msgid "Unknown subscription action"
-msgstr "Ukjent handling"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Dette forumet er ikke synlig for deg."
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Mitt spørsmål ble besvart"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Jeg har også fått dette spørsmålet"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Legg til en ny melding til denne tråden"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Avslutt abonement"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Abonnér"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-#, fuzzy
-msgid "Unhide this thread"
-msgstr "Lås opp denne tråden"
-
-#: ../user/forum_thread.php:196
-#, fuzzy
-msgid "Hide this thread"
-msgstr "Lås denne tråden"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Lås opp"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Lås opp denne tråden"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Lås"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Lås denne tråden"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Rediger tittel"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Rediger tittel på tråd"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Sorter"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Innlegg"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Allerede venner"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 aksepterer ikke vennskaps forespørsler fra deg"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Du kan ikke være venner med deg selv"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Legg til venn"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Legg til en valgfri melding her:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Venneforespørsel sendt"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Venneforespørsel"
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 sier: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Aksepter vennskap"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Avslå"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Vennskap bekreftet"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Vennskap avslått"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Venn bekreftet"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Du er nå venn med %1."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Avbryt vennskap?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Forbli venner"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Vennskap avbrutt"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "annen konto informasjon"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Velkommen til %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Anonym plattform"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Dagens Bruker"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Gjennomsnittlig kreditt"
-
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Programmer"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-# 86%
-# 88%
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Retuner til profil."
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Topp datamaskiner"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Navn"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "opprettet"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "datamaskin id"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "ingen vertsnavn"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Slå sammen vert"
-
-#: ../user/host_update_credit.php:28
-#, fuzzy
-msgid "Updating computer credit"
-msgstr "Oppdaterer arbeid utført"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Ingen"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-#, fuzzy
-msgid "Return to host page"
-msgstr "Returner til"
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Datamaskiner hører til %1"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Skjulte datamaskiner"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Dine datamaskiner"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "fet"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "kursiv"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlink"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paragraf"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "preformattert"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Hvordan %1 vil bruke din datamaskin"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Personvern"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Ansvar"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Andre BOINC prosjekter"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Språkvalg"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-#, fuzzy
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Verktøy/Alternativer/Generelt"
-
-#: ../user/language_select.php:85
-#, fuzzy
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Verktøy/Alternativer for Internet/Språk"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-#, fuzzy
-msgid "Use browser language setting"
-msgstr "Bruk språkinnstillinger for utforskeren"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Epostadresse:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "glemt epostadressen?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Passord:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "glemt passord?"
-
-#: ../user/login_form.php:51
-#, fuzzy
-msgid "Stay logged in"
-msgstr "Vær innlogget"
-
-#: ../user/login_form.php:62
-#, fuzzy
-msgid "or %1create an account%2."
-msgstr "eller %1 opprett en konto%2."
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Prosesserer %1"
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "Flett vert %1 inn i vert %2"
-
-# 86%
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Retuner til listen over dine datamaskiner"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Retuner til profil."
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-#, fuzzy
-msgid "Pending credit"
-msgstr "Arbeid utført som venter"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Resultat ID"
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Arbeidsenhet ID"
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Host ID"
-msgstr "Vert ID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Arbeid utført som venter"
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block messages from this user"
-msgstr "Blokker meldinger fra denne brukeren"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Blokker bruker"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Meldingen din har blitt sendt."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Du har ingen private meldinger."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Avsender og dato"
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr "Svar på denne meldingen"
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr "Slette denne meldingen"
-
-#: ../user/pm.php:112
-#, fuzzy
-msgid "Select all"
-msgstr "Merk alt"
-
-#: ../user/pm.php:114
-#, fuzzy
-msgid "Unselect all"
-msgstr "Fjern markering"
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Slett valgte meldinger"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Avsender"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Dato"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Kunne ikke finne bruker med id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Kunne ikke finne bruker med brukernavn %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Ingen slik bruker"
-
-#: ../user/pm.php:242
-#, fuzzy
-msgid "Really block %1?"
-msgstr "Virkelig blokkere %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nei, avbryt"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "Ingen slik bruker"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Bruker %1 blokkert"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Ukjent handling"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-#, fuzzy
-msgid "%1 for %2"
-msgstr "%1 for %2"
-
-#: ../user/prefs_edit.php:110
-#, fuzzy
-msgid "Back to preferences"
-msgstr "Tilbake til innstillinger"
-
-#: ../user/prefs_remove.php:45
-#, fuzzy
-msgid "Confirm delete preferences"
-msgstr "Bekreft sletting av innstillinger"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "Fjern innstillinger"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Dagens Bruker"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Bruker Profil Utforsker"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Søk profil tekst"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Ingen profiler"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Ingen prifiler passet med din spørring"
-
-#: ../user/profile_rate.php:29
-#, fuzzy
-msgid "Invalid vote type:"
-msgstr "Ugyldig stemmetype:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Stemme registrert"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Takk"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Din anbefaling har blitt registrert"
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Retuner til profil."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr "Brukernavn"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Nylig arbeid utført"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Oppgave %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Denne funksjonen er midlertidig avslått "
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Ingen datamaskin med ID %1 funnet"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Ingen tilgang"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Mangler bruker ID eller verts ID"
-
-#: ../user/results.php:107
-#, fuzzy
-msgid "No tasks to display"
-msgstr "Ingen oppgaver å vise"
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Kjører"
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr "Kjører ikke"
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr "Deaktivert"
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "Prosjektstatus"
-
-#: ../user/server_status.php:233
-#, fuzzy
-msgid "Server software version: %1"
-msgstr "Tjenerprogramvare versjon: %1"
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr "Program"
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr "Vert"
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "last opp/last ned tjener"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "planlegger"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Kjører:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Program fungerer normalt"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Kjører ikke:"
-
-#: ../user/server_status.php:297
-#, fuzzy
-msgid "Program failed or the project is down"
-msgstr "Program feilet eller prosjektet er nede"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Deaktivert:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Program er deaktivert"
-
-#: ../user/server_status.php:303
-#, fuzzy
-msgid "Computing status"
-msgstr "Status beregning"
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Databasetjeneren er ikke tilgjengelig"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Oppgaver klare for sending"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-#, fuzzy
-msgid "Workunits waiting for validation"
-msgstr "Arbeidsenheter venter på validering"
-
-#: ../user/server_status.php:341
-#, fuzzy
-msgid "Workunits waiting for assimilation"
-msgstr "Arbeidsenheter venter på assimilering"
-
-#: ../user/server_status.php:346
-#, fuzzy
-msgid "Workunits waiting for file deletion"
-msgstr "Arbeidseneheter venter på sletting av fil"
-
-#: ../user/server_status.php:351
-#, fuzzy
-msgid "Tasks waiting for file deletion"
-msgstr "Oppgaver venter på sletting av fil"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr "Brukere"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-#, fuzzy
-msgid "with recent credit"
-msgstr "med nylig arbeid utført"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "med arbeid utført"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "registrert de siste 24 timer"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-#, fuzzy
-msgid "Tasks by application"
-msgstr "Oppgaver per applikasjon"
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "applikasjon"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "Ikke sendt"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "i progresjon"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "brukere siste 24t"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Datamaskin %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistikk og oppslagstavler"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Statistikk for %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "Rediger teamet's navn og beskrivelse"
-
-#: ../user/team.php:35
-#, fuzzy
-msgid "add or remove team admins"
-msgstr "legg til eller fjern teamadministratorer"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "fjern medlemmer fra teamet"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Finn et team"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Alle team"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 team"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Lag et nytt team"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-#, fuzzy
-msgid "Add or remove Team Admins"
-msgstr "Legg til eller fjern teamadministratorer"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-#, fuzzy
-msgid "Team Admins cannot:"
-msgstr "Teamadministratorer kan ikke:"
-
-#: ../user/team_admins.php:49
-#, fuzzy
-msgid "Change the team founder"
-msgstr "Endre grunnlegger av team"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Fjern medlemmer"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-#, fuzzy
-msgid "Email address of team member:"
-msgstr "Epostadressen til teammedlem:"
-
-#: ../user/team_admins.php:90
-#, fuzzy
-msgid "failed to remove admin"
-msgstr "fjerning av administrator feilet"
-
-#: ../user/team_admins.php:99
-#, fuzzy
-msgid "User is not member of team"
-msgstr "Bruker er ikke medlem av team"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-#, fuzzy
-msgid "Couldn't add admin"
-msgstr "Kunne ikke legge til administrator"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Ingen slikt team"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "ingen slikt team"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "Bruker er ikke medlem av %1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "avslå forespørsel"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Du må velge et ikke-blankt team navn"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Et team med det navnet %1 eksisterer allerede - velg et annet navn"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Kunne ikke opprette team - vennligst prøv igjen senere."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Lag et team"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Når"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Bruker"
-
-#: ../user/team_delta.php:77
-#, fuzzy
-msgid "Action"
-msgstr "Handling"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-#, fuzzy
-msgid "bad country"
-msgstr "feil land"
-
-#: ../user/team_edit_action.php:59
-#, fuzzy
-msgid "The name '%1' is being used by another team."
-msgstr "Navnet '%1' er allerede i bruk av et annet team."
-
-#: ../user/team_edit_action.php:62
-#, fuzzy
-msgid "Must specify team name"
-msgstr "Må spesifisere teamnavn"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Kunne ikke oppdatere team - vennligst prøv igjen senere."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Rediger %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Oppdater teaminfo"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Medlemsliste for %1"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Vis som ren tekst"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-#, fuzzy
-msgid "Create Message Board"
-msgstr "Opprett meldingstavle"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "Opprett meldingstavle for %1"
-
-#: ../user/team_forum.php:48
-#, fuzzy
-msgid "Team already has a message board"
-msgstr "Team har alerede en meldingstavle"
-
-#: ../user/team_forum.php:59
-#, fuzzy
-msgid "Team Message Board"
-msgstr "Meldingstavle for team"
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Registrer"
-
-#: ../user/team_forum.php:89
-#, fuzzy
-msgid "Remove your team's message board."
-msgstr "Fjern meldingstavlen til ditt team"
-
-#: ../user/team_forum.php:97
-#, fuzzy
-msgid "Really remove message board?"
-msgstr "Virkelig fjerne meldingstavlen?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-#, fuzzy
-msgid "Yes - remove message board"
-msgstr "Ja - fjern meldingstavlen"
-
-#: ../user/team_forum.php:121
-#, fuzzy
-msgid "Message board removed"
-msgstr "Meldingstavle fjernet"
-
-#: ../user/team_forum.php:124
-#, fuzzy
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Ditt teams meldingstavle har blitt fjernet. Du kan nå %1 opprette en ny%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-#, fuzzy
-msgid "Update successful"
-msgstr "Oppdatering velykket"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Oppdatering feilet"
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Team har ikke et forum"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-#, fuzzy
-msgid "Return to team page"
-msgstr "Retuner til teamsiden"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-#, fuzzy
-msgid "The team %1 is not joinable."
-msgstr "Teamet %1 kan ikke slås sammen."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "Allerede medlem"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Du er allerede medlem av %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-#, fuzzy
-msgid "Couldn't join team - please try again later."
-msgstr "Kunne ikke slå sammen team - vennligst prøv igjen senere."
-
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Sammenslått %1"
-
-#: ../user/team_join_action.php:41
-#, fuzzy
-msgid "You have joined %1."
-msgstr "Du har slått sammen %1."
-
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Slå sammen %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Søkeresultater"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Søkeresultater for '%1'"
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-#, fuzzy
-msgid "Edit team info"
-msgstr "Rediger teaminfo"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Medlemsliste:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "tekst"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Vis navn på medlemmer og epostadresser"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-#, fuzzy
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-#, fuzzy
-msgid "Add/remove Team Admins"
-msgstr "Legg til eller fjern teamadministratorer"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "Fjern team"
-
-#: ../user/team_manage.php:62
-#, fuzzy
-msgid "Allowed only if team has no members"
-msgstr "Kun tillatt hvis teamet ikke har medlemmer"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Team %1 slettet"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Medlem av %1"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-#, fuzzy
-msgid "Quit %1"
-msgstr "Forlat %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Forlat team"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Fjerner brukere fra %1"
-
-#: ../user/team_remove_inactive_action.php:39
-#, fuzzy
-msgid "%1 is not a member of %2"
-msgstr "Bruker er ikke medlem av %1"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Fjern brukere fra %1"
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "Fjerne?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Navn (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Fjern brukere"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Teamnavn"
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Søkeresultat team"
-
-#: ../user/team_search.php:94
-#, fuzzy
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Ingen team som passer til dine kriterier. Prøv et annet søk."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Eller du kan %1opprette et nytt team%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Topp vert"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Topp %1 team"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Deltatt siden"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtre"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Brukernavn starter med"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Hvilken som helst"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Gjennomsnitt nylig arbeid utført"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Gjennomsnitt nylig arbeid utført"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "søkestreng må minst inneholde 3 tegn"
-
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Søkeresultat bruker"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-#, fuzzy
-msgid "No users match your search criteria."
-msgstr "Ingen brukere passer til dine søkekriterier"
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Bruker ikke funnet!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Team:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Valider BOINC epostadresse"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Ingen slik bruker"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-#, fuzzy
-msgid "Validate email address"
-msgstr "Valider BOINC epostadresse"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Denne brukeren har ingen profil"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Konto informasjon"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Svak konto nøkkel"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-#, fuzzy
-msgid "can't find workunit"
-msgstr "finner ikke arbeidsenhet"
-
-#: ../user/workunit.php:35
-#, fuzzy
-msgid "Workunit %1"
-msgstr "Arbeidsenhet %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-#, fuzzy
-msgid "errors"
-msgstr "feil"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validering"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-#, fuzzy
-msgid "Your personal background."
-msgstr "Din personlige bakgrunn."
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-#, fuzzy
-msgid "Your opinions about %1"
-msgstr "Din mening om %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-#, fuzzy
-msgid "Run only the selected applications"
-msgstr "Kjør bare valgte applikasjoner"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-#, fuzzy
-msgid "(all applications)"
-msgstr "(alle applikasjoner)"
-
-#, fuzzy
-#~ msgid "Error:"
-#~ msgstr "Feilet"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Konto etablering er deaktivert"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Konto etablering er midlertidig deaktivert. Vennligst prøv igjen senere."
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "Ingen slikt team."
-
-#~ msgid "Update failed: "
-#~ msgstr "Oppdatering feilet:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Gir %1begrenset tilgang%2 til din konto"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Obs: Hvis du bruker BOINC versjon 5.2+ med BOINC Manager, ikke bruk dette "
-#~ "skjemaet. Bare kjør BOINC, velg Legg til Prosjekt og skriv epost adresse og "
-#~ "passord."
-
-#, fuzzy
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Din anbefaling har blitt registrert"
-
-#~ msgid "Account key"
-#~ msgstr "Konto nøkkel"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Gir full tilgang til din konto"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Sorter"
-
-#~ msgid "Request not found"
-#~ msgstr "Forespørselen ikke funnet"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 har lagt deg til som venn."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Konto data for %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "ERROR: %1 eksisterer ikke! __ Kan ike lage combo oks.<br>"
-
-#~ msgid "Last %1"
-#~ msgstr "Sist %1"
-
-#~ msgid "CHARSET"
-#~ msgstr "CHARSET"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Resurs deling og grafikk"
-
-#~ msgid "fll"
-#~ msgstr "fll"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Oppgaver for datamaskin %1"
diff --git a/locale/nb/BOINC-Setup.mo b/locale/nb/BOINC-Setup.mo
index 65a79b2..d9d8e0a 100644
Binary files a/locale/nb/BOINC-Setup.mo and b/locale/nb/BOINC-Setup.mo differ
diff --git a/locale/nb/BOINC-Setup.po b/locale/nb/BOINC-Setup.po
index e38a1a2..893850c 100644
--- a/locale/nb/BOINC-Setup.po
+++ b/locale/nb/BOINC-Setup.po
@@ -8,9 +8,9 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-23 23:14+0000\n"
+"PO-Revision-Date: 2015-04-20 12:34+0000\n"
 "Last-Translator: Rom Walton\n"
-"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/boinc/language/nb/)\n"
+"Language-Team: Norwegian Bokmål (http://www.transifex.com/boinc/boinc/language/nb/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/nb/BOINC-Web.po b/locale/nb/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/nl/BOINC-Client.mo b/locale/nl/BOINC-Client.mo
index 3738d6b..5a443de 100644
Binary files a/locale/nl/BOINC-Client.mo and b/locale/nl/BOINC-Client.mo differ
diff --git a/locale/nl/BOINC-Client.po b/locale/nl/BOINC-Client.po
index 9609e68..d8beb92 100644
--- a/locale/nl/BOINC-Client.po
+++ b/locale/nl/BOINC-Client.po
@@ -5,12 +5,12 @@
 # Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-08 23:34+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Dutch (http://www.transifex.com/projects/p/boinc/language/nl/)\n"
+"PO-Revision-Date: 2015-02-09 20:53+0000\n"
+"Last-Translator: Rom Walton\n"
+"Language-Team: Dutch (http://www.transifex.com/boinc/boinc/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/nl/BOINC-Drupal.po b/locale/nl/BOINC-Drupal.po
index 14b6970..a462f1d 100644
--- a/locale/nl/BOINC-Drupal.po
+++ b/locale/nl/BOINC-Drupal.po
@@ -8,8 +8,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2016-03-22 00:03+0000\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-09-05 20:36+0000\n"
 "Last-Translator: Jord <elst93 at gmail.com>\n"
 "Language-Team: Dutch (http://www.transifex.com/boinc/boinc/language/nl/)\n"
 "MIME-Version: 1.0\n"
@@ -18,436 +18,504 @@ msgstr ""
 "Language: nl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-msgid "Please select a team type."
-msgstr "Selecteer alsjeblieft een team soort."
-
-msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "Een team oprichterswissel was recentelijk al aangevraagd. Er kan maar één verzoek per 90 dagen worden gedaan."
+msgid "Reject profile"
+msgstr "Profiel afwijzen"
 
-msgid "@count days remaining"
-msgstr "@count dagen overblijvend"
+msgid "Ban user"
+msgstr "Gebruiker uitsluiten"
 
-msgid "Inbox"
-msgstr "Postvak In"
+msgid "I'm new"
+msgstr "Ik ben nieuw"
 
-msgid "Compose new"
-msgstr "Nieuw samenstellen"
+msgid "I'm a BOINC user"
+msgstr "Ik ben een BOINC gebruiker"
 
-msgid "respond to the request"
-msgstr "het verzoek beantwoorden"
+msgid "Authenticator login"
+msgstr "Authenticatie login"
 
 msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "Er is een oprichterswissel verzoek gedaan voor jouw team. !Antwoord alsjeblieft."
-
-msgid "Respond to transfer request"
-msgstr "Het wisselverzoek beantwoorden"
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Je moet @count meer punten verdienen alvorens je commentaar kan posten op deze website."
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "Team lid @name heeft verzocht team oprichter te worden. Dit kan gebeuren als jij het team hebt verlaten, of lange tijd geen contact met je team hebt gehad."
+msgid "Generic"
+msgstr "Algemeen"
 
-msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "Als je het verzoek niet voor @date afwijst, kan @name het team overnemen en team oprichter worden. (notitie: om het verzoek te accepteren, gebruik onderstaand formulier om @name als team oprichter aan te wijzen)"
+msgid "Home"
+msgstr "Thuis pagina"
 
-msgid "Deny request"
-msgstr "Verzoek weigeren"
+msgid "Work"
+msgstr "Werk"
 
-msgid "Send request"
-msgstr "Zend verzoek"
+msgid "School"
+msgstr "School"
 
-msgid "Friend request from !name [!site]"
-msgstr "Vriend verzoek van !name [!site]"
+msgid "yes"
+msgstr "ja"
 
-msgid "Message"
-msgstr "Bericht"
+msgid "no"
+msgstr "nee"
 
-msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name wil je als vriend toegevoegen op !site. Je kunt dit verzoek toestaan of weigeren. Het verzoek weiegeren zal geen breicht hierover sturen, maar verwijdert het verzoek van jullie beider accounts.\n\nVolg benedenstaande link om het verzoek te bekijken:\n!link\n\n!message\n\nMet dank,\nHet !site team"
+msgid "Resource settings"
+msgstr "Broninstellingen"
 
-msgid "Cancel friend request"
-msgstr "Annuleer vriend verzoek"
+msgid "Resource share"
+msgstr "Gedeelde bronnen"
 
-msgid "Remove request"
-msgstr "Verwijder verzoek"
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Bepaalt hoeveel tijd dit project van jouw computer gebruik kan maken. Voorbeeld: Als jouw computer deelneemt aan 2 BOINC projecten met aandelen van 100 en 200, zal het eerste project 1/3 en het tweede project 2/3 van de beschikbare tijd krijgen."
 
-msgid "Approve request"
-msgstr "Verzoek toestaan"
+msgid "Use CPU"
+msgstr "Gebruik CPU"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "!name heeft je vriend verzoek geaccepteerd [!site]"
+msgid "Enforced by version @number"
+msgstr "Instelbaar vanaf @number"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name heeft je als vriend bevestigd op !site.\n\nVolg deze link om zijn of haar profiel te bekijken:\n!link\n\n!message\n\n Met dank,\nHet !site team"
+msgid "Use NVIDIA GPU"
+msgstr "Gebruik NVIDIA GPU"
 
-msgid "Email address"
-msgstr "E-mail adres"
+msgid "Use ATI GPU"
+msgstr "Gebruik ATI GPU"
 
-msgid "Home"
-msgstr "Thuis pagina"
+msgid "Use INTEL GPU"
+msgstr "Gebruik INTEL GPU"
 
-msgid "Login"
-msgstr "Login"
+msgid "Beta settings"
+msgstr "Beta instellingen"
 
-msgid "search"
-msgstr "zoeken"
+msgid "Run test applications?"
+msgstr "Werk met test applicaties?"
 
-msgid "Server status"
-msgstr "Server status"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Dit helpt ons om applicaties te ontwikkelen, maar kan er voor zorgen dat werk faalt op jouw computer"
 
-msgid "Language"
-msgstr "Taal"
+msgid " Default value: @default"
+msgstr "Standaardwaarde: @default"
 
-msgid "Enter your @s email address."
-msgstr "Vul je e-mailadres in."
+msgid "Applications"
+msgstr "Applicaties"
 
-msgid "Join now"
-msgstr "Word lid"
+msgid "Default set"
+msgstr "Standaardgebruik"
 
-msgid "I'm new"
-msgstr "Ik ben nieuw"
+msgid "Set used for new computers"
+msgstr "Alleen gebruikt voor nieuwe computers"
 
-msgid "I'm a BOINC user"
-msgstr "Ik ben een BOINC gebruiker"
+msgid "Save changes"
+msgstr "Veranderingen opslaan"
 
-msgid "Welcome back!"
-msgstr "Welkom terug!"
+msgid "Cancel"
+msgstr "Annuleren"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home is een programma dat de inactieve tijd van uw computer gebruikt om een screensaver te draaien om te zoeken naar zwaartekrachtgolven uit draaiende neutronensterren (ook wel pulsars genaamd) met behulp van gegevens van de LIGO gravitatiegolven detector."
+msgid "Show comparison view"
+msgstr "Toon vergelijking"
 
-msgid "Learn more"
-msgstr "Meer weten"
+msgid "Comment form"
+msgstr "Reactieformulier"
 
-msgid "View account"
-msgstr "Account bekijken"
+msgid "Logout"
+msgstr "Uitloggen"
 
-msgid "About our screensaver"
-msgstr "Over onze screensaver "
+msgid "Join now"
+msgstr "Word lid"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "Meer dan 500,000 vrijwilligers"
+msgid "Account"
+msgstr "Account"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Server status"
+msgstr "Server status"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Language"
+msgstr "Taal"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Create content"
+msgstr "Maak inhoud"
 
-msgid "Logout"
-msgstr "Uitloggen"
+msgid "General settings"
+msgstr "Algemene instellingen"
 
 msgid "Name"
 msgstr "Naam"
 
-msgid "Avg credit"
-msgstr "Gemiddelde punten"
+msgid "Time zone"
+msgstr "Tijdzone"
 
-msgid "Total credit"
-msgstr "Punten totaal"
+msgid "Notification settings"
+msgstr "Bericht instellingen"
 
-msgid "Enter your password to save changes"
-msgstr "Voer uw wachtwoord in om wijzigingen op te slaan"
+msgid "Receive email notification for private messages?"
+msgstr "Ontvang e-mail bericht voor privé berichten? "
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Vul je huidige wachtwoord in als je je e-mail verandert\nadres of wachtwoord."
+msgid "Receive email notification for friend requests?"
+msgstr "Ontvang e-mail bericht voor vriend verzoeken?"
 
-msgid "BOINC user ID"
-msgstr "BOINC gebruikers ID"
+msgid "Language settings"
+msgstr "Taal instellingen"
 
-msgid "Drupal user ID"
-msgstr "Drupal gebruikers ID"
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Standaardtaal voor e-mails en gewenste taal voor website gebruik."
 
-msgid "Account key"
-msgstr "Account key"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Als je een <a href=\"@gravatar-check\">geldige Gravatar</a> gebruikt met dit e-mailadres, zal het gebruikt worden voor je gebruikersplaatje."
 
-msgid "Weak account key"
-msgstr "Zwakke account key"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Je Gravatar zal niet worden vertoond als je een gebruiksplaatje uploadt."
 
-msgid "Cross-project ID"
-msgstr "Cross-project ID"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Als je een <a href=\"@gravatar-check\">geldige Gravatar</a> gebruikt met dit e-mailadres, gebruik het voor je gebruikersplaatje."
 
-msgid "Save changes"
-msgstr "Veranderingen opslaan"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar zal niet worden vertoond als een avatar is geüpload."
 
-msgid "Cancel"
-msgstr "Annuleren"
+msgid "Avatar settings"
+msgstr "Avatar instellingen"
 
-msgid "Change password"
-msgstr "Verander wachtwoord"
+msgid "This is not available until your profile is set up."
+msgstr "Dit is niet beschikbaar tot je profiel is aangemaakt."
 
-msgid "What is @this_project?"
-msgstr "Wat is @this_project?"
+msgid "Create a profile"
+msgstr "Een profiel aanmaken"
 
-msgid "no projects..."
-msgstr "geen projecten..."
+msgid "Upload an avatar"
+msgstr "Upload een avatar"
 
-msgid "Download the desktop software"
-msgstr "Download de desktop software"
+msgid "Forum settings"
+msgstr "Forum instellingen"
 
-msgid "Run the installer"
-msgstr "Start de installer "
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "In discussie-onderwerpen, vertoon maximaal @comments_per_page"
 
-msgid "When prompted enter @siteurl"
-msgstr "Als daarom gevraagd wordt, vul @siteurl in"
+msgid "comments per page"
+msgstr "reacties per pagina"
 
-msgid "Password"
-msgstr "Wachtwoord"
+msgid "Sort comments in discussions"
+msgstr "Sorteer reacties in discussies"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Vul het wachtwoord in voor je gebruikersnaam."
+msgid "Newest post first"
+msgstr "Nieuwste bericht eerst"
 
-msgid "Request new password"
-msgstr "Nieuw wachtwoord opvragen"
-
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Als je BOINC al draait, selecteer <i>Voeg\nProject Toe</.>."
-
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Als je de command-line versie van BOINC gebruikt,\n        gebruik dan eerst de BOINC Manager software (vanaf een andere computer indien nodig)\n        om een account te maken bij dit project, en gebruik dat account om dit project toe te voegen\n        aan de command-line versie."
+msgid "Oldest post first"
+msgstr "Oudste bericht eerst"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Als je een pre-5.0 versie van BOINC gebruikt, update\nalsjeblieft naar een meer recente versie om een account\nbij dit project te maken."
+msgid "Signature"
+msgstr "Onderschrift"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Als u het e-mailadres van uw account's weet, en als u daar e-mail kunt ontvangen:"
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Je onderschrift zal publiek worden vertoond aan het eind van je reacties. "
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Vul dan hieronder het e-mailadres in en klik op OK. Vervolgens ontvangt u per e-mail de instructies om uw wachtwoord opnieuw in te stellen."
+msgid "Hide signatures in forums"
+msgstr "Verberg onderschriften in forums"
 
-msgid "OK"
-msgstr "OK"
+msgid "Privacy settings"
+msgstr "Privacy instellingen"
 
-msgid "The latest news from the @site_name project"
-msgstr "Het laatste nieuws van @site_name"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Wil je dat @project en/of je team e-mail naar je kunnen verzenden?"
 
-msgid "Comment form"
-msgstr "Reactieformulier"
+msgid "Should @project show your computers on its web site?"
+msgstr "Wil je dat @project jouw computers laat zien op de website?"
 
-msgid "Total credits"
-msgstr "Totaal punten"
+msgid "Id"
+msgstr "id"
 
-msgid "Recent avg credits"
-msgstr "Huidige punten gemiddelde"
+msgid "Founder"
+msgstr "Oprichter"
 
 msgid "Country"
 msgstr "Land"
 
-msgid "Type"
-msgstr "Soort"
+msgid "Recent average credit"
+msgstr "Huidige punten gemiddelde"
 
-msgid "Founder"
-msgstr "Oprichter"
+msgid "Members"
+msgstr "Leden"
 
-msgid "New members in last day"
-msgstr "Nieuwe leden in de laatste dag"
+msgid "Total Credit"
+msgstr "Punten totaal"
 
-msgid "Total members"
-msgstr "Totaal aantal leden"
+msgid "User ID"
+msgstr "Gebruikers ID"
 
-msgid "Active members"
-msgstr "Actieve leden"
+msgid "User"
+msgstr "Gebruiker"
 
-msgid "Members with credit"
-msgstr "Leden met punten"
+msgid "Admin since"
+msgstr "Administrator sinds"
 
-msgid "Description"
-msgstr "Beschrijving"
+msgid "Team ID"
+msgstr "Team ID"
 
-msgid "Search teams"
-msgstr "Zoek teams"
+msgid "User joined"
+msgstr "Gebruiker aangesloten sinds"
 
-msgid "Send message"
-msgstr "Verstuur bericht"
+msgid "Timestamp"
+msgstr "Tijdsaanduiding"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Account Key"
+msgstr "Account Key"
 
-msgid "Project"
-msgstr "Project"
+msgid "Member since"
+msgstr "Lid sinds"
 
-msgid "Web site"
-msgstr "Website"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "No active computers"
-msgstr "Geen actieve computers"
+msgid "Email Address"
+msgstr "E-mail Adres"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "Deze gebruiker heeft geen computers die actief waren in de laatste 30 dagen."
+msgid "Password Hash"
+msgstr "Wachtwoordhash"
 
-msgid " Default value: @default"
-msgstr "Standaardwaarde: @default"
+msgid "Postal Code"
+msgstr "Postcode"
 
-msgid "Applications"
-msgstr "Applicaties"
+msgid "Send Email"
+msgstr "Verstuur E-mail"
 
-msgid "yes"
-msgstr "ja"
+msgid "Show Hosts"
+msgstr "Toon Computers"
 
-msgid "no"
-msgstr "nee"
+msgid "URL"
+msgstr "URL"
 
-msgid "Message @id"
-msgstr "Bericht @id"
+msgid "Computer ID"
+msgstr "Computer ID"
 
-msgid "message @id"
-msgstr "bericht @id"
+msgid "Location"
+msgstr "Locatie"
 
-msgid " in response to !parent"
-msgstr "In antwoord op !parent"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "% van de tijd dat werk is toegestaan, terwijl BOINC loopt"
 
-msgid "Credits per day"
-msgstr "Punten per dag"
+msgid "Average turnaround time"
+msgstr "Gemiddelde inlever tijd"
 
-msgid "Computers hidden"
-msgstr "Computers verbergen"
+msgid "Created"
+msgstr "Aangemaakt"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "Deze gebruiker heeft ervoor gekozen geen informatie over zijn computers te laten zien."
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "% van de tijd dat de computer verbinding heeft met het internet terwijl BOINC loopt."
 
-msgid "Stderr output"
-msgstr "Stderr output"
+msgid "Average CPU efficiency"
+msgstr "Gemiddelde CPU efficiëntie"
 
-msgid "@time ago"
-msgstr "@time geleden"
+msgid "Free disk space"
+msgstr "Vrije schijfruimte"
 
-msgid "n/a"
-msgstr "n.v.t."
+msgid "Total disk space"
+msgstr "Totale schijfruimte"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Ingediend door !username op !datetime"
+msgid "Task duration correction factor"
+msgstr "Correctie factor van een taak"
 
-msgid "Member since"
-msgstr "Lid sinds"
+msgid "Avg. credit"
+msgstr "Punten gemiddelde"
 
-msgid "View team"
-msgstr "Team bekijken"
+msgid "External IP address"
+msgstr "Extern IP adres"
 
-msgid "Friends (@count)"
-msgstr "Vrienden (@count)"
+msgid "Cross project ID"
+msgstr "Cross-project ID"
 
-msgid "Website"
-msgstr "Website"
+msgid "Last IP address"
+msgstr "Laatste IP adres"
 
-msgid "Locked"
-msgstr "Gesloten"
+msgid "Cache"
+msgstr "Cache"
 
-msgid "Computers pending"
-msgstr "Computers in afwachting"
+msgid "Memory"
+msgstr "Geheugen"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "Deze gebruiker heeft nog geen bijbehorende computers. Computers worden weergegeven wanneer ze hun eerste credits hebben verdiend."
+msgid "Swap space"
+msgstr "Wisselbestand"
 
-msgid "No results found..."
-msgstr "Geen resultaten gevonden... "
+msgid "Maximum daily WU quota per CPU"
+msgstr "Maximale dagelijkse WU quota per CPU"
 
-msgid "Background"
-msgstr "Achtergrond"
+msgid "Average download rate"
+msgstr "Gemiddelde download waarde"
 
-msgid "Teams"
-msgstr "Teams"
+msgid "Average upload rate"
+msgstr "Gemiddelde upload waarde"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "@project deelnemers kunnen teams vormen. U kunt slechts tot één team behoren. U kunt op elk moment deelnemen aan of stoppen met een team. Om deel te nemen aan een team, bezoek de team-pagina en klik op \"Deelnemen aan dit team.\" Elk team heeft een oprichter die:"
+msgid "Same IP address count"
+msgstr "Zelfde IP adres "
 
-msgid "access team members' email addresses"
-msgstr "toegang heeft tot de e-mail adressen van de leden"
+msgid "% of time BOINC client is running"
+msgstr "% van tijd dat BOINC actief is"
 
-msgid "edit the team's name and description"
-msgstr "de naam en beschrijving van het team kan veranderen"
+msgid "Operating system"
+msgstr "Besturingssysteem"
 
-msgid "add or remove team admins"
-msgstr "team administrators mag toevoegen of verwijderen"
+msgid "Operating system version"
+msgstr "Besturingssysteem versie"
 
-msgid "remove members from the team"
-msgstr "leden kan verwijderen uit het team"
+msgid "Measured floating point speed"
+msgstr "Gemeten 'floating point' snelheid"
 
-msgid "disband a team if it has no members"
-msgstr "het team kan ontbinden als het geen leden heeft"
+msgid "Measured integer speed"
+msgstr "Gemeten 'integer' snelheid"
 
-msgid "Create a new team"
-msgstr "Start nieuw team"
+msgid "CPU model"
+msgstr "CPU model"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Als je geen team kunt vinden dat geschikt is voor je, kun je er zelf een starten."
+msgid "Number of processors"
+msgstr "Aantal processoren"
 
-msgid "You must earn @count more credits!"
-msgstr "Je moet @count meer punten verdienen!"
+msgid "CPU"
+msgstr "CPU"
 
-msgid "Threads"
-msgstr "Onderwerpen"
+msgid "Number of times client has contacted server"
+msgstr "Aantal keren dat de cliënt contact heeft gehad met de server"
 
-msgid "Posts"
-msgstr "Reacties"
+msgid "Last contact"
+msgstr "Laatste contact"
 
-msgid "Last post"
-msgstr "Laatste reactie"
+msgid "Serial number"
+msgstr "Seriële nummer"
 
-msgid "Manage subscriptions"
-msgstr "Beheer abonnementen"
+msgid "Timezone"
+msgstr "Tijdzone"
 
-msgid "Featured"
-msgstr "Aanbevolen"
+msgid "Platform ID"
+msgstr "Platform ID"
 
-msgid "Submitted on !datetime"
-msgstr "Ingediend op !datetime"
+msgid "Task ID"
+msgstr "Taak ID"
 
-msgid "Comments"
-msgstr "Opmerkingen"
+msgid "Workunit ID"
+msgstr "Werkeenheid ID"
 
-msgid "Opinion"
-msgstr "Mening"
+msgid "Host ID"
+msgstr "Host ID"
+
+msgid "Application ID"
+msgstr "Applicatie ID"
+
+msgid "Application version"
+msgstr "Programma versie"
+
+msgid "Claimed credit"
+msgstr "Geclaimde punten"
+
+msgid "Client state"
+msgstr "Client status"
+
+msgid "CPU time"
+msgstr "Processor tijd"
+
+msgid "Run time"
+msgstr "Loop tijd"
+
+msgid "Exit status"
+msgstr "Afsluit status"
+
+msgid "Granted credit"
+msgstr "Toegekend punten"
+
+msgid "Outcome"
+msgstr "Uitkomst"
+
+msgid "Received time"
+msgstr "Ontvangen"
+
+msgid "Report deadline"
+msgstr "Rapporteren voor"
+
+msgid "Sent"
+msgstr "Verzonden"
+
+msgid "Server state"
+msgstr "Server status"
+
+msgid "Stderr out"
+msgstr "Stderr output"
+
+msgid "Validation state"
+msgstr "Validatie status"
+
+msgid "App ID"
+msgstr "Applicatie ID"
+
+msgid "Canonical credit"
+msgstr "Meest overeenkomstige punten"
+
+msgid "Canonical result ID"
+msgstr "Meest overeenkomstig resultaat ID"
+
+msgid "Created time"
+msgstr "Aangemaakt"
+
+msgid "Error mask"
+msgstr "Fout"
+
+msgid "Minimum quorum"
+msgstr "Minimum quorum"
+
+msgid "Max error tasks"
+msgstr "Max. taak fouten"
+
+msgid "Max success tasks"
+msgstr "Max. sucesvolle taken"
+
+msgid "Max total tasks"
+msgstr "Max. taken totaal"
+
+msgid "Needs validation"
+msgstr "Heeft validiteitscontrole nodig"
+
+msgid "Initial replication"
+msgstr "Eerste betrouwbare kopie"
+
+msgid "Target number of results"
+msgstr "Doel nummer resultaten"
+
+msgid "Application version ID"
+msgstr "Applicatie versie ID"
+
+msgid "Plan class"
+msgstr "Plan class"
+
+msgid "Version number"
+msgstr "Versie nummer"
+
+msgid "Computer"
+msgstr "Computer"
+
+msgid "App version ID"
+msgstr "App versie ID"
+
+msgid "Consecutive valid tasks"
+msgstr "Reeks taken met een geldig resultaat"
+
+msgid "Number of tasks completed"
+msgstr "Aantal taken voltooid"
+
+msgid "Max tasks per day"
+msgstr "Max. aantal taken per dag"
+
+msgid "Number of tasks today"
+msgstr "Aantal taken vandaag"
+
+msgid "Manage subscriptions"
+msgstr "Beheer abonnementen"
+
+msgid "Avg credit"
+msgstr "Gemiddelde punten"
+
+msgid "Total credit"
+msgstr "Punten totaal"
 
 msgid "More"
 msgstr "Meer"
@@ -455,14 +523,103 @@ msgstr "Meer"
 msgid "Tasks"
 msgstr "Taken"
 
-msgid "Generic"
-msgstr "Algemeen"
+msgid "Computers hidden"
+msgstr "Computers verbergen"
 
-msgid "Work"
-msgstr "Werk"
+msgid "This user has chosen not to show information about their computers."
+msgstr "Deze gebruiker heeft ervoor gekozen geen informatie over zijn computers te laten zien."
 
-msgid "School"
-msgstr "School"
+msgid "no projects..."
+msgstr "geen projecten..."
+
+msgid "Moderation"
+msgstr "Beheer"
+
+msgid "Unvetted profiles"
+msgstr "Niet beoordeelde profielen"
+
+msgid "Inbox"
+msgstr "Postvak In"
+
+msgid "Compose new"
+msgstr "Nieuw samenstellen"
+
+msgid "Posts contributed"
+msgstr "Berichten bijgedragen"
+
+msgid "Friends (@count)"
+msgstr "Vrienden (@count)"
+
+msgid "Welcome back!"
+msgstr "Welkom terug!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home is een programma dat de inactieve tijd van uw computer gebruikt om een screensaver te draaien om te zoeken naar zwaartekrachtgolven uit draaiende neutronensterren (ook wel pulsars genaamd) met behulp van gegevens van de LIGO gravitatiegolven detector."
+
+msgid "Learn more"
+msgstr "Meer weten"
+
+msgid "View account"
+msgstr "Account bekijken"
+
+msgid "User of the day"
+msgstr "Gebruiker van de dag"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Meer dan 500,000 vrijwilligers"
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Punten per dag"
+
+msgid "View user profile."
+msgstr "Bekijk gebruikers profiel"
+
+msgid "Profile awaiting moderator approval"
+msgstr "Profiel in afwachting van moderator goedkeuring"
+
+msgid "Background"
+msgstr "Achtergrond"
+
+msgid "Opinion"
+msgstr "Mening"
+
+msgid "Enter your password to save changes"
+msgstr "Voer uw wachtwoord in om wijzigingen op te slaan"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Vul je huidige wachtwoord in als je je e-mail verandert\nadres of wachtwoord."
+
+msgid "BOINC user ID"
+msgstr "BOINC gebruikers ID"
+
+msgid "Drupal user ID"
+msgstr "Drupal gebruikers ID"
+
+msgid "Account key"
+msgstr "Account key"
+
+msgid "Weak account key"
+msgstr "Zwakke account key"
+
+msgid "Cross-project ID"
+msgstr "Cross-project ID"
+
+msgid "Change password"
+msgstr "Verander wachtwoord"
 
 msgid "Presets"
 msgstr "Vooraf ingesteld"
@@ -503,9 +660,6 @@ msgstr "Gebruik wanneer de computer in gebruik is?"
 msgid "Run GPU work while computer is in use?"
 msgstr "Gebruik de GPU wanneer de computer in gebruik Is? "
 
-msgid "Enforced by version @number"
-msgstr "Instelbaar vanaf @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "\"In gebruik\" betekent muis/toetsenbord gebruik in de laatste"
 
@@ -642,61 +796,38 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "Vink dit alleen aan als je provider de indeling van grafische bestanden aanpast (UMTS doet dit bijvoorbeeld). Verificatie overslaan verlaagt de veiligheid van BOINC."
 
-msgid "Show comparison view"
-msgstr "Toon vergelijking"
+msgid "search"
+msgstr "zoeken"
 
-msgid "Resource settings"
-msgstr "Broninstellingen"
+msgid "What is @this_project?"
+msgstr "Wat is @this_project?"
 
-msgid "Resource share"
-msgstr "Gedeelde bronnen"
+msgid "Login"
+msgstr "Login"
 
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Bepaalt hoeveel tijd dit project van jouw computer gebruik kan maken. Voorbeeld: Als jouw computer deelneemt aan 2 BOINC projecten met aandelen van 100 en 200, zal het eerste project 1/3 en het tweede project 2/3 van de beschikbare tijd krijgen."
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Use CPU"
-msgstr "Gebruik CPU"
-
-msgid "Use NVIDIA GPU"
-msgstr "Gebruik NVIDIA GPU"
-
-msgid "Use ATI GPU"
-msgstr "Gebruik ATI GPU"
-
-msgid "Use INTEL GPU"
-msgstr "Gebruik INTEL GPU"
-
-msgid "Beta settings"
-msgstr "Beta instellingen"
-
-msgid "Run test applications?"
-msgstr "Werk met test applicaties?"
+msgid "Project"
+msgstr "Project"
 
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Dit helpt ons om applicaties te ontwikkelen, maar kan er voor zorgen dat werk faalt op jouw computer"
+msgid "No @type tasks"
+msgstr "Geen @type taken"
 
-msgid "Default set"
-msgstr "Standaardgebruik"
+msgid "There are no tasks of this type on record"
+msgstr "Er zijn geen taken van dit type bekent"
 
-msgid "Set used for new computers"
-msgstr "Alleen gebruikt voor nieuwe computers"
+msgid "Details"
+msgstr "Details"
 
-msgid "Merge"
-msgstr "Samenvoegen"
+msgid "Password"
+msgstr "Wachtwoord"
 
-msgid "Delete"
-msgstr "Verwijder"
+msgid "Enter the password that accompanies your username."
+msgstr "Vul het wachtwoord in voor je gebruikersnaam."
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Dit zal host @id voor altijd van je account vewijderen. Weet je dit zeker?"
+msgid "Request new password"
+msgstr "Nieuw wachtwoord opvragen"
 
 msgid "Mark all topics read"
 msgstr "Markeer alle onderwerpen als gelezen"
@@ -724,146 +855,151 @@ msgstr "Rich-text uitschakelen"
 msgid "Enable rich-text"
 msgstr "Rich-text inschakelen"
 
-msgid "View user profile."
-msgstr "Bekijk gebruikers profiel"
+msgid "Teams"
+msgstr "Teams"
 
-msgid "BBcode help"
-msgstr "BBcode help"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "@project deelnemers kunnen teams vormen. U kunt slechts tot één team behoren. U kunt op elk moment deelnemen aan of stoppen met een team. Om deel te nemen aan een team, bezoek de team-pagina en klik op \"Deelnemen aan dit team.\" Elk team heeft een oprichter die:"
 
-msgid "Post comment"
-msgstr "Post reactie"
+msgid "access team members' email addresses"
+msgstr "toegang heeft tot de e-mail adressen van de leden"
 
-msgid "No @type tasks"
-msgstr "Geen @type taken"
+msgid "edit the team's name and description"
+msgstr "de naam en beschrijving van het team kan veranderen"
 
-msgid "There are no tasks of this type on record"
-msgstr "Er zijn geen taken van dit type bekent"
+msgid "add or remove team admins"
+msgstr "team administrators mag toevoegen of verwijderen"
 
-msgid "Clear"
-msgstr "Wissen"
+msgid "remove members from the team"
+msgstr "leden kan verwijderen uit het team"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Dit zal al je instellingen van de @name voorkeur verwijderen. Weet je dit zeker?"
+msgid "disband a team if it has no members"
+msgstr "het team kan ontbinden als het geen leden heeft"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Dit heeft betrekking op alle projecten waar je aan mee doet."
+msgid "Search teams"
+msgstr "Zoek teams"
+
+msgid "Create a new team"
+msgstr "Start nieuw team"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "Op computers met meerdere projecten, worden de meest recent aangepaste voorkeuren gebruikt."
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Als je geen team kunt vinden dat geschikt is voor je, kun je er zelf een starten."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "Voorkeuren aangepast per: @mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "Je moet nog 1 punt verdienen!"
 
-msgid "Combined preferences"
-msgstr "Gecombineerde voorkeuren"
+msgid "@count million ops/sec"
+msgstr "@count miljoen ops/sec"
 
-msgid "Switch View"
-msgstr "Verander Weergave"
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/sec"
 
-msgid "every"
-msgstr "elke"
+msgid "@count days"
+msgstr "@count dagen"
 
-msgid "Edit"
-msgstr "Aanpassen"
+msgid "Stderr output"
+msgstr "Stderr output"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Dit zal al je instellingen van de \"@name\" voorkeur verwijderen. Weet je dit zeker?"
+msgid "Email address"
+msgstr "E-mail adres"
 
-msgid "Add"
-msgstr "Toevoegen"
+msgid "Enter your @s email address."
+msgstr "Vul je e-mailadres in."
 
-msgid "General settings"
-msgstr "Algemene instellingen"
+msgid "Log in"
+msgstr "Inloggen"
 
-msgid "Time zone"
-msgstr "Tijdzone"
+msgid "Sorry, unrecognized email address or password."
+msgstr "Sorry, je e-mail adres of wachtwoord werd niet herkend."
 
-msgid "Notification settings"
-msgstr "Bericht instellingen"
+msgid "Have you forgotten your password?"
+msgstr "Ben je je wachtwoord vergeten?"
 
-msgid "Receive email notification for private messages?"
-msgstr "Ontvang e-mail bericht voor privé berichten? "
+msgid "No results found..."
+msgstr "Geen resultaten gevonden... "
 
-msgid "Receive email notification for friend requests?"
-msgstr "Ontvang e-mail bericht voor vriend verzoeken?"
+msgid "Anonymous"
+msgstr "Anoniem"
 
-msgid "Language settings"
-msgstr "Taal instellingen"
+msgid "Forgot password"
+msgstr "Wachtwoord vergeten"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "Standaardtaal voor e-mails en gewenste taal voor website gebruik."
+msgid "authenticator-based login"
+msgstr "op authenticatie gebasseerde login"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "Als je een <a href=\"@gravatar-check\">geldige Gravatar</a> gebruikt met dit e-mailadres, zal het gebruikt worden voor je gebruikersplaatje."
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Vul je e-mail adres in om instructies te ontvangen om je wachtwoord te resetten (of gebruik de !authenticator_login)."
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Je Gravatar zal niet worden vertoond als je een gebruiksplaatje uploadt."
+msgid "Send"
+msgstr "Verzenden"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "Als je een <a href=\"@gravatar-check\">geldige Gravatar</a> gebruikt met dit e-mailadres, gebruik het voor je gebruikersplaatje."
+msgid "Submitted by !username on !datetime"
+msgstr "Ingediend door !username op !datetime"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Gravatar zal niet worden vertoond als een avatar is geüpload."
+msgid "Send message"
+msgstr "Verstuur bericht"
 
-msgid "Avatar settings"
-msgstr "Avatar instellingen"
+msgid "Add as friend"
+msgstr "Voeg toe als vriend"
 
-msgid "This is not available until your profile is set up."
-msgstr "Dit is niet beschikbaar tot je profiel is aangemaakt."
+msgid "Website"
+msgstr "Website"
 
-msgid "Create a profile"
-msgstr "Een profiel aanmaken"
+msgid "Team"
+msgstr "Mijn Team"
 
-msgid "Upload an avatar"
-msgstr "Upload een avatar"
+msgid "Create new team"
+msgstr "Maak een nieuw team aan"
 
-msgid "Forum settings"
-msgstr "Forum instellingen"
+msgid "Search"
+msgstr "zoeken"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "In discussie-onderwerpen, vertoon maximaal @comments_per_page"
+msgid "Total credits"
+msgstr "Totaal punten"
 
-msgid "comments per page"
-msgstr "reacties per pagina"
+msgid "Recent avg credits"
+msgstr "Huidige punten gemiddelde"
 
-msgid "Sort comments in discussions"
-msgstr "Sorteer reacties in discussies"
+msgid "Type"
+msgstr "Soort"
 
-msgid "Newest post first"
-msgstr "Nieuwste bericht eerst"
+msgid "New members in last day"
+msgstr "Nieuwe leden in de laatste dag"
 
-msgid "Oldest post first"
-msgstr "Oudste bericht eerst"
+msgid "Total members"
+msgstr "Totaal aantal leden"
 
-msgid "Signature"
-msgstr "Onderschrift"
+msgid "Active members"
+msgstr "Actieve leden"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "Je onderschrift zal publiek worden vertoond aan het eind van je reacties. "
+msgid "Members with credit"
+msgstr "Leden met punten"
 
-msgid "Hide signatures in forums"
-msgstr "Verberg onderschriften in forums"
+msgid "Web site"
+msgstr "Website"
 
-msgid "Privacy settings"
-msgstr "Privacy instellingen"
+msgid "Description"
+msgstr "Beschrijving"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Wil je dat @project en/of je team e-mail naar je kunnen verzenden?"
+msgid "BBcode help"
+msgstr "BBcode help"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Wil je dat @project jouw computers laat zien op de website?"
+msgid "Post comment"
+msgstr "Post reactie"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Thuis pagina"
+
+msgid "The latest news from the @site_name project"
+msgstr "Het laatste nieuws van @site_name"
 
 msgid "Hide"
 msgstr "Verbergen"
@@ -886,606 +1022,421 @@ msgstr "Dit onderwerp vast zetten"
 msgid "moderation"
 msgstr "beheer"
 
-msgid "Post new comment"
-msgstr "Post nieuwe reactie"
-
-msgid "You must earn 1 more credit!"
-msgstr "Je moet nog 1 punt verdienen!"
+msgid "Reply"
+msgstr "Beantwoord"
 
-msgid "Joined"
-msgstr "Aangemeld"
+msgid "Reply to this comment"
+msgstr "Geef antwoord op dit bericht"
 
-msgid "Credit"
-msgstr "Punten"
+msgid "Quote"
+msgstr "Citaat"
 
-msgid "RAC"
-msgstr "Punten gemiddelde"
-
-msgid "Join team"
-msgstr "Word lid van het team"
-
-msgid "Click here to become a member of @this_team"
-msgstr "Klik hier om lid van @this_team te worden"
-
-msgid "Join this team"
-msgstr "Sluit je aan bij dit team"
-
-msgid "Manage team"
-msgstr "Beheer team"
-
-msgid "View member list"
-msgstr "Bekijk ledenlijst"
-
-msgid "Member names and emails"
-msgstr "Ledennamen en e-mails"
-
-msgid "View change history"
-msgstr "Toon verloop van wijzigingen"
-
-msgid "See member activity"
-msgstr "Bekijk activiteit van leden"
-
-msgid "Manage team message board"
-msgstr "Beheer team forum"
-
-msgid "Create or manage message board"
-msgstr "Een forum aanmaken of beheren"
-
-msgid "Remove members"
-msgstr "Leden verwijderen niet toegestaan"
-
-msgid "Change founder"
-msgstr "Oprichter wijzigen"
-
-msgid "Manage team admins"
-msgstr "Beheer team administrators"
-
-msgid "Edit team info"
-msgstr "Team info bijwerken"
-
-msgid "Remove team"
-msgstr "Verwijder team"
-
-msgid "Team forum"
-msgstr "Team forum"
-
-msgid "A discussion forum has been set up for team members."
-msgstr "Een discussieforum is opgezet voor teamleden."
-
-msgid "Enter forum"
-msgstr "Bekijk forum"
-
-msgid "Leave team"
-msgstr "Team verlaten"
-
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Klik hier om je lidmaatschap van @this_team in te trekken"
-
-msgid "Leave this team"
-msgstr "Verlaat dit team"
-
-msgid "Edit message board"
-msgstr "Forum bijwerken"
-
-msgid "Message board title"
-msgstr "Forum titel"
-
-msgid "Text only, no HTML tags"
-msgstr "Alleen tekst, geen HTML elementen"
-
-msgid "Minimum time between posts"
-msgstr "Minimum tijd tussen de berichten"
-
-msgid "Seconds"
-msgstr "Seconden"
-
-msgid "Minimum total credit to post"
-msgstr "Minimaal punten totaal om te kunnen plaatsen"
-
-msgid "Minimum avg credit to post"
-msgstr "Minimaal punten gemiddelde om te kunnen plaatsen"
-
-msgid "Allow public to read board?"
-msgstr "Sta publiek toe om forum te lezen?"
-
-msgid "Save message board"
-msgstr "Bewaar forum"
-
-msgid "About message boards"
-msgstr "Over forums"
-
-msgid "This is a team-only message board"
-msgstr "Dit forum is alleen voor het team"
-
-msgid "Only members may post"
-msgstr "Alleen leden mogen berichten posten"
-
-msgid "Only members may read (optional)"
-msgstr "Alleen leden mogen berichten lezen (optioneel)"
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Oprichter en team administrators hebben moderator rechten."
-
-msgid "Changing the team founder"
-msgstr "De team oprichter veranderen"
-
-msgid "Notes about changes in foundership:"
-msgstr "Notities over veranderen van oprichter:"
-
-msgid "Any member of the team is eligible"
-msgstr "Elk lid van het team komt in aanmerking"
-
-msgid "Current founder becomes a normal user"
-msgstr "Huidige oprichter verandert naar een normale gebruiker"
+msgid "Reply to this comment with quote"
+msgstr "Geef antwoord op dit bericht met citaat"
 
-msgid "Foundership can be requested by team members:"
-msgstr "Verandering van oprichter kan worden aangevraagd door teamleden:"
+msgid "Edit"
+msgstr "Aanpassen"
 
-msgid "One request is allowed at a time"
-msgstr "Een verzoek tegelijkertijd"
+msgid "Edit this comment"
+msgstr "Dit bericht aanpassen"
 
-msgid "It must be 60 days since any previous request"
-msgstr "Er moeten 60 dagen zijn geweest sinds het laatste verzoek"
+msgid "Delete"
+msgstr "Verwijder"
 
-msgid "Any active request must be older than 90 days"
-msgstr "Actieve verzoeken moeten ouder zijn dan 90 dagen"
+msgid "Delete this comment"
+msgstr "Verwijder dit bericht"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "Huidige oprichter heeft 60 dagen om op een verzoek te reageren"
+msgid "Hide this comment"
+msgstr "Verberg dit bericht"
 
-msgid "Add team admin"
-msgstr "Team administrator toevoegen"
+msgid "Message @id"
+msgstr "Bericht @id"
 
-msgid "Enter email address"
-msgstr "e-mail adres invoeren"
+msgid "Convert"
+msgstr "Omzetten"
 
-msgid "Current team admins"
-msgstr "Huidige team administrators"
+msgid "Convert this comment to a new topic"
+msgstr "Zet dit bericht om naar een nieuw onderwerp"
 
-msgid "About team admins"
-msgstr "Over team administrators"
+msgid "message @id"
+msgstr "bericht @id"
 
-msgid "Team admins can:"
-msgstr "Team administrators kunnen:"
+msgid " in response to !parent"
+msgstr "In antwoord op !parent"
 
-msgid "Edit team information"
-msgstr "Team informatie bijwerken"
+msgid "Post new comment"
+msgstr "Post nieuwe reactie"
 
-msgid "View the team's join / quit history"
-msgstr "Het verloop van de aan- en afmeld gegevens van dit team inzien"
+msgid "Comments"
+msgstr "Opmerkingen"
 
-msgid "Moderate the team forum"
-msgstr "Het team forum modereren"
+msgid "discuss"
+msgstr "discussieer"
 
-msgid "Remove members from the team"
-msgstr "Teamleden verwijderen"
+msgid "n/a"
+msgstr "n.v.t."
 
-msgid "Disband a team if it has no members"
-msgstr "Het team kan ontbinden als het geen leden heeft"
+msgid "@time ago"
+msgstr "@time geleden"
 
-msgid "Team admins cannot:"
-msgstr "Team administrator beperkingen:"
+msgid "Threads"
+msgstr "Onderwerpen"
 
-msgid "Change the team founder"
-msgstr "De team oprichter aanpassen is niet mogelijk"
+msgid "Posts"
+msgstr "Reacties"
 
-msgid "Add / Remove team admins"
-msgstr "Toevoegen of verwijderen van team administrators"
+msgid "Last post"
+msgstr "Laatste reactie"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Als een team administrator het team verlaat, verliest deze de administrator rechten. We raden je aan alleen mensen te selecteren die je kent en vertrouwt."
-
-msgid "Choose type"
-msgstr "Kies soort"
-
-msgid "Team name"
-msgstr "Team naam"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "Naam van team, HTML versie (optioneel)"
-
-msgid "You may use limited HTML tags"
-msgstr "Beperkte HTML codes toegestaan"
-
-msgid "Team website (optional)"
-msgstr "Team website (optioneel)"
-
-msgid "Displayed on the team's page"
-msgstr "Weergegeven op de team pagina"
-
-msgid "Type of team"
-msgstr "Soort team"
-
-msgid "Accept new members?"
-msgstr "Accepteer nieuwe leden?"
-
-msgid "Description of team"
-msgstr "Beschrijving van team"
-
-msgid "Create new team"
-msgstr "Maak een nieuw team aan"
-
-msgid "Create a team"
-msgstr "Een team aanmaken"
-
-msgid "Save team"
-msgstr "Team opslaan"
-
-msgid "Create team message board"
-msgstr "Maak een team forum"
-
-msgid "Create message board"
-msgstr "Maak een forum"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Wees verantwoordelijk in wat je schrijft en schrijf geen berichten die aanstootgevend of beledigend. Beledigende berichten of threads kunnen zonder waarschuwing of discussie worden verwijderd door de forum moderators. Reageer niet op aanvallende posts. Klik op de \"report\" knop aan de onderkant van de post om deze onder de aandacht van de moderators te brengen."
 
-msgid "You may create a message board for use by @team"
-msgstr "Je mag een forum maken voor @team"
+msgid "this project"
+msgstr "dit project"
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Minimum gemiddelde puntenaantal dat een gebruiker nodig heeft om op dit forum te kunnen posten."
-
-msgid "Post new topic"
-msgstr "Post nieuw onderwerp"
-
-msgid "Anonymous"
-msgstr "Anoniem"
-
-msgid "Unpublished"
-msgstr "Ongepubliceerd"
-
-msgid "parent removed"
-msgstr "bron verwijderd"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "Sorry, je e-mail adres of wachtwoord werd niet herkend."
-
-msgid "Have you forgotten your password?"
-msgstr "Ben je je wachtwoord vergeten?"
-
-msgid "Id"
-msgstr "id"
-
-msgid "Recent average credit"
-msgstr "Huidige punten gemiddelde"
-
-msgid "Members"
-msgstr "Leden"
-
-msgid "Total Credit"
-msgstr "Punten totaal"
-
-msgid "User ID"
-msgstr "Gebruikers ID"
-
-msgid "User"
-msgstr "Gebruiker"
-
-msgid "Admin since"
-msgstr "Administrator sinds"
-
-msgid "Team ID"
-msgstr "Team ID"
-
-msgid "User joined"
-msgstr "Gebruiker aangesloten sinds"
-
-msgid "Timestamp"
-msgstr "Tijdsaanduiding"
-
-msgid "Account Key"
-msgstr "Account Key"
-
-msgid "CPID"
-msgstr "CPID"
-
-msgid "Email Address"
-msgstr "E-mail Adres"
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "We vragen ook dat je alle discussies op de forums hebt met betrekking tot @project of BOINC, met uitzondering van het Wetenschappelijke forum waar je vrij bent om alles met de onderliggende wetenschappelijke relevantie te bespreken. Deelnemers die geïnteresseerd zijn in een bredere discussie moeten deze plaatsen op onofficiële forums voor @project."
 
-msgid "Password Hash"
-msgstr "Wachtwoordhash"
+msgid "These message boards now support BBCode tags only."
+msgstr "Deze forums gebruiken nu alleen BBcode elementen."
 
-msgid "Postal Code"
-msgstr "Postcode"
+msgid "Featured"
+msgstr "Aanbevolen"
 
-msgid "Send Email"
-msgstr "Verstuur E-mail"
+msgid "Locked"
+msgstr "Gesloten"
 
-msgid "Show Hosts"
-msgstr "Toon Computers"
+msgid "Submitted on !datetime"
+msgstr "Ingediend op !datetime"
 
-msgid "URL"
-msgstr "URL"
+msgid "Computers pending"
+msgstr "Computers in afwachting"
 
-msgid "Computer ID"
-msgstr "Computer ID"
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Deze gebruiker heeft nog geen bijbehorende computers. Computers worden weergegeven wanneer ze hun eerste credits hebben verdiend."
 
-msgid "Location"
-msgstr "Locatie"
+msgid "Show IP address"
+msgstr "IP adres bekijken"
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% van de tijd dat werk is toegestaan, terwijl BOINC loopt"
+msgid "Download the desktop software"
+msgstr "Download de desktop software"
 
-msgid "Average turnaround time"
-msgstr "Gemiddelde inlever tijd"
+msgid "Run the installer"
+msgstr "Start de installer "
 
-msgid "Created"
-msgstr "Aangemaakt"
+msgid "hours"
+msgstr "uren"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "% van de tijd dat de computer verbinding heeft met het internet terwijl BOINC loopt."
+msgid "When prompted enter @siteurl"
+msgstr "Als daarom gevraagd wordt, vul @siteurl in"
 
-msgid "Average CPU efficiency"
-msgstr "Gemiddelde CPU efficiëntie"
+msgid "Merge"
+msgstr "Samenvoegen"
 
-msgid "Free disk space"
-msgstr "Vrije schijfruimte"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Dit zal host @id voor altijd van je account vewijderen. Weet je dit zeker?"
 
-msgid "Total disk space"
-msgstr "Totale schijfruimte"
+msgid "Post topic"
+msgstr "Post onderwerp"
 
-msgid "Task duration correction factor"
-msgstr "Correctie factor van een taak"
+msgid "Leave team"
+msgstr "Team verlaten"
 
-msgid "Avg. credit"
-msgstr "Punten gemiddelde"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Klik hier om je lidmaatschap van @this_team in te trekken"
 
-msgid "External IP address"
-msgstr "Extern IP adres"
+msgid "Leave this team"
+msgstr "Verlaat dit team"
 
-msgid "Cross project ID"
-msgstr "Cross-project ID"
+msgid "Request foundership"
+msgstr "Oprichterschap verzoeken"
 
-msgid "Last IP address"
-msgstr "Laatste IP adres"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Als de team oprichter niet actief is en je wilt deze taak overnemen, klik onder om een verzoek te doen voor oprichterschap van @this_team"
 
-msgid "Cache"
-msgstr "Cache"
+msgid "Initiate request"
+msgstr "Plaats verzoek"
 
-msgid "Memory"
-msgstr "Geheugen"
+msgid "No active computers"
+msgstr "Geen actieve computers"
 
-msgid "Swap space"
-msgstr "Wisselbestand"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Deze gebruiker heeft geen computers die actief waren in de laatste 30 dagen."
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "Maximale dagelijkse WU quota per CPU"
+msgid "Clear"
+msgstr "Wissen"
 
-msgid "Average download rate"
-msgstr "Gemiddelde download waarde"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Dit zal al je instellingen van de @name voorkeur verwijderen. Weet je dit zeker?"
 
-msgid "Average upload rate"
-msgstr "Gemiddelde upload waarde"
+msgid "Your community preferences have been updated."
+msgstr "Je gemeenschapsvoorkeuren zijn bijgewerkt."
 
-msgid "Same IP address count"
-msgstr "Zelfde IP adres "
+msgid "Combined preferences"
+msgstr "Gecombineerde voorkeuren"
 
-msgid "% of time BOINC client is running"
-msgstr "% van tijd dat BOINC actief is"
+msgid "Switch View"
+msgstr "Verander Weergave"
 
-msgid "Operating system"
-msgstr "Besturingssysteem"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Dit zal al je instellingen van de \"@name\" voorkeur verwijderen. Weet je dit zeker?"
 
-msgid "Operating system version"
-msgstr "Besturingssysteem versie"
+msgid "Approve profile"
+msgstr "Profiel goedkeuren"
 
-msgid "Measured floating point speed"
-msgstr "Gemeten 'floating point' snelheid"
+msgid "Approve this profile content"
+msgstr "Keur de inhoud van dit profiel goed"
 
-msgid "Measured integer speed"
-msgstr "Gemeten 'integer' snelheid"
+msgid "Reject this profile content"
+msgstr "Keur de inhoud van dit profiel af"
 
-msgid "CPU model"
-msgstr "CPU model"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Dit heeft betrekking op alle projecten waar je aan mee doet."
 
-msgid "Number of processors"
-msgstr "Aantal processoren"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Op computers met meerdere projecten, worden de meest recent aangepaste voorkeuren gebruikt."
 
-msgid "CPU"
-msgstr "CPU"
+msgid "Preferences last modified: @mod_time"
+msgstr "Voorkeuren aangepast per: @mod_time"
 
-msgid "Number of times client has contacted server"
-msgstr "Aantal keren dat de cliënt contact heeft gehad met de server"
+msgid "every"
+msgstr "elke"
 
-msgid "Last contact"
-msgstr "Laatste contact"
+msgid "Add"
+msgstr "Toevoegen"
 
-msgid "Serial number"
-msgstr "Seriële nummer"
+msgid "My team"
+msgstr "Mijn team"
 
-msgid "Timezone"
-msgstr "Tijdzone"
+msgid "You are a member of @team."
+msgstr "Je bent lid van @team."
 
-msgid "Platform ID"
-msgstr "Platform ID"
+msgid "View my team"
+msgstr "Bekijk mijn team"
 
-msgid "Task ID"
-msgstr "Taak ID"
+msgid "Manage team"
+msgstr "Beheer team"
 
-msgid "Workunit ID"
-msgstr "Werkeenheid ID"
+msgid "View member list"
+msgstr "Bekijk ledenlijst"
 
-msgid "Host ID"
-msgstr "Host ID"
+msgid "Member names and emails"
+msgstr "Ledennamen en e-mails"
 
-msgid "Application ID"
-msgstr "Applicatie ID"
+msgid "View change history"
+msgstr "Toon verloop van wijzigingen"
 
-msgid "Application version"
-msgstr "Programma versie"
+msgid "See member activity"
+msgstr "Bekijk activiteit van leden"
 
-msgid "Claimed credit"
-msgstr "Geclaimde punten"
+msgid "Manage team message board"
+msgstr "Beheer team forum"
 
-msgid "Client state"
-msgstr "Client status"
+msgid "Create or manage message board"
+msgstr "Een forum aanmaken of beheren"
 
-msgid "CPU time"
-msgstr "Processor tijd"
+msgid "Remove members"
+msgstr "Leden verwijderen niet toegestaan"
 
-msgid "Run time"
-msgstr "Loop tijd"
+msgid "Change founder"
+msgstr "Oprichter wijzigen"
 
-msgid "Exit status"
-msgstr "Afsluit status"
+msgid "Manage team admins"
+msgstr "Beheer team administrators"
 
-msgid "Granted credit"
-msgstr "Toegekend punten"
+msgid "Edit team info"
+msgstr "Team info bijwerken"
 
-msgid "Outcome"
-msgstr "Uitkomst"
+msgid "Remove team"
+msgstr "Verwijder team"
 
-msgid "Received time"
-msgstr "Ontvangen"
+msgid "Team forum"
+msgstr "Team forum"
 
-msgid "Report deadline"
-msgstr "Rapporteren voor"
+msgid "A discussion forum has been set up for team members."
+msgstr "Een discussieforum is opgezet voor teamleden."
 
-msgid "Sent"
-msgstr "Verzonden"
+msgid "Enter forum"
+msgstr "Bekijk forum"
 
-msgid "Server state"
-msgstr "Server status"
+msgid "Join team"
+msgstr "Word lid van het team"
 
-msgid "Stderr out"
-msgstr "Stderr output"
+msgid "Click here to become a member of @this_team"
+msgstr "Klik hier om lid van @this_team te worden"
 
-msgid "Validation state"
-msgstr "Validatie status"
+msgid "Join this team"
+msgstr "Sluit je aan bij dit team"
 
-msgid "App ID"
-msgstr "Applicatie ID"
+msgid "Choose type"
+msgstr "Kies soort"
 
-msgid "Canonical credit"
-msgstr "Meest overeenkomstige punten"
+msgid "Team name"
+msgstr "Team naam"
 
-msgid "Canonical result ID"
-msgstr "Meest overeenkomstig resultaat ID"
+msgid "Text only, no HTML tags"
+msgstr "Alleen tekst, geen HTML elementen"
 
-msgid "Created time"
-msgstr "Aangemaakt"
+msgid "Team name -- HTML version (optional)"
+msgstr "Naam van team, HTML versie (optioneel)"
 
-msgid "Error mask"
-msgstr "Fout"
+msgid "You may use limited HTML tags"
+msgstr "Beperkte HTML codes toegestaan"
 
-msgid "Minimum quorum"
-msgstr "Minimum quorum"
+msgid "Team website (optional)"
+msgstr "Team website (optioneel)"
 
-msgid "Max error tasks"
-msgstr "Max. taak fouten"
+msgid "Displayed on the team's page"
+msgstr "Weergegeven op de team pagina"
 
-msgid "Max success tasks"
-msgstr "Max. sucesvolle taken"
+msgid "Type of team"
+msgstr "Soort team"
 
-msgid "Max total tasks"
-msgstr "Max. taken totaal"
+msgid "Accept new members?"
+msgstr "Accepteer nieuwe leden?"
 
-msgid "Needs validation"
-msgstr "Heeft validiteitscontrole nodig"
+msgid "Description of team"
+msgstr "Beschrijving van team"
 
-msgid "Initial replication"
-msgstr "Eerste betrouwbare kopie"
+msgid "Create a team"
+msgstr "Een team aanmaken"
 
-msgid "Target number of results"
-msgstr "Doel nummer resultaten"
+msgid "Save team"
+msgstr "Team opslaan"
 
-msgid "Application version ID"
-msgstr "Applicatie versie ID"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Als je BOINC al draait, selecteer <i>Voeg\nProject Toe</.>."
 
-msgid "Plan class"
-msgstr "Plan class"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Als je de command-line versie van BOINC gebruikt,\n        gebruik dan eerst de BOINC Manager software (vanaf een andere computer indien nodig)\n        om een account te maken bij dit project, en gebruik dat account om dit project toe te voegen\n        aan de command-line versie."
 
-msgid "Version number"
-msgstr "Versie nummer"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Als je een pre-5.0 versie van BOINC gebruikt, update\nalsjeblieft naar een meer recente versie om een account\nbij dit project te maken."
 
-msgid "Computer"
-msgstr "Computer"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Als je het e-mailadres van je account bent vergeten, of als je daar geen e-mail kunt ontvangen:"
 
-msgid "App version ID"
-msgstr "App versie ID"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Om met deze gegevens toch toegang te krijgen tot uw BOINC-account, gaat u als volgt te werk: "
 
-msgid "Consecutive valid tasks"
-msgstr "Reeks taken met een geldig resultaat"
+msgid "BOINC documentation"
+msgstr "BOINC documentatie"
 
-msgid "Number of tasks completed"
-msgstr "Aantal taken voltooid"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Ga naar de BOINC data map op je computer (zie !boinc_wiki voor hulp om dit te vinden)."
 
-msgid "Max tasks per day"
-msgstr "Max. aantal taken per dag"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Zoek het projectbestand met je account gegevens, het zal een naam hebben zoals %file (waar de project URL is %url)."
 
-msgid "Number of tasks today"
-msgstr "Aantal taken vandaag"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Open het bestand met een tekstverwerker, bv met Kladblok. Je ziet nu ongeveer het volgende:"
 
-msgid "Show IP address"
-msgstr "IP adres bekijken"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Selecteer en kopieer de tekenreeks tussen <authenticator> en </authenticator> (%auth in bovenstaand voorbeeld)."
 
-msgid "hours"
-msgstr "uren"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Plak deze tekenreeks in het onderstaande veld en klik op OK."
 
-msgid "@count million ops/sec"
-msgstr "@count miljoen ops/sec"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "U wordt nu aangemeld bij uw account; wijzig de betreffende e-mail- en wachtwoordgegevens."
 
-msgid "@rate KiB/sec"
-msgstr "@rate KiB/sec"
+msgid "Log in with authenticator"
+msgstr "Aanmelden met authentificatie"
 
-msgid "@count days"
-msgstr "@count dagen"
+msgid "OK"
+msgstr "OK"
 
-msgid "Remove friend"
-msgstr "Vriend verwijderen"
+msgid "Post new topic"
+msgstr "Post nieuw onderwerp"
 
-msgid "Ban user"
-msgstr "Gebruiker uitsluiten"
+msgid "Create team message board"
+msgstr "Maak een team forum"
 
-msgid "Add as friend"
-msgstr "Voeg toe als vriend"
+msgid "Message board title"
+msgstr "Forum titel"
 
-msgid "Team"
-msgstr "Mijn Team"
+msgid "Minimum time between posts"
+msgstr "Minimum tijd tussen de berichten"
 
-msgid "Reply"
-msgstr "Beantwoord"
+msgid "Seconds"
+msgstr "Seconden"
 
-msgid "Reply to this comment"
-msgstr "Geef antwoord op dit bericht"
+msgid "Minimum total credit to post"
+msgstr "Minimaal punten totaal om te kunnen plaatsen"
 
-msgid "Quote"
-msgstr "Citaat"
+msgid "Minimum avg credit to post"
+msgstr "Minimaal punten gemiddelde om te kunnen plaatsen"
 
-msgid "Reply to this comment with quote"
-msgstr "Geef antwoord op dit bericht met citaat"
+msgid "Allow public to read board?"
+msgstr "Sta publiek toe om forum te lezen?"
 
-msgid "Edit this comment"
-msgstr "Dit bericht aanpassen"
+msgid "Create message board"
+msgstr "Maak een forum"
 
-msgid "Delete this comment"
-msgstr "Verwijder dit bericht"
+msgid "About message boards"
+msgstr "Over forums"
 
-msgid "Hide this comment"
-msgstr "Verberg dit bericht"
+msgid "You may create a message board for use by @team"
+msgstr "Je mag een forum maken voor @team"
 
-msgid "Convert"
-msgstr "Omzetten"
+msgid "Only members may post"
+msgstr "Alleen leden mogen berichten posten"
 
-msgid "Convert this comment to a new topic"
-msgstr "Zet dit bericht om naar een nieuw onderwerp"
+msgid "Only members may read (optional)"
+msgstr "Alleen leden mogen berichten lezen (optioneel)"
 
-msgid "Details"
-msgstr "Details"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Oprichter en team administrators hebben moderator rechten."
 
 msgid "@ip_address (same the last @count times)"
 msgstr "@ip_address (gelijk aan de laatste @count keer)"
 
-msgid "commented on"
-msgstr "gereageerd op"
-
-msgid "Make unsticky"
-msgstr "Los maken"
-
-msgid "Remove sticky status from this topic"
-msgstr "Verwijder vastmaakstatus van dit onderwerp"
+msgid "Revise or post comment"
+msgstr "Corrigeer of post reactie"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1500,321 +1451,304 @@ msgstr "Controleer de computers die identiek zijn aan @name (aangemaakt @date, c
 msgid "Computer @old_id has been merged successfully into @id."
 msgstr "Computer @old_id is succesvol toegevoegd tot @Id."
 
-msgid "started discussion"
-msgstr "discussie gestart"
-
-msgid "posted"
-msgstr "bericht geplaatst"
-
-msgid "Minimum value not met for @field"
-msgstr "Minimum waarde niet voldaan voor @field"
+msgid "parent removed"
+msgstr "bron verwijderd"
 
 msgid "Remove"
 msgstr "Verwijderen"
 
-msgid "hidden"
-msgstr "verborgen"
-
-msgid "Invalid data type for @field"
-msgstr "Ongeldig data type voor @field"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "Verificatie is vereist bij het wisselen van e-mailadres of het instellen van het nieuwe wachtwoord."
 
-msgid "Request foundership"
-msgstr "Oprichterschap verzoeken"
+msgid "Make unsticky"
+msgstr "Los maken"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Als de team oprichter niet actief is en je wilt deze taak overnemen, klik onder om een verzoek te doen voor oprichterschap van @this_team"
+msgid "Remove sticky status from this topic"
+msgstr "Verwijder vastmaakstatus van dit onderwerp"
 
-msgid "Initiate request"
-msgstr "Plaats verzoek"
+msgid "Unhide"
+msgstr "Zichtbaar maken"
 
-msgid "A BOINC account already exists for @email."
-msgstr "Een BOINC account bestaat al met dit @email adres"
+msgid "Unhide this comment"
+msgstr "Reactie zichtbaar maken"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Wees verantwoordelijk in wat je schrijft en schrijf geen berichten die aanstootgevend of beledigend. Beledigende berichten of threads kunnen zonder waarschuwing of discussie worden verwijderd door de forum moderators. Reageer niet op aanvallende posts. Klik op de \"report\" knop aan de onderkant van de post om deze onder de aandacht van de moderators te brengen."
+msgid "Unpublished"
+msgstr "Ongepubliceerd"
 
-msgid "this project"
-msgstr "dit project"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Computers @old_ids zijn succesvol samengevoegd tot @Id."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "We vragen ook dat je alle discussies op de forums hebt met betrekking tot @project of BOINC, met uitzondering van het Wetenschappelijke forum waar je vrij bent om alles met de onderliggende wetenschappelijke relevantie te bespreken. Deelnemers die geïnteresseerd zijn in een bredere discussie moeten deze plaatsen op onofficiële forums voor @project."
+msgid "Joined"
+msgstr "Aangemeld"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "Deze forums gebruiken nu alleen BBcode elementen."
+msgid "Credit"
+msgstr "Punten"
 
-msgid "Posts contributed"
-msgstr "Berichten bijgedragen"
+msgid "RAC"
+msgstr "Punten gemiddelde"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Profiel in afwachting van moderator goedkeuring"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Er bestaat geen account onder @email -- Klik op \"Nieuw account aanmaken\" om te registeren."
 
-msgid "Approve profile"
-msgstr "Profiel goedkeuren"
+msgid "started discussion"
+msgstr "discussie gestart"
 
-msgid "Approve this profile content"
-msgstr "Keur de inhoud van dit profiel goed"
+msgid "commented on"
+msgstr "gereageerd op"
 
-msgid "Edit profile"
-msgstr "Profiel aanpassen"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Ingevoerd wachtwoord is niet geldig. Controleer a.u.b. dat het correct is."
 
-msgid "Edit the content of this profile"
-msgstr "Pas de inhoud van dit profiel aan"
+msgid "Minimum value not met for @field"
+msgstr "Minimum waarde niet voldaan voor @field"
 
-msgid "Remove profile"
-msgstr "Verwijder profiel"
+msgid "Invalid data type for @field"
+msgstr "Ongeldig data type voor @field"
 
-msgid "Remove this profile content from the system"
-msgstr "Verwijder de inhoud van dit profiel"
+msgid "News"
+msgstr "Nieuws"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "Huidige oprichter heeft @count dagen om op een verzoek te reageren."
+msgid "Remove friend"
+msgstr "Vriend verwijderen"
 
-msgid "Reject profile"
-msgstr "Profiel afwijzen"
+msgid "ignore list"
+msgstr "zwarte lijst"
 
-msgid "Reject this profile content"
-msgstr "Keur de inhoud van dit profiel af"
+msgid "here"
+msgstr "hier"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username is op je zwarte lijst. Klik !here om deze post te bekijken."
+
+msgid "hidden"
+msgstr "verborgen"
+
+msgid "Unknown"
+msgstr "Onbekend"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Ongeldige instellingen voor \"%preference\""
 
-msgid "Reason for rejecting this profile"
-msgstr "Reden om dit profiel af te keuren?"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: reactie geplaatst op \"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author heeft een antwoord geplaatst op \"!topic_name\"."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Deze reden zal in de e-mail naar de gebruiker opgenomen worden. Type een korte uitleg van het probleem en hoe het op te lossen."
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Om dit onderwerp te zien op !site, klik hier: \n!comment_url"
 
-msgid "Submit"
-msgstr "Indienen"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "Huidige oprichter heeft @count dagen om op een verzoek te reageren."
+
+msgid "Unlock"
+msgstr "Vergrendeling opheffen"
+
+msgid "Unlock this thread for comments"
+msgstr "Ontgrendel dit onderwerp voor reacties"
 
 msgid "project"
 msgstr "project"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "Er bestaat geen account onder @email -- Klik op \"Nieuw account aanmaken\" om te registeren."
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email is geen correct gevormd e-mail adres, controleer het a.u.b."
 
-msgid "Unknown"
-msgstr "Onbekend"
+msgid "Please enter your email address"
+msgstr "Vul alstublieft uw emailadres in"
 
-msgid "My team"
-msgstr "Mijn team"
+msgid "There is no account with that authenticator."
+msgstr "Er is geen account met die authenticatie."
 
-msgid "You are a member of @team."
-msgstr "Je bent lid van @team."
+msgid "That authenticator is not valid."
+msgstr "Deze beveiligingscode is niet geldig."
 
-msgid "View my team"
-msgstr "Bekijk mijn team"
+msgid "Send request"
+msgstr "Zend verzoek"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Ongeldige instellingen voor \"%preference\""
+msgid "Friend request from !name [!site]"
+msgstr "Vriend verzoek van !name [!site]"
 
-msgid "Pending"
-msgstr "In behandeling"
+msgid "Message"
+msgstr "Bericht"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "Je moet @count meer punten verdienen alvorens je commentaar kan posten op deze website."
-
-msgid "Moderation"
-msgstr "Beheer"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name wil je als vriend toegevoegen op !site. Je kunt dit verzoek toestaan of weigeren. Het verzoek weiegeren zal geen breicht hierover sturen, maar verwijdert het verzoek van jullie beider accounts.\n\nVolg benedenstaande link om het verzoek te bekijken:\n!link\n\n!message\n\nMet dank,\nHet !site team"
 
-msgid "Unvetted profiles"
-msgstr "Niet beoordeelde profielen"
+msgid "Cancel friend request"
+msgstr "Annuleer vriend verzoek"
 
-msgid "Reason for banning this user"
-msgstr "Reden voor het uitsluiten van deze gebruiker"
+msgid "Please set the minimum time required between posts."
+msgstr "Zet alsjeblieft de minimum tijd die nodig is om twee posts te maken."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "Deze reden zal in de e-mail naar de gebruiker opgenomen worden. Type een korte uitleg waarom deze gebruiker uitgesloten is."
-
-msgid "Duration of the ban"
-msgstr "Periode van uitsluiting"
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "Het aantal dagen voordat de uitsluiting afloopt. Stel 0 in om permanent uit te sluiten."
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Zet alsjeblieft het minimale punten totaal dat een gebruiker nodig heeft om te posten op dit forum."
 
-msgid "Lift user ban"
-msgstr "Uitsluiting opheffen van gebruiker"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Minimum gemiddelde puntenaantal dat een gebruiker nodig heeft om op dit forum te kunnen posten."
 
-msgid "You are banned from community participation until @date"
-msgstr "Je bent uitgesloten van deelname aan deze gemeenschap tot @date"
+msgid "Edit message board"
+msgstr "Forum bijwerken"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "Computers @old_ids zijn succesvol samengevoegd tot @Id."
+msgid "Save message board"
+msgstr "Bewaar forum"
 
-msgid "A team named \"@name\" already exists."
-msgstr "Een team met naam \"@name\" bestaat al. "
+msgid "This is a team-only message board"
+msgstr "Dit forum is alleen voor het team"
 
-msgid "Post topic"
-msgstr "Post onderwerp"
+msgid "Maximum value exceeded for @field"
+msgstr "Maximale waarde voor @field overschreden"
 
-msgid "Please enter your email address"
-msgstr "Vul alstublieft uw emailadres in"
+msgid "Approve request"
+msgstr "Verzoek toestaan"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "Ingevoerd wachtwoord is niet geldig. Controleer a.u.b. dat het correct is."
+msgid "!name accepted your friend request [!site]"
+msgstr "!name heeft je vriend verzoek geaccepteerd [!site]"
 
-msgid "Make founder"
-msgstr "Maak oprichter"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name heeft je als vriend bevestigd op !site.\n\nVolg deze link om zijn of haar profiel te bekijken:\n!link\n\n!message\n\n Met dank,\nHet !site team"
 
-msgid "User of the day"
-msgstr "Gebruiker van de dag"
+msgid "posted"
+msgstr "bericht geplaatst"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: reactie geplaatst op \"!topic_name\""
+msgid "Add team admin"
+msgstr "Team administrator toevoegen"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author heeft een antwoord geplaatst op \"!topic_name\"."
+msgid "Enter email address"
+msgstr "e-mail adres invoeren"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "Om dit onderwerp te zien op !site, klik hier: \n!comment_url"
+msgid "Current team admins"
+msgstr "Huidige team administrators"
 
-msgid "At least one application must be selected"
-msgstr "Ten minste een applicatie moet geselecteerd zijn."
+msgid "About team admins"
+msgstr "Over team administrators"
 
-msgid "Account"
-msgstr "Account"
+msgid "Team admins can:"
+msgstr "Team administrators kunnen:"
 
-msgid "Log in"
-msgstr "Inloggen"
+msgid "Edit team information"
+msgstr "Team informatie bijwerken"
 
-msgid "Forgot password"
-msgstr "Wachtwoord vergeten"
+msgid "View the team's join / quit history"
+msgstr "Het verloop van de aan- en afmeld gegevens van dit team inzien"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Vul je e-mail adres in om instructies te ontvangen om je wachtwoord te resetten. "
+msgid "Moderate the team forum"
+msgstr "Het team forum modereren"
 
-msgid "Send"
-msgstr "Verzenden"
+msgid "Remove members from the team"
+msgstr "Teamleden verwijderen"
 
-msgid "Revise or post comment"
-msgstr "Corrigeer of post reactie"
+msgid "Disband a team if it has no members"
+msgstr "Het team kan ontbinden als het geen leden heeft"
 
-msgid "discuss"
-msgstr "discussieer"
+msgid "Team admins cannot:"
+msgstr "Team administrator beperkingen:"
 
-msgid "News"
-msgstr "Nieuws"
+msgid "Change the team founder"
+msgstr "De team oprichter aanpassen is niet mogelijk"
 
-msgid "Your community preferences have been updated."
-msgstr "Je gemeenschapsvoorkeuren zijn bijgewerkt."
+msgid "Add / Remove team admins"
+msgstr "Toevoegen of verwijderen van team administrators"
 
-msgid "Unlock"
-msgstr "Vergrendeling opheffen"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Als een team administrator het team verlaat, verliest deze de administrator rechten. We raden je aan alleen mensen te selecteren die je kent en vertrouwt."
 
-msgid "Unlock this thread for comments"
-msgstr "Ontgrendel dit onderwerp voor reacties"
+msgid "Lift user ban"
+msgstr "Uitsluiting opheffen van gebruiker"
 
-msgid "Authenticator login"
-msgstr "Authenticatie login"
+msgid "A team named \"@name\" already exists."
+msgstr "Een team met naam \"@name\" bestaat al. "
 
-msgid "Create content"
-msgstr "Maak inhoud"
+msgid "A BOINC account already exists for @email."
+msgstr "Een BOINC account bestaat al met dit @email adres"
 
-msgid "authenticator-based login"
-msgstr "op authenticatie gebasseerde login"
+msgid "Make founder"
+msgstr "Maak oprichter"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Vul je e-mail adres in om instructies te ontvangen om je wachtwoord te resetten (of gebruik de !authenticator_login)."
+msgid "Changing the team founder"
+msgstr "De team oprichter veranderen"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "Als je het e-mailadres van je account bent vergeten, of als je daar geen e-mail kunt ontvangen:"
+msgid "Notes about changes in foundership:"
+msgstr "Notities over veranderen van oprichter:"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "Om met deze gegevens toch toegang te krijgen tot uw BOINC-account, gaat u als volgt te werk: "
+msgid "Any member of the team is eligible"
+msgstr "Elk lid van het team komt in aanmerking"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Ga naar de BOINC data map op je computer (in Windows dit is gewoonlijk %path1 of %path2)."
+msgid "Current founder becomes a normal user"
+msgstr "Huidige oprichter verandert naar een normale gebruiker"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Zoek het projectbestand met je account gegevens, het zal een naam hebben zoals %file (waar de project URL is %url)."
+msgid "Foundership can be requested by team members:"
+msgstr "Verandering van oprichter kan worden aangevraagd door teamleden:"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Open het bestand met een tekstverwerker, bv met Kladblok. Je ziet nu ongeveer het volgende:"
+msgid "One request is allowed at a time"
+msgstr "Een verzoek tegelijkertijd"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Selecteer en kopieer de tekenreeks tussen <authenticator> en </authenticator> (%auth in bovenstaand voorbeeld)."
+msgid "It must be 60 days since any previous request"
+msgstr "Er moeten 60 dagen zijn geweest sinds het laatste verzoek"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Plak deze tekenreeks in het onderstaande veld en klik op OK."
+msgid "Any active request must be older than 90 days"
+msgstr "Actieve verzoeken moeten ouder zijn dan 90 dagen"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "U wordt nu aangemeld bij uw account; wijzig de betreffende e-mail- en wachtwoordgegevens."
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Huidige oprichter heeft 60 dagen om op een verzoek te reageren"
 
-msgid "Log in with authenticator"
-msgstr "Aanmelden met authentificatie"
+msgid "BOINC-wide teams site"
+msgstr "BOINC-breed teams site"
 
-msgid "There is no account with that authenticator."
-msgstr "Er is geen account met die authenticatie."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Dit is een BOINC-breed team. Veranderingen kunnen worden gemaakt op de !site."
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Ga naar de <a href=\"%wikiref\">BOINC data map</a> op je computer (in Windows dit is gewoonlijk %path1 of %path2)."
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Een team oprichterswissel was recentelijk al aangevraagd. Er kan maar één verzoek per 90 dagen worden gedaan."
 
-msgid "BOINC documentation"
-msgstr "BOINC documentatie"
+msgid "@count days remaining"
+msgstr "@count dagen overblijvend"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Ga naar de BOINC data map op je computer (zie !boinc_wiki voor hulp om dit te vinden)."
+msgid "Team name is required."
+msgstr "Team naam is verplicht."
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "@count dagen zijn voorbij sinds je verzoek, en de huidige oprichter heeft niet gereageerd."
+msgid "Reason for banning this user"
+msgstr "Reden voor het uitsluiten van deze gebruiker"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "Je hebt nu @count dagen om oprichter te worden, voordat een ander teamlid een verzoek mag doen."
-
-msgid "Assume foundership"
-msgstr "Oprichterschap aannemen"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Deze reden zal in de e-mail naar de gebruiker opgenomen worden. Type een korte uitleg waarom deze gebruiker uitgesloten is."
 
-msgid "Unhide"
-msgstr "Zichtbaar maken"
+msgid "Duration of the ban"
+msgstr "Periode van uitsluiting"
 
-msgid "Unhide this comment"
-msgstr "Reactie zichtbaar maken"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Het aantal dagen voordat de uitsluiting afloopt. Stel 0 in om permanent uit te sluiten."
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email is geen correct gevormd e-mail adres, controleer het a.u.b."
+msgid "Submit"
+msgstr "Indienen"
diff --git a/locale/nl/BOINC-Manager.mo b/locale/nl/BOINC-Manager.mo
index 803faa3..b722c62 100644
Binary files a/locale/nl/BOINC-Manager.mo and b/locale/nl/BOINC-Manager.mo differ
diff --git a/locale/nl/BOINC-Manager.po b/locale/nl/BOINC-Manager.po
index e34f28c..de7c0d8 100644
--- a/locale/nl/BOINC-Manager.po
+++ b/locale/nl/BOINC-Manager.po
@@ -11,7 +11,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-03-21 17:26+0000\n"
+"PO-Revision-Date: 2016-09-05 20:42+0000\n"
 "Last-Translator: Jord <elst93 at gmail.com>\n"
 "Language-Team: Dutch (http://www.transifex.com/boinc/boinc/language/nl/)\n"
 "MIME-Version: 1.0\n"
@@ -271,7 +271,7 @@ msgstr "Toon projecten"
 
 #: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
-msgstr "&Werk\\tCtrl+Shift+T"
+msgstr "&Werk\tCtrl+Shift+T"
 
 #: clientgui/AdvancedFrame.cpp:413
 msgid "Show tasks"
@@ -279,7 +279,7 @@ msgstr "Toon taken"
 
 #: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
-msgstr "Over&dracht\\tCtrl+Shift+X"
+msgstr "Over&dracht\tCtrl+Shift+X"
 
 #: clientgui/AdvancedFrame.cpp:419
 msgid "Show file transfers"
@@ -287,7 +287,7 @@ msgstr "Toon bestandsoverdrachten"
 
 #: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
-msgstr "&Statistieken\\tCtrl+Shift+S"
+msgstr "&Statistieken\tCtrl+Shift+S"
 
 #: clientgui/AdvancedFrame.cpp:425
 msgid "Show statistics"
@@ -295,7 +295,7 @@ msgstr "Toon statistieken"
 
 #: clientgui/AdvancedFrame.cpp:430
 msgid "&Disk\tCtrl+Shift+D"
-msgstr "&Disk\\tCtrl+Shift+D"
+msgstr "&Disk\tCtrl+Shift+D"
 
 #: clientgui/AdvancedFrame.cpp:431
 msgid "Show disk usage"
@@ -303,7 +303,7 @@ msgstr "Toon schijfgebruik"
 
 #: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
-msgstr "Een&voudige weergave...\\tCtrl+Shift+V"
+msgstr "Een&voudige weergave...\tCtrl+Shift+V"
 
 #: clientgui/AdvancedFrame.cpp:439
 msgid "Switch to the Simple View"
@@ -364,7 +364,7 @@ msgstr "Overdracht opnieuw proberen"
 
 #: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
 msgid "Event Log...\tCtrl+Shift+E"
-msgstr "Logboek...\\tCtrl+Shift+E"
+msgstr "Logboek...⇥Ctrl+Shift+E"
 
 #: clientgui/AdvancedFrame.cpp:505
 msgid "Show diagnostic messages"
@@ -468,7 +468,7 @@ msgstr "Selecteer welke kolommen zichtbaar zijn"
 
 #: clientgui/AdvancedFrame.cpp:621
 msgid "Event Log options...\tCtrl+Shift+F"
-msgstr "Logboek opties...\\tCtrl+Shift+F"
+msgstr "Logboek opties...⇥Ctrl+Shift+F"
 
 #: clientgui/AdvancedFrame.cpp:622
 msgid "Enable or disable various diagnostic messages"
@@ -3655,7 +3655,7 @@ msgstr "Selecteer de wijze van weergave."
 
 #: clientgui/sg_BoincSimpleFrame.cpp:181
 msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Geavanceerd...\\tCtrl+Shift+A"
+msgstr "Geavanceerde weergave...\tCtrl+Shift+A"
 
 #: clientgui/sg_BoincSimpleFrame.cpp:182
 msgid "Display the advanced graphical interface."
diff --git a/locale/nl/BOINC-Project-Generic.po b/locale/nl/BOINC-Project-Generic.po
deleted file mode 100644
index 4545c0e..0000000
--- a/locale/nl/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6514 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# D c <onlinegamesdavey at gmail.com>, 2015
-# Jord <elst93 at gmail.com>, 2015
-# Rene Oskam, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2015-11-20 18:32+0000\n"
-"Last-Translator: Jord <elst93 at gmail.com>\n"
-"Language-Team: Dutch (http://www.transifex.com/boinc/boinc/language/nl/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: nl\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Nederlands"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Dutch"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Uitnodigingscode"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Er is een geldige uitnodigingscode vereist om een account aan te maken."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Naam"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identificatie op deze pagina. Gebruik je echte naam of een nickname."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Email Adres"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Moet een geldig email adres zijn in de vorm 'naam at domein'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Wachtwoord"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Moet minstens %1 karakters lang zijn"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Bevestig wachtwoord"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Land"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Welk land wil je vertegenwoordigen, indien van toepassing."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Postcode"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Optioneel"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Account maken"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "E-mail adres:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "e-mail adres vergeten?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Wachtwoord:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "wachtwoord vergeten?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Aangemeld blijven"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Inloggen"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Vetgedrukte tekst: [b]tekst[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Cursieve tekst: [i]tekst[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Onderlijnde tekst: [u]tekst[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Doorgestreepte tekst: [s]tekst[/s]  (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citaat: [quote]tekst[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Code weergeven: [code]code[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lijst: [list]tekst[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Geordende lijst: [list=]tekst[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Afbeelding invoegen: [img]http://url_van_afbeelding[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "URL invoegen: [url]http://url[/url] or [url=http://url]URL tekst[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Teken kleur"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Teken kleur: [color=red]tekst[/color]  Tip: color=#FF0000 mag ook worden gebruikt"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Standaard"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Donker Rood"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Rood"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Oranje"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Bruin"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Geel"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Groen"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Olijf"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Cyaan"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Blauw"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Donker Blauw"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indigo"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Violet"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Teken grootte"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Teken grootte: [size=x-klein]kleine tekst[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Klein"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normaal"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Groot"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Sluit alle geopende bbCode tags"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Sluit Tags"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Oudste eerst"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Nieuwste eerst"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Best scorende berichten eerst"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Nieuwste bericht eerst"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Meest bekeken eerst"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Meeste berichten eerst"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Vrijwillige moderator"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Project administrator"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Project ontwikkelaar"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Project tester"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Vrijwillige ontwikkelaar"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Vrijwillige tester"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Project wetenschapper"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Helpdesk expert"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Zoek naar woorden in forum berichten"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Zoek in het forum"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Uitgebreid zoeken"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Privé berichten"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Vraag en Antwoord"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Forum"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 forum"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Vorige"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Volgende"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Auteur"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Bericht"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Verstuur bericht"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Verstuur %1 een privé bericht"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Lid geworden: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Reacties: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Punten: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "Punten gemiddelde: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "U heeft dit bericht nog niet gelezen"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Ongelezen"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Bericht %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "verborgen"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Berichten geplaatst: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - in antwoord op "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Aanpassen"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Dit bericht aanpassen"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Aangepast op: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Dit bericht wordt niet getoond, omdat de gebruiker op de 'negeer' lijst staat.  Klik %1hier%2 om weer te geven"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Rapporteer dit bericht als aanstootgevend"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Rapporteren als aanstootgevend"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Waardering: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "Waarde: "
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Klik als je dit bericht leuk vindt"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Waarde +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Klik als je dit bericht niet leuk vindt"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Waarde -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Beantwoord"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Een antwoord geven op dit bericht"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Citaat"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Antwoord geven met een citaat uit dit bericht"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Verborgen door moderator"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Geplaatst op %1 door %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Je mag geen berichten plaatsen of waarderen tot %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Hou berichten 'kind vriendelijk': vermijd woorden die\n            obsceen zijn, haat-gerelateerd,\n            seksueel getint of suggestief.\n        <li> Plaats geen commerciële advertenties.\n        <li> Plaats geen links naar websites met seksuele inhoud,\n            gokken of intolerantie naar anderen.\n        <li> Plaats geen berichten met de intentie om andere mensen te kwetsen,\n            te beledigen of om het onderwerp over te nemen.\n [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Regels:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Meer info"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Zichtbaar maken"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Bericht zichtbaar maken"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Verbergen"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Bericht verbergen"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Verplaatsen"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Verplaats dit bericht naar een ander onderwerp"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Auteur uitsluiten"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Stem om auteur te royeren"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Stem om auteur niet te royeren"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Begin stemming om auteur te royeren"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Verwijder"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Dit bericht verwijderen"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Alleen team leden mogen berichten plaatsen op dit forum"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Om een nieuw onderwerp te plaatsen in %1 is het nodig om een minimaal aantal punten te hebben. Dit is nodig om misbruik te voorkomen."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Op dit moment kan je geen nieuwe onderwerpen plaatsen. Probeer dit later a.u.b overnieuw. Deze vertraging is ingebouwd om misbruik te voorkomen."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Dit onderwerp is gesloten. Alleen forum moderators en admins mogen hier berichten plaatsen."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Berichten plaatsen in verborgen onderwerp niet mogelijk."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Onderwerp"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Reacties"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Bekeken"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Laatste reactie"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Nieuwe berichten in onderwerp %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Nieuwe berichten in geabonneerd onderwerp"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Er zijn nieuwe berichten in onderwerp '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Markeer alle onderwerpen als gelezen"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Markeer alle onderwerpen in alle forums als gelezen."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Geen host computer"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Niet beschikbaar"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Thuis pagina"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Werk"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "School"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Bijwerken"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Computer informatie"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP adres"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(gelijk aan de laatste %1 keer)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Extern IP adres"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "IP adres bekijken"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Domein naam"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Product naam"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Lokale tijd"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 uur"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Eigenaar"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anoniem"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Aangemaakt"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Punten totaal"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Punten gemiddelde"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Project brede score"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPU type"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Aantal processoren"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Coprocessoren"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Besturingssysteem"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC versie"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Geheugen"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Virtueel geheugen"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Totale schijfruimte"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Vrije schijfruimte"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Gemeten 'floating point' snelheid"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 miljoen ops/sec"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Gemeten 'integer' snelheid"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Gemiddelde upload waarde"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Onbekend"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Gemiddelde download waarde"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Gemiddelde inlever tijd"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 dagen"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Applicatie details"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Weergeven"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Taken"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Aantal keren dat de cliënt contact heeft gehad met de server"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Laatste contact met de server"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Fractie van de tijd dat BOINC actief is"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Wanneer BOINC actief is, fractie van de tijd dat de computer een Internetverbinding heeft"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Terwijl BOINC actief is, fractie van de tijd dat berekeningen toegestaan zijn"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Terwijl BOINC actief is, fractie van de tijd dat GPU berekeningen toegestaan zijn"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Gemiddelde CPU efficiëntie"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Correctie factor van een taak"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Locatie"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Verwijder deze computer"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Meerdere vermeldingen van deze computer"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Samenvoegen"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Laatste contact"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Computer informatie"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Rang"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Punten gemiddelde"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Huidige punten gemiddelde"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Besturingssysteem"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 processoren)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Details"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Project brede statistieken:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Computer %1 heeft een overlappende inzet-duur:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "Computer %1 heeft een niet compatibel besturingssysteem:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Computer %1 heeft een niet compatibele CPU:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "zelfde computer"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Kan computer %1 en %2 niet samenvoegen - ze zijn niet compatibel"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Computer %1 en %2 worden samengevoegd"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Punten aantal van nieuwe computer kon niet worden bijgewerkt"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Resultaten konden niet worden bijgewerkt"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Verwijderen oude computer niet gelukt"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Verwijderde oude computer %1"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Weergeven:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Alle computers"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Alleen actieve computers in de laatste 30 dagen"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "Computer ID"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>versie"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Computers samenvoegen op naam"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Browser standaard"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Opmerkingen"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Nieuws is ook verkrijgbaar als %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Postvak In"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Schrijven"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Verstuur privé bericht"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Voorbeeld"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "geen bericht gevonden"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Aan"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Gebruikers ID of unieke gebruikersnaam, gescheiden door komma's"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Onderwerp"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Verstuur bericht"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "heeft een persoonlijk bericht gestuurd. Onderwerp:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Persoonlijk bericht%1 van %2. onderwerp:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Kon geen bericht aanmaken"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Het is niet toegestaan om snel achter elkaar veel berichten te versturen. Wacht a.u.b. even met versturen andere berichten."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "ongelezen"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Voor een e-mail bevestiging, %1pas voorkeuren aan%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Privé berichten"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Gebruiksbeperkingen"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Gebruik maximaal"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Houdt sommige CPUs vrij voor andere programma's. Bijvoorbeeld: 75% betekent dat een 8-core processor 6 kernen gebruikt. "
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% van de CPUs"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Pauzeer/hervat verwerking elke zoveel seconden om de CPU temperatuur en het energieverbruik te verminderen. Bijvoorbeeld: 75% betekent 3 seconden verwerken, 1 seconde pauze, enzovoort. "
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% van de CPU tijd"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Wanneer te pauzeren"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Pauzeren wanneer de computer op accu werkt"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Markeer dit om verwerking te pauzeren op mobiele toestellen wanneer deze op accu werken."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Pauzeren waneer computer in gebruik is"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Markeer dit om verwerking en bestandsoverdrachten te pauzeren wanneer je de computer gebruikt."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Pauzeer GPU gebruik op wanneer de computer in gebruik is"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Markeer dit om GPU gebruik te pauzeren wanneer je de computer gebruikt."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'In gebruik' betekent gebruik van toetsenbord/muis in de laatste"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Dit bepaalt wanneer de computer 'in gebruik' is."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minuten"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Pauzeer wanneer geen toestenbord/muis activiteit in de laatste"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Dit staat sommige computers toe om een lage energieverbruiksmodus te gebruiken wanneer ze niet in gebruik zijn."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Pauzeer bij niet-BOINC CPU gebruik van meer dan "
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Pauzeer verwerking wanneer je computer bezig is andere programma's te draaien."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Bereken alleen tussen"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Bereken alleen gedurende een bepaalde periode elke dag. "
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Anders"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Bewaar tenminste"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Bewaar tenminste genoeg taken om de computer gedurende deze tijd bezig te houden. "
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "dagen werk"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Bewaar tot een extra"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Bewaar extra taken bovenop het minimum level. Dit bepaalt hoeveel werk wordt gevraagd wanneer contact met een project wordt opgenomen."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Schakel tussen taken ongeveer elke"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Als je meerdere projecten draait, kan BOINC zo vaak tussen hen schakelen. "
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Vraag taken een controlepunt te maken elke"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Dit bepaalt hoe vaak taken hun status naar disk opslaan, zodat ze later van dat punt kunnen verder gaan. "
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "seconden"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Gebruik niet meer dan"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Beperk het totale schijfruimte gebruik van BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Laat minstens"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Beperk schijfruimte gebruik om zo veel ruimte op het volume waar BOINC data opslaat vrij te houden."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB vrij"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Beperk het percentage van schijfruimte gebruik door BOINC op het volume waar het data opslaat."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% van totale schijf grootte"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Wanneer computer in gebruik is, gebruik maximaal"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Beperk geheugengebruik van BOINC wanneer je de computer gebruikt."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Wanneer computer niet in gebruik is, gebruik maximaal"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Beperk geheugengebruik van BOINC wanneer je de computer niet gebruikt."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Laat niet-GPU taken in geheugen wanneer gepauzeerd"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Wanneer gemarkeerd blijven gepauzeerde taken in het geheugen, en kunnen deze herstarten zonder dat werk verloren gaat. Wanneer niet gemarkeerd worden gepauzeerde taken uit het geheugen verwijderd, en herstarten deze van hun laatste controlepunt. "
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Wisselbestand: gebruik maximaal"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Beperk het wisselbestand (geheugenpaginering) gebruikt door BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Beperk de uploadsnelheid van bestandsoverdrachten."
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Beperk de downloadsnelheid van bestandsoverdrachten."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/seconde"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Beperk de uploadsnelheid tot"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Beperk de uploadsnelheid van bestandsoverdrachten."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Beperk gebruik tot"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Bijvoorbeeld: BOINC kan maximaal 2000 MB elke 30 dagen overschrijven."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB elke"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "dagen"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Verstuur bestanden alleen tussen"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Verstuur bestanden alleen gedurende een bepaalde periode elke dag."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Afbeeldingsbestanden verificiëren overslaan"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Markeer dit alleen als je Internet Service Provider afbeeldingsbestanden aanpast. Overslaan van de verificatie verlaagt de veiligheid van BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Bevestiging bij het openen van de internet verbinding"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Alleen van belang bij een modem, ISDN of VPN verbinding."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Verbinding verbreken indien gereed"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Verwerken"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Schijfgebruik"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Netwerk"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Deze voorkeuren hebben betrekking op alle projecten waar je aan deelneemt."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Voorkeuren bijwerken niet gelukt.%2 De waarden gemarkeerd in rood zijn niet correct ingevuld."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "verwerken"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Aparte voorkeuren voor %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Voorkeuren bijwerken"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Verwijderen"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Aparte voorkeuren voor %1 toevoegen"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Deze instellingen zijn van toepassing op alle computers van deze account, behalve"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "computers waar je lokale voorkeuren via BOINC Manager hebt gebruikt."
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Android toestellen"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Verander Weergave)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Gecombineerde voorkeuren"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Primaire (standaard) voorkeuren"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Voorkeuren aangepast per:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Voorkeuren toevoegen"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Voorkeuren bijwerken"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "ja"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "nee"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Standaard computer locatie"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Nieuwe computers zullen deze locatie gebruiken voor berekenings- en project voorkeuren."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Gedeelde bronnen"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Bepaalt hoeveel tijd dit project van jouw computer gebruik kan maken. Voorbeeld: Als jouw computer deelneemt aan 2 BOINC projecten met aandelen van 100 en 200, zal het eerste project 1/3 en het tweede project 2/3 van de beschikbare tijd krijgen."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Versnel de GPU taken door een CPU toe te wijzen elke taak?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Gebruik CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Gebruik ATI GPU"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Gebruik NVIDIA GPU"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Gebruik Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Test applicaties uitvoeren?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Dit helpt ons om applicaties te ontwikkelen, maar kan er voor zorgen dat werk faalt op jouw computer"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Er worden door %1 e-mails naar je verzonden; zorg ervoor dat een eventueel spamfilter ze niet blokkeert."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Wil je dat %1 en/of je team e-mail naar je kunnen verzenden?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Wil je dat %1 jouw computers laat zien op de website?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Verander Weergave)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Project specifieke instellingen"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "foute locatie: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "foute toevoeging: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "en"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Je profiel wordt zichtbaar voor anderen, zodra deze is goedgekeurd door het project. Dit kan mogelijk enkele dagen duren."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Je profiel is gemarkeerd als onaanvaardbaar en niet zichtbaar voor anderen. Pas het a.u.b. aan."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Database fout"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Om spam te voorkomen, worden profielen met een gemiddeld aantal punten van minder dan %1 alleen getoond aan ingelogde gebruikers. Onze excuses voor dit ongemak."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Gebruiker is geroyeerd"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Geen profiel aanwezig voor gevraagd gebruikers ID."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Profiel aanpassen"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Feedback op dit profiel"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Dit profiel voordragen als 'Gebruiker van de Dag':"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Ik keur dit profiel %1goed%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Meld dit profiel als aanstootgevend aan de administrator:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Ik keur dit profiel %1af%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anoniem platform"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Niet in database"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "in behandeling"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Alles"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "In uitvoering"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Controle in behandeling"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Controle zonder resultaat"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Geldig"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Ongeldig"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Fout"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactief"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Niet verzonden"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Voltooid, wacht op controle"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Voltooid en gecontroleerd"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Voltooid, gemarkeerd als ongeldig"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Voltooid, kan niet gecontroleerd worden"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Voltooid, controle niet overtuigend"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Voltooid, te laat om te controleren"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Voltooid"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Kon niet verzonden worden"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Geannuleerd door server"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Niet gestart voor eindtijd - geannuleerd"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Fout tijdens downloaden"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Fout tijdens verwerking"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Fout tijdens uploaden"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Afgebroken door gebruiker"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Uploaden mislukt"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Geen reactie - tijd verstreken"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Niet nodig"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Fout tijdens controle"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Afgebroken"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Binnen"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Geslaagd"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Berekenings fout"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Overbodig resultaat"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Geen antwoord"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nieuw"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Bezig met downloaden"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Bezig met verwerken"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Berekeningsfout"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Bezig met uploaden"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Gereed"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Initieel"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Niet nodig"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Fout in WU - controle overgeslagen"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Gecontroleerd, maar op dit moment geen overeenstemming"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Taak is te laat gerapporteerd om te valideren"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Kon het resultaat niet verzenden"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Te veel fouten (bevat misschien een bug)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Te veel resultaten (wellicht niet-deterministisch)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Te veel totaal resultaten"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "WU afgebroken"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Canonical resultaat ontbreekt"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Onverklaarbare Fout: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Taaknaam"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "Klik voor details"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Toon ID's"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Toon namen"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Taken"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Werk-eenheid"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Computer"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Verzonden"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Rapportage tijd<br />of deadline"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "verklaring"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Loop tijd<br />(sec)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU tijd<br />(sec)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Punten"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Applicatie"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Werkeenheid"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Rapporteren voor"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Ontvangen"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Server status"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Uitkomst"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Client status"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Afsluit status"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Loop tijd"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU tijd"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Validatie status"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Apparaat piek FLOPS"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Programma versie"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Uitvoer bestanden"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Stderr output"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Status"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Taaknaam:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Zoek opties (kies één of meerdere)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Steekwoorden"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Zoek teams met deze woorden in hun naam of beschrijving"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Soort team"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Laat alleen aktieve teams zien"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Zoek"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Op eigen verzoek, deadline voor de oprichter om te reageren is verlopen."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Complete oprichters overdracht"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Op eigen verzoek"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "Deadline voor antwoord van oprichter verloopt op %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Geen"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Plaats verzoek"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Uitgesteld"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Team info"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Beschrijving"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Website"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Cross-project statistieken"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Soort"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Forum"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Onderwerpen"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Sluit je aan bij dit team"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "NB: als je \"email toestaan\" hebt ingevuld bij je project voorkeuren, zal je email adres bekend worden bij de team oprichter, indien je jezelf bij een team opgeeft."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Er is op dit moment een ledenstop"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Oprichters wissel aangevraagd"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Reageren voor %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Team oprichter wisselen"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Leden"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Oprichter"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Administrator"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Nieuwe leden"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Totaal aantal leden"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "bekijk"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Actieve leden"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Leden met punten"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Administrator"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Vorige %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Volgende %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Team niet gevonden."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Deze actie vereist oprichters rechten."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Deze actie vereist administrator rechten"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "WAARSCHUWING: dit is een BOINC-wide team. Indien je hier wijzigingen aanbrengt, worden ze snel overschreven. Pas daarom het %1BOINC-wide team%2 zelf aan."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Let op%2: Als je een team opricht worden je project voorkeuren (gedeelde bronnen, grafische voorkeuren) zichtbaar voor iedereen."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Naam van team, tekst versie"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Gebruik geen HTML codes."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Naam van team, HTML versie"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "%1HTML codes beperkt%2 toegestaan."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Indien je geen HTML kennis hebt, a.u.b. leeg laten."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL van team webpagina, indien aanwezig"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "zonder \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Deze URL zal geplaatst worden op de team pagina hier op de site."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Beschrijving van team"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Accepteer nieuwe leden?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Gebruikers profiel"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projecten waar je in meedoet"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projecten waar %1 in meedoet"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Project"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Klik voor gebruikers pagina"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Sinds"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Berekeningen en punten"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Computers op dit account"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Bekijk"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Cross-project ID"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Cross-project statistieken"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Account"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Team"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Cross-project"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certificaat"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Statistieken op je mobiele telefoon"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Account informatie"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Email adres"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Postcode"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 lid sinds"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Verander"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "email adres"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "wachtwoord"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "ander account informatie"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "Gebruikers ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Gebruikt in gemeenschaps functies"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Account keys"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Voorkeuren"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Hoe en wanneer BOINC je computer gebruikt"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Computer voorkeuren"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Forum en privé berichten"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Gemeenschaps voorkeuren"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Voorkeuren voor dit project"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 voorkeuren"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Bekijk het profiel van %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profiel"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Gemeenschap"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Aanmaken"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 berichten"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Aankondiging"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Verlaat team"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Administrator"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(oprichters wissel in aanvraag)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Lid van team"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "vind een team"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Oprichter maar geen lid van"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Vind vrienden"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Vrienden"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Computers"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Donateur"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Contact"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Dit persoon is een vriend"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Beëindig vriendschap"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "In aanvraag"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Voeg toe als vriend"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "gebruikersnaam mag niet starten of eindigen met een spatie"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "gebruikersnaam mag niet leeg zijn"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "gebruikersnaam mag geen HTML tags bevatten"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "Uitloggen"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "Inloggen"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Een account aanmaken"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Server status"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "De database genereerde een foutmelding bij de behandeling van uw verzoek, probeer het later nog eens alstublieft."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Niet mogelijk om verzoek te behandelen"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "uren"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "minuten"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "seconden"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Wachttijd voor deze link is verlopen. Klik op 'terug' en vernieuw de pagina."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Gebruik BBCode om de tekst op te maken"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Project wegens onderhoud gesloten"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 is tijdelijk gesloten wegens onderhoud.  Probeer het later a.u.b. opnieuw."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Verbinden met database mislukt - probeer het later a.u.b. opnieuw"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Selecteren van database mislukt - probeer het later a.u.b. opnieuw"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "aantal tekens resterend"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Blijf ingelogd op deze computer"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Account set-up voltooien"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "U moet een naam voor uw account invoeren"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML tags zijn in uw naam niet toegestaan"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Pas voorkeuren voor %1 aan"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Voeg voorkeuren %1 toe voor %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Applicaties"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "% 1 heeft momenteel de volgende toepassingen. Wanneer je deelneemt aan 1%, zullen taken voor één of meer van deze toepassingen worden toegewezen aan jouw computer. De huidige versie van de applicatie zal worden gedownload naar jouw computer. Dit gebeurt automatisch; je hoeft niets te doen."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Platform"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Versie"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Gemiddelde berekening"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode tags"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BBCode tags laten je toe om opmaak mee te geven aan je tekst in je profiel of op je message-board berichten. \nHet is vergelijkbaar met HTML maar eenvoudiger. De tags starten met een [ (waar je een %1 zou gebruiken in HTML) en eindigen met een ] (waar je %2 zou gebruiken in HTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Voorbeelden"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Vet"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Cursief"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Onderlijnen"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Doorstrepen"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Superscript"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Grote tekst"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Rode tekst"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "link naar website"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Citaat"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "gebruik voor citaten"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "gebruik om een afbeelding weer te geven"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Stukje code hier"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "gebruik om code weer te geven"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Opgemaakte tekst"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "gebruik om reeds opgemaakte tekst weer te geven"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Item 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Item2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Item 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "gebruik om een link te maken naar een Trac ticket op de BOINC website"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "gebruik om een link te maken naar de Trac Wiki op de BOINC website"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Indien je een tag niet correct afsluit of een parameter incorrect specificeert,\ndan zal de ruwe tag zichzelf tonen in plaats van de geformatteerde tekst."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Account aanmaken niet gelukt"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Klik op je webbrowser's <b>Terug</b> knop en probeer opnieuw."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Je ReCaptcha antwoord was niet correct. Probeer het a.u.b. opnieuw."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Je hebt een uitnodigings code nodig om hier een account aan te maken."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "De ingevulde uitnodigings code is ongeldig."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Ongeldig e-mail adres; gebruik een geldig email adres in de vorm 'naam at domein'"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Er bestaat reeds een gebruikersaccount met dit e-mail adres."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Nieuwe wachtwoorden zijn verschillend"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Wachtwoord kan enkel ASCII karakters bevatten."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Het nieuwe wachtwoord is te kort. Minimum wachtwoord lengte is %1 karakters."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Account aanmaken niet gelukt"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "LET OP: gebruik dit formulier niet als je de BOINC Manager gebruikt. Start BOINC, selecteer 'Project Toevoegen' en vul een e-mail adres en wachtwoord in."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Dit account zal tot het %1 team behoren en zal de project voorkeuren van de oprichter hebben."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Afbeelding"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Deze profiel afbeelding wordt links getoond."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Om deze te vervangen, klik op \"Bladeren\" en selecteer een JPEG of PNG afbeelding (%1 of kleiner)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Om de afbeelding te verwijderen, dit vakje aanvinken:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Als je een afbeelding wilt toevoegen aan je profiel, klik dan op \"Bladeren\" en selecteer een JPEG of PNG afbeelding. Kies a.u.b. afbeeldingen van %1 of minder."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Taal"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Selecteer de taal waar je profiel in geschreven is:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Profiel toevoegen"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Profiel maken/aanpassen"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "De indeling van de geüploade afbeelding wordt niet ondersteund."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Je %1profiel%2 geeft je de mogelijkheid om je mening en achtergrond te delen met de %3 gemeenschap."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Je ReCaptcha antwoord was niet correct.  Probeer het a.u.b. opnieuw."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Je eerste reactie wordt gezien als spam door het Akismet anti-spam systeem.  Pas a.u.b. je tekst aan en probeer het opnieuw."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Je tweede reactie wordt gezien als spam door het Akismet anti-spam systeem.  Pas a.u.b. je tekst aan en probeer het opnieuw."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Je profiel opgave was leeg."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Profiel is niet bijgewerkt: database fout"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Profiel is niet toegevoegd: database fout"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Profiel opgeslagen"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Gefeliciteerd! Je profiel is met succes opgenomen in onze database."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Bekijk je profiel"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Een profiel aanmaken"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Om spam te voorkomen, moet je een gemiddeld aantal punten hebben van %1 of groter om een profiel te maken of aan te passen.  Excuses voor het ongemak."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Account kon niet verwijderd worden"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Account verwijderd"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Je gebruikersaccount is verwijderd."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Bevestig het verwijderen van de account"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Het verwijderen van je gebruikersaccount zal al je\npersoonlijke informatie verwijderen van onze servers,\ninclusief je profiel en forum berichten.\nEr zullen geen taken worden toegewezen aan de computers\nwelke gelinkt staan met deze account."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Deze actie kan niet ongedaan gemaakt worden.\nWanneer deze account is verwijdert, kan je hem niet meer terug oproepen."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Weet je het zeker dat je je gebruikersaccount wenst te verwijderen?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Ja"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Deze gebruikersaccount verwijderen"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nee"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Verwijder deze account niet"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "verwijderen van dit profiel is mislukt - probeer het a.u.b. later nog eens"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Verwijder Bevestiging"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Je profiel is verwijderd."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Profiel verwijder bevestiging"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Weet je het zeker?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Verwijderde profielen zijn permanent verwijderd en kunnen niet meer opgeroepen worden --\nJe zal een nieuw profiel moeten aanmaken\nals je in de toekomst een profiel wenst te gebruiken."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Als je zeker bent, klik dan op 'Ja'\nom je profiel te verwijderen uit onze database."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Verwijder mijn profiel"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Verwijder mijn profiel niet"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Transactie Afgerond"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Bedankt voor je donatie!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Je donatie is afgerond."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Uw donatie wordt verwerkt in de voortgangsbalk na de ontvangstbevestiging van Paypal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "U hebt uw donatie geannuleerd."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Dit project neemt geen donaties aan."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donaties"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Dit project neemt donaties aan d.m.v.\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Voor donaties vult u in het onderstaande veld het gewenste bedrag in.\n        PayPal accepteert transacties in diverse valuta\n        (Canadese dollar, euro, Britse pond, Amerikaanse dollar,\n         Yen, Australische dollar, Nieuw-Zeelandse dollar,\n        Zwitserse frank, Hong Kong dollar, Singapore dollar, Zweedse kroon,\n        Deense Kroon, Poolse zloty, Noorse Kroon,\n        Hongaarse forint, Tsjechische Koruna).\n        De bijgevoegde valuta converter kunt u gebruik [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Het bedrag dat u wenst te doneren"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Geschatte tegenwaarde in"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anonieme donatie"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "U dient dit aan te vinken als u niet wilt dat uw naam en accountnummer voorkomt op\nde lijst van donateurs.<br>Indien niet aangevinkt, wordt uw deelnemers-identiteit als volgt geregistreerd %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Om de donatie aan u toe te wijzen, dient u zich eerst aan te melden met uw gebruikersnaam."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Ga verder"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Donaties worden geaccepteerd d.m.v."
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Download BOINC add-on software"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Het is mogelijk software te downloaden in verschillende categorieën."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Deze programma's worden niet ondersteund door %1 en gebruik ervan is op eigen risico."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Wij geven geen installatie instructies voor deze programma's.\nHet is evengoed mogelijk dat de maker instructies heeft toegevoegd bij het programma zelf. \nAls dit niet het geval is raden we aan contact op te nemen met de maker."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instructies voor het installeren en uitvoeren van BOINC vind je %1hier%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Deze lijst wordt centraal onderhouden door %1de BOINC website%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Verander het e-mail adres van je account"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Nieuw e-mail adres '%1' is ongeldig."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Het nieuwe e-mail adres is gelijk aan het oude. Er is niets veranderd."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Er bestaat al een account met dit e-mail adres"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Wachtwoord ongeldig."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Het e-mail adres van je account is nu %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "A.u.b. dit %1e-mail adres controleren%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Updaten van database mislukt.  Probeer het later a.u.b. opnieuw."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Verander e-mail adres"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Verander het e-mail adres van je account"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nieuw e-mail adres"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Moet een geldig email adres zijn in de vorm 'naam at domein'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Geen wachtwoord?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Herstellen bevestigen"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Deze opdracht maakt alle wijzigingen die u in uw voorkeursinstellingen hebt aangebracht, ongedaan. Dit kunt u annuleren door In uw browser op de knop 'vorige pagina' te klikken."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Voorkeursinstellingen opnieuw configureren"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Fout: niet de goede indeling, alleen JPEG en PNG worden ondersteund."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Je onderschrift is te lang, gebruik a.u.b. niet meer dan 250 karakters."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Niet zo'n gebruiker:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Hoe wilt u op hoogte worden gesteld van nieuwe persoonlijke berichten, verzoeken van vrienden, berichten in persoonlijke nieuwsgroepen en andere notificaties?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Via de web-pagina van mijn persoonlijke account (niet per e-mail)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Direct, per e-mail"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "In een enkele dagelijkse e-mail"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "gebruikersnaam op het forum"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Gebruikersafbeelding (avatar)"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Een afbeelding die u als deelnemer op de prikborden symboliseert."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Bestandsextensie: JPG of PNG. Omvang: maximaal 4 KB, 100x100 pixels"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Geen gebruikersafbeelding toevoegen"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Gebruik een door %1 verstrekte avatar (wereldwijd herkende avatar)"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Gebruik deze geüploade avatar:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Avatar-voorbeeldweergave"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Zo wordt uw avatar weergegeven"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Onderschrift bij forumberichten"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Ga eens kijken bij de %1diverse aanbieders%2\n<br> van gratis dynamische 'onderschrift-afbeeldingen'\n<br> voor de weergave van uw huidige puntentotaal, de nieuwste projectinfo, enz."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Onderschrift standaard bijvoegen"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Voorbeeldweergave van onderschrift"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "Zo wordt uw onderschrift bij de forums weergegeven"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Berichtenweergave"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Weergaveopties"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Avatars verbergen"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Onderschriften verbergen"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Afbeeldingen weergeven als internetkoppeling"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Koppelingen openen in een nieuw browservenster/tabblad"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Specifieke gebruikers markeren"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Toon deze hoeveelheid berichten per pagina"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Sorteeropties"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Onderwerpen:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Reacties:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Nieuwste reacties automatisch als eerste weergeven"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Plaats vastgepinde berichten niet naar boven"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Berichtenfilter-opties"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Gefilterde gebruikers"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Negeer forum en privé -berichten van deze gebruiker(s)."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "Gebruikers ID (Bijvoorbeeld: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Gebruiker toevoegen aan filter"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Klik hier om de voorkeuren bij te werken"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Invoer wissen"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Of klik hier om de instellingen naar de standaardwaarde te herstellen"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Vanwege een probleem in de database is het bijwerken mislukt. Probeer het later a.u.b. opnieuw."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Verander wachtwoord"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Je wachtwoord is veranderd."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Nieuw wachtwoord"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Nieuw wachtwoord, opnieuw"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML tags zijn niet in uw naam toegestaan."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "U moet een naam voor uw account invoeren."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Kon de gebruikersinformatie niet updaten."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Bewerk account informatie"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Naam %1 echte naam of nickname%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 van uw webpagina; optioneel%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Postcode %1 Optioneel%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Update informatie"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Server status"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "Een taakspecifieke <b>statusindicator</b> geeft aan of de taak naar een computer is verstuurd, en de verwerking ervan al dan niet is voltooid. Geldige waarden zijn:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "De taak kan nog niet worden verstuurd (bv. omdat de invoerbestanden niet beschikbaar zijn)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "De taak is klaar om verzonden te worden, maar is nog niet verzonden."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "In uitvoering"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "De taak werd verstuurd; afwachtend op voltooiing."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "De taak is naar een computer verstuurd; ofwel de verwerkingstijd is overschreden of de verwerking is voltooid."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Uitkomst"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "De <b>uitslag</b> is bekend als de serverstatus de indicatie <b>over (beëindigd)</b> aangeeft. Geldige waarden zijn:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "De taak is naar een computer verstuurd, maar de verwerking ervan is nog niet voltooid en de uitslag nog niet bekend."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Een computer heeft de taak voltooid en deze succesvol verzonden."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "De server kon de taak niet naar een computer versturen (mogelijk omdat de doelcomputer niet over de benodigde capaciteit beschikt)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Client fout"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "De taak is naar een computer verzonden en er heeft zich een fout voorgedaan."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "De taak werd naar een computer verzonden, maar er werd geen antwoord ontvangen binnen de gestelde tijdslimiet."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "De taak werd niet naar een computer gestuurd, omdat er genoeg andere taken werden voltooid voor deze werkeenheid."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "De taak werd gerapporteerd maar kon niet gevalideerd worden. Dit gebeurt meestal doordat de output uitvoerbestanden verloren zijn gegaan op de server."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Client status"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Een clientspecifieke <b>statusindicator</b> geeft de fase aan waarin een fout in de verwerking optrad."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "De computer heeft de verwerking nog niet voltooid."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "De taakverwerking is geslaagd."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "De computer kon de applicatie of invoerbestanden niet downloaden."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Er is een fout opgetreden tijdens de verwerking."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "De computer kon de uitvoerbestanden niet uploaden."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Rapportage tijd en deadline"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "De verwerkingsstatus in het veld <b>rapportagetijd of tijdslimiet</b> is afhankelijk van de terugmelding van de taak:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Reeds gerapporteerd"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "De datum/tijd van rapportage"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Uitslag nog niet bekend, tijdslimiet aanstaande"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Tijdslimiet wordt weergegeven in groen."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Uitslag nog niet bekend, tijdslimiet verstreken"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Tijdslimiet wordt weergegeven in rood."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Onbekend veld"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Email voorbeeld"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Uw e-mail wordt als volgt weergegeven:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Verstuur e-mail"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Klik in uw browser op de knop 'vorige pagina' om terug te keren naar het berichtenformulier"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Bezig met versturen van e-mailberichten"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "e-mail succesvol verzonden naar %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "e-mail versturen naar %1: %2 is mislukt"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Bedankt dat u uw vrienden hebt verteld over %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "U hebt geen namen en/of e-mailadressen van uw vrienden ingevuld: ga %1terug naar het formulier%2 en vul deze in."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Het project heeft geen e-mail aangemaakt - neem a.u.b. contact op met een admin"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Vertel je vrienden over %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "U helpt ons door uw vrienden, familieleden en collega's te vertellen over %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Op dit formulier vult u de namen en e-mailadressen in van de mensen die wellicht geïnteresseerd zijn in %1. Wij sturen hen dan namens u een e-mailbericht en - indien u dat wenst- kunt u een persoonlijk bericht bijvoegen."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Jouw naam:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Jouw e-mail adres:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Naam van vriend:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "E-mail adres van vriend:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Toegevoegd bericht (optioneel)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Verzenden"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "U bent niet gemachtigd om deelnemers uit te sluiten."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Uitsluitingsvoorstel"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Geen gebruiker met dit ID gevonden."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "Deelnemer is reeds uitgesloten"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Wilt u %1 echt uitsluiten?<br/>Het is %1 dan niet toegestaan om gedurende de geselecteerde periode berichten te plaatsen.<br/>Dit is alleen acceptabel indien %1 zich herhaaldelijk onbehoorlijk heeft gedragen."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Kies een van de redenen, of geef zelf een uitgebreidere motivatie waarom de deelnemer moet worden uitgesloten."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Categorie"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Obsceen"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Haat e-mail"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Gebruikers Verzoek"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Reden"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Verstuurd indien niet leeg"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Doorgaan met uitsluitingsvoorstel"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "U dient een actie te specificeren..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Dit bericht kan niet meer worden bewerkt.<br/>Berichten kunnen nog worden bewerkt binnen %1 minuten nadat deze zijn aangemaakt."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "U bent niet gemachtigd om dit bericht te bewerken."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Bericht aanpassen"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Titel"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Onderschrift invoegen bij deze post"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Verborgen voor jou"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Team forum van %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Nieuw onderwerp"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Een onderwerp toevoegen aan dit forum"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Dit forum is ook verkrijgbaar als %1RSS feed%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Dit onderwerp is verborgen"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Dit onderwerp is gemarkeerd en vergrendeld en u hebt het nog niet gelezen"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "vastgezet/afgesloten/ongelezen"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Dit onderwerp is gemarkeerd en u hebt het nog niet gelezen"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "vastgezet/ongelezen"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "U hebt dit onderwerp nog niet gelezen en het is vergrendeld"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "ongelezen/afgesloten"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "U hebt dit onderwerp nog niet gelezen"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Dit onderwerp is gemarkeerd en vergrendeld"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "vastgezet/afgesloten"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Dit onderwerp is vastgezet"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "vastgezet"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Dit onderwerp is afgesloten"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "afgesloten"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "U hebt dit onderwerp gelezen"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "gelezen"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Vraag en antwoord"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Gebruik Skype om in diverse talen een rechtreeks gesprek te voeren met een vrijwilliger. Klik op %1BOINC Online Help%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Onderwerp"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Vragen"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Discussie onder de leden van %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Forum"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Als je een vraag of probleem hebt, gebruik dan a.u.b. de %1Vraag & Antwoord%2 sectie van het forum."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Geabonneerde onderwerpen"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Bericht aanpasen"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Bericht verbergen"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Commerciële spam"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Dubbel bericht"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Bericht verplaatsen"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID van doel onderwerp:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Deelnemer uitsluiten"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Duur van uitsluiting"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 uur"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 dag"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 week"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 weken"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 maand"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Altijd"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Optionele eigen motivatie %1 Deze wordt bijgevoegd in het e-mailbericht aan de betreffende deelnemer.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "U bent niet gemachtigd om hier als moderator op te treden."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Kan niet verplaatst worden naar ander categorie type"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Kan niet verplaatst worden naar andere categorie"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Niet geautoriseerd om gebruikers uit te sluiten"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Uitsluiting"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "Gebruiker %1 is uitgesloten."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Actie mislukt: mogelijk database probleem"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "niet geautoriseerd"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Onderwerp '%1' aanpassen"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Selecteer een reden categorie, of omschrijf de reden voor verbergen of sluiten van het onderwerp; klik daarna op OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Huidig forum"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Doel forum"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Nieuwe titel:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Uitsluitend projectadministrators mogen hier een onderwerp aanmaken. U kunt echter wel op een onderwerp reageren."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Je reactie wordt gezien als spam door het Akismet anti-spam systeem. Pas a.u.b. je tekst aan en probeer opnieuw."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Start nieuw onderwerp"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Start een nieuw onderwerp"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Vergeet niet een titel toe te voegen"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Dit item weergeven op het berichten-tabblad van de BOINC Manager"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Dit geldt uitsluitend voor items die voor alle vrijwilligers van belang kunnen zijn."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Beoordeling nu niet mogelijk"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Deze optie is tijdelijk uit gezet door het project"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Uw gemiddelde of huidige puntentotaal is onvoldoende om een bericht te beoordelen."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "U hebt dit bericht reeds beoordeeld."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Terug naar onderwerp"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Bijdrage geregistreerd"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Uw bijdrage is geregistreerd. Hartelijk dank voor uw hulp."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Stem Vastgelegd"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Uw beoordeling is geregistreerd. Hartelijk dank voor uw bijdrage."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Probleem Bij Indienen Stem"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Je reactie wordt gezien als spam door het Akismet anti-spam systeem. Pas a.u.b. je tekst aan en probeer opnieuw."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Plaats bericht"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Bericht:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "antwoord op %1Bericht ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Verstuur antwoord"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Onderschrift invoegen bij deze post"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Uw gemiddelde of huidige puntentotaal is onvoldoende om een bericht te rapporteren."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Rapportage geregistreerd"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Uw rapportage is geregistreerd. Hartelijk dank voor uw bijdrage."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Een moderator zal na beoordeling van uw rapportage een beslissing nemen - in afwachting daarvan vragen wij u enig geduld te hebben"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Bericht rapporteren"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Voordat u dit bericht definitief rapporteert, hebt u de mogelijkheid om het te beoordelen via het +/- systeem. Indien voldoende deelnemers het bericht negatief beoordelen, zal het uiteindelijk worden verborgen.<br />Dit beoordelingssysteem bevindt zich aan het einde van het bericht."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Bericht rapporteren"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Geef aan waarom u dit bericht kwetsend vindt: %1U dient het probleem duidelijk te omschrijven zodat iemand die\nhet bericht nog niet heeft gelezen, snel weet waar het om gaat.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Rapportage niet geregistreerd"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Uw rapportage kon niet worden geregistreerd. Probeer het later nog eens alstublieft."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Indien dit geen eenmalige foutmelding is, wordt u verzocht dat bij de projectontwikkelaars te melden."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS feed"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Dit forum is ook verkrijgbaar als RSS feed."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Opties:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Neem alleen berichten van gebruikers ID %1 (standaard: alle gebruikers)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Neem alleen berichten van de afgelopen %1 dagen (standaard: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Alleen discussies: %1 (Inclusief alleen het eerste bericht van elk onderwerp)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Doorzoek forum"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Zoekopdracht"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Zoek op trefwoorden:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Berichten die alle opgegeven woorden bevatten, worden weergegeven"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Bijvoorbeeld: \"screensaver loopt vast\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Zoek op ID van auteur:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Alleen berichten van deze auteur worden weergegeven"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Bijvoorbeeld: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Zoek opties"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Zoek limiet"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Zoek maximaal deze hoeveelheid dagen terug"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 maanden"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 jaar"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "geen limiet"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Alleen berichten weergeven van dit forum"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Sorteren op"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Zoeken starten"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Forum zoek resultaten"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Treffers overeenkomstig uw zoekopdracht in onderwerptitels:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Treffers overeenkomstig uw zoekopdracht in berichten:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Helaas geen resultaten gevonden die aan uw zoekopdracht voldoen. U kunt het aantal treffers vergroten door minder (specifieke) woorden te gebruiken."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "U kunt dezelfde %1zoekopdracht ook laten uitvoeren door Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Nieuwe zoekopdracht uitvoeren"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Aanmelding geslaagd"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "U bent nu aangemeld bij %1. U wordt op de hoogte gesteld van nieuwe berichten."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Aanmelding mislukt"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Aanmelden bij %1 is op dit moment niet mogelijk. Probeer het later nog eens..."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Uitschrijven geslaagd"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "U bent niet meer aangemeld bij %1. U ontvangt geen mededelingen meer over dit onderwerp."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Uitschrijven mislukt"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Uitschrijven bij %1 is op dit moment niet mogelijk. Probeer het later nog eens..."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Onbekende aanmeldingshandeling"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Dit forum is verborgen voor jou."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Dit onderwerp is verborgen door de moderators."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "Mijn vraag is beantwoord"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Als je vraag naar behoren is beantwoord, klik dan hier"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Ik heb deze vraag ook"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Een bericht toevoegen aan dit onderwerp"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Abonnement opheffen"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Je bent geabonneerd op dit onderwerp.  Klik hier om dit op te heffen."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Abonneren"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Klik hier om een email te ontvangen als er een nieuw bericht is geplaatst"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Dit onderwerp zichtbaar maken"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Dit onderwerp verbergen"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Los maken"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Dit onderwerp los maken"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Vast zetten"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Zet deze draad altijd bovenaan het forum"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Vergrendeling opheffen"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Sta nieuwe berichten in deze draad toe"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Vergrendelen"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Sta nieuwe berichten in deze draad niet toe"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Verplaats dit onderwerp naar een ander forum"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Titel aanpassen"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Titel van onderwerp aanpassen"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Verwijder draad permanent"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Exporteren als mededeling"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Niet exporteren"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Dit nieuws artikel niet exporteren als mededeling"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Sorteren"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Onderwerpstatus bijgewerkt"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "De status is bijgewerkt."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Berichten door %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Is al een vriend(in)"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Je hebt een vriendschap aangevraagd met %1 op %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Dit verzoek is nog in behandeling."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 accepteert geen verzoeken tot vriendschap van jou"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Je kan geen vriendschap met jezelf aangaan"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Voeg toe als vriend(in)"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Je hebt %1 om een vriendschap gevraagd. We versturen een bericht naar %1 om je verzoek te bevestigen."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Voeg eventueel een bericht toe:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Verzoek tot vriendschap verzonden"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "We hebben %1 een bericht m.b.t. jouw verzoek verzonden."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Log a.u.b. in als %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "U dient zich aan te melden als %1 om het verzoek van deze vriend te kunnen lezen"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Verzoek tot vriendschap"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 verzoekt toegevoegd te worden als vriend."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 zegt: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Accepteer vriendschap"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Klik accepteer als %1 een vriend(in) is"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Afwijzen"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Klik afwijzen als %1 geen vriend(in) is"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Vriendschap bevestigd"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "De vriendschap met %1 is bevestigd."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Vriendschap afgewezen"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "De vriendschap met %1 is afgewezen"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Bericht niet gevonden"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Vriend(in) heeft bevestigd"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "Je hebt nu een vriendschap met %1."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Beëindig vriendschap?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Weet je zeker dat je de vriendschap met %1 wilt beëindigen?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Vrienden blijven"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Vriendschap beëindigd"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "De vriendschap met %1 is beëindigd."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Als u het e-mailadres van uw account weet, en als u daar e-mail kunt ontvangen:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Vul dan hieronder het e-mailadres in en klik op OK. Vervolgens ontvangt u per e-mail de instructies om uw wachtwoord opnieuw in te stellen."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Als u het e-mailadres van uw account bent vergeten, of als u daar geen e-mail kunt ontvangen:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Om met deze gegevens toch toegang te krijgen tot uw BOINC-account, gaat u als volgt te werk:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Ga naar de data map van BOINC (de locatie staat beschreven in de opstart berichten)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Zoek het betreffende projectbestand met uw accountgegevens, genaamd <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Open het bestand met een tekstverwerker, bv. met Kladblok. U ziet nu ongeveer het volgende"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Selecteer en kopieer de tekenreeks tussen %1 en %2 (%3 in bovenstaand voorbeeld)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Plak deze tekenreeks in het onderstaande veld en klik op OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "U wordt nu aangemeld bij uw account; wijzig de betreffende e-mail- en wachtwoordgegevens."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Aanmelden met authentificatie"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Account gegevens vergeten?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Geen GPU taken gerapporteerd"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Top GPU modellen"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "De volgende lijsten tonen de meest productieve GPU modellen op verschillende platformen. De relatieve snelheden, gemeten door de gemiddelde verstreken tijd van taken, worden weergegeven tussen haakjes."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Welkom bij %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Bekijk en verander je account voorkeuren met onderstaande links."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Indien nodig kunt u hier de %1BOINC cliënt software downloaden%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Mijn account"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anoniem platform, app ontbreekt"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "Anoniem platform"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "App versie ontbreekt"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "App ontbreekt"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Platform ontbreekt"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Aantal taken voltooid"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Max. aantal taken per dag"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Aantal taken vandaag"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Reeks taken met een geldig resultaat"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Gemiddelde verwerkingssnelheid"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Applicatie details voor host %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Wij hebben geen gegevens over deze computer."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "U kunt de betreffende gegevens niet verwijderen omdat onze databank nog werk bevat voor deze computer. U dient enkele dagen te wachten totdat het werk voor deze computer uit de projectspecifieke databank is verwijderd."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Gegevens over computer verwijderen"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Gegevens verwijderd."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Terug naar lijst met uw computers"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Gegevens over computers samenvoegen"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Computers samenvoegen"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Soms krijgt een computer per ongeluk meer dan één identiteit door BOINC toegewezen. U kunt dit verhelpen door vorige identiteiten met de laatste samen te voegen."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Geen hostcomputers die in aanmerking komen voor samenvoeging met deze computer."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Toon details"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Controleer de computers die identiek zijn aan %1 (aangemaakt %2, computer ID %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "naam"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "aangemaakt"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "computer ID"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "geen hostnaam"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "hosts samenvoegen"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Computerspecifiek puntentotaal wordt bijgewerkt"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Computer punten bijgewerkt"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "ID hostcomputer bijgewerkt"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "geen"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Deze hostcomputer is nu bekend als %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Deze wijziging wordt van kracht bij de volgende communicatiesessie van de hostcomputer met dit project."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Terug naar host pagina"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Computers van %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Computers verborgen"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Deze gebruiker heeft er voor gekozen zijn computers te verbergen."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Mijn computers"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Toegestane HTML codes"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "De volgende HTML tags zijn toegestaan voor team beschrijvingen:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "vet"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "cursief"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlink"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paragraaf"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "regeleinde"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "opgemaakt"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "afbeelding; hoogte mag niet meer zijn dan 450 pixels. Voeg alstublieft geen koppelingen naar afbeeldingen toe zonder toestemming van de website waar de afbeelding zich bevindt."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "U kunt ook de ampersand gebruiken voor speciale tekens."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Lees de gebruiksovereenkomst"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Voer %1 alleen uit op toegestane computers"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Voer %1 alleen uit op computers die je eigendom zijn, of waar de eigenaar ervan je toestemming voor heeft gegeven. Sommige scholen en bedrijven hebben regels opgesteld waarin het gebruik van %1 niet toegestaan is."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Hoe %1 je computer gebruikt"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Wanneer je %1 gebruikt op je computer zal deze een gedeelte gebruiken van de processortijd, het geheugen, de harde schijf en de bandbreedte van het netwerk. Gebruik hiervan is in te stellen met %1."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "De uitgevoerde taken worden gebruikt om de doelstellingen te halen van %1, zoals beschreven op de website. De gebruikte applicatie kan wisselen."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Privacy beleid"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Je account bij %1 wordt bepaald door je gekozen naam. Deze naam kan getoond worden op de website van %1 samen met een opsomming van je computer(s) en het gedane werk voor %1. Als je anoniem wilt blijven kies dan een afwijkende naam voor je account."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Wanneer je deelneemt aan %1, wordt er informatie over je computer (type processor, hoeveelheid geheugen, etc.) opgeslagen door %1 en gebruikt om te kunnen bepalen welk soort werk er aan je computer wordt verzonden. Deze informatie wordt ook getoond op de website van %1. Je werkelijke locatie (b.v. je IP-adres) blijft verborgen."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Om aan %1 te kunnen deelnemen, moet je een e-mailadres opgeven waar je email op kan ontvangen. Dit adres zal niet op de website van %1 worden getoond of aan derden worden doorgegeven. %1 kan je informatie toezenden, maar dit kan je ook in je voorkeuren uitzetten."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Privé berichten die verzonden zijn op de website van %1 zijn alleen zichtbaar voor de afzender en ontvanger.  %1 bekijkt en veranderd de inhoud niet.  Als je een ongewenst bericht ontvangt van een andere %1 gebruiker, is het mogelijk deze toe te voegen aan een %2berichten filter%3.  Dit blokkeert zowel privé als forum berichten van deze gebruiker."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Indien je onze website gebruikt moet je je houden aan de %2richtlijnen voor berichten%3.  Geplaatste berichten op het forum van %1 zijn zichtbaar voor leden en niet-leden.  Door hier een bericht te plaatsen geef je iedereen de volledige rechten om ze te bekijken en te kopiëren."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Is het veilig om %1 uit te voeren?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Elke keer als je een programma via het internet download neem je een risico; het programma kan fatale fouten hebben, of de download server is niet veilig genoeg. %1 heeft zijn best gedaan om deze risico's tot een minimum te beperken. Ons programma is uitvoerig getest. Onze servers zijn zo veel als mogelijk is beveiligd tegen misbruik. Om de integriteit van de programma's te garanderen zijn ze digitaal ondertekend op een computer die niet met het internet is verbonden."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "De door %1 gebruikte applicaties kunnen een verhoging opleveren van de temperatuur van de processor. Als dit aan de orde is, sluit %1 af en gebruik een %2programma%3 om het gebruik van de processor te regelen."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 is ontwikkeld door %2. BOINC is ontwikkeld door de University of California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Aansprakelijkheid"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 en %2 aanvaarden geen aansprakelijkheid voor schade aangebracht aan je computer of welke schade dan ook voortgekomen door deelname aan %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Andere BOINC projecten"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Andere projecten gebruiken, net als %1, BOINC als platform. Het is het overwegen waard om andere projecten toe te voegen. Mocht %1 dan geen werk hebben, blijft je computer bezig met nuttig werk."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Deze projecten zijn niet verbonden met %1, mede daarom kunnen we geen garanties geven over hun doelstellingen en de mate van veiligheid. Deelname is daarom op eigen risico."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Taal selectie"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Deze website is beschikbaar in verschillende talen. De geselecteerde taal is nu: %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Normaal wordt de taal geselecteerd op basis van de taal instellingen van je browser, nu ingesteld: %1  Als volgt aan te passen bij:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Extra/Opties/Inhoud"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Extra/Internet Opties/Algemeen"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Ook is het mogelijk een taal te selecteren door op een van de links te klikken.  Er wordt dan een cookie naar je browser verstuurd indien deze dit accepteert."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Taal (klik om te selecteren)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Gebruik taal instelling van browser"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Vertalingen worden door vrijwilligers gemaakt.  Indien jouw taal niet voorkomt kan je %1een nieuwe vertaling aanmaken%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "of %1maak een account%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Verwerken van %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Computer %1 en %2 zijn samengevoegd"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Terug naar lijst met uw computers"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Deze actie voegt computers samen op basis van de domeinnaam.\n        <p>\n        Voor elke domeinnaam, worden alle oude computers met dezelfde\n        naam als de nieuwste computer met deze naam samengevoegd.\n        Indien een computer hier niet aan voldoet, gebeurd dit niet.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Ga verder en doe dit"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Terug naar lijst met computers"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nOm de discussie en berichtenstroom te maximaliseren,\nwordt ons forum gemodereerd.\nBerichten zijn onderworpen aan de volgende regels en richtlijnen:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nModerators mogen berichten verwijderen die deze regels overtreden.\nDe auteurs van verwijderde berichten worden per e-mail ingelicht.\nRegelmatige overtreders kunnen tijdelijk het recht om berichten te plaatsen\nverliezen (deze straf wordt alleen opgelegd door project administrators).\nAanvullende vormen van ongepast gedrag (berichten \"coderen\" om\nIP adressen af te vangen, overmatige aanmaak van onderwerpen om\nde forums te vervuilen, etc.), kan ook, ondanks niet vermel [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Openstaande punten"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Resultaat ID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "Werkeenheid ID"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "Host ID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Geclaimde punten"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Openstaande punten: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Blokkeer berichten van deze gebruiker"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Blokkeer gebruiker"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Je bericht is verzonden."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Geen privé berichten aanwezig."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Afzender en datum"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Geef antwoord op dit bericht"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Verwijder dit bericht"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Alles selecteren"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Selecties weghalen"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Verwijder geselecteerde berichten"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Afzender"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Datum"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Je moet overal iets invullen om het bericht te kunnen versturen"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Je reactie wordt gezien als spam\n                door het Akismet anti-spam systeem.\n                Pas tekst aan en probeer opnieuw."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Kan gebruiker niet vinden met id %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Kan gebruiker niet vinden met gebruikersnaam %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 is geen unieke gebruikersnaam; gebruik je gebruikers-ID"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Gebruiker %1 (ID: %2) accepteert geen privé berichten van u."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Gebruiker niet gevonden"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Echt %1 blokkeren?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Weet u zeker dat u gebruiker %1 wilt blokkeren om u privé berichten te sturen?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Houdt u er rekening mee dat u slechts een beperkt aantal gebruikers kan blokkeren."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Zodra de gebruiker is geblokkeerd kunt u hem deblokkering op bij forum voorkeuren."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Nee, annuleren"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "gebruiker niet gevonden"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Gebruiker %1 geblokkeerd"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Gebruiker %1 is geblokkeerd voor het sturen van privé berichten."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Om te deblokkeren, bezoek %1de forum voorkeuren%"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Onbekende handeling"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Uw voorkeursinstellingen zijn bijgewerkt, en\n          worden van kracht zodra uw computer communiceert met %1\n          of als u de %2Update%3 functie van de BOINC Manager gebruikt."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Uw voorkeursinstellingen zijn bijgewerkt naar de standaard instellingen en\n          worden van kracht zodra uw computer communiceert met %1\n          of als u de %2Update%3 functie van de BOINC Manager gebruikt."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 voor %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Terug naar voorkeuren"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Bevestig verwijderen van voorkeuren"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Weet je zeker dat je de aparte %1 voorkeuren voor %2 wilt verwijderen?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Verwijder voorkeuren"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Annuleer"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profielen"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Profielen%2 geven de mogelijkheid achtergronden en meningen te delen met de %3 gemeenschap."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Doorzoek de diversiteit van je mede vrijwilligers en laat ze meegenieten van je eigen mening."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Als je dit nog niet hebt gedaan, kan je %1je eigen profiel aanmaken%2, zodat anderen dit kunnen zien!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Gebruiker van de dag"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Gebruikers profielen"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Bekijk de %1Gebruikers Foto Galerij%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Doerzoek profielen %1op land%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Doorzoek profielen; %1willekeurig%2, %3willekeurig met foto%2 of %4willekeurig zonder foto%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Profielen alfabetisch gerangschikt:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Doorzoek profiel teksten"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Profiel niet gevonden"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Er zijn geen passende profielen aangetroffen."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Ongeldig stem type:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Stem Vastgelegd"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Dank je wel"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Je aanbeveling is vastgelegd."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Je stem tot afwijzing van dit profiel is vastgelegd."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Terug gaan naar profiel."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Profielen die '%1' bevatten"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Gebruikersnaam"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Verbonden project"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Huidig puntentotaal"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Geen treffers in profielen met '%1'"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Niet zulk een taak:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Deze optie is tijdelijk uit gezet"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Computer met ID %1 niet gevonden"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Geen toegang"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Gebruikers of computer ID niet aanwezig"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Geen taken om weer te geven"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Gebruiker van de dag"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Niet actief"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Actief"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Uitgezet"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Project status"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Server status"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Programma"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Host computer"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Database schema versie:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Berekenings status"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Gebruikers"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Taken per applicatie"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Uitvoertijd van de laatste 100 taken in uren: gemiddelde, min, max"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Gebruikers in de laatste 24 uur"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Computer %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistieken en ranglijsten"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Statistieken voor %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Top deelnemers"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Top teams"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Top computers"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU modellen"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU modellen"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Meer gedetailleerde statistieken voor %1 en ander op BOINC gebaseerde projecten zijn op diverse websites beschikbaar:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Het is ook mogelijk je huidige statistieken te ontvangen in de vorm van een \"afbeelding voor handtekeningen\":"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Als toevoeging kan je ook je individuele statistieken krijgen van alle BOINC projecten vanaf diverse sites; zoals op je %1persoonlijke pagina%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Teams"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 deelnemers mogen %2teams%3 vormen."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Je mag maar aan één team tegelijk deelnemen. Je kan op elk moment jezelf toevoegen of het team verlaten."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Elk team heeft een %1oprichter%2 die:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "toegang heeft tot de email adressen van de leden"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "de naam en beschrijving van het team kan veranderen"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "administrators mag toevoegen of verwijderen"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "leden kan verwijderen uit het team"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "het team kan ontbinden als het geen leden heeft"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Om je bij een team te voegen, ga je naar de team pagina en klik je op %1Lid worden van dit team%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Een team zoeken"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Alle teams"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 teams"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Start nieuw team"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Als je geen team vinden kan die voldoet aan jou eisen, kan je ook je eigen %1team maken%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Ontneem dit teamlid zijn/haar administrator-status"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Een teamlid als administrator toevoegen of verwijderen"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Het is mogelijk teamleden te verkiezen als team-administrator. Een team-administrator mag:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Team gegevens aanpassen (naam, URL, beschrijving, land)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Toon voor dit team het verloop van de aan en afmeld gegevens"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Beheer het team forum, indien aanwezig (Admins krijgen een email notificatie over het beheren van evenementen en het lezen van X rapporten)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Team administrator beperkingen:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "De team oprichter aanpassen is niet mogelijk"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Leden verwijderen niet toegestaan"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Als een team administrator het team verlaat, verliest deze de administrator rechten."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Wij raden aan dat de keuze van een betrouwbare team administrator weloverwogen wordt genomen."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Er zijn momenteel geen team administrators"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Huidige team administrators"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Werd team administrator op"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Team administrator toevoegen"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "E-mail adres van teamlid:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Toevoegen"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "verwijderen van team administrator mislukt"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "Gebruiker is geen lid van het team"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 is al een administrator van %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Administrator toevoegen mislukt"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Team niet gevonden"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "team niet gevonden"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "Gebruiker is geen lid van %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Oprichter van %1 wordt aangepast"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 is nu oprichter van %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Oprichter van %1 wijzigen"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Team lid %1 heeft het oprichterschap van dit team gevraagd op %2, maar heeft het team verlaten, hierdoor wordt zijn verzoek geannuleerd."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Team lid %1 heeft het oprichterschap van dit team aangevraagd. Dit kan zijn omdat u het team heeft verlaten, of lange tijd geen contact hebt gehad met het team."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "verzoek afwijzen"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Al u het verzoek niet voor %1 afwijst, zal %2 de optie krijgen om het oprichterschap van het team op te eissen.<br /><br />\n                  Om het verzoek te accepteren kunt het het oprichterschap overdragen aan %3 middels het onderstaande formulier."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Geen overplaatsings verzoeken in behandeling."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Om oprichterschap van dit team over te dragen naar een ander lid, vinkt u het vakje naast de naam van het lid aan en klikt u hieronder op<strong>Oprichter wijzigen</strong>."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Nieuwe oprichter?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Oprichter wijzigen"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Er zijn geen gebruikers om het team naar te verplaatsen."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Je moet een naam invullen voor je team"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Er bestaat al een team met de naam %1 - kies a.u.b. een andere naam"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Team kon niet worden aangemaakt - probeer het a.u.b. later nogmaals."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Een team aanmaken"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Je bent al lid van %1. Je moet eerst %2dit team verlaten%3 voordat je een nieuw team kan beginnen."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Geen oprichter of administrator"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Team historie voor %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Wanneer"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Gebruiker"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Actie"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Totale punten aantal op het moment van de actie"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "foutief land"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "De naam '%1' wordt al gebruikt door een ander team."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Specificeer teamnaam"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Team bijwerken mislukt - probeer het later a.u.b. opnieuw."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "%1 aanpassen"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Team info bijwerken"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 E-mail lijst"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Ledenlijst van %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Weergeven als platte tekst"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Forum aanmaken"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "het is mogelijk om voor %1 een forum aan te maken."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Alleen teamleden mogen hier berichten in plaatsen."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Inhoud voorbehouden aan teamleden indien gewenst."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "U en uw team administrators hebben moderator rechten."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Een forum voor %1 aanmaken"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "Dit team heeft al een forum"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Team forum"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Minimale tijd tussen de berichten (seconden)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Minimaal punten totaal om te kunnen plaatsen"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Minimaal punten gemiddelde om te kunnen plaatsen"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Indienen"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Verwijder uw team forum."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Forum echt verwijderen?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Weet u zeker dat u uw team forum wilt verwijderen? Alle discussies en berichten worden permanent verwijderd. (U kunt later altijd opnieuw een forum aanmaken)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Ja - forum verwijderen"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Forum verwijderd"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Uw team forum is verwijderd. U kunt nu %1een nieuwe aanmaken%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Team forum bijgewerkt"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Bijwerken gelukt"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Bijwerken mislukt"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "Team heeft geen forum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Je moet lid zijn van een team om deze pagina te bekijken."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Verzoek oprichterschap van %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "De huidige oprichter is per e-mail en privé bericht op de hoogte gesteld van je verzoek.<br /><br />\n                       Als deze oprichter niet binnen 60 dagen reageert word jij automatisch de nieuwe oprichter."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Oprichterschap verzoek is nu niet toegestaan"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Heeft het oprichterschap verkregen van %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Gefeliciteerd, u bent nu de nieuwe oprichter van team %1. Ga naar %2Uw Account pagina%3 om de Team Admin opties te vinden."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Oprichterschap verzoek afwijzen"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "Het oprichterschap verzoek van %1 werd afgewezen."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Er zijn geen aanvragen voor nieuwe oprichters."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "ongedefineerde actie %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Terug naar team pagina"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Je moet een lid van een team om deze pagina te bekijken."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Oprichtersschap verzoeken van %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Je bent nu de oprichter van team %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Je hebt een verzoek gedaan om oprichter te worden van %1 op %2."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "Er zijn 60 dagen verstreken sinds je verzoek, en de huidige oprichter heeft niet gereageerd. Jij kunt nu oprichter worden door hier te klikken:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Oprichterschap aannemen"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "De oprichter is op de hoogte gesteld van uw verzoek. Als hij/zij niet voor %1 reageert, kunt u de status van oprichter toegewezen krijgen."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Indien de oprichter van het team niet actief deelneemt en u de status van oprichter wilt overnemen, klikt u op de onderstaande knop. De huidige oprichter ontvangt uw verzoek tot overname per e-mail en kan dit vervolgens inwilligen of afwijzen. Als de oprichter niet binnen 60 dagen reageert, wordt de status van oprichter aan u toegewezen.<br /><br />\n                       Wilt u een verzoek tot statusovername indienen?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Oprichterschap verzoeken"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Er is al een verzoek gedaan om oprichter te worden door %1 op %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Omdat er in de afgelopen 90 dagen al een verzoek tot overname van de oprichterstatus is ingediend, worden recentere verzoeken niet in behandeling genomen. Probeer het later nog eens alstublieft."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "%1 accepteert geen nieuwe teamleden."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Reeds lid"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Je bent al lid van %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Aansluiten als teamlid mislukt. Probeer het later nog eens alstublieft."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Lid geworden van %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "U bent lid geworden van %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Wordt lid van %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Let op:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Deelnemen aan een team geeft de oprichter toegang tot uw e-mailadres."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Deelnemen aan een team heeft geen invloed op uw account punten."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Word lid van het team"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Zoek Resultaten"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Zoek resultaten voor '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "U hebt toegang tot informatie over de leden en statistieken van dit team."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Meer dan 100 teams voldoen aan uw zoekopdracht. De eerste 100 worden getoond."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Einde van zoekresultaten. %1 Als u het team dat u zoekt niet hebt gevonden, kunt u %2zelf een team oprichten%3."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Team administratie voor %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Team info bijwerken"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Team naam, URL, beschrijving, type, of het land aanpassen"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Ledenlijst:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "tekst"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Bekijk de ledenlijst en e-mail adressen"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Toon verloop van wijzigingen:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Bekijk wanneer er leden zijn bijgekomen en weggegaan"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Reageer op verzoek tot veranderen oprichter."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Indien je niet voor %1 reageert, kan %2 het oprichterschap van dit team aannemen."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Verwijder inactieve of ongewenste leden van dit team"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Oprichterschap overdragen aan een ander lid"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Toevoegen / verwijderen Team Administrators"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Geven de geselecteerde teamleden Team Administrator privileges"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Verwijder team"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Alleen toegestaan als er geen teamleden zijn"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Een team forum aanmaken of beheren"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Om dit team aan te maken bij alle BOINC projecten (huidige en toekomstige), maak je het team aan als een %1BOINC-wide team%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Het wordt Team administrators aangeraden zich aan te sluiten bij, c.q. een bijdrage te leveren aan de Google %1boinc-team-founders%2 groep."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Een team moet leeg zijn om te verwijderen"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Team %1 verwijderd"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limiet overschreden:  Alleen de eerst 1000 leden kunnen worden getoond."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Leden van %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Team verlaten niet mogelijk"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Team bestaat niet of je bent er geen lid van."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Verlaat %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Let op voordat je een team verlaat:</strong>\n         <ul>\n         <li>Je mag altijd opnieuw lid worden of lid worden van een ander team indien je dit wenst.\n         <li>Een team verlaten heeft op geen enkele wijze gevolgen voor je persoonlijke punten statistiek.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Verlaat Team"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Bebruikers van %1 worden verwijderd"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 is geen lid van %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 is verwijderd"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Leden van %1 verwijderen"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Verwijderen?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Naam (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Er komen geen leden in aanmerking voor verwijdering."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Verwijder gebruikers"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Team naam"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Team resultaten"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Er zijn geen teams gevonden die voldoen aan jouw criteria. Probeer een andere zoekopdracht."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Je kan ook %1een nieuw team aanmaken%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "The following teams match one or more of your search criteria.\n\n            To join a team, click its name to go to the team page,\n\n               then click %1Join this team%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Verander je zoekopdracht"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "U kunt zich aansluiten bij deelnemers met dezelfde interesses, bij landgenoten, collega's of uw schoolteam."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Middels dit formulier kunt u wellicht een keuze maken uit de voor u geschikte teams."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Ik heb nu nog geen belangstelling%2 voor een teamlidmaatschap."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limiet overschreden - Sorry, alleen eerste %1 items"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top computers"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Top %1 teams"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "Er zijn geen %1 teams"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Deelnemer sinds"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "De gebruiker mag geen van de dag is gekozen."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Gebruiker van de Dag voor% 1:% 2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filter"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Gebruikersnaam begint met"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Ieder"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Met een profiel?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Beide"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "Lid van een team?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Sortering"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Oplopende aanmeldings datum"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Oplopend punten gemiddelde"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Oplopend punten totaal"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "zoek waarde moet minimaal 3 karakters lang zijn"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Zoek resultaten voor gebruiker"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Aangemeld"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Zoek opdracht heeft geen gebruikers opgeleverd."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Gebruiker niet gevonden!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Account Data <br/> voor% 1 <br/> Tijd:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Team:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Team Tot Punten:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Team Gem Punten:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Team : Geen"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Controleer BOINC e-mail adres"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Klik a.u.b. op de volgende link om het e-mail adres van je %1 account te controleren:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Controle e-mail verzonden"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Er is een e-mail verzonden naar %1. Een bevestigings link is hierin opgenomen."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Gebruiker niet gevonden."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Ongeldige URL - validatie van e-mailadres mislukt"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Bijwerken database mislukt - probeer het a.u.b. later opnieuw."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "E-mail adres controleren"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Het e-mail adres van je account is met succes gecontroleerd."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Deze gebruiker heeft geen profiel"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profiel: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Account gegevens"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Je kan toegang krijgen tot je account d.m.v. een je e-mail adres en wachtwoord\n    of door gebruik te maken van een 'account key'.\n    Jouw account key is:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Deze key kan gebruikt worden om:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "in te loggen op je internet account"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "je computer aan je account toe te voegen zonder gebruik van de BOINC Manager.\n       Om dit te doen installeer je BOINC,\n       maak je een bestand met de naam %1 in de\n       BOINC data map en vul je het volgende in:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Zwakke account key"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "Een 'zwakke account key' kan worden gebruikt om computers aan je account\n    toe te voegen met bovenstaande methode, maar kan niet worden gebruikt om in te loggen\n    op je account. Gebruik alleen je zwakke account key om vertrouwde\n    computers toe te voegen.\n    Jouw zwakke account key is:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Zodra je je wachtwoord wijzigt veranderd ook je zwakke account key en wordt de vorige ongeldig."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "taak niet gevonden"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Taak %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "applicatie"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "meest overeenkomstig resultaat"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "toegekende punten"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Taken in uitvoering"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "onderdrukt in afwachting van resultaat"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "minimum quorum"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "eerste betrouwbare kopie"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "max # van foute/totale/succesvolle taken"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "fouten"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validiteitscontrole"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "In behandeling"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Hoofd pagina"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Copyright"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Gegenereerd"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Je persoonlijke achtergrond."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Vertel ons over jezelf. Vertel bijvoorbeeld waar je vandaan komt, je leeftijd, beroep, hobbies of andere zaken over jezelf."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Jouw opinie over %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Vertel ons jouw gedachten over %1<ol>\n    <li>Waarom draai je %1?\n    <li>Wat zijn jouw visies op het project?\n    <li>Heb je suggesties?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Kleuren schema voor grafische weergave"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maximum CPU gebruik voor grafische weergave %10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Alleen geselecteerde applicaties uitvoeren"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Alleen taken voor bepaalde applicaties. Nuttig om bijzondere aandacht te besteden aan bepaalde applicaties, of om ze uit te sluiten."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Andere applicaties accepteren als er geen werk voor de geselecteerde applicaties is?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Gebruik snellere niet-grafische applicaties indien beschikbaar?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(alle applicaties)"
diff --git a/locale/nl/BOINC-Setup.mo b/locale/nl/BOINC-Setup.mo
index c4bebb1..d152ae6 100644
Binary files a/locale/nl/BOINC-Setup.mo and b/locale/nl/BOINC-Setup.mo differ
diff --git a/locale/nl/BOINC-Setup.po b/locale/nl/BOINC-Setup.po
index 25ec445..001ffc1 100644
--- a/locale/nl/BOINC-Setup.po
+++ b/locale/nl/BOINC-Setup.po
@@ -5,12 +5,12 @@
 # Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-08 23:36+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Dutch (http://www.transifex.com/projects/p/boinc/language/nl/)\n"
+"PO-Revision-Date: 2015-04-20 12:34+0000\n"
+"Last-Translator: Rom Walton\n"
+"Language-Team: Dutch (http://www.transifex.com/boinc/boinc/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/locale/nn/BOINC-Client.mo b/locale/nn/BOINC-Client.mo
deleted file mode 100644
index 1d76b97..0000000
Binary files a/locale/nn/BOINC-Client.mo and /dev/null differ
diff --git a/locale/nn/BOINC-Client.po b/locale/nn/BOINC-Client.po
deleted file mode 100644
index a2425c8..0000000
--- a/locale/nn/BOINC-Client.po
+++ /dev/null
@@ -1,159 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-06-05 10:24-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nn\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-
-#: acct_mgr.cpp:448 acct_mgr.cpp:457
-msgid "Message from account manager"
-msgstr ""
-
-#: client_msgs.cpp:85
-msgid "Message from server"
-msgstr ""
-
-#: client_state.cpp:246
-msgid ""
-"Some tasks need more memory than allowed by your preferences.  Please check "
-"the preferences."
-msgstr ""
-
-#: client_state.cpp:501
-msgid "Couldn't write state file; check directory permissions"
-msgstr ""
-
-#: cs_cmdline.cpp:299
-msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-msgstr ""
-
-#: cs_scheduler.cpp:575
-#, c-format
-msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr ""
-
-#: cs_statefile.cpp:829 ../sched/sched_types.cpp:259
-msgid "Syntax error in app_info.xml"
-msgstr ""
-
-#: cs_statefile.cpp:869
-msgid "File referenced in app_info.xml does not exist: "
-msgstr ""
-
-#: current_version.cpp:90
-msgid "A new version of BOINC is available."
-msgstr ""
-
-#: current_version.cpp:94
-msgid "Download"
-msgstr ""
-
-#: log_flags.cpp:259 log_flags.cpp:436
-msgid "Unexpected text in cc_config.xml"
-msgstr ""
-
-#: log_flags.cpp:410 log_flags.cpp:462
-msgid "Unrecognized tag in cc_config.xml"
-msgstr ""
-
-#: log_flags.cpp:427
-msgid "Missing start tag in cc_config.xml"
-msgstr ""
-
-#: log_flags.cpp:452
-msgid "Error in cc_config.xml options"
-msgstr ""
-
-#: log_flags.cpp:470
-msgid "Missing end tag in cc_config.xml"
-msgstr ""
-
-#: ../sched/handle_request.cpp:307
-msgid "Invalid or missing account key.  To fix, remove and add this project."
-msgstr ""
-
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr ""
-
-#: ../sched/handle_request.cpp:859
-msgid ""
-"The project has changed its security key.  Please remove and add this "
-"project."
-msgstr ""
-
-#: ../sched/handle_request.cpp:943
-msgid "This project doesn't support operating system"
-msgstr ""
-
-#: ../sched/handle_request.cpp:969
-msgid "This project doesn't support CPU type"
-msgstr ""
-
-#: ../sched/handle_request.cpp:993
-msgid ""
-"Your BOINC client software is too old.  Please install the current version."
-msgstr ""
-
-#: ../sched/handle_request.cpp:1259
-msgid "This project doesn't support computers of type"
-msgstr ""
-
-#: ../sched/sched_send.cpp:1092
-msgid "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr ""
-
-#: ../sched/sched_send.cpp:1099
-msgid ""
-"Upgrade to the latest driver to use all of this project's GPU applications"
-msgstr ""
-
-#: ../sched/sched_send.cpp:1118
-msgid ""
-"A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to "
-"the current version"
-msgstr ""
-
-#: ../sched/sched_send.cpp:1146
-#, c-format
-msgid "An %s GPU is required to run tasks for this project"
-msgstr ""
-
-#: ../sched/sched_send.cpp:1262
-msgid "No tasks are available for the applications you have selected."
-msgstr ""
-
-#: ../sched/sched_send.cpp:1288
-msgid "Your computer type is not supported by this project"
-msgstr ""
-
-#: ../sched/sched_send.cpp:1294
-msgid "Newer BOINC version required; please install current version"
-msgstr ""
-
-#: ../sched/sched_send.cpp:1305
-#, c-format
-msgid ""
-"Tasks for %s are available, but your preferences are set to not accept them"
-msgstr ""
-
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr ""
-
-#: ../sched/sched_version.cpp:214
-msgid "Your app_info.xml file doesn't have a usable version of"
-msgstr ""
diff --git a/locale/nn/BOINC-Manager.mo b/locale/nn/BOINC-Manager.mo
deleted file mode 100644
index 8cc2b2a..0000000
Binary files a/locale/nn/BOINC-Manager.mo and /dev/null differ
diff --git a/locale/nn/BOINC-Manager.po b/locale/nn/BOINC-Manager.po
deleted file mode 100644
index 4b76a10..0000000
--- a/locale/nn/BOINC-Manager.po
+++ /dev/null
@@ -1,4077 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-06-18 11:32-0500\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nn\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui/msw\n"
-"X-Poedit-SearchPath-2: clientgui/gtk\n"
-"X-Poedit-SearchPath-3: clientgui/mac\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-
-#: clientgui/AccountInfoPage.cpp:387
-#, c-format
-msgid "Identify your account at %s"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:393
-msgid ""
-"Please enter your account information\n"
-"(to create an account, visit the project's web site)"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:397
-msgid ""
-"This project is not currently accepting new accounts.\n"
-"You can add it only if you already have an account."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:401
-msgid "Are you already running this project?"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:405
-msgid "&No, new user"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:408
-msgid "&Yes, existing user"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:413
-msgid ""
-"We were not able to set up your account information\n"
-"automatically.\n"
-"\n"
-"Please click on the 'Find login information' link\n"
-"below to find out what to put in the email address and\n"
-"password fields."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:416
-msgid "Find login information"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:436 clientgui/AccountInfoPage.cpp:668
-msgid "&Password:"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:443 clientgui/AccountInfoPage.cpp:692
-msgid "Choose a &password:"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:446
-msgid "C&onfirm password:"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:453
-#, c-format
-msgid "Are you already running %s?"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:482
-msgid "&Username:"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:508
-msgid "&Email address:"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:515
-#, c-format
-msgid "minimum length %d"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:522
-msgid "Forgot your password?"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:529
-msgid ""
-"If you have not yet registered with this account manager,\n"
-"please do so before proceeding.  Click on the link below\n"
-"to register or to retrieve a forgotten password."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:532
-msgid "Account manager website"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:574
-msgid "Add project"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:576
-msgid "Update account manager"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:578
-msgid "Use account manager"
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:587
-msgid ""
-"The minimum username length for this project is 1. Please enter a different "
-"username."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:592
-msgid ""
-"The minimum username length for this account manager is 1. Please enter a "
-"different username."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:598
-msgid ""
-"The minimum email address length for this project is 1. Please enter a "
-"different email address."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:603
-msgid ""
-"The minimum email address length for this account manager is 1. Please enter "
-"a different email address."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:616
-#, c-format
-msgid ""
-"The minimum password length for this project is %d. Please enter a different "
-"password."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:622
-#, c-format
-msgid ""
-"The minimum password length for this account manager is %d. Please enter a "
-"different password."
-msgstr ""
-
-#: clientgui/AccountInfoPage.cpp:634
-msgid ""
-"The password and confirmation password do not match. Please type them again."
-msgstr ""
-
-#: clientgui/AccountManagerInfoPage.cpp:248
-msgid "Choose an account manager"
-msgstr ""
-
-#: clientgui/AccountManagerInfoPage.cpp:251
-msgid ""
-"To choose an account manager, click its name or \n"
-"type its URL below."
-msgstr ""
-
-#: clientgui/AccountManagerInfoPage.cpp:254
-msgid "Account Manager &URL:"
-msgstr ""
-
-#: clientgui/AccountManagerProcessingPage.cpp:188
-#: clientgui/AccountManagerPropertiesPage.cpp:194
-#, c-format
-msgid "Communicating with %s."
-msgstr ""
-
-#: clientgui/AccountManagerProcessingPage.cpp:195
-#: clientgui/AccountManagerPropertiesPage.cpp:201
-msgid "Communicating with server."
-msgstr ""
-
-#: clientgui/AccountManagerProcessingPage.cpp:200
-#: clientgui/AccountManagerPropertiesPage.cpp:206
-msgid "Please wait..."
-msgstr ""
-
-#: clientgui/AccountManagerProcessingPage.cpp:327
-msgid "An internal server error has occurred.\n"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:95
-msgid "Connected"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:103
-msgid "Disconnected"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:315
-#, c-format
-msgid "Close the %s window"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:318
-msgid "&Close Window"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:329 clientgui/AdvancedFrame.cpp:336
-#: clientgui/AdvancedFrame.cpp:343
-#, c-format
-msgid "Exit %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:358
-msgid "&Notices\tCtrl+Shift+N"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:359
-msgid "Display notices"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:364
-msgid "&Projects\tCtrl+Shift+P"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:365
-msgid "Display projects"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:370
-msgid "&Tasks\tCtrl+Shift+T"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:371
-msgid "Display tasks"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:376
-msgid "Trans&fers\tCtrl+Shift+X"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:377
-msgid "Display transfers"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:382
-msgid "&Statistics\tCtrl+Shift+S"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:383
-msgid "Display statistics"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:388
-msgid "&Disk usage\tCtrl+Shift+D"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:389
-msgid "Display disk usage"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:396
-msgid "Simple &View...\tCtrl+Shift+V"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:397
-msgid "Display the simple graphical interface."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:411
-msgid "&Add project or account manager..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:412
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:416
-#, c-format
-msgid "&Synchronize with %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:420
-#, c-format
-msgid "Get current settings from %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:430
-msgid "&Add project..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:431
-msgid "Add a project"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:434
-#, c-format
-msgid "S&top using %s..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:440
-msgid "Remove this computer from account manager control."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:445
-msgid "&Options..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:446
-msgid "Configure display options and proxy settings"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:450
-msgid "Computing &preferences..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:451
-msgid "Configure computing preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:459
-msgid "&Run always"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:460
-msgid "Allow work regardless of preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:464
-msgid "Run based on &preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:465
-msgid "Allow work according to preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:469
-msgid "&Suspend"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:470
-msgid "Stop work regardless of preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:495
-msgid "Use GPU always"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:496
-msgid "Allow GPU work regardless of preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:500
-msgid "Use GPU based on preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:501
-msgid "Allow GPU work according to preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:505
-msgid "Suspend GPU"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:506
-msgid "Stop GPU work regardless of preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:530
-msgid "Network activity always available"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:531
-msgid "Allow network activity regardless of preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:535
-msgid "Network activity based on preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:536
-msgid "Allow network activity according to preferences"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:540
-msgid "Network activity suspended"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:541
-msgid "Stop BOINC network activity"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:551
-#, c-format
-msgid "Connect to another computer running %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:556
-msgid "Select computer..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:561
-msgid "Shut down connected client..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:562
-msgid "Shut down the currently connected client"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:566
-msgid "Run CPU &benchmarks"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:567
-msgid "Runs BOINC CPU benchmarks"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:571
-msgid "Do network communication"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:572
-msgid "Do all pending network communication"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:576
-msgid "Read config files"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:577
-msgid "Read configuration info from cc_config.xml and any app_config.xml files"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:581
-msgid "Read local prefs file"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:582
-msgid "Read preferences from global_prefs_override.xml."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:587
-#, c-format
-msgid "Launch another instance of %s..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:591
-#, c-format
-msgid "Launch another %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:601
-msgid "Event Log...\tCtrl+Shift+E"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:602
-msgid "Display diagnostic messages."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:612
-#, c-format
-msgid "%s &help"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:618
-#, c-format
-msgid "Show information about %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:630
-#, c-format
-msgid "&%s help"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:636
-#, c-format
-msgid "Show information about the %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:648
-#, c-format
-msgid "%s &website"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:654
-#, c-format
-msgid "Show information about BOINC and %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:666
-#, c-format
-msgid "&About %s..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:672
-msgid "Licensing and copyright information."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:679
-msgid "&File"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:683
-msgid "&View"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:687
-msgid "&Tools"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:691
-msgid "&Activity"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:695
-msgid "A&dvanced"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:699
-msgid "&Help"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1178
-#, c-format
-msgid "%s - Stop using %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1183
-#, c-format
-msgid ""
-"If you stop using %s,\n"
-"you'll keep all your current projects,\n"
-"but you'll have to manage projects manually.\n"
-"\n"
-"Do you want to stop using %s?"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1381
-#, c-format
-msgid "%s - Shut down the current client..."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1390
-#, c-format
-msgid ""
-"%s will shut down the current client\n"
-"and prompt you for another host to connect to."
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1709
-#, c-format
-msgid "%s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1718
-#, c-format
-msgid "%s has successfully added %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1860
-#, c-format
-msgid "%s - (%s)"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1864
-#, c-format
-msgid "Connecting to %s"
-msgstr ""
-
-#: clientgui/AdvancedFrame.cpp:1867
-#, c-format
-msgid "Connected to %s (%s)"
-msgstr ""
-
-#: clientgui/AlreadyExistsPage.cpp:184
-msgid "Username already in use"
-msgstr ""
-
-#: clientgui/AlreadyExistsPage.cpp:187
-msgid ""
-"An account with that username already exists and has a\n"
-"different password than the one you entered.\n"
-"\n"
-"Please visit the project's web site and follow the instructions there."
-msgstr ""
-
-#: clientgui/AlreadyExistsPage.cpp:191
-msgid "Email address already in use"
-msgstr ""
-
-#: clientgui/AlreadyExistsPage.cpp:194
-msgid ""
-"An account with that email address already exists and has a\n"
-"different password than the one you entered.\n"
-"\n"
-"Please visit the project's web site and follow the instructions there."
-msgstr ""
-
-#: clientgui/AsyncRPC.cpp:1238
-msgid "Communicating with BOINC client.  Please wait ..."
-msgstr ""
-
-#: clientgui/AsyncRPC.cpp:1241
-#, c-format
-msgid "&Quit %s"
-msgstr ""
-
-#: clientgui/AsyncRPC.cpp:1243
-#, c-format
-msgid "E&xit %s"
-msgstr ""
-
-#: clientgui/AsyncRPC.cpp:1247
-#, c-format
-msgid "%s - Communication"
-msgstr ""
-
-#: clientgui/AsyncRPC.cpp:1263
-msgid "Cancel"
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:505
-#, c-format
-msgid "%s - Connection Error"
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:514
-msgid ""
-"You currently are not authorized to manage the client.\n"
-"Please contact your administrator to add you to the 'boinc_users' local user "
-"group."
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:523
-msgid ""
-"Authorization failed connecting to running client.\n"
-"Make sure you start this program in the same directory as the client."
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:525
-msgid "Authorization failed connecting to running client."
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:533
-msgid "The password you have provided is incorrect, please try again."
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:577
-#, c-format
-msgid "%s - Connection Failed"
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:586
-#, c-format
-msgid ""
-"%s is not able to connect to a %s client.\n"
-"Would you like to try to connect again?"
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:622
-#, c-format
-msgid "%s - Daemon Start Failed"
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:632
-#, c-format
-msgid ""
-"%s is not able to start a %s client.\n"
-"Please launch the Control Panel->Administative Tools->Services applet and "
-"start the BOINC service."
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:638
-#, c-format
-msgid ""
-"%s is not able to start a %s client.\n"
-"Please start the daemon and try again."
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:689
-#, c-format
-msgid "%s - Connection Status"
-msgstr ""
-
-#: clientgui/BOINCBaseFrame.cpp:700
-#, c-format
-msgid ""
-"%s is not currently connected to a %s client.\n"
-"Please use the 'Advanced\\Select Computer...' menu option to connect up to a "
-"%s client.\n"
-"To connect up to your local computer please use 'localhost' as the host name."
-msgstr ""
-
-#: clientgui/BOINCBaseView.cpp:774
-msgid "Project web pages"
-msgstr ""
-
-#: clientgui/BOINCClientManager.cpp:573
-#, c-format
-msgid "%s - Unexpected Exit"
-msgstr ""
-
-#: clientgui/BOINCClientManager.cpp:583
-#, c-format
-msgid ""
-"The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
-"Would you like to restart it again?"
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:61
-#, c-format
-msgid "%s - Network Status"
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:241
-#, c-format
-msgid ""
-"%s needs to connect to the Internet.\n"
-"May it do so now?"
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:254
-#, c-format
-msgid "%s is connecting to the Internet."
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:303
-#, c-format
-msgid "%s has successfully connected to the Internet."
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:331
-#, c-format
-msgid "%s failed to connect to the Internet."
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:372
-#, c-format
-msgid ""
-"%s has detected it is now connected to the Internet.\n"
-"Updating all projects and retrying all transfers."
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:417
-#, c-format
-msgid "%s has successfully disconnected from the Internet."
-msgstr ""
-
-#: clientgui/BOINCDialupManager.cpp:433
-#, c-format
-msgid "%s failed to disconnected from the Internet."
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:345
-#, c-format
-msgid ""
-"You currently are not authorized to manage the client.\n"
-"\n"
-"To run %s as this user, please:\n"
-"  - reinstall %s answering \"Yes\" to the question about\n"
-"     non-administrative users\n"
-" or\n"
-"  - contact your administrator to add you to the 'boinc_master'\n"
-"     user group."
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:351
-#, c-format
-msgid ""
-"%s ownership or permissions are not set properly; please reinstall %s.\n"
-"(Error code %d"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:357
-msgid " at "
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:360
-msgid ")"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:393
-msgid ""
-"A reboot is required in order for BOINC to run properly.\n"
-"Please reboot your computer and try again."
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:394
-msgid "BOINC Manager"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:561
-msgid "BOINC Manager was started by the operating system automatically"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:563
-msgid "Startup BOINC so only the system tray icon is visible"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:565
-msgid "Directory containing the BOINC Client executable"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:566
-msgid "BOINC data directory"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:568
-msgid "Host name or IP address"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:569
-msgid "GUI RPC port number"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:570
-msgid "Password"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:571
-msgid "Startup BOINC with these optional arguments"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:572
-msgid "disable BOINC security users and permissions"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:573
-msgid "set skin debugging mode to enable skin manager error messages"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:574
-msgid "multiple instances of BOINC Manager allowed"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:576
-msgid "Not used: workaround for bug in XCode 4.2"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:794
-msgid "(Automatic Detection)"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:795
-msgid "(Unknown)"
-msgstr ""
-
-#: clientgui/BOINCGUIApp.cpp:796
-msgid "(User Defined)"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:511
-#, c-format
-msgid "Open %s Web..."
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:518
-#, c-format
-msgid "Open %s..."
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:525 clientgui/BOINCTaskBar.cpp:621
-#: clientgui/BOINCTaskBar.cpp:629
-msgid "Snooze"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:527 clientgui/BOINCTaskBar.cpp:648
-#: clientgui/BOINCTaskBar.cpp:656
-msgid "Snooze GPU"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:543
-msgid "E&xit"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:614
-msgid "Resume"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:641
-msgid "Resume GPU"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:715
-msgid "Computing is enabled"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:718
-msgid "Computing is suspended - "
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:728
-msgid "GPU computing is enabled"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:731
-msgid "GPU computing is suspended - "
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:740
-msgid "Network is enabled"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:743
-msgid "Network is suspended - "
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:751
-msgid "Reconnecting to client."
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:753
-msgid "Not connected to a client."
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:806
-#, c-format
-msgid "%s Notices"
-msgstr ""
-
-#: clientgui/BOINCTaskBar.cpp:812
-msgid "There are new notices - click to view."
-msgstr ""
-
-#: clientgui/CompletionErrorPage.cpp:199
-msgid "Failed to add project"
-msgstr ""
-
-#: clientgui/CompletionErrorPage.cpp:204
-msgid "Failed to update account manager"
-msgstr ""
-
-#: clientgui/CompletionErrorPage.cpp:208
-msgid "Failed to remove account manager"
-msgstr ""
-
-#: clientgui/CompletionErrorPage.cpp:212
-msgid "Failed to add account manager"
-msgstr ""
-
-#: clientgui/CompletionErrorPage.cpp:221
-msgid ""
-"An error has occurred;\n"
-"check the Event Log for details.\n"
-"\n"
-"Click Finish to close."
-msgstr ""
-
-#: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
-#: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
-msgid "Click Finish to close."
-msgstr ""
-
-#: clientgui/CompletionErrorPage.cpp:234
-msgid "Messages from server:"
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:207
-msgid "Project added"
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:213
-msgid "This project has been successfully added."
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:218
-msgid ""
-"When you click Finish, your web browser will go to a page where\n"
-"you can set your account name and preferences."
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:232
-#, c-format
-msgid "Update from %s completed."
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:236
-msgid "Update completed."
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:247
-msgid "Now using account manager"
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:252
-#, c-format
-msgid "Welcome to %s!"
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:263
-#, c-format
-msgid "You are now using %s to manage accounts."
-msgstr ""
-
-#: clientgui/CompletionPage.cpp:267
-msgid "You are now using this account manager."
-msgstr ""
-
-#: clientgui/DlgAbout.cpp:113
-#, c-format
-msgid "About %s"
-msgstr ""
-
-#: clientgui/DlgAbout.cpp:172
-msgid "Version:"
-msgstr ""
-
-#: clientgui/DlgAbout.cpp:180
-msgid "wxWidgets Version:"
-msgstr ""
-
-#: clientgui/DlgAbout.cpp:188
-msgid "Copyright:"
-msgstr ""
-
-#: clientgui/DlgAbout.cpp:192
-msgid ""
-"(C) 2003-2013 University of California, Berkeley.\n"
-"All Rights Reserved."
-msgstr ""
-
-#: clientgui/DlgAbout.cpp:196
-msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr ""
-
-#: clientgui/DlgAbout.cpp:208 clientgui/DlgExitMessage.cpp:173
-#: clientgui/DlgGenericMessage.cpp:120 clientgui/DlgOptions.cpp:396
-#: clientgui/DlgSelectComputer.cpp:162
-msgid "&OK"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:542
-msgid "invalid float"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:543
-msgid "invalid time, format is HH:MM"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:544
-msgid "invalid time interval, format is HH:MM-HH:MM"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:664
-msgid "invalid input value detected"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:666
-msgid "Validation Error"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:797 clientgui/DlgAdvPreferences.cpp:803
-#: clientgui/DlgAdvPreferences.cpp:809
-msgid "Applications to add"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:826
-#, c-format
-msgid "'%s' is not an executable application."
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:827 clientgui/DlgAdvPreferences.cpp:874
-#: clientgui/DlgAdvPreferences.cpp:898
-msgid "Add Exclusive App"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:839
-msgid "Name of application to add?"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:839
-msgid "Add exclusive app"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:873
-#, c-format
-msgid "Application names must end with '%s'"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:897
-#, c-format
-msgid "'%s' is already in the list."
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:989
-msgid ""
-"Do you really want to clear all local preferences?\n"
-"(This will not affect exclusive applications.)"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:990
-msgid "Confirmation"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:46
-#, c-format
-msgid "%s - Preferences"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:62
-msgid ""
-"This dialog controls preferences for this computer only.\n"
-"Click OK to set preferences.\n"
-"Click Clear to restore web-based settings (except exclusive apps)."
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:65
-msgid "Clear"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:66
-msgid "clear all local preferences and close the dialog"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:81
-msgid "processor usage"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:84
-msgid "network usage"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:87
-msgid "disk and memory usage"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:90
-msgid "exclusive applications"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:102
-msgid "OK"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:103
-msgid "save all values and close the dialog"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:108
-msgid "close the dialog without saving"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:112
-msgid "Help"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:113
-msgid "shows the preferences web page"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:135
-msgid "Computing allowed"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:139
-msgid "While computer is on batteries"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:142
-msgid ""
-"check this if you want this computer to do work while it runs on batteries"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:148
-msgid "While computer is in use"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:151
-msgid ""
-"check this if you want this computer to do work even when you're using it"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:157
-msgid "Use GPU while computer is in use"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:160
-msgid ""
-"check this if you want your GPU to do work even when you're using the "
-"computer"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:172
-msgid "Only after computer has been idle for"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:182
-msgid ""
-"do work only after you haven't used the computer for this number of minutes"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:187
-#: clientgui/DlgAdvPreferencesBase.cpp:336
-msgid "minutes"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:206
-msgid "While processor usage is less than"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:216
-msgid "suspend work if processor usage exceeds this level"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:221
-msgid "percent (0 means no restriction)"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:235
-#: clientgui/DlgAdvPreferencesBase.cpp:495
-msgid "Every day between hours of"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:239
-msgid "start work at this time"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:243
-#: clientgui/DlgAdvPreferencesBase.cpp:503
-msgid "and"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:247
-msgid "stop work at this time"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:251
-#: clientgui/DlgAdvPreferencesBase.cpp:511
-msgid "(no restriction if equal)"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:256
-#: clientgui/DlgAdvPreferencesBase.cpp:516
-msgid "Day-of-week override:"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:261
-#: clientgui/DlgAdvPreferencesBase.cpp:521
-msgid "check box to specify hours for this day of week"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:267
-#: clientgui/DlgAdvPreferencesBase.cpp:527
-msgid "Monday"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:274
-#: clientgui/DlgAdvPreferencesBase.cpp:534
-msgid "Tuesday"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:281
-#: clientgui/DlgAdvPreferencesBase.cpp:541
-msgid "Wednesday"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:288
-#: clientgui/DlgAdvPreferencesBase.cpp:548
-msgid "Thursday"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:295
-#: clientgui/DlgAdvPreferencesBase.cpp:555
-msgid "Friday"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:302
-#: clientgui/DlgAdvPreferencesBase.cpp:562
-msgid "Saturday"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:309
-#: clientgui/DlgAdvPreferencesBase.cpp:569
-msgid "Sunday"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:323
-msgid "Other options"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:330
-msgid "Switch between applications every"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:339
-msgid "On multiprocessor systems, use at most"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:346
-#, no-c-format
-msgid "% of the processors"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:349
-#: clientgui/DlgAdvPreferencesBase.cpp:604
-#: clientgui/DlgAdvPreferencesBase.cpp:626
-#: clientgui/DlgAdvPreferencesBase.cpp:647
-#: clientgui/DlgAdvPreferencesBase.cpp:668
-#: clientgui/DlgAdvPreferencesBase.cpp:678
-msgid "Use at most"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:356
-#, no-c-format
-msgid "% CPU time"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:377
-msgid "General options"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:385
-msgid "Maximum download rate"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:391
-#: clientgui/DlgAdvPreferencesBase.cpp:400
-msgid "KBytes/sec."
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:394
-msgid "Maximum upload rate"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:405
-msgid "Transfer at most"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:411
-msgid "Mbytes"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:414
-msgid "every"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:420
-#: clientgui/DlgAdvPreferencesBase.cpp:443
-#: clientgui/DlgAdvPreferencesBase.cpp:462
-msgid "days"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:428
-msgid "Minimum work buffer"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:437
-msgid "Try to maintain enough tasks to keep busy for this many days"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:449
-msgid "Max additional work buffer"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:458
-msgid "In addition, maintain enough tasks for up to this many days"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:465
-msgid "Skip image file verification"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:467
-msgid "check this if your Internet provider modifies image files"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:475
-msgid "Connect options"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:477
-msgid "Confirm before connecting to internet"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:479
-msgid ""
-"if checked, a confirmation dialog will be displayed before trying to connect "
-"to the Internet"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:483
-msgid "Disconnect when done"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:485
-msgid ""
-"if checked, BOINC hangs up when network usage is done\n"
-"(only relevant for dialup-connection)"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:491
-msgid "Network usage allowed"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:499
-msgid "network usage start hour"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:507
-msgid "network usage stop hour"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/DlgItemProperties.cpp:226
-msgid "Disk usage"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:608
-msgid "the maximum disk space used by BOINC (in Gigabytes)"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:612
-msgid "Gigabytes disk space"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:615
-msgid "Leave at least"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:619
-msgid "BOINC leaves at least this amount of disk space free (in Gigabytes)"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:623
-msgid "Gigabytes disk space free"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:630
-msgid "BOINC uses at most this percentage of total disk space"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:635
-#, no-c-format
-msgid "% of total disk space"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:638
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:644
-msgid "seconds"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:654
-#, no-c-format
-msgid "% of page file (swap space)"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:661
-msgid "Memory usage"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:675
-#, no-c-format
-msgid "% when computer is in use"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:685
-#, no-c-format
-msgid "% when computer is idle"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:690
-msgid "Leave applications in memory while suspended"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:692
-msgid "if checked, suspended work units are left in memory"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:712
-msgid ""
-"Suspend processor and network usage when these applications are running:"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:721
-msgid "Add..."
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:722
-msgid "Add an application to this list"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:727
-msgid "Remove"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:728
-msgid "Remove an application from this list"
-msgstr ""
-
-#: clientgui/DlgAdvPreferencesBase.cpp:737
-msgid "For advanced options, refer to "
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:217
-#, c-format
-msgid "%s - Event Log"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:230
-msgid "Project"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:231
-msgid "Time"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:232
-msgid "Message"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:287 clientgui/DlgEventLog.cpp:351
-msgid "&Show only this project"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:291
-msgid "Copy &All"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:293 clientgui/DlgEventLog.cpp:297
-msgid "Copy all the messages to the clipboard."
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:302
-msgid "Copy &Selected"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:313
-msgid ""
-"Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or command key while clicking on messages."
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:307 clientgui/DlgEventLog.cpp:315
-msgid ""
-"Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or control key while clicking on messages."
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:322 clientgui/DlgItemProperties.cpp:66
-msgid "&Close"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:331
-#, c-format
-msgid "Get help with %s"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:345
-msgid "Show all &messages"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:346 clientgui/DlgEventLog.cpp:348
-msgid "Show messages for all projects"
-msgstr ""
-
-#: clientgui/DlgEventLog.cpp:352 clientgui/DlgEventLog.cpp:354
-msgid "Show only the messages for the selected project"
-msgstr ""
-
-#: clientgui/DlgExitMessage.cpp:82
-#, c-format
-msgid "%s - Exit Confirmation"
-msgstr ""
-
-#: clientgui/DlgExitMessage.cpp:130
-#, c-format
-msgid ""
-"You have requested to exit the %s,\n"
-"which allows you to view and manage\n"
-"the tasks running on your computer.\n"
-"\n"
-"If you also want to stop running the tasks,\n"
-"choose from the following options:"
-msgstr ""
-
-#: clientgui/DlgExitMessage.cpp:135
-#, c-format
-msgid ""
-"This will shut down %s and its tasks until either the\n"
-"%s or the %s screen saver is run again.\n"
-"\n"
-"In most cases, it is better just to close the %s window\n"
-"rather than to exit the application; that will allow %s to run its\n"
-"tasks at the times you selected in your preferences."
-msgstr ""
-
-#: clientgui/DlgExitMessage.cpp:153
-#, c-format
-msgid "Stop running tasks when exiting the %s"
-msgstr ""
-
-#: clientgui/DlgExitMessage.cpp:165
-msgid "Remember this decision and do not show this dialog."
-msgstr ""
-
-#: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
-#: clientgui/DlgOptions.cpp:401 clientgui/DlgSelectComputer.cpp:167
-msgid "&Cancel"
-msgstr ""
-
-#: clientgui/DlgGenericMessage.cpp:112
-msgid "Don't show this dialog again."
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:163 clientgui/DlgItemProperties.cpp:166
-#: clientgui/DlgItemProperties.cpp:169 clientgui/DlgItemProperties.cpp:172
-msgid "Don't fetch tasks for "
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:163
-msgid "Project preference"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:166
-msgid "Account manager preference"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:169
-msgid "Project has no apps for "
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:172
-msgid "Client configuration excludes "
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:176
-msgid " work fetch deferred for"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:177
-msgid " work fetch deferral interval"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:208
-msgid "Properties of project "
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:212 clientgui/DlgOptions.cpp:218
-msgid "General"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:213
-msgid "Master URL"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:214
-msgid "User name"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:215
-msgid "Team name"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:216
-msgid "Resource share"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:218
-msgid "Scheduler RPC deferred for"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:221
-msgid "File downloads deferred for"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:224
-msgid "File uploads deferred for"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:227
-msgid "Computer ID"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:229
-msgid "Non CPU intensive"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:229 clientgui/DlgItemProperties.cpp:231
-#: clientgui/DlgItemProperties.cpp:232 clientgui/DlgItemProperties.cpp:234
-#: clientgui/DlgItemProperties.cpp:237 clientgui/DlgItemProperties.cpp:246
-#: clientgui/DlgItemProperties.cpp:249 clientgui/DlgItemProperties.cpp:252
-msgid "yes"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:231
-msgid "Suspended via GUI"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:231 clientgui/DlgItemProperties.cpp:232
-msgid "no"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:232
-msgid "Don't request more work"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:234
-msgid "Scheduler call in progress"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:237
-msgid "Trickle-up pending"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:240 clientgui/DlgItemProperties.cpp:242
-msgid "Host location"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:242
-msgid "default"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:246
-msgid "Added via account manager"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:249
-msgid "Remove when tasks done"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:252
-msgid "Ended"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:254
-msgid "Credit"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:255
-msgid "User"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:262
-msgid "Host"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:271
-msgid "Scheduling"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:272
-msgid "Scheduling priority"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:273
-msgid "CPU"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:297
-msgid "Duration correction factor"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:311
-msgid "Properties of task "
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:323
-msgid "Application"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:324
-msgid "Workunit name"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:325
-msgid "State"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:328
-msgid "Received"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:331
-msgid "Report deadline"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:333
-msgid "Resources"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:336
-msgid "Estimated computation size"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:339
-msgid "CPU time at last checkpoint"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:340 clientgui/DlgItemProperties.cpp:355
-msgid "CPU time"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:342 clientgui/DlgItemProperties.cpp:356
-msgid "Elapsed time"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:344
-msgid "Estimated time remaining"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:345
-msgid "Fraction done"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:346
-msgid "Virtual memory size"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:347
-msgid "Working set size"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:349
-msgid "Directory"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:352
-msgid "Process ID"
-msgstr ""
-
-#: clientgui/DlgItemProperties.cpp:426
-msgid "Local: "
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:129 clientgui/DlgOptions.cpp:135
-msgid "Options"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:175
-msgid "Language:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:182
-msgid "What language should BOINC use?"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:186
-msgid "Notice reminder interval:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:193
-msgid "How often should BOINC remind you of new notices?"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:198
-msgid "Run Manager at login?"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:204
-msgid "Run the BOINC Manager when you log on."
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:209
-msgid "Enable Manager exit dialog?"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:215
-msgid "Display the exit dialog when shutting down the Manager."
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:226
-msgid "Dial-up and Virtual Private Network settings"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:240
-msgid "&Set Default"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:245
-msgid "&Clear Default"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:252
-msgid "Default Connection:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:259
-msgid "Connections"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:268
-msgid "Connect via HTTP proxy server"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:272
-msgid "HTTP Proxy Server Configuration"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:280 clientgui/DlgOptions.cpp:344
-msgid "Address:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:288 clientgui/DlgOptions.cpp:352
-msgid "Port:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:296 clientgui/DlgOptions.cpp:360
-msgid "Don't use proxy for:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:303 clientgui/DlgOptions.cpp:367
-msgid "Leave these blank if not needed"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:309 clientgui/DlgOptions.cpp:373
-msgid "User Name:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
-#: clientgui/DlgSelectComputer.cpp:151
-msgid "Password:"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:324
-msgid "HTTP Proxy"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:332
-msgid "Connect via SOCKS proxy server"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:336
-msgid "SOCKS Proxy Server Configuration"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:388
-msgid "SOCKS Proxy"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:586
-msgid "always"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:587
-msgid "1 hour"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:588
-msgid "6 hours"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:589
-msgid "1 day"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:590
-msgid "1 week"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:591
-msgid "never"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:688
-#, c-format
-msgid "%s - Language Selection"
-msgstr ""
-
-#: clientgui/DlgOptions.cpp:695
-#, c-format
-msgid ""
-"The %s's language has been changed.  In order for this change to take "
-"effect, you must restart the %s."
-msgstr ""
-
-#: clientgui/DlgSelectComputer.cpp:90
-#, c-format
-msgid "%s - Select Computer"
-msgstr ""
-
-#: clientgui/DlgSelectComputer.cpp:124
-#, c-format
-msgid ""
-"Another instance of %s is already running \n"
-"on this computer.  Please select a client to monitor."
-msgstr ""
-
-#: clientgui/DlgSelectComputer.cpp:142
-msgid "Host name:"
-msgstr ""
-
-#: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
-msgid "Message boards"
-msgstr ""
-
-#: clientgui/Localization.cpp:33
-msgid "Correspond with other users on the SETI at home message boards"
-msgstr ""
-
-#: clientgui/Localization.cpp:37
-msgid "Ask questions and report problems"
-msgstr ""
-
-#: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
-#: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
-msgid "Your account"
-msgstr ""
-
-#: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
-#: clientgui/Localization.cpp:113
-msgid "View your account information and credit totals"
-msgstr ""
-
-#: clientgui/Localization.cpp:43
-msgid "Your preferences"
-msgstr ""
-
-#: clientgui/Localization.cpp:45
-msgid "View and modify your SETI at home account profile and preferences"
-msgstr ""
-
-#: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
-msgid "Your results"
-msgstr ""
-
-#: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
-msgid "View your last week (or more) of computational results and work"
-msgstr ""
-
-#: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
-msgid "Your computers"
-msgstr ""
-
-#: clientgui/Localization.cpp:53
-msgid "View a listing of all the computers on which you are running SETI at Home"
-msgstr ""
-
-#: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
-msgid "Your team"
-msgstr ""
-
-#: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
-msgid "View information about your team"
-msgstr ""
-
-#: clientgui/Localization.cpp:61
-msgid "Common questions"
-msgstr ""
-
-#: clientgui/Localization.cpp:63
-msgid "Read the Einstein at Home Frequently Asked Question list"
-msgstr ""
-
-#: clientgui/Localization.cpp:65
-msgid "Screensaver info"
-msgstr ""
-
-#: clientgui/Localization.cpp:67
-msgid "Read a detailed description of the Einstein at Home screensaver"
-msgstr ""
-
-#: clientgui/Localization.cpp:71
-msgid ""
-"Correspond with admins and other users on the Einstein at Home message boards"
-msgstr ""
-
-#: clientgui/Localization.cpp:73
-msgid "Einstein status"
-msgstr ""
-
-#: clientgui/Localization.cpp:75
-msgid "Current status of the Einstein at Home server"
-msgstr ""
-
-#: clientgui/Localization.cpp:77
-msgid "Report problems"
-msgstr ""
-
-#: clientgui/Localization.cpp:79
-msgid "A link to the Einstein at Home problems and bug reports message board"
-msgstr ""
-
-#: clientgui/Localization.cpp:83
-msgid "View and modify your Einstein at Home account profile and preferences"
-msgstr ""
-
-#: clientgui/Localization.cpp:85
-msgid "Account summary"
-msgstr ""
-
-#: clientgui/Localization.cpp:95
-msgid ""
-"View a listing of all the computers on which you are running Einstein at Home"
-msgstr ""
-
-#: clientgui/Localization.cpp:101
-msgid "LIGO project"
-msgstr ""
-
-#: clientgui/Localization.cpp:103
-msgid ""
-"The home page of the Laser Interferometer Gravitational-wave Observatory "
-"(LIGO) project"
-msgstr ""
-
-#: clientgui/Localization.cpp:105
-msgid "GEO-600 project"
-msgstr ""
-
-#: clientgui/Localization.cpp:107
-msgid "The home page of the GEO-600 project"
-msgstr ""
-
-#: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
-msgid "Team"
-msgstr ""
-
-#: clientgui/Localization.cpp:117
-msgid "Info about your Team"
-msgstr ""
-
-#: clientgui/Localization.cpp:123
-msgid "Get help for climateprediction.net"
-msgstr ""
-
-#: clientgui/Localization.cpp:125
-msgid "News"
-msgstr ""
-
-#: clientgui/Localization.cpp:127
-msgid "climateprediction.net News"
-msgstr ""
-
-#: clientgui/Localization.cpp:131
-msgid "View your account information, credits, and trickles"
-msgstr ""
-
-#: clientgui/Localization.cpp:135
-msgid "Info about your team"
-msgstr ""
-
-#: clientgui/Localization.cpp:141
-msgid "Search for help in our help system"
-msgstr ""
-
-#: clientgui/Localization.cpp:143
-msgid "Global Statistics"
-msgstr ""
-
-#: clientgui/Localization.cpp:145
-msgid "Summary statistics for World Community Grid"
-msgstr ""
-
-#: clientgui/Localization.cpp:147
-msgid "My Grid"
-msgstr ""
-
-#: clientgui/Localization.cpp:149
-msgid "Your statistics and settings"
-msgstr ""
-
-#: clientgui/Localization.cpp:151
-msgid "Device Profiles"
-msgstr ""
-
-#: clientgui/Localization.cpp:153
-msgid "Update your device settings"
-msgstr ""
-
-#: clientgui/Localization.cpp:155
-msgid "Research"
-msgstr ""
-
-#: clientgui/Localization.cpp:157
-msgid "Learn about the projects hosted at World Community Grid"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:586
-msgid "Starting client"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:594
-msgid "Connecting to client"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:1183
-msgid "Retrieving system state; please wait..."
-msgstr ""
-
-#: clientgui/MainDocument.cpp:1804
-msgid "Missing application"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:1805
-msgid ""
-"Please download and install the CoRD application from http://cord."
-"sourceforge.net"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2418
-msgid "on batteries"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2419
-msgid "computer is in use"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2420
-msgid "user request"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2421
-msgid "time of day"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2422
-msgid "CPU benchmarks in progress"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2423
-msgid "need disk space - check preferences"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2424
-msgid "computer is not in use"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2425
-msgid "starting up"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2426
-msgid "an exclusive app is running"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2427
-msgid "CPU is busy"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2428
-msgid "network bandwidth limit exceeded"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2429
-msgid "requested by operating system"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2431
-msgid "unknown reason"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2453
-msgid "GPU missing, "
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2460
-msgid "New"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2464
-msgid "Download failed"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2466
-msgid "Downloading"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2468 clientgui/MainDocument.cpp:2538
-msgid " (suspended - "
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2476
-msgid "Project suspended by user"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2478
-msgid "Task suspended by user"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2480
-msgid "Suspended - "
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2486
-msgid "GPU suspended - "
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2493
-msgid "Waiting for memory"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2495
-msgid "Waiting for shared memory"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2498
-msgid "Running, high priority"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2500
-msgid "Running"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2503
-msgid " (non-CPU-intensive)"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2506
-msgid "Waiting to run"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2508 clientgui/MainDocument.cpp:2514
-msgid "Ready to start"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2518
-msgid " (Scheduler wait: "
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2522
-msgid " (Scheduler wait)"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2526
-msgid " (Waiting for network access)"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2530
-msgid "Computation error"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2534
-msgid "Upload failed"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2536
-msgid "Uploading"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2547
-msgid "Aborted by user"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2550
-msgid "Aborted by project"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2553
-msgid "Aborted: not started by deadline"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2556
-msgid "Aborted: disk limit exceeded"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2559
-msgid "Aborted: run time limit exceeded"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2562
-msgid "Aborted: memory limit exceeded"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2565
-msgid "Aborted"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2570
-msgid "Acknowledged"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2572
-msgid "Ready to report"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:2574
-#, c-format
-msgid "Error: invalid state '%d'"
-msgstr ""
-
-#: clientgui/NoInternetConnectionPage.cpp:179
-msgid "No Internet connection"
-msgstr ""
-
-#: clientgui/NoInternetConnectionPage.cpp:182
-msgid "Please connect to the Internet and try again."
-msgstr ""
-
-#: clientgui/NotDetectedPage.cpp:181
-msgid "Project not found"
-msgstr ""
-
-#: clientgui/NotDetectedPage.cpp:184
-msgid ""
-"The URL you supplied is not that of a BOINC-based project.\n"
-"\n"
-"Please check the URL and try again."
-msgstr ""
-
-#: clientgui/NotDetectedPage.cpp:188
-msgid "Account manager not found"
-msgstr ""
-
-#: clientgui/NotDetectedPage.cpp:191
-msgid ""
-"The URL you supplied is not that of a BOINC-based account\n"
-"manager.\n"
-"\n"
-"Please check the URL and try again."
-msgstr ""
-
-#: clientgui/NotFoundPage.cpp:181
-msgid "Login Failed."
-msgstr ""
-
-#: clientgui/NotFoundPage.cpp:185
-msgid "Check the username and password, and try again."
-msgstr ""
-
-#: clientgui/NotFoundPage.cpp:189
-msgid "Check the email address and password, and try again."
-msgstr ""
-
-#: clientgui/NoticeListCtrl.cpp:63
-msgid "Notice List"
-msgstr ""
-
-#: clientgui/NoticeListCtrl.cpp:183
-#, c-format
-msgid "%s; received on %s"
-msgstr ""
-
-#: clientgui/NoticeListCtrl.cpp:185
-#, c-format
-msgid "%s; received from %s; on %s"
-msgstr ""
-
-#: clientgui/NoticeListCtrl.cpp:282 clientgui/ProjectListCtrl.cpp:282
-msgid "Click"
-msgstr ""
-
-#: clientgui/NoticeListCtrl.cpp:565
-msgid "more..."
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:451 clientgui/ProjectInfoPage.cpp:739
-#: clientgui/ProjectInfoPage.cpp:743
-msgid "All"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:582
-msgid "Choose a project"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:586
-msgid "To choose a project, click its name or type its URL below."
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:590
-msgid "Categories:"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:594
-msgid "Projects:"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:598
-msgid "Project details"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:602
-msgid "Research area:"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:606
-msgid "Organization:"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:610
-msgid "Web site:"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:614
-msgid "Supported systems:"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:618
-msgid "Project URL:"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:787
-msgid ""
-"This project may not have work for your type of computer.  Do you want to "
-"add it anyway?"
-msgstr ""
-
-#: clientgui/ProjectInfoPage.cpp:811
-msgid "You already added this project. Please choose a different project."
-msgstr ""
-
-#: clientgui/ProjectListCtrl.cpp:66
-msgid "Project List"
-msgstr ""
-
-#: clientgui/ProjectListCtrl.cpp:507
-msgid "Nvidia GPU Supported"
-msgstr ""
-
-#: clientgui/ProjectListCtrl.cpp:509
-msgid "ATI GPU Supported"
-msgstr ""
-
-#: clientgui/ProjectListCtrl.cpp:511
-msgid "Project Website"
-msgstr ""
-
-#: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr ""
-
-#: clientgui/ProjectProcessingPage.cpp:507
-msgid "Required files not found on the server."
-msgstr ""
-
-#: clientgui/ProjectProcessingPage.cpp:510
-#: clientgui/ProjectProcessingPage.cpp:572
-msgid "An internal server error has occurred."
-msgstr ""
-
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr ""
-
-#: clientgui/ProxyInfoPage.cpp:195
-msgid "Network communication failure"
-msgstr ""
-
-#: clientgui/ProxyInfoPage.cpp:199
-msgid ""
-"The World Community Grid - BOINC software failed to communicate\n"
-"over the Internet. The most likely reasons are:\n"
-"\n"
-"1) Connectivity problem.  Check your network or modem connection\n"
-"and then click Back to try again.\n"
-"\n"
-"2) Personal firewall software is blocking the World Community\n"
-"Grid - BOINC software.  Configure your personal firewall to let\n"
-"BOINC and BOINC Manager communicate on port 80 and port 443,\n"
-"then click Back to try again.\n"
-"\n"
-"3) You are using a proxy server.\n"
-"Click Next to configure BOINC's proxy settings."
-msgstr ""
-
-#: clientgui/ProxyInfoPage.cpp:203
-msgid ""
-"BOINC failed to communicate on the Internet.\n"
-"The most likely reasons are:\n"
-"\n"
-"1) Connectivity problem.  Check your network\n"
-"or modem connection and then click Back to try again.\n"
-"\n"
-"2) Personal firewall software is blocking BOINC.\n"
-"Configure your personal firewall to let BOINC and\n"
-"BOINC Manager communicate on port 80,\n"
-"then click Back to try again.\n"
-"\n"
-"3) You are using a proxy server.\n"
-"Click Next to configure BOINC's proxy settings."
-msgstr ""
-
-#: clientgui/ProxyPage.cpp:331
-msgid "Proxy configuration"
-msgstr ""
-
-#: clientgui/ProxyPage.cpp:334
-msgid "HTTP proxy"
-msgstr ""
-
-#: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
-msgid "Server:"
-msgstr ""
-
-#: clientgui/ProxyPage.cpp:350
-msgid "Autodetect"
-msgstr ""
-
-#: clientgui/ProxyPage.cpp:354
-msgid "SOCKS proxy"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:136 clientgui/sg_BoincSimpleGUI.cpp:119
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:137
-msgid "Display the advanced graphical interface."
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:144
-msgid "Skin"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:146
-msgid "Select the appearance of the user interface."
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:193 clientgui/sg_BoincSimpleGUI.cpp:147
-#, c-format
-msgid "&%s"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:369
-msgid "Default"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:737
-msgid "Suspend"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:739
-msgid "Suspend Computing"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:740
-msgid "Resume Computing"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:756
-msgid "Notices"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleFrame.cpp:757
-msgid "Open a window to view notices from projects or BOINC"
-msgstr ""
-
-#: clientgui/sg_BoincSimpleGUI.cpp:120
-msgid "Display the advanced (accessible) graphical interface."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:288
-msgid "Retrieving current status."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:291
-msgid "You don't have any projects.  Please Add a Project."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:294
-msgid "Downloading work from the server."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:299
-msgid "Processing Suspended:  Running On Batteries."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:301
-msgid "Processing Suspended:  User Active."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:303
-msgid "Processing Suspended:  User paused processing."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:305
-msgid "Processing Suspended:  Time of Day."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:307
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:309
-msgid "Processing Suspended."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:313
-msgid "Waiting to contact project servers."
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:317
-#: clientgui/sg_ClientStateIndicator.cpp:325
-msgid "Retrieving current status"
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:320
-msgid "No work available to process"
-msgstr ""
-
-#: clientgui/sg_ClientStateIndicator.cpp:322
-msgid "Unable to connect to the core client"
-msgstr ""
-
-#: clientgui/sg_DlgMessages.cpp:130
-msgid "One or more items failed to load from the Internet."
-msgstr ""
-
-#: clientgui/sg_DlgMessages.cpp:138
-msgid "Retry now"
-msgstr ""
-
-#: clientgui/sg_DlgMessages.cpp:164
-msgid "Close"
-msgstr ""
-
-#: clientgui/sg_DlgMessages.cpp:171
-msgid "Fetching notices; please wait..."
-msgstr ""
-
-#: clientgui/sg_DlgMessages.cpp:178
-msgid "There are no notices at this time."
-msgstr ""
-
-#: clientgui/sg_DlgMessages.cpp:463
-#, c-format
-msgid "%s - Notices"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:94
-msgid "100 MB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:95
-msgid "200 MB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:96
-msgid "500 MB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:97
-msgid "1 GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:98
-msgid "2 GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:99
-msgid "5 GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:100
-msgid "10 GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:101
-msgid "20 GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:102
-msgid "50 GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:103
-msgid "100 GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:134
-msgid "10%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:135
-msgid "20%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:136
-msgid "30%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:137
-msgid "40%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:138
-msgid "50%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:139
-msgid "60%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:140
-msgid "70%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:141
-msgid "80%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:142
-msgid "90%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:143
-msgid "100%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:168
-msgid "1"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:169
-msgid "3"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:170
-msgid "5"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:171
-msgid "10"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:172
-msgid "15"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:173
-msgid "30"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:174
-msgid "60"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:282
-msgid "This dialog controls preferences for this computer only."
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:287
-msgid "Click OK to set preferences."
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:292
-msgid "Click Clear to restore web-based settings."
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:299
-msgid "For additional settings, select Computing Preferences in "
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:304
-msgid "the Advanced View."
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:332
-msgid "Do work only between:"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:354
-msgid "Connect to internet only between:"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:376 clientgui/sg_DlgPreferences.cpp:393
-msgid "Use no more than:"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:389
-msgid "of disk space"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:406
-msgid "of the processor"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:410
-msgid "Do work while on battery?"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:423
-msgid "Do work after idle for:"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:621 clientgui/sg_DlgPreferences.cpp:624
-#: clientgui/sg_DlgPreferences.cpp:683 clientgui/sg_DlgPreferences.cpp:687
-#: clientgui/sg_DlgPreferences.cpp:699 clientgui/sg_DlgPreferences.cpp:703
-#: clientgui/sg_DlgPreferences.cpp:846 clientgui/sg_DlgPreferences.cpp:857
-msgid "Anytime"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:719
-#, c-format
-msgid "%d MB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:721
-#, c-format
-msgid "%4.2f GB"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:762
-#, c-format
-msgid "%d%%"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:798
-msgid "0 (Run Always)"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:801
-#, c-format
-msgid "%d"
-msgstr ""
-
-#: clientgui/sg_DlgPreferences.cpp:1031
-msgid "Do you really want to clear all local preferences?\n"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:90
-msgid "Paused: Other work running"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:92
-msgid "Paused: User initiated.  Click 'Resume' to continue"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:94
-msgid "Paused: User active"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:96
-msgid "Paused: Computer on battery"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:98
-msgid "Paused: Time of Day"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:100
-msgid "Paused: Benchmarks running"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:102
-msgid "Paused"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:104
-msgid "Paused: Application start delayed"
-msgstr ""
-
-#: clientgui/sg_ImageButton.cpp:132
-msgid "Click to show project graphics"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:61
-msgid "Update"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:62
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:68
-#: clientgui/sg_ProjectCommandPopup.cpp:114
-msgid "Suspend tasks for this project."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:121
-msgid "No new tasks"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:74
-msgid "Don't get new tasks for this project."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:79
-msgid "Reset project"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:80
-msgid ""
-"Delete all files and tasks associated with this project, and get new tasks.  "
-"You can update the project first to report any completed tasks."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:86
-msgid ""
-"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
-"report any completed tasks)."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:91
-#: clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Properties"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:92
-msgid "Show project details."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:111
-msgid "Resume tasks for this project."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:118
-msgid "Allow new tasks"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:119
-msgid "Allow fetching new tasks for this project."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:122
-msgid "Don't fetch new tasks for this project."
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:214
-#, c-format
-msgid "Are you sure you want to reset project '%s'?"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:220
-msgid "Reset Project"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:251
-#: clientgui/sg_StatImageLoader.cpp:192
-#, c-format
-msgid "Are you sure you want to remove project '%s'?"
-msgstr ""
-
-#: clientgui/sg_ProjectCommandPopup.cpp:257
-#: clientgui/sg_StatImageLoader.cpp:138 clientgui/sg_StatImageLoader.cpp:198
-msgid "Remove Project"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:77 clientgui/sg_ProjectsComponent.cpp:123
-msgid "Synchronize projects with account manager system"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:267
-#, c-format
-msgid "Pop up a menu of websites for project %s"
-msgstr ""
-
-#: clientgui/sg_ProjectPanel.cpp:269
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr ""
-
-#: clientgui/sg_ProjectsComponent.cpp:196
-#: clientgui/sg_ProjectsComponent.cpp:207
-msgid "Open a window to view messages"
-msgstr ""
-
-#: clientgui/sg_ProjectsComponent.cpp:225
-msgid "Stop all activity"
-msgstr ""
-
-#: clientgui/sg_ProjectsComponent.cpp:237
-msgid "Resume activity"
-msgstr ""
-
-#: clientgui/sg_ProjectsComponent.cpp:254
-msgid "Open a window to set your preferences"
-msgstr ""
-
-#: clientgui/sg_ProjectsComponent.cpp:271
-msgid "Switch to the BOINC advanced view"
-msgstr ""
-
-#: clientgui/sg_ProjectsComponent.cpp:298
-msgid "My Projects:"
-msgstr ""
-
-#: clientgui/sg_StatImageLoader.cpp:101
-#, c-format
-msgid "%s. Work done by %s: %0.2f"
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:60 clientgui/sg_ViewTabPage.cpp:424
-msgid "Show graphics"
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:61
-msgid "Show application graphics in a window."
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Suspend this task."
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:72
-msgid "Abort"
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Abandon this task. You will get no credit for it."
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Show task details."
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:103
-msgid "Resume work for this task."
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:107
-msgid "Suspend work for this task."
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:251
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr ""
-
-#: clientgui/sg_TaskCommandPopup.cpp:256
-msgid "Abort task"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:449
-msgid "Not available"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:460
-msgid "Tasks:"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:466
-msgid "Select a task to access"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:477
-msgid "From:"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:531
-msgid "This task's progress"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:549
-msgid "Task Commands"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:550
-msgid "Pop up a menu of commands to apply to this task"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:685
-#, c-format
-msgid "Application: %s"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:708
-#, c-format
-msgid "%.3f%%"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:716
-msgid "Application: Not available"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:816
-msgid "Not Available"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:831
-#, c-format
-msgid "Elapsed: %s"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:845
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:860
-#, c-format
-msgid "Status: %s"
-msgstr ""
-
-#: clientgui/sg_ViewTabPage.cpp:140 clientgui/sg_ViewTabPage.cpp:280
-#, c-format
-msgid "%.1lf"
-msgstr ""
-
-#: clientgui/sg_ViewTabPage.cpp:409
-#, c-format
-msgid "%d hr %d min %d sec"
-msgstr ""
-
-#: clientgui/sg_ViewTabPage.cpp:423
-msgid "Are you sure you want to display graphics on a remote machine?"
-msgstr ""
-
-#: clientgui/sg_ViewTabPage.cpp:446
-msgid "Application: "
-msgstr ""
-
-#: clientgui/sg_ViewTabPage.cpp:449 clientgui/sg_ViewTabPage.cpp:453
-msgid "Time Remaining: "
-msgstr ""
-
-#: clientgui/sg_ViewTabPage.cpp:452
-msgid "Elapsed Time: "
-msgstr ""
-
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr ""
-
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr ""
-
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr ""
-
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree with the terms of use."
-msgstr ""
-
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr ""
-
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr ""
-
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr ""
-
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr ""
-
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr ""
-
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr ""
-
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr ""
-
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr ""
-
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr ""
-
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr ""
-
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr ""
-
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
-#, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr ""
-
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:169
-#: clientgui/ViewStatistics.cpp:1965 clientgui/ViewTransfers.cpp:159
-#: clientgui/ViewWork.cpp:182
-msgid "Commands"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:219 clientgui/ViewStatistics.cpp:442
-msgid "Account"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:221
-msgid "Work done"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:222
-msgid "Avg. work done"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:224 clientgui/ViewTransfers.cpp:187
-#: clientgui/ViewWork.cpp:233
-msgid "Status"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:249
-msgid "Projects"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:301
-msgid "Updating project..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:343
-msgid "Resuming project..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:347
-msgid "Suspending project..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:384
-msgid "Telling project to allow additional task downloads..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Telling project to not fetch any additional tasks..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:424
-msgid "Resetting project..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:482
-msgid "Removing project..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:542 clientgui/ViewWork.cpp:598
-msgid "Launching browser..."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1048
-msgid "Requested by user"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1049
-msgid "To fetch work"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1050
-msgid "To report completed tasks"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1051
-msgid "To send trickle-up message"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1052
-msgid "Requested by account manager"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1053
-msgid "Project initialization"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1054
-msgid "Requested by project"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1055
-msgid "Unknown reason"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1069
-msgid "Suspended by user"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1072
-msgid "Won't get new tasks"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1075
-msgid "Project ended - OK to remove"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1078
-msgid "Will remove when tasks done"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1081
-msgid "Scheduler request pending"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1087
-msgid "Scheduler request in progress"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1090
-msgid "Trickle up message pending"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:1096
-msgid "Communication deferred "
-msgstr ""
-
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr ""
-
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr ""
-
-#: clientgui/ViewResources.cpp:116
-msgid "Disk"
-msgstr ""
-
-#: clientgui/ViewResources.cpp:249
-msgid "no projects: 0 bytes used"
-msgstr ""
-
-#: clientgui/ViewResources.cpp:286
-msgid "used by BOINC: "
-msgstr ""
-
-#: clientgui/ViewResources.cpp:296
-msgid "free, available to BOINC: "
-msgstr ""
-
-#: clientgui/ViewResources.cpp:306
-msgid "free, not available to BOINC: "
-msgstr ""
-
-#: clientgui/ViewResources.cpp:316
-msgid "free: "
-msgstr ""
-
-#: clientgui/ViewResources.cpp:326
-msgid "used by other programs: "
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1195
-msgid "User Total"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1196
-msgid "User Average"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1197
-msgid "Host Total"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1198
-msgid "Host Average"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1345
-#, c-format
-msgid "Last update: %.0f days ago"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1969
-msgid "Show user total"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show total credit for user"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1976
-msgid "Show user average"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show average credit for user"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1983
-msgid "Show host total"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1984
-msgid "Show total credit for host"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1990
-msgid "Show host average"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:1991
-msgid "Show average credit for host"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2000
-msgid "< &Previous project"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2001
-msgid "Show chart for previous project"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2006
-msgid "&Next project >"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2007
-msgid "Show chart for next project"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2013 clientgui/ViewStatistics.cpp:2410
-msgid "Hide project list"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2014 clientgui/ViewStatistics.cpp:2410
-msgid "Use entire area for graphs"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2019
-msgid "Mode view"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2023
-msgid "One project"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2024
-msgid "Show one chart with selected project"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2030
-msgid "All projects (separate)"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2031
-msgid "Show all projects, one chart per project"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2037
-msgid "All projects (together)"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2038
-msgid "Show one chart with all projects"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2044
-msgid "All projects (sum)"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2045
-msgid "Show one chart with sum of projects"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2073
-msgid "Statistics"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2097 clientgui/ViewStatistics.cpp:2118
-#: clientgui/ViewStatistics.cpp:2139 clientgui/ViewStatistics.cpp:2161
-#: clientgui/ViewStatistics.cpp:2182 clientgui/ViewStatistics.cpp:2203
-#: clientgui/ViewStatistics.cpp:2224 clientgui/ViewStatistics.cpp:2245
-#: clientgui/ViewStatistics.cpp:2266 clientgui/ViewStatistics.cpp:2290
-msgid "Updating charts..."
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2414
-msgid "Show project list"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2414
-msgid "Uses smaller area for graphs"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:163
-msgid "Retry Now"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:164
-msgid "Retry the file transfer now"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:170
-msgid "Abort Transfer"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:171
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:182
-msgid "File"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:183 clientgui/ViewWork.cpp:232
-msgid "Progress"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:184
-msgid "Size"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:185
-msgid "Elapsed Time"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:186
-msgid "Speed"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:212
-msgid "Transfers"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:279
-msgid "Network activity is suspended - "
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:281
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:284
-msgid "BOINC"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:291
-msgid "Retrying transfer now..."
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:329
-msgid "Aborting transfer..."
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:342
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:348
-msgid "Abort File Transfer"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:769
-msgid "Upload"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:769
-msgid "Download"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:773
-msgid "retry in "
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:775
-msgid "failed"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:778
-msgid "suspended"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:783
-msgid "active"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:785
-msgid "pending"
-msgstr ""
-
-#: clientgui/ViewTransfers.cpp:792
-msgid " (project backoff: "
-msgstr ""
-
-#: clientgui/ViewWork.cpp:186 clientgui/ViewWork.cpp:766
-msgid "Show active tasks"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:187 clientgui/ViewWork.cpp:767
-msgid "Show only active tasks."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:200
-msgid "Show VM Console"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:201
-msgid "Show VM Console in a window."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:208
-msgid "Suspend work for this result."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:215
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:234
-msgid "Elapsed"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:235
-msgid "Remaining (estimated)"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:236
-msgid "Deadline"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:238
-msgid "Name"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:263
-msgid "Tasks"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:356
-msgid "Resuming task..."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:359
-msgid "Suspending task..."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:388
-msgid "Showing graphics for task..."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:425
-msgid "Showing VM console for task..."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:478
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:484
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:498
-msgid "Aborting task..."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:760
-msgid "Show all tasks"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:761
-msgid "Show all tasks."
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:284
-msgid "Add project or account manager"
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:288
-msgid "Add project or use BOINC Account Manager"
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:297
-#, c-format
-msgid ""
-"If possible, add projects at the\n"
-"%s web site.\n"
-"\n"
-"Projects added via this wizard will not be\n"
-"listed on or managed via %s."
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:313
-msgid ""
-"There are over 30 BOINC-based projects\n"
-"doing research in many areas of science,\n"
-"and you can volunteer for as many of them as you like.\n"
-"You can add a project directly,\n"
-"or use an 'Account Manager' web site to select projects."
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:325
-msgid ""
-"You have chosen to add a new volunteer computing project or change which "
-"projects\n"
-"you contribute to.\n"
-"\n"
-"Some of these projects are run and managed by World Community Grid, while "
-"others\n"
-"are run and managed by other researchers or organizations. The BOINC "
-"software\n"
-"can divide your spare processing power among any combination of projects.\n"
-"\n"
-"Alternatively, if you have registered with a BOINC Account Manager, you can "
-"use\n"
-"this to choose which projects to support.\n"
-"\n"
-"Please choose which type of change you would like to make:\n"
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:339
-msgid "Use a BOINC Account Manager"
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:352
-msgid "To continue, click Next."
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:358
-msgid "Add or change your World Community Grid projects"
-msgstr ""
-
-#: clientgui/WelcomePage.cpp:361
-msgid "Add projects run by other researchers or organizations"
-msgstr ""
-
-#: clientgui/WizardAttach.cpp:634
-msgid "Do you really want to cancel?"
-msgstr ""
-
-#: clientgui/WizardAttach.cpp:635
-msgid "Question"
-msgstr ""
-
-#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
-msgid "&Next >"
-msgstr ""
-
-#: clientgui/wizardex.cpp:383
-msgid "< &Back"
-msgstr ""
-
-#: clientgui/wizardex.cpp:553
-msgid "&Finish"
-msgstr ""
-
-#: clientgui/common/wxFlatNotebook.cpp:182
-#, c-format
-msgid "New page inserted. Index = %i"
-msgstr ""
-
-#: clientgui/common/wxFlatNotebook.cpp:187
-#, c-format
-msgid "New page appended. Index = %i"
-msgstr ""
-
-#: clientgui/common/wxFlatNotebook.cpp:2047
-#, c-format
-msgid "Old Page Index = %i"
-msgstr ""
-
-#: clientgui/common/wxFlatNotebook.cpp:2052
-#, c-format
-msgid "OnDropTarget: index by HitTest = %i"
-msgstr ""
-
-#: clientgui/common/wxPieCtrl.cpp:63
-msgid "Pie Ctrl"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:257
-msgid ""
-"for accessibility support, please select advanced from the view menu or type "
-"command shift a"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:302
-msgid "This panel contains graphs showing user totals for projects"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:726
-msgid "list headers"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:732
-msgid "list of events"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:734
-msgid "list of events is empty"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:739
-#, c-format
-msgid "list of %s"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:741
-#, c-format
-msgid "list of %s is empty"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:843
-#, c-format
-msgid "; current sort column %d of %d; descending order; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:845
-#, c-format
-msgid "; current sort column %d of %d; ascending order; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:848
-#, c-format
-msgid "; column %d of %d; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:855
-msgid "list is empty"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:858 clientgui/mac/MacAccessiblity.cpp:870
-#, c-format
-msgid "; row %d; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:862
-#, c-format
-msgid "; selected row %d of %d; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:864
-#, c-format
-msgid "; selected row %d ; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:868
-#, c-format
-msgid "; row %d of %d; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:881
-msgid "blank"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:1523
-msgid "list of projects or account managers"
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:1575
-#, c-format
-msgid "selected row %d of %d; "
-msgstr ""
-
-#: clientgui/mac/MacAccessiblity.cpp:1577
-#, c-format
-msgid "row %d of %d; "
-msgstr ""
-
-#: clientgui/mac/Mac_GUI.cpp:109
-msgid "Preferences…"
-msgstr ""
-
-#: clientgui/mac/Mac_GUI.cpp:121
-msgid "Services"
-msgstr ""
-
-#: clientgui/mac/Mac_GUI.cpp:143
-#, c-format
-msgid "Hide %s"
-msgstr ""
-
-#: clientgui/mac/Mac_GUI.cpp:157
-msgid "Hide Others"
-msgstr ""
-
-#: clientgui/mac/Mac_GUI.cpp:171
-msgid "Show All"
-msgstr ""
-
-#: clientgui/mac/Mac_GUI.cpp:185
-#, c-format
-msgid "Quit %s"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.h:30
-msgid "specify work start and stop hours in format HH:MM-HH:MM"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.h:31
-msgid "specify network usage start and stop hours in format HH:MM-HH:MM"
-msgstr ""
diff --git a/locale/nn/BOINC-Project-Generic.po b/locale/nn/BOINC-Project-Generic.po
deleted file mode 100644
index 89a3275..0000000
--- a/locale/nn/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6428 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2012-11-13 16:40 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nn\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:624
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/forum_forum.php:71
-#: ../user/sample_index.php:119
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/forum_forum.php:73 ../user/sample_index.php:118
-#: ../project.sample/project.inc:47
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:681
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:690
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1174 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:619
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:622 ../inc/forum.inc:627 ../inc/forum.inc:726
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/user.inc:329 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:624
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:627
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:630 ../inc/prefs.inc:690 ../inc/prefs.inc:692
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:630
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:636
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:639
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:667 ../inc/forum.inc:678
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:671
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:674
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:676
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:684 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:684
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:686
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:707
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:728
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:746
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:757
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:779
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1054 ../user/forum_thread.php:187
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1054
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1056 ../user/forum_thread.php:193
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1056
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1061 ../user/forum_thread.php:226
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1061
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1066
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1073
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1077
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1082
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1115
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1125
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1132
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1139
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1144
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1172
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1173 ../inc/team.inc:120 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1175 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../inc/team.inc:120 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1234
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1239
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1250
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:55 ../inc/prefs.inc:625 ../inc/prefs.inc:1030
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:627 ../inc/prefs.inc:1031
-#: ../user/server_status.php:319
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:626 ../inc/prefs.inc:1032
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:83
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:87 ../inc/host.inc:92
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:87
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:92
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:97
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:98 ../inc/host.inc:645 ../inc/result.inc:614
-#: ../inc/team.inc:202 ../inc/team.inc:350 ../inc/user.inc:200
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-#: ../user/team_admins.php:62 ../user/team_change_founder_form.php:77
-#: ../user/team_email_list.php:64 ../user/top_users.php:49
-#: ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:102 ../inc/host.inc:104 ../inc/host.inc:216
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:104 ../inc/host.inc:333
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/result.inc:616
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:109 ../inc/host.inc:220 ../inc/host.inc:225
-#: ../inc/host.inc:654 ../inc/team.inc:94 ../inc/team.inc:207
-#: ../inc/team.inc:212 ../inc/team.inc:214 ../inc/team.inc:356
-#: ../inc/team.inc:361 ../inc/user.inc:122 ../inc/user.inc:136
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:110 ../inc/user.inc:122 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:112
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:114
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:115
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:117
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:119 ../inc/host.inc:660
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:122 ../inc/host.inc:229
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:126
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:134
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:129
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:137
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:137 ../inc/host.inc:140
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:144
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:144 ../inc/host.inc:147
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:147
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:153
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:151 ../inc/host.inc:158
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:153 ../inc/host.inc:160 ../inc/result.inc:207
-#: ../inc/result.inc:217 ../inc/result.inc:235 ../inc/result.inc:253
-#: ../inc/result.inc:269 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:29
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:158 ../inc/host.inc:160
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/host_app_versions.php:64
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:163 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:164
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:165
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:175 ../inc/host.inc:317 ../inc/user.inc:153
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:179 ../inc/host.inc:200
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:180
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:181
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:183
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:185
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:187
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:190
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:192 ../inc/host.inc:647
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:194
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:198
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:201 ../inc/host.inc:662
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:214
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:215 ../inc/host.inc:649 ../inc/team.inc:349
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:219 ../inc/host.inc:652
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:224 ../inc/team.inc:95 ../inc/team.inc:208
-#: ../inc/team.inc:217 ../inc/team.inc:219 ../inc/team.inc:355
-#: ../inc/team.inc:360 ../inc/user.inc:137
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/host.inc:657 ../inc/result.inc:47
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:231 ../inc/host.inc:658
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:232
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:296
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:316
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:321
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:493
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:500
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:506
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:573
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:576
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:579
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:596
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:600
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:605
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:607
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:630 ../inc/host.inc:633
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:642 ../inc/result.inc:623
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:655
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:711 ../user/merge_by_name.php:67
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:59 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:76
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:84
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:90
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:98
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:100 ../inc/prefs.inc:109 ../inc/prefs.inc:143
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:104
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:113
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:121
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:129
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:138
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:146
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:148
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:152
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:157
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:161
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:166
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:174 ../inc/prefs.inc:188
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:176 ../inc/prefs.inc:185
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:179
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:190 ../inc/prefs.inc:200 ../inc/prefs.inc:205
-#: ../inc/prefs.inc:210
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:193
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:195
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:198
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:203
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:208
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:217
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:222 ../inc/prefs.inc:227 ../inc/prefs.inc:269
-#: ../inc/util.inc:264
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:225
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:231
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:240
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:248
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:250 ../inc/prefs.inc:255
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:253
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:258
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:262
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:268
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:273
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:286
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:297
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:307
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:319
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:331
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:345
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:354
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:361
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:375
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:376
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:379
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:382
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:431
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:437
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1007
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:656 ../inc/prefs.inc:659 ../inc/prefs.inc:1009
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:664 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:689 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:691 ../inc/prefs.inc:819
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:797 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:808
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:818 ../inc/prefs.inc:896
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:824
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:832 ../inc/prefs.inc:877
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:834 ../inc/prefs.inc:880
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:889
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:856 ../user/add_venue.php:43 ../user/add_venue.php:67
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:870
-msgid ""
-"These apply to all BOINC projects in which you participate.<br>\n"
-"             On computers participating in multiple projects, the most "
-"recently modified preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:874
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:926
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:930
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1018 ../inc/prefs.inc:1027
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:192
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:196
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:210
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:218 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:261
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:263
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:267
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:34
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:48
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:49 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:56
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:82
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:105 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:106 ../inc/result.inc:167 ../inc/result.inc:214
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:107
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:108
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:109 ../inc/result.inc:259
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:110 ../inc/result.inc:262
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:111 ../inc/result.inc:200
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:165 ../inc/result.inc:212 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:166 ../inc/result.inc:213 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:172
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:173
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:174
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:175
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:176
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:177
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:179
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:180 ../inc/result.inc:224 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:185 ../inc/result.inc:248
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:190
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:193
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:195
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:196
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:197 ../inc/result.inc:250
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:198 ../inc/result.inc:251
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:201
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:202 ../inc/result.inc:231 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:203 ../inc/result.inc:232 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:204 ../inc/result.inc:233
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:215 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:223 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:227
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:229
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:230 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:240 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:241 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:242
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:243
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:244 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:245 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:258
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:264
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:265
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:266
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:293
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:297
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:301
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:305
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:309
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:313
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:340 ../inc/result.inc:345 ../inc/result.inc:348
-#: ../inc/result.inc:351
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:340
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:345
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:348
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:351
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:357 ../inc/result.inc:617
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:358
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:359
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:361 ../user/server_status.php:246
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:362
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:363
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:364 ../inc/result.inc:628
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:365 ../inc/result.inc:710
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:615
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:618
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:619
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:620
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:621
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:622
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:624
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:625
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:626
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:627
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:642
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:645
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:692
-msgid "State"
-msgstr ""
-
-#: ../inc/team.inc:33
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:34
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:36 ../inc/team.inc:114 ../inc/team.inc:225
-#: ../inc/team.inc:365 ../inc/team.inc:449 ../inc/user.inc:206
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:106 ../user/edit_user_info_form.php:40
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:42 ../inc/team.inc:447
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:44
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:45 ../user/profile_menu.php:77 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:54
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:56
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:60
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:65 ../inc/team.inc:549 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:70
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:80
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:82 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:90
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:112
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:115 ../inc/team.inc:366 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:119 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:120 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:128
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:129
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:132
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:139
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:144
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:148 ../inc/team.inc:351
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:149 ../inc/team.inc:246
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:161
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:176
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:177
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:177 ../inc/team.inc:178 ../inc/team.inc:179
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:178
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:179
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:248
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:269 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:273 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:281
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:294
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:318
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:415
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:426
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:427
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:430
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:432 ../inc/team.inc:442
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:437
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:440
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:456
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:27
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:116
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:118
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:122
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:146
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../user/pending.php:64
-msgid "Pending credit"
-msgstr ""
-
-#: ../inc/user.inc:150 ../inc/user.inc:152 ../inc/user.inc:153
-#: ../inc/user.inc:218 ../inc/user.inc:243 ../inc/user.inc:327
-#: ../inc/user.inc:402 ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:152
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:164
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:166 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:168
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:170
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:184
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:199
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:201 ../user/edit_passwd_form.php:48
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:204 ../inc/user.inc:321
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:207
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:208 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:212
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:214 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:214
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:217 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:222
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:226
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:229
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:230 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:233
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:234 ../user/prefs.php:32
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:240 ../user/sample_index.php:114
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:504
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:327 ../inc/user.inc:329 ../user/server_status.php:396
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:336
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:122
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:124
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:194 ../user/login_form.php:37 ../user/login_form.php:62
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:195 ../user/create_account_form.php:38
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:196
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:238
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:247
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:267
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:270
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:273
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:434
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:503
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:559
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:770
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:773
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:791
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:792
-msgid "Error:"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:129 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:87
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:106
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:112
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:85
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/sample_index.php:109
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:49
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:38 ../user/create_account_action.php:40
-#: ../user/create_account_form.php:43
-msgid "Account creation is disabled"
-msgstr ""
-
-#: ../user/create_account_action.php:41
-msgid ""
-"Sorry, this project has disabled the creation of new accounts.\n"
-"Please try again later."
-msgstr ""
-
-#: ../user/create_account_action.php:53
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:77
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:80
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:91
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:95
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:108 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:113 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:134
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid "Account creation is currently disabled. Please try again later."
-msgstr ""
-
-#: ../user/create_account_form.php:53
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:69
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:81
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:91
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:100 ../user/edit_email_form.php:48
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:101
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:104
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:121
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:127
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:55 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:28 ../user/edit_email_form.php:52
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:39
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:49
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:28
-#: ../user/edit_passwd_form.php:58
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:44
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:45
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:51
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:52
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:56
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:57
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:29
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:34
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:37
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:45
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:49
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:31
-msgid ""
-"This project hasn\\'t created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:34
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:38
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:40
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:43
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:49
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:57
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:60
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:156
-#: ../user/forum_thread.php:272
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:127
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:136
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:157 ../user/forum_thread.php:273
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:169
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:170
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:176
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:177
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:188
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:194
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:200
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:201
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:206
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:207
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:213
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:214
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:219
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:220
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:227
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:232
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:233
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:243
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:244
-msgid "Export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:249
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:250
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:258 ../user/forum_thread.php:260
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"<b>C:\\Documents and Settings\\All Users\\Application Data\\BOINC</b> or "
-"<b>C:\\Program Files\\BOINC</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:182 ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/home.php:49 ../project.sample/project.inc:47
-msgid "Your account"
-msgstr ""
-
-#: ../user/host_app_versions.php:26
-msgid "nvidia GPU"
-msgstr ""
-
-#: ../user/host_app_versions.php:36
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:39
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:42
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:44
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:46
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:55
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:62
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:71
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:24 ../user/sample_index.php:74
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:44
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:70
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:75
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:80
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:82
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:86
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:92
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:94
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:110
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:52
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:54
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:57
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:63
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:33
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:45
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:74
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:78
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:84
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:85
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:79
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:97
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:35
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:44
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:51
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:55
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:57
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35 ../user/sample_index.php:116
-msgid "Profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:38
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:39
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:40
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:45
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:58
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:63
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:67
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:73
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:30
-msgid "No such task"
-msgstr ""
-
-#: ../user/result.php:32
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:102
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/sample_index.php:180
-msgid "User of the day"
-msgstr ""
-
-#: ../user/server_status.php:91
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:94
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:236
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:238
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:244
-msgid "Server status"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:246
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:257
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:263
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:266
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:300
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:301
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:302
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:304
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:308
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:314
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:331
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:336 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:356
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:373
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:380
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:398
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:403
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:392 ../user/server_status.php:408
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:414
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:423
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:426 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:428
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:429
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:430
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:30 ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:179
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:98
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:100
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:104
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:110 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:35
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:47
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:180
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:182
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:187
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:47
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:49
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:52
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:95
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/nn/BOINC-Setup.mo b/locale/nn/BOINC-Setup.mo
deleted file mode 100644
index f1ccf7b..0000000
Binary files a/locale/nn/BOINC-Setup.mo and /dev/null differ
diff --git a/locale/nn/BOINC-Setup.po b/locale/nn/BOINC-Setup.po
deleted file mode 100644
index caaa48b..0000000
--- a/locale/nn/BOINC-Setup.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-06 16:50-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nn\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.9.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: mac_installer/Installer.cpp:132
-#, c-format
-msgid "Sorry, this version of %s requires system 10.4 or higher."
-msgstr ""
-
-#: mac_installer/PostInstall.cpp:131 mac_installer/PostInstall.cpp:1211
-msgid "Yes"
-msgstr ""
-
-#: mac_installer/PostInstall.cpp:132 mac_installer/PostInstall.cpp:1212
-msgid "No"
-msgstr ""
-
-#: mac_installer/PostInstall.cpp:134
-msgid "Should BOINC run even when no user is logged in?"
-msgstr ""
-
-#: mac_installer/PostInstall.cpp:1491
-#, c-format
-msgid ""
-"Users who are permitted to administer this computer will automatically be "
-"allowed to run and control %s.\n"
-"\n"
-"Do you also want non-administrative users to be able to run and control %s "
-"on this Mac?"
-msgstr ""
-
-#: mac_installer/PostInstall.cpp:1519
-#, c-format
-msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr ""
-
-#: mac_installer/uninstall.cpp:80
-msgid "OK"
-msgstr ""
-
-#: mac_installer/uninstall.cpp:130
-msgid "Permission error after relaunch"
-msgstr ""
-
-#: mac_installer/uninstall.cpp:135
-msgid ""
-"Removal may take several minutes.\n"
-"Please be patient."
-msgstr ""
-
-#: mac_installer/uninstall.cpp:150
-#, c-format
-msgid ""
-"Are you sure you want to completely remove %s from your computer?\n"
-"\n"
-"This will remove the executables but will not touch %s data files."
-msgstr ""
-
-#: mac_installer/uninstall.cpp:157
-#, c-format
-msgid "Canceled: %s has not been touched."
-msgstr ""
-
-#: mac_installer/uninstall.cpp:168
-#, c-format
-msgid "An error occurred: error code %d"
-msgstr ""
-
-#: mac_installer/uninstall.cpp:224
-msgid "name  of user"
-msgstr ""
-
-#: mac_installer/uninstall.cpp:261
-#, c-format
-msgid ""
-"Removal completed.\n"
-"\n"
-" You may want to remove the following remaining items using the Finder: \n"
-"the directory \"%s\"\n"
-"\n"
-"for each user, the file\n"
-"\"%s\"."
-msgstr ""
-
-#: mac_installer/uninstall.cpp:796
-#, c-format
-msgid ""
-"Enter your administrator password to completely remove %s from you "
-"computer.\n"
-"\n"
-msgstr ""
-
-#: mac_installer/uninstall.cpp:1543
-msgid "Cancel"
-msgstr ""
-
-#: mac_installer/uninstall.cpp:1544
-msgid "Continue..."
-msgstr ""
diff --git a/locale/nn/BOINC-Web.mo b/locale/nn/BOINC-Web.mo
deleted file mode 100644
index 6e6fea5..0000000
Binary files a/locale/nn/BOINC-Web.mo and /dev/null differ
diff --git a/locale/nn/BOINC-Web.po b/locale/nn/BOINC-Web.po
deleted file mode 100644
index 4e4ed01..0000000
--- a/locale/nn/BOINC-Web.po
+++ /dev/null
@@ -1,891 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2013-08-22 16:22 PDT\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nn\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: projects.inc:14
-msgid "Distributed sensing"
-msgstr ""
-
-#: projects.inc:19
-msgid "Stanford University"
-msgstr ""
-
-#: projects.inc:20
-msgid "Seismology"
-msgstr ""
-
-#: projects.inc:21
-msgid ""
-"The Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to Internet-connected computers.  You must buy a "
-"sensor to participate."
-msgstr ""
-
-#: projects.inc:27
-msgid "BOINC Poland Foundation"
-msgstr ""
-
-#: projects.inc:28
-msgid "Environmental research"
-msgstr ""
-
-#: projects.inc:29
-msgid ""
-"This project is creating a free and continuously updated map of radiation "
-"levels by using sensors connected to volunteers' computers.  You must buy a "
-"sensor to participate."
-msgstr ""
-
-#: projects.inc:33
-msgid ""
-"To participate in these projects you must buy a sensor and attach it to your "
-"computer."
-msgstr ""
-
-#: projects.inc:37
-msgid "Cognitive science and artifical intelligence"
-msgstr ""
-
-#: projects.inc:50 projects.inc:342 projects.inc:386 projects.inc:435
-#: projects.inc:442 projects.inc:489
-msgid "Private"
-msgstr ""
-
-#: projects.inc:51
-msgid "Artificial intelligence"
-msgstr ""
-
-#: projects.inc:52
-msgid ""
-"Parse and convert semantic nets for use in FreeHAL, an artificial "
-"intelligence that uses semantic networks, stemmers, part of speech "
-"databases, and part of speech taggers in order to imitate human behavior in "
-"conversations."
-msgstr ""
-
-#: projects.inc:58
-msgid "Biology and Medicine"
-msgstr ""
-
-#: projects.inc:71
-msgid "University College Dublin"
-msgstr ""
-
-#: projects.inc:72
-msgid "Antimalarial drug discovery"
-msgstr ""
-
-#: projects.inc:73
-msgid ""
-"The parasite that causes malaria continues to evolve resistance to available "
-"medication. We therefore urgently need to discover new drugs to replace "
-"existing drugs. Importantly, these new drugs need to target NEW proteins in "
-"the parasite. The FightMalaria at Home project is aimed at finding these new "
-"targets."
-msgstr ""
-
-#: projects.inc:79
-msgid "University of Karlsruhe (Germany)"
-msgstr ""
-
-#: projects.inc:80
-msgid "Protein structure prediction"
-msgstr ""
-
-#: projects.inc:81
-msgid ""
-"POEM at HOME uses a computational approach to predict the biologically active "
-"structure of proteins, to understand the signal-processing mechanisms when "
-"the proteins interact with one another, to understand diseases related to "
-"protein malfunction or aggregation, and to develop new drugs on the basis of "
-"the three-dimensions structure of biologically important proteins."
-msgstr ""
-
-#: projects.inc:87
-msgid "University of Delaware"
-msgstr ""
-
-#: projects.inc:88
-msgid "Study of protein - ligand interactions"
-msgstr ""
-
-#: projects.inc:89
-msgid ""
-"Docking at Home has both bioscience and computer science goals. The project "
-"aims to further knowledge of the atomic details of protein-ligand "
-"interactions and, by doing so, will search for insights into the discovery "
-"of novel pharmaceuticals."
-msgstr ""
-
-#: projects.inc:103
-msgid "Barcelona Biomedical Research Park (PRBB)"
-msgstr ""
-
-#: projects.inc:104
-msgid "Molecular simulations of proteins"
-msgstr ""
-
-#: projects.inc:105
-msgid ""
-"GPUGrid.net opens novel computational scenarios by the first full-atom "
-"molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
-"New biomedical applications suddenly become possible giving a new role to "
-"computational biology for biomedical research."
-msgstr ""
-
-#: projects.inc:111
-msgid "Technion, Israel"
-msgstr ""
-
-#: projects.inc:112
-msgid "Genetic linkage analysis"
-msgstr ""
-
-#: projects.inc:113
-msgid ""
-"Superlink at Technion helps geneticists all over the world find disease-"
-"provoking genes causing some types of diabetes, hypertension (high blood "
-"pressure), cancer, schizophrenia and many others."
-msgstr ""
-
-#: projects.inc:127
-msgid ""
-"University of Maryland Center for Bioinformatics and Computational Biology"
-msgstr ""
-
-#: projects.inc:128
-msgid "Life science research"
-msgstr ""
-
-#: projects.inc:129
-msgid ""
-"The Lattice Project supplies computing power to scientists at the University "
-"of Maryland studying evolutionary relationships based on DNA sequence data; "
-"bacterial, plasmid, and virus protein sequences; and biological diversity in "
-"nature reserves. "
-msgstr ""
-
-#: projects.inc:135
-msgid "The Swiss Tropical Institute"
-msgstr ""
-
-#: projects.inc:136
-msgid "Epidemiology"
-msgstr ""
-
-#: projects.inc:137
-msgid ""
-"Simulation models of the transmission dynamics and health effects of malaria "
-"are an important tool for malaria control. They can be used to determine "
-"optimal strategies for delivering mosquito nets, chemotherapy, or new "
-"vaccines which are currently under development and testing.  Such modeling "
-"is extremely computer intensive, requiring simulations of large human "
-"populations with a diverse set of parameters related to biological and "
-"social factors that influence the distribution of the disease. "
-msgstr ""
-
-#: projects.inc:159
-msgid "University of Washington"
-msgstr ""
-
-#: projects.inc:160 projects.inc:168
-msgid "Biology"
-msgstr ""
-
-#: projects.inc:161
-msgid ""
-"Determine the 3-dimensional shapes of proteins in research that may "
-"ultimately lead to finding cures for some major human diseases. By running "
-"Rosetta at home you will help us speed up and extend our research in ways we "
-"couldn't possibly attempt without your help. You will also be helping our "
-"efforts at designing new proteins to fight diseases such as HIV, Malaria, "
-"Cancer, and Alzheimer's"
-msgstr ""
-
-#: projects.inc:167
-msgid "University of Vienna"
-msgstr ""
-
-#: projects.inc:169
-msgid ""
-"Calculate similarities between proteins. SIMAP provides a public database of "
-"the resulting data, which plays a key role in many bioinformatics research "
-"projects."
-msgstr ""
-
-#: projects.inc:175
-msgid "Earth Sciences"
-msgstr ""
-
-#: projects.inc:187
-msgid "Oxford University"
-msgstr ""
-
-#: projects.inc:188
-msgid "Climate study"
-msgstr ""
-
-#: projects.inc:189
-msgid ""
-"Investigate the approximations that have to be made in state-of-the-art "
-"climate models. By running the model thousands of times we hope to find out "
-"how the model responds to slight tweaks to these approximations - slight "
-"enough to not make the approximations any less realistic. This will allow us "
-"to improve our understanding of how sensitive our models are to small "
-"changes and also to things like changes in carbon dioxide and the sulphur "
-"cycle. This will allow us to explore how climate may change in the next "
-"century under a wide range of different scenarios."
-msgstr ""
-
-#: projects.inc:196
-msgid "Astronomy, Physics, and Chemistry"
-msgstr ""
-
-#: projects.inc:202 projects.inc:241 projects.inc:249
-msgid "Astronomy"
-msgstr ""
-
-#: projects.inc:203
-msgid ""
-"We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to "
-"generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby "
-"Universe. We will measure physical parameters (such as stellar mass surface "
-"density, star formation rate surface density, attenuation, and first-order "
-"star formation history) on a resolved pixel-by-pixel basis using spectral "
-"energy distribution (SED) fitting techniques in a distributed computing mode."
-msgstr ""
-
-#: projects.inc:225
-msgid "University of Texas at Austin"
-msgstr ""
-
-#: projects.inc:226 projects.inc:257
-msgid "Chemistry"
-msgstr ""
-
-#: projects.inc:227
-msgid ""
-"A common problem in theoretical chemistry, condensed matter physics and "
-"materials science is the calculation of the time evolution of an atomic "
-"scale system where, for example, chemical reactions and/or diffusion occur. "
-"Generally the events of interest are quite rare (many orders of magnitude "
-"slower than the vibrational movements of the atoms), and therefore direct "
-"simulations, tracking every movement of the atoms, would take thousands of "
-"years of computer calculations on the fastest present day computer before a "
-"single event of interest can be expected to occur.  Our research group is "
-"interested in calculating the long time dynamics of systems."
-msgstr ""
-
-#: projects.inc:240
-msgid "University of Illinois at Urbana-Champaign"
-msgstr ""
-
-#: projects.inc:242
-msgid ""
-"The goal of Cosmology at Home is to search for the model that best describes "
-"our Universe and to find the range of models that agree with the available "
-"astronomical particle physics data."
-msgstr ""
-
-#: projects.inc:248
-msgid "Rensselaer Polytechnic Institute"
-msgstr ""
-
-#: projects.inc:250
-msgid ""
-"The goal of Milkyway at Home is to create a highly accurate three dimensional "
-"model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
-"Survey."
-msgstr ""
-
-#: projects.inc:256
-msgid "Leiden University, The Netherlands"
-msgstr ""
-
-#: projects.inc:258
-msgid ""
-"Surface science calculations using Classical Dynamics.  Leiden Classical "
-"allows volunteers, students and other scientist to submit their personal "
-"calculations to the grid. Each user has his own personal queue for Classical "
-"Dynamics jobs. In this way students have used the grid to simulate liquid "
-"argon, or to test the validity of the ideal gas law by actually doing the "
-"simulations through the grid."
-msgstr ""
-
-#: projects.inc:272
-msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
-msgstr ""
-
-#: projects.inc:273
-msgid "Astrophysics"
-msgstr ""
-
-#: projects.inc:274
-msgid ""
-"Search for spinning neutron stars (also called pulsars) using data from the "
-"LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
-"observatory.  Einstein at Home is a World Year of Physics 2005 project "
-"supported by the American Physical Society (APS) and by a number of "
-"international organizations."
-msgstr ""
-
-#: projects.inc:288 projects.inc:296
-msgid "CERN (European Organization for Nuclear Research)"
-msgstr ""
-
-#: projects.inc:289 projects.inc:297
-msgid "Physics"
-msgstr ""
-
-#: projects.inc:290
-msgid ""
-"The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
-"European Organization for Nuclear Research, the world's largest particle "
-"physics laboratory.  It is the most powerful instrument ever built to "
-"investigate on particles proprieties. LHC at home runs simulations to improve "
-"the design of LHC and its detectors."
-msgstr ""
-
-#: projects.inc:298
-msgid ""
-"This project uses CERN-developed virtual machine technology for full-fledged "
-"LHC event physics simulation on volunteer computers.  Requires that you "
-"install VirtualBox on your computer"
-msgstr ""
-
-#: projects.inc:304
-msgid "University of California, Berkeley"
-msgstr ""
-
-#: projects.inc:305
-msgid "Astrophysics, astrobiology"
-msgstr ""
-
-#: projects.inc:306
-msgid ""
-"SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
-"goal is to detect intelligent life outside Earth. One approach, known as "
-"radio SETI, uses radio telescopes to listen for narrow-bandwidth radio "
-"signals from space. Such signals are not known to occur naturally, so a "
-"detection would provide evidence of extraterrestrial technology."
-msgstr ""
-
-#: projects.inc:320
-msgid "Bielefeld University of Applied Sciences"
-msgstr ""
-
-#: projects.inc:321
-msgid "Chemical engineering and nanotechnology"
-msgstr ""
-
-#: projects.inc:322
-msgid ""
-"The study of molecular magnets and controlled nanoscale magnetism.  These "
-"magnetic molecules may be used to develop tiny magnetic switches, with "
-"applications in medicine (such as local tumor chemotherapy) and "
-"biotechnology."
-msgstr ""
-
-#: projects.inc:329
-msgid "Multiple applications"
-msgstr ""
-
-#: projects.inc:334
-msgid "Chinese Academy of Sciences"
-msgstr ""
-
-#: projects.inc:335
-msgid "Physics, biochemistry, and others"
-msgstr ""
-
-#: projects.inc:336
-msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr ""
-
-#: projects.inc:343
-msgid "Mathematics, physics, evolution"
-msgstr ""
-
-#: projects.inc:344
-msgid ""
-"Yoyo at home is an adapter between BOINC and several existing volunteer "
-"computing projects: ECM, Muon, Evolution at home, and distributed.net"
-msgstr ""
-
-#: projects.inc:349 projects.inc:505
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr ""
-
-#: projects.inc:350
-msgid "European research projects"
-msgstr ""
-
-#: projects.inc:351
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered "
-"by the project include math, physics, biology, etc."
-msgstr ""
-
-#: projects.inc:357
-msgid "Spanish universities and research centers"
-msgstr ""
-
-#: projects.inc:358
-msgid "Various Spanish research projects"
-msgstr ""
-
-#: projects.inc:359
-msgid "Research in physics, material science, and biomedicine"
-msgstr ""
-
-#: projects.inc:365
-msgid "IBM Corporate Citizenship"
-msgstr ""
-
-#: projects.inc:366
-msgid "Medical, environmental and other humanitarian research"
-msgstr ""
-
-#: projects.inc:367
-msgid ""
-"To further critical non-profit research on some of humanity's most pressing "
-"problems by creating the world's largest volunteer computing grid.  Research "
-"includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
-"clean water and many more."
-msgstr ""
-
-#: projects.inc:373
-msgid "Mathematics, computing, and games"
-msgstr ""
-
-#: projects.inc:379
-msgid "Computer Science"
-msgstr ""
-
-#: projects.inc:387
-msgid "Mathematics, Physics, Artificial Intelligence"
-msgstr ""
-
-#: projects.inc:388
-msgid "Simulation of quantum computing; Goldbach's conjecture."
-msgstr ""
-
-#: projects.inc:428 projects.inc:436
-msgid "Cryptography"
-msgstr ""
-
-#: projects.inc:437
-msgid ""
-"Attempt to decode 3 original Enigma messages. The signals were intercepted "
-"in the North Atlantic in 1942 and are believed to be unbroken."
-msgstr ""
-
-#: projects.inc:443 projects.inc:482 projects.inc:490 projects.inc:498
-#: projects.inc:506 projects.inc:546
-msgid "Mathematics"
-msgstr ""
-
-#: projects.inc:444
-msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
-msgstr ""
-
-#: projects.inc:449
-msgid "California State University Fullerton"
-msgstr ""
-
-#: projects.inc:450
-msgid "Factorization of large integers"
-msgstr ""
-
-#: projects.inc:451
-msgid ""
-"NFS at Home is a research project that uses Internet-connected computers to do "
-"the lattice sieving step in the Number Field Sieve factorization of large "
-"integers. As a young school student, you gained your first experience at "
-"breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
-"NFS at Home is a continuation of that experience, only with integers that are "
-"hundreds of digits long."
-msgstr ""
-
-#: projects.inc:457
-msgid ""
-"Vilnius Gediminas Technical University and Kaunas University of Technology "
-"(Lithuania)"
-msgstr ""
-
-#: projects.inc:458
-msgid "Software testing"
-msgstr ""
-
-#: projects.inc:459
-msgid ""
-"The aim of this project is to provide a powerful distributed computing "
-"platform for scientists of Vilnius Gediminas Technical University (VGTU) as "
-"well as others Lithuanian academic institutions.  Current applications "
-"involve the study of Monte-Carlo based software testing."
-msgstr ""
-
-#: projects.inc:481
-msgid "Mathematical Institute of Leiden University / Kennislink"
-msgstr ""
-
-#: projects.inc:483
-msgid ""
-"Search for 'abc-triples': positive integers a,b,c such that a+b=c, a < b "
-"< c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the "
-"product of the distinct prime factors of n. The ABC conjecture says that "
-"there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for "
-"any real h > 1. The ABC conjecture is currently one of the greatest open "
-"problems in mathematics. If it is proven to be true, a lot of other open "
-"problems can be answered directly from it."
-msgstr ""
-
-#: projects.inc:491
-msgid ""
-"Primegrid has multiple projects searching for different forms of very large "
-"prime numbers, including searching for the largest known prime number."
-msgstr ""
-
-#: projects.inc:497
-msgid "Hochschule RheinMain University of Applied Sciences"
-msgstr ""
-
-#: projects.inc:499
-msgid ""
-"Search for counterexamples to two conjectures related to the identification "
-"of prime numbers"
-msgstr ""
-
-#: projects.inc:507
-msgid ""
-"Find all the generalized binary number systems (in which bases are matrices "
-"and digits are vectors) up to dimension 11."
-msgstr ""
-
-#: docutil.php:21
-msgid "Search"
-msgstr ""
-
-#: docutil.php:103
-msgid "Return to BOINC main page"
-msgstr ""
-
-#: docutil.php:114
-#, php-format
-msgid "This page is %stranslatable%s."
-msgstr ""
-
-#: download.php:38
-msgid "Download BOINC"
-msgstr ""
-
-#: download.php:40
-#, php-format
-msgid "%s for %s (%s MB)"
-msgstr ""
-
-#: download.php:87
-msgid ""
-"BOINC is a program that lets you donate your idle computer time to science "
-"projects like SETI at home, Climateprediction.net, Rosetta at home, World "
-"Community Grid, and many others. <p> After installing BOINC on your "
-"computer, you can connect it to as many of these projects as you like."
-msgstr ""
-
-#: download.php:89
-msgid ""
-"You may run this software on a computer only if you own the computer or have "
-"the permission of its owner."
-msgstr ""
-
-#: download.php:131
-msgid "System requirements"
-msgstr ""
-
-#: download.php:132
-msgid "Release notes"
-msgstr ""
-
-#: download.php:133 index.php:85
-msgid "Help"
-msgstr ""
-
-#: download.php:134
-msgid "All versions"
-msgstr ""
-
-#: download.php:135
-msgid "Version history"
-msgstr ""
-
-#: download.php:136
-msgid "GPU computing"
-msgstr ""
-
-#: download.php:154
-msgid "BOINC: compute for science"
-msgstr ""
-
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who "
-"can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr ""
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system. "
-"Skype is free (both the software and the calls).  If you don't already have "
-"Skype, please %sdownload and install it now%s.  When you're finished, return "
-"to this page."
-msgstr ""
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr ""
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr ""
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr ""
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr ""
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr ""
-
-#: help_funcs.php:107
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr ""
-
-#: help_funcs.php:110
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr ""
-
-#: index.php:23
-msgid "Computing power"
-msgstr ""
-
-#: index.php:25
-msgid "Top 100 volunteers"
-msgstr ""
-
-#: index.php:26
-msgid "Statistics"
-msgstr ""
-
-#: index.php:54
-msgid "Active:"
-msgstr ""
-
-#: index.php:54
-msgid "volunteers,"
-msgstr ""
-
-#: index.php:54
-msgid "computers.\n"
-msgstr ""
-
-#: index.php:55
-msgid "24-hour average:"
-msgstr ""
-
-#: index.php:55
-msgid "PetaFLOPS."
-msgstr ""
-
-#: index.php:67
-msgid "News"
-msgstr ""
-
-#: index.php:82
-msgid "Volunteer"
-msgstr ""
-
-#: index.php:84
-msgid "Download"
-msgstr ""
-
-#: index.php:86 index.php:123 index.php:174
-msgid "Documentation"
-msgstr ""
-
-#: index.php:87
-msgid "Add-ons"
-msgstr ""
-
-#: index.php:88
-msgid "Links"
-msgstr ""
-
-#: index.php:94
-#, php-format
-msgid ""
-" Use the idle time on your computer (Windows, Mac, or Linux) to cure "
-"diseases, study global warming, discover pulsars, and do many other types of "
-"scientific research.  It's safe, secure, and easy:  %sChoose%s projects  "
-"%sDownload%s and run BOINC software  %sEnter%s an email address and "
-"password. "
-msgstr ""
-
-#: index.php:105
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr ""
-
-#: index.php:121
-msgid "Compute with BOINC"
-msgstr ""
-
-#: index.php:124
-msgid "Software updates"
-msgstr ""
-
-#: index.php:131
-msgid ""
-"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving "
-"you the computing power of thousands of CPUs."
-msgstr ""
-
-#: index.php:135
-msgid ""
-"%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
-"Center%4."
-msgstr ""
-
-#: index.php:140
-msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
-msgstr ""
-
-#: index.php:152
-msgid "The BOINC project"
-msgstr ""
-
-#: index.php:158
-msgid "Message boards"
-msgstr ""
-
-#: index.php:159
-msgid "Email lists"
-msgstr ""
-
-#: index.php:160
-msgid "Personnel and contributors"
-msgstr ""
-
-#: index.php:161
-msgid "Events"
-msgstr ""
-
-#: index.php:162
-msgid "Papers and talks"
-msgstr ""
-
-#: index.php:163
-msgid "Research projects"
-msgstr ""
-
-#: index.php:164
-msgid "Logos and graphics"
-msgstr ""
-
-#: index.php:165
-msgid "and"
-msgstr ""
-
-#: index.php:169
-msgid "Help wanted"
-msgstr ""
-
-#: index.php:171
-msgid "Programming"
-msgstr ""
-
-#: index.php:172
-msgid "Translation"
-msgstr ""
-
-#: index.php:173
-msgid "Testing"
-msgstr ""
-
-#: index.php:175
-msgid "Publicity"
-msgstr ""
-
-#: index.php:177
-msgid "Software development"
-msgstr ""
-
-#: index.php:178
-msgid "APIs for add-on software"
-msgstr ""
-
-#: index.php:212
-msgid "Browser default"
-msgstr ""
-
-#: index.php:265
-#, php-format
-msgid ""
-"Open-source software for %svolunteer computing%s and %sgrid computing%s."
-msgstr ""
-
-#: index.php:278
-msgid "BOINC is based at The University of California, Berkeley"
-msgstr ""
-
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../html/inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
diff --git a/locale/pl/BOINC-Client.mo b/locale/pl/BOINC-Client.mo
index 5ef81a4..a6d0ef7 100644
Binary files a/locale/pl/BOINC-Client.mo and b/locale/pl/BOINC-Client.mo differ
diff --git a/locale/pl/BOINC-Client.po b/locale/pl/BOINC-Client.po
index a00284b..004b639 100644
--- a/locale/pl/BOINC-Client.po
+++ b/locale/pl/BOINC-Client.po
@@ -1,163 +1,179 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Simek <gosimek at gmail.com>, 2015
-# Michal Jablonski <jablonski.michal at gmail.com>, 2015
+# Michal Jablonski <inactive+yakuzza at transifex.com>, 2015
+# Wiktor Jezioro <wikjezioro at op.pl>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-09-11 19:49+0000\n"
-"Last-Translator: Simek <gosimek at gmail.com>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-19 10:34+0000\n"
+"Last-Translator: Wiktor Jezioro <wikjezioro at op.pl>\n"
 "Language-Team: Polish (http://www.transifex.com/boinc/boinc/language/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Wiadomość z menedżera kont"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Wiadomość z serwera"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Niektóre zadania wymagają więcej pamięci niż ustawiono w preferencjach. Sprawdź swoje ustawienia."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Nie można zapisać pliku statusu; sprawdź uprawnienia do katalogu"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Zmienna środowiskowa HTTP_PROXY powinna zawierać proxy HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Użyłeś złego adresu URL dla tego projektu. Usuń projekt, a następnie dodaj %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Ten projekt używa starego adresu URL. Jak chcesz, usuń projekt i potem dodaj %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Błąd składni w app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Plik, do którego odwołuje się app_info.xml nie istnieje:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Dostępna jest nowa wersja BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Pobieranie"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "nie może być użyteCUDA lub OpenCL "
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Nieoczekiwany tekst w cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Nierozpoznany znacznik w cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Brakujący znacznik otwierający w cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Błąd ustawień w cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Brakujący znacznik zamykający w cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Aby to naprawić, możesz"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "zmień Ustawienia Projektu na stronie projektu"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "usuń wyłączenia GPU w Twoim pliku cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "zmień swoje ustawienia na stronie Twojego menadżera kont"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Nieprawidłowy lub brakujący klucz konta. Aby rozwiązać problem, usuń a następnie dodaj ten projekt."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Nieprawidłowy klucz podpisujący kod. Aby rozwiązać problem, usuń a następnie dodaj ten projekt."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Projekt zmienił swój klucz zabezpieczeń. Usuń a następnie dodaj ten projekt."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Ten projekt nie wspiera systemu operacyjnego"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Ten projekt nie wspiera typu procesora"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Zainstalowany klient BOINC jest zbyt stary. Zainstaluj najnowszą wersję."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Ten projekt nie wspiera komputerów typu"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Zaktualizuj sterowniki do najnowszej wersji, aby móc użyć GPU do obliczeń"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Zainstaluj najnowsze sterowniki do karty graficznej, aby uruchomić wszystkie aplikacje GPU tego projektu"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Nowsza wersja klienta BOINC jest potrzebna, aby wykorzystać twoją kartę NVIDIA. Uaktualnij program do najnowszej wersji."
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "%s GPU jest wymagane do obliczeń w tym projekcie"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Brak dostępnych zadań dla wybranych aplikacji."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Twój typ komputera nie jest wspierany przez ten projekt"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Wymagana jest nowsza wersja klienta BOINC. Zainstaluj najnowszą wersję."
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Zadania dla %s są dostępne, ale nie są akceptowane z powodu Twoich ustawień"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Nieznana nazwa aplikacji w app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Twój plik app_info.xml nie posiada użytecznej wersji"
diff --git a/locale/pl/BOINC-Manager.mo b/locale/pl/BOINC-Manager.mo
index 35289f7..4920036 100644
Binary files a/locale/pl/BOINC-Manager.mo and b/locale/pl/BOINC-Manager.mo differ
diff --git a/locale/pl/BOINC-Manager.po b/locale/pl/BOINC-Manager.po
old mode 100755
new mode 100644
index 5447db0..a3e5723
--- a/locale/pl/BOINC-Manager.po
+++ b/locale/pl/BOINC-Manager.po
@@ -1,67 +1,61 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC Manager 6.x\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-02 00:00-0800\n"
-"PO-Revision-Date: 2013-01-20 16:11+0000\n"
-"Last-Translator: Pawel <pawel.pbm at gmail.com>\n"
-"Language-Team: Ruch Oporu Sekcja Badawcza <marekz at irc.pl>\n"
-"Language: pl\n"
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Adrian <stelkovsky at gmail.com>, 2015
+# Simek <gosimek at gmail.com>, 2015
+# Krzysztof Faryna <krzysiek.faryna at gmail.com>, 2016
+# Maciej Jackowski <maciej.jackowski at outlook.com>, 2016
+# Michal Jablonski <inactive+yakuzza at transifex.com>, 2015
+# Szymon Xyz <hah450 at wp.pl>, 2016
+# Wiktor Jezioro <wikjezioro at op.pl>, 2015,2017
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-17 21:09+0000\n"
+"Last-Translator: Wiktor Jezioro <wikjezioro at op.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/boinc/boinc/language/pl/)\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-1: clientgui/msw\n"
-"X-Poedit-SearchPath-2: clientgui/gtk\n"
-"X-Poedit-SearchPath-3: clientgui/mac\n"
-"X-Poedit-SearchPath-0: clientgui\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-POOTLE-MTIME: 1358698319.0\n"
 
-# 81%
-#: AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
-#, c-format, fuzzy
 msgid "Identify your account at %s"
-msgstr "Zidentyfikuj swoje konto"
+msgstr "Ustaw swoje konto w %s"
 
-#: AccountInfoPage.cpp:393
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
-msgstr ""
-"Wprowadź informacje dotyczące twojego konta.\n"
-"(aby utworzyć konto odwiedź stronę internetową projektu)"
+msgstr "Wprowadź informacje dotyczące twojego konta.\n(aby utworzyć konto odwiedź stronę internetową projektu)"
 
-#: AccountInfoPage.cpp:397
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
-msgstr ""
-"W projekcie nie można w tej chwili tworzyć nowych kont.\n"
-"Możesz go dodać tylko jeśli posiadasz już w nim konto."
+msgstr "W projekcie nie można w tej chwili tworzyć nowych kont.\nMożesz go dodać tylko jeśli posiadasz już w nim konto."
 
-#: AccountInfoPage.cpp:401
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Czy uczestniczysz już w tym projekcie?"
 
-#: AccountInfoPage.cpp:405
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Nie, nowy uczestnik"
 
-#: AccountInfoPage.cpp:408
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Tak, istniejący uczestnik"
 
-#: AccountInfoPage.cpp:413
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -69,497 +63,510 @@ msgid ""
 "Please click on the 'Find login information' link\n"
 "below to find out what to put in the email address and\n"
 "password fields."
-msgstr ""
-"Nie jest możliwe automatyczne dodanie informacji\n"
-"o twoim koncie.\n"
-"\n"
-"Kliknij 'Znajdź informacje logowania'\n"
-"aby ustalić co należy wpisać\n"
-"w pola adresu e-mail oraz hasła."
+msgstr "Nie jest możliwe automatyczne dodanie informacji\no twoim koncie.\n\nKliknij 'Znajdź informacje logowania'\naby ustalić co należy wpisać\nw pola adresu e-mail oraz hasła."
 
-#: AccountInfoPage.cpp:416
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Znajdź informacje logowania"
 
-#: AccountInfoPage.cpp:436 AccountInfoPage.cpp:641
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Hasło:"
 
-#: AccountInfoPage.cpp:443 AccountInfoPage.cpp:665
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Podaj &hasło:"
 
-#: AccountInfoPage.cpp:446
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "P&otwierdź hasło:"
 
-#: AccountInfoPage.cpp:453
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Czy uczestniczysz już w %s?"
 
-#: AccountInfoPage.cpp:482
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Nazwa użytkownika:"
 
-#: AccountInfoPage.cpp:508
+#: clientgui/AccountInfoPage.cpp:483
+msgid "&Email address or LDAP ID:"
+msgstr "Adres &Email albo LDAP ID:"
+
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "Adres &e-mail:"
 
-#: AccountInfoPage.cpp:515
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "minimalna długość %d"
 
-#: AccountInfoPage.cpp:522
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Zapomniałeś hasła?"
 
-#: AccountInfoPage.cpp:529
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
-msgstr ""
-"Jeśli nie zarejestrowałeś się jeszcze przy użyciu menadżera kont\n"
-" zrób to przed przejściem dalej. Kliknij poniższy link\n"
-" aby się zarejestrować albo odzyskać zapomniane hasło."
+msgstr "Jeśli nie zarejestrowałeś się jeszcze przy użyciu menadżera kont\n zrób to przed przejściem dalej. Kliknij poniższy link\n aby się zarejestrować albo odzyskać zapomniane hasło."
 
-#: AccountInfoPage.cpp:532
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Strona internetowa menadżera kont"
 
-#: AccountInfoPage.cpp:574 WelcomePage.cpp:348
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Dodaj projekt"
 
-#: AccountInfoPage.cpp:576
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Uaktualnij menadżera kont"
 
-#: AccountInfoPage.cpp:578 WelcomePage.cpp:307 WelcomePage.cpp:321
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Użyj menadżera kont"
 
-#: AccountInfoPage.cpp:585
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
-msgstr ""
+msgstr "Proszę wpisać nazwę użytkownika."
 
-#: AccountInfoPage.cpp:587
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
-msgstr "Podaj adres e-mail"
+msgstr "Proszę wpisać adres email."
 
-#: AccountInfoPage.cpp:597
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
-msgstr ""
+msgstr "Proszę wpisać hasło składające się z conajmniej %d liter."
 
-#: AccountInfoPage.cpp:607
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Wprowadzone hasła nie są identyczne. Wprowadź je ponownie."
 
-#: AccountManagerInfoPage.cpp:272
+#: clientgui/AccountManagerInfoPage.cpp:270
 msgid "Choose an account manager"
 msgstr "Wybierz menedżera kont"
 
-#: AccountManagerInfoPage.cpp:275
+#: clientgui/AccountManagerInfoPage.cpp:273
 msgid ""
 "To choose an account manager, click its name or \n"
 "type its URL below."
-msgstr ""
-"Aby wybrać menedżera kont kliknij jego nazwę, albo \n"
-" wpisz jego adres URL poniżej."
+msgstr "Aby wybrać menedżera kont kliknij jego nazwę, albo \n wpisz jego adres URL poniżej."
 
-#: AccountManagerInfoPage.cpp:279
-#, fuzzy
+#: clientgui/AccountManagerInfoPage.cpp:277
 msgid "Account manager details:"
-msgstr "Strona internetowa menadżera kont"
+msgstr "Szczegóły menadżera kont:"
 
-#: AccountManagerInfoPage.cpp:283
-#, fuzzy
+#: clientgui/AccountManagerInfoPage.cpp:281
 msgid "Account manager &URL:"
-msgstr "Adres &URL menadżera kont:"
+msgstr "Adres URL menadżera kont:"
 
-#: AccountManagerInfoPage.cpp:287
+#: clientgui/AccountManagerInfoPage.cpp:285
 msgid "Open web page"
-msgstr ""
+msgstr "Otwórz stronę internetową"
 
-#: AccountManagerInfoPage.cpp:290
+#: clientgui/AccountManagerInfoPage.cpp:288
 msgid "Visit this account manager's web site"
-msgstr ""
+msgstr "Odwiedź stronę internetową menadżera kont"
 
-#: AccountManagerProcessingPage.cpp:187 AccountManagerPropertiesPage.cpp:193
+#. %s is the project name
+#. i.e. 'BOINC', 'GridRepublic'
+#: clientgui/AccountManagerProcessingPage.cpp:186
+#: clientgui/AccountManagerPropertiesPage.cpp:192
 #, c-format
 msgid "Communicating with %s."
 msgstr "Trwa łączenie z %s."
 
-#: AccountManagerProcessingPage.cpp:194 AccountManagerPropertiesPage.cpp:200
+#: clientgui/AccountManagerProcessingPage.cpp:193
+#: clientgui/AccountManagerPropertiesPage.cpp:199
 msgid "Communicating with server."
 msgstr "Trwa wymiana informacji z serwerem."
 
-#: AccountManagerProcessingPage.cpp:199 AccountManagerPropertiesPage.cpp:205
+#: clientgui/AccountManagerProcessingPage.cpp:198
+#: clientgui/AccountManagerPropertiesPage.cpp:204
 msgid "Please wait..."
 msgstr "Czekaj..."
 
-#: AccountManagerProcessingPage.cpp:326
+#: clientgui/AccountManagerProcessingPage.cpp:325
 msgid "An internal server error has occurred.\n"
 msgstr "Nastąpił wewnętrzny błąd serwera.\n"
 
-#: AdvancedFrame.cpp:95
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Połączony"
 
-#: AdvancedFrame.cpp:103
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Rozłączony"
 
-#: AdvancedFrame.cpp:322 sg_BoincSimpleFrame.cpp:119
+#: clientgui/AdvancedFrame.cpp:329
+#, c-format
+msgid "New %s window..."
+msgstr "Nowe okno %s..."
+
+#: clientgui/AdvancedFrame.cpp:333
+#, c-format
+msgid "Open another %s window"
+msgstr "Otwórz kolejne okno %s"
+
+#: clientgui/AdvancedFrame.cpp:344
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Wybierz kompouter...⇥Ctrl+Shift+I"
+
+#: clientgui/AdvancedFrame.cpp:345
+msgid "Connect to a BOINC client on another computer"
+msgstr "Połącz z klientem BOINC na innym komputerze"
+
+#: clientgui/AdvancedFrame.cpp:349
+msgid "Shut down connected client..."
+msgstr "Zamknij podłączonego klienta..."
+
+#: clientgui/AdvancedFrame.cpp:350
+msgid "Shut down the currently connected BOINC client"
+msgstr "Wyłącz aktualnie połączononego klienta BOINC"
+
+#: clientgui/AdvancedFrame.cpp:355 clientgui/sg_BoincSimpleFrame.cpp:120
 #, c-format
 msgid "Close the %s window"
 msgstr "Zamknij okno %s"
 
-#: AdvancedFrame.cpp:325 sg_BoincSimpleFrame.cpp:122
-msgid "&Close Window"
+#: clientgui/AdvancedFrame.cpp:358 clientgui/sg_BoincSimpleFrame.cpp:123
+msgid "&Close window"
 msgstr "&Zamknij okno"
 
-#: AdvancedFrame.cpp:336 AdvancedFrame.cpp:343 AdvancedFrame.cpp:350
+#: clientgui/AdvancedFrame.cpp:367 clientgui/AdvancedFrame.cpp:372
+#: clientgui/AdvancedFrame.cpp:377 clientgui/sg_BoincSimpleFrame.cpp:132
+#: clientgui/sg_BoincSimpleFrame.cpp:137
 #, c-format
 msgid "Exit %s"
 msgstr "Zamknij %s"
 
-#: AdvancedFrame.cpp:371
+#: clientgui/AdvancedFrame.cpp:391 clientgui/sg_BoincSimpleFrame.cpp:151
+msgid "Preferences..."
+msgstr "Ustawienia..."
+
+#: clientgui/AdvancedFrame.cpp:400
 msgid "&Notices\tCtrl+Shift+N"
 msgstr "&Powiadomienia\tCtrl+Shift+N"
 
-#: AdvancedFrame.cpp:372
-msgid "Display notices"
+#: clientgui/AdvancedFrame.cpp:401
+msgid "Show notices"
 msgstr "Pokaż powiadomienia"
 
-#: AdvancedFrame.cpp:377
+#: clientgui/AdvancedFrame.cpp:406
 msgid "&Projects\tCtrl+Shift+P"
 msgstr "&Projekty\tCtrl+Shift+P"
 
-#: AdvancedFrame.cpp:378
-msgid "Display projects"
+#: clientgui/AdvancedFrame.cpp:407
+msgid "Show projects"
 msgstr "Pokaż projekty"
 
-#: AdvancedFrame.cpp:383
+#: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
 msgstr "&Zadania\tCtrl+Shift+T"
 
-#: AdvancedFrame.cpp:384
-msgid "Display tasks"
+#: clientgui/AdvancedFrame.cpp:413
+msgid "Show tasks"
 msgstr "Pokaż zadania"
 
-#: AdvancedFrame.cpp:389
+#: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
 msgstr "Przesyła&nie\tCtrl+Shift+X"
 
-#: AdvancedFrame.cpp:390
-msgid "Display transfers"
-msgstr "Pokaż przesyłane dane"
+#: clientgui/AdvancedFrame.cpp:419
+msgid "Show file transfers"
+msgstr "Pokaż przesyłane pliki"
 
-#: AdvancedFrame.cpp:395
+#: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
 msgstr "&Statystyki\tCtrl+Shift+S"
 
-#: AdvancedFrame.cpp:396
-msgid "Display statistics"
+#: clientgui/AdvancedFrame.cpp:425
+msgid "Show statistics"
 msgstr "Pokaż statystyki"
 
-#: AdvancedFrame.cpp:401
-msgid "&Disk usage\tCtrl+Shift+D"
-msgstr "&Użycie dysku\tCtrl+Shift+D"
+#: clientgui/AdvancedFrame.cpp:430
+msgid "&Disk\tCtrl+Shift+D"
+msgstr "&Dysk\tCtrl+Shift+D"
 
-#: AdvancedFrame.cpp:402
-msgid "Display disk usage"
-msgstr "Pokaż użycie dysku"
+#: clientgui/AdvancedFrame.cpp:431
+msgid "Show disk usage"
+msgstr "Pokaż użycie dysku twardego"
 
-#: AdvancedFrame.cpp:409
+#: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
 msgstr "Widok uproszczony...\tCtrl+Shift+V"
 
-#: AdvancedFrame.cpp:410
-msgid "Display the simple graphical interface."
-msgstr "Przełącz do widoku uproszczonego."
+#: clientgui/AdvancedFrame.cpp:439
+msgid "Switch to the Simple View"
+msgstr "Przełącz na widok uproszczony"
 
-#: AdvancedFrame.cpp:424
-msgid "&Add project or account manager..."
-msgstr "&Dodaj projekt lub menadżera kont..."
+#: clientgui/AdvancedFrame.cpp:453 clientgui/AdvancedFrame.cpp:477
+#: clientgui/sg_BoincSimpleFrame.cpp:205
+msgid "&Add project..."
+msgstr "&Dodaj projekt..."
 
-#: AdvancedFrame.cpp:425 sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Uczestnicz w którymś z ponad 30 projektów w wielu dziedzinach nauki"
+#: clientgui/AdvancedFrame.cpp:454 clientgui/AdvancedFrame.cpp:478
+#: clientgui/sg_BoincSimpleFrame.cpp:206
+msgid "Add a project"
+msgstr "Dodaj projekt"
+
+#: clientgui/AdvancedFrame.cpp:458
+msgid "&Use account manager..."
+msgstr "Użyj menadżera kont..."
+
+#: clientgui/AdvancedFrame.cpp:459
+msgid "Use an account manager to control this computer."
+msgstr "Użyj menedżera kont aby kontrolować ten komputer."
 
-#: AdvancedFrame.cpp:429
+#: clientgui/AdvancedFrame.cpp:463
 #, c-format
 msgid "&Synchronize with %s"
 msgstr "&Zsynchronizuj z %s"
 
-#: AdvancedFrame.cpp:433
+#: clientgui/AdvancedFrame.cpp:467
 #, c-format
 msgid "Get current settings from %s"
 msgstr "Pobierz aktualne ustawienia z %s"
 
-#: AdvancedFrame.cpp:443
-msgid "&Add project..."
-msgstr "&Dodaj projekt..."
-
-#: AdvancedFrame.cpp:444
-msgid "Add a project"
-msgstr "Dodaj projekt"
-
-#: AdvancedFrame.cpp:447
+#: clientgui/AdvancedFrame.cpp:481
 #, c-format
 msgid "S&top using %s..."
 msgstr "&Przestań używać %s..."
 
-#: AdvancedFrame.cpp:453
+#: clientgui/AdvancedFrame.cpp:487
 msgid "Remove this computer from account manager control."
 msgstr "Usuń ten komputer z menadżera kont."
 
-#: AdvancedFrame.cpp:458 sg_BoincSimpleFrame.cpp:178
-msgid "&Options..."
-msgstr "&Ustawienia..."
+#: clientgui/AdvancedFrame.cpp:493
+msgid "Run CPU &benchmarks"
+msgstr "Uruchom miernik &wydajności procesora"
 
-#: AdvancedFrame.cpp:459 sg_BoincSimpleFrame.cpp:179
-msgid "Configure display options and proxy settings"
-msgstr "Konfiguracja opcji wyglądu i ustawień serwera proxy"
+#: clientgui/AdvancedFrame.cpp:494
+msgid "Run tests that measure CPU speed"
+msgstr "Uruchom testy mierzące szybkość procesora"
 
-#: AdvancedFrame.cpp:463 sg_BoincSimpleFrame.cpp:172
-msgid "Computing &preferences..."
-msgstr "&Preferencje przetwarzania..."
+#: clientgui/AdvancedFrame.cpp:498
+msgid "Retry pending transfers"
+msgstr "Ponów oczekujące przesyłanie."
 
-#: AdvancedFrame.cpp:464 sg_BoincSimpleFrame.cpp:173
-msgid "Configure computing preferences"
-msgstr "Konfiguracja opcji przetwarzania"
+#: clientgui/AdvancedFrame.cpp:499
+msgid "Retry deferred file transfers and task requests"
+msgstr "Ponów wstrzymany transfer plików i pobieranie zadań"
+
+#: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
+msgid "Event Log...\tCtrl+Shift+E"
+msgstr "Dziennik zdarzeń...\t Ctrl+Shift+E"
+
+#: clientgui/AdvancedFrame.cpp:505
+msgid "Show diagnostic messages"
+msgstr "Pokaż informacje diagnostyczne"
 
-#: AdvancedFrame.cpp:472
+#: clientgui/AdvancedFrame.cpp:513
 msgid "&Run always"
 msgstr "&Uruchamiaj zawsze"
 
-#: AdvancedFrame.cpp:473
+#: clientgui/AdvancedFrame.cpp:514
 msgid "Allow work regardless of preferences"
-msgstr ""
-"Przetwarzanie danych bez względu na ograniczenia wynikające z preferencji"
+msgstr "Przetwarzanie danych bez względu na ograniczenia wynikające z preferencji"
 
-#: AdvancedFrame.cpp:477
+#: clientgui/AdvancedFrame.cpp:518
 msgid "Run based on &preferences"
 msgstr "Uruchamiaj zgodnie z &preferencjami"
 
-#: AdvancedFrame.cpp:478
+#: clientgui/AdvancedFrame.cpp:519
 msgid "Allow work according to preferences"
-msgstr ""
-"Przetwarzanie danych zgodnie z ograniczeniami wynikającymi z preferencji"
+msgstr "Przetwarzanie danych zgodnie z ograniczeniami wynikającymi z preferencji"
 
-#: AdvancedFrame.cpp:482
+#: clientgui/AdvancedFrame.cpp:523
 msgid "&Suspend"
 msgstr "&Wstrzymaj"
 
-#: AdvancedFrame.cpp:483
+#: clientgui/AdvancedFrame.cpp:524
 msgid "Stop work regardless of preferences"
 msgstr "Wstrzymanie przetwarzania danych"
 
-#: AdvancedFrame.cpp:508
+#: clientgui/AdvancedFrame.cpp:549
 msgid "Use GPU always"
 msgstr "Zawsze używaj karty graficznej"
 
-#: AdvancedFrame.cpp:509
+#: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
-msgstr ""
-"Przetwarzanie danych przy użyciu karty graficznej bez względu na "
-"ograniczenia wynikające z preferencji"
+msgstr "Przetwarzanie danych przy użyciu karty graficznej bez względu na ograniczenia wynikające z preferencji"
 
-#: AdvancedFrame.cpp:513
+#: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
 msgstr "Używaj karty graficznej zgodnie z preferencjami"
 
-#: AdvancedFrame.cpp:514
+#: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
-msgstr ""
-"Przetwarzanie danych z użyciem karty graficznej zgodnie z ograniczeniami "
-"wynikającymi z preferencji"
+msgstr "Przetwarzanie danych z użyciem karty graficznej zgodnie z ograniczeniami wynikającymi z preferencji"
 
-#: AdvancedFrame.cpp:518
+#: clientgui/AdvancedFrame.cpp:559
 msgid "Suspend GPU"
 msgstr "Wstrzymaj używanie karty graficznej"
 
-#: AdvancedFrame.cpp:519
+#: clientgui/AdvancedFrame.cpp:560
 msgid "Stop GPU work regardless of preferences"
-msgstr ""
-"Wstrzymanie przetwarzania danych przez kartę graficzną bez względu na "
-"ustawienia preferencji"
+msgstr "Wstrzymanie przetwarzania danych przez kartę graficzną bez względu na ustawienia preferencji"
 
-#: AdvancedFrame.cpp:543
-msgid "Network activity always available"
-msgstr "&Sieć zawsze dostępna"
+#: clientgui/AdvancedFrame.cpp:584
+msgid "Network activity always"
+msgstr "Aktywność sieciowa zawsze dostępna"
 
-#: AdvancedFrame.cpp:544
+#: clientgui/AdvancedFrame.cpp:585
 msgid "Allow network activity regardless of preferences"
-msgstr ""
-"Sieć zawsze dostępna bez względu na ograniczenia wynikające z preferencji"
+msgstr "Sieć zawsze dostępna bez względu na ograniczenia wynikające z preferencji"
 
-#: AdvancedFrame.cpp:548
+#: clientgui/AdvancedFrame.cpp:589
 msgid "Network activity based on preferences"
 msgstr "Dostęp do sieci zgodnie z &preferencjami"
 
-#: AdvancedFrame.cpp:549
+#: clientgui/AdvancedFrame.cpp:590
 msgid "Allow network activity according to preferences"
 msgstr "Sieć dostępna zgodnie z ograniczeniami wynikającymi z preferencji."
 
-#: AdvancedFrame.cpp:553
-msgid "Network activity suspended"
-msgstr "Zablokuj dostęp do sieci"
+#: clientgui/AdvancedFrame.cpp:594
+msgid "Suspend network activity"
+msgstr "Zatrzymaj aktywność sieciową"
 
-#: AdvancedFrame.cpp:554
-msgid "Stop BOINC network activity"
-msgstr "Wstrzymaj wykorzystanie sieci przez BOINC"
+#: clientgui/AdvancedFrame.cpp:595
+msgid "Stop network activity"
+msgstr "Zatrzymaj aktywność sieciową"
 
-#: AdvancedFrame.cpp:564
-#, c-format
-msgid "Connect to another computer running %s"
-msgstr "Połącz z innym komputerem używającym %s"
+#: clientgui/AdvancedFrame.cpp:604 clientgui/sg_BoincSimpleFrame.cpp:191
+msgid "Computing &preferences..."
+msgstr "&Preferencje przetwarzania..."
+
+#: clientgui/AdvancedFrame.cpp:605 clientgui/sg_BoincSimpleFrame.cpp:192
+msgid "Configure computing preferences"
+msgstr "Konfiguracja opcji przetwarzania"
 
-#: AdvancedFrame.cpp:569
-msgid "Select computer..."
-msgstr "Wybierz komputer..."
+#: clientgui/AdvancedFrame.cpp:610
+msgid "Exclusive applications..."
+msgstr "Aplikacje z wyłącznością..."
 
-#: AdvancedFrame.cpp:574
-msgid "Shut down connected client..."
-msgstr "Zamknij podłączonego klienta..."
+#: clientgui/AdvancedFrame.cpp:611
+msgid "Configure exclusive applications"
+msgstr "Ustaw aplikacje z wyłącznością"
 
-#: AdvancedFrame.cpp:575
-msgid "Shut down the currently connected client"
-msgstr "Zamyka obecnie podłączonego klienta BOINC"
+#: clientgui/AdvancedFrame.cpp:616
+msgid "Select columns..."
+msgstr "Wybierz kolumny..."
 
-#: AdvancedFrame.cpp:579
-msgid "Run CPU &benchmarks"
-msgstr "Uruchom miernik &wydajności procesora"
+#: clientgui/AdvancedFrame.cpp:617
+msgid "Select which columns to display"
+msgstr "Wybierz które kolumny mają być widoczne"
 
-#: AdvancedFrame.cpp:580
-msgid "Runs BOINC CPU benchmarks"
-msgstr "Uruchomienie miernika wydajności procesora"
+#: clientgui/AdvancedFrame.cpp:621
+msgid "Event Log options...\tCtrl+Shift+F"
+msgstr "Opcje dziennika zdarzeń...\t Ctrl+Shift+E"
 
-#: AdvancedFrame.cpp:584
-msgid "Do network communication"
-msgstr "Ponów próby połączeń"
+#: clientgui/AdvancedFrame.cpp:622
+msgid "Enable or disable various diagnostic messages"
+msgstr "Włącz lub wyłącz różne informacje diagnostyczne"
 
-#: AdvancedFrame.cpp:585
-msgid "Do all pending network communication"
-msgstr "Ponów komunikację sieciową"
+#: clientgui/AdvancedFrame.cpp:626 clientgui/sg_BoincSimpleFrame.cpp:197
+msgid "&Other options..."
+msgstr "&Pozostałe ustawienia"
 
-# 94%
-#: AdvancedFrame.cpp:589
-#, fuzzy
+#: clientgui/AdvancedFrame.cpp:627
+msgid "Configure display options and network settings"
+msgstr "Skonfiguruj opcje wyświetlania i ustawienia sieciowe"
+
+#: clientgui/AdvancedFrame.cpp:632
 msgid "Read config files"
-msgstr "Wczytaj plik konfiguracyjny"
+msgstr "Czytaj pliki konfiguracyjne"
 
-#: AdvancedFrame.cpp:590
-msgid "Read configuration info from cc_config.xml and any app_config.xml files"
-msgstr ""
+#: clientgui/AdvancedFrame.cpp:633
+msgid ""
+"Read configuration info from cc_config.xml and any app_config.xml files"
+msgstr "Sprawdź konfigurację w pliku cc_config.xml oraz we wszystkich app_config.xml"
 
-#: AdvancedFrame.cpp:594
+#: clientgui/AdvancedFrame.cpp:637
 msgid "Read local prefs file"
 msgstr "Wczytaj plik preferencji lokalnych"
 
-#: AdvancedFrame.cpp:595
+#: clientgui/AdvancedFrame.cpp:638
 msgid "Read preferences from global_prefs_override.xml."
-msgstr ""
-"Wczytywanie konfiguracji zawartej w pliku preferencji lokalnych "
-"global_prefs_override.xml."
-
-#: AdvancedFrame.cpp:600
-#, c-format
-msgid "Launch another instance of %s..."
-msgstr "Uruchom kolejną instancję %s..."
-
-#: AdvancedFrame.cpp:604
-#, c-format
-msgid "Launch another %s"
-msgstr "Uruchom kolejnego %s"
-
-#: AdvancedFrame.cpp:614
-msgid "Event Log...\tCtrl+Shift+E"
-msgstr "Dziennik zdarzeń...\t Ctrl+Shift+E"
-
-#: AdvancedFrame.cpp:615
-msgid "Display diagnostic messages."
-msgstr "Pokaż informacje diagnostyczne."
+msgstr "Wczytywanie konfiguracji zawartej w pliku preferencji lokalnych global_prefs_override.xml."
 
-#: AdvancedFrame.cpp:625 sg_BoincSimpleFrame.cpp:188
+#: clientgui/AdvancedFrame.cpp:646 clientgui/sg_BoincSimpleFrame.cpp:219
 #, c-format
 msgid "%s &help"
 msgstr "%s - pomoc on-line"
 
-#: AdvancedFrame.cpp:631 sg_BoincSimpleFrame.cpp:194
+#: clientgui/AdvancedFrame.cpp:650 clientgui/sg_BoincSimpleFrame.cpp:223
 #, c-format
 msgid "Show information about %s"
 msgstr "Pokaż informacje on-line na temat %s"
 
-#: AdvancedFrame.cpp:643
+#: clientgui/AdvancedFrame.cpp:660
 #, c-format
 msgid "&%s help"
 msgstr "&%s - pomoc on-line"
 
-#: AdvancedFrame.cpp:649 sg_BoincSimpleFrame.cpp:212
+#: clientgui/AdvancedFrame.cpp:664 clientgui/sg_BoincSimpleFrame.cpp:237
 #, c-format
 msgid "Show information about the %s"
 msgstr "Pokaż informacje on-line na temat %s"
 
-#: AdvancedFrame.cpp:661 sg_BoincSimpleFrame.cpp:224
+#: clientgui/AdvancedFrame.cpp:675 clientgui/sg_BoincSimpleFrame.cpp:247
 #, c-format
-#, c-format, fuzzy
 msgid "%s &web site"
 msgstr "&Strona główna projektu %s"
 
-#: AdvancedFrame.cpp:667 sg_BoincSimpleFrame.cpp:230
+#: clientgui/AdvancedFrame.cpp:679 clientgui/sg_BoincSimpleFrame.cpp:251
 #, c-format
 msgid "Show information about BOINC and %s"
 msgstr "Pokaż informacje o BOINC oraz %s"
 
-#: AdvancedFrame.cpp:679 BOINCTaskBar.cpp:530 sg_BoincSimpleFrame.cpp:242
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
+#: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
 msgstr "&O %s..."
 
-#: AdvancedFrame.cpp:685 sg_BoincSimpleFrame.cpp:248
+#: clientgui/AdvancedFrame.cpp:696 clientgui/sg_BoincSimpleFrame.cpp:268
 msgid "Licensing and copyright information."
 msgstr "Informacje dotyczące licencji oraz praw autorskich."
 
-#: AdvancedFrame.cpp:692 sg_BoincSimpleFrame.cpp:255
+#: clientgui/AdvancedFrame.cpp:703 clientgui/sg_BoincSimpleFrame.cpp:275
 msgid "&File"
 msgstr "&Plik"
 
-#: AdvancedFrame.cpp:696 sg_BoincSimpleFrame.cpp:259
+#: clientgui/AdvancedFrame.cpp:707 clientgui/sg_BoincSimpleFrame.cpp:279
 msgid "&View"
 msgstr "&Widok"
 
-#: AdvancedFrame.cpp:700 sg_BoincSimpleFrame.cpp:263
-msgid "&Tools"
-msgstr "&Opcje"
-
-#: AdvancedFrame.cpp:704
+#: clientgui/AdvancedFrame.cpp:711
 msgid "&Activity"
 msgstr "&Aktywność"
 
-#: AdvancedFrame.cpp:708
-msgid "A&dvanced"
-msgstr "&Zaawansowane"
+#: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
+msgid "&Options"
+msgstr "&Opcje"
+
+#: clientgui/AdvancedFrame.cpp:719 clientgui/sg_BoincSimpleFrame.cpp:287
+msgid "&Tools"
+msgstr "&Opcje"
 
-#: AdvancedFrame.cpp:712 DlgEventLog.cpp:332 sg_BoincSimpleFrame.cpp:267
-#: wizardex.cpp:374 wizardex.cpp:381
+#: clientgui/AdvancedFrame.cpp:723 clientgui/sg_BoincSimpleFrame.cpp:291
+#: clientgui/wizardex.cpp:374 clientgui/wizardex.cpp:381
 msgid "&Help"
 msgstr "&Pomoc"
 
-#: AdvancedFrame.cpp:1199
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Przestań używać %s"
 
-#: AdvancedFrame.cpp:1204
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -567,270 +574,225 @@ msgid ""
 "but you'll have to manage projects manually.\n"
 "\n"
 "Do you want to stop using %s?"
-msgstr ""
-"Jeśli przestaniesz używać %s,\n"
-"nadal zachowasz konta we wszystkich projektach, w których uczestniczysz,\n"
-"ale będziesz musiał zarządzać tym kontami ręcznie.\n"
-"\n"
-"Czy chcesz przestać używać %s?"
+msgstr "Jeśli przestaniesz używać %s,\nnadal zachowasz konta we wszystkich projektach, w których uczestniczysz,\nale będziesz musiał zarządzać tym kontami ręcznie.\n\nCzy chcesz przestać używać %s?"
 
-#: AdvancedFrame.cpp:1401
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Zamknij obecnie używanego klienta..."
 
-#: AdvancedFrame.cpp:1410
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
-msgstr ""
-"%s zamknie obecnie podłączonego klienta,\n"
-"i zapyta o nowego hosta do którego ma się podłączyć."
+msgstr "%s zamknie obecnie podłączonego klienta,\ni zapyta o nowego hosta do którego ma się podłączyć."
 
-#: AdvancedFrame.cpp:1745 DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: AdvancedFrame.cpp:1754
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
-#, c-format, c-format
 msgid "%s has successfully added %s"
 msgstr "%s został pomyślnie dołączony do %s"
 
-#: AdvancedFrame.cpp:1893
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: AdvancedFrame.cpp:1897
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Łączenie z %s"
 
-#: AdvancedFrame.cpp:1900
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Połączony z %s (%s)"
 
-#: AlreadyExistsPage.cpp:184
+#: clientgui/AlreadyExistsPage.cpp:184
 msgid "Username already in use"
 msgstr "Wybrana nazwa użytkownika jest już zajęta"
 
-#: AlreadyExistsPage.cpp:187
+#: clientgui/AlreadyExistsPage.cpp:187
 msgid ""
 "An account with that username already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Konto z taką nazwą uzytkownika już istnieje i ma inne hasło\n"
-"niż to które wprowadziłeś.\n"
-"\n"
-"Odwiedź stronę projektu i postepuj zgodnie z podanymi tam instrukcjami."
+msgstr "Konto z taką nazwą uzytkownika już istnieje i ma inne hasło\nniż to które wprowadziłeś.\n\nOdwiedź stronę projektu i postepuj zgodnie z podanymi tam instrukcjami."
 
-#: AlreadyExistsPage.cpp:191
+#: clientgui/AlreadyExistsPage.cpp:191
 msgid "Email address already in use"
 msgstr "Podany adres e-mail jest już używany"
 
-#: AlreadyExistsPage.cpp:194
+#: clientgui/AlreadyExistsPage.cpp:194
 msgid ""
 "An account with that email address already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Konto z takim adresem e-mail już istnieje i ma inne hasło\n"
-"niż to które wprowadziłeś.\n"
-"\n"
-"Odwiedź stronę projektu i postępuj zgodnie z podanymi tam instrukcjami."
+msgstr "Konto z takim adresem e-mail już istnieje i ma inne hasło\nniż to które wprowadziłeś.\n\nOdwiedź stronę projektu i postępuj zgodnie z podanymi tam instrukcjami."
 
-#: AsyncRPC.cpp:1031
+#: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
 msgstr "Nawiązywanie połączenia z klientem BOINC. Proszę czekać..."
 
-#: AsyncRPC.cpp:1034
+#: clientgui/AsyncRPC.cpp:1034
 #, c-format
 msgid "&Quit %s"
 msgstr "Opuść %s"
 
-#: AsyncRPC.cpp:1036
+#: clientgui/AsyncRPC.cpp:1036
 #, c-format
 msgid "E&xit %s"
 msgstr "Zamknij %s"
 
-#: AsyncRPC.cpp:1040
+#: clientgui/AsyncRPC.cpp:1040
 #, c-format
 msgid "%s - Communication"
 msgstr "%s - Komunikacja"
 
-#: AsyncRPC.cpp:1056 DlgAdvPreferencesBase.cpp:107 sg_DlgPreferences.cpp:433
+#: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: BOINCBaseFrame.cpp:505
+#: clientgui/BOINCBaseFrame.cpp:512
 #, c-format
 msgid "%s - Connection Error"
 msgstr "%s - Błąd połączenia"
 
-#: BOINCBaseFrame.cpp:514
+#: clientgui/BOINCBaseFrame.cpp:521
 msgid ""
 "You currently are not authorized to manage the client.\n"
-"Please contact your administrator to add you to the 'boinc_users' local user "
-"group."
-msgstr ""
-"Obecnie nie masz uprawnień do zarządzania klientem BOINC.\n"
-"Skontaktuj się z administratorem, aby dołączył cię do grupy użytkowników "
-"'boinc_users' na tym komputerze."
+"Please contact your administrator to add you to the 'boinc_users' local user group."
+msgstr "Obecnie nie masz uprawnień do zarządzania klientem BOINC.\nSkontaktuj się z administratorem, aby dołączył cię do grupy użytkowników 'boinc_users' na tym komputerze."
 
-#: BOINCBaseFrame.cpp:523
+#: clientgui/BOINCBaseFrame.cpp:530
 msgid ""
 "Authorization failed connecting to running client.\n"
 "Make sure you start this program in the same directory as the client."
-msgstr ""
-"Autoryzacja w trakcie podłączanie do uruchomionego klienta nie powiodła się.\n"
-"Upewnij się czy uruchamiasz ten program w tym samym katalogu, w którym "
-"znajduje się klient."
+msgstr "Autoryzacja w trakcie podłączanie do uruchomionego klienta nie powiodła się.\nUpewnij się czy uruchamiasz ten program w tym samym katalogu, w którym znajduje się klient."
 
-#: BOINCBaseFrame.cpp:525
+#: clientgui/BOINCBaseFrame.cpp:532
 msgid "Authorization failed connecting to running client."
-msgstr ""
-"Autoryzacja w trakcie podłączanie do uruchomionego klienta nie powiodła się."
+msgstr "Autoryzacja w trakcie podłączanie do uruchomionego klienta nie powiodła się."
 
-#: BOINCBaseFrame.cpp:533
+#: clientgui/BOINCBaseFrame.cpp:540
 msgid "The password you have provided is incorrect, please try again."
 msgstr "Wprowadzone hasło jest nieprawidłowe, spróbuj ponownie."
 
-#: BOINCBaseFrame.cpp:577
+#: clientgui/BOINCBaseFrame.cpp:584
 #, c-format
 msgid "%s - Connection Failed"
 msgstr "%s - Połączenie nie powiodło się"
 
-#: BOINCBaseFrame.cpp:586
+#: clientgui/BOINCBaseFrame.cpp:593
 #, c-format
 msgid ""
 "%s is not able to connect to a %s client.\n"
 "Would you like to try to connect again?"
-msgstr ""
-"%s nie może połączyć się z klientem %s.\n"
-"Czy chcesz spróbować połączyć się ponownie?"
+msgstr "%s nie może połączyć się z klientem %s.\nCzy chcesz spróbować połączyć się ponownie?"
 
-#: BOINCBaseFrame.cpp:622
+#: clientgui/BOINCBaseFrame.cpp:629
 #, c-format
 msgid "%s - Daemon Start Failed"
 msgstr "%s - usługa nie została uruchomiona"
 
-#: BOINCBaseFrame.cpp:632
+#: clientgui/BOINCBaseFrame.cpp:639
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
-"Please launch the Control Panel->Administative Tools->Services applet and "
-"start the BOINC service."
-msgstr ""
-"%s nie jest w stanie uruchomić usługi klienta %s.\n"
-"Otwórz Panel Sterowania -> Narzędzia Administracyjne -> Usługi i uruchom "
-"usługę BOINC."
+"Please launch the Control Panel->Administative Tools->Services applet and start the BOINC service."
+msgstr "%s nie jest w stanie uruchomić usługi klienta %s.\nOtwórz Panel Sterowania -> Narzędzia Administracyjne -> Usługi i uruchom usługę BOINC."
 
-#: BOINCBaseFrame.cpp:638
+#: clientgui/BOINCBaseFrame.cpp:645
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please start the daemon and try again."
-msgstr ""
-"%s nie jest w stanie uruchomić klienta %s.\n"
-"Uruchom usługę i spróbuj ponownie."
+msgstr "%s nie jest w stanie uruchomić klienta %s.\nUruchom usługę i spróbuj ponownie."
 
-#: BOINCBaseFrame.cpp:689
+#: clientgui/BOINCBaseFrame.cpp:696
 #, c-format
 msgid "%s - Connection Status"
 msgstr "%s - Status połączenia"
 
-#: BOINCBaseFrame.cpp:700
+#: clientgui/BOINCBaseFrame.cpp:707
 #, c-format
 msgid ""
 "%s is not currently connected to a %s client.\n"
-"Please use the 'Advanced\\Select Computer...' menu option to connect up to a "
-"%s client.\n"
+"Please use the 'Advanced\\Select Computer...' menu option to connect up to a %s client.\n"
 "To connect up to your local computer please use 'localhost' as the host name."
-msgstr ""
-"%s nie jest obecnie podłączony do klienta %s.\n"
-"Użyj opcji 'Zaawansowane\\Wybierz komputer...' aby połączyć się z klientem %"
-"s.\n"
-"Aby podłączyć się do komputera lokalnego użyj nazwy 'localhost' jako nazwy "
-"komputera."
-
-# 88%
-# 100%
-#: BOINCBaseView.cpp:779
+msgstr "%s nie jest obecnie podłączony do klienta %s.\nUżyj opcji 'Zaawansowane\\Wybierz komputer...' aby połączyć się z klientem %s.\nAby podłączyć się do komputera lokalnego użyj nazwy 'localhost' jako nazwy komputera."
+
+#. Create the web sites task group
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Strony projektu"
 
-#: BOINCClientManager.cpp:575
+#: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
 msgstr "%s - Nieoczekiwane zakończenie"
 
-#: BOINCClientManager.cpp:585
+#: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
 "Would you like to restart it again?"
-msgstr ""
-"Klient został trzykrotnie niespodziewanie zamknięty w ciągu ostatnich %d "
-"minut.\n"
-"Czy chcesz go zrestartować?"
+msgstr "Klient %s 3 razy zakończył niespodziewanie działanie w ciągu ostatnich %d minut.\nCzy chcesz uruchomić go ponownie?"
 
-#: BOINCDialupManager.cpp:61
+#: clientgui/BOINCDialupManager.cpp:61
 #, c-format
 msgid "%s - Network Status"
 msgstr "%s - Stan połączenia internetowego"
 
-#: BOINCDialupManager.cpp:241
+#: clientgui/BOINCDialupManager.cpp:241
 #, c-format
 msgid ""
 "%s needs to connect to the Internet.\n"
 "May it do so now?"
-msgstr ""
-"%s chce nawiązać połączenie z internetem.\n"
-"Czy może to zrobić teraz?"
+msgstr "%s chce nawiązać połączenie z internetem.\nCzy może to zrobić teraz?"
 
-#: BOINCDialupManager.cpp:254
+#: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
 msgstr "%s łączy się z internetem."
 
-#: BOINCDialupManager.cpp:303
+#: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
 msgstr "%s połączył się z internetem."
 
-#: BOINCDialupManager.cpp:331
+#: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
 msgstr "%s nie mógł nawiązać połączenia z internetem."
 
-#: BOINCDialupManager.cpp:372
+#: clientgui/BOINCDialupManager.cpp:372
 #, c-format
 msgid ""
 "%s has detected it is now connected to the Internet.\n"
 "Updating all projects and retrying all transfers."
-msgstr ""
-"%s wykrył aktywne połączenie z internetem.\n"
-"Nastąpi próba aktualizacji wszystkich projektów\n"
-"oraz ponowienie wszystkich transferów plików."
+msgstr "%s wykrył aktywne połączenie z internetem.\nNastąpi próba aktualizacji wszystkich projektów\noraz ponowienie wszystkich transferów plików."
 
-#: BOINCDialupManager.cpp:417
+#: clientgui/BOINCDialupManager.cpp:417
 #, c-format
 msgid "%s has successfully disconnected from the Internet."
 msgstr "%s rozłączył się z internetem."
 
-#: BOINCDialupManager.cpp:433
+#: clientgui/BOINCDialupManager.cpp:433
 #, c-format
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s nie mógł rozłączyć się z internetem."
 
-#: BOINCGUIApp.cpp:339
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -841,853 +803,983 @@ msgid ""
 " or\n"
 "  - contact your administrator to add you to the 'boinc_master'\n"
 "     user group."
-msgstr ""
-"Nie jesteś upoważniony aby zarządzać tym klientem.\n"
-"\n"
-"Aby zarządzać %s należy:\n"
-"- przeinstalować %s zaznaczając \"Tak\" w pytaniu o\n"
-"użytkowników nie będących administratorami\n"
-"lub\n"
-"- skontaktuj się z administratorem aby dodał cię do\n"
-"użytkowników grupy 'boinc_master'."
-
-#: BOINCGUIApp.cpp:345
+msgstr "Nie jesteś upoważniony aby zarządzać tym klientem.\n\nAby zarządzać %s należy:\n- przeinstalować %s zaznaczając \"Tak\" w pytaniu o\nużytkowników nie będących administratorami\nlub\n- skontaktuj się z administratorem aby dodał cię do\nużytkowników grupy 'boinc_master'."
+
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
-msgstr ""
-"%s - właściciel lub uprawnienia nie są ustawione prawidłowo; należy "
-"przeinstalować %s.\n"
-"(Kod błędu %d"
+msgstr "%s - właściciel lub uprawnienia nie są ustawione prawidłowo; należy przeinstalować %s.\n(Kod błędu %d"
 
-#: BOINCGUIApp.cpp:351
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " w "
 
-#: BOINCGUIApp.cpp:354 MainDocument.cpp:2484 MainDocument.cpp:2534
-#: MainDocument.cpp:2554 ViewTransfers.cpp:803
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: BOINCGUIApp.cpp:384
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
-msgstr ""
-"Aby BOINC działał poprawnie wymagane jest ponowne uruchomienie komputera.\n"
-"Wykonaj restart i spróbuj ponownie."
+msgstr "Aby BOINC działał poprawnie wymagane jest ponowne uruchomienie komputera.\nWykonaj restart i spróbuj ponownie."
 
-#: BOINCGUIApp.cpp:385 DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "Menadżer BOINC"
 
-#: BOINCGUIApp.cpp:572
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "Menadżer BOINC został uruchomiony automatycznie przez system operacyjny"
 
-#: BOINCGUIApp.cpp:574
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Uruchom BOINC tak, aby widoczna była tylko ikona w zasobniku systemowym"
 
-#: BOINCGUIApp.cpp:576
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Katalog zawierający plik wykonywalny klienta BOINC"
 
-#: BOINCGUIApp.cpp:577
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Katalog danych BOINC"
 
-#: BOINCGUIApp.cpp:579
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Nazwa hosta lub adres IP"
 
-#: BOINCGUIApp.cpp:580
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "Numer portu RPC GUI"
 
-#: BOINCGUIApp.cpp:581
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Hasło"
 
-#: BOINCGUIApp.cpp:582
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Uruchom BOINC z dodatkowymi argumentami"
 
-#: BOINCGUIApp.cpp:583
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "zablokuj użytkowników oraz uprawnienia BOINC"
 
-#: BOINCGUIApp.cpp:584
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
-msgstr ""
-"ustaw tryb debugowania skórek aby odblokować komunikaty błędów menadżera "
-"skórek"
+msgstr "ustaw tryb debugowania skórek aby odblokować komunikaty błędów menadżera skórek"
 
-#: BOINCGUIApp.cpp:585
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "zezwolono na wiele instancji Menedżera BOINC"
 
-#: BOINCGUIApp.cpp:587
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Nie wykorzystywane: workaround dla błędu w XCode 4.2"
 
-#: BOINCGUIApp.cpp:814
+#: clientgui/BOINCGUIApp.cpp:591
+msgid "Not run the daemon"
+msgstr "Nie uruchamiać demona."
+
+#. These are just special tags so deal with them in a special way
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Wykrywanie automatyczne)"
 
-#: BOINCGUIApp.cpp:815
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Nieznany)"
 
-#: BOINCGUIApp.cpp:816
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Użytkownika)"
 
-#: BOINCTaskBar.cpp:508
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Otwiera stronę %s..."
 
-#: BOINCTaskBar.cpp:515
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Otwórz %s'a..."
 
-#: BOINCTaskBar.cpp:522 BOINCTaskBar.cpp:619 BOINCTaskBar.cpp:627
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Wstrzymaj aktywność na 1 godzinę"
 
-#: BOINCTaskBar.cpp:524 BOINCTaskBar.cpp:646 BOINCTaskBar.cpp:654
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Wstrzymaj aktywność karty graficznej na 1 godzinę"
 
-#: BOINCTaskBar.cpp:542
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Zamknij"
 
-#: BOINCTaskBar.cpp:612 ViewProjects.cpp:718 ViewWork.cpp:795
-#: sg_BoincSimpleFrame.cpp:758 sg_ProjectCommandPopup.cpp:110
-#: sg_TaskCommandPopup.cpp:102
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
+#: clientgui/sg_ProjectCommandPopup.cpp:125
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Wznów"
 
-#: BOINCTaskBar.cpp:639
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Wznów aktywność karty graficznej"
 
-#: BOINCTaskBar.cpp:713
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Przetwarzanie jest włączone"
 
-#: BOINCTaskBar.cpp:717
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Przetwarzanie jest wstrzymane - "
 
-#: BOINCTaskBar.cpp:727
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Przetwarzanie GPU jest włączone"
 
-#: BOINCTaskBar.cpp:730
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "Przetwarzanie GPU jest wstrzymane -"
 
-#: BOINCTaskBar.cpp:739
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Dostęp do sieci jest włączony"
 
-#: BOINCTaskBar.cpp:742
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Dostęp do sieci jest wstrzymany - "
 
-#: BOINCTaskBar.cpp:750
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Ponowne łączenie z klientem."
 
-#: BOINCTaskBar.cpp:752
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Niepołączony z klientem."
 
-#: BOINCTaskBar.cpp:805
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Powiadomienia"
 
-#: BOINCTaskBar.cpp:811
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Są nowe powiadomienia - kliknij aby zobaczyć."
 
-#: CompletionErrorPage.cpp:199
+#: clientgui/CompletionErrorPage.cpp:199
 msgid "Failed to add project"
 msgstr "Niepowodzenie podczas dodawania projektu"
 
-#: CompletionErrorPage.cpp:204
+#: clientgui/CompletionErrorPage.cpp:204
 msgid "Failed to update account manager"
 msgstr "Niepowodzenie podczas aktualizacji menadżera kont"
 
-#: CompletionErrorPage.cpp:208
+#: clientgui/CompletionErrorPage.cpp:208
 msgid "Failed to remove account manager"
 msgstr "Niepowodzenie podczas usuwania menadżera kont"
 
-#: CompletionErrorPage.cpp:212
+#: clientgui/CompletionErrorPage.cpp:212
 msgid "Failed to add account manager"
 msgstr "Niepowodzenie podczas dodawania menadżera kont"
 
-#: CompletionErrorPage.cpp:221
+#: clientgui/CompletionErrorPage.cpp:221
 msgid ""
 "Please try again later.\n"
 "\n"
 "Click Finish to close."
-msgstr ""
+msgstr "Proszę spróbować ponownie później.\n\nKliknij Zakończ by zamknąć."
 
-#: CompletionErrorPage.cpp:225 CompletionPage.cpp:222 CompletionPage.cpp:242
-#: CompletionPage.cpp:273
+#: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
+#: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
 msgid "Click Finish to close."
 msgstr "Naciśnij Zakończ aby zamknąć okno."
 
-#: CompletionErrorPage.cpp:234
+#: clientgui/CompletionErrorPage.cpp:234
 msgid "Messages from server:"
 msgstr "Wiadomości z serwera:"
 
-#: CompletionPage.cpp:207
+#: clientgui/CompletionPage.cpp:207
 msgid "Project added"
 msgstr "Projekt został dodany"
 
-#: CompletionPage.cpp:213
+#: clientgui/CompletionPage.cpp:213
 msgid "This project has been successfully added."
 msgstr "Projekt został pomyślnie dodany."
 
-#: CompletionPage.cpp:218
+#: clientgui/CompletionPage.cpp:218
 msgid ""
 "When you click Finish, your web browser will go to a page where\n"
 "you can set your account name and preferences."
-msgstr ""
-"Kiedy naciśniesz Zakończ, twoja przeglądarka otworzy stronę,\n"
-"na której będziesz mógł wybrać nazwę swojego konta oraz ustawienia "
-"preferencji."
+msgstr "Kiedy naciśniesz Zakończ, twoja przeglądarka otworzy stronę,\nna której będziesz mógł wybrać nazwę swojego konta oraz ustawienia preferencji."
 
-#: CompletionPage.cpp:232
+#: clientgui/CompletionPage.cpp:232
 #, c-format
 msgid "Update from %s completed."
 msgstr "Aktualizacja z %s zakończona."
 
-#: CompletionPage.cpp:236
+#: clientgui/CompletionPage.cpp:236
 msgid "Update completed."
 msgstr "Aktualizacja zakończona."
 
-#: CompletionPage.cpp:247
+#. Attach Completed
+#: clientgui/CompletionPage.cpp:247
 msgid "Now using account manager"
 msgstr "Teraz korzystasz z menadżera kont"
 
-#: CompletionPage.cpp:252
+#: clientgui/CompletionPage.cpp:252
 #, c-format
 msgid "Welcome to %s!"
 msgstr "Witamy w %s!"
 
-#: CompletionPage.cpp:263
+#: clientgui/CompletionPage.cpp:263
 #, c-format
 msgid "You are now using %s to manage accounts."
 msgstr "Teraz korzystasz z %s do zarządzania kontami."
 
-#: CompletionPage.cpp:267
+#: clientgui/CompletionPage.cpp:267
 msgid "You are now using this account manager."
 msgstr "Teraz korzystasz z tego menadżera kont."
 
-#: DlgAbout.cpp:113 mac/Mac_GUI.cpp:96
+#: clientgui/DlgAbout.cpp:113
 #, c-format
 msgid "About %s"
 msgstr "O %s"
 
-#: DlgAbout.cpp:172
+#: clientgui/DlgAbout.cpp:172
 msgid "Version:"
 msgstr "Wersja:"
 
-#: DlgAbout.cpp:180
+#: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
 msgstr "Wersja wxWidgets:"
 
-#: DlgAbout.cpp:188
+#: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
 msgstr "Prawa autorskie:"
 
-# 98%
-#: DlgAbout.cpp:192
-#, fuzzy
+#: clientgui/DlgAbout.cpp:192
 msgid ""
-"(C) 2003-2013 University of California, Berkeley.\n"
+"(C) 2003-2015 University of California, Berkeley.\n"
 "All Rights Reserved."
-msgstr ""
-"(C) 2003-2011 Uniwersytet Kalifornijski w Berkeley.\n"
-"Wszystkie prawa zastrzeżone."
+msgstr "(C) 2003-2015 Uniwersytet Kalifornijski w Berkeley.\nWszelkie prawa żastrzeżone."
 
-#: DlgAbout.cpp:196
-msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr ""
-"Berkeley Open Infrastructure for Network Computing\n"
-"Otwarta Platforma Obliczeń Rozproszonych BOINC"
+#: clientgui/DlgAbout.cpp:196
+msgid "BOINC is distributed under the GNU Lesser General Public License v3.0."
+msgstr "BOINC jest rozpowszechniany na licencji GNU Lesser General Public License v3.0."
 
-#: DlgAbout.cpp:208 DlgExitMessage.cpp:173 DlgGenericMessage.cpp:120
-#: DlgOptions.cpp:396 DlgSelectComputer.cpp:163
+#: clientgui/DlgAbout.cpp:203
+msgid "For more information, visit "
+msgstr "Aby uzyskać więcej informacji, odwiedź"
+
+#: clientgui/DlgAbout.cpp:215 clientgui/DlgExitMessage.cpp:173
+#: clientgui/DlgGenericMessage.cpp:120 clientgui/DlgOptions.cpp:410
+#: clientgui/DlgSelectComputer.cpp:163
 msgid "&OK"
 msgstr "&OK"
 
-#: DlgAdvPreferences.cpp:544
-msgid "invalid number"
-msgstr ""
-
-#: DlgAdvPreferences.cpp:545
-msgid "invalid time, format is HH:MM"
-msgstr "nieprawidłowy czas, prawidłowy format to HH:MM"
-
-#: DlgAdvPreferences.cpp:546
-msgid "invalid time interval, format is HH:MM-HH:MM"
-msgstr "nieprawidłowy zakres czasu, prawidłowy format to HH:MM-HH:MM"
-
-#: DlgAdvPreferences.cpp:751
-msgid "invalid input value detected"
-msgstr "wykryto wprowadzenie nieprawidłowej wartości"
-
-#: DlgAdvPreferences.cpp:753
-msgid "Validation Error"
-msgstr "Błąd walidacji"
-
-#: DlgAdvPreferences.cpp:885 DlgAdvPreferences.cpp:891
-#: DlgAdvPreferences.cpp:897
-msgid "Applications to add"
-msgstr "Aplikacje do dodania"
-
-#: DlgAdvPreferences.cpp:914
-#, c-format
-msgid "'%s' is not an executable application."
-msgstr "'%s' nie jest aplikacją wykonywalną."
-
-#: DlgAdvPreferences.cpp:915 DlgAdvPreferences.cpp:962
-#: DlgAdvPreferences.cpp:986
-msgid "Add Exclusive App"
-msgstr "Dodaj aplikację z wyłącznością"
-
-#: DlgAdvPreferences.cpp:927
-msgid "Name of application to add?"
-msgstr "Nazwa aplikacji do dodania"
-
-#: DlgAdvPreferences.cpp:927
-msgid "Add exclusive app"
-msgstr "Dodaj aplikację z wyłącznością"
-
-#: DlgAdvPreferences.cpp:961
-#, c-format
-msgid "Application names must end with '%s'"
-msgstr "Nazwa aplikacji musi kończyć się '%s'"
-
-#: DlgAdvPreferences.cpp:985
+#: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
-msgid "'%s' is already in the list."
-msgstr "'%s' jest już na liście."
+msgid "%s - Computing preferences"
+msgstr "%s - Ustawienia przetwarzania"
 
-#: DlgAdvPreferences.cpp:1077
+#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:163
 msgid ""
-"Do you really want to clear all local preferences?\n"
-"(This will not affect exclusive applications.)"
-msgstr ""
-"Czy na pewno chcesz wyczyścić lokalne preferencje?\n"
-"(Nie będzie to miało wpływu na aplikacje z wyłącznością.)"
-
-#: DlgAdvPreferences.cpp:1078 sg_DlgPreferences.cpp:1030
-msgid "Confirmation"
-msgstr "Potwierdzenie"
+"Using local preferences.\n"
+"Click \"Use web prefs\" to use web-based preferences from"
+msgstr "W użyciu są lokalne ustawienia.\nKliknij \"Użyj ustawień sieciowych\", żeby użyć ustawień z serwera."
 
-#: DlgAdvPreferencesBase.cpp:46 sg_DlgPreferences.cpp:946
-#, c-format
-msgid "%s - Preferences"
-msgstr "%s - Preferencje"
+#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
+msgid "Using web-based preferences from"
+msgstr "Używanie ustawień z serwera od"
 
-#: DlgAdvPreferencesBase.cpp:62
-msgid ""
-"This dialog controls preferences for this computer only.\n"
-"Click OK to set preferences.\n"
-"Click Clear to restore web-based settings (except exclusive apps)."
-msgstr ""
-"Poniższe ustawienia dotyczą wyłącznie tego komputera.\n"
-"Naciśnij OK aby zapisać preferencje.\n"
-"Naciśnij Wyczyść aby przywrócić preferencje z serwera (z wyjątkiem aplikacji "
-"z wyłącznością)."
+#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
+msgid "Set values and click OK to use local preferences instead."
+msgstr "Ustaw wartości i kliknij przycisk OK, zamiast korzystania z lokalnych preferencji."
 
-#: DlgAdvPreferencesBase.cpp:65 sg_DlgPreferences.cpp:428
-msgid "Clear"
-msgstr "Wyczyść"
+#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
+msgid "Use web prefs"
+msgstr "Użyj preferencji sieciowych"
 
-#: DlgAdvPreferencesBase.cpp:66
-msgid "clear all local preferences and close the dialog"
-msgstr "Wyczyść lokalne preferencje i zamknij okno"
+#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
+msgid "Restore web-based preferences and close the dialog."
+msgstr "Przywróć ustawienia strony i zamknij okno."
 
-#: DlgAdvPreferencesBase.cpp:81
-msgid "processor usage"
-msgstr "Użycie procesora"
+#: clientgui/DlgAdvPreferencesBase.cpp:140
+#: clientgui/DlgAdvPreferencesBase.cpp:684
+msgid "Computing"
+msgstr "Obliczenia"
 
-#: DlgAdvPreferencesBase.cpp:84
-msgid "network usage"
-msgstr "Użycie sieci"
+#. Network schedule
+#: clientgui/DlgAdvPreferencesBase.cpp:143
+#: clientgui/DlgAdvPreferencesBase.cpp:886
+msgid "Network"
+msgstr "Sieć"
 
-#: DlgAdvPreferencesBase.cpp:87
-msgid "disk and memory usage"
-msgstr "Użycie dysku oraz pamięci"
+#: clientgui/DlgAdvPreferencesBase.cpp:146
+msgid "Disk and memory"
+msgstr "Dysk i pamięć"
 
-#: DlgAdvPreferencesBase.cpp:90
-msgid "exclusive applications"
-msgstr "Aplikacje z wyłącznością"
+#: clientgui/DlgAdvPreferencesBase.cpp:149
+msgid "Daily schedules"
+msgstr "Rozkład dzienny"
 
-#: DlgAdvPreferencesBase.cpp:102 sg_DlgPreferences.cpp:424
+#: clientgui/DlgAdvPreferencesBase.cpp:162
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
 
-#: DlgAdvPreferencesBase.cpp:103
-msgid "save all values and close the dialog"
-msgstr "Zapisz wszystkie wartości i zamknij okno"
+#: clientgui/DlgAdvPreferencesBase.cpp:163
+msgid "Save all values and close the dialog."
+msgstr "Zapisz wszystkie wartości i zamknij okno."
 
-#: DlgAdvPreferencesBase.cpp:108
-msgid "close the dialog without saving"
-msgstr "Zamknij okno bez zapisywania wartości"
+#: clientgui/DlgAdvPreferencesBase.cpp:169
+msgid "Close the dialog without saving."
+msgstr "Zamknij okno bez zapisywania zmian."
 
-#: DlgAdvPreferencesBase.cpp:112 Localization.cpp:35 Localization.cpp:121
-#: Localization.cpp:139 sg_BoincSimpleFrame.cpp:794 sg_DlgPreferences.cpp:439
+#: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
+#: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
+#: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Pomoc"
 
-#: DlgAdvPreferencesBase.cpp:113
-msgid "shows the preferences web page"
-msgstr "Pokaż stronę internetową z opisem preferencji"
+#: clientgui/DlgAdvPreferencesBase.cpp:174
+msgid "Shows the preferences web page."
+msgstr "Wyświetla stronę internetową preferencji "
 
-#: DlgAdvPreferencesBase.cpp:135
-msgid "Computing allowed"
-msgstr "Przetwarzanie dozwolone"
+#: clientgui/DlgAdvPreferencesBase.cpp:236
+#: clientgui/DlgAdvPreferencesBase.cpp:463
+msgid "Usage limits"
+msgstr "Limit użycia"
 
-#: DlgAdvPreferencesBase.cpp:139
-msgid "While computer is on batteries"
-msgstr "Gdy komputer jest zasilany z baterii"
-
-#: DlgAdvPreferencesBase.cpp:142
+#: clientgui/DlgAdvPreferencesBase.cpp:241
+#, no-c-format
 msgid ""
-"check this if you want this computer to do work while it runs on batteries"
-msgstr ""
-"Zaznacz jeśli chcesz aby komputer przetwarzał zadania podczas zasilania z "
-"baterii"
-
-#: DlgAdvPreferencesBase.cpp:148
-msgid "While computer is in use"
-msgstr "Gdy komputer jest używany"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Zostaw kilka wolnych CPU dla innych aplikacji. Przykładowo 75% znaczy używaj 6 rdzeni z 8 rdzeniowego CPU."
 
-#: DlgAdvPreferencesBase.cpp:151
-msgid ""
-"check this if you want this computer to do work even when you're using it"
-msgstr "Zaznacz jeśli chcesz aby komputer przetwarzał zadania gdy jest używany"
+#: clientgui/DlgAdvPreferencesBase.cpp:243
+#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
+msgid "Use at most"
+msgstr "Używaj nie więcej niż"
 
-#: DlgAdvPreferencesBase.cpp:157
-msgid "Use GPU while computer is in use"
-msgstr "Używaj karty graficznej, gdy komputer jest używany"
+#: clientgui/DlgAdvPreferencesBase.cpp:248
+#, no-c-format
+msgid "% of the CPUs"
+msgstr "% procesora"
 
-#: DlgAdvPreferencesBase.cpp:160
+#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
+#, no-c-format
 msgid ""
-"check this if you want your GPU to do work even when you're using the "
-"computer"
-msgstr ""
-"Zaznacz tą opcje jeśli chcesz, aby karta graficzna wykonywała zadania kiedy "
-"komputer jest używany"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Zawiesza wykonywanie obliczeń co kilka sekund, żeby zredukować temperaturę procesora i zużycie energii. Przykładowo: 75% oznacza wykonywanie obliczeń przez 3 sekundy i 1 sekundę przerwy."
 
-#: DlgAdvPreferencesBase.cpp:172
-msgid "Only after computer has been idle for"
-msgstr "Tylko gdy komputer pozostaje nieużywany przez co najmniej"
+#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
+#, no-c-format
+msgid "% of CPU time"
+msgstr "% czasu procesora"
 
-#: DlgAdvPreferencesBase.cpp:182
-msgid ""
-"do work only after you haven't used the computer for this number of minutes"
-msgstr ""
-"Przetwarzaj dane tylko gdy komputer nie jest używany co najmniej od podanej "
-"ilości minut"
+#: clientgui/DlgAdvPreferencesBase.cpp:267
+msgid "When to suspend"
+msgstr "Kiedy wstrzymywać"
 
-#: DlgAdvPreferencesBase.cpp:187 DlgAdvPreferencesBase.cpp:336
-#: sg_DlgPreferences.cpp:417
-msgid "minutes"
-msgstr "minut(y)"
+#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:239
+msgid "Suspend when computer is on battery"
+msgstr "Wstrzymaj gdy komputer jest zasilany baterią"
 
-#: DlgAdvPreferencesBase.cpp:206
-msgid "While processor usage is less than"
-msgstr "Gdy użycie procesora jest mniejsze niż"
+#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Zaznacz tą opcję do zatrzymania przetwarzania na urządzeniu mobilnym, kiedy pracujesz na baterii."
 
-#: DlgAdvPreferencesBase.cpp:216
-msgid "suspend work if processor usage exceeds this level"
-msgstr ""
-"Wstrzymaj przetwarzanie gdy wykorzystanie procesora przekracza ten poziom"
+#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
+msgid "Suspend when computer is in use"
+msgstr "Wstrzymaj pracę gdy komputer jest w użyciu"
 
-#: DlgAdvPreferencesBase.cpp:221
-msgid "percent (0 means no restriction)"
-msgstr "procent (0 oznacza brak ograniczeń)"
+#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Zaznacz tą opcje do zatrzymania przetwarzania i transferu plików kiedy używasz komputera."
 
-#: DlgAdvPreferencesBase.cpp:235 DlgAdvPreferencesBase.cpp:496
-msgid "Every day between hours of"
-msgstr "Każdego dnia pomiędzy godzinami"
+#: clientgui/DlgAdvPreferencesBase.cpp:291
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Wstrzymaj przetwarzanie przez GPU gdy komputer jest w użyciu"
 
-#: DlgAdvPreferencesBase.cpp:239
-msgid "start work at this time"
-msgstr "początek przetwarzania"
+#: clientgui/DlgAdvPreferencesBase.cpp:294
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Wstrzymaj przetwarzanie przez GPU gdy komputer jest w użyciu."
 
-#: DlgAdvPreferencesBase.cpp:243 DlgAdvPreferencesBase.cpp:504
-#: sg_DlgPreferences.cpp:326 sg_DlgPreferences.cpp:348
-msgid "and"
-msgstr "a"
+#. min idle time
+#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Określ kiedy uznać, że komputer 'jest w użyciu'."
 
-#: DlgAdvPreferencesBase.cpp:247
-msgid "stop work at this time"
-msgstr "koniec przetwarzania"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "\"W użyciu\" oznacza, aktywność myszki/klawiatury w ciągu ostatnich"
 
-#: DlgAdvPreferencesBase.cpp:251 DlgAdvPreferencesBase.cpp:512
-msgid "(no restriction if equal)"
-msgstr "(równe wartości oznaczają brak ograniczeń)"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:315
+#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:276
+msgid "minutes"
+msgstr "minut(y)"
 
-#: DlgAdvPreferencesBase.cpp:256 DlgAdvPreferencesBase.cpp:517
-msgid "Day-of-week override:"
-msgstr "Dodatkowe warunki dla dni tygodnia:"
+#: clientgui/DlgAdvPreferencesBase.cpp:323
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Wstrzymaj, gdy aplikacje inne od BOINC używają procesora powyżej"
 
-#: DlgAdvPreferencesBase.cpp:261 DlgAdvPreferencesBase.cpp:522
-msgid "check box to specify hours for this day of week"
-msgstr "Zaznacz aby podać godziny dla tego dnia tygodnia"
+#: clientgui/DlgAdvPreferencesBase.cpp:325
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Wstrzymaj przetwarzanie kiedy twój komputer jest obciążony innymi aplikacjami."
 
-#: DlgAdvPreferencesBase.cpp:267 DlgAdvPreferencesBase.cpp:528
-msgid "Monday"
-msgstr "Poniedziałek"
+#: clientgui/DlgAdvPreferencesBase.cpp:339
+msgid "To suspend by time of day, see the \"Daily Schedules\" section."
+msgstr "Aby wstrzymać przetwarzanie o danej porze dnia, sprawdź sekcję \"Rozkład dzienny\"."
 
-#: DlgAdvPreferencesBase.cpp:274 DlgAdvPreferencesBase.cpp:535
-msgid "Tuesday"
-msgstr "Wtorek"
+#. Context: heading for a group of miscellaneous preferences
+#: clientgui/DlgAdvPreferencesBase.cpp:349
+#: clientgui/DlgAdvPreferencesBase.cpp:516
+msgid "Other"
+msgstr "Inne"
 
-#: DlgAdvPreferencesBase.cpp:281 DlgAdvPreferencesBase.cpp:542
-msgid "Wednesday"
-msgstr "Środa"
+#. buffer sizes
+#: clientgui/DlgAdvPreferencesBase.cpp:355
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Przechowuj tyle zadań, żeby komputer miał co przetwarzać przez wskazany okres."
 
-#: DlgAdvPreferencesBase.cpp:288 DlgAdvPreferencesBase.cpp:549
-msgid "Thursday"
-msgstr "Czwartek"
+#. context: Store at least ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:359
+msgid "Store at least"
+msgstr "Przechowywuj conajmniej"
 
-#: DlgAdvPreferencesBase.cpp:295 DlgAdvPreferencesBase.cpp:556
-msgid "Friday"
-msgstr "Piątek"
+#. context: Store at least ___ days of work
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:370
+#: clientgui/DlgAdvPreferencesBase.cpp:392
+msgid "days of work"
+msgstr "dni robocze"
 
-#: DlgAdvPreferencesBase.cpp:302 DlgAdvPreferencesBase.cpp:563
-msgid "Saturday"
-msgstr "Sobota"
+#: clientgui/DlgAdvPreferencesBase.cpp:376
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Przechowuj dodatkową ilość zadań ponad ustalone minimum. Określa jak dużo pracy pobrać podczas komunikacji z projektem."
 
-#: DlgAdvPreferencesBase.cpp:309 DlgAdvPreferencesBase.cpp:570
-msgid "Sunday"
-msgstr "Niedziela"
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:380
+msgid "Store up to an additional"
+msgstr "Przechowywać dodatkowo"
 
-#: DlgAdvPreferencesBase.cpp:323
-msgid "Other options"
-msgstr "Inne opcje"
+#: clientgui/DlgAdvPreferencesBase.cpp:399
+#, c-format
+msgid "If you run several projects, %s may switch between them this often."
+msgstr "Jeżeli uczestniczysz w kilku projektach, %s może przeskakiwać pomiędzy nimi tak często."
 
-#: DlgAdvPreferencesBase.cpp:330
-msgid "Switch between applications every"
-msgstr "Przełączaj się pomiędzy aplikacjami co"
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:404
+msgid "Switch between tasks every"
+msgstr "Przełączaj się pomiędzy zadaniami co"
 
-#: DlgAdvPreferencesBase.cpp:339
-msgid "On multiprocessor systems, use at most"
-msgstr "W systemach wieloprocesorowych, używaj nie więcej niż"
+#: clientgui/DlgAdvPreferencesBase.cpp:419
+msgid ""
+"This controls how often tasks save their state to disk, so that they later "
+"can be continued from that point."
+msgstr "Jak często zapisywać postęp zadań na dysk, żeby później można było wznowić je od tego miejsca."
 
-#: DlgAdvPreferencesBase.cpp:346
-#, no-c-format
-msgid "% of the processors (0 means ignore this setting)"
-msgstr ""
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:423
+msgid "Request tasks to checkpoint at most every"
+msgstr "Zapisuj zadania co"
 
-#: DlgAdvPreferencesBase.cpp:349 DlgAdvPreferencesBase.cpp:605
-#: DlgAdvPreferencesBase.cpp:627 DlgAdvPreferencesBase.cpp:648
-#: DlgAdvPreferencesBase.cpp:669 DlgAdvPreferencesBase.cpp:679
-msgid "Use at most"
-msgstr "Używaj nie więcej niż"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:432
+msgid "seconds"
+msgstr "sekund"
 
-#: DlgAdvPreferencesBase.cpp:356
-#, no-c-format
-msgid "% CPU time"
-msgstr "% mocy obliczeniowej procesora"
+#. upload/download rates
+#: clientgui/DlgAdvPreferencesBase.cpp:469
+msgid "Limit the download rate of file transfers."
+msgstr "Ogranicz szybkość pobierania podczas transferu plików."
 
-#: DlgAdvPreferencesBase.cpp:378
-msgid "General options"
-msgstr "Opcje ogólne"
+#: clientgui/DlgAdvPreferencesBase.cpp:470
+msgid "Limit download rate to"
+msgstr "Ogranicz szybkość pobierania do"
 
-#: DlgAdvPreferencesBase.cpp:386
-msgid "Maximum download rate"
-msgstr "Maks. szybkość pobierania"
+#: clientgui/DlgAdvPreferencesBase.cpp:474
+#: clientgui/DlgAdvPreferencesBase.cpp:483
+msgid "KB/second"
+msgstr "KB/sekundę"
 
-#: DlgAdvPreferencesBase.cpp:392 DlgAdvPreferencesBase.cpp:401
-msgid "KBytes/sec."
-msgstr "KB/s"
+#: clientgui/DlgAdvPreferencesBase.cpp:478
+msgid "Limit the upload rate of file transfers."
+msgstr "Ogranicz szybkość wysyłania podczas transferu plików."
 
-#: DlgAdvPreferencesBase.cpp:395
-msgid "Maximum upload rate"
-msgstr "Maks. szybkość wysyłania"
+#: clientgui/DlgAdvPreferencesBase.cpp:479
+msgid "Limit upload rate to"
+msgstr "Ogranicz szybkość wysyłania do"
 
-#: DlgAdvPreferencesBase.cpp:406
-msgid "Transfer at most"
-msgstr "Przesyłaj maksymalnie"
+#: clientgui/DlgAdvPreferencesBase.cpp:490
+#, c-format
+msgid "Example: %s should transfer at most 2000 MB of data every 30 days."
+msgstr "Przykład: %s powinien przesłać nie więcej niż 2000 MB danych w ciągu 30 dni."
 
-#: DlgAdvPreferencesBase.cpp:412
-msgid "Mbytes"
-msgstr "MB"
+#: clientgui/DlgAdvPreferencesBase.cpp:492
+msgid "Limit usage to"
+msgstr "Ogranicz użycie do"
 
-#: DlgAdvPreferencesBase.cpp:415
-msgid "every"
-msgstr "co"
+#: clientgui/DlgAdvPreferencesBase.cpp:496
+msgid "MB every"
+msgstr "Mb co"
 
-#: DlgAdvPreferencesBase.cpp:421 DlgAdvPreferencesBase.cpp:444
-#: DlgAdvPreferencesBase.cpp:463
+#: clientgui/DlgAdvPreferencesBase.cpp:500
 msgid "days"
 msgstr "dni"
 
-#: DlgAdvPreferencesBase.cpp:429
-msgid "Minimum work buffer"
-msgstr "Minimalny zapas zadań na"
-
-#: DlgAdvPreferencesBase.cpp:438
-msgid "Try to maintain enough tasks to keep busy for this many days"
-msgstr ""
-"Spróbuj zapewnić odpowiednią ilość zadań aby pracować przez wskazaną liczbę "
-"dni"
-
-# 80%
-# 100%
-#: DlgAdvPreferencesBase.cpp:450
-msgid "Max additional work buffer"
-msgstr "Maksymalny zapas zadań na"
+#: clientgui/DlgAdvPreferencesBase.cpp:505
+msgid "To limit transfers by time of day, see the \"Daily Schedules\" section."
+msgstr "Aby limitować transfer o danej porze dnia, sprawdź sekcję \"Rozkład dzienny\"."
 
-#: DlgAdvPreferencesBase.cpp:459
-msgid "In addition, maintain enough tasks for up to this many days"
-msgstr "Zapewnij odpowiednią ilość zadań maksymalnie na wskazaną liczbę dni"
-
-#: DlgAdvPreferencesBase.cpp:466
-msgid "Skip image file verification"
-msgstr "Pomiń weryfikację za pomocą obrazka"
-
-#: DlgAdvPreferencesBase.cpp:468
-msgid "check this if your Internet provider modifies image files"
-msgstr ""
-"Zaznacz jeżeli twój dostawca internetu może modyfikować pliki graficzne w "
-"trakcie transferu"
+#: clientgui/DlgAdvPreferencesBase.cpp:522
+#, c-format
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of %s."
+msgstr "Zaznacz to pole tylko, jeśli Twój dostawca internetu modyfikuje pliki graficzne. Pomijanie weryfikacji skutkuje obniżeniem poziomu bezpieczeństwa %s."
 
-#: DlgAdvPreferencesBase.cpp:476
-msgid "Connect options"
-msgstr "Opcje połączenia"
+#: clientgui/DlgAdvPreferencesBase.cpp:524
+msgid "Skip data verification for image files"
+msgstr "Opóść weryfikację danych dla plików graficznych"
 
-#: DlgAdvPreferencesBase.cpp:478
-msgid "Confirm before connecting to internet"
-msgstr "Potwierdź przed połączeniem z internetem"
+#: clientgui/DlgAdvPreferencesBase.cpp:528
+msgid "Confirm before connecting to Internet"
+msgstr "Potwierdź przed połączeniem z Internetem"
 
-#: DlgAdvPreferencesBase.cpp:480
-msgid ""
-"if checked, a confirmation dialog will be displayed before trying to connect "
-"to the Internet"
-msgstr ""
-"W przypadku zaznaczenia, przed każdorazowym połączeniem z internetem, będzie "
-"wyświetlane zapytanie"
+#: clientgui/DlgAdvPreferencesBase.cpp:529
+#: clientgui/DlgAdvPreferencesBase.cpp:533
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Użyteczne jedynie jeśli łączysz się z siecią poprzez modem, ISDN lub połączenie VPN."
 
-#: DlgAdvPreferencesBase.cpp:484
+#: clientgui/DlgAdvPreferencesBase.cpp:532
 msgid "Disconnect when done"
 msgstr "Rozłącz z siecią po zakończeniu"
 
-#: DlgAdvPreferencesBase.cpp:486
-msgid ""
-"if checked, BOINC hangs up when network usage is done\n"
-"(only relevant for dialup-connection)"
-msgstr ""
-"W przypadku zaznaczenia, BOINC rozłączy się z siecią po zakończeniu jej "
-"używania\n"
-"(opcja użyteczna tylko dla połączeń modemowych)"
-
-#: DlgAdvPreferencesBase.cpp:492
-msgid "Network usage allowed"
-msgstr "Dostęp do sieci dozwolony"
+#: clientgui/DlgAdvPreferencesBase.cpp:559 clientgui/ViewResources.cpp:116
+msgid "Disk"
+msgstr "Dysk twardy"
 
-#: DlgAdvPreferencesBase.cpp:500
-msgid "network usage start hour"
-msgstr "początek dostępności sieci"
+#: clientgui/DlgAdvPreferencesBase.cpp:564
+#, c-format
+msgid "%s will use the most restrictive of these settings:"
+msgstr "%s użyje najsurowszych ustawień."
 
-#: DlgAdvPreferencesBase.cpp:508
-msgid "network usage stop hour"
-msgstr "koniec dostępności sieci"
+#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
+#, c-format
+msgid "Limit the total amount of disk space used by %s."
+msgstr "Ogranicz całkowitą przestrzeń dysku używaną przez %s."
 
-#: DlgAdvPreferencesBase.cpp:598 DlgItemProperties.cpp:231
-msgid "Disk usage"
-msgstr "Użycie dysku"
+#: clientgui/DlgAdvPreferencesBase.cpp:573
+#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
+msgid "Use no more than"
+msgstr "Używaj nie więcej niż"
 
-#: DlgAdvPreferencesBase.cpp:609
-msgid "the maximum disk space used by BOINC (in Gigabytes)"
-msgstr "Maksymalny obszar dysku dostępny dla BOINC (w GB)"
+#: clientgui/DlgAdvPreferencesBase.cpp:577
+msgid "GB"
+msgstr "GB"
 
-#: DlgAdvPreferencesBase.cpp:613
-msgid "Gigabytes disk space"
-msgstr "gigabajtów dysku"
+#: clientgui/DlgAdvPreferencesBase.cpp:582
+#, c-format
+msgid ""
+"Limit disk usage to leave this much free space on the volume where %s stores"
+" data."
+msgstr "Utrzymaj określoną ilość wolnej przestrzeni na partycji, na której %s przechowuje dane."
 
-#: DlgAdvPreferencesBase.cpp:616
+#: clientgui/DlgAdvPreferencesBase.cpp:585
 msgid "Leave at least"
 msgstr "Pozostaw co najmniej"
 
-#: DlgAdvPreferencesBase.cpp:620
-msgid "BOINC leaves at least this amount of disk space free (in Gigabytes)"
-msgstr ""
-"BOINC pozostawi co najmniej wskazaną wolną ilość miejsca na dysku (w "
-"gigabajtach)"
-
-#: DlgAdvPreferencesBase.cpp:624
-msgid "Gigabytes disk space free"
-msgstr "gigabajtów wolnego obszaru dysku"
+#: clientgui/DlgAdvPreferencesBase.cpp:589
+msgid "GB free"
+msgstr "wolnych GB"
 
-#: DlgAdvPreferencesBase.cpp:631
-msgid "BOINC uses at most this percentage of total disk space"
-msgstr "Maksymalny procent obszaru dysku, dostępny dla BOINC"
+#: clientgui/DlgAdvPreferencesBase.cpp:594
+#, c-format
+msgid ""
+"Limit the percentage of disk space used by %s on the volume where it stores "
+"data."
+msgstr "Limituj procent użycia dysku przez %s na partycji, gdzie przechowuje on dane."
 
-#: DlgAdvPreferencesBase.cpp:636
+#: clientgui/DlgAdvPreferencesBase.cpp:602
 #, no-c-format
-msgid "% of total disk space"
-msgstr "% obszaru całego dysku"
-
-#: DlgAdvPreferencesBase.cpp:639
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Zapisywanie na dysku co "
+msgid "% of total"
+msgstr "% całości"
 
-#: DlgAdvPreferencesBase.cpp:645
-msgid "seconds"
-msgstr "sekund"
+#: clientgui/DlgAdvPreferencesBase.cpp:609
+msgid "Memory"
+msgstr "Pamięć"
 
-#: DlgAdvPreferencesBase.cpp:655
-#, no-c-format
-msgid "% of page file (swap space)"
-msgstr "% pliku wymiany (partycji swap)"
+#: clientgui/DlgAdvPreferencesBase.cpp:614
+#, c-format
+msgid "Limit the memory used by %s when you're using the computer."
+msgstr "Limit użycia pamięci na poziomie %s , kiedy Twój komputer jest w użytku. "
 
-#: DlgAdvPreferencesBase.cpp:662
-msgid "Memory usage"
-msgstr "Użycie pamięci"
+#: clientgui/DlgAdvPreferencesBase.cpp:616
+msgid "When computer is in use, use at most"
+msgstr "Gdy komputer jest w użyciu, używaj conajwyżej "
 
-#: DlgAdvPreferencesBase.cpp:676
+#: clientgui/DlgAdvPreferencesBase.cpp:622
+#: clientgui/DlgAdvPreferencesBase.cpp:634
+#: clientgui/DlgAdvPreferencesBase.cpp:650
 #, no-c-format
-msgid "% when computer is in use"
-msgstr "% kiedy komputer jest w użyciu"
+msgid "%"
+msgstr "%"
 
-#: DlgAdvPreferencesBase.cpp:686
-#, no-c-format
-msgid "% when computer is idle"
-msgstr "% kiedy komputer nie jest w użyciu"
+#: clientgui/DlgAdvPreferencesBase.cpp:627
+#, c-format
+msgid "Limit the memory used by %s when you're not using the computer."
+msgstr "Limit użycia pamięci na poziomie %s , kiedy Twój komputer nie jest w użytku."
 
-#: DlgAdvPreferencesBase.cpp:691
-msgid "Leave applications in memory while suspended"
-msgstr "Pozostaw aplikacje w pamięci, kiedy są zatrzymane"
+#: clientgui/DlgAdvPreferencesBase.cpp:629
+msgid "When computer is not in use, use at most"
+msgstr "Gdy komputer nie jest w użyciu, używaj conajwyżej "
 
-#: DlgAdvPreferencesBase.cpp:693
-msgid "if checked, suspended work units are left in memory"
-msgstr ""
-"W przypadku zaznaczenia, dane zatrzymanych aplikacji pozostaną w pamięci"
+#: clientgui/DlgAdvPreferencesBase.cpp:638
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Pozostaw zadania nie korzystające z GPU w pamięci, gdy są one wstrzymane"
 
-#: DlgAdvPreferencesBase.cpp:713
+#: clientgui/DlgAdvPreferencesBase.cpp:639
 msgid ""
-"Suspend processor and network usage when these applications are running:"
-msgstr ""
-"Zatrzymaj wykorzystanie procesora i sieci, kiedy uruchomione są poniższe "
-"aplikacje:"
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Przechowuj zawieszone zadania w pamięci i wznawiaj bez żadnej straty. Jeśli nie jest włączone, to zawieszone zadania są usuwane z pamięci i wznawiane od ostatniego zapisanego punktu kontrolnego."
 
-#: DlgAdvPreferencesBase.cpp:722
-msgid "Add..."
-msgstr "Dodaj..."
+#: clientgui/DlgAdvPreferencesBase.cpp:643
+#, c-format
+msgid "Limit the swap space (page file) used by %s."
+msgstr "Limit pamięci wirtualnej wykorzystany (pliku wymiany) w %s."
 
-#: DlgAdvPreferencesBase.cpp:723
-msgid "Add an application to this list"
-msgstr "Dodaj aplikację do listy"
+#: clientgui/DlgAdvPreferencesBase.cpp:645
+msgid "Page/swap file: use at most"
+msgstr "Plik stronicowania / wymiany: używać jak najwięcej"
 
-#: DlgAdvPreferencesBase.cpp:728 ViewProjects.cpp:202
-#: sg_ProjectCommandPopup.cpp:85
-msgid "Remove"
-msgstr "Usuń"
+#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
+msgid "and"
+msgstr "a"
 
-#: DlgAdvPreferencesBase.cpp:729
-msgid "Remove an application from this list"
-msgstr "Usuń aplikację z listy"
+#: clientgui/DlgAdvPreferencesBase.cpp:671
+msgid "to"
+msgstr "do"
 
-#: DlgAdvPreferencesBase.cpp:738
-msgid "For advanced options, refer to "
-msgstr "Dla zaawansowanych opcji zapoznaj się z"
+#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:296
+msgid "Compute only during a particular period each day."
+msgstr "Przetwarzaj jedynie podczas określonego przedziału czasowego każdego dnia."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:299
+msgid "Compute only between"
+msgstr "Przetwarzaj dane jedynie pomiędzy"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:718
+#: clientgui/DlgAdvPreferencesBase.cpp:902
+msgid "Day-of-week override"
+msgstr "Dodatkowe warunki dla dni tygodnia"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:727
+#: clientgui/DlgAdvPreferencesBase.cpp:906
+msgid "Override the times above on the selected days:"
+msgstr "Zastąp czasy od wybranego momentu: "
+
+#: clientgui/DlgAdvPreferencesBase.cpp:750
+#: clientgui/DlgAdvPreferencesBase.cpp:923
+msgid "Monday"
+msgstr "Poniedziałek"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:777
+#: clientgui/DlgAdvPreferencesBase.cpp:938
+msgid "Friday"
+msgstr "Piątek"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:792
+#: clientgui/DlgAdvPreferencesBase.cpp:951
+msgid "Tuesday"
+msgstr "Wtorek"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:807
+#: clientgui/DlgAdvPreferencesBase.cpp:966
+msgid "Saturday"
+msgstr "Sobota"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:820
+#: clientgui/DlgAdvPreferencesBase.cpp:979
+msgid "Wednesday"
+msgstr "Środa"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:835
+#: clientgui/DlgAdvPreferencesBase.cpp:994
+msgid "Sunday"
+msgstr "Niedziela"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:848
+#: clientgui/DlgAdvPreferencesBase.cpp:1007
+msgid "Thursday"
+msgstr "Czwartek"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
+msgid "Transfer files only during a particular period each day."
+msgstr "Przesyłaj pliki jedynie podczas określonych przedziałów czasowych każdego dnia."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
+msgid "Transfer files only between"
+msgstr "Transfer plików tylko poprzez"
 
-#: DlgEventLog.cpp:219
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Niepoprawna liczba"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Niepoprawny czas, wartość musi mieścić się pomiędzy 00:00 a 24:00, format czasu to GG:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Czas startu musi być inny od czasu zakończenia"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Liczba musi mieć wartość pomiędzy 0, a 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Liczba musi mieć wartość pomiędzy 0, a 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Liczba musi mieć wartość pomiędzy 0, a 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "wykryto wprowadzenie nieprawidłowej wartości"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Błąd walidacji"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Dezaktywować wszystkie ustawienia lokalne i użyć ustawień serwera?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Potwierdzenie"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
+#, c-format
+msgid "%s Diagnostic Log Flags"
+msgstr "%s - Flagi informacji diagnostycznych"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
+msgid ""
+"These flags enable various types of diagnostic messages in the Event Log."
+msgstr "Przełączanie poniższych flag uaktywnia różne informacje diagnostyczne w Dzienniku Zdarzeń."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
+msgid "More info ..."
+msgstr "Więcej informacji..."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
+msgid "Save all values and close the dialog"
+msgstr "Zapisz wszystkie wartości i zamknij okno."
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
+msgid "Defaults"
+msgstr "Domyślne"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
+msgid "Restore default settings"
+msgstr "Przywróć domyślne ustawienia"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
+msgid "Close the dialog without saving"
+msgstr "Zamknij okno bez zapisywania zmian"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Zatwierdź"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Zapisz wszystkie wartości"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Dziennik zdarzeń"
 
-#: DlgEventLog.cpp:232 ViewMessages.cpp:117 ViewProjects.cpp:219
-#: ViewStatistics.cpp:435 ViewStatistics.cpp:2009 ViewTransfers.cpp:182
-#: ViewWork.cpp:232
+#. Create List Pane Items
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
+#: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
+#: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
+#: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projekt"
 
-#: DlgEventLog.cpp:233 ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Czas"
 
-#: DlgEventLog.cpp:234 ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Wiadomość"
 
-#: DlgEventLog.cpp:290 DlgEventLog.cpp:354
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Pokaż tylko ten projekt"
 
-#: DlgEventLog.cpp:294
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Kopiuj &wszystko"
 
-#: DlgEventLog.cpp:296 DlgEventLog.cpp:300 ViewMessages.cpp:89
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
+#: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Kopiuje wszystkie wiadomości do schowka."
 
-#: DlgEventLog.cpp:305
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "&Kopiuj wybrane"
 
-#: DlgEventLog.cpp:308 DlgEventLog.cpp:316 ViewMessages.cpp:97
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
+#: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or command key while clicking on messages."
-msgstr ""
-"Kopiuje wybrane wiadomości do schowka. Możesz wybrać kilka wiadomości, "
-"używając klawiszy Shift lub Command podczas klikania na wiadomości."
+"messages by holding down the shift or command key while clicking on "
+"messages."
+msgstr "Kopiuje wybrane wiadomości do schowka. Możesz wybrać kilka wiadomości, używając klawiszy Shift lub Command podczas klikania na wiadomości."
 
-#: DlgEventLog.cpp:310 DlgEventLog.cpp:318 ViewMessages.cpp:99
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
+#: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or control key while clicking on messages."
-msgstr ""
-"Kopiuje wybrane wiadomości do schowka. Możesz wybrać kilka wiadomości, "
-"używając klawiszy Shift lub Ctrl podczas klikania na wiadomości."
+"messages by holding down the shift or control key while clicking on "
+"messages."
+msgstr "Kopiuje wybrane wiadomości do schowka. Możesz wybrać kilka wiadomości, używając klawiszy Shift lub Ctrl podczas klikania na wiadomości."
 
-#: DlgEventLog.cpp:325 DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Zamknij"
 
-#: DlgEventLog.cpp:334 sg_BoincSimpleFrame.cpp:798 sg_DlgPreferences.cpp:442
-#, c-format
-msgid "Get help with %s"
-msgstr "Uzyskaj pomoc dla %s"
-
-#: DlgEventLog.cpp:348
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "&Pokaż wszystkie wiadomości"
 
-#: DlgEventLog.cpp:349 DlgEventLog.cpp:351
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Pokazuje wiadomości dotyczące wszystkich projektów"
 
-#: DlgEventLog.cpp:355 DlgEventLog.cpp:357
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Pokazuje wiadomości związane tylko z wybranym projektem"
 
-#: DlgExitMessage.cpp:82
+#: clientgui/DlgExclusiveApps.cpp:60
+#, c-format
+msgid "%s - Exclusive Applications"
+msgstr "%s - Aplikacje z wyłącznością"
+
+#: clientgui/DlgExclusiveApps.cpp:72
+msgid ""
+"Suspend processor and network usage when these applications are running:"
+msgstr "Zatrzymaj wykorzystanie procesora i sieci, kiedy uruchomione są poniższe aplikacje:"
+
+#: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
+msgid "Add..."
+msgstr "Dodaj..."
+
+#: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
+msgid "Add an application to this list"
+msgstr "Dodaj aplikację do listy"
+
+#: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
+msgid "Remove"
+msgstr "Usuń"
+
+#: clientgui/DlgExclusiveApps.cpp:87 clientgui/DlgExclusiveApps.cpp:111
+msgid "Remove an application from this list"
+msgstr "Usuń aplikację z listy"
+
+#: clientgui/DlgExclusiveApps.cpp:96
+msgid "Suspend GPU usage when these applications are running:"
+msgstr "Zatrzymaj wykorzystanie GPU, kiedy są uruchomione te aplikacje:"
+
+#: clientgui/DlgExclusiveApps.cpp:122
+msgid "For advanced options, refer to "
+msgstr "Dla zaawansowanych opcji zapoznaj się z"
+
+#: clientgui/DlgExclusiveApps.cpp:147
+msgid "save all values and close the dialog"
+msgstr "Zapisz wszystkie wartości i zamknij okno"
+
+#: clientgui/DlgExclusiveApps.cpp:153
+msgid "close the dialog without saving"
+msgstr "Zamknij okno bez zapisywania wartości"
+
+#: clientgui/DlgExclusiveApps.cpp:158
+msgid "shows the preferences web page"
+msgstr "Pokaż stronę internetową z opisem preferencji"
+
+#. TODO: fill in the default directory for MSW
+#. TODO: fill in the default directory for Linux
+#: clientgui/DlgExclusiveApps.cpp:303 clientgui/DlgExclusiveApps.cpp:309
+#: clientgui/DlgExclusiveApps.cpp:315
+msgid "Applications to add"
+msgstr "Aplikacje do dodania"
+
+#: clientgui/DlgExclusiveApps.cpp:332
+#, c-format
+msgid "'%s' is not an executable application."
+msgstr "'%s' nie jest aplikacją wykonywalną."
+
+#: clientgui/DlgExclusiveApps.cpp:333 clientgui/DlgExclusiveApps.cpp:380
+#: clientgui/DlgExclusiveApps.cpp:404
+msgid "Add Exclusive App"
+msgstr "Dodaj aplikację z wyłącznością"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Name of application to add?"
+msgstr "Nazwa aplikacji do dodania"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Add exclusive app"
+msgstr "Dodaj aplikację z wyłącznością"
+
+#: clientgui/DlgExclusiveApps.cpp:379
+#, c-format
+msgid "Application names must end with '%s'"
+msgstr "Nazwa aplikacji musi kończyć się '%s'"
+
+#: clientgui/DlgExclusiveApps.cpp:403
+#, c-format
+msgid "'%s' is already in the list."
+msgstr "'%s' jest już na liście."
+
+#: clientgui/DlgExitMessage.cpp:82
 #, c-format
 msgid "%s - Exit Confirmation"
 msgstr "%s - Potwierdzenie zamknięcia aplikacji"
 
-#: DlgExitMessage.cpp:130
+#: clientgui/DlgExitMessage.cpp:130
 #, c-format
 msgid ""
 "You have requested to exit the %s,\n"
@@ -1696,17 +1788,10 @@ msgid ""
 "\n"
 "If you also want to stop running the tasks,\n"
 "choose from the following options:"
-msgstr ""
-"Wybrałeś opcję zamknięcia %s,\n"
-"który pozwala na zarządzanie zadaniami\n"
-"działającymi na komputerze.\n"
-"\n"
-"Jeśli chcesz także zatrzymać działające zadania,\n"
-"użyj poniższych opcji:"
+msgstr "Wybrałeś opcję zamknięcia %s,\nktóry pozwala na zarządzanie zadaniami\ndziałającymi na komputerze.\n\nJeśli chcesz także zatrzymać działające zadania,\nużyj poniższych opcji:"
 
-#: DlgExitMessage.cpp:135
+#: clientgui/DlgExitMessage.cpp:135
 #, c-format
-#, c-format, c-format
 msgid ""
 "This will shut down %s and its tasks until either the\n"
 "%s or the %s screen saver is run again.\n"
@@ -1714,943 +1799,1020 @@ msgid ""
 "In most cases, it is better just to close the %s window\n"
 "rather than to exit the application; that will allow %s to run its\n"
 "tasks at the times you selected in your preferences."
-msgstr ""
-"Naciśnięcie OK spowoduje, że wszystkie zadania %s zostaną\n"
-"zamknięte, do czasu aż %s albo wygaszacz ekranu %s nie\n"
-"zostaną uruchomione ponownie.\n"
-"\n"
-"W większości przypadków, lepiej po prostu zamknąć okno %s\n"
-"niż całkowicie zamykać aplikację. Pozwoli to %s uruchamiać\n"
-"zadania zgodnie z zasadami wybranymi w preferencjach."
+msgstr "Naciśnięcie OK spowoduje, że wszystkie zadania %s zostaną\nzamknięte, do czasu aż %s albo wygaszacz ekranu %s nie\nzostaną uruchomione ponownie.\n\nW większości przypadków, lepiej po prostu zamknąć okno %s\nniż całkowicie zamykać aplikację. Pozwoli to %s uruchamiać\nzadania zgodnie z zasadami wybranymi w preferencjach."
 
-#: DlgExitMessage.cpp:153
+#: clientgui/DlgExitMessage.cpp:153
 #, c-format
 msgid "Stop running tasks when exiting the %s"
 msgstr "Zakończ działające zadania podczas wychodzenia z %s"
 
-#: DlgExitMessage.cpp:165
+#: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
 msgstr "Zapamiętaj tę decyzję i nie pokazuj tego okna w przyszłości."
 
-#: DlgExitMessage.cpp:178 DlgGenericMessage.cpp:125 DlgOptions.cpp:401
-#: DlgSelectComputer.cpp:168 wizardex.cpp:378
+#: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
+#: clientgui/DlgOptions.cpp:415 clientgui/DlgSelectComputer.cpp:168
+#: clientgui/wizardex.cpp:378
 msgid "&Cancel"
 msgstr "&Anuluj"
 
-#: DlgGenericMessage.cpp:112
+#: clientgui/DlgGenericMessage.cpp:112
 msgid "Don't show this dialog again."
 msgstr "Nie pokazuj tego okna w przyszłości."
 
-#: DlgItemProperties.cpp:168 DlgItemProperties.cpp:171
-#: DlgItemProperties.cpp:174 DlgItemProperties.cpp:177
-msgid "Don't fetch tasks for "
-msgstr "Nie pobieraj zadań przez "
+#: clientgui/DlgHiddenColumns.cpp:64
+#, c-format
+msgid "%s Column Selection"
+msgstr "Wybór kolumny %s"
+
+#: clientgui/DlgHiddenColumns.cpp:77
+#, c-format
+msgid "Select which columns %s should show."
+msgstr "Wybierz które kolumny %s ma pokazywać."
+
+#: clientgui/DlgHiddenColumns.cpp:358
+msgid ""
+"Are you sure you want to reset all list columns to the default "
+"configurations?"
+msgstr "Czy jesteś pewien, że chcesz przywrócić wszystkie ustawienia kolumn do wartości domyślnych?"
+
+#: clientgui/DlgHiddenColumns.cpp:359
+msgid "Confirm defaults"
+msgstr "Potwierdź domyślne"
+
+#: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
+#: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
+msgid "Don't request tasks for "
+msgstr "Nie żądaj zadań dla:"
 
-#: DlgItemProperties.cpp:168
+#: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
 msgstr "Preferencje projektu"
 
-#: DlgItemProperties.cpp:171
+#: clientgui/DlgItemProperties.cpp:197
 msgid "Account manager preference"
 msgstr "Preferencje menadżera kont"
 
-#: DlgItemProperties.cpp:174
+#: clientgui/DlgItemProperties.cpp:200
 msgid "Project has no apps for "
 msgstr "Projekt nie posiada aplikacji dla "
 
-#: DlgItemProperties.cpp:177
+#: clientgui/DlgItemProperties.cpp:203
 msgid "Client configuration excludes "
 msgstr "Konfiguracja klienta wyklucza"
 
-# 88%
-#: DlgItemProperties.cpp:181
-msgid " work fetch deferred for"
-msgstr "pobieranie zadań opóźnione o "
+#: clientgui/DlgItemProperties.cpp:209
+#, c-format
+msgid "%s task request deferred for"
+msgstr "%s pobieranie zadań wstrzymane na"
 
-# 90%
-#: DlgItemProperties.cpp:182
-msgid " work fetch deferral interval"
-msgstr "odstęp opóźnienia pobierania zadań"
+#: clientgui/DlgItemProperties.cpp:213
+#, c-format
+msgid "%s task request deferral interval"
+msgstr "Odstęp czasowy pobierania zadań %s"
 
-#: DlgItemProperties.cpp:213
+#. set dialog title
+#: clientgui/DlgItemProperties.cpp:247
 msgid "Properties of project "
 msgstr "Właściwości projektu "
 
-#: DlgItemProperties.cpp:217 DlgOptions.cpp:218
+#. layout controls
+#: clientgui/DlgItemProperties.cpp:251 clientgui/DlgOptions.cpp:232
 msgid "General"
 msgstr "Ogólne"
 
-#: DlgItemProperties.cpp:218
-msgid "Master URL"
-msgstr "Główny adres URL"
+#: clientgui/DlgItemProperties.cpp:252
+msgid "URL"
+msgstr "Strona internetowa"
 
-#: DlgItemProperties.cpp:219
+#: clientgui/DlgItemProperties.cpp:253
 msgid "User name"
 msgstr "Nazwa użytkownika"
 
-#: DlgItemProperties.cpp:220
+#: clientgui/DlgItemProperties.cpp:254
 msgid "Team name"
 msgstr "Nazwa zespołu"
 
-#: DlgItemProperties.cpp:221 ViewProjects.cpp:224
+#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:256
 msgid "Resource share"
 msgstr "Przydział zasobów"
 
-#: DlgItemProperties.cpp:223
+#: clientgui/DlgItemProperties.cpp:257
 msgid "Scheduler RPC deferred for"
-msgstr "Wywołanie serwera projektu opóźnione o "
+msgstr "Wywołanie serwera projektu wstrzymane na"
 
-#: DlgItemProperties.cpp:226
+#: clientgui/DlgItemProperties.cpp:260
 msgid "File downloads deferred for"
 msgstr "Pobieranie pliku wstrzymane na"
 
-#: DlgItemProperties.cpp:229
+#: clientgui/DlgItemProperties.cpp:263
 msgid "File uploads deferred for"
 msgstr "Wysyłanie pliku wstrzymane na"
 
-#: DlgItemProperties.cpp:232
+#: clientgui/DlgItemProperties.cpp:265
+msgid "Disk usage"
+msgstr "Użycie dysku"
+
+#: clientgui/DlgItemProperties.cpp:266
 msgid "Computer ID"
 msgstr "Identyfikator komputera"
 
-#: DlgItemProperties.cpp:234
+#: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
 msgstr "Niewykorzystujący aktywnie procesora"
 
-#: DlgItemProperties.cpp:234 DlgItemProperties.cpp:236
-#: DlgItemProperties.cpp:237 DlgItemProperties.cpp:239
-#: DlgItemProperties.cpp:242 DlgItemProperties.cpp:251
-#: DlgItemProperties.cpp:254 DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:268 clientgui/DlgItemProperties.cpp:270
+#: clientgui/DlgItemProperties.cpp:271 clientgui/DlgItemProperties.cpp:273
+#: clientgui/DlgItemProperties.cpp:276 clientgui/DlgItemProperties.cpp:285
+#: clientgui/DlgItemProperties.cpp:288 clientgui/DlgItemProperties.cpp:291
 msgid "yes"
 msgstr "tak"
 
-#: DlgItemProperties.cpp:236
+#: clientgui/DlgItemProperties.cpp:270
 msgid "Suspended via GUI"
 msgstr "Wstrzymany za pośrednictwem interfejsu graficznego"
 
-#: DlgItemProperties.cpp:236 DlgItemProperties.cpp:237
+#: clientgui/DlgItemProperties.cpp:270 clientgui/DlgItemProperties.cpp:271
 msgid "no"
 msgstr "nie"
 
-#: DlgItemProperties.cpp:237
-msgid "Don't request more work"
-msgstr "Nie pobieraj nowych zadań"
+#: clientgui/DlgItemProperties.cpp:271
+msgid "Don't request tasks"
+msgstr "Nie żądaj zadań"
 
-#: DlgItemProperties.cpp:239
+#: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
 msgstr "Trwa nawiązywanie połączenia z serwerem projektu"
 
-#: DlgItemProperties.cpp:242
+#: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
 msgstr "Wysłane miniwiadomości"
 
-#: DlgItemProperties.cpp:245 DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:279 clientgui/DlgItemProperties.cpp:281
 msgid "Host location"
 msgstr "Lokalizacja komputera"
 
-#: DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:281
 msgid "default"
 msgstr "domyślna"
 
-#: DlgItemProperties.cpp:251
+#: clientgui/DlgItemProperties.cpp:285
 msgid "Added via account manager"
 msgstr "Dodane przez mendażera kont"
 
-#: DlgItemProperties.cpp:254
+#: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
 msgstr "Usuwa po zakończeniu zadania"
 
-#: DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
 msgstr "Zakończony"
 
-#: DlgItemProperties.cpp:259
+#: clientgui/DlgItemProperties.cpp:293
+msgid "Tasks completed"
+msgstr "Zadanie wykonane"
+
+#: clientgui/DlgItemProperties.cpp:294
+msgid "Tasks failed"
+msgstr "Zadanie niewykonane"
+
+#: clientgui/DlgItemProperties.cpp:296
 msgid "Credit"
 msgstr "Punktacja"
 
-#: DlgItemProperties.cpp:260
+#: clientgui/DlgItemProperties.cpp:297
 msgid "User"
 msgstr "Użytkownik"
 
-#: DlgItemProperties.cpp:267
+#: clientgui/DlgItemProperties.cpp:300 clientgui/DlgItemProperties.cpp:308
+#, c-format
+msgid "%s total, %s average"
+msgstr "%s w sumie, średnio %s"
+
+#: clientgui/DlgItemProperties.cpp:305
 msgid "Host"
 msgstr "Komputer"
 
-#: DlgItemProperties.cpp:276
+#: clientgui/DlgItemProperties.cpp:315
 msgid "Scheduling"
 msgstr "Planowanie"
 
-#: DlgItemProperties.cpp:277
+#: clientgui/DlgItemProperties.cpp:316
 msgid "Scheduling priority"
 msgstr "Planowanie priorytetu"
 
-#: DlgItemProperties.cpp:278
+#: clientgui/DlgItemProperties.cpp:317
 msgid "CPU"
 msgstr "CPU"
 
-#: DlgItemProperties.cpp:302
+#: clientgui/DlgItemProperties.cpp:341
 msgid "Duration correction factor"
 msgstr "Korekcja czasu przetwarzania"
 
-#: DlgItemProperties.cpp:316
+#: clientgui/DlgItemProperties.cpp:349
+msgid "Last scheduler reply"
+msgstr "Ostatnia odpowiedź schedulera"
+
+#: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
 msgstr "Właściwości zadania "
 
-#: DlgItemProperties.cpp:328 ViewWork.cpp:238
+#: clientgui/DlgItemProperties.cpp:372 clientgui/ViewWork.cpp:266
 msgid "Application"
 msgstr "Aplikacja"
 
-#: DlgItemProperties.cpp:329 ViewWork.cpp:239
+#: clientgui/DlgItemProperties.cpp:373 clientgui/ViewWork.cpp:267
 msgid "Name"
 msgstr "Nazwa"
 
-#: DlgItemProperties.cpp:330
+#: clientgui/DlgItemProperties.cpp:374
 msgid "State"
 msgstr "Stan"
 
-#: DlgItemProperties.cpp:333
+#: clientgui/DlgItemProperties.cpp:377
 msgid "Received"
 msgstr "Odebrane"
 
-#: DlgItemProperties.cpp:336
+#: clientgui/DlgItemProperties.cpp:380
 msgid "Report deadline"
 msgstr "Termin zaraportowania"
 
-#: DlgItemProperties.cpp:338
+#: clientgui/DlgItemProperties.cpp:382
 msgid "Resources"
 msgstr "Zasoby"
 
-#: DlgItemProperties.cpp:341
+#: clientgui/DlgItemProperties.cpp:385
 msgid "Estimated computation size"
 msgstr "Szacowany czas przetwarzania"
 
-#: DlgItemProperties.cpp:344
-msgid "CPU time at last checkpoint"
-msgstr "Czas przetwarzania dla ostatniego punktu kontrolnego"
-
-#: DlgItemProperties.cpp:345 DlgItemProperties.cpp:360
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Czas pracy"
 
-#: DlgItemProperties.cpp:347 DlgItemProperties.cpp:361
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Czas procesora CPU od czasu ostatniego punktu kontrolnego"
+
+#: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Czas pracy"
 
-#: DlgItemProperties.cpp:349
+#: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
 msgstr "Szacowany pozostały czas"
 
-#: DlgItemProperties.cpp:350
+#: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
 msgstr "Część wykonana"
 
-#: DlgItemProperties.cpp:351
+#: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
 msgstr "Rozmiar pamięci wirtualnej"
 
-#: DlgItemProperties.cpp:352
+#: clientgui/DlgItemProperties.cpp:398
 msgid "Working set size"
 msgstr "Rozmiar zestawu"
 
-#: DlgItemProperties.cpp:354
+#: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
 msgstr "Katalog"
 
-#: DlgItemProperties.cpp:357
+#: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
 msgstr "Identyfikator procesu"
 
-#: DlgItemProperties.cpp:427 ViewWork.cpp:1032 sg_TaskPanel.cpp:823
+#: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
+msgid "Progress rate"
+msgstr "Postęp"
+
+#: clientgui/DlgItemProperties.cpp:409
+msgid "per hour"
+msgstr "Na godzinę"
+
+#: clientgui/DlgItemProperties.cpp:411
+msgid "per minute"
+msgstr "Na minutę"
+
+#: clientgui/DlgItemProperties.cpp:413
+msgid "per second"
+msgstr "Na sekundę"
+
+#: clientgui/DlgItemProperties.cpp:421
+msgid "Executable"
+msgstr "Wykonalny"
+
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Lokalny: "
 
-#: DlgOptions.cpp:129 DlgOptions.cpp:135
+#: clientgui/DlgOptions.cpp:130 clientgui/DlgOptions.cpp:136
 msgid "Options"
 msgstr "Opcje"
 
-#: DlgOptions.cpp:175
+#: clientgui/DlgOptions.cpp:179
 msgid "Language:"
 msgstr "Język:"
 
-#: DlgOptions.cpp:182
+#: clientgui/DlgOptions.cpp:186
 msgid "What language should BOINC use?"
 msgstr "Jakiego języka powinien używać Menadżer BOINC?"
 
-#: DlgOptions.cpp:186
+#: clientgui/DlgOptions.cpp:190
 msgid "Notice reminder interval:"
 msgstr "Interwał przypominania o powiadomieniach"
 
-#: DlgOptions.cpp:193
+#: clientgui/DlgOptions.cpp:197
 msgid "How often should BOINC remind you of new notices?"
 msgstr "Jak często BOINC powinnien przypominać o nowych powiadomieniach?"
 
-#: DlgOptions.cpp:198
+#: clientgui/DlgOptions.cpp:202
 msgid "Run Manager at login?"
 msgstr "Uruchamiać Menadżera BOINC przy logowaniu?"
 
-#: DlgOptions.cpp:204
+#: clientgui/DlgOptions.cpp:208
 msgid "Run the BOINC Manager when you log on."
 msgstr "Uruchamianie Menadżera BOINC podczas logowania."
 
-#: DlgOptions.cpp:209
+#: clientgui/DlgOptions.cpp:213
+msgid "Run daemon?"
+msgstr "Uruchomić demona?"
+
+#: clientgui/DlgOptions.cpp:219
+msgid "Run daemon when launching the Manager."
+msgstr "Uruchom demona wraz z Menadżerem. "
+
+#: clientgui/DlgOptions.cpp:223
 msgid "Enable Manager exit dialog?"
 msgstr "Wyświetlać okno dialogowe przy zamykaniu Menadżera BOINC?"
 
-#: DlgOptions.cpp:215
+#: clientgui/DlgOptions.cpp:229
 msgid "Display the exit dialog when shutting down the Manager."
 msgstr "Pokazuje okno dialogowe podczas zamykania Menadżera BOINC."
 
-#: DlgOptions.cpp:226
+#: clientgui/DlgOptions.cpp:240
 msgid "Dial-up and Virtual Private Network settings"
 msgstr "Ustawienia połączenia modemowego oraz VPN"
 
-#: DlgOptions.cpp:240
+#: clientgui/DlgOptions.cpp:254
 msgid "&Set Default"
 msgstr "Ustaw połączenie &domyślne"
 
-#: DlgOptions.cpp:245
+#: clientgui/DlgOptions.cpp:259
 msgid "&Clear Default"
 msgstr "&Usuń połączenie domyślne"
 
-#: DlgOptions.cpp:252
+#: clientgui/DlgOptions.cpp:266
 msgid "Default Connection:"
 msgstr "Domyślne połączenie:"
 
-#: DlgOptions.cpp:259
+#: clientgui/DlgOptions.cpp:273
 msgid "Connections"
 msgstr "Połączenia"
 
-#: DlgOptions.cpp:268
+#: clientgui/DlgOptions.cpp:282
 msgid "Connect via HTTP proxy server"
 msgstr "Połącz za pośrednictwem serwera HTTP Proxy"
 
-#: DlgOptions.cpp:272
+#: clientgui/DlgOptions.cpp:286
 msgid "HTTP Proxy Server Configuration"
 msgstr "Konfiguracja serwera HTTP Proxy"
 
-#: DlgOptions.cpp:280 DlgOptions.cpp:344
+#: clientgui/DlgOptions.cpp:294 clientgui/DlgOptions.cpp:358
 msgid "Address:"
 msgstr "Adres:"
 
-#: DlgOptions.cpp:288 DlgOptions.cpp:352 ProxyPage.cpp:340 ProxyPage.cpp:360
+#: clientgui/DlgOptions.cpp:302 clientgui/DlgOptions.cpp:366
+#: clientgui/ProxyPage.cpp:340 clientgui/ProxyPage.cpp:360
 msgid "Port:"
 msgstr "Port:"
 
-#: DlgOptions.cpp:296 DlgOptions.cpp:360
+#: clientgui/DlgOptions.cpp:310 clientgui/DlgOptions.cpp:374
 msgid "Don't use proxy for:"
 msgstr "Nie używaj serwera proxy dla:"
 
-#: DlgOptions.cpp:303 DlgOptions.cpp:367
+#: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
 msgid "Leave these blank if not needed"
 msgstr "Pozostaw puste jeśli nie wymagane"
 
-#: DlgOptions.cpp:309 DlgOptions.cpp:373 ProxyPage.cpp:343 ProxyPage.cpp:363
+#: clientgui/DlgOptions.cpp:323 clientgui/DlgOptions.cpp:387
+#: clientgui/ProxyPage.cpp:343 clientgui/ProxyPage.cpp:363
 msgid "User Name:"
 msgstr "Login:"
 
-#: DlgOptions.cpp:317 DlgOptions.cpp:381 DlgSelectComputer.cpp:152
-#: ProxyPage.cpp:346 ProxyPage.cpp:366
+#: clientgui/DlgOptions.cpp:331 clientgui/DlgOptions.cpp:395
+#: clientgui/DlgSelectComputer.cpp:152 clientgui/ProxyPage.cpp:346
+#: clientgui/ProxyPage.cpp:366
 msgid "Password:"
 msgstr "Hasło:"
 
-#: DlgOptions.cpp:324
+#: clientgui/DlgOptions.cpp:338
 msgid "HTTP Proxy"
 msgstr "Serwer HTTP Proxy"
 
-#: DlgOptions.cpp:332
+#: clientgui/DlgOptions.cpp:346
 msgid "Connect via SOCKS proxy server"
 msgstr "Połącz za pośrednictwem serwera SOCKS Proxy"
 
-#: DlgOptions.cpp:336
+#: clientgui/DlgOptions.cpp:350
 msgid "SOCKS Proxy Server Configuration"
 msgstr "Konfiguracja serwera SOCKS Proxy"
 
-#: DlgOptions.cpp:388
+#: clientgui/DlgOptions.cpp:402
 msgid "SOCKS Proxy"
 msgstr "Serwer SOCKS Proxy"
 
-#: DlgOptions.cpp:586
+#: clientgui/DlgOptions.cpp:600
 msgid "always"
 msgstr "zawsze"
 
-#: DlgOptions.cpp:587
+#: clientgui/DlgOptions.cpp:601
 msgid "1 hour"
 msgstr "1 godzina"
 
-#: DlgOptions.cpp:588
+#: clientgui/DlgOptions.cpp:602
 msgid "6 hours"
 msgstr "6 godzin"
 
-#: DlgOptions.cpp:589
+#: clientgui/DlgOptions.cpp:603
 msgid "1 day"
 msgstr "1 dzień"
 
-#: DlgOptions.cpp:590
+#: clientgui/DlgOptions.cpp:604
 msgid "1 week"
 msgstr "1 tydzień"
 
-#: DlgOptions.cpp:591
+#: clientgui/DlgOptions.cpp:605
 msgid "never"
 msgstr "nigdy"
 
-#: DlgOptions.cpp:688
+#: clientgui/DlgOptions.cpp:703
 #, c-format
 msgid "%s - Language Selection"
 msgstr "%s - Wybór języka"
 
-#: DlgOptions.cpp:695
+#: clientgui/DlgOptions.cpp:710
 #, c-format
 msgid ""
 "The %s's language has been changed.  In order for this change to take "
 "effect, you must restart the %s."
-msgstr ""
+msgstr "Język %s został zmieniony. Aby zmiana ta miała efekt, należy zrestartować %s."
 
-#: DlgSelectComputer.cpp:91
+#: clientgui/DlgSelectComputer.cpp:91
 #, c-format
 msgid "%s - Select Computer"
 msgstr "%s - Wybierz komputer"
 
-#: DlgSelectComputer.cpp:125
+#: clientgui/DlgSelectComputer.cpp:125
 #, c-format
 msgid ""
 "Another instance of %s is already running \n"
 "on this computer.  Please select a client to monitor."
-msgstr ""
-"Inna instancja %s już działa na tym komputerze.\n"
-"Wybierz klienta do monitorowania."
+msgstr "Inna instancja %s już działa na tym komputerze.\nWybierz klienta do monitorowania."
 
-#: DlgSelectComputer.cpp:143
+#: clientgui/DlgSelectComputer.cpp:143
 msgid "Host name:"
 msgstr "Nazwa komputera:"
 
-#: Localization.cpp:31 Localization.cpp:69
+#: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
 msgid "Message boards"
 msgstr "Forum"
 
-#: Localization.cpp:33
+#: clientgui/Localization.cpp:33
 msgid "Correspond with other users on the SETI at home message boards"
 msgstr "Wymieniaj informacje z innymi użytkownikami SETI at home"
 
-#: Localization.cpp:37
+#: clientgui/Localization.cpp:37
 msgid "Ask questions and report problems"
 msgstr "Zadaj pytanie lub zgłoś problem"
 
-#: Localization.cpp:39 Localization.cpp:81 Localization.cpp:111
-#: Localization.cpp:129
+#: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
+#: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
 msgid "Your account"
 msgstr "Twoje konto"
 
-#: Localization.cpp:41 Localization.cpp:87 Localization.cpp:113
+#: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
+#: clientgui/Localization.cpp:113
 msgid "View your account information and credit totals"
 msgstr "Zobacz informacje o koncie oraz liczbę punktów"
 
-#: Localization.cpp:43
+#: clientgui/Localization.cpp:43
 msgid "Your preferences"
 msgstr "Preferencje"
 
-#: Localization.cpp:45
+#: clientgui/Localization.cpp:45
 msgid "View and modify your SETI at home account profile and preferences"
 msgstr "Sprawdź lub zmodyfikuj swój profil i preferencje dla projektu SETI at home"
 
-#: Localization.cpp:47 Localization.cpp:89
+#: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
 msgid "Your results"
 msgstr "Wyniki"
 
-#: Localization.cpp:49 Localization.cpp:91
+#: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
 msgid "View your last week (or more) of computational results and work"
 msgstr "Sprawdź ostatnie wyniki swoich obliczeń"
 
-#: Localization.cpp:51 Localization.cpp:93
+#: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
 msgid "Your computers"
 msgstr "Komputery"
 
-#: Localization.cpp:53
+#: clientgui/Localization.cpp:53
 msgid "View a listing of all the computers on which you are running SETI at Home"
 msgstr "Obejrzyj listę twoich komputerów, na których uruchamiasz SETI at Home"
 
-#: Localization.cpp:55 Localization.cpp:97
+#: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
 msgid "Your team"
 msgstr "Zespół"
 
-#: Localization.cpp:57 Localization.cpp:99
+#: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
 msgid "View information about your team"
 msgstr "Obejrzyj informacje dotyczące twojego zespołu"
 
-#: Localization.cpp:61
+#: clientgui/Localization.cpp:61
 msgid "Common questions"
 msgstr "Najczęściej zadawane pytania"
 
-#: Localization.cpp:63
+#: clientgui/Localization.cpp:63
 msgid "Read the Einstein at Home Frequently Asked Question list"
 msgstr "Przeczytaj najczęściej zadawane pytania projektu Einstein at Home"
 
-#: Localization.cpp:65
+#: clientgui/Localization.cpp:65
 msgid "Screensaver info"
 msgstr "Informacje o wygaszaczu"
 
-#: Localization.cpp:67
+#: clientgui/Localization.cpp:67
 msgid "Read a detailed description of the Einstein at Home screensaver"
 msgstr "Przeczytaj dokładną instrukcję dotyczącą wygaszacza Einstein at Home"
 
-#: Localization.cpp:71
+#: clientgui/Localization.cpp:71
 msgid ""
 "Correspond with admins and other users on the Einstein at Home message boards"
 msgstr "Porozmawiaj z innymi uczestnikami projektu Einstein at Home"
 
-#: Localization.cpp:73
+#: clientgui/Localization.cpp:73
 msgid "Einstein status"
 msgstr "Status Einstein at Home"
 
-#: Localization.cpp:75
+#: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
 msgstr "Aktualny status serwerów Einstein at Home"
 
-#: Localization.cpp:77
+#: clientgui/Localization.cpp:77
 msgid "Report problems"
 msgstr "Zgłoś problem"
 
-#: Localization.cpp:79
+#: clientgui/Localization.cpp:79
 msgid "A link to the Einstein at Home problems and bug reports message board"
-msgstr ""
-"Link służący do zgłaszania problemów związanych z projektem Einstein at Home"
+msgstr "Link służący do zgłaszania problemów związanych z projektem Einstein at Home"
 
-#: Localization.cpp:83
+#: clientgui/Localization.cpp:83
 msgid "View and modify your Einstein at Home account profile and preferences"
-msgstr ""
-"Sprawdź lub zmodyfikuj swój profil i preferencje dla projektu Einstein at Home"
+msgstr "Sprawdź lub zmodyfikuj swój profil i preferencje dla projektu Einstein at Home"
 
-#: Localization.cpp:85
+#: clientgui/Localization.cpp:85
 msgid "Account summary"
 msgstr "Dane konta"
 
-#: Localization.cpp:95
+#: clientgui/Localization.cpp:95
 msgid ""
 "View a listing of all the computers on which you are running Einstein at Home"
 msgstr "Obejrzyj listę twoich komputerów, na których uruchamiasz Einstein at Home"
 
-#: Localization.cpp:101
+#: clientgui/Localization.cpp:101
 msgid "LIGO project"
 msgstr "Projekt LIGO"
 
-#: Localization.cpp:103
+#: clientgui/Localization.cpp:103
 msgid ""
 "The home page of the Laser Interferometer Gravitational-wave Observatory "
 "(LIGO) project"
 msgstr "Strona domowa projektu LIGO"
 
-#: Localization.cpp:105
+#: clientgui/Localization.cpp:105
 msgid "GEO-600 project"
 msgstr "Projekt GEO-600"
 
-#: Localization.cpp:107
+#: clientgui/Localization.cpp:107
 msgid "The home page of the GEO-600 project"
 msgstr "Strona domowa projektu GEO-600"
 
-#: Localization.cpp:115 Localization.cpp:133 ViewProjects.cpp:221
-#: ViewStatistics.cpp:465
+#: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
+#: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
 msgid "Team"
 msgstr "Zespół"
 
-#: Localization.cpp:117
+#: clientgui/Localization.cpp:117
 msgid "Info about your Team"
 msgstr "Informacje o twoim zespole"
 
-#: Localization.cpp:123
+#: clientgui/Localization.cpp:123
 msgid "Get help for climateprediction.net"
 msgstr "Pomoc dla projektu climeteprediction.net"
 
-#: Localization.cpp:125
+#: clientgui/Localization.cpp:125
 msgid "News"
 msgstr "Aktualności"
 
-#: Localization.cpp:127
+#: clientgui/Localization.cpp:127
 msgid "climateprediction.net News"
 msgstr "Aktualności projektu climeteprediction.net"
 
-#: Localization.cpp:131
+#: clientgui/Localization.cpp:131
 msgid "View your account information, credits, and trickles"
 msgstr "Zobacz informacje dotyczące twojego konta"
 
-#: Localization.cpp:135
+#: clientgui/Localization.cpp:135
 msgid "Info about your team"
 msgstr "Informacje o twoim zespole"
 
-#: Localization.cpp:141
+#: clientgui/Localization.cpp:141
 msgid "Search for help in our help system"
 msgstr "Szukaj informacji w naszym systemie pomocy"
 
-#: Localization.cpp:143
+#: clientgui/Localization.cpp:143
 msgid "Global Statistics"
 msgstr "Statystyki globalne"
 
-#: Localization.cpp:145
+#: clientgui/Localization.cpp:145
 msgid "Summary statistics for World Community Grid"
 msgstr "Sumaryczne statystyki dla World Community Grid"
 
-#: Localization.cpp:147
+#: clientgui/Localization.cpp:147
 msgid "My Grid"
 msgstr "Moje WCG"
 
-#: Localization.cpp:149
+#: clientgui/Localization.cpp:149
 msgid "Your statistics and settings"
 msgstr "Twoje statystyki i ustawienia"
 
-#: Localization.cpp:151
+#: clientgui/Localization.cpp:151
 msgid "Device Profiles"
 msgstr "Profile sprzętowe"
 
-#: Localization.cpp:153
+#: clientgui/Localization.cpp:153
 msgid "Update your device settings"
 msgstr "Zaktualizuj swoje ustawienia urządzeń"
 
-#: Localization.cpp:155
+#: clientgui/Localization.cpp:155
 msgid "Research"
 msgstr "Badania"
 
-#: Localization.cpp:157
+#: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Dowiedz się więcej o projektach funkcjonujących na World Community Grid"
 
-#: MainDocument.cpp:583
-msgid "Starting client"
-msgstr "Uruchamianie klienta"
-
-#: MainDocument.cpp:591
-msgid "Connecting to client"
-msgstr "Łączenie z klientem"
-
-#: MainDocument.cpp:1195
-msgid "Retrieving system state; please wait..."
-msgstr "Sprawdzanie stan systemu; proszę czekać..."
-
-#: MainDocument.cpp:1816
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Brakująca aplikacja"
 
-#: MainDocument.cpp:1817
+#: clientgui/MainDocument.cpp:1820
 msgid ""
-"Please download and install the CoRD application from http://cord."
-"sourceforge.net"
-msgstr ""
-"Pobierz i zainstaluj aplikację CoRD ze strony http://cord.sourceforge.net"
+"Please download and install the CoRD application from "
+"http://cord.sourceforge.net"
+msgstr "Pobierz i zainstaluj aplikację CoRD ze strony http://cord.sourceforge.net"
 
-#: MainDocument.cpp:2432
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "zasilanie z baterii"
 
-#: MainDocument.cpp:2433
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "komputer jest w użyciu"
 
-#: MainDocument.cpp:2434
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "żądanie użytkownika"
 
-#: MainDocument.cpp:2435
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "pora dnia"
 
-#: MainDocument.cpp:2436
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "Testowanie procesora w trakcie"
 
-#: MainDocument.cpp:2437
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "potrzeba przestrzeni dyskowej - sprawdź preferencje"
 
-#: MainDocument.cpp:2438
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "komputer nie jest w użyciu"
 
-#: MainDocument.cpp:2439
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "uruchamianie"
 
-#: MainDocument.cpp:2440
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
-msgstr "uruchomiona jest aplikacja z priorytetem wyłączności"
+msgstr "uruchomiona jest aplikacja z wyłącznością"
 
-#: MainDocument.cpp:2441
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "procesor jest zajęty"
 
-#: MainDocument.cpp:2442
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "przekroczono limit przesyłanych danych"
 
-#: MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "na żądanie systemu operacyjnego"
 
-#: MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "przyczyna nieznana"
 
-#: MainDocument.cpp:2467
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "Brak dostępnego GPU, "
 
-#: MainDocument.cpp:2474
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Nowy"
 
-#: MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Pobieranie nie powiodło się"
 
-#: MainDocument.cpp:2480
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Pobieranie"
 
-#: MainDocument.cpp:2482 MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (wstrzymany - "
 
-#: MainDocument.cpp:2490
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Projekt wstrzymany przez użytkownika"
 
-#: MainDocument.cpp:2492
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Zadanie wstrzymane przez użytkownika"
 
-#: MainDocument.cpp:2494
+#. an NCI process can be running even though computation is suspended
+#. (because of <dont_suspend_nci>
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Wstrzymany - "
 
-# 75%
-#: MainDocument.cpp:2500
-#, fuzzy
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
-msgstr " (wstrzymany - "
+msgstr "Przetwarzanie GPU wstrzymane -"
 
-#: MainDocument.cpp:2507
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Brak dostępnej pamięci RAM"
 
-#: MainDocument.cpp:2509
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Oczekiwanie na zwolnienie współdzielonej pamięci RAM"
 
-#: MainDocument.cpp:2512
-msgid "Running, high priority"
-msgstr "Przetwarzany, wysoki priorytet"
-
-#: MainDocument.cpp:2514
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Przetwarzany"
 
-#: MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (nie wykorzystujący intensywnie CPU)"
 
-#: MainDocument.cpp:2520
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Oczekujący na uruchomienie"
 
-#: MainDocument.cpp:2522 MainDocument.cpp:2528
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Gotowy do uruchomienia"
 
-#: MainDocument.cpp:2532
-msgid " (Scheduler wait: "
-msgstr "(Oczekiwanie: "
+#: clientgui/MainDocument.cpp:2524
+msgid "Postponed: "
+msgstr "Odroczone:"
 
-#: MainDocument.cpp:2536
-msgid " (Scheduler wait)"
-msgstr "(Oczekiwanie)"
+#: clientgui/MainDocument.cpp:2527
+msgid "Postponed"
+msgstr "Odroczone"
 
-#: MainDocument.cpp:2540
-msgid " (Waiting for network access)"
-msgstr "(Oczekiwanie na dostęp do sieci)"
+#: clientgui/MainDocument.cpp:2531
+msgid "Waiting for network access"
+msgstr "Oczekiwanie na dostęp do sieci"
 
-#: MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Błąd przetwarzania"
 
-#: MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Wysyłanie nie powiodło się"
 
-#: MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Wysyłanie"
 
-#: MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Przerwany przez użytkownika"
 
-#: MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Przerwany przez serwer projektu"
 
-#: MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Przerwany: nie uruchomiono przed terminem"
 
-#: MainDocument.cpp:2570
-msgid "Aborted: disk limit exceeded"
-msgstr ""
+#: clientgui/MainDocument.cpp:2561
+msgid "Aborted: task disk limit exceeded"
+msgstr "Przerwane: zadanie przekroczyło limit użycia dysku"
 
-#: MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
-msgstr ""
+msgstr "Przerwano: osiągnięto limit czasu przetwarzania"
 
-#: MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
-msgstr ""
+msgstr "Przerwano: osiągnięto limit pamięci"
 
-#: MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Przerwany"
 
-#: MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Zaraportowany"
 
-#: MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Gotowy do zaraportowania"
 
-#: MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Błąd: niepoprawny status '%d'"
 
-#: NoInternetConnectionPage.cpp:179
+#: clientgui/NoInternetConnectionPage.cpp:179
 msgid "No Internet connection"
 msgstr "Brak dostępnego połączenia sieciowego"
 
-#: NoInternetConnectionPage.cpp:182
+#: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
 msgstr "Połącz się z internetem i spróbuj ponownie."
 
-#: NotDetectedPage.cpp:181
+#: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
 msgstr "Projekt nie został odnaleziony"
 
-#: NotDetectedPage.cpp:184
+#: clientgui/NotDetectedPage.cpp:184
 msgid ""
 "The URL you supplied is not that of a BOINC-based project.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
-"Adres który wprowadziłeś nie jest adresem projektu BOINC.\n"
-"\n"
-"Sprawdź adres i spróbuj ponownie."
+msgstr "Adres który wprowadziłeś nie jest adresem projektu BOINC.\n\nSprawdź adres i spróbuj ponownie."
 
-#: NotDetectedPage.cpp:188
+#: clientgui/NotDetectedPage.cpp:188
 msgid "Account manager not found"
 msgstr "Menadżer kont nie został znaleziony"
 
-#: NotDetectedPage.cpp:191
+#: clientgui/NotDetectedPage.cpp:191
 msgid ""
 "The URL you supplied is not that of a BOINC-based account\n"
 "manager.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
-"Wprowadzony adres URL nie jest adresem Menadżera kont BOINC.\n"
-"\n"
-"Sprawdź adres i spróbuj ponownie."
+msgstr "Wprowadzony adres URL nie jest adresem Menadżera kont BOINC.\n\nSprawdź adres i spróbuj ponownie."
 
-#: NotFoundPage.cpp:181
+#: clientgui/NotFoundPage.cpp:181
 msgid "Login Failed."
 msgstr "Logowanie nie powiodło się."
 
-#: NotFoundPage.cpp:185
+#: clientgui/NotFoundPage.cpp:185
 msgid "Check the username and password, and try again."
 msgstr "Sprawdź login oraz hasło i spróbuj ponownie."
 
-#: NotFoundPage.cpp:189
+#: clientgui/NotFoundPage.cpp:189
 msgid "Check the email address and password, and try again."
 msgstr "Sprawdź adres e-mail oraz hasło i spróbuj ponownie."
 
-#: NoticeListCtrl.cpp:222
+#: clientgui/NoticeListCtrl.cpp:229
 msgid "more..."
 msgstr "więcej..."
 
-#: ProjectInfoPage.cpp:477 ProjectInfoPage.cpp:778 ProjectInfoPage.cpp:782
-msgid "All"
-msgstr "Wszystkie"
-
-#: ProjectInfoPage.cpp:615
+#: clientgui/ProjectInfoPage.cpp:221
 msgid "Choose a project"
 msgstr "Wybierz projekt"
 
-#: ProjectInfoPage.cpp:619
+#: clientgui/ProjectInfoPage.cpp:226
 msgid "To choose a project, click its name or type its URL below."
-msgstr ""
-"Aby wybrać projekt kliknij jego nazwę albo wpisz jego adres URL poniżej."
+msgstr "Aby wybrać projekt kliknij jego nazwę albo wpisz jego adres URL poniżej."
 
-#: ProjectInfoPage.cpp:623
+#: clientgui/ProjectInfoPage.cpp:242
 msgid "Categories:"
 msgstr "Kategorie:"
 
-#: ProjectInfoPage.cpp:627 sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projekty:"
 
-#: ProjectInfoPage.cpp:631
+#: clientgui/ProjectInfoPage.cpp:274
 msgid "Project details"
 msgstr "Szczegóły projektu"
 
-#: ProjectInfoPage.cpp:635
+#: clientgui/ProjectInfoPage.cpp:284
 msgid "Research area:"
 msgstr "Obszar badań:"
 
-#: ProjectInfoPage.cpp:639
+#: clientgui/ProjectInfoPage.cpp:294
 msgid "Organization:"
 msgstr "Organizacja:"
 
-#: ProjectInfoPage.cpp:643
+#: clientgui/ProjectInfoPage.cpp:304
 msgid "Web site:"
 msgstr "Strona:"
 
-#: ProjectInfoPage.cpp:647
+#: clientgui/ProjectInfoPage.cpp:315
 msgid "Supported systems:"
 msgstr "Obsługiwane systemy:"
 
-#: ProjectInfoPage.cpp:651
+#: clientgui/ProjectInfoPage.cpp:352
 msgid "Project URL:"
 msgstr "Adres projektu:"
 
-#: ProjectInfoPage.cpp:826
+#: clientgui/ProjectInfoPage.cpp:486 clientgui/ProjectInfoPage.cpp:686
+#: clientgui/ProjectInfoPage.cpp:690
+msgid "All"
+msgstr "Wszystkie"
+
+#: clientgui/ProjectInfoPage.cpp:735
 msgid ""
 "This project may not have work for your type of computer.  Do you want to "
 "add it anyway?"
-msgstr ""
-"Projekt może nie dysponować zadaniami odpowiednimi dla twojego komputera. "
-"Czy na pewno chcesz kontynuować?"
+msgstr "Projekt może nie dysponować zadaniami odpowiednimi dla twojego komputera. Czy na pewno chcesz kontynuować?"
 
-#: ProjectInfoPage.cpp:850
+#: clientgui/ProjectInfoPage.cpp:767
 msgid "You already added this project. Please choose a different project."
 msgstr "Jesteś już przyłączony do tego projektu. Wybierz inny projekt."
 
-#: ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Trwa wymiana informacji z serwerem."
+#: clientgui/ProjectProcessingPage.cpp:321
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Łączenie z serwerem projektu\nProszę czekać..."
 
-#: ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Wymagane pliki nie zostały odnalezione na serwerze."
 
-#: ProjectProcessingPage.cpp:512 ProjectProcessingPage.cpp:574
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Wystąpił wewnętrzny błąd serwera."
 
-#: ProjectPropertiesPage.cpp:334
+#: clientgui/ProjectWelcomePage.cpp:251
+#, c-format
+msgid "Welcome to %s."
+msgstr "Witaj w %s."
+
+#: clientgui/ProjectWelcomePage.cpp:254
+msgid "You have volunteered to compute for this project:"
+msgstr "Zostałeś ochotnikiem celem wykonywania obliczeń w tym projekcie"
+
+#: clientgui/ProjectWelcomePage.cpp:255
+msgid "Name:"
+msgstr "Nazwa:"
+
+#: clientgui/ProjectWelcomePage.cpp:258
+msgid "Home:"
+msgstr "Realizator projektu:"
+
+#: clientgui/ProjectWelcomePage.cpp:262
+msgid "Description:"
+msgstr "Opis:"
+
+#: clientgui/ProjectWelcomePage.cpp:265
+msgid "URL:"
+msgstr "Adres URL:"
+
+#: clientgui/ProjectWelcomePage.cpp:268
+msgid "User:"
+msgstr "Użytkownik:"
+
+#: clientgui/ProjectWelcomePage.cpp:273
 msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr ""
-"Łączenie z serwerem projektu\n"
-"Proszę czekać..."
+"WARNING: This project is not registered with BOINC.  Make sure you trust it "
+"before continuing."
+msgstr "UWAGA: Ten projekt nie jest zarejestrowany w BOINC. Upewnij się przed kontynuowaniem, że masz do niego zaufanie."
+
+#: clientgui/ProjectWelcomePage.cpp:277
+msgid "To continue, click Next."
+msgstr "Aby kontynuować naciśnij Dalej."
 
-#: ProxyInfoPage.cpp:195
+#: clientgui/ProxyInfoPage.cpp:195
 msgid "Network communication failure"
 msgstr "Błąd komunikacji sieciowej"
 
-#: ProxyInfoPage.cpp:199
+#: clientgui/ProxyInfoPage.cpp:199
 msgid ""
 "The World Community Grid - BOINC software failed to communicate\n"
 "over the Internet. The most likely reasons are:\n"
@@ -2665,22 +2827,9 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
-"BOINC nie mógł połączyć się z projektem WCG przez internet.\n"
-"Najbardziej prawdopodobne przyczyny to:\n"
-"\n"
-"1) Problem z połączeniem. Sprawdź swoje połączenie sieciowe\n"
-"lub modemowe, a następnie kliknij Wstecz aby spróbować ponownie.\n"
-"\n"
-"2) Zapora sieciowa blokuje używanie sieci przez BOINC.\n"
-"Skonfiguruj swoją zaporę tak, aby zezwalał BOINC\n"
-"na komunikację poprzez port 80 oraz 443, a następnie kliknij Wstecz,\n"
-"aby spróbować ponownie.\n"
-"\n"
-"3) Używasz serwera proxy.\n"
-"Kliknij Dalej, aby skonfigurować ustawienia proxy."
+msgstr "BOINC nie mógł połączyć się z projektem WCG przez internet.\nNajbardziej prawdopodobne przyczyny to:\n\n1) Problem z połączeniem. Sprawdź swoje połączenie sieciowe\nlub modemowe, a następnie kliknij Wstecz aby spróbować ponownie.\n\n2) Zapora sieciowa blokuje używanie sieci przez BOINC.\nSkonfiguruj swoją zaporę tak, aby zezwalał BOINC\nna komunikację poprzez port 80 oraz 443, a następnie kliknij Wstecz,\naby spróbować ponownie.\n\n3) Używasz serwera proxy.\nKliknij Dalej, aby sk [...]
 
-#: ProxyInfoPage.cpp:203
+#: clientgui/ProxyInfoPage.cpp:203
 msgid ""
 "BOINC failed to communicate on the Internet.\n"
 "The most likely reasons are:\n"
@@ -2695,2211 +2844,991 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
-"BOINC nie mógł połączyć się z internetem.\n"
-"Najbardziej prawdopodobne przyczyny to:\n"
-"\n"
-"1) Problem z połączeniem. Sprawdź swoje połączenie sieciowe\n"
-"lub modemowe, a następnie kliknij Wstecz aby spróbować ponownie.\n"
-"\n"
-"2) Firewall blokuje używanie sieci przez BOINC.\n"
-"Skonfiguruj swojego firewalla tak, aby zezwalał BOINC'owi\n"
-"na komunikację poprzez port 80, a następnie kliknij Wstecz,\n"
-"aby spróbować ponownie.\n"
-"\n"
-"3) Używasz serwera proxy.\n"
-"Kliknij Dalej, aby skonfigurować ustawienia proxy."
+msgstr "BOINC nie mógł połączyć się z internetem.\nNajbardziej prawdopodobne przyczyny to:\n\n1) Problem z połączeniem. Sprawdź swoje połączenie sieciowe\nlub modemowe, a następnie kliknij Wstecz aby spróbować ponownie.\n\n2) Firewall blokuje używanie sieci przez BOINC.\nSkonfiguruj swojego firewalla tak, aby zezwalał BOINC'owi\nna komunikację poprzez port 80, a następnie kliknij Wstecz,\naby spróbować ponownie.\n\n3) Używasz serwera proxy.\nKliknij Dalej, aby skonfigurować ustawienia proxy."
 
-#: ProxyPage.cpp:331
+#: clientgui/ProxyPage.cpp:331
 msgid "Proxy configuration"
 msgstr "Konfiguracja proxy"
 
-#: ProxyPage.cpp:334
+#: clientgui/ProxyPage.cpp:334
 msgid "HTTP proxy"
 msgstr "Serwer HTTP Proxy"
 
-#: ProxyPage.cpp:337 ProxyPage.cpp:357
+#: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
 msgid "Server:"
 msgstr "Serwer:"
 
-#: ProxyPage.cpp:350
+#: clientgui/ProxyPage.cpp:350
 msgid "Autodetect"
 msgstr "Autodetekcja"
 
-#: ProxyPage.cpp:354
+#: clientgui/ProxyPage.cpp:354
 msgid "SOCKS proxy"
 msgstr "Serwer SOCKS Proxy"
 
-#: TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Zasady użytkowania"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Skórka"
 
-#: TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Zapoznaj się z następującymi zasadami użytkowania:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Wybierz wygląd interfejsu."
 
-#: TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Zgadzam się z zasadami użytkowania."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Widok zaawansowany...\tCtrl+Shift+A"
 
-#: TermsOfUsePage.cpp:237
-#, fuzzy
-msgid "I do not agree to the terms of use."
-msgstr "Nie zgadzam się z zasadami użytkowania."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Przełącza do widoku zaawansowanego."
 
-#: UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projekt tymczasowo niedostępny"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Konfiguracja opcji wyglądu i ustawień serwera proxy"
 
-#: UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-"Ten projekt jest tymczasowo niedostepny.\n"
-"\n"
-"Spróbuj ponownie później."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Pokaż informacje diagnostyczne."
 
-#: UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Menadżer kont jest czasowo niedostępny"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-"Ten menadżer kont jest tymczasowo niedostępny.\n"
-"\n"
-"Spróbuj ponownie później."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Domyślna"
 
-#: ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Podaj klucz konta aby kontynuować."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Wstrzymaj"
 
-#: ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Nieprawidłowy klucz kona. Podaj prawidłowy klucz."
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Wstrzymaj przetwarzanie"
 
-#: ValidateAccountKey.cpp:82 ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Błąd uwierzytelniania"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Wznów przetwarzanie"
 
-#: ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Podaj adres e-mail"
-
-#: ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Nieprawidłowy adres e-mail. Wprowadź prawidłowy adres."
-
-#: ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Brak adresu URL"
-
-#: ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr ""
-"Podaj adres URL.\n"
-"Na przykład:\n"
-"http://www.example.com/"
-
-#: ValidateURL.cpp:83 ValidateURL.cpp:87 ValidateURL.cpp:91
-#: ValidateURL.cpp:103 ValidateURL.cpp:107 ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Nieprawidłowy adres URL"
-
-#: ValidateURL.cpp:84 ValidateURL.cpp:88 ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr ""
-"Podaj prawidłowy adres URL.\n"
-"Na przykład:\n"
-"http://boincproject.example.com"
-
-#: ValidateURL.cpp:104 ValidateURL.cpp:108
-#, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' nie zawiera poprawnej nazwy hosta."
-
-#: ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' nie zawiera poprawnej ścieżki."
-
-#: ViewMessages.cpp:84 ViewProjects.cpp:170 ViewStatistics.cpp:1978
-#: ViewTransfers.cpp:160 ViewWork.cpp:183
-msgid "Commands"
-msgstr "Polecenia"
-
-#: ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Kopiuj wszystkie wiadomości"
-
-#: ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Kopiuj wybrane wiadomości"
-
-#: ViewMessages.cpp:106 ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Pokaż tylko ten projekt"
-
-#: ViewMessages.cpp:107 ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Pokazuje wiadomości związane tylko z wybranym projektem."
-
-#: ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Wiadomości"
-
-#: ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Kopiowanie wszystkich wiadomości do schowka..."
-
-#: ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Kopiowanie wybranych wiadomości do schowka..."
-
-#: ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtrowanie wiadomości..."
-
-#: ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Pokaż wszystkie wiadomości"
-
-#: ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Pokazuje wiadomości dotyczące wszystkich projektów."
-
-#: ViewNotices.cpp:58 sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr ""
-
-#: ViewNotices.cpp:65 sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Aktualnie nie ma żadnych powiadomień."
-
-#: ViewNotices.cpp:99 sg_BoincSimpleFrame.cpp:776
-msgid "Notices"
-msgstr "Powiadomienia"
-
-#: ViewProjects.cpp:174 sg_ProjectCommandPopup.cpp:61
-msgid "Update"
-msgstr "Zaktualizuj projekt"
-
-#: ViewProjects.cpp:175 sg_ProjectCommandPopup.cpp:62
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr ""
-"Przesyła informacje o zakończonych obliczeniach oraz aktualizuje preferencje "
-"i wyniki dla danego projektu."
-
-#: ViewProjects.cpp:181 ViewProjects.cpp:722 ViewWork.cpp:208 ViewWork.cpp:801
-#: sg_BoincSimpleFrame.cpp:757 sg_ProjectCommandPopup.cpp:67
-#: sg_ProjectCommandPopup.cpp:113 sg_TaskCommandPopup.cpp:66
-#: sg_TaskCommandPopup.cpp:106
-msgid "Suspend"
-msgstr "Wstrzymaj"
-
-#: ViewProjects.cpp:182 ViewProjects.cpp:722 sg_ProjectCommandPopup.cpp:68
-#: sg_ProjectCommandPopup.cpp:114
-msgid "Suspend tasks for this project."
-msgstr "Wstrzymuje przetwarzanie zadań dla danego projektu."
-
-#: ViewProjects.cpp:188 ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:73
-#: sg_ProjectCommandPopup.cpp:121
-msgid "No new tasks"
-msgstr "Nie pobieraj danych"
-
-#: ViewProjects.cpp:189 sg_ProjectCommandPopup.cpp:74
-msgid "Don't get new tasks for this project."
-msgstr "Nie pobieraj nowych zadań do przetwarzania w tym projekcie."
-
-#: ViewProjects.cpp:195 sg_ProjectCommandPopup.cpp:79
-msgid "Reset project"
-msgstr "Zresetuj projekt"
-
-#: ViewProjects.cpp:196 sg_ProjectCommandPopup.cpp:80
-msgid ""
-"Delete all files and tasks associated with this project, and get new tasks.  "
-"You can update the project first to report any completed tasks."
-msgstr ""
-"Usuwa wszystkie pliki związane z danym projektem i pobiera nową porcję "
-"danych do przetwarzania. Przed użyciem możesz skorzystać z funkcji "
-"aktualizacji aby zaraportować zakończone zadania."
-
-#: ViewProjects.cpp:203 sg_ProjectCommandPopup.cpp:86
-msgid ""
-"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
-"report any completed tasks)."
-msgstr ""
-"Odłącza ten komputer od wybranego projektu. Dane będące aktualnie w toku "
-"przetwarzania zostaną utracone. Użyj wczesniej funkcji aktualizacji aby "
-"zaraportować zakończone zadania."
-
-#: ViewProjects.cpp:209 ViewWork.cpp:222 sg_ProjectCommandPopup.cpp:91
-#: sg_TaskCommandPopup.cpp:78
-msgid "Properties"
-msgstr "Właściwości"
-
-#: ViewProjects.cpp:210 sg_ProjectCommandPopup.cpp:92
-msgid "Show project details."
-msgstr "Pokazuje szczegóły projektu."
-
-#: ViewProjects.cpp:220 ViewStatistics.cpp:450
-msgid "Account"
-msgstr "Konto"
-
-#: ViewProjects.cpp:222
-msgid "Work done"
-msgstr "Wynik całkowity"
-
-#: ViewProjects.cpp:223
-msgid "Avg. work done"
-msgstr "Średni wynik"
-
-#: ViewProjects.cpp:225 ViewTransfers.cpp:188 ViewWork.cpp:234
-msgid "Status"
-msgstr "Status"
-
-#: ViewProjects.cpp:250
-msgid "Projects"
-msgstr "Projekty"
-
-#: ViewProjects.cpp:302
-msgid "Updating project..."
-msgstr "Aktualizowanie projektu..."
-
-#: ViewProjects.cpp:344
-msgid "Resuming project..."
-msgstr "Wznawianie projektu..."
-
-#: ViewProjects.cpp:348
-msgid "Suspending project..."
-msgstr "Wstrzymywanie projektu..."
-
-#: ViewProjects.cpp:385
-msgid "Telling project to allow additional task downloads..."
-msgstr "Przekazywanie projektowi aby wznowił przydzielanie dodatkowych zadań..."
-
-#: ViewProjects.cpp:389
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Przekazywanie projektowi aby wstrzymał przydzielanie nowych zadań..."
-
-#: ViewProjects.cpp:425
-msgid "Resetting project..."
-msgstr "Resetowanie projektu..."
-
-#: ViewProjects.cpp:438 sg_ProjectCommandPopup.cpp:214
-#, c-format
-msgid "Are you sure you want to reset project '%s'?"
-msgstr "Czy jesteś pewien, że chcesz zresetować projekt '%s'?"
-
-#: ViewProjects.cpp:444 sg_ProjectCommandPopup.cpp:220
-msgid "Reset Project"
-msgstr "Zresetuj projekt"
-
-#: ViewProjects.cpp:483
-msgid "Removing project..."
-msgstr "Usuwanie projektu..."
-
-#: ViewProjects.cpp:496 sg_ProjectCommandPopup.cpp:251
-#, c-format
-#, c-format, c-format
-msgid "Are you sure you want to remove project '%s'?"
-msgstr "Czy jesteś pewien, że chcesz usunąć projekt '%s'?"
-
-#: ViewProjects.cpp:502 sg_ProjectCommandPopup.cpp:257
-msgid "Remove Project"
-msgstr "Usuń projekt"
-
-#: ViewProjects.cpp:543 ViewWork.cpp:599
-msgid "Launching browser..."
-msgstr "Otwieranie okna przeglądarki..."
-
-#: ViewProjects.cpp:718 sg_ProjectCommandPopup.cpp:111
-msgid "Resume tasks for this project."
-msgstr "Wznów zadania przetwarzane w tym projekcie."
-
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:118
-msgid "Allow new tasks"
-msgstr "Pobieraj nowe dane"
-
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:119
-msgid "Allow fetching new tasks for this project."
-msgstr "Wznawia pobieranie nowych danych dla tego projektu."
-
-#: ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:122
-msgid "Don't fetch new tasks for this project."
-msgstr "Wstrzymuje pobieranie nowych danych dla tego projektu."
-
-#: ViewProjects.cpp:1058
-msgid "Requested by user"
-msgstr "Zażądane przez użytkownika"
-
-#: ViewProjects.cpp:1059
-msgid "To fetch work"
-msgstr "Aby pobrać zadania"
-
-#: ViewProjects.cpp:1060
-msgid "To report completed tasks"
-msgstr "Aby zaraportować zakończone zadania"
-
-#: ViewProjects.cpp:1061
-msgid "To send trickle-up message"
-msgstr "Aby wysłać miniwiadomość"
-
-#: ViewProjects.cpp:1062
-msgid "Requested by account manager"
-msgstr "Zażądane przez menadżera kont"
-
-#: ViewProjects.cpp:1063
-msgid "Project initialization"
-msgstr "Inicjalizacja projektu"
-
-#: ViewProjects.cpp:1064
-msgid "Requested by project"
-msgstr "Zażądane przez projekt"
-
-#: ViewProjects.cpp:1065
-msgid "Unknown reason"
-msgstr "Przyczyna nieznana"
-
-#: ViewProjects.cpp:1079
-msgid "Suspended by user"
-msgstr "Wstrzymany przez użytkownika"
-
-#: ViewProjects.cpp:1082
-msgid "Won't get new tasks"
-msgstr "Nie pobieraj nowych danych"
-
-#: ViewProjects.cpp:1085
-msgid "Project ended - OK to remove"
-msgstr "Projekt zakończony - naciśnij OK aby go usunąć"
-
-#: ViewProjects.cpp:1088
-msgid "Will remove when tasks done"
-msgstr "Usuwa po zakończeniu zadań"
-
-#: ViewProjects.cpp:1091
-msgid "Scheduler request pending"
-msgstr "Oczekiwanie na połączenie z serwerem projektu"
-
-#: ViewProjects.cpp:1097
-msgid "Scheduler request in progress"
-msgstr "Trwa nawiązywanie połączenia z serwerem projektu"
-
-#: ViewProjects.cpp:1100
-msgid "Trickle up message pending"
-msgstr "Wysyłanie miniwiadomości"
-
-#: ViewProjects.cpp:1106
-msgid "Communication deferred "
-msgstr "Komunikacja opóźniona"
-
-#: ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Całkowite użycie dysku twardego"
-
-#: ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Użycie dysku przez projekty BOINC"
-
-#: ViewResources.cpp:116
-msgid "Disk"
-msgstr "Dysk twardy"
-
-#: ViewResources.cpp:249
-msgid "no projects: 0 bytes used"
-msgstr "brak projektów: 0 bajtów zajętych"
-
-#: ViewResources.cpp:286
-msgid "used by BOINC: "
-msgstr "przestrzeń używana przez BOINC: "
-
-#: ViewResources.cpp:296
-msgid "free, available to BOINC: "
-msgstr "wolna przestrzeń, dostępna dla BOINC: "
-
-#: ViewResources.cpp:306
-msgid "free, not available to BOINC: "
-msgstr "wolna przestrzeń, niedostępna dla BOINC: "
-
-#: ViewResources.cpp:316
-msgid "free: "
-msgstr "wolna przestrzeń: "
-
-#: ViewResources.cpp:326
-msgid "used by other programs: "
-msgstr "przestrzeń używana przez inne aplikacje: "
-
-#: ViewStatistics.cpp:1205
-msgid "User Total"
-msgstr "Całkowite statystyki uczestnika"
-
-#: ViewStatistics.cpp:1206
-msgid "User Average"
-msgstr "Średnie statystyki uczestnika"
-
-#: ViewStatistics.cpp:1207
-msgid "Host Total"
-msgstr "Całkowite statystyki komputera"
-
-#: ViewStatistics.cpp:1208
-msgid "Host Average"
-msgstr "Średnie statystyki komputera"
-
-#: ViewStatistics.cpp:1355
-#, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Ostatnia aktualizacja: %.0f dni temu"
-
-#: ViewStatistics.cpp:1982
-msgid "Show user total"
-msgstr "Całkowite wyniki uczestnika"
-
-#: ViewStatistics.cpp:1983
-msgid "Show total credit for user"
-msgstr "Pokazuje całkowite statystyki uczestnika"
-
-#: ViewStatistics.cpp:1989
-msgid "Show user average"
-msgstr "Pokazuje średnie wyniki uczestnika"
-
-#: ViewStatistics.cpp:1990
-msgid "Show average credit for user"
-msgstr "Pokazuje bieżące statystyki uczestnika"
-
-#: ViewStatistics.cpp:1996
-msgid "Show host total"
-msgstr "Pokazuje całkowite wyniki komputera"
-
-#: ViewStatistics.cpp:1997
-msgid "Show total credit for host"
-msgstr "Pokazuje całkowite statystyki komputera."
-
-#: ViewStatistics.cpp:2003
-msgid "Show host average"
-msgstr "Pokazuje średnie wyniki komputera"
-
-#: ViewStatistics.cpp:2004
-msgid "Show average credit for host"
-msgstr "Pokazuje średnie statystyki komputera"
-
-#: ViewStatistics.cpp:2013
-msgid "< &Previous project"
-msgstr "< &Poprzedni projekt"
-
-#: ViewStatistics.cpp:2014
-msgid "Show chart for previous project"
-msgstr "Pokazuje wykres dla poprzedniego projektu"
-
-#: ViewStatistics.cpp:2019
-msgid "&Next project >"
-msgstr "&Następny projekt >"
-
-#: ViewStatistics.cpp:2020
-msgid "Show chart for next project"
-msgstr "Pokazuje wykres dla następnego projektu"
-
-#: ViewStatistics.cpp:2026 ViewStatistics.cpp:2416
-msgid "Hide project list"
-msgstr "Ukryj listę projektów"
-
-#: ViewStatistics.cpp:2027 ViewStatistics.cpp:2416
-msgid "Use entire area for graphs"
-msgstr "Wykorzystuje całą powierzchnię na wykres"
-
-#: ViewStatistics.cpp:2032
-msgid "Mode view"
-msgstr "Rodzaj widoku"
-
-#: ViewStatistics.cpp:2036
-msgid "One project"
-msgstr "Pojedynczy projekt"
-
-#: ViewStatistics.cpp:2037
-msgid "Show one chart with selected project"
-msgstr "Pokazuje wykres dla wybranego projektu"
-
-#: ViewStatistics.cpp:2043
-msgid "All projects (separate)"
-msgstr "Wszystkie projekty (osobno)"
-
-#: ViewStatistics.cpp:2044
-msgid "Show all projects, one chart per project"
-msgstr "Pokazuje wykresy dla wszystkich projektów, jeden wykres na projekt"
-
-#: ViewStatistics.cpp:2050
-msgid "All projects (together)"
-msgstr "Wszystkie projekty (razem)"
-
-#: ViewStatistics.cpp:2051
-msgid "Show one chart with all projects"
-msgstr "Pokazuje wspólny wykres dla wszystkich projektów"
-
-#: ViewStatistics.cpp:2057
-msgid "All projects (sum)"
-msgstr "Wszystkie projekty (łącznie)"
-
-#: ViewStatistics.cpp:2058
-msgid "Show one chart with sum of projects"
-msgstr "Pokazuje wspólny z sumą wszystkich projektów"
-
-#: ViewStatistics.cpp:2079
-msgid "Statistics"
-msgstr "Statystyki"
-
-#: ViewStatistics.cpp:2103 ViewStatistics.cpp:2124 ViewStatistics.cpp:2145
-#: ViewStatistics.cpp:2167 ViewStatistics.cpp:2188 ViewStatistics.cpp:2209
-#: ViewStatistics.cpp:2230 ViewStatistics.cpp:2251 ViewStatistics.cpp:2272
-#: ViewStatistics.cpp:2296
-msgid "Updating charts..."
-msgstr "Aktualizacja wykresów..."
-
-#: ViewStatistics.cpp:2420
-msgid "Show project list"
-msgstr "Pokaż listę projeków"
-
-#: ViewStatistics.cpp:2420
-msgid "Uses smaller area for graphs"
-msgstr "Wykorzystuje mniejszą przestrzeń dla projektów"
-
-#: ViewTransfers.cpp:164
-msgid "Retry Now"
-msgstr "Próbuj ponownie"
-
-#: ViewTransfers.cpp:165
-msgid "Retry the file transfer now"
-msgstr ""
-
-#: ViewTransfers.cpp:171
-msgid "Abort Transfer"
-msgstr "Przerwij przesyłanie pliku"
-
-#: ViewTransfers.cpp:172
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr ""
-
-#: ViewTransfers.cpp:183
-msgid "File"
-msgstr "Plik"
-
-#: ViewTransfers.cpp:184 ViewWork.cpp:233
-msgid "Progress"
-msgstr "Postęp"
-
-#: ViewTransfers.cpp:185
-msgid "Size"
-msgstr "Rozmiar"
-
-#: ViewTransfers.cpp:186
-msgid "Elapsed Time"
-msgstr "Czas trwania"
-
-#: ViewTransfers.cpp:187
-msgid "Speed"
-msgstr "Szybkość"
-
-#: ViewTransfers.cpp:213
-msgid "Transfers"
-msgstr "Przesyłanie"
-
-#: ViewTransfers.cpp:280
-msgid "Network activity is suspended - "
-msgstr "Aktywność sieciowa jest wstrzymana - "
-
-#: ViewTransfers.cpp:282
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ""
-".\n"
-"Możesz ją włączyć używając menu Aktywność."
-
-#: ViewTransfers.cpp:285
-msgid "BOINC"
-msgstr "BOINC"
-
-#: ViewTransfers.cpp:292
-msgid "Retrying transfer now..."
-msgstr "Ponawianie próby przesłania..."
-
-#: ViewTransfers.cpp:330
-msgid "Aborting transfer..."
-msgstr "Przerywanie przesyłania..."
-
-#: ViewTransfers.cpp:343
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr ""
-"Czy jesteś pewien, że chcesz przerwać przesyłanie pliku '%s'?\n"
-"UWAGA: Przerwanie przesyłania spowoduje skasowanie pliku lub jego już "
-"pobranej części.\n"
-"Jeśli jest to plik z wynikami obliczeń, nie otrzymasz punktów za to zadanie."
-
-#: ViewTransfers.cpp:349
-msgid "Abort File Transfer"
-msgstr "Przerwij przesyłanie pliku"
-
-#: ViewTransfers.cpp:780
-msgid "Upload"
-msgstr "Wysyłanie"
-
-#: ViewTransfers.cpp:780
-msgid "Download"
-msgstr "Pobieranie"
-
-#: ViewTransfers.cpp:784
-msgid "retry in "
-msgstr "ponowna próba za "
-
-#: ViewTransfers.cpp:786
-msgid "failed"
-msgstr "niepowodzenie"
-
-#: ViewTransfers.cpp:789
-msgid "suspended"
-msgstr "zatrzymane"
-
-#: ViewTransfers.cpp:794
-msgid "active"
-msgstr "aktywne"
-
-#: ViewTransfers.cpp:796
-msgid "pending"
-msgstr "trwające"
-
-#: ViewTransfers.cpp:803
-msgid " (project backoff: "
-msgstr " (oczekiwanie: "
-
-#: ViewWork.cpp:187 ViewWork.cpp:777
-msgid "Show active tasks"
-msgstr "Pokaż aktywne zadania"
-
-#: ViewWork.cpp:188 ViewWork.cpp:778
-msgid "Show only active tasks."
-msgstr "Wyświetla wyłącznie aktywne zadania."
-
-#: ViewWork.cpp:194 sg_TaskCommandPopup.cpp:60
-msgid "Show graphics"
-msgstr "Pokaż grafikę"
-
-#: ViewWork.cpp:195 sg_TaskCommandPopup.cpp:61
-msgid "Show application graphics in a window."
-msgstr "Pokaż grafikę aplikacji w oknie."
-
-#: ViewWork.cpp:201
-msgid "Show VM Console"
-msgstr "Pokaż konsolę VM"
-
-#: ViewWork.cpp:202
-msgid "Show VM Console in a window."
-msgstr "Pokazuje okno konsoli VM"
-
-#: ViewWork.cpp:209
-msgid "Suspend work for this result."
-msgstr "Wstrzymuje przetwarzanie tego zadania."
-
-#: ViewWork.cpp:215 sg_TaskCommandPopup.cpp:72
-msgid "Abort"
-msgstr "Przerwij"
-
-#: ViewWork.cpp:216
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Przerwij przetwarzanie tego zadania. Nie otrzymasz za nie punktów."
-
-#: ViewWork.cpp:223 sg_TaskCommandPopup.cpp:79
-msgid "Show task details."
-msgstr "Pokaż szczegóły zadania."
-
-#: ViewWork.cpp:235
-msgid "Elapsed"
-msgstr "Upłynęło"
-
-#: ViewWork.cpp:236
-msgid "Remaining (estimated)"
-msgstr "Pozostało (szacowane)"
-
-#: ViewWork.cpp:237
-msgid "Deadline"
-msgstr "Termin"
-
-#: ViewWork.cpp:264
-msgid "Tasks"
-msgstr "Zadania"
-
-#: ViewWork.cpp:357
-msgid "Resuming task..."
-msgstr "Wznawianie zadania..."
-
-#: ViewWork.cpp:360
-msgid "Suspending task..."
-msgstr "Wstrzymywanie zadania..."
-
-#: ViewWork.cpp:389
-msgid "Showing graphics for task..."
-msgstr "Wyświetlanie grafiki dla zadania..."
-
-#: ViewWork.cpp:426
-msgid "Showing VM console for task..."
-msgstr "Pokazywanie konsoli VM dla zadania..."
-
-#: ViewWork.cpp:479
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr ""
-"Czy jesteś pewien, że chcesz przerwać zadanie: '%s'?\n"
-"(Postęp: %s, Status: %s)"
-
-#: ViewWork.cpp:485
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Czy jesteś pewien, że chcesz przerwać te zadania %d?"
-
-#: ViewWork.cpp:490 sg_TaskCommandPopup.cpp:256
-msgid "Abort task"
-msgstr "Przerwij zadanie"
-
-# 75%
-#: ViewWork.cpp:499
-#, fuzzy
-msgid "Aborting task..."
-msgstr "Przerywanie przesyłania..."
-
-#: ViewWork.cpp:771
-msgid "Show all tasks"
-msgstr "Pokaż wszystkie zadania"
-
-#: ViewWork.cpp:772
-msgid "Show all tasks."
-msgstr "Pokaż wszystkie zadania."
-
-#: ViewWork.cpp:796 sg_TaskCommandPopup.cpp:103
-msgid "Resume work for this task."
-msgstr "Wznów to zadanie."
-
-#: ViewWork.cpp:802 sg_TaskCommandPopup.cpp:107
-msgid "Suspend work for this task."
-msgstr "Wstrzymaj to zadanie."
-
-#: WelcomePage.cpp:284
-msgid "Add project or account manager"
-msgstr "Dodaj projekt lub menadżer kont"
-
-#: WelcomePage.cpp:288
-msgid "Add project or use BOINC Account Manager"
-msgstr ""
-
-#: WelcomePage.cpp:297
-#, c-format
-msgid ""
-"If possible, add projects at the\n"
-"%s web site.\n"
-"\n"
-"Projects added via this wizard will not be\n"
-"listed on or managed via %s."
-msgstr ""
-"Jeśli jest to możliwe, dodawaj projekty przy użyciu\n"
-"strony %s.\n"
-"\n"
-"Projekty dodane przy użyciu tego kreatora\n"
-"nie będą widoczne oraz zarządzane przez %s."
-
-#: WelcomePage.cpp:313
-msgid ""
-"There are over 30 BOINC-based projects\n"
-"doing research in many areas of science,\n"
-"and you can volunteer for as many of them as you like.\n"
-"You can add a project directly,\n"
-"or use an 'Account Manager' web site to select projects."
-msgstr ""
-"Aktualnie jest ponad 30 projektów BOINC\n"
-"wykonujących badania w różnych obszarach nauki.\n"
-"Możesz uczestniczyć w dowolnej liczbie projektów.Możesz dodać projekt "
-"bezpośrednio\n"
-"lub skorzystać do wybierania projektów z menadżera kont."
-
-#: WelcomePage.cpp:325
-msgid ""
-"You have chosen to add a new volunteer computing project or change which "
-"projects\n"
-"you contribute to.\n"
-"\n"
-"Some of these projects are run and managed by World Community Grid, while "
-"others\n"
-"are run and managed by other researchers or organizations. The BOINC "
-"software\n"
-"can divide your spare processing power among any combination of projects.\n"
-"\n"
-"Alternatively, if you have registered with a BOINC Account Manager, you can "
-"use\n"
-"this to choose which projects to support.\n"
-"\n"
-"Please choose which type of change you would like to make:\n"
-msgstr ""
-
-#: WelcomePage.cpp:339
-msgid "Use a BOINC Account Manager"
-msgstr ""
-
-#: WelcomePage.cpp:352
-msgid "To continue, click Next."
-msgstr "Aby kontynuować naciśnij Dalej."
-
-#: WelcomePage.cpp:358
-msgid "Add or change your World Community Grid projects"
-msgstr ""
-
-#: WelcomePage.cpp:361
-msgid "Add projects run by other researchers or organizations"
-msgstr ""
-
-#: WizardAttach.cpp:634
-msgid "Do you really want to cancel?"
-msgstr "Czy na pewno chcesz anulować?"
-
-#: WizardAttach.cpp:635
-msgid "Question"
-msgstr "Pytanie"
-
-#: sg_BoincSimpleFrame.cpp:149
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Widok zaawansowany...\tCtrl+Shift+A"
-
-#: sg_BoincSimpleFrame.cpp:150
-msgid "Display the advanced graphical interface."
-msgstr "Przełącza do widoku zaawansowanego."
-
-#: sg_BoincSimpleFrame.cpp:157
-msgid "Skin"
-msgstr "Skórka"
-
-#: sg_BoincSimpleFrame.cpp:159
-msgid "Select the appearance of the user interface."
-msgstr "Wybierz wygląd interfejsu."
-
-#: sg_BoincSimpleFrame.cpp:206
-#, c-format
-msgid "&%s"
-msgstr "&%s"
-
-#: sg_BoincSimpleFrame.cpp:390
-msgid "Default"
-msgstr "Domyślna"
-
-#: sg_BoincSimpleFrame.cpp:759
-msgid "Suspend Computing"
-msgstr "Wstrzymaj przetwarzanie"
-
-#: sg_BoincSimpleFrame.cpp:760
-msgid "Resume Computing"
-msgstr "Wznów przetwarzanie"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Powiadomienia"
 
-#: sg_BoincSimpleFrame.cpp:777
+#: clientgui/sg_BoincSimpleFrame.cpp:930
 msgid "Open a window to view notices from projects or BOINC"
 msgstr "Otwiera okno z powiadomieniami z serwera lub z BOINC"
 
-#: sg_DlgMessages.cpp:146
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Uzyskaj pomoc dla %s"
+
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Pobieranie powiadomień, proszę czekać..."
+
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Aktualnie nie ma żadnych powiadomień."
+
+#: clientgui/sg_DlgMessages.cpp:146
 msgid "Close"
 msgstr "Zamknij"
 
-#: sg_DlgMessages.cpp:389
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-#, c-format, c-format
 msgid "%s - Notices"
 msgstr "%s - Powiadomienia"
 
-#: sg_DlgPreferences.cpp:268
-msgid "This dialog controls preferences for this computer only."
-msgstr "To okno kontroluje jedynie preferencje dla tego komputera."
-
-#: sg_DlgPreferences.cpp:273
-msgid "Click OK to set preferences."
-msgstr "Naciśnij OK aby zapisać preferencje."
-
-#: sg_DlgPreferences.cpp:278
-msgid ""
-"Click Clear to restore web-based settings for all preferences listed below."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:285
-#, fuzzy
+#: clientgui/sg_DlgPreferences.cpp:208
 msgid ""
 "For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Dla dodatkowych ustawień wybierze preferencje przetwarzania w "
-
-#: sg_DlgPreferences.cpp:313
-msgid "Do work only between:"
-msgstr "Przetwarzaj dane tylko pomiędzy:"
+msgstr "Dla dodatkowych ustawień, wybierz Preferencje Przetwarzania w widoku zaawansowanym."
 
-#: sg_DlgPreferences.cpp:335
-msgid "Connect to internet only between:"
-msgstr "Łącz się z internetem tylko pomiędzy:"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB miejsca na dysku"
 
-#: sg_DlgPreferences.cpp:357 sg_DlgPreferences.cpp:374
-msgid "Use no more than:"
-msgstr "Używaj nie więcej niż:"
-
-#: sg_DlgPreferences.cpp:370
-msgid "of disk space"
-msgstr "przestrzeni dysku"
-
-#: sg_DlgPreferences.cpp:387
-msgid "of the processor"
-msgstr "mocy obliczeniowej procesora"
-
-#: sg_DlgPreferences.cpp:391
-msgid "Do work while on battery?"
-msgstr "Przetwarzanie danych podczas zasilania z baterii?"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Ustawienia przetwarzania"
 
-#: sg_DlgPreferences.cpp:404
-msgid "Do work after idle for:"
-msgstr "Przetwarzanie danych tylko po bezczynności przez:"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Dezaktywować wszystkie ustawienia lokalne i użyć ustawień serwera?"
 
-#: sg_DlgPreferences.cpp:429
-#, fuzzy
-msgid "Clear all local preferences listed above and close the dialog"
-msgstr "Wyczyść lokalne preferencje i zamknij okno"
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
+msgid "Update"
+msgstr "Zaktualizuj projekt"
 
-#: sg_DlgPreferences.cpp:602 sg_DlgPreferences.cpp:605
-#: sg_DlgPreferences.cpp:681 sg_DlgPreferences.cpp:685
-#: sg_DlgPreferences.cpp:697 sg_DlgPreferences.cpp:701
-#: sg_DlgPreferences.cpp:844 sg_DlgPreferences.cpp:855
-msgid "Anytime"
-msgstr "Zawsze"
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
+msgid ""
+"Report all completed tasks, get latest credit, get latest preferences, and "
+"possibly get more tasks."
+msgstr "Przesyła informacje o zakończonych obliczeniach oraz aktualizuje preferencje i wyniki dla danego projektu."
 
-#: sg_DlgPreferences.cpp:638
-msgid "100 MB"
-msgstr "100 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:73
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
+msgid "Suspend tasks for this project."
+msgstr "Wstrzymuje przetwarzanie zadań dla danego projektu."
 
-#: sg_DlgPreferences.cpp:639
-msgid "200 MB"
-msgstr "200 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
+msgid "No new tasks"
+msgstr "Nie pobieraj danych"
 
-#: sg_DlgPreferences.cpp:640
-msgid "500 MB"
-msgstr "500 MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
+msgid "Don't get new tasks for this project."
+msgstr "Nie pobieraj nowych zadań do przetwarzania w tym projekcie."
 
-#: sg_DlgPreferences.cpp:641
-msgid "1 GB"
-msgstr "1 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
+msgid "Reset project"
+msgstr "Zresetuj projekt"
 
-#: sg_DlgPreferences.cpp:642
-msgid "2 GB"
-msgstr "2 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
+msgid ""
+"Delete all files and tasks associated with this project, and get new tasks."
+"  You can update the project first to report any completed tasks."
+msgstr "Usuwa wszystkie pliki związane z danym projektem i pobiera nową porcję danych do przetwarzania. Przed użyciem możesz skorzystać z funkcji aktualizacji aby zaraportować zakończone zadania."
 
-#: sg_DlgPreferences.cpp:643
-msgid "5 GB"
-msgstr "5 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
+msgid ""
+"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
+"report any completed tasks)."
+msgstr "Odłącza ten komputer od wybranego projektu. Dane będące aktualnie w toku przetwarzania zostaną utracone. Użyj wczesniej funkcji aktualizacji aby zaraportować zakończone zadania."
 
-#: sg_DlgPreferences.cpp:644
-msgid "10 GB"
-msgstr "10 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:96
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
+msgid "Properties"
+msgstr "Właściwości"
 
-#: sg_DlgPreferences.cpp:645
-msgid "20 GB"
-msgstr "20 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
+msgid "Show project details."
+msgstr "Pokazuje szczegóły projektu."
 
-#: sg_DlgPreferences.cpp:646
-msgid "50 GB"
-msgstr "50 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Wznów zadania przetwarzane w tym projekcie."
 
-#: sg_DlgPreferences.cpp:647
-msgid "100 GB"
-msgstr "100 GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Pobieraj nowe dane"
 
-#: sg_DlgPreferences.cpp:717
-#, c-format
-msgid "%d MB"
-msgstr "%d MB"
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Wznawia pobieranie nowych danych dla tego projektu."
 
-#: sg_DlgPreferences.cpp:719
-#, c-format
-msgid "%4.2f GB"
-msgstr "%4.2f GB"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Wstrzymuje pobieranie nowych danych dla tego projektu."
 
-#: sg_DlgPreferences.cpp:760
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
-msgid "%d%%"
-msgstr "%d%%"
+msgid "Are you sure you want to reset project '%s'?"
+msgstr "Czy jesteś pewien, że chcesz zresetować projekt '%s'?"
 
-#: sg_DlgPreferences.cpp:796
-msgid "0 (Run Always)"
-msgstr "0 (uruchamiaj zawsze)"
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
+msgid "Reset Project"
+msgstr "Zresetuj projekt"
 
-#: sg_DlgPreferences.cpp:799
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
-msgid "%d"
-msgstr "%d"
+msgid "Are you sure you want to remove project '%s'?"
+msgstr "Czy jesteś pewien, że chcesz usunąć projekt '%s'?"
 
-#: sg_DlgPreferences.cpp:1029
-msgid "Do you really want to clear all local preferences?\n"
-msgstr "Czy na pewno chcesz usunąć wszystkie preferencje lokalne?\n"
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
+msgid "Remove Project"
+msgstr "Usuń projekt"
 
-#: sg_ProjectPanel.cpp:72
+#: clientgui/sg_ProjectPanel.cpp:73
 msgid "Add Project"
 msgstr "Dodaj projekt"
 
-#: sg_ProjectPanel.cpp:73
+#: clientgui/sg_ProjectPanel.cpp:74
 msgid "Synchronize"
 msgstr "Synchronizuj"
 
-#: sg_ProjectPanel.cpp:74
+#: clientgui/sg_ProjectPanel.cpp:75
 msgid "Work done for this project"
 msgstr "Przetwarzanie dla tego projektu zakończone"
 
-#: sg_ProjectPanel.cpp:77
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Uczestnicz w którymś z ponad 30 projektów w wielu dziedzinach nauki"
+
+#: clientgui/sg_ProjectPanel.cpp:78
 msgid "Synchronize projects with account manager system"
 msgstr "Zsynchronizuj projekty z menadżerem kont"
 
-#: sg_ProjectPanel.cpp:124
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
 msgid "Select a project to access with the controls below"
 msgstr "Wybierz projekt aby uzyskać dostęp do poniższych opcji"
 
-#: sg_ProjectPanel.cpp:145
+#: clientgui/sg_ProjectPanel.cpp:146
 msgid "Project Web Pages"
 msgstr "Strony projektu"
 
-#: sg_ProjectPanel.cpp:149
+#: clientgui/sg_ProjectPanel.cpp:150
 msgid "Project Commands"
 msgstr "Polecenia projektu"
 
-#: sg_ProjectPanel.cpp:267
+#: clientgui/sg_ProjectPanel.cpp:279
 #, c-format
-#, c-format, fuzzy
 msgid "Pop up a menu of web sites for project %s"
 msgstr "Pokazuje menu stron projektu %s"
 
-#: sg_ProjectPanel.cpp:269
+#: clientgui/sg_ProjectPanel.cpp:281
 #, c-format
 msgid "Pop up a menu of commands to apply to project %s"
 msgstr "Pokazuje menu opcji dla projektu %s"
 
-#: sg_TaskCommandPopup.cpp:67
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Pokaż grafikę"
+
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Pokaż grafikę aplikacji w oknie."
+
+#: clientgui/sg_TaskCommandPopup.cpp:73
 msgid "Suspend this task."
-msgstr ""
+msgstr "Wstrzymaj to zadanie."
+
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Przerwij"
 
-#: sg_TaskCommandPopup.cpp:73
+#: clientgui/sg_TaskCommandPopup.cpp:79
 msgid "Abandon this task. You will get no credit for it."
-msgstr ""
+msgstr "Przerwij przetwarzanie tego zadania. Nie otrzymasz za nie punktów."
+
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Pokaż szczegóły zadania."
+
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Wznów to zadanie."
+
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Wstrzymaj to zadanie."
 
-#: sg_TaskCommandPopup.cpp:251
+#: clientgui/sg_TaskCommandPopup.cpp:267
 #, c-format
-#, c-format, c-format
 msgid ""
 "Are you sure you want to abort this task '%s'?\n"
 "(Progress: %.1lf%%, Status: %s)"
-msgstr ""
-"Czy jesteś pewien, że chcesz przerwać zadanie '%s'?\n"
-"(Postęp: %.1lf%%, Status: %s)"
+msgstr "Czy jesteś pewien, że chcesz przerwać zadanie '%s'?\n(Postęp: %.1lf%%, Status: %s)"
+
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Przerwij zadanie"
 
-#: sg_TaskPanel.cpp:464
+#: clientgui/sg_TaskPanel.cpp:469
 msgid "You don't have any projects.  Please Add a Project."
 msgstr "Nie uczestniczysz w żadnym projekcie. Przyłącz się do któregoś z nich."
 
-#: sg_TaskPanel.cpp:465
+#: clientgui/sg_TaskPanel.cpp:470
 msgid "Not available"
 msgstr "Niedostępne"
 
-#: sg_TaskPanel.cpp:476
+#: clientgui/sg_TaskPanel.cpp:481
 msgid "Tasks:"
 msgstr "Zadania:"
 
-#: sg_TaskPanel.cpp:482
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
 msgid "Select a task to access"
 msgstr "Wybierz zadanie"
 
-#: sg_TaskPanel.cpp:493
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
 msgid "From:"
 msgstr "Z:"
 
-#: sg_TaskPanel.cpp:547
+#: clientgui/sg_TaskPanel.cpp:553
 msgid "This task's progress"
 msgstr "Postęp tego zadania"
 
-#: sg_TaskPanel.cpp:565
+#: clientgui/sg_TaskPanel.cpp:571
 msgid "Task Commands"
 msgstr "Polecenia zadania"
 
-#: sg_TaskPanel.cpp:566
+#: clientgui/sg_TaskPanel.cpp:572
 msgid "Pop up a menu of commands to apply to this task"
 msgstr "Pokazuje menu z poleceniami dla tego zadania"
 
-#: sg_TaskPanel.cpp:701
+#: clientgui/sg_TaskPanel.cpp:707
 #, c-format
-#, c-format, c-format
 msgid "Application: %s"
 msgstr "Aplikacja: %s"
 
-#: sg_TaskPanel.cpp:724
+#: clientgui/sg_TaskPanel.cpp:730
 #, c-format
 msgid "%.3f%%"
 msgstr "%.3f%%"
 
-#: sg_TaskPanel.cpp:732
+#: clientgui/sg_TaskPanel.cpp:738
 msgid "Application: Not available"
 msgstr "Aplikacja: niedostępne"
 
-#: sg_TaskPanel.cpp:832
+#: clientgui/sg_TaskPanel.cpp:839
 msgid "Not Available"
 msgstr "Niedostępne"
 
-#: sg_TaskPanel.cpp:847
+#: clientgui/sg_TaskPanel.cpp:854
 #, c-format
 msgid "Elapsed: %s"
 msgstr "Upłynęło: %s"
 
-#: sg_TaskPanel.cpp:861
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
 msgid "Remaining (estimated): %s"
 msgstr "Pozostało (szacowane): %s"
 
-#: sg_TaskPanel.cpp:876
+#: clientgui/sg_TaskPanel.cpp:883
 #, c-format
 msgid "Status: %s"
 msgstr "Status: %s"
 
-#: sg_TaskPanel.cpp:1223
+#: clientgui/sg_TaskPanel.cpp:1217
 msgid "Retrieving current status."
 msgstr "Sprawdzanie bieżącego statusu."
 
-#: sg_TaskPanel.cpp:1229
+#: clientgui/sg_TaskPanel.cpp:1223
 msgid "Downloading work from the server."
 msgstr "Pobieranie danych z serwera."
 
-#: sg_TaskPanel.cpp:1234
+#: clientgui/sg_TaskPanel.cpp:1228
 msgid "Processing Suspended:  Running On Batteries."
 msgstr "Przetwarzanie wstrzymane: zasilanie z baterii."
 
-#: sg_TaskPanel.cpp:1236
+#: clientgui/sg_TaskPanel.cpp:1230
 msgid "Processing Suspended:  User Active."
 msgstr "Przetwarzanie wstrzymane: komputer w użyciu."
 
-#: sg_TaskPanel.cpp:1238
+#: clientgui/sg_TaskPanel.cpp:1232
 msgid "Processing Suspended:  User paused processing."
 msgstr "Przetwarzanie wstrzymane: użytkownik wstrzymał zadanie."
 
-#: sg_TaskPanel.cpp:1240
+#: clientgui/sg_TaskPanel.cpp:1234
 msgid "Processing Suspended:  Time of Day."
 msgstr "Przetwarzanie wstrzymane: warunek dla pory dnia."
 
-#: sg_TaskPanel.cpp:1242
+#: clientgui/sg_TaskPanel.cpp:1236
 msgid "Processing Suspended:  Benchmarks Running."
 msgstr "Przetwarzanie wstrzymane: pomiar wydajności komputera."
 
-#: sg_TaskPanel.cpp:1244
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Przetwarzanie wstrzymane: potrzeba miejsca na dysku"
+
+#: clientgui/sg_TaskPanel.cpp:1240
 msgid "Processing Suspended."
 msgstr "Przetwarzanie wstrzymane."
 
-#: sg_TaskPanel.cpp:1248
+#: clientgui/sg_TaskPanel.cpp:1244
 msgid "Waiting to contact project servers."
 msgstr "Oczekiwanie na połączenie z serwerem projektu."
 
-#: sg_TaskPanel.cpp:1252 sg_TaskPanel.cpp:1261
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
 msgid "Retrieving current status"
 msgstr "Sprawdzanie bieżącego statusu"
 
-#: sg_TaskPanel.cpp:1256
+#: clientgui/sg_TaskPanel.cpp:1252
 msgid "No work available to process"
 msgstr "Brak dostępnych danych do przetwarzania"
 
-#: sg_TaskPanel.cpp:1258
+#: clientgui/sg_TaskPanel.cpp:1254
 msgid "Unable to connect to the core client"
 msgstr "Nie można się połączyć z klientem BOINC"
 
-#: wizardex.cpp:377 wizardex.cpp:553
-msgid "&Next >"
-msgstr "&Dalej >"
-
-#: wizardex.cpp:383
-msgid "< &Back"
-msgstr "< &Wstecz"
-
-#: wizardex.cpp:553
-msgid "&Finish"
-msgstr "&Zakończ"
-
-#: mac/Mac_GUI.cpp:110
-msgid "Preferences…"
-msgstr "Preferencje..."
-
-#: mac/Mac_GUI.cpp:122
-msgid "Services"
-msgstr "Usługi"
-
-#: mac/Mac_GUI.cpp:144
-#, c-format
-msgid "Hide %s"
-msgstr "Ukryj %s"
-
-#: mac/Mac_GUI.cpp:158
-msgid "Hide Others"
-msgstr "Ukryj pozostałe"
-
-#: mac/Mac_GUI.cpp:172
-msgid "Show All"
-msgstr "Pokaż wszystkie"
-
-#: mac/Mac_GUI.cpp:186
-#, c-format
-#, c-format, c-format
-msgid "Quit %s"
-msgstr "Zakończ %s"
-
-#~ msgid "I do not agree with the terms of use."
-#~ msgstr "Nie zgadzam się z zasadami użytkowania."
-
-#~ msgid "Click Clear to restore web-based settings."
-#~ msgstr "Naciśnij Wyczyść aby przywrócić preferencje z serwera."
-
-#~ msgid "For additional settings, select Computing Preferences in "
-#~ msgstr "Dla dodatkowych ustawień wybierze preferencje przetwarzania w "
-
-#~ msgid "the Advanced View."
-#~ msgstr "widoku zaawansowanym."
-
-#~ msgid "Workunit name"
-#~ msgstr "Nazwa pliku z danymi"
-
-#~ msgid "invalid float"
-#~ msgstr "nieprawidłowa wartość float"
-
-#~ msgid "Display the advanced (accessible) graphical interface."
-#~ msgstr "Pokaż zaawansowany interfejs graficzny."
-
-#~ msgid "Paused: Other work running"
-#~ msgstr "Wstrzymany: przetwarzanie innego zadania"
-
-#~ msgid "Paused: User initiated.  Click 'Resume' to continue"
-#~ msgstr ""
-#~ "Wstrzymany: wymuszone przez użytkownika. Kliknij 'Wznów' aby kontynuować "
-#~ "przetwarzanie tego zadania."
-
-#~ msgid "Paused: User active"
-#~ msgstr "Wstrzymany: użytkownik jest aktywny"
-
-#~ msgid "Paused: Computer on battery"
-#~ msgstr "Wstrzymany: zasilanie z baterii"
-
-#~ msgid "Paused: Time of Day"
-#~ msgstr "Wstrzymany: określona pora dnia"
-
-#~ msgid "Paused: Benchmarks running"
-#~ msgstr "Wstrzymany: pomiar wydajności"
-
-#~ msgid "Paused"
-#~ msgstr "Wstrzymany"
-
-#~ msgid "Paused: Application start delayed"
-#~ msgstr "Wstrzymany: opóźnione uruchomienie aplikacji"
-
-#~ msgid "Click to show project graphics"
-#~ msgstr "Kliknij aby pokazać grafikę projektu"
-
-#~ msgid "Open a window to view messages"
-#~ msgstr "Otwiera okno powiadomień"
-
-#~ msgid "Stop all activity"
-#~ msgstr "Wstrzymaj całą aktywność"
-
-#~ msgid "Resume activity"
-#~ msgstr "Wznów aktywność"
-
-#~ msgid "Open a window to set your preferences"
-#~ msgstr "Otwórz okno Preferencji"
-
-#~ msgid "Switch to the BOINC advanced view"
-#~ msgstr "Przełącz do widoku zaawansowanego Menadżera BOINC"
-
-#~ msgid "My Projects:"
-#~ msgstr "Moje Projekty:"
-
-#, c-format
-#~ msgid "%s. Work done by %s: %0.2f"
-#~ msgstr "%s. Wynik całkowity uczestnika %s: %0.2f"
-
-#, c-format
-#~ msgid "%.1lf"
-#~ msgstr "%.1lf"
-
-#, c-format
-#~ msgid "%d hr %d min %d sec"
-#~ msgstr "%d godz %d min %d sek"
-
-#~ msgid "Are you sure you want to display graphics on a remote machine?"
-#~ msgstr "Czy jesteś pewien, że chcesz pokazać grafike na zdalnym komputerze?"
-
-#~ msgid "Application: "
-#~ msgstr "Aplikacja: "
-
-#~ msgid "Time Remaining: "
-#~ msgstr "Pozostało: "
-
-#~ msgid "Elapsed Time: "
-#~ msgstr "Upłynęło: "
-
-#~ msgid "Account manager website"
-#~ msgstr "Strona internetowa menadżera kont"
-
-#~ msgid "Account Manager &URL:"
-#~ msgstr "Adres &URL menadżera kont:"
-
-#, c-format
-#~ msgid "%s &website"
-#~ msgstr "&Strona główna projektu %s"
-
-#~ msgid "Notice List"
-#~ msgstr "Lista powiadomień"
-
-#, c-format
-#~ msgid "%s; received on %s"
-#~ msgstr "%s; odebrane %s"
-
-#, c-format
-#~ msgid "%s; received from %s; on %s"
-#~ msgstr "%s; odebrane z %s; %s"
-
-#~ msgid "Click"
-#~ msgstr "Kliknij"
-
-#~ msgid "Project List"
-#~ msgstr "Lista projektów"
-
-#~ msgid "Nvidia GPU Supported"
-#~ msgstr "Obsługa GPU nVidia"
-
-#~ msgid "ATI GPU Supported"
-#~ msgstr "Obsługa GPU ATI"
-
-#~ msgid "Project Website"
-#~ msgstr "Strona projektu"
-
-# 88%
-#, fuzzy
-#~ msgid "Retry now"
-#~ msgstr "Próbuj ponownie"
-
-#~ msgid "10%"
-#~ msgstr "10%"
-
-#~ msgid "20%"
-#~ msgstr "20%"
-
-#~ msgid "30%"
-#~ msgstr "30%"
-
-#~ msgid "40%"
-#~ msgstr "40%"
-
-#~ msgid "50%"
-#~ msgstr "50%"
-
-#~ msgid "60%"
-#~ msgstr "60%"
-
-#~ msgid "70%"
-#~ msgstr "70%"
-
-#~ msgid "80%"
-#~ msgstr "80%"
-
-#~ msgid "90%"
-#~ msgstr "90%"
-
-#~ msgid "100%"
-#~ msgstr "100%"
-
-#~ msgid "1"
-#~ msgstr "1"
-
-#~ msgid "3"
-#~ msgstr "3"
-
-#~ msgid "5"
-#~ msgstr "5"
-
-#~ msgid "10"
-#~ msgstr "10"
-
-#~ msgid "15"
-#~ msgstr "15"
-
-#~ msgid "30"
-#~ msgstr "30"
-
-#~ msgid "60"
-#~ msgstr "60"
-
-#, c-format
-#~ msgid "Pop up a menu of websites for project %s"
-#~ msgstr "Pokazuje menu stron projektu %s"
-
-#~ msgid ""
-#~ "for accessibility support, please select advanced from the view menu or type "
-#~ "command shift a"
-#~ msgstr ""
-#~ "Aby skorzystać z ułatwień dostępu wybierz Zaawansowane z menu Widok albo "
-#~ "użyj klawiszy Command-Shift-A"
-
-#~ msgid "This panel contains graphs showing user totals for projects"
-#~ msgstr ""
-#~ "Ten panel zawiera wykresy pokazujące całkowite wyniki uczestnika w "
-#~ "projektach"
-
-#~ msgid "list headers"
-#~ msgstr "lista nagłówków"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Zasady użytkowania"
 
-#~ msgid "list of events"
-#~ msgstr "lista zdarzeń"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Zapoznaj się z następującymi zasadami użytkowania:"
 
-#~ msgid "list of events is empty"
-#~ msgstr "lista zdarzeń jest pusta"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Zgadzam się z zasadami użytkowania."
 
-#, c-format
-#, c-format, c-format
-#~ msgid "list of %s"
-#~ msgstr "lista %s"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Nie zgadzam się z zasadami użytkowania."
 
-#, c-format
-#~ msgid "list of %s is empty"
-#~ msgstr "lista %s jest pusta"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projekt tymczasowo niedostępny"
 
-#, c-format
-#~ msgid "; current sort column %d of %d; descending order; "
-#~ msgstr "; aktualne sortowanie kolumny %d z %d; kolejność malejąca; "
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Ten projekt jest tymczasowo niedostepny.\n\nSpróbuj ponownie później."
 
-#, c-format
-#~ msgid "; current sort column %d of %d; ascending order; "
-#~ msgstr "; aktualne sortowanie kolumny %d z %d; kolejność rosnąca;"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Menadżer kont jest czasowo niedostępny"
 
-#, c-format
-#~ msgid "; column %d of %d; "
-#~ msgstr "; kolumna %d z %d; "
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Ten menadżer kont jest tymczasowo niedostępny.\n\nSpróbuj ponownie później."
 
-#~ msgid "list is empty"
-#~ msgstr "lista jest pusta"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Podaj klucz konta aby kontynuować."
 
-#, c-format
-#~ msgid "; row %d; "
-#~ msgstr "; wiersz %d; "
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Nieprawidłowy klucz kona. Podaj prawidłowy klucz."
 
-#, c-format
-#~ msgid "; selected row %d of %d; "
-#~ msgstr "; zaznaczony wiersz %d z %d; "
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Błąd uwierzytelniania"
 
-#, c-format
-#~ msgid "; selected row %d ; "
-#~ msgstr "; zaznaczony wiersz %d ; "
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Podaj adres e-mail"
 
-#, c-format
-#, c-format, c-format
-#~ msgid "; row %d of %d; "
-#~ msgstr "; wiersz %d z %d; "
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Nieprawidłowy adres e-mail. Wprowadź prawidłowy adres."
 
-#~ msgid "blank"
-#~ msgstr "pusty"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Brak adresu URL"
 
-#~ msgid "list of projects or account managers"
-#~ msgstr "lista projektów albo menadżerów kont"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Podaj adres URL.\nNa przykład:\nhttp://www.example.com/"
 
-#, c-format
-#~ msgid "selected row %d of %d; "
-#~ msgstr "zaznaczony wiersz %d z %d; "
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Nieprawidłowy adres URL"
 
-#, c-format
-#~ msgid "row %d of %d; "
-#~ msgstr "wiersz %d z %d; "
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Podaj prawidłowy adres URL.\nNa przykład:\nhttp://boincproject.example.com"
 
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
 #, c-format
-#~ msgid "The minimum password length for this project is %d. Please enter a different password."
-#~ msgstr "Minimalna długość hasła dla tego projektu to %d. Wprowadź inne hasło."
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' nie zawiera poprawnej nazwy hosta."
 
+#: clientgui/ValidateURL.cpp:111
 #, c-format
-#~ msgid "The minimum password length for this account manager is %d. Please enter a different password."
-#~ msgstr ""
-#~ "Minimalna długość hasła dla tego menadżera kont to %d. Wprowadź inne hasło."
-
-#~ msgid ""
-#~ "An error has occurred;\n"
-#~ "check the Event Log for details.\n"
-#~ "\n"
-#~ "Click Finish to close."
-#~ msgstr ""
-#~ "Wystapił błąd.\n"
-#~ "Aby zapoznać się ze szczegółami sprawdź Dziennik zdarzeń.\n"
-#~ "\n"
-#~ "Naciśnij Zakończ aby zakończyć."
-
-#, no-c-format
-#~ msgid "% of the processors"
-#~ msgstr "% ogólnej liczby procesorów"
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' nie zawiera poprawnej ścieżki."
 
-#, c-format
-#~ msgid "New page inserted. Index = %i"
-#~ msgstr "Nowa strona wprowadzona. Indeks = %i"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Polecenia"
 
-#, c-format
-#~ msgid "New page appended. Index = %i"
-#~ msgstr "Nowa strona dodana. Indeks = %i"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Kopiuj wszystkie wiadomości"
 
-#, c-format
-#~ msgid "Old Page Index = %i"
-#~ msgstr "Indeks starej strony = %i"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Kopiuj wybrane wiadomości"
 
-#, c-format
-#~ msgid "OnDropTarget: index by HitTest = %i"
-#~ msgstr "OnDropTarget: index by HitTest = %i"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Pokaż tylko ten projekt"
 
-#~ msgid "Pie Ctrl"
-#~ msgstr "Legenda"
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Pokazuje wiadomości związane tylko z wybranym projektem."
 
-#~ msgid "specify work start and stop hours in format HH:MM-HH:MM"
-#~ msgstr "Podaj godziny rozpoczęcia i zakończenia pracy w formacie HH:MM-HH:MM"
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Wiadomości"
 
-#~ msgid "specify network usage start and stop hours in format HH:MM-HH:MM"
-#~ msgstr ""
-#~ "Podaj godziny rozpoczęcia i zakończenia dostępności sieci w formacie HH:MM-"
-#~ "HH:MM"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Kopiowanie wszystkich wiadomości do schowka..."
 
-#, c-format
-#~ msgid "The %s's default language has been changed, in order for this change to take affect you must restart the %s."
-#~ msgstr ""
-#~ "Domyślny język dla %s został zmieniony. Aby zmiany odniosły skutek "
-#~ "zrestartuj %s."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Kopiowanie wybranych wiadomości do schowka..."
 
-#~ msgid "Identify your account "
-#~ msgstr "Zidentyfikuj swoje konto"
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtrowanie wiadomości..."
 
-#~ msgid "Read config file"
-#~ msgstr "Wczytaj plik konfiguracyjny"
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Pokaż wszystkie wiadomości"
 
-#~ msgid "Read configuration info from cc_config.xml"
-#~ msgstr "Wczytywanie konfiguracji zawartej w pliku cc_config.xml"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Pokazuje wiadomości dotyczące wszystkich projektów."
 
-#~ msgid ""
-#~ "(C) 2003-2011 University of California, Berkeley.\n"
-#~ "All Rights Reserved."
-#~ msgstr ""
-#~ "(C) 2003-2011 Uniwersytet Kalifornijski w Berkeley.\n"
-#~ "Wszystkie prawa zastrzeżone."
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Konto"
 
-#~ msgid "NVIDIA GPU"
-#~ msgstr "NVIDIA GPU"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Wynik całkowity"
 
-#~ msgid "ATI GPU"
-#~ msgstr "ATI GPU"
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Średni wynik"
 
-#~ msgid "Multicore CPU Supported"
-#~ msgstr "Obsługa wielordzeniowych procesorów"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Status"
 
-#, c-format
-#~ msgid "%s: %.0f"
-#~ msgstr "%s: %.0f"
-
-#~ msgid "Click 'Retry now' to transfer the file now"
-#~ msgstr ""
-#~ "Naciśnięcie przycisku 'Próbuj ponownie' spowoduje podjęcie próby ponownego "
-#~ "transferu pliku"
-
-#~ msgid "Click 'Abort transfer' to delete the file from the transfer queue. This will prevent you from being granted credit for this result."
-#~ msgstr ""
-#~ "Naciśnięcie przycisku 'Przerwij przesyłanie pliku' spowoduje usunięcie go z "
-#~ "kolejki transferu. Nie otrzymasz punktów za to zadanie."
-
-#~ msgid "Aborting result..."
-#~ msgstr "Przerywanie zadania..."
-
-#~ msgid ""
-#~ "You have chosen to add a new BOINC project.  Adding a new\n"
-#~ "project means that you will be connecting your computer to a new organization.\n"
-#~ "If this is what you wanted to do, please click on\n"
-#~ "the 'Next' button below.\n"
-#~ "\n"
-#~ "Some projects like World Community Grid run multiple research applications.\n"
-#~ "If you want to change which research applications are sent to your computer\n"
-#~ "to run, visit the project's website and modify your\n"
-#~ "preferences there.\n"
-#~ "\n"
-#~ "To change which research applications are sent to you from\n"
-#~ "World Community Grid then please click on the following button:"
-#~ msgstr ""
-#~ "Wybrałeś przyłączenie się do nowego projektu. Przyłączenie się do nowego\n"
-#~ "projektu oznacza, że twój komputer będzie się łączył z nową organizacją.\n"
-#~ "Jeżeli właśnie to chciałeś osiągnąć, naciśnij przycisk 'Dalej'.\n"
-#~ "\n"
-#~ "Niektóre projekty, takie jak World Community Grid używają kilku różnych "
-#~ "aplikacji.\n"
-#~ "Jeżeli chcesz wybrać, które z aplikacji mają być pobierane i uruchamiane "
-#~ "przez twój komputer\n"
-#~ "zmodyfikuj Preferencje na stronie danego projektu.\n"
-#~ "\n"
-#~ "Aby wybrać aplikacje World Community Grid, których będziesz używał na swoim "
-#~ "komputerze\n"
-#~ "naciśnij poniższy przycisk:"
-
-#~ msgid "Change Research Applications at World Community Grid"
-#~ msgstr "Zmień pobierane aplikacje World Commmunity Grid"
-
-#~ msgid "Don't fetch CPU tasks"
-#~ msgstr "Nie pobieraj nowych danych"
-
-#~ msgid "CPU work fetch deferred for"
-#~ msgstr "Przyporządkowanie zadań dla procesora opóźnione o "
-
-#~ msgid "CPU work fetch deferral interval"
-#~ msgstr "Odstęp pomiędzy opóźnieniami przyporządkowania zadań dla procesora"
-
-#~ msgid "Don't fetch NVIDIA GPU tasks"
-#~ msgstr "Nie pobieraj danych dla GPU NVIDIA"
-
-#~ msgid "NVIDIA GPU work fetch deferred for"
-#~ msgstr ""
-#~ "Przyporządkowanie zadań dla procesora karty graficznej nVidia opóźnione o "
-
-#~ msgid "NVIDIA GPU work fetch deferral interval"
-#~ msgstr ""
-#~ "Odstęp pomiędzy opóźnieniami przyporządkowania zadań dla procesora karty "
-#~ "graficznej nVidia"
-
-#~ msgid "Don't fetch ATI GPU tasks"
-#~ msgstr "Nie pobieraj nowych danych dla GPU ATI"
-
-#~ msgid "ATI GPU work fetch deferred for"
-#~ msgstr "Przyporządkowanie zadań dla procesora karty graficznej ATI opóźnione o "
-
-#~ msgid "ATI GPU work fetch deferral interval"
-#~ msgstr ""
-#~ "Odstęp pomiędzy opóźnieniami przyporządkowania zadań dla procesora karty "
-#~ "graficznej ATI"
-
-#~ msgid "Web sites"
-#~ msgstr "Strony projektu"
-
-#~ msgid ""
-#~ "You currently are not authorized to manage the client.\n"
-#~ "\n"
-#~ "To run BOINC as this user, please:\n"
-#~ "  - reinstall BOINC answering \"Yes\" to the question about\n"
-#~ "     non-administrative users\n"
-#~ " or\n"
-#~ "  - contact your administrator to add you to the 'boinc_master'\n"
-#~ "     user group."
-#~ msgstr ""
-#~ "Nie posiadasz autoryzacji do zarządzania klientem.\n"
-#~ "\n"
-#~ "Aby uruchomić BOINC z konta tego użytkownika:\n"
-#~ "- wykonaj reinstalację BOINC odpowiadając \"Tak\" na pytanie\n"
-#~ "o użytkowników nie mających uprawnień do zarządzania\n"
-#~ "albo\n"
-#~ "- skontaktuj się z administratorem tego komputera\n"
-#~ "aby dodał cię do grupy użytkowników 'boinc_master'."
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projekty"
 
-#, c-format
-#~ msgid ""
-#~ "BOINC ownership or permissions are not set properly; please reinstall BOINC.\n"
-#~ "(Error code %d)"
-#~ msgstr ""
-#~ "Ustawienia zabezpieczeń lub uprawnień dla BOINC są nieprawidłowe; zainstaluj "
-#~ "ponownie BOINC.\n"
-#~ "(Kod błędu %d)"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Zażądane przez użytkownika"
 
-#~ msgid "Connect about every"
-#~ msgstr "łącz się z siecią co"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Aby pobrać zadania"
 
-#~ msgid ""
-#~ "this computer is connected to the Internet about every X days\n"
-#~ "(0 if it's always connected)"
-#~ msgstr ""
-#~ "Ten komputer łączy się z siecią co około X dni\n"
-#~ "(0 jeżeli jest ciągle połączony)"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Aby zaraportować zakończone zadania"
 
-#~ msgid "Additional work buffer"
-#~ msgstr "dodatkowy zapas danych na"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Aby wysłać miniwiadomość"
 
-#~ msgid "days (max. 10)"
-#~ msgstr "dni (maks. 10)"
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Zażądane przez menadżera kont"
 
-#~ msgid "Display and network &options..."
-#~ msgstr "Opcje wyświetlania oraz sieci..."
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Inicjalizacja projektu"
 
-#, c-format
-#~ msgid ""
-#~ "You have requested to exit the %s,\n"
-#~ "which allows you to view and manage\n"
-#~ "the science applications running on your computer.\n"
-#~ "\n"
-#~ "If you also want to stop running the science applications when you\n"
-#~ "exit the Manager, then choose from the following options:"
-#~ msgstr ""
-#~ "Wybrałeś zamknięcie %s'a,\n"
-#~ "który umożliwia ci zarządzanie aplikacjami projektów\n"
-#~ "uruchomionymi na twoim komputerze.\n"
-#~ "\n"
-#~ "Jeżeli chcesz także po zamknięciu Menadżera BOINC\n"
-#~ "zakończyć pracę aplikacji projektów, wybierz z poniższych opcji"
-
-#~ msgid "Stop running science applications when exiting the Manager"
-#~ msgstr "Zamknij aplikacje projektów gdy zamykasz Menadżera BOINC"
-
-#~ msgid "CPU work fetch priority"
-#~ msgstr "Priorytet przyporządkowania zadań dla procesora"
-
-#~ msgid "NVIDIA GPU scheduling priority"
-#~ msgstr "Priorytety dla GPU nVidia"
-
-#~ msgid "NVIDIA GPU work fetch priority"
-#~ msgstr ""
-#~ "Priorytety przyporządkowania zadań dla procesora karty graficznej nVidia"
-
-#~ msgid "ATI GPU scheduling priority"
-#~ msgstr "Planowanie priorytetu przetwarzania dla GPU ATI"
-
-#~ msgid "ATI GPU work fetch priority"
-#~ msgstr "Priorytety przyporządkowania zadań dla procesora karty graficznej ATI"
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Zażądane przez projekt"
 
-#, c-format
-#~ msgid "%s - Options"
-#~ msgstr "%s - Opcje"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Przyczyna nieznana"
 
-#~ msgid "Retrieving host information; please wait..."
-#~ msgstr "Sprawdzam informacje o komputerze; proszę czekać..."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Wstrzymany przez użytkownika"
 
-#, c-format
-#~ msgid "%s - Messages"
-#~ msgstr "%s - Wiadomości"
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Nie pobieraj nowych danych"
 
-#~ msgid "Skin:"
-#~ msgstr "Skórka:"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projekt zakończony - naciśnij OK aby go usunąć"
 
-#~ msgid "Preferences"
-#~ msgstr "Preferencje"
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Usuwa po zakończeniu zadań"
 
-#~ msgid "I want to customize my preferences for this computer only."
-#~ msgstr "Chcę ustalić lub zmienić preferencje tylko dla tego komputera."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Oczekiwanie na połączenie z serwerem projektu"
 
-#~ msgid "Customized Preferences"
-#~ msgstr "Wybrane ustawienia preferencji"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Trwa nawiązywanie połączenia z serwerem projektu"
 
-#~ msgid "Upload pending"
-#~ msgstr "Kolejka odsyłania"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Wysyłanie miniwiadomości"
 
-#~ msgid "Download pending"
-#~ msgstr "Kolejka pobierania"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Komunikacja opóźniona"
 
-#~ msgid ""
-#~ "Notice reminder interval:\n"
-#~ "(minutes; 0 means no reminders)"
-#~ msgstr ""
-#~ "Częstotliwość wyświetlania informacji:\n"
-#~ "(w minutach)"
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Całkowite użycie dysku twardego"
 
-#~ msgid "Get help with BOINC"
-#~ msgstr "Strona pomocy BOINC"
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Użycie dysku przez projekty BOINC"
 
-#~ msgid "Event Log..."
-#~ msgstr "Historia zdarzeń..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "brak projektów: 0 bajtów zajętych"
 
-#~ msgid "Attach to project"
-#~ msgstr "Przyłącz się do projektu"
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "przestrzeń używana przez BOINC: "
 
-#~ msgid "Attach to account manager"
-#~ msgstr "Połącz się z menadżerem kont"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "wolna przestrzeń, dostępna dla BOINC: "
 
-#~ msgid "&Attach to project..."
-#~ msgstr "Przyłącz się do &projektu..."
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "wolna przestrzeń, niedostępna dla BOINC: "
 
-#~ msgid "Attach to a project"
-#~ msgstr "Przyłącz się do projektu"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "wolna przestrzeń: "
 
-#~ msgid "Attaching to project or account manager..."
-#~ msgstr "Przyłączanie do projektu lub menadżera kont..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "przestrzeń używana przez inne aplikacje: "
 
-#, c-format
-#~ msgid "%s - Detach from %s"
-#~ msgstr "%s - Odłącz od %s"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Całkowite statystyki uczestnika"
 
-#~ msgid "Retrying communications."
-#~ msgstr "Ponawiam próbę komunikacji."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Średnie statystyki uczestnika"
 
-#, c-format
-#~ msgid "%s needs to connect to the Internet.  Please click to open %s."
-#~ msgstr "%s chce nawiązać połączenie z internetem. Kliknij aby otworzyć %s."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Całkowite statystyki komputera"
 
-#, c-format
-#~ msgid ""
-#~ "%s is unable to communicate with a project and needs an Internet "
-#~ "connection.\n"
-#~ "Please connect to the Internet, then select the 'Do network communications' "
-#~ "item from the Advanced menu."
-#~ msgstr ""
-#~ "%s nie jest w stanie połączyć się z serwerem projektu i potrzebuje\n"
-#~ "aktywnego połączenie internetowego.\n"
-#~ "Połącz się z internetem a następnie wybierz 'Ponów próby połączeń' z menu "
-#~ "Zaawansowane."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Średnie statystyki komputera"
 
+#: clientgui/ViewStatistics.cpp:1331
 #, c-format
-#~ msgid ""
-#~ "%s couldn't do Internet communication, and no default connection is "
-#~ "selected.\n"
-#~ "Please connect to the Internet, or select a default connection\n"
-#~ "using Advanced/Options/Connections."
-#~ msgstr ""
-#~ "%s nie mógł nawiązać połączenia internetowego oraz nie ma\n"
-#~ "zdefiniowanego domyślnego połączenia. Połącz się z internetem\n"
-#~ "albo zdefiniuj połączenie domyślne używając opcji z menu\n"
-#~ "Zaawansowane/Ustawienia/Połączenia."
+msgid "Last update: %.0f days ago"
+msgstr "Ostatnia aktualizacja: %.0f dni temu"
 
-#~ msgid "One or more notices are now available for viewing."
-#~ msgstr "Jedna lub więcej notatek jest dostępna do obejrzenia."
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Całkowite wyniki uczestnika"
 
-#~ msgid "Failed to attach to project"
-#~ msgstr "Nie udało się przyłączyć do projektu"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Pokazuje całkowite statystyki uczestnika"
 
-#~ msgid "Failed to attach to account manager"
-#~ msgstr "Połączenie z menadżerem kont nie powiodło się"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Pokazuje średnie wyniki uczestnika"
 
-#~ msgid "Attached to project"
-#~ msgstr "Przyłączony do projektu"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Pokazuje bieżące statystyki uczestnika"
 
-#~ msgid "You are now successfully attached to this project."
-#~ msgstr "Przyłączyłeś się do tego projektu."
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Pokazuje całkowite wyniki komputera"
 
-#, c-format
-#~ msgid "Attached to %s"
-#~ msgstr "Podłączony do %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Pokazuje całkowite statystyki komputera."
 
-#~ msgid "Attached to account manager"
-#~ msgstr "Podłączony do menadżera kont"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Pokazuje średnie wyniki komputera"
 
-#, c-format
-#~ msgid "You are now successfully attached to the %s system."
-#~ msgstr "Jesteś podłączony do %s."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Pokazuje średnie statystyki komputera"
 
-#~ msgid "You are now successfully attached to this account manager."
-#~ msgstr "Jesteś podłączony do menadżera kont."
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Poprzedni projekt"
 
-#~ msgid "Detach when done"
-#~ msgstr "Odłącz po zakończeniu"
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Pokazuje wykres dla poprzedniego projektu"
 
-#~ msgid "News Feeds"
-#~ msgstr "Wiadomości"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Następny projekt >"
 
-#~ msgid "Display the latest news about BOINC"
-#~ msgstr "Wyświetl ostatnie nowinki o BOINC"
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Pokazuje wykres dla następnego projektu"
 
-#~ msgid "Retrieving notices..."
-#~ msgstr "Pobieranie notatek..."
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Ukryj listę projektów"
 
-#~ msgid "Detach"
-#~ msgstr "Opuść projekt"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Wykorzystuje całą powierzchnię na wykres"
 
-#~ msgid "Detaching from project..."
-#~ msgstr "Opuszczanie projektu..."
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Rodzaj widoku"
 
-#, c-format
-#~ msgid "Are you sure you want to detach from project '%s'?"
-#~ msgstr "Czy jesteś pewny, że chcesz opuścić projekt '%s'?"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Pojedynczy projekt"
 
-#~ msgid "Detach from Project"
-#~ msgstr "Opuść projekt"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Pokazuje wykres dla wybranego projektu"
 
-#~ msgid "not attached to any BOINC project: 0 bytes"
-#~ msgstr "Nie przypisane do żadnego z projektów BOINC - 0 bajtów"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Wszystkie projekty (osobno)"
 
-#~ msgid ""
-#~ "BOINC can't access Internet - check network connection or proxy "
-#~ "configuration."
-#~ msgstr ""
-#~ "BOINC nie może uzyskać dostępu do internetu - sprawdź połączenie sieciowe "
-#~ "albo konfigurację proxy."
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Pokazuje wykresy dla wszystkich projektów, jeden wykres na projekt"
 
-#~ msgid "Attach this computer to a project or account manager"
-#~ msgstr "Podłączony do menadżera kont"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Wszystkie projekty (razem)"
 
-#~ msgid "Computation is suspended."
-#~ msgstr "Przetwarzanie danych jest wstrzymane."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Pokazuje wspólny wykres dla wszystkich projektów"
 
-#~ msgid "Client is processing results."
-#~ msgstr "Klient przetwarza wyniki."
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Wszystkie projekty (łącznie)"
 
-#~ msgid " - user active"
-#~ msgstr " - użytkownik jest aktywny"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Pokazuje wspólny z sumą wszystkich projektów"
 
-#~ msgid " - computation suspended"
-#~ msgstr " - aktywność wstrzymana"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statystyki"
 
-#~ msgid " - CPU benchmarks"
-#~ msgstr " - pomiar wydajności"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Pokaż listę projeków"
 
-#~ msgid " - need disk space"
-#~ msgstr " - brak dostatecznej ilości wolnej przestrzeni na dysku"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Wykorzystuje mniejszą przestrzeń dla projektów"
 
-#~ msgid "Attach to an additional project"
-#~ msgstr "Przyłącz się do kolejnego projektu"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Próbuj ponownie"
 
-#~ msgid "To completion"
-#~ msgstr "Pozostało"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Ponów transfer plików teraz"
 
-#~ msgid ""
-#~ "We'll guide you through the process of attaching\n"
-#~ "to a project or account manager."
-#~ msgstr ""
-#~ "Zostaniesz przeprowadzony przez proces przyłączania się\n"
-#~ "do projektu albo łączenia się z menadżerem kont."
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Przerwij przesyłanie pliku"
 
-#~ msgid "events"
-#~ msgstr "wydarzenia"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Przerwij transfer plików. Nie dostaniesz punktów za zadanie."
 
-#~ msgid " is empty"
-#~ msgstr "jest pusta"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Plik"
 
-#, c-format
-#~ msgid "%d of %d; "
-#~ msgstr "%d of %d; "
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Postęp"
 
-#~ msgid "current sort column "
-#~ msgstr "włączone sortowanie po "
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Rozmiar"
 
-#~ msgid " descending order "
-#~ msgstr "porządek malejący "
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Upłynęło"
 
-#~ msgid " ascending order "
-#~ msgstr "porządek rosnący "
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Szybkość"
 
-#~ msgid "column "
-#~ msgstr "kolumna "
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Przesyłanie"
 
-#~ msgid "selected "
-#~ msgstr "wybrany/a "
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Aktywność sieciowa jest wstrzymana - "
 
-#, c-format
-#~ msgid "row %d "
-#~ msgstr "wiersz %d "
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nMożesz ją włączyć używając menu Aktywność."
 
-#, c-format
-#~ msgid "of %d; "
-#~ msgstr " %d; "
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
+#: clientgui/ViewTransfers.cpp:431
 #, c-format
-#~ msgid "column %d; "
-#~ msgstr "kolumna %d; "
-
-#~ msgid "Attach to a project to begin processing work"
-#~ msgstr ""
-#~ "Przyłączanie do projektu i rozpoczęcie przetwarzania danych w tym "
-#~ "projekcie"
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Czy jesteś pewien, że chcesz przerwać przesyłanie pliku '%s'?\nUWAGA: Przerwanie przesyłania spowoduje skasowanie pliku lub jego już pobranej części.\nJeśli jest to plik z wynikami obliczeń, nie otrzymasz punktów za to zadanie."
 
-#~ msgid "%s: %.2f%% completed."
-#~ msgstr "%s: w %.2f%% ukończone."
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Przerwij przesyłanie pliku"
 
-# A to co za dziwo? Gdzie się pokazuje? Przecież jako "szczelina" tego nie przetłumaczymy do diabła, ani jako "trop".
-#, c-format
-#~ msgid "%d tasks running."
-#~ msgstr "%d zadania uruchomione."
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Wysyłanie"
 
-#~ msgid "&Messages\tCtrl+Shift+M"
-#~ msgstr "Wiado&mości\tCtrl+Shift+M"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Pobieranie"
 
-#~ msgid "Display messages"
-#~ msgstr "Pokaż kartę wiadomości"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "ponowna próba za "
 
-#~ msgid "Attach to &project or account manager..."
-#~ msgstr "Przyłącz się do &projektu albo menadżera kont..."
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "niepowodzenie"
 
-#~ msgid "Attach to a project or account manager to begin processing work"
-#~ msgstr "Przyłącz się"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "zatrzymane"
 
-#~ msgid "Attach to &project..."
-#~ msgstr "Przyłącz się do &projektu..."
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "aktywne"
 
-#~ msgid "Attach to a project to begin processing work"
-#~ msgstr ""
-#~ "Przyłączanie do projektu i rozpoczęcie przetwarzania danych w tym projekcie"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "trwające"
 
-#, c-format
-#~ msgid "&Stop using %s..."
-#~ msgstr "&Zatrzymaj używanie %s"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (oczekiwanie: "
 
-#~ msgid "Remove client from account manager control."
-#~ msgstr "Odłącz klienta od menadżera kont."
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Pokaż aktywne zadania"
 
-#~ msgid "Allow work according to your preferences"
-#~ msgstr ""
-#~ "Przetwarzanie danych zgodnie z ograniczeniami wynikającymi z preferencji."
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Wyświetla wyłącznie aktywne zadania."
 
-#~ msgid "Use GPU based on &preferences"
-#~ msgstr "Używaj procesora karty graficznej zgodnie z &preferencjami"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Pokaż konsolę VM"
 
-#~ msgid "Allow GPU work according to your preferences"
-#~ msgstr ""
-#~ "Przetwarzanie danych przy użyciu GPU zgodnie z ograniczeniami wynikającymi z "
-#~ "preferencji."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Pokazuje okno konsoli VM"
 
-#~ msgid "Use GPU never"
-#~ msgstr "Nigdy nie używaj procesora karty graficznej"
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Wstrzymuje przetwarzanie tego zadania."
 
-#~ msgid "&Network activity always available"
-#~ msgstr "&Sieć zawsze dostępna"
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Przerwij przetwarzanie tego zadania. Nie otrzymasz za nie punktów."
 
-#~ msgid "Network activity based on pre&ferences"
-#~ msgstr "Dostęp do sieci zgodnie z pre&ferencjami"
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Pozostało (szacowane)"
 
-#~ msgid "Allow network activity according to your preferences"
-#~ msgstr "Sieć dostępna zgodnie z ograniczeniami wynikającymi z preferencji."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Termin"
 
-#~ msgid "Network activity s&uspended"
-#~ msgstr "Zablok&uj dostęp do sieci"
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Zadania"
 
-#~ msgid "&Preferences..."
-#~ msgstr "&Preferencje lokalne..."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Czy jesteś pewien, że chcesz przerwać zadanie: '%s'?\n(Postęp: %s, Status: %s)"
 
-#~ msgid "Configure local preferences"
-#~ msgstr "Konfiguracja preferencji lokalnych"
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Czy jesteś pewien, że chcesz przerwać te zadania %d?"
 
-#~ msgid "Shut down the currently connected core client"
-#~ msgstr "Zamyka obecnie podłączonego klienta BOINC."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Pokaż wszystkie zadania"
 
-#~ msgid "Do network &communication"
-#~ msgstr "&Ponów próby połączeń"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Pokaż wszystkie zadania."
 
-#~ msgid "Do all pending network communication."
-#~ msgstr ""
-#~ "Odsyłanie zakończonych zadań, pobieranie aktualnych stanów punktów i "
-#~ "ewentualnie pobieranie kolejnych zadań do przetwarzania."
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Czy na pewno chcesz anulować?"
 
-#~ msgid "Read configuration info from cc_config.xml."
-#~ msgstr ""
-#~ "Wczytywanie informacji zawartych w pliku konfiguracyjnym: cc_config.xml."
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Pytanie"
 
-#, c-format
-#~ msgid "%s - Shutdown the current client..."
-#~ msgstr "%s - Zamknij obecnie używanego klienta..."
+#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
+msgid "&Next >"
+msgstr "&Dalej >"
 
-#, c-format
-#~ msgid ""
-#~ "%s will shut down the currently connected client,\n"
-#~ "and prompt you for another host to connect to.\n"
-#~ msgstr ""
-#~ "%s zamknie obecnie podłączonego klienta,\n"
-#~ "i poprosi o wprowadzenie nazwy komputera, do którego ma się teraz podłączyć.\n"
+#: clientgui/wizardex.cpp:383
+msgid "< &Back"
+msgstr "< &Wstecz"
 
-#~ msgid "Retrying communications for project(s)..."
-#~ msgstr "Probuję nawiązać połączenie z serwerami projektów..."
+#: clientgui/wizardex.cpp:553
+msgid "&Finish"
+msgstr "&Zakończ"
 
-#, c-format
-#~ msgid "%s: %.2f%% completed."
-#~ msgstr "%s: w %.2f%% ukończone."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Usługi"
 
+#: clientgui/mac/Mac_GUI.cpp:36
 #, c-format
-#~ msgid "%d tasks running."
-#~ msgstr "%d zadania uruchomione."
-
-#~ msgid "What language should the manager use?"
-#~ msgstr "Jakiego języka powinien używać Menadżer BOINC?"
-
-#~ msgid ""
-#~ "Network reminder interval:\n"
-#~ "(minutes)"
-#~ msgstr ""
-#~ "Częstotliwość wyświetlania informacji:\n"
-#~ "(w minutach)"
+msgid "Hide %s"
+msgstr "Ukryj %s"
 
-#~ msgid "How often should the Manager remind you when a network connection is needed?"
-#~ msgstr ""
-#~ "Jak często Menadżer BOINC powinnien przypominać o konieczności nawiązania "
-#~ "połączenia z siecią?"
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Ukryj pozostałe"
 
-#, c-format
-#~ msgid "%s - Can't find web browser"
-#~ msgstr "%s =- Nie mogę odnaleźć przeglądarki internetowej"
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Pokaż wszystkie"
 
+#: clientgui/mac/Mac_GUI.cpp:39
 #, c-format
-#~ msgid ""
-#~ "%s tried to display the web page\n"
-#~ "\t%s\n"
-#~ "but couldn't find a web browser.\n"
-#~ "To fix this, set the environment variable\n"
-#~ "BROWSER to the path of your web browser,\n"
-#~ "then restart the %s."
-#~ msgstr ""
-#~ "%s próbował pokazać stronę sieci web\n"
-#~ "\t%s\n"
-#~ "ale nie mógł odnaleźć przeglądarki internetowej.\n"
-#~ "Aby usunąć ten błąd, ustaw zmienną środowiskową\n"
-#~ "BROWSER jako ścieżkę dostępu do przeglądarki internetowej,\n"
-#~ "a nastepnie zrestartuj %s."
-
-#~ msgid "Starting client services; please wait..."
-#~ msgstr "Uruchamianie usług; proszę czekać..."
-
-#~ msgid ""
-#~ "Required wizard file(s) are missing from the target server.\n"
-#~ "(lookup_account.php/create_account.php)\n"
-#~ msgstr ""
-#~ "Brak wymaganych plików kreatora na docelowym serwerze.\n"
-#~ "(lookup_account.php/create_account.php)\n"
-
-#~ msgid "ID"
-#~ msgstr "Identyfikator"
-
-#~ msgid "Priority"
-#~ msgstr "Priorytet"
-
-#~ msgid "MessagesGrid"
-#~ msgstr "Wiadomości - lista"
-
-#~ msgid "Copying selected messages to Clipboard..."
-#~ msgstr "Kopiuję wybrane wiadomości do schowka..."
-
-#~ msgid "Info"
-#~ msgstr "Informacja"
-
-#~ msgid "Warning"
-#~ msgstr "Ostrzeżenie"
-
-#~ msgid "BOINC Website"
-#~ msgstr "Strona główna Projektu BOINC"
-
-#~ msgid "Display the latest news about BOINC from the BOINC website"
-#~ msgstr ""
-#~ "Pokaż najnowsze wiadomości dotyczące BOINC ze strony głównej Projektu BOINC"
-
-#~ msgid "ProjectsGrid"
-#~ msgstr "Projekty - lista"
-
-#~ msgid "TransfersGrid"
-#~ msgstr "Przesyłanie - lista"
-
-#~ msgid "Aborting transfer(s)..."
-#~ msgstr "Przerywanie przesyłania plików..."
-
-#~ msgid ""
-#~ "Are you sure you want to abort this file(s) transfer ?\n"
-#~ "NOTE: Aborting a transfer will invalidate a task and you\n"
-#~ "will not receive credit for it."
-#~ msgstr ""
-#~ "Czy jesteś pewny, że chcesz przerwać przesyłanie tego pliku?\n"
-#~ "UWAGA: Przerwanie przesyłania pliku spowoduje, że to zadanie zostanie\n"
-#~ "unieważnione i nie otrzymasz za nie punktów."
-
-#~ msgid "Abort File Transfer(s)"
-#~ msgstr "Przerywanie przesyłania plików"
-
-#~ msgid "TasksGrid"
-#~ msgstr "Zadania - lista"
+msgid "Quit %s"
+msgstr "Zakończ %s"
diff --git a/locale/pl/BOINC-Project-Generic.po b/locale/pl/BOINC-Project-Generic.po
deleted file mode 100755
index cc26564..0000000
--- a/locale/pl/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,7128 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2013-01-20 16:11+0000\n"
-"Last-Translator: Pawel <pawel.pbm at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-0: html\\user\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1358698319.0\n"
-
-# The name of this language in this language
-msgid "LANG_NAME_NATIVE"
-msgstr "Polski"
-
-# The name of this language in an international language (English)
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Polish"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Pogrubienie: [b]tekst[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kursywa: [i]tekst[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Podkreślenie: [u]tekst[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Cytat: [quote]tekst[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Kod: [code]kod[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]tekst[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Lista uporządkowana: [list=]tekst[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Wstaw obrazek: [img]http://adres_obrazka[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Wstaw URL: [url]http://adres[/url] lub [url=http://url]adres[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Kolor czcionki"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Kolor czcionki: [color=red]tekst[/color]  Rada: możesz także użyć "
-"color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Domyślny"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Ciemny czerwony"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Czerwony"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Pomarańczowy"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Brązowy"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Żółty"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Zielony"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Oliwkowy"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Błękitny"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Niebieski"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Ciemnoniebieski"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indigo"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Fioletowy"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Rozmiar czcionki"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Rozmiar czcionki: [size=x-small]mały tekst[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Mały"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normalny"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Duży"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Zamknij wszystkie otwarte znaczniki bbCode"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Zamknij znaczniki"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Starsze najpierw"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Nowsze najpierw"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Najwyżej oceniane posty najpierw"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Nowsze posty najpierw"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Najczęściej oglądane najpierw"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Z największą ilością postów najpierw"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Szukaj słów w postach na forum"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Przeszukaj fora"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Zaawansowane wyszukiwanie"
-
-# #######################################
-# Private messages
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Prywatne wiadomości"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Pytania i odpowiedzi"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Forum dyskusyjne"
-
-# #######################################<br />
-# Forum sample index page
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "Forum dyskusyjne %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Poprzedni"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Następny"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Wiadomość"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Wyślij wiadomość"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Wyślij prywatną wiadomość do %1"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Dołączył: %1"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Postów: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Punktów: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Nie przeczytałeś jeszcze tej wiadomości"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Nieprzeczytana"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Wiadomość %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "ukryte"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Wysłano: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr " - w odpowiedzi na "
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Edytuj"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Edytuj tą wiadomość"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Ostatnio zmodyfikowano: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Ta wiadomość nie jest wyświetlona, ponieważ autor jest na twojej liście "
-"ignorowanych. Kliknij %1tutaj%2 aby zobaczyć tą wiadomość"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Zgłoś tą wiadomość jako obraźliwą"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Zgłoś jako obraźliwą"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Ocena: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "ocena:"
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Kliknij, jeśli lubisz tą wiadmość"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Ocena ++"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Kliknij, jeśli nie lubisz tej wiadomości"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Ocena --"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Odpowiedz"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Wyślij odpowiedź na tą wiadomość"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Cytuj"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Wyślij odpowiedź cytując tą wiadomość"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Ukryty przez moderatora"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Wysłano %1 przez %2"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Nie możesz wysłać lub ocenić wiadomości do puki %1"
-
-#: ../inc/forum.inc:758
-#, fuzzy
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-"\n"
-"        <ul>\n"
-"        <li> Wiadomości nie mogą zawierać\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Zasady:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Więcej informacji"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Pokaż"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Pokaż tę wiadomość"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Ukryj"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Ukryj tę wiadomość"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Przenieś"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Przenieś tę wiadomość do innego wątku"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Zbanuj użytkownika"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Zagłosuj, aby zbanować użytkownika"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Zagłosuj, aby nie banować użytkownika"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Rozpocznij głosowanie, aby zbanować użytkownika"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "Tylko członkowie zespołu mogą wysyłać wiadomości na forum zespołu"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Aby stworzyć nowy temat w %1 musisz mieć określoną liczbę punktów. Zapobiega "
-"to spamowaniu na forum."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Nie możesz stworzyć teraz nowego tematu. Odczekaj chwile, zanim spróbujesz "
-"stworzyć temat ponownie. Zapobiega to spamowaniu na forum."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Ten wątek jest zablokowany. Tylko moderatorzy i administratorzy mogą wysyłać "
-"tu wiadomości."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Nie można dodać wiadomości do ukrytego wątku."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Wątek"
-
-# #######################################
-# Forum
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Posty"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Wyświetleń"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Ostatni post"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Nowe wiadomości w wątku %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Nowe wiadomości w subskrybowanych wątkach"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Są nowe wiadomości w wątku '%1'"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Zaznacz wszystkie wątki jako przeczytane"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Zaznacz wszystkie wątki we wszystkich forach jako przeczytane."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Brak komputera"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Niedostępny"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Dom"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Praca"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Szkoła"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Aktualizuj"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Informacje o komputerze"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "Adres IP"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(identyczny ostatnich %1 razy)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Zewnętrzny adres IP"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Pokaż adres IP"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Nazwa domenowa"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Czas lokalny"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 godzin(a)"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Właściciel"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonimowy"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Stworzony"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Wszystkie punkty"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Średnia liczba punktów"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Liczba punktów we wszystkich projektach"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Typ procesora"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Liczba procesorów"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Koprocesory"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "System operacyjny"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Wersja BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Pamięć"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Pamięć podręczna"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Przestrzeń wymiany"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Całkowita pojemność dysku"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Dostępna pojemność dysku"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Zmierzona wydajność zmiennoprzecinkowa"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 milionów operacji/s."
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Zmierzona prędkość dla liczb całkowitych"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Średnia prędkość wysyłania"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Nieznany"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Średnia prędkość pobierania"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Średni czas realizacji"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 dni"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Szczegóły aplikacji"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Pokaż"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Zadania"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Liczba połączeń klienta z serwerem"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Ostatnie połączenie z serwerem"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% czasu przez jaki działa BOINC"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-"% czasu, kiedy BOINC jest włączony, przez jaki dostępne jest połączenie z "
-"Internetem"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% czasu, kiedy BOINC jest włączony, przez jaki możliwa jest praca"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Średnia wydajność procesora"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Współczynnik korekcji czasu trwania zadań"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Lokalizacja"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Usuń ten komputer"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Scal zduplikowane rekordy tego komputera"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Scal"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Ostatni kontakt"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informacje o komputerze"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Pozycja"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Śr. punktów"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Aktualna średnia liczba punktów"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "System operacyjny"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 procesorów)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Szczegóły"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Statystyki międzyprojektowe:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Komputer %1 ma pokrywający się czas działania:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Komputer %1 ma niekompatybilny system operacyjny:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Komputer %1 ma niekompatybilny procesor:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "ten sam komputer"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Nie można scalić komputera %1 z %2 - są one niekompatybilne"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Scalanie komputera %1 z %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Nie można zaktualizować punktów nowego komputera"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Nie można zaktualizować wyników"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Nie można wycofać starego komputera"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Wycofano stary komputer %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Pokaż:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Wszystkie komputery"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Tylko komputery aktywne w ciągu ostatnich 30 dni"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID komputera"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nazwa"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "Wersja<br>BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Scal komputery według nazwy"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Komentarz"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Aktualności są dostępne w %skanale RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Odebrane"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Napisz"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Wyślij prywatną wiadomość"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Podgląd"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "nie ma takiej wiadomości"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Do"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Identyfikatory lub nazwy użytkowników, oddzielone przecinkami"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Temat"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Wyślij wiadomość"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "przysłał ci prywatną wiadomość; temat:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Prywatna wiadomość%1 od %2, temat:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Nie można utworzyć wiadomości"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Nie możesz wysyłać prywatnych wiadomości tak często. Odczekaj chwilę i "
-"spróbuj ponownie."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "nieprzeczytane"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Dla powiadomień e-mail, %1edytuj preferencje społecznościowe%2"
-
-# #######################################
-# Private messages
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Prywatna wiadomość"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Wstrzymaj pracę gdy komputer jest zasilany z baterii? %1 Dotyczy tylko dla "
-"komputerów przenośnych %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Wstrzymać pracę gdy komputer jest w użyciu?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Wstrzymać pracę karty graficznej gdy komputer jest w użyciu? %1 Wymuszone "
-"przez wersję 6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "\"W użyciu\" oznacza, aktywność myszki/klawiatury w ciągu ostatnich"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minut"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Wstrzymaj pracę jeśli brak aktywność myszki/klawiatury w ciągu ostatnich %1 "
-"Na niektórych komputerach jest to wymagane aby przejść do trybu niskiego "
-"poboru mocy %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Wstrzymaj pracę jeśli obciążenie procesora prze programy inne niż BOINC "
-"przekracza %1 0 oznacza brak ograniczeń<br>Egzekwowane od wersji 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-"Wykonuj pracę tylko pomiędzy godzinami %1 Brak ograniczeń jeśli równe %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Pozostaw zadania w pamięci podczas wstrzymania? %1 Jeśli opcja jest "
-"zaznaczona wstrzymane zadania będą zajmowały pamięć %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Przełączaj między zadaniami co %1 Zalecane: 60 minut %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "W systemach wieloprocesorowych, używaj maksymalnie"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesorów"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"W systemach wieloprocesorowych, użyj maksymalnie %1 Egzekwowane od wersji "
-"6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% procesorów"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Używaj maksymalnie %1 Może być stosowany w celu zmniejszenia temperatury "
-"procesora %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% czasu procesora"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Dysk: użyj maksymalnie"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Dysk: pozostaw co najmniej %1 wolnego. Wartości mniejsze niż %2 są "
-"ignorowane %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% całości"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Zapisuj na dysku stan zadania nie częściej niż co każde"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "sekund"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Przestrzeń wymiany: użyj najwyżej"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Pamięć: kiedy komputer jest w użyciu, używaj maksymalnie"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Pamięć: kiedy komputer nie jest w użyciu, używaj maksymalnie"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dni"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Potwierdź przed podłączeniem do Internetu? %1 Opcja użyteczna tylko jeśli "
-"masz modem, ISDN lub VPN %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Rozłączyć po zakończeniu? %1 Opcja użyteczna tylko jeśli masz modem, ISDN "
-"lub VPN %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Maksymalna szybkość pobierania:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "kB/s"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Maksymalna szybkość wysyłania:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Używaj sieci tylko miedzy godzinami"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Prześlij najwyżej %1 Egzekwowane od wersji 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mb co"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Pominąć weryfikację plików graficznych? %1 Zaznacz to tylko wtedy gdy twój "
-"dostawca Internetu modyfikuje pliki graficzne (np. UMTS). %2 Pominięcie "
-"weryfikacji przez BOINC zmniejsza bezpieczeństwo %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Podziel zasoby %1 Określa procent zasobów twojego komputera przeznaczonych "
-"na ten projekt. Np.: jeśli uczestniczysz w dwóch projektach BOINC z "
-"podziałem zasobów 100 i 200, pierwszy będzie korzystał z 1/3 swoich zasobów, "
-"a drugi dostanie 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-"Przyśpieszyć zadania kart graficznych przez przydzielenie im dedykowanych "
-"procesorów?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Używaj procesora %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Używaj karty graficznej ATI %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Używaj karty graficznej NVIDIA %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Używaj karty graficznej ATI %1 Egzekwowane od wersji 6.10+ %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Uruchamiać aplikacje testowe? %1 To pomaga nam rozwijać aplikacje, ale może "
-"się przyczynić do niepowodzenia realizacji zadań na danym komputerze %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Wiadomości e-mail będą wysłane z %1; upewnij się, że twój filtr antyspamowy "
-"akceptuje ten adres."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Czy to w porządku dla %1 i Twojego zespołu (jeśli istnieje) aby wysłać do "
-"Ciebie wiadomości?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Czy %1 powinien wyświetlać twoje komputery na swojej stronie?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Użycie dysku i pamięci"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Użycie procesora"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Użycie sieci"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Te ustawienia mają zastosowanie do wszystkich projektów BOINC w których "
-"uczestniczysz."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1Nie można zaktualizować preferencji.%2 Wartości oznaczone na czerwono są "
-"nienumeryczne lub poza zakresem."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "zła lokalizacja: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "zły podzbiór: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "tak"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nie"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "bez ograniczeń"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Dodaj"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Usuń"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Obliczenia"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Oddzielne preferencje dla %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Edytuj preferencje"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Dodaj oddzielne preferencje dla %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Przełącz widok)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Połączone preferencje"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Specyficzne ustawienia projektu"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Podstawowe (domyślne) ustawienia"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Edytuj preferencje %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Ustawienia ostatnio zmodyfikowane:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Dodaj preferencje"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Zaktualizuj preferencje"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Domyślna lokalizacja komputera"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "i"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Twój profil będzie widoczny dla innych, tak szybko, jak to zostało "
-"zatwierdzone przez projekt. Może to potrwać do kilku dni."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Twój profil został oznaczony jako nie do przyjęcia. Nie jest on widoczny dla "
-"innych. Prosimy go zmienić."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Błąd bazy danych"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Aby zapobiec nadużyciom profile użytkowników o średniej punktów mniejszej "
-"niż %1 są wyświetlane tylko zalogowanym użytkownikom. Przepraszamy za "
-"niedogodności."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Użytkownik jest zbanowany"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Profil o podanym ID nie istnieje."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Edytuj swój profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Twoja opinia na temat tego profilu"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Poleć ten profil na Użytkownika Dnia:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1Lubię%2 ten profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Powiadom administratora o obraźliwym profilu:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1Nie lubię%2 tego profilu"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Nieznana platforma"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "karta graficzna NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "karta graficzna ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Brak w bazie danych"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "oczekuje"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Wszystko"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "W trakcie"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Poprawny"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Niepoprawny"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Błąd"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Nieaktywny"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Niewysłany"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Zakończone, oczekuje na walidację"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Zakończone i zwalidowane"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Zakończone, oznaczone jako niepoprawne"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Zakończone, nie może zostać zwalidowane"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Zakończone, walidacja nie rozstrzygająca"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Zakończone, zbyt późno do zwalidowania"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Zakończone"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Nie można wysłać"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Anulowane przez serwer"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Błąd podczas pobierania"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Błąd podczas przetwarzania"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Błąd podczas wysyłania"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Anulowane przez użytkownika"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Wysyłanie nie powiodło się"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Czas upłynął - brak odpowiedzi"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Nie wymagane"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Sprawdź błąd"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Porzucone"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Koniec"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Sukces"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Błąd przetwarzania"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Wynik nadmiarowy"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Brak odpowiedzi"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nowe"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Pobieranie"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Przetwarzanie"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Błąd przetwarzania"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Wysyłanie"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Gotowe"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Wstępny"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Nie potrzebne"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Błąd jednostki roboczej - sprawdzanie pominięte"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Sprawdzone, ale brak wyniku"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Zadanie zostało zgłoszone zbyt późno, aby zwalidować"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Nie można wysłać wyniku"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Zbyt wiele błędów (może zawierać błąd)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Zbyt wiele wyników"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Zbyt wiele wszystkich wyników"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Jednostka robocza anulowana"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Nieznany błąd: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Nazwa zadania"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "kliknij po szczegóły"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Pokaż ID"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Pokaż nazwy"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Zadanie"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Jednostka robocza"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Komputer"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Wysłane"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Czas zgłoszenia<br />lub termin"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "wyjaśnij"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Czas uruchomienia<br />(sekundy)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Czas procesora<br />(sekundy)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Punkty"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Aplikacja"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Jednostka robocza"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Otrzymano"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Stan serwera"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Wynik"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Stan klienta"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Status końcowy"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Termin raportu"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Czas działania"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Czas procesora"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Stan walidacji"
-
-# #######################################
-# Apps page (apps.php)
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Wersja aplikacji"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Pliki wyjściowe"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Wyjście stderr"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Stan"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Nazwa zadania"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Kryteria wyszukiwania (wybierz jedno lub więcej)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Słowa kluczowe"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Znajdź zespoły z tymi słowami w nazwie lub opisie"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Kraj"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Typ zespołu"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Pokaż jedynie aktywne zespoły"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Szukaj"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Zażądane przez Ciebie, czas na odpowiedź założyciela minął."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Dokończ przekazanie funkcji założyciela"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Zażądane przez Ciebie"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "czas na odpowiedź założyciela to %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Żadna"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Żądanie rozpoczęte"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Odroczone"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Informacje o zespole"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Opis"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Strona internetowa"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Statystyki międzyprojektowe"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Typ"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Forum dyskusyjne"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Tematy"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Dołącz do tego zespołu"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Uwaga: Jeżeli wyraziłeś zgodę na otrzymywanie e-maili w ustawieniach "
-"projektu, gdy dołączysz do zespołu jego założyciel otrzyma także dostęp do "
-"twojego adresu e-mail."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Nie przyjmuje nowych członków"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Zażądano zmiany założyciela"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Odpowiedź od %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Zmiana założyciela zespołu"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Członkowie"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Założyciel"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administratorzy"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Nowi członkowie w ostatnim dniu"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "W sumie członków"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "zobacz"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktywni członkowie"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Członkowie z punktami"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administrator"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Poprzedni %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Następny %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Nie ma takiego zespołu."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Operacja wymaga przywilejów założyciela zespołu."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Operacja wymaga przywilejów administratora zespołu."
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"Uwaga: to jest zespół międzyprojektowy. Jeśli dokonasz zmian tutaj, zostaną "
-"one nadpisane. Dokonaj zmian w %1ustawieniach międzyprojektowych%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Uwaga odnośnie prywatności%2: Jeżeli stworzysz własny zespół, twoje "
-"ustawienia projektu (ustawienia przydziału zasobów i grafiki) będą widoczne "
-"publicznie."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Nazwa zespołu, wersja tekstowa"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Nie używaj znaczników HTML."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Nazwa zespołu, wersja HTML"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Możesz używać jedynie %1wybranych znaczników HTML%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Jeżeli nie znasz języka HTML zostaw to pole puste."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Adres URL strony zespołu, jeśli jakąś posiada"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "bez \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Ten adres będzie podany na stronie zespołu."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Opis zespołu"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Akceptuj nowych członków?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Profil użytkownika"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projekty w których uczestniczysz"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projekty w których uczestniczy %1"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Kliknij, aby przejść na stronę użytkownika"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Od"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Przetwarzanie i punkty"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Komputery na tym koncie"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Zobacz"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Identyfikator międzyprojektowy"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Statystyki międzyprojektowe"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Konto"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Zespół"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Międzyprojektowy"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certyfikat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statystyki na twojej komórce"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Nieznany rodzaj powiadomienia: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Dane konta"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Adres email"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "Strona internetowa"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Kod pocztowy"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "Uczestnik %1 od"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Zmień"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "adres email"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "hasło"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "pozostałe dane konta"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "Identyfikator uczestnika"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Używany przy funkcjach społecznościowych"
-
-# 91%
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Klucz konta"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Ustawienia"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Określają jak i kiedy BOINC może korzystać z twojego komputera"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Ustawienia przetwarzania"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Fora dyskusyjne i prywatne wiadomości"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Ustawienia społecznościowe"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Ustawienia dla tego projektu"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "Ustawienia %1"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Społeczność"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Usuń"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Stwórz"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 postów"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Powiadomienia"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Opuść zespół"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administruj"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(zażądano zmiany założyciela)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Członek zespołu"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "znajdź zespół"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Założyciel, ale nie członek"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Znajdź przyjaciół"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Przyjaciele"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Komputery"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Ofiarodawca"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Ta osoba jest przyjacielem"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Anuluj przyjaźń"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Oczekujące zaproszenie"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Dodaj jako przyjaciela"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "wyloguj"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "zaloguj"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Zaloguj"
-
-# #######################################
-# Create account form (create_account_form.php)
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Stwórz konto"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Status serwera"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-"Wystąpił błąd bazy danych podczas obsługi żądania, spróbuj ponownie później."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Nie można obsłużyć żądania"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "godzin"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "minut"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "sekund"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-"Upłynął limit czasu. Proszę kliknąć przycisk Wstecz, odświeżyć stronę i "
-"spróbować ponownie."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Zobacz profil %1"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Używaj BBCode do formatowania wpisywanego tekstu"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "Projekt w trakcie prac konserwacyjnych"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 jest tymczasowo wyłączony ze względu na prace konserwacyjne. Spróbuj "
-"ponownie później."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Nie można połączyć się z bazą danych - spróbuj ponownie później"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Nie udało się wybrać bazy danych - spróbuj ponownie później"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Pozostań zalogowany z tego komputera"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Zakończ zakładanie konta"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Identyfikuje Ciebie na stronie. Możesz użyć imienia albo pseudonimu."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Jeśli chcesz, wybierz kraj, który reprezentujesz."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Kod pocztowy"
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opcjonalne"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Musisz podać nazwę konta"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Znaczniki HTML nie są dozwolone w nazwie"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Dodaj preferencje %1 dla %2"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Aplikacje"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"Projekt %1 obecnie posiada następujące aplikacje. Uczestnicząc w %1 twój "
-"komputer otrzyma pracę od jednej lub więcej z tych aplikacji. Za każdym "
-"razem, gdy zmieni się wersja aplikacji, zostanie ona pobrana automatycznie, "
-"więc nie musisz się o nic martwić."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Wersja"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Data instalacji"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Znaczniki BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-"Znaczniki BBCode pozwalają na formatowanie tekstu w profilu oraz w "
-"wiadomościach na forum.\n"
-"Są one podobne do znaczników HTML, lecz prostsze. Znacznik zaczyna się\n"
-"od [ (czyli tam gdzie użyłbyś %1 w HTML) i kończy na ] (gdzie użyłbyś %2\n"
-"w HTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Przykłady"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Pogrubienie"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Kursywa"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Podkreślenie"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Indeks górny"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Duży tekst"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Czerwony tekst"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "odnośnik do strony"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Cytat"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "użyj do zacytowania bloków tekstu"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "użyj do wyświetlenia obrazka"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Fragment kodu"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "użyj do wyświetlenia kodu"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Tekst sformatowany"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "użyj do wyświetlenia tekstu sformatowanego"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Element 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Element2"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "użyj do podania linku do błędu z systemu Trac ze strony BOINC"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "użyj do podania linku do wpisu Wiki z systemu Trac ze strony BOINC"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "użyj do podania linku do zestawu zmian SVN ze strony BOINC"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-"Jeśli nie zamkniesz znacznika lub nie podasz prawidłowego parametru,\n"
-" wyświetlony zostanie jedynie znacznik a nie sformatowany tekst."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-# ######################################
-# "Your account" page (home.php)
-# #######################################
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Twoje konto"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Drużyny"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-#, fuzzy
-msgid "User of the day"
-msgstr "Uczestnik dnia"
-
-# 92%
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Statusy serwera"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profile"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-# #######################################
-# Various top table pages (top users, computers, teams)
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Najlepsi uczestnicy"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-#, fuzzy
-msgid "Top computers"
-msgstr "Komputery"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-#, fuzzy
-msgid "Top teams"
-msgstr "Najlepsze zespoły"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Język"
-
-# #######################################
-# Rules and Policies page (info.php)
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Zasady i reguły"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Nie można utworzyć konta"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Kliknij przycisk <b>Wstecz</b> w przeglądarce, aby ponowić."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Twoja odpowiedź na reCAPTCHA jest nieprawidłowa. Spróbuj ponownie."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Aby stworzyć konto w tym projekcie musisz posiadać kod rejestracyjny."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Wpisany kod rejestracyjny jest nieprawidłowy."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Nieprawidłowy adres email: musisz podać prawidłowy adres w postaci "
-"nazwa at domena"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Istnieje już konto z tym adresem email."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Nowe hasła są różne."
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "Hasło może zawierać jedynie znaki ASCII."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Nowe hasło jest za krótkie: minimalne długość hasła to %1 znaków."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Nie można utworzyć konta"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"To konto automatycznie będzie przyłączone do zespołu %1 i zyska ustawienia "
-"określone przez jego założyciela."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Kod rejestracyjny"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Aby stworzyć konto wymagany jest poprawny kod rejestracyjny."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Adres email"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Musi to być poprawny adres postaci 'nazwa at domena'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Hasło"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Musi mieć co najmniej %1 znaków"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Powtórz hasło"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Przepisz słowa widoczne na obrazku"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Stwórz konto"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Twoje zdjęcie profilowe jest widoczne po lewej stronie."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Aby je zastąpić, kliknij przycisk \"Przeglądaj\" i wybierz plik JPEG lub PNG ("
-"%1 lub mniej)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Aby je usunąć ze swojego profilu, zaznacz to pole:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Jeśli chcesz dodać zdjęcie w profilu, kliknij przycisk \"Przeglądaj\" i "
-"wybierz plik JPEG lub PNG. Wybierz obrazy o rozmiarze %1 lub mniejsze."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Język"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Wybierz język w którym stworzony jest twój opis profilu:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Zatwierdź profil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Przepisz słowa widoczne na obrazku."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Stwórz/edytuj profil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Format przesyłanego zdjęcia nie jest obsługiwany."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"Twój %1profil%2 umożliwia ci dzielenie się opiniami ze społecznością %3."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Twoja odpowiedź ReCaptcha nie była prawidłowa. Spróbuj ponownie."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Twoja pierwsza odpowiedź została oznaczona jako spam przez system "
-"antyspamowy Akismet. Zmodyfikuj tekst i spróbuj ponownie."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Twoja druga odpowiedź została oznaczona jako spam przez system antyspamowy "
-"Akismet. Zmodyfikuj tekst i spróbuj ponownie."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "Przesłany profil był pusty."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Nie można zaktualizować profilu: błąd bazy danych"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Nie można utworzyć profilu: błąd bazy danych"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profil zapisany"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Gratulacje! Twój profil został zapisany w naszej bazie danych."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%Zobacz swój profil%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Stwór profil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Aby uniknąć spamu, wymagane jest %1 punktów lub więcej , aby utworzyć lub "
-"edytować profil. Przepraszamy za niedogodności."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nie można usunąć konta"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Konto usunięte"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Twoje konto zostało usunięte."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Potwierdź usunięcie konta"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-"Usunięcie konta usunie wszystkie twoje\n"
-"informacje z naszych serwerów, włączając\n"
-"profil oraz wiadomości na forum.\n"
-"Żadne zadania nie będą dostarczane do\n"
-"komputerów powiązanych z tym kontem."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-"Ta operacja nie może być cofnięta.\n"
-"Jeśli usuniesz konto, nie będziesz mógł go odzyskać."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Czy jesteś pewien, że chcesz usunąć konto?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Tak"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Usuń to konto"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nie"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Nie usuwaj tego konta"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "nie można usunąć profilu - spróbuj ponownie później"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Potwierdzenie usunięcia"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Twój profil został usunięty."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Potwierdzenie usunięcia profilu"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Czy jesteś pewien?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-"Usunięte profile nie mogą zostać odzyskane.\n"
-"Jeśli w przyszłości będziesz chciał mieć nowy profil\n"
-"będziesz musiał zacząć od początku."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Jeśli jesteś pewien, kliknij 'Tak'\n"
-"aby usunąć profil z bazy danych."
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Usuń mój profil"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Nie usuwaj mojego profilu"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - transakcja zakończona"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Dziękujemy za donację!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Twoja donacja została zakończona."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-"Twoja donacja zostanie dodana do paska postępu po potwierdzeniu jej przez "
-"PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Anulowałeś swoją donację."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Ten projekt nie akceptuje donacji."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donacji"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Ten projekt akceptuje donacje przez\n"
-"%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-"Aby przekazać donację podaj sumę jaką chcesz przekazać w polu poniżej.\n"
-"PayPal akceptuje wiele walut\n"
-"(dolary kanadyjskie, euro, funty szterlingi, dolary amerykańskie,\n"
-"jeny, dolary australijskie, dolary nowozelandzkie,\n"
-"franki szwajcarskie, dolary hongkońskie, dolary singapurskie, korony "
-"szwedzkie,\n"
-"korony duńskie, polskie złote, korony norweskie,\n"
-"forinty węgierskie, korony czeskie).\n"
-"Możesz skorzystać z konwertera walut\n"
-"aby zobaczyć kwotę donacji w innych walutach\n"
-"(kurs wymiany jest szacowany, faktyczna wartość może być inna)."
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Kwota, jaką chciałbyś podarować"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Szacowana wartość w"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Dotacja anonimowa"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-"Zaznacz, jeśli nie chcesz aby twoje imię oraz ID konta było wyświetlane na "
-"liście donatorów.\n"
-"<br>Jeśli nie będzie zaznaczone, będziesz zanotowany jako użytkownik o ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Aby przypisać dotację do twojego konta zaloguj się."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Kontynuuj"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Dotacje są akceptowane przez"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Pobierz dodatkowe oprogramowanie BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Możesz pobrać aplikacje z kilku kategorii."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-"Aplikacje te nie są zatwierdzone przez %1 i korzystasz z nich na własne "
-"ryzyko."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Nie dostarczamy instrukcji instalacji tych aplikacji.\n"
-"Autor aplikacji mógł udostępnić dokumentację dotyczącą instalacji lub "
-"deinstalacji aplikacji.\n"
-"Jeśli nie jest ona wystarczająca skontaktuj się z autorem."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instrukcje dotyczące instalowania i uruchamiania BOINC są %1tutaj%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Ta lista jest zarządzana centralnie na %1stronie BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Zmień adres email konta"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Nowy adres email '%1' jest nieprawidłowy."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Nowy adres email jest taki sam jak stary. Nic nie zostało zmienione."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Istnieje już konto z tym adresem email"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Nieprawidłowe hasło."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Adres email twojego konta to teraz %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "%1Zweryfikuj swój adres email%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Nie możemy uaktualnić twojego adresu email ze względu na problem z bazą "
-"danych. Spróbuj ponownie później."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Zmień adres email"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Zmień adres email swojego konta"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nowy adres email"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Wymagany jest prawidłowy adres w postaci \"nazwa at domena\""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Bez hasła?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Potwierdź zresetowanie"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Ta akcje usunie wszystkie zmiany jakie wprowadziłeś w ustawieniach "
-"społecznościowych. Aby anulować kliknij przycisk Wstecz w przeglądarce."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Zresetuj ustawienia"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Błąd: nieprawidłowy typ pliku. Tylko pliki PNG i JPEG są obsługiwane."
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Twój podpis jest za długi. Podpis musi mieć mniej niż 250 znaków."
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Brak użytkownika %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-"Jak mamy powiadamiać cię o nowych wiadomościach prywatnych, zaproszeniach, "
-"wiadomościach w subskrybowanych tematach i innych zdarzeniach?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Na mojej stronie konta (bez powiadomień mailowych)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Natychmiastowo przez email"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Zbiorczo w jednej wiadomości dziennie"
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr "Tożsamość na forum dyskusyjnym"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Awatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Obrazek reprezentujący ciebie na forum dyskusyjnym."
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPG lub PNG. Rozmiar: maksymalnie 4 KB, 100x100 pikseli"
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Nie używaj awatara"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Skorzystaj z globalnego awatara dostarczanego przez %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Skorzystaj z przesłanego awatara:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Podgląd awatara"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Tak będzie wyglądał twój awatar"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Podpis dla postów na forum"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-"Sprawdź %1różne darmowe usługi%2\n"
-"<br> dostarczające dynamicznych obrazków dla podpisów\n"
-"<br> pokazujących twoje informacje o punktach, nowości, itp."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "pozostało znaków"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Domyślnie dodawaj podpis"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Podgląd podpisu"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Tak będzie wyglądał twój podpis na forum"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr "Wyświetlanie wiadomości"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Co wyświetlić"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Ukryj awatary"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Ukryj podpisy"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Pokazuj obrazki jako odnośniki"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Otwieraj odnośniki w nowym oknie/nowej karcie"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Podświetl użytkowników specjalnych"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Jak sortować"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Wątki:"
-
-# #######################################
-# Forum
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Posty:"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr "Przeskocz automatycznie do pierwszego nowego postu w wątku"
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Filtrowanie wiadomości"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Filtrowani użytkownicy"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignoruj wiadomości i prywatne wiadomości od tych użytkowników."
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "Identyfikator użytkownika (przykładowo 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Dodaj użytkownika do filtru"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Kliknij tutaj, aby uaktualnić preferencje"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Resetuj"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Kliknij tutaj, aby przywrócić preferencje do domyślnych"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Niepoprawny klucz konta"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Nie znaleziono konta z tym adresem email"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Niepoprawne hasło"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Zmień hasło"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Twoje hasło zostało zmienione."
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Nie możemy uaktualnić twojego hasła ze względu na problem z bazą. Spróbuj "
-"ponownie później."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Możesz zidentyfikować się korzystając z"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "twojego adresu email i starego hasła"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "twojego klucza konta"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Aktualne hasło"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>lub</b>:Klucz konta"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Pobierz klucz konta na email"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Nowe hasło"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Powtórz nowe hasło"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "Znaczniki HTML nie są dozwolone w twoim imieniu."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Musisz podać nazwę swojego konta."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Nie można zaktualizować informacji użytkownika."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Edycja informacji o koncie"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Imię %1prawdziwe imię lub pseudonim%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 twojej strony internetowej; opcjonalnie%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Kod pocztowy 1% Opcjonalnie%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Aktualizacja informacji"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Statusy serwera"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-"Przypisane do zadania <b>statusy serwera</b> wskazują czy zadania zostało "
-"przesłane do komputera i czy komputer zakończył jego przetwarzanie. Możliwe "
-"wartości to:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-"Zadanie nie jest gotowe do wysłania (na przykład ze względu na to, że pliki "
-"wejściowe są niedostępne)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Zadanie jest gotowe do wysłania, ale jeszcze nie zostało wysłane."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "W trakcie"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Zadanie zostało wysłane; oczekiwanie na ukończenie."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-"Zadanie zostało wysłane do komputera i przedawniło się lub komputer zgłosił "
-"jego zakończenie."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Wyniki"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-"<b>Wyniki</b> zadania są zdefiniowane jeśli status serwera to "
-"<b>zakończone</b>. Możliwe wartości to:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-"Zadanie zostało wysłane do komputera, ale komputer jeszcze nie zakończył "
-"pracy i nie zgłosił wyniku."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Komputer zakończył i zgłosił zadanie."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-"Serwer nie był w stanie wysłać zadania do komputera (być może ze względu na "
-"zbyt duże wymagania)."
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Błąd klienta"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Zadanie zostało wysłane do komputera, ale wystąpił błąd."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-"Zadanie zostało wysłane do komputera, ale nie odebrano odpowiedzi w limicie "
-"czasu."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Zadanie nie zostało wysłane do komputera ponieważ wystarczająca ilość innych "
-"zadań dla tej pracy została wykonana."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-"Zadanie zostało zgłoszone, ale nie mogło zostać zwalidowane, "
-"najprawdopodobniej ponieważ pliki wynikowe zaginęły na serwerze."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Stany klienta"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-"<b>Stany klienta</b> wskazują etap przetwarzania na którym wystąpił błąd."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Komputer jeszcze nie ukończył zadania."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Komputer ukończył zadanie z powodzeniem."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Komputer nie mógł pobrać aplikacji lub plików wejściowych."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Wystąpił błąd podczas przetwarzania."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Komputer nie mógł przesłać plików wynikowych."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Czas i termin zgłoszenia"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-"<b>Czas i termin zgłoszenia</b> dla danego zadania jest zależny od tego czy "
-"zostało ono już zgłoszone:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Już zgłoszone"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Data/czas kiedy zostało zgłoszone"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Nie zgłoszone, termin w przyszłości"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Termin, pokazane na zielono."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Nie zgłoszone, termin w przeszłości"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Termin, pokazane na czerwono."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Nieznane pole"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Podgląd wiadomości"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Wiadomość email będzie wyglądała następująco:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Wyślij email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-"Użyj przycisku wstecz w przeglądarce, aby powrócić do formularza wiadomości"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Wysyłanie wiadomości"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "wiadomość do %1 wysłana prawidłowo"
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr "wiadomość do %1 wysłana nieprawidłowo: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Dziękujemy za poinformowanie znajomych o %1"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-"Zapomniałeś podać imiona i adresy email znajomych. %1Wróć do formularza%2 i "
-"je dodaj."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Powiedz swoim znajomym o %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Pomóż nam informując swoich znajomych, rodzinę i współpracowników o %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-"Wypełnij formularz podając imiona i adresy email ludzi, którzy mogą być "
-"zainteresowani %1. Wyślemy im w twoim imieniu wiadomość. Jeśli chcesz możesz "
-"dodać własny tekst."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Twoje imię:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Twój adres email:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Imiona znajomych:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Adresy email znajomych:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Dodatkowa wiadomość (opcjonalna)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Wyślij"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr "Nie masz uprawnień do banowania użytkowników."
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr "Głosowanie za zbanowaniem"
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr "Nie odnaleziono użytkownika z takim ID."
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr "Użytkownik jest już zbanowany"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-"Czy na pewno zbanować %1?<br/>Uniemożliwi to %1 wysyłanie wiadomości przez "
-"wybranych czas.<br/>Powinno to zostać wykonane tylko jeśli %1 wielokrotnie "
-"naruszał reguły."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-"Wybierz kategorię, opcjonalnie podając powód dla którego użytkownik powinien "
-"być zbanowany."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Kategoria"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Rzeczy nieprzyzwoite"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Flame/Szerzenie nienawiści"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Prośba użytkownika"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Inne"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Powód"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr "Powiadomiono jeśli nie puste"
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr "Kontynuuj z głosowaniem"
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Musisz wskazać akcję..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-"Nie możesz już edytować tej wiadomości.<br>Wiadomości mogą być edytowane "
-"maksymalnie %1 minut to ich napisaniu."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Nie masz uprawnień do edycji tej wiadomości."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Edytuj swoją wiadomość"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Tytuł"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Dodaj moją sygnaturę do tego postu"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Niewidoczne dla ciebie"
-
-# #######################################<br />
-# Forum sample index page
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr "Forum dyskusyjne zespołu dla %1"
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr "Nowy wątek"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Dodaj nowy wątek do tego forum"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "To forum jest dostępna jako %1kanał RSS%2"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr "Ten wątek jest ukryty"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Ten wątek jest przyklejony i zablokowany i jeszcze go nie przeczytałeś"
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr "przyklejony/zablokowany/nieprzeczytany"
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Ten wątek jest przyklejony i jeszcze go nie przeczytałeś"
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr "przyklejony/nieprzeczytany"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Nie przeczytałeś jeszcze tego wątku i jest on zablokowany"
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "nieprzeczytany/zablokowany"
-
-# 81%
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Nie przeczytałeś jeszcze tego wątku"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr "Ten wątek jest przyklejony i zablokowany"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr "przyklejony/zablokowany"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr "Ten wątek jest przyklejony"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr "przyklejony"
-
-# #######################################
-# Forum thread
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr "Ten wątek jest zablokowany"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "zablokowany"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Przeczytałeś ten wątek"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "przeczytany"
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Pytania i odpowiedzi"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-"Porozmawiaj z ochotnikami na Skype w jednym z kilku języków. Przejdź do %"
-"1pomocy online BOINC%2."
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Wątek"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Pytania"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Dyskusja pomiędzy członkami %1"
-
-# #######################################
-# Forum sample index page
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Forum dyskusyjne %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Jeśli masz pytanie lub problem, zajrzyj do sekcji forum %1Pytania i "
-"odpowiedzi%2."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Śledzone wątki"
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr "Moderuj wiadomość"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Ukryj wiadomość"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Komercyjny spam"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Podwójna wiadomość"
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Przenieś wiadomość"
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr "ID docelowego wątku:"
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr "Zbanuj użytkownika"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Czas trwania bana"
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 godziny"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 dzień"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 tydzień"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 tygodnie"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 miesiąc"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Na zawsze"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Opcjonalne wyjaśnienie %1 Będzie zawarte w emailu do użytkownika.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "Nie masz uprawnień do moderowania tej wiadomości."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Nie można przenieść do innego typu kategorii"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Nie można przenieść do innej kategorii"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Nie masz uprawnień do zbanowania użytkownika"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Banowanie"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Użytkownik %1 został zbanowany."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Akcja nie powiodła się: możliwy problem z bazą danych"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "nie masz uprawnień"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr "Moderuj wątek '%1'"
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-"Wybierz kategorię lub podaj uzasadnienie dlaczego ukrywasz lub blokujesz "
-"wątek. Potem wciśnij OK."
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr "Aktualne forum"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Docelowe forum"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Nowy temat:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-"Tylko administratorzy projektu mogą zakładać tutaj wątki. Możesz odpowiadać "
-"w istniejących wątkach."
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Twoja wiadomość została oznaczona jako spam przez system antyspamowy "
-"Akismet. Proszę poprawić tekst wiadomości i spróbować ponownie."
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Stwórz nowy wątek"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Stwórz nowy wątek"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr "Pamiętaj aby dodać tytuł"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Pokaż ten element jako Powiadomienie w Menadżerze BOINC"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-"Stosuj to tylko dla wiadomości, które mogą zainteresować wszystkich "
-"uczestników."
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr "Ocena offline"
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Ta funkcja jest wyłączona przez projekt"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-"Musisz mieć więcej średniej lub całkowitej ilości punktów, aby wysłać "
-"wiadomość."
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr "Już oceniłeś tą wiadomość."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Wróć do wątku"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr "Opinia zapisana"
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Twoja opinia została zapisana. Dziękujemy za pomoc."
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Głos zapisany"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Twój głos został zapisany. Dziękujemy za pomoc."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr "Problem z zapisem głosu"
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Twoja wiadomość została oznaczona jako spam przez system antyspamowy "
-"Akismet. Proszę poprawić tekst wiadomości i spróbować ponownie."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Odpowiedz w wątku"
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr "Wiadomość:"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr "odpowiedź na %1ID wiadomości%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr "Odpowiedz"
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr "Dodaj moją sygnaturę do tej odpowiedzi"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-"Potrzebujesz więcej średniej lub całkowitej liczby punktów aby zgłosić "
-"wiadomość."
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr "Zgłoszenie przyjęte"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Twoje zgłoszenie zostało przyjęte. Dziękujemy."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-"Moderator zapozna się z twoim zgłoszeniem i zdecyduje co się stanie. To może "
-"zająć trochę czasu, więc bądź cierpliwy."
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr "Zgłoś wiadomość"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-"Przed zgłoszeniem wiadomości rozważ skorzystanie z systemu oceny wiadomości. "
-"Jeśli odpowiednia ilość użytkowników oceni wiadomość negatywnie zostanie "
-"ona ukryta.<br />System oceny widoczny jest na dole wiadomości."
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr "Zgłoś wiadomość"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-"Dlaczego uważasz wiadomość za obraźliwą: %1Zawrzyj tu informacje aby osoba,\n"
-" która nie czytała wątku mogła szybko odnaleźć problem.%2"
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr "Raport nie przyjęty"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-"Twój raport nie mógł zostać zarejestrowany. Odczekaj chwilę i spróbuj "
-"ponownie."
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr "Jeśli nie jest to tymczasowy problem zgłoś to do programistów projektu."
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr "%1 kanał RSS"
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr "To forum jest dostępne jako kanał RSS."
-
-# #######################################
-# General stuff (create_account_form.php and others)
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr "Opcje:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-"Zawrzyj tylko wiadomości użytkownika o ID %1 (domyślnie: wszyscy "
-"użytkownicy)."
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Zawrzyj tylko wiadomości z ostatnich %1 dni (domyślnie: 30)."
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-"Przytnij wiadomości: %1 (zawiera tylko pierwsze 256 znaków z każdej "
-"wiadomości)"
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Tylko wątki: %1 (zawiera tylko pierwsze wiadomości z każdego wątku)"
-
-# #######################################
-# Forum search features
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Szukaj na forum"
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr "Zapytanie"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Szukaj słów:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Wyświetlone zostaną wiadomości, które zawierają wszystkie słowa"
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "Przykładowo: \"zawieszanie się wygaszacza ekranu\""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr "Szukaj ID autora:"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr "Wyświetlone zostaną tylko wiadomości tego autora"
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Przykładowo: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Opcje wyszukiwania"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Limit wyszukiwania"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Szukaj maksymalnie tyle dni wstecz"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 miesięcy"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 rok"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr "Wyświetlaj tylko wiadomości z tych forów"
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Sortuj"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr "Rozpocznij wyszukiwanie"
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Wyniki wyszukiwania na forum"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Tytuły wątków pasujące do zapytania:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Wiadomości pasujące do zapytania:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-"Nie znaleziono niczego pasującego do Twojego zapytania. Możesz spróbować "
-"rozszerzyć kryteria stosując mniejszą ilość słów."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Możesz także spróbować %tego samego wyszukiwania przez Google%2."
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Wykonaj inne wyszukiwanie"
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr "Zasubskrybowano pomyślnie"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Subskrybujesz teraz %1. Będziesz powiadamiany o nowych wiadomościach."
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr "Subskrybowanie nie powiodło się"
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Aktualnie nie możesz zasubskrybować %1. Spróbuj ponownie później."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr "Wyłączenie subskrypcji powiodło się"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-"Nie subskrybujesz już %1. Nie będziesz otrzymywał powiadomień z tego wątku."
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr "Wyłączenie subskrypcji nie powiodło się"
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Aktualnie nie możesz wyłączyć subskrypcji %1. Spróbuj ponownie później."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr "Nieznana akcja subskrypcji"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "To forum nie jest widoczne dla Ciebie."
-
-# #######################################
-# Forum thread
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr "Ten wątek został ukryty przez moderatorów."
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Uzyskałem odpowiedź na moje pytanie"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Zakończ śledzenie tematu"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Śledź ten temat"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-# #######################################
-# Forum
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Posty"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-#, fuzzy
-msgid "Add friend"
-msgstr "Dodaj jako przyjaciela"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-#, fuzzy
-msgid "Cancel friendship?"
-msgstr "Anuluj przyjaźń"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "pozostałe dane konta"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Witaj w %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Zobacz lub zmień ustawiania swojego konta używając poniższych linków."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-# 94%
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Nieznana platforma"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Liczba procesorów"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Średnia punktów"
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/host_app_versions.php:72
-#, fuzzy
-msgid "Application details for host %1"
-msgstr "Aplikacje"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "Na pewno usunąć?"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Komputery"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-#, fuzzy
-msgid "name"
-msgstr "Nazwa użytkownika"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-#, fuzzy
-msgid "created"
-msgstr "Stwórz"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "Komputery"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Brak komputerów"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Wiadmość"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Żadna"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-#, fuzzy
-msgid "Computers belonging to %1"
-msgstr "Komputery na tym koncie"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Komputery"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Komputery"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Nie używaj znaczników HTML."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-# 75%
-#: ../user/html.php:27
-#, fuzzy
-msgid "bold"
-msgstr "Pogrubienie"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Stworzono"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Uczestnicz w projekcie %1 tylko na komputerach, które są twoją własnością "
-"lub do użycia których masz zgodę właściciela. Niektóre firmy i szkoły mają "
-"zabraniają wykorzystywania ich komputerów do celów takich, jak "
-"wykorzystywanie mocy obliczeniowej w projektach naukowych."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Jak projekt %1 będzie korzystał z twojego komputera?"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Gdy uruchomisz aplikację projektu %1 na swoim komputerze będzie ona "
-"wykorzystywać część mocy jego procesora, przestrzeni dysku i przepustowości "
-"łącza. Możesz swobodnie regulować, ile zasobów systemowych chcesz "
-"przeznaczyć na pracę w tym projekcie."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Praca wykonywana przez twój komputer służy celom projektu %1, które opisane "
-"są na stronie głównej. Aplikacje projektu mogą być co jakiś czas "
-"aktualizowane, bądź zmieniane."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Polityka prywatności"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Twoje konto w projekcie %1 jest identyfikowane dzięki nazwie, którą sam "
-"określasz. Nazwa uczestnika może być wyświetlana na stronie internetowej "
-"projektu wraz z podsumowaniem pracy, którą dla potrzeb tego projektu wykonał "
-"twój komputer. Jeżeli jednak chcesz pozostać anonimowy, możesz wybrać "
-"nazwę, która nie zdradzi twojej tożsamości."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Gdy bierzesz udział w projekcie %1, informacje o twym komputerze, takie jak "
-"rodzaj procesora, ilość pamięci operacyjnej itp. będą zapisane przez projekt "
-"i posłużą określeniu, jakiego rodzaju zadania należy przydzielić twojemu "
-"komputerowi. Dane te będą także wyświetlone na stronie projektu $PROJECT, "
-"lecz może je ukryć, jeśli tego chcesz. Zapewniamy, że nie będą wyświetlone "
-"informacje, które umożliwiłoby rozpoznanie lokacji twojego komputera (np. "
-"nazwa domeny czy adres sieciowy)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"By uczestniczyć w projekcie %1, musisz podać adres email, na który chcesz "
-"otrzymywać wiadomości odnośnie projektu. Nie będzie on ujawniony na stronie "
-"internetowej projektu, ani użyczany jakimkolwiek organizacjom. Projekt %1 "
-"może przysyłać Ci co jakiś czas wiadomości z nowinkami dotyczącymi tego "
-"projektu, możesz jednak z nich zrezygnować w każdej chwili."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Czy uruchamianie aplikacji projektu %1 jest bezpieczne?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Za każdym razem, gdy pobierasz z sieci program, ryzykujesz: może on zawierać "
-"niebezpieczne błędy, albo serwer, z którego go pobierasz, może zostać "
-"zainfekowany wirusem czy trojanem. W projekcie %1 staramy się sprowadzić to "
-"ryzyko do minimum, aby zapewnić uczestnikom jak najwyższy poziom "
-"bezpieczeństwa."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Aplikacje uruchamiane przez projekt %1 mogą powodować przegrzewanie się "
-"niektórych komputerów. Jeśli tak się stanie, zatrzymaj zadania pochodzące z "
-"tego projektu lub skorzystaj z %2dodatkowych programów%3, które międzyinnymi "
-"ograniczają wykorzystywanie procesora twojego komputera, przez co "
-"ograniczają wydzielane przez niego ciepło."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"Projekt %1 został stworzony w %2. Platformę BOINC stworzono na Uniwersytecie "
-"Kalifornijskim w Berkeley."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Odpowiedzialność"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"Projekt %1 oraz %2 nie biorą odpowiedzialności za uszkodzenie twojego "
-"komputera, utratę danych czy inne wypadki, które mogą wystąpić w skutek "
-"uczestnictwa w tym projekcie."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Inne projekty BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Tak jak %1 wiele innych projektów korzysta z platformy BOINC. Rozważ także "
-"uczestnictwo w innych projektach przetwarzania rozproszonego. W ten sposób "
-"twój komputer może wykonywać pożyteczne dla nauki obliczenia nawet jeśli "
-"projekt %1 nie ma dla niego w danej chwili żadnych zadań."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Inne projekty nie mają związku z projektem %1, nie możemy więc odpowiadać za "
-"jakość ich zabezpieczeń czy naturę prowadzonych badań. Uczestniczysz w nich "
-"na własną odpowiedzialność oraz ryzyko."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-#, fuzzy
-msgid "Email address:"
-msgstr "Adres email"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-#, fuzzy
-msgid "Password:"
-msgstr "Hasło"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-# 76%
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Przetwarzanie"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Uczestnicz w projekcie %1 wyłącznie na komputerach autoryzowanych."
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Oczekujące punkty"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Statystyki"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "Średnia punktów"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Oczekujące punkty"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Twoja wiadomość została wysłana."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nie masz żadnych prywatnych wiadomość."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Nadawca i data"
-
-# 76%
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Komputery na tym koncie"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Komputery na tym koncie"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Nadawca"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Musisz wypełnić wszystkie pola, aby wysłać prywatną wiadomość"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Nie można znaleźć użytkownika z identyfikatorem %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Nie można znaleźć użytkownika o nazwie %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"Jest kilku użytkowników o nazwie %1; aby wysłać wiadomość wpisz "
-"identyfikator użytkownika"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Użytkownik %1 (ID: %2) nie akceptuje prywatnych wiadomości od Ciebie."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Na pewno chcesz zablokować użytkownika %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Na pewno chcesz zablokować możliwość wysyłania prywatnych wiadomości do "
-"Ciebie przez użytkownika %1?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Pamiętaj, że możesz zablokować tylko określoną liczbę użytkowników."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Zablokowanych użytkowników możesz odblokować na stronie ustawień forum "
-"dyskusyjnego."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nie, anuluj"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-#, fuzzy
-msgid "no such user"
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Użytkownik %1 został zablokowany"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Użytkownik %1 nie może teraz wysyłać do Ciebie prywatnych wiadomości."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Aby odblokować, odwiedź stronę 1%ustawienia forum dyskusyjnego%2"
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-#, fuzzy
-msgid "Remove preferences"
-msgstr "Ustawienia %1"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Uczestnik dnia"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Zobacz %1galerię zdjęć uczestnika%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Przeglądaj profile%1po krajach%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Przeglądaj %1losowo wybrane%2 profile, %3losowo wybrane ze zdjęciami%2 lub %"
-"4losowo wybrane bez zdjęć%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Brak profili"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Brak profili odpowiadającym wybranym kryteriom."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-#, fuzzy
-msgid "Profiles containing '%1'"
-msgstr "Tematy zawierające '%1'"
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Identyfikator uczestnika"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Średnia liczba punktów"
-
-#: ../user/profile_search_action.php:54
-#, fuzzy
-msgid "No profiles found containing '%1'"
-msgstr "Tematy zawierające '%1'"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-# #######################################
-# Apps page (apps.php)
-#: ../user/server_status.php:423 ../user/workunit.php:40
-#, fuzzy
-msgid "application"
-msgstr "Aplikacje"
-
-# 83%
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "Niewysłany"
-
-# 90%
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "W trakcie"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Komputery"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-#, fuzzy
-msgid "Find a team"
-msgstr "znajdź zespół"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-#, fuzzy
-msgid "Create a new team"
-msgstr "Stwórz nowy temat"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-#, fuzzy
-msgid "No such team"
-msgstr "Nie ma takiego zespołu."
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-#, fuzzy
-msgid "no such team"
-msgstr "Nie ma takiego zespołu."
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-#, fuzzy
-msgid "Create a team"
-msgstr "Stwórz nowy temat"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-# #######################################<br />
-# Forum sample index page
-#: ../user/team_forum.php:40
-#, fuzzy
-msgid "Create a message board for %1"
-msgstr "Forum dyskusyjne %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-# 86%
-#: ../user/team_forum.php:147
-#, fuzzy
-msgid "Update failed"
-msgstr "Aktualizacja nie powiodła się: "
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "Informacje o zespole"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-# 90%
-#: ../user/team_join_action.php:40
-#, fuzzy
-msgid "Joined %1"
-msgstr "Dołączył: %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-# 90%
-# 77%
-#: ../user/team_join_form.php:32
-#, fuzzy
-msgid "Join %1"
-msgstr "Dołączył: %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-# 75%
-#: ../user/team_manage.php:34
-#, fuzzy
-msgid "text"
-msgstr "Następny"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-#, fuzzy
-msgid "Quit Team"
-msgstr "Opuść zespół"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-# 85%
-#: ../user/team_remove_inactive_form.php:39
-#, fuzzy
-msgid "Remove?"
-msgstr "Usuń"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-#, fuzzy
-msgid "Team search results"
-msgstr "Wyniki wyszukiwania na forum"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Najlepsze komputery"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Najlepsze zespoły"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Uczestniczy od"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-#, fuzzy
-msgid "Decreasing average credit"
-msgstr "Średnia liczba punktów"
-
-#: ../user/user_search.php:69
-#, fuzzy
-msgid "Decreasing total credit"
-msgstr "Średnia liczba punktów"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-#, fuzzy
-msgid "User search results"
-msgstr "Wyniki wyszukiwania na forum"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-#, fuzzy
-msgid "Team:"
-msgstr "Zespół"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-#, fuzzy
-msgid "No such user."
-msgstr "Użytkownik nie istnieje"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Słaby klucz konta"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-# 81%
-#: ../user/workunit.php:35
-#, fuzzy
-msgid "Workunit %1"
-msgstr "Statystyki"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Oczekuje"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
-
-#~ msgid "Error:"
-#~ msgstr "Błąd:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Tworzenie kont jest wyłączone"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Możliwość tworzenia kont w projekcie została zablokowana.\n"
-#~ "Spróbuj ponownie później."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "Tworzenie konta jest obecnie wyłączone. Spróbuj ponownie później."
-
-#~ msgid ""
-#~ "This project hasn\\'t created an email message - please notify its "
-#~ "administrators"
-#~ msgstr ""
-#~ "Ten projekt nie przygotował wiadomości email - powiadom jego administratorów"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Preferencje te mają zastosowanie we wszystkich projektach BOINC, w których "
-#~ "bierzesz udział.<br>\n"
-#~ "Na komputerach biorących udział w wielu projektach, ostatnia modyfikacja "
-#~ "ustawień będzie zastosowana."
-
-#, fuzzy
-#~ msgid "No such task"
-#~ msgstr "Nie ma takiego zespołu."
-
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Komputer jest podłączony do Internetu co około %1 Jeśli jest stale "
-#~ "podłączony wpisz 0 lub pozostaw puste. %2 BOINC będzie starał się utrzymać "
-#~ "pracę na co najmniej tyle czasu (max 10 dni). %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Zachowaj wystarczająco zadań na dodatkowe"
-
-#~ msgid "Update failed: "
-#~ msgstr "Aktualizacja nie powiodła się: "
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Pozwala na %1ograniczony dostęp%2 do twojego konta"
-
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "Nie używaj tego formularza. Uruchom BOINC, wybierz Dodaj projekt i podaj "
-#~ "adres email i hasło."
-
-#~ msgid "Do not reorder sticky posts"
-#~ msgstr "Nie zmieniaj kolejności postów przyklejonych"
-
-#~ msgid "If a thread contains more than this number of posts"
-#~ msgstr "Jeśli wątek zawiera więcej postów niż"
-
-#~ msgid "only display the first one and this many of the last ones"
-#~ msgstr "wyświetl tylko pierwszy i taką ilość ostatnich"
-
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Twoje zgłoszenie zostało przyjęte. Dziękujemy."
-
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Twój 'słaby klucz konta' pozwala dołączyć komputery do twojego konta w tym "
-#~ "projekcie bez dawania przywilejów do zalogowania się na lub dokonania "
-#~ "jakichkolwiek zmian na twoim koncie."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Ten mechanizm działa jedynie w projektach, które uaktualniły swoje "
-#~ "oprogramowanie na serwerach 7 grudnia 2007 lub później."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Twój słaby klucz konta dla tego projektu to:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Aby użyć słaby klucz konta na wybranym komputerze znajdź lub stwórz 'plik "
-#~ "konta' dla tego projektu. Plik ten ma nazwę według formuły "
-#~ "<b>konto_ADRES_URL_PROJEKTU.xml</b>. Plik konta dla projektu %1 to <b>%"
-#~ "2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr ""
-#~ "Stwórz ten plik, jeśli jest to potrzebne. Jego zawartość powinna wyglądać "
-#~ "tak:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Twój słaby klucz konta jest generowany na podstawie twojego hasła. Jeśli "
-#~ "zmienisz swoje hasło twój słaby klucz konta także ulegnie zmianie, a "
-#~ "poprzedni słaby klucz konta stanie się nieprawidłowy."
-
-#~ msgid "Account key"
-#~ msgstr "Klucz konta"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Pozwala na pełen dostęp do twojego konta"
-
-#~ msgid "Last %1"
-#~ msgstr "Poprzednia %1"
-
-# ###################################
-# Language: Polish [rev. 1.40 (12.09.2007/18:15)]
-# FileID  : $Id: pl.po 14266 2007-11-20 06:29:21Z JensSeidler $
-# Author  : Bartosz Kaszubowski
-# Email   : gosimek at gmail.com
-# #########################################
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Przydział zasobów i grafika"
-
-#~ msgid "Provides"
-#~ msgstr "Pozwala na"
-
-#~ msgid "limited access"
-#~ msgstr "ograniczony dostęp"
-
-#~ msgid "to your account"
-#~ msgstr "do twojego konta"
-
-#~ msgid "Mark as unread"
-#~ msgstr "Oznacz jako nieprzeczytane"
-
-#~ msgid "With selected"
-#~ msgstr "Z wybranych"
-
-#~ msgid ""
-#~ "Are you sure you want to delete the message with subject "%1" "
-#~ "(sent by %2 on %3)?"
-#~ msgstr ""
-#~ "Jesteś pewny, że chcesz usunąć wiadomość o tytule "%1" (wysłaną "
-#~ "%3 przez użytkownika %2)?"
-
-#~ msgid "Yes, delete"
-#~ msgstr "Tak, usuń"
-
-#~ msgid "USER_TABLE_NAME"
-#~ msgstr "Nazwa"
-
-#~ msgid "Posts containing '%1'"
-#~ msgstr "Posty zawierające '%1'"
-
-#~ msgid "No titles containing '%1' could be found."
-#~ msgstr "Nie znaleziono tematów zawierających '%1'."
-
-#~ msgid "No posts containing '%1' could be found."
-#~ msgstr "Nie znaleziono postów zawierających '%1'."
-
-#~ msgid "Create new"
-#~ msgstr "Napisz nową"
-
-#~ msgid "You have no unread private messages."
-#~ msgstr "Nie masz nowych prywatnych wiadomości."
-
-# ########################################
-# Links from the main page
-# ########################################
-#~ msgid "LINKS_QA"
-#~ msgstr "Pytania i odpowiedzi"
-
-#~ msgid "administrative functions"
-#~ msgstr "funkcje zarządzania"
-
-#~ msgid "General preferences"
-#~ msgstr "Ustawienia główne"
-
-#~ msgid "View or edit"
-#~ msgstr "Zobacz lub zmień"
-
-#~ msgid "control resource share and customize graphics"
-#~ msgstr "kontrolują przydział zasobów i indywidualne ustawiania projektu"
-
-#~ msgid "Message board preferences"
-#~ msgstr "Ustawienia forum"
-
-#~ msgid "configure features and appearance of message boards"
-#~ msgstr "zawierają wszystkie ustawiania i funkcje związane z forum"
-
-#~ msgid "Account number"
-#~ msgstr "Numer konta"
-
-#~ msgid "Used in URLs"
-#~ msgstr "używany w linkach"
diff --git a/locale/pl/BOINC-Setup.mo b/locale/pl/BOINC-Setup.mo
index 6cb10a2..3c7ba96 100644
Binary files a/locale/pl/BOINC-Setup.mo and b/locale/pl/BOINC-Setup.mo differ
diff --git a/locale/pl/BOINC-Setup.po b/locale/pl/BOINC-Setup.po
index 0c84959..264dd41 100644
--- a/locale/pl/BOINC-Setup.po
+++ b/locale/pl/BOINC-Setup.po
@@ -1,41 +1,47 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Rafał Kaźmierczak <prometh.dragu at gmail.com>, 2015
+# Wiktor Jezioro <wikjezioro at op.pl>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-03-24 19:31+0000\n"
-"Last-Translator: Rafał Kaźmierczak <prometh.dragu at gmail.com>\n"
-"Language-Team: Polish (http://www.transifex.com/projects/p/boinc/language/pl/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-18 15:57+0000\n"
+"Last-Translator: Wiktor Jezioro <wikjezioro at op.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/boinc/boinc/language/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Niestety, ta wersja %s wymaga systemu w wersji 10.5 lub wyższej."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Przepraszamy, ta wersja %s wymaga wersji systemu 10.6 lub wyższej"
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Tak"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Nie"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Czy BOINC ma działać nawet kiedy żaden użytkownik nie jest zalogowany?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -43,26 +49,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Użytkownicy, którzy mają uprawnienia administratora na tym komputerze będą automatycznie mogli uruchomić i kontrolować %s.\n\nCzy chcesz, żeby użytkownicy bez uprawnień administratora także mogli uruchamiać i kontrolować %s na tym Macu?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Czy chcesz ustawić %s jako wygaszacz ekranu dla wszystkich użytkowników %s na tym Macu?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Błąd pozwolenia po ponownym uruchomieniu"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Usunięcie może potrwać kilka minut.\nProsimy o cierpliwość."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -70,27 +77,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Czy na pewno chcesz całkowicie usunąć %s ze swojego komputera?\n\nSpowoduje to usunięcie plików wykonywalnych, ale nie naruszy plików danych %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Anulowano: nie naruszono %s."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Wystąpił błąd: kod błędu %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "nazwa użytkownika"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Czy chcesz również usunąć VirtualBox ze swojego komputera?\n(VirtualBox został zainstalowany wraz z BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -102,17 +109,17 @@ msgid ""
 "\"%s\"."
 msgstr "Usuwanie zakończone.\n\nAby usunąć następujące pozostałe pliki użyj Wyszukiwania:\nkatalog \"%s\"\n\ndla każdego użytkownika, plik\n\"%s\""
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Wprowadź swoje hasło administratora żeby całkowicie usunąć %s z twojego komputera.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Kontynuuj..."
diff --git a/locale/pl/BOINC-Web.po b/locale/pl/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/pt_BR/BOINC-Client.mo b/locale/pt_BR/BOINC-Client.mo
index 4001f25..ebb52da 100644
Binary files a/locale/pt_BR/BOINC-Client.mo and b/locale/pt_BR/BOINC-Client.mo differ
diff --git a/locale/pt_BR/BOINC-Client.po b/locale/pt_BR/BOINC-Client.po
index d70a597..75c4f57 100644
--- a/locale/pt_BR/BOINC-Client.po
+++ b/locale/pt_BR/BOINC-Client.po
@@ -1,163 +1,179 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Adriano Pais Rodrigues <adrikei at gmail.com>, 2015
 # Anselmo Rocha <agr9090 at gmail.com>, 2015
+# Wiri Marcolan Kamei <wirimk at hotmail.com>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-09-02 16:15+0000\n"
-"Last-Translator: Adriano Pais Rodrigues <adrikei at gmail.com>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-13 22:50+0000\n"
+"Last-Translator: Wiri Marcolan Kamei <wirimk at hotmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/boinc/boinc/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Mensagem do gerente da conta"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Mensagem do servidor"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Algumas tarefas precisam de mais memória que o permitido por suas preferências. Por favor confira as preferências."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Impossível gravar arquivo de estado; verifique permissões de diretório."
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "A variável de ambiente HTTP_PROXY deve especificar um proxy HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Você usou a URL errada para este projeto. Quando for conveniente, remova este projeto e, então, adicione %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Este projeto está usando uma URL antiga. Quando possível, remova o projeto, depois adicione %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Erro de sintaxe em app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "O arquivo indicado no app_info.xml não existe:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Uma nova versão do BOINC está disponível."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Download"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "não pode ser usado para computação CUDA ou OpenCL com driver CUDA 6.5 ou posterior"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Texto inesperado em cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Rótulo não reconhecido em cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Rótulo inicial inexistente em cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Erro nas opções do cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Rótulo final inexistente em cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Para corrigir isto, você pode"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "alterar Preferências do Projeto on web site do projeto"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "remover exclusões do GPU em seu arquivo cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "altere suas opões no web site de seu gerenciador de conta"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Chave de conta inválida ou inexistente. Para corrigir, remova e adicione este projeto."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Chave de assinatura de código inválida. Para corrigir, remova e adicione este projeto."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "O projeto teve sua chave de segurança alterado. Por favor, remova e insira novamente este projeto."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Este projeto não suporta sistema operacional"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Este projeto não suporta o tipo de CPU"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Seu software cliente BOINC é muito antigo. Por favor, instale a versão atual."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Este projeto não suporta computadores do tipo"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Atualize para o driver mais recente para processar tarefas utilizando o GPU de seu computador"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Atualize para o driver mais recente para utilizar todos os aplicativos deste projeto para GPU"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "É necessário uma versão mais recente do BOINC para utilizar seu GPU NVIDIA; por favor, atualize para a versão atual."
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Uma GPU %s é necessária para rodar tarefas para este projeto"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Nenhuma tarefa disponível para as aplicações que você selecionou."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Seu computador não é suportado por este projeto"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "É necessário uma versão mais recente do BOINC; por favor, instale a versão atual"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Tarefas para %s estão disponíveis, mas suas preferências não estão ajustadas para aceitá-las."
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Nome de aplicativo desconhecido em app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Seu arquivo app_info.xml não tem uma versão utilizável de"
diff --git a/locale/pt_BR/BOINC-Drupal.po b/locale/pt_BR/BOINC-Drupal.po
new file mode 100644
index 0000000..c92a436
--- /dev/null
+++ b/locale/pt_BR/BOINC-Drupal.po
@@ -0,0 +1,1754 @@
+# LANGUAGE translation of PROJECT
+# Copyright (c) YEAR NAME <EMAIL at ADDRESS>
+# 
+# Translators:
+# Anderson Fachini <anderson.dkfachini at gmail.com>, 2016
+# Rogério Cunha <rogerioabreu.cunha at gmail.com>, 2016
+# Wiri Marcolan Kamei <wirimk at hotmail.com>, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-10-25 21:07+0000\n"
+"Last-Translator: Wiri Marcolan Kamei <wirimk at hotmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/boinc/boinc/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "Reject profile"
+msgstr "Rejeitar perfil"
+
+msgid "Ban user"
+msgstr "Banir usuário"
+
+msgid "I'm new"
+msgstr "Sou novo"
+
+msgid "I'm a BOINC user"
+msgstr "Sou um membro do BOINC"
+
+msgid "Authenticator login"
+msgstr "Login autenticador"
+
+msgid ""
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Você deve ganhar mais @count créditos para postar comentários neste site."
+
+msgid "Generic"
+msgstr "Genérico"
+
+msgid "Home"
+msgstr "Início"
+
+msgid "Work"
+msgstr "Trabalho"
+
+msgid "School"
+msgstr "Escola"
+
+msgid "yes"
+msgstr "sim"
+
+msgid "no"
+msgstr "não"
+
+msgid "Resource settings"
+msgstr "Configurações dos recursos"
+
+msgid "Resource share"
+msgstr "Compartilhamento de recursos"
+
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina a porporção dos recursos do seu computador alocados para este projeto. Exemplo: se você participa de dois projetos da BOINC com cota de recursos de 100 e 200, o primeiro terá 1/3 dos seus recursos e o segundo terá 2/3."
+
+msgid "Use CPU"
+msgstr "Usar CPU"
+
+msgid "Enforced by version @number"
+msgstr "Imposto pela versão @number"
+
+msgid "Use NVIDIA GPU"
+msgstr "Usar GPU NVIDIA"
+
+msgid "Use ATI GPU"
+msgstr "Usar GPU ATI"
+
+msgid "Use INTEL GPU"
+msgstr "Usar GPU Intel"
+
+msgid "Beta settings"
+msgstr "Configurações beta"
+
+msgid "Run test applications?"
+msgstr "Executar aplicações de teste?"
+
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Isto nos ajuda a desenvolver aplicações, mas pode causar falha em trabalhos do seu computador"
+
+msgid " Default value: @default"
+msgstr "Valor padrão: @default"
+
+msgid "Applications"
+msgstr "Aplicações"
+
+msgid "Default set"
+msgstr "Ajuste padrão"
+
+msgid "Set used for new computers"
+msgstr "Ajuste usado para novos computadores"
+
+msgid "Save changes"
+msgstr "Salvar alterações"
+
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgid "Show comparison view"
+msgstr "Mostrar modo de comparação"
+
+msgid "Comment form"
+msgstr "Formulário de comentários"
+
+msgid "Logout"
+msgstr "Logout"
+
+msgid "Join now"
+msgstr "Participar agora"
+
+msgid "Account"
+msgstr "Conta"
+
+msgid "Server status"
+msgstr "Status do servidor"
+
+msgid "Language"
+msgstr "Idioma"
+
+msgid "Create content"
+msgstr "Criar conteúdo"
+
+msgid "General settings"
+msgstr "Configurações gerais"
+
+msgid "Name"
+msgstr "Nome"
+
+msgid "Time zone"
+msgstr "Fuso horário"
+
+msgid "Notification settings"
+msgstr "Configurações de notificações"
+
+msgid "Receive email notification for private messages?"
+msgstr "Receber notificação por email de mensagens privadas?"
+
+msgid "Receive email notification for friend requests?"
+msgstr "Receber notificação por email de pedidos de amizade?"
+
+msgid "Language settings"
+msgstr "Configurações de idioma"
+
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Idioma padrão desta conta para emails e idioma preferido para a apresentação do site."
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Se você possui um <a href=\"@gravatar-check\">valid Gravatar</a> associado com seu endereço de e-mail, ele será usado como foto de seu perfil."
+
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Seu Gravatar não será mostrado se você fizer upload de uma foto."
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Se você possui um <a href=\"@gravatar-check\">valid Gravatar</a> associado com seu endereço de e-mail, use como foto de seu perfil."
+
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Seu Gravatar não será mostrado se você fizer upload de um avatar."
+
+msgid "Avatar settings"
+msgstr "Configurações de avatar"
+
+msgid "This is not available until your profile is set up."
+msgstr "Ainda não está disponível enquanto seu perfil não estiver pronto."
+
+msgid "Create a profile"
+msgstr "Criar um perfil"
+
+msgid "Upload an avatar"
+msgstr "Fazer upload de avatar"
+
+msgid "Forum settings"
+msgstr "Configurações do forum"
+
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "Nos tópicos de discussão, mostrar no máximo @comments_per_page"
+
+msgid "comments per page"
+msgstr "comentários por página"
+
+msgid "Sort comments in discussions"
+msgstr "Ordenar comentários em discussões"
+
+msgid "Newest post first"
+msgstr "Posts recentes primeiro"
+
+msgid "Oldest post first"
+msgstr "Postagem mais antiga primeiro"
+
+msgid "Signature"
+msgstr "Assinatura"
+
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Sua assinatura será exibida publicamente no fim de seus comentários."
+
+msgid "Hide signatures in forums"
+msgstr "Esconder assinaturas em forums"
+
+msgid "Privacy settings"
+msgstr "Configurações de privacidade"
+
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Você permite que @project e sua equipe (se tiver) te enviem email?"
+
+msgid "Should @project show your computers on its web site?"
+msgstr "Pode o @project mostrar seus computadores em seu web site?"
+
+msgid "Id"
+msgstr "Id"
+
+msgid "Founder"
+msgstr "Fundador"
+
+msgid "Country"
+msgstr "País."
+
+msgid "Recent average credit"
+msgstr "Média recente de créditos"
+
+msgid "Members"
+msgstr "Membros"
+
+msgid "Total Credit"
+msgstr "Créditos totais"
+
+msgid "User ID"
+msgstr "ID de usuário"
+
+msgid "User"
+msgstr "Usuário"
+
+msgid "Admin since"
+msgstr "Administrador desde"
+
+msgid "Team ID"
+msgstr "ID da equipe"
+
+msgid "User joined"
+msgstr "Usuário inscrito"
+
+msgid "Timestamp"
+msgstr "Registro de hora"
+
+msgid "Account Key"
+msgstr "Chave da conta"
+
+msgid "Member since"
+msgstr "Membro desde"
+
+msgid "CPID"
+msgstr "CPID"
+
+msgid "Email Address"
+msgstr "Endereço de E-mail."
+
+msgid "Password Hash"
+msgstr "Hash de senha"
+
+msgid "Postal Code"
+msgstr "Código Postal"
+
+msgid "Send Email"
+msgstr "Enviar email"
+
+msgid "Show Hosts"
+msgstr "Visualizar Hosts"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Computer ID"
+msgstr "ID do computador"
+
+msgid "Location"
+msgstr "Local"
+
+msgid "While BOINC running, % of time work is allowed"
+msgstr "Enquanto o BOINC roda, % of time de trabalho é permitido"
+
+msgid "Average turnaround time"
+msgstr "Tempo médio de devolução"
+
+msgid "Created"
+msgstr "Criado"
+
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "Enquanto o BOINC roda, % do tempo o host tem conexão à Internet"
+
+msgid "Average CPU efficiency"
+msgstr "Eficiência média do CPU"
+
+msgid "Free disk space"
+msgstr "Espaço livre do disco"
+
+msgid "Total disk space"
+msgstr "Espaço total do disco"
+
+msgid "Task duration correction factor"
+msgstr "Fator de correção de duração da tarefa"
+
+msgid "Avg. credit"
+msgstr "Média de crédito"
+
+msgid "External IP address"
+msgstr "Endereço de IP externo"
+
+msgid "Cross project ID"
+msgstr "ID de projeto cruzado"
+
+msgid "Last IP address"
+msgstr "Último endereço de IP"
+
+msgid "Cache"
+msgstr "Cache"
+
+msgid "Memory"
+msgstr "Memória"
+
+msgid "Swap space"
+msgstr "Espaço de troca"
+
+msgid "Maximum daily WU quota per CPU"
+msgstr "Quota máxima diária de UT por CPU"
+
+msgid "Average download rate"
+msgstr "Taxa média de download"
+
+msgid "Average upload rate"
+msgstr "Taxa média de upload"
+
+msgid "Same IP address count"
+msgstr "Mesma contagem de endereço IP"
+
+msgid "% of time BOINC client is running"
+msgstr "% do tempo com cliente BOINC rodando"
+
+msgid "Operating system"
+msgstr "Sistema operacional"
+
+msgid "Operating system version"
+msgstr "Versão do sistema operacional"
+
+msgid "Measured floating point speed"
+msgstr "Velocidade de ponto flutuante medida"
+
+msgid "Measured integer speed"
+msgstr "Velocidade de inteiro medida"
+
+msgid "CPU model"
+msgstr "Modelo de CPU"
+
+msgid "Number of processors"
+msgstr "Número de processadores"
+
+msgid "CPU"
+msgstr "CPU"
+
+msgid "Number of times client has contacted server"
+msgstr "Número de vezes em que o cliente fez contato com o servidor"
+
+msgid "Last contact"
+msgstr "Último contato"
+
+msgid "Serial number"
+msgstr "Número de série"
+
+msgid "Timezone"
+msgstr "Fuso horário"
+
+msgid "Platform ID"
+msgstr "ID da plataforma"
+
+msgid "Task ID"
+msgstr "ID da tarefa"
+
+msgid "Workunit ID"
+msgstr "ID da unidade de trabalho"
+
+msgid "Host ID"
+msgstr "ID do Host"
+
+msgid "Application ID"
+msgstr "ID da aplicação"
+
+msgid "Application version"
+msgstr "Versão da aplicação"
+
+msgid "Claimed credit"
+msgstr "Créditos requeridos"
+
+msgid "Client state"
+msgstr "Estado do cliente"
+
+msgid "CPU time"
+msgstr "Tempo de CPU"
+
+msgid "Run time"
+msgstr "Tempo de execução"
+
+msgid "Exit status"
+msgstr "Status de saída"
+
+msgid "Granted credit"
+msgstr "Crédito concedido"
+
+msgid "Outcome"
+msgstr "Saída"
+
+msgid "Received time"
+msgstr "Tempo recebido"
+
+msgid "Report deadline"
+msgstr "Prazo de relatório"
+
+msgid "Sent"
+msgstr "Enviado"
+
+msgid "Server state"
+msgstr "Estado do servidor"
+
+msgid "Stderr out"
+msgstr "Stderr transmitido"
+
+msgid "Validation state"
+msgstr "Estado de validação"
+
+msgid "App ID"
+msgstr "ID do App"
+
+msgid "Canonical credit"
+msgstr "Crédito canônico"
+
+msgid "Canonical result ID"
+msgstr "ID do resultado canônico"
+
+msgid "Created time"
+msgstr "Tempo criado"
+
+msgid "Error mask"
+msgstr "Máscara de erro"
+
+msgid "Minimum quorum"
+msgstr "Quorum mínimo"
+
+msgid "Max error tasks"
+msgstr "Máximo de erros em tarefas"
+
+msgid "Max success tasks"
+msgstr "Máximo de tarefas sucedidas"
+
+msgid "Max total tasks"
+msgstr "Total máximo de tarefas"
+
+msgid "Needs validation"
+msgstr "Necessita de validação"
+
+msgid "Initial replication"
+msgstr "Replicação inicial"
+
+msgid "Target number of results"
+msgstr "Número desejado de resultados"
+
+msgid "Application version ID"
+msgstr "ID da versão do aplicativo"
+
+msgid "Plan class"
+msgstr "Classe de plano"
+
+msgid "Version number"
+msgstr "Número da versão"
+
+msgid "Computer"
+msgstr "Computador"
+
+msgid "App version ID"
+msgstr "ID da versão do App"
+
+msgid "Consecutive valid tasks"
+msgstr "Tarefas válidas consecutivas"
+
+msgid "Number of tasks completed"
+msgstr "Número de tarefas completas"
+
+msgid "Max tasks per day"
+msgstr "Máximo de tarefas por dia"
+
+msgid "Number of tasks today"
+msgstr "Número de tarefas hoje"
+
+msgid "Manage subscriptions"
+msgstr "Gerenciar subscrições"
+
+msgid "Avg credit"
+msgstr "Média de crédito"
+
+msgid "Total credit"
+msgstr "Créditos totais"
+
+msgid "More"
+msgstr "Mais"
+
+msgid "Tasks"
+msgstr "Tarefas"
+
+msgid "Computers hidden"
+msgstr "Computadores ocultados"
+
+msgid "This user has chosen not to show information about their computers."
+msgstr "Este usuário optou por não mostrar as informações sobre seus computadores."
+
+msgid "no projects..."
+msgstr "não há projetos..."
+
+msgid "Moderation"
+msgstr "Moderação"
+
+msgid "Unvetted profiles"
+msgstr "Perfis não examinados"
+
+msgid "Inbox"
+msgstr "Caixa de entrada"
+
+msgid "Compose new"
+msgstr "Nova mensagem"
+
+msgid "Posts contributed"
+msgstr "Postagens contribuídas"
+
+msgid "Friends (@count)"
+msgstr "Amigos (@count)"
+
+msgid "Welcome back!"
+msgstr "Bem-vindo de volta!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home é um programa que usa o tempo livre do seu computador para rodar um protetor de tela para procurar por ondas gravitacionais vindas de estrelas de nêutron em rotação (também chamadas de pulsares) usando dados obtidos pelo detector de ondas gravitacionais LIGO."
+
+msgid "Learn more"
+msgstr "Saiba mais"
+
+msgid "View account"
+msgstr "Ver conta"
+
+msgid "User of the day"
+msgstr "Usuário do dia"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Mais de 500,000 voluntários e contando."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Créditos por dia"
+
+msgid "View user profile."
+msgstr "Ver perfil do usuário."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Perfil aguardando aprovação do moderador"
+
+msgid "Background"
+msgstr "Plano de fundo"
+
+msgid "Opinion"
+msgstr "Opinião"
+
+msgid "Enter your password to save changes"
+msgstr "Insira sua senha para salvar as alterações"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Insira sua senha atual se estiver trocando seu\nendereço de email ou senha."
+
+msgid "BOINC user ID"
+msgstr "ID de usuário BOINC"
+
+msgid "Drupal user ID"
+msgstr "ID de usuário Drupal"
+
+msgid "Account key"
+msgstr "Chave da conta"
+
+msgid "Weak account key"
+msgstr "Chave da conta fraca"
+
+msgid "Cross-project ID"
+msgstr "ID de projeto-cruzado"
+
+msgid "Change password"
+msgstr "Trocar senha"
+
+msgid "Presets"
+msgstr "Valores preestabelecidos"
+
+msgid "Standard"
+msgstr "Padrão"
+
+msgid "Maximum"
+msgstr "Máximo"
+
+msgid "Green"
+msgstr "Verde"
+
+msgid "Minimum"
+msgstr "Mínimo"
+
+msgid "Custom"
+msgstr "Customizado"
+
+msgid "Update preset"
+msgstr "Atualizar valor preestabelecido"
+
+msgid "Advanced settings"
+msgstr "Configurações avançadas"
+
+msgid "Processor usage"
+msgstr "Uso do processador"
+
+msgid "Run while computer is on battery power?"
+msgstr "Rodar quando o computador estiver na bateria?"
+
+msgid "Only applies to portable computers"
+msgstr "Apenas aplicável a computadores portáteis"
+
+msgid "Run while computer is in use?"
+msgstr "Rodar com o computador em uso?"
+
+msgid "Run GPU work while computer is in use?"
+msgstr "Rodar trabalhos na GPU com o computador em uso?"
+
+msgid "\"In use\" means mouse/keyboard activity in last"
+msgstr "\"Em uso\" significa aticidade do mouse/teclado nos últimos"
+
+msgid "minutes"
+msgstr "minutos"
+
+msgid "Suspend work if no mouse/keyboard activity in last"
+msgstr "Suspender execução se não houver atividade do mouse/teclado nos útlimos"
+
+msgid "Needed to enter low-power mode on some computers"
+msgstr "Necessário para entrar em modo de pouca-energia em alguns computadores"
+
+msgid "Suspend work if CPU usage is above"
+msgstr "Suspender execução se o uso do CPU ultrapassar"
+
+msgid "0 means no restriction. Enforced by version @number"
+msgstr "0 significa sem restrição. Imposto pela versão @number"
+
+msgid "Do work only between the hours of:"
+msgstr "Realizar computação apenas entre:"
+
+msgid "and"
+msgstr "e"
+
+msgid "No restriction if equal"
+msgstr "Sem restrição se igual"
+
+msgid "Leave tasks in memory while suspended?"
+msgstr "Deixar tarefas na memória enquanto suspenso?"
+
+msgid "Suspended tasks will consume swap space if \"yes\""
+msgstr "Tarefas suspensas consumirão área de troca se \"sim\""
+
+msgid "Switch between tasks every"
+msgstr "Alternar entre tarefas a cada"
+
+msgid "Recommended: @period minutes"
+msgstr "Recomendado: @period minutos"
+
+msgid "On multiprocessors, use at most"
+msgstr "Com multiprocessadores, usar no máximo"
+
+msgid "processors"
+msgstr "processadores"
+
+msgid "Set to 0 for no limit"
+msgstr "Deixe 0 para não ter limite"
+
+msgid "% of the processors"
+msgstr "% dos processadores"
+
+msgid "Use at most"
+msgstr "Usar ao máximo"
+
+msgid "% of the CPU time"
+msgstr "% de tempo do CPU"
+
+msgid "Can be used to reduce CPU heat"
+msgstr "Pode ser usado para reduzir a temperatura do CPU"
+
+msgid "Disk and memory usage"
+msgstr "Uso do disco e da memória"
+
+msgid "Disk: use at most"
+msgstr "DIsco: usar no máximo"
+
+msgid "Disk: leave free at least"
+msgstr "DIsco: deixar livre no mínimo"
+
+msgid "Values smaller than @number are ignored"
+msgstr "Valores menores que @number serão ignorados"
+
+msgid "% of total"
+msgstr "% do total"
+
+msgid "Tasks checkpoint to disk at most every"
+msgstr "Tarefas serão salvas no disco no máximo a cada"
+
+msgid "seconds"
+msgstr "segundos"
+
+msgid "Swap space: use at most"
+msgstr "Espaço de troca: usar no máximo"
+
+msgid "Memory: when computer is in use, use at most"
+msgstr "Memória: quando o computador estiver em uso, usar no máximo"
+
+msgid "Memory: when computer is not in use, use at most"
+msgstr "Memória: quando o computador não estiver em uso, usar no máximo"
+
+msgid "Network usage"
+msgstr "Uso da rede"
+
+msgid "Computer is connected to the Internet about every"
+msgstr "Computador é conectado à Internet a cada"
+
+msgid "days"
+msgstr "dias"
+
+msgid ""
+"Leave blank or 0 if always connected. @project will try to maintain at least"
+" this much work."
+msgstr "Deixe em branco ou 0 se sempre conectado. @project tentará manter no mínimo este tanto de trabalho."
+
+msgid "Maintain enough work for an additional"
+msgstr "Manter trabalho suficiente por mais"
+
+msgid "Confirm before connecting to Internet?"
+msgstr "Confirmar antes de conectar a Internet?"
+
+msgid "Matters only if you have a modem, ISDN, or VPN connection"
+msgstr "Somente importa se você tem um modem, ISDN ou conexão VPN"
+
+msgid "Disconnect when done?"
+msgstr "Desconectar ao terminar?"
+
+msgid "Maximum download rate"
+msgstr "Taxa máxima de download"
+
+msgid "Maximum upload rate"
+msgstr "Taxa máxima de upload"
+
+msgid "Use network only between the hours of:"
+msgstr "Usar a rede apenas entre:"
+
+msgid "Transfer at most"
+msgstr "Transferir ao máximo"
+
+msgid "Skip image file verification?"
+msgstr "Pular verificação do arquivo de imagem?"
+
+msgid ""
+"Check this ONLY if your Internet provider modifies image files (UMTS does "
+"this, for example). Skipping verification reduces the security of BOINC."
+msgstr "Selecione isto APENAS se seu provedor de Internet modificar arquivos de imagem (UMTS o faz, por exemplo). Pular a verificação reduz a segurança do BOINC."
+
+msgid "search"
+msgstr "pesquisar"
+
+msgid "What is @this_project?"
+msgstr "O que é @this_project?"
+
+msgid "Login"
+msgstr "Login"
+
+msgid "BOINC"
+msgstr "BOINC"
+
+msgid "Project"
+msgstr "Projeto"
+
+msgid "No @type tasks"
+msgstr "Não há tarefas de @type"
+
+msgid "There are no tasks of this type on record"
+msgstr "Não há tarefas deste tipo no histórico"
+
+msgid "Details"
+msgstr "Detalhes"
+
+msgid "Password"
+msgstr "Senha"
+
+msgid "Enter the password that accompanies your username."
+msgstr "Insira a senha que acompanha seu nome de usuário."
+
+msgid "Request new password"
+msgstr "Solicitar nova senha"
+
+msgid "Mark all topics read"
+msgstr "Assinalar todos os topicos como lidos"
+
+msgid "Mark all forums read"
+msgstr "Assinalar todos os forums como lidos"
+
+msgid ""
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
+msgstr "Erro na validação do CAPTCHA: ID de sessão do CAPTCHA desconhecido. Contate o administrador do site se o problema persistir."
+
+msgid "The answer you entered for the CAPTCHA was not correct."
+msgstr "A resposta inserida para o CAPTCHA está incorreta."
+
+msgid "Access denied. You must login to view this page."
+msgstr "Acesso negado. Você deve fazer login para acessar esta página."
+
+msgid "You are not authorized to access this page."
+msgstr "Você não tem autorização para acessar esta página."
+
+msgid "Disable rich-text"
+msgstr "Desabilitar texto rico"
+
+msgid "Enable rich-text"
+msgstr "Habilitar texto rico"
+
+msgid "Teams"
+msgstr "Equipes"
+
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "Participantes do @project podem formar equipes. Você só pode fazer parte de uma equipe. Você pode se filiar ou sair de uma equipe a qualquer tempo. Para filiar-se a uma \nequipe, visite a página da equipe e clique em \"Filiar-se nesta equipe\". Cada equipe tem um fundador que pode:"
+
+msgid "access team members' email addresses"
+msgstr "acessar o endereço de email dos membros"
+
+msgid "edit the team's name and description"
+msgstr "editar o nome e a descrição da equipe"
+
+msgid "add or remove team admins"
+msgstr "adicionar ou remover administradores da equipe"
+
+msgid "remove members from the team"
+msgstr "remover membros"
+
+msgid "disband a team if it has no members"
+msgstr "dissolver a equipe se não houverem membros"
+
+msgid "Search teams"
+msgstr "Pesquisar equipes"
+
+msgid "Create a new team"
+msgstr "Criar uma nova equipe"
+
+msgid ""
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Se você não encontrar uma equipe que te satisfaça, você pode criar uma."
+
+msgid "You must earn 1 more credit!"
+msgstr "Você deve ganhar mais 1 crédito!"
+
+msgid "@count million ops/sec"
+msgstr "@count milhões ops/seg"
+
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/seg"
+
+msgid "@count days"
+msgstr "@count dias"
+
+msgid "Stderr output"
+msgstr "Saída stderr"
+
+msgid "Email address"
+msgstr "Endereço de E-mail"
+
+msgid "Enter your @s email address."
+msgstr "Insira seu endereço de email."
+
+msgid "Log in"
+msgstr "Iniciar sessão"
+
+msgid "Sorry, unrecognized email address or password."
+msgstr "Desculpe, endereço de email ou senha não reconhecido."
+
+msgid "Have you forgotten your password?"
+msgstr "Você esqueceu sua senha?"
+
+msgid "No results found..."
+msgstr "Nenhum resultado encontrado..."
+
+msgid "Anonymous"
+msgstr "Anônimo"
+
+msgid "Forgot password"
+msgstr "Esqueceu sua senha"
+
+msgid "authenticator-based login"
+msgstr "Login baseado em autenticador"
+
+msgid ""
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Insira seu endereço de email para receber instruções de como alterar sua senha (ou use o !authenticator_login)."
+
+msgid "Send"
+msgstr "Enviar"
+
+msgid "Submitted by !username on !datetime"
+msgstr "Postado por !username em !datetime"
+
+msgid "Send message"
+msgstr "Enviar mensagem"
+
+msgid "Add as friend"
+msgstr "Adicionar como amigo"
+
+msgid "Website"
+msgstr "Site da Web"
+
+msgid "Team"
+msgstr "Equipe"
+
+msgid "Create new team"
+msgstr "Criar nova equipe"
+
+msgid "Search"
+msgstr "Procurar"
+
+msgid "Total credits"
+msgstr "Créditos totais"
+
+msgid "Recent avg credits"
+msgstr "Média recente de créditos"
+
+msgid "Type"
+msgstr "Tipo"
+
+msgid "New members in last day"
+msgstr "Novos membros nos últimos dias"
+
+msgid "Total members"
+msgstr "Total de membros"
+
+msgid "Active members"
+msgstr "Membros ativos"
+
+msgid "Members with credit"
+msgstr "Membros com crédito"
+
+msgid "Web site"
+msgstr "Site da Web"
+
+msgid "Description"
+msgstr "Descrição"
+
+msgid "BBcode help"
+msgstr "Ajuda de BBcode"
+
+msgid "Post comment"
+msgstr "Postar comentário"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Início"
+
+msgid "The latest news from the @site_name project"
+msgstr "As últimas notícias do projeto @site_name"
+
+msgid "Hide"
+msgstr "Esconder"
+
+msgid "Hide this topic"
+msgstr "Esconder este tópico"
+
+msgid "Lock"
+msgstr "Bloquear"
+
+msgid "Lock this thread for comments"
+msgstr "Bloquear comentários para este tópico"
+
+msgid "Make sticky"
+msgstr "Deixar adesivado"
+
+msgid "Make this topic sticky"
+msgstr "Deixar este tópico adesivado"
+
+msgid "moderation"
+msgstr "moderação"
+
+msgid "Reply"
+msgstr "Responder"
+
+msgid "Reply to this comment"
+msgstr "Responder este comentário"
+
+msgid "Quote"
+msgstr "Citação"
+
+msgid "Reply to this comment with quote"
+msgstr "Responder este comentário com citação"
+
+msgid "Edit"
+msgstr "Editar"
+
+msgid "Edit this comment"
+msgstr "Editar este comentário"
+
+msgid "Delete"
+msgstr "Deletar"
+
+msgid "Delete this comment"
+msgstr "Deletar este comentário"
+
+msgid "Hide this comment"
+msgstr "Omitir este comentário"
+
+msgid "Message @id"
+msgstr "Mensagem @id"
+
+msgid "Convert"
+msgstr "Converter"
+
+msgid "Convert this comment to a new topic"
+msgstr "Converter este comentário em um novo tópico"
+
+msgid "message @id"
+msgstr "mensagem @id"
+
+msgid " in response to !parent"
+msgstr "em resposta a !parent"
+
+msgid "Post new comment"
+msgstr "Postar novo comentário"
+
+msgid "Comments"
+msgstr "Comentários"
+
+msgid "discuss"
+msgstr "discussão"
+
+msgid "n/a"
+msgstr "n/a"
+
+msgid "@time ago"
+msgstr "@time atrás"
+
+msgid "Threads"
+msgstr "Assuntos"
+
+msgid "Posts"
+msgstr "Postagens"
+
+msgid "Last post"
+msgstr "Última postagem"
+
+msgid ""
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Por favor seja responsável com o que você escreve e não crie postagens ofensivas ou insultantes. Postagens ou discussões ofensivas podem ser excluídas pelos moderadores do forum sem alerta ou discussão. Não responda a postagens ofensivas. Clique no botão \"Report\" no final da postagem para chamar sua atenção aos moderadores."
+
+msgid "this project"
+msgstr "este projeto"
+
+msgid ""
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Nós também pedimos que você mantenha qualquer discussão relacionada com @project ou BOINC com a pequena exceção da sala Ciência onde você é livre para discutir qualquer assunto relevante para a respectiva ciência. Participantes interessados em discussões mais amplas devem postar em foruns não oficiais para @project."
+
+msgid "These message boards now support BBCode tags only."
+msgstr "Este quadro de mensagens agora somente suporta etiquetas BBCode."
+
+msgid "Featured"
+msgstr "Em destaque"
+
+msgid "Locked"
+msgstr "Bloqueado"
+
+msgid "Submitted on !datetime"
+msgstr "Inserido em !datetime"
+
+msgid "Computers pending"
+msgstr "Computadores pendentes"
+
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Este usuário ainda não possui nenhum computador associado. Computadores serão mostrados quando tiverem ganhado seu primeiro crédito."
+
+msgid "Show IP address"
+msgstr "Mostrar endereço IP"
+
+msgid "Download the desktop software"
+msgstr "Baixe o software para desktop"
+
+msgid "Run the installer"
+msgstr "Execute o instalador"
+
+msgid "hours"
+msgstr "horas"
+
+msgid "When prompted enter @siteurl"
+msgstr "Quando solicitado insira @siteurl"
+
+msgid "Merge"
+msgstr "Mesclar"
+
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Isso deletará host @id de sua conta para sempre. Você está certo disso?"
+
+msgid "Post topic"
+msgstr "Postar tópico"
+
+msgid "Leave team"
+msgstr "Deixar equipe"
+
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Clique aqui para revogar sua participação em @this_team"
+
+msgid "Leave this team"
+msgstr "Deixar esta equipe"
+
+msgid "Request foundership"
+msgstr "Solicitar fundação"
+
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Se o fundador do time não está ativo e você deseja assumir esse papel, clique abaixo para solicitar a fundação de @this_team."
+
+msgid "Initiate request"
+msgstr "Iniciar requisição"
+
+msgid "No active computers"
+msgstr "Não há computadores ativos"
+
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Este usuário não possui computadores que estiveram ativos nos últimos 30 dias."
+
+msgid "Clear"
+msgstr "Limpar"
+
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Isto removerá todas as suas configurações dos ajustes preferenciais de @name. Você tem certeza?"
+
+msgid "Your community preferences have been updated."
+msgstr "Suas preferências de comunidade foram atualizadas."
+
+msgid "Combined preferences"
+msgstr "Preferências combinadas"
+
+msgid "Switch View"
+msgstr "Mudar modo de visualização"
+
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Isto removerá todas as suas configurações dos ajustes preferenciais de @name. Você tem certeza?"
+
+msgid "Approve profile"
+msgstr "Aprovar perfil"
+
+msgid "Approve this profile content"
+msgstr "Aprovar este conteúdo de perfil"
+
+msgid "Reject this profile content"
+msgstr "Rejeitar este conteúdo de perfil"
+
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Estes se aplicam a todos os projetos BOINC em que você participa."
+
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Em computadores vinculados a múltiplos projetos, as preferências mais recentemente modificadas serão usadas."
+
+msgid "Preferences last modified: @mod_time"
+msgstr "Últimas preferências modificadas: @mod_time"
+
+msgid "every"
+msgstr "a cada"
+
+msgid "Add"
+msgstr "Adicionar"
+
+msgid "My team"
+msgstr "Meu time"
+
+msgid "You are a member of @team."
+msgstr "Você é membro de @team."
+
+msgid "View my team"
+msgstr "Visualizar meu time"
+
+msgid "Manage team"
+msgstr "Gerenciar equipe"
+
+msgid "View member list"
+msgstr "Visualizar lista de membros"
+
+msgid "Member names and emails"
+msgstr "Nomes e emails dos membros"
+
+msgid "View change history"
+msgstr "Visualizar histórico de alterações"
+
+msgid "See member activity"
+msgstr "Visualizar atividade do membro"
+
+msgid "Manage team message board"
+msgstr "Gerenciar quadro de mensagens da equipe"
+
+msgid "Create or manage message board"
+msgstr "Criar ou gerenciar quadro de mensagens"
+
+msgid "Remove members"
+msgstr "Remover membros"
+
+msgid "Change founder"
+msgstr "Alterar fundador"
+
+msgid "Manage team admins"
+msgstr "Gerenciar administradores da equipe"
+
+msgid "Edit team info"
+msgstr "Editar informações da equipe"
+
+msgid "Remove team"
+msgstr "Remover equipe"
+
+msgid "Team forum"
+msgstr "Fórum da equipe"
+
+msgid "A discussion forum has been set up for team members."
+msgstr "Um fórum de discussão foi criado para membros da equipe."
+
+msgid "Enter forum"
+msgstr "Entrar no fórum"
+
+msgid "Join team"
+msgstr "Filiar-se a equipe"
+
+msgid "Click here to become a member of @this_team"
+msgstr "Clique aqui para se tornar um membro de @this_team"
+
+msgid "Join this team"
+msgstr "Filiar-se a esta equipe"
+
+msgid "Choose type"
+msgstr "Escolher tipo"
+
+msgid "Team name"
+msgstr "Nome do time"
+
+msgid "Text only, no HTML tags"
+msgstr "Somente texto, sem tags de HTML"
+
+msgid "Team name -- HTML version (optional)"
+msgstr "Nome da equipe -- versão em HTML (opcional)"
+
+msgid "You may use limited HTML tags"
+msgstr "Você pode usar tags de HTML limitadas"
+
+msgid "Team website (optional)"
+msgstr "Website da equipe (opcional)"
+
+msgid "Displayed on the team's page"
+msgstr "Exibido na página da equipe"
+
+msgid "Type of team"
+msgstr "Tipo de equipe"
+
+msgid "Accept new members?"
+msgstr "Aceitar novos membros?"
+
+msgid "Description of team"
+msgstr "Descrição da equipe"
+
+msgid "Create a team"
+msgstr "Criar uma equipe"
+
+msgid "Save team"
+msgstr "Salvar equipe"
+
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Se você já estiver rodando BOINC, selecione <i>Adicionar\nProjeto<i>."
+
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Se você estiver rodando uma versão linha de comando do BOINC,\nprimeiro use o software BOINC Manager (outro se necessário) para criar uma\nconta para este projeto, depois use essa conta para conectar com\na versão linha de comando."
+
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Se você estiver rodando uma versão anterior a -5.0 do BOINC, favor\natualizar para uma versão mais recente para criar uma conta\nneste projeto."
+
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Se você esqueceu seu endereço de email, ou você não pode receber emails nele:"
+
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Se você já rodou BOINC com esta conta, você ainda pode acessá-la. Veja como:"
+
+msgid "BOINC documentation"
+msgstr "Documentação do BOINC"
+
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Vá para o diretório de dados do BOINC no seu computador (veja !boinc_wiki para ajuda de como encontrar)."
+
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Encontre o arquivo de sua conta para este projeto; ele terá um nome como %file (onde o URL do projeto é %url)."
+
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Abra o arquivo em um editor de texto como o Bloco de Notas. Você verá algo como:"
+
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Selecione e Copie os caracteres entre <authenticator> e </authenticator> (%auth no exemplo acima)."
+
+msgid "Paste the string into the field below, and click OK."
+msgstr "Cole os caracteres no campo abaixo, e clique OK."
+
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Você agora será logado em sua conta; atualize o email e a senha de sua conta."
+
+msgid "Log in with authenticator"
+msgstr "Faça login com o autenticador"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Post new topic"
+msgstr "Postar novo tópico"
+
+msgid "Create team message board"
+msgstr "Criar um quadro de mensagem da equipe"
+
+msgid "Message board title"
+msgstr "Título do quadro de mensagem"
+
+msgid "Minimum time between posts"
+msgstr "Tempo mínimo entre postagens"
+
+msgid "Seconds"
+msgstr "Segundos"
+
+msgid "Minimum total credit to post"
+msgstr "Crédito total mínimo para postagem"
+
+msgid "Minimum avg credit to post"
+msgstr "Crédito médio mínimo para postagem"
+
+msgid "Allow public to read board?"
+msgstr "Permitir que o público leia o quadro?"
+
+msgid "Create message board"
+msgstr "Criar um quadro de mensagem"
+
+msgid "About message boards"
+msgstr "Sobre o quadro de mensagem"
+
+msgid "You may create a message board for use by @team"
+msgstr "Você pode criar um quadro de mensagem para uso da @team"
+
+msgid "Only members may post"
+msgstr "Somente membros podem postar"
+
+msgid "Only members may read (optional)"
+msgstr "Somente membros podem ler (opcional)"
+
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Fundador e Administradores de equipe têm privilégios de moderação"
+
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (o mesmo que as últimas @count vezes)"
+
+msgid "Revise or post comment"
+msgstr "Revisar ou postar comentário"
+
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Às vezes o BOINC define identidades diferentes para o mesmo computador por engano. Você pode corrigir isto mesclando as identidades velhas com a mais nova."
+
+msgid ""
+"Check the computers that are the same as @name (created on @date at @time "
+"with computer ID @id)"
+msgstr "Confira os computadores que são o mesmo que @nome (criado em @date as @time com o ID de computador @id)"
+
+msgid "Computer @old_id has been merged successfully into @id."
+msgstr "O computador @old_id foi mesclado com êxito em @id."
+
+msgid "parent removed"
+msgstr "pai removido"
+
+msgid "Remove"
+msgstr "Remover"
+
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
+msgstr "Autenticação é necessária para mudar endereço de e-mail ou alterar senha."
+
+msgid "Make unsticky"
+msgstr "Desadesivar"
+
+msgid "Remove sticky status from this topic"
+msgstr "Remover o adesivo deste tópico"
+
+msgid "Unhide"
+msgstr "Reexibir"
+
+msgid "Unhide this comment"
+msgstr "Reexibir este comentário"
+
+msgid "Unpublished"
+msgstr "Não publicado"
+
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "O computador @old_id foi mesclado com êxito em @id."
+
+msgid "Joined"
+msgstr "Inscrito"
+
+msgid "Credit"
+msgstr "Crédito"
+
+msgid "RAC"
+msgstr "MRC"
+
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Não existe conte para @email -- selecione \"Criar nova conta\" para se registrar"
+
+msgid "started discussion"
+msgstr "discussão iniciada"
+
+msgid "commented on"
+msgstr "comentado em"
+
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Senha informada não é válida. Verifique se é a correta."
+
+msgid "Minimum value not met for @field"
+msgstr "Valor mínimo não atingido para @field"
+
+msgid "Invalid data type for @field"
+msgstr "Tipo de dados inválido para @field"
+
+msgid "News"
+msgstr "Notícias"
+
+msgid "Remove friend"
+msgstr "Remover amigo"
+
+msgid "ignore list"
+msgstr "ignorar lista"
+
+msgid "here"
+msgstr "aqui"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username está na sua !lista_de_ignorados. Clique !aqui para ver este post."
+
+msgid "hidden"
+msgstr "escondido"
+
+msgid "Unknown"
+msgstr "Desconhecido"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Configuração inválida para \"%preference\""
+
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: comentário postado em \"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author postou uma resposta a \"!topic_name\"."
+
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Para ver este tópico em !site, clique aqui:\n!comment_url"
+
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "O fundador do time tem @count dias para responder ao seu pedido de transferência."
+
+msgid "Unlock"
+msgstr "Desbloquear"
+
+msgid "Unlock this thread for comments"
+msgstr "Desbloquear esta discussão para comentários"
+
+msgid "project"
+msgstr "projeto"
+
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email não é um endereço de e-mail bem formado, por favor verifique"
+
+msgid "Please enter your email address"
+msgstr "Por favor, informe seu endereço de email"
+
+msgid "There is no account with that authenticator."
+msgstr "Não há conta com este autenticador."
+
+msgid "That authenticator is not valid."
+msgstr "Este autenticador não é válido."
+
+msgid "Send request"
+msgstr "Enviar pedido"
+
+msgid "Friend request from !name [!site]"
+msgstr "Pedido de amizade de !nome [!site]"
+
+msgid "Message"
+msgstr "Mensagem"
+
+msgid ""
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name adicionou você como amigo no !site. Você pode aceitar ou negar este pedido. Negar um pedido não envia uma notificação, mas remove o pedido de ambas as contas.\n\nAcesse o link abaixo para visualizar o pedido:\n!link\n\n!mensagem\n\nGrato,\nTime !site"
+
+msgid "Cancel friend request"
+msgstr "Cancelar pedido de amizade"
+
+msgid "Please set the minimum time required between posts."
+msgstr "Favor indicar tempo mínimo necessário entre posts."
+
+msgid ""
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Favor indicar o crédito total mínimo que um usuário deve ganhar para poder postar neste quadro de mensagens."
+
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Favor determinar o crédito médio mínimo que um usuário precisa para postar neste quadro de mensagem."
+
+msgid "Edit message board"
+msgstr "Editar quadro de mensagem"
+
+msgid "Save message board"
+msgstr "Salvar quadro de mensagem"
+
+msgid "This is a team-only message board"
+msgstr "Este é um quadro de mensagem restrito à equipe"
+
+msgid "Maximum value exceeded for @field"
+msgstr "Valor máximo excedido para @field"
+
+msgid "Approve request"
+msgstr "Aceitar pedido"
+
+msgid "!name accepted your friend request [!site]"
+msgstr "!nome aceitou seu pedido de amizade [!site]"
+
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name confirmou seu pedido de amizade no !site.\n\nAcesse este link para ver seu perfil:\n!link\n\n!message\n\nGrato,\nTime !site"
+
+msgid "posted"
+msgstr "postado"
+
+msgid "Add team admin"
+msgstr "Adicionar administrador de equipe"
+
+msgid "Enter email address"
+msgstr "Digite o endereço de email"
+
+msgid "Current team admins"
+msgstr "Administradores de equipe no momento"
+
+msgid "About team admins"
+msgstr "Sobre os administradores de equipe"
+
+msgid "Team admins can:"
+msgstr "Administradores de equipe podem:"
+
+msgid "Edit team information"
+msgstr "Editar informações da equipe"
+
+msgid "View the team's join / quit history"
+msgstr "Visualizar o histórico de entradas / saídas da equipe"
+
+msgid "Moderate the team forum"
+msgstr "Moderar o fórum da equipe"
+
+msgid "Remove members from the team"
+msgstr "Remover membros da equipe"
+
+msgid "Disband a team if it has no members"
+msgstr "Dissolver a equipe se não houverem membros"
+
+msgid "Team admins cannot:"
+msgstr "Adminstradores de equipe não podem:"
+
+msgid "Change the team founder"
+msgstr "Alterar o fundador da equipe"
+
+msgid "Add / Remove team admins"
+msgstr "Adicionar / Remover administradores de equipe"
+
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Se um administrador de equipe sair, ele deixa de ser um administrador. Recomendamos que selecione apenas pessoas que você conhece e confia"
+
+msgid "Lift user ban"
+msgstr "Cancelar banimento"
+
+msgid "A team named \"@name\" already exists."
+msgstr "Já existe uma equipe com o nome \"@name\"."
+
+msgid "A BOINC account already exists for @email."
+msgstr "Já existe uma conta BOINC para @email."
+
+msgid "Make founder"
+msgstr "Tornar fundador"
+
+msgid "Changing the team founder"
+msgstr "Mudando o fundador da equipe"
+
+msgid "Notes about changes in foundership:"
+msgstr "Notas sobre mudanças na fundação:"
+
+msgid "Any member of the team is eligible"
+msgstr "Qualquer membro desta equipe é elegível"
+
+msgid "Current founder becomes a normal user"
+msgstr "Atual fundador torna-se um usuário comum"
+
+msgid "Foundership can be requested by team members:"
+msgstr "Fundação pode ser solicitada pelos membros da equipe:"
+
+msgid "One request is allowed at a time"
+msgstr "Um pedido é permitido por vez"
+
+msgid "It must be 60 days since any previous request"
+msgstr "Deve passar 60 dias desde um pedido anterior"
+
+msgid "Any active request must be older than 90 days"
+msgstr "Qualquer pedido ativo deve ter mais de 90 dias"
+
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Atual fundador tem 60 dias para responder a um pedido"
+
+msgid "BOINC-wide teams site"
+msgstr "Site de equipes gerais do BOINC"
+
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Esta é uma equipe geral do BOINC. Mudanças podem ser feitas no !site."
+
+msgid ""
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "A troca do fundador da equipe foi solicitada recentemente. Somente um pedido é permitido dentro do prazo de 90 dias."
+
+msgid "@count days remaining"
+msgstr "@count dias remanescentes"
+
+msgid "Team name is required."
+msgstr "Necessário nome da equipe."
+
+msgid "Reason for banning this user"
+msgstr "Motivo para banir este usuário"
+
+msgid ""
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Este motivo será incluído em um email ao usuário. Favor escrever uma breve explicação do porquê este usuário esta sendo banido."
+
+msgid "Duration of the ban"
+msgstr "Duração do banimento"
+
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "O número de dias até que o banimento expire. Altere para 0 para banir permanentemente."
+
+msgid "Submit"
+msgstr "Submeter"
diff --git a/locale/pt_BR/BOINC-Manager.mo b/locale/pt_BR/BOINC-Manager.mo
index b9195e0..6981294 100644
Binary files a/locale/pt_BR/BOINC-Manager.mo and b/locale/pt_BR/BOINC-Manager.mo differ
diff --git a/locale/pt_BR/BOINC-Manager.po b/locale/pt_BR/BOINC-Manager.po
old mode 100755
new mode 100644
index d465ea7..2f89028
--- a/locale/pt_BR/BOINC-Manager.po
+++ b/locale/pt_BR/BOINC-Manager.po
@@ -1,68 +1,60 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-02 00:00-0800\n"
-"PO-Revision-Date: 2013-10-23 02:42+0000\n"
-"Last-Translator: paladini <fnpaladini at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pt_BR\n"
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Acacio Salgueiro <acacioxp at gmail.com>, 2016
+# Anderson Fachini <anderson.dkfachini at gmail.com>, 2016
+# Anselmo Rocha <agr9090 at gmail.com>, 2015
+# Bruno <rustingheart at hotmail.com>, 2015
+# Claudio Bastos, 2016
+# Wiri Marcolan Kamei <wirimk at hotmail.com>, 2016-2017
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-14 22:36+0000\n"
+"Last-Translator: Wiri Marcolan Kamei <wirimk at hotmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/boinc/boinc/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-SearchPath-1: clientgui/msw\n"
-"X-Poedit-SearchPath-2: clientgui/gtk\n"
-"X-Poedit-SearchPath-3: clientgui/mac\n"
-"X-Poedit-SearchPath-0: clientgui\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-POOTLE-MTIME: 1382496175.0\n"
 
-# 81%
-#: AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
-#, fuzzy, c-format
 msgid "Identify your account at %s"
-msgstr "Identifique sua conta"
+msgstr "Identifique sua conta em %s"
 
-#: AccountInfoPage.cpp:393
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
-msgstr ""
-"Por favor, entre com suas informações de conta\n"
-"(para criar uma conta, visite a página do projeto na internet)"
+msgstr "Por favor, entre com suas informações de conta\n(para criar uma conta, visite a página do projeto na internet)"
 
-#: AccountInfoPage.cpp:397
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
-msgstr ""
-"Este projeto não está aceitando novas contas no momento.\n"
-"Você pode participar somente se já possuir uma conta."
+msgstr "Este projeto não está aceitando novas contas no momento.\nVocê só pode adicioná-lo se você já possuir uma conta."
 
-#: AccountInfoPage.cpp:401
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Você já executa este projeto?"
 
-#: AccountInfoPage.cpp:405
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Não, novo usuário"
 
-#: AccountInfoPage.cpp:408
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Sim, usuário existente"
 
-#: AccountInfoPage.cpp:413
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -70,763 +62,737 @@ msgid ""
 "Please click on the 'Find login information' link\n"
 "below to find out what to put in the email address and\n"
 "password fields."
-msgstr ""
-"Não conseguimos configurar suas informações de conta\n"
-"automaticamente.\n"
-"\n"
-"Por favor, clique no link 'Procurar informações de acesso'\n"
-"abaixo para descobrir o que colocar nos campos de endereço de email\n"
-"e senha."
+msgstr "Nós não conseguimos a sua configuração de conta\nautomaticamente.\n\nPor favor clique no link 'Localizar informação de login'\nabaixo para localizar o que colocar nos campos\nendereço de e-mail e senha."
 
-#: AccountInfoPage.cpp:416
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
-msgstr "Procurar informações de acesso"
+msgstr "Encontrar informações de login"
 
-#: AccountInfoPage.cpp:436 AccountInfoPage.cpp:641
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Senha:"
 
-#: AccountInfoPage.cpp:443 AccountInfoPage.cpp:665
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Selecione uma &senha:"
 
-#: AccountInfoPage.cpp:446
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "C&onfirme a senha:"
 
-#: AccountInfoPage.cpp:453
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Você já executa %s?"
 
-#: AccountInfoPage.cpp:482
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Nome de usuário:"
 
-#: AccountInfoPage.cpp:508
+#: clientgui/AccountInfoPage.cpp:483
+msgid "&Email address or LDAP ID:"
+msgstr "&Endereço de e-mail ou LDAP ID"
+
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Endereço de E-mail:"
 
-#: AccountInfoPage.cpp:515
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "comprimento mínimo %d"
 
-#: AccountInfoPage.cpp:522
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Esqueceu sua senha?"
 
-#: AccountInfoPage.cpp:529
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
-msgstr ""
-"Se você ainda não é registrado com este gerenciador de contas,\n"
-"por favor, faça isso antes de prosseguir. Clique no link abaixo\n"
-"para registrar-se ou reaver uma senha perdida."
+msgstr "Se você ainda não é registrado com este gerenciador de contas,\npor favor, faça isso antes de prosseguir. Clique no link abaixo\npara registrar-se ou reaver uma senha perdida."
 
-#: AccountInfoPage.cpp:532
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Página do gerenciador de contas na internet"
 
-#: AccountInfoPage.cpp:574 WelcomePage.cpp:348
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Adicionar projeto"
 
-#: AccountInfoPage.cpp:576
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Atualizar gerenciador de contas"
 
-#: AccountInfoPage.cpp:578 WelcomePage.cpp:307 WelcomePage.cpp:321
-#, fuzzy
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
-msgstr "Adicionar gerenciador de contas"
+msgstr "Usar gerenciador de conta"
 
-#: AccountInfoPage.cpp:585
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
-msgstr ""
+msgstr "Por favor digite um nome de usuário."
 
-#: AccountInfoPage.cpp:587
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
-msgstr ""
+msgstr "Favor informar um endereço de email"
 
-#: AccountInfoPage.cpp:597
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
-msgstr ""
+msgstr "Por favor digite uma senha de pelo menos %d caracteres."
 
-#: AccountInfoPage.cpp:607
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "A senha e sua confirmação não parelham. Por favor, digite-as novamente."
 
-#: AccountManagerInfoPage.cpp:272
+#: clientgui/AccountManagerInfoPage.cpp:270
 msgid "Choose an account manager"
 msgstr "Selecione um gerenciador de contas"
 
-#: AccountManagerInfoPage.cpp:275
+#: clientgui/AccountManagerInfoPage.cpp:273
 msgid ""
 "To choose an account manager, click its name or \n"
 "type its URL below."
-msgstr ""
-"Para selecionar um gerenciador de contas, clique em seu nome ou \n"
-"digite seu URL abaixo."
+msgstr "Para selecionar um gerenciador de contas, clique em seu nome ou \ndigite seu URL abaixo."
 
-#: AccountManagerInfoPage.cpp:279
-#, fuzzy
+#: clientgui/AccountManagerInfoPage.cpp:277
 msgid "Account manager details:"
-msgstr "Página do gerenciador de contas na internet"
+msgstr "Detalhes do gerenciador de conta:"
 
-#: AccountManagerInfoPage.cpp:283
-#, fuzzy
+#: clientgui/AccountManagerInfoPage.cpp:281
 msgid "Account manager &URL:"
-msgstr "Gerenciador de Contas &URL:"
+msgstr "&URL do gerenciador de contas"
 
-#: AccountManagerInfoPage.cpp:287
+#: clientgui/AccountManagerInfoPage.cpp:285
 msgid "Open web page"
-msgstr ""
+msgstr "Abrir página da internet"
 
-#: AccountManagerInfoPage.cpp:290
+#: clientgui/AccountManagerInfoPage.cpp:288
 msgid "Visit this account manager's web site"
-msgstr ""
+msgstr "Visitar página deste gerenciador de contas"
 
-#: AccountManagerProcessingPage.cpp:187 AccountManagerPropertiesPage.cpp:193
+#. %s is the project name
+#. i.e. 'BOINC', 'GridRepublic'
+#: clientgui/AccountManagerProcessingPage.cpp:186
+#: clientgui/AccountManagerPropertiesPage.cpp:192
 #, c-format
 msgid "Communicating with %s."
 msgstr "Comunicando-se com %s."
 
-#: AccountManagerProcessingPage.cpp:194 AccountManagerPropertiesPage.cpp:200
+#: clientgui/AccountManagerProcessingPage.cpp:193
+#: clientgui/AccountManagerPropertiesPage.cpp:199
 msgid "Communicating with server."
 msgstr "Comunicando-se com servidor."
 
-#: AccountManagerProcessingPage.cpp:199 AccountManagerPropertiesPage.cpp:205
+#: clientgui/AccountManagerProcessingPage.cpp:198
+#: clientgui/AccountManagerPropertiesPage.cpp:204
 msgid "Please wait..."
 msgstr "Por favor, aguarde..."
 
-#: AccountManagerProcessingPage.cpp:326
+#: clientgui/AccountManagerProcessingPage.cpp:325
 msgid "An internal server error has occurred.\n"
 msgstr "Ocorreu um erro interno no servidor.\n"
 
-#: AdvancedFrame.cpp:95
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Conectado"
 
-#: AdvancedFrame.cpp:103
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Desconectado"
 
-#: AdvancedFrame.cpp:322 sg_BoincSimpleFrame.cpp:119
+#: clientgui/AdvancedFrame.cpp:329
+#, c-format
+msgid "New %s window..."
+msgstr "Nova janela %s..."
+
+#: clientgui/AdvancedFrame.cpp:333
+#, c-format
+msgid "Open another %s window"
+msgstr "Abrir outra janela %s"
+
+#: clientgui/AdvancedFrame.cpp:344
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Selecionar computador...\tCtrl+Shift+I"
+
+#: clientgui/AdvancedFrame.cpp:345
+msgid "Connect to a BOINC client on another computer"
+msgstr "Conectar a um cliente BOINC em outro computador"
+
+#: clientgui/AdvancedFrame.cpp:349
+msgid "Shut down connected client..."
+msgstr "Finalizar cliente conectado..."
+
+#: clientgui/AdvancedFrame.cpp:350
+msgid "Shut down the currently connected BOINC client"
+msgstr "Desligar o cliente BOINC conectado atualmente"
+
+#: clientgui/AdvancedFrame.cpp:355 clientgui/sg_BoincSimpleFrame.cpp:120
 #, c-format
 msgid "Close the %s window"
 msgstr "Fechar a janela %s"
 
-#: AdvancedFrame.cpp:325 sg_BoincSimpleFrame.cpp:122
-msgid "&Close Window"
-msgstr "&Fechar Janela"
+#: clientgui/AdvancedFrame.cpp:358 clientgui/sg_BoincSimpleFrame.cpp:123
+msgid "&Close window"
+msgstr "&Fechar janela"
 
-#: AdvancedFrame.cpp:336 AdvancedFrame.cpp:343 AdvancedFrame.cpp:350
+#: clientgui/AdvancedFrame.cpp:367 clientgui/AdvancedFrame.cpp:372
+#: clientgui/AdvancedFrame.cpp:377 clientgui/sg_BoincSimpleFrame.cpp:132
+#: clientgui/sg_BoincSimpleFrame.cpp:137
 #, c-format
 msgid "Exit %s"
 msgstr "Sair %s"
 
-#: AdvancedFrame.cpp:371
+#: clientgui/AdvancedFrame.cpp:391 clientgui/sg_BoincSimpleFrame.cpp:151
+msgid "Preferences..."
+msgstr "Preferências..."
+
+#: clientgui/AdvancedFrame.cpp:400
 msgid "&Notices\tCtrl+Shift+N"
 msgstr "&Avisos\t Ctrl+Shift+N"
 
-#: AdvancedFrame.cpp:372
-msgid "Display notices"
-msgstr "Exibir avisos"
+#: clientgui/AdvancedFrame.cpp:401
+msgid "Show notices"
+msgstr "Mostrar avisos"
 
-#: AdvancedFrame.cpp:377
+#: clientgui/AdvancedFrame.cpp:406
 msgid "&Projects\tCtrl+Shift+P"
 msgstr "&Projetos\t Ctrl+Shift+P"
 
-#: AdvancedFrame.cpp:378
-msgid "Display projects"
-msgstr "Exibir projetos"
+#: clientgui/AdvancedFrame.cpp:407
+msgid "Show projects"
+msgstr "Mostrar projetos"
 
-#: AdvancedFrame.cpp:383
+#: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
 msgstr "&Tarefas\t Ctrl+Shift+T"
 
-#: AdvancedFrame.cpp:384
-msgid "Display tasks"
-msgstr "Exibir tarefas"
+#: clientgui/AdvancedFrame.cpp:413
+msgid "Show tasks"
+msgstr "Mostrar tarefas"
 
-#: AdvancedFrame.cpp:389
+#: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
 msgstr "Trans&ferências\t Ctrl+Shift+X"
 
-#: AdvancedFrame.cpp:390
-msgid "Display transfers"
-msgstr "Exibir transferências"
+#: clientgui/AdvancedFrame.cpp:419
+msgid "Show file transfers"
+msgstr "Mostrar transferência de arquivos"
 
-#: AdvancedFrame.cpp:395
+#: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
 msgstr "&Estatísticas\t Ctrl+Shift+S"
 
-#: AdvancedFrame.cpp:396
-msgid "Display statistics"
-msgstr "Exibir estatísticas"
+#: clientgui/AdvancedFrame.cpp:425
+msgid "Show statistics"
+msgstr "Mostrar estatísticas"
 
-#: AdvancedFrame.cpp:401
-msgid "&Disk usage\tCtrl+Shift+D"
-msgstr "&Utilização de disco\t Ctrl+Shift+D"
+#: clientgui/AdvancedFrame.cpp:430
+msgid "&Disk\tCtrl+Shift+D"
+msgstr "&Disco⇥Ctrl+Shift+D"
 
-#: AdvancedFrame.cpp:402
-msgid "Display disk usage"
-msgstr "Exibir utilização de disco"
+#: clientgui/AdvancedFrame.cpp:431
+msgid "Show disk usage"
+msgstr "Mostrar uso do disco"
 
-#: AdvancedFrame.cpp:409
+#: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
 msgstr "&Visão Simples...\t Ctrl+Shift+V"
 
-#: AdvancedFrame.cpp:410
-msgid "Display the simple graphical interface."
-msgstr "Exibir a interface gráfica simples."
+#: clientgui/AdvancedFrame.cpp:439
+msgid "Switch to the Simple View"
+msgstr "Mudar para Visualização Simples"
 
-#: AdvancedFrame.cpp:424
-msgid "&Add project or account manager..."
-msgstr "&Adicionar projeto ou gerenciador de contas..."
+#: clientgui/AdvancedFrame.cpp:453 clientgui/AdvancedFrame.cpp:477
+#: clientgui/sg_BoincSimpleFrame.cpp:205
+msgid "&Add project..."
+msgstr "&Adicionar projeto..."
 
-#: AdvancedFrame.cpp:425 sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Voluntários para um ou todos os 30+ projetos em muitas áreas da ciência"
+#: clientgui/AdvancedFrame.cpp:454 clientgui/AdvancedFrame.cpp:478
+#: clientgui/sg_BoincSimpleFrame.cpp:206
+msgid "Add a project"
+msgstr "Adicionar projeto"
+
+#: clientgui/AdvancedFrame.cpp:458
+msgid "&Use account manager..."
+msgstr "Adicionar gerente de contas"
+
+#: clientgui/AdvancedFrame.cpp:459
+msgid "Use an account manager to control this computer."
+msgstr "Usar gerenciador de contas para controlar este computador."
 
-#: AdvancedFrame.cpp:429
+#: clientgui/AdvancedFrame.cpp:463
 #, c-format
 msgid "&Synchronize with %s"
 msgstr "&Sincronizar com %s"
 
-#: AdvancedFrame.cpp:433
+#: clientgui/AdvancedFrame.cpp:467
 #, c-format
 msgid "Get current settings from %s"
 msgstr "Obter configurações atuais de %s"
 
-#: AdvancedFrame.cpp:443
-msgid "&Add project..."
-msgstr "&Adicionar projeto..."
-
-#: AdvancedFrame.cpp:444
-msgid "Add a project"
-msgstr "Adicionar projeto"
-
-#: AdvancedFrame.cpp:447
+#: clientgui/AdvancedFrame.cpp:481
 #, c-format
 msgid "S&top using %s..."
 msgstr "In&terromper uso de %s..."
 
-#: AdvancedFrame.cpp:453
+#: clientgui/AdvancedFrame.cpp:487
 msgid "Remove this computer from account manager control."
 msgstr "Remover este computador do controle do gerenciador de contas."
 
-#: AdvancedFrame.cpp:458 sg_BoincSimpleFrame.cpp:178
-msgid "&Options..."
-msgstr ""
+#: clientgui/AdvancedFrame.cpp:493
+msgid "Run CPU &benchmarks"
+msgstr "Executar &benchmarks de CPU"
 
-# "proxy" is a known and very used word among computer users on Brazil. I believe translating it will be unbecome and may even confuse users.
-#: AdvancedFrame.cpp:459 sg_BoincSimpleFrame.cpp:179
-#, fuzzy
-msgid "Configure display options and proxy settings"
-msgstr "Configurar opções GUI e de proxy"
+#: clientgui/AdvancedFrame.cpp:494
+msgid "Run tests that measure CPU speed"
+msgstr "Executar testes que medem a velocidade da CPU"
 
-#: AdvancedFrame.cpp:463 sg_BoincSimpleFrame.cpp:172
-msgid "Computing &preferences..."
-msgstr "&Preferências de computação..."
+#: clientgui/AdvancedFrame.cpp:498
+msgid "Retry pending transfers"
+msgstr "Tentar novamente transferências pendentes"
 
-#: AdvancedFrame.cpp:464 sg_BoincSimpleFrame.cpp:173
-msgid "Configure computing preferences"
-msgstr "Configurar preferências de computação"
+#: clientgui/AdvancedFrame.cpp:499
+msgid "Retry deferred file transfers and task requests"
+msgstr "Tentar novamente transferências de arquivos adiadas e tarefas requisitadas"
+
+#: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
+msgid "Event Log...\tCtrl+Shift+E"
+msgstr "Log de Eventos...⇥Ctrl+Shift+E"
+
+#: clientgui/AdvancedFrame.cpp:505
+msgid "Show diagnostic messages"
+msgstr "Mostrar mensagens de diagnóstico"
 
-#: AdvancedFrame.cpp:472
+#: clientgui/AdvancedFrame.cpp:513
 msgid "&Run always"
 msgstr "&Executar sempre"
 
-#: AdvancedFrame.cpp:473
+#: clientgui/AdvancedFrame.cpp:514
 msgid "Allow work regardless of preferences"
 msgstr "Permitir trabalho não obstante preferências"
 
-#: AdvancedFrame.cpp:477
+#: clientgui/AdvancedFrame.cpp:518
 msgid "Run based on &preferences"
 msgstr "Executar baseado em &preferências"
 
-#: AdvancedFrame.cpp:478
+#: clientgui/AdvancedFrame.cpp:519
 msgid "Allow work according to preferences"
 msgstr "Permitir trabalho conforme preferências"
 
-#: AdvancedFrame.cpp:482
+#: clientgui/AdvancedFrame.cpp:523
 msgid "&Suspend"
 msgstr "&Suspender"
 
-#: AdvancedFrame.cpp:483
+#: clientgui/AdvancedFrame.cpp:524
 msgid "Stop work regardless of preferences"
 msgstr "Interromper trabalho não obstante preferências"
 
-#: AdvancedFrame.cpp:508
+#: clientgui/AdvancedFrame.cpp:549
 msgid "Use GPU always"
 msgstr "Usar GPU sempre"
 
-#: AdvancedFrame.cpp:509
+#: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
 msgstr "Permitir trabalho de GPU não obstante preferências"
 
-#: AdvancedFrame.cpp:513
+#: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
 msgstr "Usar GPU baseado em preferências"
 
-#: AdvancedFrame.cpp:514
+#: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
 msgstr "Permitir trabalho de GPU conforme preferências"
 
-#: AdvancedFrame.cpp:518
+#: clientgui/AdvancedFrame.cpp:559
 msgid "Suspend GPU"
 msgstr "Suspender GPU"
 
-#: AdvancedFrame.cpp:519
+#: clientgui/AdvancedFrame.cpp:560
 msgid "Stop GPU work regardless of preferences"
 msgstr "Interromper trabalho de GPU não obstante preferências"
 
-#: AdvancedFrame.cpp:543
-msgid "Network activity always available"
+#: clientgui/AdvancedFrame.cpp:584
+msgid "Network activity always"
 msgstr "Atividade de rede sempre disponível"
 
-#: AdvancedFrame.cpp:544
+#: clientgui/AdvancedFrame.cpp:585
 msgid "Allow network activity regardless of preferences"
 msgstr "Permitir atividade de rede não obstante preferências"
 
-#: AdvancedFrame.cpp:548
+#: clientgui/AdvancedFrame.cpp:589
 msgid "Network activity based on preferences"
 msgstr "Atividade de rede baseada em preferências"
 
-#: AdvancedFrame.cpp:549
+#: clientgui/AdvancedFrame.cpp:590
 msgid "Allow network activity according to preferences"
 msgstr "Permitir atividade de rede conforme preferências"
 
-#: AdvancedFrame.cpp:553
-msgid "Network activity suspended"
-msgstr "Atividade de rede suspensa"
+#: clientgui/AdvancedFrame.cpp:594
+msgid "Suspend network activity"
+msgstr "Suspender atividade de rede"
 
-#: AdvancedFrame.cpp:554
-msgid "Stop BOINC network activity"
-msgstr "Interromper atividade de rede do BOINC"
+#: clientgui/AdvancedFrame.cpp:595
+msgid "Stop network activity"
+msgstr "Parar atividade de rede"
 
-#: AdvancedFrame.cpp:564
-#, c-format
-msgid "Connect to another computer running %s"
-msgstr "Conectar a outro computador executando %s"
+#: clientgui/AdvancedFrame.cpp:604 clientgui/sg_BoincSimpleFrame.cpp:191
+msgid "Computing &preferences..."
+msgstr "&Preferências de computação..."
 
-#: AdvancedFrame.cpp:569
-msgid "Select computer..."
-msgstr "Selecionar computador..."
+#: clientgui/AdvancedFrame.cpp:605 clientgui/sg_BoincSimpleFrame.cpp:192
+msgid "Configure computing preferences"
+msgstr "Configurar preferências de computação"
 
-#: AdvancedFrame.cpp:574
-msgid "Shut down connected client..."
-msgstr "Finalizar cliente conectado..."
+#: clientgui/AdvancedFrame.cpp:610
+msgid "Exclusive applications..."
+msgstr "Aplicações exclusivas..."
 
-#: AdvancedFrame.cpp:575
-msgid "Shut down the currently connected client"
-msgstr "Finalizar o cliente conectado atual"
+#: clientgui/AdvancedFrame.cpp:611
+msgid "Configure exclusive applications"
+msgstr "Configurar aplicações exclusivas"
 
-# "benchmark" is a known and very used word among computer users on Brazil. It can be translated as "avaliação de desempenho", but I preferred leaving "benchmarks" just for using the same letter &b...
-#: AdvancedFrame.cpp:579
-msgid "Run CPU &benchmarks"
-msgstr "Executar &benchmarks de CPU"
+#: clientgui/AdvancedFrame.cpp:616
+msgid "Select columns..."
+msgstr "Selecionar colunas..."
+
+#: clientgui/AdvancedFrame.cpp:617
+msgid "Select which columns to display"
+msgstr "Selecione quais colunas exibir"
 
-# "benchmarks" is a known and very used word among computer users on Brazil. It can be translated as "avaliação de desempenho", but I preferred not translating it for convention.
-#: AdvancedFrame.cpp:580
-msgid "Runs BOINC CPU benchmarks"
-msgstr "Executa benchmarks de CPU do BOINC"
+#: clientgui/AdvancedFrame.cpp:621
+msgid "Event Log options...\tCtrl+Shift+F"
+msgstr "Opções de Eventos de Log...⇥Ctrl+Shift+F"
 
-#: AdvancedFrame.cpp:584
-msgid "Do network communication"
-msgstr "Efetuar comunicação de rede"
+#: clientgui/AdvancedFrame.cpp:622
+msgid "Enable or disable various diagnostic messages"
+msgstr "Habilitar ou desabilitar mensagens de diagnóstico diversas"
 
-#: AdvancedFrame.cpp:585
-msgid "Do all pending network communication"
-msgstr "Efetuar todas as comunicações de rede pendentes"
+#: clientgui/AdvancedFrame.cpp:626 clientgui/sg_BoincSimpleFrame.cpp:197
+msgid "&Other options..."
+msgstr "&Outras opções..."
 
-# 94%
-#: AdvancedFrame.cpp:589
-#, fuzzy
+#: clientgui/AdvancedFrame.cpp:627
+msgid "Configure display options and network settings"
+msgstr "Configurar opções de tela e configurações de rede"
+
+#: clientgui/AdvancedFrame.cpp:632
 msgid "Read config files"
 msgstr "Ler arquivo de configuração"
 
-#: AdvancedFrame.cpp:590
-msgid "Read configuration info from cc_config.xml and any app_config.xml files"
-msgstr ""
+#: clientgui/AdvancedFrame.cpp:633
+msgid ""
+"Read configuration info from cc_config.xml and any app_config.xml files"
+msgstr "Ler informações de configuração de do arquivo cc_config.xml e qualquer arquivo app_config.xml"
 
-#: AdvancedFrame.cpp:594
+#: clientgui/AdvancedFrame.cpp:637
 msgid "Read local prefs file"
 msgstr "Ler arquivo de preferências locais"
 
-#: AdvancedFrame.cpp:595
+#: clientgui/AdvancedFrame.cpp:638
 msgid "Read preferences from global_prefs_override.xml."
 msgstr "Ler preferências de global_prefs_override.xml."
 
-#: AdvancedFrame.cpp:600
-#, c-format
-msgid "Launch another instance of %s..."
-msgstr ""
-
-#: AdvancedFrame.cpp:604
-#, c-format
-msgid "Launch another %s"
-msgstr ""
-
-#: AdvancedFrame.cpp:614
-msgid "Event Log...\tCtrl+Shift+E"
-msgstr ""
-
-#: AdvancedFrame.cpp:615
-msgid "Display diagnostic messages."
-msgstr "Exibir mensagens de diagnóstico."
-
-#: AdvancedFrame.cpp:625 sg_BoincSimpleFrame.cpp:188
+#: clientgui/AdvancedFrame.cpp:646 clientgui/sg_BoincSimpleFrame.cpp:219
 #, c-format
 msgid "%s &help"
 msgstr "%s &ajuda"
 
-#: AdvancedFrame.cpp:631 sg_BoincSimpleFrame.cpp:194
+#: clientgui/AdvancedFrame.cpp:650 clientgui/sg_BoincSimpleFrame.cpp:223
 #, c-format
 msgid "Show information about %s"
 msgstr "Mostrar informações sobre %s"
 
-#: AdvancedFrame.cpp:643
+#: clientgui/AdvancedFrame.cpp:660
 #, c-format
 msgid "&%s help"
 msgstr "&%s ajuda"
 
-#: AdvancedFrame.cpp:649 sg_BoincSimpleFrame.cpp:212
+#: clientgui/AdvancedFrame.cpp:664 clientgui/sg_BoincSimpleFrame.cpp:237
 #, c-format
 msgid "Show information about the %s"
 msgstr "Mostrar informações sobre o %s"
 
-#: AdvancedFrame.cpp:661 sg_BoincSimpleFrame.cpp:224
+#: clientgui/AdvancedFrame.cpp:675 clientgui/sg_BoincSimpleFrame.cpp:247
 #, c-format
-#, c-format, fuzzy
 msgid "%s &web site"
 msgstr "%s &página de internet"
 
-#: AdvancedFrame.cpp:667 sg_BoincSimpleFrame.cpp:230
+#: clientgui/AdvancedFrame.cpp:679 clientgui/sg_BoincSimpleFrame.cpp:251
 #, c-format
 msgid "Show information about BOINC and %s"
 msgstr "Mostrar informações sobre BOINC e %s"
 
-#: AdvancedFrame.cpp:679 BOINCTaskBar.cpp:530 sg_BoincSimpleFrame.cpp:242
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
+#: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
 msgstr "&Sobre %s..."
 
-#: AdvancedFrame.cpp:685 sg_BoincSimpleFrame.cpp:248
+#: clientgui/AdvancedFrame.cpp:696 clientgui/sg_BoincSimpleFrame.cpp:268
 msgid "Licensing and copyright information."
 msgstr "Informações de licenciamento e direitos autorais."
 
-#: AdvancedFrame.cpp:692 sg_BoincSimpleFrame.cpp:255
+#: clientgui/AdvancedFrame.cpp:703 clientgui/sg_BoincSimpleFrame.cpp:275
 msgid "&File"
 msgstr "&Arquivo"
 
-#: AdvancedFrame.cpp:696 sg_BoincSimpleFrame.cpp:259
+#: clientgui/AdvancedFrame.cpp:707 clientgui/sg_BoincSimpleFrame.cpp:279
 msgid "&View"
 msgstr "&Ver"
 
-#: AdvancedFrame.cpp:700 sg_BoincSimpleFrame.cpp:263
-msgid "&Tools"
-msgstr "&Ferramentas"
-
-#: AdvancedFrame.cpp:704
+#: clientgui/AdvancedFrame.cpp:711
 msgid "&Activity"
 msgstr "&Atividade"
 
-#: AdvancedFrame.cpp:708
-msgid "A&dvanced"
-msgstr "A&vançado"
+#: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
+msgid "&Options"
+msgstr "&Opções"
+
+#: clientgui/AdvancedFrame.cpp:719 clientgui/sg_BoincSimpleFrame.cpp:287
+msgid "&Tools"
+msgstr "&Ferramentas"
 
-#: AdvancedFrame.cpp:712 DlgEventLog.cpp:332 sg_BoincSimpleFrame.cpp:267
-#: wizardex.cpp:374 wizardex.cpp:381
+#: clientgui/AdvancedFrame.cpp:723 clientgui/sg_BoincSimpleFrame.cpp:291
+#: clientgui/wizardex.cpp:374 clientgui/wizardex.cpp:381
 msgid "&Help"
 msgstr "&Ajuda"
 
-#: AdvancedFrame.cpp:1199
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
-msgstr ""
+msgstr "%s - Parar de usar %s"
 
-#: AdvancedFrame.cpp:1204
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
-#, fuzzy, c-format
 msgid ""
 "If you stop using %s,\n"
 "you'll keep all your current projects,\n"
 "but you'll have to manage projects manually.\n"
 "\n"
 "Do you want to stop using %s?"
-msgstr ""
-"Se você desligar-se de %s,\n"
-"manterá todos os projetos atuais,\n"
-"mas terá de gerenciá-los manualmente.\n"
-"\n"
-"Deseja desligar-se de %s ?"
+msgstr "Se você desligar-se de %s,\nmanterá todos os projetos atuais,\nmas terá de gerenciá-los manualmente.\n\nDeseja desligar-se de %s ?"
 
-#: AdvancedFrame.cpp:1401
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Finalizar o cliente atual..."
 
-#: AdvancedFrame.cpp:1410
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
-msgstr ""
-"%s finalizará o cliente atual\n"
-"e o indagará para outra máquina a se conectar."
+msgstr "%s finalizará o cliente atual\ne o informará para se conectar a outro host."
 
-#: AdvancedFrame.cpp:1745 DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: AdvancedFrame.cpp:1754
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
-#, fuzzy, c-format
 msgid "%s has successfully added %s"
 msgstr "%s foi incorporado com sucesso a %s"
 
-#: AdvancedFrame.cpp:1893
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: AdvancedFrame.cpp:1897
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Conectando a %s"
 
-#: AdvancedFrame.cpp:1900
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Conectado a %s (%s)"
 
-#: AlreadyExistsPage.cpp:184
+#: clientgui/AlreadyExistsPage.cpp:184
 msgid "Username already in use"
 msgstr "Nome de usuário já em uso"
 
-#: AlreadyExistsPage.cpp:187
+#: clientgui/AlreadyExistsPage.cpp:187
 msgid ""
 "An account with that username already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Uma conta com aquele nome de usuário já existe e tem uma\n"
-"senha diferente da que digitou.\n"
-"\n"
-"Por favor, visite a página do projeto na internet e siga as instruções."
+msgstr "Uma conta com aquele nome de usuário já existe e tem uma\nsenha diferente da que digitou.\n\nPor favor, visite a página do projeto na internet e siga as instruções."
 
-#: AlreadyExistsPage.cpp:191
+#: clientgui/AlreadyExistsPage.cpp:191
 msgid "Email address already in use"
 msgstr "Endereço de E-mail já em uso"
 
-#: AlreadyExistsPage.cpp:194
+#: clientgui/AlreadyExistsPage.cpp:194
 msgid ""
 "An account with that email address already exists and has a\n"
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr ""
-"Uma conta com aquele endereço de E-mail já existe e tem uma\n"
-"senha diferente da que digitou.\n"
-"\n"
-"Por favor, visite a página do projeto na internet e siga as instruções."
+msgstr "Uma conta com aquele endereço de E-mail já existe e tem uma\nsenha diferente da que digitou.\n\nPor favor, visite a página do projeto na internet e siga as instruções."
 
-#: AsyncRPC.cpp:1031
+#: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
 msgstr "Comunicando-se com o cliente BOINC. Por favor, aguarde..."
 
-#: AsyncRPC.cpp:1034
+#: clientgui/AsyncRPC.cpp:1034
 #, c-format
 msgid "&Quit %s"
 msgstr "&Sair %s"
 
-#: AsyncRPC.cpp:1036
+#: clientgui/AsyncRPC.cpp:1036
 #, c-format
 msgid "E&xit %s"
 msgstr "S&air %s"
 
-#: AsyncRPC.cpp:1040
+#: clientgui/AsyncRPC.cpp:1040
 #, c-format
 msgid "%s - Communication"
 msgstr "%s - Comunicação"
 
-#: AsyncRPC.cpp:1056 DlgAdvPreferencesBase.cpp:107 sg_DlgPreferences.cpp:433
+#: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: BOINCBaseFrame.cpp:505
+#: clientgui/BOINCBaseFrame.cpp:512
 #, c-format
 msgid "%s - Connection Error"
 msgstr "%s - Erro de Conexão"
 
-#: BOINCBaseFrame.cpp:514
+#: clientgui/BOINCBaseFrame.cpp:521
 msgid ""
 "You currently are not authorized to manage the client.\n"
-"Please contact your administrator to add you to the 'boinc_users' local user "
-"group."
-msgstr ""
-"Você não está autorizado no momento a gerenciar o cliente.\n"
-"Por favor, contate seu administrador para adicioná-lo ao grupo de usuários "
-"local 'usuários_boinc'."
+"Please contact your administrator to add you to the 'boinc_users' local user group."
+msgstr "Você não está autorizado no momento a gerenciar o cliente.\nPor favor, contate seu administrador para adicioná-lo ao grupo de usuários local 'usuários_boinc'."
 
-#: BOINCBaseFrame.cpp:523
+#: clientgui/BOINCBaseFrame.cpp:530
 msgid ""
 "Authorization failed connecting to running client.\n"
 "Make sure you start this program in the same directory as the client."
-msgstr ""
-"Falha em autorização na conexão com cliente em execução.\n"
-"Certifique-se de que iniciou este programa no mesmo diretório que o cliente."
+msgstr "Falha em autorização na conexão com cliente em execução.\nCertifique-se de que iniciou este programa no mesmo diretório que o cliente."
 
-#: BOINCBaseFrame.cpp:525
+#: clientgui/BOINCBaseFrame.cpp:532
 msgid "Authorization failed connecting to running client."
 msgstr "Falha em autorização na conexão com cliente em execução."
 
-#: BOINCBaseFrame.cpp:533
+#: clientgui/BOINCBaseFrame.cpp:540
 msgid "The password you have provided is incorrect, please try again."
 msgstr "A senha fornecida é incorreta. Por favor, tente novamente."
 
-#: BOINCBaseFrame.cpp:577
+#: clientgui/BOINCBaseFrame.cpp:584
 #, c-format
 msgid "%s - Connection Failed"
 msgstr "%s - Conexão Falhou"
 
-#: BOINCBaseFrame.cpp:586
+#: clientgui/BOINCBaseFrame.cpp:593
 #, c-format
 msgid ""
 "%s is not able to connect to a %s client.\n"
 "Would you like to try to connect again?"
-msgstr ""
-"%s não consegue conectar-se com cliente %s.\n"
-"Deseja tentar conexão novamente?"
+msgstr "%s não consegue conectar-se com cliente %s.\nDeseja tentar conexão novamente?"
 
-# "daemon" is a known and very used word among computer users on Brazil. There is no good translation for it.
-#: BOINCBaseFrame.cpp:622
+#: clientgui/BOINCBaseFrame.cpp:629
 #, c-format
 msgid "%s - Daemon Start Failed"
 msgstr "%s - Falha na Inicialização do Daemon"
 
-# "applet" is a known and very used word among computers users on Brazil. There is no good translation for it.
-#: BOINCBaseFrame.cpp:632
+#: clientgui/BOINCBaseFrame.cpp:639
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
-"Please launch the Control Panel->Administative Tools->Services applet and "
-"start the BOINC service."
-msgstr ""
-"%s não consegue inicializar cliente %s.\n"
-"Por favor, execute a applet Painel de Controle->Ferramentas "
-"Administrativas->Serviços e inicie o serviço BOINC."
+"Please launch the Control Panel->Administative Tools->Services applet and start the BOINC service."
+msgstr "%s não consegue inicializar cliente %s.\nPor favor, execute a applet Painel de Controle->Ferramentas Administrativas->Serviços e inicie o serviço BOINC."
 
-# "daemon" is a known and very used word among computer users on Brazil. There is no good translation for it.
-#: BOINCBaseFrame.cpp:638
+#: clientgui/BOINCBaseFrame.cpp:645
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please start the daemon and try again."
-msgstr ""
-"%s não consegue iniciar cliente %s.\n"
-"Por favor, inicie o daemon e tente novamente."
+msgstr "%s não consegue iniciar cliente %s.\nPor favor, inicie o daemon e tente novamente."
 
-#: BOINCBaseFrame.cpp:689
+#: clientgui/BOINCBaseFrame.cpp:696
 #, c-format
 msgid "%s - Connection Status"
 msgstr "%s - Status de Conexão"
 
-#: BOINCBaseFrame.cpp:700
+#: clientgui/BOINCBaseFrame.cpp:707
 #, c-format
 msgid ""
 "%s is not currently connected to a %s client.\n"
-"Please use the 'Advanced\\Select Computer...' menu option to connect up to a "
-"%s client.\n"
+"Please use the 'Advanced\\Select Computer...' menu option to connect up to a %s client.\n"
 "To connect up to your local computer please use 'localhost' as the host name."
-msgstr ""
-"%s não está conectado ao cliente %s no momento.\n"
-"Por favor, use a opção do menu 'Avançado\\Selecionar Computador...' para "
-"conectar-se ao cliente %s.\n"
-"Para conectar-se ao seu computador local, use 'localhost' como nome de "
-"máquina."
-
-#: BOINCBaseView.cpp:779
-#, fuzzy
+msgstr "%s não está conectado ao cliente %s no momento.\nPor favor, use a opção do menu 'Avançado\\Selecionar Computador...' para conectar-se ao cliente %s.\nPara conectar-se ao seu computador local, use 'localhost' como nome de máquina."
+
+#. Create the web sites task group
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
-msgstr "Projeto adicionado"
+msgstr "Páginas web do projeto"
 
-#: BOINCClientManager.cpp:575
+#: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
 msgstr "%s - Saída Inesperada"
 
-#: BOINCClientManager.cpp:585
+#: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
 "Would you like to restart it again?"
-msgstr ""
-"O cliente %s fechou inesperadamente 3 vezes nos últimos %d minutos.\n"
-"Deseja reiniciá-lo novamente?"
+msgstr "O cliente %s fechou inesperadamente 3 vezes nos últimos %d minutos.\nDeseja reiniciá-lo novamente?"
 
-#: BOINCDialupManager.cpp:61
+#: clientgui/BOINCDialupManager.cpp:61
 #, c-format
 msgid "%s - Network Status"
 msgstr "%s - Status de Rede"
 
-#: BOINCDialupManager.cpp:241
+#: clientgui/BOINCDialupManager.cpp:241
 #, c-format
 msgid ""
 "%s needs to connect to the Internet.\n"
 "May it do so now?"
-msgstr ""
-"%s necessita conexão com a Internet.\n"
-"Ele pode fazê-lo agora?"
+msgstr "%s necessita conexão com a Internet.\nEle pode fazê-lo agora?"
 
-#: BOINCDialupManager.cpp:254
+#: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
 msgstr "%s está conectando-se com a Internet."
 
-#: BOINCDialupManager.cpp:303
+#: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
 msgstr "%s conectou-se com a Internet com sucesso."
 
-#: BOINCDialupManager.cpp:331
+#: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
 msgstr "%s falhou ao conectar-se com a Internet."
 
-#: BOINCDialupManager.cpp:372
+#: clientgui/BOINCDialupManager.cpp:372
 #, c-format
 msgid ""
 "%s has detected it is now connected to the Internet.\n"
 "Updating all projects and retrying all transfers."
-msgstr ""
-"%s detectou que está conectado com a Internet.\n"
-"Atualizando todos os projetos e tentando novamente todas as transferências."
+msgstr "%s detectou que está conectado com a Internet.\nAtualizando todos os projetos e tentando novamente todas as transferências."
 
-#: BOINCDialupManager.cpp:417
+#: clientgui/BOINCDialupManager.cpp:417
 #, c-format
 msgid "%s has successfully disconnected from the Internet."
 msgstr "%s desconectou-se da Internet com sucesso."
 
-#: BOINCDialupManager.cpp:433
+#: clientgui/BOINCDialupManager.cpp:433
 #, c-format
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s falhou ao desconectar-se da Internet."
 
-#: BOINCGUIApp.cpp:339
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
-#, fuzzy, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
 "\n"
@@ -836,858 +802,983 @@ msgid ""
 " or\n"
 "  - contact your administrator to add you to the 'boinc_master'\n"
 "     user group."
-msgstr ""
-"Você não está autorizado no momento a gerenciar o cliente.\n"
-"\n"
-"Para executar BOINC com este usuário, por favor:\n"
-"- reinstale o BOINC respondendo \"Sim\" à questão sobre\n"
-"usuários não-administrativos\n"
-"ou\n"
-"- contate seu administrador para adicioná-lo ao grupo de usuários\n"
-"'mestre_boinc'."
-
-#: BOINCGUIApp.cpp:345
+msgstr "Atualmente você não está autorizada a gerenciar o cliente.\n\nPara rodar %s como esse usuário, por favor:\n- reinstale %s respondendo \"Sim\" na questão sobre\nusuários não-administradores\nou\n- contate o seu administrador para adicionar você no\ngrupo de usuários 'boinc_master'."
+
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
-#, fuzzy, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
-msgstr ""
-"Proprietário ou permissões do BOINC não estão configurados corretamente; por "
-"favor, reinstale o BOINC.\n"
-"(Código do erro %d)"
+msgstr "A propriedades ou permissões %s não foram definidas corretamente; por favor reinstale %s.\n(Código do erro %d"
 
-#: BOINCGUIApp.cpp:351
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
-msgstr ""
+msgstr "em"
 
-#: BOINCGUIApp.cpp:354 MainDocument.cpp:2484 MainDocument.cpp:2534
-#: MainDocument.cpp:2554 ViewTransfers.cpp:803
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
-msgstr ""
+msgstr ")"
 
-#: BOINCGUIApp.cpp:384
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
-msgstr ""
-"É necessário reiniciar para execução correta do BOINC.\n"
-"Por favor, reinicie seu computador e tente novamente."
+msgstr "É necessário reiniciar para execução correta do BOINC.\nPor favor, reinicie seu computador e tente novamente."
 
-#: BOINCGUIApp.cpp:385 DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "Gerenciador BOINC"
 
-#: BOINCGUIApp.cpp:572
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
-msgstr ""
-"Gerenciador BOINC foi inicializado pelo sistema operacional automaticamente"
+msgstr "Gerenciador BOINC foi inicializado pelo sistema operacional automaticamente"
 
-#: BOINCGUIApp.cpp:574
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
-msgstr ""
-"Inicializa o BOINC tão somente o ícone na bandeja do sistema seja visível"
+msgstr "Inicializa o BOINC tão somente o ícone na bandeja do sistema seja visível"
 
-#: BOINCGUIApp.cpp:576
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Diretório contendo o executável do Cliente BOINC"
 
-#: BOINCGUIApp.cpp:577
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "diretório de dados do BOINC"
 
-#: BOINCGUIApp.cpp:579
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
-msgstr ""
+msgstr "Nome do host ou endereço IP"
 
-#: BOINCGUIApp.cpp:580
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
-msgstr ""
+msgstr "Número da porta GUI RPC"
 
-#: BOINCGUIApp.cpp:581
-#, fuzzy
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
-msgstr "Senha:"
+msgstr "Senha"
 
-#: BOINCGUIApp.cpp:582
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Inicie o BOINC com esses argumentos opcionais"
 
-#: BOINCGUIApp.cpp:583
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "desativar usuários e permissões de segurança do BOINC"
 
-#: BOINCGUIApp.cpp:584
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
-msgstr ""
-"definir modo depuração de aparência para ativar mensagens de erro do "
-"gerenciador de aparência"
+msgstr "definir modo depuração de aparência para ativar mensagens de erro do gerenciador de aparência"
 
-#: BOINCGUIApp.cpp:585
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
-msgstr ""
+msgstr "múltiplas instâncias do BOINC Manager permitidas"
 
-#: BOINCGUIApp.cpp:587
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
-msgstr ""
+msgstr "Não utilizado: alternativa para o erro no XCode 4.2"
+
+#: clientgui/BOINCGUIApp.cpp:591
+msgid "Not run the daemon"
+msgstr "Não rodar o daemon"
 
-#: BOINCGUIApp.cpp:814
+#. These are just special tags so deal with them in a special way
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Detecção Automática)"
 
-#: BOINCGUIApp.cpp:815
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Desconhecido)"
 
-#: BOINCGUIApp.cpp:816
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Definido pelo Usuário)"
 
-#: BOINCTaskBar.cpp:508
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Abrir Página %s..."
 
-#: BOINCTaskBar.cpp:515
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Abrir %s..."
 
-#: BOINCTaskBar.cpp:522 BOINCTaskBar.cpp:619 BOINCTaskBar.cpp:627
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Cochilar"
 
-#: BOINCTaskBar.cpp:524 BOINCTaskBar.cpp:646 BOINCTaskBar.cpp:654
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Cochilar GPU"
 
-#: BOINCTaskBar.cpp:542
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "S&air"
 
-#: BOINCTaskBar.cpp:612 ViewProjects.cpp:718 ViewWork.cpp:795
-#: sg_BoincSimpleFrame.cpp:758 sg_ProjectCommandPopup.cpp:110
-#: sg_TaskCommandPopup.cpp:102
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
+#: clientgui/sg_ProjectCommandPopup.cpp:125
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
-msgstr ""
+msgstr "Recomeçar"
 
-#: BOINCTaskBar.cpp:639
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
-msgstr ""
+msgstr "Retomar GPU"
 
-#: BOINCTaskBar.cpp:713
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Computação está ativada"
 
-#: BOINCTaskBar.cpp:717
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Computação está suspensa -"
 
-#: BOINCTaskBar.cpp:727
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Computação com GPU está ativada"
 
-#: BOINCTaskBar.cpp:730
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "Computação com GPU está suspensa -"
 
-#: BOINCTaskBar.cpp:739
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Rede está ativada"
 
-#: BOINCTaskBar.cpp:742
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Rede está suspensa -"
 
-#: BOINCTaskBar.cpp:750
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Reconectando ao cliente."
 
-#: BOINCTaskBar.cpp:752
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Não conectado a um cliente."
 
-#: BOINCTaskBar.cpp:805
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Avisos"
 
-#: BOINCTaskBar.cpp:811
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Existem novos avisos - clique para visualizar."
 
-#: CompletionErrorPage.cpp:199
+#: clientgui/CompletionErrorPage.cpp:199
 msgid "Failed to add project"
-msgstr ""
+msgstr "Falhou ao adicionar projeto"
 
-#: CompletionErrorPage.cpp:204
+#: clientgui/CompletionErrorPage.cpp:204
 msgid "Failed to update account manager"
 msgstr "Falha ao atualizar gerenciador de contas"
 
-#: CompletionErrorPage.cpp:208
+#: clientgui/CompletionErrorPage.cpp:208
 msgid "Failed to remove account manager"
 msgstr "Falha ao remover gerenciador de contas"
 
-#: CompletionErrorPage.cpp:212
-#, fuzzy
+#: clientgui/CompletionErrorPage.cpp:212
 msgid "Failed to add account manager"
-msgstr "Falha ao atualizar gerenciador de contas"
+msgstr "Falhou ao adicionar gerenciador de projeto"
 
-#: CompletionErrorPage.cpp:221
+#: clientgui/CompletionErrorPage.cpp:221
 msgid ""
 "Please try again later.\n"
 "\n"
 "Click Finish to close."
-msgstr ""
+msgstr "Por favor tente novamente mais tarde.\n\nClique em Finalizar para fechar."
 
-#: CompletionErrorPage.cpp:225 CompletionPage.cpp:222 CompletionPage.cpp:242
-#: CompletionPage.cpp:273
+#: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
+#: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
 msgid "Click Finish to close."
 msgstr "Clique em Finalizar para fechar."
 
-#: CompletionErrorPage.cpp:234
+#: clientgui/CompletionErrorPage.cpp:234
 msgid "Messages from server:"
 msgstr "Mensagens do servidor:"
 
-#: CompletionPage.cpp:207
+#: clientgui/CompletionPage.cpp:207
 msgid "Project added"
 msgstr "Projeto adicionado"
 
-#: CompletionPage.cpp:213
+#: clientgui/CompletionPage.cpp:213
 msgid "This project has been successfully added."
 msgstr "Este projeto foi adicionado com sucesso."
 
-#: CompletionPage.cpp:218
+#: clientgui/CompletionPage.cpp:218
 msgid ""
 "When you click Finish, your web browser will go to a page where\n"
 "you can set your account name and preferences."
-msgstr ""
-"Quando você clicar em Finalizar, seu navegador irá a uma página onde\n"
-"você poderá definir o nome de sua conta e preferências."
+msgstr "Quando você clicar em Finalizar, seu navegador irá a uma página onde\nvocê poderá definir o nome de sua conta e preferências."
 
-#: CompletionPage.cpp:232
+#: clientgui/CompletionPage.cpp:232
 #, c-format
 msgid "Update from %s completed."
 msgstr "Atualização de %s concluída."
 
-#: CompletionPage.cpp:236
+#: clientgui/CompletionPage.cpp:236
 msgid "Update completed."
 msgstr "Atualização concluída."
 
-#: CompletionPage.cpp:247
+#. Attach Completed
+#: clientgui/CompletionPage.cpp:247
 msgid "Now using account manager"
-msgstr ""
+msgstr "Agora usando gerenciador de conta"
 
-#: CompletionPage.cpp:252
+#: clientgui/CompletionPage.cpp:252
 #, c-format
 msgid "Welcome to %s!"
 msgstr "Bem Vindo a %s!"
 
-#: CompletionPage.cpp:263
+#: clientgui/CompletionPage.cpp:263
 #, c-format
 msgid "You are now using %s to manage accounts."
-msgstr ""
+msgstr "Você agora está usando %s para gerenciar suas contas."
 
-#: CompletionPage.cpp:267
+#: clientgui/CompletionPage.cpp:267
 msgid "You are now using this account manager."
-msgstr ""
+msgstr "Você agora está usando esse gerenciador de contas."
 
-#: DlgAbout.cpp:113 mac/Mac_GUI.cpp:96
+#: clientgui/DlgAbout.cpp:113
 #, c-format
 msgid "About %s"
 msgstr "Sobre %s"
 
-#: DlgAbout.cpp:172
+#: clientgui/DlgAbout.cpp:172
 msgid "Version:"
 msgstr "Versão:"
 
-#: DlgAbout.cpp:180
+#: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
 msgstr "Versão do wxWidgets:"
 
-#: DlgAbout.cpp:188
+#: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
 msgstr "Direitos autorais:"
 
-# 98%
-#: DlgAbout.cpp:192
-#, fuzzy
+#: clientgui/DlgAbout.cpp:192
 msgid ""
-"(C) 2003-2013 University of California, Berkeley.\n"
+"(C) 2003-2015 University of California, Berkeley.\n"
 "All Rights Reserved."
-msgstr ""
-"(C) 2003-2010 Universidade da Califórnia, Berkeley.\n"
-"Todos os Direitos Reservados."
-
-#: DlgAbout.cpp:196
-msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr "Infraestrutura Aberta para Computação em Rede Berkeley"
-
-#: DlgAbout.cpp:208 DlgExitMessage.cpp:173 DlgGenericMessage.cpp:120
-#: DlgOptions.cpp:396 DlgSelectComputer.cpp:163
-msgid "&OK"
-msgstr "%OK"
-
-#: DlgAdvPreferences.cpp:544
-msgid "invalid number"
-msgstr ""
-
-#: DlgAdvPreferences.cpp:545
-msgid "invalid time, format is HH:MM"
-msgstr "tempo inválido, o formato é HH:MM"
-
-#: DlgAdvPreferences.cpp:546
-msgid "invalid time interval, format is HH:MM-HH:MM"
-msgstr "intervalo de tempo inválido, o formato é HH:MM-HH:MM"
-
-#: DlgAdvPreferences.cpp:751
-msgid "invalid input value detected"
-msgstr "detectado valor de entrada inválido"
-
-#: DlgAdvPreferences.cpp:753
-msgid "Validation Error"
-msgstr "Erro de Validação"
-
-#: DlgAdvPreferences.cpp:885 DlgAdvPreferences.cpp:891
-#: DlgAdvPreferences.cpp:897
-msgid "Applications to add"
-msgstr ""
-
-#: DlgAdvPreferences.cpp:914
-#, c-format
-msgid "'%s' is not an executable application."
-msgstr ""
-
-#: DlgAdvPreferences.cpp:915 DlgAdvPreferences.cpp:962
-#: DlgAdvPreferences.cpp:986
-msgid "Add Exclusive App"
-msgstr ""
+msgstr "(C) 2003-2015 Universidade da Califórnia, Berkeley.\nTodos os Direitos Reservados."
 
-#: DlgAdvPreferences.cpp:927
-msgid "Name of application to add?"
-msgstr ""
+#: clientgui/DlgAbout.cpp:196
+msgid "BOINC is distributed under the GNU Lesser General Public License v3.0."
+msgstr "BOINC é distribuído sob a licença GNU Lesser General Public License v3.0."
 
-#: DlgAdvPreferences.cpp:927
-msgid "Add exclusive app"
-msgstr ""
+#: clientgui/DlgAbout.cpp:203
+msgid "For more information, visit "
+msgstr "Para mais informações, visite"
 
-#: DlgAdvPreferences.cpp:961
-#, c-format
-msgid "Application names must end with '%s'"
-msgstr ""
+#: clientgui/DlgAbout.cpp:215 clientgui/DlgExitMessage.cpp:173
+#: clientgui/DlgGenericMessage.cpp:120 clientgui/DlgOptions.cpp:410
+#: clientgui/DlgSelectComputer.cpp:163
+msgid "&OK"
+msgstr "&OK"
 
-#: DlgAdvPreferences.cpp:985
+#: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
-msgid "'%s' is already in the list."
-msgstr ""
+msgid "%s - Computing preferences"
+msgstr "%s - Preferências de computação"
 
-#: DlgAdvPreferences.cpp:1077
+#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:163
 msgid ""
-"Do you really want to clear all local preferences?\n"
-"(This will not affect exclusive applications.)"
-msgstr ""
+"Using local preferences.\n"
+"Click \"Use web prefs\" to use web-based preferences from"
+msgstr "Usando preferências locais.\nClique em \"Usar preferências da web\" para usar preferências da web de"
 
-#: DlgAdvPreferences.cpp:1078 sg_DlgPreferences.cpp:1030
-msgid "Confirmation"
-msgstr "Confirmação"
-
-#: DlgAdvPreferencesBase.cpp:46 sg_DlgPreferences.cpp:946
-#, c-format
-msgid "%s - Preferences"
-msgstr "%s - Preferências"
+#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
+msgid "Using web-based preferences from"
+msgstr "Usando preferências da web de"
 
-#: DlgAdvPreferencesBase.cpp:62
-#, fuzzy
-msgid ""
-"This dialog controls preferences for this computer only.\n"
-"Click OK to set preferences.\n"
-"Click Clear to restore web-based settings (except exclusive apps)."
-msgstr ""
-"Esta caixa de diálogo controla preferências para somente este computador.\n"
-"Clique em OK para definir preferências.\n"
-"Clique em Limpar para restaurar configurações baseadas na internet."
+#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
+msgid "Set values and click OK to use local preferences instead."
+msgstr "Defina os valores e clique em OK para usar preferências locais no lugar."
 
-# "Clear" can be translated into "Limpar" or "Apagar". Both terms have almost the same meaning. In some contexts "Apagar" fits better, and in other contexts "Limpar" fits better. Since I do not know what context the word will be used, I translated "Clear" as "Limpar".
-#: DlgAdvPreferencesBase.cpp:65 sg_DlgPreferences.cpp:428
-msgid "Clear"
-msgstr "Limpar"
+#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
+msgid "Use web prefs"
+msgstr "Usar preferências da web"
 
-#: DlgAdvPreferencesBase.cpp:66
-msgid "clear all local preferences and close the dialog"
-msgstr "limpar todas as preferências locais e fechar caixa de diálogo"
+#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
+msgid "Restore web-based preferences and close the dialog."
+msgstr "Restaurar preferências da web e fechar a caixa de diálogo."
 
-#: DlgAdvPreferencesBase.cpp:81
-msgid "processor usage"
-msgstr "utilização do processador"
+#: clientgui/DlgAdvPreferencesBase.cpp:140
+#: clientgui/DlgAdvPreferencesBase.cpp:684
+msgid "Computing"
+msgstr "Computação"
 
-#: DlgAdvPreferencesBase.cpp:84
-msgid "network usage"
-msgstr "utilização de rede"
+#. Network schedule
+#: clientgui/DlgAdvPreferencesBase.cpp:143
+#: clientgui/DlgAdvPreferencesBase.cpp:886
+msgid "Network"
+msgstr "Rede"
 
-#: DlgAdvPreferencesBase.cpp:87
-msgid "disk and memory usage"
-msgstr "utilização de memória e disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:146
+msgid "Disk and memory"
+msgstr "Disco e memória"
 
-#: DlgAdvPreferencesBase.cpp:90
-msgid "exclusive applications"
-msgstr ""
+#: clientgui/DlgAdvPreferencesBase.cpp:149
+msgid "Daily schedules"
+msgstr "Cronogramas diários"
 
-#: DlgAdvPreferencesBase.cpp:102 sg_DlgPreferences.cpp:424
+#: clientgui/DlgAdvPreferencesBase.cpp:162
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
 
-#: DlgAdvPreferencesBase.cpp:103
-msgid "save all values and close the dialog"
-msgstr "salvar todos os valores e fechar caixa de diálogo"
+#: clientgui/DlgAdvPreferencesBase.cpp:163
+msgid "Save all values and close the dialog."
+msgstr "Salvar todos os valores e fechar a caixa de diálogo."
 
-#: DlgAdvPreferencesBase.cpp:108
-msgid "close the dialog without saving"
-msgstr "fechar caixa de diálogo sem salvar"
+#: clientgui/DlgAdvPreferencesBase.cpp:169
+msgid "Close the dialog without saving."
+msgstr "Fechar a caixa de diálogo sem salvar."
 
-#: DlgAdvPreferencesBase.cpp:112 Localization.cpp:35 Localization.cpp:121
-#: Localization.cpp:139 sg_BoincSimpleFrame.cpp:794 sg_DlgPreferences.cpp:439
+#: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
+#: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
+#: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Ajuda"
 
-#: DlgAdvPreferencesBase.cpp:113
-msgid "shows the preferences web page"
-msgstr "exibe a página de preferências na internet"
-
-#: DlgAdvPreferencesBase.cpp:135
-msgid "Computing allowed"
-msgstr "Processamento permitido"
+#: clientgui/DlgAdvPreferencesBase.cpp:174
+msgid "Shows the preferences web page."
+msgstr "Exibir a página web de preferências."
 
-#: DlgAdvPreferencesBase.cpp:139
-msgid "While computer is on batteries"
-msgstr "Enquanto o computador estiver em baterias"
+#: clientgui/DlgAdvPreferencesBase.cpp:236
+#: clientgui/DlgAdvPreferencesBase.cpp:463
+msgid "Usage limits"
+msgstr "Limites de uso"
 
-#: DlgAdvPreferencesBase.cpp:142
+#: clientgui/DlgAdvPreferencesBase.cpp:241
+#, no-c-format
 msgid ""
-"check this if you want this computer to do work while it runs on batteries"
-msgstr ""
-"selecione isso se deseja que este computador execute trabalho enquanto "
-"estiver em baterias"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Manter alguns CPUs livres para outras aplicações. Exemplo: 75% significa usar 6 núcleos em um CPU de 8 núcleos."
 
-#: DlgAdvPreferencesBase.cpp:148
-msgid "While computer is in use"
-msgstr "Enquanto o computador estiver em uso"
-
-#: DlgAdvPreferencesBase.cpp:151
-msgid ""
-"check this if you want this computer to do work even when you're using it"
-msgstr ""
-"selecione isso se deseja que este computador execute trabalho enquanto você "
-"usa-o"
+#: clientgui/DlgAdvPreferencesBase.cpp:243
+#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
+msgid "Use at most"
+msgstr "Usar ao máximo"
 
-#: DlgAdvPreferencesBase.cpp:157
-msgid "Use GPU while computer is in use"
-msgstr "Usar GPU enquanto o computador estiver em uso"
+#: clientgui/DlgAdvPreferencesBase.cpp:248
+#, no-c-format
+msgid "% of the CPUs"
+msgstr "% das CPUs"
 
-#: DlgAdvPreferencesBase.cpp:160
+#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
+#, no-c-format
 msgid ""
-"check this if you want your GPU to do work even when you're using the "
-"computer"
-msgstr ""
-"selecione isso se deseja que sua GPU execute trabalho enquanto você usa o "
-"computador"
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Suspender/Retomar computação após alguns segundos para reduzir a temperatura do CPU e o uso de energia. Exemplo: 75% significa computação por 3 segundos, espera de 1 segundo, e repete."
 
-#: DlgAdvPreferencesBase.cpp:172
-msgid "Only after computer has been idle for"
-msgstr "Apenas quando o computador estiver ocioso por"
+#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
+#, no-c-format
+msgid "% of CPU time"
+msgstr "% de tempo da CPU"
 
-#: DlgAdvPreferencesBase.cpp:182
-msgid ""
-"do work only after you haven't used the computer for this number of minutes"
-msgstr ""
-"executa trabalho somente depois de você não usar o computador por este "
-"número de minutos"
+#: clientgui/DlgAdvPreferencesBase.cpp:267
+msgid "When to suspend"
+msgstr "Quando suspender"
 
-#: DlgAdvPreferencesBase.cpp:187 DlgAdvPreferencesBase.cpp:336
-#: sg_DlgPreferences.cpp:417
-msgid "minutes"
-msgstr "minutos"
+#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:239
+msgid "Suspend when computer is on battery"
+msgstr "Suspender quando o computador estiver na bateria"
 
-#: DlgAdvPreferencesBase.cpp:206
-msgid "While processor usage is less than"
-msgstr "Enquanto a utilização do processador for menor que"
+#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Marque para suspender a computação em dispositivos portáteis quando estiver na bateria."
 
-#: DlgAdvPreferencesBase.cpp:216
-msgid "suspend work if processor usage exceeds this level"
-msgstr "suspende o trabalho se a utilização do processador exceder este nível"
+#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
+msgid "Suspend when computer is in use"
+msgstr "Suspender quando o computador estiver em uso"
 
-#: DlgAdvPreferencesBase.cpp:221
-msgid "percent (0 means no restriction)"
-msgstr "porcento (0 significa nenhuma restrição)"
+#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Marque para suspender a computação e transferência de arquivos quando você estiver usando o computador."
 
-#: DlgAdvPreferencesBase.cpp:235 DlgAdvPreferencesBase.cpp:496
-msgid "Every day between hours of"
-msgstr "Todos os dias entre os horários de"
+#: clientgui/DlgAdvPreferencesBase.cpp:291
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Suspender uso da GPU quando o computador estiver em uso"
 
-#: DlgAdvPreferencesBase.cpp:239
-msgid "start work at this time"
-msgstr "inicia o trabalho neste horário"
+#: clientgui/DlgAdvPreferencesBase.cpp:294
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Marque para suspender a computação pelo GPU quando você estiver usando o computador."
 
-#: DlgAdvPreferencesBase.cpp:243 DlgAdvPreferencesBase.cpp:504
-#: sg_DlgPreferences.cpp:326 sg_DlgPreferences.cpp:348
-msgid "and"
-msgstr "e"
+#. min idle time
+#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Isso determina quando o computador é considerado 'em uso'."
 
-#: DlgAdvPreferencesBase.cpp:247
-msgid "stop work at this time"
-msgstr "interrompe o trabalho neste horário"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Em uso' significa atividade do mouse/teclado por último"
 
-#: DlgAdvPreferencesBase.cpp:251 DlgAdvPreferencesBase.cpp:512
-msgid "(no restriction if equal)"
-msgstr "(sem restrição se iguais)"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:315
+#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:276
+msgid "minutes"
+msgstr "minutos"
 
-#: DlgAdvPreferencesBase.cpp:256 DlgAdvPreferencesBase.cpp:517
-msgid "Day-of-week override:"
-msgstr "Dia semanal dominante:"
+#: clientgui/DlgAdvPreferencesBase.cpp:323
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Suspender quando o uso de CPU que não seja pelo BOINC for superior"
 
-#: DlgAdvPreferencesBase.cpp:261 DlgAdvPreferencesBase.cpp:522
-msgid "check box to specify hours for this day of week"
-msgstr "selecione esta caixa para especificar horário para este dia da semana"
+#: clientgui/DlgAdvPreferencesBase.cpp:325
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Suspender a computação quando o seu computador estiver ocupado rodando outros programas."
 
-#: DlgAdvPreferencesBase.cpp:267 DlgAdvPreferencesBase.cpp:528
-msgid "Monday"
-msgstr "Segunda-feira"
+#: clientgui/DlgAdvPreferencesBase.cpp:339
+msgid "To suspend by time of day, see the \"Daily Schedules\" section."
+msgstr "Para suspender por um período do dia, ver a seção \"Cronogramas Diários\"."
 
-#: DlgAdvPreferencesBase.cpp:274 DlgAdvPreferencesBase.cpp:535
-msgid "Tuesday"
-msgstr "Terça-feira"
+#. Context: heading for a group of miscellaneous preferences
+#: clientgui/DlgAdvPreferencesBase.cpp:349
+#: clientgui/DlgAdvPreferencesBase.cpp:516
+msgid "Other"
+msgstr "Outro"
 
-#: DlgAdvPreferencesBase.cpp:281 DlgAdvPreferencesBase.cpp:542
-msgid "Wednesday"
-msgstr "Quarta-feira"
+#. buffer sizes
+#: clientgui/DlgAdvPreferencesBase.cpp:355
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Armazenar tarefas suficientes para manter o computador ocupado durante este período."
 
-#: DlgAdvPreferencesBase.cpp:288 DlgAdvPreferencesBase.cpp:549
-msgid "Thursday"
-msgstr "Quinta-feira"
+#. context: Store at least ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:359
+msgid "Store at least"
+msgstr "Armazenar pelo menos"
 
-#: DlgAdvPreferencesBase.cpp:295 DlgAdvPreferencesBase.cpp:556
-msgid "Friday"
-msgstr "Sexta-feira"
+#. context: Store at least ___ days of work
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:370
+#: clientgui/DlgAdvPreferencesBase.cpp:392
+msgid "days of work"
+msgstr "dias de trabalho"
 
-#: DlgAdvPreferencesBase.cpp:302 DlgAdvPreferencesBase.cpp:563
-msgid "Saturday"
-msgstr "Sábado"
+#: clientgui/DlgAdvPreferencesBase.cpp:376
+msgid ""
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Armazenar tarefas adicionais acima do nível mínimo. Determina quanto de trabalho é requisitado ao conectar com um projeto."
 
-#: DlgAdvPreferencesBase.cpp:309 DlgAdvPreferencesBase.cpp:570
-msgid "Sunday"
-msgstr "Domingo"
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:380
+msgid "Store up to an additional"
+msgstr "Armazenar adicionamente até"
 
-#: DlgAdvPreferencesBase.cpp:323
-msgid "Other options"
-msgstr "Outras opções"
+#: clientgui/DlgAdvPreferencesBase.cpp:399
+#, c-format
+msgid "If you run several projects, %s may switch between them this often."
+msgstr "Se você roda vários projetos, %s pode alternar entre eles nesta frequência."
 
-#: DlgAdvPreferencesBase.cpp:330
-msgid "Switch between applications every"
-msgstr "Alternar entre aplicações a cada"
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:404
+msgid "Switch between tasks every"
+msgstr "Alternar entre tarefas a cada"
 
-#: DlgAdvPreferencesBase.cpp:339
-msgid "On multiprocessor systems, use at most"
-msgstr "Em sistemas multiprocessados, usar ao máximo"
+#: clientgui/DlgAdvPreferencesBase.cpp:419
+msgid ""
+"This controls how often tasks save their state to disk, so that they later "
+"can be continued from that point."
+msgstr "Isto controla a frequência em que as tarefas salvam o progresso no disco, para que depois elas possam continuar daquele ponto."
 
-#: DlgAdvPreferencesBase.cpp:346
-#, no-c-format
-msgid "% of the processors (0 means ignore this setting)"
-msgstr ""
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:423
+msgid "Request tasks to checkpoint at most every"
+msgstr "Requisitar salvamento das tarefas no mínimo a cada"
 
-#: DlgAdvPreferencesBase.cpp:349 DlgAdvPreferencesBase.cpp:605
-#: DlgAdvPreferencesBase.cpp:627 DlgAdvPreferencesBase.cpp:648
-#: DlgAdvPreferencesBase.cpp:669 DlgAdvPreferencesBase.cpp:679
-msgid "Use at most"
-msgstr "Usar ao máximo"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:432
+msgid "seconds"
+msgstr "segundos"
 
-#: DlgAdvPreferencesBase.cpp:356
-#, no-c-format
-msgid "% CPU time"
-msgstr "% de tempo da CPU"
+#. upload/download rates
+#: clientgui/DlgAdvPreferencesBase.cpp:469
+msgid "Limit the download rate of file transfers."
+msgstr "Limita a taxa de download para a transferência de arquivos."
 
-#: DlgAdvPreferencesBase.cpp:378
-msgid "General options"
-msgstr "Opções gerais"
+#: clientgui/DlgAdvPreferencesBase.cpp:470
+msgid "Limit download rate to"
+msgstr "Limitar taxa de download para"
 
-# "download" is a known and very used word among computer users on Brazil, and has no good translation in this context. Translating it may be unbecoming.
-#: DlgAdvPreferencesBase.cpp:386
-msgid "Maximum download rate"
-msgstr "Taxa máxima de download"
+#: clientgui/DlgAdvPreferencesBase.cpp:474
+#: clientgui/DlgAdvPreferencesBase.cpp:483
+msgid "KB/second"
+msgstr "KB/segundo"
 
-#: DlgAdvPreferencesBase.cpp:392 DlgAdvPreferencesBase.cpp:401
-msgid "KBytes/sec."
-msgstr "KBytes/s."
+#: clientgui/DlgAdvPreferencesBase.cpp:478
+msgid "Limit the upload rate of file transfers."
+msgstr "Limita a taxa de upload para a transferência de arquivos."
 
-# "upload" is a known and very used term among computer users on Brazil. There is no good translation for it on this context.
-#: DlgAdvPreferencesBase.cpp:395
-msgid "Maximum upload rate"
-msgstr "Taxa máxima de upload"
+#: clientgui/DlgAdvPreferencesBase.cpp:479
+msgid "Limit upload rate to"
+msgstr "Limitar taxa de upload para"
 
-#: DlgAdvPreferencesBase.cpp:406
-msgid "Transfer at most"
-msgstr "Transferir ao máximo"
+#: clientgui/DlgAdvPreferencesBase.cpp:490
+#, c-format
+msgid "Example: %s should transfer at most 2000 MB of data every 30 days."
+msgstr "Exemplo: %s deve transferir no máximo 2000 MB de dados cada 30 dias."
 
-#: DlgAdvPreferencesBase.cpp:412
-msgid "Mbytes"
-msgstr "Mbytes"
+#: clientgui/DlgAdvPreferencesBase.cpp:492
+msgid "Limit usage to"
+msgstr "Limitar uso para"
 
-#: DlgAdvPreferencesBase.cpp:415
-msgid "every"
-msgstr "a cada"
+#: clientgui/DlgAdvPreferencesBase.cpp:496
+msgid "MB every"
+msgstr "cada MB"
 
-#: DlgAdvPreferencesBase.cpp:421 DlgAdvPreferencesBase.cpp:444
-#: DlgAdvPreferencesBase.cpp:463
+#: clientgui/DlgAdvPreferencesBase.cpp:500
 msgid "days"
 msgstr "dias"
 
-# "buffer" is a known and very used word among computer users on Brazil. There is no good translation for it.
-#: DlgAdvPreferencesBase.cpp:429
-#, fuzzy
-msgid "Minimum work buffer"
-msgstr "Buffer de trabalho adicional"
-
-#: DlgAdvPreferencesBase.cpp:438
-msgid "Try to maintain enough tasks to keep busy for this many days"
-msgstr ""
-
-# "buffer" is a known and very used word among computer users on Brazil. There is no good translation for it.
-#: DlgAdvPreferencesBase.cpp:450
-#, fuzzy
-msgid "Max additional work buffer"
-msgstr "Buffer de trabalho adicional"
-
-#: DlgAdvPreferencesBase.cpp:459
-msgid "In addition, maintain enough tasks for up to this many days"
-msgstr ""
-
-#: DlgAdvPreferencesBase.cpp:466
-msgid "Skip image file verification"
-msgstr "Omitir verificação de arquivos de imagens"
+#: clientgui/DlgAdvPreferencesBase.cpp:505
+msgid "To limit transfers by time of day, see the \"Daily Schedules\" section."
+msgstr "Para limitar por um período do dia, ver a seção \"Cronogramas Diários\"."
 
-#: DlgAdvPreferencesBase.cpp:468
-msgid "check this if your Internet provider modifies image files"
-msgstr "selecione isso se seu provedor de Internet modifica arquivos de imagens"
+#: clientgui/DlgAdvPreferencesBase.cpp:522
+#, c-format
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of %s."
+msgstr "Verifique isso apenas se o seu provedor de Internet modificar arquivos de imagem. Pular a verificação reduz a segurança de %s."
 
-#: DlgAdvPreferencesBase.cpp:476
-msgid "Connect options"
-msgstr "Opções de conexão"
+#: clientgui/DlgAdvPreferencesBase.cpp:524
+msgid "Skip data verification for image files"
+msgstr "Pular verificação de dados para arquivos de imagem"
 
-#: DlgAdvPreferencesBase.cpp:478
-msgid "Confirm before connecting to internet"
-msgstr "Confirmar antes de conectar-se à internet"
+#: clientgui/DlgAdvPreferencesBase.cpp:528
+msgid "Confirm before connecting to Internet"
+msgstr "Confirmar antes de conectar na Internet"
 
-#: DlgAdvPreferencesBase.cpp:480
-msgid ""
-"if checked, a confirmation dialog will be displayed before trying to connect "
-"to the Internet"
-msgstr ""
-"se selecionado, uma caixa de texto de confirmação será exibida antes de "
-"tentar conectar-se à Internet"
+#: clientgui/DlgAdvPreferencesBase.cpp:529
+#: clientgui/DlgAdvPreferencesBase.cpp:533
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Útil apenas se você tem um modem, ISDN ou conexão VPN."
 
-#: DlgAdvPreferencesBase.cpp:484
+#: clientgui/DlgAdvPreferencesBase.cpp:532
 msgid "Disconnect when done"
 msgstr "Desconectar quando pronto"
 
-#: DlgAdvPreferencesBase.cpp:486
-msgid ""
-"if checked, BOINC hangs up when network usage is done\n"
-"(only relevant for dialup-connection)"
-msgstr ""
-"se selecionado, o BOINC irá desligar quando finalizar o uso de rede\n"
-"(relevante somente para conexão discada)"
-
-#: DlgAdvPreferencesBase.cpp:492
-msgid "Network usage allowed"
-msgstr "Uso de rede permitido"
+#: clientgui/DlgAdvPreferencesBase.cpp:559 clientgui/ViewResources.cpp:116
+msgid "Disk"
+msgstr "Disco"
 
-#: DlgAdvPreferencesBase.cpp:500
-msgid "network usage start hour"
-msgstr "horário de início do uso de rede"
+#: clientgui/DlgAdvPreferencesBase.cpp:564
+#, c-format
+msgid "%s will use the most restrictive of these settings:"
+msgstr "%s irá usar as mais restritivas dessas configurações:"
 
-#: DlgAdvPreferencesBase.cpp:508
-msgid "network usage stop hour"
-msgstr "horário de término do uso de rede"
+#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
+#, c-format
+msgid "Limit the total amount of disk space used by %s."
+msgstr "Limitar o montante total de espaço usado do disco para %s."
 
-#: DlgAdvPreferencesBase.cpp:598 DlgItemProperties.cpp:231
-msgid "Disk usage"
-msgstr "Utilização de disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:573
+#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
+msgid "Use no more than"
+msgstr "Não usar mais que"
 
-#: DlgAdvPreferencesBase.cpp:609
-msgid "the maximum disk space used by BOINC (in Gigabytes)"
-msgstr "o máximo uso de disco pelo BOINC (em Gigabytes)"
+#: clientgui/DlgAdvPreferencesBase.cpp:577
+msgid "GB"
+msgstr "GB"
 
-#: DlgAdvPreferencesBase.cpp:613
-msgid "Gigabytes disk space"
-msgstr "Gigabytes de espaço em disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:582
+#, c-format
+msgid ""
+"Limit disk usage to leave this much free space on the volume where %s stores"
+" data."
+msgstr "Limitar uso do disco para deixar este tanto de espaço livre no volume onde %s armazena os dados."
 
-#: DlgAdvPreferencesBase.cpp:616
+#: clientgui/DlgAdvPreferencesBase.cpp:585
 msgid "Leave at least"
 msgstr "Deixar ao menos"
 
-#: DlgAdvPreferencesBase.cpp:620
-msgid "BOINC leaves at least this amount of disk space free (in Gigabytes)"
-msgstr ""
-"BOINC deixa ao menos esta quantidade de espaço livre em disco (em Gibabytes)"
-
-#: DlgAdvPreferencesBase.cpp:624
-msgid "Gigabytes disk space free"
-msgstr "Gigabytes de espaço livre em disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:589
+msgid "GB free"
+msgstr "GB livres"
 
-#: DlgAdvPreferencesBase.cpp:631
-msgid "BOINC uses at most this percentage of total disk space"
-msgstr "BOINC usa ao máximo esta porcentagem do espaço total em disco"
+#: clientgui/DlgAdvPreferencesBase.cpp:594
+#, c-format
+msgid ""
+"Limit the percentage of disk space used by %s on the volume where it stores "
+"data."
+msgstr "Limitar a porcentagem de espaço do disco usado por %s no volume onde ele mantêm seus dados."
 
-#: DlgAdvPreferencesBase.cpp:636
+#: clientgui/DlgAdvPreferencesBase.cpp:602
 #, no-c-format
-msgid "% of total disk space"
-msgstr "% do espaço total em disco"
+msgid "% of total"
+msgstr "5 do total"
 
-#: DlgAdvPreferencesBase.cpp:639
-#, fuzzy
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Tarefas verificam disco ao máximo a cada"
+#: clientgui/DlgAdvPreferencesBase.cpp:609
+msgid "Memory"
+msgstr "Memória"
 
-#: DlgAdvPreferencesBase.cpp:645
-msgid "seconds"
-msgstr "segundos"
+#: clientgui/DlgAdvPreferencesBase.cpp:614
+#, c-format
+msgid "Limit the memory used by %s when you're using the computer."
+msgstr "Limitar a memória usada pelo %s quando você estiver usando o computador."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:616
+msgid "When computer is in use, use at most"
+msgstr "Quando o computador estiver em uso, usar no máximo"
 
-#: DlgAdvPreferencesBase.cpp:655
+#: clientgui/DlgAdvPreferencesBase.cpp:622
+#: clientgui/DlgAdvPreferencesBase.cpp:634
+#: clientgui/DlgAdvPreferencesBase.cpp:650
 #, no-c-format
-msgid "% of page file (swap space)"
-msgstr "% do arquivo de página (espaço de troca)"
+msgid "%"
+msgstr "%"
 
-#: DlgAdvPreferencesBase.cpp:662
-msgid "Memory usage"
-msgstr "Utilização de memória"
+#: clientgui/DlgAdvPreferencesBase.cpp:627
+#, c-format
+msgid "Limit the memory used by %s when you're not using the computer."
+msgstr "Limitar a memória usada pelo %s quando você não estiver usando o computador."
 
-#: DlgAdvPreferencesBase.cpp:676
-#, no-c-format
-msgid "% when computer is in use"
-msgstr "% quando o computador está em uso"
+#: clientgui/DlgAdvPreferencesBase.cpp:629
+msgid "When computer is not in use, use at most"
+msgstr "Quando o computador não estiver em uso, usar no máximo"
 
-#: DlgAdvPreferencesBase.cpp:686
-#, no-c-format
-msgid "% when computer is idle"
-msgstr "% quando o computador está ocioso"
+#: clientgui/DlgAdvPreferencesBase.cpp:638
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Deixar tarefas que não usam GPU na memória quando suspensas"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:639
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Caso marcado, tarefas suspensas ficarão na memória, e resumirão com nenhuma perda de trabalho. Se desmarcado, tarefas suspensas serão removidas da memória, e resumirão do último ponto salvo."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:643
+#, c-format
+msgid "Limit the swap space (page file) used by %s."
+msgstr "Limitar o espaço de troca (arquivo de paginação) usado para %s."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:645
+msgid "Page/swap file: use at most"
+msgstr "Arquivo de paginação/troca: usar no máximo"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
+msgid "and"
+msgstr "e"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:671
+msgid "to"
+msgstr "até"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:296
+msgid "Compute only during a particular period each day."
+msgstr "Computar apenas durante um período particular do dia."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:299
+msgid "Compute only between"
+msgstr "Computar apenas entre"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:718
+#: clientgui/DlgAdvPreferencesBase.cpp:902
+msgid "Day-of-week override"
+msgstr "Sobrescrever dia da semana"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:727
+#: clientgui/DlgAdvPreferencesBase.cpp:906
+msgid "Override the times above on the selected days:"
+msgstr "Sobrescrever os horários acima nos dias selecionados:"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:750
+#: clientgui/DlgAdvPreferencesBase.cpp:923
+msgid "Monday"
+msgstr "Segunda-feira"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:777
+#: clientgui/DlgAdvPreferencesBase.cpp:938
+msgid "Friday"
+msgstr "Sexta-feira"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:792
+#: clientgui/DlgAdvPreferencesBase.cpp:951
+msgid "Tuesday"
+msgstr "Terça-feira"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:807
+#: clientgui/DlgAdvPreferencesBase.cpp:966
+msgid "Saturday"
+msgstr "Sábado"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:820
+#: clientgui/DlgAdvPreferencesBase.cpp:979
+msgid "Wednesday"
+msgstr "Quarta-feira"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:835
+#: clientgui/DlgAdvPreferencesBase.cpp:994
+msgid "Sunday"
+msgstr "Domingo"
 
-#: DlgAdvPreferencesBase.cpp:691
-msgid "Leave applications in memory while suspended"
-msgstr "Deixar aplicações em memória enquanto suspensas"
+#: clientgui/DlgAdvPreferencesBase.cpp:848
+#: clientgui/DlgAdvPreferencesBase.cpp:1007
+msgid "Thursday"
+msgstr "Quinta-feira"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
+msgid "Transfer files only during a particular period each day."
+msgstr "Transferir arquivos apenas durante um período particular do dia."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
+msgid "Transfer files only between"
+msgstr "Transferir arquivos apenas entre"
+
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Número inválido"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Hora inválida, o valor deve estar entre 0:00 e 24:00, o formato é HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "A hora inicial deve ser diferente da hora final"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "O número deve estar entre 0 e 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "O número deve estar entre 0 e 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "O número deve estar entre 1 e 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "detectado valor de entrada inválido"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Erro de Validação"
 
-#: DlgAdvPreferencesBase.cpp:693
-msgid "if checked, suspended work units are left in memory"
-msgstr "se selecionado, unidades de trabalho suspensas são deixadas em memória"
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Descartar preferências locais e utilizar preferências da web?"
 
-#: DlgAdvPreferencesBase.cpp:713
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Confirmação"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
+#, c-format
+msgid "%s Diagnostic Log Flags"
+msgstr "%s Alertas do Log de Diagnóstico"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
-"Suspend processor and network usage when these applications are running:"
-msgstr ""
+"These flags enable various types of diagnostic messages in the Event Log."
+msgstr "Estes alertas permitem vários tipos de mensagens de diagnóstico no Log de Eventos."
 
-#: DlgAdvPreferencesBase.cpp:722
-msgid "Add..."
-msgstr ""
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
+msgid "More info ..."
+msgstr "Mais informações..."
 
-#: DlgAdvPreferencesBase.cpp:723
-msgid "Add an application to this list"
-msgstr ""
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
+msgid "Save all values and close the dialog"
+msgstr "Salvar todos os valores e fechar a caixa de diálogo"
 
-#: DlgAdvPreferencesBase.cpp:728 ViewProjects.cpp:202
-#: sg_ProjectCommandPopup.cpp:85
-msgid "Remove"
-msgstr ""
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
+msgid "Defaults"
+msgstr "Padrões"
 
-#: DlgAdvPreferencesBase.cpp:729
-msgid "Remove an application from this list"
-msgstr ""
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
+msgid "Restore default settings"
+msgstr "Restaurar configurações padrão"
 
-#: DlgAdvPreferencesBase.cpp:738
-msgid "For advanced options, refer to "
-msgstr ""
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
+msgid "Close the dialog without saving"
+msgstr "Fechar o diálogo sem salvar"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Aplicar"
 
-#: DlgEventLog.cpp:219
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Salvar todos os valores"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Registro de Eventos"
 
-#: DlgEventLog.cpp:232 ViewMessages.cpp:117 ViewProjects.cpp:219
-#: ViewStatistics.cpp:435 ViewStatistics.cpp:2009 ViewTransfers.cpp:182
-#: ViewWork.cpp:232
+#. Create List Pane Items
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
+#: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
+#: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
+#: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projeto"
 
-# "Time" can be translated in several ways. At this context (I know where it will be placed), "Momento" fits very well.
-#: DlgEventLog.cpp:233 ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Momento"
 
-#: DlgEventLog.cpp:234 ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Mensagem"
 
-#: DlgEventLog.cpp:290 DlgEventLog.cpp:354
-#, fuzzy
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
-msgstr "Mostrar somente este projeto"
+msgstr "&Mostrar apenas este projeto"
 
-#: DlgEventLog.cpp:294
-#, fuzzy
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
-msgstr "Copiar Tudo"
+msgstr "Copiar &Tudo"
 
-#: DlgEventLog.cpp:296 DlgEventLog.cpp:300 ViewMessages.cpp:89
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
+#: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Copiar todas as mensagens para a área de transferência."
 
-#: DlgEventLog.cpp:305
-#, fuzzy
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
-msgstr "Copiar Seleção"
+msgstr "Copiar &Selecionado"
 
-#: DlgEventLog.cpp:308 DlgEventLog.cpp:316 ViewMessages.cpp:97
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
+#: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or command key while clicking on messages."
-msgstr ""
-"Copia as mensagens selecionadas para a área de transferência. Você pode "
-"selecionar múltiplas mensagens mantendo shift pressionado ou tecla de "
-"comando enquanto clica nas mensagens."
+"messages by holding down the shift or command key while clicking on "
+"messages."
+msgstr "Copia as mensagens selecionadas para a área de transferência. Você pode selecionar múltiplas mensagens mantendo shift pressionado ou tecla de comando enquanto clica nas mensagens."
 
-#: DlgEventLog.cpp:310 DlgEventLog.cpp:318 ViewMessages.cpp:99
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
+#: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
-"messages by holding down the shift or control key while clicking on messages."
-msgstr ""
-"Copia as mensagens selecionadas para a área de transferência. Você pode "
-"selecionar múltiplas mensagens mantendo pressionado shift ou tecla de "
-"controle enquanto clica nas mensagens."
+"messages by holding down the shift or control key while clicking on "
+"messages."
+msgstr "Copia as mensagens selecionadas para a área de transferência. Você pode selecionar múltiplas mensagens mantendo pressionado shift ou tecla de controle enquanto clica nas mensagens."
 
-#: DlgEventLog.cpp:325 DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Fechar"
 
-#: DlgEventLog.cpp:334 sg_BoincSimpleFrame.cpp:798 sg_DlgPreferences.cpp:442
-#, c-format
-msgid "Get help with %s"
-msgstr ""
-
-#: DlgEventLog.cpp:348
-#, fuzzy
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
-msgstr "Mostrar todas as mensagens"
+msgstr "Mostrar todas as &Mensagens"
 
-#: DlgEventLog.cpp:349 DlgEventLog.cpp:351
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Mostrar mensagens de todos os projetos"
 
-#: DlgEventLog.cpp:355 DlgEventLog.cpp:357
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Mostrar somente mensagens do projeto selecionado"
 
-#: DlgExitMessage.cpp:82
+#: clientgui/DlgExclusiveApps.cpp:60
+#, c-format
+msgid "%s - Exclusive Applications"
+msgstr "%s - Aplicações Exclusivas"
+
+#: clientgui/DlgExclusiveApps.cpp:72
+msgid ""
+"Suspend processor and network usage when these applications are running:"
+msgstr "Suspender processamento e uso da rede quando estes aplicativos estiverem rodando:"
+
+#: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
+msgid "Add..."
+msgstr "Adicionar..."
+
+#: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
+msgid "Add an application to this list"
+msgstr "Adicionar uma aplicação nesta lista"
+
+#: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
+msgid "Remove"
+msgstr "Remover"
+
+#: clientgui/DlgExclusiveApps.cpp:87 clientgui/DlgExclusiveApps.cpp:111
+msgid "Remove an application from this list"
+msgstr "Remover uma aplicação desta lista"
+
+#: clientgui/DlgExclusiveApps.cpp:96
+msgid "Suspend GPU usage when these applications are running:"
+msgstr "Suspender uso da GPU quando estes aplicativos estiverem rodando:"
+
+#: clientgui/DlgExclusiveApps.cpp:122
+msgid "For advanced options, refer to "
+msgstr "Para opções avançadas, consulte"
+
+#: clientgui/DlgExclusiveApps.cpp:147
+msgid "save all values and close the dialog"
+msgstr "salvar todos os valores e fechar caixa de diálogo"
+
+#: clientgui/DlgExclusiveApps.cpp:153
+msgid "close the dialog without saving"
+msgstr "fechar caixa de diálogo sem salvar"
+
+#: clientgui/DlgExclusiveApps.cpp:158
+msgid "shows the preferences web page"
+msgstr "exibe a página de preferências na internet"
+
+#. TODO: fill in the default directory for MSW
+#. TODO: fill in the default directory for Linux
+#: clientgui/DlgExclusiveApps.cpp:303 clientgui/DlgExclusiveApps.cpp:309
+#: clientgui/DlgExclusiveApps.cpp:315
+msgid "Applications to add"
+msgstr "Aplicações para adicionar"
+
+#: clientgui/DlgExclusiveApps.cpp:332
+#, c-format
+msgid "'%s' is not an executable application."
+msgstr "'%s' não é uma aplicação executável."
+
+#: clientgui/DlgExclusiveApps.cpp:333 clientgui/DlgExclusiveApps.cpp:380
+#: clientgui/DlgExclusiveApps.cpp:404
+msgid "Add Exclusive App"
+msgstr "Adicionar App Exclusivo"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Name of application to add?"
+msgstr "Nome da aplicação para adicionar?"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Add exclusive app"
+msgstr "Adicionar app exclusivo"
+
+#: clientgui/DlgExclusiveApps.cpp:379
+#, c-format
+msgid "Application names must end with '%s'"
+msgstr "O nome das aplicações deve terminar com '%s'"
+
+#: clientgui/DlgExclusiveApps.cpp:403
+#, c-format
+msgid "'%s' is already in the list."
+msgstr "'%s' já está na lista."
+
+#: clientgui/DlgExitMessage.cpp:82
 #, c-format
 msgid "%s - Exit Confirmation"
 msgstr "%s - Confirmação de Saída"
 
-#: DlgExitMessage.cpp:130
+#: clientgui/DlgExitMessage.cpp:130
 #, c-format
 msgid ""
 "You have requested to exit the %s,\n"
@@ -1696,11 +1787,10 @@ msgid ""
 "\n"
 "If you also want to stop running the tasks,\n"
 "choose from the following options:"
-msgstr ""
+msgstr "Você pediu para sair de %s,\nque permite a você ver e administrar\nas tarefas rodando em seu computador.\n\nSe você também quiser parar de rodar as tarefas,\nescolha entre as seguintes opções:"
 
-#: DlgExitMessage.cpp:135
+#: clientgui/DlgExitMessage.cpp:135
 #, c-format
-#, fuzzy, c-format
 msgid ""
 "This will shut down %s and its tasks until either the\n"
 "%s or the %s screen saver is run again.\n"
@@ -1708,967 +1798,1020 @@ msgid ""
 "In most cases, it is better just to close the %s window\n"
 "rather than to exit the application; that will allow %s to run its\n"
 "tasks at the times you selected in your preferences."
-msgstr ""
-"Isso irá desligar %s e suas tarefas completamente até que a\n"
-"aplicação %s ou a proteção de tela %s sejam executadas novamente.\n"
-"\n"
-"Em muitos casos, é melhor simplesmente fechar a janela %s\n"
-"ao invés de sair da aplicação; aquela permitirá %s a executar suas\n"
-"tarefas nos momentos que selecionou em suas preferências."
+msgstr "Isso irá desligar %s e suas tarefas completamente até que a\naplicação %s ou a proteção de tela %s sejam executadas novamente.\n\nEm muitos casos, é melhor simplesmente fechar a janela %s\nao invés de sair da aplicação; aquela permitirá %s a executar suas\ntarefas nos momentos que selecionou em suas preferências."
 
-#: DlgExitMessage.cpp:153
+#: clientgui/DlgExitMessage.cpp:153
 #, c-format
 msgid "Stop running tasks when exiting the %s"
-msgstr ""
+msgstr "Parar tarefas que estiverem rodando ao sair do %s"
 
-#: DlgExitMessage.cpp:165
+#: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
 msgstr "Lembrar esta decisão e não mostrar esta caixa de diálogo."
 
-#: DlgExitMessage.cpp:178 DlgGenericMessage.cpp:125 DlgOptions.cpp:401
-#: DlgSelectComputer.cpp:168 wizardex.cpp:378
+#: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
+#: clientgui/DlgOptions.cpp:415 clientgui/DlgSelectComputer.cpp:168
+#: clientgui/wizardex.cpp:378
 msgid "&Cancel"
 msgstr "&Cancelar"
 
-#: DlgGenericMessage.cpp:112
+#: clientgui/DlgGenericMessage.cpp:112
 msgid "Don't show this dialog again."
 msgstr "Não mostrar esta caixa de diálogo novamente."
 
-#: DlgItemProperties.cpp:168 DlgItemProperties.cpp:171
-#: DlgItemProperties.cpp:174 DlgItemProperties.cpp:177
-#, fuzzy
-msgid "Don't fetch tasks for "
-msgstr "Não buscar tarefas de CPU"
+#: clientgui/DlgHiddenColumns.cpp:64
+#, c-format
+msgid "%s Column Selection"
+msgstr "%s Seleção de Coluna"
+
+#: clientgui/DlgHiddenColumns.cpp:77
+#, c-format
+msgid "Select which columns %s should show."
+msgstr "Selecione quais colunas %s deve mostrar."
+
+#: clientgui/DlgHiddenColumns.cpp:358
+msgid ""
+"Are you sure you want to reset all list columns to the default "
+"configurations?"
+msgstr "Você tem certeza que deseja resetar todas listas de colunas para as configurações padrão?"
+
+#: clientgui/DlgHiddenColumns.cpp:359
+msgid "Confirm defaults"
+msgstr "Confirmar padrões"
+
+#: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
+#: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
+msgid "Don't request tasks for "
+msgstr "Não solicitar mais tarefas para"
 
-#: DlgItemProperties.cpp:168
+#: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
 msgstr "Preferência do projeto"
 
-#: DlgItemProperties.cpp:171
-#, fuzzy
+#: clientgui/DlgItemProperties.cpp:197
 msgid "Account manager preference"
-msgstr "Página do gerenciador de contas na internet"
+msgstr "Preferências do gerenciador de contas"
 
-#: DlgItemProperties.cpp:174
+#: clientgui/DlgItemProperties.cpp:200
 msgid "Project has no apps for "
-msgstr ""
+msgstr "O projeto não tem aplicativos"
 
-#: DlgItemProperties.cpp:177
+#: clientgui/DlgItemProperties.cpp:203
 msgid "Client configuration excludes "
-msgstr ""
+msgstr "Exclusões da configuração do cliente"
 
-#: DlgItemProperties.cpp:181
-#, fuzzy
-msgid " work fetch deferred for"
-msgstr "Busca de trabalho de CPU diferido por"
+#: clientgui/DlgItemProperties.cpp:209
+#, c-format
+msgid "%s task request deferred for"
+msgstr "%s solicitação de tarefa adiada por"
 
-#: DlgItemProperties.cpp:182
-#, fuzzy
-msgid " work fetch deferral interval"
-msgstr "Intervalo de diferimento de busca de trabalho de CPU"
+#: clientgui/DlgItemProperties.cpp:213
+#, c-format
+msgid "%s task request deferral interval"
+msgstr "%s intervalo para adiar a solicitação de tarefa"
 
-#: DlgItemProperties.cpp:213
+#. set dialog title
+#: clientgui/DlgItemProperties.cpp:247
 msgid "Properties of project "
 msgstr "Propriedades do projeto"
 
-#: DlgItemProperties.cpp:217 DlgOptions.cpp:218
+#. layout controls
+#: clientgui/DlgItemProperties.cpp:251 clientgui/DlgOptions.cpp:232
 msgid "General"
 msgstr "Geral"
 
-#: DlgItemProperties.cpp:218
-msgid "Master URL"
-msgstr "URL mestre"
+#: clientgui/DlgItemProperties.cpp:252
+msgid "URL"
+msgstr "URL"
 
-#: DlgItemProperties.cpp:219
+#: clientgui/DlgItemProperties.cpp:253
 msgid "User name"
 msgstr "Nome do usuário"
 
-#: DlgItemProperties.cpp:220
+#: clientgui/DlgItemProperties.cpp:254
 msgid "Team name"
 msgstr "Nome do time"
 
-#: DlgItemProperties.cpp:221 ViewProjects.cpp:224
+#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:256
 msgid "Resource share"
 msgstr "Compartilhamento de recursos"
 
-#: DlgItemProperties.cpp:223
+#: clientgui/DlgItemProperties.cpp:257
 msgid "Scheduler RPC deferred for"
 msgstr "Escalonador RPC diferido para"
 
-#: DlgItemProperties.cpp:226
+#: clientgui/DlgItemProperties.cpp:260
 msgid "File downloads deferred for"
 msgstr "Download de arquivos diferido para"
 
-#: DlgItemProperties.cpp:229
+#: clientgui/DlgItemProperties.cpp:263
 msgid "File uploads deferred for"
 msgstr "Upload de arquivos diferido para"
 
-#: DlgItemProperties.cpp:232
+#: clientgui/DlgItemProperties.cpp:265
+msgid "Disk usage"
+msgstr "Utilização de disco"
+
+#: clientgui/DlgItemProperties.cpp:266
 msgid "Computer ID"
 msgstr "ID do computador"
 
-#: DlgItemProperties.cpp:234
+#: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
 msgstr "Não-intensivo de CPU"
 
-#: DlgItemProperties.cpp:234 DlgItemProperties.cpp:236
-#: DlgItemProperties.cpp:237 DlgItemProperties.cpp:239
-#: DlgItemProperties.cpp:242 DlgItemProperties.cpp:251
-#: DlgItemProperties.cpp:254 DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:268 clientgui/DlgItemProperties.cpp:270
+#: clientgui/DlgItemProperties.cpp:271 clientgui/DlgItemProperties.cpp:273
+#: clientgui/DlgItemProperties.cpp:276 clientgui/DlgItemProperties.cpp:285
+#: clientgui/DlgItemProperties.cpp:288 clientgui/DlgItemProperties.cpp:291
 msgid "yes"
 msgstr "sim"
 
-#: DlgItemProperties.cpp:236
+#: clientgui/DlgItemProperties.cpp:270
 msgid "Suspended via GUI"
 msgstr "Suspenso via GUI"
 
-#: DlgItemProperties.cpp:236 DlgItemProperties.cpp:237
+#: clientgui/DlgItemProperties.cpp:270 clientgui/DlgItemProperties.cpp:271
 msgid "no"
 msgstr "não"
 
-#: DlgItemProperties.cpp:237
-msgid "Don't request more work"
-msgstr "Não solicitar mais trabalho"
+#: clientgui/DlgItemProperties.cpp:271
+msgid "Don't request tasks"
+msgstr "Não solicitar tarefas"
 
-#: DlgItemProperties.cpp:239
+#: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
 msgstr "Chamada do escalonador em progresso"
 
-#: DlgItemProperties.cpp:242
+#: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
-msgstr ""
+msgstr "Mensagem ao servidor pendente"
 
-#: DlgItemProperties.cpp:245 DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:279 clientgui/DlgItemProperties.cpp:281
 msgid "Host location"
-msgstr ""
+msgstr "Localização do Host"
 
-#: DlgItemProperties.cpp:247
-#, fuzzy
+#: clientgui/DlgItemProperties.cpp:281
 msgid "default"
-msgstr "&Definir Padrão"
+msgstr "Padrão"
 
-#: DlgItemProperties.cpp:251
+#: clientgui/DlgItemProperties.cpp:285
 msgid "Added via account manager"
 msgstr "Adicionado via gerenciador de contas"
 
-#: DlgItemProperties.cpp:254
+#: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
 msgstr "Remover quando tarefas concluídas"
 
-#: DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
 msgstr "Finalizado"
 
-#: DlgItemProperties.cpp:259
+#: clientgui/DlgItemProperties.cpp:293
+msgid "Tasks completed"
+msgstr "Tarefas completas"
+
+#: clientgui/DlgItemProperties.cpp:294
+msgid "Tasks failed"
+msgstr "Tarefas que falharam"
+
+#: clientgui/DlgItemProperties.cpp:296
 msgid "Credit"
 msgstr "Crédito"
 
-#: DlgItemProperties.cpp:260
+#: clientgui/DlgItemProperties.cpp:297
 msgid "User"
 msgstr "Usuário"
 
-#: DlgItemProperties.cpp:267
+#: clientgui/DlgItemProperties.cpp:300 clientgui/DlgItemProperties.cpp:308
+#, c-format
+msgid "%s total, %s average"
+msgstr "%s total, %s média"
+
+#: clientgui/DlgItemProperties.cpp:305
 msgid "Host"
-msgstr "Máquina"
+msgstr "Host"
 
-#: DlgItemProperties.cpp:276
+#: clientgui/DlgItemProperties.cpp:315
 msgid "Scheduling"
 msgstr "Escalonamento"
 
-#: DlgItemProperties.cpp:277
-#, fuzzy
+#: clientgui/DlgItemProperties.cpp:316
 msgid "Scheduling priority"
-msgstr "Prioridade de escalonamento da CPU"
+msgstr "Prioridade do agendamento"
 
-#: DlgItemProperties.cpp:278
+#: clientgui/DlgItemProperties.cpp:317
 msgid "CPU"
-msgstr ""
+msgstr "CPU"
 
-#: DlgItemProperties.cpp:302
+#: clientgui/DlgItemProperties.cpp:341
 msgid "Duration correction factor"
 msgstr "Fator de correção de duração"
 
-#: DlgItemProperties.cpp:316
+#: clientgui/DlgItemProperties.cpp:349
+msgid "Last scheduler reply"
+msgstr "Última resposta do cronograma"
+
+#: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
 msgstr "Propriedades da tarefa"
 
-#: DlgItemProperties.cpp:328 ViewWork.cpp:238
+#: clientgui/DlgItemProperties.cpp:372 clientgui/ViewWork.cpp:266
 msgid "Application"
 msgstr "Aplicação"
 
-#: DlgItemProperties.cpp:329 ViewWork.cpp:239
+#: clientgui/DlgItemProperties.cpp:373 clientgui/ViewWork.cpp:267
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
-#: DlgItemProperties.cpp:330
+#: clientgui/DlgItemProperties.cpp:374
 msgid "State"
 msgstr "Estado"
 
-#: DlgItemProperties.cpp:333
+#: clientgui/DlgItemProperties.cpp:377
 msgid "Received"
 msgstr "Recebido(s)"
 
-#: DlgItemProperties.cpp:336
+#: clientgui/DlgItemProperties.cpp:380
 msgid "Report deadline"
 msgstr "Prazo de relatório"
 
-#: DlgItemProperties.cpp:338
+#: clientgui/DlgItemProperties.cpp:382
 msgid "Resources"
 msgstr "Recursos"
 
-#: DlgItemProperties.cpp:341
+#: clientgui/DlgItemProperties.cpp:385
 msgid "Estimated computation size"
-msgstr ""
-
-#: DlgItemProperties.cpp:344
-msgid "CPU time at last checkpoint"
-msgstr "Tempo de CPU no último ponto de verificação"
+msgstr "Tamanho da computação estimado"
 
-#: DlgItemProperties.cpp:345 DlgItemProperties.cpp:360
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Tempo de CPU"
 
-#: DlgItemProperties.cpp:347 DlgItemProperties.cpp:361
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Tempo de CPU desde o último ponto de verificação"
+
+#: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Tempo decorrido"
 
-#: DlgItemProperties.cpp:349
+#: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
 msgstr "Tempo restante estimado"
 
-#: DlgItemProperties.cpp:350
+#: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
 msgstr "Fração concluída"
 
-#: DlgItemProperties.cpp:351
+#: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
 msgstr "Tamanho de memória virtual"
 
-#: DlgItemProperties.cpp:352
+#: clientgui/DlgItemProperties.cpp:398
 msgid "Working set size"
 msgstr "Tamanho do conjunto de trabalho"
 
-#: DlgItemProperties.cpp:354
+#: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
 msgstr "Diretório"
 
-#: DlgItemProperties.cpp:357
+#: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
 msgstr "ID do processo"
 
-#: DlgItemProperties.cpp:427 ViewWork.cpp:1032 sg_TaskPanel.cpp:823
+#: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
+msgid "Progress rate"
+msgstr "Taxa de progresso"
+
+#: clientgui/DlgItemProperties.cpp:409
+msgid "per hour"
+msgstr "por hora"
+
+#: clientgui/DlgItemProperties.cpp:411
+msgid "per minute"
+msgstr "por minuto"
+
+#: clientgui/DlgItemProperties.cpp:413
+msgid "per second"
+msgstr "por segundo"
+
+#: clientgui/DlgItemProperties.cpp:421
+msgid "Executable"
+msgstr "Executável"
+
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Local:"
 
-#: DlgOptions.cpp:129 DlgOptions.cpp:135
+#: clientgui/DlgOptions.cpp:130 clientgui/DlgOptions.cpp:136
 msgid "Options"
-msgstr ""
+msgstr "Opções"
 
-#: DlgOptions.cpp:175
+#: clientgui/DlgOptions.cpp:179
 msgid "Language:"
 msgstr "Idioma:"
 
-#: DlgOptions.cpp:182
+#: clientgui/DlgOptions.cpp:186
 msgid "What language should BOINC use?"
 msgstr "Que idioma o BOINC deve usar?"
 
-#: DlgOptions.cpp:186
-#, fuzzy
+#: clientgui/DlgOptions.cpp:190
 msgid "Notice reminder interval:"
-msgstr ""
-"Intervalo de aviso:\n"
-"(minutos; 0 significa nenhum lembrete)"
+msgstr "Intervalo de lembrete de aviso:"
 
-#: DlgOptions.cpp:193
+#: clientgui/DlgOptions.cpp:197
 msgid "How often should BOINC remind you of new notices?"
 msgstr "Com que frequência o BOINC deve lembrá-lo de novos avisos?"
 
-# "login" is a known and very used word among computer users on Brazil. There is no good translation for it.
-#: DlgOptions.cpp:198
+#: clientgui/DlgOptions.cpp:202
 msgid "Run Manager at login?"
 msgstr "Executar Gerenciador ao entrar no sistema?"
 
-#: DlgOptions.cpp:204
+#: clientgui/DlgOptions.cpp:208
 msgid "Run the BOINC Manager when you log on."
 msgstr "Executa o Gerenciador BOINC quando você entra no sistema."
 
-#: DlgOptions.cpp:209
+#: clientgui/DlgOptions.cpp:213
+msgid "Run daemon?"
+msgstr "Rodar daemon?"
+
+#: clientgui/DlgOptions.cpp:219
+msgid "Run daemon when launching the Manager."
+msgstr "Rodar daemon quando iniciar o Gerenciador."
+
+#: clientgui/DlgOptions.cpp:223
 msgid "Enable Manager exit dialog?"
 msgstr "Ativar caixa de diálogo de saída do Gerenciador ?"
 
-#: DlgOptions.cpp:215
+#: clientgui/DlgOptions.cpp:229
 msgid "Display the exit dialog when shutting down the Manager."
 msgstr "Exibir caixa de diálogo de saída quando encerrar o Gerenciador."
 
-#: DlgOptions.cpp:226
+#: clientgui/DlgOptions.cpp:240
 msgid "Dial-up and Virtual Private Network settings"
 msgstr "Configurações de Rede Privada Virtual e Conexão Discada"
 
-#: DlgOptions.cpp:240
+#: clientgui/DlgOptions.cpp:254
 msgid "&Set Default"
 msgstr "&Definir Padrão"
 
-#: DlgOptions.cpp:245
+#: clientgui/DlgOptions.cpp:259
 msgid "&Clear Default"
 msgstr "&Limpar Padrão"
 
-#: DlgOptions.cpp:252
+#: clientgui/DlgOptions.cpp:266
 msgid "Default Connection:"
 msgstr "Conexão Padrão:"
 
-#: DlgOptions.cpp:259
+#: clientgui/DlgOptions.cpp:273
 msgid "Connections"
 msgstr "Conexões"
 
-# "proxy" is a known and very used word among computer users on Brazil. There is no good translation for it.
-#: DlgOptions.cpp:268
+#: clientgui/DlgOptions.cpp:282
 msgid "Connect via HTTP proxy server"
 msgstr "Conectar via servidor proxy HTTP"
 
-# "proxy" is a known and very used word among computer users on Brazil. There is no good translation for it.
-#: DlgOptions.cpp:272
+#: clientgui/DlgOptions.cpp:286
 msgid "HTTP Proxy Server Configuration"
 msgstr "Configuração de Servidor Proxy HTTP"
 
-#: DlgOptions.cpp:280 DlgOptions.cpp:344
+#: clientgui/DlgOptions.cpp:294 clientgui/DlgOptions.cpp:358
 msgid "Address:"
 msgstr "Endereço:"
 
-#: DlgOptions.cpp:288 DlgOptions.cpp:352 ProxyPage.cpp:340 ProxyPage.cpp:360
+#: clientgui/DlgOptions.cpp:302 clientgui/DlgOptions.cpp:366
+#: clientgui/ProxyPage.cpp:340 clientgui/ProxyPage.cpp:360
 msgid "Port:"
 msgstr "Porta:"
 
-#: DlgOptions.cpp:296 DlgOptions.cpp:360
+#: clientgui/DlgOptions.cpp:310 clientgui/DlgOptions.cpp:374
 msgid "Don't use proxy for:"
 msgstr "Não usar proxy para:"
 
-#: DlgOptions.cpp:303 DlgOptions.cpp:367
+#: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
 msgid "Leave these blank if not needed"
 msgstr "Deixar estes em branco se desnecessários"
 
-#: DlgOptions.cpp:309 DlgOptions.cpp:373 ProxyPage.cpp:343 ProxyPage.cpp:363
+#: clientgui/DlgOptions.cpp:323 clientgui/DlgOptions.cpp:387
+#: clientgui/ProxyPage.cpp:343 clientgui/ProxyPage.cpp:363
 msgid "User Name:"
 msgstr "Nome do Usuário:"
 
-#: DlgOptions.cpp:317 DlgOptions.cpp:381 DlgSelectComputer.cpp:152
-#: ProxyPage.cpp:346 ProxyPage.cpp:366
+#: clientgui/DlgOptions.cpp:331 clientgui/DlgOptions.cpp:395
+#: clientgui/DlgSelectComputer.cpp:152 clientgui/ProxyPage.cpp:346
+#: clientgui/ProxyPage.cpp:366
 msgid "Password:"
 msgstr "Senha:"
 
-# "proxy" is a known and very used word among computer users on Brazil. I believe translating it may be unbecoming.
-#: DlgOptions.cpp:324
+#: clientgui/DlgOptions.cpp:338
 msgid "HTTP Proxy"
 msgstr "Proxy HTTP"
 
-# "proxy" is a known and very used word among computer users on Brazil. I believe translating it may be unbecoming.
-#: DlgOptions.cpp:332
+#: clientgui/DlgOptions.cpp:346
 msgid "Connect via SOCKS proxy server"
 msgstr "Conectar via servidor proxy SOCKS"
 
-# "proxy" is a known and very used word among computer users on Brazil. I believe translating it may be unbecoming.
-#: DlgOptions.cpp:336
+#: clientgui/DlgOptions.cpp:350
 msgid "SOCKS Proxy Server Configuration"
 msgstr "Configuração do Servidor Proxy SOCKS"
 
-# "proxy" is a known and very used word among computer users on Brazil. I believe translating it may be unbecoming.
-#: DlgOptions.cpp:388
+#: clientgui/DlgOptions.cpp:402
 msgid "SOCKS Proxy"
 msgstr "Proxy SOCKS"
 
-#: DlgOptions.cpp:586
-#, fuzzy
+#: clientgui/DlgOptions.cpp:600
 msgid "always"
-msgstr "&Executar sempre"
+msgstr "sempre"
 
-#: DlgOptions.cpp:587
+#: clientgui/DlgOptions.cpp:601
 msgid "1 hour"
-msgstr ""
+msgstr "1 hora"
 
-#: DlgOptions.cpp:588
+#: clientgui/DlgOptions.cpp:602
 msgid "6 hours"
-msgstr ""
+msgstr "6 horas"
 
-#: DlgOptions.cpp:589
-#, fuzzy
+#: clientgui/DlgOptions.cpp:603
 msgid "1 day"
-msgstr "dias"
+msgstr "1 dia"
 
-#: DlgOptions.cpp:590
+#: clientgui/DlgOptions.cpp:604
 msgid "1 week"
-msgstr ""
+msgstr "1 semana"
 
-#: DlgOptions.cpp:591
-#, fuzzy
+#: clientgui/DlgOptions.cpp:605
 msgid "never"
-msgstr "a cada"
+msgstr "nunca"
 
-#: DlgOptions.cpp:688
+#: clientgui/DlgOptions.cpp:703
 #, c-format
 msgid "%s - Language Selection"
 msgstr "%s - Seleção de Idioma"
 
-#: DlgOptions.cpp:695
+#: clientgui/DlgOptions.cpp:710
 #, c-format
-#, fuzzy, c-format
 msgid ""
 "The %s's language has been changed.  In order for this change to take "
 "effect, you must restart the %s."
-msgstr ""
-"O idioma padrão de %s foi alterado. Você deve reinicializar o %s para que "
-"esta alteração tenha efeito."
+msgstr "O idioma padrão de %s foi alterado. Você deve reinicializar o %s para que esta alteração tenha efeito."
 
-#: DlgSelectComputer.cpp:91
+#: clientgui/DlgSelectComputer.cpp:91
 #, c-format
 msgid "%s - Select Computer"
 msgstr "%s - Selecione o Computador"
 
-#: DlgSelectComputer.cpp:125
+#: clientgui/DlgSelectComputer.cpp:125
 #, c-format
 msgid ""
 "Another instance of %s is already running \n"
 "on this computer.  Please select a client to monitor."
-msgstr ""
+msgstr "Outra instância de %s já está rodando\nneste computador. Favor selecionar um cliente para monitorar."
 
-#: DlgSelectComputer.cpp:143
+#: clientgui/DlgSelectComputer.cpp:143
 msgid "Host name:"
-msgstr "Nome de máquina:"
+msgstr "Nome do Host:"
 
-#: Localization.cpp:31 Localization.cpp:69
+#: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
 msgid "Message boards"
 msgstr "Quadros de mensagens"
 
-#: Localization.cpp:33
+#: clientgui/Localization.cpp:33
 msgid "Correspond with other users on the SETI at home message boards"
 msgstr "Correspondem com outros usuários nos quadros de mensagens do SETI at home"
 
-#: Localization.cpp:37
+#: clientgui/Localization.cpp:37
 msgid "Ask questions and report problems"
 msgstr "Faça perguntas e relate problemas"
 
-#: Localization.cpp:39 Localization.cpp:81 Localization.cpp:111
-#: Localization.cpp:129
+#: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
+#: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
 msgid "Your account"
 msgstr "Sua conta"
 
-#: Localization.cpp:41 Localization.cpp:87 Localization.cpp:113
+#: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
+#: clientgui/Localization.cpp:113
 msgid "View your account information and credit totals"
 msgstr "Visualize suas informações de conta e créditos totais"
 
-#: Localization.cpp:43
+#: clientgui/Localization.cpp:43
 msgid "Your preferences"
 msgstr "Suas preferências"
 
-#: Localization.cpp:45
+#: clientgui/Localization.cpp:45
 msgid "View and modify your SETI at home account profile and preferences"
 msgstr "Visualize e modifique seu perfil de conta e preferências do SETI at home"
 
-#: Localization.cpp:47 Localization.cpp:89
+#: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
 msgid "Your results"
 msgstr "Seus resultados"
 
-#: Localization.cpp:49 Localization.cpp:91
+#: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
 msgid "View your last week (or more) of computational results and work"
-msgstr ""
-"Visualize seus resultados de trabalho computacional da última semana (ou "
-"mais)"
+msgstr "Visualize seus resultados de trabalho computacional da última semana (ou mais)"
 
-#: Localization.cpp:51 Localization.cpp:93
+#: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
 msgid "Your computers"
 msgstr "Seus computadores"
 
-#: Localization.cpp:53
+#: clientgui/Localization.cpp:53
 msgid "View a listing of all the computers on which you are running SETI at Home"
-msgstr ""
-"Visualize uma listagem de todos os computadores nos quais você executa "
-"SETI at home"
+msgstr "Visualize uma listagem de todos os computadores nos quais você executa SETI at home"
 
-#: Localization.cpp:55 Localization.cpp:97
+#: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
 msgid "Your team"
 msgstr "Seu time"
 
-#: Localization.cpp:57 Localization.cpp:99
+#: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
 msgid "View information about your team"
 msgstr "Visualize informações sobre seu time"
 
-#: Localization.cpp:61
+#: clientgui/Localization.cpp:61
 msgid "Common questions"
 msgstr "Questões comuns"
 
-#: Localization.cpp:63
+#: clientgui/Localization.cpp:63
 msgid "Read the Einstein at Home Frequently Asked Question list"
 msgstr "Leia a lista de Perguntas Mais Frequentes do Einstein at Home"
 
-#: Localization.cpp:65
+#: clientgui/Localization.cpp:65
 msgid "Screensaver info"
 msgstr "Informações da proteção de tela"
 
-#: Localization.cpp:67
+#: clientgui/Localization.cpp:67
 msgid "Read a detailed description of the Einstein at Home screensaver"
 msgstr "Leia uma descrição detalhada da proteção de tela do Einstein at Home"
 
-#: Localization.cpp:71
+#: clientgui/Localization.cpp:71
 msgid ""
 "Correspond with admins and other users on the Einstein at Home message boards"
-msgstr ""
-"Correspondem com administradores e outros usuários dos quadros de mensagens "
-"do Einstein at Home"
+msgstr "Correspondem com administradores e outros usuários dos quadros de mensagens do Einstein at Home"
 
-#: Localization.cpp:73
+#: clientgui/Localization.cpp:73
 msgid "Einstein status"
 msgstr "Status do Einstein"
 
-#: Localization.cpp:75
+#: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
 msgstr "Status atual do servidor de Einstein at Home"
 
-#: Localization.cpp:77
+#: clientgui/Localization.cpp:77
 msgid "Report problems"
 msgstr "Relatar problemas"
 
-#: Localization.cpp:79
+#: clientgui/Localization.cpp:79
 msgid "A link to the Einstein at Home problems and bug reports message board"
-msgstr ""
-"Um link ao quadro de mensagens de relatórios de problemas e defeitos do "
-"Einstein at Home"
+msgstr "Um link ao quadro de mensagens de relatórios de problemas e defeitos do Einstein at Home"
 
-#: Localization.cpp:83
+#: clientgui/Localization.cpp:83
 msgid "View and modify your Einstein at Home account profile and preferences"
-msgstr ""
-"Visualize e modifique seu perfil de conta e preferências do Einstein at Home"
+msgstr "Visualize e modifique seu perfil de conta e preferências do Einstein at Home"
 
-#: Localization.cpp:85
+#: clientgui/Localization.cpp:85
 msgid "Account summary"
 msgstr "Resumo de conta"
 
-#: Localization.cpp:95
+#: clientgui/Localization.cpp:95
 msgid ""
 "View a listing of all the computers on which you are running Einstein at Home"
-msgstr ""
-"Visualize uma listagem de todos os computadores nos quais você executa "
-"Einstein at Home"
+msgstr "Visualize uma listagem de todos os computadores nos quais você executa Einstein at Home"
 
-#: Localization.cpp:101
+#: clientgui/Localization.cpp:101
 msgid "LIGO project"
 msgstr "Projeto LIGO"
 
-#: Localization.cpp:103
+#: clientgui/Localization.cpp:103
 msgid ""
 "The home page of the Laser Interferometer Gravitational-wave Observatory "
 "(LIGO) project"
-msgstr ""
+msgstr "A página principal do projeto do Observatório de Ondas-Gravitacionais por Interferômetro Laser (LIGO)"
 
-#: Localization.cpp:105
+#: clientgui/Localization.cpp:105
 msgid "GEO-600 project"
-msgstr ""
+msgstr "Projeto GEO-600"
 
-#: Localization.cpp:107
+#: clientgui/Localization.cpp:107
 msgid "The home page of the GEO-600 project"
-msgstr ""
+msgstr "A página principal do projeto GEO-600"
 
-#: Localization.cpp:115 Localization.cpp:133 ViewProjects.cpp:221
-#: ViewStatistics.cpp:465
+#: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
+#: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
 msgid "Team"
-msgstr ""
+msgstr "Equipe"
 
-#: Localization.cpp:117
+#: clientgui/Localization.cpp:117
 msgid "Info about your Team"
-msgstr ""
+msgstr "Informações sobre a sua Equipe"
 
-#: Localization.cpp:123
+#: clientgui/Localization.cpp:123
 msgid "Get help for climateprediction.net"
-msgstr ""
+msgstr "Obter ajuda para climateprediction.net"
 
-#: Localization.cpp:125
+#: clientgui/Localization.cpp:125
 msgid "News"
-msgstr ""
+msgstr "Notícias"
 
-#: Localization.cpp:127
+#: clientgui/Localization.cpp:127
 msgid "climateprediction.net News"
-msgstr ""
+msgstr "Notícias climateprediction.net"
 
-#: Localization.cpp:131
+#: clientgui/Localization.cpp:131
 msgid "View your account information, credits, and trickles"
-msgstr ""
+msgstr "Visualizar suas informações de conta, créditos totais e mensagens ao servidor"
 
-#: Localization.cpp:135
+#: clientgui/Localization.cpp:135
 msgid "Info about your team"
-msgstr ""
+msgstr "Informações sobre a sua equipe"
 
-#: Localization.cpp:141
+#: clientgui/Localization.cpp:141
 msgid "Search for help in our help system"
-msgstr ""
+msgstr "Buscar por ajudar no seu sistema de ajuda"
 
-#: Localization.cpp:143
+#: clientgui/Localization.cpp:143
 msgid "Global Statistics"
-msgstr ""
+msgstr "Estatísticas Globais"
 
-#: Localization.cpp:145
+#: clientgui/Localization.cpp:145
 msgid "Summary statistics for World Community Grid"
-msgstr ""
+msgstr "Estatísticas resumidas para World Community Grid"
 
-#: Localization.cpp:147
+#: clientgui/Localization.cpp:147
 msgid "My Grid"
-msgstr ""
+msgstr "Meu grid"
 
-#: Localization.cpp:149
+#: clientgui/Localization.cpp:149
 msgid "Your statistics and settings"
-msgstr ""
+msgstr "Suas estatísticas e configurações"
 
-#: Localization.cpp:151
+#: clientgui/Localization.cpp:151
 msgid "Device Profiles"
-msgstr ""
+msgstr "Perfis de Dispositivos"
 
-#: Localization.cpp:153
+#: clientgui/Localization.cpp:153
 msgid "Update your device settings"
-msgstr ""
+msgstr "Atualizar as configurações do seu dispositivo"
 
-#: Localization.cpp:155
+#: clientgui/Localization.cpp:155
 msgid "Research"
-msgstr ""
+msgstr "Pesquisa"
 
-#: Localization.cpp:157
+#: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
-msgstr ""
-
-#: MainDocument.cpp:583
-msgid "Starting client"
-msgstr ""
+msgstr "Saida sobre os projetos hospedados em World Community Grid"
 
-#: MainDocument.cpp:591
-#, fuzzy
-msgid "Connecting to client"
-msgstr "Reconectando ao cliente."
-
-#: MainDocument.cpp:1195
-msgid "Retrieving system state; please wait..."
-msgstr ""
-
-#: MainDocument.cpp:1816
-#, fuzzy
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
-msgstr "Aplicação"
+msgstr "Aplicação ausente"
 
-#: MainDocument.cpp:1817
+#: clientgui/MainDocument.cpp:1820
 msgid ""
-"Please download and install the CoRD application from http://cord."
-"sourceforge.net"
-msgstr ""
+"Please download and install the CoRD application from "
+"http://cord.sourceforge.net"
+msgstr "Favor fazer o download e instalar o aplicativo CoRD em http://cord.sourceforge.net"
 
-#: MainDocument.cpp:2432
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
-msgstr ""
+msgstr "na bateria"
 
-#: MainDocument.cpp:2433
-#, fuzzy
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
-msgstr "Enquanto o computador estiver em uso"
+msgstr "computador está em uso"
 
-#: MainDocument.cpp:2434
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
-msgstr ""
+msgstr "requisição do usuário"
 
-#: MainDocument.cpp:2435
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
-msgstr ""
+msgstr "hora do dia"
 
-#: MainDocument.cpp:2436
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
-msgstr ""
+msgstr "Benchmarks do CPU em progresso"
 
-#: MainDocument.cpp:2437
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
-msgstr ""
+msgstr "precisa de espaço no disco - verifique as preferências"
 
-#: MainDocument.cpp:2438
-#, fuzzy
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
-msgstr "Enquanto o computador estiver em uso"
+msgstr "computador não está em uso"
 
-#: MainDocument.cpp:2439
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
-msgstr ""
+msgstr "iniciando"
 
-#: MainDocument.cpp:2440
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
-msgstr ""
+msgstr "um app exclusivo está rodando"
 
-#: MainDocument.cpp:2441
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
-msgstr ""
+msgstr "CPU ocupada"
 
-#: MainDocument.cpp:2442
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
-msgstr ""
+msgstr "limite da rede de banda-larga excedido"
 
-#: MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
-msgstr ""
+msgstr "requisitado pelo sistema operacional"
 
-#: MainDocument.cpp:2445
-#, fuzzy
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
-msgstr "(Desconhecido)"
+msgstr "razão desconhecida"
 
-#: MainDocument.cpp:2467
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
-msgstr ""
+msgstr "GPU faltante,"
 
-#: MainDocument.cpp:2474
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
-msgstr ""
+msgstr "Novo"
 
-#: MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
-msgstr ""
+msgstr "Download falhou"
 
-#: MainDocument.cpp:2480
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
-msgstr ""
+msgstr "Baixando"
 
-#: MainDocument.cpp:2482 MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
-msgstr ""
+msgstr "(suspenso -"
 
-#: MainDocument.cpp:2490
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
-msgstr ""
+msgstr "Projeto suspenso pelo usuário"
 
-#: MainDocument.cpp:2492
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
-msgstr ""
+msgstr "Tarefa suspensa pelo usuário"
 
-#: MainDocument.cpp:2494
+#. an NCI process can be running even though computation is suspended
+#. (because of <dont_suspend_nci>
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
-msgstr ""
+msgstr "Suspenso -"
 
-#: MainDocument.cpp:2500
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
-msgstr ""
+msgstr "GPU suspensa -"
 
-#: MainDocument.cpp:2507
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
-msgstr ""
+msgstr "Aguardando por memória"
 
-#: MainDocument.cpp:2509
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
-msgstr ""
+msgstr "Aguardando por memória compartilhada"
 
-#: MainDocument.cpp:2512
-msgid "Running, high priority"
-msgstr ""
-
-#: MainDocument.cpp:2514
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
-msgstr ""
+msgstr "Executando"
 
-#: MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
-msgstr ""
+msgstr "(CPU Não intensivo)"
 
-#: MainDocument.cpp:2520
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
-msgstr ""
+msgstr "Aguardando para executar"
 
-#: MainDocument.cpp:2522 MainDocument.cpp:2528
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
-msgstr ""
+msgstr "Pronto para começar"
 
-#: MainDocument.cpp:2532
-msgid " (Scheduler wait: "
-msgstr ""
+#: clientgui/MainDocument.cpp:2524
+msgid "Postponed: "
+msgstr "Adiado:"
 
-#: MainDocument.cpp:2536
-msgid " (Scheduler wait)"
-msgstr ""
+#: clientgui/MainDocument.cpp:2527
+msgid "Postponed"
+msgstr "Adiado"
 
-#: MainDocument.cpp:2540
-msgid " (Waiting for network access)"
-msgstr ""
+#: clientgui/MainDocument.cpp:2531
+msgid "Waiting for network access"
+msgstr "Aguardando por acesso à internet"
 
-#: MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
-msgstr ""
+msgstr "Erro de computação"
 
-#: MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
-msgstr ""
+msgstr "Upload falhou"
 
-#: MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
-msgstr ""
+msgstr "Fazendo upload"
 
-#: MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
-msgstr ""
+msgstr "Abortado pelo usuário"
 
-#: MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
-msgstr ""
+msgstr "Abordado pelo projeto"
 
-#: MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
-msgstr ""
+msgstr "Abortado: não iniciado por tempo limite"
 
-#: MainDocument.cpp:2570
-msgid "Aborted: disk limit exceeded"
-msgstr ""
+#: clientgui/MainDocument.cpp:2561
+msgid "Aborted: task disk limit exceeded"
+msgstr "Abortado: tarefa excedeu o limite de disco"
 
-#: MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
-msgstr ""
+msgstr "Abortado: tempo limite de excecução excedido"
 
-#: MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
-msgstr ""
+msgstr "Abortado: limite de memória excedido"
 
-#: MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
-msgstr ""
+msgstr "Abortado"
 
-#: MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
-msgstr ""
+msgstr "Reconhecimento"
 
-#: MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
-msgstr ""
+msgstr "Pronto para reportar"
 
-#: MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
-msgstr ""
+msgstr "Erro: estado inválido '%d'"
 
-#: NoInternetConnectionPage.cpp:179
+#: clientgui/NoInternetConnectionPage.cpp:179
 msgid "No Internet connection"
-msgstr ""
+msgstr "Sem conexão com a internet"
 
-#: NoInternetConnectionPage.cpp:182
+#: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
-msgstr ""
+msgstr "Por favor conecta na Internet e tente novamente."
 
-#: NotDetectedPage.cpp:181
+#: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
-msgstr ""
+msgstr "Projeto não encontrado"
 
-#: NotDetectedPage.cpp:184
+#: clientgui/NotDetectedPage.cpp:184
 msgid ""
 "The URL you supplied is not that of a BOINC-based project.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
+msgstr "A URL fornecida não é de um projeto do BOINC.\n\nPor favor, verifique a URL e tente novamente."
 
-#: NotDetectedPage.cpp:188
+#: clientgui/NotDetectedPage.cpp:188
 msgid "Account manager not found"
-msgstr ""
+msgstr "Gerenciador de contas não encontrado"
 
-#: NotDetectedPage.cpp:191
+#: clientgui/NotDetectedPage.cpp:191
 msgid ""
 "The URL you supplied is not that of a BOINC-based account\n"
 "manager.\n"
 "\n"
 "Please check the URL and try again."
-msgstr ""
+msgstr "A URL que você forneceu não é de um gerenciador de contas\ncompatível com o BOINC.\n\nPor favor, verifique a URL e tente novamente."
 
-#: NotFoundPage.cpp:181
+#: clientgui/NotFoundPage.cpp:181
 msgid "Login Failed."
-msgstr ""
+msgstr "Login falhou"
 
-#: NotFoundPage.cpp:185
+#: clientgui/NotFoundPage.cpp:185
 msgid "Check the username and password, and try again."
-msgstr ""
+msgstr "Verifique o nome de usuário e senha, e tente novamente"
 
-#: NotFoundPage.cpp:189
+#: clientgui/NotFoundPage.cpp:189
 msgid "Check the email address and password, and try again."
-msgstr ""
+msgstr "Verifique o endereço de e-mail e senha, e tente novamente."
 
-#: NoticeListCtrl.cpp:222
+#: clientgui/NoticeListCtrl.cpp:229
 msgid "more..."
-msgstr ""
+msgstr "mais..."
 
-#: ProjectInfoPage.cpp:477 ProjectInfoPage.cpp:778 ProjectInfoPage.cpp:782
-msgid "All"
-msgstr ""
-
-#: ProjectInfoPage.cpp:615
+#: clientgui/ProjectInfoPage.cpp:221
 msgid "Choose a project"
-msgstr ""
+msgstr "Escolha um projeto"
 
-#: ProjectInfoPage.cpp:619
-#, fuzzy
+#: clientgui/ProjectInfoPage.cpp:226
 msgid "To choose a project, click its name or type its URL below."
-msgstr ""
-"Para selecionar um gerenciador de contas, clique em seu nome ou \n"
-"digite seu URL abaixo."
+msgstr "Para escolher um projeto, clique em seu nome ou digite a sua URL abaixo."
 
-#: ProjectInfoPage.cpp:623
+#: clientgui/ProjectInfoPage.cpp:242
 msgid "Categories:"
-msgstr ""
+msgstr "Categorias:"
 
-#: ProjectInfoPage.cpp:627 sg_ProjectPanel.cpp:89
-#, fuzzy
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
-msgstr "Projeto"
+msgstr "Projetos"
 
-#: ProjectInfoPage.cpp:631
+#: clientgui/ProjectInfoPage.cpp:274
 msgid "Project details"
-msgstr ""
+msgstr "Detalhes do projeto"
 
-#: ProjectInfoPage.cpp:635
+#: clientgui/ProjectInfoPage.cpp:284
 msgid "Research area:"
-msgstr ""
+msgstr "Área de pesquisa:"
 
-#: ProjectInfoPage.cpp:639
+#: clientgui/ProjectInfoPage.cpp:294
 msgid "Organization:"
-msgstr ""
+msgstr "Empresa"
 
-#: ProjectInfoPage.cpp:643
-#, fuzzy
+#: clientgui/ProjectInfoPage.cpp:304
 msgid "Web site:"
-msgstr "Páginas de internet"
+msgstr "web site:"
 
-#: ProjectInfoPage.cpp:647
+#: clientgui/ProjectInfoPage.cpp:315
 msgid "Supported systems:"
-msgstr ""
+msgstr "Sistemas suportados:"
 
-#: ProjectInfoPage.cpp:651
+#: clientgui/ProjectInfoPage.cpp:352
 msgid "Project URL:"
-msgstr ""
+msgstr "URL do projeto:"
 
-#: ProjectInfoPage.cpp:826
+#: clientgui/ProjectInfoPage.cpp:486 clientgui/ProjectInfoPage.cpp:686
+#: clientgui/ProjectInfoPage.cpp:690
+msgid "All"
+msgstr "Tudo"
+
+#: clientgui/ProjectInfoPage.cpp:735
 msgid ""
 "This project may not have work for your type of computer.  Do you want to "
 "add it anyway?"
-msgstr ""
+msgstr "Este projeto pode não ter trabalho para o seu tipo de computador. Você deseja adicioná-lo de qualquer maneira?"
 
-#: ProjectInfoPage.cpp:850
+#: clientgui/ProjectInfoPage.cpp:767
 msgid "You already added this project. Please choose a different project."
-msgstr ""
+msgstr "Você já adicionou este projeto. Por favor escolha um projeto diferente."
 
-#: ProjectProcessingPage.cpp:321
-#, fuzzy
-msgid "Communicating with project."
-msgstr "Comunicando-se com servidor."
+#: clientgui/ProjectProcessingPage.cpp:321
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Comunicando-se com project %s\nPor favor, espere..."
 
-#: ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
-msgstr ""
+msgstr "Arquivos necessários não encontrado no servidor."
 
-#: ProjectProcessingPage.cpp:512 ProjectProcessingPage.cpp:574
-#, fuzzy
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
-msgstr "Ocorreu um erro interno no servidor.\n"
+msgstr "Um erro interno do servidor ocorreu."
+
+#: clientgui/ProjectWelcomePage.cpp:251
+#, c-format
+msgid "Welcome to %s."
+msgstr "Bem-vindo a %s."
+
+#: clientgui/ProjectWelcomePage.cpp:254
+msgid "You have volunteered to compute for this project:"
+msgstr "Você já se voluntariou para calcular este projeto:"
+
+#: clientgui/ProjectWelcomePage.cpp:255
+msgid "Name:"
+msgstr "Nome:"
+
+#: clientgui/ProjectWelcomePage.cpp:258
+msgid "Home:"
+msgstr "Home:"
+
+#: clientgui/ProjectWelcomePage.cpp:262
+msgid "Description:"
+msgstr "Descrição:"
 
-#: ProjectPropertiesPage.cpp:334
+#: clientgui/ProjectWelcomePage.cpp:265
+msgid "URL:"
+msgstr "URL:"
+
+#: clientgui/ProjectWelcomePage.cpp:268
+msgid "User:"
+msgstr "Usuário:"
+
+#: clientgui/ProjectWelcomePage.cpp:273
 msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr ""
+"WARNING: This project is not registered with BOINC.  Make sure you trust it "
+"before continuing."
+msgstr "AVISO: Este projeto não está registrado com BOINC. Certifique-se de que você confia nele antes de continuar."
+
+#: clientgui/ProjectWelcomePage.cpp:277
+msgid "To continue, click Next."
+msgstr "Para continuar, clique em Avançar."
 
-#: ProxyInfoPage.cpp:195
+#: clientgui/ProxyInfoPage.cpp:195
 msgid "Network communication failure"
-msgstr ""
+msgstr "Falha de comunicação de rede"
 
-#: ProxyInfoPage.cpp:199
+#: clientgui/ProxyInfoPage.cpp:199
 msgid ""
 "The World Community Grid - BOINC software failed to communicate\n"
 "over the Internet. The most likely reasons are:\n"
@@ -2683,9 +2826,9 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
+msgstr "O software World Community Grid - BOINC falhou na comunicação\npela Internet. Os motivos mais prováveis são:\n\n1) Problema de conectvidade. Verifique sua conexão de rede ou modem\ne depois cilque em Voltar para tentar novamente.\n\n2) Software de firewall pessoal está bloqueando o software World\nCommunity Grid - BOINC. Configure seu firewall pessoal para permitir\nque o BOINC e o Gerenciador do BOINC comuniquem-se pela porta 80\ne porta 443, depois cilque em Voltar para tentar  [...]
 
-#: ProxyInfoPage.cpp:203
+#: clientgui/ProxyInfoPage.cpp:203
 msgid ""
 "BOINC failed to communicate on the Internet.\n"
 "The most likely reasons are:\n"
@@ -2700,1425 +2843,991 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr ""
+msgstr "O BOINC falhou na comunicação pela Internet.\nOs motivos mais prováveis são:\n\n1) Problema de conectvidade. Verifique sua\nconexão de rede ou modem e depois cilque em\nVoltar para tentar novamente.\n\n2) Software de firewall pessoal está bloqueando\no BOINC. Configure seu firewall pessoal para permitir\nque o BOINC e o Gerenciador do BOINC comuniquem-se\npela porta 80, depois cilque em Voltar para tentar\nnovamente.\n\n3) Você está usando um servidor proxy.\nClique Próximo para  [...]
 
-#: ProxyPage.cpp:331
+#: clientgui/ProxyPage.cpp:331
 msgid "Proxy configuration"
-msgstr ""
+msgstr "Configuração de proxy"
 
-# "proxy" is a known and very used word among computer users on Brazil. I believe translating it may be unbecoming.
-#: ProxyPage.cpp:334
-#, fuzzy
+#: clientgui/ProxyPage.cpp:334
 msgid "HTTP proxy"
 msgstr "Proxy HTTP"
 
-#: ProxyPage.cpp:337 ProxyPage.cpp:357
+#: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
 msgid "Server:"
-msgstr ""
+msgstr "Servidor"
 
-#: ProxyPage.cpp:350
+#: clientgui/ProxyPage.cpp:350
 msgid "Autodetect"
-msgstr ""
+msgstr "Detectar automáticamente"
 
-# "proxy" is a known and very used word among computer users on Brazil. I believe translating it may be unbecoming.
-#: ProxyPage.cpp:354
-#, fuzzy
+#: clientgui/ProxyPage.cpp:354
 msgid "SOCKS proxy"
 msgstr "Proxy SOCKS"
 
-#: TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr ""
-
-#: TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr ""
-
-#: TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr ""
-
-#: TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr ""
-
-#: UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr ""
-
-#: UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-
-#: UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr ""
-
-#: UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr ""
-
-#: ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr ""
-
-#: ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr ""
-
-#: ValidateAccountKey.cpp:82 ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr ""
-
-#: ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr ""
-
-#: ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Máscara"
 
-#: ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Selecione a aparência da interface do usuário."
 
-#: ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Modo de Visualização Avançado...\tCtrl+Shift+A"
 
-#: ValidateURL.cpp:83 ValidateURL.cpp:87 ValidateURL.cpp:91
-#: ValidateURL.cpp:103 ValidateURL.cpp:107 ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Exibir a interface gráfica avançada."
 
-#: ValidateURL.cpp:84 ValidateURL.cpp:88 ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Configurar opções GUI e de proxy"
 
-#: ValidateURL.cpp:104 ValidateURL.cpp:108
-#, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Exibir mensagens de diagnóstico."
 
-#: ValidateURL.cpp:111
+#: clientgui/sg_BoincSimpleFrame.cpp:233
 #, c-format
-msgid "'%s' does not contain a valid path."
-msgstr ""
+msgid "&%s"
+msgstr "%s"
 
-#: ViewMessages.cpp:84 ViewProjects.cpp:170 ViewStatistics.cpp:1978
-#: ViewTransfers.cpp:160 ViewWork.cpp:183
-msgid "Commands"
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Padrão"
+
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Suspenso"
 
-#: ViewMessages.cpp:88
-#, fuzzy
-msgid "Copy all messages"
-msgstr "Mostrar todas as mensagens"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Suspender Computação"
 
-#: ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr ""
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Retomar Computação"
 
-#: ViewMessages.cpp:106 ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Mostrar somente este projeto"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Avisos"
 
-#: ViewMessages.cpp:107 ViewMessages.cpp:503
-#, fuzzy
-msgid "Show only the messages for the selected project."
-msgstr "Mostrar somente mensagens do projeto selecionado"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Abra uma janela para ver avisos dos projetos ou BOINC"
 
-#: ViewMessages.cpp:164
-#, fuzzy
-msgid "Messages"
-msgstr "Mensagem"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Obter ajuda com %s"
 
-#: ViewMessages.cpp:187
-#, fuzzy
-msgid "Copying all messages to the clipboard..."
-msgstr "Copiar todas as mensagens para a área de transferência."
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Buscando avisos; por favor, espere..."
 
-#: ViewMessages.cpp:223
-#, fuzzy
-msgid "Copying selected messages to the clipboard..."
-msgstr "Copiar todas as mensagens para a área de transferência."
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Neste momento não existem avisos."
 
-#: ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr ""
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Fechar"
 
-#: ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Mostrar todas as mensagens"
+#: clientgui/sg_DlgMessages.cpp:394
+#, c-format
+msgid "%s - Notices"
+msgstr "%s - Avisos"
 
-#: ViewMessages.cpp:495
-#, fuzzy
-msgid "Show messages for all projects."
-msgstr "Mostrar mensagens de todos os projetos"
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Para configurações adicionais, selecione Preferências de Computação na Visão Avançada."
 
-#: ViewNotices.cpp:58 sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr ""
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB de espaço do disco"
 
-#: ViewNotices.cpp:65 sg_DlgMessages.cpp:132
-#, fuzzy
-msgid "There are no notices at this time."
-msgstr "Existem novos avisos - clique para visualizar."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Preferências de Computação"
 
-#: ViewNotices.cpp:99 sg_BoincSimpleFrame.cpp:776
-msgid "Notices"
-msgstr ""
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Descartar todas as preferências locais e usar preferências da web?"
 
-#: ViewProjects.cpp:174 sg_ProjectCommandPopup.cpp:61
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
-msgstr ""
+msgstr "Update"
 
-#: ViewProjects.cpp:175 sg_ProjectCommandPopup.cpp:62
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
-msgstr ""
-
-#: ViewProjects.cpp:181 ViewProjects.cpp:722 ViewWork.cpp:208 ViewWork.cpp:801
-#: sg_BoincSimpleFrame.cpp:757 sg_ProjectCommandPopup.cpp:67
-#: sg_ProjectCommandPopup.cpp:113 sg_TaskCommandPopup.cpp:66
-#: sg_TaskCommandPopup.cpp:106
-#, fuzzy
-msgid "Suspend"
-msgstr "&Suspender"
+msgstr "Declarar todas as tarefas concluídas, receber os últimos créditos, receber as últimas preferências e, possivelmente, obter mais tarefas."
 
-#: ViewProjects.cpp:182 ViewProjects.cpp:722 sg_ProjectCommandPopup.cpp:68
-#: sg_ProjectCommandPopup.cpp:114
+#: clientgui/sg_ProjectCommandPopup.cpp:73
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
-msgstr ""
+msgstr "Suspender tarefas para este projeto."
 
-#: ViewProjects.cpp:188 ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:73
-#: sg_ProjectCommandPopup.cpp:121
+#: clientgui/sg_ProjectCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
-msgstr ""
+msgstr "Nenhuma tarefa nova"
 
-#: ViewProjects.cpp:189 sg_ProjectCommandPopup.cpp:74
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
-msgstr ""
+msgstr "Não obter novas tarefas para este projeto."
 
-#: ViewProjects.cpp:195 sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
-msgstr ""
+msgstr "Reiniciar projeto"
 
-#: ViewProjects.cpp:196 sg_ProjectCommandPopup.cpp:80
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
-"Delete all files and tasks associated with this project, and get new tasks.  "
-"You can update the project first to report any completed tasks."
-msgstr ""
+"Delete all files and tasks associated with this project, and get new tasks."
+"  You can update the project first to report any completed tasks."
+msgstr "Exclua todos os arquivos e as tarefas associadas a este projecto, e obter novas tarefas. Você pode atualizar o projeto primeiro para declarar quaisquer tarefas concluídas."
 
-#: ViewProjects.cpp:203 sg_ProjectCommandPopup.cpp:86
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
-msgstr ""
+msgstr "Remova este projeto.  Tarefas em andamento serão perdidas (use 'Atualizar' primeiro para relatar quaisquer tarefas concluídas)."
 
-#: ViewProjects.cpp:209 ViewWork.cpp:222 sg_ProjectCommandPopup.cpp:91
-#: sg_TaskCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:96
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
-msgstr ""
+msgstr "Propriedades"
 
-#: ViewProjects.cpp:210 sg_ProjectCommandPopup.cpp:92
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
-msgstr ""
-
-#: ViewProjects.cpp:220 ViewStatistics.cpp:450
-msgid "Account"
-msgstr ""
-
-#: ViewProjects.cpp:222
-msgid "Work done"
-msgstr ""
-
-#: ViewProjects.cpp:223
-msgid "Avg. work done"
-msgstr ""
-
-#: ViewProjects.cpp:225 ViewTransfers.cpp:188 ViewWork.cpp:234
-msgid "Status"
-msgstr ""
-
-#: ViewProjects.cpp:250
-#, fuzzy
-msgid "Projects"
-msgstr "Projeto"
-
-#: ViewProjects.cpp:302
-msgid "Updating project..."
-msgstr ""
-
-#: ViewProjects.cpp:344
-msgid "Resuming project..."
-msgstr ""
+msgstr "Mostrar detalhes do projeto"
 
-#: ViewProjects.cpp:348
-msgid "Suspending project..."
-msgstr ""
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Retomar as tarefas para este projeto."
 
-#: ViewProjects.cpp:385
-msgid "Telling project to allow additional task downloads..."
-msgstr ""
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Permitir novas tarefas"
 
-#: ViewProjects.cpp:389
-msgid "Telling project to not fetch any additional tasks..."
-msgstr ""
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Permite a busca de novas tarefas para este projeto."
 
-#: ViewProjects.cpp:425
-msgid "Resetting project..."
-msgstr ""
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Não busque novas tarefas para este projeto."
 
-#: ViewProjects.cpp:438 sg_ProjectCommandPopup.cpp:214
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
-msgstr ""
+msgstr "Tem certeza de que deseja redefinir o projeto '%s'?"
 
-#: ViewProjects.cpp:444 sg_ProjectCommandPopup.cpp:220
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
-msgstr ""
-
-#: ViewProjects.cpp:483
-msgid "Removing project..."
-msgstr ""
+msgstr "Redefinir projeto"
 
-#: ViewProjects.cpp:496 sg_ProjectCommandPopup.cpp:251
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
-msgstr ""
+msgstr "Tem certeza que deseja remover o projeto '%s'?"
 
-#: ViewProjects.cpp:502 sg_ProjectCommandPopup.cpp:257
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
-msgstr ""
+msgstr "Remover Projeto"
 
-#: ViewProjects.cpp:543 ViewWork.cpp:599
-msgid "Launching browser..."
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Incluir Projeto"
 
-#: ViewProjects.cpp:718 sg_ProjectCommandPopup.cpp:111
-msgid "Resume tasks for this project."
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Sincronizar"
 
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:118
-msgid "Allow new tasks"
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Trabalho concluído para esse projeto"
 
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:119
-msgid "Allow fetching new tasks for this project."
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Voluntários para um ou todos os 30+ projetos em muitas áreas da ciência"
 
-#: ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:122
-msgid "Don't fetch new tasks for this project."
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Sincronizar projetos com o sistema de gerenciamento de contas"
 
-#: ViewProjects.cpp:1058
-msgid "Requested by user"
-msgstr ""
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Selecione um projeto para acessar com os controles abaixo"
 
-#: ViewProjects.cpp:1059
-msgid "To fetch work"
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Páginas web do projeto"
 
-#: ViewProjects.cpp:1060
-msgid "To report completed tasks"
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Comandos do Projeto"
 
-#: ViewProjects.cpp:1061
-msgid "To send trickle-up message"
-msgstr ""
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Abrir um menu de web sites para o projeto %s"
 
-#: ViewProjects.cpp:1062
-#, fuzzy
-msgid "Requested by account manager"
-msgstr "Adicionar gerenciador de contas"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Exibir um menu de comandos para aplicar ao projeto %s"
 
-#: ViewProjects.cpp:1063
-msgid "Project initialization"
-msgstr ""
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Mostrar gráficos"
 
-#: ViewProjects.cpp:1064
-#, fuzzy
-msgid "Requested by project"
-msgstr "Adicionar projeto"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Mostre gráficos do aplicativo em uma janela."
 
-#: ViewProjects.cpp:1065
-#, fuzzy
-msgid "Unknown reason"
-msgstr "(Desconhecido)"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Suspender esta tarefa."
 
-#: ViewProjects.cpp:1079
-msgid "Suspended by user"
-msgstr ""
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Cancelar"
 
-#: ViewProjects.cpp:1082
-msgid "Won't get new tasks"
-msgstr ""
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Suspender essa tarefa. Você não ganhará crédito por ela."
 
-#: ViewProjects.cpp:1085
-msgid "Project ended - OK to remove"
-msgstr ""
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Mostre detalhes de tarefa."
 
-#: ViewProjects.cpp:1088
-#, fuzzy
-msgid "Will remove when tasks done"
-msgstr "Remover quando tarefas concluídas"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Retomar trabalho para esta tarefa."
 
-#: ViewProjects.cpp:1091
-msgid "Scheduler request pending"
-msgstr ""
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Suspenda o trabalho para esta tarefa."
+
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Você tem certeza que quer abortar esta tarefa '%s'?\n(Progresso: %.1lf%%, Status: %s)"
+
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Abordar tarefa"
+
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Você não tem quaisquer projetos.  Por favor, adicione um projeto."
+
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Não disponível"
+
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Tarefas:"
+
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Selecione uma tarefa para acessar"
+
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "De:"
+
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Progresso dessa tarefa"
+
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Comandos da Tarefa"
+
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Exibir um menu de comandos para aplicar a esta tarefa"
+
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Aplicação: %s"
+
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
+
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Aplicação: Não disponível"
+
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Não disponível"
+
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Decorrido: %s"
+
+#: clientgui/sg_TaskPanel.cpp:868
+#, c-format
+msgid "Remaining (estimated): %s"
+msgstr "Restante (estimado): %s"
+
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Status: %s"
+
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Obtendo status atual."
+
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Baixando trabalho do servidor."
+
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Processamento Suspenso: Rodando na Bateria."
+
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Processamento Suspenso: Usuário Ativo."
+
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Processamento suspenso: processamento pausado pelo usuário.."
+
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Processamento suspenso: Hora do dia."
+
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Processamento suspenso: executando comparações de desempenho."
+
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Processamento Suspenso: necessário espaço em disco."
+
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Processamento Suspenso."
+
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Esperando para entrar em contato com servidores de projeto."
+
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Recuperando o status atual"
+
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Nenhum trabalho disponível para processar"
+
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Não é possível conectar com o núcleo do cliente"
+
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Termos de Uso"
+
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Por favor leia os seguintes termos de uso:"
+
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Eu concordo com os termos de uso."
+
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Eu não concordo com os termos de uso."
+
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projeto temporariamente indisponível"
+
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "O projeto está temporariamente indisponível.\n\nPor favor tente novamente mais tarde."
+
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Gerenciador de contas temporariamente indisponível"
+
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "O gerenciador de contas está temporariamente indisponível.\n\nPor favor, tente mais tarde."
+
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Por favor, especifique uma chave de conta para continuar."
+
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Chave de conta inválida; por favor insira uma chave de conta válida"
+
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Conflito de validação"
+
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Por favor espefique um endereço de e-mail"
+
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Endereço de email invalido; por favor insira um endereço de e-mail válido"
+
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Falta URL"
+
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Favor especificar uma URL.\nPor exemplo:\nhttp://www.exemplo.com/"
+
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "URL invalida"
+
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Favor especificar uma URL válida.\nPor exemplo:\nhttp://boincproject.exemplo.com"
+
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' não contém um nome válido de host."
+
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' não contém um caminho válido."
+
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Comandos"
+
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Copiar todas as mensagens"
+
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Copiar mensagens selecionadas"
+
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Mostrar somente este projeto"
+
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Exibir apenas as mensagens para o projeto selecionado."
+
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Mensagens"
+
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Copiar todas as mensagens para a área de transferência ..."
+
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Copiar mensagens selecionadas para a área de transferência ..."
+
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Mensagens filtradas"
+
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Mostrar todas as mensagens"
+
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Mostrar as mensagens para todos os projetos."
+
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Conta"
+
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Trabalho concluído"
+
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Média de trabalho concluído"
+
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Status"
+
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projetos"
+
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Requisitado pelo usuário"
+
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Para buscar trabalho"
+
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Para comunicar tarefas finalizadas"
 
-#: ViewProjects.cpp:1097
-#, fuzzy
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Para enviar mensagem ao servidor"
+
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Requisitado pelo gerenciador da conta"
+
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Inicialização do projeto"
+
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Requisitado pelo projeto"
+
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Motivo desconhecido"
+
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Suspenso pelo usuário"
+
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Não receberá novas tarefas"
+
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projeto finalizado - OK para remover"
+
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Será removido ao término das tarefas"
+
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Pendendo pedido do agendador"
+
+#: clientgui/ViewProjects.cpp:1154
 msgid "Scheduler request in progress"
-msgstr "Chamada do escalonador em progresso"
+msgstr "Pedido do agendador em progresso"
 
-#: ViewProjects.cpp:1100
+#: clientgui/ViewProjects.cpp:1157
 msgid "Trickle up message pending"
-msgstr ""
+msgstr "Mensagem ao servidor pendente"
 
-#: ViewProjects.cpp:1106
-msgid "Communication deferred "
-msgstr ""
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Comunicação adiada"
 
-#: ViewResources.cpp:62
+#: clientgui/ViewResources.cpp:62
 msgid "Total disk usage"
-msgstr ""
+msgstr "Uso total do disco"
 
-#: ViewResources.cpp:83
+#: clientgui/ViewResources.cpp:83
 msgid "Disk usage by BOINC projects"
-msgstr ""
-
-#: ViewResources.cpp:116
-msgid "Disk"
-msgstr ""
+msgstr "Uso do disco por projetos BOINC"
 
-#: ViewResources.cpp:249
+#: clientgui/ViewResources.cpp:225
 msgid "no projects: 0 bytes used"
-msgstr ""
+msgstr "Não há projetos: 0 bytes usados"
 
-#: ViewResources.cpp:286
+#: clientgui/ViewResources.cpp:259
 msgid "used by BOINC: "
-msgstr ""
+msgstr "usado pelo BOINC:"
 
-#: ViewResources.cpp:296
+#: clientgui/ViewResources.cpp:269
 msgid "free, available to BOINC: "
-msgstr ""
+msgstr "livre, disponível para o BOINC:"
 
-#: ViewResources.cpp:306
+#: clientgui/ViewResources.cpp:279
 msgid "free, not available to BOINC: "
-msgstr ""
+msgstr "livre, não disponível para o BOINC:"
 
-#: ViewResources.cpp:316
+#: clientgui/ViewResources.cpp:289
 msgid "free: "
-msgstr ""
+msgstr "livre:"
 
-#: ViewResources.cpp:326
+#: clientgui/ViewResources.cpp:298
 msgid "used by other programs: "
-msgstr ""
+msgstr "usado por outros programas:"
 
-#: ViewStatistics.cpp:1205
+#: clientgui/ViewStatistics.cpp:1181
 msgid "User Total"
-msgstr ""
+msgstr "Total do usuário"
 
-#: ViewStatistics.cpp:1206
+#: clientgui/ViewStatistics.cpp:1182
 msgid "User Average"
-msgstr ""
+msgstr "Média do usuário"
 
-#: ViewStatistics.cpp:1207
+#: clientgui/ViewStatistics.cpp:1183
 msgid "Host Total"
-msgstr ""
+msgstr "Total do host"
 
-#: ViewStatistics.cpp:1208
+#: clientgui/ViewStatistics.cpp:1184
 msgid "Host Average"
-msgstr ""
+msgstr "Média do host"
 
-#: ViewStatistics.cpp:1355
+#: clientgui/ViewStatistics.cpp:1331
 #, c-format
 msgid "Last update: %.0f days ago"
-msgstr ""
+msgstr "Última atualização: %.Of Dias atrás"
 
-#: ViewStatistics.cpp:1982
+#: clientgui/ViewStatistics.cpp:1956
 msgid "Show user total"
-msgstr ""
+msgstr "Mostrar o total de usuário"
 
-#: ViewStatistics.cpp:1983
+#: clientgui/ViewStatistics.cpp:1957
 msgid "Show total credit for user"
-msgstr ""
+msgstr "Mostrar o crédito total para o usuário"
 
-#: ViewStatistics.cpp:1989
+#: clientgui/ViewStatistics.cpp:1963
 msgid "Show user average"
-msgstr ""
+msgstr "Visualizar a média do usuário"
 
-#: ViewStatistics.cpp:1990
+#: clientgui/ViewStatistics.cpp:1964
 msgid "Show average credit for user"
-msgstr ""
+msgstr "Mostrar o crédito médio por usuário"
 
-#: ViewStatistics.cpp:1996
+#: clientgui/ViewStatistics.cpp:1970
 msgid "Show host total"
-msgstr ""
+msgstr "Mostra o total do host"
 
-#: ViewStatistics.cpp:1997
+#: clientgui/ViewStatistics.cpp:1971
 msgid "Show total credit for host"
-msgstr ""
+msgstr "Mostrar o crédito total para o host"
 
-#: ViewStatistics.cpp:2003
+#: clientgui/ViewStatistics.cpp:1977
 msgid "Show host average"
-msgstr ""
+msgstr "Mostrar a média do host"
 
-#: ViewStatistics.cpp:2004
+#: clientgui/ViewStatistics.cpp:1978
 msgid "Show average credit for host"
-msgstr ""
+msgstr "Mostrar a média de crédito para o host"
 
-#: ViewStatistics.cpp:2013
+#: clientgui/ViewStatistics.cpp:1987
 msgid "< &Previous project"
-msgstr ""
+msgstr "< &Projeto anterior"
 
-#: ViewStatistics.cpp:2014
+#: clientgui/ViewStatistics.cpp:1988
 msgid "Show chart for previous project"
-msgstr ""
+msgstr "Mostrar o gráfico para o projeto anterior"
 
-#: ViewStatistics.cpp:2019
+#: clientgui/ViewStatistics.cpp:1993
 msgid "&Next project >"
-msgstr ""
+msgstr "&Próximo projeto >"
 
-#: ViewStatistics.cpp:2020
+#: clientgui/ViewStatistics.cpp:1994
 msgid "Show chart for next project"
-msgstr ""
+msgstr "Mostrar o gráfico para o próximo projeto"
 
-#: ViewStatistics.cpp:2026 ViewStatistics.cpp:2416
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
 msgid "Hide project list"
-msgstr ""
+msgstr "Ocultar lista de projeto"
 
-#: ViewStatistics.cpp:2027 ViewStatistics.cpp:2416
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
 msgid "Use entire area for graphs"
-msgstr ""
+msgstr "Use toda a área de gráficos"
 
-#: ViewStatistics.cpp:2032
+#: clientgui/ViewStatistics.cpp:2006
 msgid "Mode view"
-msgstr ""
+msgstr "Modo de exibição"
 
-#: ViewStatistics.cpp:2036
+#: clientgui/ViewStatistics.cpp:2010
 msgid "One project"
-msgstr ""
+msgstr "Um projeto"
 
-#: ViewStatistics.cpp:2037
+#: clientgui/ViewStatistics.cpp:2011
 msgid "Show one chart with selected project"
-msgstr ""
+msgstr "Mostrar um gráfico com o projeto selecionado"
 
-#: ViewStatistics.cpp:2043
+#: clientgui/ViewStatistics.cpp:2017
 msgid "All projects (separate)"
-msgstr ""
+msgstr "Todos os projetos (separado)"
 
-#: ViewStatistics.cpp:2044
+#: clientgui/ViewStatistics.cpp:2018
 msgid "Show all projects, one chart per project"
-msgstr ""
+msgstr "Mostrar todos os projetos, um gráfico por projeto"
 
-#: ViewStatistics.cpp:2050
+#: clientgui/ViewStatistics.cpp:2024
 msgid "All projects (together)"
-msgstr ""
+msgstr "Todos os projetos (juntos)"
 
-#: ViewStatistics.cpp:2051
+#: clientgui/ViewStatistics.cpp:2025
 msgid "Show one chart with all projects"
-msgstr ""
+msgstr "Mostrar um gráfico com todos os projetos"
 
-#: ViewStatistics.cpp:2057
+#: clientgui/ViewStatistics.cpp:2031
 msgid "All projects (sum)"
-msgstr ""
+msgstr "Todos os projetos (soma)"
 
-#: ViewStatistics.cpp:2058
+#: clientgui/ViewStatistics.cpp:2032
 msgid "Show one chart with sum of projects"
-msgstr ""
+msgstr "Mostrar um gráfico com a soma dos projetos"
 
-#: ViewStatistics.cpp:2079
+#: clientgui/ViewStatistics.cpp:2053
 msgid "Statistics"
-msgstr ""
-
-#: ViewStatistics.cpp:2103 ViewStatistics.cpp:2124 ViewStatistics.cpp:2145
-#: ViewStatistics.cpp:2167 ViewStatistics.cpp:2188 ViewStatistics.cpp:2209
-#: ViewStatistics.cpp:2230 ViewStatistics.cpp:2251 ViewStatistics.cpp:2272
-#: ViewStatistics.cpp:2296
-msgid "Updating charts..."
-msgstr ""
+msgstr "Estatísticas"
 
-#: ViewStatistics.cpp:2420
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Show project list"
-msgstr ""
+msgstr "Mostrar a lista de projetos"
 
-#: ViewStatistics.cpp:2420
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Uses smaller area for graphs"
-msgstr ""
+msgstr "Usa a área menor para gráficos"
 
-#: ViewTransfers.cpp:164
+#: clientgui/ViewTransfers.cpp:187
 msgid "Retry Now"
-msgstr ""
+msgstr "Tentar Novamente"
 
-#: ViewTransfers.cpp:165
+#: clientgui/ViewTransfers.cpp:188
 msgid "Retry the file transfer now"
-msgstr ""
+msgstr "Repetir a transferência de arquivo agora"
 
-#: ViewTransfers.cpp:171
+#: clientgui/ViewTransfers.cpp:194
 msgid "Abort Transfer"
-msgstr ""
+msgstr "Abortar Transferência"
 
-#: ViewTransfers.cpp:172
+#: clientgui/ViewTransfers.cpp:195
 msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr ""
+msgstr "Aborte esta transferência de arquivo.  Não terá crédito para a tarefa."
 
-#: ViewTransfers.cpp:183
-#, fuzzy
+#: clientgui/ViewTransfers.cpp:210
 msgid "File"
-msgstr "&Arquivo"
+msgstr "Arquivo"
 
-#: ViewTransfers.cpp:184 ViewWork.cpp:233
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
 msgid "Progress"
-msgstr ""
+msgstr "Progresso"
 
-#: ViewTransfers.cpp:185
+#: clientgui/ViewTransfers.cpp:212
 msgid "Size"
-msgstr ""
+msgstr "Tamanho"
 
-#: ViewTransfers.cpp:186
-#, fuzzy
-msgid "Elapsed Time"
-msgstr "Tempo decorrido"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Decorrido"
 
-#: ViewTransfers.cpp:187
+#: clientgui/ViewTransfers.cpp:214
 msgid "Speed"
-msgstr ""
+msgstr "Velocidade"
 
-#: ViewTransfers.cpp:213
+#: clientgui/ViewTransfers.cpp:295
 msgid "Transfers"
-msgstr ""
+msgstr "Transferências"
 
-#: ViewTransfers.cpp:280
-#, fuzzy
+#: clientgui/ViewTransfers.cpp:372
 msgid "Network activity is suspended - "
-msgstr "Atividade de rede suspensa"
+msgstr "A atividade de rede está suspensa - "
 
-#: ViewTransfers.cpp:282
+#: clientgui/ViewTransfers.cpp:374
 msgid ""
 ".\n"
 "You can enable it using the Activity menu."
-msgstr ""
+msgstr ".\nVoce pode habilitar isto usando o menu Atividades."
 
-#: ViewTransfers.cpp:285
+#: clientgui/ViewTransfers.cpp:377
 msgid "BOINC"
-msgstr ""
+msgstr "BOINC"
 
-#: ViewTransfers.cpp:292
-msgid "Retrying transfer now..."
-msgstr ""
-
-#: ViewTransfers.cpp:330
-msgid "Aborting transfer..."
-msgstr ""
-
-#: ViewTransfers.cpp:343
+#: clientgui/ViewTransfers.cpp:431
 #, c-format
 msgid ""
 "Are you sure you want to abort this file transfer '%s'?\n"
 "NOTE: Aborting a transfer will invalidate a task and you\n"
 "will not receive credit for it."
-msgstr ""
+msgstr "Você tem certeza que quer abortar esta transferência de arquivo '%s'?\nNOTA: Abortar a transferência vai invalidar a tarefa e você\nnão receberá crédito por ela."
 
-#: ViewTransfers.cpp:349
+#: clientgui/ViewTransfers.cpp:437
 msgid "Abort File Transfer"
-msgstr ""
+msgstr "Abortar a transferência de arquivos"
 
-#: ViewTransfers.cpp:780
+#: clientgui/ViewTransfers.cpp:849
 msgid "Upload"
-msgstr ""
+msgstr "Upload"
 
-#: ViewTransfers.cpp:780
+#: clientgui/ViewTransfers.cpp:849
 msgid "Download"
-msgstr ""
+msgstr "Download"
 
-#: ViewTransfers.cpp:784
+#: clientgui/ViewTransfers.cpp:853
 msgid "retry in "
-msgstr ""
+msgstr "tentar novamente em"
 
-#: ViewTransfers.cpp:786
+#: clientgui/ViewTransfers.cpp:855
 msgid "failed"
-msgstr ""
+msgstr "falhou"
 
-#: ViewTransfers.cpp:789
+#: clientgui/ViewTransfers.cpp:858
 msgid "suspended"
-msgstr ""
+msgstr "suspenso"
 
-#: ViewTransfers.cpp:794
+#: clientgui/ViewTransfers.cpp:863
 msgid "active"
-msgstr ""
+msgstr "ativo"
 
-#: ViewTransfers.cpp:796
+#: clientgui/ViewTransfers.cpp:865
 msgid "pending"
-msgstr ""
+msgstr "pendente"
 
-#: ViewTransfers.cpp:803
+#: clientgui/ViewTransfers.cpp:871
 msgid " (project backoff: "
-msgstr ""
+msgstr " (projeto de retirada: "
 
-#: ViewWork.cpp:187 ViewWork.cpp:777
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
 msgid "Show active tasks"
-msgstr ""
+msgstr "Mostrar tarefas ativas"
 
-#: ViewWork.cpp:188 ViewWork.cpp:778
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
 msgid "Show only active tasks."
-msgstr ""
+msgstr "Mostre apenas as tarefas ativas."
 
-#: ViewWork.cpp:194 sg_TaskCommandPopup.cpp:60
-msgid "Show graphics"
-msgstr ""
-
-#: ViewWork.cpp:195 sg_TaskCommandPopup.cpp:61
-msgid "Show application graphics in a window."
-msgstr ""
-
-#: ViewWork.cpp:201
+#: clientgui/ViewWork.cpp:225
 msgid "Show VM Console"
-msgstr ""
+msgstr "Mostrar o Console da VM"
 
-#: ViewWork.cpp:202
+#: clientgui/ViewWork.cpp:226
 msgid "Show VM Console in a window."
-msgstr ""
+msgstr "Mostre o Console da VM em uma janela."
 
-#: ViewWork.cpp:209
+#: clientgui/ViewWork.cpp:233
 msgid "Suspend work for this result."
-msgstr ""
-
-#: ViewWork.cpp:215 sg_TaskCommandPopup.cpp:72
-msgid "Abort"
-msgstr ""
+msgstr "Suspenda o trabalho para este resultado."
 
-#: ViewWork.cpp:216
+#: clientgui/ViewWork.cpp:240
 msgid "Abandon work on the result. You will get no credit for it."
-msgstr ""
-
-#: ViewWork.cpp:223 sg_TaskCommandPopup.cpp:79
-msgid "Show task details."
-msgstr ""
+msgstr "Abandone o trabalho no resultado. Você não vai ter nenhum crédito por isso."
 
-#: ViewWork.cpp:235
-msgid "Elapsed"
-msgstr ""
-
-#: ViewWork.cpp:236
+#: clientgui/ViewWork.cpp:264
 msgid "Remaining (estimated)"
-msgstr ""
+msgstr "Restante (estimado)"
 
-#: ViewWork.cpp:237
+#: clientgui/ViewWork.cpp:265
 msgid "Deadline"
-msgstr ""
+msgstr "Prazo final"
 
-#: ViewWork.cpp:264
+#: clientgui/ViewWork.cpp:351
 msgid "Tasks"
-msgstr ""
+msgstr "Tarefas"
 
-#: ViewWork.cpp:357
-msgid "Resuming task..."
-msgstr ""
-
-#: ViewWork.cpp:360
-msgid "Suspending task..."
-msgstr ""
-
-#: ViewWork.cpp:389
-msgid "Showing graphics for task..."
-msgstr ""
-
-#: ViewWork.cpp:426
-msgid "Showing VM console for task..."
-msgstr ""
-
-#: ViewWork.cpp:479
+#: clientgui/ViewWork.cpp:564
 #, c-format
 msgid ""
 "Are you sure you want to abort this task '%s'?\n"
 "(Progress: %s, Status: %s)"
-msgstr ""
+msgstr "Você tem certeza que quer abortar esta tarefa '%s'?\n(Progresso: %s, Status: %s)"
 
-#: ViewWork.cpp:485
+#: clientgui/ViewWork.cpp:570
 #, c-format
 msgid "Are you sure you want to abort these %d tasks?"
-msgstr ""
-
-#: ViewWork.cpp:490 sg_TaskCommandPopup.cpp:256
-msgid "Abort task"
-msgstr ""
-
-#: ViewWork.cpp:499
-msgid "Aborting task..."
-msgstr ""
+msgstr "Você tem certeza que quer abortar estas %d tarefas?"
 
-#: ViewWork.cpp:771
+#: clientgui/ViewWork.cpp:848
 msgid "Show all tasks"
-msgstr ""
+msgstr "Mostrar todas tarefas"
 
-#: ViewWork.cpp:772
+#: clientgui/ViewWork.cpp:849
 msgid "Show all tasks."
-msgstr ""
-
-#: ViewWork.cpp:796 sg_TaskCommandPopup.cpp:103
-msgid "Resume work for this task."
-msgstr ""
-
-#: ViewWork.cpp:802 sg_TaskCommandPopup.cpp:107
-msgid "Suspend work for this task."
-msgstr ""
+msgstr "Mostrar todas tarefas."
 
-#: WelcomePage.cpp:284
-#, fuzzy
-msgid "Add project or account manager"
-msgstr "&Adicionar projeto ou gerenciador de contas..."
-
-#: WelcomePage.cpp:288
-msgid "Add project or use BOINC Account Manager"
-msgstr ""
-
-#: WelcomePage.cpp:297
-#, c-format
-msgid ""
-"If possible, add projects at the\n"
-"%s web site.\n"
-"\n"
-"Projects added via this wizard will not be\n"
-"listed on or managed via %s."
-msgstr ""
-
-#: WelcomePage.cpp:313
-msgid ""
-"There are over 30 BOINC-based projects\n"
-"doing research in many areas of science,\n"
-"and you can volunteer for as many of them as you like.\n"
-"You can add a project directly,\n"
-"or use an 'Account Manager' web site to select projects."
-msgstr ""
-
-#: WelcomePage.cpp:325
-msgid ""
-"You have chosen to add a new volunteer computing project or change which "
-"projects\n"
-"you contribute to.\n"
-"\n"
-"Some of these projects are run and managed by World Community Grid, while "
-"others\n"
-"are run and managed by other researchers or organizations. The BOINC "
-"software\n"
-"can divide your spare processing power among any combination of projects.\n"
-"\n"
-"Alternatively, if you have registered with a BOINC Account Manager, you can "
-"use\n"
-"this to choose which projects to support.\n"
-"\n"
-"Please choose which type of change you would like to make:\n"
-msgstr ""
-
-#: WelcomePage.cpp:339
-msgid "Use a BOINC Account Manager"
-msgstr ""
-
-#: WelcomePage.cpp:352
-msgid "To continue, click Next."
-msgstr ""
-
-#: WelcomePage.cpp:358
-msgid "Add or change your World Community Grid projects"
-msgstr ""
-
-#: WelcomePage.cpp:361
-msgid "Add projects run by other researchers or organizations"
-msgstr ""
-
-#: WizardAttach.cpp:634
+#: clientgui/WizardAttach.cpp:591
 msgid "Do you really want to cancel?"
-msgstr ""
+msgstr "Você realmente deseja cancelar? "
 
-#: WizardAttach.cpp:635
+#: clientgui/WizardAttach.cpp:592
 msgid "Question"
-msgstr ""
-
-#: sg_BoincSimpleFrame.cpp:149
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr ""
-
-#: sg_BoincSimpleFrame.cpp:150
-#, fuzzy
-msgid "Display the advanced graphical interface."
-msgstr "Exibir a interface gráfica simples."
-
-#: sg_BoincSimpleFrame.cpp:157
-msgid "Skin"
-msgstr ""
-
-#: sg_BoincSimpleFrame.cpp:159
-msgid "Select the appearance of the user interface."
-msgstr ""
-
-#: sg_BoincSimpleFrame.cpp:206
-#, c-format
-msgid "&%s"
-msgstr ""
-
-#: sg_BoincSimpleFrame.cpp:390
-#, fuzzy
-msgid "Default"
-msgstr "&Definir Padrão"
-
-#: sg_BoincSimpleFrame.cpp:759
-msgid "Suspend Computing"
-msgstr ""
-
-#: sg_BoincSimpleFrame.cpp:760
-msgid "Resume Computing"
-msgstr ""
-
-#: sg_BoincSimpleFrame.cpp:777
-msgid "Open a window to view notices from projects or BOINC"
-msgstr ""
-
-#: sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Fechar"
-
-#: sg_DlgMessages.cpp:389
-#, c-format
-#, fuzzy, c-format
-msgid "%s - Notices"
-msgstr "%s Avisos"
-
-#: sg_DlgPreferences.cpp:268
-msgid "This dialog controls preferences for this computer only."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:273
-msgid "Click OK to set preferences."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:278
-msgid ""
-"Click Clear to restore web-based settings for all preferences listed below."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:285
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr ""
-
-#: sg_DlgPreferences.cpp:313
-msgid "Do work only between:"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:335
-msgid "Connect to internet only between:"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:357 sg_DlgPreferences.cpp:374
-msgid "Use no more than:"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:370
-msgid "of disk space"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:387
-#, fuzzy
-msgid "of the processor"
-msgstr "% de processadores"
-
-#: sg_DlgPreferences.cpp:391
-msgid "Do work while on battery?"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:404
-msgid "Do work after idle for:"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:429
-#, fuzzy
-msgid "Clear all local preferences listed above and close the dialog"
-msgstr "limpar todas as preferências locais e fechar caixa de diálogo"
-
-#: sg_DlgPreferences.cpp:602 sg_DlgPreferences.cpp:605
-#: sg_DlgPreferences.cpp:681 sg_DlgPreferences.cpp:685
-#: sg_DlgPreferences.cpp:697 sg_DlgPreferences.cpp:701
-#: sg_DlgPreferences.cpp:844 sg_DlgPreferences.cpp:855
-msgid "Anytime"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:638
-msgid "100 MB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:639
-msgid "200 MB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:640
-msgid "500 MB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:641
-msgid "1 GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:642
-msgid "2 GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:643
-msgid "5 GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:644
-msgid "10 GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:645
-msgid "20 GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:646
-msgid "50 GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:647
-msgid "100 GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:717
-#, c-format
-msgid "%d MB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:719
-#, c-format
-msgid "%4.2f GB"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:760
-#, c-format
-msgid "%d%%"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:796
-msgid "0 (Run Always)"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:799
-#, c-format
-msgid "%d"
-msgstr ""
-
-#: sg_DlgPreferences.cpp:1029
-#, fuzzy
-msgid "Do you really want to clear all local preferences?\n"
-msgstr "Deseja realmente apagar todas as preferências locais ?"
-
-#: sg_ProjectPanel.cpp:72
-#, fuzzy
-msgid "Add Project"
-msgstr "Adicionar projeto"
-
-#: sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr ""
-
-#: sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr ""
+msgstr "Pergunta"
 
-#: sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr ""
-
-#: sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr ""
-
-# 88%
-#: sg_ProjectPanel.cpp:145
-#, fuzzy
-msgid "Project Web Pages"
-msgstr "Projeto adicionado"
-
-#: sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr ""
-
-#: sg_ProjectPanel.cpp:267
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr ""
-
-#: sg_ProjectPanel.cpp:269
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr ""
-
-#: sg_TaskCommandPopup.cpp:67
-msgid "Suspend this task."
-msgstr ""
-
-#: sg_TaskCommandPopup.cpp:73
-msgid "Abandon this task. You will get no credit for it."
-msgstr ""
-
-#: sg_TaskCommandPopup.cpp:251
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr ""
-
-#: sg_TaskPanel.cpp:464
-msgid "You don't have any projects.  Please Add a Project."
-msgstr ""
-
-#: sg_TaskPanel.cpp:465
-msgid "Not available"
-msgstr ""
-
-#: sg_TaskPanel.cpp:476
-msgid "Tasks:"
-msgstr ""
-
-#: sg_TaskPanel.cpp:482
-msgid "Select a task to access"
-msgstr ""
-
-#: sg_TaskPanel.cpp:493
-msgid "From:"
-msgstr ""
-
-#: sg_TaskPanel.cpp:547
-msgid "This task's progress"
-msgstr ""
-
-#: sg_TaskPanel.cpp:565
-msgid "Task Commands"
-msgstr ""
-
-#: sg_TaskPanel.cpp:566
-msgid "Pop up a menu of commands to apply to this task"
-msgstr ""
-
-#: sg_TaskPanel.cpp:701
-#, c-format
-#, fuzzy, c-format
-msgid "Application: %s"
-msgstr "Aplicação"
-
-#: sg_TaskPanel.cpp:724
-#, c-format
-msgid "%.3f%%"
-msgstr ""
-
-#: sg_TaskPanel.cpp:732
-msgid "Application: Not available"
-msgstr ""
-
-#: sg_TaskPanel.cpp:832
-msgid "Not Available"
-msgstr ""
-
-#: sg_TaskPanel.cpp:847
-#, c-format
-msgid "Elapsed: %s"
-msgstr ""
-
-#: sg_TaskPanel.cpp:861
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr ""
-
-#: sg_TaskPanel.cpp:876
-#, c-format
-msgid "Status: %s"
-msgstr ""
-
-#: sg_TaskPanel.cpp:1223
-msgid "Retrieving current status."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1229
-msgid "Downloading work from the server."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1234
-msgid "Processing Suspended:  Running On Batteries."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1236
-msgid "Processing Suspended:  User Active."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1238
-msgid "Processing Suspended:  User paused processing."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1240
-msgid "Processing Suspended:  Time of Day."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1242
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1244
-msgid "Processing Suspended."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1248
-msgid "Waiting to contact project servers."
-msgstr ""
-
-#: sg_TaskPanel.cpp:1252 sg_TaskPanel.cpp:1261
-msgid "Retrieving current status"
-msgstr ""
-
-#: sg_TaskPanel.cpp:1256
-msgid "No work available to process"
-msgstr ""
-
-#: sg_TaskPanel.cpp:1258
-msgid "Unable to connect to the core client"
-msgstr ""
-
-#: wizardex.cpp:377 wizardex.cpp:553
+#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
-msgstr ""
+msgstr "&Próximo >"
 
-#: wizardex.cpp:383
+#: clientgui/wizardex.cpp:383
 msgid "< &Back"
-msgstr ""
+msgstr "< &Anterior"
 
-#: wizardex.cpp:553
+#: clientgui/wizardex.cpp:553
 msgid "&Finish"
-msgstr ""
-
-#: mac/Mac_GUI.cpp:110
-msgid "Preferences…"
-msgstr ""
+msgstr "&Finalizar"
 
-#: mac/Mac_GUI.cpp:122
+#: clientgui/mac/Mac_GUI.cpp:35
 msgid "Services"
-msgstr ""
+msgstr "Serviços"
 
-#: mac/Mac_GUI.cpp:144
+#: clientgui/mac/Mac_GUI.cpp:36
 #, c-format
 msgid "Hide %s"
-msgstr ""
+msgstr "Esconder %s"
 
-#: mac/Mac_GUI.cpp:158
+#: clientgui/mac/Mac_GUI.cpp:37
 msgid "Hide Others"
-msgstr ""
+msgstr "Esconder Outros"
 
-#: mac/Mac_GUI.cpp:172
+#: clientgui/mac/Mac_GUI.cpp:38
 msgid "Show All"
-msgstr ""
+msgstr "Mostrar Todas"
 
-#: mac/Mac_GUI.cpp:186
+#: clientgui/mac/Mac_GUI.cpp:39
 #, c-format
-#, fuzzy, c-format
 msgid "Quit %s"
 msgstr "&Sair %s"
-
-#~ msgid "Workunit name"
-#~ msgstr "Nome da unidade de trabalho"
-
-# float is a variable type in computer programming. It is a known and very used word among computer programmers on Brazil. I believe nobody or only a few people uses it in its translated form; there is no good translation for it in this context. Therefore, translating it may be unbecoming.
-#~ msgid "invalid float"
-#~ msgstr "float inválido"
-
-#, fuzzy
-#~ msgid "Display the advanced (accessible) graphical interface."
-#~ msgstr "Exibir a interface gráfica simples."
-
-# 75%
-#, fuzzy
-#~ msgid "My Projects:"
-#~ msgstr "Projeto"
-
-#, fuzzy
-#~ msgid "Application: "
-#~ msgstr "Aplicação"
-
-#, fuzzy
-#~ msgid "Elapsed Time: "
-#~ msgstr "Tempo decorrido"
-
-#~ msgid "Account manager website"
-#~ msgstr "Página do gerenciador de contas na internet"
-
-#~ msgid "Account Manager &URL:"
-#~ msgstr "Gerenciador de Contas &URL:"
-
-#, c-format
-#~ msgid "%s &website"
-#~ msgstr "%s &página de internet"
-
-#, fuzzy
-#~ msgid "list of projects or account managers"
-#~ msgstr "&Adicionar projeto ou gerenciador de contas..."
-
-#, c-format
-#~ msgid "The minimum password length for this project is %d. Please enter a different password."
-#~ msgstr ""
-#~ "O comprimento mínimo de senha para este projeto é %d. Por favor, entre com "
-#~ "uma senha diferente."
-
-#, c-format
-#~ msgid "The minimum password length for this account manager is %d. Please enter a different password."
-#~ msgstr ""
-#~ "O comprimento mínimo de senha para este gerenciador de contas é %d. Por "
-#~ "favor, entre com uma senha diferente."
-
-#, fuzzy
-#~ msgid ""
-#~ "An error has occurred;\n"
-#~ "check the Event Log for details.\n"
-#~ "\n"
-#~ "Click Finish to close."
-#~ msgstr ""
-#~ "Ocorreu um erro;\n"
-#~ "verifique em Mensagens para detalhes.\n"
-#~ "\n"
-#~ "Clique em Finalizar para fechar."
-
-#, no-c-format
-#~ msgid "% of the processors"
-#~ msgstr "% de processadores"
-
-#~ msgid "Identify your account "
-#~ msgstr "Identifique sua conta"
-
-#~ msgid "Read config file"
-#~ msgstr "Ler arquivo de configuração"
-
-#~ msgid "Read configuration info from cc_config.xml"
-#~ msgstr "Ler informações de configuração de cc_config.xml"
-
-#, fuzzy
-#~ msgid ""
-#~ "(C) 2003-2011 University of California, Berkeley.\n"
-#~ "All Rights Reserved."
-#~ msgstr ""
-#~ "(C) 2003-2010 Universidade da Califórnia, Berkeley.\n"
-#~ "Todos os Direitos Reservados."
-
-#~ msgid "Don't fetch NVIDIA GPU tasks"
-#~ msgstr "Não buscar tarefas de GPU NVIDIA"
-
-#~ msgid "NVIDIA GPU work fetch deferred for"
-#~ msgstr "Busca de trabalho de GPU NVIDIA diferido por"
-
-#~ msgid "NVIDIA GPU work fetch deferral interval"
-#~ msgstr "Intervalo de diferimento de busca de trabalho de GPU NVIDIA"
-
-#~ msgid "Don't fetch ATI GPU tasks"
-#~ msgstr "Não buscar tarefas de GPU ATI"
-
-#~ msgid "ATI GPU work fetch deferred for"
-#~ msgstr "Busca de trabalho de GPU ATI diferido por"
-
-#~ msgid "ATI GPU work fetch deferral interval"
-#~ msgstr "Intervalo de diferimento de busca de trabalho de GPU ATI"
-
-#~ msgid "Web sites"
-#~ msgstr "Páginas de internet"
-
-#~ msgid "Connect about every"
-#~ msgstr "Conectar a cada"
-
-#~ msgid ""
-#~ "this computer is connected to the Internet about every X days\n"
-#~ "(0 if it's always connected)"
-#~ msgstr ""
-#~ "este computador é conectado à Internet a cada X dias\n"
-#~ "(0 se está sempre conectado)"
-
-#~ msgid "days (max. 10)"
-#~ msgstr "dias (máximo 10)"
-
-#~ msgid "Display and network &options..."
-#~ msgstr "&Opções de exibição e rede..."
-
-#~ msgid ""
-#~ "You have requested to exit the %s,\n"
-#~ "which allows you to view and manage\n"
-#~ "the science applications running on your computer.\n"
-#~ "\n"
-#~ "If you also want to stop running the science applications when you\n"
-#~ "exit the Manager, then choose from the following options:"
-#~ msgstr ""
-#~ "Você solicitou sair de %s,\n"
-#~ "que o permite visualizar e gerenciar\n"
-#~ "as aplicações científicas executadas em seu computador.\n"
-#~ "\n"
-#~ "Se também deseja interromper execução das aplicações científicas quando\n"
-#~ "sair do Gerenciador, então selecione das seguintes opções:"
-
-#~ msgid "Stop running science applications when exiting the Manager"
-#~ msgstr ""
-#~ "Interromper execução das aplicações científicas quando sair do Gerenciador"
-
-#~ msgid "CPU work fetch priority"
-#~ msgstr "Prioridade de busca de trabalhos de CPU"
-
-#~ msgid "NVIDIA GPU scheduling priority"
-#~ msgstr "Prioridade de escalonamento de GPU NVIDIA"
-
-#~ msgid "NVIDIA GPU work fetch priority"
-#~ msgstr "Prioridade de busca de trabalho de GPU NVIDIA"
-
-#~ msgid "ATI GPU scheduling priority"
-#~ msgstr "Prioridade de escalonamento de GPU ATI"
-
-#~ msgid "ATI GPU work fetch priority"
-#~ msgstr "Prioridade de busca de trabalho de GPU ATI"
-
-#~ msgid "%s - Options"
-#~ msgstr "%s - Opções"
-
-#~ msgid "Get help with BOINC"
-#~ msgstr "Obter ajuda com BOINC"
-
-#~ msgid "Event Log..."
-#~ msgstr "Registro de Eventos..."
-
-#~ msgid "Attaching to project or account manager..."
-#~ msgstr "Vinculando-se a projeto ou gerenciador de contas..."
-
-#~ msgid "%s - Detach from %s"
-#~ msgstr "%s - Desligar-se de %s"
-
-#~ msgid "Retrying communications."
-#~ msgstr "Tentando comunicações novamente."
-
-#~ msgid "Failed to attach to project"
-#~ msgstr "Falha ao vincular-se ao projeto"
-
-#~ msgid "Failed to attach to account manager"
-#~ msgstr "Falha ao vincular-se ao gerenciador de contas"
-
-#~ msgid "Attached to account manager"
-#~ msgstr "Vinculado ao gerenciador de contas"
-
-#~ msgid "You are now successfully attached to the %s system."
-#~ msgstr "Você está agora vinculado com sucesso ao sistema %s."
-
-#~ msgid "You are now successfully attached to this account manager."
-#~ msgstr "Você está agora vinculado com sucesso a este gerenciador de contas."
diff --git a/locale/pt_BR/BOINC-Project-Generic.po b/locale/pt_BR/BOINC-Project-Generic.po
deleted file mode 100755
index e26f73c..0000000
--- a/locale/pt_BR/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6467 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "English"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr ""
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr ""
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr ""
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr ""
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr ""
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr ""
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr ""
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr ""
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr ""
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr ""
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr ""
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr ""
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr ""
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr ""
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr ""
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr ""
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr ""
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr ""
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr ""
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr ""
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr ""
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr ""
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr ""
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr ""
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr ""
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr ""
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr ""
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr ""
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr ""
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr ""
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr ""
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr ""
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr ""
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr ""
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr ""
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr ""
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr ""
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr ""
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr ""
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr ""
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr ""
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr ""
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr ""
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr ""
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr ""
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr ""
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr ""
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr ""
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr ""
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr ""
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr ""
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr ""
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr ""
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr ""
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr ""
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr ""
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr ""
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr ""
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr ""
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr ""
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr ""
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr ""
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr ""
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr ""
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr ""
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr ""
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr ""
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr ""
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr ""
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr ""
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr ""
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr ""
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr ""
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr ""
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr ""
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr ""
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr ""
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr ""
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr ""
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr ""
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr ""
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr ""
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr ""
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr ""
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr ""
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr ""
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr ""
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr ""
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr ""
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr ""
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr ""
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr ""
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr ""
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr ""
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr ""
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr ""
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr ""
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr ""
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr ""
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr ""
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr ""
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr ""
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr ""
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr ""
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr ""
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr ""
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr ""
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr ""
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr ""
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr ""
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr ""
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr ""
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr ""
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr ""
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr ""
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr ""
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr ""
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr ""
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr ""
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr ""
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr ""
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr ""
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr ""
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr ""
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr ""
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr ""
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr ""
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr ""
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr ""
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr ""
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr ""
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr ""
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr ""
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr ""
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr ""
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr ""
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr ""
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr ""
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr ""
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr ""
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr ""
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr ""
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr ""
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr ""
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr ""
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr ""
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr ""
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr ""
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr ""
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr ""
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr ""
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr ""
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr ""
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr ""
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr ""
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr ""
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr ""
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr ""
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr ""
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr ""
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr ""
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr ""
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr ""
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr ""
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr ""
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr ""
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr ""
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr ""
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr ""
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr ""
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr ""
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr ""
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr ""
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr ""
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr ""
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr ""
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr ""
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr ""
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr ""
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr ""
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr ""
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr ""
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr ""
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr ""
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr ""
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr ""
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr ""
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr ""
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr ""
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr ""
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr ""
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr ""
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr ""
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr ""
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr ""
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr ""
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr ""
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr ""
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr ""
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr ""
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr ""
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr ""
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr ""
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr ""
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr ""
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr ""
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr ""
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr ""
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr ""
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr ""
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr ""
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr ""
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr ""
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr ""
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr ""
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr ""
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr ""
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr ""
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr ""
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr ""
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr ""
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr ""
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr ""
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr ""
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr ""
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr ""
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr ""
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr ""
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr ""
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr ""
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr ""
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr ""
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr ""
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr ""
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr ""
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr ""
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr ""
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr ""
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr ""
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr ""
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr ""
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr ""
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr ""
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr ""
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr ""
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr ""
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr ""
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr ""
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr ""
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr ""
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr ""
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr ""
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr ""
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr ""
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr ""
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr ""
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr ""
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr ""
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr ""
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr ""
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr ""
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr ""
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr ""
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr ""
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr ""
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr ""
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr ""
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr ""
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr ""
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr ""
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr ""
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr ""
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr ""
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr ""
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr ""
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr ""
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr ""
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr ""
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr ""
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr ""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr ""
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr ""
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr ""
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr ""
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr ""
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr ""
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr ""
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr ""
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr ""
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr ""
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr ""
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr ""
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr ""
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr ""
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr ""
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr ""
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr ""
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr ""
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr ""
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr ""
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr ""
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr ""
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr ""
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr ""
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr ""
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr ""
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr ""
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr ""
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr ""
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr ""
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr ""
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr ""
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr ""
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr ""
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr ""
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr ""
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr ""
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr ""
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr ""
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr ""
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr ""
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr ""
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr ""
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr ""
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr ""
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr ""
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr ""
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr ""
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr ""
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr ""
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr ""
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr ""
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr ""
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr ""
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr ""
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr ""
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr ""
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr ""
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr ""
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr ""
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr ""
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr ""
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr ""
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr ""
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr ""
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr ""
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr ""
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr ""
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr ""
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr ""
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr ""
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr ""
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr ""
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr ""
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr ""
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr ""
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr ""
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr ""
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr ""
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr ""
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr ""
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr ""
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr ""
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr ""
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr ""
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr ""
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr ""
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr ""
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr ""
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr ""
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr ""
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr ""
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr ""
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr ""
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr ""
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr ""
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr ""
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr ""
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr ""
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr ""
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr ""
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr ""
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr ""
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr ""
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr ""
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr ""
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr ""
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr ""
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr ""
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr ""
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr ""
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr ""
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr ""
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr ""
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr ""
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr ""
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr ""
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr ""
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr ""
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr ""
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr ""
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr ""
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr ""
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr ""
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr ""
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr ""
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr ""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr ""
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr ""
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr ""
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr ""
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr ""
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr ""
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr ""
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr ""
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr ""
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr ""
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr ""
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr ""
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr ""
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr ""
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr ""
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr ""
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr ""
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr ""
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr ""
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr ""
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr ""
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr ""
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr ""
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr ""
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr ""
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr ""
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr ""
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr ""
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr ""
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr ""
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr ""
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr ""
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr ""
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr ""
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr ""
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr ""
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr ""
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr ""
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr ""
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr ""
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr ""
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr ""
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr ""
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr ""
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr ""
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr ""
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr ""
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr ""
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr ""
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr ""
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr ""
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr ""
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr ""
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr ""
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr ""
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr ""
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr ""
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr ""
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr ""
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr ""
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr ""
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr ""
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr ""
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr ""
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr ""
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr ""
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr ""
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr ""
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr ""
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr ""
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr ""
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr ""
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr ""
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr ""
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr ""
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr ""
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr ""
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr ""
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr ""
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr ""
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr ""
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr ""
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr ""
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr ""
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr ""
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr ""
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr ""
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr ""
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr ""
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr ""
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr ""
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr ""
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr ""
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr ""
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr ""
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr ""
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr ""
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr ""
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr ""
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr ""
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr ""
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr ""
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr ""
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr ""
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr ""
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr ""
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr ""
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr ""
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr ""
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr ""
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr ""
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr ""
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr ""
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr ""
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr ""
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr ""
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr ""
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr ""
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr ""
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr ""
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr ""
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr ""
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr ""
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr ""
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr ""
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr ""
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr ""
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr ""
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr ""
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr ""
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr ""
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr ""
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr ""
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr ""
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr ""
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr ""
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr ""
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr ""
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr ""
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr ""
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr ""
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr ""
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr ""
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr ""
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr ""
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr ""
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr ""
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr ""
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr ""
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr ""
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr ""
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr ""
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr ""
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr ""
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr ""
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr ""
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr ""
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr ""
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr ""
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr ""
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr ""
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr ""
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr ""
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr ""
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr ""
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr ""
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr ""
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr ""
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr ""
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr ""
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr ""
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr ""
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr ""
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr ""
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr ""
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr ""
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr ""
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr ""
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr ""
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr ""
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr ""
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr ""
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr ""
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr ""
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr ""
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr ""
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr ""
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr ""
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr ""
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr ""
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr ""
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr ""
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr ""
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr ""
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr ""
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr ""
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr ""
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr ""
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr ""
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr ""
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr ""
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr ""
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr ""
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr ""
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr ""
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr ""
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr ""
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr ""
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr ""
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr ""
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr ""
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr ""
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr ""
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr ""
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr ""
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr ""
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr ""
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr ""
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr ""
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr ""
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr ""
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr ""
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr ""
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr ""
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr ""
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr ""
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr ""
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr ""
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr ""
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr ""
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr ""
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr ""
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr ""
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr ""
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr ""
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr ""
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr ""
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr ""
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr ""
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr ""
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr ""
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr ""
diff --git a/locale/pt_BR/BOINC-Setup.mo b/locale/pt_BR/BOINC-Setup.mo
index f37004e..4ab7bee 100644
Binary files a/locale/pt_BR/BOINC-Setup.mo and b/locale/pt_BR/BOINC-Setup.mo differ
diff --git a/locale/pt_BR/BOINC-Setup.po b/locale/pt_BR/BOINC-Setup.po
old mode 100755
new mode 100644
index 39f68e6..c8b5d36
--- a/locale/pt_BR/BOINC-Setup.po
+++ b/locale/pt_BR/BOINC-Setup.po
@@ -1,100 +1,102 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Wiri Marcolan Kamei <wirimk at hotmail.com>, 2016-2017
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pt_BR\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-13 22:41+0000\n"
+"Last-Translator: Wiri Marcolan Kamei <wirimk at hotmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/boinc/boinc/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.5\n"
-"X-Poedit-SearchPath-0: mac_installer\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
-"X-Poedit-KeywordsList: _\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr ""
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Desculpe, esta versão de %s requer versão 10.6 ou posterior."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
-msgstr ""
+msgstr "Sim"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
-msgstr ""
+msgstr "Não"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
-msgstr ""
+msgstr "Pode o BOINC rodar mesmo quando nenhum usuário estiver logado?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
-"Users who are permitted to administer this computer will automatically be "
-"allowed to run and control %s.\n"
+"Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
-"Do you also want non-administrative users to be able to run and control %s "
-"on this Mac?"
-msgstr ""
+"Do you also want non-administrative users to be able to run and control %s on this Mac?"
+msgstr "Usuários que tem permissão para administrar este computador serão automaticamente autorizados a rodar e controlar %s.\n\nVocê gostaria que usuários sem direitos administrativos também possam rodar e controlar %s neste Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr ""
+msgstr "Você gostaria de aplicar o protetor de tela de %s para todos os usuários de %s deste Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
-msgstr ""
+msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
-msgstr ""
+msgstr "Error de permissão após a reabertura"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
-msgstr ""
+msgstr "A remoção pode demorar vários minutos.\nPor favor seja paciente."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
 "\n"
 "This will remove the executables but will not touch %s data files."
-msgstr ""
+msgstr "Você tem certeza que quer remover completamente %s de seu computador?\n\nIsto removerá os arquivos executáveis mas não irá alterar os arquivos de dados de %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
-msgstr ""
+msgstr "Cancelado: não houve alteração em %s."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
-msgstr ""
+msgstr "Um erro ocorreu: código de erro %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
-msgstr ""
+msgstr "nome do usuário"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
-msgstr ""
+msgstr "Você também gostaria de remover VirtualBox do seu computador?\n(VirtualBox foi instalado junto com BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -104,20 +106,19 @@ msgid ""
 "\n"
 "for each user, the file\n"
 "\"%s\"."
-msgstr ""
+msgstr "Remoção completa.\n\nVocê pode querer remover os seguintes itens restantes usando Finder:\no diretório \"%s\"\n\npara cada usuário, o arquivo\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
-"Enter your administrator password to completely remove %s from you "
-"computer.\n"
+"Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
-msgstr ""
+msgstr "Insira sua senha de administrador para remover completamente %s de seu computador.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
-msgstr ""
+msgstr "Cancelar"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
-msgstr ""
+msgstr "Continuar..."
diff --git a/locale/pt_BR/BOINC-Web.mo b/locale/pt_BR/BOINC-Web.mo
index 9ada32f..632dbfd 100644
Binary files a/locale/pt_BR/BOINC-Web.mo and b/locale/pt_BR/BOINC-Web.mo differ
diff --git a/locale/pt_BR/BOINC-Web.po b/locale/pt_BR/BOINC-Web.po
old mode 100755
new mode 100644
index 9815050..67123fa
--- a/locale/pt_BR/BOINC-Web.po
+++ b/locale/pt_BR/BOINC-Web.po
@@ -1,876 +1,982 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
+# 
 # This file is distributed under the same license as BOINC.
-# FileID  : $Id$
+# 
+# Translators:
+# Adriano Pais Rodrigues <adrikei at gmail.com>, 2015
+# Bruno <rustingheart at hotmail.com>, 2015
+# Marcelo Thomaz de Aquino Filho <marcelotfilho at gmail.com>, 2015
+# Wiri Marcolan Kamei <wirimk at hotmail.com>, 2016-2017
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2014-02-01 00:00 PST\n"
-"PO-Revision-Date: 2006-09-18 17:43-0300\n"
-"Last-Translator: alcirsp <alcirsp at user.com.br>\n"
-"Language-Team: \n"
-"Language: pt_BR\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-03-14 22:20+0000\n"
+"Last-Translator: Wiri Marcolan Kamei <wirimk at hotmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/boinc/boinc/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.2.1\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-SearchPath-0: doc\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
-"X-Poedit-KeywordsList: tra\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "LANG_NAME_NATIVE"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "LANG_NAME_INTERNATIONAL"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! ajuda-o na criação e gerenciamento de suas contas de projetos BOINC e ajuda com a escolha das preferências, ingresso ou criação de equipes, conexão de seus computadores com os projetos, e muito mais. Seja você um usuário BOINC novo ou já existente, BAM o ajudará a obter o máximo de BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Membros do GridRepublic rodam um protetor de tela que permite a seus computadores trabalhar em projetos de pesquisa de interesse público quando as máquinas não estão em uso. Este protetor de tela não afeta a performance do computador além do que um protetor de tela comum."
+
+#: doc/docutil.php:21
 msgid "Search"
-msgstr ""
+msgstr "Procurar"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
-msgstr ""
+msgstr "Retornar para a página inicial do BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
-msgstr ""
+msgstr "Essa página é %straduzível%s"
 
-#: download.php:39
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
-msgstr ""
+msgstr "Nós recomendamos que você também instale o VirtualBox, para que o seu computador possa trabalhar em projetos que o requerem."
 
-#: download.php:41
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
-msgstr ""
+msgstr "Aprenda mais sobre o VirtualBox"
 
-#: download.php:51
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
-msgstr ""
+msgstr "Baixar BOINC + VirtualBox"
 
-#: download.php:54 download.php:69
+#. "for %s" identifies the operating system, e.g. "for Windows"
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
-msgstr ""
+msgstr "para %s"
 
-#: download.php:57 download.php:72
+#: doc/download.php:59 doc/download.php:74
 #, php-format
-msgid "BOINC version %s"
-msgstr ""
+msgid "BOINC %s"
+msgstr "BOINC %s"
 
-#: download.php:59
+#: doc/download.php:61
 #, php-format
-msgid "VirtualBox version %s"
-msgstr ""
+msgid "VirtualBox %s"
+msgstr "VirtualBox %s"
 
-#: download.php:67
+#: doc/download.php:69
 msgid "Download BOINC"
-msgstr ""
+msgstr "Baixar BOINC"
 
-#: download.php:123
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
-msgstr ""
+msgstr "BOINC é um programa que te deixa doar o tempo livre do seu computador para projetos científicos como SETI at home, Climateprediction.net, Rosetta at home, World Community Grid, e vários outros."
 
-#: download.php:125
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
-msgstr ""
+msgstr "Depois de instalar o BOINC no seu computador, você pode conectá-lo a quantos projetos destes você quiser."
 
-#: download.php:127
+#: doc/download.php:137
 msgid ""
-"You may run this software on a computer only if you own the computer or have "
-"the permission of its owner."
-msgstr ""
+"You may run this software on a computer only if you own the computer or have"
+" the permission of its owner."
+msgstr "Você só pode executar este software em um computador se você for o dono ou tiver a permissão do dono."
 
-#: download.php:132
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
-msgstr ""
+msgstr "Nós recomendamos que você baixe o BOINC da loja Google Play ou Amazon Appstore, não daqui."
 
-#: download.php:167
+#: doc/download.php:177
 msgid "System requirements"
-msgstr ""
+msgstr "Requerimentos do sistema"
 
-#: download.php:168
+#: doc/download.php:178
 msgid "Release notes"
-msgstr ""
+msgstr "Notas de lançamento"
 
-#: download.php:169 index.php:86
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
-msgstr ""
+msgstr "Ajuda"
 
-#: download.php:170
+#: doc/download.php:180
 msgid "All versions"
-msgstr ""
+msgstr "Todas as versões"
 
-#: download.php:171
+#: doc/download.php:181
 msgid "Version history"
-msgstr ""
+msgstr "Histórico de versões"
 
-#: download.php:172
+#: doc/download.php:182
 msgid "GPU computing"
-msgstr ""
+msgstr "Computação da GPU"
 
-#: download.php:190
+#: doc/download.php:200
 msgid "BOINC: compute for science"
-msgstr ""
+msgstr "BOINC: Compute para a ciência"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who "
-"can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr ""
+#: doc/index.php:29
+msgid "Computing power"
+msgstr "Poder de Computação"
 
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system. "
-"Skype is free (both the software and the calls).  If you don't already have "
-"Skype, please %sdownload and install it now%s.  When you're finished, return "
-"to this page."
-msgstr ""
+#: doc/index.php:37
+msgid "Top 100 volunteers"
+msgstr "Top 100 voluntários"
 
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr ""
+#: doc/index.php:38
+msgid "Statistics"
+msgstr "Estatísticas"
+
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "Média de 24 horas:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOPS."
+
+#: doc/index.php:69
+msgid "Active:"
+msgstr "Ativos:"
+
+#: doc/index.php:69
+msgid "volunteers,"
+msgstr "voluntários,"
+
+#: doc/index.php:69
+msgid "computers.\n"
+msgstr "computadores.\n"
 
-#: help.php:31
+#: doc/index.php:76
+msgid "News"
+msgstr "Notícias"
+
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Base de dados indisponível; por favor tente mais tarde."
+
+#. "Volunteer" is used as a verb
+#: doc/index.php:90
+msgid "Volunteer"
+msgstr "Voluntariar-se."
+
+#: doc/index.php:92
 msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Use o tempo livre do seu computador (Windows, Mac, Linux ou Android) para curar doenças, estudar o aquecimento global, descobrir pulsares, e faça muitos outros tipos de pesquisa científica. É seguro e fácil:"
 
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr ""
+#: doc/index.php:95
+msgid "Download"
+msgstr "Download"
 
-#: help.php:50
-#, php-format
+#: doc/index.php:98
 msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Para dispositivos Android, obtenha o app BOINC da Loja Google Play; para Kindle, baixe da Loja de App da Amazon."
 
-#: help.php:56
-#, php-format
+#: doc/index.php:102
 msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Você pode escolher suportar %1projetos%2 como %3, %4, e %5, entre vários outros."
 
-#: help_funcs.php:107
+#: doc/index.php:109
 msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Se você executa vários projetos, tente um %1gerenciador de contas%2 como o %3GridRepublic%4 ou %5BAM!%6."
 
-#: help_funcs.php:110
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr ""
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Saiba mais:"
 
-#: index.php:24
-msgid "Computing power"
-msgstr ""
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Quadro de mensagem"
 
-#: index.php:26
-msgid "Top 100 volunteers"
-msgstr ""
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projetos"
 
-#: index.php:27
-msgid "Statistics"
-msgstr ""
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Manual"
 
-#: index.php:55
-msgid "Active:"
-msgstr ""
+#: doc/index.php:123
+msgid "Add-ons"
+msgstr "Add-ons."
 
-#: index.php:55
-msgid "volunteers,"
-msgstr ""
+#: doc/index.php:124
+msgid "Links"
+msgstr "Links"
 
-#: index.php:55
-msgid "computers.\n"
-msgstr ""
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Outras maneiras de ajudar:"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr ""
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Visão geral"
 
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr ""
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Traduzir"
 
-#: index.php:68
-msgid "News"
-msgstr ""
+#: doc/index.php:134
+msgid "Test"
+msgstr "Teste"
 
-#: index.php:83
-msgid "Volunteer"
-msgstr ""
+#: doc/index.php:135
+msgid "Document"
+msgstr "Documento"
 
-#: index.php:85
-msgid "Download"
-msgstr ""
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Publicar"
 
-#: index.php:87 index.php:120 index.php:171
-msgid "Documentation"
-msgstr ""
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Reportar erros"
 
-#: index.php:88
-msgid "Add-ons"
-msgstr ""
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Computação de alta vazão com BOINC"
 
-#: index.php:89
-msgid "Links"
-msgstr ""
+#: doc/index.php:150
+msgid ""
+"%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
+"giving you the power of thousands of CPUs and GPUs."
+msgstr "%1Cientistas%2: usem o BOINC para criar um %3projeto de computação voluntária%4, adquirindo o poder de milhares de CPUs e GPUs."
 
-#: index.php:94
+#: doc/index.php:154
 msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure "
-"diseases, study global warming, discover pulsars, and do many other types of "
-"scientific research.  It's safe, secure, and easy:"
-msgstr ""
+"%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
+"Center%4."
+msgstr "%1Universidades%2: use BOINC para criar um %3Centro de Supercomputação para Campus Virtual%4."
 
-#: index.php:96
-msgid "Choose projects"
-msgstr ""
+#: doc/index.php:159
+msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
+msgstr "%1Companias%2: use BOINC para %3computação em grid para desktops%4."
 
-#: index.php:97
-msgid "Download BOINC software"
-msgstr ""
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Documentação"
 
-#: index.php:98
-msgid "Enter an email address and password."
-msgstr ""
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC e Docker"
 
-#: index.php:102
-#, php-format
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Desenvolvimento de software"
+
+#: doc/index.php:176
 msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as %"
-"sGridRepublic%s or %sBAM!%s. "
-msgstr ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC é uma plataforma de software para computação voluntária. Ela inclui cliente, servidor e componentes de web, e APIs para conexão com outros componentes."
 
-#: index.php:118
-msgid "Compute with BOINC"
-msgstr ""
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Código fonte"
 
-#: index.php:121
-msgid "Software updates"
-msgstr ""
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Construindo o BOINC"
 
-#: index.php:128
-msgid ""
-"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving "
-"you the computing power of thousands of CPUs."
-msgstr ""
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Documentos de design"
 
-#: index.php:132
+#: doc/index.php:185
 msgid ""
-"%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
-"Center%4."
-msgstr ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Nós estamos sempre procurando programadores para nos ajudar a manter e desenvolver o BOINC."
 
-#: index.php:137
-msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
-msgstr ""
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Processo de desenvolvimento"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Tarefas de desenvolvimento"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC é distribuído sob licença de código aberto LGPL."
 
-#: index.php:149
+#: doc/index.php:200
 msgid "The BOINC project"
-msgstr ""
+msgstr "O projeto BOINC"
 
-#: index.php:155
-msgid "Message boards"
-msgstr ""
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC é um projeto comunitário. Todos são bem-vindos a participar."
 
-#: index.php:156
+#: doc/index.php:207
 msgid "Email lists"
-msgstr ""
-
-#: index.php:157
-msgid "Personnel and contributors"
-msgstr ""
+msgstr "Lista de emails"
 
-#: index.php:158
+#: doc/index.php:208
 msgid "Events"
-msgstr ""
+msgstr "Eventos"
 
-#: index.php:159
-msgid "Papers and talks"
-msgstr ""
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Gráficos"
 
-#: index.php:160
-msgid "Research projects"
-msgstr ""
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Governança"
 
-#: index.php:161
-msgid "Logos and graphics"
-msgstr ""
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Ajuda instantânea por Skype ou email"
 
-#: index.php:162
-msgid "and"
-msgstr ""
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "O BOINC Ajuda Instantânea permite obter ajuda de um usuário experiente do BOINC, que pode responder a perguntas sobre o BOINC, ajudá-lo a instalar e usar o BOINC, e solucionar problemas."
 
-#: index.php:166
-msgid "Help wanted"
-msgstr ""
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Você pode se comunicar com um ajudante"
 
-#: index.php:168
-msgid "Programming"
-msgstr ""
+#: doc/help.php:16
+msgid "by email"
+msgstr "por email"
 
-#: index.php:169
-msgid "Translation"
-msgstr ""
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\npor voz, usando %1Skype%2, um sistema gratuito de telefonia pela Internet. Se ainda não tem Skype, você pode %3baixá-lo e instalá-lo agora%4. Quando tiver finalizado, retorne a esta página."
 
-#: index.php:170
-msgid "Testing"
-msgstr ""
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "usando chat Skype"
 
-#: index.php:172
-msgid "Publicity"
-msgstr ""
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Voluntários em diversos idiomas estão disponíveis. Por favor selecione uma língua (número de ajudantes exibido):"
 
-#: index.php:174
-msgid "Software development"
-msgstr ""
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Seja um Ajudante Voluntário"
 
-#: index.php:175
-msgid "APIs for add-on software"
-msgstr ""
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Se você é um usuário experiente de BOINC, nós o encorajamos a %sse tornar um Ajudante Voluntário%s. É um ótimo jeito de ajudar a causa da pesquisa científica e computação voluntária - e é divertido!"
 
-#: index.php:217
+#: doc/help.php:52
 #, php-format
 msgid ""
-"Open-source software for %svolunteer computing%s and %sgrid computing%s."
-msgstr ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Se você já é um Ajudante Voluntário: para ir para as configurações, %sclique aqui%s."
 
-#: index.php:230
-msgid "BOINC is based at The University of California, Berkeley"
-msgstr ""
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Ajudantes do BOINC são voluntários não pagos. Seus conselhos não são apoiados pelo BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1Nunca%2 dê informação sobre seu endereço de email ou senha para ajudantes BOINC."
 
-#: projects.inc:14
+#: doc/projects.inc:19
 msgid "Distributed sensing"
-msgstr ""
+msgstr "Distribuído de sensoriamento"
 
-#: projects.inc:19
-msgid "Stanford University"
-msgstr ""
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:20
+#: doc/projects.inc:25
 msgid "Seismology"
-msgstr ""
+msgstr "Sismologia"
 
-#: projects.inc:21
+#: doc/projects.inc:26
 msgid ""
-"The Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to Internet-connected computers.  You must buy a "
-"sensor to participate."
-msgstr ""
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "A Quake-Catcher Network usa sensores ligados a computadores e smartphones para detectar ondas sísmicas."
 
-#: projects.inc:27
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
-msgstr ""
+msgstr "BOINC Polónia Foundation"
 
-#: projects.inc:28
+#: doc/projects.inc:35
 msgid "Environmental research"
-msgstr ""
-
-#: projects.inc:29
-msgid ""
-"This project is creating a free and continuously updated map of radiation "
-"levels by using sensors connected to volunteers' computers.  You must buy a "
-"sensor to participate."
-msgstr ""
+msgstr "Pesquisa ambiental"
 
-#: projects.inc:33
+#: doc/projects.inc:36
 msgid ""
-"To participate in these projects you must buy a sensor and attach it to your "
-"computer."
-msgstr ""
+"Radioactive at Home is creating a free and continuously updated map of "
+"radiation levels using sensors connected to volunteers' computers.  You must"
+" buy a sensor to participate."
+msgstr "Radioactive at Home está criando um mapa gratuito e continuamente atualizado de níveis de radiação usando sensores conectados a computadores de voluntários. Você deve adquirir um sensor para participar."
 
-#: projects.inc:37
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
-msgstr ""
+msgstr "Ciência cognitiva e inteligência artificial"
 
-#: projects.inc:60 projects.inc:364 projects.inc:408 projects.inc:457
-#: projects.inc:464 projects.inc:511
-msgid "Private"
-msgstr ""
+#: doc/projects.inc:51
+msgid "Cognitive Science"
+msgstr "Ciência Cognitiva"
+
+#: doc/projects.inc:52
+msgid ""
+"MindModeling at Home uses computational cognitive process modeling to better "
+"understand the human mind, and specifically to study the mechanisms and "
+"processes that enable and moderate human performance and learning."
+msgstr "MindModeling at Home usa processos de modelagem cognitiva computacional para entender melhor a mente humana, e especificamente, estudar os mecanismos e processos que possibilitam e moderam o desempenho humano e aprendizado."
+
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "independente"
 
-#: projects.inc:61
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
-msgstr ""
+msgstr "Inteligência artificial"
 
-#: projects.inc:62
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
 "databases, and part of speech taggers in order to imitate human behavior in "
 "conversations."
-msgstr ""
+msgstr "Analise e converta redes semânticas para uso em FreeHAL, uma inteligência artificial que usa redes semânticas, derivações, partes de bancos de dados de fala, e parte de taggers de fala para imitar o comportamento humano em conversas."
 
-#: projects.inc:69
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
-msgstr ""
+msgstr "Biologia e Medicina"
+
+#: doc/projects.inc:88
+msgid "Medical physiology"
+msgstr "Fisiologia médica"
+
+#: doc/projects.inc:89
+msgid ""
+"DENIS at Home does cardiac electrophysiological simulations, studying the "
+"electrical activity of the heart."
+msgstr "DENIS at Home faz simulações de eletrofisiologia cardíaca, estudando a atividade elétrica do coração."
 
-#: projects.inc:82
+#: doc/projects.inc:98
+msgid "Molecular biology"
+msgstr "Biologia molecular"
+
+#: doc/projects.inc:99
+msgid ""
+"RNA World seeks to identify, analyze, structurally predict and design RNA "
+"molecules on the basis of established bioinformatics software."
+msgstr "RNA World busca identificar, analizar, predizer estruturalmente e projetar moléculas de RNA baseado em softwares de bioinformática estabelecidos."
+
+#: doc/projects.inc:107
 msgid "University College Dublin"
-msgstr ""
+msgstr "Colégio Universitário de Dublin"
 
-#: projects.inc:83
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
-msgstr ""
+msgstr "Descoberta de drogas antimaláricas"
 
-#: projects.inc:84
+#: doc/projects.inc:109
 msgid ""
-"The parasite that causes malaria continues to evolve resistance to available "
-"medication. We therefore urgently need to discover new drugs to replace "
-"existing drugs. Importantly, these new drugs need to target NEW proteins in "
-"the parasite. The FightMalaria at Home project is aimed at finding these new "
-"targets."
-msgstr ""
+"The parasite that causes malaria continues to evolve resistance to available"
+" medication. We therefore urgently need to discover new drugs, targeting new"
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "O parasita que causa a malária continua a desenvolver resistência à medicação disponível. Desta forma, nós precisamos descobrir com urgência novas drogas, buscando atingir novas proteínas do parasita. O projeto FiND at Home é voltado para a busca destes novos alvos."
 
-#: projects.inc:90
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
-msgstr ""
+msgstr "Universidade de Karlsruhe (Alemanha)"
 
-#: projects.inc:91
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
-msgstr ""
+msgstr "Previsão da estrutura de proteínas"
 
-#: projects.inc:92
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
 "the proteins interact with one another, to understand diseases related to "
-"protein malfunction or aggregation, and to develop new drugs on the basis of "
-"the three-dimensions structure of biologically important proteins."
-msgstr ""
-
-#: projects.inc:98
-msgid "University of Delaware"
-msgstr ""
-
-#: projects.inc:99
-msgid "Study of protein - ligand interactions"
-msgstr ""
-
-#: projects.inc:100
-msgid ""
-"Docking at Home has both bioscience and computer science goals. The project "
-"aims to further knowledge of the atomic details of protein-ligand "
-"interactions and, by doing so, will search for insights into the discovery "
-"of novel pharmaceuticals."
-msgstr ""
+"protein malfunction or aggregation, and to develop new drugs on the basis of"
+" the three-dimensions structure of biologically important proteins."
+msgstr "POEM at HOME usa uma abordagem computacional para prever a estrutura biologicamente ativa de proteínas, para entender os mecanismos de processamento de sinal quando as proteínas interagem umas com as outras, para entender doenças relacionadas ao mal funcionamento ou aglomeração das proteínas, e para desenvolver novas drogas com base nas estruturas tridimensionais de proteínas biologicamente importantes."
 
-#: projects.inc:114
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
-msgstr ""
+msgstr "Parque de pesquisa biomédica de Barcelona (PRBB)"
 
-#: projects.inc:115
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
-msgstr ""
+msgstr "Simulações moleculares das proteínas"
 
-#: projects.inc:116
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
 "New biomedical applications suddenly become possible giving a new role to "
 "computational biology for biomedical research."
-msgstr ""
-
-#: projects.inc:122
-msgid "Technion, Israel"
-msgstr ""
+msgstr "GPUGrid.net abre novos cenários computacionais através do primeiro código de diâmica molecular full-atom (CellMD) especialmente otimizado para rodar em GPUs NVIDIA. Novas aplicações biomédicas se tornam possíveis dando um novo papel à biologia computacional para pesquisa biomédica."
 
-#: projects.inc:123
-msgid "Genetic linkage analysis"
-msgstr ""
-
-#: projects.inc:124
-msgid ""
-"Superlink at Technion helps geneticists all over the world find disease-"
-"provoking genes causing some types of diabetes, hypertension (high blood "
-"pressure), cancer, schizophrenia and many others."
-msgstr ""
-
-#: projects.inc:138
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
-msgstr ""
+msgstr "Universidade de Maryland centro de bioinformática e biologia computacional"
 
-#: projects.inc:139
+#: doc/projects.inc:176
 msgid "Life science research"
-msgstr ""
+msgstr "Pesquisa de Ciências da vida"
 
-#: projects.inc:140
+#: doc/projects.inc:177
 msgid ""
-"The Lattice Project supplies computing power to scientists at the University "
-"of Maryland studying evolutionary relationships based on DNA sequence data; "
-"bacterial, plasmid, and virus protein sequences; and biological diversity in "
-"nature reserves. "
-msgstr ""
+"The Lattice Project, developed and administered at the University of "
+"Maryland, supplies computing power to researchers worldwide who are studying"
+" evolutionary relationships using DNA and protein sequence data."
+msgstr "O Projeto Lattice, desenvolvido e administrado na Universidade de Maryland, provê poder computacional para pesquisadores ao redor do mundo que estudam relações evolutivas usando DNA e dados de sequências de proteínas."
 
-#: projects.inc:146
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
-msgstr ""
+msgstr "Instituto Tropical suíço"
 
-#: projects.inc:147
+#: doc/projects.inc:186
 msgid "Epidemiology"
-msgstr ""
+msgstr "Epidemiologia"
 
-#: projects.inc:148
+#: doc/projects.inc:187
 msgid ""
-"Simulation models of the transmission dynamics and health effects of malaria "
-"are an important tool for malaria control. They can be used to determine "
+"Simulation models of the transmission dynamics and health effects of malaria"
+" are an important tool for malaria control. They can be used to determine "
 "optimal strategies for delivering mosquito nets, chemotherapy, or new "
 "vaccines which are currently under development and testing.  Such modeling "
 "is extremely computer intensive, requiring simulations of large human "
 "populations with a diverse set of parameters related to biological and "
 "social factors that influence the distribution of the disease. "
-msgstr ""
+msgstr "Modelos simulatórios da dinâmica de transmissão e efeitos na saúde da malária são importantes ferramentas para controle da malária. Eles podem ser usados para determinar estratégias ótimas para a distribuição de redes de pernilongos, quimioterapia ou novas vacinas atualmente em desenvolvimento e teste. Tais modelos são extremamente intensivos computacionalmente, exigindo simulações de grandes populações humanas com diversos conjuntos de parâmetros relacionados a fatores biológico [...]
 
-#: projects.inc:170
+#: doc/projects.inc:211
 msgid "University of Washington"
-msgstr ""
+msgstr "Universidade de Washington"
 
-#: projects.inc:171 projects.inc:179
+#: doc/projects.inc:212
 msgid "Biology"
-msgstr ""
+msgstr "Biologia"
 
-#: projects.inc:172
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
 "Rosetta at home you will help us speed up and extend our research in ways we "
 "couldn't possibly attempt without your help. You will also be helping our "
-"efforts at designing new proteins to fight diseases such as HIV, Malaria, "
-"Cancer, and Alzheimer's"
-msgstr ""
-
-#: projects.inc:178
-msgid "University of Vienna"
-msgstr ""
+"efforts at designing new proteins to fight diseases such as HIV, malaria, "
+"cancer, and Alzheimer's"
+msgstr "Determine o formato 3-dimensional de proteínas em pesquisas que podem levar a curas para algumas grandes doenças humanas. Executando o Rosetta at home você nos ajudará a acelerar e extender nossas pesquisas em maneiras que não poderíamos tentar sem sua ajuda. Você também estará ajudando nossos esforços em projetar novas proteínas para lutar doenças como o HIV, malária, câncer e o mal de Alzheimer"
 
-#: projects.inc:180
-msgid ""
-"Calculate similarities between proteins. SIMAP provides a public database of "
-"the resulting data, which plays a key role in many bioinformatics research "
-"projects."
-msgstr ""
-
-#: projects.inc:186
+#: doc/projects.inc:231
 msgid "Earth Sciences"
-msgstr ""
+msgstr "Ciências da terra"
 
-#: projects.inc:198
+#: doc/projects.inc:243
 msgid "Oxford University"
-msgstr ""
+msgstr "Universidade de Oxford"
 
-#: projects.inc:199
+#: doc/projects.inc:244
 msgid "Climate study"
-msgstr ""
+msgstr "Estudo de clima"
 
-#: projects.inc:200
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
 "how the model responds to slight tweaks to these approximations - slight "
-"enough to not make the approximations any less realistic. This will allow us "
-"to improve our understanding of how sensitive our models are to small "
+"enough to not make the approximations any less realistic. This will allow us"
+" to improve our understanding of how sensitive our models are to small "
 "changes and also to things like changes in carbon dioxide and the sulphur "
 "cycle. This will allow us to explore how climate may change in the next "
 "century under a wide range of different scenarios."
-msgstr ""
+msgstr "Investigue as aproximações que precisam ser feitas nos modelos climáticos mais modernos. Executando o modelo milhares de vezes, esperamos entender como ele responde a pequenos ajustes nestas aproximações - pequenos o suficiente para não tornar as aproximações menos realísticas. Isto também nos permitirá melhorar nosso entendimento de quão sensível à pequenas mudanças nosso modelo é e também a coisas como mudanças no dióxido de carbono e ciclo do enxofre. Isso nos permitirá explor [...]
 
-#: projects.inc:207
+#: doc/projects.inc:253
 msgid "Physical Science"
-msgstr ""
-
-#: projects.inc:213
-msgid "Mechanical engineering"
-msgstr ""
-
-#: projects.inc:214
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr ""
+msgstr "Ciência física"
 
-#: projects.inc:224 projects.inc:263 projects.inc:271
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
-msgstr ""
+msgstr "Astronomia"
 
-#: projects.inc:225
+#: doc/projects.inc:270
 msgid ""
-"We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to "
-"generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby "
-"Universe. We will measure physical parameters (such as stellar mass surface "
-"density, star formation rate surface density, attenuation, and first-order "
-"star formation history) on a resolved pixel-by-pixel basis using spectral "
-"energy distribution (SED) fitting techniques in a distributed computing mode."
-msgstr ""
-
-#: projects.inc:247
-msgid "University of Texas at Austin"
-msgstr ""
-
-#: projects.inc:248 projects.inc:279
-msgid "Chemistry"
-msgstr ""
+"TheSkyNet POGS is an astronomy project studying 16 different properties of "
+"galaxies, including brightness, mass, amount of dust and how fast stars are "
+"forming. We are using your processing power to conduct pixel-by-pixel "
+"calculations on multi-wavelength (ultraviolet, optical and near-infrared "
+"light) images of galaxies to produce an atlas that will help astronomers to "
+"better understand the distant universe."
+msgstr "TheSkyNet POGS é um projeto de astronomia que estuda 16 diferentes propriedades de galáxias, incluindo brilho, massa, quantidade de poeira e o quão rápido estrelas estão se formando. Nós estamos usando seu poder computacional para conduzir cálculos pixel-por-pixel em imagens de galáxias com múltiplos comprimentos de ondas (ultravioleta, ótico e próximo ao infravermelho), para produzir um atlas que vai ajudar astrônomos a entender melhor o universo distante."
+
+#: doc/projects.inc:280 doc/projects.inc:366
+msgid "Astrophysics"
+msgstr "Astrofísica"
 
-#: projects.inc:249
+#: doc/projects.inc:281
 msgid ""
-"A common problem in theoretical chemistry, condensed matter physics and "
-"materials science is the calculation of the time evolution of an atomic "
-"scale system where, for example, chemical reactions and/or diffusion occur. "
-"Generally the events of interest are quite rare (many orders of magnitude "
-"slower than the vibrational movements of the atoms), and therefore direct "
-"simulations, tracking every movement of the atoms, would take thousands of "
-"years of computer calculations on the fastest present day computer before a "
-"single event of interest can be expected to occur.  Our research group is "
-"interested in calculating the long time dynamics of systems."
-msgstr ""
+"The aim of the project is to derive shapes and spin for a significant part "
+"of the asteroid population. As input data, we use any asteroid photometry "
+"that is available. The results are asteroid convex shape models with the "
+"direction of the spin axis and the rotation period."
+msgstr "O escopo deste projeto é obter a forma e a rotação de uma parte significante da população de asteróides. Como dados de entrada, nós usamos qualquer fotometria de asteróide disponível. Os resultados são modelos de asteróides de formato convexo com a direção da rotação e sua período."
 
-#: projects.inc:262
+#: doc/projects.inc:317
 msgid "University of Illinois at Urbana-Champaign"
-msgstr ""
+msgstr "Universidade de Illinois em Urbana-Champaign"
 
-#: projects.inc:264
+#: doc/projects.inc:319
 msgid ""
 "The goal of Cosmology at Home is to search for the model that best describes "
 "our Universe and to find the range of models that agree with the available "
 "astronomical particle physics data."
-msgstr ""
+msgstr "O objetivo do Cosmology at Home é procurar por um modelo que melhor descreva nosso Universo e encontrar uma gama de modelos que são compatíveis com os dados disponíveis na astrofísica de partículas."
+
+#: doc/projects.inc:329
+msgid ""
+"Universe at Home aims to create the first database of the simulated stellar "
+"content of the Universe, from the earliest stars to the most exotic black "
+"hole binaries."
+msgstr "Universe at Home pretende criar a primeira base de dados do conteúdo estelar simulado do Universo, desde as primeiras estralas aos mais exóticos buracos negros binários."
+
+#: doc/projects.inc:332
+msgid "Do research in physics and astronomy"
+msgstr "Fazer pesquisas em física e astronomia"
 
-#: projects.inc:270
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
-msgstr ""
+msgstr "Rensselaer Polytechnic Institute"
 
-#: projects.inc:272
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
-msgstr ""
+msgstr "O objetivo da Milkyway at Home é criar, com alta precisão, um modelo tridimensional da Via Láctea usando dados obtidos pelo Sloan Digital Sky Survey."
+
+#: doc/projects.inc:342
+msgid "Study the structure of the Milky Way galaxy"
+msgstr "Estudar a estrututra da Via Láctea"
 
-#: projects.inc:278
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
-msgstr ""
+msgstr "Universidade de Leiden, Países Baixos"
 
-#: projects.inc:280
+#: doc/projects.inc:348
+msgid "Chemistry"
+msgstr "Química"
+
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
-"calculations to the grid. Each user has his own personal queue for Classical "
-"Dynamics jobs. In this way students have used the grid to simulate liquid "
+"calculations to the grid. Each user has his own personal queue for Classical"
+" Dynamics jobs. In this way students have used the grid to simulate liquid "
 "argon, or to test the validity of the ideal gas law by actually doing the "
 "simulations through the grid."
-msgstr ""
+msgstr "Cálculos de ciência de superfícies usando a Dinâmica Clássica. Leiden Classicals permite aos voluntários, estudantes e outros cientistas a submeter seus próprios cálculos à rede. Cada usuário tem sua própria ordem para trabalhos de Dinâmica Clássica. Deste modo os estudantes tem usado a rede para simular árgon líquido, ou para testar a validade da lei dos gases ideais através de simulações na rede."
 
-#: projects.inc:294
-msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
-msgstr ""
+#: doc/projects.inc:352
+msgid "Help students do atomic simulations"
+msgstr "Ajude estudantes a fazer simulações atômicas"
 
-#: projects.inc:295
-msgid "Astrophysics"
-msgstr ""
+#: doc/projects.inc:365
+msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
+msgstr "Univ. de Winsconsin - Milwaukee, Instituto Max Planck"
 
-#: projects.inc:296
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
 "observatory.  Einstein at Home is a World Year of Physics 2005 project "
 "supported by the American Physical Society (APS) and by a number of "
 "international organizations."
-msgstr ""
+msgstr "Procure por estrelas de nêutron pulsante (também chamadas de pulsares) usando dados da LIGO e do detector de ondas gravitacionais GEO, e do radiotelescópio Arecibo. Einstein at Home é um projeto do Ano Mundial da Física 2005 apoiado pela Sociedade Americana de Física (APS) e por numerosas organizações internacionais."
+
+#: doc/projects.inc:370
+msgid "Help detect pulsars and gravitational waves"
+msgstr "Ajude na detecção de pulsares e ondas gravitacionais"
 
-#: projects.inc:310 projects.inc:318
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
-msgstr ""
+msgstr "CERN (Organização Européia para a Pesquisa Nuclear)"
 
-#: projects.inc:311 projects.inc:319
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
-msgstr ""
+msgstr "Física"
 
-#: projects.inc:312
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
 "physics laboratory.  It is the most powerful instrument ever built to "
 "investigate on particles proprieties. LHC at home runs simulations to improve "
 "the design of LHC and its detectors."
-msgstr ""
+msgstr "O Grande Colisor de Hádron (LHC) é um acelerador de partículas na CERN, a Organização Européia para a Pesquisa Nuclear, o maior laboratório de física de partículas do mundo. É o instrumento mais poderoso já construído para investigar propriedades de partículas. LHC at home roda simulações para melhorar o design do LHC e seus detectores."
 
-#: projects.inc:320
+#: doc/projects.inc:388
+msgid "Improve the design of the Large Hadron Collider"
+msgstr "Melhore o design do Grande Colisor de Hádrons"
+
+#: doc/projects.inc:395
 msgid ""
-"This project uses CERN-developed virtual machine technology for full-fledged "
-"LHC event physics simulation on volunteer computers.  Requires that you "
-"install VirtualBox on your computer"
-msgstr ""
+"This project uses CERN-developed virtual machine technology for LHC event "
+"physics simulation on volunteer computers.  Requires that you install "
+"VirtualBox on your computer"
+msgstr "Este projeto usa a tecnologia de máquinas virtuais desenvolvida pela CERN para simulações de eventos físicos do LHC em computadores de voluntários. Isto requer a instalação do VirtualBox no seu computador"
+
+#: doc/projects.inc:398
+msgid "Simulate high-energy particle collisions"
+msgstr "Simular colisão de partículas de alta energia"
+
+#: doc/projects.inc:405
+msgid ""
+"ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
+" physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
+" particles and processes using head-on collisions of protons of "
+"extraordinary high energy."
+msgstr "ATLAS at Home usa computação voluntária para rodar simulações para o ATLAS, um experimento de física de partículas no LHC da CERN. ATLAS procura por novas partículas e processos usando colisões frontais de prótons de energia extraordinariamente alta."
+
+#: doc/projects.inc:408
+msgid "Simulate high-energy particle collisions for CERN"
+msgstr "Simular colisão de partículas de alta energia para a CERN"
 
-#: projects.inc:326
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
-msgstr ""
+msgstr "Universidade da Califórnia, Berkeley"
 
-#: projects.inc:327
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
-msgstr ""
+msgstr "Astrofísica, astrobiologia"
 
-#: projects.inc:328
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
 "radio SETI, uses radio telescopes to listen for narrow-bandwidth radio "
 "signals from space. Such signals are not known to occur naturally, so a "
 "detection would provide evidence of extraterrestrial technology."
-msgstr ""
+msgstr "SETI (Busca por Inteligência Extraterrestre) é uma área científica cujo objetivo é detectar vida inteligente fora da Terra. Um método, conhecido como rádio SETI, usa radiotelescópios para ouvir sinais de rádios de banda estreita vindas do espaço. Tais sinais são conhecidos por não ocorrer naturalmente, portanto uma detecção forneceria evidência de tecnologia extraterrestre."
 
-#: projects.inc:342
-msgid "Bielefeld University of Applied Sciences"
-msgstr ""
+#: doc/projects.inc:418
+msgid "Search for evidence of extra-terrestrial life"
+msgstr "Procure por evidências de vida extraterrestre"
 
-#: projects.inc:343
-msgid "Chemical engineering and nanotechnology"
-msgstr ""
+#: doc/projects.inc:442
+msgid "Multiple applications"
+msgstr "Vários aplicativos"
 
-#: projects.inc:344
+#: doc/projects.inc:448
+msgid "Molecular biology, Computer Science"
+msgstr "Biologia molecular. Ciência da Computação"
+
+#: doc/projects.inc:449
 msgid ""
-"The study of molecular magnets and controlled nanoscale magnetism.  These "
-"magnetic molecules may be used to develop tiny magnetic switches, with "
-"applications in medicine (such as local tumor chemotherapy) and "
-"biotechnology."
-msgstr ""
+"The Citizen Science Grid is dedicated to supporting a wide range of research"
+" and educational projects using volunteer computing and citizen science."
+msgstr "O Citizen Science Grid (Rede de Ciência Cidadã) dedica-se a suportar um grande campo de projetos de pesquisa e educacionais usando computação voluntária e ciência cidadã."
 
-#: projects.inc:351
-msgid "Multiple applications"
-msgstr ""
+#: doc/projects.inc:452
+msgid "Support science from the University of North Dakota"
+msgstr "Suporte a ciência da Universidade da Dakota do Norte"
 
-#: projects.inc:356
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
-msgstr ""
+msgstr "Academia Chinesa de Ciências"
 
-#: projects.inc:357
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
-msgstr ""
+msgstr "Física, bioquímica e outros"
 
-#: projects.inc:358
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr ""
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at Home é mantido pelo Centro de Computação do Instituto de Física de Alta Energia (IHEP), Academia Chinesa de Ciências, para cientistas Chineses com projetos estudando estrutura de proteínas, nanotecnologia, genômica do câncer e física de alta energia."
 
-#: projects.inc:365
+#: doc/projects.inc:462
+msgid "Help Chinese researchers"
+msgstr "Ajudar pesquisadores Chineses"
+
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
-msgstr ""
+msgstr "Matemática, física, evolução"
 
-#: projects.inc:366
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
-msgstr ""
+msgstr "Yoyo at Home é um adaptador entre BOINC e vários projetos de computação voluntários existentes: ECM, Muon, Evolution at home e distributed.net"
 
-#: projects.inc:371 projects.inc:527
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr ""
+#: doc/projects.inc:472
+msgid "Do research in math, physics, and evolution"
+msgstr "Faça pesquisas em matemática, física e evolução"
 
-#: projects.inc:372
-msgid "European research projects"
-msgstr ""
-
-#: projects.inc:373
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered "
-"by the project include math, physics, biology, etc."
-msgstr ""
-
-#: projects.inc:379
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
-msgstr ""
+msgstr "Universidades espanholas e centros de pesquisa"
 
-#: projects.inc:380
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
-msgstr ""
+msgstr "Vários projectos de investigação espanhois"
 
-#: projects.inc:381
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
-msgstr ""
+msgstr "Pesquisa em física, ciência de materiais e biomedicina"
+
+#: doc/projects.inc:492
+msgid "Help Spanish researchers"
+msgstr "Ajudar pesquisadores Espanhóis"
 
-#: projects.inc:387
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
-msgstr ""
+msgstr "Cidadania corporativa IBM"
 
-#: projects.inc:388
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
-msgstr ""
+msgstr "Médicas, ambientais e outras pesquisas humanitárias"
 
-#: projects.inc:389
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
-"problems by creating the world's largest volunteer computing grid.  Research "
-"includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
+"problems by creating the world's largest volunteer computing grid.  Research"
+" includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
 "clean water and many more."
-msgstr ""
+msgstr "Avançar as pesquisas sem fins lucrativos críticas em alguns dos problemas da humanidade mais urgentes ao criar a maior rede de computação voluntária do mundo. Pesquisas incluem HIV-AIDS, câncer, doenças tropicais negligenciadas, energia solar, água limpa e muitos outros."
+
+#: doc/projects.inc:502
+msgid "Do biomedical and environmental research"
+msgstr "Faça pesquisas biomédicas e ambientais"
 
-#: projects.inc:395
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
-msgstr ""
+msgstr "Matemática, computação e jogos"
+
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
+msgid "Mathematics"
+msgstr "Matemática"
 
-#: projects.inc:401
+#: doc/projects.inc:534
+msgid ""
+"NumberFields at home searches for fields with special properties. The primary "
+"application of this research is in the realm of algebraic number theory. "
+"Number theorists can mine the data for interesting patterns to help them "
+"formulate conjectures about number fields. Ultimately, this research will "
+"lead to a deeper understanding of the profound properties of numbers, the "
+"basic building blocks of all mathematics."
+msgstr "NumberFields at home procura por campos com propriedades especiais. A aplicação primária desta pesquisa está no campo da teoria de números algebraicos. Teoristas numéricos podem buscar nestes dados padrões de interesse para ajudá-los a formular conjecturas sobre campos numéricos. Consequentemente, esta pesquisa levará a um entendimento mais profundo das vastas propriedades dos números, fundação de todas as matemáticas."
+
+#: doc/projects.inc:537
+msgid "Do research in algebraic number theory"
+msgstr "Faça pesquisas sobre a teoria de números algebraicos"
+
+#: doc/projects.inc:553
 msgid "Computer Science"
-msgstr ""
+msgstr "Ciência da computação"
 
-#: projects.inc:409
-msgid "Mathematics, Physics, Artificial Intelligence"
-msgstr ""
+#: doc/projects.inc:554
+msgid ""
+"Solve hard and practically important problems (discrete functions inversion "
+"problems, discrete optimization, bioinformatics, etc.) that can be "
+"effectively reduced to Boolean satisfiability problem."
+msgstr "Solucionar problemas difíceis e praticamente importantes (problemas de inversão de funções discretas, otimização discreta, bioinformática, etc) que podem ser efetivamente reduzidas ao problema de satisfabilidade Booleana."
 
-#: projects.inc:410
-msgid "Simulation of quantum computing; Goldbach's conjecture."
-msgstr ""
+#: doc/projects.inc:557
+msgid "Study computational complexity"
+msgstr "Estudar complexidade computacional"
+
+#: doc/projects.inc:582
+msgid "Cryptography and combinatorics"
+msgstr "Criptografia e combinátoria"
+
+#: doc/projects.inc:583 doc/projects.inc:586
+msgid "Run applications from distributed.net"
+msgstr "Rodar aplicações para a distributed.net"
 
-#: projects.inc:450 projects.inc:458
+#: doc/projects.inc:592
 msgid "Cryptography"
-msgstr ""
+msgstr "Criptografia"
 
-#: projects.inc:459
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
-msgstr ""
+msgstr "Tentativa de decodificar mensagens de Enigma originais 3. Os sinais foram interceptados no Atlântico Norte, em 1942 e acreditados-se ser ininterrupta."
 
-#: projects.inc:465 projects.inc:504 projects.inc:512 projects.inc:520
-#: projects.inc:528 projects.inc:568
-msgid "Mathematics"
-msgstr ""
+#: doc/projects.inc:596
+msgid "Decode WWII submarine messages"
+msgstr "Decodificar mensagens submarinas da Segunda Guerra Mundial"
 
-#: projects.inc:466
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
-msgstr ""
+msgstr "Estudo da conjectura de Collatz, uma conjectura não resolvida na matemática"
+
+#: doc/projects.inc:606
+msgid "Study the Collatz Conjecture"
+msgstr "Estudar a Conjectura de Collatz"
 
-#: projects.inc:471
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
-msgstr ""
+msgstr "California State University Fullerton"
 
-#: projects.inc:472
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
-msgstr ""
+msgstr "Fatoração de inteiros grandes"
 
-#: projects.inc:473
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -878,489 +984,62 @@ msgid ""
 "breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
 "NFS at Home is a continuation of that experience, only with integers that are "
 "hundreds of digits long."
-msgstr ""
-
-#: projects.inc:479
-msgid ""
-"Vilnius Gediminas Technical University and Kaunas University of Technology "
-"(Lithuania)"
-msgstr ""
-
-#: projects.inc:480
-msgid "Software testing"
-msgstr ""
-
-#: projects.inc:481
-msgid ""
-"The aim of this project is to provide a powerful distributed computing "
-"platform for scientists of Vilnius Gediminas Technical University (VGTU) as "
-"well as others Lithuanian academic institutions.  Current applications "
-"involve the study of Monte-Carlo based software testing."
-msgstr ""
+msgstr "NFS at Home é um projeto de pesquisa que usa computadores conectados à Internet para realizar a peneiração entrelaçada na fatorização do Número de Peneira Geral de grandes números íntegros. Na escola, você ganhou sua primeira experiência na decomposição de números inteiros em fatores primos, como 15 = 3 * 5 or 35 = 5 * 7. NFS at Home é uma continuação daquela experiência, mas com números inteiros que têm centenas de dígitos."
 
-#: projects.inc:503
-msgid "Mathematical Institute of Leiden University / Kennislink"
-msgstr ""
+#: doc/projects.inc:616
+msgid "Study the factorization of large integers"
+msgstr "Estudar a fatorização de grandes números inteiros"
 
-#: projects.inc:505
-msgid ""
-"Search for 'abc-triples': positive integers a,b,c such that a+b=c, a < b "
-"< c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the "
-"product of the distinct prime factors of n. The ABC conjecture says that "
-"there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for "
-"any real h > 1. The ABC conjecture is currently one of the greatest open "
-"problems in mathematics. If it is proven to be true, a lot of other open "
-"problems can be answered directly from it."
-msgstr ""
-
-#: projects.inc:513
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
-msgstr ""
+msgstr "Primegrid tem múltiplos projetos procurando por diferentes formas de números primos muito grandes, incluindo a busca pelo maior número primo conhecido."
 
-#: projects.inc:519
+#: doc/projects.inc:662
+msgid "Search for large prime numbers"
+msgstr "Procurar por números primos grandes"
+
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
-msgstr ""
+msgstr "Universidade Hochschule RheinMain para Ciências Aplicadas"
 
-#: projects.inc:521
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
-msgstr ""
+msgstr "Busca de contra-exemplos para dois conjecturas relacionados à identificação de números primos"
+
+#: doc/projects.inc:672
+msgid "Study the properties of prime numbers"
+msgstr "Estudar as propriedades de números primos"
+
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA SZTAKI laboratório de sistemas paralelos e distribuídos (Hungria)"
 
-#: projects.inc:529
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
-msgstr ""
-
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr ""
-
-#: ../html/inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr ""
-
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-# The charset used for the text in this file (please try to use UTF-8 if possible)
-# #########################################
-# Language: English (International)
-# FileID  : $Id: pt_BR.po 13097 2007-07-04 15:28:28Z Rytis $
-# For more information please see:
-# http://boinc.berkeley.edu/web_translation.php
-#~ msgid "CHARSET"
-#~ msgstr "UTF-8"
-
-#~ msgid "DL_MIRRORS"
-#~ msgstr ""
-#~ "Note: files are downloaded from mirror servers at boinc.berkeley.edu, "
-#~ "morel.mit.edu, einstein.aei.mpg.de, einstein.astro.gla.ac.uk, einstein."
-#~ "ligo.caltech.edu, and einstein.aset.psu.edu (thanks to these "
-#~ "institutions). The server is chosen randomly - if a download fails, "
-#~ "reload this page and try again. "
-
-# #############################################
-# help.php
-# #############################################
-#~ msgid "HELP_TITLE"
-#~ msgstr "Getting help with BOINC"
-
-#~ msgid "HELP_HEADING1"
-#~ msgstr "Online Help"
-
-#~ msgid "HELP_P1_1"
-#~ msgstr ""
-#~ "BOINC Online Help lets you talk one-on-one with experienced BOINC users, "
-#~ "who can: %s answer questions about BOINC and volunteer computing; %s walk "
-#~ "you through the process of installing and using BOINC; %s troubleshoot "
-#~ "any problems you might have. "
-
-#~ msgid "HELP_P1_2"
-#~ msgstr ""
-#~ "BOINC Online Help is based on %sSkype%s, an Internet-based telephone "
-#~ "system. Skype is free (both the software and the calls). If you don't "
-#~ "already have Skype, please %sdownload and install it now%s. When you're "
-#~ "finished, return to this page. "
-
-#~ msgid "HELP_P1_3"
-#~ msgstr ""
-#~ "The best way to get help is by voice, for which you need either built-in "
-#~ "microphone and speakers or an external headset for your computer. You can "
-#~ "also use Skype's text-based chat system or regular email (if you don't "
-#~ "have Skype) to communicate with Help Volunteers."
-
-#~ msgid "HELP_P1_4"
-#~ msgstr ""
-#~ "Volunteers speaking several languages are available. Please select a "
-#~ "language: "
-
-#~ msgid "HELP_HEADING2"
-#~ msgstr "BOINC help on the web"
-
-#~ msgid "HELP_P2_ITEM1"
-#~ msgstr "BOINC user's manual"
-
-#~ msgid "HELP_P2_ITEM2"
-#~ msgstr "Troubleshooting BOINC "
-
-#~ msgid "HELP_P2_ITEM3"
-#~ msgstr "BOINC-related web sites "
-
-#~ msgid "HELP_P2_ITEM4"
-#~ msgstr "The BOINC message boards "
-
-#~ msgid "HELP_P2_ITEM5"
-#~ msgstr "The message boards on any BOINC-based project "
-
-#~ msgid "HELP_HEADING3"
-#~ msgstr "Be a Help Volunteer"
-
-#~ msgid "HELP_P3_1"
-#~ msgstr ""
-#~ "If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-#~ "Volunteer%s. It's a great way to help the cause of scientific research "
-#~ "and volunteer computing - and it's fun!  "
-
-#~ msgid "HELP_P3_2"
-#~ msgstr ""
-#~ "If you're already a Help Volunteer: to edit your settings, %sclick here"
-#~ "%s. "
-
-# #############################################
-# index.php
-# #############################################
-#~ msgid "HOME_HEADING1"
-#~ msgstr "Volunteer"
-
-#~ msgid "HOME_P1"
-#~ msgstr ""
-#~ " Use the idle time on your computer  (Windows, Mac, or Linux)  to cure "
-#~ "diseases, study global warming,  discover pulsars, and do many other "
-#~ "types of scientific research.  It's safe, secure, and easy:  %sChoose%s "
-#~ "projects  %sDownload%s and run BOINC software  %sEnter%s an email address "
-#~ "and password. "
-
-#~ msgid "HOME_P2"
-#~ msgstr ""
-#~ "Or, if you run several projects, try an %saccount manager%s such as "
-#~ "%sGridRepublic%s or %sBAM!%s. "
-
-#~ msgid "HOME_P3"
-#~ msgstr ""
-#~ "If you have any questions, or need help getting started, you can %stalk "
-#~ "to a Volunteer Helper%s. "
-
-#~ msgid "HOME_DOWNLOAD"
-#~ msgstr "Download"
-
-#~ msgid "HOME_WEB_SITES"
-#~ msgstr "Web"
-
-#~ msgid "HOME_ADD_ONS"
-#~ msgstr "Add-ons"
-
-#~ msgid "HOME_SURVEY"
-#~ msgstr "Survey"
-
-#~ msgid "HOME_BOINC"
-#~ msgstr "Berkeley Open Infrastructure for Network Computing"
-
-#~ msgid "HOME_BOINC_DESC"
-#~ msgstr ""
-#~ "Open-source software for %svolunteer computing%s and %sgrid computing%s"
+msgstr "Encontrar todos os sistemas de numeração binária generalizados (nos quais as bases são matrizes e dígitos são vetores) até a 11ª dimensão."
 
-# #######################################
-# download.php 2006/08/03 by je2bwm
-# #######################################
-#~ msgid "DL_DOWNLOAD"
-#~ msgstr "Baixe o BOINC"
+#: doc/projects.inc:682
+msgid "Study number theory"
+msgstr "Estudar teoria de número"
 
-#~ msgid "DL_VERSION_LNAME_SIZE"
-#~ msgstr "%s de %s (%s MB)"
-
-#~ msgid "DL_WHATS_BOINC"
-#~ msgstr ""
-#~ " BOINC é um programa que permite a você doar o tempo ocioso de seu micro "
-#~ "para projetos científicos como o...        SETI at home, Climateprediction."
-#~ "net, Rosetta at home,        World Community Grid, e muitos outros.        "
-#~ "<p>       Depois de instalar o BOINC em seu micro,     você poderá "
-#~ "conectar a vários desses projetos, como você desejar.<p>"
-
-#~ msgid "DL_SYSTEMREQ"
-#~ msgstr "Requisitos do sistema"
-
-#~ msgid "DL_RELNOTES"
-#~ msgstr "Notas da versão"
-
-#~ msgid "DL_OTHERSYS"
-#~ msgstr "Outros sistemas"
-
-#~ msgid "DL_ALLVERSIONS"
-#~ msgstr "Todas as versões"
-
-#~ msgid "DL_IF_OTHERTYPES"
-#~ msgstr "Se seu micro não for de nenhum dos tipos acima, você poderá"
-
-#~ msgid "DL_MAKEYOUROWN"
-#~ msgstr "%s desenvolver seu próprio software %s ou"
-
-#~ msgid "DL_DL_FROM3RDP"
-#~ msgstr ""
-#~ "%s baixar programas de terceiros %s (disponível para Solaris/Opteron, "
-#~ "Linux/Opteron, Linux/PPC, HP-UX, e FreeBSD, e outros)."
-
-#~ msgid "DL_DOWNLOAD_TITLE"
-#~ msgstr "BOINC: computação para a ciência"
-
-# #############################################
-# system_requirements.php by je2bwm 2006/08/07
-# #############################################
-#~ msgid "SRQ_PAGE_TITLE"
-#~ msgstr "Requisitos do sistema"
-
-#~ msgid "SRQ_INTRO"
-#~ msgstr ""
-#~ "Seu micro precisa satisfazer os seguintes requisitos para rodar o BOINC. "
-#~ "Os projetos baseados no BOINC podem ter requisitos adicionais."
-
-#~ msgid "SRQ_MSWIN"
-#~ msgstr "Windows"
-
-#~ msgid "SRQ_OS"
-#~ msgstr "Sistemas operacionais"
-
-#~ msgid "SRQ_MSWIN_REQ_OS"
-#~ msgstr "Windows 98 ou posterior"
-
-#~ msgid "SRQ_MIN_HARDWARE"
-#~ msgstr "Hardware mínimo"
-
-#~ msgid "SRQ_MSWIN_REQ_CPU"
-#~ msgstr "Pentium 233 MHz (Recomendado: Pentium 500 MHz ou superior)"
-
-#~ msgid "SRQ_MSWIN_REQ_RAM"
-#~ msgstr "64 MB RAM (Recomendado: 128 MB RAM ou superior)"
-
-#~ msgid "SRQ_MSWIN_REQ_DISK"
-#~ msgstr "20 MB de espaço em disco"
-
-#~ msgid "SRQ_APPLMAC"
-#~ msgstr "Macintosh"
-
-#~ msgid "SRQ_APPLMAC_REQ_OS"
-#~ msgstr "Mac OS X 10.3 e posteriores"
-
-#~ msgid "SRQ_APPLMAC_REQ_CPU"
-#~ msgstr "Macintosh com processador Intel x86or PowerPC G3, G4, ou G5"
-
-#~ msgid "SRQ_APPLMAC_REQ_RAM"
-#~ msgstr "128 MB RAM (Recomendado: 256 MB RAM ou superior)"
-
-#~ msgid "SRQ_APPLMAC_REQ_DISK"
-#~ msgstr "200 MB de espaço em disco"
-
-#~ msgid "SRQ_LINUX"
-#~ msgstr "Linux"
-
-#~ msgid "SRQ_LINUX_REQ_KERNEL"
-#~ msgstr "Linux kernel 2.2.14 ou posterior"
-
-#~ msgid "SRQ_LINUX_REQ_GLIBC"
-#~ msgstr "glibc 2.3.2  ou posterior"
-
-#~ msgid "SRQ_LINUX_REQ_XFREE86"
-#~ msgstr "XFree86-3.3.6 ou posterior"
-
-#~ msgid "SRQ_LINUX_REQ_GTKPLUS"
-#~ msgstr "gtk+2.0 ou posterior"
-
-#~ msgid "SRQ_LINUX_REQ_CPU"
-#~ msgstr "Pentium 500 MHz  ou superior"
-
-#~ msgid "SRQ_LINUX_REQ_RAM"
-#~ msgstr "64 MB RAM"
-
-#~ msgid "SRQ_LINUX_REQ_DISK"
-#~ msgstr "50 MB de espaço em disco"
-
-# #############################################
-# release notes by je2bwm 2006/08/09
-# #############################################
-#~ msgid "RLN_PAGE_TITLE"
-#~ msgstr "Notas da versão"
-
-#~ msgid "RLN_WHATS_NEW"
-#~ msgstr "Novidades %s"
-
-#~ msgid "RLN_INSTALLING"
-#~ msgstr "Instalando"
-
-#~ msgid "RLN_UNINSTALLING"
-#~ msgstr "Desinstalando"
-
-#~ msgid "RLN_KNOWN_ISSUES"
-#~ msgstr "Emissão conhecida"
-
-#~ msgid "RLN_TROUBLESHOOT"
-#~ msgstr "Eliminando problemas"
-
-#~ msgid "RLN_NEWF_5_4_AM"
-#~ msgstr ""
-#~ "Suporte para  'Gerenciadores de contas' - sites que permitem a você "
-#~ "navegar nos projetos BOINC, conectar/desconectar, mudar configurações e "
-#~ "partilhar recursos, tudo de maneira simples, com um único clique. Os "
-#~ "Gerenciadores de contas também são úteis caso você tiver vários micros - "
-#~ "você faz alterações em um micro, e todos os outros micros serão "
-#~ "alterados. "
-
-#~ msgid "RLN_NEWF_5_4_PREF_OVERRIDE"
-#~ msgstr ""
-#~ "As preferências gerais podem ser sobre-escritas por um arquivo local; os "
-#~ "detalhes estão  %s aqui %s."
-
-#~ msgid "RLN_NEWF_5_4_ALERTS_CONNECT"
-#~ msgstr ""
-#~ "O BOINC alertará você sempre que necessário para criar uma conexão com a "
-#~ "internet."
-
-#~ msgid "RLN_RECOMMEND_LATEST_VERSION"
-#~ msgstr "Recomendamos que todos os usuários do BOINC atualizem para a %s."
-
-#~ msgid "RLN_LINK2_VERSION_HISTORY"
-#~ msgstr "Um histórico detalhado da revisão está %s aqui %s."
-
-#~ msgid "RLN_MSWIN"
-#~ msgstr "Windows"
-
-#~ msgid "RLN_APPLMAC"
-#~ msgstr "Macintosh"
-
-#~ msgid "RLN_LINUX"
-#~ msgstr "Linux"
-
-#~ msgid "RLN_MSWIN_INSTALL_MODES"
-#~ msgstr "O BOINC pode ser instalado de vários modos:"
+#: doc/projects.inc:739
+msgid ""
+"Testing and comparison of heuristic methods for getting separations of "
+"parallel algorithms working in the CAD system for designing logic control "
+"systems"
+msgstr "Teste e comparação de métodos heurísticos para conseguir separações de algoritmos paralelos trabalhando no sistema CAD para design de sistemas de controle lógico"
 
-#~ msgid "RLN_SINGLE_USER_INSTALL"
-#~ msgstr "Instalação tipo Simples-usuário"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discutir"
 
-#~ msgid "RLN_MSWIN_INSTALL_SINGLE_USER_DESC"
-#~ msgstr ""
-#~ "Este é o modo recomendado. O BOINC rodará somente quando você (o usuário "
-#~ "instalador) estiver \"logado\" no micro. O BOINC ficará na lista do menu "
-#~ "Iniciar para seu perfil, mas não estará disponível em outros perfis. A "
-#~ "opção \"Exibir gráficos\" do gerenciador de tarefas do BOINC funcionará "
-#~ "somente em seu perfil. O protetor de telas do BOINC será exibido somente "
-#~ "em seu perfil (os outros perfis poderão rodar o protetor de telas, mas "
-#~ "somente com textos)."
-
-#~ msgid "RLN_SHARED_INSTALL"
-#~ msgstr "Instalação compartilhada"
-
-#~ msgid "RLN_MSWIN_INSTALL_SHARED_DESC"
-#~ msgstr ""
-#~ "O BOINC rodará sempre, em qualquer perfil. Também será exibido no menu "
-#~ "Iniciar de todos os usuários. Quando o BOINC estiver rodando, ele rodará "
-#~ "como um usuário em particular (sempre será o primeiro usuário instalou o "
-#~ "BOINC pela primeira vez). O comando \"Exibir gráficos\" no gerenciador do "
-#~ "BOINC funcionará somente no perfil do instalador. O protetor de telas do "
-#~ "BOINC funcionará somente no perfil do instalador (outros perfis poderão "
-#~ "rodar o protetor de telas, mas verão somente textos)."
-
-#~ msgid "RLN_WIN_SERVICE_INSTALL"
-#~ msgstr "Instalação tipo serviço"
-
-#~ msgid "RLN_MSWIN_INSTALL_WINSERVICE_DESC"
-#~ msgstr ""
-#~ "O BOINC funcionará o tempo todo (mesmo que nenhum perfil estiver "
-#~ "selecionado). O BOINC aparecerá no menu Iniciar do perfil do instalador, "
-#~ "mas não nos outros perfis. O comando \"Exibir gráficos\" no gerenciador "
-#~ "BOINC não funcionará para nenhum usuário. O protetor de telas do BOINC "
-#~ "exibirá somente textos. "
-
-#~ msgid "RLN_LINUX_INSTALL_SEA_DESC"
-#~ msgstr ""
-#~ "O BOINC para Linux é distribuído como um arquivo auto-extrator. Esse tipo "
-#~ "de instalação requer que voc~e esteja familiarizado com o modo linha-de-"
-#~ "comando do UNIX "
-
-#~ msgid "RLN_LINUX_DL_FILENAME"
-#~ msgstr "Os arquivos recebidos tem nomes como <code>%s</code>."
-
-#~ msgid "RLN_LINUX_RUN_SEA"
-#~ msgstr "Após baixar o arquivo, escreva<pre>%s</pre>"
-
-#~ msgid "RLN_LINUX_RESULTOF_SEA"
-#~ msgstr "Isso criará uma pasta BOINC/ com os seguintes arquivos:"
-
-#~ msgid "RLN_BOINC_CORE_CL"
-#~ msgstr "O programa principal do BOINC"
-
-#~ msgid "RLN_BOINC_MANAGER"
-#~ msgstr "O gerenciador do BOINC"
-
-#~ msgid "RLN_SCRIPT_RUN_CLIENT_DESC"
-#~ msgstr ""
-#~ "Um \"script\" que entrará na pasta BOINC e rodará o programa principal."
-
-#~ msgid "RLN_SCRIPT_RUN_MANAGER_DESC"
-#~ msgstr "Um \"script\" que entrará na pasta BOINC e rodará o gerenciador."
-
-#~ msgid "RLN_LINUX_AUTOSTART"
-#~ msgstr ""
-#~ "Talves você terá que%s ativar automaticamente o programa principal %sao "
-#~ "iniciar o micro."
-
-#~ msgid "RLN_MSWIN_UNINSTALL_DESC"
-#~ msgstr ""
-#~ "No menu Iniciar, selecione Programas / BOINC / Desinstalar. Ou no menu "
-#~ "Iniciar, selecione Configurações / Adicionar ou remover programas."
-
-#~ msgid "RLN_ISSUE_PROXY_NTLMAUTH"
-#~ msgstr ""
-#~ "Caso você usar um servidor proxy, por favor desative as atualizações por "
-#~ "um momento. Nos temos dificuldades em funcionar com proxies que usam "
-#~ "autenticação NTLM. "
-
-#~ msgid "RLN_ISSUE_MSWIN_LATEST_DIRECTX"
-#~ msgstr ""
-#~ "Se as aplicações BOINC estiverem travando repetidamente seu micro, é "
-#~ "possível que você tenha que %atualizar para a última versão do DirectX %s."
-
-#~ msgid "RLN_ISSUE_MSWIN_SCREENSAVER_XP3D"
-#~ msgstr ""
-#~ "Caso o BOINC rodar ao mesmo tempo que um protetor de telas 3-D no Windows "
-#~ "XP, o sistema se tornará lento e  suscetível. "
-
-#~ msgid "RLN_ISSUE_MSWIN_NO_SCREENSAVER"
-#~ msgstr ""
-#~ "Versões feitas antes de Outubro de 2004 não exibem gráficos protetores de "
-#~ "tela com as opções de instalação tipo Serviço ou Compartilhada, nem "
-#~ "instalado como Simples usuáriom se a proteção de tela estiver protegida "
-#~ "com senha em micros com sistema baseado em NT."
-
-#~ msgid "RLN_TROUBLESHOOT_INTRO"
-#~ msgstr ""
-#~ "Case tiver problemas com o BOINC, aqui estão alguns passos que você "
-#~ "poderá tentar:"
-
-#~ msgid "RLN_TROUBLESHOOT_PRJ_SPECIFIC"
-#~ msgstr ""
-#~ "Caso o problema for em um projeto em particular, vá na área de 'Questions "
-#~ "and Answers' no site do projeto. Você encontrará soluções para seu "
-#~ "problema. Caso contrário, deixe uma mensagem aqui, e você receberá ajuda "
-#~ "de outros usuários."
-
-#~ msgid "RLN_TROUBLESHOOT_PROBLEM_PERSIST"
-#~ msgstr ""
-#~ "Caso o problema específico do projeto persistir, use o Gerenciador BOINC "
-#~ "para \"Resetar\" o projeto. Isso apagará todos os trabalhos em andamento "
-#~ "e reiniciará o projeto."
-
-#~ msgid "RLN_TROUBLESHOOT_BOINC_ITSELF"
-#~ msgstr ""
-#~ "Caso tiver problemas com o próprio BOINC, obtenha ajuda nos  %s Fóruns do "
-#~ "BOINC %s."
+#: html/inc/news.inc:112
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "Notícias estão disponíveis como %sRSS feed%s"
diff --git a/locale/pt_PT/BOINC-Client.mo b/locale/pt_PT/BOINC-Client.mo
index 8b4be57..16a3702 100644
Binary files a/locale/pt_PT/BOINC-Client.mo and b/locale/pt_PT/BOINC-Client.mo differ
diff --git a/locale/pt_PT/BOINC-Client.po b/locale/pt_PT/BOINC-Client.po
index 58ab3e0..e521221 100644
--- a/locale/pt_PT/BOINC-Client.po
+++ b/locale/pt_PT/BOINC-Client.po
@@ -1,163 +1,180 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Maria Manuela Silva, 2016
-# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2016-05-27 12:57+0000\n"
-"Last-Translator: Maria Manuela Silva\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-28 15:13+0000\n"
+"Last-Translator: Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/boinc/boinc/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_PT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Mensagem do gestor de conta"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Mensagem do servidor"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Algumas tarefas precisam de mais memória do que a definida nas suas preferências. Por favor, verifique as preferências."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
-msgstr "Não foi possível gravar o ficheiro de estado; verifique as permissões da pasta"
+msgstr "Não foi possível gravar o ficheiro de estado; verifique as permissões de pasta"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-msgstr "A variável HTTP_PROXY tem que especificar uma proxy HTTP"
+msgstr "A variável HTTP_PROXY deve especificar um proxy HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Usou o URL errado para este projecto. Assim que possível, remova este projecto e depois adicione %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Este projeto está a utilizar um URL antigo. Quando for conveniente, remova o projeto e depois adicione %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Erro de sintaxe em app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Não existe o ficheiro referenciado em app_info.xml:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
-msgstr "Está disponível uma versão mais recente do BOINC."
+msgstr "Está disponível uma nova versão do BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Transferir"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "não pode ser utilizado para computação com CUDA ou OpenCL com o driver CUDA 6.5 ou mais recente"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Texto inesperado em cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Tag não reconhecida em cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Tag inicial em falta em cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Erro nas opções em cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Tag final em falta em cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
-msgid "Invalid or missing account key.  To fix, remove and add this project."
-msgstr "A chave da conta é inválida ou está em falta. Para corrigir, remova e volte a adicionar este projecto."
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Para corrigir isto, pode"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "modificar Preferências do Projeto no website do projeto"
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Chave de assinatura do código inválida. Para corrigir, remova e adicione este projecto."
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "remove exclusões da GPU no seu ficheiro cc_config.xml"
 
-#: ../sched/handle_request.cpp:859
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "modifique as suas definições no website do gestor de conta"
+
+#: sched/handle_request.cpp:317
+msgid "Invalid or missing account key.  To fix, remove and add this project."
+msgstr "A chave da conta é inválida ou está em falta. Para corrigir, remova e adicione este projeto."
+
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
-msgstr "O projecto alterou o seu código de segurança. Por favor, remova-o e adicione este projecto."
+msgstr "O projeto alterou o seu código de segurança. Por favor, remova-o e adicione este projeto."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
-msgstr "Este projecto não suporta o sistema operativo"
+msgstr "Este projeto não suporta o sistema operativo"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Este projeto não suporta o tipo de CPU"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
-msgstr "A sua versão do BOINC está bastante desactualizada. Por favor instale a versão mais recente."
+msgstr "A sua versão do BOINC está bastante desatualizada. Por favor, instale a versão mais recente."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
-msgstr "Este projecto não suporta computadores do tipo"
+msgstr "Este projeto não suporta computadores do tipo"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr "Actualize os seus drivers para processar as tarefas, utilizando a GPU do seu computador"
+msgstr "Atualize os seus controladores para processar as tarefas, utilizando a GPU do seu computador"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
-msgstr "Actualize para os drivers mais recentes, para utilizar todas as aplicações GPU deste projecto"
+msgstr "Atualize para os controladores mais recentes, para utilizar todas as aplicações de GPU deste projeto"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
-msgstr "É necessária uma versão mais recente do BOINC para utilizador a GPU da NVIDIA; por favor actualize para a versão actual"
+msgstr "É necessária uma versão mais recente do BOINC para utilizar a sua GPU da NVIDIA; por favor, atualize para a versão mais recente"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
-msgstr "Uma GPU %s é necessária para executar tarefas para este projecto"
+msgstr "É necessária uma GPU %s para executar as tarefas deste projeto"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
-msgstr "Não estão disponíveis tarefas para as aplicações que seleccionou. "
+msgstr "Não estão disponíveis tarefas para as aplicações que selecionou. "
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
-msgstr "O seu tipo de computador não é suportado por este projecto"
+msgstr "O seu tipo de computador não é suportado por este projeto"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
-msgstr "É necessária uma versão mais recente do BOINC; por favor instale a versão actual"
+msgstr "É necessária uma versão mais recente do BOINC; por favor, instale a versão mais recente"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Tarefas para %s estão disponíveis, mas as suas preferências estão definidas para não as aceitar"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Nome de aplicação desconhecida em app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "O seu ficheiro app_info.xml não tem uma versão utilizável de"
diff --git a/locale/pt_PT/BOINC-Drupal.po b/locale/pt_PT/BOINC-Drupal.po
index 0e6a96b..33c6c6d 100644
--- a/locale/pt_PT/BOINC-Drupal.po
+++ b/locale/pt_PT/BOINC-Drupal.po
@@ -3,16 +3,17 @@
 # 
 # Translators:
 # Ivo Micael Frazão Costeira <ivo.frazao95 at gmail.com>, 2015
-# Maria Manuela Silva, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
 # Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015-2016
 # Octávio Filipe Gonçalves <octavio.filipe.pereira at gmail.com>, 2016
 # Paco Banderas <duimpera1 at gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2016-05-27 16:29+0000\n"
-"Last-Translator: Octávio Filipe Gonçalves <octavio.filipe.pereira at gmail.com>\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2017-01-31 16:45+0000\n"
+"Last-Translator: Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/boinc/boinc/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,502 +21,656 @@ msgstr ""
 "Language: pt_PT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-msgid "Please select a team type."
-msgstr "Por favor, selecione o tipo de equipa."
-
-msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "A alteração da equipa fundadora já foi solicitada recentemente. Só é permitido um pedido dentro de um período de 90 dias."
+msgid "Reject profile"
+msgstr "Rejeitar perfil"
 
-msgid "@count days remaining"
-msgstr "@count dias restantes"
+msgid "Ban user"
+msgstr "Banir utilizador"
 
-msgid "Inbox"
-msgstr "Caixa de entrada"
+msgid "I'm new"
+msgstr "Eu sou novo"
 
-msgid "Compose new"
-msgstr "Compor nova"
+msgid "I'm a BOINC user"
+msgstr "Eu sou um utilizador do BOINC"
 
-msgid "respond to the request"
-msgstr "responder ao pedido"
+msgid "Authenticator login"
+msgstr "Identificação de sessão"
 
 msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "O pedido de transferência de um fundador já foi efetuado por esta equipa. Por favor, !respond."
-
-msgid "Respond to transfer request"
-msgstr "Responder ao pedido de transferência"
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Tem de ganhar mais @count créditos para poder publicar comentários neste site"
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "O membro @name solicitou o titulo de fundador da equipa. Isso pode acontecer, porque você deixou a equipa ou não manteve contato com a equipa por um longo tempo."
+msgid "Generic"
+msgstr "Genérico"
 
-msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "Se você não recusar o pedido por @date, @name terá a opção de assumir a fundação da equipa. (Nota: para aceitar o pedido e atribuir a fundação para o utilizador @Name utilize o formulário abaixo)"
+msgid "Home"
+msgstr "Casa"
 
-msgid "Deny request"
-msgstr "Negar pedido"
+msgid "Work"
+msgstr "Trabalho"
 
-msgid "Send request"
-msgstr "Enviar pedido"
+msgid "School"
+msgstr "Escola"
 
-msgid "Friend request from !name [!site]"
-msgstr "Pedido de amizade de !name [!site]"
+msgid "yes"
+msgstr "sim"
 
-msgid "Message"
-msgstr "Mensagem"
+msgid "no"
+msgstr "não"
 
-msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name adicionou-o como amigo no !site. Pode aprovar ou recusar o pedido. Ao recusar um pedido, não será enviada uma notificação, mas irá remover o pedido de ambas as contas.\n\nSiga o link abaixo para visualizar este pedido: \n! link\n\n!message\n\nObrigado, \nA equipa !site"
+msgid "Resource settings"
+msgstr "Configurações de recurso"
 
-msgid "Cancel friend request"
-msgstr "Cancelar pedido de amizade"
+msgid "Resource share"
+msgstr "Quota de recurso"
 
-msgid "Remove request"
-msgstr "Remover pedido"
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Determina a proporção dos recursos do seu computador, atribuído a este projeto. Exemplo: se participar em dois projetos BOINC com quotas de recurso de 100 e 200, o primeiro terá 1/3 dos seus recursos e o segunda terá 2/3."
 
-msgid "Approve request"
-msgstr "Aprovar pedido"
+msgid "Use CPU"
+msgstr "Utilizar CPU"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "O !name aceitou o seu pedido de amizade [!site]"
+msgid "Enforced by version @number"
+msgstr "Forçado pela versão @number"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name confirmou-o como amigo de !site.\n\nSiga esta hiperligação para ver o seu perfil:\n!link\n\n!message\n\nObrigado,\nA equipa !site"
+msgid "Use NVIDIA GPU"
+msgstr "Utilizar GPU NVIDIA"
 
-msgid "Email address"
-msgstr "Endereço de e-mail"
+msgid "Use ATI GPU"
+msgstr "Utilizar GPU ATI"
 
-msgid "Home"
-msgstr "Casa"
+msgid "Use INTEL GPU"
+msgstr "Utilizar CPU INTEL"
 
-msgid "Login"
-msgstr "Iniciar Sessão"
+msgid "Beta settings"
+msgstr "Definições da versão beta"
 
-msgid "search"
-msgstr "pesquisar"
+msgid "Run test applications?"
+msgstr "Executar aplicações de teste?"
 
-msgid "Server status"
-msgstr "Estado do servidor"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Isto irá ajudar-nos a desenvolver as aplicações, mas poderá fazer com que os trabalhos falhem no seu computador"
 
-msgid "Language"
-msgstr "Idioma"
+msgid " Default value: @default"
+msgstr "Valor predefinido: @default"
 
-msgid "Enter your @s email address."
-msgstr "Insira o seu @s endereço de e-mail."
+msgid "Applications"
+msgstr "Aplicações"
 
-msgid "Join now"
-msgstr "Aderir agora"
+msgid "Default set"
+msgstr "Definições predefinidas"
 
-msgid "I'm new"
-msgstr "Eu sou novo"
+msgid "Set used for new computers"
+msgstr "Definições utilizadas para os novos computadores"
 
-msgid "I'm a BOINC user"
-msgstr "Eu sou um utilizador do BOINC"
+msgid "Save changes"
+msgstr "Guardar alterações"
 
-msgid "Welcome back!"
-msgstr "Bem-vindo de novo!"
+msgid "Cancel"
+msgstr "Cancelar"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home é um programa que utiliza o tempo inativo do seu computador para pesquisar ondas gravitacionais das estrelas de neutrões giratórias (também chamadas de pulsares) utilizando dados do detector de ondas gravitacional LIGO"
+msgid "Show comparison view"
+msgstr "Mostrar visualização de comparação"
 
-msgid "Learn more"
-msgstr "Aprender mais"
+msgid "Comment form"
+msgstr "Formulário de comentário"
 
-msgid "View account"
-msgstr "Ver conta"
+msgid "Logout"
+msgstr "terminar sessão"
 
-msgid "About our screensaver"
-msgstr "Sobre a nossa protecção de ecrã"
+msgid "Join now"
+msgstr "Aderir agora"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "Mais de 500,000 voluntários e a contar."
+msgid "Account"
+msgstr "Conta"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Server status"
+msgstr "Estado do servidor"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Language"
+msgstr "Idioma"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Create content"
+msgstr "Criar conteúdo"
 
-msgid "Logout"
-msgstr "Sair"
+msgid "General settings"
+msgstr "Configurações Gerais"
 
 msgid "Name"
 msgstr "Nome"
 
-msgid "Avg credit"
-msgstr "Média de créditos"
+msgid "Time zone"
+msgstr "Fuso Horário"
 
-msgid "Total credit"
-msgstr "Créditos totais"
+msgid "Notification settings"
+msgstr "Definições de notificação"
 
-msgid "Enter your password to save changes"
-msgstr "Insira a sua palavra-passe para guardar alterações"
+msgid "Receive email notification for private messages?"
+msgstr "Receber notificações por e-mail das mensagens privadas?"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Insira a sua palavra passe actual se está a alterar o seu endereço de e-mail ou palavra-passe"
+msgid "Receive email notification for friend requests?"
+msgstr "Receber notificações por e-mail dos pedidos de amizade?"
 
-msgid "BOINC user ID"
-msgstr "ID de utilizador BOINC"
+msgid "Language settings"
+msgstr "Definições de idioma"
 
-msgid "Drupal user ID"
-msgstr "ID de utilizador Drupal"
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Este é o idioma predefinido desta conta para os e-mails e idioma preferido para a apresentação do site."
 
-msgid "Account key"
-msgstr "Chave da conta"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Se tiver um <a href=\"@gravatar-check\">Gravatar válido</a> associado ao seu endereço de e-mail, este será utilizado como imagem do utilizador."
 
-msgid "Weak account key"
-msgstr "Palavra chave fraca"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "O seu Gravatar não será mostrado se enviar uma imagem do utilizador."
 
-msgid "Cross-project ID"
-msgstr "ID de projectos cruzados"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Se tiver um <a href=\"@gravatar-check\">Gravatar válido</a> associado ao seu endereço de e-mail, utilize-o para a sua imagem de utilizador."
 
-msgid "Save changes"
-msgstr "Guardar alterações"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "O gravatar não será mostrado se for enviado um avatar."
 
-msgid "Cancel"
-msgstr "Cancelar"
+msgid "Avatar settings"
+msgstr "Definições de avatar"
 
-msgid "Change password"
-msgstr "Mudar palavra passe"
+msgid "This is not available until your profile is set up."
+msgstr "Isto não está disponível até que configure o seu perfil."
 
-msgid "What is @this_project?"
-msgstr "O que é @this_project?"
+msgid "Create a profile"
+msgstr "Criar um perfil"
 
-msgid "no projects..."
-msgstr "sem projectos..."
+msgid "Upload an avatar"
+msgstr "Enviar um avatar"
 
-msgid "Download the desktop software"
-msgstr "Transferir o software"
+msgid "Forum settings"
+msgstr "Definições do Fórum"
 
-msgid "Run the installer"
-msgstr "Executar a instalação"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "Nos tópicos de discussão, mostrar pelo menos @comments_per_page"
 
-msgid "When prompted enter @siteurl"
-msgstr "Quando pedido, insira o @siteurl"
+msgid "comments per page"
+msgstr "comentários por página"
 
-msgid "Password"
-msgstr "Palavra-passe"
+msgid "Sort comments in discussions"
+msgstr "Ordenar comentários nas discussões"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Insira a palavra-passe que acompanha o seu nome de utilizador."
+msgid "Newest post first"
+msgstr "Primeiro, os artigos mais recentes"
 
-msgid "Request new password"
-msgstr "Requisitar nova palavra-passe"
+msgid "Oldest post first"
+msgstr "Primeiro, os artigos mais antigos"
 
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Se já executa o BOINC, seleccionei>Adicionar\nProjecto</i>."
+msgid "Signature"
+msgstr "Assinatura"
 
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Se estiver a executar uma versão do BOINC em linha de comandos,\nprimeiro use o software BOINC Manager (noutra localização, caso necessário) para criar uma\numa conta neste projecto, em seguida, use essa conta para se ligar utilizando\nversão do BOINC, na linha de comandos."
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "A sua assinatura será exibida publicamente no fim dos seus comentários."
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Se está a executar uma versão do BOINC pré-5.0, por favor actualize-o para uma versão mais recente para criar uma conta neste projecto."
+msgid "Hide signatures in forums"
+msgstr "Ocultar assinaturas nos fóruns"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Se sabe qual nome da sua conta e endereço de e-mail, e pode receber e-mails, nesse mesmo endereço:"
+msgid "Privacy settings"
+msgstr "Definições de privacidade"
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Insira o endereço de e-mail e clique em OK. Ser-lhe-á enviado um e-mail com instruções para fazer a alteração da sua palavra-passe"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Concorda em receber e-mails do @project e da sua equipa (se qualquer)?"
 
-msgid "OK"
-msgstr "OK"
+msgid "Should @project show your computers on its web site?"
+msgstr "O @projecto deverá mostrar os seus computadores no seu site da Web?"
 
-msgid "The latest news from the @site_name project"
-msgstr "As últimas notícias do projecto @site_name"
+msgid "Id"
+msgstr "Identificação"
 
-msgid "Comment form"
-msgstr "Formulário para comentários"
+msgid "Founder"
+msgstr "Fundador"
 
-msgid "Total credits"
-msgstr "Créditos totais"
+msgid "Country"
+msgstr "País"
 
-msgid "Recent avg credits"
+msgid "Recent average credit"
 msgstr "Média de créditos recentes"
 
-msgid "Country"
-msgstr "País"
+msgid "Members"
+msgstr "Membros"
 
-msgid "Type"
-msgstr "Tipo"
+msgid "Total Credit"
+msgstr "Crédito Total"
 
-msgid "Founder"
-msgstr "Fundador"
+msgid "User ID"
+msgstr "Id. do Utilizador"
 
-msgid "New members in last day"
-msgstr "Novos membros no último dia"
+msgid "User"
+msgstr "Utilizador"
 
-msgid "Total members"
-msgstr "Total de membros"
+msgid "Admin since"
+msgstr "Administrador desde"
 
-msgid "Active members"
-msgstr "Membros activos"
+msgid "Team ID"
+msgstr "Id. da Equipa"
 
-msgid "Members with credit"
-msgstr "Membros com créditos"
+msgid "User joined"
+msgstr "Utilizador aderiu"
 
-msgid "Description"
-msgstr "Descrição"
+msgid "Timestamp"
+msgstr "Data e Hora"
 
-msgid "Search teams"
-msgstr "Pesquisar equipas"
+msgid "Account Key"
+msgstr "Chave da Conta"
 
-msgid "Send message"
-msgstr "Enviar mensagem"
+msgid "Member since"
+msgstr "Membro desde"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "Project"
-msgstr "Projecto"
+msgid "Email Address"
+msgstr "Endereço de E-mail"
 
-msgid "Web site"
-msgstr "Website"
+msgid "Password Hash"
+msgstr "Hash da Palavra-passe"
 
-msgid "No active computers"
-msgstr "Sem computadores activos"
+msgid "Postal Code"
+msgstr "Código Postal"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "Este utilizador não tem computadores que tenham estado activos os últimos 30 dias."
+msgid "Send Email"
+msgstr "Enviar Mensagem"
 
-msgid " Default value: @default"
-msgstr "Valor padrão: @default"
+msgid "Show Hosts"
+msgstr "Mostrar Anfitriões"
 
-msgid "Applications"
-msgstr "Aplicações"
+msgid "URL"
+msgstr "URL"
 
-msgid "yes"
-msgstr "sim"
+msgid "Computer ID"
+msgstr "Id. do Computador"
 
-msgid "no"
-msgstr "não"
+msgid "Location"
+msgstr "Localização"
 
-msgid "Message @id"
-msgstr "@id da Mensagem"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "Enquanto o BOINC está em execução, é permitido % de tempo de trabalho"
 
-msgid "message @id"
-msgstr "@id da mensagem"
+msgid "Average turnaround time"
+msgstr "Tempo de resposta médio"
 
-msgid " in response to !parent"
-msgstr "em resposta ao !parent"
+msgid "Created"
+msgstr "Criado"
 
-msgid "Credits per day"
-msgstr "Créditos por dia"
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "Enquanto o BOINC está em execução, % do tempo do anfitrião tem ligação à Internet"
 
-msgid "Computers hidden"
-msgstr "Computadores ocultos"
+msgid "Average CPU efficiency"
+msgstr "Eficiência média da CPU"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "Este utilizador escolheu não mostrar informações sobre os seus computadores"
+msgid "Free disk space"
+msgstr "Espaço livre no disco"
 
-msgid "Stderr output"
-msgstr "Stderr output"
+msgid "Total disk space"
+msgstr "Espaço total no disco"
 
-msgid "@time ago"
-msgstr "@time atrás"
+msgid "Task duration correction factor"
+msgstr "Fator de correção da duração da tarefa"
 
-msgid "n/a"
-msgstr "n/a"
+msgid "Avg. credit"
+msgstr "Média de créditos"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Submetido pelo !username em !datetime"
+msgid "External IP address"
+msgstr "Endereço de IP externo"
 
-msgid "Member since"
-msgstr "Membro desde"
+msgid "Cross project ID"
+msgstr "Identificação do projeto"
 
-msgid "View team"
-msgstr "Ver equipa"
+msgid "Last IP address"
+msgstr "Último endereço de IP"
 
-msgid "Friends (@count)"
-msgstr "Amigos (@count)"
+msgid "Cache"
+msgstr "Cache"
 
-msgid "Website"
-msgstr "Website"
+msgid "Memory"
+msgstr "Memória"
 
-msgid "Locked"
-msgstr "Bloqueado"
+msgid "Swap space"
+msgstr "Espaço temporário"
 
-msgid "Computers pending"
-msgstr "Computadores pendentes"
+msgid "Maximum daily WU quota per CPU"
+msgstr "Cota diária máxima de WU por CPU"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "Este utilizador não tem ainda computadores associados. Os computadores serão mostrados quando ganharem os seus primeiros créditos"
+msgid "Average download rate"
+msgstr "Taxa média de transferência"
 
-msgid "No results found..."
-msgstr "Sem resultados encontrados..."
+msgid "Average upload rate"
+msgstr "Taxa média de envio"
 
-msgid "Background"
-msgstr "Background"
+msgid "Same IP address count"
+msgstr "Total do mesmo endereço de IP"
 
-msgid "Teams"
-msgstr "Equipas"
+msgid "% of time BOINC client is running"
+msgstr "% de tempo que o cliente BOINC está em execução"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "Os membros do @project, podem formar equipas. Pode pertencer a uma única equipa. Pode juntar-se ou sair de uma equipa a qualquer momento. Para participar de uma equipa, visite a sua página de equipa, e clique em \"Junte-se a esta equipa\". Cada equipa tem um fundador que pode:"
+msgid "Operating system"
+msgstr "Sistema operativo"
 
-msgid "access team members' email addresses"
-msgstr "aceder aos endereços de email dos membros da equipa"
+msgid "Operating system version"
+msgstr "Versão do sistema operativo"
 
-msgid "edit the team's name and description"
-msgstr "editar o nome da equipa e descrição"
+msgid "Measured floating point speed"
+msgstr "FLOP calculado"
 
-msgid "add or remove team admins"
-msgstr "adicionar ou remover administradores da equipa"
+msgid "Measured integer speed"
+msgstr "Velocidade calculada de íntegro"
 
-msgid "remove members from the team"
-msgstr "remover membros da equipa"
+msgid "CPU model"
+msgstr "Modelo da CPU"
 
-msgid "disband a team if it has no members"
-msgstr "acabar com a equipa se esta não tiver membros"
+msgid "Number of processors"
+msgstr "Número de processadores"
 
-msgid "Create a new team"
-msgstr "Criar uma nova equipa"
+msgid "CPU"
+msgstr "CPU"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Se não consegue encontrar uma equipa que seja adequada para si, pode criar uma equipa."
+msgid "Number of times client has contacted server"
+msgstr "Número de vezes que o cliente contactou o servidor"
 
-msgid "You must earn @count more credits!"
-msgstr "Tem de ganhar mais @count créditos!"
+msgid "Last contact"
+msgstr "Último contacto"
 
-msgid "Threads"
-msgstr "Tópicos"
+msgid "Serial number"
+msgstr "Número de série"
 
-msgid "Posts"
-msgstr "Posts"
+msgid "Timezone"
+msgstr "Fuso Horário"
 
-msgid "Last post"
-msgstr "Último post"
+msgid "Platform ID"
+msgstr "Identificação da Plataforma"
 
-msgid "Manage subscriptions"
-msgstr "Gerir subscrições"
+msgid "Task ID"
+msgstr "Identificação da Tarefa"
 
-msgid "Featured"
-msgstr "Destaque"
+msgid "Workunit ID"
+msgstr "Identificação da Unidade de Trabalho"
 
-msgid "Submitted on !datetime"
-msgstr "Submetido em !datetime"
+msgid "Host ID"
+msgstr "Identificação do Anfitrião"
 
-msgid "Comments"
-msgstr "Comentários"
+msgid "Application ID"
+msgstr "Identificação da Aplicação"
 
-msgid "Opinion"
-msgstr "Opinião"
+msgid "Application version"
+msgstr "Versão da aplicação"
 
-msgid "More"
-msgstr "Mais"
+msgid "Claimed credit"
+msgstr "Crédito reivindicado"
 
-msgid "Tasks"
-msgstr "Tarefas"
+msgid "Client state"
+msgstr "Estado do cliente"
 
-msgid "Generic"
-msgstr "Genérico"
+msgid "CPU time"
+msgstr "Tempo da CPU"
 
-msgid "Work"
-msgstr "Trabalho"
+msgid "Run time"
+msgstr "Tempo decorrido"
 
-msgid "School"
-msgstr "Escola"
+msgid "Exit status"
+msgstr "Estado de saída"
 
-msgid "Presets"
-msgstr "Presets"
+msgid "Granted credit"
+msgstr "Crédito concedido"
 
-msgid "Standard"
-msgstr "Padrão"
+msgid "Outcome"
+msgstr "Resultado"
 
-msgid "Maximum"
-msgstr "Máximo"
+msgid "Received time"
+msgstr "Tempo recebido"
 
-msgid "Green"
-msgstr "Verde"
+msgid "Report deadline"
+msgstr "Limite de entrega do relatório"
 
-msgid "Minimum"
-msgstr "Mínimo"
+msgid "Sent"
+msgstr "Enviado"
 
-msgid "Custom"
-msgstr "Personalizado"
+msgid "Server state"
+msgstr "Estado do servidor"
 
-msgid "Update preset"
-msgstr "Actualizar preset"
+msgid "Stderr out"
+msgstr "Stderr out"
 
-msgid "Advanced settings"
-msgstr "Definições avançadas"
+msgid "Validation state"
+msgstr "Estado da validação"
 
-msgid "Processor usage"
-msgstr "Utilização do processador"
+msgid "App ID"
+msgstr "ID da App"
 
-msgid "Run while computer is on battery power?"
-msgstr "Executar enquanto o computador estiver só ligado com a bateria?"
+msgid "Canonical credit"
+msgstr "Crédito canónico"
 
-msgid "Only applies to portable computers"
-msgstr "Aplica-se apenas a portáteis"
+msgid "Canonical result ID"
+msgstr "Identificação do resultado canónico"
 
-msgid "Run while computer is in use?"
-msgstr "Executar quando o computador está em utilização?"
+msgid "Created time"
+msgstr "Hora de criação"
 
-msgid "Run GPU work while computer is in use?"
-msgstr "Executar trabalho na GPU quando o computador estiver a ser utilizado?"
+msgid "Error mask"
+msgstr "Erro na máscara"
 
-msgid "Enforced by version @number"
-msgstr "Forçado pela versão @number"
+msgid "Minimum quorum"
+msgstr "Quórum mínimo"
+
+msgid "Max error tasks"
+msgstr "Máximo de erros nas tarefas"
+
+msgid "Max success tasks"
+msgstr "Máximo de tarefas bem sucedidas"
+
+msgid "Max total tasks"
+msgstr "Máximo de tarefas totais"
+
+msgid "Needs validation"
+msgstr "Necessita de validação"
+
+msgid "Initial replication"
+msgstr "Replicação inicial"
+
+msgid "Target number of results"
+msgstr "Número de resultados do objetivo"
+
+msgid "Application version ID"
+msgstr "Identificação da versão da aplicação"
+
+msgid "Plan class"
+msgstr "Classe do plano"
+
+msgid "Version number"
+msgstr "Número da versão"
+
+msgid "Computer"
+msgstr "Computador"
+
+msgid "App version ID"
+msgstr "Identificação da versão da aplicação"
+
+msgid "Consecutive valid tasks"
+msgstr "Tarefas válidas consecutivas"
+
+msgid "Number of tasks completed"
+msgstr "Número de tarefas concluídas"
+
+msgid "Max tasks per day"
+msgstr "Máximo de tarefas diárias"
+
+msgid "Number of tasks today"
+msgstr "Número de tarefas de hoje"
+
+msgid "Manage subscriptions"
+msgstr "Gerir subscrições"
+
+msgid "Avg credit"
+msgstr "Média de créditos"
+
+msgid "Total credit"
+msgstr "Crédito total"
+
+msgid "More"
+msgstr "Mais"
+
+msgid "Tasks"
+msgstr "Tarefas"
+
+msgid "Computers hidden"
+msgstr "Computadores ocultados"
+
+msgid "This user has chosen not to show information about their computers."
+msgstr "Este utilizador escolheu não mostrar a informação sobre os seus computadores"
+
+msgid "no projects..."
+msgstr "sem projetos..."
+
+msgid "Moderation"
+msgstr "Moderação"
+
+msgid "Unvetted profiles"
+msgstr "Perfis não examinados"
+
+msgid "Inbox"
+msgstr "Caixa de entrada"
+
+msgid "Compose new"
+msgstr "Compor nova"
+
+msgid "Posts contributed"
+msgstr "Artigos contribuídos"
+
+msgid "Friends (@count)"
+msgstr "Amigos (@count)"
+
+msgid "Welcome back!"
+msgstr "Bem-vindo de novo!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home é um programa que utiliza o tempo inativo do seu computador para pesquisar ondas gravitacionais das estrelas de neutrões giratórias (também chamadas de pulsares) utilizando dados do detetor de ondas gravitacional LIGO."
+
+msgid "Learn more"
+msgstr "Saber mais"
+
+msgid "View account"
+msgstr "Ver conta"
+
+msgid "User of the day"
+msgstr "Utilizador do dia"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Mais de 500,000 voluntários e a contar."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Créditos por dia"
+
+msgid "View user profile."
+msgstr "Ver perfil do utilizador."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Perfil a aguardar aprovação do moderador"
+
+msgid "Background"
+msgstr "Fundo"
+
+msgid "Opinion"
+msgstr "Opinião"
+
+msgid "Enter your password to save changes"
+msgstr "Insira a sua palavra-passe para guardar as alterações"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Insira a sua palavra passe atual se está a alterar o seu endereço de e-mail ou palavra-passe"
+
+msgid "BOINC user ID"
+msgstr "Identificação do utilizador BOINC"
+
+msgid "Drupal user ID"
+msgstr "Identificação do utilizador Drupal"
+
+msgid "Account key"
+msgstr "Chave da conta"
+
+msgid "Weak account key"
+msgstr "Chave de conta fraca"
+
+msgid "Cross-project ID"
+msgstr "Identificação de projetos cruzados"
+
+msgid "Change password"
+msgstr "Alterar palavra-passe"
+
+msgid "Presets"
+msgstr "Pré-ajustes"
+
+msgid "Standard"
+msgstr "Padrão"
+
+msgid "Maximum"
+msgstr "Máximo"
+
+msgid "Green"
+msgstr "Verde"
+
+msgid "Minimum"
+msgstr "Mínimo"
+
+msgid "Custom"
+msgstr "Personalizado"
+
+msgid "Update preset"
+msgstr "Atualizar pré-ajustes"
+
+msgid "Advanced settings"
+msgstr "Definições avançadas"
+
+msgid "Processor usage"
+msgstr "Utilização do processador"
+
+msgid "Run while computer is on battery power?"
+msgstr "Executar enquanto o computador estiver a funcionar com a bateria?"
+
+msgid "Only applies to portable computers"
+msgstr "Aplica-se apenas a portáteis"
+
+msgid "Run while computer is in use?"
+msgstr "Executar enquanto o computador estiver em utilização?"
+
+msgid "Run GPU work while computer is in use?"
+msgstr "Executar trabalho de GPU enquanto o computador estiver em utilização?"
 
 msgid "\"In use\" means mouse/keyboard activity in last"
-msgstr "\"Em utilização\" significa actividade do rato/teclado nos últimos"
+msgstr "\"Em utilização\" significa atividade do rato/teclado nos últimos"
 
 msgid "minutes"
 msgstr "minutos"
 
 msgid "Suspend work if no mouse/keyboard activity in last"
-msgstr "Suspender trabalho se não houver actividade do rato/teclado nos útlimos"
+msgstr "Suspender trabalho se não houver atividade do rato/teclado nos últimos"
 
 msgid "Needed to enter low-power mode on some computers"
 msgstr "Necessário para entrar em modo de baixo consumo de energia em alguns computadores"
@@ -527,7 +682,7 @@ msgid "0 means no restriction. Enforced by version @number"
 msgstr "0 significa sem restrições. Forçado pela versão @number"
 
 msgid "Do work only between the hours of:"
-msgstr "Realizar trabalho apenas entre as seguintes horas:"
+msgstr "Realizar trabalho apenas entre as horas:"
 
 msgid "and"
 msgstr "e"
@@ -536,10 +691,10 @@ msgid "No restriction if equal"
 msgstr "Sem restrições se igual"
 
 msgid "Leave tasks in memory while suspended?"
-msgstr "Deixar tarefas em memória enquanto suspensas?"
+msgstr "Deixar as tarefas em memória enquanto suspensas?"
 
 msgid "Suspended tasks will consume swap space if \"yes\""
-msgstr "Tarefas suspensas irão consumir espaço swap se \"sim\""
+msgstr "As tarefas suspensas irão consumir espaço temporário, se \"sim\""
 
 msgid "Switch between tasks every"
 msgstr "Trocar entre tarefas a cada"
@@ -548,7 +703,7 @@ msgid "Recommended: @period minutes"
 msgstr "Recomendado: @period minutos"
 
 msgid "On multiprocessors, use at most"
-msgstr "Em multiprocessadores, usar no máximo"
+msgstr "Em multiprocessadores, utilizar no máximo"
 
 msgid "processors"
 msgstr "processadores"
@@ -560,37 +715,37 @@ msgid "% of the processors"
 msgstr "% dos processadores"
 
 msgid "Use at most"
-msgstr "Usar no máximo"
+msgstr "Utilizar no máximo"
 
 msgid "% of the CPU time"
 msgstr "% do tempo da CPU"
 
 msgid "Can be used to reduce CPU heat"
-msgstr "Pode ser utiliado para reduzir o aquecimento da CPU"
+msgstr "Pode ser utilizado para reduzir o aquecimento da CPU"
 
 msgid "Disk and memory usage"
 msgstr "Disco e utilização de memória"
 
 msgid "Disk: use at most"
-msgstr "Disco: usar no máximo"
+msgstr "Disco: utilizar no máximo"
 
 msgid "Disk: leave free at least"
 msgstr "Disco: deixar livre pelo menos"
 
 msgid "Values smaller than @number are ignored"
-msgstr "Valores inferiores a @number são ignorados"
+msgstr "Os valores inferiores a @number são ignorados"
 
 msgid "% of total"
 msgstr "% do total "
 
 msgid "Tasks checkpoint to disk at most every"
-msgstr "Checkpoints das tarefas em disco no máximo a cada"
+msgstr "Pontos de verificação das tarefas em disco no máximo a cada"
 
 msgid "seconds"
 msgstr "segundos"
 
 msgid "Swap space: use at most"
-msgstr "Espaço temporário : usar no máximo"
+msgstr "Espaço temporário: utilizar no máximo"
 
 msgid "Memory: when computer is in use, use at most"
 msgstr "Memória: quando o computador está em utilização, usar no máximo"
@@ -599,7 +754,7 @@ msgid "Memory: when computer is not in use, use at most"
 msgstr "Memória: quando o computador não está em utilização, usar no máximo"
 
 msgid "Network usage"
-msgstr "Utilização de rede"
+msgstr "Utilização da rede"
 
 msgid "Computer is connected to the Internet about every"
 msgstr "O computador liga-se à Internet a cada"
@@ -644,61 +799,38 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "Marque aqui APENAS se o seu fornecedor de Internet modifica os ficheiros de imagem (por exemplo, o UMTS faz isto). Saltar a verificação reduz a segurança do BOINC."
 
-msgid "Show comparison view"
-msgstr "Ver vista comparativa"
-
-msgid "Resource settings"
-msgstr "Configurações dos recursos"
-
-msgid "Resource share"
-msgstr "Quota de recursos"
-
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Determina a proporção de recursos do seu computador, atribuído a este projecto. Exemplo: se participar em dois projectos BOINC com ações de recursos de 100 e 200, o primeiro terá 1/3 de seus recursos e o segunda terá 2/3."
-
-msgid "Use CPU"
-msgstr "Utilizar CPU"
-
-msgid "Use NVIDIA GPU"
-msgstr "Utilizar GPU NVIDIA"
+msgid "search"
+msgstr "pesquisar"
 
-msgid "Use ATI GPU"
-msgstr "Utilizar GPU ATI"
+msgid "What is @this_project?"
+msgstr "O que é @this_project?"
 
-msgid "Use INTEL GPU"
-msgstr "Utilizar CPU INTEL"
+msgid "Login"
+msgstr "Iniciar Sessão"
 
-msgid "Beta settings"
-msgstr "Definições beta"
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Run test applications?"
-msgstr "Executar aplicações de teste?"
+msgid "Project"
+msgstr "Projeto"
 
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "isto irá nos ajudar a desenvolver aplicações, mas poderá fazer com que os trabalhos falhem no seu computador"
+msgid "No @type tasks"
+msgstr "Não existem tarefas para @type"
 
-msgid "Default set"
-msgstr "Definições padrão"
+msgid "There are no tasks of this type on record"
+msgstr "Não existem tarefas deste tipo no registo"
 
-msgid "Set used for new computers"
-msgstr "As definições a utilizar em novos computadores"
+msgid "Details"
+msgstr "Detalhes"
 
-msgid "Merge"
-msgstr "Fundir"
+msgid "Password"
+msgstr "Palavra-passe"
 
-msgid "Delete"
-msgstr "Eliminar"
+msgid "Enter the password that accompanies your username."
+msgstr "Insira a palavra-passe que acompanha o seu nome de utilizador."
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Isto irá eliminar o @id o anfitrição da sua conta para sempre. Tem a certeza DISTO?"
+msgid "Request new password"
+msgstr "Solicitar nova palavra-passe"
 
 msgid "Mark all topics read"
 msgstr "Marcar todos os tópicos como lidos"
@@ -709,163 +841,168 @@ msgstr "Marcar todos os fóruns como lidos"
 msgid ""
 "CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
 "administrator if this problem persists."
-msgstr "CAPTCHA erro de validação: ID de ssesão CAPTCHA, desconhecido. Se o problema persistir, entre em contato com o administrador do site."
+msgstr "Erro de validação CAPTCHA: identificação de sessão CAPTCHA desconhecida. Se o problema persistir, contacte o administrador do site."
 
 msgid "The answer you entered for the CAPTCHA was not correct."
-msgstr "A resposta introduzida, para a validação do CAPTCHA, não está correcta."
+msgstr "A resposta inserida do CAPTCHA não está correta."
 
 msgid "Access denied. You must login to view this page."
-msgstr "Acesso negado. Tem de fazer login para ver esta página."
+msgstr "Acesso negado. Tem de iniciar a sessão para ver esta página."
 
 msgid "You are not authorized to access this page."
 msgstr "Não tem autorização para aceder a esta página."
 
 msgid "Disable rich-text"
-msgstr "Desabilitar texto rico"
+msgstr "Desativar texto rico"
 
 msgid "Enable rich-text"
-msgstr "Habilitar texto rico"
+msgstr "Ativar texto rico"
 
-msgid "View user profile."
-msgstr "Ver perfil de utilizador."
+msgid "Teams"
+msgstr "Equipas"
 
-msgid "BBcode help"
-msgstr "Ajuda de BBcode"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "Os membros do @project podem formar equipas. Você pode pertencer a uma única equipa. Pode juntar-se ou sair de uma equipa a qualquer momento. Para aderir a uma equipa, visite a sua página de equipa, e clique em \"Aderir a esta equipa\". Cada equipa tem um fundador que pode:"
 
-msgid "Post comment"
-msgstr "Colocar comentário"
+msgid "access team members' email addresses"
+msgstr "aceder aos endereços de e-mail dos membros da equipa"
 
-msgid "No @type tasks"
-msgstr "Não existem tarefas para @type"
+msgid "edit the team's name and description"
+msgstr "editar o nome da equipa e descrição"
 
-msgid "There are no tasks of this type on record"
-msgstr "Não existem tarefas deste tipo no registo"
+msgid "add or remove team admins"
+msgstr "adicionar ou remover administradores da equipa"
 
-msgid "Clear"
-msgstr "Limpar"
+msgid "remove members from the team"
+msgstr "remove membros da equipa"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Irá remover todas as configurações e preferências do utilizador @name. Pretende continuar?"
+msgid "disband a team if it has no members"
+msgstr "terminar a equipa se esta não tiver membros"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Estas aplicam-se a todos os projectos BOINC em que participa."
+msgid "Search teams"
+msgstr "Pesquisar equipas"
+
+msgid "Create a new team"
+msgstr "Criar uma nova equipa"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "Em computadores com projectos múltiplos anexados, as preferências modificadas mais recentemente serão usadas."
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Se não consegue encontrar uma equipa que seja adequada para si, pode criar uma equipa."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "As preferências foram modificadas pela última vez: @mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "Tem de ganhar mais 1 crédito!"
 
-msgid "Combined preferences"
-msgstr "Preferências combinadas"
+msgid "@count million ops/sec"
+msgstr "@count milhões de ops/seg"
 
-msgid "Switch View"
-msgstr "Mudar Vista"
+msgid "@rate KiB/sec"
+msgstr "@taxa KiB/seg"
 
-msgid "every"
-msgstr "a cada"
+msgid "@count days"
+msgstr "@count dias"
 
-msgid "Edit"
-msgstr "Editar"
+msgid "Stderr output"
+msgstr "Stderr output"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Irá remover todas as configurações do utilizador \"@name\". Pretende continuar?"
+msgid "Email address"
+msgstr "Endereço de e-mail"
 
-msgid "Add"
-msgstr "Adicionar"
+msgid "Enter your @s email address."
+msgstr "Insira o seu @s endereço de e-mail."
 
-msgid "General settings"
-msgstr "Definições gerais"
+msgid "Log in"
+msgstr "Entrar"
 
-msgid "Time zone"
-msgstr "Fuso horário"
+msgid "Sorry, unrecognized email address or password."
+msgstr "Pedimos desculpa, endereço de e-mail ou palavra-passe desconhecida/s."
 
-msgid "Notification settings"
-msgstr "Definições de notificações"
+msgid "Have you forgotten your password?"
+msgstr "Esqueceu-se da palavra-passe?"
 
-msgid "Receive email notification for private messages?"
-msgstr "Receber notificações de e-mail para mensagens privadas?"
+msgid "No results found..."
+msgstr "Sem resultados encontrados..."
 
-msgid "Receive email notification for friend requests?"
-msgstr "Receber notificações de e-mail para pedidos de amizade?"
+msgid "Anonymous"
+msgstr "Anónimo"
 
-msgid "Language settings"
-msgstr "Definições de idioma"
+msgid "Forgot password"
+msgstr "Esqueceu-se da palavra-passe"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "Este é o idioma padrão desta conta de e-mails e idioma pré-definido para a apresentação do site."
+msgid "authenticator-based login"
+msgstr "ID de autenticação"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "Se tiver um <a href=\"@gravatar-check\">Gravatar válido</a> associado ao seu endereço de email, vai ser usado como imagem de utilizador."
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Introduza o seu endereço de e-mail para receber instruções para repor a sua palavra-passe (ou utilize o !authenticator_login)."
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "O seu Gravatar não será mostrado se fez o upload de uma imagem de um utilizador."
+msgid "Send"
+msgstr "Enviar"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "Se tiver um <a href=\"@gravatar-check\">Gravatar válido</a> associado ao seu endereço de email, use-o como imagem de utilizador."
+msgid "Submitted by !username on !datetime"
+msgstr "Submetido pelo !username em !datetime"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "O gravatar não será mostrador se for feito o upload de um avatar."
+msgid "Send message"
+msgstr "Enviar mensagem"
 
-msgid "Avatar settings"
-msgstr "Definições de avatar"
+msgid "Add as friend"
+msgstr "Adicionar como amigo"
 
-msgid "This is not available until your profile is set up."
-msgstr "Indisponível até que preencha o seu perfil."
+msgid "Website"
+msgstr "Website"
 
-msgid "Create a profile"
-msgstr "Criar um perfil"
+msgid "Team"
+msgstr "Equipa"
 
-msgid "Upload an avatar"
-msgstr "Fazer upload de avatar"
+msgid "Create new team"
+msgstr "Criar nova equipa"
 
-msgid "Forum settings"
-msgstr "Definições do Fórum"
+msgid "Search"
+msgstr "Pesquisar"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "Nos tópicos de discussão, mostrar no máximo, @comments_per_page"
+msgid "Total credits"
+msgstr "Créditos totais"
 
-msgid "comments per page"
-msgstr "comentários por página"
+msgid "Recent avg credits"
+msgstr "Média de créditos recentes"
 
-msgid "Sort comments in discussions"
-msgstr "Ordenar comentários nas discussões"
+msgid "Type"
+msgstr "Tipo"
 
-msgid "Newest post first"
-msgstr "Posts mais recentes primeiro"
+msgid "New members in last day"
+msgstr "Novos membros no último dia"
 
-msgid "Oldest post first"
-msgstr "Post mais antigo primeiro"
+msgid "Total members"
+msgstr "Total de membros"
 
-msgid "Signature"
-msgstr "Assinatura"
+msgid "Active members"
+msgstr "Membros activos"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "A sua assinatura será mostrada publicamente no fim dos seus comentários."
+msgid "Members with credit"
+msgstr "Membros com créditos"
 
-msgid "Hide signatures in forums"
-msgstr "Ocultar assinaturas nos fóruns"
+msgid "Web site"
+msgstr "Website"
 
-msgid "Privacy settings"
-msgstr "Definições de privacidade"
+msgid "Description"
+msgstr "Descrição"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Concorda em receber e-mails, do @project e da sua equipa (caso exista)?"
+msgid "BBcode help"
+msgstr "Ajuda de BBcode"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Deve o @projecto mostrar os seus computadores  neste website?"
+msgid "Post comment"
+msgstr "Colocar comentário"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Casa"
+
+msgid "The latest news from the @site_name project"
+msgstr "As últimas notícias do projeto @site_name"
 
 msgid "Hide"
 msgstr "Ocultar"
@@ -888,606 +1025,421 @@ msgstr "Marcar este tópico como sticky"
 msgid "moderation"
 msgstr "moderação"
 
-msgid "Post new comment"
-msgstr "Colocar novo comentário"
-
-msgid "You must earn 1 more credit!"
-msgstr "Tem de ganhar mais 1 crédito!"
-
-msgid "Joined"
-msgstr "Juntou-se"
+msgid "Reply"
+msgstr "Responder"
 
-msgid "Credit"
-msgstr "Créditos"
+msgid "Reply to this comment"
+msgstr "Responder a este comentário"
 
-msgid "RAC"
-msgstr "RAC"
+msgid "Quote"
+msgstr "Citar"
 
-msgid "Join team"
-msgstr "Juntar-se a equipa"
+msgid "Reply to this comment with quote"
+msgstr "Responder a este comentário com citação"
 
-msgid "Click here to become a member of @this_team"
-msgstr "Clique aqui para se tornar membro da @this_team"
+msgid "Edit"
+msgstr "Editar"
 
-msgid "Join this team"
-msgstr "Juntar-se a esta equipa"
+msgid "Edit this comment"
+msgstr "Editar este comentário"
 
-msgid "Manage team"
-msgstr "Gerir equipa"
+msgid "Delete"
+msgstr "Apagar"
 
-msgid "View member list"
-msgstr "Ver lista de membros"
+msgid "Delete this comment"
+msgstr "Apagar este comentário"
 
-msgid "Member names and emails"
-msgstr "Nomes e e-mails do membro"
+msgid "Hide this comment"
+msgstr "Ocultar este comentário"
 
-msgid "View change history"
-msgstr "Ver história de alterações"
+msgid "Message @id"
+msgstr "@id da Mensagem"
 
-msgid "See member activity"
-msgstr "Ver actividade do membro"
+msgid "Convert"
+msgstr "Converter"
 
-msgid "Manage team message board"
-msgstr "Gerir o quadro de mensagens, da equipa"
+msgid "Convert this comment to a new topic"
+msgstr "Converter este comentário para um novo tópico"
 
-msgid "Create or manage message board"
-msgstr "Criar ou gerir fórum de equipa"
+msgid "message @id"
+msgstr "@id da mensagem"
 
-msgid "Remove members"
-msgstr "Remover membros"
+msgid " in response to !parent"
+msgstr "em resposta ao !parent"
 
-msgid "Change founder"
-msgstr "Mudar fundador"
+msgid "Post new comment"
+msgstr "Colocar novo comentário"
 
-msgid "Manage team admins"
-msgstr "Gerir administradores de equipa"
+msgid "Comments"
+msgstr "Comentários"
 
-msgid "Edit team info"
-msgstr "Editar informações da equipa"
+msgid "discuss"
+msgstr "debater"
 
-msgid "Remove team"
-msgstr "Remover equipa"
+msgid "n/a"
+msgstr "n/a"
 
-msgid "Team forum"
-msgstr "Fórum da equipa"
+msgid "@time ago"
+msgstr "@time atrás"
 
-msgid "A discussion forum has been set up for team members."
-msgstr "O fórum de discussão foi configurado para os membros da equipa"
+msgid "Threads"
+msgstr "Tópicos"
 
-msgid "Enter forum"
-msgstr "Entrar no fórum"
+msgid "Posts"
+msgstr "Posts"
 
-msgid "Leave team"
-msgstr "Deixar equipa"
+msgid "Last post"
+msgstr "Último post"
 
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Clique aqui para revogar a sua associação com @this_team"
+msgid ""
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Por favor seja responsável no que escreve e não crie mensagens ofensivas ou insultuosas. Mensagens ofensivas podem ser apagadas pelos moderadores do fórum sem aviso. Não responda a mensagens ofensivas. Clique no botão \"reportar\" na parte inferior da mensagem para chamar à atenção dos moderadores."
 
-msgid "Leave this team"
-msgstr "Deixar esta equipa"
+msgid "this project"
+msgstr "este projeto"
 
-msgid "Edit message board"
-msgstr "Editar o quadro de mensagens"
+msgid ""
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Também pedimos que mantenha toda a discussão sobre os fóruns relacionadas com @project ou do BOINC com a pequena exceção do fórum da ciência onde é livre para discutir qualquer assunto relevante para a ciência subjacente. Os participantes interessados em discussões mais amplas devem utilizar os fóruns não oficiais para o @project."
 
-msgid "Message board title"
-msgstr "Título do fórum"
+msgid "These message boards now support BBCode tags only."
+msgstr "Estes fóruns de discussão suportam agora apenas as etiquetas BBCode."
 
-msgid "Text only, no HTML tags"
-msgstr "Textp apenas, sem tags HTML"
+msgid "Featured"
+msgstr "Destaque"
 
-msgid "Minimum time between posts"
-msgstr "Tempo minímo entre tópicos"
+msgid "Locked"
+msgstr "Bloqueado"
 
-msgid "Seconds"
-msgstr "Segundos"
+msgid "Submitted on !datetime"
+msgstr "Submetido em !datetime"
 
-msgid "Minimum total credit to post"
-msgstr "Total de créditos minímos para postar"
-
-msgid "Minimum avg credit to post"
-msgstr "Créditos mínimos para poder postar"
-
-msgid "Allow public to read board?"
-msgstr "Permitir abrir à leitura pública, do fórum?"
-
-msgid "Save message board"
-msgstr "Guardar fórum"
-
-msgid "About message boards"
-msgstr "Sobre fóruns"
-
-msgid "This is a team-only message board"
-msgstr "Este é um fórum, disponível somente para membros da equipa"
-
-msgid "Only members may post"
-msgstr "Apenas membros podem colocar tópicos"
-
-msgid "Only members may read (optional)"
-msgstr "Apenas membros podem ler (opcional)"
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "O Fundador e Administradores de Equipa tem privilégios de moderação"
-
-msgid "Changing the team founder"
-msgstr "Alterando o fundador de equipa"
-
-msgid "Notes about changes in foundership:"
-msgstr "Notas sobre as mudanças na liderança:"
-
-msgid "Any member of the team is eligible"
-msgstr "Qualquer membro da equipa é elegível"
-
-msgid "Current founder becomes a normal user"
-msgstr "O fundador actual tornou-se um utilizador normal"
-
-msgid "Foundership can be requested by team members:"
-msgstr "O Fundador pode ser solicitado pelos membros da equipa:"
-
-msgid "One request is allowed at a time"
-msgstr "Apenas um pedido é permitido de cada vez"
-
-msgid "It must be 60 days since any previous request"
-msgstr "Tem de ter passado 60 dias desde pedidos anteriores"
-
-msgid "Any active request must be older than 90 days"
-msgstr "Qualquer pedido activo deve ter mais de 90 dias"
-
-msgid "Current founder has 60 days to respond to a request"
-msgstr "O fundador actual tem 60 dias para responder ao pedido"
-
-msgid "Add team admin"
-msgstr "Adicionar administrador de equipa"
-
-msgid "Enter email address"
-msgstr "Insira endereço de e-mail"
-
-msgid "Current team admins"
-msgstr "Administradores actuais da equipa"
-
-msgid "About team admins"
-msgstr "Sobre os administradores da equipa"
-
-msgid "Team admins can:"
-msgstr "Administradores da equipa podem:"
-
-msgid "Edit team information"
-msgstr "Editar informações da equipa"
-
-msgid "View the team's join / quit history"
-msgstr "Visualizar o histórico de entradas / saídas da equipa"
-
-msgid "Moderate the team forum"
-msgstr "Moderar o fórum da equipa"
-
-msgid "Remove members from the team"
-msgstr "Remover membros da equipa"
-
-msgid "Disband a team if it has no members"
-msgstr "Acabar com equipa se esta não tiver membros"
-
-msgid "Team admins cannot:"
-msgstr "Administradores de equipa não podem:"
-
-msgid "Change the team founder"
-msgstr "Mudar o fundador da equipa"
-
-msgid "Add / Remove team admins"
-msgstr "Adicionar / Remover administradores de equipa"
+msgid "Computers pending"
+msgstr "Computadores pendentes"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Se um administrador de equipa sair da equipa, deixará de ser um administrador de equipa. Recomendamos que selecione apenas pessoas que conheça e confie"
-
-msgid "Choose type"
-msgstr "Escolha tipo"
-
-msgid "Team name"
-msgstr "Nome da equipa"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "Nome da equipa -- versão HTML (opcional)"
-
-msgid "You may use limited HTML tags"
-msgstr "Pode usar tags HTML limitadas"
-
-msgid "Team website (optional)"
-msgstr "Website da equipa (opcional)"
-
-msgid "Displayed on the team's page"
-msgstr "Mostrado na página da equipa"
-
-msgid "Type of team"
-msgstr "Tipo de equipa"
-
-msgid "Accept new members?"
-msgstr "Aceitar novos membros?"
-
-msgid "Description of team"
-msgstr "Descrição da equipa"
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Este utilizador não tem ainda computadores associados. Os computadores serão mostrados quando ganharem os seus primeiros créditos"
 
-msgid "Create new team"
-msgstr "Criar nova equipa"
+msgid "Show IP address"
+msgstr "Mostrar endereço IP"
 
-msgid "Create a team"
-msgstr "Criar uma equipa"
+msgid "Download the desktop software"
+msgstr "Transferir o software"
 
-msgid "Save team"
-msgstr "Guardar equipa"
+msgid "Run the installer"
+msgstr "Executar a instalação"
 
-msgid "Create team message board"
-msgstr "Criar um fórum, para a equipa"
+msgid "hours"
+msgstr "horas"
 
-msgid "Create message board"
-msgstr "Criar um fórum"
+msgid "When prompted enter @siteurl"
+msgstr "Quando pedido, insira o @siteurl"
 
-msgid "You may create a message board for use by @team"
-msgstr "Pode criar um fórum, para utilização da equipa @team"
+msgid "Merge"
+msgstr "Fundir"
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Por favor, defina o crédito mínimo que um utilizador é obrigado a ter, a fim de escrever neste fórum."
-
-msgid "Post new topic"
-msgstr "Colocar novo tópico"
-
-msgid "Anonymous"
-msgstr "Anónimo"
-
-msgid "Unpublished"
-msgstr "Não publicado"
-
-msgid "parent removed"
-msgstr "parentalidade removida"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "Pedimos desculpa, endereço de e-mail ou palavra-passe desconhecido/s"
-
-msgid "Have you forgotten your password?"
-msgstr "Esqueceu-se da palavra-passe?"
-
-msgid "Id"
-msgstr "Id"
-
-msgid "Recent average credit"
-msgstr "Média de créditos recentes"
-
-msgid "Members"
-msgstr "Membros"
-
-msgid "Total Credit"
-msgstr "Créditos Totais"
-
-msgid "User ID"
-msgstr "ID do utilizador"
-
-msgid "User"
-msgstr "Utilizador"
-
-msgid "Admin since"
-msgstr "Administrador desde"
-
-msgid "Team ID"
-msgstr "ID da Equipa"
-
-msgid "User joined"
-msgstr "Utilizador juntou-se"
-
-msgid "Timestamp"
-msgstr "Timestamp"
-
-msgid "Account Key"
-msgstr "Chave da conta"
-
-msgid "CPID"
-msgstr "CPID"
-
-msgid "Email Address"
-msgstr "Endereço de Email"
-
-msgid "Password Hash"
-msgstr "Hash da Palavra-passe"
-
-msgid "Postal Code"
-msgstr "Código Postal"
-
-msgid "Send Email"
-msgstr "Enviar E-mail"
-
-msgid "Show Hosts"
-msgstr "Mostrar Anfitriões"
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Computer ID"
-msgstr "ID do Computador"
-
-msgid "Location"
-msgstr "Localização"
-
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Enquanto o BOINC está em execução, % de tempo de trabalho permitido"
-
-msgid "Average turnaround time"
-msgstr "Tempo de resposta médio"
-
-msgid "Created"
-msgstr "Criado"
-
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Enquanto o BOINC está em execução, % de tempo que o computador anfitrião tem conexão à Internet"
-
-msgid "Average CPU efficiency"
-msgstr "Eficiência média da CPU"
-
-msgid "Free disk space"
-msgstr "Espaço livre no disco"
-
-msgid "Total disk space"
-msgstr "Espaço total em disco"
-
-msgid "Task duration correction factor"
-msgstr "Duração do factor de correcção da tarefa"
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Isto irá eliminar o @id do anfitrião da sua conta para sempre. Tem a certeza DISTO?"
 
-msgid "Avg. credit"
-msgstr "Média de créditos"
+msgid "Post topic"
+msgstr "Publicar tópico"
 
-msgid "External IP address"
-msgstr "Endereço de IP externo"
+msgid "Leave team"
+msgstr "Deixar equipa"
 
-msgid "Cross project ID"
-msgstr "ID do projecto"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Clique aqui para revogar a sua associação com @this_team"
 
-msgid "Last IP address"
-msgstr "Último endereço IP"
+msgid "Leave this team"
+msgstr "Deixar esta equipa"
 
-msgid "Cache"
-msgstr "Cache"
+msgid "Request foundership"
+msgstr "Pedir liderança"
 
-msgid "Memory"
-msgstr "Memória"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Se o fundador da equipa não estiver ativo e quiser assumir o seu papel de fundador, clique abaixo para pedir a liderança da @this_team. "
 
-msgid "Swap space"
-msgstr "Espaço temporário"
+msgid "Initiate request"
+msgstr "Iniciar pedido"
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "Cota diária máxima de WU por CPU"
+msgid "No active computers"
+msgstr "Sem computadores ativos"
 
-msgid "Average download rate"
-msgstr "Taxa média de transferência"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Este utilizador não tem computadores que tenham estado ativos nos últimos 30 dias."
 
-msgid "Average upload rate"
-msgstr "Taxa média de upload"
+msgid "Clear"
+msgstr "Limpar"
 
-msgid "Same IP address count"
-msgstr "Total do mesmo endereço de IP"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Irá remover todas as configurações e preferências do utilizador @name. Pretende continuar?"
 
-msgid "% of time BOINC client is running"
-msgstr "% de tempo que o cliente BOINC está em execução"
+msgid "Your community preferences have been updated."
+msgstr "As suas preferências de comunidade foram atualizadas."
 
-msgid "Operating system"
-msgstr "Sistema operativo"
+msgid "Combined preferences"
+msgstr "Preferências combinadas"
 
-msgid "Operating system version"
-msgstr "Versão do sistema operativo"
+msgid "Switch View"
+msgstr "Mudar Vista"
 
-msgid "Measured floating point speed"
-msgstr "FLOP calculado"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Irá remover todas as suas configurações do \"@name\". Pretende continuar?"
 
-msgid "Measured integer speed"
-msgstr "Velocidade calculada de inteiros"
+msgid "Approve profile"
+msgstr "Aprovar perfil"
 
-msgid "CPU model"
-msgstr "Modelo da CPU"
+msgid "Approve this profile content"
+msgstr "Aprovar o conteúdo deste perfil"
 
-msgid "Number of processors"
-msgstr "Número de processadores"
+msgid "Reject this profile content"
+msgstr "Rejeitar o conteúdo deste perfil"
 
-msgid "CPU"
-msgstr "CPU"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Estas aplicam-se a todos os projetos BOINC em que participa."
 
-msgid "Number of times client has contacted server"
-msgstr "Número de vezes que o cliente contactou o servidor"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Em computadores com projetos múltiplos anexados, as preferências modificadas mais recentemente serão utilizadas."
 
-msgid "Last contact"
-msgstr "Último contacto"
+msgid "Preferences last modified: @mod_time"
+msgstr "Preferências modificadas pela última vez: @mod_time"
 
-msgid "Serial number"
-msgstr "Número de série"
+msgid "every"
+msgstr "a cada"
 
-msgid "Timezone"
-msgstr "Fuso Horário"
+msgid "Add"
+msgstr "Adicionar"
 
-msgid "Platform ID"
-msgstr "ID da Plataforma"
+msgid "My team"
+msgstr "A minha equipa"
 
-msgid "Task ID"
-msgstr "ID da Tarefa"
+msgid "You are a member of @team."
+msgstr "É membro de @team"
 
-msgid "Workunit ID"
-msgstr "ID da Unidade de Trabalho"
+msgid "View my team"
+msgstr "Ver a minha equipa"
 
-msgid "Host ID"
-msgstr "ID do Anfitrião"
+msgid "Manage team"
+msgstr "Gerir equipa"
 
-msgid "Application ID"
-msgstr "ID da Aplicação"
+msgid "View member list"
+msgstr "Ver lista de membros"
 
-msgid "Application version"
-msgstr "Versão da aplicação"
+msgid "Member names and emails"
+msgstr "Nomes e e-mails dos membros"
 
-msgid "Claimed credit"
-msgstr "Crédito reivindicado"
+msgid "View change history"
+msgstr "Ver história de alterações"
 
-msgid "Client state"
-msgstr "Estado do cliente"
+msgid "See member activity"
+msgstr "Ver actividade do membro"
 
-msgid "CPU time"
-msgstr "Tempo da CPU"
+msgid "Manage team message board"
+msgstr "Gerir o fórum de discussão da equipa"
 
-msgid "Run time"
-msgstr "Tempo decorrido"
+msgid "Create or manage message board"
+msgstr "Criar ou gerir o fórum de discussão da equipa"
 
-msgid "Exit status"
-msgstr "Estado de saída"
+msgid "Remove members"
+msgstr "Remover membros"
 
-msgid "Granted credit"
-msgstr "Crédito concedido"
+msgid "Change founder"
+msgstr "Mudar fundador"
 
-msgid "Outcome"
-msgstr "Resultado"
+msgid "Manage team admins"
+msgstr "Gerir administradores de equipa"
 
-msgid "Received time"
-msgstr "Hora recebida"
+msgid "Edit team info"
+msgstr "Editar informações da equipa"
 
-msgid "Report deadline"
-msgstr "Reportar data limite de entrega"
+msgid "Remove team"
+msgstr "Remover equipa"
 
-msgid "Sent"
-msgstr "Enviado"
+msgid "Team forum"
+msgstr "Fórum da equipa"
 
-msgid "Server state"
-msgstr "Estado do servidor"
+msgid "A discussion forum has been set up for team members."
+msgstr "O fórum de discussão foi configurado para os membros da equipa"
 
-msgid "Stderr out"
-msgstr "Stderr out"
+msgid "Enter forum"
+msgstr "Entrar no fórum"
 
-msgid "Validation state"
-msgstr "Estado da validação"
+msgid "Join team"
+msgstr "Aderir à equipa"
 
-msgid "App ID"
-msgstr "App ID"
+msgid "Click here to become a member of @this_team"
+msgstr "Clique aqui para se tornar membro da @this_team"
 
-msgid "Canonical credit"
-msgstr "Crédito canônico"
+msgid "Join this team"
+msgstr "Aderir a esta equipa"
 
-msgid "Canonical result ID"
-msgstr "ID do resultado canônico"
+msgid "Choose type"
+msgstr "Escolha tipo"
 
-msgid "Created time"
-msgstr "Hora de criação"
+msgid "Team name"
+msgstr "Nome da equipa"
 
-msgid "Error mask"
-msgstr "Erro na máscara"
+msgid "Text only, no HTML tags"
+msgstr "Texto apenas, sem tags HTML"
 
-msgid "Minimum quorum"
-msgstr "Quorum mínimo"
+msgid "Team name -- HTML version (optional)"
+msgstr "Nome da equipa -- versão HTML (opcional)"
 
-msgid "Max error tasks"
-msgstr "Máximo de erros nas tarefas"
+msgid "You may use limited HTML tags"
+msgstr "Pode usar tags HTML limitadas"
 
-msgid "Max success tasks"
-msgstr "Máximo de tarefas bem sucedidas"
+msgid "Team website (optional)"
+msgstr "Website da equipa (opcional)"
 
-msgid "Max total tasks"
-msgstr "Máximo de tarefas totais"
+msgid "Displayed on the team's page"
+msgstr "Mostrado na página da equipa"
 
-msgid "Needs validation"
-msgstr "Necessita de validação"
+msgid "Type of team"
+msgstr "Tipo de equipa"
 
-msgid "Initial replication"
-msgstr "Replicação inicial"
+msgid "Accept new members?"
+msgstr "Aceitar novos membros?"
 
-msgid "Target number of results"
-msgstr "Meta do número de reultados"
+msgid "Description of team"
+msgstr "Descrição da equipa"
 
-msgid "Application version ID"
-msgstr "ID da Versão da aplicação"
+msgid "Create a team"
+msgstr "Criar uma equipa"
 
-msgid "Plan class"
-msgstr "Classe do plano"
+msgid "Save team"
+msgstr "Guardar equipa"
 
-msgid "Version number"
-msgstr "Número da versão"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Se já executa o BOINC, seleccione<i>Adicionar\nProjeto</i>."
 
-msgid "Computer"
-msgstr "Computador"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Se estiver a executar uma versão do BOINC em linha de comandos, \nprimeiro use o software BOINC Manager (noutra localização, caso necessário) para criar uma\numa conta neste projeto, em seguida, use essa conta para se ligar à versão da linha de comandos."
 
-msgid "App version ID"
-msgstr "ID da versão da app"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Se está a executar uma versão do BOINC pré-5.0, por favor \natualize-o para uma versão mais recente para criar uma conta \nneste projeto."
 
-msgid "Consecutive valid tasks"
-msgstr "Tarefas válidas consecutivas"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Se esqueceu o endereço de e-mail da sua conta, ou não consegue receber e-mails nessa conta:"
 
-msgid "Number of tasks completed"
-msgstr "Número de tarefas completas"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Se tiver executado o BOINC numa determinada conta, poderá ainda aceder. Veja como:"
 
-msgid "Max tasks per day"
-msgstr "Máximo de tarefas por dia"
+msgid "BOINC documentation"
+msgstr "Documentação do BOINC"
 
-msgid "Number of tasks today"
-msgstr "Número de tarefas hoje"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Vá ao directório de dados do BOINC no seu computador (ver !boinc_wiki para o ajudar a encontrar esta pasta)."
 
-msgid "Show IP address"
-msgstr "Mostrar endereço IP"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Encontre o seu ficheiro de conta para este projeto; terá um nome como %file (onde o URL do projecto é %url)."
 
-msgid "hours"
-msgstr "horas"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Abra o ficheiro num editor de texto como o Notepad. Irá ver qualquer coisa como:"
 
-msgid "@count million ops/sec"
-msgstr "@count milhões de ops/seg"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Selecione e Copie a string entre &It;autenticador> e &It;/autenticador&get; (%auth no exemplo abaixo)."
 
-msgid "@rate KiB/sec"
-msgstr "@taxa KiB/seg"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Colar a string no campo abaixo e, carregar em OK."
 
-msgid "@count days"
-msgstr "@count dias"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Será agora feito o login na sua conta; atualizar o e-mail e palavra-passe da sua conta."
 
-msgid "Remove friend"
-msgstr "Remover amigo"
+msgid "Log in with authenticator"
+msgstr "fazer login com o autenticador"
 
-msgid "Ban user"
-msgstr "Banir utilizador"
+msgid "OK"
+msgstr "OK"
 
-msgid "Add as friend"
-msgstr "Adicionar como amigo"
+msgid "Post new topic"
+msgstr "Colocar novo tópico"
 
-msgid "Team"
-msgstr "Equipa"
+msgid "Create team message board"
+msgstr "Criar um fórum de discussão para a equipa"
 
-msgid "Reply"
-msgstr "Responder"
+msgid "Message board title"
+msgstr "Título do fórum de discussão"
 
-msgid "Reply to this comment"
-msgstr "Responder a este comentário"
+msgid "Minimum time between posts"
+msgstr "Tempo mínimo entre tópicos"
 
-msgid "Quote"
-msgstr "Citar"
+msgid "Seconds"
+msgstr "Segundos"
 
-msgid "Reply to this comment with quote"
-msgstr "Responder a este comentário com citação"
+msgid "Minimum total credit to post"
+msgstr "Total de créditos mínimos para postar "
 
-msgid "Edit this comment"
-msgstr "Editar este comentário"
+msgid "Minimum avg credit to post"
+msgstr "Créditos mínimos para poder postar"
 
-msgid "Delete this comment"
-msgstr "Apagar este comentário"
+msgid "Allow public to read board?"
+msgstr "Permitir que o público leia o fórum?"
 
-msgid "Hide this comment"
-msgstr "Ocultar este comentário"
+msgid "Create message board"
+msgstr "Criar fórum de discussão"
 
-msgid "Convert"
-msgstr "Converter"
+msgid "About message boards"
+msgstr "Sobre os fóruns de discussão"
 
-msgid "Convert this comment to a new topic"
-msgstr "Converter este comentário para um novo tópico"
+msgid "You may create a message board for use by @team"
+msgstr "Pode criar um fórum, para utilização da equipa @team"
 
-msgid "Details"
-msgstr "Detalhes"
+msgid "Only members may post"
+msgstr "Apenas membros podem colocar tópicos"
 
-msgid "@ip_address (same the last @count times)"
-msgstr "@ip_address (o mesmo total @count)"
+msgid "Only members may read (optional)"
+msgstr "Apenas membros podem ler (opcional)"
 
-msgid "commented on"
-msgstr "comentado em"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "O Fundador & Administradores de Equipa tem privilégios de moderação"
 
-msgid "Make unsticky"
-msgstr "Marcar como não sticky"
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (o mesmo que das últimas @count)"
 
-msgid "Remove sticky status from this topic"
-msgstr "Remover o status definido para este tópico"
+msgid "Revise or post comment"
+msgstr "Rever ou publicar comentário"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1497,326 +1449,309 @@ msgstr "Por vezes o BOINC assigna identidades separadas para o mesmo computador
 msgid ""
 "Check the computers that are the same as @name (created on @date at @time "
 "with computer ID @id)"
-msgstr "Verifique os computadores que são idênticos a @name (criado em @date às @time com o ID @id)"
+msgstr "Verifique os computadores que são idênticos a @name (criado em @date às @time com o ID de computador @id)"
 
 msgid "Computer @old_id has been merged successfully into @id."
-msgstr "O antigo ID do computador @old_id, foi migrado com sucesso para o novo ID @id."
-
-msgid "started discussion"
-msgstr "Iniciar uma discussão"
-
-msgid "posted"
-msgstr "colocado"
+msgstr "O computador @old_id foi migrado com sucesso para @id."
 
-msgid "Minimum value not met for @field"
-msgstr "O valor mínimo do campo @field, não foi atingido"
+msgid "parent removed"
+msgstr "parentalidade removida"
 
 msgid "Remove"
 msgstr "Remover"
 
-msgid "hidden"
-msgstr "oculto"
-
-msgid "Invalid data type for @field"
-msgstr "tipo de dados inválido para o @field"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "Autenticação necessária quando é alterado o endereço de E-mail ou é definida uma nova palavra-passe."
 
-msgid "Request foundership"
-msgstr "Pedir liderança"
+msgid "Make unsticky"
+msgstr "Marcar como não sticky"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Se o fundador da equipa não estiver activo e quiser assumir o papel de fundador, clique abaixo para pedir a liderança da @this_team. "
+msgid "Remove sticky status from this topic"
+msgstr "Remover o status de sticky para este tópico"
 
-msgid "Initiate request"
-msgstr "Iniciar pedido"
+msgid "Unhide"
+msgstr "Mostrar"
 
-msgid "A BOINC account already exists for @email."
-msgstr "Já existe uma conta do BOINC para @email."
+msgid "Unhide this comment"
+msgstr "Colocar comentário visível"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Por favor seja responsável no que escreve e não crie mensagens ofensivas ou insultuosas. Mensagens ofensivas podem ser apagadas pelos moderadores do fórum, sem aviso. Não responda a mensagens ofensivas. Clique no botão \"report\" na parte inferior da mensagem para chamar à atenção dos moderadores."
+msgid "Unpublished"
+msgstr "Não publicado"
 
-msgid "this project"
-msgstr "este projecto"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Os computadores @old_ids foram migrados com sucesso para o novo @id."
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "Também pedimos que mantenha toda a discussão sobre os fóruns relacionadas com @project ou do BOINC com a pequena exceção do fórum da ciência onde é livre para discutir qualquer assunto relevante para a ciência subjacente. Os participantes interessados em discussões mais amplas devem utilizar os fóruns não oficiais para o @project."
+msgid "Joined"
+msgstr "Aderiu"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "Os fóruns suportam agora apenas tags BBCode."
+msgid "Credit"
+msgstr "Créditos"
 
-msgid "Posts contributed"
-msgstr "Tópicos onde contribuiu"
+msgid "RAC"
+msgstr "RAC"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Perfil aguardando aprovação do moderador"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Não existe nenhuma conta para @email -- selecione \"Criar nova conta\" para se registar"
 
-msgid "Approve profile"
-msgstr "Aprovar perfil"
+msgid "started discussion"
+msgstr "discussão iniciada"
 
-msgid "Approve this profile content"
-msgstr "Aprovar o conteúdo deste perfil"
+msgid "commented on"
+msgstr "comentado em"
+
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "A palavra-passe introduzida não é válida. Verifique se está correta"
+
+msgid "Minimum value not met for @field"
+msgstr "O valor mínimo do campo @field não foi atingido"
+
+msgid "Invalid data type for @field"
+msgstr "tipo de dados inválido para o @field"
+
+msgid "News"
+msgstr "Novidades"
+
+msgid "Remove friend"
+msgstr "Remover amigo"
+
+msgid "ignore list"
+msgstr "Lista de ignorados"
+
+msgid "here"
+msgstr "aqui"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username está na sua !ignore_list. Carregue !here para ver este post."
+
+msgid "hidden"
+msgstr "oculto"
 
-msgid "Edit profile"
-msgstr "Editar perfil"
+msgid "Unknown"
+msgstr "Desconhecido"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Definição inválida para \"%preference\""
 
-msgid "Edit the content of this profile"
-msgstr "Editar o conteúdo deste perfil"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: comentário publicado em \"!topic_name\""
 
-msgid "Remove profile"
-msgstr "Remover perfil"
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author publicou uma resposta em \"!topic_name\"."
 
-msgid "Remove this profile content from the system"
-msgstr "Remover o conteúdo deste perfil do sistema"
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Para ver este tópico em !site, clique aqui:\n!comment_url"
 
 msgid "The team founder has @count days to respond to your transfer request."
 msgstr "O fundador da equipa tem @count dias para responder ao seu pedido de transferência."
 
-msgid "Reject profile"
-msgstr "Rejeitar perfil"
-
-msgid "Reject this profile content"
-msgstr "Rejeitar o conteúdo deste perfil"
-
-msgid "Reason for rejecting this profile"
-msgstr "Razão para rejeitar este perfil"
-
-msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Esta razão será incluída no e-mail para o utilizador. Por favor, escreva uma breve explicação do problema e como resolvê-lo."
+msgid "Unlock"
+msgstr "Desbloquear"
 
-msgid "Submit"
-msgstr "Submeter"
+msgid "Unlock this thread for comments"
+msgstr "Desbloquear este tópico para comentários"
 
 msgid "project"
-msgstr "projecto"
+msgstr "projeto"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "Não existe nenhuma conta para @email -- selecione \"Criar nova conta\" para se registar"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email não tem o formato correto de e-mail, por favor verifique"
 
-msgid "Unknown"
-msgstr "Desconhecido"
+msgid "Please enter your email address"
+msgstr "Introduza o seu endereço de e-mail"
 
-msgid "My team"
-msgstr "A minha equipa"
+msgid "There is no account with that authenticator."
+msgstr "Não existe conta com esse autenticador."
 
-msgid "You are a member of @team."
-msgstr "É membro de @team"
+msgid "That authenticator is not valid."
+msgstr "Esse autenticador não é válido."
 
-msgid "View my team"
-msgstr "Ver a minha equpa"
+msgid "Send request"
+msgstr "Enviar pedido"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Definição inválida para \"%preference\""
+msgid "Friend request from !name [!site]"
+msgstr "Pedido de amizade de !name [!site]"
 
-msgid "Pending"
-msgstr "Pendente"
+msgid "Message"
+msgstr "Mensagem"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "Tem de ganhar mais @count créditos para poder publicar comentários neste site"
-
-msgid "Moderation"
-msgstr "Moderação"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name adicionou-o como amigo no !site. Pode aprovar ou recusar o pedido. Ao recusar um pedido, não será enviada uma notificação, mas irá remover o pedido de ambas as contas.\n\nSiga o link abaixo para visualizar este pedido: \n! link\n\n!message\n\nObrigado, \nA equipa !site"
 
-msgid "Unvetted profiles"
-msgstr "Perfis não examinados"
+msgid "Cancel friend request"
+msgstr "Cancelar pedido de amizade"
 
-msgid "Reason for banning this user"
-msgstr "Razão para banir este utilizador"
+msgid "Please set the minimum time required between posts."
+msgstr "Por favor, defina o tempo mínimo necessário entre artigos."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "A razão será incluída num email enviado ao utilizador. Escreva uma breve explicação do porquê deste utilizador estar a ser banido."
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Por favor, defina o crédito total mínimo que um utilizador deve ganhar para poder publicar esta mensagem."
 
-msgid "Duration of the ban"
-msgstr "Duração do banimento"
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "Número de dias até ao banimento expirar. Selecionar 0 para banir permanentemente."
-
-msgid "Lift user ban"
-msgstr "Levantar banimento do utilizador"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Por favor, defina o crédito mínimo que um utilizador é obrigado a ter, a fim de escrever neste fórum."
 
-msgid "You are banned from community participation until @date"
-msgstr "Está banido de participar na comunidade até @date"
+msgid "Edit message board"
+msgstr "Editar fórum de discussão"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "Os antigos ID dos computadores @old_ids, foram migrados com sucesso para o novo ID @id."
+msgid "Save message board"
+msgstr "Guardar fórum de discussão"
 
-msgid "A team named \"@name\" already exists."
-msgstr "Uma equipa chamada \"@name\" já existe."
+msgid "This is a team-only message board"
+msgstr "Este é um fórum, disponível somente para membros da equipa"
 
-msgid "Post topic"
-msgstr "Publicar tópico"
+msgid "Maximum value exceeded for @field"
+msgstr "Valor máximo excedido para @field"
 
-msgid "Please enter your email address"
-msgstr "Introduza o seu endereço de email"
+msgid "Approve request"
+msgstr "Aprovar pedido"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "A palavra-passe introduzida não é válida. Verifique se está correta"
+msgid "!name accepted your friend request [!site]"
+msgstr "O !name aceitou o seu pedido de amizade [!site]"
 
-msgid "Make founder"
-msgstr "Criar fundador"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name confirmou-o como amigo em !site.\n\nSiga esta hiperligação para ver o seu perfil:\n!link\n\n!message\n\nObrigado,\nA equipa !site"
 
-msgid "User of the day"
-msgstr "Utilizador do dia"
+msgid "posted"
+msgstr "colocado"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: comentário publicado em \"!topic_name\""
+msgid "Add team admin"
+msgstr "Adicionar administrador de equipa"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author publicou uma resposta em \"!topic_name\"."
+msgid "Enter email address"
+msgstr "Insira endereço de e-mail"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "Para ver este tópico em !site, clique aqui:\n!comment_url"
+msgid "Current team admins"
+msgstr "Administradores atuais da equipa"
 
-msgid "At least one application must be selected"
-msgstr "Pelo menos uma aplicação deve der selecionada"
+msgid "About team admins"
+msgstr "Sobre os administradores da equipa"
 
-msgid "Account"
-msgstr "Conta"
+msgid "Team admins can:"
+msgstr "Administradores da equipa podem:"
 
-msgid "Log in"
-msgstr "Entrar"
+msgid "Edit team information"
+msgstr "Editar informações da equipa"
 
-msgid "Forgot password"
-msgstr "Esqueceu-se da palavra-passe"
+msgid "View the team's join / quit history"
+msgstr "Ver o histórico de entradas / saídas da equipa"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Introduza o seu endereço de email para receber instruções para repor a sua palavra-passe"
+msgid "Moderate the team forum"
+msgstr "Moderar o fórum da equipa"
 
-msgid "Send"
-msgstr "Enviar"
+msgid "Remove members from the team"
+msgstr "Remover membros da equipa"
 
-msgid "Revise or post comment"
-msgstr "Rever ou publicar comentário"
+msgid "Disband a team if it has no members"
+msgstr "Terminar a equipa se esta não tiver membros"
 
-msgid "discuss"
-msgstr "debater"
+msgid "Team admins cannot:"
+msgstr "Administradores de equipa não podem:"
 
-msgid "News"
-msgstr "Novidades"
+msgid "Change the team founder"
+msgstr "Mudar o fundador da equipa"
 
-msgid "Your community preferences have been updated."
-msgstr "As suas preferências de comunidade foram atualizadas."
+msgid "Add / Remove team admins"
+msgstr "Adicionar / Remover administradores de equipa"
 
-msgid "Unlock"
-msgstr "Desbloquear"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Se um administrador de equipa desistir, estes deixarão de ser um administrador da mesma. Nós recomendamos que selecione apenas pessoas que conheça e confie"
 
-msgid "Unlock this thread for comments"
-msgstr "Desbloquear este tópico para comentários"
+msgid "Lift user ban"
+msgstr "Levantar banimento do utilizador"
 
-msgid "Authenticator login"
-msgstr "ID de autenticação"
+msgid "A team named \"@name\" already exists."
+msgstr "Uma equipa chamada \"@name\" já existe."
 
-msgid "Create content"
-msgstr "Criar conteúdo"
+msgid "A BOINC account already exists for @email."
+msgstr "Já existe uma conta de BOINC para o @email."
 
-msgid "authenticator-based login"
-msgstr "ID de autenticação"
+msgid "Make founder"
+msgstr "Criar fundador"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Introduza o seu endereço de e-mail para receber instruções para repor a sua palavra-passe (ou utilize o !authenticator_login)."
+msgid "Changing the team founder"
+msgstr "Alterando o fundador de equipa"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "Se esqueceu o seu endereço de e-mail da sua conta, ou não consegue receber emails nessa conta:"
+msgid "Notes about changes in foundership:"
+msgstr "Notas sobre as mudanças na liderança:"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "Se tiver executado o BOINC numa determinada conta, poderá ainda aceder. Veja como:"
+msgid "Any member of the team is eligible"
+msgstr "Qualquer membro da equipa é elegível"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Vá ao directório de dados do BOINC no seu computador (no Windows geralmente o caminho é este %path1 ou %path2."
+msgid "Current founder becomes a normal user"
+msgstr "O fundador atual tornou-se um utilizador normal"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Encontre o seu ficheiro de conta para este projecto; terá um nome como %file (onde o URL do projecto é %url)."
+msgid "Foundership can be requested by team members:"
+msgstr "O Fundador pode ser solicitado pelos membros da equipa:"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Abra o ficheiro num editor de texto como o Notepad. Irá ver qualquer coisa como:"
+msgid "One request is allowed at a time"
+msgstr "Apenas um pedido é permitido de cada vez"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Seleccione e Copie a string entre &It;autenticador> e &It;/autenticador&get; (%auth no exemplo abaixo)."
+msgid "It must be 60 days since any previous request"
+msgstr "Tem de ter passado 60 dias desde pedidos anteriores"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Colar a string no campo abaixo e, carregar em OK."
+msgid "Any active request must be older than 90 days"
+msgstr "Qualquer pedido ativo deve ter mais de 90 dias"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Será agora feito o log in na sua conta; actualizar o email e palavra passe da sua conta."
+msgid "Current founder has 60 days to respond to a request"
+msgstr "O fundador atual tem 60 dias para responder ao pedido"
 
-msgid "Log in with authenticator"
-msgstr "fazer login com o autenticador"
+msgid "BOINC-wide teams site"
+msgstr "BOINC - site de equipas \"wide\""
 
-msgid "There is no account with that authenticator."
-msgstr "Não existe conta com esse autenticador."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "É um site de equipas \"wide\" do BOINC. Podem ser efetuadas alterações em !site."
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Vá a <a href=\"%wikiref\">directoria de dados do BOINC</a> no seu computador (no Windows geralmente o caminho é este %path1 ou %path2."
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "A alteração da equipa fundadora já foi solicitada recentemente. Só é permitido um pedido dentro de um período de 90 dias."
 
-msgid "BOINC documentation"
-msgstr "Documentação do BOINC"
+msgid "@count days remaining"
+msgstr "@count dias restantes"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Vá ao directório de dados do BOINC no seu computador (ver !boinc_wiki para o ajudar a encontrar esta pasta)."
+msgid "Team name is required."
+msgstr "Nome de equipa é necessário."
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "passaram @count dias desde o seu pedido e o fundador não respondeu."
+msgid "Reason for banning this user"
+msgstr "Razão para banir este utilizador"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "Você tem agora @count dias para assumir a liderança antes que outro membro da equipa possa submeter o pedido."
-
-msgid "Assume foundership"
-msgstr "Assumir liderança"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "A razão será incluída num e-mail enviado ao utilizador. Escreva uma breve explicação do porquê deste utilizador estar a ser banido."
 
-msgid "Unhide"
-msgstr "Revelar"
+msgid "Duration of the ban"
+msgstr "Duração do banimento"
 
-msgid "Unhide this comment"
-msgstr "Meter comentário visível"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Número de dias até ao banimento expirar. Selecionar 0 para banir permanentemente."
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email não têm o formato correcto. verifique por favor o e-mail introduzido"
+msgid "Submit"
+msgstr "Submeter"
diff --git a/locale/pt_PT/BOINC-Manager.mo b/locale/pt_PT/BOINC-Manager.mo
index 8845c8f..d355882 100644
Binary files a/locale/pt_PT/BOINC-Manager.mo and b/locale/pt_PT/BOINC-Manager.mo differ
diff --git a/locale/pt_PT/BOINC-Manager.po b/locale/pt_PT/BOINC-Manager.po
index 69d1533..be2060b 100644
--- a/locale/pt_PT/BOINC-Manager.po
+++ b/locale/pt_PT/BOINC-Manager.po
@@ -1,63 +1,58 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Maria Manuela Silva, 2016
-# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-05-27 13:01+0000\n"
-"Last-Translator: Maria Manuela Silva\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-09 11:28+0000\n"
+"Last-Translator: Manuela Silva <manuela.silva at sky.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/boinc/boinc/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_PT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Identifique a sua conta em %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
-msgstr "Por favor, insira os dados da sua conta\n(para criar uma conta, visite o website do projecto)"
+msgstr "Por favor, insira a informação da sua conta\n(para criar uma conta, visite o website do projeto)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
-msgstr "Este projecto não está de momento a aceitar novas contas.\nSó o pode adicionar se já possuir uma conta."
+msgstr "Este projeto não está de momento a aceitar novas contas.\nSó pode adicioná-lo se já possuir uma conta."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
-msgstr "Já está a executar este projecto?"
+msgstr "Já está a executar este projeto?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Não, novo utilizador"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Sim, utilizador existente"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -65,90 +60,90 @@ msgid ""
 "Please click on the 'Find login information' link\n"
 "below to find out what to put in the email address and\n"
 "password fields."
-msgstr "Não nos foi possível encontrar as informações da sua conta\nautomaticamente.\n\nPor favor clique no link 'Encontrar informações de login\nabaixo para descobrir o que inserir nos campos de endereço de e-mail e\npalavra-passe."
+msgstr "Não nos foi possível encontrar a informação da sua conta\nautomaticamente.\n\nPor favor, clique em baixo na hiperligação 'Encontrar informação da sessão\npara saber o que colocar nos campos de endereço de e-mail e\npalavra-passe."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
-msgstr "Encontrar informações de login"
+msgstr "Encontrar informação da sessão"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Palavra-passe:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Escolha uma &palavra-passe:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "C&onfirme a palavra-passe:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Já está a executar o %s?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
-msgstr "&Nome de Utilizador:"
+msgstr "&Nome de utilizador:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&Endereço de e-mail ou ID LDAP:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Endereço de e-mail:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
-msgstr "comprimento minimo %d"
+msgstr "comprimento mínimo %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Esqueceu-se da palavra-passe?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
-msgstr "Se ainda não se registou neste gestor de conta,\npor favor faça-o antes de prosseguir. Clique no link em baixo\npara se registar ou recuperar a palavra-passe esquecida."
+msgstr "Se ainda não se registou neste gestor de conta,\npor favor, faça-o antes de prosseguir. Clique em baixo na hiperligação\npara se registar ou para recuperar a palavra-passe esquecida."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Website do gestor de conta"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
-msgstr "Adicionar Projecto"
+msgstr "Adicionar projeto"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
-msgstr "Actualizar o gestor de conta"
+msgstr "Atualizar gestor de conta"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Utilizar gestor de conta"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Por favor, insira um nome de utilizador."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Por favor, insira um endereço de e-mail."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
-msgstr "Por favor, insira uma palavra-passe com pelo menos %d caracteres."
+msgstr "Por favor, insira uma palavra-passe com pelo menos %d carateres."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
-msgstr "A palavra-passe original e a de confirmação não condizem. Por favor, insira-as novamente."
+msgstr "A palavra-passe original e a de confirmação não coincidem. Por favor, insira-as novamente."
 
 #: clientgui/AccountManagerInfoPage.cpp:270
 msgid "Choose an account manager"
@@ -158,7 +153,7 @@ msgstr "Escolha um gestor de conta"
 msgid ""
 "To choose an account manager, click its name or \n"
 "type its URL below."
-msgstr "Para escolher um gestor de conta, clique no nome \nou digite o seu URL em baixo."
+msgstr "Para escolher um gestor de conta, clique no seu nome \nou digite o seu URL em baixo."
 
 #: clientgui/AccountManagerInfoPage.cpp:277
 msgid "Account manager details:"
@@ -166,7 +161,7 @@ msgstr "Detalhes do gestor de conta:"
 
 #: clientgui/AccountManagerInfoPage.cpp:281
 msgid "Account manager &URL:"
-msgstr "Gestor de conta &URL:"
+msgstr "&URL do gestor de conta:"
 
 #: clientgui/AccountManagerInfoPage.cpp:285
 msgid "Open web page"
@@ -174,7 +169,7 @@ msgstr "Abrir página web"
 
 #: clientgui/AccountManagerInfoPage.cpp:288
 msgid "Visit this account manager's web site"
-msgstr "Visitar o website deste gestor de conta"
+msgstr "Visitar website do gestor de conta"
 
 #. %s is the project name
 #. i.e. 'BOINC', 'GridRepublic'
@@ -192,19 +187,19 @@ msgstr "A comunicar com o servidor."
 #: clientgui/AccountManagerProcessingPage.cpp:198
 #: clientgui/AccountManagerPropertiesPage.cpp:204
 msgid "Please wait..."
-msgstr "Por favor aguarde..."
+msgstr "Por favor, aguarde..."
 
 #: clientgui/AccountManagerProcessingPage.cpp:325
 msgid "An internal server error has occurred.\n"
-msgstr "Ocorreu um erro interno no servidor.\n"
+msgstr "Ocorreu um erro interno de servidor.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Ligado"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
-msgstr "Desconectado"
+msgstr "Desligado"
 
 #: clientgui/AdvancedFrame.cpp:329
 #, c-format
@@ -217,8 +212,8 @@ msgid "Open another %s window"
 msgstr "Abrir outra janela do %s"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Seleccionar computador..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Selecione computador...⇥Ctrl+Shift+I "
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -226,11 +221,11 @@ msgstr "Ligar a um cliente BOINC noutro computador"
 
 #: clientgui/AdvancedFrame.cpp:349
 msgid "Shut down connected client..."
-msgstr "Desligar cliente ligado..."
+msgstr "Encerrar cliente ligado..."
 
 #: clientgui/AdvancedFrame.cpp:350
 msgid "Shut down the currently connected BOINC client"
-msgstr "Desligar o cliente BOINC actualmente ligado"
+msgstr "Encerrar o cliente BOINC atualmente ligado"
 
 #: clientgui/AdvancedFrame.cpp:355 clientgui/sg_BoincSimpleFrame.cpp:120
 #, c-format
@@ -250,23 +245,23 @@ msgstr "Sair do %s"
 
 #: clientgui/AdvancedFrame.cpp:391 clientgui/sg_BoincSimpleFrame.cpp:151
 msgid "Preferences..."
-msgstr "Preferências"
+msgstr "Preferências..."
 
 #: clientgui/AdvancedFrame.cpp:400
 msgid "&Notices\tCtrl+Shift+N"
-msgstr "&Notícias\tCtrl+Shift+N"
+msgstr "&Notícias⇥Ctrl+Shift+N"
 
 #: clientgui/AdvancedFrame.cpp:401
 msgid "Show notices"
-msgstr "Mostrar notícias"
+msgstr "Mostrar as notícias"
 
 #: clientgui/AdvancedFrame.cpp:406
 msgid "&Projects\tCtrl+Shift+P"
-msgstr "&Projectos\tCtrl+Shift+P"
+msgstr "&Projetos⇥Ctrl+Shift+P"
 
 #: clientgui/AdvancedFrame.cpp:407
 msgid "Show projects"
-msgstr "Mostrar projectos"
+msgstr "Mostrar os projetos"
 
 #: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
@@ -274,49 +269,49 @@ msgstr "&Tarefas\tCtrl+Shift+T"
 
 #: clientgui/AdvancedFrame.cpp:413
 msgid "Show tasks"
-msgstr "Mostrar tarefas"
+msgstr "Mostrar as tarefas"
 
 #: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
-msgstr "Trans&ferências\tCtrl+Shift+X"
+msgstr "Trans&ferências⇥Ctrl+Shift+X"
 
 #: clientgui/AdvancedFrame.cpp:419
 msgid "Show file transfers"
-msgstr "Mostrar transferências de ficheiros"
+msgstr "Mostrar as transferências de ficheiros"
 
 #: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
-msgstr "&Estatísticas\tCtrl+Shift+S"
+msgstr "&Estatísticas⇥Ctrl+Shift+S"
 
 #: clientgui/AdvancedFrame.cpp:425
 msgid "Show statistics"
-msgstr "Mostrar estatísticas"
+msgstr "Mostrar as estatísticas"
 
 #: clientgui/AdvancedFrame.cpp:430
 msgid "&Disk\tCtrl+Shift+D"
-msgstr "&Disco\tCtrl+Shift+D"
+msgstr "&Disco⇥Ctrl+Shift+D"
 
 #: clientgui/AdvancedFrame.cpp:431
 msgid "Show disk usage"
-msgstr "Mostrar utilização do disco"
+msgstr "Mostrar a utilização do disco"
 
 #: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
-msgstr "&Vista Simplificada...\tCtrl+Shift+V"
+msgstr "&Visualização Simples...⇥Ctrl+Shift+V"
 
 #: clientgui/AdvancedFrame.cpp:439
 msgid "Switch to the Simple View"
-msgstr "Trocar para a Vista Simples"
+msgstr "Mudar para a Visualização Simples"
 
 #: clientgui/AdvancedFrame.cpp:453 clientgui/AdvancedFrame.cpp:477
 #: clientgui/sg_BoincSimpleFrame.cpp:205
 msgid "&Add project..."
-msgstr "&Adicionar projecto..."
+msgstr "&Adicionar projeto..."
 
 #: clientgui/AdvancedFrame.cpp:454 clientgui/AdvancedFrame.cpp:478
 #: clientgui/sg_BoincSimpleFrame.cpp:206
 msgid "Add a project"
-msgstr "Adicionar um projecto"
+msgstr "Adicionar um projeto"
 
 #: clientgui/AdvancedFrame.cpp:458
 msgid "&Use account manager..."
@@ -334,12 +329,12 @@ msgstr "&Sincronizar com %s"
 #: clientgui/AdvancedFrame.cpp:467
 #, c-format
 msgid "Get current settings from %s"
-msgstr "Obter as configurações actuais a partir de %s"
+msgstr "Obter as configurações atuais a partir de %s"
 
 #: clientgui/AdvancedFrame.cpp:481
 #, c-format
 msgid "S&top using %s..."
-msgstr "&Parar de utilizar %s..."
+msgstr "P&arar de utilizar %s..."
 
 #: clientgui/AdvancedFrame.cpp:487
 msgid "Remove this computer from account manager control."
@@ -351,23 +346,23 @@ msgstr "Executar &testes de desempenho da CPU"
 
 #: clientgui/AdvancedFrame.cpp:494
 msgid "Run tests that measure CPU speed"
-msgstr "Executar testes que calculem a velocidade da CPU"
+msgstr "Executar testes que calculem a velocidade do CPU"
 
 #: clientgui/AdvancedFrame.cpp:498
 msgid "Retry pending transfers"
-msgstr "Tentar novamente transferências pendentes"
+msgstr "Repetir transferências pendentes"
 
 #: clientgui/AdvancedFrame.cpp:499
 msgid "Retry deferred file transfers and task requests"
-msgstr "Tentar novamente transferências de ficheiros deferidos e pedidos de tarefas"
+msgstr "Repetir as transferências de ficheiros e pedidos de tarefas deferidas"
 
 #: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
 msgid "Event Log...\tCtrl+Shift+E"
-msgstr "Registo de Eventos...\tCtrl+Shift+E"
+msgstr "Registo de Eventos⇥Ctrl+Shift+E"
 
 #: clientgui/AdvancedFrame.cpp:505
 msgid "Show diagnostic messages"
-msgstr "Mostrar mensagens de diagnóstico"
+msgstr "Mostrar as mensagens de diagnóstico"
 
 #: clientgui/AdvancedFrame.cpp:513
 msgid "&Run always"
@@ -375,15 +370,15 @@ msgstr "&Executar sempre"
 
 #: clientgui/AdvancedFrame.cpp:514
 msgid "Allow work regardless of preferences"
-msgstr "Permitir execução de trabalho, independentemente das preferências"
+msgstr "Permitir a execução de trabalho, independentemente das preferências"
 
 #: clientgui/AdvancedFrame.cpp:518
 msgid "Run based on &preferences"
-msgstr "Executar com base nas &preferências"
+msgstr "Executar de acordo com as &preferências"
 
 #: clientgui/AdvancedFrame.cpp:519
 msgid "Allow work according to preferences"
-msgstr "Permitir execução de trabalho de acordo com as preferências"
+msgstr "Permitir a execução de trabalho de acordo com as preferências"
 
 #: clientgui/AdvancedFrame.cpp:523
 msgid "&Suspend"
@@ -391,15 +386,15 @@ msgstr "&Suspender"
 
 #: clientgui/AdvancedFrame.cpp:524
 msgid "Stop work regardless of preferences"
-msgstr "Parar execução de trabalho independentemente das preferências"
+msgstr "Parar a execução de trabalho, independentemente das preferências"
 
 #: clientgui/AdvancedFrame.cpp:549
 msgid "Use GPU always"
-msgstr "Utilizar a GPU sempre"
+msgstr "Utilizar sempre a GPU"
 
 #: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
-msgstr "Permitir a execução da GPU, independentemente das preferências"
+msgstr "Permitir o trabalho de GPU, independentemente das preferências"
 
 #: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
@@ -407,39 +402,39 @@ msgstr "Utilizar a GPU com base nas preferências"
 
 #: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
-msgstr "Permitir a execução da GPU de acordo com as preferências"
+msgstr "Permitir o trabalho de GPU de acordo com as preferências"
 
 #: clientgui/AdvancedFrame.cpp:559
 msgid "Suspend GPU"
-msgstr "Suspender a GPU"
+msgstr "Suspender GPU"
 
 #: clientgui/AdvancedFrame.cpp:560
 msgid "Stop GPU work regardless of preferences"
-msgstr "Parar a execução da GPU, independentemente das preferências"
+msgstr "Parar o trabalho de GPU, independentemente das preferências"
 
 #: clientgui/AdvancedFrame.cpp:584
 msgid "Network activity always"
-msgstr "Actividade de rede sempre"
+msgstr "Atividade de rede sempre"
 
 #: clientgui/AdvancedFrame.cpp:585
 msgid "Allow network activity regardless of preferences"
-msgstr "Permitir actividade de rede, independentemente das preferências"
+msgstr "Permitir a atividade de rede, independentemente das preferências"
 
 #: clientgui/AdvancedFrame.cpp:589
 msgid "Network activity based on preferences"
-msgstr "Actividade de rede com base nas preferências"
+msgstr "Atividade de rede de acordo com as preferências"
 
 #: clientgui/AdvancedFrame.cpp:590
 msgid "Allow network activity according to preferences"
-msgstr "Permitir actividade de rede de acordo com as preferências"
+msgstr "Permitir a atividade de rede de acordo com as preferências"
 
 #: clientgui/AdvancedFrame.cpp:594
 msgid "Suspend network activity"
-msgstr "Suspender actividade de rede"
+msgstr "Suspender atividade de rede"
 
 #: clientgui/AdvancedFrame.cpp:595
 msgid "Stop network activity"
-msgstr "Parar actividade de rede"
+msgstr "Parar a atividade de rede"
 
 #: clientgui/AdvancedFrame.cpp:604 clientgui/sg_BoincSimpleFrame.cpp:191
 msgid "Computing &preferences..."
@@ -447,7 +442,7 @@ msgstr "&Preferências de computação..."
 
 #: clientgui/AdvancedFrame.cpp:605 clientgui/sg_BoincSimpleFrame.cpp:192
 msgid "Configure computing preferences"
-msgstr "Configurar preferências de computação"
+msgstr "Configurar as preferências de computação"
 
 #: clientgui/AdvancedFrame.cpp:610
 msgid "Exclusive applications..."
@@ -455,23 +450,23 @@ msgstr "Aplicações exclusivas..."
 
 #: clientgui/AdvancedFrame.cpp:611
 msgid "Configure exclusive applications"
-msgstr "Configurar aplicações exclusivas"
+msgstr "Configurar as aplicações exclusivas"
 
 #: clientgui/AdvancedFrame.cpp:616
 msgid "Select columns..."
-msgstr "Seleccionar colunas..."
+msgstr "Selecionar colunas..."
 
 #: clientgui/AdvancedFrame.cpp:617
 msgid "Select which columns to display"
-msgstr "Seleccionar colunas a visualizar"
+msgstr "Selecionar as colunas a exibir"
 
 #: clientgui/AdvancedFrame.cpp:621
 msgid "Event Log options...\tCtrl+Shift+F"
-msgstr "Opções do Log de Eventos...\tCtrl+Shift+F"
+msgstr "Opções do Registo de Eventos...⇥Ctrl+Shift+F"
 
 #: clientgui/AdvancedFrame.cpp:622
 msgid "Enable or disable various diagnostic messages"
-msgstr "Habilita ou desabilita várias mensagens de diagnóstico"
+msgstr "Ativar ou desativar as várias mensagens de diagnóstico"
 
 #: clientgui/AdvancedFrame.cpp:626 clientgui/sg_BoincSimpleFrame.cpp:197
 msgid "&Other options..."
@@ -479,7 +474,7 @@ msgstr "&Outras opções..."
 
 #: clientgui/AdvancedFrame.cpp:627
 msgid "Configure display options and network settings"
-msgstr "Configurar opções de exibição e definições de rede"
+msgstr "Configurar as opções de exibição e definições de rede"
 
 #: clientgui/AdvancedFrame.cpp:632
 msgid "Read config files"
@@ -488,15 +483,15 @@ msgstr "Ler ficheiros de configuração"
 #: clientgui/AdvancedFrame.cpp:633
 msgid ""
 "Read configuration info from cc_config.xml and any app_config.xml files"
-msgstr "Ler informações de configuração em cc_config.mxl e quaisquer ficheiros em app_config.xml"
+msgstr "Ler a informação de configuração de cc_config.mxl e quaisquer ficheiros app_config.xml"
 
 #: clientgui/AdvancedFrame.cpp:637
 msgid "Read local prefs file"
-msgstr "Ler ficheiro de preferências locais"
+msgstr "Ler ficheiro das preferências locais"
 
 #: clientgui/AdvancedFrame.cpp:638
 msgid "Read preferences from global_prefs_override.xml."
-msgstr "Ler preferências de global_prefs_override.xml"
+msgstr "Ler as preferências de global_prefs_override.xml"
 
 #: clientgui/AdvancedFrame.cpp:646 clientgui/sg_BoincSimpleFrame.cpp:219
 #, c-format
@@ -506,7 +501,7 @@ msgstr "&Ajuda do %s"
 #: clientgui/AdvancedFrame.cpp:650 clientgui/sg_BoincSimpleFrame.cpp:223
 #, c-format
 msgid "Show information about %s"
-msgstr "Mostra informações sobre o %s"
+msgstr "Mostrar a informação sobre %s"
 
 #: clientgui/AdvancedFrame.cpp:660
 #, c-format
@@ -516,27 +511,27 @@ msgstr "Ajuda do &%s"
 #: clientgui/AdvancedFrame.cpp:664 clientgui/sg_BoincSimpleFrame.cpp:237
 #, c-format
 msgid "Show information about the %s"
-msgstr "Mostra informações sobre o %s"
+msgstr "Mostrar a informação sobre o %s"
 
 #: clientgui/AdvancedFrame.cpp:675 clientgui/sg_BoincSimpleFrame.cpp:247
 #, c-format
 msgid "%s &web site"
-msgstr "%s &Website"
+msgstr "%s &website"
 
 #: clientgui/AdvancedFrame.cpp:679 clientgui/sg_BoincSimpleFrame.cpp:251
 #, c-format
 msgid "Show information about BOINC and %s"
-msgstr "Mostra informações sobre o BOINC e o %s"
+msgstr "Mostrar a informação sobre o BOINC e o %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
-msgstr "&Acerca de %s..."
+msgstr "&Sobre o %s..."
 
 #: clientgui/AdvancedFrame.cpp:696 clientgui/sg_BoincSimpleFrame.cpp:268
 msgid "Licensing and copyright information."
-msgstr "Licenciamento e informações sobre direitos de autor."
+msgstr "Informações sobre licenciamento e direitos de autor."
 
 #: clientgui/AdvancedFrame.cpp:703 clientgui/sg_BoincSimpleFrame.cpp:275
 msgid "&File"
@@ -544,11 +539,11 @@ msgstr "&Ficheiro"
 
 #: clientgui/AdvancedFrame.cpp:707 clientgui/sg_BoincSimpleFrame.cpp:279
 msgid "&View"
-msgstr "&Visualizar"
+msgstr "&Ver"
 
 #: clientgui/AdvancedFrame.cpp:711
 msgid "&Activity"
-msgstr "&Actividade"
+msgstr "&Atividade"
 
 #: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
 msgid "&Options"
@@ -563,12 +558,12 @@ msgstr "&Ferramentas"
 msgid "&Help"
 msgstr "&Ajuda"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
-msgstr "%s - Para de usar %s"
+msgstr "%s - Parar de utilizar %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -576,41 +571,41 @@ msgid ""
 "but you'll have to manage projects manually.\n"
 "\n"
 "Do you want to stop using %s?"
-msgstr "Se parar de utilizar o %s,\nmanterá todos os projectos actuais,\nmas terá que gerir os projectos manualmente.\n\nQuer parar de utilizar o %s?"
+msgstr "Se parar de utilizar o %s,\nirá manter todos os projetos atuais,\nmas terá que gerir os projetos manualmente.\n\nDeseja parar de utilizar o %s?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
-msgstr "%s - Desligar o cliente actual..."
+msgstr "%s - Encerrar o cliente atual..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
-msgstr "%s irá desligar o cliente ligado actualmente\ne ser-lhe-á solicitado para que se ligue a outro anfitrião."
+msgstr "O %s irá encerrar o cliente atual\ne ser-lhe-á solicitado a ligação a outro anfitrião."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
-msgstr "%s foi adicionado com sucesso %s"
+msgstr "O %s adicionou %s com sucesso"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
-msgstr "Ligando a %s"
+msgstr "A ligar a %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Ligado a %s (%s)"
@@ -625,7 +620,7 @@ msgid ""
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr "Uma conta com esse nome de utilizador já existe e tem uma\npalavra-passe diferente daquela que inseriu.\n\nPor favor, visite o website do projecto e siga as instruções lá indicadas."
+msgstr "Já existe uma conta com esse nome de utilizador e tem uma\npalavra-passe diferente daquela que inseriu.\n\nPor favor, visite o site da Web do projeto e siga as instruções lá indicadas."
 
 #: clientgui/AlreadyExistsPage.cpp:191
 msgid "Email address already in use"
@@ -637,21 +632,21 @@ msgid ""
 "different password than the one you entered.\n"
 "\n"
 "Please visit the project's web site and follow the instructions there."
-msgstr "Uma conta com esse endereço de e-mail já existe e tem uma\npalavra-passe diferente daquela que inseriu.\n\nPor favor, visite o website do projecto e siga as instruções lá indicadas."
+msgstr "Já existe uma conta com esse endereço de e-mail e tem uma\npalavra-passe diferente daquela que inseriu.\n\nPor favor, visite o site da Web do projeto e siga as instruções lá indicadas."
 
 #: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
-msgstr "A comunicar com o cliente BOINC. Por favor aguarde..."
+msgstr "A comunicar com o cliente BOINC. Por favor, aguarde..."
 
 #: clientgui/AsyncRPC.cpp:1034
 #, c-format
 msgid "&Quit %s"
-msgstr "&Sair %s"
+msgstr "&Fechar o %s"
 
 #: clientgui/AsyncRPC.cpp:1036
 #, c-format
 msgid "E&xit %s"
-msgstr "S&air %s"
+msgstr "&Sair do %s"
 
 #: clientgui/AsyncRPC.cpp:1040
 #, c-format
@@ -659,7 +654,7 @@ msgid "%s - Communication"
 msgstr "%s - Comunicação"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Cancelar"
@@ -667,32 +662,32 @@ msgstr "Cancelar"
 #: clientgui/BOINCBaseFrame.cpp:512
 #, c-format
 msgid "%s - Connection Error"
-msgstr "%s - Erro de Conexão"
+msgstr "%s - Erro de Ligação"
 
 #: clientgui/BOINCBaseFrame.cpp:521
 msgid ""
 "You currently are not authorized to manage the client.\n"
 "Please contact your administrator to add you to the 'boinc_users' local user group."
-msgstr "Não está autorizado actualmente a gerir o cliente.\nPor favor, contacte o administrador para que o adicione ao grupo local 'boinc_users'."
+msgstr "Atualmente, não está autorizado a gerir o cliente.\nPor favor, contacte o administrador para que o adicione ao grupo local 'boinc_users'."
 
 #: clientgui/BOINCBaseFrame.cpp:530
 msgid ""
 "Authorization failed connecting to running client.\n"
 "Make sure you start this program in the same directory as the client."
-msgstr "Autorização falhada ao ligar-se ao cliente em execução.\nConfirme que inicia este programa na mesma directoria que a do cliente."
+msgstr "A autorização não conseguiu ligação ao cliente em execução.\nCertifique-se que inicia este programa na mesma diretoria que a do cliente."
 
 #: clientgui/BOINCBaseFrame.cpp:532
 msgid "Authorization failed connecting to running client."
-msgstr "Autorização falhada ao ligar-se ao cliente em execução."
+msgstr "A autorização não conseguiu a ligação ao cliente em execução."
 
 #: clientgui/BOINCBaseFrame.cpp:540
 msgid "The password you have provided is incorrect, please try again."
-msgstr "A palavra-passe que inseriu está incorrecta, por favor tente novamente."
+msgstr "A palavra-passe que inseriu está incorreta, por favor, tente novamente."
 
 #: clientgui/BOINCBaseFrame.cpp:584
 #, c-format
 msgid "%s - Connection Failed"
-msgstr "%s - Conexão Falhada"
+msgstr "%s - Ligação Falhou"
 
 #: clientgui/BOINCBaseFrame.cpp:593
 #, c-format
@@ -704,14 +699,14 @@ msgstr "%s não consegue ligar-se ao cliente %s.\nQuer tentar ligar novamente?"
 #: clientgui/BOINCBaseFrame.cpp:629
 #, c-format
 msgid "%s - Daemon Start Failed"
-msgstr "%s - A Inicialização do Daemon falhou"
+msgstr "%s - Inicialização do Daemon Falhou"
 
 #: clientgui/BOINCBaseFrame.cpp:639
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please launch the Control Panel->Administative Tools->Services applet and start the BOINC service."
-msgstr "%s não consegue iniciar o %s cliente.\nPor favor, vá a Painel de Controlo->Ferramentas Administrativas->Serviços e inicie o serviço BOINC."
+msgstr "%s não consegue iniciar o %s cliente.\nPor favor, vá a Painel de Controlo -> Sistema e Segurança -> Ferramentas Administrativas -> Serviços e inicie o serviço BOINC."
 
 #: clientgui/BOINCBaseFrame.cpp:645
 #, c-format
@@ -723,7 +718,7 @@ msgstr "%s não consegue iniciar o %s cliente.\nPor favor, inicialize o daemon e
 #: clientgui/BOINCBaseFrame.cpp:696
 #, c-format
 msgid "%s - Connection Status"
-msgstr "%s - Estado da Conexão"
+msgstr "%s - Estado da Ligação"
 
 #: clientgui/BOINCBaseFrame.cpp:707
 #, c-format
@@ -731,24 +726,24 @@ msgid ""
 "%s is not currently connected to a %s client.\n"
 "Please use the 'Advanced\\Select Computer...' menu option to connect up to a %s client.\n"
 "To connect up to your local computer please use 'localhost' as the host name."
-msgstr "%s não está actualmente ligado ao cliente %s.\nPor favor utilize o menu 'Avançado\\Escolher Computador...' para se ligar ao cliente %s.\nPara se ligar ao seu computador local, utilize o 'localhost' como o nome de anfitrião."
+msgstr "O %s não está atualmente ligado ao cliente %s.\nPor favor, utilize a opção do menu 'Ver -> Visualização Avançada\\Ficheiro -> Selecionar computador...' para se ligar a um cliente %s.\nPara se ligar ao seu computador local, por favor, utilize 'localhost' como o nome de anfitrião."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
-msgstr "Páginas web do projecto"
+msgstr "Páginas Web do projeto"
 
 #: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
-msgstr "%s - Saída Inesperada"
+msgstr "%s - Encerramento Inesperado"
 
 #: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
 "Would you like to restart it again?"
-msgstr "O cliente %s saiu inesperadamente 3 vezes nos ultimos %d minutos.\nQuer reiniciar novamente?"
+msgstr "O cliente %s encerrou inesperadamente 3 vezes nos últimos %d minutos.\nQuer reiniciar novamente?"
 
 #: clientgui/BOINCDialupManager.cpp:61
 #, c-format
@@ -760,41 +755,41 @@ msgstr "%s - Estado da Rede"
 msgid ""
 "%s needs to connect to the Internet.\n"
 "May it do so now?"
-msgstr "%s precisa de se ligar à Internet.\nPode fazê-lo agora?"
+msgstr "O %s precisa de ligar à Internet.\nPode ligar agora?"
 
 #: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
-msgstr "%s está a ligar-se à Internet."
+msgstr "%s está a ligar à Internet."
 
 #: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
-msgstr "%s ligou-se com sucesso à Internet."
+msgstr "%s ligou com sucesso à Internet."
 
 #: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
-msgstr "%s falhou a conexão à Internet."
+msgstr "O %s não conseguiu ligar-se à Internet."
 
 #: clientgui/BOINCDialupManager.cpp:372
 #, c-format
 msgid ""
 "%s has detected it is now connected to the Internet.\n"
 "Updating all projects and retrying all transfers."
-msgstr "%s detectou que está actualmente ligado à Internet.\nA actualizar todos os projectos e a tentar novamente todas as transferências."
+msgstr "%s detetou que está atualmente ligado à Internet.\nA atualizar todos os projetos e a tentar novamente todas as transferências."
 
 #: clientgui/BOINCDialupManager.cpp:417
 #, c-format
 msgid "%s has successfully disconnected from the Internet."
-msgstr "%s desligou-se com sucesso da Internet."
+msgstr "O %s desligou-se da Internet com sucesso."
 
 #: clientgui/BOINCDialupManager.cpp:433
 #, c-format
 msgid "%s failed to disconnected from the Internet."
-msgstr "%s falhou ao desligar-se da Internet."
+msgstr "O %s não conseguiu desligar-se da Internet."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -805,202 +800,202 @@ msgid ""
 " or\n"
 "  - contact your administrator to add you to the 'boinc_master'\n"
 "     user group."
-msgstr "Não está autorizado de momento a gerir o cliente.\n\nPara executar o %s com este utilizador, por favor:\n  - reinstale o %s respondendo \"Sim\" à questão sobre\n    utilizadores não administrativos\nou\n  - contacte o seu administrador para o adicionar ao  grupo de utilizadores 'boinc_master'."
+msgstr "Atualmente, não está autorizado para gerir o cliente.\n\nPara executar o %s com este utilizador, por favor:\n  - reinstale o %s, respondendo \"Sim\" à questão sobre\n    os utilizadores não administrativos\nou\n  - contacte o seu administrador para o adicionar ao\n    grupo de utilizadores 'boinc_master'."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
-msgstr "%s direitos ou permissões não definidas correctamente; por favor reinstale %s.\n(Código de erro %d"
+msgstr "%s direitos ou permissões não definidas correctamente; por favor reinstale o %s.\n(Código de erro %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " em"
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
-msgstr "É necessário que reinicie o computador para que o BOINC seja executado correctamente.\nPor favor, reinicie o seu computador e tente novamente."
+msgstr "Precisa de reiniciar o computador para que o BOINC seja executado corretamente.\nPor favor, reinicie o seu computador e tente novamente."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC Manager"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
-msgstr "O BOINC Manager foi iniciado pelo sistema operativo automaticamente"
+msgstr "O BOINC Manager foi iniciado automaticamente pelo sistema operativo"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
-msgstr "Iniciar o BOINC de modo a que o ícone seja visível apenas na barra de tarefas"
+msgstr "Iniciar o BOINC de modo a que o ícone seja visível apenas na área de notificação"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
-msgstr "Directório contendo o executável do Cliente BOINC"
+msgstr "Diretoria contendo o executável do Cliente do BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
-msgstr "Directório de dados do BOINC"
+msgstr "Diretoria de dados do BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
-msgstr "Nome de anfitrião ou endereço IP"
+msgstr "Nome de anfitrião ou endereço de IP"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
-msgstr "Número da porta do GUI RPC"
+msgstr "Número da porta de GUI RPC"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Palavra-passe"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Iniciar o BOINC com estes argumentos opcionais"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
-msgstr "desabilitar os utilizadores de segurança e as permissões do BOINC"
+msgstr "desativar os utilizadores e permissões de segurança do BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
-msgstr "iniciar o modo de depuração para habilitar o gestor de mensagens de erro"
+msgstr "definir o modo de depuração do tema para ativar as mensagens de erro do gestor de temas"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
-msgstr "multiplas instâncias do BOINC Manager permitidas"
+msgstr "permitidas múltiplas instâncias do BOINC Manager"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
-msgstr "Não utilizado: solução alternativa para esse bug no XCode 4.2"
+msgstr "Não utilizado: solução alternativa para o erro no XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
-msgstr "Não correr o daemon"
+msgstr "Não executar daemon"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
-msgstr "(Detecção Automática)"
+msgstr "(Deteção Automática)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Desconhecido)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Definido pelo Utilizador)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Abrir %s Web..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Abrir %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Suspender Temporariamente"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Suspender GPU Temporariamente"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "S&air"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
-msgstr "Resumir"
+msgstr "Retomar"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
-msgstr "Resumir GPU"
+msgstr "Retomar GPU"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
-msgstr "Computação está activada"
+msgstr "A computação está ativada"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
-msgstr "Computação está suspensa - "
+msgstr "A computação está suspensa - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
-msgstr "Computação por GPU está activada"
+msgstr "A computação por GPU está ativada"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
-msgstr "Computação por GPU está suspensa - "
+msgstr "A computação por GPU está suspensa - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
-msgstr "Actividade de rede está activada"
+msgstr "A atividade de rede está ativada"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
-msgstr "Actividade de rede está suspensa - "
+msgstr "A atividade de rede está suspensa - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
-msgstr "Ligando novamente ao cliente."
+msgstr "A ligar novamente ao cliente."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
-msgstr "Não ligado ao cliente."
+msgstr "Não está ligado a um cliente."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
-msgstr "%s Notícias"
+msgstr "%s - Notícias"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
-msgstr "Existem notícias novas - clique para visualizar."
+msgstr "Existem novas notícias - clique para visualizar."
 
 #: clientgui/CompletionErrorPage.cpp:199
 msgid "Failed to add project"
-msgstr "Falha ao adicionar projecto"
+msgstr "Não foi possível adicionar o projeto"
 
 #: clientgui/CompletionErrorPage.cpp:204
 msgid "Failed to update account manager"
-msgstr "Falha ao actualizar o gestor de conta"
+msgstr "Não foi possível atualizar o gestor de conta"
 
 #: clientgui/CompletionErrorPage.cpp:208
 msgid "Failed to remove account manager"
-msgstr "Falha ao remover o gestor de conta"
+msgstr "Não foi possível remover o gestor de conta"
 
 #: clientgui/CompletionErrorPage.cpp:212
 msgid "Failed to add account manager"
-msgstr "Falha ao adicionar o gestor de conta"
+msgstr "Não foi possível adicionar o gestor de conta"
 
 #: clientgui/CompletionErrorPage.cpp:221
 msgid ""
 "Please try again later.\n"
 "\n"
 "Click Finish to close."
-msgstr "Por favor, tente novamente mais tarde.\n\nClique em Terminar para fechar."
+msgstr "Por favor, tente novamente mais tarde.\n\nClique em 'Terminar' para fechar."
 
 #: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
 #: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
 msgid "Click Finish to close."
-msgstr "Clique em Terminar para fechar."
+msgstr "Clique em 'Terminar' para fechar."
 
 #: clientgui/CompletionErrorPage.cpp:234
 msgid "Messages from server:"
@@ -1008,50 +1003,50 @@ msgstr "Mensagens do servidor:"
 
 #: clientgui/CompletionPage.cpp:207
 msgid "Project added"
-msgstr "Projecto adicionado"
+msgstr "Projeto adicionado"
 
 #: clientgui/CompletionPage.cpp:213
 msgid "This project has been successfully added."
-msgstr "Este projecto foi adicionado com sucesso."
+msgstr "Este projeto foi adicionado com sucesso."
 
 #: clientgui/CompletionPage.cpp:218
 msgid ""
 "When you click Finish, your web browser will go to a page where\n"
 "you can set your account name and preferences."
-msgstr "Quando clica em Terminar, o seu navegador de internet irá para uma página onde\npode definir o seu nome de conta e preferências."
+msgstr "Quando clica em Terminar, o seu navegador da Web irá para uma página\n onde pode definir o seu nome de conta e preferências."
 
 #: clientgui/CompletionPage.cpp:232
 #, c-format
 msgid "Update from %s completed."
-msgstr "Actualização do %s concluída."
+msgstr "Atualização do %s concluída."
 
 #: clientgui/CompletionPage.cpp:236
 msgid "Update completed."
-msgstr "Actualização concluída."
+msgstr "Atualização concluída."
 
 #. Attach Completed
 #: clientgui/CompletionPage.cpp:247
 msgid "Now using account manager"
-msgstr "Utilizando agora o gestor de conta"
+msgstr "Está a utilizar o gestor de conta"
 
 #: clientgui/CompletionPage.cpp:252
 #, c-format
 msgid "Welcome to %s!"
-msgstr "Bem vindo a %s!"
+msgstr "Bem vindo ao %s!"
 
 #: clientgui/CompletionPage.cpp:263
 #, c-format
 msgid "You are now using %s to manage accounts."
-msgstr "Está agora a utilizar o %s para gerir as contas."
+msgstr "Está a utilizar o %s para gerir as contas."
 
 #: clientgui/CompletionPage.cpp:267
 msgid "You are now using this account manager."
-msgstr "Está agora a utilizar este gestor de conta."
+msgstr "Está a utilizar este gestor de conta."
 
 #: clientgui/DlgAbout.cpp:113
 #, c-format
 msgid "About %s"
-msgstr "Acerca do %s"
+msgstr "Sobre o %s"
 
 #: clientgui/DlgAbout.cpp:172
 msgid "Version:"
@@ -1059,7 +1054,7 @@ msgstr "Versão:"
 
 #: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
-msgstr "Versão dos wxWidgets:"
+msgstr "Versão das wxWidgets:"
 
 #: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
@@ -1069,11 +1064,11 @@ msgstr "Direitos de Autor:"
 msgid ""
 "(C) 2003-2015 University of California, Berkeley.\n"
 "All Rights Reserved."
-msgstr "(C) 2003-2015 Universidade da Califórnia, Berkeley.\nTodos os Direitos Reservados."
+msgstr "(C) 2003-2015 Universidade da Califórnia, Berkeley.\nTodos os direitos reservados."
 
 #: clientgui/DlgAbout.cpp:196
 msgid "BOINC is distributed under the GNU Lesser General Public License v3.0."
-msgstr "O BOINC é distribuído sobre a Licença Pública GNU Lesser v3.0."
+msgstr "O BOINC é distribuído sob a Licença Pública Geral Lesser GNU v3.0."
 
 #: clientgui/DlgAbout.cpp:203
 msgid "For more information, visit "
@@ -1085,46 +1080,6 @@ msgstr "Para mais informações, visite"
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Número inválido"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Hora inválida, o valor deve estar entre 0.00 e 24.00, o formato é HH:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "A hora de início tem de ser diferente da final."
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Os números devem ser entre 0 e 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Os números devem ser entre 0 e 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Número tem de estar entre 1 e 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "valor inválido de entrada detectado"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Erro de Validação"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Rejeitar preferências locais e utilizar as preferências web?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Confirmação"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1134,15 +1089,15 @@ msgstr "%s - Preferências de computação"
 msgid ""
 "Using local preferences.\n"
 "Click \"Use web prefs\" to use web-based preferences from"
-msgstr "Utilizando preferências locais.\nClique em \"Utilizar preferências web\" para carregar as preferências web de"
+msgstr "A utilizar as preferências locais.\nClique em \"Utilizar preferências da Web\" para utilizar as preferências da Web de"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
 msgid "Using web-based preferences from"
-msgstr "Utilizando preferências web de"
+msgstr "A utilizar as preferências com base na Web de"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
 msgid "Set values and click OK to use local preferences instead."
-msgstr "Defina valores e clique em OK para utilizar as preferências locais."
+msgstr "Defina os valores e clique em 'OK' para utilizar as preferências locais."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
 msgid "Use web prefs"
@@ -1150,12 +1105,12 @@ msgstr "Utilizar preferências web"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
 msgid "Restore web-based preferences and close the dialog."
-msgstr "Restaurar as preferências web e fechar a caixa de diálogo."
+msgstr "Restaura as preferências Web e fecha a janela."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:140
 #: clientgui/DlgAdvPreferencesBase.cpp:684
 msgid "Computing"
-msgstr "A computar"
+msgstr "Computação"
 
 #. Network schedule
 #: clientgui/DlgAdvPreferencesBase.cpp:143
@@ -1169,32 +1124,32 @@ msgstr "Disco e memória"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:149
 msgid "Daily schedules"
-msgstr "Programações diárias"
+msgstr "Agendamentos diários"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:163
 msgid "Save all values and close the dialog."
-msgstr "Salvar todos os valores e fechar a caixa de diálogo."
+msgstr "Guarda todos os valores e fecha a janela."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:169
 msgid "Close the dialog without saving."
-msgstr "Fechar a caixa de diálogo sem guardar."
+msgstr "Fecha a janela sem guardar."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Ajuda"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:174
 msgid "Shows the preferences web page."
-msgstr "Mostra  a página web das preferências."
+msgstr "Mostra a página web das preferências."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:236
 #: clientgui/DlgAdvPreferencesBase.cpp:463
@@ -1206,17 +1161,17 @@ msgstr "Limites de utilização"
 msgid ""
 "Keep some CPUs free for other applications. Example: 75% means use 6 cores "
 "on an 8-core CPU."
-msgstr "Deixar algumas CPUs livres para outras aplicações. Exemplo: 75% significa utilizar 6 núcleos numa CPU de 8 núcleos."
+msgstr "Deixar alguns CPUs livres para outras aplicações. Exemplo: 75% significa utilizar 6 núcleos num CPU de 8 núcleos."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:243
 #: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
 msgid "Use at most"
-msgstr "Utilizar no máximo"
+msgstr "Utilizar pelo menos"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:248
 #, no-c-format
 msgid "% of the CPUs"
-msgstr "% das CPUs"
+msgstr "% dos CPUs"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
 #, no-c-format
@@ -1224,12 +1179,12 @@ msgid ""
 "Suspend/resume computing every few seconds to reduce CPU temperature and "
 "energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
 "and repeat."
-msgstr "Suspende/resume a computação em alguns segundos para reduzir a temperatura da CPU e o consumo de energia. Exemplo: 75% significa computação durante 3 segundos, aguardar 1 segundo, e repetir."
+msgstr "Suspende/resume a computação em alguns segundos para reduzir a temperatura do CPU e o consumo de energia. Exemplo: 75% significa computação durante 3 segundos, aguardar 1 segundo, e repetir."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
 #, no-c-format
 msgid "% of CPU time"
-msgstr "% de tempo da CPU"
+msgstr "% de tempo do CPU"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:267
 msgid "When to suspend"
@@ -1242,25 +1197,25 @@ msgstr "Suspender quando o computador está apenas em bateria"
 #: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
 msgid ""
 "Check this to suspend computing on portables when running on battery power."
-msgstr "Seleccione aqui para suspender computação nos portáteis quando em execução em bateria apenas."
+msgstr "Selecione isto para suspender a computação nos portáteis quando estiver a funcionar apenas com a bateria."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
 msgid "Suspend when computer is in use"
-msgstr "Suspender quando o computador está em utilização"
+msgstr "Suspender quando o computador estiver a ser utilizado"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
 msgid ""
 "Check this to suspend computing and file transfers when you're using the "
 "computer."
-msgstr "Seleccione aqui para suspender a computação e transferência de ficheiros quando estiver a utilizar o computador."
+msgstr "Selecione isto para suspender a computação e transferências de ficheiro quando estiver a utilizar o computador."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:291
 msgid "Suspend GPU computing when computer is in use"
-msgstr "Suspende computação da GPU quando o computador está a ser utilizado"
+msgstr "Suspender a computação por GPU quando o computador estiver a ser utilizado"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:294
 msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Seleccione aqui para suspender a computação da GPU quando estiver a utilizar o computador."
+msgstr "Selecione isto para suspender a computação por GPU quando estiver a utilizar o computador."
 
 #. min idle time
 #: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
@@ -1270,7 +1225,7 @@ msgstr "Isto determina quando o computador é considerado como 'em utilização'
 #. context: 'In use' means mouse/keyboard input in last ___ minutes
 #: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
 msgid "'In use' means mouse/keyboard input in last"
-msgstr "'Em utilização' significa actividade do rato/teclado nos últimos"
+msgstr "'Em utilização' significa atividade do rato/teclado nos últimos"
 
 #. context: 'In use' means mouse/keyboard input in last ___ minutes
 #. context: Switch between tasks every ___ minutes
@@ -1281,15 +1236,15 @@ msgstr "minutos"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:323
 msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Suspender quando a utilização da CPU por parte de terceiros for superior a"
+msgstr "Suspender quando a utilização do CPU por terceiros for superior a"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:325
 msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Suspender computação quando o seu computador estiver ocupado executando outros programas."
+msgstr "Suspender a computação quando o seu computador estiver ocupado, a executar outros programas."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:339
 msgid "To suspend by time of day, see the \"Daily Schedules\" section."
-msgstr "Para suspender pela hora do dia, ver a secção \"Programações Diárias\"."
+msgstr "Para suspender pela hora do dia, vá para a secção \"Agendamentos Diários\"."
 
 #. Context: heading for a group of miscellaneous preferences
 #: clientgui/DlgAdvPreferencesBase.cpp:349
@@ -1300,12 +1255,12 @@ msgstr "Outro"
 #. buffer sizes
 #: clientgui/DlgAdvPreferencesBase.cpp:355
 msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Armazenar tarefas suficientes para manter o computador ocupado no mínimo durante este período."
+msgstr "Guardar pelo menos as tarefas suficientes para manter o computador ocupado durante este período."
 
 #. context: Store at least ___ days of work
 #: clientgui/DlgAdvPreferencesBase.cpp:359
 msgid "Store at least"
-msgstr "Armazenar no mínimo "
+msgstr "Guardar pelo menos"
 
 #. context: Store at least ___ days of work
 #. context: Store up to an additional ___ days of work
@@ -1318,17 +1273,17 @@ msgstr "dias de trabalho"
 msgid ""
 "Store additional tasks above the minimum level.  Determines how much work is"
 " requested when contacting a project."
-msgstr "Armazene tarefas adicionais acima do nível mínimo. Determina a quantidade de trabalho que é pedido quando um projecto é contactado."
+msgstr "Guardar tarefas adicionais acima do nível mínimo. Determina a quantidade de trabalho que é solicitado quando um projeto é contactado."
 
 #. context: Store up to an additional ___ days of work
 #: clientgui/DlgAdvPreferencesBase.cpp:380
 msgid "Store up to an additional"
-msgstr "Armazene adicionalmente"
+msgstr "Guardar adicionalmente"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:399
 #, c-format
 msgid "If you run several projects, %s may switch between them this often."
-msgstr "Se executa vários projectos, %s pode trocar entre eles com esta frequência."
+msgstr "Se executa vários projetos, o %s pode trocar entre eles com esta frequência."
 
 #. context: Switch between tasks every ___ minutes
 #: clientgui/DlgAdvPreferencesBase.cpp:404
@@ -1339,12 +1294,12 @@ msgstr "Trocar entre tarefas a cada"
 msgid ""
 "This controls how often tasks save their state to disk, so that they later "
 "can be continued from that point."
-msgstr "Isto controla com que frequência o progresso das tarefas são guardadas  no disco, para que mais tarde possam continuar a partir daquele ponto"
+msgstr "Isto controla a frequência com o progresso das tarefas são guardadas no disco, e assim mais tarde estas podem continuar a partir desse ponto."
 
 #. context: Request tasks to checkpoint at most every ___ seconds
 #: clientgui/DlgAdvPreferencesBase.cpp:423
 msgid "Request tasks to checkpoint at most every"
-msgstr "Pedir às tarefas que criem um checkpoint no máximo a cada"
+msgstr "Solicitar às tarefas que criem um ponto de verificação, no máximo a cada"
 
 #. context: Request tasks to checkpoint at most every ___ seconds
 #: clientgui/DlgAdvPreferencesBase.cpp:432
@@ -1354,11 +1309,11 @@ msgstr "segundos"
 #. upload/download rates
 #: clientgui/DlgAdvPreferencesBase.cpp:469
 msgid "Limit the download rate of file transfers."
-msgstr "Limitar a taxa de transferência dos ficheiros."
+msgstr "Limita a taxa de transferências de ficheiro."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:470
 msgid "Limit download rate to"
-msgstr "Limitar taxa de transferência para"
+msgstr "Limitar a taxa de transferência para"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:474
 #: clientgui/DlgAdvPreferencesBase.cpp:483
@@ -1367,20 +1322,20 @@ msgstr "KB/segundo"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:478
 msgid "Limit the upload rate of file transfers."
-msgstr "Limitar taxa de upload da transferência de ficheiros."
+msgstr "Limita a taxa de envio das transferência de ficheiro."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:479
 msgid "Limit upload rate to"
-msgstr "Limitar taxa de upload para"
+msgstr "Limitar a taxa de envio para"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:490
 #, c-format
 msgid "Example: %s should transfer at most 2000 MB of data every 30 days."
-msgstr "Exemplo: %s deve transferir no máximo 2000 Mb de dados a cada 30 dias."
+msgstr "Exemplo: %s deverá transferir pelo menos 2000 Mb de dados a cada 30 dias."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:492
 msgid "Limit usage to"
-msgstr "Limitar utilização a"
+msgstr "Limitar utilização para"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:496
 msgid "MB every"
@@ -1392,27 +1347,27 @@ msgstr "dias"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:505
 msgid "To limit transfers by time of day, see the \"Daily Schedules\" section."
-msgstr "Para limitar as transferências pela hora do dia, ver a secção \"\"Programações Diárias\"."
+msgstr "Para limitar as transferências pela hora do dia, vá para a secção \"Agendamentos Diários\"."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:522
 #, c-format
 msgid ""
 "Check this only if your Internet provider modifies image files. Skipping "
 "verification reduces the security of %s."
-msgstr "Seleccione aqui apenas se o seu fornecedor de Internet modificar os ficheiros de imagem. Saltar a verificação, reduz a segurança do %s."
+msgstr "Selecione isto apenas se o seu provedor da Internet modificar os ficheiros de imagem. Ignorar a verificação, reduz a segurança do %s."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:524
 msgid "Skip data verification for image files"
-msgstr "Saltar verificação de dados para imagens"
+msgstr "Ignorar a verificação de dados para os ficheiros de imagens"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:528
 msgid "Confirm before connecting to Internet"
-msgstr "Confirmar antes de se ligar à Internet"
+msgstr "Confirmar antes de ligar à Internet"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:529
 #: clientgui/DlgAdvPreferencesBase.cpp:533
 msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Útil apenas se tiver um modem, ISDN ou uma conexão VPN."
+msgstr "Útil apenas se tiver um modem, ISDN ou uma ligação VPN."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:532
 msgid "Disconnect when done"
@@ -1430,7 +1385,7 @@ msgstr "O %s irá utilizar as definições mais restritivas:"
 #: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
 #, c-format
 msgid "Limit the total amount of disk space used by %s."
-msgstr "Limitar o espaço total em disco utilizado por %s."
+msgstr "Limita o espaço total do disco utilizado pelo %s."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:573
 #: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
@@ -1446,7 +1401,7 @@ msgstr "GB"
 msgid ""
 "Limit disk usage to leave this much free space on the volume where %s stores"
 " data."
-msgstr "Limita a utilização do disco para deixar esta quantidade de espaço livre no volume onde %s armazena os dados."
+msgstr "Limita a utilização do disco para deixar este espaço livre no volume onde o %s guarda os dados."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:585
 msgid "Leave at least"
@@ -1461,7 +1416,7 @@ msgstr "GB livres"
 msgid ""
 "Limit the percentage of disk space used by %s on the volume where it stores "
 "data."
-msgstr "Limita a percentagem de disco utilizada pelo %s no volume onde armazena os dados."
+msgstr "Limita a percentagem do disco utilizada pelo %s no volume onde este guarda os dados."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:602
 #, no-c-format
@@ -1479,7 +1434,7 @@ msgstr "Limita a memória utilizada pelo %s quando está a utilizar o computador
 
 #: clientgui/DlgAdvPreferencesBase.cpp:616
 msgid "When computer is in use, use at most"
-msgstr "Quando o computador está em utilização, utilizar no máximo"
+msgstr "Quando o computador estiver a ser utilizado, utilizar no máximo"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:622
 #: clientgui/DlgAdvPreferencesBase.cpp:634
@@ -1491,31 +1446,31 @@ msgstr "%"
 #: clientgui/DlgAdvPreferencesBase.cpp:627
 #, c-format
 msgid "Limit the memory used by %s when you're not using the computer."
-msgstr "Limitar a utilização de memória pelo %s quando não estiver a utilizar o computador."
+msgstr "Limitar a utilização da memória pelo %s quando não estiver a utilizar o computador."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:629
 msgid "When computer is not in use, use at most"
-msgstr "Quando o computador não está em utilização, utilizar no máximo"
+msgstr "Quando o computador não estiver a ser utilizado, utilizar no máximo"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:638
 msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Deixar tarefas não-GPU em memória enquanto estiverem suspensas"
+msgstr "Deixar as tarefas 'não GPU' em memória enquanto suspensas"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:639
 msgid ""
 "If checked, suspended tasks stay in memory, and resume with no work lost. If"
 " unchecked, suspended tasks are removed from memory, and resume from their "
 "last checkpoint."
-msgstr "Se marcado, as tarefas suspensas ficam em memória e, retomam sem trabalho perdido. Se não estiver marcado, as tarefas suspensas são removidas da memória e, retoma a partir do seu último checkpoint."
+msgstr "Se selecionadas, as tarefas suspensas ficam em memória e retomam sem trabalho perdido. Se não estiverem selecionadas, as tarefas suspensas são removidas da memória, e retomam a partir do seu último ponto de verificação."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:643
 #, c-format
 msgid "Limit the swap space (page file) used by %s."
-msgstr "Limitar o espaço swap (ficheiro de paginação) utilizado por %s."
+msgstr "Limitar o espaço de troca (ficheiro de paginação) utilizado pelo %s."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:645
 msgid "Page/swap file: use at most"
-msgstr "Página/ficheiro swap: utilizar no máximo"
+msgstr "Página/ficheiro de troca: utilizar no máximo"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
 msgid "and"
@@ -1541,7 +1496,7 @@ msgstr "Anular dia da semana"
 #: clientgui/DlgAdvPreferencesBase.cpp:727
 #: clientgui/DlgAdvPreferencesBase.cpp:906
 msgid "Override the times above on the selected days:"
-msgstr "Anular os horários acima dos dias seleccionados:"
+msgstr "Anula os horários acima nos dias selecionados:"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:750
 #: clientgui/DlgAdvPreferencesBase.cpp:923
@@ -1580,111 +1535,159 @@ msgstr "Quinta"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
 msgid "Transfer files only during a particular period each day."
-msgstr "Transferir ficheiros apenas durante um período específico do dia."
+msgstr "Transfere os ficheiros apenas durante um período específico do dia."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
 msgid "Transfer files only between"
 msgstr "Transferir ficheiros apenas entre"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Número inválido"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Hora inválida, o valor deve estar entre 00.00 e 24.00, o formato é HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "A hora de início tem de ser diferente da final."
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "O número deve ser entre 0 e 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "O número deve ser entre 0 e 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "O número deve ser entre 1 e 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "detetado valor de entrada inválido"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Erro de Validação"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Rejeitar as preferências locais e utilizar as preferências web?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Confirmação"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
-msgstr "%s Log das Bandeiras de Diagnóstico"
+msgstr "%s - Bandeiras de Registo de Diagnósticos"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
-msgstr "Estas bandeiras habilitam vários tipos de mensagens de diagnóstico no Log de Eventos."
+msgstr "Estas bandeiras activam vários tipos de mensagens de diagnóstico no Registo de Eventos."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Mais informações..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
-msgstr "Guardar todos os valores e fechar a caixa de diálogo"
+msgstr "Guardar todos os valores e fechar a janela"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
-msgstr "Predefinidos"
+msgstr "Predefinições"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
-msgstr "Restaurar definições predefinidas"
+msgstr "Restaura as definições predefinidas"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
-msgstr "Fechar caixa de diálogo sem guardar"
+msgstr "Fechar a janela sem guardar"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Aplicar"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Guardar todos os valores"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Registo de Eventos"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
-msgstr "Projecto"
+msgstr "Projeto"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Tempo"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Mensagem"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
-msgstr "&Mostrar apenas este projecto"
+msgstr "&Mostrar apenas este projeto"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Copiar &Todos"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
-msgstr "Copiar todas as mensagens para a área de transferência."
+msgstr "Copia todas as mensagens para a área de transferência."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
-msgstr "Copiar &Seleccionado"
+msgstr "Copiar &Selecionado"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or command key while clicking on "
 "messages."
-msgstr "Copiar as mensagens seleccionadas para a área de transferência. Pode seleccionar múltiplas mensagens pressionando o shift enquanto clica nas mensagens."
+msgstr "Copiar as mensagens selecionadas para a área de transferência. Pode selecionar múltiplas mensagens pressionando 'Shift' ou a tecla de comando enquanto clica nas mensagens."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or control key while clicking on "
 "messages."
-msgstr "Copiar as mensagens seleccionadas para a área de transferência. Pode seleccionar múltiplas mensagens pressionando o shift ou a tecla Ctrl enquanto clica nas mensagens."
+msgstr "Copiar as mensagens selecionadas para a área de transferência. Pode selecionar múltiplas mensagens pressionando 'Shift' ou a tecla 'Ctrl' enquanto clica nas mensagens."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Fechar"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Mostrar todas as &mensagens"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
-msgstr "Mostrar mensagens para todos os projectos"
+msgstr "Mostrar mensagens para todos os projetos"
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
-msgstr "Mostrar apenas as mensagens para o projecto seleccionado"
+msgstr "Mostrar apenas as mensagens para o projeto selecionado"
 
 #: clientgui/DlgExclusiveApps.cpp:60
 #, c-format
@@ -1694,7 +1697,7 @@ msgstr "%s - Aplicações Exclusivas"
 #: clientgui/DlgExclusiveApps.cpp:72
 msgid ""
 "Suspend processor and network usage when these applications are running:"
-msgstr "Suspende processador e utilização da rede quando estas aplicações estiverem a ser executadas:"
+msgstr "Suspende o processador e a utilização da rede quando estas aplicações estiverem em execução:"
 
 #: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
 msgid "Add..."
@@ -1702,10 +1705,10 @@ msgstr "Adicionar..."
 
 #: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
 msgid "Add an application to this list"
-msgstr "Adicionar uma aplicação a esta lista"
+msgstr "Adiciona uma aplicação a esta lista"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Remover"
 
@@ -1715,23 +1718,23 @@ msgstr "Remove uma aplicação desta lista"
 
 #: clientgui/DlgExclusiveApps.cpp:96
 msgid "Suspend GPU usage when these applications are running:"
-msgstr "Suspende utilização da GPU quando estas aplicações estiverem a ser executadas"
+msgstr "Suspende a utilização da GPU quando estas aplicações estiverem em execução:"
 
 #: clientgui/DlgExclusiveApps.cpp:122
 msgid "For advanced options, refer to "
-msgstr "Para opções avançadas, seguir estas instruções: "
+msgstr "Para opções avançadas, siga estas instruções: "
 
 #: clientgui/DlgExclusiveApps.cpp:147
 msgid "save all values and close the dialog"
-msgstr "guardar todos os valores e fechar caixa de diálogo"
+msgstr "Guardar todos os valores e fechar a janela"
 
 #: clientgui/DlgExclusiveApps.cpp:153
 msgid "close the dialog without saving"
-msgstr "fechar caixa de diálogo sem salvar"
+msgstr "Fechar a janela sem guardar"
 
 #: clientgui/DlgExclusiveApps.cpp:158
 msgid "shows the preferences web page"
-msgstr "mostra a página web das preferências"
+msgstr "mostra a página da Web das preferências"
 
 #. TODO: fill in the default directory for MSW
 #. TODO: fill in the default directory for Linux
@@ -1761,7 +1764,7 @@ msgstr "Adicionar aplicação exclusiva"
 #: clientgui/DlgExclusiveApps.cpp:379
 #, c-format
 msgid "Application names must end with '%s'"
-msgstr "Os nomes das aplicações têm de terminar com '%s'"
+msgstr "Os nomes de aplicação devem terminar com '%s'"
 
 #: clientgui/DlgExclusiveApps.cpp:403
 #, c-format
@@ -1771,7 +1774,7 @@ msgstr "'%s' já está na lista."
 #: clientgui/DlgExitMessage.cpp:82
 #, c-format
 msgid "%s - Exit Confirmation"
-msgstr "%s - Confirmar Saída"
+msgstr "%s - Confirmação de Saída"
 
 #: clientgui/DlgExitMessage.cpp:130
 #, c-format
@@ -1782,7 +1785,7 @@ msgid ""
 "\n"
 "If you also want to stop running the tasks,\n"
 "choose from the following options:"
-msgstr "Pediu para terminar o %s,\nque lhe permite ver e gerir as tarefas\nem execução no seu computador.\n\nSe também quer parar as tarefas em execução,\nescolha uma das seguintes opções:"
+msgstr "Pediu para sair do %s,\nque lhe permite ver e gerir as tarefas\nem execução no seu computador.\n\nSe também pretende parar as tarefas em execução,\nescolha uma das seguintes opções:"
 
 #: clientgui/DlgExitMessage.cpp:135
 #, c-format
@@ -1793,16 +1796,16 @@ msgid ""
 "In most cases, it is better just to close the %s window\n"
 "rather than to exit the application; that will allow %s to run its\n"
 "tasks at the times you selected in your preferences."
-msgstr "Isto irá desligar o %s e as tarefas até que\no %s ou a %s protecção de ecrã esteja a ser executada novamente.\n\nNa maioria dos casos, é melhor fechar apenas a %s janela\ndo que sair da aplicação; isso irá permitir %s executar as\ntarefas nos tempos que seleccionou nas suas preferências."
+msgstr "Isto irá encerrar o %s e as tarefas até que\no %s ou o protetor de ecrã do %s sejam executados novamente.\n\nNa maioria dos casos, é melhor fechar apenas a janela do %s\ndo que sair da aplicação; isso irá permitir que o %s execute as\ntarefas às horas agendadas nas suas preferências."
 
 #: clientgui/DlgExitMessage.cpp:153
 #, c-format
 msgid "Stop running tasks when exiting the %s"
-msgstr "Parar tarefas em execução quando sair do %s"
+msgstr "Parar as tarefas em execução ao sair do %s"
 
 #: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
-msgstr "Lembrar desta decisão e não mostrar esta caixa de diálogo."
+msgstr "Lembrar esta decisão e não voltar a mostrar esta janela."
 
 #: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
 #: clientgui/DlgOptions.cpp:415 clientgui/DlgSelectComputer.cpp:168
@@ -1812,27 +1815,27 @@ msgstr "&Cancelar"
 
 #: clientgui/DlgGenericMessage.cpp:112
 msgid "Don't show this dialog again."
-msgstr "Não mostrar esta caixa de diálogo outra vez."
+msgstr "Não voltar a mostrar esta janela."
 
 #: clientgui/DlgHiddenColumns.cpp:64
 #, c-format
 msgid "%s Column Selection"
-msgstr "%s Selecção de Coluna"
+msgstr "%s - Seleção de Colunas"
 
 #: clientgui/DlgHiddenColumns.cpp:77
 #, c-format
 msgid "Select which columns %s should show."
-msgstr "Seleccione que colunas o %s deve mostrar."
+msgstr "Selecione as colunas que o %s deverá mostrar."
 
 #: clientgui/DlgHiddenColumns.cpp:358
 msgid ""
 "Are you sure you want to reset all list columns to the default "
 "configurations?"
-msgstr "Tem a certeza que deseja reiniciar todas as colunas da lista para configurações predefinidas?"
+msgstr "Tem a certeza que deseja reiniciar todas as colunas de lista para configurações predefinidas?"
 
 #: clientgui/DlgHiddenColumns.cpp:359
 msgid "Confirm defaults"
-msgstr "Confirmar predefinidos"
+msgstr "Confirmar predefinições"
 
 #: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
 #: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
@@ -1841,7 +1844,7 @@ msgstr "Não solicitar tarefas para"
 
 #: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
-msgstr "Preferências do projecto"
+msgstr "Preferências do projeto"
 
 #: clientgui/DlgItemProperties.cpp:197
 msgid "Account manager preference"
@@ -1849,11 +1852,11 @@ msgstr "Preferências do gestor de conta"
 
 #: clientgui/DlgItemProperties.cpp:200
 msgid "Project has no apps for "
-msgstr "O projecto não tem aplicações por"
+msgstr "O projeto não tem aplicações para"
 
 #: clientgui/DlgItemProperties.cpp:203
 msgid "Client configuration excludes "
-msgstr "Configurações do cliente exclui"
+msgstr "A configuração do cliente exclui"
 
 #: clientgui/DlgItemProperties.cpp:209
 #, c-format
@@ -1868,7 +1871,7 @@ msgstr "%s intervalo de deferimento da obtenção de tarefas"
 #. set dialog title
 #: clientgui/DlgItemProperties.cpp:247
 msgid "Properties of project "
-msgstr "Propriedades do projecto"
+msgstr "Propriedades do projeto"
 
 #. layout controls
 #: clientgui/DlgItemProperties.cpp:251 clientgui/DlgOptions.cpp:232
@@ -1897,11 +1900,11 @@ msgstr "Agendamento RPC deferido por"
 
 #: clientgui/DlgItemProperties.cpp:260
 msgid "File downloads deferred for"
-msgstr "Transferência dos ficheiros deferidos por"
+msgstr "Transferências de ficheiro deferidas por"
 
 #: clientgui/DlgItemProperties.cpp:263
 msgid "File uploads deferred for"
-msgstr "Uploads dos ficheiros deferidos por"
+msgstr "Envios de ficheiro deferidos por"
 
 #: clientgui/DlgItemProperties.cpp:265
 msgid "Disk usage"
@@ -1909,7 +1912,7 @@ msgstr "Utilização do disco"
 
 #: clientgui/DlgItemProperties.cpp:266
 msgid "Computer ID"
-msgstr "ID do Computador"
+msgstr "Id. do Computador"
 
 #: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
@@ -1936,7 +1939,7 @@ msgstr "Não solicitar tarefas"
 
 #: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
-msgstr "Agendamento de tarefas em progresso"
+msgstr "Agendamento em progresso"
 
 #: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
@@ -1948,7 +1951,7 @@ msgstr "Localização do anfitrião"
 
 #: clientgui/DlgItemProperties.cpp:281
 msgid "default"
-msgstr "predefinido"
+msgstr "predefinição"
 
 #: clientgui/DlgItemProperties.cpp:285
 msgid "Added via account manager"
@@ -1956,7 +1959,7 @@ msgstr "Adicionado através do gestor de conta"
 
 #: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
-msgstr "Remover quando as tarefas concluirem"
+msgstr "Remover quando as tarefas estiverem concluídas"
 
 #: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
@@ -2001,11 +2004,11 @@ msgstr "CPU"
 
 #: clientgui/DlgItemProperties.cpp:341
 msgid "Duration correction factor"
-msgstr "Duração do factor de correcção"
+msgstr "Duração do fator de correção"
 
 #: clientgui/DlgItemProperties.cpp:349
 msgid "Last scheduler reply"
-msgstr "Última resposta do agendador"
+msgstr "Última resposta de agendamento"
 
 #: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
@@ -2029,7 +2032,7 @@ msgstr "Recebido"
 
 #: clientgui/DlgItemProperties.cpp:380
 msgid "Report deadline"
-msgstr "Reportar data limite de entrega"
+msgstr "Data limite de entrega"
 
 #: clientgui/DlgItemProperties.cpp:382
 msgid "Resources"
@@ -2037,27 +2040,27 @@ msgstr "Recursos"
 
 #: clientgui/DlgItemProperties.cpp:385
 msgid "Estimated computation size"
-msgstr "Tamanho estimado de computação"
-
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "Tempo da CPU no último ponto de verificação"
+msgstr "Tamanho de computação estimado"
 
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Tempo da CPU"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Tempo de CPU desde o checkpoint"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Tempo decorrido"
 
 #: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
-msgstr "Tempo restante previsto"
+msgstr "Tempo restante estimado"
 
 #: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
-msgstr "Fracção feita"
+msgstr "Fração concluída"
 
 #: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
@@ -2069,11 +2072,11 @@ msgstr "Tamanho previsto do trabalho"
 
 #: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
-msgstr "Directoria"
+msgstr "Pasta"
 
 #: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
-msgstr "ID do Processo"
+msgstr "Identificação do Processo"
 
 #: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
 #: clientgui/DlgItemProperties.cpp:413
@@ -2096,8 +2099,8 @@ msgstr "por segundo"
 msgid "Executable"
 msgstr "Executável"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Local:"
 
@@ -2111,55 +2114,55 @@ msgstr "Idioma:"
 
 #: clientgui/DlgOptions.cpp:186
 msgid "What language should BOINC use?"
-msgstr "Que idioma deve o BOINC utilizar?"
+msgstr "Qual o idioma a utilizar no BOINC?"
 
 #: clientgui/DlgOptions.cpp:190
 msgid "Notice reminder interval:"
-msgstr "Intervalo de advertência de noticias:"
+msgstr "Intervalo de lembrança de notícias:"
 
 #: clientgui/DlgOptions.cpp:197
 msgid "How often should BOINC remind you of new notices?"
-msgstr "Com quem frequência deve o BOINC lembrar-lhe de novas notícias?"
+msgstr "Com que frequência é que o BOINC deve lembrar-lhe das novas notícias?"
 
 #: clientgui/DlgOptions.cpp:202
 msgid "Run Manager at login?"
-msgstr "Executar o Gestor no login?"
+msgstr "Executar o Gestor depois de iniciar a sessão?"
 
 #: clientgui/DlgOptions.cpp:208
 msgid "Run the BOINC Manager when you log on."
-msgstr "Executar o BOINC Manager quando se liga"
+msgstr "Executa o BOINC Manager quando inicia a sessão."
 
 #: clientgui/DlgOptions.cpp:213
 msgid "Run daemon?"
-msgstr "Correr daemon?"
+msgstr "Executar daemon?"
 
 #: clientgui/DlgOptions.cpp:219
 msgid "Run daemon when launching the Manager."
-msgstr "Correr daemon quando o Gestor for lançado."
+msgstr "Executar daemon quando iniciar o Gestor."
 
 #: clientgui/DlgOptions.cpp:223
 msgid "Enable Manager exit dialog?"
-msgstr "Habilitar a caixa de diálogo na saída do gestor?"
+msgstr "Ativar a janela de saída do Gestor?"
 
 #: clientgui/DlgOptions.cpp:229
 msgid "Display the exit dialog when shutting down the Manager."
-msgstr "Mostrar a caixa de diálogo quando o Gestor estiver a ser desligado."
+msgstr "Exibe a janela de saída ao encerrar o Gestor."
 
 #: clientgui/DlgOptions.cpp:240
 msgid "Dial-up and Virtual Private Network settings"
-msgstr "Definições de ligação Dial-up e da Rede Virtual Privada"
+msgstr "Definições de Ligação de Marcação e de Rede Virtual Privada"
 
 #: clientgui/DlgOptions.cpp:254
 msgid "&Set Default"
-msgstr "&Definir Predefinido"
+msgstr "&Definir Predefinição"
 
 #: clientgui/DlgOptions.cpp:259
 msgid "&Clear Default"
-msgstr "&Limpar Predefinido"
+msgstr "&Limpar Predefinição"
 
 #: clientgui/DlgOptions.cpp:266
 msgid "Default Connection:"
-msgstr "Ligação Predefinida:"
+msgstr "Ligação predefinida:"
 
 #: clientgui/DlgOptions.cpp:273
 msgid "Connections"
@@ -2184,16 +2187,16 @@ msgstr "Porta:"
 
 #: clientgui/DlgOptions.cpp:310 clientgui/DlgOptions.cpp:374
 msgid "Don't use proxy for:"
-msgstr "Não usar proxy para:"
+msgstr "Não utilizar proxy para:"
 
 #: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
 msgid "Leave these blank if not needed"
-msgstr "Deixar em branco se desnecessário"
+msgstr "Deixar em branco se não for preciso"
 
 #: clientgui/DlgOptions.cpp:323 clientgui/DlgOptions.cpp:387
 #: clientgui/ProxyPage.cpp:343 clientgui/ProxyPage.cpp:363
 msgid "User Name:"
-msgstr "Nome de Utilizador:"
+msgstr "Nome de utilizador:"
 
 #: clientgui/DlgOptions.cpp:331 clientgui/DlgOptions.cpp:395
 #: clientgui/DlgSelectComputer.cpp:152 clientgui/ProxyPage.cpp:346
@@ -2244,26 +2247,26 @@ msgstr "nunca"
 #: clientgui/DlgOptions.cpp:703
 #, c-format
 msgid "%s - Language Selection"
-msgstr "%s - Selecção de Idioma"
+msgstr "%s - Seleção de Idioma"
 
 #: clientgui/DlgOptions.cpp:710
 #, c-format
 msgid ""
 "The %s's language has been changed.  In order for this change to take "
 "effect, you must restart the %s."
-msgstr "O idioma %s's foi alterado. Para que esta alteração tenha efeito, tem de reiniciar o %s."
+msgstr "O idioma do %s's foi alterado. Para que esta alteração seja aplicada, deve reiniciar o %s."
 
 #: clientgui/DlgSelectComputer.cpp:91
 #, c-format
 msgid "%s - Select Computer"
-msgstr "%s - Seleccione Computador"
+msgstr "%s - Seleção de Computador"
 
 #: clientgui/DlgSelectComputer.cpp:125
 #, c-format
 msgid ""
 "Another instance of %s is already running \n"
 "on this computer.  Please select a client to monitor."
-msgstr "Outra instância do %s já está a em execução \nneste computador. Por favor, seleccione o cliente a monitorizar."
+msgstr "Outra instância do %s já está em execução \nneste computador. Por favor, selecione o cliente a monitorizar."
 
 #: clientgui/DlgSelectComputer.cpp:143
 msgid "Host name:"
@@ -2271,15 +2274,15 @@ msgstr "Nome do anfitrião:"
 
 #: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
 msgid "Message boards"
-msgstr "Fóruns"
+msgstr "Fóruns de Discussão"
 
 #: clientgui/Localization.cpp:33
 msgid "Correspond with other users on the SETI at home message boards"
-msgstr "Trocar mensagens com outros utilizadores nos fóruns do SETI at home"
+msgstr "Corresponder com outros utilizadores nos fóruns de mensagens de SETI at Home"
 
 #: clientgui/Localization.cpp:37
 msgid "Ask questions and report problems"
-msgstr "Colocar perguntas e reportar problemas"
+msgstr "Colocar perguntas e comunicar problemas"
 
 #: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
 #: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
@@ -2289,7 +2292,7 @@ msgstr "A sua conta"
 #: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
 #: clientgui/Localization.cpp:113
 msgid "View your account information and credit totals"
-msgstr "Ver informações da sua conta e os créditos totais"
+msgstr "Ver a informação da sua conta e os créditos totais"
 
 #: clientgui/Localization.cpp:43
 msgid "Your preferences"
@@ -2297,7 +2300,7 @@ msgstr "As suas preferências"
 
 #: clientgui/Localization.cpp:45
 msgid "View and modify your SETI at home account profile and preferences"
-msgstr "Ver e modificar as suas preferências no perfil da conta no SETI at home"
+msgstr "Ver e modificar as preferências e perfil da sua conta do SETI at home"
 
 #: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
 msgid "Your results"
@@ -2305,7 +2308,7 @@ msgstr "Os seus resultados"
 
 #: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
 msgid "View your last week (or more) of computational results and work"
-msgstr "Ver os resultados da computação e trabalhos da última semana (ou mais)"
+msgstr "Visualiza os seus resultados de computação e os trabalhos da última semana (ou mais)"
 
 #: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
 msgid "Your computers"
@@ -2313,7 +2316,7 @@ msgstr "Os seus computadores"
 
 #: clientgui/Localization.cpp:53
 msgid "View a listing of all the computers on which you are running SETI at Home"
-msgstr "Ver uma lista de todos os computadores onde está a executar o SETI at Home"
+msgstr "Visualiza uma lista de todos os computadores onde está a executar o SETI at Home"
 
 #: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
 msgid "Your team"
@@ -2321,15 +2324,15 @@ msgstr "A sua equipa"
 
 #: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
 msgid "View information about your team"
-msgstr "Ver informações acerca da sua equipa"
+msgstr "Ver informação sobre a sua equipa"
 
 #: clientgui/Localization.cpp:61
 msgid "Common questions"
-msgstr "Questões comuns"
+msgstr "Perguntas comuns"
 
 #: clientgui/Localization.cpp:63
 msgid "Read the Einstein at Home Frequently Asked Question list"
-msgstr "Ler a lista das Questões Frequentes no Einstein at Home"
+msgstr "Ler a lista de Perguntas Frequentes de Einstein at Home"
 
 #: clientgui/Localization.cpp:65
 msgid "Screensaver info"
@@ -2337,12 +2340,12 @@ msgstr "Informações da protecção de ecrã"
 
 #: clientgui/Localization.cpp:67
 msgid "Read a detailed description of the Einstein at Home screensaver"
-msgstr "Ler uma descrição detalhada da protecção de ecrã no Einstein at Home"
+msgstr "Ler uma descrição detalhada da protetor de ecrã de Einstein at Home"
 
 #: clientgui/Localization.cpp:71
 msgid ""
 "Correspond with admins and other users on the Einstein at Home message boards"
-msgstr "Trocar mensagens com administradores e outros utilizadores nos fóruns do Einstein at Home"
+msgstr "Corresponder com os administradores e outros utilizadores nos fóruns de mensagens de Einstein at Home"
 
 #: clientgui/Localization.cpp:73
 msgid "Einstein status"
@@ -2350,19 +2353,19 @@ msgstr "Estado do Einstein"
 
 #: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
-msgstr "Estado actual do servidor Einstein at Home"
+msgstr "Estado atual do servidor Einstein at Home"
 
 #: clientgui/Localization.cpp:77
 msgid "Report problems"
-msgstr "Reportar problemas"
+msgstr "Comunicar problemas"
 
 #: clientgui/Localization.cpp:79
 msgid "A link to the Einstein at Home problems and bug reports message board"
-msgstr "O link para reportar problemas e bugs no fórum do Einstein at Home"
+msgstr "Uma hiperligação para o fórum de mensagens sobre problemas e erros de Einstein at Home"
 
 #: clientgui/Localization.cpp:83
 msgid "View and modify your Einstein at Home account profile and preferences"
-msgstr "Ver e modificar as suas preferências de perfil na conta Einstein at Home"
+msgstr "Ver e modificar as preferências e perfil da sua conta de Einstein at Home"
 
 #: clientgui/Localization.cpp:85
 msgid "Account summary"
@@ -2371,11 +2374,11 @@ msgstr "Resumo da conta"
 #: clientgui/Localization.cpp:95
 msgid ""
 "View a listing of all the computers on which you are running Einstein at Home"
-msgstr "Ver uma lista de todos os computadores onde está a executar o Einstein at Home"
+msgstr "Visualiza uma lista de todos os computadores onde está a executar o Einstein at Home"
 
 #: clientgui/Localization.cpp:101
 msgid "LIGO project"
-msgstr "Projecto LIGO"
+msgstr "Projeto LIGO"
 
 #: clientgui/Localization.cpp:103
 msgid ""
@@ -2385,11 +2388,11 @@ msgstr "A página principal do projecto LASER Interferometer Gravitational-wave
 
 #: clientgui/Localization.cpp:105
 msgid "GEO-600 project"
-msgstr "Projecto GEO-600"
+msgstr "Projeto GEO-600"
 
 #: clientgui/Localization.cpp:107
 msgid "The home page of the GEO-600 project"
-msgstr "A página principal do projecto GEO-600"
+msgstr "A página principal do projeto GEO-600"
 
 #: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
 #: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
@@ -2398,27 +2401,27 @@ msgstr "Equipa"
 
 #: clientgui/Localization.cpp:117
 msgid "Info about your Team"
-msgstr "Informações acerca da sua Equipa"
+msgstr "Informação sobre a sua Equipa"
 
 #: clientgui/Localization.cpp:123
 msgid "Get help for climateprediction.net"
-msgstr "Obter ajuda para o climateprediction.net"
+msgstr "Obter ajuda para climateprediction.net"
 
 #: clientgui/Localization.cpp:125
 msgid "News"
-msgstr "Novidades"
+msgstr "Notícias"
 
 #: clientgui/Localization.cpp:127
 msgid "climateprediction.net News"
-msgstr "Novidades de climateprediction.net"
+msgstr "Notícias de climateprediction.net"
 
 #: clientgui/Localization.cpp:131
 msgid "View your account information, credits, and trickles"
-msgstr "Ver informações da sua conta, créditos e avisos"
+msgstr "Ver a informação da sua conta, créditos e avisos"
 
 #: clientgui/Localization.cpp:135
 msgid "Info about your team"
-msgstr "Informações acerca da sua equipa"
+msgstr "Informação sobre a sua equipa"
 
 #: clientgui/Localization.cpp:141
 msgid "Search for help in our help system"
@@ -2434,7 +2437,7 @@ msgstr "Resumo das estatísticas para o World Community Grid"
 
 #: clientgui/Localization.cpp:147
 msgid "My Grid"
-msgstr "A Minha Grelha"
+msgstr "A Minha Rede"
 
 #: clientgui/Localization.cpp:149
 msgid "Your statistics and settings"
@@ -2442,7 +2445,7 @@ msgstr "As suas estatísticas e definições"
 
 #: clientgui/Localization.cpp:151
 msgid "Device Profiles"
-msgstr "Perfis do dispositivo"
+msgstr "Perfis de Dispositivo"
 
 #: clientgui/Localization.cpp:153
 msgid "Update your device settings"
@@ -2454,205 +2457,193 @@ msgstr "Pesquisa"
 
 #: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
-msgstr "Aprender acerca dos projectos alojados em World Community Grid"
-
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "A iniciar cliente"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Ligando-se ao cliente"
+msgstr "Saber sobre os projetos alojados em World Community Grid"
 
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "A recuperar o estado do sistema; por favor aguarde..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Aplicação em falta"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
-msgstr "Por favor, transfira e instale a aplicação CoRD de http://cord.sourceforge.net"
+msgstr "Por favor, transfira e instale a aplicação CoRD a partir de http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "em bateria"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "computador em utilização"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "pedido do utilizador"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "hora do dia"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "Testes de desempenho da CPU em progresso"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
-msgstr "espaço em disco necessário - verifique preferências"
+msgstr "é necessário espaço em disco - verifique as preferências"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "computador não está em utilização"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "a iniciar"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "uma aplicação exclusiva está em execução"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
-msgstr "A CPU está ocupada"
+msgstr "O CPU está ocupada"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "limite de largura de banda excedido"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
-msgstr "pedido pelo sistema operativo"
+msgstr "solicitado pelo sistema operativo"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "razão desconhecida"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
-msgstr "GPU não detectado,"
+msgstr "GPU não detectada,"
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Novo"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
-msgstr "Transferência falhada"
+msgstr "A transferência falhou"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
-msgstr "Fazendo a transferência"
+msgstr "A transferir"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
-msgstr "(suspenso - "
+msgstr "(suspensa - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
-msgstr "Projecto suspenso pelo utilizador"
+msgstr "Projeto suspenso pelo utilizador"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Tarefa suspensa pelo utilizador"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Suspenso - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU suspensa - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "A aguardar por memória"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "A aguardar por memória partilhada"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
-msgstr "Executando"
+msgstr "Em execução..."
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
-msgstr " (CPU não intensiva)"
+msgstr " (CPU não intensivo)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "A aguardar a execução"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
-msgstr "Pronto para começar"
+msgstr "Pronto para iniciar"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Adiado:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Adiado"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
-msgstr "Aguardando acesso à rede"
+msgstr "A aguardar por acesso à rede"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Erro de computação"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
-msgstr "Upload falhado"
+msgstr "Envio falhou"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
-msgstr "A fazer o Upload"
+msgstr "A enviar"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Abortado pelo utilizador"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
-msgstr "Abortado pelo projecto"
+msgstr "Abortado pelo projeto"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
-msgstr "Abortado: não iniciado devido à data limite excedida"
+msgstr "Abortado: não iniciada devido à data limite ter sido ultrapassada"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
-msgstr "Cancelado: limite de disco para tarefas excedido"
+msgstr "Abortado: limite de disco da tarefa excedido"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
-msgstr "Abortado: limite de tempo excedido"
+msgstr "Abortado: limite de tempo de execução excedido"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
-msgstr "Abortado: limite em memória excedido"
+msgstr "Abortado: limite de memória excedido"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Abortado"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Reconhecido"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
-msgstr "Pronto para reportar"
+msgstr "Pronto para comunicar"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Erro: estado inválido '%d'"
@@ -2663,11 +2654,11 @@ msgstr "Sem ligação à Internet"
 
 #: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
-msgstr "Por favor ligue-se à Internet e tente novamente."
+msgstr "Por favor, ligue à Internet e tente novamente."
 
 #: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
-msgstr "Projecto não encontrado"
+msgstr "Projeto não encontrado"
 
 #: clientgui/NotDetectedPage.cpp:184
 msgid ""
@@ -2686,7 +2677,7 @@ msgid ""
 "manager.\n"
 "\n"
 "Please check the URL and try again."
-msgstr "O URL que forneceu não é de uma conta baseada no\nBOINC Manager.\n\nPor favor, verifique o URL e tente novamente."
+msgstr "O URL indicado não é de uma conta com base no\nBOINC Manager.\n\nPor favor, verifique o URL e tente novamente."
 
 #: clientgui/NotFoundPage.cpp:181
 msgid "Login Failed."
@@ -2706,23 +2697,23 @@ msgstr "mais..."
 
 #: clientgui/ProjectInfoPage.cpp:221
 msgid "Choose a project"
-msgstr "Escolha o projecto"
+msgstr "Escolha um projeto"
 
 #: clientgui/ProjectInfoPage.cpp:226
 msgid "To choose a project, click its name or type its URL below."
-msgstr "Para escolher o projecto, clique nele ou escreva o URL em baixo."
+msgstr "Para escolher um projeto, clique no seu nome ou digite o seu URL em baixo."
 
 #: clientgui/ProjectInfoPage.cpp:242
 msgid "Categories:"
 msgstr "Categorias:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
-msgstr "Projectos:"
+msgstr "Projetos:"
 
 #: clientgui/ProjectInfoPage.cpp:274
 msgid "Project details"
-msgstr "Detalhes do projecto"
+msgstr "Detalhes do projeto"
 
 #: clientgui/ProjectInfoPage.cpp:284
 msgid "Research area:"
@@ -2734,7 +2725,7 @@ msgstr "Organização:"
 
 #: clientgui/ProjectInfoPage.cpp:304
 msgid "Web site:"
-msgstr "Website:"
+msgstr "Site da Web:"
 
 #: clientgui/ProjectInfoPage.cpp:315
 msgid "Supported systems:"
@@ -2742,7 +2733,7 @@ msgstr "Sistemas suportados:"
 
 #: clientgui/ProjectInfoPage.cpp:352
 msgid "Project URL:"
-msgstr "URL do Projecto:"
+msgstr "URL do projeto:"
 
 #: clientgui/ProjectInfoPage.cpp:486 clientgui/ProjectInfoPage.cpp:686
 #: clientgui/ProjectInfoPage.cpp:690
@@ -2753,39 +2744,36 @@ msgstr "Todos"
 msgid ""
 "This project may not have work for your type of computer.  Do you want to "
 "add it anyway?"
-msgstr "Este projecto pode não ter trabalhos para o seu tipo de computador. Quer adicioná-lo de qualquer maneira?"
+msgstr "Este projeto poderá não ter trabalhos para o seu tipo de computador. Mesmo assim, deseja adicioná-lo?"
 
 #: clientgui/ProjectInfoPage.cpp:767
 msgid "You already added this project. Please choose a different project."
-msgstr "Já adicionou este projecto. Por favor escolha um projecto diferente."
+msgstr "Já adicionou este projeto. Por favor, escolha um projeto diferente."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "A comunicar com o projecto."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "A comunicar com o projeto\nPor favor, aguarde..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Ficheiros necessários não encontrados no servidor."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Ocorreu um erro interno no servidor."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "A comunicar com o projecto\nPor favor aguarde..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
-msgstr "Bem vindo a %s."
+msgstr "Bem vindo ao %s."
 
 #: clientgui/ProjectWelcomePage.cpp:254
 msgid "You have volunteered to compute for this project:"
-msgstr "Voluntariou-se para realizar computação neste projecto:"
+msgstr "Voluntariou-se para realizar computação para este projeto:"
 
 #: clientgui/ProjectWelcomePage.cpp:255
 msgid "Name:"
@@ -2793,7 +2781,7 @@ msgstr "Nome:"
 
 #: clientgui/ProjectWelcomePage.cpp:258
 msgid "Home:"
-msgstr "Página principal:"
+msgstr "Início:"
 
 #: clientgui/ProjectWelcomePage.cpp:262
 msgid "Description:"
@@ -2811,11 +2799,11 @@ msgstr "Utilizador:"
 msgid ""
 "WARNING: This project is not registered with BOINC.  Make sure you trust it "
 "before continuing."
-msgstr "AVISO: Este projecto não está registado no BOINC. Tenha a certeza que confia no mesmo antes de continuar."
+msgstr "AVISO: Este projeto não está registado no BOINC. Certifique-se que confia no mesmo antes de continuar."
 
 #: clientgui/ProjectWelcomePage.cpp:277
 msgid "To continue, click Next."
-msgstr "Para continuar, clique em Próximo."
+msgstr "Para continuar, clique em 'Seguinte'."
 
 #: clientgui/ProxyInfoPage.cpp:195
 msgid "Network communication failure"
@@ -2836,7 +2824,7 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr "The World Community Grid - O software BOINC falhou ao efectuar a comunicação\nà Internet. As razões mais prováveis são:\n\n1) Problemas de conectividade. Verifique a sua ligação à rede ou o modem,\ndepois clique em voltar Atrás e tente novamente.\n\n2) Software da firewall pessoal está a bloquear o World Community\nGrid - Software BOINC. Configure a sua firewall pessoal para permitir que o\nBOINC e o BOINC Manager comunique na porta 80 e na porta 443,\ndepois clique em voltar atr [...]
+msgstr "The World Community Grid - O Software BOINC não conseguiu comunicar\nna Internet. As razões mais prováveis são:\n\n1) Problemas de conetividade. Verifique a sua ligação à rede ou o modem,\ndepois clique em 'Anterior' para tentar novamente.\n\n2) O software de firewall pessoal está a bloquear o World Community\nGrid - Software BOINC. Configure a sua firewall pessoal para permitir que o\nBOINC e o BOINC Manager comuniquem na porta 80 e na porta 443,\ndepois clique em 'Anterior' par [...]
 
 #: clientgui/ProxyInfoPage.cpp:203
 msgid ""
@@ -2853,7 +2841,7 @@ msgid ""
 "\n"
 "3) You are using a proxy server.\n"
 "Click Next to configure BOINC's proxy settings."
-msgstr "O BOINC falhou ao efectuar a comunicação à Internet.\nAs razões mais prováveis são:\n\n1) Problemas de conectividade. Verifique a rede\nou a ligação ao modem e depois clique em Voltar Atrás e tente novamente.\n\n2) Software da firewall pessoal está a bloquear o BOINC.\nConfigure a sua firewall pessoal para permitir o BOINC e\no BOINC Manager comunicar na porta 80,\ndepois clique em Voltar Atrás e tente novamente.\n\n3) Está a utilizar um servidor de proxy.\nClique em Próximo para [...]
+msgstr "O BOINC não conseguiu comunicar na Internet.\nAs razões mais prováveis são:\n\n1) Problemas de conectividade. Verifique a sua rede\nou a ligação ao modem e depois clique em 'Anterior' e tente novamente.\n\n2) O software da firewall pessoal está a bloquear o BOINC.\nConfigure a sua firewall pessoal para permitir que o BOINC e\no BOINC Manager comuniquem na porta 80,\ndepois clique em 'Anterior' e tente novamente.\n\n3) Está a utilizar um servidor de proxy.\nClique em 'Seguinte' pa [...]
 
 #: clientgui/ProxyPage.cpp:331
 msgid "Proxy configuration"
@@ -2861,7 +2849,7 @@ msgstr "Configuração da proxy"
 
 #: clientgui/ProxyPage.cpp:334
 msgid "HTTP proxy"
-msgstr "Proxy HTTP"
+msgstr "HTTP Proxy"
 
 #: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
 msgid "Server:"
@@ -2873,383 +2861,633 @@ msgstr "Detectar automaticamente"
 
 #: clientgui/ProxyPage.cpp:354
 msgid "SOCKS proxy"
-msgstr "Proxy SOCKS"
+msgstr "SOCKS Proxy"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Termos de Uso"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Tema"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Por favor, leia os seguintes termos de uso:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Seleciona a aparência da interface do utilizador."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Concordo com os termos de uso."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Visualização Avançada...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Não concordo com os termos de utilização."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Exibe a interface gráfica avançada."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projecto temporariamente indisponível"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Configurar as opções de visualização e configurações de proxy"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "O projecto está temporariamente indisponível.\n\nPor favor tente mais tarde."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Exibe as mensagens de diagnóstico."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Gestor de conta temporariamente indisponível"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "O gestor de conta está temporariamente indisponível.\n\nPor favor tente mais tarde."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Predefinição"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Por favor especifique uma chave de conta para continuar."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Suspender"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Chave de Conta Inválida; por favor insira uma Chave de Conta Válida"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Suspender Computação"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Conflito de validação"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Retomar Computação"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Por favor especifique um endereço de e-mail"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Notícias"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Endereço de e-mail inválido; por favor insira um endereço de e-mail válido"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Abre uma janela para ver as notícias dos projetos ou do BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "URL em falta"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Obter ajuda com o %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Por favor especifique um URL.\nPor exemplo:\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "A obter notícias; por favor, aguarde..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "URL Inválido"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "De momento, não existem notícias."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Por favor especifique um URL válido.\nPor exemplo:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Fechar"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' não contém um nome de anfitrião válido."
+msgid "%s - Notices"
+msgstr "%s - Notícias"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' não contém um caminho válido."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Para definições adicionais, selecione Opções -> Preferências de Computação."
 
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Comandos"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "Gb de espaço em disco"
 
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Copiar todas as mensagens"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Preferências de Computação"
 
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Copiar as mensagens seleccionadas"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Rejeitar todas as preferências locais e utilizar as preferências da Web?"
 
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Mostrar apenas este projecto"
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
+msgid "Update"
+msgstr "Atualizar"
 
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Mostrar apenas as mensagens para o projecto seleccionado."
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
+msgid ""
+"Report all completed tasks, get latest credit, get latest preferences, and "
+"possibly get more tasks."
+msgstr "Comunicar todas as tarefas concluídas, obter os últimos créditos, obter as últimas preferências, e possivelmente mais tarefas."
 
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Mensagens"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "A copiar todas as mensagens para àrea de transferência..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "A copiar as mensagens seleccionadas para àrea de transferência..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "A filtrar mensagens..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Mostrar todas as mensagens"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Mostrar mensagens para todos os projectos."
-
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "A pesquisar noitícias; por favor aguarde..."
-
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Não existem notícias nesta altura."
-
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Notícias"
-
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
-msgid "Update"
-msgstr "Actualizar"
-
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr "Reportar todas as tarefas concluídas, obter os últimos créditos, obter as últimas preferências e possivelmente mais tarefas."
-
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Suspender"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
-msgstr "Suspender tarefas para este projecto."
+msgstr "Suspender tarefas para este projeto."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
-msgstr "Não obter novas tarefas"
+msgstr "Sem novas tarefas"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
-msgstr "Não obter novas tarefas para este projecto."
+msgstr "Não obter novas tarefas para este projeto."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Reiniciar projeto"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
-msgstr "Eliminar todos os ficheiros e tarefas associadas a este projecto e, obter novas tarefas. Pode actualizar o projecto primeiro para reportar tarefas concluídas."
+msgstr "Elimina todos os ficheiros e tarefas associadas a este projecto, e obter novas tarefas. Pode actualizar primeiro o projecto para comunicar quaisquer tarefas concluídas."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
-msgstr "Remover este projecto. Tarefas em progresso serão perdidas (use 'Actualizar' primeiro para reportar tarefas concluídas)."
+msgstr "Remove este projeto. As tarefas em progresso serão perdidas (utilize primeiro 'Atualizar' para comunicar quaisquer tarefas concluídas)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Propriedades"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
-msgstr "Mostrar detalhes do projecto."
+msgstr "Mostra os detalhes do projeto."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Conta"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Retoma as tarefas para este projeto."
 
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Trabalho concluído"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Permitir novas tarefas"
 
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Média de trabalho realizado"
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Permite a obtenção de novas tarefas para este projeto."
 
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Estado"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Não obter novas tarefas para este projeto."
 
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projectos"
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
+#, c-format
+msgid "Are you sure you want to reset project '%s'?"
+msgstr "Tem a certeza que deseja reiniciar o projeto '%s'?"
 
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "A actualizar projecto..."
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
+msgid "Reset Project"
+msgstr "Reiniciar Projeto"
+
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
+#, c-format
+msgid "Are you sure you want to remove project '%s'?"
+msgstr "Tem a certeza que deseja remover o projeto '%s'?"
+
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
+msgid "Remove Project"
+msgstr "Remover Projeto"
+
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Adicionar Projeto"
+
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Sincronizar"
 
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "A resumir projecto..."
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Trabalho realizado para este projeto"
 
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "A suspender projecto..."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Voluntarie-se para um ou todos dos mais de 30 projetos, em várias áreas da ciência"
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "A notificar o projecto para permitir a transferência de tarefas adicionais..."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Sincronizar projetos com o sistema do gestor de conta"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "A notificar o projecto para não obter tarefas adicionais..."
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Selecione um projeto para aceder com os controles em baixo"
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "A reiniciar o projeto..."
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Páginas da Web do Projeto"
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Comandos do Projeto"
+
+#: clientgui/sg_ProjectPanel.cpp:279
 #, c-format
-msgid "Are you sure you want to reset project '%s'?"
-msgstr "Tem a certeza que deseja reiniciar o projeto '%s'?"
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Abre um menu de sites da Web para o projeto %s"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
-msgid "Reset Project"
-msgstr "Reiniciar Projeto"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Abre um menu de comandos para aplicar ao projeto %s"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "A remover projecto..."
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Mostrar gráficos"
 
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Mostra os gráficos da aplicação numa janela."
+
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Suspende esta tarefa."
+
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Abortar"
+
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Abandonar esta tarefa. Não obterá créditos por ela."
+
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Mostra os detalhes da tarefa."
+
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "A retomar o trabalho para esta tarefa."
+
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Suspende o trabalho para esta tarefa."
+
+#: clientgui/sg_TaskCommandPopup.cpp:267
 #, c-format
-msgid "Are you sure you want to remove project '%s'?"
-msgstr "Tem a certeza que quer remover o projecto '%s'?"
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Tem a certeza que deseja abortar esta tarefa '%s'?\n(Progresso: %.1lf%%, Estado: %s)"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
-msgid "Remove Project"
-msgstr "Remover Projecto"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Abortar tarefa"
+
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Não tem quaisquer projetos. Por favor, Adicione um Projeto."
+
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Indisponível"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "A lançar o navegador..."
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Tarefas:"
+
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Selecione uma tarefa para aceder"
+
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "De:"
+
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Progresso destas tarefas"
+
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Comandos das Tarefas"
+
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Abrir um menu de comandos para aplicar a esta tarefa"
+
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Aplicação: %s"
+
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
+
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Aplicação: indisponível"
+
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Indisponível"
+
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Decorrido: %s"
+
+#: clientgui/sg_TaskPanel.cpp:868
+#, c-format
+msgid "Remaining (estimated): %s"
+msgstr "Restante (estimado): %s"
+
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Estado: %s"
+
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "A obter o estado atual."
+
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "A transferir trabalho do servidor."
+
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Processamento Suspenso:  A funcionar a Bateria."
+
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Processamento Suspenso:  Utilizador Activo."
+
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Processamento Suspenso:  O utilizador pausou o processamento."
+
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Processamento Suspenso:  Hora do Dia."
+
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Processamento suspenso:  a realizar os Testes de Desempenho."
+
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Processamento Suspenso: necessita de espaço em disco"
+
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Processamento Suspenso."
+
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "A aguardar para contactar os servidores do projeto."
+
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "A obter o estado atual..."
+
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Sem trabalhos disponíveis para processar"
+
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Não foi possível ligar ao cliente de core"
+
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Termos de Utilização"
+
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Por favor, leia os seguintes termos de utilização:"
+
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Eu concordo com os termos de utilização."
+
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Eu não concordo com os termos de utilização."
+
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projeto temporariamente indisponível"
+
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "O projeto está temporariamente indisponível.\n\nPor favor, tente de novo mais tarde."
+
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Gestor de conta temporariamente indisponível"
+
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "O gestor de conta está temporariamente indisponível.\n\nPor favor, tente de novo mais tarde."
+
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Por favor, especifique uma chave de conta para continuar."
+
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Chave de Conta Inválida; por favor, insira uma Chave de Conta Válida"
+
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Conflito de validação"
+
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Por favor, especifique um endereço de e-mail"
+
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Endereço de e-mail inválido; por favor, insira um endereço de e-mail válido"
+
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "URL em falta"
+
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Por favor, especifique um URL.\nPor exemplo:\nhttp://www.example.com/"
+
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "URL Inválido"
+
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Por favor, especifique um URL válido.\nPor exemplo:\nhttp://boincproject.example.com"
+
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' não contém um nome de anfitrião válido."
+
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' não contém um caminho válido."
+
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Comandos"
+
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Copiar todas as mensagens"
+
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Copiar as mensagens seleccionadas"
+
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Mostrar apenas este projeto"
+
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Mostrar apenas as mensagens para o projeto selecionado."
+
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Mensagens"
+
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "A copiar todas as mensagens para área de transferência..."
+
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "A copiar as mensagens selecionadas para a área de transferência..."
+
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "A filtrar mensagens..."
+
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Mostrar todas as mensagens"
+
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Mostrar mensagens para todos os projetos."
+
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Conta"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Resumir tarefas para este projecto."
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Trabalho concluído"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Permitir novas tarefas"
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Média do trabalho realizado"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Permitir obtenção de novas tarefas para este projecto."
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Estado"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Não obter novas tarefas para este projecto."
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projetos"
 
-#: clientgui/ViewProjects.cpp:1131
+#: clientgui/ViewProjects.cpp:1115
 msgid "Requested by user"
-msgstr "Pedido pelo utilizador"
+msgstr "Solicitado pelo utilizador"
 
-#: clientgui/ViewProjects.cpp:1132
+#: clientgui/ViewProjects.cpp:1116
 msgid "To fetch work"
 msgstr "Para obter trabalho"
 
-#: clientgui/ViewProjects.cpp:1133
+#: clientgui/ViewProjects.cpp:1117
 msgid "To report completed tasks"
-msgstr "Para reportar tarefas concluídas"
+msgstr "Para comunicar tarefas concluídas"
 
-#: clientgui/ViewProjects.cpp:1134
+#: clientgui/ViewProjects.cpp:1118
 msgid "To send trickle-up message"
 msgstr "Para enviar mensagem de aviso"
 
-#: clientgui/ViewProjects.cpp:1135
+#: clientgui/ViewProjects.cpp:1119
 msgid "Requested by account manager"
-msgstr "Pedido pelo gestor de conta"
+msgstr "Solicitado pelo gestor de conta"
 
-#: clientgui/ViewProjects.cpp:1136
+#: clientgui/ViewProjects.cpp:1120
 msgid "Project initialization"
-msgstr "Inicialização do projecto"
+msgstr "Inicialização do projeto"
 
-#: clientgui/ViewProjects.cpp:1137
+#: clientgui/ViewProjects.cpp:1121
 msgid "Requested by project"
-msgstr "Pedido pelo projecto"
+msgstr "Solicitado pelo projeto"
 
-#: clientgui/ViewProjects.cpp:1138
+#: clientgui/ViewProjects.cpp:1122
 msgid "Unknown reason"
 msgstr "Razão desconhecida"
 
-#: clientgui/ViewProjects.cpp:1152
+#: clientgui/ViewProjects.cpp:1136
 msgid "Suspended by user"
 msgstr "Suspenso pelo utilizador"
 
-#: clientgui/ViewProjects.cpp:1155
+#: clientgui/ViewProjects.cpp:1139
 msgid "Won't get new tasks"
 msgstr "Não obterá novas tarefas"
 
-#: clientgui/ViewProjects.cpp:1158
+#: clientgui/ViewProjects.cpp:1142
 msgid "Project ended - OK to remove"
-msgstr "Projecto terminado - OK para remover"
+msgstr "Projeto terminado - OK para remover"
 
-#: clientgui/ViewProjects.cpp:1161
+#: clientgui/ViewProjects.cpp:1145
 msgid "Will remove when tasks done"
-msgstr "Irá remover quando as tarefas concluirem"
+msgstr "Será removido quando as tarefas estiverem concluídas"
 
-#: clientgui/ViewProjects.cpp:1164
+#: clientgui/ViewProjects.cpp:1148
 msgid "Scheduler request pending"
 msgstr "Pedido de agendamento pendente"
 
-#: clientgui/ViewProjects.cpp:1170
+#: clientgui/ViewProjects.cpp:1154
 msgid "Scheduler request in progress"
 msgstr "Pedido de agendamento em progresso"
 
-#: clientgui/ViewProjects.cpp:1173
+#: clientgui/ViewProjects.cpp:1157
 msgid "Trickle up message pending"
 msgstr "Mensagem de aviso pendente"
 
-#: clientgui/ViewProjects.cpp:1179
+#: clientgui/ViewProjects.cpp:1163
 msgid "Communication deferred"
 msgstr "Comunicação deferida"
 
 #: clientgui/ViewResources.cpp:62
 msgid "Total disk usage"
-msgstr "Utilização total em disco"
+msgstr "Total da utilização do disco"
 
 #: clientgui/ViewResources.cpp:83
 msgid "Disk usage by BOINC projects"
-msgstr "Utilização em disco pelos projectos BOINC"
+msgstr "Utilização do disco pelos projetos BOINC"
 
 #: clientgui/ViewResources.cpp:225
 msgid "no projects: 0 bytes used"
-msgstr "sem projectos: 0 bytes usados"
+msgstr "sem projetos: 0 bytes utilizados"
 
 #: clientgui/ViewResources.cpp:259
 msgid "used by BOINC: "
@@ -3290,7 +3528,7 @@ msgstr "Médias do Anfitrião"
 #: clientgui/ViewStatistics.cpp:1331
 #, c-format
 msgid "Last update: %.0f days ago"
-msgstr "Última actualização: %.0f dias atrás"
+msgstr "Última atualização: há %.0f dia(s)"
 
 #: clientgui/ViewStatistics.cpp:1956
 msgid "Show user total"
@@ -3298,7 +3536,7 @@ msgstr "Mostrar totais do utilizador"
 
 #: clientgui/ViewStatistics.cpp:1957
 msgid "Show total credit for user"
-msgstr "Mostrar créditos totais do utilizador"
+msgstr "Mostra os créditos totais do utilizador"
 
 #: clientgui/ViewStatistics.cpp:1963
 msgid "Show user average"
@@ -3306,7 +3544,7 @@ msgstr "Mostrar médias do utilizador"
 
 #: clientgui/ViewStatistics.cpp:1964
 msgid "Show average credit for user"
-msgstr "Mostrar médias de créditos do utilizador"
+msgstr "Mostra as médias de créditos do utilizador"
 
 #: clientgui/ViewStatistics.cpp:1970
 msgid "Show host total"
@@ -3314,7 +3552,7 @@ msgstr "Mostrar totais do anfitrião"
 
 #: clientgui/ViewStatistics.cpp:1971
 msgid "Show total credit for host"
-msgstr "Mostrar créditos totais do anfitrião"
+msgstr "Mostra os créditos totais do anfitrião"
 
 #: clientgui/ViewStatistics.cpp:1977
 msgid "Show host average"
@@ -3322,31 +3560,31 @@ msgstr "Mostrar médias do anfitrião"
 
 #: clientgui/ViewStatistics.cpp:1978
 msgid "Show average credit for host"
-msgstr "Mostrar médias de créditos do anfitrião"
+msgstr "Mostra as médias de créditos do anfitrião"
 
 #: clientgui/ViewStatistics.cpp:1987
 msgid "< &Previous project"
-msgstr "< &Projecto anterior"
+msgstr "< Projeto &Anterior"
 
 #: clientgui/ViewStatistics.cpp:1988
 msgid "Show chart for previous project"
-msgstr "Mostrar gráfico do projecto anterior"
+msgstr "Mostra um gráfico do projeto anterior"
 
 #: clientgui/ViewStatistics.cpp:1993
 msgid "&Next project >"
-msgstr "&Próximo projecto >"
+msgstr "Projeto &Seguinte >"
 
 #: clientgui/ViewStatistics.cpp:1994
 msgid "Show chart for next project"
-msgstr "Mostrar gráfico do próximo projecto"
+msgstr "Mostra um gráfico do projeto seguinte"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
 msgid "Hide project list"
-msgstr "Ocultar lista de projectos"
+msgstr "Ocultar lista de projetos"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
 msgid "Use entire area for graphs"
-msgstr "Utilizar área completa para os gráficos"
+msgstr "Utiliza toda a área para os gráficos"
 
 #: clientgui/ViewStatistics.cpp:2006
 msgid "Mode view"
@@ -3354,71 +3592,63 @@ msgstr "Modo de visualização"
 
 #: clientgui/ViewStatistics.cpp:2010
 msgid "One project"
-msgstr "Um projecto"
+msgstr "Um projeto"
 
 #: clientgui/ViewStatistics.cpp:2011
 msgid "Show one chart with selected project"
-msgstr "Mostrar um gráfico com o projecto seleccionado"
+msgstr "Mostra um gráfico com o projeto selecionado"
 
 #: clientgui/ViewStatistics.cpp:2017
 msgid "All projects (separate)"
-msgstr "Todos os projectos (separados)"
+msgstr "Todos os projetos (separados)"
 
 #: clientgui/ViewStatistics.cpp:2018
 msgid "Show all projects, one chart per project"
-msgstr "Mostrar todos os projectos, um gráfico por projecto"
+msgstr "Mostra todos os projetos, um gráfico por projeto"
 
 #: clientgui/ViewStatistics.cpp:2024
 msgid "All projects (together)"
-msgstr "Todos os projectos (juntos)"
+msgstr "Todos os projetos (juntos)"
 
 #: clientgui/ViewStatistics.cpp:2025
 msgid "Show one chart with all projects"
-msgstr "Mostrar um gráfico com todos os projectos"
+msgstr "Mostra um gráfico com todos os projetos"
 
 #: clientgui/ViewStatistics.cpp:2031
 msgid "All projects (sum)"
-msgstr "Todos os projectos (somados)"
+msgstr "Todos os projetos (total)"
 
 #: clientgui/ViewStatistics.cpp:2032
 msgid "Show one chart with sum of projects"
-msgstr "Mostrar um gráfico com a soma de todos os projectos"
+msgstr "Mostra um gráfico com a soma de todos os projetos"
 
 #: clientgui/ViewStatistics.cpp:2053
 msgid "Statistics"
 msgstr "Estatísticas"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "A actualizar gráficos..."
-
-#: clientgui/ViewStatistics.cpp:2394
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Show project list"
-msgstr "Mostrar lista de projectos"
+msgstr "Mostrar lista de projetos"
 
-#: clientgui/ViewStatistics.cpp:2394
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Uses smaller area for graphs"
 msgstr "Utiliza uma área menor para os gráficos"
 
 #: clientgui/ViewTransfers.cpp:187
 msgid "Retry Now"
-msgstr "Tente novamentente"
+msgstr "Tente Novamente"
 
 #: clientgui/ViewTransfers.cpp:188
 msgid "Retry the file transfer now"
-msgstr "Tentar novamente a transferência do ficheiro agora"
+msgstr "Tentar novamente a transferência do ficheiro"
 
 #: clientgui/ViewTransfers.cpp:194
 msgid "Abort Transfer"
-msgstr "Cancelar Transferência"
+msgstr "Abortar Transferência"
 
 #: clientgui/ViewTransfers.cpp:195
 msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Cancelar a transferência deste ficheiro.  Não obterá créditos para a tarefa."
+msgstr "Aborta esta transferência de ficheiro. Não obterá créditos para a tarefa."
 
 #: clientgui/ViewTransfers.cpp:210
 msgid "File"
@@ -3444,87 +3674,71 @@ msgstr "Velocidade"
 msgid "Transfers"
 msgstr "Transferências"
 
-#: clientgui/ViewTransfers.cpp:362
+#: clientgui/ViewTransfers.cpp:372
 msgid "Network activity is suspended - "
-msgstr "Actividade de rede está suspensa - "
+msgstr "A atividade de rede está suspensa - "
 
-#: clientgui/ViewTransfers.cpp:364
+#: clientgui/ViewTransfers.cpp:374
 msgid ""
 ".\n"
 "You can enable it using the Activity menu."
 msgstr ".\nPode activá-la utilizando o menu Actividade."
 
-#: clientgui/ViewTransfers.cpp:367
+#: clientgui/ViewTransfers.cpp:377
 msgid "BOINC"
 msgstr "BOINC"
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "A tentar transferir novamente..."
-
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "A cancelar a transferência..."
-
-#: clientgui/ViewTransfers.cpp:425
+#: clientgui/ViewTransfers.cpp:431
 #, c-format
 msgid ""
 "Are you sure you want to abort this file transfer '%s'?\n"
 "NOTE: Aborting a transfer will invalidate a task and you\n"
 "will not receive credit for it."
-msgstr "Tem a certeza que quer cancelar a transferência deste ficheiro '%s'?\nNOTA: Cancelar uma transferência invalidará a tarefa e\nnão receberá crédito pela mesma."
+msgstr "Tem a certeza que deseja cancelar a transferência deste ficheiro '%s'?\nNOTA: Ao cancelar uma transferência irá invalidar a tarefa e\nnão receberá créditos pela mesma."
 
-#: clientgui/ViewTransfers.cpp:431
+#: clientgui/ViewTransfers.cpp:437
 msgid "Abort File Transfer"
-msgstr "Cancelar Transferência do Ficheiro"
+msgstr "Abortar Transferência de Ficheiro"
 
-#: clientgui/ViewTransfers.cpp:845
+#: clientgui/ViewTransfers.cpp:849
 msgid "Upload"
-msgstr "Upload"
+msgstr "Enviar"
 
-#: clientgui/ViewTransfers.cpp:845
+#: clientgui/ViewTransfers.cpp:849
 msgid "Download"
 msgstr "Transferir"
 
-#: clientgui/ViewTransfers.cpp:849
+#: clientgui/ViewTransfers.cpp:853
 msgid "retry in "
 msgstr "tentar novamente em "
 
-#: clientgui/ViewTransfers.cpp:851
+#: clientgui/ViewTransfers.cpp:855
 msgid "failed"
 msgstr "falhou"
 
-#: clientgui/ViewTransfers.cpp:854
+#: clientgui/ViewTransfers.cpp:858
 msgid "suspended"
 msgstr "suspenso"
 
-#: clientgui/ViewTransfers.cpp:859
+#: clientgui/ViewTransfers.cpp:863
 msgid "active"
 msgstr "activo"
 
-#: clientgui/ViewTransfers.cpp:861
+#: clientgui/ViewTransfers.cpp:865
 msgid "pending"
 msgstr "pendente"
 
-#: clientgui/ViewTransfers.cpp:867
+#: clientgui/ViewTransfers.cpp:871
 msgid " (project backoff: "
-msgstr " (projecto backoff: "
+msgstr " (projeto backoff: "
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
 msgid "Show active tasks"
-msgstr "Mostrar tarefas activas"
+msgstr "Mostrar tarefas ativas"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
 msgid "Show only active tasks."
-msgstr "Mostrar apenas as tarefas activas."
-
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Mostrar gráficos"
-
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Mostrar gráfico da aplicação numa janela."
+msgstr "Mostra apenas as tarefas ativas."
 
 #: clientgui/ViewWork.cpp:225
 msgid "Show VM Console"
@@ -3532,23 +3746,15 @@ msgstr "Mostrar Consola VM"
 
 #: clientgui/ViewWork.cpp:226
 msgid "Show VM Console in a window."
-msgstr "Mostrar Consola VM numa janela."
+msgstr "Mostra a Consola VM numa janela."
 
 #: clientgui/ViewWork.cpp:233
 msgid "Suspend work for this result."
 msgstr "Suspender trabalho para este resultado."
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Cancelar"
-
 #: clientgui/ViewWork.cpp:240
 msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Abandonar resultado do trabalho. Não receberá crédito por ele."
-
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Mostrar detalhes da tarefa."
+msgstr "Abandona o resultado do trabalho. Não receberá créditos por ele."
 
 #: clientgui/ViewWork.cpp:264
 msgid "Remaining (estimated)"
@@ -3562,355 +3768,64 @@ msgstr "Data Limite"
 msgid "Tasks"
 msgstr "Tarefas"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "A resumir tarefa..."
-
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "A suspender tarefa..."
-
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "A mostrar gráficos para a tarefa..."
-
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "A mostrar Consola VM para a tarefa..."
-
-#: clientgui/ViewWork.cpp:566
+#: clientgui/ViewWork.cpp:564
 #, c-format
 msgid ""
 "Are you sure you want to abort this task '%s'?\n"
 "(Progress: %s, Status: %s)"
-msgstr "Tem a certeza que quer cancelar esta tarefa '%s'?\n(Progresso: %s, Estado: %s)"
+msgstr "Tem a certeza que deseja abortar esta tarefa '%s'?\n(Progresso: %s, Estado: %s)"
 
-#: clientgui/ViewWork.cpp:572
+#: clientgui/ViewWork.cpp:570
 #, c-format
 msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Tem a certeza que quer cancelar estas %d tarefas?"
-
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Cancelar tarefa"
+msgstr "Tem a certeza que deseja abortar estas %d tarefas?"
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "A cancelar a tarefa..."
-
-#: clientgui/ViewWork.cpp:858
+#: clientgui/ViewWork.cpp:848
 msgid "Show all tasks"
 msgstr "Mostrar todas as tarefas"
 
-#: clientgui/ViewWork.cpp:859
+#: clientgui/ViewWork.cpp:849
 msgid "Show all tasks."
-msgstr "Mostrar todas as tarefas."
-
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "A resumir trabalho para esta tarefa."
-
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "A suspender trabalho para esta tarefa."
+msgstr "Mostra todas as tarefas."
 
-#: clientgui/WizardAttach.cpp:571
+#: clientgui/WizardAttach.cpp:591
 msgid "Do you really want to cancel?"
-msgstr "Quer mesmo cancelar?"
+msgstr "Deseja cancelar?"
 
-#: clientgui/WizardAttach.cpp:572
+#: clientgui/WizardAttach.cpp:592
 msgid "Question"
-msgstr "Questão"
+msgstr "Pergunta"
+
+#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
+msgid "&Next >"
+msgstr "&Seguinte >"
+
+#: clientgui/wizardex.cpp:383
+msgid "< &Back"
+msgstr "< &Anterior"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
+#: clientgui/wizardex.cpp:553
+msgid "&Finish"
+msgstr "&Terminar"
+
+#: clientgui/mac/Mac_GUI.cpp:35
 msgid "Services"
 msgstr "Serviços"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
+#: clientgui/mac/Mac_GUI.cpp:36
 #, c-format
 msgid "Hide %s"
 msgstr "Ocultar %s"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
+#: clientgui/mac/Mac_GUI.cpp:37
 msgid "Hide Others"
 msgstr "Ocultar Outros"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
+#: clientgui/mac/Mac_GUI.cpp:38
 msgid "Show All"
 msgstr "Mostrar Todos"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
+#: clientgui/mac/Mac_GUI.cpp:39
 #, c-format
 msgid "Quit %s"
-msgstr "Sair %s"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Máscara"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Selecciona a aparência do interface de utilizador."
-
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Vista Avançada...\tCtrl+Shift+A"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Mostra o interface gráfico avançado."
-
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Configurar opções de visualização e configurações de proxy"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Mostra as mensagens de diagnóstico."
-
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Predefinido"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Suspende a Computação"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Resume a Computação"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Abre uma janela para ver as notícias dos projectos ou do BOINC"
-
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Obter ajuda com o %s"
-
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Fechar"
-
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Notícias"
-
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Para definições adicionais, seleccione Preferências de Computação na Vista Avançada"
-
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "Gb de espaço em disco"
-
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - Preferência de Computação"
-
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Rejeitar todas as preferências locais e utilizar as preferências web?"
-
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Adicionar Projecto"
-
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Sincronizar"
-
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Trabalho realizado para este projecto"
-
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Voluntarie-se para um ou alguns dos mais de 30 projectos, em várias áreas da ciência"
-
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Sincroniza os projectos com o gestor de conta"
-
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Seleccione o projecto para aceder com os controles em baixo"
-
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Páginas Web do Projecto"
-
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Comandos do Projecto"
-
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Abre um menu de websites para o projecto %s"
-
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Abre um menu de comandos para aplicar ao projecto %s"
-
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Suspender esta tarefa."
-
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Abandonar esta tarefa. Não obterá créditos por ela."
-
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Tem a certeza que quer cancelar esta tarefa '%s'?\n(Progresso: %.1lf%%, Estado: %s)"
-
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Não tem nenhuns projectos. Por favor adicione um Projecto."
-
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Indisponível"
-
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Tarefas:"
-
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Seleccione uma tarefa para aceder"
-
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "De:"
-
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Progresso destas tarefas"
-
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Comandos das Tarefas"
-
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Abrir um menu de comandos para aplicar a esta tarefa"
-
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Aplicação: %s"
-
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
-
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Aplicação: Indisponível"
-
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Indisponível"
-
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Decorrido: %s"
-
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Restante (estimado): %s"
-
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Estado: %s"
-
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "A rever o estado actual."
-
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "A realizar transferência de trabalho do servidor."
-
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Processamento Suspenso:  A executar em Bateria."
-
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Processamento Suspenso:  Utilizador Activo."
-
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Processamento Suspenso:  O utilizador parou o processamento."
-
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Processamento Suspenso:  Hora do Dia."
-
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Processamento Suspenso:  A Executar Testes de Performance."
-
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Processamento Suspenso."
-
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "A aguardar contacto dos servidores do projecto."
-
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "A rever estado actual"
-
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Sem trabalhos disponíveis para processar"
-
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Não foi possível ligar ao cliente de core"
-
-#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
-msgid "&Next >"
-msgstr "&Próximo >"
-
-#: clientgui/wizardex.cpp:383
-msgid "< &Back"
-msgstr "< &Anterior"
-
-#: clientgui/wizardex.cpp:553
-msgid "&Finish"
-msgstr "&Terminar"
-
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "Neste dia da semana, realizar computação apenas durante estas horas."
-
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "Neste dia da semana, transferir ficheiros apenas durante estas horas."
+msgstr "Fechar o %s"
diff --git a/locale/pt_PT/BOINC-Project-Generic.po b/locale/pt_PT/BOINC-Project-Generic.po
deleted file mode 100644
index 95f4c3a..0000000
--- a/locale/pt_PT/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Maria Manuela Silva, 2016
-# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-05-27 13:04+0000\n"
-"Last-Translator: Maria Manuela Silva\n"
-"Language-Team: Portuguese (Portugal) (http://www.transifex.com/boinc/boinc/language/pt_PT/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_PT\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Português"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Portuguese"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Código de Convite"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Um código de convite válido é necessário para criar uma conta."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Nome"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "indentifica-o no seu website. Use o seu nome real ou um nome de utilizador."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Endereço de Email"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Tem que ser um endereço válido do form 'name at domain'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Palavra passe"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Tem que ter pelo menos %1 caracteres"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Confirme palavra passe"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "País"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Seleccione o País que represente, se algum."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Código Postal"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Criar conta"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Endereço de email:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "esqueceu-se do endereço de email?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Palavra passe:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "esqueceu-se da palavra passe?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Manter-se logado"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Entrar"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Texto em Negrito: [b]texto[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Texto em Itálico: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Sublinhar texto: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Texto rasurado: [s]text[/s] (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citar texto: [quote]texto[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Exibição do código: [code]código[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Lista: [list]texto[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Lista ordenada: [list=]texto[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Inserir imagem: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Inserir URL: [url]http://url[/url] ou [url=http://url]URL texto[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Cor da fonte"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Cor da fonte: [color=red]texto[/color]  Dica: Pode tambem usar cor=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Predefinido"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Vermelho Escuro"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Vermelho"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Laranja"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Castanho"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Amarelo"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Verde"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Cor de azeitona"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Ciano"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Azul"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Azul Escuro"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indigo"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Violeta"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Tamanho da fonte"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Tamanho da fonte: [size=x-small]texto pequeno[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Pequeno"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Grande"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Fechar todas as tags bbCode abertas"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Fechar Tags"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Os mais antigos primeiro"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Os mais recentes primeiro"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Posts melhor classificados primeiro"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Posts mais recentes primeiro"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Mais vistos primeiro"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Mais posts primeiro"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Moderador voluntário"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Administrador de projecto"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Desenvolvedor de projecto"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Tester de projecto"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Desenvolvedor voluntário"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Tester voluntário"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Cientista de projecto"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Especialista de Helpdesk"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Pesquisar por palavras em mensagens nos fóruns"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Pesquisar fóruns"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Pesquisa avançada"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Mensagens privadas"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Perguntas e Respostas"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Mensagens do fórum"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 mensagem do fórum"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Anterior"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Próximo"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Mensagem"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Enviar mensagem"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Enviar %1 uma mensagem privada"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Juntou-se: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Posts: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Crédito: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Ainda não leu esta mensagem"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Não lidas"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Mensagem %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "oculto"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Postado: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - em resposta a"
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Editar"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Edite esta mensagem"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Modificadas em último: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Este post não é mostrado porque o remetente está na sua lista de pessoas' ignoradas'. Carregue %1aqui%2 para ver este post"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Reportar este post como ofensivo"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Reportar como ofensivo"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Classificação: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "classificar:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Carregue aqui se gosta da mensagem"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Classifique +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Carregue aqui se não gosta desta mensagem"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Classifique -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Responder"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Poste uma resposta a esta mensagem"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Citar"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Poste uma resposta citando esta mensagem"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Oculto pelo moderador"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Postado %1 por %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Não pode postar ou classificar mensagens ate %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Os posts têm de ser 'amigáveis': não poderão conter\n              conteúdo que seja obsceno, conteúdo sexual\n              explícito ou sugestivo.\n        <li> Publicidade.\n        <li> Links para websites envolvendo conteúdo sexual,\n             jogos de azar, ou intolerâncias de outros tipos.\n         <li> Mensagens destinadas a importunar ou antoganizar outras pessoas,\n              ou para sequestrar um tópico.\n         <li> Mensagens que  [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Regras:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Mais informação"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Revelar"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Revelar este tópico"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Ocultar"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Ocultar este post"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Mover"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Mover post para um tópico diferente"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Banir autor"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Votar para banir autor"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Votar para não banir autor"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Iniciar votação para banir autor"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Eliminar"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Apagar este post"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Apenas membros da equipa podem postar no fórum da equipa"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Em ordem para criar um novo tópico no %1 tem que ter um certo número de créditos. Isto previne e protege contra abusos do sistema."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Não pode criar mais tópicos de momento. Por favor, aguarde um momento antes de tentar novamente. Este atraso foi forçado para protecção de abusos do sistema."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Este tópico está bloqueado. Apenas moderadores do fórum e administradores podem postar aqui."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Não pode postar num tópico oculto."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Tópico"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Posts"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Vistas"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Último post"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Novos posts no tópico %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Novos posts no tópico subscrito"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Existem novos posts no tópico '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Marcar todos os tópicos como lidos"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Marcar todos os tópicos em todas as mensagens do fórum como lidas."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Sem anfitrião"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Indisponível"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Casa"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Trabalho"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "Escola"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Actualizar"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Informações Computador"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "Endereço IP"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(o mesmo que das útimas %1 vezes)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Endereço de IP externo"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Mostrar endereço IP"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Nome do domínio"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Nome do producto"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Hora Local"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 horas"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Proprietário"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anónimo"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Criado"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Créditos totais"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Média de créditos"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Cruzar créditos do projecto"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "Tipo de CPU"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Número de processadores"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Co-processadores"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Sistema Operativo"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Versão do BOINC"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Memória"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Espaço temporário"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Espaço total em disco"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Espaço Livre em Disco"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "FLOP calculado"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 milhão ops/seg"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Velocidade calculada de inteiros"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Taxa média de upload"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/seg"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Taxa média de transferência"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Tempo de resposta médio"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 dias"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Detalhes da aplicação"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Mostrar"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Tarefas"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Número de vezes que o cliente contactou o servidor"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "A última vez que o servidor foi contactado"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Fracção de tempo do BOINC está em execução"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Enquanto o BOINC estiver em execução, uma fracção de tempo usa ligação à Internet"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Enquanto o BOINC estiver em execução, uma fracção de tempo de computação é permitida"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Enquanto o BOINC estiver em execução, uma fracção de tempo de computação da GPU é permitida"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Eficiência média da CPU"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Duração do factor de correcção da tarefa"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Localização"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Eliminar este computador"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Fundir registos duplicados deste computador"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Fundir"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Último contacto"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informações do computador"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Classificação"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Média de créditos"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Média de créditos recentes"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Sistema operativo"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 processadores)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Detalhes"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Cruzar estatísticas do projecto:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "O anfitrião %1 tem uma sobreposição do tempo de vida:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "O anfitrião %1 tem um Sistema Operativo incompatível:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "O anfitrião %1 tem uma CPU incompatível:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "o mesmo anfitrião"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Não é possivel fundir o anfitrião %1 ao %2 - são incompatíveis"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "A fundir anfitrião %1 ao anfitrião %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Não foi possível actualizar os créditos do novo computador"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Não foi possível actualizar os resultados"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Não foi possivel retirar o computador antigo"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Computador antigo retirado %1"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Mostrar:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Todos os computadores"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Apenas os computadores activos nos últimos 30 dias"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "ID do computador"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "Versão<br>BOINC"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Fundir computadores por nome"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Navegador predefinido"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Comentar"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Novidades estão disponíveis como %sFeed RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Caixa de entrada"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Escrever"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Mandar mensagem privada"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Pré-visualizar"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "não existe essa mensagem"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Para"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "IDs dos utilizadores ou nomes de utilizador únicos, separados com virgulas"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Assunto"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Enviar mensagem"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "enviou-lhe uma mensagem privada; assunto:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Mensagem privada%1 de %2, assunto:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Não foi possível criar mensagem"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Não está autorizado a enviar mensagens privadas tão frequentemente. Por favor, aguarde algum tempo antes de enviar mais mensagens."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "não lidas"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Para notificações de email, %1edite as preferências da comunidade%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Mensagem privada"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Limites de utilização"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Usar no máximo"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Manter algumas CPUs livres para outras aplicações. Exemplo: 75% significa utilizar 6 núcleos num CPU de 8 núcleos."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% das CPUs"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Suspende/resume computação em alguns segundos para reduzir a temperatura da CPU e o consumo de energia. Exemplo: 75% significa computação durante 3 segundos, aguardar 1 segundo, e repetir."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% de tempo da CPU"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Quando suspender"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Suspender quando o computador estiver apenas com bateria"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Seleccione aqui para suspender a computação em portáteis quando estiverem apenas com alimentação da bateria."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Suspender quando o computador estiver em utilização"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Seleccione aqui para suspender a computação e transferência de ficheiros quando estiver a utilizar o computador."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Suspender a GPU enquanto o computador está em utilização"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Seleccione aqui para suspender a computação com a GPU quanto estiver a utilizar o computador."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'Em utilização' significa actividade do rato/teclado nos últimos"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Isto determina quando o computador é considerado 'em utilização'."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minutos"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Suspender quando não houver actividade do rato/teclado nos últimos"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Isto permite que alguns computadores entrem em poupança de energia quando não estiverem a ser utilizados."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Suspender quando a utilização da CPU por parte de terceiros for superior a"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Suspender computação quando o computador estiver ocupado a executar outros programas."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Realizar computação apenas entre"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Executar computação apenas durante um período específico do dia."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Outro"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Armazenar no minímo"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Armazenar tarefas suficientes, no mínimo para manter o computador ocupado por este período."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "dias de trabalho"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Armazene até um adicional"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Armazene tarefas adicionais acima do nível mínimo. Determina a quantidade de trabalho que é pedido quando um projecto é contactado."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Trocar entre tarefas a cada"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Se executa vários projectos, o BOINC pode trocar entre eles com esta regularidade."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Solicitar que as tarefas criem um checkpoint no máximo a cada "
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Isto controla com que frequência as tarefas guardam no disco o seu estado, para que possam ser reiniciadas mais tarde."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "segundos"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Utilizar não mais do que"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Limita o espaço total em disco utilizado pelo BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Deixar pelo menos"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Limita a utilização em disco de modo a deixar esta quantidade de espaço livre no volume onde o BOINC armazena os dados."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB livres"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Limita a percentagem de disco utilizada pelo BOINC no volume onde os dados são armazenados."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% do total "
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Quando o computador está em utilização, usar no máximo"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Limita a memória usada pelo BOINC quando está a utilizar o computador. "
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Quando o computador não está em utilização, usar no máximo"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Limita a memória usada pelo BOINC quando não está a utilizar o computador."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Deixar tarefas não-GPU em memória enquanto estiverem suspensas"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Se marcado, as tarefas suspensas ficam em memória e, retomam sem trabalho perdido. Se não estiver marcado, as tarefas suspensas são removidas da memória e, retoma a partir do seu último checkpoint."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Página/ficheiro swap: usar no máximo"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Limita o espaço swap (ficheiro de paginação) utilizado pelo BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Limitar taxa de transferência a"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Limita a taxa de transferência de ficheiros."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/segundo"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Limitar a taxa de upload a"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Limita a taxa de upload de transferência de ficheiros."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Limitar utilização a"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Exemplo: O BOINC deve transferir no máximo 2000 MB de dados a cada 30 dias."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB a cada"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "dias"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Transferir ficheiros apenas entre"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Transferir ficheiros apenas durante um período específico do dia."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Saltar verificação de dados para imagens"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Seleccione aqui apenas se o seu fornecedor de Internet modifica os ficheiros de imagem. Saltar a verificação reduz a segurança do BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Confirmar antes de se conectar à Internet"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Útil apenas se tiver um modem, ISDN ou conexão VPN."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Disconectar quando terminado"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "A computar"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disco"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Rede"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Estas preferências aplicam-se a todos os projectos BOINC em que participa."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Não foi possível actualizar as preferências.%2 Os valores marcados abaixo a vermelho ficaram fora de alcance ou não são numéricos."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "computando"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Separar preferências para %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Editar preferências"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Remover"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Adicionar preferências separadas para %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Estas configurações aplicam-se a todos os computadores a usarem esta conta, excepto"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "computadores onde definiu as preferências locais para utilizarem o Gestor BOINC"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Dispositivos Android"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Mudar de vista)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Preferências combinadas"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Preferências primárias (predefinição)"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Preferências modificadas por último:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Adicionar preferências"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Actualizar preferências"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "sim"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "não"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Localização do computador por predefinição"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Novos computadores irão utilizar esta localização para computação e preferências de projecto."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Quota de recursos"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Determina a proporção de recursos alocados no seu computador para este projecto. Por exemplo, se participa em dois projectos BOINC, com partilha de recursos de 100 e 200, o primeiro irá ficar com 1/3 dos recursos e o segundo com 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Acelerar as tarefas da GPU, dedicando uma CPU para cada uma?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Utilizar CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Utilizar GPU ATI"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Utilizar GPU NVIDIA"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Utilizar GPU Intel"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Executar aplicações de teste?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "isto irá nos ajudar a desenvolver aplicações, mas poderá fazer com que os trabalhos falhem no seu computador"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Emails serão enviados de %1; confirme que o seu filtro de spam aceita este endereço."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "OK para %1 e a sua equipa (se alguma) lhe enviarem e-mails?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Deve o %1 mostrar os seus computadores no seu website?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Mudar Vista)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Definições específicas do projecto"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "mau conjunto: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "mau subconjunto: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "e"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "O seu perfil ficará visível a outras pessoas assim que for aprovado pelo projecto. Isto poderá levar alguns dias."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "O seu perfil foi definido como inaceitável. Não está visivel a outras pessoas. Por favor altere-o."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Erro da base de dados"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Para prevenir spam, perfis de utilizadores com uma média de créditos inferior a %1 são visiveis apenas a utilizadores logados. Pedimos desculpa pela inconveniência."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "O utilizador está banido"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Não existe nenhum perfil para o utilizador com esse ID."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Editar o seu perfil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "O seu feedback neste perfil"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recomende este perfil como Utilizador do Dia:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1gosto%2 deste perfil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Alertar administradores para um perfil ofensivo:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1não gosto%2 deste perfil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Plataforma anónima"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "GPU Intel"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Não existe na Base de Dados"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "pendente"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Todos"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "Em progresso"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Validação pendente"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Validação inconclusiva"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Válido"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Inválido"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Erro"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactivo"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Não enviado"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Completo, à espera da validação"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Completo e validado"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Completo, marcado como inválido"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Completo, não é possível validar"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Completo, validação inconclusiva"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Completo, demasiado tarde para ser validado"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Completo"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Não foi possível enviar"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Cancelado pelo servidor"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Não iniciou devido à data limite - cancelado"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Erro enquanto realizava a transferência"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Erro enquanto realizava a computação"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Erro enquanto realizava o upload"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Cancelado pelo utilizador"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Upload falhado"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Tempo limite atingido - sem resposta"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Desnecessário"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Validar erro"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Abandonado"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Excesso"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Sucesso"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Erro de computação"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Resultado redundante"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Sem reposta"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Novo"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "A fazer a transferência"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "A processar"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Erro de computação"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "A realizar upload"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Feito"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Inicial"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Desnecessário"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Erro na unidade de trabalho - verificação saltada"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Verificado, mas sem consenso ainda"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "A tarefa foi reportada demasiado tarde para ser validada"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Não foi possivel enviar o resultado"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Demasiados erros (pode ter um bug)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Demasiados resultados (pode não ser determinante)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Demasiados resultados totais"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Unidade de trabalho cancelada"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Resultado canónico em falta"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Erro irreconhecível: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Nome da tarefa"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "carregue para detalhes"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Mostrar IDs"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Mostrar nomes"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Tarefa"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Unidade de trabalho"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Computador"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Enviado"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Tempo reportado<br />ou prazo limite "
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "explique"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Estado"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Tempo decorrido<br />(seg)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "Tempo da CPU<br />(seg)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Créditos"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Aplicação"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Unidade de trabalho"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Reportar prazo limite"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Recebido"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Estado do servidor"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Resultado"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Estado do cliente"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Estado de saída"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Tempo decorrido"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "Tempo da CPU"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Validar estado"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Pico de FLOPS do dispositivo"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Versão da aplicação"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Ficheiros de saída"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Stderr output"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Estado"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Nome da tarefa:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Pesquisar por critérios (usar um ou mais)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Palavras chave"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Pesquisar por equipas com estas palavras nos seus nomes ou descrições"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Tipo de equipa"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Mostrar apenas equipas activas"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Pesquisar"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Solicitado por si, e o tempo de resposta limite do fundador passou."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Completar transferência de fundador"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Solicitado por si"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "o tempo de resposta limite do fundador é %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Nenhum"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Iniciar pedido"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Deferido"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Informações da equipa"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Descrição"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Website"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Cruzar estatísticas do projecto"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Tipo"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Fórum"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Tópicos"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Juntar-se a esta equipa"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Nota: Se o 'OK para o email' está definido nas preferências do projecto, juntar-se a uma equipa dá ao fundador acesso ao seu endereço de email."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Não aceita novos membros"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Mudança de liderança pedida"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Responder por %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Mudança de liderança da equipa"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Membros"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Fundador"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Administradores"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Novos membros no último dia"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Total de membros"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "ver"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Membros activos"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Membros com créditos"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Administrador"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Anterior %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Próximo %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Não existe essa equipa."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Esta operação requer privilégios de líder."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Esta operação requer privilégios de administrador da equipa"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "ATENÇÃO: esta é uma equipa ampla do BOINC. Se fizer alterações aqui, elas brevemente serão re-escritas. Edite a %1equipa ampla do BOINC%2 em alternativa."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Nota privada%2: se criar uma equipa, as preferências do projecto (partilha de recursos, preferências gráficas) ficarão visíveis ao público."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Nome da equipa, versão do texto"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Não use tags HTML."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Nome da equipa, versão de HTML"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Pode usar %1tags limitadas HTML%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Se não sabe o que é HTML, deixe esta caixa em branco."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL da página web da equipa, se existir"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "sem \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Este URL será linkado para a página da equipa neste site."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Descrição da equipa"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Aceitar novos membros?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Perfil do utilizador"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projectos em que está a participar"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projectos em que %1 está a participar"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Projecto"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Carregue para página do utilizador"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "A partir de"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Computação e créditos"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Computadores nesta conta"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Ver"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "ID de projectos cruzados"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Estatísticas de projectos cruzados"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Conta"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Equipa"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Projecto cruzado"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certificado de participação"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Dados do seu telemóvel"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Informações da conta"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Endereço de e-mail"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Código postal"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 membro desde"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Mudar"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "endereço de e-mail"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "palavra-passe"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "outras informações da conta"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "ID do utilizador"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Utilizado nas funções da comunidade"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Chaves da conta"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Preferências"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Quando e como o BOINC utiliza o seu computador"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Preferências de computação"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Fórum e mensagens privadas"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferências da comunidade"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Preferências para este projecto"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 preferências"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Ver o perfil de %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Perfil"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Comunidade"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Criar"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 posts"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Notificações"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Sair da equipa"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Administrar"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(solicitação de mudança de liderança pendente)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Membro da equipa"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "encontrar uma equipa"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Fundador, mas não membro de"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Encontrar amigos"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Amigos"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Computadores"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Doador"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Contactar"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Esta pessoa é amiga"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Cancelar amizade"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Pedido pendente"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Adicionar como amigo"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "o nome de utilizador não pode estar vazio ou conter espaços em branco"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "o nome de utilizador tem de ser preenchido"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "o nome de utilizador não pode conter tags HTML"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "sair"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "entrar"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Criar uma conta"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Página de estado do servidor"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Ocorreu um erro na base de dados aquando do seu pedido; por favor tente mais tarde."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Não foi possivel lidar com o pedido"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "horas"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "seg"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Expirou o tempo limite do link. Por favor, carregue em Voltar Atrás, faça actualizar a página e depois tente novamente."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Utilizar tags BBcode para formatar o texto"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Projecto em baixo para manutenção"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 está temporariamente em baixo para manutenção. Por favor, tente mais tarde."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Não foi possivel conectar à base de dados - por favor, tente mais tarde"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Não foi possivel seleccionar a base de dados - por favor, tente mais tarde"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "caracteres restantes"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Manter-se logado neste computador"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Finalizar registo da conta"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Tem que fornecer um nome para a sua conta"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Tags HTML não são permitidas no nome"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Editar preferências %1"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Adicionar %1 preferências para %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Aplicações"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "% 1 tem actualmente as seguintes aplicações. Quando participa em % 1, as tarefas para uma ou mais dessas aplicações serão atribuídas ao seu computador. A versão actual da aplicação será transferida para o seu computador. Esta acção é automática, não precisa fazer nada."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Plataforma"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Versão"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Computação média"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Tags BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "As tags BBCode deixam-o formatar o texto no seu perfil e nos posts nos fóruns.\nÉ similar ao HTML, mas mais simples. As tags começam com um [ (onde usava\n%1 em HTML) e termina com ] (onde usava %2 em\nHTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Exemplos"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Negrito"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Itálico"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Sublinhar"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Rasurado"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Superscript"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Texto grande"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Texto vermelho"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "link para o website"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Texto citado"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "use para blocos de texto citados"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "use para mostrar uma imagem"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Pedaço de código aqui"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "use para mostrar algum código"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Texto pré-formatado"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "use para mostrar texto pré-formatado "
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Item 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Item2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Item 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "Usar a hiperligação para seguir o bilhete no site da Web do BOINC"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "use para linkar a Trac Wiki no website do BOINC"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Se não fechar uma tag ou não especificar um parâmetro correctamente,\na própria tag não formatada aparecerá em vez do texto formatado."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Não é possivel criar conta"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Carregue no botão <b>Voltar atrás</b> do seu navegador para tentar outra vez."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "A resposta reCAPTCHA nA resposta reCAPTCHA não está correcta. Por favor, tente novamente."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Tem que fornecer um código de convite para criar uma conta."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "O código de convite que inseriu não é válido."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Endereço de email inválido: tem de inserir um endereço válido no formato nome at dominio"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Já existe uma conta com esse endereço de email."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Novas palavras passe são diferentes"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Palavras passe podem apenas incluir caracteres ASCII."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "A nova palavra passe é demasiado pequena: o comprimento minimo da palavra passe é de %1 caracteres."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Não foi possivel criar conta"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "NOTA: Se usa o Gestor BOINC, não use este formulário. Apenas execute o BOINC, seleccione Adicionar Projecto e insira um endereço de email e palavra-passe."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Esta conta irá pertencer à equipa %1 e terá as preferências do projecto do seu fundador."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Imagem"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 A imagem do seu perfil é mostrada à esquerda."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Para a substituir, carregue no botão \"Procurar em\" e seleccione um ficheiro JPEG ou PNG (%1 ou menos)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Para a remover do perfil, seleccione esta caixa:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Se gostava de incluir uma imagem com o seu perfil, carregue no botão \"Procurar em\" e seleccione um ficheiro JPEG ou PNG. Por favor, seleccione imagens de%1 ou menos."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Linguagem"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Seleccione a linguagem na qual o seu perfil está escrito:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Submeter perfil"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Criar/editar perfil"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "O formato da imagem que fez upload não é suportado."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "O seu %1perfil%2 permite-lhe partilhar as suas opiniões e os fundos de trabalho com a %3 comunidade."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "As palavras que escreveu não estão correctas. Por favor, tente novamente."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "A sua primeira resposta foi indicada como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "A sua segunda resposta foi indicada como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "A sua submissão do perfil estava vazia."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Não foi possivel actualizar o perfil: erro da base de dados"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Não foi possivel criar o perfil: erro da base de dados"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Perfil salvo"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Parabéns! O seu perfil foi inserido com sucesso na nossa base de dados."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Ver o seu perfil"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Criar um perfil"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Para prevenir spam, uma média de créditos de %1 ou superior é necessário para criar ou editar um perfil. Pedimos desculpa pela incoveniência."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Não foi possivel apagar a conta"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Conta apagada"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "A sua conta foi apagada."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Confirmar eliminação da conta"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Eliminar a sua conta irá remover toda a sua\ninformação pessoal dos nossos servidores,\nincluindo o seu perfil e posts nos fóruns.\nNenhum trabalho será imitido para qualquer computador ligado\na esta conta."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Esta acção não é reversivel.\nAssim que a sua conta seja eliminada, não pode recuperá-la."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Tem a certeza que quer apagar a sua conta?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Sim"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Apagar esta conta"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Não"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Não apagar esta conta"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "não foi possivel apagar o perfil - por favor, tente mais tarde"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Confirmar eliminação"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "O seu perfil foi apagado."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Confimar eliminação do perfil"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Tem a certeza?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Os perfis são eliminados para sempre e não podem ser recuperados --\nterá que começar do início\nse quiser outro perfil no futuro."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Se tem a certeza, carregue em 'Sim'\npara remover o seu perfil da nossa base de dados."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Apagar o meu perfil"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Não apagar o meu perfil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "Paypal - Transacção Completa"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Obrigado pelo seu donativo!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "O seu donativo para foi bem sucedido."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "O seu donativo será adicionado à barra de progresso depois da confirmação pelo Paypal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Cancelou o seu donativo."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Este projecto não está a aceitar donativos."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donativos"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Este projecto está a aceitar donativo através de\n%1"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Para fazer um donativo, insira o montante que quer doar usando os campos abaixo.\n        O PayPal aceita vários tipos de moeda\n        (Dólares Canadianos, Euros, Libras, Dólares Americanos,\n         Yen, Dólares Australianos, Dólares da Nova Zelândia,\n         Francos Suiçoes. Dólares de Hong Kong, Dólares de Singapura, Coroa Sueca,\n         Coroa Dinamarquesa, Zlótis Polacos, Coroa Norueguesa,\n         Florins Hungaros, Coroa Checa).\n         Pode usar o conversor de moe [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Quantia que deseja doar"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Valor estimado em"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Donativo anónimo"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Seleccione aqui se não quiser o seu nome e número de conta mostrador na\nlista de doadores.<br>Se não seleccionado, será gravado como ID de utilizador %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Para atribuir o donativo ao seu ID de utilizador, por favor faça login."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Continuar"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Donativos são aceites através de"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Fazer o download de software add-on para o BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Pode fazer o download de aplicação em várias categorias."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Estas aplicações não estão aprovadas pelo %1 e está a usá-las por sua conta e risco."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Não fornecemos instruções para instalar estas aplicações.\nNo entanto, o autor pode lhe fornecer ajuda a instalar ou desinstalar a aplicação.\nSe não for suficiente, deve contactar o autor."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instruções para instalar e executar o BOINC estão %1aqui%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Esta lista é gerida centralmente no %1website do BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Mudar o endereço de email da conta"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Novo endereço de email '%1 é inválido."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "O novo email é o mesmo que o já existente. Nada foi alterado."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Já existe uma conta com esse endereço de email"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Palavra passe inválida"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "O endereço de email da sua conta está agora %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Por favor. %1valide este endereço de email%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Não foi possivel actualizar o seu endereço de email devido a um problema na  base de dados. Por favor, tente mais tarde."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Mudar o endereço de email"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Mudar o endereço de email da sua conta"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Novo endereço de email"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Tem que ser um endereço válido do form 'name at domain'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Sem palavra passe?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Confirmar o reset"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Esta acção apagará quaisquer mudanças que tenha feito nas preferências da comunidade. Para cancelar, carregue no botão voltar atrás do seu navegador."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Preferências de reset"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Erro: Tipo de ficheiro incorrecto, apenas PNG e JPEG são suportados."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "A sua assinatura é demasiado longa, por favor mantenha-a com menos de 250 caracteres"
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Não existe esse utilizador:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Como é que devemos notificá-lo de novas mensagens privadas, solicitações de amizade, posts em tópicos subscritos e outros eventos?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Página da minha Conta (sem email)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Imediatamente, por email"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "Num simples email diário"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Identidade no fórum"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Uma imagem que o represente nos fóruns."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Formato: JPG ou PNG. Tamanho: no máximo 4kb, 100x100 pixéis"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Não use avatar"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Usar um avatar Reconhecido Globalmente fornecido por %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Usar este avatar que foi feito o upload:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Pré-visualização do avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "O seu avatar aparecerá assim"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Assinatura para posts no fórum"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Verifique %1vários serviços grátis%2\n<br> fornecendo 'imagens de assinatura' dinâmicas'\n<br> mostrando informação sobre os seus ultimos créditos, novidades do projecto, etc."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Anexar assinaura por padrão"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Pré-visualização da assinatura"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "A sua assinatura aparecerá assim nos fóruns"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Visor de mensagens"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "O que mostrar"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Ocultar imagens avatar"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Ocultar assinaturas"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Mostrar imagens como links"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Abrir links numa nova janela/separador"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Sublinhar utilizadores especiais"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Mostrar este número de mensagens por página"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Como ordenar"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Tópicos:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Posts:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Saltar para os primeiros posts no tópico automaticamente"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Não mover posts sticky para o topo"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Filtragem de mensagens"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Filtragem de utilizadores"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignorar posts no fórum e mensagens privadas destes utilizadores"
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ID do utilizador (Por exemplo: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Adicionar utilizador ao filtro"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Carregue aqui para actualizar preferências"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Reset"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Ou carregue aqui para redefinir as preferências para a padrão"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Não foi possivel actualizar a sua palavra passe devido a problemas na base de dados. Por favor, tente mais tarde."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Mudar palavra passe"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "A sua palavra passe foi alterada."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Nova palavra passe"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "nova palavra passe, outra vez"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "Tags HTML não são permitidas no seu nome."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Tem que fornecer um nome para a sua conta."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Não foi possivel actualizar a informação do utilizador."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Editar informações da conta"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Nome %1 nome real ou nome de utilizador%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 da sua página web; opcional%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Código Postal %1 Opcional%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Actualizar informação"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Estado dos servidores"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "As tarefas do <b> estado do servidor (Server State) </ b> indica se a tarefa tiver sido enviada para um computador, e caso afirmativo, se o computador tiver terminado. Os valores possíveis são:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "A tarefa não está pronta para ser enviada (por exemplo, porque os ficheiros de entrada estão indisponíveis)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "A tarefa está pronta para ser enviada mas, ainda não o foi."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Em Progresso"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "A tarefa foi enviada; à espera de serem completas."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "A tarefa foi enviada para o computador e, ou expirou ou o computador reportou a tarefa como completa."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Resultados"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "O <b>resultado</b> da/s tarefa/s é definido se estado do seu servidor é <b>terminado</b>. Possiveis valores são:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "A tarefa foi enviada para o computador, mas o computador ainda não completou o trabalho e reportou o resultado."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "O computador completou e reportou a tarefa com sucesso."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "O servidor não conseguiu enviar a tarefa para o computador (talvez porque os recursos exigidos sejam demasiado grandes)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Erro do cliente"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "A tarefa foi enviada para o computador e ocorreu um erro."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "A tarefa foi enviada para o computador e não foi recebida reposta dentro do tempo limite."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "A tarefa não foi enviada para o computador porque já foram completas tarefas suficientes para esta unidade de trabalho."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "A tarefa foi reportada mas não pode ser validada, provavelmente porque os ficheiros de saida foram perdidos no servidor."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Estado dos clientes"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Um resultado <b>estado do cliente</b> indica o estado do processamento quando ocorreu um erro."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "O computador ainda não completou a tarefa."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "O computador completou a tarefa com sucesso."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "O computador não foi capaz de fazer o download da aplicação ou ficheiros de entrada."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Ocorreu um erro durante a computação."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "O computador não conseguiu fazer o upload dos ficheiros de saida."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Tempo reportado e tempo limite "
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "O campo <b>Tempo reportado ou tempo limite<b>da/s tarefa/s  depende se a tarefa já foi reportada:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Ja reportado"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "A data/tempo foi reportada/o"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Não reportado ainda, prazo limite no futuro"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Prazo limite, mostrado a verde."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Não reportado ainda, prazo limite no passado"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Prazo limite, mostrado a vermelho."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Campo desconhecido"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Pré-visualizar email"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "O seu email irá aparecer como se segue:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Mandar email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Use o botão 'voltar atrás' do seu navegador para regressar ao formulário"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Enviando emails"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "email enviado com sucesso a %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "falhou o envio do email a %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Obrigado por dizer aos seus amigos acerca de %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Esqueceu-se de inserir o nome dos seus amigos e/ou endereços de email; Por favor%1regresse ao formulário%2 e insira-os."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Este projecto não criou uma mensagem de e-mail - por favor notifique os administradores"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Dizer aos seus amigos acerca de %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Ajude-nos dizendo aos seus amigos, familia e colegas de trabalho acerca de %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Preencha este formulário com os nomes e endereços de email de pessoas que pense que possam estar interessadas em %1. Enviar-lhe-emos um email em seu nome e, poderá adicionar a sua própria mensagem se o quiser."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "O seu nome:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "O seu endereço de email:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Nomes dos amigos:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Endereços de email dos amigos:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Mensagem adicional (opcional):"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Enviar"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "Não está autorizado a banir utilizadores."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Voto para banir"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Não foi encontrado o utilizador com esse ID."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "O utilizador já está banido"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Tem a certeza que quer banir %1?<br>/>Isto vai evitar que %1 coloque posts por um determinado periodo de tempo.<br>Isto só deve ser feito se %1 tiver constantemente exibido um comportamento inadequado. "
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Seleccione a categoria da razão e opcionalmente escreva uma descrição mais detalhada da razão porque o utilizador deve ser banido."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Categoria"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Obsceno"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Incendiário/Mail de ódio"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Solicitação de utilizdor"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Razão"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Enviado por correio, se não vazio"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Proceder com a votação"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Tem que especificar uma acção..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Não pode mais editar este post.<br>/Os posts podem apenas ser editados até no máximo %1 minutos após serem criados."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Não está autorizado a editar este post."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Fórum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Editar a sua mensagem"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Título"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Adicionar a minha assinatura a este post"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Não visivel a si"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Mensagem da equipa do fórum para %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Novo tópico"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Adicionar um novo tópico neste fórum"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Este fórum está disponivel como %1RSS feed%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Este tópico está oculto"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Este tópico é sticky e está trancado e ainda não o leu"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "sticky/trancado/não lido"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Este tópico é sticky e ainda não o leu"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "sticky/não lidas"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Ainda não leu este tópico e está trancado"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "não lida/bloqueada"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Ainda não leu este tópico"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Este tópico é sticky e está bloqueado"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "sticky/trancado"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Este tópico é sticky"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "sticky"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Este tópico está bloqueado"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "bloqueado"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Já leu este tópico"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "lido"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Perguntas e respostas"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Fale ao vivo via Skype com um voluntário, em alguma das várias linguas. Vá a %1Página de Ajuda do BOINC%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Tópico"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Perguntas"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Discussão entre membros de %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Mensagens do fórum"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Se tiver uma questão ou um problema, por favor use a secção %1Questões & Respostas%2 do fórum."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Tópicos subscritos"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Moderar post"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Esconder post"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Spam comercial"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Duplo post"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Mover post"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID de destino do tópico:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Banir utilizador"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Duração do ban"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 horas"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 dia"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 semana"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 semanas"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 mês"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Para sempre"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Explicação opcional %1 Incluido no email para o utilizador.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "Não está autorizado a moderar este post"
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Não é possivel mover para um diferente tipo de categoria"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Não é possivel mover para uma categoria diferente"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Não autorizado a utilizadores banidos"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Banimento"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "O utilizador %1 foi banido."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Acção falhada: possivel problema na base de dados"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "não autorizado"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Moderar tópico '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Seleccione a categoria da razão ou, opcionalmente escreva uma descrição mais detalhada da razão porque está a ocultar o tópico; depois carregue em OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Fórum actual"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Descrição do fórum"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Novo título:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Apenas os administradores do projecto podem criar um tópico aqui. No entanto, pode responder a tópicos existentes."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "A sua mensagem foi marcada como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Criar novo tópico"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Criar um novo tópico"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Lembrar para adicionar um titulo."
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Mostrar este item como Notícia no gestor do BOINC"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Faça-o só para items prováveis de serem de interesse para todos os voluntários."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Votação offline"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Esta funcionalidade está desabilitada pelo projecto"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Precisa de mais moderação ou totais de créditos para classificar o post."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Já classificou este post."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Regressar ao tópico"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Entrada Gravada"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "A sua entrada foi gravada. Obrigado pela sua ajuda."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Voto Registado"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "A sua entrada foi gravada. Obrigado pela entrada."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Problema na submissão do voto"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "O seu post foi marcado como spam pelo sistema Akismet anti-spam. Por favor, modifique o texto e tente novamente."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Postar no tópico"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Mensagem:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "responder a %1ID da Mensagem%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Responder ao post"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Adicionar a minha assinatura a esta resposta"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Precisa de mais moderação ou totais de créditos para reportar um post."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Report Registado"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "O seu report foi gravado. Obrigado pela sua inserção."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Um moderador irá ver o seu relatório e decidir o que irá acontecer - isto pode demorar algum tempo, por isso, tenha paciência"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Reportar um post do fórum"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Antes de reportar este post, considere usar o sistema de classificação +/-. Se utilizadores suficientes classificarem o post negativamente ele ficará oculto eventualmente.<br>Pode encontrar o sistema de classificação no topo do post."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Reportar post"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Porque acha o post ofensico: %1Por favor inclua informação suficiente para que uma pessoa que\nainda não tenha lido o tópico, seja rapidamente capaz de identificar o problema.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Report não registado"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "O seu report não pode ser gravado. Por favor aguarde um bocado e tente novamente."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Se não for um erro temporário, por favor reporte-o à equipa de desenvolvimento."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 feed RSS"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Este fórum está disponivel como um RSS feed."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Opcões:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Incluir posts apenas pelo ID de utilizador %1 (padrão: todos os utilizadores)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Incluir posts apenas dos ultimos %1 dias (padrão: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Tópicos apenas: %1 (Incluir apenas o primeiro post de cada tópico)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Pesquisa no fórum"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Pesquisa de consulta"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Procurar por palavras chave:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Posts contendo todas as palavras especificadas serão mostrados"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Por exemplo: \"protecção de ecrã bloqueou\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Procurar por ID do autor:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Apenas posts deste autor serão mostrados"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Por exemplo: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Opções de pesquisa"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Limites de pesquisa"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Pesquisar no máximo até tantos dias atrás"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 meses"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 ano"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "sem limite"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Apenas mostrar posts deste fórum"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Ordenar por"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Começar pesquisa"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Resultados da pesquisa no fórum"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Titulos de tópicos correspondentes à sua pesquisa:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Mensagens correspondentes à sua pesquisa:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Pedimos desculpa mas, não foi possivel encontrar nada correspondente ao seu critério de pesquisa. Pode tentar ampliar a sua pesquisa usando menos palavras (ou menos palavras especificas)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Pode também %1tentar a mesma pesquisa no Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "realizar outra pesquisa"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Subscrição bem sucedida"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Está agora subscrito a %1. Será notificado quando houver um novo post."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Subscrição falhada"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Não é possivel de momento subscrevê-lo a %1. Por favor, tente mais tarde.."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Subscrição retirada com sucesso"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Já não está subscrito a %1. Não receberá daqui em diante notificações para este tópico."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr " Retirar subscrição falhada"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Não é possivel de momento retirar a subscrição de %1. Por favor, tente mais tarde.."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Acção de subscrição desconhecida"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Este fórum não é visivel a si."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Este tópico foi oculto pelos moderadores."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "A minha questão foi respondida"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Carregue aqui se a sua questão foi adequadamente respondida"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Também tenho esta questão"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Adicionar uma nova mensagem a este tópico"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Deixar de subscrever"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Já está subscrito neste tópico. Carregue aqui para deixar de subscrever."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Subscrever"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Carregue para obter emails quando houver novos posts neste tópico"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Deixar de esconder este tópico"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Esconder este tópico"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Marcar como não sticky"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Marcar este tópico como não sticky"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Marcar como sticky"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Fazer este tópico aparecer sempre no topo do fórum"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Desbloquear"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Permitir novos posts neste tópico"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Bloquear"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Não permitir novos posts neste tópico"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Mover este tópico para um fórum diferente"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Editar título"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Editar o título deste tópico"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Eliminar este tópico permanentemente"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Exportar como Notícia"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Não exportar"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Não exportar estas novidades como Notícias"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Ordenar"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Estado do tópico actualizado"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "O estado foi actualizado."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Posts por %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Já amigos"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Solicitou amizade com %1 no %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Esta solicitação está ainda pendente por confirmação."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 não está a aceitar pedidos de amizade seus"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Não pode ser amigo de si mesmo"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Adicionar amigo"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Pediu para adicionar %1 como amigo. Iremos notificar %1 e pedir-lhe que confirme que são amigos."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Adicionar uma mensagem opcional aqui:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Pedido de amizade enviado"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "Notificámos %1 do seu pedido."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Por favor faça login como %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Tem que efectuar o login como %1 para ver o pedido deste amigo"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Pedido de amigo"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 solicitou amizade consigo."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 diz: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Aceitar amizade"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Carregue em aceitar se %1 é de facto um amigo"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Declinar"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Carregue em declinar se %1 não é um amigo"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Amizade confirmada"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "A sua amizade com %1 foi confirmada."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Amizade declinada"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Declinou a amizade com %1"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Notificação não encontrada"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Amigo confirmado"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "É agora amigo de %1."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Cancelar amizade?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Tem a certeza que quer cancelar a sua amizade com %1?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Manter amigo"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Amizade cancelada"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "A sua amizade com %1 foi cancelada."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Se sabe o endereço de email da sua conta e, pode receber os emails nessa conta:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Insira em baixo o endereço de email e carregue em OK. Será enviado um email com instruções para redefinir a sua palavra passe."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Se esqueceu o endereço de email da sua conta, ou não pode receber emails nessa conta:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Se executa o BOINC nesta conta, ainda o pode aceder. Saiba como:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Ir para o directório de dados do BOINC no seu computador (a sua localização está escrita no Log de Eventos ao início)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Encontre o seu ficheiro de conta para este projecto; será chamado <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Abra o ficheiro num editor de texto como o Notepad. Verá algo como"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Seleccionar e Copiar a string entre %1 e %2 (%3 no exemplo abaixo)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Colar a string no campo abaixo e, carregar em OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Será agora feito o log in na sua conta; actualizar o email e palavra passe da sua conta."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "fazer login com o autenticador"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Esqueceu-se das informações da sua conta?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Sem tarefas de GPU reportadas"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Top de modelos GPU"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "A seguinte lista mostra os modelos de GPU mais produtivas nas diferentes plataformas. Velocidades relativas, analisadas pelo tempo médio das tarefas, são mostradas em parêntesis."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Bem vindo a %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Ver e editar as preferências da sua conta usando os links abaixo."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Se ainda não o fez, %1faça o download do software de client BOINC%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "A sua conta"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Plataforma anónima, aplicação em falta"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "plataforma anónima"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Versão de aplicação não encontrada"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Aplicação não encontrada"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Plataforma não encontrada"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Número de tarefas completas"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Máximo de tarefas por dia"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Número de tarefas hoje"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Tarefas válidas consecutivas"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Taxa média de processamento"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Detalhes da aplicação para o anfitrião %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Não temos registo desse computador."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Não pode eliminar o nosso registo deste computador porque a base de dados ainda contém trabalho para ele. Tem de esperar uns dias até que o trabalho para este computador seja eliminado da base de dados do projecto."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Apagar registo do computador"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Registo apagado."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Regressar à lista dos seus computadores"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Fundir registos dos computadores "
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Fundir computadores"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Por vezes o BOINC assigna identidades separadas para o mesmo computador por engano. Pode corrigir isto fundindo identidades mais antigas com as novas."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Não existem anfitriões elegiveis para fundir com este."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Mostrar detalhes"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Verifique os computadores que são os mesmos que %1 (criado em %2, ID do computador %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "nome"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "criado"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID do computador"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "sem anfitrião"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Fundir anfitriões"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Actualizando créditos do computador"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Créditos do anfitrião actualizados"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Local do anfitrião actualizado"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "nenhum"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "O local deste anfitrião foi definido para %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Esta alteração irá ocorrer da próxima vez que o anfitrião comunicar com este projecto."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Regressar à página do anfitrião"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Computadores pertencentes a %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Computadores ocultos"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Este utilizador escolheu não mostrar informações relativas aos seus computadores."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Os seus computadores"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Tagas HTML permitidas"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "As seguintes tags HTML são permitidas nas descrições das equipas:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "negrito"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "itálicos"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hiperlink"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "parágrafo"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "quebra"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "pré-formatado"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "imagem; altura não pode exceder 450 pixéis. Por favor, não linke imagens sem a permisão do website onde a imagem está alojada."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Pode também pode usar a notação comercial para caracteres especiais."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Leia as nossas regras e politícas"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Executar %1 apenas em computadores autorizados"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Executar %1 apenas em computadores que possua, ou que tenha obtido a permissão do dono. Algumas companhias e escolas têm politícas que proibem de usar os seus computadores para projectos como %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Como o %1 irá usar o seu computador"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Quando executar o %1 no seu computador, este irá utilizar parte do poder da CPU do computador, espaço no disco e largura de banda. Pode controlar a quantidade de recursos que são utilizados pelo %1, e quando este os utiliza."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "O trabalho realizado pelo seu computador contribui para os objectivos do %1, como descrito no website. Os programas das aplicações podem variar de tempo a tempo."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Politíca de privacidade"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "A sua conta no %1 é identificada pelo nome que escolheu. Este nome pode ser mostrado no %1 website, juntamente com um resumo do trabalho que foi realizado pelo seu computador para o %1. Se quer permanecer anónimo, escolha um nome que revele a sua identidade."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Se participa em %1, as informações acerca do seu computador (assim como o tipo de processador, quantidade de memória, etc.) será gravada pelo %1 e usada para decidir que tipo de trabalho será assignado ao seu computador. Esta informação será também mostrada no %1's website. Nada que revele a localização do seu computador (por exemplo o nome do domínio ou o endereço de rede) será mostrado."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Para participar em %1, tem que inserir um endereço onde receba emails. Este endereço não será mostrado no %1 website ou organizações partilhadas. %1 pode enviar newsletters periódicas; no entanto, pode desistir a qualquer altura."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Mensagens privadas enviadas no %1 website estão visíveis apenas ao remetente e receptor. %1 não examina ou controla o conteúdo das mensagens privadas. Se receber mensagens privadas indesejáveis de outro %1 utilizador, pode adicioná-lo ao seu %2filtro de mensagens%3. Isto irá prevenir que veja mensagens públicas ou privadas desse mesmo utilizador."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Se usa o nosso fórum na web, tem que seguir as %2instruções para fazer posts%3. Mensagens postadas ao %1 fórum estão visíveis a todos, incluindo não-membros. Ao postar nos fóruns, está a garantir licença irrevogável para que qualquer pessoa possa ver e copiar os seus posts."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "É seguro executar %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "De cada vez que faz o download de um programa através da Internet está a correr um risco: o programa pode conter erros perigosos, ou o servidor de downloads pode ter sido hackeado. %1 fez um esforço para minimizar estes riscos. Testamos as nossas aplicações com todos o cuidado. os nossos servidores estão por trás de uma firewall e configurados para alta segurança. Para garantir a integridade dos downloads dos programas, todos os executáveis estão assinados digitalmente num comput [...]
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "As aplicações executadas pelo %1 podem causar, em alguns computadores, sobreaquecimento. Se isto acontecer, pare de executar %1 ou use um %aplicativo%3 que limite o uso do CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 foi desenvolvido pelo %2. O BOINC foi desenvolvido na Universidade da California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Responsabilidade"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 e %2 não assume responsabilidade por danos no seu computador, perca de dados ou outros eventos ou condições que possam ocorrer como resultado de participar em %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Outros projectos BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Outros projectos usam a mesma plataforma, o BOINC, como %1. Pode considerar participar em um ou mais destes projectos. Ao fazê-lo, o seu computador fará trabalho útil mesmo quando %1 não tiver trabalho disponível."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Estes projectos não estão associados com %1, e não podemos garantir a natureza de práticas seguras nas suas pesquisas. Junte-se a eles por sua conta e risco."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Selecção de linguagem"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Este website está disponível em várias linguagens. A linguagem seleccionada actualmente é %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Normalmente a escolha do idioma é determinada pela definição de idioma do seu navegador web, que é: %1. Pode alterar esta definição usando:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Ferramentas/Opções/Geral"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Ferramentas/Opções da Internet/Linguagens"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Ou pode seleccionar o idioma carregando numa destas ligações. Isto irá enviar um cookie para o seu navegador; confirme que o seu navegador aceita cookies do nosso domínio."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Nome da linguagem (carregue para seleccionar)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Use as definições do navegador"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "As traduções são feitas por voluntários. Se o seu idioma não está aqui, %1 pode providenciar a tradução%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "ou %1criar uma conta%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Processando %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "Fundido de %1 para %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Regressar à lista dos seus computadores"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Esta operação liga os computadores baseados no seu nome de domínio.\n<p>\nPara cada nome de domínio, este ligará todos os computadores antigos\ntendo esse nome no computador mais recente.\nOs computador incompatíveis não serão ligados entre si.\n<p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Vá em frente e faça isto"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Regressar à lista de computadores"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nPara maximizar a discussão e o fluxo de informação,\nos nosso fóruns são sujeitos a moderação.\nPosts nos fóruns são sujeitos às seguintes regras:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nOs Moderadores podem apagar posts que violem alguma destas regras.\nOs autores dos posts eliminados serão notificados por email.\nInfratores grosseiros poderão ter a capacidade de postar mensagens temporariamente revogadas.\n(apesar de ser para prevenir abusos, apenas administradores têm o privilégio de o fazer).\nTipos de mau comportamenteo adicionais (\"bugging\" posts para apanhar os\nendereços de IP de outros participantes, criação excessiva de posts para fazer spam\nn [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Créditos pendentes"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID do resultado"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID da Unidade de Trabalho"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID do Anfitrião"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Crédito reivindicado"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Créditos pendentes: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Bloquear mensagens deste utilizador"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Bloquear utilizador"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "A sua mensagem foi enviada."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Não tem mensagens privadas."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Remetente e data"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Responder a esta mensagem"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Apagar esta mensagem"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Seleccionar todos"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Desseleccione todos"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Apagar mensagens seleccionadas"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Remetente"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Tem que preencher todos os campos para enviar uma mensagem privada"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "A sua mensagem foi marcada como spam\n              pelo sistema Akismet anti-spam.\n              Por favor, modifique o texto e tente novamente."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Não foi possivel encontrar o utilizador com o id %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Não foi possivel encontrar o utilizador com o nome de utilizador %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 não é um nome de utilizador único; terá que usar o ID do utilizador"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "O utilizador %1 (ID: %2) não está a aceitar mensagens privadas suas."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Não existe tal utilizador"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Bloquear %1?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Tem a certeza que quer bloquear o utilizador %1 de lhe enviar mensagens privadas?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Tenha em atenção que só pode bloquear um número limitado de utilizadores."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Assim que o utilizador for bloqueado, só o pode desbloquear usando a página de preferências do fórum."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Não, cancelar"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "não existe tal utilizador"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Utilizador %1 bloqueado"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "O utilizador %1 foi bloqueado de lhe enviar mensagens privadas."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Para desbloquear, visite as %1preferências do fórum%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Acção desconhecida"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "As suas preferências foram actualizadas e,\n        terão efeito quando o seu computador comunicar com %1\n        ou executar o comando %2Actualizar%3 a partir do Gestor do BOINC."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "As suas preferências foram redefinidas para as iniciais,\n           e terão efeito quando o seu computador comunicar com %1\n           ou executar o comando %2Actualizar%3 no Gestor BOINC."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 para %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Voltar às preferências"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Confirmar apagar preferências"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Tem a certeza que quer apagar as suas %1preferências separadas para %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Remover preferências"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Perfis"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Perfis%2 permitem partilhas individuais dos fundos e opiniões com a %3 comunidade."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Explore a diversidade dos seus colegas voluntários, e contribua com os seus pontos de vista para que os outros apreciem."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Se ainda não tem, pode %1criar o seu próprio perfil%2 para que outros possam vê-lo!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Utilizador do Dia"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Explorador do Perfil de Utilizador"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Ver a %1Galeria de Imagens do Utilizador%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Pesquisar os perfis %1por país%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Mostrar perfis %1ao acaso%2, %3ao acaso com imagens%2, ou %4ao acaso sem imagens%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Listagem alfabética de perfis:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Pesquisar perfil por texto"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Sem perfis"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Não existem perfis que correspondam ao seu critério."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Tipo de voto inválido:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Voto Gravado"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Obrigado"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "A sua recomendação foi gravada."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "O seu voto para rejeitar este perfil foi gravado."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Regressar ao perfil."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Perfis contendo '%1'"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Nome de utilizador"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Juntou-se ao projecto"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Créditos recentes"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Não encontrou perfis contendo '%1'"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Não existe essa tarefa:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Esta funcionalidade está temporariamente desabilitada"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Computador não encontrado com o ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Sem acesso"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Utilizador não encontrado ou ID do anfitrião"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Sem tarefas para mostrar"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Utilizador do dia"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Não em execução"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Em execução"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Desabilitado"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Estado do projecto"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Estado do servidor"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Programa"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Anfitrião"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Versão do esquema da Base de Dados:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Estado da computação"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Utilizadores"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Tarefas por aplicação"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Tempo decorridos das últimas 100 tarefas em horas: média, min, máx"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Utilizadores nas últimas 24 horas"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Computador %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Estatísticas e líderes"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Estatísticas para %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Top - Participantes"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Top - Equipas"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Top - Computadores"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "Modelos de GPU"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "Modelos de CPU"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Mais estatísticas detalhadas para %1 e outros projectos relacionados com o BOINC estão disponíveis em vários websites:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Pode também obter as suas estatísticas actuais no formato de uma \"signature image\":"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Adicionalmente pode obter as suas estatísticas individuais resumidas através de todos os projectos BOINC de vários sites; veja a sua %1página principal%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Equipas"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 participantes podem formar %2equipas%3."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Só pode pertencer a uma equipa. Pode juntar-se ou sair duma equipa a qualquer altura."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Cada equipa tem um %1fundador%2 que pode:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "aceder aos endereços de email dos membros da equipa"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "editar o nome da equipa e descrição"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "adicionar ou remover administradores da equipa"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "remover membros da equipa"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "acabar com a equipa se esta não tiver membros"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Para se juntar a uma equipa, visite a página da equipa e carregue em %1Juntar-se a esta equipa%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Encontrar uma equipa"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Todas as equipas"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 equipas"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Criar uma nova equipa"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Se não encontrar uma equipa que seja adequada a si, pode %1criar uma equipa%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Remover privilégios de administração da equipa deste membro"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Adicionar ou remover Administradores da Equipa"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Pode seleccionar membros como 'Administradores da Equipa'. Administradores da Equipa podem:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Editar informações da equipa (nome, URL, descrição, país)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Ver o histórico da equipa de quem se juntou/saiu"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Moderar o fórum da equipa, se existir (administradores recebem notificações por email de eventos de moderação)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Administradores da Equipa não podem:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Mudar o fundador da equipa"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Remover membros"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Se um Administrador da Equipa sair da mesma, deixa de ser um Administrador da Equipa."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Recomendados que só seleccione pessoas para Administradores da Equipa que conheça e tenha confiança."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Actualmente não existem Administradores da Equipa"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Administradores da Equipa Actuais"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Torne a opção de Administrador da Equipa activada"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Adicionar Administrador da Equipa"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Endereço de email do membro da equipa:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Adicionar"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "falhou a remoção do administrador"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "O utilizador não é membro da equipa"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 já é um administrador de %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Não foi possivel adicionar administrador"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Não existe essa equipa"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "não existe essa equipa"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "O utilizador não é membro de %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Mudando fundador de %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 é agora fundador de %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Mudar fundador de %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "O membro da equipa%1 solicitou a liderança desta equipa em %2, mas deixou a equipa e logo o pedido foi cancelado."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "O membro da equipa %1 solicitou a liderança desta equipa. Isto poderá ter acontecido porque você deixou a equipa ou não contacta a equipa por um longo periodo de tempo."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "declinar pedido"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Se não declinar o pedido por %1, 2% terá a opção de assumir a liderança da equipa.<br/><br/>\n                  Para aceitar o pedido, atribua a liderança a %3 usando o formulário abaixo."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Não existe pedido de transferência pendente."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Para atribuir a liderança desta equipa a outro membro, assinale a caixa a seguir ao membro e clique <strong>Mudar fundador</strong>em baixo."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Novo fundador?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Mudar fundador"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Não existem utilizadores para transferir de equipa."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Não pode escolher um nome de equipa em branco"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Uma equipa chamada %1 já existe - tente outro nome"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Não foi possivel criar a equipa - por favor tente mais tarde."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Criar uma equipa"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Pertence a %1. Tem que %2deixar esta equipa%3 antes de criar uma nova."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Não é fundador ou administrador"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "Histórico da equipa para %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Quando"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Utilizador"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Acção"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Créditos totais na altura da acção"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "mau país"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "O nome '%1' já está em uso por outra equipa."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Tem que especificar um nome para a equipa"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Não foi possivel actualizar a equipa - por favor tente mais tarde."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Editar %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Actualizar informações da equipa"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 Lista de Emails"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Lista de Membros de %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Mostrar como texto simples"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Criar Fórum"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Pode criar um fórum para uso por %1."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Apenas membros da equipa podem postar."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Por sua opção, apenas membros poderão ler."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Você e os Administradores da Equipa terão privilégios de moderação."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Criar um fórum para %1"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "A equipa já tem um fórum"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Fórum de Equipa"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Tempo minímo entres posts (segundos)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Total de créditos minímos para postar"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Média de créditos minímos para postar"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Submeter"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Remover o fórum da sua equipa."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Tem a certeza que quer remover o fórum?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Tem a certeza que quer remover o fórum da sua equipa? Todos os tópicos e posts serão permanentemente removidos. (Pode, no entanto, criar um novo fórum mais tarde)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Sim - remover fórum"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Fórum removido"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "O fórum da sua equipa foi removido. Pode agora %1criar um novo%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Fórum da Equipa Actualizado"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Actualização com sucesso"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Actualização falhada"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "A equipa não tem fórum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Tem que ser um membro de uma equipa para aceder a esta página."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Pedindo liderança de %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "O fundador actual foi notificado para o seu pedido por email e mensagem privada.<br/><br/>\n                      Se o fundador não responder num prazo de 60 dias, terá permissão para se tornar o fundador."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Pedido de liderança não permitido agora"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Assumir liderança de %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Parabéns, é agora o fundador da equipa %1. Vá à %2Página da sua Conta%3 para verificar as opções de Administração da Equipa."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Declinar pedido de mudança de fundador"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "O pedido de liderança de %1 foi declinado."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Não existem pedidos de liderança."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "acção indefinida %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Regressar à página da equipa"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Tem que ser um membro duma equipa para aceder a esta página."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Solicitar liderança de %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "É agora o fundador da equipa %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Solicitou a liderança de %1 em %2."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "60 dias passaram desde o seu pedido e o fundador não respondeu. Pode agora assumir a liderança carregando aqui:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Assumir liderança"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "O fundador foi notificado do seu pedido. Se ele/ela não responder por %1 ser-lhe-á dada a opção de se tornar fundador."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Se o fundador da equipa não está activo e quiser assumir o papel de fundador, carregue no botão em baixo. Será enviado um email detalhado ao fundador actual com o seu pedido, e o mesmo poderá transferir-lhe a liderança ou declinar o seu pedido. Se o fundador não responder num prazo de 60 dias, terá permissão para se tornar o fundador.<br/><br/>\n                       Tem a certeza que quer solicitar a liderança?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Pedir liderança"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "A alteração de fundador já foi solicitada por %1 em %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Uma mudança de liderança foi solicitada durante os ultimos 90 dias, por isso novos pedidos não são permitidos. Por favor, tente mais tarde."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "Não se pode juntar à equipa %1."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Já é membro"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Já é membro de %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Não foi possivel se juntar à equipa - por favor tente mais tarde."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Juntou-se a %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "Juntou-se a %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Juntar %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Por favor tenha atenção:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Juntar-se a uma equipa dá ao fundador acesso ao seu endereço de email."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Juntar-se a uma equipa não afecta os créditos da sua conta."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Juntar-se a equipa"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Resultados da Pesquisa"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Pesquisar resultados para '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Pode ver os membros, estatísticas e informações das equipas."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Mais de 100 equipas correspondem à sua procura. As primeiras 100 serão mostradas."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Fim dos resultados. %1 Se não conseguiu encontrar a equipa que procurava, pode %2criar uma equipa%3 você mesmo."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Administrador da equipa para %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Editar informações da equipa"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Mudar nome da equipa, URL, descrição, tipo ou país"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Lista de membros:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "texto"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Ver nomes dos membros e endereços de email"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Ver histórico de mudanças:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Ver quando os membros se juntaram ou sairam da equipa"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Responder ao pedido de liderança."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Se não responder por %1, %2 pode assumir a liderança desta equipa."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Remover membros inactivos ou indesejáveis desta equipa"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Transferir liderança para outro membro"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Adicionar/remover Administradores da Equipa"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Dar aos membros seleccionados privilégios de Administração da Equipa"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Remover equipa"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Permitido apenas se a equipa não tiver membros"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Criar ou gerir um fórum da equipa"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Para ter esta equipa criada em todos os projectos BOINC (agora e futuramente) pode criá-la numa %1equipa ampla do BOINC%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Administradores de Equipa são encorajados a juntar-se e participar no grupo %1fundadores de equipas do boinc%2 no Google."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Não é possivel apagar uma equipa não vazia"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Equipa %1 apagada"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limite excedido: Só é possivel mostrar os primeiros 1000 membros."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Membros de %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Não foi possivel sair da equipa"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "A equipa não existe ou não pertence à mesma."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Sair %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Tenha em atenção antes de sair de uma equipa:</strong>\n         <ul>\n         <li>Se sair de uma equipa, pode mais tarde se juntar novamente, ou juntar-se a outra equipa que deseja\n         <li>Sair de uma equipa não afecta de maneira nenhuma os seus créditos pessoais.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Sair da Equipa"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Removendo utilizadores de %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 não é membro de %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 foi removido"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Remover membros de %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Remover?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Nome (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Nenhum membro está qualificado para remoção."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Remover utilizadores"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Nome da equipa"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Resultados da pesquisa de equipas"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Não foram encontradas equipas correspondentes aos seus critérios de pesquisa. Tenta outra pesquisa."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Ou pode %1criar uma nova equipa%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "As seguintes equipas correspondem a um ou mais critérios da sua pesquisa.\n           Para se juntar a uma equipa, carregue no seu nome para ir á página da equipa,\n               depois carregue em %1Juntar-se a esta equipa%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Mudar a sua pesquisa"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Pode juntar-se com outras pessoas com interesses similares, ou do mesmo país, companhia ou escola."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Use este formulário para encontrar equipas que possam ser adequadas a si."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Não estou interessado%2 em juntar-me a uma equipa neste momento."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limite excedido - Pedimos desculpa, os primeiros %1 items apenas"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top - Anfitriões"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Top %1 equipas"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "Não existem %1 equipas"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Participante desde"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "Não foi escolhido utilizador do dia."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Uitlizador do Dia para %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtros"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Nome de utilizador começa com"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Qualquer"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Com perfil?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Também"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "Numa equipa?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Ordenando"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Diminuir o tempo de inscrição"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Média de créditos por ordem decrescente"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Créditos totais por ordem descrescente"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "pesquisar string que tenha no minímo 3 caracteres"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Resultados da pesquisa de utilizador"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Juntou-se"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Nenhum utilizador encontrado com os critérios especificados."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Utilizador não encontrado!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Dados da Conta<br>para %1<br/>Tempo:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Equipa:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Créditos Totais da Equipa:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Média de Créditos da Equipa:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Equipa: Nenhuma"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Validar endereço de email do BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Por favor visite o seguinte link para validar o endereço de email da sua %1 conta:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Email de validação enviado"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Um email foi enviado para %1. Visite o link contido para validar o seu endereço de email."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Não existe tal utilizador."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Erro de dados no URL - não é possivel validar o endereço de email"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Actualização da base de dados falhada - por favor, tente mais tarde."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Validar endereço de email"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "O endereço de email da sua conta foi validado."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Este utilizador não tem perfil"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Perfil: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Dados da conta"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Pode aceder à sua conta usando o endereço de email e palavra-passe,\n      ou então usando a 'chave da conta' assignada.\n      A sua chave da conta é:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "esta chave pode ser usada para:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "faça login com a sua conta na web"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "para adicionar um computador à sua conta sem ter de usar o Gestor BOINC.\n        Para o fazer, instale o BOINC,\n        crie um ficheiro chamado %1 na directoria de dados\n        do BOINC e, defina os seus conteúdos para:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Palavra chave fraca"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "A sua 'chave de conta fraca' pode ser utilizada para adicionar computadores à sua conta\n    como descrito acima mas, não pode ser usada para se ligar à sua conta ou alterá-la de qualquer maneira.\n    Se quiser adicionar computadores inseguros ou que não sejam de confiança, à sua conta,\n    faça-o usando a sua chave de conta fraca.\n    A sua chave de conta fraca é:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Se mudar a sua palavra passe, a sua chave fraca mudará e a sua chave fraca anterior torna-se inválida"
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "não foi possivel encontrar unidade de trabalho"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Unidade de trabalho %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "aplicação"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "resultado canónico"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "crédito garantido"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Tarefas em progresso"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "conclusão pendente suprimida"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "quórum minímo"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "replicação inicial"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "máximo # de erros/totais/tarefas com sucesso"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "erros"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validação"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Pendente"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Página principal"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Direitos de Autor"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Gerado"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "O seu fundo pessoal."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Fale-nos sobre si. Diga-nos de onde é, a sua idade, ocupação, passatempos ou algos mais sobre si."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "As suas opiniões acerca de %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Diga-nos as suas opiniões acerca %1<ol>\n    <li>Porque executa %1?\n    <li>O seu ponto de vista acerca do projecto?\n    <li>Alguma sugestão?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Esquema de cores para os gráficos"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "CPU máximo % para os gráficos%10... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Executar apenas as aplicações seleccionadas"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Obter tarefas apenas para certas aplicações. Útil para se focar em aplicações específicas, ou para exclui-las,"
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Se não houver trabalho para as aplicações seleccionadas, aceitar trabalho de outras aplicações?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Utilizar aplicações não-gráficas mais rápidas se disponíveis?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(todas as aplicações)"
diff --git a/locale/pt_PT/BOINC-Setup.mo b/locale/pt_PT/BOINC-Setup.mo
index cbeae29..b316322 100644
Binary files a/locale/pt_PT/BOINC-Setup.mo and b/locale/pt_PT/BOINC-Setup.mo differ
diff --git a/locale/pt_PT/BOINC-Setup.po b/locale/pt_PT/BOINC-Setup.po
index 1c8d28c..4483955 100644
--- a/locale/pt_PT/BOINC-Setup.po
+++ b/locale/pt_PT/BOINC-Setup.po
@@ -1,97 +1,105 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Maria Manuela Silva, 2016
-# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2016-05-27 12:14+0000\n"
-"Last-Translator: Maria Manuela Silva\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-28 15:56+0000\n"
+"Last-Translator: Manuela Silva <manuela.silva at sky.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/boinc/boinc/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_PT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Desculpe, mas esta versão do %s requer o sistema 10.5 ou superior."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Desculpe, esta versão do %s requer o sistema 10.6 ou superior."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Sim"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Não"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
-msgstr "Deve o BOINC ser executado se nenhum utilizador estiver ligado?"
+msgstr "O BOINC deverá ser executado mesmo que nenhum utilizador tenha iniciado a sessão?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
-msgstr "Utilizadores com permissões de administração neste computador, terão permissão automática para correr e controlar o %s.\n\nQuer também que utilizadores com permissões não administrativas sejam capazes de correr e controlar o %s neste Mac?"
+msgstr "Os utilizadores com permissões de administrador neste computador irão ser autorizados automaticamente para executar e controlar o %s.\n\nTambém quer que os utilizadores com permissões não administrativas possam executar e controlar o %s neste Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr "Quer definir o %s como protecção de ecrã para todos os %s utilizadores neste Mac?"
+msgstr "Quer definir o %s como proteção de ecrã para todos os %s utilizadores neste Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
-msgstr "OK"
+msgstr "CONFIRMAR"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
-msgstr "Erro de permissão depois do re-lançamento"
+msgstr "Erro de permissão depois de reiniciar"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
-msgstr "A remoção pode levar vários minutos.\nPor favor aguarde."
+msgstr "A remoção pode demorar alguns minutos.\nPor favor, seja paciente."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
 "\n"
 "This will remove the executables but will not touch %s data files."
-msgstr "Tem a certeza que quer eliminar completamente o %s do seu computador?\n\nSerão eliminados os ficheiros executáveis mas não os ficheiros de dados %s."
+msgstr "Tem a certeza que deseja remover completamente o %s do seu computador?\n\nIsto irá remover os executáveis, mas não os ficheiros de dados %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Cancelado: %s não foi alterado. "
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Ocorreu um erro: código de erro %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "nome do utilizador"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
-msgstr "Também quer remover o VirtualBox do seu computador?\n(O VirtualBox foi instalado juntamente com o BOINC.)"
+msgstr "Também quer remover o VirtualBox do seu computador?\n(O VirtualBox foi instalado com o BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,19 +109,19 @@ msgid ""
 "\n"
 "for each user, the file\n"
 "\"%s\"."
-msgstr "Remoção completa.\n\nPode ainda remover os restantes items usando o Localizador: \na directoria \"%s\"\n\npara cada utilizador, o ficheiro\n\"%s\"."
+msgstr "Remoção completa.\n\nSe pretender remover os restantes itens utilizando o Localizador: \na diretoria \"%s\"\n\npara cada utilizador, o ficheiro\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Insira a sua palavra-passe de  administrador para remover totalmente o %s do seu computador.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Continuar..."
diff --git a/locale/pt_PT/BOINC-Web.mo b/locale/pt_PT/BOINC-Web.mo
index cddbf51..aebe1c8 100644
Binary files a/locale/pt_PT/BOINC-Web.mo and b/locale/pt_PT/BOINC-Web.mo differ
diff --git a/locale/pt_PT/BOINC-Web.po b/locale/pt_PT/BOINC-Web.po
index 2df832c..43cda1c 100644
--- a/locale/pt_PT/BOINC-Web.po
+++ b/locale/pt_PT/BOINC-Web.po
@@ -1,21 +1,21 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
-# Maria Manuela Silva, 2016
-# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Manuela Silva <manuela.silva at sky.com>, 2016
+# Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>, 2015-2016
 # Octávio Filipe Gonçalves <octavio.filipe.pereira at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-05-31 08:27+0000\n"
-"Last-Translator: Miguel Filipe Paulino de Sousa Veiga <Miguel.veig at gmail.com>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-28 16:22+0000\n"
+"Last-Translator: Manuela Silva <manuela.silva at sky.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/boinc/boinc/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -24,359 +24,466 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Português (Portugal)"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Portuguese"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! ajuda-o a criar e a gerir as suas contas do seu projeto BOINC e ajuda-o com a configuração das preferências, adesão ou criação de equipas, ligar aos seus computadores para projetos, e muito mais. Se é um novo ou um utilizador existente do BOINC, BAM irá ajudá-lo a tirar o máximo proveito do BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Os membros de GridRepublic executam um protetor de ecrã que permite que os seus computadores trabalhem em projetos de investigação de interesse público quando as máquinas não estão em utilização. Este protetor de ecrã não afeta o desempenho do computador hospedeiro, mais do que um simples protetor de ecrã efetua."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Pesquisar"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "Regressar à página principal do BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Esta página pode ser %straduzida%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Nós recomendamos que instale também o VirtualBox, e assim, o seu computador pode trabalhar em projetos de ciência que o necessitem."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "Saiba mais sobre o VirtualBox."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
-msgstr "Transferir o BOINC + VirtualBox"
+msgstr "Transferir BOINC + VirtualBox"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "para %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "Transferir BOINC"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "O BOINC é um programa que lhe permite doar tempo inativo do seu computador, para projetos científicos, tais como Climateprediction.net, Rosetta at home, SETI at home, World Community Grid e muitos outros."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "Depois de instalar o BOINC no seu computador, pode-o ligar a tantos projetos quantos desejar."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
-msgstr "Poderá executar este software num computador apenas se for o proprietário, ou tiver permissão do mesmo."
+msgstr "Poderá executar este software num computador se for o proprietário do mesmo, ou tiver permissão para isso."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "Nós recomendamos que transfira o BOINC da Amazon Appstore ou da Google Play Store, não daqui."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
-msgstr "Requisitos de sistema"
+msgstr "Requisitos do sistema"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Notas de lançamento"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Ajuda"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Todas as versões"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
-msgstr "Histórico de Versões"
+msgstr "Histórico das Versões"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
-msgstr "Computação GPU"
+msgstr "Computação de GPU"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: computação para a ciência"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "A ajuda on-line do BOINC permite-lhe conversar com utilizadores experientes do BOINC, que podem: %s responder às suas perguntas sobre o BOINC e computação voluntária; %s  ajudá-lo-á através do processo de instalação e utilização do BOINC; %s e resolver quaisquer problemas."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "A ajuda on-line do BOINC baseia-se no %sSkype%s, um sistema de comunicação que utiliza a Internet. O Skype é gratuito (tanto o programa e as chamadas). Se ainda não tem o Skype, por favor, %stransfira-o agora e instale-o%s. Quando terminar, volte a esta página."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "A melhor maneira de obter ajuda é por voz, pelo que precisa de um microfone e colunas ou auscultadores para o seu computador. Também pode utilizar o sistema de conversação Skype, ou o e-mail (se não tiver o Skype) para comunicar com os voluntários de ajuda."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Estão disponíveis voluntários que falam várias idiomas. Por favor, escolha um idioma:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Seja um Voluntário de Ajuda"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Se é um utilizador experiente do BOINC, encorajamo-lo a se %stornar um Voluntário de Ajuda%s. É uma maneira óptima de ajudar a causa de investigação científica e computação voluntária - e é divertido!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Se já é um Voluntário de Ajuda: para editar as suas preferências, %sclique aqui%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "Os ajudantes do BOINC são voluntários não remunerados. Os seus conselhos não são aprovados pelo BOINC ou pela Universidade da Califórnia."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "%1Nunca%2 forneça informações sobre o endereço de e-mail ou a palavra-passe aos ajudantes do BOINC."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Poder de computação"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
-msgstr "Top 100 Voluntários "
+msgstr "Melhores 100 Voluntários "
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Estatísticas"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "Média das últimas 24 horas:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOPS."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Ativos:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "voluntários,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "computadores.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "Média das últimas 24 horas:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOPS."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Notícias"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Base de dados indisponível; por favor tente mais tarde."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Voluntário"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Utilize o tempo inativo do seu computador (Android, Linux, Mac ou Windows) para curar doenças, estudar o aquecimento global, descobrir pulsares, e realizar muitos outros tipos de pesquisa científica. É de confiança, seguro, e fácil:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Transferir"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Documentação"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Para dispositivos com Android, obtenha a aplicação BOINC na Play Store da Google; para Kindle, obtenha-a da App Store da Amazon."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Pode escolher apoiar %1projetos%2 tais como %3, %4, e %5, entre muitos outros."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Se executa vários projetos, experimente um %1gestor de conta%2 como o %3GridRepublic%4 ou o %5BAM!%6."
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Aprender mais:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Fóruns de Discussão"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projetos"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Manual"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Add-ons"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Hiperligações"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Utilize o tempo inativo do seu computador (Android, Linux, Mac ou Windows) para curar doenças, estudar o aquecimento global, descobrir pulsares, e realizar muitos outros tipos de pesquisa científica. É de confiança, seguro, e fácil:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Outras maneiras de ajudar:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Escolher projetos"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Visão Geral"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "Transferir o software BOINC"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Traduzir"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Insira um endereço de e-mail e palavra-passe."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Teste"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "Ou, se executar vários projetos, experimente um %sGestor de Conta%s, tal como %sGridRepublic%s ou %sBAM!%s. "
+#: doc/index.php:135
+msgid "Document"
+msgstr "Documento"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "Computação com o BOINC"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Publicitar"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Atualizações do Software"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Reportar bugs"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Computação em grande escala com o BOINC"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
-msgstr "%1Cientistas%2: utilizam o BOINC para criar um %3projeto de computação voluntário%4, dando-lhe o poder de milhares de CPUs e GPUs."
+msgstr "Os %1cientistas%2: utilizam o BOINC para criar um %3projeto de computação voluntário%4, dando-lhe o poder de milhares de CPUs e GPUs."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
-msgstr "%1Universidades%2: utilizam o BOINC para criar um %3Centro de Supercomputação de Campus Virtual%4."
+msgstr "As %1universidades%2: utilizam o BOINC para criar um %3Centro de Supercomputação de Campus Virtual%4."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
-msgstr "%1Empresas%2: utilizam o BOINC para a %3Computação em Grelha de PC%4."
+msgstr "As %1empresas%2: utilizam o BOINC para a %3Computação em Rede de PC%4."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "Sobre o BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Documentação"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Fóruns de Discussão"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC e Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Desenvolvimento do programa"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "O BOINC é uma plataforma para computação voluntária. Inclui o cliente, servidor, componentes web, e APIS para conectar outros componentes."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Código fonte"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Construindo o BOINC"
 
-#: index.php:182
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Criar documentos"
+
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Estamos sempre à procura de programadores para nos ajudarem a manter e desenvolver o BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Processo de desenvolvimento"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Desenvolvimento de tarefas"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "O BOINC é distribuído sobre a Licença LGPL de código aberto."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "O Projecto BOINC"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "O BOINC é um projeto de comunidade. Qualquer pessoa é bem vinda a participar."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "Listas de e-mail"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "Eventos"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Código fonte"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Gráficos"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Governança"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Ajuda em directo via Skype ou por e-mail"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "A ajuda Online do BOINC permite-lhe conversar com utilizadores experientes do BOINC, que podem  responder às suas perguntas acerca do BOINC, ajudá-lo a instalar e utilizar o BOINC,  e resolver quaisquer problemas relacionados."
+
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Pode comunicar com um ajudante"
+
+#: doc/help.php:16
+msgid "by email"
+msgstr "por e-mail"
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "APIs para add-on de software"
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\npor voz, utilizando o %1Skype%2, um sistema de comunicação que utiliza a Internet. Se ainda não tem o Skype, pode %3transferi-lo e instalá-lo agora%4. Quando terminar, volte a esta página."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "utilizando o chat do Skype"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Estão disponíveis voluntários falando vários idiomas. Por favor seleccione a língua (o número de ajudantes é mostrado):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Seja um Voluntário de Ajuda"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Se é um utilizador experiente do BOINC, nós encorajamo-lo a %stornar-se um Voluntário de Ajuda%s. É uma maneira ótima de ajudar a causa de investigação científica e computação voluntária - e é divertido!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Se já é um Voluntário de Ajuda: para editar as suas definições, %sclique aqui%s."
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Programa de código aberto para computação voluntária"
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Os ajudantes do BOINC são voluntários não comparticipados. Os seus conselhos não são  aprovados pelo BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1Nunca%2 forneça a informação sobre o endereço de e-mail ou palavra-passe aos ajudantes do BOINC."
 
-#: projects.inc:19
+#: doc/projects.inc:19
 msgid "Distributed sensing"
-msgstr "Sensoriamento distribuídos"
+msgstr "Sensoriamento distribuído"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Universidade de Stanford"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Sismologia"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "A Rede Quake-Catcher está a desenvolver a maior rede sísmica mundial, utilizando sensores anexados aos computadores e telemóveis."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "A Rede Quake-Catcher utiliza sensores anexados aos computadores e smartphones para detetar ondas sísmicas."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Fundação BOINC da Polónia"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Investigação ambiental"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
-msgstr "A Radioactive at Home está a criar um mapa gratuito e atualizado continuamente dos níveis de radiação, utilizando sensores ligados aos computadores dos voluntários. Tem de comprar um sensor para participar."
+msgstr "A Radioactive at Home está a criar um mapa gratuito e atualizado continuamente dos níveis de radiação, utilizando sensores ligados aos computadores dos voluntários. Tem de adquirir um sensor para participar."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Ciência cognitiva e inteligência artificial"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Ciência Cognitiva"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home usa a modelagem de processo cognitivo computacional para entender melhor a mente humana e, especificamente, para estudar os mecanismos e processos que permitam moderar o desempenho humano e a aprendizagem."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Privado"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Independente"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Inteligência Artificial"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -384,104 +491,104 @@ msgid ""
 "conversations."
 msgstr "Analisar e converter as redes semânticas para utilizar no FreeHAL, uma inteligência artificial que utiliza redes semânticas, derivações, bases de dados de classes gramaticais e marcadores de classes gramaticais para imitar o comportamento humano em conversas."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biologia e Medicina"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Fisiologia Médica"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
-msgstr "O DENIS at Home efetua simulações eletrofisiológicas cardíacas, estudando a atividade elétrica do coração."
+msgstr "O DENIS at Home efectua simulações electrofisiológicas cardíacas, estudando a atividade eléctrica do coração."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Biologia Molecular"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "O RNA World procura identificar, analisar e prever estruturalmente o desenho das moléculas de RNA com base no software bioinformático estabelecido."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "Colégio Universitário de Dublin"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Descoberta de medicamentos para a Malária"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "O parasita que causa a malária continua a desenvolver resistência à medicação disponível. Necessitamos urgentemente de descobrir novos medicamentos, descobrindo novas proteínas no parasita. O projecto FightNeglectedDiseases at Home tem como intuito encontrar estes novos alvos."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "O parasita que causa a malária continua a desenvolver resistência à medicação disponível. Necessitamos urgentemente de descobrir novos medicamentos, analisando novas proteínas no parasita. O projeto FIND at Home tem como intuito encontrar estes novos alvos."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Universidade de Karlsruhe (Alemanha)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Predição de estruturas proteicas"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
 "the proteins interact with one another, to understand diseases related to "
 "protein malfunction or aggregation, and to develop new drugs on the basis of"
 " the three-dimensions structure of biologically important proteins."
-msgstr "POEM at HOME utiliza uma abordagem computacional para prever a estrutura biologicamente ativa das proteínas, para compreender os mecanismos de processamento de sinal quando as proteínas interagem entre si, para compreender doenças relacionadas com o mau funcionamento ou agregação de proteínas e, para desenvolver novos medicamentos com base na estrutura tridimensional de proteínas biologicamente importantes."
+msgstr "O POEM at HOME utiliza uma abordagem computacional para prever a estrutura biologicamente activa das proteínas, para compreender os mecanismos de processamento de sinal quando as proteínas interagem entre si, para compreender doenças relacionadas com o mau funcionamento ou agregação de proteínas e, para desenvolver novos medicamentos com base na estrutura tridimensional de proteínas biologicamente importantes."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Parque de Investigação Biomédica de Barcelona (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Simulações moleculares de proteínas"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
 "New biomedical applications suddenly become possible giving a new role to "
 "computational biology for biomedical research."
-msgstr "O GPUGrid.net abre novos cenários computacionais pelo primeiro átomo molecular completo de código dinâmico (CellMD) especialmente optimizado para executar em GPUs NVIDIA. Novas aplicações biomédicas tornam-se de repente possiveis, podendo criar um novo papel na biologia computacional para a pesquisa biomédica."
+msgstr "O GPUGrid.net abre novos cenários computacionais pelo primeiro átomo molecular completo de código dinâmico (CellMD) especialmente optimizado para ser executado em GPUs NVIDIA. Novas aplicações biomédicas tornam-se de repente possiveis, podendo criar um novo papel na biologia computacional para a pesquisa biomédica."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Centro de BioInformáticas e Biologia Computacional na Universidade de Maryland"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Investigação da ciência da vida"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
-msgstr "O Projeto Lattice, desenvolvido e administrado na Universidade de Maryland, fornece poder de computação aos investigadores de todo o mundo, que estudam as relações evolutivas utilizando DNA e dados de sequências proteína"
+msgstr "O Projecto Lattice, desenvolvido e administrado na Universidade de Maryland, fornece poder de computação aos investigadores de todo o mundo, que estudam as relações evolutivas utilizando DNA e dados de sequências proteícas"
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "Instituto Tropical da Suiça"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Epidemiologia"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -490,17 +597,17 @@ msgid ""
 "is extremely computer intensive, requiring simulations of large human "
 "populations with a diverse set of parameters related to biological and "
 "social factors that influence the distribution of the disease. "
-msgstr "Os modelos de simulação da transmissão dinâmica e efeitos da saúde da malária são uma ferramenta importante para o controlo da mesma. Estes podem ser utilizados para determinar as estratégias ótimas para a distribuição das redes de mosquito, ou novas vacinas que estão atualmente em desenvolvimento ou em teste. Tal modelagem é extremamente intensiva (computador), que requer simulações de uma grande população de humanos com uma definição diversa de parâmetros relacionados com os fa [...]
+msgstr "Os modelos de simulação da transmissão dinâmica e efeitos da saúde da malária são uma ferramenta importante para o controlo da mesma. Estes podem ser utilizados para determinar as estratégias óptimas para a distribuição das redes mosquiteiras, ou novas vacinas que estão actualmente em desenvolvimento ou em teste. Tais modelagens são extremamente intensivas (computador), necessitando de simulações de uma grande população de humanos com uma definição diversa de parâmetros relaciona [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Universidade de Washington"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biologia"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -508,21 +615,21 @@ msgid ""
 "couldn't possibly attempt without your help. You will also be helping our "
 "efforts at designing new proteins to fight diseases such as HIV, malaria, "
 "cancer, and Alzheimer's"
-msgstr "Determinar as formas 3-dimensionais de proteínas na pesquisa que pode levar a encontrar curas para algumas das doenças humanas mais importantes. Ao ajudar a Rosetta at home o utilizador vai-nos ajudar a acelerar e alargar a nossa investigação de tal maneira, que não conseguiríamos sem a sua ajuda. O voluntário também estará ajudando os nossos esforços, no desenvolvimento de novas proteínas para combater doenças como o HIV, a malária, câncro e Alzheimer."
+msgstr "Determinar as formas tri-dimensionais de proteínas na pesquisa que pode levar a encontrar curas para algumas das doenças humanas mais importantes. Ao ajudar a Rosetta at home o utilizador vai ajudar a acelerar e alargar a nossa investigação de tal maneira, que não conseguiríamos sem a sua ajuda. Estará também estará a ajudar nos nossos esforços, no desenvolvimento de novas proteínas para combater doenças como o HIV, a malária, câncro e Alzheimer."
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Ciências do Planeta Terra"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Universidade de Oxford"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Estudo do clima"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -532,27 +639,18 @@ msgid ""
 "changes and also to things like changes in carbon dioxide and the sulphur "
 "cycle. This will allow us to explore how climate may change in the next "
 "century under a wide range of different scenarios."
-msgstr "Investigar as aproximações que têm de ser feitas em modelos climáticos. Ao executar o modelo milhares de vezes esperamos descobrir como o modelo responde a pequenos ajustes a essas aproximações - apenas o suficiente para não fazer aproximações menos realista. Isto irá permitir-nos a melhorar o nosso entendimento de como os nossos modelos são sensíveis a pequenas mudanças e também factores como mudanças no dióxido de carbono e no ciclo do enxofre. Isto irá permitir-nos explorar co [...]
+msgstr "Investiga as aproximações que têm de ser feitas em modelos climáticos. Ao executar o modelo milhares de vezes, esperamos descobrir como o modelo responde a pequenos ajustes a essas aproximações - apenas o suficiente para não realizar aproximações menos realistas. Isto irá permitir-nos melhorar o nosso entendimento de como os nossos modelos são sensíveis a pequenas mudanças e também factores como mudanças no dióxido de carbono e no ciclo do enxofre. Isto irá permitir-nos explorar  [...]
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Ciência Física"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Engenharia Mecânica"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "Atualmente, nós estamos a calcular a configuração ótima para uma estrutura truss de 52 bar"
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomia"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -562,69 +660,64 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet Pogs é um projeto de astronomia que estuda 16 diferentes galáxias, incluindo a luminosidade, massa, quantidade de poeira e a velocidade de formação das estrelas. Pretendemos utilizar o processamento do seu computador pessoal, para realizar cálculos complexos de pixeis em vários comprimentos de onda (ultravioleta, luz óptica e no infravermelho próximo) imagens de galáxias para produzir um mapa que vai ajudar os astrônomos a entender melhor o universo."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Astrofísica"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
 "that is available. The results are asteroid convex shape models with the "
 "direction of the spin axis and the rotation period."
-msgstr "O objectivo do projecto, é derivar formas e derivar para uma parte significativa da população de asteróides. Os dados de análise são recolhidos, através da fotometria existente. Os resultados são modelos de asteroides convexos,  que permitem definir a direcção do eixo de rotação e o período de rotação."
+msgstr "O objectivo do projecto, é derivar formas e fazer a rotação de uma parte significativa da população de asteróides. Os dados de análise são recolhidos, através da fotometria existente. Os resultados são modelos de asteroides convexos,  que permitem definir a direcção do eixo de rotação e o período de rotação."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Ciência e engenharia aeroespacial"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Universidade de Ilinois em Urbana-Champaign"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation, é uma plataforma para simulações aeroespaciais, que inclui a optimização trajetória dos lançamentos, satélites e sondas, simulação de exosfera, perto da superfície da Lua e análise de sistemas dinâmicos dos veículos de exploração aeroespaciais."
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Execute simulações aeroespacial"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "O Cosmology at Home tem como objetivo a procura de um modelo, que melhor descreva o nosso Universo e encontrar uma série de modelos que correspondam aos dados físicos disponíveis das partículas astronómicas."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
-msgstr "O UniverseHome tem o intuito de criar a primeira base de dados que simule o conteúdo estelar do Universo, desde as estrelas mais antigas até aos mais exóticos buracos negros."
+msgstr "O Universe at Home tem o intuito de criar a primeira base de dados que simule o conteúdo estelar do Universo, desde as estrelas mais antigas até aos mais exóticos buracos negros."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Efetue pesquisas em física e astronomia"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Instituto Politécnico Rensselaer"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
-msgstr "O objetivo de Milkyway at Home é criar um modelo tridimensional altamente preciso da galáxia Via Láctea, utilizando os dados recolhidos pela Sloan Digital Sky Survey."
+msgstr "O objectivo do Milkyway at Home é criar um modelo tridimensional altamente preciso da galáxia Via Láctea, utilizando os dados recolhidos pela Sloan Digital Sky Survey."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Estude a estrutura da galáxia da Via Láctea"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Universidade de Leiden, Holanda"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Química"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -632,17 +725,17 @@ msgid ""
 " Dynamics jobs. In this way students have used the grid to simulate liquid "
 "argon, or to test the validity of the ideal gas law by actually doing the "
 "simulations through the grid."
-msgstr "Cálculos de ciência de superfície usando a Dinâmica Clássica. Leiden Classical permite que os voluntários, estudantes e outros cientistas submetam os seus cálculos pessoais à rede. Cada utilizador tem a sua própria fila de espera pessoal para trabalhos na Classical Dynamics. Desta forma os alunos têm utilizado a rede para simular argôn líquido, ou para testar a validade da lei do gás ideal fazendo as simulações na rede."
+msgstr "Cálculos cientificos de superfície usando a Dinâmica Clássica. Leiden Classical permite que os voluntários, estudantes e outros cientistas submetam os seus cálculos pessoais na rede. Cada utilizador tem a sua própria fila de espera pessoal para trabalhos na Classical Dynamics. Desta forma os alunos têm utilizado a rede para simular argôn líquido, ou para testar a validade da lei do gás ideal fazendo as simulações na rede."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Ajude os estudantes a efetuar simulações atómicas"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Universidade de Wisconsin - Milwaukee, Instituto Max Planck"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -651,19 +744,19 @@ msgid ""
 "international organizations."
 msgstr "Procura de estrelas giratórias de neutrões (também chamados de pulsares) usando dados do LIGO e detectores de ondas gravitacionais GEO e do observatório Arecibo. O Einstein at Home é o projecto do Ano Mundial da Física de 2005 apoiado pela Sociedade Americana de Física (APS) e por um número de organizações internacionais."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
-msgstr "Ajude a detectar pulsares e ondas gravitacionais"
+msgstr "Ajude a detetar pulsares e ondas gravitacionais"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Organização Europeia para a Investigação Nuclear)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Física"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -672,42 +765,42 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "O Large Hadron Collider (LHC) é um acelerador de partículas no CERN, a Organização Europeia para a Pesquisa Nuclear, o maior laboratório do mundo de física de partículas. É o instrumento mais poderoso jamais construido para investigar as propriedades de partículas. O LHC at home corre simulações para melhorar o design do LHC e os seus detectores."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
-msgstr "Melhore o desenho do Grande Colisionador de Hadrões"
+msgstr "Melhore o desenho do Grande Colisor de Hadrões"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
-msgstr "Este projeto, utiliza tecnologia da máquina virtual CERN, desenvolvido para o LHC, com o objectivo de simular eventos de física nos computadores dos voluntários. Requer a instalação do VirtualBox no seu computador."
+msgstr "Este projeto, utiliza a tecnologia de máquina virtual CERN desenvolvida para a simulação de eventos de física do LHC, nos computadores dos voluntários. Requer a instalação do VirtualBox no seu computador."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Simule colisões de partículas de alta energia"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
 " particles and processes using head-on collisions of protons of "
 "extraordinary high energy."
-msgstr "O ATLAS at Home, usa computação distribuida, para executar as simulações decorridas no ATLAS, uma experiência de física de partículas, no Large Hadron Collider do CERN. O ATLAS, pesquisa novas partículas e processos, utilizando colisões frontais de protões de alta energia."
+msgstr "O ATLAS at Home utiliza computação distribuida, para executar as simulações decorridas no ATLAS, uma experiência de física de partículas, no Large Hadron Collider do CERN. O ATLAS, pesquisa novas partículas e processos, utilizando colisões frontais de protões de alta energia."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
-msgstr "Simule colisões de partículas de alta enérgica para o CERN"
+msgstr "Simule colisões de partículas de alta energia para o CERN"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
-msgstr "Universidade da California, Berkeley"
+msgstr "Universidade da Califórnia, Berkeley"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrofísica, astrobiologia"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -716,127 +809,108 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Procura de Vida Inteligente Extraterrestre) é uma área científica cujo objectivo é detectar vida inteligente fora da Terra. Um método, conhecido como radio SETI, usa rádio-telescópios para ouvir sinais de rádio de banda estreita do espaço. Estes sinais não são conhecidos como ocorrendo naturalmente e, como tal a sua detecção providenciaria evidências de tecnologia extraterrestre."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
-msgstr "Pesquise por evidências de vida extraterreste"
+msgstr "Pesquise por evidências de vida extraterrestre"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
-msgstr "Várias aplicações"
+msgstr "Múltiplas aplicações"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
-msgstr "Biologia molecular, Ciência computacional"
+msgstr "Biologia Molecular, Ciência Computacional"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
-msgstr "The Citizen Science Grid, dedica-se a apoiar uma ampla gama de projetos de pesquisa e projectos educacionais, utilizando computação distribuida voluntária e área científica da sociedade civil."
+msgstr "O Citizen Science Grid dedica-se a apoiar uma ampla gama de projetos de pesquisa e projectos educacionais, utilizando computação distribuida voluntária e área científica da sociedade civil."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "Apoie a ciência da Universidade do Dakota do Norte"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Academia Chinesa de Ciências"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Física, bioquímica e outros"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "O objetivo do CAS at home é encorajar e assistir os cientistas na China para adoptarem as tecnologias de computação voluntária e pensamento voluntário para as pesquisas dos mesmos."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "A CAS at home é alojada pelo Centro de Computação do Instituto de Altas Energias Físicas (IHEP), Academia Chinesa de Ciências, para os cientistas Chineses com projetos que estudam a estrutura das proteínas, nano-tecnologia, genomas do cancro e altas energias físicas."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Ajude pesquisadores Chineses"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Matemática, física, evolução"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
-msgstr "O Yoyo at home é um intermediário entre o BOINC e vários projetos de computação existentes: ECM, Muon, Evolution at home e distributed.net"
+msgstr "O Yoyo at home é um intermediário entre o BOINC e vários projectos de computação existentes: ECM, Muon, Evolution at home e distributed.net"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
-msgstr "Faça pesquisas em matemática, física e evolução"
+msgstr "Efetue pesquisas em matemática, física e evolução"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "MTA-SZTAKI - Laboratório de Sistemas Distribuídos e Paralelos (Hungria)"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Projectos de Investigação Europeus"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "O projecto EDGeS at Home Beta integra a computação voluntária num serviço de rede da Internet da Europa, que permitem às redes de serviços enviar unidades de trabalho para serem processadas pelos voluntários deste projecto. Os projectos científicos cobertos, incluem matemática, física, biologia, etc."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Ajude pesquisadores Europeus"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Universidades Espanholas e Centros de Investigação"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
-msgstr "Vários projectos de investigação Espanhóis"
+msgstr "Vários projetos de investigação Espanhóis"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Pesquisa em física, material científico e biomedicina"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
-msgstr "Ajude pesquisadores Espanhóis"
+msgstr "Ajude os investigadores Espanhóis"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "Cidadania Corporativa IBM"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
-msgstr "Pesquisa médica, ambiental e outras pesquisas humanitárias"
+msgstr "Investigação médica, ambiental e outras humanitárias"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
 " includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
 "clean water and many more."
-msgstr "Para promover a pesquisa sem fins lucrativos para alguns dos problemas mais críticos da humanidade, criando a maior rede de computação voluntária do mundo. A pesquisa inclui o HIV-AIDS, cancro e doenças tropicais negligenciadas, energia solar, água potável e muitos mais."
+msgstr "Promover a pesquisa sem fins lucrativos para alguns dos problemas mais críticos da humanidade, criando a maior rede de computação voluntária do mundo. A pesquisa inclui o HIV-AIDS, cancro e doenças tropicais negligenciadas, energia solar, água potável e muitos mais."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
-msgstr "Realizar pesquisa biomédica e ambiental"
+msgstr "Realizar investigação biomédica e ambiental"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Matemáticas, computação e jogos"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Matemáticas"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -844,66 +918,66 @@ msgid ""
 "formulate conjectures about number fields. Ultimately, this research will "
 "lead to a deeper understanding of the profound properties of numbers, the "
 "basic building blocks of all mathematics."
-msgstr "NumberFields at home, pesquisa por campos com propriedades especiais. A principal aplicação desta pesquisa é no reino da teoria dos números algébricos. Os cientistas e teóricos dos números, podem explorar os dados, de foma a encontrar padrões de forma a formularem conjecturas sobre campos de números. Em última análise, esta pesquisa vai levar a uma compreensão mais profunda das propriedades profundas dos números, os blocos de construção básicos de toda a matemática."
+msgstr "NumberFields at home pesquisa por campos com propriedades especiais. A aplicação principal desta pesquisa é no reino da teoria dos números algébricos. Os teóricos dos números podem explorar os dados, de forma a encontrar padrões interessantes para os ajudar a formularem conjeturas sobre campos de números. Em última análise, esta pesquisa levará a uma compreensão mais profunda das propriedades profundas dos números, os blocos de construção básicos de toda a matemática."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
-msgstr "Realizar pesquisa na teoria dos números algébricos"
+msgstr "Realiza pesquisa na teoria dos números algébricos"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
-msgstr "Ciência da Computação"
+msgstr "Ciência de Computação"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
-msgstr "A resolução de problemas pacticamente impossíveis (funções discretas problemas de inversão, otimização discreta, bioinformática, etc.), que podem ser efetivamente reduzidos a um problema de satisfatibilidade booleana."
+msgstr "Resolução de problemas pacticamente impossíveis (funções discretas problemas de inversão, optimização discreta, bioinformática, etc.), que podem ser efectivamente reduzidos a um problema de satisfatibilidade booleana."
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Estude a complexidade computacional"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Criptografia e combinatórios"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "Executar aplicações de distributed.net"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Criptografia"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
-msgstr "Tentativa de descodificação 3 mensagens Enigma originais. Estes sinais foram intercetados no Atlântico Norte em 1942 e acredita-se que sejam impossíveis de descodificar."
+msgstr "Tentativa de descodificação de 3 mensagens originais (Enigma). Estes sinais foram intercetados no Atlântico Norte em 1942 e acredita-se que sejam impossíveis de descodificar."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "Descodifique mensagens de submarinos da 2ª Grande Guerra Mundial"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Estudo da Conjetura Collatz, uma conjetura não resolvida nas matemáticas"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
-msgstr "Estude a Conjectura de Collatz"
+msgstr "Estude a Conjetura de Collatz"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
-msgstr "Universidade Estatal da Califórnia, Fullerton (CSUF)"
+msgstr "Universidade Estatal da Califórnia, Fullerton"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
-msgstr "Fatorização de grandes integros"
+msgstr "Fatorização de grandes íntegros"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -911,58 +985,62 @@ msgid ""
 "breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
 "NFS at Home is a continuation of that experience, only with integers that are "
 "hundreds of digits long."
-msgstr "NFS at Home é um projeto de pesquisa que utiliza computadores conectados à Internet para executar alguns passos na fatorização de inteiros grandes. Como um jovem estudante, ganha a sua primeira experiência em quebrar um número inteiro em fatores primos, como 15 = 3 * 5 ou 35 = 5 * 7. NFS at Home é uma continuação dessa experiência, apenas com números inteiros que são centenas de dígitos."
+msgstr "A NFS at Home é um projeto de pesquisa que utiliza computadores conectados à Internet para executar alguns passos na factorização de inteiros grandes. Como um jovem estudante, obtenha a sua primeira experiência em quebrar um número inteiro em fatores primos, como 15 = 3 * 5 ou 35 = 5 * 7. A NFS at Home é uma continuação dessa experiência, apenas com números inteiros que contêm centenas de dígitos."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
-msgstr "Estude a fatorização de grandes integros"
+msgstr "Estude a fatorização de grandes íntegros"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "A Primegrid tem multiplos projectos de pesquisa por diferentes formas de números primos muito grandes, incluindo a pesquisa para o maior número primo conhecido."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Procure por números primos grandes"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Universidade Hochschule RheinMai de Ciências Aplicadas"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Procura de contra-exemplos para duas conjecturas relacionadas com a identificação de números primos"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Estude as propriedades dos números primos"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI - Laboratório de Sistemas Distribuídos e Paralelos (Hungria)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Encontrar todos os sistemas numéricos binários generalizados (em que as bases são matrizes e os dígitos são vectores) até à dimensão de 11."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Estude a teoria dos números"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
-msgstr "Testes e comparação de métodos heurísticos para obter separações de algoritmos paralelos que trabalham no sistema CAD para a concepção de sistemas de controlo de lógica."
+msgstr "Testes e comparação de métodos heurísticos para obter separações de algoritmos paralelos que trabalham em sistemas CAD para a concepção de sistemas de controlo de lógica."
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Comentar"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Discussão"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
-msgstr "Notícias disponíveis como um %sFeed RSS%s"
+msgstr "As notícias estão disponíveis como %sFeed RSS%s"
diff --git a/locale/ro/BOINC-Client.mo b/locale/ro/BOINC-Client.mo
index 80dfca8..b3e6bfe 100644
Binary files a/locale/ro/BOINC-Client.mo and b/locale/ro/BOINC-Client.mo differ
diff --git a/locale/ro/BOINC-Client.po b/locale/ro/BOINC-Client.po
index d49397d..890d80f 100644
--- a/locale/ro/BOINC-Client.po
+++ b/locale/ro/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Cristian Belei <bicscoala at yahoo.com>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-09 00:23+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Romanian (http://www.transifex.com/projects/p/boinc/language/ro/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-05 21:34+0000\n"
+"Last-Translator: Cristian Belei <bicscoala at yahoo.com>\n"
+"Language-Team: Romanian (http://www.transifex.com/boinc/boinc/language/ro/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ro\n"
 "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Mesaj de la managerul de cont"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Mesaj de la server"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Unele task-uri au nevoie de mai multă memorie decât este permis de preferinţele dumneavoastră.  Vă rugăm să verificaţi preferinţele."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Nu s-a putut scrie fişierul de stare; verificaţi permisiunile directorului"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Varibila de sistem HTTP_PROXY trebuie să specifice un proxy HTTP"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Aţi folosit un URL greşit pentru acest proect.  Când puteţi, ştergeţi acest proiect, apoi adăugaţi %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Acest proiect folosește un URL vechi. Când este posibil, eliminați proiectul apoi adăugați %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Eroare de sintaxă în app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Fişierul menţionat în app_info.xml nu există: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "O nouă versiune a BOINC este disponibilă."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Descarcă"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "Nu poate fi folosit(ă) pentru calcule folosind CUDA sau OpenCL cu driver CUDA 6.5 sau ulterior"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Text neaşteptat în cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Tag nerecunoscut în cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Lipsă tag început în cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Eroare în opţiunile cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Lipsă tag final în cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Pentru repararea acestei probleme, puteți"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "schimba Preferințele de Proiect pe site-ul proiectului"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "înlăturați excluderile GPU în fișierul cc_config.xml "
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "schimbați-vă setările pe pagina web a managerului de conturi"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Cheie cont greşită sau lipsă.  Pentru rezolvare, ştergeţi şi adăugaţi acest proiect."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Cheie semnătură greşită.  Pentru rezolvare, ştergeţi şi adăugaţi acest proiect."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Proiectul a modificat cheia de securitate.  Că rugăm ştergeţi şi adăugaţi acest proiect."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Acest proiect nu suportă sistemul de operare"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Acest proiect nu suportă tipul de CPU"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Clientul dumneavoastră BOINC este prea vechi.  Vă rugăm instalaţi versiunea curentă."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Acest proiect nu suportă calculatoare de tipul"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Upgradaţi la ultima versiune de driver pentru a procesa task-uri folosind GPU-ul calculatorului"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Upgradaţi la ultima versiune de driver pentru a folosi toate aplicaţiile GPU ale acestui proiect"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "O nouă versiune BOINC este necesară pentru a folosi GPU-ul dumneavoastră NVIDIA; vă rugăm upgradaţi la versiunea curentă"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Un GPU %s este necesar pentru a rula task-uri pentru acest proiect"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Nu există task-uri disponibile pentru aplicaţiile pe care le-aţi selectat."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Tipul dumneavoastră de calculator nu este suportat de acest proiect"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Este necesară o versiune mai nouă a BOINC; vă rugam instalaţi versiunea curentă"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Task-uri pentru %s sunt disponibile, dar preferinţele dumneavoastră sunt setate să nu le accepte"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Nume aplicaţie necunoscut în app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Fişierul dumneavoastră app_info.xml nu are o versiune utilizabilă de"
diff --git a/locale/ro/BOINC-Manager.mo b/locale/ro/BOINC-Manager.mo
index 43303ba..8c2275c 100644
Binary files a/locale/ro/BOINC-Manager.mo and b/locale/ro/BOINC-Manager.mo differ
diff --git a/locale/ro/BOINC-Manager.po b/locale/ro/BOINC-Manager.po
index d22a045..c8609d8 100644
--- a/locale/ro/BOINC-Manager.po
+++ b/locale/ro/BOINC-Manager.po
@@ -1,52 +1,56 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Cristian Belei <bicscoala at yahoo.com>, 2017
+# Marius Sirbu <marius.sirbu at outlook.com>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-02 00:00-0800\n"
-"PO-Revision-Date: 2015-02-23 23:14+0000\n"
-"Last-Translator: Rom Walton\n"
-"Language-Team: Romanian (http://www.transifex.com/projects/p/boinc/language/ro/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-05 21:23+0000\n"
+"Last-Translator: Cristian Belei <bicscoala at yahoo.com>\n"
+"Language-Team: Romanian (http://www.transifex.com/boinc/boinc/language/ro/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ro\n"
 "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Identificaţi contul dumneavoastră la %s"
 
-#: AccountInfoPage.cpp:393
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Vă rugăm introduceţi informaţiile contului\n(pentru a crea una cont, vizitaţi situl web al proiectului)"
 
-#: AccountInfoPage.cpp:397
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Acest proiect nu acceptă noi conturi.\nPuteţi să îl adăugaţi doar dacă aveţi deja un cont."
 
-#: AccountInfoPage.cpp:401
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Rulaţi deja acest proiect?"
 
-#: AccountInfoPage.cpp:405
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Nu, utilizator nou"
 
-#: AccountInfoPage.cpp:408
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Da, utilizator existent"
 
-#: AccountInfoPage.cpp:413
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -56,467 +60,508 @@ msgid ""
 "password fields."
 msgstr "Nu s-au putut seta informaţiile contului\nautomat.\n\nVă rugăm selectaţi 'Caută informaţii login'\nmai jos pentru a afla ce trebuie să introduceţi în\ncâmpurile adresă de email şi parolă."
 
-#: AccountInfoPage.cpp:416
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Caută informaţii login"
 
-#: AccountInfoPage.cpp:436 AccountInfoPage.cpp:641
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Parola:"
 
-#: AccountInfoPage.cpp:443 AccountInfoPage.cpp:665
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Alegeţi o &parolă:"
 
-#: AccountInfoPage.cpp:446
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "C&onfirmaţi parola:"
 
-#: AccountInfoPage.cpp:453
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Rulaţi deja %s?"
 
-#: AccountInfoPage.cpp:482
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "Nume &utilizator:"
 
-#: AccountInfoPage.cpp:508
+#: clientgui/AccountInfoPage.cpp:483
+msgid "&Email address or LDAP ID:"
+msgstr "Adresă &email sau ID LDAP:"
+
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "Adresa &email:"
 
-#: AccountInfoPage.cpp:515
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "lungime minimă %d"
 
-#: AccountInfoPage.cpp:522
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Aţi uitat parola?"
 
-#: AccountInfoPage.cpp:529
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Daca nu v-aţi înregistrat deja la acest manager de cont,\nvă rugăm să o faceţi înainte de a continua.  Selectaţi legătura\nde mai jos pentru a vă înregistra sau a regăsi o parolă uitată."
 
-#: AccountInfoPage.cpp:532
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Website manager de cont"
 
-#: AccountInfoPage.cpp:574 WelcomePage.cpp:348
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Adaugă proiect"
 
-#: AccountInfoPage.cpp:576
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Actualizează managerul de cont"
 
-#: AccountInfoPage.cpp:578 WelcomePage.cpp:307 WelcomePage.cpp:321
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Utilizaţi manager de cont"
 
-#: AccountInfoPage.cpp:585
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Vă rugăm specificaţi un nume de utilizator."
 
-#: AccountInfoPage.cpp:587
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Vă rugăm specificaţi o adresă de email."
 
-#: AccountInfoPage.cpp:597
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Vă rugăm să introduceţi o parolă cu cel puţin %d caractere."
 
-#: AccountInfoPage.cpp:607
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Parola si confirmarea parolei nu sunt identice. Vă rugăm să le reintroduceţi."
 
-#: AccountManagerInfoPage.cpp:272
+#: clientgui/AccountManagerInfoPage.cpp:270
 msgid "Choose an account manager"
 msgstr "Alegeţi un manager de cont"
 
-#: AccountManagerInfoPage.cpp:275
+#: clientgui/AccountManagerInfoPage.cpp:273
 msgid ""
 "To choose an account manager, click its name or \n"
 "type its URL below."
 msgstr "Pentru a alege un manager de cont, apăsaţi pe numele lui sau\nintroduceţi URL-ul lui mai jos."
 
-#: AccountManagerInfoPage.cpp:279
+#: clientgui/AccountManagerInfoPage.cpp:277
 msgid "Account manager details:"
 msgstr "Detalii manager de cont:"
 
-#: AccountManagerInfoPage.cpp:283
+#: clientgui/AccountManagerInfoPage.cpp:281
 msgid "Account manager &URL:"
 msgstr "&URL Manager de cont:"
 
-#: AccountManagerInfoPage.cpp:287
+#: clientgui/AccountManagerInfoPage.cpp:285
 msgid "Open web page"
 msgstr "Deschide pagină web"
 
-#: AccountManagerInfoPage.cpp:290
+#: clientgui/AccountManagerInfoPage.cpp:288
 msgid "Visit this account manager's web site"
 msgstr "Vizitaţi site web al managerului de cont"
 
-#: AccountManagerProcessingPage.cpp:187 AccountManagerPropertiesPage.cpp:193
+#. %s is the project name
+#. i.e. 'BOINC', 'GridRepublic'
+#: clientgui/AccountManagerProcessingPage.cpp:186
+#: clientgui/AccountManagerPropertiesPage.cpp:192
 #, c-format
 msgid "Communicating with %s."
 msgstr "Comunicare cu %s."
 
-#: AccountManagerProcessingPage.cpp:194 AccountManagerPropertiesPage.cpp:200
+#: clientgui/AccountManagerProcessingPage.cpp:193
+#: clientgui/AccountManagerPropertiesPage.cpp:199
 msgid "Communicating with server."
 msgstr "Comunicare cu serverul."
 
-#: AccountManagerProcessingPage.cpp:199 AccountManagerPropertiesPage.cpp:205
+#: clientgui/AccountManagerProcessingPage.cpp:198
+#: clientgui/AccountManagerPropertiesPage.cpp:204
 msgid "Please wait..."
 msgstr "Vă rugăm aşteptaţi..."
 
-#: AccountManagerProcessingPage.cpp:326
+#: clientgui/AccountManagerProcessingPage.cpp:325
 msgid "An internal server error has occurred.\n"
 msgstr "A intervenit o eroare internă server.\n"
 
-#: AdvancedFrame.cpp:95
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Conectat"
 
-#: AdvancedFrame.cpp:103
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Deconectat"
 
-#: AdvancedFrame.cpp:322 sg_BoincSimpleFrame.cpp:119
+#: clientgui/AdvancedFrame.cpp:329
+#, c-format
+msgid "New %s window..."
+msgstr "Fereastră %s nouă..."
+
+#: clientgui/AdvancedFrame.cpp:333
+#, c-format
+msgid "Open another %s window"
+msgstr "Deschideți o altă fereastră %s"
+
+#: clientgui/AdvancedFrame.cpp:344
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Selectați computerul...⇥Ctrl+Shift+I"
+
+#: clientgui/AdvancedFrame.cpp:345
+msgid "Connect to a BOINC client on another computer"
+msgstr "Conectați-vă la clientul BOINC pe un alt calculator"
+
+#: clientgui/AdvancedFrame.cpp:349
+msgid "Shut down connected client..."
+msgstr "Opreşte clienul conectat..."
+
+#: clientgui/AdvancedFrame.cpp:350
+msgid "Shut down the currently connected BOINC client"
+msgstr "Opreşte clientul BOINC curent conectat"
+
+#: clientgui/AdvancedFrame.cpp:355 clientgui/sg_BoincSimpleFrame.cpp:120
 #, c-format
 msgid "Close the %s window"
 msgstr "Închide fereastra %s"
 
-#: AdvancedFrame.cpp:325 sg_BoincSimpleFrame.cpp:122
-msgid "&Close Window"
-msgstr "În&chide Fereastră"
+#: clientgui/AdvancedFrame.cpp:358 clientgui/sg_BoincSimpleFrame.cpp:123
+msgid "&Close window"
+msgstr "În&chide fereastra"
 
-#: AdvancedFrame.cpp:336 AdvancedFrame.cpp:343 AdvancedFrame.cpp:350
+#: clientgui/AdvancedFrame.cpp:367 clientgui/AdvancedFrame.cpp:372
+#: clientgui/AdvancedFrame.cpp:377 clientgui/sg_BoincSimpleFrame.cpp:132
+#: clientgui/sg_BoincSimpleFrame.cpp:137
 #, c-format
 msgid "Exit %s"
 msgstr "Închide %s"
 
-#: AdvancedFrame.cpp:371
+#: clientgui/AdvancedFrame.cpp:391 clientgui/sg_BoincSimpleFrame.cpp:151
+msgid "Preferences..."
+msgstr "Preferințe..."
+
+#: clientgui/AdvancedFrame.cpp:400
 msgid "&Notices\tCtrl+Shift+N"
 msgstr "A&nunţuri\tCtrl+Shift+N"
 
-#: AdvancedFrame.cpp:372
-msgid "Display notices"
-msgstr "Arată anunţuri"
+#: clientgui/AdvancedFrame.cpp:401
+msgid "Show notices"
+msgstr "Arată atenționări"
 
-#: AdvancedFrame.cpp:377
+#: clientgui/AdvancedFrame.cpp:406
 msgid "&Projects\tCtrl+Shift+P"
 msgstr "&Proiecte\tCtrl+Shift+P"
 
-#: AdvancedFrame.cpp:378
-msgid "Display projects"
+#: clientgui/AdvancedFrame.cpp:407
+msgid "Show projects"
 msgstr "Arată proiecte"
 
-#: AdvancedFrame.cpp:383
+#: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
 msgstr "&Task-uri\tCtrl+Shift+T"
 
-#: AdvancedFrame.cpp:384
-msgid "Display tasks"
-msgstr "Arată task-uri"
+#: clientgui/AdvancedFrame.cpp:413
+msgid "Show tasks"
+msgstr "Arată task-urile"
 
-#: AdvancedFrame.cpp:389
+#: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
 msgstr "Trans&feruri\tCtrl+Shift+X"
 
-#: AdvancedFrame.cpp:390
-msgid "Display transfers"
-msgstr "Arată transferuri"
+#: clientgui/AdvancedFrame.cpp:419
+msgid "Show file transfers"
+msgstr "Arată transferurile de fișiere"
 
-#: AdvancedFrame.cpp:395
+#: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
 msgstr "&Statistici\tCtrl+Shift+S"
 
-#: AdvancedFrame.cpp:396
-msgid "Display statistics"
+#: clientgui/AdvancedFrame.cpp:425
+msgid "Show statistics"
 msgstr "Arată statistici"
 
-#: AdvancedFrame.cpp:401
-msgid "&Disk usage\tCtrl+Shift+D"
-msgstr "Utilizare &disc\tCtrl+Shift+D"
+#: clientgui/AdvancedFrame.cpp:430
+msgid "&Disk\tCtrl+Shift+D"
+msgstr "&Disc\tCtrl+Shift+D"
 
-#: AdvancedFrame.cpp:402
-msgid "Display disk usage"
+#: clientgui/AdvancedFrame.cpp:431
+msgid "Show disk usage"
 msgstr "Arată utilizare disc"
 
-#: AdvancedFrame.cpp:409
+#: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
 msgstr "&Vizualizare Simplă...\tCtrl+Shift+V"
 
-#: AdvancedFrame.cpp:410
-msgid "Display the simple graphical interface."
-msgstr "Arată interfaţa grafică simplă."
+#: clientgui/AdvancedFrame.cpp:439
+msgid "Switch to the Simple View"
+msgstr "Comutați la Vizualizarea Simplă"
 
-#: AdvancedFrame.cpp:424
-msgid "&Add project or account manager..."
-msgstr "&Adaugă proiect sau manager de cont..."
+#: clientgui/AdvancedFrame.cpp:453 clientgui/AdvancedFrame.cpp:477
+#: clientgui/sg_BoincSimpleFrame.cpp:205
+msgid "&Add project..."
+msgstr "&Adaugă proiect..."
 
-#: AdvancedFrame.cpp:425 sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Oferiţi-vă voluntar pentru unul sau toate din cele mai mult de 30 de proiecte în multe zone ale ştiinţei"
+#: clientgui/AdvancedFrame.cpp:454 clientgui/AdvancedFrame.cpp:478
+#: clientgui/sg_BoincSimpleFrame.cpp:206
+msgid "Add a project"
+msgstr "Adaugă un proiect"
+
+#: clientgui/AdvancedFrame.cpp:458
+msgid "&Use account manager..."
+msgstr "&Utilizaţi manager de cont"
 
-#: AdvancedFrame.cpp:429
+#: clientgui/AdvancedFrame.cpp:459
+msgid "Use an account manager to control this computer."
+msgstr "Utiizați un manager de cont pentru a controla acest calculator"
+
+#: clientgui/AdvancedFrame.cpp:463
 #, c-format
 msgid "&Synchronize with %s"
 msgstr "&Sincronizează cu %s"
 
-#: AdvancedFrame.cpp:433
+#: clientgui/AdvancedFrame.cpp:467
 #, c-format
 msgid "Get current settings from %s"
 msgstr "Preia setările curente de la %s"
 
-#: AdvancedFrame.cpp:443
-msgid "&Add project..."
-msgstr "&Adaugă proiect..."
-
-#: AdvancedFrame.cpp:444
-msgid "Add a project"
-msgstr "Adaugă un proiect"
-
-#: AdvancedFrame.cpp:447
+#: clientgui/AdvancedFrame.cpp:481
 #, c-format
 msgid "S&top using %s..."
 msgstr "Opreş&te utilizarea %s..."
 
-#: AdvancedFrame.cpp:453
+#: clientgui/AdvancedFrame.cpp:487
 msgid "Remove this computer from account manager control."
 msgstr "Elimină acest calculator de sub controlul managerului de cont."
 
-#: AdvancedFrame.cpp:458 sg_BoincSimpleFrame.cpp:178
-msgid "&Options..."
-msgstr "&Opţiuni..."
+#: clientgui/AdvancedFrame.cpp:493
+msgid "Run CPU &benchmarks"
+msgstr "Rulează &benchmark CPU"
 
-#: AdvancedFrame.cpp:459 sg_BoincSimpleFrame.cpp:179
-msgid "Configure display options and proxy settings"
-msgstr "Configurează opţiunile de afişare şi setările proxy"
+#: clientgui/AdvancedFrame.cpp:494
+msgid "Run tests that measure CPU speed"
+msgstr "Rulează teste care măsoară viteza CPU"
 
-#: AdvancedFrame.cpp:463 sg_BoincSimpleFrame.cpp:172
-msgid "Computing &preferences..."
-msgstr "&Preferinţe calcul..."
+#: clientgui/AdvancedFrame.cpp:498
+msgid "Retry pending transfers"
+msgstr "Reîncercați transferurile în așteptare"
 
-#: AdvancedFrame.cpp:464 sg_BoincSimpleFrame.cpp:173
-msgid "Configure computing preferences"
-msgstr "Configurează preferinţele de calcul"
+#: clientgui/AdvancedFrame.cpp:499
+msgid "Retry deferred file transfers and task requests"
+msgstr "Reîncercați transferurile amânate și cererile de task-uri"
+
+#: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
+msgid "Event Log...\tCtrl+Shift+E"
+msgstr "Log Evenimente...\tCtrl+Shift+E"
 
-#: AdvancedFrame.cpp:472
+#: clientgui/AdvancedFrame.cpp:505
+msgid "Show diagnostic messages"
+msgstr "Afişează mesajele de diagnostic"
+
+#: clientgui/AdvancedFrame.cpp:513
 msgid "&Run always"
 msgstr "&Rulează continuu"
 
-#: AdvancedFrame.cpp:473
+#: clientgui/AdvancedFrame.cpp:514
 msgid "Allow work regardless of preferences"
 msgstr "Rulează indiferent de preferinţe"
 
-#: AdvancedFrame.cpp:477
+#: clientgui/AdvancedFrame.cpp:518
 msgid "Run based on &preferences"
 msgstr "Rulează conform &preferinţelor"
 
-#: AdvancedFrame.cpp:478
+#: clientgui/AdvancedFrame.cpp:519
 msgid "Allow work according to preferences"
 msgstr "Rulează conform preferinţelor"
 
-#: AdvancedFrame.cpp:482
+#: clientgui/AdvancedFrame.cpp:523
 msgid "&Suspend"
 msgstr "&Suspendă"
 
-#: AdvancedFrame.cpp:483
+#: clientgui/AdvancedFrame.cpp:524
 msgid "Stop work regardless of preferences"
 msgstr "Opreşte lucrul indiferent de preferinţe"
 
-#: AdvancedFrame.cpp:508
+#: clientgui/AdvancedFrame.cpp:549
 msgid "Use GPU always"
 msgstr "Foloseşte GPU tot timpul"
 
-#: AdvancedFrame.cpp:509
+#: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
 msgstr "Permite lucrul GPU indiferent de preferinţe"
 
-#: AdvancedFrame.cpp:513
+#: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
 msgstr "Foloseşte GPU bazat pe preferinţe"
 
-#: AdvancedFrame.cpp:514
+#: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
 msgstr "Permite lucrul GPU conform preferinţe"
 
-#: AdvancedFrame.cpp:518
+#: clientgui/AdvancedFrame.cpp:559
 msgid "Suspend GPU"
 msgstr "Suspendă GPU"
 
-#: AdvancedFrame.cpp:519
+#: clientgui/AdvancedFrame.cpp:560
 msgid "Stop GPU work regardless of preferences"
 msgstr "Opreşte lucrul GPU indiferent de preferinţe"
 
-#: AdvancedFrame.cpp:543
-msgid "Network activity always available"
-msgstr "Acces la reţea disponibil permanent"
+#: clientgui/AdvancedFrame.cpp:584
+msgid "Network activity always"
+msgstr "Activitate rețea permanentă"
 
-#: AdvancedFrame.cpp:544
+#: clientgui/AdvancedFrame.cpp:585
 msgid "Allow network activity regardless of preferences"
 msgstr "Acces la reţea indiferent de preferinţe"
 
-#: AdvancedFrame.cpp:548
+#: clientgui/AdvancedFrame.cpp:589
 msgid "Network activity based on preferences"
 msgstr "Acces la reţea conform preferinţelor"
 
-#: AdvancedFrame.cpp:549
+#: clientgui/AdvancedFrame.cpp:590
 msgid "Allow network activity according to preferences"
 msgstr "Permite accesul la reţea conform preferinţelor"
 
-#: AdvancedFrame.cpp:553
-msgid "Network activity suspended"
-msgstr "Accesul la reţea suspendat"
+#: clientgui/AdvancedFrame.cpp:594
+msgid "Suspend network activity"
+msgstr "Suspendă activitatea de rețea"
 
-#: AdvancedFrame.cpp:554
-msgid "Stop BOINC network activity"
-msgstr "Opreşte activitatea de reţea a BOINC"
+#: clientgui/AdvancedFrame.cpp:595
+msgid "Stop network activity"
+msgstr "Oprește activitatea de rețea"
 
-#: AdvancedFrame.cpp:564
-#, c-format
-msgid "Connect to another computer running %s"
-msgstr "Conectare la alt calculator care rulează %s"
+#: clientgui/AdvancedFrame.cpp:604 clientgui/sg_BoincSimpleFrame.cpp:191
+msgid "Computing &preferences..."
+msgstr "&Preferinţe calcul..."
 
-#: AdvancedFrame.cpp:569
-msgid "Select computer..."
-msgstr "Selectează calculator..."
+#: clientgui/AdvancedFrame.cpp:605 clientgui/sg_BoincSimpleFrame.cpp:192
+msgid "Configure computing preferences"
+msgstr "Configurează preferinţele de calcul"
 
-#: AdvancedFrame.cpp:574
-msgid "Shut down connected client..."
-msgstr "Opreşte clienul conectat..."
+#: clientgui/AdvancedFrame.cpp:610
+msgid "Exclusive applications..."
+msgstr "Aplicații exclusive..."
 
-#: AdvancedFrame.cpp:575
-msgid "Shut down the currently connected client"
-msgstr "Opreşte clienul curent conectat"
+#: clientgui/AdvancedFrame.cpp:611
+msgid "Configure exclusive applications"
+msgstr "Configurează aplicațiile exclusive"
 
-#: AdvancedFrame.cpp:579
-msgid "Run CPU &benchmarks"
-msgstr "Rulează &benchmark CPU"
+#: clientgui/AdvancedFrame.cpp:616
+msgid "Select columns..."
+msgstr "Selectează coloane..."
 
-#: AdvancedFrame.cpp:580
-msgid "Runs BOINC CPU benchmarks"
-msgstr "Rulează benchmark CPU BOINC"
+#: clientgui/AdvancedFrame.cpp:617
+msgid "Select which columns to display"
+msgstr "Selectați ce coloane să fie afișate"
 
-#: AdvancedFrame.cpp:584
-msgid "Do network communication"
-msgstr "Realizează comunicaţia prin reţea"
+#: clientgui/AdvancedFrame.cpp:621
+msgid "Event Log options...\tCtrl+Shift+F"
+msgstr "Opțiuni Log Evenimente...\tCtrl+Shift+F"
 
-#: AdvancedFrame.cpp:585
-msgid "Do all pending network communication"
-msgstr "Realizează comunicaţiile prin reţea în aşteptare"
+#: clientgui/AdvancedFrame.cpp:622
+msgid "Enable or disable various diagnostic messages"
+msgstr "Activați sau dezactivați diverse mesaje de diagnostic"
 
-#: AdvancedFrame.cpp:589
+#: clientgui/AdvancedFrame.cpp:626 clientgui/sg_BoincSimpleFrame.cpp:197
+msgid "&Other options..."
+msgstr "Alte &opțiuni..."
+
+#: clientgui/AdvancedFrame.cpp:627
+msgid "Configure display options and network settings"
+msgstr "Configurați opțiunile de afișare și setările de rețea"
+
+#: clientgui/AdvancedFrame.cpp:632
 msgid "Read config files"
 msgstr "Citeşte fişierele de configurare"
 
-#: AdvancedFrame.cpp:590
+#: clientgui/AdvancedFrame.cpp:633
 msgid ""
 "Read configuration info from cc_config.xml and any app_config.xml files"
 msgstr "Citeşte informaţiile de configurare din fişierele cc_config.xml şi app_config.xml"
 
-#: AdvancedFrame.cpp:594
+#: clientgui/AdvancedFrame.cpp:637
 msgid "Read local prefs file"
 msgstr "Citeşte fişierul local de preferinţe"
 
-#: AdvancedFrame.cpp:595
+#: clientgui/AdvancedFrame.cpp:638
 msgid "Read preferences from global_prefs_override.xml."
 msgstr "Citeşte preferinţele din global_prefs_override.xml."
 
-#: AdvancedFrame.cpp:600
-#, c-format
-msgid "Launch another instance of %s..."
-msgstr "Lansează o altă instanţă de %s..."
-
-#: AdvancedFrame.cpp:604
-#, c-format
-msgid "Launch another %s"
-msgstr "Lansează un alt %s"
-
-#: AdvancedFrame.cpp:614
-msgid "Event Log...\tCtrl+Shift+E"
-msgstr "Log Evenimente...\tCtrl+Shift+E"
-
-#: AdvancedFrame.cpp:615
-msgid "Display diagnostic messages."
-msgstr "Afişează mesajele de diagnostic."
-
-#: AdvancedFrame.cpp:625 sg_BoincSimpleFrame.cpp:188
+#: clientgui/AdvancedFrame.cpp:646 clientgui/sg_BoincSimpleFrame.cpp:219
 #, c-format
 msgid "%s &help"
 msgstr "&Ajutor %s"
 
-#: AdvancedFrame.cpp:631 sg_BoincSimpleFrame.cpp:194
+#: clientgui/AdvancedFrame.cpp:650 clientgui/sg_BoincSimpleFrame.cpp:223
 #, c-format
 msgid "Show information about %s"
 msgstr "Arată informaţii despre %s"
 
-#: AdvancedFrame.cpp:643
+#: clientgui/AdvancedFrame.cpp:660
 #, c-format
 msgid "&%s help"
 msgstr "&Ajutor %s"
 
-#: AdvancedFrame.cpp:649 sg_BoincSimpleFrame.cpp:212
+#: clientgui/AdvancedFrame.cpp:664 clientgui/sg_BoincSimpleFrame.cpp:237
 #, c-format
 msgid "Show information about the %s"
 msgstr "Arată informaţii despre %s"
 
-#: AdvancedFrame.cpp:661 sg_BoincSimpleFrame.cpp:224
+#: clientgui/AdvancedFrame.cpp:675 clientgui/sg_BoincSimpleFrame.cpp:247
 #, c-format
 msgid "%s &web site"
 msgstr "%s &website"
 
-#: AdvancedFrame.cpp:667 sg_BoincSimpleFrame.cpp:230
+#: clientgui/AdvancedFrame.cpp:679 clientgui/sg_BoincSimpleFrame.cpp:251
 #, c-format
 msgid "Show information about BOINC and %s"
 msgstr "Afişează informaţii despre BOINC şi %s"
 
-#: AdvancedFrame.cpp:679 BOINCTaskBar.cpp:530 sg_BoincSimpleFrame.cpp:242
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
+#: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
 msgstr "&Despre %s..."
 
-#: AdvancedFrame.cpp:685 sg_BoincSimpleFrame.cpp:248
+#: clientgui/AdvancedFrame.cpp:696 clientgui/sg_BoincSimpleFrame.cpp:268
 msgid "Licensing and copyright information."
 msgstr "Informaţii despre licenţă şi drepturi de autor."
 
-#: AdvancedFrame.cpp:692 sg_BoincSimpleFrame.cpp:255
+#: clientgui/AdvancedFrame.cpp:703 clientgui/sg_BoincSimpleFrame.cpp:275
 msgid "&File"
 msgstr "&Fişier"
 
-#: AdvancedFrame.cpp:696 sg_BoincSimpleFrame.cpp:259
+#: clientgui/AdvancedFrame.cpp:707 clientgui/sg_BoincSimpleFrame.cpp:279
 msgid "&View"
 msgstr "&Vizualizare"
 
-#: AdvancedFrame.cpp:700 sg_BoincSimpleFrame.cpp:263
-msgid "&Tools"
-msgstr "&Unelte"
-
-#: AdvancedFrame.cpp:704
+#: clientgui/AdvancedFrame.cpp:711
 msgid "&Activity"
 msgstr "&Activitate"
 
-#: AdvancedFrame.cpp:708
-msgid "A&dvanced"
-msgstr "A&vansat"
+#: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
+msgid "&Options"
+msgstr "&Opțiuni"
+
+#: clientgui/AdvancedFrame.cpp:719 clientgui/sg_BoincSimpleFrame.cpp:287
+msgid "&Tools"
+msgstr "&Unelte"
 
-#: AdvancedFrame.cpp:712 DlgEventLog.cpp:332 sg_BoincSimpleFrame.cpp:267
-#: wizardex.cpp:374 wizardex.cpp:381
+#: clientgui/AdvancedFrame.cpp:723 clientgui/sg_BoincSimpleFrame.cpp:291
+#: clientgui/wizardex.cpp:374 clientgui/wizardex.cpp:381
 msgid "&Help"
 msgstr "&Ajutor"
 
-#: AdvancedFrame.cpp:1199
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Opreşte utilizarea %s"
 
-#: AdvancedFrame.cpp:1204
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -526,48 +571,48 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Dacă nu mai folosiţi %s,\nveţi păstra toate proiectele curente,\ndar va trebui să gestionaţi proiectele manual.\n\nDoriţi să nu mai folosiţi %s?"
 
-#: AdvancedFrame.cpp:1401
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Închide clientul curent..."
 
-#: AdvancedFrame.cpp:1410
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s va opri clientul curent\nşi vă va cere o altă gazdă la care să se conecteze."
 
-#: AdvancedFrame.cpp:1745 DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: AdvancedFrame.cpp:1754
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s a adăugat cu succes %s"
 
-#: AdvancedFrame.cpp:1893
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: AdvancedFrame.cpp:1897
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "In curs de conectare la %s"
 
-#: AdvancedFrame.cpp:1900
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Conectat la %s (%s)"
 
-#: AlreadyExistsPage.cpp:184
+#: clientgui/AlreadyExistsPage.cpp:184
 msgid "Username already in use"
 msgstr "Nume utilizator deja folosit"
 
-#: AlreadyExistsPage.cpp:187
+#: clientgui/AlreadyExistsPage.cpp:187
 msgid ""
 "An account with that username already exists and has a\n"
 "different password than the one you entered.\n"
@@ -575,11 +620,11 @@ msgid ""
 "Please visit the project's web site and follow the instructions there."
 msgstr "Exista deja un cont cu acest nume ude tilizator,\ndar cu o parolă diferită de cea pe care aţi introdus-o dvs.\n\nVa rugăm accesaţi web site-ul proiectului si urmaţi instrucţiunile de acolo."
 
-#: AlreadyExistsPage.cpp:191
+#: clientgui/AlreadyExistsPage.cpp:191
 msgid "Email address already in use"
 msgstr "Adresa de email este deja in uz"
 
-#: AlreadyExistsPage.cpp:194
+#: clientgui/AlreadyExistsPage.cpp:194
 msgid ""
 "An account with that email address already exists and has a\n"
 "different password than the one you entered.\n"
@@ -587,91 +632,93 @@ msgid ""
 "Please visit the project's web site and follow the instructions there."
 msgstr "Exista deja un cont cu această adresă de email,\ndar cu o parolă diferită de cea pe care aţi introdus-o dvs.\n\nVa rugăm accesaţi web site-ul proiectului si urmaţi instrucţiunile de acolo."
 
-#: AsyncRPC.cpp:1031
+#: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
 msgstr "Se comunică cu clientul BOINC.  Vă rugăm aşteptaţi ..."
 
-#: AsyncRPC.cpp:1034
+#: clientgui/AsyncRPC.cpp:1034
 #, c-format
 msgid "&Quit %s"
 msgstr "&Închide %s"
 
-#: AsyncRPC.cpp:1036
+#: clientgui/AsyncRPC.cpp:1036
 #, c-format
 msgid "E&xit %s"
 msgstr "I&eşire %s"
 
-#: AsyncRPC.cpp:1040
+#: clientgui/AsyncRPC.cpp:1040
 #, c-format
 msgid "%s - Communication"
 msgstr "%s - Comunicaţie"
 
-#: AsyncRPC.cpp:1056 DlgAdvPreferencesBase.cpp:107 sg_DlgPreferences.cpp:433
+#: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Anulează"
 
-#: BOINCBaseFrame.cpp:505
+#: clientgui/BOINCBaseFrame.cpp:512
 #, c-format
 msgid "%s - Connection Error"
 msgstr "%s - Eroare Conexiune"
 
-#: BOINCBaseFrame.cpp:514
+#: clientgui/BOINCBaseFrame.cpp:521
 msgid ""
 "You currently are not authorized to manage the client.\n"
 "Please contact your administrator to add you to the 'boinc_users' local user group."
 msgstr "Nu sunteţi autorizat să gestionaţi acest client.\nVă rugăm contactaţi administratorul pentru a vă adăuga în grupul 'boinc_users' local."
 
-#: BOINCBaseFrame.cpp:523
+#: clientgui/BOINCBaseFrame.cpp:530
 msgid ""
 "Authorization failed connecting to running client.\n"
 "Make sure you start this program in the same directory as the client."
 msgstr "Autorizare eşuată la conectarea cu clientul.\nFiţi sigur că porniţi acest program în acelaşi director cu clientul."
 
-#: BOINCBaseFrame.cpp:525
+#: clientgui/BOINCBaseFrame.cpp:532
 msgid "Authorization failed connecting to running client."
 msgstr "Autorizare eşuată la conectarea la client."
 
-#: BOINCBaseFrame.cpp:533
+#: clientgui/BOINCBaseFrame.cpp:540
 msgid "The password you have provided is incorrect, please try again."
 msgstr "Parola este incorectă, va rugăm reîncercaţi."
 
-#: BOINCBaseFrame.cpp:577
+#: clientgui/BOINCBaseFrame.cpp:584
 #, c-format
 msgid "%s - Connection Failed"
 msgstr "%s - Conexiune Nereuşită"
 
-#: BOINCBaseFrame.cpp:586
+#: clientgui/BOINCBaseFrame.cpp:593
 #, c-format
 msgid ""
 "%s is not able to connect to a %s client.\n"
 "Would you like to try to connect again?"
 msgstr "%s nu se poate conecta la clientul %s .\nDoriţi să încerce să se conecteze din nou?"
 
-#: BOINCBaseFrame.cpp:622
+#: clientgui/BOINCBaseFrame.cpp:629
 #, c-format
 msgid "%s - Daemon Start Failed"
 msgstr "%s - Pornirea Daemon Eşuată"
 
-#: BOINCBaseFrame.cpp:632
+#: clientgui/BOINCBaseFrame.cpp:639
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please launch the Control Panel->Administative Tools->Services applet and start the BOINC service."
 msgstr "%s nu poate porni un client %s.\nVă rugăm lansaţi Control Panel->Administative Tools->Services şi porniţi serviciul BOINC."
 
-#: BOINCBaseFrame.cpp:638
+#: clientgui/BOINCBaseFrame.cpp:645
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please start the daemon and try again."
 msgstr "%s nu poate porni un client %s.\nVă rugăm porniţi daemonul şi încercaţi din nou."
 
-#: BOINCBaseFrame.cpp:689
+#: clientgui/BOINCBaseFrame.cpp:696
 #, c-format
 msgid "%s - Connection Status"
 msgstr "%s - Stare Conexiune"
 
-#: BOINCBaseFrame.cpp:700
+#: clientgui/BOINCBaseFrame.cpp:707
 #, c-format
 msgid ""
 "%s is not currently connected to a %s client.\n"
@@ -679,67 +726,68 @@ msgid ""
 "To connect up to your local computer please use 'localhost' as the host name."
 msgstr "%s nu este conectat la un client %s.\nVă rugăm folosiţi opţiunea din meniu 'Avansat\\Selectaţi Calculator...' pentru a vă conecta la un client %s.\nPentru a vă conecta la calculatorul local folosiţi 'localhst' ca şi nume gazdă."
 
-#: BOINCBaseView.cpp:779
+#. Create the web sites task group
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Pagini web proiect"
 
-#: BOINCClientManager.cpp:575
+#: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
 msgstr "%s - Închidere Neaşteptată"
 
-#: BOINCClientManager.cpp:585
+#: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
 "Would you like to restart it again?"
 msgstr "Clientul %s s-a închis neaşteptat de 3 ori în ultimele %d minute.\nDoriţi să îl restartaţi din nou?"
 
-#: BOINCDialupManager.cpp:61
+#: clientgui/BOINCDialupManager.cpp:61
 #, c-format
 msgid "%s - Network Status"
 msgstr "%s - Stare Reţea"
 
-#: BOINCDialupManager.cpp:241
+#: clientgui/BOINCDialupManager.cpp:241
 #, c-format
 msgid ""
 "%s needs to connect to the Internet.\n"
 "May it do so now?"
 msgstr "%s necesită să se conecteze la Internet.\nPoate face asta acum?"
 
-#: BOINCDialupManager.cpp:254
+#: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
 msgstr "%s se conectează la Internet."
 
-#: BOINCDialupManager.cpp:303
+#: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
 msgstr "%s s-a conectat cu succes la Internet."
 
-#: BOINCDialupManager.cpp:331
+#: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
 msgstr "%s nu a reuşit să se conecteze la Internet."
 
-#: BOINCDialupManager.cpp:372
+#: clientgui/BOINCDialupManager.cpp:372
 #, c-format
 msgid ""
 "%s has detected it is now connected to the Internet.\n"
 "Updating all projects and retrying all transfers."
 msgstr "%s a detectat că acum este conectat la Internet.\nActualizează toate proiectele şi reîncearcă toate transferurile."
 
-#: BOINCDialupManager.cpp:417
+#: clientgui/BOINCDialupManager.cpp:417
 #, c-format
 msgid "%s has successfully disconnected from the Internet."
 msgstr "%s s-a deconectat cu succes de la Internet."
 
-#: BOINCDialupManager.cpp:433
+#: clientgui/BOINCDialupManager.cpp:433
 #, c-format
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s nu a reuşit să se deconecteze de la Internet."
 
-#: BOINCGUIApp.cpp:339
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -752,1625 +800,1876 @@ msgid ""
 "     user group."
 msgstr "Nu sunteţi autoriza să gestionaţi clientul.\n\nPentru a rula %s pe acest utilizator vă rugăm:\n  - reinstalaţi %s răspunzând \"Da\" la întrebarea despre\n     utilizatori ne-administrativi \n sau\n  - contactaţi administratorul pentru a vă adăuga în grupul de utilizatori\n     'boinc_master'."
 
-#: BOINCGUIApp.cpp:345
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "%s proprietatea sau permisiunile nu sunt setate corespunzător; vă rugăm reinstalaţi %s.\n(Cod eroare %d"
 
-#: BOINCGUIApp.cpp:351
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " la "
 
-#: BOINCGUIApp.cpp:354 MainDocument.cpp:2484 MainDocument.cpp:2534
-#: MainDocument.cpp:2554 ViewTransfers.cpp:803
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: BOINCGUIApp.cpp:384
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "O repornire a calculatorului este necesară pentru ca BOINC să ruleze corespunzător.\nVă rugăm reporniţi calculatorul şi încercaţi din nou."
 
-#: BOINCGUIApp.cpp:385 DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC Manager"
 
-#: BOINCGUIApp.cpp:572
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "Managerul BOINC a fost pornit automat de către sistemul de operare"
 
-#: BOINCGUIApp.cpp:574
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Rulează BOINC numai în System Tray"
 
-#: BOINCGUIApp.cpp:576
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Directorul care conţine executabilul Clientului BOINC"
 
-#: BOINCGUIApp.cpp:577
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Director date BOINC"
 
-#: BOINCGUIApp.cpp:579
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Nume gazdă sau adresă IP"
 
-#: BOINCGUIApp.cpp:580
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "număr port GUI RPC"
 
-#: BOINCGUIApp.cpp:581
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Parola"
 
-#: BOINCGUIApp.cpp:582
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Porneşte BOINC cu aceste argumente opţionale"
 
-#: BOINCGUIApp.cpp:583
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "dezactivează utilizatorii şi permisiunile de securitate BOINC"
 
-#: BOINCGUIApp.cpp:584
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "setează skin în modul de depanare pentru a activa mesajele de eroare ale managerului de skin-uri"
 
-#: BOINCGUIApp.cpp:585
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "sunt permise mai multe insanţe ale Managerului BOINC"
 
-#: BOINCGUIApp.cpp:587
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Nefolosit: soluţie temporară pentru bug în XCode 4.2"
 
-#: BOINCGUIApp.cpp:814
+#: clientgui/BOINCGUIApp.cpp:591
+msgid "Not run the daemon"
+msgstr "Nu rula daemon-ul"
+
+#. These are just special tags so deal with them in a special way
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Detectare Automata)"
 
-#: BOINCGUIApp.cpp:815
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Necunoscut)"
 
-#: BOINCGUIApp.cpp:816
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Definit de utilizator)"
 
-#: BOINCTaskBar.cpp:508
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Deschide %s Web..."
 
-#: BOINCTaskBar.cpp:515
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Deschide %s..."
 
-#: BOINCTaskBar.cpp:522 BOINCTaskBar.cpp:619 BOINCTaskBar.cpp:627
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Dormi"
 
-#: BOINCTaskBar.cpp:524 BOINCTaskBar.cpp:646 BOINCTaskBar.cpp:654
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "GPU Dormi"
 
-#: BOINCTaskBar.cpp:542
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "I&eşire"
 
-#: BOINCTaskBar.cpp:612 ViewProjects.cpp:718 ViewWork.cpp:795
-#: sg_BoincSimpleFrame.cpp:758 sg_ProjectCommandPopup.cpp:110
-#: sg_TaskCommandPopup.cpp:102
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
+#: clientgui/sg_ProjectCommandPopup.cpp:125
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Reluare"
 
-#: BOINCTaskBar.cpp:639
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Reluare GPU"
 
-#: BOINCTaskBar.cpp:713
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Calculele sunt active"
 
-#: BOINCTaskBar.cpp:717
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Calculele sunt suspendate - "
 
-#: BOINCTaskBar.cpp:727
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Calculele GPU sunt active"
 
-#: BOINCTaskBar.cpp:730
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "Calculele GPU sunt suspendate - "
 
-#: BOINCTaskBar.cpp:739
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Accesul la reţea este pornit"
 
-#: BOINCTaskBar.cpp:742
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Accesul la reţea este suspendat - "
 
-#: BOINCTaskBar.cpp:750
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Se reconectează la client."
 
-#: BOINCTaskBar.cpp:752
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Nu este conectat la client."
 
-#: BOINCTaskBar.cpp:805
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Anunţuri"
 
-#: BOINCTaskBar.cpp:811
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Există anunţuri noi - apăsaţi pentru vizualizare."
 
-#: CompletionErrorPage.cpp:199
+#: clientgui/CompletionErrorPage.cpp:199
 msgid "Failed to add project"
 msgstr "Adăugarea proiectului a eşuat"
 
-#: CompletionErrorPage.cpp:204
+#: clientgui/CompletionErrorPage.cpp:204
 msgid "Failed to update account manager"
 msgstr "Actualizarea managerului de cont a eşuat"
 
-#: CompletionErrorPage.cpp:208
+#: clientgui/CompletionErrorPage.cpp:208
 msgid "Failed to remove account manager"
 msgstr "Ştergerea managerului de cont a eşuat"
 
-#: CompletionErrorPage.cpp:212
+#: clientgui/CompletionErrorPage.cpp:212
 msgid "Failed to add account manager"
 msgstr "Adăugarea managerului de cont a eşuat"
 
-#: CompletionErrorPage.cpp:221
+#: clientgui/CompletionErrorPage.cpp:221
 msgid ""
 "Please try again later.\n"
 "\n"
 "Click Finish to close."
 msgstr "Vă rugăm încercaţi mai târziu.\n\nApăsaţi Finalizare pentru a închide."
 
-#: CompletionErrorPage.cpp:225 CompletionPage.cpp:222 CompletionPage.cpp:242
-#: CompletionPage.cpp:273
+#: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
+#: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
 msgid "Click Finish to close."
 msgstr "Apăsaţi Finalizare pentru a inchide."
 
-#: CompletionErrorPage.cpp:234
+#: clientgui/CompletionErrorPage.cpp:234
 msgid "Messages from server:"
 msgstr "Mesaje de la server:"
 
-#: CompletionPage.cpp:207
+#: clientgui/CompletionPage.cpp:207
 msgid "Project added"
 msgstr "Proiect adăugat"
 
-#: CompletionPage.cpp:213
+#: clientgui/CompletionPage.cpp:213
 msgid "This project has been successfully added."
 msgstr "Acest proiect a fost adăugat cu succes."
 
-#: CompletionPage.cpp:218
+#: clientgui/CompletionPage.cpp:218
 msgid ""
 "When you click Finish, your web browser will go to a page where\n"
 "you can set your account name and preferences."
 msgstr "Cand apăsati butonul Finalizare, browserul dumneavoastră va incărca o pagină unde \nputeţi seta numele contului dvs. si preferinţele."
 
-#: CompletionPage.cpp:232
+#: clientgui/CompletionPage.cpp:232
 #, c-format
 msgid "Update from %s completed."
 msgstr "Actualizarea de la %s s-a încheiat."
 
-#: CompletionPage.cpp:236
+#: clientgui/CompletionPage.cpp:236
 msgid "Update completed."
 msgstr "Actualizare încheiată."
 
-#: CompletionPage.cpp:247
+#. Attach Completed
+#: clientgui/CompletionPage.cpp:247
 msgid "Now using account manager"
 msgstr "Acum se foloseşte manageruul de cont"
 
-#: CompletionPage.cpp:252
+#: clientgui/CompletionPage.cpp:252
 #, c-format
 msgid "Welcome to %s!"
 msgstr "Bine aţi venit la %s!"
 
-#: CompletionPage.cpp:263
+#: clientgui/CompletionPage.cpp:263
 #, c-format
 msgid "You are now using %s to manage accounts."
 msgstr "Acum folosiţi %s pentru a gestiona conturile."
 
-#: CompletionPage.cpp:267
+#: clientgui/CompletionPage.cpp:267
 msgid "You are now using this account manager."
 msgstr "Acum folosiţi acest manager de cont."
 
-#: DlgAbout.cpp:113 mac/Mac_GUI.cpp:96
+#: clientgui/DlgAbout.cpp:113
 #, c-format
 msgid "About %s"
 msgstr "Despre %s"
 
-#: DlgAbout.cpp:172
+#: clientgui/DlgAbout.cpp:172
 msgid "Version:"
 msgstr "Versiunea:"
 
-#: DlgAbout.cpp:180
+#: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
 msgstr "Versiune wxWidgets:"
 
-#: DlgAbout.cpp:188
+#: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
 msgstr "Drepturi de autor:"
 
-#: DlgAbout.cpp:192
+#: clientgui/DlgAbout.cpp:192
 msgid ""
-"(C) 2003-2013 University of California, Berkeley.\n"
+"(C) 2003-2015 University of California, Berkeley.\n"
 "All Rights Reserved."
-msgstr "(C) 2003-2013 Universitatea California, Berkeley.\nToate drepturile rezervate."
+msgstr "(C) 2003-2015 Universitatea Berkeley California.\nToate drepturile rezervate."
+
+#: clientgui/DlgAbout.cpp:196
+msgid "BOINC is distributed under the GNU Lesser General Public License v3.0."
+msgstr "BOINC este distribuit sub GNU Lesser General Public License v3.0."
 
-#: DlgAbout.cpp:196
-msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr "Berkeley Open Infrastructure for Network Computing"
+#: clientgui/DlgAbout.cpp:203
+msgid "For more information, visit "
+msgstr "Pentru mai multe informații, vizitați"
 
-#: DlgAbout.cpp:208 DlgExitMessage.cpp:173 DlgGenericMessage.cpp:120
-#: DlgOptions.cpp:396 DlgSelectComputer.cpp:163
+#: clientgui/DlgAbout.cpp:215 clientgui/DlgExitMessage.cpp:173
+#: clientgui/DlgGenericMessage.cpp:120 clientgui/DlgOptions.cpp:410
+#: clientgui/DlgSelectComputer.cpp:163
 msgid "&OK"
 msgstr "&OK"
 
-#: DlgAdvPreferences.cpp:544
-msgid "invalid number"
-msgstr "număr invalid"
+#: clientgui/DlgAdvPreferencesBase.cpp:54
+#, c-format
+msgid "%s - Computing preferences"
+msgstr "%s - Preferințe calcul"
 
-#: DlgAdvPreferences.cpp:545
-msgid "invalid time, format is HH:MM"
-msgstr "timp invalid, formatul este HH:MM"
+#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:163
+msgid ""
+"Using local preferences.\n"
+"Click \"Use web prefs\" to use web-based preferences from"
+msgstr "Se folosesc preferințele locale.\nApăsați \"Folosiți preferințele web\" pentru a utiliza preferințele web"
 
-#: DlgAdvPreferences.cpp:546
-msgid "invalid time interval, format is HH:MM-HH:MM"
-msgstr "interval timp invalid, formatul este HH:MM-HH:MM"
+#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
+msgid "Using web-based preferences from"
+msgstr "Folosețte preferințele de pe web"
 
-#: DlgAdvPreferences.cpp:751
-msgid "invalid input value detected"
-msgstr "valoare introdusă invalidă detectată"
+#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
+msgid "Set values and click OK to use local preferences instead."
+msgstr "Setați valorile și apăsați OK pentru a folosi preferințele locale."
 
-#: DlgAdvPreferences.cpp:753
-msgid "Validation Error"
-msgstr "Eroare Validare"
+#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
+msgid "Use web prefs"
+msgstr "Folosiți preferințele de pe web"
 
-#: DlgAdvPreferences.cpp:885 DlgAdvPreferences.cpp:891
-#: DlgAdvPreferences.cpp:897
-msgid "Applications to add"
-msgstr "Aplicaţii de adăugat"
+#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
+msgid "Restore web-based preferences and close the dialog."
+msgstr "Restaurează preferințele de pe web și închide dialogul."
 
-#: DlgAdvPreferences.cpp:914
-#, c-format
-msgid "'%s' is not an executable application."
-msgstr "'%s' nu este o aplicaţie executabilă."
+#: clientgui/DlgAdvPreferencesBase.cpp:140
+#: clientgui/DlgAdvPreferencesBase.cpp:684
+msgid "Computing"
+msgstr "Se calculează"
 
-#: DlgAdvPreferences.cpp:915 DlgAdvPreferences.cpp:962
-#: DlgAdvPreferences.cpp:986
-msgid "Add Exclusive App"
-msgstr "Adaugă Aplicaţie Exclusivă"
+#. Network schedule
+#: clientgui/DlgAdvPreferencesBase.cpp:143
+#: clientgui/DlgAdvPreferencesBase.cpp:886
+msgid "Network"
+msgstr "Reţea"
 
-#: DlgAdvPreferences.cpp:927
-msgid "Name of application to add?"
-msgstr "Numele aplicaţiei de adăugat?"
+#: clientgui/DlgAdvPreferencesBase.cpp:146
+msgid "Disk and memory"
+msgstr "Disc și memorie"
 
-#: DlgAdvPreferences.cpp:927
-msgid "Add exclusive app"
-msgstr "Adaugă aplicaţie exclusiva"
+#: clientgui/DlgAdvPreferencesBase.cpp:149
+msgid "Daily schedules"
+msgstr "Programe zilnice"
 
-#: DlgAdvPreferences.cpp:961
-#, c-format
-msgid "Application names must end with '%s'"
-msgstr "Numele aplicaţiilor trebuie să se termine cu '%s'"
+#: clientgui/DlgAdvPreferencesBase.cpp:162
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
+msgid "OK"
+msgstr "OK"
 
-#: DlgAdvPreferences.cpp:985
-#, c-format
-msgid "'%s' is already in the list."
-msgstr "'%s' este deja în listă."
+#: clientgui/DlgAdvPreferencesBase.cpp:163
+msgid "Save all values and close the dialog."
+msgstr "Salvează toate valorile și închide dialogul."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:169
+msgid "Close the dialog without saving."
+msgstr "Închide dialogul fără a salva."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
+#: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
+#: clientgui/sg_DlgPreferences.cpp:363
+msgid "Help"
+msgstr "Ajutor"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:174
+msgid "Shows the preferences web page."
+msgstr "Afișează pagina web de preferinţe."
 
-#: DlgAdvPreferences.cpp:1077
+#: clientgui/DlgAdvPreferencesBase.cpp:236
+#: clientgui/DlgAdvPreferencesBase.cpp:463
+msgid "Usage limits"
+msgstr "Limite utilizare"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:241
+#, no-c-format
 msgid ""
-"Do you really want to clear all local preferences?\n"
-"(This will not affect exclusive applications.)"
-msgstr "Sunteţi sigur că doriţi să ştergeţi toate preferinţele locale?\n(Acest lucru nu va afecta aplicaţiile exclusive.)"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Păstrează câteva CPU-uri libere pentru alte aplicații. Exemplu: 75% înseamnă 6 nuclee pe un CPU cu 8 nuclee."
 
-#: DlgAdvPreferences.cpp:1078 sg_DlgPreferences.cpp:1030
-msgid "Confirmation"
-msgstr "Confirmare"
+#: clientgui/DlgAdvPreferencesBase.cpp:243
+#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
+msgid "Use at most"
+msgstr "Foloseşte cel mult"
 
-#: DlgAdvPreferencesBase.cpp:46 sg_DlgPreferences.cpp:946
-#, c-format
-msgid "%s - Preferences"
-msgstr "%s - Preferinţe"
+#: clientgui/DlgAdvPreferencesBase.cpp:248
+#, no-c-format
+msgid "% of the CPUs"
+msgstr "% din CPU-uri"
 
-#: DlgAdvPreferencesBase.cpp:62
+#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
+#, no-c-format
 msgid ""
-"This dialog controls preferences for this computer only.\n"
-"Click OK to set preferences.\n"
-"Click Clear to restore web-based settings (except exclusive apps)."
-msgstr "Acest dialog controlează preferinţele doar pentru acest calculator.\nApăsaţi OK pentru a seta preferinţele.\nApăsaţi Şterge pentru a restaura setările de pe web (excepţie aplicaţiile exclusive)."
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Suspendă/reia calculele la fiecare câteva secunde pentru a reduce temperatura CPU și consumul de energie. Exemplu: 75% înseamnă calculează 3 secunde, așteaptă 1 secundă și repetă."
 
-#: DlgAdvPreferencesBase.cpp:65 sg_DlgPreferences.cpp:428
-msgid "Clear"
-msgstr "Şterge"
+#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
+#, no-c-format
+msgid "% of CPU time"
+msgstr "% din timp CPU"
 
-#: DlgAdvPreferencesBase.cpp:66
-msgid "clear all local preferences and close the dialog"
-msgstr "şterge toate preferinţele locale şi închide dialogul"
+#: clientgui/DlgAdvPreferencesBase.cpp:267
+msgid "When to suspend"
+msgstr "Când să suspende"
 
-#: DlgAdvPreferencesBase.cpp:81
-msgid "processor usage"
-msgstr "utilizare procesor"
+#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:239
+msgid "Suspend when computer is on battery"
+msgstr "Suspendă când calculatorul este pe baterie"
 
-#: DlgAdvPreferencesBase.cpp:84
-msgid "network usage"
-msgstr "utilizare reţea"
+#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Bifați aici pentru a suspenda calculele pe portabile când sunt pe baterie."
 
-#: DlgAdvPreferencesBase.cpp:87
-msgid "disk and memory usage"
-msgstr "utilizare disc şi memorie"
+#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
+msgid "Suspend when computer is in use"
+msgstr "Suspendă când calculatorul este folosit"
 
-#: DlgAdvPreferencesBase.cpp:90
-msgid "exclusive applications"
-msgstr "aplicaţii exclusive"
+#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Bifați aici pentru a suspenda calculele și transferurile de fișiere când folosiți calculatorul."
 
-#: DlgAdvPreferencesBase.cpp:102 sg_DlgPreferences.cpp:424
-msgid "OK"
-msgstr "OK"
+#: clientgui/DlgAdvPreferencesBase.cpp:291
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Suspendă GPU când calculatorul este folosit"
 
-#: DlgAdvPreferencesBase.cpp:103
-msgid "save all values and close the dialog"
-msgstr "salvează toate valorile şi închide dialogul"
+#: clientgui/DlgAdvPreferencesBase.cpp:294
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Bifați aici pentru a suspenda calculele GPU atunci când folosiți calculatorul."
 
-#: DlgAdvPreferencesBase.cpp:108
-msgid "close the dialog without saving"
-msgstr "închide dialogul fără a salva"
+#. min idle time
+#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Aceasta determină când calculatorul este considerat 'folosit'."
 
-#: DlgAdvPreferencesBase.cpp:112 Localization.cpp:35 Localization.cpp:121
-#: Localization.cpp:139 sg_BoincSimpleFrame.cpp:794 sg_DlgPreferences.cpp:439
-msgid "Help"
-msgstr "Ajutor"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Folosit' înseamnă fără activitate mouse/tastatură în ultimele"
 
-#: DlgAdvPreferencesBase.cpp:113
-msgid "shows the preferences web page"
-msgstr "arată pagina web de preferinţe"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:315
+#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:276
+msgid "minutes"
+msgstr "minute"
 
-#: DlgAdvPreferencesBase.cpp:135
-msgid "Computing allowed"
-msgstr "Calcule permise"
+#: clientgui/DlgAdvPreferencesBase.cpp:323
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "Suspendă când utilizarea CPU non-BOINC este peste"
 
-#: DlgAdvPreferencesBase.cpp:139
-msgid "While computer is on batteries"
-msgstr "Atunci când calculatorul este pe baterii"
+#: clientgui/DlgAdvPreferencesBase.cpp:325
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Suspendă calculele când calculatorul dumneavoastră este ocupat cu rularea altor programe."
 
-#: DlgAdvPreferencesBase.cpp:142
-msgid ""
-"check this if you want this computer to do work while it runs on batteries"
-msgstr "bifaţi aici dacă doriţi ca acest calculator să lucreze atunci când rulează pe baterii"
+#: clientgui/DlgAdvPreferencesBase.cpp:339
+msgid "To suspend by time of day, see the \"Daily Schedules\" section."
+msgstr "Pentru a suspenda în timpul zilei, vezi la secțiunea \"Programări Zilnice\""
 
-#: DlgAdvPreferencesBase.cpp:148
-msgid "While computer is in use"
-msgstr "Atunci când calculatorul este folosit"
+#. Context: heading for a group of miscellaneous preferences
+#: clientgui/DlgAdvPreferencesBase.cpp:349
+#: clientgui/DlgAdvPreferencesBase.cpp:516
+msgid "Other"
+msgstr "Altele"
 
-#: DlgAdvPreferencesBase.cpp:151
-msgid ""
-"check this if you want this computer to do work even when you're using it"
-msgstr "bifaţi aici dacă doriţi ca acest calculator să lucreze atunci când îl folosiţi"
+#. buffer sizes
+#: clientgui/DlgAdvPreferencesBase.cpp:355
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "Stochează cel puțin atâtea task-uri câte sunt necesare pentru a ține calculatorul ocupat pentru atâta timp."
+
+#. context: Store at least ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:359
+msgid "Store at least"
+msgstr "Stochează cel puțin"
 
-#: DlgAdvPreferencesBase.cpp:157
-msgid "Use GPU while computer is in use"
-msgstr "Folosiţi GPU când calculatorul este folosit"
+#. context: Store at least ___ days of work
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:370
+#: clientgui/DlgAdvPreferencesBase.cpp:392
+msgid "days of work"
+msgstr "zile de lucru"
 
-#: DlgAdvPreferencesBase.cpp:160
+#: clientgui/DlgAdvPreferencesBase.cpp:376
 msgid ""
-"check this if you want your GPU to do work even when you're using the "
-"computer"
-msgstr "bifaţi aici dacă doriţi ca GPU să lucreze atunci când folosiţi calculatorul"
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Stochează task-uri adiționale peste nivelul minim. Determină cât de lucru este solicitat când se contactează un proiect."
+
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:380
+msgid "Store up to an additional"
+msgstr "Stocați în plus până la"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:399
+#, c-format
+msgid "If you run several projects, %s may switch between them this often."
+msgstr "Dacă rulați mai multe proiecte, %s va comuta între ele atât de des."
 
-#: DlgAdvPreferencesBase.cpp:172
-msgid "Only after computer has been idle for"
-msgstr "Doar după ce calculatorul a fost nefolosit timp de"
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:404
+msgid "Switch between tasks every"
+msgstr "Comută între task-uri la fiecare"
 
-#: DlgAdvPreferencesBase.cpp:182
+#: clientgui/DlgAdvPreferencesBase.cpp:419
 msgid ""
-"do work only after you haven't used the computer for this number of minutes"
-msgstr "lucrează numai după ce calculatorul nu a fost folosit acest număr de minute"
+"This controls how often tasks save their state to disk, so that they later "
+"can be continued from that point."
+msgstr "Aceasta controlează cât de des task-urile îți salvează starea pe disc, astfel încât să poată fi repornite ulterior."
 
-#: DlgAdvPreferencesBase.cpp:187 DlgAdvPreferencesBase.cpp:336
-#: sg_DlgPreferences.cpp:417
-msgid "minutes"
-msgstr "minute"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:423
+msgid "Request tasks to checkpoint at most every"
+msgstr "Task-urile creează punct de control cel mult la fiecare"
 
-#: DlgAdvPreferencesBase.cpp:206
-msgid "While processor usage is less than"
-msgstr "Atunci când utilizarea procesorului este mai mică de"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:432
+msgid "seconds"
+msgstr "secunde"
 
-#: DlgAdvPreferencesBase.cpp:216
-msgid "suspend work if processor usage exceeds this level"
-msgstr "suspendaţi lucrul dacă utilizarea procesorului depăşeşte acest nivel"
+#. upload/download rates
+#: clientgui/DlgAdvPreferencesBase.cpp:469
+msgid "Limit the download rate of file transfers."
+msgstr "Limitează rata de descărcare a transferurilor de fișiere."
 
-#: DlgAdvPreferencesBase.cpp:221
-msgid "percent (0 means no restriction)"
-msgstr "procent (0 înseamnă fără restricţii)"
+#: clientgui/DlgAdvPreferencesBase.cpp:470
+msgid "Limit download rate to"
+msgstr "Limitează rata de descărcare la"
 
-#: DlgAdvPreferencesBase.cpp:235 DlgAdvPreferencesBase.cpp:496
-msgid "Every day between hours of"
-msgstr "În fiecare zi între orele"
+#: clientgui/DlgAdvPreferencesBase.cpp:474
+#: clientgui/DlgAdvPreferencesBase.cpp:483
+msgid "KB/second"
+msgstr "KB/secundă"
 
-#: DlgAdvPreferencesBase.cpp:239
-msgid "start work at this time"
-msgstr "începe lucrul la această oră"
+#: clientgui/DlgAdvPreferencesBase.cpp:478
+msgid "Limit the upload rate of file transfers."
+msgstr "Limitează rata de încărcare a transferurilor de fișiere."
 
-#: DlgAdvPreferencesBase.cpp:243 DlgAdvPreferencesBase.cpp:504
-#: sg_DlgPreferences.cpp:326 sg_DlgPreferences.cpp:348
-msgid "and"
-msgstr "şi"
+#: clientgui/DlgAdvPreferencesBase.cpp:479
+msgid "Limit upload rate to"
+msgstr "Limitează rata de încărcare la"
 
-#: DlgAdvPreferencesBase.cpp:247
-msgid "stop work at this time"
-msgstr "opreşte lucrul la această oră"
+#: clientgui/DlgAdvPreferencesBase.cpp:490
+#, c-format
+msgid "Example: %s should transfer at most 2000 MB of data every 30 days."
+msgstr "Exemplu: %s trebuie să transfere cel mult 2000 MB de date la fiecare 30 de zile."
 
-#: DlgAdvPreferencesBase.cpp:251 DlgAdvPreferencesBase.cpp:512
-msgid "(no restriction if equal)"
-msgstr "(fără restricţii dacă egale)"
+#: clientgui/DlgAdvPreferencesBase.cpp:492
+msgid "Limit usage to"
+msgstr "Limitează utilizarea la"
 
-#: DlgAdvPreferencesBase.cpp:256 DlgAdvPreferencesBase.cpp:517
-msgid "Day-of-week override:"
-msgstr "Modificări ziua săptămânii:"
+#: clientgui/DlgAdvPreferencesBase.cpp:496
+msgid "MB every"
+msgstr "MB fiecare"
 
-#: DlgAdvPreferencesBase.cpp:261 DlgAdvPreferencesBase.cpp:522
-msgid "check box to specify hours for this day of week"
-msgstr "bifaţi căsuţa pentru a specifica orele pentru această zi a săptămânii"
+#: clientgui/DlgAdvPreferencesBase.cpp:500
+msgid "days"
+msgstr "zile"
 
-#: DlgAdvPreferencesBase.cpp:267 DlgAdvPreferencesBase.cpp:528
-msgid "Monday"
-msgstr "Luni"
+#: clientgui/DlgAdvPreferencesBase.cpp:505
+msgid "To limit transfers by time of day, see the \"Daily Schedules\" section."
+msgstr "Pentru a limita transferurile în timpul zilei, vezi la secțiunea \"Programări Zilnice\""
 
-#: DlgAdvPreferencesBase.cpp:274 DlgAdvPreferencesBase.cpp:535
-msgid "Tuesday"
-msgstr "Marţi"
+#: clientgui/DlgAdvPreferencesBase.cpp:522
+#, c-format
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of %s."
+msgstr "Bifați aici numai dacă furnizorul de Internet modifică fișierele imagine. Omiterea verificării reduce securitatea %s."
 
-#: DlgAdvPreferencesBase.cpp:281 DlgAdvPreferencesBase.cpp:542
-msgid "Wednesday"
-msgstr "Miercuri"
+#: clientgui/DlgAdvPreferencesBase.cpp:524
+msgid "Skip data verification for image files"
+msgstr "Sări peste verificarea datelor la fișierele imagine"
 
-#: DlgAdvPreferencesBase.cpp:288 DlgAdvPreferencesBase.cpp:549
-msgid "Thursday"
-msgstr "Joi"
+#: clientgui/DlgAdvPreferencesBase.cpp:528
+msgid "Confirm before connecting to Internet"
+msgstr "Confirmare înainte de conectarea la Internet"
 
-#: DlgAdvPreferencesBase.cpp:295 DlgAdvPreferencesBase.cpp:556
-msgid "Friday"
-msgstr "Vineri"
+#: clientgui/DlgAdvPreferencesBase.cpp:529
+#: clientgui/DlgAdvPreferencesBase.cpp:533
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Folositor doar dacă aveți un modem, ISDN sau conexiune VPN."
 
-#: DlgAdvPreferencesBase.cpp:302 DlgAdvPreferencesBase.cpp:563
-msgid "Saturday"
-msgstr "Sâmbătă"
+#: clientgui/DlgAdvPreferencesBase.cpp:532
+msgid "Disconnect when done"
+msgstr "Deconectează la finalizare"
 
-#: DlgAdvPreferencesBase.cpp:309 DlgAdvPreferencesBase.cpp:570
-msgid "Sunday"
-msgstr "Duminică"
+#: clientgui/DlgAdvPreferencesBase.cpp:559 clientgui/ViewResources.cpp:116
+msgid "Disk"
+msgstr "Disc"
 
-#: DlgAdvPreferencesBase.cpp:323
-msgid "Other options"
-msgstr "Alte opţiuni"
+#: clientgui/DlgAdvPreferencesBase.cpp:564
+#, c-format
+msgid "%s will use the most restrictive of these settings:"
+msgstr "%s va folosi cele mai restrictive din aceste setări:"
 
-#: DlgAdvPreferencesBase.cpp:330
-msgid "Switch between applications every"
-msgstr "Comută între aplicaţii la fiecare"
+#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
+#, c-format
+msgid "Limit the total amount of disk space used by %s."
+msgstr "Limitează spațiul pe disc utilizat în total la %s."
 
-#: DlgAdvPreferencesBase.cpp:339
-msgid "On multiprocessor systems, use at most"
-msgstr "Pe sisteme multiprocesor, foloseşte maxim"
+#: clientgui/DlgAdvPreferencesBase.cpp:573
+#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
+msgid "Use no more than"
+msgstr "Nu folosi mai mult de"
 
-#: DlgAdvPreferencesBase.cpp:346
-#, no-c-format
-msgid "% of the processors (0 means ignore this setting)"
-msgstr "% din procesoare (0 înseamnă să se ignore această setare)"
+#: clientgui/DlgAdvPreferencesBase.cpp:577
+msgid "GB"
+msgstr "GB"
 
-#: DlgAdvPreferencesBase.cpp:349 DlgAdvPreferencesBase.cpp:605
-#: DlgAdvPreferencesBase.cpp:627 DlgAdvPreferencesBase.cpp:648
-#: DlgAdvPreferencesBase.cpp:669 DlgAdvPreferencesBase.cpp:679
-msgid "Use at most"
-msgstr "Foloseşte cel mult"
+#: clientgui/DlgAdvPreferencesBase.cpp:582
+#, c-format
+msgid ""
+"Limit disk usage to leave this much free space on the volume where %s stores"
+" data."
+msgstr "Limitează utilizarea discului pentru a lăsă atât spațiu liber pe volumul unde %s stochează datele."
 
-#: DlgAdvPreferencesBase.cpp:356
-#, no-c-format
-msgid "% CPU time"
-msgstr "% timp CPU"
+#: clientgui/DlgAdvPreferencesBase.cpp:585
+msgid "Leave at least"
+msgstr "Lasă cel puţin"
 
-#: DlgAdvPreferencesBase.cpp:378
-msgid "General options"
-msgstr "Opţiuni generale"
+#: clientgui/DlgAdvPreferencesBase.cpp:589
+msgid "GB free"
+msgstr "GB liberi"
 
-#: DlgAdvPreferencesBase.cpp:386
-msgid "Maximum download rate"
-msgstr "Viteza maximă de descărcare"
+#: clientgui/DlgAdvPreferencesBase.cpp:594
+#, c-format
+msgid ""
+"Limit the percentage of disk space used by %s on the volume where it stores "
+"data."
+msgstr "Limitează procentajul de utilizare a spațiului pe disc de către %s pe volumul unde își stochează datele."
 
-#: DlgAdvPreferencesBase.cpp:392 DlgAdvPreferencesBase.cpp:401
-msgid "KBytes/sec."
-msgstr "KBytes/sec."
+#: clientgui/DlgAdvPreferencesBase.cpp:602
+#, no-c-format
+msgid "% of total"
+msgstr "% din total"
 
-#: DlgAdvPreferencesBase.cpp:395
-msgid "Maximum upload rate"
-msgstr "Viteza maximă de încărcare"
+#: clientgui/DlgAdvPreferencesBase.cpp:609
+msgid "Memory"
+msgstr "Memorie"
 
-#: DlgAdvPreferencesBase.cpp:406
-msgid "Transfer at most"
-msgstr "Transferă cel mult"
+#: clientgui/DlgAdvPreferencesBase.cpp:614
+#, c-format
+msgid "Limit the memory used by %s when you're using the computer."
+msgstr "Limitează memoria utilizată de %s când utilizați calculatorul."
 
-#: DlgAdvPreferencesBase.cpp:412
-msgid "Mbytes"
-msgstr "Mbytes"
+#: clientgui/DlgAdvPreferencesBase.cpp:616
+msgid "When computer is in use, use at most"
+msgstr "Când calculatorul este folosit, folosește cel mult"
 
-#: DlgAdvPreferencesBase.cpp:415
-msgid "every"
-msgstr "fiecare"
+#: clientgui/DlgAdvPreferencesBase.cpp:622
+#: clientgui/DlgAdvPreferencesBase.cpp:634
+#: clientgui/DlgAdvPreferencesBase.cpp:650
+#, no-c-format
+msgid "%"
+msgstr "%"
 
-#: DlgAdvPreferencesBase.cpp:421 DlgAdvPreferencesBase.cpp:444
-#: DlgAdvPreferencesBase.cpp:463
-msgid "days"
-msgstr "zile"
+#: clientgui/DlgAdvPreferencesBase.cpp:627
+#, c-format
+msgid "Limit the memory used by %s when you're not using the computer."
+msgstr "Limitează memoria utilizată de %s când nu utilizați calculatorul."
 
-#: DlgAdvPreferencesBase.cpp:429
-msgid "Minimum work buffer"
-msgstr "Rezervă lucru minimă"
+#: clientgui/DlgAdvPreferencesBase.cpp:629
+msgid "When computer is not in use, use at most"
+msgstr "Când calculatorul nu este folosit, folosește cel mult"
 
-#: DlgAdvPreferencesBase.cpp:438
-msgid "Try to maintain enough tasks to keep busy for this many days"
-msgstr "Încearcă să menţină suficiente task-uri pentru a fi ocupat pentru atâtea zile"
+#: clientgui/DlgAdvPreferencesBase.cpp:638
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Lăsați task-urile non-GPU în memorie când sunt suspendate"
 
-#: DlgAdvPreferencesBase.cpp:450
-msgid "Max additional work buffer"
-msgstr "Rezervă lucru adiţională maximă"
+#: clientgui/DlgAdvPreferencesBase.cpp:639
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "Dacă este bifat, task-urile suspendate rămân în memorie și repornesc fără să piardă activitate. Dacă nu este bifat, task-urile suspendate sunt eliminate din memorie și repornesc de la ultimul punct de control."
 
-#: DlgAdvPreferencesBase.cpp:459
-msgid "In addition, maintain enough tasks for up to this many days"
-msgstr "În plus, menţine suficiente tasl-uri pentru pâna la atâtea zile"
+#: clientgui/DlgAdvPreferencesBase.cpp:643
+#, c-format
+msgid "Limit the swap space (page file) used by %s."
+msgstr "Limitează spațiul swap (page file) folosit de %s."
 
-#: DlgAdvPreferencesBase.cpp:466
-msgid "Skip image file verification"
-msgstr "Sări peste verificarea fişierelor imagine"
+#: clientgui/DlgAdvPreferencesBase.cpp:645
+msgid "Page/swap file: use at most"
+msgstr "Spaţiu swap: foloseşte cel mult"
 
-#: DlgAdvPreferencesBase.cpp:468
-msgid "check this if your Internet provider modifies image files"
-msgstr "bifează daca furnizorul de Internet modifică fişierele imagine"
+#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
+msgid "and"
+msgstr "şi"
 
-#: DlgAdvPreferencesBase.cpp:476
-msgid "Connect options"
-msgstr "Opţiuni conectare"
+#: clientgui/DlgAdvPreferencesBase.cpp:671
+msgid "to"
+msgstr "la"
 
-#: DlgAdvPreferencesBase.cpp:478
-msgid "Confirm before connecting to internet"
-msgstr "Confirmare înainte de conectarea la internet"
+#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:296
+msgid "Compute only during a particular period each day."
+msgstr "Calculează doar într-o anume perioadă în fiecare zi."
 
-#: DlgAdvPreferencesBase.cpp:480
-msgid ""
-"if checked, a confirmation dialog will be displayed before trying to connect"
-" to the Internet"
-msgstr "dacă este bifat, un dialog de confirmare va fi afişat înainte de a se încerca o conexiune la Internet"
+#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:299
+msgid "Compute only between"
+msgstr "Lucrează doar între"
 
-#: DlgAdvPreferencesBase.cpp:484
-msgid "Disconnect when done"
-msgstr "Deconectează la finalizare"
+#: clientgui/DlgAdvPreferencesBase.cpp:718
+#: clientgui/DlgAdvPreferencesBase.cpp:902
+msgid "Day-of-week override"
+msgstr "Modificări ziua săptămânii"
 
-#: DlgAdvPreferencesBase.cpp:486
-msgid ""
-"if checked, BOINC hangs up when network usage is done\n"
-"(only relevant for dialup-connection)"
-msgstr "dacă este bifat, BOINC închide atunci când utilizarea reţelei este finalizată\n(relevant doar pentru conexiune dialup)"
+#: clientgui/DlgAdvPreferencesBase.cpp:727
+#: clientgui/DlgAdvPreferencesBase.cpp:906
+msgid "Override the times above on the selected days:"
+msgstr "Ignoră timpii de mai sus în zilele selectate:"
 
-#: DlgAdvPreferencesBase.cpp:492
-msgid "Network usage allowed"
-msgstr "Acces reţea permis"
+#: clientgui/DlgAdvPreferencesBase.cpp:750
+#: clientgui/DlgAdvPreferencesBase.cpp:923
+msgid "Monday"
+msgstr "Luni"
 
-#: DlgAdvPreferencesBase.cpp:500
-msgid "network usage start hour"
-msgstr "acces reţea de la ora"
+#: clientgui/DlgAdvPreferencesBase.cpp:777
+#: clientgui/DlgAdvPreferencesBase.cpp:938
+msgid "Friday"
+msgstr "Vineri"
 
-#: DlgAdvPreferencesBase.cpp:508
-msgid "network usage stop hour"
-msgstr "acces reţea până la ora"
+#: clientgui/DlgAdvPreferencesBase.cpp:792
+#: clientgui/DlgAdvPreferencesBase.cpp:951
+msgid "Tuesday"
+msgstr "Marţi"
 
-#: DlgAdvPreferencesBase.cpp:598 DlgItemProperties.cpp:231
-msgid "Disk usage"
-msgstr "Utilizare disc"
+#: clientgui/DlgAdvPreferencesBase.cpp:807
+#: clientgui/DlgAdvPreferencesBase.cpp:966
+msgid "Saturday"
+msgstr "Sâmbătă"
 
-#: DlgAdvPreferencesBase.cpp:609
-msgid "the maximum disk space used by BOINC (in Gigabytes)"
-msgstr "spaţiul maxim pe disc folosit de BOINC (în Gigabytes)"
+#: clientgui/DlgAdvPreferencesBase.cpp:820
+#: clientgui/DlgAdvPreferencesBase.cpp:979
+msgid "Wednesday"
+msgstr "Miercuri"
 
-#: DlgAdvPreferencesBase.cpp:613
-msgid "Gigabytes disk space"
-msgstr "Gigabytes spaţiu disc"
+#: clientgui/DlgAdvPreferencesBase.cpp:835
+#: clientgui/DlgAdvPreferencesBase.cpp:994
+msgid "Sunday"
+msgstr "Duminică"
 
-#: DlgAdvPreferencesBase.cpp:616
-msgid "Leave at least"
-msgstr "Lasă cel puţin"
+#: clientgui/DlgAdvPreferencesBase.cpp:848
+#: clientgui/DlgAdvPreferencesBase.cpp:1007
+msgid "Thursday"
+msgstr "Joi"
 
-#: DlgAdvPreferencesBase.cpp:620
-msgid "BOINC leaves at least this amount of disk space free (in Gigabytes)"
-msgstr "BOINC lasă cel puţin această cantitate de spaţiu pe dic liberă (în Gigabytes)"
+#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
+msgid "Transfer files only during a particular period each day."
+msgstr "Transferă fișiere doar într-o anumită perioadă în fiecare zi."
 
-#: DlgAdvPreferencesBase.cpp:624
-msgid "Gigabytes disk space free"
-msgstr "Gigabytes spaţiu liber disc"
+#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
+msgid "Transfer files only between"
+msgstr "Transferă fișiere doar între"
 
-#: DlgAdvPreferencesBase.cpp:631
-msgid "BOINC uses at most this percentage of total disk space"
-msgstr "BOINC foloseşte cel mult acest procent din spaţiul total pe disc"
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Număr invalid"
 
-#: DlgAdvPreferencesBase.cpp:636
-#, no-c-format
-msgid "% of total disk space"
-msgstr "% din total spaţiu disc"
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Timp invalid, valoare trebuie să fie între 0:00 și 24:00, formatul este HH:MM"
 
-#: DlgAdvPreferencesBase.cpp:639
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Task-urile crează punct de control pe disc cel mult la fiecare"
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Timpul de start trebuie să fie diferit de timpul de sfârșit"
 
-#: DlgAdvPreferencesBase.cpp:645
-msgid "seconds"
-msgstr "secunde"
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Numărul trebuie să fie între 0 și 10"
 
-#: DlgAdvPreferencesBase.cpp:655
-#, no-c-format
-msgid "% of page file (swap space)"
-msgstr "% of page file (spaţiu swap)"
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Numărul trebuie să fie între 0 și 100"
 
-#: DlgAdvPreferencesBase.cpp:662
-msgid "Memory usage"
-msgstr "Utilizare memorie"
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Numărul trebuie să fie între 1 și 100."
 
-#: DlgAdvPreferencesBase.cpp:676
-#, no-c-format
-msgid "% when computer is in use"
-msgstr "% când calculatorul este folosit"
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "valoare introdusă invalidă detectată"
 
-#: DlgAdvPreferencesBase.cpp:686
-#, no-c-format
-msgid "% when computer is idle"
-msgstr "% când calculatorul nu este folosit"
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Eroare Validare"
 
-#: DlgAdvPreferencesBase.cpp:691
-msgid "Leave applications in memory while suspended"
-msgstr "Lasă aplicaţiile în memorie când sunt suspendate"
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Renunțați la preferințele locale și folosiți preferințele de pe web?"
 
-#: DlgAdvPreferencesBase.cpp:693
-msgid "if checked, suspended work units are left in memory"
-msgstr "dacă este bifat, unităţile de lucru sunt păstrate în memorie"
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Confirmare"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
+#, c-format
+msgid "%s Diagnostic Log Flags"
+msgstr "%s Flag-uri Jurnal Diagnostic"
 
-#: DlgAdvPreferencesBase.cpp:713
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
-"Suspend processor and network usage when these applications are running:"
-msgstr "Suspendă folosirea procesorului şi a reţelei când rulează aceste aplicaţii:"
+"These flags enable various types of diagnostic messages in the Event Log."
+msgstr "Aceste flag-uri activează diverse tipuri de mesaje de diagnostic în Jurnalul de Evenimente."
 
-#: DlgAdvPreferencesBase.cpp:722
-msgid "Add..."
-msgstr "Adaugă..."
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
+msgid "More info ..."
+msgstr "Mai multe informaţii ..."
 
-#: DlgAdvPreferencesBase.cpp:723
-msgid "Add an application to this list"
-msgstr "Adaugă o aplicaţie la această listă"
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
+msgid "Save all values and close the dialog"
+msgstr "Salvează toate valorile și închide dialogul"
 
-#: DlgAdvPreferencesBase.cpp:728 ViewProjects.cpp:202
-#: sg_ProjectCommandPopup.cpp:85
-msgid "Remove"
-msgstr "Şterge"
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
+msgid "Defaults"
+msgstr "Implicite"
 
-#: DlgAdvPreferencesBase.cpp:729
-msgid "Remove an application from this list"
-msgstr "Şterge o aplicaţie din această listă"
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
+msgid "Restore default settings"
+msgstr "Restaurează setările implicite"
 
-#: DlgAdvPreferencesBase.cpp:738
-msgid "For advanced options, refer to "
-msgstr "Pentru opţiuni avansate, consultaţi "
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
+msgid "Close the dialog without saving"
+msgstr "Închide dialogul fără a salva"
 
-#: DlgEventLog.cpp:219
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Aplică"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Salvează toate valorile"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Jurnal Evenimente"
 
-#: DlgEventLog.cpp:232 ViewMessages.cpp:117 ViewProjects.cpp:219
-#: ViewStatistics.cpp:435 ViewStatistics.cpp:2009 ViewTransfers.cpp:182
-#: ViewWork.cpp:232
+#. Create List Pane Items
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
+#: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
+#: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
+#: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Proiect"
 
-#: DlgEventLog.cpp:233 ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Timp"
 
-#: DlgEventLog.cpp:234 ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Mesaj"
 
-#: DlgEventLog.cpp:290 DlgEventLog.cpp:354
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Arată doar acest proiect"
 
-#: DlgEventLog.cpp:294
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Copi&ază Tot"
 
-#: DlgEventLog.cpp:296 DlgEventLog.cpp:300 ViewMessages.cpp:89
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
+#: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Copiază toate mesajele in clipboard."
 
-#: DlgEventLog.cpp:305
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Copiază &Selectate"
 
-#: DlgEventLog.cpp:308 DlgEventLog.cpp:316 ViewMessages.cpp:97
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
+#: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or command key while clicking on "
 "messages."
 msgstr "Copiază mesajele selectate in clipboard. Puteţi selecta mai multe mesaje prin apăsarea si menţinerea tastelor shift sau control în timp ce selectaţi cu mouse-ul mesajele."
 
-#: DlgEventLog.cpp:310 DlgEventLog.cpp:318 ViewMessages.cpp:99
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
+#: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or control key while clicking on "
 "messages."
 msgstr "Copiază mesajele selectate in clipboard. Puteţi selecta mai multe mesaje prin apăsarea si menţinerea tastelor shift sau control în timp ce selectaţi cu mouse-ul mesajele."
 
-#: DlgEventLog.cpp:325 DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Închide"
 
-#: DlgEventLog.cpp:334 sg_BoincSimpleFrame.cpp:798 sg_DlgPreferences.cpp:442
-#, c-format
-msgid "Get help with %s"
-msgstr "Ajutor cu %s"
-
-#: DlgEventLog.cpp:348
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Arată toate &mesajele"
 
-#: DlgEventLog.cpp:349 DlgEventLog.cpp:351
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Arată mesaje de la toate proiectele"
 
-#: DlgEventLog.cpp:355 DlgEventLog.cpp:357
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Arată doar mesajele pentru proiectul selectat"
 
-#: DlgExitMessage.cpp:82
-#, c-format
-msgid "%s - Exit Confirmation"
-msgstr "%s - Confirmare Ieşire"
-
-#: DlgExitMessage.cpp:130
+#: clientgui/DlgExclusiveApps.cpp:60
 #, c-format
-msgid ""
-"You have requested to exit the %s,\n"
-"which allows you to view and manage\n"
-"the tasks running on your computer.\n"
-"\n"
-"If you also want to stop running the tasks,\n"
-"choose from the following options:"
-msgstr "Aţi cerut să închideţi %s,\ncare vă permite să vizualizaţi şi să gestionaţi\ntask-urile care rulează pe calculatorul dumneavoastră.\n\nDacă doriţi să opriţi şi rularea task-urilor,\nalegeţi din următoarele opţiuni:"
+msgid "%s - Exclusive Applications"
+msgstr "%s - Aplicații Exclusive"
 
-#: DlgExitMessage.cpp:135
-#, c-format
+#: clientgui/DlgExclusiveApps.cpp:72
 msgid ""
-"This will shut down %s and its tasks until either the\n"
-"%s or the %s screen saver is run again.\n"
-"\n"
-"In most cases, it is better just to close the %s window\n"
-"rather than to exit the application; that will allow %s to run its\n"
-"tasks at the times you selected in your preferences."
-msgstr "Se va opri %s şi task-urile sale până când fie\n%s sau screensaver-ul %s va rula din nou.\n\nÎn cele mai multe cazuri, este mai bine doar să închideţi fereastra %s\ndecât să închideţi aplicaţia; asta va permite %s să-şi ruleze\ntask-urile conform intervalelor de timp selectate în preferinţe."
+"Suspend processor and network usage when these applications are running:"
+msgstr "Suspendă folosirea procesorului şi a reţelei când rulează aceste aplicaţii:"
 
-#: DlgExitMessage.cpp:153
+#: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
+msgid "Add..."
+msgstr "Adaugă..."
+
+#: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
+msgid "Add an application to this list"
+msgstr "Adaugă o aplicaţie la această listă"
+
+#: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
+msgid "Remove"
+msgstr "Şterge"
+
+#: clientgui/DlgExclusiveApps.cpp:87 clientgui/DlgExclusiveApps.cpp:111
+msgid "Remove an application from this list"
+msgstr "Şterge o aplicaţie din această listă"
+
+#: clientgui/DlgExclusiveApps.cpp:96
+msgid "Suspend GPU usage when these applications are running:"
+msgstr "Suspendă utilizarea GPU atunci când rulează aceste aplicații:"
+
+#: clientgui/DlgExclusiveApps.cpp:122
+msgid "For advanced options, refer to "
+msgstr "Pentru opţiuni avansate, consultaţi "
+
+#: clientgui/DlgExclusiveApps.cpp:147
+msgid "save all values and close the dialog"
+msgstr "salvează toate valorile şi închide dialogul"
+
+#: clientgui/DlgExclusiveApps.cpp:153
+msgid "close the dialog without saving"
+msgstr "închide dialogul fără a salva"
+
+#: clientgui/DlgExclusiveApps.cpp:158
+msgid "shows the preferences web page"
+msgstr "arată pagina web de preferinţe"
+
+#. TODO: fill in the default directory for MSW
+#. TODO: fill in the default directory for Linux
+#: clientgui/DlgExclusiveApps.cpp:303 clientgui/DlgExclusiveApps.cpp:309
+#: clientgui/DlgExclusiveApps.cpp:315
+msgid "Applications to add"
+msgstr "Aplicaţii de adăugat"
+
+#: clientgui/DlgExclusiveApps.cpp:332
+#, c-format
+msgid "'%s' is not an executable application."
+msgstr "'%s' nu este o aplicaţie executabilă."
+
+#: clientgui/DlgExclusiveApps.cpp:333 clientgui/DlgExclusiveApps.cpp:380
+#: clientgui/DlgExclusiveApps.cpp:404
+msgid "Add Exclusive App"
+msgstr "Adaugă Aplicaţie Exclusivă"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Name of application to add?"
+msgstr "Numele aplicaţiei de adăugat?"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Add exclusive app"
+msgstr "Adaugă aplicaţie exclusiva"
+
+#: clientgui/DlgExclusiveApps.cpp:379
+#, c-format
+msgid "Application names must end with '%s'"
+msgstr "Numele aplicaţiilor trebuie să se termine cu '%s'"
+
+#: clientgui/DlgExclusiveApps.cpp:403
+#, c-format
+msgid "'%s' is already in the list."
+msgstr "'%s' este deja în listă."
+
+#: clientgui/DlgExitMessage.cpp:82
+#, c-format
+msgid "%s - Exit Confirmation"
+msgstr "%s - Confirmare Ieşire"
+
+#: clientgui/DlgExitMessage.cpp:130
+#, c-format
+msgid ""
+"You have requested to exit the %s,\n"
+"which allows you to view and manage\n"
+"the tasks running on your computer.\n"
+"\n"
+"If you also want to stop running the tasks,\n"
+"choose from the following options:"
+msgstr "Aţi cerut să închideţi %s,\ncare vă permite să vizualizaţi şi să gestionaţi\ntask-urile care rulează pe calculatorul dumneavoastră.\n\nDacă doriţi să opriţi şi rularea task-urilor,\nalegeţi din următoarele opţiuni:"
+
+#: clientgui/DlgExitMessage.cpp:135
+#, c-format
+msgid ""
+"This will shut down %s and its tasks until either the\n"
+"%s or the %s screen saver is run again.\n"
+"\n"
+"In most cases, it is better just to close the %s window\n"
+"rather than to exit the application; that will allow %s to run its\n"
+"tasks at the times you selected in your preferences."
+msgstr "Se va opri %s şi task-urile sale până când fie\n%s sau screensaver-ul %s va rula din nou.\n\nÎn cele mai multe cazuri, este mai bine doar să închideţi fereastra %s\ndecât să închideţi aplicaţia; asta va permite %s să-şi ruleze\ntask-urile conform intervalelor de timp selectate în preferinţe."
+
+#: clientgui/DlgExitMessage.cpp:153
 #, c-format
 msgid "Stop running tasks when exiting the %s"
 msgstr "Opriţi rularea task-urilor când închideţi %s"
 
-#: DlgExitMessage.cpp:165
+#: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
 msgstr "Ţine minte această decizie şi nu mai arăta acest dialog."
 
-#: DlgExitMessage.cpp:178 DlgGenericMessage.cpp:125 DlgOptions.cpp:401
-#: DlgSelectComputer.cpp:168 wizardex.cpp:378
+#: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
+#: clientgui/DlgOptions.cpp:415 clientgui/DlgSelectComputer.cpp:168
+#: clientgui/wizardex.cpp:378
 msgid "&Cancel"
 msgstr "&Renunţă"
 
-#: DlgGenericMessage.cpp:112
+#: clientgui/DlgGenericMessage.cpp:112
 msgid "Don't show this dialog again."
 msgstr "Nu arăta acest dialog din nou."
 
-#: DlgItemProperties.cpp:168 DlgItemProperties.cpp:171
-#: DlgItemProperties.cpp:174 DlgItemProperties.cpp:177
-msgid "Don't fetch tasks for "
-msgstr "Nu vor fi luate task-uri noi pentru "
+#: clientgui/DlgHiddenColumns.cpp:64
+#, c-format
+msgid "%s Column Selection"
+msgstr "%s Selecție Coloană"
+
+#: clientgui/DlgHiddenColumns.cpp:77
+#, c-format
+msgid "Select which columns %s should show."
+msgstr "Selectați ce coloane %s să fie afișate."
+
+#: clientgui/DlgHiddenColumns.cpp:358
+msgid ""
+"Are you sure you want to reset all list columns to the default "
+"configurations?"
+msgstr "Sunteți sigur că doriți resetarea coloanelor listei la configurația implicită?"
+
+#: clientgui/DlgHiddenColumns.cpp:359
+msgid "Confirm defaults"
+msgstr "Confirmați implicite"
+
+#: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
+#: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
+msgid "Don't request tasks for "
+msgstr "Nu cere sarcini pentru"
 
-#: DlgItemProperties.cpp:168
+#: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
 msgstr "Preferinţe proiect"
 
-#: DlgItemProperties.cpp:171
+#: clientgui/DlgItemProperties.cpp:197
 msgid "Account manager preference"
 msgstr "Preferinţe manager de cont"
 
-#: DlgItemProperties.cpp:174
+#: clientgui/DlgItemProperties.cpp:200
 msgid "Project has no apps for "
 msgstr "Proiectul nu are aplicaţii pentru "
 
-#: DlgItemProperties.cpp:177
+#: clientgui/DlgItemProperties.cpp:203
 msgid "Client configuration excludes "
 msgstr "Configurarea client exclude "
 
-#: DlgItemProperties.cpp:181
-msgid " work fetch deferred for"
-msgstr " preluarea de lucru amânată pentru"
+#: clientgui/DlgItemProperties.cpp:209
+#, c-format
+msgid "%s task request deferred for"
+msgstr "%s cerere de sarcină amânată pentru"
 
-#: DlgItemProperties.cpp:182
-msgid " work fetch deferral interval"
-msgstr " interval amânare preluare lucru"
+#: clientgui/DlgItemProperties.cpp:213
+#, c-format
+msgid "%s task request deferral interval"
+msgstr "%s interval de amânare a cererii de sarcini"
 
-#: DlgItemProperties.cpp:213
+#. set dialog title
+#: clientgui/DlgItemProperties.cpp:247
 msgid "Properties of project "
 msgstr "Proprietăţi ale proiectului "
 
-#: DlgItemProperties.cpp:217 DlgOptions.cpp:218
+#. layout controls
+#: clientgui/DlgItemProperties.cpp:251 clientgui/DlgOptions.cpp:232
 msgid "General"
 msgstr "General"
 
-#: DlgItemProperties.cpp:218
-msgid "Master URL"
-msgstr "URL Principal"
+#: clientgui/DlgItemProperties.cpp:252
+msgid "URL"
+msgstr "URL"
 
-#: DlgItemProperties.cpp:219
+#: clientgui/DlgItemProperties.cpp:253
 msgid "User name"
 msgstr "Nume utilizator"
 
-#: DlgItemProperties.cpp:220
+#: clientgui/DlgItemProperties.cpp:254
 msgid "Team name"
 msgstr "Nume echipă"
 
-#: DlgItemProperties.cpp:221 ViewProjects.cpp:224
+#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:256
 msgid "Resource share"
 msgstr "Resurse partajate"
 
-#: DlgItemProperties.cpp:223
+#: clientgui/DlgItemProperties.cpp:257
 msgid "Scheduler RPC deferred for"
 msgstr "RPC Planificator amânat pentru"
 
-#: DlgItemProperties.cpp:226
+#: clientgui/DlgItemProperties.cpp:260
 msgid "File downloads deferred for"
 msgstr "Descărcările de fişiere amânate pentru"
 
-#: DlgItemProperties.cpp:229
+#: clientgui/DlgItemProperties.cpp:263
 msgid "File uploads deferred for"
 msgstr "Încărcările de fişiere amânate pentru"
 
-#: DlgItemProperties.cpp:232
+#: clientgui/DlgItemProperties.cpp:265
+msgid "Disk usage"
+msgstr "Utilizare disc"
+
+#: clientgui/DlgItemProperties.cpp:266
 msgid "Computer ID"
 msgstr "ID calculator"
 
-#: DlgItemProperties.cpp:234
+#: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
 msgstr "CPU neintensiv"
 
-#: DlgItemProperties.cpp:234 DlgItemProperties.cpp:236
-#: DlgItemProperties.cpp:237 DlgItemProperties.cpp:239
-#: DlgItemProperties.cpp:242 DlgItemProperties.cpp:251
-#: DlgItemProperties.cpp:254 DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:268 clientgui/DlgItemProperties.cpp:270
+#: clientgui/DlgItemProperties.cpp:271 clientgui/DlgItemProperties.cpp:273
+#: clientgui/DlgItemProperties.cpp:276 clientgui/DlgItemProperties.cpp:285
+#: clientgui/DlgItemProperties.cpp:288 clientgui/DlgItemProperties.cpp:291
 msgid "yes"
 msgstr "da"
 
-#: DlgItemProperties.cpp:236
+#: clientgui/DlgItemProperties.cpp:270
 msgid "Suspended via GUI"
 msgstr "Suspendat din GUI"
 
-#: DlgItemProperties.cpp:236 DlgItemProperties.cpp:237
+#: clientgui/DlgItemProperties.cpp:270 clientgui/DlgItemProperties.cpp:271
 msgid "no"
 msgstr "nu"
 
-#: DlgItemProperties.cpp:237
-msgid "Don't request more work"
-msgstr "Nu cere mai mult de lucru"
+#: clientgui/DlgItemProperties.cpp:271
+msgid "Don't request tasks"
+msgstr "Nu cere sarcini"
 
-#: DlgItemProperties.cpp:239
+#: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
 msgstr "Apel planificator în curs"
 
-#: DlgItemProperties.cpp:242
+#: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
 msgstr "Trickle-up în aşteptare"
 
-#: DlgItemProperties.cpp:245 DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:279 clientgui/DlgItemProperties.cpp:281
 msgid "Host location"
 msgstr "Locaţie gazdă"
 
-#: DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:281
 msgid "default"
 msgstr "implicit"
 
-#: DlgItemProperties.cpp:251
+#: clientgui/DlgItemProperties.cpp:285
 msgid "Added via account manager"
 msgstr "Adăugat prin manager de cont"
 
-#: DlgItemProperties.cpp:254
+#: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
 msgstr "Şterge când task-urile sunt gata"
 
-#: DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
 msgstr "Finalizat"
 
-#: DlgItemProperties.cpp:259
+#: clientgui/DlgItemProperties.cpp:293
+msgid "Tasks completed"
+msgstr "Task-uri finalizate"
+
+#: clientgui/DlgItemProperties.cpp:294
+msgid "Tasks failed"
+msgstr "Task-uri eșuate"
+
+#: clientgui/DlgItemProperties.cpp:296
 msgid "Credit"
 msgstr "Credit"
 
-#: DlgItemProperties.cpp:260
+#: clientgui/DlgItemProperties.cpp:297
 msgid "User"
 msgstr "Utilizator"
 
-#: DlgItemProperties.cpp:267
+#: clientgui/DlgItemProperties.cpp:300 clientgui/DlgItemProperties.cpp:308
+#, c-format
+msgid "%s total, %s average"
+msgstr "%s total, %s în medie"
+
+#: clientgui/DlgItemProperties.cpp:305
 msgid "Host"
 msgstr "Gazdă"
 
-#: DlgItemProperties.cpp:276
+#: clientgui/DlgItemProperties.cpp:315
 msgid "Scheduling"
 msgstr "Planificare"
 
-#: DlgItemProperties.cpp:277
+#: clientgui/DlgItemProperties.cpp:316
 msgid "Scheduling priority"
 msgstr "Prioritate planificare"
 
-#: DlgItemProperties.cpp:278
+#: clientgui/DlgItemProperties.cpp:317
 msgid "CPU"
 msgstr "CPU"
 
-#: DlgItemProperties.cpp:302
+#: clientgui/DlgItemProperties.cpp:341
 msgid "Duration correction factor"
 msgstr "Factor corecţie durată"
 
-#: DlgItemProperties.cpp:316
+#: clientgui/DlgItemProperties.cpp:349
+msgid "Last scheduler reply"
+msgstr "Ultimul răspuns de la planificator"
+
+#: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
 msgstr "Propietăţi ale task-ului "
 
-#: DlgItemProperties.cpp:328 ViewWork.cpp:238
+#: clientgui/DlgItemProperties.cpp:372 clientgui/ViewWork.cpp:266
 msgid "Application"
 msgstr "Aplicaţia"
 
-#: DlgItemProperties.cpp:329 ViewWork.cpp:239
+#: clientgui/DlgItemProperties.cpp:373 clientgui/ViewWork.cpp:267
 msgid "Name"
 msgstr "Nume"
 
-#: DlgItemProperties.cpp:330
+#: clientgui/DlgItemProperties.cpp:374
 msgid "State"
 msgstr "Stare"
 
-#: DlgItemProperties.cpp:333
+#: clientgui/DlgItemProperties.cpp:377
 msgid "Received"
 msgstr "Primit"
 
-#: DlgItemProperties.cpp:336
+#: clientgui/DlgItemProperties.cpp:380
 msgid "Report deadline"
 msgstr "Ultima zi pentru raport"
 
-#: DlgItemProperties.cpp:338
+#: clientgui/DlgItemProperties.cpp:382
 msgid "Resources"
 msgstr "Resurse"
 
-#: DlgItemProperties.cpp:341
+#: clientgui/DlgItemProperties.cpp:385
 msgid "Estimated computation size"
 msgstr "Volum calcul estimat"
 
-#: DlgItemProperties.cpp:344
-msgid "CPU time at last checkpoint"
-msgstr "Timp CPU la ultimul punct de control"
-
-#: DlgItemProperties.cpp:345 DlgItemProperties.cpp:360
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Timp CPU"
 
-#: DlgItemProperties.cpp:347 DlgItemProperties.cpp:361
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Timp CPU de la ultimul punct de control"
+
+#: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Timp scurs"
 
-#: DlgItemProperties.cpp:349
+#: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
 msgstr "Timp rămas estimat"
 
-#: DlgItemProperties.cpp:350
+#: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
 msgstr "Proporţie finalizat"
 
-#: DlgItemProperties.cpp:351
+#: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
 msgstr "Dimensiune memorie virtuală"
 
-#: DlgItemProperties.cpp:352
+#: clientgui/DlgItemProperties.cpp:398
 msgid "Working set size"
 msgstr "Dimensiune memorie de lucru"
 
-#: DlgItemProperties.cpp:354
+#: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
 msgstr "Director"
 
-#: DlgItemProperties.cpp:357
+#: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
 msgstr "ID Proces"
 
-#: DlgItemProperties.cpp:427 ViewWork.cpp:1032 sg_TaskPanel.cpp:823
+#: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
+msgid "Progress rate"
+msgstr "Rată progres"
+
+#: clientgui/DlgItemProperties.cpp:409
+msgid "per hour"
+msgstr "pe oră"
+
+#: clientgui/DlgItemProperties.cpp:411
+msgid "per minute"
+msgstr "pe minut"
+
+#: clientgui/DlgItemProperties.cpp:413
+msgid "per second"
+msgstr "pe secundă"
+
+#: clientgui/DlgItemProperties.cpp:421
+msgid "Executable"
+msgstr "Executabil"
+
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Local: "
 
-#: DlgOptions.cpp:129 DlgOptions.cpp:135
+#: clientgui/DlgOptions.cpp:130 clientgui/DlgOptions.cpp:136
 msgid "Options"
 msgstr "Opţiuni"
 
-#: DlgOptions.cpp:175
+#: clientgui/DlgOptions.cpp:179
 msgid "Language:"
 msgstr "Limba:"
 
-#: DlgOptions.cpp:182
+#: clientgui/DlgOptions.cpp:186
 msgid "What language should BOINC use?"
 msgstr "Ce limbă să folosească BOINC?"
 
-#: DlgOptions.cpp:186
+#: clientgui/DlgOptions.cpp:190
 msgid "Notice reminder interval:"
 msgstr "Interval reamintere anunţuri:"
 
-#: DlgOptions.cpp:193
+#: clientgui/DlgOptions.cpp:197
 msgid "How often should BOINC remind you of new notices?"
 msgstr "Cât de des trebuie ca BOINC să vă reamintească de noile anunţuri?"
 
-#: DlgOptions.cpp:198
+#: clientgui/DlgOptions.cpp:202
 msgid "Run Manager at login?"
 msgstr "Rulează Manager la login?"
 
-#: DlgOptions.cpp:204
+#: clientgui/DlgOptions.cpp:208
 msgid "Run the BOINC Manager when you log on."
 msgstr "Rulează Manager BOINC la login."
 
-#: DlgOptions.cpp:209
+#: clientgui/DlgOptions.cpp:213
+msgid "Run daemon?"
+msgstr "Rulez daemon-ul?"
+
+#: clientgui/DlgOptions.cpp:219
+msgid "Run daemon when launching the Manager."
+msgstr "Rulează daemon-ul la lansarea Managerului"
+
+#: clientgui/DlgOptions.cpp:223
 msgid "Enable Manager exit dialog?"
 msgstr "Activează dialog ieşire Manager?"
 
-#: DlgOptions.cpp:215
+#: clientgui/DlgOptions.cpp:229
 msgid "Display the exit dialog when shutting down the Manager."
 msgstr "Afişează dialogul de ieşire la închiderea Managerului."
 
-#: DlgOptions.cpp:226
+#: clientgui/DlgOptions.cpp:240
 msgid "Dial-up and Virtual Private Network settings"
 msgstr "Setări Dial-up si Virtual Private Network"
 
-#: DlgOptions.cpp:240
+#: clientgui/DlgOptions.cpp:254
 msgid "&Set Default"
 msgstr "&Setează ca implicit"
 
-#: DlgOptions.cpp:245
+#: clientgui/DlgOptions.cpp:259
 msgid "&Clear Default"
 msgstr "Anulează setarea impli&cită"
 
-#: DlgOptions.cpp:252
+#: clientgui/DlgOptions.cpp:266
 msgid "Default Connection:"
 msgstr "Conexiune implicită:"
 
-#: DlgOptions.cpp:259
+#: clientgui/DlgOptions.cpp:273
 msgid "Connections"
 msgstr "Conexiuni"
 
-#: DlgOptions.cpp:268
+#: clientgui/DlgOptions.cpp:282
 msgid "Connect via HTTP proxy server"
 msgstr "Conectare prin HTTP proxy server"
 
-#: DlgOptions.cpp:272
+#: clientgui/DlgOptions.cpp:286
 msgid "HTTP Proxy Server Configuration"
 msgstr "Configurare HTTP Proxy server"
 
-#: DlgOptions.cpp:280 DlgOptions.cpp:344
+#: clientgui/DlgOptions.cpp:294 clientgui/DlgOptions.cpp:358
 msgid "Address:"
 msgstr "Adresa:"
 
-#: DlgOptions.cpp:288 DlgOptions.cpp:352 ProxyPage.cpp:340 ProxyPage.cpp:360
+#: clientgui/DlgOptions.cpp:302 clientgui/DlgOptions.cpp:366
+#: clientgui/ProxyPage.cpp:340 clientgui/ProxyPage.cpp:360
 msgid "Port:"
 msgstr "Port:"
 
-#: DlgOptions.cpp:296 DlgOptions.cpp:360
+#: clientgui/DlgOptions.cpp:310 clientgui/DlgOptions.cpp:374
 msgid "Don't use proxy for:"
 msgstr "Nu folosi proxy pentru:"
 
-#: DlgOptions.cpp:303 DlgOptions.cpp:367
+#: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
 msgid "Leave these blank if not needed"
 msgstr "Nu completaţi dacă nu e necesar"
 
-#: DlgOptions.cpp:309 DlgOptions.cpp:373 ProxyPage.cpp:343 ProxyPage.cpp:363
+#: clientgui/DlgOptions.cpp:323 clientgui/DlgOptions.cpp:387
+#: clientgui/ProxyPage.cpp:343 clientgui/ProxyPage.cpp:363
 msgid "User Name:"
 msgstr "Nume utilizator:"
 
-#: DlgOptions.cpp:317 DlgOptions.cpp:381 DlgSelectComputer.cpp:152
-#: ProxyPage.cpp:346 ProxyPage.cpp:366
+#: clientgui/DlgOptions.cpp:331 clientgui/DlgOptions.cpp:395
+#: clientgui/DlgSelectComputer.cpp:152 clientgui/ProxyPage.cpp:346
+#: clientgui/ProxyPage.cpp:366
 msgid "Password:"
 msgstr "Parola:"
 
-#: DlgOptions.cpp:324
+#: clientgui/DlgOptions.cpp:338
 msgid "HTTP Proxy"
 msgstr "Proxy HTTP"
 
-#: DlgOptions.cpp:332
+#: clientgui/DlgOptions.cpp:346
 msgid "Connect via SOCKS proxy server"
 msgstr "Conectare prin SOCKS proxy server"
 
-#: DlgOptions.cpp:336
+#: clientgui/DlgOptions.cpp:350
 msgid "SOCKS Proxy Server Configuration"
 msgstr "Configurare SOCKS Proxy server"
 
-#: DlgOptions.cpp:388
+#: clientgui/DlgOptions.cpp:402
 msgid "SOCKS Proxy"
 msgstr "Proxy SOCKS"
 
-#: DlgOptions.cpp:586
+#: clientgui/DlgOptions.cpp:600
 msgid "always"
 msgstr "întotdeauna"
 
-#: DlgOptions.cpp:587
+#: clientgui/DlgOptions.cpp:601
 msgid "1 hour"
 msgstr "1 oră"
 
-#: DlgOptions.cpp:588
+#: clientgui/DlgOptions.cpp:602
 msgid "6 hours"
 msgstr "6 ore"
 
-#: DlgOptions.cpp:589
+#: clientgui/DlgOptions.cpp:603
 msgid "1 day"
 msgstr "1 zi"
 
-#: DlgOptions.cpp:590
+#: clientgui/DlgOptions.cpp:604
 msgid "1 week"
 msgstr "1 săptămână"
 
-#: DlgOptions.cpp:591
+#: clientgui/DlgOptions.cpp:605
 msgid "never"
 msgstr "niciodată"
 
-#: DlgOptions.cpp:688
+#: clientgui/DlgOptions.cpp:703
 #, c-format
 msgid "%s - Language Selection"
 msgstr "%s - Selecţie Limbă"
 
-#: DlgOptions.cpp:695
+#: clientgui/DlgOptions.cpp:710
 #, c-format
 msgid ""
 "The %s's language has been changed.  In order for this change to take "
 "effect, you must restart the %s."
 msgstr "Setările de limbă ale %s au fost modificate.  Pentru ca acestea să aibă efect, trebuie să reponiţi %s."
 
-#: DlgSelectComputer.cpp:91
+#: clientgui/DlgSelectComputer.cpp:91
 #, c-format
 msgid "%s - Select Computer"
 msgstr "%s - Selectează Calculator"
 
-#: DlgSelectComputer.cpp:125
+#: clientgui/DlgSelectComputer.cpp:125
 #, c-format
 msgid ""
 "Another instance of %s is already running \n"
 "on this computer.  Please select a client to monitor."
 msgstr "O altă instanţă de %s rulează deja \npe acest calculator.  Vă rugăm selectaţi un client pentru monitorizare."
 
-#: DlgSelectComputer.cpp:143
+#: clientgui/DlgSelectComputer.cpp:143
 msgid "Host name:"
 msgstr "Nume host:"
 
-#: Localization.cpp:31 Localization.cpp:69
+#: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
 msgid "Message boards"
 msgstr "Panouri de mesaje"
 
-#: Localization.cpp:33
+#: clientgui/Localization.cpp:33
 msgid "Correspond with other users on the SETI at home message boards"
 msgstr "Corespondează cu alţi useri de pe panourile de mesaje SETI at home"
 
-#: Localization.cpp:37
+#: clientgui/Localization.cpp:37
 msgid "Ask questions and report problems"
 msgstr "Intrebări şi probleme"
 
-#: Localization.cpp:39 Localization.cpp:81 Localization.cpp:111
-#: Localization.cpp:129
+#: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
+#: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
 msgid "Your account"
 msgstr "Contul dumneavoastră"
 
-#: Localization.cpp:41 Localization.cpp:87 Localization.cpp:113
+#: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
+#: clientgui/Localization.cpp:113
 msgid "View your account information and credit totals"
 msgstr "Vizualizaţii informaţii despre cont si total credit"
 
-#: Localization.cpp:43
+#: clientgui/Localization.cpp:43
 msgid "Your preferences"
 msgstr "Preferinţele dumneavoastră"
 
-#: Localization.cpp:45
+#: clientgui/Localization.cpp:45
 msgid "View and modify your SETI at home account profile and preferences"
 msgstr "Vizualizaţi şi modificaţi profilul si preferinţele contului dumneavoastră SETI at home"
 
-#: Localization.cpp:47 Localization.cpp:89
+#: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
 msgid "Your results"
 msgstr "Rezultatele dumneavoastră"
 
-#: Localization.cpp:49 Localization.cpp:91
+#: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
 msgid "View your last week (or more) of computational results and work"
 msgstr "Vizualizaţii rezultatele procesării din ultima saptamană (sau mai mult)"
 
-#: Localization.cpp:51 Localization.cpp:93
+#: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
 msgid "Your computers"
 msgstr "Computerele dumneavoastră"
 
-#: Localization.cpp:53
+#: clientgui/Localization.cpp:53
 msgid "View a listing of all the computers on which you are running SETI at Home"
 msgstr "Vizualizaţi toate computerele dumneavoastră pe care rulează SETI at Home"
 
-#: Localization.cpp:55 Localization.cpp:97
+#: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
 msgid "Your team"
 msgstr "Echipa dumneavoastră"
 
-#: Localization.cpp:57 Localization.cpp:99
+#: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
 msgid "View information about your team"
 msgstr "Vizualizaţi informaţii despre echipa dumneavoastră"
 
-#: Localization.cpp:61
+#: clientgui/Localization.cpp:61
 msgid "Common questions"
 msgstr "Întrebări comune"
 
-#: Localization.cpp:63
+#: clientgui/Localization.cpp:63
 msgid "Read the Einstein at Home Frequently Asked Question list"
 msgstr "Citeşte lista Întrebărilor Frecvente Einstein at Home"
 
-#: Localization.cpp:65
+#: clientgui/Localization.cpp:65
 msgid "Screensaver info"
 msgstr "Informaţii screensaver"
 
-#: Localization.cpp:67
+#: clientgui/Localization.cpp:67
 msgid "Read a detailed description of the Einstein at Home screensaver"
 msgstr "Citiţi o descriere detaliată a screensaver-ului Einstein at Home"
 
-#: Localization.cpp:71
+#: clientgui/Localization.cpp:71
 msgid ""
 "Correspond with admins and other users on the Einstein at Home message boards"
 msgstr "Corespondaţi cu administratori şi alţi utilizatori pe forumurile Einstein at Home"
 
-#: Localization.cpp:73
+#: clientgui/Localization.cpp:73
 msgid "Einstein status"
 msgstr "Stare Einstein"
 
-#: Localization.cpp:75
+#: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
 msgstr "Stare curentă server Einstein at Home"
 
-#: Localization.cpp:77
+#: clientgui/Localization.cpp:77
 msgid "Report problems"
 msgstr "Raportează probleme"
 
-#: Localization.cpp:79
+#: clientgui/Localization.cpp:79
 msgid "A link to the Einstein at Home problems and bug reports message board"
 msgstr "O legătură către forumul de probleme şi erori Einstein at Home"
 
-#: Localization.cpp:83
+#: clientgui/Localization.cpp:83
 msgid "View and modify your Einstein at Home account profile and preferences"
 msgstr "Vizualizaţi şi modificaţi profilul si preferinţele contului dumneavoastră Einstein at Home"
 
-#: Localization.cpp:85
+#: clientgui/Localization.cpp:85
 msgid "Account summary"
 msgstr "Sumar cont"
 
-#: Localization.cpp:95
+#: clientgui/Localization.cpp:95
 msgid ""
 "View a listing of all the computers on which you are running Einstein at Home"
 msgstr "Vizualizaţi toate computerele dumneavoastră pe care rulează Einstein at Home"
 
-#: Localization.cpp:101
+#: clientgui/Localization.cpp:101
 msgid "LIGO project"
 msgstr "Proiectul LIGO"
 
-#: Localization.cpp:103
+#: clientgui/Localization.cpp:103
 msgid ""
 "The home page of the Laser Interferometer Gravitational-wave Observatory "
 "(LIGO) project"
 msgstr "Pagina principală a proiectului Laser Interferometer Gravitational-wave Observatory (LIGO)"
 
-#: Localization.cpp:105
+#: clientgui/Localization.cpp:105
 msgid "GEO-600 project"
 msgstr "Proiectul GEO-600"
 
-#: Localization.cpp:107
+#: clientgui/Localization.cpp:107
 msgid "The home page of the GEO-600 project"
 msgstr "Pagina principală a proiectului GEO-600"
 
-#: Localization.cpp:115 Localization.cpp:133 ViewProjects.cpp:221
-#: ViewStatistics.cpp:465
+#: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
+#: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
 msgid "Team"
 msgstr "Echipa"
 
-#: Localization.cpp:117
+#: clientgui/Localization.cpp:117
 msgid "Info about your Team"
 msgstr "Informaţii despre Echipa dumneavoastră"
 
-#: Localization.cpp:123
+#: clientgui/Localization.cpp:123
 msgid "Get help for climateprediction.net"
 msgstr "Ajutor pentru climateprediction.net"
 
-#: Localization.cpp:125
+#: clientgui/Localization.cpp:125
 msgid "News"
 msgstr "Ştiri"
 
-#: Localization.cpp:127
+#: clientgui/Localization.cpp:127
 msgid "climateprediction.net News"
 msgstr "Ştiri climateprediction.net"
 
-#: Localization.cpp:131
+#: clientgui/Localization.cpp:131
 msgid "View your account information, credits, and trickles"
 msgstr "Vizualizaţi informaţiile despre cont, credite şi trickles"
 
-#: Localization.cpp:135
+#: clientgui/Localization.cpp:135
 msgid "Info about your team"
 msgstr "Informaţii despre echipa dumneavoastră"
 
-#: Localization.cpp:141
+#: clientgui/Localization.cpp:141
 msgid "Search for help in our help system"
 msgstr "Caută ajutor în sistemul nostru de ajutor"
 
-#: Localization.cpp:143
+#: clientgui/Localization.cpp:143
 msgid "Global Statistics"
 msgstr "Statistici Globale"
 
-#: Localization.cpp:145
+#: clientgui/Localization.cpp:145
 msgid "Summary statistics for World Community Grid"
 msgstr "Sumar statistici pentru World Community Grid"
 
-#: Localization.cpp:147
+#: clientgui/Localization.cpp:147
 msgid "My Grid"
 msgstr "Grid-ul Meu"
 
-#: Localization.cpp:149
+#: clientgui/Localization.cpp:149
 msgid "Your statistics and settings"
 msgstr "Statisticile şi setările dumneavoastră"
 
-#: Localization.cpp:151
+#: clientgui/Localization.cpp:151
 msgid "Device Profiles"
 msgstr "Profiluri Echipamente"
 
-#: Localization.cpp:153
+#: clientgui/Localization.cpp:153
 msgid "Update your device settings"
 msgstr "Actualizaţi setările echipamentelor dumneavoastră"
 
-#: Localization.cpp:155
+#: clientgui/Localization.cpp:155
 msgid "Research"
 msgstr "Cercetare"
 
-#: Localization.cpp:157
+#: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Învăţaţi despre proecte găzduite de World Community Grid"
 
-#: MainDocument.cpp:583
-msgid "Starting client"
-msgstr "Se porneşte client"
-
-#: MainDocument.cpp:591
-msgid "Connecting to client"
-msgstr "Se conectează la client"
-
-#: MainDocument.cpp:1195
-msgid "Retrieving system state; please wait..."
-msgstr "Recuperare informaţii despre starea sistemului; va rugam asteptaţi..."
-
-#: MainDocument.cpp:1816
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Aplicaţie lipsă"
 
-#: MainDocument.cpp:1817
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Vă rugăm descărcaţi şi instalaţi aplicaţia CoRD de la http://cord.sourceforge.net"
 
-#: MainDocument.cpp:2432
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "pe baterii"
 
-#: MainDocument.cpp:2433
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "calculatorul este folosit"
 
-#: MainDocument.cpp:2434
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "cerere utilizator"
 
-#: MainDocument.cpp:2435
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "timpul zilei"
 
-#: MainDocument.cpp:2436
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "Benchmarks CPU în curs"
 
-#: MainDocument.cpp:2437
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "este nevoie de spaţiu pe disc - verificaţi preferinţele"
 
-#: MainDocument.cpp:2438
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "calculatorul nu este folosit"
 
-#: MainDocument.cpp:2439
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "porneşte"
 
-#: MainDocument.cpp:2440
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "rulează o aplicaţie exclusivă"
 
-#: MainDocument.cpp:2441
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "CPU este ocupat"
 
-#: MainDocument.cpp:2442
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "limita lăţime bandă reţea depăşită"
 
-#: MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "cerut de sistemul de operare"
 
-#: MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "motiv necunoscut"
 
-#: MainDocument.cpp:2467
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU lipsă, "
 
-#: MainDocument.cpp:2474
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Nou"
 
-#: MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Download-ul a eşuat"
 
-#: MainDocument.cpp:2480
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "In curs de download"
 
-#: MainDocument.cpp:2482 MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (suspendat - "
 
-#: MainDocument.cpp:2490
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Proiect suspendat de utilizator"
 
-#: MainDocument.cpp:2492
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Task suspendat de utilizator"
 
-#: MainDocument.cpp:2494
+#. an NCI process can be running even though computation is suspended
+#. (because of <dont_suspend_nci>
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Suspendat - "
 
-#: MainDocument.cpp:2500
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU Suspendat - "
 
-#: MainDocument.cpp:2507
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "În aşteptare de memorie"
 
-#: MainDocument.cpp:2509
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "În aşteptare de memorie partajată"
 
-#: MainDocument.cpp:2512
-msgid "Running, high priority"
-msgstr "Rulează, prioritate mare"
-
-#: MainDocument.cpp:2514
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Rulează"
 
-#: MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (CPU-neintensiv)"
 
-#: MainDocument.cpp:2520
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Aşteaptă să ruleze"
 
-#: MainDocument.cpp:2522 MainDocument.cpp:2528
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Gata de start"
 
-#: MainDocument.cpp:2532
-msgid " (Scheduler wait: "
-msgstr " (Aşteptare planificator: "
+#: clientgui/MainDocument.cpp:2524
+msgid "Postponed: "
+msgstr "Amânat:"
 
-#: MainDocument.cpp:2536
-msgid " (Scheduler wait)"
-msgstr " (Aşteptare planificator)"
+#: clientgui/MainDocument.cpp:2527
+msgid "Postponed"
+msgstr "Amânat"
 
-#: MainDocument.cpp:2540
-msgid " (Waiting for network access)"
-msgstr " (În aşteptare de acces la reţea)"
+#: clientgui/MainDocument.cpp:2531
+msgid "Waiting for network access"
+msgstr "În așteptare de acces la rețea"
 
-#: MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Eroare de calcul"
 
-#: MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Upload-ul a eşuat"
 
-#: MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "In curs de upload"
 
-#: MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Abandonat de utilizator"
 
-#: MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Abandonat de proiect"
 
-#: MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Abandonat: nu a fost pornit până la termenul limită"
 
-#: MainDocument.cpp:2570
-msgid "Aborted: disk limit exceeded"
-msgstr "Abandonat: limita de spaţiu pe disc depăşită"
+#: clientgui/MainDocument.cpp:2561
+msgid "Aborted: task disk limit exceeded"
+msgstr "Abandonat: limită disc task depășită"
 
-#: MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Abandonat: limita de timp de rulare depăşită"
 
-#: MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Abandonat: limita de memorie depăşită"
 
-#: MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Abandonat"
 
-#: MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Acreditat"
 
-#: MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Gata de raport"
 
-#: MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Eroare: stare nevalidă cu codul '%d'"
 
-#: NoInternetConnectionPage.cpp:179
+#: clientgui/NoInternetConnectionPage.cpp:179
 msgid "No Internet connection"
 msgstr "Lipsă conexiune Internet"
 
-#: NoInternetConnectionPage.cpp:182
+#: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
 msgstr "Vă rugăm conectaţi-vă la Internet si reîncercaţi."
 
-#: NotDetectedPage.cpp:181
+#: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
 msgstr "Proiectul nu a fost găsit"
 
-#: NotDetectedPage.cpp:184
+#: clientgui/NotDetectedPage.cpp:184
 msgid ""
 "The URL you supplied is not that of a BOINC-based project.\n"
 "\n"
 "Please check the URL and try again."
 msgstr "URL-ul furnizat nu este al unui proiect BOINC.\n\nVă rugăm verificaţi URL-ul şi încercaţi din nou."
 
-#: NotDetectedPage.cpp:188
+#: clientgui/NotDetectedPage.cpp:188
 msgid "Account manager not found"
 msgstr "Nu s-a găsit managerul de cont"
 
-#: NotDetectedPage.cpp:191
+#: clientgui/NotDetectedPage.cpp:191
 msgid ""
 "The URL you supplied is not that of a BOINC-based account\n"
 "manager.\n"
@@ -2378,99 +2677,137 @@ msgid ""
 "Please check the URL and try again."
 msgstr "URL-ul furnizat nu este al unui manager de cont\nBOINC.\n\nVă rugăm verificaţi URL-ul şi încercaţi din nou."
 
-#: NotFoundPage.cpp:181
+#: clientgui/NotFoundPage.cpp:181
 msgid "Login Failed."
 msgstr "Login Eşuat."
 
-#: NotFoundPage.cpp:185
+#: clientgui/NotFoundPage.cpp:185
 msgid "Check the username and password, and try again."
 msgstr "Verificaţi numele de utilizator şi parola şi încercaţi din nou."
 
-#: NotFoundPage.cpp:189
+#: clientgui/NotFoundPage.cpp:189
 msgid "Check the email address and password, and try again."
 msgstr "Verificaţi adresa de email şi parola şi încercaţi din nou."
 
-#: NoticeListCtrl.cpp:222
+#: clientgui/NoticeListCtrl.cpp:229
 msgid "more..."
 msgstr "mai mult..."
 
-#: ProjectInfoPage.cpp:477 ProjectInfoPage.cpp:778 ProjectInfoPage.cpp:782
-msgid "All"
-msgstr "Tot"
-
-#: ProjectInfoPage.cpp:615
+#: clientgui/ProjectInfoPage.cpp:221
 msgid "Choose a project"
 msgstr "Alege un proiect"
 
-#: ProjectInfoPage.cpp:619
+#: clientgui/ProjectInfoPage.cpp:226
 msgid "To choose a project, click its name or type its URL below."
 msgstr "Pentru a alege un proiect, selectaţi numele sau introduceţi URL-ul mai jos."
 
-#: ProjectInfoPage.cpp:623
+#: clientgui/ProjectInfoPage.cpp:242
 msgid "Categories:"
 msgstr "Categorii:"
 
-#: ProjectInfoPage.cpp:627 sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Proiecte:"
 
-#: ProjectInfoPage.cpp:631
+#: clientgui/ProjectInfoPage.cpp:274
 msgid "Project details"
 msgstr "Detalii proiect"
 
-#: ProjectInfoPage.cpp:635
+#: clientgui/ProjectInfoPage.cpp:284
 msgid "Research area:"
 msgstr "Zona de cercetare:"
 
-#: ProjectInfoPage.cpp:639
+#: clientgui/ProjectInfoPage.cpp:294
 msgid "Organization:"
 msgstr "Organizaţie:"
 
-#: ProjectInfoPage.cpp:643
+#: clientgui/ProjectInfoPage.cpp:304
 msgid "Web site:"
 msgstr "Site web:"
 
-#: ProjectInfoPage.cpp:647
+#: clientgui/ProjectInfoPage.cpp:315
 msgid "Supported systems:"
 msgstr "Sisteme suportate:"
 
-#: ProjectInfoPage.cpp:651
+#: clientgui/ProjectInfoPage.cpp:352
 msgid "Project URL:"
 msgstr "URL proiect:"
 
-#: ProjectInfoPage.cpp:826
+#: clientgui/ProjectInfoPage.cpp:486 clientgui/ProjectInfoPage.cpp:686
+#: clientgui/ProjectInfoPage.cpp:690
+msgid "All"
+msgstr "Tot"
+
+#: clientgui/ProjectInfoPage.cpp:735
 msgid ""
 "This project may not have work for your type of computer.  Do you want to "
 "add it anyway?"
 msgstr "Acest proiect s-ar putea să nu aibă de lucru pentru tipul dumneavoastră de calculator.  Doriţi să-l adăugaţi oricum?"
 
-#: ProjectInfoPage.cpp:850
+#: clientgui/ProjectInfoPage.cpp:767
 msgid "You already added this project. Please choose a different project."
 msgstr "Aţi adăugat deja acest proiect. Vă rugăm alegeţi un alt proiect."
 
-#: ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Se comunică cu proiectul."
+#: clientgui/ProjectProcessingPage.cpp:321
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "În curs de comunicare cu proiectul\nVă rugăm să asteptaţi..."
 
-#: ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Fişierele necesare nu s-au găsit pe server."
 
-#: ProjectProcessingPage.cpp:512 ProjectProcessingPage.cpp:574
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "A apărut o eroare internă server."
 
-#: ProjectPropertiesPage.cpp:334
+#: clientgui/ProjectWelcomePage.cpp:251
+#, c-format
+msgid "Welcome to %s."
+msgstr "Bine aţi venit la %s."
+
+#: clientgui/ProjectWelcomePage.cpp:254
+msgid "You have volunteered to compute for this project:"
+msgstr "V-ați oferit voluntar să calculați pentru aceste proiect:"
+
+#: clientgui/ProjectWelcomePage.cpp:255
+msgid "Name:"
+msgstr "Nume:"
+
+#: clientgui/ProjectWelcomePage.cpp:258
+msgid "Home:"
+msgstr "Acasă:"
+
+#: clientgui/ProjectWelcomePage.cpp:262
+msgid "Description:"
+msgstr "Descriere:"
+
+#: clientgui/ProjectWelcomePage.cpp:265
+msgid "URL:"
+msgstr "URL:"
+
+#: clientgui/ProjectWelcomePage.cpp:268
+msgid "User:"
+msgstr "Utilizator:"
+
+#: clientgui/ProjectWelcomePage.cpp:273
 msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "În curs de comunicare cu proiectul\nVă rugăm să asteptaţi..."
+"WARNING: This project is not registered with BOINC.  Make sure you trust it "
+"before continuing."
+msgstr "ATENȚIE: Acest proiect nu este înregistrat la BOINC. Asigurați-vă că aveți încredere înainte de a continua."
 
-#: ProxyInfoPage.cpp:195
+#: clientgui/ProjectWelcomePage.cpp:277
+msgid "To continue, click Next."
+msgstr "Pentru a continua, apăsaţi Următorul."
+
+#: clientgui/ProxyInfoPage.cpp:195
 msgid "Network communication failure"
 msgstr "Comunicare in reţea esuată"
 
-#: ProxyInfoPage.cpp:199
+#: clientgui/ProxyInfoPage.cpp:199
 msgid ""
 "The World Community Grid - BOINC software failed to communicate\n"
 "over the Internet. The most likely reasons are:\n"
@@ -2487,7 +2824,7 @@ msgid ""
 "Click Next to configure BOINC's proxy settings."
 msgstr "Programul World Community Grid - BOINC nu a reuşit să comunice\nprin Internet. Cele mai probabile cauze sunt:\n\n1) Probleme de conectivitate.  Verificaţi conexiunea la reţea sau modem\nşi apoi apăsaţi Înapoi pentru a reîncerca.\n\n2) Un program firewall personal blochează programul World Community\nGrid - BOINC.  Configuraţi firewall-ul personal să permită\nBOINC şi Managerului BOINC să comunice pe portul 80 şi portul 443\nşi apoi apăsaţi Înapoi pentru a reîncerca.\n\n3) Folosiţ [...]
 
-#: ProxyInfoPage.cpp:203
+#: clientgui/ProxyInfoPage.cpp:203
 msgid ""
 "BOINC failed to communicate on the Internet.\n"
 "The most likely reasons are:\n"
@@ -2504,611 +2841,852 @@ msgid ""
 "Click Next to configure BOINC's proxy settings."
 msgstr "BOINC nu a putut comunica prin Internet.\nCele mai probabile cauze sunt:\n\n1) Probleme de conectivitate.  Verificaţi conexiunea la reţea \nsau modem şi apoi apăsaţi Înapoi pentru a reîncerca.\n\n2) Un program firewall personal blochează programul BOINC.\nConfiguraţi firewall-ul personal să permită\nBOINC şi Managerului BOINC să comunice pe portul 80 \nşi apoi apăsaţi Înapoi pentru a reîncerca.\n\n3) Folosiţi un server proxy.\nApăsaţi Următorul pentru a configura setările proxy a [...]
 
-#: ProxyPage.cpp:331
+#: clientgui/ProxyPage.cpp:331
 msgid "Proxy configuration"
 msgstr "Configuraţie proxy"
 
-#: ProxyPage.cpp:334
+#: clientgui/ProxyPage.cpp:334
 msgid "HTTP proxy"
 msgstr "Proxy HTTP"
 
-#: ProxyPage.cpp:337 ProxyPage.cpp:357
+#: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
 msgid "Server:"
 msgstr "Server:"
 
-#: ProxyPage.cpp:350
+#: clientgui/ProxyPage.cpp:350
 msgid "Autodetect"
 msgstr "Autodetectare"
 
-#: ProxyPage.cpp:354
+#: clientgui/ProxyPage.cpp:354
 msgid "SOCKS proxy"
 msgstr "Proxy SOCKS"
 
-#: TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Condiţii de Utilizare"
-
-#: TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Vă rugăm citiţi următoarele condiţii de utilizare:"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Skin"
 
-#: TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Sunt de acord cu condiţiile de utilizare."
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Selectaţi aspectul interfeţei utilizator."
 
-#: TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Nu sunt de acord cu condiţiile de utilizare."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Vizualizare Avansată...\tCtrl+Shift+A"
 
-#: UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Proiectul este temporar inaccesibil"
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Afişează interfaţa grafică avansată."
 
-#: UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Pentru moment proiectul nu este accesibil.\n\nVă rugăm încercaţi mai tarziu."
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Configurează opţiunile de afişare şi setările proxy"
 
-#: UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Managerul de contact este pentur moment inaccesibil"
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Afişează mesajele de diagnostic."
 
-#: UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Pentru moment managerul de cont nu este accesibil.\n\nVă rugăm încercaţi mai tarziu."
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Vă rugăm specificaţi un cheie de cont pentru a continua."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Implicit"
 
-#: ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Cheie de Cont nevalidă; va rugăm să introduceţi o Cheie de Cont validă"
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Suspendă"
 
-#: ValidateAccountKey.cpp:82 ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Conflict de validare"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Suspendă Calculele"
 
-#: ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Vă rugăm specificaţi o adresă de email"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Reia Calculele"
 
-#: ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Adresă email invalidă; vă rugăm introduceţi o adresă de email validă"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Anunţuri"
 
-#: ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "URL absent"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Deschide o fereastră pentru a vedea anunţurile de la proiecte sau BOINC"
 
-#: ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Va rugăm specificaţi un URL.\nDe exemplu:\nhttp://www.example.com/"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Ajutor cu %s"
 
-#: ValidateURL.cpp:83 ValidateURL.cpp:87 ValidateURL.cpp:91
-#: ValidateURL.cpp:103 ValidateURL.cpp:107 ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "URL nevalid"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Se primesc anunţuri, vă rugăm aşteptaţi..."
 
-#: ValidateURL.cpp:84 ValidateURL.cpp:88 ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Va rugăm specificaţi un URL valid.\nDe exemplu:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Nu există anunţuri noi în acest moment."
 
-#: ValidateURL.cpp:104 ValidateURL.cpp:108
-#, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' nu conţine un nume de host valid."
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Închide"
 
-#: ValidateURL.cpp:111
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' nu conţine o cale de căutare validă."
+msgid "%s - Notices"
+msgstr "%s - Anunţuri"
 
-#: ViewMessages.cpp:84 ViewProjects.cpp:170 ViewStatistics.cpp:1978
-#: ViewTransfers.cpp:160 ViewWork.cpp:183
-msgid "Commands"
-msgstr "Comenzi"
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Pentru setări adiţionale, selectaţi Preferinţe Calcul în Vizualizarea Avanasată."
 
-#: ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Copiază toate mesajele"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB de spațiu pe disc"
 
-#: ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Copiază mesajele selectate"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Preferințe calcul"
 
-#: ViewMessages.cpp:106 ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Arată doar acest proiect"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Renunțați la toate preferințele locale și folosiți preferințele de pe web?"
 
-#: ViewMessages.cpp:107 ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Arată doar mesajele pentru proiectul selectat."
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
+msgid "Update"
+msgstr "Actualizare"
 
-#: ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Mesaje"
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
+msgid ""
+"Report all completed tasks, get latest credit, get latest preferences, and "
+"possibly get more tasks."
+msgstr "Raportează toate sarcinile incheiate, actualizează creditul, actualizeazaă preferinţele si, eventual, cere alte task-uri."
 
-#: ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Se copiază toate mesajele in clipboard..."
+#: clientgui/sg_ProjectCommandPopup.cpp:73
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
+msgid "Suspend tasks for this project."
+msgstr "Suspendă task-urile pentru acest proiect."
 
-#: ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Se copiază mesajele selectate în clipboard..."
+#: clientgui/sg_ProjectCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
+msgid "No new tasks"
+msgstr "Nici un task nou"
 
-#: ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Se filtrează mesajele..."
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
+msgid "Don't get new tasks for this project."
+msgstr "Nu lua task-uri noi pentru acest proiect."
 
-#: ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Arată toate mesajele"
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
+msgid "Reset project"
+msgstr "Resetează proiectul"
 
-#: ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Arată mesajele pentru toate proiectele."
-
-#: ViewNotices.cpp:58 sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Se primesc anunţuri, vă rugăm aşteptaţi..."
-
-#: ViewNotices.cpp:65 sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Nu există anunţuri noi în acest moment."
-
-#: ViewNotices.cpp:99 sg_BoincSimpleFrame.cpp:776
-msgid "Notices"
-msgstr "Anunţuri"
-
-#: ViewProjects.cpp:174 sg_ProjectCommandPopup.cpp:61
-msgid "Update"
-msgstr "Actualizare"
-
-#: ViewProjects.cpp:175 sg_ProjectCommandPopup.cpp:62
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr "Raportează toate sarcinile incheiate, actualizează creditul, actualizeazaă preferinţele si, eventual, cere alte task-uri."
-
-#: ViewProjects.cpp:181 ViewProjects.cpp:722 ViewWork.cpp:208 ViewWork.cpp:801
-#: sg_BoincSimpleFrame.cpp:757 sg_ProjectCommandPopup.cpp:67
-#: sg_ProjectCommandPopup.cpp:113 sg_TaskCommandPopup.cpp:66
-#: sg_TaskCommandPopup.cpp:106
-msgid "Suspend"
-msgstr "Suspendă"
-
-#: ViewProjects.cpp:182 ViewProjects.cpp:722 sg_ProjectCommandPopup.cpp:68
-#: sg_ProjectCommandPopup.cpp:114
-msgid "Suspend tasks for this project."
-msgstr "Suspendă task-urile pentru acest proiect."
-
-#: ViewProjects.cpp:188 ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:73
-#: sg_ProjectCommandPopup.cpp:121
-msgid "No new tasks"
-msgstr "Nici un task nou"
-
-#: ViewProjects.cpp:189 sg_ProjectCommandPopup.cpp:74
-msgid "Don't get new tasks for this project."
-msgstr "Nu lua task-uri noi pentru acest proiect."
-
-#: ViewProjects.cpp:195 sg_ProjectCommandPopup.cpp:79
-msgid "Reset project"
-msgstr "Resetează proiectul"
-
-#: ViewProjects.cpp:196 sg_ProjectCommandPopup.cpp:80
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Sterge toate fişierele si task-urile asociate acestui proiect şi preia noi task-uri.  Puteţi actualiza proiectul întâi, pentru a raporta sarcinile finalizate."
 
-#: ViewProjects.cpp:203 sg_ProjectCommandPopup.cpp:86
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Şterge acest proiect.  Task-urile în curs vor fi pierdute (folosiţi 'Actualizare' mai întâi pentru a raporta task-urile finalizate)."
 
-#: ViewProjects.cpp:209 ViewWork.cpp:222 sg_ProjectCommandPopup.cpp:91
-#: sg_TaskCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:96
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Proprietăţi"
 
-#: ViewProjects.cpp:210 sg_ProjectCommandPopup.cpp:92
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Afişează detaliile proiectului."
 
-#: ViewProjects.cpp:220 ViewStatistics.cpp:450
-msgid "Account"
-msgstr "Cont"
-
-#: ViewProjects.cpp:222
-msgid "Work done"
-msgstr "Lucru efectuat"
-
-#: ViewProjects.cpp:223
-msgid "Avg. work done"
-msgstr "Medie lucru efectuat"
-
-#: ViewProjects.cpp:225 ViewTransfers.cpp:188 ViewWork.cpp:234
-msgid "Status"
-msgstr "Stare"
-
-#: ViewProjects.cpp:250
-msgid "Projects"
-msgstr "Proiecte"
-
-#: ViewProjects.cpp:302
-msgid "Updating project..."
-msgstr "In curs de actualizare proiect..."
-
-#: ViewProjects.cpp:344
-msgid "Resuming project..."
-msgstr "Reluare proiect..."
-
-#: ViewProjects.cpp:348
-msgid "Suspending project..."
-msgstr "Suspendare proiect..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Reluare task-uri pentru acest proiect."
 
-#: ViewProjects.cpp:385
-msgid "Telling project to allow additional task downloads..."
-msgstr "Informare proiect pentru a accepta download-ul de task-uri adiţionale..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Permite noi task-uri"
 
-#: ViewProjects.cpp:389
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Informare proiect de a nu accepta task-uri adiţionale..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Acceptă preluarea de task-uri noi pentru acest proiect."
 
-#: ViewProjects.cpp:425
-msgid "Resetting project..."
-msgstr "Resetare proiect..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Nu prelua task-uri noi pentru acest proiect."
 
-#: ViewProjects.cpp:438 sg_ProjectCommandPopup.cpp:214
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Sunteti sigur ca doriţi să resetaţi proiectul '%s'?"
 
-#: ViewProjects.cpp:444 sg_ProjectCommandPopup.cpp:220
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Resetare Proiect"
 
-#: ViewProjects.cpp:483
-msgid "Removing project..."
-msgstr "Ştergere proiect..."
-
-#: ViewProjects.cpp:496 sg_ProjectCommandPopup.cpp:251
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Sunteti sigur ca doriţi să ştergeţi proiectul '%s'?"
 
-#: ViewProjects.cpp:502 sg_ProjectCommandPopup.cpp:257
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Şterge Proiect"
 
-#: ViewProjects.cpp:543 ViewWork.cpp:599
-msgid "Launching browser..."
-msgstr "Lansare browser..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Adaugă Proiect"
 
-#: ViewProjects.cpp:718 sg_ProjectCommandPopup.cpp:111
-msgid "Resume tasks for this project."
-msgstr "Reluare task-uri pentru acest proiect."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Sincronizează"
 
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:118
-msgid "Allow new tasks"
-msgstr "Permite noi task-uri"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Lucrul terminat pentru acest proiect"
 
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:119
-msgid "Allow fetching new tasks for this project."
-msgstr "Acceptă preluarea de task-uri noi pentru acest proiect."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Oferiţi-vă voluntar pentru unul sau toate din cele mai mult de 30 de proiecte în multe zone ale ştiinţei"
 
-#: ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:122
-msgid "Don't fetch new tasks for this project."
-msgstr "Nu prelua task-uri noi pentru acest proiect."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Sincronizează proiectele cu sistemul managerului de cont"
+
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Selectaţi un proiect pentru a avea acces la controalele de mai jos"
+
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Pagini Web Proiect"
+
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Comenzi Proiect"
+
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Deschide un meniu cu site-urile web pentru proiectul %s"
+
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Deschide un meniu cu comenzi care se pot aplica proiectului %s"
+
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Afişează graficele"
+
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Afişează graficele aplicaţiei într-o nouă fereastră."
+
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Suspendă acest task."
+
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Renunţă"
+
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Abandonaţi acest task. Nu veţi primi credit pentru el."
+
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Afişează detalii task."
+
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Reia lucrul pentru acest task."
+
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Suspendă lucrul pentru acest task."
+
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Sunteţi sigur că doriţi să renunţaţi la acest task '%s'?\n(Progres: %.1lf%%, Stare: %s)"
+
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Renunţă la task"
+
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Nu aveţi nici un proiect.  Vă rugăm Adăugaţi un Proiect."
+
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Indisponibil"
+
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Task-uri:"
+
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Selectaţi un task pentru a accesa"
+
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "De la:"
+
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Progresul acestui task"
+
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Comenzi Task"
+
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Deschideţi un meniu de comenzi care se pot aplica acestui task"
+
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Aplicaţia: %s"
+
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
+
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Aplicaţie: Indisponibil"
+
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Indisponibil"
+
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Scurs: %s"
 
-#: ViewProjects.cpp:1058
+#: clientgui/sg_TaskPanel.cpp:868
+#, c-format
+msgid "Remaining (estimated): %s"
+msgstr "Rămas (estimat): %s"
+
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Stare: %s"
+
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Se primeşte starea curentă."
+
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Se descarcă de lucru de la server."
+
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Procesare Suspendată:  Se Rulează Pe Baterii."
+
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Procesare Suspendată:  Utilizator Activ."
+
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Procesare Suspendată:  Utilizatorul a oprit procesarea."
+
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Procesare Suspendată:  Ora."
+
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Procesare Suspendată:  Rulează Benchmarks."
+
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Procesare suspendată: spațiu insuficient pe disc."
+
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Procesare Suspendată."
+
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "În aşteptarea contactării serverelor de proiect."
+
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Se primeşte starea curentă"
+
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Nu există lucru disponibil pentru procesare"
+
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Nu s-a putut conecta la nucleul clientului"
+
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Condiţii de Utilizare"
+
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Vă rugăm citiţi următoarele condiţii de utilizare:"
+
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Sunt de acord cu condiţiile de utilizare."
+
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Nu sunt de acord cu condiţiile de utilizare."
+
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Proiectul este temporar inaccesibil"
+
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Pentru moment proiectul nu este accesibil.\n\nVă rugăm încercaţi mai tarziu."
+
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Managerul de contact este pentur moment inaccesibil"
+
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Pentru moment managerul de cont nu este accesibil.\n\nVă rugăm încercaţi mai tarziu."
+
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Vă rugăm specificaţi un cheie de cont pentru a continua."
+
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Cheie de Cont nevalidă; va rugăm să introduceţi o Cheie de Cont validă"
+
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Conflict de validare"
+
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Vă rugăm specificaţi o adresă de email"
+
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Adresă email invalidă; vă rugăm introduceţi o adresă de email validă"
+
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "URL absent"
+
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Va rugăm specificaţi un URL.\nDe exemplu:\nhttp://www.example.com/"
+
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "URL nevalid"
+
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Va rugăm specificaţi un URL valid.\nDe exemplu:\nhttp://boincproject.example.com"
+
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' nu conţine un nume de host valid."
+
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' nu conţine o cale de căutare validă."
+
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Comenzi"
+
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Copiază toate mesajele"
+
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Copiază mesajele selectate"
+
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Arată doar acest proiect"
+
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Arată doar mesajele pentru proiectul selectat."
+
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Mesaje"
+
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Se copiază toate mesajele in clipboard..."
+
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Se copiază mesajele selectate în clipboard..."
+
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Se filtrează mesajele..."
+
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Arată toate mesajele"
+
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Arată mesajele pentru toate proiectele."
+
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Cont"
+
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Lucru efectuat"
+
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Medie lucru efectuat"
+
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Stare"
+
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Proiecte"
+
+#: clientgui/ViewProjects.cpp:1115
 msgid "Requested by user"
 msgstr "Cerut de utilizator"
 
-#: ViewProjects.cpp:1059
+#: clientgui/ViewProjects.cpp:1116
 msgid "To fetch work"
 msgstr "Pentru a prelua lucrări"
 
-#: ViewProjects.cpp:1060
+#: clientgui/ViewProjects.cpp:1117
 msgid "To report completed tasks"
 msgstr "Pentru a raporta task-urile finalizate"
 
-#: ViewProjects.cpp:1061
+#: clientgui/ViewProjects.cpp:1118
 msgid "To send trickle-up message"
 msgstr "Pentru a trimite un mesaj trickle-up"
 
-#: ViewProjects.cpp:1062
+#: clientgui/ViewProjects.cpp:1119
 msgid "Requested by account manager"
 msgstr "Cerut de managerul de cont"
 
-#: ViewProjects.cpp:1063
+#: clientgui/ViewProjects.cpp:1120
 msgid "Project initialization"
 msgstr "Iniţializare proiect"
 
-#: ViewProjects.cpp:1064
+#: clientgui/ViewProjects.cpp:1121
 msgid "Requested by project"
 msgstr "Cerut de proiect"
 
-#: ViewProjects.cpp:1065
+#: clientgui/ViewProjects.cpp:1122
 msgid "Unknown reason"
 msgstr "Motiv necunoscut"
 
-#: ViewProjects.cpp:1079
+#: clientgui/ViewProjects.cpp:1136
 msgid "Suspended by user"
 msgstr "Suspendat de utilizator"
 
-#: ViewProjects.cpp:1082
+#: clientgui/ViewProjects.cpp:1139
 msgid "Won't get new tasks"
 msgstr "Nu vor fi preluate task-uri noi"
 
-#: ViewProjects.cpp:1085
+#: clientgui/ViewProjects.cpp:1142
 msgid "Project ended - OK to remove"
 msgstr "Proiect terminat - OK pentru ştergere"
 
-#: ViewProjects.cpp:1088
+#: clientgui/ViewProjects.cpp:1145
 msgid "Will remove when tasks done"
 msgstr "Va fi şters când se finalizează task-urile"
 
-#: ViewProjects.cpp:1091
+#: clientgui/ViewProjects.cpp:1148
 msgid "Scheduler request pending"
 msgstr "Cerere către planificator în aşteptare"
 
-#: ViewProjects.cpp:1097
+#: clientgui/ViewProjects.cpp:1154
 msgid "Scheduler request in progress"
 msgstr "Cerere către planificator în curs"
 
-#: ViewProjects.cpp:1100
+#: clientgui/ViewProjects.cpp:1157
 msgid "Trickle up message pending"
 msgstr "Mesaj trickle-up în aşteptare"
 
-#: ViewProjects.cpp:1106
-msgid "Communication deferred "
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
 msgstr "Comunicarea este amânată "
 
-#: ViewResources.cpp:62
+#: clientgui/ViewResources.cpp:62
 msgid "Total disk usage"
 msgstr "Utilizare disc totală"
 
-#: ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Utilizare disc de către proiectele BOINC"
-
-#: ViewResources.cpp:116
-msgid "Disk"
-msgstr "Disc"
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Utilizare disc de către proiectele BOINC"
 
-#: ViewResources.cpp:249
+#: clientgui/ViewResources.cpp:225
 msgid "no projects: 0 bytes used"
 msgstr "nici un proiect: 0 bytes folosiţi"
 
-#: ViewResources.cpp:286
+#: clientgui/ViewResources.cpp:259
 msgid "used by BOINC: "
 msgstr "folosit de BOINC: "
 
-#: ViewResources.cpp:296
+#: clientgui/ViewResources.cpp:269
 msgid "free, available to BOINC: "
 msgstr "liber, disponibil pentru BOINC: "
 
-#: ViewResources.cpp:306
+#: clientgui/ViewResources.cpp:279
 msgid "free, not available to BOINC: "
 msgstr "liber, indisponibil pentru BOINC: "
 
-#: ViewResources.cpp:316
+#: clientgui/ViewResources.cpp:289
 msgid "free: "
 msgstr "liber: "
 
-#: ViewResources.cpp:326
+#: clientgui/ViewResources.cpp:298
 msgid "used by other programs: "
 msgstr "folosit de alte programe: "
 
-#: ViewStatistics.cpp:1205
+#: clientgui/ViewStatistics.cpp:1181
 msgid "User Total"
 msgstr "Total utilizator"
 
-#: ViewStatistics.cpp:1206
+#: clientgui/ViewStatistics.cpp:1182
 msgid "User Average"
 msgstr "Media utilizator"
 
-#: ViewStatistics.cpp:1207
+#: clientgui/ViewStatistics.cpp:1183
 msgid "Host Total"
 msgstr "Total host"
 
-#: ViewStatistics.cpp:1208
+#: clientgui/ViewStatistics.cpp:1184
 msgid "Host Average"
 msgstr "Media host"
 
-#: ViewStatistics.cpp:1355
+#: clientgui/ViewStatistics.cpp:1331
 #, c-format
 msgid "Last update: %.0f days ago"
 msgstr "Ultima actualizare: acum %.0f zile"
 
-#: ViewStatistics.cpp:1982
+#: clientgui/ViewStatistics.cpp:1956
 msgid "Show user total"
 msgstr "Afişează total utilizator"
 
-#: ViewStatistics.cpp:1983
+#: clientgui/ViewStatistics.cpp:1957
 msgid "Show total credit for user"
 msgstr "Afişează credit total pentru utilizator"
 
-#: ViewStatistics.cpp:1989
+#: clientgui/ViewStatistics.cpp:1963
 msgid "Show user average"
 msgstr "Afisează media utilizator"
 
-#: ViewStatistics.cpp:1990
+#: clientgui/ViewStatistics.cpp:1964
 msgid "Show average credit for user"
 msgstr "Afişează credit mediu pentru utilizator"
 
-#: ViewStatistics.cpp:1996
+#: clientgui/ViewStatistics.cpp:1970
 msgid "Show host total"
 msgstr "Afişează total host"
 
-#: ViewStatistics.cpp:1997
+#: clientgui/ViewStatistics.cpp:1971
 msgid "Show total credit for host"
 msgstr "Afişează credit total pentru gazdă"
 
-#: ViewStatistics.cpp:2003
+#: clientgui/ViewStatistics.cpp:1977
 msgid "Show host average"
 msgstr "Afişează media pentru host"
 
-#: ViewStatistics.cpp:2004
+#: clientgui/ViewStatistics.cpp:1978
 msgid "Show average credit for host"
 msgstr "Afişează credit mediu pentru gazdă"
 
-#: ViewStatistics.cpp:2013
+#: clientgui/ViewStatistics.cpp:1987
 msgid "< &Previous project"
 msgstr "< Proiectul &precedent"
 
-#: ViewStatistics.cpp:2014
+#: clientgui/ViewStatistics.cpp:1988
 msgid "Show chart for previous project"
 msgstr "Arată graficul pentru proiectul precedent"
 
-#: ViewStatistics.cpp:2019
+#: clientgui/ViewStatistics.cpp:1993
 msgid "&Next project >"
 msgstr "&Următorul proiect >"
 
-#: ViewStatistics.cpp:2020
+#: clientgui/ViewStatistics.cpp:1994
 msgid "Show chart for next project"
 msgstr "Arată graficul pentru proiectul următor"
 
-#: ViewStatistics.cpp:2026 ViewStatistics.cpp:2416
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
 msgid "Hide project list"
 msgstr "Ascunde lista proiecte"
 
-#: ViewStatistics.cpp:2027 ViewStatistics.cpp:2416
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
 msgid "Use entire area for graphs"
 msgstr "Foloseşte întreaga suprafaţă pentru grafice"
 
-#: ViewStatistics.cpp:2032
+#: clientgui/ViewStatistics.cpp:2006
 msgid "Mode view"
 msgstr "Mod vizualizare"
 
-#: ViewStatistics.cpp:2036
+#: clientgui/ViewStatistics.cpp:2010
 msgid "One project"
 msgstr "Un proiect"
 
-#: ViewStatistics.cpp:2037
+#: clientgui/ViewStatistics.cpp:2011
 msgid "Show one chart with selected project"
 msgstr "Arată un grafic cu proiectul selectat"
 
-#: ViewStatistics.cpp:2043
+#: clientgui/ViewStatistics.cpp:2017
 msgid "All projects (separate)"
 msgstr "Toate proiectele (separat)"
 
-#: ViewStatistics.cpp:2044
+#: clientgui/ViewStatistics.cpp:2018
 msgid "Show all projects, one chart per project"
 msgstr "Arată toate proiectele, un grafic pe proiect"
 
-#: ViewStatistics.cpp:2050
+#: clientgui/ViewStatistics.cpp:2024
 msgid "All projects (together)"
 msgstr "Toate proiectele (împreună)"
 
-#: ViewStatistics.cpp:2051
+#: clientgui/ViewStatistics.cpp:2025
 msgid "Show one chart with all projects"
 msgstr "Arată un grafic cu toate proiectele"
 
-#: ViewStatistics.cpp:2057
+#: clientgui/ViewStatistics.cpp:2031
 msgid "All projects (sum)"
 msgstr "Toate proiectele (sumă)"
 
-#: ViewStatistics.cpp:2058
+#: clientgui/ViewStatistics.cpp:2032
 msgid "Show one chart with sum of projects"
 msgstr "Arată un singur grafic cu suma proiectelor"
 
-#: ViewStatistics.cpp:2079
+#: clientgui/ViewStatistics.cpp:2053
 msgid "Statistics"
 msgstr "Statistici"
 
-#: ViewStatistics.cpp:2103 ViewStatistics.cpp:2124 ViewStatistics.cpp:2145
-#: ViewStatistics.cpp:2167 ViewStatistics.cpp:2188 ViewStatistics.cpp:2209
-#: ViewStatistics.cpp:2230 ViewStatistics.cpp:2251 ViewStatistics.cpp:2272
-#: ViewStatistics.cpp:2296
-msgid "Updating charts..."
-msgstr "Actualizare grafice..."
-
-#: ViewStatistics.cpp:2420
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Show project list"
 msgstr "Afişează lista de proiecte"
 
-#: ViewStatistics.cpp:2420
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Uses smaller area for graphs"
 msgstr "Foloseşte o suprafaţă mai mică pentru grafice"
 
-#: ViewTransfers.cpp:164
+#: clientgui/ViewTransfers.cpp:187
 msgid "Retry Now"
 msgstr "Reîncearcă"
 
-#: ViewTransfers.cpp:165
+#: clientgui/ViewTransfers.cpp:188
 msgid "Retry the file transfer now"
 msgstr "Reîncearcă acum transferul de fişier"
 
-#: ViewTransfers.cpp:171
+#: clientgui/ViewTransfers.cpp:194
 msgid "Abort Transfer"
 msgstr "Renunţă la transfer"
 
-#: ViewTransfers.cpp:172
+#: clientgui/ViewTransfers.cpp:195
 msgid "Abort this file transfer.  You won't get credit for the task."
 msgstr "Anulează acest transfer de fişier.  Nu veţi primi credit pentru acest task."
 
-#: ViewTransfers.cpp:183
+#: clientgui/ViewTransfers.cpp:210
 msgid "File"
 msgstr "Fişier"
 
-#: ViewTransfers.cpp:184 ViewWork.cpp:233
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
 msgid "Progress"
 msgstr "Progres"
 
-#: ViewTransfers.cpp:185
+#: clientgui/ViewTransfers.cpp:212
 msgid "Size"
 msgstr "Dimensiune"
 
-#: ViewTransfers.cpp:186
-msgid "Elapsed Time"
-msgstr "Timp scurs"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Scurs"
 
-#: ViewTransfers.cpp:187
+#: clientgui/ViewTransfers.cpp:214
 msgid "Speed"
 msgstr "Viteză"
 
-#: ViewTransfers.cpp:213
+#: clientgui/ViewTransfers.cpp:295
 msgid "Transfers"
 msgstr "Transferuri"
 
-#: ViewTransfers.cpp:280
+#: clientgui/ViewTransfers.cpp:372
 msgid "Network activity is suspended - "
 msgstr "Accesul la retea este suspendat - "
 
-#: ViewTransfers.cpp:282
+#: clientgui/ViewTransfers.cpp:374
 msgid ""
 ".\n"
 "You can enable it using the Activity menu."
 msgstr ".\nPuteţi să îl activaţi folosind meniul Activitate."
 
-#: ViewTransfers.cpp:285
+#: clientgui/ViewTransfers.cpp:377
 msgid "BOINC"
 msgstr "BOINC"
 
-#: ViewTransfers.cpp:292
-msgid "Retrying transfer now..."
-msgstr "Reiniţializare transfer..."
-
-#: ViewTransfers.cpp:330
-msgid "Aborting transfer..."
-msgstr "Renunţare la transfer..."
-
-#: ViewTransfers.cpp:343
+#: clientgui/ViewTransfers.cpp:431
 #, c-format
 msgid ""
 "Are you sure you want to abort this file transfer '%s'?\n"
@@ -3116,587 +3694,136 @@ msgid ""
 "will not receive credit for it."
 msgstr "Sunteţi sigur că doriţi să renunţaţi la acest transfer de fişier '%s'?\nNOTĂ: Renunţând la transfer se va invalida task-ul şi\nnu veţi primi credit pentur el."
 
-#: ViewTransfers.cpp:349
+#: clientgui/ViewTransfers.cpp:437
 msgid "Abort File Transfer"
 msgstr "Renunţă la transferul fişierului"
 
-#: ViewTransfers.cpp:780
+#: clientgui/ViewTransfers.cpp:849
 msgid "Upload"
 msgstr "Încarcă"
 
-#: ViewTransfers.cpp:780
+#: clientgui/ViewTransfers.cpp:849
 msgid "Download"
 msgstr "Descarcă"
 
-#: ViewTransfers.cpp:784
+#: clientgui/ViewTransfers.cpp:853
 msgid "retry in "
 msgstr "reincearcă în "
 
-#: ViewTransfers.cpp:786
+#: clientgui/ViewTransfers.cpp:855
 msgid "failed"
 msgstr "eşuat"
 
-#: ViewTransfers.cpp:789
+#: clientgui/ViewTransfers.cpp:858
 msgid "suspended"
 msgstr "suspendat"
 
-#: ViewTransfers.cpp:794
+#: clientgui/ViewTransfers.cpp:863
 msgid "active"
 msgstr "activ"
 
-#: ViewTransfers.cpp:796
+#: clientgui/ViewTransfers.cpp:865
 msgid "pending"
 msgstr "în aşteptare"
 
-#: ViewTransfers.cpp:803
+#: clientgui/ViewTransfers.cpp:871
 msgid " (project backoff: "
 msgstr " (revenire proiect: "
 
-#: ViewWork.cpp:187 ViewWork.cpp:777
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
 msgid "Show active tasks"
 msgstr "Arată task-urile active"
 
-#: ViewWork.cpp:188 ViewWork.cpp:778
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
 msgid "Show only active tasks."
 msgstr "Arată doar task-urile active."
 
-#: ViewWork.cpp:194 sg_TaskCommandPopup.cpp:60
-msgid "Show graphics"
-msgstr "Afişează graficele"
-
-#: ViewWork.cpp:195 sg_TaskCommandPopup.cpp:61
-msgid "Show application graphics in a window."
-msgstr "Afişează graficele aplicaţiei într-o nouă fereastră."
-
-#: ViewWork.cpp:201
+#: clientgui/ViewWork.cpp:225
 msgid "Show VM Console"
 msgstr "Afisează consola VM"
 
-#: ViewWork.cpp:202
+#: clientgui/ViewWork.cpp:226
 msgid "Show VM Console in a window."
 msgstr "Afişează Consola VM într-o fereastră."
 
-#: ViewWork.cpp:209
+#: clientgui/ViewWork.cpp:233
 msgid "Suspend work for this result."
 msgstr "Suspendare lucru pentru acest rezultat."
 
-#: ViewWork.cpp:215 sg_TaskCommandPopup.cpp:72
-msgid "Abort"
-msgstr "Renunţă"
-
-#: ViewWork.cpp:216
+#: clientgui/ViewWork.cpp:240
 msgid "Abandon work on the result. You will get no credit for it."
 msgstr "Abandonează lucrul la rezultat. Nu veţi primi credit pentru el."
 
-#: ViewWork.cpp:223 sg_TaskCommandPopup.cpp:79
-msgid "Show task details."
-msgstr "Afişează detalii task."
-
-#: ViewWork.cpp:235
-msgid "Elapsed"
-msgstr "Scurs"
-
-#: ViewWork.cpp:236
+#: clientgui/ViewWork.cpp:264
 msgid "Remaining (estimated)"
 msgstr "Rămas (estimat)"
 
-#: ViewWork.cpp:237
+#: clientgui/ViewWork.cpp:265
 msgid "Deadline"
 msgstr "Timp limită"
 
-#: ViewWork.cpp:264
+#: clientgui/ViewWork.cpp:351
 msgid "Tasks"
 msgstr "Sarcini"
 
-#: ViewWork.cpp:357
-msgid "Resuming task..."
-msgstr "Se reia task-ul..."
-
-#: ViewWork.cpp:360
-msgid "Suspending task..."
-msgstr "Se suspendă task-ul..."
-
-#: ViewWork.cpp:389
-msgid "Showing graphics for task..."
-msgstr "Afişare grafică pentru task..."
-
-#: ViewWork.cpp:426
-msgid "Showing VM console for task..."
-msgstr "Afişează consola VM pentru task..."
-
-#: ViewWork.cpp:479
+#: clientgui/ViewWork.cpp:564
 #, c-format
 msgid ""
 "Are you sure you want to abort this task '%s'?\n"
 "(Progress: %s, Status: %s)"
 msgstr "Sunteţi sigur că doriţi să renunţaţi la acest task '%s'?\n(Progres: %s, Stare: %s)"
 
-#: ViewWork.cpp:485
+#: clientgui/ViewWork.cpp:570
 #, c-format
 msgid "Are you sure you want to abort these %d tasks?"
 msgstr "Sunteţi sigur că doriţi să renunţaţi la aceste %d taskuri?"
 
-#: ViewWork.cpp:490 sg_TaskCommandPopup.cpp:256
-msgid "Abort task"
-msgstr "Renunţă la task"
-
-#: ViewWork.cpp:499
-msgid "Aborting task..."
-msgstr "Renunţare la task..."
-
-#: ViewWork.cpp:771
+#: clientgui/ViewWork.cpp:848
 msgid "Show all tasks"
 msgstr "Arată toate task-urile"
 
-#: ViewWork.cpp:772
+#: clientgui/ViewWork.cpp:849
 msgid "Show all tasks."
 msgstr "Arată toate task-urile."
 
-#: ViewWork.cpp:796 sg_TaskCommandPopup.cpp:103
-msgid "Resume work for this task."
-msgstr "Reia lucrul pentru acest task."
-
-#: ViewWork.cpp:802 sg_TaskCommandPopup.cpp:107
-msgid "Suspend work for this task."
-msgstr "Suspendă lucrul pentru acest task."
-
-#: WelcomePage.cpp:284
-msgid "Add project or account manager"
-msgstr "Adaugă proiect sau manager de cont"
-
-#: WelcomePage.cpp:288
-msgid "Add project or use BOINC Account Manager"
-msgstr "Adaugă proiect sau foloseşte un Manager de Cont BOINC"
-
-#: WelcomePage.cpp:297
-#, c-format
-msgid ""
-"If possible, add projects at the\n"
-"%s web site.\n"
-"\n"
-"Projects added via this wizard will not be\n"
-"listed on or managed via %s."
-msgstr "Dacă este posibil, adăugaţi proiecte prin\nweb site-ul %s .\n\nProiectele adăugate prin acest vrăjitor nu\no să fie listate sau gestionate prin %s."
-
-#: WelcomePage.cpp:313
-msgid ""
-"There are over 30 BOINC-based projects\n"
-"doing research in many areas of science,\n"
-"and you can volunteer for as many of them as you like.\n"
-"You can add a project directly,\n"
-"or use an 'Account Manager' web site to select projects."
-msgstr "Există mai mult de 30 de proiecte BOINC\nrealizând cercetări în multe zone ştiinţifice,\nşi puteţi să vă oferiţi voluntar pentru cât de multe doriţi.\nPuteţi adăuga un proiect direct,\nsau să folosiţi un web site 'Manager de Cont' pentru a selecta proiecte."
-
-#: WelcomePage.cpp:325
-msgid ""
-"You have chosen to add a new volunteer computing project or change which projects\n"
-"you contribute to.\n"
-"\n"
-"Some of these projects are run and managed by World Community Grid, while others\n"
-"are run and managed by other researchers or organizations. The BOINC software\n"
-"can divide your spare processing power among any combination of projects.\n"
-"\n"
-"Alternatively, if you have registered with a BOINC Account Manager, you can use\n"
-"this to choose which projects to support.\n"
-"\n"
-"Please choose which type of change you would like to make:\n"
-msgstr "Aţi ales să adăugaţi un nou proiect de calcule voluntare sau să modificaţi la ce proiecte\ncontribuiţi.\n\nUnele dintre aceste proiecte sunt rulate şi gestionate de World Community Grid, în timp ce\naltele sunt rulate şi gestionate de alte organizaţii. Programul BOINC poate\nîmpărţi puterea de procesare disponibilă în orice combinaţie de proiecte.\n\nAlternativ, dacă vâaţi înregistrat la un Manager de Cont BOINC, puteţi\nsă-l folosiţi pentru a alege ce proiecte susţineţi.\n\nVă r [...]
-
-#: WelcomePage.cpp:339
-msgid "Use a BOINC Account Manager"
-msgstr "Folosiţi un Manager de Cont BOINC"
-
-#: WelcomePage.cpp:352
-msgid "To continue, click Next."
-msgstr "Pentru a continua, apăsaţi Următorul."
-
-#: WelcomePage.cpp:358
-msgid "Add or change your World Community Grid projects"
-msgstr "Adaugă sau modifică proiecte World Community Grid"
-
-#: WelcomePage.cpp:361
-msgid "Add projects run by other researchers or organizations"
-msgstr "Adaugă proiecte rulate de alţi cercetători şi organizaţii"
-
-#: WizardAttach.cpp:634
+#: clientgui/WizardAttach.cpp:591
 msgid "Do you really want to cancel?"
 msgstr "Sunteţi sigur că doriţi să abandonaţi?"
 
-#: WizardAttach.cpp:635
+#: clientgui/WizardAttach.cpp:592
 msgid "Question"
 msgstr "Întrebare"
 
-#: sg_BoincSimpleFrame.cpp:149
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Vizualizare Avansată...\tCtrl+Shift+A"
-
-#: sg_BoincSimpleFrame.cpp:150
-msgid "Display the advanced graphical interface."
-msgstr "Afişează interfaţa grafică avansată."
-
-#: sg_BoincSimpleFrame.cpp:157
-msgid "Skin"
-msgstr "Skin"
-
-#: sg_BoincSimpleFrame.cpp:159
-msgid "Select the appearance of the user interface."
-msgstr "Selectaţi aspectul interfeţei utilizator."
-
-#: sg_BoincSimpleFrame.cpp:206
-#, c-format
-msgid "&%s"
-msgstr "&%s"
-
-#: sg_BoincSimpleFrame.cpp:390
-msgid "Default"
-msgstr "Implicit"
-
-#: sg_BoincSimpleFrame.cpp:759
-msgid "Suspend Computing"
-msgstr "Suspendă Calculele"
-
-#: sg_BoincSimpleFrame.cpp:760
-msgid "Resume Computing"
-msgstr "Reia Calculele"
-
-#: sg_BoincSimpleFrame.cpp:777
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Deschide o fereastră pentru a vedea anunţurile de la proiecte sau BOINC"
-
-#: sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Închide"
-
-#: sg_DlgMessages.cpp:389
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Anunţuri"
-
-#: sg_DlgPreferences.cpp:268
-msgid "This dialog controls preferences for this computer only."
-msgstr "Acest dialog controlează preferinţele doar pentru acest calculator."
-
-#: sg_DlgPreferences.cpp:273
-msgid "Click OK to set preferences."
-msgstr "Selectaţi OK pentru a seta preferinţele."
-
-#: sg_DlgPreferences.cpp:278
-msgid ""
-"Click Clear to restore web-based settings for all preferences listed below."
-msgstr "Apăsaţi Ştergere pentru a restaura setările de pe web pentru toate preferinţele listate mai jos."
-
-#: sg_DlgPreferences.cpp:285
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Pentru setări adiţionale, selectaţi Preferinţe Calcul în Vizualizarea Avanasată."
-
-#: sg_DlgPreferences.cpp:313
-msgid "Do work only between:"
-msgstr "Lucrează doar între:"
-
-#: sg_DlgPreferences.cpp:335
-msgid "Connect to internet only between:"
-msgstr "Se conectează la internet doar între:"
-
-#: sg_DlgPreferences.cpp:357 sg_DlgPreferences.cpp:374
-msgid "Use no more than:"
-msgstr "Nu folosi mai mult de:"
-
-#: sg_DlgPreferences.cpp:370
-msgid "of disk space"
-msgstr "spaţiu pe disc"
-
-#: sg_DlgPreferences.cpp:387
-msgid "of the processor"
-msgstr "din procesor"
-
-#: sg_DlgPreferences.cpp:391
-msgid "Do work while on battery?"
-msgstr "Lucrează când este pe baterii?"
-
-#: sg_DlgPreferences.cpp:404
-msgid "Do work after idle for:"
-msgstr "Lucrează când este nefolosit pentru:"
-
-#: sg_DlgPreferences.cpp:429
-msgid "Clear all local preferences listed above and close the dialog"
-msgstr "Şterge toate preferinţele locale listate deasupra şi închide dialogul"
-
-#: sg_DlgPreferences.cpp:602 sg_DlgPreferences.cpp:605
-#: sg_DlgPreferences.cpp:681 sg_DlgPreferences.cpp:685
-#: sg_DlgPreferences.cpp:697 sg_DlgPreferences.cpp:701
-#: sg_DlgPreferences.cpp:844 sg_DlgPreferences.cpp:855
-msgid "Anytime"
-msgstr "Oricând"
-
-#: sg_DlgPreferences.cpp:638
-msgid "100 MB"
-msgstr "100 MB"
-
-#: sg_DlgPreferences.cpp:639
-msgid "200 MB"
-msgstr "200 MB"
-
-#: sg_DlgPreferences.cpp:640
-msgid "500 MB"
-msgstr "500 MB"
-
-#: sg_DlgPreferences.cpp:641
-msgid "1 GB"
-msgstr "1 GB"
-
-#: sg_DlgPreferences.cpp:642
-msgid "2 GB"
-msgstr "2 GB"
-
-#: sg_DlgPreferences.cpp:643
-msgid "5 GB"
-msgstr "5 GB"
-
-#: sg_DlgPreferences.cpp:644
-msgid "10 GB"
-msgstr "10 GB"
-
-#: sg_DlgPreferences.cpp:645
-msgid "20 GB"
-msgstr "20 GB"
-
-#: sg_DlgPreferences.cpp:646
-msgid "50 GB"
-msgstr "50 GB"
-
-#: sg_DlgPreferences.cpp:647
-msgid "100 GB"
-msgstr "100 GB"
-
-#: sg_DlgPreferences.cpp:717
-#, c-format
-msgid "%d MB"
-msgstr "%d MB"
-
-#: sg_DlgPreferences.cpp:719
-#, c-format
-msgid "%4.2f GB"
-msgstr "%4.2f GB"
-
-#: sg_DlgPreferences.cpp:760
-#, c-format
-msgid "%d%%"
-msgstr "%d%%"
-
-#: sg_DlgPreferences.cpp:796
-msgid "0 (Run Always)"
-msgstr "0 (Rulează Permanent)"
-
-#: sg_DlgPreferences.cpp:799
-#, c-format
-msgid "%d"
-msgstr "%d"
-
-#: sg_DlgPreferences.cpp:1029
-msgid "Do you really want to clear all local preferences?\n"
-msgstr "Sunteţi sigur că doriţi să ştergeţi preferinţele locale?\n"
-
-#: sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Adaugă Proiect"
-
-#: sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Sincronizează"
-
-#: sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Lucrul terminat pentru acest proiect"
-
-#: sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Sincronizează proiectele cu sistemul managerului de cont"
-
-#: sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Selectaţi un proiect pentru a avea acces la controalele de mai jos"
-
-#: sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Pagini Web Proiect"
-
-#: sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Comenzi Proiect"
-
-#: sg_ProjectPanel.cpp:267
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Deschide un meniu cu site-urile web pentru proiectul %s"
-
-#: sg_ProjectPanel.cpp:269
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Deschide un meniu cu comenzi care se pot aplica proiectului %s"
-
-#: sg_TaskCommandPopup.cpp:67
-msgid "Suspend this task."
-msgstr "Suspendă acest task."
-
-#: sg_TaskCommandPopup.cpp:73
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Abandonaţi acest task. Nu veţi primi credit pentru el."
-
-#: sg_TaskCommandPopup.cpp:251
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Sunteţi sigur că doriţi să renunţaţi la acest task '%s'?\n(Progres: %.1lf%%, Stare: %s)"
-
-#: sg_TaskPanel.cpp:464
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Nu aveţi nici un proiect.  Vă rugăm Adăugaţi un Proiect."
-
-#: sg_TaskPanel.cpp:465
-msgid "Not available"
-msgstr "Indisponibil"
-
-#: sg_TaskPanel.cpp:476
-msgid "Tasks:"
-msgstr "Task-uri:"
-
-#: sg_TaskPanel.cpp:482
-msgid "Select a task to access"
-msgstr "Selectaţi un task pentru a accesa"
-
-#: sg_TaskPanel.cpp:493
-msgid "From:"
-msgstr "De la:"
-
-#: sg_TaskPanel.cpp:547
-msgid "This task's progress"
-msgstr "Progresul acestui task"
-
-#: sg_TaskPanel.cpp:565
-msgid "Task Commands"
-msgstr "Comenzi Task"
-
-#: sg_TaskPanel.cpp:566
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Deschideţi un meniu de comenzi care se pot aplica acestui task"
-
-#: sg_TaskPanel.cpp:701
-#, c-format
-msgid "Application: %s"
-msgstr "Aplicaţia: %s"
-
-#: sg_TaskPanel.cpp:724
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
-
-#: sg_TaskPanel.cpp:732
-msgid "Application: Not available"
-msgstr "Aplicaţie: Indisponibil"
-
-#: sg_TaskPanel.cpp:832
-msgid "Not Available"
-msgstr "Indisponibil"
-
-#: sg_TaskPanel.cpp:847
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Scurs: %s"
-
-#: sg_TaskPanel.cpp:861
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Rămas (estimat): %s"
-
-#: sg_TaskPanel.cpp:876
-#, c-format
-msgid "Status: %s"
-msgstr "Stare: %s"
-
-#: sg_TaskPanel.cpp:1223
-msgid "Retrieving current status."
-msgstr "Se primeşte starea curentă."
-
-#: sg_TaskPanel.cpp:1229
-msgid "Downloading work from the server."
-msgstr "Se descarcă de lucru de la server."
-
-#: sg_TaskPanel.cpp:1234
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Procesare Suspendată:  Se Rulează Pe Baterii."
-
-#: sg_TaskPanel.cpp:1236
-msgid "Processing Suspended:  User Active."
-msgstr "Procesare Suspendată:  Utilizator Activ."
-
-#: sg_TaskPanel.cpp:1238
-msgid "Processing Suspended:  User paused processing."
-msgstr "Procesare Suspendată:  Utilizatorul a oprit procesarea."
-
-#: sg_TaskPanel.cpp:1240
-msgid "Processing Suspended:  Time of Day."
-msgstr "Procesare Suspendată:  Ora."
-
-#: sg_TaskPanel.cpp:1242
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Procesare Suspendată:  Rulează Benchmarks."
-
-#: sg_TaskPanel.cpp:1244
-msgid "Processing Suspended."
-msgstr "Procesare Suspendată."
-
-#: sg_TaskPanel.cpp:1248
-msgid "Waiting to contact project servers."
-msgstr "În aşteptarea contactării serverelor de proiect."
-
-#: sg_TaskPanel.cpp:1252 sg_TaskPanel.cpp:1261
-msgid "Retrieving current status"
-msgstr "Se primeşte starea curentă"
-
-#: sg_TaskPanel.cpp:1256
-msgid "No work available to process"
-msgstr "Nu există lucru disponibil pentru procesare"
-
-#: sg_TaskPanel.cpp:1258
-msgid "Unable to connect to the core client"
-msgstr "Nu s-a putut conecta la nucleul clientului"
-
-#: wizardex.cpp:377 wizardex.cpp:553
+#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
 msgstr "&Următorul >"
 
-#: wizardex.cpp:383
+#: clientgui/wizardex.cpp:383
 msgid "< &Back"
 msgstr "< &Înapoi"
 
-#: wizardex.cpp:553
+#: clientgui/wizardex.cpp:553
 msgid "&Finish"
 msgstr "&Finalizare"
 
-#: mac/Mac_GUI.cpp:110
-msgid "Preferences…"
-msgstr "Preferinţe…"
-
-#: mac/Mac_GUI.cpp:122
+#: clientgui/mac/Mac_GUI.cpp:35
 msgid "Services"
 msgstr "Servicii"
 
-#: mac/Mac_GUI.cpp:144
+#: clientgui/mac/Mac_GUI.cpp:36
 #, c-format
 msgid "Hide %s"
 msgstr "Ascunde %s"
 
-#: mac/Mac_GUI.cpp:158
+#: clientgui/mac/Mac_GUI.cpp:37
 msgid "Hide Others"
 msgstr "Ascunde Restul"
 
-#: mac/Mac_GUI.cpp:172
+#: clientgui/mac/Mac_GUI.cpp:38
 msgid "Show All"
 msgstr "Arată Tot"
 
-#: mac/Mac_GUI.cpp:186
+#: clientgui/mac/Mac_GUI.cpp:39
 #, c-format
 msgid "Quit %s"
 msgstr "Închide %s"
diff --git a/locale/ro/BOINC-Project-Generic.po b/locale/ro/BOINC-Project-Generic.po
deleted file mode 100755
index d72a0dd..0000000
--- a/locale/ro/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6633 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-07-21 11:48+0000\n"
-"Last-Translator: Marius <marius.sirbu at outlook.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1405943302.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Română"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Romanian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Text îngroşat: [b]text[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Text italic: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Text subliniat: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citat: [quote]text[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Afişare cod: [code]code[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Listă: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Listă sortată: [list=]text[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Inserează imagine: [img]http://url_imagine[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-"Inserează URL: [url]http://url[/url] or [url=http://url]Text URL[/url]  "
-"(alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Culoare font"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-"Culoare font: [color=red]text[/color]  Pont: puteţi folosi şi color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Implicit"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Roşu Închis"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Roşu"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Portocaliu"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Maro"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Galben"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Verde"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Măsliniu"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Turcoaz"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Albastru"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Albastru Închis"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Indigo"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Violet"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Dimensiune font"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Dimensiune font: [size=x-small]text mic[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Mic"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Mare"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Închide toate tag-urile bbCode deschise"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Închide Tag-uri"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Cel mai vechi primul"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Cel mai nou primul"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Cele mai evaluate postări întâi"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Cele mai noi postări întâi"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Cele mai vizualizate întâi"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Cele mai multe postări întâi"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Caută cuvine în mesajele de pe forum"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Căutare în forumuri"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Căutare avansată"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Mesaje private"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Întrebări şi Răspunsuri"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Panouri de mesaje"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "Panou de mesaje %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Precedenta"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Următoarea"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Mesaj"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Trimite mesaj"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Trimite %1 un mesaj privat"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Înscris: %1"
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Postări: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Credit: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Nu aţi citit acest mesaj încă"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Necitit"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Mesaj %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "ascuns"
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Postat: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr " - în răspuns la "
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Editare"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Editează acest mesaj"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Ultima modificare: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-"Această postare nu este afişată deoarece expeditorul este în lista "
-"dumneavoastră 'ignoră'.  Selectaţi %1aici%2 pentru a vizualiza această "
-"postare"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Raportează această postare ca ofensivă"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Raportează ca ofensivă"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Evaluare: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "evaluează: "
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Selectaţi dacă vă place acest mesaj"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Evaluează +"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Apăsaţi dacă nu vă place acest mesaj"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Evaluează -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Răspunde"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Răspunde acestui mesaj"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Citează"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Răspunde citând acest mesaj"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Ascuns de un moderator"
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Postat %1 de %2"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Nu puteţi posta sau evalua mesaje până la %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Reguli:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Mai multe informaţii"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Dezascunde"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Dezascunde această postare"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Ascunde"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Ascunde această postare"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Mută"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Mută postarea într-un alt fir"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Blochează autor"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Votează pentru a bloca autorul"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Votează pentru a nu bloca autorul"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Începe vot pentru a bloca autorul"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "Doar membri echipei pot posta în panoul de mesaje al echipei"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-"Acest fir este blocat. Doar moderatorii forumului şi administratorii au "
-"permisiunea să posteze acolo."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Nu se poate posta într-un fir ascuns."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Fir"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Postări"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Vizualizări"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Ultima postare"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Postări noi în firul %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Postări noi în firul subscris"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Există postări noi în firul '%1'"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Marchează toate firele ca fiind citite"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Marchează toate firele în toate panourile de mesaje ca fiind citite."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Nici o gazdă"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Indisponibil"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Acasă"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Serviciu"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Şcoală"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Telefon mobil"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Actualizează"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Informaţii calculator"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "Adresă IP"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(aceeaşi ultimel %1 dăţi)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Adresă IP externă"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Arată adresa IP"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Nume domeniu"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr "Nume produs"
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Timp Local Standard"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 ore"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Proprietar"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonim"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Creat"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Credit total"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Credit mediu"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Credit multi proiect"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Tip CPU"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Număr procesoare"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Coprocesoare"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Sistem de Operare"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Versiune BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Memorie"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Spaţiu swap"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Spaţiu disc total"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Spaţiu Disc Disponibil"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Viteză virgulă mobilă măsurată"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 milioane operaţii/secundă"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Viteză întregi măsurată"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Viteza medie încărcare"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/sec"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Necunoscut"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Viteză medie descărcare"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr ""
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 zile"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Detalii aplicaţie"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Afişează"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Task-uri"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "De câte ori clientul a contactat serverul"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Ultima dată contact cu serverul"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% timp BOINC rulează"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Când BOINC rulează, % din timp gazda are conexiune la Internet"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Când BOINC rulează, % din timp lucrul este permis"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Eficienţă medie CPU"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Factor corecţie durată task"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Locaţie"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Şterge acest calculator"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Unifică înregistrări duplicate ale acestui calculator"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Unifică"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Ultimul contact"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informaţii calculator"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Loc"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Credit mediu"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Credit mediu recent"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Sistem operare"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 procesoare)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Detalii"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Statistici multi proiect:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr ""
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Gazda %1 are un SO incompatibil:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Gazda %1 are un CPU incompatibil:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "aceeaşi gazdă"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Nu se pot unifica gazdele %1 şi %2 - sunt incompatibile"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Se unifică gazda %1 cu gazda %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Nu s-a putut actualiza creditul noului calculator"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Nu s-au putut actualiza rezultatele"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Nu s-a putut retrage calculatorul vechi"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Calculator vechi retras %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Afişează:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Toate calculatoarele"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Doar calculatoare active în ultimele 30 de zile"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID calculator"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Nume"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "Versiune<br>BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Unifică după nume calculatoarele"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "Setări implicite navigator"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Comentariu"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Ştirile sunt disponibile ca %sfeed RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Primite"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Scrie"
-
-# 80%
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Trimite mesaj privat"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Previzualizare"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "nici un astfel de mesaj"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Către"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "ID-uri utilizator sau nume utilizatori unice, separate cu virgule"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Subiect"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Trimite mesaj"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "ţi-a trimis un mesaj privat; subiect:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Mesaje privat %1 de la %2, subiect:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Nu s-a putut crea mesajul"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Nu avetţi voie să trimiteţi mesaje private atât de des. Vă rugăm aşteptaţi "
-"înainte de a trimite alte mesaje."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "necitit"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Pentru notificări prin email %1editaţi preferinţele comunităţii%2"
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Mesaj privat"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Suspendă lucrul când calculatorul este alimentat pe baterii? %1 Contează "
-"doar pentru calculatoarele portabile %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Suspendă lucrul când calculatorul este folosit?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Suspendă lucrul GPU când calculatorul este folosit? %1 Impus de versiunea "
-"6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr ""
-"'Folosit' înseamnă că nu există activitate cu mouse/tastatura în ultimele"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minute"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Suspendă lucrul dacă nu este activitate cu mouse/tastatura în ultimele %1 "
-"Necesar pentru ca unele calculatoare să intre în modul de consum economic %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Suspendă lucrul când utilizarea CPU non-BOINC este peste %1 0 înseamnă fără "
-"restricţie<br>Impus de versiunea 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Lucrează doar între orele %1 Nici o restricţie dacă sunt egale %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Lasă task-urile în memorie când sunt suspendate? %1 Task-urile suspendate "
-"vor consuma spaţiu swap dacă 'da' %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Comută între task-uri la fiecare %1 Recomandat: 60 de minute %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Pe multiprocesor, foloseşte cel mult"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesoare"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Pe sisteme multiprocesor, foloseşte cel mult %1 Impus de versiunea 6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% din procesoare"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Foloseşte cel mult %1 Poate fi folosit pentru a reduce încălzirea CPU %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% din timp CPU"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disc: utilizează cel mult"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr ""
-"Disc: păstrează liber cel puţin %1 Valorile mai mici decât %2 sunt ignorate "
-"%3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% din total"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr ""
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "secunde"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Spaţiu swap: foloseşte cel mult"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Memorie: când calculatorul este folosit, foloseşte cel mult"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Memorie: când calculatorul nu este folosit, foloseşte cel mult"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-"Menţine suficiente task-uri pentru a fi ocupat cel puţin%1(max 10 zile).%2"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "zile"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... şi cel mult pentru încă"
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Confirmare înainte de conectarea la Internet? %1 Contează doar dacă aveţi o "
-"conexiune prin modem, ISDN sau VPN %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Deconectare la finalizare? %1 Contează doar dacă aveţi o conexiune prin "
-"modem, ISDN sau VPN %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Viteză maximă descărcare:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbytes/sec"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Viteză maximă încărcare:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Foloseşte reţeaua doar între orele"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Transferă cel mult %1 Impus din versiunea 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mbytes la fiecare"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Accelerează task-urile GPU prin dedicare a câte unui CPU fiecăreia?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Foloseşte CPU %1 Impus de versiunea 6.10+ %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Foloseşte GPU ATI %1 Impus de versiunea 6.10+ %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Foloseşte GPU NVIDIA %1 Impus de versiunea 6.10+ %2"
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Foloseşte GPU Intel %1 Impus de versiunea 7.2+ %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Rulează aplicaţii de test? %1 Acest lucru ajută la dezvoltarea aplicaţiilor, "
-"dar poate cauza ca unele sarcini să eşueze pe calculatorul dumneavoastră %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Emailurile vor fi trimise de la %1; asiguraţi-vă că filtrul spam acceptă "
-"această adresă."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Este OK pentru %1 şi echipa dumneavoastră (dacă aveţi) să vă trimită "
-"emailuri?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Permiteţi %1 să afişeze calculatoarele dumneavoastră pe web site?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Utilizare disc şi memorie"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Utilizare procesor"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Utilizare reţea"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr ""
-"Aceste preferinţe se aplică la toate proiectele BOINC în care participaţi."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr ""
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "da"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "nu"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "fără limită"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Adaugă"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Şterge"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Se calculează"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Preferinţe separate pentru %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Editează preferinţe"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Adaugă preferinţe separate pentru %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr ""
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Preferinţe combinate"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Setări specifice proiectului"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Preferinţe primare (implicite)"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Editează preferinţele %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Acestea se aplică tuturor proiectelor BOINC în care participaţi."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-"Pe calculatoarele care participă în mai multe proiecte, vor fi folosite "
-"preferinţele cele mai recent modificate."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Aceste preferinţe nu se aplică dispozitivelor Android."
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Ultima modificare a preferinţelor:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Adaugă preferinţe"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Actualizează preferinţe"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Şterge locaţia implicită a calculatorului"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "şi"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Profilul dumneavoastră va deveni vizibil altor persoane imediat ce a fost "
-"aprobat de proiect. Acest lucru poate dura şi câteva zile."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Profilul dumneavoastră a fost marcat ca inacceptabil. Nu este vizibil altor "
-"persoane. Vă rugăm să-l modificaţi."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Eroare baza de date"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Pentru prevenirea mesajelor nesolicitate, profilele utilizatorilor cu un "
-"credit mediu mai mici de %1 sunt afişate numai utilizatorulor autentificaţi. "
-"Ne cerem scuze pentru inconvenient."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr ""
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Nu există un profil pentru acel ID utilizator."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Modificaţi-vă profilul"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr ""
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Recomandă acest profil pentru Utilizatorul Zilei:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Îmi %1place%2 acest profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Alertează administratorii pentru un profil ofensiv:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Îmi %1displace%2 acest profil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Platformă anonimă"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "GPU ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "GPU Intel"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Nu este în BD"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "în aşteptare"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Toate"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "În curs"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Validare în aşteptare"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Validare neconcludentă"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Valid"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Invalid"
-
-# 83%
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Eroare"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Inactiv"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Netrimise"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Finalizat, aşteaptă validare"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Finalizat şi validat"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Finalizat, marcat ca invalid"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Finalizat, nu se poate valida"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Finalizat, validare neconcludentă"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Finalizat, prea târziu pentru validare"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Finalizat"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Nu s-a putut trimite"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Anulat de server"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Nu s-a pornit până la termenul limită - anulat"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Eroare la descărcare"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Eroare de calcul"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Eroare la încărcare"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Abandonat de utilizator"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Încărcare nereuşită"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Prea târziu - fără răspuns"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Nu a fost nevoie"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Eroare de validare"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Abandonat"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Peste"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Succes"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Eroare calcul"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Rezultat redundant"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Fără răspuns"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nou"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Se descărcă"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Se procesează"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Eroare calcul"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Se încarcă"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Finalizat"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Initial"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Nu este necesar"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Eroare unitate de lucru - se sare peste verificare"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Verificat, dar nu există încă un consens"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Task-ul a fost raportat prea târziu pentru validare"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Nu s-a putut trimite rezultatul"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Prea multe erori (poate este un bug)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Prea multe rezultate (poate fi non deterministic)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Prea multe rezultate în total"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Unitate de lucru anulată"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Eroare Nerecunoscută: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Nume task"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "apasă pentru detalii"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Arată ID-urile"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Arată nume"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Task"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Unitate de lucru"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Calculator"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Trimis"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Timp raportat<br/>sau timp limită"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "explică"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Stare"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Timp rulare<br />(sec)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Timp CPU<br />(sec)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Credit"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Aplicaţie"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Unitate de lucru"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Primit"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Stare server"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Rezultat"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Stare client"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Stare ieşire"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Timp limită raportare"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Timp rulare"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Timp CPU"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Stare validare"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Versiune aplicaţie"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Fişiere ieşire"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Ieşire stderr"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Stare"
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr "Nume task:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Criteriu căutare (folosiţi unul sau mai multe)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Cuvinte cheie"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Caută echipe cu aceste cuvinte în nume sau descriere"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Ţara"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Tip echipă"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Arată numai echipele active"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Caută"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr ""
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr ""
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Solicitat de dumneavoastră"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "timp limită răspuns fondator este %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Nimic"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Iniţiază cerere"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Amânat"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Informaţii echipă"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Descriere"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Site web"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Statistici multi-proiect"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tip"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Panou de mesaje"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Fire"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Alăturați-vă acestei echipe"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Nu acceptă noi membri"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr ""
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Răspunde până la %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr ""
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Membrii"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Fondator"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Administratori"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Membrii noi în ultima zi"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Număr total membrii"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "vizualizare"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Membrii activi"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Membrii cu credit"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Administrator"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Precedenţii %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Următorii %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Nu există echipa."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr ""
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Această operaţiune necesită privilegii de administrator echipă"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Nume echipă, versiune text"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Nu folosiţi tag-uri HTML."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Nume echipă, versiune HTML"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Puteţi folosi %1un număr limitat de tag-uri HTML%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Dacă nu ştiţi HTML, lăsaţi această căsuţă liberă."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "URL al paginii web a echipei, dacă există"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "fără \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr ""
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Descrierea echipei"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Acceptă noi membrii?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Profil utilizator"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Proiecte în care participaţi"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Proiecte în care %1 participă"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Proiect"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Selectaţi pentru pagina utilizatorului"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Începând cu"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr ""
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Calculatoare în acest cont"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Vizualizări"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "ID multi-proiect"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Statistici multi-proiect"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Cont"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Echipă"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Multi-proiect"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistici pe telefonul mobil"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Tip notificare necunoscut: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Informaţii cont"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Adresă email"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Cod poştal"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 membru din"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Modifică"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "adresă email"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "parolă"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "alte informaţii cont"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "ID utilizator"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr ""
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Chei cont"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Preferinţe"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Când şi cum foloseşte BOINC calculatorul dumneavoastră"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Preferinţe calcul"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr ""
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferinţe comunitate"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Preferinţe pentru acest proiect"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "Preferinţe %1"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Comunitate"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Şterge"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Crează"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 postări"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Anunţuri"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Părăseşte echipa"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administrează"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr ""
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Membru al echipei"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "găseşte o echipă"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Fondator dar nu membru al"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Caută prieteni"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Prieteni"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Calculatoare"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donator"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Contact"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Această persoană este un prieten"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Anulează prietenie"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Cerere în aşteptare"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Adaugă prieten"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr "numele de utilizator nu poate avea spaţii la început sau la sfârşit"
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr "numele de utilizator nu trebuie să fie gol"
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr "numele de utilizator nu poate conţine tag-uri HTML"
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "ieşire"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "autentificare"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Autentificare"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Crează un cont"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Pagina stare server"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-"O eroare de bază de date a apărut în timp ce se procesa solicitarea "
-"dumneavoastră; vă rugăm încercaţi mai târziu."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Nu s-a putut onora cererea"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "ore"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "sec"
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Vizualizaţi profilul lui %1"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr ""
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "Proiectul este oprit pentru mentenanţă"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr ""
-"%1 este temporar oprit pentru mentenanţă.  Vă rugăm încercaţi mai târziu."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Nu s-a putut conecta la baza de date - vă rugăm încercaţi mai târziu"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Nu s-a putut selecta baza de date - vă rugăm încercaţi mai târziu"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Rămâneţi autentificat pe acest calculator"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Finalizare setare cont"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Vă identifică pe site-ul nostru. Folosiţi numele real sau o poreclă."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Selectaţi ţara pe care doriţi să o reprezentaţi, dacă doriţi."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Cod poştal sau ZIP"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opţional"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Trebuie să furnizaţi un nume pentru cont"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Tag-urile HTML nu sunt permise în nume"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Adaugă %1 preferinţe pentru %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Aplicaţii"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platformă"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Versiune"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Timp instalare"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Etichete BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Exemple"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Îngroşat"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Italic"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Subliniat"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr ""
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Text mare"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Text roşu"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "link la site web"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Text citat"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "folosiţi pentru a afişa o imagine"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Fragment cod aici"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "folosit pentru a afişa cod"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Text preformatat"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Element 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "Element 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Participanţi"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Lucrează"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Contul dumneavoastră"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "vizualizaţi statistici, modificaţi preferinţe"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Echipe"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "creaţi sau intraţi într-o echipă"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Utilizatorul zilei"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Stare server"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profile"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Căutare utilizator"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Statistici"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Top participanţi"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Top calculatoare"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Top echipe"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Top modele GPU"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Limbă"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Citiţi regulile şi politicile noastre"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Nu se poate crea contul"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Apăsaţi butonul <b>Înapoi</b> în navigator pentru a încerca din nou."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-"Răspunsul dumneavoastră reCAPTCHA nu a fost corect. Vă rugăm încercaţi din "
-"nou."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Trebuie să furnizaţi un cod de invitaţie pentru a crea un cont."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Codul de invitaţie furnizat nu este valid."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr ""
-"Adresă de email invalidă: trebuie să introduceţi o adresă validă de forma "
-"nume at domeniu"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Există deja un cont cu acea adresă de email."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Parolele noi sunt diferite"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "Parolele trebuie să conţină doar caractere ASCII."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-"Noua parolă este prea scurtă: lungimea minimă a parolei este de %1 "
-"caractere."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Nu s=a putut crea contul"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Acest cont va aparţine echipei %1 şi va avea preferinţele de proiect ale "
-"fondatorului."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Cod Invitaţie"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Un cod valid de invitaţie este necesar pentru a crea un cont."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Adresă Email"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Trebuie să fie o adresă validă de forma 'nume at domeniu'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Parolă"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Trebuie să aibă minim %1 caractere"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Confirmaţi parola"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Vă rugăm introduceţi cuvintele din imagine"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Crează cont"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Poză"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Poza profilului dumneavoastră este prezentată în partea stângă."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Pentru a înlocui, apăsați butonul \"Răsfoiește\" și selectați un fișier JPEG "
-"sau PNG (%1 sau mai puțin)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Pentru a şterge din profilul dumneavoastră, selectaţi această căsuţă:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Limbă"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Selectaţi limba în care este scris profilul dumneavoastră:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Trimite profil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Vă rugăm introduceţi cuvintele din imagine."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Crează/modifică profil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Formatul imaginii încărcate nu este suportat."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-"Răspunsul dumneavoastră ReCaptcha nu a fost corect.  Vă rugăm încercaţi din "
-"nou."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr ""
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Nu s-a putut actualiza profilul: eroare bază de date"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Nu s-a putut crea profilul: eroare bază de date"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profil salvat"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr ""
-"Felicitări ! Profilul dumneavoastră a fost înregistrat cu succes în baza "
-"noastră de date."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Vizualizaţi profilul dumneavoastră%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Crează un profil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nu s-a putut şterge contul"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Cont şters"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Contul dumneavoastră a fost şters."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Confirmaţi ştergere cont"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Sigur doriți să ștergeți acest cont?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Da"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Ştergeţi acest cont"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nu"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Nu ştergeţi acest cont"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "nu s-a putut şterge profilul - vă rugăm încercaţi mai târziu"
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Confirmare Ştergere"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Profilul dumneavoastră a fost şters."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Confirmare ştergere profil"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Sunteți sigur?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-"Daca sunteţi sigur, apăsaţi 'Da'\n"
-"pentru a vă şterge profilul din baza noastră de date."
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Șterge profilul meu"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Nu ştergeţi profilul"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Trabzacţie Finalizată"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Vă mulţumim pentru donaţie!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Donaţie dumneavoastră a fost finalizată."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Aţi anulat donaţia dumneavoastră."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Acest proiect nu acceptă donaţii."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 donaţii"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-"Acest proiect acceptă donaţii prin\n"
-"%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Suma pe care doriţi să o donaţi"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Valoare estimată în"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Donaţie anonimă"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-"Pentru a asocia donaţia cu ID-ul dumneavoastră de utilizator, vă rugăm să vă "
-"autentificaţi."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Continuaţi"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Donaţiile sunt acceptate prin"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Descarcă programe adiţionale BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Puteţi descărca aplicaţii în mai multe categorii."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr ""
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Instrucţiuni pentru instalarea şi rularea BOINC sunt %1aici%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Această listă este gestionată central pe %1siteul web BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Schimbă adresa de email a contului"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Noua adresă de email '%1' este invalidă."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-"Noua adresă de email este aceeaşi cu adresa existentă. Nu s-a schimbat "
-"nimic."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Există deja un cont cu această adresă de email"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Parolă greşită."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Adresa de email a contului dumneavoastră este acum %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Vă rugăm %1validaţi adresa de email%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr ""
-"Nu putem actualiza adresa dumneavoastră de email din cauza unei probleme a "
-"bazei de date.  Vă rugăm încercaţi mai târziu."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Modifică adresă email"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Modifică adresa de email a contului dumneavoastră"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Adresă email nouă"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Trebuie să fie o adresă validă de forma 'nume at domeniu'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Fără parolă?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Confirmaţi resetare"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-"Această acţiune va şterge orice modificări aşi făcut în preferinţele "
-"comunităţii. Pentru anulare, apăsaţi butonul Înapoi al navigatorului."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Şterge preferinţe"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Eroare: Tip de fişier nepotrivit, sunt suportate doar PNG şi JPEG."
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-"Semnătura dumneavoastră a fost prea lungă, vă rugăm să nu depăşiţi 250 de "
-"caractere."
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Nu există utilizatorul: %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "Pe pagina Contului meu (fără email)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Imediat, pe email"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Într-un singur mail zilnic"
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPG sau PNG. Dimensiunea: cel mult 4 KB, 100x100 pixeli"
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Nu folosi avatar"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Vizualizare avatar"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Aşa va arăta avatarul dumneavoastră"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "caractere rămase"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Adaugă semnătura implicit"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Vizualizare semnătură"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Aşa va arăta semnătura dumneavoastră în forumuri"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Ascunde semnături"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Arată imagini ca legături"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Evidenţiază utilizatorii speciali"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr "Afișează atâtea mesaje pe pagină"
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Cum să se sorteze"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Fire:"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Postări:"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Filtrare mesaje"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Utilizatori filtraţi"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "ID utilizator (De exemplu: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Adaugă utilizator la filtru"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Apăsaţi aici pentru a actualiza preferinţele"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Resetează"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Sau apăsaţi aici pentru a reseta preferinţele la implicit"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Cheie cont invalidă"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Nici un cont cu acea adresă de email nu a fost găsit"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Parolă greşită"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Schimbă parola"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Parola dumneavoastră a fost schimbată."
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr ""
-"Nu putem să actualizăm parola dumneavoastră din cauza unei probleme de baze "
-"de date. Vă rugăm încercaţi mai târziu."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Puteţi să vă identificaţi folosind fie"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "adresa dumneavoastră de email şi vechea parolă"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "cheia contului dumneavoastră"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Parola curentă"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>FIE</b>: Cheia contului"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Obţineţi cheia contului prin email"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Parola nouă"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Parola nouă, din nou"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr ""
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Trebuie să furnizaţi un nume pentru contul dumneavoastră."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Nu s-a putut actualiza informaţia utilizator."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Editează informaţii cont"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr ""
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Cod poştal %1 Opţional%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Actualizează informaţii"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Stare server"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "În curs"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Rezultate"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Un calculator a finalizat şi raportat task-ul cu succes."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Eroare client"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Task-ul a fost trimis unui calculator şi a apărut o eroare."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-"Task-ul a fost trimis unui calculator şi nu s-a primit nici un răspuns până "
-"la termenul limită."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-"Task-ul nu a fost trimis unui calculator deoarece s-au finalizat un număr "
-"suficient de task-uri pentru această unitate de lucru."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Stare client"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Calculatorul încă nu a finalizat acest task."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Calculatorul a finalizat acest task cu succes."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "A apărut o eroare în timpul calculelor."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Timp raportat sau timp limită"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Deja raportat"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Data/ora când a fost raportat"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Nu s-a raportat încă, termenul limită în viitor"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Termenul limită, arătat în verde."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Nu s-a raportat încă, termenul limită în trecut"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Termenul limită, arătat în roşu."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Câmp necunscout"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Previzualizare email"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Email-ul dumneavoastră va apare după cum urmează:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Trimite email"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Se trimite email"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "email trimis cu succes la %1"
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr "nu s-a reuşit trimiterea email-ului către %1: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Mulţumim că le-aţi spus prietenilor despre %1"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Spune prietenilor tăi despre %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Numele dumneavoastră:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Adresa dumneavoastră de email:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Numele prietenului:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Adresa de email a prietenului:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr ""
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Trimite"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Categorie"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Obscen"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Altele"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Motiv"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr ""
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Editează acest mesaj"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Titlu"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Adaugă semnătura mea la acest răspuns"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Nu este vizibil pentru dumneavoastră"
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr ""
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr "Fir nou"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr ""
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr ""
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr "Acest fir este ascuns"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "necitit/blocat"
-
-# 81%
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Nu aţi citit acest mesaj încă"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr ""
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr "Acest fir este blocat"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr ""
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr "Acest fir este blocat"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "blocat"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Aţi citit acest fir"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "citit"
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Întrebări şi răspunsuri"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Subiect"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Întrebări"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Discuţie între membrii %1"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Panou de mesaje %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Spam comercial"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 ore"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 zi"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 săptămână"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 săptămâni"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 lună"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Pentru totdeauna"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Nu se poate muta într-un alt tip de categorie"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Nu se poate muta într-o altă categorie"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Acţiune nereuşită: posibil problemă cu baza de date"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "neautorizat"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr "Forum curent"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Forum destinaţie"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Titlu nou:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-# 84%
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Crează un nou fir"
-
-# 84%
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Crează un nou fir"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Arată acest element ca Anunţ în BOINC Manager"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Această funcţie este dezactivată de proiect"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr ""
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr ""
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Înapoi la fir"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr ""
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr ""
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Vot Înregistrat"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr ""
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr "Mesaj:"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr "răspunde la %1ID Mesaj%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr ""
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr "Adaugă semnătura mea la acest răspuns"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr ""
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr ""
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr ""
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr ""
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr ""
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr ""
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr "Opţiuni:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Căutare în forum"
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr "Expresia căutată"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Caută cuvinte cheie:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr ""
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "De exemplu: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Opţiuni căutare"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Limite căutare"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Caută cel mult acest număr de zile înapoi în timp"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 luni"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 an"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Sortează dupa"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Reultate căutare forum"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr ""
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr ""
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr ""
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr ""
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr ""
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr ""
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Întrebarea mea a primit răspuns"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Am şi eu aceeaşi întrebare"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Adăugaţi un nou mesaj în acest fir"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr ""
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr ""
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr ""
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr ""
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr ""
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr ""
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr ""
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Mută acest fir în alt forum"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Modifică titlul"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Modifică titlul firului"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr "Nu exporta"
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Sortează"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr "Stare fir actualizată"
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr "Starea a fost actualizată."
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr ""
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Deja prieteni"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Ați cerut prietenia lui %1 pe %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Această cerere încă aşteaptă confirmarea."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 nu acceptă cererile de prietenie de la dumneavoastră"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr ""
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Adaugă prieten"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Adăugaţi un mesaj opţional aici:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Cerere prietenie trimisă"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr ""
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr ""
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Cerere prietenie"
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr ""
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 spune: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Acceptă prietenia"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Apăsați acceptă dacă %1 este de fapt un prieten"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Refuză"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Apăsați refuză dacă %1 nu este un prieten"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Prietenie confirmată"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Prietenia dumneavoastră cu %1 a fost confirmată."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Prietenie refuzată"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Ați refuzat prietenia cu %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Notificarea nu s-a găsit"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Prieten confirmat"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Acum sunteți prieten cu %1."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Anulează prietenie?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Sunteți siguri că doriți să anulați prietenia cu %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Rămâneți prieteni"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Prietenie anulată"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Prietenia dumneavoastră cu %1 a fost anulată."
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr ""
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-"Deschideţi fişierul într-un editor text ca Notepad. Veţi vedea ceva de "
-"similar"
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Bine aţi venit la %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr ""
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "platformă anonimă"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Versiune aplicaţie lipsă"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Aplicaţie lipsă"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Platformă lipsă"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Număr task-uri finalizate"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Număr maxim task-uri pe zi"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Număr de task-uri azi"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Task-uri valide consecutive"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr ""
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Detalii aplicaţie pentru gazda %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr ""
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Şterge înregistrarea calculatorului"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Înregistrare ştearsă."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Înapoi la lista calculatoarelor dumneavoastră"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Unifică înregistrări calculator"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Unifică calculatoare"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Arată detalii"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "nume"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "creat"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID calculator"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "fără nume gazdă"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Unifică gazde"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr "Se actualizează creditul calculatorului"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "nimic"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Înapoi la pagina gazdei"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr ""
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Calculatoare ascunse"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Utilizatorul a ales să nu arate informaţii despre calculatoarele sale."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Calculatoarele dumneavoastră"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr ""
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "îngroşat"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "italice"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paragraf"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr ""
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Puteţi folosi şi notaţia cu ampersand pentru caractere speciale."
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Rulează %1 doar pe calculatoarele autorizate"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Rulaţi %1 doar pe calculatoare pe care le deţineţi sau pentru care aţi "
-"obţinut permisiunea proprietarului. Unele companii şi şcoli au proceduri "
-"care interzic folosirea calculatoarelor lor pentru proiecte ca %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Cum îţi va folosi calculatorul %1"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Politică de confidenţialitate"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Este sigur sa se ruleze %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Aplicaţiile rulate de %1 pot cauza ca unele calculatoare să se "
-"supraîncălzească. Dacă se întamplă acest lucru, nu mai rulaţi %1 sau "
-"folosiţi %2un program utilitar%3 care limitează utilizarea CPU."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr ""
-"%1 a fost dezvoltat de %2. BOINC a fost dezvoltat la Universitatea din "
-"California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Răspundere"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Alte proiecte BOINC"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Selecţie limbă"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr ""
-"Acest site web este disponibil în mai multe limbi. Limba selectată acum este "
-"%1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"În mod normal limba este determinată de setările de limbă ale navigatorului, "
-"care sunt: %1.  Puteţi schimba aceste setări folosind:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr ""
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr ""
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Nume limbă (apăsaţi pentru a selecta)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Foloseşte setările de limba ale broswer-ului"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Traducerile sunt efectuate de voluntari.  Dacă limba dumneavoastră nu este "
-"aici, %1puteţi furniza o traducere%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Adresa email:"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "aţi uitat adresa de email?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Parola:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "aţi uitat parola?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr ""
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr ""
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Se procesează %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr ""
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Înapoi la lista calculatoarelor dumneavoastră"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Înapoi la lista de calculatoare"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Credit în aşteptare"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID Rezultat"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID Unitate de lucru"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID Gazdă"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr ""
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Credit în aşteptare: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Blochează mesajele de la acest utilizator"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Blochează utilizator"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Mesajul dumneavoastră a fost trimis."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nu aveţi nici un mesaj privat."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Expeditor şi data"
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr "Răspunde la acest mesaj"
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr "Şterge acest mesaj"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr "Selectează tot"
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr "Deselectează tot"
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Şterge mesajele selectate"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Expeditor"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Data"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Trebuie să completaţi toate câmpurile pentru a trimite un mesaj privat"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Nu s-a găsit utilizatorul cu id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Nu s-a găsit utilizatorul cu numele %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr ""
-"%1 nu este un nume de utilizator unic; trebuie să folosiţi un ID utilizator"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Utilizatorul %1 (ID: %2) nu acceptă mesaje private de la dumneavoastră."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Nu există utilizatorul"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Chiar blocaţi %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Vă rugăm să ţineţi cont că puteţi bloca un număr limitat de utilizatori."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Nu, anulează"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "nu există utilizatorul"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Utilizatorul %1 blocat"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr ""
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr ""
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr "Acţiune necunoscută"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 pentru %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Înapoi la preferinţe"
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr "Confirmă ştergere preferinţe"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr ""
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "Şterge preferinţe"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "Anulează"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Utilizatorul Zilei"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr ""
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr ""
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr ""
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr ""
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr ""
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr ""
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr ""
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Vot Înregistrat"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Mulţumesc"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr ""
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Înapoi la profil."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr "Nume utilizator"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr ""
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr "Credit recent"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Task %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr ""
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Nu s-a găsit un calcultor cu ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Fără acces"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr ""
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Nu sunt task-uri de afişat"
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Rulează"
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr "Nu Rulează"
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr "Dezactivat"
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "Stare proiect"
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Versiune program server: %1"
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr "Program"
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr "Gazdă"
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "planificator"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Rulează:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Programul rulează normal"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Nu Rulează:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Dezactivat:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Programul este dezactivat"
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr "Stare calcule"
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Serverul de baze de date nu este accesibil"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Task-uri gata de trimis"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Task-uri în curs"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Unităţi de lucru aşteptând validarea"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Unităţi de lucru aşteptând asimilarea"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Unităţi de lucru aşteptând ştergerea"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Task-uri aşteptând ştergerea"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr "Utilizatori"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "cu credit recent"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "cu credit"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "înregistraţi în ultimele 24 de ore"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "GigaFLOP curent"
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr "Task-uri după aplicaţie"
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "aplicaţie"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "netrimise"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "în curs"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "timp mediu de rulare al utimelor 100 de rezultate în ore (min-max)"
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "utilizatori în ultimele 24h"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Calculator %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistici şi topuri"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Statistici pentru %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Statistici mai detaliate pentru %1 şi alte proiecte bazate pe BOINC sunt "
-"disponibile pe mai multe situri web:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr ""
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Puteţi fi membru într-o singură echipă. Puteţi să vă alăturaţi sau să "
-"părăsiţi o echipă oricând."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Fiecare echipă are un %1fondator%2 care poate:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "modifică numele şi descrierea echipei"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "adaugă sau şterge administratori echipă"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "elimină membri din echipă"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "şterge o echipă dacă nu are membri"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Pentru a vă alătura unei echipe, vizitaţi pagina echipei şi selectatţi %"
-"1Alătură-te echipei%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Caută o echipă"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Toate echipele"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "%1 echipe"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Crează o nouă echipă"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr ""
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "Adaugă sau şterge Administratori Echipă"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr ""
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr ""
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "Administratorii Echipei nu pot:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "Schimbă fondator echipă"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Elimină membrii"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr ""
-"Atunci când un Administrator de Echipă parăseşte echipa, încetează să mai "
-"fie Administrator de Echipă."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-"Vă recomandăm să selectaţi doar persoane pe care le cunoaşteţi foarte bine "
-"şi în care aveţi încredere ca Administratori de Echipă."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "Nu există momentan Administratori Echipă"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "Administratori Echipă Curenţi"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "Deveniţi Administrator Echipă la"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "Adaugă Administrator Echipă"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "Adresa de mail a membrului echipei:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "nu s-a putut şterge administratorul"
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr "Utilizatorul nu este membru al echipei"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr "%1 este deja administrator al %2"
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr "Nu s-a putut adăuga administratorul"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Nu există echipa"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "nu există echipa"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "Utilizatorul nu este membru al %1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "Se schimbă fondatorul %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 este acum fondator al %2"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "Schimbă fondator al %1"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr ""
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "Nici o cerere de transfer în aşteptare."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "Fondator nou?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "Schimbă fondator"
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Trebuie să alegeţi un nume de echipă care să nu fie gol"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "O echipă numită %1 există deja - încercaţi un alt nume"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Nu s-a putut crea echipa - vă rugăm încercaţi mai târziu."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Crează o nouă echipă"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr ""
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr ""
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "Istoric echipă pentru %1"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Când"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Utilizator"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "Acţiune"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr ""
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "ţară greşită"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "Numele '%1' este folosit de o altă echipă."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "Trebuie specificat numele echipei"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Nu s-a putut actualiza echipa - vă rugăm încercaţi mai târziu."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Editează %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Actualizează informaţii echipă"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 Listă Email"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Listă membrii ai %1"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Arată ca text simplu"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr ""
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr ""
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "La opţiunea dumneavoastră, doar membri vor putea să citească."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr ""
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr ""
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr ""
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr ""
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr ""
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr "Credit total minim pentru a posta"
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr "Credit mediu minim pentru a posta"
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Trimite"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr ""
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr ""
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr ""
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr ""
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr ""
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "Actualizare reuşită"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Actualizare eşuată"
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr "Echipa nu are forum"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "Trebuie să fi membru al unei echipe pentru accesa această pagină."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr ""
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "acţiune nedefinită %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "Înapoi la pagina echipei"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "Trebuie să fi membru al unei echipe pentru accesa această pagină."
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr ""
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr ""
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "Deja membru"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Sunteţi deja membru al %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Nu s-a putut intra în echipă - vă rugăm încercaţi mai târziu."
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "Înscris: %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr ""
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Înscris: %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr ""
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr ""
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr ""
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Rezultate Căutare"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Rezultate căutare pentru '%1'"
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr ""
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr ""
-"Mai mult de 100 de echipe se potrivesc căutării. Doar primele 100 sunt "
-"afişate."
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr "Administrare echipă pentru %1"
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "Modifică informaţii echipă"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "Modifică nume echipă, URL, descriere, tip sau ţara"
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Listă membri:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "text"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Vizualizare nume membri şi adrese de email"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr "Vizualizaţi istoric modificări:"
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr "Vizualizaţi când membri s-au alăturat sau au părăsit echipa"
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr ""
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr ""
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Şterge membri inactivi sau nedoriţi ai echipei"
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr ""
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "Adaugă/Şterge Administratori Echipă"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr ""
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "Şterge echipa"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "Permis doar dacă echipa nu are membri"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr ""
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Nu se poate şterge o echipă care nu e goală"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Echipa %1 ştearsă"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limită depăşită:  Se pot afişa doar primii 1000 de membri."
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Membrii ai %1"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "Nu s-a putut părăsi echipa"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Echipa nu există sau nu faceţi parte din ea."
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "Închide %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Părăseşte Echipa"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Ştergere utilizatori din %1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 nu este membru al %2"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 a fost şters"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Şterge membrii din %1"
-
-# 85%
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "Şterge?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Nume (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "Nu există membri care să poată fi şterşi."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Şterge utilizatori"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Nume echipă"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Reultate căutare echipă"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"Nicio echipă gasită folosind criteriul de căutare. Încercaţi o altă căutare."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Sau puteţi %1crea o nouă echipă%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "Modificaţi căutarea"
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr ""
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr ""
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top gazde"
-
-# 75%
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Top %1 echipe"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr "Nu există echipe %1"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Participant de la"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "Nu a fost ales nici un utilizator al zilei."
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr "Utilizatorul Zilei pentru %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtre"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Nume utilizator începe cu"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Oricare"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Cu profil?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr ""
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "Intr-o echipă?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr ""
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Credit mediu în scădere"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Credit total în scădere"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "şirul de căutat trebuie să aibă cel puţin 3 caractere"
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Reultate căutare utilizator"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Înscris"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr "Nici un utilizator găsit conform criteriilor."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Utilizatorul nu a fost găsit!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr ""
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Echipa:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr ""
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr ""
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Echipa: Nici una"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Validaţi adresa de mail BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-"Vă rugăm accesaţi următorul link pentru a valida adresa de mail a contului %"
-"1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Email validare trimis"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-"Un email a fostr trimis către %1. Vizitaţi link-ul din conţinut pentru a "
-"valida adresa de mail."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Nu exista acest utilizator."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr ""
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Actualizarea bazei de date a eşuat - vă rugăm încercaţi mai târziu."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Validaţi adresa de mail"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Adresa de mail a contului dumneavoastră a fost validată."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Utilizatorul nu are un profil"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Profil: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Date cont"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Cheia poate fi folosită pentru:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Cheia slabă a contului"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr ""
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Unitate de lucru %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr ""
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "credit acordat"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr ""
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr ""
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr ""
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr ""
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "erori"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "validare"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "În aşteptare"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Pagina principală"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Drepturi de autor"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Generat"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr ""
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Opiniile dumneavoastră despre %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Schemă culori pentru grafică"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Utilizare CPU maxim % pentru grafică%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Rulează doar aplicaţiile selectate"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Dacă nu există de lucru pentru aplicaţiile selectate, acceptă lucru pentru "
-"alte aplicaţii?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(toate aplicaţiile)"
-
-#~ msgid "Error:"
-#~ msgstr "Eroare:"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Creare de conturi este dezactivată"
-
-#~ msgid ""
-#~ "Sorry, this project has disabled the creation of new accounts.\n"
-#~ "Please try again later."
-#~ msgstr ""
-#~ "Ne pare rău, acest proiect are crearea de noi conturi de utilizator "
-#~ "dezactivată.\n"
-#~ "Vă rugăm încercaţi mai târziu."
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr ""
-#~ "Crearea de conturi este momentan dezactivată. Vă rugăm încercaţi mai târziu."
-
-#~ msgid "nvidia GPU"
-#~ msgstr "GPU nvidia"
-
-#~ msgid "Use Intel GPU %1 Enforced by version 7.0+ %2"
-#~ msgstr "Foloseşte GPU Intel %1 Impus de versiunea 7.0+ %2"
-
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "Acestea se aplică tuturor proiectelor BOINC în care participaţi.<br>\n"
-#~ "             Pe calculatoare care participă la mai multe proiecte, cele mai "
-#~ "recent modificate preferinţe vor fi utilizate."
-
-#~ msgid "No such task"
-#~ msgstr "Nu există task-ul"
diff --git a/locale/ro/BOINC-Setup.mo b/locale/ro/BOINC-Setup.mo
index 84b0d78..f7d1e89 100644
Binary files a/locale/ro/BOINC-Setup.mo and b/locale/ro/BOINC-Setup.mo differ
diff --git a/locale/ro/BOINC-Setup.po b/locale/ro/BOINC-Setup.po
index a4698db..0aa65f7 100644
--- a/locale/ro/BOINC-Setup.po
+++ b/locale/ro/BOINC-Setup.po
@@ -1,40 +1,46 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Cristian Belei <bicscoala at yahoo.com>, 2017
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-04-20 12:34+0000\n"
-"Last-Translator: Rom Walton\n"
-"Language-Team: Romanian (http://www.transifex.com/projects/p/boinc/language/ro/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-05 21:25+0000\n"
+"Last-Translator: Cristian Belei <bicscoala at yahoo.com>\n"
+"Language-Team: Romanian (http://www.transifex.com/boinc/boinc/language/ro/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ro\n"
 "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Ne pare rău, această versiune de %s necesită versiune de sistem 10.5 sau mai mare."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Ne pare rău, această versiune de %s necesită versiune de sistem 10.6 sau mai mare."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Da"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Nu"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "BOINC trebuie să ruleze chiar dacă nu este nici un utilizator logat?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -42,26 +48,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Utilizatorii cu permisiuni de administrare ale acestui calculator vor avea automat permisiunea de a rula si controla %s.\n\nDoriţi să permiteţi şi utilizatorilor fără drepturi de administrare să ruleze şi să controleze %s pe acest Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Doriţi să setaţi %s ca screensaver pentru toţi %s utilizatorii de pe acest Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Eroare permisiuni după relansare"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Ştergerea poate dura câteva minute.\nVă rugăm aşteptaţi."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +76,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Sunteţi sigur că doriţi să ştergeţi complet %s de pe calculatorul dumneavoastră?\n\nVor fi şterse executabilele dar nu vor fi atinse fişierele de date %s."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Anulat: %s nu a fost atins."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "A apărut o eroare: cod eroare %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "nume  al utilizatorului"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Doriţi să ştergeţi şi VirtualBox de pe calculatorul dumneavoastră?\n(VirtualBox a fost instalat împreună cu BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "Ştergere încheiată.\n\nDacă doriţi puteţi să ştergeţi elementele rămase folosind Finder: \ndirectorul \"%s\"\n\npentru fiecare utilizator, fişierul\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Introduceţi parola administrativă pentru a elimina complet %s de pe calculatorul dumneavoastră.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Anulează"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Continuă..."
diff --git a/locale/ro/BOINC-Web.po b/locale/ro/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/ru/BOINC-Client.mo b/locale/ru/BOINC-Client.mo
index 6d1538a..acd2dc7 100644
Binary files a/locale/ru/BOINC-Client.mo and b/locale/ru/BOINC-Client.mo differ
diff --git a/locale/ru/BOINC-Client.po b/locale/ru/BOINC-Client.po
index a213a4d..847127b 100644
--- a/locale/ru/BOINC-Client.po
+++ b/locale/ru/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Николай Сахаров <saharovna at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-03-12 17:51+0000\n"
-"Last-Translator: Nikolay Sakharov <saharovna at gmail.com>\n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/boinc/language/ru/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-15 17:17+0000\n"
+"Last-Translator: Николай Сахаров <saharovna at gmail.com>\n"
+"Language-Team: Russian (http://www.transifex.com/boinc/boinc/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ru\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Сообщение от менеджера проектов"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Сообщение от сервера"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Некоторые задания требуют больше памяти, чем разрешено вашими настройками.  Пожалуйста, проверьте настройки."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Не удалось записать файл состояния; проверьте права доступа к каталогу"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "HTTP-прокси должен быть определен в переменной окружения HTTP_PROXY"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Для этого проекта Вы использовали неправильный URL.  Как только будет возможно, удалите этот проект, затем добавьте %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Этот проект использует устаревший URL.  Как только будет возможно, удалите этот проект, затем добавьте %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Ошибка синтаксиса в файле app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Файл, на который ссылается app_info.xml, не существует: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Доступна новая версия BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Загрузить"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "нельзя использовать для вычислений CUDA или OpenCL с драйверами CUDA 6.5 или более поздней версии"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Неожиданный текст в файле cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Нераспознанный тэг в файле cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Отсутствует начальный тэг в файле cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Ошибка в параметрах cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Отсутствует завершающий тэг в файле cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Чтобы это исправить, Вы можете"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "изменить Настройки проекта на сайте проекта"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "удалить исключения для графического ускорителя в вашем файле cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "изменить настройки на сайте вашего менеджера проектов"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Неправильный или отсутствующий ключ учётной записи.  Для исправления удалите и снова добавьте этот проект."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Неправильный ключ подписания кода.  Для исправления удалите и снова добавьте этот проект."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Проект изменил свой ключ безопасности.  Пожалуйста, удалите и снова добавьте этот проект."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Этот проект не поддерживает операционную систему"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Этот проект не поддерживает тип ЦП"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "У Вас слишком старая версия программного обеспечения BOINC-клиента.  Пожалуйста, установите текущую версию."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Этот проект не поддерживает компьютеры типа"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Для обработки задач, использующих ГП вашего компьютера, обновите драйвер до самой последней версии"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Для использования всех приложений данного проекта, работающих на ГП, обновите драйвер до самой последней версии"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Необходима более новая версия BOINC для использования вашего ГП NVIDIA; пожалуйста, обновитесь до текущей версии"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Для обработки заданий данного проекта необходима видеокарта %s"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Нет доступных заданий для приложений, которые Вы выбрали."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Тип вашего компьютера не поддерживается этим проектом"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Необходима более новая версия BOINC; пожалуйста, установите текущую версию"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Доступны задания для %s, но в ваших настройках указано не принимать их"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Неизвестное имя приложения в файле app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Ваш файл app_info.xml не имеет годной версии"
diff --git a/locale/ru/BOINC-Drupal.po b/locale/ru/BOINC-Drupal.po
index 8c4e1b8..2d9b5d2 100644
--- a/locale/ru/BOINC-Drupal.po
+++ b/locale/ru/BOINC-Drupal.po
@@ -2,14 +2,16 @@
 # Copyright (c) YEAR NAME <EMAIL at ADDRESS>
 # 
 # Translators:
-# Nikolay Sakharov <saharovna at gmail.com>, 2015
+# Николай Сахаров <saharovna at gmail.com>, 2015
 # Olga Liienko <o.k.lienko at gmail.com>, 2015
+# Vitalii Koshura <lestat.de.lionkur at gmail.com>, 2016
+# Николай Сахаров <saharovna at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-08-14 09:37+0000\n"
-"PO-Revision-Date: 2015-10-01 19:51+0000\n"
-"Last-Translator: Nikolay Sakharov <saharovna at gmail.com>\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-11-29 01:06+0000\n"
+"Last-Translator: Vitalii Koshura <lestat.de.lionkur at gmail.com>\n"
 "Language-Team: Russian (http://www.transifex.com/boinc/boinc/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,522 +19,504 @@ msgstr ""
 "Language: ru\n"
 "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "Учётной записи не существует для @email -- выберите \"Создать новую учётную запись\", чтобы зарегистрироваться"
+msgid "Reject profile"
+msgstr "Отклонить профиль"
 
-msgid "My team"
-msgstr "Моя команда"
+msgid "Ban user"
+msgstr "Заблокировать пользователя"
 
-msgid "You are a member of @team."
-msgstr "Вы участник команды @team."
+msgid "I'm new"
+msgstr "Я новичок"
 
-msgid "View my team"
-msgstr "Просмотр моей команды"
+msgid "I'm a BOINC user"
+msgstr "Я пользователь BOINC"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "Недопустимый параметр для \"%preference\""
+msgid "Authenticator login"
+msgstr "Войти используя проверку подлинности"
 
 msgid ""
 "You must earn @count more credits to be able to post comments on this site."
 msgstr "Вы должны заработать ещё @count очков, чтобы появилась возможность оставлять комментарии на этом сайте."
 
-msgid "Moderation"
-msgstr "Модерация"
+msgid "Generic"
+msgstr "Универсальный"
 
-msgid "Unvetted profiles"
-msgstr "Профили, не прошедшие проверку"
+msgid "Home"
+msgstr "Главная"
 
-msgid "Reason for banning this user"
-msgstr "Причина для запрета этого пользователя"
+msgid "Work"
+msgstr "Работа"
 
-msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "Эта причина будет включена в электронное письмо пользователю. Пожалуйста, напишите краткое объяснение, почему этот пользователь запрещён."
+msgid "School"
+msgstr "Школа"
 
-msgid "Duration of the ban"
-msgstr "Продолжительность запрета"
+msgid "yes"
+msgstr "да"
 
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "Количество дней до истечения срока действия запрета. Установите значение 0, чтобы запретить навсегда."
+msgid "no"
+msgstr "нет"
 
-msgid "Lift user ban"
-msgstr "Снять запрет с пользователя"
+msgid "Resource settings"
+msgstr "Настройки ресурсов"
 
-msgid "You are banned from community participation until @date"
-msgstr "Вам запрещено участие в сообществе до @date"
+msgid "Resource share"
+msgstr "Выделено ресурсов"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "Компьютеры @old_ids успешно объединены с @id."
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Определяет долю ресурсов вашего компьютера, выделенных на этот проект. Пример: Если Вы участвуете в двух проектах BOINC с долями ресурсов 100 и 200, первый проект получит 1/3 ваших ресурсов, а второй получит 2/3."
 
-msgid "A team named \"@name\" already exists."
-msgstr "Команда с названием \"@name\" уже существует."
+msgid "Use CPU"
+msgstr "Использовать ЦП"
 
-msgid "Post topic"
-msgstr "Опубликовать тему"
+msgid "Enforced by version @number"
+msgstr "Начиная с версии @number"
 
-msgid "Please enter your email address"
-msgstr "Укажите адрес вашей электронной почты"
+msgid "Use NVIDIA GPU"
+msgstr "Использовать ГП NVIDIA"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "Введённый пароль не действителен. Пожалуйста, проверьте, что он правильный."
+msgid "Use ATI GPU"
+msgstr "Использовать ГП ATI"
 
-msgid "Make founder"
-msgstr "Сделать основателя"
+msgid "Use INTEL GPU"
+msgstr "Использовать ГП INTEL"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: комментарий размещён в \"!topic_name\""
+msgid "Beta settings"
+msgstr "Настройки бета-версии"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author ответил в \"!topic_name\"."
+msgid "Run test applications?"
+msgstr "Выполнять тестовые приложения?"
 
 msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "Для просмотра этой темы на сайте !site нажмите здесь: \n!comment_url"
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Это поможет нам в разработке приложений, но может привести к ошибкам в расчётах заданий на вашем компьютере"
 
-msgid "At least one application must be selected"
-msgstr "По крайней мере одно приложение должно быть выбрано"
+msgid " Default value: @default"
+msgstr "Значение по умолчанию: @default"
 
-msgid "Forgot password"
-msgstr "Забыли пароль"
+msgid "Applications"
+msgstr "Приложения"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "Введите свой адрес электронной почты, чтобы получить инструкции по сбросу пароля."
+msgid "Default set"
+msgstr "Набор по умолчанию"
 
-msgid "Revise or post comment"
-msgstr "Изменить или добавить комментарий"
+msgid "Set used for new computers"
+msgstr "Набор для новых компьютеров"
 
-msgid "discuss"
-msgstr "обсудить"
+msgid "Save changes"
+msgstr "Сохранить изменения"
 
-msgid "Your community preferences have been updated."
-msgstr "Ваши настройки сообщества были обновлены."
+msgid "Cancel"
+msgstr "Отмена"
 
-msgid "Unlock this thread for comments"
-msgstr "Разблокировать это обсуждение для комментариев"
+msgid "Show comparison view"
+msgstr "Показать сравнение"
 
-msgid "Authenticator login"
-msgstr "Войти используя проверку подлинности"
+msgid "Comment form"
+msgstr "Форма комментария"
 
-msgid "Create content"
-msgstr "Создать контент"
+msgid "Logout"
+msgstr "Выйти"
 
-msgid "authenticator-based login"
-msgstr "вход на основе проверки подлинности"
+msgid "Join now"
+msgstr "Вступить"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "Введите свой адрес электронной почты, чтобы получить инструкции по сбросу пароля (или используйте !authenticator_login)."
+msgid "Account"
+msgstr "Учётная запись"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "Если Вы забыли адрес электронной почты вашей учётной записи, или Вы не можете получить письмо:"
+msgid "Server status"
+msgstr "Статус сервера"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "Если BOINC запускался под этой учётной записью, Вы можете получить доступ к ней. Для этого нужно сделать следующее:"
+msgid "Language"
+msgstr "Язык"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "Перейдите в каталог данных BOINC на вашем компьютере (в Windows это обычно %path1 или %path2."
+msgid "Create content"
+msgstr "Создать контент"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "Найдите там файл учётной записи для этого проекта; он будет называться %file (где %url - URL-адрес проекта)."
+msgid "General settings"
+msgstr "Общие настройки"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "Откройте этот файл в текстовом редакторе, например в Блокноте. Вы увидите что-то вроде:"
+msgid "Name"
+msgstr "Имя"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "Выберите и скопируйте строку между <authenticator> и </authenticator> (%auth в вышеприведённом примере)."
+msgid "Time zone"
+msgstr "Часовой пояс"
 
-msgid "There is no account with that authenticator."
-msgstr "Учётная запись с таким аутентификатором отсутствует."
+msgid "Notification settings"
+msgstr "Настройки уведомлений"
 
-msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "Перейдите в <a href=\"%wikiref\">каталог данных BOINC</a> на вашем компьютере (в Windows это обычно %path1 или %path2."
+msgid "Receive email notification for private messages?"
+msgstr "Получать уведомления по электронной почте для личных сообщений?"
 
-msgid "BOINC documentation"
-msgstr "Документация BOINC"
+msgid "Receive email notification for friend requests?"
+msgstr "Получать уведомления по электронной почте для запросов о дружбе?"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "Перейдите в каталог данных BOINC на вашем компьютере (см.  !boinc_wiki для получения помощи)."
+msgid "Language settings"
+msgstr "Языковые настройки"
 
 msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "@count дней прошли с момента подачи вашего запроса, а основатель так и не ответил."
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Язык по умолчанию в этой учётной записи для электронных писем и предпочтительный язык для внешнего вида сайта."
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "Теперь у Вас есть @count дней, чтобы стать основателем, прежде чем другой участник команды сможет сделать запрос."
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Если у Вас есть <a href=\"@gravatar-check\"> действительный Gravatar</a>, связанный с вашим адресом электронной почты, он будет использоваться в качестве фотографии пользователя."
 
-msgid "Unhide this comment"
-msgstr "Показать этот комментарий"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Ваш Gravatar не будет отображаться, если Вы загрузите пользовательскую фотографию."
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email не является хорошо сформированным адресом электронной почты, пожалуйста, проверьте"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Если у Вас есть <a href=\"@gravatar-check\"> действительный Gravatar</a>, связанный с вашим адресом электронной почты, используйте его в качестве фотографии пользователя."
 
-msgid "Email address"
-msgstr "Адрес электронной почты"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar не будет отображаться если загружен аватар."
 
-msgid "Home"
-msgstr "Главная"
+msgid "Avatar settings"
+msgstr "Настройки аватара"
 
-msgid "Login"
-msgstr "Войти"
+msgid "This is not available until your profile is set up."
+msgstr "Это не доступно до тех пор, пока не настроен ваш профиль."
 
-msgid "search"
-msgstr "поиск"
+msgid "Create a profile"
+msgstr "Создать профиль"
 
-msgid "Server status"
-msgstr "Статус сервера"
+msgid "Upload an avatar"
+msgstr "Загрузить аватар"
 
-msgid "Language"
-msgstr "Язык"
+msgid "Forum settings"
+msgstr "Настройки форума"
 
-msgid "Enter your @s email address."
-msgstr "Введите ваш адрес электронной почты @s."
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "В темах обсуждений показывать не более @comments_per_page"
 
-msgid "Join now"
-msgstr "Присоединиться"
+msgid "comments per page"
+msgstr "комментариев на страницу"
 
-msgid "I'm new"
-msgstr "Я новичок"
+msgid "Sort comments in discussions"
+msgstr "Сортировка комментариев в обсуждениях"
 
-msgid "I'm a BOINC user"
-msgstr "Я пользователь BOINC"
+msgid "Newest post first"
+msgstr "Сначала с самыми новыми сообщениями"
 
-msgid "Welcome back!"
-msgstr "С возвращением!"
+msgid "Oldest post first"
+msgstr "Сначала самые старые сообщения"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home — это программа, которая, используя время простоя компьютера, запускает заставку для поиска гравитационных волн от быстро вращающихся нейтронных звёзд (также называемых пульсарами) и использует данные, полученные от детектора гравитационных волн LIGO."
+msgid "Signature"
+msgstr "Подпись"
 
-msgid "Learn more"
-msgstr "Подробнее"
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Ваша подпись будет видна всем в конце ваших комментариев."
 
-msgid "View account"
-msgstr "Просмотр учётной записи"
-
-msgid "About our screensaver"
-msgstr "О нашей заставке"
+msgid "Hide signatures in forums"
+msgstr "Скрывать подписи на форумах"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "Свыше 500 000 добровольцев и больше."
+msgid "Privacy settings"
+msgstr "Настройки конфиденциальности"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Могут ли @project и ваша команда (при наличии) отправлять Вам электронные письма?"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Should @project show your computers on its web site?"
+msgstr "Должен ли @project показывать ваши компьютеры на своём веб-сайте?"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Id"
+msgstr "Id"
 
-msgid "Logout"
-msgstr "Выйти"
+msgid "Founder"
+msgstr "Основатель"
 
-msgid "Name"
-msgstr "Имя"
+msgid "Country"
+msgstr "Страна"
 
-msgid "Avg credit"
+msgid "Recent average credit"
 msgstr "В среднем за день"
 
-msgid "Total credit"
-msgstr "Всего очков"
+msgid "Members"
+msgstr "Участники"
 
-msgid "Enter your password to save changes"
-msgstr "Введите свой пароль, чтобы сохранить изменения"
+msgid "Total Credit"
+msgstr "Всего очков"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "Введите свой текущий пароль, чтобы изменить\nсвой адрес электронной почты или пароль."
+msgid "User ID"
+msgstr "ID пользователя"
 
-msgid "BOINC user ID"
-msgstr "ID пользователя BOINC"
+msgid "User"
+msgstr "Участник"
 
-msgid "Drupal user ID"
-msgstr "ID пользователя Drupal"
+msgid "Admin since"
+msgstr "Администратор с"
 
-msgid "Account key"
-msgstr "Ключ учётной записи"
+msgid "Team ID"
+msgstr "ID команды"
 
-msgid "Weak account key"
-msgstr "Слабый ключ учётной записи"
+msgid "User joined"
+msgstr "Пользователь вступил"
 
-msgid "Cross-project ID"
-msgstr "Межпроектный ID (CPID)"
+msgid "Timestamp"
+msgstr "Штамп времени"
 
-msgid "Save changes"
-msgstr "Сохранить изменения"
+msgid "Account Key"
+msgstr "Ключ учётной записи"
 
-msgid "Cancel"
-msgstr "Отмена"
+msgid "Member since"
+msgstr "Участник с"
 
-msgid "Change password"
-msgstr "Поменять пароль"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "What is @this_project?"
-msgstr "Что такое @this_project?"
+msgid "Email Address"
+msgstr "Адрес электронной почты"
 
-msgid "no projects..."
-msgstr "нет проектов..."
+msgid "Password Hash"
+msgstr "Хэш пароля"
 
-msgid "Download the desktop software"
-msgstr "Загрузите программное обеспечение для настольного компьютера"
+msgid "Postal Code"
+msgstr "Почтовый индекс"
 
-msgid "Run the installer"
-msgstr "Запустите программу установки"
+msgid "Send Email"
+msgstr "Отправить письмо"
 
-msgid "When prompted enter @siteurl"
-msgstr "При появлении запроса введите @siteurl"
+msgid "Show Hosts"
+msgstr "Показать компьютеры"
 
-msgid "Password"
-msgstr "Пароль"
+msgid "URL"
+msgstr "URL"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Введите пароль, соответствующий вашему имени пользователя."
+msgid "Computer ID"
+msgstr "ID компьютера"
 
-msgid "Request new password"
-msgstr "Запросить новый пароль"
+msgid "Location"
+msgstr "Размещение"
 
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Если Вы уже используете BOINC, выберите команду <i>Добавить проект</i>."
+msgid "While BOINC running, % of time work is allowed"
+msgstr "% времени разрешённого выполнения расчётов за время работы BOINC"
 
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Если Вы используете версию BOINC для командной строки, для создания учётной записи в этом проекте сначала используйте программное обеспечение BOINC Manager (или другое в случае необходимости), а затем используйте эту учётную запись для подключения с помощью версии для командной строки."
+msgid "Average turnaround time"
+msgstr "Среднее время обработки"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Если Вы используете версию BOINC ниже 5.0, выполните обновление до более новой версии для создания учетной записи в этом проекте."
+msgid "Created"
+msgstr "Создан"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Если Вы знаете адрес электронной почты вашей учётной записи, и Вы можете получить письмо:"
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "% времени подключения компьютера к Интернет за время работы BOINC"
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "Введите адрес электронной почты и нажмите OK. Вам будут высланы инструкции для сброса вашего пароля."
+msgid "Average CPU efficiency"
+msgstr "Средняя эффективность ЦП"
 
-msgid "OK"
-msgstr "OK"
+msgid "Free disk space"
+msgstr "Свободное дисковое пространство"
 
-msgid "The latest news from the @site_name project"
-msgstr "Последние новости от проекта @site_name"
+msgid "Total disk space"
+msgstr "Полное дисковое пространство"
 
-msgid "Comment form"
-msgstr "Форма комментария"
+msgid "Task duration correction factor"
+msgstr "Фактор исправления продолжительности выполнения задания"
 
-msgid "Total credits"
-msgstr "Всего очков"
+msgid "Avg. credit"
+msgstr "В среднем за день"
 
-msgid "Recent avg credits"
-msgstr "Очков в среднем за последнее время"
+msgid "External IP address"
+msgstr "Внешний IP-адрес"
 
-msgid "Country"
-msgstr "Страна"
+msgid "Cross project ID"
+msgstr "Межпроектный ID"
 
-msgid "Type"
-msgstr "Тип"
+msgid "Last IP address"
+msgstr "Последний IP-адрес"
 
-msgid "Founder"
-msgstr "Основатель"
+msgid "Cache"
+msgstr "Кэш"
 
-msgid "New members in last day"
-msgstr "Новые участники за последний день"
+msgid "Memory"
+msgstr "Память"
 
-msgid "Total members"
-msgstr "Всего участников"
+msgid "Swap space"
+msgstr "Файл подкачки"
 
-msgid "Active members"
-msgstr "Активных участников"
+msgid "Maximum daily WU quota per CPU"
+msgstr "Максимальная ежедневная квота заданий на ЦП"
 
-msgid "Members with credit"
-msgstr "Участников с заработанными очками"
+msgid "Average download rate"
+msgstr "Средняя скорость загрузки данных"
 
-msgid "Description"
-msgstr "Описание"
+msgid "Average upload rate"
+msgstr "Средняя скорость отправки данных"
 
-msgid "Search teams"
-msgstr "Поиск команд"
+msgid "Same IP address count"
+msgstr "Сколько раз был этот же IP-адрес"
 
-msgid "Send message"
-msgstr "Отправить сообщение"
+msgid "% of time BOINC client is running"
+msgstr "% времени работы клиента BOINC"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Operating system"
+msgstr "Операционная система"
 
-msgid "Project"
-msgstr "Проект"
+msgid "Operating system version"
+msgstr "Версия операционной системы"
 
-msgid "Web site"
-msgstr "Вебсайт"
+msgid "Measured floating point speed"
+msgstr "Измеренная скорость вычислений с плавающей запятой"
 
-msgid "No active computers"
-msgstr "Нет активных компьютеров"
+msgid "Measured integer speed"
+msgstr "Измеренная скорость целочисленных вычислений"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "У этого пользователя нет компьютеров, которые были активны в течение последних 30 дней."
+msgid "CPU model"
+msgstr "Модель процессора"
 
-msgid " Default value: @default"
-msgstr "Значение по умолчанию: @default"
+msgid "Number of processors"
+msgstr "Число процессоров"
 
-msgid "Applications"
-msgstr "Приложения"
+msgid "CPU"
+msgstr "Тип ЦП"
 
-msgid "yes"
-msgstr "да"
+msgid "Number of times client has contacted server"
+msgstr "Количество контактов клиента с сервером"
 
-msgid "no"
-msgstr "нет"
+msgid "Last contact"
+msgstr "Последний контакт"
 
-msgid "Message @id"
-msgstr "Сообщение @id"
+msgid "Serial number"
+msgstr "Серийный номер"
 
-msgid "message @id"
-msgstr "сообщение @id"
+msgid "Timezone"
+msgstr "Часовой пояс"
 
-msgid " in response to !parent"
-msgstr " в ответ на !parent"
+msgid "Platform ID"
+msgstr "ID платформы"
 
-msgid "Credits per day"
-msgstr "Очков в день"
+msgid "Task ID"
+msgstr "ID задания"
 
-msgid "Computers hidden"
-msgstr "Компьютеры скрыты"
+msgid "Workunit ID"
+msgstr "ID задачи"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "Этот пользователь предпочёл скрыть информацию о своих компьютерах."
+msgid "Host ID"
+msgstr "ID компьютера"
 
-msgid "Stderr output"
-msgstr "Текст протокола"
+msgid "Application ID"
+msgstr "ID приложения"
 
-msgid "@time ago"
-msgstr "@time назад"
+msgid "Application version"
+msgstr "Версия приложения"
 
-msgid "n/a"
-msgstr "н/д"
+msgid "Claimed credit"
+msgstr "Запрошено очков"
 
-msgid "Submitted by !username on !datetime"
-msgstr "Отправил !username от !datetime"
+msgid "Client state"
+msgstr "Состояние клиента"
 
-msgid "Member since"
-msgstr "Участник с"
+msgid "CPU time"
+msgstr "Время ЦП"
 
-msgid "View team"
-msgstr "Просмотр команды"
+msgid "Run time"
+msgstr "Время выполнения"
 
-msgid "Friends (@count)"
-msgstr "Друзья (@count)"
+msgid "Exit status"
+msgstr "Статус выхода"
 
-msgid "Website"
-msgstr "Веб-сайт"
+msgid "Granted credit"
+msgstr "Предоставлено очков"
 
-msgid "Locked"
-msgstr "Заблокировано"
+msgid "Outcome"
+msgstr "Результат выполнения"
 
-msgid "Computers pending"
-msgstr "Компьютеры в ожидании"
+msgid "Received time"
+msgstr "Время получения"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "У этого пользователя ещё нет каких-либо связанных компьютеров. Компьютеры появятся, когда они заработают свои первые очки."
+msgid "Report deadline"
+msgstr "Крайний срок отчёта"
 
-msgid "No results found..."
-msgstr "Результаты не найдены..."
+msgid "Sent"
+msgstr "Отправлен"
 
-msgid "Background"
-msgstr "Фон"
+msgid "Server state"
+msgstr "Состояние сервера"
 
-msgid "Teams"
-msgstr "Команды"
+msgid "Stderr out"
+msgstr "Текст протокола"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "Участники @project могут образовывать команды. Вы можете принадлежать только одной команде. Вы можете вступить или выйти из команды в любое время. Чтобы присоединиться к команде, посетите страницу команды и нажмите кнопку «Присоединиться к этой команде». Каждая команда имеет основателя, который может:"
+msgid "Validation state"
+msgstr "Состояние проверки"
 
-msgid "access team members' email addresses"
-msgstr "иметь доступ к адресам электронной почты участников команды"
+msgid "App ID"
+msgstr "ID приложения"
 
-msgid "edit the team's name and description"
-msgstr "редактировать название и описание команды"
+msgid "Canonical credit"
+msgstr "Канонических очков"
 
-msgid "add or remove team admins"
-msgstr "добавить или удалить Администраторов команды"
+msgid "Canonical result ID"
+msgstr "ID канонического результата"
 
-msgid "remove members from the team"
-msgstr "удалять участников из команды"
+msgid "Created time"
+msgstr "Время создания"
 
-msgid "disband a team if it has no members"
-msgstr "расформировать команду, в которой нет участников"
+msgid "Error mask"
+msgstr "Маска ошибок"
 
-msgid "Create a new team"
-msgstr "Создать новую команду"
+msgid "Minimum quorum"
+msgstr "Минимальный кворум"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Если Вы не можете найти подходящую Вам команду, Вы можете создать новую команду."
+msgid "Max error tasks"
+msgstr "Макс количество ошибочных заданий"
 
-msgid "You must earn @count more credits!"
-msgstr "Вы должны заработать ещё @count очков!"
+msgid "Max success tasks"
+msgstr "Макс количество успешных заданий"
 
-msgid "Threads"
-msgstr "Обсуждения"
+msgid "Max total tasks"
+msgstr "Макс общее количество заданий"
 
-msgid "Posts"
-msgstr "Сообщения"
+msgid "Needs validation"
+msgstr "Необходима проверка"
 
-msgid "Last post"
-msgstr "Последнее сообщение"
+msgid "Initial replication"
+msgstr "Начальная репликация"
 
-msgid "Manage subscriptions"
-msgstr "Управление подписками"
+msgid "Target number of results"
+msgstr "Целевое количество результатов"
 
-msgid "Featured"
-msgstr "Рекомендуемые"
+msgid "Application version ID"
+msgstr "ID версии приложения"
 
-msgid "Submitted on !datetime"
-msgstr "Отправлено !datetime"
+msgid "Plan class"
+msgstr "План-класс"
 
-msgid "Comments"
-msgstr "Комментарии"
+msgid "Version number"
+msgstr "Номер версии"
 
-msgid "Opinion"
-msgstr "Мнение"
+msgid "Computer"
+msgstr "Компьютер"
+
+msgid "App version ID"
+msgstr "ID версии приложения"
+
+msgid "Consecutive valid tasks"
+msgstr "Правильные задания завершённые подряд"
+
+msgid "Number of tasks completed"
+msgstr "Число завершённых заданий"
+
+msgid "Max tasks per day"
+msgstr "Максимум заданий в день"
+
+msgid "Number of tasks today"
+msgstr "Число заданий сегодня"
+
+msgid "Manage subscriptions"
+msgstr "Управление подписками"
+
+msgid "Avg credit"
+msgstr "В среднем за день"
+
+msgid "Total credit"
+msgstr "Всего очков"
 
 msgid "More"
 msgstr "Больше"
@@ -540,14 +524,103 @@ msgstr "Больше"
 msgid "Tasks"
 msgstr "Задания"
 
-msgid "Generic"
-msgstr "Универсальный"
+msgid "Computers hidden"
+msgstr "Компьютеры скрыты"
 
-msgid "Work"
-msgstr "Работа"
+msgid "This user has chosen not to show information about their computers."
+msgstr "Этот пользователь предпочёл скрыть информацию о своих компьютерах."
 
-msgid "School"
-msgstr "Школа"
+msgid "no projects..."
+msgstr "нет проектов..."
+
+msgid "Moderation"
+msgstr "Модерация"
+
+msgid "Unvetted profiles"
+msgstr "Профили, не прошедшие проверку"
+
+msgid "Inbox"
+msgstr "Входящие"
+
+msgid "Compose new"
+msgstr "Создать новый"
+
+msgid "Posts contributed"
+msgstr "Сообщений размещено"
+
+msgid "Friends (@count)"
+msgstr "Друзья (@count)"
+
+msgid "Welcome back!"
+msgstr "С возвращением!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home — это программа, которая, используя время простоя компьютера, запускает заставку для поиска гравитационных волн от быстро вращающихся нейтронных звёзд (также называемых пульсарами) и использует данные, полученные от детектора гравитационных волн LIGO."
+
+msgid "Learn more"
+msgstr "Подробнее"
+
+msgid "View account"
+msgstr "Просмотр учётной записи"
+
+msgid "User of the day"
+msgstr "Пользователь Дня"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Свыше 500 000 добровольцев и больше."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Очков в день"
+
+msgid "View user profile."
+msgstr "Просмотреть профиль пользователя."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Профиль ожидает одобрения модератором"
+
+msgid "Background"
+msgstr "Фон"
+
+msgid "Opinion"
+msgstr "Мнение"
+
+msgid "Enter your password to save changes"
+msgstr "Введите свой пароль, чтобы сохранить изменения"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Введите свой текущий пароль, чтобы изменить\nсвой адрес электронной почты или пароль."
+
+msgid "BOINC user ID"
+msgstr "ID пользователя BOINC"
+
+msgid "Drupal user ID"
+msgstr "ID пользователя Drupal"
+
+msgid "Account key"
+msgstr "Ключ учётной записи"
+
+msgid "Weak account key"
+msgstr "Слабый ключ учётной записи"
+
+msgid "Cross-project ID"
+msgstr "Межпроектный ID (CPID)"
+
+msgid "Change password"
+msgstr "Поменять пароль"
 
 msgid "Presets"
 msgstr "Начальные установки"
@@ -588,9 +661,6 @@ msgstr "Выполнять обработку, когда компьютер и
 msgid "Run GPU work while computer is in use?"
 msgstr "Выполнять обработку на ГП, когда компьютер используется?"
 
-msgid "Enforced by version @number"
-msgstr "Начиная с версии @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "\"Использование\" означает активность мыши или клавиатуры за последние"
 
@@ -727,61 +797,38 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "Выберите этот пункт ТОЛЬКО если ваш Интернет-провайдер изменяет файлы изображений (например, так делает UMTS). Пропуск проверки уменьшает безопасность BOINC."
 
-msgid "Show comparison view"
-msgstr "Показать сравнение"
-
-msgid "Resource settings"
-msgstr "Настройки ресурсов"
+msgid "search"
+msgstr "поиск"
 
-msgid "Resource share"
-msgstr "Выделено ресурсов"
-
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Определяет долю ресурсов вашего компьютера, выделенных на этот проект. Пример: Если Вы участвуете в двух проектах BOINC с долями ресурсов 100 и 200, первый проект получит 1/3 ваших ресурсов, а второй получит 2/3."
-
-msgid "Use CPU"
-msgstr "Использовать ЦП"
-
-msgid "Use NVIDIA GPU"
-msgstr "Использовать ГП NVIDIA"
-
-msgid "Use ATI GPU"
-msgstr "Использовать ГП ATI"
+msgid "What is @this_project?"
+msgstr "Что такое @this_project?"
 
-msgid "Use INTEL GPU"
-msgstr "Использовать ГП INTEL"
+msgid "Login"
+msgstr "Войти"
 
-msgid "Beta settings"
-msgstr "Настройки бета-версии"
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Run test applications?"
-msgstr "Выполнять тестовые приложения?"
+msgid "Project"
+msgstr "Проект"
 
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Это поможет нам в разработке приложений, но может привести к ошибкам в расчётах заданий на вашем компьютере"
+msgid "No @type tasks"
+msgstr "Нет заданий типа @type"
 
-msgid "Default set"
-msgstr "Набор по умолчанию"
+msgid "There are no tasks of this type on record"
+msgstr "Нет заданий этого типа"
 
-msgid "Set used for new computers"
-msgstr "Набор для новых компьютеров"
+msgid "Details"
+msgstr "Подробности"
 
-msgid "Merge"
-msgstr "Объединить"
+msgid "Password"
+msgstr "Пароль"
 
-msgid "Delete"
-msgstr "Удалить"
+msgid "Enter the password that accompanies your username."
+msgstr "Введите пароль, соответствующий вашему имени пользователя."
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Хост @id будет удалён из вашей учётной записи навсегда. Вы уверены, что это нормально?"
+msgid "Request new password"
+msgstr "Запросить новый пароль"
 
 msgid "Mark all topics read"
 msgstr "Пометить все темы прочитанными"
@@ -809,146 +856,151 @@ msgstr "Отключить RTF"
 msgid "Enable rich-text"
 msgstr "Включить RTF"
 
-msgid "View user profile."
-msgstr "Просмотреть профиль пользователя."
+msgid "Teams"
+msgstr "Команды"
 
-msgid "BBcode help"
-msgstr "Справка по BBcode"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "Участники @project могут образовывать команды. Вы можете принадлежать только одной команде. Вы можете вступить или выйти из команды в любое время. Чтобы примкнуть к команде, посетите страницу команды и нажмите кнопку «Вступить в эту команду». Каждая команда имеет основателя, который может:"
 
-msgid "Post comment"
-msgstr "Добавить комментарий"
+msgid "access team members' email addresses"
+msgstr "иметь доступ к адресам электронной почты участников команды"
 
-msgid "No @type tasks"
-msgstr "Нет заданий типа @type"
+msgid "edit the team's name and description"
+msgstr "редактировать название и описание команды"
 
-msgid "There are no tasks of this type on record"
-msgstr "Нет заданий этого типа"
+msgid "add or remove team admins"
+msgstr "добавить или удалить Администраторов команды"
 
-msgid "Clear"
-msgstr "Удалить"
+msgid "remove members from the team"
+msgstr "удалять участников из команды"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Это удалит все ваши настройки из конфигурации @name. Вы уверены?"
+msgid "disband a team if it has no members"
+msgstr "расформировать команду, в которой нет участников"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Эти параметры применяются ко всем проектам BOINC, в которых Вы участвуете."
+msgid "Search teams"
+msgstr "Поиск команд"
+
+msgid "Create a new team"
+msgstr "Создать новую команду"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "На компьютерах, подключенных к нескольким проектам, будут использоваться настройки, изменённые самыми последними."
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Если Вы не можете найти подходящую Вам команду, Вы можете создать новую команду."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "Последнее изменение настроек: @mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "Вы должны заработать ещё 1 очко!"
 
-msgid "Combined preferences"
-msgstr "Объединённые настройки"
+msgid "@count million ops/sec"
+msgstr "@count млн операций/с"
 
-msgid "Switch View"
-msgstr "Переключить вид"
+msgid "@rate KiB/sec"
+msgstr "@rate КБ/с"
 
-msgid "every"
-msgstr "каждые"
+msgid "@count days"
+msgstr "@count дней"
 
-msgid "Edit"
-msgstr "Редактировать"
+msgid "Stderr output"
+msgstr "Текст протокола"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Это удалит все ваши настройки из конфигурации \"@name\". Вы уверены?"
+msgid "Email address"
+msgstr "Адрес электронной почты"
 
-msgid "Add"
-msgstr "Добавить"
+msgid "Enter your @s email address."
+msgstr "Введите ваш адрес электронной почты @s."
 
-msgid "General settings"
-msgstr "Общие настройки"
+msgid "Log in"
+msgstr "Войти"
 
-msgid "Time zone"
-msgstr "Часовой пояс"
+msgid "Sorry, unrecognized email address or password."
+msgstr "К сожалению, адрес электронной почты или пароль не распознаны."
 
-msgid "Notification settings"
-msgstr "Настройки уведомлений"
+msgid "Have you forgotten your password?"
+msgstr "Вы забыли ваш пароль?"
 
-msgid "Receive email notification for private messages?"
-msgstr "Получать уведомления по электронной почте для личных сообщений?"
+msgid "No results found..."
+msgstr "Результаты не найдены..."
 
-msgid "Receive email notification for friend requests?"
-msgstr "Получать уведомления по электронной почте для запросов о дружбе?"
+msgid "Anonymous"
+msgstr "Анонимный"
 
-msgid "Language settings"
-msgstr "Языковые настройки"
+msgid "Forgot password"
+msgstr "Забыли пароль"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "Язык по умолчанию в этой учётной записи для электронных писем и предпочтительный язык для внешнего вида сайта."
+msgid "authenticator-based login"
+msgstr "вход на основе проверки подлинности"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "Если у Вас есть <a href=\"@gravatar-check\"> действительный Gravatar</a>, связанный с вашим адресом электронной почты, он будет использоваться в качестве фотографии пользователя."
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Введите свой адрес электронной почты, чтобы получить инструкции по сбросу пароля (или используйте !authenticator_login)."
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Ваш Gravatar не будет отображаться, если Вы загрузите пользовательскую фотографию."
+msgid "Send"
+msgstr "Отправить"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "Если у Вас есть <a href=\"@gravatar-check\"> действительный Gravatar</a>, связанный с вашим адресом электронной почты, используйте его в качестве фотографии пользователя."
+msgid "Submitted by !username on !datetime"
+msgstr "Отправил !username от !datetime"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Gravatar не будет отображаться если загружен аватар."
+msgid "Send message"
+msgstr "Отправить сообщение"
 
-msgid "Avatar settings"
-msgstr "Настройки аватара"
+msgid "Add as friend"
+msgstr "Добавить друга"
 
-msgid "This is not available until your profile is set up."
-msgstr "Это не доступно до тех пор, пока не настроен ваш профиль."
+msgid "Website"
+msgstr "Веб-сайт"
 
-msgid "Create a profile"
-msgstr "Создать профиль"
+msgid "Team"
+msgstr "Команда"
 
-msgid "Upload an avatar"
-msgstr "Загрузить аватар"
+msgid "Create new team"
+msgstr "Создать новую команду"
 
-msgid "Forum settings"
-msgstr "Настройки форума"
+msgid "Search"
+msgstr "Поиск"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "В темах обсуждений показывать не более @comments_per_page"
+msgid "Total credits"
+msgstr "Всего очков"
 
-msgid "comments per page"
-msgstr "комментариев на страницу"
+msgid "Recent avg credits"
+msgstr "Очков в среднем за последнее время"
 
-msgid "Sort comments in discussions"
-msgstr "Сортировка комментариев в обсуждениях"
+msgid "Type"
+msgstr "Тип"
 
-msgid "Newest post first"
-msgstr "Сначала с самыми новыми сообщениями"
+msgid "New members in last day"
+msgstr "Новые участники за последний день"
 
-msgid "Oldest post first"
-msgstr "Сначала самые старые сообщения"
+msgid "Total members"
+msgstr "Всего участников"
 
-msgid "Signature"
-msgstr "Подпись"
+msgid "Active members"
+msgstr "Активных участников"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "Ваша подпись будет видна всем в конце ваших комментариев."
+msgid "Members with credit"
+msgstr "Участников с заработанными очками"
 
-msgid "Hide signatures in forums"
-msgstr "Скрывать подписи на форумах"
+msgid "Web site"
+msgstr "Вебсайт"
 
-msgid "Privacy settings"
-msgstr "Настройки конфиденциальности"
+msgid "Description"
+msgstr "Описание"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Могут ли @project и ваша команда (при наличии) отправлять Вам электронные письма?"
+msgid "BBcode help"
+msgstr "Справка по BBcode"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "Должен ли @project показывать ваши компьютеры на своём веб-сайте?"
+msgid "Post comment"
+msgstr "Добавить комментарий"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Главная"
+
+msgid "The latest news from the @site_name project"
+msgstr "Последние новости от проекта @site_name"
 
 msgid "Hide"
 msgstr "Скрыть"
@@ -971,29 +1023,219 @@ msgstr "Закрепить эту тему"
 msgid "moderation"
 msgstr "модерация"
 
-msgid "Post new comment"
-msgstr "Добавить новый комментарий"
+msgid "Reply"
+msgstr "Ответить"
 
-msgid "You must earn 1 more credit!"
-msgstr "Вы должны заработать ещё 1 очко!"
+msgid "Reply to this comment"
+msgstr "Ответить на этот комментарий"
 
-msgid "Joined"
-msgstr "Присоединился"
+msgid "Quote"
+msgstr "Цитата"
 
-msgid "Credit"
-msgstr "Очки"
+msgid "Reply to this comment with quote"
+msgstr "Ответить на этот комментарий с цитатой"
 
-msgid "RAC"
-msgstr "RAC"
+msgid "Edit"
+msgstr "Редактировать"
 
-msgid "Join team"
-msgstr "Присоединиться к команде"
+msgid "Edit this comment"
+msgstr "Редактировать этот комментарий"
 
-msgid "Click here to become a member of @this_team"
-msgstr "Нажмите здесь, чтобы стать участником команды @this_team"
+msgid "Delete"
+msgstr "Удалить"
 
-msgid "Join this team"
-msgstr "Присоединиться к этой команде"
+msgid "Delete this comment"
+msgstr "Удалить этот комментарий"
+
+msgid "Hide this comment"
+msgstr "Скрыть этот комментарий"
+
+msgid "Message @id"
+msgstr "Сообщение @id"
+
+msgid "Convert"
+msgstr "Конвертировать"
+
+msgid "Convert this comment to a new topic"
+msgstr "Конвертировать этот комментарий в новую тему"
+
+msgid "message @id"
+msgstr "сообщение @id"
+
+msgid " in response to !parent"
+msgstr " в ответ на !parent"
+
+msgid "Post new comment"
+msgstr "Добавить новый комментарий"
+
+msgid "Comments"
+msgstr "Комментарии"
+
+msgid "discuss"
+msgstr "обсудить"
+
+msgid "n/a"
+msgstr "н/д"
+
+msgid "@time ago"
+msgstr "@time назад"
+
+msgid "Threads"
+msgstr "Обсуждения"
+
+msgid "Posts"
+msgstr "Сообщения"
+
+msgid "Last post"
+msgstr "Последнее сообщение"
+
+msgid ""
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Пожалуйста, будьте ответственны в том, что Вы пишите, и не создавайте сообщения, которые являются оскорбительными или обидными. Оскорбительные сообщения или темы могут быть удалены модераторами форума без предупреждения или обсуждения. Не отвечайте на оскорбительные сообщения. Нажмите на кнопку \"отчёт\", расположенную в нижней части сообщения, чтобы обратить на него внимание модераторов."
+
+msgid "this project"
+msgstr "этот проект"
+
+msgid ""
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Мы также просим Вас вести все обсуждения на досках сообщений, касающихся @project или BOINC, за небольшим исключением доски сообщений о Науке, где Вы можете обсуждать всё, что относится к науке, лежащей в основе проекта. Участникам, заинтересованным в более широких обсуждениях, следует общаться на неофициальных форумах @project."
+
+msgid "These message boards now support BBCode tags only."
+msgstr "Эти доски сообщений теперь поддерживают только теги BBCode."
+
+msgid "Featured"
+msgstr "Рекомендуемые"
+
+msgid "Locked"
+msgstr "Заблокировано"
+
+msgid "Submitted on !datetime"
+msgstr "Отправлено !datetime"
+
+msgid "Computers pending"
+msgstr "Компьютеры в ожидании"
+
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "У этого пользователя ещё нет каких-либо связанных компьютеров. Компьютеры появятся, когда они заработают свои первые очки."
+
+msgid "Show IP address"
+msgstr "Показать IP-адрес"
+
+msgid "Download the desktop software"
+msgstr "Загрузите программное обеспечение для настольного компьютера"
+
+msgid "Run the installer"
+msgstr "Запустите программу установки"
+
+msgid "hours"
+msgstr "часов"
+
+msgid "When prompted enter @siteurl"
+msgstr "При появлении запроса введите @siteurl"
+
+msgid "Merge"
+msgstr "Объединить"
+
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Хост @id будет удалён из вашей учётной записи навсегда. Вы уверены, что это нормально?"
+
+msgid "Post topic"
+msgstr "Опубликовать тему"
+
+msgid "Leave team"
+msgstr "Покинуть команду"
+
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Нажмите здесь, чтобы отменить ваше членство в команде @this_team"
+
+msgid "Leave this team"
+msgstr "Покинуть эту команду"
+
+msgid "Request foundership"
+msgstr "Запросить смену основателя"
+
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Если основатель команды не активен и Вы хотите взять на себя роль основателя, нажмите ниже, чтобы запросить право основателя команды @this_team."
+
+msgid "Initiate request"
+msgstr "Инициировать запрос"
+
+msgid "No active computers"
+msgstr "Нет активных компьютеров"
+
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "У этого пользователя нет компьютеров, которые были активны в течение последних 30 дней."
+
+msgid "Clear"
+msgstr "Удалить"
+
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Это удалит все ваши настройки из конфигурации @name. Вы уверены?"
+
+msgid "Your community preferences have been updated."
+msgstr "Ваши настройки сообщества были обновлены."
+
+msgid "Combined preferences"
+msgstr "Объединённые настройки"
+
+msgid "Switch View"
+msgstr "Переключить вид"
+
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Это удалит все ваши настройки из конфигурации \"@name\". Вы уверены?"
+
+msgid "Approve profile"
+msgstr "Утвердить профиль"
+
+msgid "Approve this profile content"
+msgstr "Утвердить содержимое этого профиля"
+
+msgid "Reject this profile content"
+msgstr "Отклонить содержимое этого профиля"
+
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Эти параметры применяются ко всем проектам BOINC, в которых Вы участвуете."
+
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "На компьютерах, подключенных к нескольким проектам, будут использоваться настройки, изменённые самыми последними."
+
+msgid "Preferences last modified: @mod_time"
+msgstr "Последнее изменение настроек: @mod_time"
+
+msgid "every"
+msgstr "каждые"
+
+msgid "Add"
+msgstr "Добавить"
+
+msgid "My team"
+msgstr "Моя команда"
+
+msgid "You are a member of @team."
+msgstr "Вы участник команды @team."
+
+msgid "View my team"
+msgstr "Просмотр моей команды"
 
 msgid "Manage team"
 msgstr "Управление командой"
@@ -1040,148 +1282,38 @@ msgstr "Дискуссионный форум был создан для уча
 msgid "Enter forum"
 msgstr "Войти на форум"
 
-msgid "Leave team"
-msgstr "Покинуть команду"
+msgid "Join team"
+msgstr "Вступить в команду"
 
-msgid "Click here to revoke your membership with @this_team"
-msgstr "Нажмите здесь, чтобы отменить ваше членство в команде @this_team"
+msgid "Click here to become a member of @this_team"
+msgstr "Нажмите здесь, чтобы стать участником команды @this_team"
 
-msgid "Leave this team"
-msgstr "Покинуть эту команду"
+msgid "Join this team"
+msgstr "Вступить в эту команду"
 
-msgid "Edit message board"
-msgstr "Редактировать доску сообщений"
+msgid "Choose type"
+msgstr "Выберите тип"
 
-msgid "Message board title"
-msgstr "Заголовок доски сообщений"
+msgid "Team name"
+msgstr "Название команды"
 
 msgid "Text only, no HTML tags"
 msgstr "Только текст, без тегов HTML"
 
-msgid "Minimum time between posts"
-msgstr "Минимальное время между сообщениями"
-
-msgid "Seconds"
-msgstr "Cекунд"
+msgid "Team name -- HTML version (optional)"
+msgstr "Название команды -- HTML-версия (не обязательно)"
 
-msgid "Minimum total credit to post"
-msgstr "Минимальное общее количество очков для написания сообщений"
+msgid "You may use limited HTML tags"
+msgstr "Вы можете использовать ограниченные теги HTML"
 
-msgid "Minimum avg credit to post"
-msgstr "Минимальное среднее количество очков для написания сообщений"
+msgid "Team website (optional)"
+msgstr "Веб-сайт команды (не обязательно)"
 
-msgid "Allow public to read board?"
-msgstr "Разрешить публичный доступ на чтение доски?"
+msgid "Displayed on the team's page"
+msgstr "Отображается на странице команды"
 
-msgid "Save message board"
-msgstr "Сохранить доску сообщений"
-
-msgid "About message boards"
-msgstr "О досках сообщений"
-
-msgid "This is a team-only message board"
-msgstr "Это командная доска сообщений"
-
-msgid "Only members may post"
-msgstr "Только участники могут оставлять сообщения"
-
-msgid "Only members may read (optional)"
-msgstr "Только участники могут читать (опционально)"
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Основатель и Администраторы команды обладают правами модератора"
-
-msgid "Changing the team founder"
-msgstr "Изменение основателя команды"
-
-msgid "Notes about changes in foundership:"
-msgstr "Заметки об изменениях в возможностях основателя команды:"
-
-msgid "Any member of the team is eligible"
-msgstr "Любой участник команды имеет право"
-
-msgid "Current founder becomes a normal user"
-msgstr "Текущий основатель становится обычным пользователем"
-
-msgid "Foundership can be requested by team members:"
-msgstr "Права основателя могут быть запрошены членами команды:"
-
-msgid "One request is allowed at a time"
-msgstr "Единовременно разрешён только один запрос"
-
-msgid "It must be 60 days since any previous request"
-msgstr "Должно пройти 60 дней с момента любого предыдущего запроса"
-
-msgid "Any active request must be older than 90 days"
-msgstr "Любой активный запрос должен быть старше 90 дней"
-
-msgid "Current founder has 60 days to respond to a request"
-msgstr "У текущего основателя есть 60 дней для ответа на запрос"
-
-msgid "Add team admin"
-msgstr "Добавить администратора команды"
-
-msgid "Enter email address"
-msgstr "Введите адрес электронной почты"
-
-msgid "Current team admins"
-msgstr "Текущие администраторы команды"
-
-msgid "About team admins"
-msgstr "Об администраторах команды"
-
-msgid "Team admins can:"
-msgstr "Администраторы команды могут:"
-
-msgid "Edit team information"
-msgstr "Редактировать информацию о команде"
-
-msgid "View the team's join / quit history"
-msgstr "Просматривать историю присоединения/выхода из команды"
-
-msgid "Moderate the team forum"
-msgstr "Модерировать форум команды"
-
-msgid "Remove members from the team"
-msgstr "Удалять участников из команды"
-
-msgid "Disband a team if it has no members"
-msgstr "Расформировать команду, в которой нет участников"
-
-msgid "Team admins cannot:"
-msgstr "Администраторы команды не могут:"
-
-msgid "Change the team founder"
-msgstr "Поменять основателя команды"
-
-msgid "Add / Remove team admins"
-msgstr "Добавить или удалить администраторов команды"
-
-msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Если администратор команды покинет команду, он перестанет быть администратором команды. Мы рекомендуем выбирать только людей, которых Вы знаете и доверяете."
-
-msgid "Choose type"
-msgstr "Выберите тип"
-
-msgid "Team name"
-msgstr "Название команды"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "Название команды -- HTML-версия (не обязательно)"
-
-msgid "You may use limited HTML tags"
-msgstr "Вы можете использовать ограниченные теги HTML"
-
-msgid "Team website (optional)"
-msgstr "Веб-сайт команды (не обязательно)"
-
-msgid "Displayed on the team's page"
-msgstr "Отображается на странице команды"
-
-msgid "Type of team"
-msgstr "Тип команды"
+msgid "Type of team"
+msgstr "Тип команды"
 
 msgid "Accept new members?"
 msgstr "Принимать новых участников?"
@@ -1189,545 +1321,435 @@ msgstr "Принимать новых участников?"
 msgid "Description of team"
 msgstr "Описание команды"
 
-msgid "Create new team"
-msgstr "Создать новую команду"
-
 msgid "Create a team"
 msgstr "Создать команду"
 
 msgid "Save team"
 msgstr "Сохранить команду"
 
-msgid "Create team message board"
-msgstr "Создать доску сообщений команды"
-
-msgid "Create message board"
-msgstr "Создать доску сообщений"
-
-msgid "You may create a message board for use by @team"
-msgstr "Вы можете создать доску сообщений для общения в команде @team."
-
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Пожалуйста, установите минимальное среднее количество очков, которое пользователю необходимо иметь для того, чтобы писать на этой доске сообщений."
-
-msgid "Post new topic"
-msgstr "Опубликовать новую тему"
-
-msgid "Anonymous"
-msgstr "Анонимный"
-
-msgid "Unpublished"
-msgstr "Неопубликовано"
-
-msgid "parent removed"
-msgstr "родитель удалён"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "К сожалению, адрес электронной почты или пароль не распознаны."
-
-msgid "Have you forgotten your password?"
-msgstr "Вы забыли ваш пароль?"
-
-msgid "Id"
-msgstr "Id"
-
-msgid "Recent average credit"
-msgstr "В среднем за день"
-
-msgid "Members"
-msgstr "Участники"
-
-msgid "Total Credit"
-msgstr "Всего очков"
-
-msgid "User ID"
-msgstr "ID пользователя"
-
-msgid "User"
-msgstr "Участник"
-
-msgid "Admin since"
-msgstr "Администратор с"
-
-msgid "Team ID"
-msgstr "ID команды"
-
-msgid "User joined"
-msgstr "Пользователь присоединился"
-
-msgid "Timestamp"
-msgstr "Штамп времени"
-
-msgid "Account Key"
-msgstr "Ключ учётной записи"
-
-msgid "CPID"
-msgstr "CPID"
-
-msgid "Email Address"
-msgstr "Адрес электронной почты"
-
-msgid "Password Hash"
-msgstr "Хэш пароля"
-
-msgid "Postal Code"
-msgstr "Почтовый индекс"
-
-msgid "Send Email"
-msgstr "Отправить письмо"
-
-msgid "Show Hosts"
-msgstr "Показать компьютеры"
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Computer ID"
-msgstr "ID компьютера"
-
-msgid "Location"
-msgstr "Размещение"
-
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% времени разрешённого выполнения расчётов за время работы BOINC"
-
-msgid "Average turnaround time"
-msgstr "Среднее время обработки"
-
-msgid "Created"
-msgstr "Создан"
-
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "% времени подключения компьютера к Интернет за время работы BOINC"
-
-msgid "Average CPU efficiency"
-msgstr "Средняя эффективность ЦП"
-
-msgid "Free disk space"
-msgstr "Свободное дисковое пространство"
-
-msgid "Total disk space"
-msgstr "Полное дисковое пространство"
-
-msgid "Task duration correction factor"
-msgstr "Фактор исправления продолжительности выполнения задания"
-
-msgid "Avg. credit"
-msgstr "В среднем за день"
-
-msgid "External IP address"
-msgstr "Внешний IP-адрес"
-
-msgid "Cross project ID"
-msgstr "Межпроектный ID"
-
-msgid "Last IP address"
-msgstr "Последний IP-адрес"
-
-msgid "Cache"
-msgstr "Кэш"
-
-msgid "Memory"
-msgstr "Память"
-
-msgid "Swap space"
-msgstr "Файл подкачки"
-
-msgid "Maximum daily WU quota per CPU"
-msgstr "Максимальная ежедневная квота заданий на ЦП"
-
-msgid "Average download rate"
-msgstr "Средняя скорость загрузки данных"
-
-msgid "Average upload rate"
-msgstr "Средняя скорость отправки данных"
-
-msgid "Same IP address count"
-msgstr "Сколько раз был этот же IP-адрес"
-
-msgid "% of time BOINC client is running"
-msgstr "% времени работы клиента BOINC"
-
-msgid "Operating system"
-msgstr "Операционная система"
-
-msgid "Operating system version"
-msgstr "Версия операционной системы"
-
-msgid "Measured floating point speed"
-msgstr "Измеренная скорость вычислений с плавающей запятой"
-
-msgid "Measured integer speed"
-msgstr "Измеренная скорость целочисленных вычислений"
-
-msgid "CPU model"
-msgstr "Модель процессора"
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Если Вы уже используете BOINC, выберите команду <i>Добавить проект</i>."
 
-msgid "Number of processors"
-msgstr "Число процессоров"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Если Вы используете версию BOINC для командной строки, для создания учётной записи в этом проекте сначала используйте программное обеспечение BOINC Manager (или другое в случае необходимости), а затем используйте эту учётную запись для подключения с помощью версии для командной строки."
 
-msgid "CPU"
-msgstr "Тип ЦП"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Если Вы используете версию BOINC ниже 5.0, выполните обновление до более новой версии для создания учетной записи в этом проекте."
 
-msgid "Number of times client has contacted server"
-msgstr "Количество контактов клиента с сервером"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Если Вы забыли адрес электронной почты вашей учётной записи, или Вы не можете получить письмо:"
 
-msgid "Last contact"
-msgstr "Последний контакт"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Если BOINC запускался под этой учётной записью, Вы можете получить доступ к ней. Для этого нужно сделать следующее:"
 
-msgid "Serial number"
-msgstr "Серийный номер"
+msgid "BOINC documentation"
+msgstr "Документация BOINC"
 
-msgid "Timezone"
-msgstr "Часовой пояс"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Перейдите в каталог данных BOINC на вашем компьютере (см.  !boinc_wiki для получения помощи)."
 
-msgid "Platform ID"
-msgstr "ID платформы"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Найдите там файл учётной записи для этого проекта; он будет называться %file (где %url - URL-адрес проекта)."
 
-msgid "Task ID"
-msgstr "ID задания"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Откройте этот файл в текстовом редакторе, например в Блокноте. Вы увидите что-то вроде:"
 
-msgid "Workunit ID"
-msgstr "ID задачи"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Выберите и скопируйте строку между <authenticator> и </authenticator> (%auth в вышеприведённом примере)."
 
-msgid "Host ID"
-msgstr "ID компьютера"
+msgid "Paste the string into the field below, and click OK."
+msgstr "Вставьте эту строку в расположенное ниже поле, и нажмите OK."
 
-msgid "Application ID"
-msgstr "ID приложения"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Теперь Вы авторизованы; обновите адрес электронной почты и пароль для вашей учётной записи."
 
-msgid "Application version"
-msgstr "Версия приложения"
+msgid "Log in with authenticator"
+msgstr "Авторизоваться с аутентификатором"
 
-msgid "Claimed credit"
-msgstr "Запрошено очков"
+msgid "OK"
+msgstr "OK"
 
-msgid "Client state"
-msgstr "Состояние клиента"
+msgid "Post new topic"
+msgstr "Опубликовать новую тему"
 
-msgid "CPU time"
-msgstr "Время ЦП"
+msgid "Create team message board"
+msgstr "Создать доску сообщений команды"
 
-msgid "Run time"
-msgstr "Время выполнения"
+msgid "Message board title"
+msgstr "Заголовок доски сообщений"
 
-msgid "Exit status"
-msgstr "Статус выхода"
+msgid "Minimum time between posts"
+msgstr "Минимальное время между сообщениями"
 
-msgid "Granted credit"
-msgstr "Предоставлено очков"
+msgid "Seconds"
+msgstr "Cекунд"
 
-msgid "Outcome"
-msgstr "Результат выполнения"
+msgid "Minimum total credit to post"
+msgstr "Минимальное общее количество очков для написания сообщений"
 
-msgid "Received time"
-msgstr "Время получения"
+msgid "Minimum avg credit to post"
+msgstr "Минимальное среднее количество очков для написания сообщений"
 
-msgid "Report deadline"
-msgstr "Крайний срок отчёта"
+msgid "Allow public to read board?"
+msgstr "Разрешить публичный доступ на чтение доски?"
 
-msgid "Sent"
-msgstr "Отправлен"
+msgid "Create message board"
+msgstr "Создать доску сообщений"
 
-msgid "Server state"
-msgstr "Состояние сервера"
+msgid "About message boards"
+msgstr "О досках сообщений"
 
-msgid "Stderr out"
-msgstr "Текст протокола"
+msgid "You may create a message board for use by @team"
+msgstr "Вы можете создать доску сообщений для общения в команде @team."
 
-msgid "Validation state"
-msgstr "Состояние проверки"
+msgid "Only members may post"
+msgstr "Только участники могут оставлять сообщения"
 
-msgid "App ID"
-msgstr "ID приложения"
+msgid "Only members may read (optional)"
+msgstr "Только участники могут читать (опционально)"
 
-msgid "Canonical credit"
-msgstr "Канонических очков"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Основатель и Администраторы команды обладают правами модератора"
 
-msgid "Canonical result ID"
-msgstr "ID канонического результата"
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (такой же последние @count раз)"
 
-msgid "Created time"
-msgstr "Время создания"
+msgid "Revise or post comment"
+msgstr "Изменить или добавить комментарий"
 
-msgid "Error mask"
-msgstr "Маска ошибок"
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Иногда BOINC по ошибке назначает различные идентификаторы одному и тому же компьютеру. Вы можете исправить это объединив старые идентификаторы с самым новым."
 
-msgid "Minimum quorum"
-msgstr "Минимальный кворум"
+msgid ""
+"Check the computers that are the same as @name (created on @date at @time "
+"with computer ID @id)"
+msgstr "Отметьте компьютеры, такие же как и @name (создан @date в @time с ID компьютера @id)"
 
-msgid "Max error tasks"
-msgstr "Макс количество ошибочных заданий"
+msgid "Computer @old_id has been merged successfully into @id."
+msgstr "Компьютер @old_id успешно объединён с @id."
 
-msgid "Max success tasks"
-msgstr "Макс количество успешных заданий"
+msgid "parent removed"
+msgstr "родитель удалён"
 
-msgid "Max total tasks"
-msgstr "Макс общее количество заданий"
+msgid "Remove"
+msgstr "Удалить"
 
-msgid "Needs validation"
-msgstr "Необходима проверка"
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
+msgstr "При изменении адреса электронной почты или установке нового пароля требуется проверка подлинности."
 
-msgid "Initial replication"
-msgstr "Начальная репликация"
+msgid "Make unsticky"
+msgstr "Открепить"
 
-msgid "Target number of results"
-msgstr "Целевое количество результатов"
+msgid "Remove sticky status from this topic"
+msgstr "Удалить признак закрепления с этой темы"
 
-msgid "Application version ID"
-msgstr "ID версии приложения"
+msgid "Unhide"
+msgstr "Показать"
 
-msgid "Plan class"
-msgstr "План-класс"
+msgid "Unhide this comment"
+msgstr "Показать этот комментарий"
 
-msgid "Version number"
-msgstr "Номер версии"
+msgid "Unpublished"
+msgstr "Неопубликовано"
 
-msgid "Computer"
-msgstr "Компьютер"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Компьютеры @old_ids успешно объединены с @id."
 
-msgid "App version ID"
-msgstr "ID версии приложения"
+msgid "Joined"
+msgstr "Вступил"
 
-msgid "Consecutive valid tasks"
-msgstr "Правильные задания завершённые подряд"
+msgid "Credit"
+msgstr "Очки"
 
-msgid "Number of tasks completed"
-msgstr "Число завершённых заданий"
+msgid "RAC"
+msgstr "RAC"
 
-msgid "Max tasks per day"
-msgstr "Максимум заданий в день"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Учётной записи не существует для @email -- выберите \"Создать новую учётную запись\", чтобы зарегистрироваться"
 
-msgid "Number of tasks today"
-msgstr "Число заданий сегодня"
+msgid "started discussion"
+msgstr "началось обсуждение"
 
-msgid "Show IP address"
-msgstr "Показать IP-адрес"
+msgid "commented on"
+msgstr "прокомментировал"
 
-msgid "hours"
-msgstr "часов"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Введённый пароль не действителен. Пожалуйста, проверьте, что он правильный."
 
-msgid "@count million ops/sec"
-msgstr "@count млн операций/с"
+msgid "Minimum value not met for @field"
+msgstr "Минимальное значение не встретилось для @field"
 
-msgid "@rate KiB/sec"
-msgstr "@rate КБ/с"
+msgid "Invalid data type for @field"
+msgstr "Недопустимый тип данных для @field"
 
-msgid "@count days"
-msgstr "@count дней"
+msgid "News"
+msgstr "Новости"
 
 msgid "Remove friend"
 msgstr "Удалить друга"
 
-msgid "Ban user"
-msgstr "Заблокировать пользователя"
+msgid "ignore list"
+msgstr "списке игнорирования"
 
-msgid "Add as friend"
-msgstr "Добавить друга"
+msgid "here"
+msgstr "здесь"
 
-msgid "Team"
-msgstr "Команда"
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username в вашем !ignore_list. Нажмите !here, чтобы увидеть это сообщение."
 
-msgid "Reply"
-msgstr "Ответить"
+msgid "hidden"
+msgstr "скрыто"
 
-msgid "Reply to this comment"
-msgstr "Ответить на этот комментарий"
+msgid "Unknown"
+msgstr "Неизвестно"
 
-msgid "Quote"
-msgstr "Цитата"
+msgid "Invalid setting for \"%preference\""
+msgstr "Недопустимый параметр для \"%preference\""
 
-msgid "Reply to this comment with quote"
-msgstr "Ответить на этот комментарий с цитатой"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: комментарий размещён в \"!topic_name\""
 
-msgid "Edit this comment"
-msgstr "Редактировать этот комментарий"
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author ответил в \"!topic_name\"."
 
-msgid "Delete this comment"
-msgstr "Удалить этот комментарий"
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Для просмотра этой темы на сайте !site нажмите здесь: \n!comment_url"
 
-msgid "Hide this comment"
-msgstr "Скрыть этот комментарий"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "У основателя команды есть @count дней для ответа на ваш запрос."
 
-msgid "Convert"
-msgstr "Конвертировать"
+msgid "Unlock"
+msgstr "Разблокировать"
 
-msgid "Convert this comment to a new topic"
-msgstr "Конвертировать этот комментарий в новую тему"
+msgid "Unlock this thread for comments"
+msgstr "Разблокировать это обсуждение для комментариев"
 
-msgid "Details"
-msgstr "Подробности"
+msgid "project"
+msgstr "проект"
 
-msgid "@ip_address (same the last @count times)"
-msgstr "@ip_address (такой же последние @count раз)"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email не является хорошо сформированным адресом электронной почты, пожалуйста, проверьте"
 
-msgid "commented on"
-msgstr "прокомментировал"
+msgid "Please enter your email address"
+msgstr "Укажите адрес вашей электронной почты"
 
-msgid "Make unsticky"
-msgstr "Открепить"
+msgid "There is no account with that authenticator."
+msgstr "Учётная запись с таким аутентификатором отсутствует."
 
-msgid "Remove sticky status from this topic"
-msgstr "Удалить признак закрепления с этой темы"
+msgid "That authenticator is not valid."
+msgstr "Этот аутентификатор не является допустимым."
+
+msgid "Send request"
+msgstr "Отправить запрос"
+
+msgid "Friend request from !name [!site]"
+msgstr "Запрос дружбы от !name [!site]"
+
+msgid "Message"
+msgstr "Сообщение"
 
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Иногда BOINC по ошибке назначает различные идентификаторы одному и тому же компьютеру. Вы можете исправить это объединив старые идентификаторы с самым новым."
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name добавил Вас как друга в проекте !site. Вы можете утвердить или отклонить этот запрос. Отклонение запроса не отправит уведомление, но при этом запрос будет удалён из обоих ваших учётных записей.\n\nЧтобы просмотреть этот запрос, пройдите по ссылке ниже:\n!link\n\n!message\n\nСпасибо,\nКоманда !site"
+
+msgid "Cancel friend request"
+msgstr "Отменить запрос дружбы"
+
+msgid "Please set the minimum time required between posts."
+msgstr "Пожалуйста, установите минимальное время между сообщениями."
 
 msgid ""
-"Check the computers that are the same as @name (created on @date at @time "
-"with computer ID @id)"
-msgstr "Отметьте компьютеры, такие же как и @name (создан @date в @time с ID компьютера @id)"
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Пожалуйста, установите минимальное количество очков, которое пользователю необходимо заработать для того, чтобы писать на этой доске сообщений."
 
-msgid "Computer @old_id has been merged successfully into @id."
-msgstr "Компьютер @old_id успешно объединён с @id."
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Пожалуйста, установите минимальное среднее количество очков, которое пользователю необходимо иметь для того, чтобы писать на этой доске сообщений."
 
-msgid "started discussion"
-msgstr "началось обсуждение"
+msgid "Edit message board"
+msgstr "Редактировать доску сообщений"
 
-msgid "posted"
-msgstr "опубликовано"
+msgid "Save message board"
+msgstr "Сохранить доску сообщений"
 
-msgid "Minimum value not met for @field"
-msgstr "Минимальное значение не встретилось для @field"
+msgid "This is a team-only message board"
+msgstr "Это командная доска сообщений"
 
-msgid "Remove"
-msgstr "Удалить"
+msgid "Maximum value exceeded for @field"
+msgstr "Для @field превышено максимальное значение"
 
-msgid "hidden"
-msgstr "скрыто"
+msgid "Approve request"
+msgstr "Утвердить запрос"
 
-msgid "Invalid data type for @field"
-msgstr "Недопустимый тип данных для @field"
+msgid "!name accepted your friend request [!site]"
+msgstr "!name принял ваш запрос дружбы [!site]"
 
 msgid ""
-"Authentication is required when changing E-mail address or setting new "
-"password."
-msgstr "При изменении адреса электронной почты или установке нового пароля требуется проверка подлинности."
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name подтвердил дружбу с вами в проекте !site.\n\nСледуйте по этой ссылке, чтобы просмотреть его или её профиль:\n!link\n\n!message\n\nСпасибо,\nКоманда !site"
 
-msgid "Request foundership"
-msgstr "Запросить смену основателя"
+msgid "posted"
+msgstr "опубликовано"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Если основатель команды не активен и Вы хотите взять на себя роль основателя, нажмите ниже, чтобы запросить право основателя команды @this_team."
+msgid "Add team admin"
+msgstr "Добавить администратора команды"
 
-msgid "Initiate request"
-msgstr "Инициировать запрос"
+msgid "Enter email address"
+msgstr "Введите адрес электронной почты"
 
-msgid "A BOINC account already exists for @email."
-msgstr "Для @email уже существует учётная запись BOINC."
+msgid "Current team admins"
+msgstr "Текущие администраторы команды"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Пожалуйста, будьте ответственны в том, что Вы пишите, и не создавайте сообщения, которые являются оскорбительными или обидными. Оскорбительные сообщения или темы могут быть удалены модераторами форума без предупреждения или обсуждения. Не отвечайте на оскорбительные сообщения. Нажмите на кнопку \"отчёт\", расположенную в нижней части сообщения, чтобы обратить на него внимание модераторов."
+msgid "About team admins"
+msgstr "Об администраторах команды"
 
-msgid "this project"
-msgstr "этот проект"
+msgid "Team admins can:"
+msgstr "Администраторы команды могут:"
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "Мы также просим Вас вести все обсуждения на досках сообщений, касающихся @project или BOINC, за небольшим исключением доски сообщений о Науке, где Вы можете обсуждать всё, что относится к науке, лежащей в основе проекта. Участникам, заинтересованным в более широких обсуждениях, следует общаться на неофициальных форумах @project."
+msgid "Edit team information"
+msgstr "Редактировать информацию о команде"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "Эти доски сообщений теперь поддерживают только теги BBCode."
+msgid "View the team's join / quit history"
+msgstr "Просматривать историю вступления/выхода из команды"
 
-msgid "Posts contributed"
-msgstr "Сообщений размещено"
+msgid "Moderate the team forum"
+msgstr "Модерировать форум команды"
 
-msgid "Profile awaiting moderator approval"
-msgstr "Профиль ожидает одобрения модератором"
+msgid "Remove members from the team"
+msgstr "Удалять участников из команды"
 
-msgid "Approve profile"
-msgstr "Утвердить профиль"
+msgid "Disband a team if it has no members"
+msgstr "Расформировать команду, в которой нет участников"
 
-msgid "Approve this profile content"
-msgstr "Утвердить содержимое этого профиля"
+msgid "Team admins cannot:"
+msgstr "Администраторы команды не могут:"
 
-msgid "Edit profile"
-msgstr "Редактировать профиль"
+msgid "Change the team founder"
+msgstr "Поменять основателя команды"
 
-msgid "Edit the content of this profile"
-msgstr "Изменить содержимое этого профиля"
+msgid "Add / Remove team admins"
+msgstr "Добавить или удалить администраторов команды"
 
-msgid "Remove profile"
-msgstr "Удалить профиль"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Если администратор команды покинет команду, он перестанет быть администратором команды. Мы рекомендуем выбирать только людей, которых Вы знаете и доверяете."
 
-msgid "Remove this profile content from the system"
-msgstr "Удалить содержимое этого профиля из системы"
+msgid "Lift user ban"
+msgstr "Снять запрет с пользователя"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "У основателя команды есть @count дней для ответа на ваш запрос."
+msgid "A team named \"@name\" already exists."
+msgstr "Команда с названием \"@name\" уже существует."
 
-msgid "Reject profile"
-msgstr "Отклонить профиль"
+msgid "A BOINC account already exists for @email."
+msgstr "Для @email уже существует учётная запись BOINC."
 
-msgid "Reject this profile content"
-msgstr "Отклонить содержимое этого профиля"
+msgid "Make founder"
+msgstr "Сделать основателя"
 
-msgid "Reason for rejecting this profile"
-msgstr "Причина для отклонения этого профиля"
+msgid "Changing the team founder"
+msgstr "Изменение основателя команды"
 
-msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Эта причина будет включена в сообщение электронной почты пользователю. Пожалуйста, напишите краткое объяснение проблемы и как её исправить."
+msgid "Notes about changes in foundership:"
+msgstr "Заметки об изменениях в возможностях основателя команды:"
 
-msgid "Submit"
-msgstr "Отправить"
+msgid "Any member of the team is eligible"
+msgstr "Любой участник команды имеет право"
 
-msgid "project"
-msgstr "проект"
+msgid "Current founder becomes a normal user"
+msgstr "Текущий основатель становится обычным пользователем"
 
-msgid "Unknown"
-msgstr "Неизвестно"
+msgid "Foundership can be requested by team members:"
+msgstr "Права основателя могут быть запрошены членами команды:"
 
-msgid "Pending"
-msgstr "Ожидание"
+msgid "One request is allowed at a time"
+msgstr "Единовременно разрешён только один запрос"
 
-msgid "User of the day"
-msgstr "Пользователь Дня"
+msgid "It must be 60 days since any previous request"
+msgstr "Должно пройти 60 дней с момента любого предыдущего запроса"
 
-msgid "Account"
-msgstr "Учётная запись"
+msgid "Any active request must be older than 90 days"
+msgstr "Любой активный запрос должен быть старше 90 дней"
 
-msgid "Log in"
-msgstr "Войти"
+msgid "Current founder has 60 days to respond to a request"
+msgstr "У текущего основателя есть 60 дней для ответа на запрос"
 
-msgid "Send"
-msgstr "Отправить"
+msgid "BOINC-wide teams site"
+msgstr "Сайт глобальных команд BOINC"
 
-msgid "News"
-msgstr "Новости"
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Это глобальная команда BOINC. Изменения могут быть сделаны на !site."
 
-msgid "Unlock"
-msgstr "Разблокировать"
+msgid ""
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Недавно уже была запрошена смена основателя команды. Разрешён только один запрос в течение 90 дней."
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "Вставьте эту строку в расположенное ниже поле, и нажмите OK."
+msgid "@count days remaining"
+msgstr "осталось @count дней"
+
+msgid "Team name is required."
+msgstr "Требуется имя команды."
+
+msgid "Reason for banning this user"
+msgstr "Причина для запрета этого пользователя"
 
 msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Теперь Вы авторизованы; обновите адрес электронной почты и пароль для вашей учётной записи."
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Эта причина будет включена в электронное письмо пользователю. Пожалуйста, напишите краткое объяснение, почему этот пользователь запрещён."
 
-msgid "Log in with authenticator"
-msgstr "Авторизоваться с аутентификатором"
+msgid "Duration of the ban"
+msgstr "Продолжительность запрета"
 
-msgid "Assume foundership"
-msgstr "Принять полномочия основателя"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Количество дней до истечения срока действия запрета. Установите значение 0, чтобы запретить навсегда."
 
-msgid "Unhide"
-msgstr "Показать"
+msgid "Submit"
+msgstr "Отправить"
diff --git a/locale/ru/BOINC-Manager.mo b/locale/ru/BOINC-Manager.mo
index 8838e72..451cb4d 100644
Binary files a/locale/ru/BOINC-Manager.mo and b/locale/ru/BOINC-Manager.mo differ
diff --git a/locale/ru/BOINC-Manager.po b/locale/ru/BOINC-Manager.po
index bc5e657..24c9a50 100644
--- a/locale/ru/BOINC-Manager.po
+++ b/locale/ru/BOINC-Manager.po
@@ -1,63 +1,57 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # Dan <mutari.dirk at gmail.com>, 2015
-# Nikolay Sakharov <saharovna at gmail.com>, 2015
+# Николай Сахаров <saharovna at gmail.com>, 2015
+# Николай Сахаров <saharovna at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-03-03 14:24+0000\n"
-"Last-Translator: Nikolay Sakharov <saharovna at gmail.com>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-10 18:24+0000\n"
+"Last-Translator: Николай Сахаров <saharovna at gmail.com>\n"
 "Language-Team: Russian (http://www.transifex.com/boinc/boinc/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ru\n"
 "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Идентифицируйте свою учётную запись в %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Укажите данные вашей учётной записи\n(учётная запись создаётся на сайте проекта)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Создание новых учётных записей в этом проекте запрещено.\nВы можете добавить его, если Вы в нём уже зарегистрированы."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Вы уже зарегистрированы в проекте?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "Нет, новый участник"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "Да, уже зарегистрирован"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -67,85 +61,85 @@ msgid ""
 "password fields."
 msgstr "Не удалось автоматически настроить вашу\nучётную запись.\n\nПожалуйста нажмите ссылку 'Найти информацию для регистрации',\nнаходящуюся ниже, чтобы узнать, что ввести в\nполе адреса электронной почты и пароля."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Найти информацию для регистрации"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "Пароль:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Введите пароль:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "Повторный ввод пароля:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Вы уже зарегистрированы в проекте %s?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "Имя участника:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "Адрес электронной почты или идентификатор LDAP:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "Адрес электронной почты:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "минимум %d символов"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Забыли пароль?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Если Вы еще не зарегистрировались в этом менеджере проектов,\nпожалуйста сделайте это перед тем, как продолжить.  Нажмите на ссылку ниже,\nчтобы зарегистрироваться или восстановить забытый пароль."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Веб-сайт менеджера проектов"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Добавить проект"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Обновление менеджера проектов"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Использовать менеджер проектов"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Пожалуйста, введите имя пользователя."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Укажите адрес электронной почты."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Укажите пароль, состоящий по крайней мере из %d символов."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "'Пароль' и 'Подтверждение пароля' не совпадают. Повторите ввод пароля."
@@ -198,11 +192,11 @@ msgstr "Пожалуйста подождите..."
 msgid "An internal server error has occurred.\n"
 msgstr "Произошла внутренняя ошибка сервера.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Соединение установлено"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Отсутствует соединение"
 
@@ -217,8 +211,8 @@ msgid "Open another %s window"
 msgstr "Открыть ещё одно окно %s"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Сменить компьютер..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Сменить компьютер...\tCtrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -528,7 +522,7 @@ msgstr "&Веб-сайт %s"
 msgid "Show information about BOINC and %s"
 msgstr "Показать информацию о BOINC и %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -563,12 +557,12 @@ msgstr "Сервис"
 msgid "&Help"
 msgstr "Справка"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Прекратить использование %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -578,39 +572,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Если Вы прекратите использование %s,\nвсе ваши текущие проекты сохранятся,\nно Вы должны будете управлять ими вручную.\n\nВы действительно хотите прекратить использовать %s?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Завершение работы текущего BOINC клиента..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s остановит подключенного в данный момент клиента,\nи запросит у Вас для подключения адрес другого компьютера."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s успешно добавил проект %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Идёт подключение к %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Подключен к %s (%s)"
@@ -659,7 +653,7 @@ msgid "%s - Communication"
 msgstr "%s - Установка связи"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Отмена"
@@ -734,7 +728,7 @@ msgid ""
 msgstr "%s не подключен к клиенту %s.\nДля подключения к клиенту %s воспользуйтесь меню 'Дополнительно\\Сменить компьютер...'.\nДля локального компьютера используйте 'localhost' в качестве имени компьютера."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Веб-страницы проекта"
 
@@ -794,7 +788,7 @@ msgstr "%s разорвал подключение к интернету."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s не удалось разорвать подключение к интернету."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -807,170 +801,170 @@ msgid ""
 "     user group."
 msgstr "В настоящий момент у Вас нет прав на управление клиентом.\n\nЧтобы запустить %s под текущим пользователем, необходимо:\n - переустановить ПО %s, ответив \"Да\" на вопрос\n   о пользователях без административных прав\nили\n - обратиться к Вашему администратору, чтобы он добавил Вас\n   в группу пользователей 'boinc_master'."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "Владелец %s или права доступа установлены некорректно; пожалуйста переустановите ПО %s.\n(Код ошибки %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " на "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "Требуется перезагрузка для корректной работы клиента BOINC.\nПожалуйста, перезагрузите Ваш компьютер и попытайтесь еще раз."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC менеджер"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC менеджер был автоматически запущен операционной системой"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "сворачивать BOINC менеджер в значок на панели задач при запуске"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Каталог, содержащий исполняемый файл клиента BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Каталог данных BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Имя или IP-адрес компьютера"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "Номер порта GUI RPC"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Пароль"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "запускать BOINC клиент с ключами запуска"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "отключить политику безопасности доступа пользователей к BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "включить режим отладки менеджера обложек для вывода сообщений об ошибках"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "разрешено несколько экземпляров менеджера BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Не используется: обход ошибки в XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Не запускать демон"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Автоопределение)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Неизвестный)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Пользовательский)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Посетить веб-страницу %s..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Открыть %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Приостановить на час"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Приостановить ГП на час"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "Выход"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Запустить"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Запустить ГП"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Обработка разрешена"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Обработка приостановлена - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Обработка на ГП разрешена"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "Обработка на ГП приостановлена - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Доступ в интернет разрешен"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Доступ в интернет приостановлен - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Повторное подключение к клиенту."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Не подключен к клиенту."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "Уведомления %s"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Есть новые уведомления - нажмите для просмотра."
 
@@ -1085,46 +1079,6 @@ msgstr "Для получения дополнительной информац
 msgid "&OK"
 msgstr "OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Неверное число"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Неверное время. Значение должно быть между 0:00 и 24:00 в формате ЧЧ:ММ"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "Время начала должно отличаться от времени окончания"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Число должно быть от 0 до 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Число должно быть от 0 до 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Число должно быть от 1 до 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "обнаружено некорректное значение"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Ошибка проверки"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Отменить локальные настройки и использовать веб-настройки?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Подтверждение"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1172,7 +1126,7 @@ msgid "Daily schedules"
 msgstr "Ежедневное расписание"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1187,7 +1141,7 @@ msgstr "Закрыть диалоговое окно без сохранения
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Помощь"
@@ -1586,75 +1540,123 @@ msgstr "Передавать файлы только в конкретный п
 msgid "Transfer files only between"
 msgstr "Передавать файлы только между"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Неверное число"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Неверное время. Значение должно быть между 0:00 и 24:00 в формате ЧЧ:ММ"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Время начала должно отличаться от времени окончания"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Число должно быть от 0 до 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Число должно быть от 0 до 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Число должно быть от 1 до 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "обнаружено некорректное значение"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Ошибка проверки"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Отменить локальные настройки и использовать веб-настройки?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Подтверждение"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "Флаги журнала диагностики %s"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Эти флаги включают различные типы диагностических сообщений в Журнале событий."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Подробнее..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Сохранить все значения и закрыть окно"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "По умолчанию"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Восстановить настройки по умолчанию"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Закрыть диалоговое окно без сохранения"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Применить"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Сохранить все значения"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Просмотр событий"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Проект"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Время"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Сообщение"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "Показать только этот проект"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Копировать все"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Копировать все сообщения в буфер обмена."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Копировать выделенное"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1662,7 +1664,7 @@ msgid ""
 "messages."
 msgstr "Копировать выделенные сообщения в буфер обмена. Можно использовать SHIFT и CTRL для выделения нескольких сообщений."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1670,19 +1672,19 @@ msgid ""
 "messages."
 msgstr "Копировать выделенные сообщения в буфер обмена. Можно использовать SHIFT и CTRL для выделения нескольких сообщений."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "Закрыть"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Показать все сообщения"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Показать все сообщения"
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Показать сообщения только от выбранного проекта."
 
@@ -1705,7 +1707,7 @@ msgid "Add an application to this list"
 msgstr "Добавить приложение в список"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Удалить"
 
@@ -2039,14 +2041,14 @@ msgstr "Выделено ресурсов"
 msgid "Estimated computation size"
 msgstr "Предполагаемый объём вычислений"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "Время ЦП в контрольной точке"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Время ЦП"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Время ЦП с последней контрольной точки"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Затрачено времени"
@@ -2096,8 +2098,8 @@ msgstr "в секунду"
 msgid "Executable"
 msgstr "Исполняемый файл"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Локальное: "
 
@@ -2456,203 +2458,191 @@ msgstr "Описания проектов"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Подробные описания проектов запущенных в рамках WCG"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Запуск клиента"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Подключение к клиенту"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Обновляется информация о состоянии системы; пожалуйста подождите..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Отсутствует приложение"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Пожалуйста загрузите и установите приложение CoRD с сайта http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "питание от аккумуляторов"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "компьютер используется для работы"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "запрос пользователя"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "в зависимости от времени суток"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "запущен тест производительности"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "необходимо место на диске - проверьте настройки"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "компьютер не используется для работы"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "запуск"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "выполняется эксклюзивное приложение"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "процессор занят"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "превышен лимит использования сети"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "запрошен операционной системой"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "неизвестная причина"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "Отсутствие ГП, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Новое"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Ошибка загрузки данных"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Загрузка данных"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (приостановлено - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Проект приостановлен пользователем"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Обработка задания приостановлена пользователем"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Приостановлено - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "ГП приостановлен - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Ожидание освобождения оперативной памяти"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Ожидание освобождения разделяемой оперативной памяти (shared memory)"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Работает"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (без использования ЦП)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Ждёт своей очереди"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Готово к запуску"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Отложено: "
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Отложено"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "Ожидание доступа к сети"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Ошибка вычислений"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Ошибка отправки данных"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Отправка данных"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Прервано пользователем"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Прервано проектом"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Прервано: не было запущено до крайнего срока"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Прервано: превышен предел используемого заданием дискового пространства"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Прервано: превышен предел времени выполнения"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Прервано: превышен предел используемой памяти"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Прервано"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Признано"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Ожидается подтверждение о приеме данных"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Ошибка: недопустимое состояние '%d'"
@@ -2716,7 +2706,7 @@ msgstr "Выберите понравившийся проект щёлкнув
 msgid "Categories:"
 msgstr "Категории:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Проекты:"
 
@@ -2760,24 +2750,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Этот проект уже добавлен. Выберите другой проект."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Установка связи с проектом."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Устанавливается связь с сервером проекта\nПожалуйста подождите..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Необходимые файлы не найдены на сервере."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Произошла внутренняя ошибка сервера."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Устанавливается связь с сервером проекта\nПожалуйста подождите..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2875,1024 +2862,938 @@ msgstr "Автоопределение"
 msgid "SOCKS proxy"
 msgstr "SOCKS прокси"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Условия использования"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Обложка"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Ознакомтесь с условиями использования программы:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Выберите внешний вид пользовательского интерфейса."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Я согласен с условиями."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Полный вид...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Я не согласен с условиями использования."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Изменить внешний вид на более продвинутый."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Проект временно недоступен"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Настройки графического интерфейса программы и прокси серверов"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Проект в данный момент недоступен.\n\nПопробуйте подключиться позже."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Показать диагностические сообщения."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Менеджер проектов временно недоступен"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Менеджер проектов в данный момент недоступен.\n\nПопробуйте подключиться позже."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "По умолчанию"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Введите учётный ключ для продолжения."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Приостановить"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Введен не правильный учётный ключ, повторите ввод ключа"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Приостановить вычисления"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Ошибка проверки правильности ввода данных"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Возобновить вычисления"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Укажите адрес электронной почты"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Уведомления"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Введен неправильный адрес электронной почты;\nповторите ввод адреса электронной почты"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Открыть окно просмотра уведомлений проектов и BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Не указан адрес (URL)"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Получить справку по %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Введите адрес (URL).\nПример:\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Получение уведомлений; пожалуйста подождите..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Не корректный адрес (URL)"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "На данный момент нет уведомлений."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Введите корректный адрес (URL).\nПример:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Закрыть"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "Компьютер (хост) с именем: '%s' не найден."
+msgid "%s - Notices"
+msgstr "%s - Уведомления "
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "Указанный путь: '%s' не существует."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Действия"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Копировать все"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Копировать выделенное"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Сообщения проекта"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Показать сообщения только от выбранного проекта."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Сообщения"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "В буфер обмена копируются все сообщения..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "В буфер обмена копируются выделенные сообщения..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Фильтрация сообщений..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Все сообщения"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Показать все сообщения."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Для дополнительных параметров выберите 'Настройки клиента' в меню 'Полный вид'."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Получение уведомлений; пожалуйста подождите..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "ГБ дискового пространства"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "На данный момент нет уведомлений."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Настройки вычислений"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Уведомления"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Отменить все локальные настройки и использовать веб-настройки?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Обновить"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Получить информацию с сервера проекта: о подтверждении передачи завершенных заданий, о количестве набранных очков, о настройках учётной записи и (возможно) закачке новых заданий."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Приостановить"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Приостановить обработку выделенного проекта."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Не запрашивать задания"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Не запрашивать новые задания с сервера проекта."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Перезапустить проект"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Удалить ВСЕ файлы и задания выделенного проекта и закачать новые.\nВНИМАНИЕ: не забудьте перед данной операцией отправить все завершенные задания для данного проекта."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Удалить этот проект.  Обрабатываемые в данный момент задания будут потеряны (используйте 'Обновить' перед данной операцией, чтобы отправить все завершенные задания)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Информация"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Информация о проекте."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Учётная запись"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Заработанные очки"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "В среднем за день"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Состояние"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Проекты"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Обновляется информация о проекте..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Проект запускается..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Приостанавливается выполнение проекта..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Продолжить обработку выделенного проекта."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Передается запрос на разрешение получения новых заданий для обработки..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Получать новые задания"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Передается запрос на запрет получения новых заданий для обработки..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Запрашивать новые задания с сервера проекта."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Проект перезапускается..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Не запрашивать новые задания с сервера проекта."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Вы действительно хотите перезапустить проект '%s'?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Перезапуск проекта"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Удаление проекта..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Вы действительно хотите удалить проект '%s'?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Удалить проект"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Загружается браузер..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Добавить проект"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Продолжить обработку выделенного проекта."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Синхронзировать"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Получать новые задания"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Для этого проекта работа завершена"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Запрашивать новые задания с сервера проекта."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Стать участником в любом или во всех 30+ проектах во многих областях науки"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Не запрашивать новые задания с сервера проекта."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Синхронизация информации о проектах и настройках между BOINC клиентом и менеджером проектов"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Запрошено пользователем"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Выбрать проект используя расположенные ниже элементы управления"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "Запросить задания"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Веб-страницы проекта"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "Сообщить о завершённых заданиях"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Команды проекта"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Отправить промежуточное сообщение"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Показать меню веб-сайтов для проекта %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Запрошено менеджером проектов"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Показать меню команд, применимых к проекту %s"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Инициализация проекта"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Показать графику"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Запрошено проектом"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Показать окно приложения с графической информацией."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Неизвестная причина"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Приостановить это задание."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Приостановлено пользователем"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Прервать обработку"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Не запрашивать новые задания"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Отказаться от этого задания. Вы не получите за него очков."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Проект завершён - можно удалять"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Информация о задании."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Будет удалён после завершения заданий"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Продолжить обработку выделенного задания."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Запрос информации у планировщика"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Приостановить обработку выделенного задания."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Производится запрос информации у планировщика"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Вы уверены, что хотите прервать обработку этого задания '%s'?\n(Прогресс: %.1lf%%, Состояние: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Ожидание отправки промежуточного сообщения"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Прерывание обработки задания"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Повтор через"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "BOINC не подключен ни к одному проекту.  Пожалуйста добавьте проект."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Полный объём диска"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Недоступно"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Занято проектами BOINC"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Задания:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "нет проектов: 0 байт используется"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Выбрать задание для доступа"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "занято BOINC: "
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "От:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "свободно, доступно для BOINC: "
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Прогресс этого задания"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "свободно, недоступно для BOINC: "
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Команды задания"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "свободно: "
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Показать меню команд, применимых к этому заданию"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "занято другими данными: "
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Приложение: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Общее количество очков участника"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Среднее количество очков за день"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Приложение: недоступно"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Общее количество очков для хоста"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Недоступно"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Среднее количество очков за день для хоста"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Затрачено: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Информация обновлялась: %.0f дн. назад"
+msgid "Remaining (estimated): %s"
+msgstr "Осталось (приблизительно): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Всего очков"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Статус: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Показать общее количество очков набранных участником"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Проверка текущего состояния."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "В среднем за день"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Загрузка заданий с сервера проекта."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Показать среднее количество очков набираемых участником за день"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Обработка приостановлена:  работа компьютера от батарей."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Всего очков для хоста"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Обработка приостановлена:  пользователь работает."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Показать общее количество очков набранных на данном хосте"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Обработка приостановлена:  по инициативе пользователя."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "В среднем для хоста"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Обработка приостановлена:  запрещённое время суток."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Показать среднее количество очков набираемых данным хостом за день"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Обработка приостановлена:  запущен тест производительности."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< Предыдущий"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Обработка приостановлена:  необходимо дисковое пространство."
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Показать предыдущий проект (вверх)"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Обработка приостановлена."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "Следующий >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Подождите пожалуйста."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Показать следующий проект (вниз)"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Проверка текущего состояния"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Скрыть список проектов"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Нет заданий для обработки"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Использовать всю область для графиков"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Не удалось подключиться к BOINC клиенту"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Вид графиков"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Условия использования"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Один проект"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Ознакомтесь с условиями использования программы:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Показать один выбранный проект"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Я согласен с условиями."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Все проекты (по отдельности)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Я не согласен с условиями использования."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Показать все проекты, каждый проект на отдельном графике"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Проект временно недоступен"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Все проекты (вместе)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Проект в данный момент недоступен.\n\nПопробуйте подключиться позже."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Показать все проекты на одном графике"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Менеджер проектов временно недоступен"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Все проекты (в сумме)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Менеджер проектов в данный момент недоступен.\n\nПопробуйте подключиться позже."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Показать сумму по проектам на одном графике"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Введите учётный ключ для продолжения."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Статистика"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Введен не правильный учётный ключ, повторите ввод ключа"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Обновляется график..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Ошибка проверки правильности ввода данных"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Показать список проектов"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Укажите адрес электронной почты"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Использовать меньшую область для графиков"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Введен неправильный адрес электронной почты;\nповторите ввод адреса электронной почты"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Повторить"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Не указан адрес (URL)"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Повторить передачу файла"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Введите адрес (URL).\nПример:\nhttp://www.example.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Удалить"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Не корректный адрес (URL)"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Прервать передачу файла.  Вы не получите очки за это задание."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Введите корректный адрес (URL).\nПример:\nhttp://boincproject.example.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Файл"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "Компьютер (хост) с именем: '%s' не найден."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Прогресс"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "Указанный путь: '%s' не существует."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Размер"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Действия"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Затрачено времени"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Копировать все"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Скорость"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Копировать выделенное"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Передача"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Сообщения проекта"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Доступ в сеть приостановлен - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Показать сообщения только от выбранного проекта."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nВы можете включить его, используя меню Управление."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Сообщения"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "В буфер обмена копируются все сообщения..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Повторная попытка передачи данных..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "В буфер обмена копируются выделенные сообщения..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Прерывание передачи данных с последующим удалением передаваемого файла..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Фильтрация сообщений..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Вы уверены, что хотите прервать передачу и удалить файл '%s'?\nВНИМАНИЕ: задание, использующее этот файл, будет завершено\nс ошибкой и очки за него будут потеряны."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Все сообщения"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Прерывание передачи файла"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Показать все сообщения."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Отправка"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Учётная запись"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Загрузка"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Заработанные очки"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "повторится через "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "В среднем за день"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "не удалась"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Состояние"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "приостановлена"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Проекты"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "активна"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Запрошено пользователем"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "ожидает"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Запросить задания"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (запрос к проекту отложен на: "
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Сообщить о завершённых заданиях"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Показать активные задания"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Отправить промежуточное сообщение"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Показать только активные задания."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Запрошено менеджером проектов"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Показать графику"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Инициализация проекта"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Показать окно приложения с графической информацией."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Запрошено проектом"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Показать консоль ВМ"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Неизвестная причина"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Показать консоль Виртуальной машины в отдельном окне."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Приостановлено пользователем"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Приостановить обработку выделенного задания."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Не запрашивать новые задания"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Прервать обработку"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Проект завершён - можно удалять"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Прервать обработку выделенного задания (удалить задание). Очки за прерванные задания не начисляются."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Будет удалён после завершения заданий"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Информация о задании."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Запрос информации у планировщика"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Осталось (приблизительно)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Производится запрос информации у планировщика"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Отправить до"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Ожидание отправки промежуточного сообщения"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Задания"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Повтор через"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Возобновляется обработка ранее приостановленного задания..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Полный объём диска"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Приостанавливается обработка выделенного задания..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Занято проектами BOINC"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Открывается окно приложения с графической информацией..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "нет проектов: 0 байт используется"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Открывается консоль Виртуальной машины..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "занято BOINC: "
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Вы уверены, что хотите прервать обработку выделенного задания '%s'?\n(Прогресс: %s, Состояние: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "свободно, доступно для BOINC: "
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Вы уверены, что хотите прервать обработку этих %d заданий?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "свободно, недоступно для BOINC: "
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Прерывание обработки задания"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "свободно: "
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Прерывание задания..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "занято другими данными: "
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Показать все задания"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Общее количество очков участника"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Показать все задания."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Среднее количество очков за день"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Продолжить обработку выделенного задания."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Общее количество очков для хоста"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Приостановить обработку выделенного задания."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Среднее количество очков за день для хоста"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Прервать процесс подключения?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Информация обновлялась: %.0f дн. назад"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Вопрос"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Всего очков"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Сервисы"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Показать общее количество очков набранных участником"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "Скрыть %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "В среднем за день"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Скрыть остальные"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Показать среднее количество очков набираемых участником за день"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Показать все"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Всего очков для хоста"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Выйти из %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Показать общее количество очков набранных на данном хосте"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Обложка"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "В среднем для хоста"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Выберите внешний вид пользовательского интерфейса."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Показать среднее количество очков набираемых данным хостом за день"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Полный вид...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< Предыдущий"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Изменить внешний вид на более продвинутый."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Показать предыдущий проект (вверх)"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Настройки графического интерфейса программы и прокси серверов"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "Следующий >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Показать диагностические сообщения."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Показать следующий проект (вниз)"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Скрыть список проектов"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "По умолчанию"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Использовать всю область для графиков"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Приостановить вычисления"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Вид графиков"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Возобновить вычисления"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Один проект"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Открыть окно просмотра уведомлений проектов и BOINC"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Показать один выбранный проект"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Получить справку по %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Все проекты (по отдельности)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Закрыть"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Показать все проекты, каждый проект на отдельном графике"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Уведомления "
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Все проекты (вместе)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Для дополнительных параметров выберите 'Настройки клиента' в меню 'Полный вид'."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Показать все проекты на одном графике"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "ГБ дискового пространства"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Все проекты (в сумме)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - Настройки вычислений"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Показать сумму по проектам на одном графике"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Отменить все локальные настройки и использовать веб-настройки?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Статистика"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Добавить проект"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Показать список проектов"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Синхронзировать"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Использовать меньшую область для графиков"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Для этого проекта работа завершена"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Повторить"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Стать участником в любом или во всех 30+ проектах во многих областях науки"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Повторить передачу файла"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Синхронизация информации о проектах и настройках между BOINC клиентом и менеджером проектов"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Удалить"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Выбрать проект используя расположенные ниже элементы управления"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Прервать передачу файла.  Вы не получите очки за это задание."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Веб-страницы проекта"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Файл"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Команды проекта"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Прогресс"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Показать меню веб-сайтов для проекта %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Размер"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Показать меню команд, применимых к проекту %s"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Затрачено времени"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Приостановить это задание."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Скорость"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Отказаться от этого задания. Вы не получите за него очков."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Передача"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Вы уверены, что хотите прервать обработку этого задания '%s'?\n(Прогресс: %.1lf%%, Состояние: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Доступ в сеть приостановлен - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "BOINC не подключен ни к одному проекту.  Пожалуйста добавьте проект."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nВы можете включить его, используя меню Управление."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Недоступно"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Задания:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Вы уверены, что хотите прервать передачу и удалить файл '%s'?\nВНИМАНИЕ: задание, использующее этот файл, будет завершено\nс ошибкой и очки за него будут потеряны."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Выбрать задание для доступа"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Прерывание передачи файла"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "От:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Отправка"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Прогресс этого задания"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Загрузка"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Команды задания"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "повторится через "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Показать меню команд, применимых к этому заданию"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "не удалась"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Приложение: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "приостановлена"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "активна"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Приложение: недоступно"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "ожидает"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Недоступно"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (запрос к проекту отложен на: "
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Затрачено: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Показать активные задания"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Осталось (приблизительно): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Показать только активные задания."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Статус: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Показать консоль ВМ"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Проверка текущего состояния."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Показать консоль Виртуальной машины в отдельном окне."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Загрузка заданий с сервера проекта."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Приостановить обработку выделенного задания."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Обработка приостановлена:  работа компьютера от батарей."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Прервать обработку выделенного задания (удалить задание). Очки за прерванные задания не начисляются."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Обработка приостановлена:  пользователь работает."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Осталось (приблизительно)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Обработка приостановлена:  по инициативе пользователя."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Отправить до"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Обработка приостановлена:  запрещённое время суток."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Задания"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Обработка приостановлена:  запущен тест производительности."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Вы уверены, что хотите прервать обработку выделенного задания '%s'?\n(Прогресс: %s, Состояние: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Обработка приостановлена."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Вы уверены, что хотите прервать обработку этих %d заданий?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "Подождите пожалуйста."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Показать все задания"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Проверка текущего состояния"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Показать все задания."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Нет заданий для обработки"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Прервать процесс подключения?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Не удалось подключиться к BOINC клиенту"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Вопрос"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3906,11 +3807,24 @@ msgstr "< Назад"
 msgid "&Finish"
 msgstr "Готово"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "В этот день недели выполнять расчёты только в эти часы."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Сервисы"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Скрыть %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Скрыть остальные"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Показать все"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "В этот день недели передавать файлы только в эти часы."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Выйти из %s"
diff --git a/locale/ru/BOINC-Project-Generic.po b/locale/ru/BOINC-Project-Generic.po
deleted file mode 100644
index b4056f1..0000000
--- a/locale/ru/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6514 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Dan <mutari.dirk at gmail.com>, 2015
-# Malyanov Evgeniy <flange465 at gmail.com>, 2015
-# Nikolay Sakharov <saharovna at gmail.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-04-07 06:48+0000\n"
-"Last-Translator: Nikolay Sakharov <saharovna at gmail.com>\n"
-"Language-Team: Russian (http://www.transifex.com/boinc/boinc/language/ru/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ru\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Русский"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Russian"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Пригласительный код"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Для создания учётной записи необходим действительный пригласительный код."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Имя"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Идентифицирует Вас на нашем web-сайте. Введите ваше настоящее имя или псевдоним."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "Адрес электронной почты"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Должен быть действительным адресом в форме 'name at domain'."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Пароль"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Должно быть по крайней мере %1 символов"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Подтвердите пароль"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Страна"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Выберите страну, которую представляете, если хотите."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Почтовый индекс или ZIP-код"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Необязательно"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Создать учётную запись"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "Адрес email:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "забыли адрес email?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Пароль:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "забыли пароль?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Оставаться авторизованным"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Войти"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Жирный текст: [b]текст[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Наклонный текст: [i]текст[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Подчёркнутый текст: [u]текст[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Зачёркнутый текст: [s]текст[/s] (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Текст цитаты: [quote]текст[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Отображение кода: [code]код[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Список: [list]текст[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Упорядоченный список: [list=]текст[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Вставка изображения: [img]http://ссылка_на_картинку[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Вставка адреса URL: [url]http://url[/url] или [url=http://url]текст URL[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Цвет шрифта"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Цвет шрифта: [color=red]текст[/color]  Подсказка: Вы можете также использовать color=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "По умолчанию"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Тёмно-красный"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Красный"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Оранжевый"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Коричневый"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Жёлтый"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Зелёный"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Оливковый"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Голубой"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Синий"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Тёмно-синий"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Индиго"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Фиолетовый"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Размер шрифта"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Размер шрифта: [size=x-small]маленький текст[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Маленький"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Нормальный"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Большой"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Закрыть все открытые тэги bbCode"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Закрыть тэги"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Сначала самые старые"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Сначала самые новые"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Сначала сообщения с наивысшим рейтингом"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Сначала с самыми новыми сообщениями"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Сначала с наибольшим количеством просмотров"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Сначала с наибольшим количеством сообщений"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Модератор-доброволец"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Администратор проекта"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Разработчик проекта"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Тестер проекта"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Разработчик-доброволец"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Тестер-доброволец"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Учёный проекта"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Эксперт-помощник"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Поиск введенных слов в сообщениях на форумах"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Найти в форумах"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Расширенный поиск"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Личные сообщения"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Вопросы и ответы"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Доска сообщений"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "Доска сообщений %1"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Предыдущие"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Следующие"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Автор"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Сообщение"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Отправить сообщение"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Отправить личное сообщение для %1"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Присоединился: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Сообщений: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Очков: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "В среднем: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Вы ещё не прочитали это сообщение"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Непрочитанный"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Сообщение %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "скрыто"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Отправлено: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - в ответ на "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Редактировать"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Редактировать это сообщение"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Последнее изменение: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Это сообщение не показывается потому, что отправитель в вашем списке игнорирования.  Нажмите %1здесь%2, чтобы увидеть это сообщение"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Отметить это сообщение как оскорбительное"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Отметить как оскорбительное"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Рейтинг: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "оценить:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Нажмите если Вам нравится это сообщение"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Оценка +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Нажмите если Вам не нравится это сообщение"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Оценка -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Ответить"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Ответить на это сообщение"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Цитата"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Ответить цитируя это сообщение"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Скрыто модератором"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Написано %1 пользователем %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Вы не можете писать или оценивать сообщения до %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n<ul>\n<li> Сообщения должны быть 'дружелюбны к детям': они не должны содержать\nконтент, который является непристойным, связанным с ненавистью,\nявно сексуальным или наводящим.\n<li> Не должно быть коммерческой рекламы.\n<li> Не должно быть ссылок на веб-сайты, связанные с сексуальным содержанием,\nазартными играми, или нетерпимостью других.\n<li> Не должно быть сообщений, раздражающих или противопоставляющих других людей,\nили захватывающих обсуждение.\n<li> Не должно быть соо [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Правила:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Подробнее"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Показать"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Показать это сообщение"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Скрыть"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Скрыть это сообщение"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Переместить"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Переместить это сообщение в другое обсуждение"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Заблокировать автора"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Голосовать за блокировку автора"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Голосовать против блокировки автора"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Начать голосование за блокировку автора"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Удалить"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Удалить это сообщение"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Только участники команды могут оставлять сообщения на доске сообщений команды"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Чтобы создать новую тему для обсуждения в %1, у Вас должно быть определенное количество очков. Это ограничение должно предотвратить и защитить систему против злоупотреблений."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Прямо сейчас Вы не можете создать тему для обсуждения. Пожалуйста, немного подождите перед повторной попыткой. Эта задержка произошла для того, чтобы защитить систему против злоупотреблений."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Это обсуждение заблокировано. Только модераторы форума и администраторы могут оставлять сообщения здесь."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Нельзя написать сообщение в скрытом обсуждении."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Обсуждение"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Сообщения"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Просмотры"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Последнее сообщение"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Новые сообщения в обсуждении %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Новые сообщения в подписанном обсуждении"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "Имеются новые сообщения в обсуждении '%1'"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Отметить все обсуждения прочитанными"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Отметить все обсуждения во всех досках сообщений прочитанными."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Нет компьютера"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Недоступно"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Дом"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Работа"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "Школа"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Обновить"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Информация о компьютере"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP-адрес"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(такой же последние %1 раз)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Внешний IP-адрес"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Показать IP-адрес"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Доменное имя"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Название продукта"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Местное Стандартное Время"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 часа"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Владелец"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Анонимный"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Создан"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Всего очков"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "В среднем очков"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Всего очков суммарно по проектам"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "Тип ЦП"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Число процессоров"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Сопроцессоры"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Операционная система"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Версия BOINC"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Память"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 Мб"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Кэш"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 Кб"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Файл подкачки"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Полное дисковое пространство"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 Гб"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Свободное дисковое пространство"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Измеренная скорость вычислений с плавающей запятой"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 млн операций/с"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Измеренная скорость целочисленных вычислений"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Средняя скорость отправки данных"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 Кб/с"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Неизвестно"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Средняя скорость загрузки данных"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Среднее время обработки"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 дней"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Подробно о приложении"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Показать"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Задания"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Количество контактов клиента с сервером"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Время последнего контакта с сервером"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Доля времени работы BOINC"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Доля времени подключения компьютера к Интернет за время работы BOINC"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Доля времени разрешённого выполнения расчётов за время работы BOINC"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Доля времени разрешённого выполнения расчётов на ГП за время работы BOINC"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Средняя эффективность ЦП"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Фактор исправления продолжительности выполнения задания"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Размещение"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Удалить этот компьютер"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Объединить дублирующиеся записи этого компьютера"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Объединить"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Последний контакт"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Информация о компьютере"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Позиция"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "В среднем за день"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "В среднем за день"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Тип ЦП"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "Тип ГП"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Операционная система"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 процессоров)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Подробности"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Объединенная статистика по проектам:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "У компьютера %1 наложение времени жизни:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "У компьютера %1 несовместимая ОС:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "У компьютера %1 несовместимый ЦП:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "тот же самый компьютер"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Невозможно объединить компьютеры %1 и %2 - они несовместимы"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Объединение компьютеров %1 и %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Невозможно обновить очки нового компьютера"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Невозможно обновить результаты"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Невозможно удалить старый компьютер"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Старый компьютер %1 удален"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Показать:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Все компьютеры"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Только компьютеры, активные за последние 30 дней"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "ID компьютера"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "Версия<br>BOINC"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Объединить компьютеры по имени"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "По умолчанию"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Комментарий"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Новости доступны в формате %sленты RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Входящие"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Написать"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Отправить личное сообщение"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Предварительный просмотр"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "нет такого сообщения"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Кому"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Идентификаторы (ID) или уникальные имена пользователей, разделенные запятыми"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Тема"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Отправить сообщение"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "отправил Вам личное сообщение; тема:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Личное сообщение%1 от %2, тема:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Невозможно создать сообщение"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Вам не разрешается отправлять личные сообщения так часто. Пожалуйста, подождите немного, прежде чем отправить больше сообщений."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "непрочтенных"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Для получения уведомлений по электронной почте %1отредактируйте настройки сообщества%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Личное сообщение"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Ограничения использования"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Использовать не более"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Оставлять часть процессоров свободными для других приложений. Пример: 75% означает использовать 6 ядер на 8-ядерном процессоре."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% процессоров"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Приостанавливать/возобновлять вычисления каждые несколько секунд, чтобы понизить температуру ЦП и уменьшить потребляемую энергию. Пример: 75% означает вычислять 3 секунды, подождать 1 секунду и повторить."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% времени ЦП"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Когда приостанавливать"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Приостановить, когда компьютер работает от аккумулятора"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Отметьте здесь, чтобы приостановить вычисления на портативных компьютерах при работе от аккумулятора."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Приостановить, когда компьютер используется"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Отметьте здесь, чтобы приостановить вычисления и передачу файлов, когда Вы используете компьютер."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Приостановить вычисления на ГП, когда компьютер используется"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Отметьте здесь, чтобы приостановить вычисления на ГП, когда Вы используете компьютер."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'Использование' означает ввод с помощью мыши/клавиатуры за последние"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Это определяет, когда компьютер считается 'используемым'."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "минут"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Приостановить, если мышь/клавиатура не использовались за последние"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Это позволяет некоторым компьютерам перейти в режим низкого потребления энергии, когда они не используются."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Приостановить, если использование процессора не-BOINC-задачами выше"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Приостановить вычисления, когда ваш компьютер занят, выполняя другие программы."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Вычислять только между"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Вычислять каждый день только во время определённого периода."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Другое"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Запасать на не менее"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Поддерживать минимально допустимое количество заданий, чтобы компьютер был занят в течение указанного времени."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "дней работы"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Запасать дополнительно на"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Поддерживать дополнительное количество заданий выше минимального уровня. Определяет, сколько работы запрашивается при обращении к проекту."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Переключение между заданиями примерно каждые"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Если у Вас работает несколько проектов, то BOINC может переключаться между ними с указанной периодичностью."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Запрашивать сохранение промежуточных результатов заданий примерно каждые"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Эта настройка управляет тем, как часто задания сохраняют на диск своё состояние для того, чтобы они могли позже перезапуститься с этой точки."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "секунд"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Использовать не более"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Ограничивает общий объём дискового пространства, используемого BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "Гб"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Оставлять не менее"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Ограничивает использование диска, чтобы оставалось не менее указанного объёма свободного места на томе, где BOINC хранит данные."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "Гб свободного места"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Ограничивает процент дискового пространства, используемого BOINC на томе, где он хранит данные."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% от полного объема диска"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Когда компьютер используется, использовать не более"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Ограничивает память, используемую BOINC, когда Вы используете компьютер."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Когда компьютер не используется, использовать не более"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Ограничивает память, используемую BOINC, когда Вы не используете компьютер."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Оставлять в памяти неактивные задания, которые не используют графический процессор"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Если флажок установлен, приостановленные задания остаются в памяти и возобновляются без потери выполненной работы. Если флажок не установлен, приостановленные задания удаляются из памяти и перезапускаются с их последней контрольной точки."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Виртуальная память/файл подкачки: использовать не более"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Ограничивает виртуальную память (файл подкачки), используемую BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Ограничить скорость загрузки"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Ограничивает скорость загрузки при передаче файлов."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "Кб/сек"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Ограничить скорость отправки"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Ограничивает скорость отправки при передаче файлов."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Ограничить использование до"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Пример: BOINC должен передавать не более 2000 Мб данных каждые 30 дней."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "Мб каждые"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "дней"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Передавать файлы только между"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Передавать файлы только в конкретный период каждый день."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Пропустить проверку данных для файлов изображений"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Отметьте только в том случае, если ваш интернет-провайдер изменяет файлы изображений. Пропуск проверки уменьшает безопасность BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Предупреждать перед подключением к сети Интернет"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Используется только при наличии модемного, ISDN- или VPN-подключения."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Разорвать соединение после завершения"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Вычисления"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Диск"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Сеть"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Эти настройки применяются ко всем проектам BOINC, в которых Вы участвуете."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Невозможно обновить настройки.%2 Значения, отмеченные красным ниже, вне диапазона или не числовые."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "Вычисления"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Отдельные настройки для конфигурации %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Редактировать настройки"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Удалить"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Добавить отдельные настройки для конфигурации %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Эти параметры применяются ко всем компьютерам, использующим эту учётную запись, за исключением"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "компьютеров, где Вы локально установили настройки с помощью Менеджера BOINC"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "устройств на базе Android"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Переключить вид)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Объединённые настройки"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Основные настройки (по умолчанию)"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Последнее изменение настроек:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Добавить настройки"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Обновить настройки"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "да"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "нет"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Расположение компьютера по умолчанию"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Новые компьютеры будут использовать это расположение для вычислений и настроек проекта."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Выделено ресурсов"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Определяет пропорции ресурсов вашего компьютера, выделенных этому проекту. Например, если Вы участвуете в двух проектах BOINC с долями ресурсов 100 и 200, первый получит 1/3 ваших ресурсов, а второй получит 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Ускорить обработку заданий на ГП, используя отдельный ЦП для каждого задания?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Использовать ЦП"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Использовать ГП ATI"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Использовать ГП NVIDIA"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Использовать ГП Intel"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Выполнять тестовые приложения?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Это поможет нам в разработке приложений, но может привести к ошибкам в расчётах заданий на вашем компьютере"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Электронные письма будут отправлены с адреса %1; убедитесь, что ваш фильтр спама принимает этот адрес."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Могут ли %1 и ваша команда отправлять Вам электронные письма?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Должен ли %1 показывать ваши компьютеры на своём веб-сайте?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Переключить вид)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Определённые параметры проекта"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "плохая конфигурация: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "плохой набор: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "и"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Ваш профиль станет виден другим людям, как только он будет одобрен проектом. На это может потребоваться несколько дней."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Ваш профиль был отмечен как недопустимый. Другие люди его не видят. Пожалуйста измените его."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Ошибка базы данных"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Чтобы предотвратить спам, профили пользователей со средним количеством очков меньше чем %1 показываются только вошедшим пользователям. Мы приносим извинения за это неудобство."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Пользователь заблокирован"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Профиль не существует для пользователя с этим ID."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Редактировать профиль"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Ваш отзыв на этот профиль"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Рекомендовать этот профиль в качестве Пользователя дня:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Мне %1нравится%2 этот профиль"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Предупредить администраторов об оскорбительном профиле:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Мне %1не нравится%2 этот профиль"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Анонимная платформа"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "ГП NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ГП ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "ГП Intel"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Нет в БД"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "ожидание"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Все"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "В процессе"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Ожидание проверки"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Проверка не завершена"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Правильный"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Неправильный"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Ошибка"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Неактивен"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Неотправлен"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Завершён, ожидает проверки"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Завершён и проверен"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Завершён, отмечен как неправильный"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Завершён, невозможно проверить"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Завершён, проверка неокончательная"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Завершён, слишком поздно для проверки"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Завершён"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Не удалось отправить"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Отменён сервером"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Не запущен до даты крайнего срока - отменён"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Ошибка при загрузке"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Ошибка при расчёте"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Ошибка при отправке"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Прервано пользователем"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Загрузка не удалась"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Время истекло - нет ответа"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Не нужно"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Ошибка проверки"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Потерян"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Завершено"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Успех"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Ошибка вычислений"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Лишний результат"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Нет ответа"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Новый"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Загрузка"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Обработка"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Ошибка расчётов"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Отправка"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Готово"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Первичный"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Необязательно"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Ошибка задачи - проверка пропущена"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Проверено, но пока нет согласия"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Задание возвращено слишком поздно для проверки"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Не удалось отправить результат"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Слишком много ошибок (возможно ошибка в ПО)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Слишком много результатов (может быть недетерминированным)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Слишком много результатов в целом"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "WU отменён"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Канонический результат отсутствует"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Нераспознанная ошибка: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Имя задания"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "щёлкните для деталей"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Показать ID-ы"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Показать имена"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Задание"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Задача"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Компьютер"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Отправлен"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Время подтверждения<br />или крайний срок"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "объяснить"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Статус"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Время выполнения<br />(сек)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "Время ЦП<br />(сек)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Очки"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Приложение"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Задача"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Крайний срок отчёта"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Получен"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Состояние сервера"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Результат выполнения"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Состояние клиента"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Статус выхода"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Время выполнения"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "Время ЦП"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Состояние проверки"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Пиковая производительность устройства, FLOPS"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Версия приложения"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Выходные файлы"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Текст протокола"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Состояние"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Имя задания:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Критерии поиска (используйте один или несколько)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Ключевые слова"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Найти команды с этими словами в их названиях или описаниях"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Тип команды"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Показать только активные команды"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Найти"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Запрошен Вами, и крайний срок ответа основателя прошел."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Завершить передачу полномочий основателя"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Запрошен Вами"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "крайний срок ответа основателя %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Нет"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Инициировать запрос"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Отклонен"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Информация о команде"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Описание"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Вебсайт"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Объединенная статистика по проектам"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Тип"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Доска сообщений"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Обсуждения"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Присоединиться к этой команде"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Внимание: если в ваших настройках проекта установлено 'отправлять уведомления по электронной почте', присоединение к команде дает доступ ее основателя к вашему адресу электронной почты."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Не принимать новых участников"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Запрошена смена основателя"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Ответить до %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Смена основателя команды"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Участники"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Основатель"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Администраторы"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Новые участники за последний день"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Всего участников"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "просмотр"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Активных участников"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Участников с заработанными очками"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Администратор"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Предыдущие %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Следующие %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Нет такой команды."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Эта операция требует прав основателя."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Эта операция требует прав администратора команды"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "ПРЕДУПРЕЖДЕНИЕ: это глобальная команда BOINC. Если Вы сделаете изменения здесь, то они будут скоро перезаписаны. Поэтому редактируйте %1глобальную команду BOINC%2."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Примечание безопасности%2: если Вы создадите команду, то ваши настройки проекта (доля ресурсов, графические настройки) будут видны всем."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Название команды, текстовая версия"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Не использовать тэги HTML."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Название команды, HTML версия"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Вы можете использовать %1ограниченные тэги HTML%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Если Вы не знаете HTML, оставьте это поле пустым."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL веб-страницы команды, если есть"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "без \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Этот URL будет вызываться со страницы команды на этом сайте."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Описание команды"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Принимать новых участников?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Профиль пользователя"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Проекты, в которых Вы принимаете участие"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Проекты, в которых %1 принимает участие"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Проект"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Нажмите, чтобы перейти на страницу пользователя"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "С"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Вычисления и вознаграждение"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Компьютеры в этой учётной записи"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Просмотр"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Межпроектный ID (CPID)"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Объединенная статистика по проектам"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Учётная запись"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Команда"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Межпроектный"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Сертификат"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Статистика на вашем мобильном телефоне"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Учётная информация"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Адрес email"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Почтовый индекс"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "Участник %1 с"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Изменить"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "адрес email"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "пароль"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "другая учётная информация"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "ID пользователя"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Используется в функциях сообщества"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Ключи учётной записи"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Настройки"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Как и когда BOINC использует ваш компьютер"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Настройки вычислений"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Доска сообщений или личные сообщения"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Настройки сообщества"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Настройки для этого проекта"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "Настройки %1"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Посмотреть профиль участника %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Профиль"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Сообщество"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Создать"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 сообщений"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Уведомления"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Выйти из команды"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Управление"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(запрос на смену основателя в ожидании)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Участник команды"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "найти команду"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Основатель, но не участник"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Найти друзей"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Друзья"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Компьютеры"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Донор"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Контакт"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Персона является другом"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Прекратить дружбу"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Запрос в ожидании"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Добавить друга"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "имя пользователя не может иметь начальные или конечные пробелы"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "имя пользователя не может быть пустым"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "имя пользователя не должно содержать тэги HTML"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "выйти"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "войти"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Создание учётной записи"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Информация о состоянии сервера"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Произошла ошибка базы данных во время обработки вашего запроса; пожалуйста попробуйте ещё раз позже."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Невозможно обработать запрос"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "часов"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "мин."
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "сек."
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Ссылка просрочена. Пожалуйста щёлкните Назад, обновите страницу, и попробуйте ещё раз."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Используйте тэги BBCode для форматирования вашего текста"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Проект остановлен для обслуживания"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 временно остановлен для обслуживания.  Пожалуйста попробуйте ещё раз позже."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Невозможно подключиться к базе данных - пожалуйста попробуйте ещё раз позже"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Невозможно выбрать базу данных - пожалуйста попробуйте ещё раз позже"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "осталось символов"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Оставаться авторизованным на этом компьютере"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Завершение настройки учётной записи"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Вы должны указать имя для вашей учётной информации"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Тэги HTML недопустимы в вашем имени"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Редактировать настройки %1"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Добавить настройки %1 для конфигурации %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Приложения"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 на данный момент имеет следующие приложения. Когда Вы участвуете в %1, вашему компьютеру будут назначены задания для одного или нескольких из этих приложений. На ваш компьютер будет загружена текущая версия приложения. Всё это происходит автоматически; Вам не нужно что-либо предпринимать дополнительно."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Платформа"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Версия"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Вычислений в среднем"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Тэги BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "Тэги BBCode позволяют Вам форматировать текст в вашем профиле\nи в сообщениях форума. Они похожи на HTML, только проще. Тэги начинаются\nс символа [ (вместо %1в HTML) и заканчиваются символом ] (вместо %2 в HTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Примеры"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Жирный"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Наклонный"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Подчёркнутый"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Зачёркнутый"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Суперскрипт"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Большой текст"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Красный текст"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "ссылка на вебсайт"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Цитируемый текст"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "используется для цитирования блоков текста"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "используется для показа изображения"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Здесь фрагмент кода"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "используется для показа некоторого кода"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Отформатированный текст"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "используется для показа предварительно отформатированного текста (обычно моноширинного)"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Элемент 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Элемент 2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Элемент 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "ссылка на билет в системе Trac на сайте BOINC"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "ссылка на статью Wiki на сайте BOINC"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Если Вы не закроете тэг или некорректно укажете параметр,\nвместо отформатированного текста будет просто показан сам тэг."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Не удалось создать учётную запись"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Нажмите кнопку <b>Назад</b> вашего браузера, чтобы попытаться ещё раз."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Ваш ответ reCAPTCHA был неправилен. Пожалуйста попробуйте ещё раз."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Чтобы создать учётную запись, Вы должны указать пригласительный код."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "Указанный Вами пригласительный код не действителен."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Неправильный адрес электронной почты: Вы должны указать правильный адрес в форме name at domain"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Уже имеется учётная запись с таким же адресом электронной почты."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Новые пароли отличаются"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Пароли могут содержать только ASCII-символы."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Новый пароль слишком короткий: минимальная длина пароля - %1 символов."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Не удалось создать учётную запись"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "ЗАМЕТКА: Если у Вас есть BOINC Manager, не используйте эту форму. Вместо этого запустите BOINC, выберите Добавить проект, и введите свой e-mail и пароль."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Эта учётная запись будет относиться к команде '%1' и будет иметь настройки проекта как у её основателя."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Фотография"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Фотография вашего профиля показана слева."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Чтобы заменить ее, нажмите кнопку \"Обзор...\" и выберите файл формата JPEG или PNG (размером %1 или меньше)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Чтобы удалить ее из вашего профиля, отметьте эту галку:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Если Вы хотите добавить фотографию в ваш профиль, нажмите кнопку \"Обзор...\" и выберите файл формата JPEG или PNG. Пожалуйста выберите изображения размером %1 или меньше."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Язык"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Выберите язык, на котором написан ваш профиль:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Сохранение профиля"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Создать/отредактировать профиль"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "Формат вашего загруженного изображения не поддерживается."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Ваш %1профиль%2 позволяет Вам поделиться своим мнением и информацией о себе с сообществом %3."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Ваш ответ ReCaptcha был неправилен.  Пожалуйста попробуйте еще раз."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Ваш первый ответ был помечен как спам антиспам-системой Akismet.  Пожалуйста измените ваш текст и попробуйте еще раз."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Ваш второй ответ был помечен как спам антиспам-системой Akismet.  Пожалуйста измените ваш текст и попробуйте еще раз."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Ваш профиль был пуст."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Не удалось обновить профиль: ошибка базы данных"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Не удалось создать профиль: ошибка базы данных"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Профиль сохранен"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Поздравляем! Ваш профиль был успешно добавлен в нашу базу."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Просмотр своего профиля"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Создать профиль"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Для предотвращения спама среднее количество очков должно быть %1 или больше, чтобы создавать или редактировать профиль.  Мы приносим извинения за это неудобство."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Невозможно удалить учётную запись"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Учётная запись удалена"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Ваша учётная запись была удалена."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Подтверждение удаления учётной записи"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "При удалении вашей учётной записи с наших серверов\nбудет удалена вся ваша персональная информация,\nвключая ваш профиль и сообщения с доски сообщений.\nКомпьютеры, подключенные к этой учётной записи,\nне будут получать новые задания."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Эта операция не может быть отменена.\nКак только ваша учётная запись будет удалена, вы не сможете её восстановить."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Вы уверены, что хотите удалить вашу учётную запись?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Да"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Удалить эту учётную запись"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Нет"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Не удалять эту учётную запись"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "не удалось удалить профиль - пожалуйста, попробуйте ещё раз позже."
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Подтверждение удаления"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Ваш профиль был удалён."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Подтверждение удаления профиля"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Вы уверены?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Удалённые профили исчезают навсегда и их невозможно восстановить --\nесли Вы захотите в будущем другой профиль,\nВы должны будете ввести его с самого начала."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Если Вы уверены, нажмите 'Да'\nдля удаления вашего профиля из нашей базы данных."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Удалить мой профиль"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Не удалять мой профиль"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal -Транзакция завершена"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Спасибо за пожертвование!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Ваше пожертвование было принято."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Ваше пожертвование будет добавлено после подтверждения от PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Вы отменили ваше пожертвование."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Этот проект не принимает пожертвования."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "Пожертвования для %1"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Этот проект принимает пожертвования через\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Укажите в поле ниже то количество, которое Вы желаете пожертвовать.\nPayPal принимает различные валюты\n(Канадские доллары, Евро, Фунты стерлингов, Доллары США,\nЙены, Австралийские доллары, Новозеландские доллары,\nШвейцарские франки, Гонгконгские доллары, Сингапурские доллары,\nШведские кроны, Датские кроны, Польские злотые, Норвежские кроны,\nВенгерские форинты, Чешские кроны).\nВы можете использовать встроенный конвертёр валют,\nчтобы увидеть эквивалентный объём пожертвований [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Количество, которое Вы хотите пожертвовать"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Ориентировочное значение в"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Анонимное пожертвование"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Отметьте, если Вы не хотите, чтобы ваше имя и номер учётной записи показывались\nв списках пожертвований.<br>Если не отмечено, Вы будете зарегистрированы как пользователь ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Чтобы пожертвовать под вашей учётной записью, пожалуйста авторизуйтесь."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Продолжить"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Пожертвования приняты через"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Загрузить дополнительное программное обеспечение BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Вы можете загрузить приложения различных категорий."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Эти приложения не подтверждены %1, и Вы используете их на свой страх и риск."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Мы не предоставляем инструкции по установке этих приложений.\nОднако, автор, возможно, предоставил некоторую помощь по установке и удалении приложения.\nЕсли этого недостаточно, Вы должны связаться с автором."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Инструкции по установке и запуску BOINC %1здесь%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Этот список ведется централизованно на %1web-сайте BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Изменение адреса электронной почты учётной записи"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Новый адрес электронной почты '%1' неправильный."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Новый адрес электронной почты такой же, как и существующий. Ничего не изменено."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Уже есть учётная запись с таким же адресом электронной почты."
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Неправильный пароль."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Адрес электронной почты вашей учётной записи теперь %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Пожалуйста, %1проверьте этот адрес электронной почты%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Невозможно обновить ваш адрес электронной почты из-за проблем с базой данных.  Пожалуйста попробуйте ещё раз позже."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Поменять адрес email"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Изменение адреса электронной почты вашей учётной записи"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Новый адрес email"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Должен быть действительным адресом в форме 'name at domain'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Нет пароля?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Подтвердите сброс"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Это действие сотрёт все изменения, которые Вы сделали в своих настройках сообщества. Для отмены нажмите кнопку Назад в вашем обозревателе."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Сбросить настройки"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Ошибка: Неправильный тип файла, поддерживаются только PNG и JPEG."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Ваша подпись слишком длинная, пожалуйста используйте не более чем 250 символов."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Нет такого пользователя:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Как мы должны уведомлять Вас о новых личных сообщениях, запросах на дружбу, сообщениях в подписанных обсуждениях и о других событиях?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "На моей странице учётной записи (без электронной почты)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Немедленно, по электронной почте"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "Ежедневно одним письмом по электронной почте"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Идентификация в доске сообщений"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Аватар"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Изображение, представляющее Вас на доске сообщений."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Формат: JPG или PNG. Размер: не более 4 Кб, 100x100 пикселей."
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Не использовать аватар"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Использовать Глобально Признанный Аватар, предоставляемый %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Использовать этот загруженный аватар:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Предварительный просмотр аватара"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Так будет выглядеть ваш аватар"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Подпись для сообщений на доске сообщений"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Проверьте %1различные бесплатные сервисы%2,\n<br> предоставляющие динамические 'изображения для подписи',\n<br> которые показывают последнюю информацию о ваших очках, новости проектов, и т.д."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Подключать подпись по умолчанию"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Предварительный просмотр подписи"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "Так будет выглядеть ваша подпись на форумах"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Показ сообщений"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Что показывать"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Скрывать изображения аватаров"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Скрывать подписи"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Показывать изображения как ссылки"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Открывать ссылки в новом окне/вкладке"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Выделять специальных пользователей"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Показывать указанное количество сообщений на странице"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Как сортировать"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Обсуждения:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Сообщения:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Автоматически переместиться к первому новому сообщению в обсуждении"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Не перемещать закреплённые сообщения наверх"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Фильтрация сообщений"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Фильтрованные пользователи"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Игнорирование сообщений на доске сообщений и личных сообщений от этих пользователей."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ID пользователя (Например: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Добавить пользователя в фильтр"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Нажмите здесь, чтобы обновить настройки"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Сбросить"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Или нажмите здесь, чтобы сбросить настройки к параметрам по умолчанию"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Невозможно обновить ваш пароль из-за проблем с базой данных. Пожалуйста попробуйте ещё раз позже."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Поменять пароль"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Ваш пароль был изменён."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Новый пароль"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Новый пароль, ещё раз"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "Тэги HTML недопустимы в Вашем имени."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Вы должны указать имя для вашей учётной информации."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Невозможно обновить информацию о пользователе."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Редактировать учётную информацию"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Имя %1 настоящее имя или псевдоним%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 вашей веб-страницы; необязательно%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Почтовый (ZIP) индекс %1 необязательно%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Обновить информацию"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Состояния сервера"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "Поле задания <b>состояние сервера</b> показывает, было ли задание отправлено на компьютер, и если да, было ли оно завершено компьютером. Возможные значения:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Задание не готово к отправке (например, потому что его входные файлы недоступны)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Задание готово к отправке, но ещё не было отправлено."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "В процессе"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Задание было отправлено; ожидание завершения."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "Задание было отправлено на компьютер, и либо оно было просрочено, либо компьютер сообщил о его завершении."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Результаты"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "Поле задания <b>результат</b> определено, если его состояние сервера равно <b>завершено</b>. Возможные значения:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "Задание было отправлено на компьютер, но компьютер ещё не закончил работу и не сообщил о результате."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Компьютер завершил задание и сообщил об успехе."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Сервер не смог отправить задание на компьютер (возможно, потому что его требования к ресурсам были слишком большими)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Ошибка клиента"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Задание было отправлено на компьютер и произошла ошибка."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "Задание было отправлено на компьютер и ответ не был получен за отведённое время."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "Задание не было отправлено на компьютер, так как было завершено достаточное число других заданий для этой задачи."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "Было сообщено о завершении задания, но его не удалось проверить, обычно из-за того что выходные файлы были потеряны на сервере."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Состояния клиента"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Поле задания <b>состояние клиента</b> показывает стадию обработки, на которой произошла ошибка."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Компьютер ещё не завершил задание."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Компьютер успешно завершил задание."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Компьютер не смог загрузить приложение или входные файлы."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Во время вычислений произошла ошибка."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Компьютер не смог выгрузить выходные файлы."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Время подтверждения и крайний срок"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "Поле задания <b>Время подтверждения или крайний срок</b> зависит от того, было ли сообщено о завершении задания:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Уже сообщено"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Дата/время, когда было сообщено"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Ещё не сообщено, крайний срок в будущем"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Крайний срок, показанный зелёным."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Ещё не сообщено, крайний срок в прошлом"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Крайний срок, показанный красным."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Неизвестное поле"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Предварительный просмотр электронного письма"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Ваше письмо будет выглядеть следующим образом:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Отправить письмо"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Используйте кнопку Назад вашего обозревателя, чтобы вернуться к форме сообщения"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Отправка электронных писем"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "письмо успешно отправлено для %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "не удалось отправить письмо для %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Спасибо, что Вы рассказали своим друзьям о %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Вы забыли ввести имена и/или адреса электронной почты ваших друзей; пожалуйста %1вернитесь в форму%2 и введите их."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Этот проект не создал электронное сообщение - пожалуйста, сообщите об этом администраторам проекта"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Расскажите своим друзьям о %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Окажите нам помощь, расскажите своим друзьям, семье и сотрудникам о %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Заполните эту форму именами и адресами электронной почты людей, которые, по вашему мнению, могут быть заинтересованы в %1. Мы отправим им письмо от вашего имени, и если Вы пожелаете, Вы можете добавить своё сообщение."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Ваше имя:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Ваш адрес электронной почты:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Имя друга:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Адрес электронной почты друга:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Дополнительное сообщение (необязательно)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Отправить"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "У вас нет прав для блокировки пользователей."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Голосование за блокировку"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Пользователь с этим ID не найден."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "Пользователь уже заблокирован"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Вы действительно хотите заблокировать %1?<br/>%1 не сможет публиковать сообщения в течение выбранного периода.<br/>Заблокируйте %1 только если он(а) регулярно ведёт себя как тролль."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Выберите категорию причины, при необходимости напишите более подробное описание того, почему пользователь должен быть заблокирован."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Категория"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Непристойное"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Флейм/Ненависть/Угрозы"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Пользовательский запрос"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Причина"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Будет отправлено если заполнено"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Продолжить голосование"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Вы должны указать действие..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Вы больше не можете редактировать это сообщение.<br/>Сообщения могут быть отредактированы максимум %1 минут после того, как они были созданы."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "У Вас нет прав редактировать это сообщение."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Форум"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Редактирование сообщения"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Тема"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Добавить мою подпись к этому сообщению"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Невидим для Вас"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Доска сообщений команды %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Новое обсуждение"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Добавить новое обсуждение в этот форум"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Эта доска сообщений доступна в формате %1ленты RSS%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Это обсуждение скрыто"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Это обсуждение закреплено и заблокировано, и Вы его ещё не прочитали"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "закреплено/заблокировано/не прочтено"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Это обсуждение закреплено и Вы его ещё не прочитали"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "закреплено/не прочтено"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Вы ещё не прочитали это обсуждение, и оно заблокировано"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "не прочтено/заблокировано"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Вы ещё не прочитали это обсуждение"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Это обсуждение закреплено и заблокировано"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "закреплено/заблокировано"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Это обсуждение закреплено"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "закреплено"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Это обсуждение заблокировано"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "заблокировано"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Вы читаете это обсуждение"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "читается"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Вопросы и ответы"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Общайтесь с добровольцами напрямую через Skype, на любом из нескольких языков. Воспользуйтесь %1горячей линией BOINC%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Тема"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Вопросы"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Обсуждение среди участников команды %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "Доска сообщений %1"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Если у Вас есть вопрос или проблема, пожалуйста воспользуйтесь разделом %1Вопросы и ответы%2 этой доски сообщений."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Подписанные обсуждения"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Модерация сообщения"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Скрыть сообщение"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Коммерческий спам"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Дубликат"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Переместить сообщение"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID целевого обсуждения:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Заблокировать пользователя"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Период блокировки"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 часа"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 день"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 неделя"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 недели"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 месяц"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Навсегда"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Дополнительное объяснение %1 Будет включено в электронное письмо пользователю.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "У Вас нет прав на модерацию этого сообщения."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Не удалось переместить в другой тип категории"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Не удалось переместить в другую категорию"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Нет прав на блокировку пользователей"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Блокировка"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "Пользователь %1 был заблокирован."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Действие не удалось: возможны проблемы с базой данных"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "нет прав"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Модерация обсуждения '%1'"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Выберите категорию причины, или напишите подробное описание, почему Вы скрываете или блокируете это обсуждение; затем нажмите OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Текущий форум"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Форум-цель"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Новое название:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Только администраторы проекта могут создать здесь обсуждение. Но Вы можете отвечать в существующих обсуждениях."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Ваше сообщение было помечено как спам антиспам-системой Akismet. Пожалуйста измените ваш текст и попробуйте ещё раз."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Создание нового обсуждения"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Создание нового обсуждения"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Не забудьте добавить название"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Показать этот элемент как Уведомление в менеджере BOINC"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Отметьте, только если этот элемент будет интересен всем добровольцам."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Рейтинги отключены"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Эта функция отключена проектом"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Для того, чтобы оценить сообщение, У Вас должно быть больше среднее или общее количество очков."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Вы уже оценили это сообщение."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Вернуться к обсуждению"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Ввод принят"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Ваша оценка была принята. Спасибо за помощь."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Голос принят"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Ваша оценка была принята. Спасибо."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Проблема подсистемы голосования"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Ваше сообщение было помечено как спам антиспам-системой Akismet. Пожалуйста измените ваш текст и попробуйте ещё раз."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Ответить на обсуждение"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Сообщение:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "ответ на %1сообщение ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Отправить ответ"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Добавить мою подпись к этому ответу"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "У Вас должно быть больше среднее или общее количество очков, чтобы пожаловаться на это сообщение."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Обращение зарегистрировано"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Ваше обращение было записано. Спасибо за вашу помощь."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Модератор вскоре просмотрит ваше обращение и решит, что делать дальше - это может занять некоторое время, поэтому запаситесь терпением"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Предупредить о сообщении на форуме"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Прежде чем предупредить об этом сообщении, попробуйте вместо этого использовать +/- систему оценок. Если достаточное количество пользователей негативно оценит сообение, оно в конечном итоге будет скрыто.<br />Вы можете найти систему оценок в нижней части сообщения."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Предупредить о сообщении"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Почему Вы считаете это сообщение оскорбительным: %1Пожалуйста дайте достаточно информации, чтобы человек,\nкоторый ещё не читал данное обсуждение, мог быстро обнаружить проблему.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Обращение не зарегистрировано"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Ваше обращение не удалось записать. Пожалуйста подождите немного и попробуйте ещё раз."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Если это не временная ошибка, пожалуйста сообщите о ней разработчикам проекта."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "RSS-лента форума %1"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Эта доска сообщений доступна в формате ленты RSS."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Варианты:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Включить только сообщения пользователя с ID %1 (по умолчанию: все пользователи)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Включить только сообщения за последние %1 дней (по умолчанию: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Только обсуждения: %1 (Включить только первое сообщение каждого обсуждения)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Поиск в форуме"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Поисковый запрос"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Поиск ключевых слов:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Будут показаны сообщения, содержащие все указанные слова"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Например: \"зависание заставки\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Поиск по автору с ID:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Будут показаны сообщения только этого автора"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Например: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Опции поиска"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Ограничение поиска"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Искать не более указанного количества дней назад"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 месяцев"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 год"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "нет ограничений"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Показать сообщения только этого форума"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Сортировка"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Начать поиск"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Результаты поиска по форуму"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Темы обсуждений, соответствующие вашему запросу:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Сообщения, соответствующие вашему запросу:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Извините, ничего не найдено соответсвующего вашему поисковому запросу. Вы можете расширить условия поиска, используя меньше слов (или менее специфичные слова)."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Вы также можете %1попробовать найти то же самое с помощью Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Выполнить другой поиск"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Успешная подписка"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Вы подписаны на %1. Вы получите уведомление, как только там появится новое сообщение."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Подписка не удалась"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "В данный момент не удалось подписать Вас на %1. Пожалуйста, попробуйте ещё раз немного позднее..."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Успешное прекращение подписки"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Вы больше не подписаны на %1. Вы больше не будете получать уведомления для этого обсуждения."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Прекращение подписки не удалось"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "В данный момент невозможно прекратить подписку на %1. Пожалуйста, попробуйте ещё раз немного позднее..."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Неизвестное действие подписки"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Этот форум для Вас невидим."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Это обсуждение было скрыто модераторами."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "Мой вопрос отвечен"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Если ваш вопрос был адекватно отвечен, пожалуйста нажмите сюда"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "У меня такой же вопрос"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Добавить новое сообщение в это обсуждение"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Отписаться"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Вы подписаны на это обсуждение.  Нажмите здесь чтобы отписаться."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Подписаться"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Нажмите, чтобы получать уведомления о новых сообщениях в этом обсуждении"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Показать это обсуждение"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Скрыть это обсуждение"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Открепить"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Открепить это обсуждение"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Закрепить"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Отображать это обсуждение всегда в верхней части форума"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Разблокировать"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Разрешить новые сообщения в этом обсуждении"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Заблокировать"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Не разрешать новые сообщения в этом обсуждении"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Переместить это обсуждение в другой форум"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Редактировать тему"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Редактировать тему обсуждения"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Окончательно удалить обсуждение"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Экспортировать как уведомление"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Не экспортировать"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Не экспортировать эту новость как уведомление"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Сортировать"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Статус обсуждения обновлён"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "Статус был обновлён."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Сообщения пользователя %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Уже друзья"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Вы запросили дружбу с %1 %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Этот запрос все еще ожидает подтверждение."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 не принимает запросы дружбы от Вас"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Вы не можете дружить сами с собой"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Добавить друга"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Вы попросили добавить %1 как друга. Мы уведомим %1 и попросим его/её подтвердить, что Вы - друзья."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Введите дополнительное сообщение здесь:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Запрос на дружбу отправлен"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "Мы оповестили %1 о вашем запросе."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Пожалуйста авторизуйтесь как %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Вы должны авторизоваться как %1, чтобы увидеть этот запрос дружбы"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Запрос на дружбу"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 запросил дружбу с Вами."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 сообщает: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Принять дружбу"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Нажмите Принять, если %1 - действительно друг"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Отклонить"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Нажмите Отклонить, если %1 не является другом"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Дружба подтверждена"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Ваша дружба с %1 была подтверждена."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Дружба отклонена"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Вы отказались от дружбы с %1"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Уведомление не найдено"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Друг подтвердил"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "Вы теперь друзья с %1."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Прекратить дружбу?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Вы уверены, что хотите прекратить дружбу с %1?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Остаться друзьями"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Дружба прекращена"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Ваша дружба с %1 была прекращена."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Если Вы знаете адрес электронной почты вашей учётной записи, и Вы можете получить письмо:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Введите адрес электронной почты ниже и нажмите OK. Вам будут высланы инструкции для сброса вашего пароля."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Если Вы забыли адрес электронной почты вашей учётной записи, или Вы не можете получить письмо:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Если BOINC запускался под этой вашей учётной записью, Вы можете получить доступ к ней. Для этого нужно сделать следующее:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Перейдите в каталог данных BOINC на вашем компьютере (его расположение записывается в журнал событий при запуске)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Найдите там файл учётной записи для этого проекта; он будет называться <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Откройте этот файл в текстовом редакторе, например в Блокноте. Вы увидите что-то вроде"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Выберите и скопируйте строку между %1 и %2 (%3 в вышеприведённом примере)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Вставьте эту строку в расположенное ниже поле, и нажмите OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Теперь Вы авторизованы; обновите адрес электронной почты и пароль для вашей учётной записи."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Авторизоваться с аутентификатором"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Забыли свою учётную информацию?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Нет сообщённых ГП-задач"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Лучшие модели графических ускорителей"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "Следующие списки показывают наиболее продуктивные модели графических ускорителей на разных платформах.  Относительные скорости, измеренные по затраченному на задания среднему времени, указаны в скобках."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Добро пожаловать в %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Для просмотра и редактирования настроек вашей учётной записи используйте ссылки ниже."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Если Вы этого ещё не сделали, %1загрузите клиентское ПО BOINC%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Ваша учётная запись"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "анонимная платформа, приложение отсутствует"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "анонимная платформа"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Версия приложения отсутствует"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Приложение отсутствует"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Платформа отсутствует"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Число завершённых заданий"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Максимум заданий в день"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Число заданий сегодня"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Правильные задания завершённые подряд"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Средняя скорость обработки"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Подробная информация о приложениях для компьютера %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "У нас нет записи об этом компьютере."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Вы не можете удалить запись об этом компьютере, так как в базе всё ещё содержится для него работа. Вы должны подождать несколько дней, пока работа для этого компьютера не будет удалена из базы данных проекта."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Удаление записи об этом компьютере"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Запись удалена."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Вернуться к списку ваших компьютеров"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Объединение записей о компьютерах"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Объединение компьютеров"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Иногда BOINC по ошибке назначает различные идентификаторы одному и тому же компьютеру. Вы можете исправить это объединив старые идентификаторы с самым новым."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Нет подходящих компьютеров для объединения с текущим."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Показать подробности"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Отметьте компьютеры, такие же как и %1 (создан %2, ID компьютера %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "имя"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "создан"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID компьютера"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "без имени"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Объединить компьютеры"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Обновление очков компьютера"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Очки компьютера обновлены"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Размещение компьютера обновлено"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "не указано"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Размещение этого компьютера было установлено в %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Это изменение будет учтено в следующий раз, когда компьютер свяжется с данным проектом."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Вернуться на страницу компьютера"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Компьютеры, принадлежащие пользователю %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Компьютеры скрыты"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Этот пользователь предпочёл скрыть информацию о своих компьютерах."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Ваши компьютеры"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Разрешённые тэги HTML"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Следующие тэги HTML разрешены в описаниях команд:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "жирный"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "наклонный"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "гиперссылка"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "параграф"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "разрыв"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "предварительное форматирование"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "изображение; высота не должна превышать 450 пикселей. Пожалуйста, не публикуйте ссылки на изображения без разрешения вебсайта, где размещено изображение."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Вы также можете использовать специальные символы с амперсандами."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Прочтите наши правила и политику"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Запускайте %1 только на авторизованных компьютерах"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Запускайте %1 только на компьютерах, которыми Вы владеете, или для которых Вы получили права владельца. В некоторых компаниях и школах (ВУЗах) установлен порядок, по которому запрещается использовать их компьютеры в таких проектах, как %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Как %1 будет использовать ваш компьютер"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Когда Вы запускаете %1 на Вашем компьютере, он будет использовать часть ресурсов процессора, пространство на жестком диске (винчестере), и сетевой трафик. Вы можете контролировать, сколько ресурсов вашего компьютера будет использовано для работы %1, и когда эти ресурсы будут использоваться."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Работа, совершённая вашим компьютером, содействует решению задач %1, как описано на web-сайте проекта. Приложения могут меняться время от времени."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Обеспечение конфиденциальности"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Ваша учётная запись на %1 идентифицируется по имени, которое Вы указали. Это имя может быть показано на web-сайте %1, наряду со сводкой работы вашего компьютера, сделанной для %1. Если Вы хотите остаться неизвестным, выберите имя, которое не соответствует вашему настоящему имени."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Если Вы принимаете участие в %1, информация о вашем компьютере (такая как тип процессора, объем оперативной памяти, и т.д.) будет записана проектом %1 и использована для принятия решения о том, какой тип работы назначить вашему компьютеру. Эта информация также будет показана на web-сайте %1. Ничего, что указывало бы на местонахождение вашего компьютера (например, его доменное или сетевое имя), не будет показываться."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Чтобы принять участие в %1, Вы должны указать ваш адрес электронной почты. Этот адрес не будет показан на web-сайте %1 или доступен другим организациям. %1 может посылать Вам периодические новостные письма; тем не менее, Вы можете отказаться от них в любое время."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Личные сообщения, отправляемые на веб-сайте %1, видимы только отправителю и получателю. %1 не просматривает и не контролирует содержимое личных сообщений.  Если Вы получаете нежелательные личные сообщения от некоторых пользователей %1, Вы можете добавить их в ваш %2фильтр сообщений%3.  В этом случае Вы не увидите ни одного общего или личного сообщения от таких пользователей."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Если Вы используете форумы нашего веб-сайта, Вы должны следовать %2данным рекомендациям%3. Сообщения, публикуемые на форумах %1, видны каждому, в том числе лицам, не являющимся участниками проекта.  Публикуя сообщения на форумах, Вы предоставляете каждому безотзывную лицензию на просмотр и копирование ваших сообщений."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Безопасно ли запускать %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Каждый раз при загрузке программы через Интернет может случиться следующее: программа может иметь опасные ошибки, или сервер может быть взломан. %1 предпринял усилия для минимизации этих рисков. Мы тщательно оттестировали наши приложения. Наши сервера защищены сетевым экраном и настроены на высокую безопасность. Чтобы удостовериться в целостности загружаемых программ, все исполняемые файлы подписаны цифровой подписью на защищенном компьютере, не подключенном к сети Интернет."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Приложения, запускаемые проектом %1, могут послужить причиной перегрева некоторых компьютеров. Если это случилось, остановите выполнение %1 или используйте %2утилиты%3, которые ограничат использование процессора."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 был разработан %2. BOINC был разработан в Университете Калифорнии (the University of California)."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Ответственность"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 и %2 не берут на себя ответственность за ущерб, нанесенный вашему компьютеру, потерю данных, или любое другое событие или инцидент, который может произойти как результат участия в %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Другие BOINC-проекты"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Другие проекты используют ту же платформу - BOINC - что и %1. Вы можете захотеть принять участие в одном или нескольких из этих проектов. Если Вы присоединитесь к нескольким проектам, ваш компьютер будет выполнять полезную работу, даже когда у %1 не будет заданий, доступных для обработки."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Другие проекты не связаны с %1, и мы не можем поручиться за их безопасность или природу их исследований. Присоединяйтесь к ним на свой страх и риск."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Выбор языка"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Этот веб-сайт доступен на нескольких языках. В настоящее время выбран язык: %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Обычно выбор языка определяется языковыми настройками вашего браузера, а именно: %1.  Вы можете поменять эту настройку, используя:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Сервис/Настройки/Общие (Tools/Options/General)"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Сервис/Свойства обозревателя/Языки (Tools/Internet Options/Languages)"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Или Вы можете выбрать язык, нажав на одну из ссылок.  Вашему браузеру будет отправлен файл 'cookie'; убедитесь, что ваш браузер принимает файлы 'cookie' нашего домена."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Название языка (нажмите для выбора)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Использовать языковые настройки обозревателя"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Переводы сделаны добровольцами.  Если ваш родной язык здесь отсутствует, %1Вы можете обеспечить перевод%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "или %1создать учётную запись%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Обработка %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1 объединён с %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Вернуться к списку ваших компьютеров"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Данная операция объединяет компьютеры на основе их доменных имен.\n<p>\nЭта операция для каждого доменного имени объединит все старые компьютеры\nс таким именем с самым новым компьютером с таким же именем.\nНесовместимые компьютеры не будут объединены.\n<p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Вперёд, сделать это"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Вернуться к списку компьютеров"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nДля максимизации обсуждения и обмена информацией,\nнаши доски сообщений модерируются.\nСообщения доски сообщений подлежат следующим правилам размещения:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nМодераторы могут удалять сообщения, которые нарушают любые из этих правил.\nАвторы удалённых сообщений будут уведомлены по электронной почте.\nУ серьёзных нарушителей может быть временно отменена возможность размещать сообщения\n(хотя для предотвращения злоупотреблений только администраторы проекта имеют возможность сделать это).\nДополнительные виды плохого поведения ('взлом' сообщений для перехвата\nIP-адресов других участников, чрезмерное создание спам-обсуждений\nна фо [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Очки, ожидающие подтверждения"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID задания"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID задачи"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID компьютера"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Запрошено очков"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Очки, ожидающие подтверждения: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Заблокировать сообщения от этого пользователя"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Заблокировать пользователя"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Ваше сообщение было отправлено."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "У Вас нет личных сообщений."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Отправитель и дата"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Ответить на это сообщение"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Удалить это сообщение"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Выбрать все"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Отменить выбор всех"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Удалить выбранные сообщения"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Отправитель"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Дата"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Вы должны заполнить все поля, чтобы отправить личное сообщение"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Ваше сообщение было помечено как спам\nантиспам-системой Akismet.\nПожалуйста измените ваш текст и попробуйте ещё раз."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Не удается найти пользователя с id %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Не удается найти пользователя с именем %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 - не уникальное имя пользователя; Вы должны будете использовать ID пользователя"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Пользователь %1 (ID: %2) не принимает ваши личные сообщения."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Нет такого пользователя"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Действительно заблокировать %1?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Вы действительно уверены, что хотите заблокировать пользователя %1 отправлять Вам личные сообщения?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Пожалуйста отметьте, что Вы можете заблокировать только ограниченное количество пользователей."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Как только пользователь был заблокирован, Вы можете разблокировать его используя страницу настроек форума."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Нет, отменить"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "нет такого пользователя"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Пользователь %1 заблокирован"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Отправка Вам личных сообщений от пользователя %1 была заблокирована."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Чтобы разблокировать, посетите %1настройки доски сообщений%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Неизвестное действие"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Ваши настройки обновлены и\n          будут задействованы, когда ваш компьютер свяжется с %1,\n          или Вы выполните команду %2Обновить%3 из Менеджера BOINC."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Ваши настройки были сброшены к значениям по умолчанию, и\n          будут задействованы, когда ваш компьютер свяжется с %1,\n          или Вы выполните команду %2Обновить%3 из Менеджера BOINC."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 для конфигурации %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Назад к настройкам"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Подтверждение удаления настроек"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Вы уверены, что хотите удалить ваши отдельные настройки %1 для конфигурации %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Удалить настройки"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Отмена"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Профили"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Профили%2 позволяют людям разделять биографические данные и личные мнения с сообществом %3."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Исследуйте разнообразие ваших единомышленников-добровольцев, и представьте вашу собственную точку зрения другим."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Если Вы этого еще не сделали, Вы можете %1создать свой собственный профиль пользователя%2, чтобы другие смогли его увидеть!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Пользователь Дня"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Обозреватель профилей пользователей"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Посмотреть %1Галерею картинок пользователей%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Просмотреть профили %1по странам%2."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Просмотреть профили %1в случайном порядке%2, %3в случайном порядке с картинками%2, или %4в случайном порядке без картинок%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Алфавитные списки профилей:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Поиск по тексту профиля"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Нет профилей"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Нет профилей, соответствующих вашему запросу."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Неверный тип голоса:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Голос принят"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Спасибо"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Ваша рекомендация была принята."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Ваш голос против этого профиля был принят."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Вернуться к профилю."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Профили, содержащие '%1'"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Имя пользователя"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Присоединился к проекту"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "В среднем за день"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Не найдено профилей, содержащих '%1'"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Нет такого задания:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Эта возможность временно отключена"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Компьютер с ID %1 не найден"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Нет доступа"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Отсутствует ID пользователя или ID компьютера"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Нет заданий для показа"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Пользователь Дня"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Не работает"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Работает"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Отключен"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Статус проекта"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Статус сервера"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Программа"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Имя сервера"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Версия схемы базы данных: "
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Статус вычислений"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Участников"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Распределение заданий по приложениям"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Время обработки последних 100 заданий, в часах: среднее, мин., макс."
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Пользователей за последние 24ч."
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Компьютер %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Статистика и лидеры"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Статистика %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Лучшие участники"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Лучшие команды"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Лучшие компьютеры"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "Модели графических ускорителей"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "Модели ЦП"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Более детальная статистика %1 и других BOINC-проектов доступна на нескольких вебсайтах:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Вы также можете получить вашу текущую статистику в виде \"изображения для подписи\":"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Дополнительно Вы можете получить вашу индивидуальную суммарную статистику по всем проектам BOINC с нескольких вебсайтов; см. вашу %1домашнюю страницу%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Команды"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "Участники %1 могут объединяться в %2команды%3."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Вы можете состоять только в одной команде. Вы можете присоединиться или покинуть команду в любое время."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "У каждой команды есть %1основатель%2, который может:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "иметь доступ к адресам электронной почты участников команды"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "редактировать название и описание команды"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "добавить или удалить Администраторов команды"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "удалять участников из команды"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "расформировать команду, в которой нет участников"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Чтобы присоединиться к команде, посетите ее страницу и нажмите %1Присоединиться к этой команде%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Найти команду"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Все команды"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "Команды типа '%1'"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Создать новую команду"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Если Вы не можете найти подходящую Вам команду, Вы можете %1создать новую команду%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Удалить статус Администратора команды у этого участника"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Добавить или удалить Администраторов команды"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Вы можете выбрать участников команды в качестве 'Администраторов команды'. Администраторы команды могут:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Редактировать информацию о команде (название, URL, описание, страна)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Просматривать историю присоединения/выхода из команды"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Модерировать форум команды, если есть (администраторы получают уведомления по электронной почте о событиях модерации и о красных X-сообщениях)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Администраторы команды не могут:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Поменять основателя команды"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Удалить участников"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Если Администратор команды покидает команду, он перестает быть Администратором."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Мы рекомендуем Вам выбирать в качестве Администраторов команды только людей, которых Вы знаете и которым доверяете."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "В настоящее время у команды нет Администраторов"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Текущие Администраторы команды"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Стал Администратором команды с"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Добавление Администратора команды"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Адрес email участника команды:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Добавить"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "не удалось удалить администратора"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "Пользователь не является участником команды"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 уже администратор команды %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Невозможно добавить администратора"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Нет такой команды"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "нет такой команды"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "Пользователь не является участником команды %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Изменение основателя команды %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 теперь основатель команды %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Изменение основателя команды %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Участник команды %1 запросил полномочия основателя этой команды %2, но покинул команду, таким образом отменив запрос."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Участник команды %1 запросил полномочия основателя этой команды. Это, возможно, произошло из-за того, что Вы покинули команду или не контактировали с командой в течение долгого времени."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "отклонить запрос"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Если Вы не отмените запрос до %1, у участника %2 будет возможность принять полномочия основателя команды.<br /><br />\n                   Чтобы принять запрос, назначьте полномочия основателя участнику %3, используя форму ниже."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Запросов на смену основателя нет в ожидании."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Чтобы назначить привилегии основателя этой команды другому участнику, отметьте участника и нажмите кнопку <strong>Поменять основателя</strong> внизу."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Новый основатель?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Поменять основателя"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Нет участников, которым можно передать команду."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Вы должны выбрать непустое название команды"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Команда с названием %1 уже существует - попробуйте другое имя"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Не удалось создать команду - пожалуйста попытайтесь позже."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Создать команду"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Вы состоите в команде %1. Вы должны %2выйти из этой команды%3 перед созданием новой."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Не основатель и не администратор"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "История команды %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Когда"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Участник"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Действие"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Всего очков на момент действия"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "неправильная страна"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "Название '%1' уже используется другой командой."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Необходимо указать название команды"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Не удалось обновить команду - пожалуйста, попробуйте ещё раз позже."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Редактирование команды %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Обновить информацию о команде"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "Список email-адресов команды %1"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Список участников команды %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Показать как простой текст"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Создать доску сообщений"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Вы можете создать доску сообщений для общения в команде %1."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Только участники команды смогут оставлять сообщения."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "По вашему выбору, только участники смогут её читать."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "У Вас и ваших Администраторов команды будут права модерирования."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Создать доску сообщений для команды %1"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "У команды уже есть доска сообщений"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Доска сообщений команды"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Минимальное время между сообщениями (секунды)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Минимальное общее количество очков для написания сообщений"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Минимальное среднее количество очков для написания сообщений"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Отправить"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Удалить доску сообщений вашей команды."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Действительно удалить доску сообщений?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Вы уверены, что Вы хотите удалить доску сообщений вашей команды? Все обсуждения и сообщения будут безвозвратно удалены. (Вы сможете, однако, позже создать новую доску сообщений)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Да - удалить доску сообщений"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Доска сообщений удалена"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Доска сообщений вашей команды была удалена. Теперь Вы можете %1создать новую%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Доска сообщений команды обновлена"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Обновление завершено успешно"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Обновление не удалось"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "У команды нет форума"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Вы должны быть участником команды, чтобы получить доступ к этой странице."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Запрос полномочий основателя команды %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Текущий основатель был проинформирован о вашем запросе по электронной почте и личным сообщением.<br /><br />\n                       Если основатель не ответит в течение 60 дней, у Вас будет возможность стать новым основателем."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Запрос полномочий основателя в данный момент не разрешён"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Принятие полномочий основателя команды %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Поздравляем, Вы теперь основатель команды %1. Перейдите на %2страницу вашей учётной записи%3, чтобы воспользоваться возможностями Администратора команды."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Отмена запроса на смену основателя"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "Запрос полномочий основателя от участника %1 был отменен."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Не было запросов на смену основателя."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "неизвестное действие %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Вернуться на страницу команды"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Вы должны быть участником команды, чтобы получить доступ к этой странице."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Запрос на смену основателя команды %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Вы теперь основатель команды %1."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Вы запросили смену основателя команды %1 с %2."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "60 дней прошли с момента подачи вашего запроса, а основатель так и не ответил. Вы можете теперь принять полномочия основателя, щёлкнув здесь:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Принять полномочия основателя"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Основатель был проинформирован о вашем запросе. Если он/она не ответит до %1, у Вас будет возможность стать основателем."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Если основатель команды не активен, а Вы хотите принять роль основателя, нажмите на кнопку ниже. Текущему основателю будет отправлено электронное письмо с подробной информацией о вашем запросе, и у него будет возможность передать Вам полномочия основателя или отклонить ваш запрос. Если основатель не ответит в течение 60 дней, у Вас будет возможность стать основателем.<br /><br />\n                        Вы уверены, что хотите запросить полномочия основателя?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Запросить смену основателя"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "%2 пользователем %1 уже была запрошена смена основателя."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Смена основателя была запрошена в течение последних 90 дней, поэтому новые запросы не разрешены. Пожалуйста, попробуйте ещё раз позже."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "Команда %1 не допускает присоединений."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Уже участник команды"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Вы уже участник команды %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Не удалось присоединиться к команде - пожалуйста, попробуйте ещё раз позже."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Присоединение к команде %1."
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "Вы присоединились к команде %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Присоединение к команде %1."
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Пожалуйста, примите во внимание:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Присоединение к команде дает доступ её основателю к вашему адресу электронной почты."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Присоединение к команде не повлияет на очки вашей учётной записи."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Присоединиться к команде"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Результаты поиска"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Результаты поиска '%1'"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Вы можете увидеть участников этих команд, статистику и информацию."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Более 100 команд удовлетворяют условиям вашего поиска. Показаны первые 100 команд."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Конец результатов. %1 Если Вы не смогли найти команду, которую ищете, Вы можете сами %2создать команду%3."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Управление командой %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Редактировать информацию о команде"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Изменение названия команды, URL, описания, типа или страны"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Список участников:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "текст"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Просмотр имён участников и email-адресов"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Просмотр истории изменений:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Смотрите, когда участники присоединились или покинули эту команду"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Ответить на запрос смены основателя."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Если Вы не ответите до %1, участник %2 сможет принять полномочия основателя этой команды."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Удаление неактивных или нежелательных участников этой команды"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Передача полномочий основателя команды другому участнику"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Добавить/удалить Администраторов команды"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Дайте выбранным участникам команды привилегии Администратора команды"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Удалить команду"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Разрешено только если в команде нет участников"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Создание или управление доской сообщений команды"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Чтобы создать эту команду во всех проектах BOINC (текущих и будущих), Вы можете превратить ее в %1 глобальную команду BOINC%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Администраторы команды приглашаются присоединиться и участвовать в группе Google %1boinc-team-founders%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Нельзя удалить непустую команду"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Команда %1 удалена"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Предел превышен:  Можно показать только первые 1000 участников."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Участники команды %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Невозможно выйти из команды"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Команда не существует, или Вы не принадлежите ей."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Выход из команды %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Обратите внимание, прежде чем выйти из команды:</strong>\n         <ul>\n         <li>Если Вы выйдете из команды, Вы можете позже присоединиться к ней снова, или присоединиться к любой другой команде на свой выбор\n         <li>Выход из команды никак не повлияет на вашу личную статистику.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Выйти из команды"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Удаление пользователей из команды %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 не участник команды %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 был удален"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Удаление участников из команды %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Удалить?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Имя (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Нет подходящих участников для удаления."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Удалить участников"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Название команды"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Результаты поиска команд"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Не найдено команд, удовлетворяющих вашим критериям. Попробуйте другой поиск."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Или Вы можете %1создать новую команду%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Следующие команды удовлетворяют одному или нескольким критериям вашего поиска.\n            Чтобы присоединиться к команде, нажмите её название и перейдите на страницу команды,\n               затем нажмите %1Присоединиться к этой команде%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Измените ваш поиск"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Вы можете объединиться в команду с другими людьми с похожими интересами, или из одной страны, компании, или школы."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Используйте эту форму для поиска команд, которые могут Вам подойти."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Я не заинтересован%2 в присоединении к команде прямо сейчас."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Предел превышен - Извините, только первые %1 элементов"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Лучшие компьютеры"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Лучшие команды типа %1"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "Нет команд типа %1"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Участвует с"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "Пользователь дня не был выбран."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Пользователь дня на %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Фильтры"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Имя пользователя начинается с"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Любая"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "С профилем?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Любой"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "В команде?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Сортировка"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "В порядке уменьшения времени регистрации"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "В порядке уменьшения среднего количества очков"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "В порядке уменьшения общего количества очков"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "искомая строка должна быть минимум 3 символа"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Результаты поиска пользователей"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Присоединился"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Нет пользователей, удовлетворяющих вашим критериям поиска."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Пользователь не найден!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Учётные данные<br/>для %1<br/>Время:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Команда:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Всего очков (команда):"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "В среднем (команда):"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Команда: Нет"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Проверка адреса электронной почты BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Пожалуйста посетите следующую ссылку, чтобы подтвердить адрес электронной почты вашей учётной записи в %1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Письмо для проверки отправлено"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Электронное письмо отправлено на адрес %1. Посетите ссылку, которую оно содержит, чтобы подтвердить ваш адрес электронной почты."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Нет такого пользователя."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Ошибка в данных URL - не удалось проверить адрес электронной почты"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Неудача при обновлении базы данных - пожалуйста, попробуйте ещё раз позже."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Проверка адреса электронной почты"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Адрес электронной почты вашей учётной записи был подтвержден."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "У этого пользователя нет профиля"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Профиль: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Данные учётной записи"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Вы можете получить доступ к вашей учётной записи либо с использованием адреса электронной почты и пароля,\n    либо используя назначенный 'ключ учётной записи'.\n    Ваш ключ учётной записи:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Этот ключ может быть использован для:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "входа в свою учётную запись на сайте"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "подключения компьютера к вашей учётной записи без использования Менеджера BOINC.\n       Для этого необходимо установить BOINC,\n       создать файл с именем %1 в каталоге данных BOINC,\n       и установить его содержимое следующим образом:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Слабый ключ учётной записи"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "Ваш 'слабый ключ учётной записи' может быть использован для подключения компьютеров к вашей учётной записи,\n    как описано выше, но он не может использоваться для входа в учётную запись или её изменения каким-либо образом.\n    Если вы хотите подключить ненадежные или небезопасные компьютеры к вашей учётной записи,\n    сделайте это, используя ваш слабый ключ учётной записи.\n    Ваш слабый ключ учётной записи:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Если Вы измените ваш пароль, ваш слабый ключ учётной записи изменится, а предыдущий слабый ключ учётной записи станет недействительным."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "не удалось найти задачу"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Задача %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "приложение"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "канонический результат"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "предоставлено очков"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Задания обрабатываются"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "скрыто в ожидании завершения"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "минимальный кворум"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "начальная репликация"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "макс. # ошибок/всего/успешных заданий"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "ошибки"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "проверка"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Ожидание"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Главная страница"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Авторские права"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Сгенерирован"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Ваша личная информация."
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Расскажите нам о себе. Вы можете рассказать нам о том, откуда Вы, о своем возрасте, образовании, увлечениях, или ещё о чём-нибудь."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Ваше мнение о %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Выскажите нам свои мысли о %1<ol>\n    <li>Почему Вы запускаете %1?\n    <li> Каковы ваши взгляды о проекте?\n    <li> Какие-нибудь предложения?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Цветовая схема для графики"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Максимальная загрузка ЦП (%) для графики%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Выполнять только выбранные приложения"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Получать задания только для определённых приложений. Полезно, чтобы сосредоточить внимание на конкретных приложениях, или чтобы исключить их."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Если для выбранных приложений нет никакой работы, принимать работу для других приложений?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Использовать более быстрые не графические приложения, если таковые имеются?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(все приложения)"
diff --git a/locale/ru/BOINC-Setup.mo b/locale/ru/BOINC-Setup.mo
index be6915c..f4ba512 100644
Binary files a/locale/ru/BOINC-Setup.mo and b/locale/ru/BOINC-Setup.mo differ
diff --git a/locale/ru/BOINC-Setup.po b/locale/ru/BOINC-Setup.po
index b27e179..b557e65 100644
--- a/locale/ru/BOINC-Setup.po
+++ b/locale/ru/BOINC-Setup.po
@@ -1,40 +1,46 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Николай Сахаров <saharovna at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-04-20 12:34+0000\n"
-"Last-Translator: Nikolay Sakharov <saharovna at gmail.com>\n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/boinc/language/ru/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-15 17:17+0000\n"
+"Last-Translator: Николай Сахаров <saharovna at gmail.com>\n"
+"Language-Team: Russian (http://www.transifex.com/boinc/boinc/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ru\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Извините, данная версия %s требует систему 10.5 или выше."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Извините, данная версия %s требует систему 10.6 или выше."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Да"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Нет"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Должен ли BOINC работать, даже если пользователь не вошёл в систему?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -42,26 +48,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Пользователи с правами администратора этого компьютера автоматически смогут запускать и управлять %s.\n\nХотите ли вы, чтобы простые пользователи без административных прав также могли запускать и управлять %s на этом компьютере Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Вы хотите установить %s как скринсейвер для всех пользователей %s на этом Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "ОК"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Ошибка доступа после перезапуска"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Удаление может занять несколько минут.\nПожалуйста, подождите."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +76,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Вы уверены, что хотите полностью удалить %s с вашего компьютера?\n\nБудут удалены исполняемые файлы, но файлы данных %s останутся."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Отменено: %s не был изменён."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Произошла ошибка: код ошибки %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "имя  пользователя"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Хотите ли Вы также удалить VirtualBox с вашего компьютера?\n(VirtualBox был установлен вместе с BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "Удаление завершено.\n\n Вы можете удалить следующие оставшиеся объекты с помощью Поисковика: \nкаталог \"%s\"\n\nдля каждого пользователя, файл\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Для полного удаления %s с вашего компьютера введите пароль администратора.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Отмена"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Продолжить..."
diff --git a/locale/ru/BOINC-Web.mo b/locale/ru/BOINC-Web.mo
index 07fb62b..f9ab6c5 100644
Binary files a/locale/ru/BOINC-Web.mo and b/locale/ru/BOINC-Web.mo differ
diff --git a/locale/ru/BOINC-Web.po b/locale/ru/BOINC-Web.po
index c65ed41..aa13911 100644
--- a/locale/ru/BOINC-Web.po
+++ b/locale/ru/BOINC-Web.po
@@ -1,22 +1,22 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
 # Dan <mutari.dirk at gmail.com>, 2015
 # Dmytro Kazanzhy <kazanzhy at mail.ua>, 2015
-# Nikolay Sakharov <saharovna at gmail.com>, 2015
+# Ivan Nazarenko <nasaivan at mail.ru>, 2017
+# Николай Сахаров <saharovna at gmail.com>, 2015
+# Илья Смирнов <php1602agregator at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2015-07-23 21:06+0000\n"
-"Last-Translator: Nikolay Sakharov <saharovna at gmail.com>\n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/boinc/language/ru/)\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-01 23:05+0000\n"
+"Last-Translator: Ivan Nazarenko <nasaivan at mail.ru>\n"
+"Language-Team: Russian (http://www.transifex.com/boinc/boinc/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,359 +24,466 @@ msgstr ""
 "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Русский"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Russian"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! помогает вам в создании и управлении вашего аккаунта проекта BOINC и поможет вам с настройками, объединением или созданием команд, подключением компьютеров к проектам и многое другое.  Являетесь ли вы новым или существующим пользователем BOINC, BAM! поможет вам получить максимальную отдачу от BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "Члены GridRepublic запускают заставку, что позволяет их компьютерам работать на общественных исследовательских проектах, когда машины не используются. Эта заставка не влияет на производительность компьютера больше, чем обычный скринсейвер."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Поиск"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "Вернуться на главную страницу BOINC"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Эту страницу можно %sперевести%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Мы рекомендуем Вам также установить VirtualBox, чтобы ваш компьютер мог участвовать в научных проектах, которые требуют это ПО."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "Узнать больше о VirtualBox."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "Загрузить BOINC + VirtualBox"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "для %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "Загрузить BOINC"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINC - это программа, предоставляющая неиспользуемое время вашего компьютера для научных проектов, таких как: SETI at home, Climateprediction.net, Rosetta at home, World Community Grid и многих других."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "После установки BOINC на ваш компьютер Вы сможете выбрать и участвовать одновременно в нескольких проектах, каких - решайте сами."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "Вы можете запустить это программное обеспечение на компьютере только в том случае, если Вы владеете компьютером или у Вас есть разрешение его владельца."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "Мы рекомендуем Вам скачать BOINC из магазина Google Play или Amazon Appstore, а не отсюда."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Системные требования"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Описание последней версии"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Помощь"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Все версии"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr "История версий"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "Вычисления на графических процессорах"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: вычисления для науки"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "С помощью данной горячей линии BOINC, вы можете задать вопросы опытным пользователям BOINC лично: %s о том, что такое BOINC и распределённые вычисления; %s об установке программного обеспечения BOINC и процессе подключения к проектам; %s о возникших проблемах, связанных с работой BOINC."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "Горячая линия техподдержки BOINC построена на использовании интернет-телефона %sSkype%s. Skype - это бесплатная программа, позволяющая бесплатно звонить по всему миру.  Если у вас ещё не установлен Skype, вы можете %sзагрузить и установить%s его, а затем вернуться на данную страницу для выбора помощника."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "Лучше всего задать вопрос помощнику лично в режиме телефонного разговора, но для этого потребуются микрофон и наушники.  В качестве альтернативы, в Skype можно воспользоваться текстовым чатом, в крайнем случае оставьте ваш вопрос и адрес электронной почты (чтобы можно было на него ответить)."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Помощники разговаривают на разных языках. Вы можете выбрать понятный вам:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Станьте добровольным помощником"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Если вы достаточно хорошо понимаете, что такое BOINC и как оно работает, вы сами %sможете стать добровольным помощником%s.  Этим вы поможете как новым участникам BOINC, так и развитию BOINC и распределённых вычислений."
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Если вы уже являетесь добровольным помощником: для изменения ваших настроек, %sзайдите сюда%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "Помощники BOINC - это добровольцы, не получающие оплату.  BOINC или Университет Калифорнии не несут ответственности за их советы."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "%1Никогда%2 не давайте информацию об адресе электронной почты или пароле помощникам BOINC."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Вычислительные мощности"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "100 лучших участников"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "Статистика"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "В среднем за 24 часа:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "петафлопс."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Активно:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "участников,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "компьютеров.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "В среднем за 24 часа:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "петафлопс."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Новости"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "База данных недоступна; попробуйте позже."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Информация для участников"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Используйте время простоя на вашем компьютере (Windows, Mac, Linux или Android), чтобы лечить болезни, изучать глобальное потепление, открывать пульсары, и делать много других типов научных исследований.  Это безопасно, надёжно и просто:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "Страница загрузки"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Документация"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "BOINC для Android можно найти в Google Play Store, а версию для Kindle можно загрузить из Amazon App Store."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Вы можете выбрать для поддержки %1 проекты %2 такие как %3, %4 и %5, среди многих других."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Если Вы запустили несколько проектов, попробуйте %1 менеджер аккаунтов %2 такой как %3 GridRepublic %4 или %5BAM! %6. "
+
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Подробнее"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Доска сообщений"
 
-#: index.php:95
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Проекты"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Вручную"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Дополнения"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Ссылки"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Используйте время простоя на вашем компьютере (Windows, Mac, Linux или Android), чтобы лечить болезни, изучать глобальное потепление, открывать пульсары, и делать много других типов научных исследований.  Это безопасно, надёжно и просто:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Другие способы помочь:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Выберите проекты"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Обзор"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "Загрузите программное обеспечение BOINC"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Перевод"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Введите адрес электронной почты и пароль."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Тест"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "При желании участвовать одновременно в нескольких проектах, в качестве альтернативы можно воспользоваться сайтами %sменеджеров проектов%s, такими как %sGridRepublic%s или %sBAM!%s. "
+#: doc/index.php:135
+msgid "Document"
+msgstr "Документ"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "Используйте BOINC для организации вычислений"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Публиковать"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Обновления серверного ПО"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Сообщить об ошибке"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Вычисления с высокой пропускной способностью с BOINC"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1Учёные%2: используйте BOINC, чтобы создать %3проект добровольных распределённых вычислений%4, дающий Вам вычислительную мощь тысяч центральных процессоров и графических ускорителей."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1Университеты%2: используйте BOINC, чтобы создать %3Виртуальный Суперкомпьютерный Центр ВУЗа%4."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Компании%2: используйте BOINC для %3распределённых вычислений в локальной сети%4."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "О BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Документация"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Доска сообщений"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC и Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Разработка программного обеспечения"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC - это программная платформа для добровольных вычислений. Она включает в себя клиент, сервер,  веб-компоненты и интерфейсы API для подключения других компонентов."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Исходный код"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Собрать BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Дизайн-документы"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Мы всегда ищем программистов, чтобы помочь нам поддерживать и развивать BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Процесс разработки"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Задачи на разработку"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC распространяется под лицензией LGPL с открытым исходным кодом."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "Разработка BOINC"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC - это проект сообщества.  Каждый может участвовать."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "Рассылки"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "События"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Исходный код"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Графика"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Управление"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Живая помощь через Skype или e-mail"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Live Help позволяет получить персональную помощь от опытного пользователя BOINC, который может ответить на вопросы о BOINC, поможет вам установить и использовать BOINC, и устранять неполадки."
+
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Вы можете пообщаться с помощником"
+
+#: doc/help.php:16
+msgid "by email"
+msgstr "по электронной почте"
+
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\nголосом, используя % 1Skype %2, бесплатную Интернет - телефонию. Если у вас еще нет Скайп, вы можете %3 скачать и установить его %4.  Когда вы закончите, вернитесь на эту страницу."
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "API для ПО сторонних разработчиков"
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "используйте Скайп чат"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Программное обеспечение с открытым исходным кодом для организации добровольных распределённых вычислений."
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Помощники разговаривают на разных языках. Пожалуйста, выберите язык (количество помощников показано):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Станьте добровольным помощником"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Если вы достаточно хорошо понимаете, что такое BOINC и как оно работает, вы сами %sможете стать добровольным помощником%s.  Этим вы поможете как новым участникам BOINC, так и развитию BOINC и распределённых вычислений."
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Если вы уже являетесь добровольным помощником: для изменения ваших настроек, %sзайдите сюда%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "Помощники BOINC - это добровольцы, не получающие оплату.  BOINC или Университет Калифорнии не несут ответственности за их советы."
 
-#: projects.inc:19
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1Никогда%2 не давайте информацию об адресе электронной почты или пароле помощникам BOINC."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Распределённая сеть датчиков"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Стэнфордский Университет"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Калифорнийский технологический институт"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Сейсмология"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "Quake-Catcher Network развивает крупнейшую в мире сейсмическую сеть, используя датчики, которые подключены к компьютерам и смартфонам."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher сеть использует датчики компьютеров и смартфонов для обнаружения сейсмических волн."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "Польский Фонд BOINC"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Исследования окружающей среды"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Radioactive at Home создает бесплатную и постоянно обновляющуюся карту радиационного фона, используя датчики, которые подключены к компьютерам волонтеров. Вы должны приобрести датчик для участия."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Когнитивная наука и искусственный интеллект"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Когнитивная наука"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home использует вычислительное моделирование познавательного процесса, чтобы лучше понять человеческий разум, и особенно для того, чтобы изучить механизмы и процессы, которые активируют и управляют человеческой деятельностью и обучением."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Частный"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Независимая"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Искусственный интеллект"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -384,55 +491,55 @@ msgid ""
 "conversations."
 msgstr "Разбор и преобразование семантических сетей для использования во FreeHAL - искусственном интеллекте, который использует семантические сети, алгоритмы семантического поиска, базы данных частей речи, и части речевых добавок, не несущих основной смысловой нагрузки, для имитации поведения человека во время разговоров."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Биология и Медицина"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Медицинская физиология"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home выполняет электрофизиологическое кардио-моделирование, изучая электрическую активность сердца."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Молекулярная биология"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World стремится выявить, проанализировать, структурно предсказать и спроектировать молекулы РНК на основе признанного биоинформационного программного обеспечения."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "Университетский Колледж Дублина"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Поиск лекарств против малярии"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "Паразит, вызывающий малярию, продолжает увеличивать сопротивление доступным лекарствам. Поэтому нам крайне необходимо обнаружить новые лекарства, нацеленные на новые белки в паразите. Проект FightNeglectedDiseases at Home нацелен на открытие таких новых мишеней."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Паразит, вызывающий малярию эволюционирует и всё лучше сопротивляется существующим методам лечения. Нам срочно необходимо искать новые лекарства, которые будут нацелены на новые белки из которых состоит паразит. Проект FiND at Home нацелен на то чтобы найти и определить слабые места в новых белковых структурах паразита."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Университет Карлсруэ (Германия)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Предсказание структуры белков"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -441,15 +548,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME использует вычислительный подход для предсказания биологически активной структуры белков, для понимания механизма обработки сигналов, когда белки взаимодействуют друг с другом, для понимания болезней, связанных со сбоями или объединением белков, и для разработки новых лекарств на основе трёхмерной структуры биологически важных белков."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Барселонский Биомедицинский Парк Исследований (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Молекулярное моделирование белков"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -457,31 +564,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net открывает новые вычислительные сценарии посредством первого полно-атомного молекулярного динамического кода (CellMD), специально оптимизированного для запуска на графических процессорах NVIDIA. Новые биомедицинские программные приложения неожиданно сделали возможным достичь новых высот в вычислительной биологии для биомедицинских научных исследований."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Центр биоинформатики и вычислительной биологии университета Мэриленда"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Исследования в науке о жизни"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "Проект Lattice, разработанный и администрируемый в Университете Мэриленд, предоставляет вычислительные мощности для исследователей во всем мире, которые изучают эволюционные отношения, используя данные о ДНК и последовательности белков."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "Швейцарский Тропический Институт"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Эпидемиология"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -492,15 +599,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "Симуляционные модели динамики передачи и влияния малярии на здоровье - важный инструмент для контроля малярии. Они могут быть использованы для определения оптимальной стратегии для поставки противомоскитных сеток, химиотерапии или новых вакцин, которые в настоящее время разрабатываются и испытываются. Такое моделирование чрезвычайно требовательно к вычислительным ресурсам, которые необходимы для моделирования больших групп населения с разнообразным набором параметров, связанных с [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Университет Вашингтона"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Биология"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -510,19 +617,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "Определение трёхмерных форм белков в исследовании, которое может в конечном счете привести к обнаружению лекарств для некоторых серьёзных человеческих болезней. Запустив Rosetta at home, Вы поможете ускорить и расширить наше исследование способами, которыми мы не могли бы воспользоваться без вашей помощи. Вы также поможете нам при проектировании новых белков для борьбы с болезнями типа ВИЧ, малярии, рака и Альцгеймера."
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Наука о Земле"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Оксфордский Университет"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "Изучение климата"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -534,25 +641,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "Исследование приближений, которые должны быть сделаны в новейших моделях климата. Запуская модель тысячи раз, мы надеемся выяснить, как модель реагирует на небольшие изменения этих приближений - достаточно небольшие для того, чтобы не сделать приближения менее реалистичными. Это позволит нам улучшить наше понимание того, насколько чувствительны наши модели к небольшим изменениям, а также к таким вещам, как изменения в углекислом газе и круговороте серы. Это позволит нам исследова [...]
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Физика"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Машиностроение"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "В настоящее время мы рассчитываем оптимальное исполнение структуры под названием 'ферма из 52 стержней'"
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Астрономия"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -562,11 +660,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS — это астрономический проект, изучающий 16 различных свойств галактик, включая яркость, массу, количество пыли и как быстро формируются звёзды. Мы используем ваши вычислительные мощности для проведения расчётов пиксель за пикселем на многочастотных (ультрафиолетовый, оптический и инфракрасный спектры) изображениях галактик, чтобы создать Атлас, который поможет астрономам лучше понять далёкую Вселенную."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Астрофизика"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -574,57 +672,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "Целью проекта является получение форм и направлений вращения для значительной части популяции астероидов. В качестве входных данных мы используем любую доступную  фотометрию астероидов. Результатами являются объёмные модели астероидов с направлением оси и периода вращения."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Аэрокосмическая наука и техника"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Университет штата Иллинойс в Urbana-Champаign"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation представляет собой платформу для аэрокосмического моделирования, включая оптимизацию траекторий пусковых установок, спутников и зондов, моделирование экзосферы вблизи поверхности Луны и анализ динамических систем исследовательских аппаратов-планетоходов"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Цель Cosmology at Home состоит в том, чтобы найти модель, которая лучше всего описывает нашу Вселенную, и найти диапазон моделей, которые соглашаются с доступными данными астрономической физики элементарных частиц."
 
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Выполнение аэрокосмического моделирования"
-
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home направлен на создание первой базы данных смоделированного звёздного содержания Вселенной, от ранних звёзд до самых экзотических двойных чёрных дыр."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Исследования в области физики и астрономии"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Ренсселеровский политехнический институт"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Цель Milkyway at Home состоит в том, чтобы создать очень точную трёхмерную модель галактики Млечный путь используя данные, собранные Слоановским цифровым обзором неба."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Изучение структуры галактики Млечный путь"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Лейденский Университет, Нидерланды"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Химия"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -634,15 +727,15 @@ msgid ""
 "simulations through the grid."
 msgstr "Вычисления науки поверхностей используют Classical Dynamics. Leiden Classical позволяет добровольцам, студентам и другим ученым отправлять результаты своих вычислений в сеть. Каждый пользователь имеет свою собственную личную очередь заданий Classical Dynamics. Таким образом, студенты используют сеть, чтобы смоделировать жидкий аргон, или проверить обоснованность закона идеального газа, фактически производя моделирование посредством сети."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Помощь студентам в атомном моделировании"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Университет Висконсина - Милуоки, Институт Макса Планка"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -651,19 +744,19 @@ msgid ""
 "international organizations."
 msgstr "Поиск вращающихся нейтронных звезд (также называющихся пульсарами) используя данные детекторов гравитационных волн LIGO и GEO, а также радиообсерватории Аресибо. Einstein at Home - проект Международного Года Физики 2005, поддержанный Американским Физическим Обществом (APS) и множеством международных организаций."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "Помощь в обнаружении пульсаров и гравитационных волн"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Европейская Организация Ядерных Исследований)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Физика"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -672,22 +765,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "Большой Адронный Коллайдер (LHC) - ускоритель частиц в CERN, Европейской Организации Ядерных Исследований, самой большой в мире лаборатории физики элементарных частиц. Это самый мощный инструмент, когда-либо построенный, для исследования поведения элементарных частиц. LHC at home выполняет моделирование для улучшения проекта LHC и его датчиков."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "Улучшение дизайна Большого Адронного Коллайдера"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "Этот проект использует разработанную ЦЕРН технологию виртуализации для симуляции процессов, происходящих на Большом Адронном Коллайдере, на компьютерах волонтеров. Требует наличия установленного VirtualBox на компьютере."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Симуляция столкновений частиц высоких энергий"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -695,19 +788,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home использует распределенные вычисления для симуляции эксперимента ATLAS - эксперимента в области физики элементарных частиц, проходящего в ЦЕРН на Большом Адронном Коллайдере. ATLAS занимается поиском новых элементарных частиц и процессов с помощью столкновений встречных пучков протонов на сверхвысоких энергиях."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "Симуляция столкновений частиц высоких энергий для CERN"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Университет Калифорнии, Беркли"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Астрофизика, астробиология"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -716,106 +809,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Search for Extraterrestrial Intelligence, Поиск ВнеЗемного Разума) - это научное направление, цель которого - обнаружить разумную жизнь вне Земли. На первом этапе, известном как radio SETI (радио SETI), используются радио телескопы для слежения за узкополосными радиосигналами космоса. Естественные источники таких сигналов не известны, поэтому их обнаружение может дать подтверждение о существовании внеземной технологии."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "Поиск свидетельств внеземной жизни"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Различные приложения"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "Молекулярная биология, наука о компьютерах"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "Citizen Science Grid посвящён поддержке широкого спектра научно-исследовательских и образовательных проектов с использованием добровольных вычислений и науки для граждан."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "Поддержка науки из Университета Северной Дакоты"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Китайская Академия Наук"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Физика, биохимия, и другие"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "Цель CAS at home состоит в том, чтобы рекомендовать и помочь ученым в Китае принять технологии добровольных вычислений и добровольных размышлений в их исследованиях."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at Home размещается в вычислительном центре  института физики высоких энергий (ИФВЭ), Китайской академии наук, для китайских ученых с проектами изучения структуры белков, нанотехнологии, рака геномики и физики высоких энергий."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Помощь китайским исследователям"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Математика, физика, эволюция"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home - адаптер между BOINC и несколькими существующими добровольными распределёнными проектами: ECM, Muon, Evolution at home, и distributed.net"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "Исследования в математике, физике и эволюции"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "Лаборатория Параллельных и Распределенных Систем MTA-SZTAKI (Венгрия)"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Европейские исследовательские проекты"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "Бета-проект EDGeS at Home объединяет вычисления добровольцев в европейскую сервисную сеть, позволяя сервисной сети посылать задания для обработки добровольцами этого проекта. Научные проекты, поддерживаемые данным проектом, включают в себя математику, физику, биологию и т.д."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Помощь европейским исследователям"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "Испанские университеты и исследовательские центры"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Различные испанские исследовательские проекты"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Исследования в физике, материаловедении, и биомедицине"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "Помощь испанским исследователям"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "Корпоративное Гражданство IBM"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Медицинские, экологические и другие гуманитарные исследования"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -823,20 +897,20 @@ msgid ""
 "clean water and many more."
 msgstr "Для дальнейших критических некоммерческих исследований некоторых из наиболее актуальных проблем человечества, создав крупнейшую в мире добровольную вычислительную сеть.  Исследования включают в себя ВИЧ-СПИД, рак, тропические и забытые болезни, солнечную энергию, чистую воду и многое другое."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "Биомедицинские и экологические исследования"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Математика, информатика, и игры"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Математика"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -846,64 +920,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home ищет поля с особыми свойствами. Основная сфера применения этого исследования - в области алгебраической теории чисел. Теоретики могут добывать данные для интересных паттернов, чтобы помочь им формулировать гипотезы о числовых полях. В конечном счёте это исследование приведёт к более глубокому пониманию фундаментальных свойств чисел - основных строительных блоков любых разделов математики."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "Исследования в алгебраической теории чисел"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Наука о компьютерах"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "Решение трудных и практически важных задач (обращения дискретных функций, дискретной оптимизации, биоинформатики и т.д.), которые могут быть эффективно сведены к задаче о выполнимости булевых формул."
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Изучение вычислительной сложности"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Криптография и комбинаторика"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "Запуск приложений проекта distributed.net"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Криптография"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Попытка расшифровать 3 оригинальных сообщения Энигмы. Сигналы были перехвачены в Североатлантическом океане в 1942 году и считалось, что их невозможно взломать."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "Расшифровка сообщений подводных лодок Второй мировой войны"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Исследование Гипотезы Коллатца, неразрешенной гипотезы в математике"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "Изучение Гипотезы Коллатца"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "Калифорнийский государственный университет Фуллертон"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Разложение на множители больших целых чисел"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -913,56 +987,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home - это исследовательский проект, который использует подключенные к Интернету компьютеры, чтобы рассчитать шаг решетки просеивания при факторизации больших целых чисел в Number Field Sieve (NFS). Школьником Вы получили ваш первый опыт в разложении целых чисел на простые, такие как 15 = 3 * 5 или 35 = 5 * 7. NFS at Home является продолжением этого опыта, только с целыми числами, состоящими из сотен цифр."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "Исследование факторизации больших целых чисел"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid поддерживает множество проектов, ищущих различные формы очень больших простых чисел, включая поиск крупнейшего известного простого числа."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Поиск больших простых чисел"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Университет Прикладных Наук РейнМэйн"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Поиск контрпримеров к двум теоремам, связанным с идентификацией главных чисел"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Изучение свойств простых чисел"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "Лаборатория Параллельных и Распределенных Систем MTA-SZTAKI (Венгрия)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "Поиск всех систем обобщенных двоичных чисел (в которых основания являются матрицами, а цифры - векторами) до 11-го измерения."
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Изучение теории чисел"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "Тестирование и сравнение эвристических методов для получения разделения параллельных алгоритмов, работающих в системе САПР для проектирования логики систем управления"
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Комментарий"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Обсудить"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Новости доступны в формате %sленты RSS%s"
diff --git a/locale/sk/BOINC-Client.mo b/locale/sk/BOINC-Client.mo
index 10bb69f..8a7a9fe 100644
Binary files a/locale/sk/BOINC-Client.mo and b/locale/sk/BOINC-Client.mo differ
diff --git a/locale/sk/BOINC-Client.po b/locale/sk/BOINC-Client.po
index 82eccde..1993cf4 100644
--- a/locale/sk/BOINC-Client.po
+++ b/locale/sk/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# aceman444, 2016
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-23 23:14+0000\n"
-"Last-Translator: aceman\n"
-"Language-Team: Slovak (http://www.transifex.com/projects/p/boinc/language/sk/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-11 21:56+0000\n"
+"Last-Translator: aceman444\n"
+"Language-Team: Slovak (http://www.transifex.com/boinc/boinc/language/sk/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sk\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Správa zo Správcu konta"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Správa zo serveru"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Niektoré úlohy vyžadujú viac operačnej pamäti, než povoľujú vaše preferencie.  Prosím skontrolujte preferencie."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Nemožno zapísať stavový súbor; skontrolujte právo zápisu v adresári"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Premenná prostredia HTTP_PROXY musí obsahovať HTTP proxy adresu"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Použili ste chybnú URL pre tento projekt.  Príležitostne odstráňte tento projekt a potom pridajte %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Tento projekt používa starú adresu URL. Keď to bude vhodné, odstráňte projekt a potom pridajte %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Syntaktická chyba v app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Súbor odkazovaný v app_info.xml neexistuje: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "Je dostupná nová verzia BOINC."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Stiahnuť"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "nemôže byť použitá na výpočty CUDA alebo OpenCL s ovládačom CUDA 6.5 alebo novším"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Neočakávaný text v cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Nerozpoznaný príznak v cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "Chýbajúci spúšťací príznak v cc_config.xml"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Chyba v nastaveniach v cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "Chýbajúci príznak ukončenia v cc_config.xml"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Pre opravu môžete"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "zmeniť Nastavenia projektu na stránke projektu"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "odstrániť vylúčenia GPU zo súboru cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "zmeniť nastavenia na stránke správcu konta"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Neplatný alebo chýbajúci kľúč účtu.  Odstráňte a pridajte tento projekt pre nápravu."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Neplatný kód podpisového kľúča.  Odstráňte a pridajte tento projekt pre nápravu."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Projekt mal zmenený jeho bezpečnostný kľúč.  Prosím odstráňte a pridajte tento projekt."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Tento projekt nepodporuje operačný systém"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Tento projekt nepodporuje CPU typ"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Váš klient BOINC je príliš starý.  Prosím nainštalujte aktuálnu verziu."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Tento projekt nepodporuje počítače typu"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Aktualizujte na najnovší ovládač pre spracovanie úloh na vašom GPU"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Aktualizujte na najnovší ovládač, aby ste mohli využiť všetky GPU aplikácie tohto projektu"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "Pre použitie NVIDIA GPU je potrebná novšia verzia BOINC; prosím aktualizujte na aktuálnu verziu"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Pre spustenie úloh tohto projektu je požadovaná grafická karta (GPU) značky %s"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Nie je dostupná žiadna práca pre aplikácie, ktoré ste zvolili."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Typ Vášho počítača nie je podporovaný týmto projektom"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Je vyžadovaná novšia verzia BOINC; prosím nainštalujte aktuálnu verziu"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Úlohy pre %s sú dostupné, avšak Vaše preferencie určujú ich neprijímať"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Neznámy názov aplikácie v súbore app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Váš súbor app_info.xml nemá použiteľnú verziu "
diff --git a/locale/sk/BOINC-Manager.mo b/locale/sk/BOINC-Manager.mo
index d0b7110..0199343 100644
Binary files a/locale/sk/BOINC-Manager.mo and b/locale/sk/BOINC-Manager.mo differ
diff --git a/locale/sk/BOINC-Manager.po b/locale/sk/BOINC-Manager.po
index cada460..638c0d0 100644
--- a/locale/sk/BOINC-Manager.po
+++ b/locale/sk/BOINC-Manager.po
@@ -1,63 +1,57 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# aceman, 2015-2016
-# Michal, 2015
+# aceman444, 2016
+# aceman444, 2015-2016
+# Michal Zajacka, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-03-03 14:24+0000\n"
-"Last-Translator: aceman\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-11 19:29+0000\n"
+"Last-Translator: aceman444\n"
 "Language-Team: Slovak (http://www.transifex.com/boinc/boinc/language/sk/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sk\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Zadajte údaje Vášho konta na %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Prosím vložte informácie o Vašom konte\n(pre vytvorenie konta navštívte web stránku projektu)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Tento projekt momentálne neakceptuje nové kontá.\nMôžete sa pripojiť len ak už máte konto vytvorené."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Už ste niekedy počítali pre tento projekt?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Nie, som nový používateľ"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "Áno, som už existujúci užív&ateľ"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -67,85 +61,85 @@ msgid ""
 "password fields."
 msgstr "Nebolo možné automaticky nastaviť údaje o Vašom konte.\n\nProsím kliknite dolu na 'Získať prihlasovacie údaje',\naby ste sa dozvedeli, čo je potrebné zadať\ndo polí emailová adresa a heslo."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Získať prihlasovacie údaje"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Heslo:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Zvoľte &heslo:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "P&otvrďte heslo:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Používate už %s?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "Po&užívateľské meno:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&Emailová adresa alebo ID v LDAP:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&Emailová adresa:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "minimálna dĺžka %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Zabudli ste heslo?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Ak ešte nie ste zaregistrovaný u tohto Správu konta,\nurobte to ešte pred pokračovaním.  Kliknite dolu\nna zaregistrovanie alebo získanie zabudnutého hesla."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Website manager de cont"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Pripojiť sa k projektu"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Aktualizovať Správcu konta"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Použiť Správcu konta"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Prosím zadajte používateľské meno."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Prosím zadajte emailovú adresu."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Prosím zadajte heslo s aspoň %d znakmi."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Heslo a potvrdenie hesla nesúhlasia. Prosím vložte ich znova."
@@ -198,11 +192,11 @@ msgstr "Prosím čakajte..."
 msgid "An internal server error has occurred.\n"
 msgstr "Vyskytla sa interná chyba servera.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Pripojené"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Odpojené"
 
@@ -217,8 +211,8 @@ msgid "Open another %s window"
 msgstr "Otvoriť ďalšie okno %s"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Vybrať počítač..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Vybrať počítač...\tCtrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -528,7 +522,7 @@ msgstr "&Webstránka %s"
 msgid "Show information about BOINC and %s"
 msgstr "Zobraziť informácie o BOINC a %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -563,12 +557,12 @@ msgstr "&Nástroje"
 msgid "&Help"
 msgstr "&Pomoc"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Ukončiť používanie %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -578,39 +572,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Ak prestanete používať %s,\nvšetky Vaše aktuálne projekty zostanú zachované,\nale budete ich musieť spravovať manuálne.\n\nChcete zastaviť používanie %s?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Vypnúť aktuálneho klienta..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s vypne aktuálne pripojeného klienta\na vyzve Vás na pripojenie na iný počítač."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s bol úspešne pripojený k %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Pripájanie k %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Pripojené k %s (%s)"
@@ -659,7 +653,7 @@ msgid "%s - Communication"
 msgstr "%s - Komunikácia"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Späť"
@@ -734,7 +728,7 @@ msgid ""
 msgstr "%s nie je momentálne pripojený k %s clientovi.\nProsím použite 'Súbor\\Vybrať počítač...' voľbu ponuky pre pripojenie sa k %s klientovi.\nPre pripojenie sa k Vášmu miestnemu počítaču prosím použite 'localhost' ako názov počítača."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Webstránky projektu"
 
@@ -794,7 +788,7 @@ msgstr "%s je úspešne odpojený od Internetu."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s bol neúspešný pri odpájaní od Internetu."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -807,170 +801,170 @@ msgid ""
 "     user group."
 msgstr "Momentálne nemáte oprávnenia na správu klienta.\n\nAby ste mohli používať %s ako aktuálny používateľ:\n  - preinštalujte %s s voľbou \"Áno\" pri otázke o\n     ne-administrátorských kontách\n alebo\n  - kontaktujte Vášho administrátora, aby Vás pridal\n     do skupiny používateľov 'boinc_master'."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "Vlastnícke práva alebo povolenia pre %s nie sú nastavené správne; prosím nainštalujte %s znova.\n(Kód chyby %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " na "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "Pre správne fungovanie BOINC je potrebný reštart.\nProsím reštartujte počítač a pokus opakujte."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "Správca BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "Správca BOINC bol automaticky spustený operačným systémom"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Spustiť BOINC len s ikonou na paneli úloh"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Priečinok obsahujúci program BOINC klient"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "Priečinok pre pracovné dáta BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Názov alebo IP adresa servera"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "Číslo portu pre RPC grafického prostredia"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Heslo"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Spustiť BOINC s týmito voliteľnými argumentmi"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "zablokovať BOINC bezpečnosť používateľov a oprávnení"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "zapnúť režim ladenia vzhľadu, aby mohli byť zobrazené chybové hlásenia správcu vzhľadu"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "viacnásobné spustenie Správcu BOINC je povolené"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Nepoužívané: obchádzka chyby v XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Nespúšťať program na pozadí"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Automatická detekcia)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Neznáme)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Používateľom definované)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Otvoriť web %s..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Otvoriť %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Uspať"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Uspať GPU"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Ukončiť"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Pokračovať"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Pokračovať na GPU"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Počítanie je povolené"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Počítanie je pozastavené - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "Počítanie na GPU je povolené"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "Počítanie na GPU je pozastavené - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Sieťové aktivity povolené"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Sieťové aktivity pozastavené - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Obnovuje sa spojenie s klientom."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Nepripojené ku klientovi."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Oznamy"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Objavili sa nové oznamy - kliknite pre ich zobrazenie."
 
@@ -1085,46 +1079,6 @@ msgstr "Pre viac informácií navštívte"
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Neplatné číslo"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "Nesprávny čas, hodnota musí byť medzi 0:00 a 24:00, formát je HH:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "Začiatočný čas musí byť iný ako koncový"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Číslo musí byť od 0 do 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Číslo musí byť medzi 0 a 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Číslo musí byť medzi 1 a 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "bola nájdená neplatná vstupná hodnota"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Chyba pri validácii"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Ignorovať lokálne nastavenia a použiť nastavenia z webstránky projektu?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Potvrdenie"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1172,7 +1126,7 @@ msgid "Daily schedules"
 msgstr "Denné plány"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1187,7 +1141,7 @@ msgstr "Zavrieť ponuku bez uloženia."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Pomoc"
@@ -1586,75 +1540,123 @@ msgstr "Prenášať súbory len v určitý čas každý deň"
 msgid "Transfer files only between"
 msgstr "Prenos súborov len medzi"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Neplatné číslo"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Nesprávny čas, hodnota musí byť medzi 0:00 a 24:00, formát je HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Začiatočný čas musí byť iný ako koncový"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Číslo musí byť od 0 do 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Číslo musí byť medzi 0 a 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Číslo musí byť medzi 1 a 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "bola nájdená neplatná vstupná hodnota"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Chyba pri validácii"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Ignorovať lokálne nastavenia a použiť nastavenia z webstránky projektu?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Potvrdenie"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "Značky diagnostického záznamu %s"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Tieto značky zapnú rôzne typy diagnostických správ v zázname činnosti."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Viac informácií ..."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Uložiť všetky hodnoty a zavrieť okno"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "Predvolené"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Obnoviť pôvodné nastavenia"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Zavrieť okno bez uloženia"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Použiť"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Uložiť všetky hodnoty"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Záznam udalostí"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projekt"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Čas"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Hlásenie"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Zobraziť len tento projekt"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Kopírov&ať všetky"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Kopírovať všetky správy do kopírovacej schránky."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "&Kopírovať vybrané"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1662,7 +1664,7 @@ msgid ""
 "messages."
 msgstr "Kopírovať vybrané správy do schránky. Môžete vybrať viaceré správy ak pri označovaní správ podržíte stlačený Shift alebo príkazovú klávesu."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1670,19 +1672,19 @@ msgid ""
 "messages."
 msgstr "Kopírovať vybrané správy do schránky. Môžete vybrať viaceré správy ak pri označovaní správ podržíte stlačený Shift alebo Ctrl."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Zavrieť"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Zobraziť všetky &správy"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Zobraziť správy zo všetkých projektov"
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Zobraziť správy len z vybraného projektu"
 
@@ -1705,7 +1707,7 @@ msgid "Add an application to this list"
 msgstr "Pridať aplikáciu do tohto zoznamu"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Odobrať"
 
@@ -2039,14 +2041,14 @@ msgstr "Prostriedky"
 msgid "Estimated computation size"
 msgstr "Odhadovaná doba výpočtu"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "Čas CPU pri poslednom uložení stavu"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "Čas CPU"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Čas CPU od posledného uloženia stavu"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Uplynutý čas"
@@ -2096,8 +2098,8 @@ msgstr "za sekundu"
 msgid "Executable"
 msgstr "Program"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Lokálne: "
 
@@ -2456,203 +2458,191 @@ msgstr "Výskum"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Spoznajte projekty zapojené do World Community Grid"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Spúšťa sa klient"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Pripája sa ku klientovi"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Zisťuje sa stav systému; prosím čakajte..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Chýbajúca aplikácia"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Prosím stiahnite a nainštalujte aplikáciu CoRD z http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "z batérií"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "počítač je používaný"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "požadované používateľom"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "denná doba"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "prebiehajú testy rýchlosti CPU"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "nedostatok voľného miesta na disku - skontrolujte preferencie"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "počítač nie je používaný"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "spúšťa sa"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "beží aplikácia vo výhradnom režime"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "procesor je vyťažený"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "prekročený limit prenosu dát"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "vyžiadané operačným systémom"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "neznámy dôvod"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU sa nenašlo, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Nová"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Stiahnutie zlyhalo"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Sťahovanie"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (pozastavené - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Projekt pozastavený používateľom"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Úloha pozastavená používateľom"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Pozastavené - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU pozastavené - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Čakanie na pamäť"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Čakanie na zdieľanú pamäť"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Počítanie"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (nenáročný na procesor)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Čakanie na výpočet"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Pripravená na spustenie"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Odložené:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Pozastavené"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "Čakanie na prístup k sieti"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Chyba výpočtu"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Odoslanie zlyhalo"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Odosielanie"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Zrušená používateľom"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Zrušená projektom"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Zrušené: výpočet sa nezačal do určeného termínu"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Zrušené: úloha prekročila limit na disku"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Zrušené: prekročený limit na dĺžku výpočtu"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Zrušené: prekročený limit použitej pamäte"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Zrušená"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Potvrdená"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Pripravená na odoslanie"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Chyba: neplatný stav '%d'"
@@ -2716,7 +2706,7 @@ msgstr "Zvoľte projekt kliknutím na jeho názov\nalebo napíšte do kolónky j
 msgid "Categories:"
 msgstr "Kategórie:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projekty:"
 
@@ -2760,24 +2750,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Tento projekt ste si už pripojili. Prosím zvoľte iný projekt."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Komunikácia so serverom projektu."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Komunikácia s projektom\nProsím čakajte..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Na serveri sa nenašli potrebné súbory."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Vyskytla sa interná chyba servera."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Komunikácia s projektom\nProsím čakajte..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2875,1024 +2862,938 @@ msgstr "Autodetekcia"
 msgid "SOCKS proxy"
 msgstr "SOCKS proxy server"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Podmienky použitia"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Vzhľad"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Prosím prečítajte si nasledovné podmienky použitia:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Vyberte si vzhľad používateľského rozhrania."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Súhlasím s podmienkami použitia."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Pokročilé zobrazenie...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Nesúhlasím s podmienkami použitia."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Zobraziť pokročilé grafické rozhranie."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projekt dočasne nedostupný"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Konfigurovať voľby zobrazenia a nastavenia proxy"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Projekt je dočasne nedostupný.\n\nProsím skúste znova neskôr."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Zobraziť diagnostické správy."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Správca konta dočasne nedostupný"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Správca konta je dočasne nedostupný.\n\nProsím skúste znova neskôr."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Predvolené"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Prosím špecifikujte kľúč konta pre pokračovanie."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Pozastaviť"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Neplatný kľúč konta; prosím vložte platný kľúč konta"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Pozastaviť výpočty"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Konflikt pri validácii"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Pokračovať vo výpočtoch"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Prosím špecifikujte emailovú adresu"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Oznamy"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Neplatná emailová adresa; prosím vložiť správnu emailovú adresu"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Otvoriť okno zobrazujúce oznamy z projektov a BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Chýbajúca URL"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Získať pomoc s %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Prosím špecifikujte URL.\nNapríklad:\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Načítavajú sa oznamy, prosím počkajte..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Neplatná URL"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Zatiaľ neexistujú žiadne oznamy."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Prosím špecifikujte správnu URL.\nNapríklad:\nhttp://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Zatvoriť"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' neobsahuje správny názov počítača."
+msgid "%s - Notices"
+msgstr "%s - Oznamy"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' neobsahuje správnu cestu."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Príkazy"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Kopírovať všetky správy"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Kopírovať vybraté správy"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Zobraziť len tento projekt"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Zobraziť správy len z vybraného projektu."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Správy"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Kopírovanie všetkých správ do schránky..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Kopírovanie vybraných správ do schránky..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtrovanie správ..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Zobraziť všetky správy"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Zobraziť správy zo všetkých projektov."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Pre ďalšie nastavenie vyberte Výpočtové preferencie v Pokročilom zobrazení."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Načítavajú sa oznamy, prosím počkajte..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "Miesto na disku (GB)"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Zatiaľ neexistujú žiadne oznamy."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - &Preferencie počítania"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Oznamy"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Odstrániť lokálne nastavenia a použiť nastavenia z webstránky projektu?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Aktualizovať"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Odoslať všetky dokončené úlohy, získať posledný kredit, získať posledné preferencie a ak je možné získať ďalšie úlohy."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Pozastaviť"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Pozastaviť úlohy pre tento projekt."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Žiadne nové úlohy"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Nezískať nové úlohy pre tento projekt."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Resetovať projekt"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Vymazať všetky súbory a úlohy spojené s týmto projektom a získať nové úlohy.  Mali by ste najskôr aktualizovať projekt pre odoslanie všetkých dokončených úloh."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Odpojiť počítač od tohto projektu.  Rozpracované úlohy budú stratené (použite najskôr 'Aktualizovať' pre odoslanie všetkých dokončených úloh)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Vlastnosti"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Zobraziť detaily projektu."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Konto"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Kredit"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Denný priemer"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Stav"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projekty"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Aktualizácia projektu..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Pokračovanie projektu..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Pozastavenie projektu..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Pokračovať na úlohách pre tento projekt."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Pokyn projektu, aby stiahol ďalšie úlohy..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Povoliť nové úlohy"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Pokyn projektu, aby nesťahoval žiadne ďalšie úlohy..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Povoliť sťahovanie nových úloh pre tento projekt."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Resetovanie projektu..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Nesťahovať nové úlohy pre tento projekt."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Ste si istý, že chcete resetovať projekt '%s'?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Resetovať projekt"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Odstraňovanie projektu..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Ste si istý, že chcete odpojiť projekt '%s'?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Odstrániť projekt"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Spúšťanie webového prehliadača..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Pridať projekt"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Pokračovať na úlohách pre tento projekt."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Sychronizovať"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Povoliť nové úlohy"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Práca hotová pre tento projekt"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Povoliť sťahovanie nových úloh pre tento projekt."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Staňte sa dobrovoľníkom v ktoromkoľvek z vyše 30 projektov v mnohých oblastiach vedy"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Nesťahovať nové úlohy pre tento projekt."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Synchronizovať projekty so systémom Správcu konta"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Vyžiadané používateľom"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Zvoľte projekt na zobrazenie s ovládačmi dolu"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "Získať ďalšiu prácu"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Webstránky projektu"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "Nahlásiť dokončené úlohy"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Príkazy projektu"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "Odoslať rýchlu správu o stave"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Zobraziť ponuku webových stránok projektu %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Vyžiadané Správcom konta"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Zobraziť menu príkazov pre projekt %s"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Prvotné nastavenie projektu"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Zobraziť grafiku"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Vyžiadané projektom"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Zobraziť okno s grafikou aplikácie."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Neznámy dôvod"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Pozastaviť túto úlohu."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Pozastavené používateľom"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Zrušiť"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Nebudú získané nové úlohy"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Zrušiť túto úlohu. Nedostanete za ňu žiaden kredit."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Projekt je ukončený - je možné sa od neho odpojiť"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Zobraziť detaily úlohy."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Bude odpojený po skončení úloh"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Pokračovať v práci na tejto úlohe."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Žiadosť plánovača nevyriešená"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Pozastaviť prácu na tejto úlohe."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Spracováva sa požiadavka plánovača"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Ste si istý že chcete zrušiť túto úlohu '%s'?\n(Priebeh: %.1lf%%, Stav: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Rýchla správa o stave čaká na odoslanie"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Zrušiť úlohu"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Komunikácia odložená"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Nemáte žiadne projekty.  Prosím pridajte projekt."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Celkové využitie disku"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Nie je k dispozícii"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Využitie disku BOINC projektmi"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Úlohy:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "žiadne projekty: použitých 0 bajtov"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Zvoliť úlohu"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "používané BOINCom: "
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Od:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "voľné, dostupné pre BOINC: "
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Priebeh tejto úlohy"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "voľné, nedostupné pre BOINC: "
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Príkazy pre úlohu"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "voľné: "
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Zobraziť menu príkazov pre túto úlohu"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "používané inými programami: "
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Aplikácia: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Celkový kredit používateľa"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Priemerný kredit užívateľa"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Aplikácia: Nie je k dispozícii"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Celkový kredit počítača"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Nie je k dispozícii"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Priemerný kredit počítača"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Uplynulo: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Posledná aktualizácia pred: %.0f dňami"
+msgid "Remaining (estimated): %s"
+msgstr "Zostáva (odhad): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Ukázať úhrn užívateľa"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Stav: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Ukázať celkový kredit pre užívateľa"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Obnovovanie aktuálneho stavu."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Ukázať priemer užívateľa"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Sťahovanie práce zo servera."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Ukázať priemerný kredit pre užívateľa"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Spracovanie pozastavené:  Beh na batérie."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Ukázať úhrn počítača"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Spracovanie pozastavené:  Používateľ pracuje."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Ukázať celkový kredit pre počítač"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Spracovanie pozastavené: Používateľ pozastavil spracovanie."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Ukázať priemer počítača"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Spracovanie pozastavené:  Denná doba."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Ukázať priemerný kredit pre počítač"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Spracovanie pozastavené:  Bežia testy rýchlosti."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< &Predošlý projekt"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Počítanie pozastavené: je potrebné miesto na disku."
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Ukázať graf pre predošlý projekt"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Spracovanie pozastavené."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "&Nasledujúci projekt >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Čakanie na spojenie so servermi projektu."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Ukázať graf pre nasledujúci projekt"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Obnovovanie aktuálneho stavu"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Skryť zoznam projektov"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Nie je dostupná žiadna práca na spracovanie"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Využiť celú plochu pre grafy"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Zlyhalo pripojenie ku klientovi"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Režim náhľadu"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Podmienky použitia"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Jeden projekt"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Prosím prečítajte si nasledovné podmienky použitia:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Zobraziť jeden graf s vybraným projektom"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Súhlasím s podmienkami použitia."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Projekty (samostatne)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Nesúhlasím s podmienkami použitia."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Zobraziť všetky projekty, jeden graf pre každý projekt"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projekt dočasne nedostupný"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Všetky projekty (spolu)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Projekt je dočasne nedostupný.\n\nProsím skúste znova neskôr."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Zobraziť jeden graf so všetkými projektmi"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Správca konta dočasne nedostupný"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Všetky projekty (súhrn)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Správca konta je dočasne nedostupný.\n\nProsím skúste znova neskôr."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Zobraziť jeden graf so súhrnom projektov"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Prosím špecifikujte kľúč konta pre pokračovanie."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Štatistiky"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Neplatný kľúč konta; prosím vložte platný kľúč konta"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Aktualizovanie grafov..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Konflikt pri validácii"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Ukázať zoznam projektov"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Prosím špecifikujte emailovú adresu"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Použiť menšiu plochu pre grafy"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Neplatná emailová adresa; prosím vložiť správnu emailovú adresu"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Zopakovať teraz"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Chýbajúca URL"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Zopakovať prenos súboru"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Prosím špecifikujte URL.\nNapríklad:\nhttp://www.example.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Zrušiť prenos"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Neplatná URL"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Zrušiť prenos súboru.  Za túto úlohu nedostanete žiaden kredit."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Prosím špecifikujte správnu URL.\nNapríklad:\nhttp://boincproject.example.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Súbor"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' neobsahuje správny názov počítača."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Priebeh"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' neobsahuje správnu cestu."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Veľkosť"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Príkazy"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Uplynutý čas"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Kopírovať všetky správy"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Rýchlosť"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Kopírovať vybraté správy"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Prenosy"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Zobraziť len tento projekt"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Sieťové aktivity pozastavené - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Zobraziť správy len z vybraného projektu."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nMôžete povoliť v menu Aktivity."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Správy"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Kopírovanie všetkých správ do schránky..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Opakovanie prenosu teraz..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Kopírovanie vybraných správ do schránky..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Prerušenie prenosu..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtrovanie správ..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Ste si istý, že chcete zrušiť prenos tohoto súboru '%s'?\nPOZNÁMKA: Zrušenie prenosu neodsúhlasí úlohu a Vy\nza ňu nedostanete pridelený kredit."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Zobraziť všetky správy"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Zrušiť prenos súboru"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Zobraziť správy zo všetkých projektov."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Odosielanie"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Konto"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Sťahovanie"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Kredit"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "zopakuje sa o "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Denný priemer"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "zlyhalo"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Stav"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "pozastavené"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projekty"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "prebieha"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Vyžiadané používateľom"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "čaká"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "Získať ďalšiu prácu"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (odsunutie projektu: "
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "Nahlásiť dokončené úlohy"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Zobraziť aktívne úlohy"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "Odoslať rýchlu správu o stave"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Zobraziť len aktívne úlohy."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Vyžiadané Správcom konta"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Zobraziť grafiku"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Prvotné nastavenie projektu"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Zobraziť okno s grafikou aplikácie."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Vyžiadané projektom"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Ukázať konzolu VM"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Neznámy dôvod"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Zobraziť okno s konzolou VM."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Pozastavené používateľom"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Pozastaviť prácu na tomto výsledku."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Nebudú získané nové úlohy"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Zrušiť"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projekt je ukončený - je možné sa od neho odpojiť"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Zanechať prácu na tomto výsledku. Nedostanete zaň žiaden kredit."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Bude odpojený po skončení úloh"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Zobraziť detaily úlohy."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Žiadosť plánovača nevyriešená"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Zostáva (odhad)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Spracováva sa požiadavka plánovača"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Odoslať do"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Rýchla správa o stave čaká na odoslanie"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Úlohy"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Komunikácia odložená"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Pokračovanie úlohy..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Celkové využitie disku"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Pozastavenie úlohy..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Využitie disku BOINC projektmi"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Zobrazenie grafiky pre úlohu..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "žiadne projekty: použitých 0 bajtov"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Zobrazenie konzoly VM pre úlohu..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "používané BOINCom: "
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Ste si istý, že chcete zrušiť túto úlohu '%s'?\n(Priebeh: %s, Stav: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "voľné, dostupné pre BOINC: "
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Ste si istý, že chcete zrušiť týchto %d úloh?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "voľné, nedostupné pre BOINC: "
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Zrušiť úlohu"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "voľné: "
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Ruší sa prenos..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "používané inými programami: "
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Zobraziť všetky úlohy"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Celkový kredit používateľa"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Zobraziť všetky úlohy."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Priemerný kredit užívateľa"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Pokračovať v práci na tejto úlohe."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Celkový kredit počítača"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Pozastaviť prácu na tejto úlohe."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Priemerný kredit počítača"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Chcete skutočne zrušiť operáciu?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Posledná aktualizácia pred: %.0f dňami"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Otázka"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Ukázať úhrn užívateľa"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Služby"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Ukázať celkový kredit pre užívateľa"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "Skryť %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Ukázať priemer užívateľa"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Skryť ostatné"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Ukázať priemerný kredit pre užívateľa"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Zobraziť všetky"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Ukázať úhrn počítača"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Ukončiť %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Ukázať celkový kredit pre počítač"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Vzhľad"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Ukázať priemer počítača"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Vyberte si vzhľad používateľského rozhrania."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Ukázať priemerný kredit pre počítač"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Pokročilé zobrazenie...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Predošlý projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Zobraziť pokročilé grafické rozhranie."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Ukázať graf pre predošlý projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Konfigurovať voľby zobrazenia a nastavenia proxy"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Nasledujúci projekt >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Zobraziť diagnostické správy."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Ukázať graf pre nasledujúci projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Skryť zoznam projektov"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Predvolené"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Využiť celú plochu pre grafy"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Pozastaviť výpočty"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Režim náhľadu"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Pokračovať vo výpočtoch"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Jeden projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Otvoriť okno zobrazujúce oznamy z projektov a BOINC"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Zobraziť jeden graf s vybraným projektom"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Získať pomoc s %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Projekty (samostatne)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Zatvoriť"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Zobraziť všetky projekty, jeden graf pre každý projekt"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Oznamy"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Všetky projekty (spolu)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Pre ďalšie nastavenie vyberte Výpočtové preferencie v Pokročilom zobrazení."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Zobraziť jeden graf so všetkými projektmi"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "Miesto na disku (GB)"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Všetky projekty (súhrn)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - &Preferencie počítania"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Zobraziť jeden graf so súhrnom projektov"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Odstrániť lokálne nastavenia a použiť nastavenia z webstránky projektu?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Štatistiky"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Pridať projekt"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Ukázať zoznam projektov"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Sychronizovať"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Použiť menšiu plochu pre grafy"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Práca hotová pre tento projekt"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Zopakovať teraz"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Staňte sa dobrovoľníkom v ktoromkoľvek z vyše 30 projektov v mnohých oblastiach vedy"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Zopakovať prenos súboru"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Synchronizovať projekty so systémom Správcu konta"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Zrušiť prenos"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Zvoľte projekt na zobrazenie s ovládačmi dolu"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Zrušiť prenos súboru.  Za túto úlohu nedostanete žiaden kredit."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Webstránky projektu"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Súbor"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Príkazy projektu"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Priebeh"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Zobraziť ponuku webových stránok projektu %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Veľkosť"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Zobraziť menu príkazov pre projekt %s"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Uplynutý čas"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Pozastaviť túto úlohu."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Rýchlosť"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Zrušiť túto úlohu. Nedostanete za ňu žiaden kredit."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Prenosy"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Ste si istý že chcete zrušiť túto úlohu '%s'?\n(Priebeh: %.1lf%%, Stav: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Sieťové aktivity pozastavené - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Nemáte žiadne projekty.  Prosím pridajte projekt."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nMôžete povoliť v menu Aktivity."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Nie je k dispozícii"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Úlohy:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Ste si istý, že chcete zrušiť prenos tohoto súboru '%s'?\nPOZNÁMKA: Zrušenie prenosu neodsúhlasí úlohu a Vy\nza ňu nedostanete pridelený kredit."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Zvoliť úlohu"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Zrušiť prenos súboru"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "Od:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Odosielanie"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Priebeh tejto úlohy"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Sťahovanie"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Príkazy pre úlohu"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "zopakuje sa o "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Zobraziť menu príkazov pre túto úlohu"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "zlyhalo"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Aplikácia: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "pozastavené"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "prebieha"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Aplikácia: Nie je k dispozícii"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "čaká"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Nie je k dispozícii"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (odsunutie projektu: "
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Uplynulo: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Zobraziť aktívne úlohy"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Zostáva (odhad): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Zobraziť len aktívne úlohy."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Stav: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Ukázať konzolu VM"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Obnovovanie aktuálneho stavu."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Zobraziť okno s konzolou VM."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Sťahovanie práce zo servera."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Pozastaviť prácu na tomto výsledku."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Spracovanie pozastavené:  Beh na batérie."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Zanechať prácu na tomto výsledku. Nedostanete zaň žiaden kredit."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Spracovanie pozastavené:  Používateľ pracuje."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Zostáva (odhad)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Spracovanie pozastavené: Používateľ pozastavil spracovanie."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Odoslať do"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Spracovanie pozastavené:  Denná doba."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Úlohy"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Spracovanie pozastavené:  Bežia testy rýchlosti."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Ste si istý, že chcete zrušiť túto úlohu '%s'?\n(Priebeh: %s, Stav: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Spracovanie pozastavené."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Ste si istý, že chcete zrušiť týchto %d úloh?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "Čakanie na spojenie so servermi projektu."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Zobraziť všetky úlohy"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Obnovovanie aktuálneho stavu"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Zobraziť všetky úlohy."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Nie je dostupná žiadna práca na spracovanie"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Chcete skutočne zrušiť operáciu?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Zlyhalo pripojenie ku klientovi"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Otázka"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3906,11 +3807,24 @@ msgstr "< &Späť"
 msgid "&Finish"
 msgstr "&Dokončiť"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "Tento deň v týždni pracovať len počas týchto hodín."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Služby"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Skryť %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Skryť ostatné"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Zobraziť všetky"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "Tento deň v týždni prenášať súbory len počas týchto hodín."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Ukončiť %s"
diff --git a/locale/sk/BOINC-Project-Generic.po b/locale/sk/BOINC-Project-Generic.po
deleted file mode 100644
index 39bf723..0000000
--- a/locale/sk/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# aceman, 2015
-# Michal, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2015-11-30 23:30+0000\n"
-"Last-Translator: aceman\n"
-"Language-Team: Slovak (http://www.transifex.com/boinc/boinc/language/sk/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: sk\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Slovenčina"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Slovak"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Kód pozvánky"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Na vytvorenie účtu je potrebný kód z pozvánky."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "Názov"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Slúži ako identifikácia na našej webovej stránke. Môžete použiť vaše meno alebo prezývku."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "E-mailová adresa"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Adresa musí byť vo formáte \"meno at doména\"."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Heslo"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "Musí obsahovať minimálne %1 znakov"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Potvrdiť heslo"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Krajina"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Pokiaľ chcete reprezentovať nejakú krajinu, prosím, vyberte ju"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "PSČ"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "Nepovinné"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Vytvoriť účet"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "E-mailová adresa:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "Zabudli ste e-mailovú adresu?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Heslo:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "Zabudli ste heslo?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Zostať prihlásený"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Prihlásiť sa"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Tučný text: [b]text[/b] (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Kurzíva: [i]text[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Podčiarknutý text: [u]text[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Prečiarknutý text: [s]text[/s] (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Citovať text: [quote]text[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Zobraziť kód: [code]kód[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Zoznam: [list]text[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Číslovaný zoznam: [list=]text[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Vložiť obrázok: [img]http://image_url[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Vložiť odkaz: [url]http://url[/url] aj [url=http://url]URL text[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Farba fontu"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Farba fontu: [color=red]text[/color]  Tip: Môžete tiež použiť color=#FF0000"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Predvolený"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Tmavočervená"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Červená"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Oranžová"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Hnedá"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Žltá"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Zelená"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Olivovo zelená"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Azúrová"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Modrá"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Tmavomodrá"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Indigovo modrá"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Fialová"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Veľkosť fontu"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Veľkosť fontu: [size=x-small]malý text[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Malý"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normálny"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Veľký"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Zavrieť všetky otvorené bbCode tagy"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Zavrieť tagy"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Od najstarších"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Od najnovších"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "Zobraziť najlepšie hodnotené správy ako prvé"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Od najnovších"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "Najsledovanejšie ako prvé"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "Zobraziť s najväčším počtom správ ako prvé"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Dobrovoľný moderátor"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Administrátor projektu"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Vývojár projektu"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Tester projektu"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Dobrovoľný vývojár"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Dobrovoľný tester"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Vedec projektu"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Helpdesk expert"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Hladať slová v správach z fóra"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Prehľadať fóra"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Pokročilé vyhľadávanie"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Súkromné správy"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Otázky a Odpovede"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Nástenky"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "nástenka %1"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Predchádzajúci"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Nasledujúci"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Autor"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Správa"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Odoslať správu"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "Poslať %1 súkromnú správu"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Pridali ste sa: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Príspevky: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Kredit: %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "RAC: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Túto správu ste zatiaľ nečítali"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Neprečítané"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Správa %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "skryté"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Uverejnené: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - ako odpoveď na "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Upraviť"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Upraviť správu"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Posledná zmena: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Táto správa sa nezobrazila, pretože odosielateľ je vo vašom zozname ignorovaných. Kliknite %1sem%2 na zobrazenie správy."
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Nahlásiť správu ako urážlivú"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Nahlásiť ako urážlivý"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Hodnotenie: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "hodnotenie:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Kliknite ak sa vám táto správa páči"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "Hodnotiť +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Kliknite ak sa vám táto správa nepáči"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "Hodnotiť -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Odpovedať"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Odpovedať na túto správu"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Citovať"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Poslať odpoveď citovaním tejto správy"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Skryté moderátorom"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "Uverejnené %1 od %2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Nemôžete odosielať alebo hodnotiť správy do %1"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n<ul>\n<li> Správy musia byť vhodné aj pre detského čitateľa, nesmú obsahovať obscénny, nenávistný alebo erotický obsah.\n<li> Žiadne reklamy.\n<li> Žiadne odkazy na stránky s erotickým obsahom, propagujúcim hazard alebo nenávisť.\n<li> Žiadne správy určené na obťažovanie iných ľudí alebo ovládnutie témy.\n<li> Žiadne správy s urážlivým obsahom voči jednotlivcom alebo skupinám ľudí.\n<li> Žiadne urážlivé komentáre namierené proti náboženstvu, národnosti, rase, pohlaviu alebo sex [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Pravidlá:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Viac informácií"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Odkryť"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Odkryť túto správu"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Skryť"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Skryť túto správu"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Presunúť"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Presunúť správu do inej témy"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Zablokovať autora"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Hlasovať za zablokovanie autora"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Hlasovať za neblokovanie autora"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Začať hlasovanie na zablokovanie autora"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Zmazať"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Vymazať túto správu"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Len členovia tímu môžu posielať správy na tímovú nástenku."
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Za účelom vytvorenia nového vlákna v %1 musíte mať určité množstvo bodov. Slúži to na ochránenie systému voči zneužitiu."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Momentálne nemôžete vytvoriť viac vlákien. Skúste to prosím neskôr. Toto oneskorenie bolo vyvolané za účelom ochrany systému voči zneužitiu."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Táto téma je uzamknutá. Len moderátori a administrátori fóra sem môžu posielať správy."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Nedá sa posielať do skrytej témy."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Vlákno"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Príspevkov"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Zobrazenia"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Posledný príspevok"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "Nové správy v téme %1"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Nové správy v sledovanej téme"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "V téme \"%1\" sú nové správy"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Označiť všetky vlákna ako prečítané"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Označiť všetky vlákna na všetkých nástenkách ako prečítané."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Žiaden počítač"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Nedostupné"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Domov"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "Práca"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "Škola"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Aktualizovať"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Informácie o počítači"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP adresa"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(rovnaké posledných %1 krát)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Vonkajšia IP adresa"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "Zobraziť IP adresu"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Názov domény"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Názov produktu"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Miestny štandardný čas"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 hodín"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Vlastník"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anonymný"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Vytvorený"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Celkový kredit"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Priemerný kredit"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Kredit naprieč projektami"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "Typ procesora"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "Počet procesorov"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Koprocesory"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "Operačný systém"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Verzia BOINC"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Pamäť"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Vyrovnávacia pamäť"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Odkladací priestor"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Celkový úložný priestor"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Voľný diskový priestor"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Zmeraná rýchlosť s plávajúcou desatinnou čiarkou"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 milión operácií/s"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Zmeraná celočíselná rýchlosť"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Priemerná rýchlosť odosielania"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/s"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Neznámy"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Priemerná rýchlosť sťahovania"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Priemerná návratová doba "
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 dní"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Detaily aplikácie"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Zobraziť"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "Úlohy"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Koľkokrát BOINC klient skontaktoval server"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Posledné skontaktovanie so serverom"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "Podiel času kedy BOINC beží"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "Pokým je BOINC spustený, % dĺžka času Internetového spojenia"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "Pokým je BOINC spustený, % dĺžka času výpočtov"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "Pokým je BOINC spustený, % dĺžka času výpočtov pomocou GPU"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Priemerná efektivita procesora"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Korekčný faktor pre dobu výpočtu"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Umiestnenie"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Zmazať tento počítač"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Spojiť duplicitné záznamy tohto počítača"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Spojiť"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Posledný čas kontaktu"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informácie o počítači"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Úroveň"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Priemerný kredit"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Súčasný priemerný kredit"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Procesor"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operačný systém"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 procesorov)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Detaily"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Medziprojektové štatistiky:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Počítač %1 prekračuje životnoť:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "Počítač %1 nemá kompatibilný operačný systém:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Počítač %1 nemá kompatibilný procesor:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "rovnaký počítač"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Nie je možné zlúčiť počítač %1 do počítača %2 - nie sú kompatibilné."
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Spájanie počítača %1 s počítačom %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Nepodarilo sa aktualizovať kredit nového počítača"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Nepodarilo sa aktualizovať výsledky"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Nepodarilo sa odstrániť starý počítač"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Starý počítač %1 bol odstránený"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Zobraziť:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Všetky počítače"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Len počítače aktívne posledných 30 dní"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "ID počítača"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>verzia"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Spojiť počítače podľa názvu"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Predvolené prehliadačom"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Komentár"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Novinky sú dostupné ako %sRSS feed%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Inbox"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Napísať"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Poslať súkromnú správu"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Náhľad"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "nenašla sa správa"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Komu"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Užívateľské ID alebo unikátne užívateľské mená oddelené čiarkami"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Predmet"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Poslať správu"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "vám odoslal(a) súkromú správu; predmet:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Súkromá správa%1 od %2, predmet:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "Nepodarilo sa vytvoriť správu"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Nie je možné posielať súkromné správy tak často. Prosím, počkajte chvíľu než znovu odošlete viac správ."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "neprečítané"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Na mailové notifikácie %1upravte preferencie komunity%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Súkromná správa"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Limity používania"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "Použiť najviac"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Ponechať časť procesorov voľnú pre iné aplikácie. Napríklad 75% znamená 6 jadier na 8 jadrovom procesore."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% z procesorov"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Pozastaviť/obnoviť výpočty každých pár sekúnd na zníženie teploty a spotreby energie. Príklad: 75% znamená, že budú prebiehať výpočty 3 sekundy a 1 sekundu sa bude čakať a potom opakovať."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% času CPU"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Kedy pozastaviť"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Pozastaviť keď je počítač napájaný z batérie"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Tu nastavíte, či sa majú výpočty pozastaviť ak je zariadenie napájané z batérie."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Pozastaviť keď je počítač používaný"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Tu zaškrtnite na pozastavenie výpočtov a prenosov súborov keď používate počítač."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Pozastaviť výpočty pomocou GPU keď je počítač používaný"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Tu zaškrtnite na pozastavenie výpočtov pomocou GPU ked používate počítač."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "\"Používa sa\" znamená keď bola použitá myš alebo klávesnica posledných"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Týmto sa určí kedy sa počítač \"používa\"."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "minút(y)"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Pozastaviť keď sa myš alebo klávesnica nepoužili posledných"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Toto dovoľuje niektorým počítačom prejsť do nízkoenergetického módu, keď sa nepoužívajú."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "Pozastaviť, ak je procesor využívaný mimo BOINC nad"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Pozastaviť výpočty, ak váš počítač používajú iné programy."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Počítať len medzi"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Vykonávať výpočty v určitý čas každý deň"
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Ostatné"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "Uložiť najmenej"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "Uložiť aspoň toľko úloh, aby bol počítač zamestnaný aspoň takto dlho."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "dní práce"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Uložiť až do"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Ukladať dodatočné úlohy nad minimálnou úrovňou. Určuje aké úsilie je nutné pri kontaktovaní projektu."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Prepínať medzi úlohami každých"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Pokial beží viacero projektov, BOINC môže medzi nimi prepínať s nasledujúcou frekvenciou:"
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "Ukladať stav úloh každých"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Tu sa nastavuje, ako často úlohy ukladajú svoj stav na disk, aby mohli byť neskôr reštartované."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "sekúnd"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Nepoužívať viac ako"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "Nastaví koľko miesta na disku využije BOINC."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "Ponechať aspoň"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "Nastaví použitie disku aby ostalo aspoň toľko voľného miesta na disku, kde sú uložené dáta BOINC."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB voľných"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "Nastaví percentuálne využitie miesta na disku aplikáciou BOINC."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% celku"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Keď sa počítač používa, využiť najviac"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Nastavenie pamäte, ktorú BOINC využíva ked používate počítač."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Keď sa počítač nepoužíva, použiť maximálne"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Nastavenie pamäte, ktorú BOINC využíva ked nepoužívate počítač."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Ponechať ne-GPU aplikácie v pamäti pri ich pozastavení"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "Ak je zaškrtnuté, pozastavené úlohy ostanú v medzipamäti a môžu byť obnovené bez strát. Ak nie je zaškrtnuté, pozastavené úlohy nebudú uložené v medzipamäti a môžu byť obnovené z ich posledného času uloženia."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Stránkovací súbor: použiť maximálne"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "Nastaviť využitie ukladacieho priestoru (stránkovacieho súboru) pre BOINC."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "Limit rýchlosti sťahovania"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Nastaviť rýchlosť sťahovania súborov"
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/s"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Nastaviť rýchlost odosielania na"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Nastaviť rýchlosť odosielania súborov"
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Nastaviť použitie"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Príklad: BOINC prenesie maximálne 2000 MB dát za 30 dní."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB každých"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "dňa (dní)"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Prenos súborov len medzi"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Prenášať súbory len v určitý čas každý deň"
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Preskočiť overovanie pri súboroch obrázkov"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "Zaškrtnite len ak váš poskytovateľ pripojenia modifikuje súbory. Preskočenie overovaní znižuje bezpečnosť aplikácie BOINC."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "Potvrďte pred pripojením sa k internetu"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Použiteľné len pokiaľ vlastníte ISDN alebo VPN pripojenie."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Odpojiť po dokončení komunikácie"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Výpočty"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disk"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Sieť"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Tieto preferencie sú platné pre všetky BOINC projekty, ktorých sa účastníte."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Nepodarilo sa aktualizovať nastavenia.%2 Červeno zvýraznené hodnoty sú buď mimo požadovaný rozsah, alebo nie sú číselné hodnoty."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "počítanie"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "Separátne preferencie pre %1"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Upraviť preferencie"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Odobrať"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "Pridať zvláštne preferencie pre %1"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Tieto nastavenia platia na všetky počítače, ktoré používa tento účet okrem"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "počítače, kde ste nastavili preferencie lokálne pomocou správcu BOINC"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Zariadenia s Android"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Prepnúť vzhľad)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Kombinované nastavenia"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Primárne (východzie) nastavenia"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Posledná zmena preferencií:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Pridať preferencie"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Aktualizovať preferencie"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "áno"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "nie"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Východzie umiestnenie počítača"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Nové počítače použijú toto umiestnenie pre preferencie vo výpočtoch a projektoch."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Podiel výkonu"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Určí akú časť zo zdrojov nastavenú pre tento projekt bude využívať. Napríklad, zúčastnite sa dvoch BOINC projektov s pomerom zdrojov 100 a 200, prvý projekt dostane 1/3 vašich zdrojov a druhý projekt dostane 2/3."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Urýchliť úlohy pre GPU priradením procesora pre každú?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "Použiť procesoru"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "Použiť ATI GPU"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "Použiť NVIDIA GPU"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Použiť Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Spustiť testovacie aplikácie?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Toto nám pomáha pri vývojí aplikácií, no môže spôsobiť zlyhanie úloh na vašom počítači"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Maily budú poslané z adresy %1; uistite sa, že váš spamový filter prepustí tieto adresy."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Súhlasite aby %1 a váš tím vám posielal maily?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "Môže %1 zobraziť vaše počítače na svojej stránke?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(Prepnúť vzhľad)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Nastavenia špecifické pre projekt"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "nesprávne miesto: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "nesprávna podmnožina: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "a"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Váš profil bude viditeľný pre ostatných až keď bude schválený projektom. Toto môže trvať niekoľko dní."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Váš profil bol vyhodnotený ako nepriateľný; ostatní ho neuvidia. Prosím, upravte ho."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Chyba databázy"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Na zabránenie spamu, profily s priemerným kreditom nižším ako %1 sa zobrazujú len prihláseným užívateľom. Za spôsobené nepríjemnosti sa ospravedlňujeme."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Užívateľ je blokovaný"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Užívateľ so zadaným ID neexistuje."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Upravte si profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Váš názor na tento profil"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Odporučiť tento profil na Užívateľa dňa"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "%1Páči sa mi%2 tento profil"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Upozorniť administrátorov na urážlivý profil:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "%1Nepáči sa mi%2 tento profil"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonymná platforma"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "GPU NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Nie je v databázi"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "čaká"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Všetky"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "Prebieha"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Čaká sa na overenie"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Overenie nepresvedčivé"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Platné"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Neplatné"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Chyba"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Neaktívne"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Neposlané"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Dokončené, čaká sa na potvrdenie"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Dokončené a potvrdené"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Dokončené, označené ako chybné"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Dokončené, nedá sa overiť"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Dokončené, overenie nedokončené"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Dokončené, príliš neskoro na overenie"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Dokončené"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Nepodarilo sa odoslať"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Zrušené serverom"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Zrušené - výpočet sa nezačal do určeného termínu"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Chyba pri sťahovaní"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Chyba pri počítaní"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Chyba pri odosielaní"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Zrušené užívateľom"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Odosielanie zlyhalo"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Čas vypršal - bez odpovede"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Nepotrebné"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Chyba overenia"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Zrušené"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Po termíne"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Úspešné"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Chyba výpočtu"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Reduntantý výsledok"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Bez odpovede"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Nové"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Sťahuje sa"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Spracúva sa"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Chyba výpočtu"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Odosielanie"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Hotovo"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Počiatočné"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Nepotrebné"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Chyba pracovnej jednotky - kontrola preskočená"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Overené, no zatiaľ bez konsenzu"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Úloha bola reportovaná príliš neskoro na overenie"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Nepodarilo sa odoslať výsledok"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Príliš veľa chýb (možný bug)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Príliš veľa výsledkov (môže byť nedeterministický)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Príliš veľa výsledkov"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Pracovná jednotka zrušená"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Chýba kanonický výsledok"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Neznáma chyba: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "Názov úlohy"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "kliknite na zobrazenie  podrobností"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "Zobraziť ID"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "Zobraziť názvy"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "Úloha"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "Pracovná jednotka"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Počítač"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Poslané"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Čas odoslania <br /> alebo uzávierky"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "vysvetliť"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Stav"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Čas priebehu <br /> (sek)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "Procesorový čas <br /> (sek)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Kredit"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Aplikácia"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "Pracovná jednotka"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Odoslať do"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Prijatá"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Stat serveru"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Výsledok"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "Stav klienta"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Opustiť stav"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Čas priebehu"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "Procesorový čas"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Overenie stavu"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Vrcholná hodnota FLOPS na zariadení"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Verzia aplikácie"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Výstupné súbory"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Výstup stderr"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Stav"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "Názov úlohy:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Kritéria vyhľadávania (použite jedno alebo viac)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Kľúčové slová"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Nájsť tímy s týmito slovami v popise alebo v názve"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Typ tímu"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Zobraziť len aktívne tímy"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Vyhľadávať"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Požadované vami, čas na odpoveď od zakladateľa uplynul."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Dokončiť prenos zakladateľstva"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Vyžiadané vami"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "Časový limit na odpoveď zakladateľa je do %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Žiadne"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Iniciovať žiadosť"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Odložené"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Info o tíme"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Popis"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "Stránka"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Medziprojektové štatistiky"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Typ"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Diskusné fórum"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Vlákna"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Vstúpiť do tímu"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Poznámka: ak je vybrané \"OK\" na mail v nastaveniach projektu, vstupom do tímu dáte možnosť vidieť vašu mailovú adresu."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Neakceptuje nových členov"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Žiadosť o zmenu zakladateľa"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "Odpovedať do %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Zmena zakladateľstva tímu"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Členovia"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Zakladateľ"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Administrátori"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Noví členovia zo včerajška"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Počet členov"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "zobraziť"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Aktívni členovia"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Členovia s kreditom"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Administrátor"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Predošlé %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Ďalšie %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Tím neexistuje"
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Táto operácia vyžaduje zakladateľské práva"
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Táto operácia vyžaduje práva administrátora tímu"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "Pozor: toto je tím na celom BOINC. Ak urobíte zmeny tu, o chvíľu budú prepísané. Ak chcete vykonať zmeny, vykonajte ich na %1Celo-BOINC tíme%2."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Poznáma o súkromí%2: ak vytvoríte tím, vaše projektové preferencie (grafické alebo zdieľanie zdrojov) budú verejne viditeľné."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Názov tímu, text"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "Nepoužívajte HTML tagy"
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Názov tímu, HTML verzia"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "Môžete použiť %1obmedzené HTML tagy%2."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Pokiaľ neovládate HTML, nevypĺňajte."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "URL stránky tímu (ak existuje)"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "bez \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Na tento odkaz sa dostanete zo stránky tímu na tejto stránke."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Popis tímu"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Príjmať nových členov?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Profil užívateľa"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Projekty ktorých sa zúčastňujete"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "Projekty ktorých sa %1 zúčastňuje"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Kliknite na zobrazenie užívateľovej stránky"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Od"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Výpočty a kredity"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Počítače v tomto účte"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Zobraziť"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Medziprojektové ID"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Medziprojektové štatistiky"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Konto"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Tím"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Medziprojekt"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Certifikát"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Štatistiky na vašom mobile"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Informácie o účte"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "Mailová adresa"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "PSČ"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 členom od"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Zmena"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "mailová adresa"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "heslo"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "ďalšie info o účte"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "Užívateľské ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Používané v funkciách komunity"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Kľúče k účtu"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Nastavenia"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "Kedy a ako BOINC používa váš počítač"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Preferencie výpočtov"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Nástenky a súkromné správy"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Preferencie komunity"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Preferencie pre tento projekt"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 preferencie"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "Zobraziť profil %1"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Komunita"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Vytvoriť"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 správy"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Notifikácie"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Opustiť tím"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Spravovať"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(žiadosť o zmenu zakladateľstva čaká)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Člen tímu"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "nájsť tím"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Zakladateľ ale nie člen"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Nájsť priateľov"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Priatelia"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Počítače"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Darca"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Táto osoba je priateľ"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Zrušiť priateľstvo"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "Žiadosť čaká"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Pridať ako priateľa"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "užívateľské meno nesmie začínať ani končiť medzerou"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "užívateľské meno nesmie byť prázdne"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "užívateľské meno nesmie obsahovať HTLM tagy"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "odhlásiť sa"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "prihlásiť sa"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Vytvoriť účet"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Stránka stavu serverov"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Nastala chyba databázy pri spracúvaní vašej žiadosti. Prosím, skúste to znovu neskôr."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Žiadosť sa nepodarilo spracovať"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "hodiny"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "min"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "sekúnd"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Odkaz vypršal. Prosím, vráťte sa naspäť, obnovte stránku a skúste to znovu."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Na formátovanie vášho textu použite BCCode tagy"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Projekt je pozastavený kvôli údržbe"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 je dočasne vypnutý kvôli údržbe. Prosím, skúste znovu neskôr."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Nedá sa pripojit k databáze. Prosím, skúste to neskôr."
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Nedá sa vybrať databáza. Prosím, skúste to neskor."
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "znakov zostáva"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Ostať prihlásený na tomto počítači"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Dokončiť nastavenia konta"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Musíte zadať meno svojho účtu"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "HTML tagy nie sú v mene dovolené"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "Upraviť %1 preferencie"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "Pridať preferencie %1 pre %2"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Aplikácie"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 má nasledujúce aplikácie. Keď sa zúčastníte v %1, úlohy pre jednu alebo viac aplikácií budú priradené vášmu počítaču. Aktuálna verzia sa stiahne na váš počítač; stane sa tak automaticky, vy nemusíte urobiť nič."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Verzia"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Priemerné výpočty"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode tagy"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "Tagy BBCode vám umožnia formátovať text vo vašom profile a v správach na nástenku.\nSú podobné HTML, ale jednoduchšie. Tagy začínaju s [ (kde by ste použili normálne %1 v HTML) a končia s ] (kde by ste normálne použili %2 v\nHTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Príklady"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Hrubé"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Kurzíva"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Podčiarknuté"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Prečiarknuté"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Superscript"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Veľký text"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Červený text"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "odkaz na stránku"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Citát"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "používa sa na citované odseky textu"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "použiť na zobrazenie obrázku"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Sem útržok kódu"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "použiť na zobrazenie časti kódu"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Predformátovaný text"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "používa sa na predformátovaný (obyčajne jednopriestorový) text"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Položka 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Položka 2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Položka 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "použiť na odkaz k Trac tiketu na stránke BOINC"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "použiť na odkaz k Trac Wiki na BOINC stránke"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Pokiaľ tag správne neuzavriete alebo pokiaľ správne nešpecifikujete parameter,\ntag sa zobrazí v texte."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Účet sa nedá vytvoriť"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Kliknite na tlačidlo <b>Back</b> vo vašom prehliadači a skúste to znovu."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Neodpísali ste obrázok reCAPTCHA správne. Prosím, skúste to znovu."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Na vytvorenie účtu je potrebný kód pozvánky."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "Zadali ste nesprávny kód pozvánky"
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Nesprávna mailová adresa. Adresa musí byť vo formáte meno at doména"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Učet s touto mailovou adresou už existuje."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Nové heslá sú rozdielne"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Heslá môžu obsahovať len ASCII znaky."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Nové heslo je príliš krátke. Minimálna dĺžka hesla je %1 znakov."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Nepodarilo sa vytvoriť účet"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "Poznámka: Pokiaľ používate Správcu BOINC, nepoužívajte tento formulár. Namiesto toho spustite BOINC, vyberte Pridať projekt a vložte mailovú adresu a heslo."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Tento účet patrí tímu %1 a bude mať projektové preferencie jeho zakladateľa."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Obrázok"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Obrázok vášho profilu je naľavo."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Na zmenu kliknite na \"Prehliadať\" a vyberte súbor vo formáte JPEG alebo PNG (%1 alebo menej)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Tu zakliknite, ak chcete obrázok odstrániť z vášho profilu."
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Ak chcete pridať do vášhu profilu obrázok, kliknite na tlačidlo\"Prehliadať\" v vyberte súbor vo formáte JPEG alebo PNG. Prosím, vyberte obrázok nie väčší ako %1."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Jazyk"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Vyberte v akom jazyku je váš profil vyplnený:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Vytvoriť profil"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Vytvoriť/upraviť profil"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "Formát nahranej fotky nie je podporovaný."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Váš %1profil%2 vám umožní zdieľať názory a vaše údaje s %3 komunitou."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "ReCaptcha bolo vypísané nesprávne. Prosím, skúste to znovu."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Vaša prvá odpoveď bola označená ako spam protispamovým systémom Aksimet. Prosím, pozmeňte text vašej správy a skúste to znovu."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Vaša druhá odpoveď bola označená ako spam protispamovým systémom Aksimet. Prosím, pozmeňte text vašej správy a skúste to znovu."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Váš profil nebol vyplnený."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Nepodarilo sa aktualizovať profil: chyba databázy"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Nepodarilo sa vytvoriť profil: chyba databázy"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Profil bol uložený"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Blahoželáme! Váš profil bol úspešne nahraný do našej databázy."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Zobraziť váš profil"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Vytvoriť profil"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Na zabránenie spamu je požadovaný priemerný kredit %1 , aby bolo možné vytvoriť alebo upraviť profil. Za spôsobené nepríjemnosti sa ospravedlňujeme."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Nepodarilo sa vymazať účet"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Účet bol vymazaný"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Váš účet bol zmazaný"
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Potvrďte zmazanie účtu"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Vymazanie vášho profilu odstráni všetky vaše osobné informácie z našich serverov,\nvrátanie vášho profilu a správ z nástenky.\nŽiadne úlohy nebudú viac priraďované k počítačom\nna tomto účte."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Toto je nezvratná akcia.\nAk bude váš účet vymazaný, nie je možné ho obnoviť."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Skutočne chcete vymazať váš účet?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Áno"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Zmazať tento účet"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Nie"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Zachovať tento účet"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "nepodarilo sa vymazať váš účet. Skúste to prosím neskôr"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Potvrdenie zmazania"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Váš profil bol vymazaný"
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Potvrdenie vymazania profilu"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Ste si istý?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Vymazané profily sú nenávratne preč a nie je možné ich obnoviť--\nmusíte začať odznova\nak chcete v budúcnosti iný ptofil."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Ak ste si istý, kliknite na \"Áno\"\nna odstránenie vášho profilu z našej databázay."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Vymazať môj profil"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Zachovať môj profil"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Tranzakcia bola dokončená"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Ďakujeme vám za váš dar!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Darovanie bolo dokončené."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Váš dar bude pripočítaný k celkovej sume po potvrdení PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Darovanie ste zrušili."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Projekt nepríjma dary."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 darov"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Tento projekt príjma dary cez\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Na poskytnutie daru, vyplňte sumu, ktorú chcete darovať, do poľa nižšie.\nPayPal príjma viacero mien\n(Kanadské Doláre, Euro, Anglické Libry, Americké Doláre, Yeny, Austrálske Doláre, Novozélandské Doláre, \nŠvajčiarske Franky, Hongkongské Doláre, Singapurské\nDoláre, Švédske koruny, Poľské Zlote, Nórske koruny,\nMaďarské forinty, České koruny).\nMôžete využiť priložený prevodník na zistenie\nsumy v rôznych menách\n(prosím, berte na vedomie, že prevody sú len orientačné, kurz a a [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Sumu akú chcete darovať"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Približná hodnota v "
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anonymný dar"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Tu zaškrtnite, ak nechcete aby bolo vaše meno a číslo účtu zverejnené v\nzozname darcov.<br> Ak nezaškrtnete, vaše meno bude zaznamenané ako užívateľ ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Prosím, prihláste sa ak chcete priradiť dar k vášmu užívateľskému ID."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Pokračovať"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Príspevky sú príjmané z"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Stiahnuť prídavky BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Môžete stiahnuť aplikácie v rôznych kategóriách."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Tieto aplikácie nie sú overené %1 a ich použitie je na vlastné riziko."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Neposkytujeme inštrukcie ako nainštalovať tieto aplikácie.\nNo, autor mohol poskytnúť návod ako nainštalovať alebo odinštalovať tieto aplikácie.\nAk je tá informácia nedostatočná, prosím, kontaktujte autora."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Návod ako nainštalovať a používať BOINC nájdete %1tu%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Tento zoznam sa centrálne spravuje na %1stránke BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Zmeniť mailovú adresu konta"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Nová mailová adresa %1 je nesprávna."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Nová mailová adresa je rovnaká ako pôvodná. Neprebehla žiadna zmena."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Konto s touto mailovou adresou už existuje"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Nesprávne heslo"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Mailová adresa vášho účtu je odteraz %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Prosím, %1potvrďte túto mailovú adresu%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Momentálne nemôžeme aktualizovať vašu mailovú adresu kvôli problémom s databázou. Prosím, skúste to neskor."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Zmeniť mailovú adresu"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Zmeniť mailovú adresu vášho účtu."
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nová mailová adresa"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Adresa musí byť v správnom formáte, \"meno at doména\""
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Žiadne heslo?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Potvrďte reset"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Týmto zrušíte všetky zmeny, ktoré ste vykonali v preferenciách komunity. Ak si to neželáte, kliknite na tlačidlo späť na vašom prehliadači."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Reset preferencií"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Chyba: Vybraný nesprávny formát súboru, podporovaný formát je len PNG alebo JPEG."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Váš podpis je príliš dlhý, prosím použite najviac 250 znakov."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Používateľ neexistuje:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Akým spôsobom si želáte byť informovaný o nových správach, žiadostiach o priateľstvo, správach v sledovaných témach a iných udalostiach?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Na stránke môjho profilu (bez mailu)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Okamžite, mailom"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "Raz denne mailom"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Identita na nástenka"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Obrázok"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Obrázok, ktorý vás reprezentuje na nástenkách."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format JPG alebo PNG, maximum 4 KB, 100x100 pixelov"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Nepoužívať obrázok"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Použiť globálne uznávaného avatara od %1"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Použiť tohoto nahraného avatara:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Náhľad na avatara:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Takto bude váš avatar vyzerať"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Podpis na správy na nástenku"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Pozrite si %1rôzne bezplatné služby%2\n<br> poskytovanie dynamických \"obrázkových podpisov\"\n<br> zobrazovanie aktuálnych údajov o kreditoch, projektoch atď."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "Vždy pripojiť podpis"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "Náhľad na podpis"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "Takto bude vyzerať váš podpis na fórach"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Zobrazenie správy"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Čo zobraziť"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Skryť obrázky avatarov"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "Skryť podpisy"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Zobraziť obrázky ako odkazy"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Otvoriť odkazy v novom okne/sekcii"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Zvýrazniť špeciálnych užívateľov"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Zobraziť až toľko správ na stránku"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Ako zoradiť"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Vlákna:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Príspevky:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Preskočiť hneď k novým správam v téme automaticky."
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Nepresúvať lepkavé správy navrch"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Filtrovanie správ"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Filtrovaní užívatelia"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ignorovať príspevky na nástenke a súkromné správy od týchto užívateľov."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "ID užívateľa (napríklad 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Pridať užívateľa do filtra"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Kliknite sem na aktualizáciu preferencií"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Resetovať"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Alebo kliknite sem na reset preferencií na pôvodné nastavenia"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Nepodarilo sa aktualizovať vaše heslo kvôli problémom s databázou. Prosím, skúste to neskôr."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Zmeniť heslo"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Vaše heslo bolo zmenené"
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Nové heslo"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Zopakovať nové heslo"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML tagy nie sú v mene povolené"
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Musíte uviesť meno účtu."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Nepodarilo sa aktualizovať údaje."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Upraviť údaje o účte"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Meno %1 skutočné meno alebo prezývka%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 vašej stránky; nepovinné%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "PSČ %1 Nepovinné%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Aktualizovať údaje"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Stav servervu"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "<b>Serverový stav</b> úlohy ukazuje, či bola úloha poslaná na počítač a ak áno, či ju počítač dokončil. Možné hodnoty sú:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Úloha nie je pripravená na odoslanie (napríklad, pretože vstupné súbory nie sú dostupné)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Úloha je pripravená na odoslanie, no ešte sa tak nestalo."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Prebieha"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Úloha bola odoslaná, čaká sa na dokončenie."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "Úloha bola poslaná na počítač a buď vypršala alebo počítač ju odoslal ako dokončenú."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Výsledky"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "<b>Výsledok</b> úlohy je určený keď server jej stav určí ako <b>ukončené</b>. Možné hodnoty sú:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "Úloha bola poslaná na počítač, ten ale prácu ešte nedokončil a neodoslal výsledok."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Počítač dokončil a úspešne odoslal úlohu."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Server nebol schopný poslať úlohy na počítač (pravdepodobne sú jej požiadavky privysoké)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Chyba klienta"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Úloha bola odoslaná počítaču, no nastala chyba."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "Úloha bola odoslaná na počítač, no v rámci časového limitu nebola doručená odpoveď."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "Úloha nebola poslaná na počítač, pretože dostatok iných úloh bolo dokončené na tejto jednotke."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "Úloha bola odoslaná ale nemohla byť overená. Pravdepodobne preto, že súbory s výsledkom boli stratené na serveri."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Stav klienta"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Výsledok <b>stavu klienta</b> ukazuje fázu spracovania, kedy vznikla chyba."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Počítač ešte nedokončil úlohu."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Počítač úspešne dokončil úlohu."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Počítaču sa nepodarilo stiahnuť aplikačné alebo vstupné súbory."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Počas výpočtu nastala chyba."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Počitaču sa nepodarilo odoslať výsledné súbory."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Kedy zaznamenané a uzávierka"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "Pole <b>Čas odoslania alebo uzávierka</b> úlohy závisí, či bola úloha už odoslaná"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Už bolo odoslané"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Dátum/čas záznamu"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Ešte nezaznamenané, uzávierka v budúcnosti"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Uzávierka, zeleným"
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Neodoslané, uzávierka v minulosti"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Uzávierka, červeným"
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Neznáme pole"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Náhľad mailu"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Váš mail bude vyzerať nasledovne:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Poslať mail"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Použite tlačidlo Naspäť na vašom prehliadači na návrat k formulárom správ"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Posielanie mailov"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "mail bol úspešne odoslaný užívateľovi %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "nepodarilo sa odoslanie mailu %1: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Ďakujeme za informovanie vašich priateľov o %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Zabudli ste uviesť mená a/alebo mailové adresy vašich prijateľov. Prosim, %1vráťte sa do formulára%2 a uveďte ich."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Tento projekt nevytvoril žiadne mailové správy. Prosím oznámte to jeho administrátorom"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Povedzte priateľom o %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Pomôžte nám a povedzte o %1 vašim priateľom, rodine a kolegom "
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Vyplnte tento formulár s menami a mailovými adresami ľudí, o ktorých si myslíte, že by mali záujem o %1. Pošleme im mail vo vašom mene a vy, ak si prajete, môžete pridať aj vlastnú správu."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Vaše meno:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Vaša mailová adresa:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Meno priateľa:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Mailová adresa priateľa:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Správa (nepovinné)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Odoslať"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "Nie ste oprávnený blokovať užívateľov"
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Hlasovanie ohľadom zablokovania"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Užívateľ so zadaným ID nebol nájdený."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "Užívateľ je už zablokovaný"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Skutočne chcete zablokovať užívateľa %1?<br/>Toto zabráni %1 posielať správy na určitú dobu. Malo by sa to používať, len ak sa %1 nevie dlhodobo zmestiť do kože."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Vyberte kategóriu dôvodu a nepovinne môžete napísať dlhší dôvod, prečo by mal byť užívateľ zablokovaný."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Kategória"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Obscénne"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Nenávistný mail"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Žiadosť užívateľa"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Dôvod"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Ak nie je prázdne, bude poslané"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Hlasovať"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Musíte špecifikovať úkon"
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Už nemôžete upravovať túto správu.<br/> Správy môžu byť upravované maximálne %1 minút od ich vytvorenia."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Nie ste autorizovaný upravovať túto správu"
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Fórum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Upraviť Vašu správu"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Titulok"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "Pridať môj podpis k tejto správe"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Pre vás skryté"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "Tímové diskusné fórum pre %1"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Nové vlákno"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Pridať novú tému do tohoto fóra"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Táto nástenka je dostupná ako %1RSS feed%2"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Táto téma je skrytá"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Táto téma je lepkavá, uzamknutá a vy ste ju ešte neprečítali"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "lepkavé/zamknuté/neprečítané"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Táto téma je lepkavá a vy ste ju ešte neprečítali"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "lepkavé/neprečítané"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Túto tému ste ešte neprečítali a je zamknutá"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "neprečítané/zamknuté"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Toto vlákno ste zatiaľ nečítali"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Táto téma je lepkavá a zamknutá"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "lepkavé/zamknuté"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Táto téma je lepkavá"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "lepkavá"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Táto téma je uzamknutá"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "zamknuté"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Čítate túto tému"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "prečítané"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Otázky a odpovede"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Hovorte naživo s dobrovoľníkmi cez Skype v jednom z mnohých jazykov. Navštívte %1BOINC Online pomoc%2."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Predmet"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Otázky"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "Diskusia medzi členmi %1"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Diskusné fóra"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Pokiaľ máte nejaké otázky alebo problémy, prosím, obráťte sa na sekciu %1Otázky a Odpovede%2 na nástenke."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Sledované témy"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Moderovať príspevok"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Skryť správu"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Reklamný spam"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Dvojitá správa"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Presunúť príspevok"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "ID cieľovej témy:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Zablokovať užívateľa"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Trvanie zákazu"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 hodiny"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 deň"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "Týžden"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 týždne"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "mesiac"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Navždy"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "OK"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Nepovinné vysvetlenie %1 Toto je pridané do mailu užívateľovi.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "Nemáte moderátorské oprávnenia na túto správu."
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Nie je možné presunúť do inej kategórie"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Nie je možné presunúť do inej kategórie"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Nemáte oprávnenie blokovať užívateľov"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Blokovanie"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "Užívateľ %1 bol zablokovaný."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Úkon zlyhal; možný problem s databázou"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "neautorizovaný"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "Moderovať tému \"%1\""
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Vyberte kategóriu dôvodu, alebo napíšte dlhší popis, prečo chcete skryť alebo uzamknúť túto tému a kliknite na OK."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Aktuálne fórum"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Cieľové fórum"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Nový titulok"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Len administrátori projektu tu môžu vytvárať témy. Vy, však, môžete prispieť do existujúcich tém."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Vaša správa bola označená ako spam protispamovým systémom Aksimet. Prosím, pozmeňte text vašej správy a skúste to znovu."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Vytvoriť novú tému"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Vytvoriť novú tému"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Nezabudnite pridať predmet"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Zobraziť položku ako upozornenie v BOINC správcovi"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Robte to len s položkami, ktoré by mohli zaujímať všetkých dobrovoľníkov."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Hodnotenie offline"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Táto funkcia je v tomto projekte vypnutá"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Potrebujete viac celkového alebo priemerného kreditu aby ste mohli hodnotiť správu."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Túto správu ste už ohodnotili"
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Návrat do témy"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Názor zaznamenaný"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Váš názor bol zaznamenaný. Ďakujeme."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Hlas bol prijatý"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Váš hlas bol zaznamenaný. Ďakujeme."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Problém s odoslaním hlasu"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Vaša správa bola vyhodnotená protispamovým systémom Aksimet ako spam. Prosím, pozmeňte text správy a skúste to znovu."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Poslať do témy"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Správa:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "odpovedať na správu %1ID správy%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Odpovedať"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "Pridať môj podpis k odpovedi"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Potrebujete viac celkového alebo priemerného kreditu aby ste mohli reportovať správu."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Report bol zaregistrovaný."
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Váš report bol zaznamenaný. Ďakujeme vám."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Moderátor skontroluje váš report a rozhodne čo s ním. Môže to chvílu trvať, preto vás prosíme o trpezlivosť"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Nahlásiť príspevok"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Než nahlásite túto správu, skúste radšej využiť +/- hodnotenie. Pokiaľ dostatok užívateľov ohodnotí správu negatívne, bude skrtyá.<br /> Hodnotenie môžete nájsť v spodnej časti správy."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Nahlásiť príspevok"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Prečo považujete túto správu urážlivou? %1Prosím uveďte dostatok dôvodov, aby osoba, ktorá\nneprečítala celú konverzáciu mohla okamžite identifikovať problém.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Report nebol zaregistrovaný"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Váš report nemohol byť zaznamenaný. Prosím, chvíľu počkajte a skúste to znovu."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Pokiaľ toto nie je dočasná chyba, obráťte sa prosím na vývojarov projektu."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS feed"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Táto nástenka je dostupná ako RSS feed"
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Nastavenia:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Zahrnúť len správy od užívateľa s ID %1 (pôvodne: od všetkých)"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Zahrnúť len správy za posledných %1 dní (pôvodne: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Témy len: %1 (Zahrnúť len prvú správu v každej téme)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Prehľadávať fórum"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Prehľadať fóra"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Hľadať kľúčové slová:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Budú zobrazené správy, ktoré obsahujú všetky z uvedených slov"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Napríklad: \"mrzne šetrič obrazovky\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Hľadať ID autora:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Budú zobrazené správy len od tohoto autora"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Napríklad: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Možnosti vyhľadávania"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Limity vyhľadávania"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "Hľadať najviac toľkoto dní dozadu"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 mesiacov"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 rok"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "neobmedzene"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Zobraziť správy len z tohoto fóra"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Zoradiť podľa"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Začať vyhľádavanie"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Výsledky vyhľadávania fóra"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Názvy tém zhodné s vašími požiadavkami:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Správy zhodné s vašimi požiadavkami:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Je nám ľúto, ale nenašlo sa nič zhodné s vašimi požiadavkami. Môžete rozšíriť vaše požiadavky použitím menej špecifických slov alebo menšieho počtu slov."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Môžete skúsiť %1vyhľadať to isté aj na Google.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "Nové vyhľadávanie"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Sledovanie nastavené úspešne"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Odteraz sledujete %1. Budete dostávať s každou novou správou."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Sledovanie sa nepodarilo nastaviť"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Momentálne nie je nastavenie sledovania %1 možné. Prosím, skúste to neskôr."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Zrušenie sledovania prebehlo úspešne"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Prestali ste sledovať %1. Viac nebudete dostávať upozornenia o nových správach."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Zrušenie sledovania zlyhalo."
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Momentálne nie je možné zrušiť sledovanie %1. Prosím, skúste to znovu neskôr."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Neznámy úkon sledovania"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Toto fórum je pre vás ukryté."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Táto téma bola skrytá moderátormi"
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "Moja otázka bola zodpovedaná"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Kliknite sem ak vaša otázka bola vhodne zodpovedaná"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Aj ja sa chcem na toto opýtať"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Pridať novú správu do tejto témy"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Prestať sledovať"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Túto tému sledujete. Kliknite sem na zrušenie sledovania."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Sledovať"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Kliknite aby ste boli informovaní mailom v prípade nových správ v tejto téme"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Odkryť túto tému"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Skryť túto tému"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Zrušiť označenie lepkavé"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Zrušiť označenie lepkavé"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Označiť ako lepkavé"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Nastaviť, aby sa téma zobrazovala vždy na vrchu fóra"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Odomknúť"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Povoliť nové správy v tejto téme"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Zamknúť"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Zakázať nové správy v tejto téme"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Presunúť tému do iného fóra"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Upraviť nadpis"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Upraviť názov témy"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Zmazať tému"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Exportovať ako správu"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Neexportovať"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Neexportovať túto novinku ako Poznámku"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Zoradiť"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Stav témy bol aktualizovaný"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "Stav bol aktualizovaný"
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "Príspevky od %1"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Už ste priatelia"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "Požiadali ste %1 o priateľstvo v %2."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Táto žiadosť stále čaká na potvrdenie."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 nepríjma žiadosti k priateľstvu od vás"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Nie je možné sa priateliť sám so sebou"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Pridať priateľa"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Požiadali ste užívateľa menom %1 o priateľstvo. %1 dostane oznámenie a žiadosť o prijatie alebo zamietnutie priateľstva."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "Správa (nepovinné)"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Žiadosť o priateľstvo bola odoslaná"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "Oboznámili sme %1 s vašou žiadosťou."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Prosím, prihláste sa ako %1"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Na zobrazenie žiadosti o priateľstvo sa musíte prihlásiť ako %1"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Žiadosť o priateľstvo"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 vás požiadal o priateľstvo."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 vraví: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Prijať priateľa"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Prijmite, ak %1 je priateľ"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Odmietnuť"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "Odmietnite, ak %1 nie je priateľ"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Priateľstvo potvrdené"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Priateľstvo vás a %1 bolo potvrdené."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Priateľstvo odmietnuté"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "Odmietli ste priateľstvo s %1"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Správa nenájdená"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Priateľstvo bolo potvrdené"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "S %1 ste odteraz priatelia."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Zrušiť priateľstvo?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Skutočne zrušiť priateľstvo s %1?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Ostať priateľmi"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Priateľstvo zrušené"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Vaše priateľstvo s %1 bolo zrušené."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Ak viete vašu mailovú adresu a môžete na ňu príjmať mail:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Uveďte mailovú adresu a kliknite OK. Odošleme vám na ňu inštrukcie ako si resetovať heslo."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Ak si nepamätáte vašu mailovú adresu, alebo nemôžete na ňu prijať mail:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Ak pod týmto účtom u vás beží BOINC, môžete sa naň dostať. Takto:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Choďte do dátoveho adresáru BOINC na vašom počítači (jeho umiestnenie je napísané v záznamu činnosti pri štarte)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Nájdite súbor s vašim účtom pre tento projekt, volá sa <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Otvorte súbor v textovom editore ako napríklad Poznámkový blok. Uvidíte niečo ako"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Vyberte a skopírujte text medzi %1 a %2 (%3 v príklade nižšie)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Skopírujte text do poľa nižšie a kliknite na OK."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Ste prihlásení na váš učet, aktualizujte mailovú adresu vášho účtu."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Prihlásiť sa pomocou autentifikátora"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Zabudli ste údaje o vašom účte?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "Neboli zaznamenané žiadne GPU úlohy"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "Top modely GPU"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "Nasledujúci zoznam obsahuje najproduktívnejšie modely GPU na rôznych platformách. Relatívna rýchlost, meraná priemerným časom uplynutým počas úloh, sú uvedené v zátvorkách."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Vitajte v %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Zobraziť a upraviť údaje o vašom účte pomocou odkazu nižšie."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Pokiaľ ste tak už neurobili, %1stiahnite si klient BOINC%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Váš účet"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonymná platforma, chýbajúca aplikácia"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "anonymná platforma"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Chýba verzia aplikácie"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Chýbajúca aplikácia"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Chýbajúca platforma"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Počet dokončených úloh"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Maximálny počet úloh za deň"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Počet úloh za dnes"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Správne úlohy za sebou"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Priemerná rýchlosť spracovania"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Detaily aplikácie pre počítač %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Nemáme žiadne záznamy o tomto počítači."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Nemôžete vymazať záznam o tomto počítači, pretože v našej databázi je preň stále práca. Musíte počkať pár dni, kým sa práca pre tento počítač neodstráni z projektovej databázy."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Zmazať záznam o počítači"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Záznam bol vymazaný."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Vrátiť sa na zoznam Vašich počítačov"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Spojiť záznamy počítačov"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Spojiť počítače"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "BOINC niekedy chybne pridá rozdielne identity tomu istému počítaču. Dá sa to opraviť spojením starších identít s novšou."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Žiadne počítače nie sú vhodné na spojenie s týmto."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Zobraziť detaily"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Skontrolovat zhodu s počítačom %1 (vytvorený %2, ID počítača %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "názov"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "vytvorený"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID počítača"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "žiaden názov počítača"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Spojiť počítače"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Aktualizácia kreditov počítača"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Kredity počítača boli aktualizované"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Miesto počítača bolo aktualizované"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "žiadne"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Miesto počítača bolo nastavené na %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Táto zmena vojde v účinnosť pri najbližšej komunikácii počítača s projektom."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Návrat na stránku počítača"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Počítače patriace do %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Počítače skryté"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Užívateľ sa rozhodol nezdieľat údaje o svojich počítačoch."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Vaše počítače"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Povolené HTML tagy"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Nasledovné HTML tagy sú povolené v popise tímu:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "hrubé"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "kurzíva"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "hyperlink"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "odsek"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "nový riadok"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "predformátované"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "obrázok; výška nemôže presahovať 450 pixelov. Prosím, neuvádzajte odkazy na obrázky bez povolenia stránky, kde sa obrázok nachádza."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Môžete použiť znak \"&\" na označenie špeciálnych znakov."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Prečítajte si naše pravidlá"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Spúšťať %1 len na oprávnených počítačoch"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Spúšťajte %1 len na počítačoch, ktoré vlastníte, alebo ku ktorým máte oprávnenie majiteľa. Niektoré spoločnosti alebo školy svojimi pravidlami zakazujú využívanie svojich počítačov na podobné projekty."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Ako %1 využije váš počítač"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Keď na vašom počítači beží %1, používa časť procesoru, disku a siete. Môžete nastaviť, akú časť %1 používa a kedy ich používa."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Práca uskutočnená na vašom počítači prispieva k cieľom %1, ako sa píše na ich stránke. Aplikačné programy sa môžu občas zmeniť."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Pravidlá súkromia"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Váš účet na %1 je identifikovaný menom vami zvoleným. Toto meno môže byť zobrazené na stránke %1 spolu s počítačom, ktorý vykonáva výpočty pre %1. Pokiaľ chcete byť anonymný, zvoľte si meno, ktoré vašu identitu neprezradí."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Ak sa zúčastníte %1, údaje o vašom počítači (napríklad typ procesoru, pamäť atď) bude zaznamenaná %1 a bude podľa nej rozhodovať, aký typ práce bude počítaču priradený. Táto informácia bude zobrazená aj na stránke %1. Nebude, však, zobrazené nič, čo by mohlo poukazovať na umiestnenie vášho počítača (IP adresa, doména...)."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Na účasť v %1, je nutné uviesť mailovú adresu. Táto adresa nebude zobrazená na stránkach %1 alebo iných stránkach s nimi spojenými. %1 vám môže posielať pravidelné správy, toto sa, však, dá kedykoľvek vypnúť."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Súkromné správy poslané na stránke %1 vidia len odosielateľ a adresát. %1 neskúma a ani nekontroluje obsah súkromných správ. Ak dostávate nežiadúce správy od iného užívateľa %1, môžete si ho pridať do %2filtra správ%3. Týmto nebudete viac vidiet súkromné alebo verejné správy od daného užívateľa."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Pokiaľ používate fórum na našej stránke, musíte tak konať v súlade s %2pravidlami%3. Správy poslané na %1 fórum sú prístupné všetkým, vrátane nečlenov. Prispievaním do fóra dávate nezvratné povolenie každému na čítanie i kopírovanie vašej správy."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Je bezpečné spúšťať %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Zakaždým, keď sťahujete program cez internet, riskujete, že program môže mať nebezpečné chyby, alebo že server bol hacknuý. %1 podniklo kroky na minimalizáciu týchto rizík. Naše aplikácie boli starostlivo otestované, naše servery sú za firewallom a nastavené na najvyššiu bezpečnosť. Na zaručenie integrity programov, všetky súbory boli digitálne podpísané na počítači bez pripojenia k internetu."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Aplikácie, ktoré %1 spúšťa, môžu sposobiť pri niektorých počítačoch prehriatie. Ak sa tak stane, vypnite %1 alebo použite %2aplikáciu%3 na obmedzenie využitia procesoru."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 vyvinuli v zariadení %2. BOINC bol vyvinutý v Kalifornskej Univerzite"
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Zodpovednosť"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 a %2 nenesú žiadnu zodpovednosť za škody na zariadení alebo stratu dát alebo iné situácie, ktoré môžu vzniknúť zúčastnením sa v %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Iné BOINC projekty"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Iné projekty používajú rovnakú platformu, BOINC, ako aj %1. Môžete sa zúčastniť aj jedného z tých projektov. V takom prípade bude váš počítač prispievať, aj pokiaľ preň %1 nebude mať žiadnu prácu."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Tieto projekty nie sú spojené s %1 a my nemôžeme ručiť za ich bezpečnostné praktiky, alebo za ich výskum. Pridajte sa len na vlastné riziko."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Výber jazyka"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Táto stránka je dostupná vo viacerých jazykoch. Momentálne je vybraný jazyk %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Obyčajne sa jazyk určí nastavením vášho prehliadača, v tomto prípade je to %1. Toto nastavenie môžete zmeniť nasledovne:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Nástroje/Nastavenia/Všeobecné"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Nástroje/Nastavenia Internetu/Jazyky"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Alebo, môžete vybrať jazyk kliknutím na jeden z nasledujúcich odkazov. Toto pošle vášmu prehliadaču súbor cookie, uistite sa, že váš prehliadač akceptuje súbory cookie z našich stránok."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Jazyk (kliknite pre výber)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Použit jazykové nastavenia prehliadača"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Preklady sú robené dobrovoľníkmi. Pokiaľ tu nie je na výber váš rodný jazyk %1môžete nám pomôcť s prekladom%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "alebo %1vytvoriť účet%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Spracovanie %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1 spojené do %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Vrátiť sa na zoznam Vašich počítačov"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Táto operácia spojí počítače na základe ich doménového mena.\n<p>\nSpojí staré počítače do nového podľa ich doménového mena.\nNekompatibilné počítače nebudú spojené.\n<p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Vyskúšajte to"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Vrátiť sa na zoznam počítačov"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nPre maximum diskusií a informačného toku,\nsú naše fóra moderované.\nNástenky sú podriadené nasledovným pravidlám:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nModerátori sú opravnení zmazať správy porušujúce tieto pravidlá.\nAutori nevhodných správ sú upovedomení o zmazaní spravy mailom.\nZa hrubé porušenie môže byť odosielanie správ u autora dočasne zablokované (na zabránenie zneužitia tak môžu učiniť len Administrátori projektu).\nĎalšie porušovania pravidiel (ako je buggovanie, spamovanie atď) môže byť postihnuté podobným \nspôsobom.\n<p>\nAk si myslíte, že správa porušuje nejaké z pravidiel, kliknite na červené X na správe a [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Čakajúci kredit"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID výsledku"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID Pracovnej jednotky"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID počítača"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Získaný kredit"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Čakajúci kredit: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Blokovať správy od tohoto užívateľa"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Zablokovať užívateľa"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Vaša správa bola odoslaná."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nemáte žiadne súkromné správy."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Odosielateľ a dátum"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "Odpovedať na túto správu"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Zmazať túto správu"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Vybrať všetko"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Nevybrať nič"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Zmazať vybrané správy"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Odosielateľ"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Dátum"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Je potrebné vyplniť všetky polia na poslanie súkromnej správy"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Vaša správa bola vyhodnotená ako spam\nprotispamovým systémom Aksimet.\nProsím, pozmeňte text vašej správy a skúste to znovu."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "Nepodarilo sa nájsť užívateľa s ID %1"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "Nepodarilo sa nájsť užívateľa s užívateľským menom %1"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 nie je unikátne užívateľské meno; bude nutné zadať užívateľské ID"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Užívateľ %1 (ID %2) od vás nepríjma súkromné správy."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Užívateľ neexistuje"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "Naozaj chcete zablokovať %1?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Skutočne chcete zablokovať príjem súkromých správ od užívateľa %1?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Prosím berte na vedomie, že zablokovať môžete len určitý počet užívateľov."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Ak užívateľa zablokujete, je možné ho odblokovať na stránke preferencií fóra."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Nie, zrušiť"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "užívateľ neexistuje"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "Užívateľ %1 zablokovaný"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Príjem správ od užívateľa %1 bol zablokovaný."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Na odblokovanie, navštívte %1preferencie nástenky%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Neznáma činnosť"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Vaše preferencie boli aktualizované a vojdú\ndo účinnosti keď bude váš počítač komunikovať s %1\nalebo použijete príkaz %2Aktualizácie%3 zo správcu BOINC."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Vaše preferencie boli resetované na pôvodné a vojdú\ndo účinnosti keď bude váš počítač komunikovať s %1\nalebo použijete príkaz %2Aktualizácie%3 zo správcu BOINC."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 na %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Naspäť na stránku preferencií"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Potvrďte vymazanie preferencií"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Skutočne chcete vymazať vaše separátne %1 preferencie pre %2?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Odobrať preferencie"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "Zrušiť"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profily"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Profily%2 umožnia jednotlivcom zdieľat údaje a názory s %3 komunitou."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Preskmajte rôznorodosť medzi dobrovoľníkmi a prispejte vašou prítomnosťou."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Pokiaľ ste tak už nespravili, môžete si %1vytvoriť vlastný profil%2!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Užívateľ dňa"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Prieskumník užívateľských profilov"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "Zobraziť %1Obrázkovú galériu užívateľa%2."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Prezerať profily %1podľa krajín%2"
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Prehľadávať profily %1náhodne%2, %3náhodne s obrázkami%2, alebo %4náhodne bez obrázkov%2."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Abecedný zoznam profilov:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Vyhľadať text v profile"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Žiadne profily"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Žiadne profily nesúhlasia s vašimi požiadavkami"
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Nevhodný typ hlasu:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Hlas zaznamenaný"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Ďakujeme"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Vaše odporúčanie bolo zaznamenané"
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Váš hlas na zamietnutie tohoto profilu bol zaznamenaný."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Návrat na profil."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "Profily obsahujúce \"%1\""
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Používateľské meno"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Pridanie sa k projektu"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Nedávny kredit"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "Neboli nájdené žiadne profily obsahujúce \"%1\""
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Úloha neexistuje:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Táto funkcia je dočasne vypnutá"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Počítač s ID %1 nebol nájdený"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Žiaden prístup"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Chýba ID užívateľa alebo ID počítača"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Žiadne úlohy na zobrazenie"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Používateľ dňa"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Nebeží"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Beží"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Neaktívne"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Stav projektu"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Stav serveru"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Program"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Počítač"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Verzia schémy databázy:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Stav výpočtov"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Používatelia"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Úlohy zoradené po aplikáciach"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Čas priebehu posledných 100 úloh v hodinách, priemer, min, max"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Užívatelia za posledných 24 hodín"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Počítač %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Štatistiky a rebríčky"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "Štatistiky %1"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "Top prispievatelia"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "Top tímy"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "Top počítače"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "Modely GPU"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "Modely CPU"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Detailnejšie štatistiky %1 a iných BOINC projektov sú dostupné na viacerých stránkach:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Môžete získať vaše aktuálne štatistiky vo forme \"obrázku do podpisu\":"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Takisto, môžete vidieť sumár vašich osobných štatistík zo všetkých BOINC projektov; pozrite sa na vašu %1domovskú stránku%2."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Tímy"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 prispievateľov môže vytvoriť %2tímy%3."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Môžete byť členom len jedného tímu. Opustiť alebo sa pridať do tímu je možné kedykoľvek."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Každý tím má %1zakladateľa%2 ktorý môže:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "prístup k mailovým adresám členov tímov"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "upraviť názov tímu a jeho popis"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "pridať alebo odobrať administrátorov tímu"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "odobrať členov z tímu"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "rozpustiť tím pokiaľ nemá žiadnych členov"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Pre vstup do tímu, navštívte jeho stránku a kliknite na %1Pridať sa do tohot tímu%2."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Nájsť tím"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Všetky tímy"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 tímov"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Vytvoriť nový tím"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Pokiaľ nenájdete tím, ktorý by bol pre vás ten pravý, môžete %1vytvoriť tím%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Odobrať hodnosť administrátora tímu tomuto užívateľovi"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Pridať alebo odobrať administrátorov tímu"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Môžete menovať členov tímu administrátormi a umožniť im:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Upravovať údaje o tíme (názov, URL, popis, krajinu)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Zobraziť kto vstúpil/vystúpil z tímu"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Moderovať tímové fórum (ak existuje). Administátori budu dostávať mailové upozornenia moderovaných udalostí a reportov s červeným X"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Administrátori tímu nemôžu:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Zmeniť zakladateľa tímu"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Odobrať členov"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Pokiaľ administrátor tímu opustí tím, nebude viac jeho administrátorom."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Odporúčame vybrať ako administrátorov tímu len ľudí, ktorých poznáte a ktorým dôverujete."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Tím momentálne nemá administrátorov."
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Aktuálni administrátori tímu"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Stať sa administrátorom tímu v"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Pridať administrátora tímu"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Mailová adresa člena tímu:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Pridať"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "odstránenie administrátora zlyhalo"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "Užívateľ nie je členom tímu"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 už je administrátor %2"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Nepodarilo sa pridať administrátora"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Tím neexistuje"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "tím neexistuje"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "Užívateľ nie je členom %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "Zmena zakladateľa %1"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 je odteraz zakladateľ %2"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "Zmeniť zakladateľa %1"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Člen tímu %1 požiadal o status zakladateľa tímu %2, ale tím opustil, takže žiadosť sa ruší."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Člen tímu %1 žiada o status zakladateľa tímu. Môže to byť preto, pretože ste tím opustili, alebo ste už dlho neboli s tímom v kontakte."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "odmietnuť žiadosť"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Pokiaľ žiadosť nezamietnete do %1, %2 získa možnosť považovať sa za zakladateľa.<br /><br />\nPokiaľ chcete žiadosť prijať, priraďte status zakladateľa užívateľovi %3 pomocou formuláru nižšie."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Žiadna žiadosť na prenos nečaká."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Na priradenie statusu zakladateľa inému členovi tímu, zaškrtnite políčko vedľa jeho mena a kliknite na <strong> Zmeniť na zakladateľa</strong>."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Nový zakladateľ?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Zmeniť zakladateľa"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Nie sú žiadni užívatelia, na ktorých by bolo možné presunúť tím."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Názov tímu nemôže byť prázdny"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "Tím s názvom %1 už existuje. Skúste iný názov"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Nepodarilo sa vytvoriť tím. Skúste to, prosím, neskôr."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Vytvoriť tím"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Ste členom %1. Musíte %2opustiť tento tím%3 predtým ako vytvoríte nový."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Nie ste zakladateľ ani administrátor"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "História tímu %1"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Kedy"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Používateľ"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Úkon"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Kreditov spolu v čase úkonu"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "nesprávna krajina"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "Názov %1 už používa iný tím."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Musíte zadať názov tímu"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Nepodarilo sa aktualizovať tím, prosím skúste to neskôr."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "Upraviť %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Aktualizovať info o tíme"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 Zoznam mailov"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "Zoznam členov %1"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Zobraziť ako text"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Vytvoriť nástenku"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "Môžete vytvoriť nástenku pre %1."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Len členovia tímu budú môcť posielať správy."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Podľa vašich nastavení, čítať budú môcť len členovia."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Vy a administrátori vášho tímu budete mať moderátorské práva."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "Vytvoriť diskusné fórum pre %1"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "Tím už má nástenku"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Tímová nástenka"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "Minimálny čas medzi poslaním správ (v sekundách)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "Minimálny celkový počet kreditov na posielanie správ"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "Minimálny priemerný počet kreditov na posielanie správ"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Odoslať"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Odstrániť nástenku vášho tímu."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Skutočne odstrániť nástenku?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Skutočne chcete odstrániť nástenku vášho tímu? Všetky témy a správy budú vymazané. (Neskôr však môžete vytvoriť novú nástenku.)"
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Áno, odstrániť nástenku."
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Nástenka bola odstránená"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Nástenka vášho tímu bola odstránená. Môžete %1vytvoriť novú%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Tímová nástenka bola aktualizovaná."
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Aktualizácia bola úspešná"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Aktualizácia zlyhala"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "Tím nemá vlastné fórum"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Musíte byť členom tímu, aby ste mohli stránku zobraziť."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "Požiadať status zakladateľa %1"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Aktuálny zakladateľ bol upovedomený o vašej žiadosti mailom a súkromnou správou..<br /><br />\nPokiaľ zakladateľ neodpovie do 60 dní, môžete prevziať zakladateľstvo."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Žiadať status zakladateľa nie je momentálne povolené."
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "Prevzané zakladateľstvo %1"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Blahoželáme, stali ste sa zakladateľom tímu %1.\nNavštívte stránku %2Váš účet%3 a nastavenia Administrátora tímu."
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Odmietnuť žiadosť o zmenu zakladateľa"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "Žiadosť o zmenu zakladateľa od %1 bola zamietnutá."
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Žiadne žiadosti o zmenu zakladateľa."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "nedefinovaná činnosť %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Návrat k stránke tímu."
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Musíte byť členom tímu aby ste mohli otvoriť túto stránku."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "Požiadať o status zakladateľa %1"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "Stali ste sa zakladateľom tímu %1"
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "Požiadali ste o status zakladateľa %1 v %2"
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "Ubehlo 60 dní od odoslania vašej žiadosti a zakladateľ neodpovedal. Môžete prevziať zakladateľstvo kliknutím sem:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Prevziať zakladateľstvo"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Zakladateľ bol oboznámený s vašou žiadosťou. Ak neodpovie do 1%, bude vám umožnené stať sa zakladateľom."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Ak zakladateľ tímu nie je aktívny a chcete sa stať zakladateľom, kliknite na tlačidlo nižšie. Momentálny zakladateľ dostane mail s detailami vašej žiadosti a bude mu umožnené presunúť status zakladateľa na vás alebo bude môcť vašu žiadosť zamietnuť. Ak zakladateľ neodpovie do 60 dní, bude vám umožnené stať sa zakladateľom.<br /><br />\nChcete požiadať o status zakladateľa?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Požiadať status zakladateľa"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Zmena zakladateľa už bola požiadaná %1 na %2."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Od poslednej žiadosti ešte neuplynulo 90 dní, nové žiadosti nie sú povolené."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "Do tímu %1 sa nedá vstúpiť."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Už ste členom"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Už ste členom %1."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Nepodarilo sa vstúpiť do tímu, prosím skúste to neskôr."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Vstúpili ste do %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "Vstúpili ste do %1."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "Vstúpiť do %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Prosím, pozor:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Vstúpením do tímu zobrazíte zakladateľovi vašu mailovú adresu."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Vstup do tímu neovplyvní vaše kredity."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Vstúpiť do tímu"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Výsledky vyhľadávania"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "Hľadať \"%1\""
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Môžete si prezrieť štatistiky a údaje členov týchto tímov."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Viac ako 100 tímov zodpovedá vášmu vyhľadávaniu. Zobrazených je len prvých 100."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Koniec výsledkov. %1 Ak neviete nájsť tím, ktorý by mohol byť pre vás ten pravý, môžete si %2vytvoriť vlastný tím%3."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "Administrátor tímu %1"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Upraviť údaje o tíme"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Zmeniť názov tímu, URL, popis, typ alebo krajinu"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Zoznam členov:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "text"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Zobraziť mená a mailové adresy členov"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Zobraziť históriu zmien:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Zobraziť kedy členovia vstúpili alebo vystúpili z tímu"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Odpovedať na žiadosť o status zakladateľa."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Ak neodpoviete do %1, %2m bude môcť prevziať zakladateľstvo tímu."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Odstrániť neaktívnych alebo nechcených členov z tohoto tímu"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Presunúť status zakladateľa na iného člena tímu"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Pridať/odobrať administrátorov tímu"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Dať vybraným členom tímu administrátorske práva"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Odstrániť tím"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Možné len pokiaľ tím nemá členov"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Vytvoriť alebo spravovať tímovú nástenku"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Aby bol tento projekt vytvorený na všetkých BOINC projektoch (existujúcich a budúcich), môžete ho vytvoriť ako %1celo-BOINC tím%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Odporúčame Tímovím administrátorom, aby sa pridali do skupiny %1boinc-team-founders%2 na Google."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Nie je možné vymazať tím, ktorý má členov"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Tím %1 bol zmazaný"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limit bol prekročený. Je možné zobraziť len prvých 1000 členov."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "Členovia %1"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Nie je možné opustiť tím"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Tím neexistuje, alebo nie ste jeho členom."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "Opustiť %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Pred opustením tímu berte, prosím, na vedomie</strong>\n<ul>\n<li>Ak opustíte tím, môžete sa doň vrátiť, alebo sa môžete pridať do akéhokoľvek iného.\n<li>Opustenie tímu neovplyvní vaše osobné štatistiky ani kredit\n</ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Opustiť tím"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "Odoberám používateľov z %1"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 nie je členom %2"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 bol odstránený"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "Odstrániť členov z %1"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Odobrať"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "Názov (ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Žiadni používatelia sa nedajú odobrať."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Odobrať používateľov"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Názov tímu"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Výsledky vyhľadávania tímov"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Nenašli sa žiadne tímy podľa vašich požiadavok. Skúste to inak."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Alebo, môžete %1 vytvoriť nový tím%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Nasledujúce tímy sú zhodné s jedným alebo viacerými kritériami vášho vyhľadávania.\nAk sa chcete pridať do tímu, navštívte jeho stránku kliknutím na meno a tam kliknite na %1Pridať sa do tímu%2."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Zmeniť vyhľadávanie"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Môžete sa dať dokopy s ľuďmi s podobnými záujmami, alebo s krajanmi, či spolužiakmi alebo kolegami."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Použiť tento formulár na nájdenie najvhodnejších tímov pre vás."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "Momentálne %1nemám záujem%2 sa pridať do tímu."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limit bol prekročený - je nám ľuto, len prvých %1 položiek"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Top počítače"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "Top %1 tímy"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "Neexistujú %1 tímy"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Účastník od"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "Užívateľ dňa nebol zvolený"
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "Užívateľ dňa %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtre"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Meno užívateľa sa začína"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Všetko"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "S profilom?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Buď"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "V tíme_"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Zoradenie"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Skrátenie času na prihlásenie"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Zostupne podľa priemerného kreditu"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Zostupne podľa celkového kreditu"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "hľadané slovo musí mať najmenej 3 znaky"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Výsledky vyhľadávania užívateľov"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Pridanie sa"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Žiaden užívateľ nezodpovedá hľadaným kritérám."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Používateľ nenájdený!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Údaje účtu <br/> za %1 <br/> Čas:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Tím:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "TotCred tímu:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "AvgCred tímu:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Tím: Žiaden"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Overiť BOINC mailovú adresu"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Prosím navštívte nasledujúci odkaz na potvrdenie mailovej adresy vášho %1 konta"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Overovací mail bol odoslaný."
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Mail bol poslaný na %1 . Navštívte odkaz obsiahnutý v správe na potvrdenie vašej mailovej adresy."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Používateľ neexistuje."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Chyba v URL - nebolo možné overiť mailovú adresu"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Aktualizácia databázy zlyhala - prosím, skúste to znovu."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Overiť e-mailovú adresu"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Mailová adresa vášho účtu bola overená."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Tento používateľ nemá profil"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profil: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Údaje konta"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Do vášho účtu sa dostanete buď použitím vašej mailovej adresy a hesla,\nalebo použitím priradeného \"kľúču k učtu\"\nKľúč vášho účtu je:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Tento kľúč sa môže použiť na:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "prihlásenie sa do vášho účtu na stránke"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "na pridanie počítača do vášho účtu bez pomoci BOINC správcu.\nNainštalujte si BOINC, \nvytvorte súbor s názvom %1 v BOINC\nzložke data a nastavte jeho obsah nasledovne:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Slabý kľúč účtu"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "Váš \"slabý\" kľúč účtu môže byť použitý na pridanie počítačov\nk vášmu účtu, ako je uvedené nižšie. Nedá sa však použiť na \nprihlásenie sa do účtu a ani jeho zmenu-\nPokiaľ chcete pridať do vášho účtu nezabezpečené alebo nedôveryhodné počítače, použite váš slabý kľúč.\nVáš slabý kľúč je:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Pokiaľ si zmeníte heslo, vaše slabé kľúče sa zmenia a vaše predošlé slabé kľúče nebudú viac funkčné."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "nedá sa nájsť pracovná jednotka"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Pracovná jednotka %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "aplikácia"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "kanonický výsledok"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "udelený kredit"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Prebiehajúce úlohy"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "potlačiť úlohy čakajúce na dokončenie"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "minimálne quorum"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "prvotná replikácia"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "maximálny počet chybných/spolu/úspešných úloh"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "chyby"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "overenie"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Čaká"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Hlavná stránka"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Autorské práva"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Vytvorené"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Niečo o vás"
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Prezraďte nám niečo o vás. Môžete napísať odkiaľ ste, koľko máte rokov, vaše zamestnanie, záľuby alebo čokoľvek iné."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "Váš názor na %1"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Prezraďte nám, čo si myslíte o %1<ol>\n<li>Prečo spúštate %1?\n<li>Čo si myslíte o projekte samotnom_\n<li>Máte nejaké návrhy?\n</ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Farebná schéma pre grafiku"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maximum % procesoru pre grafiku%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Spustit len vybrané aplikácie"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Získavať úlohy len pre určité aplikácie. Užitočné, ak sa chcete sústrediť len na konkrétne aplikácie, alebo ich vylúčiť."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Pokiaľ nie je dostupná práca spomedzi vybraných aplikácií, príjmať prácu aj z iných aplikácií?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Použiť rýchlejšie aplikácie bez grafiky, ak je to možné?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(všetky aplikácie)"
diff --git a/locale/sk/BOINC-Setup.mo b/locale/sk/BOINC-Setup.mo
index 6983734..1687f17 100644
Binary files a/locale/sk/BOINC-Setup.mo and b/locale/sk/BOINC-Setup.mo differ
diff --git a/locale/sk/BOINC-Setup.po b/locale/sk/BOINC-Setup.po
index 807c0cf..9ecd52a 100644
--- a/locale/sk/BOINC-Setup.po
+++ b/locale/sk/BOINC-Setup.po
@@ -1,97 +1,104 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# aceman, 2015
-# Michal, 2015
+# aceman444, 2016
+# aceman444, 2015
+# Michal Zajacka, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-03-20 22:02+0000\n"
-"Last-Translator: aceman\n"
-"Language-Team: Slovak (http://www.transifex.com/projects/p/boinc/language/sk/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-11 21:58+0000\n"
+"Last-Translator: aceman444\n"
+"Language-Team: Slovak (http://www.transifex.com/boinc/boinc/language/sk/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sk\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Je nám ľúto, táto verzia %s vyžaduje systém verzie 10.5 a vyšší."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Prepáčte, táto verzia %s vyžaduje systém 10.6 alebo vyšší."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Áno"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Nie"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Má BOINC bežať aj keď nie je prihlásený žiadny používateľ?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
 "\n"
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
-msgstr "Užívatelia s administrátorskými oprávneniami môžu automaticky spúšťať a ovládať %s.\n\nChcete povoliť spúšťanie a ovládanie %s aj ostatným užívateľom tohoto Macu?"
+msgstr "Používatelia s administrátorskými oprávneniami môžu automaticky spúšťať a ovládať %s.\n\nChcete povoliť spúšťanie a ovládanie %s aj ostatným používateľom tohoto Macu?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
-msgstr "Chcete nastaviť %s ako šetrič obrazovky pre všetkých užívateľov %s na tomto Macu?"
+msgstr "Chcete nastaviť %s ako šetrič obrazovky pre všetkých používateľov %s na tomto Macu?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Chyba oprávnení po reštarte"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Odstránenie môže trvať niekoľko minút.\nČakajte, prosím."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
 "\n"
 "This will remove the executables but will not touch %s data files."
-msgstr "Skutočne chcete odstrániť %s z vášho počítača?\n\nBudú odstránené len spúštacie súbory, dátové súbory %s ostanú nedotknuté."
+msgstr "Skutočne chcete odstrániť %s z vášho počítača?\n\nBudú odstránené len spúšťacie súbory, dátové súbory %s ostanú nedotknuté."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
-msgstr "Zrušené: S %s nebolo manipulované."
+msgstr "Zrušené: S %s nebol zmenený."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Nastala chyba: Kód %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "meno používateľa"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Chcete z vášho počítača odstrániť aj VirtualBox?\n(VirtualBox bol nainštalovaný spolu s BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -103,17 +110,17 @@ msgid ""
 "\"%s\"."
 msgstr "Odstránenie bolo dokončené.\n\nMôžete odstrániť nasledovné pozostatky s použitím prehliadača:\nadresár \"%s\"\n\npre každého užívateľa, súbor\n\"%s."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Napíšte vaše správcovské heslo na úplné odstránenie %s z vášho počítača.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Zrušiť"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Pokračovať..."
diff --git a/locale/sl/BOINC-Client.po b/locale/sl/BOINC-Client.po
old mode 100755
new mode 100644
diff --git a/locale/sl/BOINC-Manager.po b/locale/sl/BOINC-Manager.po
old mode 100755
new mode 100644
diff --git a/locale/sl/BOINC-Project-Generic.po b/locale/sl/BOINC-Project-Generic.po
deleted file mode 100755
index e7e039d..0000000
--- a/locale/sl/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,7145 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# This file is distributed under the same license as BOINC.
-# FileID  : $Id$
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2014-08-07 14:54+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: sl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
-"n%100==4 ? 2 : 3);\n"
-"X-Generator: Pootle 2.5.0\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-POOTLE-MTIME: 1407423277.0\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Slovenščina"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Slovenian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "Privzeto"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:47
-#, fuzzy
-msgid "Orange"
-msgstr "Spremeni"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr ""
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr ""
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr ""
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr ""
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr ""
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr ""
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr ""
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr ""
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Išči besede v sporočilih foruma"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Išči po forumih"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Napredno iskanje"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Zasebna sporočila"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Vprašanja in odgovori"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Razpravljalnice"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "%1 razpravljalnica"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Prejšnje"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Naslednje"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Avtor"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Sporočilo"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send message"
-msgstr "Pošlji sporočilo"
-
-#: ../inc/forum.inc:580
-#, fuzzy
-msgid "Send %1 a private message"
-msgstr "Pošlji zasebno sporočilo"
-
-#: ../inc/forum.inc:581
-#, fuzzy
-msgid "Joined: %1"
-msgstr "Pridruženi %1"
-
-#: ../inc/forum.inc:590
-#, fuzzy
-msgid "Posts: %1"
-msgstr "Objave"
-
-#: ../inc/forum.inc:596
-#, fuzzy
-msgid "Credit: %1"
-msgstr "Točke"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr ""
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "You haven't read this message yet"
-msgstr "Nimate zasebnih sporočil."
-
-#: ../inc/forum.inc:620
-#, fuzzy
-msgid "Unread"
-msgstr "neprebrano"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-#, fuzzy
-msgid "Message %1"
-msgstr "Sporočilo"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "skrito"
-
-#: ../inc/forum.inc:625
-#, fuzzy
-msgid "Posted: %1"
-msgstr "Objave"
-
-#: ../inc/forum.inc:628
-#, fuzzy
-msgid " - in response to "
-msgstr "Čas je potekel - ni odziva"
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Uredi"
-
-#: ../inc/forum.inc:631
-#, fuzzy
-msgid "Edit this message"
-msgstr "Uredite vaš profil"
-
-#: ../inc/forum.inc:637
-#, fuzzy
-msgid "Last modified: %1"
-msgstr "Nazadnje spremenjene nastavitve:"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr ""
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-#, fuzzy
-msgid "Report as offensive"
-msgstr "Zadnja objava"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr ""
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr ""
-
-# 83%
-#: ../inc/forum.inc:675
-#, fuzzy
-msgid "Click if you like this message"
-msgstr "ni uspelo ustvariti sporočilnice"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr ""
-
-#: ../inc/forum.inc:677
-#, fuzzy
-msgid "Click if you don't like this message"
-msgstr "ni uspelo ustvariti sporočilnice"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr ""
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Odgovor"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr ""
-
-#: ../inc/forum.inc:687
-#, fuzzy
-msgid "Quote"
-msgstr "Zapusti ekipo"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr ""
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr ""
-
-#: ../inc/forum.inc:729
-#, fuzzy
-msgid "Posted %1 by %2"
-msgstr "Objave"
-
-#: ../inc/forum.inc:747
-#, fuzzy
-msgid "You may not post or rate messages until %1"
-msgstr "Nimate zasebnih sporočil."
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr ""
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr ""
-
-#: ../inc/forum.inc:781
-#, fuzzy
-msgid "More info"
-msgstr "Informacije o ekipi"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Naredi vidno"
-
-#: ../inc/forum.inc:1055
-#, fuzzy
-msgid "Unhide this post"
-msgstr "Naredi temo vidno"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Skrij"
-
-#: ../inc/forum.inc:1057
-#, fuzzy
-msgid "Hide this post"
-msgstr "Skrij"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Premakni"
-
-#: ../inc/forum.inc:1062
-#, fuzzy
-msgid "Move post to a different thread"
-msgstr "Premakni to temo v drug forum"
-
-#: ../inc/forum.inc:1067
-#, fuzzy
-msgid "Banish author"
-msgstr "uporabnik ne obstaja"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr ""
-
-#: ../inc/forum.inc:1116
-#, fuzzy
-msgid "Only team members can post to the team message board"
-msgstr "Ustvari ali upravljaj s sporočilnico ekipe"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr ""
-"Da lahko ustvarite novo temo v %1, morate imeti določeno število točk. To "
-"preprečuje in ščiti pred zlorabo sistema."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr ""
-"Trenutno ne morete ustvariti novih tem. Prosim, malo počakajte, preden spet "
-"poskusite. Ta odlog je bil uveljavljen za zaščito pred zlorabo sistema."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr ""
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr ""
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Tema"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Objave"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Pogledi"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Zadnja objava"
-
-#: ../inc/forum.inc:1235
-#, fuzzy
-msgid "New posts in the thread %1"
-msgstr "Objavi k temi"
-
-#: ../inc/forum.inc:1240
-#, fuzzy
-msgid "New posts in subscribed thread"
-msgstr "Naroči se"
-
-#: ../inc/forum.inc:1241
-#, fuzzy
-msgid "There are new posts in the thread '%1'"
-msgstr ""
-"Kliknite tu, da dobite elektronsko pošto, kadar so v tej temi nove objave."
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Označi vse teme kot prebrane"
-
-#: ../inc/forum.inc:1252
-#, fuzzy
-msgid "Mark all threads in all message boards as read."
-msgstr "Označi vse teme na vseh oglasnih deskah kot 'prebrane'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Ni gostitelja"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Ni na voljo"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Doma"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "V službi"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "V šoli"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr ""
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Posodobite"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Informacije o računalniku"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP naslov"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(isti zadnjih %1 krat)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Zunanji IP naslov"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Prikaži IP naslov"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Ime domene"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr ""
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Lokalni čas"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1."
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Lastnik"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Anonimen"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Ustvarjeno"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Skupaj točk"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "Točk v povprečju"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Skupaj točk v projektih"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Tip procesorja"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Število procesorjev"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Koprocesorji"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Operacijski sistem"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Različica BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Pomnilnik"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Predpomnilnik"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Izmenjalni prostor"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Skupni prostor na disku"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Prosto na disku"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Izmerjena hitrost operacij s plavajočo vejico"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 miljonov operacij/s"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Izmerjena hitrost celoštevilskih operacij"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Povprečna hitrost pošiljanja"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 KB/s"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Neznano"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Povprečna hitrost prejemanja"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Povprečna obračalni čas"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 dni"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Podrobnosti aplikacije"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Prikaži"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Opravila"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-#, fuzzy
-msgid "Number of times client has contacted server"
-msgstr "Kolikokrat je BOINC kontaktiral strežnik"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Zadnji čas kontaktiranja strežnika"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "BOINC teče % časa"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "Ko BOINC teče, kolikšen % časa ima gostitelj povezavo na Internet"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "Ko BOINC teče, kolikšen % časa je dovoljeno delo"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Povprečna učinkovitost procesorja"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Korekcijski faktor dolžine opravila"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Lokacija"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Briši ta računalnik"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Združi podvojene zapise tega računalnika"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Združi"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Zadnji kontakt"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Informacije o računalniku"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Uvrstitev"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "Povprečno točk"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Povprečje točk v zadnjem času"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Procesor"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "Grafični procesor"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Operacijski sistem"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 procesorjev)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Podrobnosti"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Medprojektna statistika:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Gostitelj %1 ima prekrivajočo se življensko dobo:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "Gostitelj %1 ima nezdružljiv operacijski sistem:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Gostitelj %1 ima nezdružljiv procesor:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "isti gostitelj"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Ne morem združiti gostitelja %1 z %2 - nezdružljiva sta"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Pridružujem gostitelja %1 k gostitelju %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Posodobitev točk novega računalnika ni uspela"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Posodobitev rezultatov ni uspela"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Upokojitev starega računalnnika ni uspela"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Upokojil stari računalnik %1"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Prikaži:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Vse računalnike"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Samo računalnike, aktivne v zadnjih 30 dneh"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID računalnika"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Ime"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "BOINC<br>različica"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Združi računalnike po imenu"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr ""
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Komentar"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Novice so na voljo kot %sRSS vir%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Nabiralnik"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Napiši"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Pošlji zasebno sporočilo"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Predogled"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-#, fuzzy
-msgid "no such message"
-msgstr "uporabnik ne obstaja"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Za"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "IDji uporabnikov ali unikatna uporabniška imena, ločena z vejicami"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Zadeva"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Pošlji sporočilo"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr ""
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr ""
-
-#: ../inc/pm.inc:135
-#, fuzzy
-msgid "Couldn't create message"
-msgstr "ni uspelo ustvariti sporočilnice"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr ""
-"Ni vam dovoljeno tako pogosto pošiljati sporočil. Prosim, počakajte nekaj "
-"časa, preden pošljete nova."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "neprebrano"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Za obveščanje po e-pošti, %1uredite nastavitve skupnosti%2"
-
-#: ../inc/pm.inc:198
-#, fuzzy
-msgid "Private message"
-msgstr "Zasebna sporočila"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr ""
-"Prekini delo, ko je računalnik na baterijskem napajanju? %1 Pomembno le za "
-"prenosne računalnike %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Prekini delo, ko je računalnik v uporabi?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr ""
-"Prekini delo grafičnega procesorja, ko je računalnik v uporabi? %1 Velja v "
-"različicah od 6.6.21 dalje %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'V uporabi' pomeni aktivnost miške/tipkovnice v zadnjih"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "minutah"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr ""
-"Prekini delo, če ni aktivnosti miši/tipkovnici v zadnjih %1 Potrebno za "
-"vstop v način nizke porabe energije na nekaterih računalnikih %2"
-
-#: ../inc/prefs.inc:114
-#, fuzzy
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr ""
-"Prekiniti delo, če je uporaba procesorja več kot %1 0 pomeni brez "
-"omejitev<br>Velja v različicah od 6.10.30 dalje %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Delati le med urami %1 Ni omejitev, če je enako %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr ""
-"Med prekinitvijo pustiti opravila v pomnilniku? %1 V primeru 'da' bodo "
-"prekinjena opravila porabljala izmenjalni prostor %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Preklopi med opravili vsakih %1 Priporočeno: 60 minut %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "Pri več procesorjih, uporabi največ"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "procesorjev"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr ""
-"Pri več procesorjih, uporabi največ %1 Velja v različicah od 6.1 dalje %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% procesorjev"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr ""
-"Uporabi največ %1 Lahko se uporabi za zmanjšanje segrevanja procesorja %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% časa procesorja"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Disk: uporabi največ"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Disk: pusti vsaj %1 prosto Vrednosti, manjše od %2 so prezrte"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% celotnega"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Opravila shranjujejo kontrolne točke na disk največ vsakih"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "sekund"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Izmenjalni prostor: uporabi največ"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Pomnilnik: ko je računalnik v uporabi, uporabi največ"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Pomnilnik: ko računalnik ni v uporabi, uporabi največ"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr ""
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "dni"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr ""
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr ""
-"Potrditev pred povezavo na Internet? %1 Pomembno samo, če imate modemsko, "
-"ISDN ali VPN povezavo %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr ""
-"Prekiniti povezavo, ko je končano? %1 Pomembno samo, če imate modemsko, ISDN "
-"ali VPN povezavo %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Največja hitrost prejemanja:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Kbajtov/s"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Največja hitrost pošiljanja:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Uporabi mrežo le med urami"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Prenesi največ %1 Velja pri različicah od 6.10.46 dalje %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Mbajtov vsakih"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification "
-"reduces the security of BOINC. %3"
-msgstr ""
-"Preskoči preverjanje slikovne datoteke? %1 Obkljukajte SAMO, če vaš ponudnik "
-"interneta spreminja slikovne datoteke (UMTS to naprimer počne). %2 "
-"Preskočitev preverjanja zmanjša varnost BOINC. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects "
-"with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr ""
-"Delitev virov %1 Določi delež virov vašega računalnika, ki so dodeljeni temu "
-"projektu. Primer: če sodelujete v dveh BOINC projektih z delitvijo virov "
-"100 in 200, bo prvi dobil 1/3 vaših virov in drugi 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr ""
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Uporabi procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Uporabi ATI grafični procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Uporabi NVIDIA grafični procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:344
-#, fuzzy
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Uporabi ATI grafični procesor %1 Velja za različice od 6.10 dalje %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr ""
-"Poganjati testne aplikacije? %1 To nam pomaga razvijati aplikacije, lahko pa "
-"povzroči, da posli ne uspejo na vašem računalniku %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this address."
-msgstr ""
-"Elektronska pošta bo poslana iz %1; poskrbite, da vaš filter nezažljene "
-"pošte sprejema ta naslov."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr ""
-"Ali dovolite %1 in vaši ekipi (če jo imate), da vam pošljejo elektronsko "
-"pošto?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Ali naj %1 prikaže vaše računalnike na svoji spletni strani?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Uporaba diska in pomnilnika"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Uporaba procesorja"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Uporaba mreže"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Te nastavitve veljajo za vse BOINC projekte, v katerih sodelujete."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of "
-"range or not numeric."
-msgstr ""
-"%1 Posodobitev nastavitev ni uspela.%2 Spodnje vrednosti, označene z rdečo, "
-"so izven obsega ali niso številčne."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "slabo mesto: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "slaba podmnožica: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "da"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "ne"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "ni omejitev"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Dodaj"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Odstrani"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Računanje"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Ločene nastavitve za %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Uredi nastavitve"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Dodaj ločene nastavitve za %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(preklopi pogled)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Skupne nastavitve"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Posebne nastavitve projekta"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Primarne (privzete) nastavitve"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Uredi nastavitve %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr ""
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr ""
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr ""
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Nazadnje spremenjene nastavitve:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Dodaj nastavitve"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Posodobi nastavitve"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Privzeta lokacija računalnika"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "in"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr ""
-"Vaš profil bo viden drugim ljudem takoj, ko ga bo projekt odobril. To lahko "
-"traja do nekaj dni."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr ""
-"Vaš profil je bil označen kot nesprejemljiv. Ni viden drugim ljudem. Prosim, "
-"spremenite ga."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Napaka v podatkovni bazi"
-
-#: ../inc/profile.inc:193
-#, fuzzy
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr ""
-"Da bi preprečili smetenje, so profili uporabnikov s povprečjem točk manj kot "
-"%1 prikazani le prijavljenim uporabnikom.  Opravičujemo se za to "
-"nevšečnost."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Uporabnik je pregnan"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Za ta ID uporabnika ne obstaja profil."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Uredite vaš profil"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Vaše povratne informacije o tem profilu"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Predlagaj ta profil za Uporabnika dneva:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Ta profil mi je %1všeč%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Opozori skrbnike na žaljiv profil:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Ta profil mi %1ni všeč%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonimna platforma"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA grafični procesor"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI grafični procesor"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr ""
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Ni v bazi"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "čakajoče"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Vse"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "V teku"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr ""
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr ""
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Veljavno"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Neveljavno"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Napaka"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Neaktivno"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Neposlano"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Dokončano, čaka na preverjanje"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Dokončano in preverjeno"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Dokončano, označeno kot neveljavno"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Dokončano, preverjanje ni uspelo"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Dokončano, preverjanje ni dalo gotovega rezultata"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Dokončano, prepozno za preverjanje"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Dokončano"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Pošiljanje ni uspelo"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Strežnik je preklical"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr ""
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Napaka med prejemanjem"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Napaka med računanjem"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Napaka med pošiljanjem"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Uporabnik je preklical"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-#, fuzzy
-msgid "Upload failed"
-msgstr "Posodobitev ni uspela"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Čas je potekel - ni odziva"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Ni bilo potrebno"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Napaka pri preverjanju"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Opuščeno"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Končano"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Uspeh"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Računska napaka"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Odvečen rezultat"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Ni odgovora"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Novo"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Prejemam"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Obdelujem"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Napaka pri računanju"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Pošiljam"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Opravljeno"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Začetno"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Ni potrebno"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Napaka delovne enote - preverjanje preskočeno"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Preverjeno, ni pa še konsenza"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Opravilo je bilo prepozno javljeno za preverjanje"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Pošiljanje rezultatov ni uspelo"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Preveč napak (morda ima hrošča)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Preveč rezultatov (morda je nedeterministično)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Preveč skupnih rezultatov"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "Delovna enota preklicana"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Neznana napaka: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Ime opravila"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "kliknite za podrobnosti"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Prikaži IDje"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Prikaži imena"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Opravilo"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Delovna enota"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Računalnik"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Poslano"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Čas objave<br /> ali rok"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "pojasni"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Status"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Čas izvajanja<br />(sekunde)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Čas procesorja<br />(sekunde)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Točke"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Aplikacija"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Delovna enota"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Prejeto"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Stanje strežnika"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Izid"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Stanje odjemalca"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Stanje ob izhodu"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Rok za poročilo"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Čas izvajanja"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Čas procesorja"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Stanje preverjanja"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Različica aplikacije"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr ""
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr ""
-
-#: ../inc/result.inc:706
-#, fuzzy
-msgid "State"
-msgstr "Status"
-
-#: ../inc/result.inc:747
-#, fuzzy
-msgid "Task name:"
-msgstr "Ime opravila"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Iskalni kriteriji (uporabite enega ali več)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Ključne besede"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Poišči ekipe s temi besedami v njihovem imenu ali opisu"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Država"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Tip ekipe"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Prikaži le aktivne ekipe"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Išči"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Zahtevali ste vi in rok za ustanoviteljev odgovor je potekel."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Dokončaj prenos ustanoviteljstva"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Zahtevali ste vi"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "rok za ustanoviteljev odgovor je %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "brez"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Prični zahtevo"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Odloženo"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Informacije o ekipi"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Opis"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Spletna stran"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Medprojektna statistika"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Tip"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Razpravljalnica"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Teme"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Pridruži se tej ekipi"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr ""
-"Opomba: če je 'Dovoljeno pošiljanje pošte' nastavljeno v nastavitvah vašega "
-"projekta, ob pridružitvi ekipi daje njenemu ustanovitelju dostop do naslova "
-"vaše elektronske pošte."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Ne sprejema novih članov"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Zahtevana sprememba ustanoviteljstva"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Odgovori z %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Sprememba ustanoviteljstva ekipe"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Člani"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Ustanovitelj"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Skrbniki"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Novi člani v zadnjem dnevu"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Skupaj članov"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "poglej"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Aktivni člani"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Člani s točkami"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Skrbnik"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Predhodnih %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Naslednjih %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Ekipa ne obstaja."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Ta operacija zahteva ustanoviteljstvo."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Ta operacija zahteva skrbniške pravice za ekipo"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
-"be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr ""
-"OPOZORILO: to je ekipa vsega BOINC. Če tu napravite spreembe, bodo hitro "
-"prepisane. Namesto tega uredite %1ekipo vsega BOINC%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr ""
-"%1Opomba o zasebnosti%2: če ustvarite ekipo, bodo vaše nastavitve projekta "
-"(delitev virov, grafične nastavitve) vidne javnosti."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Ime ekipe, tekstovna različica"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Ne uporabljajte HTML oznak."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Ime ekipe, HTML različica"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Lahko uporabljajte %1omejen nabor HTML oznak%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Če ne znate HTML, pustite ta okvir prazen."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "URL spletne strani ekipe, če obstaja"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "brez \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Na spletni strani ekipe bo povezava s tem URL."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Opis ekipe"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Sprejeti nove člane?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Profil uporabnika"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Projekti, v katerih sodelujete"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Projekti, v katerih sodeluje %1"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Projekt"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Kliknite za spletno stran uporabnika"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "Od"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Računanje in točke"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Računalniki tega računa"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Pogled"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Medprojektni ID"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Medprojektna statistika"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Račun"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Ekipa"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Medprojektno"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Certifikat"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Statistika na vašem mobilnem telefonu"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr ""
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Informacije o računu"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Naslov elektronske pošte"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Poštna številka"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "%1 član od"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Spremeni"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "naslov elektronske pošte"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "geslo"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "druge informacije o računu"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "ID uporabnika"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Uporabljeno v funkcijah skupnosti"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-#, fuzzy
-msgid "Account keys"
-msgstr "Ključ računa"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Nastavitve"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Kdaj in kako BOINC uporablja vaš računalnik"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Nastavitve računanja"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Razpravljalnice in zasebna sporočila"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Nastavitve skupnosti"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Nastavitve za ta projekt"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "%1 nastavitve"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Skupnost"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Briši"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Ustvari"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "Objave %1"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Obvestila"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Zapusti ekipo"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Administriraj"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(čakajoča zahteva po spremembi ustanoviteljstva)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Član ekipe"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "poišči ekipo"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Ustanovitelj, vendar ne član"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Poišči prijatelje"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Prijatelji"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Računalniki"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Donator"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Kontakt"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Ta oseba je prijatelj"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Prekliči prijateljstvo"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Čakajoča prošnja"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Dodaj kot prijatelja"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr ""
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr ""
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr ""
-
-#: ../inc/util.inc:131
-#, fuzzy
-msgid "log out"
-msgstr "Odjava"
-
-#: ../inc/util.inc:133
-#, fuzzy
-msgid "log in"
-msgstr "Prijavite se"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Prijavite se"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Ustvarite račun"
-
-#: ../inc/util.inc:206
-#, fuzzy
-msgid "Server status page"
-msgstr "Stanje strežnika"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr ""
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Ni bilo mogoče obdelati zahteve"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr ""
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr ""
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr ""
-
-#: ../inc/util.inc:444
-msgid "Link has timed out. Please click Back, refresh the page, and try again."
-msgstr ""
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr ""
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Uporabite BBCode oznake za oblikovanje vašega besedila"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr ""
-
-#: ../inc/util.inc:799
-#, fuzzy
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "Ni uspelo pridružiti se ekipi - prosim, poskusite kasneje."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr ""
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr ""
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Ostanite prijavljeni na tem računalniku"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr ""
-"Identificira vas na naši spletni strani. Uporabite vaše pravo ime ali "
-"vzdevek."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Če želite, izberite državo, ki jo želite predstavljati."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Poštna številka ali oznaka"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Opcijsko"
-
-#: ../user/account_finish_action.php:27
-#, fuzzy
-msgid "You must supply a name for your account"
-msgstr "Podati morate ime vašega računa."
-
-#: ../user/account_finish_action.php:30
-#, fuzzy
-msgid "HTML tags not allowed in name"
-msgstr "HTML značke v vašem imenu niso dovoljene."
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Dodaj %1 nastavitve za %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Aplikacije"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr ""
-"% ima trenutno sledeče aplikacije. Ko sodelujete v %1, bo vašemu računalniku "
-"dodeljeno delo za eno ali več teh aplikacij. Trenutna različica aplikacije "
-"bo naložena na vaš računalnik. To se zgodi samodejno, ni vam streba storiti "
-"ničesar."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Platforma"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Različica"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Čas namestitve"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr ""
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr ""
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr ""
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr ""
-
-#: ../user/bbcode.php:33
-#, fuzzy
-msgid "Italic"
-msgstr "Neveljavno"
-
-#: ../user/bbcode.php:34
-#, fuzzy
-msgid "Underline"
-msgstr "Odkloni"
-
-#: ../user/bbcode.php:35
-#, fuzzy
-msgid "Superscript"
-msgstr "Opis"
-
-#: ../user/bbcode.php:36
-#, fuzzy
-msgid "Big text"
-msgstr "besedilo"
-
-#: ../user/bbcode.php:37
-#, fuzzy
-msgid "Red text"
-msgstr "besedilo"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr ""
-
-#: ../user/bbcode.php:39
-#, fuzzy
-msgid "Quoted text"
-msgstr "Zapusti ekipo"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr ""
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr ""
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr ""
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr ""
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr ""
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr ""
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr ""
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr ""
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr ""
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Vaš račun"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr ""
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-#, fuzzy
-msgid "Teams"
-msgstr "Ekipa"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr ""
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Uporabnik dneva"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-#, fuzzy
-msgid "Server status"
-msgstr "Stanje strežnika"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Profili"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr ""
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr ""
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Najboljši udeleženci"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Najboljši računalniki"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Najboljše ekipe"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr ""
-
-#: ../user/bs_sample_index.php:70
-#, fuzzy
-msgid "Languages"
-msgstr "Jezik"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Preberite naša pravila in politiko"
-
-#: ../user/create_account_action.php:26
-#, fuzzy
-msgid "Can't create account"
-msgstr "Ustvari račun"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr ""
-
-#: ../user/create_account_action.php:47
-#, fuzzy
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr ""
-"Vaš \"Recaptcha\" odgovor na vsebino slike ni bil pravilen.  Prosim, poskusite "
-"znova."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Podati morate kodo vabila, da ustvarite račun."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Koda vabila, ki ste jo podali, ni veljavna."
-
-#: ../user/create_account_action.php:84
-#, fuzzy
-msgid ""
-"Invalid email address: you must enter a valid address of the form name at domain"
-msgstr "Mora biti veljaven naslov oblike 'ime at domena'"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr ""
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-#, fuzzy
-msgid "New passwords are different"
-msgstr "Novo geslo, znova"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr ""
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr ""
-
-#: ../user/create_account_action.php:127
-#, fuzzy
-msgid "Couldn't create account"
-msgstr "Ustvari račun"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr ""
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr ""
-"Ta račun bo pripadal ekipi %1 in bo imel nastavitve projekta njenega "
-"ustanovitelja."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Koda vabila"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Da ustvarite račun, je potrebna veljavna koda vabila."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Naslov elektronske pošte"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Mora biti veljaven naslov v obliki 'ime at domena'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Geslo"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Biti mora vsaj %1 znakov"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Potrdi geslo"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr ""
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Ustvari račun"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Slika"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Vaša slika profila je prikazana na levi."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
-"or less)."
-msgstr ""
-"Da jo zamenjate, kliknite gumb \"Brskaj\" in izberite JPEG ali PNG datoteko (%"
-"1 ali manjšo)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Da odstranite sliko z vašega profila, kliknite ta okvir:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr ""
-"Če bi k vašemu profilu radi vključili sliko, kliknite gumb \"Brskaj\" in "
-"izberite JPEG ali PNG datoteko. Prosim, izberite slike dolžine %1 ali manj."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Jezik"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Izberite jezik v katerem naj bo napisan vaš profil:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Vnesi profil"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr ""
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Ustvari/uredi profil"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Format slike, ki ste jo naložili, ni podprt."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr ""
-"Vaš %1profil%2 vam omogoča deliti vaša mnenja in ozadje s skupnostjo %3."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr ""
-"Vaš \"Recaptcha\" odgovor na vsebino slike ni bil pravilen.  Prosim, poskusite "
-"znova."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr ""
-"Vaš drugi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "Vnesli ste prazen profil."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Ne morem posodobiti profila: napaka v podatkovni bazi"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Ne morem ustvariti profila: napaka v podatkovni bazi"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Profil shranjen"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Čestitke! Vaš profil je bil uspešno vnesen v našo podatkovno bazo."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Poglejte vaš profil%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Ustvarite profil"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or "
-"edit a profile.  We apologize for this inconvenience."
-msgstr ""
-"Za preprečitev smetja, je za ustvarjanje ali urejanje profila zahtevano "
-"povprečje točk %1 ali več.  Za to nevšečnost se vam opravičujemo."
-
-#: ../user/delete_account.php:57
-#, fuzzy
-msgid "Couldn't delete account"
-msgstr "Upokojitev starega računalnnika ni uspela"
-
-#: ../user/delete_account.php:59
-#, fuzzy
-msgid "Account deleted"
-msgstr "Podatki računa"
-
-#: ../user/delete_account.php:60
-#, fuzzy
-msgid "Your account has been deleted."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/delete_account.php:64
-#, fuzzy
-msgid "Confirm delete account"
-msgstr "Ustvari račun"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr ""
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr ""
-
-#: ../user/delete_account.php:76
-#, fuzzy
-msgid "Are you sure you want to delete your account?"
-msgstr "Ali ste prepričani, da želeti brisati vaše ločene %1 nastavitve za %2"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Da"
-
-#: ../user/delete_account.php:79
-#, fuzzy
-msgid "Delete this account"
-msgstr "Briši ta računalnik"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Ne"
-
-#: ../user/delete_account.php:80
-#, fuzzy
-msgid "Do not delete this account"
-msgstr "Briši ta računalnik"
-
-#: ../user/delete_profile.php:30
-#, fuzzy
-msgid "couldn't delete profile - please try again later"
-msgstr "Ni uspelo pridružiti se ekipi - prosim, poskusite kasneje."
-
-#: ../user/delete_profile.php:33
-#, fuzzy
-msgid "Delete Confirmation"
-msgstr "Informacije o računalniku"
-
-#: ../user/delete_profile.php:35
-#, fuzzy
-msgid "Your profile has been deleted."
-msgstr "Vaše sporočilo je bilo poslano."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr ""
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr ""
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr ""
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr ""
-
-#: ../user/delete_profile.php:52
-#, fuzzy
-msgid "Delete my profile"
-msgstr "Ustvarite profil"
-
-#: ../user/delete_profile.php:53
-#, fuzzy
-msgid "Do not delete my profile"
-msgstr "Ta profil mi %1ni všeč%2"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr ""
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr ""
-
-#: ../user/donated.php:29
-#, fuzzy
-msgid "Your donation for has been completed."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by PayPal."
-msgstr ""
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr ""
-
-#: ../user/donations.php:24
-#, fuzzy
-msgid "This project is not accepting donations."
-msgstr "Ta zahteva še vedno čaka na potrditev."
-
-#: ../user/donations.php:34
-#, fuzzy
-msgid "%1 donations"
-msgstr "%1 dni"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr ""
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr ""
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr ""
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr ""
-
-#: ../user/donations.php:320 ../user/donations.php:324
-#, fuzzy
-msgid "Anonymous donation"
-msgstr "Anonimna platforma"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr ""
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr ""
-
-#: ../user/donations.php:328
-#, fuzzy
-msgid "Proceed"
-msgstr "Profil shranjen"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr ""
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Naloži dodatno programsko opremo BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Naložite lahko aplikacije iz večih kategorij."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Te aplikacije %1 ne podpira. Lahko jo uporabljate na lastno odgvornost."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or "
-"uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr ""
-"Ne ponujamo navodil za namestitev teh aplikacij.\n"
-"Kakorkoli, avtor je morda priskrbel kaj pomoči o namestitvi ali "
-"odstranjevanju\n"
-"aplikacije.\n"
-"Če za vas to ni dovolj, bi morali kontaktirati avtorja."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Navodila za namestitev in poganjanje BOINC so %1tukaj%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Ta seznam je centralno upravljan na %1spletni strani BOINC%2."
-
-#: ../user/edit_email_action.php:31
-#, fuzzy
-msgid "Change email address of account"
-msgstr "Spremenite naslov e-pošte vašega računa"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-#, fuzzy
-msgid "New email address '%1' is invalid."
-msgstr "Nov naslov e-pošte"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr ""
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr ""
-
-#: ../user/edit_email_action.php:54
-#, fuzzy
-msgid "Invalid password."
-msgstr "Potrdi geslo"
-
-#: ../user/edit_email_action.php:62
-#, fuzzy
-msgid "The email address of your account is now %1."
-msgstr "Naslov elektronske pošte vašega računa je bil potrjen."
-
-#: ../user/edit_email_action.php:64
-#, fuzzy
-msgid "Please %1validate this email address%2."
-msgstr "Potrdite naslov elektronske pošte"
-
-#: ../user/edit_email_action.php:67
-#, fuzzy
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Spremenite naslov e-pošte"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Spremenite naslov e-pošte vašega računa"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Nov naslov e-pošte"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Mora biti veljaven naslov oblike 'ime at domena'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Brez gesla?"
-
-#: ../user/edit_forum_preferences_action.php:33
-#, fuzzy
-msgid "Confirm reset"
-msgstr "Potrdi geslo"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:38
-#, fuzzy
-msgid "Reset preferences"
-msgstr "Odstrani nastavitve"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr ""
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-#, fuzzy
-msgid "No such user: %1"
-msgstr "Uporabnik ne obstaja"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:57
-#, fuzzy
-msgid "On my Account page (no email)"
-msgstr "Dobi ključ računa po e-pošti"
-
-#: ../user/edit_forum_preferences_form.php:58
-#, fuzzy
-msgid "Immediately, by email"
-msgstr "Dobi ključ računa po e-pošti"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:75
-#, fuzzy
-msgid "Message-board identity"
-msgstr "Razpravljalnica"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:80
-#, fuzzy
-msgid "Don't use an avatar"
-msgstr "Ne uporabljajte HTML oznak."
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:96
-#, fuzzy
-msgid "Signature for message board posts"
-msgstr "Ustvarite sporočilnico za %1"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:127
-#, fuzzy
-msgid "Message display"
-msgstr "Razpravljalnice"
-
-#: ../user/edit_forum_preferences_form.php:129
-#, fuzzy
-msgid "What to display"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Threads:"
-msgstr "Teme"
-
-#: ../user/edit_forum_preferences_form.php:140
-#, fuzzy
-msgid "Posts:"
-msgstr "Objave"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:148
-#, fuzzy
-msgid "Message filtering"
-msgstr "Razpravljalnica"
-
-#: ../user/edit_forum_preferences_form.php:164
-#, fuzzy
-msgid "Filtered users"
-msgstr "Filtri"
-
-#: ../user/edit_forum_preferences_form.php:165
-#, fuzzy
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Razpravljalnice in zasebna sporočila"
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Dodaj uporabnika v filter"
-
-#: ../user/edit_forum_preferences_form.php:173
-#, fuzzy
-msgid "Click here to update preferences"
-msgstr "Posodobi nastavitve"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr ""
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:50
-#, fuzzy
-msgid "Invalid account key"
-msgstr "Šibki ključ računa"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr ""
-
-#: ../user/edit_passwd_action.php:59
-#, fuzzy
-msgid "Invalid password"
-msgstr "Potrdi geslo"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Spremenite geslo"
-
-#: ../user/edit_passwd_action.php:67
-#, fuzzy
-msgid "Your password has been changed."
-msgstr "Vaše sporočilo je bilo poslano."
-
-#: ../user/edit_passwd_action.php:69
-#, fuzzy
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Lahko se identificirate ali z"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "vašim naslovom e-pošte in starim geslom"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "vašim ključem računa"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Trenutno geslo"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>ALI</b>: Ključ računa"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Dobi ključ računa po e-pošti"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Novo geslo"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Novo geslo, znova"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "HTML značke v vašem imenu niso dovoljene."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Podati morate ime vašega računa."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Posodobitev uporabniških podatkov ni uspela."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Uredite informacije o računu"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Ime %1 pravo ime ali vzdevek%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 vaše spletne strani; ni obvezno%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Poštna številka %1 ni obvezno%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Posodobi informacije"
-
-#: ../user/explain_state.php:27
-#, fuzzy
-msgid "Server states"
-msgstr "Stanje strežnika"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr ""
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr ""
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr ""
-
-#: ../user/explain_state.php:40
-#, fuzzy
-msgid "In Progress"
-msgstr "V teku"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr ""
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr ""
-
-#: ../user/explain_state.php:49
-#, fuzzy
-msgid "Outcomes"
-msgstr "Izid"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr ""
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr ""
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr ""
-
-#: ../user/explain_state.php:65
-#, fuzzy
-msgid "Client error"
-msgstr "Napaka pri preverjanju"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr ""
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed "
-"for this workunit."
-msgstr ""
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr ""
-
-#: ../user/explain_state.php:80
-#, fuzzy
-msgid "Client states"
-msgstr "Stanje odjemalca"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an "
-"error occurred."
-msgstr ""
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr ""
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr ""
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr ""
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr ""
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr ""
-
-#: ../user/explain_state.php:103
-#, fuzzy
-msgid "Time reported and deadline"
-msgstr "Čas objave<br /> ali rok"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr ""
-
-#: ../user/explain_state.php:110
-#, fuzzy
-msgid "Already reported"
-msgstr "Že prijatelja"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr ""
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr ""
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr ""
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr ""
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr ""
-
-#: ../user/explain_state.php:120
-#, fuzzy
-msgid "Unknown field"
-msgstr "Neznano"
-
-#: ../user/ffmail_action.php:47
-#, fuzzy
-msgid "Email preview"
-msgstr "Naslov elektronske pošte"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-#, fuzzy
-msgid "Send email"
-msgstr "Pošlji sporočilo"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr ""
-
-#: ../user/ffmail_action.php:63
-#, fuzzy
-msgid "Sending emails"
-msgstr "Čakajoče točke"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr ""
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr ""
-
-#: ../user/ffmail_form.php:33
-#, fuzzy
-msgid "Tell your friends about %1"
-msgstr "Vaše mnenje o %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr ""
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your name:"
-msgstr "Prikaži imena"
-
-#: ../user/ffmail_form.php:42
-#, fuzzy
-msgid "Your email address:"
-msgstr "naslov elektronske pošte"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's name:"
-msgstr "Prijatelji"
-
-#: ../user/ffmail_form.php:48
-#, fuzzy
-msgid "Friend's email address:"
-msgstr "Nov naslov e-pošte"
-
-#: ../user/ffmail_form.php:56
-#, fuzzy
-msgid "Additional message (optional)"
-msgstr "Tu lahko dodate sporočilo:"
-
-#: ../user/ffmail_form.php:59
-#, fuzzy
-msgid "Send"
-msgstr "Pošiljatelj"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:50
-#, fuzzy
-msgid "No user with this ID found."
-msgstr "Ni bil najden računalnik z ID %1"
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-#, fuzzy
-msgid "User is already banished"
-msgstr "Uporabnik je pregnan"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the "
-"user should be banished."
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-#, fuzzy
-msgid "User Request"
-msgstr "Ni prošnje"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-#, fuzzy
-msgid "Other"
-msgstr "Bodisi"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-#, fuzzy
-msgid "Reason"
-msgstr "Različica"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr ""
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-#, fuzzy
-msgid "You must specify an action..."
-msgstr "Podati morate ime vašega računa."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr ""
-
-#: ../user/forum_edit.php:47
-#, fuzzy
-msgid "You are not authorized to edit this post."
-msgstr "Zdaj sta s/z %1 prijatelja."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr ""
-
-#: ../user/forum_edit.php:110
-#, fuzzy
-msgid "Edit your message"
-msgstr "Uredite vaš profil"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Naslov"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Dodaj moj podpis k tej objavi"
-
-#: ../user/forum_forum.php:41
-#, fuzzy
-msgid "Not visible to you"
-msgstr "Ta forum za vas ni viden."
-
-#: ../user/forum_forum.php:80
-#, fuzzy
-msgid "Team message board for %1"
-msgstr "Ustvarite sporočilnico za %1"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "New thread"
-msgstr "Tema"
-
-#: ../user/forum_forum.php:96
-#, fuzzy
-msgid "Add a new thread to this forum"
-msgstr "Dodaj novo sporočilo k tej temi"
-
-#: ../user/forum_forum.php:116
-#, fuzzy
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Novice so na voljo kot %sRSS vir%s"
-
-#: ../user/forum_forum.php:174
-#, fuzzy
-msgid "This thread is hidden"
-msgstr "To temo so moderatorji skrili"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr ""
-
-#: ../user/forum_forum.php:180
-#, fuzzy
-msgid "sticky/unread"
-msgstr "neprebrano"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr ""
-
-#: ../user/forum_forum.php:184
-#, fuzzy
-msgid "unread/locked"
-msgstr "neprebrano"
-
-# 81%
-#: ../user/forum_forum.php:186
-#, fuzzy
-msgid "You haven't read this thread yet"
-msgstr "Nimate zasebnih sporočil."
-
-#: ../user/forum_forum.php:192
-#, fuzzy
-msgid "This thread is sticky and locked"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr ""
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "This thread is sticky"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_forum.php:194
-#, fuzzy
-msgid "sticky"
-msgstr "Naredi lepljivo"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "This thread is locked"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_forum.php:198
-#, fuzzy
-msgid "locked"
-msgstr "Odkleni"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "You read this thread"
-msgstr "Skrij to temo"
-
-#: ../user/forum_forum.php:200
-#, fuzzy
-msgid "read"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:27
-#, fuzzy
-msgid "Questions and answers"
-msgstr "Vprašanja in odgovori"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
-msgstr ""
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Tema"
-
-#: ../user/forum_help_desk.php:45
-#, fuzzy
-msgid "Questions"
-msgstr "Različica"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Razprave med člani %1"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "%1 razpravljalnice"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr ""
-"Če imate vprašanje ali problem, prosim uporabite odsek %1Vprašanja in "
-"odgovori%2 razpravljalnic."
-
-#: ../user/forum_index.php:123
-#, fuzzy
-msgid "Subscribed threads"
-msgstr "Naroči se"
-
-#: ../user/forum_moderate_post.php:43
-#, fuzzy
-msgid "Moderate post"
-msgstr "Zadnja objava"
-
-#: ../user/forum_moderate_post.php:52
-#, fuzzy
-msgid "Hide post"
-msgstr "Skrij"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:63
-#, fuzzy
-msgid "Move post"
-msgstr "Ni gostitelja"
-
-#: ../user/forum_moderate_post.php:65
-#, fuzzy
-msgid "Destination thread ID:"
-msgstr "Objavi k temi"
-
-#: ../user/forum_moderate_post.php:78
-#, fuzzy
-msgid "Banish user"
-msgstr "uporabnik ne obstaja"
-
-#: ../user/forum_moderate_post.php:80
-#, fuzzy
-msgid "Ban duration"
-msgstr "potrjevanje"
-
-#: ../user/forum_moderate_post.php:81
-#, fuzzy
-msgid "4 hours"
-msgstr "UTC %1."
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-#, fuzzy
-msgid "1 day"
-msgstr "%1 dni"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:85
-#, fuzzy
-msgid "1 month"
-msgstr "Objave %1"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr ""
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:57
-#, fuzzy
-msgid "You are not authorized to moderate this post."
-msgstr "Zdaj sta s/z %1 prijatelja."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:126
-#, fuzzy
-msgid "Banishment"
-msgstr "Neposlano"
-
-#: ../user/forum_moderate_post_action.php:128
-#, fuzzy
-msgid "User %1 has been banished."
-msgstr "Uporabnik je pregnan"
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:72
-#, fuzzy
-msgid "Current forum"
-msgstr "Trenutno geslo"
-
-#: ../user/forum_moderate_thread.php:73
-#, fuzzy
-msgid "Destination forum"
-msgstr "Opis ekipe"
-
-#: ../user/forum_moderate_thread.php:77
-#, fuzzy
-msgid "New title:"
-msgstr "Uredi naslov"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr ""
-
-#: ../user/forum_post.php:60
-#, fuzzy
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/forum_post.php:70
-#, fuzzy
-msgid "Create new thread"
-msgstr "Ustvari novo temo"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Ustvari novo temo"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr ""
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr ""
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr ""
-
-#: ../user/forum_rate.php:27
-#, fuzzy
-msgid "This function is turned off by the project"
-msgstr "Ta možnost je začasno izklopljena"
-
-#: ../user/forum_rate.php:58
-#, fuzzy
-msgid "You need more average or total credit to rate a post."
-msgstr "Najmanjše povprečno številko točk za objavo"
-
-#: ../user/forum_rate.php:62
-#, fuzzy
-msgid "You have already rated this post."
-msgstr "Že ste član %1."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-#, fuzzy
-msgid "Return to thread"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/forum_rate.php:72
-#, fuzzy
-msgid "Input Recorded"
-msgstr "Glasovanje zabeleženo"
-
-#: ../user/forum_rate.php:73
-#, fuzzy
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/forum_rate.php:75
-#, fuzzy
-msgid "Vote Registered"
-msgstr "Glasovanje zabeleženo"
-
-#: ../user/forum_rate.php:76
-#, fuzzy
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr ""
-
-#: ../user/forum_reply.php:73
-#, fuzzy
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Objavi k temi"
-
-#: ../user/forum_reply.php:137
-#, fuzzy
-msgid "Message:"
-msgstr "Sporočilo"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr ""
-
-#: ../user/forum_reply.php:166
-#, fuzzy
-msgid "Post reply"
-msgstr "Ni odgovora"
-
-#: ../user/forum_reply.php:169
-#, fuzzy
-msgid "Add my signature to this reply"
-msgstr "Dodaj moj podpis k tej objavi"
-
-#: ../user/forum_report_post.php:45
-#, fuzzy
-msgid "You need more average or total credit to report a post."
-msgstr "Najmanjše povprečno številko točk za objavo"
-
-#: ../user/forum_report_post.php:65
-#, fuzzy
-msgid "Report Registered"
-msgstr "Rok za poročilo"
-
-# 92%
-#: ../user/forum_report_post.php:66
-#, fuzzy
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr ""
-
-#: ../user/forum_report_post.php:71
-#, fuzzy
-msgid "Report a forum post"
-msgstr "Zadnja objava"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If "
-"enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr ""
-
-#: ../user/forum_report_post.php:80
-#, fuzzy
-msgid "Report post"
-msgstr "Zadnja objava"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr ""
-
-#: ../user/forum_report_post.php:90
-#, fuzzy
-msgid "Report not registered"
-msgstr "Rok za poročilo"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr ""
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project developers."
-msgstr ""
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr ""
-
-#: ../user/forum_rss.php:42
-#, fuzzy
-msgid "This message board is available as an RSS feed."
-msgstr "Novice so na voljo kot %sRSS vir%s"
-
-#: ../user/forum_rss.php:43
-#, fuzzy
-msgid "Options:"
-msgstr "Opcijsko"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr ""
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr ""
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr ""
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr ""
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Iskanje po forumu"
-
-#: ../user/forum_search.php:31
-#, fuzzy
-msgid "Search query"
-msgstr "Tip iskanja"
-
-#: ../user/forum_search.php:32
-#, fuzzy
-msgid "Search for keywords:"
-msgstr "Išči po forumih"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr ""
-
-#: ../user/forum_search.php:36
-#, fuzzy
-msgid "Search for author ID:"
-msgstr "Išči po forumih"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr ""
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr ""
-
-#: ../user/forum_search.php:41
-#, fuzzy
-msgid "Search options"
-msgstr "Išči po forumih"
-
-#: ../user/forum_search.php:42
-#, fuzzy
-msgid "Search limits"
-msgstr "Rezultati iskanja"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr ""
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-#, fuzzy
-msgid "%1 months"
-msgstr "Objave %1"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr ""
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr ""
-
-#: ../user/forum_search.php:84
-#, fuzzy
-msgid "Sort by"
-msgstr "Uredi"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr ""
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Rezultati iskanja po forumu"
-
-#: ../user/forum_search_action.php:174
-#, fuzzy
-msgid "Thread titles matching your query:"
-msgstr "Ni profilov, ki bi se ujemali z vašim povpraševanjem."
-
-#: ../user/forum_search_action.php:194
-#, fuzzy
-msgid "Messages matching your query:"
-msgstr "Ni profilov, ki bi se ujemali z vašim povpraševanjem."
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:46
-#, fuzzy
-msgid "Subscription successful"
-msgstr "Posodobitev uspešna"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr ""
-
-#: ../user/forum_subscribe.php:51
-#, fuzzy
-msgid "Subscription failed"
-msgstr "Opis ekipe"
-
-#: ../user/forum_subscribe.php:52
-#, fuzzy
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/forum_subscribe.php:61
-#, fuzzy
-msgid "Unsubscription successful"
-msgstr "Posodobitev uspešna"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications "
-"for this thread."
-msgstr ""
-
-#: ../user/forum_subscribe.php:66
-#, fuzzy
-msgid "Unsubscription failed"
-msgstr "Odjavi naročilo"
-
-#: ../user/forum_subscribe.php:67
-#, fuzzy
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#: ../user/forum_subscribe.php:74
-#, fuzzy
-msgid "Unknown subscription action"
-msgstr "Neznano dejanje"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Ta forum za vas ni viden."
-
-#: ../user/forum_thread.php:69
-#, fuzzy
-msgid "This thread has been hidden by moderators."
-msgstr "To temo so moderatorji skrili"
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "Na moje vprašanje je bilo odgovorjeno"
-
-#: ../user/forum_thread.php:129
-#, fuzzy
-msgid "Click here if your question has been adequately answered"
-msgstr ""
-"Če je bilo na vaše vprašanje zadovoljivo odgovorjeno, prosim kliknite tu, da "
-"ga zaprete!"
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "Imam tudi to vprašanje"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Dodaj novo sporočilo k tej temi"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Odjavi naročilo"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Naročeni ste na to temo.  Kliknite tu, da odjavite naročilo."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Naroči se"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr ""
-"Kliknite tu, da dobite elektronsko pošto, kadar so v tej temi nove objave."
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Naredi temo vidno"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Skrij to temo"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "Odstrani lepljivost"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "Odstrani lepljivost te teme"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "Naredi lepljivo"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Naredi to temo lepljivo"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Odkleni"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Odkleni to temo"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Zakleni"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Zakleni to temo"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Premakni to temo v drug forum"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Uredi naslov"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Uredi naslov teme"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr ""
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr ""
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Uredi"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr ""
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr ""
-
-#: ../user/forum_user_posts.php:73
-#, fuzzy
-msgid "Posts by %1"
-msgstr "Objave"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Že prijatelja"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Zahtevali ste prijateljstvo z %1 na %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Ta zahteva še vedno čaka na potrditev."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 ne sprejema vaših zahtev po prijateljstvu"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Ne morete biti prijatelj samemu sebi"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Dodaj prijatelja"
-
-#: ../user/friend.php:74
-#, fuzzy
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
-"to confirm that you are friends."
-msgstr ""
-"Prosili ste, da bi dodali %1 kot prijatelja. Obvestili bomo %2 in ga/jo "
-"vprašali za potrditev, da sta prijatelja/prijateljici."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Tu lahko dodate sporočilo:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Prošnja za prijateljstvo je poslana"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "O vaši prošnji smo obvestili %1."
-
-#: ../user/friend.php:126
-#, fuzzy
-msgid "Please log in as %1"
-msgstr "Prosim, prijavite se"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr ""
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Prošnja za prijateljstvo"
-
-#: ../user/friend.php:141
-#, fuzzy
-msgid "%1 has requested friendship with you."
-msgstr "Zahtevali ste prijateljstvo z %1 na %2."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 pravi: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Sprejmi prijateljstvo"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Klknite sprejmi, če je %1 zares vaš prijatelj(-ica)"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Odkloni"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Kliknite odkloni, če %1 ni vaš prijatelj(-ica)"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Prijateljstvo potrjeno"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Vaše prijateljstvo z %1 je bilo potrjeno."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Prijateljstvo odklonjeno"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Odklonili ste prijateljstvo z %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Obvestilo ni najdeno"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Prijatelj(-ica) potrjen(-a)"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Zdaj sta s/z %1 prijatelja."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Preklic prijateljstva?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Ali ste prepričani, da želite preklicati prijateljstvo s/z %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Ostani prijatelj"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Prijateljstvo preklicano"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Vaše prijateljstvo s/z %1 je bilo preklicano."
-
-#: ../user/get_passwd.php:25
-#, fuzzy
-msgid "Forgot your account info?"
-msgstr "druge informacije o računu"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email there:"
-msgstr ""
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr ""
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr ""
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr ""
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr ""
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr ""
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr ""
-
-#: ../user/get_passwd.php:62
-msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr ""
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr ""
-
-#: ../user/get_passwd.php:65
-#, fuzzy
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr ""
-"Prosim, obiščite sledečo povezavo, da potrdite elektronsko pošto vašega %1 "
-"računa:"
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr ""
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr ""
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr ""
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Dobrodošli k %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Poglejte in uredite nastavitve vašega računa s spodnjimi povezavami."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr ""
-
-#: ../user/host_app_versions.php:37
-#, fuzzy
-msgid "Anonymous platform, missing app"
-msgstr "Anonimna platforma"
-
-#: ../user/host_app_versions.php:40
-#, fuzzy
-msgid "anonymous platform"
-msgstr "Anonimna platforma"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-#, fuzzy
-msgid "Missing app"
-msgstr "manjka tip iskanja"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr ""
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr ""
-
-#: ../user/host_app_versions.php:57
-#, fuzzy
-msgid "Max tasks per day"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/host_app_versions.php:58
-#, fuzzy
-msgid "Number of tasks today"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr ""
-
-#: ../user/host_app_versions.php:63
-#, fuzzy
-msgid "Average processing rate"
-msgstr "Povprečna hitrost pošiljanja"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Podrobnosti aplikacij za gostitelja %1"
-
-#: ../user/host_delete.php:31
-#, fuzzy
-msgid "We have no record of that computer."
-msgstr "Združi podvojene zapise tega računalnika"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr ""
-
-#: ../user/host_delete.php:40
-#, fuzzy
-msgid "Delete record of computer"
-msgstr "Briši ta računalnik"
-
-#: ../user/host_delete.php:41
-#, fuzzy
-msgid "Record deleted."
-msgstr "Rok za poročilo"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-#, fuzzy
-msgid "Return to list of your computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/host_edit_action.php:39
-#, fuzzy
-msgid "Merge computer records"
-msgstr "Združi računalnike po imenu"
-
-#: ../user/host_edit_form.php:35
-#, fuzzy
-msgid "Merge computers"
-msgstr "Združi računalnike po imenu"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake. "
-"You can correct this by merging old identities with the newest one."
-msgstr ""
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr ""
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-#, fuzzy
-msgid "Show details"
-msgstr "Prikaži imena"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr ""
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "ime"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "ustvarjeno"
-
-#: ../user/host_edit_form.php:70
-#, fuzzy
-msgid "computer ID"
-msgstr "ID računalnika"
-
-#: ../user/host_edit_form.php:77
-#, fuzzy
-msgid "no hostname"
-msgstr "Ni gostitelja"
-
-#: ../user/host_edit_form.php:109
-#, fuzzy
-msgid "Merge hosts"
-msgstr "Združi"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr ""
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr ""
-
-#: ../user/host_venue_action.php:43
-#, fuzzy
-msgid "none"
-msgstr "Opravljeno"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr ""
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr ""
-
-#: ../user/host_venue_action.php:50
-#, fuzzy
-msgid "Return to host page"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Računalniki, ki pripadajo %1"
-
-#: ../user/hosts_user.php:55
-#, fuzzy
-msgid "Computers hidden"
-msgstr "Informacije o računalniku"
-
-#: ../user/hosts_user.php:56
-#, fuzzy
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Ta uporabnik je izbral, da ne prikaže informacij o svojih računalnikih."
-
-#: ../user/hosts_user.php:64
-#, fuzzy
-msgid "Your computers"
-msgstr "Najboljši računalniki"
-
-#: ../user/html.php:23
-#, fuzzy
-msgid "Allowed HTML tags"
-msgstr "Ne uporabljajte HTML oznak."
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr ""
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr ""
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr ""
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr ""
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr ""
-
-#: ../user/html.php:31
-msgid "break"
-msgstr ""
-
-#: ../user/html.php:32
-#, fuzzy
-msgid "preformatted"
-msgstr "Ustvarjeno"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without "
-"permission of the web site where the image is hosted."
-msgstr ""
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr ""
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr ""
-"Poganjajte %1 le na računalnikih, katerih lastnik ste ali za katere ste "
-"pridobili dovoljenje lastnika. Nekatera podjetja in šole imajo pravila, ki "
-"prepovedujejo uporabo njihovih računalnikov za projekte, kot je %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Kako bo %1 uporabljal vaš računalnik"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr ""
-"Med tem ko poganjate %1 na vašem računalniku, bo ta uporabljal del "
-"procesorske moči vašega računalnika, prostora na disku in pasovne širine "
-"mreže. Nastavite lahko koliko teh virov uporablja %1 in kdaj ."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr ""
-"Delo, ki ga opravi vaš računalnik, pripomore k ciljem %1, kot so opisani na "
-"njihovi spletni strani. Ta aplikacija se od časa do časa lahko spremeni."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Politika zasebnosti"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be "
-"shown on the %1 web site, along with a summary of the work your computer has "
-"done for %1. If you want to be anonymous, choose a name that doesn't reveal "
-"your identity."
-msgstr ""
-"Vaš račun na %1 je identificiran z imenom, ki ga izberete. To ime je lahko "
-"prikazano na spletni strani %1, skupaj s povzetkom dela, ki ga je vaš "
-"računalnik opravil za %1. Če želite biti anonimni, izberite ime, ki ne "
-"odkriva vaše identitete."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr ""
-"Če sodelujete v %1, bo %1 zabeležil informacije o vašem računalniku (kot "
-"naprimer tip procesorja, količina pomnilnika in podobno)  in to bo "
-"uporabljeno pri odločanju, kakšen tip dela je dodeljen vašemu računalniku. "
-"Ta informacija bo tudi prikazana na spletni strani %1. Nič, kar odkriva "
-"lokacijo vašega računalnika (kot ime domene ali mrežni naslov), ne bo "
-"prikazano."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr ""
-"Za sodelovanje v %1 morate podati naslov, na katerega prejemate elektronsko "
-"pošto. Ta naslov ne bo prikazan na spletni strani %1 ali deljen z "
-"organizacijami. %1 vam morda pošlje periodične novice, kdajkoli se lahko od "
-"njih tudi odjavite."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr ""
-"Zasebna sporočila poslana na spletno stran %1 so vidna le pošiljatelju in "
-"prejemniku.  %1 ne pregleduje ali cenzurira vsebino teh sporočil.  Če ste "
-"prejeli neželjena zasebna sporočila od drugega uporabnika %1, jih lahko "
-"dodate k vašemu %2filtru sporočil%3.  To bo preprečilo, da bi videli "
-"katerokoli javno ali zasebno sporočilo tega uporabnika."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for "
-"anyone to view and copy your posts."
-msgstr ""
-"Če uporabljate forume na naši spletni strani, morate slediti %2pravilom "
-"objavljanja%3. Sporočila objavljen na %1 forumih so vidna vsem, vključno "
-"nečlanom.  Z objavo na forum dajete trajno pravico vsakomur, da bere in "
-"kopira vaše objave."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Je varno poganjati %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have "
-"tested our applications carefully. Our servers are behind a firewall and are "
-"configured for high security. To ensure the integrity of program downloads, "
-"all executable files are digitally signed on a secure computer not connected "
-"to the Internet."
-msgstr ""
-"Vsakič, ko snamete program z interneta, tvegate: program ima morda nevarne "
-"napake ali pa so vdrli v strežnik. %1 se je potrudila, da čimbolj omeji ta "
-"tveganja. Našo aplikacijo smo natančno stestirali. Naši strežniki so za "
-"požarnim zidom in nastavljeni so za visoko varnost. Za zagotovitev "
-"integritete prenosov, so vse izvedljive datoteke digitalno podpisane na "
-"varnem računalniku, ki ni priključen na internet."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr ""
-"Aplikacije, ki jih poganja %1 lahko povzročijo, da se nekateri računalniki "
-"pregrejejo. Če se to zgodi, prenehajte poganjati %1 ali uporabite %2pomožni "
-"program%3, ki omeji uporabo procesorja."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 so razvili pri %2. BOINC je bil razvit na University of California."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Pravna odgovornost"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
-msgstr ""
-"%1 ne prevzema nikakeršne pravne odgovornosti za škodo na vašem računalniku, "
-"izgubo podatkov ali kateregakoli dogodka ali stanja, ki se lahko pripeti "
-"kot rezultat sodelovanja v %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Drugi BOINC projekti"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider "
-"participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr ""
-"Drugi projekti uporabljajo isto platformo, BOINC, kot %1. Morda želite "
-"premisliti o sodelovanju v enem ali več teh projektih. S tem, da to storite, "
-"bo vaš računalnik opravljal uporabno delo tudi, kadar %1 zanj nima na voljo "
-"dela."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr ""
-"Ti projekti niso povezani s/z %1 in ne moremo jamčiti za njihovo varnostno "
-"prakso ali narave njihovih raziskav.  Uporabljajte jih na lastno "
-"odgovornost."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Izbira jezika"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Ta stran je na voljo v več jezikih. Trenutno izbran jezik je %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr ""
-"Običajno je izbira jezika odvisna od nastavitve jezika vašega brskalnika, ki "
-"je: %1.  To nastavitev lahko spremenite z uporabo:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Orodja/Možnosti/Splošno"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Orodja/Internetne možnosti/Jeziki"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-"Lahko pa izberete jezik s klikom na eno izmed povezav.  To bo vašemu "
-"brskalniku poslalo piškotek; prepričajte se, da vaš brskalnik sprejema "
-"piškotke iz naše domene."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Ime jezika (kliknite za izbiro)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Uporabi brskalnikovo nastavitev jezika"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
-msgstr ""
-"Prevode opravljajo prostovoljci.  Če vašega materinega jezika ni tu, %1lahko "
-"prevod priskrbite Vi%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Naslov e-pošte"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "ste pozabili naslov e-pošte?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Geslo:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "ste pozabili geslo?"
-
-#: ../user/login_form.php:51
-#, fuzzy
-msgid "Stay logged in"
-msgstr "Ostanite prijavljeni na tem računalniku"
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "ali %1ustvarite račun%2."
-
-#: ../user/merge_by_name.php:31
-#, fuzzy
-msgid "Processing %1"
-msgstr "Obdelujem"
-
-#: ../user/merge_by_name.php:43
-#, fuzzy
-msgid "Merged %1 into %2"
-msgstr "Pridružujem gostitelja %1 k gostitelju %2"
-
-#: ../user/merge_by_name.php:72
-#, fuzzy
-msgid "Return to the list of your computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr ""
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr ""
-
-#: ../user/merge_by_name.php:83
-#, fuzzy
-msgid "Return to the list of computers"
-msgstr "Poganjajte %1 le na dovoljenih računalnikih"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr ""
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do "
-"so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr ""
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Čakajoče točke"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Workunit ID"
-msgstr "Delovna enota"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr ""
-
-#: ../user/pending.php:68
-#, fuzzy
-msgid "Claimed credit"
-msgstr "dodeljene točke"
-
-#: ../user/pending.php:81
-#, fuzzy
-msgid "Pending credit: %1"
-msgstr "Čakajoče točke"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr ""
-
-#: ../user/pm.php:32
-#, fuzzy
-msgid "Block user"
-msgstr "Uporabnik ne obstaja"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Vaše sporočilo je bilo poslano."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Nimate zasebnih sporočil."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Pošiljatelj in datum"
-
-#: ../user/pm.php:106
-#, fuzzy
-msgid "Reply to this message"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/pm.php:107
-#, fuzzy
-msgid "Delete this message"
-msgstr "Briši izbrana sporočila"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr ""
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr ""
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Briši izbrana sporočila"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Pošiljatelj"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Datum"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Da pošljete zasebno sporočilo, morate izpolniti vsa polja"
-
-#: ../user/pm.php:188
-#, fuzzy
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr ""
-"Vaš prvi odgovor je bil označen kot smetje s strani Akismet proti-smetnega "
-"sistema.  Prosim, spremenite vaše besedilo in poskusite znova."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Ne najdem uporabnika z id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Ne najdem uporabnika z uporabniškim imenom %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 ni unikatno uporabniško ime; uporabiti boste morali ID uporabnika"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Uporabnik %1 (ID: %2) ne sprejema vaših zasebnih sporočil."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Uporabnik ne obstaja"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Zares blokirati %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr ""
-"Ali ste res prepričani, da želite prepričiti uporabniku %1, da bi vam poslal "
-"zasebna sporočila?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr ""
-"Prosim, imejte v mislih, da lahko blokirate le omejeno število uporabnikov."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr ""
-"Ko enkrat blokirate uporabnika, ga lahko odblokirate z uporabo strani z "
-"nastavitvami foruma."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Ne, prekliči"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "uporabnik ne obstaja"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Uporabnik %1 blokiran"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Uporabniku %1 je preprečeno vam pošiljati zasebna sporočila."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Da odblokirate, obiščite %1nastavitve razpravljalnice%2"
-
-#: ../user/pm.php:302
-#, fuzzy
-msgid "Unknown action"
-msgstr "Neznano dejanje"
-
-#: ../user/prefs.php:32
-#, fuzzy
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-"Vaše nastavitve so bile posodobljene in\n"
-"\t      te bodo začele veljati, ko bo vaš računalnik komuniciral z %1\n"
-"\t      ali zahtevate ukaz %2Posodobi%3 v BOINC Upravitelju."
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr ""
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 za %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Nazaj k nastavitvam"
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr "Potrdite brisanje nastavitev"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Ali ste prepričani, da želeti brisati vaše ločene %1 nastavitve za %2"
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "Odstrani nastavitve"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "Prekliči"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr ""
-"%1Profili%2 omogočajo posameznikom, da delijo svoje ozadje in mnenja s "
-"skupnostjo %3."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr ""
-"Raziščite raznolikost vaših kolegov in kolegic prostovoljcev in prispevajte "
-"vaše lastne poglede drugim v veselje."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr ""
-"Če še niste, lahko %1ustvarite vaš lasten uporabniški profil%2, da ga drugi "
-"vidijo!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Uporabnik dneva"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Raziskovalec uporabniških profilov"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Poglejte %1Galerijo slik uporabnikov%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Brskajte profile %1po državi%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr ""
-"Brskajte profile %1naključno%2, %3naključno s slikami%2 ali %4naključno brez "
-"slik%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Seznam profilov po abecedi:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Iščite po besedilu profilov"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Ni profilov"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Ni profilov, ki bi se ujemali z vašim povpraševanjem."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr "Neveljaven tip glasovnice:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Glasovanje zabeleženo"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Hvala"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Vaš glas za zavrnitev tega profila je bil zabeležen."
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Vrnite se na profil."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr ""
-
-#: ../user/profile_search_action.php:40
-#, fuzzy
-msgid "User name"
-msgstr "Ime opravila"
-
-#: ../user/profile_search_action.php:41
-#, fuzzy
-msgid "Joined project"
-msgstr "Pridruženi %1"
-
-#: ../user/profile_search_action.php:44
-#, fuzzy
-msgid "Recent credit"
-msgstr "Povprečje točk v zadnjem času"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr ""
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Opravilo %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Ta možnost je začasno izklopljena"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Ni bil najden računalnik z ID %1"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Ni dostopa"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Manjka ID uporabnika ali ID gostitelja"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Ni opravil za prikaz "
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr ""
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr ""
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr ""
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr ""
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr ""
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr ""
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr ""
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr ""
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr ""
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr ""
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr ""
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr ""
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr ""
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr ""
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr ""
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr ""
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr ""
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr ""
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Opravila v izvajanju"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr ""
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr ""
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr ""
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr ""
-
-#: ../user/server_status.php:374
-#, fuzzy
-msgid "Users"
-msgstr "Uporabnik"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr ""
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr ""
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr ""
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr ""
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr ""
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "aplikacija"
-
-#: ../user/server_status.php:424
-#, fuzzy
-msgid "unsent"
-msgstr "Neposlano"
-
-#: ../user/server_status.php:425
-#, fuzzy
-msgid "in progress"
-msgstr "V teku"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr ""
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr ""
-
-#: ../user/show_host_detail.php:40
-#, fuzzy
-msgid "Computer %1"
-msgstr "Računalnik"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Statistika in lestvice"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Statistika za %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available "
-"at several web sites:"
-msgstr ""
-"Več podrobnejše statistike za %1 in druge na BOINC temelječe projekte je na "
-"voljo na večih spletnih straneh:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature image"
-"\":"
-msgstr "Vaše trenutne statistike lahko dobite tudi v obliki \"slikovni podpis\":"
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr ""
-"Dodatno lahko dobite vaše osebne statistike seštete po vseh BOINC projektih "
-"na večih straneh; glejte vašo %1domačo stran%2."
-
-#: ../user/team.php:27
-#, fuzzy
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 udeležencev lahko ustvari %2ekipo%3"
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-"Pripadate lahko le eni ekipi. Kdajkoli se lahko pridružite k ekipi ali jo "
-"zapustite."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Vsaka ekipa ima %1ustanovitelja%2, ki lahko:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "dostopa do naslovov elektronske pošte članov ekipe"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "ureja ime ekipe in njen opis"
-
-#: ../user/team.php:35
-#, fuzzy
-msgid "add or remove team admins"
-msgstr "Dodaj ali odstrani administratorje skupine"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "odstrani člane iz ekipe"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "razpusti ekipo, če ta nima članov"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-"Da se pridružite ekipi, obiščite spletno stran ekipe in kliknite %1Pridruži "
-"se tej ekipi%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Poiščite ekipo"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Vse ekipe"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "Ekipe %1"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Ustvari novo ekipo"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Če ne najdete ekipe, pravšnje za vas, lahko %1ustvarite ekipo%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr "Odstrani status administratorja ekipe temu uporabniku"
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "Dodaj ali odstrani administratorje skupine"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr ""
-"Izberete lahko člane ekipe, ki bodo \"administratorji skupine'. "
-"Administratorji lahko:"
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Urejajo informacije o ekipi (ime, URL, opis, država)"
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr "Vidijo zgodovino pridružitev k ekipi/odhodov iz ekipe"
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation "
-"events and red X reports)"
-msgstr ""
-"Moderirajo forum ekipe, če obstaja (administratorji dobijo obvestila o "
-"dogodkih in poročila po elektronski pošti)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "Administratorji ekipe ne morejo:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "Spremeniti ustanovitelja ekipe"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Odstraniti članov"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Če administrator ekipe zapusti ekipo, preneha biti administrator ekipe."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr ""
-"Priporočamo, da za administratorje ekipe izberete le ljudi, ki jih poznate "
-"in jim zelo zaupate."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "Trenutno ni administratorjev ekipe"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "Trenutni administratorji ekipe"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "Postal(-a) administrator ekipe na"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "Dodaj administratorja ekipe"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "Naslov elektronske pošte člana ekipe:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "odstranjevanje administratorja ni uspelo"
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr "Uporabnik ni član ekipe"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr "%1 je že administrator %2"
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr "Dodajanje administratorja ni uspelo"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Ekipa ne obstaja"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "ekipa ne obstaja"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "Uporabnik ni član %1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "Spreminjanje ustanovitelja %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 je zdaj ustanovitelj %2"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "Spremeni ustanovitelja %1"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr ""
-"Član ekipe %1 je zahteval spremembo ustanoviteljstva te skupine na %2, "
-"vendar je ekipo zapustil in tako preklical svojo zahtevo."
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr ""
-"Član skupine %1 je zahteval spremembo ustanoviteljstva te skupine. To je "
-"morda, ker ste zapustili ekipo ali daljši čas niste imeli kontakta z ekipo."
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "odkloni zahtevo"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming "
-"team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the "
-"form below."
-msgstr ""
-"Če ne odklonite te zahteve do %1, bo %2 imel možnost prevzeti "
-"ustanoviteljstvo ekipe.<br /><br />\n"
-"                  . Da sprejmete zahtevo, dodelite ustanoviteljstvo %3 z "
-"uporabo spodnjega obrazca."
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "Ni čakajočih zahtev za prenos."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr ""
-"Da dodelite ustanoviteljstvo te ekipe drugemu članu, obkljukajte ime člana "
-"in spodaj kliknite <strong>Spremeni ustanovitelja</strong>."
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "Nov ustanovitelj?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "Spremeni ustanovitelja"
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr ""
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Izbrati morate ime ekipe, ki ni prazno"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Ekipa, imenovana %1, že obstaja - poskusite drugo ime"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Ekipe ni možno ustvariti - prosim, poskusite kasneje."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Ustvari ekipo"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Pripadate k %1. Preden ustvarite novo, morate %2zapustiti to ekipo%3."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr "Niste ustanovitelj ali administrator"
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "Zgodovina ekipe za %1"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Kdaj"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Uporabnik"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "Dejanje"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr "Skupaj točk ob času dejanja"
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "napačna država"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "Ime '%1' uporablja druga ekipa."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "Navesti morate ime ekipe"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Ekipe ni možno posodobiti - prosim, poskusite kasneje."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Uredi %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Posodobi informacije o ekipi"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "%1 poštni seznam"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Seznam članov za %1"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Prikaži kot navadno besedilo"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr "Ustvari sporočilnico"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr "Lahko ustvarite sporočilnico za uporabo s strani %1."
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr "Le člani ekipe bodo lahko objavljali."
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "Po vaši izbiri, bodo lahko brali le člani."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Vi in vaši administratorji ekipe boste imeli moderatorske pravice."
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr "Ustvarite sporočilnico za %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr "Ekipa že ima sporočilnico"
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr "Sporočilnica ekipe"
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr "Najmanjši čas med objavami (sekunde)"
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr "Najmanjše skupno številko točk za objavo"
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr "Najmanjše povprečno številko točk za objavo"
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Pošlji"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr "Odstrani sporočilnico vaše ekipe."
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr "Res odstraniti sporočilnico?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr ""
-"Ali ste prepričani, da želite odstraniti sporočilnico vaše ekipe? Vse teme "
-"in objave bodo trajno odstranjene. (Lahko pa kasneje ustvarite novo "
-"sporočilnico)."
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr "Da - odstrani sporočilnico"
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr "Sporočilnica odstranjena"
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new one%2."
-msgstr ""
-"Sporočilnica vaše ekipe je bila odstranjena. Zdaj lahko %1ustvarite novo%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr "Sporočilnica ekipe posodobljena"
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "Posodobitev uspešna"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Posodobitev ni uspela"
-
-#: ../user/team_forum.php:154
-#, fuzzy
-msgid "Team has no forum"
-msgstr "ekipa nima foruma"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "Za dostop do te strani morate biti član ekipe."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr "Zahtevam ustanoviteljstvo %1"
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private "
-"message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you "
-"will be allowed to become the founder."
-msgstr ""
-"Trenutni ustanovitelj je bil obveščen o vaši zahtevi po elektronski pošti in "
-"z zasebnim sporočilom.<br /><br />\n"
-"                       Če ustanovitelj ne odgovori v 60 dneh, vam bo "
-"dovoljeno postati ustanovitelj."
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr "Zahteve po ustanoviteljstvu zdaj niso dovoljene"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr "Prevzeli ste ustanoviteljstvo %1"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr ""
-"Čestitke, zdaj ste ustanovitelj ekipe %1. Pojdite na %2stran Vaš račun%3, da "
-"najdete možnosti administratorjev ekipe."
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr "Odklonite zahtevo za spremembo ustanoviteljstva."
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr "Zahteva za ustanoviteljstvo od %1 je bila zavrnjena."
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr "Ni bilo zahtev za ustanoviteljstvo."
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "nedefinirano dejanje %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "Vrni se na stran ekipe"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "Za dostop do te strani morate biti član ekipe."
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr "Zahteva za ustanoviteljstvo %1"
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr "Zdaj ste ustanovitelj ekipe %1."
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr "Zahtevali ste ustanoviteljstvo %1 na %2."
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr ""
-"60 dni je preteklo od vaše zahteve in ustanovitelj ni odgovoril. Zdaj lahko "
-"prevzamete ustanoviteljstvo s klikom tu:"
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr "Prevzemi ustanoviteljstvo"
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr ""
-"Ustanovitelj je bil obveščen o vaši zahtevi. Če ne odgovori do %1, boste "
-"imeli na izbiro postati ustanovitelj."
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click the button below. The current founder will be sent an email "
-"detailing your request, and will be able to transfer foundership to you or "
-"to decline your request. If the founder does not respond in 60 days, you "
-"will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr ""
-"Če ustanovitelj ekipe ni aktiven in želite prevzeti vlogo ustanovitelja, "
-"kliknite na gumb spodaj. Trenutnemu ustanovitelju bo poslana elektronska "
-"pošta s podrobnostmi vaše zahteve in bo lahko prenesel ustanoviteljstvo vam "
-"ali zavrnil vašo zahtevo. Če ustanovitelj ne odgovori v 60 dneh, vam bo "
-"dovoljeno postati ustanovitelj.<br /><br />\n"
-"                       Ali ste prepričani, da želite zahtevati "
-"ustanoviteljstvo?"
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr "Zahtevaj ustanoviteljstvo"
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Spremembo ustanoviteljstva je že zahteval(-a) %1 na %2."
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr ""
-"Sprememba ustanoviteljstva je bila zahtevana v zadnjih 90 dneh, zato nove "
-"zahteve niso dovoljene. Prosim, poskusite kasneje."
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr "K ekipi %1 se ni možno pridružiti."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "Ste že član"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Že ste član %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Ni uspelo pridružiti se ekipi - prosim, poskusite kasneje."
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "Pridruženi %1"
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr "Pridružili ste se %1."
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Pridruži se %1"
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr "Prosimo, upoštevajte:"
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr ""
-"Pridružitev ekipi da njenemu ustanovitelju vaš naslov elektronske pošte."
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr "Pridružitev ekipi ne vpliva na točke vašega računa."
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr "Pridruži se ekipi"
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Rezultati iskanja"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Rezultati iskanja za '%1'"
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Lahko si ogledate člane, statistiko in informacije o teh ekipah."
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Več kot 100 ekip ustreza vašemu iskanju. Prvih 100 je prikazanih."
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
-msgstr ""
-"Konec rezultatov. %1 Če ne najdete ekipe, pravšnje za vas, lahko sami %"
-"2ustvarite ekipo%3."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr "Administracija ekipe za %1"
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "Uredi informacije o ekipi"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "Spremeni ime ekipe, URL, opis, tip ali državo"
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Seznam članov:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "besedilo"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Poglej imena in naslove elektronske pošte članov"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr "Poglej zgodovino sprememb:"
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr "Poglejte, kdaj so se člani pridružili ali zapustili to ekipo"
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr "Odgovorite na zahtevo po ustanoviteljstvu."
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Če ne odgovorite do %1, lahko %2 prevzame ustanoviteljstvo te ekipe."
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Odstrani neaktivne ali nezaželjene člane iz te ekipe"
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr "Prenesi ustanoviteljstvo na drugega člana"
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "Dodajte/odstranite administratorje ekipe"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr "Izbranim članom ekipe daj administratorske pravice za ekipo"
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "Odstrani ekipo"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "Dovoljeno le, če ekipa nima članov"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr "Ustvari ali upravljaj s sporočilnico ekipe"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can "
-"make it into a %1BOINC-wide team%2."
-msgstr ""
-"Da to ekipo ustvarite na vseh BOINC projektih (sedanjih in prihodnjih), jo "
-"lahko spremenite v %1ekipo za ves BOINC%2."
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr ""
-"Administratorji ekipe so vabljeni, da se pridružijo in sodelujejo v Google %"
-"1boinc-team-founders%2 skupini."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site, "
-"%1www.boincteams.com%2."
-msgstr ""
-"Drugi viri za administratorje BOINC ekipe so na voljo na zunanji strani %"
-"1www.boincteams.com%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Ni možno brisati ekipe, ki ni prazna"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Ekipa %1 izbrisana"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Omejitev presežena:  Prikazanih je lahko le prvih 1000 članov."
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Člani %1"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "Ni bilo možno zapustiti ekipe"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Ekipa ne obstaja ali pa ji ne pripadate"
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "Zapusti %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other "
-"team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics "
-"in any way.\n"
-"         </ul>"
-msgstr ""
-"<strong>Prosimo, upoštevajte preden zapustite ekipo:</strong>\n"
-"         <ul>\n"
-"         <li>Če zapustite ekipo, se lahko pozneje ponovno pridružite ali pa "
-"se po želji pridružite drugi ekipi\n"
-"         <li>Zapustitev ekipe na noben način ne vpliva na vašo osebno "
-"statistiko točk.\n"
-"         </ul>"
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Zapusti ekipo"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Odstranjevanje uporabnikov iz %1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 ni član %2"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 je bil odstranjen"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Odstrani člane iz %1"
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "Odstraniti?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Ime (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "Ni članov, ki bi bili primerni za odstranitev."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Odstrani uporabnike"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Ime ekipe"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Rezultati iskanja ekip"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr ""
-"Ni bilo najdenih ekip, ki bi ustrezale vašim pogojem. Poskusite iskati "
-"znova."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Lahko pa %1ustvarite novo ekipo%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr ""
-"Sledeče ekipe ustrezajo enemu ali večim vašim iskalnim pogojem.\n"
-"            Da se pridružite ekipi, kliknite nanjeno ime, da greste na stran "
-"ekipe,\n"
-"               nato kliknite %1Pridruži se tej ekipi%2."
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "Spremenite vaše iskanje"
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr ""
-"Lahko se združite v ekipo z ljudmi s podobnimi interesi, iz iste države, "
-"podjetja ali šole."
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr ""
-"Uporabte ta obrazec, da najdete ekipe, ki bi lahko bile pravšnje za vas."
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "Trenutno %1me ne zanima%2 pridružitev k ekipi."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Omejitev presežena - Oprostite, samo prvih %1 elementov"
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Najboljši gostitelji"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Najboljših %1 ekip"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr "Ni %1 ekip"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Udeleženec od"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "Uporabnika dneva ni bil izbran."
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr "Uporabnik dneva za %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Filtri"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Uporabniško ime se začne z"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Katerikoli"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "S profilom?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Bodisi"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "V ekipi?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr ""
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Čas prijave padajoče"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Povprečje točk padajoče"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Skupaj točk padajoče"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "iskalni niz mora vsebovati vsaj 3 znake"
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Rezultati iskanja uporabnikov"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Pridružen"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr "Nobeden uporabnik ne ustreza vašim kriterijem iskanja."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Uporabnik ni bil najden!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Podatki računa<br/>za %1<br/>Čas:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Ekipa:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Skupno točk ekipe:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Povprečno točk ekipe:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Ekipa: ni je"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Potrdite BOINC naslov elektronske pošte"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr ""
-"Prosim, obiščite sledečo povezavo, da potrdite elektronsko pošto vašega %1 "
-"računa:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Poslana potrditvena elektronska pošta"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr ""
-"Elektronska pošta je bila poslanana na %1. Obiščite vsebovano povezavo, da "
-"potrdite vaš naslov elektronske pošte."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Uporabnik ne obstaja."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Napaka v URL podatkih - potrditev naslova elektronske pošte ni mogoča"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Posodobitev podatkovne baze ni uspela - prosim, poskusite kasneje."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Potrdite naslov elektronske pošte"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Naslov elektronske pošte vašega računa je bil potrjen."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "Ta uporabnik nima profila"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Profil: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Podatki računa"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and "
-"password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr ""
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr ""
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr ""
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Šibki ključ računa"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or "
-"change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr ""
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr ""
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "ne najdem delovne enote"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Delovna enota %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "priznan rezultat"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "dodeljene točke"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "zadržano, čakajoč na dokončanje"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "minimalni kvorum"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "začetna replikacija"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "največje število napak/skupno/uspešnih opravil"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "napak"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "potrjevanje"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Čakajoče"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Glavna stran"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Avtorske pravice"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Ustvarjeno"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr "Vaše osebno ozadje."
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr ""
-"Povejte nam o vas. Poveste nam lahko iz kje ste, vašo starost, poklic, "
-"hobije ali karkoli drugega o vas."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Vaše mnenje o %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr ""
-"Povejte nam vaše misli o %1<ol>\n"
-"    <li>Zakaj poganjate %1?\n"
-"    <li>Kakšni so vaši pogled na projekt?\n"
-"    <li>Vaši predlogi?\n"
-"    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Barvna shema za grafiko"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Maksimalno procesorja %za grafiko%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Poganjaj le izbrane aplikacije"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr ""
-"Če ni na voljo dela za izbrane aplikacije, sprejemate delo od drugih "
-"aplikacij?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(vse aplikacije)"
-
-#, fuzzy
-#~ msgid "Error:"
-#~ msgstr "Napaka"
-
-#~ msgid "Account creation is disabled"
-#~ msgstr "Ustvarjanje računov je onemogočeno"
-
-#~ msgid "Account creation is currently disabled. Please try again later."
-#~ msgstr "Ustvarjanje računov je trenutno onemogočeno. Prosim, poskusite kasneje."
-
-#, fuzzy
-#~ msgid ""
-#~ "These apply to all BOINC projects in which you participate.<br>\n"
-#~ "             On computers participating in multiple projects, the most "
-#~ "recently modified preferences will be used."
-#~ msgstr ""
-#~ "To velja za vse BOINC projekte, v katerih sodelujete. <br>\n"
-#~ "             Na računalnikih z več priklopljenimi projekti bodo uporabljene "
-#~ "nazadnje spremenjene nastavitve."
-
-#~ msgid "No such task"
-#~ msgstr "Ni takega opravila"
-
-#, fuzzy
-#~ msgid ""
-#~ "Computer is connected to the Internet about every %1 Leave blank or 0 if "
-#~ "always connected. %2 BOINC will try to maintain at least this much work (max "
-#~ "10 days). %3"
-#~ msgstr ""
-#~ "Računalnik je povezan na Internet približno vsakih %1 Pustite prazno ali 0, "
-#~ "če je vedno povezan. %2 BOINC bo poskusil vzdrževati vsaj toliko dela. %3"
-
-#~ msgid "Maintain enough work for an additional"
-#~ msgstr "Vzdržuj dovolj dela za dodatnih"
-
-#~ msgid "Update failed: "
-#~ msgstr "Posodobitev ni uspela:"
-
-#~ msgid "Provides %1limited access%2 to your account"
-#~ msgstr "Priskrbi %1omejen dostop%2 do vašega računa"
-
-#, fuzzy
-#~ msgid ""
-#~ "Don't use this form. Just run BOINC, select Add Project, and enter an email "
-#~ "address and password."
-#~ msgstr ""
-#~ "OPOMBA: Če uporabljate BOINC različico 5.2 ali novejšo z BOINC Upraviteljem, "
-#~ "ne uporabljajte tega obrazca. Samo poženite BOINC, izberite Pripni projet "
-#~ "in vnesi naslov elektronske pošte in geslo."
-
-#, fuzzy
-#~ msgid "Your report has been recorded. Thanks you for your input."
-#~ msgstr "Vaše priporočilo je bilo zabeleženo."
-
-#~ msgid "Search type"
-#~ msgstr "Tip iskanja"
-
-#~ msgid "User names starting with"
-#~ msgstr "Uporabniško ime se začne z"
-
-#, fuzzy
-#~ msgid ""
-#~ "Your 'weak account key' lets you link a computer to your account without "
-#~ "giving it the ability to log in to your account or to change it in any way."
-#~ msgstr ""
-#~ "Vaš 'šibki ključ računa' vam dovoli pripeti računalnike na vaš račun pri tem "
-#~ "projektu, brez da bi se bilo možno prijaviti v račun ali ga kakorkoli "
-#~ "spremeniti."
-
-#~ msgid ""
-#~ "This mechanism works only with projects that have upgraded their server "
-#~ "software 7 Dec 2007 or later."
-#~ msgstr ""
-#~ "Ta mehanizem deluje le pri projektih, ki so posodobili programsko opremo na "
-#~ "svojem strežniku na različico z datumom 7. december 2007 ali novejšo."
-
-#~ msgid "Your weak account key for this project is:"
-#~ msgstr "Vaš šibki uporabniški ključ za ta projekt je:"
-
-#~ msgid ""
-#~ "To use your weak account key on a given host, find or create the 'account "
-#~ "file' for this project. This file has a name of the form "
-#~ "<b>account_PROJECT_URL.xml</b>. The account file for %1 is <b>%2</b>."
-#~ msgstr ""
-#~ "Da na danem gostitelju uporabite vaš šibki ključ računa, poiščite ali "
-#~ "ustvarite 'datoteko računov' za ta projekt. Ta datoteka ima obliko "
-#~ "<b>račun_URL_PROJEKTA.xml</b>.Datoteka računov za %1 je <b>%2</b>."
-
-#~ msgid "Create this file if needed. Set its contents to:"
-#~ msgstr "Če je potrebno, ustvarite to datoteko. Njeno vsebino nastavite na:"
-
-#~ msgid ""
-#~ "Your weak account key is a function of your password. If you change your "
-#~ "password, your weak account key changes, and your previous weak account key "
-#~ "becomes invalid."
-#~ msgstr ""
-#~ "Vaš šibki ključ računa je funkcija vašega gesla. Če spremenite vaše geslo, "
-#~ "se vaš šibki ključ računa spremeni in vaš prejšnji šibki ključ računa "
-#~ "postane neveljaven."
-
-#~ msgid "Account key"
-#~ msgstr "Ključ računa"
-
-#~ msgid "Provides full access to your account"
-#~ msgstr "Priskrbi poln dostop do vašega računa"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Uredi"
-
-#~ msgid "No thread with id %1. Please check the link and try again."
-#~ msgstr ""
-#~ "Tema s tem ID %1 ne obstaja. Prosim, preverite povezavo in poskusite "
-#~ "znova."
-
-#~ msgid "Request not found"
-#~ msgstr "Prošnja ni najdena"
-
-#~ msgid "%1 has added you as a friend."
-#~ msgstr "%1 vas je dodal(-a) kot prijatelja."
-
-#~ msgid "Account data for %1"
-#~ msgstr "Podatki o računu za %1"
-
-#~ msgid "couldn't create message board"
-#~ msgstr "ni uspelo ustvariti sporočilnice"
-
-#~ msgid "message board not found"
-#~ msgstr "sporočilnica ni najdena"
-
-#~ msgid "no such forum"
-#~ msgstr "ni takšnega foruma"
-
-#~ msgid "unknown command %1"
-#~ msgstr "neznan ukaz %1"
-
-#~ msgid "ERROR: %1 does not exist!  Cannot create combo box.<br>"
-#~ msgstr "NAPAKA: %1 ne obstaja!  Ne morem ustvariti kombo izbirnika.<br>"
-
-#~ msgid ""
-#~ "To protect the project's webpages from spam, we kindly ask you to type in "
-#~ "the two words shown in the image:<br>\n"
-#~ msgstr ""
-#~ "Za zaščito spletne strani projekta pred smetjem, vas vljudno prosimo, da "
-#~ "napišete besedi, prikazani na sliki:<br>\n"
-
-#~ msgid "Last %1"
-#~ msgstr "Zadnjih %1"
-
-#~ msgid "CHARSET"
-#~ msgstr "nabor znakov"
-
-#~ msgid "Language symbol"
-#~ msgstr "Simbol jezika"
-
-#~ msgid "Resource share and graphics"
-#~ msgstr "Delitev virov in grafika"
-
-#~ msgid "fll"
-#~ msgstr "fll"
-
-#~ msgid "Tasks for computer %1"
-#~ msgstr "Opravila za računalnik %1"
diff --git a/locale/sl/BOINC-Setup.po b/locale/sl/BOINC-Setup.po
old mode 100755
new mode 100644
diff --git a/locale/sl/BOINC-Web.po b/locale/sl/BOINC-Web.po
old mode 100755
new mode 100644
diff --git a/locale/sr at latin/BOINC-Client.mo b/locale/sr at latin/BOINC-Client.mo
index b07969d..45ea8ad 100644
Binary files a/locale/sr at latin/BOINC-Client.mo and b/locale/sr at latin/BOINC-Client.mo differ
diff --git a/locale/sr at latin/BOINC-Client.po b/locale/sr at latin/BOINC-Client.po
index efa169e..d05a12f 100644
--- a/locale/sr at latin/BOINC-Client.po
+++ b/locale/sr at latin/BOINC-Client.po
@@ -66,23 +66,23 @@ msgstr "Preuzimanje"
 
 #: log_flags.cpp:269 log_flags.cpp:449
 msgid "Unexpected text in cc_config.xml"
-msgstr "Neočekivani tekst u cc_config.kml"
+msgstr "Neočekivani tekst u cc_config.xml"
 
 #: log_flags.cpp:423 log_flags.cpp:475
 msgid "Unrecognized tag in cc_config.xml"
-msgstr "Unrecognized tag u cc_config.kml"
+msgstr "Unrecognized tag u cc_config.xml"
 
 #: log_flags.cpp:440
 msgid "Missing start tag in cc_config.xml"
-msgstr "Nedostaje početna oznaka u cc_config.kml"
+msgstr "Nedostaje početna oznaka u cc_config.xml"
 
 #: log_flags.cpp:465
 msgid "Error in cc_config.xml options"
-msgstr "Greška u opcijama cc_config.kml"
+msgstr "Greška u opcijama cc_config.xml"
 
 #: log_flags.cpp:483
 msgid "Missing end tag in cc_config.xml"
-msgstr "Nedostaje završna oznaka u cc_config.kml"
+msgstr "Nedostaje završna oznaka u cc_config.xml"
 
 #: ../sched/handle_request.cpp:307
 msgid "Invalid or missing account key.  To fix, remove and add this project."
@@ -96,7 +96,7 @@ msgstr "Neispravan ključ kod potpisivanje. Da biste rešili, uklonite i dodajte
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
-msgstr "Projekat je promenio svoj bezbednosni ključ . Molimo Vas da uklonite i dodajte ovaj projekat ."
+msgstr "Projekat je promenio svoj bezbednosni ključ. Molimo Vas da uklonite i dodajte ovaj projekat."
 
 #: ../sched/handle_request.cpp:943
 msgid "This project doesn't support operating system"
@@ -109,7 +109,7 @@ msgstr "Ovaj projekat ne podržava tip procesora"
 #: ../sched/handle_request.cpp:993
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
-msgstr "Vaš BOINC klijent softver je previše star. Molimo vas da instalirate aktuelnu verziju ."
+msgstr "Vaš BOINC klijent softver je previše star. Molimo vas da instalirate aktuelnu verziju."
 
 #: ../sched/handle_request.cpp:1259
 msgid "This project doesn't support computers of type"
@@ -129,12 +129,12 @@ msgstr "Upgrade to the latest vozača da koristi sve GPU aplikacija ovog projekt
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
-msgstr "Novija verzija BOINC je potrebno da koristite NVIDIA GPU ; nadogradite na trenutnu verziju"
+msgstr "Novija verzija BOINC je potrebno da koristite NVIDIA GPU; nadogradite na trenutnu verziju"
 
 #: ../sched/sched_send.cpp:1146
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
-msgstr "An % s GPU potrebna za pokretanje zadataka za ovaj projekat"
+msgstr "An %s GPU potrebna za pokretanje zadataka za ovaj projekat"
 
 #: ../sched/sched_send.cpp:1262
 msgid "No tasks are available for the applications you have selected."
@@ -146,18 +146,18 @@ msgstr "Vaš tip računar ne podržava ovaj projekat"
 
 #: ../sched/sched_send.cpp:1294
 msgid "Newer BOINC version required; please install current version"
-msgstr "Novije BOINC verzija potrebno ; instalirajte aktuelnu verziju"
+msgstr "Novije BOINC verzija potrebno; instalirajte aktuelnu verziju"
 
 #: ../sched/sched_send.cpp:1305
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
-msgstr "Zadaci za % s su dostupni , ali podešavanjima su postavljeni da ih ne prihvataju"
+msgstr "Zadaci za %s su dostupni, ali podešavanjima su postavljeni da ih ne prihvataju"
 
 #: ../sched/sched_types.cpp:254
 msgid "Unknown app name in app_info.xml"
-msgstr "Nepoznato ime aplikacija u app_info.kml"
+msgstr "Nepoznato ime aplikacija u app_info.xml"
 
 #: ../sched/sched_version.cpp:214
 msgid "Your app_info.xml file doesn't have a usable version of"
-msgstr "Vaš app_info.kml fajl nema korisne verziju"
+msgstr "Vaš app_info.xml fajl nema korisne verziju"
diff --git a/locale/sr at latin/BOINC-Setup.mo b/locale/sr at latin/BOINC-Setup.mo
index 6df57d3..b3b460d 100644
Binary files a/locale/sr at latin/BOINC-Setup.mo and b/locale/sr at latin/BOINC-Setup.mo differ
diff --git a/locale/sr at latin/BOINC-Setup.po b/locale/sr at latin/BOINC-Setup.po
index ae022ea..fc1ecf7 100644
--- a/locale/sr at latin/BOINC-Setup.po
+++ b/locale/sr at latin/BOINC-Setup.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-11-20 11:51+0000\n"
+"PO-Revision-Date: 2016-06-22 14:23+0000\n"
 "Last-Translator: Sebastiano Pistore <olatusrooc at virgilio.it>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/boinc/boinc/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
diff --git a/locale/sv/BOINC-Client.mo b/locale/sv/BOINC-Client.mo
index 2cf722e..abc6ba7 100644
Binary files a/locale/sv/BOINC-Client.mo and b/locale/sv/BOINC-Client.mo differ
diff --git a/locale/sv/BOINC-Client.po b/locale/sv/BOINC-Client.po
index 0896841..ca5c63d 100644
--- a/locale/sv/BOINC-Client.po
+++ b/locale/sv/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Johan Holmström, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-03-13 15:48+0000\n"
-"Last-Translator: Rom Walton\n"
-"Language-Team: Swedish (http://www.transifex.com/projects/p/boinc/language/sv/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-13 14:14+0000\n"
+"Last-Translator: Johan Holmström\n"
+"Language-Team: Swedish (http://www.transifex.com/boinc/boinc/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Meddelande från kontohanteraren"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Meddelande från server"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "En del uppgifter kräver mer minne än dina inställningar tillåter.  Kontrollera inställningarna."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Kunde inte skriva tillståndsfil; kontrollera katalogbehörigheter"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "Miljövariabeln HTTP_PROXY måste specificera en HTTP-proxy"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Du använde fel URL för detta projekt.  När det känns bekvämt, ta bort detta projekt och lägg sedan till %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Detta projekt använder en gammal URL. När det passar, ta bort projektet, lägg sedan till %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "Syntaxfel i app_info.xml"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "Filen som det hänvisas till i app_info.xml finns inte: "
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "En ny version av BOINC är tillgänglig."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "Hämta"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "kan inte användas för CUDA eller OpenCL beräkningar med CUDA drivrutin 6.5 eller senare"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "Oväntad text i cc_config.xml"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "Okänd markering i cc_config.xml"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "cc_config.xml saknar startmarkering"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "Fel i alternativen för cc_config.xml"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "cc_config.xml saknar slutmarkering"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "För att lösa problemet kan du "
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "ändra projektinställningarna på projektets webbplats"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "ta bort GPU uteslutningar i filen cc_config.xml"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "ändra dina inställningar på din kontohanterares webbplats"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Ogiltig eller saknad kontonyckel.  För att rätta till, ta bort och lägg till detta projekt."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Ogiltig nyckel för kodsignatur.  För att rätta till, ta bort och lägg till detta projekt."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Projektet har ändrat sin säkerhetsnyckel.  Ta bort och lägg till detta projekt."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "Detta projekt stöder inte operativsystemet"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "Detta projekt stöder inte CPU-typen"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "Din BOINC-klientprogramvara är för gammal.  Installera aktuell version."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Detta projekt stöder inte datorer av typen"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Uppgradera till den senaste drivrutinen för att bearbeta uppgifter med din dators GPU"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Uppgradera till den senaste drivrutinen för att använda alla detta projekts GPU-program"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "En nyare version av BOINC behövs för att kunna använda din NVIDIA GPU; Uppgradera till aktuell version"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Det krävs en %s-GPU för att köra uppgifter för detta projekt"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Programmen du valde har inga uppgifter tillgängliga."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Din datortyp stöds inte av detta projekt"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Nyare BOINC-version krävs; vänligen installera aktuell version"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "Uppgifter för %s är tillgängliga, men dina inställningar är inställda på att inte acceptera dem"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "Okänt programnamn i app_info.xml"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "Din app_info.xml-fil har ingen användbar version av"
diff --git a/locale/sv/BOINC-Drupal.po b/locale/sv/BOINC-Drupal.po
new file mode 100644
index 0000000..1bf5f22
--- /dev/null
+++ b/locale/sv/BOINC-Drupal.po
@@ -0,0 +1,1756 @@
+# LANGUAGE translation of PROJECT
+# Copyright (c) YEAR NAME <EMAIL at ADDRESS>
+# 
+# Translators:
+# Christian Beer <christian.beer at posteo.de>, 2016
+# Frans Ingelstam <02frasse11 at gmail.com>, 2016
+# Henrik Mattsson-Mårn <h at reglage.net>, 2016
+# Johan Holmström, 2016
+# Urban Berggren <pudberggren at icloud.com>, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-10-10 12:10+0000\n"
+"Last-Translator: Johan Holmström\n"
+"Language-Team: Swedish (http://www.transifex.com/boinc/boinc/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Reject profile"
+msgstr "Avvisa profil"
+
+msgid "Ban user"
+msgstr "Stäng av användaren"
+
+msgid "I'm new"
+msgstr "Jag är ny"
+
+msgid "I'm a BOINC user"
+msgstr "Jag är en BOINC-användare"
+
+msgid "Authenticator login"
+msgstr "Autentiseringsinloggning"
+
+msgid ""
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Du måste tjäna @count poäng för att kunna göra inlägg på denna sida."
+
+msgid "Generic"
+msgstr "Allmän"
+
+msgid "Home"
+msgstr "Hem"
+
+msgid "Work"
+msgstr "Arbete"
+
+msgid "School"
+msgstr "Skola"
+
+msgid "yes"
+msgstr "ja"
+
+msgid "no"
+msgstr "nej"
+
+msgid "Resource settings"
+msgstr "Resursinställningar"
+
+msgid "Resource share"
+msgstr "Resursfördelning"
+
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Används för att avgöra resurstilldelningen till detta projekt. Exempel: Om du deltar i två BOINC projekt med resursfördelningarna 100 och 200, då kommer det först projektet att tilldelas 1/3 av resurserna och det andra projektet kommer att få 2/3 av resurserna."
+
+msgid "Use CPU"
+msgstr "Använd CPU"
+
+msgid "Enforced by version @number"
+msgstr "Fungerar från version @number"
+
+msgid "Use NVIDIA GPU"
+msgstr "Använd NVIDIA GPU"
+
+msgid "Use ATI GPU"
+msgstr "Använd ATI GPU"
+
+msgid "Use INTEL GPU"
+msgstr "Använd INTEL GPU"
+
+msgid "Beta settings"
+msgstr "Beta inställningar"
+
+msgid "Run test applications?"
+msgstr "Använd test applikationer?"
+
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Detta hjälper oss att utveckla applikationerna, men kan innebära att jobb misslyckas på din dator"
+
+msgid " Default value: @default"
+msgstr "Standardvärde: @default"
+
+msgid "Applications"
+msgstr "Applikationer"
+
+msgid "Default set"
+msgstr "Standardinställning"
+
+msgid "Set used for new computers"
+msgstr "Använd dessa inställningar för ny datorer"
+
+msgid "Save changes"
+msgstr "Spara ändringar"
+
+msgid "Cancel"
+msgstr "Avbryt"
+
+msgid "Show comparison view"
+msgstr "Visa jämförande vy"
+
+msgid "Comment form"
+msgstr "Kommentarsformulär"
+
+msgid "Logout"
+msgstr "Logga ut"
+
+msgid "Join now"
+msgstr "Gå med nu"
+
+msgid "Account"
+msgstr "Konto"
+
+msgid "Server status"
+msgstr "Serverstatus"
+
+msgid "Language"
+msgstr "Språk"
+
+msgid "Create content"
+msgstr "Skapa innehåll"
+
+msgid "General settings"
+msgstr "Standardinställningar"
+
+msgid "Name"
+msgstr "Namn"
+
+msgid "Time zone"
+msgstr "Tidszon"
+
+msgid "Notification settings"
+msgstr "Meddelandeinställningar"
+
+msgid "Receive email notification for private messages?"
+msgstr "Skicka e-post vid nya privata meddelanden?"
+
+msgid "Receive email notification for friend requests?"
+msgstr "Skicka e-post vid vänförfrågningar?"
+
+msgid "Language settings"
+msgstr "Språkinställningar"
+
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Detta kontos standardspråk för e-post och föredraget språk för visning av hemsidan."
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "Om du har en <a href=\"@gravatar-check\">giltig Gravatar</a> kopplad till din e-postadress så kommer den att användas som din användarbild."
+
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Din Gravatar kommer inte att användas om du laddar upp en användarbild."
+
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "Om du har en <a href=\"@gravatar-check\">giltig Gravatar</a> kopplad till din e-post adress, använd den som din användarbild."
+
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Gravatar kommer inte att visas om en användarbild laddas upp."
+
+msgid "Avatar settings"
+msgstr "Användarbildsinställningar"
+
+msgid "This is not available until your profile is set up."
+msgstr "Detta är inte tillgängligt förrän du skapat en profil."
+
+msgid "Create a profile"
+msgstr "Skapa en profil"
+
+msgid "Upload an avatar"
+msgstr "Ladda upp en användarbild"
+
+msgid "Forum settings"
+msgstr "Foruminställningar"
+
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "I diskussionstrådar visa upp till @comments_per_page"
+
+msgid "comments per page"
+msgstr "kommentarer per sida"
+
+msgid "Sort comments in discussions"
+msgstr "Sortera kommentarer i diskussioner"
+
+msgid "Newest post first"
+msgstr "Nyaste inlägget först"
+
+msgid "Oldest post first"
+msgstr "Äldsta inlägget först"
+
+msgid "Signature"
+msgstr "Signatur"
+
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "Din signatur kommer att visas offentligt i slutet av dina kommentarer."
+
+msgid "Hide signatures in forums"
+msgstr "Göm signaturer i forumen"
+
+msgid "Privacy settings"
+msgstr "Sekretessinställningar"
+
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Är det OK för @project och ditt lag (om något) att skicka e-post till dig?"
+
+msgid "Should @project show your computers on its web site?"
+msgstr "Ska @project visa dina datorer på dess webbplats?"
+
+msgid "Id"
+msgstr "Id"
+
+msgid "Founder"
+msgstr "Grundare"
+
+msgid "Country"
+msgstr "Land"
+
+msgid "Recent average credit"
+msgstr "Nyligen genomsnittlig kredit"
+
+msgid "Members"
+msgstr "Medlemmar"
+
+msgid "Total Credit"
+msgstr "Total poäng"
+
+msgid "User ID"
+msgstr "Användar ID"
+
+msgid "User"
+msgstr "Användare"
+
+msgid "Admin since"
+msgstr "Administratör sedan"
+
+msgid "Team ID"
+msgstr "Lag ID"
+
+msgid "User joined"
+msgstr "Medlem sedan"
+
+msgid "Timestamp"
+msgstr "Tidsstämpel"
+
+msgid "Account Key"
+msgstr "Kontonyckel"
+
+msgid "Member since"
+msgstr "Medlem sedan"
+
+msgid "CPID"
+msgstr "CPID"
+
+msgid "Email Address"
+msgstr "E-postadress"
+
+msgid "Password Hash"
+msgstr "Lösenords hash"
+
+msgid "Postal Code"
+msgstr "Postkod"
+
+msgid "Send Email"
+msgstr "Skicka e-post"
+
+msgid "Show Hosts"
+msgstr "Visa enheter"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Computer ID"
+msgstr "Dator-ID"
+
+msgid "Location"
+msgstr "Plats"
+
+msgid "While BOINC running, % of time work is allowed"
+msgstr "Medan Boinc körs, % av tiden som arbete är tillåtet"
+
+msgid "Average turnaround time"
+msgstr "Genomsnittlig handläggningstid"
+
+msgid "Created"
+msgstr "Skapades"
+
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "Medan Boinc körs, % av tiden som enheten har tillgång till Internet"
+
+msgid "Average CPU efficiency"
+msgstr "Genomsnittlig CPU-effektivitet"
+
+msgid "Free disk space"
+msgstr "Ledigt diskutrymme"
+
+msgid "Total disk space"
+msgstr "Totalt diskutrymme"
+
+msgid "Task duration correction factor"
+msgstr "Uppgifts varaktighets korrektionsfaktor"
+
+msgid "Avg. credit"
+msgstr "Genomsnittlig kredit"
+
+msgid "External IP address"
+msgstr "Extern IP-adress"
+
+msgid "Cross project ID"
+msgstr "ID för identifiering mellan projekt"
+
+msgid "Last IP address"
+msgstr "Senaste IP-adress"
+
+msgid "Cache"
+msgstr "Cache"
+
+msgid "Memory"
+msgstr "Minne"
+
+msgid "Swap space"
+msgstr "Växlingsfil"
+
+msgid "Maximum daily WU quota per CPU"
+msgstr "Maximal daglig jobbkvot per CPU"
+
+msgid "Average download rate"
+msgstr "Genomsnittlig nedladdningshastighet"
+
+msgid "Average upload rate"
+msgstr "Genomsnittlig uppladdningshastighet"
+
+msgid "Same IP address count"
+msgstr "Samma IP-adress räknare"
+
+msgid "% of time BOINC client is running"
+msgstr "% av tiden som Boinc körs"
+
+msgid "Operating system"
+msgstr "Operativsystem"
+
+msgid "Operating system version"
+msgstr "Operativsystemsversion"
+
+msgid "Measured floating point speed"
+msgstr "Uppmätt flyttalshastighet"
+
+msgid "Measured integer speed"
+msgstr "Uppmätt  heltals-hastighet"
+
+msgid "CPU model"
+msgstr "CPU modell"
+
+msgid "Number of processors"
+msgstr "Antal processorer"
+
+msgid "CPU"
+msgstr "CPU"
+
+msgid "Number of times client has contacted server"
+msgstr "Antal tillfällen klienten har kontaktat server"
+
+msgid "Last contact"
+msgstr "Senaste kontakt"
+
+msgid "Serial number"
+msgstr "Serienummer"
+
+msgid "Timezone"
+msgstr "Tidszon"
+
+msgid "Platform ID"
+msgstr "Plattforms ID"
+
+msgid "Task ID"
+msgstr "Uppgifts ID"
+
+msgid "Workunit ID"
+msgstr "Jobb ID"
+
+msgid "Host ID"
+msgstr "Enhets ID"
+
+msgid "Application ID"
+msgstr "Applikations ID"
+
+msgid "Application version"
+msgstr "Applikations version"
+
+msgid "Claimed credit"
+msgstr "Ansökt poäng"
+
+msgid "Client state"
+msgstr "Enhetstillstånd"
+
+msgid "CPU time"
+msgstr "CPU-tid"
+
+msgid "Run time"
+msgstr "Körtid"
+
+msgid "Exit status"
+msgstr "Avsluts status"
+
+msgid "Granted credit"
+msgstr "Beviljad poäng"
+
+msgid "Outcome"
+msgstr "Resultat"
+
+msgid "Received time"
+msgstr "Mottagen tid"
+
+msgid "Report deadline"
+msgstr "Rapporteringstidsgräns"
+
+msgid "Sent"
+msgstr "Skickad"
+
+msgid "Server state"
+msgstr "Servertillstånd"
+
+msgid "Stderr out"
+msgstr "Stderr logg"
+
+msgid "Validation state"
+msgstr "Valideringstillstånd"
+
+msgid "App ID"
+msgstr "App ID"
+
+msgid "Canonical credit"
+msgstr "Kanonisk poäng"
+
+msgid "Canonical result ID"
+msgstr "Kanoniskt resultat ID"
+
+msgid "Created time"
+msgstr "Skapades tid"
+
+msgid "Error mask"
+msgstr "Felkod"
+
+msgid "Minimum quorum"
+msgstr "Minsta beslutsmässiga antal"
+
+msgid "Max error tasks"
+msgstr "Störst antal misslyckade arbetsuppgifter"
+
+msgid "Max success tasks"
+msgstr "Störst antal lyckade arbetsuppgifter"
+
+msgid "Max total tasks"
+msgstr "Största totala antalet arbetsuppgifter"
+
+msgid "Needs validation"
+msgstr "Behöver godkännande"
+
+msgid "Initial replication"
+msgstr "Inledande replikering"
+
+msgid "Target number of results"
+msgstr "Mål antal resultat"
+
+msgid "Application version ID"
+msgstr "Applikation versions ID"
+
+msgid "Plan class"
+msgstr "Metodklassificering"
+
+msgid "Version number"
+msgstr "Versions nummer"
+
+msgid "Computer"
+msgstr "Dator"
+
+msgid "App version ID"
+msgstr "App versions ID"
+
+msgid "Consecutive valid tasks"
+msgstr "Godkända arbetsuppgifter i följd"
+
+msgid "Number of tasks completed"
+msgstr "Antal slutförda arbetsuppgifter"
+
+msgid "Max tasks per day"
+msgstr "Störst antal arbetsuppgifter per dag"
+
+msgid "Number of tasks today"
+msgstr "Antal arbetsuppgifter idag"
+
+msgid "Manage subscriptions"
+msgstr "Hantera prenumerationer"
+
+msgid "Avg credit"
+msgstr "Genomsnittlig poäng"
+
+msgid "Total credit"
+msgstr "Total poäng"
+
+msgid "More"
+msgstr "Mer"
+
+msgid "Tasks"
+msgstr "Arbetsuppgifter"
+
+msgid "Computers hidden"
+msgstr "Dolda datorer"
+
+msgid "This user has chosen not to show information about their computers."
+msgstr "Denna användare har valt att inte visa information rörande deras datorer."
+
+msgid "no projects..."
+msgstr "inga projekt..."
+
+msgid "Moderation"
+msgstr "Moderering"
+
+msgid "Unvetted profiles"
+msgstr "Ej granskade profiler"
+
+msgid "Inbox"
+msgstr "Inkorg"
+
+msgid "Compose new"
+msgstr "Skriv nytt"
+
+msgid "Posts contributed"
+msgstr "Antal inlägg"
+
+msgid "Friends (@count)"
+msgstr "Vänner (@count)"
+
+msgid "Welcome back!"
+msgstr "Välkommen tillbaka!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home är ett program som använder din dators inaktiva tid till att köra en skärmsläckare för att söka efter gravitationsvågor från roterande neutronstjärnor (också kallade pulsarer) genom att använda data från gravitationsvågsdetektorn LIGO."
+
+msgid "Learn more"
+msgstr "Lär dig mer"
+
+msgid "View account"
+msgstr "Visa konto"
+
+msgid "User of the day"
+msgstr "Dagens medlem"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "Över 500 000 volontärer som bara blir fler och fler."
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "Poäng per dag"
+
+msgid "View user profile."
+msgstr "Visa användarprofil"
+
+msgid "Profile awaiting moderator approval"
+msgstr "Profilen inväntar godkännande från moderator"
+
+msgid "Background"
+msgstr "Bakgrund"
+
+msgid "Opinion"
+msgstr "Åsikt"
+
+msgid "Enter your password to save changes"
+msgstr "Ange ditt lösenord för att spara ändringar"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "Ange ditt nuvarande lösenord om du ändrar din E-post-\nadress eller lösenord."
+
+msgid "BOINC user ID"
+msgstr "BOINC användar-ID"
+
+msgid "Drupal user ID"
+msgstr "Drupal användar-ID"
+
+msgid "Account key"
+msgstr "Konto-nyckel"
+
+msgid "Weak account key"
+msgstr "Svag kontonyckel"
+
+msgid "Cross-project ID"
+msgstr "ID för identifiering mellan projekt"
+
+msgid "Change password"
+msgstr "Ändra lösenord"
+
+msgid "Presets"
+msgstr "Förinställningar"
+
+msgid "Standard"
+msgstr "Standard"
+
+msgid "Maximum"
+msgstr "Maximal"
+
+msgid "Green"
+msgstr "Energieffektiv"
+
+msgid "Minimum"
+msgstr "Minimal"
+
+msgid "Custom"
+msgstr "Egen"
+
+msgid "Update preset"
+msgstr "Uppdatera förinställd"
+
+msgid "Advanced settings"
+msgstr "Avancerade inställningar"
+
+msgid "Processor usage"
+msgstr "Processoranvändning"
+
+msgid "Run while computer is on battery power?"
+msgstr "Kör arbetsuppgifter medan datorn går på batteri?"
+
+msgid "Only applies to portable computers"
+msgstr "Gäller bara för bärbara datorer"
+
+msgid "Run while computer is in use?"
+msgstr "Kör arbetsuppgifter med datorn används?"
+
+msgid "Run GPU work while computer is in use?"
+msgstr "Kör GPU-arbetsuppgifter medan datorn används?"
+
+msgid "\"In use\" means mouse/keyboard activity in last"
+msgstr "\"Används\" avser mus/tangentbordsaktivitet de senaste"
+
+msgid "minutes"
+msgstr "minuter"
+
+msgid "Suspend work if no mouse/keyboard activity in last"
+msgstr "Pausa arbetsuppgifter om ingen mus/tangentbordsaktivitet senaste"
+
+msgid "Needed to enter low-power mode on some computers"
+msgstr "Behövs för att gå ner i energisparläge på vissa datorer"
+
+msgid "Suspend work if CPU usage is above"
+msgstr "Pausa arbetsuppgifter vid CPU-användning över"
+
+msgid "0 means no restriction. Enforced by version @number"
+msgstr "0 betyder ingen restriktion. Fungerar från version @number"
+
+msgid "Do work only between the hours of:"
+msgstr "Kör arbetsuppgifter endast mellan klockan:"
+
+msgid "and"
+msgstr "och"
+
+msgid "No restriction if equal"
+msgstr "Ingen restriktion om lika"
+
+msgid "Leave tasks in memory while suspended?"
+msgstr "Lämna arbetsuppgifter i minnet medan de är stoppade?"
+
+msgid "Suspended tasks will consume swap space if \"yes\""
+msgstr "Stoppade arbetsuppgifter kommer att använda växlingsminne om \"Ja\""
+
+msgid "Switch between tasks every"
+msgstr "Växla mellan arbetsuppgifter var"
+
+msgid "Recommended: @period minutes"
+msgstr "Rekommenderat: @period minuter"
+
+msgid "On multiprocessors, use at most"
+msgstr "På flerkärniga processorer, använd upp till"
+
+msgid "processors"
+msgstr "processorer"
+
+msgid "Set to 0 for no limit"
+msgstr "Ange 0 för att vara utan begränsning"
+
+msgid "% of the processors"
+msgstr "% av antalet processorer"
+
+msgid "Use at most"
+msgstr "Använd som mest"
+
+msgid "% of the CPU time"
+msgstr "% av processortiden"
+
+msgid "Can be used to reduce CPU heat"
+msgstr "Kan användas för att minska processortemperaturen"
+
+msgid "Disk and memory usage"
+msgstr "Hårddisk och minnesanvändning"
+
+msgid "Disk: use at most"
+msgstr "Hårddisk, använd som mest"
+
+msgid "Disk: leave free at least"
+msgstr "Hårddisk, lämna som minst ledigt"
+
+msgid "Values smaller than @number are ignored"
+msgstr "Värden mindre än @number ignoreras"
+
+msgid "% of total"
+msgstr "% av total"
+
+msgid "Tasks checkpoint to disk at most every"
+msgstr "Arbetsuppgifter sparar återställningspunkt som oftast var"
+
+msgid "seconds"
+msgstr "sekunder"
+
+msgid "Swap space: use at most"
+msgstr "Växlingsminne, använd som mest"
+
+msgid "Memory: when computer is in use, use at most"
+msgstr "Minne, när datorn används, använd som mest"
+
+msgid "Memory: when computer is not in use, use at most"
+msgstr "Minne, när datorn inte används, använd som mest"
+
+msgid "Network usage"
+msgstr "Nätverksanvändning"
+
+msgid "Computer is connected to the Internet about every"
+msgstr "Datorn ansluts till Internet ungefär var"
+
+msgid "days"
+msgstr "dagar"
+
+msgid ""
+"Leave blank or 0 if always connected. @project will try to maintain at least"
+" this much work."
+msgstr "Lämna tomt eller sätt till 0 om datorn alltid är ansluten. @project kommer att försöka ha så här mycket jobb redo."
+
+msgid "Maintain enough work for an additional"
+msgstr "Lagra ytterligare jobb motsvarande"
+
+msgid "Confirm before connecting to Internet?"
+msgstr "Bekräfta innan anslutning till Internet"
+
+msgid "Matters only if you have a modem, ISDN, or VPN connection"
+msgstr "Användbart endast om du har modem-, ISDN- eller VPN-anslutning."
+
+msgid "Disconnect when done?"
+msgstr "Koppla ner anslutningen när överföringarna är färdiga?"
+
+msgid "Maximum download rate"
+msgstr "Högsta nerladdningshastighet"
+
+msgid "Maximum upload rate"
+msgstr "Högsta uppladdningshastighet"
+
+msgid "Use network only between the hours of:"
+msgstr "Använd nätverket endast mellan klocka:"
+
+msgid "Transfer at most"
+msgstr "Överför som mest"
+
+msgid "Skip image file verification?"
+msgstr "Skippa bildfilsverifiering?"
+
+msgid ""
+"Check this ONLY if your Internet provider modifies image files (UMTS does "
+"this, for example). Skipping verification reduces the security of BOINC."
+msgstr "Välj bara detta om din Internetleverantör modifierar bildfiler. Att skippa verifieringen påverkar säkerheten för BOINC negativt."
+
+msgid "search"
+msgstr "sök"
+
+msgid "What is @this_project?"
+msgstr "Vad är @this_project?"
+
+msgid "Login"
+msgstr "Logga in"
+
+msgid "BOINC"
+msgstr "BOINC"
+
+msgid "Project"
+msgstr "Projekt"
+
+msgid "No @type tasks"
+msgstr "Inga @type arbetsuppgifter"
+
+msgid "There are no tasks of this type on record"
+msgstr "Det finns inga arbetsuppgifter av denna typ att visa"
+
+msgid "Details"
+msgstr "Detaljer"
+
+msgid "Password"
+msgstr "Lösenord"
+
+msgid "Enter the password that accompanies your username."
+msgstr "Ange lösenordet för ditt konto. "
+
+msgid "Request new password"
+msgstr "Efterfråga nytt lösenord"
+
+msgid "Mark all topics read"
+msgstr "Markera alla trådar som lästa"
+
+msgid "Mark all forums read"
+msgstr "Markera alla forum som lästa"
+
+msgid ""
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
+msgstr "CAPTCHA verifierings fel: okänt CAPTCHA sessions ID. Kontakta webbplatsens administratör om problemet kvarstår."
+
+msgid "The answer you entered for the CAPTCHA was not correct."
+msgstr "Svaret du angav för CAPTCHA var inte korrekt."
+
+msgid "Access denied. You must login to view this page."
+msgstr "Åtkomst nekad. Du måste logga in för att visa denna sida."
+
+msgid "You are not authorized to access this page."
+msgstr "Du har inte åtkomst till denna sida."
+
+msgid "Disable rich-text"
+msgstr "Stäng av rich-text"
+
+msgid "Enable rich-text"
+msgstr "Använd rich-text"
+
+msgid "Teams"
+msgstr "Lag"
+
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "@project användare kan skapa lag. Du kan bara tillhöra ett lag åt gången. Du kan gå med i eller lämna ett lag när som helst. För att gå med i ett lag så besök det lagets sida och klicka på \"Gå med i det här laget\". Varje lag har en grundare som kan:"
+
+msgid "access team members' email addresses"
+msgstr "Se lagmedlemmarnas e-post adresser"
+
+msgid "edit the team's name and description"
+msgstr "ändra lagets namn och beskrivning"
+
+msgid "add or remove team admins"
+msgstr "lägga till eller ta bort lagadministratörer"
+
+msgid "remove members from the team"
+msgstr "ta bort medlemmar ur laget"
+
+msgid "disband a team if it has no members"
+msgstr "ta bort laget om det inte har några medlemmar"
+
+msgid "Search teams"
+msgstr "Sök lag"
+
+msgid "Create a new team"
+msgstr "Skapa ett nytt lag"
+
+msgid ""
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Om du inte kan hitta något lag som passar dig så kan du skapa ett lag."
+
+msgid "You must earn 1 more credit!"
+msgstr "Du måste intjäna 1 poäng till!"
+
+msgid "@count million ops/sec"
+msgstr "@count miljoner beräkningar/sekund"
+
+msgid "@rate KiB/sec"
+msgstr "@rate KIB/s"
+
+msgid "@count days"
+msgstr "@count dagar"
+
+msgid "Stderr output"
+msgstr "Stderr logg"
+
+msgid "Email address"
+msgstr "E-postadress"
+
+msgid "Enter your @s email address."
+msgstr "Ange din @s E-postadress."
+
+msgid "Log in"
+msgstr "Logga in"
+
+msgid "Sorry, unrecognized email address or password."
+msgstr "Tyvärr, okänd e-post adress eller felaktigt lösenord."
+
+msgid "Have you forgotten your password?"
+msgstr "Har du glömt ditt lösenord?"
+
+msgid "No results found..."
+msgstr "Inga resultat hittades..."
+
+msgid "Anonymous"
+msgstr "Anonym"
+
+msgid "Forgot password"
+msgstr "Glömt lösenord"
+
+msgid "authenticator-based login"
+msgstr "Autentiserings-baserad inloggning"
+
+msgid ""
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Ange din e-postadress för att ta emot instruktioner om hur du återställer ditt lösenord (eller använd !authenticator_login)"
+
+msgid "Send"
+msgstr "Skicka"
+
+msgid "Submitted by !username on !datetime"
+msgstr "Skickat av !username vid !datetime"
+
+msgid "Send message"
+msgstr "Sänd meddelande"
+
+msgid "Add as friend"
+msgstr "Lägg till som vän"
+
+msgid "Website"
+msgstr "Webbsida"
+
+msgid "Team"
+msgstr "Lag"
+
+msgid "Create new team"
+msgstr "Skapa ett nytt lag"
+
+msgid "Search"
+msgstr "Sök"
+
+msgid "Total credits"
+msgstr "Total poäng"
+
+msgid "Recent avg credits"
+msgstr "Nyligen genomsnittlig poäng"
+
+msgid "Type"
+msgstr "Typ"
+
+msgid "New members in last day"
+msgstr "Nya medlemmar senaste dagen"
+
+msgid "Total members"
+msgstr "Totalt antal medlemmar"
+
+msgid "Active members"
+msgstr "Aktiva medlemmar"
+
+msgid "Members with credit"
+msgstr "Medlemmar med poäng"
+
+msgid "Web site"
+msgstr "Webbsida"
+
+msgid "Description"
+msgstr "Beskrivning"
+
+msgid "BBcode help"
+msgstr "BBkod hjälp"
+
+msgid "Post comment"
+msgstr "Publicera inlägg"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Hem"
+
+msgid "The latest news from the @site_name project"
+msgstr "De senaste nyheterna från projektet @site_name"
+
+msgid "Hide"
+msgstr "Dölj"
+
+msgid "Hide this topic"
+msgstr "Dölj denna tråd"
+
+msgid "Lock"
+msgstr "Lås"
+
+msgid "Lock this thread for comments"
+msgstr "Lås denna tråd för nya kommentarer"
+
+msgid "Make sticky"
+msgstr "Fäst"
+
+msgid "Make this topic sticky"
+msgstr "Fäst denna tråd"
+
+msgid "moderation"
+msgstr "moderering"
+
+msgid "Reply"
+msgstr "Svara"
+
+msgid "Reply to this comment"
+msgstr "Svara detta inlägg"
+
+msgid "Quote"
+msgstr "Citera"
+
+msgid "Reply to this comment with quote"
+msgstr "Svara denna kommentar med citering"
+
+msgid "Edit"
+msgstr "Redigera"
+
+msgid "Edit this comment"
+msgstr "Redigera denna kommentar"
+
+msgid "Delete"
+msgstr "Radera"
+
+msgid "Delete this comment"
+msgstr "Radera denna kommentar"
+
+msgid "Hide this comment"
+msgstr "Dölj denna kommentar"
+
+msgid "Message @id"
+msgstr "Meddelande @id"
+
+msgid "Convert"
+msgstr "Konvertera"
+
+msgid "Convert this comment to a new topic"
+msgstr "Konvertera denna kommentar till en ny tråd"
+
+msgid "message @id"
+msgstr "meddelande @id"
+
+msgid " in response to !parent"
+msgstr "som svar till !parent"
+
+msgid "Post new comment"
+msgstr "Skriv nytt inlägg"
+
+msgid "Comments"
+msgstr "Kommentarer"
+
+msgid "discuss"
+msgstr "diskutera"
+
+msgid "n/a"
+msgstr "Inte tillgängligt"
+
+msgid "@time ago"
+msgstr "@time sedan"
+
+msgid "Threads"
+msgstr "Trådar"
+
+msgid "Posts"
+msgstr "Inlägg"
+
+msgid "Last post"
+msgstr "Senaste inlägg"
+
+msgid ""
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Vänligen vara ansvarig i vad du skriver och skriv inte inlägg som är stötande eller kränkande. Offensiva inlägg eller trådar kan raderas av moderatorerna utan förvarning eller diskussion. Svara inte på offensiva inlägg. Klicka på länken \"rapportera\" längst upp i inlägget att uppmärksamma moderatorerna på det."
+
+msgid "this project"
+msgstr "detta projekt"
+
+msgid ""
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Vi ber också att du håller alla diskussioner i forumet relaterade till @project eller BOINC med det lilla undantaget att i Science forumet kan du fritt diskutera allt som är relevant för den underliggande vetenskapen. Deltagare som är intresserade av bredare diskussioner bör göra det i inofficiella forum för @project."
+
+msgid "These message boards now support BBCode tags only."
+msgstr "Detta forum stödjer nu endast BBkod taggar."
+
+msgid "Featured"
+msgstr "Utvald"
+
+msgid "Locked"
+msgstr "Låst"
+
+msgid "Submitted on !datetime"
+msgstr "Skickades !datetime"
+
+msgid "Computers pending"
+msgstr "Datorer väntande"
+
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Denna användare har några associerade datorer än. Datorer kommer att synas när de tjänat in sina första poäng."
+
+msgid "Show IP address"
+msgstr "Visa IP-adress"
+
+msgid "Download the desktop software"
+msgstr "Ladda ned programvaran"
+
+msgid "Run the installer"
+msgstr "Kör installationsprogrammet"
+
+msgid "hours"
+msgstr "timmar"
+
+msgid "When prompted enter @siteurl"
+msgstr "När du uppmanas, ange @siteurl"
+
+msgid "Merge"
+msgstr "Slå ihop"
+
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Detta kommer att permanent radera enhet @id från ditt konto. Är du säker på att detta är OK?"
+
+msgid "Post topic"
+msgstr "Publicera"
+
+msgid "Leave team"
+msgstr "Lämna laget"
+
+msgid "Click here to revoke your membership with @this_team"
+msgstr "Klicka här för att dra tillbaka ditt medlemskap i @this_team"
+
+msgid "Leave this team"
+msgstr "Lämna detta lag"
+
+msgid "Request foundership"
+msgstr "Begär grundarstatus"
+
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Om lagets grundare inte längre är aktiv och du vill ta över rollen som grundare, klicka på knappen nedan för att begära grundarstatus för @this_team."
+
+msgid "Initiate request"
+msgstr "Initiera begäran"
+
+msgid "No active computers"
+msgstr "Inga aktiva datorer"
+
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Den här användaren har inga datorer som varit aktiva de senaste 30 dagarna."
+
+msgid "Clear"
+msgstr "Rensa"
+
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Detta kommer att ta bort alla inställningar för platsen @name. Är du säker?"
+
+msgid "Your community preferences have been updated."
+msgstr "Dina gemenskapsinställningar har uppdaterats."
+
+msgid "Combined preferences"
+msgstr "Kombinerade inställningar"
+
+msgid "Switch View"
+msgstr "Ändra vy"
+
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Detta kommer att ta bort alla inställningar för platsen @name. Är du säker?"
+
+msgid "Approve profile"
+msgstr "Godkänn profil"
+
+msgid "Approve this profile content"
+msgstr "Godkänn innehållet i denna profil"
+
+msgid "Reject this profile content"
+msgstr "Avvisa innehållet i denna profil"
+
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Dessa inställningar gäller för alla BOINC-projekt som du deltar i."
+
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "För datorer som är anslutna till flera projekt kommer de senast ändrade inställningarna att gälla."
+
+msgid "Preferences last modified: @mod_time"
+msgstr "Inställningarna ändrades senast: @mod_time"
+
+msgid "every"
+msgstr "varje"
+
+msgid "Add"
+msgstr "Lägg till"
+
+msgid "My team"
+msgstr "Mitt lag"
+
+msgid "You are a member of @team."
+msgstr "Du är medlem i @team"
+
+msgid "View my team"
+msgstr "Visa mitt lag"
+
+msgid "Manage team"
+msgstr "Hantera lag"
+
+msgid "View member list"
+msgstr "Visa medlemmslista"
+
+msgid "Member names and emails"
+msgstr "Medlemmarnas namn och e-post"
+
+msgid "View change history"
+msgstr "Visa förändringshistorik"
+
+msgid "See member activity"
+msgstr "Visa medlemmsaktivitet"
+
+msgid "Manage team message board"
+msgstr "Hantera lagets privata forum"
+
+msgid "Create or manage message board"
+msgstr "Skapa eller hantera ett forum"
+
+msgid "Remove members"
+msgstr "Ta bort medlemmar"
+
+msgid "Change founder"
+msgstr "Byt grundare"
+
+msgid "Manage team admins"
+msgstr "Hantera lagadministratörer"
+
+msgid "Edit team info"
+msgstr "Redigera lagets information"
+
+msgid "Remove team"
+msgstr "Ta bort laget"
+
+msgid "Team forum"
+msgstr "Lagforum"
+
+msgid "A discussion forum has been set up for team members."
+msgstr "Ett forum har skapats för lagets medlemmar."
+
+msgid "Enter forum"
+msgstr "Öppna forumet"
+
+msgid "Join team"
+msgstr "Gå med i lag"
+
+msgid "Click here to become a member of @this_team"
+msgstr "Klicka här för att bli medlem av @detta_lag"
+
+msgid "Join this team"
+msgstr "Gå med i detta lag"
+
+msgid "Choose type"
+msgstr "Välj typ"
+
+msgid "Team name"
+msgstr "Lagnamn"
+
+msgid "Text only, no HTML tags"
+msgstr "Endast text, inga HTML taggar"
+
+msgid "Team name -- HTML version (optional)"
+msgstr "Lagets namn - HTML version (frivilligt)"
+
+msgid "You may use limited HTML tags"
+msgstr "Du kan använda begränsade HTML taggar"
+
+msgid "Team website (optional)"
+msgstr "Lagets webbplats (frivilligt)"
+
+msgid "Displayed on the team's page"
+msgstr "Visas på lagsidan"
+
+msgid "Type of team"
+msgstr "Typ av lag"
+
+msgid "Accept new members?"
+msgstr "Acceptera nya medlemmar?"
+
+msgid "Description of team"
+msgstr "Beskrivning av laget"
+
+msgid "Create a team"
+msgstr "Skapa ett lag"
+
+msgid "Save team"
+msgstr "Spara laget"
+
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Om du redan kör BOINC, välj <i>Lägg till\nProjekt</i>."
+
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Om du kör kommandorads-versionen av BOINC,\nanvänd först BOINC Mananger-mjukvaran (eller någon annanstans om nödvändigt) för att skapa ett\nett konto till detta projekt, använd sedan det kontot till att ansluta med\nkommandorad-versionen."
+
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Om du kör en version av BOINC som är släppt före -5.0, vänligen\nuppgradera till en mer aktuell version för att skapa ett konto\ntill detta projekt."
+
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Om du glömt bort din e-postadress eller inte kan ta emot e-post via den adressen:"
+
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Om du har kör BOINC med det kontot kan du fortfarande komma åt det. Så här gör du:"
+
+msgid "BOINC documentation"
+msgstr "BOINC dokumentation"
+
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Gå till BOINC data mapp på din dator (se !boinc_wiki för hjälp att hitta mappen)."
+
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Leta på konto-filen för detta projekt; Den ska ha ett namn liknande %file (där projektets adress är %url)."
+
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Öppna filen i en textredigerare som t.ex. Anteckningar. Du bör se något i stil med:"
+
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "Markera och kopiera strängen mellan <authenticator> och </authenticator> (%auth i exemplet ovan)."
+
+msgid "Paste the string into the field below, and click OK."
+msgstr "Klistra in strängen i fältet nedan och klicka på OK."
+
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Du kommer nu att vara inloggad; uppdatera din e-postadress och ditt lösenord."
+
+msgid "Log in with authenticator"
+msgstr "Logga in med autentisering"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Post new topic"
+msgstr "Skapa ny tråd"
+
+msgid "Create team message board"
+msgstr "Skapa lagforum"
+
+msgid "Message board title"
+msgstr "Forumtitel"
+
+msgid "Minimum time between posts"
+msgstr "Minsta tid mellan inlägg"
+
+msgid "Seconds"
+msgstr "Sekunder"
+
+msgid "Minimum total credit to post"
+msgstr "Minsta poäng för att kunna skriva inlägg"
+
+msgid "Minimum avg credit to post"
+msgstr "Minsta genomsnittlig poäng för att kunna skriva inlägg"
+
+msgid "Allow public to read board?"
+msgstr "Tillåt alla att läsa i forumet?"
+
+msgid "Create message board"
+msgstr "Skapa forum"
+
+msgid "About message boards"
+msgstr "Om forumet"
+
+msgid "You may create a message board for use by @team"
+msgstr "Du kan skapa ett eget forum för @team"
+
+msgid "Only members may post"
+msgstr "Endast medlemmar kan göra inlägg"
+
+msgid "Only members may read (optional)"
+msgstr "Endast medlemmar kan läsa (frivilligt)"
+
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Grundare & Lagadministratörer har moderatorsbehörighet"
+
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (samma de senaste @count gångerna)"
+
+msgid "Revise or post comment"
+msgstr "Förhandsgranska eller publicera inlägget"
+
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Ibland skapar BOINC flera identiteter för samma dator av misstag. Du kan rätta till detta genom att slå ihop den äldre identiteterna med den nyaste."
+
+msgid ""
+"Check the computers that are the same as @name (created on @date at @time "
+"with computer ID @id)"
+msgstr "Markera de datorer som är de samma som @name (skapad @date kl. @time med dator ID @id)"
+
+msgid "Computer @old_id has been merged successfully into @id."
+msgstr "Dator @old_id har slagits ihop till det nya IDt @id."
+
+msgid "parent removed"
+msgstr "förälder borttagen"
+
+msgid "Remove"
+msgstr "Ta bort"
+
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
+msgstr "Autentisering krävs för att ändra e-postadress eller för att byta lösenord."
+
+msgid "Make unsticky"
+msgstr "Fäst inte"
+
+msgid "Remove sticky status from this topic"
+msgstr "Fäst inte denna tråd"
+
+msgid "Unhide"
+msgstr "Visa"
+
+msgid "Unhide this comment"
+msgstr "Gör denna kommentar synlig"
+
+msgid "Unpublished"
+msgstr "Ej publicerad"
+
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "Datorerna @old_ids har slagits samman till det nya IDt @id."
+
+msgid "Joined"
+msgstr "Gick med"
+
+msgid "Credit"
+msgstr "Poäng"
+
+msgid "RAC"
+msgstr "RAC"
+
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "Inget konto finns med e-postadressen: @email - klicka på \"Skapa nytt konto\" för att registrera dig"
+
+msgid "started discussion"
+msgstr "startade diskussionen"
+
+msgid "commented on"
+msgstr "gjorde ett inlägg i"
+
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Det angivna lösenordet är felaktigt. Vänligen kontroller att det är korrekt."
+
+msgid "Minimum value not met for @field"
+msgstr "Minsta värdet är inte uppnått för @field"
+
+msgid "Invalid data type for @field"
+msgstr "Ogiltig datatyp för @field"
+
+msgid "News"
+msgstr "Nyheter"
+
+msgid "Remove friend"
+msgstr "Ta bort som vän"
+
+msgid "ignore list"
+msgstr "ignoreringslista"
+
+msgid "here"
+msgstr "här"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username finns på din !ignore_list. Klicka !here för att visa inlägget."
+
+msgid "hidden"
+msgstr "gömd"
+
+msgid "Unknown"
+msgstr "Okänt"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "Ogiltigt värde för \"%preference\""
+
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: inlägget publicerad i \"!topic_name\""
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author har svarat i \"!topic_name\"."
+
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "För att visa tråden på !site, klicka här:\n!comment_url"
+
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "Lagets grundare har @count dagar på sig att svara på din begäran om att överta grundarstatus."
+
+msgid "Unlock"
+msgstr "Lås upp"
+
+msgid "Unlock this thread for comments"
+msgstr "Lås upp denna tråd för nya kommentarer"
+
+msgid "project"
+msgstr "projekt"
+
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email är inte en välformad e-postadress, vänligen kontrollera"
+
+msgid "Please enter your email address"
+msgstr "Vänligen ange din e-postadress"
+
+msgid "There is no account with that authenticator."
+msgstr "Det finns inget konto med den verifieraren."
+
+msgid "That authenticator is not valid."
+msgstr "Verifieraren är inte giltig."
+
+msgid "Send request"
+msgstr "Send förfrågan"
+
+msgid "Friend request from !name [!site]"
+msgstr "Vänförfrågning från !name [!site]"
+
+msgid "Message"
+msgstr "Meddelande"
+
+msgid ""
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name har lagt till dig som vän på !site. Du kan välja att godkänna eller avslå förfrågan. Om du väljer att avslå så kommer inget meddelande att skickas men förfrågan kommer att tas bort från bådas konton.\n\nKlicka på länken nedan för att granska förfrågan:\n!link\n\n!message\n\nTack,\n!site teamet"
+
+msgid "Cancel friend request"
+msgstr "Avbryt vänförfrågan"
+
+msgid "Please set the minimum time required between posts."
+msgstr "Vänligen ange den minsta tiden som krävs mellan inlägg"
+
+msgid ""
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Vänligen ange den minsta totala poängen en användare måste ha för att få göra inlägg i forumet."
+
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Vänligen ange den minsta genomsnittliga poängen som en användare måste ha för att få göra inlägg i forumet"
+
+msgid "Edit message board"
+msgstr "Redigera forumet"
+
+msgid "Save message board"
+msgstr "Spara forumet"
+
+msgid "This is a team-only message board"
+msgstr "Detta är ett lagforum"
+
+msgid "Maximum value exceeded for @field"
+msgstr "Det störst värdet för @field överskrids"
+
+msgid "Approve request"
+msgstr "Godkänn förfrågan"
+
+msgid "!name accepted your friend request [!site]"
+msgstr "!name accepterade din vänförfrågan [!site]"
+
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name bekräftade din vänförfrågan på !site.\n\nKlicka på länken nedan för att se hans eller hennes profil:\n!link\n\n!message\n\nTack\n!site teamet"
+
+msgid "posted"
+msgstr "publicerat"
+
+msgid "Add team admin"
+msgstr "Lägg till lagadministratör"
+
+msgid "Enter email address"
+msgstr "Ange e-postadress"
+
+msgid "Current team admins"
+msgstr "Nuvarande lagadministratörer"
+
+msgid "About team admins"
+msgstr "Om lagadministratörer"
+
+msgid "Team admins can:"
+msgstr "Lagadministratörer kan:"
+
+msgid "Edit team information"
+msgstr "Redigera laginformationen"
+
+msgid "View the team's join / quit history"
+msgstr "Se historik över när medlemmarna gick med eller lämnade laget"
+
+msgid "Moderate the team forum"
+msgstr "Moderera lagforumet"
+
+msgid "Remove members from the team"
+msgstr "Ta bort medlemmar från laget"
+
+msgid "Disband a team if it has no members"
+msgstr "Ta bort laget om det inte har några medlemmar"
+
+msgid "Team admins cannot:"
+msgstr "Lagadministratörer kan inte:"
+
+msgid "Change the team founder"
+msgstr "Ändra lagets grundare"
+
+msgid "Add / Remove team admins"
+msgstr "Lägga till / ta bort lagadministratörer"
+
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Om en lagadministratör lämnar laget så upphör den att vara en lagadministratör. Vi rekommenderar att du bara väljer personer som du känner och litar på."
+
+msgid "Lift user ban"
+msgstr "Häv avstängningen av användaren"
+
+msgid "A team named \"@name\" already exists."
+msgstr "Ett lag med namnet \"@name\" finns redan."
+
+msgid "A BOINC account already exists for @email."
+msgstr "Ett BOINC konto med e-postadressen @email finns redan."
+
+msgid "Make founder"
+msgstr "Utse som grundare"
+
+msgid "Changing the team founder"
+msgstr "Ändra lagets grundare"
+
+msgid "Notes about changes in foundership:"
+msgstr "Anmärkningar om ändrande av lagets grundare:"
+
+msgid "Any member of the team is eligible"
+msgstr "Vilken som helst av lagets medlemmar kan väljas"
+
+msgid "Current founder becomes a normal user"
+msgstr "Den nuvarande grundare övergår till att bli en vanlig medlem"
+
+msgid "Foundership can be requested by team members:"
+msgstr "Grundarstatus kan begäras av en lagmedlem:"
+
+msgid "One request is allowed at a time"
+msgstr "En begäran åt gången är tillåten"
+
+msgid "It must be 60 days since any previous request"
+msgstr "Det måste ha gått 60 dagar sedan den senaste begäran"
+
+msgid "Any active request must be older than 90 days"
+msgstr "En aktiv begäran måste vara äldre än 90 dagar"
+
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Den nuvarande grundaren har 60 dagar på sig att svara på begäran"
+
+msgid "BOINC-wide teams site"
+msgstr "BOINC-övergripande lagsida"
+
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Detta är ett BOINC-övergripande lag. Ändringar kan göras på !site."
+
+msgid ""
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "En teamskapar-ändring har redan efterfrågats nyligen. Bara en efterfrågan är tillåten innom en period av 90 dagar."
+
+msgid "@count days remaining"
+msgstr "@count dagar kvar"
+
+msgid "Team name is required."
+msgstr "Lagnamn krävs."
+
+msgid "Reason for banning this user"
+msgstr "Anledning att stänga av användaren"
+
+msgid ""
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Anledningen kommer att inkluderas i ett e-post till användaren. Vänligen ge en kortfattad beskrivning om varför användaren stängs av."
+
+msgid "Duration of the ban"
+msgstr "Hur lång tid avstängningen gäller"
+
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Antalet dagar till avstängningen upphör. Sätt till 0 för att stänga av för alltid."
+
+msgid "Submit"
+msgstr "Skicka"
diff --git a/locale/sv/BOINC-Manager.mo b/locale/sv/BOINC-Manager.mo
index 81bb9ee..da44748 100644
Binary files a/locale/sv/BOINC-Manager.mo and b/locale/sv/BOINC-Manager.mo differ
diff --git a/locale/sv/BOINC-Manager.po b/locale/sv/BOINC-Manager.po
index a1595e5..73de252 100644
--- a/locale/sv/BOINC-Manager.po
+++ b/locale/sv/BOINC-Manager.po
@@ -1,64 +1,58 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # ersi <erik-transifex at simmesgard.se>, 2015
 # Frans Ingelstam <02frasse11 at gmail.com>, 2016
+# Johan Holmström, 2016
 # Josef Andersson <josef.andersson at fripost.org>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-04-08 21:33+0000\n"
-"Last-Translator: Frans Ingelstam <02frasse11 at gmail.com>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-13 14:10+0000\n"
+"Last-Translator: Johan Holmström\n"
 "Language-Team: Swedish (http://www.transifex.com/boinc/boinc/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "Identifiera ditt konto hos %s"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Ange din kontoinformation\n(besök projektets webbplats för att skapa ett konto)"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Projektet accepterar för närvarande inte nya konton.\nDu kan bara lägga till det om du redan har ett konto."
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Kör du redan detta projekt?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Nej, ny användare"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Ja, befintlig användare"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -68,85 +62,85 @@ msgid ""
 "password fields."
 msgstr "Vi kunde inte ställa in din kontoinformation\nautomatiskt.\n\nKlicka på länken ”Hitta inloggningsuppgifter”\nnedanför för att se vad du ska ange i e-post- och\nlösenordsfälten."
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Hitta inloggningsuppgifter"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Lösenord:"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Välj ett &lösenord:"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "&Bekräfta lösenord:"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Kör du redan %s?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Användarnamn:"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "&E-postadress eller LDAP-ID:"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&E-postadress:"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "minimal längd %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Glömt ditt lösenord?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Om du inte har registrerat med den här kontohanteraren,\ngör detta innan du fortsätter.  Klicka på länken nedan\nför att registrera eller hämta ett bortglömt lösenord."
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Webbplats för kontohanteraren"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Lägg till projekt"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Uppdatera kontohanteraren"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Använd kontohanteraren"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Ange användarnamn."
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Ange e-postadress."
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Ange ett lösenord bestående av minst %d tecken."
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Lösenordet och bekräftelselösenordet stämde inte överens. Prova igen."
@@ -199,11 +193,11 @@ msgstr "Vänligen vänta…"
 msgid "An internal server error has occurred.\n"
 msgstr "Ett internt serverfel har inträffat.\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Ansluten"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Frånkopplad"
 
@@ -218,8 +212,8 @@ msgid "Open another %s window"
 msgstr "Öppna ett annat %s-fönster"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "Välj dator…"
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Välj dator...\tCTRL + SKIFT + I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -529,7 +523,7 @@ msgstr "%s &webbplats"
 msgid "Show information about BOINC and %s"
 msgstr "Visa information om BOINC och %s"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -564,12 +558,12 @@ msgstr "&Verktyg"
 msgid "&Help"
 msgstr "&Hjälp"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - Sluta att använda %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -579,39 +573,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Om du slutar att använda %s,\nkommer du att behålla alla aktuella projekt,\nmen du måste hantera projekten manuellt.\n\nVill du sluta att använda %s?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Stäng av den aktuella klienten…"
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s kommer att stänga av den aktuella klienten\noch därefter fråga efter en annan värd att ansluta till."
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s har lagt till %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "Ansluter till %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "Ansluten till %s (%s)"
@@ -660,7 +654,7 @@ msgid "%s - Communication"
 msgstr "%s - Kommunikation"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "Avbryt"
@@ -735,7 +729,7 @@ msgid ""
 msgstr "%s är inte ansluten till en %s-klient.\nVälj ”Avancerat\\Välj dator...”-menyalternativet för att ansluta till en %s-klient.\nAnvänd ”localhost” som värdnamn för att ansluta till din lokala dator."
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Projektwebbsidor"
 
@@ -795,7 +789,7 @@ msgstr "%s har avbrutit anslutningen till Internet."
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s kunde inte avbryta anslutningen till Internet."
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -808,170 +802,170 @@ msgid ""
 "     user group."
 msgstr "Du är för närvarande inte auktoriserad till att hantera klienten.\n\nFör att köra %s som denna användare vänligen:\n  - ominstallera %s och svara ”Ja” på frågan om \n    icke-administrativa användare\n eller\n  - kontakta din administratör för att bli tillagd till användargruppen\n    ”boinc_master”."
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "Ägarskap eller rättigheter för %s är inte inställda korrekt; installera om %s.\n(Felkod %d"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " vid "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "En omstart är nödvändig för att BOINC ska kunna köra korrekt.\nStarta om din dator och prova igen."
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC-hanteraren"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC-hanteraren startades automatiskt av operativsystemet"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "Starta BOINC så att endast aktivitetsfältsikonen är synlig"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Katalog innehållandes den körbara BOINC-klienten"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "BOINC-datakatalog"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Värdnamn eller IP-adress"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "GUI RPC-portnummer"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Lösenord"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "Starta BOINC med dessa valfria argument"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "inaktivera BOINC säkerhetsanvändare och rättigheter"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "ställ in felsökningsläge för tema för att aktivera temahanterarens felmeddelanden"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "flera instanser av BOINC-hanteraren tillåten"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Inte använd: temporär lösning för bugg i XCode 4.2"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "Kör inte \"demon\""
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Upptäck automatiskt)"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Okänd)"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Användardefinierad)"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "Öppna %s webb…"
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "Öppna %s…"
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Aktivera viloläge"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "Aktivera GPU-viloläge"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Avsluta"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Återuppta"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "Återuppta GPU"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Beräkning är aktiverad"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Beräkning är i vänteläge - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU-beräkning är aktiverad"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU-beräkning är i vänteläge - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Nätverk är aktiverat"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Nätverk är i vänteläge - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "Återansluter till klient."
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Inte ansluten till en klient."
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s meddelanden"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Det finns nya meddelanden - klicka för att visa."
 
@@ -1086,46 +1080,6 @@ msgstr "För mer information, besök "
 msgid "&OK"
 msgstr "&OK"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "Ogiltig siffra"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "ogiltig tid, värdet måste vara mellan 0:00 och 24:00, formatet är HH:MM"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "Starttiden måste skilja sig från sluttiden"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "Siffran måste vara mellan 0 och 10"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "Siffran måste vara mellan 0 och 100"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "Numret måste vara mellan 1 och 100"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "ogiltigt inmatningsvärde upptäckt"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "Valideringsfel"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "Kasta lokala inställningar och använd webbaserade inställningar?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "Bekräftelse"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1173,7 +1127,7 @@ msgid "Daily schedules"
 msgstr "Dagliga scheman"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "OK"
@@ -1188,7 +1142,7 @@ msgstr "Stäng dialogen utan att spara."
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "Hjälp"
@@ -1587,75 +1541,123 @@ msgstr "Överför filer endast under en speciell tidsperiod var dag."
 msgid "Transfer files only between"
 msgstr "Överför filer endast mellan"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Ogiltig siffra"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "ogiltig tid, värdet måste vara mellan 0:00 och 24:00, formatet är HH:MM"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Starttiden måste skilja sig från sluttiden"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Siffran måste vara mellan 0 och 10"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Siffran måste vara mellan 0 och 100"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "Numret måste vara mellan 1 och 100"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "ogiltigt inmatningsvärde upptäckt"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Valideringsfel"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Kasta lokala inställningar och använd webbaserade inställningar?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Bekräftelse"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s diagnostiska loggflaggor"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "Dessa flaggor aktiverar olika typer av diagnostiska meddelanden i händelseloggen."
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "Mer information …"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "Spara alla värden och stäng dialogen"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "Standardvärden"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "Återställ standardinställningarna"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "Stäng dialogen utan att spara"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Verkställ"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Spara alla värden"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Händelselogg"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Projekt"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Tid"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Meddelande"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Visa bara detta projekt"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "Kopiera &alla"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Kopiera alla meddelanden till urklipp."
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "Kopiera &markerade"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1663,7 +1665,7 @@ msgid ""
 "messages."
 msgstr "Kopiera markerade meddelanden till urklipp. Du kan välja flera meddelanden genom att hålla nere skift- eller kontrolltangenten när du klickar på meddelanden."
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1671,19 +1673,19 @@ msgid ""
 "messages."
 msgstr "Kopiera markerade meddelanden till urklipp. Du kan välja flera meddelanden genom att hålla nere skift- eller kontrolltangenten när du klickar på meddelanden."
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Stäng"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "Visa alla &meddelanden"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Visa meddelanden för alla projekt"
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Visa endast meddelanden för det markerade projektet"
 
@@ -1706,7 +1708,7 @@ msgid "Add an application to this list"
 msgstr "Lägg till ett program till denna lista"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "Ta bort"
 
@@ -2040,14 +2042,14 @@ msgstr "Resurser"
 msgid "Estimated computation size"
 msgstr "Förväntad beräkningsstorlek"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "CPU-tid vid senaste kontrollpunkten"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "CPU-tid"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "CPU-tid sedan senaste kontrollpunkten"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Förfluten tid"
@@ -2097,8 +2099,8 @@ msgstr "per sekund"
 msgid "Executable"
 msgstr "Körningsbar"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Lokal: "
 
@@ -2457,203 +2459,191 @@ msgstr "Forskning"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "Få reda på mer om projekten på World Community Grid"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "Startar klient"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "Ansluter till klient"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "Hämtar systemtillstånd; vänligen vänta…"
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Saknar program"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Hämta och installera CORD-programmet från http://cord.sourceforge.net"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "på batterier"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "datorn används"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "användarbegäran"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "tidpunkt på dagen"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "CPU-mätning pågår"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "behöver diskutrymme - kontrollera inställningar"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "datorn används ej"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "startar upp"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "ett exklusivt program körs"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "CPU:n är upptagen"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "överskriden bandbreddsgräns för nätverk"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "begärd av operativsystem"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "okänd anledning"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU saknas, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Ny"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "Hämtning misslyckades"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "Hämtar"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (i vänteläge - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Projekt försatt i vänteläge av användare"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Uppgift försatt i vänteläge av användare"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Vänteläge - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU i vänteläge - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Väntar på minne"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Väntar på delat minne"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Kör"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (ej CPU-intensiv)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Väntar på att köra"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Redo att starta"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "Uppskjutna: "
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "Uppskjutna"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "Väntar på nätverksåtkomst"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Beräkningsfel"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Skicka misslyckades"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Skickar"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Avbruten av användare"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Avbruten av projekt"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "Avbruten: startade inte inom tidgräns"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "Avbrutet: överskred diskgränsen för uppgifter"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "Avbruten: körtidsgräns överskriden"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "Avbruten: minnesgräns överskriden"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "Avbruten"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Erkänd"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Klar att rapportera"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Fel: ogiltigt tillstånd ”%d”"
@@ -2717,7 +2707,7 @@ msgstr "För att välja ett projekt, klicka på dess namn eller skriv in dess UR
 msgid "Categories:"
 msgstr "Kategorier:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projekt:"
 
@@ -2761,24 +2751,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "Du har redan lagt till detta projekt. Välj ett annat projekt."
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Kommunicerar med projekt."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Kommunicerar med projekt\nVänligen vänta…"
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Nödvändiga filer hittades inte på servern."
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Ett internt serverfel har uppstått."
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Kommunicerar med projekt\nVänligen vänta…"
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2876,1024 +2863,938 @@ msgstr "Upptäck automatiskt"
 msgid "SOCKS proxy"
 msgstr "SOCKS-proxy"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Användarvillkor"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Tema"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Läs följande användarvillkor:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Välj utseendet på användargränssnittet."
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Jag godkänner användarvillkoren."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Avancerad vy...\tCtrl+Skift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Jag godkänner ej i användarvillkoren."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Visa det avancerade grafiska gränssnittet."
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Projektet inte tillgängligt för tillfället"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Konfigurera visningsalternativ och proxyinställningar"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Projektet inte tillgängligt för tillfället.\n\nProva senare."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Visa diagnostiska meddelanden."
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Kontohanteraren är inte tillgänglig för tillfället"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Kontohanteraren är inte tillgänglig för tillfället.\n\nProva senare."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Standard"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Ange en kontonyckel för att fortsätta."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Vänteläge"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Ogiltig kontonyckel; Ange en giltig kontonyckel"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Beräkning i vänteläge"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Valideringskonflikt"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Återuppta beräkning"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Ange en e-postadress"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Meddelanden"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Ogiltig e-postadress; Ange en giltig e-postadress"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Öppna ett fönster för att visa meddelanden från projekt eller BOINC"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Saknar URL"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "Få hjälp med %s"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Ange en URL.\nTill exempel:\nhttp://www.exempel.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Hämtar meddelanden; Vänligen vänta…"
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Ogiltig URL"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Det finns inga meddelanden just nu."
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Ange en giltig URL.\nTill exempel:\nhttp://boincprojekt.exempel.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Stäng"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "”%s” innehåller inte ett giltigt värdnamn."
+msgid "%s - Notices"
+msgstr "%s - Meddelanden"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "”%s” innehåller inte en giltig sökväg."
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "Kommandon"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Kopiera alla meddelanden"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Kopiera utvalda meddelanden"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Visa endast detta projekt"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Visa endast meddelanden för det valda projektet."
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Meddelanden"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Kopierar alla meddelanden till urklipp…"
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Kopierar valda meddelanden till utklipp…"
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Filtrerar meddelanden…"
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Visa alla meddelanden"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Visa meddelanden för alla projekt."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "För ytterligare inställningar, välj Beräkningsinställningar i den avancerade vyn."
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Hämtar meddelanden; Vänligen vänta…"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB av diskutrymme"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Det finns inga meddelanden just nu."
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - beräkningsinställningar"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "Meddelanden"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Förkasta alla lokala inställningar och använd webbaserade inställningar?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "Uppdatera"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "Rapportera alla färdiga uppgifter, hämta senaste poäng, hämta senaste inställningar och möjligen fler uppgifter."
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "Vänteläge"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "Försätt detta projekts uppgifter i vänteläge."
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "Inga nya uppgifter"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "Hämta inte nya uppgifter för detta projekt."
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "Starta om projekt"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "Ta bort alla filer och uppgifter associerade med detta projekt och hämta nya uppgifter.  Du kan uppdatera projektet först för att rapportera avklarade uppgifter."
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "Ta bort detta projekt.  Pågående uppgifter kommer att gå förlorade (använd ”Uppdatera” först för att rapportera avklarade uppgifter)."
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "Egenskaper"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "Visa projektdetaljer."
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "Konto"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "Utfört jobb"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "Genomsnittligt utfört jobb"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "Status"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "Projekt"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "Uppdaterar projekt…"
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "Återupptar projekt…"
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "Försätter projekt i vänteläge…"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Återuppta uppgifter för detta projekt."
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "Ställer in projekt till att tillåta flera hämtningar av uppgifter…"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Tillåt nya uppgifter"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Ställer in projekt till att inte hämta flera uppgifter…"
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Tillåt nya uppgifter att hämtas för detta projekt."
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "Nollställer projekt…"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Hämta inte nya uppgifter för detta projekt."
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "Är du säker på att du vill rensa projektet ”%s”?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "Återställ projekt"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "Tar bort projekt…"
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "Är du säker på att du vill ta bort projektet ”%s”?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "Ta bort projekt"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "Startar webbläsare…"
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Lägg till projekt"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "Återuppta uppgifter för detta projekt."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Synkronisera"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "Tillåt nya uppgifter"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Jobb utfört för detta projekt"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "Tillåt nya uppgifter att hämtas för detta projekt."
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Bli volontär för något av, eller alla de 30+ projekten som finns inom flera vetenskapsområden"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "Hämta inte nya uppgifter för detta projekt."
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Synkronisera projekt med kontohanterarsystem"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "Begärd av användare"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Välj ett projekt att komma åt med kontrollerna nedan"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "För att hämta jobb"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Projektwebbsidor"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "För att rapportera avslutade jobb"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Projektkommandon"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "För att sända flödesmeddelande"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "Visa en meny av webbplatser för projektet %s"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "Begärd av kontohanteraren"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "Visa en meny av kommandon för projektet %s"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "Projektinitiering"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Visa grafik"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "Begärd av projekt"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Visa programgrafik i ett fönster."
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "Okänd anledning"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Försätt denna uppgift i vänteläge."
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "Försatt i vänteläge av användare"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "Avbryt"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "Hämtar inte nya uppgifter"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Överge denna uppgift. Du kommer inte att få poäng för den."
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "Projektet är avslutat - det kan tas bort"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Visa uppgiftsdetaljer."
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "Kommer att ta bort när uppgifter är avklarade"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Återuppta jobb för denna uppgift."
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "Schemaläggarbegäran väntar"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Försätt jobb för denna uppgift i vänteläge."
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "Schemaläggarbegäran pågår"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "Är du säker på att du vill avbryta denna uppgift '%s'?\n(Utfört: %.1lf%%, Status: %s)"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "Flödesmeddelande väntar"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "Avbryt uppgift"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "Kommunikation uppskjuten"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Du har inga projekt.  Lägg till ett projekt."
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "Total diskanvändning"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Inte tillgänglig"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "Diskanvändning för BOINC-projekt"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "Uppgifter:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "inga projekt: 0 byte använt"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Välj en uppgift att komma åt"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "använt av BOINC: "
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Från:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "fritt, tillgängligt för BOINC: "
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Vad denna uppgift utfört"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "fritt, ej tillgängligt för BOINC: "
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "Uppgiftskommandon"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "fritt: "
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Visa en meny med kommandon för denna uppgift"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "använt av andra program: "
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Program: %s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "Användartotalsumma"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "Användargenomsnitt"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Program: ej tillgängligt"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "Värdtotalsumma"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Ej tillgängligt"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "Värdgenomsnitt"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "Förflutit: %s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "Senaste uppdatering: %.0f dagar sedan"
+msgid "Remaining (estimated): %s"
+msgstr "Återstående (beräknad): %s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "Användartotalsumma"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Status: %s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "Sammanlagd poäng för användaren"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Hämtar nuvarande status."
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "Användargenomsnitt"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "Hämtar jobb från servern."
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "Genomsnittlig poäng för användare"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Bearbetning i vänteläge:  Kör på batterier."
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "Värdtotalsumma"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Bearbetning i vänteläge:  Aktiv användare."
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "Totala antalet värdpoäng"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Bearbetning i vänteläge:  Pausad av användare."
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "Värdgenomsnitt"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Bearbetning i vänteläge:  Tid på dagen."
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "Genomsnittlig värdpoäng"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Bearbetning i vänteläge:  Prestandamätningar kör."
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< &Föregående projekt"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Bearbetning i vänteläge: behöver diskutrymme."
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "Visa diagram för föregående projekt"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Bearbetning i vänteläge."
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "&Nästa projekt >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Väntar på kontakt med projektservrarna."
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "Visa diagram för nästa projekt"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Hämtar aktuell status"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "Dölj projektlista"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Inget tillgängligt jobb att behandla"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "Använd hela området till grafer"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Kan inte ansluta till kärnklienten"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "Lägesvy"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Användarvillkor"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "Ett projekt"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Läs följande användarvillkor:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "Visa ett diagram med valt projekt"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Jag godkänner användarvillkoren."
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "Alla projekt (separata)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Jag godkänner ej i användarvillkoren."
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "Visa alla projekt, ett diagram per projekt"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Projektet inte tillgängligt för tillfället"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "Alla projekt (tillsammans)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Projektet inte tillgängligt för tillfället.\n\nProva senare."
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "Visa ett diagram med alla projekt"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Kontohanteraren är inte tillgänglig för tillfället"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "Alla projekt (summerade)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Kontohanteraren är inte tillgänglig för tillfället.\n\nProva senare."
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "Visa ett diagram med summan av projekt"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Ange en kontonyckel för att fortsätta."
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "Statistik"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Ogiltig kontonyckel; Ange en giltig kontonyckel"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "Uppdaterar diagram…"
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Valideringskonflikt"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "Visa projektlista"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Ange en e-postadress"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "Använd mindre områden för grafer"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Ogiltig e-postadress; Ange en giltig e-postadress"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "Prova igen"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Saknar URL"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "Pröva filöverföring igen"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Ange en URL.\nTill exempel:\nhttp://www.exempel.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "Avbryt överföring"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Ogiltig URL"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "Avbryt denna filöverföring.  Du kommer inte att få poäng för denna uppgift."
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Ange en giltig URL.\nTill exempel:\nhttp://boincprojekt.exempel.com"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "Fil"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "”%s” innehåller inte ett giltigt värdnamn."
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "Utfört"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "”%s” innehåller inte en giltig sökväg."
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "Storlek"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Kommandon"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "Förfluten"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Kopiera alla meddelanden"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "Hastighet"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Kopiera utvalda meddelanden"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "Överföringar"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Visa endast detta projekt"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "Nätverksaktivitet försatt i vänteläge - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Visa endast meddelanden för det valda projektet."
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr ".\nDu kan aktivera det med Aktivitetsmenyn."
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Meddelanden"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Kopierar alla meddelanden till urklipp…"
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "Provar överföring igen…"
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Kopierar valda meddelanden till utklipp…"
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "Avbryt överföring…"
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Filtrerar meddelanden…"
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "Är du säker på att du vill avbryta denna överföring ”%s”?\nOBS: Att avbryta en överföring kommer att göra en uppgift ogiltig och du\nkommer inte att få poäng för den."
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Visa alla meddelanden"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "Avbryt filöverföring"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Visa meddelanden för alla projekt."
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "Skicka"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Konto"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "Hämta"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Utfört jobb"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "prova igen om "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Genomsnittligt utfört jobb"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "misslyckades"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Status"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "i vänteläge"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projekt"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "aktiv"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "Begärd av användare"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "väntar"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "För att hämta jobb"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr " (projekt backoff: "
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "För att rapportera avslutade jobb"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "Aktiva uppgifter"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "För att sända flödesmeddelande"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "Visa endast aktiva uppgifter."
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "Begärd av kontohanteraren"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "Visa grafik"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "Projektinitiering"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "Visa programgrafik i ett fönster."
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "Begärd av projekt"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "Visa VM-konsol"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "Okänd anledning"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "Visa VM-konsol i ett fönster."
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "Försatt i vänteläge av användare"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "Sätt detta resultats jobb i vänteläge."
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "Hämtar inte nya uppgifter"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "Avbryt"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "Projektet är avslutat - det kan tas bort"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "Överge jobb. Du får inga poäng för det."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "Kommer att ta bort när uppgifter är avklarade"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "Visa uppgiftsdetaljer."
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "Schemaläggarbegäran väntar"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "Återstående (beräknad)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "Schemaläggarbegäran pågår"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "Tidsgräns"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "Flödesmeddelande väntar"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "Uppgifter"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "Kommunikation uppskjuten"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "Återupptar uppgift…"
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "Total diskanvändning"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "Uppgift i vänteläge…"
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "Diskanvändning för BOINC-projekt"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "Visar grafik för uppgift…"
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "inga projekt: 0 byte använt"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "Visar VM-konsol för uppgift…"
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "använt av BOINC: "
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "Är du säker på att du vill avbryta denna uppgift ”%s”?\n(Utfört: %s, Status: %s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "fritt, tillgängligt för BOINC: "
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "Är du säker på att du vill avbryta dessa %d uppgifter?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "fritt, ej tillgängligt för BOINC: "
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "Avbryt uppgift"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "fritt: "
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "Avbryter uppgift…"
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "använt av andra program: "
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "Alla uppgifter"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "Användartotalsumma"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "Visa alla uppgifter."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "Användargenomsnitt"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "Återuppta jobb för denna uppgift."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "Värdtotalsumma"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "Försätt jobb för denna uppgift i vänteläge."
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "Värdgenomsnitt"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "Vill du verkligen avbryta?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "Senaste uppdatering: %.0f dagar sedan"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "Fråga"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "Användartotalsumma"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "Tjänster"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "Sammanlagd poäng för användaren"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "Göm %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "Användargenomsnitt"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "Göm andra"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "Genomsnittlig poäng för användare"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "Visa alla"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "Värdtotalsumma"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "Avsluta %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "Totala antalet värdpoäng"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "Tema"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "Värdgenomsnitt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "Välj utseendet på användargränssnittet."
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "Genomsnittlig värdpoäng"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Avancerad vy...\tCtrl+Skift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< &Föregående projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "Visa det avancerade grafiska gränssnittet."
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "Visa diagram för föregående projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "Konfigurera visningsalternativ och proxyinställningar"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "&Nästa projekt >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "Visa diagnostiska meddelanden."
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "Visa diagram för nästa projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "Dölj projektlista"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "Standard"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "Använd hela området till grafer"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "Beräkning i vänteläge"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "Lägesvy"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "Återuppta beräkning"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "Ett projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Öppna ett fönster för att visa meddelanden från projekt eller BOINC"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "Visa ett diagram med valt projekt"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "Få hjälp med %s"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "Alla projekt (separata)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Stäng"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "Visa alla projekt, ett diagram per projekt"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - Meddelanden"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "Alla projekt (tillsammans)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "För ytterligare inställningar, välj Beräkningsinställningar i den avancerade vyn."
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "Visa ett diagram med alla projekt"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "GB av diskutrymme"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "Alla projekt (summerade)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s - beräkningsinställningar"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "Visa ett diagram med summan av projekt"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "Förkasta alla lokala inställningar och använd webbaserade inställningar?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "Statistik"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Lägg till projekt"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "Visa projektlista"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Synkronisera"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "Använd mindre områden för grafer"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Jobb utfört för detta projekt"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "Prova igen"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Bli volontär för något av, eller alla de 30+ projekten som finns inom flera vetenskapsområden"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "Pröva filöverföring igen"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Synkronisera projekt med kontohanterarsystem"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "Avbryt överföring"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Välj ett projekt att komma åt med kontrollerna nedan"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "Avbryt denna filöverföring.  Du kommer inte att få poäng för denna uppgift."
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Projektwebbsidor"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "Fil"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Projektkommandon"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "Utfört"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "Visa en meny av webbplatser för projektet %s"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "Storlek"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "Visa en meny av kommandon för projektet %s"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Förfluten"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "Försätt denna uppgift i vänteläge."
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "Hastighet"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Överge denna uppgift. Du kommer inte att få poäng för den."
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "Överföringar"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "Är du säker på att du vill avbryta denna uppgift '%s'?\n(Utfört: %.1lf%%, Status: %s)"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "Nätverksaktivitet försatt i vänteläge - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Du har inga projekt.  Lägg till ett projekt."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr ".\nDu kan aktivera det med Aktivitetsmenyn."
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "Inte tillgänglig"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "Uppgifter:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "Är du säker på att du vill avbryta denna överföring ”%s”?\nOBS: Att avbryta en överföring kommer att göra en uppgift ogiltig och du\nkommer inte att få poäng för den."
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "Välj en uppgift att komma åt"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "Avbryt filöverföring"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "Från:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "Skicka"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "Vad denna uppgift utfört"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "Hämta"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "Uppgiftskommandon"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "prova igen om "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Visa en meny med kommandon för denna uppgift"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "misslyckades"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "Program: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "i vänteläge"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "aktiv"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "Program: ej tillgängligt"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "väntar"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "Ej tillgängligt"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr " (projekt backoff: "
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Förflutit: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "Aktiva uppgifter"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Återstående (beräknad): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "Visa endast aktiva uppgifter."
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "Status: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "Visa VM-konsol"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "Hämtar nuvarande status."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "Visa VM-konsol i ett fönster."
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "Hämtar jobb från servern."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "Sätt detta resultats jobb i vänteläge."
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Bearbetning i vänteläge:  Kör på batterier."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "Överge jobb. Du får inga poäng för det."
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "Bearbetning i vänteläge:  Aktiv användare."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "Återstående (beräknad)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "Bearbetning i vänteläge:  Pausad av användare."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "Tidsgräns"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "Bearbetning i vänteläge:  Tid på dagen."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "Uppgifter"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Bearbetning i vänteläge:  Prestandamätningar kör."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "Är du säker på att du vill avbryta denna uppgift ”%s”?\n(Utfört: %s, Status: %s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "Bearbetning i vänteläge."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "Är du säker på att du vill avbryta dessa %d uppgifter?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "Väntar på kontakt med projektservrarna."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "Alla uppgifter"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "Hämtar aktuell status"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "Visa alla uppgifter."
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "Inget tillgängligt jobb att behandla"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "Vill du verkligen avbryta?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "Kan inte ansluta till kärnklienten"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "Fråga"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3907,11 +3808,24 @@ msgstr "< &Bakåt"
 msgid "&Finish"
 msgstr "&Avsluta"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "På denna veckodag, beräkna bara under dessa timmar."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "Tjänster"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "Göm %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "Göm andra"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "Visa alla"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "På denna veckodag, överför filer endast under dessa timmar."
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "Avsluta %s"
diff --git a/locale/sv/BOINC-Setup.mo b/locale/sv/BOINC-Setup.mo
index 908b0ac..1ffae0e 100644
Binary files a/locale/sv/BOINC-Setup.mo and b/locale/sv/BOINC-Setup.mo differ
diff --git a/locale/sv/BOINC-Setup.po b/locale/sv/BOINC-Setup.po
index a8a87f6..26f201c 100644
--- a/locale/sv/BOINC-Setup.po
+++ b/locale/sv/BOINC-Setup.po
@@ -1,17 +1,19 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
 # ersi <erik-transifex at simmesgard.se>, 2015
-# Frans Ingelstam <02frasse11 at gmail.com>, 2016
+# Frans Ingelstam <02frasse11 at gmail.com>, 2016-2017
 # Henrik Mattsson-Mårn <h at reglage.net>, 2016
+# Johan Holmström, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2016-04-17 19:07+0000\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-17 22:07+0000\n"
 "Last-Translator: Frans Ingelstam <02frasse11 at gmail.com>\n"
 "Language-Team: Swedish (http://www.transifex.com/boinc/boinc/language/sv/)\n"
 "MIME-Version: 1.0\n"
@@ -19,25 +21,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Ledsen, denna version av %s kräver system 10.5 eller högre."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Tyvärr kräver denna version av %s system 10.6 eller högre."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Ja"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Nej"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "Skall BOINC köra även när ingen avnändare är inloggad?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -45,26 +51,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Användare som har administratörsrättigheter på denna dator kommer automatiskt tillåtas köra och kontrollera %s.\n\nVill du att också ej administratörs-berättigade användare ska kunna köra och kontrollera %s på denna Mac?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "Vill du ställa in %s som skärmsläckare för alla %s användare på denna Mac?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "OK"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Tillåtelse-error efter omstart"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Borttagningen kan ta ett antal minuter.\nVänligen ha tålamod."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -72,27 +79,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "Är du säker på att du vill komplett ta bort %s från din dator?\n\nDetta raderar det körbara men kommer inte röra %s -datafiler."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "Avbruten: %s har inte rörts."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
-msgstr "Ett fel uppstod: errorkod %d"
+msgstr "Ett fel uppstod: felkod %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "namn på användare"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Vill du också ta bort VirtualBox från din dator?\n(VirtualBox installerades tillsammans med BOINC.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -104,17 +111,17 @@ msgid ""
 "\"%s\"."
 msgstr "Borttagning komplett.\n\nDu kan vilja ta bort följande resterande föremål med Finder:\nplatsen var \"%s\"\n\nför varje användare_ filen\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "Ange ditt administratörs-lösenord för att helt ta bort %s från din dator.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Fortsätt..."
diff --git a/locale/sv/BOINC-Web.mo b/locale/sv/BOINC-Web.mo
new file mode 100644
index 0000000..b02410d
Binary files /dev/null and b/locale/sv/BOINC-Web.mo differ
diff --git a/locale/sv/BOINC-Web.po b/locale/sv/BOINC-Web.po
new file mode 100644
index 0000000..1cca6fc
--- /dev/null
+++ b/locale/sv/BOINC-Web.po
@@ -0,0 +1,1045 @@
+# BOINC website localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Frans Ingelstam <02frasse11 at gmail.com>, 2016
+# Henrik Mattsson-Mårn <h at reglage.net>, 2016
+# Johan Holmström, 2016
+# Urban Berggren <pudberggren at icloud.com>, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-20 12:16+0000\n"
+"Last-Translator: Johan Holmström\n"
+"Language-Team: Swedish (http://www.transifex.com/boinc/boinc/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "LANG_NAME_NATIVE"
+msgstr "English"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "English"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! hjälper dig att skapa och hantera dina BOINC-konton samt hjälper dig att göra inställning, gå med i eller skapa lag, ansluta dina datorer till projekt och mycket mer. Vare sig du är ny eller redan använder BOINC så hjälper BAM dig att få ut det mesta av BOINC."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "GridRepublic medlemmar kör en skärmsläckare som låter deras datorer arbeta på allmännyttiga forskningsprojekt när maskinerna inte annars används. Denna skärmsläckare påverkar inte prestanda av värddatorn något mera än en vanlig skärmsläckare."
+
+#: doc/docutil.php:21
+msgid "Search"
+msgstr "Sök"
+
+#: doc/docutil.php:103
+msgid "Return to BOINC main page"
+msgstr "Återvänd till BOINCs huvudsida"
+
+#: doc/docutil.php:114
+#, php-format
+msgid "This page is %stranslatable%s."
+msgstr "Den här sidan är %söversättningsbar%s."
+
+#: doc/download.php:42
+msgid ""
+"We recommend that you also install VirtualBox, so your computer can work on "
+"science projects that require it."
+msgstr "Vi rekommenderar att du också installerar VirtualBox, så att din dator kan arbeta med forskningsprojekt som kräver det."
+
+#: doc/download.php:44
+msgid "Learn more about VirtualBox."
+msgstr "Lär dig mer om VirtualBox."
+
+#: doc/download.php:52
+msgid "Download BOINC + VirtualBox"
+msgstr "Ladda ned BOINC + VirtualBox"
+
+#. "for %s" identifies the operating system, e.g. "for Windows"
+#: doc/download.php:56 doc/download.php:71
+#, php-format
+msgid "for %s"
+msgstr "för %s"
+
+#: doc/download.php:59 doc/download.php:74
+#, php-format
+msgid "BOINC %s"
+msgstr "BOINC %s"
+
+#: doc/download.php:61
+#, php-format
+msgid "VirtualBox %s"
+msgstr "VirtualBox %s"
+
+#: doc/download.php:69
+msgid "Download BOINC"
+msgstr "Hämta BOINC"
+
+#: doc/download.php:133
+msgid ""
+"BOINC is a program that lets you donate your idle computer time to science "
+"projects like SETI at home, Climateprediction.net, Rosetta at home, World "
+"Community Grid, and many others."
+msgstr "BOINC är ett program som låter dig donera din oanvända datortid till vetenskapliga forskningsprojekt som SETI at home, Climateprediction.net, Rosetta at home, World Community Grid, och många andra."
+
+#: doc/download.php:135
+msgid ""
+"After installing BOINC on your computer, you can connect it to as many of "
+"these projects as you like."
+msgstr "Efter du installerat BOINC på din dator, kan du ansluta så många av dessa projekt som du vill."
+
+#: doc/download.php:137
+msgid ""
+"You may run this software on a computer only if you own the computer or have"
+" the permission of its owner."
+msgstr "Du kan bara köra mjukvaran på din dator om du äger datorn eller har tillgång till dess användare."
+
+#: doc/download.php:142
+msgid ""
+"We recommend that you download BOINC from the Google Play Store or Amazon "
+"Appstore, not from here."
+msgstr "Vi rekommenderar att du laddar ned BOINC från Google Play Butik eller Amazon App Butik, inte härifrån."
+
+#: doc/download.php:177
+msgid "System requirements"
+msgstr "Systemkrav"
+
+#: doc/download.php:178
+msgid "Release notes"
+msgstr "Versionsnyheter"
+
+#: doc/download.php:179 doc/index.php:122
+msgid "Help"
+msgstr "Hjälp"
+
+#: doc/download.php:180
+msgid "All versions"
+msgstr "Alla versioner"
+
+#: doc/download.php:181
+msgid "Version history"
+msgstr "Versionshistorik"
+
+#: doc/download.php:182
+msgid "GPU computing"
+msgstr "GPU-beräkning"
+
+#: doc/download.php:200
+msgid "BOINC: compute for science"
+msgstr "BOINC: lös problem för vetenskapen"
+
+#: doc/index.php:29
+msgid "Computing power"
+msgstr "Datorkraft"
+
+#: doc/index.php:37
+msgid "Top 100 volunteers"
+msgstr "Top 100 volontärer"
+
+#: doc/index.php:38
+msgid "Statistics"
+msgstr "Statistik"
+
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "24-timmarssnitt:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOPS"
+
+#: doc/index.php:69
+msgid "Active:"
+msgstr "Aktiva:"
+
+#: doc/index.php:69
+msgid "volunteers,"
+msgstr "voluntärer,"
+
+#: doc/index.php:69
+msgid "computers.\n"
+msgstr "datorer.\n"
+
+#: doc/index.php:76
+msgid "News"
+msgstr "Nyheter"
+
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Databasen är inte tillgänglig; vänligen försök igen senare."
+
+#. "Volunteer" is used as a verb
+#: doc/index.php:90
+msgid "Volunteer"
+msgstr "Volontär"
+
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Använd de oanvända resurserna av din dator (Windows, Mac, Linuc, eller Android) till att bota sjukdomar, studera global uppvärmning, upptäck gravitationsvågor, och utför en massa andra typer av forskning. Det är tryggt, säkert, och enkelt: "
+
+#: doc/index.php:95
+msgid "Download"
+msgstr "Hämta"
+
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "För Android-enheter, hämta BOINC från Google Play Store; för Kindle, hämta den från Amazon App Store."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Du kan välja att stödja %1projekt%2 så som %3, %4 och 5%, bland många andra."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Om du kör flera projekt, prova en %1kontohanterare%2 såsom %3GridRepublic%4 eller %5BAM!%6. "
+
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Lära dig mer:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Forum"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projekt"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Användarmanual"
+
+#: doc/index.php:123
+msgid "Add-ons"
+msgstr "Tillägg"
+
+#: doc/index.php:124
+msgid "Links"
+msgstr "Länkar"
+
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Andra sätt att hjälpa:"
+
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Översikt"
+
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Översätt"
+
+#: doc/index.php:134
+msgid "Test"
+msgstr "Test"
+
+#: doc/index.php:135
+msgid "Document"
+msgstr "Dokument"
+
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Publicera"
+
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Rapportera fel"
+
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "Databehandling med hög genomströmning via BOINC"
+
+#: doc/index.php:150
+msgid ""
+"%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
+"giving you the power of thousands of CPUs and GPUs."
+msgstr "%1Forskare%2: använder BOINC till att skapa ett %3volontärt beräkningsprojekt%4, som ger tillgång till kraften av hundratusentals CPU:er och GPU:er."
+
+#: doc/index.php:154
+msgid ""
+"%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
+"Center%4."
+msgstr "%1Universitet%2: använder BOINC till att skapa ett %3\"Virtual Campus Supercomputing Center\"%4."
+
+#: doc/index.php:159
+msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
+msgstr "%1Företag%2: använder BOINC för %3\"desktop Grid computing\"%4."
+
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "Boinc och Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Mjukvaruutveckling"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC är en mjukvaruplattform för volontära datortjänster. Den innehåller klient, server, webbkomponenter och API:er för att ansluta ytterligare komponenter."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Källkod"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "Bygga BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Designdokument"
+
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "Vi letar alltid efter programmerare att hjälpa oss att upprätthålla och utveckla BOINC."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Utvecklingsprocessen"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Utvecklingsuppgifter"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC distribueras under licensen LGPL för öppen källkod."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "BOINC-projektet"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC är ett gemenskaps baserat projekt. Alla är välkomna att delta."
+
+#: doc/index.php:207
+msgid "Email lists"
+msgstr "E-postlistor"
+
+#: doc/index.php:208
+msgid "Events"
+msgstr "Händelser"
+
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Grafik"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Styrning"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Live hjälp via Skype eller e-post"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Live Help låter dig få personlig hjälp från en erfaren BOINC-användare, som kan svara på frågor om BOINC, hjälpa dig att installera och använda BOINC, och felsöka problem."
+
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Du kan kommunicera med en hjälpare"
+
+#: doc/help.php:16
+msgid "by email"
+msgstr "via e-post"
+
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\nvia röst, med %1Skype%2, ett gratis Internet-baserat telefonsystem. Om du inte redan har Skype, kan du %3ladda ner och installera det nu%4. Återgå till denna sidan när du är klar."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "via Skype chatt"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Volontärer som talar många språk finns tillgängliga. Välj ett språk (antal volontärer visas):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Bli en hjälpvolontär"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Om du är en erfaren BOINC-användare, uppmuntrar vi dig att %sbli hjälpvolontär%s. Det är ett bra sätt att hjälpa fler att bistå vetenskapen med forsknings- och- volontär- beräkning - och så är det kul!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Om du redan är hjälpvolontär: för att redigera dina inställningar, %sklicka här%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "BOINC hjälpare är oavlönade volontärer.  Deras råd är inte godkänt av BOINC."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "Ge %1aldrig%2 ut din eMail-adress eller lösenordsinformation till BOINC-hjälpare."
+
+#: doc/projects.inc:19
+msgid "Distributed sensing"
+msgstr "Distributerad avkänning"
+
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
+
+#: doc/projects.inc:25
+msgid "Seismology"
+msgstr "Seismologi"
+
+#: doc/projects.inc:26
+msgid ""
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network använder sensorer kopplade till datorer och smartphones för att upptäcka seismiska vågor."
+
+#: doc/projects.inc:34
+msgid "BOINC Poland Foundation"
+msgstr "BOINC Poland Foundation"
+
+#: doc/projects.inc:35
+msgid "Environmental research"
+msgstr "Miljöforskning"
+
+#: doc/projects.inc:36
+msgid ""
+"Radioactive at Home is creating a free and continuously updated map of "
+"radiation levels using sensors connected to volunteers' computers.  You must"
+" buy a sensor to participate."
+msgstr "Radioactive at Home skapar en gratis och kontinuerligt uppdaterad karta över radioaktivitet genom att använda sensorer anslutna till volontärers datorer. Du måste köpa en sensor för att kunna delta."
+
+#: doc/projects.inc:45
+msgid "Cognitive science and artifical intelligence"
+msgstr "Kognitionsvetenskap och artificiell intelligens"
+
+#: doc/projects.inc:51
+msgid "Cognitive Science"
+msgstr "Kognitiv forskning"
+
+#: doc/projects.inc:52
+msgid ""
+"MindModeling at Home uses computational cognitive process modeling to better "
+"understand the human mind, and specifically to study the mechanisms and "
+"processes that enable and moderate human performance and learning."
+msgstr "MindModeling at Home använder en beräkningsbar kognitiv processmodell för att bättre förstå den mänskliga hjärnan (engelskans \"mind\") och speciellt till att studera alla mekanismer och processer som kan modderera mänsklig prestanda och inlärning i positiv riktning."
+
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Oberoende"
+
+#: doc/projects.inc:71
+msgid "Artificial intelligence"
+msgstr "Artificiell intelligens"
+
+#: doc/projects.inc:72
+msgid ""
+"Parse and convert semantic nets for use in FreeHAL, an artificial "
+"intelligence that uses semantic networks, stemmers, part of speech "
+"databases, and part of speech taggers in order to imitate human behavior in "
+"conversations."
+msgstr "Tolka och konvertera semantiska nät för användning i FreeHAL, en artificiell intelligens som använder semantiska nätverk, stemmers, delar av tal-databaser, och delar av tal-taggers för att imitera conversationer med mänskligt beteende."
+
+#: doc/projects.inc:82
+msgid "Biology and Medicine"
+msgstr "Biologi och medicin"
+
+#: doc/projects.inc:88
+msgid "Medical physiology"
+msgstr "Medicinsk fysologi"
+
+#: doc/projects.inc:89
+msgid ""
+"DENIS at Home does cardiac electrophysiological simulations, studying the "
+"electrical activity of the heart."
+msgstr "DENIS at Home kör simuleringar av hjärtats elektrofysiska tempo, alltså studerar den elektroniska aktiviteten i hjärtat."
+
+#: doc/projects.inc:98
+msgid "Molecular biology"
+msgstr "Molekylär biologi"
+
+#: doc/projects.inc:99
+msgid ""
+"RNA World seeks to identify, analyze, structurally predict and design RNA "
+"molecules on the basis of established bioinformatics software."
+msgstr "RNA World söker för att identifiera, analysera, strukturellt förutsäga och designa RNA-molekyler med grund på etablerad bioinformatisk mjukvara."
+
+#: doc/projects.inc:107
+msgid "University College Dublin"
+msgstr "University College Dublin"
+
+#: doc/projects.inc:108
+msgid "Antimalarial drug discovery"
+msgstr "Antimalaria-läkemedels-forskande"
+
+#: doc/projects.inc:109
+msgid ""
+"The parasite that causes malaria continues to evolve resistance to available"
+" medication. We therefore urgently need to discover new drugs, targeting new"
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Den parasit som orsakar malaria fortsätter att utveckla resistens mot tillgänglig medicinering. Vi behöver därför snarast upptäcka nya mediciner, som riktar in sig på nya proteiner i parasiten. FiND at Home projektet syftar till att hitta dessa nya mål."
+
+#: doc/projects.inc:117
+msgid "University of Karlsruhe (Germany)"
+msgstr "Karlsruhe -Universitetet (Tyskland)"
+
+#: doc/projects.inc:118
+msgid "Protein structure prediction"
+msgstr "Förutsägelser av proteinstrukturer"
+
+#: doc/projects.inc:119
+msgid ""
+"POEM at HOME uses a computational approach to predict the biologically active "
+"structure of proteins, to understand the signal-processing mechanisms when "
+"the proteins interact with one another, to understand diseases related to "
+"protein malfunction or aggregation, and to develop new drugs on the basis of"
+" the three-dimensions structure of biologically important proteins."
+msgstr "POEM at HOME använder beräkningskraft för att närma sig förutsägelser av biologiskt aktiva proteinstrukturer, för att lättare förstå den signal-processande mekanismen när proteiner interagerar med andra proteiner, för att på så sätt förstå sjukdomar relaterade till protein-fel eller aggretion, och att få fram nya läkemedel på basen av tredimensionella struktirer av biologiska viktiga protein."
+
+#: doc/projects.inc:147
+msgid "Barcelona Biomedical Research Park (PRBB)"
+msgstr "Barcelona Biomedicinsk Forsknings Park (PRBB)"
+
+#: doc/projects.inc:148
+msgid "Molecular simulations of proteins"
+msgstr "Molekylära simulationer av proteiner"
+
+#: doc/projects.inc:149
+msgid ""
+"GPUGrid.net opens novel computational scenarios by the first full-atom "
+"molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
+"New biomedical applications suddenly become possible giving a new role to "
+"computational biology for biomedical research."
+msgstr "GPUGrid.net öppnar nya beräknings scenarier genom den första full atom molekylära dynamik koden (CellMD) speciellt optimerad för att köras på NVIDIA GPUer. Nya biomedicinska tillämpningar har plötsligt blivit möjliga vilket ger en ny roll för beräkningsbiologi inom biomedicinsk forskning."
+
+#: doc/projects.inc:175
+msgid ""
+"University of Maryland Center for Bioinformatics and Computational Biology"
+msgstr "Maryland Universitet Center för Bioinformatik och Datorberäknande Biologi"
+
+#: doc/projects.inc:176
+msgid "Life science research"
+msgstr "Livsvetenskaps-forskning"
+
+#: doc/projects.inc:177
+msgid ""
+"The Lattice Project, developed and administered at the University of "
+"Maryland, supplies computing power to researchers worldwide who are studying"
+" evolutionary relationships using DNA and protein sequence data."
+msgstr "Lattice Project, utvecklat och administrerat på Maryland Universitet, förenar datorkraft till forskare över hela världen som studerar evolutionära relationer genom att använda proteinsekvensdata."
+
+#: doc/projects.inc:185
+msgid "The Swiss Tropical Institute"
+msgstr "Schweiziska Tropiska Institutet"
+
+#: doc/projects.inc:186
+msgid "Epidemiology"
+msgstr "Epidemiologi"
+
+#: doc/projects.inc:187
+msgid ""
+"Simulation models of the transmission dynamics and health effects of malaria"
+" are an important tool for malaria control. They can be used to determine "
+"optimal strategies for delivering mosquito nets, chemotherapy, or new "
+"vaccines which are currently under development and testing.  Such modeling "
+"is extremely computer intensive, requiring simulations of large human "
+"populations with a diverse set of parameters related to biological and "
+"social factors that influence the distribution of the disease. "
+msgstr "Simuleringsmodeller för transmissions dynamik och hälsoeffekter av malaria är ett viktigt verktyg för malariakontroll. De kan användas för att bestämma optimala strategier för att leverera myggnät, kemoterapi, eller nya vacciner som för närvarande är under utveckling och testning. Sådan modellering är extremt datorintensiv och kräver simuleringar av stora befolkningsgrupper med en mångfald av parametrar relaterade till biologiska och sociala faktorer som påverkar sjukdomens utbredning."
+
+#: doc/projects.inc:211
+msgid "University of Washington"
+msgstr "Washingtons Universitet"
+
+#: doc/projects.inc:212
+msgid "Biology"
+msgstr "Biologi"
+
+#: doc/projects.inc:213
+msgid ""
+"Determine the 3-dimensional shapes of proteins in research that may "
+"ultimately lead to finding cures for some major human diseases. By running "
+"Rosetta at home you will help us speed up and extend our research in ways we "
+"couldn't possibly attempt without your help. You will also be helping our "
+"efforts at designing new proteins to fight diseases such as HIV, malaria, "
+"cancer, and Alzheimer's"
+msgstr "Bestäm 3-dimensionella former av proteiner i forskning som i slutändan kan leda till att finna botemedel för vissa stora mänskliga sjukdomar. Genom att köra Rosetta at home kommer du att hjälpa oss att påskynda och utvidga vår forskning på ett sätt som vi inte en kunde försöka utan din hjälp. Du kommer också att hjälpa våra ansträngningar att utforma nya proteiner för att bekämpa sjukdomar som hiv, malaria, cancer och Alzheimers."
+
+#: doc/projects.inc:231
+msgid "Earth Sciences"
+msgstr "Geovetenskap"
+
+#: doc/projects.inc:243
+msgid "Oxford University"
+msgstr "Oxford Universitet"
+
+#: doc/projects.inc:244
+msgid "Climate study"
+msgstr "Klimatstudie"
+
+#: doc/projects.inc:245
+msgid ""
+"Investigate the approximations that have to be made in state-of-the-art "
+"climate models. By running the model thousands of times we hope to find out "
+"how the model responds to slight tweaks to these approximations - slight "
+"enough to not make the approximations any less realistic. This will allow us"
+" to improve our understanding of how sensitive our models are to small "
+"changes and also to things like changes in carbon dioxide and the sulphur "
+"cycle. This will allow us to explore how climate may change in the next "
+"century under a wide range of different scenarios."
+msgstr "Undersöka approximationer som måste göras i toppmoderna klimatmodeller. Genom att köra modell tusentals gånger hoppas vi kunna ta reda på hur modellen svarar på små justeringar av dessa approximationer - små nog att inte göra approximationerna mindre realistisk. Detta gör det möjligt för oss att förbättra vår förståelse för hur känsliga våra modeller är att små förändringar och även för saker som förändringar i koldioxid och svavelcykeln. Detta gör det möjligt för oss att undersö [...]
+
+#: doc/projects.inc:253
+msgid "Physical Science"
+msgstr "Fysikvetenskap"
+
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
+msgid "Astronomy"
+msgstr "Astronomi"
+
+#: doc/projects.inc:270
+msgid ""
+"TheSkyNet POGS is an astronomy project studying 16 different properties of "
+"galaxies, including brightness, mass, amount of dust and how fast stars are "
+"forming. We are using your processing power to conduct pixel-by-pixel "
+"calculations on multi-wavelength (ultraviolet, optical and near-infrared "
+"light) images of galaxies to produce an atlas that will help astronomers to "
+"better understand the distant universe."
+msgstr "TheSkyNet POGS är en astronomi projekt som studerar 16 olika egenskaper hos galaxer, inklusive ljusstyrka, massa, mängden damm och hur snabba stjärnor bildas. Vi använder din processorkraft för att utföra pixel för pixel beräkningar på bilder med flera våglängder (ultraviolett, optiska och nära infrarött ljus) av galaxer för att producera en atlas som kommer att hjälpa astronomer att bättre förstå det avlägsna universum."
+
+#: doc/projects.inc:280 doc/projects.inc:366
+msgid "Astrophysics"
+msgstr "Astrofysik"
+
+#: doc/projects.inc:281
+msgid ""
+"The aim of the project is to derive shapes and spin for a significant part "
+"of the asteroid population. As input data, we use any asteroid photometry "
+"that is available. The results are asteroid convex shape models with the "
+"direction of the spin axis and the rotation period."
+msgstr "Syftet med projektet är att ta fram former och rotationer för en betydande del av de kända asteroiderna. Som indata använder vi all asteroid fotometri som är tillgänglig. Resultaten är konvexa formmodeller för asteroider med riktningen för rotationsaxeln och rotationsperioden."
+
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Universitetet i Illinois vid Urbana-Champaign"
+
+#: doc/projects.inc:319
+msgid ""
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Målet med Cosmology at Home är att söka efter den modell som bäst beskriver vårt universum och hitta ett utbud av modeller som stämmer med tillgängliga astronomiska partikelfysik data."
+
+#: doc/projects.inc:329
+msgid ""
+"Universe at Home aims to create the first database of the simulated stellar "
+"content of the Universe, from the earliest stars to the most exotic black "
+"hole binaries."
+msgstr "Universe at Home syftar till att skapa den första databasen av simulerat stjärninnehåll i universum, från de tidigaste stjärnorna till mest exotiska svarta hål binärer."
+
+#: doc/projects.inc:332
+msgid "Do research in physics and astronomy"
+msgstr "Forska i fysik och astronomi"
+
+#: doc/projects.inc:337
+msgid "Rensselaer Polytechnic Institute"
+msgstr "Rensselaers Polytekniska Institut"
+
+#: doc/projects.inc:339
+msgid ""
+"The goal of Milkyway at Home is to create a highly accurate three dimensional "
+"model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
+"Survey."
+msgstr "Målet med Milkyway at Home är att skapa en mycket noggrann tredimensionell modell av Vintergatan med hjälp av data som samlats in av Sloan Digital Sky Survey."
+
+#: doc/projects.inc:342
+msgid "Study the structure of the Milky Way galaxy"
+msgstr "Studera strukturen hos Vintergatan"
+
+#: doc/projects.inc:347
+msgid "Leiden University, The Netherlands"
+msgstr "Universitetet i Leiden, Nederländerna"
+
+#: doc/projects.inc:348
+msgid "Chemistry"
+msgstr "Kemi"
+
+#: doc/projects.inc:349
+msgid ""
+"Surface science calculations using Classical Dynamics.  Leiden Classical "
+"allows volunteers, students and other scientist to submit their personal "
+"calculations to the grid. Each user has his own personal queue for Classical"
+" Dynamics jobs. In this way students have used the grid to simulate liquid "
+"argon, or to test the validity of the ideal gas law by actually doing the "
+"simulations through the grid."
+msgstr "Ytforskningsberäkningar med klassisk dynamik. Leiden Classical tillåter volontärer, studenter och andra forskare att lämna in sina personliga beräkningar genom nätet. Varje användare har sin egen personliga kö för klassiska dynamiska jobb. På detta sätt har elever använt nätet för att simulera flytande argon, eller för att testa giltigheten av den ideala gaslagen genom att faktiskt göra simuleringarna genom nätet."
+
+#: doc/projects.inc:352
+msgid "Help students do atomic simulations"
+msgstr "Hjälp studenter att göra atomsimuleringar"
+
+#: doc/projects.inc:365
+msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
+msgstr "Universitetet i Wisconsin - Milwaukee, Max Planck institutet"
+
+#: doc/projects.inc:367
+msgid ""
+"Search for spinning neutron stars (also called pulsars) using data from the "
+"LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
+"observatory.  Einstein at Home is a World Year of Physics 2005 project "
+"supported by the American Physical Society (APS) and by a number of "
+"international organizations."
+msgstr "Leta efter roterande neutronstjärnor (även kallade pulsarer) i data från gravitationsvågsdetektorerna LIGO och GEO och i data från radioteleskopet Arecibo. Einstein at home är ett \"Världs-året inom Fysiken 2005\"-projekt som stöds av det Amerikanska Fysikens Sällskap (American Physical Society, APS) och flera andra internationella organisationer."
+
+#: doc/projects.inc:370
+msgid "Help detect pulsars and gravitational waves"
+msgstr "Hjälp till att upptäcka pulsarer och gravitationsvågor"
+
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
+msgid "CERN (European Organization for Nuclear Research)"
+msgstr "CERN (Europeiska organisationen för kärnfysikalisk forskning)"
+
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
+msgid "Physics"
+msgstr "Fysik"
+
+#: doc/projects.inc:385
+msgid ""
+"The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
+"European Organization for Nuclear Research, the world's largest particle "
+"physics laboratory.  It is the most powerful instrument ever built to "
+"investigate on particles proprieties. LHC at home runs simulations to improve "
+"the design of LHC and its detectors."
+msgstr "The Large Hadron Collider (LHC) är en partikelaccelerator vid CERN, den Europeiska organisationen för kärnfysikalisk forskning, världens största kärnfysikaliska laboratorium. Den är ett av det kraftigaste instrument som någonsin byggts för att studera partiklars egenskaper. LHC at Home kör simuleringar för att förbättra designen av LHC och dess detektorer."
+
+#: doc/projects.inc:388
+msgid "Improve the design of the Large Hadron Collider"
+msgstr "Förbättra designen av \"the Large Hadron Collider\""
+
+#: doc/projects.inc:395
+msgid ""
+"This project uses CERN-developed virtual machine technology for LHC event "
+"physics simulation on volunteer computers.  Requires that you install "
+"VirtualBox on your computer"
+msgstr "Detta projekt använder CERN-utvecklad virtuell maskin teknologi för simulering av LHC händelse fysik på frivilligas datorer. Kräver att du installerar VirtualBox på din dator."
+
+#: doc/projects.inc:398
+msgid "Simulate high-energy particle collisions"
+msgstr "Simulera högenergi partikelkollisioner"
+
+#: doc/projects.inc:405
+msgid ""
+"ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
+" physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
+" particles and processes using head-on collisions of protons of "
+"extraordinary high energy."
+msgstr "ATLAS at Home använder frivilligas datorer för att köra simuleringar åt ATLAS, ett partikelfysik experiment vid CERNs Large Hadron Collider. ATLAS letar efter nya partiklar och processer genom frontalkollisioner mellan protoner vid extraordinärt hög energi."
+
+#: doc/projects.inc:408
+msgid "Simulate high-energy particle collisions for CERN"
+msgstr "Simulera högenergi partikelkollisioner åt CERN"
+
+#: doc/projects.inc:413
+msgid "University of California, Berkeley"
+msgstr "Universitetet i Kalifornien, Berkeley"
+
+#: doc/projects.inc:414
+msgid "Astrophysics, astrobiology"
+msgstr "Astrofysik, astrobiologi"
+
+#: doc/projects.inc:415
+msgid ""
+"SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
+"goal is to detect intelligent life outside Earth. One approach, known as "
+"radio SETI, uses radio telescopes to listen for narrow-bandwidth radio "
+"signals from space. Such signals are not known to occur naturally, so a "
+"detection would provide evidence of extraterrestrial technology."
+msgstr "SETI (Sökning efter utomjordisk intelligens) är ett vetenskapligt område vars mål är att upptäcka intelligent liv utanför jorden. Ett tillvägagångssätt, som kallas radio SETI, använder radioteleskop att lyssna efter radiosignaler med smal bandbredd från rymden. Sådana signaler är inte kända att förekomma naturligt, så en detektion skulle ge bevis för utomjordisk teknologi."
+
+#: doc/projects.inc:418
+msgid "Search for evidence of extra-terrestrial life"
+msgstr "Sök efter tecken på utomjordiskt liv"
+
+#: doc/projects.inc:442
+msgid "Multiple applications"
+msgstr "Flera applikationer"
+
+#: doc/projects.inc:448
+msgid "Molecular biology, Computer Science"
+msgstr "Molekylärbiologi, datavetenskap"
+
+#: doc/projects.inc:449
+msgid ""
+"The Citizen Science Grid is dedicated to supporting a wide range of research"
+" and educational projects using volunteer computing and citizen science."
+msgstr "The Citizen Science Grid är avsett att stödja ett brett utbud av forsknings- och utbildningsprojekt som använder volontär beräknings- och medborgarvetenskap."
+
+#: doc/projects.inc:452
+msgid "Support science from the University of North Dakota"
+msgstr "Stödja vetenskap från universitetet i North Dakota"
+
+#: doc/projects.inc:457
+msgid "Chinese Academy of Sciences"
+msgstr "Kinesiska vetenskapsakademin"
+
+#: doc/projects.inc:458
+msgid "Physics, biochemistry, and others"
+msgstr "Fysik, biokemi, och andra"
+
+#: doc/projects.inc:459
+msgid ""
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at Home sköts av datacentralen hos institutet för Högenergi Fysik (IHEP) hos den Kinesiska vetenskapsakademin, för kinesiska forskare som driver projekt för att studera proteiners struktur, nanoteknik, cancer genomik och högenergifysik."
+
+#: doc/projects.inc:462
+msgid "Help Chinese researchers"
+msgstr "Hjälp Kinesiska forskare"
+
+#: doc/projects.inc:468
+msgid "Mathematics, physics, evolution"
+msgstr "Matematik, fysik, evolution"
+
+#: doc/projects.inc:469
+msgid ""
+"Yoyo at home is an adapter between BOINC and several existing volunteer "
+"computing projects: ECM, Muon, Evolution at home, and distributed.net"
+msgstr "Yoyo at home är en adapter mellan BOINC och flera befintliga volontära databehandlingsprojekt: ECM, Muon, Evolution at home, och distributed.net"
+
+#: doc/projects.inc:472
+msgid "Do research in math, physics, and evolution"
+msgstr "Forska i matematik, fysik, och evolution"
+
+#: doc/projects.inc:487
+msgid "Spanish universities and research centers"
+msgstr "Spanska universitet och forskningscentra"
+
+#: doc/projects.inc:488
+msgid "Various Spanish research projects"
+msgstr "Olika spanska forskningsprojekt"
+
+#: doc/projects.inc:489
+msgid "Research in physics, material science, and biomedicine"
+msgstr "Forskning i fysik, materialvetenskap och biomedicin"
+
+#: doc/projects.inc:492
+msgid "Help Spanish researchers"
+msgstr "Hjälp spanska forskare"
+
+#: doc/projects.inc:497
+msgid "IBM Corporate Citizenship"
+msgstr "IBM kooperativa medborgarskap"
+
+#: doc/projects.inc:498
+msgid "Medical, environmental and other humanitarian research"
+msgstr "Medicinska, miljömässiga och annan humanitära forskning"
+
+#: doc/projects.inc:499
+msgid ""
+"To further critical non-profit research on some of humanity's most pressing "
+"problems by creating the world's largest volunteer computing grid.  Research"
+" includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
+"clean water and many more."
+msgstr "För att främja kritisk ideell forskning på några av mänsklighetens mest akuta problemen genom att skapa världens största volontära databehandlings nätverk. Forskning inkluderar HIV-AIDS, cancer, tropiska och försummade sjukdomar, solenergi, rent vatten och många fler."
+
+#: doc/projects.inc:502
+msgid "Do biomedical and environmental research"
+msgstr "Gör biomedicinsk och miljöforskning"
+
+#: doc/projects.inc:507
+msgid "Mathematics, computing, and games"
+msgstr "Matematik, databehandling och spel"
+
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
+msgid "Mathematics"
+msgstr "Matematik"
+
+#: doc/projects.inc:534
+msgid ""
+"NumberFields at home searches for fields with special properties. The primary "
+"application of this research is in the realm of algebraic number theory. "
+"Number theorists can mine the data for interesting patterns to help them "
+"formulate conjectures about number fields. Ultimately, this research will "
+"lead to a deeper understanding of the profound properties of numbers, the "
+"basic building blocks of all mathematics."
+msgstr "NumberFields at home söker efter fält med speciella egenskaper. Den primära tillämpningen av denna forskning är i sfären av algebraisk talteori. Talteoretiker kan undersöka datan för intressanta mönster för att hjälpa dem formulera hypoteser om numeriska fält. I slutändan kommer denna forskning leda till en djupare förståelse om de djupgående egenskaperna för siffror, de grundläggande byggstenarna i alla matematik."
+
+#: doc/projects.inc:537
+msgid "Do research in algebraic number theory"
+msgstr "Forska i algebraisk talteori"
+
+#: doc/projects.inc:553
+msgid "Computer Science"
+msgstr "Datavetenskap"
+
+#: doc/projects.inc:554
+msgid ""
+"Solve hard and practically important problems (discrete functions inversion "
+"problems, discrete optimization, bioinformatics, etc.) that can be "
+"effectively reduced to Boolean satisfiability problem."
+msgstr "Lös svåra och praktiskt viktiga problem (diskreta funktioner inversionsproblem, diskret optimering, bioinformatik, etc.) som effektivt kan reduceras till Boolean satisfierbara problem."
+
+#: doc/projects.inc:557
+msgid "Study computational complexity"
+msgstr "Studera beräkningskomplexitet"
+
+#: doc/projects.inc:582
+msgid "Cryptography and combinatorics"
+msgstr "Kryptografi och kombinatorik"
+
+#: doc/projects.inc:583 doc/projects.inc:586
+msgid "Run applications from distributed.net"
+msgstr "Köra program från distributed.net"
+
+#: doc/projects.inc:592
+msgid "Cryptography"
+msgstr "Kryptografi"
+
+#: doc/projects.inc:593
+msgid ""
+"Attempt to decode 3 original Enigma messages. The signals were intercepted "
+"in the North Atlantic in 1942 and are believed to be unbroken."
+msgstr "Försök att avkoda 3 ursprungliga Enigma meddelanden. Signalerna fångades i Nordatlanten 1942 och tros vara olösta."
+
+#: doc/projects.inc:596
+msgid "Decode WWII submarine messages"
+msgstr "Avkoda ubåtsmeddelanden från andra världskriget."
+
+#: doc/projects.inc:603
+msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
+msgstr "Studera Collatz Conjecture, en olöst antagande inom matematiken"
+
+#: doc/projects.inc:606
+msgid "Study the Collatz Conjecture"
+msgstr "Studera Collatz Problem"
+
+#: doc/projects.inc:611
+msgid "California State University Fullerton"
+msgstr "Kaliforniska delstats universitetet i Fullerton"
+
+#: doc/projects.inc:612
+msgid "Factorization of large integers"
+msgstr "Faktorisering av stora heltal"
+
+#: doc/projects.inc:613
+msgid ""
+"NFS at Home is a research project that uses Internet-connected computers to do "
+"the lattice sieving step in the Number Field Sieve factorization of large "
+"integers. As a young school student, you gained your first experience at "
+"breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
+"NFS at Home is a continuation of that experience, only with integers that are "
+"hundreds of digits long."
+msgstr "NFS at Home är ett forskningsprojekt som använder internetanslutna datorer för att göra rationella sållningssteg i fältet primtalsfaktorisering av stora tal. Som en ung elev fick du din första erfarenhet att bryta ett heltal i primtalsfaktorer, såsom 15 = 3 * 5 eller 35 = 5 * 7. NFS at Home är en fortsättning av den erfarenheten men med heltal som är hundratals siffror långa."
+
+#: doc/projects.inc:616
+msgid "Study the factorization of large integers"
+msgstr "Studera faktorisering av stora heltal"
+
+#: doc/projects.inc:659
+msgid ""
+"Primegrid has multiple projects searching for different forms of very large "
+"prime numbers, including searching for the largest known prime number."
+msgstr "Primegrid har flera projekt som söker efter olika former av mycket stora primtal, bland annat sökandet efter det största kända primtalet."
+
+#: doc/projects.inc:662
+msgid "Search for large prime numbers"
+msgstr "Sök efter stora primtal"
+
+#: doc/projects.inc:667
+msgid "Hochschule RheinMain University of Applied Sciences"
+msgstr "Hochschule RheinMain universitetet för tillämpad vetenskap"
+
+#: doc/projects.inc:669
+msgid ""
+"Search for counterexamples to two conjectures related to the identification "
+"of prime numbers"
+msgstr "Sök efter motexempel till två antaganden relaterade till identifiering av primtal."
+
+#: doc/projects.inc:672
+msgid "Study the properties of prime numbers"
+msgstr "Studera egenskaperna hos primtal"
+
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI laboratorium för parallella och distribuerade system (Ungern)"
+
+#: doc/projects.inc:679
+msgid ""
+"Find all the generalized binary number systems (in which bases are matrices "
+"and digits are vectors) up to dimension 11."
+msgstr "Hitta alla de generaliserade binära talsystem (där baserna är matriser och siffror är vektorer) upp till den 11:e dimensionen."
+
+#: doc/projects.inc:682
+msgid "Study number theory"
+msgstr "Studera nummerteori"
+
+#: doc/projects.inc:739
+msgid ""
+"Testing and comparison of heuristic methods for getting separations of "
+"parallel algorithms working in the CAD system for designing logic control "
+"systems"
+msgstr "Provning och jämförelse av heuristiska metoder för att få separationer av parallella algoritmer som arbetar i CAD-system för att utforma logiska styrsystem."
+
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Diskutera"
+
+#: html/inc/news.inc:112
+#, php-format
+msgid "News is available as an %sRSS feed%s"
+msgstr "Nyheter finns tillgängliga som ett %sRSS feed%s"
diff --git a/locale/templates/BOINC-Client.pot b/locale/templates/BOINC-Client.pot
index 03bd291..7df450a 100644
--- a/locale/templates/BOINC-Client.pot
+++ b/locale/templates/BOINC-Client.pot
@@ -1,159 +1,169 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+#
+# This file is distributed under the same license as BOINC.
 #
-#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"Project-Id-Version: BOINC 539caba937f5f02b5d46af9244ac276c68fa1f3b\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"Last-Translator: Generated automatically from source files\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+"X-Poedit-SourceCharset: utf-8\n"
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr ""
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr ""
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr ""
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr ""
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr ""
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
+"This project is using an old URL.  When convenient, remove the project, then "
+"add %s"
 msgstr ""
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr ""
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr ""
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr ""
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr ""
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr ""
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr ""
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr ""
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr ""
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr ""
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr ""
 
-#: ../sched/handle_request.cpp:307
-msgid "Invalid or missing account key.  To fix, remove and add this project."
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr ""
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
 msgstr ""
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
 msgstr ""
 
-#: ../sched/handle_request.cpp:859
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr ""
+
+#: sched/handle_request.cpp:317
+msgid "Invalid or missing account key.  To fix, remove and add this project."
+msgstr ""
+
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr ""
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr ""
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr ""
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr ""
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr ""
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr ""
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr ""
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to "
 "the current version"
 msgstr ""
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr ""
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr ""
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr ""
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr ""
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr ""
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr ""
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr ""
diff --git a/locale/templates/BOINC-Drupal.pot b/locale/templates/BOINC-Drupal.pot
index 92eef81..2788d03 100644
--- a/locale/templates/BOINC-Drupal.pot
+++ b/locale/templates/BOINC-Drupal.pot
@@ -4,7 +4,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
 "PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
 "Last-Translator: NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
@@ -14,1946 +14,1879 @@ msgstr ""
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
 #:  
-msgid "Please select a team type."
+msgid "Reject profile"
 msgstr ""
 
 #:  
-msgid ""
-"A team foundership change was already requested recently. Only one "
-"request is allowed within a period of 90 days."
+msgid "Ban user"
 msgstr ""
 
 #:  
-msgid "@count days remaining"
+msgid "I'm new"
 msgstr ""
 
 #:  
-msgid "Inbox"
+msgid "I'm a BOINC user"
 msgstr ""
 
 #:  
-msgid "Compose new"
+msgid "Authenticator login"
 msgstr ""
 
 #:  
-msgid "respond to the request"
+msgid ""
+"You must earn @count more credits to be able to post comments on this "
+"site."
 msgstr ""
 
 #:  
-msgid ""
-"A foundership transfer request has been made for your team. Please "
-"!respond."
+msgid "Generic"
 msgstr ""
 
 #:  
-msgid "Respond to transfer request"
+msgid "Home"
 msgstr ""
 
 #:  
-msgid ""
-"Team member @name has requested team foundership. This may be because "
-"you left the team or have not had contact with the team for a long "
-"time."
+msgid "Work"
 msgstr ""
 
 #:  
-msgid ""
-"If you don't decline the request by @date, @name will have the option "
-"of assuming team foundership. (note: To accept the request, assign "
-"foundership to @name using the form below)"
+msgid "School"
 msgstr ""
 
 #:  
-msgid "Deny request"
+msgid "yes"
 msgstr ""
 
 #:  
-msgid "Send request"
+msgid "no"
 msgstr ""
 
 #:  
-msgid "Friend request from !name [!site]"
+msgid "Resource settings"
 msgstr ""
 
 #:  
-msgid "Message"
+msgid "Resource share"
 msgstr ""
 
 #:  
 msgid ""
-"!name added you as a friend on !site. You can approve or deny this "
-"request. Denying a request will not send a notification, but will "
-"remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
+"Determines the proportion of your computer's resources allocated to "
+"this project. Example: if you participate in two BOINC projects with "
+"resource shares of 100 and 200, the first will get 1/3 of your "
+"resources and the second will get 2/3."
 msgstr ""
 
 #:  
-msgid "Cancel friend request"
+msgid "Use CPU"
 msgstr ""
 
 #:  
-msgid "Remove request"
+msgid "Enforced by version @number"
 msgstr ""
 
 #:  
-msgid "Approve request"
+msgid "Use NVIDIA GPU"
 msgstr ""
 
 #:  
-msgid "!name accepted your friend request [!site]"
+msgid "Use ATI GPU"
 msgstr ""
 
 #:  
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
+msgid "Use INTEL GPU"
 msgstr ""
 
 #:  
-msgid "Email address"
+msgid "Beta settings"
 msgstr ""
 
 #:  
-msgid "Home"
+msgid "Run test applications?"
 msgstr ""
 
 #:  
-msgid "Login"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
 msgstr ""
 
 #:  
-msgid "search"
+msgid " Default value: @default"
 msgstr ""
 
 #:  
-msgid "Server status"
+msgid "Applications"
 msgstr ""
 
 #:  
-msgid "Language"
+msgid "Default set"
 msgstr ""
 
 #:  
-msgid "Enter your @s email address."
+msgid "Set used for new computers"
 msgstr ""
 
 #:  
-msgid "Join now"
+msgid "Save changes"
 msgstr ""
 
 #:  
-msgid "I'm new"
+msgid "Cancel"
 msgstr ""
 
 #:  
-msgid "I'm a BOINC user"
+msgid "Show comparison view"
 msgstr ""
 
 #:  
-msgid "Welcome back!"
+msgid "Comment form"
 msgstr ""
 
 #:  
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run "
-"a screensaver to search for gravitational waves from spinning neutron "
-"stars (also called pulsars) using data from the LIGO gravitational "
-"wave detector."
+msgid "Logout"
 msgstr ""
 
 #:  
-msgid "Learn more"
+msgid "Join now"
 msgstr ""
 
 #:  
-msgid "View account"
+msgid "Account"
 msgstr ""
 
 #:  
-msgid "About our screensaver"
+msgid "Server status"
 msgstr ""
 
 #:  
-msgid "Over 500,000 volunteers and counting."
+msgid "Language"
 msgstr ""
 
 #:  
-msgid "Windows"
+msgid "Create content"
 msgstr ""
 
 #:  
-msgid "Mac"
+msgid "General settings"
 msgstr ""
 
 #:  
-msgid "Linux"
+msgid "Name"
 msgstr ""
 
 #:  
-msgid "Logout"
+msgid "Time zone"
 msgstr ""
 
 #:  
-msgid "Name"
+msgid "Notification settings"
 msgstr ""
 
 #:  
-msgid "Avg credit"
+msgid "Receive email notification for private messages?"
 msgstr ""
 
 #:  
-msgid "Total credit"
+msgid "Receive email notification for friend requests?"
 msgstr ""
 
 #:  
-msgid "Enter your password to save changes"
+msgid "Language settings"
 msgstr ""
 
 #:  
 msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
+"This account's default language for e-mails and preferred language for "
+"site presentation."
 msgstr ""
 
 #:  
-msgid "BOINC user ID"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> "
+"associated with your e-mail address, it will be used for your user "
+"picture."
 msgstr ""
 
 #:  
-msgid "Drupal user ID"
+msgid "Your Gravatar will not be shown if you upload a user picture."
 msgstr ""
 
 #:  
-msgid "Account key"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> "
+"associated with your e-mail address, use it for your user picture."
 msgstr ""
 
 #:  
-msgid "Weak account key"
+msgid "Gravatar will not be shown if an avatar is uploaded."
 msgstr ""
 
 #:  
-msgid "Cross-project ID"
+msgid "Avatar settings"
 msgstr ""
 
 #:  
-msgid "Save changes"
+msgid "This is not available until your profile is set up."
 msgstr ""
 
 #:  
-msgid "Cancel"
+msgid "Create a profile"
 msgstr ""
 
 #:  
-msgid "Change password"
+msgid "Upload an avatar"
 msgstr ""
 
 #:  
-msgid "What is @this_project?"
+msgid "Forum settings"
 msgstr ""
 
 #:  
-msgid "no projects..."
+msgid "In discussion topics, show at most @comments_per_page"
 msgstr ""
 
 #:  
-msgid "Download the desktop software"
+msgid "comments per page"
 msgstr ""
 
 #:  
-msgid "Run the installer"
+msgid "Sort comments in discussions"
 msgstr ""
 
 #:  
-msgid "When prompted enter @siteurl"
+msgid "Newest post first"
 msgstr ""
 
 #:  
-msgid "Password"
+msgid "Oldest post first"
 msgstr ""
 
 #:  
-msgid "Enter the password that accompanies your username."
+msgid "Signature"
 msgstr ""
 
 #:  
-msgid "Request new password"
+msgid "Your signature will be publicly displayed at the end of your comments."
 msgstr ""
 
 #:  
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
+msgid "Hide signatures in forums"
 msgstr ""
 
 #:  
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) "
-"to create an\n"
-"        an account at this project, then use that account to connect "
-"with the\n"
-"        command-line version."
+msgid "Privacy settings"
 msgstr ""
 
 #:  
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
+msgid "Is it OK for @project and your team (if any) to email you?"
 msgstr ""
 
 #:  
-msgid ""
-"1) If you know your account's email address, and you can receive "
-"email there:"
+msgid "Should @project show your computers on its web site?"
 msgstr ""
 
 #:  
-msgid ""
-"Enter the email address and click OK. You will be sent email "
-"instructions for resetting your password."
+msgid "Id"
 msgstr ""
 
 #:  
-msgid "OK"
+msgid "Founder"
 msgstr ""
 
 #:  
-msgid "The latest news from the @site_name project"
+msgid "Country"
 msgstr ""
 
 #:  
-msgid "Comment form"
+msgid "Recent average credit"
 msgstr ""
 
 #:  
-msgid "Total credits"
+msgid "Members"
 msgstr ""
 
 #:  
-msgid "Recent avg credits"
+msgid "Total Credit"
 msgstr ""
 
 #:  
-msgid "Country"
+msgid "User ID"
 msgstr ""
 
 #:  
-msgid "Type"
+msgid "User"
 msgstr ""
 
 #:  
-msgid "Founder"
+msgid "Admin since"
 msgstr ""
 
 #:  
-msgid "New members in last day"
+msgid "Team ID"
 msgstr ""
 
 #:  
-msgid "Total members"
+msgid "User joined"
 msgstr ""
 
 #:  
-msgid "Active members"
+msgid "Timestamp"
 msgstr ""
 
 #:  
-msgid "Members with credit"
+msgid "Account Key"
 msgstr ""
 
 #:  
-msgid "Description"
+msgid "Member since"
 msgstr ""
 
 #:  
-msgid "Search teams"
+msgid "CPID"
 msgstr ""
 
 #:  
-msgid "Send message"
+msgid "Email Address"
 msgstr ""
 
 #:  
-msgid "BOINC"
+msgid "Password Hash"
 msgstr ""
 
 #:  
-msgid "Project"
+msgid "Postal Code"
 msgstr ""
 
 #:  
-msgid "Web site"
+msgid "Send Email"
 msgstr ""
 
 #:  
-msgid "No active computers"
+msgid "Show Hosts"
 msgstr ""
 
 #:  
-msgid "This user has no computers that have been active in the last 30 days."
+msgid "URL"
 msgstr ""
 
 #:  
-msgid " Default value: @default"
+msgid "Computer ID"
 msgstr ""
 
 #:  
-msgid "Applications"
+msgid "Location"
 msgstr ""
 
 #:  
-msgid "yes"
+msgid "While BOINC running, % of time work is allowed"
 msgstr ""
 
 #:  
-msgid "no"
+msgid "Average turnaround time"
 msgstr ""
 
 #:  
-msgid "Message @id"
+msgid "Created"
 msgstr ""
 
 #:  
-msgid "message @id"
+msgid "While BOINC running, % of time host has an Internet connection"
 msgstr ""
 
 #:  
-msgid " in response to !parent"
+msgid "Average CPU efficiency"
 msgstr ""
 
 #:  
-msgid "Credits per day"
+msgid "Free disk space"
 msgstr ""
 
 #:  
-msgid "Computers hidden"
+msgid "Total disk space"
 msgstr ""
 
 #:  
-msgid "This user has chosen not to show information about their computers."
+msgid "Task duration correction factor"
 msgstr ""
 
 #:  
-msgid "Stderr output"
+msgid "Avg. credit"
 msgstr ""
 
 #:  
-msgid "@time ago"
+msgid "External IP address"
 msgstr ""
 
 #:  
-msgid "n/a"
+msgid "Cross project ID"
 msgstr ""
 
 #:  
-msgid "Submitted by !username on !datetime"
+msgid "Last IP address"
 msgstr ""
 
 #:  
-msgid "Member since"
+msgid "Cache"
 msgstr ""
 
 #:  
-msgid "View team"
+msgid "Memory"
 msgstr ""
 
 #:  
-msgid "Friends (@count)"
+msgid "Swap space"
 msgstr ""
 
 #:  
-msgid "Website"
+msgid "Maximum daily WU quota per CPU"
 msgstr ""
 
 #:  
-msgid "Locked"
+msgid "Average download rate"
 msgstr ""
 
 #:  
-msgid "Computers pending"
+msgid "Average upload rate"
 msgstr ""
 
 #:  
-msgid ""
-"This user does not yet have any associated computers. Computers will "
-"be displayed when they have earned their first credits."
+msgid "Same IP address count"
 msgstr ""
 
 #:  
-msgid "No results found..."
+msgid "% of time BOINC client is running"
 msgstr ""
 
 #:  
-msgid "Background"
+msgid "Operating system"
 msgstr ""
 
 #:  
-msgid "Teams"
+msgid "Operating system version"
 msgstr ""
 
 #:  
-msgid ""
-"@project participants may form teams. You may belong to only one team. "
-"You can join or quit a team at any time. To join a team, visit its "
-"team page and click \"Join this team\". Each team has a founder who "
-"may:"
+msgid "Measured floating point speed"
 msgstr ""
 
 #:  
-msgid "access team members' email addresses"
+msgid "Measured integer speed"
 msgstr ""
 
 #:  
-msgid "edit the team's name and description"
+msgid "CPU model"
 msgstr ""
 
 #:  
-msgid "add or remove team admins"
+msgid "Number of processors"
 msgstr ""
 
 #:  
-msgid "remove members from the team"
+msgid "CPU"
 msgstr ""
 
 #:  
-msgid "disband a team if it has no members"
+msgid "Number of times client has contacted server"
 msgstr ""
 
 #:  
-msgid "Create a new team"
+msgid "Last contact"
 msgstr ""
 
 #:  
-msgid ""
-"If you cannot find a team that is right for you, you can create a "
-"team."
+msgid "Serial number"
 msgstr ""
 
 #:  
-msgid "You must earn @count more credits!"
+msgid "Timezone"
 msgstr ""
 
 #:  
-msgid "Threads"
+msgid "Platform ID"
 msgstr ""
 
 #:  
-msgid "Posts"
+msgid "Task ID"
 msgstr ""
 
 #:  
-msgid "Last post"
+msgid "Workunit ID"
 msgstr ""
 
 #:  
-msgid "Manage subscriptions"
+msgid "Host ID"
 msgstr ""
 
 #:  
-msgid "Featured"
+msgid "Application ID"
 msgstr ""
 
 #:  
-msgid "Submitted on !datetime"
+msgid "Application version"
 msgstr ""
 
 #:  
-msgid "Comments"
+msgid "Claimed credit"
 msgstr ""
 
 #:  
-msgid "Opinion"
+msgid "Client state"
 msgstr ""
 
 #:  
-msgid "More"
+msgid "CPU time"
 msgstr ""
 
 #:  
-msgid "Tasks"
+msgid "Run time"
 msgstr ""
 
 #:  
-msgid "Generic"
+msgid "Exit status"
 msgstr ""
 
 #:  
-msgid "Work"
+msgid "Granted credit"
 msgstr ""
 
 #:  
-msgid "School"
+msgid "Outcome"
 msgstr ""
 
 #:  
-msgid "Presets"
+msgid "Received time"
 msgstr ""
 
 #:  
-msgid "Standard"
+msgid "Report deadline"
 msgstr ""
 
 #:  
-msgid "Maximum"
+msgid "Sent"
 msgstr ""
 
 #:  
-msgid "Green"
+msgid "Server state"
 msgstr ""
 
 #:  
-msgid "Minimum"
+msgid "Stderr out"
 msgstr ""
 
 #:  
-msgid "Custom"
+msgid "Validation state"
 msgstr ""
 
 #:  
-msgid "Update preset"
+msgid "App ID"
 msgstr ""
 
 #:  
-msgid "Advanced settings"
+msgid "Canonical credit"
 msgstr ""
 
 #:  
-msgid "Processor usage"
+msgid "Canonical result ID"
 msgstr ""
 
 #:  
-msgid "Run while computer is on battery power?"
+msgid "Created time"
 msgstr ""
 
 #:  
-msgid "Only applies to portable computers"
+msgid "Error mask"
 msgstr ""
 
 #:  
-msgid "Run while computer is in use?"
+msgid "Minimum quorum"
 msgstr ""
 
 #:  
-msgid "Run GPU work while computer is in use?"
+msgid "Max error tasks"
 msgstr ""
 
 #:  
-msgid "Enforced by version @number"
+msgid "Max success tasks"
 msgstr ""
 
 #:  
-msgid "\"In use\" means mouse/keyboard activity in last"
+msgid "Max total tasks"
 msgstr ""
 
 #:  
-msgid "minutes"
+msgid "Needs validation"
 msgstr ""
 
 #:  
-msgid "Suspend work if no mouse/keyboard activity in last"
+msgid "Initial replication"
 msgstr ""
 
 #:  
-msgid "Needed to enter low-power mode on some computers"
+msgid "Target number of results"
 msgstr ""
 
 #:  
-msgid "Suspend work if CPU usage is above"
+msgid "Application version ID"
 msgstr ""
 
 #:  
-msgid "0 means no restriction. Enforced by version @number"
+msgid "Plan class"
 msgstr ""
 
 #:  
-msgid "Do work only between the hours of:"
+msgid "Version number"
 msgstr ""
 
 #:  
-msgid "and"
+msgid "Computer"
 msgstr ""
 
 #:  
-msgid "No restriction if equal"
+msgid "App version ID"
 msgstr ""
 
 #:  
-msgid "Leave tasks in memory while suspended?"
+msgid "Consecutive valid tasks"
 msgstr ""
 
 #:  
-msgid "Suspended tasks will consume swap space if \"yes\""
+msgid "Number of tasks completed"
 msgstr ""
 
 #:  
-msgid "Switch between tasks every"
+msgid "Max tasks per day"
 msgstr ""
 
 #:  
-msgid "Recommended: @period minutes"
+msgid "Number of tasks today"
 msgstr ""
 
 #:  
-msgid "On multiprocessors, use at most"
+msgid "Manage subscriptions"
 msgstr ""
 
 #:  
-msgid "processors"
+msgid "Avg credit"
 msgstr ""
 
 #:  
-msgid "Set to 0 for no limit"
+msgid "Total credit"
 msgstr ""
 
 #:  
-msgid "% of the processors"
+msgid "More"
 msgstr ""
 
 #:  
-msgid "Use at most"
+msgid "Tasks"
 msgstr ""
 
 #:  
-msgid "% of the CPU time"
+msgid "Computers hidden"
 msgstr ""
 
 #:  
-msgid "Can be used to reduce CPU heat"
+msgid "This user has chosen not to show information about their computers."
 msgstr ""
 
 #:  
-msgid "Disk and memory usage"
+msgid "no projects..."
 msgstr ""
 
 #:  
-msgid "Disk: use at most"
+msgid "Moderation"
 msgstr ""
 
 #:  
-msgid "Disk: leave free at least"
+msgid "Unvetted profiles"
 msgstr ""
 
 #:  
-msgid "Values smaller than @number are ignored"
+msgid "Inbox"
 msgstr ""
 
 #:  
-msgid "% of total"
+msgid "Compose new"
 msgstr ""
 
 #:  
-msgid "Tasks checkpoint to disk at most every"
+msgid "Posts contributed"
 msgstr ""
 
 #:  
-msgid "seconds"
+msgid "Friends (@count)"
 msgstr ""
 
 #:  
-msgid "Swap space: use at most"
+msgid "Welcome back!"
 msgstr ""
 
 #:  
-msgid "Memory: when computer is in use, use at most"
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run "
+"a screensaver to search for gravitational waves from spinning neutron "
+"stars (also called pulsars) using data from the LIGO gravitational "
+"wave detector."
 msgstr ""
 
 #:  
-msgid "Memory: when computer is not in use, use at most"
+msgid "Learn more"
 msgstr ""
 
 #:  
-msgid "Network usage"
+msgid "View account"
 msgstr ""
 
 #:  
-msgid "Computer is connected to the Internet about every"
+msgid "User of the day"
 msgstr ""
 
 #:  
-msgid "days"
+msgid "Over 500,000 volunteers and counting."
 msgstr ""
 
 #:  
-msgid ""
-"Leave blank or 0 if always connected. @project will try to maintain at "
-"least this much work."
+msgid "Windows"
 msgstr ""
 
 #:  
-msgid "Maintain enough work for an additional"
+msgid "Mac"
 msgstr ""
 
 #:  
-msgid "Confirm before connecting to Internet?"
+msgid "Linux"
 msgstr ""
 
 #:  
-msgid "Matters only if you have a modem, ISDN, or VPN connection"
+msgid "Credits per day"
 msgstr ""
 
 #:  
-msgid "Disconnect when done?"
+msgid "View user profile."
 msgstr ""
 
 #:  
-msgid "Maximum download rate"
+msgid "Profile awaiting moderator approval"
 msgstr ""
 
 #:  
-msgid "Maximum upload rate"
+msgid "Background"
 msgstr ""
 
 #:  
-msgid "Use network only between the hours of:"
+msgid "Opinion"
 msgstr ""
 
 #:  
-msgid "Transfer at most"
+msgid "Enter your password to save changes"
 msgstr ""
 
 #:  
-msgid "Skip image file verification?"
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
 msgstr ""
 
 #:  
-msgid ""
-"Check this ONLY if your Internet provider modifies image files (UMTS "
-"does this, for example). Skipping verification reduces the security of "
-"BOINC."
+msgid "BOINC user ID"
 msgstr ""
 
 #:  
-msgid "Show comparison view"
+msgid "Drupal user ID"
 msgstr ""
 
 #:  
-msgid "Resource settings"
+msgid "Account key"
 msgstr ""
 
 #:  
-msgid "Resource share"
+msgid "Weak account key"
 msgstr ""
 
 #:  
-msgid ""
-"Determines the proportion of your computer's resources allocated to "
-"this project. Example: if you participate in two BOINC projects with "
-"resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3."
+msgid "Cross-project ID"
 msgstr ""
 
 #:  
-msgid "Use CPU"
+msgid "Change password"
 msgstr ""
 
 #:  
-msgid "Use NVIDIA GPU"
+msgid "Presets"
 msgstr ""
 
 #:  
-msgid "Use ATI GPU"
+msgid "Standard"
 msgstr ""
 
 #:  
-msgid "Use INTEL GPU"
+msgid "Maximum"
 msgstr ""
 
 #:  
-msgid "Beta settings"
+msgid "Green"
 msgstr ""
 
 #:  
-msgid "Run test applications?"
+msgid "Minimum"
 msgstr ""
 
 #:  
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
+msgid "Custom"
 msgstr ""
 
 #:  
-msgid "Default set"
+msgid "Update preset"
 msgstr ""
 
 #:  
-msgid "Set used for new computers"
+msgid "Advanced settings"
 msgstr ""
 
 #:  
-msgid "Merge"
+msgid "Processor usage"
 msgstr ""
 
 #:  
-msgid "Delete"
+msgid "Run while computer is on battery power?"
 msgstr ""
 
 #:  
-msgid ""
-"This will delete host @id from your account forever. Are you sure this "
-"is OK?"
+msgid "Only applies to portable computers"
 msgstr ""
 
 #:  
-msgid "Mark all topics read"
+msgid "Run while computer is in use?"
 msgstr ""
 
 #:  
-msgid "Mark all forums read"
+msgid "Run GPU work while computer is in use?"
 msgstr ""
 
 #:  
-msgid ""
-"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
-"administrator if this problem persists."
+msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr ""
 
 #:  
-msgid "The answer you entered for the CAPTCHA was not correct."
+msgid "minutes"
 msgstr ""
 
 #:  
-msgid "Access denied. You must login to view this page."
+msgid "Suspend work if no mouse/keyboard activity in last"
 msgstr ""
 
 #:  
-msgid "You are not authorized to access this page."
+msgid "Needed to enter low-power mode on some computers"
 msgstr ""
 
 #:  
-msgid "Disable rich-text"
+msgid "Suspend work if CPU usage is above"
 msgstr ""
 
 #:  
-msgid "Enable rich-text"
+msgid "0 means no restriction. Enforced by version @number"
 msgstr ""
 
 #:  
-msgid "View user profile."
+msgid "Do work only between the hours of:"
 msgstr ""
 
 #:  
-msgid "BBcode help"
+msgid "and"
 msgstr ""
 
 #:  
-msgid "Post comment"
+msgid "No restriction if equal"
 msgstr ""
 
 #:  
-msgid "No @type tasks"
+msgid "Leave tasks in memory while suspended?"
 msgstr ""
 
 #:  
-msgid "There are no tasks of this type on record"
+msgid "Suspended tasks will consume swap space if \"yes\""
 msgstr ""
 
 #:  
-msgid "Clear"
+msgid "Switch between tasks every"
 msgstr ""
 
 #:  
-msgid ""
-"This will remove all of your settings from the @name preference set. "
-"Are you sure?"
+msgid "Recommended: @period minutes"
 msgstr ""
 
 #:  
-msgid "These apply to all BOINC projects in which you participate."
+msgid "On multiprocessors, use at most"
 msgstr ""
 
 #:  
-msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
+msgid "processors"
 msgstr ""
 
 #:  
-msgid "Preferences last modified: @mod_time"
+msgid "Set to 0 for no limit"
 msgstr ""
 
 #:  
-msgid "Combined preferences"
+msgid "% of the processors"
 msgstr ""
 
 #:  
-msgid "Switch View"
+msgid "Use at most"
 msgstr ""
 
 #:  
-msgid "every"
+msgid "% of the CPU time"
 msgstr ""
 
 #:  
-msgid "Edit"
+msgid "Can be used to reduce CPU heat"
 msgstr ""
 
 #:  
-msgid ""
-"This will remove all of your settings from the \"@name\" preference "
-"set. Are you sure?"
+msgid "Disk and memory usage"
 msgstr ""
 
 #:  
-msgid "Add"
+msgid "Disk: use at most"
 msgstr ""
 
 #:  
-msgid "General settings"
+msgid "Disk: leave free at least"
 msgstr ""
 
 #:  
-msgid "Time zone"
+msgid "Values smaller than @number are ignored"
 msgstr ""
 
 #:  
-msgid "Notification settings"
+msgid "% of total"
 msgstr ""
 
 #:  
-msgid "Receive email notification for private messages?"
+msgid "Tasks checkpoint to disk at most every"
 msgstr ""
 
 #:  
-msgid "Receive email notification for friend requests?"
+msgid "seconds"
 msgstr ""
 
 #:  
-msgid "Language settings"
+msgid "Swap space: use at most"
 msgstr ""
 
 #:  
-msgid ""
-"This account's default language for e-mails and preferred language for "
-"site presentation."
+msgid "Memory: when computer is in use, use at most"
 msgstr ""
 
 #:  
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> "
-"associated with your e-mail address, it will be used for your user "
-"picture."
+msgid "Memory: when computer is not in use, use at most"
 msgstr ""
 
 #:  
-msgid "Your Gravatar will not be shown if you upload a user picture."
+msgid "Network usage"
 msgstr ""
 
 #:  
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> "
-"associated with your e-mail address, use it for your user picture."
+msgid "Computer is connected to the Internet about every"
 msgstr ""
 
 #:  
-msgid "Gravatar will not be shown if an avatar is uploaded."
+msgid "days"
 msgstr ""
 
 #:  
-msgid "Avatar settings"
+msgid ""
+"Leave blank or 0 if always connected. @project will try to maintain at "
+"least this much work."
 msgstr ""
 
 #:  
-msgid "This is not available until your profile is set up."
+msgid "Maintain enough work for an additional"
 msgstr ""
 
 #:  
-msgid "Create a profile"
+msgid "Confirm before connecting to Internet?"
 msgstr ""
 
 #:  
-msgid "Upload an avatar"
+msgid "Matters only if you have a modem, ISDN, or VPN connection"
 msgstr ""
 
 #:  
-msgid "Forum settings"
+msgid "Disconnect when done?"
 msgstr ""
 
 #:  
-msgid "In discussion topics, show at most @comments_per_page"
+msgid "Maximum download rate"
 msgstr ""
 
 #:  
-msgid "comments per page"
+msgid "Maximum upload rate"
 msgstr ""
 
 #:  
-msgid "Sort comments in discussions"
+msgid "Use network only between the hours of:"
 msgstr ""
 
 #:  
-msgid "Newest post first"
+msgid "Transfer at most"
 msgstr ""
 
 #:  
-msgid "Oldest post first"
+msgid "Skip image file verification?"
 msgstr ""
 
 #:  
-msgid "Signature"
+msgid ""
+"Check this ONLY if your Internet provider modifies image files (UMTS "
+"does this, for example). Skipping verification reduces the security of "
+"BOINC."
 msgstr ""
 
 #:  
-msgid "Your signature will be publicly displayed at the end of your comments."
+msgid "search"
 msgstr ""
 
 #:  
-msgid "Hide signatures in forums"
+msgid "What is @this_project?"
 msgstr ""
 
 #:  
-msgid "Privacy settings"
+msgid "Login"
 msgstr ""
 
 #:  
-msgid "Is it OK for @project and your team (if any) to email you?"
+msgid "BOINC"
 msgstr ""
 
 #:  
-msgid "Should @project show your computers on its web site?"
+msgid "Project"
 msgstr ""
 
 #:  
-msgid "Hide"
+msgid "No @type tasks"
 msgstr ""
 
 #:  
-msgid "Hide this topic"
+msgid "There are no tasks of this type on record"
 msgstr ""
 
 #:  
-msgid "Lock"
+msgid "Details"
 msgstr ""
 
 #:  
-msgid "Lock this thread for comments"
+msgid "Password"
 msgstr ""
 
 #:  
-msgid "Make sticky"
+msgid "Enter the password that accompanies your username."
 msgstr ""
 
 #:  
-msgid "Make this topic sticky"
+msgid "Request new password"
 msgstr ""
 
 #:  
-msgid "moderation"
+msgid "Mark all topics read"
 msgstr ""
 
 #:  
-msgid "Post new comment"
+msgid "Mark all forums read"
 msgstr ""
 
 #:  
-msgid "You must earn 1 more credit!"
+msgid ""
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
 msgstr ""
 
 #:  
-msgid "Joined"
+msgid "The answer you entered for the CAPTCHA was not correct."
 msgstr ""
 
 #:  
-msgid "Credit"
+msgid "Access denied. You must login to view this page."
 msgstr ""
 
 #:  
-msgid "RAC"
+msgid "You are not authorized to access this page."
 msgstr ""
 
 #:  
-msgid "Join team"
+msgid "Disable rich-text"
 msgstr ""
 
 #:  
-msgid "Click here to become a member of @this_team"
+msgid "Enable rich-text"
 msgstr ""
 
 #:  
-msgid "Join this team"
+msgid "Teams"
 msgstr ""
 
 #:  
-msgid "Manage team"
+msgid ""
+"@project participants may form teams. You may belong to only one team. "
+"You can join or quit a team at any time. To join a team, visit its "
+"team page and click \"Join this team\". Each team has a founder who "
+"may:"
 msgstr ""
 
 #:  
-msgid "View member list"
+msgid "access team members' email addresses"
 msgstr ""
 
 #:  
-msgid "Member names and emails"
+msgid "edit the team's name and description"
 msgstr ""
 
 #:  
-msgid "View change history"
+msgid "add or remove team admins"
 msgstr ""
 
 #:  
-msgid "See member activity"
+msgid "remove members from the team"
 msgstr ""
 
 #:  
-msgid "Manage team message board"
+msgid "disband a team if it has no members"
 msgstr ""
 
 #:  
-msgid "Create or manage message board"
+msgid "Search teams"
 msgstr ""
 
 #:  
-msgid "Remove members"
+msgid "Create a new team"
 msgstr ""
 
 #:  
-msgid "Change founder"
+msgid ""
+"If you cannot find a team that is right for you, you can create a "
+"team."
 msgstr ""
 
 #:  
-msgid "Manage team admins"
+msgid "You must earn 1 more credit!"
 msgstr ""
 
 #:  
-msgid "Edit team info"
+msgid "@count million ops/sec"
 msgstr ""
 
 #:  
-msgid "Remove team"
+msgid "@rate KiB/sec"
 msgstr ""
 
 #:  
-msgid "Team forum"
+msgid "@count days"
 msgstr ""
 
 #:  
-msgid "A discussion forum has been set up for team members."
+msgid "Stderr output"
 msgstr ""
 
 #:  
-msgid "Enter forum"
+msgid "Email address"
 msgstr ""
 
 #:  
-msgid "Leave team"
+msgid "Enter your @s email address."
 msgstr ""
 
 #:  
-msgid "Click here to revoke your membership with @this_team"
+msgid "Log in"
 msgstr ""
 
 #:  
-msgid "Leave this team"
+msgid "Sorry, unrecognized email address or password."
 msgstr ""
 
 #:  
-msgid "Edit message board"
+msgid "Have you forgotten your password?"
 msgstr ""
 
 #:  
-msgid "Message board title"
+msgid "No results found..."
 msgstr ""
 
 #:  
-msgid "Text only, no HTML tags"
+msgid "Anonymous"
 msgstr ""
 
 #:  
-msgid "Minimum time between posts"
+msgid "Forgot password"
 msgstr ""
 
 #:  
-msgid "Seconds"
+msgid "authenticator-based login"
 msgstr ""
 
 #:  
-msgid "Minimum total credit to post"
+msgid ""
+"Enter your email address to receive instructions for resetting your "
+"password (or use the !authenticator_login)."
 msgstr ""
 
 #:  
-msgid "Minimum avg credit to post"
+msgid "Send"
 msgstr ""
 
 #:  
-msgid "Allow public to read board?"
+msgid "Submitted by !username on !datetime"
 msgstr ""
 
 #:  
-msgid "Save message board"
+msgid "Send message"
 msgstr ""
 
 #:  
-msgid "About message boards"
+msgid "Add as friend"
 msgstr ""
 
 #:  
-msgid "This is a team-only message board"
+msgid "Website"
 msgstr ""
 
 #:  
-msgid "Only members may post"
+msgid "Team"
 msgstr ""
 
 #:  
-msgid "Only members may read (optional)"
+msgid "Create new team"
 msgstr ""
 
 #:  
-msgid "Founder & Team Admins have moderator privileges"
+msgid "Search"
 msgstr ""
 
 #:  
-msgid "Changing the team founder"
+msgid "Total credits"
 msgstr ""
 
 #:  
-msgid "Notes about changes in foundership:"
+msgid "Recent avg credits"
 msgstr ""
 
 #:  
-msgid "Any member of the team is eligible"
+msgid "Type"
 msgstr ""
 
 #:  
-msgid "Current founder becomes a normal user"
+msgid "New members in last day"
 msgstr ""
 
 #:  
-msgid "Foundership can be requested by team members:"
+msgid "Total members"
 msgstr ""
 
 #:  
-msgid "One request is allowed at a time"
+msgid "Active members"
 msgstr ""
 
 #:  
-msgid "It must be 60 days since any previous request"
+msgid "Members with credit"
 msgstr ""
 
 #:  
-msgid "Any active request must be older than 90 days"
+msgid "Web site"
 msgstr ""
 
 #:  
-msgid "Current founder has 60 days to respond to a request"
+msgid "Description"
 msgstr ""
 
 #:  
-msgid "Add team admin"
+msgid "BBcode help"
 msgstr ""
 
 #:  
-msgid "Enter email address"
+msgid "Post comment"
 msgstr ""
 
-#:  
-msgid "Current team admins"
+#: preference set
+msgctxt "preference set"
+msgid "Home"
 msgstr ""
 
 #:  
-msgid "About team admins"
+msgid "The latest news from the @site_name project"
 msgstr ""
 
 #:  
-msgid "Team admins can:"
+msgid "Hide"
 msgstr ""
 
 #:  
-msgid "Edit team information"
+msgid "Hide this topic"
 msgstr ""
 
 #:  
-msgid "View the team's join / quit history"
+msgid "Lock"
 msgstr ""
 
 #:  
-msgid "Moderate the team forum"
+msgid "Lock this thread for comments"
 msgstr ""
 
 #:  
-msgid "Remove members from the team"
+msgid "Make sticky"
 msgstr ""
 
 #:  
-msgid "Disband a team if it has no members"
+msgid "Make this topic sticky"
 msgstr ""
 
 #:  
-msgid "Team admins cannot:"
+msgid "moderation"
 msgstr ""
 
 #:  
-msgid "Change the team founder"
+msgid "Reply"
 msgstr ""
 
 #:  
-msgid "Add / Remove team admins"
+msgid "Reply to this comment"
 msgstr ""
 
 #:  
-msgid ""
-"If a team admin quits the team, they cease to be a team admin. We "
-"recommend only selecting people you know and trust"
+msgid "Quote"
 msgstr ""
 
 #:  
-msgid "Choose type"
+msgid "Reply to this comment with quote"
 msgstr ""
 
 #:  
-msgid "Team name"
+msgid "Edit"
 msgstr ""
 
 #:  
-msgid "Team name -- HTML version (optional)"
+msgid "Edit this comment"
 msgstr ""
 
 #:  
-msgid "You may use limited HTML tags"
+msgid "Delete"
 msgstr ""
 
 #:  
-msgid "Team website (optional)"
+msgid "Delete this comment"
 msgstr ""
 
 #:  
-msgid "Displayed on the team's page"
+msgid "Hide this comment"
 msgstr ""
 
 #:  
-msgid "Type of team"
-msgstr ""
-
-#:  
-msgid "Accept new members?"
-msgstr ""
-
-#:  
-msgid "Description of team"
-msgstr ""
-
-#:  
-msgid "Create new team"
-msgstr ""
-
-#:  
-msgid "Create a team"
-msgstr ""
-
-#:  
-msgid "Save team"
-msgstr ""
-
-#:  
-msgid "Create team message board"
-msgstr ""
-
-#:  
-msgid "Create message board"
-msgstr ""
-
-#:  
-msgid "You may create a message board for use by @team"
-msgstr ""
-
-#:  
-msgid ""
-"Please set the minimum average credit that a user is required to have "
-"in order to post to this message board."
-msgstr ""
-
-#:  
-msgid "Post new topic"
-msgstr ""
-
-#:  
-msgid "Anonymous"
-msgstr ""
-
-#:  
-msgid "Unpublished"
-msgstr ""
-
-#:  
-msgid "parent removed"
-msgstr ""
-
-#:  
-msgid "Sorry, unrecognized email address or password."
-msgstr ""
-
-#:  
-msgid "Have you forgotten your password?"
+msgid "Message @id"
 msgstr ""
 
 #:  
-msgid "Id"
+msgid "Convert"
 msgstr ""
 
 #:  
-msgid "Recent average credit"
+msgid "Convert this comment to a new topic"
 msgstr ""
 
 #:  
-msgid "Members"
+msgid "message @id"
 msgstr ""
 
 #:  
-msgid "Total Credit"
+msgid " in response to !parent"
 msgstr ""
 
 #:  
-msgid "User ID"
+msgid "Post new comment"
 msgstr ""
 
 #:  
-msgid "User"
+msgid "Comments"
 msgstr ""
 
 #:  
-msgid "Admin since"
+msgid "discuss"
 msgstr ""
 
 #:  
-msgid "Team ID"
+msgid "n/a"
 msgstr ""
 
 #:  
-msgid "User joined"
+msgid "@time ago"
 msgstr ""
 
 #:  
-msgid "Timestamp"
+msgid "Threads"
 msgstr ""
 
 #:  
-msgid "Account Key"
+msgid "Posts"
 msgstr ""
 
 #:  
-msgid "CPID"
+msgid "Last post"
 msgstr ""
 
 #:  
-msgid "Email Address"
+msgid ""
+"Please be responsible in what you write and do not create posts which "
+"are offensive or insulting. Offensive posts or threads may be deleted "
+"by forum moderators without warning or discussion. Do not respond to "
+"offensive postings. Click on the \"report\" button at the bottom of "
+"the post to call it to the attention of the moderators."
 msgstr ""
 
 #:  
-msgid "Password Hash"
+msgid "this project"
 msgstr ""
 
 #:  
-msgid "Postal Code"
+msgid ""
+"We also ask that you keep all discussion on the message boards related "
+"to @project or BOINC with the small exception of the Science message "
+"board where you are free to discuss anything relevant to the "
+"underlying science. Participants interested in broader discussions "
+"should post to unofficial forums for @project."
 msgstr ""
 
 #:  
-msgid "Send Email"
+msgid "These message boards now support BBCode tags only."
 msgstr ""
 
 #:  
-msgid "Show Hosts"
+msgid "Featured"
 msgstr ""
 
 #:  
-msgid "URL"
+msgid "Locked"
 msgstr ""
 
 #:  
-msgid "Computer ID"
+msgid "Submitted on !datetime"
 msgstr ""
 
 #:  
-msgid "Location"
+msgid "Computers pending"
 msgstr ""
 
 #:  
-msgid "While BOINC running, % of time work is allowed"
+msgid ""
+"This user does not yet have any associated computers. Computers will "
+"be displayed when they have earned their first credits."
 msgstr ""
 
 #:  
-msgid "Average turnaround time"
+msgid "Show IP address"
 msgstr ""
 
 #:  
-msgid "Created"
+msgid "Download the desktop software"
 msgstr ""
 
 #:  
-msgid "While BOINC running, % of time host has an Internet connection"
+msgid "Run the installer"
 msgstr ""
 
 #:  
-msgid "Average CPU efficiency"
+msgid "hours"
 msgstr ""
 
 #:  
-msgid "Free disk space"
+msgid "When prompted enter @siteurl"
 msgstr ""
 
 #:  
-msgid "Total disk space"
+msgid "Merge"
 msgstr ""
 
 #:  
-msgid "Task duration correction factor"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this "
+"is OK?"
 msgstr ""
 
 #:  
-msgid "Avg. credit"
+msgid "Post topic"
 msgstr ""
 
 #:  
-msgid "External IP address"
+msgid "Leave team"
 msgstr ""
 
 #:  
-msgid "Cross project ID"
+msgid "Click here to revoke your membership with @this_team"
 msgstr ""
 
 #:  
-msgid "Last IP address"
+msgid "Leave this team"
 msgstr ""
 
 #:  
-msgid "Cache"
+msgid "Request foundership"
 msgstr ""
 
 #:  
-msgid "Memory"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
 msgstr ""
 
 #:  
-msgid "Swap space"
+msgid "Initiate request"
 msgstr ""
 
 #:  
-msgid "Maximum daily WU quota per CPU"
+msgid "No active computers"
 msgstr ""
 
 #:  
-msgid "Average download rate"
+msgid "This user has no computers that have been active in the last 30 days."
 msgstr ""
 
 #:  
-msgid "Average upload rate"
+msgid "Clear"
 msgstr ""
 
 #:  
-msgid "Same IP address count"
+msgid ""
+"This will remove all of your settings from the @name preference set. "
+"Are you sure?"
 msgstr ""
 
 #:  
-msgid "% of time BOINC client is running"
+msgid "Your community preferences have been updated."
 msgstr ""
 
 #:  
-msgid "Operating system"
+msgid "Combined preferences"
 msgstr ""
 
 #:  
-msgid "Operating system version"
+msgid "Switch View"
 msgstr ""
 
 #:  
-msgid "Measured floating point speed"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference "
+"set. Are you sure?"
 msgstr ""
 
 #:  
-msgid "Measured integer speed"
+msgid "Approve profile"
 msgstr ""
 
 #:  
-msgid "CPU model"
+msgid "Approve this profile content"
 msgstr ""
 
 #:  
-msgid "Number of processors"
+msgid "Reject this profile content"
 msgstr ""
 
 #:  
-msgid "CPU"
+msgid "These apply to all BOINC projects in which you participate."
 msgstr ""
 
 #:  
-msgid "Number of times client has contacted server"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
 msgstr ""
 
 #:  
-msgid "Last contact"
+msgid "Preferences last modified: @mod_time"
 msgstr ""
 
 #:  
-msgid "Serial number"
+msgid "every"
 msgstr ""
 
 #:  
-msgid "Timezone"
+msgid "Add"
 msgstr ""
 
 #:  
-msgid "Platform ID"
+msgid "My team"
 msgstr ""
 
 #:  
-msgid "Task ID"
+msgid "You are a member of @team."
 msgstr ""
 
 #:  
-msgid "Workunit ID"
+msgid "View my team"
 msgstr ""
 
 #:  
-msgid "Host ID"
+msgid "Manage team"
 msgstr ""
 
 #:  
-msgid "Application ID"
+msgid "View member list"
 msgstr ""
 
 #:  
-msgid "Application version"
+msgid "Member names and emails"
 msgstr ""
 
 #:  
-msgid "Claimed credit"
+msgid "View change history"
 msgstr ""
 
 #:  
-msgid "Client state"
+msgid "See member activity"
 msgstr ""
 
 #:  
-msgid "CPU time"
+msgid "Manage team message board"
 msgstr ""
 
 #:  
-msgid "Run time"
+msgid "Create or manage message board"
 msgstr ""
 
 #:  
-msgid "Exit status"
+msgid "Remove members"
 msgstr ""
 
 #:  
-msgid "Granted credit"
+msgid "Change founder"
 msgstr ""
 
 #:  
-msgid "Outcome"
+msgid "Manage team admins"
 msgstr ""
 
 #:  
-msgid "Received time"
+msgid "Edit team info"
 msgstr ""
 
 #:  
-msgid "Report deadline"
+msgid "Remove team"
 msgstr ""
 
 #:  
-msgid "Sent"
+msgid "Team forum"
 msgstr ""
 
 #:  
-msgid "Server state"
+msgid "A discussion forum has been set up for team members."
 msgstr ""
 
 #:  
-msgid "Stderr out"
+msgid "Enter forum"
 msgstr ""
 
 #:  
-msgid "Validation state"
+msgid "Join team"
 msgstr ""
 
 #:  
-msgid "App ID"
+msgid "Click here to become a member of @this_team"
 msgstr ""
 
 #:  
-msgid "Canonical credit"
+msgid "Join this team"
 msgstr ""
 
 #:  
-msgid "Canonical result ID"
+msgid "Choose type"
 msgstr ""
 
 #:  
-msgid "Created time"
+msgid "Team name"
 msgstr ""
 
 #:  
-msgid "Error mask"
+msgid "Text only, no HTML tags"
 msgstr ""
 
 #:  
-msgid "Minimum quorum"
+msgid "Team name -- HTML version (optional)"
 msgstr ""
 
 #:  
-msgid "Max error tasks"
+msgid "You may use limited HTML tags"
 msgstr ""
 
 #:  
-msgid "Max success tasks"
+msgid "Team website (optional)"
 msgstr ""
 
 #:  
-msgid "Max total tasks"
+msgid "Displayed on the team's page"
 msgstr ""
 
 #:  
-msgid "Needs validation"
+msgid "Type of team"
 msgstr ""
 
 #:  
-msgid "Initial replication"
+msgid "Accept new members?"
 msgstr ""
 
 #:  
-msgid "Target number of results"
+msgid "Description of team"
 msgstr ""
 
 #:  
-msgid "Application version ID"
+msgid "Create a team"
 msgstr ""
 
 #:  
-msgid "Plan class"
+msgid "Save team"
 msgstr ""
 
 #:  
-msgid "Version number"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
 msgstr ""
 
 #:  
-msgid "Computer"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) "
+"to create an\n"
+"        an account at this project, then use that account to connect "
+"with the\n"
+"        command-line version."
 msgstr ""
 
 #:  
-msgid "App version ID"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
 msgstr ""
 
 #:  
-msgid "Consecutive valid tasks"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
 msgstr ""
 
 #:  
-msgid "Number of tasks completed"
+msgid ""
+"If you have run BOINC under the account, you can still access it. "
+"Here's how:"
 msgstr ""
 
 #:  
-msgid "Max tasks per day"
+msgid "BOINC documentation"
 msgstr ""
 
 #:  
-msgid "Number of tasks today"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for "
+"help finding this)."
 msgstr ""
 
 #:  
-msgid "Show IP address"
+msgid ""
+"Find your account file for this project; it will have a name like "
+"%file (where the project URL is %url)."
 msgstr ""
 
 #:  
-msgid "hours"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something "
+"like:"
 msgstr ""
 
 #:  
-msgid "@count million ops/sec"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
 msgstr ""
 
 #:  
-msgid "@rate KiB/sec"
+msgid "Paste the string into the field below, and click OK."
 msgstr ""
 
 #:  
-msgid "@count days"
+msgid ""
+"You will now be logged in to your account; update the email and "
+"password of your account."
 msgstr ""
 
 #:  
-msgid "Remove friend"
+msgid "Log in with authenticator"
 msgstr ""
 
 #:  
-msgid "Ban user"
+msgid "OK"
 msgstr ""
 
 #:  
-msgid "Add as friend"
+msgid "Post new topic"
 msgstr ""
 
 #:  
-msgid "Team"
+msgid "Create team message board"
 msgstr ""
 
 #:  
-msgid "Reply"
+msgid "Message board title"
 msgstr ""
 
 #:  
-msgid "Reply to this comment"
+msgid "Minimum time between posts"
 msgstr ""
 
 #:  
-msgid "Quote"
+msgid "Seconds"
 msgstr ""
 
 #:  
-msgid "Reply to this comment with quote"
+msgid "Minimum total credit to post"
 msgstr ""
 
 #:  
-msgid "Edit this comment"
+msgid "Minimum avg credit to post"
 msgstr ""
 
 #:  
-msgid "Delete this comment"
+msgid "Allow public to read board?"
 msgstr ""
 
 #:  
-msgid "Hide this comment"
+msgid "Create message board"
 msgstr ""
 
 #:  
-msgid "Convert"
+msgid "About message boards"
 msgstr ""
 
 #:  
-msgid "Convert this comment to a new topic"
+msgid "You may create a message board for use by @team"
 msgstr ""
 
 #:  
-msgid "Details"
+msgid "Only members may post"
 msgstr ""
 
 #:  
-msgid "@ip_address (same the last @count times)"
+msgid "Only members may read (optional)"
 msgstr ""
 
 #:  
-msgid "commented on"
+msgid "Founder & Team Admins have moderator privileges"
 msgstr ""
 
 #:  
-msgid "Make unsticky"
+msgid "@ip_address (same the last @count times)"
 msgstr ""
 
 #:  
-msgid "Remove sticky status from this topic"
+msgid "Revise or post comment"
 msgstr ""
 
 #:  
@@ -1974,416 +1907,398 @@ msgid "Computer @old_id has been merged successfully into @id."
 msgstr ""
 
 #:  
-msgid "started discussion"
-msgstr ""
-
-#:  
-msgid "posted"
+msgid "parent removed"
 msgstr ""
 
 #:  
-msgid "Minimum value not met for @field"
+msgid "Remove"
 msgstr ""
 
 #:  
-msgid "Remove"
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
 msgstr ""
 
 #:  
-msgid "hidden"
+msgid "Make unsticky"
 msgstr ""
 
 #:  
-msgid "Invalid data type for @field"
+msgid "Remove sticky status from this topic"
 msgstr ""
 
 #:  
-msgid ""
-"Authentication is required when changing E-mail address or setting new "
-"password."
+msgid "Unhide"
 msgstr ""
 
 #:  
-msgid "Request foundership"
+msgid "Unhide this comment"
 msgstr ""
 
 #:  
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
+msgid "Unpublished"
 msgstr ""
 
 #:  
-msgid "Initiate request"
+msgid "Computers @old_ids have been merged successfully into @id."
 msgstr ""
 
 #:  
-msgid "A BOINC account already exists for @email."
+msgid "Joined"
 msgstr ""
 
 #:  
-msgid ""
-"Please be responsible in what you write and do not create posts which "
-"are offensive or insulting. Offensive posts or threads may be deleted "
-"by forum moderators without warning or discussion. Do not respond to "
-"offensive postings. Click on the \"report\" button at the bottom of "
-"the post to call it to the attention of the moderators."
+msgid "Credit"
 msgstr ""
 
 #:  
-msgid "this project"
+msgid "RAC"
 msgstr ""
 
 #:  
 msgid ""
-"We also ask that you keep all discussion on the message boards related "
-"to @project or BOINC with the small exception of the Science message "
-"board where you are free to discuss anything relevant to the "
-"underlying science. Participants interested in broader discussions "
-"should post to unofficial forums for @project."
+"No account exists for @email -- select \"Create new account\" to "
+"register"
 msgstr ""
 
 #:  
-msgid "These message boards now support BBCode tags only."
+msgid "started discussion"
 msgstr ""
 
 #:  
-msgid "Posts contributed"
+msgid "commented on"
 msgstr ""
 
 #:  
-msgid "Profile awaiting moderator approval"
+msgid "Password entered is not valid. Please verify that it is correct."
 msgstr ""
 
 #:  
-msgid "Approve profile"
+msgid "Minimum value not met for @field"
 msgstr ""
 
 #:  
-msgid "Approve this profile content"
+msgid "Invalid data type for @field"
 msgstr ""
 
 #:  
-msgid "Edit profile"
+msgid "News"
 msgstr ""
 
 #:  
-msgid "Edit the content of this profile"
+msgid "Remove friend"
 msgstr ""
 
 #:  
-msgid "Remove profile"
+msgid "ignore list"
 msgstr ""
 
 #:  
-msgid "Remove this profile content from the system"
+msgid "here"
 msgstr ""
 
 #:  
-msgid "The team founder has @count days to respond to your transfer request."
+msgid "!username is on your !ignore_list. Click !here to view this post."
 msgstr ""
 
 #:  
-msgid "Reject profile"
+msgid "hidden"
 msgstr ""
 
 #:  
-msgid "Reject this profile content"
+msgid "Unknown"
 msgstr ""
 
 #:  
-msgid "Reason for rejecting this profile"
+msgid "Invalid setting for \"%preference\""
 msgstr ""
 
 #:  
-msgid ""
-"This reason will be included in an email to the user. Please write a "
-"brief explanation of the problem and how to fix it."
+msgid "!site: comment posted to \"!topic_name\""
 msgstr ""
 
 #:  
-msgid "Submit"
+msgid "!author has posted a reply to \"!topic_name\"."
 msgstr ""
 
 #:  
-msgid "project"
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
 msgstr ""
 
 #:  
-msgid ""
-"No account exists for @email -- select \"Create new account\" to "
-"register"
+msgid "The team founder has @count days to respond to your transfer request."
 msgstr ""
 
 #:  
-msgid "Unknown"
+msgid "Unlock"
 msgstr ""
 
 #:  
-msgid "My team"
+msgid "Unlock this thread for comments"
 msgstr ""
 
 #:  
-msgid "You are a member of @team."
+msgid "project"
 msgstr ""
 
 #:  
-msgid "View my team"
+msgid "@email is not a well formed email address, please verify"
 msgstr ""
 
 #:  
-msgid "Invalid setting for \"%preference\""
+msgid "Please enter your email address"
 msgstr ""
 
 #:  
-msgid "Pending"
+msgid "There is no account with that authenticator."
 msgstr ""
 
 #:  
-msgid ""
-"You must earn @count more credits to be able to post comments on this "
-"site."
+msgid "That authenticator is not valid."
 msgstr ""
 
 #:  
-msgid "Moderation"
+msgid "Send request"
 msgstr ""
 
 #:  
-msgid "Unvetted profiles"
+msgid "Friend request from !name [!site]"
 msgstr ""
 
 #:  
-msgid "Reason for banning this user"
+msgid "Message"
 msgstr ""
 
 #:  
 msgid ""
-"This reason will be included in an email to the user. Please write a "
-"brief explanation of why the user is being banned."
+"!name added you as a friend on !site. You can approve or deny this "
+"request. Denying a request will not send a notification, but will "
+"remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
 msgstr ""
 
 #:  
-msgid "Duration of the ban"
+msgid "Cancel friend request"
 msgstr ""
 
 #:  
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgid "Please set the minimum time required between posts."
 msgstr ""
 
 #:  
-msgid "Lift user ban"
+msgid ""
+"Please set the minimum total credit that a user must earn in order to "
+"post to this message board."
 msgstr ""
 
 #:  
-msgid "You are banned from community participation until @date"
+msgid ""
+"Please set the minimum average credit that a user is required to have "
+"in order to post to this message board."
 msgstr ""
 
 #:  
-msgid "Computers @old_ids have been merged successfully into @id."
+msgid "Edit message board"
 msgstr ""
 
 #:  
-msgid "A team named \"@name\" already exists."
+msgid "Save message board"
 msgstr ""
 
 #:  
-msgid "Post topic"
+msgid "This is a team-only message board"
 msgstr ""
 
 #:  
-msgid "Please enter your email address"
+msgid "Maximum value exceeded for @field"
 msgstr ""
 
 #:  
-msgid "Password entered is not valid. Please verify that it is correct."
+msgid "Approve request"
 msgstr ""
 
 #:  
-msgid "Make founder"
+msgid "!name accepted your friend request [!site]"
 msgstr ""
 
 #:  
-msgid "User of the day"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
 msgstr ""
 
 #:  
-msgid "!site: comment posted to \"!topic_name\""
+msgid "posted"
 msgstr ""
 
 #:  
-msgid "!author has posted a reply to \"!topic_name\"."
+msgid "Add team admin"
 msgstr ""
 
 #:  
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
+msgid "Enter email address"
 msgstr ""
 
 #:  
-msgid "At least one application must be selected"
+msgid "Current team admins"
 msgstr ""
 
 #:  
-msgid "Account"
+msgid "About team admins"
 msgstr ""
 
 #:  
-msgid "Log in"
+msgid "Team admins can:"
 msgstr ""
 
 #:  
-msgid "Forgot password"
+msgid "Edit team information"
 msgstr ""
 
 #:  
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
+msgid "View the team's join / quit history"
 msgstr ""
 
 #:  
-msgid "Send"
+msgid "Moderate the team forum"
 msgstr ""
 
 #:  
-msgid "Revise or post comment"
+msgid "Remove members from the team"
 msgstr ""
 
 #:  
-msgid "discuss"
+msgid "Disband a team if it has no members"
 msgstr ""
 
 #:  
-msgid "News"
+msgid "Team admins cannot:"
 msgstr ""
 
 #:  
-msgid "Your community preferences have been updated."
+msgid "Change the team founder"
 msgstr ""
 
 #:  
-msgid "Unlock"
+msgid "Add / Remove team admins"
 msgstr ""
 
 #:  
-msgid "Unlock this thread for comments"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We "
+"recommend only selecting people you know and trust"
 msgstr ""
 
 #:  
-msgid "Authenticator login"
+msgid "Lift user ban"
 msgstr ""
 
 #:  
-msgid "Create content"
+msgid "A team named \"@name\" already exists."
 msgstr ""
 
 #:  
-msgid "authenticator-based login"
+msgid "A BOINC account already exists for @email."
 msgstr ""
 
 #:  
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password (or use the !authenticator_login)."
+msgid "Make founder"
 msgstr ""
 
 #:  
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
+msgid "Changing the team founder"
 msgstr ""
 
 #:  
-msgid ""
-"If you have run BOINC under the account, you can still access it. "
-"Here's how:"
+msgid "Notes about changes in foundership:"
 msgstr ""
 
 #:  
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is "
-"usually %path1 or %path2."
+msgid "Any member of the team is eligible"
 msgstr ""
 
 #:  
-msgid ""
-"Find your account file for this project; it will have a name like "
-"%file (where the project URL is %url)."
+msgid "Current founder becomes a normal user"
 msgstr ""
 
 #:  
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something "
-"like:"
+msgid "Foundership can be requested by team members:"
 msgstr ""
 
 #:  
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
+msgid "One request is allowed at a time"
 msgstr ""
 
 #:  
-msgid "Paste the string into the field below, and click OK."
+msgid "It must be 60 days since any previous request"
 msgstr ""
 
 #:  
-msgid ""
-"You will now be logged in to your account; update the email and "
-"password of your account."
+msgid "Any active request must be older than 90 days"
 msgstr ""
 
 #:  
-msgid "Log in with authenticator"
+msgid "Current founder has 60 days to respond to a request"
 msgstr ""
 
 #:  
-msgid "There is no account with that authenticator."
+msgid "BOINC-wide teams site"
 msgstr ""
 
 #:  
-msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your "
-"computer (on Windows this is usually %path1 or %path2."
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
 msgstr ""
 
 #:  
-msgid "BOINC documentation"
+msgid ""
+"A team foundership change was already requested recently. Only one "
+"request is allowed within a period of 90 days."
 msgstr ""
 
 #:  
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for "
-"help finding this)."
+msgid "@count days remaining"
 msgstr ""
 
 #:  
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
+msgid "Team name is required."
 msgstr ""
 
 #:  
-msgid ""
-"You now have @count days to assume foundership before another team "
-"member may submit a request."
+msgid "Reason for banning this user"
 msgstr ""
 
 #:  
-msgid "Assume foundership"
+msgid ""
+"This reason will be included in an email to the user. Please write a "
+"brief explanation of why the user is being banned."
 msgstr ""
 
 #:  
-msgid "Unhide"
+msgid "Duration of the ban"
 msgstr ""
 
 #:  
-msgid "Unhide this comment"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
 msgstr ""
 
 #:  
-msgid "@email is not a well formed email address, please verify"
+msgid "Submit"
 msgstr ""
 
diff --git a/locale/templates/BOINC-Manager.pot b/locale/templates/BOINC-Manager.pot
index 6e8b8e4..b22f28f 100644
--- a/locale/templates/BOINC-Manager.pot
+++ b/locale/templates/BOINC-Manager.pot
@@ -1,60 +1,48 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+#
+# This file is distributed under the same license as BOINC.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: BOINC 7.6\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2015-10-16 17:27-0500\n"
-"Last-Translator: Rom Walton <rwalton at ssl.berkeley.edu>\n"
-"Language-Team: BOINC Localization Team <boinc_loc at ssl.berkeley.edu>\n"
-"Language: en_US\n"
+"Project-Id-Version: BOINC 539caba937f5f02b5d46af9244ac276c68fa1f3b\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"Last-Translator: Generated automatically from source files\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -64,85 +52,85 @@ msgid ""
 "password fields."
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr ""
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr ""
@@ -195,11 +183,11 @@ msgstr ""
 msgid "An internal server error has occurred.\n"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr ""
 
@@ -214,7 +202,7 @@ msgid "Open another %s window"
 msgstr ""
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
+msgid "Select computer...\tCtrl+Shift+I"
 msgstr ""
 
 #: clientgui/AdvancedFrame.cpp:345
@@ -524,7 +512,7 @@ msgstr ""
 msgid "Show information about BOINC and %s"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -559,12 +547,12 @@ msgstr ""
 msgid "&Help"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -574,39 +562,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr ""
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr ""
@@ -655,7 +643,7 @@ msgid "%s - Communication"
 msgstr ""
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr ""
@@ -733,7 +721,7 @@ msgid ""
 msgstr ""
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr ""
 
@@ -793,7 +781,7 @@ msgstr ""
 msgid "%s failed to disconnected from the Internet."
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -806,170 +794,170 @@ msgid ""
 "     user group."
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr ""
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr ""
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr ""
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr ""
 
@@ -1084,46 +1072,6 @@ msgstr ""
 msgid "&OK"
 msgstr ""
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr ""
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr ""
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1172,7 +1120,7 @@ msgid "Daily schedules"
 msgstr ""
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr ""
@@ -1187,7 +1135,7 @@ msgstr ""
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr ""
@@ -1586,101 +1534,149 @@ msgstr ""
 msgid "Transfer files only between"
 msgstr ""
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr ""
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr ""
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr ""
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr ""
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr ""
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr ""
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr ""
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr ""
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr ""
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr ""
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr ""
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or command key while clicking on messages."
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or control key while clicking on messages."
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr ""
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr ""
 
@@ -1703,7 +1699,7 @@ msgid "Add an application to this list"
 msgstr ""
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr ""
 
@@ -2037,12 +2033,12 @@ msgstr ""
 msgid "Estimated computation size"
 msgstr ""
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
+msgid "CPU time"
 msgstr ""
 
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
-msgid "CPU time"
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
 msgstr ""
 
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
@@ -2094,8 +2090,8 @@ msgstr ""
 msgid "Executable"
 msgstr ""
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr ""
 
@@ -2454,204 +2450,192 @@ msgstr ""
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr ""
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr ""
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from http://cord."
 "sourceforge.net"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr ""
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
 #.
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr ""
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr ""
@@ -2715,7 +2699,7 @@ msgstr ""
 msgid "Categories:"
 msgstr ""
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr ""
 
@@ -2759,24 +2743,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr ""
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
 msgstr ""
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr ""
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr ""
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr ""
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2874,1025 +2855,938 @@ msgstr ""
 msgid "SOCKS proxy"
 msgstr ""
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
 msgstr ""
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
 msgstr ""
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
 msgstr ""
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
 msgstr ""
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
 msgstr ""
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
 msgstr ""
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
 msgstr ""
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
 msgstr ""
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
 msgstr ""
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
 msgstr ""
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
 msgstr ""
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
 msgstr ""
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
 msgstr ""
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
 msgstr ""
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
 msgstr ""
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
 msgstr ""
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
 msgstr ""
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
+msgid "%s - Notices"
 msgstr ""
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
 msgstr ""
 
-#.
-#. Setup View
-#.
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
 msgstr ""
 
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
 msgstr ""
 
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
 msgstr ""
 
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
+msgid "Update"
 msgstr ""
 
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
+msgid ""
+"Report all completed tasks, get latest credit, get latest preferences, and "
+"possibly get more tasks."
 msgstr ""
 
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr ""
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr ""
-
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr ""
-
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr ""
-
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
-msgid "Update"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr ""
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks.  "
 "You can update the project first to report any completed tasks."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr ""
 
+#: clientgui/sg_ProjectCommandPopup.cpp:96 clientgui/sg_TaskCommandPopup.cpp:84
 #: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
-#: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
 msgid "Properties"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
+#, c-format
+msgid "Are you sure you want to reset project '%s'?"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
+msgid "Reset Project"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
+#, c-format
+msgid "Are you sure you want to remove project '%s'?"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
+msgid "Remove Project"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
-#, c-format
-msgid "Are you sure you want to reset project '%s'?"
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
-msgid "Reset Project"
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
-#, c-format
-msgid "Are you sure you want to remove project '%s'?"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
-msgid "Remove Project"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
 msgstr ""
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
 msgstr ""
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
 msgstr ""
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
 msgstr ""
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
 msgstr ""
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
 msgstr ""
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
+#: clientgui/sg_TaskPanel.cpp:868
+#, c-format
+msgid "Remaining (estimated): %s"
 msgstr ""
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
 msgstr ""
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
 msgstr ""
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1331
-#, c-format
-msgid "Last update: %.0f days ago"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr ""
-
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
 msgstr ""
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
+#.
+#. Setup View
+#.
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
 msgstr ""
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
 msgstr ""
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
 msgstr ""
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
 msgstr ""
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
 msgstr ""
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
 msgstr ""
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:572
+#: clientgui/ViewStatistics.cpp:1331
 #, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr ""
-
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr ""
-
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
+msgid "Last update: %.0f days ago"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
 msgstr ""
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
 msgstr ""
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
 msgstr ""
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
 msgstr ""
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
 msgstr ""
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
 msgstr ""
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
 msgstr ""
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
 msgstr ""
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
 msgstr ""
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
 msgstr ""
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
 msgstr ""
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
 msgstr ""
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
 msgstr ""
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
 msgstr ""
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
 msgstr ""
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
 msgstr ""
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
 msgstr ""
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
 msgstr ""
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
 msgstr ""
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
 msgstr ""
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
+#: clientgui/ViewTransfers.cpp:431
 #, c-format
 msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr ""
-
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
 msgstr ""
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
 msgstr ""
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
 msgstr ""
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
 msgstr ""
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
@@ -3907,11 +3801,24 @@ msgstr ""
 msgid "&Finish"
 msgstr ""
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
 msgstr ""
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr ""
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr ""
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr ""
+
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
 msgstr ""
diff --git a/locale/templates/BOINC-Project-Generic.pot b/locale/templates/BOINC-Project-Generic.pot
index 16242a5..5d18b4a 100644
--- a/locale/templates/BOINC-Project-Generic.pot
+++ b/locale/templates/BOINC-Project-Generic.pot
@@ -1,15 +1,13 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
+# BOINC project generic website localization template
+# Copyright (C) 2016 University of California
 #
 # This file is distributed under the same license as BOINC.
 #
-# FileID  : $Id$
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: BOINC $Id$\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
+"Project-Id-Version: BOINC 539caba937f5f02b5d46af9244ac276c68fa1f3b\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
 "Last-Translator: Generated automatically from source files\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -22,467 +20,575 @@ msgstr ""
 msgid "LANG_NAME_INTERNATIONAL"
 msgstr ""
 
-#: ../inc/account.inc:38
+#
+#: html/inc/account.inc:38
 msgid "Invitation Code"
 msgstr ""
 
-#: ../inc/account.inc:38
+#: html/inc/account.inc:38
 msgid "A valid invitation code is required to create an account."
 msgstr ""
 
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
+#: html/inc/account.inc:44 html/inc/host.inc:676 html/inc/result.inc:692
+#: html/inc/team.inc:225 html/inc/team.inc:369 html/inc/user.inc:202
+#: html/user/account_finish.php:41 html/user/team_admins.php:65
+#: html/user/team_change_founder_form.php:82 html/user/team_email_list.php:74
+#: html/user/top_users.php:48 html/user/user_search.php:128
 msgid "Name"
 msgstr ""
 
-#: ../inc/account.inc:44 ../user/account_finish.php:41
+#: html/inc/account.inc:44 html/user/account_finish.php:41
 msgid "Identifies you on our web site. Use your real name or a nickname."
 msgstr ""
 
-#: ../inc/account.inc:48
+#: html/inc/account.inc:48
 msgid "Email Address"
 msgstr ""
 
-#: ../inc/account.inc:48
+#: html/inc/account.inc:48
 msgid "Must be a valid address of the form 'name at domain'."
 msgstr ""
 
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
+#: html/inc/account.inc:57 html/user/edit_email_form.php:47
 msgid "Password"
 msgstr ""
 
-#: ../inc/account.inc:58
+#: html/inc/account.inc:58
 msgid "Must be at least %1 characters"
 msgstr ""
 
-#: ../inc/account.inc:61
+#: html/inc/account.inc:62
 msgid "Confirm password"
 msgstr ""
 
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
+#: html/inc/account.inc:66 html/inc/team.inc:44 html/inc/team.inc:135
+#: html/inc/team.inc:244 html/inc/team.inc:378 html/inc/team.inc:467
+#: html/inc/user.inc:216 html/inc/user.inc:408 html/user/account_finish.php:45
+#: html/user/edit_user_info_form.php:39 html/user/profile_search_action.php:44
+#: html/user/team_email_list.php:78 html/user/team_search.php:88
+#: html/user/top_users.php:56 html/user/user_search.php:56
+#: html/user/user_search.php:132
 msgid "Country"
 msgstr ""
 
-#: ../inc/account.inc:63 ../user/account_finish.php:45
+#: html/inc/account.inc:66 html/user/account_finish.php:45
 msgid "Select the country you want to represent, if any."
 msgstr ""
 
-#: ../inc/account.inc:70 ../user/account_finish.php:51
+#: html/inc/account.inc:73 html/user/account_finish.php:51
 msgid "Postal or ZIP Code"
 msgstr ""
 
-#: ../inc/account.inc:70 ../user/account_finish.php:51
+#: html/inc/account.inc:73 html/user/account_finish.php:51
 msgid "Optional"
 msgstr ""
 
-#: ../inc/account.inc:86
+#: html/inc/account.inc:89 html/user/create_account_form.php:41
 msgid "Create account"
 msgstr ""
 
-#: ../inc/account.inc:101
+#: html/inc/account.inc:104
 msgid "Email address:"
 msgstr ""
 
-#: ../inc/account.inc:103
+#: html/inc/account.inc:107
 msgid "forgot email address?"
 msgstr ""
 
-#: ../inc/account.inc:106
+#: html/inc/account.inc:110
 msgid "Password:"
 msgstr ""
 
-#: ../inc/account.inc:106
+#: html/inc/account.inc:110
 msgid "forgot password?"
 msgstr ""
 
-#: ../inc/account.inc:109
+#: html/inc/account.inc:113
 msgid "Stay logged in"
 msgstr ""
 
 #. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
+#: html/inc/account.inc:118 html/inc/util.inc:268 html/user/login_form.php:43
 msgid "Log in"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:11
+#: html/inc/bbcode_html.inc:10
 msgid "Bold text: [b]text[/b]  (alt+b)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:14
+#: html/inc/bbcode_html.inc:11
 msgid "Italic text: [i]text[/i]  (alt+i)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:17
+#: html/inc/bbcode_html.inc:12
 msgid "Underline text: [u]text[/u]  (alt+u)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:20
+#: html/inc/bbcode_html.inc:13
 msgid "Strikethrough text: [s]text[/s]  (alt+k)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:23
+#: html/inc/bbcode_html.inc:14
 msgid "Quote text: [quote]text[/quote]  (alt+q)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:26
+#: html/inc/bbcode_html.inc:15
 msgid "Code display: [code]code[/code]  (alt+c)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:29
+#: html/inc/bbcode_html.inc:16
 msgid "List: [list]text[/list] (alt+l)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
+#: html/inc/bbcode_html.inc:17
+msgid "Ordered list: [list=1]text[/list]  (alt+o)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:35
+#: html/inc/bbcode_html.inc:18
 msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:38
+#: html/inc/bbcode_html.inc:19
 msgid ""
 "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:45
+#: html/inc/bbcode_html.inc:24
 msgid "Font color"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:46
+#: html/inc/bbcode_html.inc:25
 msgid ""
 "Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
+#: html/inc/bbcode_html.inc:26 html/inc/bbcode_html.inc:42
+#: html/inc/prefs_util.inc:538
 msgid "Default"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:48
+#: html/inc/bbcode_html.inc:27
 msgid "Dark Red"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:49
+#: html/inc/bbcode_html.inc:28
 msgid "Red"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:50
+#: html/inc/bbcode_html.inc:29
 msgid "Orange"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:51
+#: html/inc/bbcode_html.inc:30
 msgid "Brown"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:52
+#: html/inc/bbcode_html.inc:31
 msgid "Yellow"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:53
+#: html/inc/bbcode_html.inc:32
 msgid "Green"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:54
+#: html/inc/bbcode_html.inc:33
 msgid "Olive"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:55
+#: html/inc/bbcode_html.inc:34
 msgid "Cyan"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:56
+#: html/inc/bbcode_html.inc:35
 msgid "Blue"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:57
+#: html/inc/bbcode_html.inc:36
 msgid "Dark Blue"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:58
+#: html/inc/bbcode_html.inc:37
 msgid "Indigo"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:59
+#: html/inc/bbcode_html.inc:38
 msgid "Violet"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:60
+#: html/inc/bbcode_html.inc:40
 msgid "Font size"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:61
+#: html/inc/bbcode_html.inc:41
 msgid "Font size: [size=x-small]small text[/size]"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:63
+#: html/inc/bbcode_html.inc:43
 msgid "Small"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:64
+#: html/inc/bbcode_html.inc:44
 msgid "Normal"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:65
+#: html/inc/bbcode_html.inc:45
 msgid "Large"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:68
+#: html/inc/bbcode_html.inc:48
 msgid "Close all open bbCode tags"
 msgstr ""
 
-#: ../inc/bbcode_html.inc:68
+#: html/inc/bbcode_html.inc:48
 msgid "Close Tags"
 msgstr ""
 
+#: html/inc/bootstrap.inc:150 html/inc/user.inc:170
+msgid "Account"
+msgstr ""
+
+#: html/inc/bootstrap.inc:151
+msgid "Join"
+msgstr ""
+
+#: html/inc/bootstrap.inc:153
+msgid "About %1"
+msgstr ""
+
+#: html/inc/bootstrap.inc:154
+msgid "Help"
+msgstr ""
+
+#: html/inc/bootstrap.inc:155 html/inc/user.inc:125
+msgid "Project"
+msgstr ""
+
+#. this is for projects that don't do computing, e.g. BOSSA-based
+#.
+#: html/inc/bootstrap.inc:160
+msgid "Participate"
+msgstr ""
+
+#: html/inc/bootstrap.inc:161
+msgid "Do work"
+msgstr ""
+
+#: html/inc/bootstrap.inc:165 html/user/server_status.php:109
+msgid "Server status"
+msgstr ""
+
+#: html/inc/bootstrap.inc:166
+msgid "Statistics"
+msgstr ""
+
+#: html/inc/bootstrap.inc:167 html/user/apps.php:32
+msgid "Applications"
+msgstr ""
+
+#: html/inc/bootstrap.inc:178
+msgid "Participants"
+msgstr ""
+
+#: html/inc/bootstrap.inc:179 html/inc/user.inc:420 html/inc/user.inc:422
+#: html/user/server_status.php:152
+msgid "Computers"
+msgstr ""
+
+#. array(tra("Questions and Answers"), $url_prefix."forum_help_desk.php"),
+#: html/inc/bootstrap.inc:180 html/inc/bootstrap.inc:191 html/user/team.php:27
+msgid "Teams"
+msgstr ""
+
+#: html/inc/bootstrap.inc:181 html/user/stats.php:48
+msgid "GPU models"
+msgstr ""
+
+#: html/inc/bootstrap.inc:182 html/user/stats.php:49
+msgid "CPU models"
+msgstr ""
+
+#: html/inc/bootstrap.inc:185 html/inc/prefs.inc:241 html/inc/prefs.inc:482
+#: html/user/explain_state.php:94
+msgid "Computing"
+msgstr ""
+
+#: html/inc/bootstrap.inc:188 html/inc/user.inc:320
+msgid "Community"
+msgstr ""
+
+#: html/inc/bootstrap.inc:189 html/inc/forum.inc:158 html/inc/forum.inc:190
+#: html/inc/user.inc:334 html/inc/user.inc:473 html/user/forum_forum.php:76
+#: html/user/forum_index.php:72
+msgid "Message boards"
+msgstr ""
+
+#: html/inc/bootstrap.inc:191
+msgid "create or join a team"
+msgstr ""
+
+#: html/inc/bootstrap.inc:192 html/user/profile_menu.php:34
+msgid "Profiles"
+msgstr ""
+
+#: html/inc/bootstrap.inc:193
+msgid "User search"
+msgstr ""
+
+#: html/inc/bootstrap.inc:194
+msgid "User of the day"
+msgstr ""
+
+#: html/inc/bootstrap.inc:195 html/inc/user.inc:175
+msgid "Certificate"
+msgstr ""
+
+#: html/inc/bootstrap.inc:197
+msgid "Site"
+msgstr ""
+
+#: html/inc/bootstrap.inc:198
+msgid "Site search"
+msgstr ""
+
+#: html/inc/bootstrap.inc:199
+msgid "Languages"
+msgstr ""
+
 #. names for the above
-#: ../inc/forum.inc:38
+#.
+#: html/inc/forum.inc:40
 msgid "Oldest first"
 msgstr ""
 
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
+#: html/inc/forum.inc:41 html/inc/forum.inc:47
 msgid "Newest first"
 msgstr ""
 
-#: ../inc/forum.inc:40
+#: html/inc/forum.inc:42
 msgid "Highest rated posts first"
 msgstr ""
 
-#: ../inc/forum.inc:42
+#: html/inc/forum.inc:44
 msgid "Newest post first"
 msgstr ""
 
-#: ../inc/forum.inc:43
+#: html/inc/forum.inc:45
 msgid "Most views first"
 msgstr ""
 
-#: ../inc/forum.inc:44
+#: html/inc/forum.inc:46
 msgid "Most posts first"
 msgstr ""
 
-#: ../inc/forum.inc:104
+#: html/inc/forum.inc:106
 msgid "Volunteer moderator"
 msgstr ""
 
-#: ../inc/forum.inc:105
+#: html/inc/forum.inc:107
 msgid "Project administrator"
 msgstr ""
 
-#: ../inc/forum.inc:106
+#: html/inc/forum.inc:108
 msgid "Project developer"
 msgstr ""
 
-#: ../inc/forum.inc:107
+#: html/inc/forum.inc:109
 msgid "Project tester"
 msgstr ""
 
-#: ../inc/forum.inc:108
+#: html/inc/forum.inc:110
 msgid "Volunteer developer"
 msgstr ""
 
-#: ../inc/forum.inc:109
+#: html/inc/forum.inc:111
 msgid "Volunteer tester"
 msgstr ""
 
-#: ../inc/forum.inc:110
+#: html/inc/forum.inc:112
 msgid "Project scientist"
 msgstr ""
 
-#: ../inc/forum.inc:111
+#: html/inc/forum.inc:113
 msgid "Help desk expert"
 msgstr ""
 
 #. Search
-#: ../inc/forum.inc:129
+#: html/inc/forum.inc:132
 msgid "Search for words in forum messages"
 msgstr ""
 
-#: ../inc/forum.inc:129
+#: html/inc/forum.inc:132
 msgid "Search forums"
 msgstr ""
 
-#: ../inc/forum.inc:130
+#: html/inc/forum.inc:133
 msgid "Advanced search"
 msgstr ""
 
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
+#: html/inc/forum.inc:139 html/inc/user.inc:338 html/user/pm.php:57
+#: html/user/pm.php:127
 msgid "Private messages"
 msgstr ""
 
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
+#: html/inc/forum.inc:158 html/user/forum_forum.php:74
 msgid "Questions and Answers"
 msgstr ""
 
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr ""
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
+#: html/inc/forum.inc:194 html/inc/forum.inc:202
 msgid "%1 message board"
 msgstr ""
 
-#: ../inc/forum.inc:249 ../inc/result.inc:717
+#: html/inc/forum.inc:243 html/inc/result.inc:784
 msgid "Previous"
 msgstr ""
 
-#: ../inc/forum.inc:287 ../inc/result.inc:726
+#: html/inc/forum.inc:281 html/inc/result.inc:793
 msgid "Next"
 msgstr ""
 
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
+#: html/inc/forum.inc:410 html/inc/forum.inc:1258 html/user/forum_forum.php:144
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:86
 msgid "Author"
 msgstr ""
 
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
+#: html/inc/forum.inc:410 html/inc/pm.inc:64 html/inc/pm.inc:143
+#: html/user/ffmail_form.php:58 html/user/forum_edit.php:130
+#: html/user/forum_edit.php:135 html/user/forum_post.php:118
+#: html/user/forum_reply.php:128 html/user/forum_report_post.php:87
+#: html/user/pm.php:79 html/user/pm.php:138
 msgid "Message"
 msgstr ""
 
-#: ../inc/forum.inc:586
-msgid "Send message"
+#: html/inc/forum.inc:590 html/inc/pm.inc:73 html/inc/pm.inc:153
+msgid "Send message"
 msgstr ""
 
-#: ../inc/forum.inc:586
+#: html/inc/forum.inc:590
 msgid "Send %1 a private message"
 msgstr ""
 
-#: ../inc/forum.inc:587
+#: html/inc/forum.inc:591
 msgid "Joined: %1"
 msgstr ""
 
-#: ../inc/forum.inc:596
+#: html/inc/forum.inc:600
 msgid "Posts: %1"
 msgstr ""
 
-#: ../inc/forum.inc:602
+#: html/inc/forum.inc:606
 msgid "Credit: %1"
 msgstr ""
 
-#: ../inc/forum.inc:603
+#: html/inc/forum.inc:607
 msgid "RAC: %1"
 msgstr ""
 
-#: ../inc/forum.inc:627
+#: html/inc/forum.inc:637
 msgid "You haven't read this message yet"
 msgstr ""
 
-#: ../inc/forum.inc:627
+#: html/inc/forum.inc:637
 msgid "Unread"
 msgstr ""
 
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
+#: html/inc/forum.inc:640 html/inc/forum.inc:645 html/inc/forum.inc:754
 msgid "Message %1"
 msgstr ""
 
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
+#: html/inc/forum.inc:641 html/inc/user.inc:422 html/user/forum_forum.php:181
 msgid "hidden"
 msgstr ""
 
-#: ../inc/forum.inc:632
+#: html/inc/forum.inc:642
 msgid "Posted: %1"
 msgstr ""
 
-#: ../inc/forum.inc:635
+#: html/inc/forum.inc:645
 msgid " - in response to "
 msgstr ""
 
-#: ../inc/forum.inc:638
+#: html/inc/forum.inc:648 html/inc/prefs_util.inc:609
+#: html/inc/prefs_util.inc:611
 msgid "Edit"
 msgstr ""
 
-#: ../inc/forum.inc:638
+#: html/inc/forum.inc:648
 msgid "Edit this message"
 msgstr ""
 
-#: ../inc/forum.inc:644
+#: html/inc/forum.inc:654
 msgid "Last modified: %1"
 msgstr ""
 
-#: ../inc/forum.inc:647
+#: html/inc/forum.inc:657
 msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click %"
-"1here%2 to view this post"
+"This post is not shown because the sender is on your 'ignore' list.  Click "
+"%1here%2 to view this post"
 msgstr ""
 
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report this post as offensive"
 msgstr ""
 
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
+#: html/inc/forum.inc:692 html/inc/forum.inc:703
 msgid "Report as offensive"
 msgstr ""
 
-#: ../inc/forum.inc:679
+#: html/inc/forum.inc:696
 msgid "Rating: %1"
 msgstr ""
 
-#: ../inc/forum.inc:679
+#: html/inc/forum.inc:696
 msgid "rate: "
 msgstr ""
 
-#: ../inc/forum.inc:682
+#: html/inc/forum.inc:699
 msgid "Click if you like this message"
 msgstr ""
 
-#: ../inc/forum.inc:682
+#: html/inc/forum.inc:699
 msgid "Rate +"
 msgstr ""
 
-#: ../inc/forum.inc:684
+#: html/inc/forum.inc:701
 msgid "Click if you don't like this message"
 msgstr ""
 
-#: ../inc/forum.inc:684
+#: html/inc/forum.inc:701
 msgid "Rate -"
 msgstr ""
 
 #. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
+#: html/inc/forum.inc:710 html/user/pm.php:99 html/user/pm.php:140
 msgid "Reply"
 msgstr ""
 
-#: ../inc/forum.inc:693
+#: html/inc/forum.inc:710
 msgid "Post a reply to this message"
 msgstr ""
 
 #. "Quote" is used as a verb
-#: ../inc/forum.inc:696
+#: html/inc/forum.inc:713
 msgid "Quote"
 msgstr ""
 
-#: ../inc/forum.inc:696
+#: html/inc/forum.inc:713
 msgid "Post a reply by quoting this message"
 msgstr ""
 
-#: ../inc/forum.inc:717
+#: html/inc/forum.inc:735
 msgid "Hidden by a moderator"
 msgstr ""
 
-#: ../inc/forum.inc:738
+#: html/inc/forum.inc:756
 msgid "Posted %1 by %2"
 msgstr ""
 
-#: ../inc/forum.inc:756
+#: html/inc/forum.inc:776
 msgid "You may not post or rate messages until %1"
 msgstr ""
 
-#: ../inc/forum.inc:767
+#: html/inc/forum.inc:787
 msgid ""
 "\n"
 "        <ul>\n"
@@ -494,602 +600,608 @@ msgid ""
 "            gambling, or intolerance of others.\n"
 "        <li> No messages intended to annoy or antagonize other people,\n"
 "            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
+"        <li> No messages that are deliberately hostile, threatening, or "
+"insulting.\n"
 "        <li> No abusive comments involving race, religion,\n"
 "            nationality, gender, class or sexuality.\n"
+"        <li> The posting privileges of violators may be suspended or "
+"revoked.\n"
 "        "
 msgstr ""
 
-#: ../inc/forum.inc:799
+#: html/inc/forum.inc:820
 msgid "Rules:"
 msgstr ""
 
-#: ../inc/forum.inc:800
+#: html/inc/forum.inc:821
 msgid "More info"
 msgstr ""
 
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
+#: html/inc/forum.inc:1119 html/user/forum_thread.php:193
 msgid "Unhide"
 msgstr ""
 
-#: ../inc/forum.inc:1098
+#: html/inc/forum.inc:1119
 msgid "Unhide this post"
 msgstr ""
 
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
+#: html/inc/forum.inc:1121 html/user/forum_thread.php:199
 msgid "Hide"
 msgstr ""
 
-#: ../inc/forum.inc:1100
+#: html/inc/forum.inc:1121
 msgid "Hide this post"
 msgstr ""
 
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
+#: html/inc/forum.inc:1126 html/user/forum_thread.php:232
 msgid "Move"
 msgstr ""
 
-#: ../inc/forum.inc:1105
+#: html/inc/forum.inc:1126
 msgid "Move post to a different thread"
 msgstr ""
 
-#: ../inc/forum.inc:1110
+#: html/inc/forum.inc:1131
 msgid "Banish author"
 msgstr ""
 
-#: ../inc/forum.inc:1117
+#: html/inc/forum.inc:1138
 msgid "Vote to banish author"
 msgstr ""
 
-#: ../inc/forum.inc:1121
+#: html/inc/forum.inc:1142
 msgid "Vote not to banish author"
 msgstr ""
 
-#: ../inc/forum.inc:1126
+#: html/inc/forum.inc:1147
 msgid "Start vote to banish author"
 msgstr ""
 
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
+#: html/inc/forum.inc:1152 html/inc/user.inc:325 html/user/forum_thread.php:246
+#: html/user/pm.php:100 html/user/pm.php:141
 msgid "Delete"
 msgstr ""
 
-#: ../inc/forum.inc:1131
+#: html/inc/forum.inc:1152
 msgid "Delete this post"
 msgstr ""
 
-#: ../inc/forum.inc:1169
+#: html/inc/forum.inc:1192
 msgid "Only team members can post to the team message board"
 msgstr ""
 
-#: ../inc/forum.inc:1179
+#: html/inc/forum.inc:1202
 msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
+"To create a new thread in %1 you must have a certain level of average "
+"credit. This is to protect against abuse of the system."
 msgstr ""
 
-#: ../inc/forum.inc:1186
+#: html/inc/forum.inc:1209
 msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
+"You cannot create threads right now. Please wait before trying again. This "
+"is to protect against abuse of the system."
 msgstr ""
 
-#: ../inc/forum.inc:1193
+#: html/inc/forum.inc:1216
 msgid ""
 "This thread is locked. Only forum moderators and administrators are allowed "
 "to post there."
 msgstr ""
 
-#: ../inc/forum.inc:1198
+#: html/inc/forum.inc:1221
 msgid "Can't post to a hidden thread."
 msgstr ""
 
-#: ../inc/forum.inc:1232
+#: html/inc/forum.inc:1256
 msgid "Thread"
 msgstr ""
 
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
+#: html/inc/forum.inc:1257 html/inc/team.inc:141 html/user/forum_forum.php:143
+#: html/user/forum_index.php:97
 msgid "Posts"
 msgstr ""
 
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
+#: html/inc/forum.inc:1259 html/user/forum_forum.php:145
 msgid "Views"
 msgstr ""
 
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
+#: html/inc/forum.inc:1260 html/inc/team.inc:141 html/user/forum_forum.php:146
+#: html/user/forum_help_desk.php:49 html/user/forum_index.php:98
 msgid "Last post"
 msgstr ""
 
-#: ../inc/forum.inc:1294
+#: html/inc/forum.inc:1317
 msgid "New posts in the thread %1"
 msgstr ""
 
-#: ../inc/forum.inc:1299
+#: html/inc/forum.inc:1322
 msgid "New posts in subscribed thread"
 msgstr ""
 
-#: ../inc/forum.inc:1300
+#: html/inc/forum.inc:1323
 msgid "There are new posts in the thread '%1'"
 msgstr ""
 
-#: ../inc/forum.inc:1310
+#: html/inc/forum.inc:1333
 msgid "Mark all threads as read"
 msgstr ""
 
-#: ../inc/forum.inc:1311
+#: html/inc/forum.inc:1334
 msgid "Mark all threads in all message boards as read."
 msgstr ""
 
-#: ../inc/host.inc:25
+#: html/inc/host.inc:25
 msgid "No host"
 msgstr ""
 
-#: ../inc/host.inc:27
+#: html/inc/host.inc:27
 msgid "Unavailable"
 msgstr ""
 
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
+#: html/inc/host.inc:56 html/inc/prefs.inc:674 html/inc/prefs_util.inc:539
 msgid "Home"
 msgstr ""
 
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
+#: html/inc/host.inc:57 html/inc/prefs.inc:675 html/inc/prefs_util.inc:541
+#: html/user/server_status.php:136
 msgid "Work"
 msgstr ""
 
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
+#: html/inc/host.inc:58 html/inc/prefs.inc:676 html/inc/prefs_util.inc:540
 msgid "School"
 msgstr ""
 
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
+#: html/inc/host.inc:60 html/user/edit_forum_preferences_form.php:161
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Update"
 msgstr ""
 
-#: ../inc/host.inc:84
+#: html/inc/host.inc:84
 msgid "Computer information"
 msgstr ""
 
-#: ../inc/host.inc:88 ../inc/host.inc:93
+#: html/inc/host.inc:88 html/inc/host.inc:93
 msgid "IP address"
 msgstr ""
 
-#: ../inc/host.inc:88
+#: html/inc/host.inc:88
 msgid "(same the last %1 times)"
 msgstr ""
 
-#: ../inc/host.inc:90
+#: html/inc/host.inc:90
 msgid "External IP address"
 msgstr ""
 
-#: ../inc/host.inc:93
+#: html/inc/host.inc:93
 msgid "Show IP address"
 msgstr ""
 
-#: ../inc/host.inc:95
+#: html/inc/host.inc:95
 msgid "Domain name"
 msgstr ""
 
-#: ../inc/host.inc:97
+#: html/inc/host.inc:97
 msgid "Product name"
 msgstr ""
 
-#: ../inc/host.inc:101
+#: html/inc/host.inc:101
 msgid "Local Standard Time"
 msgstr ""
 
-#: ../inc/host.inc:101
+#: html/inc/host.inc:101
 msgid "UTC %1 hours"
 msgstr ""
 
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
+#: html/inc/host.inc:105 html/inc/host.inc:107 html/inc/host.inc:222
 msgid "Owner"
 msgstr ""
 
-#: ../inc/host.inc:107 ../inc/host.inc:360
+#: html/inc/host.inc:107 html/inc/host.inc:358
 msgid "Anonymous"
 msgstr ""
 
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
+#: html/inc/host.inc:111 html/inc/result.inc:694 html/user/apps.php:57
 msgid "Created"
 msgstr ""
 
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
+#: html/inc/host.inc:112 html/inc/host.inc:226 html/inc/host.inc:229
+#: html/inc/host.inc:693 html/inc/team.inc:111 html/inc/team.inc:228
+#: html/inc/team.inc:232 html/inc/team.inc:234 html/inc/team.inc:373
+#: html/inc/team.inc:376 html/inc/user.inc:126 html/inc/user.inc:143
+#: html/user/profile_search_action.php:45
+#: html/user/team_change_founder_form.php:83 html/user/team_email_list.php:76
+#: html/user/team_remove_inactive_form.php:44 html/user/top_users.php:51
+#: html/user/top_users.php:54 html/user/user_search.php:131
 msgid "Total credit"
 msgstr ""
 
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
+#: html/inc/host.inc:113 html/inc/user.inc:127 html/user/team_search.php:84
+#: html/user/user_search.php:130
 msgid "Average credit"
 msgstr ""
 
-#: ../inc/host.inc:115
+#: html/inc/host.inc:115
 msgid "Cross project credit"
 msgstr ""
 
-#: ../inc/host.inc:117
+#: html/inc/host.inc:117
 msgid "CPU type"
 msgstr ""
 
-#: ../inc/host.inc:118
+#: html/inc/host.inc:118
 msgid "Number of processors"
 msgstr ""
 
-#: ../inc/host.inc:120
+#: html/inc/host.inc:120
 msgid "Coprocessors"
 msgstr ""
 
-#: ../inc/host.inc:122 ../inc/host.inc:692
+#: html/inc/host.inc:122 html/inc/host.inc:703
 msgid "Operating System"
 msgstr ""
 
-#: ../inc/host.inc:125 ../inc/host.inc:235
+#: html/inc/host.inc:125 html/inc/host.inc:231
 msgid "BOINC version"
 msgstr ""
 
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
+#: html/inc/host.inc:129 html/inc/prefs.inc:243
 msgid "Memory"
 msgstr ""
 
-#: ../inc/host.inc:129 ../inc/host.inc:139
+#: html/inc/host.inc:129 html/inc/host.inc:139
 msgid "%1 MB"
 msgstr ""
 
-#: ../inc/host.inc:133
+#: html/inc/host.inc:133
 msgid "Cache"
 msgstr ""
 
-#: ../inc/host.inc:133
+#: html/inc/host.inc:133
 msgid "%1 KB"
 msgstr ""
 
-#: ../inc/host.inc:139
+#: html/inc/host.inc:139
 msgid "Swap space"
 msgstr ""
 
-#: ../inc/host.inc:142
+#: html/inc/host.inc:142
 msgid "Total disk space"
 msgstr ""
 
-#: ../inc/host.inc:142 ../inc/host.inc:145
+#: html/inc/host.inc:142 html/inc/host.inc:145
 msgid "%1 GB"
 msgstr ""
 
-#: ../inc/host.inc:145
+#: html/inc/host.inc:145
 msgid "Free Disk Space"
 msgstr ""
 
-#: ../inc/host.inc:149
+#: html/inc/host.inc:149
 msgid "Measured floating point speed"
 msgstr ""
 
-#: ../inc/host.inc:149 ../inc/host.inc:152
+#: html/inc/host.inc:149 html/inc/host.inc:152
 msgid "%1 million ops/sec"
 msgstr ""
 
-#: ../inc/host.inc:152
+#: html/inc/host.inc:152
 msgid "Measured integer speed"
 msgstr ""
 
-#: ../inc/host.inc:156 ../inc/host.inc:158
+#: html/inc/host.inc:156 html/inc/host.inc:158
 msgid "Average upload rate"
 msgstr ""
 
-#: ../inc/host.inc:156 ../inc/host.inc:163
+#: html/inc/host.inc:156 html/inc/host.inc:163
 msgid "%1 KB/sec"
 msgstr ""
 
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
+#: html/inc/host.inc:158 html/inc/host.inc:165 html/inc/result.inc:230
+#: html/inc/result.inc:240 html/inc/result.inc:258 html/inc/result.inc:276
+#: html/inc/result.inc:292 html/user/explain_state.php:56
+#: html/user/host_app_versions.php:28
 msgid "Unknown"
 msgstr ""
 
-#: ../inc/host.inc:163 ../inc/host.inc:165
+#: html/inc/host.inc:163 html/inc/host.inc:165
 msgid "Average download rate"
 msgstr ""
 
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
+#: html/inc/host.inc:168 html/user/host_app_versions.php:82
 msgid "Average turnaround time"
 msgstr ""
 
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
+#: html/inc/host.inc:168 html/user/forum_search.php:48
+#: html/user/forum_search.php:49 html/user/forum_search.php:50
+#: html/user/forum_search.php:51
 msgid "%1 days"
 msgstr ""
 
-#: ../inc/host.inc:169
+#: html/inc/host.inc:169
 msgid "Application details"
 msgstr ""
 
-#: ../inc/host.inc:170
+#: html/inc/host.inc:170
 msgid "Show"
 msgstr ""
 
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
+#: html/inc/host.inc:180 html/inc/host.inc:339 html/inc/user.inc:159
 msgid "Tasks"
 msgstr ""
 
-#: ../inc/host.inc:184 ../inc/host.inc:206
+#: html/inc/host.inc:184 html/inc/host.inc:206
 msgid "Number of times client has contacted server"
 msgstr ""
 
-#: ../inc/host.inc:185
+#: html/inc/host.inc:185
 msgid "Last time contacted server"
 msgstr ""
 
-#: ../inc/host.inc:186
+#: html/inc/host.inc:186
 msgid "Fraction of time BOINC is running"
 msgstr ""
 
-#: ../inc/host.inc:188
+#: html/inc/host.inc:188
 msgid ""
 "While BOINC is running, fraction of time computer has an Internet connection"
 msgstr ""
 
-#: ../inc/host.inc:190
+#: html/inc/host.inc:190
 msgid "While BOINC is running, fraction of time computing is allowed"
 msgstr ""
 
-#: ../inc/host.inc:191
+#: html/inc/host.inc:191
 msgid "While is BOINC running, fraction of time GPU computing is allowed"
 msgstr ""
 
-#: ../inc/host.inc:193
+#: html/inc/host.inc:193
 msgid "Average CPU efficiency"
 msgstr ""
 
-#: ../inc/host.inc:196
+#: html/inc/host.inc:196
 msgid "Task duration correction factor"
 msgstr ""
 
-#: ../inc/host.inc:198 ../inc/host.inc:679
+#: html/inc/host.inc:198 html/inc/host.inc:683
 msgid "Location"
 msgstr ""
 
-#: ../inc/host.inc:200
+#: html/inc/host.inc:200
 msgid "Delete this computer"
 msgstr ""
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge duplicate records of this computer"
 msgstr ""
 
-#: ../inc/host.inc:204
+#: html/inc/host.inc:204
 msgid "Merge"
 msgstr ""
 
-#: ../inc/host.inc:207 ../inc/host.inc:694
+#: html/inc/host.inc:207 html/inc/host.inc:706
 msgid "Last contact"
 msgstr ""
 
-#: ../inc/host.inc:220
+#: html/inc/host.inc:220
 msgid "Computer info"
 msgstr ""
 
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
+#: html/inc/host.inc:221 html/inc/host.inc:686 html/inc/team.inc:368
+#: html/user/top_users.php:47
 msgid "Rank"
 msgstr ""
 
-#: ../inc/host.inc:225 ../inc/host.inc:684
+#: html/inc/host.inc:225 html/inc/host.inc:690
 msgid "Avg. credit"
 msgstr ""
 
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
+#: html/inc/host.inc:228 html/inc/team.inc:112 html/inc/team.inc:229
+#: html/inc/team.inc:237 html/inc/team.inc:239 html/inc/team.inc:372
+#: html/inc/team.inc:375 html/inc/user.inc:144
+#: html/user/team_change_founder_form.php:84 html/user/team_email_list.php:77
+#: html/user/team_remove_inactive_form.php:45 html/user/top_users.php:50
+#: html/user/top_users.php:53
 msgid "Recent average credit"
 msgstr ""
 
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
+#: html/inc/host.inc:232 html/inc/host.inc:698 html/inc/result.inc:74
+#: html/user/host_app_versions.php:23
 msgid "CPU"
 msgstr ""
 
-#: ../inc/host.inc:237 ../inc/host.inc:690
+#: html/inc/host.inc:233 html/inc/host.inc:700
 msgid "GPU"
 msgstr ""
 
-#: ../inc/host.inc:238
+#: html/inc/host.inc:234
 msgid "Operating system"
 msgstr ""
 
-#: ../inc/host.inc:320
+#: html/inc/host.inc:319
 msgid "(%1 processors)"
 msgstr ""
 
-#: ../inc/host.inc:340
+#: html/inc/host.inc:338
 msgid "Details"
 msgstr ""
 
-#: ../inc/host.inc:345
+#: html/inc/host.inc:343
 msgid "Cross-project stats:"
 msgstr ""
 
-#: ../inc/host.inc:520
+#: html/inc/host.inc:518
 msgid "Host %1 has overlapping lifetime:"
 msgstr ""
 
-#: ../inc/host.inc:527
+#: html/inc/host.inc:525
 msgid "Host %1 has an incompatible OS:"
 msgstr ""
 
-#: ../inc/host.inc:533
+#: html/inc/host.inc:531
 msgid "Host %1 has an incompatible CPU:"
 msgstr ""
 
-#: ../inc/host.inc:600
+#: html/inc/host.inc:598
 msgid "same host"
 msgstr ""
 
-#: ../inc/host.inc:603
+#: html/inc/host.inc:601
 msgid "Can't merge host %1 into %2 - they're incompatible"
 msgstr ""
 
-#: ../inc/host.inc:606
+#: html/inc/host.inc:604
 msgid "Merging host %1 into host %2"
 msgstr ""
 
-#: ../inc/host.inc:623
+#: html/inc/host.inc:621
 msgid "Couldn't update credit of new computer"
 msgstr ""
 
-#: ../inc/host.inc:627
+#: html/inc/host.inc:625
 msgid "Couldn't update results"
 msgstr ""
 
-#: ../inc/host.inc:632
+#: html/inc/host.inc:630
 msgid "Couldn't retire old computer"
 msgstr ""
 
-#: ../inc/host.inc:634
+#: html/inc/host.inc:632
 msgid "Retired old computer %1"
 msgstr ""
 
-#: ../inc/host.inc:657 ../inc/host.inc:660
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Show:"
 msgstr ""
 
-#: ../inc/host.inc:657 ../inc/host.inc:660
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "All computers"
 msgstr ""
 
-#: ../inc/host.inc:657 ../inc/host.inc:660
+#: html/inc/host.inc:655 html/inc/host.inc:658
 msgid "Only computers active in past 30 days"
 msgstr ""
 
-#: ../inc/host.inc:671 ../inc/result.inc:642
+#: html/inc/host.inc:671 html/inc/result.inc:702
 msgid "Computer ID"
 msgstr ""
 
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
+#: html/inc/host.inc:680
+msgid "Model"
 msgstr ""
 
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
+#: html/inc/host.inc:695
+msgid "BOINC<br>version"
 msgstr ""
 
-#: ../inc/language_names.inc:62
-msgid "Browser default"
+#: html/inc/host.inc:764 html/user/merge_by_name.php:65
+msgid "Merge computers by name"
 msgstr ""
 
-#: ../inc/news.inc:40
-msgid "Comment"
+#: html/inc/news.inc:41
+msgid "Discuss"
 msgstr ""
 
-#: ../inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr ""
 
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
+#: html/inc/pm.inc:25 html/inc/pm.inc:247 html/user/pm.php:57
+#: html/user/pm.php:142
 msgid "Inbox"
 msgstr ""
 
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
+#: html/inc/pm.inc:26 html/inc/pm.inc:251
 msgid "Write"
 msgstr ""
 
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
+#: html/inc/pm.inc:40 html/user/team_manage.php:33
+msgid "Send message to team"
 msgstr ""
 
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
+#: html/inc/pm.inc:44 html/inc/pm.inc:46 html/inc/pm.inc:72 html/inc/pm.inc:85
+#: html/inc/pm.inc:87 html/inc/pm.inc:153 html/user/forum_edit.php:99
+#: html/user/forum_edit.php:102 html/user/forum_edit.php:147
+#: html/user/forum_post.php:65 html/user/forum_post.php:91
+#: html/user/forum_post.php:93 html/user/forum_post.php:135
+#: html/user/forum_reply.php:77 html/user/forum_reply.php:110
+#: html/user/forum_reply.php:116 html/user/forum_reply.php:171
+#: html/user/pm.php:172 html/user/pm.php:216
 msgid "Preview"
 msgstr ""
 
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
+#: html/inc/pm.inc:60 html/inc/pm.inc:138 html/user/ffmail_form.php:57
+#: html/user/pm.php:79 html/user/pm.php:133
+msgid "Subject"
 msgstr ""
 
-#: ../inc/pm.inc:82
-msgid "To"
+#: html/inc/pm.inc:83 html/inc/user.inc:477
+msgid "Send private message"
 msgstr ""
 
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
+#: html/inc/pm.inc:97 html/user/pm.php:125
+msgid "no such message"
 msgstr ""
 
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
+#: html/inc/pm.inc:133
+msgid "To"
 msgstr ""
 
-#: ../inc/pm.inc:89
-msgid "Send message"
+#: html/inc/pm.inc:133
+msgid "User IDs or unique usernames, separated with commas"
 msgstr ""
 
-#: ../inc/pm.inc:122
+#: html/inc/pm.inc:186
 msgid "sent you a private message; subject:"
 msgstr ""
 
-#: ../inc/pm.inc:129
+#: html/inc/pm.inc:193
 msgid "Private message%1 from %2, subject:"
 msgstr ""
 
-#: ../inc/pm.inc:137
+#: html/inc/pm.inc:201
 msgid "Couldn't create message"
 msgstr ""
 
-#: ../inc/pm.inc:168
+#: html/inc/pm.inc:239
 msgid ""
 "You are not allowed to send privates messages so often. Please wait some "
 "time before sending more messages."
 msgstr ""
 
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
+#: html/inc/pm.inc:249 html/user/forum_forum.php:193
 msgid "unread"
 msgstr ""
 
-#: ../inc/pm.inc:188
+#: html/inc/pm.inc:259
 msgid "For email notification, %1edit community prefs%2"
 msgstr ""
 
-#: ../inc/pm.inc:204
+#: html/inc/pm.inc:275
 msgid "Private message"
 msgstr ""
 
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
+#: html/inc/prefs.inc:51 html/inc/prefs.inc:193
 msgid "Usage limits"
 msgstr ""
 
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
+#: html/inc/prefs.inc:53 html/inc/prefs.inc:61
 msgid "Use at most"
 msgstr ""
 
-#: ../inc/prefs.inc:49
+#: html/inc/prefs.inc:55
 #, no-php-format
 msgid ""
 "Keep some CPUs free for other applications. Example: 75% means use 6 cores "
 "on an 8-core CPU."
 msgstr ""
 
-#: ../inc/prefs.inc:52
+#: html/inc/prefs.inc:58
 #, no-php-format
 msgid "% of the CPUs"
 msgstr ""
 
-#: ../inc/prefs.inc:57
+#: html/inc/prefs.inc:63
 #, no-php-format
 msgid ""
 "Suspend/resume computing every few seconds to reduce CPU temperature and "
@@ -1097,380 +1209,376 @@ msgid ""
 "and repeat."
 msgstr ""
 
-#: ../inc/prefs.inc:60
+#: html/inc/prefs.inc:66
 #, no-php-format
 msgid "% of CPU time"
 msgstr ""
 
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
+#: html/inc/prefs.inc:68 html/inc/prefs.inc:214
 msgid "When to suspend"
 msgstr ""
 
-#: ../inc/prefs.inc:64
+#: html/inc/prefs.inc:70
 msgid "Suspend when computer is on battery"
 msgstr ""
 
-#: ../inc/prefs.inc:65
+#: html/inc/prefs.inc:71
 msgid ""
 "Check this to suspend computing on portables when running on battery power."
 msgstr ""
 
-#: ../inc/prefs.inc:70
+#: html/inc/prefs.inc:76
 msgid "Suspend when computer is in use"
 msgstr ""
 
-#: ../inc/prefs.inc:71
+#: html/inc/prefs.inc:77
 msgid ""
 "Check this to suspend computing and file transfers when you're using the "
 "computer."
 msgstr ""
 
-#: ../inc/prefs.inc:76
+#: html/inc/prefs.inc:82
 msgid "Suspend GPU computing when computer is in use"
 msgstr ""
 
-#: ../inc/prefs.inc:77
+#: html/inc/prefs.inc:83
 msgid "Check this to suspend GPU computing when you're using the computer."
 msgstr ""
 
-#: ../inc/prefs.inc:82
+#: html/inc/prefs.inc:88
 msgid "'In use' means mouse/keyboard input in last"
 msgstr ""
 
-#: ../inc/prefs.inc:83
+#: html/inc/prefs.inc:89
 msgid "This determines when the computer is considered 'in use'."
 msgstr ""
 
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
+#: html/inc/prefs.inc:91 html/inc/prefs.inc:98 html/inc/prefs.inc:128
 msgid "minutes"
 msgstr ""
 
-#: ../inc/prefs.inc:89
+#: html/inc/prefs.inc:95
 msgid "Suspend when no mouse/keyboard input in last"
 msgstr ""
 
-#: ../inc/prefs.inc:90
+#: html/inc/prefs.inc:96
 msgid "This allows some computers to enter low-power mode when not in use."
 msgstr ""
 
-#: ../inc/prefs.inc:95
+#: html/inc/prefs.inc:101
 msgid "Suspend when non-BOINC CPU usage is above"
 msgstr ""
 
-#: ../inc/prefs.inc:96
+#: html/inc/prefs.inc:102
 msgid "Suspend computing when your computer is busy running other programs."
 msgstr ""
 
-#: ../inc/prefs.inc:101
+#: html/inc/prefs.inc:107
 msgid "Compute only between"
 msgstr ""
 
-#: ../inc/prefs.inc:102
+#: html/inc/prefs.inc:108
 msgid "Compute only during a particular period each day."
 msgstr ""
 
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
+#: html/inc/prefs.inc:111 html/inc/prefs.inc:220
+#: html/user/forum_banishment_vote_action.php:65
+#: html/user/forum_banishment_vote.php:70 html/user/forum_moderate_post.php:65
+#: html/user/forum_moderate_thread.php:61
 msgid "Other"
 msgstr ""
 
-#: ../inc/prefs.inc:107
+#: html/inc/prefs.inc:113
 msgid "Store at least"
 msgstr ""
 
-#: ../inc/prefs.inc:108
+#: html/inc/prefs.inc:114
 msgid "Store at least enough tasks to keep the computer busy for this long."
 msgstr ""
 
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
+#: html/inc/prefs.inc:116 html/inc/prefs.inc:122
 msgid "days of work"
 msgstr ""
 
-#: ../inc/prefs.inc:113
+#: html/inc/prefs.inc:119
 msgid "Store up to an additional"
 msgstr ""
 
-#: ../inc/prefs.inc:114
+#: html/inc/prefs.inc:120
 msgid ""
 "Store additional tasks above the minimum level.  Determines how much work is "
 "requested when contacting a project."
 msgstr ""
 
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
+#: html/inc/prefs.inc:125
+msgid "Switch between tasks every"
 msgstr ""
 
-#: ../inc/prefs.inc:120
+#: html/inc/prefs.inc:126
 msgid "If you run several projects, BOINC may switch between them this often."
 msgstr ""
 
-#: ../inc/prefs.inc:125
+#: html/inc/prefs.inc:131
 msgid "Request tasks to checkpoint at most every"
 msgstr ""
 
-#: ../inc/prefs.inc:126
+#: html/inc/prefs.inc:132
 msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
+"This controls how often tasks save their state to disk, so that later they "
+"can be continued from that point."
 msgstr ""
 
-#: ../inc/prefs.inc:128
+#: html/inc/prefs.inc:134
 msgid "seconds"
 msgstr ""
 
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
+#: html/inc/prefs.inc:142 html/inc/prefs.inc:154
 msgid "Use no more than"
 msgstr ""
 
-#: ../inc/prefs.inc:137
+#: html/inc/prefs.inc:143
 msgid "Limit the total amount of disk space used by BOINC."
 msgstr ""
 
-#: ../inc/prefs.inc:139
+#: html/inc/prefs.inc:145
 msgid "GB"
 msgstr ""
 
-#: ../inc/prefs.inc:142
+#: html/inc/prefs.inc:148
 msgid "Leave at least"
 msgstr ""
 
-#: ../inc/prefs.inc:143
+#: html/inc/prefs.inc:149
 msgid ""
 "Limit disk usage to leave this much free space on the volume where BOINC "
 "stores data."
 msgstr ""
 
-#: ../inc/prefs.inc:145
+#: html/inc/prefs.inc:151
 msgid "GB free"
 msgstr ""
 
-#: ../inc/prefs.inc:149
+#: html/inc/prefs.inc:155
 msgid ""
 "Limit the percentage of disk space used by BOINC on the volume where it "
 "stores data."
 msgstr ""
 
-#: ../inc/prefs.inc:152
+#: html/inc/prefs.inc:158
 #, no-php-format
 msgid "% of total"
 msgstr ""
 
-#: ../inc/prefs.inc:158
+#: html/inc/prefs.inc:164
 msgid "When computer is in use, use at most"
 msgstr ""
 
-#: ../inc/prefs.inc:159
+#: html/inc/prefs.inc:165
 msgid "Limit the memory used by BOINC when you're using the computer."
 msgstr ""
 
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
+#: html/inc/prefs.inc:168 html/inc/prefs.inc:175 html/inc/prefs.inc:188
 #, no-php-format
 msgid "%"
 msgstr ""
 
-#: ../inc/prefs.inc:165
+#: html/inc/prefs.inc:171
 msgid "When computer is not in use, use at most"
 msgstr ""
 
-#: ../inc/prefs.inc:166
+#: html/inc/prefs.inc:172
 msgid "Limit the memory used by BOINC when you're not using the computer."
 msgstr ""
 
-#: ../inc/prefs.inc:172
+#: html/inc/prefs.inc:178
 msgid "Leave non-GPU tasks in memory while suspended"
 msgstr ""
 
-#: ../inc/prefs.inc:173
+#: html/inc/prefs.inc:179
 msgid ""
 "If checked, suspended tasks stay in memory, and resume with no work lost. If "
 "unchecked, suspended tasks are removed from memory, and resume from their "
 "last checkpoint."
 msgstr ""
 
-#: ../inc/prefs.inc:178
+#: html/inc/prefs.inc:184
 msgid "Page/swap file: use at most"
 msgstr ""
 
-#: ../inc/prefs.inc:179
+#: html/inc/prefs.inc:185
 msgid "Limit the swap space (page file) used by BOINC."
 msgstr ""
 
-#: ../inc/prefs.inc:189
+#: html/inc/prefs.inc:195
 msgid "Limit download rate to"
 msgstr ""
 
-#: ../inc/prefs.inc:190
+#: html/inc/prefs.inc:196
 msgid "Limit the download rate of file transfers."
 msgstr ""
 
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
+#: html/inc/prefs.inc:198 html/inc/prefs.inc:204
 msgid "KB/second"
 msgstr ""
 
-#: ../inc/prefs.inc:195
+#: html/inc/prefs.inc:201
 msgid "Limit upload rate to"
 msgstr ""
 
-#: ../inc/prefs.inc:196
+#: html/inc/prefs.inc:202
 msgid "Limit the upload rate of file transfers."
 msgstr ""
 
-#: ../inc/prefs.inc:201
+#: html/inc/prefs.inc:207
 msgid "Limit usage to"
 msgstr ""
 
-#: ../inc/prefs.inc:202
+#: html/inc/prefs.inc:208
 msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
 msgstr ""
 
-#: ../inc/prefs.inc:205
+#: html/inc/prefs.inc:211
 msgid "MB every"
 msgstr ""
 
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
+#: html/inc/prefs.inc:212 html/inc/util.inc:339
 msgid "days"
 msgstr ""
 
-#: ../inc/prefs.inc:210
+#: html/inc/prefs.inc:216
 msgid "Transfer files only between"
 msgstr ""
 
-#: ../inc/prefs.inc:211
+#: html/inc/prefs.inc:217
 msgid "Transfer files only during a particular period each day."
 msgstr ""
 
-#: ../inc/prefs.inc:216
+#: html/inc/prefs.inc:222
 msgid "Skip data verification for image files"
 msgstr ""
 
-#: ../inc/prefs.inc:217
+#: html/inc/prefs.inc:223
 msgid ""
 "Check this only if your Internet provider modifies image files. Skipping "
 "verification reduces the security of BOINC."
 msgstr ""
 
-#: ../inc/prefs.inc:222
+#: html/inc/prefs.inc:228
 msgid "Confirm before connecting to Internet"
 msgstr ""
 
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
+#: html/inc/prefs.inc:229 html/inc/prefs.inc:235
 msgid "Useful only if you have a modem, ISDN or VPN connection."
 msgstr ""
 
-#: ../inc/prefs.inc:228
+#: html/inc/prefs.inc:234
 msgid "Disconnect when done"
 msgstr ""
 
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr ""
-
-#: ../inc/prefs.inc:236
+#: html/inc/prefs.inc:242
 msgid "Disk"
 msgstr ""
 
-#: ../inc/prefs.inc:238
+#: html/inc/prefs.inc:244
 msgid "Network"
 msgstr ""
 
 #. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
+#: html/inc/prefs.inc:247
 msgid ""
 "These preferences apply to all the BOINC projects in which you participate."
 msgstr ""
 
-#: ../inc/prefs.inc:244
+#: html/inc/prefs.inc:250
 msgid ""
 "%1Unable to update preferences.%2 The values marked in red below were out of "
 "range or not numeric."
 msgstr ""
 
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr ""
-
-#: ../inc/prefs.inc:483
+#: html/inc/prefs.inc:494
 msgid "Separate preferences for %1"
 msgstr ""
 
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
+#: html/inc/prefs.inc:502 html/inc/prefs.inc:537 html/inc/prefs_project.inc:293
 msgid "Edit preferences"
 msgstr ""
 
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
+#: html/inc/prefs.inc:503 html/inc/prefs_util.inc:610
+#: html/user/edit_forum_preferences_form.php:149 html/user/team_admins.php:36
 msgid "Remove"
 msgstr ""
 
-#: ../inc/prefs.inc:499
+#: html/inc/prefs.inc:508
 msgid "Add separate preferences for %1"
 msgstr ""
 
-#: ../inc/prefs.inc:506
+#: html/inc/prefs.inc:515
 msgid "These settings apply to all computers using this account except"
 msgstr ""
 
-#: ../inc/prefs.inc:508
+#: html/inc/prefs.inc:517
 msgid ""
 "computers where you have set preferences locally using the BOINC Manager"
 msgstr ""
 
-#: ../inc/prefs.inc:510
+#: html/inc/prefs.inc:519
 msgid "Android devices"
 msgstr ""
 
-#: ../inc/prefs.inc:513
+#: html/inc/prefs.inc:522
 msgid "(Switch view)"
 msgstr ""
 
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
+#: html/inc/prefs.inc:524 html/inc/prefs_project.inc:275
 msgid "Combined preferences"
 msgstr ""
 
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
+#: html/inc/prefs.inc:531 html/inc/prefs_project.inc:286
 msgid "Primary (default) preferences"
 msgstr ""
 
-#: ../inc/prefs.inc:537
+#: html/inc/prefs.inc:546
 msgid "Preferences last modified:"
 msgstr ""
 
-#: ../inc/prefs.inc:553
+#: html/inc/prefs.inc:562
 msgid "Add preferences"
 msgstr ""
 
-#: ../inc/prefs.inc:557
+#: html/inc/prefs.inc:566
 msgid "Update preferences"
 msgstr ""
 
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
+#: html/inc/prefs.inc:637 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:88
+#: html/project.sample/project_specific_prefs.inc:272
 msgid "yes"
 msgstr ""
 
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
+#: html/inc/prefs.inc:639 html/inc/prefs_util.inc:575
+#: html/inc/prefs_util.inc:578
+#: html/project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:272
 msgid "no"
 msgstr ""
 
 #. TODO: make this a subclass of PREF
 #.
-#: ../inc/prefs.inc:638
+#: html/inc/prefs.inc:647
 msgid "Default computer location"
 msgstr ""
 
-#: ../inc/prefs.inc:639
+#: html/inc/prefs.inc:648
 msgid ""
 "New computers will use this location for computing and project preferences."
 msgstr ""
 
-#: ../inc/prefs_project.inc:52
+#: html/inc/prefs_project.inc:54
 msgid "Resource share"
 msgstr ""
 
-#: ../inc/prefs_project.inc:53
+#: html/inc/prefs_project.inc:55
 msgid ""
 "Determines the proportion of your computer's resources allocated to this "
 "project. For example, if you participate in two BOINC projects with resource "
@@ -1478,1037 +1586,1073 @@ msgid ""
 "second will get 2/3."
 msgstr ""
 
-#: ../inc/prefs_project.inc:61
+#: html/inc/prefs_project.inc:63
 msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
 msgstr ""
 
-#: ../inc/prefs_project.inc:70
+#: html/inc/prefs_project.inc:72
 msgid "Use CPU"
 msgstr ""
 
-#: ../inc/prefs_project.inc:79
+#: html/inc/prefs_project.inc:81
 msgid "Use ATI GPU"
 msgstr ""
 
-#: ../inc/prefs_project.inc:88
+#: html/inc/prefs_project.inc:90
 msgid "Use NVIDIA GPU"
 msgstr ""
 
-#: ../inc/prefs_project.inc:97
+#: html/inc/prefs_project.inc:99
 msgid "Use Intel GPU"
 msgstr ""
 
-#: ../inc/prefs_project.inc:107
+#: html/inc/prefs_project.inc:109
 msgid "Run test applications?"
 msgstr ""
 
-#: ../inc/prefs_project.inc:108
+#: html/inc/prefs_project.inc:110
 msgid ""
 "This helps us develop applications, but may cause jobs to fail on your "
 "computer"
 msgstr ""
 
-#: ../inc/prefs_project.inc:115
+#: html/inc/prefs_project.inc:117
 msgid ""
 "Emails will be sent from %1; make sure your spam filter accepts this address."
 msgstr ""
 
-#: ../inc/prefs_project.inc:123
+#: html/inc/prefs_project.inc:125
 msgid "Is it OK for %1 and your team (if any) to email you?"
 msgstr ""
 
-#: ../inc/prefs_project.inc:130
+#: html/inc/prefs_project.inc:132
 msgid "Should %1 show your computers on its web site?"
 msgstr ""
 
-#: ../inc/prefs_project.inc:270
+#: html/inc/prefs_project.inc:272
 msgid "(Switch View)"
 msgstr ""
 
-#: ../inc/prefs_project.inc:276
+#: html/inc/prefs_project.inc:278
 msgid "Project specific settings"
 msgstr ""
 
-#: ../inc/prefs_util.inc:33
+#: html/inc/prefs_util.inc:33
 msgid "bad venue: %1"
 msgstr ""
 
-#: ../inc/prefs_util.inc:39
+#: html/inc/prefs_util.inc:39
 msgid "bad subset: %1"
 msgstr ""
 
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
+#: html/inc/prefs_util.inc:470 html/inc/prefs_util.inc:494
 msgid "and"
 msgstr ""
 
-#: ../inc/profile.inc:86
+#: html/inc/prefs_util.inc:583 html/user/forum_search.php:55
+msgid "no limit"
+msgstr ""
+
+#: html/inc/prefs_util.inc:608 html/user/team_admins.php:82
+msgid "Add"
+msgstr ""
+
+#: html/inc/profile.inc:85
 msgid ""
 "Your profile will be made visible to other people as soon as it has been "
 "approved by the project. This may take up to a few days."
 msgstr ""
 
-#: ../inc/profile.inc:92
+#: html/inc/profile.inc:91
 msgid ""
 "Your profile has been marked as unacceptable. It is not visible to other "
 "people. Please change it."
 msgstr ""
 
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
+#: html/inc/profile.inc:171 html/user/friend.php:107 html/user/friend.php:174
 msgid "Database error"
 msgstr ""
 
-#: ../inc/profile.inc:193
+#: html/inc/profile.inc:194
 msgid ""
 "To prevent spam, profiles of users with an average credit of less than %1 "
 "are displayed only to logged-in users. We apologize for this inconvenience."
 msgstr ""
 
-#: ../inc/profile.inc:197
+#: html/inc/profile.inc:198
 msgid "User is banished"
 msgstr ""
 
-#: ../inc/profile.inc:211
+#: html/inc/profile.inc:212
 msgid "No profile exists for that user ID."
 msgstr ""
 
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
+#: html/inc/profile.inc:221 html/user/create_profile.php:316
 msgid "Edit your profile"
 msgstr ""
 
-#: ../inc/profile.inc:262
+#: html/inc/profile.inc:267
 msgid "Your feedback on this profile"
 msgstr ""
 
-#: ../inc/profile.inc:264
+#: html/inc/profile.inc:269
 msgid "Recommend this profile for User of the Day:"
 msgstr ""
 
-#: ../inc/profile.inc:265
+#: html/inc/profile.inc:270
 msgid "I %1like%2 this profile"
 msgstr ""
 
-#: ../inc/profile.inc:268
+#: html/inc/profile.inc:273
 msgid "Alert administrators to an offensive profile:"
 msgstr ""
 
-#: ../inc/profile.inc:269
+#: html/inc/profile.inc:274
 msgid "I %1do not like%2 this profile"
 msgstr ""
 
-#: ../inc/result.inc:35
+#: html/inc/result.inc:58
 msgid "Anonymous platform"
 msgstr ""
 
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
+#: html/inc/result.inc:76 html/user/host_app_versions.php:24
 msgid "NVIDIA GPU"
 msgstr ""
 
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
+#: html/inc/result.inc:78 html/user/host_app_versions.php:25
 msgid "ATI GPU"
 msgstr ""
 
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
+#: html/inc/result.inc:80 html/user/host_app_versions.php:26
 msgid "Intel GPU"
 msgstr ""
 
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr ""
-
-#: ../inc/result.inc:91
+#: html/inc/result.inc:105
 msgid "pending"
 msgstr ""
 
-#: ../inc/result.inc:114 ../user/forum_search.php:62
+#: html/inc/result.inc:128 html/user/forum_search.php:62
 msgid "All"
 msgstr ""
 
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
+#: html/inc/result.inc:129 html/inc/result.inc:190 html/inc/result.inc:237
+#: html/user/server_status.php:166
 msgid "In progress"
 msgstr ""
 
-#: ../inc/result.inc:116
+#: html/inc/result.inc:130
 msgid "Validation pending"
 msgstr ""
 
-#: ../inc/result.inc:117
+#: html/inc/result.inc:131
 msgid "Validation inconclusive"
 msgstr ""
 
-#: ../inc/result.inc:118 ../inc/result.inc:268
+#: html/inc/result.inc:132 html/inc/result.inc:282
 msgid "Valid"
 msgstr ""
 
-#: ../inc/result.inc:119 ../inc/result.inc:271
+#: html/inc/result.inc:133 html/inc/result.inc:285
 msgid "Invalid"
 msgstr ""
 
-#: ../inc/result.inc:120 ../inc/result.inc:209
+#: html/inc/result.inc:134 html/inc/result.inc:223
 msgid "Error"
 msgstr ""
 
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
+#: html/inc/result.inc:188 html/inc/result.inc:235
+#: html/user/explain_state.php:34
 msgid "Inactive"
 msgstr ""
 
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
+#: html/inc/result.inc:189 html/inc/result.inc:236
+#: html/user/explain_state.php:37 html/user/server_status.php:165
 msgid "Unsent"
 msgstr ""
 
-#: ../inc/result.inc:181
+#: html/inc/result.inc:195
 msgid "Completed, waiting for validation"
 msgstr ""
 
-#: ../inc/result.inc:182
+#: html/inc/result.inc:196
 msgid "Completed and validated"
 msgstr ""
 
-#: ../inc/result.inc:183
+#: html/inc/result.inc:197
 msgid "Completed, marked as invalid"
 msgstr ""
 
-#: ../inc/result.inc:184
+#: html/inc/result.inc:198
 msgid "Completed, can't validate"
 msgstr ""
 
-#: ../inc/result.inc:185
+#: html/inc/result.inc:199
 msgid "Completed, validation inconclusive"
 msgstr ""
 
-#: ../inc/result.inc:186
+#: html/inc/result.inc:200
 msgid "Completed, too late to validate"
 msgstr ""
 
-#: ../inc/result.inc:188
+#: html/inc/result.inc:202
 msgid "Completed"
 msgstr ""
 
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
+#: html/inc/result.inc:203 html/inc/result.inc:247
+#: html/user/explain_state.php:62
 msgid "Couldn't send"
 msgstr ""
 
-#: ../inc/result.inc:194 ../inc/result.inc:257
+#: html/inc/result.inc:208 html/inc/result.inc:271
 msgid "Cancelled by server"
 msgstr ""
 
-#: ../inc/result.inc:199
+#: html/inc/result.inc:213
 msgid "Not started by deadline - canceled"
 msgstr ""
 
-#: ../inc/result.inc:202
+#: html/inc/result.inc:216
 msgid "Error while downloading"
 msgstr ""
 
-#: ../inc/result.inc:204
+#: html/inc/result.inc:218
 msgid "Error while computing"
 msgstr ""
 
-#: ../inc/result.inc:205
+#: html/inc/result.inc:219
 msgid "Error while uploading"
 msgstr ""
 
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
+#: html/inc/result.inc:220
+msgid "Aborted"
 msgstr ""
 
-#: ../inc/result.inc:207 ../inc/result.inc:260
+#: html/inc/result.inc:221 html/inc/result.inc:274
 msgid "Upload failed"
 msgstr ""
 
-#: ../inc/result.inc:210
+#: html/inc/result.inc:224
 msgid "Timed out - no response"
 msgstr ""
 
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
+#: html/inc/result.inc:225 html/inc/result.inc:254
+#: html/user/explain_state.php:71
 msgid "Didn't need"
 msgstr ""
 
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
+#: html/inc/result.inc:226 html/inc/result.inc:255
+#: html/user/explain_state.php:74
 msgid "Validate error"
 msgstr ""
 
-#: ../inc/result.inc:213 ../inc/result.inc:242
+#: html/inc/result.inc:227 html/inc/result.inc:256
 msgid "Abandoned"
 msgstr ""
 
-#: ../inc/result.inc:224 ../user/explain_state.php:43
+#: html/inc/result.inc:238 html/user/explain_state.php:43
 msgid "Over"
 msgstr ""
 
-#: ../inc/result.inc:232 ../user/explain_state.php:59
+#: html/inc/result.inc:246 html/user/explain_state.php:59
 msgid "Success"
 msgstr ""
 
-#: ../inc/result.inc:236
+#: html/inc/result.inc:250
 msgid "Computation error"
 msgstr ""
 
-#: ../inc/result.inc:238
+#: html/inc/result.inc:252
 msgid "Redundant result"
 msgstr ""
 
-#: ../inc/result.inc:239 ../user/explain_state.php:68
+#: html/inc/result.inc:253 html/user/explain_state.php:68
 msgid "No reply"
 msgstr ""
 
-#: ../inc/result.inc:249 ../user/explain_state.php:85
+#: html/inc/result.inc:263 html/user/explain_state.php:85
 msgid "New"
 msgstr ""
 
-#: ../inc/result.inc:250 ../user/explain_state.php:91
+#: html/inc/result.inc:264 html/user/explain_state.php:91
 msgid "Downloading"
 msgstr ""
 
-#: ../inc/result.inc:251
+#: html/inc/result.inc:265
 msgid "Processing"
 msgstr ""
 
-#: ../inc/result.inc:252
+#: html/inc/result.inc:266
 msgid "Compute error"
 msgstr ""
 
-#: ../inc/result.inc:253 ../user/explain_state.php:97
+#: html/inc/result.inc:267 html/user/explain_state.php:97
 msgid "Uploading"
 msgstr ""
 
-#: ../inc/result.inc:254 ../user/explain_state.php:88
+#: html/inc/result.inc:268 html/user/explain_state.php:88
 msgid "Done"
 msgstr ""
 
-#: ../inc/result.inc:267
+#: html/inc/result.inc:273
+msgid "Aborted by user"
+msgstr ""
+
+#: html/inc/result.inc:281
 msgid "Initial"
 msgstr ""
 
-#: ../inc/result.inc:273
+#: html/inc/result.inc:287
 msgid "Not necessary"
 msgstr ""
 
-#: ../inc/result.inc:274
+#: html/inc/result.inc:288
 msgid "Workunit error - check skipped"
 msgstr ""
 
-#: ../inc/result.inc:275
+#: html/inc/result.inc:289
 msgid "Checked, but no consensus yet"
 msgstr ""
 
-#: ../inc/result.inc:276
+#: html/inc/result.inc:290
 msgid "Task was reported too late to validate"
 msgstr ""
 
-#: ../inc/result.inc:302
+#: html/inc/result.inc:316
 msgid "Couldn't send result"
 msgstr ""
 
-#: ../inc/result.inc:306
+#: html/inc/result.inc:320
 msgid "Too many errors (may have bug)"
 msgstr ""
 
-#: ../inc/result.inc:310
+#: html/inc/result.inc:324
 msgid "Too many results (may be nondeterministic)"
 msgstr ""
 
-#: ../inc/result.inc:314
+#: html/inc/result.inc:328
 msgid "Too many total results"
 msgstr ""
 
-#: ../inc/result.inc:318
+#: html/inc/result.inc:332
 msgid "WU cancelled"
 msgstr ""
 
-#: ../inc/result.inc:322
+#: html/inc/result.inc:336
 msgid "Canonical result is missing"
 msgstr ""
 
-#: ../inc/result.inc:326
+#: html/inc/result.inc:340
 msgid "Unrecognized Error: %1"
 msgstr ""
 
-#: ../inc/result.inc:353
+#: html/inc/result.inc:369
 msgid "Task name"
 msgstr ""
 
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
+#: html/inc/result.inc:369 html/inc/result.inc:374 html/inc/result.inc:377
+#: html/inc/result.inc:380
 msgid "click for details"
 msgstr ""
 
-#: ../inc/result.inc:353
+#: html/inc/result.inc:369
 msgid "Show IDs"
 msgstr ""
 
-#: ../inc/result.inc:358
+#: html/inc/result.inc:374
 msgid "Show names"
 msgstr ""
 
-#: ../inc/result.inc:361 ../user/result.php:36
+#: html/inc/result.inc:377 html/user/result.php:36
 msgid "Task"
 msgstr ""
 
-#: ../inc/result.inc:364
+#: html/inc/result.inc:380
 msgid "Work unit"
 msgstr ""
 
-#: ../inc/result.inc:373
+#: html/inc/result.inc:391
 msgid "Computer"
 msgstr ""
 
-#: ../inc/result.inc:376 ../inc/result.inc:635
+#: html/inc/result.inc:394 html/inc/result.inc:695
 msgid "Sent"
 msgstr ""
 
-#: ../inc/result.inc:377
+#: html/inc/result.inc:395
 msgid "Time reported<br />or deadline"
 msgstr ""
 
-#: ../inc/result.inc:378
+#: html/inc/result.inc:396
 msgid "explain"
 msgstr ""
 
-#: ../inc/result.inc:380 ../user/server_status.php:113
+#: html/inc/result.inc:397 html/user/server_status.php:112
 msgid "Status"
 msgstr ""
 
-#: ../inc/result.inc:381
+#: html/inc/result.inc:401
 msgid "Run time<br />(sec)"
 msgstr ""
 
-#: ../inc/result.inc:382
+#: html/inc/result.inc:402
 msgid "CPU time<br />(sec)"
 msgstr ""
 
-#: ../inc/result.inc:383 ../inc/result.inc:646
+#: html/inc/result.inc:403 html/inc/result.inc:706
 msgid "Credit"
 msgstr ""
 
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
+#: html/inc/result.inc:407 html/inc/result.inc:813
+#: html/user/server_status.php:164
 msgid "Application"
 msgstr ""
 
-#: ../inc/result.inc:633
+#: html/inc/result.inc:693
 msgid "Workunit"
 msgstr ""
 
-#: ../inc/result.inc:636
+#: html/inc/result.inc:696
 msgid "Report deadline"
 msgstr ""
 
-#: ../inc/result.inc:637
+#: html/inc/result.inc:697
 msgid "Received"
 msgstr ""
 
-#: ../inc/result.inc:638
+#: html/inc/result.inc:698
 msgid "Server state"
 msgstr ""
 
-#: ../inc/result.inc:639
+#: html/inc/result.inc:699
 msgid "Outcome"
 msgstr ""
 
-#: ../inc/result.inc:640
+#: html/inc/result.inc:700
 msgid "Client state"
 msgstr ""
 
-#: ../inc/result.inc:641
+#: html/inc/result.inc:701
 msgid "Exit status"
 msgstr ""
 
-#: ../inc/result.inc:643
+#: html/inc/result.inc:703
 msgid "Run time"
 msgstr ""
 
-#: ../inc/result.inc:644
+#: html/inc/result.inc:704
 msgid "CPU time"
 msgstr ""
 
-#: ../inc/result.inc:645
+#: html/inc/result.inc:705
 msgid "Validate state"
 msgstr ""
 
-#: ../inc/result.inc:647
+#: html/inc/result.inc:707
 msgid "Device peak FLOPS"
 msgstr ""
 
-#: ../inc/result.inc:648
+#: html/inc/result.inc:708
 msgid "Application version"
 msgstr ""
 
-#: ../inc/result.inc:673
+#: html/inc/result.inc:733
 msgid "Output files"
 msgstr ""
 
-#: ../inc/result.inc:676
+#: html/inc/result.inc:736
 msgid "Stderr output"
 msgstr ""
 
-#: ../inc/result.inc:728
+#: html/inc/result.inc:795
 msgid "State"
 msgstr ""
 
-#: ../inc/result.inc:769
+#: html/inc/result.inc:836
 msgid "Task name:"
 msgstr ""
 
-#: ../inc/team.inc:40
+#: html/inc/team.inc:40
 msgid "Search criteria (use one or more)"
 msgstr ""
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Key words"
 msgstr ""
 
-#: ../inc/team.inc:41
+#: html/inc/team.inc:42
 msgid "Find teams with these words in their names or descriptions"
 msgstr ""
 
-#: ../inc/team.inc:49 ../inc/team.inc:473
+#: html/inc/team.inc:50 html/inc/team.inc:465
 msgid "Type of team"
 msgstr ""
 
-#: ../inc/team.inc:51
+#: html/inc/team.inc:52
 msgid "Show only active teams"
 msgstr ""
 
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
+#: html/inc/team.inc:53 html/inc/util.inc:1071 html/user/profile_menu.php:78
+#: html/user/site_search.php:29 html/user/user_search.php:73
 msgid "Search"
 msgstr ""
 
-#: ../inc/team.inc:61
+#: html/inc/team.inc:62
 msgid "Requested by you, and founder response deadline has passed."
 msgstr ""
 
-#: ../inc/team.inc:63
+#: html/inc/team.inc:64
 msgid "Complete foundership transfer"
 msgstr ""
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "Requested by you"
 msgstr ""
 
-#: ../inc/team.inc:67
+#: html/inc/team.inc:68
 msgid "founder response deadline is %1"
 msgstr ""
 
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
+#: html/inc/team.inc:73 html/inc/team.inc:567 html/inc/team_types.inc:24
+#: html/inc/user.inc:370 html/inc/user.inc:468
 msgid "None"
 msgstr ""
 
-#: ../inc/team.inc:74
+#: html/inc/team.inc:75
 msgid "Initiate request"
 msgstr ""
 
-#: ../inc/team.inc:77
+#: html/inc/team.inc:78
 msgid "Deferred"
 msgstr ""
 
-#: ../inc/team.inc:91
+#: html/inc/team.inc:92
 msgid "Team info"
 msgstr ""
 
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
+#: html/inc/team.inc:94 html/user/team_forum.php:75
+#: html/user/team_search.php:82
 msgid "Description"
 msgstr ""
 
-#: ../inc/team.inc:106
+#: html/inc/team.inc:107
 msgid "Web site"
 msgstr ""
 
-#: ../inc/team.inc:132
+#: html/inc/team.inc:133
 msgid "Cross-project stats"
 msgstr ""
 
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
+#: html/inc/team.inc:136 html/inc/team.inc:379 html/user/team_search.php:86
 msgid "Type"
 msgstr ""
 
-#: ../inc/team.inc:139 ../user/team_manage.php:65
+#: html/inc/team.inc:140 html/user/team_manage.php:67
 msgid "Message board"
 msgstr ""
 
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
+#: html/inc/team.inc:141 html/user/forum_forum.php:142
+#: html/user/forum_index.php:96
 msgid "Threads"
 msgstr ""
 
-#: ../inc/team.inc:148
+#: html/inc/team.inc:149
 msgid "Join this team"
 msgstr ""
 
-#: ../inc/team.inc:149
+#: html/inc/team.inc:150
 msgid ""
 "Note: if 'OK to email' is set in your project preferences, joining a team "
 "gives its founder access to your email address."
 msgstr ""
 
-#: ../inc/team.inc:152
+#: html/inc/team.inc:153
 msgid "Not accepting new members"
 msgstr ""
 
-#: ../inc/team.inc:159
+#: html/inc/team.inc:160
 msgid "Foundership change requested"
 msgstr ""
 
-#: ../inc/team.inc:160
+#: html/inc/team.inc:161
 msgid "Respond by %1"
 msgstr ""
 
-#: ../inc/team.inc:164
+#: html/inc/team.inc:165
 msgid "Team foundership change"
 msgstr ""
 
-#: ../inc/team.inc:168 ../inc/team.inc:373
+#: html/inc/team.inc:169 html/inc/team.inc:370
 msgid "Members"
 msgstr ""
 
-#: ../inc/team.inc:169 ../inc/team.inc:268
+#: html/inc/team.inc:170 html/inc/team.inc:265
 msgid "Founder"
 msgstr ""
 
-#: ../inc/team.inc:183
+#: html/inc/team.inc:184
 msgid "Admins"
 msgstr ""
 
-#: ../inc/team.inc:198
+#: html/inc/team.inc:199
 msgid "New members in last day"
 msgstr ""
 
-#: ../inc/team.inc:199
+#: html/inc/team.inc:200
 msgid "Total members"
 msgstr ""
 
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
+#: html/inc/team.inc:200 html/inc/team.inc:201 html/inc/team.inc:202
 msgid "view"
 msgstr ""
 
-#: ../inc/team.inc:200
+#: html/inc/team.inc:201
 msgid "Active members"
 msgstr ""
 
-#: ../inc/team.inc:201
+#: html/inc/team.inc:202
 msgid "Members with credit"
 msgstr ""
 
-#: ../inc/team.inc:270
+#: html/inc/team.inc:267
 msgid "Admin"
 msgstr ""
 
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
+#: html/inc/team.inc:288 html/user/forum_user_posts.php:124
+#: html/user/top_hosts.php:94 html/user/top_teams.php:125
+#: html/user/top_users.php:122
 msgid "Previous %1"
 msgstr ""
 
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
+#: html/inc/team.inc:292 html/user/forum_user_posts.php:133
+#: html/user/profile_search_action.php:63 html/user/top_hosts.php:100
+#: html/user/top_teams.php:130 html/user/top_users.php:127
 msgid "Next %1"
 msgstr ""
 
-#: ../inc/team.inc:303
+#: html/inc/team.inc:300
 msgid "No such team."
 msgstr ""
 
-#: ../inc/team.inc:316
+#: html/inc/team.inc:313
 msgid "This operation requires foundership."
 msgstr ""
 
-#: ../inc/team.inc:340
+#: html/inc/team.inc:337
 msgid "This operation requires team admin privileges"
 msgstr ""
 
-#: ../inc/team.inc:442
+#: html/inc/team.inc:434
 msgid ""
 "WARNING: this is a BOINC-wide team. If you make changes here, they will soon "
 "be overwritten. Edit the %1BOINC-wide team%2 instead."
 msgstr ""
 
-#: ../inc/team.inc:448
+#: html/inc/team.inc:440
 msgid ""
 "%1Privacy note%2: if you create a team, your project preferences (resource "
 "share, graphics preferences) will be visible to the public."
 msgstr ""
 
-#: ../inc/team.inc:452
+#: html/inc/team.inc:444
 msgid "Team name, text version"
 msgstr ""
 
-#: ../inc/team.inc:453
+#: html/inc/team.inc:445
 msgid "Don't use HTML tags."
 msgstr ""
 
-#: ../inc/team.inc:456
+#: html/inc/team.inc:448
 msgid "Team name, HTML version"
 msgstr ""
 
-#: ../inc/team.inc:458 ../inc/team.inc:468
+#: html/inc/team.inc:450 html/inc/team.inc:460
 msgid "You may use %1limited HTML tags%2."
 msgstr ""
 
-#: ../inc/team.inc:459
+#: html/inc/team.inc:451
 msgid "If you don't know HTML, leave this box blank."
 msgstr ""
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:454
 msgid "URL of team web page, if any"
 msgstr ""
 
-#: ../inc/team.inc:462
+#: html/inc/team.inc:454
 msgid "without \"http://\""
 msgstr ""
 
-#: ../inc/team.inc:463
+#: html/inc/team.inc:455
 msgid "This URL will be linked to from the team's page on this site."
 msgstr ""
 
-#: ../inc/team.inc:466
+#: html/inc/team.inc:458
 msgid "Description of team"
 msgstr ""
 
-#: ../inc/team.inc:482
+#: html/inc/team.inc:474
 msgid "Accept new members?"
 msgstr ""
 
-#: ../inc/uotd.inc:30
+#: html/inc/team_types.inc:25
+msgid "Company"
+msgstr ""
+
+#: html/inc/team_types.inc:26
+msgid "Primary school"
+msgstr ""
+
+#: html/inc/team_types.inc:27
+msgid "Secondary school"
+msgstr ""
+
+#: html/inc/team_types.inc:28
+msgid "Junior college"
+msgstr ""
+
+#: html/inc/team_types.inc:29
+msgid "University or department"
+msgstr ""
+
+#: html/inc/team_types.inc:30
+msgid "Government agency"
+msgstr ""
+
+#: html/inc/team_types.inc:31
+msgid "Non-profit organization"
+msgstr ""
+
+#: html/inc/team_types.inc:32
+msgid "National"
+msgstr ""
+
+#: html/inc/team_types.inc:33
+msgid "Local/regional"
+msgstr ""
+
+#: html/inc/team_types.inc:34
+msgid "Computer type"
+msgstr ""
+
+#: html/inc/team_types.inc:35
+msgid "Social/political/religious"
+msgstr ""
+
+#: html/inc/uotd.inc:30
 msgid "User profile"
 msgstr ""
 
-#: ../inc/user.inc:120
+#: html/inc/user.inc:118
 msgid "Projects in which you are participating"
 msgstr ""
 
-#: ../inc/user.inc:122
+#: html/inc/user.inc:120
 msgid "Projects in which %1 is participating"
 msgstr ""
 
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr ""
-
-#: ../inc/user.inc:126
+#: html/inc/user.inc:125
 msgid "Click for user page"
 msgstr ""
 
-#: ../inc/user.inc:126
+#: html/inc/user.inc:128
 msgid "Since"
 msgstr ""
 
-#: ../inc/user.inc:151
+#: html/inc/user.inc:155
 msgid "Computing and credit"
 msgstr ""
 
-#: ../inc/user.inc:154
+#: html/inc/user.inc:158
 msgid "Computers on this account"
 msgstr ""
 
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
+#: html/inc/user.inc:158 html/inc/user.inc:159 html/inc/user.inc:237
+#: html/inc/user.inc:325 html/inc/user.inc:420 html/inc/user.inc:501
+#: html/user/view_profile.php:66
 msgid "View"
 msgstr ""
 
-#: ../inc/user.inc:164
+#: html/inc/user.inc:168
 msgid "Cross-project ID"
 msgstr ""
 
-#: ../inc/user.inc:165
+#: html/inc/user.inc:169
 msgid "Cross-project statistics"
 msgstr ""
 
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr ""
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
+#: html/inc/user.inc:172 html/inc/user.inc:370 html/inc/user.inc:466
+#: html/inc/user.inc:468 html/user/user_search.php:129
 msgid "Team"
 msgstr ""
 
-#: ../inc/user.inc:170
+#: html/inc/user.inc:174
 msgid "Cross-project"
 msgstr ""
 
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr ""
-
-#: ../inc/user.inc:172
+#: html/inc/user.inc:176
 msgid "Stats on your cell phone"
 msgstr ""
 
-#: ../inc/user.inc:197
+#: html/inc/user.inc:201
 msgid "Account information"
 msgstr ""
 
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
+#: html/inc/user.inc:210 html/user/get_passwd.php:31
 msgid "Email address"
 msgstr ""
 
-#: ../inc/user.inc:210 ../inc/user.inc:400
+#: html/inc/user.inc:214 html/inc/user.inc:413
 msgid "URL"
 msgstr ""
 
-#: ../inc/user.inc:213
+#: html/inc/user.inc:217
 msgid "Postal code"
 msgstr ""
 
-#: ../inc/user.inc:214 ../inc/user.inc:394
+#: html/inc/user.inc:218 html/inc/user.inc:407
 msgid "%1 member since"
 msgstr ""
 
 #. LDAP accounts can't change email or password
 #.
-#: ../inc/user.inc:219 ../inc/user.inc:223
+#: html/inc/user.inc:223 html/inc/user.inc:227
 msgid "Change"
 msgstr ""
 
-#: ../inc/user.inc:224
+#: html/inc/user.inc:228
 msgid "email address"
 msgstr ""
 
-#: ../inc/user.inc:225
+#: html/inc/user.inc:229
 msgid "password"
 msgstr ""
 
-#: ../inc/user.inc:226
+#: html/inc/user.inc:230
 msgid "other account info"
 msgstr ""
 
-#: ../inc/user.inc:229 ../inc/user.inc:393
+#: html/inc/user.inc:233 html/inc/user.inc:406
 msgid "User ID"
 msgstr ""
 
-#: ../inc/user.inc:229
+#: html/inc/user.inc:233
 msgid "Used in community functions"
 msgstr ""
 
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
+#: html/inc/user.inc:236 html/user/weak_auth.php:23
 msgid "Account keys"
 msgstr ""
 
-#: ../inc/user.inc:237
+#: html/inc/user.inc:241
 msgid "Preferences"
 msgstr ""
 
-#: ../inc/user.inc:240
+#: html/inc/user.inc:244
 msgid "When and how BOINC uses your computer"
 msgstr ""
 
-#: ../inc/user.inc:241
+#: html/inc/user.inc:245
 msgid "Computing preferences"
 msgstr ""
 
-#: ../inc/user.inc:244
+#: html/inc/user.inc:248
 msgid "Message boards and private messages"
 msgstr ""
 
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
+#: html/inc/user.inc:249 html/user/edit_forum_preferences_form.php:31
 msgid "Community preferences"
 msgstr ""
 
-#: ../inc/user.inc:248
+#: html/inc/user.inc:252
 msgid "Preferences for this project"
 msgstr ""
 
-#: ../inc/user.inc:249 ../user/prefs.php:30
+#: html/inc/user.inc:253 html/user/prefs.php:30
 msgid "%1 preferences"
 msgstr ""
 
-#: ../inc/user.inc:266
+#: html/inc/user.inc:270
 msgid "View the profile of %1"
 msgstr ""
 
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
+#: html/inc/user.inc:271 html/inc/user.inc:329 html/inc/user.inc:501
 msgid "Profile"
 msgstr ""
 
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr ""
-
-#: ../inc/user.inc:314
+#: html/inc/user.inc:327
 msgid "Create"
 msgstr ""
 
-#: ../inc/user.inc:321 ../inc/user.inc:454
+#: html/inc/user.inc:334 html/inc/user.inc:473
 msgid "%1 posts"
 msgstr ""
 
 #. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
+#: html/inc/user.inc:352 html/user/edit_forum_preferences_form.php:40
 msgid "Notifications"
 msgstr ""
 
-#: ../inc/user.inc:346
+#: html/inc/user.inc:358
 msgid "Quit team"
 msgstr ""
 
-#: ../inc/user.inc:348 ../inc/user.inc:365
+#: html/inc/user.inc:360 html/inc/user.inc:377
 msgid "Administer"
 msgstr ""
 
-#: ../inc/user.inc:354 ../inc/user.inc:367
+#: html/inc/user.inc:366 html/inc/user.inc:379
 msgid "(foundership change request pending)"
 msgstr ""
 
-#: ../inc/user.inc:356
+#: html/inc/user.inc:368
 msgid "Member of team"
 msgstr ""
 
-#: ../inc/user.inc:358
+#: html/inc/user.inc:370
 msgid "find a team"
 msgstr ""
 
-#: ../inc/user.inc:369
+#: html/inc/user.inc:381
 msgid "Founder but not member of"
 msgstr ""
 
-#: ../inc/user.inc:375
+#: html/inc/user.inc:387
 msgid "Find friends"
 msgstr ""
 
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
+#: html/inc/user.inc:395 html/inc/user.inc:397 html/inc/user.inc:484
+#: html/inc/user.inc:486 html/inc/user.inc:495
 msgid "Friends"
 msgstr ""
 
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr ""
-
-#: ../inc/user.inc:415
+#: html/inc/user.inc:428 html/inc/user.inc:434
 msgid "Donor"
 msgstr ""
 
-#: ../inc/user.inc:458
+#: html/inc/user.inc:477
 msgid "Contact"
 msgstr ""
 
-#: ../inc/user.inc:461
+#: html/inc/user.inc:480
 msgid "This person is a friend"
 msgstr ""
 
-#: ../inc/user.inc:462 ../user/friend.php:240
+#: html/inc/user.inc:481 html/user/friend.php:240
 msgid "Cancel friendship"
 msgstr ""
 
-#: ../inc/user.inc:465 ../user/friend.php:39
+#: html/inc/user.inc:484 html/user/friend.php:39
 msgid "Request pending"
 msgstr ""
 
-#: ../inc/user.inc:467
+#: html/inc/user.inc:486
 msgid "Add as friend"
 msgstr ""
 
-#: ../inc/user.inc:526
+#: html/inc/user.inc:545
 msgid "user name cannot have leading or trailing white space"
 msgstr ""
 
-#: ../inc/user.inc:530
+#: html/inc/user.inc:549
 msgid "user name must be nonempty"
 msgstr ""
 
-#: ../inc/user.inc:534
+#: html/inc/user.inc:553
 msgid "user name may not contain HTML tags"
 msgstr ""
 
-#: ../inc/util.inc:161
+#: html/inc/util.inc:163
 msgid "log out"
 msgstr ""
 
-#: ../inc/util.inc:163
+#: html/inc/util.inc:165
 msgid "log in"
 msgstr ""
 
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
+#: html/inc/util.inc:269
 msgid "Create an account"
 msgstr ""
 
-#: ../inc/util.inc:240
+#: html/inc/util.inc:270
 msgid "Server status page"
 msgstr ""
 
-#: ../inc/util.inc:277
+#: html/inc/util.inc:313
 msgid ""
 "A database error occurred while handling your request; please try again "
 "later."
 msgstr ""
 
-#: ../inc/util.inc:286
+#: html/inc/util.inc:322
 msgid "Unable to handle request"
 msgstr ""
 
-#: ../inc/util.inc:306
+#: html/inc/util.inc:342
 msgid "hours"
 msgstr ""
 
-#: ../inc/util.inc:309
+#: html/inc/util.inc:345
 msgid "min"
 msgstr ""
 
-#: ../inc/util.inc:312
+#: html/inc/util.inc:348
 msgid "sec"
 msgstr ""
 
-#: ../inc/util.inc:473
+#: html/inc/util.inc:527
 msgid "Link has timed out. Please click Back, refresh the page, and try again."
 msgstr ""
 
-#: ../inc/util.inc:552
+#: html/inc/util.inc:606
 msgid "Use BBCode tags to format your text"
 msgstr ""
 
-#: ../inc/util.inc:779
+#: html/inc/util.inc:853
 msgid "Project down for maintenance"
 msgstr ""
 
-#: ../inc/util.inc:782
+#: html/inc/util.inc:856
 msgid "%1 is temporarily shut down for maintenance.  Please try again later."
 msgstr ""
 
-#: ../inc/util.inc:800
+#: html/inc/util.inc:874
 msgid "Unable to connect to database - please try again later"
 msgstr ""
 
-#: ../inc/util.inc:804
+#: html/inc/util.inc:878
 msgid "Unable to select database - please try again later"
 msgstr ""
 
-#: ../inc/util.inc:976
+#: html/inc/util.inc:1050
 msgid "characters remaining"
 msgstr ""
 
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
+#: html/inc/util_ops.inc:115 html/user/get_passwd.php:75
 msgid "Stay logged in on this computer"
 msgstr ""
 
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr ""
-
-#: ../user/account_finish_action.php:27
+#: html/user/account_finish_action.php:27
 msgid "You must supply a name for your account"
 msgstr ""
 
-#: ../user/account_finish_action.php:30
+#: html/user/account_finish_action.php:30
 msgid "HTML tags not allowed in name"
 msgstr ""
 
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
+#: html/user/account_finish.php:34
+msgid "Finish account setup"
 msgstr ""
 
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
+#: html/user/add_venue.php:40 html/user/add_venue.php:64
+#: html/user/prefs_edit.php:41 html/user/prefs_edit.php:65
+#: html/user/prefs_edit.php:93
+msgid "Edit %1 preferences"
 msgstr ""
 
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
+#: html/user/add_venue.php:82
+msgid "Add %1 preferences for %2"
 msgstr ""
 
-#: ../user/apps.php:32
+#: html/user/apps.php:33
 msgid ""
 "%1 currently has the following applications. When you participate in %1, "
 "tasks for one or more of these applications will be assigned to your "
@@ -2516,23 +2660,23 @@ msgid ""
 "computer. This happens automatically; you don't have to do anything."
 msgstr ""
 
-#: ../user/apps.php:54
+#: html/user/apps.php:55
 msgid "Platform"
 msgstr ""
 
-#: ../user/apps.php:55
+#: html/user/apps.php:56
 msgid "Version"
 msgstr ""
 
-#: ../user/apps.php:57
+#: html/user/apps.php:58
 msgid "Average computing"
 msgstr ""
 
-#: ../user/bbcode.php:23
+#: html/user/bbcode.php:23
 msgid "BBCode tags"
 msgstr ""
 
-#: ../user/bbcode.php:25
+#: html/user/bbcode.php:25
 msgid ""
 "BBCode tags let you format text in your profile and message-board postings.\n"
 "It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
@@ -2540,271 +2684,270 @@ msgid ""
 "HTML)."
 msgstr ""
 
-#: ../user/bbcode.php:31
+#: html/user/bbcode.php:31
 msgid "Examples"
 msgstr ""
 
-#: ../user/bbcode.php:32
+#: html/user/bbcode.php:32
 msgid "Bold"
 msgstr ""
 
-#: ../user/bbcode.php:33
+#: html/user/bbcode.php:33
 msgid "Italic"
 msgstr ""
 
-#: ../user/bbcode.php:34
+#: html/user/bbcode.php:34
 msgid "Underline"
 msgstr ""
 
-#: ../user/bbcode.php:35
+#: html/user/bbcode.php:35
 msgid "Strikethrough"
 msgstr ""
 
-#: ../user/bbcode.php:36
+#: html/user/bbcode.php:36
 msgid "Superscript"
 msgstr ""
 
-#: ../user/bbcode.php:37
+#: html/user/bbcode.php:37
 msgid "Big text"
 msgstr ""
 
-#: ../user/bbcode.php:38
+#: html/user/bbcode.php:38
 msgid "Red text"
 msgstr ""
 
-#: ../user/bbcode.php:39
+#: html/user/bbcode.php:39
 msgid "link to website"
 msgstr ""
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:40
 msgid "Quoted text"
 msgstr ""
 
-#: ../user/bbcode.php:40
+#: html/user/bbcode.php:40
 msgid "use for quoted blocks of text"
 msgstr ""
 
-#: ../user/bbcode.php:41
+#: html/user/bbcode.php:41
 msgid "use to display an image"
 msgstr ""
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:42
 msgid "Code snippet here"
 msgstr ""
 
-#: ../user/bbcode.php:42
+#: html/user/bbcode.php:42
 msgid "use to display some code"
 msgstr ""
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:43
 msgid "Pre-formatted text"
 msgstr ""
 
-#: ../user/bbcode.php:43
+#: html/user/bbcode.php:43
 msgid "use to display pre-formatted (usually monospaced) text"
 msgstr ""
 
-#: ../user/bbcode.php:44
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 1"
 msgstr ""
 
-#: ../user/bbcode.php:44
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item2"
 msgstr ""
 
-#: ../user/bbcode.php:44
+#: html/user/bbcode.php:44 html/user/bbcode.php:45
 msgid "Item 2"
 msgstr ""
 
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
+#: html/user/bbcode.php:48
+msgid "link to an issue on the BOINC Github repository"
 msgstr ""
 
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
+#: html/user/bbcode.php:51
+msgid "link to a Wiki page on the BOINC Github repository"
 msgstr ""
 
-#: ../user/bbcode.php:52
+#: html/user/bbcode.php:55
 msgid ""
 "If you don't close a tag or don't specify a parameter correctly,\n"
 "the raw tag itself will display instead of the formatted text."
 msgstr ""
 
-#: ../user/create_account_action.php:26
+#: html/user/create_account_action.php:26
 msgid "Can't create account"
 msgstr ""
 
-#: ../user/create_account_action.php:29
+#: html/user/create_account_action.php:29
 msgid "Click your browser's <b>Back</b> button to try again."
 msgstr ""
 
-#: ../user/create_account_action.php:46
+#: html/user/create_account_action.php:44
 msgid "Your reCAPTCHA response was not correct. Please try again."
 msgstr ""
 
-#: ../user/create_account_action.php:69
+#: html/user/create_account_action.php:67
 msgid "You must supply an invitation code to create an account."
 msgstr ""
 
-#: ../user/create_account_action.php:72
+#: html/user/create_account_action.php:70
 msgid "The invitation code you gave is not valid."
 msgstr ""
 
-#: ../user/create_account_action.php:83
+#: html/user/create_account_action.php:81
 msgid ""
 "Invalid email address: you must enter a valid address of the form name at domain"
 msgstr ""
 
-#: ../user/create_account_action.php:87
+#: html/user/create_account_action.php:85
 msgid "There's already an account with that email address."
 msgstr ""
 
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
+#: html/user/create_account_action.php:91 html/user/edit_passwd_action.php:32
 msgid "New passwords are different"
 msgstr ""
 
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
+#: html/user/create_account_action.php:98 html/user/edit_passwd_action.php:40
 msgid "Passwords may only include ASCII characters."
 msgstr ""
 
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
+#: html/user/create_account_action.php:103 html/user/edit_passwd_action.php:44
 msgid "New password is too short: minimum password length is %1 characters."
 msgstr ""
 
-#: ../user/create_account_action.php:126
+#: html/user/create_account_action.php:124
 msgid "Couldn't create account"
 msgstr ""
 
-#: ../user/create_account_form.php:45
+#: html/user/create_account_form.php:46
 msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
+"NOTE: to run %1 on your computer, %2go here%3 instead of using this form."
 msgstr ""
 
-#: ../user/create_account_form.php:57
+#: html/user/create_account_form.php:63
 msgid ""
 "This account will belong to the team %1 and will have the project "
 "preferences of its founder."
 msgstr ""
 
-#: ../user/create_profile.php:52
+#: html/user/create_profile.php:53
 msgid "Picture"
 msgstr ""
 
-#: ../user/create_profile.php:66
+#: html/user/create_profile.php:67
 msgid "%1 Your profile picture is shown to the left."
 msgstr ""
 
-#: ../user/create_profile.php:68
+#: html/user/create_profile.php:69
 msgid ""
 "To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1 "
 "or less)."
 msgstr ""
 
-#: ../user/create_profile.php:71
+#: html/user/create_profile.php:72
 msgid "To remove it from your profile, check this box:"
 msgstr ""
 
-#: ../user/create_profile.php:79
+#: html/user/create_profile.php:80
 msgid ""
 "If you would like include a picture with your profile, click the \"Browse\" "
 "button and select a JPEG or PNG file. Please select images of %1 or less."
 msgstr ""
 
-#: ../user/create_profile.php:91
+#: html/user/create_profile.php:92
 msgid "Language"
 msgstr ""
 
-#: ../user/create_profile.php:94
+#: html/user/create_profile.php:95
 msgid "Select the language in which your profile is written:"
 msgstr ""
 
-#: ../user/create_profile.php:106
+#: html/user/create_profile.php:107
 msgid "Submit profile"
 msgstr ""
 
-#: ../user/create_profile.php:112
+#: html/user/create_profile.php:113
 msgid "Create/edit profile"
 msgstr ""
 
-#: ../user/create_profile.php:134
+#: html/user/create_profile.php:135
 msgid "The format of your uploaded image is not supported."
 msgstr ""
 
-#: ../user/create_profile.php:163
+#: html/user/create_profile.php:164
 msgid ""
 "Your %1profile%2 lets you share your opinions and background with the %3 "
 "community."
 msgstr ""
 
-#: ../user/create_profile.php:209
+#: html/user/create_profile.php:208
 msgid "Your ReCaptcha response was not correct.  Please try again."
 msgstr ""
 
-#: ../user/create_profile.php:218
+#: html/user/create_profile.php:217
 msgid ""
 "Your first response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
 msgstr ""
 
-#: ../user/create_profile.php:226
+#: html/user/create_profile.php:225
 msgid ""
 "Your second response was flagged as spam by the Akismet anti-spam system.  "
 "Please modify your text and try again."
 msgstr ""
 
-#: ../user/create_profile.php:242
+#: html/user/create_profile.php:241
 msgid "Your profile submission was empty."
 msgstr ""
 
-#: ../user/create_profile.php:283
+#: html/user/create_profile.php:282
 msgid "Could not update the profile: database error"
 msgstr ""
 
-#: ../user/create_profile.php:299
+#: html/user/create_profile.php:298
 msgid "Could not create the profile: database error"
 msgstr ""
 
-#: ../user/create_profile.php:304
+#: html/user/create_profile.php:303
 msgid "Profile saved"
 msgstr ""
 
-#: ../user/create_profile.php:306
+#: html/user/create_profile.php:305
 msgid ""
 "Congratulations! Your profile was successfully entered into our database."
 msgstr ""
 
-#: ../user/create_profile.php:309
+#: html/user/create_profile.php:308
 msgid "View your profile"
 msgstr ""
 
-#: ../user/create_profile.php:319
+#: html/user/create_profile.php:318
 msgid "Create a profile"
 msgstr ""
 
-#: ../user/create_profile.php:347
+#: html/user/create_profile.php:346
 msgid ""
 "To prevent spam, an average credit of %1 or greater is required to create or "
 "edit a profile.  We apologize for this inconvenience."
 msgstr ""
 
-#: ../user/delete_account.php:57
+#: html/user/delete_account.php:57
 msgid "Couldn't delete account"
 msgstr ""
 
-#: ../user/delete_account.php:59
+#: html/user/delete_account.php:59
 msgid "Account deleted"
 msgstr ""
 
-#: ../user/delete_account.php:60
+#: html/user/delete_account.php:60
 msgid "Your account has been deleted."
 msgstr ""
 
-#: ../user/delete_account.php:64
+#: html/user/delete_account.php:64
 msgid "Confirm delete account"
 msgstr ""
 
-#: ../user/delete_account.php:67
+#: html/user/delete_account.php:67
 msgid ""
 "Deleting your account will remove all of your\n"
 "personal information from our servers,\n"
@@ -2813,114 +2956,114 @@ msgid ""
 "to this account."
 msgstr ""
 
-#: ../user/delete_account.php:73
+#: html/user/delete_account.php:73
 msgid ""
 "This cannot be undone.\n"
 "Once your account has been deleted, you cannot get it back."
 msgstr ""
 
-#: ../user/delete_account.php:76
+#: html/user/delete_account.php:76
 msgid "Are you sure you want to delete your account?"
 msgstr ""
 
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
+#: html/user/delete_account.php:79 html/user/delete_profile.php:54
+#: html/user/donations.php:321 html/user/donations.php:325
+#: html/user/friend.php:240 html/user/prefs_remove.php:53
+#: html/user/user_search.php:62 html/user/user_search.php:67
 msgid "Yes"
 msgstr ""
 
-#: ../user/delete_account.php:79
+#: html/user/delete_account.php:79
 msgid "Delete this account"
 msgstr ""
 
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
+#: html/user/delete_account.php:80 html/user/delete_profile.php:55
+#: html/user/friend.php:241 html/user/user_search.php:61
+#: html/user/user_search.php:66
 msgid "No"
 msgstr ""
 
-#: ../user/delete_account.php:80
+#: html/user/delete_account.php:80
 msgid "Do not delete this account"
 msgstr ""
 
-#: ../user/delete_profile.php:32
+#: html/user/delete_profile.php:32
 msgid "couldn't delete profile - please try again later"
 msgstr ""
 
-#: ../user/delete_profile.php:35
+#: html/user/delete_profile.php:35
 msgid "Delete Confirmation"
 msgstr ""
 
-#: ../user/delete_profile.php:37
+#: html/user/delete_profile.php:37
 msgid "Your profile has been deleted."
 msgstr ""
 
-#: ../user/delete_profile.php:42
+#: html/user/delete_profile.php:42
 msgid "Profile delete confirmation"
 msgstr ""
 
-#: ../user/delete_profile.php:45
+#: html/user/delete_profile.php:45
 msgid "Are you sure?"
 msgstr ""
 
-#: ../user/delete_profile.php:46
+#: html/user/delete_profile.php:46
 msgid ""
 "Deleted profiles are gone forever and cannot be recovered --\n"
 "you will have to start from scratch\n"
 "if you want another profile in the future."
 msgstr ""
 
-#: ../user/delete_profile.php:50
+#: html/user/delete_profile.php:50
 msgid ""
 "If you're sure, click 'Yes'\n"
 "to remove your profile from our database."
 msgstr ""
 
-#: ../user/delete_profile.php:54
+#: html/user/delete_profile.php:54
 msgid "Delete my profile"
 msgstr ""
 
-#: ../user/delete_profile.php:55
+#: html/user/delete_profile.php:55
 msgid "Do not delete my profile"
 msgstr ""
 
-#: ../user/donated.php:25
+#: html/user/donated.php:25
 msgid "PayPal - Transaction Completed"
 msgstr ""
 
-#: ../user/donated.php:28
+#: html/user/donated.php:28
 msgid "Thank you for donating!"
 msgstr ""
 
-#: ../user/donated.php:29
+#: html/user/donated.php:29
 msgid "Your donation for has been completed."
 msgstr ""
 
-#: ../user/donated.php:30
+#: html/user/donated.php:30
 msgid ""
 "Your donation will be added to the progress bar after confirmation by PayPal."
 msgstr ""
 
-#: ../user/donated.php:32
+#: html/user/donated.php:32
 msgid "You have canceled your donation."
 msgstr ""
 
-#: ../user/donations.php:24
+#: html/user/donations.php:24
 msgid "This project is not accepting donations."
 msgstr ""
 
-#: ../user/donations.php:34
+#: html/user/donations.php:34
 msgid "%1 donations"
 msgstr ""
 
-#: ../user/donations.php:39
+#: html/user/donations.php:39
 msgid ""
 "This project is accepting donations via\n"
 "%1."
 msgstr ""
 
-#: ../user/donations.php:42
+#: html/user/donations.php:41
 msgid ""
 "To donate, fill in the amount you want to donate using the field below.\n"
 "        PayPal is accepting multiple currencies\n"
@@ -2935,50 +3078,50 @@ msgid ""
 "         and the actual amount may differ)."
 msgstr ""
 
-#: ../user/donations.php:316
+#: html/user/donations.php:315
 msgid "Amount you would like to donate"
 msgstr ""
 
-#: ../user/donations.php:317
+#: html/user/donations.php:316
 msgid "Estimated value in"
 msgstr ""
 
-#: ../user/donations.php:320 ../user/donations.php:324
+#: html/user/donations.php:319 html/user/donations.php:323
 msgid "Anonymous donation"
 msgstr ""
 
-#: ../user/donations.php:320
+#: html/user/donations.php:319
 msgid ""
 "Select this if you dont want your name and account number displayed in\n"
 "donator lists.<br>If not checked, you will be recorded as user ID %1"
 msgstr ""
 
-#: ../user/donations.php:324
+#: html/user/donations.php:323
 msgid "To assign the donation with your user ID, please log in."
 msgstr ""
 
-#: ../user/donations.php:328
+#: html/user/donations.php:327
 msgid "Proceed"
 msgstr ""
 
-#: ../user/donations.php:329
+#: html/user/donations.php:328
 msgid "Donations are accepted through"
 msgstr ""
 
-#: ../user/download_network.php:25
+#: html/user/download_network.php:25
 msgid "Download BOINC add-on software"
 msgstr ""
 
-#: ../user/download_network.php:28
+#: html/user/download_network.php:28
 msgid "You can download applications in several categories."
 msgstr ""
 
-#: ../user/download_network.php:31
+#: html/user/download_network.php:31
 msgid ""
 "These applications are not endorsed by %1 and you use them at your own risk."
 msgstr ""
 
-#: ../user/download_network.php:33
+#: html/user/download_network.php:33
 msgid ""
 "We do not provide instructions for installing these applications.\n"
 "However, the author may have provided some help on installing or "
@@ -2986,1789 +3129,1741 @@ msgid ""
 "If this is not enough you should contact the author."
 msgstr ""
 
-#: ../user/download_network.php:36
+#: html/user/download_network.php:36
 msgid "Instructions for installing and running BOINC are %1here%2."
 msgstr ""
 
-#: ../user/download_network.php:38
+#: html/user/download_network.php:38
 msgid "This list is managed centrally at %1the BOINC website%2."
 msgstr ""
 
-#: ../user/edit_email_action.php:31
+#: html/user/edit_email_action.php:31
 msgid "Change email address of account"
 msgstr ""
 
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
+#: html/user/edit_email_action.php:34 html/user/edit_email_action.php:36
 msgid "New email address '%1' is invalid."
 msgstr ""
 
-#: ../user/edit_email_action.php:38
+#: html/user/edit_email_action.php:38
 msgid "New email address is same as existing address. Nothing is changed."
 msgstr ""
 
-#: ../user/edit_email_action.php:42
+#: html/user/edit_email_action.php:42
 msgid "There's already an account with that email address"
 msgstr ""
 
-#: ../user/edit_email_action.php:54
+#: html/user/edit_email_action.php:54
 msgid "Invalid password."
 msgstr ""
 
-#: ../user/edit_email_action.php:62
+#: html/user/edit_email_action.php:62
 msgid "The email address of your account is now %1."
 msgstr ""
 
-#: ../user/edit_email_action.php:64
+#: html/user/edit_email_action.php:64
 msgid "Please %1validate this email address%2."
 msgstr ""
 
-#: ../user/edit_email_action.php:67
+#: html/user/edit_email_action.php:67
 msgid ""
 "We can't update your email address due to a database problem.  Please try "
 "again later."
 msgstr ""
 
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
+#: html/user/edit_email_form.php:27 html/user/edit_email_form.php:51
 msgid "Change email address"
 msgstr ""
 
-#: ../user/edit_email_form.php:36
+#: html/user/edit_email_form.php:36
 msgid "Change the email address of your account"
 msgstr ""
 
-#: ../user/edit_email_form.php:37
+#: html/user/edit_email_form.php:37
 msgid "New email address"
 msgstr ""
 
-#: ../user/edit_email_form.php:38
+#: html/user/edit_email_form.php:38
 msgid "Must be a valid address of the form 'name at domain'"
 msgstr ""
 
-#: ../user/edit_email_form.php:48
+#: html/user/edit_email_form.php:48
 msgid "No password?"
 msgstr ""
 
-#: ../user/edit_forum_preferences_action.php:33
+#: html/user/edit_forum_preferences_action.php:33
 msgid "Confirm reset"
 msgstr ""
 
-#: ../user/edit_forum_preferences_action.php:34
+#: html/user/edit_forum_preferences_action.php:34
 msgid ""
 "This action will erase any changes you have made in your community "
 "preferences. To cancel, click your browser's Back button."
 msgstr ""
 
-#: ../user/edit_forum_preferences_action.php:38
+#: html/user/edit_forum_preferences_action.php:38
 msgid "Reset preferences"
 msgstr ""
 
 #. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
+#: html/user/edit_forum_preferences_action.php:95
 msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
 msgstr ""
 
-#: ../user/edit_forum_preferences_action.php:120
+#: html/user/edit_forum_preferences_action.php:120
 msgid "Your signature was too long, please keep it less than 250 characters."
 msgstr ""
 
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
+#: html/user/edit_forum_preferences_action.php:139
+#: html/user/edit_forum_preferences_action.php:153
 msgid "No such user:"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:45
+#: html/user/edit_forum_preferences_form.php:45
 msgid ""
 "How should we notify you of new private messages, friend requests, posts in "
 "subscribed threads, and other events?"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:46
+#: html/user/edit_forum_preferences_form.php:46
 msgid "On my Account page (no email)"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:47
+#: html/user/edit_forum_preferences_form.php:47
 msgid "Immediately, by email"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:48
+#: html/user/edit_forum_preferences_form.php:48
 msgid "In a single daily email"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:65
+#: html/user/edit_forum_preferences_form.php:65
 msgid "Message-board identity"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:66
+#: html/user/edit_forum_preferences_form.php:66
 msgid "Avatar"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:67
+#: html/user/edit_forum_preferences_form.php:67
 msgid "An image representing you on the message boards."
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:68
+#: html/user/edit_forum_preferences_form.php:68
 msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:70
+#: html/user/edit_forum_preferences_form.php:70
 msgid "Don't use an avatar"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:72
+#: html/user/edit_forum_preferences_form.php:72
 msgid "Use a Globally Recognized Avatar provided by %1"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:74
+#: html/user/edit_forum_preferences_form.php:74
 msgid "Use this uploaded avatar:"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:77
 msgid "Avatar preview"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:77
+#: html/user/edit_forum_preferences_form.php:77
 msgid "This is how your avatar will look"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:86
+#: html/user/edit_forum_preferences_form.php:86
 msgid "Signature for message board posts"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:89
+#: html/user/edit_forum_preferences_form.php:89
 msgid ""
 "Check out %1various free services%2\n"
 "<br> providing dynamic 'signature images'\n"
 "<br> showing your latest credit info, project news, etc."
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:93
+#: html/user/edit_forum_preferences_form.php:93
 msgid "Attach signature by default"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:96
+#: html/user/edit_forum_preferences_form.php:96
 msgid "Signature preview"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:97
+#: html/user/edit_forum_preferences_form.php:97
 msgid "This is how your signature will look in the forums"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:115
+#: html/user/edit_forum_preferences_form.php:115
 msgid "Message display"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:117
+#: html/user/edit_forum_preferences_form.php:117
 msgid "What to display"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:118
+#: html/user/edit_forum_preferences_form.php:118
 msgid "Hide avatar images"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:119
+#: html/user/edit_forum_preferences_form.php:119
 msgid "Hide signatures"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:120
+#: html/user/edit_forum_preferences_form.php:120
 msgid "Show images as links"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:121
+#: html/user/edit_forum_preferences_form.php:121
 msgid "Open links in new window/tab"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:122
+#: html/user/edit_forum_preferences_form.php:122
 msgid "Highlight special users"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:123
+#: html/user/edit_forum_preferences_form.php:123
 msgid "Display this many messages per page"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:127
+#: html/user/edit_forum_preferences_form.php:127
 msgid "How to sort"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:128
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Threads:"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:128
+#: html/user/edit_forum_preferences_form.php:128
 msgid "Posts:"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:129
+#: html/user/edit_forum_preferences_form.php:129
 msgid "Jump to first new post in thread automatically"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:130
+#: html/user/edit_forum_preferences_form.php:130
 msgid "Don't move sticky posts to top"
 msgstr ""
 
 #. DISABLE_FORUMS
 #. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
+#: html/user/edit_forum_preferences_form.php:137
 msgid "Message filtering"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:153
+#: html/user/edit_forum_preferences_form.php:153
 msgid "Filtered users"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:154
+#: html/user/edit_forum_preferences_form.php:154
 msgid "Ignore message board posts and private messages from these users."
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:156
+#: html/user/edit_forum_preferences_form.php:156
 msgid "User ID (For instance: 123456789)"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
+#: html/user/edit_forum_preferences_form.php:157 html/user/pm.php:287
 msgid "Add user to filter"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:162
+#: html/user/edit_forum_preferences_form.php:162
 msgid "Click here to update preferences"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
+#: html/user/edit_forum_preferences_form.php:164
+#: html/user/edit_forum_preferences_form.php:166
 msgid "Reset"
 msgstr ""
 
-#: ../user/edit_forum_preferences_form.php:165
+#: html/user/edit_forum_preferences_form.php:165
 msgid "Or click here to reset preferences to the defaults"
 msgstr ""
 
-#: ../user/edit_passwd_action.php:50
+#: html/user/edit_passwd_action.php:50
 msgid ""
 "We can't update your password due to a database problem. Please try again "
 "later."
 msgstr ""
 
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
+#: html/user/edit_passwd_action.php:53 html/user/edit_passwd_form.php:25
+#: html/user/edit_passwd_form.php:34
 msgid "Change password"
 msgstr ""
 
-#: ../user/edit_passwd_action.php:54
+#: html/user/edit_passwd_action.php:54
 msgid "Your password has been changed."
 msgstr ""
 
-#: ../user/edit_passwd_form.php:32
+#: html/user/edit_passwd_form.php:32
 msgid "New password"
 msgstr ""
 
-#: ../user/edit_passwd_form.php:33
+#: html/user/edit_passwd_form.php:33
 msgid "New password, again"
 msgstr ""
 
-#: ../user/edit_user_info_action.php:31
+#: html/user/edit_user_info_action.php:31
 msgid "HTML tags are not allowed in your name."
 msgstr ""
 
-#: ../user/edit_user_info_action.php:34
+#: html/user/edit_user_info_action.php:34
 msgid "You must supply a name for your account."
 msgstr ""
 
-#: ../user/edit_user_info_action.php:58
+#: html/user/edit_user_info_action.php:58
 msgid "Couldn't update user info."
 msgstr ""
 
-#: ../user/edit_user_info_form.php:27
+#: html/user/edit_user_info_form.php:27
 msgid "Edit account information"
 msgstr ""
 
-#: ../user/edit_user_info_form.php:32
+#: html/user/edit_user_info_form.php:32
 msgid "Name %1 real name or nickname%2"
 msgstr ""
 
-#: ../user/edit_user_info_form.php:35
+#: html/user/edit_user_info_form.php:35
 msgid "URL %1 of your web page; optional%2"
 msgstr ""
 
-#: ../user/edit_user_info_form.php:43
+#: html/user/edit_user_info_form.php:44
 msgid "Postal (ZIP) code %1 Optional%2"
 msgstr ""
 
-#: ../user/edit_user_info_form.php:47
+#: html/user/edit_user_info_form.php:48
 msgid "Update info"
 msgstr ""
 
-#: ../user/explain_state.php:27
+#: html/user/explain_state.php:27
 msgid "Server states"
 msgstr ""
 
-#: ../user/explain_state.php:30
+#: html/user/explain_state.php:30
 msgid ""
 "A tasks's <b>server state</b> indicates whether the task has been sent to a "
 "computer, and if so whether the computer has finished it. Possible values "
 "are:"
 msgstr ""
 
-#: ../user/explain_state.php:35
+#: html/user/explain_state.php:35
 msgid ""
 "The task is not ready to send (for example, because its input files are "
 "unavailable)"
 msgstr ""
 
-#: ../user/explain_state.php:38
+#: html/user/explain_state.php:38
 msgid "The task is ready to send, but hasn't been sent yet."
 msgstr ""
 
-#: ../user/explain_state.php:40
+#: html/user/explain_state.php:40
 msgid "In Progress"
 msgstr ""
 
-#: ../user/explain_state.php:41
+#: html/user/explain_state.php:41
 msgid "The task has been sent; waiting for completion."
 msgstr ""
 
-#: ../user/explain_state.php:44
+#: html/user/explain_state.php:44
 msgid ""
 "The task has been sent to a computer and either it has timed out or the "
 "computer has reported its completion."
 msgstr ""
 
-#: ../user/explain_state.php:49
+#: html/user/explain_state.php:49
 msgid "Outcomes"
 msgstr ""
 
-#: ../user/explain_state.php:52
+#: html/user/explain_state.php:52
 msgid ""
 "A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
 "Possible values are:"
 msgstr ""
 
-#: ../user/explain_state.php:57
+#: html/user/explain_state.php:57
 msgid ""
 "The task was sent to a computer, but the computer has not yet completed the "
 "work and reported the outcome."
 msgstr ""
 
-#: ../user/explain_state.php:60
+#: html/user/explain_state.php:60
 msgid "A computer completed and reported the task successfully."
 msgstr ""
 
-#: ../user/explain_state.php:63
+#: html/user/explain_state.php:63
 msgid ""
 "The server wasn't able to send the task to a computer (perhaps because its "
 "resource requirements were too large)"
 msgstr ""
 
-#: ../user/explain_state.php:65
+#: html/user/explain_state.php:65
 msgid "Client error"
 msgstr ""
 
-#: ../user/explain_state.php:66
+#: html/user/explain_state.php:66
 msgid "The task was sent to a computer and an error occurred."
 msgstr ""
 
-#: ../user/explain_state.php:69
+#: html/user/explain_state.php:69
 msgid ""
 "The task was sent to a computer and no reply was received within the time "
 "limit."
 msgstr ""
 
-#: ../user/explain_state.php:72
+#: html/user/explain_state.php:72
 msgid ""
 "The task wasn't sent to a computer because enough other tasks were completed "
 "for this workunit."
 msgstr ""
 
-#: ../user/explain_state.php:75
+#: html/user/explain_state.php:75
 msgid ""
 "The task was reported but could not be validated, typically because the "
 "output files were lost on the server."
 msgstr ""
 
-#: ../user/explain_state.php:80
+#: html/user/explain_state.php:80
 msgid "Client states"
 msgstr ""
 
-#: ../user/explain_state.php:81
+#: html/user/explain_state.php:81
 msgid ""
 "A result's <b>client state</b> indicates the stage of processing at which an "
 "error occurred."
 msgstr ""
 
-#: ../user/explain_state.php:86
+#: html/user/explain_state.php:86
 msgid "The computer has not yet completed the task."
 msgstr ""
 
-#: ../user/explain_state.php:89
+#: html/user/explain_state.php:89
 msgid "The computer completed the task successfully."
 msgstr ""
 
-#: ../user/explain_state.php:92
+#: html/user/explain_state.php:92
 msgid "The computer couldn't download the application or input files."
 msgstr ""
 
-#: ../user/explain_state.php:95
+#: html/user/explain_state.php:95
 msgid "An error occurred during computation."
 msgstr ""
 
-#: ../user/explain_state.php:98
+#: html/user/explain_state.php:98
 msgid "The computer couldn't upload the output files."
 msgstr ""
 
-#: ../user/explain_state.php:103
+#: html/user/explain_state.php:103
 msgid "Time reported and deadline"
 msgstr ""
 
-#: ../user/explain_state.php:106
+#: html/user/explain_state.php:106
 msgid ""
 "A task's <b>Time reported or deadline</b> field depends on whether the task "
 "has been reported yet:"
 msgstr ""
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "Already reported"
 msgstr ""
 
-#: ../user/explain_state.php:110
+#: html/user/explain_state.php:110
 msgid "The date/time it was reported"
 msgstr ""
 
-#: ../user/explain_state.php:111
+#: html/user/explain_state.php:111
 msgid "Not reported yet, deadline in the future"
 msgstr ""
 
-#: ../user/explain_state.php:112
+#: html/user/explain_state.php:112
 msgid "Deadline, shown in green."
 msgstr ""
 
-#: ../user/explain_state.php:114
+#: html/user/explain_state.php:114
 msgid "Not reported yet, deadline in the past"
 msgstr ""
 
-#: ../user/explain_state.php:115
+#: html/user/explain_state.php:115
 msgid "Deadline, shown in red."
 msgstr ""
 
-#: ../user/explain_state.php:120
+#: html/user/explain_state.php:120
 msgid "Unknown field"
 msgstr ""
 
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr ""
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr ""
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
+#: html/user/ffmail_action.php:28
+msgid "Sending emails"
 msgstr ""
 
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
+#: html/user/ffmail_action.php:43
+msgid "failed to send email to %1: %2"
 msgstr ""
 
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
+#: html/user/ffmail_action.php:48
+msgid "failed to send email to %1"
 msgstr ""
 
-#: ../user/ffmail_action.php:82
+#: html/user/ffmail_action.php:51
 msgid "email sent successfully to %1"
 msgstr ""
 
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr ""
-
-#: ../user/ffmail_action.php:90
+#: html/user/ffmail_action.php:55
 msgid "Thanks for telling your friends about %1"
 msgstr ""
 
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please %"
-"1return to the form%2 and enter them."
-msgstr ""
-
-#: ../user/ffmail_form.php:30
+#: html/user/ffmail_action.php:57
 msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
+"You forgot to enter email addresses; Please %1return to the form%2 and enter "
+"them."
 msgstr ""
 
-#: ../user/ffmail_form.php:33
+#: html/user/ffmail_form.php:33
 msgid "Tell your friends about %1"
 msgstr ""
 
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr ""
-
-#: ../user/ffmail_form.php:39
+#: html/user/ffmail_form.php:49
 msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
+"Use this form to send email messages to people you think might be interested "
+"in %1."
 msgstr ""
 
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
+#: html/user/ffmail_form.php:55
+msgid "To:"
 msgstr ""
 
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
+#: html/user/ffmail_form.php:59
+msgid "Send"
 msgstr ""
 
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
+#. Can't moderate without being moderator
+#: html/user/forum_banishment_vote_action.php:35
+#: html/user/forum_banishment_vote.php:37
+msgid "You are not authorized to banish users."
 msgstr ""
 
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
+#: html/user/forum_banishment_vote_action.php:41
+#: html/user/forum_moderate_post_action.php:66
+msgid "You must specify an action..."
 msgstr ""
 
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
+#: html/user/forum_banishment_vote_action.php:59
+#: html/user/forum_banishment_vote.php:67 html/user/forum_moderate_post.php:60
+#: html/user/forum_moderate_thread.php:58
+msgid "Obscene"
 msgstr ""
 
-#: ../user/ffmail_form.php:59
-msgid "Send"
+#: html/user/forum_banishment_vote_action.php:61
+#: html/user/forum_banishment_vote.php:68 html/user/forum_moderate_post.php:61
+#: html/user/forum_moderate_thread.php:59
+msgid "Flame/Hate mail"
 msgstr ""
 
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
+#: html/user/forum_banishment_vote_action.php:63
+#: html/user/forum_banishment_vote.php:69 html/user/forum_moderate_post.php:64
+msgid "User Request"
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
+#: html/user/forum_banishment_vote.php:43
+#: html/user/forum_banishment_vote.php:48
 msgid "Banishment Vote"
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:52
+#: html/user/forum_banishment_vote.php:52
 msgid "No user with this ID found."
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
+#: html/user/forum_banishment_vote.php:57 html/user/forum_moderate_post.php:83
 msgid "User is already banished"
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
+#: html/user/forum_banishment_vote.php:62 html/user/forum_moderate_post.php:86
 msgid ""
 "Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
 "for chosen time period.<br/>It should be done only if %1 has consistently "
 "exhibited trollish behavior."
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:64
+#: html/user/forum_banishment_vote.php:64
 msgid ""
 "Select the reason category, optionally write a longer description of why the "
 "user should be banished."
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
+#: html/user/forum_banishment_vote.php:65
+#: html/user/forum_moderate_thread.php:56
 msgid "Category"
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr ""
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
+#: html/user/forum_banishment_vote.php:72 html/user/forum_moderate_post.php:56
+#: html/user/forum_moderate_thread.php:100
 msgid "Reason"
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
+#: html/user/forum_banishment_vote.php:72
+#: html/user/forum_moderate_thread.php:100
 msgid "Mailed if nonempty"
 msgstr ""
 
-#: ../user/forum_banishment_vote.php:77
+#: html/user/forum_banishment_vote.php:78
 msgid "Proceed with vote"
 msgstr ""
 
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr ""
-
-#: ../user/forum_edit.php:41
+#: html/user/forum_edit.php:41
 msgid ""
 "You can no longer edit this post.<br/>Posts can only be edited at most %1 "
 "minutes after they have been created."
 msgstr ""
 
-#: ../user/forum_edit.php:47
+#: html/user/forum_edit.php:47
 msgid "You are not authorized to edit this post."
 msgstr ""
 
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
+#: html/user/forum_edit.php:86
+msgid "Edit post"
 msgstr ""
 
-#: ../user/forum_edit.php:110
+#: html/user/forum_edit.php:112
 msgid "Edit your message"
 msgstr ""
 
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
+#: html/user/forum_edit.php:117 html/user/forum_edit.php:122
+#: html/user/forum_post.php:111 html/user/forum_post.php:113
+#: html/user/team_forum.php:72
 msgid "Title"
 msgstr ""
 
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
+#: html/user/forum_edit.php:146 html/user/forum_post.php:134
 msgid "Add my signature to this post"
 msgstr ""
 
-#: ../user/forum_forum.php:46
+#: html/user/forum_forum.php:46
 msgid "Not visible to you"
 msgstr ""
 
-#: ../user/forum_forum.php:83
+#: html/user/forum_forum.php:83
 msgid "Team message board for %1"
 msgstr ""
 
-#: ../user/forum_forum.php:99
+#: html/user/forum_forum.php:100
 msgid "New thread"
 msgstr ""
 
-#: ../user/forum_forum.php:99
+#: html/user/forum_forum.php:100
 msgid "Add a new thread to this forum"
 msgstr ""
 
-#: ../user/forum_forum.php:119
+#: html/user/forum_forum.php:122
 msgid "This message board is available as an %1RSS feed%2"
 msgstr ""
 
-#: ../user/forum_forum.php:178
+#: html/user/forum_forum.php:181
 msgid "This thread is hidden"
 msgstr ""
 
-#: ../user/forum_forum.php:182
+#: html/user/forum_forum.php:185
 msgid "This thread is sticky and locked, and you haven't read it yet"
 msgstr ""
 
-#: ../user/forum_forum.php:182
+#: html/user/forum_forum.php:185
 msgid "sticky/locked/unread"
 msgstr ""
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:187
 msgid "This thread is sticky and you haven't read it yet"
 msgstr ""
 
-#: ../user/forum_forum.php:184
+#: html/user/forum_forum.php:187
 msgid "sticky/unread"
 msgstr ""
 
-#: ../user/forum_forum.php:188
+#: html/user/forum_forum.php:191
 msgid "You haven't read this thread yet, and it's locked"
 msgstr ""
 
-#: ../user/forum_forum.php:188
+#: html/user/forum_forum.php:191
 msgid "unread/locked"
 msgstr ""
 
-#: ../user/forum_forum.php:190
+#: html/user/forum_forum.php:193
 msgid "You haven't read this thread yet"
 msgstr ""
 
-#: ../user/forum_forum.php:196
+#: html/user/forum_forum.php:199
 msgid "This thread is sticky and locked"
 msgstr ""
 
-#: ../user/forum_forum.php:196
+#: html/user/forum_forum.php:199
 msgid "sticky/locked"
 msgstr ""
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:201
 msgid "This thread is sticky"
 msgstr ""
 
-#: ../user/forum_forum.php:198
+#: html/user/forum_forum.php:201
 msgid "sticky"
 msgstr ""
 
-#: ../user/forum_forum.php:202
+#: html/user/forum_forum.php:205
 msgid "This thread is locked"
 msgstr ""
 
-#: ../user/forum_forum.php:202
+#: html/user/forum_forum.php:205
 msgid "locked"
 msgstr ""
 
-#: ../user/forum_forum.php:204
+#: html/user/forum_forum.php:207
 msgid "You read this thread"
 msgstr ""
 
-#: ../user/forum_forum.php:204
+#: html/user/forum_forum.php:207
 msgid "read"
 msgstr ""
 
-#: ../user/forum_help_desk.php:29
+#: html/user/forum_help_desk.php:29
 msgid "Questions and answers"
 msgstr ""
 
-#: ../user/forum_help_desk.php:32
+#: html/user/forum_help_desk.php:32
 msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to %"
-"1BOINC Online Help%2."
+"Talk live via Skype with a volunteer, in any of several languages. Go to "
+"%1BOINC Online Help%2."
 msgstr ""
 
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
+#: html/user/forum_help_desk.php:47 html/user/forum_index.php:95
 msgid "Topic"
 msgstr ""
 
-#: ../user/forum_help_desk.php:47
+#: html/user/forum_help_desk.php:48
 msgid "Questions"
 msgstr ""
 
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
+#: html/user/forum_index.php:57 html/user/team_forum.php:70
 msgid "Discussion among members of %1"
 msgstr ""
 
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr ""
-
-#: ../user/forum_index.php:83
+#: html/user/forum_index.php:80
 msgid ""
 "If you have a question or problem, please use the %1Questions & Answers%2 "
 "section of the message boards."
 msgstr ""
 
-#: ../user/forum_index.php:128
+#: html/user/forum_index.php:125
 msgid "Subscribed threads"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:45
+#: html/user/forum_moderate_post_action.php:60
+msgid "You are not authorized to moderate this post."
+msgstr ""
+
+#: html/user/forum_moderate_post_action.php:105
+msgid "Can't move to different category type"
+msgstr ""
+
+#: html/user/forum_moderate_post_action.php:109
+msgid "Can't move to different category"
+msgstr ""
+
+#: html/user/forum_moderate_post_action.php:130
+msgid "Not authorized to banish users"
+msgstr ""
+
+#: html/user/forum_moderate_post_action.php:146
+msgid "Banishment"
+msgstr ""
+
+#: html/user/forum_moderate_post_action.php:148
+msgid "User %1 has been banished."
+msgstr ""
+
+#: html/user/forum_moderate_post_action.php:151
+msgid "Action failed: possible database problem"
+msgstr ""
+
+#: html/user/forum_moderate_post.php:45
 msgid "Moderate post"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:55
+#: html/user/forum_moderate_post.php:55
 msgid "Hide post"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
+#: html/user/forum_moderate_post.php:62 html/user/forum_moderate_thread.php:60
 msgid "Commercial spam"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:61
+#: html/user/forum_moderate_post.php:63
 msgid "Doublepost"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:66
+#: html/user/forum_moderate_post.php:70
 msgid "Move post"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:68
+#: html/user/forum_moderate_post.php:72
 msgid "Destination thread ID:"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:81
+#: html/user/forum_moderate_post.php:85
 msgid "Banish user"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:83
+#: html/user/forum_moderate_post.php:87
 msgid "Ban duration"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
+#: html/user/forum_moderate_post.php:88
+msgid "6 hours"
+msgstr ""
+
+#: html/user/forum_moderate_post.php:89
+msgid "12 hours"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
+#: html/user/forum_moderate_post.php:90 html/user/forum_search.php:47
 msgid "1 day"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:86
+#: html/user/forum_moderate_post.php:91
 msgid "1 week"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:87
+#: html/user/forum_moderate_post.php:92
 msgid "2 weeks"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:88
+#: html/user/forum_moderate_post.php:93
 msgid "1 month"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:89
+#: html/user/forum_moderate_post.php:94
 msgid "Forever"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
+#: html/user/forum_moderate_post.php:104 html/user/forum_moderate_post.php:117
+#: html/user/forum_moderate_thread.php:106 html/user/forum_post.php:135
+#: html/user/forum_report_post.php:99 html/user/forum_rss.php:51
+#: html/user/friend.php:83 html/user/get_passwd.php:32
+#: html/user/get_passwd.php:78
 msgid "OK"
 msgstr ""
 
-#: ../user/forum_moderate_post.php:107
+#: html/user/forum_moderate_post.php:112
 msgid "Optional explanation %1 This is included in email to user.%2"
 msgstr ""
 
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr ""
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr ""
-
-#: ../user/forum_moderate_thread.php:38
+#: html/user/forum_moderate_thread.php:38
 msgid "not authorized"
 msgstr ""
 
-#: ../user/forum_moderate_thread.php:41
+#: html/user/forum_moderate_thread.php:41
 msgid "Moderate thread '%1'"
 msgstr ""
 
-#: ../user/forum_moderate_thread.php:54
+#: html/user/forum_moderate_thread.php:54
 msgid ""
 "Select the reason category, or write a longer description of why you're "
 "hiding or locking the thread; then press OK."
 msgstr ""
 
-#: ../user/forum_moderate_thread.php:78
+#: html/user/forum_moderate_thread.php:78
 msgid "Current forum"
 msgstr ""
 
-#: ../user/forum_moderate_thread.php:79
+#: html/user/forum_moderate_thread.php:79
 msgid "Destination forum"
 msgstr ""
 
-#: ../user/forum_moderate_thread.php:83
+#: html/user/forum_moderate_thread.php:83
 msgid "New title:"
 msgstr ""
 
-#: ../user/forum_post.php:44
+#: html/user/forum_post.php:44
 msgid ""
 "Only project admins may create a thread here. However, you may reply to "
 "existing threads."
 msgstr ""
 
-#: ../user/forum_post.php:64
+#: html/user/forum_post.php:64
 msgid ""
 "Your message was flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
 msgstr ""
 
-#: ../user/forum_post.php:74
+#: html/user/forum_post.php:74
 msgid "Create new thread"
 msgstr ""
 
-#: ../user/forum_post.php:104
+#: html/user/forum_post.php:102
 msgid "Create a new thread"
 msgstr ""
 
-#: ../user/forum_post.php:109
+#: html/user/forum_post.php:107
 msgid "Remember to add a title"
 msgstr ""
 
-#: ../user/forum_post.php:131
+#: html/user/forum_post.php:132
 msgid "Show this item as a Notice in the BOINC Manager"
 msgstr ""
 
-#: ../user/forum_post.php:131
+#: html/user/forum_post.php:132
 msgid "Do so only for items likely to be of interest to all volunteers."
 msgstr ""
 
-#: ../user/forum_rate.php:28
+#: html/user/forum_rate.php:28
 msgid "Rating offline"
 msgstr ""
 
-#: ../user/forum_rate.php:29
+#: html/user/forum_rate.php:29
 msgid "This function is turned off by the project"
 msgstr ""
 
-#: ../user/forum_rate.php:60
+#: html/user/forum_rate.php:60
 msgid "You need more average or total credit to rate a post."
 msgstr ""
 
-#: ../user/forum_rate.php:64
+#: html/user/forum_rate.php:64
 msgid "You have already rated this post."
 msgstr ""
 
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
+#: html/user/forum_rate.php:64 html/user/forum_rate.php:80
+#: html/user/forum_rate.php:85 html/user/forum_report_post.php:74
+#: html/user/forum_report_post.php:108 html/user/forum_subscribe.php:56
+#: html/user/forum_subscribe.php:71 html/user/forum_thread_status.php:56
 msgid "Return to thread"
 msgstr ""
 
-#: ../user/forum_rate.php:74
+#: html/user/forum_rate.php:74
 msgid "Input Recorded"
 msgstr ""
 
-#: ../user/forum_rate.php:75
+#: html/user/forum_rate.php:75
 msgid "Your input has been recorded. Thanks for your help."
 msgstr ""
 
-#: ../user/forum_rate.php:77
+#: html/user/forum_rate.php:77
 msgid "Vote Registered"
 msgstr ""
 
-#: ../user/forum_rate.php:78
+#: html/user/forum_rate.php:78
 msgid "Your rating has been recorded. Thanks for your input."
 msgstr ""
 
-#: ../user/forum_rate.php:82
+#: html/user/forum_rate.php:82
 msgid "Vote Submission Problem"
 msgstr ""
 
-#: ../user/forum_reply.php:76
+#: html/user/forum_reply.php:76
 msgid ""
 "Your post has been flagged as spam by the Akismet anti-spam system. Please "
 "modify your text and try again."
 msgstr ""
 
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
+#: html/user/forum_reply.php:91 html/user/forum_thread.php:162
+#: html/user/forum_thread.php:291
 msgid "Post to thread"
 msgstr ""
 
-#: ../user/forum_reply.php:143
+#: html/user/forum_reply.php:143
 msgid "Message:"
 msgstr ""
 
-#: ../user/forum_reply.php:146
+#: html/user/forum_reply.php:146
 msgid "reply to %1Message ID%2:"
 msgstr ""
 
-#: ../user/forum_reply.php:172
+#: html/user/forum_reply.php:172
 msgid "Post reply"
 msgstr ""
 
-#: ../user/forum_reply.php:175
+#: html/user/forum_reply.php:175
 msgid "Add my signature to this reply"
 msgstr ""
 
-#: ../user/forum_report_post.php:48
+#: html/user/forum_report_post.php:48
 msgid "You need more average or total credit to report a post."
 msgstr ""
 
-#: ../user/forum_report_post.php:68
+#: html/user/forum_report_post.php:70
 msgid "Report Registered"
 msgstr ""
 
-#: ../user/forum_report_post.php:69
+#: html/user/forum_report_post.php:71
 msgid "Your report has been recorded. Thanks for your input."
 msgstr ""
 
-#: ../user/forum_report_post.php:70
+#: html/user/forum_report_post.php:72
 msgid ""
 "A moderator will now look at your report and decide what will happen - this "
 "may take a little while, so please be patient"
 msgstr ""
 
-#: ../user/forum_report_post.php:74
+#: html/user/forum_report_post.php:76
 msgid "Report a forum post"
 msgstr ""
 
-#: ../user/forum_report_post.php:76
+#: html/user/forum_report_post.php:78
 msgid ""
 "Before reporting this post, consider using the +/- rating system instead. If "
 "enough users rate a post negatively it will eventually be hidden.<br />You "
 "can find the rating system at the bottom of the post."
 msgstr ""
 
-#: ../user/forum_report_post.php:83
+#: html/user/forum_report_post.php:90
 msgid "Report post"
 msgstr ""
 
-#: ../user/forum_report_post.php:84
+#: html/user/forum_report_post.php:93
 msgid ""
 "Why do you find the post offensive: %1Please include enough information so "
-"that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
+"that a person that has not yet read the thread will quickly be able to "
+"identify the issue.%2"
 msgstr ""
 
-#: ../user/forum_report_post.php:93
+#: html/user/forum_report_post.php:104
 msgid "Report not registered"
 msgstr ""
 
-#: ../user/forum_report_post.php:94
+#: html/user/forum_report_post.php:105
 msgid "Your report could not be recorded. Please wait a while and try again."
 msgstr ""
 
-#: ../user/forum_report_post.php:95
+#: html/user/forum_report_post.php:106
 msgid ""
 "If this is not a temporary error, please report it to the project developers."
 msgstr ""
 
-#: ../user/forum_rss.php:38
+#: html/user/forum_rss.php:38
 msgid "%1 RSS feed"
 msgstr ""
 
-#: ../user/forum_rss.php:39
+#: html/user/forum_rss.php:39
 msgid "This message board is available as an RSS feed."
 msgstr ""
 
-#: ../user/forum_rss.php:41
+#: html/user/forum_rss.php:41
 msgid "Options:"
 msgstr ""
 
-#: ../user/forum_rss.php:45
+#: html/user/forum_rss.php:45
 msgid "Include only posts by user ID %1 (default: all users)."
 msgstr ""
 
-#: ../user/forum_rss.php:47
+#: html/user/forum_rss.php:47
 msgid "Include only posts from the last %1 days (default: 30)."
 msgstr ""
 
-#: ../user/forum_rss.php:49
+#: html/user/forum_rss.php:49
 msgid "Threads only: %1 (Include only the first post of every thread)"
 msgstr ""
 
-#: ../user/forum_search.php:29
+#: html/user/forum_search_action.php:143
+msgid "Forum search results"
+msgstr ""
+
+#: html/user/forum_search_action.php:177
+msgid "Thread titles matching your query:"
+msgstr ""
+
+#: html/user/forum_search_action.php:196
+msgid "Messages matching your query:"
+msgstr ""
+
+#: html/user/forum_search_action.php:219
+msgid ""
+"Sorry, couldn't find anything matching your search query. You can try to "
+"broaden your search by using less words (or less specific words)."
+msgstr ""
+
+#: html/user/forum_search_action.php:221
+msgid "You can also %1try the same search on Google.%2"
+msgstr ""
+
+#: html/user/forum_search_action.php:226
+msgid "Perform another search"
+msgstr ""
+
+#: html/user/forum_search.php:29
 msgid "Forum search"
 msgstr ""
 
-#: ../user/forum_search.php:33
+#: html/user/forum_search.php:33
 msgid "Search query"
 msgstr ""
 
-#: ../user/forum_search.php:34
+#: html/user/forum_search.php:34
 msgid "Search for keywords:"
 msgstr ""
 
-#: ../user/forum_search.php:35
+#: html/user/forum_search.php:35
 msgid "Posts that contain all the specified words will be displayed"
 msgstr ""
 
-#: ../user/forum_search.php:37
+#: html/user/forum_search.php:37
 msgid "For example: \"screensaver freeze\""
 msgstr ""
 
-#: ../user/forum_search.php:38
+#: html/user/forum_search.php:38
 msgid "Search for author ID:"
 msgstr ""
 
-#: ../user/forum_search.php:39
+#: html/user/forum_search.php:39
 msgid "Only posts by this author will be displayed"
 msgstr ""
 
-#: ../user/forum_search.php:41
+#: html/user/forum_search.php:41
 msgid "For example: \"43214\""
 msgstr ""
 
-#: ../user/forum_search.php:43
+#: html/user/forum_search.php:43
 msgid "Search options"
 msgstr ""
 
-#: ../user/forum_search.php:44
+#: html/user/forum_search.php:44
 msgid "Search limits"
 msgstr ""
 
-#: ../user/forum_search.php:45
+#: html/user/forum_search.php:45
 msgid "Search at most this many days back in time"
 msgstr ""
 
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
+#: html/user/forum_search.php:52 html/user/forum_search.php:53
 msgid "%1 months"
 msgstr ""
 
-#: ../user/forum_search.php:54
+#: html/user/forum_search.php:54
 msgid "1 year"
 msgstr ""
 
-#: ../user/forum_search.php:55
-msgid "no limit"
+#: html/user/forum_search.php:74
+msgid "Forum"
 msgstr ""
 
-#: ../user/forum_search.php:75
+#: html/user/forum_search.php:75
 msgid "Only display posts from this forum"
 msgstr ""
 
-#: ../user/forum_search.php:86
+#: html/user/forum_search.php:86
 msgid "Sort by"
 msgstr ""
 
-#: ../user/forum_search.php:90
+#: html/user/forum_search.php:90
 msgid "Start the search"
 msgstr ""
 
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr ""
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr ""
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr ""
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr ""
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr ""
-
-#: ../user/forum_subscribe.php:48
+#: html/user/forum_subscribe.php:48
 msgid "Subscription successful"
 msgstr ""
 
-#: ../user/forum_subscribe.php:51
+#: html/user/forum_subscribe.php:51
 msgid ""
 "You are now subscribed to %1. You will be notified whenever there is a new "
 "post."
 msgstr ""
 
-#: ../user/forum_subscribe.php:53
+#: html/user/forum_subscribe.php:53
 msgid "Subscription failed"
 msgstr ""
 
-#: ../user/forum_subscribe.php:54
+#: html/user/forum_subscribe.php:54
 msgid ""
 "We are currently unable to subscribe you to %1. Please try again later.."
 msgstr ""
 
-#: ../user/forum_subscribe.php:63
+#: html/user/forum_subscribe.php:63
 msgid "Unsubscription successful"
 msgstr ""
 
-#: ../user/forum_subscribe.php:66
+#: html/user/forum_subscribe.php:66
 msgid ""
 "You are no longer subscribed to %1. You will no longer receive notifications "
 "for this thread."
 msgstr ""
 
-#: ../user/forum_subscribe.php:68
+#: html/user/forum_subscribe.php:68
 msgid "Unsubscription failed"
 msgstr ""
 
-#: ../user/forum_subscribe.php:69
+#: html/user/forum_subscribe.php:69
 msgid ""
 "We are currently unable to unsubscribe you from %1. Please try again later.."
 msgstr ""
 
-#: ../user/forum_subscribe.php:76
+#: html/user/forum_subscribe.php:76
 msgid "Unknown subscription action"
 msgstr ""
 
-#: ../user/forum_thread.php:66
+#: html/user/forum_thread.php:66
 msgid "This forum is not visible to you."
 msgstr ""
 
-#: ../user/forum_thread.php:74
+#: html/user/forum_thread.php:74
 msgid "This thread has been hidden by moderators."
 msgstr ""
 
-#: ../user/forum_thread.php:129
+#: html/user/forum_thread.php:129
 msgid "My question was answered"
 msgstr ""
 
-#: ../user/forum_thread.php:130
+#: html/user/forum_thread.php:130
 msgid "Click here if your question has been adequately answered"
 msgstr ""
 
-#: ../user/forum_thread.php:138
+#: html/user/forum_thread.php:138
 msgid "I've also got this question"
 msgstr ""
 
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
+#: html/user/forum_thread.php:163 html/user/forum_thread.php:292
 msgid "Add a new message to this thread"
 msgstr ""
 
-#: ../user/forum_thread.php:172
+#: html/user/forum_thread.php:175
 msgid "Unsubscribe"
 msgstr ""
 
-#: ../user/forum_thread.php:173
+#: html/user/forum_thread.php:176
 msgid "You are subscribed to this thread.  Click here to unsubscribe."
 msgstr ""
 
-#: ../user/forum_thread.php:179
+#: html/user/forum_thread.php:182
 msgid "Subscribe"
 msgstr ""
 
-#: ../user/forum_thread.php:180
+#: html/user/forum_thread.php:183
 msgid "Click to get email when there are new posts in this thread"
 msgstr ""
 
-#: ../user/forum_thread.php:191
+#: html/user/forum_thread.php:194
 msgid "Unhide this thread"
 msgstr ""
 
-#: ../user/forum_thread.php:197
+#: html/user/forum_thread.php:200
 msgid "Hide this thread"
 msgstr ""
 
-#: ../user/forum_thread.php:203
+#: html/user/forum_thread.php:206
 msgid "Make unsticky"
 msgstr ""
 
-#: ../user/forum_thread.php:204
+#: html/user/forum_thread.php:207
 msgid "Make this thread not sticky"
 msgstr ""
 
-#: ../user/forum_thread.php:209
+#: html/user/forum_thread.php:212
 msgid "Make sticky"
 msgstr ""
 
-#: ../user/forum_thread.php:210
+#: html/user/forum_thread.php:213
 msgid "Make this thread always appear at top of forum"
 msgstr ""
 
-#: ../user/forum_thread.php:216
+#: html/user/forum_thread.php:219
 msgid "Unlock"
 msgstr ""
 
-#: ../user/forum_thread.php:217
+#: html/user/forum_thread.php:220
 msgid "Allow new posts in this thread"
 msgstr ""
 
-#: ../user/forum_thread.php:222
+#: html/user/forum_thread.php:225
 msgid "Lock"
 msgstr ""
 
-#: ../user/forum_thread.php:223
+#: html/user/forum_thread.php:226
 msgid "Don't allow new posts in this thread"
 msgstr ""
 
-#: ../user/forum_thread.php:230
+#: html/user/forum_thread.php:233
 msgid "Move this thread to a different forum"
 msgstr ""
 
-#: ../user/forum_thread.php:235
+#: html/user/forum_thread.php:238
 msgid "Edit title"
 msgstr ""
 
-#: ../user/forum_thread.php:236
+#: html/user/forum_thread.php:239
 msgid "Edit thread title"
 msgstr ""
 
-#: ../user/forum_thread.php:244
+#: html/user/forum_thread.php:247
 msgid "Delete thread permanently"
 msgstr ""
 
-#: ../user/forum_thread.php:254
+#: html/user/forum_thread.php:257
 msgid "Export as Notice"
 msgstr ""
 
-#: ../user/forum_thread.php:260
+#: html/user/forum_thread.php:263
 msgid "Don't export"
 msgstr ""
 
-#: ../user/forum_thread.php:261
+#: html/user/forum_thread.php:264
 msgid "Don't export this news item as a Notice"
 msgstr ""
 
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
+#: html/user/forum_thread.php:277
 msgid "Sort"
 msgstr ""
 
 #. --------------
-#: ../user/forum_thread_status.php:54
+#: html/user/forum_thread_status.php:54
 msgid "Thread status updated"
 msgstr ""
 
-#: ../user/forum_thread_status.php:55
+#: html/user/forum_thread_status.php:55
 msgid "The status has been updated."
 msgstr ""
 
-#: ../user/forum_user_posts.php:75
+#: html/user/forum_user_posts.php:75
 msgid "Posts by %1"
 msgstr ""
 
-#: ../user/friend.php:35
+#: html/user/friend.php:35
 msgid "Already friends"
 msgstr ""
 
-#: ../user/friend.php:41
+#: html/user/friend.php:41
 msgid "You requested friendship with %1 on %2."
 msgstr ""
 
-#: ../user/friend.php:43
+#: html/user/friend.php:43
 msgid "This request is still pending confirmation."
 msgstr ""
 
-#: ../user/friend.php:54
+#: html/user/friend.php:54
 msgid "%1 is not accepting friendship requests from you"
 msgstr ""
 
-#: ../user/friend.php:63
+#: html/user/friend.php:63
 msgid "You can't be friends with yourself"
 msgstr ""
 
-#: ../user/friend.php:71
+#: html/user/friend.php:71
 msgid "Add friend"
 msgstr ""
 
-#: ../user/friend.php:76
+#: html/user/friend.php:76
 msgid ""
 "You have asked to add %1 as a friend. We will notify %1 and will ask him/her "
 "to confirm that you are friends."
 msgstr ""
 
-#: ../user/friend.php:79
+#: html/user/friend.php:79
 msgid "Add an optional message here:"
 msgstr ""
 
-#: ../user/friend.php:117
+#: html/user/friend.php:117
 msgid "Friend request sent"
 msgstr ""
 
-#: ../user/friend.php:118
+#: html/user/friend.php:118
 msgid "We have notified %1 of your request."
 msgstr ""
 
-#: ../user/friend.php:128
+#: html/user/friend.php:128
 msgid "Please log in as %1"
 msgstr ""
 
-#: ../user/friend.php:129
+#: html/user/friend.php:129
 msgid "You must log in as %1 to view this friend request"
 msgstr ""
 
-#: ../user/friend.php:140
+#: html/user/friend.php:140
 msgid "Friend request"
 msgstr ""
 
-#: ../user/friend.php:143
+#: html/user/friend.php:143
 msgid "%1 has requested friendship with you."
 msgstr ""
 
-#: ../user/friend.php:145
+#: html/user/friend.php:145
 msgid "%1 says: %2"
 msgstr ""
 
-#: ../user/friend.php:148
+#: html/user/friend.php:148
 msgid "Accept friendship"
 msgstr ""
 
-#: ../user/friend.php:148
+#: html/user/friend.php:148
 msgid "Click accept if %1 is in fact a friend"
 msgstr ""
 
-#: ../user/friend.php:149
+#: html/user/friend.php:149
 msgid "Decline"
 msgstr ""
 
-#: ../user/friend.php:149
+#: html/user/friend.php:149
 msgid "Click decline if %1 is not a friend"
 msgstr ""
 
-#: ../user/friend.php:188
+#: html/user/friend.php:188
 msgid "Friendship confirmed"
 msgstr ""
 
-#: ../user/friend.php:189
+#: html/user/friend.php:189
 msgid "Your friendship with %1 has been confirmed."
 msgstr ""
 
-#: ../user/friend.php:207
+#: html/user/friend.php:207
 msgid "Friendship declined"
 msgstr ""
 
-#: ../user/friend.php:208
+#: html/user/friend.php:208
 msgid "You have declined friendship with %1"
 msgstr ""
 
-#: ../user/friend.php:223
+#: html/user/friend.php:223
 msgid "Notification not found"
 msgstr ""
 
-#: ../user/friend.php:225
+#: html/user/friend.php:225
 msgid "Friend confirmed"
 msgstr ""
 
-#: ../user/friend.php:226
+#: html/user/friend.php:226
 msgid "You are now friends with %1."
 msgstr ""
 
-#: ../user/friend.php:234
+#: html/user/friend.php:234
 msgid "Cancel friendship?"
 msgstr ""
 
-#: ../user/friend.php:236
+#: html/user/friend.php:236
 msgid "Are you sure you want to cancel your friendship with %1?"
 msgstr ""
 
-#: ../user/friend.php:241
+#: html/user/friend.php:241
 msgid "Stay friends"
 msgstr ""
 
-#: ../user/friend.php:251
+#: html/user/friend.php:251
 msgid "Friendship cancelled"
 msgstr ""
 
-#: ../user/friend.php:252
+#: html/user/friend.php:252
 msgid "Your friendship with %1 has been cancelled."
 msgstr ""
 
-#: ../user/get_passwd.php:27
+#: html/user/get_passwd.php:27
 msgid ""
 "1) If you know your account's email address, and you can receive email there:"
 msgstr ""
 
-#: ../user/get_passwd.php:28
+#: html/user/get_passwd.php:28
 msgid ""
 "Enter the email address below, and click OK. You will be sent email "
 "instructions for resetting your password."
 msgstr ""
 
-#: ../user/get_passwd.php:46
+#: html/user/get_passwd.php:46
 msgid ""
 "2) If you forgot your account's email address, or you can't receive email "
 "there:"
 msgstr ""
 
-#: ../user/get_passwd.php:47
+#: html/user/get_passwd.php:47
 msgid ""
 "If you have run BOINC under this account, you can still access it. Here's "
 "how:"
 msgstr ""
 
-#: ../user/get_passwd.php:50
+#: html/user/get_passwd.php:50
 msgid ""
 "Go to the BOINC data directory on your computer (its location is written to "
 "the Event Log at startup)."
 msgstr ""
 
-#: ../user/get_passwd.php:51
+#: html/user/get_passwd.php:51
 msgid "Find your account file for this project; it will be named <b>%1</b>."
 msgstr ""
 
-#: ../user/get_passwd.php:52
+#: html/user/get_passwd.php:52
 msgid "Open the file in a text editor like Notepad. You'll see something like"
 msgstr ""
 
-#: ../user/get_passwd.php:62
+#: html/user/get_passwd.php:62
 msgid "Select and Copy the string between %1 and %2 (%3 in the above example)."
 msgstr ""
 
-#: ../user/get_passwd.php:64
+#: html/user/get_passwd.php:64
 msgid "Paste the string into the field below, and click OK."
 msgstr ""
 
-#: ../user/get_passwd.php:65
+#: html/user/get_passwd.php:65
 msgid ""
 "You will now be logged in to your account; update the email and password of "
 "your account."
 msgstr ""
 
-#: ../user/get_passwd.php:71
+#: html/user/get_passwd.php:72
 msgid "Log in with authenticator"
 msgstr ""
 
-#: ../user/get_passwd.php:81
+#: html/user/get_passwd.php:84
 msgid "Forgot your account info?"
 msgstr ""
 
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
+#: html/user/gpu_list.php:150 html/user/gpu_list.php:176
 msgid "No GPU tasks reported"
 msgstr ""
 
-#: ../user/gpu_list.php:206
+#: html/user/gpu_list.php:206
 msgid "Top GPU models"
 msgstr ""
 
-#: ../user/gpu_list.php:207
+#: html/user/gpu_list.php:207
 msgid ""
 "The following lists show the most productive GPU models on different "
 "platforms.  Relative speeds, measured by average elapsed time of tasks, are "
 "shown in parentheses."
 msgstr ""
 
-#: ../user/home.php:42
+#: html/user/home.php:42
 msgid "Welcome to %1"
 msgstr ""
 
-#: ../user/home.php:43
+#: html/user/home.php:43
 msgid "View and edit your account preferences using the links below."
 msgstr ""
 
-#: ../user/home.php:46
+#: html/user/home.php:46
 msgid "If you have not already done so, %1download BOINC client software%2."
 msgstr ""
 
-#: ../user/home.php:49 ../project.sample/project.inc:70
+#: html/user/home.php:49
 msgid "Your account"
 msgstr ""
 
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:40
+#: html/user/host_app_versions.php:45
 msgid "anonymous platform"
 msgstr ""
 
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr ""
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr ""
-
-#: ../user/host_app_versions.php:47
+#: html/user/host_app_versions.php:62
 msgid "Missing platform"
 msgstr ""
 
-#: ../user/host_app_versions.php:56
+#: html/user/host_app_versions.php:73
 msgid "Number of tasks completed"
 msgstr ""
 
-#: ../user/host_app_versions.php:57
+#: html/user/host_app_versions.php:74
 msgid "Max tasks per day"
 msgstr ""
 
-#: ../user/host_app_versions.php:58
+#: html/user/host_app_versions.php:75
 msgid "Number of tasks today"
 msgstr ""
 
-#: ../user/host_app_versions.php:59
+#: html/user/host_app_versions.php:76
 msgid "Consecutive valid tasks"
 msgstr ""
 
-#: ../user/host_app_versions.php:63
+#: html/user/host_app_versions.php:80
 msgid "Average processing rate"
 msgstr ""
 
-#: ../user/host_app_versions.php:72
+#: html/user/host_app_versions.php:90
 msgid "Application details for host %1"
 msgstr ""
 
-#: ../user/host_delete.php:31
+#: html/user/host_delete.php:31
 msgid "We have no record of that computer."
 msgstr ""
 
-#: ../user/host_delete.php:38
+#: html/user/host_delete.php:38
 msgid ""
 "You can not delete our record of this computer because our database still "
 "contains work for it. You must wait a few days until the work for this "
 "computer has been deleted from the project database."
 msgstr ""
 
-#: ../user/host_delete.php:40
+#: html/user/host_delete.php:40
 msgid "Delete record of computer"
 msgstr ""
 
-#: ../user/host_delete.php:41
+#: html/user/host_delete.php:41
 msgid "Record deleted."
 msgstr ""
 
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
+#: html/user/host_delete.php:42 html/user/host_edit_action.php:65
 msgid "Return to list of your computers"
 msgstr ""
 
-#: ../user/host_edit_action.php:39
+#: html/user/host_edit_action.php:39
 msgid "Merge computer records"
 msgstr ""
 
-#: ../user/host_edit_form.php:35
+#: html/user/host_edit_form.php:35
 msgid "Merge computers"
 msgstr ""
 
-#: ../user/host_edit_form.php:38
+#: html/user/host_edit_form.php:38
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake. "
 "You can correct this by merging old identities with the newest one."
 msgstr ""
 
-#: ../user/host_edit_form.php:56
+#: html/user/host_edit_form.php:56
 msgid "No hosts are eligible for merging with this one."
 msgstr ""
 
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
+#: html/user/host_edit_form.php:58 html/user/host_edit_form.php:114
 msgid "Show details"
 msgstr ""
 
-#: ../user/host_edit_form.php:66
+#: html/user/host_edit_form.php:66
 msgid ""
 "Check the computers that are the same as %1 (created %2, computer ID %3):"
 msgstr ""
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
+#: html/user/host_edit_form.php:70 html/user/workunit.php:39
 msgid "name"
 msgstr ""
 
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
+#: html/user/host_edit_form.php:70 html/user/workunit.php:41
 msgid "created"
 msgstr ""
 
-#: ../user/host_edit_form.php:70
+#: html/user/host_edit_form.php:70
 msgid "computer ID"
 msgstr ""
 
-#: ../user/host_edit_form.php:77
+#: html/user/host_edit_form.php:77
 msgid "no hostname"
 msgstr ""
 
-#: ../user/host_edit_form.php:109
+#: html/user/host_edit_form.php:109
 msgid "Merge hosts"
 msgstr ""
 
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
+#: html/user/hosts_user.php:53
+msgid "Computers belonging to %1"
 msgstr ""
 
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
+#: html/user/hosts_user.php:55
+msgid "Computers hidden"
 msgstr ""
 
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
+#: html/user/hosts_user.php:56
+msgid ""
+"This user has chosen not to show information about his or her computers."
 msgstr ""
 
-#: ../user/host_venue_action.php:43
-msgid "none"
+#: html/user/hosts_user.php:64
+msgid "Your computers"
 msgstr ""
 
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
+#: html/user/host_update_credit.php:27
+msgid "Updating computer credit"
 msgstr ""
 
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
+#: html/user/host_update_credit.php:37
+msgid "Host credit updated"
 msgstr ""
 
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
+#: html/user/host_venue_action.php:41
+msgid "Host venue updated"
 msgstr ""
 
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
+#: html/user/host_venue_action.php:43
+msgid "none"
 msgstr ""
 
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
+#: html/user/host_venue_action.php:46
+msgid "The venue of this host has been set to %1."
 msgstr ""
 
-#: ../user/hosts_user.php:56
+#: html/user/host_venue_action.php:48
 msgid ""
-"This user has chosen not to show information about his or her computers."
+"This change will take effect the next time the host communicates with this "
+"project."
 msgstr ""
 
-#: ../user/hosts_user.php:64
-msgid "Your computers"
+#: html/user/host_venue_action.php:50
+msgid "Return to host page"
 msgstr ""
 
-#: ../user/html.php:23
+#: html/user/html.php:23
 msgid "Allowed HTML tags"
 msgstr ""
 
-#: ../user/html.php:25
+#: html/user/html.php:25
 msgid "The following HTML tags are allowed in team descriptions:"
 msgstr ""
 
-#: ../user/html.php:27
+#: html/user/html.php:27
 msgid "bold"
 msgstr ""
 
-#: ../user/html.php:28
+#: html/user/html.php:28
 msgid "italics"
 msgstr ""
 
-#: ../user/html.php:29
+#: html/user/html.php:29
 msgid "hyperlink"
 msgstr ""
 
-#: ../user/html.php:30
+#: html/user/html.php:30
 msgid "paragraph"
 msgstr ""
 
-#: ../user/html.php:31
+#: html/user/html.php:31
 msgid "break"
 msgstr ""
 
-#: ../user/html.php:32
+#: html/user/html.php:32
 msgid "preformatted"
 msgstr ""
 
-#: ../user/html.php:33
+#: html/user/html.php:33
 msgid ""
 "image; height cannot exceed 450 pixels. Please do not link to images without "
 "permission of the web site where the image is hosted."
 msgstr ""
 
-#: ../user/html.php:35
+#: html/user/html.php:35
 msgid "You can also use ampersand notation for special characters."
 msgstr ""
 
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
+#: html/user/info.php:24
+msgid "Rules and policies"
 msgstr ""
 
-#: ../user/info.php:35
+#: html/user/info.php:35
 msgid "Run %1 only on authorized computers"
 msgstr ""
 
-#: ../user/info.php:36
+#: html/user/info.php:36
 msgid ""
 "Run %1 only on computers that you own, or for which you have obtained the "
 "owner's permission. Some companies and schools have policies that prohibit "
 "using their computers for projects such as %1."
 msgstr ""
 
-#: ../user/info.php:38
+#: html/user/info.php:38
 msgid "How %1 will use your computer"
 msgstr ""
 
-#: ../user/info.php:39
+#: html/user/info.php:39
 msgid ""
 "When you run %1 on your computer, it will use part of the computer's CPU "
 "power, disk space, and network bandwidth. You can control how much of your "
 "resources are used by %1, and when it uses them."
 msgstr ""
 
-#: ../user/info.php:40
+#: html/user/info.php:40
 msgid ""
 "The work done by your computer contributes to the goals of %1, as described "
 "on its web site. The application programs may change from time to time."
 msgstr ""
 
-#: ../user/info.php:42
+#: html/user/info.php:42
 msgid "Privacy policy"
 msgstr ""
 
-#: ../user/info.php:43
+#: html/user/info.php:43
 msgid ""
 "Your account on %1 is identified by a name that you choose. This name may be "
 "shown on the %1 web site, along with a summary of the work your computer has "
@@ -4776,7 +4871,7 @@ msgid ""
 "your identity."
 msgstr ""
 
-#: ../user/info.php:44
+#: html/user/info.php:44
 msgid ""
 "If you participate in %1, information about your computer (such as its "
 "processor type, amount of memory, etc.) will be recorded by %1 and used to "
@@ -4785,14 +4880,14 @@ msgid ""
 "location (e.g. its domain name or network address) will be shown."
 msgstr ""
 
-#: ../user/info.php:45
+#: html/user/info.php:45
 msgid ""
 "To participate in %1, you must give an address where you receive email. This "
-"address will not be shown on the %1 web site or shared with organizations. %"
-"1 may send you periodic newsletters; however, you can opt out at any time."
+"address will not be shown on the %1 web site or shared with organizations. "
+"%1 may send you periodic newsletters; however, you can opt out at any time."
 msgstr ""
 
-#: ../user/info.php:46
+#: html/user/info.php:46
 msgid ""
 "Private messages sent on the %1 web site are visible only to the sender and "
 "recipient.  %1 does not examine or police the content of private messages.  "
@@ -4801,7 +4896,7 @@ msgid ""
 "public or private messages from that user."
 msgstr ""
 
-#: ../user/info.php:47
+#: html/user/info.php:47
 msgid ""
 "If you use our web site forums you must follow the %2posting guidelines%3.  "
 "Messages posted to the %1 forums are visible to everyone, including non-"
@@ -4809,11 +4904,11 @@ msgid ""
 "anyone to view and copy your posts."
 msgstr ""
 
-#: ../user/info.php:48
+#: html/user/info.php:48
 msgid "Is it safe to run %1?"
 msgstr ""
 
-#: ../user/info.php:49
+#: html/user/info.php:49
 msgid ""
 "Any time you download a program through the Internet you are taking a "
 "chance: the program might have dangerous errors, or the download server "
@@ -4824,108 +4919,150 @@ msgid ""
 "to the Internet."
 msgstr ""
 
-#: ../user/info.php:50
+#: html/user/info.php:50
 msgid ""
 "The applications run by %1 may cause some computers to overheat. If this "
 "happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
 msgstr ""
 
-#: ../user/info.php:51
+#: html/user/info.php:51
 msgid ""
 "%1 was developed by %2. BOINC was developed at the University of California."
 msgstr ""
 
-#: ../user/info.php:53
+#: html/user/info.php:53
 msgid "Liability"
 msgstr ""
 
-#: ../user/info.php:54
+#: html/user/info.php:54
 msgid ""
 "%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in %"
-"1."
+"any other event or condition that may occur as a result of participating in "
+"%1."
 msgstr ""
 
-#: ../user/info.php:56
+#: html/user/info.php:56
 msgid "Other BOINC projects"
 msgstr ""
 
-#: ../user/info.php:57
+#: html/user/info.php:57
 msgid ""
 "Other projects use the same platform, BOINC, as %1. You may want to consider "
 "participating in one or more of these projects. By doing so, your computer "
 "will do useful work even when %1 has no work available for it."
 msgstr ""
 
-#: ../user/info.php:58
+#: html/user/info.php:58
 msgid ""
 "These other projects are not associated with %1, and we cannot vouch for "
 "their security practices or the nature of their research. Join them at your "
 "own risk."
 msgstr ""
 
-#: ../user/language_select.php:47
+#: html/user/join.php:26 html/user/join.php:29
+msgid "I'm new"
+msgstr ""
+
+#: html/user/join.php:26 html/user/join.php:31
+msgid "I'm a BOINC user"
+msgstr ""
+
+#: html/user/join.php:46
+msgid "Read our %1Rules and Policies%2."
+msgstr ""
+
+#: html/user/join.php:48
+msgid "Download the BOINC desktop software."
+msgstr ""
+
+#: html/user/join.php:50
+msgid "Download"
+msgstr ""
+
+#: html/user/join.php:52
+msgid ""
+"For Android devices, download BOINC from the Google Play Store or Amazon App "
+"Store."
+msgstr ""
+
+#: html/user/join.php:55
+msgid "Run the installer."
+msgstr ""
+
+#: html/user/join.php:56
+msgid "Choose %1 from the list, or enter %2"
+msgstr ""
+
+#: html/user/join.php:70
+msgid "Install BOINC on this device if not already present."
+msgstr ""
+
+#: html/user/join.php:73
+msgid "Select Tools / Add Project. Choose %1 from the list, or enter %2"
+msgstr ""
+
+#: html/user/join.php:76
+msgid ""
+"If you're running a command-line version of BOINC on this computer, %1create "
+"an account%2, then use %3boinccmd --project_attach%4 to add the project."
+msgstr ""
+
+#: html/user/join.php:91 html/user/sample_index.php:96
+#: html/user/team_join_form.php:34
+msgid "Join %1"
+msgstr ""
+
+#: html/user/language_select.php:46
 msgid "Language selection"
 msgstr ""
 
-#: ../user/language_select.php:73
+#: html/user/language_select.php:57
 msgid ""
 "This web site is available in several languages. The currently selected "
 "language is %1."
 msgstr ""
 
-#: ../user/language_select.php:78
+#: html/user/language_select.php:62
 msgid ""
 "Normally the choice of language is determined by your browser's language "
 "setting, which is: %1.  You can change this setting using:"
 msgstr ""
 
-#: ../user/language_select.php:83
+#: html/user/language_select.php:67
 msgid "Firefox: Tools/Options/General"
 msgstr ""
 
-#: ../user/language_select.php:85
+#: html/user/language_select.php:69
 msgid "Microsoft IE: Tools/Internet Options/Languages"
 msgstr ""
 
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr ""
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
+#: html/user/language_select.php:73
+msgid "Or you can select a language from the following menu:"
 msgstr ""
 
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr ""
-
-#: ../user/language_select.php:113
+#: html/user/language_select.php:85
 msgid ""
-"Translations are done by volunteers.  If your native language is not here, %"
-"1you can provide a translation%2."
+"Translations are done by volunteers.  If your native language is missing or "
+"incomplete, %1you can help translate%2."
 msgstr ""
 
-#: ../user/login_form.php:57
+#: html/user/login_form.php:59
 msgid "or %1create an account%2."
 msgstr ""
 
-#: ../user/merge_by_name.php:31
+#: html/user/merge_by_name.php:31
 msgid "Processing %1"
 msgstr ""
 
-#: ../user/merge_by_name.php:43
+#: html/user/merge_by_name.php:43
 msgid "Merged %1 into %2"
 msgstr ""
 
-#: ../user/merge_by_name.php:72
+#: html/user/merge_by_name.php:72
 msgid "Return to the list of your computers"
 msgstr ""
 
-#: ../user/merge_by_name.php:76
+#: html/user/merge_by_name.php:76
 msgid ""
 "This operation merges computers based on their domain name.\n"
 "        <p>\n"
@@ -4935,15 +5072,15 @@ msgid ""
 "        <p>"
 msgstr ""
 
-#: ../user/merge_by_name.php:82
+#: html/user/merge_by_name.php:82
 msgid "Go ahead and do this"
 msgstr ""
 
-#: ../user/merge_by_name.php:83
+#: html/user/merge_by_name.php:83
 msgid "Return to the list of computers"
 msgstr ""
 
-#: ../user/moderation.php:26
+#: html/user/moderation.php:26
 msgid ""
 "\n"
 "To maximize discussion and flow of information,\n"
@@ -4951,7 +5088,7 @@ msgid ""
 "Message board postings are subject to the following posting rules:\n"
 msgstr ""
 
-#: ../user/moderation.php:30
+#: html/user/moderation.php:30
 msgid ""
 "\n"
 "<p>\n"
@@ -4990,622 +5127,560 @@ msgid ""
 "\n"
 msgstr ""
 
-#: ../user/pending.php:66
+#: html/user/pending.php:66
 msgid "Pending credit"
 msgstr ""
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Result ID"
 msgstr ""
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Workunit ID"
 msgstr ""
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Host ID"
 msgstr ""
 
-#: ../user/pending.php:68
+#: html/user/pending.php:68
 msgid "Claimed credit"
 msgstr ""
 
-#: ../user/pending.php:81
+#: html/user/pending.php:81
 msgid "Pending credit: %1"
 msgstr ""
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block messages from this user"
 msgstr ""
 
-#: ../user/pm.php:32
+#: html/user/pm.php:29
 msgid "Block user"
 msgstr ""
 
-#: ../user/pm.php:73
+#: html/user/pm.php:61
 msgid "Your message has been sent."
 msgstr ""
 
-#: ../user/pm.php:83
+#: html/user/pm.php:71
 msgid "You have no private messages."
 msgstr ""
 
-#: ../user/pm.php:90
+#: html/user/pm.php:79
 msgid "Sender and date"
 msgstr ""
 
-#: ../user/pm.php:111
+#: html/user/pm.php:99
 msgid "Reply to this message"
 msgstr ""
 
-#: ../user/pm.php:112
+#: html/user/pm.php:100
 msgid "Delete this message"
 msgstr ""
 
-#: ../user/pm.php:117
+#: html/user/pm.php:105
 msgid "Select all"
 msgstr ""
 
-#: ../user/pm.php:119
+#: html/user/pm.php:107
 msgid "Unselect all"
 msgstr ""
 
-#: ../user/pm.php:122
+#: html/user/pm.php:110
 msgid "Delete selected messages"
 msgstr ""
 
-#: ../user/pm.php:145
+#: html/user/pm.php:134
 msgid "Sender"
 msgstr ""
 
-#: ../user/pm.php:148
+#: html/user/pm.php:137
 msgid "Date"
 msgstr ""
 
-#: ../user/pm.php:190
+#: html/user/pm.php:190 html/user/pm.php:220
 msgid "You need to fill all fields to send a private message"
 msgstr ""
 
-#: ../user/pm.php:193
+#: html/user/pm.php:202
+msgid "Message sent"
+msgstr ""
+
+#: html/user/pm.php:203
+msgid "Your message was sent to %1 team members."
+msgstr ""
+
+#: html/user/pm.php:224
 msgid ""
 "Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
+"            by the Akismet anti-spam system.\n"
+"            Please modify your text and try again."
 msgstr ""
 
-#: ../user/pm.php:210
+#: html/user/pm.php:241
 msgid "Could not find user with id %1"
 msgstr ""
 
-#: ../user/pm.php:215
+#: html/user/pm.php:246
 msgid "Could not find user with username %1"
 msgstr ""
 
 #. Non-unique username
-#: ../user/pm.php:217
+#: html/user/pm.php:248
 msgid "%1 is not a unique username; you will have to use user ID"
 msgstr ""
 
-#: ../user/pm.php:222
+#: html/user/pm.php:254
 msgid "User %1 (ID: %2) is not accepting private messages from you."
 msgstr ""
 
-#: ../user/pm.php:245 ../user/view_profile.php:28
+#: html/user/pm.php:276 html/user/view_profile.php:28
 msgid "No such user"
 msgstr ""
 
-#: ../user/pm.php:247
+#: html/user/pm.php:278
 msgid "Really block %1?"
 msgstr ""
 
-#: ../user/pm.php:248
+#: html/user/pm.php:279
 msgid ""
 "Are you really sure you want to block user %1 from sending you private "
 "messages?"
 msgstr ""
 
-#: ../user/pm.php:249
+#: html/user/pm.php:280
 msgid "Please note that you can only block a limited amount of users."
 msgstr ""
 
-#: ../user/pm.php:250
+#: html/user/pm.php:281
 msgid ""
 "Once the user has been blocked you can unblock it using forum preferences "
 "page."
 msgstr ""
 
-#: ../user/pm.php:257
+#: html/user/pm.php:288
 msgid "No, cancel"
 msgstr ""
 
-#: ../user/pm.php:265 ../user/team_admins.php:100
+#: html/user/pm.php:297 html/user/team_admins.php:101
 msgid "no such user"
 msgstr ""
 
-#: ../user/pm.php:268
+#: html/user/pm.php:300
 msgid "User %1 blocked"
 msgstr ""
 
-#: ../user/pm.php:270
+#: html/user/pm.php:302
 msgid "User %1 has been blocked from sending you private messages."
 msgstr ""
 
-#: ../user/pm.php:271
+#: html/user/pm.php:303
 msgid "To unblock, visit %1message board preferences%2"
 msgstr ""
 
-#: ../user/pm.php:307
+#: html/user/pm.php:365
 msgid "Unknown action"
 msgstr ""
 
-#: ../user/prefs.php:33
+#: html/user/prefs_edit.php:66 html/user/prefs_edit.php:94
+msgid "%1 for %2"
+msgstr ""
+
+#: html/user/prefs_edit.php:112
+msgid "Back to preferences"
+msgstr ""
+
+#: html/user/prefs.php:33
 msgid ""
 "Your preferences have been updated, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
 msgstr ""
 
-#: ../user/prefs.php:42
+#: html/user/prefs.php:42
 msgid ""
 "Your preferences have been reset to the defaults, and\n"
 "          will take effect when your computer communicates with %1\n"
 "          or you issue the %2Update%3 command from the BOINC Manager."
 msgstr ""
 
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr ""
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr ""
-
-#: ../user/prefs_remove.php:46
+#: html/user/prefs_remove.php:46
 msgid "Confirm delete preferences"
 msgstr ""
 
-#: ../user/prefs_remove.php:49
+#: html/user/prefs_remove.php:49
 msgid "Are you sure you want to delete your separate %1 preferences for %2?"
 msgstr ""
 
-#: ../user/prefs_remove.php:53
+#: html/user/prefs_remove.php:53
 msgid "Remove preferences"
 msgstr ""
 
-#: ../user/prefs_remove.php:55
+#: html/user/prefs_remove.php:55
 msgid "Cancel"
 msgstr ""
 
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr ""
-
-#: ../user/profile_menu.php:37
+#: html/user/profile_menu.php:37
 msgid ""
 "%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
 "community."
 msgstr ""
 
-#: ../user/profile_menu.php:38
+#: html/user/profile_menu.php:38
 msgid ""
 "Explore the diversity of your fellow volunteers, and contribute your own "
 "views for others to enjoy."
 msgstr ""
 
-#: ../user/profile_menu.php:39
+#: html/user/profile_menu.php:39
 msgid ""
 "If you haven't already, you can %1create your own user profile%2 for others "
 "to see!"
 msgstr ""
 
-#: ../user/profile_menu.php:44
+#: html/user/profile_menu.php:44
 msgid "User of the Day"
 msgstr ""
 
-#: ../user/profile_menu.php:59
+#: html/user/profile_menu.php:59
 msgid "User Profile Explorer"
 msgstr ""
 
-#: ../user/profile_menu.php:62
+#: html/user/profile_menu.php:62
 msgid "View the %1User Picture Gallery%2."
 msgstr ""
 
-#: ../user/profile_menu.php:63
+#: html/user/profile_menu.php:63
 msgid "Browse profiles %1by country%2."
 msgstr ""
 
-#: ../user/profile_menu.php:64
+#: html/user/profile_menu.php:64
 msgid ""
 "Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
 "without pictures%2."
 msgstr ""
 
-#: ../user/profile_menu.php:68
+#: html/user/profile_menu.php:68
 msgid "Alphabetical profile listings:"
 msgstr ""
 
-#: ../user/profile_menu.php:74
+#: html/user/profile_menu.php:74
 msgid "Search profile text"
 msgstr ""
 
-#: ../user/profile_menu.php:100
+#: html/user/profile_menu.php:100
 msgid "No profiles"
 msgstr ""
 
-#: ../user/profile_menu.php:101
+#: html/user/profile_menu.php:101
 msgid "No profiles matched your query."
 msgstr ""
 
-#: ../user/profile_rate.php:31
+#: html/user/profile_rate.php:31
 msgid "Invalid vote type:"
 msgstr ""
 
-#: ../user/profile_rate.php:36
+#: html/user/profile_rate.php:36
 msgid "Vote Recorded"
 msgstr ""
 
-#: ../user/profile_rate.php:40
+#: html/user/profile_rate.php:40
 msgid "Thank you"
 msgstr ""
 
-#: ../user/profile_rate.php:43
+#: html/user/profile_rate.php:43
 msgid "Your recommendation has been recorded."
 msgstr ""
 
-#: ../user/profile_rate.php:45
+#: html/user/profile_rate.php:45
 msgid "Your vote to reject this profile has been recorded."
 msgstr ""
 
-#: ../user/profile_rate.php:48
+#: html/user/profile_rate.php:48
 msgid "Return to profile."
 msgstr ""
 
-#: ../user/profile_search_action.php:38
+#: html/user/profile_search_action.php:38
 msgid "Profiles containing '%1'"
 msgstr ""
 
-#: ../user/profile_search_action.php:42
+#: html/user/profile_search_action.php:42
 msgid "User name"
 msgstr ""
 
-#: ../user/profile_search_action.php:43
+#: html/user/profile_search_action.php:43
 msgid "Joined project"
 msgstr ""
 
-#: ../user/profile_search_action.php:46
+#: html/user/profile_search_action.php:46
 msgid "Recent credit"
 msgstr ""
 
-#: ../user/profile_search_action.php:56
+#: html/user/profile_search_action.php:56
 msgid "No profiles found containing '%1'"
 msgstr ""
 
-#: ../user/result.php:33
+#: html/user/result.php:33
 msgid "No such task:"
 msgstr ""
 
-#: ../user/results.php:29
+#: html/user/results.php:29
 msgid "This feature is turned off temporarily"
 msgstr ""
 
-#: ../user/results.php:56
+#: html/user/results.php:56
 msgid "No computer with ID %1 found"
 msgstr ""
 
-#: ../user/results.php:63
+#: html/user/results.php:63
 msgid "No access"
 msgstr ""
 
-#: ../user/results.php:69
+#: html/user/results.php:69
 msgid "Missing user ID or host ID"
 msgstr ""
 
-#: ../user/results.php:107
+#: html/user/results.php:105
 msgid "No tasks to display"
 msgstr ""
 
-#: ../user/sample_index.php:195
-msgid "User of the day"
+#: html/user/sample_index.php:54
+msgid "%1 is temporarily shut down for maintenance."
+msgstr ""
+
+#: html/user/sample_index.php:64
+msgid "What is %1?"
+msgstr ""
+
+#: html/user/sample_index.php:117
+msgid "News"
 msgstr ""
 
-#: ../user/server_status.php:59
+#: html/user/server_status.php:57
 msgid "Not Running"
 msgstr ""
 
-#: ../user/server_status.php:63
+#: html/user/server_status.php:61
 msgid "Running"
 msgstr ""
 
-#: ../user/server_status.php:67
+#: html/user/server_status.php:65
 msgid "Disabled"
 msgstr ""
 
-#: ../user/server_status.php:105
+#: html/user/server_status.php:103
 msgid "Project status"
 msgstr ""
 
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr ""
-
-#: ../user/server_status.php:113
+#: html/user/server_status.php:112
 msgid "Program"
 msgstr ""
 
-#: ../user/server_status.php:113
+#: html/user/server_status.php:112
 msgid "Host"
 msgstr ""
 
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr ""
-
-#: ../user/server_status.php:138
+#: html/user/server_status.php:135
 msgid "Computing status"
 msgstr ""
 
-#: ../user/server_status.php:153
+#: html/user/server_status.php:146
 msgid "Users"
 msgstr ""
 
-#: ../user/server_status.php:165
+#: html/user/server_status.php:161
 msgid "Tasks by application"
 msgstr ""
 
-#: ../user/server_status.php:168
+#: html/user/server_status.php:167
 msgid "Runtime of last 100 tasks in hours: average, min, max"
 msgstr ""
 
-#: ../user/server_status.php:169
+#: html/user/server_status.php:168
 msgid "Users in last 24 hours"
 msgstr ""
 
-#: ../user/show_host_detail.php:40
+#: html/user/server_status.php:187
+msgid "Database schema version: "
+msgstr ""
+
+#: html/user/show_host_detail.php:40
 msgid "Computer %1"
 msgstr ""
 
-#: ../user/stats.php:21
+#: html/user/stats.php:21
 msgid "Statistics and leaderboards"
 msgstr ""
 
-#: ../user/stats.php:30
+#: html/user/stats.php:30
 msgid "Statistics for %1"
 msgstr ""
 
 #. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
+#: html/user/stats.php:32 html/user/top_users.php:109
 msgid "Top participants"
 msgstr ""
 
-#: ../user/stats.php:40 ../user/team.php:48
+#: html/user/stats.php:40 html/user/team.php:47
 msgid "Top teams"
 msgstr ""
 
-#: ../user/stats.php:47
+#: html/user/stats.php:47
 msgid "Top computers"
 msgstr ""
 
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr ""
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr ""
-
-#: ../user/stats.php:53
+#: html/user/stats.php:53
 msgid ""
 "More detailed statistics for %1 and other BOINC-based projects are available "
 "at several web sites:"
 msgstr ""
 
-#: ../user/stats.php:56
+#: html/user/stats.php:56
 msgid ""
 "You can also get your current statistics in the form of a \"signature image"
 "\":"
 msgstr ""
 
-#: ../user/stats.php:59
+#: html/user/stats.php:59
 msgid ""
 "Additionally you can get your individual statistics summed across all BOINC "
 "projects from several sites; see your %1home page%2."
 msgstr ""
 
-#: ../user/team.php:27
-msgid "Teams"
-msgstr ""
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr ""
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr ""
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr ""
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr ""
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr ""
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr ""
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr ""
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr ""
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr ""
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr ""
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr ""
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr ""
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr ""
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr ""
-
-#: ../user/team_admins.php:36
+#: html/user/team_admins.php:36
 msgid "Remove Team Admin status from this member"
 msgstr ""
 
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
+#: html/user/team_admins.php:42 html/user/team_admins.php:54
 msgid "Add or remove Team Admins"
 msgstr ""
 
-#: ../user/team_admins.php:43
+#: html/user/team_admins.php:43
 msgid "You can select team members as 'Team Admins'. Team Admins can:"
 msgstr ""
 
-#: ../user/team_admins.php:45
+#: html/user/team_admins.php:45
 msgid "Edit team information (name, URL, description, country)"
 msgstr ""
 
-#: ../user/team_admins.php:46
+#: html/user/team_admins.php:46
 msgid "View the team's join/quit history"
 msgstr ""
 
-#: ../user/team_admins.php:47
+#: html/user/team_admins.php:47
+msgid "Send messages to the team"
+msgstr ""
+
+#: html/user/team_admins.php:48
 msgid ""
 "Moderate the team forum, if any (admins get email notification of moderation "
 "events and red X reports)"
 msgstr ""
 
-#: ../user/team_admins.php:49
+#: html/user/team_admins.php:50
 msgid "Team Admins cannot:"
 msgstr ""
 
-#: ../user/team_admins.php:51
+#: html/user/team_admins.php:52
 msgid "Change the team founder"
 msgstr ""
 
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
+#: html/user/team_admins.php:53 html/user/team_manage.php:58
 msgid "Remove members"
 msgstr ""
 
-#: ../user/team_admins.php:55
+#: html/user/team_admins.php:56
 msgid "If a Team Admin quits the team, they cease to be a Team Admin."
 msgstr ""
 
-#: ../user/team_admins.php:56
+#: html/user/team_admins.php:57
 msgid ""
 "We recommend that you select only people you know and trust very well as "
 "Team Admins."
 msgstr ""
 
-#: ../user/team_admins.php:61
+#: html/user/team_admins.php:62
 msgid "There are currently no Team Admins"
 msgstr ""
 
-#: ../user/team_admins.php:63
+#: html/user/team_admins.php:64
 msgid "Current Team Admins"
 msgstr ""
 
-#: ../user/team_admins.php:64
+#: html/user/team_admins.php:65
 msgid "Became Team Admin on"
 msgstr ""
 
-#: ../user/team_admins.php:79
+#: html/user/team_admins.php:80
 msgid "Add Team Admin"
 msgstr ""
 
-#: ../user/team_admins.php:80
+#: html/user/team_admins.php:81
 msgid "Email address of team member:"
 msgstr ""
 
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr ""
-
-#: ../user/team_admins.php:92
+#: html/user/team_admins.php:93
 msgid "failed to remove admin"
 msgstr ""
 
-#: ../user/team_admins.php:101
+#: html/user/team_admins.php:102
 msgid "User is not member of team"
 msgstr ""
 
-#: ../user/team_admins.php:103
+#: html/user/team_admins.php:104
 msgid "%1 is already an admin of %2"
 msgstr ""
 
-#: ../user/team_admins.php:107
+#: html/user/team_admins.php:108
 msgid "Couldn't add admin"
 msgstr ""
 
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
+#: html/user/team_admins.php:114 html/user/team_manage.php:87
+#: html/user/team_quit_form.php:30 html/user/team_remove_inactive_action.php:30
 msgid "No such team"
 msgstr ""
 
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
+#: html/user/team_change_founder_action.php:32
+#: html/user/team_change_founder_form.php:35 html/user/team_display.php:69
+#: html/user/team_edit_action.php:32 html/user/team_edit_form.php:31
+#: html/user/team_email_list.php:64
 msgid "no such team"
 msgstr ""
 
-#: ../user/team_change_founder_action.php:40
+#: html/user/team_change_founder_action.php:40
 msgid "User is not a member of %1"
 msgstr ""
 
-#: ../user/team_change_founder_action.php:43
+#: html/user/team_change_founder_action.php:43
 msgid "Changing founder of %1"
 msgstr ""
 
-#: ../user/team_change_founder_action.php:45
+#: html/user/team_change_founder_action.php:45
 msgid "%1 is now founder of %2"
 msgstr ""
 
-#: ../user/team_change_founder_form.php:39
+#: html/user/team_change_founder_form.php:39
 msgid "Change founder of %1"
 msgstr ""
 
-#: ../user/team_change_founder_form.php:45
+#: html/user/team_change_founder_form.php:45
 msgid ""
 "Team member %1 requested this team's foundership on %2, but left the team, "
 "thus canceling the request."
 msgstr ""
 
-#: ../user/team_change_founder_form.php:51
+#: html/user/team_change_founder_form.php:51
 msgid ""
 "Team member %1 has requested this team's foundership. This may be because "
 "you left the team or haven't had contact with the team for a long time."
 msgstr ""
 
-#: ../user/team_change_founder_form.php:57
+#: html/user/team_change_founder_form.php:57
 msgid "decline request"
 msgstr ""
 
-#: ../user/team_change_founder_form.php:60
+#: html/user/team_change_founder_form.php:60
 msgid ""
 "If you don't decline the request by %1, %2 will have the option of assuming "
 "team foundership.<br /><br />\n"
@@ -5613,210 +5688,210 @@ msgid ""
 "form below."
 msgstr ""
 
-#: ../user/team_change_founder_form.php:68
+#: html/user/team_change_founder_form.php:68
 msgid "No transfer request is pending."
 msgstr ""
 
-#: ../user/team_change_founder_form.php:71
+#: html/user/team_change_founder_form.php:71
 msgid ""
 "To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
+"member name and click %1Change founder%2 below."
 msgstr ""
 
-#: ../user/team_change_founder_form.php:78
+#: html/user/team_change_founder_form.php:81
 msgid "New founder?"
 msgstr ""
 
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
+#: html/user/team_change_founder_form.php:113 html/user/team_manage.php:60
 msgid "Change founder"
 msgstr ""
 
-#: ../user/team_change_founder_form.php:110
+#: html/user/team_change_founder_form.php:116
 msgid "There are no users to transfer team to."
 msgstr ""
 
-#: ../user/team_create_action.php:31
+#: html/user/team_create_action.php:35
 msgid "You must choose a non-blank team name"
 msgstr ""
 
-#: ../user/team_create_action.php:36
+#: html/user/team_create_action.php:40
 msgid "A team named %1 already exists - try another name"
 msgstr ""
 
-#: ../user/team_create_action.php:56
+#: html/user/team_create_action.php:60
 msgid "Could not create team - please try later."
 msgstr ""
 
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
+#: html/user/team_create_form.php:29 html/user/team_create_form.php:33
 msgid "Create a team"
 msgstr ""
 
-#: ../user/team_create_form.php:32
+#: html/user/team_create_form.php:31
 msgid ""
 "You belong to %1. You must %2quit this team%3 before creating a new one."
 msgstr ""
 
-#: ../user/team_delta.php:66
+#: html/user/team_delta.php:66
 msgid "Not founder or admin"
 msgstr ""
 
-#: ../user/team_delta.php:73
+#: html/user/team_delta.php:73
 msgid "Team history for %1"
 msgstr ""
 
-#: ../user/team_delta.php:76
+#: html/user/team_delta.php:77
 msgid "When"
 msgstr ""
 
-#: ../user/team_delta.php:77
+#: html/user/team_delta.php:78
 msgid "User"
 msgstr ""
 
-#: ../user/team_delta.php:78
+#: html/user/team_delta.php:79
 msgid "Action"
 msgstr ""
 
-#: ../user/team_delta.php:79
+#: html/user/team_delta.php:80
 msgid "Total credit at time of action"
 msgstr ""
 
-#: ../user/team_edit_action.php:55
+#: html/user/team_edit_action.php:55
 msgid "bad country"
 msgstr ""
 
-#: ../user/team_edit_action.php:61
+#: html/user/team_edit_action.php:61
 msgid "The name '%1' is being used by another team."
 msgstr ""
 
-#: ../user/team_edit_action.php:64
+#: html/user/team_edit_action.php:64
 msgid "Must specify team name"
 msgstr ""
 
-#: ../user/team_edit_action.php:92
+#: html/user/team_edit_action.php:92
 msgid "Could not update team - please try again later."
 msgstr ""
 
-#: ../user/team_edit_form.php:35
+#: html/user/team_edit_form.php:35
 msgid "Edit %1"
 msgstr ""
 
-#: ../user/team_edit_form.php:36
+#: html/user/team_edit_form.php:36
 msgid "Update team info"
 msgstr ""
 
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
+#: html/user/team_email_list.php:70 html/user/team_members.php:51
+msgid "Members of %1"
 msgstr ""
 
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
+#: html/user/team_email_list.php:75
+msgid "ID"
 msgstr ""
 
-#: ../user/team_email_list.php:87
+#: html/user/team_email_list.php:93
 msgid "Show as plain text"
 msgstr ""
 
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
+#: html/user/team_forum.php:30 html/user/team_forum.php:41
 msgid "Create Message Board"
 msgstr ""
 
-#: ../user/team_forum.php:31
+#: html/user/team_forum.php:31
 msgid "You may create a message board for use by %1."
 msgstr ""
 
-#: ../user/team_forum.php:33
+#: html/user/team_forum.php:33
 msgid "Only team members will be able to post."
 msgstr ""
 
-#: ../user/team_forum.php:34
+#: html/user/team_forum.php:34
 msgid "At your option, only members will be able to read."
 msgstr ""
 
-#: ../user/team_forum.php:35
+#: html/user/team_forum.php:35
 msgid "You and your Team Admins will have moderator privileges."
 msgstr ""
 
-#: ../user/team_forum.php:42
+#: html/user/team_forum.php:42
 msgid "Create a message board for %1"
 msgstr ""
 
-#: ../user/team_forum.php:50
+#: html/user/team_forum.php:50
 msgid "Team already has a message board"
 msgstr ""
 
-#: ../user/team_forum.php:61
+#: html/user/team_forum.php:61
 msgid "Team Message Board"
 msgstr ""
 
-#: ../user/team_forum.php:73
+#: html/user/team_forum.php:78
 msgid "Minimum time between posts (seconds)"
 msgstr ""
 
-#: ../user/team_forum.php:76
+#: html/user/team_forum.php:81
 msgid "Minimum total credit to post"
 msgstr ""
 
-#: ../user/team_forum.php:79
+#: html/user/team_forum.php:84
 msgid "Minimum average credit to post"
 msgstr ""
 
-#: ../user/team_forum.php:82
+#: html/user/team_forum.php:87
 msgid "Submit"
 msgstr ""
 
-#: ../user/team_forum.php:91
+#: html/user/team_forum.php:97
 msgid "Remove your team's message board."
 msgstr ""
 
-#: ../user/team_forum.php:99
+#: html/user/team_forum.php:105
 msgid "Really remove message board?"
 msgstr ""
 
-#: ../user/team_forum.php:100
+#: html/user/team_forum.php:106
 msgid ""
 "Are you sure you want to remove your team's message board? All threads and "
 "posts will be permanently removed. (You may, however, create a new message "
 "board later)."
 msgstr ""
 
-#: ../user/team_forum.php:102
+#: html/user/team_forum.php:108
 msgid "Yes - remove message board"
 msgstr ""
 
-#: ../user/team_forum.php:123
+#: html/user/team_forum.php:129
 msgid "Message board removed"
 msgstr ""
 
-#: ../user/team_forum.php:126
+#: html/user/team_forum.php:132
 msgid ""
 "Your team's message board has been removed. You may now %1create a new one%2."
 msgstr ""
 
-#: ../user/team_forum.php:145
+#: html/user/team_forum.php:151
 msgid "Team Message Board Updated"
 msgstr ""
 
-#: ../user/team_forum.php:146
+#: html/user/team_forum.php:152
 msgid "Update successful"
 msgstr ""
 
-#: ../user/team_forum.php:149
+#: html/user/team_forum.php:155
 msgid "Update failed"
 msgstr ""
 
-#: ../user/team_forum.php:156
+#: html/user/team_forum.php:162
 msgid "Team has no forum"
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:38
+#: html/user/team_founder_transfer_action.php:38
 msgid "You must be a member of a team to access this page."
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:92
+#: html/user/team_founder_transfer_action.php:100
 msgid "Requesting foundership of %1"
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:100
+#: html/user/team_founder_transfer_action.php:108
 msgid ""
 "The current founder has been notified of your request by email and private "
 "message.<br /><br />\n"
@@ -5824,75 +5899,75 @@ msgid ""
 "will be allowed to become the founder."
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
+#: html/user/team_founder_transfer_action.php:112
+#: html/user/team_founder_transfer_action.php:123
 msgid "Foundership request not allowed now"
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:111
+#: html/user/team_founder_transfer_action.php:119
 msgid "Assumed foundership of %1"
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:113
+#: html/user/team_founder_transfer_action.php:121
 msgid ""
 "Congratulations, you are now the founder of team %1. Go to %2Your Account "
 "page%3 to find the Team Admin options."
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:122
+#: html/user/team_founder_transfer_action.php:130
 msgid "Decline founder change request"
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:129
+#: html/user/team_founder_transfer_action.php:137
 msgid "The foundership request from %1 has been declined."
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:132
+#: html/user/team_founder_transfer_action.php:140
 msgid "There were no foundership requests."
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:136
+#: html/user/team_founder_transfer_action.php:144
 msgid "undefined action %1"
 msgstr ""
 
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
+#: html/user/team_founder_transfer_action.php:147
+#: html/user/team_founder_transfer_form.php:85
 msgid "Return to team page"
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:30
+#: html/user/team_founder_transfer_form.php:30
 msgid "You need to be a member of a team to access this page."
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:33
+#: html/user/team_founder_transfer_form.php:33
 msgid "Request foundership of %1"
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:40
+#: html/user/team_founder_transfer_form.php:40
 msgid "You are now founder of team %1."
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:46
+#: html/user/team_founder_transfer_form.php:46
 msgid "You requested the foundership of %1 on %2."
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:49
+#: html/user/team_founder_transfer_form.php:49
 msgid ""
 "60 days have elapsed since your request, and the founder has not responded. "
 "You may now assume foundership by clicking here:"
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:52
+#: html/user/team_founder_transfer_form.php:52
 msgid "Assume foundership"
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:56
+#: html/user/team_founder_transfer_form.php:56
 msgid ""
 "The founder was notified of your request. If he/she does not respond by %1 "
 "you will be given an option to become founder."
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:62
+#: html/user/team_founder_transfer_form.php:62
 msgid ""
 "If the team founder is not active and you want to assume the role of "
 "founder, click the button below. The current founder will be sent an email "
@@ -5902,204 +5977,250 @@ msgid ""
 "                       Are you sure you want to request foundership?"
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:67
+#: html/user/team_founder_transfer_form.php:67
 msgid "Request foundership"
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:76
+#: html/user/team_founder_transfer_form.php:76
 msgid "Founder change has already been requested by %1 on %2."
 msgstr ""
 
-#: ../user/team_founder_transfer_form.php:79
+#: html/user/team_founder_transfer_form.php:79
 msgid ""
 "A foundership change was requested during the last 90 days, so new requests "
 "are not allowed. Please try again later."
 msgstr ""
 
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
+#: html/user/team_join_action.php:34 html/user/team_join_form.php:31
+#: html/user/team_join.php:34
 msgid "The team %1 is not joinable."
 msgstr ""
 
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
+#: html/user/team_join_action.php:37 html/user/team_join.php:37
 msgid "Already a member"
 msgstr ""
 
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
+#: html/user/team_join_action.php:38 html/user/team_join.php:38
 msgid "You are already a member of %1."
 msgstr ""
 
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr ""
-
-#: ../user/team_join_action.php:42
+#: html/user/team_join_action.php:42
 msgid "Joined %1"
 msgstr ""
 
-#: ../user/team_join_action.php:43
+#: html/user/team_join_action.php:43
 msgid "You have joined %1."
 msgstr ""
 
-#: ../user/team_join_form.php:34
-msgid "Join %1"
+#: html/user/team_join_action.php:45 html/user/team_join.php:44
+msgid "Couldn't join team - please try again later."
 msgstr ""
 
-#: ../user/team_join_form.php:35
+#: html/user/team_join_form.php:35
 msgid "Please note:"
 msgstr ""
 
-#: ../user/team_join_form.php:37
+#: html/user/team_join_form.php:37
 msgid "Joining a team gives its founder access to your email address."
 msgstr ""
 
-#: ../user/team_join_form.php:38
+#: html/user/team_join_form.php:38
 msgid "Joining a team does not affect your account's credit."
 msgstr ""
 
-#: ../user/team_join_form.php:45
+#: html/user/team_join_form.php:45
 msgid "Join team"
 msgstr ""
 
-#: ../user/team_lookup.php:86
+#: html/user/team_lookup.php:88
 msgid "Search Results"
 msgstr ""
 
-#: ../user/team_lookup.php:88
+#: html/user/team_lookup.php:90
 msgid "Search results for '%1'"
 msgstr ""
 
-#: ../user/team_lookup.php:90
+#: html/user/team_lookup.php:92
 msgid "You may view these teams' members, statistics, and information."
 msgstr ""
 
-#: ../user/team_lookup.php:100
+#: html/user/team_lookup.php:102
 msgid "More than 100 teams match your search. The first 100 are shown."
 msgstr ""
 
-#: ../user/team_lookup.php:106
+#: html/user/team_lookup.php:108
 msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may %"
-"2create a team%3 yourself."
+"End of results. %1 If you cannot find the team you are looking for, you may "
+"%2create a team%3 yourself."
 msgstr ""
 
-#: ../user/team_manage.php:28
+#: html/user/team_manage.php:28
 msgid "Team administration for %1"
 msgstr ""
 
-#: ../user/team_manage.php:31
+#: html/user/team_manage.php:31
 msgid "Edit team info"
 msgstr ""
 
-#: ../user/team_manage.php:32
+#: html/user/team_manage.php:32
 msgid "Change team name, URL, description, type, or country"
 msgstr ""
 
-#: ../user/team_manage.php:34
+#: html/user/team_manage.php:35
 msgid "Member list:"
 msgstr ""
 
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
+#: html/user/team_manage.php:36 html/user/team_manage.php:41
 msgid "HTML"
 msgstr ""
 
-#: ../user/team_manage.php:36
+#: html/user/team_manage.php:37
 msgid "text"
 msgstr ""
 
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
+#: html/user/team_manage.php:38 html/user/team_manage.php:42
+msgid "XML"
 msgstr ""
 
-#: ../user/team_manage.php:38
-msgid "View change history:"
+#: html/user/team_manage.php:39
+msgid "View member info"
 msgstr ""
 
-#: ../user/team_manage.php:40
-msgid "XML"
+#: html/user/team_manage.php:40
+msgid "View change history:"
 msgstr ""
 
-#: ../user/team_manage.php:41
+#: html/user/team_manage.php:43
 msgid "See when members joined or quit this team"
 msgstr ""
 
-#: ../user/team_manage.php:52
+#: html/user/team_manage.php:54
 msgid "Respond to foundership request."
 msgstr ""
 
-#: ../user/team_manage.php:52
+#: html/user/team_manage.php:54
 msgid "If you don't respond by %1, %2 may assume foundership of this team."
 msgstr ""
 
-#: ../user/team_manage.php:57
+#: html/user/team_manage.php:59
 msgid "Remove inactive or unwanted members from this team"
 msgstr ""
 
-#: ../user/team_manage.php:59
+#: html/user/team_manage.php:61
 msgid "Transfer foundership to another member"
 msgstr ""
 
-#: ../user/team_manage.php:60
+#: html/user/team_manage.php:62
 msgid "Add/remove Team Admins"
 msgstr ""
 
-#: ../user/team_manage.php:61
+#: html/user/team_manage.php:63
 msgid "Give selected team members Team Admin privileges"
 msgstr ""
 
-#: ../user/team_manage.php:63
+#: html/user/team_manage.php:65
 msgid "Remove team"
 msgstr ""
 
-#: ../user/team_manage.php:64
+#: html/user/team_manage.php:66
 msgid "Allowed only if team has no members"
 msgstr ""
 
-#: ../user/team_manage.php:66
+#: html/user/team_manage.php:68
 msgid "Create or manage a team message board"
 msgstr ""
 
-#: ../user/team_manage.php:73
+#: html/user/team_manage.php:75
 msgid ""
 "To have this team created on all BOINC projects (current and future) you can "
 "make it into a %1BOINC-wide team%2."
 msgstr ""
 
-#: ../user/team_manage.php:75
+#: html/user/team_manage.php:77
 msgid ""
 "Team admins are encouraged to join and participate in the Google %1boinc-"
 "team-founders%2 group."
 msgstr ""
 
-#: ../user/team_manage.php:91
+#: html/user/team_manage.php:93
 msgid "Can't delete non-empty team"
 msgstr ""
 
-#: ../user/team_manage.php:95
+#: html/user/team_manage.php:97
 msgid "Team %1 deleted"
 msgstr ""
 
-#: ../user/team_members.php:38
+#: html/user/team_members.php:38
 msgid "Limit exceeded:  Can only display the first 1000 members."
 msgstr ""
 
-#: ../user/team_members.php:51
-msgid "Members of %1"
+#: html/user/team.php:29
+msgid "%1 participants may form %2teams%3."
+msgstr ""
+
+#: html/user/team.php:31
+msgid ""
+"You may belong to only one team. You can join or quit a team at any time."
+msgstr ""
+
+#: html/user/team.php:33
+msgid "Each team has a %1founder%2 who may:"
+msgstr ""
+
+#: html/user/team.php:35
+msgid "edit the team's name and description"
+msgstr ""
+
+#: html/user/team.php:36
+msgid "add or remove team admins"
+msgstr ""
+
+#: html/user/team.php:37
+msgid "remove members from the team"
+msgstr ""
+
+#: html/user/team.php:38
+msgid "disband a team if it has no members"
+msgstr ""
+
+#: html/user/team.php:41
+msgid "To join a team, visit its team page and click %1Join this team%2."
+msgstr ""
+
+#: html/user/team.php:42 html/user/team_search.php:203
+msgid "Find a team"
+msgstr ""
+
+#: html/user/team.php:49
+msgid "All teams"
+msgstr ""
+
+#: html/user/team.php:53
+msgid "%1 teams"
+msgstr ""
+
+#: html/user/team.php:59
+msgid "Create a new team"
+msgstr ""
+
+#: html/user/team.php:60
+msgid ""
+"If you cannot find a team that is right for you, you can %1create a team%2."
 msgstr ""
 
-#: ../user/team_quit_action.php:34
+#: html/user/team_quit_action.php:34
 msgid "Unable to quit team"
 msgstr ""
 
-#: ../user/team_quit_action.php:35
+#: html/user/team_quit_action.php:35
 msgid "Team doesn't exist, or you don't belong to it."
 msgstr ""
 
-#: ../user/team_quit_form.php:33
+#: html/user/team_quit_form.php:33
 msgid "Quit %1"
 msgstr ""
 
-#: ../user/team_quit_form.php:34
+#: html/user/team_quit_form.php:34
 msgid ""
 "<strong>Please note before quitting a team:</strong>\n"
 "         <ul>\n"
@@ -6110,248 +6231,253 @@ msgid ""
 "         </ul>"
 msgstr ""
 
-#: ../user/team_quit_form.php:42
+#: html/user/team_quit_form.php:42
 msgid "Quit Team"
 msgstr ""
 
-#: ../user/team_remove_inactive_action.php:33
+#: html/user/team_remove_inactive_action.php:33
 msgid "Removing users from %1"
 msgstr ""
 
-#: ../user/team_remove_inactive_action.php:41
+#: html/user/team_remove_inactive_action.php:41
 msgid "%1 is not a member of %2"
 msgstr ""
 
-#: ../user/team_remove_inactive_action.php:44
+#: html/user/team_remove_inactive_action.php:44
 msgid "%1 has been removed"
 msgstr ""
 
-#: ../user/team_remove_inactive_form.php:34
+#: html/user/team_remove_inactive_form.php:34
 msgid "Remove members from %1"
 msgstr ""
 
-#: ../user/team_remove_inactive_form.php:41
+#: html/user/team_remove_inactive_form.php:42
 msgid "Remove?"
 msgstr ""
 
-#: ../user/team_remove_inactive_form.php:42
+#: html/user/team_remove_inactive_form.php:43
 msgid "Name (ID)"
 msgstr ""
 
-#: ../user/team_remove_inactive_form.php:67
+#: html/user/team_remove_inactive_form.php:68
 msgid "No members are eligible for removal."
 msgstr ""
 
-#: ../user/team_remove_inactive_form.php:70
+#: html/user/team_remove_inactive_form.php:71
 msgid "Remove users"
 msgstr ""
 
-#: ../user/team_search.php:76
+#: html/user/team_search.php:76
 msgid "Team name"
 msgstr ""
 
-#: ../user/team_search.php:113
+#: html/user/team_search.php:79
+msgid "Validated?"
+msgstr ""
+
+#: html/user/team_search.php:115
 msgid "Team search results"
 msgstr ""
 
-#: ../user/team_search.php:115
+#: html/user/team_search.php:117
 msgid "No teams were found matching your criteria. Try another search."
 msgstr ""
 
-#: ../user/team_search.php:117
+#: html/user/team_search.php:119
 msgid "Or you can %1create a new team%2."
 msgstr ""
 
-#: ../user/team_search.php:121
+#: html/user/team_search.php:123
 msgid ""
 "The following teams match one or more of your search criteria.\n"
 "            To join a team, click its name to go to the team page,\n"
 "               then click %1Join this team%2."
 msgstr ""
 
-#: ../user/team_search.php:128
+#: html/user/team_search.php:130
 msgid "Change your search"
 msgstr ""
 
-#: ../user/team_search.php:202
+#: html/user/team_search.php:204
 msgid ""
 "You can team up with other people with similar interests, or from the same "
 "country, company, or school."
 msgstr ""
 
-#: ../user/team_search.php:204
+#: html/user/team_search.php:206
 msgid "Use this form to find teams that might be right for you."
 msgstr ""
 
-#: ../user/team_search.php:209
+#: html/user/team_search.php:211
 msgid "%1I'm not interested%2 in joining a team right now."
 msgstr ""
 
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
+#: html/user/top_hosts.php:67 html/user/top_teams.php:102
+#: html/user/top_users.php:105
 msgid "Limit exceeded - Sorry, first %1 items only"
 msgstr ""
 
 #. Now display what we've got (either gotten from cache or from DB)
 #.
-#: ../user/top_hosts.php:82
+#: html/user/top_hosts.php:82
 msgid "Top hosts"
 msgstr ""
 
 #. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
+#.
+#: html/user/top_teams.php:108
 msgid "Top %1 teams"
 msgstr ""
 
-#: ../user/top_teams.php:110
+#: html/user/top_teams.php:111
 msgid "There are no %1 teams"
 msgstr ""
 
-#: ../user/top_users.php:64
+#: html/user/top_users.php:57
 msgid "Participant since"
 msgstr ""
 
-#: ../user/uotd.php:31
+#: html/user/uotd.php:32
 msgid "No user of the day has been chosen."
 msgstr ""
 
-#: ../user/uotd.php:35
+#: html/user/uotd.php:36
 msgid "User of the Day for %1: %2"
 msgstr ""
 
-#: ../user/user_search.php:51
+#: html/user/user_search.php:51
 msgid "Filters"
 msgstr ""
 
-#: ../user/user_search.php:52
+#: html/user/user_search.php:53
 msgid "User name starts with"
 msgstr ""
 
-#: ../user/user_search.php:53
+#: html/user/user_search.php:56
 msgid "Any"
 msgstr ""
 
-#: ../user/user_search.php:56
+#: html/user/user_search.php:59
 msgid "With profile?"
 msgstr ""
 
-#: ../user/user_search.php:57 ../user/user_search.php:62
+#: html/user/user_search.php:60 html/user/user_search.php:65
 msgid "Either"
 msgstr ""
 
-#: ../user/user_search.php:61
+#: html/user/user_search.php:64
 msgid "On a team?"
 msgstr ""
 
-#: ../user/user_search.php:66
+#: html/user/user_search.php:69
 msgid "Ordering"
 msgstr ""
 
-#: ../user/user_search.php:67
+#: html/user/user_search.php:70
 msgid "Decreasing sign-up time"
 msgstr ""
 
-#: ../user/user_search.php:68
+#: html/user/user_search.php:71
 msgid "Decreasing average credit"
 msgstr ""
 
-#: ../user/user_search.php:69
+#: html/user/user_search.php:72
 msgid "Decreasing total credit"
 msgstr ""
 
-#: ../user/user_search.php:84
+#: html/user/user_search.php:87
 msgid "search string must be at least 3 characters"
 msgstr ""
 
-#: ../user/user_search.php:118
+#: html/user/user_search.php:121
 msgid "User search results"
 msgstr ""
 
-#: ../user/user_search.php:125
+#: html/user/user_search.php:133
 msgid "Joined"
 msgstr ""
 
-#: ../user/user_search.php:133
+#: html/user/user_search.php:143
 msgid "No users match your search criteria."
 msgstr ""
 
-#: ../user/userw.php:35
+#: html/user/userw.php:35
 msgid "User not found!"
 msgstr ""
 
-#: ../user/userw.php:44
+#: html/user/userw.php:44
 msgid "Account Data<br/>for %1<br/>Time:"
 msgstr ""
 
-#: ../user/userw.php:47
+#: html/user/userw.php:47
 msgid "Team:"
 msgstr ""
 
-#: ../user/userw.php:48
+#: html/user/userw.php:48
 msgid "Team TotCred:"
 msgstr ""
 
-#: ../user/userw.php:49
+#: html/user/userw.php:49
 msgid "Team AvgCred:"
 msgstr ""
 
-#: ../user/userw.php:51
+#: html/user/userw.php:51
 msgid "Team: None"
 msgstr ""
 
-#: ../user/validate_email_addr.php:30
+#: html/user/validate_email_addr.php:30
 msgid "Validate BOINC email address"
 msgstr ""
 
-#: ../user/validate_email_addr.php:31
+#: html/user/validate_email_addr.php:31
 msgid ""
 "Please visit the following link to validate the email address of your %1 "
 "account:"
 msgstr ""
 
-#: ../user/validate_email_addr.php:34
+#: html/user/validate_email_addr.php:34
 msgid "Validate email sent"
 msgstr ""
 
-#: ../user/validate_email_addr.php:35
+#: html/user/validate_email_addr.php:35
 msgid ""
 "An email has been sent to %1. Visit the link it contains to validate your "
 "email address."
 msgstr ""
 
-#: ../user/validate_email_addr.php:44
+#: html/user/validate_email_addr.php:44
 msgid "No such user."
 msgstr ""
 
-#: ../user/validate_email_addr.php:49
+#: html/user/validate_email_addr.php:49
 msgid "Error in URL data - can't validate email address"
 msgstr ""
 
-#: ../user/validate_email_addr.php:54
+#: html/user/validate_email_addr.php:54
 msgid "Database update failed - please try again later."
 msgstr ""
 
-#: ../user/validate_email_addr.php:57
+#: html/user/validate_email_addr.php:57
 msgid "Validate email address"
 msgstr ""
 
-#: ../user/validate_email_addr.php:58
+#: html/user/validate_email_addr.php:58
 msgid "The email address of your account has been validated."
 msgstr ""
 
-#: ../user/view_profile.php:38
+#: html/user/view_profile.php:38
 msgid "This user has no profile"
 msgstr ""
 
-#: ../user/view_profile.php:56
+#: html/user/view_profile.php:56
 msgid "Profile: %1"
 msgstr ""
 
-#: ../user/view_profile.php:65
+#: html/user/view_profile.php:65
 msgid "Account data"
 msgstr ""
 
-#: ../user/weak_auth.php:52
+#: html/user/weak_auth.php:52
 msgid ""
 "You can access your account either by using your email address and "
 "password,\n"
@@ -6359,15 +6485,15 @@ msgid ""
 "    Your account key is:"
 msgstr ""
 
-#: ../user/weak_auth.php:57
+#: html/user/weak_auth.php:57
 msgid "This key can be used to:"
 msgstr ""
 
-#: ../user/weak_auth.php:59
+#: html/user/weak_auth.php:59
 msgid "log in to your account on the web"
 msgstr ""
 
-#: ../user/weak_auth.php:61
+#: html/user/weak_auth.php:61
 msgid ""
 "to attach a computer to your account without using the BOINC Manager.\n"
 "       To do so, install BOINC,\n"
@@ -6375,11 +6501,11 @@ msgid ""
 "       data directory, and set its contents to:"
 msgstr ""
 
-#: ../user/weak_auth.php:73
+#: html/user/weak_auth.php:73
 msgid "Weak account key"
 msgstr ""
 
-#: ../user/weak_auth.php:74
+#: html/user/weak_auth.php:74
 msgid ""
 "Your 'weak account key' can be used to attach computers to your account\n"
 "    as described above, but cannot be used to log in to your account or "
@@ -6389,91 +6515,83 @@ msgid ""
 "    Your weak account key is:"
 msgstr ""
 
-#: ../user/weak_auth.php:81
+#: html/user/weak_auth.php:81
 msgid ""
 "If you change your password, your weak account key changes, and your "
 "previous weak account key becomes invalid."
 msgstr ""
 
-#: ../user/workunit.php:32
+#: html/user/workunit.php:32
 msgid "can't find workunit"
 msgstr ""
 
-#: ../user/workunit.php:35
+#: html/user/workunit.php:35
 msgid "Workunit %1"
 msgstr ""
 
-#: ../user/workunit.php:40
+#: html/user/workunit.php:40
 msgid "application"
 msgstr ""
 
-#: ../user/workunit.php:43
+#: html/user/workunit.php:43
 msgid "canonical result"
 msgstr ""
 
-#: ../user/workunit.php:46
+#: html/user/workunit.php:46
 msgid "granted credit"
 msgstr ""
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
 msgid "Tasks in progress"
 msgstr ""
 
-#: ../user/workunit.php:55
+#: html/user/workunit.php:55
 msgid "suppressed pending completion"
 msgstr ""
 
-#: ../user/workunit.php:58
+#: html/user/workunit.php:58
 msgid "minimum quorum"
 msgstr ""
 
-#: ../user/workunit.php:59
+#: html/user/workunit.php:59
 msgid "initial replication"
 msgstr ""
 
-#: ../user/workunit.php:60
+#: html/user/workunit.php:60
 msgid "max # of error/total/success tasks"
 msgstr ""
 
-#: ../user/workunit.php:64
+#: html/user/workunit.php:64
 msgid "errors"
 msgstr ""
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "validation"
 msgstr ""
 
-#: ../user/workunit.php:67
+#: html/user/workunit.php:67
 msgid "Pending"
 msgstr ""
 
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr ""
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr ""
-
-#: ../project.sample/project.inc:75
+#: html/project.sample/project.inc:95
 msgid "Generated"
 msgstr ""
 
-#: ../project.sample/project.inc:106
+#: html/project.sample/project.inc:126
 msgid "Your personal background."
 msgstr ""
 
-#: ../project.sample/project.inc:110
+#: html/project.sample/project.inc:130
 msgid ""
 "Tell us about yourself. You could tell us where you're from, your age, "
 "occupation, hobbies, or anything else about yourself."
 msgstr ""
 
-#: ../project.sample/project.inc:114
+#: html/project.sample/project.inc:134
 msgid "Your opinions about %1"
 msgstr ""
 
-#: ../project.sample/project.inc:118
+#: html/project.sample/project.inc:138
 msgid ""
 "Tell us your thoughts about %1<ol>\n"
 "    <li>Why do you run %1?\n"
@@ -6482,35 +6600,58 @@ msgid ""
 "    </ol>"
 msgstr ""
 
-#: ../project.sample/project_specific_prefs.inc:53
+#: html/project.sample/project_specific_prefs.inc:57
 msgid "Color scheme for graphics"
 msgstr ""
 
-#: ../project.sample/project_specific_prefs.inc:55
+#: html/project.sample/project_specific_prefs.inc:59
 #, no-php-format
 msgid "Maximum CPU % for graphics%10 ... 100%2"
 msgstr ""
 
-#: ../project.sample/project_specific_prefs.inc:56
+#: html/project.sample/project_specific_prefs.inc:60
 msgid "Run only the selected applications"
 msgstr ""
 
-#: ../project.sample/project_specific_prefs.inc:57
+#: html/project.sample/project_specific_prefs.inc:61
 msgid ""
 "Only get tasks for certain applications. Useful to focus on particular "
 "applications, or to exclude them."
 msgstr ""
 
-#: ../project.sample/project_specific_prefs.inc:58
+#: html/project.sample/project_specific_prefs.inc:62
 msgid ""
 "If no work for selected applications is available, accept work from other "
 "applications?"
 msgstr ""
 
-#: ../project.sample/project_specific_prefs.inc:59
+#: html/project.sample/project_specific_prefs.inc:63
 msgid "Use faster non-graphical applications if available?"
 msgstr ""
 
-#: ../project.sample/project_specific_prefs.inc:90
+#: html/project.sample/project_specific_prefs.inc:94
 msgid "(all applications)"
 msgstr ""
+
+#: html/project.sample/project_specific_prefs.inc:112
+#: html/project.sample/project_specific_prefs.inc:123
+msgid "No limit"
+msgstr ""
+
+#: html/project.sample/project_specific_prefs.inc:169
+msgid "Max # of jobs for this project"
+msgstr ""
+
+#: html/project.sample/project_specific_prefs.inc:176
+msgid "Max # of CPUs for this project"
+msgstr ""
+
+#: html/project.sample/project_specific_prefs.inc:255
+#: html/project.sample/project_specific_prefs.inc:275
+msgid "Max # jobs"
+msgstr ""
+
+#: html/project.sample/project_specific_prefs.inc:258
+#: html/project.sample/project_specific_prefs.inc:278
+msgid "Max # CPUs"
+msgstr ""
diff --git a/locale/templates/BOINC-Setup.pot b/locale/templates/BOINC-Setup.pot
index 8846f3b..0faab9d 100644
--- a/locale/templates/BOINC-Setup.pot
+++ b/locale/templates/BOINC-Setup.pot
@@ -1,39 +1,39 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+#
+# This file is distributed under the same license as BOINC.
 #
-#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"Project-Id-Version: BOINC 539caba937f5f02b5d46af9244ac276c68fa1f3b\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"Last-Translator: Generated automatically from source files\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-
-#: Installer.cpp:124
+"X-Poedit-SourceCharset: utf-8\n"
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
 msgstr ""
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr ""
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr ""
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr ""
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be "
@@ -43,26 +43,27 @@ msgid ""
 "on this Mac?"
 msgstr ""
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr ""
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr ""
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr ""
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr ""
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -70,27 +71,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr ""
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr ""
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr ""
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr ""
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr ""
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -102,7 +103,7 @@ msgid ""
 "\"%s\"."
 msgstr ""
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you "
@@ -110,10 +111,10 @@ msgid ""
 "\n"
 msgstr ""
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr ""
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr ""
diff --git a/locale/templates/BOINC-Web.pot b/locale/templates/BOINC-Web.pot
index 71419d8..975e0a9 100644
--- a/locale/templates/BOINC-Web.pot
+++ b/locale/templates/BOINC-Web.pot
@@ -1,374 +1,482 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 #
 # This file is distributed under the same license as BOINC.
 #
-# FileID  : $Id$
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: BOINC $Id$\n"
+"Project-Id-Version: BOINC 539caba937f5f02b5d46af9244ac276c68fa1f3b\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
 "Last-Translator: Generated automatically from source files\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr ""
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr ""
+
+#
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr ""
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr ""
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr ""
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr ""
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr ""
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr ""
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr ""
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr ""
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr ""
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr ""
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr ""
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr ""
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr ""
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr ""
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have "
 "the permission of its owner."
 msgstr ""
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr ""
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr ""
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr ""
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr ""
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr ""
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr ""
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr ""
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr ""
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who "
-"can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr ""
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system. "
-"Skype is free (both the software and the calls).  If you don't already have "
-"Skype, please %sdownload and install it now%s.  When you're finished, return "
-"to this page."
+#: doc/index.php:29
+msgid "Computing power"
 msgstr ""
 
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
+#: doc/index.php:37
+msgid "Top 100 volunteers"
 msgstr ""
 
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
+#: doc/index.php:38
+msgid "Statistics"
 msgstr ""
 
-#: help.php:47
-msgid "Be a Help Volunteer"
+#: doc/index.php:67
+msgid "24-hour average:"
 msgstr ""
 
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
+#: doc/index.php:67
+msgid "PetaFLOPS."
 msgstr ""
 
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+#: doc/index.php:69
+msgid "Active:"
 msgstr ""
 
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
+#: doc/index.php:69
+msgid "volunteers,"
 msgstr ""
 
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
+#: doc/index.php:69
+msgid "computers.\n"
 msgstr ""
 
-#: index.php:24
-msgid "Computing power"
+#: doc/index.php:76
+msgid "News"
 msgstr ""
 
-#: index.php:26
-msgid "Top 100 volunteers"
+#: doc/index.php:81
+msgid "Database not available; please try again later."
 msgstr ""
 
-#: index.php:27
-msgid "Statistics"
+#. "Volunteer" is used as a verb
+#: doc/index.php:90
+msgid "Volunteer"
 msgstr ""
 
-#: index.php:55
-msgid "Active:"
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure "
+"diseases, study global warming, discover pulsars, and do many other types of "
+"scientific research.  It's safe, secure, and easy:"
 msgstr ""
 
-#: index.php:55
-msgid "volunteers,"
+#: doc/index.php:95
+msgid "Download"
 msgstr ""
 
-#: index.php:55
-msgid "computers.\n"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
 msgstr ""
 
-#: index.php:56
-msgid "24-hour average:"
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
 msgstr ""
 
-#: index.php:56
-msgid "PetaFLOPS."
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
 msgstr ""
 
-#: index.php:68
-msgid "News"
+#: doc/index.php:116
+msgid "Learn more:"
 msgstr ""
 
-#. "Volunteer" is used as a verb
-#: index.php:89
-msgid "Volunteer"
+#: doc/index.php:119
+msgid "Message boards"
 msgstr ""
 
-#: index.php:92
-msgid "Download"
+#: doc/index.php:120
+msgid "Projects"
 msgstr ""
 
-#: index.php:94 index.php:138
-msgid "Documentation"
+#: doc/index.php:121
+msgid "Manual"
 msgstr ""
 
-#: index.php:95
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr ""
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr ""
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure "
-"diseases, study global warming, discover pulsars, and do many other types of "
-"scientific research.  It's safe, secure, and easy:"
+#: doc/index.php:129
+msgid "Other ways to help:"
 msgstr ""
 
-#: index.php:103
-msgid "Choose projects"
+#: doc/index.php:132
+msgid "Overview"
 msgstr ""
 
-#: index.php:104
-msgid "Download BOINC software"
+#: doc/index.php:133
+msgid "Translate"
 msgstr ""
 
-#: index.php:105
-msgid "Enter an email address and password."
+#: doc/index.php:134
+msgid "Test"
 msgstr ""
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as %"
-"sGridRepublic%s or %sBAM!%s. "
+#: doc/index.php:135
+msgid "Document"
 msgstr ""
 
-#: index.php:136
-msgid "Compute with BOINC"
+#: doc/index.php:136
+msgid "Publicize"
 msgstr ""
 
-#: index.php:139
-msgid "Software updates"
+#: doc/index.php:137
+msgid "Report bugs"
 msgstr ""
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr ""
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr ""
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr ""
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr ""
 
-#: index.php:167
-msgid "About BOINC"
+#: doc/index.php:164
+msgid "Documentation"
 msgstr ""
 
-#: index.php:181
-msgid "Message boards"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr ""
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr ""
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
 msgstr ""
 
-#: index.php:182
+#: doc/index.php:179
+msgid "Source code"
+msgstr ""
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr ""
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr ""
+
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr ""
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr ""
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr ""
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr ""
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr ""
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr ""
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr ""
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr ""
 
-#: index.php:184
-msgid "Source code"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr ""
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr ""
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr ""
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who "
+"can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr ""
+
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr ""
+
+#: doc/help.php:16
+msgid "by email"
+msgstr ""
+
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you "
+"don't already have Skype, you can %3download and install it now%4.  When "
+"you're finished, return to this page."
+msgstr ""
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr ""
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr ""
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr ""
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr ""
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
 msgstr ""
 
-#: index.php:186
-msgid "APIs for add-on software"
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
 msgstr ""
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
 msgstr ""
 
-#: projects.inc:19
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr ""
 
-#: projects.inc:24
-msgid "Stanford University"
+#: doc/projects.inc:24
+msgid "Caltech"
 msgstr ""
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr ""
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
 msgstr ""
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr ""
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr ""
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must "
 "buy a sensor to participate."
 msgstr ""
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr ""
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr ""
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr ""
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
 msgstr ""
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr ""
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -376,55 +484,55 @@ msgid ""
 "conversations."
 msgstr ""
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr ""
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr ""
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr ""
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr ""
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr ""
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr ""
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr ""
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available "
 "medication. We therefore urgently need to discover new drugs, targeting new "
-"proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
+"proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
 msgstr ""
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr ""
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr ""
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -433,15 +541,15 @@ msgid ""
 "the three-dimensions structure of biologically important proteins."
 msgstr ""
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr ""
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr ""
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -449,31 +557,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr ""
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr ""
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr ""
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying "
 "evolutionary relationships using DNA and protein sequence data."
 msgstr ""
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr ""
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr ""
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria "
 "are an important tool for malaria control. They can be used to determine "
@@ -484,15 +592,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr ""
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr ""
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr ""
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -502,19 +610,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr ""
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr ""
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr ""
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr ""
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -526,25 +634,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr ""
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr ""
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr ""
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr ""
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr ""
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -554,11 +653,11 @@ msgid ""
 "better understand the distant universe."
 msgstr ""
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr ""
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -566,57 +665,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr ""
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
 msgstr ""
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr ""
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
 msgstr ""
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr ""
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr ""
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr ""
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr ""
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr ""
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr ""
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr ""
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -626,15 +720,15 @@ msgid ""
 "simulations through the grid."
 msgstr ""
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr ""
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr ""
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -643,19 +737,19 @@ msgid ""
 "international organizations."
 msgstr ""
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr ""
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr ""
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr ""
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -664,22 +758,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr ""
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr ""
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr ""
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr ""
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle "
 "physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new "
@@ -687,19 +781,19 @@ msgid ""
 "high energy."
 msgstr ""
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr ""
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr ""
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr ""
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -708,106 +802,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr ""
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr ""
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr ""
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr ""
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research "
 "and educational projects using volunteer computing and citizen science."
 msgstr ""
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr ""
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr ""
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr ""
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
 msgstr ""
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr ""
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr ""
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr ""
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr ""
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr ""
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr ""
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered "
-"by the project include math, physics, biology, etc."
-msgstr ""
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr ""
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr ""
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr ""
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr ""
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr ""
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr ""
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr ""
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research "
@@ -815,20 +890,20 @@ msgid ""
 "clean water and many more."
 msgstr ""
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr ""
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr ""
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr ""
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -838,64 +913,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr ""
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr ""
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr ""
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr ""
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr ""
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr ""
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr ""
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr ""
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr ""
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr ""
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr ""
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr ""
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr ""
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr ""
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -905,56 +980,60 @@ msgid ""
 "hundreds of digits long."
 msgstr ""
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr ""
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr ""
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr ""
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr ""
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr ""
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr ""
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr ""
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr ""
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr ""
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr ""
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
+#: html/inc/news.inc:41
+msgid "Discuss"
 msgstr ""
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr ""
diff --git a/locale/templates/header-generic-web.txt b/locale/templates/header-generic-web.txt
new file mode 100644
index 0000000..b2ed5bf
--- /dev/null
+++ b/locale/templates/header-generic-web.txt
@@ -0,0 +1,8 @@
+
+msgid "LANG_NAME_NATIVE"
+msgstr ""
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr ""
+
+#
diff --git a/locale/templates/header.txt b/locale/templates/header.txt
new file mode 100644
index 0000000..23e2cbc
--- /dev/null
+++ b/locale/templates/header.txt
@@ -0,0 +1,15 @@
+# BOINC @TMPL_NAME@ localization template
+# Copyright (C) @YEAR@ University of California
+#
+# This file is distributed under the same license as BOINC.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC @VERSION@\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: @DATE@\n"
+"Last-Translator: Generated automatically from source files\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-SourceCharset: utf-8\n"
diff --git a/locale/th/BOINC-Setup.mo b/locale/th/BOINC-Setup.mo
new file mode 100644
index 0000000..545a655
Binary files /dev/null and b/locale/th/BOINC-Setup.mo differ
diff --git a/locale/th/BOINC-Setup.po b/locale/th/BOINC-Setup.po
new file mode 100644
index 0000000..1e7cb3e
--- /dev/null
+++ b/locale/th/BOINC-Setup.po
@@ -0,0 +1,124 @@
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
+# 
+# Translators:
+# Natthaviroj Kaephukhieo <hs3pln at gmail.com>, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-21 08:23+0000\n"
+"Last-Translator: Natthaviroj Kaephukhieo <hs3pln at gmail.com>\n"
+"Language-Team: Thai (http://www.transifex.com/boinc/boinc/language/th/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: th\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: mac_installer/Installer.cpp:135
+#, c-format
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "ขออภัย, รุ่นนี้ของ %s ต้องใช้ระบบ 10.6 หรือสูงกว่า"
+
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
+msgid "Yes"
+msgstr "ใช่"
+
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
+msgid "No"
+msgstr "ไม่ใช่"
+
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
+msgid "Should BOINC run even when no user is logged in?"
+msgstr "BOINC ควรจะทำงานแม้ในขณะที่ผู้ใช้ไม่ได้เข้าสู่ระบบ?"
+
+#: mac_installer/PostInstall.cpp:1375
+#, c-format
+msgid ""
+"Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
+"\n"
+"Do you also want non-administrative users to be able to run and control %s on this Mac?"
+msgstr "ผู้ใช้ที่ได้รับอนุญาตในการจัดการคอมพิวเตอร์เครื่องนี้จะได้รับอนุญาตโดยอัตโนมัติในการทำงานและควบคุม %s\n\nคุณยังต้องการให้ผู้ที่ไม่ใช่ผู้ดูแลสามารถเรียกใช้และควบคุม %s บน Mac เครื่องนี้หรือไม่?"
+
+#: mac_installer/PostInstall.cpp:1403
+#, c-format
+msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
+msgstr "คุณต้องการที่จะตั้ง %s เป็นสกรีนเซฟเวอร์สำหรับผู้ใช้ทั้งหมด %s คนบน Mac เครื่องนี้ใช่หรือไม่?"
+
+#: mac_installer/uninstall.cpp:80
+msgid "OK"
+msgstr "ตกลง"
+
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
+msgid "Permission error after relaunch"
+msgstr "การอนุญาตมีข้อผิดพลาดหลังจากเปิดอีกครั้ง"
+
+#: mac_installer/uninstall.cpp:139
+msgid ""
+"Removal may take several minutes.\n"
+"Please be patient."
+msgstr "การลบอาจใช้เวลาหลายนาที\nกรุณารอสักครู่"
+
+#: mac_installer/uninstall.cpp:156
+#, c-format
+msgid ""
+"Are you sure you want to completely remove %s from your computer?\n"
+"\n"
+"This will remove the executables but will not touch %s data files."
+msgstr "คุณแน่ใจหรือไม่ว่าคุณต้องการที่จะลบ %s ทั้งหมดออกจากคอมพิวเตอร์ของคุณ\n\nนี่จะลบ executables แต่จะไม่ได้แตะต้องไฟล์ข้อมูล %s"
+
+#: mac_installer/uninstall.cpp:163
+#, c-format
+msgid "Canceled: %s has not been touched."
+msgstr "ยกเลิก: %s ยังไม่ได้รับการสัมผัส"
+
+#: mac_installer/uninstall.cpp:174
+#, c-format
+msgid "An error occurred: error code %d"
+msgstr "เกิดข้อผิดพลาด: รหัสข้อผิดพลาด %d"
+
+#: mac_installer/uninstall.cpp:230
+msgid "name  of user"
+msgstr "ชื่อของผู้ใช้"
+
+#: mac_installer/uninstall.cpp:272
+msgid ""
+"Do you also want to remove VirtualBox from your computer?\n"
+"(VirtualBox was installed along with BOINC.)"
+msgstr "คุณยังต้องการที่จะลบ VirtualBox ออกจากคอมพิวเตอร์ของคุณหรือไม่\n(VirtualBox ถูกติดตั้งพร้อมกับ BOINC.)"
+
+#: mac_installer/uninstall.cpp:312
+#, c-format
+msgid ""
+"Removal completed.\n"
+"\n"
+" You may want to remove the following remaining items using the Finder: \n"
+"the directory \"%s\"\n"
+"\n"
+"for each user, the file\n"
+"\"%s\"."
+msgstr "ลบเสร็จแล้ว\n\nคุณอาจต้องการที่จะลบรายการที่เหลืออยู่ โดยใช้ตัวค้นหา:\nไดเรกทอรี \"%s\"\n\nสำหรับผู้ใช้แต่ละคน\n\"%s\""
+
+#: mac_installer/uninstall.cpp:871
+#, c-format
+msgid ""
+"Enter your administrator password to completely remove %s from you computer.\n"
+"\n"
+msgstr "ป้อนรหัสผ่านผู้ดูแลระบบเพื่อลบ %s จากคอมพิวเตอร์ของคุณ\n\n"
+
+#: mac_installer/uninstall.cpp:1614
+msgid "Cancel"
+msgstr "ยกเลิก"
+
+#: mac_installer/uninstall.cpp:1615
+msgid "Continue..."
+msgstr "ต่อไป..."
diff --git a/locale/tr/BOINC-Client.mo b/locale/tr/BOINC-Client.mo
index f28f72e..ef7ccec 100644
Binary files a/locale/tr/BOINC-Client.mo and b/locale/tr/BOINC-Client.mo differ
diff --git a/locale/tr/BOINC-Client.po b/locale/tr/BOINC-Client.po
index d68821c..1132283 100644
--- a/locale/tr/BOINC-Client.po
+++ b/locale/tr/BOINC-Client.po
@@ -1,161 +1,177 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Can Demirel <aycandemirel at hotmail.com>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-09 01:15+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Turkish (http://www.transifex.com/projects/p/boinc/language/tr/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-03 17:51+0000\n"
+"Last-Translator: Can Demirel <aycandemirel at hotmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/boinc/boinc/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "Hesap yöneticisinden mesaj"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "Sunucudan mesaj"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "Bazı uygulamalar, tercihlerinizde belirttiğinizden daha fazla belleğe ihtiyaç duyuyor.  Lütfen tercihlerinizi kontrol edin."
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "Durum dosyası yazılamadı; klasör izinlerini kontrol edin"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "HTTP_PROXY ortam değişkeni mutlaka bir HTTP vekil sunucusu belirtmeli"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "Bu proje için yanlış bir internet adresi kullandınız.  Uygun olduğunda, bu projeyi kaldırıp, ardından bunu ekleyin: %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "Bu proje eski bir URL kullanıyor. Uygun olduğunda, projeyi kaldırın ve daha sonra bunu ekleyin: %s"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
 msgstr "app_info.xml dosyasında sözdizimi hatası"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
 msgstr "app_info.xml dosyasında belirtilen dosya mevcut değil:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "BOINC'in yeni bir sürümü mevcut."
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "İndir"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "CUDA sürücüsü 6.5 veya üstü ile CUDA veya OpenCL hesaplaması için kullanılamaz"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "cc_config.xml dosyasında beklenmedik metin"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "cc_config.xml dosyasında tanınmayan etiket"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "cc_config.xml dosyasında eksik başlangıç etiketi"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "cc_config.xml dosyasında tanınmayan ayarlar"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "cc_config.xml dosyasında eksik bitiş etiketi"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "Bu sorunu gidermek için yapabilecekleriniz "
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "Projenin web sitesinde Proje Tercihlerini değiştirin"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "cc_config.xml dosyanızdaki GPU hariç tutmalarını kaldırın"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "Hesap yöneticisi web sitenizdeki ayarlarınızı değiştirin"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "Hesap anahtarı geçersiz ya da mevcut değil.  Sorunu çözmek için, projeyi kaldırıp, yeniden ekleyin."
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "Hesap anahtarı geçersiz.  Sorunu çözmek için, projeyi kaldırıp, yeniden ekleyin."
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "Proje, güvenlik anahtarını değiştirdi.  Lütfen bu projeyi kaldırıp, yeniden ekleyin."
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "İşletim sisteminiz bu proje için uygun değil"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "İşlemciniz bu proje için uygun değil"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "BOINC istemci yazılımınız çok eski.  Lütfen son sürümü kurun."
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "Bilgisayarınızın özellikleri bu projeye uygun değil"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "Bilgisayarınızın GPU'sunu kullanan projeleri hesaplatmak için ekran kartı sürücüsünü son sürüme yükseltin"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "Bu projenin tüm GPU uygulamalarını kullanabilmek için, ekran kartı sürücülerinizi son sürüme yükseltin"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "NVIDIA GPU'nuzu kullanabilmek için BOINC'in yeni sürümü gerekli; lütfen mevcut sürümü yükseltin"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "Bu projedeki işleri çalıştırabilmek için, bir %s GPU gerekiyor"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "Seçtiğiniz uygulamalar için iş mevcut değil."
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "Bilgisayar tipiniz bu proje tarafından desteklemiyor"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "Daha yeni bir BOINC sürümü gerekiyor; lütfen son sürümü kurun"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "%s için işler mevcut, ancak, tercihleriniz bunları kabul etmek üzere ayarlanmamış"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "app_info.xml dosyasında bilinmeyen uygulama ismi"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "app_info.xml dosyanız, bunun kullanılabilir bir sürümüne sahip değil:"
diff --git a/locale/tr/BOINC-Drupal.po b/locale/tr/BOINC-Drupal.po
index 6b17ec5..35db1e4 100644
--- a/locale/tr/BOINC-Drupal.po
+++ b/locale/tr/BOINC-Drupal.po
@@ -2,600 +2,625 @@
 # Copyright (c) YEAR NAME <EMAIL at ADDRESS>
 # 
 # Translators:
+# Can Demirel <aycandemirel at hotmail.com>, 2016
+# Efe Egemen Sen <egemen123456 at outlook.com>, 2016
+# Emre GÜN <thondras at gmail.com>, 2015
+# ilkeryus <ilkeryus at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-05-07 12:21+0000\n"
-"PO-Revision-Date: 2015-08-01 08:24+0000\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2016-08-20 09:19+0000\n"
 "Last-Translator: Can Demirel <aycandemirel at hotmail.com>\n"
-"Language-Team: Turkish (http://www.transifex.com/projects/p/boinc/language/tr/)\n"
+"Language-Team: Turkish (http://www.transifex.com/boinc/boinc/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "E-posta adresinizle ilişkilendirilmiş bir <a href=\"@gravatar-check\">geçerli Gravatarınız</a> varsa, kullanıcı resminiz olarak kullanılacaktır."
+msgid "Reject profile"
+msgstr "Profili reddet"
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "Bir kullanıcı resimi yüklerseniz Gravatarınız gösterilmez."
+msgid "Ban user"
+msgstr "Kullanıcıyı engelle"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "E-posta adresinizle ilişkilendirilmiş bir <a href=\"@gravatar-check\">geçerli Gravatarınız</a> varsa, kullanıcı resminiz olarak kullanın."
+msgid "I'm new"
+msgstr "Yeniyim"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "Bir kullanıcı resmi yüklerseniz Gravatarınız gösterilmez."
+msgid "I'm a BOINC user"
+msgstr "BOINC kullanıcısıyım"
 
-msgid "This is not available until your profile is set up."
-msgstr "Bu, profiliniz ayarlanana kadar kullanılamaz."
+msgid "Authenticator login"
+msgstr "Kimlik doğrulayıcı girişi"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "@project, bilgisayarlarınızı kendi internet sitesi üzerinde göstersin mi?"
+msgid ""
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "Bu sitede yorum yapabilmek için @count kadar daha kredi kazanmalısınız."
 
-msgid "Click here to revoke your membership with @this_team"
-msgstr "@this_team ile üyeliğinizi iptal etmek için buraya tıklayın"
+msgid "Generic"
+msgstr "Genel"
 
-msgid "Minimum avg credit to post"
-msgstr "İleti gönderebilmek için sahip olunması gereken en az ortalama kredi"
+msgid "Home"
+msgstr "Ev"
 
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "Kurucu ve Takım Yöneticileri moderasyon izinlerine sahip olacak"
+msgid "Work"
+msgstr "İş"
 
-msgid "Notes about changes in foundership:"
-msgstr "Kurucu değişimleri hakkında notlar:"
+msgid "School"
+msgstr "Okul"
 
-msgid "Foundership can be requested by team members:"
-msgstr "Kuruculuk ekip üyeleri tarafından talep edilebilir:"
+msgid "yes"
+msgstr "evet"
 
-msgid "One request is allowed at a time"
-msgstr "Bir defada bir isteğe izin verilir"
+msgid "no"
+msgstr "hayır"
 
-msgid "Any active request must be older than 90 days"
-msgstr "Herhangi bir etkin isteğin 90 günden daha eski olması gerekir"
+msgid "Resource settings"
+msgstr "Kaynak ayarları"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "Geçerli kurucunun bir isteğine yanıt vermek için 60 günü vardır"
+msgid "Resource share"
+msgstr "Kaynak paylaşımı"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "Bir takım yöneticisi takımdan çıkarsa, takım yöneticisi olmak çıkar. Sadece tanıdığınız ve güvendiğiniz kişileri seçmenizi öneririz"
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "Bilgisayarınızın, bu projeye tahsis edilecek kaynak oranını belirler. Örneğin, 100 ve 200 kaynak payları ile iki BOINC projesine katılırsanız, ilki kaynakların üçte birini, ikincisi ise üçte ikisini kullanacaktır."
 
-msgid "You may create a message board for use by @team"
-msgstr "@team tarafından kullanılması için bir mesaj panosu oluşturabilirsiniz"
+msgid "Use CPU"
+msgstr "CPU kullan"
 
-msgid "parent removed"
-msgstr "üst kaldırıldı"
+msgid "Enforced by version @number"
+msgstr "@number sürümü tarafından zorunlu"
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "CPU başına maksimum günlük İB kotası"
+msgid "Use NVIDIA GPU"
+msgstr "NVIDIA GPU kullan"
 
-msgid "Received time"
-msgstr "Alınma zamanı"
+msgid "Use ATI GPU"
+msgstr "ATI GPU kullan"
 
-msgid "App ID"
-msgstr "Uygulama ID"
+msgid "Use INTEL GPU"
+msgstr "Intel GPU kullan"
 
-msgid "Error mask"
-msgstr "Hata maskesi"
+msgid "Beta settings"
+msgstr "Beta ayarları"
 
-msgid "Minimum quorum"
-msgstr "Asgari yeter sayı"
+msgid "Run test applications?"
+msgstr "Test uygulamaları çalıştırılsın mı?"
 
-msgid "Max error tasks"
-msgstr "Azami hatalı iş"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "Bu, uygulamaları geliştirme konusunda bize yardımcı olacak. Ancak, bazen iş hesaplamalarının başarısız olmasına sebep olabilir."
 
-msgid "Max success tasks"
-msgstr "Azami başarılı iş"
+msgid " Default value: @default"
+msgstr "Varsayılan değer: @default"
 
-msgid "Max total tasks"
-msgstr "Azami toplam iş"
+msgid "Applications"
+msgstr "Uygulamalar"
 
-msgid "Target number of results"
-msgstr "Sonuçların hedef sayısı"
+msgid "Default set"
+msgstr "Varsayılan küme"
 
-msgid "Application version ID"
-msgstr "Uygulama sürüm ID"
+msgid "Set used for new computers"
+msgstr "Küme yeni bilgisayarlar için kullanılacak"
 
-msgid "Plan class"
-msgstr "Plan sınıfı"
+msgid "Save changes"
+msgstr "Değişiklikleri kaydet"
 
-msgid "Version number"
-msgstr "Sürüm sayısı"
+msgid "Cancel"
+msgstr "Vazgeç"
 
-msgid "App version ID"
-msgstr "Uyg. sürüm ID"
+msgid "Show comparison view"
+msgstr "Karşılaştırma görünümü göster"
 
-msgid "@count million ops/sec"
-msgstr "@count milyon işl/sn"
+msgid "Comment form"
+msgstr "Buradan yorum:"
 
-msgid "@rate KiB/sec"
-msgstr "@rate KiB/sn"
+msgid "Logout"
+msgstr "Çıkış"
 
-msgid "@count days"
-msgstr "@count gün"
+msgid "Join now"
+msgstr "Şimdi katıl"
 
-msgid "@ip_address (same the last @count times)"
-msgstr "@ip_address (son @count kez ile aynı)"
+msgid "Account"
+msgstr "Hesap"
 
-msgid "commented on"
-msgstr "yorumlandı"
+msgid "Server status"
+msgstr "Sunucu durumu"
 
-msgid "Remove sticky status from this topic"
-msgstr "Bu konudan yapışkan durumunu kaldır"
+msgid "Language"
+msgstr "Dil"
 
-msgid ""
-"Check the computers that are the same as @name (created on @date at @time "
-"with computer ID @id)"
-msgstr "@name ile aynı bilgisayarları kontrol et (@date tarihinde @time saatinde @id bilgisayar ID'si ile yaratılanları)"
+msgid "Create content"
+msgstr "İçerik oluştur"
 
-msgid "Computer @old_id has been merged successfully into @id."
-msgstr "@old_id bilgisayarı @id ile başarılı şekilde birleştirildi."
+msgid "General settings"
+msgstr "Genel ayarlar"
 
-msgid "started discussion"
-msgstr "başlamış tartışma"
+msgid "Name"
+msgstr "İsim"
 
-msgid "posted"
-msgstr "gönderildi"
+msgid "Time zone"
+msgstr "Saat dilimi"
 
-msgid "Minimum value not met for @field"
-msgstr "@field için asgari değer karşılanmadı"
+msgid "Notification settings"
+msgstr "Bildirim ayarları"
 
-msgid "Invalid data type for @field"
-msgstr "@field için geçersiz veri tipi"
+msgid "Receive email notification for private messages?"
+msgstr "Özel mesajlar için e-posta bildirimi alınsın mı?"
 
-msgid ""
-"Authentication is required when changing E-mail address or setting new "
-"password."
-msgstr "E-posta adresini değiştirirken veya yeni bir parola ayarlarken doğrulama gereklidir."
+msgid "Receive email notification for friend requests?"
+msgstr "Arkadaşlık istekleri için e-posta bildirimi alınsın mı?"
 
-msgid "Request foundership"
-msgstr "Kurucu değişimi talebi"
+msgid "Language settings"
+msgstr "Dil ayarları"
 
 msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "Takım kurucusu aktif değilse ve kurucu rolünü üstlenmek istiyorsanız , @this_team takımının kuruculuğunu talep etmek için aşağıdaki linke tıklayınız."
-
-msgid "Initiate request"
-msgstr "İstekte bulun"
-
-msgid "A BOINC account already exists for @email."
-msgstr "@email adresi için bir BOINC hesabı zaten var."
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "Bu hesabın e-posta ve site kullanımı için tercih edilen varsayılan dili."
 
 msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "Lütfen yazdıklarınızdan sorumlu olun ve saldırgan veya hakaret içeren mesajlar oluşturmayın. Saldırgan mesajlar veya konular, uyarı veya tartışma olmadan forum moderatörleri tarafından silinebilir. Saldırgan gönderilere cevap vermeyin. Moderatörlerin dikkatine sunmak için gönderinin altındaki \"Raporla\" butonuna tıklayın."
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "E-posta adresinizle ilişkilendirilmiş bir <a href=\"@gravatar-check\">geçerli Gravatarınız</a> varsa, kullanıcı resminiz olarak kullanılacaktır."
 
-msgid "this project"
-msgstr "bu proje"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "Bir kullanıcı resimi yüklerseniz Gravatarınız gösterilmez."
 
 msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "Mesaj panolarındaki tüm tartışmaları, küçük istisnalar dışında, @project veya BOINC hakkında, altında yatan bilime uygun konuların görüşüldüğü serbest bir Bilim mesaj panosu olarak sürdürmenizi rica ediyoruz. Geniş tartışmalarla ilgilenen katılımcıların @project için kurulan gayri resmi forumlara yönlendirilmesi uygun olur."
-
-msgid "These message boards now support BBCode tags only."
-msgstr "Bu mesaj panoları artık yalnızca BBCode etiketlerini destekler."
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "E-posta adresinizle ilişkilendirilmiş bir <a href=\"@gravatar-check\">geçerli Gravatarınız</a> varsa, kullanıcı resminiz olarak kullanın."
 
-msgid "Posts contributed"
-msgstr "Katkıda bulunulan gönderiler"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "Bir kullanıcı resmi yüklerseniz Gravatarınız gösterilmez."
 
-msgid "Profile awaiting moderator approval"
-msgstr "Moderatör onayı bekleyen profil"
+msgid "Avatar settings"
+msgstr "Avatar ayarları"
 
-msgid "Approve profile"
-msgstr "Profilli onayla"
+msgid "This is not available until your profile is set up."
+msgstr "Bu, profiliniz ayarlanana kadar kullanılamaz."
 
-msgid "Approve this profile content"
-msgstr "Bu profili içeriğini onayla"
+msgid "Create a profile"
+msgstr "Bir profil oluştur"
 
-msgid "Edit profile"
-msgstr "Profili düzenle"
+msgid "Upload an avatar"
+msgstr "Bir avatar yükle"
 
-msgid "Edit the content of this profile"
-msgstr "Bu profili içeriğini düzenle"
+msgid "Forum settings"
+msgstr "Forum ayarları"
 
-msgid "Remove profile"
-msgstr "Profili kaldır"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "Tartışma konularında, sayfa başına en fazla @comments_per_page"
 
-msgid "Remove this profile content from the system"
-msgstr "Bu profilin içeriğini sistemden kaldır"
+msgid "comments per page"
+msgstr "yorum göster"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "Takım kurucusu transfer isteğinize yanıt vermek için @count güne sahip."
+msgid "Sort comments in discussions"
+msgstr "Tartışmalarda yorumları sırala"
 
-msgid "Reject profile"
-msgstr "Profili reddet"
+msgid "Newest post first"
+msgstr "Önce en yeni"
 
-msgid "Reject this profile content"
-msgstr "Bu profilin içeriğini reddet"
+msgid "Oldest post first"
+msgstr "Önce en eski"
 
-msgid "Reason for rejecting this profile"
-msgstr "Bu profilin reddedilme nedeni"
+msgid "Signature"
+msgstr "İmza"
 
-msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "Bu neden, kullanıcıya gönderilecek e-postanın içeriğine dahil edilecek. Problemi kısaca açıklayın ve nasıl düzeltebileceğini yazın."
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "İmzanız yorumlarınızın sonunda herkese açık olarak görüntülenir."
 
-msgid "Submit"
-msgstr "Gönder"
+msgid "Hide signatures in forums"
+msgstr "Forumlarda imzaları gizle"
 
-msgid "project"
-msgstr "proje"
+msgid "Privacy settings"
+msgstr "Gizlilik ayarları"
 
-msgid "Email address"
-msgstr "E-posta adresi"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "Takımınızın (eğer varsa) ve @Project projesinin size e-posta göndermesine izin verilsin mi?"
 
-msgid "Home"
-msgstr "Ev"
+msgid "Should @project show your computers on its web site?"
+msgstr "@project, bilgisayarlarınızı kendi internet sitesi üzerinde göstersin mi?"
 
-msgid "Login"
-msgstr "Giriş yap"
+msgid "Id"
+msgstr "NO"
 
-msgid "search"
-msgstr "ara"
+msgid "Founder"
+msgstr "Kurucu"
 
-msgid "Server status"
-msgstr "Sunucu durumu"
+msgid "Country"
+msgstr "Ülke"
 
-msgid "Language"
-msgstr "Dil"
+msgid "Recent average credit"
+msgstr "Güncel ortalama kredi"
 
-msgid "Enter your @s email address."
-msgstr "Lütfen @s e-posta adresinizi yazın."
+msgid "Members"
+msgstr "Üyeler"
 
-msgid "Join now"
-msgstr "Şimdi katıl"
+msgid "Total Credit"
+msgstr "Toplam kredi"
 
-msgid "I'm new"
-msgstr "Yeniyim"
+msgid "User ID"
+msgstr "Kullanıcı NO"
 
-msgid "I'm a BOINC user"
-msgstr "BOINC kullanıcısıyım"
+msgid "User"
+msgstr "Kullanıcı"
 
-msgid "Welcome back!"
-msgstr "Tekrar hoş geldiniz!"
+msgid "Admin since"
+msgstr "Yöneticilik başlangıcı"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home bilgisayarınızın boşta kalan zamanını, bir ekran koruyucu çalıştırarak, çok hızlı dönen nötron yıldızlarının (pulsar olarak da adlandırılır) kütleçekim dalgalarını aramak için kullanan bir programdır. Bunu, LIGO kütleçekim dalga detektörlerinden elde edilen verileri analiz ederek yapar."
+msgid "Team ID"
+msgstr "Takım NO"
 
-msgid "Learn more"
-msgstr "Daha fazlasını öğren"
+msgid "User joined"
+msgstr "Katılma tarihi"
 
-msgid "View account"
-msgstr "Hesabı görüntüle"
+msgid "Timestamp"
+msgstr "Zaman damgası"
 
-msgid "About our screensaver"
-msgstr "Ekran koruyucumuz hakkında"
+msgid "Account Key"
+msgstr "Hesap anahtarı"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "500.000'den fazla gönüllü ve artıyor."
+msgid "Member since"
+msgstr "Üyelik tarihi"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Email Address"
+msgstr "E-posta Adresi"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Password Hash"
+msgstr "Parola kodu"
 
-msgid "Logout"
-msgstr "Çıkış"
+msgid "Postal Code"
+msgstr "Posta kodu"
 
-msgid "Name"
-msgstr "İsim"
+msgid "Send Email"
+msgstr "E-posta gönder"
 
-msgid "Avg credit"
-msgstr "Ort. kredi"
+msgid "Show Hosts"
+msgstr "Bilgisayarları göster"
 
-msgid "Total credit"
-msgstr "Toplam kredi"
+msgid "URL"
+msgstr "Site"
 
-msgid "Enter your password to save changes"
-msgstr "Değişiklikleri kaydetmek için parolanızı girin"
+msgid "Computer ID"
+msgstr "Bilgisayar NO"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "E-posta adresinizi ya da şifrenizi değiştiriyorsanız\n          mevcut şifrenizi girin."
+msgid "Location"
+msgstr "Konum"
 
-msgid "BOINC user ID"
-msgstr "BOINC kullanıcı no"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "BOINC çalışırken, yeni işlerin kabul edildiği zaman yüzdesi"
 
-msgid "Drupal user ID"
-msgstr "Drupal kullanıcı no"
+msgid "Average turnaround time"
+msgstr "Ortalama geri dönüş zamanı"
 
-msgid "Account key"
-msgstr "Hesap anahtarı"
+msgid "Created"
+msgstr "Oluşturulma"
 
-msgid "Weak account key"
-msgstr "Zayıf hesap anahtarı"
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "BOINC çalışırken, bilgisayarın internet bağlantısına sahip olduğu zaman yüzdesi"
 
-msgid "Cross-project ID"
+msgid "Average CPU efficiency"
+msgstr "Ortalama CPU verimi"
+
+msgid "Free disk space"
+msgstr "Boş disk alanı"
+
+msgid "Total disk space"
+msgstr "Toplam disk alanı"
+
+msgid "Task duration correction factor"
+msgstr "İş süre düzeltme çarpanı"
+
+msgid "Avg. credit"
+msgstr "Ort. kredi"
+
+msgid "External IP address"
+msgstr "Harici IP adresi"
+
+msgid "Cross project ID"
 msgstr "Çapraz-proje NO"
 
-msgid "Save changes"
-msgstr "Değişiklikleri kaydet"
+msgid "Last IP address"
+msgstr "Son IP adresi"
 
-msgid "Cancel"
-msgstr "Vazgeç"
+msgid "Cache"
+msgstr "Önbellek"
 
-msgid "Change password"
-msgstr "Parolayı değiştir"
+msgid "Memory"
+msgstr "Bellek"
 
-msgid "What is @this_project?"
-msgstr "@this_project nedir?"
+msgid "Swap space"
+msgstr "Sanal bellek"
 
-msgid "no projects..."
-msgstr "proje yok..."
+msgid "Maximum daily WU quota per CPU"
+msgstr "CPU başına maksimum günlük İB kotası"
 
-msgid "Download the desktop software"
-msgstr "Masaüstü yazılımını indir"
+msgid "Average download rate"
+msgstr "Ortalama indirme hızı"
 
-msgid "Run the installer"
-msgstr "Kurulumu çalıştır"
+msgid "Average upload rate"
+msgstr "Ortalama gönderme hızı"
 
-msgid "When prompted enter @siteurl"
-msgstr "Sorulduğunda @siteurl girin"
+msgid "Same IP address count"
+msgstr "Aynı IP adresi sayımı"
 
-msgid "Password"
-msgstr "Parola"
+msgid "% of time BOINC client is running"
+msgstr "BOINC'in çalışır durumda olduğu zaman yüzdesi"
 
-msgid "Enter the password that accompanies your username."
-msgstr "Kullanıcı adınızla eşleşen parolanızı giriniz."
+msgid "Operating system"
+msgstr "İşletim sistemi"
 
-msgid "Request new password"
-msgstr "Yani parola talep et"
+msgid "Operating system version"
+msgstr "İşletim sistemi sürümü"
 
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "Zaten BOINC çalıştırıyorsanız,  <i>Proje\n      Ekle</i>yi seçin."
+msgid "Measured floating point speed"
+msgstr "Ölçülen kayan nokta hızı"
 
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "Eğer BOINC'in bir komut satırı sürümünü çalıştırıyorsanız,\n        önce bu projede bir hesap oluşturmak için (gerekirse başka bir yerde)\n        BOINC Manager yazılımını kullanın, daha sonra komut satırı sürümü ile\n        bağlanmak için, oluşturduğunuz söz konusu hesabı kullanabilirsiniz."
+msgid "Measured integer speed"
+msgstr "Ölçülen tamsayı hızı"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "Eğer 5.0 öncesi BOINC sürümünü çalıştırıyorsanız,\n        bu projede bir hesap oluşturmak için lütfen daha yeni bir\n        sürüme yükseltin."
+msgid "CPU model"
+msgstr "CPU modeli"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Eğer hesabınızın e-posta adresini biliyorsanız, oradan e-posta alabilirsiniz:"
+msgid "Number of processors"
+msgstr "İşlemci adedi"
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "E-posta adresini girin ve Tamam'a tıklayın. Şifrenizi sıfırlamak için e-posta talimatları gönderilir."
+msgid "CPU"
+msgstr "CPU"
 
-msgid "OK"
-msgstr "Tamam"
+msgid "Number of times client has contacted server"
+msgstr "İstemcinin sunucuya bağlanma sayısı"
 
-msgid "The latest news from the @site_name project"
-msgstr "@site_name projesinden gelen son haberler"
+msgid "Last contact"
+msgstr "Son bağlantı"
 
-msgid "Comment form"
-msgstr "Buradan yorum:"
+msgid "Serial number"
+msgstr "Seri numarası"
 
-msgid "Total credits"
-msgstr "Toplam kredi"
+msgid "Timezone"
+msgstr "Zaman dilimi"
 
-msgid "Recent avg credits"
-msgstr "Güncel ort. kredi"
+msgid "Platform ID"
+msgstr "Platform NO"
 
-msgid "Country"
-msgstr "Ülke"
+msgid "Task ID"
+msgstr "İş NO"
 
-msgid "Type"
-msgstr "Tip"
+msgid "Workunit ID"
+msgstr "İş birimi NO"
 
-msgid "Founder"
-msgstr "Kurucu"
+msgid "Host ID"
+msgstr "Sunucu NO"
 
-msgid "New members in last day"
-msgstr "Son günlerdeki yeni üyeler"
+msgid "Application ID"
+msgstr "Uygulama NO"
 
-msgid "Total members"
-msgstr "Toplam üye"
+msgid "Application version"
+msgstr "Uygulama sürümü"
 
-msgid "Active members"
-msgstr "Aktif üye"
+msgid "Claimed credit"
+msgstr "İstenen kredi"
 
-msgid "Members with credit"
-msgstr "Kredisi bulunan üye"
+msgid "Client state"
+msgstr "İstemci durumu"
 
-msgid "Description"
-msgstr "Tanıtım"
+msgid "CPU time"
+msgstr "CPU zamanı"
 
-msgid "Search teams"
-msgstr "Takımları ara"
+msgid "Run time"
+msgstr "Çalışma zamanı"
 
-msgid "Send message"
-msgstr "Mesaj gönder"
+msgid "Exit status"
+msgstr "Çıkış kodu"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Granted credit"
+msgstr "Alınan kredi"
 
-msgid "Project"
-msgstr "Proje"
+msgid "Outcome"
+msgstr "Sonuç"
 
-msgid "Web site"
-msgstr "İnternet sitesi"
+msgid "Received time"
+msgstr "Alınma zamanı"
 
-msgid "No active computers"
-msgstr "Etkin bilgisayar yok"
+msgid "Report deadline"
+msgstr "Son teslim zamanı"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "Bu kullanıcının son 30 gün içinde aktif olan hiçbir bilgisayarı bulunmamakta."
+msgid "Sent"
+msgstr "Gönderilme"
 
-msgid " Default value: @default"
-msgstr "Varsayılan değer: @default"
+msgid "Server state"
+msgstr "Sunucu durumu"
 
-msgid "Applications"
-msgstr "Uygulamalar"
+msgid "Stderr out"
+msgstr "Stderr çıktısı"
 
-msgid "yes"
-msgstr "evet"
+msgid "Validation state"
+msgstr "Doğrulama durumu"
 
-msgid "no"
-msgstr "hayır"
+msgid "App ID"
+msgstr "Uygulama ID"
 
-msgid "Message @id"
-msgstr "Mesaj @id"
+msgid "Canonical credit"
+msgstr "Kabul edilen kredi"
 
-msgid "message @id"
-msgstr "mesaj @id"
+msgid "Canonical result ID"
+msgstr "Kabul edilen sonuç NO"
 
-msgid " in response to !parent"
-msgstr " - Şuna yanıt olarak !parent"
+msgid "Created time"
+msgstr "Oluşturulma zamanı"
 
-msgid "Credits per day"
-msgstr "Gün başına kredi"
+msgid "Error mask"
+msgstr "Hata maskesi"
 
-msgid "Computers hidden"
-msgstr "Gizlenen bilgisayarlar"
+msgid "Minimum quorum"
+msgstr "Asgari yeter sayı"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "Bu kullanıcı, bilgisayarları hakkında bilgi gösterilmemesini tercih etti."
+msgid "Max error tasks"
+msgstr "Azami hatalı iş"
 
-msgid "Stderr output"
-msgstr "Stderr çıktısı"
+msgid "Max success tasks"
+msgstr "Azami başarılı iş"
 
-msgid "@time ago"
-msgstr "@time önce"
+msgid "Max total tasks"
+msgstr "Azami toplam iş"
 
-msgid "n/a"
-msgstr "yok"
+msgid "Needs validation"
+msgstr "Doğrulama gerekiyor"
 
-msgid "Submitted by !username on !datetime"
-msgstr "!username tarafından !datetime zamanında gönderildi"
+msgid "Initial replication"
+msgstr "Başlangıçtaki kopya sayısı"
 
-msgid "Member since"
-msgstr "Üyelik tarihi"
+msgid "Target number of results"
+msgstr "Sonuçların hedef sayısı"
 
-msgid "View team"
-msgstr "Takımı gör"
+msgid "Application version ID"
+msgstr "Uygulama sürüm ID"
 
-msgid "Friends (@count)"
-msgstr "Arkadaşlar (@count)"
+msgid "Plan class"
+msgstr "Plan sınıfı"
 
-msgid "Website"
-msgstr "Site"
+msgid "Version number"
+msgstr "Sürüm sayısı"
 
-msgid "Locked"
-msgstr "Kilitli"
+msgid "Computer"
+msgstr "Bilgisayar"
 
-msgid "Computers pending"
-msgstr "Bilgisayarlar beklemede"
+msgid "App version ID"
+msgstr "Uyg. sürüm ID"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "Bu kullanıcının henüz herhangi bir ilişkili bilgisayarı yok. Bilgisayarlar ilk kredi kazandıkları zaman görüntülenir."
+msgid "Consecutive valid tasks"
+msgstr "Ardarda gelen doğrulanmış işler"
 
-msgid "No results found..."
-msgstr "Sonuç bulunamadı..."
+msgid "Number of tasks completed"
+msgstr "Tamamlanan iş sayısı"
 
-msgid "Background"
-msgstr "Arkaplan"
+msgid "Max tasks per day"
+msgstr "Günlük ortalama en fazla iş"
 
-msgid "Teams"
-msgstr "Takımlar"
+msgid "Number of tasks today"
+msgstr "Bugünkü iş sayısı"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "@Project katılımcıları takımlar oluşturabilir. Yalnızca bir takıma ait olabilirsiniz. Herhangi bir zamanda bir takıma katılabilir veya ayrılabilirsiniz. Bir takıma katılmak için, kendi takım sayfasını ziyaret edin ve \"Bu takıma katıl\" butonuna tıklayın. Her takımın bir kurucusu olabilir:"
+msgid "Manage subscriptions"
+msgstr "Abonelikleri yönet"
 
-msgid "access team members' email addresses"
-msgstr "Takım üyelerinin e-posta adreslerini görme"
+msgid "Avg credit"
+msgstr "Ort. kredi"
 
-msgid "edit the team's name and description"
-msgstr "Takımın ismini ve tanıtımını düzenleme"
+msgid "Total credit"
+msgstr "Toplam kredi"
 
-msgid "add or remove team admins"
-msgstr "Takım Yöneticileri ekleme ya da çıkarma"
+msgid "More"
+msgstr "Daha fazla"
 
-msgid "remove members from the team"
-msgstr "Takımdan bir üyeyi çıkarma"
+msgid "Tasks"
+msgstr "İşler"
 
-msgid "disband a team if it has no members"
-msgstr "Üyesi yoksa takımı kaldırma."
+msgid "Computers hidden"
+msgstr "Gizlenen bilgisayarlar"
 
-msgid "Create a new team"
-msgstr "Yeni bir takım oluştur"
+msgid "This user has chosen not to show information about their computers."
+msgstr "Bu kullanıcı, bilgisayarları hakkında bilgi gösterilmemesini tercih etti."
+
+msgid "no projects..."
+msgstr "proje yok..."
+
+msgid "Moderation"
+msgstr "Moderasyon"
+
+msgid "Unvetted profiles"
+msgstr "Gözden geçirilmemiş profiller"
+
+msgid "Inbox"
+msgstr "Gelen kutusu"
+
+msgid "Compose new"
+msgstr "Yeni oluştur"
+
+msgid "Posts contributed"
+msgstr "Katkıda bulunulan gönderiler"
+
+msgid "Friends (@count)"
+msgstr "Arkadaşlar (@count)"
+
+msgid "Welcome back!"
+msgstr "Tekrar hoş geldiniz!"
 
 msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "Sizin için uygun bir takım bulamazsanız, bir takım oluşturabilirsiniz."
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home bilgisayarınızın boşta kalan zamanını, bir ekran koruyucu çalıştırarak, çok hızlı dönen nötron yıldızlarının (pulsar olarak da adlandırılır) kütleçekim dalgalarını aramak için kullanan bir programdır. Bunu, LIGO kütleçekim dalga detektörlerinden elde edilen verileri analiz ederek yapar."
 
-msgid "You must earn @count more credits!"
-msgstr "@count kredi daha kazanmanız gerekir!"
+msgid "Learn more"
+msgstr "Daha fazlasını öğren"
 
-msgid "Threads"
-msgstr "Konu başlıkları"
+msgid "View account"
+msgstr "Hesabı görüntüle"
 
-msgid "Posts"
-msgstr "Yanıtlar"
+msgid "User of the day"
+msgstr "Günün kullanıcısı"
 
-msgid "Last post"
-msgstr "Son mesaj"
+msgid "Over 500,000 volunteers and counting."
+msgstr "500.000'den fazla gönüllü ve artıyor."
 
-msgid "Manage subscriptions"
-msgstr "Abonelikleri yönet"
+msgid "Windows"
+msgstr "Windows"
 
-msgid "Featured"
-msgstr "Öne çıkan"
+msgid "Mac"
+msgstr "Mac"
 
-msgid "Submitted on !datetime"
-msgstr "Gönderilme zamanı !datetime"
+msgid "Linux"
+msgstr "Linux"
 
-msgid "Comments"
-msgstr "Yorumlar"
+msgid "Credits per day"
+msgstr "Gün başına kredi"
+
+msgid "View user profile."
+msgstr "Kullanıcı profilini gör."
+
+msgid "Profile awaiting moderator approval"
+msgstr "Moderatör onayı bekleyen profil"
+
+msgid "Background"
+msgstr "Arkaplan"
+
+msgid "Opinion"
+msgstr "Görüş"
+
+msgid "Enter your password to save changes"
+msgstr "Değişiklikleri kaydetmek için parolanızı girin"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "E-posta adresinizi ya da şifrenizi değiştiriyorsanız\n          mevcut şifrenizi girin."
 
-msgid "Opinion"
-msgstr "Görüş"
+msgid "BOINC user ID"
+msgstr "BOINC kullanıcı no"
 
-msgid "More"
-msgstr "Daha fazla"
+msgid "Drupal user ID"
+msgstr "Drupal kullanıcı no"
 
-msgid "Tasks"
-msgstr "İşler"
+msgid "Account key"
+msgstr "Hesap anahtarı"
 
-msgid "Generic"
-msgstr "Genel"
+msgid "Weak account key"
+msgstr "Zayıf hesap anahtarı"
 
-msgid "Work"
-msgstr "İş"
+msgid "Cross-project ID"
+msgstr "Çapraz-proje NO"
 
-msgid "School"
-msgstr "Okul"
+msgid "Change password"
+msgstr "Parolayı değiştir"
 
 msgid "Presets"
 msgstr "Önayarlar"
@@ -636,9 +661,6 @@ msgstr "Bilgisayar kullanımda olduğunda çalışsın mı?"
 msgid "Run GPU work while computer is in use?"
 msgstr "Bilgisayar kullanımdayken GPU işi çalışsın mı?"
 
-msgid "Enforced by version @number"
-msgstr "@number sürümü tarafından zorunlu"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "'Kullanımda', en son bu kadar süre önce fare/klavye kullanıldı demektir:"
 
@@ -775,251 +797,445 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "İnternet servis sağlayıcınız görüntü dosyalarını değiştiriyorsa (örneğin UMTS bunu yapar) işaretleyin. Doğrulamayı atlamak, BOINC'in güvenliğini zayıflatacaktır."
 
-msgid "Show comparison view"
-msgstr "Karşılaştırma görünümü göster"
+msgid "search"
+msgstr "ara"
 
-msgid "Resource settings"
-msgstr "Kaynak ayarları"
+msgid "What is @this_project?"
+msgstr "@this_project nedir?"
 
-msgid "Resource share"
-msgstr "Kaynak paylaşımı"
+msgid "Login"
+msgstr "Giriş yap"
+
+msgid "BOINC"
+msgstr "BOINC"
+
+msgid "Project"
+msgstr "Proje"
+
+msgid "No @type tasks"
+msgstr "Hiçbir @type işi bulunamadı"
+
+msgid "There are no tasks of this type on record"
+msgstr "Kayıtlarda bu tip için herhangi bir iş bulunmuyor"
+
+msgid "Details"
+msgstr "Detaylar"
+
+msgid "Password"
+msgstr "Parola"
+
+msgid "Enter the password that accompanies your username."
+msgstr "Kullanıcı adınızla eşleşen parolanızı giriniz."
+
+msgid "Request new password"
+msgstr "Yani parola talep et"
+
+msgid "Mark all topics read"
+msgstr "Tüm konuları okundu olarak işaretle"
+
+msgid "Mark all forums read"
+msgstr "Tüm forumları forumları okundu olarak işaretle"
 
 msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Bilgisayarınızın, bu projeye tahsis edilecek kaynak oranını belirler. Örneğin, 100 ve 200 kaynak payları ile iki BOINC projesine katılırsanız, ilki kaynakların üçte birini, ikincisi ise üçte ikisini kullanacaktır."
+"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
+"administrator if this problem persists."
+msgstr "CAPTCHA doğrulama hatası: Bilinmeyen CAPTCHA oturum kimliği. Bu sorun devam ederse site yöneticisine başvurun."
 
-msgid "Use CPU"
-msgstr "CPU kullan"
+msgid "The answer you entered for the CAPTCHA was not correct."
+msgstr "CAPTCHA için verdiğiniz yanıt doğru değil."
 
-msgid "Use NVIDIA GPU"
-msgstr "NVIDIA GPU kullan"
+msgid "Access denied. You must login to view this page."
+msgstr "Erişim engellendi. Bu sayfayı görüntülemek için giriş yapmalısınız."
 
-msgid "Use ATI GPU"
-msgstr "ATI GPU kullan"
+msgid "You are not authorized to access this page."
+msgstr "Bu sayfaya erişmek için yetkiniz yok."
 
-msgid "Use INTEL GPU"
-msgstr "Intel GPU kullan"
+msgid "Disable rich-text"
+msgstr "Zengin metni devre dışı bırak"
 
-msgid "Beta settings"
-msgstr "Beta ayarları"
+msgid "Enable rich-text"
+msgstr "Zengin metin etkinleştir"
 
-msgid "Run test applications?"
-msgstr "Test uygulamaları çalıştırılsın mı?"
+msgid "Teams"
+msgstr "Takımlar"
 
 msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Bu, uygulamaları geliştirme konusunda bize yardımcı olacak. Ancak, bazen iş hesaplamalarının başarısız olmasına sebep olabilir."
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "@Project katılımcıları takımlar oluşturabilir. Yalnızca bir takıma ait olabilirsiniz. Herhangi bir zamanda bir takıma katılabilir veya ayrılabilirsiniz. Bir takıma katılmak için, kendi takım sayfasını ziyaret edin ve \"Bu takıma katıl\" butonuna tıklayın. Her takımın bir kurucusu olabilir:"
+
+msgid "access team members' email addresses"
+msgstr "Takım üyelerinin e-posta adreslerini görme"
+
+msgid "edit the team's name and description"
+msgstr "Takımın ismini ve tanıtımını düzenleme"
+
+msgid "add or remove team admins"
+msgstr "Takım Yöneticileri ekleme ya da çıkarma"
+
+msgid "remove members from the team"
+msgstr "Takımdan bir üyeyi çıkarma"
+
+msgid "disband a team if it has no members"
+msgstr "Üyesi yoksa takımı kaldırma."
+
+msgid "Search teams"
+msgstr "Takımları ara"
+
+msgid "Create a new team"
+msgstr "Yeni bir takım oluştur"
+
+msgid ""
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "Sizin için uygun bir takım bulamazsanız, bir takım oluşturabilirsiniz."
+
+msgid "You must earn 1 more credit!"
+msgstr "1 kredi daha kazanmanız gerekir!"
+
+msgid "@count million ops/sec"
+msgstr "@count milyon işl/sn"
+
+msgid "@rate KiB/sec"
+msgstr "@rate KiB/sn"
+
+msgid "@count days"
+msgstr "@count gün"
+
+msgid "Stderr output"
+msgstr "Stderr çıktısı"
+
+msgid "Email address"
+msgstr "E-posta adresi"
+
+msgid "Enter your @s email address."
+msgstr "Lütfen @s e-posta adresinizi yazın."
+
+msgid "Log in"
+msgstr "Oturum aç"
+
+msgid "Sorry, unrecognized email address or password."
+msgstr "Maalesef, tanınmayan e-posta adresi veya şifre."
+
+msgid "Have you forgotten your password?"
+msgstr "Parolanızı mı unuttunuz?"
+
+msgid "No results found..."
+msgstr "Sonuç bulunamadı..."
+
+msgid "Anonymous"
+msgstr "Anonim"
+
+msgid "Forgot password"
+msgstr "Parolamı unuttum"
+
+msgid "authenticator-based login"
+msgstr "kimlik doğrulayıcı tabanlı giriş"
+
+msgid ""
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "Şifrenizi sıfırlamak için talimatları almak üzere e-posta adresinizi girin (veya !authenticator_login kullanın). "
+
+msgid "Send"
+msgstr "Gönder"
+
+msgid "Submitted by !username on !datetime"
+msgstr "!username tarafından !datetime zamanında gönderildi"
+
+msgid "Send message"
+msgstr "Mesaj gönder"
+
+msgid "Add as friend"
+msgstr "Arkadaş olarak ekle"
+
+msgid "Website"
+msgstr "Site"
+
+msgid "Team"
+msgstr "Takım"
+
+msgid "Create new team"
+msgstr "Yeni bir takım oluştur"
+
+msgid "Search"
+msgstr "Ara"
+
+msgid "Total credits"
+msgstr "Toplam kredi"
+
+msgid "Recent avg credits"
+msgstr "Güncel ort. kredi"
+
+msgid "Type"
+msgstr "Tip"
+
+msgid "New members in last day"
+msgstr "Son günlerdeki yeni üyeler"
+
+msgid "Total members"
+msgstr "Toplam üye"
+
+msgid "Active members"
+msgstr "Aktif üye"
+
+msgid "Members with credit"
+msgstr "Kredisi bulunan üye"
+
+msgid "Web site"
+msgstr "İnternet sitesi"
+
+msgid "Description"
+msgstr "Tanıtım"
+
+msgid "BBcode help"
+msgstr "BBcode yardımı"
+
+msgid "Post comment"
+msgstr "Yorum gönder"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "Anasayfa"
+
+msgid "The latest news from the @site_name project"
+msgstr "@site_name projesinden gelen son haberler"
+
+msgid "Hide"
+msgstr "Gizle"
+
+msgid "Hide this topic"
+msgstr "Bu konuyu gizle"
+
+msgid "Lock"
+msgstr "Kilitle"
+
+msgid "Lock this thread for comments"
+msgstr "Bu konuyu yorumlar için kilitle"
+
+msgid "Make sticky"
+msgstr "Üst konu yap"
+
+msgid "Make this topic sticky"
+msgstr "Bu konuyu yapışkan yap"
+
+msgid "moderation"
+msgstr "moderasyon"
+
+msgid "Reply"
+msgstr "Yanıtla"
+
+msgid "Reply to this comment"
+msgstr "Bu yorumu yanıtla"
 
-msgid "Default set"
-msgstr "Varsayılan küme"
+msgid "Quote"
+msgstr "Alıntı"
 
-msgid "Set used for new computers"
-msgstr "Küme yeni bilgisayarlar için kullanılacak"
+msgid "Reply to this comment with quote"
+msgstr "Bu yorumu alıntıyla yanıtla"
 
-msgid "Merge"
-msgstr "Birleştir"
+msgid "Edit"
+msgstr "Düzenle"
+
+msgid "Edit this comment"
+msgstr "Bu yorumu düzenle"
 
 msgid "Delete"
 msgstr "Sil"
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "Bu, @id bilgisayarını sonsuza kadar hesabınızdan siler. Bunu yapmak istediğinizden emin misiniz?"
+msgid "Delete this comment"
+msgstr "Bu yorumu sil"
 
-msgid "Mark all topics read"
-msgstr "Tüm konuları okundu olarak işaretle"
+msgid "Hide this comment"
+msgstr "Bu yorumu gizle"
 
-msgid "Mark all forums read"
-msgstr "Tüm forumları forumları okundu olarak işaretle"
+msgid "Message @id"
+msgstr "Mesaj @id"
 
-msgid ""
-"CAPTCHA validation error: unknown CAPTCHA session ID. Contact the site "
-"administrator if this problem persists."
-msgstr "CAPTCHA doğrulama hatası: Bilinmeyen CAPTCHA oturum kimliği. Bu sorun devam ederse site yöneticisine başvurun."
+msgid "Convert"
+msgstr "Dönüştür"
 
-msgid "The answer you entered for the CAPTCHA was not correct."
-msgstr "CAPTCHA için verdiğiniz yanıt doğru değil."
+msgid "Convert this comment to a new topic"
+msgstr "Bu yorumu yeni bir konuya dönüştür"
 
-msgid "Access denied. You must login to view this page."
-msgstr "Erişim engellendi. Bu sayfayı görüntülemek için giriş yapmalısınız."
+msgid "message @id"
+msgstr "mesaj @id"
 
-msgid "You are not authorized to access this page."
-msgstr "Bu sayfaya erişmek için yetkiniz yok."
+msgid " in response to !parent"
+msgstr " - Şuna yanıt olarak !parent"
 
-msgid "Disable rich-text"
-msgstr "Zengin metni devre dışı bırak"
+msgid "Post new comment"
+msgstr "Yeni yorum gönder"
 
-msgid "Enable rich-text"
-msgstr "Zengin metin etkinleştir"
+msgid "Comments"
+msgstr "Yorumlar"
 
-msgid "View user profile."
-msgstr "Kullanıcı profilini gör."
+msgid "discuss"
+msgstr "tartış"
 
-msgid "BBcode help"
-msgstr "BBcode yardımı"
+msgid "n/a"
+msgstr "yok"
 
-msgid "Post comment"
-msgstr "Yorum gönder"
+msgid "@time ago"
+msgstr "@time önce"
 
-msgid "No @type tasks"
-msgstr "Hiçbir @type işi bulunamadı"
+msgid "Threads"
+msgstr "Konu başlıkları"
 
-msgid "There are no tasks of this type on record"
-msgstr "Kayıtlarda bu tip için herhangi bir iş bulunmuyor"
+msgid "Posts"
+msgstr "Yanıtlar"
 
-msgid "Clear"
-msgstr "Temizle"
+msgid "Last post"
+msgstr "Son mesaj"
 
 msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "Bu, @name önayar kümesindeki tüm ayarlarınızı kaldıracak. Emin misiniz?"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "Lütfen yazdıklarınızdan sorumlu olun ve saldırgan veya hakaret içeren mesajlar oluşturmayın. Saldırgan mesajlar veya konular, uyarı veya tartışma olmadan forum moderatörleri tarafından silinebilir. Saldırgan gönderilere cevap vermeyin. Moderatörlerin dikkatine sunmak için gönderinin altındaki \"Raporla\" butonuna tıklayın."
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Bu tercihler, katıldığınız tüm BOINC projelerine uygulanacak."
+msgid "this project"
+msgstr "bu proje"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "Birden fazla proje bağlı bilgisayarlarda, en son değiştirilen tercihler kullanılacaktır."
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "Mesaj panolarındaki tüm tartışmaları, küçük istisnalar dışında, @project veya BOINC hakkında, altında yatan bilime uygun konuların görüşüldüğü serbest bir Bilim mesaj panosu olarak sürdürmenizi rica ediyoruz. Geniş tartışmalarla ilgilenen katılımcıların @project için kurulan gayri resmi forumlara yönlendirilmesi uygun olur."
 
-msgid "Preferences last modified: @mod_time"
-msgstr "Tercihlerin son güncellenmesi: @mod_time"
+msgid "These message boards now support BBCode tags only."
+msgstr "Bu mesaj panoları artık yalnızca BBCode etiketlerini destekler."
 
-msgid "Combined preferences"
-msgstr "Ortak tercihler"
+msgid "Featured"
+msgstr "Öne çıkan"
 
-msgid "Switch View"
-msgstr "Görünümü değiştir"
+msgid "Locked"
+msgstr "Kilitli"
 
-msgid "every"
-msgstr "her"
+msgid "Submitted on !datetime"
+msgstr "Gönderilme zamanı !datetime"
 
-msgid "Edit"
-msgstr "Düzenle"
+msgid "Computers pending"
+msgstr "Bilgisayarlar beklemede"
 
 msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "Bu, \"@name\" önayar kümesindeki tüm ayarlarınızı kaldıracak. Emin misiniz?"
-
-msgid "Add"
-msgstr "Ekle"
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "Bu kullanıcının henüz herhangi bir ilişkili bilgisayarı yok. Bilgisayarlar ilk kredi kazandıkları zaman görüntülenir."
 
-msgid "General settings"
-msgstr "Genel ayarlar"
+msgid "Show IP address"
+msgstr "IP adresini görüntüle"
 
-msgid "Time zone"
-msgstr "Saat dilimi"
+msgid "Download the desktop software"
+msgstr "Masaüstü yazılımını indir"
 
-msgid "Notification settings"
-msgstr "Bildirim ayarları"
+msgid "Run the installer"
+msgstr "Kurulumu çalıştır"
 
-msgid "Receive email notification for private messages?"
-msgstr "Özel mesajlar için e-posta bildirimi alınsın mı?"
+msgid "hours"
+msgstr "saat"
 
-msgid "Receive email notification for friend requests?"
-msgstr "Arkadaşlık istekleri için e-posta bildirimi alınsın mı?"
+msgid "When prompted enter @siteurl"
+msgstr "Sorulduğunda @siteurl girin"
 
-msgid "Language settings"
-msgstr "Dil ayarları"
+msgid "Merge"
+msgstr "Birleştir"
 
 msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "Bu hesabın e-posta ve site kullanımı için tercih edilen varsayılan dili."
-
-msgid "Avatar settings"
-msgstr "Avatar ayarları"
-
-msgid "Create a profile"
-msgstr "Bir profil oluştur"
-
-msgid "Upload an avatar"
-msgstr "Bir avatar yükle"
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "Bu, @id bilgisayarını sonsuza kadar hesabınızdan siler. Bunu yapmak istediğinizden emin misiniz?"
 
-msgid "Forum settings"
-msgstr "Forum ayarları"
+msgid "Post topic"
+msgstr "Yeni konu"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "Tartışma konularında, sayfa başına en fazla @comments_per_page"
+msgid "Leave team"
+msgstr "Takımdan ayrıl"
 
-msgid "comments per page"
-msgstr "yorum göster"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "@this_team ile üyeliğinizi iptal etmek için buraya tıklayın"
 
-msgid "Sort comments in discussions"
-msgstr "Tartışmalarda yorumları sırala"
+msgid "Leave this team"
+msgstr "Bu takımdan ayrıl"
 
-msgid "Newest post first"
-msgstr "Önce en yeni"
+msgid "Request foundership"
+msgstr "Kurucu değişimi talebi"
 
-msgid "Oldest post first"
-msgstr "Önce en eski"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "Takım kurucusu aktif değilse ve kurucu rolünü üstlenmek istiyorsanız , @this_team takımının kuruculuğunu talep etmek için aşağıdaki linke tıklayınız."
 
-msgid "Signature"
-msgstr "İmza"
+msgid "Initiate request"
+msgstr "İstekte bulun"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "İmzanız yorumlarınızın sonunda herkese açık olarak görüntülenir."
+msgid "No active computers"
+msgstr "Etkin bilgisayar yok"
 
-msgid "Hide signatures in forums"
-msgstr "Forumlarda imzaları gizle"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "Bu kullanıcının son 30 gün içinde aktif olan hiçbir bilgisayarı bulunmamakta."
 
-msgid "Privacy settings"
-msgstr "Gizlilik ayarları"
+msgid "Clear"
+msgstr "Temizle"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "Takımınızın (eğer varsa) ve @Project projesinin size e-posta göndermesine izin verilsin mi?"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "Bu, @name önayar kümesindeki tüm ayarlarınızı kaldıracak. Emin misiniz?"
 
-msgid "Hide"
-msgstr "Gizle"
+msgid "Your community preferences have been updated."
+msgstr "Topluluk tercihleriniz güncellendi."
 
-msgid "Hide this topic"
-msgstr "Bu konuyu gizle"
+msgid "Combined preferences"
+msgstr "Ortak tercihler"
 
-msgid "Lock"
-msgstr "Kilitle"
+msgid "Switch View"
+msgstr "Görünümü değiştir"
 
-msgid "Lock this thread for comments"
-msgstr "Bu konuyu yorumlar için kilitle"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "Bu, \"@name\" önayar kümesindeki tüm ayarlarınızı kaldıracak. Emin misiniz?"
 
-msgid "Make sticky"
-msgstr "Üst konu yap"
+msgid "Approve profile"
+msgstr "Profilli onayla"
 
-msgid "Make this topic sticky"
-msgstr "Bu konuyu yapışkan yap"
+msgid "Approve this profile content"
+msgstr "Bu profili içeriğini onayla"
 
-msgid "moderation"
-msgstr "moderasyon"
+msgid "Reject this profile content"
+msgstr "Bu profilin içeriğini reddet"
 
-msgid "Post new comment"
-msgstr "Yeni yorum gönder"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "Bu tercihler, katıldığınız tüm BOINC projelerine uygulanacak."
 
-msgid "You must earn 1 more credit!"
-msgstr "1 kredi daha kazanmanız gerekir!"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "Birden fazla proje bağlı bilgisayarlarda, en son değiştirilen tercihler kullanılacaktır."
 
-msgid "Joined"
-msgstr "Üyelik"
+msgid "Preferences last modified: @mod_time"
+msgstr "Tercihlerin son güncellenmesi: @mod_time"
 
-msgid "Credit"
-msgstr "Kredi"
+msgid "every"
+msgstr "her"
 
-msgid "RAC"
-msgstr "Güncel ort. kredi"
+msgid "Add"
+msgstr "Ekle"
 
-msgid "Join team"
-msgstr "Takıma katıl"
+msgid "My team"
+msgstr "Takımım"
 
-msgid "Click here to become a member of @this_team"
-msgstr "@this_team üyesi olmak için tıklayın"
+msgid "You are a member of @team."
+msgstr "@team takımının üyesisiniz."
 
-msgid "Join this team"
-msgstr "Bu takıma katıl"
+msgid "View my team"
+msgstr "Takım ayrıntıları"
 
 msgid "Manage team"
 msgstr "Takımı yönet"
@@ -1066,98 +1282,14 @@ msgstr "Ekip üyeleri için bir tartışma forumu kurulmuştur."
 msgid "Enter forum"
 msgstr "Foruma gir"
 
-msgid "Leave team"
-msgstr "Takımdan ayrıl"
-
-msgid "Leave this team"
-msgstr "Bu takımdan ayrıl"
-
-msgid "Edit message board"
-msgstr "Mesaj panosunu düzenle"
-
-msgid "Message board title"
-msgstr "Mesaj panosu başlığı"
-
-msgid "Text only, no HTML tags"
-msgstr "Sadece metin, HTML etiketleri  yok"
-
-msgid "Minimum time between posts"
-msgstr "İki gönderi arasındaki en kısa süre"
-
-msgid "Seconds"
-msgstr "Saniye"
-
-msgid "Minimum total credit to post"
-msgstr "İleti gönderebilmek için sahip olunması gereken en az kredi"
-
-msgid "Allow public to read board?"
-msgstr "Panoyu herkes okuyabilsin mi?"
-
-msgid "Save message board"
-msgstr "Mesaj panosunu kaydet"
-
-msgid "About message boards"
-msgstr "Mesaj panoları hakkında"
-
-msgid "This is a team-only message board"
-msgstr "Bu, yalnızca takıma ait bit mesaj panosudur"
-
-msgid "Only members may post"
-msgstr "Yalnızca takım üyeleri gönderi gönderebilir."
-
-msgid "Only members may read (optional)"
-msgstr "Yalnızca üyeler gönderileri okuyabilir (tercihinize bağlı)."
-
-msgid "Changing the team founder"
-msgstr "Takım kurucusu değiştirme"
-
-msgid "Any member of the team is eligible"
-msgstr "Takımın herhangi bir üyesi uygundur"
-
-msgid "Current founder becomes a normal user"
-msgstr "Güncel kurucu normal bir kullanıcı haline gelecektir"
-
-msgid "It must be 60 days since any previous request"
-msgstr "Herhangi bir önceki istekten bu yana 60 gün geçmeli"
-
-msgid "Add team admin"
-msgstr "Takım yöneticisi ekle"
-
-msgid "Enter email address"
-msgstr "E-posta adresinizi girin"
-
-msgid "Current team admins"
-msgstr "Şu anki takımı yöneticileri"
-
-msgid "About team admins"
-msgstr "Takım Yöneticileri hakkında"
-
-msgid "Team admins can:"
-msgstr "Takım yöneticileri bunları yapabilir:"
-
-msgid "Edit team information"
-msgstr "Takım bilgisini düzenleme"
-
-msgid "View the team's join / quit history"
-msgstr "Takımın katılma/ayrılma geçmişini görüntüleme"
-
-msgid "Moderate the team forum"
-msgstr "Mevcutsa, takım forumunu yönetme"
-
-msgid "Remove members from the team"
-msgstr "Takımdan bir üyeyi çıkarma"
-
-msgid "Disband a team if it has no members"
-msgstr "Üyesi yoksa takımı kaldırma"
-
-msgid "Team admins cannot:"
-msgstr "Takım Yöneticileri şunları yapamaz:"
+msgid "Join team"
+msgstr "Takıma katıl"
 
-msgid "Change the team founder"
-msgstr "Takım kurucusunu değiştirme"
+msgid "Click here to become a member of @this_team"
+msgstr "@this_team üyesi olmak için tıklayın"
 
-msgid "Add / Remove team admins"
-msgstr "Takım Yöneticileri ekle/kaldır"
+msgid "Join this team"
+msgstr "Bu takıma katıl"
 
 msgid "Choose type"
 msgstr "Tip seçin"
@@ -1165,6 +1297,9 @@ msgstr "Tip seçin"
 msgid "Team name"
 msgstr "Takım adı"
 
+msgid "Text only, no HTML tags"
+msgstr "Sadece metin, HTML etiketleri  yok"
+
 msgid "Team name -- HTML version (optional)"
 msgstr "Takım adı -- HTML sürümü  (isteğe bağlı)"
 
@@ -1186,333 +1321,435 @@ msgstr "Yeni üyeler kabul edilsin mi?"
 msgid "Description of team"
 msgstr "Takımın tanıtımı"
 
-msgid "Create new team"
-msgstr "Yeni bir takım oluştur"
-
 msgid "Create a team"
 msgstr "Takım oluştur"
 
 msgid "Save team"
 msgstr "Takımı kaydet"
 
-msgid "Create team message board"
-msgstr "Takım mesaj panosu oluştur"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "Zaten BOINC çalıştırıyorsanız,  <i>Proje\n      Ekle</i>yi seçin."
 
-msgid "Create message board"
-msgstr "Mesaj panosu oluştur"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "Eğer BOINC'in bir komut satırı sürümünü çalıştırıyorsanız,\n        önce bu projede bir hesap oluşturmak için (gerekirse başka bir yerde)\n        BOINC Manager yazılımını kullanın, daha sonra komut satırı sürümü ile\n        bağlanmak için, oluşturduğunuz söz konusu hesabı kullanabilirsiniz."
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "Bir kullanıcının bu mesaj panosuna gönderebilmek için sahip olması gereken minimum ortalama krediyi ayarlayın."
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "Eğer 5.0 öncesi BOINC sürümünü çalıştırıyorsanız,\n        bu projede bir hesap oluşturmak için lütfen daha yeni bir\n        sürüme yükseltin."
+
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "Hesabınızın e-posta adresini unuttuysanız, veya buradan e-posta alamıyorsanız:"
+
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "Bu hesap altında BOINC çalıştırdıysanız, ona hala erişebilirsiniz. İşte nasıl olacağı:"
+
+msgid "BOINC documentation"
+msgstr "BOINC belgeleri"
+
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "Bilgisayarınızdaki BOINC veri dizinine gidin (bunu bulmada yardım için bakın: !boinc_wiki)"
+
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "Bu proje için hesap dosyanızı bulun;  %file benzeri bir ismi olacaktır (proje URL'si %url olan yerde)."
+
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "Not Defteri gibi bir metin düzenleyicisinde dosyayı açın. Şunun gibi bir şey göreceksiniz:"
+
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr " <authenticator> ve </authenticator&gt arasındaki metin dizisini seçin ve kopyalayın; (yukarıdaki örnekte %auth)."
+
+msgid "Paste the string into the field below, and click OK."
+msgstr "Metin dizisini aşağıdaki bölüme yapıştırın ve ardından Tamam'a basın."
+
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "Artık hesabınıza giriş yapmış olacaksınız; hesabınızın e-posta ve şifresini güncelleyin."
+
+msgid "Log in with authenticator"
+msgstr "Kimlik doğrulayıcı ile giriş"
+
+msgid "OK"
+msgstr "Tamam"
 
 msgid "Post new topic"
 msgstr "Yeni konu gönder"
 
-msgid "Anonymous"
-msgstr "Anonim"
+msgid "Create team message board"
+msgstr "Takım mesaj panosu oluştur"
 
-msgid "Unpublished"
-msgstr "Yayınlanmamış"
+msgid "Message board title"
+msgstr "Mesaj panosu başlığı"
 
-msgid "Sorry, unrecognized email address or password."
-msgstr "Maalesef, tanınmayan e-posta adresi veya şifre."
+msgid "Minimum time between posts"
+msgstr "İki gönderi arasındaki en kısa süre"
 
-msgid "Have you forgotten your password?"
-msgstr "Parolanızı mı unuttunuz?"
+msgid "Seconds"
+msgstr "Saniye"
 
-msgid "Id"
-msgstr "NO"
+msgid "Minimum total credit to post"
+msgstr "İleti gönderebilmek için sahip olunması gereken en az kredi"
 
-msgid "Recent average credit"
-msgstr "Güncel ortalama kredi"
+msgid "Minimum avg credit to post"
+msgstr "İleti gönderebilmek için sahip olunması gereken en az ortalama kredi"
 
-msgid "Members"
-msgstr "Üyeler"
+msgid "Allow public to read board?"
+msgstr "Panoyu herkes okuyabilsin mi?"
 
-msgid "Total Credit"
-msgstr "Toplam kredi"
+msgid "Create message board"
+msgstr "Mesaj panosu oluştur"
 
-msgid "User ID"
-msgstr "Kullanıcı NO"
+msgid "About message boards"
+msgstr "Mesaj panoları hakkında"
 
-msgid "User"
-msgstr "Kullanıcı"
+msgid "You may create a message board for use by @team"
+msgstr "@team tarafından kullanılması için bir mesaj panosu oluşturabilirsiniz"
 
-msgid "Admin since"
-msgstr "Yöneticilik başlangıcı"
+msgid "Only members may post"
+msgstr "Yalnızca takım üyeleri gönderi gönderebilir."
 
-msgid "Team ID"
-msgstr "Takım NO"
+msgid "Only members may read (optional)"
+msgstr "Yalnızca üyeler gönderileri okuyabilir (tercihinize bağlı)."
 
-msgid "User joined"
-msgstr "Katılma tarihi"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "Kurucu ve Takım Yöneticileri moderasyon izinlerine sahip olacak"
 
-msgid "Timestamp"
-msgstr "Zaman damgası"
+msgid "@ip_address (same the last @count times)"
+msgstr "@ip_address (son @count kez ile aynı)"
 
-msgid "Account Key"
-msgstr "Hesap anahtarı"
+msgid "Revise or post comment"
+msgstr "Yorumu düzenle ya da gönder"
 
-msgid "CPID"
-msgstr "CPID"
+msgid ""
+"Sometimes BOINC assigns separate identities to the same computer by mistake."
+" You can correct this by merging old identities with the newest one."
+msgstr "Bazen BOINC yanlışlıkla aynı bilgisayara farklı kimlikler atar. En yenisiyle eski kimlikleri birleştirerek, bunu düzeltebilirsiniz."
 
-msgid "Email Address"
-msgstr "E-posta Adresi"
+msgid ""
+"Check the computers that are the same as @name (created on @date at @time "
+"with computer ID @id)"
+msgstr "@name ile aynı bilgisayarları kontrol et (@date tarihinde @time saatinde @id bilgisayar ID'si ile yaratılanları)"
 
-msgid "Password Hash"
-msgstr "Parola kodu"
+msgid "Computer @old_id has been merged successfully into @id."
+msgstr "@old_id bilgisayarı @id ile başarılı şekilde birleştirildi."
 
-msgid "Postal Code"
-msgstr "Posta kodu"
+msgid "parent removed"
+msgstr "üst kaldırıldı"
 
-msgid "Send Email"
-msgstr "E-posta gönder"
+msgid "Remove"
+msgstr "Kaldır"
 
-msgid "Show Hosts"
-msgstr "Bilgisayarları göster"
+msgid ""
+"Authentication is required when changing E-mail address or setting new "
+"password."
+msgstr "E-posta adresini değiştirirken veya yeni bir parola ayarlarken doğrulama gereklidir."
 
-msgid "URL"
-msgstr "Site"
+msgid "Make unsticky"
+msgstr "Üst konudan kaldır"
+
+msgid "Remove sticky status from this topic"
+msgstr "Bu konudan yapışkan durumunu kaldır"
+
+msgid "Unhide"
+msgstr "Gizliliği kaldır"
+
+msgid "Unhide this comment"
+msgstr "Bu yorumun gizliliğini kaldırır"
 
-msgid "Computer ID"
-msgstr "Bilgisayar NO"
+msgid "Unpublished"
+msgstr "Yayınlanmamış"
 
-msgid "Location"
-msgstr "Konum"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "@old_ids bilgisayarları @id ile başarılı şekilde birleştirildi."
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "BOINC çalışırken, yeni işlerin kabul edildiği zaman yüzdesi"
+msgid "Joined"
+msgstr "Üyelik"
 
-msgid "Average turnaround time"
-msgstr "Ortalama geri dönüş zamanı"
+msgid "Credit"
+msgstr "Kredi"
 
-msgid "Created"
-msgstr "Oluşturulma"
+msgid "RAC"
+msgstr "Güncel ort. kredi"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "BOINC çalışırken, bilgisayarın internet bağlantısına sahip olduğu zaman yüzdesi"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "@email adresi için hesap bulunamadı -- \"Yeni Kayıt\" bölümünden kaydolun"
 
-msgid "Average CPU efficiency"
-msgstr "Ortalama CPU verimi"
+msgid "started discussion"
+msgstr "başlamış tartışma"
 
-msgid "Free disk space"
-msgstr "Boş disk alanı"
+msgid "commented on"
+msgstr "yorumlandı"
 
-msgid "Total disk space"
-msgstr "Toplam disk alanı"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "Şifre geçerli değil. Lütfen doğruluğunu kontrol edin."
 
-msgid "Task duration correction factor"
-msgstr "İş süre düzeltme çarpanı"
+msgid "Minimum value not met for @field"
+msgstr "@field için asgari değer karşılanmadı"
 
-msgid "Avg. credit"
-msgstr "Ort. kredi"
+msgid "Invalid data type for @field"
+msgstr "@field için geçersiz veri tipi"
 
-msgid "External IP address"
-msgstr "Harici IP adresi"
+msgid "News"
+msgstr "Haberler"
 
-msgid "Cross project ID"
-msgstr "Çapraz-proje NO"
+msgid "Remove friend"
+msgstr "Arkadaşlıktan çıkar"
 
-msgid "Last IP address"
-msgstr "Son IP adresi"
+msgid "ignore list"
+msgstr "listeyi yok say"
 
-msgid "Cache"
-msgstr "Önbellek"
+msgid "here"
+msgstr "buraya"
 
-msgid "Memory"
-msgstr "Bellek"
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username !ignore_list listenizde. Bu postayı görmek için !here tıklayın."
 
-msgid "Swap space"
-msgstr "Sanal bellek"
+msgid "hidden"
+msgstr "gizli"
 
-msgid "Average download rate"
-msgstr "Ortalama indirme hızı"
+msgid "Unknown"
+msgstr "Bilinmiyor"
 
-msgid "Average upload rate"
-msgstr "Ortalama gönderme hızı"
+msgid "Invalid setting for \"%preference\""
+msgstr "\"%preference\" için geçersiz ayar"
 
-msgid "Same IP address count"
-msgstr "Aynı IP adresi sayımı"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: yorum \"!topic_name\" konusuna gönderildi"
 
-msgid "% of time BOINC client is running"
-msgstr "BOINC'in çalışır durumda olduğu zaman yüzdesi"
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author \"!topic_name\" konusuna bir yanıt gönderdi."
 
-msgid "Operating system"
-msgstr "İşletim sistemi"
+msgid ""
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "Bu konuyu !site sitesinde görmek için, tıklayın: \n!comment_url"
 
-msgid "Operating system version"
-msgstr "İşletim sistemi sürümü"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "Takım kurucusu transfer isteğinize yanıt vermek için @count güne sahip."
 
-msgid "Measured floating point speed"
-msgstr "Ölçülen kayan nokta hızı"
+msgid "Unlock"
+msgstr "Kilidi kaldır"
 
-msgid "Measured integer speed"
-msgstr "Ölçülen tamsayı hızı"
+msgid "Unlock this thread for comments"
+msgstr "Bu konuyu yorumlara aç"
 
-msgid "CPU model"
-msgstr "CPU modeli"
+msgid "project"
+msgstr "proje"
 
-msgid "Number of processors"
-msgstr "İşlemci adedi"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email uygun formatta değil, lütfen kontrol edin"
 
-msgid "CPU"
-msgstr "CPU"
+msgid "Please enter your email address"
+msgstr "Lütfen e-posta adresinizi girin"
 
-msgid "Number of times client has contacted server"
-msgstr "İstemcinin sunucuya bağlanma sayısı"
+msgid "There is no account with that authenticator."
+msgstr "Bu kimlik doğrulayıcıyla ilişkili bir hesap yok. "
 
-msgid "Last contact"
-msgstr "Son bağlantı"
+msgid "That authenticator is not valid."
+msgstr "Bu kimlik doğrulayıcı geçerli değil."
 
-msgid "Serial number"
-msgstr "Seri numarası"
+msgid "Send request"
+msgstr "İstek yolla"
 
-msgid "Timezone"
-msgstr "Zaman dilimi"
+msgid "Friend request from !name [!site]"
+msgstr "!name katılımcısından arkadaşlık isteği [!site]"
 
-msgid "Platform ID"
-msgstr "Platform NO"
+msgid "Message"
+msgstr "Mesaj"
 
-msgid "Task ID"
-msgstr "İş NO"
+msgid ""
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name sizi !site sitesinde arkadaş olarak ekledi. Bu isteği kabul edebilir veya reddedebilirsiniz. İsteği reddedince bir bildirim gönderilmeyecek, fakat istek her ikinizin hesaplarından kaldırılacak. \n\nBu isteği görmek için aşağıdaki bağlantıyı izleyin:\n!link\n\n!message\n\nTeşekkürler,\n!site takımı"
+
+msgid "Cancel friend request"
+msgstr "Arkadaşlık isteğini iptal et"
+
+msgid "Please set the minimum time required between posts."
+msgstr "Lütfen iki gönderi arasında gereken en kısa süreyi ayarlayın."
 
-msgid "Workunit ID"
-msgstr "İş birimi NO"
+msgid ""
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "Bir kullanıcının bu mesaj panosuna gönderebilmek için kazanması gereken minimum toplam krediyi ayarlayın."
 
-msgid "Host ID"
-msgstr "Sunucu NO"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "Bir kullanıcının bu mesaj panosuna gönderebilmek için sahip olması gereken minimum ortalama krediyi ayarlayın."
 
-msgid "Application ID"
-msgstr "Uygulama NO"
+msgid "Edit message board"
+msgstr "Mesaj panosunu düzenle"
 
-msgid "Application version"
-msgstr "Uygulama sürümü"
+msgid "Save message board"
+msgstr "Mesaj panosunu kaydet"
 
-msgid "Claimed credit"
-msgstr "İstenen kredi"
+msgid "This is a team-only message board"
+msgstr "Bu, yalnızca takıma ait bit mesaj panosudur"
 
-msgid "Client state"
-msgstr "İstemci durumu"
+msgid "Maximum value exceeded for @field"
+msgstr "@field için azami değer aşıldı"
 
-msgid "CPU time"
-msgstr "CPU zamanı"
+msgid "Approve request"
+msgstr "İsteği kabul et"
 
-msgid "Run time"
-msgstr "Çalışma zamanı"
+msgid "!name accepted your friend request [!site]"
+msgstr "!name arkadaşlık isteğini kabul etti! [!site]"
 
-msgid "Exit status"
-msgstr "Çıkış kodu"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name sizi !site sitesinde arkadaş olarak onayladı.\n\nProfilini görmek için bu bağlantıyı izleyin:\n!link\n\n!message\n\nTeşekkürler,\n!site takımı"
 
-msgid "Granted credit"
-msgstr "Alınan kredi"
+msgid "posted"
+msgstr "gönderildi"
 
-msgid "Outcome"
-msgstr "Sonuç"
+msgid "Add team admin"
+msgstr "Takım yöneticisi ekle"
 
-msgid "Report deadline"
-msgstr "Son teslim zamanı"
+msgid "Enter email address"
+msgstr "E-posta adresinizi girin"
 
-msgid "Sent"
-msgstr "Gönderilme"
+msgid "Current team admins"
+msgstr "Şu anki takımı yöneticileri"
 
-msgid "Server state"
-msgstr "Sunucu durumu"
+msgid "About team admins"
+msgstr "Takım Yöneticileri hakkında"
 
-msgid "Stderr out"
-msgstr "Stderr çıktısı"
+msgid "Team admins can:"
+msgstr "Takım yöneticileri bunları yapabilir:"
 
-msgid "Validation state"
-msgstr "Doğrulama durumu"
+msgid "Edit team information"
+msgstr "Takım bilgisini düzenleme"
 
-msgid "Canonical credit"
-msgstr "Kabul edilen kredi"
+msgid "View the team's join / quit history"
+msgstr "Takımın katılma/ayrılma geçmişini görüntüleme"
 
-msgid "Canonical result ID"
-msgstr "Kabul edilen sonuç NO"
+msgid "Moderate the team forum"
+msgstr "Mevcutsa, takım forumunu yönetme"
 
-msgid "Created time"
-msgstr "Oluşturulma zamanı"
+msgid "Remove members from the team"
+msgstr "Takımdan bir üyeyi çıkarma"
 
-msgid "Needs validation"
-msgstr "Doğrulama gerekiyor"
+msgid "Disband a team if it has no members"
+msgstr "Üyesi yoksa takımı kaldırma"
 
-msgid "Initial replication"
-msgstr "Başlangıçtaki kopya sayısı"
+msgid "Team admins cannot:"
+msgstr "Takım Yöneticileri şunları yapamaz:"
 
-msgid "Computer"
-msgstr "Bilgisayar"
+msgid "Change the team founder"
+msgstr "Takım kurucusunu değiştirme"
 
-msgid "Consecutive valid tasks"
-msgstr "Ardarda gelen doğrulanmış işler"
+msgid "Add / Remove team admins"
+msgstr "Takım Yöneticileri ekle/kaldır"
 
-msgid "Number of tasks completed"
-msgstr "Tamamlanan iş sayısı"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "Bir takım yöneticisi takımdan çıkarsa, takım yöneticisi olmak çıkar. Sadece tanıdığınız ve güvendiğiniz kişileri seçmenizi öneririz"
 
-msgid "Max tasks per day"
-msgstr "Günlük ortalama en fazla iş"
+msgid "Lift user ban"
+msgstr "Kullanıcı engellemesini kaldır"
 
-msgid "Number of tasks today"
-msgstr "Bugünkü iş sayısı"
+msgid "A team named \"@name\" already exists."
+msgstr "\"@name\" adında bir takım zaten mevcut."
 
-msgid "Show IP address"
-msgstr "IP adresini görüntüle"
+msgid "A BOINC account already exists for @email."
+msgstr "@email adresi için bir BOINC hesabı zaten var."
 
-msgid "hours"
-msgstr "saat"
+msgid "Make founder"
+msgstr "Kurucu yap"
 
-msgid "Remove friend"
-msgstr "Arkadaşlıktan çıkar"
+msgid "Changing the team founder"
+msgstr "Takım kurucusu değiştirme"
 
-msgid "Ban user"
-msgstr "Kullanıcıyı engelle"
+msgid "Notes about changes in foundership:"
+msgstr "Kurucu değişimleri hakkında notlar:"
 
-msgid "Add as friend"
-msgstr "Arkadaş olarak ekle"
+msgid "Any member of the team is eligible"
+msgstr "Takımın herhangi bir üyesi uygundur"
 
-msgid "Team"
-msgstr "Takım"
+msgid "Current founder becomes a normal user"
+msgstr "Güncel kurucu normal bir kullanıcı haline gelecektir"
 
-msgid "Reply"
-msgstr "Yanıtla"
+msgid "Foundership can be requested by team members:"
+msgstr "Kuruculuk ekip üyeleri tarafından talep edilebilir:"
 
-msgid "Reply to this comment"
-msgstr "Bu yorumu yanıtla"
+msgid "One request is allowed at a time"
+msgstr "Bir defada bir isteğe izin verilir"
 
-msgid "Quote"
-msgstr "Alıntı"
+msgid "It must be 60 days since any previous request"
+msgstr "Herhangi bir önceki istekten bu yana 60 gün geçmeli"
 
-msgid "Reply to this comment with quote"
-msgstr "Bu yorumu alıntıyla yanıtla"
+msgid "Any active request must be older than 90 days"
+msgstr "Herhangi bir etkin isteğin 90 günden daha eski olması gerekir"
 
-msgid "Edit this comment"
-msgstr "Bu yorumu düzenle"
+msgid "Current founder has 60 days to respond to a request"
+msgstr "Geçerli kurucunun bir isteğine yanıt vermek için 60 günü vardır"
 
-msgid "Delete this comment"
-msgstr "Bu yorumu sil"
+msgid "BOINC-wide teams site"
+msgstr "BOINC çapındaki takımlar sitesi"
 
-msgid "Hide this comment"
-msgstr "Bu yorumu gizle"
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "Bu BOINC çapında bir takımdır. Değişiklikler !site sitesinde yapılabilir. "
 
-msgid "Convert"
-msgstr "Dönüştür"
+msgid ""
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "Yakın zamanda bir takım kuruculuğu değişiklik isteği zaten yapıldı. 90 günlük bir dönemde yalnız bir isteğe izin verilir."
 
-msgid "Convert this comment to a new topic"
-msgstr "Bu yorumu yeni bir konuya dönüştür"
+msgid "@count days remaining"
+msgstr "@count gün kaldı"
 
-msgid "Details"
-msgstr "Detaylar"
+msgid "Team name is required."
+msgstr "Takım adı gereklidir."
 
-msgid "Make unsticky"
-msgstr "Üst konudan kaldır"
+msgid "Reason for banning this user"
+msgstr "Bu kullanıcının engellenme nedeni"
 
 msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Bazen BOINC yanlışlıkla aynı bilgisayara farklı kimlikler atar. En yenisiyle eski kimlikleri birleştirerek, bunu düzeltebilirsiniz."
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "Bu gerekçe kullanıcıya iletilecek bir e-postaya dahil edilecek. Lütfen kullanıcının neden yasaklandığını anlatan kısa bir açıklama yazınız."
 
-msgid "Remove"
-msgstr "Kaldır"
+msgid "Duration of the ban"
+msgstr "Engelleme süresi"
 
-msgid "hidden"
-msgstr "gizli"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "Yasak kalkıncaya dek geçecek gün sayısı. Yasağı kalıcı yapmak için değeri 0 yapın."
+
+msgid "Submit"
+msgstr "Gönder"
diff --git a/locale/tr/BOINC-Manager.mo b/locale/tr/BOINC-Manager.mo
index 6527e1a..df59d05 100644
Binary files a/locale/tr/BOINC-Manager.mo and b/locale/tr/BOINC-Manager.mo differ
diff --git a/locale/tr/BOINC-Manager.po b/locale/tr/BOINC-Manager.po
index 665a05f..b28e5f9 100644
--- a/locale/tr/BOINC-Manager.po
+++ b/locale/tr/BOINC-Manager.po
@@ -1,52 +1,58 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Can Demirel <aycandemirel at hotmail.com>, 2015-2017
+# Emre GÜN <thondras at gmail.com>, 2015
+# Faruk SARI <faruksari at hotmail.com>, 2015
+# ilkeryus <ilkeryus at gmail.com>, 2016
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-02 00:00-0800\n"
-"PO-Revision-Date: 2015-02-09 01:19+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Turkish (http://www.transifex.com/projects/p/boinc/language/tr/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-03 17:42+0000\n"
+"Last-Translator: Can Demirel <aycandemirel at hotmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/boinc/boinc/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "%s için hesap bilgilerinizi girin"
 
-#: AccountInfoPage.cpp:393
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "Lütfen hesap bilgilerinizi girin\n(bir hesap yaratmak için, projenin sitesini ziyaret edin)"
 
-#: AccountInfoPage.cpp:397
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "Bu proje şu anda yeni hesapları kabul etmiyor.\nYalnızca, mevcut bir hesabınız varsa projeyi ekleyebilirsiniz."
 
-#: AccountInfoPage.cpp:401
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "Bu projeye daha önce üye oldunuz mu?"
 
-#: AccountInfoPage.cpp:405
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "&Hayır, yeni kullanıcıyım"
 
-#: AccountInfoPage.cpp:408
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "&Evet, bilgilerimi gireceğim"
 
-#: AccountInfoPage.cpp:413
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -56,467 +62,508 @@ msgid ""
 "password fields."
 msgstr "Hesap bilginizi otomatik olarak ayarlayamadık.\n\nLütfen, e-posta adresi ve parola bölümlerine ne yazılması\ngerektiğini bulmak için aşağıdaki 'Giriş bilgisini bul' \nbağlantısına tıklayın."
 
-#: AccountInfoPage.cpp:416
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "Giriş bilgilerini bul"
 
-#: AccountInfoPage.cpp:436 AccountInfoPage.cpp:641
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "&Parola:"
 
-#: AccountInfoPage.cpp:443 AccountInfoPage.cpp:665
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "Bir &parola yazın:"
 
-#: AccountInfoPage.cpp:446
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "Parolayı &tekrar yazın:"
 
-#: AccountInfoPage.cpp:453
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "Zaten %s projesini çalıştırıyor musunuz?"
 
-#: AccountInfoPage.cpp:482
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "&Kullanıcı adı:"
 
-#: AccountInfoPage.cpp:508
+#: clientgui/AccountInfoPage.cpp:483
+msgid "&Email address or LDAP ID:"
+msgstr "&E-posta adresi ya da LDAP ID:"
+
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "&E-posta adresi:"
 
-#: AccountInfoPage.cpp:515
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "en az %d karakter"
 
-#: AccountInfoPage.cpp:522
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "Parolanızı mı unuttunuz?"
 
-#: AccountInfoPage.cpp:529
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "Eğer bu hesap yöneticisine henüz kayıtlı değilseniz, devam\netmeden önce kaydolun.  Lütfen kaydolmak ya da unuttuğunuz\nparolayı bulmak için aşağıdaki bağlantıya tıklayın."
 
-#: AccountInfoPage.cpp:532
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "Hesap Yöneticisi sitesi"
 
-#: AccountInfoPage.cpp:574 WelcomePage.cpp:348
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "Proje ekle"
 
-#: AccountInfoPage.cpp:576
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "Hesap yöneticisini güncelle"
 
-#: AccountInfoPage.cpp:578 WelcomePage.cpp:307 WelcomePage.cpp:321
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "Hesap yöneticisi kullan"
 
-#: AccountInfoPage.cpp:585
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "Lütfen bir kullanıcı adı yazın."
 
-#: AccountInfoPage.cpp:587
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "Lütfen bir e-posta adresi yazın."
 
-#: AccountInfoPage.cpp:597
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "Lütfen en az %d karakterden oluşan bir parola yazın."
 
-#: AccountInfoPage.cpp:607
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "Parola ve parola doğrulaması birbirini tutmuyor. Lütfen tekrar yazın."
 
-#: AccountManagerInfoPage.cpp:272
+#: clientgui/AccountManagerInfoPage.cpp:270
 msgid "Choose an account manager"
 msgstr "Bir hesap yöneticisi seçin"
 
-#: AccountManagerInfoPage.cpp:275
+#: clientgui/AccountManagerInfoPage.cpp:273
 msgid ""
 "To choose an account manager, click its name or \n"
 "type its URL below."
 msgstr "Bir hesap yöneticisi seçmek için ismine tıklayın ya da \naşağıya internet adresini girin."
 
-#: AccountManagerInfoPage.cpp:279
+#: clientgui/AccountManagerInfoPage.cpp:277
 msgid "Account manager details:"
 msgstr "Hesap Yöneticisi detayları:"
 
-#: AccountManagerInfoPage.cpp:283
+#: clientgui/AccountManagerInfoPage.cpp:281
 msgid "Account manager &URL:"
 msgstr "Hesap Yöneticisi &adresi:"
 
-#: AccountManagerInfoPage.cpp:287
+#: clientgui/AccountManagerInfoPage.cpp:285
 msgid "Open web page"
 msgstr "İnternet sitesini aç"
 
-#: AccountManagerInfoPage.cpp:290
+#: clientgui/AccountManagerInfoPage.cpp:288
 msgid "Visit this account manager's web site"
 msgstr "Bu Hesap Yöneticisinin internet sitesini ziyaret edin"
 
-#: AccountManagerProcessingPage.cpp:187 AccountManagerPropertiesPage.cpp:193
+#. %s is the project name
+#. i.e. 'BOINC', 'GridRepublic'
+#: clientgui/AccountManagerProcessingPage.cpp:186
+#: clientgui/AccountManagerPropertiesPage.cpp:192
 #, c-format
 msgid "Communicating with %s."
 msgstr "%s ile bağlantı kuruluyor."
 
-#: AccountManagerProcessingPage.cpp:194 AccountManagerPropertiesPage.cpp:200
+#: clientgui/AccountManagerProcessingPage.cpp:193
+#: clientgui/AccountManagerPropertiesPage.cpp:199
 msgid "Communicating with server."
 msgstr "Sunucu ile bağlantı kuruluyor."
 
-#: AccountManagerProcessingPage.cpp:199 AccountManagerPropertiesPage.cpp:205
+#: clientgui/AccountManagerProcessingPage.cpp:198
+#: clientgui/AccountManagerPropertiesPage.cpp:204
 msgid "Please wait..."
 msgstr "Lütfen bekleyin..."
 
-#: AccountManagerProcessingPage.cpp:326
+#: clientgui/AccountManagerProcessingPage.cpp:325
 msgid "An internal server error has occurred.\n"
 msgstr "Sunucuda dahili bir hata meydana geldi.\n"
 
-#: AdvancedFrame.cpp:95
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "Bağlandı"
 
-#: AdvancedFrame.cpp:103
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "Bağlantı kesildi"
 
-#: AdvancedFrame.cpp:322 sg_BoincSimpleFrame.cpp:119
+#: clientgui/AdvancedFrame.cpp:329
+#, c-format
+msgid "New %s window..."
+msgstr "Yeni %s penceresi..."
+
+#: clientgui/AdvancedFrame.cpp:333
+#, c-format
+msgid "Open another %s window"
+msgstr "Başka bir %s penceresi açar."
+
+#: clientgui/AdvancedFrame.cpp:344
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "Bilgisayar seç...⇥Ctrl+Shift+I"
+
+#: clientgui/AdvancedFrame.cpp:345
+msgid "Connect to a BOINC client on another computer"
+msgstr "Başka bir bilgisayardaki BOINC istemcisine bağlanmayı sağlar."
+
+#: clientgui/AdvancedFrame.cpp:349
+msgid "Shut down connected client..."
+msgstr "Bağlı olan istemciyi kapat..."
+
+#: clientgui/AdvancedFrame.cpp:350
+msgid "Shut down the currently connected BOINC client"
+msgstr "Şu anda bağlı olunan BOINC istemcisini kapatır."
+
+#: clientgui/AdvancedFrame.cpp:355 clientgui/sg_BoincSimpleFrame.cpp:120
 #, c-format
 msgid "Close the %s window"
 msgstr "%s penceresini kapatır."
 
-#: AdvancedFrame.cpp:325 sg_BoincSimpleFrame.cpp:122
-msgid "&Close Window"
+#: clientgui/AdvancedFrame.cpp:358 clientgui/sg_BoincSimpleFrame.cpp:123
+msgid "&Close window"
 msgstr "&Pencereyi kapat"
 
-#: AdvancedFrame.cpp:336 AdvancedFrame.cpp:343 AdvancedFrame.cpp:350
+#: clientgui/AdvancedFrame.cpp:367 clientgui/AdvancedFrame.cpp:372
+#: clientgui/AdvancedFrame.cpp:377 clientgui/sg_BoincSimpleFrame.cpp:132
+#: clientgui/sg_BoincSimpleFrame.cpp:137
 #, c-format
 msgid "Exit %s"
 msgstr "%s'dan çık"
 
-#: AdvancedFrame.cpp:371
+#: clientgui/AdvancedFrame.cpp:391 clientgui/sg_BoincSimpleFrame.cpp:151
+msgid "Preferences..."
+msgstr "Tercihler..."
+
+#: clientgui/AdvancedFrame.cpp:400
 msgid "&Notices\tCtrl+Shift+N"
 msgstr "&Bildirimler\tCtrl+Shift+N"
 
-#: AdvancedFrame.cpp:372
-msgid "Display notices"
-msgstr "Bildirimleri görüntüler."
+#: clientgui/AdvancedFrame.cpp:401
+msgid "Show notices"
+msgstr "Bildirimleri gösterir."
 
-#: AdvancedFrame.cpp:377
+#: clientgui/AdvancedFrame.cpp:406
 msgid "&Projects\tCtrl+Shift+P"
 msgstr "&Projeler\tCtrl+Shift+P"
 
-#: AdvancedFrame.cpp:378
-msgid "Display projects"
-msgstr "Projeleri görüntüler."
+#: clientgui/AdvancedFrame.cpp:407
+msgid "Show projects"
+msgstr "Projeleri gösterir."
 
-#: AdvancedFrame.cpp:383
+#: clientgui/AdvancedFrame.cpp:412
 msgid "&Tasks\tCtrl+Shift+T"
 msgstr "İ&şler\tCtrl+Shift+T"
 
-#: AdvancedFrame.cpp:384
-msgid "Display tasks"
-msgstr "İşleri görüntüler."
+#: clientgui/AdvancedFrame.cpp:413
+msgid "Show tasks"
+msgstr "İşleri gösterir."
 
-#: AdvancedFrame.cpp:389
+#: clientgui/AdvancedFrame.cpp:418
 msgid "Trans&fers\tCtrl+Shift+X"
 msgstr "&Aktarımlar\tCtrl+Shift+X"
 
-#: AdvancedFrame.cpp:390
-msgid "Display transfers"
-msgstr "Aktarımları görüntüler."
+#: clientgui/AdvancedFrame.cpp:419
+msgid "Show file transfers"
+msgstr "Dosya Aktarımlarını gösterir."
 
-#: AdvancedFrame.cpp:395
+#: clientgui/AdvancedFrame.cpp:424
 msgid "&Statistics\tCtrl+Shift+S"
 msgstr "İ&statistikler\tCtrl+Shift+S"
 
-#: AdvancedFrame.cpp:396
-msgid "Display statistics"
-msgstr "İstatistikleri görüntüler."
+#: clientgui/AdvancedFrame.cpp:425
+msgid "Show statistics"
+msgstr "İstatistikleri gösterir."
 
-#: AdvancedFrame.cpp:401
-msgid "&Disk usage\tCtrl+Shift+D"
-msgstr "&Disk kullanımı\tCtrl+Shift+D"
+#: clientgui/AdvancedFrame.cpp:430
+msgid "&Disk\tCtrl+Shift+D"
+msgstr "&Disk\tCtrl+Shift+D"
 
-#: AdvancedFrame.cpp:402
-msgid "Display disk usage"
-msgstr "Disk kullanımını görüntüler."
+#: clientgui/AdvancedFrame.cpp:431
+msgid "Show disk usage"
+msgstr "Disk kullanımını gösterir."
 
-#: AdvancedFrame.cpp:409
+#: clientgui/AdvancedFrame.cpp:438
 msgid "Simple &View...\tCtrl+Shift+V"
 msgstr "&Basit görünüm...\tCtrl+Shift+V"
 
-#: AdvancedFrame.cpp:410
-msgid "Display the simple graphical interface."
-msgstr "Basit grafiksel arayüzü görüntüler."
+#: clientgui/AdvancedFrame.cpp:439
+msgid "Switch to the Simple View"
+msgstr "BOINC Basit Görünümüne geçiş yapar."
+
+#: clientgui/AdvancedFrame.cpp:453 clientgui/AdvancedFrame.cpp:477
+#: clientgui/sg_BoincSimpleFrame.cpp:205
+msgid "&Add project..."
+msgstr "&Proje ekle..."
+
+#: clientgui/AdvancedFrame.cpp:454 clientgui/AdvancedFrame.cpp:478
+#: clientgui/sg_BoincSimpleFrame.cpp:206
+msgid "Add a project"
+msgstr "Bir proje eklemenizi sağlar."
 
-#: AdvancedFrame.cpp:424
-msgid "&Add project or account manager..."
-msgstr "&Proje ya da hesap yöneticisi ekle..."
+#: clientgui/AdvancedFrame.cpp:458
+msgid "&Use account manager..."
+msgstr "&Hesap yöneticisi kullan..."
 
-#: AdvancedFrame.cpp:425 sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "Bilimin pek çok alanından 30'dan fazla projeden birisi için gönüllü olun"
+#: clientgui/AdvancedFrame.cpp:459
+msgid "Use an account manager to control this computer."
+msgstr "Bu bilgisayarı yönetmek için bir Hesap Yöneticisi kullanmanızı sağlar."
 
-#: AdvancedFrame.cpp:429
+#: clientgui/AdvancedFrame.cpp:463
 #, c-format
 msgid "&Synchronize with %s"
 msgstr "%s ile &eşitle"
 
-#: AdvancedFrame.cpp:433
+#: clientgui/AdvancedFrame.cpp:467
 #, c-format
 msgid "Get current settings from %s"
 msgstr "Güncel ayarları %s hesap yöneticisinden alır."
 
-#: AdvancedFrame.cpp:443
-msgid "&Add project..."
-msgstr "&Proje ekle..."
-
-#: AdvancedFrame.cpp:444
-msgid "Add a project"
-msgstr "Bir proje eklemenizi sağlar."
-
-#: AdvancedFrame.cpp:447
+#: clientgui/AdvancedFrame.cpp:481
 #, c-format
 msgid "S&top using %s..."
 msgstr "%s kullanmayı durdur..."
 
-#: AdvancedFrame.cpp:453
+#: clientgui/AdvancedFrame.cpp:487
 msgid "Remove this computer from account manager control."
 msgstr "Bu bilgisayarı hesap yöneticisi kontrolünden çıkarır."
 
-#: AdvancedFrame.cpp:458 sg_BoincSimpleFrame.cpp:178
-msgid "&Options..."
-msgstr "&Seçenekler..."
+#: clientgui/AdvancedFrame.cpp:493
+msgid "Run CPU &benchmarks"
+msgstr "&İşlemci testlerini çalıştır"
 
-#: AdvancedFrame.cpp:459 sg_BoincSimpleFrame.cpp:179
-msgid "Configure display options and proxy settings"
-msgstr "Arayüz seçeneklerini ve vekil sunucu ayarlarını yapılandırabileceğiniz pencereyi açar."
+#: clientgui/AdvancedFrame.cpp:494
+msgid "Run tests that measure CPU speed"
+msgstr "CPU hızını belirleyecek testleri çalıştırır."
 
-#: AdvancedFrame.cpp:463 sg_BoincSimpleFrame.cpp:172
-msgid "Computing &preferences..."
-msgstr "&Hesaplama tercihleri..."
+#: clientgui/AdvancedFrame.cpp:498
+msgid "Retry pending transfers"
+msgstr "Bekleyen aktarımları yeniden dene"
 
-#: AdvancedFrame.cpp:464 sg_BoincSimpleFrame.cpp:173
-msgid "Configure computing preferences"
-msgstr "İşlerin çalışmasıyla ilgili bu bilgisayara ait tercihleri ayarlayabileceğiniz pencereyi açar."
+#: clientgui/AdvancedFrame.cpp:499
+msgid "Retry deferred file transfers and task requests"
+msgstr "Bekleyen dosya transferlerini ve iş isteklerini yeniden dener."
+
+#: clientgui/AdvancedFrame.cpp:504 clientgui/sg_BoincSimpleFrame.cpp:211
+msgid "Event Log...\tCtrl+Shift+E"
+msgstr "Olay günlüğü...\tCtrl+Shift+E"
+
+#: clientgui/AdvancedFrame.cpp:505
+msgid "Show diagnostic messages"
+msgstr "Tanılama mesajlarını görüntüler."
 
-#: AdvancedFrame.cpp:472
+#: clientgui/AdvancedFrame.cpp:513
 msgid "&Run always"
 msgstr "&Daima çalış"
 
-#: AdvancedFrame.cpp:473
+#: clientgui/AdvancedFrame.cpp:514
 msgid "Allow work regardless of preferences"
 msgstr "Ayarları göz önüne almadan işleri sürekli çalıştırır."
 
-#: AdvancedFrame.cpp:477
+#: clientgui/AdvancedFrame.cpp:518
 msgid "Run based on &preferences"
 msgstr "&Tercihlere göre çalış"
 
-#: AdvancedFrame.cpp:478
+#: clientgui/AdvancedFrame.cpp:519
 msgid "Allow work according to preferences"
 msgstr "İşleri tercihlerdeki ayarlarınıza göre çalıştırır."
 
-#: AdvancedFrame.cpp:482
+#: clientgui/AdvancedFrame.cpp:523
 msgid "&Suspend"
 msgstr "&Durdur"
 
-#: AdvancedFrame.cpp:483
+#: clientgui/AdvancedFrame.cpp:524
 msgid "Stop work regardless of preferences"
 msgstr "Ayarları göz önüne almadan işlerin çalışmasını durdurur."
 
-#: AdvancedFrame.cpp:508
+#: clientgui/AdvancedFrame.cpp:549
 msgid "Use GPU always"
 msgstr "GPU'yu &daima kullan"
 
-#: AdvancedFrame.cpp:509
+#: clientgui/AdvancedFrame.cpp:550
 msgid "Allow GPU work regardless of preferences"
 msgstr "Ayarları göz önüne almadan GPU'yu sürekli kullanır."
 
-#: AdvancedFrame.cpp:513
+#: clientgui/AdvancedFrame.cpp:554
 msgid "Use GPU based on preferences"
 msgstr "GPU'yu tercihlere göre kullan"
 
-#: AdvancedFrame.cpp:514
+#: clientgui/AdvancedFrame.cpp:555
 msgid "Allow GPU work according to preferences"
 msgstr "GPU'yu tercihlerdeki ayarlarınıza göre kullanır."
 
-#: AdvancedFrame.cpp:518
+#: clientgui/AdvancedFrame.cpp:559
 msgid "Suspend GPU"
 msgstr "GPU kullanımını durdur"
 
-#: AdvancedFrame.cpp:519
+#: clientgui/AdvancedFrame.cpp:560
 msgid "Stop GPU work regardless of preferences"
 msgstr "Ayarları göz önüne almadan GPU'nun kullanımını durdurur."
 
-#: AdvancedFrame.cpp:543
-msgid "Network activity always available"
+#: clientgui/AdvancedFrame.cpp:584
+msgid "Network activity always"
 msgstr "Ağ iletişimi daima mümkün"
 
-#: AdvancedFrame.cpp:544
+#: clientgui/AdvancedFrame.cpp:585
 msgid "Allow network activity regardless of preferences"
 msgstr "Ayarları göz önüne almadan ağ iletişimine izin verir."
 
-#: AdvancedFrame.cpp:548
+#: clientgui/AdvancedFrame.cpp:589
 msgid "Network activity based on preferences"
 msgstr "Tercihlere göre ağ iletişimi"
 
-#: AdvancedFrame.cpp:549
+#: clientgui/AdvancedFrame.cpp:590
 msgid "Allow network activity according to preferences"
 msgstr "Tercihlerdeki ayarlara göre ağ iletişimi yapar."
 
-#: AdvancedFrame.cpp:553
-msgid "Network activity suspended"
+#: clientgui/AdvancedFrame.cpp:594
+msgid "Suspend network activity"
 msgstr "Ağ iletişimini durdur"
 
-#: AdvancedFrame.cpp:554
-msgid "Stop BOINC network activity"
+#: clientgui/AdvancedFrame.cpp:595
+msgid "Stop network activity"
 msgstr "BOINC'in tüm ağ iletişimini durdurur."
 
-#: AdvancedFrame.cpp:564
-#, c-format
-msgid "Connect to another computer running %s"
-msgstr "%s çalıştıran başka bir bilgisayarı seçip bağlanmayı sağlar."
+#: clientgui/AdvancedFrame.cpp:604 clientgui/sg_BoincSimpleFrame.cpp:191
+msgid "Computing &preferences..."
+msgstr "&Hesaplama tercihleri..."
 
-#: AdvancedFrame.cpp:569
-msgid "Select computer..."
-msgstr "Bilgisayar seç ve bağlan..."
+#: clientgui/AdvancedFrame.cpp:605 clientgui/sg_BoincSimpleFrame.cpp:192
+msgid "Configure computing preferences"
+msgstr "İşlerin çalışmasıyla ilgili bu bilgisayara ait tercihleri ayarlayabileceğiniz pencereyi açar."
 
-#: AdvancedFrame.cpp:574
-msgid "Shut down connected client..."
-msgstr "Bağlı olan istemciyi kapat..."
+#: clientgui/AdvancedFrame.cpp:610
+msgid "Exclusive applications..."
+msgstr "Ayrıcalıklı uygulamalar..."
 
-#: AdvancedFrame.cpp:575
-msgid "Shut down the currently connected client"
-msgstr "Şu anda bağlı olan istemciyi kapatır."
+#: clientgui/AdvancedFrame.cpp:611
+msgid "Configure exclusive applications"
+msgstr "Ayrıcalıklı uygulamaları yapılandıracağınız pencereyi açar."
 
-#: AdvancedFrame.cpp:579
-msgid "Run CPU &benchmarks"
-msgstr "&İşlemci testlerini çalıştır"
+#: clientgui/AdvancedFrame.cpp:616
+msgid "Select columns..."
+msgstr "Sütunları seç..."
+
+#: clientgui/AdvancedFrame.cpp:617
+msgid "Select which columns to display"
+msgstr "Hangi sütunların görüntüleneceğini seçer."
+
+#: clientgui/AdvancedFrame.cpp:621
+msgid "Event Log options...\tCtrl+Shift+F"
+msgstr "Olay günlüğü seçenekleri...\tCtrl+Shift+E"
 
-#: AdvancedFrame.cpp:580
-msgid "Runs BOINC CPU benchmarks"
-msgstr "BOINC'in işlemci (CPU) testlerini çalıştırır. Sonuçları Olay Günlüğü'nde görebilirsiniz."
+#: clientgui/AdvancedFrame.cpp:622
+msgid "Enable or disable various diagnostic messages"
+msgstr "Çeşitli tanılama mesajlarını etkinleştirmenizi ya da devre dışı bırakmanızı sağlar."
 
-#: AdvancedFrame.cpp:584
-msgid "Do network communication"
-msgstr "Ağ iletişimini gerçekleştir"
+#: clientgui/AdvancedFrame.cpp:626 clientgui/sg_BoincSimpleFrame.cpp:197
+msgid "&Other options..."
+msgstr "&Diğer seçenekler..."
 
-#: AdvancedFrame.cpp:585
-msgid "Do all pending network communication"
-msgstr "Beklemedeki tüm ağ iletişimini hemen gerçekleştirir."
+#: clientgui/AdvancedFrame.cpp:627
+msgid "Configure display options and network settings"
+msgstr "Arayüz seçeneklerini ve ağ ayarlarını yapılandırabileceğiniz pencereyi açar."
 
-#: AdvancedFrame.cpp:589
+#: clientgui/AdvancedFrame.cpp:632
 msgid "Read config files"
 msgstr "Yapılandırma dosyalarını oku"
 
-#: AdvancedFrame.cpp:590
+#: clientgui/AdvancedFrame.cpp:633
 msgid ""
 "Read configuration info from cc_config.xml and any app_config.xml files"
-msgstr "Yapılandırma bilgisini cc_config.xml ve any app_config.xml dosyalarından oku"
+msgstr "Yapılandırma bilgisini cc_config.xml ve any app_config.xml dosyalarından okur."
 
-#: AdvancedFrame.cpp:594
+#: clientgui/AdvancedFrame.cpp:637
 msgid "Read local prefs file"
 msgstr "Yerel tercih dosyasını oku"
 
-#: AdvancedFrame.cpp:595
+#: clientgui/AdvancedFrame.cpp:638
 msgid "Read preferences from global_prefs_override.xml."
 msgstr "Yerel tercihleri global_prefs_override.xml dosyasından okur."
 
-#: AdvancedFrame.cpp:600
-#, c-format
-msgid "Launch another instance of %s..."
-msgstr "Bu bilgisayarda %s'ın başka bir kopyasını çalıştırır."
-
-#: AdvancedFrame.cpp:604
-#, c-format
-msgid "Launch another %s"
-msgstr "Başka bir %s çalıştır"
-
-#: AdvancedFrame.cpp:614
-msgid "Event Log...\tCtrl+Shift+E"
-msgstr "Olay günlüğü...\tCtrl+Shift+E"
-
-#: AdvancedFrame.cpp:615
-msgid "Display diagnostic messages."
-msgstr "Tanılama mesajlarını görüntüler."
-
-#: AdvancedFrame.cpp:625 sg_BoincSimpleFrame.cpp:188
+#: clientgui/AdvancedFrame.cpp:646 clientgui/sg_BoincSimpleFrame.cpp:219
 #, c-format
 msgid "%s &help"
 msgstr "%s &yardım"
 
-#: AdvancedFrame.cpp:631 sg_BoincSimpleFrame.cpp:194
+#: clientgui/AdvancedFrame.cpp:650 clientgui/sg_BoincSimpleFrame.cpp:223
 #, c-format
 msgid "Show information about %s"
 msgstr "Gönüllü kullanıcılardan %s hakkında yardım almanızı sağlar."
 
-#: AdvancedFrame.cpp:643
+#: clientgui/AdvancedFrame.cpp:660
 #, c-format
 msgid "&%s help"
 msgstr "&%s yardım"
 
-#: AdvancedFrame.cpp:649 sg_BoincSimpleFrame.cpp:212
+#: clientgui/AdvancedFrame.cpp:664 clientgui/sg_BoincSimpleFrame.cpp:237
 #, c-format
 msgid "Show information about the %s"
 msgstr "%s yardım sitesini açar."
 
-#: AdvancedFrame.cpp:661 sg_BoincSimpleFrame.cpp:224
+#: clientgui/AdvancedFrame.cpp:675 clientgui/sg_BoincSimpleFrame.cpp:247
 #, c-format
 msgid "%s &web site"
 msgstr "%s &internet sitesi"
 
-#: AdvancedFrame.cpp:667 sg_BoincSimpleFrame.cpp:230
+#: clientgui/AdvancedFrame.cpp:679 clientgui/sg_BoincSimpleFrame.cpp:251
 #, c-format
 msgid "Show information about BOINC and %s"
 msgstr "BOINC ve %s resmi internet sitesini açar."
 
-#: AdvancedFrame.cpp:679 BOINCTaskBar.cpp:530 sg_BoincSimpleFrame.cpp:242
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
+#: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
 msgstr "&%s hakkında..."
 
-#: AdvancedFrame.cpp:685 sg_BoincSimpleFrame.cpp:248
+#: clientgui/AdvancedFrame.cpp:696 clientgui/sg_BoincSimpleFrame.cpp:268
 msgid "Licensing and copyright information."
 msgstr "Sürüm, lisans, telif hakkı ve çeviri bilgisini görüntüler."
 
-#: AdvancedFrame.cpp:692 sg_BoincSimpleFrame.cpp:255
+#: clientgui/AdvancedFrame.cpp:703 clientgui/sg_BoincSimpleFrame.cpp:275
 msgid "&File"
 msgstr "&Dosya"
 
-#: AdvancedFrame.cpp:696 sg_BoincSimpleFrame.cpp:259
+#: clientgui/AdvancedFrame.cpp:707 clientgui/sg_BoincSimpleFrame.cpp:279
 msgid "&View"
 msgstr "&Görünüm"
 
-#: AdvancedFrame.cpp:700 sg_BoincSimpleFrame.cpp:263
-msgid "&Tools"
-msgstr "&Araçlar"
-
-#: AdvancedFrame.cpp:704
+#: clientgui/AdvancedFrame.cpp:711
 msgid "&Activity"
 msgstr "&Çalışma"
 
-#: AdvancedFrame.cpp:708
-msgid "A&dvanced"
-msgstr "&Gelişmiş"
+#: clientgui/AdvancedFrame.cpp:715 clientgui/sg_BoincSimpleFrame.cpp:283
+msgid "&Options"
+msgstr "&Seçenekler"
+
+#: clientgui/AdvancedFrame.cpp:719 clientgui/sg_BoincSimpleFrame.cpp:287
+msgid "&Tools"
+msgstr "&Araçlar"
 
-#: AdvancedFrame.cpp:712 DlgEventLog.cpp:332 sg_BoincSimpleFrame.cpp:267
-#: wizardex.cpp:374 wizardex.cpp:381
+#: clientgui/AdvancedFrame.cpp:723 clientgui/sg_BoincSimpleFrame.cpp:291
+#: clientgui/wizardex.cpp:374 clientgui/wizardex.cpp:381
 msgid "&Help"
 msgstr "&Yardım"
 
-#: AdvancedFrame.cpp:1199
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - %s kullanmayı durdur"
 
-#: AdvancedFrame.cpp:1204
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -526,48 +573,48 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "Eğer %s kullanmayı durdurursanız,\nmevcut tüm projeleriniz korunacak, fakat,\nprojeleri elle yönetmeniz gerekecek.\n\n%s kullanmayı durdurmak istiyor musunuz?"
 
-#: AdvancedFrame.cpp:1401
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - Bağlı istemciyi kapat..."
 
-#: AdvancedFrame.cpp:1410
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s şu anda bağlı olan istemciyi kapatacak ve\nsizi başka birine bağlanmanız için uyaracak."
 
-#: AdvancedFrame.cpp:1745 DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: AdvancedFrame.cpp:1754
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s başarıyla %s'e eklendi."
 
-#: AdvancedFrame.cpp:1893
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: AdvancedFrame.cpp:1897
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "%s istemcisine bağlanıyor"
 
-#: AdvancedFrame.cpp:1900
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "%s istemcisine bağlı (%s)"
 
-#: AlreadyExistsPage.cpp:184
+#: clientgui/AlreadyExistsPage.cpp:184
 msgid "Username already in use"
 msgstr "Kullanıcı adı zaten kullanımda"
 
-#: AlreadyExistsPage.cpp:187
+#: clientgui/AlreadyExistsPage.cpp:187
 msgid ""
 "An account with that username already exists and has a\n"
 "different password than the one you entered.\n"
@@ -575,11 +622,11 @@ msgid ""
 "Please visit the project's web site and follow the instructions there."
 msgstr "Bu kullanıcı adıyla bir hesap var ve\ngirdiğinizden farklı bir parolaya sahip.\n\nLütfen projenin sitesini ziyaret edip, yönergeleri izleyin."
 
-#: AlreadyExistsPage.cpp:191
+#: clientgui/AlreadyExistsPage.cpp:191
 msgid "Email address already in use"
 msgstr "E-posta adresi zaten kullanımda"
 
-#: AlreadyExistsPage.cpp:194
+#: clientgui/AlreadyExistsPage.cpp:194
 msgid ""
 "An account with that email address already exists and has a\n"
 "different password than the one you entered.\n"
@@ -587,91 +634,93 @@ msgid ""
 "Please visit the project's web site and follow the instructions there."
 msgstr "Bu e-posta adresiyle bir hesap var ve\ngirdiğinizden farklı bir parolaya sahip.\n\nLütfen projenin sitesini ziyaret edip, yönergeleri izleyin."
 
-#: AsyncRPC.cpp:1031
+#: clientgui/AsyncRPC.cpp:1031
 msgid "Communicating with BOINC client.  Please wait ..."
 msgstr "BOINC istemcisine bağlanılıyor.  Lütfen bekleyin..."
 
-#: AsyncRPC.cpp:1034
+#: clientgui/AsyncRPC.cpp:1034
 #, c-format
 msgid "&Quit %s"
 msgstr "%s'den &ayrıl"
 
-#: AsyncRPC.cpp:1036
+#: clientgui/AsyncRPC.cpp:1036
 #, c-format
 msgid "E&xit %s"
 msgstr "%s'den &çık"
 
-#: AsyncRPC.cpp:1040
+#: clientgui/AsyncRPC.cpp:1040
 #, c-format
 msgid "%s - Communication"
 msgstr "%s - İletişim"
 
-#: AsyncRPC.cpp:1056 DlgAdvPreferencesBase.cpp:107 sg_DlgPreferences.cpp:433
+#: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "İptal"
 
-#: BOINCBaseFrame.cpp:505
+#: clientgui/BOINCBaseFrame.cpp:512
 #, c-format
 msgid "%s - Connection Error"
 msgstr "%s - Bağlantı Hatası"
 
-#: BOINCBaseFrame.cpp:514
+#: clientgui/BOINCBaseFrame.cpp:521
 msgid ""
 "You currently are not authorized to manage the client.\n"
 "Please contact your administrator to add you to the 'boinc_users' local user group."
 msgstr "İstemciyi yönetmek için yetkili durumda değilsiniz.\nLüfen 'boinc_users' yerel kullanıcı grubuna dahil olmak için yöneticinizle temasa geçin."
 
-#: BOINCBaseFrame.cpp:523
+#: clientgui/BOINCBaseFrame.cpp:530
 msgid ""
 "Authorization failed connecting to running client.\n"
 "Make sure you start this program in the same directory as the client."
 msgstr "Çalışan istemciye bağlanmak için yetkilendirilme başarısız.\nBu programın istemciyle aynı klasörde çalıştırıldığından emin olun."
 
-#: BOINCBaseFrame.cpp:525
+#: clientgui/BOINCBaseFrame.cpp:532
 msgid "Authorization failed connecting to running client."
 msgstr "Çalışan istemciye bağlanmak için yetkilendirilme başarısız."
 
-#: BOINCBaseFrame.cpp:533
+#: clientgui/BOINCBaseFrame.cpp:540
 msgid "The password you have provided is incorrect, please try again."
 msgstr "Belirttiğiniz parola hatalı, lütfen tekrar deneyin."
 
-#: BOINCBaseFrame.cpp:577
+#: clientgui/BOINCBaseFrame.cpp:584
 #, c-format
 msgid "%s - Connection Failed"
 msgstr "%s - Bağlantı Başarısız"
 
-#: BOINCBaseFrame.cpp:586
+#: clientgui/BOINCBaseFrame.cpp:593
 #, c-format
 msgid ""
 "%s is not able to connect to a %s client.\n"
 "Would you like to try to connect again?"
 msgstr "%s, %s istemcisine bağlanamıyor.\nBağlanmayı yeniden denemek ister misiniz?"
 
-#: BOINCBaseFrame.cpp:622
+#: clientgui/BOINCBaseFrame.cpp:629
 #, c-format
 msgid "%s - Daemon Start Failed"
 msgstr "%s - Hizmet İşlemi Başlatılamadı"
 
-#: BOINCBaseFrame.cpp:632
+#: clientgui/BOINCBaseFrame.cpp:639
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please launch the Control Panel->Administative Tools->Services applet and start the BOINC service."
 msgstr "%s, %s istemcisini başlatamıyor.\nLütfen, Denetim Masası->Yönetimsel Araçlar->Hizmetler bölümüne gidip, BOINC Hizmeti'ni başlatın."
 
-#: BOINCBaseFrame.cpp:638
+#: clientgui/BOINCBaseFrame.cpp:645
 #, c-format
 msgid ""
 "%s is not able to start a %s client.\n"
 "Please start the daemon and try again."
 msgstr "%s, %s istemcisini başlatamıyor.\nLütfen BOINC Hizmetini başlatıp yeniden deneyin."
 
-#: BOINCBaseFrame.cpp:689
+#: clientgui/BOINCBaseFrame.cpp:696
 #, c-format
 msgid "%s - Connection Status"
 msgstr "%s - Bağlantı Durumu"
 
-#: BOINCBaseFrame.cpp:700
+#: clientgui/BOINCBaseFrame.cpp:707
 #, c-format
 msgid ""
 "%s is not currently connected to a %s client.\n"
@@ -679,67 +728,68 @@ msgid ""
 "To connect up to your local computer please use 'localhost' as the host name."
 msgstr "%s şu anda bir %s istemcisine bağlı değil.\nLütfen 'Gelişmiş\\Bilgisayar seç ve bağlan...' menüsünden bir %s istemcisine bağlanın.\nKendi bilgisayarınıza bağlanmak için lütfen bigisayar adı olarak 'localhost' yazın."
 
-#: BOINCBaseView.cpp:779
+#. Create the web sites task group
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "Proje internet sayfaları"
 
-#: BOINCClientManager.cpp:575
+#: clientgui/BOINCClientManager.cpp:547
 #, c-format
 msgid "%s - Unexpected Exit"
 msgstr "%s - Beklenmedik Kapanma"
 
-#: BOINCClientManager.cpp:585
+#: clientgui/BOINCClientManager.cpp:557
 #, c-format
 msgid ""
 "The %s client has exited unexpectedly 3 times within the last %d minutes.\n"
 "Would you like to restart it again?"
 msgstr "%s istemcisi son %d dakika içinde beklenmedik şekilde 3 kez kapandı.\nYeniden başlatmak istiyor musunuz?"
 
-#: BOINCDialupManager.cpp:61
+#: clientgui/BOINCDialupManager.cpp:61
 #, c-format
 msgid "%s - Network Status"
 msgstr "%s - Ağ Durumu"
 
-#: BOINCDialupManager.cpp:241
+#: clientgui/BOINCDialupManager.cpp:241
 #, c-format
 msgid ""
 "%s needs to connect to the Internet.\n"
 "May it do so now?"
 msgstr "%s İnternete bağlanmaya ihtiyaç duyuyor.\nBunu şimdi yapabilir mi?"
 
-#: BOINCDialupManager.cpp:254
+#: clientgui/BOINCDialupManager.cpp:254
 #, c-format
 msgid "%s is connecting to the Internet."
 msgstr "%s internete bağlanıyor."
 
-#: BOINCDialupManager.cpp:303
+#: clientgui/BOINCDialupManager.cpp:303
 #, c-format
 msgid "%s has successfully connected to the Internet."
 msgstr "%s başarıyla internete bağlandı."
 
-#: BOINCDialupManager.cpp:331
+#: clientgui/BOINCDialupManager.cpp:331
 #, c-format
 msgid "%s failed to connect to the Internet."
 msgstr "%s internete bağlanırken başarısız oldu."
 
-#: BOINCDialupManager.cpp:372
+#: clientgui/BOINCDialupManager.cpp:372
 #, c-format
 msgid ""
 "%s has detected it is now connected to the Internet.\n"
 "Updating all projects and retrying all transfers."
 msgstr "%s şu anda internete bağlı olduğunuzu belirledi.\nTüm projeler güncelleniyor ve aktarımlar gerçekleştiriliyor."
 
-#: BOINCDialupManager.cpp:417
+#: clientgui/BOINCDialupManager.cpp:417
 #, c-format
 msgid "%s has successfully disconnected from the Internet."
 msgstr "%s başarıyla internet bağlantısını kesti."
 
-#: BOINCDialupManager.cpp:433
+#: clientgui/BOINCDialupManager.cpp:433
 #, c-format
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s internet bağlantısını keserken başarısız oldu."
 
-#: BOINCGUIApp.cpp:339
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -752,1625 +802,1876 @@ msgid ""
 "     user group."
 msgstr "Bu istemciyi yönetmek için yetkilendirilmemişsiniz.\n\nBu kullanıcıyla %s çalıştırabilmek için, lütfen:\n- %s'ı, bilgisayar yöneticisi olmayan kullanıcıların da\nçalıştırabilmesi hakkındaki soruya \"Evet\" yanıtını vererek\nyeniden kurun\nya da\n- sizi 'boinc_master' kullanıcı grubuna dahil etmesi için\nyöneticinizle temasa geçin."
 
-#: BOINCGUIApp.cpp:345
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "%s sahipliği ya da izinleri doğru olarak ayarlanmamış; lütfen %s'i yeniden kurun.\n(Hata kodu %d"
 
-#: BOINCGUIApp.cpp:351
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " at "
 
-#: BOINCGUIApp.cpp:354 MainDocument.cpp:2484 MainDocument.cpp:2534
-#: MainDocument.cpp:2554 ViewTransfers.cpp:803
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: BOINCGUIApp.cpp:384
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "BOINC'in doğru çalışması için yeniden başlatma gerekiyor.\nBilgisayarınızı yeniden başlatın ve yeniden deneyin."
 
-#: BOINCGUIApp.cpp:385 DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC Manager"
 
-#: BOINCGUIApp.cpp:572
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC Manager, işletim sistemi tarafından otomatik başlatılacak"
 
-#: BOINCGUIApp.cpp:574
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "BOINC'i sadece sistem tepsisi simgesi görünecek şekilde başlat"
 
-#: BOINCGUIApp.cpp:576
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "Klasör, BOINC İstemcisi çalıştırılabilir dosyalarını içerir"
 
-#: BOINCGUIApp.cpp:577
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "BOINC veri klasörü"
 
-#: BOINCGUIApp.cpp:579
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "Sunucu adı ya da IP adresi"
 
-#: BOINCGUIApp.cpp:580
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "GUI RPC bağlantı noktası numarası"
 
-#: BOINCGUIApp.cpp:581
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "Parola"
 
-#: BOINCGUIApp.cpp:582
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "BOINC'i bu isteğe bağlı parametrelerle çalıştır"
 
-#: BOINCGUIApp.cpp:583
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "BOINC güvenlik kullanıcılarını ve izinlerini devre dışı bırak"
 
-#: BOINCGUIApp.cpp:584
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "görünüm yöneticisi hata mesajları için, görünüm hata ayıklama moduna geçin"
 
-#: BOINCGUIApp.cpp:585
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "BOINC Manager'ın birden çok kopyasına izin verildi"
 
-#: BOINCGUIApp.cpp:587
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "Kullanılmadı: XCode 4.2'deki hata için geçici çözüm"
 
-#: BOINCGUIApp.cpp:814
+#: clientgui/BOINCGUIApp.cpp:591
+msgid "Not run the daemon"
+msgstr "Arkaplan hizmetini çalıştırma"
+
+#. These are just special tags so deal with them in a special way
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "(Otomatik Belirleme)"
 
-#: BOINCGUIApp.cpp:815
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "(Bilinmiyor)"
 
-#: BOINCGUIApp.cpp:816
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "(Kullanıcı Tanımlı)"
 
-#: BOINCTaskBar.cpp:508
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "%s Sitesini Aç..."
 
-#: BOINCTaskBar.cpp:515
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "%s'ı Aç..."
 
-#: BOINCTaskBar.cpp:522 BOINCTaskBar.cpp:619 BOINCTaskBar.cpp:627
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "Hesaplamayı bir süre ertele"
 
-#: BOINCTaskBar.cpp:524 BOINCTaskBar.cpp:646 BOINCTaskBar.cpp:654
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "GPU ile hesaplamayı bir süre ertele"
 
-#: BOINCTaskBar.cpp:542
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "&Çık"
 
-#: BOINCTaskBar.cpp:612 ViewProjects.cpp:718 ViewWork.cpp:795
-#: sg_BoincSimpleFrame.cpp:758 sg_ProjectCommandPopup.cpp:110
-#: sg_TaskCommandPopup.cpp:102
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
+#: clientgui/sg_ProjectCommandPopup.cpp:125
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "Sürdür"
 
-#: BOINCTaskBar.cpp:639
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "GPU ile hesaplamayı sürdür"
 
-#: BOINCTaskBar.cpp:713
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "Hesaplama devrede"
 
-#: BOINCTaskBar.cpp:717
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "Hesaplama durakladı - "
 
-#: BOINCTaskBar.cpp:727
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU ile hesaplama devrede"
 
-#: BOINCTaskBar.cpp:730
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU ile hesaplama durakladı - "
 
-#: BOINCTaskBar.cpp:739
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "Ağ iletişimi devrede"
 
-#: BOINCTaskBar.cpp:742
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "Ağ iletişimi durakladı - "
 
-#: BOINCTaskBar.cpp:750
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "İstemciye yeniden bağlanılıyor."
 
-#: BOINCTaskBar.cpp:752
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "Bir istemciye bağlanmadı."
 
-#: BOINCTaskBar.cpp:805
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s Bildirimleri"
 
-#: BOINCTaskBar.cpp:811
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "Yeni bildirimler var. Görmek için tıklayın."
 
-#: CompletionErrorPage.cpp:199
+#: clientgui/CompletionErrorPage.cpp:199
 msgid "Failed to add project"
 msgstr "Projeyi ekleme başarısız oldu"
 
-#: CompletionErrorPage.cpp:204
+#: clientgui/CompletionErrorPage.cpp:204
 msgid "Failed to update account manager"
 msgstr "Hesap yöneticisini güncelleme başarısız oldu"
 
-#: CompletionErrorPage.cpp:208
+#: clientgui/CompletionErrorPage.cpp:208
 msgid "Failed to remove account manager"
 msgstr "Hesap yöneticisini kaldırma başarısız oldu"
 
-#: CompletionErrorPage.cpp:212
+#: clientgui/CompletionErrorPage.cpp:212
 msgid "Failed to add account manager"
 msgstr "Hesap yöneticisini ekleme başarısız oldu"
 
-#: CompletionErrorPage.cpp:221
+#: clientgui/CompletionErrorPage.cpp:221
 msgid ""
 "Please try again later.\n"
 "\n"
 "Click Finish to close."
 msgstr "Lütfen daha sonra tekrar deneyin.\n\nKapatmak için Son'u tıklayın."
 
-#: CompletionErrorPage.cpp:225 CompletionPage.cpp:222 CompletionPage.cpp:242
-#: CompletionPage.cpp:273
+#: clientgui/CompletionErrorPage.cpp:225 clientgui/CompletionPage.cpp:222
+#: clientgui/CompletionPage.cpp:242 clientgui/CompletionPage.cpp:273
 msgid "Click Finish to close."
 msgstr "Kapatmak için Son'u tıklayın."
 
-#: CompletionErrorPage.cpp:234
+#: clientgui/CompletionErrorPage.cpp:234
 msgid "Messages from server:"
 msgstr "Sunucudan mesajlar:"
 
-#: CompletionPage.cpp:207
+#: clientgui/CompletionPage.cpp:207
 msgid "Project added"
 msgstr "Proje eklendi"
 
-#: CompletionPage.cpp:213
+#: clientgui/CompletionPage.cpp:213
 msgid "This project has been successfully added."
 msgstr "Bu proje başarıyla eklendi."
 
-#: CompletionPage.cpp:218
+#: clientgui/CompletionPage.cpp:218
 msgid ""
 "When you click Finish, your web browser will go to a page where\n"
 "you can set your account name and preferences."
 msgstr "Son'u tıkladığınızda, internet tarayıcınız kullanıcı adı ve\ntercihlerinizi belirleyebileceğiniz siteyi açacak."
 
-#: CompletionPage.cpp:232
+#: clientgui/CompletionPage.cpp:232
 #, c-format
 msgid "Update from %s completed."
 msgstr "%s'den güncelleme tamamlandı."
 
-#: CompletionPage.cpp:236
+#: clientgui/CompletionPage.cpp:236
 msgid "Update completed."
 msgstr "Güncelleme tamamlandı."
 
-#: CompletionPage.cpp:247
+#. Attach Completed
+#: clientgui/CompletionPage.cpp:247
 msgid "Now using account manager"
 msgstr "Şu anda hesap yöneticisi kullanılıyor"
 
-#: CompletionPage.cpp:252
+#: clientgui/CompletionPage.cpp:252
 #, c-format
 msgid "Welcome to %s!"
 msgstr "%s'e hoş geldiniz!"
 
-#: CompletionPage.cpp:263
+#: clientgui/CompletionPage.cpp:263
 #, c-format
 msgid "You are now using %s to manage accounts."
 msgstr "Şu anda hesapları yönetmek için %s kullanıyorsunuz."
 
-#: CompletionPage.cpp:267
+#: clientgui/CompletionPage.cpp:267
 msgid "You are now using this account manager."
 msgstr "Şu anda bu hesap yöneticisini kullanıyorsunuz."
 
-#: DlgAbout.cpp:113 mac/Mac_GUI.cpp:96
+#: clientgui/DlgAbout.cpp:113
 #, c-format
 msgid "About %s"
 msgstr "%s Hakkında"
 
-#: DlgAbout.cpp:172
+#: clientgui/DlgAbout.cpp:172
 msgid "Version:"
 msgstr "Sürüm:"
 
-#: DlgAbout.cpp:180
+#: clientgui/DlgAbout.cpp:180
 msgid "wxWidgets Version:"
 msgstr "wxWidgets sürümü:"
 
-#: DlgAbout.cpp:188
+#: clientgui/DlgAbout.cpp:188
 msgid "Copyright:"
 msgstr "Telif hakkı:"
 
-#: DlgAbout.cpp:192
+#: clientgui/DlgAbout.cpp:192
 msgid ""
-"(C) 2003-2013 University of California, Berkeley.\n"
+"(C) 2003-2015 University of California, Berkeley.\n"
 "All Rights Reserved."
-msgstr "(C) 2003-2013 Kaliforniya Üniversitesi, Berkeley.\nTüm hakları saklıdır."
+msgstr "(C) 2003-2015 Kaliforniya Üniversitesi, Berkeley.\nTüm hakları saklıdır."
+
+#: clientgui/DlgAbout.cpp:196
+msgid "BOINC is distributed under the GNU Lesser General Public License v3.0."
+msgstr "BOINC, GNU Lesser General Public License v3.0 kapsamında dağıtılmaktadır."
 
-#: DlgAbout.cpp:196
-msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr "                 Türkçe çeviri: Aycan Demirel\n\n\nBerkeley Open Infrastructure for Network Computing"
+#: clientgui/DlgAbout.cpp:203
+msgid "For more information, visit "
+msgstr "Daha fazla bilgi için ziyaret edin:"
 
-#: DlgAbout.cpp:208 DlgExitMessage.cpp:173 DlgGenericMessage.cpp:120
-#: DlgOptions.cpp:396 DlgSelectComputer.cpp:163
+#: clientgui/DlgAbout.cpp:215 clientgui/DlgExitMessage.cpp:173
+#: clientgui/DlgGenericMessage.cpp:120 clientgui/DlgOptions.cpp:410
+#: clientgui/DlgSelectComputer.cpp:163
 msgid "&OK"
 msgstr "&Tamam"
 
-#: DlgAdvPreferences.cpp:544
-msgid "invalid number"
-msgstr "geçersiz sayı"
+#: clientgui/DlgAdvPreferencesBase.cpp:54
+#, c-format
+msgid "%s - Computing preferences"
+msgstr "%s - Hesaplama tercihleri"
 
-#: DlgAdvPreferences.cpp:545
-msgid "invalid time, format is HH:MM"
-msgstr "geçersiz saat, biçim SS:DD şeklinde olmalı"
+#: clientgui/DlgAdvPreferencesBase.cpp:82 clientgui/sg_DlgPreferences.cpp:163
+msgid ""
+"Using local preferences.\n"
+"Click \"Use web prefs\" to use web-based preferences from"
+msgstr "Yerel tercihler kullanılıyor.\nBuradaki Web-tabanlı tercihleri kullanmak için \"Web-tabanlı tercihleri kullan\"a tıklayın:"
 
-#: DlgAdvPreferences.cpp:546
-msgid "invalid time interval, format is HH:MM-HH:MM"
-msgstr "geçersiz saat aralığı, biçim SS:DD-SS:DD şeklinde olmalı"
+#: clientgui/DlgAdvPreferencesBase.cpp:90 clientgui/sg_DlgPreferences.cpp:171
+msgid "Using web-based preferences from"
+msgstr "Buradaki web-tabanlı tercihleri kullanılıyor: "
 
-#: DlgAdvPreferences.cpp:751
-msgid "invalid input value detected"
-msgstr "geçersiz giriş değeri belirlendi"
+#: clientgui/DlgAdvPreferencesBase.cpp:107 clientgui/sg_DlgPreferences.cpp:189
+msgid "Set values and click OK to use local preferences instead."
+msgstr "Değerleri ayarlayın ve yerel tercihlerin yerine kullanmak için Tamam'ı tıklayın."
 
-#: DlgAdvPreferences.cpp:753
-msgid "Validation Error"
-msgstr "Doğrulama Hatası"
+#: clientgui/DlgAdvPreferencesBase.cpp:115 clientgui/sg_DlgPreferences.cpp:217
+msgid "Use web prefs"
+msgstr "Web tercihlerini kullan"
 
-#: DlgAdvPreferences.cpp:885 DlgAdvPreferences.cpp:891
-#: DlgAdvPreferences.cpp:897
-msgid "Applications to add"
-msgstr "Uygulama ekle"
+#: clientgui/DlgAdvPreferencesBase.cpp:116 clientgui/sg_DlgPreferences.cpp:218
+msgid "Restore web-based preferences and close the dialog."
+msgstr "Web-tabanlı tercihleri geri getir ve iletişim kutusunu kapat."
 
-#: DlgAdvPreferences.cpp:914
-#, c-format
-msgid "'%s' is not an executable application."
-msgstr "'%s' çalıştırılabilir bir uygulama değil."
+#: clientgui/DlgAdvPreferencesBase.cpp:140
+#: clientgui/DlgAdvPreferencesBase.cpp:684
+msgid "Computing"
+msgstr "Hesaplama"
 
-#: DlgAdvPreferences.cpp:915 DlgAdvPreferences.cpp:962
-#: DlgAdvPreferences.cpp:986
-msgid "Add Exclusive App"
-msgstr "Ayrıcalıklı Uygulama Ekle"
+#. Network schedule
+#: clientgui/DlgAdvPreferencesBase.cpp:143
+#: clientgui/DlgAdvPreferencesBase.cpp:886
+msgid "Network"
+msgstr "Ağ-İnternet"
 
-#: DlgAdvPreferences.cpp:927
-msgid "Name of application to add?"
-msgstr "Eklenecek uygulamanın ismi?"
+#: clientgui/DlgAdvPreferencesBase.cpp:146
+msgid "Disk and memory"
+msgstr "Disk ve bellek"
 
-#: DlgAdvPreferences.cpp:927
-msgid "Add exclusive app"
-msgstr "Ayrıcalıklı uygulama ekle"
+#: clientgui/DlgAdvPreferencesBase.cpp:149
+msgid "Daily schedules"
+msgstr "Günlük zamanlamalar"
 
-#: DlgAdvPreferences.cpp:961
-#, c-format
-msgid "Application names must end with '%s'"
-msgstr "Uygulama isimleri mutlaka '%s' ile bitmelidir"
+#: clientgui/DlgAdvPreferencesBase.cpp:162
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
+msgid "OK"
+msgstr "Tamam"
 
-#: DlgAdvPreferences.cpp:985
-#, c-format
-msgid "'%s' is already in the list."
-msgstr "'%s' zaten listede."
+#: clientgui/DlgAdvPreferencesBase.cpp:163
+msgid "Save all values and close the dialog."
+msgstr "Tüm değişiklikleri kaydet ve pencereyi kapat."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:169
+msgid "Close the dialog without saving."
+msgstr "Değişiklikleri kaydetmeden pencereyi kapat."
 
-#: DlgAdvPreferences.cpp:1077
+#: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
+#: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
+#: clientgui/sg_DlgPreferences.cpp:363
+msgid "Help"
+msgstr "Yardım"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:174
+msgid "Shows the preferences web page."
+msgstr "Tercihler internet sayfasını görüntüle."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:236
+#: clientgui/DlgAdvPreferencesBase.cpp:463
+msgid "Usage limits"
+msgstr "Kullanım sınırlamaları"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:241
+#, no-c-format
 msgid ""
-"Do you really want to clear all local preferences?\n"
-"(This will not affect exclusive applications.)"
-msgstr "Tüm yerel tercihleri kaldırmak istediğinize emin misiniz?\n(Bu, ayrıcalıklı uygulama listesini silmeyecektir.)"
+"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
+"on an 8-core CPU."
+msgstr "Bazı CPU (işlemci) çekirdeklerini diğer uygulamalar için boşta tut. Örneğin %75, 8 çekirdekli işlemcinin 6 çekirdeğinin kullanılmasını sağlar."
 
-#: DlgAdvPreferences.cpp:1078 sg_DlgPreferences.cpp:1030
-msgid "Confirmation"
-msgstr "Onaylama"
+#: clientgui/DlgAdvPreferencesBase.cpp:243
+#: clientgui/DlgAdvPreferencesBase.cpp:255 clientgui/sg_DlgPreferences.cpp:286
+msgid "Use at most"
+msgstr "En çok"
 
-#: DlgAdvPreferencesBase.cpp:46 sg_DlgPreferences.cpp:946
-#, c-format
-msgid "%s - Preferences"
-msgstr "%s - Tercihler"
+#: clientgui/DlgAdvPreferencesBase.cpp:248
+#, no-c-format
+msgid "% of the CPUs"
+msgstr "% kadar CPU çekirdeği kullan"
 
-#: DlgAdvPreferencesBase.cpp:62
+#: clientgui/DlgAdvPreferencesBase.cpp:253 clientgui/sg_DlgPreferences.cpp:284
+#, no-c-format
 msgid ""
-"This dialog controls preferences for this computer only.\n"
-"Click OK to set preferences.\n"
-"Click Clear to restore web-based settings (except exclusive apps)."
-msgstr "Bu pencere, tercihlerinizi yalnızca bu bilgisayarınız için özelleştirir.\nTercihlerinizi kaydetmek için 'Tamam'ı tıklayın.\nİnternet tabanlı ayarlarınıza dönmek için 'Temizle'yi tıklayın (ayrıcalıklı uygulama listesi silinmez)."
+"Suspend/resume computing every few seconds to reduce CPU temperature and "
+"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
+"and repeat."
+msgstr "Her birkaç saniyede bir hesaplamayı durdurmak/sürdürmek, CPU (işlemci) sıcaklığını ve enerji kullanımını azaltır. Örneğin %75, 3 saniye hesaplama, 1 saniye bekleme ve bunu tekrarlama demektir."
+
+#: clientgui/DlgAdvPreferencesBase.cpp:260 clientgui/sg_DlgPreferences.cpp:291
+#, no-c-format
+msgid "% of CPU time"
+msgstr "% kadar CPU gücü kullan"
 
-#: DlgAdvPreferencesBase.cpp:65 sg_DlgPreferences.cpp:428
-msgid "Clear"
-msgstr "Temizle"
+#: clientgui/DlgAdvPreferencesBase.cpp:267
+msgid "When to suspend"
+msgstr "Duraklatma"
 
-#: DlgAdvPreferencesBase.cpp:66
-msgid "clear all local preferences and close the dialog"
-msgstr "tüm yerel tercihleri temizler ve pencereyi kapatır"
+#: clientgui/DlgAdvPreferencesBase.cpp:273 clientgui/sg_DlgPreferences.cpp:239
+msgid "Suspend when computer is on battery"
+msgstr "Bilgisayar pil gücünde olduğunda duraklat"
 
-#: DlgAdvPreferencesBase.cpp:81
-msgid "processor usage"
-msgstr "işlemci kullanımı"
+#: clientgui/DlgAdvPreferencesBase.cpp:276 clientgui/sg_DlgPreferences.cpp:235
+msgid ""
+"Check this to suspend computing on portables when running on battery power."
+msgstr "Taşınabilir cihazlar pil gücünde olduğunda hesaplamayı duraklatmak için işaretleyin."
 
-#: DlgAdvPreferencesBase.cpp:84
-msgid "network usage"
-msgstr "ağ kullanımı"
+#: clientgui/DlgAdvPreferencesBase.cpp:282 clientgui/sg_DlgPreferences.cpp:253
+msgid "Suspend when computer is in use"
+msgstr "Bilgisayar kullanımda olduğunda duraklat"
 
-#: DlgAdvPreferencesBase.cpp:87
-msgid "disk and memory usage"
-msgstr "disk ve bellek kullanımı"
+#: clientgui/DlgAdvPreferencesBase.cpp:285 clientgui/sg_DlgPreferences.cpp:249
+msgid ""
+"Check this to suspend computing and file transfers when you're using the "
+"computer."
+msgstr "Bilgisayarınızı kullandığınız sırada hesaplamanın ve dosya aktarımının duraklatılması için işaretleyin."
 
-#: DlgAdvPreferencesBase.cpp:90
-msgid "exclusive applications"
-msgstr "ayrıcalıklı uygulamalar"
+#: clientgui/DlgAdvPreferencesBase.cpp:291
+msgid "Suspend GPU computing when computer is in use"
+msgstr "Bilgisayar kullanımda olduğunda GPU ile hesaplamayı duraklat"
 
-#: DlgAdvPreferencesBase.cpp:102 sg_DlgPreferences.cpp:424
-msgid "OK"
-msgstr "Tamam"
+#: clientgui/DlgAdvPreferencesBase.cpp:294
+msgid "Check this to suspend GPU computing when you're using the computer."
+msgstr "Bilgisayarınızı kullandığınız sırada GPU ile (ekran kartı) hesaplamanın duraklatılması için işaretleyin."
 
-#: DlgAdvPreferencesBase.cpp:103
-msgid "save all values and close the dialog"
-msgstr "tüm değişiklikleri kaydeder ve pencereyi kapatır"
+#. min idle time
+#: clientgui/DlgAdvPreferencesBase.cpp:299 clientgui/sg_DlgPreferences.cpp:264
+msgid "This determines when the computer is considered 'in use'."
+msgstr "Bu, bilgisayarın ne zaman 'kullanımda' kabul edildiğini belirler."
 
-#: DlgAdvPreferencesBase.cpp:108
-msgid "close the dialog without saving"
-msgstr "değişiklikleri kaydetmeden pencereyi kapatır"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:304 clientgui/sg_DlgPreferences.cpp:268
+msgid "'In use' means mouse/keyboard input in last"
+msgstr "'Kullanımda', en son bu kadar süre önce fare/klavye kullanıldı demektir:"
 
-#: DlgAdvPreferencesBase.cpp:112 Localization.cpp:35 Localization.cpp:121
-#: Localization.cpp:139 sg_BoincSimpleFrame.cpp:794 sg_DlgPreferences.cpp:439
-msgid "Help"
-msgstr "Yardım"
+#. context: 'In use' means mouse/keyboard input in last ___ minutes
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:315
+#: clientgui/DlgAdvPreferencesBase.cpp:413 clientgui/sg_DlgPreferences.cpp:276
+msgid "minutes"
+msgstr "dakika"
 
-#: DlgAdvPreferencesBase.cpp:113
-msgid "shows the preferences web page"
-msgstr "Tercihler internet sayfasını görüntüler"
+#: clientgui/DlgAdvPreferencesBase.cpp:323
+msgid "Suspend when non-BOINC CPU usage is above"
+msgstr "BOINC harici CPU kullanımı bunu aşarsa duraklat:"
 
-#: DlgAdvPreferencesBase.cpp:135
-msgid "Computing allowed"
-msgstr "Hesaplama izinleri"
+#: clientgui/DlgAdvPreferencesBase.cpp:325
+msgid "Suspend computing when your computer is busy running other programs."
+msgstr "Bilgisayarınız diğer uygulamaları çalıştırmakla meşgulse hesaplama duraklatılır."
 
-#: DlgAdvPreferencesBase.cpp:139
-msgid "While computer is on batteries"
-msgstr "Bilgisayarım pil gücündeyken hesaplama çalışsın"
+#: clientgui/DlgAdvPreferencesBase.cpp:339
+msgid "To suspend by time of day, see the \"Daily Schedules\" section."
+msgstr "Günün belli saatlerinde duraklatmak için \"Günlük zamanlamalar\" kısmına bakın."
 
-#: DlgAdvPreferencesBase.cpp:142
-msgid ""
-"check this if you want this computer to do work while it runs on batteries"
-msgstr "bilgisayarınız pille çalışırken hesaplamaların çalışmasını istiyorsanız bunu işaretleyin"
+#. Context: heading for a group of miscellaneous preferences
+#: clientgui/DlgAdvPreferencesBase.cpp:349
+#: clientgui/DlgAdvPreferencesBase.cpp:516
+msgid "Other"
+msgstr "Diğer"
 
-#: DlgAdvPreferencesBase.cpp:148
-msgid "While computer is in use"
-msgstr "Bilgisayarımı kullanırken işlemci ile hesaplama çalışsın"
+#. buffer sizes
+#: clientgui/DlgAdvPreferencesBase.cpp:355
+msgid "Store at least enough tasks to keep the computer busy for this long."
+msgstr "En azından bilgisayarı  bu kadar süre boyunca meşgul tutmaya yetecek miktarda iş depolanır."
 
-#: DlgAdvPreferencesBase.cpp:151
-msgid ""
-"check this if you want this computer to do work even when you're using it"
-msgstr "BOINC normalde bilgisayar boştayken çalışır. Bilgisayarınızı kullandığınız sırada da işlemci (CPU) ile hesaplamanın çalışmasını istiyorsanız bunu işaretleyin"
+#. context: Store at least ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:359
+msgid "Store at least"
+msgstr "En az"
 
-#: DlgAdvPreferencesBase.cpp:157
-msgid "Use GPU while computer is in use"
-msgstr "Bilgisayarımı kullanırken ekran kartı ile hesaplama çalışsın"
+#. context: Store at least ___ days of work
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:370
+#: clientgui/DlgAdvPreferencesBase.cpp:392
+msgid "days of work"
+msgstr "günlük iş depola"
 
-#: DlgAdvPreferencesBase.cpp:160
+#: clientgui/DlgAdvPreferencesBase.cpp:376
 msgid ""
-"check this if you want your GPU to do work even when you're using the "
-"computer"
-msgstr "BOINC normalde bilgisayar boştayken çalışır. Bilgisayarınızı kullandığınız sırada da ekran kartınızla (GPU) hesaplamanın çalışmasını istiyorsanız bunu işaretleyin (bazı ekran kartlarıyla sistemde yavaşlama yaratabilir)"
+"Store additional tasks above the minimum level.  Determines how much work is"
+" requested when contacting a project."
+msgstr "Asgari düzeyin üzerinde ek işler depolayın. Bir proje ile iletişime geçildiğinde ne kadar iş talep edileceğini belirler."
 
-#: DlgAdvPreferencesBase.cpp:172
-msgid "Only after computer has been idle for"
-msgstr "Yalnızca bilgisayarım bu süre kadar boşta kaldığında:"
+#. context: Store up to an additional ___ days of work
+#: clientgui/DlgAdvPreferencesBase.cpp:380
+msgid "Store up to an additional"
+msgstr "Ek olarak da depoda"
 
-#: DlgAdvPreferencesBase.cpp:182
+#: clientgui/DlgAdvPreferencesBase.cpp:399
+#, c-format
+msgid "If you run several projects, %s may switch between them this often."
+msgstr "Birden fazla proje çalıştırıyorsanız, %s bu kadar sürede bir çalışan projenin işini durdurup, başka bir işi çalıştıracaktır."
+
+#. context: Switch between tasks every ___ minutes
+#: clientgui/DlgAdvPreferencesBase.cpp:404
+msgid "Switch between tasks every"
+msgstr "Çalışan uygulamayı değiştirme aralığı"
+
+#: clientgui/DlgAdvPreferencesBase.cpp:419
 msgid ""
-"do work only after you haven't used the computer for this number of minutes"
-msgstr "bilgisayarınızı kaç dakika kullanılmadığınızda (klavye ve fare hareketi olmadığında) hesaplamanın başlamasını istediğinizi belirleyin"
+"This controls how often tasks save their state to disk, so that they later "
+"can be continued from that point."
+msgstr "Bu denetim, işlerin durumlarını ne sıklıkta diske kaydedeceğini belirler, böylece işler daha sonra bu noktadan başlayarak devam edebilirler. "
 
-#: DlgAdvPreferencesBase.cpp:187 DlgAdvPreferencesBase.cpp:336
-#: sg_DlgPreferences.cpp:417
-msgid "minutes"
-msgstr "dakika"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:423
+msgid "Request tasks to checkpoint at most every"
+msgstr "İşlerin, kontrol noktasını diske yazma aralığı"
 
-#: DlgAdvPreferencesBase.cpp:206
-msgid "While processor usage is less than"
-msgstr "İşlemci kullanımı bu orandan azsa:"
+#. context: Request tasks to checkpoint at most every ___ seconds
+#: clientgui/DlgAdvPreferencesBase.cpp:432
+msgid "seconds"
+msgstr "saniye"
 
-#: DlgAdvPreferencesBase.cpp:216
-msgid "suspend work if processor usage exceeds this level"
-msgstr "BOINC dışındaki diğer programların işlemci kullanımı bu seviyeyi aşarsa, hesaplama duraklatılır"
+#. upload/download rates
+#: clientgui/DlgAdvPreferencesBase.cpp:469
+msgid "Limit the download rate of file transfers."
+msgstr "Dosya transferlerinde indirme hızı bununla sınırlanır."
 
-#: DlgAdvPreferencesBase.cpp:221
-msgid "percent (0 means no restriction)"
-msgstr "% (sınırlamayı kaldırmak için 0 yazın)"
+#: clientgui/DlgAdvPreferencesBase.cpp:470
+msgid "Limit download rate to"
+msgstr "İndirme hızını bununla sınırla:"
 
-#: DlgAdvPreferencesBase.cpp:235 DlgAdvPreferencesBase.cpp:496
-msgid "Every day between hours of"
-msgstr "Her gün bu saatler arasında:"
+#: clientgui/DlgAdvPreferencesBase.cpp:474
+#: clientgui/DlgAdvPreferencesBase.cpp:483
+msgid "KB/second"
+msgstr "KB/saniye"
 
-#: DlgAdvPreferencesBase.cpp:239
-msgid "start work at this time"
-msgstr "bu saatte hesaplamayı başlat"
+#: clientgui/DlgAdvPreferencesBase.cpp:478
+msgid "Limit the upload rate of file transfers."
+msgstr "Dosya transferlerinde gönderme hızı bununla sınırlanır."
 
-#: DlgAdvPreferencesBase.cpp:243 DlgAdvPreferencesBase.cpp:504
-#: sg_DlgPreferences.cpp:326 sg_DlgPreferences.cpp:348
-msgid "and"
-msgstr "ve"
+#: clientgui/DlgAdvPreferencesBase.cpp:479
+msgid "Limit upload rate to"
+msgstr "Gönderme hızını bunula sınırla:"
 
-#: DlgAdvPreferencesBase.cpp:247
-msgid "stop work at this time"
-msgstr "bu saatte hesaplamayı durdur"
+#: clientgui/DlgAdvPreferencesBase.cpp:490
+#, c-format
+msgid "Example: %s should transfer at most 2000 MB of data every 30 days."
+msgstr "Örneğin, %s son 30 günde en fazla 2000 MB veri aktarımı yapabilecektir."
 
-#: DlgAdvPreferencesBase.cpp:251 DlgAdvPreferencesBase.cpp:512
-msgid "(no restriction if equal)"
-msgstr "(birbirine eşitse, sınırlama ortadan kalkar)"
+#: clientgui/DlgAdvPreferencesBase.cpp:492
+msgid "Limit usage to"
+msgstr "Kullanımı bunula sınırla:"
 
-#: DlgAdvPreferencesBase.cpp:256 DlgAdvPreferencesBase.cpp:517
-msgid "Day-of-week override:"
-msgstr "Haftanın günlerinde sınırlamalar:"
+#: clientgui/DlgAdvPreferencesBase.cpp:496
+msgid "MB every"
+msgstr "MB, son"
 
-#: DlgAdvPreferencesBase.cpp:261 DlgAdvPreferencesBase.cpp:522
-msgid "check box to specify hours for this day of week"
-msgstr "haftanın belli günlerindeki çalışma saatlerini belirlemek için kutuları işaretleyin"
+#: clientgui/DlgAdvPreferencesBase.cpp:500
+msgid "days"
+msgstr "gün için"
 
-#: DlgAdvPreferencesBase.cpp:267 DlgAdvPreferencesBase.cpp:528
-msgid "Monday"
-msgstr "Pazartesi"
+#: clientgui/DlgAdvPreferencesBase.cpp:505
+msgid "To limit transfers by time of day, see the \"Daily Schedules\" section."
+msgstr "Günün belli saatlerinde sınırlamak için \"Günlük zamanlamalar\" kısmına bakın."
 
-#: DlgAdvPreferencesBase.cpp:274 DlgAdvPreferencesBase.cpp:535
-msgid "Tuesday"
-msgstr "Salı"
+#: clientgui/DlgAdvPreferencesBase.cpp:522
+#, c-format
+msgid ""
+"Check this only if your Internet provider modifies image files. Skipping "
+"verification reduces the security of %s."
+msgstr "İnternet servis sağlayıcınız görüntü dosyalarını değiştiriyorsa bunu işaretleyin. Doğrulamayı atlamak, %s'in güvenliğini zayıflatacaktır."
 
-#: DlgAdvPreferencesBase.cpp:281 DlgAdvPreferencesBase.cpp:542
-msgid "Wednesday"
-msgstr "Çarşamba"
+#: clientgui/DlgAdvPreferencesBase.cpp:524
+msgid "Skip data verification for image files"
+msgstr "Görüntü dosyaları için veri doğrulamasını atla"
 
-#: DlgAdvPreferencesBase.cpp:288 DlgAdvPreferencesBase.cpp:549
-msgid "Thursday"
-msgstr "Perşembe"
+#: clientgui/DlgAdvPreferencesBase.cpp:528
+msgid "Confirm before connecting to Internet"
+msgstr "İnternete bağlanmadan önce onay iste"
 
-#: DlgAdvPreferencesBase.cpp:295 DlgAdvPreferencesBase.cpp:556
-msgid "Friday"
-msgstr "Cuma"
+#: clientgui/DlgAdvPreferencesBase.cpp:529
+#: clientgui/DlgAdvPreferencesBase.cpp:533
+msgid "Useful only if you have a modem, ISDN or VPN connection."
+msgstr "Bir modem, ISDN ya da VPN bağlantısına sahipseniz kullanışlı olabilir."
 
-#: DlgAdvPreferencesBase.cpp:302 DlgAdvPreferencesBase.cpp:563
-msgid "Saturday"
-msgstr "Cumartesi"
+#: clientgui/DlgAdvPreferencesBase.cpp:532
+msgid "Disconnect when done"
+msgstr "Tamamlandığında bağlantıyı kes"
 
-#: DlgAdvPreferencesBase.cpp:309 DlgAdvPreferencesBase.cpp:570
-msgid "Sunday"
-msgstr "Pazar"
+#: clientgui/DlgAdvPreferencesBase.cpp:559 clientgui/ViewResources.cpp:116
+msgid "Disk"
+msgstr "Disk"
 
-#: DlgAdvPreferencesBase.cpp:323
-msgid "Other options"
-msgstr "Diğer seçenekler"
+#: clientgui/DlgAdvPreferencesBase.cpp:564
+#, c-format
+msgid "%s will use the most restrictive of these settings:"
+msgstr "%s bu ayarları en üst sınır olarak kullanacak:"
 
-#: DlgAdvPreferencesBase.cpp:330
-msgid "Switch between applications every"
-msgstr "Bu kadar sürede bir, çalışan uygulamayı değiştir:"
+#: clientgui/DlgAdvPreferencesBase.cpp:570 clientgui/sg_DlgPreferences.cpp:335
+#, c-format
+msgid "Limit the total amount of disk space used by %s."
+msgstr "%s tarafından kullanılabilecek toplam disk alanını sınırlandırın."
 
-#: DlgAdvPreferencesBase.cpp:339
-msgid "On multiprocessor systems, use at most"
-msgstr "Çok çekirdekli sistemlerde çekirdeklerin en çok"
+#: clientgui/DlgAdvPreferencesBase.cpp:573
+#: clientgui/DlgAdvPreferencesBase.cpp:597 clientgui/sg_DlgPreferences.cpp:338
+msgid "Use no more than"
+msgstr "Bundan fazlasını kullanma:"
 
-#: DlgAdvPreferencesBase.cpp:346
-#, no-c-format
-msgid "% of the processors (0 means ignore this setting)"
-msgstr "% kadarı kullanılsın (ayarlamayı iptal etmek için 0 yazın)"
+#: clientgui/DlgAdvPreferencesBase.cpp:577
+msgid "GB"
+msgstr "GB"
 
-#: DlgAdvPreferencesBase.cpp:349 DlgAdvPreferencesBase.cpp:605
-#: DlgAdvPreferencesBase.cpp:627 DlgAdvPreferencesBase.cpp:648
-#: DlgAdvPreferencesBase.cpp:669 DlgAdvPreferencesBase.cpp:679
-msgid "Use at most"
-msgstr "En çok"
+#: clientgui/DlgAdvPreferencesBase.cpp:582
+#, c-format
+msgid ""
+"Limit disk usage to leave this much free space on the volume where %s stores"
+" data."
+msgstr "%s'in verilerini depoladığı diskte en az bu kadar boş alan kalacak şekilde disk kullanımını sınırla."
 
-#: DlgAdvPreferencesBase.cpp:356
-#, no-c-format
-msgid "% CPU time"
-msgstr "% kadar işlemci gücü kullanılsın"
+#: clientgui/DlgAdvPreferencesBase.cpp:585
+msgid "Leave at least"
+msgstr "En az bu kadar bırak:"
 
-#: DlgAdvPreferencesBase.cpp:378
-msgid "General options"
-msgstr "Genel seçenekler"
+#: clientgui/DlgAdvPreferencesBase.cpp:589
+msgid "GB free"
+msgstr "GB boş alan"
 
-#: DlgAdvPreferencesBase.cpp:386
-msgid "Maximum download rate"
-msgstr "En yüksek indirme hızı:"
+#: clientgui/DlgAdvPreferencesBase.cpp:594
+#, c-format
+msgid ""
+"Limit the percentage of disk space used by %s on the volume where it stores "
+"data."
+msgstr "%s'in verilerini depoladığı diskin en fazla bu kadar yüzdesi kullanılacak şekilde disk kullanımını sınırla."
 
-#: DlgAdvPreferencesBase.cpp:392 DlgAdvPreferencesBase.cpp:401
-msgid "KBytes/sec."
-msgstr "KBayt/sn"
+#: clientgui/DlgAdvPreferencesBase.cpp:602
+#, no-c-format
+msgid "% of total"
+msgstr "% kadar disk alanı"
 
-#: DlgAdvPreferencesBase.cpp:395
-msgid "Maximum upload rate"
-msgstr "En yüksek gönderme hızı:"
+#: clientgui/DlgAdvPreferencesBase.cpp:609
+msgid "Memory"
+msgstr "Bellek (RAM)"
 
-#: DlgAdvPreferencesBase.cpp:406
-msgid "Transfer at most"
-msgstr "İnternet kullanım kotası:"
+#: clientgui/DlgAdvPreferencesBase.cpp:614
+#, c-format
+msgid "Limit the memory used by %s when you're using the computer."
+msgstr "Bilgisayarınızı kullandığınız sırada %s tarafından kullanılabilecek belek miktarını sınırlayın."
 
-#: DlgAdvPreferencesBase.cpp:412
-msgid "Mbytes"
-msgstr "MB"
+#: clientgui/DlgAdvPreferencesBase.cpp:616
+msgid "When computer is in use, use at most"
+msgstr "Bilgisayar kullanımdayken , en fazla bu kadar kullan:"
 
-#: DlgAdvPreferencesBase.cpp:415
-msgid "every"
-msgstr "her"
+#: clientgui/DlgAdvPreferencesBase.cpp:622
+#: clientgui/DlgAdvPreferencesBase.cpp:634
+#: clientgui/DlgAdvPreferencesBase.cpp:650
+#, no-c-format
+msgid "%"
+msgstr "%"
 
-#: DlgAdvPreferencesBase.cpp:421 DlgAdvPreferencesBase.cpp:444
-#: DlgAdvPreferencesBase.cpp:463
-msgid "days"
-msgstr "günlük"
+#: clientgui/DlgAdvPreferencesBase.cpp:627
+#, c-format
+msgid "Limit the memory used by %s when you're not using the computer."
+msgstr "Bilgisayarınız boştayken %s tarafından kullanılabilecek belek miktarını sınırlayın."
 
-#: DlgAdvPreferencesBase.cpp:429
-msgid "Minimum work buffer"
-msgstr "En az bu kadar yetecek iş indirilsin:"
+#: clientgui/DlgAdvPreferencesBase.cpp:629
+msgid "When computer is not in use, use at most"
+msgstr "Bilgisayar boştayken, en fazla bu kadar kullan:"
 
-#: DlgAdvPreferencesBase.cpp:438
-msgid "Try to maintain enough tasks to keep busy for this many days"
-msgstr "En az bu kadar gün boyunca yetecek miktarda iş indirilir"
+#: clientgui/DlgAdvPreferencesBase.cpp:638
+msgid "Leave non-GPU tasks in memory while suspended"
+msgstr "Durakladığında GPU-olmayan işleri bellekte bırak"
 
-#: DlgAdvPreferencesBase.cpp:450
-msgid "Max additional work buffer"
-msgstr "En çok bu sürede tüketilebilecek iş indir:"
+#: clientgui/DlgAdvPreferencesBase.cpp:639
+msgid ""
+"If checked, suspended tasks stay in memory, and resume with no work lost. If"
+" unchecked, suspended tasks are removed from memory, and resume from their "
+"last checkpoint."
+msgstr "İşaretliyse, duraklatılan görevler bellekte kalır ve hiçbir kayıp yaşanmadan çalışmaya devam eder. İşaretlenmezse, duraklatılan görevler bellekten kaldırılır ve son kontrol noktasından devam eder."
 
-#: DlgAdvPreferencesBase.cpp:459
-msgid "In addition, maintain enough tasks for up to this many days"
-msgstr "Bunun yanında, en çok bu kadar günde tüketilebilecek miktarda iş indirilir"
+#: clientgui/DlgAdvPreferencesBase.cpp:643
+#, c-format
+msgid "Limit the swap space (page file) used by %s."
+msgstr "%s'in Disk belleği (swap dosyası) kullanımını sınırlandırır."
 
-#: DlgAdvPreferencesBase.cpp:466
-msgid "Skip image file verification"
-msgstr "Resim dosyasıyla doğrulamayı atla"
+#: clientgui/DlgAdvPreferencesBase.cpp:645
+msgid "Page/swap file: use at most"
+msgstr "Disk belleği/swap dosyasını en fazla bu kadar kullan:"
 
-#: DlgAdvPreferencesBase.cpp:468
-msgid "check this if your Internet provider modifies image files"
-msgstr "internet sağlayıcınız resim dosyalarını değiştiriyorsa bunu işaretleyin"
+#: clientgui/DlgAdvPreferencesBase.cpp:670 clientgui/sg_DlgPreferences.cpp:295
+msgid "and"
+msgstr "ve"
 
-#: DlgAdvPreferencesBase.cpp:476
-msgid "Connect options"
-msgstr "Bağlanma seçenekleri"
+#: clientgui/DlgAdvPreferencesBase.cpp:671
+msgid "to"
+msgstr "-"
 
-#: DlgAdvPreferencesBase.cpp:478
-msgid "Confirm before connecting to internet"
-msgstr "Internete bağlanmadan önce onay iste"
+#: clientgui/DlgAdvPreferencesBase.cpp:691 clientgui/sg_DlgPreferences.cpp:296
+msgid "Compute only during a particular period each day."
+msgstr "Hesaplama her gün sadece belirli saatler arasında yapılır."
 
-#: DlgAdvPreferencesBase.cpp:480
-msgid ""
-"if checked, a confirmation dialog will be displayed before trying to connect"
-" to the Internet"
-msgstr "işaretlerseniz, internet bağlantısı kurulmaya çalışılmadan önce sizden onay isteyen bir mesaj belirir"
+#: clientgui/DlgAdvPreferencesBase.cpp:694 clientgui/sg_DlgPreferences.cpp:299
+msgid "Compute only between"
+msgstr "Yalnızca bu saatler arasında hesapla"
 
-#: DlgAdvPreferencesBase.cpp:484
-msgid "Disconnect when done"
-msgstr "Tamamlandığında bağlantıyı kes"
+#: clientgui/DlgAdvPreferencesBase.cpp:718
+#: clientgui/DlgAdvPreferencesBase.cpp:902
+msgid "Day-of-week override"
+msgstr "Haftanın günlerinde sınırlamalar"
 
-#: DlgAdvPreferencesBase.cpp:486
-msgid ""
-"if checked, BOINC hangs up when network usage is done\n"
-"(only relevant for dialup-connection)"
-msgstr "işaretlenirse, ağ kullanımı tamamlandığında BOINC hattı kapatır\n(yalnızca uygun çevirmeli bağlantılar için)"
+#: clientgui/DlgAdvPreferencesBase.cpp:727
+#: clientgui/DlgAdvPreferencesBase.cpp:906
+msgid "Override the times above on the selected days:"
+msgstr "Seçilen günlerde yukarıdaki zamanlamayı geçersiz kıl:"
 
-#: DlgAdvPreferencesBase.cpp:492
-msgid "Network usage allowed"
-msgstr "Ağ kullanım izinleri"
+#: clientgui/DlgAdvPreferencesBase.cpp:750
+#: clientgui/DlgAdvPreferencesBase.cpp:923
+msgid "Monday"
+msgstr "Pazartesi"
 
-#: DlgAdvPreferencesBase.cpp:500
-msgid "network usage start hour"
-msgstr "ağ kullanımı başlangıç saati"
+#: clientgui/DlgAdvPreferencesBase.cpp:777
+#: clientgui/DlgAdvPreferencesBase.cpp:938
+msgid "Friday"
+msgstr "Cuma"
 
-#: DlgAdvPreferencesBase.cpp:508
-msgid "network usage stop hour"
-msgstr "ağ kullanımı bitiş saati"
+#: clientgui/DlgAdvPreferencesBase.cpp:792
+#: clientgui/DlgAdvPreferencesBase.cpp:951
+msgid "Tuesday"
+msgstr "Salı"
 
-#: DlgAdvPreferencesBase.cpp:598 DlgItemProperties.cpp:231
-msgid "Disk usage"
-msgstr "Disk kullanımı"
+#: clientgui/DlgAdvPreferencesBase.cpp:807
+#: clientgui/DlgAdvPreferencesBase.cpp:966
+msgid "Saturday"
+msgstr "Cumartesi"
 
-#: DlgAdvPreferencesBase.cpp:609
-msgid "the maximum disk space used by BOINC (in Gigabytes)"
-msgstr "BOINC, disk alanının gigabayt olarak en çok bu kadarını kullanabilecek"
+#: clientgui/DlgAdvPreferencesBase.cpp:820
+#: clientgui/DlgAdvPreferencesBase.cpp:979
+msgid "Wednesday"
+msgstr "Çarşamba"
 
-#: DlgAdvPreferencesBase.cpp:613
-msgid "Gigabytes disk space"
-msgstr "GB disk alanı kullanılsın"
+#: clientgui/DlgAdvPreferencesBase.cpp:835
+#: clientgui/DlgAdvPreferencesBase.cpp:994
+msgid "Sunday"
+msgstr "Pazar"
 
-#: DlgAdvPreferencesBase.cpp:616
-msgid "Leave at least"
-msgstr "En az"
+#: clientgui/DlgAdvPreferencesBase.cpp:848
+#: clientgui/DlgAdvPreferencesBase.cpp:1007
+msgid "Thursday"
+msgstr "Perşembe"
 
-#: DlgAdvPreferencesBase.cpp:620
-msgid "BOINC leaves at least this amount of disk space free (in Gigabytes)"
-msgstr "BOINC, disk dolarsa en az bu miktarda disk alanını boş bırakacak"
+#: clientgui/DlgAdvPreferencesBase.cpp:890 clientgui/sg_DlgPreferences.cpp:317
+msgid "Transfer files only during a particular period each day."
+msgstr "Dosyalar her gün sadece belirli saatler arasında aktarılır."
 
-#: DlgAdvPreferencesBase.cpp:624
-msgid "Gigabytes disk space free"
-msgstr "GB disk alanı boş kalsın"
+#: clientgui/DlgAdvPreferencesBase.cpp:892 clientgui/sg_DlgPreferences.cpp:319
+msgid "Transfer files only between"
+msgstr "Dosyaları bu saatler arasında aktar"
 
-#: DlgAdvPreferencesBase.cpp:631
-msgid "BOINC uses at most this percentage of total disk space"
-msgstr "BOINC, disk alanının yüzde olarak en çok bu kadarını kullanabilecek"
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "Geçersiz sayı"
 
-#: DlgAdvPreferencesBase.cpp:636
-#, no-c-format
-msgid "% of total disk space"
-msgstr "% kadar disk alanı kullanılsın"
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "Geçersiz zaman, değer 0:00 ve 24:00 arasında olmalı, format SS:DD şeklindedir"
 
-#: DlgAdvPreferencesBase.cpp:639
-msgid "Tasks checkpoint to disk at most every"
-msgstr "İşler, kontrol noktasını diske en fazla"
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "Başlangıç zamanı, bitiş zamanından farklı olmalı"
 
-#: DlgAdvPreferencesBase.cpp:645
-msgid "seconds"
-msgstr "saniyede bir kaydetsin"
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "Sayı 0 ile 10 arasında olmalı"
 
-#: DlgAdvPreferencesBase.cpp:655
-#, no-c-format
-msgid "% of page file (swap space)"
-msgstr "% kadar sanal bellek (swap alanı) kullanılsın"
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "Sayı 0 ile 100 arasında olmalı"
 
-#: DlgAdvPreferencesBase.cpp:662
-msgid "Memory usage"
-msgstr "Bellek (RAM) kullanımı"
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "1 ve 100 arasında bir sayı olmalı"
 
-#: DlgAdvPreferencesBase.cpp:676
-#, no-c-format
-msgid "% when computer is in use"
-msgstr "% kadar bellek kullanılsın (bilgisayarımı kullanırken)"
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "geçersiz giriş değeri belirlendi"
 
-#: DlgAdvPreferencesBase.cpp:686
-#, no-c-format
-msgid "% when computer is idle"
-msgstr "% kadar bellek kullanılsın (bilgisayarım boştayken)"
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "Doğrulama Hatası"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "Yerel tercihler silinsin ve web-tabanlı tercihler mi kullanılsın?"
 
-#: DlgAdvPreferencesBase.cpp:691
-msgid "Leave applications in memory while suspended"
-msgstr "Durakladığında uygulamaları bellekte bırak"
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "Onaylama"
 
-#: DlgAdvPreferencesBase.cpp:693
-msgid "if checked, suspended work units are left in memory"
-msgstr "işaretlenirse, duraklamış işlerin uygulamaları kapatılmaz ve bellekte kalmayı sürdürür"
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
+#, c-format
+msgid "%s Diagnostic Log Flags"
+msgstr "%s Tanılama Günlüğü Bayrakları"
 
-#: DlgAdvPreferencesBase.cpp:713
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
-"Suspend processor and network usage when these applications are running:"
-msgstr "Bu uygulamalar çalışırken, işlemci ve ağ kullanımı duraklatılacak:"
+"These flags enable various types of diagnostic messages in the Event Log."
+msgstr "Bu bayraklar, Tanılama Günlüğü'nde çeşitli tiplerdeki tanılama mesajlarını etkinleştirir."
 
-#: DlgAdvPreferencesBase.cpp:722
-msgid "Add..."
-msgstr "Ekle..."
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
+msgid "More info ..."
+msgstr "Daha fazla bilgi..."
 
-#: DlgAdvPreferencesBase.cpp:723
-msgid "Add an application to this list"
-msgstr "Bu listeye bir uygulama ekle"
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
+msgid "Save all values and close the dialog"
+msgstr "Tüm değerleri kaydet ve pencereyi kapat"
 
-#: DlgAdvPreferencesBase.cpp:728 ViewProjects.cpp:202
-#: sg_ProjectCommandPopup.cpp:85
-msgid "Remove"
-msgstr "Kaldır"
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
+msgid "Defaults"
+msgstr "Varsayılanlar"
 
-#: DlgAdvPreferencesBase.cpp:729
-msgid "Remove an application from this list"
-msgstr "Bu listeden bir uygulama kaldır"
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
+msgid "Restore default settings"
+msgstr "Varsayılan değerler sıfırla"
 
-#: DlgAdvPreferencesBase.cpp:738
-msgid "For advanced options, refer to "
-msgstr "Gelişmiş seçenekler için, lütfen ziyaret edin:  "
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
+msgid "Close the dialog without saving"
+msgstr "Değişiklikleri kaydetmeden pencereyi kapat"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "Uygula"
 
-#: DlgEventLog.cpp:219
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "Tüm değerleri kaydet"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - Olay Günlüğü"
 
-#: DlgEventLog.cpp:232 ViewMessages.cpp:117 ViewProjects.cpp:219
-#: ViewStatistics.cpp:435 ViewStatistics.cpp:2009 ViewTransfers.cpp:182
-#: ViewWork.cpp:232
+#. Create List Pane Items
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
+#: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
+#: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
+#: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "Proje"
 
-#: DlgEventLog.cpp:233 ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "Zaman"
 
-#: DlgEventLog.cpp:234 ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "Mesaj"
 
-#: DlgEventLog.cpp:290 DlgEventLog.cpp:354
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "&Yalnızca bu projeyi göster"
 
-#: DlgEventLog.cpp:294
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "&Tümünü kopyala"
 
-#: DlgEventLog.cpp:296 DlgEventLog.cpp:300 ViewMessages.cpp:89
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
+#: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "Tüm mesajları panoya kopyalar."
 
-#: DlgEventLog.cpp:305
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "&Seçili mesajları kopyala"
 
-#: DlgEventLog.cpp:308 DlgEventLog.cpp:316 ViewMessages.cpp:97
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
+#: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or command key while clicking on "
 "messages."
 msgstr "Seçili mesajları panoya kopyalar. Shift ya da komut düğmelerine basıp\nmesajların üzerine tıklayarak, çok sayıda mesajı seçebilirsiniz."
 
-#: DlgEventLog.cpp:310 DlgEventLog.cpp:318 ViewMessages.cpp:99
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
+#: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
 "messages by holding down the shift or control key while clicking on "
 "messages."
 msgstr "Seçili mesajları panoya kopyalar. Shift ya da Ctrl düğmelerine basıp\nmesajların üzerine tıklayarak, çok sayıda mesajı seçebilirsiniz."
 
-#: DlgEventLog.cpp:325 DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "&Kapat"
 
-#: DlgEventLog.cpp:334 sg_BoincSimpleFrame.cpp:798 sg_DlgPreferences.cpp:442
-#, c-format
-msgid "Get help with %s"
-msgstr "%s ile yardım alın"
-
-#: DlgEventLog.cpp:348
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "&Tüm mesajları göster"
 
-#: DlgEventLog.cpp:349 DlgEventLog.cpp:351
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "Tüm projelere ait mesajları gösterir."
 
-#: DlgEventLog.cpp:355 DlgEventLog.cpp:357
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "Yalnızca şu anda seçili projeye ait mesajları ve BOINC'in genel mesajlarını görüntüler."
 
-#: DlgExitMessage.cpp:82
+#: clientgui/DlgExclusiveApps.cpp:60
 #, c-format
-msgid "%s - Exit Confirmation"
-msgstr "%s - Çıkış Onaylama"
+msgid "%s - Exclusive Applications"
+msgstr "%s - Ayrıcalıklı Uygulamalar"
 
-#: DlgExitMessage.cpp:130
-#, c-format
+#: clientgui/DlgExclusiveApps.cpp:72
 msgid ""
-"You have requested to exit the %s,\n"
-"which allows you to view and manage\n"
-"the tasks running on your computer.\n"
-"\n"
-"If you also want to stop running the tasks,\n"
-"choose from the following options:"
-msgstr "%s'dan çıkmak istediniz.\nBu program, bilgisayarınızda çalışan bilimsel\nuygulamaları görmenizi ve yönetmenizi sağlar.\n\nÇıktığınızda bilimsel uygulamaların da kapanmasını\nistiyorsanız, aşağıdaki seçenekleri işaretleyin:"
+"Suspend processor and network usage when these applications are running:"
+msgstr "Bu uygulamalar çalışırken, işlemci ve ağ kullanımı duraklatılacak:"
 
-#: DlgExitMessage.cpp:135
-#, c-format
-msgid ""
-"This will shut down %s and its tasks until either the\n"
-"%s or the %s screen saver is run again.\n"
-"\n"
-"In most cases, it is better just to close the %s window\n"
-"rather than to exit the application; that will allow %s to run its\n"
-"tasks at the times you selected in your preferences."
-msgstr "Bu işlem, %s'ı ve işlerini kapatır. %s uygulaması\nya da %s ekran koruyucusu tekrar çalışana kadar da kapalı kalır.\n\nBir çok durumda sadece %s penceresini kapatmak,\nuygulamayı kapatmaktan iyidir. Böylece %s,\nişleri ve zamanlanmış görevleri tercihlerinizde belirlediğiniz\nşekilde çalıştırabilir."
+#: clientgui/DlgExclusiveApps.cpp:80 clientgui/DlgExclusiveApps.cpp:104
+msgid "Add..."
+msgstr "Ekle..."
 
-#: DlgExitMessage.cpp:153
-#, c-format
-msgid "Stop running tasks when exiting the %s"
+#: clientgui/DlgExclusiveApps.cpp:81 clientgui/DlgExclusiveApps.cpp:105
+msgid "Add an application to this list"
+msgstr "Bu listeye bir uygulama ekle"
+
+#: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
+msgid "Remove"
+msgstr "Kaldır"
+
+#: clientgui/DlgExclusiveApps.cpp:87 clientgui/DlgExclusiveApps.cpp:111
+msgid "Remove an application from this list"
+msgstr "Bu listeden bir uygulama kaldır"
+
+#: clientgui/DlgExclusiveApps.cpp:96
+msgid "Suspend GPU usage when these applications are running:"
+msgstr "Bu uygulamalar çalışırken, GPU (ekran kartı) kullanımı duraklatılacak:"
+
+#: clientgui/DlgExclusiveApps.cpp:122
+msgid "For advanced options, refer to "
+msgstr "Gelişmiş seçenekler için, lütfen ziyaret edin:  "
+
+#: clientgui/DlgExclusiveApps.cpp:147
+msgid "save all values and close the dialog"
+msgstr "tüm değişiklikleri kaydeder ve pencereyi kapatır"
+
+#: clientgui/DlgExclusiveApps.cpp:153
+msgid "close the dialog without saving"
+msgstr "değişiklikleri kaydetmeden pencereyi kapatır"
+
+#: clientgui/DlgExclusiveApps.cpp:158
+msgid "shows the preferences web page"
+msgstr "Tercihler internet sayfasını görüntüler"
+
+#. TODO: fill in the default directory for MSW
+#. TODO: fill in the default directory for Linux
+#: clientgui/DlgExclusiveApps.cpp:303 clientgui/DlgExclusiveApps.cpp:309
+#: clientgui/DlgExclusiveApps.cpp:315
+msgid "Applications to add"
+msgstr "Uygulama ekle"
+
+#: clientgui/DlgExclusiveApps.cpp:332
+#, c-format
+msgid "'%s' is not an executable application."
+msgstr "'%s' çalıştırılabilir bir uygulama değil."
+
+#: clientgui/DlgExclusiveApps.cpp:333 clientgui/DlgExclusiveApps.cpp:380
+#: clientgui/DlgExclusiveApps.cpp:404
+msgid "Add Exclusive App"
+msgstr "Ayrıcalıklı Uygulama Ekle"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Name of application to add?"
+msgstr "Eklenecek uygulamanın ismi?"
+
+#: clientgui/DlgExclusiveApps.cpp:345
+msgid "Add exclusive app"
+msgstr "Ayrıcalıklı uygulama ekle"
+
+#: clientgui/DlgExclusiveApps.cpp:379
+#, c-format
+msgid "Application names must end with '%s'"
+msgstr "Uygulama isimleri mutlaka '%s' ile bitmelidir"
+
+#: clientgui/DlgExclusiveApps.cpp:403
+#, c-format
+msgid "'%s' is already in the list."
+msgstr "'%s' zaten listede."
+
+#: clientgui/DlgExitMessage.cpp:82
+#, c-format
+msgid "%s - Exit Confirmation"
+msgstr "%s - Çıkış Onaylama"
+
+#: clientgui/DlgExitMessage.cpp:130
+#, c-format
+msgid ""
+"You have requested to exit the %s,\n"
+"which allows you to view and manage\n"
+"the tasks running on your computer.\n"
+"\n"
+"If you also want to stop running the tasks,\n"
+"choose from the following options:"
+msgstr "%s'dan çıkmak istediniz.\nBu program, bilgisayarınızda çalışan bilimsel\nuygulamaları görmenizi ve yönetmenizi sağlar.\n\nÇıktığınızda bilimsel uygulamaların da kapanmasını\nistiyorsanız, aşağıdaki seçenekleri işaretleyin:"
+
+#: clientgui/DlgExitMessage.cpp:135
+#, c-format
+msgid ""
+"This will shut down %s and its tasks until either the\n"
+"%s or the %s screen saver is run again.\n"
+"\n"
+"In most cases, it is better just to close the %s window\n"
+"rather than to exit the application; that will allow %s to run its\n"
+"tasks at the times you selected in your preferences."
+msgstr "Bu işlem, %s'ı ve işlerini kapatır. %s uygulaması\nya da %s ekran koruyucusu tekrar çalışana kadar da kapalı kalır.\n\nBir çok durumda sadece %s penceresini kapatmak,\nuygulamayı kapatmaktan iyidir. Böylece %s,\nişleri ve zamanlanmış görevleri tercihlerinizde belirlediğiniz\nşekilde çalıştırabilir."
+
+#: clientgui/DlgExitMessage.cpp:153
+#, c-format
+msgid "Stop running tasks when exiting the %s"
 msgstr "%s'dan çıkarken, çalışan bilimsel uygulamaları da durdur"
 
-#: DlgExitMessage.cpp:165
+#: clientgui/DlgExitMessage.cpp:165
 msgid "Remember this decision and do not show this dialog."
 msgstr "Seçimimi hatırla ve tekrar sorma"
 
-#: DlgExitMessage.cpp:178 DlgGenericMessage.cpp:125 DlgOptions.cpp:401
-#: DlgSelectComputer.cpp:168 wizardex.cpp:378
+#: clientgui/DlgExitMessage.cpp:178 clientgui/DlgGenericMessage.cpp:125
+#: clientgui/DlgOptions.cpp:415 clientgui/DlgSelectComputer.cpp:168
+#: clientgui/wizardex.cpp:378
 msgid "&Cancel"
 msgstr "&İptal"
 
-#: DlgGenericMessage.cpp:112
+#: clientgui/DlgGenericMessage.cpp:112
 msgid "Don't show this dialog again."
 msgstr "Bu pencereyi tekrar gösterme."
 
-#: DlgItemProperties.cpp:168 DlgItemProperties.cpp:171
-#: DlgItemProperties.cpp:174 DlgItemProperties.cpp:177
-msgid "Don't fetch tasks for "
-msgstr "Bunun için işler indirme: "
+#: clientgui/DlgHiddenColumns.cpp:64
+#, c-format
+msgid "%s Column Selection"
+msgstr "%s - Sütun Seçimi"
+
+#: clientgui/DlgHiddenColumns.cpp:77
+#, c-format
+msgid "Select which columns %s should show."
+msgstr "%s'in hangi sütunları görüntüleyeceğini seçin."
+
+#: clientgui/DlgHiddenColumns.cpp:358
+msgid ""
+"Are you sure you want to reset all list columns to the default "
+"configurations?"
+msgstr "Tüm liste sütunlarını varsayılan yapılandırmaya sıfırlamak istediğinizden emin misiniz?"
+
+#: clientgui/DlgHiddenColumns.cpp:359
+msgid "Confirm defaults"
+msgstr "Varsayılanları onayla"
 
-#: DlgItemProperties.cpp:168
+#: clientgui/DlgItemProperties.cpp:194 clientgui/DlgItemProperties.cpp:197
+#: clientgui/DlgItemProperties.cpp:200 clientgui/DlgItemProperties.cpp:203
+msgid "Don't request tasks for "
+msgstr "Bunun için iş indirme: "
+
+#: clientgui/DlgItemProperties.cpp:194
 msgid "Project preference"
 msgstr "Proje tercihleri"
 
-#: DlgItemProperties.cpp:171
+#: clientgui/DlgItemProperties.cpp:197
 msgid "Account manager preference"
 msgstr "Hesap yöneticisi tercihi"
 
-#: DlgItemProperties.cpp:174
+#: clientgui/DlgItemProperties.cpp:200
 msgid "Project has no apps for "
 msgstr "Projenin bunun için uygulaması bulunmuyor: "
 
-#: DlgItemProperties.cpp:177
+#: clientgui/DlgItemProperties.cpp:203
 msgid "Client configuration excludes "
 msgstr "İstemci yapılandırması bunu içermez: "
 
-#: DlgItemProperties.cpp:181
-msgid " work fetch deferred for"
-msgstr " iş indirme ertelendi"
+#: clientgui/DlgItemProperties.cpp:209
+#, c-format
+msgid "%s task request deferred for"
+msgstr "%s iş indirme ertelendi"
 
-#: DlgItemProperties.cpp:182
-msgid " work fetch deferral interval"
-msgstr " iş indirme erteleme aralığı"
+#: clientgui/DlgItemProperties.cpp:213
+#, c-format
+msgid "%s task request deferral interval"
+msgstr "%s iş indirme erteleme aralığı"
 
-#: DlgItemProperties.cpp:213
+#. set dialog title
+#: clientgui/DlgItemProperties.cpp:247
 msgid "Properties of project "
 msgstr "Projenin özellikleri: "
 
-#: DlgItemProperties.cpp:217 DlgOptions.cpp:218
+#. layout controls
+#: clientgui/DlgItemProperties.cpp:251 clientgui/DlgOptions.cpp:232
 msgid "General"
 msgstr "Genel"
 
-#: DlgItemProperties.cpp:218
-msgid "Master URL"
-msgstr "Ana URL"
+#: clientgui/DlgItemProperties.cpp:252
+msgid "URL"
+msgstr "Adres"
 
-#: DlgItemProperties.cpp:219
+#: clientgui/DlgItemProperties.cpp:253
 msgid "User name"
 msgstr "Kullanıcı adı"
 
-#: DlgItemProperties.cpp:220
+#: clientgui/DlgItemProperties.cpp:254
 msgid "Team name"
 msgstr "Takım adı"
 
-#: DlgItemProperties.cpp:221 ViewProjects.cpp:224
+#: clientgui/DlgItemProperties.cpp:255 clientgui/ViewProjects.cpp:256
 msgid "Resource share"
 msgstr "Kaynak paylaşımı"
 
-#: DlgItemProperties.cpp:223
+#: clientgui/DlgItemProperties.cpp:257
 msgid "Scheduler RPC deferred for"
 msgstr "Zamanlanmış RPC ertelendi"
 
-#: DlgItemProperties.cpp:226
+#: clientgui/DlgItemProperties.cpp:260
 msgid "File downloads deferred for"
 msgstr "Dosya indirmeler ertelendi"
 
-#: DlgItemProperties.cpp:229
+#: clientgui/DlgItemProperties.cpp:263
 msgid "File uploads deferred for"
 msgstr "Dosya göndermeler ertelendi"
 
-#: DlgItemProperties.cpp:232
+#: clientgui/DlgItemProperties.cpp:265
+msgid "Disk usage"
+msgstr "Disk kullanımı"
+
+#: clientgui/DlgItemProperties.cpp:266
 msgid "Computer ID"
 msgstr "Bilgisayar ID"
 
-#: DlgItemProperties.cpp:234
+#: clientgui/DlgItemProperties.cpp:268
 msgid "Non CPU intensive"
 msgstr "CPU-yoğun değil"
 
-#: DlgItemProperties.cpp:234 DlgItemProperties.cpp:236
-#: DlgItemProperties.cpp:237 DlgItemProperties.cpp:239
-#: DlgItemProperties.cpp:242 DlgItemProperties.cpp:251
-#: DlgItemProperties.cpp:254 DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:268 clientgui/DlgItemProperties.cpp:270
+#: clientgui/DlgItemProperties.cpp:271 clientgui/DlgItemProperties.cpp:273
+#: clientgui/DlgItemProperties.cpp:276 clientgui/DlgItemProperties.cpp:285
+#: clientgui/DlgItemProperties.cpp:288 clientgui/DlgItemProperties.cpp:291
 msgid "yes"
 msgstr "evet"
 
-#: DlgItemProperties.cpp:236
+#: clientgui/DlgItemProperties.cpp:270
 msgid "Suspended via GUI"
 msgstr "Grafik arabirimi (GUI) ile durduruldu"
 
-#: DlgItemProperties.cpp:236 DlgItemProperties.cpp:237
+#: clientgui/DlgItemProperties.cpp:270 clientgui/DlgItemProperties.cpp:271
 msgid "no"
 msgstr "hayır"
 
-#: DlgItemProperties.cpp:237
-msgid "Don't request more work"
-msgstr "Daha fazla iş isteme"
+#: clientgui/DlgItemProperties.cpp:271
+msgid "Don't request tasks"
+msgstr "Bunun için iş indirme: "
 
-#: DlgItemProperties.cpp:239
+#: clientgui/DlgItemProperties.cpp:273
 msgid "Scheduler call in progress"
 msgstr "Zamanlanmış çağrı sürmekte"
 
-#: DlgItemProperties.cpp:242
+#: clientgui/DlgItemProperties.cpp:276
 msgid "Trickle-up pending"
 msgstr "İş ilerleme kuyruğu"
 
-#: DlgItemProperties.cpp:245 DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:279 clientgui/DlgItemProperties.cpp:281
 msgid "Host location"
 msgstr "Sunucu konumu"
 
-#: DlgItemProperties.cpp:247
+#: clientgui/DlgItemProperties.cpp:281
 msgid "default"
 msgstr "varsayılan"
 
-#: DlgItemProperties.cpp:251
+#: clientgui/DlgItemProperties.cpp:285
 msgid "Added via account manager"
 msgstr "Hesap yöneticisi aracılığıyla eklendi"
 
-#: DlgItemProperties.cpp:254
+#: clientgui/DlgItemProperties.cpp:288
 msgid "Remove when tasks done"
 msgstr "İşler tamamlandığında kaldır"
 
-#: DlgItemProperties.cpp:257
+#: clientgui/DlgItemProperties.cpp:291
 msgid "Ended"
 msgstr "Sonlandı"
 
-#: DlgItemProperties.cpp:259
+#: clientgui/DlgItemProperties.cpp:293
+msgid "Tasks completed"
+msgstr "İşler tamamlandı."
+
+#: clientgui/DlgItemProperties.cpp:294
+msgid "Tasks failed"
+msgstr "İşler başarısız"
+
+#: clientgui/DlgItemProperties.cpp:296
 msgid "Credit"
 msgstr "Kredi"
 
-#: DlgItemProperties.cpp:260
+#: clientgui/DlgItemProperties.cpp:297
 msgid "User"
 msgstr "Kullanıcı"
 
-#: DlgItemProperties.cpp:267
+#: clientgui/DlgItemProperties.cpp:300 clientgui/DlgItemProperties.cpp:308
+#, c-format
+msgid "%s total, %s average"
+msgstr "%s toplam, %s ortalama"
+
+#: clientgui/DlgItemProperties.cpp:305
 msgid "Host"
 msgstr "Bilgisayar"
 
-#: DlgItemProperties.cpp:276
+#: clientgui/DlgItemProperties.cpp:315
 msgid "Scheduling"
 msgstr "Zamanlama"
 
-#: DlgItemProperties.cpp:277
+#: clientgui/DlgItemProperties.cpp:316
 msgid "Scheduling priority"
 msgstr "Zamanlama önceliği"
 
-#: DlgItemProperties.cpp:278
+#: clientgui/DlgItemProperties.cpp:317
 msgid "CPU"
 msgstr "CPU"
 
-#: DlgItemProperties.cpp:302
+#: clientgui/DlgItemProperties.cpp:341
 msgid "Duration correction factor"
 msgstr "Süre düzeltme faktörü"
 
-#: DlgItemProperties.cpp:316
+#: clientgui/DlgItemProperties.cpp:349
+msgid "Last scheduler reply"
+msgstr "Son zamanlayıcı yanıtı"
+
+#: clientgui/DlgItemProperties.cpp:360
 msgid "Properties of task "
 msgstr "İşin özellikleri: "
 
-#: DlgItemProperties.cpp:328 ViewWork.cpp:238
+#: clientgui/DlgItemProperties.cpp:372 clientgui/ViewWork.cpp:266
 msgid "Application"
 msgstr "Uygulama"
 
-#: DlgItemProperties.cpp:329 ViewWork.cpp:239
+#: clientgui/DlgItemProperties.cpp:373 clientgui/ViewWork.cpp:267
 msgid "Name"
 msgstr "İsim"
 
-#: DlgItemProperties.cpp:330
+#: clientgui/DlgItemProperties.cpp:374
 msgid "State"
 msgstr "Durum"
 
-#: DlgItemProperties.cpp:333
+#: clientgui/DlgItemProperties.cpp:377
 msgid "Received"
 msgstr "Alınma zamanı"
 
-#: DlgItemProperties.cpp:336
+#: clientgui/DlgItemProperties.cpp:380
 msgid "Report deadline"
 msgstr "Son teslim zamanı"
 
-#: DlgItemProperties.cpp:338
+#: clientgui/DlgItemProperties.cpp:382
 msgid "Resources"
 msgstr "Kullandığı kaynaklar"
 
-#: DlgItemProperties.cpp:341
+#: clientgui/DlgItemProperties.cpp:385
 msgid "Estimated computation size"
 msgstr "Tahmini hesaplama miktarı"
 
-#: DlgItemProperties.cpp:344
-msgid "CPU time at last checkpoint"
-msgstr "Kontrol noktasındaki CPU zamanı"
-
-#: DlgItemProperties.cpp:345 DlgItemProperties.cpp:360
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "CPU zamanı"
 
-#: DlgItemProperties.cpp:347 DlgItemProperties.cpp:361
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "Denetim noktasından bu yana CPU zamanı"
+
+#: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "Geçen süre"
 
-#: DlgItemProperties.cpp:349
+#: clientgui/DlgItemProperties.cpp:395
 msgid "Estimated time remaining"
 msgstr "Tahmini kalan süre"
 
-#: DlgItemProperties.cpp:350
+#: clientgui/DlgItemProperties.cpp:396
 msgid "Fraction done"
 msgstr "Tamamlanan bölüm"
 
-#: DlgItemProperties.cpp:351
+#: clientgui/DlgItemProperties.cpp:397
 msgid "Virtual memory size"
 msgstr "Sanal bellek kullanımı"
 
-#: DlgItemProperties.cpp:352
+#: clientgui/DlgItemProperties.cpp:398
 msgid "Working set size"
 msgstr "Fiziksel bellek kullanımı"
 
-#: DlgItemProperties.cpp:354
+#: clientgui/DlgItemProperties.cpp:400
 msgid "Directory"
 msgstr "Bulunduğu klasör"
 
-#: DlgItemProperties.cpp:357
+#: clientgui/DlgItemProperties.cpp:403
 msgid "Process ID"
 msgstr "İşlem ID"
 
-#: DlgItemProperties.cpp:427 ViewWork.cpp:1032 sg_TaskPanel.cpp:823
+#: clientgui/DlgItemProperties.cpp:409 clientgui/DlgItemProperties.cpp:411
+#: clientgui/DlgItemProperties.cpp:413
+msgid "Progress rate"
+msgstr "İlerleme oranı"
+
+#: clientgui/DlgItemProperties.cpp:409
+msgid "per hour"
+msgstr "her saat"
+
+#: clientgui/DlgItemProperties.cpp:411
+msgid "per minute"
+msgstr "her dakika"
+
+#: clientgui/DlgItemProperties.cpp:413
+msgid "per second"
+msgstr "her saniye"
+
+#: clientgui/DlgItemProperties.cpp:421
+msgid "Executable"
+msgstr "Çalıştırılabilir"
+
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "Yerel:"
 
-#: DlgOptions.cpp:129 DlgOptions.cpp:135
+#: clientgui/DlgOptions.cpp:130 clientgui/DlgOptions.cpp:136
 msgid "Options"
 msgstr "Seçenekler"
 
-#: DlgOptions.cpp:175
+#: clientgui/DlgOptions.cpp:179
 msgid "Language:"
 msgstr "Dil:"
 
-#: DlgOptions.cpp:182
+#: clientgui/DlgOptions.cpp:186
 msgid "What language should BOINC use?"
 msgstr "BOINC Manager'ı hangi dilde kullanmak istediğinizi seçin."
 
-#: DlgOptions.cpp:186
+#: clientgui/DlgOptions.cpp:190
 msgid "Notice reminder interval:"
 msgstr "Bildirim hatırlatma sıklığı:"
 
-#: DlgOptions.cpp:193
+#: clientgui/DlgOptions.cpp:197
 msgid "How often should BOINC remind you of new notices?"
 msgstr "BOINC Manager'ın, yeni bildirimler olduğunu size ne kadar sürede bir hatırlatmasını istediğinizi belirleyin."
 
-#: DlgOptions.cpp:198
+#: clientgui/DlgOptions.cpp:202
 msgid "Run Manager at login?"
 msgstr "Açılışta BOINC Manager'ı çalıştır"
 
-#: DlgOptions.cpp:204
+#: clientgui/DlgOptions.cpp:208
 msgid "Run the BOINC Manager when you log on."
 msgstr "İşaretlerseniz, bilgisayarda oturum açtığınızda BOINC Manager otomatik olarak çalışır."
 
-#: DlgOptions.cpp:209
+#: clientgui/DlgOptions.cpp:213
+msgid "Run daemon?"
+msgstr "Arkaplan hizmeti çalışsın mı?"
+
+#: clientgui/DlgOptions.cpp:219
+msgid "Run daemon when launching the Manager."
+msgstr "Yönetici açılırken, arkaplan hizmetini de çalıştır."
+
+#: clientgui/DlgOptions.cpp:223
 msgid "Enable Manager exit dialog?"
 msgstr "BOINC Manager'dan çıkarken sor"
 
-#: DlgOptions.cpp:215
+#: clientgui/DlgOptions.cpp:229
 msgid "Display the exit dialog when shutting down the Manager."
 msgstr "İşaretlerseniz, BOINC Manager'ı kapatırken bunu onaylamanızı isteyen bir pencere belirir."
 
-#: DlgOptions.cpp:226
+#: clientgui/DlgOptions.cpp:240
 msgid "Dial-up and Virtual Private Network settings"
 msgstr "Çevirmeli bağlantı ve Sanal Özel Ağ (VPN) ayarları"
 
-#: DlgOptions.cpp:240
+#: clientgui/DlgOptions.cpp:254
 msgid "&Set Default"
 msgstr "&Varsayılan Yap"
 
-#: DlgOptions.cpp:245
+#: clientgui/DlgOptions.cpp:259
 msgid "&Clear Default"
 msgstr "&Varsayılanı Kaldır"
 
-#: DlgOptions.cpp:252
+#: clientgui/DlgOptions.cpp:266
 msgid "Default Connection:"
 msgstr "Varsayılan Bağlantı:"
 
-#: DlgOptions.cpp:259
+#: clientgui/DlgOptions.cpp:273
 msgid "Connections"
 msgstr "Bağlantılar"
 
-#: DlgOptions.cpp:268
+#: clientgui/DlgOptions.cpp:282
 msgid "Connect via HTTP proxy server"
 msgstr "HTTP vekil sunucu (proxy) aracılığıyla bağlan"
 
-#: DlgOptions.cpp:272
+#: clientgui/DlgOptions.cpp:286
 msgid "HTTP Proxy Server Configuration"
 msgstr "HTTP Vekil Sunucu Yapılandırması"
 
-#: DlgOptions.cpp:280 DlgOptions.cpp:344
+#: clientgui/DlgOptions.cpp:294 clientgui/DlgOptions.cpp:358
 msgid "Address:"
 msgstr "Adres:"
 
-#: DlgOptions.cpp:288 DlgOptions.cpp:352 ProxyPage.cpp:340 ProxyPage.cpp:360
+#: clientgui/DlgOptions.cpp:302 clientgui/DlgOptions.cpp:366
+#: clientgui/ProxyPage.cpp:340 clientgui/ProxyPage.cpp:360
 msgid "Port:"
 msgstr "Bağlantı noktası:"
 
-#: DlgOptions.cpp:296 DlgOptions.cpp:360
+#: clientgui/DlgOptions.cpp:310 clientgui/DlgOptions.cpp:374
 msgid "Don't use proxy for:"
 msgstr "Burası için vekil sunucu kullanma:"
 
-#: DlgOptions.cpp:303 DlgOptions.cpp:367
+#: clientgui/DlgOptions.cpp:317 clientgui/DlgOptions.cpp:381
 msgid "Leave these blank if not needed"
 msgstr "Gerekli değilse bu bölümü boş bırakın"
 
-#: DlgOptions.cpp:309 DlgOptions.cpp:373 ProxyPage.cpp:343 ProxyPage.cpp:363
+#: clientgui/DlgOptions.cpp:323 clientgui/DlgOptions.cpp:387
+#: clientgui/ProxyPage.cpp:343 clientgui/ProxyPage.cpp:363
 msgid "User Name:"
 msgstr "Kullanıcı adı:"
 
-#: DlgOptions.cpp:317 DlgOptions.cpp:381 DlgSelectComputer.cpp:152
-#: ProxyPage.cpp:346 ProxyPage.cpp:366
+#: clientgui/DlgOptions.cpp:331 clientgui/DlgOptions.cpp:395
+#: clientgui/DlgSelectComputer.cpp:152 clientgui/ProxyPage.cpp:346
+#: clientgui/ProxyPage.cpp:366
 msgid "Password:"
 msgstr "Parola:"
 
-#: DlgOptions.cpp:324
+#: clientgui/DlgOptions.cpp:338
 msgid "HTTP Proxy"
 msgstr "HTTP Proxy"
 
-#: DlgOptions.cpp:332
+#: clientgui/DlgOptions.cpp:346
 msgid "Connect via SOCKS proxy server"
 msgstr "SOCKS vekil sunucu (proxy) aracılığıyla bağlan"
 
-#: DlgOptions.cpp:336
+#: clientgui/DlgOptions.cpp:350
 msgid "SOCKS Proxy Server Configuration"
 msgstr "SOCKS Vekil Sunucu Yapılandırması"
 
-#: DlgOptions.cpp:388
+#: clientgui/DlgOptions.cpp:402
 msgid "SOCKS Proxy"
 msgstr "SOCKS Proxy"
 
-#: DlgOptions.cpp:586
+#: clientgui/DlgOptions.cpp:600
 msgid "always"
 msgstr "her zaman"
 
-#: DlgOptions.cpp:587
+#: clientgui/DlgOptions.cpp:601
 msgid "1 hour"
 msgstr "her saat"
 
-#: DlgOptions.cpp:588
+#: clientgui/DlgOptions.cpp:602
 msgid "6 hours"
 msgstr "6 saatte bir"
 
-#: DlgOptions.cpp:589
+#: clientgui/DlgOptions.cpp:603
 msgid "1 day"
 msgstr "günde bir"
 
-#: DlgOptions.cpp:590
+#: clientgui/DlgOptions.cpp:604
 msgid "1 week"
 msgstr "haftada bir"
 
-#: DlgOptions.cpp:591
+#: clientgui/DlgOptions.cpp:605
 msgid "never"
 msgstr "asla"
 
-#: DlgOptions.cpp:688
+#: clientgui/DlgOptions.cpp:703
 #, c-format
 msgid "%s - Language Selection"
 msgstr "%s - Dil Seçimi"
 
-#: DlgOptions.cpp:695
+#: clientgui/DlgOptions.cpp:710
 #, c-format
 msgid ""
 "The %s's language has been changed.  In order for this change to take "
 "effect, you must restart the %s."
 msgstr "%s'ın varsayılan dili değişti.  Değişikliğin etkili olması için %s yeniden başlatılmalı."
 
-#: DlgSelectComputer.cpp:91
+#: clientgui/DlgSelectComputer.cpp:91
 #, c-format
 msgid "%s - Select Computer"
 msgstr "%s - Bilgisayar Seç ve Bağlan"
 
-#: DlgSelectComputer.cpp:125
+#: clientgui/DlgSelectComputer.cpp:125
 #, c-format
 msgid ""
 "Another instance of %s is already running \n"
 "on this computer.  Please select a client to monitor."
 msgstr "%s'ın başka bir kopyası şu anda bu bilgisayarda\nzaten çalışıyor.  Lütfen izlemek için bir istemci seçin."
 
-#: DlgSelectComputer.cpp:143
+#: clientgui/DlgSelectComputer.cpp:143
 msgid "Host name:"
 msgstr "Sunucu adı:"
 
-#: Localization.cpp:31 Localization.cpp:69
+#: clientgui/Localization.cpp:31 clientgui/Localization.cpp:69
 msgid "Message boards"
 msgstr "Forum sayfaları"
 
-#: Localization.cpp:33
+#: clientgui/Localization.cpp:33
 msgid "Correspond with other users on the SETI at home message boards"
 msgstr "Diğer kullanıcılarla SETI at home forum sayfaları aracılığıyla iletişim kurun"
 
-#: Localization.cpp:37
+#: clientgui/Localization.cpp:37
 msgid "Ask questions and report problems"
 msgstr "Sorular sorun ve problemleri bildirin"
 
-#: Localization.cpp:39 Localization.cpp:81 Localization.cpp:111
-#: Localization.cpp:129
+#: clientgui/Localization.cpp:39 clientgui/Localization.cpp:81
+#: clientgui/Localization.cpp:111 clientgui/Localization.cpp:129
 msgid "Your account"
 msgstr "Hesabınız"
 
-#: Localization.cpp:41 Localization.cpp:87 Localization.cpp:113
+#: clientgui/Localization.cpp:41 clientgui/Localization.cpp:87
+#: clientgui/Localization.cpp:113
 msgid "View your account information and credit totals"
 msgstr "Hesap bilgilerinizi ve toplam kredinizi görüntüleyin"
 
-#: Localization.cpp:43
+#: clientgui/Localization.cpp:43
 msgid "Your preferences"
 msgstr "Tercihleriniz"
 
-#: Localization.cpp:45
+#: clientgui/Localization.cpp:45
 msgid "View and modify your SETI at home account profile and preferences"
 msgstr "SETI at home hesap profili ve tercihlerini görüp değiştirin"
 
-#: Localization.cpp:47 Localization.cpp:89
+#: clientgui/Localization.cpp:47 clientgui/Localization.cpp:89
 msgid "Your results"
 msgstr "Sonuçlarınız"
 
-#: Localization.cpp:49 Localization.cpp:91
+#: clientgui/Localization.cpp:49 clientgui/Localization.cpp:91
 msgid "View your last week (or more) of computational results and work"
 msgstr "Son haftaya ait (ya da daha eski) hesaplama sonuçlarınızı ve işlerinizi görüntüleyin"
 
-#: Localization.cpp:51 Localization.cpp:93
+#: clientgui/Localization.cpp:51 clientgui/Localization.cpp:93
 msgid "Your computers"
 msgstr "Bilgisayarlarınız"
 
-#: Localization.cpp:53
+#: clientgui/Localization.cpp:53
 msgid "View a listing of all the computers on which you are running SETI at Home"
 msgstr "SETI at Home çalıştırdığınız tüm bilgisayarların listesini görün"
 
-#: Localization.cpp:55 Localization.cpp:97
+#: clientgui/Localization.cpp:55 clientgui/Localization.cpp:97
 msgid "Your team"
 msgstr "Takımınız"
 
-#: Localization.cpp:57 Localization.cpp:99
+#: clientgui/Localization.cpp:57 clientgui/Localization.cpp:99
 msgid "View information about your team"
 msgstr "Takımınız hakkındaki bilgileri görüntüleyin"
 
-#: Localization.cpp:61
+#: clientgui/Localization.cpp:61
 msgid "Common questions"
 msgstr "Çeşitli sorular"
 
-#: Localization.cpp:63
+#: clientgui/Localization.cpp:63
 msgid "Read the Einstein at Home Frequently Asked Question list"
 msgstr "Einstein at Home Sık Sorulan Sorular listesini okuyun"
 
-#: Localization.cpp:65
+#: clientgui/Localization.cpp:65
 msgid "Screensaver info"
 msgstr "Ekran koruyucu bilgisi"
 
-#: Localization.cpp:67
+#: clientgui/Localization.cpp:67
 msgid "Read a detailed description of the Einstein at Home screensaver"
 msgstr "Einstein at Home ekran koruyucusunun detaylı açıklamalarını okuyun"
 
-#: Localization.cpp:71
+#: clientgui/Localization.cpp:71
 msgid ""
 "Correspond with admins and other users on the Einstein at Home message boards"
 msgstr "Yöneticiler ve başka kullanıcılarla Einstein at Home forumlarında mesajlaşın"
 
-#: Localization.cpp:73
+#: clientgui/Localization.cpp:73
 msgid "Einstein status"
 msgstr "Einstein durumu"
 
-#: Localization.cpp:75
+#: clientgui/Localization.cpp:75
 msgid "Current status of the Einstein at Home server"
 msgstr "Einstein at Home sunucusunun şu anki durumu"
 
-#: Localization.cpp:77
+#: clientgui/Localization.cpp:77
 msgid "Report problems"
 msgstr "Sorunları bildir"
 
-#: Localization.cpp:79
+#: clientgui/Localization.cpp:79
 msgid "A link to the Einstein at Home problems and bug reports message board"
 msgstr "Einstein at Home problemleri ve hata raporları forumuna kısa yol"
 
-#: Localization.cpp:83
+#: clientgui/Localization.cpp:83
 msgid "View and modify your Einstein at Home account profile and preferences"
 msgstr "Einstein at Home hesap profilinizi ve tercihlerinizi görün ve değiştirin"
 
-#: Localization.cpp:85
+#: clientgui/Localization.cpp:85
 msgid "Account summary"
 msgstr "Hesap özeti"
 
-#: Localization.cpp:95
+#: clientgui/Localization.cpp:95
 msgid ""
 "View a listing of all the computers on which you are running Einstein at Home"
 msgstr "Einstein at Home çalıştırdığınız tüm bilgisayarların bir listesini görün"
 
-#: Localization.cpp:101
+#: clientgui/Localization.cpp:101
 msgid "LIGO project"
 msgstr "LIGO projesi"
 
-#: Localization.cpp:103
+#: clientgui/Localization.cpp:103
 msgid ""
 "The home page of the Laser Interferometer Gravitational-wave Observatory "
 "(LIGO) project"
 msgstr "Laser Interferometer Gravitational-wave Observatory (LIGO) projesinin ana sayfası"
 
-#: Localization.cpp:105
+#: clientgui/Localization.cpp:105
 msgid "GEO-600 project"
 msgstr "GEO-600 projesi"
 
-#: Localization.cpp:107
+#: clientgui/Localization.cpp:107
 msgid "The home page of the GEO-600 project"
 msgstr "GEO-600 projesinin ana sayfası"
 
-#: Localization.cpp:115 Localization.cpp:133 ViewProjects.cpp:221
-#: ViewStatistics.cpp:465
+#: clientgui/Localization.cpp:115 clientgui/Localization.cpp:133
+#: clientgui/ViewProjects.cpp:253 clientgui/ViewStatistics.cpp:441
 msgid "Team"
 msgstr "Takım"
 
-#: Localization.cpp:117
+#: clientgui/Localization.cpp:117
 msgid "Info about your Team"
 msgstr "Takımınız hakkında bilgi"
 
-#: Localization.cpp:123
+#: clientgui/Localization.cpp:123
 msgid "Get help for climateprediction.net"
 msgstr "climateprediction.net için yardım al"
 
-#: Localization.cpp:125
+#: clientgui/Localization.cpp:125
 msgid "News"
 msgstr "Haberler"
 
-#: Localization.cpp:127
+#: clientgui/Localization.cpp:127
 msgid "climateprediction.net News"
 msgstr "climateprediction.net Haberleri"
 
-#: Localization.cpp:131
+#: clientgui/Localization.cpp:131
 msgid "View your account information, credits, and trickles"
 msgstr "Hesap bilgilerinizi, kredilerinizi ve iş ilerleme raporlarını görün"
 
-#: Localization.cpp:135
+#: clientgui/Localization.cpp:135
 msgid "Info about your team"
 msgstr "Takımınız hakkında bilgi"
 
-#: Localization.cpp:141
+#: clientgui/Localization.cpp:141
 msgid "Search for help in our help system"
 msgstr "Yardım sistemimizde arama yapın"
 
-#: Localization.cpp:143
+#: clientgui/Localization.cpp:143
 msgid "Global Statistics"
 msgstr "Global İstatistikler"
 
-#: Localization.cpp:145
+#: clientgui/Localization.cpp:145
 msgid "Summary statistics for World Community Grid"
 msgstr "World Community Grid için genel istatistikler"
 
-#: Localization.cpp:147
+#: clientgui/Localization.cpp:147
 msgid "My Grid"
 msgstr "Grid'im"
 
-#: Localization.cpp:149
+#: clientgui/Localization.cpp:149
 msgid "Your statistics and settings"
 msgstr "İstatistikleriniz ve ayarlarınız"
 
-#: Localization.cpp:151
+#: clientgui/Localization.cpp:151
 msgid "Device Profiles"
 msgstr "Aygıt Profilleri"
 
-#: Localization.cpp:153
+#: clientgui/Localization.cpp:153
 msgid "Update your device settings"
 msgstr "Bilgisayarlarınız için tercihleri inceleyin ve düzenleyin"
 
-#: Localization.cpp:155
+#: clientgui/Localization.cpp:155
 msgid "Research"
 msgstr "Araştırma"
 
-#: Localization.cpp:157
+#: clientgui/Localization.cpp:157
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "World Community Grid tarafından barındırılan projeler hakkında bilgi edinin"
 
-#: MainDocument.cpp:583
-msgid "Starting client"
-msgstr "İstemci başlıyor"
-
-#: MainDocument.cpp:591
-msgid "Connecting to client"
-msgstr "İstemciye bağlanılıyor"
-
-#: MainDocument.cpp:1195
-msgid "Retrieving system state; please wait..."
-msgstr "Sistem durum bilgisi alınıyor; lütfen bekleyin..."
-
-#: MainDocument.cpp:1816
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "Uygulama bulunamadı"
 
-#: MainDocument.cpp:1817
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "Lütfen CoRD uygulamasını buradan indirin ve kurun: http://cord.sourceforge.net"
 
-#: MainDocument.cpp:2432
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "pil gücünde"
 
-#: MainDocument.cpp:2433
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "bilgisayar kullanımda"
 
-#: MainDocument.cpp:2434
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "kullanıcı talebi"
 
-#: MainDocument.cpp:2435
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "günlük zamanlama"
 
-#: MainDocument.cpp:2436
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "İşlemci testleri sürüyor"
 
-#: MainDocument.cpp:2437
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "disk alanı gerekiyor - tercihleri kontrol edin"
 
-#: MainDocument.cpp:2438
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "bilgisayar kullanımda değil"
 
-#: MainDocument.cpp:2439
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "başlıyor"
 
-#: MainDocument.cpp:2440
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "ayrıcalıklı bir uygulama çalışıyor"
 
-#: MainDocument.cpp:2441
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "İşlemci meşgul"
 
-#: MainDocument.cpp:2442
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "ağ kullanım kotası doldu"
 
-#: MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "işletim sistemi tarafından istendi"
 
-#: MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "bilinmeyen sebep"
 
-#: MainDocument.cpp:2467
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "GPU mevcut değil, "
 
-#: MainDocument.cpp:2474
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "Yeni"
 
-#: MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "İndirme başarısız"
 
-#: MainDocument.cpp:2480
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "İndiriliyor"
 
-#: MainDocument.cpp:2482 MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr " (durakladı - "
 
-#: MainDocument.cpp:2490
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "Kullanıcı projeyi durdurdu"
 
-#: MainDocument.cpp:2492
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "Kullanıcı işi durdurdu"
 
-#: MainDocument.cpp:2494
+#. an NCI process can be running even though computation is suspended
+#. (because of <dont_suspend_nci>
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "Durakladı - "
 
-#: MainDocument.cpp:2500
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU durakladı - "
 
-#: MainDocument.cpp:2507
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "Bellek için bekleniyor"
 
-#: MainDocument.cpp:2509
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "Paylaşılan bellek için bekleniyor"
 
-#: MainDocument.cpp:2512
-msgid "Running, high priority"
-msgstr "Çalışıyor, yüksek öncelikli"
-
-#: MainDocument.cpp:2514
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "Çalışıyor"
 
-#: MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr " (CPU-yoğun-değil)"
 
-#: MainDocument.cpp:2520
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "Çalışmayı bekliyor"
 
-#: MainDocument.cpp:2522 MainDocument.cpp:2528
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "Başlamaya hazır"
 
-#: MainDocument.cpp:2532
-msgid " (Scheduler wait: "
-msgstr " (Zamanlanmış bekleme: "
+#: clientgui/MainDocument.cpp:2524
+msgid "Postponed: "
+msgstr "Ertelendi:"
 
-#: MainDocument.cpp:2536
-msgid " (Scheduler wait)"
-msgstr " (Zamanlanmış bekleme)"
+#: clientgui/MainDocument.cpp:2527
+msgid "Postponed"
+msgstr "Ertelendi"
 
-#: MainDocument.cpp:2540
-msgid " (Waiting for network access)"
-msgstr " (Ağ erişimi için bekleniyor)"
+#: clientgui/MainDocument.cpp:2531
+msgid "Waiting for network access"
+msgstr "Ağ erişimi için bekleniyor"
 
-#: MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "Hesaplama hatası"
 
-#: MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "Gönderme başarısız"
 
-#: MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "Gönderiliyor"
 
-#: MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "Kullanıcı tarafından iptal edildi"
 
-#: MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "Proje tarafından iptal edildi"
 
-#: MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "İptal edildi: Son teslim zamanı nedeniyle başlamadı"
 
-#: MainDocument.cpp:2570
-msgid "Aborted: disk limit exceeded"
-msgstr "İptal edildi: Disk limitine ulaşıldı"
+#: clientgui/MainDocument.cpp:2561
+msgid "Aborted: task disk limit exceeded"
+msgstr "İptal edildi: İş disk sınırlaması aşıldı"
 
-#: MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
-msgstr "İptal edildi: Zaman limitine ulaşıldı"
+msgstr "İptal edildi: Çalışma zamanı sınırlaması aşıldı"
 
-#: MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
-msgstr "İptal edildi: Bellek limitine ulaşıldı"
+msgstr "İptal edildi: Bellek sınırlaması aşıldı"
 
-#: MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "İptal edildi"
 
-#: MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "Kabul edildi"
 
-#: MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "Raporlanmaya hazır"
 
-#: MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "Hata: Geçersiz durum '%d'"
 
-#: NoInternetConnectionPage.cpp:179
+#: clientgui/NoInternetConnectionPage.cpp:179
 msgid "No Internet connection"
 msgstr "İnternet bağlantısı yok"
 
-#: NoInternetConnectionPage.cpp:182
+#: clientgui/NoInternetConnectionPage.cpp:182
 msgid "Please connect to the Internet and try again."
 msgstr "Lütfen internete bağlanıp, tekrar deneyin."
 
-#: NotDetectedPage.cpp:181
+#: clientgui/NotDetectedPage.cpp:181
 msgid "Project not found"
 msgstr "Proje bulunamadı"
 
-#: NotDetectedPage.cpp:184
+#: clientgui/NotDetectedPage.cpp:184
 msgid ""
 "The URL you supplied is not that of a BOINC-based project.\n"
 "\n"
 "Please check the URL and try again."
 msgstr "Belirttiğiniz adreste bir BOINC projesi bulunmuyor.\n\nAdresi kontrol edip tekrar deneyin."
 
-#: NotDetectedPage.cpp:188
+#: clientgui/NotDetectedPage.cpp:188
 msgid "Account manager not found"
 msgstr "Hesap yöneticisi bulunamadı"
 
-#: NotDetectedPage.cpp:191
+#: clientgui/NotDetectedPage.cpp:191
 msgid ""
 "The URL you supplied is not that of a BOINC-based account\n"
 "manager.\n"
@@ -2378,99 +2679,137 @@ msgid ""
 "Please check the URL and try again."
 msgstr "Belirttiğiniz adreste bir BOINC hesap yöneticisi bulunmuyor.\n\nAdresi kontrol edip tekrar deneyin."
 
-#: NotFoundPage.cpp:181
+#: clientgui/NotFoundPage.cpp:181
 msgid "Login Failed."
 msgstr "Giriş başarısız."
 
-#: NotFoundPage.cpp:185
+#: clientgui/NotFoundPage.cpp:185
 msgid "Check the username and password, and try again."
 msgstr "Kullanıcı adı ve parolayı kontrol edip, tekrar deneyin."
 
-#: NotFoundPage.cpp:189
+#: clientgui/NotFoundPage.cpp:189
 msgid "Check the email address and password, and try again."
 msgstr "E-posta, kullanıcı adı ve parolayı kontrol edip, tekrar deneyin."
 
-#: NoticeListCtrl.cpp:222
+#: clientgui/NoticeListCtrl.cpp:229
 msgid "more..."
 msgstr "devamı..."
 
-#: ProjectInfoPage.cpp:477 ProjectInfoPage.cpp:778 ProjectInfoPage.cpp:782
-msgid "All"
-msgstr "Tümü"
-
-#: ProjectInfoPage.cpp:615
+#: clientgui/ProjectInfoPage.cpp:221
 msgid "Choose a project"
 msgstr "Bir proje seçin"
 
-#: ProjectInfoPage.cpp:619
+#: clientgui/ProjectInfoPage.cpp:226
 msgid "To choose a project, click its name or type its URL below."
 msgstr "Bir proje seçmek için, ismine tıklayın ya da aşağıya adresini girin."
 
-#: ProjectInfoPage.cpp:623
+#: clientgui/ProjectInfoPage.cpp:242
 msgid "Categories:"
 msgstr "Kategoriler:"
 
-#: ProjectInfoPage.cpp:627 sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "Projeler:"
 
-#: ProjectInfoPage.cpp:631
+#: clientgui/ProjectInfoPage.cpp:274
 msgid "Project details"
 msgstr "Proje detayları"
 
-#: ProjectInfoPage.cpp:635
+#: clientgui/ProjectInfoPage.cpp:284
 msgid "Research area:"
 msgstr "Araştırma alanı:"
 
-#: ProjectInfoPage.cpp:639
+#: clientgui/ProjectInfoPage.cpp:294
 msgid "Organization:"
 msgstr "Organizasyon:"
 
-#: ProjectInfoPage.cpp:643
+#: clientgui/ProjectInfoPage.cpp:304
 msgid "Web site:"
 msgstr "İnternet sitesi:"
 
-#: ProjectInfoPage.cpp:647
+#: clientgui/ProjectInfoPage.cpp:315
 msgid "Supported systems:"
 msgstr "Desteklenen sistemler:"
 
-#: ProjectInfoPage.cpp:651
+#: clientgui/ProjectInfoPage.cpp:352
 msgid "Project URL:"
 msgstr "Proje adresi:"
 
-#: ProjectInfoPage.cpp:826
+#: clientgui/ProjectInfoPage.cpp:486 clientgui/ProjectInfoPage.cpp:686
+#: clientgui/ProjectInfoPage.cpp:690
+msgid "All"
+msgstr "Tümü"
+
+#: clientgui/ProjectInfoPage.cpp:735
 msgid ""
 "This project may not have work for your type of computer.  Do you want to "
 "add it anyway?"
 msgstr "Bu proje bilgisayarınızın özelliklerine uygun işe sahip olmayabilir.  Yine de eklemek istediğinize emin misiniz?"
 
-#: ProjectInfoPage.cpp:850
+#: clientgui/ProjectInfoPage.cpp:767
 msgid "You already added this project. Please choose a different project."
 msgstr "Bu projeyi zaten eklemiş durumdasınız. Lütfen farklı bir proje seçin."
 
-#: ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "Proje ile bağlantı kuruluyor."
+#: clientgui/ProjectProcessingPage.cpp:321
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "Projeye bağlanılıyor\nLütfen bekleyin..."
 
-#: ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "Gerekli dosyalar sunucu üzerinde bulunamadı."
 
-#: ProjectProcessingPage.cpp:512 ProjectProcessingPage.cpp:574
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "Sunucuda dahili bir hata meydana geldi."
 
-#: ProjectPropertiesPage.cpp:334
+#: clientgui/ProjectWelcomePage.cpp:251
+#, c-format
+msgid "Welcome to %s."
+msgstr "%s'e hoş geldiniz."
+
+#: clientgui/ProjectWelcomePage.cpp:254
+msgid "You have volunteered to compute for this project:"
+msgstr "Bu projede hesaplamak için gönüllü oldunuz:"
+
+#: clientgui/ProjectWelcomePage.cpp:255
+msgid "Name:"
+msgstr "İsim:"
+
+#: clientgui/ProjectWelcomePage.cpp:258
+msgid "Home:"
+msgstr "Sahibi:"
+
+#: clientgui/ProjectWelcomePage.cpp:262
+msgid "Description:"
+msgstr "Açıklama:"
+
+#: clientgui/ProjectWelcomePage.cpp:265
+msgid "URL:"
+msgstr "Adres:"
+
+#: clientgui/ProjectWelcomePage.cpp:268
+msgid "User:"
+msgstr "Kullanıcı:"
+
+#: clientgui/ProjectWelcomePage.cpp:273
 msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "Projeye bağlanılıyor\nLütfen bekleyin..."
+"WARNING: This project is not registered with BOINC.  Make sure you trust it "
+"before continuing."
+msgstr "UYARI: Bu proje BOINC'e kayıtlı değil. Devam etmeden önce güvendiğinize emin olun."
+
+#: clientgui/ProjectWelcomePage.cpp:277
+msgid "To continue, click Next."
+msgstr "Devam etmek için, İleri'yi tıklayın."
 
-#: ProxyInfoPage.cpp:195
+#: clientgui/ProxyInfoPage.cpp:195
 msgid "Network communication failure"
 msgstr "Ağ bağlantısı başarısız"
 
-#: ProxyInfoPage.cpp:199
+#: clientgui/ProxyInfoPage.cpp:199
 msgid ""
 "The World Community Grid - BOINC software failed to communicate\n"
 "over the Internet. The most likely reasons are:\n"
@@ -2487,7 +2826,7 @@ msgid ""
 "Click Next to configure BOINC's proxy settings."
 msgstr "The World Community Grid - BOINC yazılımı İnternet üzerinden\nbağlantı gerçekleştiremedi. Sıkça karşılaşılan sorunlar:\n\n1) Bağlantı problemi. Ağ ve modem bağlantılarınızı kontrol edin ve\ntekrar denemek için Geri'yi tıklayın.\n\n2) Kişisel güvenlik duvarı yazılımı World Community Grid - BOINC\nyazılımını engelliyor. Kişisel güvenlik duvarınızı, BOINC ve BOINC\nManager'ın bağlantı noktaları (port) 80 ve 443 üzerinden haberleşmesine\nizin verecek şekilde yapılandırın ve yeniden d [...]
 
-#: ProxyInfoPage.cpp:203
+#: clientgui/ProxyInfoPage.cpp:203
 msgid ""
 "BOINC failed to communicate on the Internet.\n"
 "The most likely reasons are:\n"
@@ -2504,611 +2843,852 @@ msgid ""
 "Click Next to configure BOINC's proxy settings."
 msgstr "BOINC yazılımı İnternet üzerinden bağlantı gerçekleştiremedi.\nSıkça karşılaşılan sorunlar:\n\n1) Bağlantı problemi. Ağ ve modem bağlantılarınızı kontrol edin ve\ntekrar denemek için Geri'yi tıklayın.\n\n2) Kişisel güvenlik duvarı yazılımı BOINC'i engelliyor. Kişisel güvenlik\nduvarınızı, BOINC ve BOINC Manager'ın bağlantı noktaları 80 ve 443\nüzerinden haberleşmesine izin verecek şekilde yapılandırın ve yeniden\ndenemek için Geri'yi tıklayın.\n\n3) Bir vekil sunucu (proxy) kulla [...]
 
-#: ProxyPage.cpp:331
+#: clientgui/ProxyPage.cpp:331
 msgid "Proxy configuration"
 msgstr "Proxy yapılandırması"
 
-#: ProxyPage.cpp:334
+#: clientgui/ProxyPage.cpp:334
 msgid "HTTP proxy"
 msgstr "HTTP proxy"
 
-#: ProxyPage.cpp:337 ProxyPage.cpp:357
+#: clientgui/ProxyPage.cpp:337 clientgui/ProxyPage.cpp:357
 msgid "Server:"
 msgstr "Sunucu:"
 
-#: ProxyPage.cpp:350
+#: clientgui/ProxyPage.cpp:350
 msgid "Autodetect"
 msgstr "Otomatik belirle"
 
-#: ProxyPage.cpp:354
+#: clientgui/ProxyPage.cpp:354
 msgid "SOCKS proxy"
 msgstr "SOCKS proxy"
 
-#: TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "Kullanım Koşulları"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "Kaplama"
 
-#: TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "Lütfen aşağıdaki kullanım koşullarını okuyun:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "Kullanıcı arayüzünün görünümünü seçin."
 
-#: TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "Kullanım koşullarını kabul ediyorum."
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "Gelişmiş görünüm...\tCtrl+Shift+A"
 
-#: TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "Kullanım koşullarını kabul etmiyorum."
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "Gelişmiş grafiksel arayüzü görüntüler."
 
-#: UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "Proje geçiçi olarak kullanılamaz durumda"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "Arayüz seçeneklerini ve vekil sunucu ayarlarını yapılandırabileceğiniz pencereyi açar."
 
-#: UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Proje geçiçi olarak kullanılamaz durumda.\n\nLütfen daha sonra tekrar deneyin."
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "Tanılama mesajlarını görüntüler."
 
-#: UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "Hesap yöneticisi geçici olarak devre dışı."
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "Hesap yöneticisi geçici olarak devre dışı.\n\nLütfen daha sonra tekrar deneyin."
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "Varsayılan"
 
-#: ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "Lütfen devam etmek için bir hesap anahtarı belirtin."
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "Duraklat"
 
-#: ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "Geçersiz hesap anahtarı; lütfen geçerli bir hesap anahtarı girin."
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "Hesaplamayı duraklatır"
 
-#: ValidateAccountKey.cpp:82 ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "Doğrulama tutmuyor"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "Hesaplamayı sürdürür"
 
-#: ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "Lütfen bir e-posta adresi belirtin."
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "Bildirimler"
 
-#: ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "Geçersiz e-posta adresi; lütfen geçerli bir e-posta adresi girin."
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "Projelerden ya da BOINC'ten gelen bildirimleri gösterir"
 
-#: ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "Eksik adres"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "%s ile yardım alın"
 
-#: ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "Lütfen bir internet adresi belirtin.\nÖrneğin:\nhttp://www.ornek.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "Bildirimler alınıyor; lütfen bekleyin..."
 
-#: ValidateURL.cpp:83 ValidateURL.cpp:87 ValidateURL.cpp:91
-#: ValidateURL.cpp:103 ValidateURL.cpp:107 ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "Geçersiz adres"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "Şu anda görüntülenecek bildirim yok."
 
-#: ValidateURL.cpp:84 ValidateURL.cpp:88 ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "Lütfen geçerli bir internet adresi belirtin.\nÖrneğin:\nhttp:/boincproject.ornek.com"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "Kapat"
 
-#: ValidateURL.cpp:104 ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s' geçerli bir bilgisayar adı içermiyor."
+msgid "%s - Notices"
+msgstr "%s  - Bildirimler"
 
-#: ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s' geçerli bir yol içermiyor."
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "Ek ayarlar için, 'Gelişmiş görünüm'de 'Hesaplama tercihleri' seçeneğini seçin."
 
-#: ViewMessages.cpp:84 ViewProjects.cpp:170 ViewStatistics.cpp:1978
-#: ViewTransfers.cpp:160 ViewWork.cpp:183
-msgid "Commands"
-msgstr "Komutlar"
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB disk alanı"
 
-#: ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "Tüm mesajları kopyala"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s - Hesaplama Tercihleri"
 
-#: ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "Seçili mesajları kopyala"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "Tüm yerel tercihler temizlensin ve web-tabanlı tercihler mi kullanılsın?"
 
-#: ViewMessages.cpp:106 ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "Yalnızca bu projeyi göster"
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
+msgid "Update"
+msgstr "Güncelle"
 
-#: ViewMessages.cpp:107 ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "Yalnızca şu anda seçili projeye ait mesajları ve BOINC'in genel mesajlarını görüntüler."
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
+msgid ""
+"Report all completed tasks, get latest credit, get latest preferences, and "
+"possibly get more tasks."
+msgstr "Tamamlanan işleri raporlar, güncel kredi bigilerini ve tercih ayarlarını alır ve gerekiyorsa daha fazla iş indirir."
 
-#: ViewMessages.cpp:164
-msgid "Messages"
-msgstr "Mesajlar"
+#: clientgui/sg_ProjectCommandPopup.cpp:73
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
+msgid "Suspend tasks for this project."
+msgstr "Bu projenin işlerini durdurur."
 
-#: ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "Tüm mesajlar panoya kopyalanıyor..."
+#: clientgui/sg_ProjectCommandPopup.cpp:78
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
+msgid "No new tasks"
+msgstr "Yeni işler indirme"
 
-#: ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "Seçili mesajlar panoya kopyalanıyor..."
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
+msgid "Don't get new tasks for this project."
+msgstr "Bu proje artık yeni işler indirmez."
 
-#: ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "Mesajlar filtreleniyor...."
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
+msgid "Reset project"
+msgstr "Projeyi sıfırla"
 
-#: ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "Tüm mesajları göster"
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
+msgid ""
+"Delete all files and tasks associated with this project, and get new tasks."
+"  You can update the project first to report any completed tasks."
+msgstr "Bu projeye ilişkin tüm dosyalar ile işleri siler ve yeni işler alır.  Tamamlanmış işler varsa sonuçları raporlamak için önce projeyi güncelleyebilirsiniz."
 
-#: ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "Tüm projeler için mesajları gösterir."
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
+msgid ""
+"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
+"report any completed tasks)."
+msgstr "Bu bilgisayardan bu projeyi kaldırır.  Sürmekte olan işler kaybedilir (tamamlanmış işlerin sonuçlarını göndermek için önce 'Güncelle' komutunu kullanın)."
 
-#: ViewNotices.cpp:58 sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "Bildirimler alınıyor; lütfen bekleyin..."
+#: clientgui/sg_ProjectCommandPopup.cpp:96
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
+msgid "Properties"
+msgstr "Özellikler"
 
-#: ViewNotices.cpp:65 sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "Şu anda görüntülenecek bildirim yok."
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
+msgid "Show project details."
+msgstr "Proje detaylarını görüntüler."
 
-#: ViewNotices.cpp:99 sg_BoincSimpleFrame.cpp:776
-msgid "Notices"
-msgstr "Bildirimler"
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "Bu projenin işleri yeniden çalıştırılır."
 
-#: ViewProjects.cpp:174 sg_ProjectCommandPopup.cpp:61
-msgid "Update"
-msgstr "Güncelle"
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "Yeni işler indir"
 
-#: ViewProjects.cpp:175 sg_ProjectCommandPopup.cpp:62
-msgid ""
-"Report all completed tasks, get latest credit, get latest preferences, and "
-"possibly get more tasks."
-msgstr "Tamamlanan işleri raporlar, güncel kredi bigilerini ve tercih ayarlarını alır ve gerekiyorsa daha fazla iş indirir."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "Bu projenin yeni işler indirmesine izin verir."
 
-#: ViewProjects.cpp:181 ViewProjects.cpp:722 ViewWork.cpp:208 ViewWork.cpp:801
-#: sg_BoincSimpleFrame.cpp:757 sg_ProjectCommandPopup.cpp:67
-#: sg_ProjectCommandPopup.cpp:113 sg_TaskCommandPopup.cpp:66
-#: sg_TaskCommandPopup.cpp:106
-msgid "Suspend"
-msgstr "Duraklat"
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "Bu projeye artık yeni işler alınmaz."
 
-#: ViewProjects.cpp:182 ViewProjects.cpp:722 sg_ProjectCommandPopup.cpp:68
-#: sg_ProjectCommandPopup.cpp:114
-msgid "Suspend tasks for this project."
-msgstr "Bu projenin işlerini durdurur."
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
+#, c-format
+msgid "Are you sure you want to reset project '%s'?"
+msgstr "'%s' projesini sıfırlamak istediğinize emin misiniz?"
 
-#: ViewProjects.cpp:188 ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:73
-#: sg_ProjectCommandPopup.cpp:121
-msgid "No new tasks"
-msgstr "Yeni işler indirme"
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
+msgid "Reset Project"
+msgstr "Projeyi sıfırla"
 
-#: ViewProjects.cpp:189 sg_ProjectCommandPopup.cpp:74
-msgid "Don't get new tasks for this project."
-msgstr "Bu proje artık yeni işler indirmez."
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
+#, c-format
+msgid "Are you sure you want to remove project '%s'?"
+msgstr "'%s' projesini kaldırmak istediğinize emin misiniz?"
 
-#: ViewProjects.cpp:195 sg_ProjectCommandPopup.cpp:79
-msgid "Reset project"
-msgstr "Projeyi sıfırla"
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
+msgid "Remove Project"
+msgstr "Projeyi kaldır"
 
-#: ViewProjects.cpp:196 sg_ProjectCommandPopup.cpp:80
-msgid ""
-"Delete all files and tasks associated with this project, and get new tasks."
-"  You can update the project first to report any completed tasks."
-msgstr "Bu projeye ilişkin tüm dosyalar ile işleri siler ve yeni işler alır.  Tamamlanmış işler varsa sonuçları raporlamak için önce projeyi güncelleyebilirsiniz."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "Proje ekle"
+
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "Eşitle"
+
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "Bu projede elde ettiğiniz toplam kredi"
+
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "Bilimin pek çok alanından 30'dan fazla projeden birisi için gönüllü olun"
+
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "Projeleri hesap yöneticisi sistemiyle senkronize eder"
+
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "Aşağıdaki kontrollere erişimek için bir proje seçin"
+
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "Proje internet sayfaları"
+
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "Proje komutları"
+
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "%s projesinin internet sayfaları için bir menü açar"
 
-#: ViewProjects.cpp:203 sg_ProjectCommandPopup.cpp:86
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "%s projesine verilebilecek komutları gösterir"
+
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "Grafikleri göster"
+
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "Uygulama grafiklerini bir pencerede gösterir."
+
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "Bu işi duraklat."
+
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "İptal"
+
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "Bu işi iptal eder. Bu iş için kredi alamayacaksanız."
+
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "Seçili işin detaylı bilgilerini gösterir."
+
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "Seçili işlerin çalışmasını sürdürür."
+
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "Seçili işlerin çalışmasını durdurur."
+
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
 msgid ""
-"Remove this project.  Tasks in progress will be lost (use 'Update' first to "
-"report any completed tasks)."
-msgstr "Bu bilgisayardan bu projeyi kaldırır.  Sürmekte olan işler kaybedilir (tamamlanmış işlerin sonuçlarını göndermek için önce 'Güncelle' komutunu kullanın)."
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "'%s'\nadlı işi iptal etmek istediğinize emin misiniz?\n(İlerleme: %%%.1lf, Durum: %s)"
 
-#: ViewProjects.cpp:209 ViewWork.cpp:222 sg_ProjectCommandPopup.cpp:91
-#: sg_TaskCommandPopup.cpp:78
-msgid "Properties"
-msgstr "Özellikler"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "İşi iptal et"
 
-#: ViewProjects.cpp:210 sg_ProjectCommandPopup.cpp:92
-msgid "Show project details."
-msgstr "Proje detaylarını görüntüler."
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "Katıldığınız bir proje bulunmuyor.  Lütfen bir proje ekleyin."
 
-#: ViewProjects.cpp:220 ViewStatistics.cpp:450
-msgid "Account"
-msgstr "Hesap"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "Mevcut değil"
 
-#: ViewProjects.cpp:222
-msgid "Work done"
-msgstr "Kredi"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "İşler:"
 
-#: ViewProjects.cpp:223
-msgid "Avg. work done"
-msgstr "Günlük ortalama kredi"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "Erişim için bir iş seçin"
 
-#: ViewProjects.cpp:225 ViewTransfers.cpp:188 ViewWork.cpp:234
-msgid "Status"
-msgstr "Durum"
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "Sahibi:"
 
-#: ViewProjects.cpp:250
-msgid "Projects"
-msgstr "Projeler"
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "Bu işin ilerleme oranı"
 
-#: ViewProjects.cpp:302
-msgid "Updating project..."
-msgstr "Proje güncelleniyor..."
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "İş komutları"
 
-#: ViewProjects.cpp:344
-msgid "Resuming project..."
-msgstr "Proje sürdürülüyor..."
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "Bu işe verilebilecek komutları gösterir"
 
-#: ViewProjects.cpp:348
-msgid "Suspending project..."
-msgstr "Proje durduruluyor..."
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "Uygulama: %s"
 
-#: ViewProjects.cpp:385
-msgid "Telling project to allow additional task downloads..."
-msgstr "Projeye yeni iş indirmeleri yapılabileceği bildiriliyor..."
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%%%.3f"
 
-#: ViewProjects.cpp:389
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "Projeye yeni iş indirmeleri yapılmayacağı bildiriliyor..."
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "Uygulama: Mevcut değil"
 
-#: ViewProjects.cpp:425
-msgid "Resetting project..."
-msgstr "Proje sıfırlanıyor..."
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "Mevcut değil"
 
-#: ViewProjects.cpp:438 sg_ProjectCommandPopup.cpp:214
+#: clientgui/sg_TaskPanel.cpp:854
 #, c-format
-msgid "Are you sure you want to reset project '%s'?"
-msgstr "'%s' projesini sıfırlamak istediğinize emin misiniz?"
+msgid "Elapsed: %s"
+msgstr "Geçen süre: %s"
 
-#: ViewProjects.cpp:444 sg_ProjectCommandPopup.cpp:220
-msgid "Reset Project"
-msgstr "Projeyi sıfırla"
+#: clientgui/sg_TaskPanel.cpp:868
+#, c-format
+msgid "Remaining (estimated): %s"
+msgstr "Kalan süre (tahmini): %s"
+
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "Durum: %s"
+
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "Mevcut durum bilgisi alınıyor..."
+
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "İş sunucudan indiriliyor"
+
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "Çalışma Durdu:  Pil Gücünde Çalışıyor."
 
-#: ViewProjects.cpp:483
-msgid "Removing project..."
-msgstr "Proje kaldırılıyor..."
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "Çalışma Durdu:  Kullanıcı Faal."
 
-#: ViewProjects.cpp:496 sg_ProjectCommandPopup.cpp:251
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "Çalışma Durdu:  Kullanıcı Çalışmayı Duraklattı."
+
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "Çalışma Durdu:  Günlük Zamanlama"
+
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "Çalışma Durdu:  Testler Çalışıyor."
+
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "Çalışma Durdu: Disk alanı gerekiyor."
+
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "Çalışma Durdu."
+
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "Proje sunucularına bağlanılması için bekleniyor."
+
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "Mevcut durum bilgisi alınıyor"
+
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "Çalıştırılacak iş bulunmuyor"
+
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "Çekirdek istemciyle bağlantı kurulamadı"
+
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "Kullanım Koşulları"
+
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "Lütfen aşağıdaki kullanım koşullarını okuyun:"
+
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "Kullanım koşullarını kabul ediyorum."
+
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "Kullanım koşullarını kabul etmiyorum."
+
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "Proje geçiçi olarak kullanılamaz durumda"
+
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Proje geçiçi olarak kullanılamaz durumda.\n\nLütfen daha sonra tekrar deneyin."
+
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "Hesap yöneticisi geçici olarak devre dışı."
+
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "Hesap yöneticisi geçici olarak devre dışı.\n\nLütfen daha sonra tekrar deneyin."
+
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "Lütfen devam etmek için bir hesap anahtarı belirtin."
+
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "Geçersiz hesap anahtarı; lütfen geçerli bir hesap anahtarı girin."
+
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "Doğrulama tutmuyor"
+
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "Lütfen bir e-posta adresi belirtin."
+
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "Geçersiz e-posta adresi; lütfen geçerli bir e-posta adresi girin."
+
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "Eksik adres"
+
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "Lütfen bir internet adresi belirtin.\nÖrneğin:\nhttp://www.ornek.com/"
+
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "Geçersiz adres"
+
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "Lütfen geçerli bir internet adresi belirtin.\nÖrneğin:\nhttp:/boincproject.ornek.com"
+
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
 #, c-format
-msgid "Are you sure you want to remove project '%s'?"
-msgstr "'%s' projesini kaldırmak istediğinize emin misiniz?"
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s' geçerli bir bilgisayar adı içermiyor."
 
-#: ViewProjects.cpp:502 sg_ProjectCommandPopup.cpp:257
-msgid "Remove Project"
-msgstr "Projeyi kaldır"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s' geçerli bir yol içermiyor."
 
-#: ViewProjects.cpp:543 ViewWork.cpp:599
-msgid "Launching browser..."
-msgstr "Tarayıcı çalıştırılıyor..."
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "Komutlar"
 
-#: ViewProjects.cpp:718 sg_ProjectCommandPopup.cpp:111
-msgid "Resume tasks for this project."
-msgstr "Bu projenin işleri yeniden çalıştırılır."
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "Tüm mesajları kopyala"
 
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:118
-msgid "Allow new tasks"
-msgstr "Yeni işler indir"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "Seçili mesajları kopyala"
 
-#: ViewProjects.cpp:737 sg_ProjectCommandPopup.cpp:119
-msgid "Allow fetching new tasks for this project."
-msgstr "Bu projenin yeni işler indirmesine izin verir."
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "Yalnızca bu projeyi göster"
 
-#: ViewProjects.cpp:741 sg_ProjectCommandPopup.cpp:122
-msgid "Don't fetch new tasks for this project."
-msgstr "Bu projeye artık yeni işler alınmaz."
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "Yalnızca şu anda seçili projeye ait mesajları ve BOINC'in genel mesajlarını görüntüler."
+
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "Mesajlar"
+
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "Tüm mesajlar panoya kopyalanıyor..."
+
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "Seçili mesajlar panoya kopyalanıyor..."
+
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "Mesajlar filtreleniyor...."
+
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "Tüm mesajları göster"
+
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "Tüm projeler için mesajları gösterir."
+
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "Hesap"
+
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "Kredi"
+
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "Günlük ortalama kredi"
 
-#: ViewProjects.cpp:1058
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "Durum"
+
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "Projeler"
+
+#: clientgui/ViewProjects.cpp:1115
 msgid "Requested by user"
 msgstr "Kullanıcı tarafından istendi"
 
-#: ViewProjects.cpp:1059
+#: clientgui/ViewProjects.cpp:1116
 msgid "To fetch work"
 msgstr "İş indiriliyor"
 
-#: ViewProjects.cpp:1060
+#: clientgui/ViewProjects.cpp:1117
 msgid "To report completed tasks"
 msgstr "Tamamlanan işler raporlanıyor"
 
-#: ViewProjects.cpp:1061
+#: clientgui/ViewProjects.cpp:1118
 msgid "To send trickle-up message"
 msgstr "İş ilerleme mesajı gönderimi"
 
-#: ViewProjects.cpp:1062
+#: clientgui/ViewProjects.cpp:1119
 msgid "Requested by account manager"
 msgstr "Hesap yöneticisi tarafından istendi"
 
-#: ViewProjects.cpp:1063
+#: clientgui/ViewProjects.cpp:1120
 msgid "Project initialization"
 msgstr "Proje başlatılıyor"
 
-#: ViewProjects.cpp:1064
+#: clientgui/ViewProjects.cpp:1121
 msgid "Requested by project"
 msgstr "Proje tarafından istendi"
 
-#: ViewProjects.cpp:1065
+#: clientgui/ViewProjects.cpp:1122
 msgid "Unknown reason"
 msgstr "Bilinmeyen sebep"
 
-#: ViewProjects.cpp:1079
+#: clientgui/ViewProjects.cpp:1136
 msgid "Suspended by user"
 msgstr "Kullanıcı tarafından durduruldu"
 
-#: ViewProjects.cpp:1082
+#: clientgui/ViewProjects.cpp:1139
 msgid "Won't get new tasks"
 msgstr "Yeni işler alınmayacak"
 
-#: ViewProjects.cpp:1085
+#: clientgui/ViewProjects.cpp:1142
 msgid "Project ended - OK to remove"
 msgstr "Proje sona erdi - Kaldırmak için Tamam'a tıklayın"
 
-#: ViewProjects.cpp:1088
+#: clientgui/ViewProjects.cpp:1145
 msgid "Will remove when tasks done"
 msgstr "İşler tamamlandığında kaldırılacak"
 
-#: ViewProjects.cpp:1091
+#: clientgui/ViewProjects.cpp:1148
 msgid "Scheduler request pending"
 msgstr "Zamanlanmış istek kuyrukta"
 
-#: ViewProjects.cpp:1097
+#: clientgui/ViewProjects.cpp:1154
 msgid "Scheduler request in progress"
 msgstr "Zamanlanmış istek gerçekleştiriliyor"
 
-#: ViewProjects.cpp:1100
+#: clientgui/ViewProjects.cpp:1157
 msgid "Trickle up message pending"
 msgstr "İş ilerleme mesajı kuyrukta"
 
-#: ViewProjects.cpp:1106
-msgid "Communication deferred "
-msgstr "Haberleşme ertelendi "
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "İletişim ertelendi"
 
-#: ViewResources.cpp:62
+#: clientgui/ViewResources.cpp:62
 msgid "Total disk usage"
 msgstr "Toplam disk kullanımı"
 
-#: ViewResources.cpp:83
+#: clientgui/ViewResources.cpp:83
 msgid "Disk usage by BOINC projects"
-msgstr "BOINC projelerinin disk kullanımı"
-
-#: ViewResources.cpp:116
-msgid "Disk"
-msgstr "Disk"
+msgstr "BOINC projelerinin disk kullanımı"
 
-#: ViewResources.cpp:249
+#: clientgui/ViewResources.cpp:225
 msgid "no projects: 0 bytes used"
 msgstr "proje yok: 0 bayt kullanılıyor"
 
-#: ViewResources.cpp:286
+#: clientgui/ViewResources.cpp:259
 msgid "used by BOINC: "
 msgstr "BOINC tarafından kullanılan: "
 
-#: ViewResources.cpp:296
+#: clientgui/ViewResources.cpp:269
 msgid "free, available to BOINC: "
 msgstr "boş ve BOINC tarafından kullanılabilir: "
 
-#: ViewResources.cpp:306
+#: clientgui/ViewResources.cpp:279
 msgid "free, not available to BOINC: "
 msgstr "boş ancak BOINC tarafından kullanılamaz: "
 
-#: ViewResources.cpp:316
+#: clientgui/ViewResources.cpp:289
 msgid "free: "
 msgstr "boş: "
 
-#: ViewResources.cpp:326
+#: clientgui/ViewResources.cpp:298
 msgid "used by other programs: "
 msgstr "başka programlarca kullanılan: "
 
-#: ViewStatistics.cpp:1205
+#: clientgui/ViewStatistics.cpp:1181
 msgid "User Total"
 msgstr "Toplam Krediniz"
 
-#: ViewStatistics.cpp:1206
+#: clientgui/ViewStatistics.cpp:1182
 msgid "User Average"
 msgstr "Günlük Ortalama Krediniz"
 
-#: ViewStatistics.cpp:1207
+#: clientgui/ViewStatistics.cpp:1183
 msgid "Host Total"
 msgstr "Bilgisayarınızın Toplam Kredisi"
 
-#: ViewStatistics.cpp:1208
+#: clientgui/ViewStatistics.cpp:1184
 msgid "Host Average"
 msgstr "Bilgisayarınızın Günlük Ortalama Kredisi"
 
-#: ViewStatistics.cpp:1355
+#: clientgui/ViewStatistics.cpp:1331
 #, c-format
 msgid "Last update: %.0f days ago"
 msgstr "Son güncelleme: %.0f gün önce"
 
-#: ViewStatistics.cpp:1982
+#: clientgui/ViewStatistics.cpp:1956
 msgid "Show user total"
 msgstr "Toplam kredim"
 
-#: ViewStatistics.cpp:1983
+#: clientgui/ViewStatistics.cpp:1957
 msgid "Show total credit for user"
 msgstr "Toplam kredinizi görüntüler"
 
-#: ViewStatistics.cpp:1989
+#: clientgui/ViewStatistics.cpp:1963
 msgid "Show user average"
 msgstr "Günlük ortalama kredim"
 
-#: ViewStatistics.cpp:1990
+#: clientgui/ViewStatistics.cpp:1964
 msgid "Show average credit for user"
 msgstr "Günlük üretilen ortalama kredinizi görüntüler"
 
-#: ViewStatistics.cpp:1996
+#: clientgui/ViewStatistics.cpp:1970
 msgid "Show host total"
 msgstr "Bilgisayarımın toplam kredisi"
 
-#: ViewStatistics.cpp:1997
+#: clientgui/ViewStatistics.cpp:1971
 msgid "Show total credit for host"
 msgstr "Bu bilgisayarınızın toplam kredisini görüntüler"
 
-#: ViewStatistics.cpp:2003
+#: clientgui/ViewStatistics.cpp:1977
 msgid "Show host average"
 msgstr "Bilgisayarımın ortalama kredisi"
 
-#: ViewStatistics.cpp:2004
+#: clientgui/ViewStatistics.cpp:1978
 msgid "Show average credit for host"
 msgstr "Bu bilgisayarınızın ortalama kredisini görüntüler"
 
-#: ViewStatistics.cpp:2013
+#: clientgui/ViewStatistics.cpp:1987
 msgid "< &Previous project"
 msgstr "< &Önceki proje"
 
-#: ViewStatistics.cpp:2014
+#: clientgui/ViewStatistics.cpp:1988
 msgid "Show chart for previous project"
 msgstr "Önceki proje için çizelge"
 
-#: ViewStatistics.cpp:2019
+#: clientgui/ViewStatistics.cpp:1993
 msgid "&Next project >"
 msgstr "&Sonraki proje >"
 
-#: ViewStatistics.cpp:2020
+#: clientgui/ViewStatistics.cpp:1994
 msgid "Show chart for next project"
 msgstr "Sonraki proje için çizelge"
 
-#: ViewStatistics.cpp:2026 ViewStatistics.cpp:2416
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
 msgid "Hide project list"
 msgstr "Proje listesini gizle"
 
-#: ViewStatistics.cpp:2027 ViewStatistics.cpp:2416
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
 msgid "Use entire area for graphs"
 msgstr "Tüm alan grafikler için kullanılır"
 
-#: ViewStatistics.cpp:2032
+#: clientgui/ViewStatistics.cpp:2006
 msgid "Mode view"
 msgstr "Görünüm kipi"
 
-#: ViewStatistics.cpp:2036
+#: clientgui/ViewStatistics.cpp:2010
 msgid "One project"
 msgstr "Tek proje"
 
-#: ViewStatistics.cpp:2037
+#: clientgui/ViewStatistics.cpp:2011
 msgid "Show one chart with selected project"
 msgstr "Seçilen projeyi tek çizelgede göster"
 
-#: ViewStatistics.cpp:2043
+#: clientgui/ViewStatistics.cpp:2017
 msgid "All projects (separate)"
 msgstr "Tüm projeler (ayrı)"
 
-#: ViewStatistics.cpp:2044
+#: clientgui/ViewStatistics.cpp:2018
 msgid "Show all projects, one chart per project"
 msgstr "Tüm projeleri göster, her biri için ayrı çizelge"
 
-#: ViewStatistics.cpp:2050
+#: clientgui/ViewStatistics.cpp:2024
 msgid "All projects (together)"
 msgstr "Tüm projeler (birlikte)"
 
-#: ViewStatistics.cpp:2051
+#: clientgui/ViewStatistics.cpp:2025
 msgid "Show one chart with all projects"
 msgstr "Tüm projelerin bulunduğu tek çizelge göster"
 
-#: ViewStatistics.cpp:2057
+#: clientgui/ViewStatistics.cpp:2031
 msgid "All projects (sum)"
 msgstr "Tüm projeler (özet)"
 
-#: ViewStatistics.cpp:2058
+#: clientgui/ViewStatistics.cpp:2032
 msgid "Show one chart with sum of projects"
 msgstr "Tüm projelerin özetinin bulunduğu tek çizelge göster"
 
-#: ViewStatistics.cpp:2079
+#: clientgui/ViewStatistics.cpp:2053
 msgid "Statistics"
 msgstr "İstatistikler"
 
-#: ViewStatistics.cpp:2103 ViewStatistics.cpp:2124 ViewStatistics.cpp:2145
-#: ViewStatistics.cpp:2167 ViewStatistics.cpp:2188 ViewStatistics.cpp:2209
-#: ViewStatistics.cpp:2230 ViewStatistics.cpp:2251 ViewStatistics.cpp:2272
-#: ViewStatistics.cpp:2296
-msgid "Updating charts..."
-msgstr "Çizelgeler güncelleniyor..."
-
-#: ViewStatistics.cpp:2420
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Show project list"
 msgstr "Proje listesini göster"
 
-#: ViewStatistics.cpp:2420
+#: clientgui/ViewStatistics.cpp:2374
 msgid "Uses smaller area for graphs"
 msgstr "Grafikler için daha küçük bir alan kullanılır"
 
-#: ViewTransfers.cpp:164
+#: clientgui/ViewTransfers.cpp:187
 msgid "Retry Now"
 msgstr "Şimdi dene"
 
-#: ViewTransfers.cpp:165
+#: clientgui/ViewTransfers.cpp:188
 msgid "Retry the file transfer now"
 msgstr "Dosya transferini şimdi yeniden dener"
 
-#: ViewTransfers.cpp:171
+#: clientgui/ViewTransfers.cpp:194
 msgid "Abort Transfer"
 msgstr "Aktarımı iptal et"
 
-#: ViewTransfers.cpp:172
+#: clientgui/ViewTransfers.cpp:195
 msgid "Abort this file transfer.  You won't get credit for the task."
 msgstr "Bu dosya aktarımını iptal eder. Bu iş için kredi alamazsınız."
 
-#: ViewTransfers.cpp:183
+#: clientgui/ViewTransfers.cpp:210
 msgid "File"
 msgstr "Dosya"
 
-#: ViewTransfers.cpp:184 ViewWork.cpp:233
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
 msgid "Progress"
 msgstr "İlerleme"
 
-#: ViewTransfers.cpp:185
+#: clientgui/ViewTransfers.cpp:212
 msgid "Size"
 msgstr "Boyut"
 
-#: ViewTransfers.cpp:186
-msgid "Elapsed Time"
-msgstr "Geçen süre"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "Geçen"
 
-#: ViewTransfers.cpp:187
+#: clientgui/ViewTransfers.cpp:214
 msgid "Speed"
 msgstr "Hız"
 
-#: ViewTransfers.cpp:213
+#: clientgui/ViewTransfers.cpp:295
 msgid "Transfers"
 msgstr "Aktarımlar"
 
-#: ViewTransfers.cpp:280
+#: clientgui/ViewTransfers.cpp:372
 msgid "Network activity is suspended - "
 msgstr "Ağ faaliyeti durakladı - "
 
-#: ViewTransfers.cpp:282
+#: clientgui/ViewTransfers.cpp:374
 msgid ""
 ".\n"
 "You can enable it using the Activity menu."
 msgstr ".\nÇalışma menüsünü kullanarak yeniden sürdürebilirsiniz."
 
-#: ViewTransfers.cpp:285
+#: clientgui/ViewTransfers.cpp:377
 msgid "BOINC"
 msgstr "BOINC"
 
-#: ViewTransfers.cpp:292
-msgid "Retrying transfer now..."
-msgstr "Aktarım yeniden deneniyor..."
-
-#: ViewTransfers.cpp:330
-msgid "Aborting transfer..."
-msgstr "Aktarım iptal ediliyor..."
-
-#: ViewTransfers.cpp:343
+#: clientgui/ViewTransfers.cpp:431
 #, c-format
 msgid ""
 "Are you sure you want to abort this file transfer '%s'?\n"
@@ -3116,587 +3696,136 @@ msgid ""
 "will not receive credit for it."
 msgstr "'%s'\nadlı dosyayı aktarımı iptal etmek istediğinize emin misiniz?\nNOT: Bir aktarımı durdurmak, işi geçersiz kılar ve kredi alamazsınız."
 
-#: ViewTransfers.cpp:349
+#: clientgui/ViewTransfers.cpp:437
 msgid "Abort File Transfer"
 msgstr "Dosya Aktarımını İptal Et"
 
-#: ViewTransfers.cpp:780
+#: clientgui/ViewTransfers.cpp:849
 msgid "Upload"
 msgstr "Gönderme"
 
-#: ViewTransfers.cpp:780
+#: clientgui/ViewTransfers.cpp:849
 msgid "Download"
 msgstr "İndirme"
 
-#: ViewTransfers.cpp:784
+#: clientgui/ViewTransfers.cpp:853
 msgid "retry in "
 msgstr "yeniden denenecek "
 
-#: ViewTransfers.cpp:786
+#: clientgui/ViewTransfers.cpp:855
 msgid "failed"
 msgstr "başarısız"
 
-#: ViewTransfers.cpp:789
+#: clientgui/ViewTransfers.cpp:858
 msgid "suspended"
 msgstr "durakladı"
 
-#: ViewTransfers.cpp:794
+#: clientgui/ViewTransfers.cpp:863
 msgid "active"
 msgstr "sürüyor"
 
-#: ViewTransfers.cpp:796
+#: clientgui/ViewTransfers.cpp:865
 msgid "pending"
 msgstr "kuyrukta"
 
-#: ViewTransfers.cpp:803
+#: clientgui/ViewTransfers.cpp:871
 msgid " (project backoff: "
 msgstr " (proje ertelendi: "
 
-#: ViewWork.cpp:187 ViewWork.cpp:777
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
 msgid "Show active tasks"
 msgstr "Süren işleri göster"
 
-#: ViewWork.cpp:188 ViewWork.cpp:778
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
 msgid "Show only active tasks."
 msgstr "Yalnızca çalışmakta olan işleri gösterir."
 
-#: ViewWork.cpp:194 sg_TaskCommandPopup.cpp:60
-msgid "Show graphics"
-msgstr "Grafikleri göster"
-
-#: ViewWork.cpp:195 sg_TaskCommandPopup.cpp:61
-msgid "Show application graphics in a window."
-msgstr "Uygulama grafiklerini bir pencerede gösterir."
-
-#: ViewWork.cpp:201
+#: clientgui/ViewWork.cpp:225
 msgid "Show VM Console"
 msgstr "VM Konsolu'nu görüntüle"
 
-#: ViewWork.cpp:202
+#: clientgui/ViewWork.cpp:226
 msgid "Show VM Console in a window."
 msgstr "VM Konsolu'nu bir pencerede gösterir."
 
-#: ViewWork.cpp:209
+#: clientgui/ViewWork.cpp:233
 msgid "Suspend work for this result."
 msgstr "Seçili işlerin çalışmasını durdurur."
 
-#: ViewWork.cpp:215 sg_TaskCommandPopup.cpp:72
-msgid "Abort"
-msgstr "İptal"
-
-#: ViewWork.cpp:216
+#: clientgui/ViewWork.cpp:240
 msgid "Abandon work on the result. You will get no credit for it."
 msgstr "Seçili işleri iptal eder (işten kredi alamazsınız)."
 
-#: ViewWork.cpp:223 sg_TaskCommandPopup.cpp:79
-msgid "Show task details."
-msgstr "Seçili işin detaylı bilgilerini gösterir."
-
-#: ViewWork.cpp:235
-msgid "Elapsed"
-msgstr "Geçen"
-
-#: ViewWork.cpp:236
+#: clientgui/ViewWork.cpp:264
 msgid "Remaining (estimated)"
 msgstr "Kalan (tahmini)"
 
-#: ViewWork.cpp:237
+#: clientgui/ViewWork.cpp:265
 msgid "Deadline"
 msgstr "Son teslim zamanı"
 
-#: ViewWork.cpp:264
+#: clientgui/ViewWork.cpp:351
 msgid "Tasks"
 msgstr "İşler"
 
-#: ViewWork.cpp:357
-msgid "Resuming task..."
-msgstr "İş sürdürülüyor..."
-
-#: ViewWork.cpp:360
-msgid "Suspending task..."
-msgstr "İş durduruluyor..."
-
-#: ViewWork.cpp:389
-msgid "Showing graphics for task..."
-msgstr "İşin grafikleri gösteriliyor..."
-
-#: ViewWork.cpp:426
-msgid "Showing VM console for task..."
-msgstr "İşin VM Konsolu gösteriliyor..."
-
-#: ViewWork.cpp:479
+#: clientgui/ViewWork.cpp:564
 #, c-format
 msgid ""
 "Are you sure you want to abort this task '%s'?\n"
 "(Progress: %s, Status: %s)"
 msgstr "'%s'\nadlı işi iptal etmek istediğinize emin misiniz?\n(İlerleme: %s, Durum: %s)"
 
-#: ViewWork.cpp:485
+#: clientgui/ViewWork.cpp:570
 #, c-format
 msgid "Are you sure you want to abort these %d tasks?"
 msgstr "Bu %d işi iptal etmek istediğinize emin miziniz?"
 
-#: ViewWork.cpp:490 sg_TaskCommandPopup.cpp:256
-msgid "Abort task"
-msgstr "İşi iptal et"
-
-#: ViewWork.cpp:499
-msgid "Aborting task..."
-msgstr "İş iptal ediliyor..."
-
-#: ViewWork.cpp:771
+#: clientgui/ViewWork.cpp:848
 msgid "Show all tasks"
 msgstr "Tüm işleri göster"
 
-#: ViewWork.cpp:772
+#: clientgui/ViewWork.cpp:849
 msgid "Show all tasks."
 msgstr "Çalışan, bekleyen ve durdurulmuş tüm işleri gösterir."
 
-#: ViewWork.cpp:796 sg_TaskCommandPopup.cpp:103
-msgid "Resume work for this task."
-msgstr "Seçili işlerin çalışmasını sürdürür."
-
-#: ViewWork.cpp:802 sg_TaskCommandPopup.cpp:107
-msgid "Suspend work for this task."
-msgstr "Seçili işlerin çalışmasını durdurur."
-
-#: WelcomePage.cpp:284
-msgid "Add project or account manager"
-msgstr "Proje ya da hesap yöneticisi ekle"
-
-#: WelcomePage.cpp:288
-msgid "Add project or use BOINC Account Manager"
-msgstr "Proje ekle ya da BOINC Hesap Yöneticisi kullan"
-
-#: WelcomePage.cpp:297
-#, c-format
-msgid ""
-"If possible, add projects at the\n"
-"%s web site.\n"
-"\n"
-"Projects added via this wizard will not be\n"
-"listed on or managed via %s."
-msgstr "Eğer mümkünse projeleri %s\ninternet sitesinden ekleyin.\n\nBu sihirbazla eklenen projeler, %s ile\nlistelenemez ya da yönetilemez."
-
-#: WelcomePage.cpp:313
-msgid ""
-"There are over 30 BOINC-based projects\n"
-"doing research in many areas of science,\n"
-"and you can volunteer for as many of them as you like.\n"
-"You can add a project directly,\n"
-"or use an 'Account Manager' web site to select projects."
-msgstr "Bilimin çeşitli alanlarında araştırma yapılan\n30'un üzerinde BOINC tabanlı proje mevcuttur ve\nistediklerinize destek vermek için gönüllü olabilirsiniz.\nDirekt olarak bir projeyi ekleyebilir ya da\nprojeleri seçmek için bir 'Hesap Yöneticisi' sitesi\nkullanabilirsiniz."
-
-#: WelcomePage.cpp:325
-msgid ""
-"You have chosen to add a new volunteer computing project or change which projects\n"
-"you contribute to.\n"
-"\n"
-"Some of these projects are run and managed by World Community Grid, while others\n"
-"are run and managed by other researchers or organizations. The BOINC software\n"
-"can divide your spare processing power among any combination of projects.\n"
-"\n"
-"Alternatively, if you have registered with a BOINC Account Manager, you can use\n"
-"this to choose which projects to support.\n"
-"\n"
-"Please choose which type of change you would like to make:\n"
-msgstr "Yeni bir gönüllü hesaplama projesi eklemeyi ya da katkıda bulunduğunuz projeleri\ndeğiştirmeyi seçtiniz.\n\nBu projelerden bazıları, World Community Grid tarafından işletilir ve yönetilirken,\ndiğerleri ise başka araştırmacılar ya da organizasyonlar tarafından işletilir ve\nyönetilir. BOINC yazılımı ile boş işlemci gücünüzü, bu projelerin herhangi bir\nkombinasyonu arasında paylaştırabilirsiniz.\n\nAlternatif olarak, bir BOINC Hesap Yöneticisi kullanıyorsanız, desteklemek istediğ [...]
-
-#: WelcomePage.cpp:339
-msgid "Use a BOINC Account Manager"
-msgstr "Bir BOINC Hesap Yöneticisi kullan"
-
-#: WelcomePage.cpp:352
-msgid "To continue, click Next."
-msgstr "Devam etmek için, İleri'yi tıklayın."
-
-#: WelcomePage.cpp:358
-msgid "Add or change your World Community Grid projects"
-msgstr "World Community Grid projeleri ekle ya da değiştir"
-
-#: WelcomePage.cpp:361
-msgid "Add projects run by other researchers or organizations"
-msgstr "Başka araştırmacı ya da organizasyonların projelerini ekle"
-
-#: WizardAttach.cpp:634
+#: clientgui/WizardAttach.cpp:591
 msgid "Do you really want to cancel?"
 msgstr "İptal etmek istediğinize emin misiniz?"
 
-#: WizardAttach.cpp:635
+#: clientgui/WizardAttach.cpp:592
 msgid "Question"
 msgstr "Soru"
 
-#: sg_BoincSimpleFrame.cpp:149
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "Gelişmiş görünüm...\tCtrl+Shift+A"
-
-#: sg_BoincSimpleFrame.cpp:150
-msgid "Display the advanced graphical interface."
-msgstr "Gelişmiş grafiksel arayüzü görüntüler."
-
-#: sg_BoincSimpleFrame.cpp:157
-msgid "Skin"
-msgstr "Kaplama"
-
-#: sg_BoincSimpleFrame.cpp:159
-msgid "Select the appearance of the user interface."
-msgstr "Kullanıcı arayüzünün görünümünü seçin."
-
-#: sg_BoincSimpleFrame.cpp:206
-#, c-format
-msgid "&%s"
-msgstr "&%s"
-
-#: sg_BoincSimpleFrame.cpp:390
-msgid "Default"
-msgstr "Varsayılan"
-
-#: sg_BoincSimpleFrame.cpp:759
-msgid "Suspend Computing"
-msgstr "Hesaplamayı duraklatır"
-
-#: sg_BoincSimpleFrame.cpp:760
-msgid "Resume Computing"
-msgstr "Hesaplamayı sürdürür"
-
-#: sg_BoincSimpleFrame.cpp:777
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "Projelerden ya da BOINC'ten gelen bildirimleri gösterir"
-
-#: sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "Kapat"
-
-#: sg_DlgMessages.cpp:389
-#, c-format
-msgid "%s - Notices"
-msgstr "%s  - Bildirimler"
-
-#: sg_DlgPreferences.cpp:268
-msgid "This dialog controls preferences for this computer only."
-msgstr "Bu pencere, tercihleri yalnızca bu bilgisayarınız için özelleştirir."
-
-#: sg_DlgPreferences.cpp:273
-msgid "Click OK to set preferences."
-msgstr "Tercihlerinizi kaydetmek için 'Tamam'ı tıklayın."
-
-#: sg_DlgPreferences.cpp:278
-msgid ""
-"Click Clear to restore web-based settings for all preferences listed below."
-msgstr "Aşağıda listelenen tüm tercihler ​için web tabanlı ayarları geri yüklemek için Temizle'yi tıklatın."
-
-#: sg_DlgPreferences.cpp:285
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "Ek ayarlar için, 'Gelişmiş görünüm'de 'Hesaplama tercihleri' seçeneğini seçin."
-
-#: sg_DlgPreferences.cpp:313
-msgid "Do work only between:"
-msgstr "Yalnızca bu saatler arasında çalıştır:"
-
-#: sg_DlgPreferences.cpp:335
-msgid "Connect to internet only between:"
-msgstr "Bu saatler arasında internete bağlan:"
-
-#: sg_DlgPreferences.cpp:357 sg_DlgPreferences.cpp:374
-msgid "Use no more than:"
-msgstr "En çok bu kadar kullan:"
-
-#: sg_DlgPreferences.cpp:370
-msgid "of disk space"
-msgstr "disk alanı"
-
-#: sg_DlgPreferences.cpp:387
-msgid "of the processor"
-msgstr "işlemci (CPU) gücü"
-
-#: sg_DlgPreferences.cpp:391
-msgid "Do work while on battery?"
-msgstr "Pil gücündeyken işleri çalıştır?"
-
-#: sg_DlgPreferences.cpp:404
-msgid "Do work after idle for:"
-msgstr "Bu kadar süre boşta kaldığında çalıştır:"
-
-#: sg_DlgPreferences.cpp:429
-msgid "Clear all local preferences listed above and close the dialog"
-msgstr "Yukarıda listelenen tüm yerel tercihleri temizler ve pencereyi kapatır"
-
-#: sg_DlgPreferences.cpp:602 sg_DlgPreferences.cpp:605
-#: sg_DlgPreferences.cpp:681 sg_DlgPreferences.cpp:685
-#: sg_DlgPreferences.cpp:697 sg_DlgPreferences.cpp:701
-#: sg_DlgPreferences.cpp:844 sg_DlgPreferences.cpp:855
-msgid "Anytime"
-msgstr "Herhangi"
-
-#: sg_DlgPreferences.cpp:638
-msgid "100 MB"
-msgstr "100 MB"
-
-#: sg_DlgPreferences.cpp:639
-msgid "200 MB"
-msgstr "200 MB"
-
-#: sg_DlgPreferences.cpp:640
-msgid "500 MB"
-msgstr "500 MB"
-
-#: sg_DlgPreferences.cpp:641
-msgid "1 GB"
-msgstr "1 GB"
-
-#: sg_DlgPreferences.cpp:642
-msgid "2 GB"
-msgstr "2 GB"
-
-#: sg_DlgPreferences.cpp:643
-msgid "5 GB"
-msgstr "5 GB"
-
-#: sg_DlgPreferences.cpp:644
-msgid "10 GB"
-msgstr "10 GB"
-
-#: sg_DlgPreferences.cpp:645
-msgid "20 GB"
-msgstr "20 GB"
-
-#: sg_DlgPreferences.cpp:646
-msgid "50 GB"
-msgstr "50 GB"
-
-#: sg_DlgPreferences.cpp:647
-msgid "100 GB"
-msgstr "100 GB"
-
-#: sg_DlgPreferences.cpp:717
-#, c-format
-msgid "%d MB"
-msgstr "%d MB"
-
-#: sg_DlgPreferences.cpp:719
-#, c-format
-msgid "%4.2f GB"
-msgstr "%4.2f GB"
-
-#: sg_DlgPreferences.cpp:760
-#, c-format
-msgid "%d%%"
-msgstr "%%%d"
-
-#: sg_DlgPreferences.cpp:796
-msgid "0 (Run Always)"
-msgstr "0 (Daima çalış)"
-
-#: sg_DlgPreferences.cpp:799
-#, c-format
-msgid "%d"
-msgstr "%d"
-
-#: sg_DlgPreferences.cpp:1029
-msgid "Do you really want to clear all local preferences?\n"
-msgstr "Tüm yerel tercihlerinizi kaldırmak istediğinize emin misiniz?\n"
-
-#: sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "Proje ekle"
-
-#: sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "Eşitle"
-
-#: sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "Bu projede elde ettiğiniz toplam kredi"
-
-#: sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "Projeleri hesap yöneticisi sistemiyle senkronize eder"
-
-#: sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "Aşağıdaki kontrollere erişimek için bir proje seçin"
-
-#: sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "Proje internet sayfaları"
-
-#: sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "Proje komutları"
-
-#: sg_ProjectPanel.cpp:267
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "%s projesinin internet sayfaları için bir menü açar"
-
-#: sg_ProjectPanel.cpp:269
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "%s projesine verilebilecek komutları gösterir"
-
-#: sg_TaskCommandPopup.cpp:67
-msgid "Suspend this task."
-msgstr "Bu işi duraklat."
-
-#: sg_TaskCommandPopup.cpp:73
-msgid "Abandon this task. You will get no credit for it."
-msgstr "Bu işi iptal eder. Bu iş için kredi alamayacaksanız."
-
-#: sg_TaskCommandPopup.cpp:251
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "'%s'\nadlı işi iptal etmek istediğinize emin misiniz?\n(İlerleme: %%%.1lf, Durum: %s)"
-
-#: sg_TaskPanel.cpp:464
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "Katıldığınız bir proje bulunmuyor.  Lütfen bir proje ekleyin."
-
-#: sg_TaskPanel.cpp:465
-msgid "Not available"
-msgstr "Mevcut değil"
-
-#: sg_TaskPanel.cpp:476
-msgid "Tasks:"
-msgstr "İşler:"
-
-#: sg_TaskPanel.cpp:482
-msgid "Select a task to access"
-msgstr "Erişim için bir iş seçin"
-
-#: sg_TaskPanel.cpp:493
-msgid "From:"
-msgstr "Sahibi:"
-
-#: sg_TaskPanel.cpp:547
-msgid "This task's progress"
-msgstr "Bu işin ilerleme oranı"
-
-#: sg_TaskPanel.cpp:565
-msgid "Task Commands"
-msgstr "İş komutları"
-
-#: sg_TaskPanel.cpp:566
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "Bu işe verilebilecek komutları gösterir"
-
-#: sg_TaskPanel.cpp:701
-#, c-format
-msgid "Application: %s"
-msgstr "Uygulama: %s"
-
-#: sg_TaskPanel.cpp:724
-#, c-format
-msgid "%.3f%%"
-msgstr "%%%.3f"
-
-#: sg_TaskPanel.cpp:732
-msgid "Application: Not available"
-msgstr "Uygulama: Mevcut değil"
-
-#: sg_TaskPanel.cpp:832
-msgid "Not Available"
-msgstr "Mevcut değil"
-
-#: sg_TaskPanel.cpp:847
-#, c-format
-msgid "Elapsed: %s"
-msgstr "Geçen süre: %s"
-
-#: sg_TaskPanel.cpp:861
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "Kalan süre (tahmini): %s"
-
-#: sg_TaskPanel.cpp:876
-#, c-format
-msgid "Status: %s"
-msgstr "Durum: %s"
-
-#: sg_TaskPanel.cpp:1223
-msgid "Retrieving current status."
-msgstr "Mevcut durum bilgisi alınıyor..."
-
-#: sg_TaskPanel.cpp:1229
-msgid "Downloading work from the server."
-msgstr "İş sunucudan indiriliyor"
-
-#: sg_TaskPanel.cpp:1234
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "Çalışma Durdu:  Pil Gücünde Çalışıyor."
-
-#: sg_TaskPanel.cpp:1236
-msgid "Processing Suspended:  User Active."
-msgstr "Çalışma Durdu:  Kullanıcı Faal."
-
-#: sg_TaskPanel.cpp:1238
-msgid "Processing Suspended:  User paused processing."
-msgstr "Çalışma Durdu:  Kullanıcı Çalışmayı Duraklattı."
-
-#: sg_TaskPanel.cpp:1240
-msgid "Processing Suspended:  Time of Day."
-msgstr "Çalışma Durdu:  Günlük Zamanlama"
-
-#: sg_TaskPanel.cpp:1242
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "Çalışma Durdu:  Testler Çalışıyor."
-
-#: sg_TaskPanel.cpp:1244
-msgid "Processing Suspended."
-msgstr "Çalışma Durdu."
-
-#: sg_TaskPanel.cpp:1248
-msgid "Waiting to contact project servers."
-msgstr "Proje sunucularına bağlanılması için bekleniyor."
-
-#: sg_TaskPanel.cpp:1252 sg_TaskPanel.cpp:1261
-msgid "Retrieving current status"
-msgstr "Mevcut durum bilgisi alınıyor"
-
-#: sg_TaskPanel.cpp:1256
-msgid "No work available to process"
-msgstr "Çalıştırılacak iş bulunmuyor"
-
-#: sg_TaskPanel.cpp:1258
-msgid "Unable to connect to the core client"
-msgstr "Çekirdek istemciyle bağlantı kurulamadı"
-
-#: wizardex.cpp:377 wizardex.cpp:553
+#: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
 msgstr "&İleri >"
 
-#: wizardex.cpp:383
+#: clientgui/wizardex.cpp:383
 msgid "< &Back"
 msgstr "< &Geri"
 
-#: wizardex.cpp:553
+#: clientgui/wizardex.cpp:553
 msgid "&Finish"
 msgstr "&Son"
 
-#: mac/Mac_GUI.cpp:110
-msgid "Preferences…"
-msgstr "Tercihler..."
-
-#: mac/Mac_GUI.cpp:122
+#: clientgui/mac/Mac_GUI.cpp:35
 msgid "Services"
 msgstr "Servisler"
 
-#: mac/Mac_GUI.cpp:144
+#: clientgui/mac/Mac_GUI.cpp:36
 #, c-format
 msgid "Hide %s"
 msgstr "%s gizle"
 
-#: mac/Mac_GUI.cpp:158
+#: clientgui/mac/Mac_GUI.cpp:37
 msgid "Hide Others"
 msgstr "Diğerlerini gizle"
 
-#: mac/Mac_GUI.cpp:172
+#: clientgui/mac/Mac_GUI.cpp:38
 msgid "Show All"
 msgstr "Tümünü Göster"
 
-#: mac/Mac_GUI.cpp:186
+#: clientgui/mac/Mac_GUI.cpp:39
 #, c-format
 msgid "Quit %s"
 msgstr "%s'den ayrıl"
diff --git a/locale/tr/BOINC-Project-Generic.po b/locale/tr/BOINC-Project-Generic.po
deleted file mode 100644
index 47ea456..0000000
--- a/locale/tr/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Can Demirel <aycandemirel at hotmail.com>, 2015
-# Faruk SARI <faruksari at hotmail.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2015-12-15 11:30+0000\n"
-"Last-Translator: Can Demirel <aycandemirel at hotmail.com>\n"
-"Language-Team: Turkish (http://www.transifex.com/boinc/boinc/language/tr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: tr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Türkçe"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Turkish"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "Davet Kodu"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "Hesap oluşturmak için geçerli bir davet kodu gerekiyor."
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "İsim"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Sitemizde bu isimle yer alacaksınız. Gerçek adınızı ya da takma adınızı kullanın."
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "E-posta Adresi"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "'isim at site' biçiminde geçerli bir adres olmalı."
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Parola"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "En az %1 karakter olmalı"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "Parolayı doğrula"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "Ülke"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "Temsil ettiğiniz ülkeyi seçin, eğer mevcutsa."
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "Posta ya da ZIP Kodu"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "İsteğe bağlı"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "Hesap oluştur"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "E-posta adresi:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "e-posta adresinizi mi unuttunuz?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "Parola:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "parolanızı mı unuttunuz?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "Daima bağlı kal"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "Oturum aç"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Kalın metin: [b]metin[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "İtalik metin: [i]metin[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Altı çizili metin: [u]metin[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "Üstü çizili metin: [i]metin[/i]  (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Alıntılanmış metin: [quote]metin[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Kod görünümü: [code]kod[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Liste: [list]metin[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Sıralı liste: [list=]metin[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Resim ekle: [img]http://resim_adresi[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Adres gir: [url]http://adres[/url] ya da [url=http://url]adres metni[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "Font rengi"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Font rengi: [color=red]metin[/color]  İpucu: color=#FF0000 şeklinde de yazabilirsiniz"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "Varsayılan"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "Koyu kırmızı"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "Kırmızı"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "Turuncu"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "Kahverengi"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "Sarı"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "Yeşil"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "Zeytin yeşili"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "Camgöbeği"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "Mavi"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "Koyu mavi"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "Çivit"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "Mor"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "Font boyu"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Font boyu: [size=x-small]küçük metin[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "Küçük"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "Normal"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "Büyük"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "Açık bbCode etiketlerini kapat"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "Etiketleri kapat"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "Eskiler başta"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "Yeniler başta"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "En çok oylananlar başta"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "Yeni gönderiler başa"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "En çok okunanlar başa"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "En çok yanıtlananlar başa"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "Gönüllü moderatör"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "Proje yöneticisi"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "Proje geliştiricisi"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "Proje test görevlisi"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "Gönüllü geliştirici"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "Gönüllü test görevlisi"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "Proje bilim insanı"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "Yardım maaşı uzmanı"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "Forum mesajlarında arama yap"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "Forumlarda ara"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "Gelişmiş arama"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "Özel mesajlar"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "Soru ve Yanıtlar"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "Mesaj panoları"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 mesaj panosu"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "Önceki"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "Sonraki"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "Başlatan"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "Mesaj"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "Mesaj gönder"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "%1 kişisine özel mesaj gönder"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "Üyelik: %1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "Gönderiler: %1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "Kredi:  %1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "Güncel kredi: %1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "Bu mesajı henüz okumadınız"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "Okunmamış"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "Mesaj %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "gizli"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "Gönderilme: %1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - Şuna yanıt olarak: "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "Düzenle"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "Bu mesajı düzenler"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "Son düzenleme: %1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Bu gönderi gösterilemiyor, çünkü gönderici 'yoksay' listenizde.  Bu gönderiyi okumak için %1buraya%2 tıklayın"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "Bu gönderiyi yöneticiye şikayet et"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "Şikayet et"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "Oy: %1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "Oyla:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "Bu mesajdan hoşlandıysanız tıklayın"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "+ Oy"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "Bu mesajdan hoşlanmadıysanız tıklayın"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "- Oy"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "Yanıtla"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "Bu mesaja yanıt ver"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "Alıntı"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "Bu mesaja alıntı yaparak yanıt ver"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "Moderatör tarafından gizlendi"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "%2 tarafından gönderildi, %1"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "Bu zamana kadar gönderim yapamaz ya da oylayamazsınız: "
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Gönderiler mutlaka 'çocuk dostu' olmalıdır: İçerikleri açık saçık,\n            nefretle ilişkili, cinsel açıdan müstehcen ya da imalı olmamalıdır.\n        <li> Mesajlarda ticari reklamlar olmamalı,\n        <li> Seksüel içerikli, kumar oynatan ya da başkalarını rahatsız edecek\n            internet sitelerine bağlantı içermemeli,\n        <li> İnsanları yönlendirmeyi ya da kışkırtmayı, ya da bir konuda\n            kandırmayı amaçlamamalı,\n         [...]
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "Kurallar:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "Daha fazla bilgi"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "Gizliliği kaldır"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "Bu gönderinin gizliliğini kaldırır"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "Gizle"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "Bu gönderiyi gizler"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "Taşı"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "Bu gönderiyi başka bir foruma taşır"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "Yazarı yasakla"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "Yazarın yasaklanması için oy ver"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "Yazarın kalması için oy ver"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "Yazarın yasaklanması için oylama başlat"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "Sil"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "Bu gönderiyi sil"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "Takım mesaj panosuna yalnızca takım üyeleri gönderim yapabilir"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "%1 içerisinde yeni bir konu başlığı oluşturmak için, belli bir kredi miktarına sahip olmalısınız. Bu uygulamayla, sistemin kural dışı kullanımını ve suistimal edilmesini önlemeyi amaçlıyoruz."
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Şu anda daha fazla yeni konu başlığı oluşturamazsınız. Lütfen yeniden denemek için bir süre bekleyin. Bu gecikmeyle, sistemin kural dışı kullanımını önlemeyi amaçlıyoruz."
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Bu konu başlığı kilitli. Yalnızca forum moderatörleri ya da yöneticilerin gönderi yapmasına izin var."
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "Gizli bir konu başlığına gönderi yapılamaz."
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "Yeni konu"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "Yanıtlar"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "Okunma"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "Son mesaj"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "%1 konu başlığındaki yeni gönderiler"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "Abone olunan konu başlığındaki yeni gönderiler"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "'%1' konu başlığında yöne gönderiler var"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "Tümünü okundu olarak işaretle"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "Tüm mesaj panolarındaki tüm konu başlıklarını -okundu- olarak işaretler."
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "Sunucu yok"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "Mevcut değil"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "Ev"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "İş"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "Okul"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "Güncelle"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "Bilgisayar bilgisi"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP adresi"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(son %1 seferle aynı)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "Harici IP adresi"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "IP adresini görüntüle"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "Etki alanı adı"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "Ürün adı"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "Yerel Standart Zaman"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC %1 saat"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Sahibi"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "Anonim"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "Oluşturulma"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "Toplam kredi"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "Ortalama kredi"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "Çapraz-proje kredisi"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPU tipi"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "İşlemci adedi"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "Yardımcı işlemciler"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "İşletim sistemi"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC sürümü"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "Bellek"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Önbellek"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "Sanal bellek"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "Toplam disk alanı"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "Boş disk alanı"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "Ölçülen kayan nokta hızı"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 milyon işl/sn"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "Ölçülen tamsayı hızı"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "Ortalama gönderme hızı"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/sn"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Bilinmiyor"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "Ortalama indirme hızı"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Ortalama geri dönüş zamanı"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 gün"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "Uygulama detayları"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "Göster"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "İşler"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "İstemcinin sunucuya bağlanma sayısı"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "Sunucuya son bağlandığı zaman"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "BOINC'in çalışır durumda olduğu zaman oranı"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "BOINC çalışırken, bilgisayarın internet bağlantısına sahip olduğu zaman oranı"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "BOINC çalışırken, yeni işlerin kabul edildiği zaman oranı"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "BOINC çalışırken, yeni işlerin kabul edildiği zaman oranı"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Ortalama CPU verimi"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "İş süre düzeltme çarpanı"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "Konum"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Bu bilgisayarı sil"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Bu bilgisayarın yinelenen kayıtlarını birleştir"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Birleştir"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "Son bağlantı"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Bilgisayar bilgisi"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Sıra"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "Ort. kredi"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "Güncel ortalama kredi"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "İşletim sistemi"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 işlemci)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "Detaylar"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "Çapraz-proje ist.:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "Sunucu %1 kullanım süresi olarak örtüşmüyor:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "Sunucu %1 farklı bir işletim sistemine sahip:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "Sunucu %1 farklı bir CPU'ya sahip:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "aynı sunucu"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Sunucu %1 ile %2 birleştirilemedi. Birbirlerinden farklılar"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "Sunucu %1, %2 ile birleştiriliyor"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "Yeni bilgisayarın kredisi güncellenemedi"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "Sonuçlar güncellenemedi"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "Eski bilgisayar kullanımdan kaldırılamadı"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "Eski bilgisayar %1 kullanımdan kaldırıldı"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "Göster:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "Tüm bilgisayarlar"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "Yalnızca son 30 gün içerisinde aktif olan bilgisayarlar"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "Bilgisayar NO"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>sürümü"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Bilgisayarları isme göre birleştir"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "Tarayıcı varsayılanı"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Yorumlar"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Haberler bir %sRSS beslemesi%s olarak da mevcuttur"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "Gelen kutusu"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "Yaz"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "Özel mesaj gönder"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "Önizleme"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "eşleşen mesaj yok"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Alıcı"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Kullanıcı NO'ları ya da benzersiz kullanıcı adları, virgülle ayrılmış"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "Konu"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Mesaj gönder"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "size özel mesaj gönderdi; konu:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "Özel mesaj %1, %2 kişisinden, konu:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "mesaj oluşturulamadı"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Çok sık aralıklarla özel mesaj gönderemezsiniz. Yeni mesaj göndermek için lütfen bir süre bekleyin."
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "okunmamış"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "E-posta uyarısı için, %1topluluk tercihlerini düzenleyin%2"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "Özel mesaj"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "Kullanım sınırlamaları"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "En çok"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "Bazı CPU (işlemci) çekirdeklerini diğer uygulamalar için boşta tut. Örneğin %75, 8 çekirdekli işlemcinin 6 çekirdeğinin kullanılmasını sağlar."
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% kadar CPU çekirdeği kullan"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "Her birkaç saniyede bir hesaplamayı durdurmak/sürdürmek, CPU (işlemci) sıcaklığını ve enerji kullanımını azaltır. Örneğin %75, 3 saniye hesaplama, 1 saniye bekleme ve bunu tekrarlama demektir."
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% kadarı kullanılsın"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "Duraklatıldığında"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "Bilgisayar pil gücünde olduğunda duraklat"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "Taşınabilir cihazlar pil gücünde olduğunda hesaplamayı duraklatmak için işaretleyin."
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "Bilgisayar kullanımda olduğunda duraklat"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "Bilgisayarınızı kullandığınız sırada hesaplamanın ve dosya aktarımının duraklatılması için işaretleyin."
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "Bilgisayar kullanımda olduğunda GPU ile hesaplamayı duraklat"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "Bilgisayarınızı kullandığınız sırada GPU ile (ekran kartı) hesaplamanın duraklatılması için işaretleyin."
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'Kullanımda', en son bu kadar süre önce fare/klavye kullanıldı demektir:"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "Bu, bilgisayarın ne zaman 'kullanımda' kabul edildiğini belirler."
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "dakika"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "Fare ve klavyeyi bu kadar süre kullanmadığımda duraklatılsın"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "Bu, bazı bilgisayarların kullanılmadığı zaman düşük güç moduna girmesini sağlar."
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "BOINC harici CPU kullanımı bunu aşarsa duraklat:"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "Bilgisayarınız diğer uygulamaları çalıştırmakla meşgulse hesaplama duraklatılır."
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "Yalnızca bu saatler arasında hesapla"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "Hesaplama her gün sadece belirli saatler arasında yapılır."
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "Diğer"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "En az"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "En azından bilgisayarı  bu kadar süre boyunca meşgul tutmaya yetecek miktarda iş depolanır."
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "günlük iş depola"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "Ek olarak da depoda"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "Asgari düzeyin üzerinde ek işler depolayın. Bir proje ile iletişime geçildiğinde ne kadar iş talep edileceğini belirler."
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "Bu kadar sürede bir, çalışan uygulamayı değiştir:"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "Birden fazla proje çalıştırıyorsanız, %s bu kadar sürede bir çalışan projenin işini durdurup, başka bir işi çalıştıracaktır."
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "İşlerin, kontrol noktasını diske yazma aralığı"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "Bu, işlerin diske kendi durumunu ne sıklıkta kaydedeceğini kontrol eder. Böylece daha sonra, son kaydedilen konumdan yeniden başlatılabilirler."
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "saniye"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "Bundan fazlasını kullanma:"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "BOINC tarafından kullanılabilecek toplam disk alanını sınırlandırın."
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "En az"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "BOINC'in verilerini depoladığı diskte en az bu kadar boş alan kalacak şekilde disk kullanımını sınırla."
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB boş alan"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "BOINC'in verilerini depoladığı diskin en fazla bu kadar yüzdesi kullanılacak şekilde disk kullanımını sınırla."
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "% kadar "
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "Bilgisayar kullanımdayken, en fazla bu kadar kullan:"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "Bilgisayarınızı kullandığınız sırada BOINC tarafından kullanılabilecek belek (RAM) miktarını sınırlayın."
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "Bilgisayar boştayken, en fazla bu kadar kullan:"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "Bilgisayarınız boştayken BOINC tarafından kullanılabilecek belek (RAM) miktarını sınırlayın."
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "Durakladığında GPU-olmayan işleri bellekte bırak"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "İşaretliyse, duraklatılan görevler bellekte kalır ve hiçbir kayıp yaşanmadan çalışmaya devam eder. İşaretlenmezse, duraklatılan görevler bellekten kaldırılır ve son kontrol noktasından devam eder."
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "Disk belleği/swap dosyasını en fazla bu kadar kullan:"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "BOINC'in disk belleği (swap dosyası) kullanımını sınırlandırır."
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "İndirme hızını bununla sınırla:"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "Dosya transferlerinde indirme hızı bununla sınırlanır."
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/saniye"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "Gönderme hızını bunula sınırla:"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "Dosya transferlerinde gönderme hızı bununla sınırlanır."
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "Kullanımı bunula sınırla:"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "Örneğin, BOINC son 30 günde en fazla 2000 MB veri aktarımı yapabilecektir."
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB, son"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "gün"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "Dosyaları bu saatler arasında aktar"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "Dosyalar her gün sadece belirli saatler arasında aktarılır."
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "Görüntü dosyaları için veri doğrulamasını atla"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "İnternet servis sağlayıcınız görüntü dosyalarını değiştiriyorsa bunu işaretleyin. Doğrulamayı atlamak, BOINC'in güvenliğini zayıflatacaktır."
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "İnternete bağlanmadan önce onay iste"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "Bir modem, ISDN ya da VPN bağlantısına sahipseniz kullanışlı olabilir."
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "Tamamlandığında bağlantıyı kes"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Hesaplama"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "Disk"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "Ağ-İnternet"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Bu tercihler, katıldığınız tüm BOINC projelerine uygulanacak."
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Tercihler güncellenemedi.%2 Kırmızıyla işaretlenen değerler izin verilen aralık dışında ya da rakam değiller."
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "Hesaplama"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "%1 için ayrı tercihler"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "Tercihleri düzenle"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "Kaldır"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "%1 için ayrı tercihler oluştur"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "Bu ayarlar, aşağıdakiler haricindeki, bu hesabı kullanan tüm bilgisayarlar ve cihazlar için geçerlidir"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "BOINC Manager'ı kullanarak tercihlerini yerel olarak belirledikleriniz"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Android cihazları"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(Görünümü değiştir)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "Birleştirilmiş tercihler"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "Birincil (varsayılan) tercihler"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "Tercihlerin son güncellenmesi:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "Tercihleri ekle"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "Tercihleri güncelle"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "Evet"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "Hayır"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "Varsayılan bilgisayar konumu"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "Yeni bilgisayarlar hesaplama ve proje tercihleri için bu konumu kullanır."
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "Kaynak paylaşımı"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "Bilgisayarınızın, bu projeye tahsis edilecek kaynak oranını belirler. Örneğin, 100 ve 200 kaynak payları ile iki BOINC projesine katılırsanız, ilki kaynakların üçte birini, ikincisi ise üçte ikisini kullanacaktır."
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "GPU işleri, işlerin her birine birer CPU atanarak hızlandırılsın mı?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "CPU kullan"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "ATI GPU kullan"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "NVIDIA GPU kullan"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "Intel GPU kullan"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "Test uygulamaları çalıştırılsın mı?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "Bu, uygulamaları geliştirme konusunda bize yardımcı olacak. Ancak, bazen iş hesaplamalarının başarısız olmasına sebep olabilir."
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "E-postalar %1 adresinden gönderilecek; gereksiz posta (spam) filtrenizin bu adresi kabul ettiğinden emin olun."
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Takımınızın (eğer varsa) ve %1 projesinin size e-posta göndermesine izin verilsin mi?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1, projeye katıldığınız bilgisayarları bu internet sitesi üzerinde göstersin mi?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(görünümü değiştir)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "Projeye özel ayarlar"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "geçersiz yetki: %1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "geçersiz altküme: %1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "ve"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Profiliniz, proje tarafından onaylanırsa diğer kişiler tarafından görülebilir olacak. Bunun gerçekleşmesi birkaç gün alabilir."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Profiliniz onaylanmadı. Diğerleri tarafından görülemeyecek. Lütfen gerekli kısımları değiştirin."
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "Veritabanı hatası"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Çok sayıda sahte hesap oluşturularak sitemize saldırının önüne geçmek amacıyla, ortalama kredisi %1'den az olan kullanıcıların profilleri, yalnızca giriş yapmış kullanıcılara görünür.  Verdiğimiz rahatsızlık nedeniyle özür dileriz."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Kullanıcı uzaklaştırıldı"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Bu kullanıcı NO ile eşleşen profil yok."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "Profilinizi düzenleyin"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Bu profil hakkındaki fikriniz"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Bu profili Günün Kullanıcısı için öner:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Bu profilden %1hoşlandım%2"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Uygunsuz profili yöneticilere bildir:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Bu profilden %1hiç hoşlanmadım%2"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Anonim platform"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "DB içinde yok"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "beklemede"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "Tümü"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "Sürmekte"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "Doğrulama kuyruğunda"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Doğrulama sonuçsuz"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Geçerli"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Geçersiz"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Hatalı"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Pasif"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "Gönderilmemiş"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Tamamlandı, doğrulanmayı bekliyor"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Tamamlandı ve doğrulandı"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Tamamlandı, geçersiz olarak işaretlendi"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Tamamlandı, doğrulanamadı"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Tamamlandı, doğrulama sonuçsuz"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Tamamlandı, doğrulama için çok gecikti"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Tamamlandı"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Gönderilemedi"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Sunucu tarafından iptal edildi"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Son teslim tarihine kadar başlatılmadı - iptal edildi"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "İndirilirken hata oluştu"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Hesaplanırken hata oluştu"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Alınırken hata oluştu"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Kullanıcı tarafından iptal edildi"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Gönderme başarısız"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Zaman doldu - yanıt yok"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "İhtiyaç yok"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Doğrulama hatası"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "İptal edildi"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Sona erdi"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Başarılı"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Hesaplama hatası"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "İhtiyaç fazlası sonuç"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Yanıt yok"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Yeni"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "İndiriliyor"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Sürüyor"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Hesaplama hatası"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Gönderiliyor"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Tamamlandı"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Başlangıcında"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Gerekli değil"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "İş birimi hatası - kontrol atlandı"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Kontrol edildi, ancak henüz uzlaşılamadı"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "İşin doğrulama için çok geciktiği bildirildi"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Sonuç gönderilemedi"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Çok fazla hata oluştu (yazılımsal bir hata olabilir)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Çok fazla sonuç var (belirleyici olmayabilir)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Çok fazla toplam sonuç var"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "İş birimi iptal edildi"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "Kabul edilebilir sonuç eksik"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "Bilinmeyen hata: %1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "İş adı"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "detaylar için tıklayın"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "NO'ları göster"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "İsimleri göster"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "İş"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "İş birimi"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "Bilgisayar"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "Gönderilme"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "Raporlanma ya da<br />son teslim tarihi"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "açıklama"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "Durum"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "Çalışma zamanı<br />(sn)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU zamanı<br />(sn)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "Kredi"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "Uygulama"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "İş birimi"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "Son teslim tarihi"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "Alınma tarihi"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "Sunucu durumu"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "Sonuç"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "İstemci durumu"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "Çıkış kodu"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "Çalışma zamanı"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU zamanı"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "Doğrulama durumu"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "Cihaz en yüksek FLOP"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "Uygulama sürümü"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "Çıktı dosyaları"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "Stderr çıktısı"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "Durum"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "İş adı:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Arama kriterleri (birini ya da birkaçını kullanabilirsiniz)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Anahtar kelimeler"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Takımları, isimleri ya da açıklamalarındaki bu kelimelere göre bul"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "Takımın tipi"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Yalnızca aktif takımları göster"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "Ara"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Değişim talep ettiniz ve kurucunun son yanıt tarihi geçti."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Kurucu değişimini tamamla"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Değişim talep ettiniz"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "kurucunun son yanıt tarihi %1."
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "Yok"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "İstekte bulun"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Ertelendi"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "Takım bilgisi"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "Açıklama"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "İnternet sitesi"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "Çapraz-proje istatistikleri"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "Tip"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "Mesaj panosu"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "Konu başlıkları"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "Bu takıma katıl"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Not: Topluluk tercihlerinizde 'e-postayla uyarı' aktifse, katıldığınızda takım kurucusu e-posta adresinizi görebilecek."
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "Yeni üyeler kabul edilmiyor"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "Kurucu değişimi talep edildi"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "%1 tarihine kadar yanıtlanmalı"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "Takım kurucusu değişimi"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "Üyeler"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "Kurucu"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "Yöneticiler"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "Son günlerdeki yeni üyeler"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "Toplam üye"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "bak"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "Aktif üye"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "Kredisi bulunan üye"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "Yönetici"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "Önceki %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "Sonraki %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "Eşleşen takım yok."
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "Bu işlem kurucu olmayı gerektirir."
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "Bu işlem takım yöneticisi hakları gerektirir."
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "UYARI: Bu bir BOINC genişletilmiş-takımıdır. Eğer burada değişiklikler yaparsanız, bir süre sonra üzerine yazılabilir. Bunun yerine, %1BOINC genişletilmiş-takım%2ı düzenleyin."
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Gizlilik notu%2: Bir takım kurarsanız, proje tercihleriniz (kaynak paylaşımı, grafik tercihleri) herkese görünür olacaktır."
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "Takım adı, salt metin sürümü"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "HTML etiketleri kullanmayın."
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "Takım adı, HTML sürümü"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "%1Sınırlı HTML etiketleri%2 kullanabilirsiniz."
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "HTML bilmiyorsanız, bu bölümü boş bırakın."
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "Varsa, takımın İnternet sitesi adresi"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "\"http://\" olmadan"
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Belirttiğiniz URL, takımın bu sitedeki sayfasında gösterilecek."
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "Takımın açıklaması"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "Yeni üyeler kabul edilsin mi?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "Kullanıcı profili"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "Katıldığınız projeler"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "%1 kullanıcısının katıldığı projeler"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "Proje"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "Kullanıcı safyası için tıklayın"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "Katılma tarihi"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "Hesaplama ve kredi"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "Bu hesaptaki bilgisayarlar"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "Bak"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "Çapraz-proje NO"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "Çapraz-proje istatistikleri"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "Hesap"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "Takım"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "Çapraz-proje"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "Sertifika"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "Cep telefonunuz için istatistik sayfanız"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "Hesap bilgisi"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "E-posta adresi"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "Site"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "Posta kodu"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "%1 üyelik tarihi"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "Değiştir"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "e-posta adresi"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "parola"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "diğer hesap bilgisi"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "Kullanıcı NO"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "Topluluk işlevlerinde kullanılır (özel mesaj için vs.)"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Hesap anahtarları"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "Tercihler"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "BOINC bilgisayarınızı ne zaman ve nasıl kullanacak"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "Hesaplama tercihleri"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "Mesaj panoları ve özel mesajlar"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Topluluk tercihleri"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "Bu proje için tercihler"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 tercihleri"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "%1 kullanıcısının profilini gör"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "Profil"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "Topluluk"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "Oluştur"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 gönderi"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "Uyarılar"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "Takımdan ayrıl"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "Yönet"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(kurucu değişim isteği beklemede)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "Takım üyeliği"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "bir takım bul"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "Kurucusu fakat üyesi değil"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "Arkadaş bul"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "Arkadaşlar"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "Bilgisayarlar"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "Bağışçı"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "İrtibat"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "Bu kişi arkadaşınız"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "Arkadaşlığı bitir"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "İstek beklemede"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "Arkadaş olarak ekle"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "kullanıcı adı başında veya sonda boşluk karakteri olamaz"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "kullanıcı adı boş olamaz"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "kullanıcı adı HTML etiketleri içeremez"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "çıkış"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "oturum aç"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "Bir hesap oluştur"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "Sunucu durumu"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "İsteğiniz gerçekleştirilirken veritabanı hatası oluştu; lütfen daha sonra tekrar deneyin."
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "Talep gerçekleştirilemedi"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "saat"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "dak"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "san"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Bağlantı zaman aşımına uğradı. Lütfen Geri'ye tıklayın ve sayfayı yenileyip, yeniden deneyin."
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "Yazınızı biçimlendirmek için BBCode etiketleri kullanın"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "Proje bakım için kapatıldı"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 sunucumuz bakım için geçiçi olarak kapalı durumda.  Lütfen taha sonra tekrar deneyin."
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "Veritabanına erişilemedi - lütfen daha sonra tekrar deneyin"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "Veritabanı seçilemedi - lütfen daha sonra tekrar deneyin"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "karakter kaldı"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Bu bilgisayarda oturumumu açık tut"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Hesap yapılandırmasını bitir"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Hesabınız için bir isim belirlemelisiniz"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "İsminizde HTML etiketleri kullanamazsınız"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "%1 tercihlerini düzenle"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "%2 için %1 farklı tercihleri ekle"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "Uygulamalar"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 şu anda aşağıdaki uygulamalara sahip. %1 projesine katıldığınızda, bu uygulamalardan bir ya da daha fazlasına ait işler bilgisayarınıza gönderilecek. İşleri hesaplamak için gerekli uygulamanın son sürümü de bilgisayarınıza indirilecek. Bu otomatik olarak gerçekleşecek, herhangi bir şey yapmanız gerekmeyecek."
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "Platform"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "Sürüm"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "Ortalama hesaplama"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode etiketleri"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BBCode etiketleri, profilinizdeki ve mesaj panolarındaki metinleri biçimlendirmenizi sağlar.\nHTML gibidir, fakat daha basittir. Etiketler bir [ ile başlar (HTML'de kullanılan\n%1 gibi) ve bir ] ile biter (HTML'de kullanılan %2 gibi)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Örnekler"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Kalın"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "İtalik"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Altı çizili"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "Üstü çizili"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "Üstsimge"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "Büyük metin"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "Kırmızı metin"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "internet sitesine bağlantı"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "Alıntı metin"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "metinden alıntı blokları yapmak için kullanın"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "resim göstermek için kullanın"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "Kod parçası"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "bir kodu düzgün görüntülemek için"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "Önceden biçimlenmiş metin"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "önceden biçimlenmiş (genellikle eşaralıklı) metin görüntülemek için"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "Öğe 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "Öğe 2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "Öğe 3"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "BOINC sitesindeki Trac biletine bağlantı için"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "BOINC sitesindeki Trac Wiki'sine bağlantı için"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Eğer bir etiketi kapatmaz ya da parametreyi doğru girmezseniz,\nbiçimlenmiş metin yerine, etiketin ham hali görüntülenecektir."
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Hesap oluşturulamadı"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Yeniden denemek için, tarayıcınızın <b>Geri</b> butonuna tıklayın."
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "reCAPTCHA yanıtınız doğru değil.  Lütfen tekrar deneyin."
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "Hesap oluşturmak için bir davet kodu temin etmelisiniz."
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "Sahip olduğunuz davet kodu geçersiz."
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Geçersiz e-posta adresi: 'isim at site' biçiminde geçerli bir adres girmelisiniz"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "Bu e-posta adresiyle bir hesap zaten var."
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "Yeni parola bölümleri birbirinden farklı"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "Parolalar yalnızca ASCII karakterleri içerebilir."
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Yeni parola çok kısa. En az %1 karakter olmalı."
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "Hesap oluşturulamadı"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "Not: BOINC Manager kullanıyorsanız, bu formu kullanmayın. Sadece BOINC'i çalıştırın, Proje Ekle'yi seçin ve bir e-posta adresi ve şifre girin."
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Bu hesap %1 takımının üyesi olacak ve takım kurucusunun proje tercihlerine sahip olacak."
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "Resim"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Profil fotoğrafınız solda gösteriliyor."
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Yenisiyle değiştirmek için, \"Gözat\" butonuna tıklayın ve bir JPEG veya PNG dosyası seçin (%1 ya da daha küçük)."
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "Profilinizden kaldırmak için, bu kutucuğu işaretleyin:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Eğer profilinizin bir resim içermesini istiyorsanız, \"Gözat\" butonuna tıklayın ve bir JPEG veya PNG dosyası seçin. Lütfen %1 ya da daha küçük resim dosyalarını seçin."
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "Dil"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "Lütfen profilinizi yazdığınız dili seçin:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "Profili gönder"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "Profil oluştur/düzenle"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "Gönderdiğiniz resim formatı desteklenmiyor."
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "%1Profiliniz%2, fikirlerinizi ve özgeçmişinizi %3 topluluğuyla paylaşmanızı sağlar."
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "ReCaptcha yanıtınız doğru değil.  Lütfen tekrar deneyin."
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "İlk yanıtınız Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip tekrar deneyin."
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "İkinci yanıtınız Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip tekrar deneyin."
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "Gönderdiğiniz profil boş."
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "Profil güncellenemedi: Veritabanı hatası"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "Profil oluşturulamadı: Veritabanı hatası"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "Profil kaydedildi"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Tebrikler! Profiliniz başarıyla veritabanımıza kaydedildi."
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "Profilinizi görün"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "Bir profil oluştur"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Sitemize saldırıların önüne geçmek amacıyla, profil oluşturmak ve değiştirmek için ortalama kredinin %1 ya da fazlası olması gerekir.  Verdiğimiz rahatsızlık nedeniyle özür dileriz."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Hesap silinemedi"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Hesap silindi"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Hesabınız silindi."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Hesap silinmesini onayla"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "Hesabınızın silinmesiyle, profil ve mesaj panosu\ngönderileriniz de dahil tüm kişisel bilgileriniz\nsunucularımızdan kaldırılacak.\nBu hesabın kurulu olduğu bilgisayarlara ise işler\ngönderilmeyecek."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Bu işlem geri alınamaz.\nHesabınızı sildiğinizde, onu tekrar geri alamazsınız."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Hesabınızı silmek istediğinize emin misiniz?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Evet"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Bu hesabı sil"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Hayır"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Bu hesabı silme"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "profil silinemedi - lütfen daha sonra tekrar deneyin"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "Silmeyi Onayla"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "Profiliniz silindi."
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "Profil silme onayı"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "Emin misiniz?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Silinen profiller sonsuza kadar yok olur ve kurtarılamaz--\nGelecekte yeni bir profil yaratmak için baştan başlamanız gerekir."
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Eminseniz, profilinizin sunucularımızdan silinmesi için\nlütfen 'Evet'e tıklayın."
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "Profilimi sil"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "Profilimi silme"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Aktarım Tamamlandı"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Bağışınız için teşekkürler!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Bağışınız tamamlandı."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Bağışınız PayPal tarafından onaylandıktan sonra ilerleme çubuğuna eklenecek."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Bağışınızı iptal ettiniz."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Bu proje bağışları kabul etmiyor."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 bağış"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Bu proje %1 ile bağışları kabul ediyor."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Bağış yapmak için, istediğiniz miktara göre aşağıdaki formu doldurun.\n        PayPal bir çok para birimini destekler \n        (Kanada Doları, Avro, İngiliz Sterlini, ABD Doları,\n         Yen, Avusturalya Doları, Yeni Zelanda Doları,\n        İsviçre Frangı, Hong Kong Doları, Singapur Doları, İsveç Kronu, \n         Danimarka Kronu, Polonya Zlotisi, Norveç Kronu,\n        Macar Forinti, Çek Korunası).\n        Farklı para birimlerinin değerlerini görmek için,\n        dönüştürü [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Bağışlamak istediğiniz miktar"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Bununla yaklaşık miktar"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Anonim bağış"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Select this if you dont want your name and account number displayed in\ndonator lists.<br>If not checked, you will be recorded as user ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Kullanıcı NO'nuzla bağış yapmak için, lütfen sisteme giriş yapın."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Devam et"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Bağışlar bunun aracılığıyla gerçekleştirilir:"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "BOINC eklenti yazılımlarını indir"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Çeşitli kategorilerdeki bu uygulamaları indirebilirsiniz."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Bu uygulamalar %1 tarafından onaylanmamıştır ve kullanmak sizin alacağınız bir risktir."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Bu uygulamaların kurulum yönergelerini sağlamıyoruz.\nBununla birlikte, yazarı kurulumu ve kaldırılmasıyla ilgili yardım sağlıyor olabilir. \nEğer bu sizin için yeterli değilse, yazarıyla irtibata geçmelisiniz. "
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "BOINC'in kurulumu ve çalıştırmasıyla ilgili talimatlar %1buradadır%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Bu liste %1BOINC internet sitesinden%2 merkezi olarak yönetilir."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Hesabın bağlı olduğu e-posta adresini değiştir"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Yeni e-posta adresi '%1' geçersiz."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Yeni e-posta adresi, mevcut adres ile aynı. Değişiklik yapılmadı."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "Bu adres ile bir hesap zaten var."
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Geçersiz parola."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Hesabınızın bağlı olduğu e-posta adresi artık %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Lütfen %1bu e-posta adresini doğrulayın%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Veritabanı hatası nedeniyle e-posta adresinizi güncelleyemedik.  Lütfen daha sonra tekrar deneyin."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "E-posta adresini değiştir"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Hesabınızın bağlı olduğu e-posta adresini değiştirin"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Yeni e-posta adresi"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "'isim at site' biçiminde geçerli bir adres olmalı"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Parolanız yok mu?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Sıfırlamayı onayla"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Bu eylem, topluluk tercihlerinizde yaptığınız değişiklikleri silecek. İptal etmek için, tarayıcınızın Geri butonuna basın."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Sıfırlama tercihleri"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Hata: Yanlış dosya tipi. Yalnızca PNG ve JPEG destekleniyor."
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "İmzanız çok uzun. Lütfen 250 karakterden kısa tutun."
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "Böyle bir kullanıcı yok:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Sizi yeni özel mesajlar, arkadaşlık istekleri , abone olunan konu başlıklarına gönderiler ve diğer olaylar hakkında nasıl bilgilendirelim?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "Hesap sayfamda (e-posta yok)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "Derhal, e-posta ile"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "Günde tek e-posta ile"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "Mesaj panosu kimliği"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "Avatar"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "Mesaj panolarında sizi temsil edecek bir resim."
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Format: JPG ya da PNG. Boyut: 4 KB civarı, 100x100 piksel"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "Bir avatar kullanma"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "%1 tarafından sağlanan bir Globally Recognized Avatar (Gravatar) kullan"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "Yüklediğim bu avatarı kullan:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "Avatar önizlemesi"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "Bu, avatarınızın nasıl görüneceğini gösterir"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "Mesaj panosu gönderileri için imza"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "%1Çeşitli bedava servislere%2 gözatın.\n<br> Dinamik 'imza resimleri',\n<br> son kredi bilginizi, proje haberlerini vs gösterir."
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "İmzayı varsayılan olarak ekle"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "İmza önizlemesi"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "Bu, imzanızın forumlarda nasıl gösterileceğinin bir önizlemesidir"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "Mesaj görüntüleme"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "Görüntülenecek öğeler"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "Avatar resimlerini gizle"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "İmzaları gizle"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "Resimleri bağlantı olarak görüntüle"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "Bağlantıları yeni sekmelerde/pencerelerde aç"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "Özel kullanıcıları vurgula"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "Her sayfada bu miktarda mesaj görüntüle"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "Nasıl sıralanacak"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "Konu başlıkları:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "Cevaplar:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "Konu başlığındaki ilk yeni gönderiye otomatik olarak atla"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "Yapışkan mesajları en üste taşıma"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "Mesaj filtreleme"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "Filtrelenen kullanıcılar"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Bu kullanıcıların mesaj panosu ve özel mesaj gönderilerini görmezden gel."
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "Kullanıcı NO (Örneğin: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "Kullanıcıyı filtreye ekle"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "Tercihleri güncellemek için buraya tıklayın"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "Sıfırla"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Ya da ayarları varsayılana sıfırlamak için buraya tıklayın"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Parolanızı veritaban problemi nedeniyle güncelleyemedik. Lütfen daha sonra tekrar deneyin."
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "Parolayı değiştir"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "Parolanız değişti."
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "Yeni parola"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "Yeni parola, yeniden"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "İsminizde HTML etiketlerinin kullanımı kabul edilmiyor."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Hesabınız için bir isim belirlemelisiniz."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Kullanıcı bilgisi güncellenemedi."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Hesap bilgisini düzenle"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "İsim %1 Gerçek ya da takma isim%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 Kişisel web sitenizin adresi; isteğe bağlı%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Posta (ZIP) kodu %1 İsteğe bağlı%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Bilgileri güncelle"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Sunucu durumları"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "Bir işin <b>sunucu durumu</b>, bir bilgisayara gönderilip gönderilmediğini ve bilgisayarın onu tamamlayıp tamamlamadığını anlatır. Muhtemel değerler şunlardır:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "İş gönderilmeye hazır değil (örneğin, giriş dosyaları henüz mevcut değil)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "İş gönderilmeye hazır, fakat henüz gönderilmedi."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "Sürmekte"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "İş gönderildi, tamamlanması bekleniyor."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "İş bir bilgisayara gönderildi ve son teslim zamanı geçti ya da bilgisayar tamamlandığını bildirdi."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Sonuçlar"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "Bir işin <b>sonucu</b>, sunucu durumu <b>tamamlandı</b> ise belirlenir. Muhtemel değerler şunlardır:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "İş bir bilgisayara gönderildi, fakat bilgisayar henüz tamamlamadı ve sonucunu raporlamadı."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Bir bilgisayar işi başarıyla tamamladı ve raporladı."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Sunucu işi bir bilgisayara göndermeyi başaramadı (muhtemelen sistem ihtiyaçları çok yüksek ya da dosya boyu çok büyük)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "İstemci hatası"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "İş bir bilgisayara gönderildi ve hata meydana geldi."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "İş bir bilgisayara gönderildi ve son teslim tarihi içinde bir yanıt alınamadı."
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "İş bir bilgisayara gönderilemedi, çünkü bu iş birimi için yeterli miktarda diğer işler tamamlandı."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "İş raporlandı, fakat doğrulanamadı. Çünkü, genellikle sonuç dosyaları sunucuda kayboldu."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "İstemci durumları"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Bir sonucun <b>istemci durumu</b> hesaplama sırasında meydana gelen bir hatayı anlatır."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Bilgisayar henüz işi tamamlayamadı."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Bilgisayar işi başarıyla tamamladı."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Bilgisayar uygulamayı ya da girdi dosyalarını indiremedi."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Hesaplama sırasında bir hata meydana geldi."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Bilgisayar sonuç dosyalarını gönderemedi."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Raporlanma ya da son teslim tarihi"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "Bir işin <b>raporlanma ya da son teslim tarihi</b> işin raporlanıp raporlanmadığına işaret eder:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Zaten raporlandı"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Raporlandığı tarih/saat"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Henüz raporlanmadı, son teslim tarihine daha var"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Son teslim tarihi yeşil olarak gösterilmekte."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Henüz raporlanmadı, son teslim tarihi geçti"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Son teslim tarihi kırmızı olarak gösterilmekte"
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Bilinmeyen sebep"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "E-posta önizlemesi"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "E-posta adresiniz şu şekilde görünecek:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "E-posta gönder"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Mesaj formuna dönmek için tarayıcınızın Geri butonunu kullanın"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "E-postalar gönderiliyor"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "%1 kişisine e-posta gönderimi başarıyla tamamlandı"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "%1 kişisine e-posta gönderimi tamamlanamadı: %2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "Arkadaşlarınıza %1 projesinden bahsettiğiniz için teşekkürler"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Arkadaşlarınızın e-posta adreslerini ve/veya isimlerini girmeyi unuttunuz. Lütfen %1forma geri dönün%2 ve yazın."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Bu proje bir e-posta mesajı yaratmadı - lütfen yöneticilerini bilgilendirin"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Arkadaşlarınıza %1 projesinden bahsedin"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Lütfen, arkadaşlarınıza, ailenize ve çalışma arkadaşlarınıza %1 projesini duyurmamıza yardımcı olun"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Lütfen bu formu %1 projesiyle ilgilenebilecek kişilerin isim ve e-posta adresleriyle doldurun. Bir tanıtım e-postasını sizin isminizle göndereceğiz, isterseniz siz de özel bir mesaj ekleyebilirsiniz."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "İsminiz:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "E-posta adresiniz:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Arkadaşınızın ismi:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Arkadaşınızın e-posta adresi:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Ek mesaj (isteğe bağlı)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Yolla"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "Kullanıcıları yasaklamak için yetkili değilsiniz."
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "Yasaklama Oylaması"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "Bu NO'ya sahip kullanıcı bulunamadı."
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "Kullanıcı zaten yasaklanmış"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "%1 kullanıcısını yasaklamak istediğine emin misin?<br/>Bu, %1 kullanıcısının seçilen zaman aralığında gönderim yapmasını engelleyecektir.<br/>Yasaklama, %1 gerçekten uygunsuz davranışlarda bulunduysa yapılmalıdır."
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Gerekçe kategorisini seçin, tercihen kullanıcının neden yasaklanması gerektiğini belirten daha uzun bir açıklama yazın."
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "Kategori"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "Müstehcen"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "Öfke/Nefret söylemi"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "Kullanıcı talebi"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "Sebep"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "Boş değilse postalanır"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "Oy ile devam et"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "Bir eylem seçmelisiniz..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Bu gönderiyi şu anda düzenleyemezsiniz.<br/>Gönderiler oluşturulduktan %1 dakika sonra düzenlenebilir."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "Bu gönderiyi düzenlemek için yetkili değilsiniz."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "Forum"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Mesajınızı düzenleyin"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "Başlık"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "İmzamı bu gönderiye ekle"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "Size görünür değil"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "%1 için takım mesaj panosu"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "Yeni konu başlığı"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "Bu foruma yeni bir konu başlığı ekle"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Bu mesaj panosu bir %sRSS beslemesi%s olarak da mevcuttur"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "Bu konu başlığı gizli"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Bu konu başlığı sabit ve kilitli, onu henüz okumadınız"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "sabit/kilitli/okunmamış"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Bu konu başlığı sabit ve onu henüz okumadınız"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "sabit/okunmamış"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Bu konu başlığını henüz okumadınız ve kilitli"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "okunmamış/kilitli"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "Bu konu başlığını henüz okumadınız"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "Bu konu başlığı sabit ve kilitli"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "sabit/kilitli"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "Bu konu başlığı sabit"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "sabit"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "Bu konu başlığı kilitli"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "kilitli"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "Bu konu başlığını okudunuz"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "oku"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "Soru ve yanıtlar"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Bir gönüllüyle Skype aracılığıyla konuşun. Bir çok dilde mevcuttur. %1BOINC Online Yardım%2a gidin."
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "Konu"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "Sorular"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "%1 üyeleri arasında tartışmalar"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 Mesaj panoları"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Bir soru ya da probleminiz varsa, lütfen mesaj panolarındaki %1Soru ve Yanıtlar%2 bölümünü kullanın."
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "Abone olunan konu başlıkları"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "Gönderiyi denetle"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "Gönderiyi gizle"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "Ticari reklam"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "Çifte gönderi"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "Gönderiyi taşı"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "Hedef konu numarası"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "Kullanıcıyı engelle"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "Engelleme süresi"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 saat"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 gün"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1 hafta"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2 hafta"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 ay"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "Süresiz"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "Tamam"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "İsteğe bağlı açıklama %1 Bu kullanıcıya gönderilecek e-postaya eklenecek.%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "Bu gönderiyi denetlemek için yetkili değilsiniz"
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "Farklı kategori tipine taşınamıyor"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "Farklı kategoriye taşınamıyor"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "Kullanıcıları engellemek için yetkili değil"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "Engelleme"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "%1 kullanıcısı engellendi."
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "Eylem başarısız: Muhtemelen database problemi"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "yetkili değil"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "'%1' konu başlığını denetle"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Bir sebep kategorisi seçin ya da konu başlığını neden kilitlediğinize ya da gizlediğinize ilişkin bir açıklama yazın; ardından Tamam'ı tıklayın."
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "Mevcut forum"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "Hedef forum"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "Yeni başlık:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Burada yalnızca proje yöneticileri konu başlığı yaratabilir. Bununla birlikte, mevcut konu başlıklarına yanıt yazabilirsiniz."
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Mesajınız Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip, tekrar deneyin."
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "Yeni konu başlığı oluştur"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "Yeni bir konu başlığı oluştur"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "Bir başlık eklemeyi unutmayın"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Bunu Bildirim olarak BOINC Manager'da görüntüle"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Sadece, tüm gönüllüleri ilgilendirmesi muhtemel öğeler için bunu yapın."
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "Değerlendirme devredışı"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "Bu özellik proje tarafından kapatıldı"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "Oylayabilmek için daha fazla ortalama ya da toplam krediye sahip olmalısınız."
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "Bu gönderiyi zaten değerlendirmişsiniz."
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "Konu başlığına dön"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "Rapor Kaydedildi"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Raporunuz kaydedildi. Yardımlarınız için teşekkürler."
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "Oy Kaydedildi"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Değerlendirmeniz kaydedildi. Bildiriminiz için teşekkürler."
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "Oy Gönderme Problemi"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Gönderiniz Akismet anti-spam sistemi tarafından bir saldırı olarak algılandı.  Lütfen yazdığınızı değiştirip, tekrar deneyin."
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "Cevap yaz"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "Mesaj:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "%1Mesaj NO%2'ya yanıt:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "Yanıt gönder"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "İmzamı bu yanıta ekle"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "Gönderi raporlayabilmeniz için daha fazla ortalama ya da toplam krediye sahip olmalısınız."
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "Raporlama kaydedildi"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Raporunuz kaydedildi. Çabanız için teşekkürler."
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Bir yönetici raporunuza bakacak ve ne yapılacağına karar verecek - bu belli bir süre alabilir, lütfen sabırlı olun"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "Bir forum gönderisini raporla"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Bu gönderiyi raporlamadan önce, +/- oylama sistemini kullanmayı tercih edin. Eğer yeterli sayıda kullanıcı olumsuz oy kullanırsa, en sonunda gizli hale gelecek.<br />Oylama sistemini gönderinin altında bulabilirsiniz."
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "Gönderiyi raporla"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Gönderiyi neden saldırgan buldunuz: %1Yeterli bilgi eklemeyi unutmayın. Böylece konu başlığını\nhenüz okumamış bir kişinin sorunu kısa sürede tespit etmesi mümkün olacak.%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "Rapor kaydedilmedi"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Raporunuz kaydedilmedi. Bir süre bekleyip tekrar deneyin."
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Bu geçici bir sorun değilse, lütfen proje yöneticilerine durumu bildirin."
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS beslemesi"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "Bu mesaj panosu bir RSS beslemesi olarak da mevcuttur."
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "Seçenekler:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Yalnızca kullanıcı NO %1 olan mesajları içer (varsayılan: tüm kullanıcılar)."
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Yalnızca son %1 günlük mesajları içer (varsayılan: 30)."
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Yalnızca konular: %1 (her konunun sadece ilk mesajını içerir)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "Forum ara"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "Arama sorgusu"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "Anahtar kelimeler için ara:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Belirtilen tüm kelimeleri içeren mesajlar görüntülenir."
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "Örneğin: \"ekran koruyucu dondu\""
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "Yazar NO için ara:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "Sadece bu yazarın mesajları görüntülenir"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "Örneğin: \"43214\""
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "Arama seçenekleri"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "Arama sınırlamaları"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "En fazla bu kadar gün geriye doğru ara."
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 ay"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "1 yıl"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "Sınırlama yok"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "Sadece bu forumdan mesajları görüntüle"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "Sırala:"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "Aramayı başlat"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "Forum arama sonuçları"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "Aramanızla eşleşen konu başlıkları:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "Aramanızla eşleşen mesajlar:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Üzgüm, arama sorgunuza uyan bir şey bulamadı. Daha az kelime (veya daha az özgün kelimeler) kullanarak aramanızı genişletmeyi deneyebilirsiniz."
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Ayrıca, %1aynı aramayı Google kullanarak da yapabilirsiniz.%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "arama sonuçları"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "Abonelik başarılı"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Artık %1 abonesisiniz. Yeni bir gönderim olduğunda size bildirilecek."
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "Abonelik başarısız"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "Sizi %1 konusuna abone yapamadık. Lütfen daha sonra tekrar deneyin."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "Abonelik iptali başarılı"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Artık %1 abonesi değilsiniz. Artık bu konu için bildirimler almayacaksınız."
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "Abonelik iptali başarısız oldu"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "%1 konusundan aboneliğinizi kaldıramadık. Lütfen daha sonra tekrar deneyin."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "Bilinmeyen abonelik eylemi"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "Bu forum sizin tarafınızdan görülebilir değil."
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "Bu konu başlığı moderatörler tarafından gizlendi."
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "Sorum yanıtlandı"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "Eğer sorunuz yeterli şekilde yanıtlandıysa, lütfen buraya tıklayın."
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "Ben de aynısını soruyorum"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "Bu konu başlığına yeni bir mesaj ekle"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "Aboneliği bitir"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Bu konu başlığına abonesiniz.  Aboneliği bitirmek için tıklayın."
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "Abone ol"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Bu konu başlığına yeni mesajlar yazıldığında e-posta almak için tıklayın"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "Bu konu başlığının gizliliğini kaldırır"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "Bu konu başlığını gizler"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "Üst konudan kaldır"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "Bu konu başlığının üst konu durumunu kaldır"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "Üst konu yap"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "Bu konu başlığını forumun her zaman en tepesinde görünür yap"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "Kilidi kaldır"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "Bu konu başlığında yeni gönderilere izin ver"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "Kilitle"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "Bu konu başlığında yeni gönderilere izin verme"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "Bu konu başlığını başka bir foruma taşır"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "Başlığı düzenle"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "Konu başlığını düzenler"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "Konu başlığını kalıcı olarak sil"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "Bildirim olarak dışa aktar"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "Dışa aktarma"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "Bu haber öğesini bir Bildirim olarak dışa aktarmaz"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "Sırala"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "Konu başlığı durum bilgisi güncellendi"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "Durum bilgisi güncellendi."
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "%1 kullanıcısının gönderileri"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "Zaten arkadaş"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "%1 ile %2 üzerinde arkadaşlık isteği aldınız."
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "Bu istek halen onaylanmayı bekliyor."
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 gönderdiğiniz arkadaşlık isteğini onaylamadı"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "Kendinizle arkadaş olamazsınız"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "Arkadaş ekle"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "%1 kullanıcısını arkadaş olarak eklemek istediniz. %2 kullanıcısını uyaracağız ve isteğinizi yanıtlamasını isteyeceğiz."
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "İstiyorsanız buraya bir mesaj ekleyin:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "Arkadaşlık isteği gönderildi"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "%1 kullanıcısını isteğiniz konusunda uyardık."
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "Lütfen %1 olarak giriş yapın"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "Bu arkadaşlık isteğini görebilmek için %1 olarak giriş yapmanız gerek"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "Arkadaşlık isteği"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 sizinle arkadaş olmak istedi."
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 diyor ki: %2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "Arkadaşlığı onayla"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "%1 gerçekten arkadaşınızsa onaylamayı tıklayın"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "Reddet"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "%1 arkadaşınız değilse reddetmeyi tıklayın"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "Arkadaşlık onaylandı"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "%1 ile arkadaşlık talebiniz onaylandı."
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "Arkadaşlık reddedildi"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "%1 ile arkadaşlık talebiniz reddedildi."
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "Uyarı bulunamadı"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "Arkadaş onayladı"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "%1 ile artık arkadaşsınız."
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "Arkadaşlığı bitir?"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "%1 ile arkadaşlığınızı bitirmek istediğinize emin misiniz?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "Arkadaş kal"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "Arkadaşlık bitirildi"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "%1 ile arkadaşlığınız bitti."
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Hesabınızın e-posta adresini biliyorsanız, buradan bir e-posta alabilirsiniz:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Aşağıya e-posta adresini girin ve Tamam'ı tıklatın. Parolanızı sıfırlamak için e-posta talimatları gönderilecektir."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Hesabınızın e-posta adresini unuttuysanız, veya buradan e-posta alamıyorsanız:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Bu hesap altında BOINC çalıştırıyorsanız, yine de erişebilirsiniz. İşte nasıl olacağı:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Bilgisayarınızdaki BOINC veri klasörüne gidin (bu klasörün konumu, başlangıçta Olay Günlüğü'ne yazılır)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Bu proje için hesap dosyanızı bulun; ismi <b>%1</b> olacaktır."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Not Defteri gibi bir metin düzenleyicisinde dosyayı açın. Şunun gibi bir şey göreceksiniz"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "%1 ve %2 arasında kalan kısımdaki metin dizisini seçip kopyalayın (yukarıdaki örnekte %3)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Metin dizisini aşağıdaki bölüme yapıştırın ve ardından Tamam'a basın."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Artık hesabınıza giriş yapmış olacaksınız; hesabınızın e-posta ve şifresini güncelleyin."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Kimlik doğrulayıcı ile giriş"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "Hesap bilginizi mi unuttunuz?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "GPU işleri raporlanmadı"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "En iyi GPU modelleri"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "Aşağıdaki listeler farklı platformlardaki en verimli GPU modellerini göstermektedir. Göreceli hızları, yani işlerin tamamlanması için geçen sürelerin ortalaması, parantez içinde gösterilmiştir."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "%1 projesine hoş geldiniz"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Hesap tercihlerinizi aşağıdaki bağlantılardan görüp değiştirebilirsiniz."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Şimdiye kadar yapmadıysanız, %1BOINC istemci yazılımını indirin%2."
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "Hesabınız"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "Anonim platform, uygulama mevcut değil"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "anonim platform"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Uygulama sürümü meccut değil"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Uygulama mevcut değil"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Platform mevcut değil"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Tamamlanan iş sayısı"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Günlük azami iş"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Bugünkü iş sayısı"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Ardarda gelen doğrulanmış işler"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Ortalama hesaplama hızı"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "%1 istemcisi için uygulama detayları"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "Bu bilgisayar hakkında kayda sahip değiliz."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Veritabanımızda halen bu bilgisayara gönderilen bir iş bulunduğundan, onu kayıtlarımızdan silemezsiniz. Bu bilgisayara gönderilen iş proje veritabanından silinene kadar, birkaç gün beklemeniz gerekir."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Bu bilgisayarın kaydını sil"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Kayıt silindi."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Bilgisayarlarınız listesine dön"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Bilgisayar kayıtlarını birleştir"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Bilgisayarları birleştir"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Bazen BOINC yanlışlıkla aynı bilgisayara farklı kimlikler atar. En yenisiyle eski kimlikleri birleştirerek, bunu düzeltebilirsiniz."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Hiçbir bilgisayar bununla birleştirme için uygun değil."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Detayları görüntüle"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "%1 ile aynı olan bilgisayarları gözden geçirin (oluşturulma %2, bilgisayar NO %3)"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "isim"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "oluşturulma"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "bilgisayar NO"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "sunucu ismi yok"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Sunucuları birleştir"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "Bilgisayar kredisi güncelleniyor"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "Bilgisayar kredisi güncellendi"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Bilgisayar konumu güncellendi"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "yok"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Bu bilgisayarın konumu %1 olarak ayarlandı."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Bu değişiklik, bilgisayarın bu proje ile bir sonraki iletişim kurmasından itibaren geçerli olacak."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Sunucu sayfasına dön"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1 kullanıcısına ait bilgisayarlar"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Gizlenen bilgisayarlar"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Bu kullanıcı, bilgisayarları hakkında bilgi gösterilmemesini tercih etti."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Bilgisayarlarınız"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "İzin verilen HTML etiketleri"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Takım açıklamalarında aşağıdaki HTML etiketlerine izin verilir:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "kalın"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "italik"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "köprü"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "paragraf"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "ara"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "önceden biçimlendirilmiş"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "resim; yüksekliği 450 pikseli geçemez. Lütfen resmi barındıran web sitesinin izni olmadan, resme bağlantı vermeyin."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Ayrıca özel karakterler için 've işareti' (ampersand) gösterimi kullanabilirsiniz."
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "Kurallarımızı ve politikamızı okuyun"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "%1 projesini yalnızca yetkili bilgisayarlarda çalıştırın"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "%1 projesini yalnızca kendi bilgisayarınızda ya da sahibinin izin verdiği bilgisayarlarda çalıştırın. Bazı okul ya da şirketlerin, bilgisayarlarının %1 gibi projeler için kullanılmaması yönünde politikaları bulunabilir."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "%1 bilgisayarınızı nasıl kullanacak"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Bilgisayarınızda %1 çalıştırdığınızda, CPU (işlemci) gücü, disk alanı ve ağ bant genişliğinin bir kısmını kullanacak. %1 projesinin bu kaynakları ne zaman ve ne kadar kullanacağını belirleyebilirsiniz."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Bilgisayarınız, gönderilen işleri %1 projesinin hedefleri doğrultusunda ve proje sitesinde tanımlandığı şekilde tamamlayacak. Bu kapsamda uygulama yazılımları zaman zaman değişebilir."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Gizlilik politikası"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "%1 üzerindeki hesabınız, seçeceğiniz bir isimle birlikte tanınır. Bu isim, bilgisayarınızın %1 için tamamladığı işlerin özetiyle birlikte, %1 sitesinde gösterilebilir. Eğer anonim kalmak istiyorsanız, gerçek kimliğinizi ortaya çıkarmayan bir isim seçin."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Eğer %1 projesine katılırsanız, bilgisayarınız hakkında bilgi (örneğin işlemci tipi, bellek miktarı vb.) %1 tarafından kaydedilecek ve bilgisayarınıza ne tip iş gönderileceğinin belirlenmesinde kullanılacak. Bu bilgi %1 internet sitesinde de gösterilecek. Ancak, bilgisayarınızın konumuyla ilgili herhangi bir bilgi (örneğin etki alanı adı ya da ağ adresi) gösterilmeyecek."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "%1 projesine katılmak için, e-postaları alacağınız bir adres vermelisiniz. Bu adres %1 internet sitesinde gösterilmeyecek ya da başka organizasyonlarla paylaşılmayacak. %1 size düzenli olarak bilgilendirme e-postaları gönderebilecek, bununla birlikte, gönderilmemesini de sağlayabilirsiniz."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "%1 internet sitesinden gönderilen özel mesajları, yalnızca gönderen ve alan görebilir.  %1 özel mesajların içeriğini gözlemlemez ya da kontrol altında tutmaz.  Eğer başka bir %1 kullanıcısından istemediğiniz özel mesajlar alıyorsanız, onu %2mesaj filtrenize%3 ekleyebilirsiniz.  Böylece, bu kişiden gelen özel ya da herkese açık hiç bir mesajı görmezsiniz."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Eğer internet sitesi forumlarımızı kullanıyorsanız, %2gönderim ilkelerine%3 uymak zorundasınız.  %1 forumlarına gönderilen mesajlar herkes tarafından görülebilir, buna üye olmayanlar da dahildir.  Forumlara mesaj göndermekle, mesajların herhangi biri tarafından görülmesi ve kopyalanmasını kabul etmiş ve içeriği üzerindeki haklarınızdan vazgeçmiş oluyorsunuz."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "%1 çalıştırmak güvenli midir?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "İnternetten herhangi bir yazılım indirdiğinizde, bazı olasılıkları göze almaktasınız: Yazılımın tehlikeli hataları bulunabilir ya da indirme sunucusu hacklenmiş olabilir. %1 bu riskleri en aza indirmeye gayret etmekte. Uygulamalarımızı dikkatlice test etmekteyiz. Sunucularımız bir güvenlik duvarı arkasında bulunuyor ve yüksek güvenlik için yapılandırılıyor. İndirilen yazılımların doğruluğunu sağlamak için, tüm çalıştırılabilir dosyalar internete bağlı olmayan güvenli bir bilgisay [...]
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "%1 tarafından çalıştırılan uygulamalar, bazı bilgisayarların fazla ısınmasına neden olabilir. Bu gerçekleşirse, %1 kullanmayı durdurun ya da CPU (işlemci) kullanımını sınırlayan bir %2yardımcı program%3 kullanın."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1, %2 tarafından geliştirildi. BOINC, Kaliforniya Üniversitesi'nde geliştirildi."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Sorumluluk"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 ve %2, %1 projesine katılmakla bilgisayarınızda oluşabilecek bir hasarı, veri kaybını ya da oluşabilecek başka olayların sonuçlarını üstlenmez."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Diğer BOINC projeleri"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Diğer projeler, %1 ile aynı platformu kullanır, yani BOINC'i. Bir ya da daha fazla projeye daha katılmayı düşünebilirsiniz. Böylece, bilgisayarınız %1 için bir iş bulunmadığı zamanlarda da faydalı olmayı sürdürebilir."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Bu diğer projeler, %1 ile ortak değildir ve onların güvenlik yöntemlerine ya da araştırmalarının doğasına kefil olmayız. Diğer projelere, riski kendinize ait olmak üzere katılın."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Dil seçimi"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Bu internet sitesi çeşitli dillerde mevcuttur. Şu anda seçili olan dil: %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Normalde dil seçimi tarayıcınızın dil ayarlarına bakılarak gerçekleştirilir, şu anda bulunan ayar: %1.  Bu ayarı şu şekilde değiştirebilirsiniz:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Araçlar/Seçenekler/Genel"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Araçlar/Internet Seçenekleri/Diller"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Ya da aşağıdaki bağlantılardan birisine tıklayarak, istediğiniz dili seçebilirsiniz.  Bu, tarayıcınıza bir çerez gönderir; tarayıcınızın sitemizden gelen çerezleri kabul ettiğinden emin olun."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Dil adı (seçmek için tıklayın)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Tarayıcının dil ayarlarını kullan"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Çeviriler gönüllüler tarafından yapılır.  Eğer anadiliniz burada mevcut değilse, %1bir çeviri gerçekleştirebilirsiniz%2."
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "ya da %1bir hesap oluştur%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Sürüyor %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1, %2 ile birleştiriliyor"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Bilgisayarlarınız listesine dön"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Bu işlem, bilgisayarları etki alanı adına göre birleştirir.\n        <p>\n        Her etki alanı adı için, bu adı taşıyan yeni bilgisayar ile\n        bu adı taşıyan tüm eski bilgisayarlar birleştirilecek.\n        Uyumsuz bilgisayar birleştirilmiş olmayacak.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Devam et ve bunu yap"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Bilgisayarlar sayfasına dön"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nBilgi tartışmasını ve akışını azami hale getirmek için,\nmesaj panolarımız yönetilmektedir.\nMesaj panosu gönderimleri aşağıdaki kurallara tabidir:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nModeratörler bu kuralların herhangi birini ihlal eden mesajları silebilir.\nSilinen mesajların yazarları e-posta yoluyla bildirilecektir.\nSaldırgan suçlular, gönderileri geçici olarak iptal yetkisine sahip olabilir\n(istismarı önlemek için, sadece proje yöneticileri bunu yapma yetkisine sahiptir).\nKötü davranışın ilave çeşitleri (diğer katılımcıların IP adreslerini yakalamak için\n\"gizli dinleme\" mesajları, forumu spamlamak için aşırı miktarda konu açma, vb.),\nresmi k [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Beklenen kredi"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "Sonuç NO"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "İş birimi NO"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "Sunucu NO"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "İstenen kredi"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Beklenen kredi: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Bu kullanıcıdan gelen mesajları engelle"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Kullanıcıyı engelle"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Mesajınız gönderildi."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "Özel mesajınız bulunmuyor."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Gönderen ve tarih"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "konu başlığına yeni bir mesaj ekle"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "Bu mesajı sil"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "Tümünü seç"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "Tümünün seçimini kaldır"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "Seçili mesajları sil"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "Gönderen"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "Tarih"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "Özel mesaj göndermek için tüm alanları doldurmalısınız"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "İlk yanıtınız Akismet anti-spam sistemi\n                tarafından bir saldırı olarak algılandı.\n                Lütfen yazdığınızı değiştirip tekrar deneyin."
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "%1 NO'suyla bir kullanıcı bulunamadı"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "%1 adında bir kullanıcı bulunamadı."
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 benzersiz bir kullanıcı adı değil; kullanıcının kimlik NO'sunu kullanmalısınız"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "%1 kullanıcısı (NO: %2) sizden gelen özel mesajları kabul etmiyor."
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "Böyle bir kullanıcı yok"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "%1 gerçekten engellensin mi?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "%1 kullanıcısının size özel mesaj göndermesini engellemek istediğinize emin misiniz?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Unutmayın ki, yalnızca sınırlı sayıda kullanıcıyı engelleyebilirsiniz."
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Bir kullanıcı engellendiğinizde, engelini forum tercihleri sayfasından kaldırabilirsiniz."
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "Hayır, iptal"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "eşleşen kullanıcı yok"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "%1 kullancısı engellendi"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "%1 kullanıcısının size özel mesaj göndermesi engellendi."
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Engellemeyi kaldırmak için, %1forum tercihlerini%2 ziyaret edin"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "Bilinmeyen eylem"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Tercihleriniz güncellendi. Güncel tercihler,\n          bilgisayarınız %1 ile ilk bağlantı kurduğunda ya da\n          BOINC Manager'da %2Güncelle%3 komutunu kullandığınızda kullanılmaya başlanacak."
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Tercihleriniz varsayılan değerlerine sıfırlandı ve bilgisayarınız\n          %1 ile iletişim kurduğunda ya da BOINC Manager'dan\n          %2Güncelle%3 komutu kullanıldığında yürürlüğe girecek."
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1 için %2"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "Tercihlere dön"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "Tercihlerin kaldırılmasını onayla"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "%2 için ayrı %1 tercihlerinizi silmek istediğinize emin misiniz?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "Tercihleri kaldır"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "İptal"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "Profiller"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Profilller%2, fikirlerinizi ve özgeçmişinizi %3 topluluğuyla paylaşmanızı sağlar."
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Sizin gibi düşünen gönüllüleri arayın ve görüşlerinizle diğerlerine katkıda bulunun."
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Sahip değilseniz, diğerlerinin görmesi için %1kendi kullanıcı profilinizi oluşturabilirsiniz%2."
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "Günün Kullanıcısı"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "Kullancı Profili Gezgini"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "%1Kullancı Resim Galerisine%2 bak."
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "Profillere %1ülkelerine göre%2 gözat."
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Profillere %1rasgele%2, %3resimlerle rasgele%2 ya da %4resimler olmadan rasgele%2 gözat."
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "Alfabetik profil listesi:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "Profil yazısında ara"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "Profil yok"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "Aramanızla eşleşen profil yok."
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "Geçersiz oy tipi:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "Oy Kaydedildi"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "Teşekkürler"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "Öneriniz kaydedildi."
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Bu profilin çıkarılması konusundaki oyunuz kaydedildi."
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "Profile dön."
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "'%1' içeren profiller"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "Kullanıcı adı"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "Katıldığı projeler"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "Güncel ortalama kredi"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "'%1' içeren profil bulunamadı"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "Eşleşen iş yok:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Bu özellik geçici olarak kapatıldı"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "%1 NO'suyla bilgisayar bulunamadı"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Erişim yok"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Eksik kullanıcı NO ya da sunucu NO"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Görüntülenecek iş yok"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "Günün kullanıcısı"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "Çalışmıyor"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "Çalışıyor"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "Devre dışı"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "Proje durumu"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "Sunucu durumu"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "Program"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "Sunucu"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "Veritabanı şeması sürümü:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "Hesaplama durumu"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "Kullanıcılar"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "Uygulamaya göre işler"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "Son 100 sonucun ortalama çalışma saati: Ortalama, asgari, azami)"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "Son 24 saatteki kullanıcılar"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Bilgisayar %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "İstatistikler ve en iyiler listeleri"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "%1 için istatistikler"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "En iyi katılımcılar"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "En iyi takımlar"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "En iyi bilgisayarlar"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU modelleri"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU modelleri"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "%1 ve diğer BOINC-tabanlı projeler için daha detaylı istatistikler, çeşitli internet sitelerinde mevcuttur:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Güncel istatistiklerinizi, bir \"imza resmi\" biçiminde de görebilirsiniz:"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Ek olarak, tüm BOINC projelerindeki kişisel istatistiklerinizin özetini de çeşitli sitelerden alabilirsiniz; %1ana sayfanıza%2 bakın."
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "Takımlar"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 katılımcıları %2takımlar%3 oluşturabilir."
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Aynı anda yalnızca bir takımın üyesi olabilirsiniz. Bir takıma istediğiniz zaman katılıp ayrılabilirsiniz."
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "Her takım şunları yapabilen bir %1kurucuya%2 sahiptir:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "Takım üyelerinin e-posta adreslerini görme"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "Takımın ismini ve açıklamasını düzenleme"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "Takım Yöneticileri ekleme ya da çıkarma"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "Takımdan bir üyeyi çıkarma"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "Üyesi yoksa takımı kaldırma."
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Bir takıma katılmak için, takımın sayfasını ziyaret edin ve %1Bu takıma katıl%2 bağlantısına tıklayın."
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "Bir takım bul"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "Tüm takımlar"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 takımları"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "Yeni bir takım oluştur"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Size göre bir takım bulamadıysanız, %1bir takım oluşturabilirsiniz%2."
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "Bu kullanıcıyı Takım Yöneticiliğinden çıkar"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "Takım Yöneticileri ekleme ya da çıkarma"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Takımınızın üyelerini 'Takım Yöneticisi' yapabilirsiniz. Takım Yöneticileri şunları gerçekleştirebilir:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Takım bilgisini düzenleme (isim, URL, açıklama, ülke)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "Takımın katılma/ayrılma geçmişini görüntüleme"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Eğer mevcutsa, takım forumunu yönetme (yöneticiler, moderasyon olayları ve red X raporları hakkında uyarı e-postaları alır)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "Takım Yöneticileri şunları yapamaz:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "Takım kurucusunu değiştirme"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "Üyeleri çıkartma"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Bir Takım Yöneticisi takımdan ayrılırsa, Takım Yöneticiliği de sona erer."
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Yalnızca bildiğiniz  ve tamamen güvendiğiniz kişileri Takım Yöneticisi yapmanızı öneririz."
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "Şu anda bir Takım Yöneticisi bulunmuyor"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "Mevcut Takım Yöneticileri"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "Burada Takım Yöneticisi ol: "
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "Takım Yöneticisi ekle"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "Takım üyesinin E-posta adresi:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "Ekle"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "yöneticiyi kaldırma başarısız oldu"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "Kullanıcı takımın üyesi değil"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 zaten %2 takımının bir yöneticisi"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "Yönetici eklenemedi"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "Eşleşen takım yok"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "eşleşen takım yok"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "Kullanıcı %1 takımının üyesi değil"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "%1 takımının kurucu değişimi"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1, %2 takımının kurucusu oldu"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "%1 takımının kurucusunu değiştir"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Takım üyesi %1, %2 tarihinde bu takımın yöneticisi olmayı talep etti, ancak takımdan ayrıldı. Dolayısıyla talep iptal ediliyor."
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Takım üyesi %1, bu takımın yöneticisi olmayı talep etti. Bu gerçekleşebilir çünkü takımdan ayrıldınız ya da takımla uzun süredir irtibat kurmuyorsunuz."
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "isteği reddet"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "%1 tarihine kadar talebi reddetmezseniz, %2 takımın yöneticisi olma seçeneğine sahip olacak.<br /><br />\n                  Talebi kabul etmek için, aşağıdaki formu kullanarak %3 takımına kurucu olarak atayın."
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "Beklemede olan değişim isteği bulunmuyor."
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Başka bir kullanıcıyı bu takımın kurucusu yapmak için, üye isminin yanındaki kutucuğu işaretleyin ve aşağıdaki <strong>Kurucuyu değiştir</strong>e tıklayın."
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "Yeni kurucu olsun"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "Kurucuyu değiştir"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "Takımın aktarılacağı hiçbir kullanıcı yok."
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "Boş olmayan bir takım adı seçmelisiniz."
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "%1 adında bir takım zaten mevcut - lütfen başka bir isim deneyin."
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "Takım oluşturulamadı - lütfen tekrar deneyin."
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "Takım oluştur"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "%1 üyesisiniz. Yeni bir tane oluşturmadan önce %2bu takımdan ayrılmalısınız%3."
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "Kurucu ya da yönetici yok"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "%1 için takım geçmişi"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "Ne zaman"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "Kullanıcı"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "Eylem"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "Eylem gerçekleştirildiğindeki toplam kredi"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "geçersiz ülke"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "'%1' ismi başka bir takım tarafından kullanılıyor."
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "Bir takım adı belirtilmeli"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "Takım güncelleştirilemedi - lütfen tekrar deneyin."
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "%1 takımını düzenle"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "Takım bilgisini güncelle"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 e-posta listesi"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "%1 üye listesi"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "Salt metin olarak görüntüle"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "Mesaj panosu oluştur"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "%1 için kullanmak üzere bir mesaj panosu oluşturabilirsiniz."
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "Yalnızca takım üyeleri gönderi gönderebilecek."
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "Tercihinize bağlı olarak, yalnızca üyeler gönderileri okuyabilecek."
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "Siz ve Takım Yöneticileri moderasyon izinlerine sahip olacak."
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "%1 için bir mesaj panosu oluştur"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "Takım zaten bir mesaj panosuna sahip"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "Takım Mesaj Panosu"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "İki gönderi arasındaki en kısa süre (saniye olarak)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "İleti gönderebilmek için sahip olunması gereken asgari kredi"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "İleti gönderebilmek için sahip olunması gereken asgari ortalama kredi"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "Gönder"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "Takımınızın mesaj panosunu kaldırmak için tıklayın."
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "Mesaj panosunu kaldırmak istediğinize emin misiniz?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Takımınızın mesaj panosunu kaldırmak istediğinize emin misiniz? Tüm başlıklar ve gönderiler kalıcı olarak silinecek (Bununla birlikte, daha sonra yeni bir mesaj panosu oluşturabilirsiniz)."
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "Evet - mesaj panosunu kaldır"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "Mesaj panosu kaldırıldı"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Takımınızın mesaj panosu kaldırıldı. Şimdi yeni bir tane %1oluşturabilirsiniz%2."
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "Takım mesaj panosu güncellendi"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "Güncelleme başarılı"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "Güncelleme başarısız"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "Takımın forumu yok"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "Bu sayfaya erişmek için takımın üyesi olmalısınız."
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "%1 kurucusu olma talebi gönderiliyor"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Mevcut kurucu, talebiniz hakkında e-posta ve özel mesaj yollarıyla uyarıldı.<br /><br />\n                       Kurucu 60 gün içerisinde yanıt vermezse, yeni kurucu olabileceksiniz."
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "Kurucu olma talebi şu anda kabul edilmiyor"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "%1 takımının kuruculuğunu üstlendiniz"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Tebrikler, %1 takımının kurucusu oldunuz. Takım Yönetimi seçeneklerine ulaşmak için %2Hesap Sayfanız%3a gidin. <br>"
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "Kurucu değişimi talebini reddet"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "%1 tarafından gönderilen kurucu olma talebi reddedildi"
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "Kurucu olma talebi bulunmuyor."
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "bilinmeyen eylem %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "Takım sayfasına dön"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "Bu sayfaya erişmek için bir takımın üyesi olmalısınız."
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "%1 kurucusu olma talebi gönder"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "%1 takımının kurucusu oldunuz."
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "%2 tarihinde %1 için kurucu olmayı talep ettiniz."
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "Talebinizden bu yana 60 gün geçti ve kurucu yanıt vermedi. Buraya tıklayarak kuruculuğu üstlenebilirsiniz:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "Kuruculuğu üstlen"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Kurucu, talebiniz hakkında uyarıldı. Eğer %1 tarihine kadar yanıt vermezse, kurucu olmak için seçeneğiniz olacak."
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Eğer takım kurucusu aktif değilse ve kuruculuğu üstlenmek istiyorsanız, aşağıdaki butona tıklayın. Mevcut kurucuya isteğinizle ilgili detaylı bir e-posta gönderilecek ve kuruculuğu size devretme ya da talebi reddetme seçenekleri olacak. Kurucu 60 gün içerisinde bir yanıt vermezse, kurucu olabileceksiniz.<br /><br />\n                       Kurucu olma talebi göndermek istediğinize emin misiniz?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "Kurucu değişimi talebi"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "Kurucu değişimi, %1 tarafından %2 tarihinde zaten talep edildi."
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Son 90 gün içerisinde bir kurucu değişimi talebi oldu, bu nedenle yeni talepler kabul edilmiyor. Lütfen daha sonra tekrar deneyin."
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "%1 takımı yeni üye kabul etmiyor."
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "Zaten üye"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "Zaten %1 takımının üyesisiniz."
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "Takıma katılamadınız - lütfen daha sonra tekrar deneyin."
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "Üyelik %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "%1 takımına katıldınız."
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "%1 takımına katıl"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "Lütfen dikkat:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Bir takıma katıldığınızda, kurucusu e-posta adresinizi görebilir."
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "Bir takıma katılmak, hesabınızdaki kredi miktarını etkilemez."
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "Takıma katıl"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "Arama Sonuçları"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "'%1' için arama sonuçları"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Bu takımların üyeleri, istatistikleri ve bilgilerini görebilirsiniz."
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Aramanız sonucunda 100'den fazla takım bulundu. İlk 100 takım gösteriliyor."
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Sonuçların sonu. %1 Eğer istediğiniz gibi bir takım bulamadıysanız, kendiniz %2bir takım oluşturabilirsiniz%3."
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "%1 için takım yönetimi"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "Takım bilgilerini düzenle"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "Takım adı, URL'si, açıklaması, tipi ya da ülkesini değiştirin."
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "Üye listesi:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "salt metin"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "Takım üyelerinin isimlerini ve e-posta adreslerini görün."
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "Değişiklik tarihçesini gözden geçir:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "Üyelerin takıma ne zaman katıldığını ya da ayrıldığını görün."
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "Kurucu değişimi talebine yanıt verin."
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Eğer %1 tarihine kadar yanıt vermezseniz, %2 bu takımın kuruculuğunu üstlenebilir."
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Aktif olmayan ya da istemediğiniz üyeleri takımdan çıkarın."
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "Takım kuruculuğunu başka bir üyeye devredin."
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "Takım Yöneticileri ekle/kaldır"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "Seçtiğiniz üyelere Takım Yöneticisi yetkileri verin."
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "Takımı kaldır"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "Yalnızca takımın üyesi yoksa gerçekleştirilebilir."
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "Takım mesaj panosu oluşturun ya da yönetin."
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Mevcut tüm BOINC projelerinde bu takımın bulunmasını istiyorsanız (şu anda ve gelecekte), %1BOINC genişletilmiş-takımı%2 haline getirebilirsiniz."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Takım yöneticilerini, Google'daki %1boinc-takım-kurucuları%2 grubuna katılmaya teşvik ediyoruz."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Boş olmayan bir takım kaldırılamaz."
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "%1 takımı kaldırıldı"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Limite ulaşıldı:  Yalnızca ilk 1000 üye görüntülenebilir."
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "%1 takımının üyeleri"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "Takımdan ayrılamıyorsunuz."
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Takım mevcut değil ya da takıma ait değilsiniz."
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "%1 takımından ayrıl"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Takımdan ayrılmadan önce lütfen şunlara dikkat edin:</strong>\n         <ul>\n         <li>Takımdan ayrılırsanız, daha sonra yeniden katılabilirsiniz ya da istediğiniz başka bir takıma katılabilirsiniz\n         <li>Bir takımdan ayrılmak, kişisel kredi miktarlarınızı herhangi bir şekilde etkilemez.\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "Takımdan ayrıl"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "%1 takımından üyeler çıkartılıyor"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1, %2 takımının bir üyesi değil"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 çıkartıldı"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "%1 takımından üyeleri çıkart"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "Çıkartılsın mı?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "İsim (NO)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "Çıkartılabilecek üye mevcut değil."
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "Üyeleri çıkart"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "Takım adı"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "Takım arama sonuçları"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Arama kriterlerinize uygun takım bulunamadı. Lütfen arama kriterlerinizi değiştirin."
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "Ya da %1yeni bir takım oluşturabilirsiniz%2."
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Aşağıdaki takımlar bir ya da daha fazla arama kriterinize uyuyor.\n            Bir takıma katılmak için, ismine tıklayın ve takım sayfasına gidin,\n               ardından %1Bu takıma katıl%2a tıklayın."
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "Aramanızı değiştirin"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Sizinle benzer ilgilere sahip olan ya da aynı ülke, şirket ya da okuldan kişilerin bulunduğu takımlara katılabilirsiniz."
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "Bu formu kendiniz için doğru olan takımları bulmak için kullanın."
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "Şu anda bir takıma katılma konusuyla %1ilgilenmiyorum%2."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Limite ulaşıldı - Üzgünüz, yalnızca ilk %1 öğe"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "En iyi sunucular"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "En iyi %1 takımlar"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "%1 takımları yok"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Katılma tarihi"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "\"Günün kullanıcısı\" seçilmedi."
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "%1 için Günün Kullanıcısı: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Süzgeçler"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Bununla başlayan kullancı adları:"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Herhangi"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "Profilli olanlar?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Farketmez"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "Bir takımda yer alanlar?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Sıralama"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "Son giriş tarihi, azalarak"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "Ortalama kredi, azalarak"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "Toplam kredi, azalarak"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "Arama değeri en az 3 karakter olmalı"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "Kullanıcı arama sonuçları"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "Üyelik"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "Aradığınız kriterlere uygun kullanıcı bulunamadı."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Kullanıcı bulunamadı!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Hesap Bilgisi<br/>Kullanici: %1<br/>Zaman:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Takim:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Takim Topl.Kredi:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "Takim Ort.Kredi:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Takim: Yok"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "BOINC e-posta adresini doğrula"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "%1 hesabınızın bağlı olduğu e-posta adresini doğrulamak için bu linke tıklayın:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Doğrulama e-postası gönder"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "%1 adresine bir e-posta gönderildi. E-posta adresinizi doğrulamak için, gelen mesajdaki linke tıklayın."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Böyle bir kullanıcı yok."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "URL bilgisinde hata - e-posta adresi doğrulanamadı"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Veritabanı güncellemesi başarısız - lütfen daha sonra tekrar deneyin."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "E-posta adresini doğrula"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Hesabınızın bağlı olduğu e-posta adresi doğrulandı."
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "Bu kullanıcının profili yok"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "Profil: %1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "Hesap bilgisi"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Hesabınıza e-posta adresinizi ve şifrenizi ya da atanan 'hesap anahtarı'nı kullanarak\n    erişebilirsiniz.\n    Hesap Anahtarınız şudur:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Bu anahtar şunlar için de kullanılabilir:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "Web üzerinden hesabınıza girmek ve"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "BOINC Manager kullanmadan hesabınıza bir bilgisayar eklemek için.\n       Bunu yapmak için, BOINC'i kurun,\n       BOINC veri klasöründe %1 adlı\n       bir dosya oluşturun ve içeriğini şöyle ayarlayın:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Zayıf hesap anahtarı"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "'Zayıf hesabınız anahtarınız' da hesabınıza bilgisayar eklemek için kullanılabilir.\n    Yukarıda tarif edildiği gibi yapılır. Ancak hesabınızda oturum açılamaz veya\n    herhangi bir şekilde değiştirmek için kullanılamaz.\n    Hesabınıza güvenilir olmayan veya güveliksiz bir bilgisayar eklemek istiyorsanız,\n    bunu zayıf hesap anahtarınızı kullanarak yapabilirsiniz.\n    Zayıf hesap anahtarınız şudur:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Şifrenizi değiştirirseniz, zayıf hesap anahtarınız da değişir ve önceki zayıf hesap anahtarınız geçersiz hale gelir."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "iş birimi bulunamadı"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "İş birimi %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "uygulama"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "kabul edilen sonuç"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "alınan kredi"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Süren işler"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "tamamlanma kuyruğunda beklemede"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "asgari yeter sayı"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "başlangıçtaki kopya sayısı"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "azami sonuç sayısı (hatalı/toplam/başarılı)"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "hatalar"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "doğrulama"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Beklemede"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "Ana sayfa"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "Telif hakkı"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "Oluşturulma"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "Kişisel geçmiş"
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Bize kendinizi anlatın. Örneğin, nereden olduğunuzu, yaşınızı, mesleğinizi, hobilerinizi ya da kendiniz hakkındaki istediğiniz bir şeyi yazabilirsiniz."
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "%1 hakkındaki fikirleriniz"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Lütfen bize %1 hakkındaki düşüncelerinizi anlatın<ol>\n    <li>Neden %1 çalıştırıyorsunuz?\n    <li>Proje hakkındaki gözlemleriniz neler\n    <li>Önerileriniz var mı?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "Grafikler için renk düzeni"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Grafikler için kullanılacak en yüksek CPU gücü yüzdesi%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "Yalnızca seçili uygulamaları çalıştır"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "Sadece belirli uygulamalar için işleri al. Belli uygulamalara odaklanmak veya dışlamak için yararlıdır."
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Eğer seçili uygulamalar için iş mevcut değilse, diğer uygulamalardan işler kabul edilsin mi?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "Daha hızlı olan, grafik içermeyen uygulamalar varsa kullanılsın mı?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(tüm uygulamalar)"
diff --git a/locale/tr/BOINC-Setup.mo b/locale/tr/BOINC-Setup.mo
index 743f3a9..7d881a1 100644
Binary files a/locale/tr/BOINC-Setup.mo and b/locale/tr/BOINC-Setup.mo differ
diff --git a/locale/tr/BOINC-Setup.po b/locale/tr/BOINC-Setup.po
index badbb0a..378217c 100644
--- a/locale/tr/BOINC-Setup.po
+++ b/locale/tr/BOINC-Setup.po
@@ -1,40 +1,46 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Can Demirel <aycandemirel at hotmail.com>, 2017
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-09 01:16+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Turkish (http://www.transifex.com/projects/p/boinc/language/tr/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-03 18:38+0000\n"
+"Last-Translator: Can Demirel <aycandemirel at hotmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/boinc/boinc/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "Özür dileriz, %s'in bu versiyonu 10.5 veya daha yüksek sistem gerektiriyor."
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "Üzgünüz, %s sürümü 10.6 veya daha yeni bir sistem gerektiriyor."
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "Evet"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "Hayır"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "BOINC hiçbir kullanıcı oturum açmamışken de çalışsın mı?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -42,26 +48,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "Bu bilgisayarı yönetmesine izin verilen kullanıcılar, otomatik olarak %s'i de çalıştırıp kontrol etme yetkisine sahip olur. \n\nBu Mac'de yönetici olmayan kullanıcıların da %s 'i çalıştırıp kontrol edebilmesine izin verilsin mi?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "%s'i bu Mac üzerindeki tüm %s kullanıcıları için ekran koruyucu olarak ayarlamak istiyor musunuz?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "Tamam"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "Yeniden çalıştırma sonrası izin hatası"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "Kaldırma işlemi birkaç dakika sürebilir.\nLütfen sabırlı olun."
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +76,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "%s'i bilgisayarınızdan tamamen kaldırmak istiyor musunuz?\n\nBu işlem çalıştırılabilir dosyaları kaldırır, fakat %s veri dosyalarına dokunmaz."
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "İptal edildi: %s'e dokunulmadı."
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "Bir hata oluştu: Hata kodu %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "kullanıcı ismi "
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "Ayrıca VirtualBox'ı da bilgisayarınızdan kaldırmak istiyor musunuz?\n(VirtualBox, BOINC'le birlikte kurulmuştu.)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,17 +108,17 @@ msgid ""
 "\"%s\"."
 msgstr "Kaldırma tamamlandı.\n\nAşağıdaki kalan öğeleri Finder kullanarak kaldırmak isteyebilirsiniz: \n\"%s\" klasörü\n\nher kullanıcı için, şu dosya\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
 msgstr "%s'i bilgisayarınızdan tamamen kaldırmak için yönetici parolanızı girin.\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "İptal"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "Devam et..."
diff --git a/locale/tr/BOINC-Web.mo b/locale/tr/BOINC-Web.mo
index 54a5232..1b6f218 100644
Binary files a/locale/tr/BOINC-Web.mo and b/locale/tr/BOINC-Web.mo differ
diff --git a/locale/tr/BOINC-Web.po b/locale/tr/BOINC-Web.po
index 7f6240b..cf73682 100644
--- a/locale/tr/BOINC-Web.po
+++ b/locale/tr/BOINC-Web.po
@@ -1,18 +1,17 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
+# Can Demirel <aycandemirel at hotmail.com>, 2017
 # Faruk SARI <faruksari at hotmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-04-07 06:48+0000\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2017-01-04 11:35+0000\n"
 "Last-Translator: Can Demirel <aycandemirel at hotmail.com>\n"
 "Language-Team: Turkish (http://www.transifex.com/boinc/boinc/language/tr/)\n"
 "MIME-Version: 1.0\n"
@@ -22,359 +21,466 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "Türkçe"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Turkish"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM! BOINC proje hesaplarınızı oluşturmanıza ve yönetmenize yardımcı olur ve tercihler ayarlamanıza, takıma katılmanıza veya oluşturmanıza, bilgisayarlarınızı projelere bağlamanıza ve çok daha fazlasına yardımcı olur. İster yeni veya mevcut bir BOINC kullanıcısı olun, BAM!, BOINC'den en iyi şekilde yararlanmanıza yardımcı olacaktır."
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "GridRepublic üyeleri, makineleri başka türlü kullanılmadığında bilgisayarlarının kamuya açık araştırma projelerinde çalışmasına izin veren bir ekran koruyucu çalıştırıyor. Bu ekran koruyucu, bilgisayarın performansını sıradan bir ekran koruyucunun yaptığından daha fazla  etkilemez."
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "Ara"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "BOINC ana sayfasına dön"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "Bu safya %sçevrilebilir%s."
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "Ayrıca VirtualBox'ı da kurmanızı öneririz, böylece bilgisayarınız onu gerektiren bilimsel projeleri de çalıştırabilir."
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "VirtualBox hakkında daha fazla bilgi edinin."
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "BOINC + VirtualBox'ı indir"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "%s için"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "BOINC'i indir"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "BOINC, bilgisayarınız boş zamanını SETI at home, Climateprediction.net, Rosetta at home, World Community Grid ve daha pek çoğu gibi bilimsel projelere bağışlamanızı sağlayan bir yazılımdır."
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "BOINC'i bilgisayarınıza kurduktan sonra, onu bunlar gibi istediğiniz pek çok projeye bağlayabilirsiniz."
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "Bu yazılımı, yalnızca kendi bilgisayarınızda ya da sahibinin izin verdiği bilgisayarlarda çalıştırabilirsiniz."
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "BOINC'i, Google Play Store ya da Amazon Appstore'dan indirmenizi öneririz, buradan değil."
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
 msgstr "Sistem gereksinimleri"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "Sürüm notları"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "Yardım"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "Diğer sürümler"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr "Sürüm tarihçesi"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "GPU ile hesaplama"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC: bilim için hesapla"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "BOINC Online Yardım, uzman BOINC kullanıcılarıyla bire bir konuşmanızı sağlar. Bu kişiler, %s BOINC ve gönüllü hesaplama hakkındaki sorular; %s kurulum sırasındaki işlemler ile adımlar; %s karşılaştığınız sorunların çözümleri konularında yardımcı olabilirler."
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "BOINC Online Yardım, %sSkype%s tabanlı bir İnternet telefonu sistemidir. Skype bedavadır (yazılım ve görüşmeler). Eğer Skype'a sahip değilseniz, lütfen şimdi %sindirip kurun%s.  Tamamladığınızda, bu sayfaya geri dönün."
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "Sesle yardım almak için en iyi yol, bigilsayarınızın dahili mikrofon ve hoparlörünü ya da harici bir kulaklık setini kullanmaktır. Ayrıca gönüllülerle iletişim kurmak için Skype'ın yazı-tabanlı sohbet sistemini ya da normal e-postayı (eğer Skype'a sahip değilseniz) da kullanabilirsiniz."
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "Çeşitli dillerde konuşan gönüllüler mevcuttur. Lütfen bir dil seçin:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "Bir Yardım Gönüllüsü olun"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "Eğer uzman bir BOINC kullanıcısıysanız, sizi bir %sYardım Gönüllüsü%s olmak için cesaretlendirebiliriz. Bu, bilimsel araştırmaları ve gönüllü hesaplamacılığı desteklemenin harika bir yoludur - üstelik eğlencelidir!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "Zaten bir Yardım Günüllüsüyseniz: Ayarlarınızı düzenlemek için, %sburaya tıklayın%s."
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "BOINC yardımcıları ücretsiz çalışan gönüllülerdir.  Yaptıkları tavsiyeler, BOINC ya da California Üniversitesi'ni bağlamaz."
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "%1Asla%2 e-posta ya da parola bilginizi BOINC yardımcılarına vermeyin."
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "Hesaplama Gücü"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "En iyi 100 gönüllü"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "İstatistikler"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "24 saatlik ortalama:"
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "PetaFLOP."
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "Etkin:"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "gönüllü,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "bilgisayar.\n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "24 saatlik ortalama:"
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "PetaFLOP."
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "Haberler"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "Veritabanı mevcut değil; lütfen daha sonra tekrar deneyiniz."
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "Gönüllü Olun"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "Bilgisayarınızın boş zamanını (Windows, Mac, Linux ya da Android) hastalıkların tedavisini ya da küresel ısınmayı araştırmak, elektromanyetik yıldızları keşfetmek ve diğer birçok türde bilimsel araştırma için kullanın.  Bu güvenli ve basittir:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "İndir"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "Belgeler"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "Android cihazlar için BOINC uygulamasını Google Play Store'dan edinin; Kindle için, Amazon App Store'dan edinin."
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "Pek çoğu arasından, %3, %4 ve %5 gibi %1projeleri%2 desteklemeyi seçebilirsiniz."
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "Birkaç proje çalıştırıyorsanız, %3GridRepublic%4 ya da %5BAM!%6 gibi bir %1hesap yöneticisi%2 deneyin."
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "Daha fazla bilgi edin:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "Mesaj panoları"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "Projeler"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "Kılavuz"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "Eklentiler"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "Bağlantılar"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "Bilgisayarınızın boş zamanını (Windows, Mac, Linux ya da Android) hastalıkların tedavisini ya da küresel ısınmayı araştırmak, elektromanyetik yıldızları keşfetmek ve diğer birçok türde bilimsel araştırma için kullanın.  Bu güvenli ve basittir:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "Yardımcı olabilecek diğer yollar:"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "Projeleri seçin"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "Genel bakış"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "BOINC yazılımını indirin"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "Çeviri"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "Bir e-posta adresi ve parola girin."
+#: doc/index.php:134
+msgid "Test"
+msgstr "Test"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "Ya da çeşitli projeler çalıştırıyorsanız, bir %shesap yöneticisi%s deneyin. Örneğin %sGridRepublic%s ya da %sBAM!%s gibi. "
+#: doc/index.php:135
+msgid "Document"
+msgstr "Belge"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "BOINC ile Hesaplatın"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "Halka duyur"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "Yazılım güncellemeleri"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "Hataları bildir"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "BOINC ile yüksek verimli bilgi işlem"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1Bilim insanları%2: BOINC'i bağışlanan binlerce CPU ve GPU'nun gücünden yararlanmak için bir %3gönüllü hesaplama projesi%4 yaratmak için kullanın."
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1Üniversiteler%2: BOINC'i bir %3Sanal Yerleşke Süperbilgisayar Merkezi%4 yaratmak için kullanın."
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1Şirketler%2: BOINC'i %3masaüstü dağıtık hesaplama%4 için kullanın."
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "BOINC Hakkında"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "Belgeler"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "Mesaj panoları"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC ve Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "Yazılım geliştirme"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC, gönüllü hesaplama için bir yazılım platformudur. İstemci, sunucu ve web bileşenleri ile ve diğer bileşenleri bağlamak için API'ler içerir."
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "Kaynak kodu"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "BOINC kurma"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "Tasarım belgeleri"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "BOINC'i korumamıza ve geliştirmemize yardımcı olacak programcılar arıyoruz."
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "Geliştirme süreci"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "Geliştirme görevleri"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC, LGPL açık kaynak lisansıyla dağıtılır."
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "BOINC Projesi"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC, topluluk temelli bir projedir. Herkes katılabilir."
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "E-posta listeleri"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "Etkinlikler"
 
-#: index.php:184
-msgid "Source code"
-msgstr "Kaynak kodu"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "Grafikler"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "Yönetim"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "Skype veya e-posta yoluyla canlı yardım"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC Canlı Yardım, BOINC ile ilgili soruları cevaplayabilen, BOINC'yi kurmanıza ve kullanmanıza yardımcı olan ve sorunları giderebilen deneyimli bir BOINC kullanıcısından bire bir yardım almanıza olanak tanır."
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "API'ler ve eklenti yazılımları"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "Bir yardımcıyla iletişim kurabilirsiniz"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "Gönüllü hesaplama için açık kaynaklı yazılım"
+#: doc/help.php:16
+msgid "by email"
+msgstr "e-posta ile"
 
-#: projects.inc:19
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\nsesle, %1Skype%2 kullanarak. Ücretsiz bir İnternet tabanlı telefon sistemidir. Henüz Skype'ınız yoksa, %3indirip şimdi yükleyebilirsiniz%4. İşiniz bittiğinde, bu sayfaya dönün."
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "Skype sohbeti kullanarak"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "Birçok dilde konuşan gönüllüler mevcuttur. Lütfen bir dil seçin (yardımcıların sayısı gösterilir):"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "Bir Yardım Gönüllüsü olun"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "Eğer uzman bir BOINC kullanıcısıysanız, sizi bir %sYardım Gönüllüsü%s olmak için cesaretlendirebiliriz. Bu, bilimsel araştırmaları ve gönüllü hesaplamacılığı desteklemenin harika bir yoludur - üstelik eğlencelidir!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "Zaten bir Yardım Günüllüsüyseniz: Ayarlarınızı düzenlemek için, %sburaya tıklayın%s."
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "BOINC yardımcıları ücretsiz gönüllülerdir. Onların tavsiyesi BOINC tarafından desteklenmemektedir."
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1Asla%2 e-posta ya da parola bilginizi BOINC yardımcılarına vermeyin."
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "Dağıtılmış algılama"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "Stanford Üniversitesi"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "Caltech"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "Deprem bilimi"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "Quake-Catcher Network, bilgisayarlara ve akıllı telefonlara takılı sensörleri kullanarak dünyanın en büyük sismik ağını geliştirmektedir."
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "Quake-Catcher Network, sismik dalgaları algılamak için bilgisayarlara ve akıllı telefonlara bağlanan sensörleri kullanır."
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "BOINC Polonya Vakfı"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "Çevresel araştırma"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Radioactive at Home, gönüllülerin bilgisayarlarına bağlı sensörleri kullanarak, radyasyon seviyelerinin ücretsiz ve sürekli güncellenen bir haritasını oluşturmaktadır. Katılmak için bir sensör satın almalısınız."
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "Bilişsel bilim ve yapay zeka"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "Bilişsel Bilim"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home, ortalama bir insan performansını elde etmek ve yönetmek amacıyla, insan aklını, özellikle öğrenme mekanizmaları ve süreçlerini daha iyi anlamak için \"hesaplamalı bilişsel süreç modellemesi\"ni kullanır."
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "Özel"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "Bağımsız"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "Yapay zeka"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -382,55 +488,55 @@ msgid ""
 "conversations."
 msgstr "Konuşmalardaki insan davranışını taklit etmek için, anlamsal ağları FreeHAL'de çözümleyin ve dönüştürün. FreeHAL yapay bir zekadır ve anlamsal ağları, sözcük köklerini, sözcük veri tabanlarının parçalarını ve sözcük etiketlerinin parçalarını kullanır."
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "Biyoloji ve Tıp"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "Tıbbi fizyoloji"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home kalbin elektriksel aktivitesini okuyan, kardiyak elektrofizyolojik simülasyonlarını yapar."
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "Moleküler biyoloji"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World, kurulan biyoinformatik yazılım temelinde, RNA moleküllerini tanımlamayı, analiz etmeyi, yapı olarak öngörmeyi ve tasarlamayı amaçlamaktadır."
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "University College Dublin (İrlanda)"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "Sıtma ilacı keşfi"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "Sıtmaya neden olan parazit, mevcut ilaçlara direnç geliştirmeye devam ediyor. Bu sebeple acilen, parazitteki yeni proteinleri hedefleyen yeni ilaçlar keşfetmek gerekmekte. FightMalaria at Home projesi, bu yeni hedefleri bulmayı amaçlıyor."
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "Sıtmaya neden olan parazit, mevcut ilaçlara direncini artırmaya devam ediyor. Bu nedenle acil olarak parazitte yeni proteinleri hedefleyen yeni ilaçlar bulmamız gerekiyor. FiND at Home projesi, bu yeni hedefleri bulmayı amaçlıyor."
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "Karlsruhe Üniversitesi (Almanya)"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "Protein yapısı tahmini"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -439,15 +545,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME, biyolojik olarak aktif protein yapılarını tahmin etmek, proteinler birbirleriyle etkileşirken oluşan sinyalleşme mekanizmasını anlamak, protein bozuklukları ve birikmesine ilişkin hastalıkları anlamak, biyolojik olarak önemli proteinlerin 3 boyutlu yapılarını temel alarak yeni ilaçlar geliştirmek için bilgisayarlı bir yöntem kullanır."
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "Barselona Biyomedikal Araştırma Parkı (PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "Proteinlerin moleküler simülasyonları"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -455,31 +561,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net, özellikle NVIDIA grafik işlem ünitelerinde (GPU) çalışması için optimize edilmiş ilk 'tam-atom molekül dinamikleri kodu' (CellMD) sayesinde, yeni bilgisayarlı senaryolara imkan sağlıyor. Yeni biyomedikal uygulamalar, biyomedikal araştırmalar için bilgisayarlı biyolojiye hızlıca yeni bir rol veriyor."
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "Maryland Üniversitesi Biyoenformatik ve Bilgisayarlı Biyoloji Merkezi"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "Canlı bilimleri araştırması"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "Maryland Üniversitesi'nde geliştirilen ve uygulanan Lattice Project, DNA ve protein dizisi verileri kullanarak evrimsel ilişkileri araştıran dünya çapındaki araştırmacılara işlem gücü sağlar."
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "İsviçre Tropikal Enstitüsü"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "Epidemiyoloji (Salgın hastalıklar bilimi)"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -490,15 +596,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "Sıtmanın yayılma dinamiği ve sağlık etkileriyle ilgili simülasyon modelleri, sıtma kontrolü için önemli birer araçtır. Modellerden, sivrisinek ağlarının, kemoterapinin ya da geliştirme ve test aşamasında olan yeni aşıların dağıtımında kullanılacak en uygun stratejileri belirleme konusunda yararlanılabilir. Bu modelleme son derece bilgisayar yoğundur, hastalığın dağılımını etkileyen biyolojik ve sosyal faktörlerle ilgili bir dizi parametrenin ve büyük insan popülasyonlarının simül [...]
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "Washington Üniversitesi"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "Biyoloji"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -508,19 +614,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "Bazı önemli insan hastalıklarına tedavi bulmayı sağlayabilecek tıbbi araştırmalar için, proteinlerin 3 boyutlu şekillerini saptayın. Rosetta at home çalıştırarak, yardımınız olmadan hızlandıramayacağımız ve genişletemeyeceğimiz araştırmalarımız konusunda bize katkıda bulunacaksınız. Ayrıca, HIV (AIDS), sıtma, kanser ve Alzheimer gibi hastalıklarla mücadele için yeni proteinler tasarlama çabalarımıza yardımcı olacaksınız."
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "Yer Bilimleri"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "Oxford Üniversitesi"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "İklim araştırması"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -532,25 +638,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "Son teknoloji ürünü iklim modellerinde yapılması gereken tahminleri araştırın. Modeli binlerce kez çalıştırarak, modelin küçük ayarlamalara nasıl yanıt verdiğini bulmayı umuyoruz ve tahminleri gerçeğe daha uygun hale getirmeyi bekliyoruz. Bu, modellerimizin küçük değişikliklere karşı ne kadar hassas olduğunu anlamamızı ve aynı zamanda karbondioksit değişiklikleri ve kükürt döngüsü gibi şeyler için anlayışımızı geliştirmemizi sağlayacak. Ayrıca, önümüzdeki yüzyılda iklimin geniş b [...]
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "Fizik Bilimi"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "Makine mühendisliği"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "Şu anda, 52 bar kafese (kirişe) sahip bir yapının optimum tasarımını araştırıyoruz."
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "Astronomi"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -560,11 +657,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "theSkyNet POGS, galaksilerin parlaklık, kütle, toz miktarı ve ne kadar hızlı oluştukları dahil, 16 farklı özelliğini inceleyen bir astronomi projesidir. Biz, astronomların uzak evreni anlamalarına yardımcı olacak bir atlas üretmek amacıyla, çok dalga boylu (ultraviyole, optik ve yakın kızılötesi ışık) galaksi görüntülerinin piksel-piksel hesaplamalarını yapmak için sizin işlemci gücünüzü kullanıyoruz."
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "Astrofizik"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -572,57 +669,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "Projenin amacı, asteroit nüfusunun önemli bir bölümü için şekillerin ve dönüşlerin türetilmesidir. Veri girişi olarak, mevcut herhangi bir asteroid fotometrisini kullanıyoruz. Sonuçlar, asteroit dönme ekseni yönü ve dönme süresi ile dışbükey şekil modelleridir."
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "Havacılık ve uzayla ilgili bilim ve mühendislik"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "Urbana-Chamapign'deki Illinois Üniversitesi"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "Constellation, füze rampaları yörüngesi optimizasyonu, uydular ve sondalar, Ay'ın yüzeye yakın eksosfer simülasyonu, keşif-gezginlerinin dinamik sistemlerinin analizi de dahil olmak üzere, havacılık ve uzayla ilgili simülasyonlar için bir platformdur."
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "Havacılık ve uzayla ilgili simülasyonlar gerçekleştirme"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Cosmology at Home'un amacı, Evreni en iyi tanımlayan modeli bulmak ve mevcut astronomik parçacık fiziği verileriyle uyumlu model aralığını bulmaktır."
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home, en erken yıldızlardan en egzotik karadelik ikililerine kadar evrenin simüle yıldız içeriğinin ilk veri tabanını oluşturmayı amaçlıyor."
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "Fizik ve astronomi araştırmaları"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "Rensselaer Politeknik Enstitüsü"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Milkyway at Home projesinin amacı, Sloan Sayısal Gökyüzü Araştırması tarafından toplanan verileri kullanarak Samanyolu Galaksisi'nin son derece doğru, üç boyutlu modelini oluşturmaktır."
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "Samanyolu galaksisinin yapısını inceleme"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "Leiden Üniversitesi, Hollanda"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "Kimya"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -632,15 +724,15 @@ msgid ""
 "simulations through the grid."
 msgstr "Yüzey bilimi, Klasik Dinamikleri kullanılarak hesaplamalar yapar. Leiden Classic, şebekeye kendi kişisel hesaplamalarını göndermeleri için gönüllüler, öğrenciler ve diğer bilim adamlarına izin verir. Her kullanıcının Klasik Dinamik işleri için kendi kişisel sırası vardır. Bu yolla öğrenciler sıvı argonu simüle etmek için veya şebeke vasıtasıyla simülasyonlar yaparak, ideal gaz yasasının geçerliliğini test etmek için dağıtık hesaplamayı kullanır."
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "Atom simülasyonları yapmaları için öğrencilere yardım"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "Wisconsin Üniversitesi - Milwaukee, Max Planck Enstitüsü"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -649,19 +741,19 @@ msgid ""
 "international organizations."
 msgstr "Çok hızlı dönen nötron yıldızlarını (pulsar olarak da adlandırılır) aramakta kullanılan veriler, LIGO ve GEO kütleçekim dalga detektörleri ile, Arecibo Radyo Gözlemevi'nden gelmektedir. Einstein at Home, bir 2005 Dünya Fizik Yılı projesidir ve Amerikan Fizik Derneği (American Physical Society-APS) ile bir dizi uluslararası kuruluş tarafından desteklenmektedir."
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "Pulsar ve yerçekimi dalgalarının algılamasına yardım"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN (Avrupa Nükleer Araştırma Merkezi)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "Fizik"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -670,22 +762,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "Büyük Hadron Çarpıştırıcısı (LHC), Avrupa Nükleer Araştırma Merkezi CERN'deki dünyanın en büyük  parçacık hızlandırıcısıdır. Bu, şimdiye kadar parçacık davranışlarını araştırmak için yapılmış en güçlü araçtır. LHC at home, LHC'nin tasarımını ve detektörlerini geliştirmek amacıyla simülasyonlar yürütür."
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "Büyük Hadron Çarpıştırıcısı'nın tasarımını geliştirme"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "Bu proje, gönüllü bilgisayarlarda Büyük Hadron Çarpıştırıcısı (LHC) olay fizik simülasyonunu gerçekleştirmek için, Avrupa Nükleer Araştırma Merkezi (CERN) tarafından geliştirilen sanal makine teknolojisini kullanır. Bilgisayarınıza VirtualBox yüklemenizi gerektirir."
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "Yüksek enerjili parçacık çarpışmalarını simüle etme"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -693,19 +785,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home, Avrupa Nükleer Araştırma Merkezi'nin (CERN) Büyük Hadron Çarpıştırıcısındaki (LHC) bir parçacık fiziği deneyi olan ATLAS için sümulasyonlar çalıştırmak amacıyla, gönüllü hesaplamacılığı kullanıyor. ATLAS, yeni parçacıklar ve süreçler aramak için, kafa kafaya proton çarpışmalarının olağanüstü yüksek enerjisini kullanıyor."
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "CERN için yüksek enerjili parçacık çarpışmalarını simüle etme"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "Kaliforniya Üniversitesi, Berkeley"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "Astrofizik, astrobiyoloji"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -714,106 +806,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (Dünya Dışı Zeka Arayışı), amacı dünyanın dışında akıllı yaşamı algılamak olan bilimsel bir alandır. Yaklaşımlardan birisi, radyo SETI olarak bilinen, uzaydan gelen dar-bant radyo sinyallerini dinlemek için radyo teleskopları kullanmaktır. Böyle sinyallerin doğal olarak oluşmadığı bilinmektedir, bu tür bir sinyalin algılanması, uzayda dünya dışı bir teknolojinin kanıtı olabilir."
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "Dünya dışı yaşam için kanıt arayışı"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "Çoklu uygulamalar"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "Moleküler biyoloji, Bilgisayar bilimleri"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "The Citizen Science Grid, gönüllü hesaplama ve vatandaş bilimini kullanan geniş bir yelpazedeki araştırma ve eğitim projelerine desteğe adanmıştır."
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "Kuzey Dakota Üniversitesi'nden bilime destek"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "Çin Bilimler Akademisi"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "Fizik, biyokimya ve diğerleri"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "CAS at home'un amacı, Çin'deki bilim insanlarını gönüllü bilgisayar teknolojilerini benimsemeleri ve kendi araştırmaları için gönüllülerin yardımını düşünmeleri için teşvik etmek ve yardımcı olmaktır."
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home, protein yapısını, nanoteknolojiyi, kanser genomiklerini ve yüksek enerji fiziğini inceleyen projelerle Çinli bilim insanları için, Çin Bilimler Akademisi Yüksek Enerji Fiziği Enstitüsü (IHEP) Bilgi İşlem Merkezi tarafından barındırılıyor."
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "Çinli araştırmacılara yardım"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "Matematik, fizik ve evrim"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home, BOINC ve mevcut birkaç gönüllü hesaplama projesi arasında bir köprüdür: ECM, Muon, Evolution at home ve distributed.net"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "Matematik, fizik ve evrimle ilgili araştırmalar"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "MTA-SZTAKI Paralel ve Dağıtık Sistemler Laboratuvarı (Macaristan)"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "Avrupa araştırma projeleri"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "EDGeS at Home Beta projesi, gönüllü hesaplamacılığı, Avrupa hizmet dağıtık ağına entegre eder. Bunu, Avrupa hizmet dağıtık ağlarının, bu projenin gönüllülerine işlenmeleri için iş birimleri göndermesini sağlayarak gerçekleştirir. EDGeS at Home Beta'nın kapsadığı bilimsel projeler, matematik, fizik, biyoloji ve benzerleri alanlardadır."
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "Avrupalı araştırmacılara yardım"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "İspanyol üniversiteleri ve araştırma merkezleri"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "Çeşitli İspanyol araştırma projeleri"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "Fizik, malzeme bilimi ve biyomedikal araştırmaları"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "İspanyol araştırmacılara yardım"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM Kurumsal Sosyal Sorumluluk"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "Tıbbi, çevresel ve diğer insani araştırmalar"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -821,20 +894,20 @@ msgid ""
 "clean water and many more."
 msgstr "Dünyanın en büyük gönüllü bilgisayar şebekesini oluşturarak, insanlığın en acil sorunlardan bazıları hakkında, kar amacı gütmeyen daha çok kritik araştırma yapmayı hedefler. Araştırma, HIV-AIDS, kanser, tropikal ve ihmal edilen hastalıklar, güneş enerjisi, temiz su ve daha birçoğunu içerir."
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "Biyomedikal ve çevre araştırmaları"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "Matematik, hesaplama ve oyunlar"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "Matematik"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -844,64 +917,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home, özel özelliklere sahip alanları araştırır. Bu araştırmanın temel uygulaması, cebirsel sayılar teorisi alanında yer almaktadır. Sayı teorisyenleri, sayı alanları hakkındaki varsayımlarını formüle etmeye yardımcı olması için, veri  madenleri içindeki ilginç desenleri aralar. Sonuçta bu araştırma, tüm matematiğin temel yapı taşları olan sayıların engin özellikleri hakkında daha derin bir anlayışa imkan sağlayacaktır."
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "Cebirsel Sayılar Teorisi üzerinde araştırmalar"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "Bilgisayar Bilimi"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "Boolean Satisfiability Problemi'ni etkin bir şekilde azaltılabilecek zor ve pratik olarak önemli meseleler için çözüm arayışı (ayrık fonksiyonları ters çevirme sorunları, ayrık optimizasyon, biyoinformatik, vb). "
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "Hesaplama karmaşıklığı çalışması"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "Kriptografi ve kombinatorik"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "distributed.net'ten uygulamalar çalıştırma"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "Kriptografi"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "Enigma, İkinci Dünya Savaşı sırasında Almanlar tarafından kullanılan şifreleme cihazıdır. Proje, üç orijinal Enigma mesajını çözmek için bir denemedir. Sinyaller 1942 yılında Kuzey Atlantik'te yakalanmıştı ve kırılamamış olduğuna inanılmaktadır."
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "İkinci Dünya Savaşı denizaltı mesajlarını deşifre etme"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "Collatz Hipotezi (Varsayımı) çalışması, matematikte çözülememiş bir hipotez."
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "Collatz Hipotezi çalışması"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "Kaliforniya Eyalet Üniversitesi, Fullerton"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "Büyük tamsayıların çarpanlarına ayrılması"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -911,56 +984,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "Sayı Alanı Elemesi (Number Field Sieve-NFS), büyük tamsayıları çarpanlarına ayırmada kullanılan bir yöntemdir. NFS at Home, bu yöntemdeki 'dağıtık eleme işlemi' adımının, internet bağlantılı bilgisayarlar kullanarak yapıldığı bir araştırma projesidir. Bir genç okul öğrencisiyken, bir tamsayıyı asal çarpanlarına ayırmayı ilk kez deneyimlemiş olmalısınız. Mesela 15 = 3 * 5 ya da 35 = 5 * 7. NFS at Home bu deneyimin bir devamıdır, ancak yüzlerce basamak uzunluğundaki tamsayılar söz konusudur."
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "Büyük tamsayıların çarpanlarına ayrılması araştırması"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid, çok büyük asal sayıların farklı formlarını arayan birden fazla projeye sahiptir. Bunlar arasında, bilinen en büyük asal sayıyı bulma projesi de mevcuttur."
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "Büyük asal sayılar arayışı"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "Hochschule RheinMain Uygulamalı Bilimler Üniversitesi"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "Asal sayıların tanımlanmasına ilişkin iki varsayım için karşı örnekler arayışı."
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "Büyük asal sayıların özellikleri araştırması"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "MTA-SZTAKI Paralel ve Dağıtık Sistemler Laboratuvarı (Macaristan)"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "11. boyutluya kadarki tüm genelleştirilmiş ikili sayı sistemlerini (ki tabanları matris ve basamaklı vektörlerdir) bulun "
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "Sayı Teorisi araştıması"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "Mantık kontrol sistemleri tasarımı için, CAD sisteminde çalışan paralel algoritmaların ayrımlarını elde etmek amacıyla, sezgisel yöntemlerin test ve karşılaştırması."
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "Yorum"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "Tartış"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "Haberler bir %sRSS beslemesi%s olarak da sunulmaktadır"
diff --git a/locale/txconfig b/locale/txconfig
deleted file mode 100644
index 2a40cd3..0000000
--- a/locale/txconfig
+++ /dev/null
@@ -1,45 +0,0 @@
-[main]
-host = https://www.transifex.com
-
-[boinc.manager]
-file_filter = locale/<lang>/BOINC-Manager.po
-source_file = locale/templates/BOINC-Manager.pot
-source_lang = en_US
-type = PO
-
-[boinc.client]
-file_filter = locale/<lang>/BOINC-Client.po
-source_file = locale/templates/BOINC-Client.pot
-source_lang = en_US
-type = PO
-
-[boinc.web]
-file_filter = locale/<lang>/BOINC-Web.po
-source_file = locale/templates/BOINC-Web.pot
-source_lang = en_US
-type = PO
-
-[boinc.setup]
-file_filter = locale/<lang>/BOINC-Setup.po
-source_file = locale/templates/BOINC-Setup.pot
-source_lang = en_US
-type = PO
-
-[boinc.project-generic]
-file_filter = locale/<lang>/BOINC-Project-Generic.po
-source_file = locale/templates/BOINC-Project-Generic.pot
-source_lang = en_US
-type = PO
-
-[boinc.drupal]
-file_filter = locale/<lang>/BOINC-Drupal.po
-source_file = locale/templates/BOINC-Drupal.pot
-source_lang = en_US
-type = PO
-
-[boinc.android]
-file_filter = android/BOINC/res/values-<lang>/strings.xml
-source_file = android/BOINC/res/values/strings.xml
-source_lang = en_US
-lang_map = it_IT:it-rIT,pt_BR:pt-rBR,pt_PT:pt-rPT,ru_RU:ru-rRU,sv_SE:sv-rSE,zh_CN:zh-rCN,zh_TW:zh-rTW
-type = ANDROID
diff --git a/locale/uk/BOINC-Client.mo b/locale/uk/BOINC-Client.mo
index bac6376..de77efa 100644
Binary files a/locale/uk/BOINC-Client.mo and b/locale/uk/BOINC-Client.mo differ
diff --git a/locale/uk/BOINC-Client.po b/locale/uk/BOINC-Client.po
index e410048..c094f65 100644
--- a/locale/uk/BOINC-Client.po
+++ b/locale/uk/BOINC-Client.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-11-18 13:54+0000\n"
+"PO-Revision-Date: 2015-11-18 13:55+0000\n"
 "Last-Translator: Vitalii Koshura <lestat.de.lionkur at gmail.com>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/boinc/boinc/language/uk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/locale/uk/BOINC-Project-Generic.po b/locale/uk/BOINC-Project-Generic.po
deleted file mode 100644
index 3a9c899..0000000
--- a/locale/uk/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6464 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2014-01-10 00:00 PST\n"
-"PO-Revision-Date: 2015-02-09 01:32+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Ukrainian (http://www.transifex.com/projects/p/boinc/language/uk/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: uk\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "Українська"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Ukrainian"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "Жирний текст: [b]текст[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "Похилий текст: [i]текст[/i]  (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "Підкреслений текст: [u]текст[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "Текст цитати: [quote]текст[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "Відображення коду: [code]код[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "Список: [list]текст[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "Впорядкований список: [list=]текст[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "Вставлення зображення: [img]http://посилання_на_картинку[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:35
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "Вставлення URL-адреси: [url]http://url[/url] або [url=http://url]URL-текст[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:42
-msgid "Font color"
-msgstr "Колір шрифту"
-
-#: ../inc/bbcode_html.inc:43
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "Колір шрифту: [color=red]текст[/color] Підказка: Ви також можете використати color=#FF0000"
-
-#: ../inc/bbcode_html.inc:44 ../inc/bbcode_html.inc:59 ../inc/prefs.inc:638
-msgid "Default"
-msgstr "За замовчуванням"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Dark Red"
-msgstr "Темно-червоний"
-
-#: ../inc/bbcode_html.inc:46
-msgid "Red"
-msgstr "Червоний"
-
-#: ../inc/bbcode_html.inc:47
-msgid "Orange"
-msgstr "Жовтогарячий"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Brown"
-msgstr "Коричневий"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Yellow"
-msgstr "Жовтий"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Green"
-msgstr "Зелений"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Olive"
-msgstr "Оливковий"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Cyan"
-msgstr "Блакитний"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Blue"
-msgstr "Синій"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Dark Blue"
-msgstr "Темно-синій"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Indigo"
-msgstr "Індиго"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Violet"
-msgstr "Фіолетовий"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Font size"
-msgstr "Розмір шрифту"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "Розмір шрифту: [size=x-small]маленький текст[/size]"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Small"
-msgstr "Маленький"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Normal"
-msgstr "Нормальний"
-
-#: ../inc/bbcode_html.inc:62
-msgid "Large"
-msgstr "Великий"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close all open bbCode tags"
-msgstr "Закрити всі відкриті теги bbCode"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Close Tags"
-msgstr "Закрити теги"
-
-#: ../inc/forum.inc:37
-msgid "Oldest first"
-msgstr "Спочатку найстарші"
-
-#: ../inc/forum.inc:38 ../inc/forum.inc:44
-msgid "Newest first"
-msgstr "Спочатку найновіші"
-
-#: ../inc/forum.inc:39
-msgid "Highest rated posts first"
-msgstr "Спочатку повідомлення з найвищим рейтингом"
-
-#: ../inc/forum.inc:41
-msgid "Newest post first"
-msgstr "Спочатку з найновішими повідомленнями"
-
-#: ../inc/forum.inc:42
-msgid "Most views first"
-msgstr "Спочатку з найбільшою кількістю переглядів"
-
-#: ../inc/forum.inc:43
-msgid "Most posts first"
-msgstr "Спочатку з найбільшою кількістю повідомлень"
-
-#: ../inc/forum.inc:125
-msgid "Search for words in forum messages"
-msgstr "Пошук введених слів у повідомленнях на форумах"
-
-#: ../inc/forum.inc:125
-msgid "Search forums"
-msgstr "Знайти у форумах"
-
-#: ../inc/forum.inc:126
-msgid "Advanced search"
-msgstr "Розширений пошук"
-
-#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
-#: ../user/pm.php:133
-msgid "Private messages"
-msgstr "Приватні повідомлення"
-
-#: ../inc/forum.inc:151 ../user/bs_sample_index.php:63
-#: ../user/forum_forum.php:71 ../user/sample_index.php:130
-msgid "Questions and Answers"
-msgstr "Питання та відповіді"
-
-#: ../inc/forum.inc:151 ../inc/forum.inc:183 ../inc/user.inc:250
-#: ../inc/user.inc:375 ../user/bs_sample_index.php:62
-#: ../user/forum_forum.php:73 ../user/sample_index.php:129
-#: ../project.sample/project.inc:43
-msgid "Message boards"
-msgstr "Форум"
-
-#: ../inc/forum.inc:187 ../inc/forum.inc:195
-msgid "%1 message board"
-msgstr "Форум %1"
-
-#: ../inc/forum.inc:245 ../inc/result.inc:695
-msgid "Previous"
-msgstr "Попередні"
-
-#: ../inc/forum.inc:283 ../inc/result.inc:704
-msgid "Next"
-msgstr "Наступні"
-
-#: ../inc/forum.inc:412 ../inc/forum.inc:1175 ../user/forum_forum.php:137
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-msgid "Author"
-msgstr "Автор"
-
-#: ../inc/forum.inc:412 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:116
-#: ../user/forum_reply.php:120 ../user/forum_report_post.php:76
-#: ../user/pm.php:90 ../user/pm.php:144
-msgid "Message"
-msgstr "Повідомлення"
-
-#: ../inc/forum.inc:580
-msgid "Send message"
-msgstr "Відправити повідомлення"
-
-#: ../inc/forum.inc:580
-msgid "Send %1 a private message"
-msgstr "Відправити особисте повідомлення для %1"
-
-#: ../inc/forum.inc:581
-msgid "Joined: %1"
-msgstr "Приєднався: %1"
-
-#: ../inc/forum.inc:590
-msgid "Posts: %1"
-msgstr "Повідомлень: %1"
-
-#: ../inc/forum.inc:596
-msgid "Credit: %1"
-msgstr "Балів: %1"
-
-#: ../inc/forum.inc:597
-msgid "RAC: %1"
-msgstr "В середньому: %1"
-
-#: ../inc/forum.inc:620
-msgid "You haven't read this message yet"
-msgstr "Ви ще не прочитали це повідомлення"
-
-#: ../inc/forum.inc:620
-msgid "Unread"
-msgstr "Непрочитане"
-
-#: ../inc/forum.inc:623 ../inc/forum.inc:628 ../inc/forum.inc:727
-msgid "Message %1"
-msgstr "Повідомлення %1"
-
-#: ../inc/forum.inc:624 ../inc/user.inc:331 ../user/forum_forum.php:174
-msgid "hidden"
-msgstr "приховане"
-
-#: ../inc/forum.inc:625
-msgid "Posted: %1"
-msgstr "Відправлено: %1"
-
-#: ../inc/forum.inc:628
-msgid " - in response to "
-msgstr " - у відповідь на "
-
-#: ../inc/forum.inc:631 ../inc/prefs.inc:705 ../inc/prefs.inc:707
-msgid "Edit"
-msgstr "Редагувати"
-
-#: ../inc/forum.inc:631
-msgid "Edit this message"
-msgstr "Редагувати це повідомлення"
-
-#: ../inc/forum.inc:637
-msgid "Last modified: %1"
-msgstr "Остання зміна: %1"
-
-#: ../inc/forum.inc:640
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "Це повідомлення не показується тому, що відправник у Вашому списку ігнорування.  Натисніть %1тут%2 для того, щоб побачити це повідомлення"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report this post as offensive"
-msgstr "Відмітити це повідомлення як образливе"
-
-#: ../inc/forum.inc:668 ../inc/forum.inc:679
-msgid "Report as offensive"
-msgstr "Відмітити як образливе"
-
-#: ../inc/forum.inc:672
-msgid "Rating: %1"
-msgstr "Рейтинг: %1"
-
-#: ../inc/forum.inc:672
-msgid "rate: "
-msgstr "оцінити:"
-
-#: ../inc/forum.inc:675
-msgid "Click if you like this message"
-msgstr "Натисніть якщо Вам подобається це повідомлення"
-
-#: ../inc/forum.inc:675
-msgid "Rate +"
-msgstr "Оцінка +"
-
-#: ../inc/forum.inc:677
-msgid "Click if you don't like this message"
-msgstr "Натисніть якщо Вам не подобається це повідомлення"
-
-#: ../inc/forum.inc:677
-msgid "Rate -"
-msgstr "Оцінка -"
-
-#: ../inc/forum.inc:685 ../user/pm.php:106 ../user/pm.php:146
-msgid "Reply"
-msgstr "Відповісти"
-
-#: ../inc/forum.inc:685
-msgid "Post a reply to this message"
-msgstr "Відповісти на це повідомлення"
-
-#: ../inc/forum.inc:687
-msgid "Quote"
-msgstr "Цитата"
-
-#: ../inc/forum.inc:687
-msgid "Post a reply by quoting this message"
-msgstr "Відповісти, цитуючи це повідомлення"
-
-#: ../inc/forum.inc:708
-msgid "Hidden by a moderator"
-msgstr "Приховано модератором"
-
-#: ../inc/forum.inc:729
-msgid "Posted %1 by %2"
-msgstr "Написано %1 користувачем %2"
-
-#: ../inc/forum.inc:747
-msgid "You may not post or rate messages until %1"
-msgstr "Ви не можете писати чи оцінювати повідомлення до %1"
-
-#: ../inc/forum.inc:758
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> Повідомлення повинні бути 'дружелюбні до дітей': вони не повинні містити\n            контент, який є непристойним, пов’язаним з ненавистю,\n            виразно сексуальним або навідним.\n        <li> Не повинно бути комерційної реклами.\n        <li> Не повинно бути посилань на веб-сайти, пов’язані із сексуальним вмістом,\n            азартними іграми або нетерпимістю інших.\n        <li> Не повинно бути повідомлень, які дратують інших людей чи проти [...]
-
-#: ../inc/forum.inc:780
-msgid "Rules:"
-msgstr "Правила:"
-
-#: ../inc/forum.inc:781
-msgid "More info"
-msgstr "Детальніше"
-
-#: ../inc/forum.inc:1055 ../user/forum_thread.php:189
-msgid "Unhide"
-msgstr "Показати"
-
-#: ../inc/forum.inc:1055
-msgid "Unhide this post"
-msgstr "Показати це повідомлення"
-
-#: ../inc/forum.inc:1057 ../user/forum_thread.php:195
-msgid "Hide"
-msgstr "Приховати"
-
-#: ../inc/forum.inc:1057
-msgid "Hide this post"
-msgstr "Приховати це повідомлення"
-
-#: ../inc/forum.inc:1062 ../user/forum_thread.php:228
-msgid "Move"
-msgstr "Перемістити"
-
-#: ../inc/forum.inc:1062
-msgid "Move post to a different thread"
-msgstr "Перемістити це повідомлення в інше обговорення"
-
-#: ../inc/forum.inc:1067
-msgid "Banish author"
-msgstr "Заблокувати автора"
-
-#: ../inc/forum.inc:1074
-msgid "Vote to banish author"
-msgstr "Голосувати за блокування автора"
-
-#: ../inc/forum.inc:1078
-msgid "Vote not to banish author"
-msgstr "Голосувати проти блокування автора"
-
-#: ../inc/forum.inc:1083
-msgid "Start vote to banish author"
-msgstr "Почати голосування за блокування автора"
-
-#: ../inc/forum.inc:1116
-msgid "Only team members can post to the team message board"
-msgstr "Тільки учасники команди можуть залишати повідомлення на дошці повідомлень команди"
-
-#: ../inc/forum.inc:1126
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "Щоб створити нову тему для обговорень в %1, у Вас повинна бути певна кількість балів. Це обмеження повинне попередити і захистити систему проти зловживань."
-
-#: ../inc/forum.inc:1133
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "Прямо зараз Ви не можете створити тему для обговорення. Будь ласка, трохи почекайте перед повторною спробою. Ця затримка сталася для того, щоб захистити систему проти зловживань."
-
-#: ../inc/forum.inc:1140
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "Це обговорення заблоковане. Тільки модератори форуму і адміністратори можуть залишати тут повідомлення."
-
-#: ../inc/forum.inc:1145
-msgid "Can't post to a hidden thread."
-msgstr "Не можна написати повідомлення у прихованому обговоренні."
-
-#: ../inc/forum.inc:1173
-msgid "Thread"
-msgstr "Обговорення"
-
-#: ../inc/forum.inc:1174 ../inc/team.inc:128 ../user/forum_forum.php:136
-#: ../user/forum_index.php:94
-msgid "Posts"
-msgstr "Повідомлення"
-
-#: ../inc/forum.inc:1176 ../user/forum_forum.php:138
-msgid "Views"
-msgstr "Перегляди"
-
-#: ../inc/forum.inc:1177 ../inc/team.inc:128 ../user/forum_forum.php:139
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:95
-msgid "Last post"
-msgstr "Останнє повідомлення"
-
-#: ../inc/forum.inc:1235
-msgid "New posts in the thread %1"
-msgstr "Нові повідомлення в обговоренні %1"
-
-#: ../inc/forum.inc:1240
-msgid "New posts in subscribed thread"
-msgstr "Нові повідомлення у підписаному обговоренні"
-
-#: ../inc/forum.inc:1241
-msgid "There are new posts in the thread '%1'"
-msgstr "Є нові повідомлення в обговоренні '%1'"
-
-#: ../inc/forum.inc:1251
-msgid "Mark all threads as read"
-msgstr "Відмітити всі обговорення як прочитані"
-
-#: ../inc/forum.inc:1252
-msgid "Mark all threads in all message boards as read."
-msgstr "Відмітити всі обговорення на всіх дошках повідомлень як 'прочитані'."
-
-#: ../inc/host.inc:24
-msgid "No host"
-msgstr "Немає комп'ютера"
-
-#: ../inc/host.inc:26
-msgid "Unavailable"
-msgstr "Недоступно"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:639 ../inc/prefs.inc:1048
-msgid "Home"
-msgstr "Дім"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:641 ../inc/prefs.inc:1049
-#: ../user/server_status.php:314
-msgid "Work"
-msgstr "Робота"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:640 ../inc/prefs.inc:1050
-msgid "School"
-msgstr "Школа"
-
-#: ../inc/host.inc:59
-msgid "Mobile"
-msgstr "Мобільний"
-
-#: ../inc/host.inc:61 ../user/edit_forum_preferences_form.php:172
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Update"
-msgstr "Оновити"
-
-#: ../inc/host.inc:85
-msgid "Computer information"
-msgstr "Інформація про комп'ютер"
-
-#: ../inc/host.inc:89 ../inc/host.inc:94
-msgid "IP address"
-msgstr "IP-адреса"
-
-#: ../inc/host.inc:89
-msgid "(same the last %1 times)"
-msgstr "(такий самий останні %1 раз)"
-
-#: ../inc/host.inc:91
-msgid "External IP address"
-msgstr "Зовнішня IP-адреса"
-
-#: ../inc/host.inc:94
-msgid "Show IP address"
-msgstr "Показати IP-адресу"
-
-#: ../inc/host.inc:96
-msgid "Domain name"
-msgstr "Доменне ім'я"
-
-#: ../inc/host.inc:98
-msgid "Product name"
-msgstr "Назва продукту"
-
-#: ../inc/host.inc:102
-msgid "Local Standard Time"
-msgstr "Місцевий стандартний час"
-
-#: ../inc/host.inc:102
-msgid "UTC %1 hours"
-msgstr "UTC %1 години"
-
-#: ../inc/host.inc:106 ../inc/host.inc:108 ../inc/host.inc:222
-msgid "Owner"
-msgstr "Власник"
-
-#: ../inc/host.inc:108 ../inc/host.inc:355
-msgid "Anonymous"
-msgstr "Анонімний"
-
-#: ../inc/host.inc:112 ../inc/result.inc:630
-msgid "Created"
-msgstr "Створений"
-
-#: ../inc/host.inc:113 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:681 ../inc/team.inc:101 ../inc/team.inc:215
-#: ../inc/team.inc:220 ../inc/team.inc:222 ../inc/team.inc:364
-#: ../inc/team.inc:369 ../inc/user.inc:125 ../inc/user.inc:138
-#: ../user/profile_search_action.php:43
-#: ../user/team_change_founder_form.php:78 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:41 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:140
-msgid "Total credit"
-msgstr "Усього балів"
-
-#: ../inc/host.inc:114 ../inc/user.inc:125 ../user/team_search.php:70
-#: ../user/user_search.php:139
-msgid "Average credit"
-msgstr "У середньому балів"
-
-#: ../inc/host.inc:116
-msgid "Cross project credit"
-msgstr "Усього балів сумарно за проектами"
-
-#: ../inc/host.inc:118
-msgid "CPU type"
-msgstr "Тип процесора"
-
-#: ../inc/host.inc:119
-msgid "Number of processors"
-msgstr "Кількість процесорів"
-
-#: ../inc/host.inc:121
-msgid "Coprocessors"
-msgstr "Співпроцесори"
-
-#: ../inc/host.inc:123 ../inc/host.inc:687
-msgid "Operating System"
-msgstr "Операційна система"
-
-#: ../inc/host.inc:126 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "Версія BOINC"
-
-#: ../inc/host.inc:130
-msgid "Memory"
-msgstr "Пам'ять"
-
-#: ../inc/host.inc:130 ../inc/host.inc:140
-msgid "%1 MB"
-msgstr "%1 Мб"
-
-#: ../inc/host.inc:134
-msgid "Cache"
-msgstr "Кеш"
-
-#: ../inc/host.inc:134
-msgid "%1 KB"
-msgstr "%1 Кб"
-
-#: ../inc/host.inc:140
-msgid "Swap space"
-msgstr "Файл підкачки"
-
-#: ../inc/host.inc:143
-msgid "Total disk space"
-msgstr "Повний дисковий простір"
-
-#: ../inc/host.inc:143 ../inc/host.inc:146
-msgid "%1 GB"
-msgstr "%1 Гб"
-
-#: ../inc/host.inc:146
-msgid "Free Disk Space"
-msgstr "Вільний дисковий простір"
-
-#: ../inc/host.inc:150
-msgid "Measured floating point speed"
-msgstr "Виміряна швидкість обчислень з плаваючою комою"
-
-#: ../inc/host.inc:150 ../inc/host.inc:153
-msgid "%1 million ops/sec"
-msgstr "%1 мільйон операцій/с"
-
-#: ../inc/host.inc:153
-msgid "Measured integer speed"
-msgstr "Виміряна швидкість цілочисельних обчислень"
-
-#: ../inc/host.inc:157 ../inc/host.inc:159
-msgid "Average upload rate"
-msgstr "Середня швидкість відправлення даних"
-
-#: ../inc/host.inc:157 ../inc/host.inc:164
-msgid "%1 KB/sec"
-msgstr "%1 Кб/с"
-
-#: ../inc/host.inc:159 ../inc/host.inc:166 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "Невідомо"
-
-#: ../inc/host.inc:164 ../inc/host.inc:166
-msgid "Average download rate"
-msgstr "Середня швидкість завантаження даних"
-
-#: ../inc/host.inc:169 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "Середній час обробки"
-
-#: ../inc/host.inc:169 ../user/forum_search.php:46 ../user/forum_search.php:47
-#: ../user/forum_search.php:48 ../user/forum_search.php:49
-msgid "%1 days"
-msgstr "%1 днів"
-
-#: ../inc/host.inc:170
-msgid "Application details"
-msgstr "Докладно про додаток"
-
-#: ../inc/host.inc:171
-msgid "Show"
-msgstr "Показати"
-
-#: ../inc/host.inc:181 ../inc/host.inc:336 ../inc/user.inc:152
-msgid "Tasks"
-msgstr "Завдання"
-
-#: ../inc/host.inc:185 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "Кількість контактів клієнта з сервером"
-
-#: ../inc/host.inc:186
-msgid "Last time contacted server"
-msgstr "Час останнього контакту з сервером"
-
-#: ../inc/host.inc:187
-#, php-format
-msgid "% of time BOINC is running"
-msgstr "% часу роботи клієнта BOINC"
-
-#: ../inc/host.inc:189
-#, php-format
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "% часу підключення комп'ютера до Інтернету за час роботи BOINC"
-
-#: ../inc/host.inc:191
-#, php-format
-msgid "While BOINC running, % of time work is allowed"
-msgstr "% часу дозволеної роботи за час роботи BOINC"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "Середня ефективність процесора"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "Фактор виправлення тривалості виконання завдання"
-
-#: ../inc/host.inc:198 ../inc/host.inc:674
-msgid "Location"
-msgstr "Розміщення"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "Видалити цей комп'ютер"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "Об'єднати дубльовані записи цього комп'ютера"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "Об'єднати"
-
-#: ../inc/host.inc:207 ../inc/host.inc:689
-msgid "Last contact"
-msgstr "Останній контакт"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "Інформація про комп'ютер"
-
-#: ../inc/host.inc:221 ../inc/host.inc:676 ../inc/team.inc:357
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "Позиція"
-
-#: ../inc/host.inc:225 ../inc/host.inc:679
-msgid "Avg. credit"
-msgstr "У середньому за день"
-
-#: ../inc/host.inc:230 ../inc/team.inc:102 ../inc/team.inc:216
-#: ../inc/team.inc:225 ../inc/team.inc:227 ../inc/team.inc:363
-#: ../inc/team.inc:368 ../inc/user.inc:139
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:64
-#: ../user/team_remove_inactive_form.php:42 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "У середньому за день"
-
-#: ../inc/host.inc:236 ../inc/host.inc:684 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "Тип процесора"
-
-#: ../inc/host.inc:237 ../inc/host.inc:685
-msgid "GPU"
-msgstr "Тип графічного процесора"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "Операційна система"
-
-#: ../inc/host.inc:315
-msgid "(%1 processors)"
-msgstr "(%1 процесорів)"
-
-#: ../inc/host.inc:335
-msgid "Details"
-msgstr "Подробиці"
-
-#: ../inc/host.inc:340
-msgid "Cross-project stats:"
-msgstr "Об'єднана статистика за проектами:"
-
-#: ../inc/host.inc:515
-msgid "Host %1 has overlapping lifetime:"
-msgstr "У комп'ютера % 1 накладення часу життя:"
-
-#: ../inc/host.inc:522
-msgid "Host %1 has an incompatible OS:"
-msgstr "У комп'ютера % 1 несумісна ОС:"
-
-#: ../inc/host.inc:528
-msgid "Host %1 has an incompatible CPU:"
-msgstr "У комп'ютера % 1 несумісний процесор:"
-
-#: ../inc/host.inc:595
-msgid "same host"
-msgstr "той самий комп'ютер"
-
-#: ../inc/host.inc:598
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "Неможливо об'єднати комп'ютери % 1 і % 2 - вони несумісні"
-
-#: ../inc/host.inc:601
-msgid "Merging host %1 into host %2"
-msgstr "Об'єднання комп'ютерів %1 і %2"
-
-#: ../inc/host.inc:618
-msgid "Couldn't update credit of new computer"
-msgstr "Неможливо оновити бали нового комп'ютера"
-
-#: ../inc/host.inc:622
-msgid "Couldn't update results"
-msgstr "Неможливо оновити результати"
-
-#: ../inc/host.inc:627
-msgid "Couldn't retire old computer"
-msgstr "Неможливо видалити старий комп'ютер"
-
-#: ../inc/host.inc:629
-msgid "Retired old computer %1"
-msgstr "Старий комп'ютер %1 видалений"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Show:"
-msgstr "Показати:"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "All computers"
-msgstr "Всі комп'ютери"
-
-#: ../inc/host.inc:652 ../inc/host.inc:655
-msgid "Only computers active in past 30 days"
-msgstr "Тільки комп'ютери, активні за останні 30 днів"
-
-#: ../inc/host.inc:666 ../inc/result.inc:637
-msgid "Computer ID"
-msgstr "ID комп'ютера"
-
-#: ../inc/host.inc:669 ../inc/result.inc:628 ../inc/team.inc:210
-#: ../inc/team.inc:358 ../inc/user.inc:199 ../user/account_finish.php:41
-#: ../user/create_account_form.php:79 ../user/team_admins.php:62
-#: ../user/team_change_founder_form.php:77 ../user/team_email_list.php:64
-#: ../user/top_users.php:49 ../user/user_search.php:139
-msgid "Name"
-msgstr "Ім'я"
-
-#: ../inc/host.inc:682
-msgid "BOINC<br>version"
-msgstr "Версія<br>BOINC"
-
-#: ../inc/host.inc:745 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "Об'єднати комп'ютери за назвою"
-
-#: ../inc/language_names.inc:61
-msgid "Browser default"
-msgstr "Браузер за замовчуванням"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "Коментар"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "Новини доступні у форматі %sстрічки RSS%s"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:174 ../user/pm.php:69 ../user/pm.php:148
-msgid "Inbox"
-msgstr "Вхідні"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:178
-msgid "Write"
-msgstr "Написати"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:378
-msgid "Send private message"
-msgstr "Відправити приватне повідомлення"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:61 ../user/forum_post.php:87
-#: ../user/forum_post.php:89 ../user/forum_post.php:130
-#: ../user/forum_reply.php:74 ../user/forum_reply.php:107
-#: ../user/forum_reply.php:109 ../user/forum_reply.php:165 ../user/pm.php:181
-msgid "Preview"
-msgstr "Попередній перегляд"
-
-#: ../inc/pm.inc:48 ../user/pm.php:131
-msgid "no such message"
-msgstr "немає такого повідомлення"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "Кому"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "Ідентифікатори (ID) або унікальні імена користувачів, розділені комами"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:139
-msgid "Subject"
-msgstr "Тема"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "Відправити повідомлення"
-
-#: ../inc/pm.inc:121
-msgid "sent you a private message; subject:"
-msgstr "надіслав Вам приватне повідомлення; тема:"
-
-#: ../inc/pm.inc:127
-msgid "Private message%1 from %2, subject:"
-msgstr "Приватне повідомлення%1 від %2, тема:"
-
-#: ../inc/pm.inc:135
-msgid "Couldn't create message"
-msgstr "Неможливо створити повідомлення"
-
-#: ../inc/pm.inc:166
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "Вам не можна відправляти особисті повідомлення так часто. Будь-ласка, зачекайте трохи, перш ніж відправити ще."
-
-#: ../inc/pm.inc:176 ../user/forum_forum.php:186
-msgid "unread"
-msgstr "непрочитаних"
-
-#: ../inc/pm.inc:186
-msgid "For email notification, %1edit community prefs%2"
-msgstr "Для отримання повідомлень електронною поштою %1відредагуйте налаштування спільноти%2"
-
-#: ../inc/pm.inc:198
-msgid "Private message"
-msgstr "Особисте повідомлення"
-
-#: ../inc/prefs.inc:77
-msgid ""
-"Suspend work while computer is on battery power? %1 Matters only for "
-"portable computers %2"
-msgstr "Припиняти обробку, поки комп'ютер живиться від акумуляторів? %1 застосовне лише для портативних комп'ютерів %2"
-
-#: ../inc/prefs.inc:85
-msgid "Suspend work while computer is in use?"
-msgstr "Призупиняти обробку, поки комп'ютер використовується?"
-
-#: ../inc/prefs.inc:91
-msgid ""
-"Suspend GPU work while computer is in use? %1 Enforced by version 6.6.21+ %2"
-msgstr "Припиняти обробку за допомогою графічного процесора, поки комп'ютер використовується? %1 Починаючи з версії 6.6.21+ %2"
-
-#: ../inc/prefs.inc:99
-msgid "'In use' means mouse/keyboard activity in last"
-msgstr "'Використання ' означає активність миші/клавіатури за останні"
-
-#: ../inc/prefs.inc:101 ../inc/prefs.inc:110 ../inc/prefs.inc:144
-msgid "minutes"
-msgstr "хвилин"
-
-#: ../inc/prefs.inc:105
-msgid ""
-"Suspend work if no mouse/keyboard activity in last %1 Needed to enter low-"
-"power mode on some computers %2"
-msgstr "Призупиняти обробку, якщо немає активності миші/клавіатури за останні %1 Необхідно для входу в режим зниженого споживання енергії на деяких комп'ютерах %2"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Suspend work when non-BOINC CPU usage is above %1 0 means no "
-"restriction<br>Enforced by version 6.10.30+ %2"
-msgstr "Призупиняти обробку, коли використання процесора решту програмами (крім BOINC) досягне більше %1 0 - без обмежень<br>Починаючи з версії 6.10.30+ %2"
-
-#: ../inc/prefs.inc:122
-msgid "Do work only between the hours of %1 No restriction if equal %2"
-msgstr "Запускати обробку тільки між зазначеними годинами %1 без обмежень при рівності значень %2"
-
-#: ../inc/prefs.inc:130
-msgid ""
-"Leave tasks in memory while suspended? %1 Suspended tasks will consume swap "
-"space if 'yes' %2"
-msgstr "Залишати неактивні завдання в пам'яті? %1 якщо \"так\", призупинені завдання будуть займати місце у віртуальній пам'яті %2"
-
-#: ../inc/prefs.inc:139
-msgid "Switch between tasks every %1 Recommended: 60 minutes %2"
-msgstr "Переключення між завданнями кожні %1 рекомендується: 60 хвилин %2"
-
-#: ../inc/prefs.inc:147
-msgid "On multiprocessors, use at most"
-msgstr "На мультипроцесорних системах використовувати не більше"
-
-#: ../inc/prefs.inc:149
-msgid "processors"
-msgstr "процесорів"
-
-#: ../inc/prefs.inc:153
-msgid "On multiprocessors, use at most %1 Enforced by version 6.1+ %2"
-msgstr "На мультипроцесорних системах використовувати не більше %1 Починаючи з версії 6.1+ %2"
-
-#: ../inc/prefs.inc:158
-#, php-format
-msgid "% of the processors"
-msgstr "% процесорів"
-
-#: ../inc/prefs.inc:162
-msgid "Use at most %1 Can be used to reduce CPU heat %2"
-msgstr "Використовувати не більше %1 Можна використати для зменшення перегрівання процесора %2"
-
-#: ../inc/prefs.inc:167
-#, php-format
-msgid "% of CPU time"
-msgstr "% процесорного часу"
-
-#: ../inc/prefs.inc:175 ../inc/prefs.inc:189
-msgid "Disk: use at most"
-msgstr "Диск: використовувати не більше"
-
-#: ../inc/prefs.inc:177 ../inc/prefs.inc:186
-msgid "GB"
-msgstr "Гб"
-
-#: ../inc/prefs.inc:180
-msgid "Disk: leave free at least %1 Values smaller than %2 are ignored %3"
-msgstr "Диск: залишати вільного місця не менше %1 Значення менше %2 будуть проігноровані %3"
-
-#: ../inc/prefs.inc:191 ../inc/prefs.inc:201 ../inc/prefs.inc:206
-#: ../inc/prefs.inc:211
-#, php-format
-msgid "% of total"
-msgstr "% від повного обсягу диска"
-
-#: ../inc/prefs.inc:194
-msgid "Tasks checkpoint to disk at most every"
-msgstr "Період збереження на диск проміжних результатів завдань"
-
-#: ../inc/prefs.inc:196
-msgid "seconds"
-msgstr "секунд"
-
-#: ../inc/prefs.inc:199
-msgid "Swap space: use at most"
-msgstr "Віртуальна пам'ять: використовувати не більше"
-
-#: ../inc/prefs.inc:204
-msgid "Memory: when computer is in use, use at most"
-msgstr "Пам'ять: коли комп'ютер використовується, забирати не більше"
-
-#: ../inc/prefs.inc:209
-msgid "Memory: when computer is not in use, use at most"
-msgstr "Пам'ять: коли комп'ютер не використовується, забирати не більше"
-
-#: ../inc/prefs.inc:218
-msgid "Maintain enough tasks to keep busy for at least%1(max 10 days).%2"
-msgstr "Підтримувати достатній запас завдань для забезпечення роботи щонайменше %1(макс. 10 днів).%2"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:228 ../inc/prefs.inc:270
-#: ../inc/util.inc:274
-msgid "days"
-msgstr "днів"
-
-#: ../inc/prefs.inc:226
-msgid "... and up to an additional"
-msgstr "... і до додаткових"
-
-#: ../inc/prefs.inc:232
-msgid ""
-"Confirm before connecting to Internet? %1 Matters only if you have a modem, "
-"ISDN or VPN connection %2"
-msgstr "Підтверджувати підключення до Інтернету? %1 використовується тільки при наявності модемного, ISDN- або VPN-підключення %2"
-
-#: ../inc/prefs.inc:241
-msgid ""
-"Disconnect when done? %1 Matters only if you have a modem, ISDN or VPN "
-"connection %2"
-msgstr "Розірвати з'єднання після завершення? %1 використовується тільки при наявності модемного, ISDN- або VPN-підключення %2"
-
-#: ../inc/prefs.inc:249
-msgid "Maximum download rate:"
-msgstr "Максимальна швидкість завантаження:"
-
-#: ../inc/prefs.inc:251 ../inc/prefs.inc:256
-msgid "Kbytes/sec"
-msgstr "Кбайт/с"
-
-#: ../inc/prefs.inc:254
-msgid "Maximum upload rate:"
-msgstr "Максимальна швидкість відправлення:"
-
-#: ../inc/prefs.inc:259
-msgid "Use network only between the hours of"
-msgstr "Використовувати мережу тільки між зазначеними годинами"
-
-#: ../inc/prefs.inc:263
-msgid "Transfer at most %1 Enforced by version 6.10.46+ %2"
-msgstr "Передавати не більше %1 Починаючи з версії 6.10.46+ %2"
-
-#: ../inc/prefs.inc:269
-msgid "Mbytes every"
-msgstr "Мбайт кожні"
-
-#: ../inc/prefs.inc:274
-msgid ""
-"Skip image file verification? %1 Check this ONLY if your Internet provider "
-"modifies image files (UMTS does this, for example). %2 Skipping verification"
-" reduces the security of BOINC. %3"
-msgstr "Пропускати перевірку файлів зображень? %1 Позначте ТІЛЬКИ В ТОМУ ВИПАДКУ, якщо Ваш інтернет-провайдер змінює файли зображень (наприклад, це робить UMTS). %2 Пропуск перевірки зменшує безпеку BOINC. %3"
-
-#: ../inc/prefs.inc:287
-msgid ""
-"Resource share %1 Determines the proportion of your computer's resources "
-"allocated to this project. Example: if you participate in two BOINC projects"
-" with resource shares of 100 and 200, the first will get 1/3 of your "
-"resources and the second will get 2/3. %2"
-msgstr "Виділено ресурсів %1 Визначає пропорції ресурсів Вашого комп'ютера, виділених цьому проекту. Приклад: якщо Ви берете участь у двох проектах BOINC з частками ресурсів 100 і 200, перший отримає 1/3 Ваших ресурсів, а другий 2/3. %2"
-
-#: ../inc/prefs.inc:298
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "Прискорити обробку завдань за допомогою графічного процесора, використовуючи окремий процесор для кожного завдання?"
-
-#: ../inc/prefs.inc:308
-msgid "Use CPU %1 Enforced by version 6.10+ %2"
-msgstr "Використовувати процесор %1 починаючи з версії 6.10+ %2"
-
-#: ../inc/prefs.inc:320
-msgid "Use ATI GPU %1 Enforced by version 6.10+ %2"
-msgstr "Використовувати графічний процесор ATI %1 починаючи з версії 6.10+ %2"
-
-#: ../inc/prefs.inc:332
-msgid "Use NVIDIA GPU %1 Enforced by version 6.10+ %2"
-msgstr "Використовувати графічний процесор NVIDIA %1 починаючи з версії 6.10+ %2"
-
-#: ../inc/prefs.inc:344
-msgid "Use Intel GPU %1 Enforced by version 7.2+ %2"
-msgstr "Використовувати графічний процесор Intel %1 починаючи з версії 7.2+ %2"
-
-#: ../inc/prefs.inc:358
-msgid ""
-"Run test applications? %1 This helps us develop applications, but may cause "
-"jobs to fail on your computer %2"
-msgstr "Виконувати тестові додатки? %1 Це допоможе нам в їх розробці, але може привести до помилок в розрахунках завдань на Вашому комп'ютері %2"
-
-#: ../inc/prefs.inc:367
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "Електронні листи будуть відправлені з адреси %1; переконайтеся, що Ваш фільтр спаму приймає цю адресу."
-
-#: ../inc/prefs.inc:374
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "Чи можуть %1 і Ваша команда відправляти Вам електронні листи?"
-
-#: ../inc/prefs.inc:380
-msgid "Should %1 show your computers on its web site?"
-msgstr "Чи повинен %1 показувати Ваші комп'ютери на своєму веб-сайті?"
-
-#: ../inc/prefs.inc:387
-msgid "Disk and memory usage"
-msgstr "Використання диска і пам'яті"
-
-#: ../inc/prefs.inc:388
-msgid "Processor usage"
-msgstr "Використання процесора"
-
-#: ../inc/prefs.inc:389
-msgid "Network usage"
-msgstr "Використання мережі"
-
-#: ../inc/prefs.inc:392
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "Ці налаштування застосовуються до всіх проектів BOINC, в яких Ви приймаєте участь."
-
-#: ../inc/prefs.inc:395
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1Неможливо оновити налаштування.%2 Значення, відмічені червоним нижче, поза діапазоном або нечислові."
-
-#: ../inc/prefs.inc:445
-msgid "bad venue: %1"
-msgstr "неправильна конфігурація: %1"
-
-#: ../inc/prefs.inc:451
-msgid "bad subset: %1"
-msgstr "неправильний набір: %1"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1025
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:85
-msgid "yes"
-msgstr "так"
-
-#: ../inc/prefs.inc:671 ../inc/prefs.inc:674 ../inc/prefs.inc:1027
-#: ../inc/prefs_util.inc:93 ../project.sample/project_specific_prefs.inc:87
-msgid "no"
-msgstr "ні"
-
-#: ../inc/prefs.inc:679 ../user/forum_search.php:53
-msgid "no limit"
-msgstr "без обмежень"
-
-#: ../inc/prefs.inc:704 ../user/team_admins.php:79
-msgid "Add"
-msgstr "Додати"
-
-#: ../inc/prefs.inc:706 ../inc/prefs.inc:834
-#: ../user/edit_forum_preferences_form.php:160 ../user/team_admins.php:34
-msgid "Remove"
-msgstr "Видалити"
-
-#: ../inc/prefs.inc:812 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "Обчислення"
-
-#: ../inc/prefs.inc:823
-msgid "Separate preferences for %1"
-msgstr "Окремі налаштування для конфігурації %1"
-
-#: ../inc/prefs.inc:833 ../inc/prefs.inc:914
-msgid "Edit preferences"
-msgstr "Редагувати налаштування"
-
-#: ../inc/prefs.inc:839
-msgid "Add separate preferences for %1"
-msgstr "Додати окремі налаштування для конфігурації %1"
-
-#: ../inc/prefs.inc:847 ../inc/prefs.inc:895
-msgid "(Switch View)"
-msgstr "(Перемкнути вид)"
-
-#: ../inc/prefs.inc:849 ../inc/prefs.inc:898
-msgid "Combined preferences"
-msgstr "Об'єднані налаштування"
-
-#: ../inc/prefs.inc:854
-msgid "Project specific settings"
-msgstr "Особливі параметри проекту"
-
-#: ../inc/prefs.inc:862 ../inc/prefs.inc:907
-msgid "Primary (default) preferences"
-msgstr "Основні налаштування (за замовчуванням)"
-
-#: ../inc/prefs.inc:871 ../user/add_venue.php:39 ../user/add_venue.php:63
-#: ../user/prefs_edit.php:40 ../user/prefs_edit.php:64
-#: ../user/prefs_edit.php:92
-msgid "Edit %1 preferences"
-msgstr "Редагувати налаштування %1"
-
-#: ../inc/prefs.inc:885
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "Ці налаштування поширюються на всі проекти BOINC, в яких Ви приймаєте участь."
-
-#: ../inc/prefs.inc:887
-msgid ""
-"On computers participating in multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "На комп'ютерах, які приймають участь в декількох проектах, будуть використовуватися налаштування, які змінювались останніми."
-
-#: ../inc/prefs.inc:889
-msgid "These preferences do not apply to Android devices."
-msgstr "Ці налаштування не відносяться до пристроїв на базі Android."
-
-#: ../inc/prefs.inc:892
-msgid "Preferences last modified:"
-msgstr "Остання зміна налаштувань:"
-
-#: ../inc/prefs.inc:944
-msgid "Add preferences"
-msgstr "Додати налаштування"
-
-#: ../inc/prefs.inc:948
-msgid "Update preferences"
-msgstr "Оновити налаштування"
-
-#: ../inc/prefs.inc:1036 ../inc/prefs.inc:1045
-msgid "Default computer location"
-msgstr "Розміщення комп'ютера за замовчуванням"
-
-#: ../inc/prefs_util.inc:305 ../inc/prefs_util.inc:315
-msgid "and"
-msgstr "і"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "Ваш профіль стане видимим для інших людей коли буде схвалений проектом. На це може знадобитися кілька днів."
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "Ваш профіль був відзначений як неприпустимий. Інші люди його не бачать. Будь-ласка, змініть його."
-
-#: ../inc/profile.inc:172 ../user/friend.php:105 ../user/friend.php:172
-msgid "Database error"
-msgstr "Помилка бази даних"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "Для того, щоб запобігти спаму, профілі користувачів із середньою кількістю балів менше %1 показуються тільки користувачам, що увійшли. Ми перепрошуємо за цю незручність."
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "Користувач заблокований"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "Для користувача з цим ID профілю не існує ."
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:313
-msgid "Edit your profile"
-msgstr "Редагувати профіль"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "Ваш відгук на цей профіль"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "Рекомендувати цей профіль в якості Користувача дня :"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "Мені %1подобається%2 цей профіль"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "Попередити адміністраторів про образливий профіль:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "Мені %1не подобається%2 цей профіль"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "Анонімна платформа"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "Графічний процесор NVIDIA"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "Графічний процесор ATI"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Графічний процесор Intel"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "Немає у БД"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "очікування"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:60
-msgid "All"
-msgstr "Усе"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-msgid "In progress"
-msgstr "У процесі"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "В очікуванні перевірки"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "Перевірка не дала результату"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "Правильний"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "Неправильний"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "Помилка"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "Неактивний"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-msgid "Unsent"
-msgstr "Не відправлений"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "Завершений, очікує перевірки"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "Завершений і перевірений"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "Завершений, відмічений як неправильний"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "Завершений, неможливо перевірити"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "Завершений, перевірка неостаточна"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "Завершений, надто пізно для перевірки"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "Завершений"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "Не вдалося відправити"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "Скасований сервером"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "Не запущене до дати завершення - скасоване"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "Помилка при завантаженні"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "Помилка під час розрахунку"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "Помилка при відправленні"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "Перервано користувачем"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "Завантаження не вдалося"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "Час вийшов - відповіді немає"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "Не потрібно"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "Помилка перевірки"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "Втрачений"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "Завершено"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "Успіх"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "Помилка обчислень"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "Зайвий результат"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "Немає відповіді"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "Новий"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "Завантаження"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "Обробка"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "Помилка розрахунків"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "Відправлення"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "Готово"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "Первинний"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "Необов'язково"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "Помилка завдання - перевірка пропущена"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "Перевірено, але поки що немає згоди"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "Завдання повернене надто пізно для перевірки"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "Не вдалося відправити результат"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "Надто багато помилок (можливо помилка в ПЗ)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "Надто багато результатів (може бути недетермінованим)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "Надто багато результатів в цілому"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "WU скасований"
-
-#: ../inc/result.inc:322
-msgid "Unrecognized Error: %1"
-msgstr "Нерозпізнана помилка: %1"
-
-#: ../inc/result.inc:349
-msgid "Task name"
-msgstr "Назва завдання"
-
-#: ../inc/result.inc:349 ../inc/result.inc:354 ../inc/result.inc:357
-#: ../inc/result.inc:360
-msgid "click for details"
-msgstr "натисніть для деталей"
-
-#: ../inc/result.inc:349
-msgid "Show IDs"
-msgstr "Показати ID"
-
-#: ../inc/result.inc:354
-msgid "Show names"
-msgstr "Показати імена"
-
-#: ../inc/result.inc:357
-msgid "Task"
-msgstr "Завдання"
-
-#: ../inc/result.inc:360
-msgid "Work unit"
-msgstr "Задача"
-
-#: ../inc/result.inc:369
-msgid "Computer"
-msgstr "Комп'ютер"
-
-#: ../inc/result.inc:372 ../inc/result.inc:631
-msgid "Sent"
-msgstr "Відправлений"
-
-#: ../inc/result.inc:373
-msgid "Time reported<br />or deadline"
-msgstr "Час підтвердження<br />або крайній термін"
-
-#: ../inc/result.inc:374
-msgid "explain"
-msgstr "пояснити"
-
-#: ../inc/result.inc:376 ../user/server_status.php:241
-msgid "Status"
-msgstr "Статус"
-
-#: ../inc/result.inc:377
-msgid "Run time<br />(sec)"
-msgstr "Час виконання<br />(с)"
-
-#: ../inc/result.inc:378
-msgid "CPU time<br />(sec)"
-msgstr "Процесорний час<br />(с)"
-
-#: ../inc/result.inc:379 ../inc/result.inc:642
-msgid "Credit"
-msgstr "Бали"
-
-#: ../inc/result.inc:380 ../inc/result.inc:724
-msgid "Application"
-msgstr "Додаток"
-
-#: ../inc/result.inc:629
-msgid "Workunit"
-msgstr "Задача"
-
-#: ../inc/result.inc:632
-msgid "Received"
-msgstr "Отриманий"
-
-#: ../inc/result.inc:633
-msgid "Server state"
-msgstr "Стан сервера"
-
-#: ../inc/result.inc:634
-msgid "Outcome"
-msgstr "Результат виконання"
-
-#: ../inc/result.inc:635
-msgid "Client state"
-msgstr "Стан клієнта"
-
-#: ../inc/result.inc:636
-msgid "Exit status"
-msgstr "Статус виходу"
-
-#: ../inc/result.inc:638
-msgid "Report deadline"
-msgstr "Крайній термін звіту"
-
-#: ../inc/result.inc:639
-msgid "Run time"
-msgstr "Час виконання"
-
-#: ../inc/result.inc:640
-msgid "CPU time"
-msgstr "Процесорний час"
-
-#: ../inc/result.inc:641
-msgid "Validate state"
-msgstr "Стан перевірки"
-
-#: ../inc/result.inc:643
-msgid "Application version"
-msgstr "Версія додатку"
-
-#: ../inc/result.inc:656
-msgid "Output files"
-msgstr "Вихідні файли"
-
-#: ../inc/result.inc:659
-msgid "Stderr output"
-msgstr "Текст протоколу"
-
-#: ../inc/result.inc:706
-msgid "State"
-msgstr "Стан"
-
-#: ../inc/result.inc:747
-msgid "Task name:"
-msgstr "Назва завдання:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "Критерії пошуку (використовуйте один або декілька)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "Ключові слова"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "Знайти команди з цими словами в їх назвах або описах"
-
-#: ../inc/team.inc:43 ../inc/team.inc:122 ../inc/team.inc:233
-#: ../inc/team.inc:373 ../inc/team.inc:455 ../inc/user.inc:205
-#: ../inc/user.inc:317 ../user/account_finish.php:45
-#: ../user/create_account_form.php:98 ../user/edit_user_info_form.php:38
-#: ../user/profile_search_action.php:42 ../user/team_email_list.php:64
-#: ../user/team_search.php:72 ../user/top_users.php:63
-#: ../user/user_search.php:53 ../user/user_search.php:140
-msgid "Country"
-msgstr "Країна"
-
-#: ../inc/team.inc:49 ../inc/team.inc:453
-msgid "Type of team"
-msgstr "Тип команди"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "Показати тільки активні команди"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:76 ../user/user_search.php:70
-msgid "Search"
-msgstr "Знайти"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "Запрошений Вами, і крайній термін відповіді засновника пройшов."
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "Завершити передачу повноважень засновника"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "Запрошений Вами"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "крайній термін відповіді засновника %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:555 ../inc/user.inc:281
-#: ../inc/user.inc:371
-msgid "None"
-msgstr "Ні"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "Ініціювати запит"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "Відхилений"
-
-#: ../inc/team.inc:87
-msgid "Team info"
-msgstr "Інформація про команду"
-
-#: ../inc/team.inc:89 ../user/team_forum.php:70 ../user/team_search.php:69
-msgid "Description"
-msgstr "Опис"
-
-#: ../inc/team.inc:97
-msgid "Web site"
-msgstr "Веб-сайт"
-
-#: ../inc/team.inc:120
-msgid "Cross-project stats"
-msgstr "Об'єднана статистика за проектами"
-
-#: ../inc/team.inc:123 ../inc/team.inc:374 ../user/team_search.php:71
-msgid "Type"
-msgstr "Тип"
-
-#: ../inc/team.inc:127 ../user/team_manage.php:63
-msgid "Message board"
-msgstr "Дошка повідомлень"
-
-#: ../inc/team.inc:128 ../user/forum_forum.php:135 ../user/forum_index.php:93
-msgid "Threads"
-msgstr "Обговорення"
-
-#: ../inc/team.inc:136
-msgid "Join this team"
-msgstr "Приєднатися до цієї команди"
-
-#: ../inc/team.inc:137
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "Увага: якщо у Ваших налаштуваннях проекту встановлено 'відправляти повідомлення електронною поштою', приєднання до команди дає доступ її засновнику до Вашої адреси електронної пошти."
-
-#: ../inc/team.inc:140
-msgid "Not accepting new members"
-msgstr "Не приймати нових учасників"
-
-#: ../inc/team.inc:147
-msgid "Foundership change requested"
-msgstr "Запрошена зміна засновника"
-
-#: ../inc/team.inc:148
-msgid "Respond by %1"
-msgstr "Відповісти до %1"
-
-#: ../inc/team.inc:152
-msgid "Team foundership change"
-msgstr "Зміна засновника команди"
-
-#: ../inc/team.inc:156 ../inc/team.inc:359
-msgid "Members"
-msgstr "Учасники"
-
-#: ../inc/team.inc:157 ../inc/team.inc:254
-msgid "Founder"
-msgstr "Засновник"
-
-#: ../inc/team.inc:169
-msgid "Admins"
-msgstr "Адміністратори"
-
-#: ../inc/team.inc:184
-msgid "New members in last day"
-msgstr "Нові учасники за останній день"
-
-#: ../inc/team.inc:185
-msgid "Total members"
-msgstr "Всього учасників"
-
-#: ../inc/team.inc:185 ../inc/team.inc:186 ../inc/team.inc:187
-msgid "view"
-msgstr "Перегляд"
-
-#: ../inc/team.inc:186
-msgid "Active members"
-msgstr "Активних учасників"
-
-#: ../inc/team.inc:187
-msgid "Members with credit"
-msgstr "Учасників із заробленими балами"
-
-#: ../inc/team.inc:256
-msgid "Admin"
-msgstr "Адміністратор"
-
-#: ../inc/team.inc:277 ../user/forum_user_posts.php:122
-#: ../user/top_hosts.php:93 ../user/top_teams.php:121
-#: ../user/top_users.php:127
-msgid "Previous %1"
-msgstr "Попередні %1"
-
-#: ../inc/team.inc:281 ../user/forum_user_posts.php:131
-#: ../user/profile_search_action.php:61 ../user/top_hosts.php:98
-#: ../user/top_teams.php:126 ../user/top_users.php:132
-msgid "Next %1"
-msgstr "Наступні %1"
-
-#: ../inc/team.inc:289
-msgid "No such team."
-msgstr "Немає такої команди."
-
-#: ../inc/team.inc:302
-msgid "This operation requires foundership."
-msgstr "Ця операція вимагає прав засновника."
-
-#: ../inc/team.inc:326
-msgid "This operation requires team admin privileges"
-msgstr "Ця операція вимагає прав адміністратора команди"
-
-#: ../inc/team.inc:422
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "ПОПЕРЕДЖЕННЯ: це глобальна команда BOINC. Якщо Ви зтобите тут зміни, то вони будуть швидко перезаписані. Тому редагуйте %1глобальну команду BOINC%2."
-
-#: ../inc/team.inc:428
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1Примітка безпеки%2: якщо Ви створите команду, то Ваші налаштування проекту (частка ресурсів, графічні налаштування) будуть видимі для всіх."
-
-#: ../inc/team.inc:432
-msgid "Team name, text version"
-msgstr "Назва команди, текстова версія"
-
-#: ../inc/team.inc:433
-msgid "Don't use HTML tags."
-msgstr "Не використовувати теги HTML."
-
-#: ../inc/team.inc:436
-msgid "Team name, HTML version"
-msgstr "Назва команди, HTML версія"
-
-#: ../inc/team.inc:438 ../inc/team.inc:448
-msgid "You may use %1limited HTML tags%2."
-msgstr "Ви можете використовувати %1обмежені теги HTML%2."
-
-#: ../inc/team.inc:439
-msgid "If you don't know HTML, leave this box blank."
-msgstr "Якщо Ви не знаєте HTML, залиште це поле порожнім."
-
-#: ../inc/team.inc:442
-msgid "URL of team web page, if any"
-msgstr "Адреса веб-сторінки команди, якщо є"
-
-#: ../inc/team.inc:442
-msgid "without \"http://\""
-msgstr "без \"http://\""
-
-#: ../inc/team.inc:443
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "Ця адреса буде викликатися зі сторінки команди на цьому сайті."
-
-#: ../inc/team.inc:446
-msgid "Description of team"
-msgstr "Опис команди"
-
-#: ../inc/team.inc:462
-msgid "Accept new members?"
-msgstr "Приймати нових учасників?"
-
-#: ../inc/uotd.inc:28
-msgid "User profile"
-msgstr "Профіль користувача"
-
-#: ../inc/user.inc:119
-msgid "Projects in which you are participating"
-msgstr "Проекти, в яких Ви приймаєте участь"
-
-#: ../inc/user.inc:121
-msgid "Projects in which %1 is participating"
-msgstr "Проекти, в яких %1 приймає участь"
-
-#: ../inc/user.inc:125
-msgid "Project"
-msgstr "Проект"
-
-#: ../inc/user.inc:125
-msgid "Click for user page"
-msgstr "Натисніть, щоб перейти на сторінку користувача"
-
-#: ../inc/user.inc:125
-msgid "Since"
-msgstr "З"
-
-#: ../inc/user.inc:148
-msgid "Computing and credit"
-msgstr "Обчислення і бали"
-
-#: ../inc/user.inc:151
-msgid "Computers on this account"
-msgstr "Комп’ютери в цьому обліковому записі"
-
-#: ../inc/user.inc:151 ../inc/user.inc:152 ../inc/user.inc:217
-#: ../inc/user.inc:243 ../inc/user.inc:329 ../inc/user.inc:402
-#: ../user/view_profile.php:64
-msgid "View"
-msgstr "Перегляд"
-
-#: ../inc/user.inc:161
-msgid "Cross-project ID"
-msgstr "Міжпроектний ID (CPID)"
-
-#: ../inc/user.inc:162
-msgid "Cross-project statistics"
-msgstr "Об’єднана статистика за проектами"
-
-#: ../inc/user.inc:163
-msgid "Account"
-msgstr "Обліковий запис"
-
-#: ../inc/user.inc:165 ../inc/user.inc:281 ../inc/user.inc:369
-#: ../inc/user.inc:371 ../user/user_search.php:139
-msgid "Team"
-msgstr "Команда"
-
-#: ../inc/user.inc:167
-msgid "Cross-project"
-msgstr "Міжпроектний"
-
-#: ../inc/user.inc:168 ../user/bs_sample_index.php:54
-msgid "Certificate"
-msgstr "Сертифікат"
-
-#: ../inc/user.inc:169
-msgid "Stats on your cell phone"
-msgstr "Статистика на Вашому мобільному телефоні"
-
-#: ../inc/user.inc:183
-msgid "Unknown notification type: %1"
-msgstr "Невідомий тип повідомлення: %1"
-
-#: ../inc/user.inc:198
-msgid "Account information"
-msgstr "Облікова інформація"
-
-#: ../inc/user.inc:200 ../user/edit_passwd_form.php:45
-#: ../user/get_passwd.php:40 ../user/team_email_list.php:64
-msgid "Email address"
-msgstr "Адреса електронної пошти"
-
-#: ../inc/user.inc:203 ../inc/user.inc:322
-msgid "URL"
-msgstr "URL"
-
-#: ../inc/user.inc:206
-msgid "Postal code"
-msgstr "Поштовий індекс"
-
-#: ../inc/user.inc:207 ../inc/user.inc:316
-msgid "%1 member since"
-msgstr "Учасник %1 з"
-
-#: ../inc/user.inc:209
-msgid "Change"
-msgstr "Змінити"
-
-#: ../inc/user.inc:209
-msgid "email address"
-msgstr "Адреса електронної пошти"
-
-#: ../inc/user.inc:210
-msgid "password"
-msgstr "пароль"
-
-#: ../inc/user.inc:211
-msgid "other account info"
-msgstr "інша облікова інформація"
-
-#: ../inc/user.inc:213 ../inc/user.inc:315
-msgid "User ID"
-msgstr "ID користувача"
-
-#: ../inc/user.inc:213
-msgid "Used in community functions"
-msgstr "Використовується у функціях спільноти"
-
-#: ../inc/user.inc:216 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "Ключі облікового запису"
-
-#: ../inc/user.inc:221
-msgid "Preferences"
-msgstr "Налаштування"
-
-#: ../inc/user.inc:224
-msgid "When and how BOINC uses your computer"
-msgstr "Як і коли BOINC використовує Ваш комп’ютер"
-
-#: ../inc/user.inc:225
-msgid "Computing preferences"
-msgstr "Налаштування обчислень"
-
-#: ../inc/user.inc:228
-msgid "Message boards and private messages"
-msgstr "Дошка повідомлень або особисті повідомлення"
-
-#: ../inc/user.inc:229 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "Налаштування спільноти"
-
-#: ../inc/user.inc:232
-msgid "Preferences for this project"
-msgstr "Налаштування для цього проекту"
-
-#: ../inc/user.inc:233 ../user/prefs.php:29
-msgid "%1 preferences"
-msgstr "Налаштування %1"
-
-#: ../inc/user.inc:239 ../user/bs_sample_index.php:59
-#: ../user/sample_index.php:125
-msgid "Community"
-msgstr "Спільнота"
-
-#: ../inc/user.inc:243 ../user/pm.php:107 ../user/pm.php:147
-msgid "Delete"
-msgstr "Видалити"
-
-#: ../inc/user.inc:245
-msgid "Create"
-msgstr "Створити"
-
-#: ../inc/user.inc:247 ../inc/user.inc:402 ../inc/util.inc:514
-msgid "Profile"
-msgstr "Профіль"
-
-#: ../inc/user.inc:250 ../inc/user.inc:375
-msgid "%1 posts"
-msgstr "%1 повідомлень"
-
-#: ../inc/user.inc:262 ../user/edit_forum_preferences_form.php:51
-msgid "Notifications"
-msgstr "Сповіщення"
-
-#: ../inc/user.inc:269
-msgid "Quit team"
-msgstr "Вийти з команди"
-
-#: ../inc/user.inc:271 ../inc/user.inc:288
-msgid "Administer"
-msgstr "Керування"
-
-#: ../inc/user.inc:277 ../inc/user.inc:290
-msgid "(foundership change request pending)"
-msgstr "(запит на зміну засновника в очікуванні)"
-
-#: ../inc/user.inc:279
-msgid "Member of team"
-msgstr "Учасник команди"
-
-#: ../inc/user.inc:281
-msgid "find a team"
-msgstr "знайти команду"
-
-#: ../inc/user.inc:292
-msgid "Founder but not member of"
-msgstr "Засновник, але не учасник"
-
-#: ../inc/user.inc:298
-msgid "Find friends"
-msgstr "Знайти друзів"
-
-#: ../inc/user.inc:305 ../inc/user.inc:307 ../inc/user.inc:385
-#: ../inc/user.inc:387 ../inc/user.inc:396
-msgid "Friends"
-msgstr "Друзі"
-
-#: ../inc/user.inc:329 ../inc/user.inc:331 ../user/server_status.php:392
-msgid "Computers"
-msgstr "Комп’ютери"
-
-#: ../inc/user.inc:338
-msgid "Donor"
-msgstr "Донор"
-
-#: ../inc/user.inc:378
-msgid "Contact"
-msgstr "Контакт"
-
-#: ../inc/user.inc:381
-msgid "This person is a friend"
-msgstr "Ця особа є другом"
-
-#: ../inc/user.inc:382 ../user/friend.php:238
-msgid "Cancel friendship"
-msgstr "Припинити дружбу"
-
-#: ../inc/user.inc:385 ../user/friend.php:37
-msgid "Request pending"
-msgstr "Запит в очікуванні"
-
-#: ../inc/user.inc:387
-msgid "Add as friend"
-msgstr "Додати друга"
-
-#: ../inc/user.inc:446
-msgid "user name cannot have leading or trailing white space"
-msgstr "ім’я користувача не може містити пробілів на початку або вкінці"
-
-#: ../inc/user.inc:450
-msgid "user name must be nonempty"
-msgstr "ім’я користувача не може бути порожнім"
-
-#: ../inc/user.inc:454
-msgid "user name may not contain HTML tags"
-msgstr "ім’я користувача не може містити тегів HTML"
-
-#: ../inc/util.inc:131
-msgid "log out"
-msgstr "вийти"
-
-#: ../inc/util.inc:133
-msgid "log in"
-msgstr "увійти"
-
-#: ../inc/util.inc:204 ../user/login_form.php:30 ../user/login_form.php:66
-msgid "Log in"
-msgstr "Увійти"
-
-#: ../inc/util.inc:205 ../user/create_account_form.php:40
-msgid "Create an account"
-msgstr "Створення облікового запису"
-
-#: ../inc/util.inc:206
-msgid "Server status page"
-msgstr "Інформація про стан сервера"
-
-#: ../inc/util.inc:248
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "Сталася помилка бази даних під час обробки Вашого запиту; будь-ласка, спробуйте ще раз пізніше."
-
-#: ../inc/util.inc:257
-msgid "Unable to handle request"
-msgstr "Неможливо обробити запит"
-
-#: ../inc/util.inc:277
-msgid "hours"
-msgstr "годин"
-
-#: ../inc/util.inc:280
-msgid "min"
-msgstr "хвилин"
-
-#: ../inc/util.inc:283
-msgid "sec"
-msgstr "секунд"
-
-#: ../inc/util.inc:444
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "Посилання прострочена. Будь-ласка, натисніть Назад, оновіть сторінку і спробуйте ще раз."
-
-#: ../inc/util.inc:513
-msgid "View the profile of %1"
-msgstr "Переглянути профіль учасника %1"
-
-#: ../inc/util.inc:569
-msgid "Use BBCode tags to format your text"
-msgstr "Використовуйте теги BBCode для форматування свого тексту"
-
-#: ../inc/util.inc:796
-msgid "Project down for maintenance"
-msgstr "Проект зупинений для обслуговування"
-
-#: ../inc/util.inc:799
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 тимчасово зупинений для обслуговування.  Будь-ласка, спробуйте ще раз пізніше."
-
-#: ../inc/util.inc:817
-msgid "Unable to connect to database - please try again later"
-msgstr "Неможливо підключитися до бази даних - будь-ласка, спробуйте ще раз пізніше"
-
-#: ../inc/util.inc:821
-msgid "Unable to select database - please try again later"
-msgstr "Неможливо вибрати базу даних - будь-ласка, спробуйте ще раз пізніше"
-
-#: ../inc/util_ops.inc:109 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "Залишатися авторизованим на цьому комп’ютері"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "Завершення налаштування облікового запису"
-
-#: ../user/account_finish.php:41 ../user/create_account_form.php:79
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "Ідентифікує Вас на нашому веб-сайті. Введіть Ваше справжнє ім’я або псевдонім."
-
-#: ../user/account_finish.php:45 ../user/create_account_form.php:98
-msgid "Select the country you want to represent, if any."
-msgstr "Якщо хочете, виберіть країну, яку представляєте."
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Postal or ZIP Code"
-msgstr "Поштовий індекс або ZIP-код"
-
-#: ../user/account_finish.php:51 ../user/create_account_form.php:104
-msgid "Optional"
-msgstr "Необов’язково"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "Ви повинні вказати ім’я для своєї облікової інформації"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "Теги HTML недопустимі у Вашому імені"
-
-#: ../user/add_venue.php:81
-msgid "Add %1 preferences for %2"
-msgstr "Додати налаштування %1 для конфігурації %2"
-
-#: ../user/apps.php:32 ../user/bs_sample_index.php:55
-#: ../user/sample_index.php:120
-msgid "Applications"
-msgstr "Додатки"
-
-#: ../user/apps.php:33
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"work for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 на даний момент має наступні додатки. Коли Ви приймаєте участь у %1, Вашому комп’ютеру будуть призначені завдання для одного або декількох із цих додатків. На Ваш комп’ютер буде завантажена поточна версія додатку. Все це відбувається автоматично; Вам не потрібно нічого робити додатково."
-
-#: ../user/apps.php:50
-msgid "Platform"
-msgstr "Платформа"
-
-#: ../user/apps.php:51
-msgid "Version"
-msgstr "Версія"
-
-#: ../user/apps.php:52
-msgid "Installation time"
-msgstr "Час інсталяції"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "Теги BBCode"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "Теги BBCode дозволяють Вам форматувати текст у своєму профілі\nі у повідомленнях форуму. Вони схожі на HTML, тільки простіші. Теги починаються\nіз символу [ (замість %1 у HTML) і закінчуються символом ] (замість %2 у HTML)."
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "Приклади"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "Жирний"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "Похилий"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "Підкреслений"
-
-#: ../user/bbcode.php:35
-msgid "Superscript"
-msgstr "Супер скрипт"
-
-#: ../user/bbcode.php:36
-msgid "Big text"
-msgstr "Великий текст"
-
-#: ../user/bbcode.php:37
-msgid "Red text"
-msgstr "Червоний текст"
-
-#: ../user/bbcode.php:38
-msgid "link to website"
-msgstr "посилання на веб-сайт"
-
-#: ../user/bbcode.php:39
-msgid "Quoted text"
-msgstr "Цитований текст"
-
-#: ../user/bbcode.php:39
-msgid "use for quoted blocks of text"
-msgstr "використовується для цитування блоків тексту"
-
-#: ../user/bbcode.php:40
-msgid "use to display an image"
-msgstr "використовується для показу зображення"
-
-#: ../user/bbcode.php:41
-msgid "Code snippet here"
-msgstr "Тут фрагмент коду"
-
-#: ../user/bbcode.php:41
-msgid "use to display some code"
-msgstr "використовується для показу деякого коду"
-
-#: ../user/bbcode.php:42
-msgid "Pre-formatted text"
-msgstr "Відформатований текст"
-
-#: ../user/bbcode.php:42
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "використовується для показу попередньо відформатованого тексту (зазвичай моноширинного)"
-
-#: ../user/bbcode.php:43
-msgid "Item 1"
-msgstr "Елемент 1"
-
-#: ../user/bbcode.php:43
-msgid "Item2"
-msgstr "Елемент 2"
-
-#: ../user/bbcode.php:43
-msgid "Item 2"
-msgstr "Елемент 2"
-
-#: ../user/bbcode.php:45
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "посилання на білет в системі Trac на сайті BOINC"
-
-#: ../user/bbcode.php:47
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "посилання на статтю Wiki на сайті BOINC"
-
-#: ../user/bbcode.php:49
-msgid "use to link to SVN changeset on BOINC website"
-msgstr "посилання на SVN-мітку зміни на сайті BOINC"
-
-#: ../user/bbcode.php:53
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "Якщо Ви не закриєте тег або некоректно вкажете параметр,\nзамість відформатованого тексту буде показаний просто сам тег."
-
-#: ../user/bs_sample_index.php:44
-msgid "Participants"
-msgstr "Учасники"
-
-#: ../user/bs_sample_index.php:46
-msgid "Do work"
-msgstr "Працювати"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-#: ../user/home.php:49 ../project.sample/project.inc:43
-msgid "Your account"
-msgstr "Ваш обліковий запис"
-
-#: ../user/bs_sample_index.php:47 ../user/bs_sample_index.php:50
-msgid "view stats, modify preferences"
-msgstr "перегляд статистики, зміна налаштувань"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-#: ../user/team.php:25
-msgid "Teams"
-msgstr "Команди"
-
-#: ../user/bs_sample_index.php:48 ../user/bs_sample_index.php:53
-msgid "create or join a team"
-msgstr "створити або приєднатися до команди"
-
-#: ../user/bs_sample_index.php:51 ../user/sample_index.php:191
-msgid "User of the day"
-msgstr "Користувач дня"
-
-#: ../user/bs_sample_index.php:52 ../user/server_status.php:239
-msgid "Server status"
-msgstr "Статус сервера"
-
-#: ../user/bs_sample_index.php:60 ../user/profile_menu.php:32
-#: ../user/sample_index.php:127
-msgid "Profiles"
-msgstr "Профілі"
-
-#: ../user/bs_sample_index.php:61
-msgid "User search"
-msgstr "Пошук учасників"
-
-#: ../user/bs_sample_index.php:64
-msgid "Statistics"
-msgstr "Статистика"
-
-#: ../user/bs_sample_index.php:65 ../user/stats.php:30
-#: ../user/top_users.php:116
-msgid "Top participants"
-msgstr "Кращі учасники"
-
-#: ../user/bs_sample_index.php:66 ../user/stats.php:31
-msgid "Top computers"
-msgstr "Кращі комп’ютери"
-
-#: ../user/bs_sample_index.php:67 ../user/stats.php:32 ../user/team.php:46
-msgid "Top teams"
-msgstr "Кращі команди"
-
-#: ../user/bs_sample_index.php:68 ../user/gpu_list.php:182
-#: ../user/stats.php:33
-msgid "Top GPU models"
-msgstr "Кращі моделі графічних прискорювачів"
-
-#: ../user/bs_sample_index.php:70
-msgid "Languages"
-msgstr "Мови"
-
-#: ../user/bs_sample_index.php:149 ../user/info.php:24
-#: ../user/sample_index.php:79
-msgid "Read our rules and policies"
-msgstr "Прочитайте наші правила і політику"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "Не вдалося створити обліковий запис"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "Натисніть кнопку <b>Назад</b> Вашого браузера для того, щоб спробувати ще раз."
-
-#: ../user/create_account_action.php:47
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "Ваша відповідь reCAPTCHA була неправильною. Будь-ласка, спробуйте ще раз."
-
-#: ../user/create_account_action.php:70
-msgid "You must supply an invitation code to create an account."
-msgstr "Щоб створити обліковий запис, Ви повинні вказати запрошувальний код."
-
-#: ../user/create_account_action.php:73
-msgid "The invitation code you gave is not valid."
-msgstr "Вказаний Вами запрошувальний код не дійсний."
-
-#: ../user/create_account_action.php:84
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "Неправильна адреса електронної пошти: Ви повинні вказати правильну адресу у формі name at domain"
-
-#: ../user/create_account_action.php:88
-msgid "There's already an account with that email address."
-msgstr "Обліковий запис з такою адресою електронної пошти вже існує."
-
-#: ../user/create_account_action.php:94 ../user/edit_passwd_action.php:33
-msgid "New passwords are different"
-msgstr "Нові паролі відрізняються"
-
-#: ../user/create_account_action.php:101 ../user/edit_passwd_action.php:41
-msgid "Passwords may only include ASCII characters."
-msgstr "Паролі можуть містити тільки ASCII-символи."
-
-#: ../user/create_account_action.php:106 ../user/edit_passwd_action.php:45
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "Новий пароль надто короткий: мінімальна довжина пароля - %1 символів."
-
-#: ../user/create_account_action.php:127
-msgid "Couldn't create account"
-msgstr "Не вдалося створити обліковий запис"
-
-#: ../user/create_account_form.php:44
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "ПРИМІТКА: Якщо у Вас є Менеджер BOINC, не використовуйте цю форму. Просто запустіть BOINC, виберіть Додати проект, і введіть свою адресу електронної пошти і пароль."
-
-#: ../user/create_account_form.php:61
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "Цей обліковий запис буде відноситися до команди '%1' і буде мати налаштування проекту як у його засновника."
-
-#: ../user/create_account_form.php:73
-msgid "Invitation Code"
-msgstr "Запрошувальний код"
-
-#: ../user/create_account_form.php:73
-msgid "A valid invitation code is required to create an account."
-msgstr "Для створення облікового запису необхідний дійсний запрошувальний код."
-
-#: ../user/create_account_form.php:83
-msgid "Email Address"
-msgstr "Адреса електронної пошти"
-
-#: ../user/create_account_form.php:83
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "Повинна бути дійсною адресою у формі 'name at domain'."
-
-#: ../user/create_account_form.php:92 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "Пароль"
-
-#: ../user/create_account_form.php:93
-msgid "Must be at least %1 characters"
-msgstr "Повинно бути щонайменше %1 символів"
-
-#: ../user/create_account_form.php:96
-msgid "Confirm password"
-msgstr "Підтвердьте пароль"
-
-#: ../user/create_account_form.php:113
-msgid "Please enter the words shown in the image"
-msgstr "Будь-ласка, введіть слова, показані на картинці"
-
-#: ../user/create_account_form.php:119
-msgid "Create account"
-msgstr "Створити обліковий запис"
-
-#: ../user/create_profile.php:50
-msgid "Picture"
-msgstr "Фотографія"
-
-#: ../user/create_profile.php:64
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1 Фотографія Вашого профілю показана зліва."
-
-#: ../user/create_profile.php:66
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "Щоб замінити її, натисніть кнопку \"Огляд...\" і виберіть файл формату JPEG або PNG (розміром %1 або менше)."
-
-#: ../user/create_profile.php:69
-msgid "To remove it from your profile, check this box:"
-msgstr "Щоб видалити її з Вашого профілю, відмітьте галочкою:"
-
-#: ../user/create_profile.php:77
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "Якщо Ви хочете додати фотографію у свій профіль, натисніть кнопку \"Огляд...\" і виберіть файл формату JPEG або PNG. Будь-ласка, виберіть зображення розміром %1 або менше."
-
-#: ../user/create_profile.php:89
-msgid "Language"
-msgstr "Мова"
-
-#: ../user/create_profile.php:92
-msgid "Select the language in which your profile is written:"
-msgstr "Виберіть мову, якою написаний Ваш профіль:"
-
-#: ../user/create_profile.php:104
-msgid "Submit profile"
-msgstr "Збереження профілю"
-
-#: ../user/create_profile.php:110
-msgid "Please enter the words shown in the image."
-msgstr "Будь-ласка, введіть слова, показані на картинці."
-
-#: ../user/create_profile.php:115
-msgid "Create/edit profile"
-msgstr "Створити/редагувати профіль"
-
-#: ../user/create_profile.php:137
-msgid "The format of your uploaded image is not supported."
-msgstr "Формат Вашого завантаженого зображення не підтримується."
-
-#: ../user/create_profile.php:166
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "Ваш %1профіль%2 дозволяє Вам ділитися своєю думкою і інформацією про себе зі спільнотою %3."
-
-#: ../user/create_profile.php:213
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "Ваша відповідь ReCaptcha була неправильною.  Будь-ласка, спробуйте ще раз."
-
-#: ../user/create_profile.php:222
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Ваша перша відповідь була помічена як спам антиспам-системою Akismet.  Будь-ласка, змініть свій текст і спробуйте ще раз."
-
-#: ../user/create_profile.php:230
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "Ваша друга відповідь була помічена як спам антиспам-системою Akismet.  Будь-ласка, змініть свій текст і спробуйте ще раз."
-
-#: ../user/create_profile.php:246
-msgid "Your profile submission was empty."
-msgstr "Ваш профіль був пустий."
-
-#: ../user/create_profile.php:285
-msgid "Could not update the profile: database error"
-msgstr "Не вдалося оновити профіль: помилка бази даних"
-
-#: ../user/create_profile.php:297
-msgid "Could not create the profile: database error"
-msgstr "Не вдалося створити профіль: помилка бази даних"
-
-#: ../user/create_profile.php:302
-msgid "Profile saved"
-msgstr "Профіль збережено"
-
-#: ../user/create_profile.php:304
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "Вітаємо! Ваш профіль був успішно доданий в нашу базу."
-
-#: ../user/create_profile.php:306
-msgid "%1View your profile%2"
-msgstr "%1Перегляд Вашого профілю%2"
-
-#: ../user/create_profile.php:315
-msgid "Create a profile"
-msgstr "Створити профіль"
-
-#: ../user/create_profile.php:343
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "Для того, щоб створювати або редагувати профіль у Вас повинна бути середня кількість балів %1 або більше. Це зроблено з метою запобігання спаму.  Ми просимо вибачення за цю незручність."
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "Неможливо видалити обліковий запис"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "Обліковий запис видалений"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "Ваш обліковий запис був видалений."
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "Підтвердження видалення облікового запису"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "При видаленні Вашого облікового запису з наших серверів\nбуде видалена вся Ваша персональна інформація,\nвключаючи Ваш профіль і повідомлення з дошки повідомлень.\nКомп’ютери, підключені до цього облікового запису,\nне будуть отримувати нових завдань."
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "Ця операція не може бути відмінена.\nЯк тільки Ваш обліковий запис буде видалений, Ви не зможете його відновити."
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "Ви впевнені, що хочете видалити свій обліковий запис?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:52
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:238
-#: ../user/prefs_remove.php:52 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "Так"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "Видалити цей обліковий запис"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:53
-#: ../user/friend.php:239 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "Ні"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "Не видаляти цей обліковий запис"
-
-#: ../user/delete_profile.php:30
-msgid "couldn't delete profile - please try again later"
-msgstr "не вдалося видалити профіль - будь-ласка, спробуйте ще раз пізніше."
-
-#: ../user/delete_profile.php:33
-msgid "Delete Confirmation"
-msgstr "Підтвердження видалення"
-
-#: ../user/delete_profile.php:35
-msgid "Your profile has been deleted."
-msgstr "Ваш профіль було видалено."
-
-#: ../user/delete_profile.php:40
-msgid "Profile delete confirmation"
-msgstr "Підтвердження видаення профілю"
-
-#: ../user/delete_profile.php:43
-msgid "Are you sure?"
-msgstr "Ви впевнені?"
-
-#: ../user/delete_profile.php:44
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "Видалені профілі зникають назавжди і їх неможливо відновити --\nякщо Ви захочете в майбутньому зареєструвати інший профіль,\nВам доведеться вводити всі дані наново."
-
-#: ../user/delete_profile.php:48
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "Якщо Ви впевнені, натисніть 'так'\nдля видалення Вашого профілю з нашої бази даних."
-
-#: ../user/delete_profile.php:52
-msgid "Delete my profile"
-msgstr "Видалити мій профіль"
-
-#: ../user/delete_profile.php:53
-msgid "Do not delete my profile"
-msgstr "Не видаляти мій профіль"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - Транзакція завершена"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "Дякуємо за пожертву!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "Ваша пожертва була прийнята."
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "Ваша пожертва буде додана після підтвердження від PayPal."
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "Ви відмінили свою пожертву."
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "Цей проект не приймає пожертви."
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "Пожертва для %1"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "Цей проект приймає пожертви через\n%1."
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "Вкажіть в полі нижче величину, яку Ви бажаєте пожертвувати.\n        PayPal приймає різні валюти\n        (канадські долари, євро, фунти стерлінгів, долари США,\n         Єни, австралійські долари, новозеландські долари,\n        швейцарські франки, гонконзькі долари, сингапурські долари,\n        данські крони, польські злоті, норвезькі крони,\n        угорські форинти, чеські крони, шведські крони).\n        Ви можете використовувати вбудований конвертер валют\n        для того [...]
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "Кількість, яку Ви хочете пожертвувати"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "Орієнтовне значення у"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "Анонімна пожертва"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "Відмітьте, якщо Ви не хочете, щоб Ваше ім’я і номер облікового запису показувалися\nв списках пожертв.<br>Якщо не відмічено, Ви будете зареєстровані як користувач ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "Щоб пожертвувати під своїм обліковим записом, будь-ласка, авторизуйтесь."
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "Продовжити"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "Пожертвування прийняті через"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "Завантажити додаткове програмне забезпечення BOINC"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "Ви можете завантажити додатки різних категорій."
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "Ці додатки не підтверджені %1, і Ви використовуєте їх на свій страх і ризик."
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "Ми не надаємо інструкцій зі встановлення цих додатків.\nОднак, автор, можливо, надав деяку допомогу зі встановлення і видалення додатку.\nЯкщо цього недостатньо, Вам варто зв’язатися з автором."
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "Інструкції зі встановлення і запуску BOINC %1тут%2."
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "Цей список ведеться централізовано на %1веб-сайті BOINC%2."
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "Зміна адреси електронної пошти облікового запису"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "Нова адреса електронної пошти '%1' неправильна."
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "Нова адреса електронної пошти така ж, як і існуюча. Нічого не змінено."
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "З такою адресою електронної пошти обліковий запис уже є."
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "Неправильний пароль."
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "Адреса електронної пошти Вашого облікового запису тепер %1."
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "Будь-ласка, %1перевірте цю адресу електронної пошти%2."
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "Неможливо оновити Вашу адресу електронної пошти через проблеми з базою даних.  Будь-ласка, спробуйте ще раз пізніше."
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "Змінити адресу електронної пошти"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "Зміна адреси електронної пошти Вашого облікового запису"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "Нова адреса електронної пошти"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "Повинна бути дійсною адресою у формі 'name at domain'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "Немає паролю?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "Підтвердьте скидання"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "Ця дія зітре всі зміни, які Ви зробили у своїх налаштуваннях спільноти. Для скасування натисніть кнопку Назад у своєму браузері."
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "Скинути налаштування"
-
-#: ../user/edit_forum_preferences_action.php:88
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "Помилка: Неправильний тип файлу, підтримуються тільки PNG і JPEG."
-
-#: ../user/edit_forum_preferences_action.php:114
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "Ваш підпис надто довгий, будь-ласка, використовуйте не більше 250 символів."
-
-#: ../user/edit_forum_preferences_action.php:132
-#: ../user/edit_forum_preferences_action.php:146
-msgid "No such user: %1"
-msgstr "Немає такого користувача: %1"
-
-#: ../user/edit_forum_preferences_form.php:56
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "Як ми повинні повідомляти Вас про нові приватні повідомлення, запити на дружбу, повідомлення у підписаних обговореннях і про інші події?"
-
-#: ../user/edit_forum_preferences_form.php:57
-msgid "On my Account page (no email)"
-msgstr "На моїй сторінці облікового запису (без електронної пошти)"
-
-#: ../user/edit_forum_preferences_form.php:58
-msgid "Immediately, by email"
-msgstr "Негайно, електронною поштою"
-
-#: ../user/edit_forum_preferences_form.php:59
-msgid "In a single daily email"
-msgstr "Щоденно одним листом електронною поштою"
-
-#: ../user/edit_forum_preferences_form.php:75
-msgid "Message-board identity"
-msgstr "Ідентифікація у дошці повідомлень"
-
-#: ../user/edit_forum_preferences_form.php:76
-msgid "Avatar"
-msgstr "Аватар"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "An image representing you on the message boards."
-msgstr "Зображення, яке представляє Вас на дошці повідомлень."
-
-#: ../user/edit_forum_preferences_form.php:78
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "Формат: JPG або PNG. Розмір: не більше 4 Кб, 100x100 пікселів."
-
-#: ../user/edit_forum_preferences_form.php:80
-msgid "Don't use an avatar"
-msgstr "Не використовувати аватар"
-
-#: ../user/edit_forum_preferences_form.php:82
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "Використовувати Глобально визнаний аватар, наданий %1"
-
-#: ../user/edit_forum_preferences_form.php:84
-msgid "Use this uploaded avatar:"
-msgstr "Використовувати цей завантажений аватар:"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "Avatar preview"
-msgstr "Попередній перегляд аватару"
-
-#: ../user/edit_forum_preferences_form.php:87
-msgid "This is how your avatar will look"
-msgstr "Так буде виглядати Ваш аватар"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature for message board posts"
-msgstr "Підпис для повідомлень на дошці повідомлень"
-
-#: ../user/edit_forum_preferences_form.php:99
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "Перевірте %1різні безкоштовні сервіси%2,\n<br> що надають динамічні 'зображення для підпису',\n<br> що показують останню інформацію про Ваші бали, новини проектів, і т.д."
-
-#: ../user/edit_forum_preferences_form.php:104
-msgid "characters remaining"
-msgstr "залишилось символів"
-
-#: ../user/edit_forum_preferences_form.php:105
-msgid "Attach signature by default"
-msgstr "Підключати підпис за замовчуванням"
-
-#: ../user/edit_forum_preferences_form.php:108
-msgid "Signature preview"
-msgstr "Попередній перегляд підпису"
-
-#: ../user/edit_forum_preferences_form.php:109
-msgid "This is how your signature will look in the forums"
-msgstr "Так буде виглядати Ваш підпис на форумах"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "Message display"
-msgstr "Показ повідомлень"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "What to display"
-msgstr "Що показувати"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Hide avatar images"
-msgstr "Приховати зображення аватарів"
-
-#: ../user/edit_forum_preferences_form.php:131
-msgid "Hide signatures"
-msgstr "Приховати підписи"
-
-#: ../user/edit_forum_preferences_form.php:132
-msgid "Show images as links"
-msgstr "Показати зображення як посилання"
-
-#: ../user/edit_forum_preferences_form.php:133
-msgid "Open links in new window/tab"
-msgstr "Відкрити посилання в новому вікні/вкладці"
-
-#: ../user/edit_forum_preferences_form.php:134
-msgid "Highlight special users"
-msgstr "Підсвітити спеціальних користувачів"
-
-#: ../user/edit_forum_preferences_form.php:135
-msgid "Display this many messages per page"
-msgstr "Показати вказану кількість повідомлень на сторінці"
-
-#: ../user/edit_forum_preferences_form.php:139
-msgid "How to sort"
-msgstr "Як сортувати"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Threads:"
-msgstr "Обговорення:"
-
-#: ../user/edit_forum_preferences_form.php:140
-msgid "Posts:"
-msgstr "Повідомлення:"
-
-#: ../user/edit_forum_preferences_form.php:141
-msgid "Jump to first new post in thread automatically"
-msgstr "Автоматично переміститися до першого нового повідомлення в обговоренні"
-
-#: ../user/edit_forum_preferences_form.php:142
-msgid "Don't move sticky posts to top"
-msgstr "Не переміщувати закріплені повідомлення наверх"
-
-#: ../user/edit_forum_preferences_form.php:148
-msgid "Message filtering"
-msgstr "Фільтрування повідомлень"
-
-#: ../user/edit_forum_preferences_form.php:164
-msgid "Filtered users"
-msgstr "Фільтровані користувачі"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Ignore message board posts and private messages from these users."
-msgstr "Ігнорування повідомлень від цих користувачів як на дошці повідомлень, так і приватних."
-
-#: ../user/edit_forum_preferences_form.php:167
-msgid "User ID (For instance: 123456789)"
-msgstr "ID користувача (Наприклад: 123456789)"
-
-#: ../user/edit_forum_preferences_form.php:168 ../user/pm.php:251
-msgid "Add user to filter"
-msgstr "Додати користувача у фільтр"
-
-#: ../user/edit_forum_preferences_form.php:173
-msgid "Click here to update preferences"
-msgstr "Натисніть тут, щоб оновити налаштування"
-
-#: ../user/edit_forum_preferences_form.php:175
-#: ../user/edit_forum_preferences_form.php:177
-msgid "Reset"
-msgstr "Скинути"
-
-#: ../user/edit_forum_preferences_form.php:176
-msgid "Or click here to reset preferences to the defaults"
-msgstr "Або натисніть тут, щоб скинути налаштування до параметрів за замовчуванням"
-
-#: ../user/edit_passwd_action.php:50
-msgid "Invalid account key"
-msgstr "Неправильний ключ облікового запису"
-
-#: ../user/edit_passwd_action.php:55
-msgid "No account with that email address was found"
-msgstr "Не знайдено облікового запису з такою адресою електронної пошти"
-
-#: ../user/edit_passwd_action.php:59
-msgid "Invalid password"
-msgstr "Неправильний пароль"
-
-#: ../user/edit_passwd_action.php:63 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:55
-msgid "Change password"
-msgstr "Змінити пароль"
-
-#: ../user/edit_passwd_action.php:67
-msgid "Your password has been changed."
-msgstr "Ваш пароль було змінено"
-
-#: ../user/edit_passwd_action.php:69
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "Неможливо оновити Ваш пароль через проблеми з базою даних. Будь-ласка, спробуйте ще раз пізніше."
-
-#: ../user/edit_passwd_form.php:39
-msgid "You can identify yourself using either"
-msgstr "Ви можете ідентифікувати себе використовуючи"
-
-#: ../user/edit_passwd_form.php:41
-msgid "your email address and old password"
-msgstr "Ваша адреса електронної пошти і старий пароль"
-
-#: ../user/edit_passwd_form.php:42
-msgid "your account key"
-msgstr "Ваш ключ облікового запису"
-
-#: ../user/edit_passwd_form.php:46
-msgid "Current password"
-msgstr "Поточний пароль"
-
-#: ../user/edit_passwd_form.php:48
-msgid "<b>OR</b>: Account key"
-msgstr "<b>АБО</b>: Ключ облікового запису"
-
-#: ../user/edit_passwd_form.php:49
-msgid "Get account key by email"
-msgstr "Отримати ключ облікового запису електронною поштою"
-
-#: ../user/edit_passwd_form.php:53
-msgid "New password"
-msgstr "Новий пароль"
-
-#: ../user/edit_passwd_form.php:54
-msgid "New password, again"
-msgstr "Новий пароль, ще раз"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "У Вашому імені теги HTML неприпустимі."
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "Ви повинні вказати ім’я для Вашого облікового запису."
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "Неможливо оновити інформацію про користувача."
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "Редагувати інформацію облікового запису"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "Ім’я %1 справжнє ім’я або псевдонім%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "URL %1 Вашої веб-сторінки; необов’язково%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "Поштовий (ZIP) індекс %1 необов’язково%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "Оновити інформацію"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "Стан сервера"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "Поле завдання <b>стан сервера</b> показує, чи було завдання відправлене на комп’ютер, і якщо так, чи було воно ним завершене. Можливі значення:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "Завдання не готове до відправлення (наприклад, тому що його вхідні файли недоступні)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "Завдання готове до відправлення, але ще не було відправлене."
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "В процесі"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "Завдання було відправлене; очікує завершення."
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "Завдання було відправлене на комп’ютер, і або воно було протерміноване, або комп’ютер повідомив про його завершення."
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "Результати"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "Поле завдання <b>результат</b> визначене, якщо його стан сервера рівний <b>завершено</b>. Можливі значення:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "Завдання було відправлене на комп’ютер, але він ще не завершив роботу і не повідомив про результат."
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "Комп’ютер завершив завдання і повідомив про успіх."
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "Сервер не зміг відправити завдання на комп’ютер (можливо через те, що його вимоги до ресурсів були надто великими)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "Помилка клієнта"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "Завдання було відправлене на комп’ютер і сталася помилка."
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "Завдання було відправлене на комп’ютер і за відведений час не було отримано відповіді"
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "Завдання не було відправлене на комп’ютер, оскільки була завершена достатня кількість інших завдань для цієї задачі."
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "Було повідомлено про завершення завдання, але його не вдалося перевірити, зазвичай через те, що вхідні файли було втрачено на сервері."
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "Стан клієнта"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "Поле завдання <b>стан клієнта</b> показує стадію обробки, на якій відбулася помилка."
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "Комп’ютер ще не завершив завдання."
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "Комп’ютер успішно завершив завдання."
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "Комп’ютер не зміг завантажити додаток або вхідні файли."
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "Під час обчислень сталася помилка."
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "Комп’ютер не зміг вивантажити вихідні файли."
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "Час підтвердження і крайній термін"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "Поле завдання <b>Час підтвердження або крайній термін</b> залежить від того, чи було повідомлено про завершення завдання:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "Уже повідомлено"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "Дата/час, коли було повідомлено"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "Ще не повідомлено, крайній термін в майбутньому"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "Крайній термін, показаний зеленим."
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "Ще не повідомлено, крайній термін в минулому"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "Крайній термін, показаний червоним."
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "Невідоме поле"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "Попередній перегляд електронного листа"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "Ваш лист буде виглядати наступним чином:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "Відправити листа"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "Використовуйте кнопку Назад Вашого браузера для того, щоб повернутися до форми повідомлення"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "Відправлення електронних листів"
-
-#: ../user/ffmail_action.php:84
-msgid "email sent successfully to %1"
-msgstr "листа успішно відправлено для %1"
-
-#: ../user/ffmail_action.php:86
-msgid "failed to send email to %1: %2"
-msgstr "не вдалося відправити листа для %1: %2"
-
-#: ../user/ffmail_action.php:92
-msgid "Thanks for telling your friends about %1"
-msgstr "Дякуємо, що Ви розповіли своїм друзям про %1"
-
-#: ../user/ffmail_action.php:94
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "Ви забули ввести імена і/або адреси електронної пошти Ваших друзів; будь-ласка, %1поверніться у форму%2 і зробіть це."
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "Цей проект не створив електронне повідомлення - будь ласка, повідомте своїх адміністраторів"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "Розкажіть своїм друзям про %1"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "Допоможіть нам, розкажіть своїм друзям, сім’ї і співробітникам про %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "Заповніть цю форму іменами і адресами електронної пошти людей, які, на Вашу думку, можуть бути зацікавленими у %1. Ми відправимо їм листа від Вашого імені, і якщо Ви забажаєте, то можете додати своє повідомлення."
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "Ваше ім’я:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "Ваша адреса електронної пошти:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "Ім’я друга:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "Адреса електронної пошти друга:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "Додаткове повідомлення (необов’язково)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "Відправити"
-
-#: ../user/forum_banishment_vote.php:35
-#: ../user/forum_banishment_vote_action.php:33
-msgid "You are not authorized to banish users."
-msgstr "У Вас немає прав для блокування користувачів."
-
-#: ../user/forum_banishment_vote.php:41 ../user/forum_banishment_vote.php:46
-msgid "Banishment Vote"
-msgstr "Голосування за блокування"
-
-#: ../user/forum_banishment_vote.php:50
-msgid "No user with this ID found."
-msgstr "Користувача з цим ID не знайдено."
-
-#: ../user/forum_banishment_vote.php:54 ../user/forum_moderate_post.php:76
-msgid "User is already banished"
-msgstr "Користувач уже заблокований"
-
-#: ../user/forum_banishment_vote.php:59 ../user/forum_moderate_post.php:79
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "Ви справді хочете заблокувати %1?<br/>%1 не зможе публікувати повідомлення протягом вибраного періоду.<br/>Заблокуйте %1 тільки якщо він(вона) регулярно поводить себе як троль."
-
-#: ../user/forum_banishment_vote.php:61
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "Виберіть категорію причини, при необхідності напишіть більш детальний опис того, чому користувач повинен бути заблокований."
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_thread.php:50
-msgid "Category"
-msgstr "Категорія"
-
-#: ../user/forum_banishment_vote.php:64
-#: ../user/forum_banishment_vote_action.php:57
-#: ../user/forum_moderate_post.php:55 ../user/forum_moderate_thread.php:52
-msgid "Obscene"
-msgstr "Непристойне"
-
-#: ../user/forum_banishment_vote.php:65
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:56 ../user/forum_moderate_thread.php:53
-msgid "Flame/Hate mail"
-msgstr "Флейм/Ненависть/Погрози"
-
-#: ../user/forum_banishment_vote.php:66
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59
-msgid "User Request"
-msgstr "Користувацький запит"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:55
-msgid "Other"
-msgstr "Інше"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_post.php:53
-#: ../user/forum_moderate_thread.php:85
-msgid "Reason"
-msgstr "Причина"
-
-#: ../user/forum_banishment_vote.php:69 ../user/forum_moderate_thread.php:85
-msgid "Mailed if nonempty"
-msgstr "Буде відправлено якщо заповнено"
-
-#: ../user/forum_banishment_vote.php:74
-msgid "Proceed with vote"
-msgstr "Продовжити голосування"
-
-#: ../user/forum_banishment_vote_action.php:39
-#: ../user/forum_moderate_post_action.php:63
-msgid "You must specify an action..."
-msgstr "Ви повинні вказати дію..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "Ви більше не можете редагувати це повідомлення.<br/>Повідомлення можуть бути відредаговані максимум %1 хвилин після того, як вони були створені."
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "У Вас немає прав для редагування цього повідомлення."
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:72
-msgid "Forum"
-msgstr "Форум"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "Редагування повідомлення"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:109 ../user/forum_post.php:111
-#: ../user/team_forum.php:69
-msgid "Title"
-msgstr "Тема"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:129
-msgid "Add my signature to this post"
-msgstr "Додати мій підпис до цього повідомлення"
-
-#: ../user/forum_forum.php:41
-msgid "Not visible to you"
-msgstr "Невидимий для Вас"
-
-#: ../user/forum_forum.php:80
-msgid "Team message board for %1"
-msgstr "Дошка повідомлень команди %1"
-
-#: ../user/forum_forum.php:96
-msgid "New thread"
-msgstr "Нове обговорення"
-
-#: ../user/forum_forum.php:96
-msgid "Add a new thread to this forum"
-msgstr "Додати нове обговорення в цей форум"
-
-#: ../user/forum_forum.php:116
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "Ця дошка повідомлень доступна у форматі %1стрічки RSS%2"
-
-#: ../user/forum_forum.php:174
-msgid "This thread is hidden"
-msgstr "Це обговорення приховане"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "Це обговорення закріплене і заблоковане, і Ви його ще не прочитали"
-
-#: ../user/forum_forum.php:178
-msgid "sticky/locked/unread"
-msgstr "закріплено/заблоковано/не прочитано"
-
-#: ../user/forum_forum.php:180
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "Це обговорення закріплене і Ви його ще не прочитали"
-
-#: ../user/forum_forum.php:180
-msgid "sticky/unread"
-msgstr "закріплено/не прочитано"
-
-#: ../user/forum_forum.php:184
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "Ви ще не прочитали це обговорення, і воно заблоковане"
-
-#: ../user/forum_forum.php:184
-msgid "unread/locked"
-msgstr "не прочитано/заблоковано"
-
-#: ../user/forum_forum.php:186
-msgid "You haven't read this thread yet"
-msgstr "Ви ще не прочитали це обговорення"
-
-#: ../user/forum_forum.php:192
-msgid "This thread is sticky and locked"
-msgstr "Це обговорення закріплене і заблоковане"
-
-#: ../user/forum_forum.php:192
-msgid "sticky/locked"
-msgstr "закріплено/заблоковано"
-
-#: ../user/forum_forum.php:194
-msgid "This thread is sticky"
-msgstr "Це обговорення закріплене"
-
-#: ../user/forum_forum.php:194
-msgid "sticky"
-msgstr "закріплено"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is locked"
-msgstr "Це обговорення заблоковане"
-
-#: ../user/forum_forum.php:198
-msgid "locked"
-msgstr "заблоковано"
-
-#: ../user/forum_forum.php:200
-msgid "You read this thread"
-msgstr "Ви читаєте це обговорення"
-
-#: ../user/forum_forum.php:200
-msgid "read"
-msgstr "читається"
-
-#: ../user/forum_help_desk.php:27
-msgid "Questions and answers"
-msgstr "Питання і відповіді"
-
-#: ../user/forum_help_desk.php:30
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "Спілкуйтесь з волонтерами напряму через Skype, будь-якою із декількох мов. Скористайтесь %1гарячою лінією BOINC%2."
-
-#: ../user/forum_help_desk.php:44 ../user/forum_index.php:92
-msgid "Topic"
-msgstr "Тема"
-
-#: ../user/forum_help_desk.php:45
-msgid "Questions"
-msgstr "Питання"
-
-#: ../user/forum_index.php:53 ../user/team_forum.php:68
-msgid "Discussion among members of %1"
-msgstr "Обговорення серед учасників команди %1"
-
-#: ../user/forum_index.php:69
-msgid "%1 Message boards"
-msgstr "Дошка повідомлень %1"
-
-#: ../user/forum_index.php:78
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "Якщо у Вас є питання або проблема, будь-ласка, скористайтесь розділом %1Питання і відповіді%2 цієї дошки повідомлень."
-
-#: ../user/forum_index.php:123
-msgid "Subscribed threads"
-msgstr "Підписані обговорення"
-
-#: ../user/forum_moderate_post.php:43
-msgid "Moderate post"
-msgstr "Модерація повідомлення"
-
-#: ../user/forum_moderate_post.php:52
-msgid "Hide post"
-msgstr "Приховати повідомлення"
-
-#: ../user/forum_moderate_post.php:57 ../user/forum_moderate_thread.php:54
-msgid "Commercial spam"
-msgstr "Комерційний спам"
-
-#: ../user/forum_moderate_post.php:58
-msgid "Doublepost"
-msgstr "Дублікат"
-
-#: ../user/forum_moderate_post.php:63
-msgid "Move post"
-msgstr "Перемістити повідомлення"
-
-#: ../user/forum_moderate_post.php:65
-msgid "Destination thread ID:"
-msgstr "ID цільового обговорення:"
-
-#: ../user/forum_moderate_post.php:78
-msgid "Banish user"
-msgstr "Заблокувати користувача"
-
-#: ../user/forum_moderate_post.php:80
-msgid "Ban duration"
-msgstr "Період блокування"
-
-#: ../user/forum_moderate_post.php:81
-msgid "4 hours"
-msgstr "4 години"
-
-#: ../user/forum_moderate_post.php:82 ../user/forum_search.php:45
-msgid "1 day"
-msgstr "1 день"
-
-#: ../user/forum_moderate_post.php:83
-msgid "1 week"
-msgstr "1 тиждень"
-
-#: ../user/forum_moderate_post.php:84
-msgid "2 weeks"
-msgstr "2 тижні"
-
-#: ../user/forum_moderate_post.php:85
-msgid "1 month"
-msgstr "1 місяць"
-
-#: ../user/forum_moderate_post.php:86
-msgid "Forever"
-msgstr "Назавжди"
-
-#: ../user/forum_moderate_post.php:96
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "Додаткове обговорення %1 Буде включене в електронний лист користувачу.%2"
-
-#: ../user/forum_moderate_post.php:101 ../user/forum_moderate_thread.php:91
-#: ../user/forum_post.php:130 ../user/forum_report_post.php:85
-#: ../user/forum_rss.php:55 ../user/friend.php:81 ../user/get_passwd.php:41
-#: ../user/get_passwd.php:75
-msgid "OK"
-msgstr "Гаразд"
-
-#: ../user/forum_moderate_post_action.php:57
-msgid "You are not authorized to moderate this post."
-msgstr "У Вас немає прав на модерацію цього повідомлення."
-
-#: ../user/forum_moderate_post_action.php:85
-msgid "Can't move to different category type"
-msgstr "Не вдалося перемістити в інший тип категорії"
-
-#: ../user/forum_moderate_post_action.php:89
-msgid "Can't move to different category"
-msgstr "Не вдалось перемістити в іншу категорію"
-
-#: ../user/forum_moderate_post_action.php:110
-msgid "Not authorized to banish users"
-msgstr "Немає прав на блокування користувачів"
-
-#: ../user/forum_moderate_post_action.php:126
-msgid "Banishment"
-msgstr "Блокування"
-
-#: ../user/forum_moderate_post_action.php:128
-msgid "User %1 has been banished."
-msgstr "Користувач %1 був заблокований."
-
-#: ../user/forum_moderate_post_action.php:131
-msgid "Action failed: possible database problem"
-msgstr "Дія не вдалась: можливі проблеми з базою даних"
-
-#: ../user/forum_moderate_thread.php:33
-msgid "not authorized"
-msgstr "немає прав"
-
-#: ../user/forum_moderate_thread.php:36
-msgid "Moderate thread '%1'"
-msgstr "Модерація обговорення '%1'"
-
-#: ../user/forum_moderate_thread.php:48
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "Виберіть категорію причини або напишіть детальний опис, чому Ви приховуєте чи блокуєте це обговорення; потім натисніть Гаразд."
-
-#: ../user/forum_moderate_thread.php:72
-msgid "Current forum"
-msgstr "Поточний форум"
-
-#: ../user/forum_moderate_thread.php:73
-msgid "Destination forum"
-msgstr "Форум-ціль"
-
-#: ../user/forum_moderate_thread.php:77
-msgid "New title:"
-msgstr "Нова назва:"
-
-#: ../user/forum_post.php:40
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "Створювати тут обговорення можуть тільки адміністратори проекту. Проте Ви можете відповідати в існуючих обговореннях."
-
-#: ../user/forum_post.php:60
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Ваше повідомлення було помічене як спам антиспам-системою Akismet. Будь-ласка, змініть свій текст і спробуйте знову."
-
-#: ../user/forum_post.php:70
-msgid "Create new thread"
-msgstr "Створення нового обговорення"
-
-#: ../user/forum_post.php:100
-msgid "Create a new thread"
-msgstr "Створення нового обговорення"
-
-#: ../user/forum_post.php:105
-msgid "Remember to add a title"
-msgstr "Не забудьте додати назву"
-
-#: ../user/forum_post.php:127
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "Показати цей елемент як Сповіщення в менеджері BOINC"
-
-#: ../user/forum_post.php:127
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "Відмітьте, тільки якщо цей елемент буде цікавий всім волонтерам."
-
-#: ../user/forum_rate.php:26
-msgid "Rating offline"
-msgstr "Рейтинги відключені"
-
-#: ../user/forum_rate.php:27
-msgid "This function is turned off by the project"
-msgstr "Ця функція відключена проектом"
-
-#: ../user/forum_rate.php:58
-msgid "You need more average or total credit to rate a post."
-msgstr "Для того, щоб оцінити повідомлення, у Вас повинна бути більшою середня або загальна кількість балів."
-
-#: ../user/forum_rate.php:62
-msgid "You have already rated this post."
-msgstr "Ви вже оцінили це повідомлення."
-
-#: ../user/forum_rate.php:62 ../user/forum_rate.php:78
-#: ../user/forum_rate.php:83 ../user/forum_report_post.php:69
-#: ../user/forum_report_post.php:94 ../user/forum_subscribe.php:54
-#: ../user/forum_subscribe.php:69 ../user/forum_thread_status.php:51
-msgid "Return to thread"
-msgstr "Повернутися до обговорення"
-
-#: ../user/forum_rate.php:72
-msgid "Input Recorded"
-msgstr "Ввід прийнятий"
-
-#: ../user/forum_rate.php:73
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "Ваша оцінка була прийнята. Дякуємо за поміч."
-
-#: ../user/forum_rate.php:75
-msgid "Vote Registered"
-msgstr "Голос прийнятий"
-
-#: ../user/forum_rate.php:76
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "Ваша оцінка була прийнята. Дякуємо."
-
-#: ../user/forum_rate.php:80
-msgid "Vote Submission Problem"
-msgstr "Проблема підсистеми голосування"
-
-#: ../user/forum_reply.php:73
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "Ваше повідомлення було відмічене як спам антиспам-системою Akismet. Будь-ласка, змініть свій текст і спробуйте ще раз."
-
-#: ../user/forum_reply.php:88 ../user/forum_thread.php:158
-#: ../user/forum_thread.php:274
-msgid "Post to thread"
-msgstr "Відповісти на обговорення"
-
-#: ../user/forum_reply.php:137
-msgid "Message:"
-msgstr "Повідомлення:"
-
-#: ../user/forum_reply.php:140
-msgid "reply to %1Message ID%2:"
-msgstr "відповідь на %1повідомлення ID%2:"
-
-#: ../user/forum_reply.php:166
-msgid "Post reply"
-msgstr "Відправити відповідь"
-
-#: ../user/forum_reply.php:169
-msgid "Add my signature to this reply"
-msgstr "Додати мій підпис до цієї відповіді"
-
-#: ../user/forum_report_post.php:45
-msgid "You need more average or total credit to report a post."
-msgstr "У Вас повинна бути більша середня або загальна кількість балів для того, щоб поскаржитися на це повідомлення."
-
-#: ../user/forum_report_post.php:65
-msgid "Report Registered"
-msgstr "Звернення зареєстроване"
-
-#: ../user/forum_report_post.php:66
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "Ваше звернення було записане. Дякуємо за допомогу."
-
-#: ../user/forum_report_post.php:67
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "Модератор незабаром перегляне Ваше звернення і вирішить, що робити далі - це може зайняти деякий час, тому будьте терпеливими"
-
-#: ../user/forum_report_post.php:71
-msgid "Report a forum post"
-msgstr "Попередити про повідомлення на форумі"
-
-#: ../user/forum_report_post.php:73
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "Перш ніж попередити про це повідомлення, спробуйте замість цього використати +/- систему оцінок. Якщо достатня кількість користувачів негативно оцінить повідомлення, воно зрештою буде приховане.<br />Ви можете знайти систему оцінок в нижній частині повідомлення."
-
-#: ../user/forum_report_post.php:80
-msgid "Report post"
-msgstr "Попередити про повідомлення"
-
-#: ../user/forum_report_post.php:81
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "Чому Ви вважаєте це повідомлення образливим: %1Будь-ласка, подайте достатньо інформації для того, щоб людина,\nяка ще не читала дане обговорення, могла швидко виявити проблему.%2"
-
-#: ../user/forum_report_post.php:90
-msgid "Report not registered"
-msgstr "Звернення не зареєстроване"
-
-#: ../user/forum_report_post.php:91
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "Ваше звернення не вдалося записати. Будь-ласка, зачекайте трохи і спробуйте ще раз."
-
-#: ../user/forum_report_post.php:92
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "Якщо це не тимчасова помилка, будь-ласка, повідомте про неї розробникам проекту."
-
-#: ../user/forum_rss.php:41
-msgid "%1 RSS feed"
-msgstr "RSS-стрічка форуму %1"
-
-#: ../user/forum_rss.php:42
-msgid "This message board is available as an RSS feed."
-msgstr "Ця дошка повідомлень доступна у форматі стрічки RSS."
-
-#: ../user/forum_rss.php:43
-msgid "Options:"
-msgstr "Варіанти:"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "Включити тільки повідомлення користувача з ID %1 (за замовчуванням: всі користувачі)."
-
-#: ../user/forum_rss.php:49
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "Включити тільки повідомлення за останні %1 днів (за замовчуванням: 30)."
-
-#: ../user/forum_rss.php:51
-msgid "Truncate posts: %1 (Include only first 265 characters of each post)"
-msgstr "Обрізати повідомлення: %1 (Включити тільки перші 265 символів від кожного повідомлення)"
-
-#: ../user/forum_rss.php:53
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "Тільки обговорення: %1 (Включити тільки перше повідомлення кожного обговорення)"
-
-#: ../user/forum_search.php:27
-msgid "Forum search"
-msgstr "Пошук у форумі"
-
-#: ../user/forum_search.php:31
-msgid "Search query"
-msgstr "Пошуковий запит"
-
-#: ../user/forum_search.php:32
-msgid "Search for keywords:"
-msgstr "Пошук ключових слів:"
-
-#: ../user/forum_search.php:33
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "Будуть показані повідомлення, що містять всі вказані слова."
-
-#: ../user/forum_search.php:35
-msgid "For example: \"screensaver freeze\""
-msgstr "Наприклад: \"зависання заставки\""
-
-#: ../user/forum_search.php:36
-msgid "Search for author ID:"
-msgstr "Пошук за автором з ID:"
-
-#: ../user/forum_search.php:37
-msgid "Only posts by this author will be displayed"
-msgstr "Будуть показані повідомлення тільки цього автора"
-
-#: ../user/forum_search.php:39
-msgid "For example: \"43214\""
-msgstr "Наприклад: \"43214\""
-
-#: ../user/forum_search.php:41
-msgid "Search options"
-msgstr "Параметри пошуку"
-
-#: ../user/forum_search.php:42
-msgid "Search limits"
-msgstr "Обмеження пошуку"
-
-#: ../user/forum_search.php:43
-msgid "Search at most this many days back in time"
-msgstr "Шукати не більше вказаної кількості днів назад"
-
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 months"
-msgstr "%1 місяців"
-
-#: ../user/forum_search.php:52
-msgid "1 year"
-msgstr "1 рік"
-
-#: ../user/forum_search.php:73
-msgid "Only display posts from this forum"
-msgstr "Показати повідомлення тільки цього форуму"
-
-#: ../user/forum_search.php:84
-msgid "Sort by"
-msgstr "Сортування"
-
-#: ../user/forum_search.php:88
-msgid "Start the search"
-msgstr "Почати пошук"
-
-#: ../user/forum_search_action.php:141
-msgid "Forum search results"
-msgstr "Результати пошуку у форумі"
-
-#: ../user/forum_search_action.php:174
-msgid "Thread titles matching your query:"
-msgstr "Теми обговорень, які відповідають Вашому запиту:"
-
-#: ../user/forum_search_action.php:194
-msgid "Messages matching your query:"
-msgstr "Повідомлення, що відповідають Вашому запиту:"
-
-#: ../user/forum_search_action.php:217
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "Вибачте, нічого, що б відповідало Вашому пошуковому запиту, не знайдено. Ви можете розширити умови пошуку, використовуючи менше слів (або менш специфічні слова)."
-
-#: ../user/forum_search_action.php:219
-msgid "You can also %1try the same search on Google.%2"
-msgstr "Ви також можете %1спробувати знайти те саме за допомогою Google.%2"
-
-#: ../user/forum_search_action.php:224
-msgid "Perform another search"
-msgstr "Виконати інший пошук"
-
-#: ../user/forum_subscribe.php:46
-msgid "Subscription successful"
-msgstr "Успішна підписка"
-
-#: ../user/forum_subscribe.php:49
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "Ви підписані на %1. Ви отримаєте сповіщення, як тільки там з’явиться нове повідомлення."
-
-#: ../user/forum_subscribe.php:51
-msgid "Subscription failed"
-msgstr "Підписатися не вдалося"
-
-#: ../user/forum_subscribe.php:52
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "На даний момент не вдалося підписати Вас на %1. Будь-ласка, спробуйте ще раз дещо пізніше."
-
-#: ../user/forum_subscribe.php:61
-msgid "Unsubscription successful"
-msgstr "Успішне скасування підписки"
-
-#: ../user/forum_subscribe.php:64
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "Ви більше не підписані на %1. Ви більше не будете отримувати сповіщення для цього обговорення."
-
-#: ../user/forum_subscribe.php:66
-msgid "Unsubscription failed"
-msgstr "Скасувати підписку не вдалося"
-
-#: ../user/forum_subscribe.php:67
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "Зараз неможливо скасувати підписку на %1. Будь-ласка, спробуйте пізніше..."
-
-#: ../user/forum_subscribe.php:74
-msgid "Unknown subscription action"
-msgstr "Невідома дія підписки"
-
-#: ../user/forum_thread.php:61
-msgid "This forum is not visible to you."
-msgstr "Цей форум для Вас невидимий."
-
-#: ../user/forum_thread.php:69
-msgid "This thread has been hidden by moderators."
-msgstr "Це обговорення було приховане модераторами."
-
-#: ../user/forum_thread.php:128
-msgid "My question was answered"
-msgstr "На моє питання відповіли"
-
-#: ../user/forum_thread.php:129
-msgid "Click here if your question has been adequately answered"
-msgstr "Якщо на Ваше питання адекватно відповіли, будь-ласка, натисніть тут."
-
-#: ../user/forum_thread.php:137
-msgid "I've also got this question"
-msgstr "У мене таке ж запитання"
-
-#: ../user/forum_thread.php:159 ../user/forum_thread.php:275
-msgid "Add a new message to this thread"
-msgstr "Додати нове повідомлення в це обговорення"
-
-#: ../user/forum_thread.php:171
-msgid "Unsubscribe"
-msgstr "Відписатися"
-
-#: ../user/forum_thread.php:172
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "Ви підписані на це обговорення.  Натисніть тут для того, щоб відписатися."
-
-#: ../user/forum_thread.php:178
-msgid "Subscribe"
-msgstr "Підписатися"
-
-#: ../user/forum_thread.php:179
-msgid "Click to get email when there are new posts in this thread"
-msgstr "Натисніть для того, щоб отримувати сповіщення про нові повідомлення в цьому обговоренні."
-
-#: ../user/forum_thread.php:190
-msgid "Unhide this thread"
-msgstr "Показати це обговорення"
-
-#: ../user/forum_thread.php:196
-msgid "Hide this thread"
-msgstr "Приховати це обговорення"
-
-#: ../user/forum_thread.php:202
-msgid "Make unsticky"
-msgstr "Відкріпити"
-
-#: ../user/forum_thread.php:203
-msgid "Make this thread not sticky"
-msgstr "Відкріпити це обговорення"
-
-#: ../user/forum_thread.php:208
-msgid "Make sticky"
-msgstr "Закріпити"
-
-#: ../user/forum_thread.php:209
-msgid "Make this thread sticky"
-msgstr "Закріпити це обговорення"
-
-#: ../user/forum_thread.php:215
-msgid "Unlock"
-msgstr "Розблокувати"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock this thread"
-msgstr "Розблокувати це обговорення"
-
-#: ../user/forum_thread.php:221
-msgid "Lock"
-msgstr "Заблокувати"
-
-#: ../user/forum_thread.php:222
-msgid "Lock this thread"
-msgstr "Заблокувати це обговорення"
-
-#: ../user/forum_thread.php:229
-msgid "Move this thread to a different forum"
-msgstr "Перемістити це обговорення у інший форум"
-
-#: ../user/forum_thread.php:234
-msgid "Edit title"
-msgstr "Редагувати тему"
-
-#: ../user/forum_thread.php:235
-msgid "Edit thread title"
-msgstr "Редагувати тему обговорення"
-
-#: ../user/forum_thread.php:245
-msgid "Export as Notice"
-msgstr "Експортувати як сповіщення"
-
-#: ../user/forum_thread.php:251
-msgid "Don't export"
-msgstr "Не експортувати"
-
-#: ../user/forum_thread.php:252
-msgid "Don't export this news item as a Notice"
-msgstr "Не експортувати цю новину як сповіщення"
-
-#: ../user/forum_thread.php:260 ../user/forum_thread.php:262
-msgid "Sort"
-msgstr "Сортувати"
-
-#: ../user/forum_thread_status.php:49
-msgid "Thread status updated"
-msgstr "Статус обговорення оновлений"
-
-#: ../user/forum_thread_status.php:50
-msgid "The status has been updated."
-msgstr "Статус було оновлено."
-
-#: ../user/forum_user_posts.php:73
-msgid "Posts by %1"
-msgstr "Повідомлення користувача %1"
-
-#: ../user/friend.php:33
-msgid "Already friends"
-msgstr "Уже друзі"
-
-#: ../user/friend.php:39
-msgid "You requested friendship with %1 on %2."
-msgstr "Ви запитали про дружбу з %1 %2."
-
-#: ../user/friend.php:41
-msgid "This request is still pending confirmation."
-msgstr "Цей запит все ще очікує підтвердження."
-
-#: ../user/friend.php:52
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 не приймає запити дружби від Вас"
-
-#: ../user/friend.php:61
-msgid "You can't be friends with yourself"
-msgstr "Ви не можете дружити самі із собою"
-
-#: ../user/friend.php:69
-msgid "Add friend"
-msgstr "Додати друга"
-
-#: ../user/friend.php:74
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "Ви попросили додати %1 як друга. Ми повідомимо %1 і попросимо його/її підтвердити дружбу."
-
-#: ../user/friend.php:77
-msgid "Add an optional message here:"
-msgstr "Введіть додаткове повідомлення тут:"
-
-#: ../user/friend.php:115
-msgid "Friend request sent"
-msgstr "Запит на дружбу відправлено"
-
-#: ../user/friend.php:116
-msgid "We have notified %1 of your request."
-msgstr "Ми сповістили %1 про Ваш запит."
-
-#: ../user/friend.php:126
-msgid "Please log in as %1"
-msgstr "Будь-ласка, увійдіть як %1"
-
-#: ../user/friend.php:127
-msgid "You must log in as %1 to view this friend request"
-msgstr "Ви повинні увійти як %1 для того, щоб побачити цей запит дружби."
-
-#: ../user/friend.php:138
-msgid "Friend request"
-msgstr "Запит дружби"
-
-#: ../user/friend.php:141
-msgid "%1 has requested friendship with you."
-msgstr "%1 запитав про дружбу з Вами."
-
-#: ../user/friend.php:143
-msgid "%1 says: %2"
-msgstr "%1 повідомляє: %2"
-
-#: ../user/friend.php:146
-msgid "Accept friendship"
-msgstr "Прийняти дружбу"
-
-#: ../user/friend.php:146
-msgid "Click accept if %1 is in fact a friend"
-msgstr "Натисніть Прийняти, якщо %1 насправді друг"
-
-#: ../user/friend.php:147
-msgid "Decline"
-msgstr "Відхилити"
-
-#: ../user/friend.php:147
-msgid "Click decline if %1 is not a friend"
-msgstr "Натисніть Відхилити, якщо %1 не є другом"
-
-#: ../user/friend.php:186
-msgid "Friendship confirmed"
-msgstr "Дружба підтверджена"
-
-#: ../user/friend.php:187
-msgid "Your friendship with %1 has been confirmed."
-msgstr "Ваша дружба з %1 була підтверджена."
-
-#: ../user/friend.php:205
-msgid "Friendship declined"
-msgstr "Дружба відхилена"
-
-#: ../user/friend.php:206
-msgid "You have declined friendship with %1"
-msgstr "Ви відмовилися від дружби з %1"
-
-#: ../user/friend.php:221
-msgid "Notification not found"
-msgstr "Сповіщення не знайдене"
-
-#: ../user/friend.php:223
-msgid "Friend confirmed"
-msgstr "Друг підтвердив"
-
-#: ../user/friend.php:224
-msgid "You are now friends with %1."
-msgstr "Ви тепер друзі з %1."
-
-#: ../user/friend.php:232
-msgid "Cancel friendship?"
-msgstr "Припинити дружбу?"
-
-#: ../user/friend.php:234
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "Ви впевнені, що хочете припинити дружбу з %1?"
-
-#: ../user/friend.php:239
-msgid "Stay friends"
-msgstr "Залишитися друзями"
-
-#: ../user/friend.php:249
-msgid "Friendship cancelled"
-msgstr "Дружба припинена"
-
-#: ../user/friend.php:250
-msgid "Your friendship with %1 has been cancelled."
-msgstr "Ваша дружба з %1 була припинена."
-
-#: ../user/get_passwd.php:25
-msgid "Forgot your account info?"
-msgstr "Забули свою облікову інформацію?"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) Якщо Ви знаєте адресу електронної пошти Вашого облікового запису, і Ви можете отримати листа:"
-
-#: ../user/get_passwd.php:29
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "Уведіть адресу електронної пошти нижче і натисніть Гаразд. Вам будуть вислані інструкції для скидання Вашого паролю."
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) Якщо Ви забули адресу електронної пошти Вашого облікового запису або не можете отримати листа:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "Якщо BOINC запускався під цим Вашим обліковим записом, Ви можете отримати доступ до нього. Для цього потрібно зробити наступне:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "Перейдіть в каталог даних BOINC на своєму комп'ютері (його розташування записується в журналі подій при запуску)."
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "Знайдіть там файл облікового запису для цього проекту; він буде називатися <b>%1</b>."
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "Відкрийте цей файл у текстовому редакторі, наприклад в Блокноті. Ви побачите щось на кшталт"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "Виберіть і скопіюйте рядок між %1 і %2 (%3 у наведеному вище прикладі)."
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "Вставте цей рядок у розташоване нижче поле, і натисніть Гаразд."
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "Тепер Ви авторизовані; оновіть адресу електронної пошти і пароль для свого облікового запису."
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "Увійти з аутентифікатором"
-
-#: ../user/gpu_list.php:126 ../user/gpu_list.php:152
-msgid "No GPU tasks reported"
-msgstr "Немає повідомлених ГП-задач"
-
-#: ../user/gpu_list.php:183
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds are shown in parentheses."
-msgstr "Наступні списки показують найпродуктивніші моделі графічних прискорювачів на різних платформах.  Відносні швидкості вказані в лапках."
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "Ласкаво просимо у %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "Для перегляду і редагування налаштувань Вашого облікового запису використовуйте посилання нижче."
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "Якщо Ви цього ще не зробили, %1завантажте клієнтське програмне забезпечення BOINC%2."
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "анонімна платформа, відсутній додаток"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "анонімна платформа"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "Відсутня версія додатку"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "Відсутній додаток"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "Відсутня платформа"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "Кількість завершених завдань"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "Максимум завдань у день"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "Кількість завдань сьогодні"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "Правильні завдання завершені підряд"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "Середня швидкість обробки"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "Детальна інформація про додатки для комп’ютера %1"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "У нас немає записів про цей комп’ютер."
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "Ви не можете видалити запис про цей комп’ютер, оскільки у базі ще міститься для нього робота. Ви повинні зачекати декілька днів, поки робота для цього комп’ютера не буде видалена з бази даних проекту."
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "Видалення запису про цей комп’ютер"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "Запис видалений."
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "Повернутися до списку Ваших комп’ютерів"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "Об’єднання записів про комп’ютери"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "Об’єднання комп’ютерів"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "Іноді BOINC помилково призначає різні ідентифікатори одному і тому самому комп’ютеру. Ви можете виправити це об’єднавши старі ідентифікатори з найновішими."
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "Немає підходящих комп’ютерів для об’єднання з цим."
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "Показати деталі"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "Відмітьте комп’ютери, такі ж як і %1 (створений %2, ID комп’ютера %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "назва"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "створений"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "ID комп’ютера"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "без назви"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "Об’єднати комп’ютери"
-
-#: ../user/host_update_credit.php:28
-msgid "Updating computer credit"
-msgstr "Оновлення балів комп’ютера"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "Розміщення комп’ютера оновлене"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "не вказано"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "Розміщення цього комп’ютера було встановлене у %1."
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "Ця зміна буде врахована наступного разу, коли комп’ютер зв’яжеться з даним проектом."
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "Повернутися на сторінку комп’ютера"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "Комп’ютери, що належать користувачу %1"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "Комп’ютери приховані"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "Цей користувач побажав приховати інформацію про свої комп’ютери."
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "Ваші комп’ютери"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "Дозволені теги HTML"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "Наступні теги HTML дозволені в описах команд:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "жирний"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "похилий"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "гіперпосилання"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "параграф"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "розрив"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "попереднє форматування"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "зображення; висота не повинна перевищувати 450 пікселів. Будь-ласка, не публікуйте посилання на зображення без дозволу веб-сайту, де воно розміщене."
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "Ви також можете використовувати спеціальні символи з амперсандами."
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "Запускайте %1 тільки на авторизованих комп’ютерах"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "Запускайте %1 тільки на комп’ютерах, якими Ви володієте, або для яких Ви отримали права власника. У деяких компаніях і школах (ВУЗах) встановлений порядок, за яким забороняється використовувати їхні комп’ютери у таких проектах, як %1."
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "Як %1 буде використовувати Ваш комп’ютер"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "Коли Ви запускаєте %1 на своєму комп’ютері, він буде використовувати частину ресурсів процесора, простір на жорсткому диску (вінчестері) і мережевий трафік. Ви можете контролювати скільки ресурсів Вашого комп’ютера буде використано для роботи %1, і коли ці ресурси будуть використовуватися."
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "Робота, здійснена Вашим комп’ютером, сприяє вирішенню задач %1, як описано на веб-сайті проекту. Додатки можуть з часом змінюватися."
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "Забезпечення конфіденційності"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "Ваш обліковий запис на %1 ідентифікується за іменем, яке Ви вказали. Це ім’я може показуватися на веб-сайті %1, поряд зі зведенням роботи Вашого комп’ютера, проробленої для %1. Якщо Ви хочете залишитися невідомим, виберіть ім’я, яке не відповідає Вашому справжньому."
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "Якщо Ви приймаєте участь у %1, інформація про Ваш комп’ютер (така як тип процесора, об’єм оперативної пам’яті, і т.д.) буде записана проектом %1 і використана для прийняття рішення про те, який тип роботи призначити Вашому комп’ютеру. Ця інформація також буде показана на веб-сайті %1. Нічого, що вказувало б на місцезнаходження Вашого комп’ютера (наприклад, його доменне або мережеве ім’я), не буде показуватися."
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "Щоб прийняти участь у %1, Ви повинні вказати свою адресу електронної пошти. Ця адреса не буде показуватися на веб-сайті %1 і не буде доступною іншим організаціям. %1 може періодично надсилати Вам листи з новинами; проте Ви можете відмовитися від них у будь-який час."
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "Приватні повідомлення, які відправляються на веб-сайті %1, видимі тільки відправнику і отримувачу.  %1 не переглядає і не контролює вміст приватних повідомлень.  Якщо Ви отримуєте небажані приватні повідомлення від деяких користувачів %1, Ви можете додати їх у свій %2фільтр повідомлень%3.  Тоді Ви не побачите жодного загального чи приватного повідомлення від таких користувачів."
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "Якщо Ви використовуєте форуми нашого веб-сайту, то повинні керуватися %2даними рекомендаціями%3.  Повідомлення, що публікуються на форумах %1, видимі для кожного, в тому числі для осіб, які не є учасниками проекту.  Публікуючи повідомлення на форумах, Ви надаєте кожному безвідкличну ліцензію на перегляд і копіювання своїх повідомлень."
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "Чи безпечно запускати %1?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "Кожного разу при завантаженні програми через Інтернет може статися наступне: програма може мати небезпечні помилки або сервер може бути зламаний. %1 приклав зусилля для мінімізації цих ризиків. Ми ретельно протестували наші додатки. Наші сервери захищені мережевим екраном і налаштовані на високу безпеку. Щоб впевнитися у цілісності програм для завантаження, всі виконавчі файли підписані цифровим підписом на захищеному комп’ютері, не підключеному до мережі Інтернет."
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "Додатки, які запускаються проектом %1, можуть стати причиною перегрівання деяких комп’ютерів. Якщо таке трапилося, зупиніть роботу %1 або використовуйте %2утиліти%3, які обмежать використання процесора."
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 був розроблений %2. BOINC був розроблений в Каліфорнійському Університеті."
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "Відповідальність"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 і %2 не беруть на себе відповідальність за збитки, завдані Вашому комп’ютеру, втрату даних чи будь-яку іншу подію або інцидент, що може відбутися в результаті участі у %1."
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "Інші BOINC-проекти"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "Інші проекти використовують ту саму платформу, BOINC, що і %1. Ви можете прийняти участь в одному або декількох із цих проектів. Якщо Ви приєднаєтеся до декількох проектів, Ваш комп’ютер буде виконувати корисну роботу, навіть коли у %1 не буде завдань, доступних для обробки."
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "Інші проекти не пов’язані з %1, і ми не можемо ручатися за їх безпеку або природу їхніх досліджень. Приєднуйтесь до них на свій страх і ризик."
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "Вибір мови"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "Цей веб-сайт доступний декількома мовами. Зараз вибрана: %1."
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "Зазвичай вибір мови визначається мовними налаштуваннями Вашого браузера, а саме: %1.  Ви можете змінити цей параметр, використовуючи:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox: Сервіс/Налаштування/Загальні"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "Microsoft IE: Сервіс/Властивості оглядача/Мови"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "Або ж Ви можете вибрати мову, натиснувши на одне із посилань.  Вашому браузеру буде відправлений файл 'cookie'; переконайтеся, що Ваш браузер приймає файли 'cookie' нашого домену."
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "Мова (натисніть для вибору)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "Використовувати мовні налаштування оглядача"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "Переклади зроблені волонтерами.  Якщо Ваша рідна мова тут відсутня, %1Ви можете подати переклад%2."
-
-#: ../user/login_form.php:45
-msgid "Email address:"
-msgstr "Адреса електронної пошти"
-
-#: ../user/login_form.php:45
-msgid "forgot email address?"
-msgstr "забули адресу електронної пошти?"
-
-#: ../user/login_form.php:48
-msgid "Password:"
-msgstr "Пароль:"
-
-#: ../user/login_form.php:48
-msgid "forgot password?"
-msgstr "забули пароль?"
-
-#: ../user/login_form.php:51
-msgid "Stay logged in"
-msgstr "Залишатися авторизованим"
-
-#: ../user/login_form.php:62
-msgid "or %1create an account%2."
-msgstr "або %1створити обліковий запис%2."
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "Обробка %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1 об’єднаний з %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "Повернутися до списку Ваших комп’ютерів"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "Дана операція об’єднує комп’ютери на основі їхніх доменних імен.\n        <p>\n        Ця операція для кожного доменного імені об’єднує всі старі комп’ютери\n        з таким іменем з найновішим комп’ютером з тим самим іменем.\n        Несумісні комп’ютери не будуть об’єднані.\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "Вперед, зробити це"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "Повернутися до списку комп’ютерів"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\nДля максимізації обговорення і обміну інформацією,\nнаші дошки повідомлень модеруються.\nПовідомлення дошки повідомлень підлягають наступним правилам розміщення:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\nМодератори можуть видаляти повідомлення, які порушують будь-які з цих правил.\nАвтори видалених повідомлень будуть сповіщені електронною поштою.\nУ серйозних порушників може бути тимчасово скасована можливість розміщувати повідомлення\n(хоча для запобігання зловживань таку можливість мають тільки адміністратори проекту).\nДодаткові види поганої поведінки ('злам' повідомлень для перехоплення\nIP-адрес інших учасників, надмірне створення спам-обговорень\nна форумах, і т.д.), [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "Бали, які очікують підтвердження"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "ID завдання"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "ID задачі"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "ID комп’ютера"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "Заявлено балів"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "Бали, що очікують підтвердження: %1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "Заблокувати повідомлення від цього користувача"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "Заблокувати користувача"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "Ваше повідомлення було відправлене."
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "У Вас немає приватних повідомлень."
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "Відправник і дата"
-
-#: ../user/pm.php:106
-msgid "Reply to this message"
-msgstr "Відповісти на це повідомлення"
-
-#: ../user/pm.php:107
-msgid "Delete this message"
-msgstr "Видалити це повідомлення"
-
-#: ../user/pm.php:112
-msgid "Select all"
-msgstr "Вибрати всі"
-
-#: ../user/pm.php:114
-msgid "Unselect all"
-msgstr "Відмінити вибір всіх"
-
-#: ../user/pm.php:117
-msgid "Delete selected messages"
-msgstr "Видалити вибрані повідомлення"
-
-#: ../user/pm.php:140
-msgid "Sender"
-msgstr "Відправник"
-
-#: ../user/pm.php:143
-msgid "Date"
-msgstr "Дата"
-
-#: ../user/pm.php:185
-msgid "You need to fill all fields to send a private message"
-msgstr "Для того, щоб відправити приватне повідомлення, Ви повинні заповнити всі поля"
-
-#: ../user/pm.php:188
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "Ваше повідомлення було помічене як спам\n                антиспам-системою Akismet.\n                Будь-ласка, змінітьсвій текст і спробуйте ще раз."
-
-#: ../user/pm.php:205
-msgid "Could not find user with id %1"
-msgstr "Не вдається знайти користувача з id %1"
-
-#: ../user/pm.php:210
-msgid "Could not find user with username %1"
-msgstr "Не вдається знайти користувача з іменем %1"
-
-#: ../user/pm.php:212
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "%1 - не унікальне ім’я користувача; Ви змушені будете використовувати ID користувача"
-
-#: ../user/pm.php:217
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "Користувач %1 (ID: %2) не приймає Ваші приватні повідомлення."
-
-#: ../user/pm.php:240 ../user/view_profile.php:26
-msgid "No such user"
-msgstr "Немає такого користувача"
-
-#: ../user/pm.php:242
-msgid "Really block %1?"
-msgstr "Точно заблокувати %1?"
-
-#: ../user/pm.php:243
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "Ви насправді впевнені, що хочете заблокувати можливість користувача %1 відправляти Вам приватні повідомлення?"
-
-#: ../user/pm.php:244
-msgid "Please note that you can only block a limited amount of users."
-msgstr "Будь-ласка, зверніть увагу, що Ви можете заблокувати тільки обмежену кількість користувачів."
-
-#: ../user/pm.php:245
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "Як тільки користувач був заблокований, Ви можете розблокувати його, використовуючи сторінку налаштувань форуму."
-
-#: ../user/pm.php:252
-msgid "No, cancel"
-msgstr "Ні, скасувати"
-
-#: ../user/pm.php:260 ../user/team_admins.php:98
-msgid "no such user"
-msgstr "немає такого користувача"
-
-#: ../user/pm.php:263
-msgid "User %1 blocked"
-msgstr "Користувач %1 заблокований"
-
-#: ../user/pm.php:265
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "Відправлення приватних повідомлень для Вас від користувача %1 було заблоковане."
-
-#: ../user/pm.php:266
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "Для того щоб розблокувати, відвідайте %1налаштування дошки повідомлень%2"
-
-#: ../user/pm.php:302
-msgid "Unknown action"
-msgstr "Невідома дія"
-
-#: ../user/prefs.php:32
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Ваші налаштування оновлені і\n          будуть задіяні, коли Ваш комп’ютер зв’яжеться з %1\n          або Ви виконаєте команду %2Оновити%3 з Менеджера BOINC."
-
-#: ../user/prefs.php:41
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "Ваші налаштування були скинені до значень за замовчуванням і\n          будуть задіяні, коли Ваш комп’ютер зв’яжеться з %1,\n          або Ви застосуєте команду %2Оновити%3 з Менеджера BOINC."
-
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "%1 for %2"
-msgstr "%1 для конфігурації %2"
-
-#: ../user/prefs_edit.php:110
-msgid "Back to preferences"
-msgstr "Назад до налаштувань"
-
-#: ../user/prefs_remove.php:45
-msgid "Confirm delete preferences"
-msgstr "Підтвердження видалення налаштувань"
-
-#: ../user/prefs_remove.php:48
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "Ви впевнені, що хочете видалити ваші окремі налаштування %1 для конфігурації %2?"
-
-#: ../user/prefs_remove.php:52
-msgid "Remove preferences"
-msgstr "Видалити налаштування"
-
-#: ../user/prefs_remove.php:54
-msgid "Cancel"
-msgstr "Скасувати"
-
-#: ../user/profile_menu.php:35
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "%1Профілі%2 дозволяють людям ділитися біографічними даними і особистими думками зі спільнотою %3."
-
-#: ../user/profile_menu.php:36
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "Досліджуйте різноманітність Ваших однодумців-волонтерів, і представте свою власну точку зору іншим."
-
-#: ../user/profile_menu.php:37
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "Якщо Ви цього ще не зробили, то можете %1створити свій власний профіль користувача%2 для того, щоб інші могли його побачити!"
-
-#: ../user/profile_menu.php:42
-msgid "User of the Day"
-msgstr "Користувач дня"
-
-#: ../user/profile_menu.php:57
-msgid "User Profile Explorer"
-msgstr "Оглядач профілів користувачів"
-
-#: ../user/profile_menu.php:60
-msgid "View the %1User Picture Gallery%2."
-msgstr "Переглянути %1Галерею картинок користувачів%2."
-
-#: ../user/profile_menu.php:61
-msgid "Browse profiles %1by country%2."
-msgstr "Переглянути профілі %1за країнами%2."
-
-#: ../user/profile_menu.php:62
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "Переглянути профілі %1випадковим чином%2, %3випадковим чином з картинками%2 або %4випадковим чином без картинок%2."
-
-#: ../user/profile_menu.php:66
-msgid "Alphabetical profile listings:"
-msgstr "Алфавітні списки профілів:"
-
-#: ../user/profile_menu.php:72
-msgid "Search profile text"
-msgstr "Пошук у тексті профілю"
-
-#: ../user/profile_menu.php:98
-msgid "No profiles"
-msgstr "Немає профілів"
-
-#: ../user/profile_menu.php:99
-msgid "No profiles matched your query."
-msgstr "Немає профілів, які б відповідали Вашому запиту."
-
-#: ../user/profile_rate.php:29
-msgid "Invalid vote type:"
-msgstr "Неправильний тип голосу:"
-
-#: ../user/profile_rate.php:34
-msgid "Vote Recorded"
-msgstr "Голос прийнятий"
-
-#: ../user/profile_rate.php:38
-msgid "Thank you"
-msgstr "Дякуємо"
-
-#: ../user/profile_rate.php:41
-msgid "Your recommendation has been recorded."
-msgstr "Ваша рекомендація була прийнята."
-
-#: ../user/profile_rate.php:43
-msgid "Your vote to reject this profile has been recorded."
-msgstr "Ваш голос проти цього профілю був прийнятий."
-
-#: ../user/profile_rate.php:46
-msgid "Return to profile."
-msgstr "Повернутися до профілю."
-
-#: ../user/profile_search_action.php:36
-msgid "Profiles containing '%1'"
-msgstr "Профілі, що містять '%1'"
-
-#: ../user/profile_search_action.php:40
-msgid "User name"
-msgstr "Ім’я користувача"
-
-#: ../user/profile_search_action.php:41
-msgid "Joined project"
-msgstr "Приєднатися до проекту"
-
-#: ../user/profile_search_action.php:44
-msgid "Recent credit"
-msgstr "В середньому за день"
-
-#: ../user/profile_search_action.php:54
-msgid "No profiles found containing '%1'"
-msgstr "Не знайдено профілів, що містять '%1'"
-
-#: ../user/result.php:35
-msgid "Task %1"
-msgstr "Завдання %1"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "Ця можливість тимчасово відключена"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "Комп’ютера з ID %1 не знайдено"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "Нема доступу"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "Відсутній ID користувача або ID комп’ютера"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "Немає завдань для показу"
-
-#: ../user/server_status.php:97
-msgid "Running"
-msgstr "Працює"
-
-#: ../user/server_status.php:100
-msgid "Not Running"
-msgstr "Не працює"
-
-#: ../user/server_status.php:103
-msgid "Disabled"
-msgstr "Відключений"
-
-#: ../user/server_status.php:231
-msgid "Project status"
-msgstr "Статус проекту"
-
-#: ../user/server_status.php:233
-msgid "Server software version: %1"
-msgstr "Версія серверного ПЗ: %1"
-
-#: ../user/server_status.php:241
-msgid "Program"
-msgstr "Програма"
-
-#: ../user/server_status.php:241
-msgid "Host"
-msgstr "Назва сервера"
-
-#: ../user/server_status.php:252
-msgid "data-driven web pages"
-msgstr "Веб-сторінки, які керуються даними"
-
-#: ../user/server_status.php:258
-msgid "upload/download server"
-msgstr "Сервер завантаження/вивантаження"
-
-#: ../user/server_status.php:261
-msgid "scheduler"
-msgstr "Планувальник"
-
-#: ../user/server_status.php:294
-msgid "Running:"
-msgstr "Працює:"
-
-#: ../user/server_status.php:295
-msgid "Program is operating normally"
-msgstr "Програма працює нормально"
-
-#: ../user/server_status.php:296
-msgid "Not Running:"
-msgstr "Не працює:"
-
-#: ../user/server_status.php:297
-msgid "Program failed or the project is down"
-msgstr "Програма завершила роботу з помилкою або проект вимкнений"
-
-#: ../user/server_status.php:298
-msgid "Disabled:"
-msgstr "Відключений:"
-
-#: ../user/server_status.php:299
-msgid "Program is disabled"
-msgstr "Програма була зупинена"
-
-#: ../user/server_status.php:303
-msgid "Computing status"
-msgstr "Статус обчислень"
-
-#: ../user/server_status.php:309
-msgid "The database server is not accessible"
-msgstr "Сервер бази даних не доступний"
-
-#: ../user/server_status.php:326
-msgid "Tasks ready to send"
-msgstr "Завдання, готові до відправлення"
-
-#: ../user/server_status.php:331 ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "Завдання обробляються"
-
-#: ../user/server_status.php:336
-msgid "Workunits waiting for validation"
-msgstr "Задачі, які очікують перевірки"
-
-#: ../user/server_status.php:341
-msgid "Workunits waiting for assimilation"
-msgstr "Задачі, які очікують злиття"
-
-#: ../user/server_status.php:346
-msgid "Workunits waiting for file deletion"
-msgstr "Задачі, які очікують видалення"
-
-#: ../user/server_status.php:351
-msgid "Tasks waiting for file deletion"
-msgstr "Завдання, які очікують видалення"
-
-#: ../user/server_status.php:367
-msgid "Transitioner backlog (hours)"
-msgstr "Залишені в обробці (години)"
-
-#: ../user/server_status.php:374
-msgid "Users"
-msgstr "Учасників"
-
-#: ../user/server_status.php:377 ../user/server_status.php:395
-msgid "with recent credit"
-msgstr "з недавніми балами"
-
-#: ../user/server_status.php:382 ../user/server_status.php:400
-msgid "with credit"
-msgstr "з балами"
-
-#: ../user/server_status.php:387 ../user/server_status.php:405
-msgid "registered in past 24 hours"
-msgstr "зареєструвались за останні 24 години"
-
-#: ../user/server_status.php:411
-msgid "current GigaFLOPs"
-msgstr "поточна швидкість (гігафлопс)"
-
-#: ../user/server_status.php:420
-msgid "Tasks by application"
-msgstr "Розподілення завдань за додатками"
-
-#: ../user/server_status.php:423 ../user/workunit.php:40
-msgid "application"
-msgstr "додаток"
-
-#: ../user/server_status.php:424
-msgid "unsent"
-msgstr "не відправлених"
-
-#: ../user/server_status.php:425
-msgid "in progress"
-msgstr "в обробці"
-
-#: ../user/server_status.php:426
-msgid "avg runtime of last 100 results in h (min-max)"
-msgstr "середній час обробки останніх 100 результатів в год. (мін.-макс.)"
-
-#: ../user/server_status.php:427
-msgid "users in last 24h"
-msgstr "користувачів за останні 24 год."
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "Комп’ютер %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "Статистика і лідери"
-
-#: ../user/stats.php:28
-msgid "Statistics for %1"
-msgstr "Статистика %1"
-
-#: ../user/stats.php:37
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "Більш детальна статистика %1 та інших BOINC-проектів доступна на декількох веб-сайтах:"
-
-#: ../user/stats.php:40
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "Ви також можете покращити свою поточну статистику у вигляді \"зображення для підпису\":"
-
-#: ../user/stats.php:43
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "Додатково Ви можете покращити свою індивідуальну сумарну статистику за всіма проектам BOINC з декількох веб-сайтів; дивіться свою %1домашню сторінку%2."
-
-#: ../user/team.php:27
-msgid "%1 participants may form %2teams%3."
-msgstr "Учасники %1 можуть об’єднюватися у %2команди%3."
-
-#: ../user/team.php:29
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "Ви можете бути в складі лише однієї команди. До неї можна приєднатися або покинути в будь-який час."
-
-#: ../user/team.php:31
-msgid "Each team has a %1founder%2 who may:"
-msgstr "У кожної команди є %1засновник%2, який може:"
-
-#: ../user/team.php:33
-msgid "access team members' email addresses"
-msgstr "мати доступ до адрес електронної пошти учасників команди"
-
-#: ../user/team.php:34
-msgid "edit the team's name and description"
-msgstr "редагувати назву і опис команди"
-
-#: ../user/team.php:35
-msgid "add or remove team admins"
-msgstr "додати або видалити Адміністраторів команди"
-
-#: ../user/team.php:36
-msgid "remove members from the team"
-msgstr "видаляти учасників з команди"
-
-#: ../user/team.php:37
-msgid "disband a team if it has no members"
-msgstr "розформувати команду, в якій немає учасників"
-
-#: ../user/team.php:40
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "Щоб приєднатися до команди, відвідайте її сторінку і натисніть %1Приєднатися до цієї команди%2."
-
-#: ../user/team.php:41 ../user/team_search.php:180
-msgid "Find a team"
-msgstr "Знайти команду"
-
-#: ../user/team.php:48
-msgid "All teams"
-msgstr "Всі команди"
-
-#: ../user/team.php:52
-msgid "%1 teams"
-msgstr "Команди типу '%1'"
-
-#: ../user/team.php:58
-msgid "Create a new team"
-msgstr "Створити нову команду"
-
-#: ../user/team.php:59
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "Якщо Ви не можете знайти підходящу для Вас команду, то можете %1створити нову%2."
-
-#: ../user/team_admins.php:34
-msgid "Remove Team Admin status from this member"
-msgstr "Видалити статус Адміністратора команди у цього учасника"
-
-#: ../user/team_admins.php:40 ../user/team_admins.php:51
-msgid "Add or remove Team Admins"
-msgstr "Додати або видалити Адміністраторів команди"
-
-#: ../user/team_admins.php:41
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "Ви можете обрати учасників команди та надати їм статус 'Адміністраторів команди'. Адміністратори команди можуть:"
-
-#: ../user/team_admins.php:43
-msgid "Edit team information (name, URL, description, country)"
-msgstr "Редагувати інформацію про команду (назву, URL, опис, країну)"
-
-#: ../user/team_admins.php:44
-msgid "View the team's join/quit history"
-msgstr "Переглядати історію приєднання/виходу з команди"
-
-#: ../user/team_admins.php:45
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "Модерувати форум команди, якщо є (адміністратори отримують сповіщення електронною поштою про події модерації і про червоні X-повідомлення)"
-
-#: ../user/team_admins.php:47
-msgid "Team Admins cannot:"
-msgstr "Адміністратори команди не можуть:"
-
-#: ../user/team_admins.php:49
-msgid "Change the team founder"
-msgstr "Змінити засновника команди"
-
-#: ../user/team_admins.php:50 ../user/team_manage.php:54
-msgid "Remove members"
-msgstr "Видалити учасників"
-
-#: ../user/team_admins.php:53
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "Якщо Адміністратор команди покидає команду, він перестає бути Адміністратором."
-
-#: ../user/team_admins.php:54
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "Ми рекомендуємо Вам вибирати Адміністраторами команди тільки людей, яких Ви знаєте і яким довіряєте."
-
-#: ../user/team_admins.php:59
-msgid "There are currently no Team Admins"
-msgstr "Зараз у команди нема Адміністраторів"
-
-#: ../user/team_admins.php:61
-msgid "Current Team Admins"
-msgstr "Поточні Адміністратори команди"
-
-#: ../user/team_admins.php:62
-msgid "Became Team Admin on"
-msgstr "Став Адміністратором команди з"
-
-#: ../user/team_admins.php:77
-msgid "Add Team Admin"
-msgstr "Додавання Адміністратора команди"
-
-#: ../user/team_admins.php:78
-msgid "Email address of team member:"
-msgstr "Адреса електронної пошти учасника команди:"
-
-#: ../user/team_admins.php:90
-msgid "failed to remove admin"
-msgstr "не вдалося видалити адміністратора"
-
-#: ../user/team_admins.php:99
-msgid "User is not member of team"
-msgstr "Користувач не є учасником команди"
-
-#: ../user/team_admins.php:101
-msgid "%1 is already an admin of %2"
-msgstr "%1 уже адміністратор команди %2"
-
-#: ../user/team_admins.php:105
-msgid "Couldn't add admin"
-msgstr "Неможливо додати адміністратора"
-
-#: ../user/team_admins.php:111 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:28 ../user/team_remove_inactive_action.php:28
-msgid "No such team"
-msgstr "Немає такої команди"
-
-#: ../user/team_change_founder_action.php:30
-#: ../user/team_change_founder_form.php:33 ../user/team_display.php:67
-#: ../user/team_edit_action.php:30 ../user/team_edit_form.php:29
-#: ../user/team_email_list.php:55
-msgid "no such team"
-msgstr "немає такої команди"
-
-#: ../user/team_change_founder_action.php:38
-msgid "User is not a member of %1"
-msgstr "Користувач не є учасником команди %1"
-
-#: ../user/team_change_founder_action.php:41
-msgid "Changing founder of %1"
-msgstr "Зміна засновника команди %1"
-
-#: ../user/team_change_founder_action.php:43
-msgid "%1 is now founder of %2"
-msgstr "%1 тепер засновник команди %2"
-
-#: ../user/team_change_founder_form.php:37
-msgid "Change founder of %1"
-msgstr "Зміна засновника команди %1"
-
-#: ../user/team_change_founder_form.php:43
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "Учасник команди %1 надав запит на повноваження засновника цієї команди %2, проте покинув команду, таким чином скасувавши запит."
-
-#: ../user/team_change_founder_form.php:49
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "Учасник команди %1 надав запит на повноваження засновника цієї команди. Це, можливо, відбулося через те, що Ви покинули команду або не контактували з командою протягом довгого відрізку часу."
-
-#: ../user/team_change_founder_form.php:55
-msgid "decline request"
-msgstr "відхилити запит"
-
-#: ../user/team_change_founder_form.php:58
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "Якщо Ви не скасуєте запит до %1, учасник %2 матиме можливість прийняти права засновникакоманди.<br /><br />\n                  Для того, щоб прийняти запит, надайте права засновника учаснику %3, використовуючи форму нижче."
-
-#: ../user/team_change_founder_form.php:66
-msgid "No transfer request is pending."
-msgstr "Немає запитів на зміну засновника, які перебували б в очікуванні."
-
-#: ../user/team_change_founder_form.php:69
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "Щоб надати права засновника цієї команди іншому учаснику, відмітьте учасника і натисніть кнопку <strong>Змінити засновника</strong> внизу."
-
-#: ../user/team_change_founder_form.php:76
-msgid "New founder?"
-msgstr "Новий засновник?"
-
-#: ../user/team_change_founder_form.php:105 ../user/team_manage.php:56
-msgid "Change founder"
-msgstr "Змінити засновника"
-
-#: ../user/team_change_founder_form.php:108
-msgid "There are no users to transfer team to."
-msgstr "Немає користувачів для переходу в команду."
-
-#: ../user/team_create_action.php:29
-msgid "You must choose a non-blank team name"
-msgstr "Ви повинні вибрати непусту назву команди"
-
-#: ../user/team_create_action.php:34
-msgid "A team named %1 already exists - try another name"
-msgstr "Команда з назвою %1 вже існує - спробуйте іншу"
-
-#: ../user/team_create_action.php:54
-msgid "Could not create team - please try later."
-msgstr "Не вдалося створити команду - будь-ласка, спробуйте пізніше."
-
-#: ../user/team_create_form.php:27 ../user/team_create_form.php:32
-msgid "Create a team"
-msgstr "Створити команду"
-
-#: ../user/team_create_form.php:30
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "Ви перебуваєте в команді %1. Необхідно %2вийти з цієї команди%3 перед створенням нової."
-
-#: ../user/team_delta.php:65
-msgid "Not founder or admin"
-msgstr "Не засновник і не адміністратор"
-
-#: ../user/team_delta.php:72
-msgid "Team history for %1"
-msgstr "Історія команди %1"
-
-#: ../user/team_delta.php:75
-msgid "When"
-msgstr "Коли"
-
-#: ../user/team_delta.php:76
-msgid "User"
-msgstr "Користувач"
-
-#: ../user/team_delta.php:77
-msgid "Action"
-msgstr "Дія"
-
-#: ../user/team_delta.php:78
-msgid "Total credit at time of action"
-msgstr "Всього балів на момент дії"
-
-#: ../user/team_edit_action.php:53
-msgid "bad country"
-msgstr "неправильна країна"
-
-#: ../user/team_edit_action.php:59
-msgid "The name '%1' is being used by another team."
-msgstr "Назва '%1' вже використовується іншою командою."
-
-#: ../user/team_edit_action.php:62
-msgid "Must specify team name"
-msgstr "Необхідно вказати назву команди"
-
-#: ../user/team_edit_action.php:90
-msgid "Could not update team - please try again later."
-msgstr "Не вдалося оновити команду - будь-ласка, спробуйте ще раз пізніше."
-
-#: ../user/team_edit_form.php:33
-msgid "Edit %1"
-msgstr "Редагування команди %1"
-
-#: ../user/team_edit_form.php:34
-msgid "Update team info"
-msgstr "Оновити інформацію про команду"
-
-#: ../user/team_email_list.php:61
-msgid "%1 Email List"
-msgstr "Список адрес електронної пошти команди %1"
-
-#: ../user/team_email_list.php:63
-msgid "Member list of %1"
-msgstr "Список учасників команди %1"
-
-#: ../user/team_email_list.php:78
-msgid "Show as plain text"
-msgstr "Показати як простий текст"
-
-#: ../user/team_forum.php:28 ../user/team_forum.php:39
-msgid "Create Message Board"
-msgstr "Створити дошку повідомлень"
-
-#: ../user/team_forum.php:29
-msgid "You may create a message board for use by %1."
-msgstr "Ви можете створити дошку повідомлень для спілкування в команді %1."
-
-#: ../user/team_forum.php:31
-msgid "Only team members will be able to post."
-msgstr "Залишати повідомлення можуть тільки учасники команди."
-
-#: ../user/team_forum.php:32
-msgid "At your option, only members will be able to read."
-msgstr "За вашим вибором, її зможуть читати тільки учасники."
-
-#: ../user/team_forum.php:33
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "У Вас і Ваших Адміністраторів команди будуть права модерування."
-
-#: ../user/team_forum.php:40
-msgid "Create a message board for %1"
-msgstr "Створити дошку повідомлень для команди %1"
-
-#: ../user/team_forum.php:48
-msgid "Team already has a message board"
-msgstr "У команди вже є дошка повідомлень"
-
-#: ../user/team_forum.php:59
-msgid "Team Message Board"
-msgstr "Дошка повідомлень команди"
-
-#: ../user/team_forum.php:71
-msgid "Minimum time between posts (seconds)"
-msgstr "Мінімальний час між повідомленнями (секунди)"
-
-#: ../user/team_forum.php:74
-msgid "Minimum total credit to post"
-msgstr "Мінімальна загальна кількість балів для написання повідомлення"
-
-#: ../user/team_forum.php:77
-msgid "Minimum average credit to post"
-msgstr "Мінімальна середня кількість балів для написання повідомлень"
-
-#: ../user/team_forum.php:80
-msgid "Submit"
-msgstr "Відправити"
-
-#: ../user/team_forum.php:89
-msgid "Remove your team's message board."
-msgstr "Видалити дошку повідомлень Вашої команди."
-
-#: ../user/team_forum.php:97
-msgid "Really remove message board?"
-msgstr "Точно видалити дошку повідомлень?"
-
-#: ../user/team_forum.php:98
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "Ви впевнені, що хочете видалити дошку повідомлень своєї команди? Всі обговорення і повідомлення будуть безповоротно видалені. (Проте Ви зможете пізніше створити нову дошку повідомлень)."
-
-#: ../user/team_forum.php:100
-msgid "Yes - remove message board"
-msgstr "Так - видалити дошку повідомлень"
-
-#: ../user/team_forum.php:121
-msgid "Message board removed"
-msgstr "Дошка повідомлень видалена"
-
-#: ../user/team_forum.php:124
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "Дошка повідомлень Вашої команди була видалена. Тепер Ви можете %1створити нову%2."
-
-#: ../user/team_forum.php:143
-msgid "Team Message Board Updated"
-msgstr "Дошка повідомлень команди оновлена"
-
-#: ../user/team_forum.php:144
-msgid "Update successful"
-msgstr "Оновлення завершене успішно"
-
-#: ../user/team_forum.php:147
-msgid "Update failed"
-msgstr "Оновлення не вдалося"
-
-#: ../user/team_forum.php:154
-msgid "Team has no forum"
-msgstr "У команди немає форуму"
-
-#: ../user/team_founder_transfer_action.php:36
-msgid "You must be a member of a team to access this page."
-msgstr "Для того, щоб отримати доступ до цієї сторінки, Ви повинні бути учасником команди ."
-
-#: ../user/team_founder_transfer_action.php:90
-msgid "Requesting foundership of %1"
-msgstr "Запит прав засновника команди %1"
-
-#: ../user/team_founder_transfer_action.php:98
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "Поточний засновник був проінформований про Ваш запит електронною поштою і приватним повідомленням.<br /><br />\n                       Якщо засновник не відповість протягом 60 днів, у Вас буде можливість стати новим засновником."
-
-#: ../user/team_founder_transfer_action.php:102
-#: ../user/team_founder_transfer_action.php:113
-msgid "Foundership request not allowed now"
-msgstr "Надсилати запит на права засновника в даний момент заборонено"
-
-#: ../user/team_founder_transfer_action.php:109
-msgid "Assumed foundership of %1"
-msgstr "Прийняття повноважень засновника команди %1"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "Вітаємо, Ви тепер засновник команди %1. Перейдіть на %2сторінку свого облікового запису%3 для того, щоб скористатися можливостями Адміністратора команди."
-
-#: ../user/team_founder_transfer_action.php:120
-msgid "Decline founder change request"
-msgstr "Скасування запиту на зміну засновника"
-
-#: ../user/team_founder_transfer_action.php:127
-msgid "The foundership request from %1 has been declined."
-msgstr "Запит повноважень засновника від учасника %1 був скасований."
-
-#: ../user/team_founder_transfer_action.php:130
-msgid "There were no foundership requests."
-msgstr "Не було запитів на зміну засновника."
-
-#: ../user/team_founder_transfer_action.php:134
-msgid "undefined action %1"
-msgstr "невідома дія %1"
-
-#: ../user/team_founder_transfer_action.php:137
-#: ../user/team_founder_transfer_form.php:83
-msgid "Return to team page"
-msgstr "Повернутися на сторінку команди"
-
-#: ../user/team_founder_transfer_form.php:28
-msgid "You need to be a member of a team to access this page."
-msgstr "Для того, щоб отримати доступ до цієї сторінки, Ви повинні бути учасником команди."
-
-#: ../user/team_founder_transfer_form.php:31
-msgid "Request foundership of %1"
-msgstr "Запит на зміну засновника команди %1"
-
-#: ../user/team_founder_transfer_form.php:38
-msgid "You are now founder of team %1."
-msgstr "Ви тепер засновник команди %1."
-
-#: ../user/team_founder_transfer_form.php:44
-msgid "You requested the foundership of %1 on %2."
-msgstr "Ви надіслати запит на зміну засновника команди %1 з %2."
-
-#: ../user/team_founder_transfer_form.php:47
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "60 днів з моменту подачі Вашого запиту пройшли, а засновник так і не відповів. Тепер Ви можете прийняти повноваження засновника, натиснувши тут:"
-
-#: ../user/team_founder_transfer_form.php:50
-msgid "Assume foundership"
-msgstr "Прийняти повноваження засновника"
-
-#: ../user/team_founder_transfer_form.php:54
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "Засновник був проінформований про Ваш запит. Якщо він/вона не відповість до %1, у Вас буде можливість стати засновником."
-
-#: ../user/team_founder_transfer_form.php:60
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "Якщо засновник команди не активний, а Ви хочете прийняти його повноваження, натисніть на кнопку нижче. Поточному засновнику буде відправлено електронного листа з детальною інформацією про Ваш запит і у нього буде можливість передати Вам повноваження або відхилити запит. Якщо засновник не відповість протягом 60 днів, у Вас буде можливість стати засновником.<br /><br />\n                        Ви впевнені, що хочете надіслати запит на права засновника?"
-
-#: ../user/team_founder_transfer_form.php:65
-msgid "Request foundership"
-msgstr "Надіслати запит на зміну засновника"
-
-#: ../user/team_founder_transfer_form.php:74
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "%2 користувачем %1 вже був надісланий запит на зміну засновника."
-
-#: ../user/team_founder_transfer_form.php:77
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "Запит на зміну засновника надсилався протягом останніх 90 днів, тому нові запити заборонені. Будь-ласка, спробуйте ще раз пізніше."
-
-#: ../user/team_join.php:32 ../user/team_join_action.php:32
-#: ../user/team_join_form.php:29
-msgid "The team %1 is not joinable."
-msgstr "Команда %1 не дозволяє долучатися."
-
-#: ../user/team_join.php:35 ../user/team_join_action.php:35
-msgid "Already a member"
-msgstr "Вже учасник команди"
-
-#: ../user/team_join.php:36 ../user/team_join_action.php:36
-msgid "You are already a member of %1."
-msgstr "Ви вже учасник команди %1."
-
-#: ../user/team_join.php:42 ../user/team_join_action.php:43
-msgid "Couldn't join team - please try again later."
-msgstr "Не вдалося приєднатися до команди - будь-ласка, спробуйте ще раз пізніше."
-
-#: ../user/team_join_action.php:40
-msgid "Joined %1"
-msgstr "Приєднання до команди %1."
-
-#: ../user/team_join_action.php:41
-msgid "You have joined %1."
-msgstr "Ви приєдналися до команди %1."
-
-#: ../user/team_join_form.php:32
-msgid "Join %1"
-msgstr "Приєднання до команди %1."
-
-#: ../user/team_join_form.php:33
-msgid "Please note:"
-msgstr "Будь-ласка, зверніть увагу:"
-
-#: ../user/team_join_form.php:35
-msgid "Joining a team gives its founder access to your email address."
-msgstr "Приєднання до команди дає доступ її засновнику до Вашої адреси електронної пошти."
-
-#: ../user/team_join_form.php:36
-msgid "Joining a team does not affect your account's credit."
-msgstr "Приєднання до команди не вплине на бали Вашого облікового запису."
-
-#: ../user/team_join_form.php:43
-msgid "Join team"
-msgstr "Приєднатися до команди"
-
-#: ../user/team_lookup.php:84
-msgid "Search Results"
-msgstr "Результати пошуку"
-
-#: ../user/team_lookup.php:86
-msgid "Search results for '%1'"
-msgstr "Результати пошуку '%1'"
-
-#: ../user/team_lookup.php:88
-msgid "You may view these teams' members, statistics, and information."
-msgstr "Ви можете побачити учасників цих команд, статистику та інформацію."
-
-#: ../user/team_lookup.php:98
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "Більше 100 команд задовольняють умови Вашого пошуку. Показані перші 100 команд."
-
-#: ../user/team_lookup.php:104
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "Кінець результатів. %1 Якщо Ви не змогли знайти команду, яку шукаєте, то можете самі %2створити команду%3."
-
-#: ../user/team_manage.php:26
-msgid "Team administration for %1"
-msgstr "Управління командою %1"
-
-#: ../user/team_manage.php:29
-msgid "Edit team info"
-msgstr "Редагувати інформацію про команду"
-
-#: ../user/team_manage.php:30
-msgid "Change team name, URL, description, type, or country"
-msgstr "Зміна назви команди, URL, опису, типу або країни"
-
-#: ../user/team_manage.php:32
-msgid "Member list:"
-msgstr "Список учасників:"
-
-#: ../user/team_manage.php:33 ../user/team_manage.php:37
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:34
-msgid "text"
-msgstr "текст"
-
-#: ../user/team_manage.php:35
-msgid "View member names and email addresses"
-msgstr "Перегляд імен учасників і їх електронних адрес"
-
-#: ../user/team_manage.php:36
-msgid "View change history:"
-msgstr "Перегляд історії змін:"
-
-#: ../user/team_manage.php:38
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:39
-msgid "See when members joined or quit this team"
-msgstr "Погляньте, коли учасники приєднались або покинули цю команду"
-
-#: ../user/team_manage.php:50
-msgid "Respond to foundership request."
-msgstr "Відповісти на запит про зміну засновника."
-
-#: ../user/team_manage.php:50
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "Якщо Ви не відповісте до %1, учасник %2 зможе прийняти повноваження засновника цієї команди."
-
-#: ../user/team_manage.php:55
-msgid "Remove inactive or unwanted members from this team"
-msgstr "Видалення неактивних або небажаних учасників цієї команди"
-
-#: ../user/team_manage.php:57
-msgid "Transfer foundership to another member"
-msgstr "Передача повноважень засновника команди іншому учаснику"
-
-#: ../user/team_manage.php:58
-msgid "Add/remove Team Admins"
-msgstr "Додати/видалити Адміністраторів команди"
-
-#: ../user/team_manage.php:59
-msgid "Give selected team members Team Admin privileges"
-msgstr "Дати вибраним учасникам команди права Адміністратора команди"
-
-#: ../user/team_manage.php:61
-msgid "Remove team"
-msgstr "Видалити команду"
-
-#: ../user/team_manage.php:62
-msgid "Allowed only if team has no members"
-msgstr "Дозволяється тільки тоді, коли в команді нема учасників"
-
-#: ../user/team_manage.php:64
-msgid "Create or manage a team message board"
-msgstr "Створення або управління дошкою повідомлень команди"
-
-#: ../user/team_manage.php:71
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "Щоб створити цю команду у всіх проектах BOINC (поточних і майбутніх), Ви можете перетворити її у %1 глобальну команду BOINC%2."
-
-#: ../user/team_manage.php:73
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "Адміністратори команди запрошуються приєднатися і взяти участь в групі Google %1boinc-team-founders%2."
-
-#: ../user/team_manage.php:75
-msgid ""
-"Other resources for BOINC team admins are available from a third-party site,"
-" %1www.boincteams.com%2."
-msgstr "Адміністраторам команд BOINC доступні інші ресурси на сторонньому сайті, %1www.boincteams.com%2."
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "Не можна видалити непусту команду"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "Команда %1 видалена"
-
-#: ../user/team_members.php:36
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "Ліміт перевищений:  Можна показати тільки перші 1000 учасників."
-
-#: ../user/team_members.php:49
-msgid "Members of %1"
-msgstr "Учасники команди %1"
-
-#: ../user/team_quit_action.php:32
-msgid "Unable to quit team"
-msgstr "Неможливо вийти з команди"
-
-#: ../user/team_quit_action.php:33
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "Команди не існує або Ви не належите до неї."
-
-#: ../user/team_quit_form.php:31
-msgid "Quit %1"
-msgstr "Вихід з команди %1"
-
-#: ../user/team_quit_form.php:32
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>Зверніть увагу, перш ніж вийти з команди:</strong>\n         <ul>\n         <li>Якщо Ви вийдете з команди, то можете пізніше приєднатися до неї знову, або приєднатися до будь-якої іншої команди на свій вибір\n         <li>Вихід з команди жодним чином не впливає на Вашу особисту статистику.\n         </ul>"
-
-#: ../user/team_quit_form.php:40
-msgid "Quit Team"
-msgstr "Вийти з команди"
-
-#: ../user/team_remove_inactive_action.php:31
-msgid "Removing users from %1"
-msgstr "Видалити користувачів з команди %1"
-
-#: ../user/team_remove_inactive_action.php:39
-msgid "%1 is not a member of %2"
-msgstr "%1 не учасник команди %2"
-
-#: ../user/team_remove_inactive_action.php:42
-msgid "%1 has been removed"
-msgstr "%1 був видалений"
-
-#: ../user/team_remove_inactive_form.php:32
-msgid "Remove members from %1"
-msgstr "Видалення учасників з команди %1"
-
-#: ../user/team_remove_inactive_form.php:39
-msgid "Remove?"
-msgstr "Видалити?"
-
-#: ../user/team_remove_inactive_form.php:40
-msgid "Name (ID)"
-msgstr "Ім'я (ID)"
-
-#: ../user/team_remove_inactive_form.php:65
-msgid "No members are eligible for removal."
-msgstr "Немає відповідних учасників для видалення."
-
-#: ../user/team_remove_inactive_form.php:68
-msgid "Remove users"
-msgstr "Видалити учасників"
-
-#: ../user/team_search.php:68
-msgid "Team name"
-msgstr "Назва команди"
-
-#: ../user/team_search.php:92
-msgid "Team search results"
-msgstr "Результати пошуку команд"
-
-#: ../user/team_search.php:94
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "Не знайдено команд, що задовольняють ваші критерії. Спробуйте інший пошук."
-
-#: ../user/team_search.php:96
-msgid "Or you can %1create a new team%2."
-msgstr "Або Ви можете %1створити нову команду%2."
-
-#: ../user/team_search.php:100
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "Наступні команди відповідають одному або декільком критеріям Вашого пошуку.\n            Щоб приєднатися до команди, натисніть на її назві і перейдіть на сторінку команди,\n               потім натисніть %1Приєднатися до цієї команди%2."
-
-#: ../user/team_search.php:107
-msgid "Change your search"
-msgstr "Змініть свій пошук"
-
-#: ../user/team_search.php:181
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "Ви можете об'єднатися в команду з іншими людьми зі схожими інтересами, або з однієї країни, компанії чи школи."
-
-#: ../user/team_search.php:183
-msgid "Use this form to find teams that might be right for you."
-msgstr "Використовуйте цю форму для пошуку команд, які можуть Вам підійти."
-
-#: ../user/team_search.php:188
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "%1Я не зацікавлений%2 у приєднанні до команди просто зараз."
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:100
-#: ../user/top_users.php:112
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "Ліміт перевищений - Вибачте, тільки перші %1 елементів"
-
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "Кращі комп’ютери"
-
-#: ../user/top_teams.php:105
-msgid "Top %1 teams"
-msgstr "Кращі команди типу %1"
-
-#: ../user/top_teams.php:108
-msgid "There are no %1 teams"
-msgstr "Немає команд типу %1"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "Приймає участь з"
-
-#: ../user/uotd.php:29
-msgid "No user of the day has been chosen."
-msgstr "Користувача дня обрано не було."
-
-#: ../user/uotd.php:33
-msgid "User of the Day for %1: %2"
-msgstr "Користувач дня на %1: %2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "Фільтри"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "Ім’я користувача починається з"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "Будь-яка"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "З профілем?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "Будь-який"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "У команді?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "Сортування"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "У порядку зменшення часу з моменту реєстрації"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "У порядку зменшення середньої кількості балів"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "У порядку зменшення загальної кількості балів"
-
-#: ../user/user_search.php:100
-msgid "search string must be at least 3 characters"
-msgstr "шуканий рядок повинен мати мінімум 3 символи"
-
-#: ../user/user_search.php:133
-msgid "User search results"
-msgstr "Результати пошуку користувачів"
-
-#: ../user/user_search.php:140
-msgid "Joined"
-msgstr "Приєднався"
-
-#: ../user/user_search.php:148
-msgid "No users match your search criteria."
-msgstr "Немає користувачів, які б відповідали Вашим критеріям пошуку."
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "Користувача не знайдено!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "Облікові дані<br/>для %1<br/>Час:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "Команда:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "Всього балів (команда):"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "В середньому (команда):"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "Команда: Немає"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "Перевірка адреси електронної пошти BOINC"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "Будь-ласка, перейдіть за наступним посиланням для того, щоб підтвердити адресу електронної пошти свого облікового запису у %1:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "Листа для перевірки відправлено"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "Електронного листа відправлено за адресою %1. Перейдіть за посиланням, яке він містить для того, щоб підтвердити свою адресу електронної пошти."
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "Такого користувача нема."
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "Помилка в даних URL - не вдалося перевірити адресу електронної пошти"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "Невдача при оновленні бази даних - будь-ласка, спробуйте ще раз пізніше."
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "Перевірка адреси електронної пошти"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "Адреса електронної пошти Вашого облікового запису була підтверджена."
-
-#: ../user/view_profile.php:36
-msgid "This user has no profile"
-msgstr "У цього користувача немає профілю"
-
-#: ../user/view_profile.php:54
-msgid "Profile: %1"
-msgstr "Профіль: %1"
-
-#: ../user/view_profile.php:63
-msgid "Account data"
-msgstr "Дані облікового запису"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "Ви можете отримати доступ до свого облікового запису або з використанням адреси електронної пошти і паролю,\n    або використовуючи призначений 'ключ облікового запису'.\n    Ваш ключ облікового запису:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "Цей ключ можна застосувати до:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "вхід у свій обліковий запис на сайті"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "підключення комп’ютера до Вашого облікового запису без використання Менеджера BOINC.\n       Для цього необхідно встановити BOINC,\n       створити файл із назвою %1 в каталозі даних BOINC,\n       і встановити його вміст наступним чином:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "Слабкий ключ облікового запису"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "Ваш 'слабкий ключ облікового запису' може бути використаний для підключення комп’ютерів до Вашого облікового запису,\n    як описано вище, але він не може використовуватися для входу в нього чи його зміни будь-яким чином.\n    Якщо Ви хочете підключити ненадійні або не надто безпечні комп’ютери до свого облікового запису,\n    зробіть це, використовуючи свій слабкий ключ облікового запису.\n    Ваш слабкий ключ облікового запису:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "Якщо Ви зміните свій пароль, Ваш слабкий ключ облікового запису зміниться, а попередній стане недійсним."
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "не вдалося знайти задачу"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "Задача %1"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "канонічний результат"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "надано балів"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "приховано в очікуванні завершення"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "мінімальний кворум"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "початкова реплікація"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "макс. # помилок/всього/успішних завдань"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "помилки"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "перевірка"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "Очікування"
-
-#: ../project.sample/project.inc:43
-msgid "Main page"
-msgstr "Головна сторінка"
-
-#: ../project.sample/project.inc:45
-msgid "Copyright"
-msgstr "Авторські права"
-
-#: ../project.sample/project.inc:48
-msgid "Generated"
-msgstr "Згенерований"
-
-#: ../project.sample/project.inc:79
-msgid "Your personal background."
-msgstr "Ваша особиста інформація."
-
-#: ../project.sample/project.inc:83
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "Розкажіть нам про себе. Ви можете розповісти нам про те, звідки Ви, про свій вік, освіту, захоплення або ще про щось."
-
-#: ../project.sample/project.inc:87
-msgid "Your opinions about %1"
-msgstr "Ваша думка про %1"
-
-#: ../project.sample/project.inc:91
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "Висловіть нам свої думки про %1<ol>\n    <li>Чому Ви запускаєте %1?\n    <li> Чкі Ваші погляди щодо проекту?\n    <li> Якісь пропозиції?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:47
-msgid "Color scheme for graphics"
-msgstr "Кольорова схема для графіки"
-
-#: ../project.sample/project_specific_prefs.inc:48
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "Максимальне завантаження процесора (%) для графіки%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:49
-msgid "Run only the selected applications"
-msgstr "Запускати тільки вибрані додатки"
-
-#: ../project.sample/project_specific_prefs.inc:50
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "Якщо для вибраних додатків нема роботи, приймати роботу для інших додатків?"
-
-#: ../project.sample/project_specific_prefs.inc:91
-msgid "(all applications)"
-msgstr "(все додатки)"
diff --git a/locale/update_templates.sh b/locale/update_templates.sh
new file mode 100755
index 0000000..9be774f
--- /dev/null
+++ b/locale/update_templates.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+set -e # abort if a command exits non-zero
+
+# update template files from source and send them to transifex
+# Then commit and push changes.
+
+testmode=0
+if test $# -gt 0; then
+  if test $1 = "-t"; then
+    testmode=1
+  else
+    echo "Usage: $0 [-t]"
+    echo "     -t  testmode (don't commit or push to git repository)"
+    exit 1
+  fi
+fi
+
+# find source root upward from CWD
+while ! test -r .tx/config; do
+  cd ..
+  test "`pwd`" = "/" && echo "no source directory found" >&2 && exit
+done
+
+command -v pocompile >/dev/null 2>&1 || { echo >&2 "xgettext (gettext) is needed but not installed.  Aborting."; exit 1; }
+command -v tx >/dev/null 2>&1 || { echo >&2 "tx (transifex-client) is needed but not installed.  Aborting."; exit 1; }
+
+# check if working directory is clean to ensure we only commit localization changes
+if test 0 -ne `git status -s -uno |wc -l`; then
+  echo "Please commit your pending changes first"
+  exit 1
+fi
+
+srcdir=`pwd`
+YEAR=`date -u +"%Y"`
+DATE=`date -u +"%Y-%m-%d %H:%M %Z"`
+VERSION=`git rev-parse HEAD`
+HEADER_FILE="${srcdir}/locale/templates/header.txt"
+GEN_HEADER_ADD="${srcdir}/locale/templates/header-generic-web.txt"
+
+cd ${srcdir}
+echo "building localization template for Manager"
+TMPL_NAME="manager"
+TMPL_FILE="${srcdir}/locale/templates/BOINC-Manager.pot"
+FILE_LIST="clientgui/*.cpp clientgui/msw/*.cpp clientgui/mac/*.cpp clientgui/gtk/*.cpp"
+
+sed -e "s/@YEAR@/$YEAR/" -e "s/@DATE@/$DATE/" -e "s/@VERSION@/$VERSION/" -e "s/@TMPL_NAME@/$TMPL_NAME/" ${HEADER_FILE} > ${TMPL_FILE}
+xgettext --from-code=UTF-8 --omit-header --add-comments -o - --keyword=_ -C ${FILE_LIST} >> ${TMPL_FILE}
+
+cd ${srcdir}
+echo "building localization template for Client"
+TMPL_NAME="client"
+TMPL_FILE="${srcdir}/locale/templates/BOINC-Client.pot"
+FILE_LIST="client/*.cpp sched/*.cpp"
+
+sed -e "s/@YEAR@/$YEAR/" -e "s/@DATE@/$DATE/" -e "s/@VERSION@/$VERSION/" -e "s/@TMPL_NAME@/$TMPL_NAME/" ${HEADER_FILE} > ${TMPL_FILE}
+xgettext --omit-header --add-comments -o - --keyword=_ -C ${FILE_LIST} >> ${TMPL_FILE}
+
+cd ${srcdir}
+echo "building localization template for Setup tool"
+TMPL_NAME="setup"
+TMPL_FILE="${srcdir}/locale/templates/BOINC-Setup.pot"
+FILE_LIST="mac_installer/*.cpp"
+
+sed -e "s/@YEAR@/$YEAR/" -e "s/@DATE@/$DATE/" -e "s/@VERSION@/$VERSION/" -e "s/@TMPL_NAME@/$TMPL_NAME/" ${HEADER_FILE} > ${TMPL_FILE}
+xgettext --omit-header --add-comments -o - --keyword=_ -C ${FILE_LIST} >> ${TMPL_FILE}
+
+cd ${srcdir}
+echo "building localization template for generic website"
+TMPL_NAME="project generic website"
+TMPL_FILE="${srcdir}/locale/templates/BOINC-Project-Generic.pot"
+FILE_LIST="html/inc/*.inc html/user/*.php html/project.sample/*.inc"
+
+sed -e "s/@YEAR@/$YEAR/" -e "s/@DATE@/$DATE/" -e "s/@VERSION@/$VERSION/" -e "s/@TMPL_NAME@/$TMPL_NAME/" ${HEADER_FILE} > ${TMPL_FILE}
+cat ${GEN_HEADER_ADD} >> ${TMPL_FILE}
+xgettext --omit-header --add-comments -o - --keyword=tra -L PHP ${FILE_LIST} >> ${TMPL_FILE}
+
+cd ${srcdir}
+echo "building localization template for BOINC website"
+TMPL_NAME="website"
+TMPL_FILE="${srcdir}/locale/templates/BOINC-Web.pot"
+FILE_LIST="doc/account_managers.inc doc/addons.php doc/docutil.php doc/download.php doc/index.php doc/help.php doc/help_funcs.php doc/links.php doc/logo.php doc/projects.inc html/inc/news.inc"
+
+sed -e "s/@YEAR@/$YEAR/" -e "s/@DATE@/$DATE/" -e "s/@VERSION@/$VERSION/" -e "s/@TMPL_NAME@/$TMPL_NAME/" ${HEADER_FILE} > ${TMPL_FILE}
+cat ${GEN_HEADER_ADD} >> ${TMPL_FILE}
+xgettext --omit-header --add-comments -o - --keyword=tra -L PHP ${FILE_LIST} >> ${TMPL_FILE}
+
+# The Android template is updated using Android Studio
+# The BOINC-Drupal.pot template is updated by Einstein at Home
+
+git add -u # only update already tracked files (will not track new files)
+if test $testmode -eq 0; then
+  git commit -m "Locale: Update localization template files [skip ci]"
+  git push
+  tx push -s
+else
+  echo "working directory prepared for commit, inspect changes with 'git diff --cached'"
+fi
+
+exit 0
diff --git a/locale/update_translations.sh b/locale/update_translations.sh
new file mode 100755
index 0000000..1737603
--- /dev/null
+++ b/locale/update_translations.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+set -e # abort if a command exits non-zero
+
+# update localization files from transifex and compile .po to .mo if needed
+# .po files are only updated if they are 100% translated, outdated files are not removed!
+# Then commit and push changes.
+
+testmode=0
+if test $# -gt 0; then
+  if test $1 = "-t"; then
+    testmode=1
+  else
+    echo "Usage: $0 [-t]"
+    echo "     -t  testmode (don't commit or push to git repository)"
+    exit 1
+  fi
+fi
+
+# find source root upward from CWD
+while ! test -r .tx/config; do
+  cd ..
+  test "`pwd`" = "/" && echo "no source directory found" >&2 && exit
+done
+
+command -v pocompile >/dev/null 2>&1 || { echo >&2 "pocompile (translate-toolkit) is needed but not installed.  Aborting."; exit 1; }
+command -v tx >/dev/null 2>&1 || { echo >&2 "tx (transifex-client) is needed but not installed.  Aborting."; exit 1; }
+
+# check if working directory is clean to ensure we only commit localization changes
+if test 0 -ne `git status -s -uno |wc -l`; then
+  echo "Please commit your pending changes first"
+  exit 1
+fi
+
+echo "pulling translations from transifex"
+# this only updates existing languages, new languages need to be added manually with 'tx pull -a' and 'git add'
+tx pull
+
+echo "compiling localization files for Manager and Client"
+srcdir=`pwd`
+cd ${srcdir}/locale
+
+templates=("BOINC-Manager" "BOINC-Client" "BOINC-Setup" "BOINC-Web")
+
+for template_name in "${templates[@]}"; do
+  for file in `find -name "${template_name}.po"`; do
+    dir=`dirname $file`
+    locale=`basename $dir`
+
+    cd ${srcdir}/locale/${locale}
+    if test ${template_name}.po -nt ${template_name}.mo.flag || test ! -e ${template_name}.mo.flag; then
+      # Compile the PO file into an MO file.
+      pocompile ${template_name}.po ${template_name}.mo
+
+      # Touch each file to adjust timestamps
+      touch ${template_name}.po
+      touch ${template_name}.mo.flag
+
+    fi
+  done
+  cd ${srcdir}/locale
+done
+
+cd ${srcdir}
+
+git add -u # only update already tracked files (will not track new files)
+if test $testmode -eq 0; then
+  git commit -m "Locale: Update localization files [skip ci]"
+  git push
+else
+  echo "working directory prepared for commit, inspect changes with 'git diff --cached'"
+fi
+
+exit 0
diff --git a/locale/updatetrans.sh b/locale/updatetrans.sh
deleted file mode 100755
index 0349aa3..0000000
--- a/locale/updatetrans.sh
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/sh
-
-# Look for .po files modified later than .mo, and regenerate .mo file
-# Then commit and push changes.
-
-projname=boinc
-projdir=/home/boincadm/rwalton/$projname/locale
-
-cd $projdir
-
-for file in `find -name 'BOINC-Manager.po'` ; do
-  dir=`dirname $file`
-  locale=`basename $dir`
-  template_name=BOINC-Manager
-
-  cd $projdir/${locale}
- 
-  if test ${template_name}.po -nt ${template_name}.mo.flag
-  then
-
-    # Compile the PO file into an MO file.
-    pocompile ${template_name}.po ${template_name}.mo
-
-	# Add the updated file to git
-	git add ${template_name}.mo
-    
-    # Touch each file to adjust timestamps
-    touch ${template_name}.po
-    touch ${template_name}.mo.flag 
-
-  fi  
-done
-
-
-cd $projdir
-
-for file in `find -name 'BOINC-Client.po'` ; do
-  dir=`dirname $file`
-  locale=`basename $dir`
-  template_name=BOINC-Client
-
-  cd $projdir/${locale}
- 
-  if test ${template_name}.po -nt ${template_name}.mo.flag
-  then
-
-    # Compile the PO file into an MO file.
-    pocompile ${template_name}.po ${template_name}.mo
-
-	# Add the updated file to git
-	git add ${template_name}.mo
-    
-    # Touch each file to adjust timestamps
-    touch ${template_name}.po
-    touch ${template_name}.mo.flag
-
-  fi  
-done
-
-
-cd $projdir
-
-for file in `find -name 'BOINC-Web.po'` ; do
-  dir=`dirname $file`
-  locale=`basename $dir`
-  template_name=BOINC-Web
-
-  cd $projdir/${locale}
- 
-  if test ${template_name}.po -nt ${template_name}.mo.flag
-  then
-
-    # Compile the PO file into an MO file.
-    pocompile ${template_name}.po ${template_name}.mo
-
-	# Add the updated file to git
-	git add ${template_name}.mo
-    
-    # Touch each file to adjust timestamps
-    touch ${template_name}.po
-    touch ${template_name}.mo.flag
-
-  fi  
-done
-
-
-cd $projdir
-
-for file in `find -name 'BOINC-Setup.po'` ; do
-  dir=`dirname $file`
-  locale=`basename $dir`
-  template_name=BOINC-Setup
-
-  cd $projdir/${locale}
- 
-  if test ${template_name}.po -nt ${template_name}.mo.flag
-  then
-
-    # Compile the PO file into an MO file.
-    pocompile ${template_name}.po ${template_name}.mo
-
-	# Add the updated file to git
-	git add ${template_name}.mo
-    
-    # Touch each file to adjust timestamps
-    touch ${template_name}.po
-    touch ${template_name}.mo.flag
-
-  fi  
-done
-
-git commit -a -m "locale: Update compiled localization files"
-git push origin
-
-exit 0
diff --git a/locale/zh_CN/BOINC-Client.mo b/locale/zh_CN/BOINC-Client.mo
index 87bebe1..2799361 100644
Binary files a/locale/zh_CN/BOINC-Client.mo and b/locale/zh_CN/BOINC-Client.mo differ
diff --git a/locale/zh_CN/BOINC-Client.po b/locale/zh_CN/BOINC-Client.po
index faf08e1..45dd083 100644
--- a/locale/zh_CN/BOINC-Client.po
+++ b/locale/zh_CN/BOINC-Client.po
@@ -1,162 +1,178 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC client localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# 周潇波 <zhouxiaobo.500 at gmail.com>, 2015
+# Xiaobo Zhou <zhouxiaobo.500 at gmail.com>, 2015
+# 秦赫阳 <qysnn1 at gmail.com>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-07-12 16:16+0000\n"
-"Last-Translator: 周潇波 <zhouxiaobo.500 at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/p/boinc/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-09 14:04+0000\n"
+"Last-Translator: 秦赫阳 <qysnn1 at gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/boinc/boinc/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: acct_mgr.cpp:450 acct_mgr.cpp:459
+#: client/acct_mgr.cpp:456 client/acct_mgr.cpp:473
 msgid "Message from account manager"
 msgstr "来自账户管理器的消息"
 
-#: client_msgs.cpp:81
+#: client/client_msgs.cpp:82
 msgid "Message from server"
 msgstr "来自服务器的消息"
 
-#: client_state.cpp:258
+#: client/client_state.cpp:324
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
 msgstr "部分计算任务所需要的内存超出了你的设定值,请检查参数设置中的相关选项。"
 
-#: client_state.cpp:520
+#: client/client_state.cpp:661
 msgid "Couldn't write state file; check directory permissions"
 msgstr "无法写入状态文件,请检查目录权限"
 
-#: cs_cmdline.cpp:303
+#: client/cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
 msgstr "必须在环境变量 HTTP_PROXY 中指定一个 HTTP 代理服务器"
 
-#: cs_scheduler.cpp:613
+#: client/cs_scheduler.cpp:613
 #, c-format
 msgid ""
-"You used the wrong URL for this project.  When convenient, remove this "
-"project, then add %s"
-msgstr "你当前使用了错误的项目网址,方便的时候,请移除该项目,然后重新添加 %s"
+"This project is using an old URL.  When convenient, remove the project, then"
+" add %s"
+msgstr "此项目目前使用的是旧的项目网址。在方便时,请删除该项目,然后用新网址%s重新添加此项目。"
 
-#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
+#: client/cs_statefile.cpp:844
 msgid "Syntax error in app_info.xml"
-msgstr "app_info.xml 语法错误"
+msgstr "app_info.xml中存在语法错误"
 
-#: cs_statefile.cpp:868
+#: client/cs_statefile.cpp:888
 msgid "File referenced in app_info.xml does not exist: "
-msgstr "app_info.xml 中引用的文件不存在:"
+msgstr "app_info.xml 中引用的下列文件不存在:"
 
-#: current_version.cpp:91
+#: client/current_version.cpp:91
 msgid "A new version of BOINC is available."
 msgstr "检测到新版本的 BOINC。"
 
-#: current_version.cpp:94 current_version.cpp:102
+#: client/current_version.cpp:94 client/current_version.cpp:102
 msgid "Download"
 msgstr "下载"
 
-#: log_flags.cpp:269 log_flags.cpp:449
+#: client/gpu_detect.cpp:243 client/gpu_detect.cpp:286
+msgid ""
+"cannot be used for CUDA or OpenCL computation with CUDA driver 6.5 or later"
+msgstr "不能在CUDA驱动程序6.5或更高版本中用于CUDA或 OpenCL计算"
+
+#: client/log_flags.cpp:311 client/log_flags.cpp:491
 msgid "Unexpected text in cc_config.xml"
 msgstr "cc_config.xml 中有异常文本"
 
-#: log_flags.cpp:423 log_flags.cpp:475
+#: client/log_flags.cpp:465 client/log_flags.cpp:520
 msgid "Unrecognized tag in cc_config.xml"
 msgstr "cc_config.xml 中有无法识别的标签"
 
-#: log_flags.cpp:440
+#: client/log_flags.cpp:482
 msgid "Missing start tag in cc_config.xml"
 msgstr "cc_config.xml 中有起始标签丢失"
 
-#: log_flags.cpp:465
+#: client/log_flags.cpp:510
 msgid "Error in cc_config.xml options"
 msgstr "cc_config.xml 中有错误的选项"
 
-#: log_flags.cpp:483
+#: client/log_flags.cpp:528
 msgid "Missing end tag in cc_config.xml"
 msgstr "cc_config.xml 中有结束标签丢失"
 
-#: ../sched/handle_request.cpp:307
+#: client/project.cpp:967
+msgid "To fix this, you can "
+msgstr "若要解决此问题,您可以"
+
+#: client/project.cpp:970
+msgid "change Project Preferences on the project's web site"
+msgstr "在项目的网站上更改项目首选项(Project Preferences)"
+
+#: client/project.cpp:976
+msgid "remove GPU exclusions in your cc_config.xml file"
+msgstr "在cc_config.xml文件中删除GPU排除(<exclude_gpu>)"
+
+#: client/project.cpp:983
+msgid "change your settings at your account manager web site"
+msgstr "更改您的帐户管理器网站中的设置"
+
+#: sched/handle_request.cpp:317
 msgid "Invalid or missing account key.  To fix, remove and add this project."
 msgstr "帐户密钥错误或者不存在,请退出并重新加入该项目以修复这个问题。"
 
-#: ../sched/handle_request.cpp:849
-msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "代码签名密钥错误,请退出并重新加入该项目以修复这个问题。"
-
-#: ../sched/handle_request.cpp:859
+#: sched/handle_request.cpp:951
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
 msgstr "该项目已经修改了它的安全密钥,请退出并重新加入该项目以修复这个问题。"
 
-#: ../sched/handle_request.cpp:943
+#: sched/handle_request.cpp:1022
 msgid "This project doesn't support operating system"
 msgstr "该项目不支持你的操作系统"
 
-#: ../sched/handle_request.cpp:969
+#: sched/handle_request.cpp:1048
 msgid "This project doesn't support CPU type"
 msgstr "该项目不支持你的中央处理器(CPU)类型"
 
-#: ../sched/handle_request.cpp:993
+#: sched/handle_request.cpp:1072
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
 msgstr "你的 BOINC 客户端软件版本过低,请安装当前的最新版本。"
 
-#: ../sched/handle_request.cpp:1259
+#: sched/handle_request.cpp:1347
 msgid "This project doesn't support computers of type"
 msgstr "该项目不支持的计算机类型"
 
-#: ../sched/sched_send.cpp:1092
+#: sched/sched_send.cpp:1107
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
 msgstr "将你计算机中 GPU 的驱动升级到最新版本后,才能继续运行计算任务"
 
-#: ../sched/sched_send.cpp:1099
+#: sched/sched_send.cpp:1114
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
 msgstr "将你计算机中 GPU 的驱动升级到最新版本后,才能运行该项目的 GPU 计算程序"
 
-#: ../sched/sched_send.cpp:1118
+#: sched/sched_send.cpp:1133
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
 msgstr "如果要使用你的 NVIDIA GPU 来进行计算,请将 BOINC 升级至最新的正式版本。"
 
-#: ../sched/sched_send.cpp:1146
+#: sched/sched_send.cpp:1167
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
 msgstr "运行这个项目要求计算机配备一块 %s 显卡。"
 
-#: ../sched/sched_send.cpp:1262
+#: sched/sched_send.cpp:1283
 msgid "No tasks are available for the applications you have selected."
 msgstr "你当前选择的计算程序类型没有任务可供处理。"
 
-#: ../sched/sched_send.cpp:1288
+#: sched/sched_send.cpp:1309
 msgid "Your computer type is not supported by this project"
 msgstr "该项目不支持你的设备类型"
 
-#: ../sched/sched_send.cpp:1294
+#: sched/sched_send.cpp:1315
 msgid "Newer BOINC version required; please install current version"
 msgstr "要求更新BOINC的版本,请安装当前最新的正式版本"
 
-#: ../sched/sched_send.cpp:1305
+#: sched/sched_send.cpp:1326
 #, c-format
 msgid ""
 "Tasks for %s are available, but your preferences are set to not accept them"
 msgstr "%s 目前有可用的任务,但是您的偏好设定禁用了该类任务。"
 
-#: ../sched/sched_types.cpp:254
-msgid "Unknown app name in app_info.xml"
-msgstr "app_info.xml 中的计算程序名称未知"
-
-#: ../sched/sched_version.cpp:214
+#: sched/sched_version.cpp:225
 msgid "Your app_info.xml file doesn't have a usable version of"
 msgstr "你的 app_info.xml 文件中未包括可用版本的"
diff --git a/locale/zh_CN/BOINC-Drupal.po b/locale/zh_CN/BOINC-Drupal.po
index 7d8cea6..0c72794 100644
--- a/locale/zh_CN/BOINC-Drupal.po
+++ b/locale/zh_CN/BOINC-Drupal.po
@@ -2,14 +2,15 @@
 # Copyright (c) YEAR NAME <EMAIL at ADDRESS>
 # 
 # Translators:
+# Xun Yanglin <xunyanglins at gmail.com>, 2016
 # Yin Gang <zenith.yin at gmail.com>, 2015
 # 李泽林, 2015
-# 秦赫阳 <qysnn1 at gmail.com>, 2015
+# 秦赫阳 <qysnn1 at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"POT-Creation-Date: 2015-12-15 12:43+0000\n"
-"PO-Revision-Date: 2015-12-27 16:38+0000\n"
+"POT-Creation-Date: 2016-08-16 12:17+0000\n"
+"PO-Revision-Date: 2017-01-29 09:14+0000\n"
 "Last-Translator: 秦赫阳 <qysnn1 at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/boinc/boinc/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -18,436 +19,504 @@ msgstr ""
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-msgid "Please select a team type."
-msgstr "请选择一个团队类型"
-
-msgid ""
-"A team foundership change was already requested recently. Only one request "
-"is allowed within a period of 90 days."
-msgstr "最近已经提交了一个团队创始人资格更改的申请。在 90 天内只允许有一个申请。"
+msgid "Reject profile"
+msgstr "拒绝个人资料"
 
-msgid "@count days remaining"
-msgstr "@count天剩余"
+msgid "Ban user"
+msgstr "禁止用户"
 
-msgid "Inbox"
-msgstr "收件箱"
+msgid "I'm new"
+msgstr "我是个新人"
 
-msgid "Compose new"
-msgstr "组建新的"
+msgid "I'm a BOINC user"
+msgstr "我是一个 BOINC 用户"
 
-msgid "respond to the request"
-msgstr "对申请的回应"
+msgid "Authenticator login"
+msgstr "验证器登录"
 
 msgid ""
-"A foundership transfer request has been made for your team. Please !respond."
-msgstr "您的团队收到了一个创始人更改申请。请!respond。"
-
-msgid "Respond to transfer request"
-msgstr "对更改申请的回应"
+"You must earn @count more credits to be able to post comments on this site."
+msgstr "你还需要得到 @count 积分才能在这个网站上发表评论。"
 
-msgid ""
-"Team member @name has requested team foundership. This may be because you "
-"left the team or have not had contact with the team for a long time."
-msgstr "团队成员 @name请求取得这个团队的创建人资格,这可能是因为你离开了团队或者已经较长时间没有和团队联系。"
+msgid "Generic"
+msgstr "一般"
 
-msgid ""
-"If you don't decline the request by @date, @name will have the option of "
-"assuming team foundership. (note: To accept the request, assign foundership "
-"to @name using the form below)"
-msgstr "如果你在@date之前没有拒绝@name的申请,@name将可以得到团队创建人的资格。(提示:如果你同意将创建人资格授予@name,请在下面的表单里将创始人身份分配给他。)"
+msgid "Home"
+msgstr "家庭"
 
-msgid "Deny request"
-msgstr "拒绝此请求"
+msgid "Work"
+msgstr "工作"
 
-msgid "Send request"
-msgstr "发送请求"
+msgid "School"
+msgstr "学习"
 
-msgid "Friend request from !name [!site]"
-msgstr "!name 申请添加您为好友[!site]"
+msgid "yes"
+msgstr "是"
 
-msgid "Message"
-msgstr "消息"
+msgid "no"
+msgstr "否"
 
-msgid ""
-"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
-"\n"
-"Follow the link below to view this request:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name在!site上申请添加你为好友。你可以同意或者拒绝这一申请。如果你拒绝申请,系统不会通知对方,但是系统将从你们各自的账户里删除这一申请。\n\n点击下面的链接查看这个申请:\n!link\n\n!message\n\n谢谢,\n!site团队"
+msgid "Resource settings"
+msgstr "资源设定"
 
-msgid "Cancel friend request"
-msgstr "取消好友申请"
+msgid "Resource share"
+msgstr "资源分享"
 
-msgid "Remove request"
-msgstr "删除申请"
+msgid ""
+"Determines the proportion of your computer's resources allocated to this "
+"project. Example: if you participate in two BOINC projects with resource "
+"shares of 100 and 200, the first will get 1/3 of your resources and the "
+"second will get 2/3."
+msgstr "决定你的计算资源在该项目的投入比例。比如你分别在两个 BOINC 项目设置了 100 和 200 的资源分享值,则前一个项目将得到 1/3 的资源而第二个将得到 2/3。"
 
-msgid "Approve request"
-msgstr "同意这个申请"
+msgid "Use CPU"
+msgstr "使用CPU"
 
-msgid "!name accepted your friend request [!site]"
-msgstr "!name同意了你的好友申请 [!site]"
+msgid "Enforced by version @number"
+msgstr "要求版本 @number"
 
-msgid ""
-"!name confirmed you as a friend on !site.\n"
-"\n"
-"Follow this link to view his or her profile:\n"
-"!link\n"
-"\n"
-"!message\n"
-"\n"
-"Thanks,\n"
-"The !site team"
-msgstr "!name同意了你在!site上的好友申请\n\n点击下面的链接查看他/她的个人资料\n!link\n\n!message\n\n谢谢,\n!site团队"
+msgid "Use NVIDIA GPU"
+msgstr "使用NVIDIA GPU"
 
-msgid "Email address"
-msgstr "电子邮件地址"
+msgid "Use ATI GPU"
+msgstr "使用ATI GPU"
 
-msgid "Home"
-msgstr "家庭"
+msgid "Use INTEL GPU"
+msgstr "使用 INTEL GPU"
 
-msgid "Login"
-msgstr "登录"
+msgid "Beta settings"
+msgstr "Beta 设定"
 
-msgid "search"
-msgstr "搜索"
+msgid "Run test applications?"
+msgstr "运行测试应用程序吗?"
 
-msgid "Server status"
-msgstr "服务器状态"
+msgid ""
+"This helps us develop applications, but may cause jobs to fail on your "
+"computer"
+msgstr "这有助于我们开发应用程序,但可能会导致任务在您的计算机上运行失败"
 
-msgid "Language"
-msgstr "语言"
+msgid " Default value: @default"
+msgstr "缺省值:@default"
 
-msgid "Enter your @s email address."
-msgstr "请输入您的 @s 电子邮件地址。"
+msgid "Applications"
+msgstr "计算程序"
 
-msgid "Join now"
-msgstr "现在加入"
+msgid "Default set"
+msgstr "缺省设定"
 
-msgid "I'm new"
-msgstr "我是个新人"
+msgid "Set used for new computers"
+msgstr "用于新计算机的设定"
 
-msgid "I'm a BOINC user"
-msgstr "我是一个 BOINC 用户"
+msgid "Save changes"
+msgstr "保存更改"
 
-msgid "Welcome back!"
-msgstr "欢迎回来!"
+msgid "Cancel"
+msgstr "取消"
 
-msgid ""
-"Einstein at Home is a program that uses your computer's idle time to run a "
-"screensaver to search for gravitational waves from spinning neutron stars "
-"(also called pulsars) using data from the LIGO gravitational wave detector."
-msgstr "Einstein at Home项目使用您计算机的空闲时间来搜索从脉冲星发出的引力波。所使用的数据由LIGO引力波探测器提供。"
+msgid "Show comparison view"
+msgstr "显示对比视图"
 
-msgid "Learn more"
-msgstr "了解更多信息"
+msgid "Comment form"
+msgstr "评论表格"
 
-msgid "View account"
-msgstr "查看帐户"
+msgid "Logout"
+msgstr "注销"
 
-msgid "About our screensaver"
-msgstr "关于我们的屏幕保护程序"
+msgid "Join now"
+msgstr "现在加入"
 
-msgid "Over 500,000 volunteers and counting."
-msgstr "超过50万名并还在继续增加的志愿者"
+msgid "Account"
+msgstr "帐户"
 
-msgid "Windows"
-msgstr "Windows"
+msgid "Server status"
+msgstr "服务器状态"
 
-msgid "Mac"
-msgstr "Mac"
+msgid "Language"
+msgstr "语言"
 
-msgid "Linux"
-msgstr "Linux"
+msgid "Create content"
+msgstr "创建内容"
 
-msgid "Logout"
-msgstr "注销"
+msgid "General settings"
+msgstr "一般设定"
 
 msgid "Name"
 msgstr "任务名称"
 
-msgid "Avg credit"
-msgstr "平均积分"
+msgid "Time zone"
+msgstr "时区"
 
-msgid "Total credit"
-msgstr "总积分"
+msgid "Notification settings"
+msgstr "通知设定"
 
-msgid "Enter your password to save changes"
-msgstr "输入您的密码以保存更改"
+msgid "Receive email notification for private messages?"
+msgstr "接收私人消息的邮件通知?"
 
-msgid ""
-"Enter your current password if changing your email\n"
-"          address or password."
-msgstr "如果您要更改电子邮件地址或密码\n请输入您的当前密码。"
+msgid "Receive email notification for friend requests?"
+msgstr "接收好友请求的邮件通知?"
 
-msgid "BOINC user ID"
-msgstr "BOINC用户ID"
+msgid "Language settings"
+msgstr "语言设定"
 
-msgid "Drupal user ID"
-msgstr "Drupal用户ID"
+msgid ""
+"This account's default language for e-mails and preferred language for site "
+"presentation."
+msgstr "该账户用于电子邮件的缺省语言和站点内容呈现的首选语言"
 
-msgid "Account key"
-msgstr "帐户密钥"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, it will be used for your user picture."
+msgstr "如果你有一个<a href=\"@gravatar-check\">正确的头像</a> 和你的电子邮件地址关联,它将被用作你的用户图片。"
 
-msgid "Weak account key"
-msgstr "弱帐户密钥"
+msgid "Your Gravatar will not be shown if you upload a user picture."
+msgstr "如果你上传了一张用户图片,则不会显示你的头像。"
 
-msgid "Cross-project ID"
-msgstr "跨项目标识符(CPID)"
+msgid ""
+"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
+" your e-mail address, use it for your user picture."
+msgstr "如果你有一个<a href=\"@gravatar-check\">正确的头像</a> 与你的电子邮件地址关联,它将被用作你的用户图片。"
 
-msgid "Save changes"
-msgstr "保存更改"
+msgid "Gravatar will not be shown if an avatar is uploaded."
+msgstr "如果上传了头像,则不会显示。"
 
-msgid "Cancel"
-msgstr "取消"
+msgid "Avatar settings"
+msgstr "头像设定"
 
-msgid "Change password"
-msgstr "修改用户口令"
+msgid "This is not available until your profile is set up."
+msgstr "仅在你的档案创建后才可用。"
 
-msgid "What is @this_project?"
-msgstr "@this_project 是什么?"
+msgid "Create a profile"
+msgstr "创建一个用户档案"
 
-msgid "no projects..."
-msgstr "没有项目..."
+msgid "Upload an avatar"
+msgstr "上传一个新头像"
 
-msgid "Download the desktop software"
-msgstr "下载桌面软件"
+msgid "Forum settings"
+msgstr "论坛设定"
 
-msgid "Run the installer"
-msgstr "运行安装程序"
+msgid "In discussion topics, show at most @comments_per_page"
+msgstr "在讨论主题里,最多显示 @comments_per_page 条回复"
 
-msgid "When prompted enter @siteurl"
-msgstr "根据提示输入 @siteurl"
+msgid "comments per page"
+msgstr "每页评论数"
 
-msgid "Password"
-msgstr "用户口令"
+msgid "Sort comments in discussions"
+msgstr "讨论主题的回复排序"
 
-msgid "Enter the password that accompanies your username."
-msgstr "输入用户名对应的密码"
+msgid "Newest post first"
+msgstr "发帖时间最新的在前面"
 
-msgid "Request new password"
-msgstr "请求新密码"
-
-msgid ""
-"If you're already running BOINC, select <i>Add\n"
-"      Project</i>."
-msgstr "如果你已经在使用 BOINC,选择<i>增加项目</i>。"
-
-msgid ""
-"If you're running a command-line version of BOINC,\n"
-"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
-"        an account at this project, then use that account to connect with the\n"
-"        command-line version."
-msgstr "如果你正在使用命令行版本的 BOINC,\n先使用 BOINC Manager 创建该项目的账户,\n然后在命令行版本中使用该账户来连接。"
+msgid "Oldest post first"
+msgstr "发帖时间最旧的在前面"
 
-msgid ""
-"If you're running a pre-5.0 version of BOINC, please\n"
-"        upgrade to a more recent version to create an account\n"
-"        at this project."
-msgstr "如果你在使用 5.0 之前版本的 BOINC,请升级到更近的版本来创建账户。"
+msgid "Signature"
+msgstr "签名"
 
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) 如果你知道你的账户和电子邮件地址,你可以在这里接收邮件:"
+msgid "Your signature will be publicly displayed at the end of your comments."
+msgstr "你的签字将在回复的最后进行显示。"
 
-msgid ""
-"Enter the email address and click OK. You will be sent email instructions "
-"for resetting your password."
-msgstr "输入电子邮件地址并点击确定,你将会收到电子邮件来指导你来重置你的登录密码。"
+msgid "Hide signatures in forums"
+msgstr "在论坛里隐藏签名"
 
-msgid "OK"
-msgstr "确定"
+msgid "Privacy settings"
+msgstr "隐私设定"
 
-msgid "The latest news from the @site_name project"
-msgstr "来自 @site_name 项目的最新消息"
+msgid "Is it OK for @project and your team (if any) to email you?"
+msgstr "是否允许 @project 和你所在的团队(如果有的话)给你发送邮件?"
 
-msgid "Comment form"
-msgstr "评论表格"
+msgid "Should @project show your computers on its web site?"
+msgstr "@project 是否应该在网站上显示你的计算机?"
 
-msgid "Total credits"
-msgstr "总积分"
+msgid "Id"
+msgstr "ID"
 
-msgid "Recent avg credits"
-msgstr "近期平均积分"
+msgid "Founder"
+msgstr "创建人"
 
 msgid "Country"
 msgstr "国家或地区"
 
-msgid "Type"
-msgstr "类型"
+msgid "Recent average credit"
+msgstr "近期平均积分"
 
-msgid "Founder"
-msgstr "创建人"
+msgid "Members"
+msgstr "成员"
 
-msgid "New members in last day"
-msgstr "昨天新加入的成员"
+msgid "Total Credit"
+msgstr "总积分"
 
-msgid "Total members"
-msgstr "所有成员"
+msgid "User ID"
+msgstr "用户 ID"
 
-msgid "Active members"
-msgstr "活跃的成员"
+msgid "User"
+msgstr "用户"
 
-msgid "Members with credit"
-msgstr "有积分的成员"
+msgid "Admin since"
+msgstr "成为管理员"
 
-msgid "Description"
-msgstr "描述"
+msgid "Team ID"
+msgstr "团队 ID"
 
-msgid "Search teams"
-msgstr "搜索团队"
+msgid "User joined"
+msgstr "成为用户"
 
-msgid "Send message"
-msgstr "发送消息"
+msgid "Timestamp"
+msgstr "时间戳"
 
-msgid "BOINC"
-msgstr "BOINC"
+msgid "Account Key"
+msgstr "帐户密钥"
 
-msgid "Project"
-msgstr "项目"
+msgid "Member since"
+msgstr "成为成员"
 
-msgid "Web site"
-msgstr "网站"
+msgid "CPID"
+msgstr "CPID"
 
-msgid "No active computers"
-msgstr "没有活跃的计算机"
+msgid "Email Address"
+msgstr "电子邮件地址"
 
-msgid "This user has no computers that have been active in the last 30 days."
-msgstr "用户在过去 30 天没有活跃的计算机"
+msgid "Password Hash"
+msgstr "密码哈希"
 
-msgid " Default value: @default"
-msgstr "缺省值:@default"
+msgid "Postal Code"
+msgstr "邮编"
 
-msgid "Applications"
-msgstr "计算程序"
+msgid "Send Email"
+msgstr "发送邮件"
 
-msgid "yes"
-msgstr "是"
+msgid "Show Hosts"
+msgstr "显示主机"
 
-msgid "no"
-msgstr "否"
+msgid "URL"
+msgstr "网址"
 
-msgid "Message @id"
-msgstr "消息 @id"
+msgid "Computer ID"
+msgstr "计算机编号"
 
-msgid "message @id"
-msgstr "消息 @id"
+msgid "Location"
+msgstr "位置"
 
-msgid " in response to !parent"
-msgstr "回复 !parent"
+msgid "While BOINC running, % of time work is allowed"
+msgstr "当 BOINC 在运行时,允许计算的时间比例"
 
-msgid "Credits per day"
-msgstr "每日积分"
+msgid "Average turnaround time"
+msgstr "平均任务周转时间"
 
-msgid "Computers hidden"
-msgstr "计算机已隐藏"
+msgid "Created"
+msgstr "创建时间"
 
-msgid "This user has chosen not to show information about their computers."
-msgstr "该用户已选择不显示他的计算机信息。"
+msgid "While BOINC running, % of time host has an Internet connection"
+msgstr "当 BOINC 在运行时,主机拥有互联网连接的时间比例"
 
-msgid "Stderr output"
-msgstr "标准错误输出"
+msgid "Average CPU efficiency"
+msgstr "平均的 CPU 运行效率"
 
-msgid "@time ago"
-msgstr "@time 之前"
+msgid "Free disk space"
+msgstr "剩余磁盘空间"
 
-msgid "n/a"
-msgstr "不适用"
+msgid "Total disk space"
+msgstr "总磁盘空间"
 
-msgid "Submitted by !username on !datetime"
-msgstr "由 !username 在 !datetime 提交"
+msgid "Task duration correction factor"
+msgstr "任务时长校正因子"
 
-msgid "Member since"
-msgstr "成为成员"
+msgid "Avg. credit"
+msgstr "平均积分"
 
-msgid "View team"
-msgstr "查看团队"
+msgid "External IP address"
+msgstr "外部 IP 地址"
 
-msgid "Friends (@count)"
-msgstr "朋友(@count)"
+msgid "Cross project ID"
+msgstr "跨项目标识符(CPID)"
 
-msgid "Website"
-msgstr "网站"
+msgid "Last IP address"
+msgstr "最近使用的 IP 地址"
 
-msgid "Locked"
-msgstr "已锁定"
+msgid "Cache"
+msgstr "缓存"
 
-msgid "Computers pending"
-msgstr "等待的计算机"
+msgid "Memory"
+msgstr "内存(RAM)"
 
-msgid ""
-"This user does not yet have any associated computers. Computers will be "
-"displayed when they have earned their first credits."
-msgstr "该用户没有关联的计算机,计算机将在首次得到积分后显示出来。"
+msgid "Swap space"
+msgstr "交换空间"
 
-msgid "No results found..."
-msgstr "未找到结果..."
+msgid "Maximum daily WU quota per CPU"
+msgstr "单 CPU 每日 WU 限额"
 
-msgid "Background"
-msgstr "背景"
+msgid "Average download rate"
+msgstr "平均下载速度"
 
-msgid "Teams"
-msgstr "团队"
+msgid "Average upload rate"
+msgstr "平均上传速度"
 
-msgid ""
-"@project participants may form teams. You may belong to only one team. You "
-"can join or quit a team at any time. To join a team, visit its team page and"
-" click \"Join this team\". Each team has a founder who may:"
-msgstr "@project 项目的参与者可以组成团队。你只能加入一个团队。你可以在任何时间加入或退出团队。要加入团队,访问团队页面并点击“加入该团队”。每个团队都有一个创建人,他可以:"
+msgid "Same IP address count"
+msgstr "同 IP 地址的数量"
 
-msgid "access team members' email addresses"
-msgstr "访问团队成员的电子邮件地址"
+msgid "% of time BOINC client is running"
+msgstr "% BOINC 客户端运行时间"
 
-msgid "edit the team's name and description"
-msgstr "编辑团队的名称及描述"
+msgid "Operating system"
+msgstr "操作系统"
 
-msgid "add or remove team admins"
-msgstr "增加或移除团队管理员"
+msgid "Operating system version"
+msgstr "操作系统版本"
 
-msgid "remove members from the team"
-msgstr "移除团队中的成员"
+msgid "Measured floating point speed"
+msgstr "浮点运算速度"
 
-msgid "disband a team if it has no members"
-msgstr "解散没有成员的团队"
+msgid "Measured integer speed"
+msgstr "整数运算速度"
 
-msgid "Create a new team"
-msgstr "创建新团队"
+msgid "CPU model"
+msgstr "CPU 型号"
 
-msgid ""
-"If you cannot find a team that is right for you, you can create a team."
-msgstr "如果找不到对你合适的团队,你也可以创建一个团队。"
+msgid "Number of processors"
+msgstr "数据器数量"
 
-msgid "You must earn @count more credits!"
-msgstr "你还需要得到 @count 积分!"
+msgid "CPU"
+msgstr "CPU"
 
-msgid "Threads"
-msgstr "主题"
+msgid "Number of times client has contacted server"
+msgstr "客户端连接服务端的次数"
 
-msgid "Posts"
-msgstr "贴数"
+msgid "Last contact"
+msgstr "最近一次通讯"
 
-msgid "Last post"
-msgstr "最近发贴"
+msgid "Serial number"
+msgstr "序列号"
 
-msgid "Manage subscriptions"
-msgstr "订阅管理"
+msgid "Timezone"
+msgstr "时区"
 
-msgid "Featured"
-msgstr "特色"
+msgid "Platform ID"
+msgstr "平台 ID"
 
-msgid "Submitted on !datetime"
-msgstr "提交于 !datetime"
+msgid "Task ID"
+msgstr "任务 ID"
 
-msgid "Comments"
-msgstr "评论"
+msgid "Workunit ID"
+msgstr "任务单元 ID"
 
-msgid "Opinion"
-msgstr "意见"
+msgid "Host ID"
+msgstr "主机 ID"
+
+msgid "Application ID"
+msgstr "应用程序 ID"
+
+msgid "Application version"
+msgstr "计算程序版本"
+
+msgid "Claimed credit"
+msgstr "申请积分"
+
+msgid "Client state"
+msgstr "客户端状态"
+
+msgid "CPU time"
+msgstr "已用 CPU 时间"
+
+msgid "Run time"
+msgstr "运行时间"
+
+msgid "Exit status"
+msgstr "退出状态"
+
+msgid "Granted credit"
+msgstr "授予的积分"
+
+msgid "Outcome"
+msgstr "结果"
+
+msgid "Received time"
+msgstr "接收时间"
+
+msgid "Report deadline"
+msgstr "上报期限"
+
+msgid "Sent"
+msgstr "发送时间"
+
+msgid "Server state"
+msgstr "服务端状态"
+
+msgid "Stderr out"
+msgstr "标准错误输出"
+
+msgid "Validation state"
+msgstr "验证状态"
+
+msgid "App ID"
+msgstr "应用 ID"
+
+msgid "Canonical credit"
+msgstr "规范积分"
+
+msgid "Canonical result ID"
+msgstr "规范结果 ID"
+
+msgid "Created time"
+msgstr "创建时间"
+
+msgid "Error mask"
+msgstr "错误掩码"
+
+msgid "Minimum quorum"
+msgstr "最小配额"
+
+msgid "Max error tasks"
+msgstr "最大的错误任务"
+
+msgid "Max success tasks"
+msgstr "最大的成功任务"
+
+msgid "Max total tasks"
+msgstr "最大的总任务"
+
+msgid "Needs validation"
+msgstr "需要验证"
+
+msgid "Initial replication"
+msgstr "初始任务拷贝"
+
+msgid "Target number of results"
+msgstr "结果的目标数量"
+
+msgid "Application version ID"
+msgstr "应用版本 ID"
+
+msgid "Plan class"
+msgstr "计划类别"
+
+msgid "Version number"
+msgstr "版本号"
+
+msgid "Computer"
+msgstr "计算机"
+
+msgid "App version ID"
+msgstr "应用版本 ID"
+
+msgid "Consecutive valid tasks"
+msgstr "连续成功完成的计算任务数目"
+
+msgid "Number of tasks completed"
+msgstr "完成的计算任务数目"
+
+msgid "Max tasks per day"
+msgstr "每日最大任务数量"
+
+msgid "Number of tasks today"
+msgstr "今天的任务数量"
+
+msgid "Manage subscriptions"
+msgstr "订阅管理"
+
+msgid "Avg credit"
+msgstr "平均积分"
+
+msgid "Total credit"
+msgstr "总积分"
 
 msgid "More"
 msgstr "更多"
@@ -455,14 +524,103 @@ msgstr "更多"
 msgid "Tasks"
 msgstr "任务"
 
-msgid "Generic"
-msgstr "一般"
+msgid "Computers hidden"
+msgstr "计算机已隐藏"
 
-msgid "Work"
-msgstr "工作"
+msgid "This user has chosen not to show information about their computers."
+msgstr "该用户已选择不显示他的计算机信息。"
 
-msgid "School"
-msgstr "学习"
+msgid "no projects..."
+msgstr "没有项目..."
+
+msgid "Moderation"
+msgstr "编辑"
+
+msgid "Unvetted profiles"
+msgstr "已验证的用户档案"
+
+msgid "Inbox"
+msgstr "收件箱"
+
+msgid "Compose new"
+msgstr "组建新的"
+
+msgid "Posts contributed"
+msgstr "发表的帖子"
+
+msgid "Friends (@count)"
+msgstr "朋友(@count)"
+
+msgid "Welcome back!"
+msgstr "欢迎回来!"
+
+msgid ""
+"Einstein at Home is a program that uses your computer's idle time to run a "
+"screensaver to search for gravitational waves from spinning neutron stars "
+"(also called pulsars) using data from the LIGO gravitational wave detector."
+msgstr "Einstein at Home项目使用您计算机的空闲时间来搜索从脉冲星发出的引力波。所使用的数据由LIGO引力波探测器提供。"
+
+msgid "Learn more"
+msgstr "了解更多信息"
+
+msgid "View account"
+msgstr "查看帐户"
+
+msgid "User of the day"
+msgstr "今日用户"
+
+msgid "Over 500,000 volunteers and counting."
+msgstr "超过50万名并还在继续增加的志愿者"
+
+msgid "Windows"
+msgstr "Windows"
+
+msgid "Mac"
+msgstr "Mac"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Credits per day"
+msgstr "每日积分"
+
+msgid "View user profile."
+msgstr "查看用户档案"
+
+msgid "Profile awaiting moderator approval"
+msgstr "待审核的个人资料"
+
+msgid "Background"
+msgstr "背景"
+
+msgid "Opinion"
+msgstr "意见"
+
+msgid "Enter your password to save changes"
+msgstr "输入您的密码以保存更改"
+
+msgid ""
+"Enter your current password if changing your email\n"
+"          address or password."
+msgstr "如果您要更改电子邮件地址或密码\n请输入您的当前密码。"
+
+msgid "BOINC user ID"
+msgstr "BOINC用户ID"
+
+msgid "Drupal user ID"
+msgstr "Drupal用户ID"
+
+msgid "Account key"
+msgstr "帐户密钥"
+
+msgid "Weak account key"
+msgstr "弱帐户密钥"
+
+msgid "Cross-project ID"
+msgstr "跨项目标识符(CPID)"
+
+msgid "Change password"
+msgstr "修改用户口令"
 
 msgid "Presets"
 msgstr "预设"
@@ -503,9 +661,6 @@ msgstr "计算机在使用时仍进行计算?"
 msgid "Run GPU work while computer is in use?"
 msgstr "计算机在使用时仍进行 GPU 计算?"
 
-msgid "Enforced by version @number"
-msgstr "要求版本 @number"
-
 msgid "\"In use\" means mouse/keyboard activity in last"
 msgstr "“在使用”表示最近一段时间有鼠标键盘操作"
 
@@ -642,61 +797,38 @@ msgid ""
 "this, for example). Skipping verification reduces the security of BOINC."
 msgstr "仅在你的互联网供应商会修改映像文件时(比如 UMTS 就会)才需要。跳过验证将降低 BOINC 的安全性。"
 
-msgid "Show comparison view"
-msgstr "显示对比视图"
+msgid "search"
+msgstr "搜索"
 
-msgid "Resource settings"
-msgstr "资源设定"
+msgid "What is @this_project?"
+msgstr "@this_project 是什么?"
 
-msgid "Resource share"
-msgstr "资源分享"
+msgid "Login"
+msgstr "登录"
 
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. Example: if you participate in two BOINC projects with resource "
-"shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "决定你的计算资源在该项目的投入比例。比如你分别在两个 BOINC 项目设置了 100 和 200 的资源分享值,则前一个项目将得到 1/3 的资源而第二个将得到 2/3。"
+msgid "BOINC"
+msgstr "BOINC"
 
-msgid "Use CPU"
-msgstr "使用CPU"
-
-msgid "Use NVIDIA GPU"
-msgstr "使用NVIDIA GPU"
-
-msgid "Use ATI GPU"
-msgstr "使用ATI GPU"
-
-msgid "Use INTEL GPU"
-msgstr "使用 INTEL GPU"
-
-msgid "Beta settings"
-msgstr "Beta 设定"
-
-msgid "Run test applications?"
-msgstr "运行测试应用程序吗?"
+msgid "Project"
+msgstr "项目"
 
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "这有助于我们开发应用程序,但可能会导致任务在您的计算机上运行失败"
+msgid "No @type tasks"
+msgstr "没有 @type 类型的任务"
 
-msgid "Default set"
-msgstr "缺省设定"
+msgid "There are no tasks of this type on record"
+msgstr "没有该类型的任务记录"
 
-msgid "Set used for new computers"
-msgstr "用于新计算机的设定"
+msgid "Details"
+msgstr "详细"
 
-msgid "Merge"
-msgstr "合并"
+msgid "Password"
+msgstr "用户口令"
 
-msgid "Delete"
-msgstr "删除"
+msgid "Enter the password that accompanies your username."
+msgstr "输入用户名对应的密码"
 
-msgid ""
-"This will delete host @id from your account forever. Are you sure this is "
-"OK?"
-msgstr "将从你的账户永久删除主机 @id,确定要继续吗?"
+msgid "Request new password"
+msgstr "请求新密码"
 
 msgid "Mark all topics read"
 msgstr "标记所有主题已读"
@@ -724,146 +856,151 @@ msgstr "禁用富文本"
 msgid "Enable rich-text"
 msgstr "启用富文本"
 
-msgid "View user profile."
-msgstr "查看用户档案"
+msgid "Teams"
+msgstr "团队"
 
-msgid "BBcode help"
-msgstr "BBcode 帮助"
+msgid ""
+"@project participants may form teams. You may belong to only one team. You "
+"can join or quit a team at any time. To join a team, visit its team page and"
+" click \"Join this team\". Each team has a founder who may:"
+msgstr "@project 项目的参与者可以组成团队。你只能加入一个团队。你可以在任何时间加入或退出团队。要加入团队,访问团队页面并点击“加入该团队”。每个团队都有一个创建人,他可以:"
 
-msgid "Post comment"
-msgstr "发表回复"
+msgid "access team members' email addresses"
+msgstr "访问团队成员的电子邮件地址"
 
-msgid "No @type tasks"
-msgstr "没有 @type 类型的任务"
+msgid "edit the team's name and description"
+msgstr "编辑团队的名称及描述"
 
-msgid "There are no tasks of this type on record"
-msgstr "没有该类型的任务记录"
+msgid "add or remove team admins"
+msgstr "增加或移除团队管理员"
 
-msgid "Clear"
-msgstr "清除"
+msgid "remove members from the team"
+msgstr "移除团队中的成员"
 
-msgid ""
-"This will remove all of your settings from the @name preference set. Are you"
-" sure?"
-msgstr "将要移除你在 @name 的所有参数设定,确定继续吗?"
+msgid "disband a team if it has no members"
+msgstr "解散没有成员的团队"
 
-msgid "These apply to all BOINC projects in which you participate."
-msgstr "这些参数设置对你参加的所有 BOINC 项目均有效。"
+msgid "Search teams"
+msgstr "搜索团队"
+
+msgid "Create a new team"
+msgstr "创建新团队"
 
 msgid ""
-"On computers attached to multiple projects, the most recently modified "
-"preferences will be used."
-msgstr "对于加入了多个项目的计算机,将使用最近更新过的参数设定。"
+"If you cannot find a team that is right for you, you can create a team."
+msgstr "如果找不到对你合适的团队,你也可以创建一个团队。"
 
-msgid "Preferences last modified: @mod_time"
-msgstr "参数设定最后的修改时间:@mod_time"
+msgid "You must earn 1 more credit!"
+msgstr "你的积分必须至少为1!"
 
-msgid "Combined preferences"
-msgstr "横排的参数设置"
+msgid "@count million ops/sec"
+msgstr "@count 百万操作/秒"
 
-msgid "Switch View"
-msgstr "切换视图"
+msgid "@rate KiB/sec"
+msgstr "@rate 千字节/秒"
 
-msgid "every"
-msgstr "每"
+msgid "@count days"
+msgstr "@count 天"
 
-msgid "Edit"
-msgstr "编辑"
+msgid "Stderr output"
+msgstr "标准错误输出"
 
-msgid ""
-"This will remove all of your settings from the \"@name\" preference set. Are"
-" you sure?"
-msgstr "将要移除你在“@name”的所有参数设定,确定继续吗?"
+msgid "Email address"
+msgstr "电子邮件地址"
 
-msgid "Add"
-msgstr "添加"
+msgid "Enter your @s email address."
+msgstr "请输入您的 @s 电子邮件地址。"
 
-msgid "General settings"
-msgstr "一般设定"
+msgid "Log in"
+msgstr "登录"
 
-msgid "Time zone"
-msgstr "时区"
+msgid "Sorry, unrecognized email address or password."
+msgstr "对不起,无法识别的邮件地址或登录密码。"
 
-msgid "Notification settings"
-msgstr "通知设定"
+msgid "Have you forgotten your password?"
+msgstr "忘记密码?"
 
-msgid "Receive email notification for private messages?"
-msgstr "接收私人消息的邮件通知?"
+msgid "No results found..."
+msgstr "未找到结果..."
 
-msgid "Receive email notification for friend requests?"
-msgstr "接收好友请求的邮件通知?"
+msgid "Anonymous"
+msgstr "匿名"
 
-msgid "Language settings"
-msgstr "语言设定"
+msgid "Forgot password"
+msgstr "忘记密码"
 
-msgid ""
-"This account's default language for e-mails and preferred language for site "
-"presentation."
-msgstr "该账户用于电子邮件的缺省语言和站点内容呈现的首选语言"
+msgid "authenticator-based login"
+msgstr "基于身份验证器登录"
 
 msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, it will be used for your user picture."
-msgstr "如果你有一个<a href=\"@gravatar-check\">正确的头像</a> 和你的电子邮件地址关联,它将被用作你的用户图片。"
+"Enter your email address to receive instructions for resetting your password"
+" (or use the !authenticator_login)."
+msgstr "输入您的电子邮件地址用于收到重置密码的指示 (或使用 !authenticator_login)。"
 
-msgid "Your Gravatar will not be shown if you upload a user picture."
-msgstr "如果你上传了一张用户图片,则不会显示你的头像。"
+msgid "Send"
+msgstr "发送"
 
-msgid ""
-"If you have a <a href=\"@gravatar-check\">valid Gravatar</a> associated with"
-" your e-mail address, use it for your user picture."
-msgstr "如果你有一个<a href=\"@gravatar-check\">正确的头像</a> 与你的电子邮件地址关联,它将被用作你的用户图片。"
+msgid "Submitted by !username on !datetime"
+msgstr "由 !username 在 !datetime 提交"
 
-msgid "Gravatar will not be shown if an avatar is uploaded."
-msgstr "如果上传了头像,则不会显示。"
+msgid "Send message"
+msgstr "发送消息"
 
-msgid "Avatar settings"
-msgstr "头像设定"
+msgid "Add as friend"
+msgstr "添加为好友"
 
-msgid "This is not available until your profile is set up."
-msgstr "仅在你的档案创建后才可用。"
+msgid "Website"
+msgstr "网站"
 
-msgid "Create a profile"
-msgstr "创建一个用户档案"
+msgid "Team"
+msgstr "团队"
 
-msgid "Upload an avatar"
-msgstr "上传一个新头像"
+msgid "Create new team"
+msgstr "创建新团队"
 
-msgid "Forum settings"
-msgstr "论坛设定"
+msgid "Search"
+msgstr "搜索"
 
-msgid "In discussion topics, show at most @comments_per_page"
-msgstr "在讨论主题里,最多显示 @comments_per_page 条回复"
+msgid "Total credits"
+msgstr "总积分"
 
-msgid "comments per page"
-msgstr "每页评论数"
+msgid "Recent avg credits"
+msgstr "近期平均积分"
 
-msgid "Sort comments in discussions"
-msgstr "讨论主题的回复排序"
+msgid "Type"
+msgstr "类型"
 
-msgid "Newest post first"
-msgstr "发帖时间最新的在前面"
+msgid "New members in last day"
+msgstr "昨天新加入的成员"
 
-msgid "Oldest post first"
-msgstr "发帖时间最旧的在前面"
+msgid "Total members"
+msgstr "所有成员"
 
-msgid "Signature"
-msgstr "签名"
+msgid "Active members"
+msgstr "活跃的成员"
 
-msgid "Your signature will be publicly displayed at the end of your comments."
-msgstr "你的签字将在回复的最后进行显示。"
+msgid "Members with credit"
+msgstr "有积分的成员"
 
-msgid "Hide signatures in forums"
-msgstr "在论坛里隐藏签名"
+msgid "Web site"
+msgstr "网站"
 
-msgid "Privacy settings"
-msgstr "隐私设定"
+msgid "Description"
+msgstr "描述"
 
-msgid "Is it OK for @project and your team (if any) to email you?"
-msgstr "是否允许 @project 和你所在的团队(如果有的话)给你发送邮件?"
+msgid "BBcode help"
+msgstr "BBcode 帮助"
 
-msgid "Should @project show your computers on its web site?"
-msgstr "@project 是否应该在网站上显示你的计算机?"
+msgid "Post comment"
+msgstr "发表回复"
+
+#: preference set
+msgctxt "preference set"
+msgid "Home"
+msgstr "家庭"
+
+msgid "The latest news from the @site_name project"
+msgstr "来自 @site_name 项目的最新消息"
 
 msgid "Hide"
 msgstr "隐藏"
@@ -886,606 +1023,421 @@ msgstr "将本主题置顶显示"
 msgid "moderation"
 msgstr "仲裁"
 
-msgid "Post new comment"
-msgstr "发表新回复"
-
-msgid "You must earn 1 more credit!"
-msgstr "你的积分必须至少为1!"
+msgid "Reply"
+msgstr "回复"
 
-msgid "Joined"
-msgstr "已加入"
+msgid "Reply to this comment"
+msgstr "回复该消息"
 
-msgid "Credit"
-msgstr "积分"
+msgid "Quote"
+msgstr "引用"
 
-msgid "RAC"
-msgstr "近期平均积分"
-
-msgid "Join team"
-msgstr "加入团队"
-
-msgid "Click here to become a member of @this_team"
-msgstr "点击这里成为 @this_team 的成员"
-
-msgid "Join this team"
-msgstr "加入该团队"
-
-msgid "Manage team"
-msgstr "管理团队"
-
-msgid "View member list"
-msgstr "查看成员列表"
-
-msgid "Member names and emails"
-msgstr "成员名称和电子邮箱地址"
-
-msgid "View change history"
-msgstr "查看变更历史"
-
-msgid "See member activity"
-msgstr "查看成员活动"
-
-msgid "Manage team message board"
-msgstr "管理团队留言板"
-
-msgid "Create or manage message board"
-msgstr "创建或管理留言板"
-
-msgid "Remove members"
-msgstr "移除团队成员"
-
-msgid "Change founder"
-msgstr "更改团队创建人"
-
-msgid "Manage team admins"
-msgstr "管理团队管理员"
-
-msgid "Edit team info"
-msgstr "编辑团队信息"
-
-msgid "Remove team"
-msgstr "移除团队"
-
-msgid "Team forum"
-msgstr "团队论坛"
-
-msgid "A discussion forum has been set up for team members."
-msgstr "已为团队成员创建论坛。"
-
-msgid "Enter forum"
-msgstr "进入论坛"
-
-msgid "Leave team"
-msgstr "离开团队"
-
-msgid "Click here to revoke your membership with @this_team"
-msgstr "点击这里来退出 @this_team"
-
-msgid "Leave this team"
-msgstr "离开该团队"
-
-msgid "Edit message board"
-msgstr "编辑留言板"
-
-msgid "Message board title"
-msgstr "留言板标题"
-
-msgid "Text only, no HTML tags"
-msgstr "仅文本,不允许 HTML 标签"
-
-msgid "Minimum time between posts"
-msgstr "最小的发贴时间间隔"
-
-msgid "Seconds"
-msgstr "秒"
-
-msgid "Minimum total credit to post"
-msgstr "发贴要求的最低总积分"
-
-msgid "Minimum avg credit to post"
-msgstr "发帖要求的最低平均积分"
-
-msgid "Allow public to read board?"
-msgstr "是否允许公众访问该留言板?"
-
-msgid "Save message board"
-msgstr "保存留言板"
-
-msgid "About message boards"
-msgstr "关于留言板"
-
-msgid "This is a team-only message board"
-msgstr "这里只对团队成员开放的留言板"
-
-msgid "Only members may post"
-msgstr "只有团队成员可以发贴"
-
-msgid "Only members may read (optional)"
-msgstr "只有团队成员可以阅读(可选)"
-
-msgid "Founder & Team Admins have moderator privileges"
-msgstr "创建人和团队管理员有仲裁的权利"
-
-msgid "Changing the team founder"
-msgstr "改变团队创建人"
-
-msgid "Notes about changes in foundership:"
-msgstr "创建人修改的注意事项:"
-
-msgid "Any member of the team is eligible"
-msgstr "每个团队成员都可以成为创建人"
-
-msgid "Current founder becomes a normal user"
-msgstr "当前创建人将变成普通用户"
+msgid "Reply to this comment with quote"
+msgstr "引用回复该消息"
 
-msgid "Foundership can be requested by team members:"
-msgstr "团队成员可以主动请求成为创建人"
+msgid "Edit"
+msgstr "编辑"
 
-msgid "One request is allowed at a time"
-msgstr "一次只能处理一个请求"
+msgid "Edit this comment"
+msgstr "编辑此回复"
 
-msgid "It must be 60 days since any previous request"
-msgstr "请求的间隔至少是 60 天"
+msgid "Delete"
+msgstr "删除"
 
-msgid "Any active request must be older than 90 days"
-msgstr "请求的有效期至少是 90 天"
+msgid "Delete this comment"
+msgstr "删除此回复"
 
-msgid "Current founder has 60 days to respond to a request"
-msgstr "当前的创建人有 60 天的时间来处理一个请求"
+msgid "Hide this comment"
+msgstr "隐藏此恢复"
 
-msgid "Add team admin"
-msgstr "增加团队管理员"
+msgid "Message @id"
+msgstr "消息 @id"
 
-msgid "Enter email address"
-msgstr "输入电子邮件地址"
+msgid "Convert"
+msgstr "转换"
 
-msgid "Current team admins"
-msgstr "当前的团队管理员"
+msgid "Convert this comment to a new topic"
+msgstr "将此回复转移成一个新主题"
 
-msgid "About team admins"
-msgstr "关于团队管理员"
+msgid "message @id"
+msgstr "消息 @id"
 
-msgid "Team admins can:"
-msgstr "团队管理员可以:"
+msgid " in response to !parent"
+msgstr "回复 !parent"
 
-msgid "Edit team information"
-msgstr "编辑团队信息"
+msgid "Post new comment"
+msgstr "发表新回复"
 
-msgid "View the team's join / quit history"
-msgstr "查看团队的成员加入、退出历史"
+msgid "Comments"
+msgstr "评论"
 
-msgid "Moderate the team forum"
-msgstr "团队论坛仲裁"
+msgid "discuss"
+msgstr "讨论"
 
-msgid "Remove members from the team"
-msgstr "从团队中移除成员"
+msgid "n/a"
+msgstr "不适用"
 
-msgid "Disband a team if it has no members"
-msgstr "解散没有成员的团队"
+msgid "@time ago"
+msgstr "@time 之前"
 
-msgid "Team admins cannot:"
-msgstr "团队管理员不能:"
+msgid "Threads"
+msgstr "主题"
 
-msgid "Change the team founder"
-msgstr "改变团队创建人"
+msgid "Posts"
+msgstr "贴数"
 
-msgid "Add / Remove team admins"
-msgstr "增加或移除团队管理员"
+msgid "Last post"
+msgstr "最近发贴"
 
 msgid ""
-"If a team admin quits the team, they cease to be a team admin. We recommend "
-"only selecting people you know and trust"
-msgstr "如果团队管理员退出团队,他将不再是团队管理员。我们建议只选择你认识并信任的人。"
-
-msgid "Choose type"
-msgstr "选择类型"
-
-msgid "Team name"
-msgstr "团队名称"
-
-msgid "Team name -- HTML version (optional)"
-msgstr "团队名称 -- HTML 版本(可选)"
-
-msgid "You may use limited HTML tags"
-msgstr "你可以使用有限的 HTML 标签"
-
-msgid "Team website (optional)"
-msgstr "团队网站(可选)"
-
-msgid "Displayed on the team's page"
-msgstr "在团队页面上显示"
-
-msgid "Type of team"
-msgstr "团队类型"
-
-msgid "Accept new members?"
-msgstr "是否接受新的团队成员?"
-
-msgid "Description of team"
-msgstr "团队描述"
-
-msgid "Create new team"
-msgstr "创建新团队"
-
-msgid "Create a team"
-msgstr "创建一个团队"
-
-msgid "Save team"
-msgstr "保存团队"
-
-msgid "Create team message board"
-msgstr "创建团队留言板"
-
-msgid "Create message board"
-msgstr "创建留言板"
+"Please be responsible in what you write and do not create posts which are "
+"offensive or insulting. Offensive posts or threads may be deleted by forum "
+"moderators without warning or discussion. Do not respond to offensive "
+"postings. Click on the \"report\" button at the bottom of the post to call "
+"it to the attention of the moderators."
+msgstr "请对你所写的内容负责,不要发表含有攻击性或侮辱性的帖子。论坛版主可以不经警告或讨论而直接删除不恰当的帖子或主题。不要在无礼的帖子上浪费时间,请直接单击底部的\"报告\"按钮向版主报告这个帖子。"
 
-msgid "You may create a message board for use by @team"
-msgstr "你可以为 @team 团队创建一个留言板"
+msgid "this project"
+msgstr "此项目"
 
 msgid ""
-"Please set the minimum average credit that a user is required to have in "
-"order to post to this message board."
-msgstr "请设置用户在该留言板发贴所要求的最小平均积分。"
-
-msgid "Post new topic"
-msgstr "发表新主题"
-
-msgid "Anonymous"
-msgstr "匿名"
-
-msgid "Unpublished"
-msgstr "未发表"
-
-msgid "parent removed"
-msgstr "parent 已移除"
-
-msgid "Sorry, unrecognized email address or password."
-msgstr "对不起,无法识别的邮件地址或登录密码。"
-
-msgid "Have you forgotten your password?"
-msgstr "忘记密码?"
-
-msgid "Id"
-msgstr "ID"
-
-msgid "Recent average credit"
-msgstr "近期平均积分"
-
-msgid "Members"
-msgstr "成员"
-
-msgid "Total Credit"
-msgstr "总积分"
-
-msgid "User ID"
-msgstr "用户 ID"
-
-msgid "User"
-msgstr "用户"
-
-msgid "Admin since"
-msgstr "成为管理员"
-
-msgid "Team ID"
-msgstr "团队 ID"
-
-msgid "User joined"
-msgstr "成为用户"
-
-msgid "Timestamp"
-msgstr "时间戳"
-
-msgid "Account Key"
-msgstr "帐户密钥"
-
-msgid "CPID"
-msgstr "CPID"
-
-msgid "Email Address"
-msgstr "电子邮件地址"
+"We also ask that you keep all discussion on the message boards related to "
+"@project or BOINC with the small exception of the Science message board "
+"where you are free to discuss anything relevant to the underlying science. "
+"Participants interested in broader discussions should post to unofficial "
+"forums for @project."
+msgstr "我们也要求你保证留言板上的所有讨论均在@project 或 BOINC的范围内。除了一个小小的例外,科学留言板,你可以在那里自由讨论任何有关的基本科学问题。更广泛的讨论应该发表到 @project 的非正式论坛。"
 
-msgid "Password Hash"
-msgstr "密码哈希"
+msgid "These message boards now support BBCode tags only."
+msgstr "这些留言板目前仅支持BBCode标记。"
 
-msgid "Postal Code"
-msgstr "邮编"
+msgid "Featured"
+msgstr "特色"
 
-msgid "Send Email"
-msgstr "发送邮件"
+msgid "Locked"
+msgstr "已锁定"
 
-msgid "Show Hosts"
-msgstr "显示主机"
+msgid "Submitted on !datetime"
+msgstr "提交于 !datetime"
 
-msgid "URL"
-msgstr "网址"
+msgid "Computers pending"
+msgstr "等待的计算机"
 
-msgid "Computer ID"
-msgstr "计算机编号"
+msgid ""
+"This user does not yet have any associated computers. Computers will be "
+"displayed when they have earned their first credits."
+msgstr "该用户没有关联的计算机,计算机将在首次得到积分后显示出来。"
 
-msgid "Location"
-msgstr "位置"
+msgid "Show IP address"
+msgstr "显示 IP 地址"
 
-msgid "While BOINC running, % of time work is allowed"
-msgstr "当 BOINC 在运行时,允许计算的时间比例"
+msgid "Download the desktop software"
+msgstr "下载桌面软件"
 
-msgid "Average turnaround time"
-msgstr "平均任务周转时间"
+msgid "Run the installer"
+msgstr "运行安装程序"
 
-msgid "Created"
-msgstr "创建时间"
+msgid "hours"
+msgstr "时"
 
-msgid "While BOINC running, % of time host has an Internet connection"
-msgstr "当 BOINC 在运行时,主机拥有互联网连接的时间比例"
+msgid "When prompted enter @siteurl"
+msgstr "根据提示输入 @siteurl"
 
-msgid "Average CPU efficiency"
-msgstr "平均的 CPU 运行效率"
+msgid "Merge"
+msgstr "合并"
 
-msgid "Free disk space"
-msgstr "剩余磁盘空间"
+msgid ""
+"This will delete host @id from your account forever. Are you sure this is "
+"OK?"
+msgstr "将从你的账户永久删除主机 @id,确定要继续吗?"
 
-msgid "Total disk space"
-msgstr "总磁盘空间"
+msgid "Post topic"
+msgstr "发表主题"
 
-msgid "Task duration correction factor"
-msgstr "任务时长校正因子"
+msgid "Leave team"
+msgstr "离开团队"
 
-msgid "Avg. credit"
-msgstr "平均积分"
+msgid "Click here to revoke your membership with @this_team"
+msgstr "点击这里来退出 @this_team"
 
-msgid "External IP address"
-msgstr "外部 IP 地址"
+msgid "Leave this team"
+msgstr "离开该团队"
 
-msgid "Cross project ID"
-msgstr "跨项目标识符(CPID)"
+msgid "Request foundership"
+msgstr "请求创建人资格"
 
-msgid "Last IP address"
-msgstr "最近使用的 IP 地址"
+msgid ""
+"If the team founder is not active and you want to assume the role of "
+"founder, click below to request foundership of @this_team."
+msgstr "在团队创始人处于不活跃状态的情况下,如果您想要代替其成为创始人,请点击下面以申请成为 @this_team 的创始人。"
 
-msgid "Cache"
-msgstr "缓存"
+msgid "Initiate request"
+msgstr "发起请求"
 
-msgid "Memory"
-msgstr "内存(RAM)"
+msgid "No active computers"
+msgstr "没有活跃的计算机"
 
-msgid "Swap space"
-msgstr "交换空间"
+msgid "This user has no computers that have been active in the last 30 days."
+msgstr "用户在过去 30 天没有活跃的计算机"
 
-msgid "Maximum daily WU quota per CPU"
-msgstr "单 CPU 每日 WU 限额"
+msgid "Clear"
+msgstr "清除"
 
-msgid "Average download rate"
-msgstr "平均下载速度"
+msgid ""
+"This will remove all of your settings from the @name preference set. Are you"
+" sure?"
+msgstr "将要移除你在 @name 的所有参数设定,确定继续吗?"
 
-msgid "Average upload rate"
-msgstr "平均上传速度"
+msgid "Your community preferences have been updated."
+msgstr "已更新您的社区参数设置。"
 
-msgid "Same IP address count"
-msgstr "同 IP 地址的数量"
+msgid "Combined preferences"
+msgstr "横排的参数设置"
 
-msgid "% of time BOINC client is running"
-msgstr "% BOINC 客户端运行时间"
+msgid "Switch View"
+msgstr "切换视图"
 
-msgid "Operating system"
-msgstr "操作系统"
+msgid ""
+"This will remove all of your settings from the \"@name\" preference set. Are"
+" you sure?"
+msgstr "将要移除你在“@name”的所有参数设定,确定继续吗?"
 
-msgid "Operating system version"
-msgstr "操作系统版本"
+msgid "Approve profile"
+msgstr "批准个人资料"
 
-msgid "Measured floating point speed"
-msgstr "浮点运算速度"
+msgid "Approve this profile content"
+msgstr "批准此个人资料内容"
 
-msgid "Measured integer speed"
-msgstr "整数运算速度"
+msgid "Reject this profile content"
+msgstr "拒绝此个人资料内容"
 
-msgid "CPU model"
-msgstr "CPU 型号"
+msgid "These apply to all BOINC projects in which you participate."
+msgstr "这些参数设置对你参加的所有 BOINC 项目均有效。"
 
-msgid "Number of processors"
-msgstr "数据器数量"
+msgid ""
+"On computers attached to multiple projects, the most recently modified "
+"preferences will be used."
+msgstr "对于加入了多个项目的计算机,将使用最近更新过的参数设定。"
 
-msgid "CPU"
-msgstr "CPU"
+msgid "Preferences last modified: @mod_time"
+msgstr "参数设定最后的修改时间:@mod_time"
 
-msgid "Number of times client has contacted server"
-msgstr "客户端连接服务端的次数"
+msgid "every"
+msgstr "每"
 
-msgid "Last contact"
-msgstr "最近一次通讯"
+msgid "Add"
+msgstr "添加"
 
-msgid "Serial number"
-msgstr "序列号"
+msgid "My team"
+msgstr "我的团队"
 
-msgid "Timezone"
-msgstr "时区"
+msgid "You are a member of @team."
+msgstr "你是 @team 的成员。"
 
-msgid "Platform ID"
-msgstr "平台 ID"
+msgid "View my team"
+msgstr "查看我的团队"
 
-msgid "Task ID"
-msgstr "任务 ID"
+msgid "Manage team"
+msgstr "管理团队"
 
-msgid "Workunit ID"
-msgstr "任务单元 ID"
+msgid "View member list"
+msgstr "查看成员列表"
 
-msgid "Host ID"
-msgstr "主机 ID"
+msgid "Member names and emails"
+msgstr "成员名称和电子邮箱地址"
 
-msgid "Application ID"
-msgstr "应用程序 ID"
+msgid "View change history"
+msgstr "查看变更历史"
 
-msgid "Application version"
-msgstr "计算程序版本"
+msgid "See member activity"
+msgstr "查看成员活动"
 
-msgid "Claimed credit"
-msgstr "申请积分"
+msgid "Manage team message board"
+msgstr "管理团队留言板"
 
-msgid "Client state"
-msgstr "客户端状态"
+msgid "Create or manage message board"
+msgstr "创建或管理留言板"
 
-msgid "CPU time"
-msgstr "已用 CPU 时间"
+msgid "Remove members"
+msgstr "移除团队成员"
 
-msgid "Run time"
-msgstr "运行时间"
+msgid "Change founder"
+msgstr "更改团队创建人"
 
-msgid "Exit status"
-msgstr "退出状态"
+msgid "Manage team admins"
+msgstr "管理团队管理员"
 
-msgid "Granted credit"
-msgstr "授予的积分"
+msgid "Edit team info"
+msgstr "编辑团队信息"
 
-msgid "Outcome"
-msgstr "结果"
+msgid "Remove team"
+msgstr "移除团队"
 
-msgid "Received time"
-msgstr "接收时间"
+msgid "Team forum"
+msgstr "团队论坛"
 
-msgid "Report deadline"
-msgstr "上报期限"
+msgid "A discussion forum has been set up for team members."
+msgstr "已为团队成员创建论坛。"
 
-msgid "Sent"
-msgstr "发送时间"
+msgid "Enter forum"
+msgstr "进入论坛"
 
-msgid "Server state"
-msgstr "服务端状态"
+msgid "Join team"
+msgstr "加入团队"
 
-msgid "Stderr out"
-msgstr "标准错误输出"
+msgid "Click here to become a member of @this_team"
+msgstr "点击这里成为 @this_team 的成员"
 
-msgid "Validation state"
-msgstr "验证状态"
+msgid "Join this team"
+msgstr "加入该团队"
 
-msgid "App ID"
-msgstr "应用 ID"
+msgid "Choose type"
+msgstr "选择类型"
 
-msgid "Canonical credit"
-msgstr "规范积分"
+msgid "Team name"
+msgstr "团队名称"
 
-msgid "Canonical result ID"
-msgstr "规范结果 ID"
+msgid "Text only, no HTML tags"
+msgstr "仅文本,不允许 HTML 标签"
 
-msgid "Created time"
-msgstr "创建时间"
+msgid "Team name -- HTML version (optional)"
+msgstr "团队名称 -- HTML 版本(可选)"
 
-msgid "Error mask"
-msgstr "错误掩码"
+msgid "You may use limited HTML tags"
+msgstr "你可以使用有限的 HTML 标签"
 
-msgid "Minimum quorum"
-msgstr "最小配额"
+msgid "Team website (optional)"
+msgstr "团队网站(可选)"
 
-msgid "Max error tasks"
-msgstr "最大的错误任务"
+msgid "Displayed on the team's page"
+msgstr "在团队页面上显示"
 
-msgid "Max success tasks"
-msgstr "最大的成功任务"
+msgid "Type of team"
+msgstr "团队类型"
 
-msgid "Max total tasks"
-msgstr "最大的总任务"
+msgid "Accept new members?"
+msgstr "是否接受新的团队成员?"
 
-msgid "Needs validation"
-msgstr "需要验证"
+msgid "Description of team"
+msgstr "团队描述"
 
-msgid "Initial replication"
-msgstr "初始任务拷贝"
+msgid "Create a team"
+msgstr "创建一个团队"
 
-msgid "Target number of results"
-msgstr "结果的目标数量"
+msgid "Save team"
+msgstr "保存团队"
 
-msgid "Application version ID"
-msgstr "应用版本 ID"
+msgid ""
+"If you're already running BOINC, select <i>Add\n"
+"      Project</i>."
+msgstr "如果你已经在使用 BOINC,选择<i>增加项目</i>。"
 
-msgid "Plan class"
-msgstr "计划类别"
+msgid ""
+"If you're running a command-line version of BOINC,\n"
+"        first use the BOINC Manager software (elsewhere if necessary) to create an\n"
+"        an account at this project, then use that account to connect with the\n"
+"        command-line version."
+msgstr "如果你正在使用命令行版本的 BOINC,\n先使用 BOINC Manager 创建该项目的账户,\n然后在命令行版本中使用该账户来连接。"
 
-msgid "Version number"
-msgstr "版本号"
+msgid ""
+"If you're running a pre-5.0 version of BOINC, please\n"
+"        upgrade to a more recent version to create an account\n"
+"        at this project."
+msgstr "如果你在使用 5.0 之前版本的 BOINC,请升级到更近的版本来创建账户。"
 
-msgid "Computer"
-msgstr "计算机"
+msgid ""
+"If you forgot your account's email address, or you can't receive email "
+"there:"
+msgstr "如果你已经忘记了你账户所关联的电子邮箱地址,或者你已经不能从该地址接收电子邮件:"
 
-msgid "App version ID"
-msgstr "应用版本 ID"
+msgid ""
+"If you have run BOINC under the account, you can still access it. Here's "
+"how:"
+msgstr "如果您已经在帐户下运行 BOINC,您仍然可以访问它。这里是方法:"
 
-msgid "Consecutive valid tasks"
-msgstr "连续成功完成的计算任务数目"
+msgid "BOINC documentation"
+msgstr "BOINC 文档"
 
-msgid "Number of tasks completed"
-msgstr "完成的计算任务数目"
+msgid ""
+"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
+"finding this)."
+msgstr "打开你计算机上的 BOINC 数据文件夹(请参见!boinc_wiki来帮助您找到这个文件夹)。"
 
-msgid "Max tasks per day"
-msgstr "每日最大任务数量"
+msgid ""
+"Find your account file for this project; it will have a name like %file "
+"(where the project URL is %url)."
+msgstr "找到本项目的账户文件;文件名像 %文件 (如项目 URL 是 %url)。"
 
-msgid "Number of tasks today"
-msgstr "今天的任务数量"
+msgid ""
+"Open the file in a text editor like Notepad. You'll see something like:"
+msgstr "用记事本等文本编辑器打开该文件,你将看到类似的如下内容:"
 
-msgid "Show IP address"
-msgstr "显示 IP 地址"
+msgid ""
+"Select and Copy the string between <authenticator> and "
+"</authenticator> (%auth in the above example)."
+msgstr "选中并复制< authenticator> 和 &lt之间的字符串;/authenticator> (上述例子中就应该是%auth )。"
 
-msgid "hours"
-msgstr "时"
+msgid "Paste the string into the field below, and click OK."
+msgstr "将之前复制的内容粘贴到下面的表单中,并点击确定。"
 
-msgid "@count million ops/sec"
-msgstr "@count 百万操作/秒"
+msgid ""
+"You will now be logged in to your account; update the email and password of "
+"your account."
+msgstr "你现在将登录进自己的账户,可以更新你的电子邮箱地址和账户口令。"
 
-msgid "@rate KiB/sec"
-msgstr "@rate 千字节/秒"
+msgid "Log in with authenticator"
+msgstr "用身份验证码(authenticator)来登录"
 
-msgid "@count days"
-msgstr "@count 天"
+msgid "OK"
+msgstr "确定"
 
-msgid "Remove friend"
-msgstr "移除朋友"
+msgid "Post new topic"
+msgstr "发表新主题"
 
-msgid "Ban user"
-msgstr "禁止用户"
+msgid "Create team message board"
+msgstr "创建团队留言板"
 
-msgid "Add as friend"
-msgstr "添加为好友"
+msgid "Message board title"
+msgstr "留言板标题"
 
-msgid "Team"
-msgstr "团队"
+msgid "Minimum time between posts"
+msgstr "最小的发贴时间间隔"
 
-msgid "Reply"
-msgstr "回复"
+msgid "Seconds"
+msgstr "秒"
 
-msgid "Reply to this comment"
-msgstr "回复该消息"
+msgid "Minimum total credit to post"
+msgstr "发贴要求的最低总积分"
 
-msgid "Quote"
-msgstr "引用"
+msgid "Minimum avg credit to post"
+msgstr "发帖要求的最低平均积分"
 
-msgid "Reply to this comment with quote"
-msgstr "引用回复该消息"
+msgid "Allow public to read board?"
+msgstr "是否允许公众访问该留言板?"
 
-msgid "Edit this comment"
-msgstr "编辑此回复"
+msgid "Create message board"
+msgstr "创建留言板"
 
-msgid "Delete this comment"
-msgstr "删除此回复"
+msgid "About message boards"
+msgstr "关于留言板"
 
-msgid "Hide this comment"
-msgstr "隐藏此恢复"
+msgid "You may create a message board for use by @team"
+msgstr "你可以为 @team 团队创建一个留言板"
 
-msgid "Convert"
-msgstr "转换"
+msgid "Only members may post"
+msgstr "只有团队成员可以发贴"
 
-msgid "Convert this comment to a new topic"
-msgstr "将此回复转移成一个新主题"
+msgid "Only members may read (optional)"
+msgstr "只有团队成员可以阅读(可选)"
 
-msgid "Details"
-msgstr "详细"
+msgid "Founder & Team Admins have moderator privileges"
+msgstr "创建人和团队管理员有仲裁的权利"
 
 msgid "@ip_address (same the last @count times)"
 msgstr "@ip_address(最近 @count 次)"
 
-msgid "commented on"
-msgstr "评论时间"
-
-msgid "Make unsticky"
-msgstr "取消置顶"
-
-msgid "Remove sticky status from this topic"
-msgstr "去除此主题的置顶状态"
+msgid "Revise or post comment"
+msgstr "修改或发表评论"
 
 msgid ""
 "Sometimes BOINC assigns separate identities to the same computer by mistake."
@@ -1500,321 +1452,304 @@ msgstr "检查和 @name 同名的计算机(计算机 ID %id,创建日期及
 msgid "Computer @old_id has been merged successfully into @id."
 msgstr "计算机 @old_id 已被成功合并到 @id。"
 
-msgid "started discussion"
-msgstr "已开始的讨论"
-
-msgid "posted"
-msgstr "已发表"
-
-msgid "Minimum value not met for @field"
-msgstr "@field 未达到最小值"
+msgid "parent removed"
+msgstr "parent 已移除"
 
 msgid "Remove"
 msgstr "删除"
 
-msgid "hidden"
-msgstr "隐藏"
-
-msgid "Invalid data type for @field"
-msgstr "@field 非法数据类型"
-
 msgid ""
 "Authentication is required when changing E-mail address or setting new "
 "password."
 msgstr "更改电子邮件地址或密码时,需要验证身份。"
 
-msgid "Request foundership"
-msgstr "请求创建人资格"
+msgid "Make unsticky"
+msgstr "取消置顶"
 
-msgid ""
-"If the team founder is not active and you want to assume the role of "
-"founder, click below to request foundership of @this_team."
-msgstr "在团队创始人处于不活跃状态的情况下,如果您想要代替其成为创始人,请点击下面以申请成为 @this_team 的创始人。"
+msgid "Remove sticky status from this topic"
+msgstr "去除此主题的置顶状态"
 
-msgid "Initiate request"
-msgstr "发起请求"
+msgid "Unhide"
+msgstr "取消隐藏"
 
-msgid "A BOINC account already exists for @email."
-msgstr "@email名下已经注册了一个BOINC账户,请尝试登录。"
+msgid "Unhide this comment"
+msgstr "取消隐藏此回复"
 
-msgid ""
-"Please be responsible in what you write and do not create posts which are "
-"offensive or insulting. Offensive posts or threads may be deleted by forum "
-"moderators without warning or discussion. Do not respond to offensive "
-"postings. Click on the \"report\" button at the bottom of the post to call "
-"it to the attention of the moderators."
-msgstr "请对你所写的内容负责,不要发表含有攻击性或侮辱性的帖子。论坛版主可以不经警告或讨论而直接删除不恰当的帖子或主题。不要在无礼的帖子上浪费时间,请直接单击底部的\"报告\"按钮向版主报告这个帖子。"
+msgid "Unpublished"
+msgstr "未发表"
 
-msgid "this project"
-msgstr "此项目"
+msgid "Computers @old_ids have been merged successfully into @id."
+msgstr "计算机 @old_id 已被成功合并到 @id。"
 
-msgid ""
-"We also ask that you keep all discussion on the message boards related to "
-"@project or BOINC with the small exception of the Science message board "
-"where you are free to discuss anything relevant to the underlying science. "
-"Participants interested in broader discussions should post to unofficial "
-"forums for @project."
-msgstr "我们也要求你保证留言板上的所有讨论均在@project 或 BOINC的范围内。除了一个小小的例外,科学留言板,你可以在那里自由讨论任何有关的基本科学问题。更广泛的讨论应该发表到 @project 的非正式论坛。"
+msgid "Joined"
+msgstr "已加入"
 
-msgid "These message boards now support BBCode tags only."
-msgstr "这些留言板目前仅支持BBCode标记。"
+msgid "Credit"
+msgstr "积分"
 
-msgid "Posts contributed"
-msgstr "发表的帖子"
+msgid "RAC"
+msgstr "近期平均积分"
 
-msgid "Profile awaiting moderator approval"
-msgstr "待审核的个人资料"
+msgid "No account exists for @email -- select \"Create new account\" to register"
+msgstr "名为 @email 的帐户不存在 —— 选择\"创建新帐户\"来注册"
 
-msgid "Approve profile"
-msgstr "批准个人资料"
+msgid "started discussion"
+msgstr "已开始的讨论"
 
-msgid "Approve this profile content"
-msgstr "批准此个人资料内容"
+msgid "commented on"
+msgstr "评论时间"
 
-msgid "Edit profile"
-msgstr "编辑个人资料"
+msgid "Password entered is not valid. Please verify that it is correct."
+msgstr "输入的密码是无效的。请验证它的正确性。"
 
-msgid "Edit the content of this profile"
-msgstr "编辑此个人资料的内容"
+msgid "Minimum value not met for @field"
+msgstr "@field 未达到最小值"
 
-msgid "Remove profile"
-msgstr "删除个人资料"
+msgid "Invalid data type for @field"
+msgstr "@field 非法数据类型"
 
-msgid "Remove this profile content from the system"
-msgstr "从系统中删除此个人资料的内容"
+msgid "News"
+msgstr "新闻"
 
-msgid "The team founder has @count days to respond to your transfer request."
-msgstr "团队创始人有 @count 天来回应您的转让申请。"
+msgid "Remove friend"
+msgstr "移除朋友"
 
-msgid "Reject profile"
-msgstr "拒绝个人资料"
+msgid "ignore list"
+msgstr "忽略列表"
 
-msgid "Reject this profile content"
-msgstr "拒绝此个人资料内容"
+msgid "here"
+msgstr "这里"
+
+msgid "!username is on your !ignore_list. Click !here to view this post."
+msgstr "!username在你的!ignore_list中。点击!here来查看他的帖子"
+
+msgid "hidden"
+msgstr "隐藏"
+
+msgid "Unknown"
+msgstr "未知"
+
+msgid "Invalid setting for \"%preference\""
+msgstr "\"%偏好\"设置无效"
 
-msgid "Reason for rejecting this profile"
-msgstr "拒绝此个人资料的原因"
+msgid "!site: comment posted to \"!topic_name\""
+msgstr "!site: 对帖子 \"!topic_name\" 发表了评论"
+
+msgid "!author has posted a reply to \"!topic_name\"."
+msgstr "!author 回复了帖子 \"!topic_name\"."
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of the problem and how to fix it."
-msgstr "这个原因将附在给用户的电子邮件里。请简要说明存在的问题以及解决它的方法。"
+"To view this topic at !site, click here: \n"
+"!comment_url"
+msgstr "若要在本主题查看 !site,请单击此处:\n!comment_url"
 
-msgid "Submit"
-msgstr "提交"
+msgid "The team founder has @count days to respond to your transfer request."
+msgstr "团队创始人有 @count 天来回应您的转让申请。"
+
+msgid "Unlock"
+msgstr "解锁"
+
+msgid "Unlock this thread for comments"
+msgstr "解锁此主题的评论"
 
 msgid "project"
 msgstr "项目"
 
-msgid "No account exists for @email -- select \"Create new account\" to register"
-msgstr "名为 @email 的帐户不存在 —— 选择\"创建新帐户\"来注册"
+msgid "@email is not a well formed email address, please verify"
+msgstr "@email 不是一个正确格式的电子邮件地址,请验证"
 
-msgid "Unknown"
-msgstr "未知"
+msgid "Please enter your email address"
+msgstr "请输入您的电子邮箱地址"
 
-msgid "My team"
-msgstr "我的团队"
+msgid "There is no account with that authenticator."
+msgstr "没有账户关联至ga身份验证器。"
 
-msgid "You are a member of @team."
-msgstr "你是 @team 的成员。"
+msgid "That authenticator is not valid."
+msgstr "该校验无效"
 
-msgid "View my team"
-msgstr "查看我的团队"
+msgid "Send request"
+msgstr "发送请求"
 
-msgid "Invalid setting for \"%preference\""
-msgstr "\"%偏好\"设置无效"
+msgid "Friend request from !name [!site]"
+msgstr "!name 申请添加您为好友[!site]"
 
-msgid "Pending"
-msgstr "等待中"
+msgid "Message"
+msgstr "消息"
 
 msgid ""
-"You must earn @count more credits to be able to post comments on this site."
-msgstr "你还需要得到 @count 积分才能在这个网站上发表评论。"
-
-msgid "Moderation"
-msgstr "编辑"
+"!name added you as a friend on !site. You can approve or deny this request. Denying a request will not send a notification, but will remove the request from both of your accounts.\n"
+"\n"
+"Follow the link below to view this request:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name在!site上申请添加你为好友。你可以同意或者拒绝这一申请。如果你拒绝申请,系统不会通知对方,但是系统将从你们各自的账户里删除这一申请。\n\n点击下面的链接查看这个申请:\n!link\n\n!message\n\n谢谢,\n!site团队"
 
-msgid "Unvetted profiles"
-msgstr "已验证的用户档案"
+msgid "Cancel friend request"
+msgstr "取消好友申请"
 
-msgid "Reason for banning this user"
-msgstr "封禁此用户的理由"
+msgid "Please set the minimum time required between posts."
+msgstr "请设置两次发帖间的最小间隔"
 
 msgid ""
-"This reason will be included in an email to the user. Please write a brief "
-"explanation of why the user is being banned."
-msgstr "这个原因将列入给用户的电子邮件。请写一个简短解释为什么用户被禁止。"
-
-msgid "Duration of the ban"
-msgstr "这项禁令的持续时间"
-
-msgid "The number of days until the ban expires. Set to 0 to ban permanently."
-msgstr "这项禁令有效期的天数。设置为 0,永久禁止。"
+"Please set the minimum total credit that a user must earn in order to post "
+"to this message board."
+msgstr "请设置用户在该留言板发贴所要求的最低总积分。"
 
-msgid "Lift user ban"
-msgstr "取消用户禁令"
+msgid ""
+"Please set the minimum average credit that a user is required to have in "
+"order to post to this message board."
+msgstr "请设置用户在该留言板发贴所要求的最小平均积分。"
 
-msgid "You are banned from community participation until @date"
-msgstr "你被禁止参与社区直到 @date"
+msgid "Edit message board"
+msgstr "编辑留言板"
 
-msgid "Computers @old_ids have been merged successfully into @id."
-msgstr "计算机 @old_id 已被成功合并到 @id。"
+msgid "Save message board"
+msgstr "保存留言板"
 
-msgid "A team named \"@name\" already exists."
-msgstr "名为\"@name\"的团队已经存在。"
+msgid "This is a team-only message board"
+msgstr "这里只对团队成员开放的留言板"
 
-msgid "Post topic"
-msgstr "发表主题"
+msgid "Maximum value exceeded for @field"
+msgstr "@field超出最大值"
 
-msgid "Please enter your email address"
-msgstr "请输入您的电子邮箱地址"
+msgid "Approve request"
+msgstr "同意这个申请"
 
-msgid "Password entered is not valid. Please verify that it is correct."
-msgstr "输入的密码是无效的。请验证它的正确性。"
+msgid "!name accepted your friend request [!site]"
+msgstr "!name同意了你的好友申请 [!site]"
 
-msgid "Make founder"
-msgstr "指定创始人"
+msgid ""
+"!name confirmed you as a friend on !site.\n"
+"\n"
+"Follow this link to view his or her profile:\n"
+"!link\n"
+"\n"
+"!message\n"
+"\n"
+"Thanks,\n"
+"The !site team"
+msgstr "!name同意了你在!site上的好友申请\n\n点击下面的链接查看他/她的个人资料\n!link\n\n!message\n\n谢谢,\n!site团队"
 
-msgid "User of the day"
-msgstr "今日用户"
+msgid "posted"
+msgstr "已发表"
 
-msgid "!site: comment posted to \"!topic_name\""
-msgstr "!site: 对帖子 \"!topic_name\" 发表了评论"
+msgid "Add team admin"
+msgstr "增加团队管理员"
 
-msgid "!author has posted a reply to \"!topic_name\"."
-msgstr "!author 回复了帖子 \"!topic_name\"."
+msgid "Enter email address"
+msgstr "输入电子邮件地址"
 
-msgid ""
-"To view this topic at !site, click here: \n"
-"!comment_url"
-msgstr "若要在本主题查看 !site,请单击此处:\n!comment_url"
+msgid "Current team admins"
+msgstr "当前的团队管理员"
 
-msgid "At least one application must be selected"
-msgstr "必须选择至少一个应用程序"
+msgid "About team admins"
+msgstr "关于团队管理员"
 
-msgid "Account"
-msgstr "帐户"
+msgid "Team admins can:"
+msgstr "团队管理员可以:"
 
-msgid "Log in"
-msgstr "登录"
+msgid "Edit team information"
+msgstr "编辑团队信息"
 
-msgid "Forgot password"
-msgstr "忘记密码"
+msgid "View the team's join / quit history"
+msgstr "查看团队的成员加入、退出历史"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your "
-"password."
-msgstr "输入您的电子邮件地址来接收关于重置密码的指示。"
+msgid "Moderate the team forum"
+msgstr "团队论坛仲裁"
 
-msgid "Send"
-msgstr "发送"
+msgid "Remove members from the team"
+msgstr "从团队中移除成员"
 
-msgid "Revise or post comment"
-msgstr "修改或发表评论"
+msgid "Disband a team if it has no members"
+msgstr "解散没有成员的团队"
 
-msgid "discuss"
-msgstr "讨论"
+msgid "Team admins cannot:"
+msgstr "团队管理员不能:"
 
-msgid "News"
-msgstr "新闻"
+msgid "Change the team founder"
+msgstr "改变团队创建人"
 
-msgid "Your community preferences have been updated."
-msgstr "已更新您的社区参数设置。"
+msgid "Add / Remove team admins"
+msgstr "增加或移除团队管理员"
 
-msgid "Unlock"
-msgstr "解锁"
+msgid ""
+"If a team admin quits the team, they cease to be a team admin. We recommend "
+"only selecting people you know and trust"
+msgstr "如果团队管理员退出团队,他将不再是团队管理员。我们建议只选择你认识并信任的人。"
 
-msgid "Unlock this thread for comments"
-msgstr "解锁此主题的评论"
+msgid "Lift user ban"
+msgstr "取消用户禁令"
 
-msgid "Authenticator login"
-msgstr "验证器登录"
+msgid "A team named \"@name\" already exists."
+msgstr "名为\"@name\"的团队已经存在。"
 
-msgid "Create content"
-msgstr "创建内容"
+msgid "A BOINC account already exists for @email."
+msgstr "@email名下已经注册了一个BOINC账户,请尝试登录。"
 
-msgid "authenticator-based login"
-msgstr "基于身份验证器登录"
+msgid "Make founder"
+msgstr "指定创始人"
 
-msgid ""
-"Enter your email address to receive instructions for resetting your password"
-" (or use the !authenticator_login)."
-msgstr "输入您的电子邮件地址用于收到重置密码的指示 (或使用 !authenticator_login)。"
+msgid "Changing the team founder"
+msgstr "改变团队创建人"
 
-msgid ""
-"If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "如果你已经忘记了你账户所关联的电子邮箱地址,或者你已经不能从该地址接收电子邮件:"
+msgid "Notes about changes in foundership:"
+msgstr "创建人修改的注意事项:"
 
-msgid ""
-"If you have run BOINC under the account, you can still access it. Here's "
-"how:"
-msgstr "如果您已经在帐户下运行 BOINC,您仍然可以访问它。这里是方法:"
+msgid "Any member of the team is eligible"
+msgstr "每个团队成员都可以成为创建人"
 
-msgid ""
-"Go to the BOINC data directory on your computer (on Windows this is usually "
-"%path1 or %path2."
-msgstr "打开你计算机上的 BOINC 数据路径 (在 Windows 上这通常是 %path1 或 %path2。"
+msgid "Current founder becomes a normal user"
+msgstr "当前创建人将变成普通用户"
 
-msgid ""
-"Find your account file for this project; it will have a name like %file "
-"(where the project URL is %url)."
-msgstr "找到本项目的账户文件;文件名像 %文件 (如项目 URL 是 %url)。"
+msgid "Foundership can be requested by team members:"
+msgstr "团队成员可以主动请求成为创建人"
 
-msgid ""
-"Open the file in a text editor like Notepad. You'll see something like:"
-msgstr "用记事本等文本编辑器打开该文件,你将看到类似的如下内容:"
+msgid "One request is allowed at a time"
+msgstr "一次只能处理一个请求"
 
-msgid ""
-"Select and Copy the string between <authenticator> and "
-"</authenticator> (%auth in the above example)."
-msgstr "选中并复制< authenticator> 和 &lt之间的字符串;/authenticator> (上述例子中就应该是%auth )。"
+msgid "It must be 60 days since any previous request"
+msgstr "请求的间隔至少是 60 天"
 
-msgid "Paste the string into the field below, and click OK."
-msgstr "将之前复制的内容粘贴到下面的表单中,并点击确定。"
+msgid "Any active request must be older than 90 days"
+msgstr "请求的有效期至少是 90 天"
 
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "你现在将登录进自己的账户,可以更新你的电子邮箱地址和账户口令。"
+msgid "Current founder has 60 days to respond to a request"
+msgstr "当前的创建人有 60 天的时间来处理一个请求"
 
-msgid "Log in with authenticator"
-msgstr "用身份验证码(authenticator)来登录"
+msgid "BOINC-wide teams site"
+msgstr "BOINC队伍网站"
 
-msgid "There is no account with that authenticator."
-msgstr "没有账户关联至ga身份验证器。"
+msgid "This is a BOINC-wide team. Changes can be made at the !site."
+msgstr "这是一个适用于全BOINC的团队。你可以在!site上更改设置。"
 
 msgid ""
-"Go to the <a href=\"%wikiref\">BOINC data directory</a> on your computer (on"
-" Windows this is usually %path1 or %path2."
-msgstr "打开你计算机上的<a href=\"%wikiref\">BOINC 数据路径</a>(在 Windows 上这通常是 %path1 或 %path2。"
+"A team foundership change was already requested recently. Only one request "
+"is allowed within a period of 90 days."
+msgstr "最近已经提交了一个团队创始人资格更改的申请。在 90 天内只允许有一个申请。"
 
-msgid "BOINC documentation"
-msgstr "BOINC 文档"
+msgid "@count days remaining"
+msgstr "@count天剩余"
 
-msgid ""
-"Go to the BOINC data directory on your computer (see !boinc_wiki for help "
-"finding this)."
-msgstr "打开你计算机上的 BOINC 数据文件夹(请参见!boinc_wiki来帮助您找到这个文件夹)。"
+msgid "Team name is required."
+msgstr "请提供队名"
 
-msgid ""
-"@count days have elapsed since your request and the founder has not "
-"responded."
-msgstr "创始人已经有@count 天没有响应您的请求。"
+msgid "Reason for banning this user"
+msgstr "封禁此用户的理由"
 
 msgid ""
-"You now have @count days to assume foundership before another team member "
-"may submit a request."
-msgstr "你现在需要在 @count 天内确认创始人资格,否则另一个团队成员就可以申请成为创始人。"
-
-msgid "Assume foundership"
-msgstr "得到创建人资格"
+"This reason will be included in an email to the user. Please write a brief "
+"explanation of why the user is being banned."
+msgstr "这个原因将列入给用户的电子邮件。请写一个简短解释为什么用户被禁止。"
 
-msgid "Unhide"
-msgstr "取消隐藏"
+msgid "Duration of the ban"
+msgstr "这项禁令的持续时间"
 
-msgid "Unhide this comment"
-msgstr "取消隐藏此回复"
+msgid "The number of days until the ban expires. Set to 0 to ban permanently."
+msgstr "这项禁令有效期的天数。设置为 0,永久禁止。"
 
-msgid "@email is not a well formed email address, please verify"
-msgstr "@email 不是一个正确格式的电子邮件地址,请验证"
+msgid "Submit"
+msgstr "提交"
diff --git a/locale/zh_CN/BOINC-Manager.mo b/locale/zh_CN/BOINC-Manager.mo
index 6cddacc..aa118a3 100644
Binary files a/locale/zh_CN/BOINC-Manager.mo and b/locale/zh_CN/BOINC-Manager.mo differ
diff --git a/locale/zh_CN/BOINC-Manager.po b/locale/zh_CN/BOINC-Manager.po
index 9dd19ce..8796fc2 100644
--- a/locale/zh_CN/BOINC-Manager.po
+++ b/locale/zh_CN/BOINC-Manager.po
@@ -1,67 +1,60 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC manager localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
-# Sheriff Xie, 2015
+# 谢意, 2015
 # Xu Dong <1278297578 at qq.com>, 2015
 # Yin Gang <zenith.yin at gmail.com>, 2015
-# 周潇波 <zhouxiaobo.500 at gmail.com>, 2015
+# Xiaobo Zhou <zhouxiaobo.500 at gmail.com>, 2015
 # 李泽林, 2015
-# 秦赫阳 <qysnn1 at gmail.com>, 2015
+# 秦赫阳 <qysnn1 at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2015-10-17 23:47+0000\n"
-"Last-Translator: Xu Dong <1278297578 at qq.com>\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-09 14:48+0000\n"
+"Last-Translator: 秦赫阳 <qysnn1 at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/boinc/boinc/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.7.6\n"
-"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
-"X-Poedit-KeywordsList: _\n"
-"X-Poedit-SearchPath-0: clientgui\n"
-"X-Poedit-SearchPath-1: clientgui\\common\n"
-"X-Poedit-SearchPath-2: clientgui\\gtk\n"
-"X-Poedit-SearchPath-3: clientgui\\msw\n"
-"X-Poedit-SearchPath-4: clientgui\\mac\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-#: clientgui/AccountInfoPage.cpp:361
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: clientgui/AccountInfoPage.cpp:359
 #, c-format
 msgid "Identify your account at %s"
 msgstr "确认你在 %s 的帐户"
 
-#: clientgui/AccountInfoPage.cpp:367
+#: clientgui/AccountInfoPage.cpp:365
 msgid ""
 "Please enter your account information\n"
 "(to create an account, visit the project's web site)"
 msgstr "请输入您的帐户信息\n( 要创建帐户,请访问项目网站 )"
 
-#: clientgui/AccountInfoPage.cpp:371
+#: clientgui/AccountInfoPage.cpp:369
 msgid ""
 "This project is not currently accepting new accounts.\n"
 "You can add it only if you already have an account."
 msgstr "该项目目前不支持新建帐户。\n您只能用现有的帐户在客户端加入该项目。"
 
-#: clientgui/AccountInfoPage.cpp:375
+#: clientgui/AccountInfoPage.cpp:373
 msgid "Are you already running this project?"
 msgstr "您参加过这个项目吗?"
 
-#: clientgui/AccountInfoPage.cpp:379
+#: clientgui/AccountInfoPage.cpp:377
 msgid "&No, new user"
 msgstr "没有,我是新用户(&N)"
 
-#: clientgui/AccountInfoPage.cpp:382
+#: clientgui/AccountInfoPage.cpp:380
 msgid "&Yes, existing user"
 msgstr "是的,我已经注册过了(&Y)"
 
-#: clientgui/AccountInfoPage.cpp:387
+#: clientgui/AccountInfoPage.cpp:385
 msgid ""
 "We were not able to set up your account information\n"
 "automatically.\n"
@@ -71,85 +64,85 @@ msgid ""
 "password fields."
 msgstr "我们无法自动建立您的帐户信息。\n\n请点击下方的“寻找登录信息”超链接以查明\n应该在电子邮件地址和密码栏中填写什么内容。"
 
-#: clientgui/AccountInfoPage.cpp:390
+#: clientgui/AccountInfoPage.cpp:388
 msgid "Find login information"
 msgstr "寻找登录信息"
 
-#: clientgui/AccountInfoPage.cpp:410 clientgui/AccountInfoPage.cpp:632
+#: clientgui/AccountInfoPage.cpp:408 clientgui/AccountInfoPage.cpp:630
 msgid "&Password:"
 msgstr "密码(&P):"
 
-#: clientgui/AccountInfoPage.cpp:417 clientgui/AccountInfoPage.cpp:656
+#: clientgui/AccountInfoPage.cpp:415 clientgui/AccountInfoPage.cpp:654
 msgid "Choose a &password:"
 msgstr "选择一个密码(&P):"
 
-#: clientgui/AccountInfoPage.cpp:420
+#: clientgui/AccountInfoPage.cpp:418
 msgid "C&onfirm password:"
 msgstr "密码确认(&O):"
 
-#: clientgui/AccountInfoPage.cpp:427
+#: clientgui/AccountInfoPage.cpp:425
 #, c-format
 msgid "Are you already running %s?"
 msgstr "您已经在运行 %s 吗?"
 
-#: clientgui/AccountInfoPage.cpp:456
+#: clientgui/AccountInfoPage.cpp:454
 msgid "&Username:"
 msgstr "用户名(&U):"
 
-#: clientgui/AccountInfoPage.cpp:485
+#: clientgui/AccountInfoPage.cpp:483
 msgid "&Email address or LDAP ID:"
 msgstr "电子邮件地址或LDAP ID(&E):"
 
-#: clientgui/AccountInfoPage.cpp:489
+#: clientgui/AccountInfoPage.cpp:487
 msgid "&Email address:"
 msgstr "电子邮件地址(&E):"
 
-#: clientgui/AccountInfoPage.cpp:497
+#: clientgui/AccountInfoPage.cpp:495
 #, c-format
 msgid "minimum length %d"
 msgstr "最小长度 %d"
 
-#: clientgui/AccountInfoPage.cpp:504
+#: clientgui/AccountInfoPage.cpp:502
 msgid "Forgot your password?"
 msgstr "忘记您的密码了?"
 
-#: clientgui/AccountInfoPage.cpp:511
+#: clientgui/AccountInfoPage.cpp:509
 msgid ""
 "If you have not yet registered with this account manager,\n"
 "please do so before proceeding.  Click on the link below\n"
 "to register or to retrieve a forgotten password."
 msgstr "如果您还没有注册过这个帐户管理器,\n请在继续之前先注册。点击下方的超链接\n就可以进行注册或取回您已忘记的密码。"
 
-#: clientgui/AccountInfoPage.cpp:514
+#: clientgui/AccountInfoPage.cpp:512
 msgid "Account manager web site"
 msgstr "帐户管理器网站"
 
-#: clientgui/AccountInfoPage.cpp:556
+#: clientgui/AccountInfoPage.cpp:554
 msgid "Add project"
 msgstr "增加项目"
 
-#: clientgui/AccountInfoPage.cpp:558
+#: clientgui/AccountInfoPage.cpp:556
 msgid "Update account manager"
 msgstr "更新帐户管理器"
 
-#: clientgui/AccountInfoPage.cpp:560
+#: clientgui/AccountInfoPage.cpp:558
 msgid "Use account manager"
 msgstr "使用帐户管理器"
 
-#: clientgui/AccountInfoPage.cpp:567
+#: clientgui/AccountInfoPage.cpp:565
 msgid "Please enter a user name."
 msgstr "请输入一个用户名。"
 
-#: clientgui/AccountInfoPage.cpp:569
+#: clientgui/AccountInfoPage.cpp:567
 msgid "Please enter an email address."
 msgstr "请指定一个电子邮箱地址。"
 
-#: clientgui/AccountInfoPage.cpp:579
+#: clientgui/AccountInfoPage.cpp:577
 #, c-format
 msgid "Please enter a password of at least %d characters."
 msgstr "请输入长度至少为 %d 的口令。"
 
-#: clientgui/AccountInfoPage.cpp:589
+#: clientgui/AccountInfoPage.cpp:587
 msgid ""
 "The password and confirmation password do not match. Please type them again."
 msgstr "两次输入的密码不匹配,请重新输入。"
@@ -202,11 +195,11 @@ msgstr "请稍候..."
 msgid "An internal server error has occurred.\n"
 msgstr "服务器上产生了一个内部错误。\n"
 
-#: clientgui/AdvancedFrame.cpp:99
+#: clientgui/AdvancedFrame.cpp:100
 msgid "Connected"
 msgstr "已连接"
 
-#: clientgui/AdvancedFrame.cpp:107
+#: clientgui/AdvancedFrame.cpp:108
 msgid "Disconnected"
 msgstr "已断开"
 
@@ -221,8 +214,8 @@ msgid "Open another %s window"
 msgstr "打开另一个 %s 窗口"
 
 #: clientgui/AdvancedFrame.cpp:344
-msgid "Select computer..."
-msgstr "选择计算机..."
+msgid "Select computer...\tCtrl+Shift+I"
+msgstr "选择计算机...\tCtrl+Shift+I"
 
 #: clientgui/AdvancedFrame.cpp:345
 msgid "Connect to a BOINC client on another computer"
@@ -532,7 +525,7 @@ msgstr "%s 网站(&W)"
 msgid "Show information about BOINC and %s"
 msgstr "查看 BOINC 和 %s 的信息"
 
-#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:541
+#: clientgui/AdvancedFrame.cpp:690 clientgui/BOINCTaskBar.cpp:539
 #: clientgui/sg_BoincSimpleFrame.cpp:262
 #, c-format
 msgid "&About %s..."
@@ -567,12 +560,12 @@ msgstr "工具(&T)"
 msgid "&Help"
 msgstr "帮助(&H)"
 
-#: clientgui/AdvancedFrame.cpp:1237
+#: clientgui/AdvancedFrame.cpp:1246
 #, c-format
 msgid "%s - Stop using %s"
 msgstr "%s - 停止使用 %s"
 
-#: clientgui/AdvancedFrame.cpp:1242
+#: clientgui/AdvancedFrame.cpp:1251
 #, c-format
 msgid ""
 "If you stop using %s,\n"
@@ -582,39 +575,39 @@ msgid ""
 "Do you want to stop using %s?"
 msgstr "如果您退出 %s,\n您当前所有的计算项目将会保留,\n但您将必须手动对它们进行管理。\n\n您确定要退出 %s 吗?"
 
-#: clientgui/AdvancedFrame.cpp:1471
+#: clientgui/AdvancedFrame.cpp:1480
 #, c-format
 msgid "%s - Shut down the current client..."
 msgstr "%s - 关闭当前连接的客户端..."
 
-#: clientgui/AdvancedFrame.cpp:1480
+#: clientgui/AdvancedFrame.cpp:1489
 #, c-format
 msgid ""
 "%s will shut down the current client\n"
 "and prompt you for another host to connect to."
 msgstr "%s 将要关闭当前连接的客户端,\n然后会提示您输入想要连接的客户端。"
 
-#: clientgui/AdvancedFrame.cpp:1883 clientgui/DlgAbout.cpp:119
+#: clientgui/AdvancedFrame.cpp:1854 clientgui/DlgAbout.cpp:119
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: clientgui/AdvancedFrame.cpp:1892
+#: clientgui/AdvancedFrame.cpp:1863
 #, c-format
 msgid "%s has successfully added %s"
 msgstr "%s 已经成功地加入了 %s"
 
-#: clientgui/AdvancedFrame.cpp:2028
+#: clientgui/AdvancedFrame.cpp:2018
 #, c-format
 msgid "%s - (%s)"
 msgstr "%s - (%s)"
 
-#: clientgui/AdvancedFrame.cpp:2032
+#: clientgui/AdvancedFrame.cpp:2022
 #, c-format
 msgid "Connecting to %s"
 msgstr "正在连接至 %s"
 
-#: clientgui/AdvancedFrame.cpp:2035
+#: clientgui/AdvancedFrame.cpp:2025
 #, c-format
 msgid "Connected to %s (%s)"
 msgstr "已连接至 %s ( %s )"
@@ -663,7 +656,7 @@ msgid "%s - Communication"
 msgstr "%s - 网络通讯"
 
 #: clientgui/AsyncRPC.cpp:1056 clientgui/DlgAdvPreferencesBase.cpp:168
-#: clientgui/DlgDiagnosticLogFlags.cpp:127 clientgui/DlgExclusiveApps.cpp:152
+#: clientgui/DlgDiagnosticLogFlags.cpp:129 clientgui/DlgExclusiveApps.cpp:152
 #: clientgui/DlgHiddenColumns.cpp:108 clientgui/sg_DlgPreferences.cpp:357
 msgid "Cancel"
 msgstr "取消"
@@ -738,7 +731,7 @@ msgid ""
 msgstr "%s 当前未连接至任何 %s 客户端。\n请使用菜单中的'高级\\选择计算机...'以连接至一个 %s 客户端。\n如果要连接至您的本地计算机,请在主机名称中填入'localhost'。"
 
 #. Create the web sites task group
-#: clientgui/BOINCBaseView.cpp:790
+#: clientgui/BOINCBaseView.cpp:776
 msgid "Project web pages"
 msgstr "项目网页"
 
@@ -798,7 +791,7 @@ msgstr "%s 已经成功地断开至互联网的连接。"
 msgid "%s failed to disconnected from the Internet."
 msgstr "%s 断开至互联网的连接失败。"
 
-#: clientgui/BOINCGUIApp.cpp:356
+#: clientgui/BOINCGUIApp.cpp:303
 #, c-format
 msgid ""
 "You currently are not authorized to manage the client.\n"
@@ -811,170 +804,170 @@ msgid ""
 "     user group."
 msgstr "您当前未被授权管理本客户端。\n\n要在当前用户下运行 %s,请:\n - 重新安装 %s,在被问到关于非系统管理员用户的问题时,回答\"是\"\n - 联系系统管理员将您加入到“boinc_master”用户组。"
 
-#: clientgui/BOINCGUIApp.cpp:362
+#: clientgui/BOINCGUIApp.cpp:309
 #, c-format
 msgid ""
 "%s ownership or permissions are not set properly; please reinstall %s.\n"
 "(Error code %d"
 msgstr "%s 相关的本地用户权限设置有误,请重新安装 %s。\n( 错误代码 %d )"
 
-#: clientgui/BOINCGUIApp.cpp:368
+#: clientgui/BOINCGUIApp.cpp:315
 msgid " at "
 msgstr " 位置 "
 
-#: clientgui/BOINCGUIApp.cpp:371 clientgui/MainDocument.cpp:2495
-#: clientgui/MainDocument.cpp:2554 clientgui/ViewTransfers.cpp:867
+#: clientgui/BOINCGUIApp.cpp:318 clientgui/MainDocument.cpp:2486
+#: clientgui/MainDocument.cpp:2545 clientgui/ViewTransfers.cpp:871
 msgid ")"
 msgstr ")"
 
-#: clientgui/BOINCGUIApp.cpp:401
+#: clientgui/BOINCGUIApp.cpp:348
 msgid ""
 "A reboot is required in order for BOINC to run properly.\n"
 "Please reboot your computer and try again."
 msgstr "BOINC 需要在计算机重新启动后才能正常运行。\n请您先重启计算机再重试当前的操作。"
 
-#: clientgui/BOINCGUIApp.cpp:402 clientgui/DlgAbout.cpp:153
+#: clientgui/BOINCGUIApp.cpp:349 clientgui/DlgAbout.cpp:153
 msgid "BOINC Manager"
 msgstr "BOINC Manager"
 
-#: clientgui/BOINCGUIApp.cpp:664
+#: clientgui/BOINCGUIApp.cpp:574
 msgid "BOINC Manager was started by the operating system automatically"
 msgstr "BOINC Manager 已经由操作系统自动运行"
 
-#: clientgui/BOINCGUIApp.cpp:666
+#: clientgui/BOINCGUIApp.cpp:576
 msgid "Startup BOINC so only the system tray icon is visible"
 msgstr "启动 BOINC 时仅显示在系统托盘区"
 
-#: clientgui/BOINCGUIApp.cpp:668
+#: clientgui/BOINCGUIApp.cpp:578
 msgid "Directory containing the BOINC Client executable"
 msgstr "包含 BOINC 客户端执行程序的目录"
 
-#: clientgui/BOINCGUIApp.cpp:669
+#: clientgui/BOINCGUIApp.cpp:579
 msgid "BOINC data directory"
 msgstr "BOINC 数据目录"
 
-#: clientgui/BOINCGUIApp.cpp:671
+#: clientgui/BOINCGUIApp.cpp:581
 msgid "Host name or IP address"
 msgstr "主机名称或 IP 地址"
 
-#: clientgui/BOINCGUIApp.cpp:672
+#: clientgui/BOINCGUIApp.cpp:582
 msgid "GUI RPC port number"
 msgstr "图形界面 RPC 端口号"
 
-#: clientgui/BOINCGUIApp.cpp:673
+#: clientgui/BOINCGUIApp.cpp:583
 msgid "Password"
 msgstr "用户口令"
 
-#: clientgui/BOINCGUIApp.cpp:674
+#: clientgui/BOINCGUIApp.cpp:584
 msgid "Startup BOINC with these optional arguments"
 msgstr "使用可选参数来启动 BOINC"
 
-#: clientgui/BOINCGUIApp.cpp:675
+#: clientgui/BOINCGUIApp.cpp:585
 msgid "disable BOINC security users and permissions"
 msgstr "禁用 BOINC 中用户和权限相关的安全选项"
 
-#: clientgui/BOINCGUIApp.cpp:676
+#: clientgui/BOINCGUIApp.cpp:586
 msgid "set skin debugging mode to enable skin manager error messages"
 msgstr "设置皮肤调试模式已启用皮肤管理器的错误消息记录"
 
-#: clientgui/BOINCGUIApp.cpp:677
+#: clientgui/BOINCGUIApp.cpp:587
 msgid "multiple instances of BOINC Manager allowed"
 msgstr "允许运行多个 BOINC Manager 的实例"
 
-#: clientgui/BOINCGUIApp.cpp:679
+#: clientgui/BOINCGUIApp.cpp:589
 msgid "Not used: workaround for bug in XCode 4.2"
 msgstr "未使用:用于临时修复 XCode 4.2 的错误"
 
-#: clientgui/BOINCGUIApp.cpp:681
+#: clientgui/BOINCGUIApp.cpp:591
 msgid "Not run the daemon"
 msgstr "不运行守护进程"
 
 #. These are just special tags so deal with them in a special way
-#: clientgui/BOINCGUIApp.cpp:931
+#: clientgui/BOINCGUIApp.cpp:838
 msgid "(Automatic Detection)"
 msgstr "( 自动检测 )"
 
-#: clientgui/BOINCGUIApp.cpp:932
+#: clientgui/BOINCGUIApp.cpp:839
 msgid "(Unknown)"
 msgstr "( 未知 )"
 
-#: clientgui/BOINCGUIApp.cpp:933
+#: clientgui/BOINCGUIApp.cpp:840
 msgid "(User Defined)"
 msgstr "( 用户自定义 )"
 
-#: clientgui/BOINCTaskBar.cpp:519
+#: clientgui/BOINCTaskBar.cpp:517
 #, c-format
 msgid "Open %s Web..."
 msgstr "打开 %s 的网站..."
 
-#: clientgui/BOINCTaskBar.cpp:526
+#: clientgui/BOINCTaskBar.cpp:524
 #, c-format
 msgid "Open %s..."
 msgstr "打开 %s..."
 
-#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:631
-#: clientgui/BOINCTaskBar.cpp:636
+#: clientgui/BOINCTaskBar.cpp:531 clientgui/BOINCTaskBar.cpp:629
+#: clientgui/BOINCTaskBar.cpp:634
 msgid "Snooze"
 msgstr "休息一下"
 
-#: clientgui/BOINCTaskBar.cpp:535 clientgui/BOINCTaskBar.cpp:650
-#: clientgui/BOINCTaskBar.cpp:655
+#: clientgui/BOINCTaskBar.cpp:533 clientgui/BOINCTaskBar.cpp:648
+#: clientgui/BOINCTaskBar.cpp:653
 msgid "Snooze GPU"
 msgstr "让 GPU 休息一下"
 
-#: clientgui/BOINCTaskBar.cpp:553
+#: clientgui/BOINCTaskBar.cpp:551
 msgid "E&xit"
 msgstr "退出(&X)"
 
-#: clientgui/BOINCTaskBar.cpp:626 clientgui/ViewProjects.cpp:804
-#: clientgui/ViewWork.cpp:882 clientgui/sg_BoincSimpleFrame.cpp:894
+#: clientgui/BOINCTaskBar.cpp:624 clientgui/sg_BoincSimpleFrame.cpp:911
 #: clientgui/sg_ProjectCommandPopup.cpp:125
-#: clientgui/sg_TaskCommandPopup.cpp:118
+#: clientgui/sg_TaskCommandPopup.cpp:118 clientgui/ViewProjects.cpp:788
+#: clientgui/ViewWork.cpp:872
 msgid "Resume"
 msgstr "继续"
 
-#: clientgui/BOINCTaskBar.cpp:646
+#: clientgui/BOINCTaskBar.cpp:644
 msgid "Resume GPU"
 msgstr "继续 GPU 计算"
 
-#: clientgui/BOINCTaskBar.cpp:712
+#: clientgui/BOINCTaskBar.cpp:716
 msgid "Computing is enabled"
 msgstr "计算已启用"
 
-#: clientgui/BOINCTaskBar.cpp:716
+#: clientgui/BOINCTaskBar.cpp:720
 msgid "Computing is suspended - "
 msgstr "计算已暂停 - "
 
-#: clientgui/BOINCTaskBar.cpp:726
+#: clientgui/BOINCTaskBar.cpp:730
 msgid "GPU computing is enabled"
 msgstr "GPU 计算已启用"
 
-#: clientgui/BOINCTaskBar.cpp:729
+#: clientgui/BOINCTaskBar.cpp:733
 msgid "GPU computing is suspended - "
 msgstr "GPU 计算已暂停 - "
 
-#: clientgui/BOINCTaskBar.cpp:738
+#: clientgui/BOINCTaskBar.cpp:742
 msgid "Network is enabled"
 msgstr "网络已启用"
 
-#: clientgui/BOINCTaskBar.cpp:741
+#: clientgui/BOINCTaskBar.cpp:745
 msgid "Network is suspended - "
 msgstr "网络已暂停 - "
 
-#: clientgui/BOINCTaskBar.cpp:749
+#: clientgui/BOINCTaskBar.cpp:753
 msgid "Reconnecting to client."
 msgstr "正在重新连接至客户端。"
 
-#: clientgui/BOINCTaskBar.cpp:751
+#: clientgui/BOINCTaskBar.cpp:755
 msgid "Not connected to a client."
 msgstr "当前没有连接到任何客户端。"
 
-#: clientgui/BOINCTaskBar.cpp:804
+#: clientgui/BOINCTaskBar.cpp:808
 #, c-format
 msgid "%s Notices"
 msgstr "%s 通知"
 
-#: clientgui/BOINCTaskBar.cpp:810
+#: clientgui/BOINCTaskBar.cpp:814
 msgid "There are new notices - click to view."
 msgstr "有新的通知 - 点击查看。"
 
@@ -1089,46 +1082,6 @@ msgstr "要获取更多信息,请访问"
 msgid "&OK"
 msgstr "确定(&O)"
 
-#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
-msgid "Invalid number"
-msgstr "无效的数字"
-
-#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
-msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
-msgstr "无效的时间,值必须介于 0:00 至 24:00之间,格式是 hh: mm"
-
-#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
-msgid "Start time must be different from end time"
-msgstr "起始时间必须和结束时间不同"
-
-#: clientgui/DlgAdvPreferences.cpp:687
-msgid "Number must be between 0 and 10"
-msgstr "必须是0到10之间的数字"
-
-#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
-msgid "Number must be between 0 and 100"
-msgstr "数字必须介于 0 和 100 之间"
-
-#: clientgui/DlgAdvPreferences.cpp:689
-msgid "Number must be between 1 and 100"
-msgstr "数字必须介于 1 和 100 之间"
-
-#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
-msgid "invalid input value detected"
-msgstr "检测到错误的输入值"
-
-#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
-msgid "Validation Error"
-msgstr "验证错误"
-
-#: clientgui/DlgAdvPreferences.cpp:1171
-msgid "Discard local preferences and use web-based preferences?"
-msgstr "放弃本地首选项并使用网上的首选项吗?"
-
-#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
-msgid "Confirmation"
-msgstr "确认"
-
 #: clientgui/DlgAdvPreferencesBase.cpp:54
 #, c-format
 msgid "%s - Computing preferences"
@@ -1176,7 +1129,7 @@ msgid "Daily schedules"
 msgstr "每日计划"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:162
-#: clientgui/DlgDiagnosticLogFlags.cpp:119 clientgui/DlgExclusiveApps.cpp:146
+#: clientgui/DlgDiagnosticLogFlags.cpp:121 clientgui/DlgExclusiveApps.cpp:146
 #: clientgui/DlgHiddenColumns.cpp:100 clientgui/sg_DlgPreferences.cpp:353
 msgid "OK"
 msgstr "确定"
@@ -1191,7 +1144,7 @@ msgstr "放弃更改并关闭对话框"
 
 #: clientgui/DlgAdvPreferencesBase.cpp:173 clientgui/DlgExclusiveApps.cpp:157
 #: clientgui/Localization.cpp:35 clientgui/Localization.cpp:121
-#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:930
+#: clientgui/Localization.cpp:139 clientgui/sg_BoincSimpleFrame.cpp:947
 #: clientgui/sg_DlgPreferences.cpp:363
 msgid "Help"
 msgstr "帮助"
@@ -1590,75 +1543,123 @@ msgstr "仅在每天的特定时间段内传输文件。"
 msgid "Transfer files only between"
 msgstr "传输文件的时间段:"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:65
+#: clientgui/DlgAdvPreferences.cpp:684 clientgui/sg_DlgPreferences.cpp:775
+msgid "Invalid number"
+msgstr "无效的数字"
+
+#: clientgui/DlgAdvPreferences.cpp:685 clientgui/sg_DlgPreferences.cpp:776
+msgid "Invalid time, value must be between 0:00 and 24:00, format is HH:MM"
+msgstr "无效的时间,值必须介于 0:00 至 24:00之间,格式是 hh: mm"
+
+#: clientgui/DlgAdvPreferences.cpp:686 clientgui/sg_DlgPreferences.cpp:777
+msgid "Start time must be different from end time"
+msgstr "起始时间必须和结束时间不同"
+
+#: clientgui/DlgAdvPreferences.cpp:687
+msgid "Number must be between 0 and 10"
+msgstr "必须是0到10之间的数字"
+
+#: clientgui/DlgAdvPreferences.cpp:688 clientgui/sg_DlgPreferences.cpp:778
+msgid "Number must be between 0 and 100"
+msgstr "数字必须介于 0 和 100 之间"
+
+#: clientgui/DlgAdvPreferences.cpp:689
+msgid "Number must be between 1 and 100"
+msgstr "数字必须介于 1 和 100 之间"
+
+#: clientgui/DlgAdvPreferences.cpp:947 clientgui/sg_DlgPreferences.cpp:849
+msgid "invalid input value detected"
+msgstr "检测到错误的输入值"
+
+#: clientgui/DlgAdvPreferences.cpp:959 clientgui/sg_DlgPreferences.cpp:861
+msgid "Validation Error"
+msgstr "验证错误"
+
+#: clientgui/DlgAdvPreferences.cpp:1171
+msgid "Discard local preferences and use web-based preferences?"
+msgstr "放弃本地首选项并使用网上的首选项吗?"
+
+#: clientgui/DlgAdvPreferences.cpp:1172 clientgui/sg_DlgPreferences.cpp:1187
+msgid "Confirmation"
+msgstr "确认"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:67
 #, c-format
 msgid "%s Diagnostic Log Flags"
 msgstr "%s 诊断日志标志"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:83
+#: clientgui/DlgDiagnosticLogFlags.cpp:85
 msgid ""
 "These flags enable various types of diagnostic messages in the Event Log."
 msgstr "这些标志将在事件日志中显示各种类型的诊断消息。"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:99
+#: clientgui/DlgDiagnosticLogFlags.cpp:101
 msgid "More info ..."
 msgstr "更多信息"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:120 clientgui/DlgHiddenColumns.cpp:101
+#: clientgui/DlgDiagnosticLogFlags.cpp:122 clientgui/DlgHiddenColumns.cpp:101
 msgid "Save all values and close the dialog"
 msgstr "保存所有参数值并关闭对话框"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:123 clientgui/DlgHiddenColumns.cpp:104
+#: clientgui/DlgDiagnosticLogFlags.cpp:125 clientgui/DlgHiddenColumns.cpp:104
 msgid "Defaults"
 msgstr "默认"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:124 clientgui/DlgHiddenColumns.cpp:105
+#: clientgui/DlgDiagnosticLogFlags.cpp:126 clientgui/DlgHiddenColumns.cpp:105
 msgid "Restore default settings"
 msgstr "还原默认设置"
 
-#: clientgui/DlgDiagnosticLogFlags.cpp:128 clientgui/DlgHiddenColumns.cpp:109
+#: clientgui/DlgDiagnosticLogFlags.cpp:130 clientgui/DlgHiddenColumns.cpp:109
 msgid "Close the dialog without saving"
 msgstr "放弃更改并关闭对话框"
 
-#: clientgui/DlgEventLog.cpp:236
+#: clientgui/DlgDiagnosticLogFlags.cpp:133
+msgid "Apply"
+msgstr "应用"
+
+#: clientgui/DlgDiagnosticLogFlags.cpp:134
+msgid "Save all values"
+msgstr "保存所有值"
+
+#: clientgui/DlgEventLog.cpp:227
 #, c-format
 msgid "%s - Event Log"
 msgstr "%s - 事件日志"
 
 #. Create List Pane Items
-#: clientgui/DlgEventLog.cpp:246 clientgui/ViewMessages.cpp:117
+#: clientgui/DlgEventLog.cpp:237 clientgui/ViewMessages.cpp:117
 #: clientgui/ViewProjects.cpp:251 clientgui/ViewStatistics.cpp:411
 #: clientgui/ViewStatistics.cpp:1983 clientgui/ViewTransfers.cpp:209
 #: clientgui/ViewWork.cpp:260
 msgid "Project"
 msgstr "项目"
 
-#: clientgui/DlgEventLog.cpp:247 clientgui/ViewMessages.cpp:118
+#: clientgui/DlgEventLog.cpp:238 clientgui/ViewMessages.cpp:118
 msgid "Time"
 msgstr "时间"
 
-#: clientgui/DlgEventLog.cpp:248 clientgui/ViewMessages.cpp:119
+#: clientgui/DlgEventLog.cpp:239 clientgui/ViewMessages.cpp:119
 msgid "Message"
 msgstr "消息"
 
-#: clientgui/DlgEventLog.cpp:305 clientgui/DlgEventLog.cpp:355
+#: clientgui/DlgEventLog.cpp:296 clientgui/DlgEventLog.cpp:346
 msgid "&Show only this project"
 msgstr "仅显示当前项目(&S)"
 
-#: clientgui/DlgEventLog.cpp:309
+#: clientgui/DlgEventLog.cpp:300
 msgid "Copy &All"
 msgstr "复制所有的(&A)"
 
-#: clientgui/DlgEventLog.cpp:311 clientgui/DlgEventLog.cpp:315
+#: clientgui/DlgEventLog.cpp:302 clientgui/DlgEventLog.cpp:306
 #: clientgui/ViewMessages.cpp:89
 msgid "Copy all the messages to the clipboard."
 msgstr "复制所有消息至剪贴板。"
 
-#: clientgui/DlgEventLog.cpp:320
+#: clientgui/DlgEventLog.cpp:311
 msgid "Copy &Selected"
 msgstr "复制选中的(&S)"
 
-#: clientgui/DlgEventLog.cpp:323 clientgui/DlgEventLog.cpp:331
+#: clientgui/DlgEventLog.cpp:314 clientgui/DlgEventLog.cpp:322
 #: clientgui/ViewMessages.cpp:97
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1666,7 +1667,7 @@ msgid ""
 "messages."
 msgstr "复制选中的消息至剪贴板。您可以在选择的时候通过按住Shift键或Commandl键来选取多条消息。"
 
-#: clientgui/DlgEventLog.cpp:325 clientgui/DlgEventLog.cpp:333
+#: clientgui/DlgEventLog.cpp:316 clientgui/DlgEventLog.cpp:324
 #: clientgui/ViewMessages.cpp:99
 msgid ""
 "Copy the selected messages to the clipboard. You can select multiple "
@@ -1674,19 +1675,19 @@ msgid ""
 "messages."
 msgstr "复制选中的消息至剪贴板。您可以在选择的时候通过按住Shift键或Ctrl键来选取多条消息。"
 
-#: clientgui/DlgEventLog.cpp:340 clientgui/DlgItemProperties.cpp:67
+#: clientgui/DlgEventLog.cpp:331 clientgui/DlgItemProperties.cpp:67
 msgid "&Close"
 msgstr "关闭(&C)"
 
-#: clientgui/DlgEventLog.cpp:349
+#: clientgui/DlgEventLog.cpp:340
 msgid "Show all &messages"
 msgstr "显示所有消息(&M)"
 
-#: clientgui/DlgEventLog.cpp:350 clientgui/DlgEventLog.cpp:352
+#: clientgui/DlgEventLog.cpp:341 clientgui/DlgEventLog.cpp:343
 msgid "Show messages for all projects"
 msgstr "显示所有项目的消息"
 
-#: clientgui/DlgEventLog.cpp:356 clientgui/DlgEventLog.cpp:358
+#: clientgui/DlgEventLog.cpp:347 clientgui/DlgEventLog.cpp:349
 msgid "Show only the messages for the selected project"
 msgstr "仅显示当前选中项目的消息"
 
@@ -1709,7 +1710,7 @@ msgid "Add an application to this list"
 msgstr "在列表中增加一个应用程序"
 
 #: clientgui/DlgExclusiveApps.cpp:86 clientgui/DlgExclusiveApps.cpp:110
-#: clientgui/ViewProjects.cpp:230 clientgui/sg_ProjectCommandPopup.cpp:90
+#: clientgui/sg_ProjectCommandPopup.cpp:90 clientgui/ViewProjects.cpp:230
 msgid "Remove"
 msgstr "删除"
 
@@ -2043,14 +2044,14 @@ msgstr "资源"
 msgid "Estimated computation size"
 msgstr "预计的任务大小"
 
-#: clientgui/DlgItemProperties.cpp:390
-msgid "CPU time at last checkpoint"
-msgstr "上次存盘的 CPU 时间"
-
-#: clientgui/DlgItemProperties.cpp:391 clientgui/DlgItemProperties.cpp:417
+#: clientgui/DlgItemProperties.cpp:390 clientgui/DlgItemProperties.cpp:417
 msgid "CPU time"
 msgstr "已用 CPU 时间"
 
+#: clientgui/DlgItemProperties.cpp:391
+msgid "CPU time since checkpoint"
+msgstr "从上个存盘点之后运行的CPU 时间"
+
 #: clientgui/DlgItemProperties.cpp:393 clientgui/DlgItemProperties.cpp:418
 msgid "Elapsed time"
 msgstr "已用时间"
@@ -2100,8 +2101,8 @@ msgstr "每秒"
 msgid "Executable"
 msgstr "可执行文件"
 
-#: clientgui/DlgItemProperties.cpp:487 clientgui/ViewWork.cpp:1125
-#: clientgui/sg_TaskPanel.cpp:828
+#: clientgui/DlgItemProperties.cpp:487 clientgui/sg_TaskPanel.cpp:830
+#: clientgui/ViewWork.cpp:1115
 msgid "Local: "
 msgstr "本地:"
 
@@ -2460,203 +2461,191 @@ msgstr "研究"
 msgid "Learn about the projects hosted at World Community Grid"
 msgstr "了解 WCG 平台上的项目"
 
-#: clientgui/MainDocument.cpp:585
-msgid "Starting client"
-msgstr "正在启动客户端"
-
-#: clientgui/MainDocument.cpp:593
-msgid "Connecting to client"
-msgstr "正在连接至客户端"
-
-#: clientgui/MainDocument.cpp:1207
-msgid "Retrieving system state; please wait..."
-msgstr "正在读取系统状态,请稍候..."
-
-#: clientgui/MainDocument.cpp:1828
+#: clientgui/MainDocument.cpp:1819
 msgid "Missing application"
 msgstr "应用程序不存在"
 
-#: clientgui/MainDocument.cpp:1829
+#: clientgui/MainDocument.cpp:1820
 msgid ""
 "Please download and install the CoRD application from "
 "http://cord.sourceforge.net"
 msgstr "请从 http://cord.sourceforge.net 下载并安装 CoRD 程序。"
 
-#: clientgui/MainDocument.cpp:2443
+#: clientgui/MainDocument.cpp:2434
 msgid "on batteries"
 msgstr "电池供电"
 
-#: clientgui/MainDocument.cpp:2444
+#: clientgui/MainDocument.cpp:2435
 msgid "computer is in use"
 msgstr "正在使用计算机"
 
-#: clientgui/MainDocument.cpp:2445
+#: clientgui/MainDocument.cpp:2436
 msgid "user request"
 msgstr "用户请求"
 
-#: clientgui/MainDocument.cpp:2446
+#: clientgui/MainDocument.cpp:2437
 msgid "time of day"
 msgstr "每日时间段"
 
-#: clientgui/MainDocument.cpp:2447
+#: clientgui/MainDocument.cpp:2438
 msgid "CPU benchmarks in progress"
 msgstr "正在进行 CPU 基准测试"
 
-#: clientgui/MainDocument.cpp:2448
+#: clientgui/MainDocument.cpp:2439
 msgid "need disk space - check preferences"
 msgstr "磁盘空间不足 - 请检查参数设置"
 
-#: clientgui/MainDocument.cpp:2449
+#: clientgui/MainDocument.cpp:2440
 msgid "computer is not in use"
 msgstr "计算机未在使用"
 
-#: clientgui/MainDocument.cpp:2450
+#: clientgui/MainDocument.cpp:2441
 msgid "starting up"
 msgstr "启动中"
 
-#: clientgui/MainDocument.cpp:2451
+#: clientgui/MainDocument.cpp:2442
 msgid "an exclusive app is running"
 msgstr "有互斥的应用程序在运行"
 
-#: clientgui/MainDocument.cpp:2452
+#: clientgui/MainDocument.cpp:2443
 msgid "CPU is busy"
 msgstr "CPU 忙碌中"
 
-#: clientgui/MainDocument.cpp:2453
+#: clientgui/MainDocument.cpp:2444
 msgid "network bandwidth limit exceeded"
 msgstr "网络带宽限制已超出"
 
-#: clientgui/MainDocument.cpp:2454
+#: clientgui/MainDocument.cpp:2445
 msgid "requested by operating system"
 msgstr "操作系统请求"
 
-#: clientgui/MainDocument.cpp:2456
+#: clientgui/MainDocument.cpp:2447
 msgid "unknown reason"
 msgstr "未知原因"
 
-#: clientgui/MainDocument.cpp:2478
+#: clientgui/MainDocument.cpp:2469
 msgid "GPU missing, "
 msgstr "无可用 GPU, "
 
-#: clientgui/MainDocument.cpp:2485
+#: clientgui/MainDocument.cpp:2476
 msgid "New"
 msgstr "新任务"
 
-#: clientgui/MainDocument.cpp:2489
+#: clientgui/MainDocument.cpp:2480
 msgid "Download failed"
 msgstr "下载失败"
 
-#: clientgui/MainDocument.cpp:2491
+#: clientgui/MainDocument.cpp:2482
 msgid "Downloading"
 msgstr "正在下载"
 
-#: clientgui/MainDocument.cpp:2493 clientgui/MainDocument.cpp:2552
+#: clientgui/MainDocument.cpp:2484 clientgui/MainDocument.cpp:2543
 msgid " (suspended - "
 msgstr "(已暂停 - "
 
-#: clientgui/MainDocument.cpp:2501
+#: clientgui/MainDocument.cpp:2492
 msgid "Project suspended by user"
 msgstr "项目已被用户暂停"
 
-#: clientgui/MainDocument.cpp:2503
+#: clientgui/MainDocument.cpp:2494
 msgid "Task suspended by user"
 msgstr "任务已被用户暂停"
 
 #. an NCI process can be running even though computation is suspended
 #. (because of <dont_suspend_nci>
-#: clientgui/MainDocument.cpp:2508
+#: clientgui/MainDocument.cpp:2499
 msgid "Suspended - "
 msgstr "已暂停 - "
 
-#: clientgui/MainDocument.cpp:2511
+#: clientgui/MainDocument.cpp:2502
 msgid "GPU suspended - "
 msgstr "GPU 已暂停 - "
 
-#: clientgui/MainDocument.cpp:2515
+#: clientgui/MainDocument.cpp:2506
 msgid "Waiting for memory"
 msgstr "等待足够的内存"
 
-#: clientgui/MainDocument.cpp:2517
+#: clientgui/MainDocument.cpp:2508
 msgid "Waiting for shared memory"
 msgstr "等待足够的共享内存"
 
-#: clientgui/MainDocument.cpp:2519
+#: clientgui/MainDocument.cpp:2510
 msgid "Running"
 msgstr "运行中"
 
-#: clientgui/MainDocument.cpp:2521
+#: clientgui/MainDocument.cpp:2512
 msgid " (non-CPU-intensive)"
 msgstr "(非 CPU 密集)"
 
-#: clientgui/MainDocument.cpp:2524
+#: clientgui/MainDocument.cpp:2515
 msgid "Waiting to run"
 msgstr "等待运行"
 
-#: clientgui/MainDocument.cpp:2526 clientgui/MainDocument.cpp:2529
+#: clientgui/MainDocument.cpp:2517 clientgui/MainDocument.cpp:2520
 msgid "Ready to start"
 msgstr "准备运行"
 
-#: clientgui/MainDocument.cpp:2533
+#: clientgui/MainDocument.cpp:2524
 msgid "Postponed: "
 msgstr "推迟:"
 
-#: clientgui/MainDocument.cpp:2536
+#: clientgui/MainDocument.cpp:2527
 msgid "Postponed"
 msgstr "已推迟"
 
-#: clientgui/MainDocument.cpp:2540
+#: clientgui/MainDocument.cpp:2531
 msgid "Waiting for network access"
 msgstr "正在等待访问网络"
 
-#: clientgui/MainDocument.cpp:2544
+#: clientgui/MainDocument.cpp:2535
 msgid "Computation error"
 msgstr "计算错误"
 
-#: clientgui/MainDocument.cpp:2548
+#: clientgui/MainDocument.cpp:2539
 msgid "Upload failed"
 msgstr "上传失败"
 
-#: clientgui/MainDocument.cpp:2550
+#: clientgui/MainDocument.cpp:2541
 msgid "Uploading"
 msgstr "正在上传"
 
-#: clientgui/MainDocument.cpp:2561
+#: clientgui/MainDocument.cpp:2552
 msgid "Aborted by user"
 msgstr "已被用户中止"
 
-#: clientgui/MainDocument.cpp:2564
+#: clientgui/MainDocument.cpp:2555
 msgid "Aborted by project"
 msgstr "已被项目中止"
 
-#: clientgui/MainDocument.cpp:2567
+#: clientgui/MainDocument.cpp:2558
 msgid "Aborted: not started by deadline"
 msgstr "已中止:未在截止日期前开始计算"
 
-#: clientgui/MainDocument.cpp:2570
+#: clientgui/MainDocument.cpp:2561
 msgid "Aborted: task disk limit exceeded"
 msgstr "已中止:任务磁盘使用超出限制"
 
-#: clientgui/MainDocument.cpp:2573
+#: clientgui/MainDocument.cpp:2564
 msgid "Aborted: run time limit exceeded"
 msgstr "已中止:运行时间超出限制"
 
-#: clientgui/MainDocument.cpp:2576
+#: clientgui/MainDocument.cpp:2567
 msgid "Aborted: memory limit exceeded"
 msgstr "已中止:内存使用超出限制"
 
-#: clientgui/MainDocument.cpp:2579
+#: clientgui/MainDocument.cpp:2570
 msgid "Aborted"
 msgstr "已中止"
 
-#: clientgui/MainDocument.cpp:2584
+#: clientgui/MainDocument.cpp:2575
 msgid "Acknowledged"
 msgstr "已被确认"
 
-#: clientgui/MainDocument.cpp:2586
+#: clientgui/MainDocument.cpp:2577
 msgid "Ready to report"
 msgstr "等待上报"
 
-#: clientgui/MainDocument.cpp:2588
+#: clientgui/MainDocument.cpp:2579
 #, c-format
 msgid "Error: invalid state '%d'"
 msgstr "错误:非法状态 '%d'"
@@ -2720,7 +2709,7 @@ msgstr "要选择一个项目,请点击它的项目名称或在下方输入它
 msgid "Categories:"
 msgstr "类别:"
 
-#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:89
+#: clientgui/ProjectInfoPage.cpp:262 clientgui/sg_ProjectPanel.cpp:90
 msgid "Projects:"
 msgstr "项目:"
 
@@ -2764,24 +2753,21 @@ msgid "You already added this project. Please choose a different project."
 msgstr "您当前已经加入了这个项目,请选择其它的项目。"
 
 #: clientgui/ProjectProcessingPage.cpp:321
-msgid "Communicating with project."
-msgstr "正在和项目服务器进行通讯。"
+#: clientgui/ProjectPropertiesPage.cpp:334
+msgid ""
+"Communicating with project\n"
+"Please wait..."
+msgstr "正在与项目通讯。\n请稍候..."
 
-#: clientgui/ProjectProcessingPage.cpp:509
+#: clientgui/ProjectProcessingPage.cpp:521
 msgid "Required files not found on the server."
 msgstr "请求的文件不在服务器上。"
 
-#: clientgui/ProjectProcessingPage.cpp:512
-#: clientgui/ProjectProcessingPage.cpp:585
+#: clientgui/ProjectProcessingPage.cpp:524
+#: clientgui/ProjectProcessingPage.cpp:597
 msgid "An internal server error has occurred."
 msgstr "服务器上产生了一个内部错误。"
 
-#: clientgui/ProjectPropertiesPage.cpp:334
-msgid ""
-"Communicating with project\n"
-"Please wait..."
-msgstr "正在与项目通讯。\n请稍候..."
-
 #: clientgui/ProjectWelcomePage.cpp:251
 #, c-format
 msgid "Welcome to %s."
@@ -2879,1024 +2865,938 @@ msgstr "自动检测"
 msgid "SOCKS proxy"
 msgstr "SOCKS 代理"
 
-#: clientgui/TermsOfUsePage.cpp:218
-msgid "Terms of Use"
-msgstr "使用协议"
+#: clientgui/sg_BoincSimpleFrame.cpp:169
+msgid "Skin"
+msgstr "皮肤"
 
-#: clientgui/TermsOfUsePage.cpp:222
-msgid "Please read the following terms of use:"
-msgstr "请阅读以下的使用协议:"
+#: clientgui/sg_BoincSimpleFrame.cpp:171
+msgid "Select the appearance of the user interface."
+msgstr "选择用户界面的外观。"
 
-#: clientgui/TermsOfUsePage.cpp:231
-msgid "I agree to the terms of use."
-msgstr "我同意该使用协议。"
+#: clientgui/sg_BoincSimpleFrame.cpp:181
+msgid "Advanced View...\tCtrl+Shift+A"
+msgstr "高级视图...\tCtrl+Shift+A"
 
-#: clientgui/TermsOfUsePage.cpp:237
-msgid "I do not agree to the terms of use."
-msgstr "我不同意该用户条款。"
+#: clientgui/sg_BoincSimpleFrame.cpp:182
+msgid "Display the advanced graphical interface."
+msgstr "显示高级图形界面。"
 
-#: clientgui/UnavailablePage.cpp:183
-msgid "Project temporarily unavailable"
-msgstr "项目已暂停服务"
+#: clientgui/sg_BoincSimpleFrame.cpp:198
+msgid "Configure display options and proxy settings"
+msgstr "配置界面及代理服务器选项"
 
-#: clientgui/UnavailablePage.cpp:186
-msgid ""
-"The project is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "项目已暂停服务。\n\n请稍后重试。"
+#: clientgui/sg_BoincSimpleFrame.cpp:212
+msgid "Display diagnostic messages."
+msgstr "显示诊断消息。"
 
-#: clientgui/UnavailablePage.cpp:190
-msgid "Account manager temporarily unavailable"
-msgstr "帐户管理器已暂停服务"
+#: clientgui/sg_BoincSimpleFrame.cpp:233
+#, c-format
+msgid "&%s"
+msgstr "&%s"
 
-#: clientgui/UnavailablePage.cpp:193
-msgid ""
-"The account manager is temporarily unavailable.\n"
-"\n"
-"Please try again later."
-msgstr "帐户管理器已暂停服务。\n\n请稍后重试。"
+#: clientgui/sg_BoincSimpleFrame.cpp:449
+msgid "Default"
+msgstr "缺省"
 
-#: clientgui/ValidateAccountKey.cpp:68
-msgid "Please specify an account key to continue."
-msgstr "请输入帐户密钥以继续。"
+#: clientgui/sg_BoincSimpleFrame.cpp:910
+#: clientgui/sg_ProjectCommandPopup.cpp:72
+#: clientgui/sg_ProjectCommandPopup.cpp:128
+#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
+#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:792
+#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:878
+msgid "Suspend"
+msgstr "暂停"
 
-#: clientgui/ValidateAccountKey.cpp:71
-msgid "Invalid Account Key; please enter a valid Account Key"
-msgstr "此帐户密钥错误;请输入一个正确的帐户密钥"
+#: clientgui/sg_BoincSimpleFrame.cpp:912
+msgid "Suspend Computing"
+msgstr "暂停计算"
 
-#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
-msgid "Validation conflict"
-msgstr "验证冲突"
+#: clientgui/sg_BoincSimpleFrame.cpp:913
+msgid "Resume Computing"
+msgstr "继续计算"
 
-#: clientgui/ValidateEmailAddress.cpp:72
-msgid "Please specify an email address"
-msgstr "请指定一个电子邮件地址"
+#: clientgui/sg_BoincSimpleFrame.cpp:929 clientgui/ViewNotices.cpp:99
+msgid "Notices"
+msgstr "通知"
 
-#: clientgui/ValidateEmailAddress.cpp:75
-msgid "Invalid email address; please enter a valid email address"
-msgstr "此电子邮件地址错误;请输入一个正确的电子邮件地址"
+#: clientgui/sg_BoincSimpleFrame.cpp:930
+msgid "Open a window to view notices from projects or BOINC"
+msgstr "打开一个窗口,查看来自计算网站或 BOINC 网站的通知消息。"
 
-#: clientgui/ValidateURL.cpp:69
-msgid "Missing URL"
-msgstr "网址不存在"
+#: clientgui/sg_BoincSimpleFrame.cpp:951 clientgui/sg_DlgPreferences.cpp:366
+#, c-format
+msgid "Get help with %s"
+msgstr "获取 %s 的帮助信息"
 
-#: clientgui/ValidateURL.cpp:70
-msgid ""
-"Please specify a URL.\n"
-"For example:\n"
-"http://www.example.com/"
-msgstr "请输入一个网址。\n例如:\nhttp://www.example.com/"
+#: clientgui/sg_DlgMessages.cpp:124 clientgui/ViewNotices.cpp:58
+msgid "Fetching notices; please wait..."
+msgstr "获取通知中,请稍候..."
 
-#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
-#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
-#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
-msgid "Invalid URL"
-msgstr "错误的网址"
+#: clientgui/sg_DlgMessages.cpp:132 clientgui/ViewNotices.cpp:65
+msgid "There are no notices at this time."
+msgstr "当前没有可以显示的通知。"
 
-#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
-#: clientgui/ValidateURL.cpp:92
-msgid ""
-"Please specify a valid URL.\n"
-"For example:\n"
-"http://boincproject.example.com"
-msgstr "请输入一个正确的网址。\n比如:\nhttp://boincproject.example.com/"
+#: clientgui/sg_DlgMessages.cpp:146
+msgid "Close"
+msgstr "关闭"
 
-#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#: clientgui/sg_DlgMessages.cpp:394
 #, c-format
-msgid "'%s' does not contain a valid host name."
-msgstr "'%s'中未包含正确的主机名称。"
+msgid "%s - Notices"
+msgstr "%s - 通知"
 
-#: clientgui/ValidateURL.cpp:111
-#, c-format
-msgid "'%s' does not contain a valid path."
-msgstr "'%s'中未包含正确的路径。"
-
-#. Setup View
-#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
-#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
-#: clientgui/ViewWork.cpp:207
-msgid "Commands"
-msgstr "命令"
-
-#: clientgui/ViewMessages.cpp:88
-msgid "Copy all messages"
-msgstr "复制所有消息"
-
-#: clientgui/ViewMessages.cpp:95
-msgid "Copy selected messages"
-msgstr "复制选中的消息"
-
-#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
-msgid "Show only this project"
-msgstr "仅显示当前项目"
-
-#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
-msgid "Show only the messages for the selected project."
-msgstr "仅显示当前选中项目的消息。"
-
-#: clientgui/ViewMessages.cpp:164
-msgid "Messages"
-msgstr "消息"
-
-#: clientgui/ViewMessages.cpp:187
-msgid "Copying all messages to the clipboard..."
-msgstr "复制所有消息至剪贴板..."
-
-#: clientgui/ViewMessages.cpp:223
-msgid "Copying selected messages to the clipboard..."
-msgstr "复制选中的消息到剪贴板..."
-
-#: clientgui/ViewMessages.cpp:286
-msgid "Filtering messages..."
-msgstr "正在过滤消息..."
-
-#: clientgui/ViewMessages.cpp:494
-msgid "Show all messages"
-msgstr "显示所有消息"
-
-#: clientgui/ViewMessages.cpp:495
-msgid "Show messages for all projects."
-msgstr "显示所有项目的消息。"
+#: clientgui/sg_DlgPreferences.cpp:208
+msgid ""
+"For additional settings, select Computing Preferences in the Advanced View."
+msgstr "更多的参数设置,请在高级视图下选择“计算参数设置”来查看。"
 
-#: clientgui/ViewNotices.cpp:58 clientgui/sg_DlgMessages.cpp:124
-msgid "Fetching notices; please wait..."
-msgstr "获取通知中,请稍候..."
+#: clientgui/sg_DlgPreferences.cpp:346
+msgid "GB of disk space"
+msgstr "GB 的磁盘空间"
 
-#: clientgui/ViewNotices.cpp:65 clientgui/sg_DlgMessages.cpp:132
-msgid "There are no notices at this time."
-msgstr "当前没有可以显示的通知。"
+#: clientgui/sg_DlgPreferences.cpp:1105
+#, c-format
+msgid "%s - Computing Preferences"
+msgstr "%s -计算参数设置"
 
-#: clientgui/ViewNotices.cpp:99 clientgui/sg_BoincSimpleFrame.cpp:912
-msgid "Notices"
-msgstr "通知"
+#: clientgui/sg_DlgPreferences.cpp:1186
+msgid "Discard all local preferences and use web-based preferences?"
+msgstr "放弃所有本地设置并使用网站上的设置吗?"
 
-#: clientgui/ViewProjects.cpp:202 clientgui/sg_ProjectCommandPopup.cpp:66
+#: clientgui/sg_ProjectCommandPopup.cpp:66 clientgui/ViewProjects.cpp:202
 msgid "Update"
 msgstr "更新"
 
-#: clientgui/ViewProjects.cpp:203 clientgui/sg_ProjectCommandPopup.cpp:67
+#: clientgui/sg_ProjectCommandPopup.cpp:67 clientgui/ViewProjects.cpp:203
 msgid ""
 "Report all completed tasks, get latest credit, get latest preferences, and "
 "possibly get more tasks."
 msgstr "上报所有完成的任务,获取最新的积分及参数设置,可能下载更多的新任务。"
 
-#: clientgui/ViewProjects.cpp:209 clientgui/ViewProjects.cpp:808
-#: clientgui/ViewWork.cpp:232 clientgui/ViewWork.cpp:888
-#: clientgui/sg_BoincSimpleFrame.cpp:893
-#: clientgui/sg_ProjectCommandPopup.cpp:72
-#: clientgui/sg_ProjectCommandPopup.cpp:128
-#: clientgui/sg_TaskCommandPopup.cpp:72 clientgui/sg_TaskCommandPopup.cpp:122
-msgid "Suspend"
-msgstr "暂停"
-
-#: clientgui/ViewProjects.cpp:210 clientgui/ViewProjects.cpp:808
 #: clientgui/sg_ProjectCommandPopup.cpp:73
-#: clientgui/sg_ProjectCommandPopup.cpp:129
+#: clientgui/sg_ProjectCommandPopup.cpp:129 clientgui/ViewProjects.cpp:210
+#: clientgui/ViewProjects.cpp:792
 msgid "Suspend tasks for this project."
 msgstr "暂停当前项目的所有任务。"
 
-#: clientgui/ViewProjects.cpp:216 clientgui/ViewProjects.cpp:827
 #: clientgui/sg_ProjectCommandPopup.cpp:78
-#: clientgui/sg_ProjectCommandPopup.cpp:136
+#: clientgui/sg_ProjectCommandPopup.cpp:136 clientgui/ViewProjects.cpp:216
+#: clientgui/ViewProjects.cpp:811
 msgid "No new tasks"
 msgstr "禁止下载新任务"
 
-#: clientgui/ViewProjects.cpp:217 clientgui/sg_ProjectCommandPopup.cpp:79
+#: clientgui/sg_ProjectCommandPopup.cpp:79 clientgui/ViewProjects.cpp:217
 msgid "Don't get new tasks for this project."
 msgstr "该项目不再下载任何新任务。"
 
-#: clientgui/ViewProjects.cpp:223 clientgui/sg_ProjectCommandPopup.cpp:84
+#: clientgui/sg_ProjectCommandPopup.cpp:84 clientgui/ViewProjects.cpp:223
 msgid "Reset project"
 msgstr "重置项目"
 
-#: clientgui/ViewProjects.cpp:224 clientgui/sg_ProjectCommandPopup.cpp:85
+#: clientgui/sg_ProjectCommandPopup.cpp:85 clientgui/ViewProjects.cpp:224
 msgid ""
 "Delete all files and tasks associated with this project, and get new tasks."
 "  You can update the project first to report any completed tasks."
 msgstr "删除并重新下载当前项目所有相关文件。您可以先更新当前项目以上传所有已经完成的任务。"
 
-#: clientgui/ViewProjects.cpp:231 clientgui/sg_ProjectCommandPopup.cpp:91
+#: clientgui/sg_ProjectCommandPopup.cpp:91 clientgui/ViewProjects.cpp:231
 msgid ""
 "Remove this project.  Tasks in progress will be lost (use 'Update' first to "
 "report any completed tasks)."
 msgstr "删除当前项目。该项目所有正在计算的任务将丢失,您可以先点击“更新”按钮以上报所有已经完成的任务。"
 
-#: clientgui/ViewProjects.cpp:237 clientgui/ViewWork.cpp:246
 #: clientgui/sg_ProjectCommandPopup.cpp:96
-#: clientgui/sg_TaskCommandPopup.cpp:84
+#: clientgui/sg_TaskCommandPopup.cpp:84 clientgui/ViewProjects.cpp:237
+#: clientgui/ViewWork.cpp:246
 msgid "Properties"
 msgstr "属性"
 
-#: clientgui/ViewProjects.cpp:238 clientgui/sg_ProjectCommandPopup.cpp:97
+#: clientgui/sg_ProjectCommandPopup.cpp:97 clientgui/ViewProjects.cpp:238
 msgid "Show project details."
 msgstr "显示项目细节。"
 
-#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
-msgid "Account"
-msgstr "帐户"
-
-#: clientgui/ViewProjects.cpp:254
-msgid "Work done"
-msgstr "总积分"
-
-#: clientgui/ViewProjects.cpp:255
-msgid "Avg. work done"
-msgstr "近期平均积分"
-
-#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
-#: clientgui/ViewWork.cpp:262
-msgid "Status"
-msgstr "状态"
-
-#: clientgui/ViewProjects.cpp:336
-msgid "Projects"
-msgstr "项目"
-
-#: clientgui/ViewProjects.cpp:388
-msgid "Updating project..."
-msgstr "正在更新项目..."
-
-#: clientgui/ViewProjects.cpp:430
-msgid "Resuming project..."
-msgstr "正在继续项目..."
-
-#: clientgui/ViewProjects.cpp:434
-msgid "Suspending project..."
-msgstr "正在暂停项目..."
+#: clientgui/sg_ProjectCommandPopup.cpp:126 clientgui/ViewProjects.cpp:788
+msgid "Resume tasks for this project."
+msgstr "继续当前任务的计算。"
 
-#: clientgui/ViewProjects.cpp:471
-msgid "Telling project to allow additional task downloads..."
-msgstr "允许项目下载更多的任务..."
+#: clientgui/sg_ProjectCommandPopup.cpp:133 clientgui/ViewProjects.cpp:807
+msgid "Allow new tasks"
+msgstr "允许下载新任务"
 
-#: clientgui/ViewProjects.cpp:475
-msgid "Telling project to not fetch any additional tasks..."
-msgstr "禁止项目下载更多的任务..."
+#: clientgui/sg_ProjectCommandPopup.cpp:134 clientgui/ViewProjects.cpp:807
+msgid "Allow fetching new tasks for this project."
+msgstr "允许当前项目下载新任务。"
 
-#: clientgui/ViewProjects.cpp:511
-msgid "Resetting project..."
-msgstr "正在重置项目..."
+#: clientgui/sg_ProjectCommandPopup.cpp:137 clientgui/ViewProjects.cpp:811
+msgid "Don't fetch new tasks for this project."
+msgstr "禁止当前项目下载新任务。"
 
-#: clientgui/ViewProjects.cpp:524 clientgui/sg_ProjectCommandPopup.cpp:229
+#: clientgui/sg_ProjectCommandPopup.cpp:229 clientgui/ViewProjects.cpp:517
 #, c-format
 msgid "Are you sure you want to reset project '%s'?"
 msgstr "您确定要重置'%s'项目吗?"
 
-#: clientgui/ViewProjects.cpp:530 clientgui/sg_ProjectCommandPopup.cpp:235
+#: clientgui/sg_ProjectCommandPopup.cpp:235 clientgui/ViewProjects.cpp:523
 msgid "Reset Project"
 msgstr "重置项目"
 
-#: clientgui/ViewProjects.cpp:569
-msgid "Removing project..."
-msgstr "正在删除项目..."
-
-#: clientgui/ViewProjects.cpp:582 clientgui/sg_ProjectCommandPopup.cpp:266
+#: clientgui/sg_ProjectCommandPopup.cpp:266 clientgui/ViewProjects.cpp:571
 #, c-format
 msgid "Are you sure you want to remove project '%s'?"
 msgstr "您确定要删除'%s'项目吗?"
 
-#: clientgui/ViewProjects.cpp:588 clientgui/sg_ProjectCommandPopup.cpp:272
+#: clientgui/sg_ProjectCommandPopup.cpp:272 clientgui/ViewProjects.cpp:577
 msgid "Remove Project"
 msgstr "移除项目"
 
-#: clientgui/ViewProjects.cpp:629 clientgui/ViewWork.cpp:686
-msgid "Launching browser..."
-msgstr "正在启动浏览器..."
+#: clientgui/sg_ProjectPanel.cpp:73
+msgid "Add Project"
+msgstr "增加项目"
 
-#: clientgui/ViewProjects.cpp:804 clientgui/sg_ProjectCommandPopup.cpp:126
-msgid "Resume tasks for this project."
-msgstr "继续当前任务的计算。"
+#: clientgui/sg_ProjectPanel.cpp:74
+msgid "Synchronize"
+msgstr "同步"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:133
-msgid "Allow new tasks"
-msgstr "允许下载新任务"
+#: clientgui/sg_ProjectPanel.cpp:75
+msgid "Work done for this project"
+msgstr "已为该项目完成的任务"
 
-#: clientgui/ViewProjects.cpp:823 clientgui/sg_ProjectCommandPopup.cpp:134
-msgid "Allow fetching new tasks for this project."
-msgstr "允许当前项目下载新任务。"
+#: clientgui/sg_ProjectPanel.cpp:77
+msgid "Volunteer for any or all of 30+ projects in many areas of science"
+msgstr "志愿加入到一个或多个分布在许多不同科学领域内的研究项目"
 
-#: clientgui/ViewProjects.cpp:827 clientgui/sg_ProjectCommandPopup.cpp:137
-msgid "Don't fetch new tasks for this project."
-msgstr "禁止当前项目下载新任务。"
+#: clientgui/sg_ProjectPanel.cpp:78
+msgid "Synchronize projects with account manager system"
+msgstr "从帐户管理系统同步项目"
 
-#: clientgui/ViewProjects.cpp:1131
-msgid "Requested by user"
-msgstr "用户发起的请求"
+#. TODO: Might want better wording for Project Selection Combo Box tooltip
+#: clientgui/sg_ProjectPanel.cpp:125
+msgid "Select a project to access with the controls below"
+msgstr "选择一个要操作的项目"
 
-#: clientgui/ViewProjects.cpp:1132
-msgid "To fetch work"
-msgstr "获取新的任务"
+#: clientgui/sg_ProjectPanel.cpp:146
+msgid "Project Web Pages"
+msgstr "项目网站"
 
-#: clientgui/ViewProjects.cpp:1133
-msgid "To report completed tasks"
-msgstr "上报已经完成的任务"
+#: clientgui/sg_ProjectPanel.cpp:150
+msgid "Project Commands"
+msgstr "项目命令"
 
-#: clientgui/ViewProjects.cpp:1134
-msgid "To send trickle-up message"
-msgstr "发送上传消息"
+#: clientgui/sg_ProjectPanel.cpp:279
+#, c-format
+msgid "Pop up a menu of web sites for project %s"
+msgstr "弹出一个 %s 项目的网站菜单"
 
-#: clientgui/ViewProjects.cpp:1135
-msgid "Requested by account manager"
-msgstr "帐户管理器发起的请求"
+#: clientgui/sg_ProjectPanel.cpp:281
+#, c-format
+msgid "Pop up a menu of commands to apply to project %s"
+msgstr "弹出一个 %s 项目可用的命令菜单"
 
-#: clientgui/ViewProjects.cpp:1136
-msgid "Project initialization"
-msgstr "项目初始化"
+#: clientgui/sg_TaskCommandPopup.cpp:66 clientgui/ViewWork.cpp:218
+msgid "Show graphics"
+msgstr "显示图形"
 
-#: clientgui/ViewProjects.cpp:1137
-msgid "Requested by project"
-msgstr "项目发起的请求"
+#: clientgui/sg_TaskCommandPopup.cpp:67 clientgui/ViewWork.cpp:219
+msgid "Show application graphics in a window."
+msgstr "在新窗口中显示项目图形。"
 
-#: clientgui/ViewProjects.cpp:1138
-msgid "Unknown reason"
-msgstr "未知原因"
+#: clientgui/sg_TaskCommandPopup.cpp:73
+msgid "Suspend this task."
+msgstr "暂停该任务。"
 
-#: clientgui/ViewProjects.cpp:1152
-msgid "Suspended by user"
-msgstr "已被用户暂停"
+#: clientgui/sg_TaskCommandPopup.cpp:78 clientgui/ViewWork.cpp:239
+msgid "Abort"
+msgstr "中止"
 
-#: clientgui/ViewProjects.cpp:1155
-msgid "Won't get new tasks"
-msgstr "禁止下载新任务"
+#: clientgui/sg_TaskCommandPopup.cpp:79
+msgid "Abandon this task. You will get no credit for it."
+msgstr "放弃这个任务,你将得不到相应的任务积分。"
 
-#: clientgui/ViewProjects.cpp:1158
-msgid "Project ended - OK to remove"
-msgstr "项目已结束 - 可以删除"
+#: clientgui/sg_TaskCommandPopup.cpp:85 clientgui/ViewWork.cpp:247
+msgid "Show task details."
+msgstr "显示任务细节。"
 
-#: clientgui/ViewProjects.cpp:1161
-msgid "Will remove when tasks done"
-msgstr "将在任务完成后删除"
+#: clientgui/sg_TaskCommandPopup.cpp:119 clientgui/ViewWork.cpp:873
+msgid "Resume work for this task."
+msgstr "继续计算当前任务。"
 
-#: clientgui/ViewProjects.cpp:1164
-msgid "Scheduler request pending"
-msgstr "等待调度请求"
+#: clientgui/sg_TaskCommandPopup.cpp:123 clientgui/ViewWork.cpp:879
+msgid "Suspend work for this task."
+msgstr "暂停计算当前任务。"
 
-#: clientgui/ViewProjects.cpp:1170
-msgid "Scheduler request in progress"
-msgstr "正在进行调度请求"
+#: clientgui/sg_TaskCommandPopup.cpp:267
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %.1lf%%, Status: %s)"
+msgstr "您确定要中止当前任务'%s'吗?\n( 进度:%.1lf%%,状态:%s )"
 
-#: clientgui/ViewProjects.cpp:1173
-msgid "Trickle up message pending"
-msgstr "上传消息等待中"
+#: clientgui/sg_TaskCommandPopup.cpp:272 clientgui/ViewWork.cpp:575
+msgid "Abort task"
+msgstr "中止任务"
 
-#: clientgui/ViewProjects.cpp:1179
-msgid "Communication deferred"
-msgstr "通讯被推迟"
+#: clientgui/sg_TaskPanel.cpp:469
+msgid "You don't have any projects.  Please Add a Project."
+msgstr "您当前没有加入到任何项目,请先加入一个项目。"
 
-#: clientgui/ViewResources.cpp:62
-msgid "Total disk usage"
-msgstr "总磁盘占用"
+#: clientgui/sg_TaskPanel.cpp:470
+msgid "Not available"
+msgstr "不可用"
 
-#: clientgui/ViewResources.cpp:83
-msgid "Disk usage by BOINC projects"
-msgstr "BOINC 项目的磁盘占用"
+#: clientgui/sg_TaskPanel.cpp:481
+msgid "Tasks:"
+msgstr "任务:"
 
-#: clientgui/ViewResources.cpp:225
-msgid "no projects: 0 bytes used"
-msgstr "未加入任何项目:磁盘空间占用为零"
+#. TODO: Might want better wording for Task Selection Combo Box tooltip
+#: clientgui/sg_TaskPanel.cpp:487
+msgid "Select a task to access"
+msgstr "选择一个要操作的任务"
 
-#: clientgui/ViewResources.cpp:259
-msgid "used by BOINC: "
-msgstr "BOINC 使用:"
+#. what project the task is from, e.g. "From: SETI at home"
+#: clientgui/sg_TaskPanel.cpp:499
+msgid "From:"
+msgstr "来自:"
 
-#: clientgui/ViewResources.cpp:269
-msgid "free, available to BOINC: "
-msgstr "BOINC 可用的剩余磁盘空间:"
+#: clientgui/sg_TaskPanel.cpp:553
+msgid "This task's progress"
+msgstr "该计算任务的进度"
 
-#: clientgui/ViewResources.cpp:279
-msgid "free, not available to BOINC: "
-msgstr "BOINC 不可用的剩余磁盘空间:"
+#: clientgui/sg_TaskPanel.cpp:571
+msgid "Task Commands"
+msgstr "任务命令"
 
-#: clientgui/ViewResources.cpp:289
-msgid "free: "
-msgstr "可用磁盘空间:"
+#: clientgui/sg_TaskPanel.cpp:572
+msgid "Pop up a menu of commands to apply to this task"
+msgstr "弹出一个应用于当前计算任务的命令菜单"
 
-#: clientgui/ViewResources.cpp:298
-msgid "used by other programs: "
-msgstr "其它程序使用:"
+#: clientgui/sg_TaskPanel.cpp:707
+#, c-format
+msgid "Application: %s"
+msgstr "计算程序:%s"
 
-#: clientgui/ViewStatistics.cpp:1181
-msgid "User Total"
-msgstr "用户的总积分"
+#: clientgui/sg_TaskPanel.cpp:730
+#, c-format
+msgid "%.3f%%"
+msgstr "%.3f%%"
 
-#: clientgui/ViewStatistics.cpp:1182
-msgid "User Average"
-msgstr "用户的近期平均积分"
+#: clientgui/sg_TaskPanel.cpp:738
+msgid "Application: Not available"
+msgstr "计算程序:不可用"
 
-#: clientgui/ViewStatistics.cpp:1183
-msgid "Host Total"
-msgstr "主机的总积分"
+#: clientgui/sg_TaskPanel.cpp:839
+msgid "Not Available"
+msgstr "不可用"
 
-#: clientgui/ViewStatistics.cpp:1184
-msgid "Host Average"
-msgstr "主机的近期平均积分"
+#: clientgui/sg_TaskPanel.cpp:854
+#, c-format
+msgid "Elapsed: %s"
+msgstr "已用时:%s"
 
-#: clientgui/ViewStatistics.cpp:1331
+#: clientgui/sg_TaskPanel.cpp:868
 #, c-format
-msgid "Last update: %.0f days ago"
-msgstr "上次更新:%.0f天前"
+msgid "Remaining (estimated): %s"
+msgstr "剩余时间:%s"
 
-#: clientgui/ViewStatistics.cpp:1956
-msgid "Show user total"
-msgstr "显示用户的总积分"
+#: clientgui/sg_TaskPanel.cpp:883
+#, c-format
+msgid "Status: %s"
+msgstr "状态:%s"
 
-#: clientgui/ViewStatistics.cpp:1957
-msgid "Show total credit for user"
-msgstr "显示用户的总积分"
+#: clientgui/sg_TaskPanel.cpp:1217
+msgid "Retrieving current status."
+msgstr "正在获取当前状态。"
 
-#: clientgui/ViewStatistics.cpp:1963
-msgid "Show user average"
-msgstr "显示用户的近期平均积分"
+#: clientgui/sg_TaskPanel.cpp:1223
+msgid "Downloading work from the server."
+msgstr "正在从服务器下载任务。"
 
-#: clientgui/ViewStatistics.cpp:1964
-msgid "Show average credit for user"
-msgstr "显示用户的近期平均积分"
+#: clientgui/sg_TaskPanel.cpp:1228
+msgid "Processing Suspended:  Running On Batteries."
+msgstr "暂停计算:电池供电。"
 
-#: clientgui/ViewStatistics.cpp:1970
-msgid "Show host total"
-msgstr "显示主机的总积分"
+#: clientgui/sg_TaskPanel.cpp:1230
+msgid "Processing Suspended:  User Active."
+msgstr "暂停计算:用户活跃。"
 
-#: clientgui/ViewStatistics.cpp:1971
-msgid "Show total credit for host"
-msgstr "显示主机的总积分"
+#: clientgui/sg_TaskPanel.cpp:1232
+msgid "Processing Suspended:  User paused processing."
+msgstr "暂停计算:用户暂停计算。"
 
-#: clientgui/ViewStatistics.cpp:1977
-msgid "Show host average"
-msgstr "显示主机的近期平均积分"
+#: clientgui/sg_TaskPanel.cpp:1234
+msgid "Processing Suspended:  Time of Day."
+msgstr "暂停计算: 休息时间段。"
 
-#: clientgui/ViewStatistics.cpp:1978
-msgid "Show average credit for host"
-msgstr "显示主机的近期平均积分"
+#: clientgui/sg_TaskPanel.cpp:1236
+msgid "Processing Suspended:  Benchmarks Running."
+msgstr "暂停计算:正在运行基准测试。"
 
-#: clientgui/ViewStatistics.cpp:1987
-msgid "< &Previous project"
-msgstr "< 前一项目(&P)"
+#: clientgui/sg_TaskPanel.cpp:1238
+msgid "Processing Suspended:  need disk space."
+msgstr "暂停计算:需要磁盘空间。"
 
-#: clientgui/ViewStatistics.cpp:1988
-msgid "Show chart for previous project"
-msgstr "显示前一个项目的图表"
+#: clientgui/sg_TaskPanel.cpp:1240
+msgid "Processing Suspended."
+msgstr "暂停计算。"
 
-#: clientgui/ViewStatistics.cpp:1993
-msgid "&Next project >"
-msgstr "后一项目(&N) >"
+#: clientgui/sg_TaskPanel.cpp:1244
+msgid "Waiting to contact project servers."
+msgstr "正在等待连接项目服务器。"
 
-#: clientgui/ViewStatistics.cpp:1994
-msgid "Show chart for next project"
-msgstr "显示后一个项目的图表"
+#: clientgui/sg_TaskPanel.cpp:1248 clientgui/sg_TaskPanel.cpp:1257
+msgid "Retrieving current status"
+msgstr "正在获取当前状态"
 
-#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2390
-msgid "Hide project list"
-msgstr "隐藏项目列表"
+#: clientgui/sg_TaskPanel.cpp:1252
+msgid "No work available to process"
+msgstr "无任务可供处理"
 
-#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2390
-msgid "Use entire area for graphs"
-msgstr "将整块区域用作图形显示"
+#: clientgui/sg_TaskPanel.cpp:1254
+msgid "Unable to connect to the core client"
+msgstr "无法连接至客户端的核心服务程序"
 
-#: clientgui/ViewStatistics.cpp:2006
-msgid "Mode view"
-msgstr "查看模式"
+#: clientgui/TermsOfUsePage.cpp:218
+msgid "Terms of Use"
+msgstr "使用协议"
 
-#: clientgui/ViewStatistics.cpp:2010
-msgid "One project"
-msgstr "单项目"
+#: clientgui/TermsOfUsePage.cpp:222
+msgid "Please read the following terms of use:"
+msgstr "请阅读以下的使用协议:"
 
-#: clientgui/ViewStatistics.cpp:2011
-msgid "Show one chart with selected project"
-msgstr "显示当前项目的图表"
+#: clientgui/TermsOfUsePage.cpp:231
+msgid "I agree to the terms of use."
+msgstr "我同意该使用协议。"
 
-#: clientgui/ViewStatistics.cpp:2017
-msgid "All projects (separate)"
-msgstr "所有项目(单独)"
+#: clientgui/TermsOfUsePage.cpp:237
+msgid "I do not agree to the terms of use."
+msgstr "我不同意该用户条款。"
 
-#: clientgui/ViewStatistics.cpp:2018
-msgid "Show all projects, one chart per project"
-msgstr "显示所有项目,一个项目一张图表"
+#: clientgui/UnavailablePage.cpp:183
+msgid "Project temporarily unavailable"
+msgstr "项目已暂停服务"
 
-#: clientgui/ViewStatistics.cpp:2024
-msgid "All projects (together)"
-msgstr "所有项目(合并)"
+#: clientgui/UnavailablePage.cpp:186
+msgid ""
+"The project is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "项目已暂停服务。\n\n请稍后重试。"
 
-#: clientgui/ViewStatistics.cpp:2025
-msgid "Show one chart with all projects"
-msgstr "在一张图表中显示所有项目"
+#: clientgui/UnavailablePage.cpp:190
+msgid "Account manager temporarily unavailable"
+msgstr "帐户管理器已暂停服务"
 
-#: clientgui/ViewStatistics.cpp:2031
-msgid "All projects (sum)"
-msgstr "所有项目(总和)"
+#: clientgui/UnavailablePage.cpp:193
+msgid ""
+"The account manager is temporarily unavailable.\n"
+"\n"
+"Please try again later."
+msgstr "帐户管理器已暂停服务。\n\n请稍后重试。"
 
-#: clientgui/ViewStatistics.cpp:2032
-msgid "Show one chart with sum of projects"
-msgstr "在一张图表中显示所有项目"
+#: clientgui/ValidateAccountKey.cpp:68
+msgid "Please specify an account key to continue."
+msgstr "请输入帐户密钥以继续。"
 
-#: clientgui/ViewStatistics.cpp:2053
-msgid "Statistics"
-msgstr "统计"
+#: clientgui/ValidateAccountKey.cpp:71
+msgid "Invalid Account Key; please enter a valid Account Key"
+msgstr "此帐户密钥错误;请输入一个正确的帐户密钥"
 
-#: clientgui/ViewStatistics.cpp:2077 clientgui/ViewStatistics.cpp:2098
-#: clientgui/ViewStatistics.cpp:2119 clientgui/ViewStatistics.cpp:2141
-#: clientgui/ViewStatistics.cpp:2162 clientgui/ViewStatistics.cpp:2183
-#: clientgui/ViewStatistics.cpp:2204 clientgui/ViewStatistics.cpp:2225
-#: clientgui/ViewStatistics.cpp:2246 clientgui/ViewStatistics.cpp:2270
-msgid "Updating charts..."
-msgstr "正在更新图表..."
+#: clientgui/ValidateAccountKey.cpp:82 clientgui/ValidateEmailAddress.cpp:86
+msgid "Validation conflict"
+msgstr "验证冲突"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Show project list"
-msgstr "显示项目列表"
+#: clientgui/ValidateEmailAddress.cpp:72
+msgid "Please specify an email address"
+msgstr "请指定一个电子邮件地址"
 
-#: clientgui/ViewStatistics.cpp:2394
-msgid "Uses smaller area for graphs"
-msgstr "使用更小的图表显示区域"
+#: clientgui/ValidateEmailAddress.cpp:75
+msgid "Invalid email address; please enter a valid email address"
+msgstr "此电子邮件地址错误;请输入一个正确的电子邮件地址"
 
-#: clientgui/ViewTransfers.cpp:187
-msgid "Retry Now"
-msgstr "立即重试"
+#: clientgui/ValidateURL.cpp:69
+msgid "Missing URL"
+msgstr "网址不存在"
 
-#: clientgui/ViewTransfers.cpp:188
-msgid "Retry the file transfer now"
-msgstr "立即重试该文件的传输。"
+#: clientgui/ValidateURL.cpp:70
+msgid ""
+"Please specify a URL.\n"
+"For example:\n"
+"http://www.example.com/"
+msgstr "请输入一个网址。\n例如:\nhttp://www.example.com/"
 
-#: clientgui/ViewTransfers.cpp:194
-msgid "Abort Transfer"
-msgstr "中断传输"
+#: clientgui/ValidateURL.cpp:83 clientgui/ValidateURL.cpp:87
+#: clientgui/ValidateURL.cpp:91 clientgui/ValidateURL.cpp:103
+#: clientgui/ValidateURL.cpp:107 clientgui/ValidateURL.cpp:110
+msgid "Invalid URL"
+msgstr "错误的网址"
 
-#: clientgui/ViewTransfers.cpp:195
-msgid "Abort this file transfer.  You won't get credit for the task."
-msgstr "中止该文件的传输,你将得不到相应的任务积分。"
+#: clientgui/ValidateURL.cpp:84 clientgui/ValidateURL.cpp:88
+#: clientgui/ValidateURL.cpp:92
+msgid ""
+"Please specify a valid URL.\n"
+"For example:\n"
+"http://boincproject.example.com"
+msgstr "请输入一个正确的网址。\n比如:\nhttp://boincproject.example.com/"
 
-#: clientgui/ViewTransfers.cpp:210
-msgid "File"
-msgstr "文件"
+#: clientgui/ValidateURL.cpp:104 clientgui/ValidateURL.cpp:108
+#, c-format
+msgid "'%s' does not contain a valid host name."
+msgstr "'%s'中未包含正确的主机名称。"
 
-#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
-msgid "Progress"
-msgstr "进度"
+#: clientgui/ValidateURL.cpp:111
+#, c-format
+msgid "'%s' does not contain a valid path."
+msgstr "'%s'中未包含正确的路径。"
 
-#: clientgui/ViewTransfers.cpp:212
-msgid "Size"
-msgstr "大小"
+#. Setup View
+#: clientgui/ViewMessages.cpp:84 clientgui/ViewProjects.cpp:198
+#: clientgui/ViewStatistics.cpp:1952 clientgui/ViewTransfers.cpp:183
+#: clientgui/ViewWork.cpp:207
+msgid "Commands"
+msgstr "命令"
 
-#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
-msgid "Elapsed"
-msgstr "已用时间"
+#: clientgui/ViewMessages.cpp:88
+msgid "Copy all messages"
+msgstr "复制所有消息"
 
-#: clientgui/ViewTransfers.cpp:214
-msgid "Speed"
-msgstr "速度"
+#: clientgui/ViewMessages.cpp:95
+msgid "Copy selected messages"
+msgstr "复制选中的消息"
 
-#: clientgui/ViewTransfers.cpp:295
-msgid "Transfers"
-msgstr "网络传输"
+#: clientgui/ViewMessages.cpp:106 clientgui/ViewMessages.cpp:502
+msgid "Show only this project"
+msgstr "仅显示当前项目"
 
-#: clientgui/ViewTransfers.cpp:362
-msgid "Network activity is suspended - "
-msgstr "网络被暂停 - "
+#: clientgui/ViewMessages.cpp:107 clientgui/ViewMessages.cpp:503
+msgid "Show only the messages for the selected project."
+msgstr "仅显示当前选中项目的消息。"
 
-#: clientgui/ViewTransfers.cpp:364
-msgid ""
-".\n"
-"You can enable it using the Activity menu."
-msgstr "。\n你可以在“活动”菜单中重新启用它。"
+#: clientgui/ViewMessages.cpp:164
+msgid "Messages"
+msgstr "消息"
 
-#: clientgui/ViewTransfers.cpp:367
-msgid "BOINC"
-msgstr "BOINC"
+#: clientgui/ViewMessages.cpp:187
+msgid "Copying all messages to the clipboard..."
+msgstr "复制所有消息至剪贴板..."
 
-#: clientgui/ViewTransfers.cpp:374
-msgid "Retrying transfer now..."
-msgstr "正在重试传输..."
+#: clientgui/ViewMessages.cpp:223
+msgid "Copying selected messages to the clipboard..."
+msgstr "复制选中的消息到剪贴板..."
 
-#: clientgui/ViewTransfers.cpp:412
-msgid "Aborting transfer..."
-msgstr "中断传输..."
+#: clientgui/ViewMessages.cpp:286
+msgid "Filtering messages..."
+msgstr "正在过滤消息..."
 
-#: clientgui/ViewTransfers.cpp:425
-#, c-format
-msgid ""
-"Are you sure you want to abort this file transfer '%s'?\n"
-"NOTE: Aborting a transfer will invalidate a task and you\n"
-"will not receive credit for it."
-msgstr "您确信要中断文件'%s'的传输吗?\n注意:中断传输将标识该任务为无效,您将不能从该任务得到积分。"
+#: clientgui/ViewMessages.cpp:494
+msgid "Show all messages"
+msgstr "显示所有消息"
 
-#: clientgui/ViewTransfers.cpp:431
-msgid "Abort File Transfer"
-msgstr "中断文件传输"
+#: clientgui/ViewMessages.cpp:495
+msgid "Show messages for all projects."
+msgstr "显示所有项目的消息。"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Upload"
-msgstr "上传"
+#: clientgui/ViewProjects.cpp:252 clientgui/ViewStatistics.cpp:426
+msgid "Account"
+msgstr "帐户"
 
-#: clientgui/ViewTransfers.cpp:845
-msgid "Download"
-msgstr "下载"
+#: clientgui/ViewProjects.cpp:254
+msgid "Work done"
+msgstr "总积分"
 
-#: clientgui/ViewTransfers.cpp:849
-msgid "retry in "
-msgstr "稍后重试 "
+#: clientgui/ViewProjects.cpp:255
+msgid "Avg. work done"
+msgstr "近期平均积分"
 
-#: clientgui/ViewTransfers.cpp:851
-msgid "failed"
-msgstr "失败"
+#: clientgui/ViewProjects.cpp:257 clientgui/ViewTransfers.cpp:215
+#: clientgui/ViewWork.cpp:262
+msgid "Status"
+msgstr "状态"
 
-#: clientgui/ViewTransfers.cpp:854
-msgid "suspended"
-msgstr "暂停"
+#: clientgui/ViewProjects.cpp:336
+msgid "Projects"
+msgstr "项目"
 
-#: clientgui/ViewTransfers.cpp:859
-msgid "active"
-msgstr "处理中"
+#: clientgui/ViewProjects.cpp:1115
+msgid "Requested by user"
+msgstr "用户发起的请求"
 
-#: clientgui/ViewTransfers.cpp:861
-msgid "pending"
-msgstr "等待中"
+#: clientgui/ViewProjects.cpp:1116
+msgid "To fetch work"
+msgstr "获取新的任务"
 
-#: clientgui/ViewTransfers.cpp:867
-msgid " (project backoff: "
-msgstr "(项目延后:"
+#: clientgui/ViewProjects.cpp:1117
+msgid "To report completed tasks"
+msgstr "上报已经完成的任务"
 
-#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:864
-msgid "Show active tasks"
-msgstr "显示活动任务"
+#: clientgui/ViewProjects.cpp:1118
+msgid "To send trickle-up message"
+msgstr "发送上传消息"
 
-#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:865
-msgid "Show only active tasks."
-msgstr "只显示正在计算过程中的任务。"
+#: clientgui/ViewProjects.cpp:1119
+msgid "Requested by account manager"
+msgstr "帐户管理器发起的请求"
 
-#: clientgui/ViewWork.cpp:218 clientgui/sg_TaskCommandPopup.cpp:66
-msgid "Show graphics"
-msgstr "显示图形"
+#: clientgui/ViewProjects.cpp:1120
+msgid "Project initialization"
+msgstr "项目初始化"
 
-#: clientgui/ViewWork.cpp:219 clientgui/sg_TaskCommandPopup.cpp:67
-msgid "Show application graphics in a window."
-msgstr "在新窗口中显示项目图形。"
+#: clientgui/ViewProjects.cpp:1121
+msgid "Requested by project"
+msgstr "项目发起的请求"
 
-#: clientgui/ViewWork.cpp:225
-msgid "Show VM Console"
-msgstr "显示虚拟机控制台"
+#: clientgui/ViewProjects.cpp:1122
+msgid "Unknown reason"
+msgstr "未知原因"
 
-#: clientgui/ViewWork.cpp:226
-msgid "Show VM Console in a window."
-msgstr "在窗口里显示虚拟机控制台。"
+#: clientgui/ViewProjects.cpp:1136
+msgid "Suspended by user"
+msgstr "已被用户暂停"
 
-#: clientgui/ViewWork.cpp:233
-msgid "Suspend work for this result."
-msgstr "暂停当前任务。"
+#: clientgui/ViewProjects.cpp:1139
+msgid "Won't get new tasks"
+msgstr "禁止下载新任务"
 
-#: clientgui/ViewWork.cpp:239 clientgui/sg_TaskCommandPopup.cpp:78
-msgid "Abort"
-msgstr "中止"
+#: clientgui/ViewProjects.cpp:1142
+msgid "Project ended - OK to remove"
+msgstr "项目已结束 - 可以删除"
 
-#: clientgui/ViewWork.cpp:240
-msgid "Abandon work on the result. You will get no credit for it."
-msgstr "中止该任务,您将不能得到它的积分。"
+#: clientgui/ViewProjects.cpp:1145
+msgid "Will remove when tasks done"
+msgstr "将在任务完成后删除"
 
-#: clientgui/ViewWork.cpp:247 clientgui/sg_TaskCommandPopup.cpp:85
-msgid "Show task details."
-msgstr "显示任务细节。"
+#: clientgui/ViewProjects.cpp:1148
+msgid "Scheduler request pending"
+msgstr "等待调度请求"
 
-#: clientgui/ViewWork.cpp:264
-msgid "Remaining (estimated)"
-msgstr "剩余时间(估计)"
+#: clientgui/ViewProjects.cpp:1154
+msgid "Scheduler request in progress"
+msgstr "正在进行调度请求"
 
-#: clientgui/ViewWork.cpp:265
-msgid "Deadline"
-msgstr "上报期限"
+#: clientgui/ViewProjects.cpp:1157
+msgid "Trickle up message pending"
+msgstr "上传消息等待中"
 
-#: clientgui/ViewWork.cpp:351
-msgid "Tasks"
-msgstr "任务"
+#: clientgui/ViewProjects.cpp:1163
+msgid "Communication deferred"
+msgstr "通讯被推迟"
 
-#: clientgui/ViewWork.cpp:444
-msgid "Resuming task..."
-msgstr "正在继续该任务..."
+#: clientgui/ViewResources.cpp:62
+msgid "Total disk usage"
+msgstr "总磁盘占用"
 
-#: clientgui/ViewWork.cpp:447
-msgid "Suspending task..."
-msgstr "正在暂停该任务..."
+#: clientgui/ViewResources.cpp:83
+msgid "Disk usage by BOINC projects"
+msgstr "BOINC 项目的磁盘占用"
 
-#: clientgui/ViewWork.cpp:476
-msgid "Showing graphics for task..."
-msgstr "正在显示该任务的图形..."
+#: clientgui/ViewResources.cpp:225
+msgid "no projects: 0 bytes used"
+msgstr "未加入任何项目:磁盘空间占用为零"
 
-#: clientgui/ViewWork.cpp:513
-msgid "Showing VM console for task..."
-msgstr "显示指定任务的虚拟机控制台..."
+#: clientgui/ViewResources.cpp:259
+msgid "used by BOINC: "
+msgstr "BOINC 使用:"
 
-#: clientgui/ViewWork.cpp:566
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %s, Status: %s)"
-msgstr "您确定要中止当前任务'%s'吗?\n(进度:%s,状态:%s)"
+#: clientgui/ViewResources.cpp:269
+msgid "free, available to BOINC: "
+msgstr "BOINC 可用的剩余磁盘空间:"
 
-#: clientgui/ViewWork.cpp:572
-#, c-format
-msgid "Are you sure you want to abort these %d tasks?"
-msgstr "您确定想要中止这 %d 个任务吗?"
+#: clientgui/ViewResources.cpp:279
+msgid "free, not available to BOINC: "
+msgstr "BOINC 不可用的剩余磁盘空间:"
 
-#: clientgui/ViewWork.cpp:577 clientgui/sg_TaskCommandPopup.cpp:272
-msgid "Abort task"
-msgstr "中止任务"
+#: clientgui/ViewResources.cpp:289
+msgid "free: "
+msgstr "可用磁盘空间:"
 
-#: clientgui/ViewWork.cpp:586
-msgid "Aborting task..."
-msgstr "中止任务..."
+#: clientgui/ViewResources.cpp:298
+msgid "used by other programs: "
+msgstr "其它程序使用:"
 
-#: clientgui/ViewWork.cpp:858
-msgid "Show all tasks"
-msgstr "显示所有任务"
+#: clientgui/ViewStatistics.cpp:1181
+msgid "User Total"
+msgstr "用户的总积分"
 
-#: clientgui/ViewWork.cpp:859
-msgid "Show all tasks."
-msgstr "显示所有的任务。"
+#: clientgui/ViewStatistics.cpp:1182
+msgid "User Average"
+msgstr "用户的近期平均积分"
 
-#: clientgui/ViewWork.cpp:883 clientgui/sg_TaskCommandPopup.cpp:119
-msgid "Resume work for this task."
-msgstr "继续计算当前任务。"
+#: clientgui/ViewStatistics.cpp:1183
+msgid "Host Total"
+msgstr "主机的总积分"
 
-#: clientgui/ViewWork.cpp:889 clientgui/sg_TaskCommandPopup.cpp:123
-msgid "Suspend work for this task."
-msgstr "暂停计算当前任务。"
+#: clientgui/ViewStatistics.cpp:1184
+msgid "Host Average"
+msgstr "主机的近期平均积分"
 
-#: clientgui/WizardAttach.cpp:571
-msgid "Do you really want to cancel?"
-msgstr "您确定要取消吗?"
+#: clientgui/ViewStatistics.cpp:1331
+#, c-format
+msgid "Last update: %.0f days ago"
+msgstr "上次更新:%.0f天前"
 
-#: clientgui/WizardAttach.cpp:572
-msgid "Question"
-msgstr "问题"
+#: clientgui/ViewStatistics.cpp:1956
+msgid "Show user total"
+msgstr "显示用户的总积分"
 
-#: clientgui/mac/Mac_GUI.cpp:35 clientgui\mac/Mac_GUI.cpp:35
-msgid "Services"
-msgstr "服务"
+#: clientgui/ViewStatistics.cpp:1957
+msgid "Show total credit for user"
+msgstr "显示用户的总积分"
 
-#: clientgui/mac/Mac_GUI.cpp:36 clientgui\mac/Mac_GUI.cpp:36
-#, c-format
-msgid "Hide %s"
-msgstr "隐藏 %s"
+#: clientgui/ViewStatistics.cpp:1963
+msgid "Show user average"
+msgstr "显示用户的近期平均积分"
 
-#: clientgui/mac/Mac_GUI.cpp:37 clientgui\mac/Mac_GUI.cpp:37
-msgid "Hide Others"
-msgstr "隐藏其它"
+#: clientgui/ViewStatistics.cpp:1964
+msgid "Show average credit for user"
+msgstr "显示用户的近期平均积分"
 
-#: clientgui/mac/Mac_GUI.cpp:38 clientgui\mac/Mac_GUI.cpp:38
-msgid "Show All"
-msgstr "显示所有"
+#: clientgui/ViewStatistics.cpp:1970
+msgid "Show host total"
+msgstr "显示主机的总积分"
 
-#: clientgui/mac/Mac_GUI.cpp:39 clientgui\mac/Mac_GUI.cpp:39
-#, c-format
-msgid "Quit %s"
-msgstr "退出 %s"
+#: clientgui/ViewStatistics.cpp:1971
+msgid "Show total credit for host"
+msgstr "显示主机的总积分"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:169
-msgid "Skin"
-msgstr "皮肤"
+#: clientgui/ViewStatistics.cpp:1977
+msgid "Show host average"
+msgstr "显示主机的近期平均积分"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:171
-msgid "Select the appearance of the user interface."
-msgstr "选择用户界面的外观。"
+#: clientgui/ViewStatistics.cpp:1978
+msgid "Show average credit for host"
+msgstr "显示主机的近期平均积分"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:181
-msgid "Advanced View...\tCtrl+Shift+A"
-msgstr "高级视图...\tCtrl+Shift+A"
+#: clientgui/ViewStatistics.cpp:1987
+msgid "< &Previous project"
+msgstr "< 前一项目(&P)"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:182
-msgid "Display the advanced graphical interface."
-msgstr "显示高级图形界面。"
+#: clientgui/ViewStatistics.cpp:1988
+msgid "Show chart for previous project"
+msgstr "显示前一个项目的图表"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:198
-msgid "Configure display options and proxy settings"
-msgstr "配置界面及代理服务器选项"
+#: clientgui/ViewStatistics.cpp:1993
+msgid "&Next project >"
+msgstr "后一项目(&N) >"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:212
-msgid "Display diagnostic messages."
-msgstr "显示诊断消息。"
+#: clientgui/ViewStatistics.cpp:1994
+msgid "Show chart for next project"
+msgstr "显示后一个项目的图表"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:233
-#, c-format
-msgid "&%s"
-msgstr "&%s"
+#: clientgui/ViewStatistics.cpp:2000 clientgui/ViewStatistics.cpp:2370
+msgid "Hide project list"
+msgstr "隐藏项目列表"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:449
-msgid "Default"
-msgstr "缺省"
+#: clientgui/ViewStatistics.cpp:2001 clientgui/ViewStatistics.cpp:2370
+msgid "Use entire area for graphs"
+msgstr "将整块区域用作图形显示"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:895
-msgid "Suspend Computing"
-msgstr "暂停计算"
+#: clientgui/ViewStatistics.cpp:2006
+msgid "Mode view"
+msgstr "查看模式"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:896
-msgid "Resume Computing"
-msgstr "继续计算"
+#: clientgui/ViewStatistics.cpp:2010
+msgid "One project"
+msgstr "单项目"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:913
-msgid "Open a window to view notices from projects or BOINC"
-msgstr "打开一个窗口,查看来自计算网站或 BOINC 网站的通知消息。"
+#: clientgui/ViewStatistics.cpp:2011
+msgid "Show one chart with selected project"
+msgstr "显示当前项目的图表"
 
-#: clientgui/sg_BoincSimpleFrame.cpp:934 clientgui/sg_DlgPreferences.cpp:366
-#, c-format
-msgid "Get help with %s"
-msgstr "获取 %s 的帮助信息"
+#: clientgui/ViewStatistics.cpp:2017
+msgid "All projects (separate)"
+msgstr "所有项目(单独)"
 
-#: clientgui/sg_DlgMessages.cpp:146
-msgid "Close"
-msgstr "关闭"
+#: clientgui/ViewStatistics.cpp:2018
+msgid "Show all projects, one chart per project"
+msgstr "显示所有项目,一个项目一张图表"
 
-#: clientgui/sg_DlgMessages.cpp:394
-#, c-format
-msgid "%s - Notices"
-msgstr "%s - 通知"
+#: clientgui/ViewStatistics.cpp:2024
+msgid "All projects (together)"
+msgstr "所有项目(合并)"
 
-#: clientgui/sg_DlgPreferences.cpp:208
-msgid ""
-"For additional settings, select Computing Preferences in the Advanced View."
-msgstr "更多的参数设置,请在高级视图下选择“计算参数设置”来查看。"
+#: clientgui/ViewStatistics.cpp:2025
+msgid "Show one chart with all projects"
+msgstr "在一张图表中显示所有项目"
 
-#: clientgui/sg_DlgPreferences.cpp:346
-msgid "GB of disk space"
-msgstr "GB 的磁盘空间"
+#: clientgui/ViewStatistics.cpp:2031
+msgid "All projects (sum)"
+msgstr "所有项目(总和)"
 
-#: clientgui/sg_DlgPreferences.cpp:1105
-#, c-format
-msgid "%s - Computing Preferences"
-msgstr "%s -计算参数设置"
+#: clientgui/ViewStatistics.cpp:2032
+msgid "Show one chart with sum of projects"
+msgstr "在一张图表中显示所有项目"
 
-#: clientgui/sg_DlgPreferences.cpp:1186
-msgid "Discard all local preferences and use web-based preferences?"
-msgstr "放弃所有本地设置并使用网站上的设置吗?"
+#: clientgui/ViewStatistics.cpp:2053
+msgid "Statistics"
+msgstr "统计"
 
-#: clientgui/sg_ProjectPanel.cpp:72
-msgid "Add Project"
-msgstr "增加项目"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Show project list"
+msgstr "显示项目列表"
 
-#: clientgui/sg_ProjectPanel.cpp:73
-msgid "Synchronize"
-msgstr "同步"
+#: clientgui/ViewStatistics.cpp:2374
+msgid "Uses smaller area for graphs"
+msgstr "使用更小的图表显示区域"
 
-#: clientgui/sg_ProjectPanel.cpp:74
-msgid "Work done for this project"
-msgstr "已为该项目完成的任务"
+#: clientgui/ViewTransfers.cpp:187
+msgid "Retry Now"
+msgstr "立即重试"
 
-#: clientgui/sg_ProjectPanel.cpp:76
-msgid "Volunteer for any or all of 30+ projects in many areas of science"
-msgstr "志愿加入到一个或多个分布在许多不同科学领域内的研究项目"
+#: clientgui/ViewTransfers.cpp:188
+msgid "Retry the file transfer now"
+msgstr "立即重试该文件的传输。"
 
-#: clientgui/sg_ProjectPanel.cpp:77
-msgid "Synchronize projects with account manager system"
-msgstr "从帐户管理系统同步项目"
+#: clientgui/ViewTransfers.cpp:194
+msgid "Abort Transfer"
+msgstr "中断传输"
 
-#. TODO: Might want better wording for Project Selection Combo Box tooltip
-#: clientgui/sg_ProjectPanel.cpp:124
-msgid "Select a project to access with the controls below"
-msgstr "选择一个要操作的项目"
+#: clientgui/ViewTransfers.cpp:195
+msgid "Abort this file transfer.  You won't get credit for the task."
+msgstr "中止该文件的传输,你将得不到相应的任务积分。"
 
-#: clientgui/sg_ProjectPanel.cpp:145
-msgid "Project Web Pages"
-msgstr "项目网站"
+#: clientgui/ViewTransfers.cpp:210
+msgid "File"
+msgstr "文件"
 
-#: clientgui/sg_ProjectPanel.cpp:149
-msgid "Project Commands"
-msgstr "项目命令"
+#: clientgui/ViewTransfers.cpp:211 clientgui/ViewWork.cpp:261
+msgid "Progress"
+msgstr "进度"
 
-#: clientgui/sg_ProjectPanel.cpp:278
-#, c-format
-msgid "Pop up a menu of web sites for project %s"
-msgstr "弹出一个 %s 项目的网站菜单"
+#: clientgui/ViewTransfers.cpp:212
+msgid "Size"
+msgstr "大小"
 
-#: clientgui/sg_ProjectPanel.cpp:280
-#, c-format
-msgid "Pop up a menu of commands to apply to project %s"
-msgstr "弹出一个 %s 项目可用的命令菜单"
+#: clientgui/ViewTransfers.cpp:213 clientgui/ViewWork.cpp:263
+msgid "Elapsed"
+msgstr "已用时间"
 
-#: clientgui/sg_TaskCommandPopup.cpp:73
-msgid "Suspend this task."
-msgstr "暂停该任务。"
+#: clientgui/ViewTransfers.cpp:214
+msgid "Speed"
+msgstr "速度"
 
-#: clientgui/sg_TaskCommandPopup.cpp:79
-msgid "Abandon this task. You will get no credit for it."
-msgstr "放弃这个任务,你将得不到相应的任务积分。"
+#: clientgui/ViewTransfers.cpp:295
+msgid "Transfers"
+msgstr "网络传输"
 
-#: clientgui/sg_TaskCommandPopup.cpp:267
-#, c-format
-msgid ""
-"Are you sure you want to abort this task '%s'?\n"
-"(Progress: %.1lf%%, Status: %s)"
-msgstr "您确定要中止当前任务'%s'吗?\n( 进度:%.1lf%%,状态:%s )"
+#: clientgui/ViewTransfers.cpp:372
+msgid "Network activity is suspended - "
+msgstr "网络被暂停 - "
 
-#: clientgui/sg_TaskPanel.cpp:468
-msgid "You don't have any projects.  Please Add a Project."
-msgstr "您当前没有加入到任何项目,请先加入一个项目。"
+#: clientgui/ViewTransfers.cpp:374
+msgid ""
+".\n"
+"You can enable it using the Activity menu."
+msgstr "。\n你可以在“活动”菜单中重新启用它。"
 
-#: clientgui/sg_TaskPanel.cpp:469
-msgid "Not available"
-msgstr "不可用"
+#: clientgui/ViewTransfers.cpp:377
+msgid "BOINC"
+msgstr "BOINC"
 
-#: clientgui/sg_TaskPanel.cpp:480
-msgid "Tasks:"
-msgstr "任务:"
+#: clientgui/ViewTransfers.cpp:431
+#, c-format
+msgid ""
+"Are you sure you want to abort this file transfer '%s'?\n"
+"NOTE: Aborting a transfer will invalidate a task and you\n"
+"will not receive credit for it."
+msgstr "您确信要中断文件'%s'的传输吗?\n注意:中断传输将标识该任务为无效,您将不能从该任务得到积分。"
 
-#. TODO: Might want better wording for Task Selection Combo Box tooltip
-#: clientgui/sg_TaskPanel.cpp:486
-msgid "Select a task to access"
-msgstr "选择一个要操作的任务"
+#: clientgui/ViewTransfers.cpp:437
+msgid "Abort File Transfer"
+msgstr "中断文件传输"
 
-#. what project the task is from, e.g. "From: SETI at home"
-#: clientgui/sg_TaskPanel.cpp:498
-msgid "From:"
-msgstr "来自:"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Upload"
+msgstr "上传"
 
-#: clientgui/sg_TaskPanel.cpp:552
-msgid "This task's progress"
-msgstr "该计算任务的进度"
+#: clientgui/ViewTransfers.cpp:849
+msgid "Download"
+msgstr "下载"
 
-#: clientgui/sg_TaskPanel.cpp:570
-msgid "Task Commands"
-msgstr "任务命令"
+#: clientgui/ViewTransfers.cpp:853
+msgid "retry in "
+msgstr "稍后重试 "
 
-#: clientgui/sg_TaskPanel.cpp:571
-msgid "Pop up a menu of commands to apply to this task"
-msgstr "弹出一个应用于当前计算任务的命令菜单"
+#: clientgui/ViewTransfers.cpp:855
+msgid "failed"
+msgstr "失败"
 
-#: clientgui/sg_TaskPanel.cpp:706
-#, c-format
-msgid "Application: %s"
-msgstr "计算程序:%s"
+#: clientgui/ViewTransfers.cpp:858
+msgid "suspended"
+msgstr "暂停"
 
-#: clientgui/sg_TaskPanel.cpp:729
-#, c-format
-msgid "%.3f%%"
-msgstr "%.3f%%"
+#: clientgui/ViewTransfers.cpp:863
+msgid "active"
+msgstr "处理中"
 
-#: clientgui/sg_TaskPanel.cpp:737
-msgid "Application: Not available"
-msgstr "计算程序:不可用"
+#: clientgui/ViewTransfers.cpp:865
+msgid "pending"
+msgstr "等待中"
 
-#: clientgui/sg_TaskPanel.cpp:837
-msgid "Not Available"
-msgstr "不可用"
+#: clientgui/ViewTransfers.cpp:871
+msgid " (project backoff: "
+msgstr "(项目延后:"
 
-#: clientgui/sg_TaskPanel.cpp:852
-#, c-format
-msgid "Elapsed: %s"
-msgstr "已用时:%s"
+#: clientgui/ViewWork.cpp:211 clientgui/ViewWork.cpp:854
+msgid "Show active tasks"
+msgstr "显示活动任务"
 
-#: clientgui/sg_TaskPanel.cpp:866
-#, c-format
-msgid "Remaining (estimated): %s"
-msgstr "剩余时间:%s"
+#: clientgui/ViewWork.cpp:212 clientgui/ViewWork.cpp:855
+msgid "Show only active tasks."
+msgstr "只显示正在计算过程中的任务。"
 
-#: clientgui/sg_TaskPanel.cpp:881
-#, c-format
-msgid "Status: %s"
-msgstr "状态:%s"
+#: clientgui/ViewWork.cpp:225
+msgid "Show VM Console"
+msgstr "显示虚拟机控制台"
 
-#: clientgui/sg_TaskPanel.cpp:1206
-msgid "Retrieving current status."
-msgstr "正在获取当前状态。"
+#: clientgui/ViewWork.cpp:226
+msgid "Show VM Console in a window."
+msgstr "在窗口里显示虚拟机控制台。"
 
-#: clientgui/sg_TaskPanel.cpp:1212
-msgid "Downloading work from the server."
-msgstr "正在从服务器下载任务。"
+#: clientgui/ViewWork.cpp:233
+msgid "Suspend work for this result."
+msgstr "暂停当前任务。"
 
-#: clientgui/sg_TaskPanel.cpp:1217
-msgid "Processing Suspended:  Running On Batteries."
-msgstr "暂停计算:电池供电。"
+#: clientgui/ViewWork.cpp:240
+msgid "Abandon work on the result. You will get no credit for it."
+msgstr "中止该任务,您将不能得到它的积分。"
 
-#: clientgui/sg_TaskPanel.cpp:1219
-msgid "Processing Suspended:  User Active."
-msgstr "暂停计算:用户活跃。"
+#: clientgui/ViewWork.cpp:264
+msgid "Remaining (estimated)"
+msgstr "剩余时间(估计)"
 
-#: clientgui/sg_TaskPanel.cpp:1221
-msgid "Processing Suspended:  User paused processing."
-msgstr "暂停计算:用户暂停计算。"
+#: clientgui/ViewWork.cpp:265
+msgid "Deadline"
+msgstr "上报期限"
 
-#: clientgui/sg_TaskPanel.cpp:1223
-msgid "Processing Suspended:  Time of Day."
-msgstr "暂停计算: 休息时间段。"
+#: clientgui/ViewWork.cpp:351
+msgid "Tasks"
+msgstr "任务"
 
-#: clientgui/sg_TaskPanel.cpp:1225
-msgid "Processing Suspended:  Benchmarks Running."
-msgstr "暂停计算:正在运行基准测试。"
+#: clientgui/ViewWork.cpp:564
+#, c-format
+msgid ""
+"Are you sure you want to abort this task '%s'?\n"
+"(Progress: %s, Status: %s)"
+msgstr "您确定要中止当前任务'%s'吗?\n(进度:%s,状态:%s)"
 
-#: clientgui/sg_TaskPanel.cpp:1227
-msgid "Processing Suspended."
-msgstr "暂停计算。"
+#: clientgui/ViewWork.cpp:570
+#, c-format
+msgid "Are you sure you want to abort these %d tasks?"
+msgstr "您确定想要中止这 %d 个任务吗?"
 
-#: clientgui/sg_TaskPanel.cpp:1231
-msgid "Waiting to contact project servers."
-msgstr "正在等待连接项目服务器。"
+#: clientgui/ViewWork.cpp:848
+msgid "Show all tasks"
+msgstr "显示所有任务"
 
-#: clientgui/sg_TaskPanel.cpp:1235 clientgui/sg_TaskPanel.cpp:1244
-msgid "Retrieving current status"
-msgstr "正在获取当前状态"
+#: clientgui/ViewWork.cpp:849
+msgid "Show all tasks."
+msgstr "显示所有的任务。"
 
-#: clientgui/sg_TaskPanel.cpp:1239
-msgid "No work available to process"
-msgstr "无任务可供处理"
+#: clientgui/WizardAttach.cpp:591
+msgid "Do you really want to cancel?"
+msgstr "您确定要取消吗?"
 
-#: clientgui/sg_TaskPanel.cpp:1241
-msgid "Unable to connect to the core client"
-msgstr "无法连接至客户端的核心服务程序"
+#: clientgui/WizardAttach.cpp:592
+msgid "Question"
+msgstr "问题"
 
 #: clientgui/wizardex.cpp:377 clientgui/wizardex.cpp:553
 msgid "&Next >"
@@ -3910,11 +3810,24 @@ msgstr "< 上一步(&B)"
 msgid "&Finish"
 msgstr "完成(&F)"
 
-#. /////////////////////////////////////////////////////////////////////////
-#: clientgui/DlgAdvPreferencesBase.h:45
-msgid "On this day of the week, compute only during these hours."
-msgstr "在这一周中的此天,只在这些时间内计算。"
+#: clientgui/mac/Mac_GUI.cpp:35
+msgid "Services"
+msgstr "服务"
+
+#: clientgui/mac/Mac_GUI.cpp:36
+#, c-format
+msgid "Hide %s"
+msgstr "隐藏 %s"
+
+#: clientgui/mac/Mac_GUI.cpp:37
+msgid "Hide Others"
+msgstr "隐藏其它"
+
+#: clientgui/mac/Mac_GUI.cpp:38
+msgid "Show All"
+msgstr "显示所有"
 
-#: clientgui/DlgAdvPreferencesBase.h:46
-msgid "On this day of the week, transfer files only during these hours."
-msgstr "在这一周中的此天,只在这些时间内传输文件。"
+#: clientgui/mac/Mac_GUI.cpp:39
+#, c-format
+msgid "Quit %s"
+msgstr "退出 %s"
diff --git a/locale/zh_CN/BOINC-Project-Generic.po b/locale/zh_CN/BOINC-Project-Generic.po
deleted file mode 100644
index 6d79546..0000000
--- a/locale/zh_CN/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6513 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# 周潇波 <zhouxiaobo.500 at gmail.com>, 2015
-# 秦赫阳 <qysnn1 at gmail.com>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2015-09-30 17:23+0000\n"
-"Last-Translator: 秦赫阳 <qysnn1 at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/boinc/boinc/language/zh_CN/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "简体中文"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Simplified Chinese"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "邀请码"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "创建帐户时需要一个正确的邀请码。"
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "用户名"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "你在我们网站上的标识,可以使用你的真实姓名或是昵称。"
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "电子邮件地址"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "必须是有效的电子邮件地址,形式如 '用户名@域名'。"
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "用户口令"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "必须至少包含 %1 个字符"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "确认用户口令"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "国家或地区"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "选择你所希望代表的国家或地区。"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "邮编"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "可选的"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "创建帐户"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "电子邮件地址:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "忘记了电子邮箱地址?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "用户口令:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "忘记了口令?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "保持登录状态"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "登录"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "粗体:[b]文本[/b]  (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "斜体:[i]文本[/i] (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "下划线:[u]文本[/u]  (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "删除线:[s]文本[/s]  (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "引用:[quote]文本[/quote]  (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "代码:[code]代码[/code]  (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "列表:[list]文本[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "有序列表:[list=]文本[/list]  (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "插入图片:[img]图片网址[/img]  (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "插入网址:[url]网址[/url] or [url=网址]网址文本[/url]  (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "字体颜色"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "字体颜色:[color=red]文本[/color]  窍门:你也可以用 #FF0000 来表示红色"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "缺省"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "深红"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "红"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "橙"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "棕"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "黄"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "绿"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "橄榄"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "蓝绿"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "蓝"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "深蓝"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "靛蓝"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "紫"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "字体大小"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "字体大小:[size=x-small]小号文本[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "小"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "正常"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "大"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "闭合所有的 bbCode 标签"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "闭合标签"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "旧帖子显示在前面"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "新帖子显示在前面"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "评分最高的显示在前面"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "发帖时间最新的在前面"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "查看次数最多的在前面"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "回复数量最多的在前面"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "志愿者负责人"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "项目主管"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "项目开发者"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "项目测试人员"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "志愿者开发人员"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "志愿者测试人员"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "项目科学家"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "帮助台专家"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "在论坛的所有帖子中搜索关键字"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "搜索论坛"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "高级搜索"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "私人消息"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "疑难解答"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "留言板"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 留言板"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "前"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "后"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "作者"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "消息"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "发送 消息"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "发送私人消息给 %1"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "已加入:%1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "贴子:%1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "积分:%1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "近期平均积分:%1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "你还没有阅读过该消息"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "未读"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "消息 %1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "隐藏"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "发表于:%1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - 回复"
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "编辑"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "编辑该消息"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "最近的修改日期:%1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "该篇帖子未显示是因为其作者在您的忽略列表里。点击%1这里%2来查看"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "举报违规帖子"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "举报违规帖子"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "评分:%1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "评分:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "如果你喜欢该消息请点击"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "加分"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "如果你不喜欢该消息请点击"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "减分"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "回复"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "回复该消息"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "引用"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "回复并引用该消息"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "被管理员隐藏"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "发表于:%1 作者:%2"
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "你必须等到 %1 后才能回复帖子或给帖子评分"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n<ul>\n\n<li> 帖子内容健康,不包含猥亵的、仇恨的或者与性有关的内容。\n\n<li> 禁止商业广告。\n\n<li> 禁止链接到与性、赌博等内容有关的网站。\n\n<li> 禁止烦扰、敌对其他用户的帖子,禁止破坏主题。\n\n<li> 禁止有敌意或侮辱性的帖子。\n\n <li> 禁止与种族、宗教、国籍、性别、阶层或性相关的辱骂性评论。\n\n        "
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "规则:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "更多信息"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "取消隐藏"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "取消隐藏帖子"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "隐藏"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "隐藏帖子"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "移动"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "移动帖子到其它主题"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "封禁作者"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "投票封禁作者"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "投票不要封禁作者"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "开始投票封禁作者"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "删除"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "删除这个帖子"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "只有团队成员才能在团队的留言板中发帖"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "你必须在已经获得了一定的积分后才能在 %1 发表一个新主题。这是为了防止对论坛系统的滥用。"
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "你暂时不能发表更多的新主题,请稍后再试,这是为了防止对论坛系统的滥用而采取的延时。"
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "该主题已被锁定,只有论坛管理员能够在该主题下发帖。"
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "不能回复隐藏主题。"
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "主题"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "贴数"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "查看次数"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "最近发贴"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "主题 %1 的新回复"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "已订阅主题的新回复"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "主题“%1”有新的回帖"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "标记所有主题为已读"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "标记所有留言板块的所有主题为已读。"
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "主机不存在"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "无法获取"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "家庭"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "工作"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "学习"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "更新"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "计算机信息"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP 地址"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(最近 %1 次相同)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "外部 IP 地址"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "显示 IP 地址"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "域名"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "产品名称"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "当地标准时间"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UTC 时间 %1 时"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "用户"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "匿名"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "创建时间"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "总积分"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "平均积分"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "跨项目积分"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPU 类型"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "数据器数量"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "协处理器"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "操作系统"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC 版本"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "内存"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "缓存"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "交换空间"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "总磁盘空间"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "空闲磁盘空间"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "浮点运算速度"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "每秒 %1 百万次运算"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "整数运算速度"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "平均上传速度"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 KB/秒"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "未知"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "平均下载速度"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "平均任务周转时间"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 天"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "计算程序"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "查看"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "任务"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "客户端连接服务端的次数"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "最近一次连接服务端的时间"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "BOINC运行的时间"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "BOINC在运行时,计算机有互联网连接的时间"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "BOINC在运行时,允许计算的时间"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "BOINC在运行时,允许GPU计算的时间"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "平均的 CPU 运行效率"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "任务时长校正因子"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "位置"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "删除当前计算机"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "合并该计算机的冗余记录"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "合并"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "最近一次通讯"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "计算机信息"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "名次"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "平均积分"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "近期平均积分"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "操作系统"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 处理器)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "详细"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "跨项目的统计信息:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "主机 %1 的活跃期有重叠:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "主机 %1 的操作系统不兼容:"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "主机 %1 的 CPU 类型不兼容:"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "相同的主机"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "无法将主机 %1 合并至 主机 %2 - 主机不兼容"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "正在将主机 %1 合并至主机 %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "无法更新新计算机的积分"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "无法更新任务拷贝"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "无法撤销旧的计算机"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "旧的计算机 %1 已撤销"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "显示:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "所有计算机"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "仅显示最近 30 天内活跃的计算机"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "计算机 ID"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>版本"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "通过名称合并计算机"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "浏览器缺省"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "评论"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "新闻还可以通过 %sRSS%s 来获取"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "收件箱"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "写信"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "发送私人消息"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "预览"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "消息不存在"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "收件人"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "用户ID或唯一的用户名,多个收件人之间用逗号分开"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "标题"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "发送消息"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "给你发送了一条私人消息,标题是:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "私人消息 %1 来自 %2,标题是:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "无法创建消息"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "你发送消息的间隔时间太短,请等待一段时间再发送更多的消息。"
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "未读"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "如需要电子邮件通知,请%1编辑社区参数设置%2。"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "私人消息"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "使用率限制"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "最多使用"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "保留一些CPU核心以供其他应用程序使用。例如: 75%意味着在8核CPU上使用6个核心。"
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% o的CPU"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "每隔几秒钟就暂停一下然后恢复计算,以降低CPU温度并减少电能使用。比如:75%意味着每计算 3 秒就暂停 1 秒,然后如此重复。"
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% 的处理器时间"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "以下情况暂停计算"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "当计算机正在使用电池供电时暂停计算"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "勾选这个选项以使得笔记本电脑在靠电池电源运行时暂停计算。"
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "当计算机正在使用时暂停计算"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "勾选这个选项以使得当您使用计算机时暂停计算和文件传输。"
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "当使用计算机时暂停 GPU 计算"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "勾选这个选项以使得当您使用计算机时暂停GPU计算。"
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "如果在最近的多少分钟内有鼠标或键盘操作则认为计算机在使用中"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "这将确定在怎样的情况下计算机会被视为“正在使用”。"
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "分钟"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "如果在最近的多少分钟内无鼠标或键盘操作则暂停计算"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "这将使得一些计算机在不使用时进入低功耗模式。"
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "当非BOINC CPU使用率高于多少时暂停"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "当您的计算机正忙于运行其他程序时暂停计算。"
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "仅在如下时间段内计算。"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "仅在每天的特定时间段内计算。"
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "其它"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "至少存储"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "存储至少足够使计算机计算如此长时间的任务。"
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "天的工作"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "额外存储"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "在最低限度之上额外存储一些任务。这将决定BOINC客户端在联系一个项目时要求多少新任务。"
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "每隔多少分钟切换任务"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "如果您同时运行几个项目,BOINC 将每隔这么长时间切换一次任务。"
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "要求任务每隔多少分钟储存一次进度"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "这个选项决定计算任务向磁盘保存其进度的频繁程度,以便于之后重新启动。"
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "秒"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "最多使用"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "限制BOINC使用的磁盘空间总量。"
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "至少保留"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "限制BOINC的磁盘使用,在BOINC存储数据的卷上保留这个数量的空闲空间。"
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB可用空间"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "限制BOINC在存储数据的卷上使用的磁盘空间的百分比。"
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "%"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "当计算机在使用时,最多使用"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "当您使用计算机时,限制BOINC的内存使用量。"
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "当计算机空闲时,最多使用"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "当您不使用计算机时,限制BOINC的内存使用量。"
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "在暂停时将非GPU任务留在内存中"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "如果选中此选项,暂停的任务将会留在内存中,恢复时不会有进度损失。如果未选中,暂停的任务将从内存中被清除,继续计算时从最后一个保存点开始。"
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "虚拟内存:最多使用"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "限制 BOINC 使用的交换空间 (页面文件)大小。"
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "限制下载速度为"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "限制文件传输的下载速率。"
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "KB/秒"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "限制上传速率为"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "限制文件传输的上传速率。"
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "限制使用量为"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "例如: 限制BOINC在30天内最多传输2000 MB数据。"
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB 每"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "天"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "允许传输文件的时间段:"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "仅在每天的特定时间段内传输文件。"
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "跳过图片文件的数据校验"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "仅当您的Internet提供商会修改图像文件的情况下才需要选中此选项。跳过验证会降低BOINC的安全性。"
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "连接到互联网之前确认"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "仅当您使用调制解调器、ISDN或VPN连接的情况下才有用。"
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "传输完成后断开连接"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "计算"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "磁盘"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "网络"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "这些参数设置对你参加的所有 BOINC 项目均有效。"
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1无法更新参数设置。%2下面标红的为超出范围的或类型错误的数值。"
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "计算中"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "用于%1环境的参数设置"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "编辑参数设置"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "移除"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "增加%1环境的参数设置"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "这些设置适用于所有使用此帐户的计算机,除非"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "计算机设置了本地BOINC管理器的首选项"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Android 设备"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(切换视图)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "横排的参数设置"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "默认的参数设置"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "最近的修改日期:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "增加参数设置"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "更新参数设置"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "是"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "否"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "默认的计算机位置"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "新的计算机将使用此位置作为计算和项目的首选项。"
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "资源分享"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "该设置决定你的计算机分配给本项目的资源比例。举例:你参加了两个项目,其资源分享率分别是 100 和 200,则第一个项目将得到 1/3 的计算资源,第二个项目将得到 2/3。"
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "给每个 GPU 任务保留一个 CPU 内核?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "使用CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "使用ATI GPU"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "使用NVIDIA GPU"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "使用Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "运行测试应用程序吗?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "这有助于我们开发应用程序,但可能会导致任务在您的计算机上运行失败"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "电子邮件将从 %1 发送,请确保你的垃圾邮件过滤器不会过滤这个地址。"
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "是否允许 %1 和你所在的计算团队发送电子邮件给你?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1 是否可以将你的计算机显示在它的网站上?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(切换视图)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "项目特定的参数设置"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "错误的参数设置位置:%1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "错误的参数设置子集:%1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "和"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "你的用户档案在经过审核后就可以被其他用户看到,这可能需要几天的时间。"
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "你的用户档案已被标识为不可接受,其他用户也将无法查看,请进行适当的修改。"
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "数据库错误"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "为了防止垃圾信息,平均积分低于 %1 的用户档案将只能被已登录的用户看到,由此带来的不便之处我们很抱歉。"
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "用户已被禁言"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "没有和该用户 ID 对应的用户档案信息。"
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "编辑你的用户档案"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "你对该用户档案的意见"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "推荐该档案的主人为今日用户:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "我%1喜欢%2这个用户档案"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "向管理员举报有冒犯性的用户档案:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "我%1不喜欢%2这个用户档案"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "匿名平台"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "数据库中不存在"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "等待中"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "所有"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "计算中"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "等待验证"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "验证尚无结论"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "有效结果"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "无效结果"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "错误"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "不活跃的"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "未发送的"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "已完成,等待验证"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "已完成,通过验证"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "已完成,标记为错误"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "已完成,不能验证"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "已完成,验证未完成"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "已完成,超出上报期限而无法验证"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "已完成"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "无法发送"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "被服务端取消"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "未在截止日期前开始 - 已取消"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "下载过程出错"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "计算过程出错"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "上传过程出错"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "被用户中止"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "上传失败"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "超时 - 无回应"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "不需要"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "验证错误"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "已丢弃"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "完成"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "成功"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "计算错误"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "冗余结果"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "无回应"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "新建任务"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "下载中"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "处理中"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "计算错误"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "上传中"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "已完成"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "初始结果"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "不需要"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "任务单元出错 - 跳过检查"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "已检查,尚未取得一致"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "任务上报超出期限而无法验证"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "无法发送任务拷贝"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "太多错误(可能存在BUG)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "太多任务拷贝(可能因为结果不确定)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "太多总的任务拷贝"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "WU 已被取消"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "规范结果缺失"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "无法识别的错误:%1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "任务名称"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "点击查看详细"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "显示 ID"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "显示名称"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "任务"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "任务单元"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "计算机"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "发送时间"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "结果上报时间<br />或者上报期限"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "解释"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "状态"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "运行时间<br />(秒)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU 时间<br />(秒)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "积分"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "计算程序"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "任务单元"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "上报期限"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "接收时间"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "服务端状态"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "结果"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "客户端状态"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "退出状态"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "运行时间"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU 时间"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "验证状态"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "设备最高FLOPS(每秒浮点运算次数)"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "计算程序版本"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "输出文件"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "标准错误输出"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "状态"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "任务名称:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "搜索条件(可使用一个或多个)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "关键字"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "寻找名称或描述中包含这些关键字的团队"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "团队类型"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "只显示活跃的团队"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "搜索"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "请求已由你发起过,而且原创建人的回复期限已过。"
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "完成创建人的转换"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "请求已由你发起过"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "原创建人的回复期限是 %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "未加入团队"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "发起请求"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "延期处理中"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "团队信息"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "描述"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "网站"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "跨项目的统计网站"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "类型"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "留言板"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "主题"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "加入该团队"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "如果你在项目参数中设置了允许接收电子邮件,加入团队后该团队的创建人将可以访问到你的电子邮件地址。"
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "不接受新成员加入"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "创建人改变请求待处理"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "回复期限 %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "团队创建人改变"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "成员"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "创建人"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "管理员"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "昨天新加入的成员"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "所有成员"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "查看"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "活跃的成员"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "有积分的成员"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "管理员"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "前 %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "后面 %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "没有这个团队。"
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "本操作需要创建人权限。"
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "本操作需要团队创建人的权限"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "警告:这是一个 BOINC 自动创建的团队,你在此处做出的修改将很快被覆盖掉,请直接在 %1这里%2 进行编辑。"
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1隐私事项%2:如果你要创建一个团队,则你的项目参数(资源分享率,图形参数设置等)将会对团队成员公开。"
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "团队名称,文字版本"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "请不要使用 HTML 标记。"
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "团队名称,HTML 版本"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "你可以使用 %1有限的 HTML 标记%2。"
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "如果你不了解 HTML,请保持本编辑框为空。"
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "团队的网址(如果有的话):"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "不包括 \"http://\""
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "本网站该团队的页面上将链接到这个网址。"
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "团队描述"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "是否接受新的团队成员?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "用户档案"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "你已参与的项目"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "%1 已参与的项目"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "项目"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "点击访问用户页面"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "加入日期"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "计算和积分情况"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "本帐户所属的计算机"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "查看"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "跨项目标识符(CPID)"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "跨项目的统计网站"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "帐户"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "团队"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "跨项目"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "计算证书"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "用手机查看你的统计信息"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "帐户信息"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "电子邮件地址"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "网址"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "邮编"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "加入 %1 的日期"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "修改"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "电子邮件地址"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "用户口令"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "其它帐户信息"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "用户 ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "在社区功能中使用"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "帐户密钥"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "参数设置"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "BOINC 如何使用你的计算机"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "计算参数设置"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "留言板和私人消息"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "社区参数设置"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "本项目的参数设置"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1参数设置"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "查看 %1 的用户档案"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "用户档案"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "社区"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "创建"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 个帖子"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "通知"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "退出团队"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "管理"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(创建人转换请求待处理)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "团队成员"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "寻找团队"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "创建人(已退出团队)"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "寻找好友"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "好友"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "计算机"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "捐助者"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "联系"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "这是一位好友"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "删除该好友"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "请求待处理"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "添加为好友"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "用户名前后不能有空格"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "用户名不得为空"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "用户名不得含有 HTML 标签"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "注销"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "登录"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "创建帐户"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "服务器状态页面"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "服务器在处理你的请求过程中发生了一次数据库错误,请稍后重试。"
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "无法处理请求"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "时"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "分"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "秒"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "链接已经超时,请点击返回并刷新页面后再重试。"
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "使用 BBCode 标记来格式化你的正文"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "项目已停止进行维护"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 已经临时关闭并进行维护工作,请稍后重试。"
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "无法连接数据库 - 请稍后重试"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "无法选择数据库 - 请稍后重试"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "剩余字符数"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "保持这台计算机上的登录状态"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "完成账户设定"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "你必须为你的帐户提供一个名称"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "名称中不允许使用 HTML 标记"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "编辑 %1 的参数设置"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "增加 %1 参数设置(用于 %2)"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "计算程序"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 项目目前有如下几个计算程序。当你参与 %1 项目时,适用于这些计算程序的任务包将会分发给你的计算机。当前版本的计算程序也会下载到你的计算机上。这一切都是自动的,你不需要做任何操作。"
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "平台"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "版本"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "平均计算"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode 标记"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BBCode 标记可以用来对个人档案和留言板帖子内的文本进行格式化。\n它和 HTML 类似,但更为简单。这些标记一般以 [ 开头\n(如果在 HTML 中一般是 %1)并且以 ] 结尾(HTML 中则是 %2)。"
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "范例"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "粗体"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "斜体"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "下划线"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "删除线"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "上标"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "大号文字"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "红色文字"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "链接到网站"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "被引用的文字"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "用于文本块的引用"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "用于显示一张图片"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "这是代码片段"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "用于显示一些代码"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "预格式文本"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "用于显示预格式文本(一般是等宽字体)"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "条目1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "条目2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "条目2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "用于链接到 BOINC 网站上的 Trac 传票"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "用于链接到 BOINC 网站上的 Trac 维基"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "如果你没有正确的闭合标签或者指定参数,\n标签自身将被显示出来,而不是预格式的文本。"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "无法创建账户"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "点击浏览器的<b>返回</b>按钮以重试。"
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "你输入的验证字符不正确,请重试。"
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "你必须提供一个邀请码才能创建帐户。"
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "你提供的邀请码是错误的。"
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "电子邮件地址错误:你必须输入一个合法的地址,形式如 '用户名@域名'"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "已有账户关联至该电子邮箱地址。"
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "新输入的口令不相符"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "登录口令中只允许包含 ASCII 字符。"
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "新口令长度过短:最少的口令长度为 %1 字符。"
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "无法创建帐户"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "注意:如果你有 BOINC Manager,可以不使用这个表单。直接在 BOINC Manager 中选择添加项目并且输入电子邮箱地址和项目口令。"
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "此帐户将属于 %1 团队并且其项目参数的默认值和团队创建人的项目参数相同。"
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "照片"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1你的用户档案图片将显示在左边"
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "要替换的话,点击“浏览”按钮并选择一个 JPEG 或 PNG 文件(大小不超过 %1)。"
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "如果想从用户档案中删除它,请选择:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "如果你想在用户档案中包含一张照片,点击“浏览”按钮并选择一个 JPEG 或 PNG 文件。文件大小不能超过 %1。"
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "语言"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "请选择你写用户档案所用的语言:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "提交用户档案"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "创建/编辑用户档案"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "你上传的图片格式不支持。"
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "通过 %1用户档案%2,你可以和 %3 社区分享你的观点和背景。"
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "你的验证字符回复不正确,请重试。"
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "你的第一次回复已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "你的第二次回复已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "你提交的用户档案内容为空。"
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "无法更新该用户档案:数据库错误"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "无法创建该用户档案:数据库错误"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "用户档案内容已保存"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "恭喜!你的用户档案已经成功进入了我们的数据库。"
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "查看您的用户档案"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "创建一个用户档案"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "为防止垃圾信息,如果要创建或编译用户档案,近期平均积分不能小于 %1,由此带来的不方便之处我们深感抱歉。"
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "无法删除账户"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "账户已删除"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "你的账户已被删除。"
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "确认删除账户"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "删除账户操作将从服务器上移除你所有的个人信息,\n包括你的个人档案和留言板中的发帖。\n该账户名下的计算机也将不再下载新的计算任务。"
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "该操作无法撤销。\n一旦账户被删除,你将无法再取回。"
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "你确定要删除你的账户吗?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "是的"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "删除当前账户"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "不是"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "不要删除当前账户"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "无法删除个人档案 - 请稍后再试。"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "删除确认"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "你的账户已被删除。"
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "个人档案删除确认"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "你确定吗?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "删除的个人档案将永远无法恢复 --\n如果你以后想要重新使用个人档案,必须从头开始创建。"
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "如果你确定的话,请点击“是”\n来从我们的数据库中删除你的个人档案。"
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "创建我的账户"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "不要删除我的账户"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - 交易已完成"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "感谢你的捐赠!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "你的捐赠已经完成。"
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "你的捐赠将在我们收到 PayPal 的确认之后再添加到进度条中。"
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "你已经取消了捐赠。"
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "该项目当前不接受捐赠。"
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 捐赠"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "该项目接受的捐赠方式\n%1。"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "请在下方的表单中填入你所要捐赠的金额。\n        PayPal 当前接受多种货币\n        (加元,欧元,英镑,美元,\n        日元,澳元,新西兰元,\n        瑞士法郎,港币,新加坡元,瑞典克朗,\n        丹麦克朗,波兰兹罗提,挪威克朗,\n        匈牙利福林,捷克克朗)。\n        你可以使用汇率转换器来查看不同币种的等值金额\n        (请注意汇率为估计值,实际汇率可能会稍有不同)"
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "你想要捐赠的金额"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "汇率换算(估计)"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "匿名捐赠"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "如果你不希望将你的名称和计算账户编号显示在捐赠者列表中,请选中此项。\n如果不选中的话,你将被记录为“用户 ID %1”"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "要用指定的用户 ID 进行捐赠的话,请先登录。"
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "继续"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "接受捐赠的方式"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "下载 BOINC 的辅助软件"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "你可以下载如下几个类别的应用程序。"
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "这些应用程序未经过 %1 的仔细检查,若准备使用请自担风险。"
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "我们不能提供这些应用程序的安装及使用文档。\n但应用程序的作者可能提供了安装及卸载相关的帮助文档。\n如果还需要进一步的文档,请联系相关作者。"
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "安装及运行 BOINC 的说明请看 %1这里%2。"
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "本页面中的列表内容由 %1BOINC 官方网站%2 集中管理。"
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "修改帐户电子邮箱地址"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "新的电子邮件地址 '%1'错误。"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "新的电子邮箱地址和原来的相同,不需要修改。"
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "已有账户关联至该电子邮箱地址。"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "错误的口令。"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "你的帐户所关联的电子邮箱地址现在是 %1。"
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "请%1验证该电子邮箱地址%2。"
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "因为数据库的问题,我们目前无法更新你的账户电子邮箱地址,请稍后重试。"
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "修改电子邮箱地址"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "修改你的帐户所关联的电子邮箱地址"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "新的电子邮件地址"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "必须是有效的电子邮件地址,形式如 '用户名@域名'"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "未设置用户口令?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "确认重置"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "该操作将清除你对社区参数所有的修改,要取消操作的话,请点击浏览器的返回按钮。"
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "重置参数设置"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "错误:文件类型错误,只支持 PNG 和 JPEG 格式。"
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "你和签名太长,请将其限制在 250 个字符内。"
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "没有这个用户:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "当你接收到新的私人消息、好友请求、订阅主题更新等时,你希望我们如何通知你?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "在我的账户页面(不发送电子邮件)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "立即,通过电子邮件"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "通过电子邮件,每天最多一封"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "留言板标识"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "头像"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "在留言板上代表你身份的图片。"
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "格式:JPG 或 PNG。尺寸:最大 4KB,100x100像素"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "不使用头像"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "使用由 %1 提供的个人全球统一标识"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "使用上传的头像:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "头像预览"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "你的头像将显示为"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "留言板发帖签名"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "查看 %1所有的免费服务%2\n<br> 提供动态签名图片\n<br> 显示你最新的积分信息,项目新闻等。"
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "默认使用签名"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "签名预览"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "你的签名将在论坛中显示为"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "消息显示"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "显示内容"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "隐藏头像图片"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "隐藏签名"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "将图片显示为链接"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "在新窗口/标签页中打开链接"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "高亮指定的用户"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "每页显示的消息数目"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "如何排序"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "主题:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "贴子:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "自动跳转到第一篇未读的帖子"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "不要把置顶文章放在页面顶部"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "消息过滤"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "已过滤的用户"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "忽略这些用户在留言板中的帖子和私人消息。"
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "用户 ID(比如:123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "添加用户到过滤器"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "点击这里更新参数设置"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "重置"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "或者点击这里将所有参数复位至缺省配置"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "因为数据库的问题,我们当前无法更新你的用户口令,请稍后重试。"
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "修改用户口令"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "你的用户口令已经修改。"
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "新的用户口令"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "再次输入新的用户口令"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "帐户名称中不允许使用 HTML 标记"
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "你必须为你的帐户提供一个名称。"
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "无法更新用户信息。"
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "编辑帐户信息"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "名称 %1真名或昵称%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "网址(URL) %1你的个人网页地址,可选%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "邮编 %1可选%2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "更新信息"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "服务端状态"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "计算任务的<b>服务端状态</b>表示该任务是否已经被分发到计算机,以及计算机是否已经完成该任务的处理。可能的状态值包括:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "该任务尚未准备分发(比如因为输入文件缺失)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "该任务已经准备分发,但还没有分发。"
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "计算中"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "任务已发送,等待完成。"
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "该任务已经分发给一台计算机,其结果或者是处理超时,或者是处理完成并正确上报。"
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "结果"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "计算任务的<b>结果</b>仅在其服务端状态为<b>完成</b>时才有效,可能的状态值包括:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "该任务已分发给一台计算机,但该计算机尚未完成相应的处理。"
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "该任务已由一台计算机完成处理并且成功的上报了处理结果。"
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "服务端无法分发该任务(可能因为需要的计算资源过大)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "客户端错误"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "该任务已分发给一台计算机,但在处理过程中产生了错误。"
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "该任务已分发给一台计算机,但未在指定的期限内收到回复。"
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "该任务未分发到计算机,因为所属的任务包已经完成了足够数量的计算任务。"
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "该任务的处理结果已上报但无法被验证,一般是因为服务端的输出文件缺失。"
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "客户端状态"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "计算结果的<b>客户端状态</b>表示计算任务在计算机上的处理阶段,比如发生错误的时候。"
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "计算机尚未完成该任务的处理。"
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "计算机已经成功完成了该任务的处理。"
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "计算机无法下载计算程序或输入文件。"
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "计算过程中发生错误。"
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "计算机无法上传输出文件。"
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "上报时间和截止时间"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "计算任务的<b>上报时间或截止时间</b>字段含义取决于该任务的处理结果已完成上报:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "已上报"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "上报的日期和时间"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "还没有上报,截止时间也还没到"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "截止时间显示为绿色字体。"
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "还没有上报,截止时间已过"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "截止时间显示为红色字体。"
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "未知字段"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "电子邮件预览"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "你的电子邮箱地址将显示为:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "发送电子邮件"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "使用浏览器的返回按钮来回退到消息表单页面"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "发送电子邮件"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "电子邮件已成功发送给 %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "无法发送电子邮件给 %1:%2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "感谢你向好友们介绍了 %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "你没有输入好友的名称和/或电子邮箱地址,请%1回退到表单页面%2并重新输入。"
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "该项目还没有创建电子邮件消息 - 请通知其管理员"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "将你对 %1 的看法告诉好友"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "帮助我们向你的好友、家人和同事介绍 %1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "在表单中填入你认为可能会对 %1 感兴趣的人的名称和电子邮箱地址。我们将以你的名义将他们发送电子邮件,邮件的内容你可以自行编辑。"
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "你的名称:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "你的电子邮件地址:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "好友的名称:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "好友的电子邮箱地址:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "附加消息(可选)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "发送"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "你没有权限封禁用户。"
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "封禁投票"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "找不到相应 ID 的用户"
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "用户已被封禁"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "你确定要封禁 %1 吗?<br />该操作将在选定的时间期限内阻止 %1 发帖。<br />该操作只应在 %1 有连续的过激行为时被使用。"
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "选择原因分类,可以附上为什么要封禁该用户的原因。"
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "分类"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "淫秽的"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "有侮辱性的"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "用户请求"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "原因"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "非空则写入电子邮件"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "继续投票"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "你必须指定一个操作..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "你将无法再编辑该帖子。<br />帖子只能在其被创建后的 %1 分钟内被编辑。"
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "你没有权限来编辑该帖子。"
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "论坛"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "编辑你的消息"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "标题"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "在帖子后附上我的个性签名"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "对你不可见"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "%1 的团队留言板"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "新主题"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "在本论坛发布一个新主题"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "留言板的更新还可以通过 %sRSS%s 来获取"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "该主题已被隐藏"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "该主题已置顶和锁定,你当前尚未阅读"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "置顶/锁定/未读"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "该主题已置顶,你当前尚未阅读"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "置顶/未读"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "你还没有阅读该主题,而且这个主题已被锁定"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "未读/锁定"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "你还没有阅读过该主题"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "该主题已被置顶和锁定"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "置顶/锁定"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "该主题已被置顶"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "置顶"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "该主题已被锁定"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "锁定"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "你已阅读过本主题"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "已读"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "问题和解答"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "通过 Skype 和志愿者在线交流,支持多种语言,请访问 %1BOINC 在线帮助%2。"
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "主题"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "问题"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "%1 成员间的讨论"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 留言板"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "如果你有问题希望得到解答,请使用留言板中的 %1问题解答%2 区。"
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "已订阅的主题"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "处理帖子"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "隐藏帖子"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "广告垃圾"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "重复发帖"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "移动帖子"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "目的主题ID:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "封禁用户"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "封禁时间"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4 小时"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1 天"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "一周"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "两周"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1 月"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "永久"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "确定"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "封禁原因 %1将显示在发送给用户的电子邮件中。%2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "你没有权限来处理当前帖子。"
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "无法移动到不同的版面类型"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "无法移动到不同的版面"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "没有权限封禁用户"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "封禁"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "用户 %1 已被封禁。"
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "操作失败:可能是数据库故障"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "未授权"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "处理主题“%1”"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "选择处理原因,或者在编辑框中详细说明为什么要隐藏或锁定该主题,然后点击确定。"
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "当前论坛"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "目的论坛"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "新的标题:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "只有项目管理员可以在此创建主题,但你可以回复已有的主题。"
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "你的消息已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "创建新主题"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "创建新主题"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "记得写上标题"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "将该条目显示为 BOINC 客户端的通知"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "仅在所有志愿者都可能对该条目感兴趣的时候使用"
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "评分功能下线"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "该特性已被项目关闭"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "你需要更高的平均积分或总积分才能对帖子进行评分。"
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "你已经评价过该帖子。"
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "返回主题"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "输入已记录"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "输入已经被记录下来,感谢你的帮助。"
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "投票已登记"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "评分已经被记录下来,感谢你的参与。"
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "投票提交故障"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "你的帖子已被 Akismet 防垃圾信息系统标记为垃圾信息,请修改你输入的内容并重试。"
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "回复该主题"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "消息:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "回复%1消息 ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "发表回复"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "在回复中附上我的个性签名"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "你需要更高的平均积分或总积分才能举报一个帖子。"
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "举报已记录"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "举报已被记录,感谢你的参与。"
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "管理员将会查看你的举报并决定如何处理 - 可能需要一些时间,请耐心等待"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "举报论坛帖子"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "在举报之前,可以考虑使用 +/- 评分系统。如果足够多的用户给一篇帖子负面评价,该帖子将自动隐藏。<br />你可以在帖子下方找到评分系统。"
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "举报帖子"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "为什么你认为这篇帖子是令人不快的:%1请包含足够的说明以便没有阅读过整个主题的人也能快速的判明问题。%2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "举报未记录"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "你的举报未被记录,请等待片刻后重试。"
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "如果该故障无法自动恢复,请向项目开发人员报告。"
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS 订阅源"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "留言板的内容更新还可以通过 %sRSS%s 来获取。"
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "选项:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "只包含用户 ID 为 %1 的帖子(默认:所有用户)。"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "只包含最近多少天内的帖子(默认:30)。"
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "仅主题:%1(只包含每个主题的第一篇帖子)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "搜索论坛"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "搜索查询"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "搜索关键字:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "包含所有指定字词的帖子将被显示"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "举例:“屏保 死机”"
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "搜索作者ID:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "仅指定作者的帖子会被显示"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "举例:“43214”"
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "搜索选项"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "搜索限制"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "只搜索最近多少天内的"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 月"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "一年"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "不限制"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "只显示指定论坛的帖子"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "排序"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "开始搜索"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "论坛搜索结果"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "符合你的查询条件的主题:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "符合你的查询条件的消息:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "对不起,无法根据你的查询条件找到任何结果。你可以试着将查询条件放宽,比如使用更少的关键字词或者更宽泛的字词。"
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "你也可以%1用 Google 进行同样的搜索。%2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "重新搜索"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "订阅成功"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "你已经订阅到主题 %1,一旦该主题有更新,你将得到通知。"
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "订阅失败"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "我们当前无法添加你对 %1 的订阅,请稍后再试..."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "退订成功"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "你已经退订了主题 %1,你将不会再收到该主题的通知。"
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "退订失败"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "我们当前无法解除你对 %1 的订阅,请稍后再试..."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "未知的订阅操作"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "你不能查看本论坛。"
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "该主题已被管理员隐藏"
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "我的问题已得到解答"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "如果你的问题已经得到充分的解答,请点击这里"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "我也有同样的问题"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "回复本主题"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "退订该主题"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "你已经订阅了本主题。点击这里取消订阅。"
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "订阅该主题"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "如果你需要在本主题中有新的回帖时通过电子邮件通知你请点击。"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "取消隐藏本主题"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "隐藏本主题"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "取消置顶"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "取消本主题的置顶"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "置顶"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "使得这个帖子总是在论坛的顶端显示"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "解锁"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "允许在本贴中发表新的跟帖"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "锁定"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "禁止在本贴中发表新的跟帖"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "移动本主题到其它论坛"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "编辑标题"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "编辑主题的标题"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "彻底删除主题"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "导出为通知"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "不要导出"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "不要将该新闻条目导出为通知"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "排序"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "主题状态已更新"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "状态已更新。"
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "%1 的帖子"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "已经是好友"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "你已经给 %1 发送过好友请求(%2)。"
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "该请求仍在等待对方确认。"
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 没有接受你的好友请求"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "你不能加自己为好友"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "添加好友"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "你已经要求将 %1 加为好友,我们将通知 %1 并请他/她来确认你们的关系。"
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "可以在这里添加一条附加消息:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "好友请求已发送"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "我们已经把你的好友请求通知给了 %1。"
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "请以 %1 的身份登录"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "你必须以 %1 的身份登录才能查看该好友请求"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "好友请求"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 给你发送了好友请求。"
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 还说:%2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "接受好友请求"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "如果 %1 是你的好友请点击接受"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "拒绝"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "如果 %1 不是你的好友请点击拒绝"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "好友请求已确认"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "你与 %1 的好友关系已经被确认。"
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "好友请求被拒绝"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "你已经拒绝了与 %1 的好友关系"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "无法找到通知"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "好友已确认"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "你现在和 %1 是好友了。"
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "删除好友"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "你确定想要取消与 %1 的好友关系吗?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "保持好友关系"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "好友关系已取消"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "你与 %1 的好友关系已经取消。"
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) 如果你知道你账户关联的电子邮箱地址,你可以在那里收到电子邮件:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "输入电子邮箱地址,点击确定后,你将收到关于如何重置登录口令的操作指导电子邮件。"
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) 如果你已经忘记了你账户所关联的电子邮箱地址,或者你已经不能从该地址接收电子邮件:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "如果你仍有 BOINC 客户端运行在该账户下,请按如下操作指导取回你的登录口令:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "打开你计算机上的 BOINC 数据路径(其具体位置会写入到启动时的事件日志)。                "
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "找到本项目的账户文件,文件名为:<b>%1</b>。"
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "用记事本等文本编辑器打开该文件,你将看到类似的如下内容:"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "选中并复制 %1 和 %2 之间的内容(上述例子中就应该是 %3)。"
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "将之前复制的内容粘贴到下面的表单中,并点击确定。"
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "你现在将登录进自己的账户,可以更新你的电子邮箱地址和账户口令。"
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "用身份验证码(authenticator)来登录"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "忘记了你的账户信息?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "还没有已上报的 GPU 计算任务"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "GPU 型号排名"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "下面的列表显示了各个平台上效率最好的 GPU 型号,这些速度由任务平均完成时间计算得到,不同型号间的速度差异用百分比来表示。"
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "欢迎访问 %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "使用下面的链接查看及编辑你的帐户参数"
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "如果还没有的话,%1下载 BOINC 的客户端软件%2。"
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "你的帐户"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "匿名平台,未知应用"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "匿名平台"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "无法识别的计算程序版本"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "未知应用"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "无法识别的计算平台"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "完成的计算任务数目"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "每日最大任务数量"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "今天的任务数量"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "连续成功完成的计算任务数目"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "平均处理速率"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "主机 %1 的计算程序情况"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "我们没有该计算机的记录。"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "你当前不能删除该计算机的记录,因为我们数据库中仍有和其相关的计算任务记录。你需要等到所有指定给该计算机的任务记录都从项目数据库中删除,一般可能需要几天。"
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "删除计算机记录"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "记录已删除。"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "返回你的计算机列表"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "合并计算机记录"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "合并计算机"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "有时候,BOINC 会给同一台计算机赋予多个唯一标识,你可以通过将旧标识和新标识合并以纠正该问题。"
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "没有符合条件的主机可以和该主机合并。"
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "显示详细"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "选择和 %1 相同的计算机(创建于 %2,计算机 ID 为 %3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "名称"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "创建时间"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "计算机 ID"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "无主机名"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "合并主机"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "正在更新计算机积分"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "主机积分已更新"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "主机位置已更新"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "无"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "该主机的位置已设置为 %1。"
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "更改将在该主机下一次和项目通讯的时候生效。"
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "返回主机页面"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1 的计算机"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "计算机已隐藏"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "该用户已设定为不显示其计算机的详细信息。"
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "你的计算机"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "允许的 HTML 标记"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "团队描述中可以使用下列 HTML 标记:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "粗体"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "斜体"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "超链接"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "段落"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "换行"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "预格式"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "图片,高度不能超出 450 像素,请不要在未经允许的情况下引用其它网站上的图片。"
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "你也可以使用 &(和号)开头的字符实体来表示特殊字符(比如   等)。"
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "阅读规定和政策"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "仅在已授权的计算机上运行 %1"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "仅在你自己的或者已获准使用的计算机上运行 %1。某些企业和学校是禁止在他们的计算机上运行和 %1 的类似的项目。"
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "%1 如何使用你的计算机"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "当你在计算机上运行 %1 时,他会使用你计算机上部分的处理器资源、磁盘空间以及网络带宽。你可以控制 %1 的资源使用量以及何时可以使用。"
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "你的计算机所完成的计算任务仅用来帮助 %1 实现其项目网站上所申明的目标。项目计算程序的版本可能会经常改变。"
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "隐私政策"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "%1 通过你选择的用户名来标识你的帐户。该用户名以及你为 %1 完成的计算任务的摘要将显示在 %1 的网站上。如果你想要匿名,那请选择一个不会泄漏你身份的用户名。"
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "如果你参加了 %1,那你的计算机中的相关信息比如处理器的型号、内存的大小等会被 %1 记录下来,以用来决定什么样的计算任务最适合你的计算机。 这些信息也会显示在 %1 的网站上,但是请不要担心,我们绝对不会泄漏出你的计算机的位置比如域名、网络地址等。"
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "为了参加 %1,你必须提供一个能够接收邮件的电子邮件地址。这个地址不会被显示在 %1 的网站上。%1 可能会定期向你发送项目的新闻快讯; 当然,你随时可以选择退订。"
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "在 %1 网站上发送的私人消息只对发送者和接收者可见。%1 不会检查或审查消息的内容。如果你从 %1 的用户那收到不希望收到的私人消息,你可以把他们加入到你的 %2消息过滤器%3。这样就可以避免你收到来自那位用户的任何公共或私人消息。"
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "如果你要使用我们的网站论坛,你必须遵守 %2发贴注意事项%3。发送到 %1 论坛的帖子对所有人都是可见的,即便不是我们网站的用户也能看到。你的发帖同时表明你允许所有人查看和复制你的帖子。"
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "运行 %1 安全吗?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "只要你从互联网下载程序就有可能碰到有危险错误的程序或者下载服务器已被黑客攻击的情况。%1 已经尽力最小化这方面的风险。我们已经仔细测试了我们的程序。我们的服务器处于防火墙之后,并且设置了最高的安全级别。为了保证程序下载的正确性,全部的可执行文件会被放置在一台未联网的安全的计算机中进行数字签名。"
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "%1 的计算程序可能会导致某些计算机温度过高。如果你碰到了这种情形,请停止运行 %1 或者使用 %2某些工具软件%3 来限制计算程序对处理器的使用。"
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 由 %2 开发。BOINC 由加州大学开发。"
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "免责申明"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 和 %2 对于你的计算机损坏、数据丢失或其他任意由于参与 %1 所可能造成的事件没有赔偿责任。"
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "其它 BOINC 项目"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "除了 %1,还有其它一些项目也使用BOINC平台。你也许会考虑同时参加多个项目,这样当你无法从 %1 获取计算任务时,你的计算机仍可以处理其它项目的计算任务。"
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "其它项目同 %1 没有关系,所以我们也无法保证这些项目的安全性以及确切的研究内容,请你自行决定是否参加其他项目。"
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "语言选择"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "本网站提供了多种语言界面,当前选择的语言是 %1。"
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "通常语言的选择是通过你浏览器的语言设置来自动完成的,当前选择为:%1。你可以通过下面的操作来改变这个设置:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox(火狐):工具/选项/内容"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "微软 IE:工具/Internet 选项/语言"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "或者你也可以点击下面的链接来选择一种语言。该操作将给你的浏览器发送一个 Cookie,请确保你的浏览器能从我们的域名接收 Cookie。"
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "语言名称(直接点击进行设置)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "使用浏览器的语言设置"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "翻译工作都是由志愿者完成的,如果这里没有你的母语,%1你可以自己进行翻译%2。"
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "或者%1创建一个新帐户%2。"
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "正在处理 %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1 已合并至 %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "返回你的计算机列表"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "该操作基于名称来合并计算机。\n        <p>\n        对于每个名称,它会将所有老的计算机合并到最新的计算机上。\n        软硬件配置不兼容的计算机将不会被合并。\n        <p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "继续操作"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "返回计算机列表"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\n为了让大家的讨论和交流能有效进行,\n我们为留言板设立了管理协调机制。\n所有留言板的发帖都必须遵循如下的规则:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\n管理员可能会删除违规的帖子,被删帖的用户将得到电子邮件通知。\n严重的违规者可能会被临时封禁发帖权限(为防止该操作被滥用,只有项目主管有相关的权限)。\n其它未列在上述规则中的恶意行为(比如恶意收集其他用户的 IP 地址、或者在论坛中大量发表垃圾内容等)也可能面临类似的处罚。\n<p>\n如果你碰到违规的帖子,请点击帖子内的红色小叉并进行相应的说明;管理员将收到通知并进行处理。\n该功能请务必仅用于处理违规帖子,而不要用于处理个人争端。\n<p>\n我们在操作的时候将尽可能地保证公平,但对于如此大的一个网络社区,包含了各种不同的观点,可能仍然会有人对我们的管理决定不满意。\n对此我们十分抱歉,但请大家多多谅解,我们不可能在所有时候让所有人满意,我们只能根据我们了解的信息、并且从论坛的整体利益出发来作出决定。\n请不要在论坛讨论我们的管理策略,我们不是在进行一个社会工程项目,也没有试图创建一个完美而公平的系统。\n因此这样的讨论并不会起到什么积极的作用,而且是潜在有害的。\n当然,如果你一些合理的想法,请发送电子邮件到下面的地址。\n<p>\ [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "待授予的积分"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "计算结果 ID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "任务单元 ID"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "主机 ID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "申请积分"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "待授予的积分:%1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "阻止该用户的消息"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "阻止用户"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "你的消息已被发送。"
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "你目前没有私人消息。"
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "发送人及日期"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "回复该消息"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "删除该消息"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "全选"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "取消全选"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "删除选中的消息"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "发送人"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "日期"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "要发送私人消息,你必须填写所有字段"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "你的消息已被 Akismet 防垃圾信息系统\n标记为垃圾信息,请修改你输入的内容并重试。"
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "无法找到用户ID为 %1 的用户"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "无法找到用户名为 %1 的用户"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "因为 %1 不是唯一的用户名,你将只能使用用户ID"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "用户 %1(ID 为 %2)已禁止接受你的私人消息。"
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "没有这个用户"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "确定要阻止 %1 吗?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "你确定要阻止用户 %1 向你发送私人消息吗?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "请注意你只有阻止有限数量的用户。"
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "一旦该用户被你阻止,你可以在论坛的参数设置页面中解除该阻止。"
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "不,取消"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "没有这个用户"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "用户 %1 已被阻止"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "用户 %1 已被阻止向你发送私人消息。"
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "要解除阻止,请访问 %1留言板的参数设置%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "未知的操作"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "你的参数设置已经更新\n\t      将在你的计算机与%1进行通讯的时候生效\n\t      或者你也可以直接执行 BOINC 客户端里的%2更新%3命令。"
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "你的偏好设置已经复位为缺省值\n这将在您的计算机与%1通信时生效\n或者你可以直接使用BOINC客户端的%2更新%3命令。"
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1(用于%2)"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "返回参数设置"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "确认删除参数设置"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "你确定要删除%1参数设置(用于%2)吗?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "移除参数设置"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "取消"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "用户档案"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "通过 %1用户档案%2 志愿者可以和 %3 社区分享他的背景和观点。"
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "可以了解其他志愿者的想法,也可以让他人看到你分享的观点。"
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "如果你还没有用户档案的话,你现在就可以%1创建属于你自己的用户档案了%2!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "每日用户"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "使用用户档案浏览器"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "查看%1用户图片库%2。"
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "%1按国家或地区%2浏览用户档案。"
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "%1随机地浏览所有用户档案%2,%3随机地浏览带图片的用户档案%2,或者%4随机地浏览不带图片%2的用户档案。"
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "按字母表顺序的用户档案列表:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "搜索用户档案文本"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "没有用户档案"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "没有用户档案符合你的查询条件。"
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "错误的投票类型:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "投票已记录"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "非常感谢"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "你的推荐已经被记录下来。"
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "你对该用户档案的反感已经被记录下来。"
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "返回用户档案。"
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "包含'%1'的个人档案"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "用户名称"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "加入的项目"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "近期平均积分"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "没有找到包含'%1'的个人档案"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "此任务不存在:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "该特性已临时被关闭"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "找不到 ID 为 %1 的计算机"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "无法访问"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "用户 ID 或 主机 ID 丢失"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "没有任务可以显示"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "今日用户"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "未运行"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "运行中"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "已禁用"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "项目状态"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "服务器状态"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "程序"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "主机"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "数据库架构版本:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "计算状态"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "用户"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "按计算程序分类的任务"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "最后 100 项任务的运行时间(以小时为单位): 平均时间,最短时间,最长时间"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "在过去的 24 小时中的用户"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "计算机 %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "统计信息和排行榜"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "%1 的统计信息"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "用户排名"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "团队排名"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "主机排名"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU 型号"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU 型号"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "下列几个网站可以查询到关于 %1 和其它 BOINC 项目的更详细的统计信息:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "你还可以通过“签名图片”的形式得到你当前的统计信息:"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "另外,你还可以在你的 %1帐户主页面%2 中查看所有你参加的 BOINC 项目中的个人统计信息。"
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "团队"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 的用户可以组成 %2团队%3"
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "你最多只能加入一个团队。你可以在任何时候加入或退出一个团队。"
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "每个团队都有一个 %1创建人%2,他可以:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "访问团队成员的电子邮件地址"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "编辑团队的名称及描述"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "增加或移除团队管理员"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "移除团队中的成员"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "解散没有成员的团队"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "要加入一个团队,请访问该团队的页面并点击 %1加入该团队%2。"
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "寻找团队"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "所有团队"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 团队"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "创建新团队"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "如果你找不到适合你的团队,你可以 %1创建一个团队%2。"
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "从该成员移除团队管理员状态"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "增加或移除团队管理员"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "你可以将部分团队成员设置为“团队管理员”,团队管理员可以:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "编辑团队信息(名称,网址,描述,国家地区)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "查看团队的成员加入退出历史"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "管理团队论坛(团队管理员会得到管理事件和报告的电子邮件通知)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "团队管理员不可以:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "改变团队创建人"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "移除团队成员"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "如果团队管理员退出团队,其团队管理员的角色同时取消。"
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "我们建议你只选择自己了解或信任的成员作为团队管理员。"
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "目前没有团队管理员"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "当前的团队管理员"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "成为团队管理员"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "增加团队管理员"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "团队成员的电子邮箱地址:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "增加"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "移除管理员时出错"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "用户不是团队成员"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 已经是 %2 的管理员"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "不能增加管理员"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "没有匹配的团队"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "没有匹配的团队"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "用户不是 %1 的成员"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "正在改变 %1 的创建人"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 现在是 %2 的创建人了"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "改变 %1 的创建人"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "团队成员 %1 在请求 %2 的创建人资格之后退出了团队,请求自动取消。"
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "团队成员 %1 请求了这个团队的创建人资格,这可能是因为你离开过团队或者有较长时间没有和团队联系。"
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "拒绝请求"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "如果你不拒绝 %1 的请求,%2 将可以得到团队创建人的资格。<br /><br />\n                  如果要接受请求,并将创建人资格授予 %3,请使用下面的表单。"
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "目前没有等待处理的团队创建人转换请求。"
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "要将团队的创建人资格授予另一位成员,请先选中成员名旁边的选择框,然后点击下面的<strong>更改创建人</strong>。"
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "新的团队创建人?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "更改团队创建人"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "目前没有用户更换了团队。"
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "你必须选择一个非空的团队名称"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "名为 %1 的团队已经存在 - 请尝试其它的名称"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "无法创建团队 - 请稍后再试。"
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "创建一个团队"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "你当前加入了 %1,你在创建新团队之前必须先 %2退出这个团队%3。"
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "没有创建人或团队管理员"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "%1 的团队历史"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "时间"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "用户"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "行为"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "当时的总积分"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "国家地区信息错误"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "名称“%1”已经被其它团队使用。"
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "必须指定团队名称"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "无法更新团队 - 请稍后再试。"
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "编辑 %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "更新团队信息"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 邮件列表"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "%1 的成员列表"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "显示为纯文本"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "创建留言板"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "你可以创建一个仅供 %1 使用的留言板。"
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "只有团队成员可以发贴。"
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "还可以设置是否只允许团队成员进行阅读。"
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "你和你的团队管理员拥有管理权限。"
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "创建一个 %1 的留言板"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "团队已经拥有留言板了"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "团队留言板"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "最小发贴间隔(秒)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "发贴要求的最低总积分"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "发贴要求的最低平均积分"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "提交"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "移除团队的留言板"
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "确定要移除留言板吗?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "你确定要移除你所在团队的留言板吗?所有的主题和回帖将永久被删除。(当然,你随后还可以重新创建一个新的留言板。)"
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "是的 - 请移除留言板"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "留言板已被移除"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "你的团队留言板已被移除,你现在可以%1创建一个新的留言板%2。"
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "团队留言板已更新"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "更新成功"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "更新失败"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "团队没有论坛"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "只有团队的成员可以访问该页面。"
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "正在请求 %1 的创建人资格"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "你的请求已经通过电子邮件和私人消息通知到了当前的创建人。<br /><br />\n                       如果该创建人在 60 天没有回应,你就可以成为创建人了。"
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "现在不允许请求创建人资格"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "得到 %1 的创建人资格"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "恭喜,你已经是 %1 的创建人了!请在%2你的帐户页面%3使用团队管理功能。"
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "拒绝创建人更改请求"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "来自 %1 的创建人请求已经被拒绝。"
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "目前没有创建人请求。"
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "未定义行为 %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "返回团队页面"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "只有团队的成员可以访问该页面。"
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "请求 %1 的创建人资格"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "你已经是 %1 的创建人。"
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "你已经请求了 %1 的创建人资格(时间:%2)。"
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "原创建人在 60 天内都没有回应你的请求,你现在可以点击这里来得到创建人资格:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "得到创建人资格"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "你的请求已经通知到了创建人,如果他/她到 %1 都没有回应的话,你将可以选择成为新的创建人。"
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "如果你将得到团队创建人的资格(因为当前的创建人不活跃等原因),请点击下面的按钮。你的请求将通过电子邮件通知到当前的创建人,他/她可以将创建人资格转移给你或者拒绝你的请求。如果他/她在 60 天内都没有回应,你就可以得到创建人的资格。<br /><br />\n                      你确定想要请求创建人资格吗?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "请求创建人资格"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "%1 已经在 %2 请求了创建人更改。"
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "因为过去 90 天已经有过程创建人资格更改请求,目前不允许发起新的请求,请稍后再试。"
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "团队 %1 不允许加入。"
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "已经是团队成员"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "你已经是 %1 的成员了。"
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "无法加入团队 - 请稍后再试。"
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "已加入 %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "你已经加入了 %1。"
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "加入 %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "请注意:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "加入团队后,团队的创建人将可以看到你的电子邮箱地址。"
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "加入团队对你的帐户积分没有影响。"
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "加入团队"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "搜索结果"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "“%1”的搜索结果"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "你可以查看这些团队的成员,统计以及其它信息。"
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "超过 100 个的团队符合你的搜索条件,现在只显示了前 100 个。"
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "上面是所有的搜索结果。%1如果没找到合适的团队,你也可以自己%2创建一个团队%3。"
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "%1 的团队管理"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "编辑团队信息"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "改变团队名称,网址,描述,类型或者国家地区"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "成员列表:"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "文本"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "查看成员名称和电子邮箱地址"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "查看更改历史:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "查看成员加入或离开团队的时间"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "回应创建人资格请求。"
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "如果你到 %1 都不回应,%2 将可以得到这个团队的创建人资格。"
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "从团队中移除不活跃或不喜欢的成员"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "将创建人资格转移给其他成员"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "增加/移除团队管理员"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "将团队管理员权限授予选中的团队成员"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "移除团队"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "只能在团队没有成员的时候进行该操作"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "创建或管理团队留言板"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "如果想在所有的 BOINC 项目(当前在运行的和以后可能会有的)中都创建这个团队,你可以将它转变为一个%1BOINC-wide 团队%2。"
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "建议所有团队管理员都加入和参加到 Google 的 %1boinc-team-founders%2 讨论组中。"
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "不能删除非空团队"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "团队 %1 已删除"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "超出限制:只能显示前 1000 名成员。"
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "%1 的成员"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "不能退出团队"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "团队不存在,或者你属于该团队。"
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "退出 %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>退出团队前请注意:</strong>\n         <ul>\n         <li>如果你退出一个团队,你还可以重新加入,或者也可以加入其它团队。\n         <li>退出团队无论如何都不会影响你的个人积分。\n         </ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "退出团队"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "从 %1 中移除用户"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 不是 %2 的成员"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 已被移除"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "从 %1 移除成员"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "移除?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "名称(ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "没有任何成员符合移除的条件。"
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "移除用户"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "团队名称"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "团队搜索结果"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "没有任何团队符合你的查询条件,请试试其它查询条件。"
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "或者你也可以%1创建一个新团队%2。"
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "下面的团队符合一个或多个你的查询条件。\n            要加入一个团队,点击名称后即可进入团队页面,\n               然后点击%1加入该团队%2即可。"
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "修改你的搜索条件"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "你可以和其他有相同兴趣,或来自同一个国家地区、公司以及学校的用户组成一个团队。"
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "使用该表单来寻找可能适合你的团队。"
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "我现在对加入团队%1没兴趣%2。"
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "超出限制 - 对不起,仅显示前 %1 个条目"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "主机排名"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "%s 团队排名"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "没有 %1 团队"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "参加时间"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "还未选择每日用户。"
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "%1 的每日用户:%2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "过滤器"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "用户名称以什么开头"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "任何"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "拥有用户档案?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "任选其一"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "已加入团队?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "排序"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "按注册时间降序"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "按近期平均积分降序"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "按总积分降序"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "搜索字符串至少应包含三个字符"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "用户搜索结果"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "已加入"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "没有任何用户符合你的搜索条件。"
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "未找到用户!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "帐户数据<br/>关于 %1<br/>时间:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "团队:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "团队总积分:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "团队平均积分:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "团队:无"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "验证 BOINC 电子邮箱地址"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "请访问下面的链接以验证你在 %1 的帐户所关联的电子邮箱地址:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "验证邮件已发送"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "一封电子邮件已经发送到了 %1,请访问其中包含的超链接以验证你的电子邮箱地址。"
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "没有匹配的用户。"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "网址(URL)数据错误 - 无法验证电子邮箱地址"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "数据库更新失败 - 请稍后再试。"
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "验证电子邮箱地址"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "你的帐户所关联的电子邮箱地址已通过验证。"
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "该用户未建立档案"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "用户档案:%1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "帐户数据"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "你可以使用你的电子邮箱地址和口令来访问你的账户,\n    或者也可以使用一个分配好的“账户密钥”。\n    你的账户密钥是:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "这个密钥能被用于:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "登录你在项目网站上的帐户"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "在不借助 BOINC Manager 的情况下添加一台计算机到你的账户,方法如下。\n       先安装 BOINC,\n       然后在 BOINC 的数据目录下创建名称为 %1 的文件,\n       然后设置文件的内容为:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "弱帐户密钥"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "你的“弱账户密钥”能用来为你的账户添加计算机\n    但不能被用于登录你在项目网站上的账户或修改该账户。\n    如果你想为你的账户添加不被信任的或不安全的计算机,\n    你就应该使用弱账户密钥。\n    你的弱账户密钥是:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "一旦你修改了登录口令,你的弱账户密钥将随之改变,而你之前的弱账户密钥也将失效。"
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "找不到任务单元"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "任务单元 %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "计算程序"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "规范结果"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "授予积分"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "任务处理中"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "无法查看等待完成的情况"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "最小验证集"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "初始任务拷贝"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "最多允许的 错误/总/成功 任务拷贝数量"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "错误"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "验证"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "等待中"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "主页"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "版权所有"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "生成时间"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "你的个人背景。"
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "简单介绍一下你自己,比如从哪里来,年龄,职业,兴趣爱好,或者其它任何事情。"
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "你对 %1 的看法"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "告诉我们你对 %1 的想法<ol>\n    <li>你为什么运行 %1?\n    <li>你对这个项目的观点是什么?\n    <li>有什么建议吗?\n    </ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "图像的色彩方案"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "显示图像时最多可以使用的 CPU 资源%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "仅运行选中的计算程序"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "只接受使用特定计算程序的任务。用于关注特定的计算程序,或者排除它们。"
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "如果选中的计算程序暂时没有计算任务,是否从其它计算程序接收任务?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "是否使用更快的非图形化计算程序(如果可用)?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(所有计算程序)"
diff --git a/locale/zh_CN/BOINC-Setup.mo b/locale/zh_CN/BOINC-Setup.mo
index 7b6c2b5..4cc748d 100644
Binary files a/locale/zh_CN/BOINC-Setup.mo and b/locale/zh_CN/BOINC-Setup.mo differ
diff --git a/locale/zh_CN/BOINC-Setup.po b/locale/zh_CN/BOINC-Setup.po
index 11c2bae..2abf384 100644
--- a/locale/zh_CN/BOINC-Setup.po
+++ b/locale/zh_CN/BOINC-Setup.po
@@ -1,40 +1,47 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# BOINC setup localization template
+# Copyright (C) 2016 University of California
+# 
+# This file is distributed under the same license as BOINC.
 # 
 # Translators:
+# Xiaobo Zhou <zhouxiaobo.500 at gmail.com>, 2015
+# 秦赫阳 <qysnn1 at gmail.com>, 2016
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-09 01:42+0000\n"
-"Last-Translator: Rom Walton <romw at romwnet.org>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/boinc/language/zh_CN/)\n"
+"Project-Id-Version: BOINC\n"
+"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-09 14:04+0000\n"
+"Last-Translator: 秦赫阳 <qysnn1 at gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/boinc/boinc/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: Installer.cpp:124
+#: mac_installer/Installer.cpp:135
 #, c-format
-msgid "Sorry, this version of %s requires system 10.5 or higher."
-msgstr "对不起,%s 要求 10.5 或更高的操作系统版本。"
+msgid "Sorry, this version of %s requires system 10.6 or higher."
+msgstr "抱歉,%s需要10.6或更高的操作系统版本。"
 
-#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
+#: mac_installer/PostInstall.cpp:127 mac_installer/PostInstall.cpp:1094
+#: mac_installer/uninstall.cpp:1616
 msgid "Yes"
 msgstr "是"
 
-#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
+#: mac_installer/PostInstall.cpp:128 mac_installer/PostInstall.cpp:1095
+#: mac_installer/uninstall.cpp:1617
 msgid "No"
 msgstr "否"
 
-#: PostInstall.cpp:133
+#. Future feature
+#: mac_installer/PostInstall.cpp:130
 msgid "Should BOINC run even when no user is logged in?"
 msgstr "是否允许 BOINC 在登录前运行?"
 
-#: PostInstall.cpp:1416
+#: mac_installer/PostInstall.cpp:1375
 #, c-format
 msgid ""
 "Users who are permitted to administer this computer will automatically be allowed to run and control %s.\n"
@@ -42,26 +49,27 @@ msgid ""
 "Do you also want non-administrative users to be able to run and control %s on this Mac?"
 msgstr "有管理员权限的用户可以直接运行和控制 %s。\n\n你希望这台 Mac 上的非管理员用户也能运行和控制 %s 吗?"
 
-#: PostInstall.cpp:1444
+#: mac_installer/PostInstall.cpp:1403
 #, c-format
 msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
 msgstr "是否将 %s 设置为这台 Mac 上所有 %s 用户的屏幕保护程序?"
 
-#: uninstall.cpp:82
+#: mac_installer/uninstall.cpp:80
 msgid "OK"
 msgstr "确定"
 
-#: uninstall.cpp:136
+#. Confirm that we are running as root
+#: mac_installer/uninstall.cpp:134
 msgid "Permission error after relaunch"
 msgstr "重启后出现了权限错误"
 
-#: uninstall.cpp:141
+#: mac_installer/uninstall.cpp:139
 msgid ""
 "Removal may take several minutes.\n"
 "Please be patient."
 msgstr "卸载可能需要几分钟。\n请稍等。"
 
-#: uninstall.cpp:156
+#: mac_installer/uninstall.cpp:156
 #, c-format
 msgid ""
 "Are you sure you want to completely remove %s from your computer?\n"
@@ -69,27 +77,27 @@ msgid ""
 "This will remove the executables but will not touch %s data files."
 msgstr "你确定要从计算机上完全移除 %s 吗?\n\n本操作将移除所有可执行文件,但不会处理 %s 的数据文件。"
 
-#: uninstall.cpp:163
+#: mac_installer/uninstall.cpp:163
 #, c-format
 msgid "Canceled: %s has not been touched."
 msgstr "已取消:未对%s进行任何操作。"
 
-#: uninstall.cpp:174
+#: mac_installer/uninstall.cpp:174
 #, c-format
 msgid "An error occurred: error code %d"
 msgstr "发生错误:错误代码为 %d"
 
-#: uninstall.cpp:230
+#: mac_installer/uninstall.cpp:230
 msgid "name  of user"
 msgstr "用户名"
 
-#: uninstall.cpp:272
+#: mac_installer/uninstall.cpp:272
 msgid ""
 "Do you also want to remove VirtualBox from your computer?\n"
 "(VirtualBox was installed along with BOINC.)"
 msgstr "你想要从计算机上卸载 VirtualBox 吗?\n(VirtualBox 是随 BOINC 一起安装的。)"
 
-#: uninstall.cpp:312
+#: mac_installer/uninstall.cpp:312
 #, c-format
 msgid ""
 "Removal completed.\n"
@@ -101,17 +109,17 @@ msgid ""
 "\"%s\"."
 msgstr "删除完成。\n\n你也许想要使用 Finder 删除下列项目: \n目录 \"%s\"\n\n对于每位用户,文件\n\"%s\"."
 
-#: uninstall.cpp:840
+#: mac_installer/uninstall.cpp:871
 #, c-format
 msgid ""
 "Enter your administrator password to completely remove %s from you computer.\n"
 "\n"
-msgstr "输入你的管理员密码来从你的电脑中移除%s。\n\n"
+msgstr "输入您的管理员密码来从你的电脑中移除%s。\n\n"
 
-#: uninstall.cpp:1616
+#: mac_installer/uninstall.cpp:1614
 msgid "Cancel"
 msgstr "取消"
 
-#: uninstall.cpp:1617
+#: mac_installer/uninstall.cpp:1615
 msgid "Continue..."
 msgstr "继续..."
diff --git a/locale/zh_CN/BOINC-Web.mo b/locale/zh_CN/BOINC-Web.mo
index b0559e7..d578a1b 100644
Binary files a/locale/zh_CN/BOINC-Web.mo and b/locale/zh_CN/BOINC-Web.mo differ
diff --git a/locale/zh_CN/BOINC-Web.po b/locale/zh_CN/BOINC-Web.po
index 8682cdc..c4771ae 100644
--- a/locale/zh_CN/BOINC-Web.po
+++ b/locale/zh_CN/BOINC-Web.po
@@ -1,22 +1,20 @@
-# BOINC web translation
-# Copyright (C) 2008-2009 University of California
+# BOINC website localization template
+# Copyright (C) 2016 University of California
 # 
 # This file is distributed under the same license as BOINC.
 # 
-# FileID  : $Id$
-# 
 # Translators:
 # Hanlin Yang <mattoncis at hotmail.com>, 2016
-# 周潇波 <zhouxiaobo.500 at gmail.com>, 2015
+# Xiaobo Zhou <zhouxiaobo.500 at gmail.com>, 2015
 # 李泽林, 2015
-# 秦赫阳 <qysnn1 at gmail.com>, 2015
+# 秦赫阳 <qysnn1 at gmail.com>, 2015-2016
 msgid ""
 msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
-"POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2016-03-20 03:15+0000\n"
-"Last-Translator: Hanlin Yang <mattoncis at hotmail.com>\n"
+"POT-Creation-Date: 2016-12-15 13:41 UTC\n"
+"PO-Revision-Date: 2016-12-15 19:08+0000\n"
+"Last-Translator: 秦赫阳 <qysnn1 at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/boinc/boinc/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -25,359 +23,466 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: docutil.php:21
+msgid "LANG_NAME_NATIVE"
+msgstr "简体中文"
+
+msgid "LANG_NAME_INTERNATIONAL"
+msgstr "Simplified Chinese"
+
+#: doc/account_managers.inc:7
+msgid ""
+"BAM! assists you in creating and managing your BOINC project accounts and "
+"helps you with setting preferences, joining or creating teams, connecting "
+"your computers to projects, and much more.  Whether you're a new or an "
+"existing BOINC user, BAM will help you get the most out of BOINC."
+msgstr "BAM!帮助您创建和管理您的 BOINC 项目账户并帮助您设置首选项、加入或创建团队、将您的计算机连接到项目,以及更多。无论你是新的还是现有的 BOINC 用户,BAM 将帮助您最大程度利用BOINC。"
+
+#: doc/account_managers.inc:13
+msgid ""
+"GridRepublic members run a screensaver that allows their computers to work "
+"on public-interest research projects when the machines are not otherwise in "
+"use. This screensaver does not affect performance of the host computer any "
+"more than an ordinary screensaver does."
+msgstr "GridRepublic 成员运行一个屏幕保护程序,使得他们自己的电脑时在不使用时为公共利益的研究项目工作。这个屏幕保护程序并不会比普通的屏幕保护程序占用更多的计算机资源。"
+
+#: doc/docutil.php:21
 msgid "Search"
 msgstr "搜索"
 
-#: docutil.php:103
+#: doc/docutil.php:103
 msgid "Return to BOINC main page"
 msgstr "返回 BOINC 主页"
 
-#: docutil.php:114
+#: doc/docutil.php:114
 #, php-format
 msgid "This page is %stranslatable%s."
 msgstr "当前页面%s提供翻译接口%s。"
 
-#: download.php:42
+#: doc/download.php:42
 msgid ""
 "We recommend that you also install VirtualBox, so your computer can work on "
 "science projects that require it."
 msgstr "我们建议你同时安装 VirtualBox,这样你的计算机就可以运行那些需要该软件的科学项目了。"
 
-#: download.php:44
+#: doc/download.php:44
 msgid "Learn more about VirtualBox."
 msgstr "了解更多关于VirtualBox的信息。"
 
-#: download.php:52
+#: doc/download.php:52
 msgid "Download BOINC + VirtualBox"
 msgstr "下载 BOINC + VirtualBox"
 
 #. "for %s" identifies the operating system, e.g. "for Windows"
-#: download.php:56 download.php:71
+#: doc/download.php:56 doc/download.php:71
 #, php-format
 msgid "for %s"
 msgstr "用于 %s"
 
-#: download.php:59 download.php:74
+#: doc/download.php:59 doc/download.php:74
 #, php-format
 msgid "BOINC %s"
 msgstr "BOINC %s"
 
-#: download.php:61
+#: doc/download.php:61
 #, php-format
 msgid "VirtualBox %s"
 msgstr "VirtualBox %s"
 
-#: download.php:69
+#: doc/download.php:69
 msgid "Download BOINC"
 msgstr "下载 BOINC"
 
-#: download.php:133
+#: doc/download.php:133
 msgid ""
 "BOINC is a program that lets you donate your idle computer time to science "
 "projects like SETI at home, Climateprediction.net, Rosetta at home, World "
 "Community Grid, and many others."
 msgstr "通过 BOINC 你可以将闲置的计算机时间贡献给 SETI at home, Climateprediction.net, Rosetta at home, World Community Grid 等科学研究项目。"
 
-#: download.php:135
+#: doc/download.php:135
 msgid ""
 "After installing BOINC on your computer, you can connect it to as many of "
 "these projects as you like."
 msgstr "在计算机上安装好 BOINC 之后,你可以加入各式各样你喜欢的项目。"
 
-#: download.php:137
+#: doc/download.php:137
 msgid ""
 "You may run this software on a computer only if you own the computer or have"
 " the permission of its owner."
 msgstr "你应该在自己拥有的计算机或得到使用许可的计算机上运行这个软件。"
 
-#: download.php:142
+#: doc/download.php:142
 msgid ""
 "We recommend that you download BOINC from the Google Play Store or Amazon "
 "Appstore, not from here."
 msgstr "我们推荐你从Google Play商店或亚马逊应用市场下载 BOINC,而不是在这里。"
 
-#: download.php:177
+#: doc/download.php:177
 msgid "System requirements"
-msgstr "系统需求"
+msgstr "系统要求"
 
-#: download.php:178
+#: doc/download.php:178
 msgid "Release notes"
 msgstr "发行说明"
 
-#: download.php:179 index.php:93
+#: doc/download.php:179 doc/index.php:122
 msgid "Help"
 msgstr "帮助"
 
-#: download.php:180
+#: doc/download.php:180
 msgid "All versions"
 msgstr "所有版本"
 
-#: download.php:181
+#: doc/download.php:181
 msgid "Version history"
 msgstr "版本历史"
 
-#: download.php:182
+#: doc/download.php:182
 msgid "GPU computing"
 msgstr "GPU 计算"
 
-#: download.php:200
+#: doc/download.php:200
 msgid "BOINC: compute for science"
 msgstr "BOINC:为科学而计算"
 
-#: help.php:12
-#, php-format
-msgid ""
-"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who"
-" can: %s answer questions about BOINC and volunteer computing; %s walk you "
-"through the process of installing and using BOINC; %s troubleshoot any "
-"problems you might have."
-msgstr "BOINC 的在线帮助让您可以一对一地与有经验的 BOINC 用户进行交谈,他们可以:%s回答您关于 BOINC 以及志愿计算的问题;%s带您完成安装及使用 BOINC 的过程;%s解决您可能有的任何问题。"
-
-#: help.php:21
-#, php-format
-msgid ""
-"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system."
-" Skype is free (both the software and the calls).  If you don't already have"
-" Skype, please %sdownload and install it now%s.  When you're finished, "
-"return to this page."
-msgstr "BOINC 的在线帮助基于 %sSkype%s,一个基于互联网的电话系统。Skype 可以免费使用(包括软件本身及使用该软件进行通话)。如果您还没没有 Skype,请 %s现在就下载并安装它%s。当您完成后再回到这个页面。"
-
-#: help.php:28
-msgid ""
-"The best way to get help is by voice, for which you need either built-in "
-"microphone and speakers or an external headset for your computer.  You can "
-"also use Skype's text-based chat system or regular email (if you don't have "
-"Skype) to communicate with Help Volunteers."
-msgstr "得到帮助的最好途径是通过声音,您的计算机必须拥有一个内置的麦克和扬声器或外接的耳麦。您也可以使用 Skype 的文本聊天系统或者普通的电子邮件(如果您不使用 Skype)和志愿帮助者进行交流。"
-
-#: help.php:31
-msgid ""
-"Volunteers speaking several languages are available. Please select a "
-"language:"
-msgstr "志愿帮助者们使用的语言有如下几种,请选择您所希望的一种:"
-
-#: help.php:47
-msgid "Be a Help Volunteer"
-msgstr "成为一名志愿帮助者"
-
-#: help.php:50
-#, php-format
-msgid ""
-"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
-"Volunteer%s.  It's a great way to help the cause of scientific research and "
-"volunteer computing - and it's fun!"
-msgstr "如果您是一位有经验的 BOINC 用户,我们鼓励您 %s成为一位志愿帮助者%s。这对于科学研究和志愿计算都大有益处 - 而且还很有趣!"
-
-#: help.php:56
-#, php-format
-msgid ""
-"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
-msgstr "如果您已经是一位志愿帮助者并且想要修改您的参数设置,请 %s点击这里%s。"
-
-#: help_funcs.php:136
-msgid ""
-"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC "
-"or the University of California."
-msgstr "BOINC 帮助人员都是不收取任何费用的志愿者。他们的建议不代表 BOINC 项目方及加州大学。"
-
-#: help_funcs.php:139
-msgid "%1Never%2 give email address or password information to BOINC helpers."
-msgstr "%1请千万不要%将你的电子邮箱地址或者密码信息提供给 BOINC 帮助人员。"
-
-#: index.php:24
+#: doc/index.php:29
 msgid "Computing power"
 msgstr "计算能力"
 
-#: index.php:26
+#: doc/index.php:37
 msgid "Top 100 volunteers"
 msgstr "排名前 100 的志愿者"
 
-#: index.php:27
+#: doc/index.php:38
 msgid "Statistics"
 msgstr "统计信息"
 
-#: index.php:55
+#: doc/index.php:67
+msgid "24-hour average:"
+msgstr "24 小时平均算力: "
+
+#: doc/index.php:67
+msgid "PetaFLOPS."
+msgstr "千万亿次浮点运算/秒。 "
+
+#: doc/index.php:69
 msgid "Active:"
 msgstr "活跃: "
 
-#: index.php:55
+#: doc/index.php:69
 msgid "volunteers,"
 msgstr "志愿者,"
 
-#: index.php:55
+#: doc/index.php:69
 msgid "computers.\n"
 msgstr "计算机。 \n"
 
-#: index.php:56
-msgid "24-hour average:"
-msgstr "24 小时平均算力: "
-
-#: index.php:56
-msgid "PetaFLOPS."
-msgstr "千万亿次浮点运算/秒。 "
-
-#: index.php:68
+#: doc/index.php:76
 msgid "News"
 msgstr "新闻"
 
+#: doc/index.php:81
+msgid "Database not available; please try again later."
+msgstr "数据库不可用;请稍后再试。"
+
 #. "Volunteer" is used as a verb
-#: index.php:89
+#: doc/index.php:90
 msgid "Volunteer"
 msgstr "志愿者"
 
-#: index.php:92
+#: doc/index.php:92
+msgid ""
+"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
+" diseases, study global warming, discover pulsars, and do many other types "
+"of scientific research.  It's safe, secure, and easy:"
+msgstr "利用你计算机的闲置时间,不管是 Windows, Mac, Linux 还是 Android,来帮助如疾病治疗、全球变暖、发现脉冲星等多种类型的科学研究。这很安全,也很容易:"
+
+#: doc/index.php:95
 msgid "Download"
 msgstr "下载"
 
-#: index.php:94 index.php:138
-msgid "Documentation"
-msgstr "文档"
+#: doc/index.php:98
+msgid ""
+"For Android devices, get the BOINC app from the Google Play Store; for "
+"Kindle, get it from the Amazon App Store."
+msgstr "对于 Android 设备,请从 Google Play商店下载BOINC应用。对于Kindle,请从亚马逊应用商店下载。"
+
+#: doc/index.php:102
+msgid ""
+"You can choose to support %1projects%2 such as %3, %4, and %5, among many "
+"others."
+msgstr "你可以选择支持%1项目%2例如%3,%4,%5,以及其他许多项目。"
+
+#: doc/index.php:109
+msgid ""
+"If you run several projects, try an %1account manager%2 such as "
+"%3GridRepublic%4 or %5BAM!%6. "
+msgstr "如果您同时参与几个项目,请尝试例如%3GridRepublic%4或%5BAM!%6之类的%1账户管理器%2。"
 
-#: index.php:95
+#: doc/index.php:116
+msgid "Learn more:"
+msgstr "了解更多信息:"
+
+#: doc/index.php:119
+msgid "Message boards"
+msgstr "留言板"
+
+#: doc/index.php:120
+msgid "Projects"
+msgstr "项目"
+
+#: doc/index.php:121
+msgid "Manual"
+msgstr "用户手册"
+
+#: doc/index.php:123
 msgid "Add-ons"
 msgstr "辅助工具"
 
-#: index.php:96
+#: doc/index.php:124
 msgid "Links"
 msgstr "链接"
 
-#: index.php:101
-msgid ""
-"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure"
-" diseases, study global warming, discover pulsars, and do many other types "
-"of scientific research.  It's safe, secure, and easy:"
-msgstr "利用你计算机的闲置时间,不管是 Windows, Mac, Linux 还是 Android,来帮助如疾病治疗、全球变暖、发现脉冲星等多种类型的科学研究。这很安全,也很容易:"
+#: doc/index.php:129
+msgid "Other ways to help:"
+msgstr "其他帮助的方式︰"
 
-#: index.php:103
-msgid "Choose projects"
-msgstr "选择项目"
+#: doc/index.php:132
+msgid "Overview"
+msgstr "概述"
 
-#: index.php:104
-msgid "Download BOINC software"
-msgstr "下载 BOINC 软件"
+#: doc/index.php:133
+msgid "Translate"
+msgstr "翻译"
 
-#: index.php:105
-msgid "Enter an email address and password."
-msgstr "输入电子邮箱地址及口令。"
+#: doc/index.php:134
+msgid "Test"
+msgstr "测试"
 
-#: index.php:109
-#, php-format
-msgid ""
-"Or, if you run several projects, try an %saccount manager%s such as "
-"%sGridRepublic%s or %sBAM!%s. "
-msgstr "或者,如果您想参加多个研究项目,可以使用 %s帐户管理器%s 来简化您的日常操作,比如 %sGridRepublic%s 或者 %sBAM!%s。"
+#: doc/index.php:135
+msgid "Document"
+msgstr "文档"
 
-#: index.php:136
-msgid "Compute with BOINC"
-msgstr "用 BOINC 来计算"
+#: doc/index.php:136
+msgid "Publicize"
+msgstr "宣传"
 
-#: index.php:139
-msgid "Software updates"
-msgstr "软件更新"
+#: doc/index.php:137
+msgid "Report bugs"
+msgstr "报告问题"
 
-#: index.php:146
+#: doc/index.php:147
+msgid "High-throughput computing with BOINC"
+msgstr "使用BOINC进行高吞吐量计算"
+
+#: doc/index.php:150
 msgid ""
 "%1Scientists%2: use BOINC to create a %3volunteer computing project%4, "
 "giving you the power of thousands of CPUs and GPUs."
 msgstr "%1科研人员%2:使用 BOINC 来创建%3志愿计算项目%4,从而得到成千上万个CPU和GPU的计算能力。"
 
-#: index.php:150
+#: doc/index.php:154
 msgid ""
 "%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
 "Center%4."
 msgstr "%1大学院校%2:使用 BOINC 来创建%3虚拟校园超级计算中心%4。"
 
-#: index.php:155
+#: doc/index.php:159
 msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
 msgstr "%1公司企业%2:将 BOINC 用于%3桌面网格计算%4。"
 
-#: index.php:167
-msgid "About BOINC"
-msgstr "关于 BOINC"
+#: doc/index.php:164
+msgid "Documentation"
+msgstr "文档"
 
-#: index.php:181
-msgid "Message boards"
-msgstr "留言板"
+#: doc/index.php:165
+msgid "BOINC and Docker"
+msgstr "BOINC和Docker"
+
+#: doc/index.php:173
+msgid "Software development"
+msgstr "软件开发"
+
+#: doc/index.php:176
+msgid ""
+"BOINC is a software platform for volunteer computing. It includes client, "
+"server, and web components, and APIs for connecting other components."
+msgstr "BOINC 是一个为志愿计算设计的软件平台,其中包括客户端、服务器、网站组件以及连接其他组件的API。"
+
+#: doc/index.php:179
+msgid "Source code"
+msgstr "源代码"
+
+#: doc/index.php:180
+msgid "Building BOINC"
+msgstr "建设BOINC"
+
+#: doc/index.php:182
+msgid "Design documents"
+msgstr "设计文档"
 
-#: index.php:182
+#: doc/index.php:185
+msgid ""
+"We're always looking for programmers to help us maintain and develop BOINC."
+msgstr "我们一直在寻找帮助我们维护和开发BOINC 的程序员。"
+
+#: doc/index.php:188
+msgid "Development process"
+msgstr "发展进程"
+
+#: doc/index.php:189
+msgid "Development tasks"
+msgstr "开发任务"
+
+#: doc/index.php:192
+msgid "BOINC is distributed under the LGPL open-source license."
+msgstr "BOINC 基于LGPL 开源许可发布。"
+
+#: doc/index.php:200
+msgid "The BOINC project"
+msgstr "BOINC 项目"
+
+#: doc/index.php:203
+msgid ""
+"BOINC is a community-based project.  Everyone is welcome to participate."
+msgstr "BOINC 是一个以社区为基础的项目。 每个人都欢迎参与其中。"
+
+#: doc/index.php:207
 msgid "Email lists"
 msgstr "电子邮件列表"
 
-#: index.php:183
+#: doc/index.php:208
 msgid "Events"
 msgstr "事件通告"
 
-#: index.php:184
-msgid "Source code"
-msgstr "源代码"
+#: doc/index.php:209
+msgid "Graphics"
+msgstr "图形"
+
+#: doc/index.php:210
+msgid "Governance"
+msgstr "治理"
+
+#: doc/help.php:7
+msgid "Live help via Skype or email"
+msgstr "通过 Skype 或电子邮件的在线帮助"
+
+#: doc/help.php:11
+msgid ""
+"BOINC Live Help lets get one-on-one help from an experienced BOINC user, who"
+" can answer questions about BOINC, help you install and use BOINC, and "
+"troubleshoot problems."
+msgstr "BOINC 在线帮助可以使您从经验丰富的 BOINC 用户那里得到一对一的帮助,他们可以回答关于 BOINC的问题,帮助您安装和使用 BOINC,以及解决各种问题。"
 
-#: index.php:186
-msgid "APIs for add-on software"
-msgstr "辅助软件开发接口"
+#: doc/help.php:14
+msgid "You can communicate with a helper"
+msgstr "你可以与一个帮助者联系"
 
-#: index.php:231
-msgid "Open-source software for volunteer computing"
-msgstr "用于志愿计算的开源软件"
+#: doc/help.php:16
+msgid "by email"
+msgstr "通过电子邮件"
 
-#: projects.inc:19
+#: doc/help.php:18
+msgid ""
+"\n"
+"by voice, using %1Skype%2, a free Internet-based telephone system. If you don't already have Skype, you can %3download and install it now%4.  When you're finished, return to this page."
+msgstr "\n通过语音,使用 %1Skype%2,一个免费的基于互联网的电话系统。如果你没有Skype,你可以%3现在下载和安装它%4。 当您完成后再回到这个页面。"
+
+#: doc/help.php:25
+msgid "using Skype chat"
+msgstr "使用 Skype 聊天"
+
+#: doc/help.php:28
+msgid ""
+"Volunteers speaking many languages are available. Please select a language "
+"(number of helpers is shown):"
+msgstr "志愿帮助者们使用的语言有如下几种,请选择一种语言 (志愿者数量已显示)︰"
+
+#: doc/help.php:43
+msgid "Be a Help Volunteer"
+msgstr "成为一名志愿帮助者"
+
+#: doc/help.php:46
+#, php-format
+msgid ""
+"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
+"Volunteer%s.  It's a great way to help the cause of scientific research and "
+"volunteer computing - and it's fun!"
+msgstr "如果您是一位有经验的 BOINC 用户,我们鼓励您 %s成为一位志愿帮助者%s。这对于科学研究和志愿计算都大有益处 - 而且还很有趣!"
+
+#: doc/help.php:52
+#, php-format
+msgid ""
+"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
+msgstr "如果您已经是一位志愿帮助者并且想要修改您的参数设置,请 %s点击这里%s。"
+
+#: doc/help_funcs.php:136
+msgid ""
+"BOINC helpers are unpaid volunteers.  Their advice is not endorsed by BOINC."
+msgstr "BOINC 志愿帮助者都是无偿的志愿者。他们的意见并不代表BOINC 。"
+
+#: doc/help_funcs.php:139
+msgid "%1Never%2 give email address or password information to BOINC helpers."
+msgstr "%1请千万不要%将你的电子邮箱地址或者密码信息提供给 BOINC 帮助人员。"
+
+#: doc/projects.inc:19
 msgid "Distributed sensing"
 msgstr "分布式传感"
 
-#: projects.inc:24
-msgid "Stanford University"
-msgstr "斯坦福大学"
+#: doc/projects.inc:24
+msgid "Caltech"
+msgstr "加州理工学院"
 
-#: projects.inc:25
+#: doc/projects.inc:25
 msgid "Seismology"
 msgstr "地震学"
 
-#: projects.inc:26
+#: doc/projects.inc:26
 msgid ""
-"Quake-Catcher Network is developing the world's largest seismic network "
-"using sensors attached to computers and smartphones."
-msgstr "Quake-Catcher Network(QCN)项目致力于使用智能手机和计算机上的传感器创建世界上最大的地震感测网络。"
+"Quake-Catcher Network uses sensors attached to computers and smartphones to "
+"detect seismic waves."
+msgstr "地震捕捉网络使用连接到计算机和智能手机的传感器来检测地震波。"
 
-#: projects.inc:34
+#: doc/projects.inc:34
 msgid "BOINC Poland Foundation"
 msgstr "BOINC 波兰基金会"
 
-#: projects.inc:35
+#: doc/projects.inc:35
 msgid "Environmental research"
 msgstr "环境科学研究"
 
-#: projects.inc:36
+#: doc/projects.inc:36
 msgid ""
 "Radioactive at Home is creating a free and continuously updated map of "
 "radiation levels using sensors connected to volunteers' computers.  You must"
 " buy a sensor to participate."
 msgstr "Radioactive at Home项目使用志愿者计算机上的传感器来建立一个免费并持续更新的辐射强度地图。你需要购买一个传感器来加入这个项目。"
 
-#: projects.inc:45
+#: doc/projects.inc:45
 msgid "Cognitive science and artifical intelligence"
 msgstr "认知科学与人工智能"
 
-#: projects.inc:51
+#: doc/projects.inc:51
 msgid "Cognitive Science"
 msgstr "认知科学"
 
-#: projects.inc:52
+#: doc/projects.inc:52
 msgid ""
 "MindModeling at Home uses computational cognitive process modeling to better "
 "understand the human mind, and specifically to study the mechanisms and "
 "processes that enable and moderate human performance and learning."
 msgstr "MindModeling at Home 使用计算模拟认知过程模型,以更好地理解人类的思维,特别是学习那些使人类得以启用和改变表现和学习的机制和流程。"
 
-#: projects.inc:70 projects.inc:467 projects.inc:591 projects.inc:601
-#: projects.inc:657
-msgid "Private"
-msgstr "个人项目"
+#: doc/projects.inc:70 doc/projects.inc:467 doc/projects.inc:591
+#: doc/projects.inc:601 doc/projects.inc:657
+msgid "Independent"
+msgstr "独立"
 
-#: projects.inc:71
+#: doc/projects.inc:71
 msgid "Artificial intelligence"
 msgstr "人工智能"
 
-#: projects.inc:72
+#: doc/projects.inc:72
 msgid ""
 "Parse and convert semantic nets for use in FreeHAL, an artificial "
 "intelligence that uses semantic networks, stemmers, part of speech "
@@ -385,55 +490,55 @@ msgid ""
 "conversations."
 msgstr "解析和转换用于 FreeHAL 的语义网,而 FreeHAL 是一个利用语义网络、词干提取、部分语音库、部分语音标签来模仿人类的交谈行为的人工智能。"
 
-#: projects.inc:82
+#: doc/projects.inc:82
 msgid "Biology and Medicine"
 msgstr "生物学和医药学"
 
-#: projects.inc:88
+#: doc/projects.inc:88
 msgid "Medical physiology"
 msgstr "医学生理学"
 
-#: projects.inc:89
+#: doc/projects.inc:89
 msgid ""
 "DENIS at Home does cardiac electrophysiological simulations, studying the "
 "electrical activity of the heart."
 msgstr "DENIS at Home 通过心脏电生理仿真,研究心脏的电活动。"
 
-#: projects.inc:98
+#: doc/projects.inc:98
 msgid "Molecular biology"
 msgstr "分子生物学"
 
-#: projects.inc:99
+#: doc/projects.inc:99
 msgid ""
 "RNA World seeks to identify, analyze, structurally predict and design RNA "
 "molecules on the basis of established bioinformatics software."
 msgstr "RNA World 旨在识别、 分析、 结构预测和设计建立生物信息学软件的 RNA 分子。"
 
-#: projects.inc:107
+#: doc/projects.inc:107
 msgid "University College Dublin"
 msgstr "都柏林大学"
 
-#: projects.inc:108
+#: doc/projects.inc:108
 msgid "Antimalarial drug discovery"
 msgstr "寻找抗疟疾药物"
 
-#: projects.inc:109
+#: doc/projects.inc:109
 msgid ""
 "The parasite that causes malaria continues to evolve resistance to available"
 " medication. We therefore urgently need to discover new drugs, targeting new"
-" proteins in the parasite. The FightNeglectedDiseases at Home project is aimed "
-"at finding these new targets."
-msgstr "引起疟疾的寄生虫正在对现有可用药物产生新的抗药性。因此,我们迫切需要研究针对寄生虫中的新的蛋白质的药物。FightNeglectedDiseases at Home项目致力于寻找这些新的可用于研发药物的靶点。"
+" proteins in the parasite. The FiND at Home project is aimed at finding these "
+"new targets."
+msgstr "引起疟疾的寄生虫正在对现有可用药物产生新的抗药性。因此,我们迫切需要研究针对寄生虫中的新的蛋白质的药物。FiND at Home项目致力于寻找这些新的可用于研发药物的靶点。"
 
-#: projects.inc:117
+#: doc/projects.inc:117
 msgid "University of Karlsruhe (Germany)"
 msgstr "德国卡尔斯鲁厄(Karlsruhe)大学"
 
-#: projects.inc:118
+#: doc/projects.inc:118
 msgid "Protein structure prediction"
 msgstr "蛋白质结构预测"
 
-#: projects.inc:119
+#: doc/projects.inc:119
 msgid ""
 "POEM at HOME uses a computational approach to predict the biologically active "
 "structure of proteins, to understand the signal-processing mechanisms when "
@@ -442,15 +547,15 @@ msgid ""
 " the three-dimensions structure of biologically important proteins."
 msgstr "POEM at HOME 通过计算的途径来预测蛋白质的生物结构、理解蛋白质之间交互的信号传递机制、理解疾病相关的蛋白质变异,并在生物学重要的蛋白质的三维结构的基础上开发新的药物。"
 
-#: projects.inc:147
+#: doc/projects.inc:147
 msgid "Barcelona Biomedical Research Park (PRBB)"
 msgstr "巴塞罗那生物医学研究园区(PRBB)"
 
-#: projects.inc:148
+#: doc/projects.inc:148
 msgid "Molecular simulations of proteins"
 msgstr "蛋白质分子模拟"
 
-#: projects.inc:149
+#: doc/projects.inc:149
 msgid ""
 "GPUGrid.net opens novel computational scenarios by the first full-atom "
 "molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
@@ -458,31 +563,31 @@ msgid ""
 "computational biology for biomedical research."
 msgstr "GPUGrid.net 利用 NVIDIA 显卡(GPU)来进行全原子的分子动力学模拟。计算生物学的应用给生物医药学带来了新的研究方向。"
 
-#: projects.inc:175
+#: doc/projects.inc:175
 msgid ""
 "University of Maryland Center for Bioinformatics and Computational Biology"
 msgstr "美国马里兰大学生物信息学和计算生物学中心"
 
-#: projects.inc:176
+#: doc/projects.inc:176
 msgid "Life science research"
 msgstr "生命科学研究"
 
-#: projects.inc:177
+#: doc/projects.inc:177
 msgid ""
 "The Lattice Project, developed and administered at the University of "
 "Maryland, supplies computing power to researchers worldwide who are studying"
 " evolutionary relationships using DNA and protein sequence data."
 msgstr "The Lattice Project,由马里兰大学开发并管理。为使用DNA和蛋白质的序列数据的进化论研究者们提供世界范围内的算力。"
 
-#: projects.inc:185
+#: doc/projects.inc:185
 msgid "The Swiss Tropical Institute"
 msgstr "瑞士热带研究所"
 
-#: projects.inc:186
+#: doc/projects.inc:186
 msgid "Epidemiology"
 msgstr "流行病学"
 
-#: projects.inc:187
+#: doc/projects.inc:187
 msgid ""
 "Simulation models of the transmission dynamics and health effects of malaria"
 " are an important tool for malaria control. They can be used to determine "
@@ -493,15 +598,15 @@ msgid ""
 "social factors that influence the distribution of the disease. "
 msgstr "模拟疟疾的传播动力学模型,用于对疟疾的控制,包括如何才能对蚊帐、药物和正在研发测试过程中的疫苗等进行最优化的分发。相关的建模过程非常耗费计算资源,除了需要模拟相当大的人群分布之外,还要考虑生物学和社会学方面对疾病传播可能有影响的相关因素。"
 
-#: projects.inc:211
+#: doc/projects.inc:211
 msgid "University of Washington"
 msgstr "美国华盛顿大学"
 
-#: projects.inc:212
+#: doc/projects.inc:212
 msgid "Biology"
 msgstr "生物学"
 
-#: projects.inc:213
+#: doc/projects.inc:213
 msgid ""
 "Determine the 3-dimensional shapes of proteins in research that may "
 "ultimately lead to finding cures for some major human diseases. By running "
@@ -511,19 +616,19 @@ msgid ""
 "cancer, and Alzheimer's"
 msgstr "进行蛋白质的三维构造研究,并可能最终发现治愈人类几大疾病的特效药。通过运行 Rosetta at home,您可以帮助我们加速并拓宽研究思路。从而设计出新的蛋白质以抗击艾滋病、疟疾、癌症以及阿尔茨海默氏症(老年痴呆症)。"
 
-#: projects.inc:231
+#: doc/projects.inc:231
 msgid "Earth Sciences"
 msgstr "地球科学"
 
-#: projects.inc:243
+#: doc/projects.inc:243
 msgid "Oxford University"
 msgstr "英国牛津大学"
 
-#: projects.inc:244
+#: doc/projects.inc:244
 msgid "Climate study"
 msgstr "气候研究"
 
-#: projects.inc:245
+#: doc/projects.inc:245
 msgid ""
 "Investigate the approximations that have to be made in state-of-the-art "
 "climate models. By running the model thousands of times we hope to find out "
@@ -535,25 +640,16 @@ msgid ""
 "century under a wide range of different scenarios."
 msgstr "研究最新的气候模型中的近似处理。通过将模型运行数千次,我们希望能研究模型对近似处理的反应,同时还要保证模型不能脱离于实际。这能够帮助我们加深对模型的理解,包括对二氧化碳、硫循环等的敏感程度。更进一步,这能够帮助我们了解下一个世纪的气候变化趋势,包括各种不同的场景。"
 
-#: projects.inc:253
+#: doc/projects.inc:253
 msgid "Physical Science"
 msgstr "物理科学"
 
-#: projects.inc:259
-msgid "Mechanical engineering"
-msgstr "机械工程"
-
-#: projects.inc:260
-msgid ""
-"Currently we are calculating the optimum design of a structure call the 52 "
-"bar truss"
-msgstr "当前我们正在对一个名为 52 bar truss 的结构进行优化设计"
-
-#: projects.inc:269 projects.inc:328 projects.inc:338
+#: doc/projects.inc:269 doc/projects.inc:318 doc/projects.inc:328
+#: doc/projects.inc:338
 msgid "Astronomy"
 msgstr "天文学"
 
-#: projects.inc:270
+#: doc/projects.inc:270
 msgid ""
 "TheSkyNet POGS is an astronomy project studying 16 different properties of "
 "galaxies, including brightness, mass, amount of dust and how fast stars are "
@@ -563,11 +659,11 @@ msgid ""
 "better understand the distant universe."
 msgstr "TheSkyNet POGS 是一个研究16种不同星系的天文学项目,包括亮度、质量、尘埃量及其形成的速度。我们使用志愿者的算力从星系的图像中逐像素地进行多种波长的计算(包括紫外线、可见光和近红外线),从而一个能帮助天文学家更好地理解浩瀚宇宙的星图。"
 
-#: projects.inc:280 projects.inc:366
+#: doc/projects.inc:280 doc/projects.inc:366
 msgid "Astrophysics"
 msgstr "天体物理学"
 
-#: projects.inc:281
+#: doc/projects.inc:281
 msgid ""
 "The aim of the project is to derive shapes and spin for a significant part "
 "of the asteroid population. As input data, we use any asteroid photometry "
@@ -575,57 +671,52 @@ msgid ""
 "direction of the spin axis and the rotation period."
 msgstr "项目的目的是要获得对小行星总体情况重要的形状和自旋信息。我们使用任何可用的小行星光度作为输入的数据。结果是带自转轴及自转周期的小行星凸面形状模型。"
 
-#: projects.inc:290
-msgid "Aerospace-related science and engineering"
-msgstr "航空航天相关的科学与工程"
+#: doc/projects.inc:317
+msgid "University of Illinois at Urbana-Champaign"
+msgstr "伊利诺伊大学厄本那-香槟分校"
 
-#: projects.inc:291
+#: doc/projects.inc:319
 msgid ""
-"Constellation is a platform for aerospace-related simulations, including "
-"trajectory optimization of launchers, satellites and probes, simulation of "
-"Moon's near-surface exosphere, and analysis of dynamic systems of "
-"exploration-rovers"
-msgstr "星座是一个平台,用于航空航天相关的仿真,包括发射器、 卫星和探测器的轨迹优化、 月球附近表面散逸,仿真和分析的动态系统的探测漫游者"
-
-#: projects.inc:294
-msgid "Perform aerospace-related simulations"
-msgstr "执行航空航天相关模拟"
+"The goal of Cosmology at Home is to search for the model that best describes "
+"our Universe and to find the range of models that agree with the available "
+"astronomical particle physics data."
+msgstr "Cosmology at Home 的目标是搜索可以描述我们宇宙的最适合的模型,并研究能够与天文观测数据相符的模型范围。"
 
-#: projects.inc:329
+#: doc/projects.inc:329
 msgid ""
 "Universe at Home aims to create the first database of the simulated stellar "
 "content of the Universe, from the earliest stars to the most exotic black "
 "hole binaries."
 msgstr "Universe at Home 的目的是创造宇宙的模拟恒星内容的第一个数据库,从最早的恒星到最独特的黑洞双星。"
 
-#: projects.inc:332
+#: doc/projects.inc:332
 msgid "Do research in physics and astronomy"
 msgstr "研究物理学和天文学"
 
-#: projects.inc:337
+#: doc/projects.inc:337
 msgid "Rensselaer Polytechnic Institute"
 msgstr "伦斯勒理工学院"
 
-#: projects.inc:339
+#: doc/projects.inc:339
 msgid ""
 "The goal of Milkyway at Home is to create a highly accurate three dimensional "
 "model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
 "Survey."
 msgstr "Milkeyway at Home 使用 Sloan 数字巡天的数据来对银河系进行高精度的三维建模。"
 
-#: projects.inc:342
+#: doc/projects.inc:342
 msgid "Study the structure of the Milky Way galaxy"
 msgstr "研究银河系的结构"
 
-#: projects.inc:347
+#: doc/projects.inc:347
 msgid "Leiden University, The Netherlands"
 msgstr "荷兰莱顿大学"
 
-#: projects.inc:348
+#: doc/projects.inc:348
 msgid "Chemistry"
 msgstr "化学"
 
-#: projects.inc:349
+#: doc/projects.inc:349
 msgid ""
 "Surface science calculations using Classical Dynamics.  Leiden Classical "
 "allows volunteers, students and other scientist to submit their personal "
@@ -635,15 +726,15 @@ msgid ""
 "simulations through the grid."
 msgstr "使用经典力学进行表面科学的计算。Leiden Classical 允许志愿者、学者和其它科研人员提供他们自己的计算任务,每个用户都有他自己的经典力学任务队列。通过这种方式,学生们可以利用网格来对他们学习到的相关理论进行验证。"
 
-#: projects.inc:352
+#: doc/projects.inc:352
 msgid "Help students do atomic simulations"
 msgstr "帮助学生做原子模拟"
 
-#: projects.inc:365
+#: doc/projects.inc:365
 msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
 msgstr "美国威斯康星大学密尔沃基分校,德国马克斯普朗克研究所"
 
-#: projects.inc:367
+#: doc/projects.inc:367
 msgid ""
 "Search for spinning neutron stars (also called pulsars) using data from the "
 "LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
@@ -652,19 +743,19 @@ msgid ""
 "international organizations."
 msgstr "分析 LIGO 和 GEO 引力波探测器以及阿雷西波观测站采集到的数据,以寻找自旋中子星(也称为脉冲星)。Einstein at Home 是 2005 世界物理学年的推荐项目,由美国物理学会(APS)和一些相关的国际组织发起。"
 
-#: projects.inc:370
+#: doc/projects.inc:370
 msgid "Help detect pulsars and gravitational waves"
 msgstr "帮助检测脉冲星和引力波"
 
-#: projects.inc:383 projects.inc:393 projects.inc:403
+#: doc/projects.inc:383 doc/projects.inc:393 doc/projects.inc:403
 msgid "CERN (European Organization for Nuclear Research)"
 msgstr "CERN(欧洲核子研究组织)"
 
-#: projects.inc:384 projects.inc:394 projects.inc:404
+#: doc/projects.inc:384 doc/projects.inc:394 doc/projects.inc:404
 msgid "Physics"
 msgstr "物理学"
 
-#: projects.inc:385
+#: doc/projects.inc:385
 msgid ""
 "The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
 "European Organization for Nuclear Research, the world's largest particle "
@@ -673,22 +764,22 @@ msgid ""
 "the design of LHC and its detectors."
 msgstr "大型强子对撞机(LHC)是 CERN(欧洲核子研究组织)的一个粒子加速器装置,也是世界上最大的粒子物理实验室。它是人类现有的用于研究基本粒子特性的最强大的实验装置。LHC at home 的作用主要是对加速器进行模拟,并帮助改进 LHC 及其探测器的设计。"
 
-#: projects.inc:388
+#: doc/projects.inc:388
 msgid "Improve the design of the Large Hadron Collider"
 msgstr "提高大型强子对撞机的设计"
 
-#: projects.inc:395
+#: doc/projects.inc:395
 msgid ""
 "This project uses CERN-developed virtual machine technology for LHC event "
 "physics simulation on volunteer computers.  Requires that you install "
 "VirtualBox on your computer"
 msgstr "该项目使用由CERN开发的虚拟机技术为志愿者在计算机内运行LHC事件模拟。这需要在计算机内已经安装Virtualbox虚拟化软件。"
 
-#: projects.inc:398
+#: doc/projects.inc:398
 msgid "Simulate high-energy particle collisions"
 msgstr "模拟高能粒子碰撞"
 
-#: projects.inc:405
+#: doc/projects.inc:405
 msgid ""
 "ATLAS at Home uses volunteer computing to run simulations for ATLAS, a particle"
 " physics experiment at CERN's Large Hadron Collider.  ATLAS searches for new"
@@ -696,19 +787,19 @@ msgid ""
 "extraordinary high energy."
 msgstr "ATLAS at Home 使用志愿计算网格来运行ATLAS模拟,一个CERN(欧洲核子研究组织)大型强子对撞机的物理学实验。ATLAS 探测器研究使用特别的高能质子与新粒子正面碰撞的过程。"
 
-#: projects.inc:408
+#: doc/projects.inc:408
 msgid "Simulate high-energy particle collisions for CERN"
 msgstr "欧洲核子研究中心的高能粒子对撞模拟"
 
-#: projects.inc:413
+#: doc/projects.inc:413
 msgid "University of California, Berkeley"
 msgstr "美国加州大学伯克利分校"
 
-#: projects.inc:414
+#: doc/projects.inc:414
 msgid "Astrophysics, astrobiology"
 msgstr "天体物理学,天体生物学"
 
-#: projects.inc:415
+#: doc/projects.inc:415
 msgid ""
 "SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
 "goal is to detect intelligent life outside Earth. One approach, known as "
@@ -717,106 +808,87 @@ msgid ""
 "detection would provide evidence of extraterrestrial technology."
 msgstr "SETI (搜索地外智能)的研究领域是探测地球之外的智慧生命。探测的途径之一,也被称之为射电 SETI,使用射电望远镜来监听太空中的窄波射电信号。因为依照人类目前的认识,这些信号不会自然产生,因此可以作为将其地外技术文明存在的证据。"
 
-#: projects.inc:418
+#: doc/projects.inc:418
 msgid "Search for evidence of extra-terrestrial life"
 msgstr "寻找外星生命存在的证据"
 
-#: projects.inc:442
+#: doc/projects.inc:442
 msgid "Multiple applications"
 msgstr "多种计算程序"
 
-#: projects.inc:448
+#: doc/projects.inc:448
 msgid "Molecular biology, Computer Science"
 msgstr "分子生物学、 计算机科学"
 
-#: projects.inc:449
+#: doc/projects.inc:449
 msgid ""
 "The Citizen Science Grid is dedicated to supporting a wide range of research"
 " and educational projects using volunteer computing and citizen science."
 msgstr "公民科学网格致力于支持广泛的研究和教育项目使用志愿者计算和公民科学。"
 
-#: projects.inc:452
+#: doc/projects.inc:452
 msgid "Support science from the University of North Dakota"
 msgstr "支持北达科塔州大学的科学"
 
-#: projects.inc:457
+#: doc/projects.inc:457
 msgid "Chinese Academy of Sciences"
 msgstr "中国科学院"
 
-#: projects.inc:458
+#: doc/projects.inc:458
 msgid "Physics, biochemistry, and others"
 msgstr "物理学、生物化学、其它"
 
-#: projects.inc:459
+#: doc/projects.inc:459
 msgid ""
-"The objective of CAS at home is to encourage and assist scientists in China to "
-"adopt the technologies of volunteer computing and volunteer thinking for "
-"their research."
-msgstr "CAS at home 的目标是鼓励和帮助中国的科研人员采用志愿计算这种计算技术以及相应的科研思维方式。"
+"CAS at home is hosted by the Computing Centre of the Institute of High Energy "
+"Physics (IHEP), Chinese Academy of Sciences, for Chinese scientists with "
+"projects studying protein structure, nanotechnology, cancer genomics, and "
+"high energy physics."
+msgstr "CAS at home由中国科学院高能物理研究所电子计算中心主办,帮助中国科学家研究关于蛋白质结构、纳米技术、肿瘤基因组学以及高能物理方面的项目。"
 
-#: projects.inc:462
+#: doc/projects.inc:462
 msgid "Help Chinese researchers"
 msgstr "帮助中国的研究人员"
 
-#: projects.inc:468
+#: doc/projects.inc:468
 msgid "Mathematics, physics, evolution"
 msgstr "数学、物理学、进化论"
 
-#: projects.inc:469
+#: doc/projects.inc:469
 msgid ""
 "Yoyo at home is an adapter between BOINC and several existing volunteer "
 "computing projects: ECM, Muon, Evolution at home, and distributed.net"
 msgstr "Yoyo at home 项目将包括 ECM、Muon、Evolution at home 和 distributed.net 在内的一些传统志愿计算项目移植到了 BOINC 平台。"
 
-#: projects.inc:472
+#: doc/projects.inc:472
 msgid "Do research in math, physics, and evolution"
 msgstr "研究数学,物理和进化"
 
-#: projects.inc:477 projects.inc:677
-msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
-msgstr "匈牙利 MTA-SZTAKI 并行和分布式系统实验室"
-
-#: projects.inc:478
-msgid "European research projects"
-msgstr "欧盟研究项目"
-
-#: projects.inc:479
-msgid ""
-"The EDGeS at Home Beta project integrates volunteer computing into the service "
-"grid network of Europe by allowing service grids to send workunits to be "
-"processed by the volunteers of this project. The scientific projects covered"
-" by the project include math, physics, biology, etc."
-msgstr "EDGes at Home Beta 项目将志愿计算融入到欧洲网格计算服务,允许网格将计算任务分发给项目的志愿者们来处理。项目所涉及的科研领域包括数学、物理、生物等等。"
-
-#: projects.inc:482
-msgid "Help European researchers"
-msgstr "帮助欧洲研究人员"
-
-#: projects.inc:487
+#: doc/projects.inc:487
 msgid "Spanish universities and research centers"
 msgstr "西班牙的大学和研究中心"
 
-#: projects.inc:488
+#: doc/projects.inc:488
 msgid "Various Spanish research projects"
 msgstr "各种西班牙的研究项目"
 
-#: projects.inc:489
+#: doc/projects.inc:489
 msgid "Research in physics, material science, and biomedicine"
 msgstr "物理学、材料科学和生物医药学方面的研究。"
 
-#: projects.inc:492
+#: doc/projects.inc:492
 msgid "Help Spanish researchers"
 msgstr "帮助西班牙研究人员"
 
-#: projects.inc:497
+#: doc/projects.inc:497
 msgid "IBM Corporate Citizenship"
 msgstr "IBM 公民科学"
 
-#: projects.inc:498
+#: doc/projects.inc:498
 msgid "Medical, environmental and other humanitarian research"
 msgstr "医疗,环境和其他人道主义研究"
 
-#: projects.inc:499
+#: doc/projects.inc:499
 msgid ""
 "To further critical non-profit research on some of humanity's most pressing "
 "problems by creating the world's largest volunteer computing grid.  Research"
@@ -824,20 +896,20 @@ msgid ""
 "clean water and many more."
 msgstr "通过建立世界上最大的志愿计算网络来推进一些人类目前迫切想解决的、非赢利性的科学研究。包括艾滋,癌症,登革热以及一些被忽视的疾病,太阳能,清洁水资源等等。"
 
-#: projects.inc:502
+#: doc/projects.inc:502
 msgid "Do biomedical and environmental research"
 msgstr "进行有关生物医学和环境科学的研究"
 
-#: projects.inc:507
+#: doc/projects.inc:507
 msgid "Mathematics, computing, and games"
 msgstr "数学、计算机、游戏"
 
-#: projects.inc:533 projects.inc:602 projects.inc:658 projects.inc:668
-#: projects.inc:678
+#: doc/projects.inc:533 doc/projects.inc:602 doc/projects.inc:658
+#: doc/projects.inc:668 doc/projects.inc:678
 msgid "Mathematics"
 msgstr "数学"
 
-#: projects.inc:534
+#: doc/projects.inc:534
 msgid ""
 "NumberFields at home searches for fields with special properties. The primary "
 "application of this research is in the realm of algebraic number theory. "
@@ -847,64 +919,64 @@ msgid ""
 "basic building blocks of all mathematics."
 msgstr "NumberFields at home 搜索具有特殊性质的数域。本研究主要应用于代数数论领域。数论学家可以挖掘数据之中含有的有趣的模式,以帮助他们提出有关数论的猜想。最终,这项研究将使我们对数字,数学的最基本元素的所有属性有更深入地了解。"
 
-#: projects.inc:537
+#: doc/projects.inc:537
 msgid "Do research in algebraic number theory"
 msgstr "代数数论的研究"
 
-#: projects.inc:553
+#: doc/projects.inc:553
 msgid "Computer Science"
 msgstr "计算机科学"
 
-#: projects.inc:554
+#: doc/projects.inc:554
 msgid ""
 "Solve hard and practically important problems (discrete functions inversion "
 "problems, discrete optimization, bioinformatics, etc.) that can be "
 "effectively reduced to Boolean satisfiability problem."
 msgstr "解决一些可以有效地减少为布尔可满足性问题的困难和具有重要现实意义的问题 (离散函数的反演问题、 离散优化、 生物信息学等)。"
 
-#: projects.inc:557
+#: doc/projects.inc:557
 msgid "Study computational complexity"
 msgstr "研究计算复杂度"
 
-#: projects.inc:582
+#: doc/projects.inc:582
 msgid "Cryptography and combinatorics"
 msgstr "密码学以及组合学"
 
-#: projects.inc:583 projects.inc:586
+#: doc/projects.inc:583 doc/projects.inc:586
 msgid "Run applications from distributed.net"
 msgstr "运行来自distributed.net的应用程序"
 
-#: projects.inc:592
+#: doc/projects.inc:592
 msgid "Cryptography"
 msgstr "密码学"
 
-#: projects.inc:593
+#: doc/projects.inc:593
 msgid ""
 "Attempt to decode 3 original Enigma messages. The signals were intercepted "
 "in the North Atlantic in 1942 and are believed to be unbroken."
 msgstr "该项目试图解密三条二战期间的加密电报消息,这些消息于 1942 年在北大西洋截获而且一直被认为是不可破解的。"
 
-#: projects.inc:596
+#: doc/projects.inc:596
 msgid "Decode WWII submarine messages"
 msgstr "解密二战潜艇电报"
 
-#: projects.inc:603
+#: doc/projects.inc:603
 msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
 msgstr "研究考拉兹猜想(Collatz conjecture),一个尚未被证明的数学猜想。"
 
-#: projects.inc:606
+#: doc/projects.inc:606
 msgid "Study the Collatz Conjecture"
 msgstr "研究考拉兹猜想(Collatz Conjecture)"
 
-#: projects.inc:611
+#: doc/projects.inc:611
 msgid "California State University Fullerton"
 msgstr "加州州立大学富尔顿分校"
 
-#: projects.inc:612
+#: doc/projects.inc:612
 msgid "Factorization of large integers"
 msgstr "大数字因式分解"
 
-#: projects.inc:613
+#: doc/projects.inc:613
 msgid ""
 "NFS at Home is a research project that uses Internet-connected computers to do "
 "the lattice sieving step in the Number Field Sieve factorization of large "
@@ -914,56 +986,60 @@ msgid ""
 "hundreds of digits long."
 msgstr "NFS at Home 是一个利用通过互联网连接的计算机来进行大整数数域筛选分解中的格筛步骤的研究项目。当你还是一个年轻的学生时,你应该就有了分解质因数的经历,比如 15=3*5 或者 35=5*7。NFS at Home 正是这一经历的延续,唯一的不同是分解的是有数百位数字长的大整数。"
 
-#: projects.inc:616
+#: doc/projects.inc:616
 msgid "Study the factorization of large integers"
 msgstr "大整数因子分解的研究"
 
-#: projects.inc:659
+#: doc/projects.inc:659
 msgid ""
 "Primegrid has multiple projects searching for different forms of very large "
 "prime numbers, including searching for the largest known prime number."
 msgstr "Primegrid 旗下有多个研究各种类型大质数的项目,其中包括寻找已知最大质数的项目。"
 
-#: projects.inc:662
+#: doc/projects.inc:662
 msgid "Search for large prime numbers"
 msgstr "搜寻大的素数"
 
-#: projects.inc:667
+#: doc/projects.inc:667
 msgid "Hochschule RheinMain University of Applied Sciences"
 msgstr "莱茵曼应用技术大学"
 
-#: projects.inc:669
+#: doc/projects.inc:669
 msgid ""
 "Search for counterexamples to two conjectures related to the identification "
 "of prime numbers"
 msgstr "寻找两个有关质数识别的猜想的反例。"
 
-#: projects.inc:672
+#: doc/projects.inc:672
 msgid "Study the properties of prime numbers"
 msgstr "研究素数的性质"
 
-#: projects.inc:679
+#: doc/projects.inc:677
+msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
+msgstr "匈牙利 MTA-SZTAKI 并行和分布式系统实验室"
+
+#: doc/projects.inc:679
 msgid ""
 "Find all the generalized binary number systems (in which bases are matrices "
 "and digits are vectors) up to dimension 11."
 msgstr "寻找所有的广义二进制数系(基是矩阵,而位是向量),目前项目正在搜索 12 维的广义二进制数系。"
 
-#: projects.inc:682
+#: doc/projects.inc:682
 msgid "Study number theory"
 msgstr "研究数论"
 
-#: projects.inc:739
+#: doc/projects.inc:739
 msgid ""
 "Testing and comparison of heuristic methods for getting separations of "
 "parallel algorithms working in the CAD system for designing logic control "
 "systems"
 msgstr "测试并比较启发式方法以研究用于CAD逻辑控制设计系统的分立的并行算法"
 
-#: ../html/inc/news.inc:40
-msgid "Comment"
-msgstr "备注"
+#: html/inc/news.inc:41
+msgid "Discuss"
+msgstr "讨论"
 
-#: ../html/inc/news.inc:111
+#: html/inc/news.inc:112
 #, php-format
 msgid "News is available as an %sRSS feed%s"
 msgstr "新闻还可以通过 %sRSS%s 来访问"
diff --git a/locale/zh_TW/BOINC-Client.mo b/locale/zh_TW/BOINC-Client.mo
index a3cd6a5..fb62861 100644
Binary files a/locale/zh_TW/BOINC-Client.mo and b/locale/zh_TW/BOINC-Client.mo differ
diff --git a/locale/zh_TW/BOINC-Client.po b/locale/zh_TW/BOINC-Client.po
index 1a87ab8..d0ee4d0 100644
--- a/locale/zh_TW/BOINC-Client.po
+++ b/locale/zh_TW/BOINC-Client.po
@@ -3,15 +3,16 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# willy Wu <df910105 at yahoo.com.tw>, 2015
+# Willy Wu <df910105 at yahoo.com.tw>, 2015
+# Willy Wu <df910105 at yahoo.com.tw>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2013-10-15 22:25-0700\n"
-"PO-Revision-Date: 2015-02-16 04:59+0000\n"
-"Last-Translator: willy Wu <df910105 at yahoo.com.tw>\n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/boinc/language/zh_TW/)\n"
+"PO-Revision-Date: 2015-03-14 06:34+0000\n"
+"Last-Translator: Willy Wu <df910105 at yahoo.com.tw>\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/boinc/boinc/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -30,7 +31,7 @@ msgstr "來自於專案伺服器的訊息"
 msgid ""
 "Some tasks need more memory than allowed by your preferences.  Please check "
 "the preferences."
-msgstr "部分工作所需要的記憶體超過您設定使用量。請檢查您的設定值。"
+msgstr "部分任務所需要的記憶體超過您設定使用量。請檢查您的設定值。"
 
 #: client_state.cpp:520
 msgid "Couldn't write state file; check directory permissions"
@@ -38,26 +39,26 @@ msgstr "無法寫入狀態文件,請檢查目錄權限"
 
 #: cs_cmdline.cpp:303
 msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-msgstr "在HTTP_PROXY中必須指定一個HTTP代理伺服器"
+msgstr "在 HTTP_PROXY 中必須指定一個 HTTP 代理伺服器"
 
 #: cs_scheduler.cpp:613
 #, c-format
 msgid ""
 "You used the wrong URL for this project.  When convenient, remove this "
 "project, then add %s"
-msgstr "您使用了錯誤的專案網址。若您方便,請移除專案並再一次加入%s"
+msgstr "您使用了錯誤的專案網址。若您方便,請移除專案並再一次加入 %s"
 
 #: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
 msgid "Syntax error in app_info.xml"
-msgstr "app_info.xml語法錯誤"
+msgstr "app_info.xml 語法錯誤"
 
 #: cs_statefile.cpp:868
 msgid "File referenced in app_info.xml does not exist: "
-msgstr "app_info.xml中所引用的檔案並不存在:"
+msgstr "app_info.xml 中所引用的檔案並不存在:"
 
 #: current_version.cpp:91
 msgid "A new version of BOINC is available."
-msgstr "BOINC有更新版本。"
+msgstr "BOINC 有更新版本。"
 
 #: current_version.cpp:94 current_version.cpp:102
 msgid "Download"
@@ -65,37 +66,37 @@ msgstr "下載"
 
 #: log_flags.cpp:269 log_flags.cpp:449
 msgid "Unexpected text in cc_config.xml"
-msgstr "cc_config.xml中有異常的文件"
+msgstr "cc_config.xml 中有異常的文件"
 
 #: log_flags.cpp:423 log_flags.cpp:475
 msgid "Unrecognized tag in cc_config.xml"
-msgstr "cc_config.xml中有無法辨識的標籤"
+msgstr "cc_config.xml 中有無法辨識的標籤"
 
 #: log_flags.cpp:440
 msgid "Missing start tag in cc_config.xml"
-msgstr "cc_config.xml中缺少了起始標籤"
+msgstr "cc_config.xml 中缺少了起始標籤"
 
 #: log_flags.cpp:465
 msgid "Error in cc_config.xml options"
-msgstr "cc_config.xml中有錯誤的設定"
+msgstr "cc_config.xml 中有錯誤的設定"
 
 #: log_flags.cpp:483
 msgid "Missing end tag in cc_config.xml"
-msgstr "cc_config.xml中缺少了結束標籤"
+msgstr "cc_config.xml 中缺少了結束標籤"
 
 #: ../sched/handle_request.cpp:307
 msgid "Invalid or missing account key.  To fix, remove and add this project."
-msgstr "Account key無效或不存在。 請移除並再一次的加入專案以修復這問題。"
+msgstr "Account key 無效或不存在。請移除並再一次加入專案以修復這問題。"
 
 #: ../sched/handle_request.cpp:849
 msgid "Invalid code signing key.  To fix, remove and add this project."
-msgstr "錯誤的代碼簽名鑰匙。 請移除並再一次的加入專案以修復這問題。"
+msgstr "錯誤的代碼簽名鑰匙。請移除並再一次加入專案以修復這問題。"
 
 #: ../sched/handle_request.cpp:859
 msgid ""
 "The project has changed its security key.  Please remove and add this "
 "project."
-msgstr "該專案更新了安全金鑰。 請移除並再一次的加入專案以修復這問題。"
+msgstr "該專案更新了安全金鑰。請移除並再一次加入專案以修復這問題。"
 
 #: ../sched/handle_request.cpp:943
 msgid "This project doesn't support operating system"
@@ -103,12 +104,12 @@ msgstr "該專案不支援您的作業系統"
 
 #: ../sched/handle_request.cpp:969
 msgid "This project doesn't support CPU type"
-msgstr "該專案不支援您的CPU類型"
+msgstr "該專案不支援您的 CPU 類型"
 
 #: ../sched/handle_request.cpp:993
 msgid ""
 "Your BOINC client software is too old.  Please install the current version."
-msgstr "你的BOINC軟體太舊了。請安裝更新版本。"
+msgstr "你的 BOINC 軟體太舊了。請安裝更新版本。"
 
 #: ../sched/handle_request.cpp:1259
 msgid "This project doesn't support computers of type"
@@ -117,27 +118,27 @@ msgstr "該專案不支援您的電腦類型"
 #: ../sched/sched_send.cpp:1092
 msgid ""
 "Upgrade to the latest driver to process tasks using your computer's GPU"
-msgstr "將您的GPU驅動程式升級到最新的版本之後,才可以執行工作"
+msgstr "將您的 GPU 驅動程式升級到最新的版本之後,才可以執行任務"
 
 #: ../sched/sched_send.cpp:1099
 msgid ""
 "Upgrade to the latest driver to use all of this project's GPU applications"
-msgstr "將您的GPU驅動程式升級到最新的版本之後,才可以執行專案中的GPU程式"
+msgstr "將您的 GPU 驅動程式升級到最新的版本之後,才可以執行專案中的 GPU 程式"
 
 #: ../sched/sched_send.cpp:1118
 msgid ""
 "A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to"
 " the current version"
-msgstr "當您使用NVIDIA GPU進行運算的時候,請將BOINC升級至最新版本"
+msgstr "當您使用 NVIDIA GPU 進行運算的時候,請將 BOINC 升級至最新版本"
 
 #: ../sched/sched_send.cpp:1146
 #, c-format
 msgid "An %s GPU is required to run tasks for this project"
-msgstr "該專案的工作需要%s的GPU才可以執行"
+msgstr "該專案的任務需要 %s GPU 才可以執行"
 
 #: ../sched/sched_send.cpp:1262
 msgid "No tasks are available for the applications you have selected."
-msgstr "您目前設定的程式類型沒有工作。"
+msgstr "您目前選擇的程式沒有任務。"
 
 #: ../sched/sched_send.cpp:1288
 msgid "Your computer type is not supported by this project"
diff --git a/locale/zh_TW/BOINC-Manager.mo b/locale/zh_TW/BOINC-Manager.mo
index 1f9a35e..6fbe741 100644
Binary files a/locale/zh_TW/BOINC-Manager.mo and b/locale/zh_TW/BOINC-Manager.mo differ
diff --git a/locale/zh_TW/BOINC-Manager.po b/locale/zh_TW/BOINC-Manager.po
index 7e68364..d17fa50 100644
--- a/locale/zh_TW/BOINC-Manager.po
+++ b/locale/zh_TW/BOINC-Manager.po
@@ -11,7 +11,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-10-16 17:27-0500\n"
-"PO-Revision-Date: 2016-02-16 13:07+0000\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
 "Last-Translator: Mingye Wang <arthur200126 at gmail.com>\n"
 "Language-Team: Chinese (Taiwan) (http://www.transifex.com/boinc/boinc/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
diff --git a/locale/zh_TW/BOINC-Project-Generic.po b/locale/zh_TW/BOINC-Project-Generic.po
deleted file mode 100644
index 2a41468..0000000
--- a/locale/zh_TW/BOINC-Project-Generic.po
+++ /dev/null
@@ -1,6516 +0,0 @@
-# BOINC web translation
-# Copyright (C) 2008 University of California
-# 
-# This file is distributed under the same license as BOINC.
-# 
-# FileID  : $Id$
-# 
-# Translators:
-# Died <doomdied at gmail.com>, 2015
-# Mingye Wang <arthur200126 at gmail.com>, 2015
-# Po-Chun Huang <aphroteus at gmail.com>, 2015
-# Willy Wu <df910105 at yahoo.com.tw>, 2015
-# Willy Wu <df910105 at yahoo.com.tw>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version: BOINC\n"
-"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at boinc.berkeley.edu>\n"
-"POT-Creation-Date: 2015-06-24 13:05 PDT\n"
-"PO-Revision-Date: 2016-01-20 05:56+0000\n"
-"Last-Translator: Mingye Wang <arthur200126 at gmail.com>\n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/boinc/boinc/language/zh_TW/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_TW\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-msgid "LANG_NAME_NATIVE"
-msgstr "繁體中文 (台灣)"
-
-msgid "LANG_NAME_INTERNATIONAL"
-msgstr "Traditional Chinese (Taiwan)"
-
-#: ../inc/account.inc:38
-msgid "Invitation Code"
-msgstr "邀請碼"
-
-#: ../inc/account.inc:38
-msgid "A valid invitation code is required to create an account."
-msgstr "建立帳號時需要一個正確的邀請碼。"
-
-#: ../inc/account.inc:44 ../inc/host.inc:674 ../inc/result.inc:632
-#: ../inc/team.inc:224 ../inc/team.inc:372 ../inc/user.inc:198
-#: ../user/account_finish.php:41 ../user/team_admins.php:64
-#: ../user/team_change_founder_form.php:79 ../user/team_email_list.php:73
-#: ../user/top_users.php:49 ../user/user_search.php:124
-msgid "Name"
-msgstr "用戶名"
-
-#: ../inc/account.inc:44 ../user/account_finish.php:41
-msgid "Identifies you on our web site. Use your real name or a nickname."
-msgstr "您在我們網站上的標識,可以使用您的真實姓名或是暱稱。"
-
-#: ../inc/account.inc:48
-msgid "Email Address"
-msgstr "電子郵件地址"
-
-#: ../inc/account.inc:48
-msgid "Must be a valid address of the form 'name at domain'."
-msgstr "必須是有效的電子郵件地址,例如:用戶名@域名。"
-
-#: ../inc/account.inc:57 ../user/edit_email_form.php:47
-msgid "Password"
-msgstr "密碼"
-
-#: ../inc/account.inc:58
-msgid "Must be at least %1 characters"
-msgstr "至少必須包含 %1 個字符"
-
-#: ../inc/account.inc:61
-msgid "Confirm password"
-msgstr "確認密碼"
-
-#: ../inc/account.inc:63 ../inc/team.inc:43 ../inc/team.inc:134
-#: ../inc/team.inc:247 ../inc/team.inc:387 ../inc/team.inc:475
-#: ../inc/user.inc:212 ../inc/user.inc:395 ../user/account_finish.php:45
-#: ../user/edit_user_info_form.php:38 ../user/profile_search_action.php:44
-#: ../user/team_email_list.php:73 ../user/team_search.php:85
-#: ../user/top_users.php:63 ../user/user_search.php:53
-#: ../user/user_search.php:125
-msgid "Country"
-msgstr "國家"
-
-#: ../inc/account.inc:63 ../user/account_finish.php:45
-msgid "Select the country you want to represent, if any."
-msgstr "選擇您的國家。"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Postal or ZIP Code"
-msgstr "郵遞區號"
-
-#: ../inc/account.inc:70 ../user/account_finish.php:51
-msgid "Optional"
-msgstr "可選擇"
-
-#: ../inc/account.inc:86
-msgid "Create account"
-msgstr "建立帳號"
-
-#: ../inc/account.inc:101
-msgid "Email address:"
-msgstr "電子郵件地址:"
-
-#: ../inc/account.inc:103
-msgid "forgot email address?"
-msgstr "忘記了電子郵件地址?"
-
-#: ../inc/account.inc:106
-msgid "Password:"
-msgstr "密碼:"
-
-#: ../inc/account.inc:106
-msgid "forgot password?"
-msgstr "忘記密碼?"
-
-#: ../inc/account.inc:109
-msgid "Stay logged in"
-msgstr "保持登入狀態"
-
-#. kludge
-#: ../inc/account.inc:114 ../inc/util.inc:238 ../user/login_form.php:41
-msgid "Log in"
-msgstr "登入"
-
-#: ../inc/bbcode_html.inc:11
-msgid "Bold text: [b]text[/b]  (alt+b)"
-msgstr "粗體:[b]文字[/b] (alt+b)"
-
-#: ../inc/bbcode_html.inc:14
-msgid "Italic text: [i]text[/i]  (alt+i)"
-msgstr "斜體:[i]文字[/i] (alt+i)"
-
-#: ../inc/bbcode_html.inc:17
-msgid "Underline text: [u]text[/u]  (alt+u)"
-msgstr "底線:[u]文字[/u] (alt+u)"
-
-#: ../inc/bbcode_html.inc:20
-msgid "Strikethrough text: [s]text[/s]  (alt+k)"
-msgstr "刪除線:[s]文字[/s] (alt+k)"
-
-#: ../inc/bbcode_html.inc:23
-msgid "Quote text: [quote]text[/quote]  (alt+q)"
-msgstr "引用:[quote]文字[/quote] (alt+q)"
-
-#: ../inc/bbcode_html.inc:26
-msgid "Code display: [code]code[/code]  (alt+c)"
-msgstr "代碼: [code]代碼[/code] (alt+c)"
-
-#: ../inc/bbcode_html.inc:29
-msgid "List: [list]text[/list] (alt+l)"
-msgstr "表格:[list]本文[/list] (alt+l)"
-
-#: ../inc/bbcode_html.inc:32
-msgid "Ordered list: [list=]text[/list]  (alt+o)"
-msgstr "排序表格:[list=]文字[/list] (alt+o)"
-
-#: ../inc/bbcode_html.inc:35
-msgid "Insert image: [img]http://image_url[/img]  (alt+p)"
-msgstr "插入圖片:[img]圖片網址[/img] (alt+p)"
-
-#: ../inc/bbcode_html.inc:38
-msgid ""
-"Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]  (alt+w)"
-msgstr "插入連結:[url]連結[/url] 或 [url=連結]文字[/url] (alt+w)"
-
-#: ../inc/bbcode_html.inc:45
-msgid "Font color"
-msgstr "字體顏色"
-
-#: ../inc/bbcode_html.inc:46
-msgid ""
-"Font color: [color=red]text[/color]  Tip: you can also use color=#FF0000"
-msgstr "字體顏色:[color=red]文字[/color] 訣竅:你也可以用 #FF0000 來表示紅色"
-
-#: ../inc/bbcode_html.inc:47 ../inc/bbcode_html.inc:62
-#: ../inc/prefs_util.inc:546
-msgid "Default"
-msgstr "預設"
-
-#: ../inc/bbcode_html.inc:48
-msgid "Dark Red"
-msgstr "深紅"
-
-#: ../inc/bbcode_html.inc:49
-msgid "Red"
-msgstr "紅"
-
-#: ../inc/bbcode_html.inc:50
-msgid "Orange"
-msgstr "橙"
-
-#: ../inc/bbcode_html.inc:51
-msgid "Brown"
-msgstr "棕"
-
-#: ../inc/bbcode_html.inc:52
-msgid "Yellow"
-msgstr "黃"
-
-#: ../inc/bbcode_html.inc:53
-msgid "Green"
-msgstr "綠"
-
-#: ../inc/bbcode_html.inc:54
-msgid "Olive"
-msgstr "橄欖"
-
-#: ../inc/bbcode_html.inc:55
-msgid "Cyan"
-msgstr "藍綠"
-
-#: ../inc/bbcode_html.inc:56
-msgid "Blue"
-msgstr "藍"
-
-#: ../inc/bbcode_html.inc:57
-msgid "Dark Blue"
-msgstr "深藍"
-
-#: ../inc/bbcode_html.inc:58
-msgid "Indigo"
-msgstr "靛藍"
-
-#: ../inc/bbcode_html.inc:59
-msgid "Violet"
-msgstr "紫"
-
-#: ../inc/bbcode_html.inc:60
-msgid "Font size"
-msgstr "字體大小"
-
-#: ../inc/bbcode_html.inc:61
-msgid "Font size: [size=x-small]small text[/size]"
-msgstr "字體大小:[size=x-small]文字[/size]"
-
-#: ../inc/bbcode_html.inc:63
-msgid "Small"
-msgstr "小"
-
-#: ../inc/bbcode_html.inc:64
-msgid "Normal"
-msgstr "正常"
-
-#: ../inc/bbcode_html.inc:65
-msgid "Large"
-msgstr "大"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close all open bbCode tags"
-msgstr "關閉所有 bbCode 代碼"
-
-#: ../inc/bbcode_html.inc:68
-msgid "Close Tags"
-msgstr "關閉標籤"
-
-#. names for the above
-#: ../inc/forum.inc:38
-msgid "Oldest first"
-msgstr "舊文章顯示在前面"
-
-#: ../inc/forum.inc:39 ../inc/forum.inc:45
-msgid "Newest first"
-msgstr "新文章顯示在前面"
-
-#: ../inc/forum.inc:40
-msgid "Highest rated posts first"
-msgstr "最高評分的顯示在前面"
-
-#: ../inc/forum.inc:42
-msgid "Newest post first"
-msgstr "最新的文章顯示在前面"
-
-#: ../inc/forum.inc:43
-msgid "Most views first"
-msgstr "點閱次數最多的在前面"
-
-#: ../inc/forum.inc:44
-msgid "Most posts first"
-msgstr "回覆數量最多的在前面"
-
-#: ../inc/forum.inc:104
-msgid "Volunteer moderator"
-msgstr "志願者管理員"
-
-#: ../inc/forum.inc:105
-msgid "Project administrator"
-msgstr "專案主管"
-
-#: ../inc/forum.inc:106
-msgid "Project developer"
-msgstr "專案開發者"
-
-#: ../inc/forum.inc:107
-msgid "Project tester"
-msgstr "專案測試人員"
-
-#: ../inc/forum.inc:108
-msgid "Volunteer developer"
-msgstr "志願者開發人員"
-
-#: ../inc/forum.inc:109
-msgid "Volunteer tester"
-msgstr "志願者測試人員"
-
-#: ../inc/forum.inc:110
-msgid "Project scientist"
-msgstr "專案科學家"
-
-#: ../inc/forum.inc:111
-msgid "Help desk expert"
-msgstr "服務臺專家"
-
-#. Search
-#: ../inc/forum.inc:129
-msgid "Search for words in forum messages"
-msgstr "搜尋留言版中的訊息"
-
-#: ../inc/forum.inc:129
-msgid "Search forums"
-msgstr "搜尋討論版"
-
-#: ../inc/forum.inc:130
-msgid "Advanced search"
-msgstr "進階搜尋"
-
-#: ../inc/forum.inc:136 ../inc/user.inc:325 ../user/pm.php:69
-#: ../user/pm.php:138
-msgid "Private messages"
-msgstr "私人訊息"
-
-#: ../inc/forum.inc:155 ../user/forum_forum.php:74
-#: ../user/sample_index.php:128
-msgid "Questions and Answers"
-msgstr "問與答"
-
-#: ../inc/forum.inc:155 ../inc/forum.inc:187 ../inc/user.inc:321
-#: ../inc/user.inc:454 ../user/forum_forum.php:76 ../user/sample_index.php:127
-#: ../project.sample/project.inc:70
-msgid "Message boards"
-msgstr "留言版"
-
-#: ../inc/forum.inc:191 ../inc/forum.inc:199
-msgid "%1 message board"
-msgstr "%1 留言版"
-
-#: ../inc/forum.inc:249 ../inc/result.inc:717
-msgid "Previous"
-msgstr "上一個"
-
-#: ../inc/forum.inc:287 ../inc/result.inc:726
-msgid "Next"
-msgstr "下一個"
-
-#: ../inc/forum.inc:416 ../inc/forum.inc:1234 ../user/forum_forum.php:140
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-msgid "Author"
-msgstr "作者"
-
-#: ../inc/forum.inc:416 ../inc/pm.inc:86 ../user/forum_edit.php:128
-#: ../user/forum_edit.php:133 ../user/forum_post.php:120
-#: ../user/forum_reply.php:126 ../user/forum_report_post.php:79
-#: ../user/pm.php:90 ../user/pm.php:149
-msgid "Message"
-msgstr "訊息"
-
-#: ../inc/forum.inc:586
-msgid "Send message"
-msgstr "傳送 訊息"
-
-#: ../inc/forum.inc:586
-msgid "Send %1 a private message"
-msgstr "傳送私人訊息給 %1"
-
-#: ../inc/forum.inc:587
-msgid "Joined: %1"
-msgstr "加入時間:%1"
-
-#: ../inc/forum.inc:596
-msgid "Posts: %1"
-msgstr "文章:%1"
-
-#: ../inc/forum.inc:602
-msgid "Credit: %1"
-msgstr "積分:%1"
-
-#: ../inc/forum.inc:603
-msgid "RAC: %1"
-msgstr "近期平均績分:%1"
-
-#: ../inc/forum.inc:627
-msgid "You haven't read this message yet"
-msgstr "您尚未閱讀此訊息"
-
-#: ../inc/forum.inc:627
-msgid "Unread"
-msgstr "未讀"
-
-#: ../inc/forum.inc:630 ../inc/forum.inc:635 ../inc/forum.inc:736
-msgid "Message %1"
-msgstr "訊息%1"
-
-#: ../inc/forum.inc:631 ../inc/user.inc:409 ../user/forum_forum.php:178
-msgid "hidden"
-msgstr "隱藏"
-
-#: ../inc/forum.inc:632
-msgid "Posted: %1"
-msgstr "發表於:%1"
-
-#: ../inc/forum.inc:635
-msgid " - in response to "
-msgstr " - 回應於 "
-
-#: ../inc/forum.inc:638
-msgid "Edit"
-msgstr "編輯"
-
-#: ../inc/forum.inc:638
-msgid "Edit this message"
-msgstr "編輯此訊息"
-
-#: ../inc/forum.inc:644
-msgid "Last modified: %1"
-msgstr "最近修改日期:%1"
-
-#: ../inc/forum.inc:647
-msgid ""
-"This post is not shown because the sender is on your 'ignore' list.  Click "
-"%1here%2 to view this post"
-msgstr "這篇文章未能顯示是因為作者將您加到忽略列表裡。點擊%1這裡%2查看"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report this post as offensive"
-msgstr "檢舉違規文章"
-
-#: ../inc/forum.inc:675 ../inc/forum.inc:686
-msgid "Report as offensive"
-msgstr "檢舉違規"
-
-#: ../inc/forum.inc:679
-msgid "Rating: %1"
-msgstr "評分:%1"
-
-#: ../inc/forum.inc:679
-msgid "rate: "
-msgstr "評分:"
-
-#: ../inc/forum.inc:682
-msgid "Click if you like this message"
-msgstr "如果你喜歡此訊息請點擊"
-
-#: ../inc/forum.inc:682
-msgid "Rate +"
-msgstr "加分 +"
-
-#: ../inc/forum.inc:684
-msgid "Click if you don't like this message"
-msgstr "如果你不喜歡此訊息請點擊"
-
-#: ../inc/forum.inc:684
-msgid "Rate -"
-msgstr "扣分 -"
-
-#. "Reply" is used as a verb
-#: ../inc/forum.inc:693 ../user/pm.php:111 ../user/pm.php:151
-msgid "Reply"
-msgstr "回覆"
-
-#: ../inc/forum.inc:693
-msgid "Post a reply to this message"
-msgstr "回覆此訊息"
-
-#. "Quote" is used as a verb
-#: ../inc/forum.inc:696
-msgid "Quote"
-msgstr "引用"
-
-#: ../inc/forum.inc:696
-msgid "Post a reply by quoting this message"
-msgstr "回覆並引用此消息"
-
-#: ../inc/forum.inc:717
-msgid "Hidden by a moderator"
-msgstr "被管理員隱藏"
-
-#: ../inc/forum.inc:738
-msgid "Posted %1 by %2"
-msgstr "%2 發表於:%1 "
-
-#: ../inc/forum.inc:756
-msgid "You may not post or rate messages until %1"
-msgstr "你必須等到%1後才能回覆或給帖子評分"
-
-#: ../inc/forum.inc:767
-msgid ""
-"\n"
-"        <ul>\n"
-"        <li> Posts must be 'kid friendly': they may not contain\n"
-"            content that is obscene, hate-related,\n"
-"            sexually explicit or suggestive.\n"
-"        <li> No commercial advertisements.\n"
-"        <li> No links to web sites involving sexual content,\n"
-"            gambling, or intolerance of others.\n"
-"        <li> No messages intended to annoy or antagonize other people,\n"
-"            or to hijack a thread.\n"
-"        <li> No messages that are deliberately hostile or insulting.\n"
-"        <li> No abusive comments involving race, religion,\n"
-"            nationality, gender, class or sexuality.\n"
-"        "
-msgstr "\n        <ul>\n        <li> 文章內容必須兒童適宜:它們必須不包含\n            內容有關猥褻或仇恨相關,\n            色情或性暗示。\n        <li> 禁止商業廣告。\n        <li> 禁止連結到網站包含色情內容,\n            賭博, 或使他人感到不適的內容。\n        <li> 禁止打擾、挑釁其它用戶,\n            或破壞主題。\n        <li> 禁止有敵意或侮辱性的訊息。\n        <li> 禁止濫用評論涉及種族、宗教、\n            國籍、性別、階級或性。\n        "
-
-#: ../inc/forum.inc:799
-msgid "Rules:"
-msgstr "規定:"
-
-#: ../inc/forum.inc:800
-msgid "More info"
-msgstr "更多訊息"
-
-#: ../inc/forum.inc:1098 ../user/forum_thread.php:190
-msgid "Unhide"
-msgstr "取消隱藏"
-
-#: ../inc/forum.inc:1098
-msgid "Unhide this post"
-msgstr "取消隱藏文章"
-
-#: ../inc/forum.inc:1100 ../user/forum_thread.php:196
-msgid "Hide"
-msgstr "隱藏"
-
-#: ../inc/forum.inc:1100
-msgid "Hide this post"
-msgstr "隱藏這篇文章"
-
-#: ../inc/forum.inc:1105 ../user/forum_thread.php:229
-msgid "Move"
-msgstr "移動"
-
-#: ../inc/forum.inc:1105
-msgid "Move post to a different thread"
-msgstr "移動文章到其他主題"
-
-#: ../inc/forum.inc:1110
-msgid "Banish author"
-msgstr "封禁作者"
-
-#: ../inc/forum.inc:1117
-msgid "Vote to banish author"
-msgstr "投票封禁作者"
-
-#: ../inc/forum.inc:1121
-msgid "Vote not to banish author"
-msgstr "投票不要封禁作者"
-
-#: ../inc/forum.inc:1126
-msgid "Start vote to banish author"
-msgstr "開始投票封禁作者"
-
-#: ../inc/forum.inc:1131 ../inc/user.inc:312 ../user/forum_thread.php:243
-#: ../user/pm.php:112 ../user/pm.php:152
-msgid "Delete"
-msgstr "刪除"
-
-#: ../inc/forum.inc:1131
-msgid "Delete this post"
-msgstr "刪除文章"
-
-#: ../inc/forum.inc:1169
-msgid "Only team members can post to the team message board"
-msgstr "只有團隊成員才能在團隊的留言板中發文"
-
-#: ../inc/forum.inc:1179
-msgid ""
-"In order to create a new thread in %1 you must have a certain amount of "
-"credit. This is to prevent and protect against abuse of the system."
-msgstr "你必須在已經獲得了一定的積分後才能在 %1 發表一個新主題。這是為了防止對論壇系統的濫用。"
-
-#: ../inc/forum.inc:1186
-msgid ""
-"You cannot create any more threads right now. Please wait a while before "
-"trying again. This delay has been enforced to protect against abuse of the "
-"system."
-msgstr "您暫時不能發表更多的新主題。請稍後再試,這是為了防止對論壇系統的濫用而採取的延​​時。"
-
-#: ../inc/forum.inc:1193
-msgid ""
-"This thread is locked. Only forum moderators and administrators are allowed "
-"to post there."
-msgstr "此主題已被鎖定,只有論壇管理員能夠在該主題下發文。"
-
-#: ../inc/forum.inc:1198
-msgid "Can't post to a hidden thread."
-msgstr "不能回覆隱藏主題"
-
-#: ../inc/forum.inc:1232
-msgid "Thread"
-msgstr "主題"
-
-#: ../inc/forum.inc:1233 ../inc/team.inc:140 ../user/forum_forum.php:139
-#: ../user/forum_index.php:99
-msgid "Posts"
-msgstr "文章"
-
-#: ../inc/forum.inc:1235 ../user/forum_forum.php:141
-msgid "Views"
-msgstr "瀏覽數"
-
-#: ../inc/forum.inc:1236 ../inc/team.inc:140 ../user/forum_forum.php:142
-#: ../user/forum_help_desk.php:48 ../user/forum_index.php:100
-msgid "Last post"
-msgstr "最新的文章"
-
-#: ../inc/forum.inc:1294
-msgid "New posts in the thread %1"
-msgstr "主題 %1 的新回覆"
-
-#: ../inc/forum.inc:1299
-msgid "New posts in subscribed thread"
-msgstr "已訂閱主題的新回覆"
-
-#: ../inc/forum.inc:1300
-msgid "There are new posts in the thread '%1'"
-msgstr "主題 “%1” 有新回覆"
-
-#: ../inc/forum.inc:1310
-msgid "Mark all threads as read"
-msgstr "標示所有已閱讀的文章"
-
-#: ../inc/forum.inc:1311
-msgid "Mark all threads in all message boards as read."
-msgstr "標記留言板的所有主題為已閱讀。"
-
-#: ../inc/host.inc:25
-msgid "No host"
-msgstr "沒有主機"
-
-#: ../inc/host.inc:27
-msgid "Unavailable"
-msgstr "無法使用"
-
-#: ../inc/host.inc:56 ../inc/prefs.inc:665 ../inc/prefs_util.inc:547
-msgid "Home"
-msgstr "家庭"
-
-#: ../inc/host.inc:57 ../inc/prefs.inc:666 ../inc/prefs_util.inc:549
-#: ../user/server_status.php:142
-msgid "Work"
-msgstr "任務"
-
-#: ../inc/host.inc:58 ../inc/prefs.inc:667 ../inc/prefs_util.inc:548
-msgid "School"
-msgstr "學校"
-
-#: ../inc/host.inc:60 ../user/edit_forum_preferences_form.php:161
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Update"
-msgstr "更新"
-
-#: ../inc/host.inc:84
-msgid "Computer information"
-msgstr "電腦訊息"
-
-#: ../inc/host.inc:88 ../inc/host.inc:93
-msgid "IP address"
-msgstr "IP位址"
-
-#: ../inc/host.inc:88
-msgid "(same the last %1 times)"
-msgstr "(與最新的%1次一樣)"
-
-#: ../inc/host.inc:90
-msgid "External IP address"
-msgstr "外部IP位址"
-
-#: ../inc/host.inc:93
-msgid "Show IP address"
-msgstr "表示IP地址"
-
-#: ../inc/host.inc:95
-msgid "Domain name"
-msgstr "網域名稱"
-
-#: ../inc/host.inc:97
-msgid "Product name"
-msgstr "產品名稱"
-
-#: ../inc/host.inc:101
-msgid "Local Standard Time"
-msgstr "當地標準時間"
-
-#: ../inc/host.inc:101
-msgid "UTC %1 hours"
-msgstr "UCT %1 小時"
-
-#: ../inc/host.inc:105 ../inc/host.inc:107 ../inc/host.inc:222
-msgid "Owner"
-msgstr "用戶"
-
-#: ../inc/host.inc:107 ../inc/host.inc:360
-msgid "Anonymous"
-msgstr "匿名"
-
-#: ../inc/host.inc:111 ../inc/result.inc:634 ../user/apps.php:56
-msgid "Created"
-msgstr "建立日期"
-
-#: ../inc/host.inc:112 ../inc/host.inc:226 ../inc/host.inc:231
-#: ../inc/host.inc:686 ../inc/team.inc:110 ../inc/team.inc:229
-#: ../inc/team.inc:234 ../inc/team.inc:236 ../inc/team.inc:378
-#: ../inc/team.inc:383 ../inc/user.inc:126 ../inc/user.inc:139
-#: ../user/profile_search_action.php:45
-#: ../user/team_change_founder_form.php:80 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:43 ../user/top_users.php:54
-#: ../user/top_users.php:59 ../user/user_search.php:125
-msgid "Total credit"
-msgstr "總積分"
-
-#: ../inc/host.inc:113 ../inc/user.inc:126 ../user/team_search.php:83
-#: ../user/user_search.php:124
-msgid "Average credit"
-msgstr "平均積分"
-
-#: ../inc/host.inc:115
-msgid "Cross project credit"
-msgstr "跨專案積分"
-
-#: ../inc/host.inc:117
-msgid "CPU type"
-msgstr "CPU 類型"
-
-#: ../inc/host.inc:118
-msgid "Number of processors"
-msgstr "處理器數量"
-
-#: ../inc/host.inc:120
-msgid "Coprocessors"
-msgstr "協同處理器"
-
-#: ../inc/host.inc:122 ../inc/host.inc:692
-msgid "Operating System"
-msgstr "作業系統"
-
-#: ../inc/host.inc:125 ../inc/host.inc:235
-msgid "BOINC version"
-msgstr "BOINC 版本"
-
-#: ../inc/host.inc:129 ../inc/prefs.inc:237
-msgid "Memory"
-msgstr "記憶體"
-
-#: ../inc/host.inc:129 ../inc/host.inc:139
-msgid "%1 MB"
-msgstr "%1 MB"
-
-#: ../inc/host.inc:133
-msgid "Cache"
-msgstr "Cache"
-
-#: ../inc/host.inc:133
-msgid "%1 KB"
-msgstr "%1 KB"
-
-#: ../inc/host.inc:139
-msgid "Swap space"
-msgstr "交換區域"
-
-#: ../inc/host.inc:142
-msgid "Total disk space"
-msgstr "總硬碟容量"
-
-#: ../inc/host.inc:142 ../inc/host.inc:145
-msgid "%1 GB"
-msgstr "%1 GB"
-
-#: ../inc/host.inc:145
-msgid "Free Disk Space"
-msgstr "可用的硬碟空間"
-
-#: ../inc/host.inc:149
-msgid "Measured floating point speed"
-msgstr "浮點運算速度"
-
-#: ../inc/host.inc:149 ../inc/host.inc:152
-msgid "%1 million ops/sec"
-msgstr "%1 百萬次運算/秒"
-
-#: ../inc/host.inc:152
-msgid "Measured integer speed"
-msgstr "整數運算速度"
-
-#: ../inc/host.inc:156 ../inc/host.inc:158
-msgid "Average upload rate"
-msgstr "平均上傳速度"
-
-#: ../inc/host.inc:156 ../inc/host.inc:163
-msgid "%1 KB/sec"
-msgstr "%1 Kb/s"
-
-#: ../inc/host.inc:158 ../inc/host.inc:165 ../inc/result.inc:216
-#: ../inc/result.inc:226 ../inc/result.inc:244 ../inc/result.inc:262
-#: ../inc/result.inc:278 ../user/explain_state.php:56
-#: ../user/host_app_versions.php:30
-msgid "Unknown"
-msgstr "未知"
-
-#: ../inc/host.inc:163 ../inc/host.inc:165
-msgid "Average download rate"
-msgstr "平均下載速度"
-
-#: ../inc/host.inc:168 ../user/host_app_versions.php:65
-msgid "Average turnaround time"
-msgstr "平均任務周轉時間"
-
-#: ../inc/host.inc:168 ../user/forum_search.php:48 ../user/forum_search.php:49
-#: ../user/forum_search.php:50 ../user/forum_search.php:51
-msgid "%1 days"
-msgstr "%1 天"
-
-#: ../inc/host.inc:169
-msgid "Application details"
-msgstr "程式詳細資料"
-
-#: ../inc/host.inc:170
-msgid "Show"
-msgstr "查看"
-
-#: ../inc/host.inc:180 ../inc/host.inc:341 ../inc/user.inc:155
-msgid "Tasks"
-msgstr "任務"
-
-#: ../inc/host.inc:184 ../inc/host.inc:206
-msgid "Number of times client has contacted server"
-msgstr "客戶端連接服務端的次數"
-
-#: ../inc/host.inc:185
-msgid "Last time contacted server"
-msgstr "最後一次連接伺服器的時間"
-
-#: ../inc/host.inc:186
-msgid "Fraction of time BOINC is running"
-msgstr "BOINC執行的時間比例"
-
-#: ../inc/host.inc:188
-msgid ""
-"While BOINC is running, fraction of time computer has an Internet connection"
-msgstr "BOINC在執行時,計算機有網際網路連線的時間比例"
-
-#: ../inc/host.inc:190
-msgid "While BOINC is running, fraction of time computing is allowed"
-msgstr "BOINC在執行時,允許計算的時間比例"
-
-#: ../inc/host.inc:191
-msgid "While is BOINC running, fraction of time GPU computing is allowed"
-msgstr "BOINC在執行時,允許GPU計算的時間比例"
-
-#: ../inc/host.inc:193
-msgid "Average CPU efficiency"
-msgstr "平均 CPU 效率"
-
-#: ../inc/host.inc:196
-msgid "Task duration correction factor"
-msgstr "任務持續修正的原因"
-
-#: ../inc/host.inc:198 ../inc/host.inc:679
-msgid "Location"
-msgstr "位置"
-
-#: ../inc/host.inc:200
-msgid "Delete this computer"
-msgstr "刪除此電腦"
-
-#: ../inc/host.inc:204
-msgid "Merge duplicate records of this computer"
-msgstr "合併此電腦的重覆記錄"
-
-#: ../inc/host.inc:204
-msgid "Merge"
-msgstr "合併"
-
-#: ../inc/host.inc:207 ../inc/host.inc:694
-msgid "Last contact"
-msgstr "最後聯繫時間"
-
-#: ../inc/host.inc:220
-msgid "Computer info"
-msgstr "電腦訊息"
-
-#: ../inc/host.inc:221 ../inc/host.inc:681 ../inc/team.inc:371
-#: ../user/top_users.php:48
-msgid "Rank"
-msgstr "排行"
-
-#: ../inc/host.inc:225 ../inc/host.inc:684
-msgid "Avg. credit"
-msgstr "平均積分"
-
-#: ../inc/host.inc:230 ../inc/team.inc:111 ../inc/team.inc:230
-#: ../inc/team.inc:239 ../inc/team.inc:241 ../inc/team.inc:377
-#: ../inc/team.inc:382 ../inc/user.inc:140
-#: ../user/team_change_founder_form.php:81 ../user/team_email_list.php:73
-#: ../user/team_remove_inactive_form.php:44 ../user/top_users.php:53
-#: ../user/top_users.php:58
-msgid "Recent average credit"
-msgstr "最近平均積分"
-
-#: ../inc/host.inc:236 ../inc/host.inc:689 ../inc/result.inc:51
-#: ../user/host_app_versions.php:25
-msgid "CPU"
-msgstr "CPU"
-
-#: ../inc/host.inc:237 ../inc/host.inc:690
-msgid "GPU"
-msgstr "GPU"
-
-#: ../inc/host.inc:238
-msgid "Operating system"
-msgstr "作業系統"
-
-#: ../inc/host.inc:320
-msgid "(%1 processors)"
-msgstr "(%1 核心)"
-
-#: ../inc/host.inc:340
-msgid "Details"
-msgstr "細節"
-
-#: ../inc/host.inc:345
-msgid "Cross-project stats:"
-msgstr "跨專案的統計訊息:"
-
-#: ../inc/host.inc:520
-msgid "Host %1 has overlapping lifetime:"
-msgstr "主機 %1 的活躍期有重疊:"
-
-#: ../inc/host.inc:527
-msgid "Host %1 has an incompatible OS:"
-msgstr "主機 %1 的作業系統不相容"
-
-#: ../inc/host.inc:533
-msgid "Host %1 has an incompatible CPU:"
-msgstr "主機 %1 的 CPU 不相容"
-
-#: ../inc/host.inc:600
-msgid "same host"
-msgstr "相同的主機"
-
-#: ../inc/host.inc:603
-msgid "Can't merge host %1 into %2 - they're incompatible"
-msgstr "無法將主機 %1 合併到主機%2 - 主機不相容"
-
-#: ../inc/host.inc:606
-msgid "Merging host %1 into host %2"
-msgstr "正在將主機 %1 合併到主機 %2"
-
-#: ../inc/host.inc:623
-msgid "Couldn't update credit of new computer"
-msgstr "無法從新電腦更新積分"
-
-#: ../inc/host.inc:627
-msgid "Couldn't update results"
-msgstr "無法上傳任務"
-
-#: ../inc/host.inc:632
-msgid "Couldn't retire old computer"
-msgstr "無法移除舊電腦"
-
-#: ../inc/host.inc:634
-msgid "Retired old computer %1"
-msgstr "已移除舊電腦 %1"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Show:"
-msgstr "顯示:"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "All computers"
-msgstr "所有電腦"
-
-#: ../inc/host.inc:657 ../inc/host.inc:660
-msgid "Only computers active in past 30 days"
-msgstr "只顯示過去30天內活躍的電腦"
-
-#: ../inc/host.inc:671 ../inc/result.inc:642
-msgid "Computer ID"
-msgstr "電腦 ID"
-
-#: ../inc/host.inc:687
-msgid "BOINC<br>version"
-msgstr "BOINC<br>版本"
-
-#: ../inc/host.inc:750 ../user/merge_by_name.php:65
-msgid "Merge computers by name"
-msgstr "透過名稱合併電腦"
-
-#: ../inc/language_names.inc:62
-msgid "Browser default"
-msgstr "瀏覽器預設值"
-
-#: ../inc/news.inc:40
-msgid "Comment"
-msgstr "意見"
-
-#: ../inc/news.inc:111
-#, php-format
-msgid "News is available as an %sRSS feed%s"
-msgstr "透過%sRSS訂閱%s閱讀新聞"
-
-#: ../inc/pm.inc:25 ../inc/pm.inc:176 ../user/pm.php:69 ../user/pm.php:153
-msgid "Inbox"
-msgstr "信箱"
-
-#: ../inc/pm.inc:26 ../inc/pm.inc:180
-msgid "Write"
-msgstr "寫信"
-
-#: ../inc/pm.inc:33 ../inc/user.inc:458
-msgid "Send private message"
-msgstr "傳送私人訊息"
-
-#: ../inc/pm.inc:35 ../inc/pm.inc:37 ../inc/pm.inc:89
-#: ../user/ffmail_form.php:58 ../user/forum_edit.php:99
-#: ../user/forum_edit.php:101 ../user/forum_edit.php:145
-#: ../user/forum_post.php:65 ../user/forum_post.php:91
-#: ../user/forum_post.php:93 ../user/forum_post.php:134
-#: ../user/forum_reply.php:77 ../user/forum_reply.php:110
-#: ../user/forum_reply.php:115 ../user/forum_reply.php:171 ../user/pm.php:186
-msgid "Preview"
-msgstr "預覽"
-
-#: ../inc/pm.inc:48 ../user/pm.php:136
-msgid "no such message"
-msgstr "訊息不存在"
-
-#: ../inc/pm.inc:82
-msgid "To"
-msgstr "收件人"
-
-#: ../inc/pm.inc:82
-msgid "User IDs or unique usernames, separated with commas"
-msgstr "用戶 ID 或唯一的用戶名,多個收件人之間用逗號分開"
-
-#: ../inc/pm.inc:85 ../user/pm.php:90 ../user/pm.php:144
-msgid "Subject"
-msgstr "標題"
-
-#: ../inc/pm.inc:89
-msgid "Send message"
-msgstr "傳送訊息"
-
-#: ../inc/pm.inc:122
-msgid "sent you a private message; subject:"
-msgstr "給你發送了一條私人訊息,標題:"
-
-#: ../inc/pm.inc:129
-msgid "Private message%1 from %2, subject:"
-msgstr "私人訊息 %1 來自 %2,標題:"
-
-#: ../inc/pm.inc:137
-msgid "Couldn't create message"
-msgstr "無法建立訊息"
-
-#: ../inc/pm.inc:168
-msgid ""
-"You are not allowed to send privates messages so often. Please wait some "
-"time before sending more messages."
-msgstr "你傳送訊息的間隔時間太短,請等待一段時間再發送更多的訊息。"
-
-#: ../inc/pm.inc:178 ../user/forum_forum.php:190
-msgid "unread"
-msgstr "未讀"
-
-#: ../inc/pm.inc:188
-msgid "For email notification, %1edit community prefs%2"
-msgstr "如需要電子郵件通知,請 %1 編輯社區偏好設定 %2。"
-
-#: ../inc/pm.inc:204
-msgid "Private message"
-msgstr "私人訊息"
-
-#: ../inc/prefs.inc:45 ../inc/prefs.inc:187
-msgid "Usage limits"
-msgstr "使用限制"
-
-#: ../inc/prefs.inc:47 ../inc/prefs.inc:55
-msgid "Use at most"
-msgstr "最多只使用"
-
-#: ../inc/prefs.inc:49
-#, no-php-format
-msgid ""
-"Keep some CPUs free for other applications. Example: 75% means use 6 cores "
-"on an 8-core CPU."
-msgstr "保留CPU給其他程式使用。例如: 75% 表示在 8 核心系統中使用 6 核心運算"
-
-#: ../inc/prefs.inc:52
-#, no-php-format
-msgid "% of the CPUs"
-msgstr "% CPU核心"
-
-#: ../inc/prefs.inc:57
-#, no-php-format
-msgid ""
-"Suspend/resume computing every few seconds to reduce CPU temperature and "
-"energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, "
-"and repeat."
-msgstr "週期內自動暫停/繼續運算以達到降低CPU溫度及能源消耗。例如: 75% 表示每運算 3 秒,休息 1 秒,並重複循環。"
-
-#: ../inc/prefs.inc:60
-#, no-php-format
-msgid "% of CPU time"
-msgstr "% CPU時間"
-
-#: ../inc/prefs.inc:62 ../inc/prefs.inc:208
-msgid "When to suspend"
-msgstr "何時暫停"
-
-#: ../inc/prefs.inc:64
-msgid "Suspend when computer is on battery"
-msgstr "當電腦使用電池時暫停"
-
-#: ../inc/prefs.inc:65
-msgid ""
-"Check this to suspend computing on portables when running on battery power."
-msgstr "當筆記型電腦使用電池時暫停運算。"
-
-#: ../inc/prefs.inc:70
-msgid "Suspend when computer is in use"
-msgstr "當電腦使用時暫停"
-
-#: ../inc/prefs.inc:71
-msgid ""
-"Check this to suspend computing and file transfers when you're using the "
-"computer."
-msgstr "當您正在使用電腦時暫停運算及檔案傳輸。"
-
-#: ../inc/prefs.inc:76
-msgid "Suspend GPU computing when computer is in use"
-msgstr "當電腦使用時暫停GPU運算"
-
-#: ../inc/prefs.inc:77
-msgid "Check this to suspend GPU computing when you're using the computer."
-msgstr "當您正在使電腦時暫停GPU運算。"
-
-#: ../inc/prefs.inc:82
-msgid "'In use' means mouse/keyboard input in last"
-msgstr "'使用中'代表滑鼠/鍵盤仍有操作"
-
-#: ../inc/prefs.inc:83
-msgid "This determines when the computer is considered 'in use'."
-msgstr "用於判斷電腦是否於'使用中'。"
-
-#: ../inc/prefs.inc:85 ../inc/prefs.inc:92 ../inc/prefs.inc:122
-msgid "minutes"
-msgstr "分鐘"
-
-#: ../inc/prefs.inc:89
-msgid "Suspend when no mouse/keyboard input in last"
-msgstr "如果在最近的多少分鐘內無滑鼠或鍵盤操作則暫停計算"
-
-#: ../inc/prefs.inc:90
-msgid "This allows some computers to enter low-power mode when not in use."
-msgstr "這將使得一些計算機在不使用時進入低功耗模式。"
-
-#: ../inc/prefs.inc:95
-msgid "Suspend when non-BOINC CPU usage is above"
-msgstr "暫停當非 BOINC 的 CPU 使用率高於"
-
-#: ../inc/prefs.inc:96
-msgid "Suspend computing when your computer is busy running other programs."
-msgstr "當電腦正忙於其他程式時暫停運算。"
-
-#: ../inc/prefs.inc:101
-msgid "Compute only between"
-msgstr "運算只從"
-
-#: ../inc/prefs.inc:102
-msgid "Compute only during a particular period each day."
-msgstr "僅在每天特定時段運算。"
-
-#: ../inc/prefs.inc:105 ../inc/prefs.inc:214
-#: ../user/forum_banishment_vote.php:70
-#: ../user/forum_banishment_vote_action.php:65
-#: ../user/forum_moderate_post.php:63 ../user/forum_moderate_thread.php:61
-msgid "Other"
-msgstr "其他"
-
-#: ../inc/prefs.inc:107
-msgid "Store at least"
-msgstr "儲存至少"
-
-#: ../inc/prefs.inc:108
-msgid "Store at least enough tasks to keep the computer busy for this long."
-msgstr "預先下載足夠的任務以保持電腦持續運算。"
-
-#: ../inc/prefs.inc:110 ../inc/prefs.inc:116
-msgid "days of work"
-msgstr "天的任務"
-
-#: ../inc/prefs.inc:113
-msgid "Store up to an additional"
-msgstr "儲存多於"
-
-#: ../inc/prefs.inc:114
-msgid ""
-"Store additional tasks above the minimum level.  Determines how much work is"
-" requested when contacting a project."
-msgstr "儲存高於設定最小值的任務。用於判斷每次聯繫專案取得任務的多寡。"
-
-#: ../inc/prefs.inc:119
-msgid "Switch between tasks about every"
-msgstr "切換任務每"
-
-#: ../inc/prefs.inc:120
-msgid "If you run several projects, BOINC may switch between them this often."
-msgstr "如果您有參與許多專案,BOINC 可能會切換執行。"
-
-#: ../inc/prefs.inc:125
-msgid "Request tasks to checkpoint at most every"
-msgstr "要求任務最多每"
-
-#: ../inc/prefs.inc:126
-msgid ""
-"This controls how often tasks save their state to disk, so that they can be "
-"restarted later."
-msgstr "控制任務寫入狀態到硬碟的週期,方便它們在未來重新啟動。"
-
-#: ../inc/prefs.inc:128
-msgid "seconds"
-msgstr "秒"
-
-#: ../inc/prefs.inc:136 ../inc/prefs.inc:148
-msgid "Use no more than"
-msgstr "使用不會超過"
-
-#: ../inc/prefs.inc:137
-msgid "Limit the total amount of disk space used by BOINC."
-msgstr "限制 BOINC 使用硬碟空間。"
-
-#: ../inc/prefs.inc:139
-msgid "GB"
-msgstr "GB"
-
-#: ../inc/prefs.inc:142
-msgid "Leave at least"
-msgstr "留下至少"
-
-#: ../inc/prefs.inc:143
-msgid ""
-"Limit disk usage to leave this much free space on the volume where BOINC "
-"stores data."
-msgstr "限制 BOINC 儲存資料並保留可用空間。"
-
-#: ../inc/prefs.inc:145
-msgid "GB free"
-msgstr "GB 的空間"
-
-#: ../inc/prefs.inc:149
-msgid ""
-"Limit the percentage of disk space used by BOINC on the volume where it "
-"stores data."
-msgstr "限制 BOINC 儲存資料所佔用硬碟空間百分比。"
-
-#: ../inc/prefs.inc:152
-#, no-php-format
-msgid "% of total"
-msgstr "%"
-
-#: ../inc/prefs.inc:158
-msgid "When computer is in use, use at most"
-msgstr "當電腦使用時,最多占用"
-
-#: ../inc/prefs.inc:159
-msgid "Limit the memory used by BOINC when you're using the computer."
-msgstr "當您使用電腦時限制 BOINC 記憶體使用量。"
-
-#: ../inc/prefs.inc:162 ../inc/prefs.inc:169 ../inc/prefs.inc:182
-#, no-php-format
-msgid "%"
-msgstr "%"
-
-#: ../inc/prefs.inc:165
-msgid "When computer is not in use, use at most"
-msgstr "當電腦閒置時,最多占用"
-
-#: ../inc/prefs.inc:166
-msgid "Limit the memory used by BOINC when you're not using the computer."
-msgstr "限制電腦閒置時 BOINC 記憶體使用量。"
-
-#: ../inc/prefs.inc:172
-msgid "Leave non-GPU tasks in memory while suspended"
-msgstr "暫停時保留非 GPU 任務於記憶體中"
-
-#: ../inc/prefs.inc:173
-msgid ""
-"If checked, suspended tasks stay in memory, and resume with no work lost. If"
-" unchecked, suspended tasks are removed from memory, and resume from their "
-"last checkpoint."
-msgstr "勾選後暫停時將保留任務於記憶體中,並不會遺失進度。非勾選則暫停時將會從記憶體消除,只保留進度到最新的檢查點。"
-
-#: ../inc/prefs.inc:178
-msgid "Page/swap file: use at most"
-msgstr "分頁/交換檔:最多使用"
-
-#: ../inc/prefs.inc:179
-msgid "Limit the swap space (page file) used by BOINC."
-msgstr "限制 BOINC 使用的交換空間(分頁檔)"
-
-#: ../inc/prefs.inc:189
-msgid "Limit download rate to"
-msgstr "限制下載速率"
-
-#: ../inc/prefs.inc:190
-msgid "Limit the download rate of file transfers."
-msgstr "限制檔案下載速率。"
-
-#: ../inc/prefs.inc:192 ../inc/prefs.inc:198
-msgid "KB/second"
-msgstr "Kb/s"
-
-#: ../inc/prefs.inc:195
-msgid "Limit upload rate to"
-msgstr "限制上傳速率"
-
-#: ../inc/prefs.inc:196
-msgid "Limit the upload rate of file transfers."
-msgstr "限制檔案上傳速率。"
-
-#: ../inc/prefs.inc:201
-msgid "Limit usage to"
-msgstr "限制傳送數據"
-
-#: ../inc/prefs.inc:202
-msgid "Example: BOINC should transfer at most 2000 MB of data every 30 days."
-msgstr "例如: BOINC 能在每30天傳送2000MB的數據。"
-
-#: ../inc/prefs.inc:205
-msgid "MB every"
-msgstr "MB 每"
-
-#: ../inc/prefs.inc:206 ../inc/util.inc:303
-msgid "days"
-msgstr "天"
-
-#: ../inc/prefs.inc:210
-msgid "Transfer files only between"
-msgstr "檔案傳輸將從"
-
-#: ../inc/prefs.inc:211
-msgid "Transfer files only during a particular period each day."
-msgstr "僅在每天特定時段傳輸檔案。"
-
-#: ../inc/prefs.inc:216
-msgid "Skip data verification for image files"
-msgstr "略過圖檔驗證"
-
-#: ../inc/prefs.inc:217
-msgid ""
-"Check this only if your Internet provider modifies image files. Skipping "
-"verification reduces the security of BOINC."
-msgstr "建議僅在您的網路供應商會修改圖檔時使用。略過驗證會降低 BOINC 的安全性。"
-
-#: ../inc/prefs.inc:222
-msgid "Confirm before connecting to Internet"
-msgstr "連線前確認"
-
-#: ../inc/prefs.inc:223 ../inc/prefs.inc:229
-msgid "Useful only if you have a modem, ISDN or VPN connection."
-msgstr "適用於數據機, ISDN 或 VPN 連線。"
-
-#: ../inc/prefs.inc:228
-msgid "Disconnect when done"
-msgstr "完成後斷線"
-
-#: ../inc/prefs.inc:235 ../user/explain_state.php:94
-msgid "Computing"
-msgstr "運算"
-
-#: ../inc/prefs.inc:236
-msgid "Disk"
-msgstr "硬碟空間"
-
-#: ../inc/prefs.inc:238
-msgid "Network"
-msgstr "網路"
-
-#. These texts are used in multiple places in prefs_edit.php and add_venue.php
-#: ../inc/prefs.inc:241
-msgid ""
-"These preferences apply to all the BOINC projects in which you participate."
-msgstr "這些偏好設定對你參加的所有 BOINC 專案均有效。"
-
-#: ../inc/prefs.inc:244
-msgid ""
-"%1Unable to update preferences.%2 The values marked in red below were out of"
-" range or not numeric."
-msgstr "%1無法更新偏好設定。 %2下面標紅的為超出範圍的或類型錯誤的數值。"
-
-#: ../inc/prefs.inc:472
-msgid "computing"
-msgstr "計算中"
-
-#: ../inc/prefs.inc:483
-msgid "Separate preferences for %1"
-msgstr "用於%1環境的偏好設定"
-
-#: ../inc/prefs.inc:493 ../inc/prefs.inc:528 ../inc/prefs_project.inc:291
-msgid "Edit preferences"
-msgstr "編輯偏好設定"
-
-#: ../inc/prefs.inc:494 ../user/edit_forum_preferences_form.php:149
-#: ../user/team_admins.php:36
-msgid "Remove"
-msgstr "移除"
-
-#: ../inc/prefs.inc:499
-msgid "Add separate preferences for %1"
-msgstr "新增%1環境的偏好設定"
-
-#: ../inc/prefs.inc:506
-msgid "These settings apply to all computers using this account except"
-msgstr "這些設定適用於所有使用此帳戶的計算機,除非"
-
-#: ../inc/prefs.inc:508
-msgid ""
-"computers where you have set preferences locally using the BOINC Manager"
-msgstr "計算機設定了本地BOINC管理器的首選項"
-
-#: ../inc/prefs.inc:510
-msgid "Android devices"
-msgstr "Android裝置"
-
-#: ../inc/prefs.inc:513
-msgid "(Switch view)"
-msgstr "(切換顯示)"
-
-#: ../inc/prefs.inc:515 ../inc/prefs_project.inc:272
-msgid "Combined preferences"
-msgstr "以合併的偏好設定"
-
-#: ../inc/prefs.inc:522 ../inc/prefs_project.inc:283
-msgid "Primary (default) preferences"
-msgstr "預設的偏好設定"
-
-#: ../inc/prefs.inc:537
-msgid "Preferences last modified:"
-msgstr "最後修改日期:"
-
-#: ../inc/prefs.inc:553
-msgid "Add preferences"
-msgstr "新增偏好設定"
-
-#: ../inc/prefs.inc:557
-msgid "Update preferences"
-msgstr "更新偏好設定"
-
-#: ../inc/prefs.inc:628 ../project.sample/project_specific_prefs.inc:84
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "yes"
-msgstr "是"
-
-#: ../inc/prefs.inc:630 ../project.sample/project_specific_prefs.inc:86
-#: ../project.sample/project_specific_prefs.inc:224
-msgid "no"
-msgstr "否"
-
-#. TODO: make this a subclass of PREF
-#: ../inc/prefs.inc:638
-msgid "Default computer location"
-msgstr "預設的電腦位置"
-
-#: ../inc/prefs.inc:639
-msgid ""
-"New computers will use this location for computing and project preferences."
-msgstr "新的計算機將使用此位置作為計算和專案的首選項。"
-
-#: ../inc/prefs_project.inc:52
-msgid "Resource share"
-msgstr "資源分享"
-
-#: ../inc/prefs_project.inc:53
-msgid ""
-"Determines the proportion of your computer's resources allocated to this "
-"project. For example, if you participate in two BOINC projects with resource"
-" shares of 100 and 200, the first will get 1/3 of your resources and the "
-"second will get 2/3."
-msgstr "該設定決定你的計算機分配給本專案的資源比例。舉例:你參加了兩個專案,其資源分享率分別是 100 和 200,則第一個專案將得到 1/3 的計算資源,第二個專案將得到 2/3。"
-
-#: ../inc/prefs_project.inc:61
-msgid "Accelerate GPU tasks by dedicating a CPU to each one?"
-msgstr "給每個 GPU 任務保留一個 CPU 內核?"
-
-#: ../inc/prefs_project.inc:70
-msgid "Use CPU"
-msgstr "使用CPU"
-
-#: ../inc/prefs_project.inc:79
-msgid "Use ATI GPU"
-msgstr "使用ATI GPU"
-
-#: ../inc/prefs_project.inc:88
-msgid "Use NVIDIA GPU"
-msgstr "使用NVIDIA GPU"
-
-#: ../inc/prefs_project.inc:97
-msgid "Use Intel GPU"
-msgstr "使用Intel GPU"
-
-#: ../inc/prefs_project.inc:107
-msgid "Run test applications?"
-msgstr "允許執行測試版程式?"
-
-#: ../inc/prefs_project.inc:108
-msgid ""
-"This helps us develop applications, but may cause jobs to fail on your "
-"computer"
-msgstr "這能幫助我們開發程式,但可能造成您電腦上的任務失敗"
-
-#: ../inc/prefs_project.inc:115
-msgid ""
-"Emails will be sent from %1; make sure your spam filter accepts this "
-"address."
-msgstr "電子郵件將從 %1 發送,請確保您的垃圾郵件過濾器不會過濾這個地址。"
-
-#: ../inc/prefs_project.inc:123
-msgid "Is it OK for %1 and your team (if any) to email you?"
-msgstr "是否允許 %1 和您所在的團隊傳送電子郵件給您?"
-
-#: ../inc/prefs_project.inc:130
-msgid "Should %1 show your computers on its web site?"
-msgstr "%1 是否可以將您的電腦顯示在它的網站上?"
-
-#: ../inc/prefs_project.inc:270
-msgid "(Switch View)"
-msgstr "(切換視圖)"
-
-#: ../inc/prefs_project.inc:276
-msgid "Project specific settings"
-msgstr "專案特定的偏好設定"
-
-#: ../inc/prefs_util.inc:33
-msgid "bad venue: %1"
-msgstr "錯誤的偏好設定位置:%1"
-
-#: ../inc/prefs_util.inc:39
-msgid "bad subset: %1"
-msgstr "錯誤的偏好設定子集:%1"
-
-#: ../inc/prefs_util.inc:476 ../inc/prefs_util.inc:500
-msgid "and"
-msgstr "和"
-
-#: ../inc/profile.inc:86
-msgid ""
-"Your profile will be made visible to other people as soon as it has been "
-"approved by the project. This may take up to a few days."
-msgstr "你的用戶檔案在經過審核後就可以被其他用戶看到,這可能需要幾天的時間。"
-
-#: ../inc/profile.inc:92
-msgid ""
-"Your profile has been marked as unacceptable. It is not visible to other "
-"people. Please change it."
-msgstr "你的用戶檔案已標識為不核准,其他用戶也將無法查看,請進行適當的修改。"
-
-#: ../inc/profile.inc:172 ../user/friend.php:107 ../user/friend.php:174
-msgid "Database error"
-msgstr "資料庫錯誤"
-
-#: ../inc/profile.inc:193
-msgid ""
-"To prevent spam, profiles of users with an average credit of less than %1 "
-"are displayed only to logged-in users. We apologize for this inconvenience."
-msgstr "為了防止垃圾訊息,平均積分低於 %1 的用戶檔案將只能被已登入的用戶看到,由此帶來的不便之處我們很抱歉。"
-
-#: ../inc/profile.inc:197
-msgid "User is banished"
-msgstr "用戶已禁言"
-
-#: ../inc/profile.inc:211
-msgid "No profile exists for that user ID."
-msgstr "沒有和此用戶 ID 對應的用戶檔案訊息。"
-
-#: ../inc/profile.inc:219 ../user/create_profile.php:317
-msgid "Edit your profile"
-msgstr "編輯您的用戶檔案"
-
-#: ../inc/profile.inc:262
-msgid "Your feedback on this profile"
-msgstr "您對此用戶檔案的意見"
-
-#: ../inc/profile.inc:264
-msgid "Recommend this profile for User of the Day:"
-msgstr "推薦此用戶檔案成為本日用戶:"
-
-#: ../inc/profile.inc:265
-msgid "I %1like%2 this profile"
-msgstr "我%1喜歡%2這個用戶檔案"
-
-#: ../inc/profile.inc:268
-msgid "Alert administrators to an offensive profile:"
-msgstr "向管理員舉報有冒犯性的用戶檔案:"
-
-#: ../inc/profile.inc:269
-msgid "I %1do not like%2 this profile"
-msgstr "我%1不喜歡%2這個用戶檔案"
-
-#: ../inc/result.inc:35
-msgid "Anonymous platform"
-msgstr "匿名平台"
-
-#: ../inc/result.inc:53 ../user/host_app_versions.php:26
-msgid "NVIDIA GPU"
-msgstr "NVIDIA GPU"
-
-#: ../inc/result.inc:55 ../user/host_app_versions.php:27
-msgid "ATI GPU"
-msgstr "ATI GPU"
-
-#: ../inc/result.inc:57 ../user/host_app_versions.php:28
-msgid "Intel GPU"
-msgstr "Intel GPU"
-
-#: ../inc/result.inc:65
-msgid "Not in DB"
-msgstr "資料庫中不存在"
-
-#: ../inc/result.inc:91
-msgid "pending"
-msgstr "等待中"
-
-#: ../inc/result.inc:114 ../user/forum_search.php:62
-msgid "All"
-msgstr "所有"
-
-#: ../inc/result.inc:115 ../inc/result.inc:176 ../inc/result.inc:223
-#: ../user/server_status.php:167
-msgid "In progress"
-msgstr "運算中"
-
-#: ../inc/result.inc:116
-msgid "Validation pending"
-msgstr "等待驗證中"
-
-#: ../inc/result.inc:117
-msgid "Validation inconclusive"
-msgstr "驗證待確定"
-
-#: ../inc/result.inc:118 ../inc/result.inc:268
-msgid "Valid"
-msgstr "有效結果"
-
-#: ../inc/result.inc:119 ../inc/result.inc:271
-msgid "Invalid"
-msgstr "無效結果"
-
-#: ../inc/result.inc:120 ../inc/result.inc:209
-msgid "Error"
-msgstr "錯誤"
-
-#: ../inc/result.inc:174 ../inc/result.inc:221 ../user/explain_state.php:34
-msgid "Inactive"
-msgstr "不活躍的"
-
-#: ../inc/result.inc:175 ../inc/result.inc:222 ../user/explain_state.php:37
-#: ../user/server_status.php:167
-msgid "Unsent"
-msgstr "未傳送的"
-
-#: ../inc/result.inc:181
-msgid "Completed, waiting for validation"
-msgstr "已完成,等待驗證"
-
-#: ../inc/result.inc:182
-msgid "Completed and validated"
-msgstr "已完成,通過驗證"
-
-#: ../inc/result.inc:183
-msgid "Completed, marked as invalid"
-msgstr "已完成,標記為錯誤"
-
-#: ../inc/result.inc:184
-msgid "Completed, can't validate"
-msgstr "已完成,無法驗證"
-
-#: ../inc/result.inc:185
-msgid "Completed, validation inconclusive"
-msgstr "已完成,驗證未完成"
-
-#: ../inc/result.inc:186
-msgid "Completed, too late to validate"
-msgstr "已完成,超出上傳期限而無法驗證"
-
-#: ../inc/result.inc:188
-msgid "Completed"
-msgstr "已完成"
-
-#: ../inc/result.inc:189 ../inc/result.inc:233 ../user/explain_state.php:62
-msgid "Couldn't send"
-msgstr "無法傳送"
-
-#: ../inc/result.inc:194 ../inc/result.inc:257
-msgid "Cancelled by server"
-msgstr "被伺服器取消"
-
-#: ../inc/result.inc:199
-msgid "Not started by deadline - canceled"
-msgstr "未開始前已達上傳期限 - 已取消"
-
-#: ../inc/result.inc:202
-msgid "Error while downloading"
-msgstr "下載過程錯誤"
-
-#: ../inc/result.inc:204
-msgid "Error while computing"
-msgstr "運算過程錯誤"
-
-#: ../inc/result.inc:205
-msgid "Error while uploading"
-msgstr "上傳過程錯誤"
-
-#: ../inc/result.inc:206 ../inc/result.inc:259
-msgid "Aborted by user"
-msgstr "被用戶停止"
-
-#: ../inc/result.inc:207 ../inc/result.inc:260
-msgid "Upload failed"
-msgstr "上傳失敗"
-
-#: ../inc/result.inc:210
-msgid "Timed out - no response"
-msgstr "超時 - 無回應"
-
-#: ../inc/result.inc:211 ../inc/result.inc:240 ../user/explain_state.php:71
-msgid "Didn't need"
-msgstr "不需要"
-
-#: ../inc/result.inc:212 ../inc/result.inc:241 ../user/explain_state.php:74
-msgid "Validate error"
-msgstr "驗證錯誤"
-
-#: ../inc/result.inc:213 ../inc/result.inc:242
-msgid "Abandoned"
-msgstr "已丟棄"
-
-#: ../inc/result.inc:224 ../user/explain_state.php:43
-msgid "Over"
-msgstr "完成"
-
-#: ../inc/result.inc:232 ../user/explain_state.php:59
-msgid "Success"
-msgstr "成功"
-
-#: ../inc/result.inc:236
-msgid "Computation error"
-msgstr "運算錯誤"
-
-#: ../inc/result.inc:238
-msgid "Redundant result"
-msgstr "多餘結果"
-
-#: ../inc/result.inc:239 ../user/explain_state.php:68
-msgid "No reply"
-msgstr "無回應"
-
-#: ../inc/result.inc:249 ../user/explain_state.php:85
-msgid "New"
-msgstr "新建任務"
-
-#: ../inc/result.inc:250 ../user/explain_state.php:91
-msgid "Downloading"
-msgstr "下載中"
-
-#: ../inc/result.inc:251
-msgid "Processing"
-msgstr "處理中"
-
-#: ../inc/result.inc:252
-msgid "Compute error"
-msgstr "運算錯誤"
-
-#: ../inc/result.inc:253 ../user/explain_state.php:97
-msgid "Uploading"
-msgstr "上傳中"
-
-#: ../inc/result.inc:254 ../user/explain_state.php:88
-msgid "Done"
-msgstr "已完成"
-
-#: ../inc/result.inc:267
-msgid "Initial"
-msgstr "初始結果"
-
-#: ../inc/result.inc:273
-msgid "Not necessary"
-msgstr "不需要"
-
-#: ../inc/result.inc:274
-msgid "Workunit error - check skipped"
-msgstr "任務單元錯誤 - 跳過檢查"
-
-#: ../inc/result.inc:275
-msgid "Checked, but no consensus yet"
-msgstr "已檢查,未取得一致"
-
-#: ../inc/result.inc:276
-msgid "Task was reported too late to validate"
-msgstr "任務超出上傳期限而無法驗證"
-
-#: ../inc/result.inc:302
-msgid "Couldn't send result"
-msgstr "無法發送任務"
-
-#: ../inc/result.inc:306
-msgid "Too many errors (may have bug)"
-msgstr "過多錯誤(可能存在BUG)"
-
-#: ../inc/result.inc:310
-msgid "Too many results (may be nondeterministic)"
-msgstr "太多任務(可能因為結果不確定)"
-
-#: ../inc/result.inc:314
-msgid "Too many total results"
-msgstr "過多總合的任務"
-
-#: ../inc/result.inc:318
-msgid "WU cancelled"
-msgstr "已取消 WU"
-
-#: ../inc/result.inc:322
-msgid "Canonical result is missing"
-msgstr "規範結果缺失"
-
-#: ../inc/result.inc:326
-msgid "Unrecognized Error: %1"
-msgstr "無法辨識的錯誤:%1"
-
-#: ../inc/result.inc:353
-msgid "Task name"
-msgstr "任務名稱"
-
-#: ../inc/result.inc:353 ../inc/result.inc:358 ../inc/result.inc:361
-#: ../inc/result.inc:364
-msgid "click for details"
-msgstr "點擊詳細查看"
-
-#: ../inc/result.inc:353
-msgid "Show IDs"
-msgstr "顯示 ID"
-
-#: ../inc/result.inc:358
-msgid "Show names"
-msgstr "顯示名稱"
-
-#: ../inc/result.inc:361 ../user/result.php:36
-msgid "Task"
-msgstr "任務"
-
-#: ../inc/result.inc:364
-msgid "Work unit"
-msgstr "任務單元"
-
-#: ../inc/result.inc:373
-msgid "Computer"
-msgstr "電腦"
-
-#: ../inc/result.inc:376 ../inc/result.inc:635
-msgid "Sent"
-msgstr "傳送時間"
-
-#: ../inc/result.inc:377
-msgid "Time reported<br />or deadline"
-msgstr "上傳時間<br />或者上傳期限"
-
-#: ../inc/result.inc:378
-msgid "explain"
-msgstr "說明"
-
-#: ../inc/result.inc:380 ../user/server_status.php:113
-msgid "Status"
-msgstr "狀態"
-
-#: ../inc/result.inc:381
-msgid "Run time<br />(sec)"
-msgstr "執行時間<br /> (秒)"
-
-#: ../inc/result.inc:382
-msgid "CPU time<br />(sec)"
-msgstr "CPU 時間<br /> (秒)"
-
-#: ../inc/result.inc:383 ../inc/result.inc:646
-msgid "Credit"
-msgstr "積分"
-
-#: ../inc/result.inc:384 ../inc/result.inc:746 ../user/server_status.php:167
-msgid "Application"
-msgstr "程式"
-
-#: ../inc/result.inc:633
-msgid "Workunit"
-msgstr "任務單元"
-
-#: ../inc/result.inc:636
-msgid "Report deadline"
-msgstr "上傳期限"
-
-#: ../inc/result.inc:637
-msgid "Received"
-msgstr "接收時間"
-
-#: ../inc/result.inc:638
-msgid "Server state"
-msgstr "伺服器狀態"
-
-#: ../inc/result.inc:639
-msgid "Outcome"
-msgstr "結果"
-
-#: ../inc/result.inc:640
-msgid "Client state"
-msgstr "客戶端狀態"
-
-#: ../inc/result.inc:641
-msgid "Exit status"
-msgstr "離開狀態"
-
-#: ../inc/result.inc:643
-msgid "Run time"
-msgstr "執行時間"
-
-#: ../inc/result.inc:644
-msgid "CPU time"
-msgstr "CPU 時間"
-
-#: ../inc/result.inc:645
-msgid "Validate state"
-msgstr "驗證狀態"
-
-#: ../inc/result.inc:647
-msgid "Device peak FLOPS"
-msgstr "裝置的 FLOPS 峰值"
-
-#: ../inc/result.inc:648
-msgid "Application version"
-msgstr "程式版本"
-
-#: ../inc/result.inc:673
-msgid "Output files"
-msgstr "檔案輸出"
-
-#: ../inc/result.inc:676
-msgid "Stderr output"
-msgstr "標準錯誤輸出"
-
-#: ../inc/result.inc:728
-msgid "State"
-msgstr "狀態"
-
-#: ../inc/result.inc:769
-msgid "Task name:"
-msgstr "任務名稱:"
-
-#: ../inc/team.inc:40
-msgid "Search criteria (use one or more)"
-msgstr "搜尋條件 (可以使用一個或多個)"
-
-#: ../inc/team.inc:41
-msgid "Key words"
-msgstr "關鍵字"
-
-#: ../inc/team.inc:41
-msgid "Find teams with these words in their names or descriptions"
-msgstr "尋找名稱或描述中包含這些關鍵字的團隊"
-
-#: ../inc/team.inc:49 ../inc/team.inc:473
-msgid "Type of team"
-msgstr "團隊類型"
-
-#: ../inc/team.inc:51
-msgid "Show only active teams"
-msgstr "只顯示活躍的團隊"
-
-#: ../inc/team.inc:52 ../user/profile_menu.php:78 ../user/user_search.php:70
-msgid "Search"
-msgstr "搜尋"
-
-#: ../inc/team.inc:61
-msgid "Requested by you, and founder response deadline has passed."
-msgstr "你已發起過請求,而且原創始人的回覆期限已過。"
-
-#: ../inc/team.inc:63
-msgid "Complete foundership transfer"
-msgstr "完成創始人的轉換"
-
-#: ../inc/team.inc:67
-msgid "Requested by you"
-msgstr "你已發起過請求"
-
-#: ../inc/team.inc:67
-msgid "founder response deadline is %1"
-msgstr "原創始人的回覆期限是 %1"
-
-#: ../inc/team.inc:72 ../inc/team.inc:575 ../inc/user.inc:358
-#: ../inc/user.inc:449
-msgid "None"
-msgstr "未加入團隊"
-
-#: ../inc/team.inc:74
-msgid "Initiate request"
-msgstr "發起請求"
-
-#: ../inc/team.inc:77
-msgid "Deferred"
-msgstr "延期處理中"
-
-#: ../inc/team.inc:91
-msgid "Team info"
-msgstr "團隊訊息"
-
-#: ../inc/team.inc:93 ../user/team_forum.php:72 ../user/team_search.php:82
-msgid "Description"
-msgstr "描述"
-
-#: ../inc/team.inc:106
-msgid "Web site"
-msgstr "網站"
-
-#: ../inc/team.inc:132
-msgid "Cross-project stats"
-msgstr "跨專案的統計網站"
-
-#: ../inc/team.inc:135 ../inc/team.inc:388 ../user/team_search.php:84
-msgid "Type"
-msgstr "類型"
-
-#: ../inc/team.inc:139 ../user/team_manage.php:65
-msgid "Message board"
-msgstr "留言版"
-
-#: ../inc/team.inc:140 ../user/forum_forum.php:138 ../user/forum_index.php:98
-msgid "Threads"
-msgstr "主題"
-
-#: ../inc/team.inc:148
-msgid "Join this team"
-msgstr "加入此團隊"
-
-#: ../inc/team.inc:149
-msgid ""
-"Note: if 'OK to email' is set in your project preferences, joining a team "
-"gives its founder access to your email address."
-msgstr "如果您在專案偏好中設定了允許接收電子郵件,加入團隊後該團隊的創始人將可以取得您的電子郵件地址。"
-
-#: ../inc/team.inc:152
-msgid "Not accepting new members"
-msgstr "不接受新成員加入"
-
-#: ../inc/team.inc:159
-msgid "Foundership change requested"
-msgstr "創始人改變請求"
-
-#: ../inc/team.inc:160
-msgid "Respond by %1"
-msgstr "回覆期限 %1"
-
-#: ../inc/team.inc:164
-msgid "Team foundership change"
-msgstr "團隊創始人改變"
-
-#: ../inc/team.inc:168 ../inc/team.inc:373
-msgid "Members"
-msgstr "成員"
-
-#: ../inc/team.inc:169 ../inc/team.inc:268
-msgid "Founder"
-msgstr "創始人"
-
-#: ../inc/team.inc:183
-msgid "Admins"
-msgstr "管理員"
-
-#: ../inc/team.inc:198
-msgid "New members in last day"
-msgstr "昨天新加入的成員"
-
-#: ../inc/team.inc:199
-msgid "Total members"
-msgstr "所有成員"
-
-#: ../inc/team.inc:199 ../inc/team.inc:200 ../inc/team.inc:201
-msgid "view"
-msgstr "查看"
-
-#: ../inc/team.inc:200
-msgid "Active members"
-msgstr "活躍的成員"
-
-#: ../inc/team.inc:201
-msgid "Members with credit"
-msgstr "有積分的成員"
-
-#: ../inc/team.inc:270
-msgid "Admin"
-msgstr "管理員"
-
-#: ../inc/team.inc:291 ../user/forum_user_posts.php:124
-#: ../user/top_hosts.php:93 ../user/top_teams.php:123
-#: ../user/top_users.php:128
-msgid "Previous %1"
-msgstr "前 %1"
-
-#: ../inc/team.inc:295 ../user/forum_user_posts.php:133
-#: ../user/profile_search_action.php:63 ../user/top_hosts.php:98
-#: ../user/top_teams.php:128 ../user/top_users.php:133
-msgid "Next %1"
-msgstr "後 %1"
-
-#: ../inc/team.inc:303
-msgid "No such team."
-msgstr "沒有這個團隊。"
-
-#: ../inc/team.inc:316
-msgid "This operation requires foundership."
-msgstr "本操作需要創始人權限。"
-
-#: ../inc/team.inc:340
-msgid "This operation requires team admin privileges"
-msgstr "本操作需要團隊創始人的權限"
-
-#: ../inc/team.inc:442
-msgid ""
-"WARNING: this is a BOINC-wide team. If you make changes here, they will soon"
-" be overwritten. Edit the %1BOINC-wide team%2 instead."
-msgstr "警告:這是一個 BOINC 自動建立的團隊,您在此處做出的修改將很快會被覆蓋,請直接在 %1這裡%2 進行編輯。"
-
-#: ../inc/team.inc:448
-msgid ""
-"%1Privacy note%2: if you create a team, your project preferences (resource "
-"share, graphics preferences) will be visible to the public."
-msgstr "%1隱私事項%2:如果你要建立一個團隊,則你的專案偏好(資源分享率,圖形偏好設定等)將會對團隊成員公開。"
-
-#: ../inc/team.inc:452
-msgid "Team name, text version"
-msgstr "團隊名稱,文字版本"
-
-#: ../inc/team.inc:453
-msgid "Don't use HTML tags."
-msgstr "請不要使用 HTML 標籤。"
-
-#: ../inc/team.inc:456
-msgid "Team name, HTML version"
-msgstr "團隊名稱,HTML 版本"
-
-#: ../inc/team.inc:458 ../inc/team.inc:468
-msgid "You may use %1limited HTML tags%2."
-msgstr "您可以使用 %1有限的 HTML 標籤%2。"
-
-#: ../inc/team.inc:459
-msgid "If you don't know HTML, leave this box blank."
-msgstr "如果您不了解 HTML,請保持本編輯框為空。"
-
-#: ../inc/team.inc:462
-msgid "URL of team web page, if any"
-msgstr "團隊的網站 (如果有的話);"
-
-#: ../inc/team.inc:462
-msgid "without \"http://\""
-msgstr "不含 “ http:// ”"
-
-#: ../inc/team.inc:463
-msgid "This URL will be linked to from the team's page on this site."
-msgstr "這個網址將會從這個網頁連到團隊網站"
-
-#: ../inc/team.inc:466
-msgid "Description of team"
-msgstr "團隊描述"
-
-#: ../inc/team.inc:482
-msgid "Accept new members?"
-msgstr "是否接受新隊員加入?"
-
-#: ../inc/uotd.inc:30
-msgid "User profile"
-msgstr "用戶檔案"
-
-#: ../inc/user.inc:120
-msgid "Projects in which you are participating"
-msgstr "您已加入的專案"
-
-#: ../inc/user.inc:122
-msgid "Projects in which %1 is participating"
-msgstr "%1 已加入的專案"
-
-#: ../inc/user.inc:126
-msgid "Project"
-msgstr "專案"
-
-#: ../inc/user.inc:126
-msgid "Click for user page"
-msgstr "點擊進入用戶頁面"
-
-#: ../inc/user.inc:126
-msgid "Since"
-msgstr "加入日期"
-
-#: ../inc/user.inc:151
-msgid "Computing and credit"
-msgstr "運算和積分"
-
-#: ../inc/user.inc:154
-msgid "Computers on this account"
-msgstr "本帳號所屬的電腦"
-
-#: ../inc/user.inc:154 ../inc/user.inc:155 ../inc/user.inc:233
-#: ../inc/user.inc:312 ../inc/user.inc:407 ../inc/user.inc:482
-#: ../user/view_profile.php:66
-msgid "View"
-msgstr "查看"
-
-#: ../inc/user.inc:164
-msgid "Cross-project ID"
-msgstr "跨專案辨識碼 (CPID)"
-
-#: ../inc/user.inc:165
-msgid "Cross-project statistics"
-msgstr "跨專案的統計網站"
-
-#: ../inc/user.inc:166
-msgid "Account"
-msgstr "帳號"
-
-#: ../inc/user.inc:168 ../inc/user.inc:358 ../inc/user.inc:447
-#: ../inc/user.inc:449 ../user/user_search.php:124
-msgid "Team"
-msgstr "團隊"
-
-#: ../inc/user.inc:170
-msgid "Cross-project"
-msgstr "跨專案"
-
-#: ../inc/user.inc:171
-msgid "Certificate"
-msgstr "證書"
-
-#: ../inc/user.inc:172
-msgid "Stats on your cell phone"
-msgstr "用手機查看您的統計訊息"
-
-#: ../inc/user.inc:197
-msgid "Account information"
-msgstr "帳號資訊"
-
-#: ../inc/user.inc:206 ../user/get_passwd.php:31
-#: ../user/team_email_list.php:73
-msgid "Email address"
-msgstr "電子郵件地址"
-
-#: ../inc/user.inc:210 ../inc/user.inc:400
-msgid "URL"
-msgstr "網址"
-
-#: ../inc/user.inc:213
-msgid "Postal code"
-msgstr "郵遞區號"
-
-#: ../inc/user.inc:214 ../inc/user.inc:394
-msgid "%1 member since"
-msgstr "加入 %1 的日期"
-
-#. LDAP accounts can't change email or password
-#: ../inc/user.inc:219 ../inc/user.inc:223
-msgid "Change"
-msgstr "修改"
-
-#: ../inc/user.inc:224
-msgid "email address"
-msgstr "電子郵件地址"
-
-#: ../inc/user.inc:225
-msgid "password"
-msgstr "密碼"
-
-#: ../inc/user.inc:226
-msgid "other account info"
-msgstr "其他帳號訊息"
-
-#: ../inc/user.inc:229 ../inc/user.inc:393
-msgid "User ID"
-msgstr "用戶 ID"
-
-#: ../inc/user.inc:229
-msgid "Used in community functions"
-msgstr "在社群功能中使用"
-
-#: ../inc/user.inc:232 ../user/weak_auth.php:25
-msgid "Account keys"
-msgstr "帳號鑰匙"
-
-#: ../inc/user.inc:237
-msgid "Preferences"
-msgstr "偏好設定"
-
-#: ../inc/user.inc:240
-msgid "When and how BOINC uses your computer"
-msgstr "BOINC 何時如何用您的電腦?"
-
-#: ../inc/user.inc:241
-msgid "Computing preferences"
-msgstr "運算偏好設定"
-
-#: ../inc/user.inc:244
-msgid "Message boards and private messages"
-msgstr "留言板和私人訊息"
-
-#: ../inc/user.inc:245 ../user/edit_forum_preferences_form.php:31
-msgid "Community preferences"
-msgstr "社群偏好設定"
-
-#: ../inc/user.inc:248
-msgid "Preferences for this project"
-msgstr "本專案的偏好設定"
-
-#: ../inc/user.inc:249 ../user/prefs.php:30
-msgid "%1 preferences"
-msgstr "%1 偏好設定"
-
-#: ../inc/user.inc:266
-msgid "View the profile of %1"
-msgstr "查看 %1 的用戶檔案"
-
-#: ../inc/user.inc:267 ../inc/user.inc:316 ../inc/user.inc:482
-msgid "Profile"
-msgstr "用戶檔案"
-
-#: ../inc/user.inc:307 ../user/sample_index.php:114
-msgid "Community"
-msgstr "社群"
-
-#: ../inc/user.inc:314
-msgid "Create"
-msgstr "建立"
-
-#: ../inc/user.inc:321 ../inc/user.inc:454
-msgid "%1 posts"
-msgstr "%1 個文章"
-
-#. ------------ Notification -----------
-#: ../inc/user.inc:339 ../user/edit_forum_preferences_form.php:40
-msgid "Notifications"
-msgstr "通知"
-
-#: ../inc/user.inc:346
-msgid "Quit team"
-msgstr "退出團隊"
-
-#: ../inc/user.inc:348 ../inc/user.inc:365
-msgid "Administer"
-msgstr "管理員"
-
-#: ../inc/user.inc:354 ../inc/user.inc:367
-msgid "(foundership change request pending)"
-msgstr "(創始人轉換請求待處理)"
-
-#: ../inc/user.inc:356
-msgid "Member of team"
-msgstr "團隊成員"
-
-#: ../inc/user.inc:358
-msgid "find a team"
-msgstr "搜尋團隊"
-
-#: ../inc/user.inc:369
-msgid "Founder but not member of"
-msgstr "創始人 (已退出團隊)"
-
-#: ../inc/user.inc:375
-msgid "Find friends"
-msgstr "搜尋好友"
-
-#: ../inc/user.inc:383 ../inc/user.inc:385 ../inc/user.inc:465
-#: ../inc/user.inc:467 ../inc/user.inc:476
-msgid "Friends"
-msgstr "好友"
-
-#: ../inc/user.inc:407 ../inc/user.inc:409 ../user/server_status.php:157
-msgid "Computers"
-msgstr "電腦"
-
-#: ../inc/user.inc:415
-msgid "Donor"
-msgstr "贊助者"
-
-#: ../inc/user.inc:458
-msgid "Contact"
-msgstr "聯繫"
-
-#: ../inc/user.inc:461
-msgid "This person is a friend"
-msgstr "這是一位好友"
-
-#: ../inc/user.inc:462 ../user/friend.php:240
-msgid "Cancel friendship"
-msgstr "刪除此好友"
-
-#: ../inc/user.inc:465 ../user/friend.php:39
-msgid "Request pending"
-msgstr "請求待處理"
-
-#: ../inc/user.inc:467
-msgid "Add as friend"
-msgstr "新增為好友"
-
-#: ../inc/user.inc:526
-msgid "user name cannot have leading or trailing white space"
-msgstr "使用者名稱前後不能使用空白建"
-
-#: ../inc/user.inc:530
-msgid "user name must be nonempty"
-msgstr "使用者名稱不能留白"
-
-#: ../inc/user.inc:534
-msgid "user name may not contain HTML tags"
-msgstr "使用者名稱不能包含HTML標籤"
-
-#: ../inc/util.inc:161
-msgid "log out"
-msgstr "登出"
-
-#: ../inc/util.inc:163
-msgid "log in"
-msgstr "登入"
-
-#: ../inc/util.inc:239 ../user/create_account_form.php:41
-msgid "Create an account"
-msgstr "建立一個帳號"
-
-#: ../inc/util.inc:240
-msgid "Server status page"
-msgstr "伺服器狀態頁"
-
-#: ../inc/util.inc:277
-msgid ""
-"A database error occurred while handling your request; please try again "
-"later."
-msgstr "資料庫在處理你的請求過程中發生一次資料庫錯誤,請稍後重試。"
-
-#: ../inc/util.inc:286
-msgid "Unable to handle request"
-msgstr "無法處理請求"
-
-#: ../inc/util.inc:306
-msgid "hours"
-msgstr "小時"
-
-#: ../inc/util.inc:309
-msgid "min"
-msgstr "分鐘"
-
-#: ../inc/util.inc:312
-msgid "sec"
-msgstr "秒"
-
-#: ../inc/util.inc:473
-msgid ""
-"Link has timed out. Please click Back, refresh the page, and try again."
-msgstr "連線已超時,請點擊返回並刷新頁面後再重試。"
-
-#: ../inc/util.inc:552
-msgid "Use BBCode tags to format your text"
-msgstr "用 BBCode 代碼來格式化您的文字"
-
-#: ../inc/util.inc:779
-msgid "Project down for maintenance"
-msgstr "專案已停止維護"
-
-#: ../inc/util.inc:782
-msgid "%1 is temporarily shut down for maintenance.  Please try again later."
-msgstr "%1 已經臨時關閉並進行維護工作,請稍候再重試。"
-
-#: ../inc/util.inc:800
-msgid "Unable to connect to database - please try again later"
-msgstr "無法連接資料庫 - 請稍候重試"
-
-#: ../inc/util.inc:804
-msgid "Unable to select database - please try again later"
-msgstr "無法選擇資料庫 - 請稍候重試"
-
-#: ../inc/util.inc:976
-msgid "characters remaining"
-msgstr "剩餘字符數"
-
-#: ../inc/util_ops.inc:115 ../user/get_passwd.php:72
-msgid "Stay logged in on this computer"
-msgstr "保持這台電腦的登入狀態"
-
-#: ../user/account_finish.php:34
-msgid "Finish account setup"
-msgstr "完成帳號設定"
-
-#: ../user/account_finish_action.php:27
-msgid "You must supply a name for your account"
-msgstr "您必須為您的帳號取一個名字"
-
-#: ../user/account_finish_action.php:30
-msgid "HTML tags not allowed in name"
-msgstr "名字中不允許使用 HTML 語法"
-
-#: ../user/add_venue.php:40 ../user/add_venue.php:64 ../user/prefs_edit.php:41
-#: ../user/prefs_edit.php:65 ../user/prefs_edit.php:93
-msgid "Edit %1 preferences"
-msgstr "編輯 %1 的偏好設定"
-
-#: ../user/add_venue.php:82
-msgid "Add %1 preferences for %2"
-msgstr "增加 %1 偏好設定(用於 %2)"
-
-#: ../user/apps.php:31 ../user/sample_index.php:104
-msgid "Applications"
-msgstr "程式"
-
-#: ../user/apps.php:32
-msgid ""
-"%1 currently has the following applications. When you participate in %1, "
-"tasks for one or more of these applications will be assigned to your "
-"computer. The current version of the application will be downloaded to your "
-"computer. This happens automatically; you don't have to do anything."
-msgstr "%1 專案目前有如下幾個計算程式。當你參與 %1 專案時,適用於這些計算程式的任務包將會分發給你的計算機。當前版本的計算程式也會下載到你的計算機上。這一切都是自動的,你不需要做任何操作。"
-
-#: ../user/apps.php:54
-msgid "Platform"
-msgstr "平台"
-
-#: ../user/apps.php:55
-msgid "Version"
-msgstr "版本"
-
-#: ../user/apps.php:57
-msgid "Average computing"
-msgstr "平均運算"
-
-#: ../user/bbcode.php:23
-msgid "BBCode tags"
-msgstr "BBCode 語法"
-
-#: ../user/bbcode.php:25
-msgid ""
-"BBCode tags let you format text in your profile and message-board postings.\n"
-"It's similar to HTML, but simpler. The tags start with a [ (where you would\n"
-"have used %1 in HTML) and end with ] (where you would have used %2 in\n"
-"HTML)."
-msgstr "BBCode 語法可以用來對個人檔案和留言板文章內的文字進行格式化。 \n它和 HTML 類似,但更為簡單。這些標記一般以 [ 開頭\n(如果在HTML 中一般是 %1)並且以] 結尾(HTML 中則是 %2)。"
-
-#: ../user/bbcode.php:31
-msgid "Examples"
-msgstr "範例"
-
-#: ../user/bbcode.php:32
-msgid "Bold"
-msgstr "粗體"
-
-#: ../user/bbcode.php:33
-msgid "Italic"
-msgstr "斜體"
-
-#: ../user/bbcode.php:34
-msgid "Underline"
-msgstr "底線"
-
-#: ../user/bbcode.php:35
-msgid "Strikethrough"
-msgstr "刪除線"
-
-#: ../user/bbcode.php:36
-msgid "Superscript"
-msgstr "上標"
-
-#: ../user/bbcode.php:37
-msgid "Big text"
-msgstr "大字體"
-
-#: ../user/bbcode.php:38
-msgid "Red text"
-msgstr "紅字"
-
-#: ../user/bbcode.php:39
-msgid "link to website"
-msgstr "超連結到網站"
-
-#: ../user/bbcode.php:40
-msgid "Quoted text"
-msgstr "引用文"
-
-#: ../user/bbcode.php:40
-msgid "use for quoted blocks of text"
-msgstr "用於文字塊的引用"
-
-#: ../user/bbcode.php:41
-msgid "use to display an image"
-msgstr "用於顯示一張圖片"
-
-#: ../user/bbcode.php:42
-msgid "Code snippet here"
-msgstr "這是代碼片段"
-
-#: ../user/bbcode.php:42
-msgid "use to display some code"
-msgstr "用於顯示一些代碼"
-
-#: ../user/bbcode.php:43
-msgid "Pre-formatted text"
-msgstr "預設文字"
-
-#: ../user/bbcode.php:43
-msgid "use to display pre-formatted (usually monospaced) text"
-msgstr "用於顯示預設文字(一般是等寬字體)"
-
-#: ../user/bbcode.php:44
-msgid "Item 1"
-msgstr "項目 1"
-
-#: ../user/bbcode.php:44
-msgid "Item2"
-msgstr "項目2"
-
-#: ../user/bbcode.php:44
-msgid "Item 2"
-msgstr "項目 2"
-
-#: ../user/bbcode.php:46
-msgid "use to link to Trac ticket on BOINC website"
-msgstr "用於連接到 BOINC 網站上的 Trac 傳票"
-
-#: ../user/bbcode.php:48
-msgid "use to link to Trac Wiki on BOINC website"
-msgstr "用於連接到 BOINC 網站上的 Trac 維基"
-
-#: ../user/bbcode.php:52
-msgid ""
-"If you don't close a tag or don't specify a parameter correctly,\n"
-"the raw tag itself will display instead of the formatted text."
-msgstr "如果你沒有正確的關閉語法或者指定參數,\n語法自身將被顯示出來,而不是預設的文字。"
-
-#: ../user/create_account_action.php:26
-msgid "Can't create account"
-msgstr "無法建立帳號"
-
-#: ../user/create_account_action.php:29
-msgid "Click your browser's <b>Back</b> button to try again."
-msgstr "點擊瀏覽器的<b>返回</b>按鈕來重試。"
-
-#: ../user/create_account_action.php:46
-msgid "Your reCAPTCHA response was not correct. Please try again."
-msgstr "您輸入的驗證字不符,請重試。"
-
-#: ../user/create_account_action.php:69
-msgid "You must supply an invitation code to create an account."
-msgstr "您必須提供一個邀請碼才能建立帳號。"
-
-#: ../user/create_account_action.php:72
-msgid "The invitation code you gave is not valid."
-msgstr "您提供的邀請碼是錯誤的。"
-
-#: ../user/create_account_action.php:83
-msgid ""
-"Invalid email address: you must enter a valid address of the form "
-"name at domain"
-msgstr "電子郵件地址錯誤:您必須輸入一個合法的地址,例如 用戶名@域名"
-
-#: ../user/create_account_action.php:87
-msgid "There's already an account with that email address."
-msgstr "已有帳號連結至此電子郵件地址。"
-
-#: ../user/create_account_action.php:93 ../user/edit_passwd_action.php:32
-msgid "New passwords are different"
-msgstr "新密碼不符"
-
-#: ../user/create_account_action.php:100 ../user/edit_passwd_action.php:40
-msgid "Passwords may only include ASCII characters."
-msgstr "登入密碼只允許包含 ASCII 字符。"
-
-#: ../user/create_account_action.php:105 ../user/edit_passwd_action.php:44
-msgid "New password is too short: minimum password length is %1 characters."
-msgstr "新密碼長度過短:最短的密碼長度為 %1 字符。"
-
-#: ../user/create_account_action.php:126
-msgid "Couldn't create account"
-msgstr "無法建立帳號"
-
-#: ../user/create_account_form.php:45
-msgid ""
-"NOTE: If you use the BOINC Manager, don't use this form. Just run BOINC, "
-"select Add Project, and enter an email address and password."
-msgstr "注意:如果您使用BOINC管理服務,不要使用此表格。只要執行BOINC,選擇“新增專案”,然後輸入電子郵件地址和密碼。"
-
-#: ../user/create_account_form.php:57
-msgid ""
-"This account will belong to the team %1 and will have the project "
-"preferences of its founder."
-msgstr "此帳號將屬於 %1 團隊並且其專案偏好設定和團隊創始人的專案偏好設定相同。"
-
-#: ../user/create_profile.php:52
-msgid "Picture"
-msgstr "照片"
-
-#: ../user/create_profile.php:66
-msgid "%1 Your profile picture is shown to the left."
-msgstr "%1您的用戶檔案圖片將顯示在左邊"
-
-#: ../user/create_profile.php:68
-msgid ""
-"To replace it, click the \"Browse\" button and select a JPEG or PNG file (%1"
-" or less)."
-msgstr "要變更的話,點擊 “ 瀏覽 ” 按鈕並選擇一個JPEG 或PNG 圖檔(大小不超過 %1)。"
-
-#: ../user/create_profile.php:71
-msgid "To remove it from your profile, check this box:"
-msgstr "如果想從用戶檔案中刪除它,請選擇:"
-
-#: ../user/create_profile.php:79
-msgid ""
-"If you would like include a picture with your profile, click the \"Browse\" "
-"button and select a JPEG or PNG file. Please select images of %1 or less."
-msgstr "如果您想在用戶檔案中加入一張照片,點擊 “ 瀏覽 ” 按鈕並選擇一個JPEG 或PNG 圖檔。大小不能超過 %1。"
-
-#: ../user/create_profile.php:91
-msgid "Language"
-msgstr "語言"
-
-#: ../user/create_profile.php:94
-msgid "Select the language in which your profile is written:"
-msgstr "請選擇您編輯用戶檔案的語言:"
-
-#: ../user/create_profile.php:106
-msgid "Submit profile"
-msgstr "提交用戶檔案"
-
-#: ../user/create_profile.php:112
-msgid "Create/edit profile"
-msgstr "建立/編輯用戶檔案"
-
-#: ../user/create_profile.php:134
-msgid "The format of your uploaded image is not supported."
-msgstr "不支援您上傳的圖片格式。"
-
-#: ../user/create_profile.php:163
-msgid ""
-"Your %1profile%2 lets you share your opinions and background with the %3 "
-"community."
-msgstr "透過 %1用戶檔案%2,你可以和%3 社群分享您的觀點和背景。"
-
-#: ../user/create_profile.php:209
-msgid "Your ReCaptcha response was not correct.  Please try again."
-msgstr "您的驗證文字不正確,請重試。"
-
-#: ../user/create_profile.php:218
-msgid ""
-"Your first response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "您的第一次回覆已被 Akismet 防垃圾郵件系統標記為垃圾郵件,請修改您輸入的內容並重試。"
-
-#: ../user/create_profile.php:226
-msgid ""
-"Your second response was flagged as spam by the Akismet anti-spam system.  "
-"Please modify your text and try again."
-msgstr "您的第二次回覆已被 Akismet 防垃圾郵件系統標記為垃圾郵件,請修改您輸入的內容並重試。"
-
-#: ../user/create_profile.php:242
-msgid "Your profile submission was empty."
-msgstr "您提交的用戶檔案內容為空。"
-
-#: ../user/create_profile.php:283
-msgid "Could not update the profile: database error"
-msgstr "無法更新該用戶檔案:資料庫錯誤"
-
-#: ../user/create_profile.php:299
-msgid "Could not create the profile: database error"
-msgstr "無法建立該用戶檔案:資料庫錯誤"
-
-#: ../user/create_profile.php:304
-msgid "Profile saved"
-msgstr "用戶檔案已儲存"
-
-#: ../user/create_profile.php:306
-msgid ""
-"Congratulations! Your profile was successfully entered into our database."
-msgstr "恭喜!您的用戶檔案已經成功進入了我們的資料庫。"
-
-#: ../user/create_profile.php:309
-msgid "View your profile"
-msgstr "檢視您的使用者檔案"
-
-#: ../user/create_profile.php:319
-msgid "Create a profile"
-msgstr "建立一個用戶檔案"
-
-#: ../user/create_profile.php:347
-msgid ""
-"To prevent spam, an average credit of %1 or greater is required to create or"
-" edit a profile.  We apologize for this inconvenience."
-msgstr "為了防止垃圾郵件,如果要建立或編譯用戶檔案,近期平均積分不能小於 %1,不便之處我們深感抱歉。"
-
-#: ../user/delete_account.php:57
-msgid "Couldn't delete account"
-msgstr "無法刪除帳號"
-
-#: ../user/delete_account.php:59
-msgid "Account deleted"
-msgstr "帳號已刪除"
-
-#: ../user/delete_account.php:60
-msgid "Your account has been deleted."
-msgstr "您的帳號已刪除"
-
-#: ../user/delete_account.php:64
-msgid "Confirm delete account"
-msgstr "確定刪除帳號"
-
-#: ../user/delete_account.php:67
-msgid ""
-"Deleting your account will remove all of your\n"
-"personal information from our servers,\n"
-"including your profile and message-board posts.\n"
-"No jobs will be issued to any computers attached\n"
-"to this account."
-msgstr "刪除帳號操作將從服務器上移除你所有的個人訊息,\n包括你的個人檔案和留言板中的文章。 \n該帳號名下的電腦也將不再下載新的運算任務。"
-
-#: ../user/delete_account.php:73
-msgid ""
-"This cannot be undone.\n"
-"Once your account has been deleted, you cannot get it back."
-msgstr "該操作無法撤銷。 \n一旦帳號被刪除,將無法還原。"
-
-#: ../user/delete_account.php:76
-msgid "Are you sure you want to delete your account?"
-msgstr "您確定要刪除您的帳號嗎?"
-
-#: ../user/delete_account.php:79 ../user/delete_profile.php:54
-#: ../user/donations.php:322 ../user/donations.php:326 ../user/friend.php:240
-#: ../user/prefs_remove.php:53 ../user/user_search.php:59
-#: ../user/user_search.php:64
-msgid "Yes"
-msgstr "是"
-
-#: ../user/delete_account.php:79
-msgid "Delete this account"
-msgstr "刪除這個帳號"
-
-#: ../user/delete_account.php:80 ../user/delete_profile.php:55
-#: ../user/friend.php:241 ../user/user_search.php:58
-#: ../user/user_search.php:63
-msgid "No"
-msgstr "否"
-
-#: ../user/delete_account.php:80
-msgid "Do not delete this account"
-msgstr "不要刪除這個帳號"
-
-#: ../user/delete_profile.php:32
-msgid "couldn't delete profile - please try again later"
-msgstr "無法刪除用戶檔案 - 請稍候再試。"
-
-#: ../user/delete_profile.php:35
-msgid "Delete Confirmation"
-msgstr "刪除確認"
-
-#: ../user/delete_profile.php:37
-msgid "Your profile has been deleted."
-msgstr "您的用戶檔案已刪除。"
-
-#: ../user/delete_profile.php:42
-msgid "Profile delete confirmation"
-msgstr "用戶檔案刪除確認"
-
-#: ../user/delete_profile.php:45
-msgid "Are you sure?"
-msgstr "您確定嗎?"
-
-#: ../user/delete_profile.php:46
-msgid ""
-"Deleted profiles are gone forever and cannot be recovered --\n"
-"you will have to start from scratch\n"
-"if you want another profile in the future."
-msgstr "刪除的用戶檔案將永遠無法恢復 --\n如果您以後想要重新使用用戶檔案,必須從頭開始建立。"
-
-#: ../user/delete_profile.php:50
-msgid ""
-"If you're sure, click 'Yes'\n"
-"to remove your profile from our database."
-msgstr "如果您確定的話,請點擊 “ 是 ” \n從我們的資料庫中刪除你的用戶檔案。"
-
-#: ../user/delete_profile.php:54
-msgid "Delete my profile"
-msgstr "刪除我的用戶檔案"
-
-#: ../user/delete_profile.php:55
-msgid "Do not delete my profile"
-msgstr "不要刪除我的用戶檔案"
-
-#: ../user/donated.php:25
-msgid "PayPal - Transaction Completed"
-msgstr "PayPal - 交易已完成"
-
-#: ../user/donated.php:28
-msgid "Thank you for donating!"
-msgstr "感謝您的捐贈!!"
-
-#: ../user/donated.php:29
-msgid "Your donation for has been completed."
-msgstr "您的捐贈已完成。"
-
-#: ../user/donated.php:30
-msgid ""
-"Your donation will be added to the progress bar after confirmation by "
-"PayPal."
-msgstr "您的捐贈將在我們收到 PayPal 的確認後再添加到進度中。"
-
-#: ../user/donated.php:32
-msgid "You have canceled your donation."
-msgstr "您已經取消捐贈。"
-
-#: ../user/donations.php:24
-msgid "This project is not accepting donations."
-msgstr "此專案目前不接受捐贈。"
-
-#: ../user/donations.php:34
-msgid "%1 donations"
-msgstr "%1 捐贈"
-
-#: ../user/donations.php:39
-msgid ""
-"This project is accepting donations via\n"
-"%1."
-msgstr "此專案接受的捐贈方式\n%1。"
-
-#: ../user/donations.php:42
-msgid ""
-"To donate, fill in the amount you want to donate using the field below.\n"
-"        PayPal is accepting multiple currencies\n"
-"        (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars,\n"
-"         Yen, Australian Dollars, New Zealand Dollars,\n"
-"        Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor,\n"
-"        Danish Kroner, Polish Zloty, Norwegian Kroner,\n"
-"        Hungarian Forint, Czech Koruna).\n"
-"        You can use included currency converter\n"
-"        to see the donation amount equivalent in different currencies\n"
-"        (please note that the rates are only estimates\n"
-"         and the actual amount may differ)."
-msgstr "請在下方的表格中填入您所要捐贈的金額。 \nPayPal 接受多種貨幣\n(加元,歐元,英鎊,美元,\n日元,澳元,新西蘭元,\n瑞士法郎,港幣,新加坡元,瑞典克朗,\n丹麥克朗,波蘭茲羅提,挪威克朗,\n匈牙利福林,捷克克朗)。 \n您可以使用匯率換算器來查看不同幣種的等值金額\n(請注意匯率為估計值,實際匯率可能會稍有不同)"
-
-#: ../user/donations.php:316
-msgid "Amount you would like to donate"
-msgstr "您想要捐贈的金額"
-
-#: ../user/donations.php:317
-msgid "Estimated value in"
-msgstr "匯率換算(估計)"
-
-#: ../user/donations.php:320 ../user/donations.php:324
-msgid "Anonymous donation"
-msgstr "匿名捐贈"
-
-#: ../user/donations.php:320
-msgid ""
-"Select this if you dont want your name and account number displayed in\n"
-"donator lists.<br>If not checked, you will be recorded as user ID %1"
-msgstr "如果您不希望將您的名稱和帳號顯示在捐贈者列表中,請選擇此項。 \n如果不選擇的話,您將被記錄為 用戶 ID %1"
-
-#: ../user/donations.php:324
-msgid "To assign the donation with your user ID, please log in."
-msgstr "要用指定的用戶 ID 進行捐贈的話,請先登入。"
-
-#: ../user/donations.php:328
-msgid "Proceed"
-msgstr "繼續"
-
-#: ../user/donations.php:329
-msgid "Donations are accepted through"
-msgstr "接受捐贈的方式"
-
-#: ../user/download_network.php:25
-msgid "Download BOINC add-on software"
-msgstr "下載 BOINC 的輔助軟體"
-
-#: ../user/download_network.php:28
-msgid "You can download applications in several categories."
-msgstr "您可以下載下面幾個類別的程式。"
-
-#: ../user/download_network.php:31
-msgid ""
-"These applications are not endorsed by %1 and you use them at your own risk."
-msgstr "這些程式尚未經過 %1 的檢查,若使用請自擔風險。"
-
-#: ../user/download_network.php:33
-msgid ""
-"We do not provide instructions for installing these applications.\n"
-"However, the author may have provided some help on installing or uninstalling the application. \n"
-"If this is not enough you should contact the author."
-msgstr "我們無法提供這些程式的安裝及使用說明。 \n但程式的作者可能提供了安裝及卸載相關的幫助說明。 \n如果需要進一步了解,請聯繫相關作者。"
-
-#: ../user/download_network.php:36
-msgid "Instructions for installing and running BOINC are %1here%2."
-msgstr "安裝及執行 BOINC 的說明 請看%1這裡%2"
-
-#: ../user/download_network.php:38
-msgid "This list is managed centrally at %1the BOINC website%2."
-msgstr "本頁面中的列表內容由%1BOINC 官方網站%2 集中管理。"
-
-#: ../user/edit_email_action.php:31
-msgid "Change email address of account"
-msgstr "修改帳號的電子郵件地址"
-
-#: ../user/edit_email_action.php:34 ../user/edit_email_action.php:36
-msgid "New email address '%1' is invalid."
-msgstr "新的電子郵件地址 ‘ %1 ’ 錯誤。"
-
-#: ../user/edit_email_action.php:38
-msgid "New email address is same as existing address. Nothing is changed."
-msgstr "新的電子郵件地址和原來的相同,不需要修改。"
-
-#: ../user/edit_email_action.php:42
-msgid "There's already an account with that email address"
-msgstr "已有帳號連結至此電子郵件地址。"
-
-#: ../user/edit_email_action.php:54
-msgid "Invalid password."
-msgstr "密碼錯誤。"
-
-#: ../user/edit_email_action.php:62
-msgid "The email address of your account is now %1."
-msgstr "您的帳號現在所連結的電子郵件地址是 %1。"
-
-#: ../user/edit_email_action.php:64
-msgid "Please %1validate this email address%2."
-msgstr "請%1驗證此電子郵件地址%2。"
-
-#: ../user/edit_email_action.php:67
-msgid ""
-"We can't update your email address due to a database problem.  Please try "
-"again later."
-msgstr "因為資料庫的問題,我們目前無法更新你的電子郵件地址,請稍後重試。"
-
-#: ../user/edit_email_form.php:27 ../user/edit_email_form.php:51
-msgid "Change email address"
-msgstr "修改電子郵件地址"
-
-#: ../user/edit_email_form.php:36
-msgid "Change the email address of your account"
-msgstr "修改您的帳號所連結的電子郵件地址"
-
-#: ../user/edit_email_form.php:37
-msgid "New email address"
-msgstr "新的電子郵件地址"
-
-#: ../user/edit_email_form.php:38
-msgid "Must be a valid address of the form 'name at domain'"
-msgstr "必須是有效的電子郵件地址,例如 用戶名@域名"
-
-#: ../user/edit_email_form.php:48
-msgid "No password?"
-msgstr "沒有設定密碼?"
-
-#: ../user/edit_forum_preferences_action.php:33
-msgid "Confirm reset"
-msgstr "確定重設"
-
-#: ../user/edit_forum_preferences_action.php:34
-msgid ""
-"This action will erase any changes you have made in your community "
-"preferences. To cancel, click your browser's Back button."
-msgstr "此操作將清除您對所修改的社群偏好設定,要取消操作的話,請點擊瀏覽器的返回按鈕。"
-
-#: ../user/edit_forum_preferences_action.php:38
-msgid "Reset preferences"
-msgstr "重設偏好設定"
-
-#. Not the right kind of file
-#: ../user/edit_forum_preferences_action.php:95
-msgid "Error: Not the right kind of file, only PNG and JPEG are supported."
-msgstr "錯誤:圖檔類型錯誤,只支持PNG 和JPEG 格式。"
-
-#: ../user/edit_forum_preferences_action.php:120
-msgid "Your signature was too long, please keep it less than 250 characters."
-msgstr "您的簽名太長,請將其限制在250 個字符內。"
-
-#: ../user/edit_forum_preferences_action.php:139
-#: ../user/edit_forum_preferences_action.php:153
-msgid "No such user:"
-msgstr "沒有這個使用者:"
-
-#: ../user/edit_forum_preferences_form.php:45
-msgid ""
-"How should we notify you of new private messages, friend requests, posts in "
-"subscribed threads, and other events?"
-msgstr "當您接收到新的私人訊息、好友請求、訂閱主題更新...等時,您希望我們如何通知您?"
-
-#: ../user/edit_forum_preferences_form.php:46
-msgid "On my Account page (no email)"
-msgstr "在我的帳號頁面(不發送電子郵件)"
-
-#: ../user/edit_forum_preferences_form.php:47
-msgid "Immediately, by email"
-msgstr "立即,通過電子郵件"
-
-#: ../user/edit_forum_preferences_form.php:48
-msgid "In a single daily email"
-msgstr "通過電子郵件,每天最多一封"
-
-#: ../user/edit_forum_preferences_form.php:65
-msgid "Message-board identity"
-msgstr "留言板標識"
-
-#: ../user/edit_forum_preferences_form.php:66
-msgid "Avatar"
-msgstr "大頭貼"
-
-#: ../user/edit_forum_preferences_form.php:67
-msgid "An image representing you on the message boards."
-msgstr "在留言板上代表你身份的圖片。"
-
-#: ../user/edit_forum_preferences_form.php:68
-msgid "Format: JPG or PNG. Size: at most 4 KB, 100x100 pixels"
-msgstr "格式:JPG 或 PNG。尺寸:最大 4KB,100x100像素"
-
-#: ../user/edit_forum_preferences_form.php:70
-msgid "Don't use an avatar"
-msgstr "不使用大頭貼"
-
-#: ../user/edit_forum_preferences_form.php:72
-msgid "Use a Globally Recognized Avatar provided by %1"
-msgstr "使用由 %1 提供的個人全球統一標識"
-
-#: ../user/edit_forum_preferences_form.php:74
-msgid "Use this uploaded avatar:"
-msgstr "使用上傳的大頭貼:"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "Avatar preview"
-msgstr "預覽大頭貼"
-
-#: ../user/edit_forum_preferences_form.php:77
-msgid "This is how your avatar will look"
-msgstr "您的大頭貼將顯示為"
-
-#: ../user/edit_forum_preferences_form.php:86
-msgid "Signature for message board posts"
-msgstr "留言板發布簽名"
-
-#: ../user/edit_forum_preferences_form.php:89
-msgid ""
-"Check out %1various free services%2\n"
-"<br> providing dynamic 'signature images'\n"
-"<br> showing your latest credit info, project news, etc."
-msgstr "查看 %1所有的免費服務%2\n<br> 提供動態簽名圖片\n<br> 顯示你最新的積分訊息,專案新聞等。"
-
-#: ../user/edit_forum_preferences_form.php:93
-msgid "Attach signature by default"
-msgstr "默認使用簽名"
-
-#: ../user/edit_forum_preferences_form.php:96
-msgid "Signature preview"
-msgstr "預覽簽名"
-
-#: ../user/edit_forum_preferences_form.php:97
-msgid "This is how your signature will look in the forums"
-msgstr "你的簽名將在論壇中顯示為"
-
-#: ../user/edit_forum_preferences_form.php:115
-msgid "Message display"
-msgstr "顯示訊息"
-
-#: ../user/edit_forum_preferences_form.php:117
-msgid "What to display"
-msgstr "顯示內容"
-
-#: ../user/edit_forum_preferences_form.php:118
-msgid "Hide avatar images"
-msgstr "隱藏大頭貼"
-
-#: ../user/edit_forum_preferences_form.php:119
-msgid "Hide signatures"
-msgstr "隱藏簽名"
-
-#: ../user/edit_forum_preferences_form.php:120
-msgid "Show images as links"
-msgstr "將圖片顯示為連結"
-
-#: ../user/edit_forum_preferences_form.php:121
-msgid "Open links in new window/tab"
-msgstr "在新視窗/分頁中打開連結"
-
-#: ../user/edit_forum_preferences_form.php:122
-msgid "Highlight special users"
-msgstr "高亮指定用戶"
-
-#: ../user/edit_forum_preferences_form.php:123
-msgid "Display this many messages per page"
-msgstr "在每頁顯示更多留言"
-
-#: ../user/edit_forum_preferences_form.php:127
-msgid "How to sort"
-msgstr "如何排序"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Threads:"
-msgstr "主題:"
-
-#: ../user/edit_forum_preferences_form.php:128
-msgid "Posts:"
-msgstr "文章:"
-
-#: ../user/edit_forum_preferences_form.php:129
-msgid "Jump to first new post in thread automatically"
-msgstr "自動跳轉到第一篇未讀的文章"
-
-#: ../user/edit_forum_preferences_form.php:130
-msgid "Don't move sticky posts to top"
-msgstr "不要移動置頂文章到頂部"
-
-#. DISABLE_FORUMS
-#. ------------ Message filtering  -----------
-#: ../user/edit_forum_preferences_form.php:137
-msgid "Message filtering"
-msgstr "過濾訊息"
-
-#: ../user/edit_forum_preferences_form.php:153
-msgid "Filtered users"
-msgstr "已過濾的用戶"
-
-#: ../user/edit_forum_preferences_form.php:154
-msgid "Ignore message board posts and private messages from these users."
-msgstr "忽略這些用戶在留言板中的文章和私人訊息。"
-
-#: ../user/edit_forum_preferences_form.php:156
-msgid "User ID (For instance: 123456789)"
-msgstr "用戶 ID(例如:123456789)"
-
-#: ../user/edit_forum_preferences_form.php:157 ../user/pm.php:256
-msgid "Add user to filter"
-msgstr "新增用戶到過濾器"
-
-#: ../user/edit_forum_preferences_form.php:162
-msgid "Click here to update preferences"
-msgstr "點擊這裡更新偏好設定"
-
-#: ../user/edit_forum_preferences_form.php:164
-#: ../user/edit_forum_preferences_form.php:166
-msgid "Reset"
-msgstr "重設"
-
-#: ../user/edit_forum_preferences_form.php:165
-msgid "Or click here to reset preferences to the defaults"
-msgstr "或者點擊這裡將所有偏好設定重設為預設"
-
-#: ../user/edit_passwd_action.php:50
-msgid ""
-"We can't update your password due to a database problem. Please try again "
-"later."
-msgstr "因為資料庫的問題,我們目前無法更新您的密碼,請稍後重試。"
-
-#: ../user/edit_passwd_action.php:53 ../user/edit_passwd_form.php:25
-#: ../user/edit_passwd_form.php:34
-msgid "Change password"
-msgstr "修改密碼"
-
-#: ../user/edit_passwd_action.php:54
-msgid "Your password has been changed."
-msgstr "您的密碼已修改。"
-
-#: ../user/edit_passwd_form.php:32
-msgid "New password"
-msgstr "新密碼"
-
-#: ../user/edit_passwd_form.php:33
-msgid "New password, again"
-msgstr "再次輸入新密碼"
-
-#: ../user/edit_user_info_action.php:31
-msgid "HTML tags are not allowed in your name."
-msgstr "名稱中不允許使用 HTML 語法"
-
-#: ../user/edit_user_info_action.php:34
-msgid "You must supply a name for your account."
-msgstr "您必須為您的帳號取一個名稱。"
-
-#: ../user/edit_user_info_action.php:58
-msgid "Couldn't update user info."
-msgstr "無法更新用戶資訊。"
-
-#: ../user/edit_user_info_form.php:27
-msgid "Edit account information"
-msgstr "編輯帳號資訊"
-
-#: ../user/edit_user_info_form.php:32
-msgid "Name %1 real name or nickname%2"
-msgstr "名稱 %1真名或暱稱%2"
-
-#: ../user/edit_user_info_form.php:35
-msgid "URL %1 of your web page; optional%2"
-msgstr "網址 %1你的個人網頁,可選%2"
-
-#: ../user/edit_user_info_form.php:43
-msgid "Postal (ZIP) code %1 Optional%2"
-msgstr "郵遞區號 %1 可選 %2"
-
-#: ../user/edit_user_info_form.php:47
-msgid "Update info"
-msgstr "更新資訊"
-
-#: ../user/explain_state.php:27
-msgid "Server states"
-msgstr "伺服器狀態"
-
-#: ../user/explain_state.php:30
-msgid ""
-"A tasks's <b>server state</b> indicates whether the task has been sent to a "
-"computer, and if so whether the computer has finished it. Possible values "
-"are:"
-msgstr "運算任務的<b>伺服器狀態</b>表示該任務是否已經被分發到電腦,以及電腦是否已經完成該任務的處理。可能的狀態值包括:"
-
-#: ../user/explain_state.php:35
-msgid ""
-"The task is not ready to send (for example, because its input files are "
-"unavailable)"
-msgstr "該任務尚未準備分發(例如 輸入文件無法使用)"
-
-#: ../user/explain_state.php:38
-msgid "The task is ready to send, but hasn't been sent yet."
-msgstr "該任務已經準備分發,但還沒有分發。"
-
-#: ../user/explain_state.php:40
-msgid "In Progress"
-msgstr "運算中"
-
-#: ../user/explain_state.php:41
-msgid "The task has been sent; waiting for completion."
-msgstr "任務已發送,等待完成。"
-
-#: ../user/explain_state.php:44
-msgid ""
-"The task has been sent to a computer and either it has timed out or the "
-"computer has reported its completion."
-msgstr "該任務已經分發給一台電腦,其結果或者是處理超時,或者是處理完成並正確回報。"
-
-#: ../user/explain_state.php:49
-msgid "Outcomes"
-msgstr "結果"
-
-#: ../user/explain_state.php:52
-msgid ""
-"A tasks's <b>outcome</b> is defined if its server state is <b>over</b>. "
-"Possible values are:"
-msgstr "運算任務的<b>結果</b>僅在其伺服器狀態為<b>完成</b>時才有效,可能的狀態值包括:"
-
-#: ../user/explain_state.php:57
-msgid ""
-"The task was sent to a computer, but the computer has not yet completed the "
-"work and reported the outcome."
-msgstr "該任務已分發給一台電腦,但該電腦尚未完成相應處理。"
-
-#: ../user/explain_state.php:60
-msgid "A computer completed and reported the task successfully."
-msgstr "該任務已由一台電腦完成並且成功的回報結果。"
-
-#: ../user/explain_state.php:63
-msgid ""
-"The server wasn't able to send the task to a computer (perhaps because its "
-"resource requirements were too large)"
-msgstr "伺服器無法分發該任務(可能因為需要的運算資源過大)"
-
-#: ../user/explain_state.php:65
-msgid "Client error"
-msgstr "客戶端錯誤"
-
-#: ../user/explain_state.php:66
-msgid "The task was sent to a computer and an error occurred."
-msgstr "該任務已分發給一台電腦,但在處理過程中產生了錯誤。"
-
-#: ../user/explain_state.php:69
-msgid ""
-"The task was sent to a computer and no reply was received within the time "
-"limit."
-msgstr "該任務已分發給一台電腦,但未在指定的期限內收到回報。"
-
-#: ../user/explain_state.php:72
-msgid ""
-"The task wasn't sent to a computer because enough other tasks were completed"
-" for this workunit."
-msgstr "該任務未分發到電腦,因為所屬的任務已經完成了足夠數量的運算。"
-
-#: ../user/explain_state.php:75
-msgid ""
-"The task was reported but could not be validated, typically because the "
-"output files were lost on the server."
-msgstr "該任務的處理結果已回報但無法被驗證,一般是因為伺服器的輸出文件缺失。"
-
-#: ../user/explain_state.php:80
-msgid "Client states"
-msgstr "客戶端狀態"
-
-#: ../user/explain_state.php:81
-msgid ""
-"A result's <b>client state</b> indicates the stage of processing at which an"
-" error occurred."
-msgstr "運算結果的<b>客戶端狀態</b>表示運算任務在電腦上的處理階段,例如 發生錯誤的時候。"
-
-#: ../user/explain_state.php:86
-msgid "The computer has not yet completed the task."
-msgstr "電腦尚未完成該任務的處理。"
-
-#: ../user/explain_state.php:89
-msgid "The computer completed the task successfully."
-msgstr "電腦已經成功完成了該任務的處理。"
-
-#: ../user/explain_state.php:92
-msgid "The computer couldn't download the application or input files."
-msgstr "電腦無法下載運算程式或輸入文件。"
-
-#: ../user/explain_state.php:95
-msgid "An error occurred during computation."
-msgstr "運算過程中發生錯誤。"
-
-#: ../user/explain_state.php:98
-msgid "The computer couldn't upload the output files."
-msgstr "電腦無法上傳輸出文件。"
-
-#: ../user/explain_state.php:103
-msgid "Time reported and deadline"
-msgstr "回報時間和截止時間"
-
-#: ../user/explain_state.php:106
-msgid ""
-"A task's <b>Time reported or deadline</b> field depends on whether the task "
-"has been reported yet:"
-msgstr "運算任務的<b>回報時間或截止時間</b>字段含義取決於該任務的處理結果已完成回報:"
-
-#: ../user/explain_state.php:110
-msgid "Already reported"
-msgstr "已回報"
-
-#: ../user/explain_state.php:110
-msgid "The date/time it was reported"
-msgstr "回報的日期和時間"
-
-#: ../user/explain_state.php:111
-msgid "Not reported yet, deadline in the future"
-msgstr "還沒有回報,也未到截止時間"
-
-#: ../user/explain_state.php:112
-msgid "Deadline, shown in green."
-msgstr "截止時間顯示為綠色字體。"
-
-#: ../user/explain_state.php:114
-msgid "Not reported yet, deadline in the past"
-msgstr "尚未回報,已過截止時間"
-
-#: ../user/explain_state.php:115
-msgid "Deadline, shown in red."
-msgstr "截止時間顯示為紅色字體。"
-
-#: ../user/explain_state.php:120
-msgid "Unknown field"
-msgstr "未知欄位"
-
-#: ../user/ffmail_action.php:47
-msgid "Email preview"
-msgstr "電子郵件預覽"
-
-#: ../user/ffmail_action.php:48
-msgid "Your email will appear as follows:"
-msgstr "你的電子郵件將顯示為:"
-
-#: ../user/ffmail_action.php:57
-msgid "Send email"
-msgstr "傳送電子郵件"
-
-#: ../user/ffmail_action.php:59
-msgid "Use your browser's back button to return to message form"
-msgstr "使用瀏覽器的返回按鈕退到訊息表單頁面"
-
-#: ../user/ffmail_action.php:63
-msgid "Sending emails"
-msgstr "傳送電子郵件"
-
-#: ../user/ffmail_action.php:82
-msgid "email sent successfully to %1"
-msgstr "電子郵件已成功傳送給 %1"
-
-#: ../user/ffmail_action.php:84
-msgid "failed to send email to %1: %2"
-msgstr "無法傳送電子郵件給 %1:%2"
-
-#: ../user/ffmail_action.php:90
-msgid "Thanks for telling your friends about %1"
-msgstr "感謝您向好友們介紹了 %1"
-
-#: ../user/ffmail_action.php:92
-msgid ""
-"You forgot to enter your friends' names and/or email addresses; Please "
-"%1return to the form%2 and enter them."
-msgstr "您沒有輸入好友的名稱和/或電子郵件地址,請%1回到上一頁%2並重新輸入。"
-
-#: ../user/ffmail_form.php:30
-msgid ""
-"This project hasn't created an email message - please notify its "
-"administrators"
-msgstr "這個專案尚未建立電子郵件 - 請通知專案管理員"
-
-#: ../user/ffmail_form.php:33
-msgid "Tell your friends about %1"
-msgstr "將您對 %1 的看法告訴好友"
-
-#: ../user/ffmail_form.php:37
-msgid "Help us by telling your friends, family and coworkers about %1"
-msgstr "幫助我們向您的好友、家人和同事介紹%1"
-
-#: ../user/ffmail_form.php:39
-msgid ""
-"Fill in this form with the names and email addresses of people you think "
-"might be interested in %1. We'll send them an email in your name, and you "
-"can add your own message if you like."
-msgstr "在表單中填入您認為可能會對 %1 感興趣的人的名稱和電子郵件地址。我們將以您的名義將他們發送電子郵件,郵件的內容你可以自行編輯。"
-
-#: ../user/ffmail_form.php:42
-msgid "Your name:"
-msgstr "您的名稱:"
-
-#: ../user/ffmail_form.php:42
-msgid "Your email address:"
-msgstr "您的電子郵件地址:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's name:"
-msgstr "好友的名稱:"
-
-#: ../user/ffmail_form.php:48
-msgid "Friend's email address:"
-msgstr "好友的電子郵件地址:"
-
-#: ../user/ffmail_form.php:56
-msgid "Additional message (optional)"
-msgstr "額外訊息 (可選)"
-
-#: ../user/ffmail_form.php:59
-msgid "Send"
-msgstr "傳送"
-
-#. Can't moderate without being moderator
-#: ../user/forum_banishment_vote.php:37
-#: ../user/forum_banishment_vote_action.php:35
-msgid "You are not authorized to banish users."
-msgstr "您沒有權限封鎖用戶。"
-
-#: ../user/forum_banishment_vote.php:43 ../user/forum_banishment_vote.php:48
-msgid "Banishment Vote"
-msgstr "封鎖投票"
-
-#: ../user/forum_banishment_vote.php:52
-msgid "No user with this ID found."
-msgstr "找不到符合 ID 的用戶"
-
-#: ../user/forum_banishment_vote.php:57 ../user/forum_moderate_post.php:79
-msgid "User is already banished"
-msgstr "用戶已被封鎖"
-
-#: ../user/forum_banishment_vote.php:62 ../user/forum_moderate_post.php:82
-msgid ""
-"Are you sure you want to banish %1?<br/>This will prevent %1 from posting "
-"for chosen time period.<br/>It should be done only if %1 has consistently "
-"exhibited trollish behavior."
-msgstr "您確定要封鎖 %1 嗎?<br/>該操作將在設定的時間期限內禁止 %1 發帖。 <br/>該操作只用在 %1 有連續的違規行為時被使用。"
-
-#: ../user/forum_banishment_vote.php:64
-msgid ""
-"Select the reason category, optionally write a longer description of why the"
-" user should be banished."
-msgstr "選擇原因分類,並附上為什麼要封鎖此用戶的原因。"
-
-#: ../user/forum_banishment_vote.php:65 ../user/forum_moderate_thread.php:56
-msgid "Category"
-msgstr "分類"
-
-#: ../user/forum_banishment_vote.php:67
-#: ../user/forum_banishment_vote_action.php:59
-#: ../user/forum_moderate_post.php:58 ../user/forum_moderate_thread.php:58
-msgid "Obscene"
-msgstr "猥褻"
-
-#: ../user/forum_banishment_vote.php:68
-#: ../user/forum_banishment_vote_action.php:61
-#: ../user/forum_moderate_post.php:59 ../user/forum_moderate_thread.php:59
-msgid "Flame/Hate mail"
-msgstr "侮辱"
-
-#: ../user/forum_banishment_vote.php:69
-#: ../user/forum_banishment_vote_action.php:63
-#: ../user/forum_moderate_post.php:62
-msgid "User Request"
-msgstr "用戶請求"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_post.php:56
-#: ../user/forum_moderate_thread.php:100
-msgid "Reason"
-msgstr "原因"
-
-#: ../user/forum_banishment_vote.php:72 ../user/forum_moderate_thread.php:100
-msgid "Mailed if nonempty"
-msgstr "如果空白請填電子郵件"
-
-#: ../user/forum_banishment_vote.php:77
-msgid "Proceed with vote"
-msgstr "繼續投票"
-
-#: ../user/forum_banishment_vote_action.php:41
-#: ../user/forum_moderate_post_action.php:66
-msgid "You must specify an action..."
-msgstr "您必須指定一個操作..."
-
-#: ../user/forum_edit.php:41
-msgid ""
-"You can no longer edit this post.<br/>Posts can only be edited at most %1 "
-"minutes after they have been created."
-msgstr "你將無法再編輯此文張。<br/>文章只能發佈後的 %1 分鐘內編輯。"
-
-#: ../user/forum_edit.php:47
-msgid "You are not authorized to edit this post."
-msgstr "您沒有權限編輯此文章。"
-
-#: ../user/forum_edit.php:86 ../user/forum_search.php:74
-msgid "Forum"
-msgstr "論壇"
-
-#: ../user/forum_edit.php:110
-msgid "Edit your message"
-msgstr "編輯您的訊息"
-
-#: ../user/forum_edit.php:115 ../user/forum_edit.php:120
-#: ../user/forum_post.php:113 ../user/forum_post.php:115
-#: ../user/team_forum.php:71
-msgid "Title"
-msgstr "標題"
-
-#: ../user/forum_edit.php:144 ../user/forum_post.php:133
-msgid "Add my signature to this post"
-msgstr "在文章中加入我的簽名"
-
-#: ../user/forum_forum.php:46
-msgid "Not visible to you"
-msgstr "對您不可見"
-
-#: ../user/forum_forum.php:83
-msgid "Team message board for %1"
-msgstr "%1 的團隊留言板"
-
-#: ../user/forum_forum.php:99
-msgid "New thread"
-msgstr "新主題"
-
-#: ../user/forum_forum.php:99
-msgid "Add a new thread to this forum"
-msgstr "在論壇發佈一個新主題"
-
-#: ../user/forum_forum.php:119
-msgid "This message board is available as an %1RSS feed%2"
-msgstr "透過%1RSS訂閱%2可取得最新訊息"
-
-#: ../user/forum_forum.php:178
-msgid "This thread is hidden"
-msgstr "此主題已被隱藏"
-
-#: ../user/forum_forum.php:182
-msgid "This thread is sticky and locked, and you haven't read it yet"
-msgstr "此主題已置頂和關閉,您目前尚未閱讀"
-
-#: ../user/forum_forum.php:182
-msgid "sticky/locked/unread"
-msgstr "置頂/關閉/未讀"
-
-#: ../user/forum_forum.php:184
-msgid "This thread is sticky and you haven't read it yet"
-msgstr "此主題已置頂,您目前尚未閱讀"
-
-#: ../user/forum_forum.php:184
-msgid "sticky/unread"
-msgstr "置頂/未讀"
-
-#: ../user/forum_forum.php:188
-msgid "You haven't read this thread yet, and it's locked"
-msgstr "您尚未閱讀此主題,而且這個主題已關閉"
-
-#: ../user/forum_forum.php:188
-msgid "unread/locked"
-msgstr "未讀/關閉"
-
-#: ../user/forum_forum.php:190
-msgid "You haven't read this thread yet"
-msgstr "您尚未閱讀過此主題"
-
-#: ../user/forum_forum.php:196
-msgid "This thread is sticky and locked"
-msgstr "此主題已被置頂和關閉"
-
-#: ../user/forum_forum.php:196
-msgid "sticky/locked"
-msgstr "置頂/關閉"
-
-#: ../user/forum_forum.php:198
-msgid "This thread is sticky"
-msgstr "此主題已被置頂"
-
-#: ../user/forum_forum.php:198
-msgid "sticky"
-msgstr "置頂"
-
-#: ../user/forum_forum.php:202
-msgid "This thread is locked"
-msgstr "此主題已關閉"
-
-#: ../user/forum_forum.php:202
-msgid "locked"
-msgstr "關閉"
-
-#: ../user/forum_forum.php:204
-msgid "You read this thread"
-msgstr "您已閱讀過此主題"
-
-#: ../user/forum_forum.php:204
-msgid "read"
-msgstr "已讀"
-
-#: ../user/forum_help_desk.php:29
-msgid "Questions and answers"
-msgstr "問與答"
-
-#: ../user/forum_help_desk.php:32
-msgid ""
-"Talk live via Skype with a volunteer, in any of several languages. Go to "
-"%1BOINC Online Help%2."
-msgstr "通過Skype和志工線上交流,支持多種語言,請到 %1BOINC 線上幫助%2。"
-
-#: ../user/forum_help_desk.php:46 ../user/forum_index.php:97
-msgid "Topic"
-msgstr "主題"
-
-#: ../user/forum_help_desk.php:47
-msgid "Questions"
-msgstr "問題"
-
-#: ../user/forum_index.php:58 ../user/team_forum.php:70
-msgid "Discussion among members of %1"
-msgstr "%1 成員間的討論"
-
-#: ../user/forum_index.php:74
-msgid "%1 Message boards"
-msgstr "%1 留言板"
-
-#: ../user/forum_index.php:83
-msgid ""
-"If you have a question or problem, please use the %1Questions & Answers%2 "
-"section of the message boards."
-msgstr "如果你有問題希望得到解答,請使用留言板中的 %1問題解答%2 區。"
-
-#: ../user/forum_index.php:128
-msgid "Subscribed threads"
-msgstr "已訂閱的主題"
-
-#: ../user/forum_moderate_post.php:45
-msgid "Moderate post"
-msgstr "處理文章"
-
-#: ../user/forum_moderate_post.php:55
-msgid "Hide post"
-msgstr "隱藏文章"
-
-#: ../user/forum_moderate_post.php:60 ../user/forum_moderate_thread.php:60
-msgid "Commercial spam"
-msgstr "垃圾廣告"
-
-#: ../user/forum_moderate_post.php:61
-msgid "Doublepost"
-msgstr "重覆發文"
-
-#: ../user/forum_moderate_post.php:66
-msgid "Move post"
-msgstr "移動文章"
-
-#: ../user/forum_moderate_post.php:68
-msgid "Destination thread ID:"
-msgstr "目標主題ID:"
-
-#: ../user/forum_moderate_post.php:81
-msgid "Banish user"
-msgstr "封鎖用戶"
-
-#: ../user/forum_moderate_post.php:83
-msgid "Ban duration"
-msgstr "禁用時間"
-
-#: ../user/forum_moderate_post.php:84
-msgid "4 hours"
-msgstr "4小時"
-
-#: ../user/forum_moderate_post.php:85 ../user/forum_search.php:47
-msgid "1 day"
-msgstr "1天"
-
-#: ../user/forum_moderate_post.php:86
-msgid "1 week"
-msgstr "1週"
-
-#: ../user/forum_moderate_post.php:87
-msgid "2 weeks"
-msgstr "2週"
-
-#: ../user/forum_moderate_post.php:88
-msgid "1 month"
-msgstr "1個月"
-
-#: ../user/forum_moderate_post.php:89
-msgid "Forever"
-msgstr "永久"
-
-#: ../user/forum_moderate_post.php:99 ../user/forum_moderate_post.php:112
-#: ../user/forum_moderate_thread.php:106 ../user/forum_post.php:134
-#: ../user/forum_report_post.php:88 ../user/forum_rss.php:51
-#: ../user/friend.php:83 ../user/get_passwd.php:32 ../user/get_passwd.php:75
-msgid "OK"
-msgstr "確認"
-
-#: ../user/forum_moderate_post.php:107
-msgid "Optional explanation %1 This is included in email to user.%2"
-msgstr "封鎖原因 %1將發送到用戶的電子郵件中。 %2"
-
-#: ../user/forum_moderate_post_action.php:60
-msgid "You are not authorized to moderate this post."
-msgstr "您沒有權限修改這篇文章"
-
-#: ../user/forum_moderate_post_action.php:105
-msgid "Can't move to different category type"
-msgstr "無法移動到不同的版面類型"
-
-#: ../user/forum_moderate_post_action.php:109
-msgid "Can't move to different category"
-msgstr "無法移動到不同的版面"
-
-#: ../user/forum_moderate_post_action.php:130
-msgid "Not authorized to banish users"
-msgstr "沒有權限封鎖用戶"
-
-#: ../user/forum_moderate_post_action.php:146
-msgid "Banishment"
-msgstr "封鎖"
-
-#: ../user/forum_moderate_post_action.php:148
-msgid "User %1 has been banished."
-msgstr "用戶 %1 已被封鎖。"
-
-#: ../user/forum_moderate_post_action.php:151
-msgid "Action failed: possible database problem"
-msgstr "操作失敗:可能是資料庫故障"
-
-#: ../user/forum_moderate_thread.php:38
-msgid "not authorized"
-msgstr "未授權"
-
-#: ../user/forum_moderate_thread.php:41
-msgid "Moderate thread '%1'"
-msgstr "處理主題“%1”"
-
-#: ../user/forum_moderate_thread.php:54
-msgid ""
-"Select the reason category, or write a longer description of why you're "
-"hiding or locking the thread; then press OK."
-msgstr "選擇處理原因,或者在編輯框中詳細說明要隱藏或鎖定此主題的原因,然後點擊確定。"
-
-#: ../user/forum_moderate_thread.php:78
-msgid "Current forum"
-msgstr "當前論壇"
-
-#: ../user/forum_moderate_thread.php:79
-msgid "Destination forum"
-msgstr "目標論壇"
-
-#: ../user/forum_moderate_thread.php:83
-msgid "New title:"
-msgstr "新標題:"
-
-#: ../user/forum_post.php:44
-msgid ""
-"Only project admins may create a thread here. However, you may reply to "
-"existing threads."
-msgstr "指有專案管理員可以在此建立主題,但您可以回覆已有的主題。"
-
-#: ../user/forum_post.php:64
-msgid ""
-"Your message was flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "您的訊息已被 Akismet 防垃圾郵件系統標記為垃圾訊息,請修改你輸入的內容並重試。"
-
-#: ../user/forum_post.php:74
-msgid "Create new thread"
-msgstr "建立新主題"
-
-#: ../user/forum_post.php:104
-msgid "Create a new thread"
-msgstr "建立新主題"
-
-#: ../user/forum_post.php:109
-msgid "Remember to add a title"
-msgstr "記得寫上標題"
-
-#: ../user/forum_post.php:131
-msgid "Show this item as a Notice in the BOINC Manager"
-msgstr "將該項顯示為 BOINC 客戶端的通知"
-
-#: ../user/forum_post.php:131
-msgid "Do so only for items likely to be of interest to all volunteers."
-msgstr "僅在所有參與者都可能對該項感興趣的時候使用"
-
-#: ../user/forum_rate.php:28
-msgid "Rating offline"
-msgstr "評分功能離線"
-
-#: ../user/forum_rate.php:29
-msgid "This function is turned off by the project"
-msgstr "此功能已被專案關閉"
-
-#: ../user/forum_rate.php:60
-msgid "You need more average or total credit to rate a post."
-msgstr "您需要更高的平均積分或總積分才能對文章進行評分。"
-
-#: ../user/forum_rate.php:64
-msgid "You have already rated this post."
-msgstr "您已經評價過此文章。"
-
-#: ../user/forum_rate.php:64 ../user/forum_rate.php:80
-#: ../user/forum_rate.php:85 ../user/forum_report_post.php:72
-#: ../user/forum_report_post.php:97 ../user/forum_subscribe.php:56
-#: ../user/forum_subscribe.php:71 ../user/forum_thread_status.php:56
-msgid "Return to thread"
-msgstr "返回主題"
-
-#: ../user/forum_rate.php:74
-msgid "Input Recorded"
-msgstr "輸入已紀錄"
-
-#: ../user/forum_rate.php:75
-msgid "Your input has been recorded. Thanks for your help."
-msgstr "輸入已經被記錄下來,感謝您的幫助。"
-
-#: ../user/forum_rate.php:77
-msgid "Vote Registered"
-msgstr "投票已登記"
-
-#: ../user/forum_rate.php:78
-msgid "Your rating has been recorded. Thanks for your input."
-msgstr "評分已經被記錄下來,感謝您的參與。"
-
-#: ../user/forum_rate.php:82
-msgid "Vote Submission Problem"
-msgstr "投票提交故障"
-
-#: ../user/forum_reply.php:76
-msgid ""
-"Your post has been flagged as spam by the Akismet anti-spam system. Please "
-"modify your text and try again."
-msgstr "你的文章已被 Akismet 防垃圾郵件系統標記為垃圾訊息,請修改你輸入的內容並重試。"
-
-#: ../user/forum_reply.php:91 ../user/forum_thread.php:159
-#: ../user/forum_thread.php:284
-msgid "Post to thread"
-msgstr "回覆此主題"
-
-#: ../user/forum_reply.php:143
-msgid "Message:"
-msgstr "訊息:"
-
-#: ../user/forum_reply.php:146
-msgid "reply to %1Message ID%2:"
-msgstr "回覆%1訊息 ID%2:"
-
-#: ../user/forum_reply.php:172
-msgid "Post reply"
-msgstr "發表回覆"
-
-#: ../user/forum_reply.php:175
-msgid "Add my signature to this reply"
-msgstr "在回覆中附上我的簽名"
-
-#: ../user/forum_report_post.php:48
-msgid "You need more average or total credit to report a post."
-msgstr "您需要更高的平均積分或總積分才能舉報一個文章。"
-
-#: ../user/forum_report_post.php:68
-msgid "Report Registered"
-msgstr "舉報已記錄"
-
-#: ../user/forum_report_post.php:69
-msgid "Your report has been recorded. Thanks for your input."
-msgstr "您的回報已經記錄,感謝您的幫忙。"
-
-#: ../user/forum_report_post.php:70
-msgid ""
-"A moderator will now look at your report and decide what will happen - this "
-"may take a little while, so please be patient"
-msgstr "管理員將會查看您的舉報並決定如何處理 - 可能需要一些時間,請耐心等待"
-
-#: ../user/forum_report_post.php:74
-msgid "Report a forum post"
-msgstr "舉報論壇文章"
-
-#: ../user/forum_report_post.php:76
-msgid ""
-"Before reporting this post, consider using the +/- rating system instead. If"
-" enough users rate a post negatively it will eventually be hidden.<br />You "
-"can find the rating system at the bottom of the post."
-msgstr "在舉報之前,可以考慮使用+/- 評分系統。如果足夠多的用戶給一篇文章負面評價,該文章將自動隱藏。 <br />您可以在文章下方找到評分系統。"
-
-#: ../user/forum_report_post.php:83
-msgid "Report post"
-msgstr "舉報文章"
-
-#: ../user/forum_report_post.php:84
-msgid ""
-"Why do you find the post offensive: %1Please include enough information so that a person that\n"
-"has not yet read the thread will quickly be able to identify the issue.%2"
-msgstr "為什麼你認為這篇文章是令人不快的:%1請包含足夠的說明以便沒有閱讀過整個主題的人也能快速的判明問題。 %2"
-
-#: ../user/forum_report_post.php:93
-msgid "Report not registered"
-msgstr "舉報未記錄"
-
-#: ../user/forum_report_post.php:94
-msgid "Your report could not be recorded. Please wait a while and try again."
-msgstr "您的舉報未被記錄,請等待片刻後重試。"
-
-#: ../user/forum_report_post.php:95
-msgid ""
-"If this is not a temporary error, please report it to the project "
-"developers."
-msgstr "如果該故障無法自動恢復,請向專案開發人員報告。"
-
-#: ../user/forum_rss.php:38
-msgid "%1 RSS feed"
-msgstr "%1 RSS訂閱"
-
-#: ../user/forum_rss.php:39
-msgid "This message board is available as an RSS feed."
-msgstr "通過RSS訂閱可取得最新訊息。"
-
-#: ../user/forum_rss.php:41
-msgid "Options:"
-msgstr "選項:"
-
-#: ../user/forum_rss.php:45
-msgid "Include only posts by user ID %1 (default: all users)."
-msgstr "只包含用戶 ID 為 %1 的文章(默認:所有用戶)。"
-
-#: ../user/forum_rss.php:47
-msgid "Include only posts from the last %1 days (default: 30)."
-msgstr "只包含最近多少天內的文章(默認:30)。"
-
-#: ../user/forum_rss.php:49
-msgid "Threads only: %1 (Include only the first post of every thread)"
-msgstr "僅主題:%1(只包含每個主題的第一篇文章)"
-
-#: ../user/forum_search.php:29
-msgid "Forum search"
-msgstr "搜尋論壇"
-
-#: ../user/forum_search.php:33
-msgid "Search query"
-msgstr "搜尋詢問"
-
-#: ../user/forum_search.php:34
-msgid "Search for keywords:"
-msgstr "搜尋關鍵字:"
-
-#: ../user/forum_search.php:35
-msgid "Posts that contain all the specified words will be displayed"
-msgstr "包含所有指定字詞的文章將被顯示"
-
-#: ../user/forum_search.php:37
-msgid "For example: \"screensaver freeze\""
-msgstr "舉例:“螢幕保護程式凍結”"
-
-#: ../user/forum_search.php:38
-msgid "Search for author ID:"
-msgstr "搜尋作者 ID:"
-
-#: ../user/forum_search.php:39
-msgid "Only posts by this author will be displayed"
-msgstr "僅指定作者的文章會被顯示"
-
-#: ../user/forum_search.php:41
-msgid "For example: \"43214\""
-msgstr "舉例:“43214”"
-
-#: ../user/forum_search.php:43
-msgid "Search options"
-msgstr "搜尋選項"
-
-#: ../user/forum_search.php:44
-msgid "Search limits"
-msgstr "搜尋限制"
-
-#: ../user/forum_search.php:45
-msgid "Search at most this many days back in time"
-msgstr "只搜索最近多少天內的"
-
-#: ../user/forum_search.php:52 ../user/forum_search.php:53
-msgid "%1 months"
-msgstr "%1 月"
-
-#: ../user/forum_search.php:54
-msgid "1 year"
-msgstr "一年"
-
-#: ../user/forum_search.php:55
-msgid "no limit"
-msgstr "不限制"
-
-#: ../user/forum_search.php:75
-msgid "Only display posts from this forum"
-msgstr "只顯示指定論壇的文章"
-
-#: ../user/forum_search.php:86
-msgid "Sort by"
-msgstr "排序"
-
-#: ../user/forum_search.php:90
-msgid "Start the search"
-msgstr "開始搜尋"
-
-#: ../user/forum_search_action.php:143
-msgid "Forum search results"
-msgstr "論壇搜尋結果"
-
-#: ../user/forum_search_action.php:176
-msgid "Thread titles matching your query:"
-msgstr "符合您的查詢條件的主題:"
-
-#: ../user/forum_search_action.php:196
-msgid "Messages matching your query:"
-msgstr "符合你的查詢條件的消息:"
-
-#: ../user/forum_search_action.php:219
-msgid ""
-"Sorry, couldn't find anything matching your search query. You can try to "
-"broaden your search by using less words (or less specific words)."
-msgstr "對不起,無法根據您的查詢條件找到任何結果。您可以試著放寬查詢條件,比如使用更少的關鍵字詞或者更寬泛的字詞。"
-
-#: ../user/forum_search_action.php:221
-msgid "You can also %1try the same search on Google.%2"
-msgstr "你也可以%1用 Google 進行同樣的搜索。 %2"
-
-#: ../user/forum_search_action.php:226
-msgid "Perform another search"
-msgstr "重新搜尋"
-
-#: ../user/forum_subscribe.php:48
-msgid "Subscription successful"
-msgstr "訂閱成功"
-
-#: ../user/forum_subscribe.php:51
-msgid ""
-"You are now subscribed to %1. You will be notified whenever there is a new "
-"post."
-msgstr "您已經訂閱主題%1,一旦該主題有更新,您將得到通知。"
-
-#: ../user/forum_subscribe.php:53
-msgid "Subscription failed"
-msgstr "訂閱失敗"
-
-#: ../user/forum_subscribe.php:54
-msgid ""
-"We are currently unable to subscribe you to %1. Please try again later.."
-msgstr "我們目前無法新增您對 %1 的訂閱,請稍後再試..."
-
-#: ../user/forum_subscribe.php:63
-msgid "Unsubscription successful"
-msgstr "退訂成功"
-
-#: ../user/forum_subscribe.php:66
-msgid ""
-"You are no longer subscribed to %1. You will no longer receive notifications"
-" for this thread."
-msgstr "您已經退訂主題%1,您將不會再收到該主題的通知。"
-
-#: ../user/forum_subscribe.php:68
-msgid "Unsubscription failed"
-msgstr "退訂失敗"
-
-#: ../user/forum_subscribe.php:69
-msgid ""
-"We are currently unable to unsubscribe you from %1. Please try again later.."
-msgstr "我們目前無法解除您對 %1 的訂閱,請稍後再試..."
-
-#: ../user/forum_subscribe.php:76
-msgid "Unknown subscription action"
-msgstr "未知的訂閱操作"
-
-#: ../user/forum_thread.php:66
-msgid "This forum is not visible to you."
-msgstr "您不能查看本論壇。"
-
-#: ../user/forum_thread.php:74
-msgid "This thread has been hidden by moderators."
-msgstr "主題已被管理員隱藏"
-
-#: ../user/forum_thread.php:129
-msgid "My question was answered"
-msgstr "我的問題已得到解答"
-
-#: ../user/forum_thread.php:130
-msgid "Click here if your question has been adequately answered"
-msgstr "如果您的問題已經得到充分的解答,請點擊這裡"
-
-#: ../user/forum_thread.php:138
-msgid "I've also got this question"
-msgstr "我也有同樣的問題"
-
-#: ../user/forum_thread.php:160 ../user/forum_thread.php:285
-msgid "Add a new message to this thread"
-msgstr "回覆本主題"
-
-#: ../user/forum_thread.php:172
-msgid "Unsubscribe"
-msgstr "退訂主題"
-
-#: ../user/forum_thread.php:173
-msgid "You are subscribed to this thread.  Click here to unsubscribe."
-msgstr "您已經訂閱了本主題。點擊這裡取消訂閱。"
-
-#: ../user/forum_thread.php:179
-msgid "Subscribe"
-msgstr "訂閱該主題"
-
-#: ../user/forum_thread.php:180
-msgid "Click to get email when there are new posts in this thread"
-msgstr "如果您需要在本主題中有新的回帖時通過電子郵件通知你請點擊。"
-
-#: ../user/forum_thread.php:191
-msgid "Unhide this thread"
-msgstr "取消隱藏本主題"
-
-#: ../user/forum_thread.php:197
-msgid "Hide this thread"
-msgstr "隱藏本主題"
-
-#: ../user/forum_thread.php:203
-msgid "Make unsticky"
-msgstr "取消置頂"
-
-#: ../user/forum_thread.php:204
-msgid "Make this thread not sticky"
-msgstr "取消本主題的置頂"
-
-#: ../user/forum_thread.php:209
-msgid "Make sticky"
-msgstr "置頂"
-
-#: ../user/forum_thread.php:210
-msgid "Make this thread always appear at top of forum"
-msgstr "使得這個帖子總是在論壇的頂端顯示"
-
-#: ../user/forum_thread.php:216
-msgid "Unlock"
-msgstr "解鎖"
-
-#: ../user/forum_thread.php:217
-msgid "Allow new posts in this thread"
-msgstr "在這討論串中允許新回覆"
-
-#: ../user/forum_thread.php:222
-msgid "Lock"
-msgstr "鎖定"
-
-#: ../user/forum_thread.php:223
-msgid "Don't allow new posts in this thread"
-msgstr "在這討論串中不允許新回覆"
-
-#: ../user/forum_thread.php:230
-msgid "Move this thread to a different forum"
-msgstr "移動本主題到其它論壇"
-
-#: ../user/forum_thread.php:235
-msgid "Edit title"
-msgstr "編輯標題"
-
-#: ../user/forum_thread.php:236
-msgid "Edit thread title"
-msgstr "編輯主題的標題"
-
-#: ../user/forum_thread.php:244
-msgid "Delete thread permanently"
-msgstr "永久刪除討論串"
-
-#: ../user/forum_thread.php:254
-msgid "Export as Notice"
-msgstr "匯出通知"
-
-#: ../user/forum_thread.php:260
-msgid "Don't export"
-msgstr "不要匯出"
-
-#: ../user/forum_thread.php:261
-msgid "Don't export this news item as a Notice"
-msgstr "不要將新聞項匯出通知"
-
-#: ../user/forum_thread.php:270 ../user/forum_thread.php:272
-msgid "Sort"
-msgstr "排序"
-
-#. --------------
-#: ../user/forum_thread_status.php:54
-msgid "Thread status updated"
-msgstr "主題狀態已更新"
-
-#: ../user/forum_thread_status.php:55
-msgid "The status has been updated."
-msgstr "狀態已更新。"
-
-#: ../user/forum_user_posts.php:75
-msgid "Posts by %1"
-msgstr "%1的文章"
-
-#: ../user/friend.php:35
-msgid "Already friends"
-msgstr "已經是好友"
-
-#: ../user/friend.php:41
-msgid "You requested friendship with %1 on %2."
-msgstr "您已經給 %1 發送過好友請求(%2)。"
-
-#: ../user/friend.php:43
-msgid "This request is still pending confirmation."
-msgstr "請求仍在等待對方確認。"
-
-#: ../user/friend.php:54
-msgid "%1 is not accepting friendship requests from you"
-msgstr "%1 沒有接受您的好友請求"
-
-#: ../user/friend.php:63
-msgid "You can't be friends with yourself"
-msgstr "您不能加自己為好友"
-
-#: ../user/friend.php:71
-msgid "Add friend"
-msgstr "新增好友"
-
-#: ../user/friend.php:76
-msgid ""
-"You have asked to add %1 as a friend. We will notify %1 and will ask him/her"
-" to confirm that you are friends."
-msgstr "您已經要求將 %1 加為好友,我們將通知 %1 並請他/她來確認你們的關係。"
-
-#: ../user/friend.php:79
-msgid "Add an optional message here:"
-msgstr "可以在這裡添加附加訊息:"
-
-#: ../user/friend.php:117
-msgid "Friend request sent"
-msgstr "好友請求已發送"
-
-#: ../user/friend.php:118
-msgid "We have notified %1 of your request."
-msgstr "我們已經把您的好友請求通知 %1。"
-
-#: ../user/friend.php:128
-msgid "Please log in as %1"
-msgstr "請以 %1 的身份登入"
-
-#: ../user/friend.php:129
-msgid "You must log in as %1 to view this friend request"
-msgstr "您必須以 %1 的身份登入才能查看該好友請求"
-
-#: ../user/friend.php:140
-msgid "Friend request"
-msgstr "好友請求"
-
-#: ../user/friend.php:143
-msgid "%1 has requested friendship with you."
-msgstr "%1 發送了好友請求給你。"
-
-#: ../user/friend.php:145
-msgid "%1 says: %2"
-msgstr "%1 還說:%2"
-
-#: ../user/friend.php:148
-msgid "Accept friendship"
-msgstr "接受好友請求"
-
-#: ../user/friend.php:148
-msgid "Click accept if %1 is in fact a friend"
-msgstr "如果 %1 是你的好友請點擊接受"
-
-#: ../user/friend.php:149
-msgid "Decline"
-msgstr "拒絕"
-
-#: ../user/friend.php:149
-msgid "Click decline if %1 is not a friend"
-msgstr "如果 %1 不是你的好友請點擊拒絕"
-
-#: ../user/friend.php:188
-msgid "Friendship confirmed"
-msgstr "好友請求已確認"
-
-#: ../user/friend.php:189
-msgid "Your friendship with %1 has been confirmed."
-msgstr "你與 %1 的好友關係已經被確認。"
-
-#: ../user/friend.php:207
-msgid "Friendship declined"
-msgstr "好友請求被拒絕"
-
-#: ../user/friend.php:208
-msgid "You have declined friendship with %1"
-msgstr "你已經拒絕了與 %1 的好友關係"
-
-#: ../user/friend.php:223
-msgid "Notification not found"
-msgstr "無法找到通知"
-
-#: ../user/friend.php:225
-msgid "Friend confirmed"
-msgstr "好友已確認"
-
-#: ../user/friend.php:226
-msgid "You are now friends with %1."
-msgstr "你現在和 %1 是好友了。"
-
-#: ../user/friend.php:234
-msgid "Cancel friendship?"
-msgstr "刪除好友"
-
-#: ../user/friend.php:236
-msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr "你確定想要取消與 %1 的好友關係嗎?"
-
-#: ../user/friend.php:241
-msgid "Stay friends"
-msgstr "保持好友關係"
-
-#: ../user/friend.php:251
-msgid "Friendship cancelled"
-msgstr "好友關係已取消"
-
-#: ../user/friend.php:252
-msgid "Your friendship with %1 has been cancelled."
-msgstr "你與 %1 的好友關係已經取消。"
-
-#: ../user/get_passwd.php:27
-msgid ""
-"1) If you know your account's email address, and you can receive email "
-"there:"
-msgstr "1) 如果你知道你帳戶連結的電子郵件地址,你可以在那裡收到電子郵件:"
-
-#: ../user/get_passwd.php:28
-msgid ""
-"Enter the email address below, and click OK. You will be sent email "
-"instructions for resetting your password."
-msgstr "輸入電子郵件地址,點擊確定後,你將收到關於如何重置密碼的操作指導。"
-
-#: ../user/get_passwd.php:46
-msgid ""
-"2) If you forgot your account's email address, or you can't receive email "
-"there:"
-msgstr "2) 如果你已經忘記了你帳戶所連結的電子郵件地址,或者你已經不能從此信箱接收電子郵件:"
-
-#: ../user/get_passwd.php:47
-msgid ""
-"If you have run BOINC under this account, you can still access it. Here's "
-"how:"
-msgstr "如果你仍有 BOINC 客戶端執行在該帳戶下,請按如下操作指導取回你的密碼:"
-
-#: ../user/get_passwd.php:50
-msgid ""
-"Go to the BOINC data directory on your computer (its location is written to "
-"the Event Log at startup)."
-msgstr "切換到你電腦上的 BOINC 資料目錄 (這個目錄在一開始就已經寫到事件記錄裡頭)"
-
-#: ../user/get_passwd.php:51
-msgid "Find your account file for this project; it will be named <b>%1</b>."
-msgstr "找到本專案的帳戶文件,文件名為:<b>%1</b>。"
-
-#: ../user/get_passwd.php:52
-msgid "Open the file in a text editor like Notepad. You'll see something like"
-msgstr "用記事本等文件編輯器打開該文件,你將看到類似的如下內容:"
-
-#: ../user/get_passwd.php:62
-msgid ""
-"Select and Copy the string between %1 and %2 (%3 in the above example)."
-msgstr "選取並複製%1 和%2 之間的內容(上述例子中就應該是%3)。"
-
-#: ../user/get_passwd.php:64
-msgid "Paste the string into the field below, and click OK."
-msgstr "將之前複製的內容貼到下面的表格中,並點擊確定。"
-
-#: ../user/get_passwd.php:65
-msgid ""
-"You will now be logged in to your account; update the email and password of "
-"your account."
-msgstr "你現在將登入進自己的帳戶,可以更新你的電子郵件和密碼。"
-
-#: ../user/get_passwd.php:71
-msgid "Log in with authenticator"
-msgstr "用身份驗證碼(authenticator)來登入"
-
-#: ../user/get_passwd.php:81
-msgid "Forgot your account info?"
-msgstr "忘記了你的帳戶資訊?"
-
-#: ../user/gpu_list.php:150 ../user/gpu_list.php:176
-msgid "No GPU tasks reported"
-msgstr "還沒有已上傳的 GPU 運算任務"
-
-#: ../user/gpu_list.php:206
-msgid "Top GPU models"
-msgstr "GPU 型號排名"
-
-#: ../user/gpu_list.php:207
-msgid ""
-"The following lists show the most productive GPU models on different "
-"platforms.  Relative speeds, measured by average elapsed time of tasks, are "
-"shown in parentheses."
-msgstr "下面的列表顯示了各個平臺上效率最好的 GPU 型號,這些速度由任務平均完成時間計算得到,不同型號間的速度差異用百分比來表示。"
-
-#: ../user/home.php:42
-msgid "Welcome to %1"
-msgstr "歡迎來到 %1"
-
-#: ../user/home.php:43
-msgid "View and edit your account preferences using the links below."
-msgstr "使用下面的連結查看及編輯你的帳戶偏好設定"
-
-#: ../user/home.php:46
-msgid "If you have not already done so, %1download BOINC client software%2."
-msgstr "如果還沒有的話,%1下載 BOINC 的客戶端軟體%2。"
-
-#: ../user/home.php:49 ../project.sample/project.inc:70
-msgid "Your account"
-msgstr "您的帳號"
-
-#: ../user/host_app_versions.php:37
-msgid "Anonymous platform, missing app"
-msgstr "匿名平台,未知程式"
-
-#: ../user/host_app_versions.php:40
-msgid "anonymous platform"
-msgstr "匿名平台"
-
-#: ../user/host_app_versions.php:43
-msgid "Missing app version"
-msgstr "無法辨識程式版本"
-
-#: ../user/host_app_versions.php:45
-msgid "Missing app"
-msgstr "未知程式"
-
-#: ../user/host_app_versions.php:47
-msgid "Missing platform"
-msgstr "無法辨識的平台"
-
-#: ../user/host_app_versions.php:56
-msgid "Number of tasks completed"
-msgstr "完成的運算任務數量"
-
-#: ../user/host_app_versions.php:57
-msgid "Max tasks per day"
-msgstr "每日最大任務數量"
-
-#: ../user/host_app_versions.php:58
-msgid "Number of tasks today"
-msgstr "今天的任務數量"
-
-#: ../user/host_app_versions.php:59
-msgid "Consecutive valid tasks"
-msgstr "連續完成的運算任務數量"
-
-#: ../user/host_app_versions.php:63
-msgid "Average processing rate"
-msgstr "平均處理速度"
-
-#: ../user/host_app_versions.php:72
-msgid "Application details for host %1"
-msgstr "主機 %1 的運算程式細節"
-
-#: ../user/host_delete.php:31
-msgid "We have no record of that computer."
-msgstr "我們沒有該電腦的記錄。"
-
-#: ../user/host_delete.php:38
-msgid ""
-"You can not delete our record of this computer because our database still "
-"contains work for it. You must wait a few days until the work for this "
-"computer has been deleted from the project database."
-msgstr "你目前不能刪除該電腦的記錄,因為我們資料庫中仍有和其相關的運算任務記錄。你需要等到所有指定給該電腦的任務記錄都從專案資料庫中刪除,一般可能需要幾天。"
-
-#: ../user/host_delete.php:40
-msgid "Delete record of computer"
-msgstr "刪除電腦紀錄"
-
-#: ../user/host_delete.php:41
-msgid "Record deleted."
-msgstr "紀錄已刪除。"
-
-#: ../user/host_delete.php:42 ../user/host_edit_action.php:65
-msgid "Return to list of your computers"
-msgstr "返回您的電腦列表"
-
-#: ../user/host_edit_action.php:39
-msgid "Merge computer records"
-msgstr "合併電腦記錄"
-
-#: ../user/host_edit_form.php:35
-msgid "Merge computers"
-msgstr "合併電腦"
-
-#: ../user/host_edit_form.php:38
-msgid ""
-"Sometimes BOINC assigns separate identities to the same computer by mistake."
-" You can correct this by merging old identities with the newest one."
-msgstr "有時候,BOINC 會給同一台電腦賦予多個唯一標識,你可以通過將舊標識和新標識合併以糾正該問題。"
-
-#: ../user/host_edit_form.php:56
-msgid "No hosts are eligible for merging with this one."
-msgstr "沒有符合條件的主機可以和該主機合併。"
-
-#: ../user/host_edit_form.php:58 ../user/host_edit_form.php:114
-msgid "Show details"
-msgstr "顯示細節"
-
-#: ../user/host_edit_form.php:66
-msgid ""
-"Check the computers that are the same as %1 (created %2, computer ID %3):"
-msgstr "選擇和%1 相同的電腦(創建於%2,電腦 ID 為%3):"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:39
-msgid "name"
-msgstr "名稱"
-
-#: ../user/host_edit_form.php:70 ../user/workunit.php:41
-msgid "created"
-msgstr "建立時間"
-
-#: ../user/host_edit_form.php:70
-msgid "computer ID"
-msgstr "電腦 ID"
-
-#: ../user/host_edit_form.php:77
-msgid "no hostname"
-msgstr "沒有主機名稱"
-
-#: ../user/host_edit_form.php:109
-msgid "Merge hosts"
-msgstr "合併主機"
-
-#: ../user/host_update_credit.php:27
-msgid "Updating computer credit"
-msgstr "正在更新電腦積分"
-
-#: ../user/host_update_credit.php:37
-msgid "Host credit updated"
-msgstr "主機積分已更新"
-
-#: ../user/host_venue_action.php:41
-msgid "Host venue updated"
-msgstr "主機位置已更新"
-
-#: ../user/host_venue_action.php:43
-msgid "none"
-msgstr "無"
-
-#: ../user/host_venue_action.php:46
-msgid "The venue of this host has been set to %1."
-msgstr "該主機的位置已設置為 %1。"
-
-#: ../user/host_venue_action.php:48
-msgid ""
-"This change will take effect the next time the host communicates with this "
-"project."
-msgstr "更改將在該主機下一次和專案通訊的時候生效。"
-
-#: ../user/host_venue_action.php:50
-msgid "Return to host page"
-msgstr "返回主機頁面"
-
-#: ../user/hosts_user.php:53
-msgid "Computers belonging to %1"
-msgstr "%1 的電腦"
-
-#: ../user/hosts_user.php:55
-msgid "Computers hidden"
-msgstr "電腦已隱藏"
-
-#: ../user/hosts_user.php:56
-msgid ""
-"This user has chosen not to show information about his or her computers."
-msgstr "該用戶已設定為不顯示其電腦的詳細信息。"
-
-#: ../user/hosts_user.php:64
-msgid "Your computers"
-msgstr "您的電腦"
-
-#: ../user/html.php:23
-msgid "Allowed HTML tags"
-msgstr "允許 HTML 語法"
-
-#: ../user/html.php:25
-msgid "The following HTML tags are allowed in team descriptions:"
-msgstr "團隊描述中可以使用下列 HTML 語法:"
-
-#: ../user/html.php:27
-msgid "bold"
-msgstr "粗體"
-
-#: ../user/html.php:28
-msgid "italics"
-msgstr "斜體"
-
-#: ../user/html.php:29
-msgid "hyperlink"
-msgstr "超連結"
-
-#: ../user/html.php:30
-msgid "paragraph"
-msgstr "段落"
-
-#: ../user/html.php:31
-msgid "break"
-msgstr "換行"
-
-#: ../user/html.php:32
-msgid "preformatted"
-msgstr "預設格式"
-
-#: ../user/html.php:33
-msgid ""
-"image; height cannot exceed 450 pixels. Please do not link to images without"
-" permission of the web site where the image is hosted."
-msgstr "圖片,高度不能超出 450 像素,請不要在未經允許的情況下引用其它網站上的圖片。"
-
-#: ../user/html.php:35
-msgid "You can also use ampersand notation for special characters."
-msgstr "你也可以使用&(和號)開頭的字符實體來表示特殊字符(比如  等)。"
-
-#: ../user/info.php:24 ../user/sample_index.php:78
-msgid "Read our rules and policies"
-msgstr "閱讀規定和政策"
-
-#: ../user/info.php:35
-msgid "Run %1 only on authorized computers"
-msgstr "僅在已授權的電腦上執行 %1"
-
-#: ../user/info.php:36
-msgid ""
-"Run %1 only on computers that you own, or for which you have obtained the "
-"owner's permission. Some companies and schools have policies that prohibit "
-"using their computers for projects such as %1."
-msgstr "僅在你自己的或者已獲准使用的電腦上執行 %1。某些企業和學校是禁止在他們的電腦上執行和 %1 的類似的專案。"
-
-#: ../user/info.php:38
-msgid "How %1 will use your computer"
-msgstr "%1 如何使用你的電腦"
-
-#: ../user/info.php:39
-msgid ""
-"When you run %1 on your computer, it will use part of the computer's CPU "
-"power, disk space, and network bandwidth. You can control how much of your "
-"resources are used by %1, and when it uses them."
-msgstr "當你在電腦上執行 %1 時,他會使用你電腦上部分的處理器資源、硬碟空間以及網絡。你可以控制 %1 的資源使用量以及何時可以使用。"
-
-#: ../user/info.php:40
-msgid ""
-"The work done by your computer contributes to the goals of %1, as described "
-"on its web site. The application programs may change from time to time."
-msgstr "你的電腦所完成的運算任務僅用來幫助 %1 實現專案的目標。專案程式的版本可能會經常更新。"
-
-#: ../user/info.php:42
-msgid "Privacy policy"
-msgstr "隱私政策"
-
-#: ../user/info.php:43
-msgid ""
-"Your account on %1 is identified by a name that you choose. This name may be"
-" shown on the %1 web site, along with a summary of the work your computer "
-"has done for %1. If you want to be anonymous, choose a name that doesn't "
-"reveal your identity."
-msgstr "%1 通過你選擇的用戶名來標識你的帳戶。該用戶名以及你為%1 完成的運算任務的摘要將顯示在 %1 的網站上。如果你想要匿名,那請選擇一個不會洩漏你身份的用戶名。"
-
-#: ../user/info.php:44
-msgid ""
-"If you participate in %1, information about your computer (such as its "
-"processor type, amount of memory, etc.) will be recorded by %1 and used to "
-"decide what type of work to assign to your computer. This information will "
-"also be shown on %1's web site. Nothing that reveals your computer's "
-"location (e.g. its domain name or network address) will be shown."
-msgstr "如果你參加了%1,那你的電腦中的相關信息比如處理器的型號、記憶體的大小等會被%1 記錄下來,以用來決定什麼樣的運算任務最適合你的電腦。這些信息也會顯示在 %1 的網站上,但是請不要擔心,我們絕對不會洩漏出你的電腦的位置比如域名、網絡地址等。"
-
-#: ../user/info.php:45
-msgid ""
-"To participate in %1, you must give an address where you receive email. This"
-" address will not be shown on the %1 web site or shared with organizations. "
-"%1 may send you periodic newsletters; however, you can opt out at any time."
-msgstr "為了參加 %1,你必須提供一個能夠接收郵件的電子郵件地址。這個地址不會被顯示在 %1 的網站上。 %1 可能會定期向你發送專案的新聞快訊; 當然,你隨時可以選擇退訂。"
-
-#: ../user/info.php:46
-msgid ""
-"Private messages sent on the %1 web site are visible only to the sender and "
-"recipient.  %1 does not examine or police the content of private messages.  "
-"If you receive unwanted private messages from another %1 user, you may add "
-"them to your %2message filter%3.  This will prevent you from seeing any "
-"public or private messages from that user."
-msgstr "在 %1 網站上發送的私人消息只對發送者和接收者可見。 %1 不會檢查或審查消息的內容。如果你從 %1 的用戶那收到不希望收到的私人消息,你可以把他們加入到你的 %2消息過濾器%3。這樣就可以避免你收到來自那位用戶的任何公共或私人消息。"
-
-#: ../user/info.php:47
-msgid ""
-"If you use our web site forums you must follow the %2posting guidelines%3.  "
-"Messages posted to the %1 forums are visible to everyone, including non-"
-"members.  By posting to the forums, you are granting irrevocable license for"
-" anyone to view and copy your posts."
-msgstr "如果你要使用我們的網站論壇,你必須遵守 %2發文注意事項%3。發送到 %1 論壇的文章對所有人都是可見的,即便不是我們網站的用戶也能看到。你的發文同時表明你允許所有人查看和覆製你的文章。"
-
-#: ../user/info.php:48
-msgid "Is it safe to run %1?"
-msgstr "執行 %1 安全嗎?"
-
-#: ../user/info.php:49
-msgid ""
-"Any time you download a program through the Internet you are taking a "
-"chance: the program might have dangerous errors, or the download server "
-"might have been hacked. %1 has made efforts to minimize these risks. We have"
-" tested our applications carefully. Our servers are behind a firewall and "
-"are configured for high security. To ensure the integrity of program "
-"downloads, all executable files are digitally signed on a secure computer "
-"not connected to the Internet."
-msgstr "只要你從網路下載程式就有可能碰到有危險錯誤的程式或者下載服務器已被駭客攻擊的情況。 %1 已經盡力最小化這方面的風險。我們已經仔細測試了我們的程式。我們的伺服器處於防火牆之後,並且設置了最高的安全級別。為了保證程式下載的正確性,全部的可執行文件會被放置在一台未聯網的安全電腦中進行數字簽名。"
-
-#: ../user/info.php:50
-msgid ""
-"The applications run by %1 may cause some computers to overheat. If this "
-"happens, stop running %1 or use a %2utility program%3 that limits CPU usage."
-msgstr "%1 的程式可能會導致某些電腦溫度過高。如果你碰到了這種情形,請停止執行 %1 或者使用 %2 某些工具軟體 %3 限制程式對處理器的使用。"
-
-#: ../user/info.php:51
-msgid ""
-"%1 was developed by %2. BOINC was developed at the University of California."
-msgstr "%1 由 %2 開發。 BOINC 由加州大學開發。"
-
-#: ../user/info.php:53
-msgid "Liability"
-msgstr "免責申明"
-
-#: ../user/info.php:54
-msgid ""
-"%1 and %2 assume no liability for damage to your computer, loss of data, or "
-"any other event or condition that may occur as a result of participating in "
-"%1."
-msgstr "%1 和%2 對於你的電腦損壞、資料丟失或其他任意由於參與 %1 所可能造成的事件沒有賠償責任。"
-
-#: ../user/info.php:56
-msgid "Other BOINC projects"
-msgstr "其它 BOINC 專案"
-
-#: ../user/info.php:57
-msgid ""
-"Other projects use the same platform, BOINC, as %1. You may want to consider"
-" participating in one or more of these projects. By doing so, your computer "
-"will do useful work even when %1 has no work available for it."
-msgstr "除了 %1,還有其它一些專案也使用 BOINC 平台。你也許會考慮同時參加多個專案,這樣當你無法從 %1 獲取運算任務時,你的電腦仍可以處理其它專案的運算任務。"
-
-#: ../user/info.php:58
-msgid ""
-"These other projects are not associated with %1, and we cannot vouch for "
-"their security practices or the nature of their research. Join them at your "
-"own risk."
-msgstr "其它專案同 %1 沒有關係,所以我們也無法保證這些專案的安全性以及確切的研究內容,請你自行決定是否參加其他專案。"
-
-#: ../user/language_select.php:47
-msgid "Language selection"
-msgstr "語言選擇"
-
-#: ../user/language_select.php:73
-msgid ""
-"This web site is available in several languages. The currently selected "
-"language is %1."
-msgstr "本網站提供了多種語言界面,目前選擇的語言是 %1。"
-
-#: ../user/language_select.php:78
-msgid ""
-"Normally the choice of language is determined by your browser's language "
-"setting, which is: %1.  You can change this setting using:"
-msgstr "通常語言的選擇是通過你瀏覽器的語言設置來自動完成的,目前選擇為:%1。你可以通過下面的操作來改變這個設置:"
-
-#: ../user/language_select.php:83
-msgid "Firefox: Tools/Options/General"
-msgstr "Firefox(火狐):工具/選項/內容"
-
-#: ../user/language_select.php:85
-msgid "Microsoft IE: Tools/Internet Options/Languages"
-msgstr "微軟 IE:工具/Internet 選項/語言"
-
-#: ../user/language_select.php:89
-msgid ""
-"Or you can select a language by clicking on one of the links.  This will "
-"send your browser a cookie; make sure your browser accepts cookies from our "
-"domain."
-msgstr "或者你也可以點擊下面的連結來選擇一種語言。該操作將給你的瀏覽器發送一個Cookie,請確保你的瀏覽器能從我們的域名接收Cookie。"
-
-#: ../user/language_select.php:95
-msgid "Language name (click to select)"
-msgstr "語言名稱(直接點擊進行設置)"
-
-#: ../user/language_select.php:97
-msgid "Use browser language setting"
-msgstr "使用瀏覽器的語言設置"
-
-#: ../user/language_select.php:113
-msgid ""
-"Translations are done by volunteers.  If your native language is not here, "
-"%1you can provide a translation%2."
-msgstr "翻譯工作都是由志工完成的,如果沒有您的語言,%1您可以自行翻譯%2。"
-
-#: ../user/login_form.php:57
-msgid "or %1create an account%2."
-msgstr "或者%1創建一個新帳戶%2。"
-
-#: ../user/merge_by_name.php:31
-msgid "Processing %1"
-msgstr "處理中 %1"
-
-#: ../user/merge_by_name.php:43
-msgid "Merged %1 into %2"
-msgstr "%1 已合併至 %2"
-
-#: ../user/merge_by_name.php:72
-msgid "Return to the list of your computers"
-msgstr "返回你的電腦列表"
-
-#: ../user/merge_by_name.php:76
-msgid ""
-"This operation merges computers based on their domain name.\n"
-"        <p>\n"
-"        For each domain name, it will merge all older computers\n"
-"        having that name with the newest computer having that name.\n"
-"        Incompatible computers will not be merged.\n"
-"        <p>"
-msgstr "該操作使用名稱來合併電腦。 \n<p>\n對於每個名稱,它會將所有老的電腦合併到最新的電腦上。 \n軟硬件配置不兼容的電腦將不會被合併。 \n<p>"
-
-#: ../user/merge_by_name.php:82
-msgid "Go ahead and do this"
-msgstr "繼續操作"
-
-#: ../user/merge_by_name.php:83
-msgid "Return to the list of computers"
-msgstr "返回電腦列表"
-
-#: ../user/moderation.php:26
-msgid ""
-"\n"
-"To maximize discussion and flow of information,\n"
-"our message boards are moderated.\n"
-"Message board postings are subject to the following posting rules:\n"
-msgstr "\n為了讓大家的討論和交流能有效進行,\n我們為留言板設立了管理協調機制。 \n所有留言板的發帖都必須遵循如下的規則:\n"
-
-#: ../user/moderation.php:30
-msgid ""
-"\n"
-"<p>\n"
-"Moderators may delete posts that violate any of these rules.\n"
-"The authors of deleted posts will be notified via email.\n"
-"Gross offenders may have their ability to post messages temporarily revoked\n"
-"(though to prevent abuse only project administrators have the ability to do so).\n"
-"Additional kinds of bad behavior (\"bugging\" posts to trap the\n"
-"IP addresses of other participants, excessive thread creation to spam\n"
-"the forums, etc.), while not listed in the formal rules, may still\n"
-"lead to similar penalties.\n"
-"<p>\n"
-"If you think a post violates any of the posting rules,\n"
-"click the red X on the post and fill out the form;\n"
-"moderators will be notified of your complaint.\n"
-"Please use this button only for clear violations - not\n"
-"personal disputes.\n"
-"<p>\n"
-"We try to be as fair as we can when moderating,\n"
-"but in a large community of users, with many different viewpoints,\n"
-"there will always be some people that will not be happy\n"
-"with our moderation decisions.\n"
-"While we regret that this happens,\n"
-"please realize that we cannot suit all of the people all of the time\n"
-"and have to make decisions based on our resources and\n"
-"what is best for the forum overall.\n"
-"Please don't discuss our moderation policy on the forums. We aren't\n"
-"a social engineering project nor are we in the business of creating\n"
-"a perfectly fair system. So such discussions tend to be counterproductive\n"
-"and potentially incendiary. If you have a legitimate claim,\n"
-"send email to the address below.\n"
-"<p>\n"
-"This moderation policy is set by the %1 project.\n"
-"If you have comments about the policy, email %2.\n"
-"\n"
-msgstr "\n<p>\n管理員可能會刪除違規的文章,被刪文的用戶將得到電子郵件通知。 \n嚴重的違規者可能會被臨時封鎖發文權限(為防止該操作被濫用,只有專案管理員有相關的權限)。 \n其它未列在上述規則中的惡意行為(比如惡意收集其他用戶的IP 地址、或者在論壇中大量發表垃圾內容等)也可能面臨類似的處罰。 \n<p>\n如果你碰到違規的文章,請點擊文章內的紅色小叉並進行相應的說明;管理員將收到通知並進行處理。 \n該功能請務必僅用於處理違規文章,而不要用於處理個人爭端。 \n<p>\n我們在操作的時候將盡可能地保證公平,但對於如此大的一個網絡社區,包含了各種不同的觀點,可能仍然會有人對我們的管理決定不滿意。 \n對此我們十分抱歉,但請大家多多諒解,我們不可能在所有時候讓所有人滿意,我們只能根據我們了解的訊息、並且從論壇的整體利益出發來作出決定。 \n請不要在論壇討論我們的管理策略,我們不是在進行一個社會工程專案,也沒有試圖創建一個完美而公平的系統。 \n因此這樣的討論並不會起到什麼積極的作用,而且是潛在有害的。 \n當然,如果你一些合理的想法,請發送電子郵件到下面的 [...]
-
-#: ../user/pending.php:66
-msgid "Pending credit"
-msgstr "待授予的積分"
-
-#: ../user/pending.php:68
-msgid "Result ID"
-msgstr "運算結果 ID"
-
-#: ../user/pending.php:68
-msgid "Workunit ID"
-msgstr "任務單元 ID"
-
-#: ../user/pending.php:68
-msgid "Host ID"
-msgstr "主機 ID"
-
-#: ../user/pending.php:68
-msgid "Claimed credit"
-msgstr "申請積分"
-
-#: ../user/pending.php:81
-msgid "Pending credit: %1"
-msgstr "待授予的積分:%1"
-
-#: ../user/pm.php:32
-msgid "Block messages from this user"
-msgstr "封鎖該用戶的消息"
-
-#: ../user/pm.php:32
-msgid "Block user"
-msgstr "封鎖用戶"
-
-#: ../user/pm.php:73
-msgid "Your message has been sent."
-msgstr "你的消息已被發送。"
-
-#: ../user/pm.php:83
-msgid "You have no private messages."
-msgstr "你目前沒有私人消息。"
-
-#: ../user/pm.php:90
-msgid "Sender and date"
-msgstr "發送人及日期"
-
-#: ../user/pm.php:111
-msgid "Reply to this message"
-msgstr "回覆該消息"
-
-#: ../user/pm.php:112
-msgid "Delete this message"
-msgstr "刪除該消息"
-
-#: ../user/pm.php:117
-msgid "Select all"
-msgstr "全選"
-
-#: ../user/pm.php:119
-msgid "Unselect all"
-msgstr "取消全選"
-
-#: ../user/pm.php:122
-msgid "Delete selected messages"
-msgstr "刪除選中的消息"
-
-#: ../user/pm.php:145
-msgid "Sender"
-msgstr "發送人"
-
-#: ../user/pm.php:148
-msgid "Date"
-msgstr "日期"
-
-#: ../user/pm.php:190
-msgid "You need to fill all fields to send a private message"
-msgstr "要發送私人消息,你必須填寫所有字段"
-
-#: ../user/pm.php:193
-msgid ""
-"Your message was flagged as spam\n"
-"                by the Akismet anti-spam system.\n"
-"                Please modify your text and try again."
-msgstr "你的消息已被 Akismet 防垃圾信息系統\n標記為垃圾信息,請修改你輸入的內容並重試。"
-
-#: ../user/pm.php:210
-msgid "Could not find user with id %1"
-msgstr "無法找到ID為 %1 的用戶"
-
-#: ../user/pm.php:215
-msgid "Could not find user with username %1"
-msgstr "無法找到名為 %1 的用戶"
-
-#. Non-unique username
-#: ../user/pm.php:217
-msgid "%1 is not a unique username; you will have to use user ID"
-msgstr "因為 %1 不是唯一的用戶名,你將只能使用用戶ID"
-
-#: ../user/pm.php:222
-msgid "User %1 (ID: %2) is not accepting private messages from you."
-msgstr "用戶 %1(ID 為%2)已禁止接受你的私人消息。"
-
-#: ../user/pm.php:245 ../user/view_profile.php:28
-msgid "No such user"
-msgstr "沒有這個用戶"
-
-#: ../user/pm.php:247
-msgid "Really block %1?"
-msgstr "確定要封鎖 %1 嗎?"
-
-#: ../user/pm.php:248
-msgid ""
-"Are you really sure you want to block user %1 from sending you private "
-"messages?"
-msgstr "你確定要封鎖用戶 %1 向你發送私人消息嗎?"
-
-#: ../user/pm.php:249
-msgid "Please note that you can only block a limited amount of users."
-msgstr "請注意你只能封鎖有限數量的用戶。"
-
-#: ../user/pm.php:250
-msgid ""
-"Once the user has been blocked you can unblock it using forum preferences "
-"page."
-msgstr "一旦該用戶被你封鎖,你可以在論壇的偏好設定中解除。"
-
-#: ../user/pm.php:257
-msgid "No, cancel"
-msgstr "不,取消"
-
-#: ../user/pm.php:265 ../user/team_admins.php:100
-msgid "no such user"
-msgstr "沒有這個用戶"
-
-#: ../user/pm.php:268
-msgid "User %1 blocked"
-msgstr "用戶 %1 已被封鎖"
-
-#: ../user/pm.php:270
-msgid "User %1 has been blocked from sending you private messages."
-msgstr "用戶 %1 已被封鎖向你發送私人消息。"
-
-#: ../user/pm.php:271
-msgid "To unblock, visit %1message board preferences%2"
-msgstr "要解除封鎖,請訪問%1留言板的偏好設定%2"
-
-#: ../user/pm.php:307
-msgid "Unknown action"
-msgstr "未知的操作"
-
-#: ../user/prefs.php:33
-msgid ""
-"Your preferences have been updated, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "您的偏好設定已經更新\n          將在您的電腦與 %1 進行通訊的時候生效\n          或者您也可以直接執行 BOINC Manager裡的%2更新%3命令。"
-
-#: ../user/prefs.php:42
-msgid ""
-"Your preferences have been reset to the defaults, and\n"
-"          will take effect when your computer communicates with %1\n"
-"          or you issue the %2Update%3 command from the BOINC Manager."
-msgstr "您的偏好設定已還原為預設值\n將在你的電腦與%1進行通訊的時候生效\n或者你也可以直接執行 BOINC 客戶端裡的%2更新%3。"
-
-#: ../user/prefs_edit.php:66 ../user/prefs_edit.php:94
-msgid "%1 for %2"
-msgstr "%1(用於%2)"
-
-#: ../user/prefs_edit.php:112
-msgid "Back to preferences"
-msgstr "回到偏好設定"
-
-#: ../user/prefs_remove.php:46
-msgid "Confirm delete preferences"
-msgstr "確定刪除偏好設定"
-
-#: ../user/prefs_remove.php:49
-msgid "Are you sure you want to delete your separate %1 preferences for %2?"
-msgstr "你確定要刪除%1偏好設定(用於%2)嗎?"
-
-#: ../user/prefs_remove.php:53
-msgid "Remove preferences"
-msgstr "移除偏好設定"
-
-#: ../user/prefs_remove.php:55
-msgid "Cancel"
-msgstr "取消"
-
-#: ../user/profile_menu.php:34 ../user/sample_index.php:119
-msgid "Profiles"
-msgstr "用戶檔案"
-
-#: ../user/profile_menu.php:37
-msgid ""
-"%1Profiles%2 let individuals share backgrounds and opinions with the %3 "
-"community."
-msgstr "通過%1用戶檔案%2參與者可以和%3社區分享他的背景和觀點。"
-
-#: ../user/profile_menu.php:38
-msgid ""
-"Explore the diversity of your fellow volunteers, and contribute your own "
-"views for others to enjoy."
-msgstr "可以了解其他參與者的想法,也可以讓他人看到你分享的觀點。"
-
-#: ../user/profile_menu.php:39
-msgid ""
-"If you haven't already, you can %1create your own user profile%2 for others "
-"to see!"
-msgstr "如果你還沒有用戶檔案的話,你現在就可以%1建立屬於你自己的用戶檔案了%2!"
-
-#: ../user/profile_menu.php:44
-msgid "User of the Day"
-msgstr "每日用戶"
-
-#: ../user/profile_menu.php:59
-msgid "User Profile Explorer"
-msgstr "使用用戶檔案瀏覽器"
-
-#: ../user/profile_menu.php:62
-msgid "View the %1User Picture Gallery%2."
-msgstr "查看%1用戶圖片庫%2。"
-
-#: ../user/profile_menu.php:63
-msgid "Browse profiles %1by country%2."
-msgstr "%1按國家或地區%2瀏覽用戶檔案。"
-
-#: ../user/profile_menu.php:64
-msgid ""
-"Browse profiles %1at random%2, %3at random with pictures%2, or %4at random "
-"without pictures%2."
-msgstr "%1隨機地瀏覽所有用戶檔案%2,%3隨機地瀏覽帶圖片的用戶檔案%2,或者%4隨機地瀏覽不帶圖片%2的用戶檔案。"
-
-#: ../user/profile_menu.php:68
-msgid "Alphabetical profile listings:"
-msgstr "按字母表順序的用戶檔案列表:"
-
-#: ../user/profile_menu.php:74
-msgid "Search profile text"
-msgstr "搜索用戶檔案文件"
-
-#: ../user/profile_menu.php:100
-msgid "No profiles"
-msgstr "沒有用戶檔案"
-
-#: ../user/profile_menu.php:101
-msgid "No profiles matched your query."
-msgstr "沒有用戶檔案符合你的查詢條件。"
-
-#: ../user/profile_rate.php:31
-msgid "Invalid vote type:"
-msgstr "錯誤的投票類型:"
-
-#: ../user/profile_rate.php:36
-msgid "Vote Recorded"
-msgstr "投票已記錄"
-
-#: ../user/profile_rate.php:40
-msgid "Thank you"
-msgstr "非常感謝"
-
-#: ../user/profile_rate.php:43
-msgid "Your recommendation has been recorded."
-msgstr "你的推薦已經被記錄下來。"
-
-#: ../user/profile_rate.php:45
-msgid "Your vote to reject this profile has been recorded."
-msgstr "你對該用戶檔案的反感已經被記錄下來。"
-
-#: ../user/profile_rate.php:48
-msgid "Return to profile."
-msgstr "返回用戶檔案。"
-
-#: ../user/profile_search_action.php:38
-msgid "Profiles containing '%1'"
-msgstr "包含'%1'的個人檔案"
-
-#: ../user/profile_search_action.php:42
-msgid "User name"
-msgstr "用戶名稱"
-
-#: ../user/profile_search_action.php:43
-msgid "Joined project"
-msgstr "加入的專案"
-
-#: ../user/profile_search_action.php:46
-msgid "Recent credit"
-msgstr "近期平均積分"
-
-#: ../user/profile_search_action.php:56
-msgid "No profiles found containing '%1'"
-msgstr "沒有找到包含'%1'的個人檔案"
-
-#: ../user/result.php:33
-msgid "No such task:"
-msgstr "此任務不存在:"
-
-#: ../user/results.php:29
-msgid "This feature is turned off temporarily"
-msgstr "該特性已臨時被關閉"
-
-#: ../user/results.php:56
-msgid "No computer with ID %1 found"
-msgstr "找不到 ID 為 %1 的電腦"
-
-#: ../user/results.php:63
-msgid "No access"
-msgstr "無法訪問"
-
-#: ../user/results.php:69
-msgid "Missing user ID or host ID"
-msgstr "用戶 ID 或 主機 ID 丟失"
-
-#: ../user/results.php:107
-msgid "No tasks to display"
-msgstr "無任務"
-
-#: ../user/sample_index.php:195
-msgid "User of the day"
-msgstr "本日用戶"
-
-#: ../user/server_status.php:59
-msgid "Not Running"
-msgstr "未執行"
-
-#: ../user/server_status.php:63
-msgid "Running"
-msgstr "執行中"
-
-#: ../user/server_status.php:67
-msgid "Disabled"
-msgstr "已禁用"
-
-#: ../user/server_status.php:105
-msgid "Project status"
-msgstr "專案狀態"
-
-#: ../user/server_status.php:110
-msgid "Server status"
-msgstr "伺服器狀態"
-
-#: ../user/server_status.php:113
-msgid "Program"
-msgstr "程式"
-
-#: ../user/server_status.php:113
-msgid "Host"
-msgstr "主機"
-
-#: ../user/server_status.php:125
-msgid "Database schema version: "
-msgstr "資料庫架構版本:"
-
-#: ../user/server_status.php:138
-msgid "Computing status"
-msgstr "運算狀態"
-
-#: ../user/server_status.php:153
-msgid "Users"
-msgstr "用戶"
-
-#: ../user/server_status.php:165
-msgid "Tasks by application"
-msgstr "按程式分類的任務"
-
-#: ../user/server_status.php:168
-msgid "Runtime of last 100 tasks in hours: average, min, max"
-msgstr "最近 100 個運算結果的處理時間(單位:小時):平均、最小、最大"
-
-#: ../user/server_status.php:169
-msgid "Users in last 24 hours"
-msgstr "最近24小時的用戶"
-
-#: ../user/show_host_detail.php:40
-msgid "Computer %1"
-msgstr "電腦 %1"
-
-#: ../user/stats.php:21
-msgid "Statistics and leaderboards"
-msgstr "統計訊息和排行榜"
-
-#: ../user/stats.php:30
-msgid "Statistics for %1"
-msgstr "%1 的統計訊息"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/stats.php:32 ../user/top_users.php:117
-msgid "Top participants"
-msgstr "用戶排名"
-
-#: ../user/stats.php:40 ../user/team.php:48
-msgid "Top teams"
-msgstr "團隊排名"
-
-#: ../user/stats.php:47
-msgid "Top computers"
-msgstr "電腦排名"
-
-#: ../user/stats.php:48
-msgid "GPU models"
-msgstr "GPU型號"
-
-#: ../user/stats.php:49
-msgid "CPU models"
-msgstr "CPU型號"
-
-#: ../user/stats.php:53
-msgid ""
-"More detailed statistics for %1 and other BOINC-based projects are available"
-" at several web sites:"
-msgstr "下列幾個網站可以查詢到關於 %1 和其它 BOINC 專案的更詳細的統計訊息:"
-
-#: ../user/stats.php:56
-msgid ""
-"You can also get your current statistics in the form of a \"signature "
-"image\":"
-msgstr "你還可以通過“簽名圖片”的形式得到你當前的統計訊息:"
-
-#: ../user/stats.php:59
-msgid ""
-"Additionally you can get your individual statistics summed across all BOINC "
-"projects from several sites; see your %1home page%2."
-msgstr "另外,你還可以在你的%1帳戶頁面%2中查看所有你參加 BOINC 專案中的個人統計訊息。"
-
-#: ../user/team.php:27
-msgid "Teams"
-msgstr "團隊"
-
-#: ../user/team.php:29
-msgid "%1 participants may form %2teams%3."
-msgstr "%1 的用戶可以組成 %2團隊%3"
-
-#: ../user/team.php:31
-msgid ""
-"You may belong to only one team. You can join or quit a team at any time."
-msgstr "你最多只能加入一個團隊。你可以在任何時候加入或退出一個團隊。"
-
-#: ../user/team.php:33
-msgid "Each team has a %1founder%2 who may:"
-msgstr "每個團隊都有一個%1創始人%2,他可以:"
-
-#: ../user/team.php:35
-msgid "access team members' email addresses"
-msgstr "造訪團隊成員的電子郵件地址"
-
-#: ../user/team.php:36
-msgid "edit the team's name and description"
-msgstr "編輯團隊的名稱及描述"
-
-#: ../user/team.php:37
-msgid "add or remove team admins"
-msgstr "增加或移除團隊管理員"
-
-#: ../user/team.php:38
-msgid "remove members from the team"
-msgstr "移除團隊中的成員"
-
-#: ../user/team.php:39
-msgid "disband a team if it has no members"
-msgstr "解散沒有成員的團隊"
-
-#: ../user/team.php:42
-msgid "To join a team, visit its team page and click %1Join this team%2."
-msgstr "要加入一個團隊,請訪問該團隊頁面並點擊 %1加入該團隊%2。"
-
-#: ../user/team.php:43 ../user/team_search.php:201
-msgid "Find a team"
-msgstr "尋找團隊"
-
-#: ../user/team.php:50
-msgid "All teams"
-msgstr "所有團隊"
-
-#: ../user/team.php:54
-msgid "%1 teams"
-msgstr "%1 團隊"
-
-#: ../user/team.php:60
-msgid "Create a new team"
-msgstr "建立新團隊"
-
-#: ../user/team.php:61
-msgid ""
-"If you cannot find a team that is right for you, you can %1create a team%2."
-msgstr "如果你找不到適合你的團隊,你可以 %1創建一個團隊%2。"
-
-#: ../user/team_admins.php:36
-msgid "Remove Team Admin status from this member"
-msgstr "從該成員移除團隊管理員狀態"
-
-#: ../user/team_admins.php:42 ../user/team_admins.php:53
-msgid "Add or remove Team Admins"
-msgstr "增加或移除團隊管理員"
-
-#: ../user/team_admins.php:43
-msgid "You can select team members as 'Team Admins'. Team Admins can:"
-msgstr "你可以將部分團隊成員設置為“團隊管理員”,團隊管理員可以:"
-
-#: ../user/team_admins.php:45
-msgid "Edit team information (name, URL, description, country)"
-msgstr "編輯團隊資訊(名稱,網址,描述,國家)"
-
-#: ../user/team_admins.php:46
-msgid "View the team's join/quit history"
-msgstr "查看團隊的成員加入/退出歷史"
-
-#: ../user/team_admins.php:47
-msgid ""
-"Moderate the team forum, if any (admins get email notification of moderation"
-" events and red X reports)"
-msgstr "管理團隊論壇(團隊管理員會得到管理事件和報告的電子郵件通知)"
-
-#: ../user/team_admins.php:49
-msgid "Team Admins cannot:"
-msgstr "團隊管理員不可以:"
-
-#: ../user/team_admins.php:51
-msgid "Change the team founder"
-msgstr "改變團隊創始人"
-
-#: ../user/team_admins.php:52 ../user/team_manage.php:56
-msgid "Remove members"
-msgstr "移除團隊成員"
-
-#: ../user/team_admins.php:55
-msgid "If a Team Admin quits the team, they cease to be a Team Admin."
-msgstr "如果團隊管理員退出團隊,其團隊管理員的角色同時取消。"
-
-#: ../user/team_admins.php:56
-msgid ""
-"We recommend that you select only people you know and trust very well as "
-"Team Admins."
-msgstr "我們建議你只選擇自己了解或信任的成員作為團隊管理員。"
-
-#: ../user/team_admins.php:61
-msgid "There are currently no Team Admins"
-msgstr "目前沒有團隊管理員"
-
-#: ../user/team_admins.php:63
-msgid "Current Team Admins"
-msgstr "目前的團隊管理員"
-
-#: ../user/team_admins.php:64
-msgid "Became Team Admin on"
-msgstr "成為團隊管理員"
-
-#: ../user/team_admins.php:79
-msgid "Add Team Admin"
-msgstr "增加團隊管理員"
-
-#: ../user/team_admins.php:80
-msgid "Email address of team member:"
-msgstr "團隊成員的電子郵件地址:"
-
-#: ../user/team_admins.php:81
-msgid "Add"
-msgstr "新增"
-
-#: ../user/team_admins.php:92
-msgid "failed to remove admin"
-msgstr "移除管理員時出錯"
-
-#: ../user/team_admins.php:101
-msgid "User is not member of team"
-msgstr "用戶不是團隊成員"
-
-#: ../user/team_admins.php:103
-msgid "%1 is already an admin of %2"
-msgstr "%1 已經是 %2 的管理員"
-
-#: ../user/team_admins.php:107
-msgid "Couldn't add admin"
-msgstr "不能增加管理員"
-
-#: ../user/team_admins.php:113 ../user/team_manage.php:85
-#: ../user/team_quit_form.php:30 ../user/team_remove_inactive_action.php:30
-msgid "No such team"
-msgstr "沒有符合的團隊"
-
-#: ../user/team_change_founder_action.php:32
-#: ../user/team_change_founder_form.php:35 ../user/team_display.php:69
-#: ../user/team_edit_action.php:32 ../user/team_edit_form.php:31
-#: ../user/team_email_list.php:64
-msgid "no such team"
-msgstr "沒有符合的團隊"
-
-#: ../user/team_change_founder_action.php:40
-msgid "User is not a member of %1"
-msgstr "用戶不是 %1 的成員"
-
-#: ../user/team_change_founder_action.php:43
-msgid "Changing founder of %1"
-msgstr "正在改變 %1 的創始人"
-
-#: ../user/team_change_founder_action.php:45
-msgid "%1 is now founder of %2"
-msgstr "%1 現在是 %2 的創始人了"
-
-#: ../user/team_change_founder_form.php:39
-msgid "Change founder of %1"
-msgstr "改變 %1 的創始人"
-
-#: ../user/team_change_founder_form.php:45
-msgid ""
-"Team member %1 requested this team's foundership on %2, but left the team, "
-"thus canceling the request."
-msgstr "團隊成員 %1 在請求 %2 的創始人資格之後退出了團隊,請求自動取消。"
-
-#: ../user/team_change_founder_form.php:51
-msgid ""
-"Team member %1 has requested this team's foundership. This may be because "
-"you left the team or haven't had contact with the team for a long time."
-msgstr "團隊成員%1 請求了這個團隊的創始人資格,這可能是因為你離開過團隊或者有較長時間沒有和團隊聯繫。"
-
-#: ../user/team_change_founder_form.php:57
-msgid "decline request"
-msgstr "拒絕請求"
-
-#: ../user/team_change_founder_form.php:60
-msgid ""
-"If you don't decline the request by %1, %2 will have the option of assuming team foundership.<br /><br />\n"
-"                  To accept the request, assign foundership to %3 using the form below."
-msgstr "如果你不拒絕 %1 的請求,%2 將可以得到團隊創始人的資格。 <br /><br />\n如果要接受請求,並將創始人資格授予 %3,請使用下面的表格。"
-
-#: ../user/team_change_founder_form.php:68
-msgid "No transfer request is pending."
-msgstr "目前沒有等待處理的轉換請求。"
-
-#: ../user/team_change_founder_form.php:71
-msgid ""
-"To assign foundership of this team to another member, check the box next to "
-"member name and click <strong>Change founder</strong> below."
-msgstr "要將團隊的創始人資格授予另一位成員,請先選中成員名旁邊的選擇框,然後點擊下面的<strong>更改創始人</strong>。"
-
-#: ../user/team_change_founder_form.php:78
-msgid "New founder?"
-msgstr "新的團隊創始人?"
-
-#: ../user/team_change_founder_form.php:107 ../user/team_manage.php:58
-msgid "Change founder"
-msgstr "更改團隊創始人"
-
-#: ../user/team_change_founder_form.php:110
-msgid "There are no users to transfer team to."
-msgstr "目前沒有用戶變更團隊。"
-
-#: ../user/team_create_action.php:31
-msgid "You must choose a non-blank team name"
-msgstr "你必須選擇一個非空的團隊名稱"
-
-#: ../user/team_create_action.php:36
-msgid "A team named %1 already exists - try another name"
-msgstr "名為 %1 的團隊已經存在 - 請嘗試其它的名稱"
-
-#: ../user/team_create_action.php:56
-msgid "Could not create team - please try later."
-msgstr "無法建立團隊 - 請稍後再試。"
-
-#: ../user/team_create_form.php:29 ../user/team_create_form.php:34
-msgid "Create a team"
-msgstr "建立團隊"
-
-#: ../user/team_create_form.php:32
-msgid ""
-"You belong to %1. You must %2quit this team%3 before creating a new one."
-msgstr "你已加入了 %1,你在建立新團隊之前必須先 %2退出這個團隊%3。"
-
-#: ../user/team_delta.php:66
-msgid "Not founder or admin"
-msgstr "沒有創始人或團隊管理員"
-
-#: ../user/team_delta.php:73
-msgid "Team history for %1"
-msgstr "%1 的團隊歷史"
-
-#: ../user/team_delta.php:76
-msgid "When"
-msgstr "時間"
-
-#: ../user/team_delta.php:77
-msgid "User"
-msgstr "用戶"
-
-#: ../user/team_delta.php:78
-msgid "Action"
-msgstr "行為"
-
-#: ../user/team_delta.php:79
-msgid "Total credit at time of action"
-msgstr "當時的總積分"
-
-#: ../user/team_edit_action.php:55
-msgid "bad country"
-msgstr "國家錯誤"
-
-#: ../user/team_edit_action.php:61
-msgid "The name '%1' is being used by another team."
-msgstr "名稱“%1”已經被其它團隊使用。"
-
-#: ../user/team_edit_action.php:64
-msgid "Must specify team name"
-msgstr "必須指定團隊名稱"
-
-#: ../user/team_edit_action.php:92
-msgid "Could not update team - please try again later."
-msgstr "無法更新團隊 - 請稍後再試。"
-
-#: ../user/team_edit_form.php:35
-msgid "Edit %1"
-msgstr "編輯 %1"
-
-#: ../user/team_edit_form.php:36
-msgid "Update team info"
-msgstr "更新團隊資訊"
-
-#: ../user/team_email_list.php:70
-msgid "%1 Email List"
-msgstr "%1 電子郵件列表"
-
-#: ../user/team_email_list.php:72
-msgid "Member list of %1"
-msgstr "%1 的成員列表"
-
-#: ../user/team_email_list.php:87
-msgid "Show as plain text"
-msgstr "顯示為純文字"
-
-#: ../user/team_forum.php:30 ../user/team_forum.php:41
-msgid "Create Message Board"
-msgstr "建立留言版"
-
-#: ../user/team_forum.php:31
-msgid "You may create a message board for use by %1."
-msgstr "你可以建立一個僅供 %1 使用的留言板。"
-
-#: ../user/team_forum.php:33
-msgid "Only team members will be able to post."
-msgstr "只有團隊成員可以發文。"
-
-#: ../user/team_forum.php:34
-msgid "At your option, only members will be able to read."
-msgstr "還可以設置是否只允許團隊成員進行閱讀。"
-
-#: ../user/team_forum.php:35
-msgid "You and your Team Admins will have moderator privileges."
-msgstr "你和你的團隊管理員擁有管理權限。"
-
-#: ../user/team_forum.php:42
-msgid "Create a message board for %1"
-msgstr "建立一個 %1 的留言板"
-
-#: ../user/team_forum.php:50
-msgid "Team already has a message board"
-msgstr "團隊已經擁有留言板了"
-
-#: ../user/team_forum.php:61
-msgid "Team Message Board"
-msgstr "團隊留言版"
-
-#: ../user/team_forum.php:73
-msgid "Minimum time between posts (seconds)"
-msgstr "最小發文間隔(秒)"
-
-#: ../user/team_forum.php:76
-msgid "Minimum total credit to post"
-msgstr "發文要求的最低總積分"
-
-#: ../user/team_forum.php:79
-msgid "Minimum average credit to post"
-msgstr "發文要求的最低平均積分"
-
-#: ../user/team_forum.php:82
-msgid "Submit"
-msgstr "提交"
-
-#: ../user/team_forum.php:91
-msgid "Remove your team's message board."
-msgstr "移除團隊留言版"
-
-#: ../user/team_forum.php:99
-msgid "Really remove message board?"
-msgstr "確定要移除留言版嗎?"
-
-#: ../user/team_forum.php:100
-msgid ""
-"Are you sure you want to remove your team's message board? All threads and "
-"posts will be permanently removed. (You may, however, create a new message "
-"board later)."
-msgstr "你確定要移除團隊的留言板嗎?所有的主題和文章將永久刪除。 (當然,你之後還可以重新建立一個新的留言板。)"
-
-#: ../user/team_forum.php:102
-msgid "Yes - remove message board"
-msgstr "是的 - 移除留言板"
-
-#: ../user/team_forum.php:123
-msgid "Message board removed"
-msgstr "留言版已移除"
-
-#: ../user/team_forum.php:126
-msgid ""
-"Your team's message board has been removed. You may now %1create a new "
-"one%2."
-msgstr "你的團隊留言板已移除,你現在可以%1建立一個新的留言板%2。"
-
-#: ../user/team_forum.php:145
-msgid "Team Message Board Updated"
-msgstr "團隊留言版已更新"
-
-#: ../user/team_forum.php:146
-msgid "Update successful"
-msgstr "更新成功"
-
-#: ../user/team_forum.php:149
-msgid "Update failed"
-msgstr "更新失敗"
-
-#: ../user/team_forum.php:156
-msgid "Team has no forum"
-msgstr "團隊沒有論壇"
-
-#: ../user/team_founder_transfer_action.php:38
-msgid "You must be a member of a team to access this page."
-msgstr "只有團隊的成員可以訪問該頁面。"
-
-#: ../user/team_founder_transfer_action.php:92
-msgid "Requesting foundership of %1"
-msgstr "正在請求%1 的創始人資格"
-
-#: ../user/team_founder_transfer_action.php:100
-msgid ""
-"The current founder has been notified of your request by email and private message.<br /><br />\n"
-"                       If the founder does not respond within 60 days you will be allowed to become the founder."
-msgstr "你的請求已經通過電子郵件和私人消息通知到了當前的創始人。 <br /><br />\n如果該創始人在60 天沒有回應,你就可以成為創始人了。"
-
-#: ../user/team_founder_transfer_action.php:104
-#: ../user/team_founder_transfer_action.php:115
-msgid "Foundership request not allowed now"
-msgstr "現在不允許請求創始人資格"
-
-#: ../user/team_founder_transfer_action.php:111
-msgid "Assumed foundership of %1"
-msgstr "得到 %1 的創始人資格"
-
-#: ../user/team_founder_transfer_action.php:113
-msgid ""
-"Congratulations, you are now the founder of team %1. Go to %2Your Account "
-"page%3 to find the Team Admin options."
-msgstr "恭喜,你已經是 %1 的創始人了!請在%2你的帳戶頁面%3使用團隊管理功能。"
-
-#: ../user/team_founder_transfer_action.php:122
-msgid "Decline founder change request"
-msgstr "拒絕創始人更改請求"
-
-#: ../user/team_founder_transfer_action.php:129
-msgid "The foundership request from %1 has been declined."
-msgstr "來自 %1 的創始人請求已經被拒絕。"
-
-#: ../user/team_founder_transfer_action.php:132
-msgid "There were no foundership requests."
-msgstr "目前沒有創始人請求。"
-
-#: ../user/team_founder_transfer_action.php:136
-msgid "undefined action %1"
-msgstr "未定義行為 %1"
-
-#: ../user/team_founder_transfer_action.php:139
-#: ../user/team_founder_transfer_form.php:85
-msgid "Return to team page"
-msgstr "返回團隊頁面"
-
-#: ../user/team_founder_transfer_form.php:30
-msgid "You need to be a member of a team to access this page."
-msgstr "只有團隊的成員可以訪問該頁面。"
-
-#: ../user/team_founder_transfer_form.php:33
-msgid "Request foundership of %1"
-msgstr "請求 %1 的創始人資格"
-
-#: ../user/team_founder_transfer_form.php:40
-msgid "You are now founder of team %1."
-msgstr "你已經是%1 的創始人。"
-
-#: ../user/team_founder_transfer_form.php:46
-msgid "You requested the foundership of %1 on %2."
-msgstr "你已經請求了%1 的創始人資格(時間:%2)。"
-
-#: ../user/team_founder_transfer_form.php:49
-msgid ""
-"60 days have elapsed since your request, and the founder has not responded. "
-"You may now assume foundership by clicking here:"
-msgstr "原創始人在60 天內都沒有回應你的請求,你現在可以點擊這裡來得到創始人資格:"
-
-#: ../user/team_founder_transfer_form.php:52
-msgid "Assume foundership"
-msgstr "得到創始人資格"
-
-#: ../user/team_founder_transfer_form.php:56
-msgid ""
-"The founder was notified of your request. If he/she does not respond by %1 "
-"you will be given an option to become founder."
-msgstr "你的請求已經通知到了創始人,如果他/她到 %1 都沒有回應的話,你將可以選擇成為新的創始人。"
-
-#: ../user/team_founder_transfer_form.php:62
-msgid ""
-"If the team founder is not active and you want to assume the role of founder, click the button below. The current founder will be sent an email detailing your request, and will be able to transfer foundership to you or to decline your request. If the founder does not respond in 60 days, you will be allowed to become the founder.<br /><br />\n"
-"                       Are you sure you want to request foundership?"
-msgstr "如果你將得到團隊創始人的資格(因為當前的創建人不活躍等原因),請點擊下面的按鈕。你的請求將通過電子郵件通知到當前的創始人,他/她可以將創始人資格轉移給你或者拒絕你的請求。如果他/她在60 天內都沒有回應,你就可以得到創始人的資格。 <br /><br />\n你確定想要請求創始人資格嗎?"
-
-#: ../user/team_founder_transfer_form.php:67
-msgid "Request foundership"
-msgstr "請求創始人資格"
-
-#: ../user/team_founder_transfer_form.php:76
-msgid "Founder change has already been requested by %1 on %2."
-msgstr "%1 已經在 %2 請求了創始人更改。"
-
-#: ../user/team_founder_transfer_form.php:79
-msgid ""
-"A foundership change was requested during the last 90 days, so new requests "
-"are not allowed. Please try again later."
-msgstr "因為過去 90 天已經有過程創始人資格更改請求,目前不允許發起新的請求,請稍後再試。"
-
-#: ../user/team_join.php:34 ../user/team_join_action.php:34
-#: ../user/team_join_form.php:31
-msgid "The team %1 is not joinable."
-msgstr "團隊 %1 不允許加入。"
-
-#: ../user/team_join.php:37 ../user/team_join_action.php:37
-msgid "Already a member"
-msgstr "已經是團隊成員"
-
-#: ../user/team_join.php:38 ../user/team_join_action.php:38
-msgid "You are already a member of %1."
-msgstr "你已經是 %1 的成員了。"
-
-#: ../user/team_join.php:44 ../user/team_join_action.php:45
-msgid "Couldn't join team - please try again later."
-msgstr "無法加入團隊 - 請稍後再試。"
-
-#: ../user/team_join_action.php:42
-msgid "Joined %1"
-msgstr "已加入 %1"
-
-#: ../user/team_join_action.php:43
-msgid "You have joined %1."
-msgstr "你已經加入了 %1。"
-
-#: ../user/team_join_form.php:34
-msgid "Join %1"
-msgstr "加入 %1"
-
-#: ../user/team_join_form.php:35
-msgid "Please note:"
-msgstr "請注意:"
-
-#: ../user/team_join_form.php:37
-msgid "Joining a team gives its founder access to your email address."
-msgstr "加入團隊後,團隊的創始人將可以看到你的電子郵件地址。"
-
-#: ../user/team_join_form.php:38
-msgid "Joining a team does not affect your account's credit."
-msgstr "加入團隊對你的帳戶積分沒有影響。"
-
-#: ../user/team_join_form.php:45
-msgid "Join team"
-msgstr "加入團隊"
-
-#: ../user/team_lookup.php:86
-msgid "Search Results"
-msgstr "搜尋結果"
-
-#: ../user/team_lookup.php:88
-msgid "Search results for '%1'"
-msgstr "“%1”的搜尋結果"
-
-#: ../user/team_lookup.php:90
-msgid "You may view these teams' members, statistics, and information."
-msgstr "你可以查看這些團隊的成員,統計以及其它資訊。"
-
-#: ../user/team_lookup.php:100
-msgid "More than 100 teams match your search. The first 100 are shown."
-msgstr "超過 100 個的團隊符合你的搜尋條件,現在只顯示了前 100 個。"
-
-#: ../user/team_lookup.php:106
-msgid ""
-"End of results. %1 If you cannot find the team you are looking for, you may "
-"%2create a team%3 yourself."
-msgstr "上面是所有的搜尋結果。 %1如果沒找到合適的團隊,你也可以自己%2建立一個團隊%3。"
-
-#: ../user/team_manage.php:28
-msgid "Team administration for %1"
-msgstr "%1 的團隊管理"
-
-#: ../user/team_manage.php:31
-msgid "Edit team info"
-msgstr "編輯團隊資訊"
-
-#: ../user/team_manage.php:32
-msgid "Change team name, URL, description, type, or country"
-msgstr "改變團隊名稱,網址,描述,類型或者國家"
-
-#: ../user/team_manage.php:34
-msgid "Member list:"
-msgstr "成員列表"
-
-#: ../user/team_manage.php:35 ../user/team_manage.php:39
-msgid "HTML"
-msgstr "HTML"
-
-#: ../user/team_manage.php:36
-msgid "text"
-msgstr "文件"
-
-#: ../user/team_manage.php:37
-msgid "View member names and email addresses"
-msgstr "查看成員名稱和電子郵件地址"
-
-#: ../user/team_manage.php:38
-msgid "View change history:"
-msgstr "查看更改歷史:"
-
-#: ../user/team_manage.php:40
-msgid "XML"
-msgstr "XML"
-
-#: ../user/team_manage.php:41
-msgid "See when members joined or quit this team"
-msgstr "查看成員加入或離開團隊的時間"
-
-#: ../user/team_manage.php:52
-msgid "Respond to foundership request."
-msgstr "回應創始人資格請求。"
-
-#: ../user/team_manage.php:52
-msgid "If you don't respond by %1, %2 may assume foundership of this team."
-msgstr "如果你到 %1 都不回應,%2 將可以得到這個團隊的創始人資格"
-
-#: ../user/team_manage.php:57
-msgid "Remove inactive or unwanted members from this team"
-msgstr "從團隊中移除不活躍或不喜歡的成員"
-
-#: ../user/team_manage.php:59
-msgid "Transfer foundership to another member"
-msgstr "將創始人資格轉移給其他成員"
-
-#: ../user/team_manage.php:60
-msgid "Add/remove Team Admins"
-msgstr "增加/移除團隊管理員"
-
-#: ../user/team_manage.php:61
-msgid "Give selected team members Team Admin privileges"
-msgstr "將團隊管理員權限授予選中的團隊成員"
-
-#: ../user/team_manage.php:63
-msgid "Remove team"
-msgstr "移除團隊"
-
-#: ../user/team_manage.php:64
-msgid "Allowed only if team has no members"
-msgstr "只能在團隊沒有成員的時候進行該操作"
-
-#: ../user/team_manage.php:66
-msgid "Create or manage a team message board"
-msgstr "建立或管理團隊留言板"
-
-#: ../user/team_manage.php:73
-msgid ""
-"To have this team created on all BOINC projects (current and future) you can"
-" make it into a %1BOINC-wide team%2."
-msgstr "如果想在所有的 BOINC 專案(現有和未來的)中都建立這個團隊,你可以將它轉變為一個 %1BOINC-wide 團隊%2。"
-
-#: ../user/team_manage.php:75
-msgid ""
-"Team admins are encouraged to join and participate in the Google %1boinc-"
-"team-founders%2 group."
-msgstr "建議所有團隊管理員都加入和參加到Google 的 %1boinc-team-founders%2 討論組中。"
-
-#: ../user/team_manage.php:91
-msgid "Can't delete non-empty team"
-msgstr "不能刪除非空團隊"
-
-#: ../user/team_manage.php:95
-msgid "Team %1 deleted"
-msgstr "團隊 %1 已刪除"
-
-#: ../user/team_members.php:38
-msgid "Limit exceeded:  Can only display the first 1000 members."
-msgstr "超出限制:只能顯示前 1000 名成員。"
-
-#: ../user/team_members.php:51
-msgid "Members of %1"
-msgstr "%1 的成員"
-
-#: ../user/team_quit_action.php:34
-msgid "Unable to quit team"
-msgstr "不能退出團隊"
-
-#: ../user/team_quit_action.php:35
-msgid "Team doesn't exist, or you don't belong to it."
-msgstr "團隊不存在,或者你屬於該團隊。"
-
-#: ../user/team_quit_form.php:33
-msgid "Quit %1"
-msgstr "退出 %1"
-
-#: ../user/team_quit_form.php:34
-msgid ""
-"<strong>Please note before quitting a team:</strong>\n"
-"         <ul>\n"
-"         <li>If you quit a team, you may rejoin later, or join any other team you desire\n"
-"         <li>Quitting a team does not affect your personal credit statistics in any way.\n"
-"         </ul>"
-msgstr "<strong>退出團隊前請注意:</strong>\n<ul>\n<li>如果你退出一個團隊,你還可以重新加入,或者也可以加入其它團隊。 \n<li>退出團隊無論如何都不會影響你的個人積分。 \n</ul>"
-
-#: ../user/team_quit_form.php:42
-msgid "Quit Team"
-msgstr "退出團隊"
-
-#: ../user/team_remove_inactive_action.php:33
-msgid "Removing users from %1"
-msgstr "從 %1 中移除用戶"
-
-#: ../user/team_remove_inactive_action.php:41
-msgid "%1 is not a member of %2"
-msgstr "%1 不是 %2 的成員"
-
-#: ../user/team_remove_inactive_action.php:44
-msgid "%1 has been removed"
-msgstr "%1 已被移除"
-
-#: ../user/team_remove_inactive_form.php:34
-msgid "Remove members from %1"
-msgstr "從 %1 移除成員"
-
-#: ../user/team_remove_inactive_form.php:41
-msgid "Remove?"
-msgstr "移除?"
-
-#: ../user/team_remove_inactive_form.php:42
-msgid "Name (ID)"
-msgstr "名稱(ID)"
-
-#: ../user/team_remove_inactive_form.php:67
-msgid "No members are eligible for removal."
-msgstr "沒有任何成員符合移除的條件。"
-
-#: ../user/team_remove_inactive_form.php:70
-msgid "Remove users"
-msgstr "移除用戶"
-
-#: ../user/team_search.php:76
-msgid "Team name"
-msgstr "團隊名稱"
-
-#: ../user/team_search.php:113
-msgid "Team search results"
-msgstr "團隊搜尋結果"
-
-#: ../user/team_search.php:115
-msgid "No teams were found matching your criteria. Try another search."
-msgstr "沒有任何團隊符合你的查詢條件,請試試其它查詢條件。"
-
-#: ../user/team_search.php:117
-msgid "Or you can %1create a new team%2."
-msgstr "或者你也可以%1建立一個新團隊%2。"
-
-#: ../user/team_search.php:121
-msgid ""
-"The following teams match one or more of your search criteria.\n"
-"            To join a team, click its name to go to the team page,\n"
-"               then click %1Join this team%2."
-msgstr "下面的團隊符合一個或多個你的查詢條件。 \n要加入一個團隊,點擊名稱後即可進入團隊頁面,\n然後點擊%1加入該團隊%2即可。"
-
-#: ../user/team_search.php:128
-msgid "Change your search"
-msgstr "修改你的搜尋條件"
-
-#: ../user/team_search.php:202
-msgid ""
-"You can team up with other people with similar interests, or from the same "
-"country, company, or school."
-msgstr "你可以和其他有相同興趣,或來自同一個國家地區、公司以及學校的用戶組成一個團隊。"
-
-#: ../user/team_search.php:204
-msgid "Use this form to find teams that might be right for you."
-msgstr "使用該表單來尋找可能適合你的團隊。"
-
-#: ../user/team_search.php:209
-msgid "%1I'm not interested%2 in joining a team right now."
-msgstr "我現在對加入團隊%1沒興趣%2。"
-
-#: ../user/top_hosts.php:67 ../user/top_teams.php:102
-#: ../user/top_users.php:113
-msgid "Limit exceeded - Sorry, first %1 items only"
-msgstr "超出限制 - 對不起,僅顯示前 %1 項"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_hosts.php:82
-msgid "Top hosts"
-msgstr "主機排名"
-
-#. Now display what we've got (either gotten from cache or from DB)
-#: ../user/top_teams.php:107
-msgid "Top %1 teams"
-msgstr "團隊排名"
-
-#: ../user/top_teams.php:110
-msgid "There are no %1 teams"
-msgstr "沒有 %1 團隊"
-
-#: ../user/top_users.php:64
-msgid "Participant since"
-msgstr "參加時間"
-
-#: ../user/uotd.php:31
-msgid "No user of the day has been chosen."
-msgstr "還未選擇每日用戶。"
-
-#: ../user/uotd.php:35
-msgid "User of the Day for %1: %2"
-msgstr "%1 的每日用戶:%2"
-
-#: ../user/user_search.php:51
-msgid "Filters"
-msgstr "過濾器"
-
-#: ../user/user_search.php:52
-msgid "User name starts with"
-msgstr "用戶名稱以什麼開頭"
-
-#: ../user/user_search.php:53
-msgid "Any"
-msgstr "任何"
-
-#: ../user/user_search.php:56
-msgid "With profile?"
-msgstr "擁有用戶檔案?"
-
-#: ../user/user_search.php:57 ../user/user_search.php:62
-msgid "Either"
-msgstr "任選其一"
-
-#: ../user/user_search.php:61
-msgid "On a team?"
-msgstr "已加入團隊?"
-
-#: ../user/user_search.php:66
-msgid "Ordering"
-msgstr "排序"
-
-#: ../user/user_search.php:67
-msgid "Decreasing sign-up time"
-msgstr "按註冊時間降序"
-
-#: ../user/user_search.php:68
-msgid "Decreasing average credit"
-msgstr "按近期平均積分降序"
-
-#: ../user/user_search.php:69
-msgid "Decreasing total credit"
-msgstr "按總積分降序"
-
-#: ../user/user_search.php:84
-msgid "search string must be at least 3 characters"
-msgstr "搜尋字串至少應包含三個字符"
-
-#: ../user/user_search.php:118
-msgid "User search results"
-msgstr "用戶搜尋結果"
-
-#: ../user/user_search.php:125
-msgid "Joined"
-msgstr "已加入"
-
-#: ../user/user_search.php:133
-msgid "No users match your search criteria."
-msgstr "沒有任何用戶符合你的搜尋條件。"
-
-#: ../user/userw.php:35
-msgid "User not found!"
-msgstr "未找到用戶!"
-
-#: ../user/userw.php:44
-msgid "Account Data<br/>for %1<br/>Time:"
-msgstr "帳號資料<br/>關於 %1<br/>時間:"
-
-#: ../user/userw.php:47
-msgid "Team:"
-msgstr "團隊:"
-
-#: ../user/userw.php:48
-msgid "Team TotCred:"
-msgstr "團隊總積分:"
-
-#: ../user/userw.php:49
-msgid "Team AvgCred:"
-msgstr "團隊平均積分:"
-
-#: ../user/userw.php:51
-msgid "Team: None"
-msgstr "團隊:無"
-
-#: ../user/validate_email_addr.php:30
-msgid "Validate BOINC email address"
-msgstr "驗證 BOINC 電子郵件地址"
-
-#: ../user/validate_email_addr.php:31
-msgid ""
-"Please visit the following link to validate the email address of your %1 "
-"account:"
-msgstr "請訪問下面的連結以驗證你在 %1 的帳號所連結的電子郵件地址:"
-
-#: ../user/validate_email_addr.php:34
-msgid "Validate email sent"
-msgstr "驗證郵件已發送"
-
-#: ../user/validate_email_addr.php:35
-msgid ""
-"An email has been sent to %1. Visit the link it contains to validate your "
-"email address."
-msgstr "一封電子郵件已經發送到了 %1,請訪問其中包含的超連結以驗證你的電子郵件地址。"
-
-#: ../user/validate_email_addr.php:44
-msgid "No such user."
-msgstr "沒有符合的用戶。"
-
-#: ../user/validate_email_addr.php:49
-msgid "Error in URL data - can't validate email address"
-msgstr "網址資料錯誤 - 無法驗證電子郵件地址"
-
-#: ../user/validate_email_addr.php:54
-msgid "Database update failed - please try again later."
-msgstr "資料庫更新失敗 - 請稍後重試。"
-
-#: ../user/validate_email_addr.php:57
-msgid "Validate email address"
-msgstr "驗證電子郵件地址"
-
-#: ../user/validate_email_addr.php:58
-msgid "The email address of your account has been validated."
-msgstr "您的帳號所連結的電子郵件地址已通過驗證。"
-
-#: ../user/view_profile.php:38
-msgid "This user has no profile"
-msgstr "此用戶未建立檔案"
-
-#: ../user/view_profile.php:56
-msgid "Profile: %1"
-msgstr "用戶檔案:%1"
-
-#: ../user/view_profile.php:65
-msgid "Account data"
-msgstr "帳號資料"
-
-#: ../user/weak_auth.php:52
-msgid ""
-"You can access your account either by using your email address and password,\n"
-"    or by using an assigned 'account key'.\n"
-"    Your account key is:"
-msgstr "您現在可使用電子郵箱地址和密碼來登入您的帳號,\n或者也可以用一個指定的“帳號密鑰”。\n您的帳號密鑰是:"
-
-#: ../user/weak_auth.php:57
-msgid "This key can be used to:"
-msgstr "這個密碼能用於:"
-
-#: ../user/weak_auth.php:59
-msgid "log in to your account on the web"
-msgstr "在網站上登入您的帳號"
-
-#: ../user/weak_auth.php:61
-msgid ""
-"to attach a computer to your account without using the BOINC Manager.\n"
-"       To do so, install BOINC,\n"
-"       create a file named %1 in the BOINC\n"
-"       data directory, and set its contents to:"
-msgstr "在不借助BOINC經理的情況下新增一台電腦到你的帳號,方法如下。\n先安裝BOINC,\n在BOINC的數據資料夾內建立名為%1的文件,\n而文件內容為:"
-
-#: ../user/weak_auth.php:73
-msgid "Weak account key"
-msgstr "帳號密碼太弱"
-
-#: ../user/weak_auth.php:74
-msgid ""
-"Your 'weak account key' can be used to attach computers to your account\n"
-"    as described above, but cannot be used to log in to your account or change it in any way.\n"
-"    If you want to attach untrusted or insecure computers to your account,\n"
-"    do so using your weak account key.\n"
-"    Your weak account key is:"
-msgstr "您的“弱帳號密碼”能幫你的帳號新增電腦\n但不能用於登入在專案網站上的帳號或修改該帳號。\n如果您想在你的帳號新增不被信任的或不安全的電腦,\n您就應該使用弱帳號密碼\n你的弱帳號密碼是:"
-
-#: ../user/weak_auth.php:81
-msgid ""
-"If you change your password, your weak account key changes, and your "
-"previous weak account key becomes invalid."
-msgstr "如果您變更了密碼,您的弱帳號密碼將會改變,而之前的弱帳號密碼也將失效。"
-
-#: ../user/workunit.php:32
-msgid "can't find workunit"
-msgstr "找不到任務單元"
-
-#: ../user/workunit.php:35
-msgid "Workunit %1"
-msgstr "任務單元 %1"
-
-#: ../user/workunit.php:40
-msgid "application"
-msgstr "程式"
-
-#: ../user/workunit.php:43
-msgid "canonical result"
-msgstr "規範結果"
-
-#: ../user/workunit.php:46
-msgid "granted credit"
-msgstr "授予積分"
-
-#: ../user/workunit.php:55
-msgid "Tasks in progress"
-msgstr "任務處理中"
-
-#: ../user/workunit.php:55
-msgid "suppressed pending completion"
-msgstr "無法查看等待完成的情況"
-
-#: ../user/workunit.php:58
-msgid "minimum quorum"
-msgstr "最低驗證集"
-
-#: ../user/workunit.php:59
-msgid "initial replication"
-msgstr "初始任務拷貝"
-
-#: ../user/workunit.php:60
-msgid "max # of error/total/success tasks"
-msgstr "最高允許的錯誤/總合/成功任務拷貝數量"
-
-#: ../user/workunit.php:64
-msgid "errors"
-msgstr "錯誤"
-
-#: ../user/workunit.php:67
-msgid "validation"
-msgstr "驗證"
-
-#: ../user/workunit.php:67
-msgid "Pending"
-msgstr "等待中"
-
-#: ../project.sample/project.inc:70
-msgid "Main page"
-msgstr "首頁"
-
-#: ../project.sample/project.inc:72
-msgid "Copyright"
-msgstr "版權所有"
-
-#: ../project.sample/project.inc:75
-msgid "Generated"
-msgstr "生成時間"
-
-#: ../project.sample/project.inc:106
-msgid "Your personal background."
-msgstr "您的個人背景。"
-
-#: ../project.sample/project.inc:110
-msgid ""
-"Tell us about yourself. You could tell us where you're from, your age, "
-"occupation, hobbies, or anything else about yourself."
-msgstr "簡單介紹一下您自己,比如從哪裡來,年齡,職業,興趣愛好,或者其它任何事情。"
-
-#: ../project.sample/project.inc:114
-msgid "Your opinions about %1"
-msgstr "您對 %1 的看法"
-
-#: ../project.sample/project.inc:118
-msgid ""
-"Tell us your thoughts about %1<ol>\n"
-"    <li>Why do you run %1?\n"
-"    <li>What are your views about the project?\n"
-"    <li>Any suggestions?\n"
-"    </ol>"
-msgstr "告訴我們您對 %1 的看法<ol>\n<li>您為什麼執行 %1? \n<li>您對這個專案的觀點是什麼? \n<li>有什麼建議嗎? \n</ol>"
-
-#: ../project.sample/project_specific_prefs.inc:53
-msgid "Color scheme for graphics"
-msgstr "圖形的色彩方案"
-
-#: ../project.sample/project_specific_prefs.inc:55
-#, no-php-format
-msgid "Maximum CPU % for graphics%10 ... 100%2"
-msgstr "顯示圖像時最多可以使用的CPU 資源%10 ... 100%2"
-
-#: ../project.sample/project_specific_prefs.inc:56
-msgid "Run only the selected applications"
-msgstr "僅執行選中的程式"
-
-#: ../project.sample/project_specific_prefs.inc:57
-msgid ""
-"Only get tasks for certain applications. Useful to focus on particular "
-"applications, or to exclude them."
-msgstr "只接受使用特定計算程式的任務。用於關注特定的計算程式,或者排除它們。"
-
-#: ../project.sample/project_specific_prefs.inc:58
-msgid ""
-"If no work for selected applications is available, accept work from other "
-"applications?"
-msgstr "如果選中的程式暫時沒有運算任務,是否接收其它程式的任務?"
-
-#: ../project.sample/project_specific_prefs.inc:59
-msgid "Use faster non-graphical applications if available?"
-msgstr "是否使用更快的無圖形計算程式(如果可用)?"
-
-#: ../project.sample/project_specific_prefs.inc:90
-msgid "(all applications)"
-msgstr "(所有程式)"
diff --git a/locale/zh_TW/BOINC-Setup.mo b/locale/zh_TW/BOINC-Setup.mo
index a364f10..9d4ebe8 100644
Binary files a/locale/zh_TW/BOINC-Setup.mo and b/locale/zh_TW/BOINC-Setup.mo differ
diff --git a/locale/zh_TW/BOINC-Setup.po b/locale/zh_TW/BOINC-Setup.po
index 1a64364..a96c585 100644
--- a/locale/zh_TW/BOINC-Setup.po
+++ b/locale/zh_TW/BOINC-Setup.po
@@ -3,15 +3,16 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# willy Wu <df910105 at yahoo.com.tw>, 2015
+# yuetau <auyeungyuet09 at gmail.com>, 2015
+# Willy Wu <df910105 at yahoo.com.tw>, 2015
 msgid ""
 msgstr ""
-"Project-Id-Version: boinc\n"
+"Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-26 00:00-0800\n"
-"PO-Revision-Date: 2015-02-15 16:35+0000\n"
-"Last-Translator: willy Wu <df910105 at yahoo.com.tw>\n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/boinc/language/zh_TW/)\n"
+"PO-Revision-Date: 2015-07-22 07:29+0000\n"
+"Last-Translator: yuetau <auyeungyuet09 at gmail.com>\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/boinc/boinc/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -33,7 +34,7 @@ msgstr "否"
 
 #: PostInstall.cpp:133
 msgid "Should BOINC run even when no user is logged in?"
-msgstr "允許 BOINC 在無使用者登入時持續執行?"
+msgstr "應 BOINC 運行,即使沒有使用者登錄嗎?"
 
 #: PostInstall.cpp:1416
 #, c-format
diff --git a/locale/zh_TW/BOINC-Web.mo b/locale/zh_TW/BOINC-Web.mo
index 21156b6..1d50904 100644
Binary files a/locale/zh_TW/BOINC-Web.mo and b/locale/zh_TW/BOINC-Web.mo differ
diff --git a/locale/zh_TW/BOINC-Web.po b/locale/zh_TW/BOINC-Web.po
index 6c2257e..b6b3107 100644
--- a/locale/zh_TW/BOINC-Web.po
+++ b/locale/zh_TW/BOINC-Web.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: BOINC\n"
 "Report-Msgid-Bugs-To: BOINC translation team <boinc_loc at ssl.berkeley.edu>\n"
 "POT-Creation-Date: 2015-07-09 18:59 PDT\n"
-"PO-Revision-Date: 2015-11-26 17:45+0000\n"
+"PO-Revision-Date: 2016-04-07 06:48+0000\n"
 "Last-Translator: Mingye Wang <arthur200126 at gmail.com>\n"
 "Language-Team: Chinese (Taiwan) (http://www.transifex.com/boinc/boinc/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
diff --git a/m4/libcurl.m4 b/m4/libcurl.m4
index 60657a9..555f3c8 100644
--- a/m4/libcurl.m4
+++ b/m4/libcurl.m4
@@ -70,7 +70,6 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
      fi
 
      AC_PATH_PROG([_libcurl_config],[curl-config])
-
      if test x$_libcurl_config != "x" ; then
         AC_CACHE_CHECK([for the version of libcurl],
 	   [libcurl_cv_lib_curl_version],
@@ -107,6 +106,10 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
            if test x"$LIBCURL" = "x" ; then
               LIBCURL="`$_libcurl_config --libs`"
 
+              if test "x`echo \""$LIBCURL"\" | grep ssl`" = x ; then
+                LIBCURL="${LIBCURL} ${SSL_LIBS}"
+              fi
+
               # This is so silly, but Apple actually has a bug in their
 	      # curl-config script.  Fixed in Tiger, but there are still
 	      # lots of Panther installs around.
diff --git a/py/Boinc/boincxml.py b/py/Boinc/boincxml.py
index b5282eb..b5fcc19 100644
--- a/py/Boinc/boincxml.py
+++ b/py/Boinc/boincxml.py
@@ -144,7 +144,7 @@ class XMLConfig:
         self._set_elements()
         if not output:
             output = open(self.filename,'w')
-        self.xml.writexml(output, "", "  ", "\n")
+        self.xml.writexml(output, "", " "*4, "\n")
         print >>output
         return self
     def _set_elements(self):
diff --git a/py/Boinc/setup_project.py b/py/Boinc/setup_project.py
index 58ebcb4..ca95662 100644
--- a/py/Boinc/setup_project.py
+++ b/py/Boinc/setup_project.py
@@ -8,7 +8,7 @@
 import boinc_path_config
 from Boinc import database, db_mid, configxml, tools
 from Boinc.boinc_db import *
-import os, sys, glob, time, shutil, re, random, socket
+import os, sys, glob, time, shutil, re, random
 
 class Options:
     pass
@@ -247,9 +247,10 @@ def create_project_dirs(dest_dir):
         return apply(os.path.join,(dest_dir,)+d)
     def mkdir2(d):
         try:
-            os.mkdir(d);
-        except:
-            pass
+            os.makedirs(d)
+        except OSError as e:
+            if not os.path.isdir(d):
+                raise SystemExit(e)
     map(lambda d: mkdir2(dir(d)),
         [   '',
             'cgi-bin',
@@ -263,6 +264,8 @@ def create_project_dirs(dest_dir):
             'html',
             'html/cache',
             'html/inc',
+            'html/inc/ReCaptcha',
+            'html/inc/ReCaptcha/RequestMethod',
             'html/languages',
             'html/languages/compiled',
             'html/languages/translations',
@@ -271,7 +274,6 @@ def create_project_dirs(dest_dir):
             'html/ops/ffmail',
             'html/ops/mass_email',
             'html/ops/remind_email',
-            'html/ops',
             'html/project',
             'html/stats',
             'html/user',
@@ -305,12 +307,6 @@ def install_boinc_files(dest_dir, install_web_files, install_server_files):
 
     create_project_dirs(dest_dir);
 
-    # make a symbolic link from html/user/user_profile to html/user_profile
-    try:
-        my_symlink(dir('html/user_profile'), dir('html/user/user_profile'));
-    except:
-        pass
-
     # copy html/ops files in all cases.
     # The critical one is db_update.php,
     # which is needed even for a server_only upgrade
@@ -320,6 +316,8 @@ def install_boinc_files(dest_dir, install_web_files, install_server_files):
     if install_web_files:
         install_glob(srcdir('html/inc/*.inc'), dir('html/inc/'))
         install_glob(srcdir('html/inc/*.php'), dir('html/inc/'))
+        install_glob(srcdir('html/inc/ReCaptcha/*.php'), dir('html/inc/ReCaptcha/'))
+        install_glob(srcdir('html/inc/ReCaptcha/RequestMethod/*.php'), dir('html/inc/ReCaptcha/RequestMethod'))
         install_glob(srcdir('html/inc/*.dat'), dir('html/inc/'))
         install_glob(srcdir('html/ops/*.css'), dir('html/ops/'))
         install_glob(srcdir('html/ops/ffmail/sample*'), dir('html/ops/ffmail/'))
@@ -454,13 +452,16 @@ class Project:
                  project_dir=None, key_dir=None,
                  master_url=None,
                  db_name=None,
+                 host=None,
                  web_only=False,
+                 no_db=False,
                  production=False
                  ):
         init()
 
         self.production     = production
         self.web_only       = web_only
+        self.no_db          = no_db
         self.short_name     = short_name
         self.long_name      = long_name or 'Project ' + self.short_name.replace('_',' ').capitalize()
 
@@ -478,12 +479,12 @@ class Project:
         config.db_host = options.db_host
         config.shmem_key = generate_shmem_key()
         config.uldl_dir_fanout = 1024
-        local_host = socket.gethostname()
-        config.host = local_host.split('.')[0]
+        config.host = host
         config.min_sendwork_interval = 0
         config.max_wus_to_send = 50
         config.daily_result_quota = 500
         config.disable_account_creation = 0
+        config.disable_web_account_creation = 0
         config.show_results = 1
         config.cache_md5_info = 1
         config.sched_debug_level = 3
@@ -558,6 +559,12 @@ class Project:
         # copy sample web files to final names
         install(srcdir('html/user/sample_index.php'),
             self.dir('html/user/index.php'))
+        install(srcdir('html/user/sample_bootstrap.min.css'),
+            self.dir('html/user/bootstrap.min.css'))
+        install(srcdir('html/user/sample_bootstrap.min.js'),
+            self.dir('html/user/bootstrap.min.js'))
+        install(srcdir('html/user/sample_jquery.min.js'),
+            self.dir('html/user/jquery.min.js'))
         install(srcdir('html/project.sample/project.inc'),
             self.dir('html/project/project.inc'))
         install(srcdir('html/project.sample/project_specific_prefs.inc'),
@@ -570,20 +577,20 @@ class Project:
             install(srcdir('test/uc_result'), self.dir('templates/uc_result'))
             install(srcdir('test/uc_wu_nodelete'), self.dir('templates/uc_wu'))
 
-        my_symlink(self.config.config.download_dir, self.dir('html', 'user', 'download'))
-        my_symlink('../stats', self.dir('html/user/stats'))
-
         f = open(self.dir('html/user', 'schedulers.txt'), 'w')
         print >>f, "<!-- <scheduler>" + self.scheduler_url.strip() + "</scheduler> -->"
         print >>f, "<link rel=\"boinc_scheduler\" href=\"" + self.scheduler_url.strip()+ "\">"
         f.close()
 
-        verbose_echo(1, "Setting up database")
-        database.create_database(
-            srcdir = options.srcdir,
-            config = self.config.config,
-            drop_first = options.drop_db_first
-            )
+        if self.no_db:
+            verbose_echo(1, "Not setting up database (--no_db was specified)")
+        else:
+            verbose_echo(1, "Setting up database")
+            database.create_database(
+                srcdir = options.srcdir,
+                config = self.config.config,
+                drop_first = options.drop_db_first
+                )
 
         verbose_echo(1, "Writing config files")
 
diff --git a/samples/condor/boinc_gahp.cpp b/samples/condor/boinc_gahp.cpp
index 6c55b85..81fe0f9 100644
--- a/samples/condor/boinc_gahp.cpp
+++ b/samples/condor/boinc_gahp.cpp
@@ -41,6 +41,11 @@ using std::set;
 using std::string;
 using std::vector;
 
+//#define DEBUG
+    // if set, handle commands synchronously rather than
+    // handling them in separate threads
+    // Also print more errors
+
 extern size_t strlcpy(char*, const char*, size_t);
 
 char project_url[256];
@@ -57,10 +62,6 @@ bool async_mode = false;
 #define BPRINTF(fmt, ...) \
     printf( "%s" fmt, response_prefix, ##__VA_ARGS__ ); \
 
-bool debug_mode = false;
-    // if set, handle commands synchronously rather than
-    // handling them in separate threads
-
 struct SUBMIT_REQ {
     char batch_name[256];
     char app_name[256];
@@ -68,6 +69,12 @@ struct SUBMIT_REQ {
     int batch_id;
 };
 
+struct LOCAL_FILE {
+    char boinc_name[256];
+        // the MD5 followed by filename extension if any
+    double nbytes;
+};
+
 // represents a command.
 //
 struct COMMAND {
@@ -106,8 +113,24 @@ struct COMMAND {
 
 vector<COMMAND*> commands;
 
-int compute_md5(string path, LOCAL_FILE& f) {
-    return md5_file(path.c_str(), f.md5, f.nbytes);
+void filename_extension(const char* path, char* ext) {
+    const char* p = strrchr(path, '/');
+    if (!p) p = path;
+    const char* q = strrchr(p, '.');
+    if (q) {
+        strcpy(ext, q);
+    } else {
+        strcpy(ext, "");
+    }
+}
+
+int compute_boinc_name(string path, LOCAL_FILE& f) {
+    char md5[64], ext[256];
+    int retval = md5_file(path.c_str(), md5, f.nbytes);
+    if (retval) return retval;
+    filename_extension(path.c_str(), ext);
+    sprintf(f.boinc_name, "%s%s", md5, ext);
+    return 0;
 }
 
 const char *escape_str(const string &str) {
@@ -151,14 +174,14 @@ int process_input_files(SUBMIT_REQ& req, string& error_msg) {
         }
     }
 
-    // compute the MD5s of these files,
-    // and make a map from path to MD5 and size (LOCAL_FILE)
+    // compute the BOINC names (md5.ext) of these files,
+    // and make a map from path to BOINC name and size (LOCAL_FILE)
     //
     set<string>::iterator iter = unique_paths.begin();
     while (iter != unique_paths.end()) {
         string s = *iter;
         LOCAL_FILE lf;
-        retval = compute_md5(s, lf);
+        retval = compute_boinc_name(s, lf);
         if (retval) return retval;
         local_files.insert(std::pair<string, LOCAL_FILE>(s, lf));
         ++iter;
@@ -168,41 +191,51 @@ int process_input_files(SUBMIT_REQ& req, string& error_msg) {
     //
     map<string, LOCAL_FILE>::iterator map_iter;
     map_iter = local_files.begin();
-    vector<string> md5s, paths;
+    vector<string> boinc_names, paths;
     vector<int> absent_files;
     while (map_iter != local_files.end()) {
         LOCAL_FILE lf = map_iter->second;
         paths.push_back(map_iter->first);
-        md5s.push_back(lf.md5);
+        boinc_names.push_back(lf.boinc_name);
         ++map_iter;
     }
     retval = query_files(
         project_url,
         authenticator,
-        md5s,
+        boinc_names,
         req.batch_id,
         absent_files,
         error_msg
     );
-    if (retval) return retval;
+    if (retval) {
+#ifdef DEBUG
+        printf("query_files() failed (%d): %s\n", retval, error_msg.c_str());
+#endif
+        return retval;
+    }
 
     // upload the missing files.
     //
-    vector<string> upload_md5s, upload_paths;
+    vector<string> upload_boinc_names, upload_paths;
     for (unsigned int i=0; i<absent_files.size(); i++) {
         int j = absent_files[i];
-        upload_md5s.push_back(md5s[j]);
+        upload_boinc_names.push_back(boinc_names[j]);
         upload_paths.push_back(paths[j]);
     }
     retval = upload_files(
         project_url,
         authenticator,
         upload_paths,
-        upload_md5s,
+        upload_boinc_names,
         req.batch_id,
         error_msg
     );
-    if (retval) return retval;
+    if (retval) {
+#ifdef DEBUG
+        printf("upload_files() failed (%d): %s\n", retval, error_msg.c_str());
+#endif
+        return retval;
+    }
 
     // fill in the physical file names in the submit request
     //
@@ -212,7 +245,7 @@ int process_input_files(SUBMIT_REQ& req, string& error_msg) {
             INFILE& infile = job.infiles[j];
             map<string, LOCAL_FILE>::iterator iter = local_files.find(infile.src_path);
             LOCAL_FILE& lf = iter->second;
-            sprintf(infile.physical_name, "jf_%s", lf.md5);
+            sprintf(infile.physical_name, "jf_%s", lf.boinc_name);
         }
     }
 
@@ -236,6 +269,7 @@ int COMMAND::parse_submit(char* p) {
         int ninfiles = atoi(strtok_r(NULL, " ", &p));
         for (int j=0; j<ninfiles; j++) {
             INFILE infile;
+            infile.mode = FILE_MODE_LOCAL_STAGED;
             strlcpy(infile.src_path, strtok_r(NULL, " ", &p), sizeof(infile.src_path));
             strlcpy(infile.logical_name, strtok_r(NULL, " ", &p), sizeof(infile.logical_name));
             job.infiles.push_back(infile);
@@ -313,7 +347,8 @@ void handle_query_batches(COMMAND& c) {
     char buf[256];
     string error_msg, s;
     int retval = query_batch_set(
-        project_url, authenticator, c.min_mod_time, c.batch_names, reply, error_msg
+        project_url, authenticator, c.min_mod_time, c.batch_names,
+        reply, error_msg
     );
     if (retval) {
         sprintf(buf, "error\\ querying\\ batch:\\ %d\\ ", retval);
@@ -436,7 +471,7 @@ void handle_fetch_output(COMMAND& c) {
         } else {
             sprintf(path, "%s/%s", req.dir, req.stderr_filename.c_str());
         }
-        FILE* f = fopen(path, "w");
+        FILE* f = fopen(path, "a");
         if (!f) {
             sprintf(buf, "can't\\ open\\ stderr\\ output\\ file\\ %s ", path);
             s = string(buf);
@@ -482,9 +517,14 @@ void handle_fetch_output(COMMAND& c) {
             char* lname = req.file_descs[i].src;
             int j = output_file_index(td, lname);
             if (j < 0) {
-                sprintf(buf, "requested\\ file\\ %s\\ not\\ in\\ template", lname);
-                s = string(buf);
-                goto done;
+                if (i >= td.output_files.size()) {
+                      sprintf(buf, "too\\ many\\ output\\ files\\ specified\\ submit:%d\\ template:%d",
+                          i, td.output_files.size()
+                      );
+                    s = string(buf);
+                    goto done;
+                }
+                j = i;
             }
             sprintf(path, "%s/%s", req.dir, lname);
             retval = get_output_file(
@@ -511,7 +551,7 @@ void handle_fetch_output(COMMAND& c) {
         } else {
             sprintf(dst_path, "%s/%s", req.dir, of.dest);
         }
-        sprintf(buf, "mv %s/%s %s", req.dir, of.src, dst_path);
+        sprintf(buf, "mv '%s/%s' '%s'", req.dir, of.src, dst_path);
         retval = system(buf);
         if (retval) {
             s = string("mv\\ failed");
@@ -682,7 +722,7 @@ int n_results() {
 //
 int handle_command(char* p) {
     char cmd[256];
-    int id;
+    int id, retval;
 
     cmd[0] = '\0';
     sscanf(p, "%s", cmd);
@@ -738,31 +778,31 @@ int handle_command(char* p) {
         //
         COMMAND *cp = new COMMAND(p);
         p = NULL;
-        int retval = cp->parse_command();
+        retval = cp->parse_command();
         if (retval) {
             BPRINTF("E\n");
             delete cp;
             return 0;
         }
-        if (debug_mode) {
-            handle_command_aux(cp);
-            BPRINTF("result: %s\n", cp->out);
-            delete cp;
-        } else {
-            printf("S\n");
-            commands.push_back(cp);
-            pthread_t thread_handle;
-            pthread_attr_t thread_attrs;
-            pthread_attr_init(&thread_attrs);
-            pthread_attr_setstacksize(&thread_attrs, 256*1024);
-            int retval = pthread_create(
-                &thread_handle, &thread_attrs, &handle_command_aux, cp
-            );
-            if (retval) {
-                fprintf(stderr, "can't create thread\n");
-                return -1;
-            }
+#ifdef DEBUG
+        handle_command_aux(cp);
+        BPRINTF("result: %s\n", cp->out);
+        delete cp;
+#else
+        printf("S\n");
+        commands.push_back(cp);
+        pthread_t thread_handle;
+        pthread_attr_t thread_attrs;
+        pthread_attr_init(&thread_attrs);
+        pthread_attr_setstacksize(&thread_attrs, 256*1024);
+        retval = pthread_create(
+            &thread_handle, &thread_attrs, &handle_command_aux, cp
+        );
+        if (retval) {
+            fprintf(stderr, "can't create thread\n");
+            return -1;
         }
+#endif
     }
     free(p);
     return 0;
@@ -780,6 +820,7 @@ char* get_cmd() {
     while (1) {
         char c = fgetc(stdin);
         if (c == EOF) {
+            free(p);
             return NULL;
         }
         if (c == '\n') {
diff --git a/samples/cygwin_fstab/fstab.c b/samples/cygwin_fstab/fstab.c
new file mode 100644
index 0000000..2c22460
--- /dev/null
+++ b/samples/cygwin_fstab/fstab.c
@@ -0,0 +1,98 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+// fstab PROJECT_DIR     Create an etc/fstab file for a cygwin environment
+// see: http://boinc.berkeley.edu/trac/wiki/WrapperApp
+
+// cmdline options:
+// PROJECT_DIR     an absolute (Windows) path to the project directory
+//
+// Creates a file "etc\fstab" which allows BOINC XML soft links to properly
+// refer to files in the project directory if using an application compiled
+// with a cygwin environment on a Windows host
+
+// For example the command
+//   fstab "C:\BOINC Data\projects\my.project.dir"
+// will produce a file "etc\fstab" containing the line
+//   C:/BOINC\040Data/projects/my.project.dir /projects/my.project.dir dummy binary 0 0
+// with the CWD regarded as "root" where ".." and "." all point to "/", file locations of the form
+//   ../../projects/my.project.dir/file
+// can now be properly used
+
+
+#include <stdio.h>
+#include <string.h>
+#include <limits.h>
+#ifdef _WIN32
+#include <windows.h>
+#else
+#include <sys/stat.h>
+#endif
+
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
+char path[PATH_MAX];
+
+int main(int argc, char*argv[]) {
+  char* c = argv[1];
+  char *n, *proj;
+  unsigned int i=0;
+
+  // replace all "\" with "/" in argv[1]
+  while (*c) {
+    if (*c == '\\') {
+      *c = '/';
+    }
+    c++;
+  }
+
+  // point proj to second-last "/"
+  while (i<2) {
+    c--;
+    if (*c == '/')
+      i++;
+  }
+  proj = c;
+
+  // copy argv[1] to path, replacing " " with "\040"
+  c = argv[1];
+  while ((n = strchr(c,' '))) {
+    *n = '\0'; // end the string to copy here
+    strcat(path, c);
+    strcat(path, "\\040");
+    *n = ' '; // restore the original value
+    c = n + 1;
+  }
+  strcat(path, c);
+
+#ifdef _WIN32
+  CreateDirectory ("etc", NULL);
+  FILE* fp = fopen("etc\\fstab", "w");
+#else
+  mkdir("etc",0755);;
+  FILE* fp = fopen("etc/fstab", "w");
+#endif
+  if (!fp)
+    return(1);
+  fprintf(fp, "%s /project dummy binary 0 0\n", path);
+  fprintf(fp, "%s %s dummy binary 0 0\n", path, proj);
+  fclose(fp);
+  return(0);
+}
+
diff --git a/samples/example_app/uc2.cpp b/samples/example_app/uc2.cpp
index 486bd1a..b2e2119 100644
--- a/samples/example_app/uc2.cpp
+++ b/samples/example_app/uc2.cpp
@@ -346,17 +346,3 @@ int main(int argc, char **argv) {
 #endif
     boinc_finish(0);
 }
-
-#ifdef _WIN32
-int WINAPI WinMain(
-    HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode
-) {
-    LPSTR command_line;
-    char* argv[100];
-    int argc;
-
-    command_line = GetCommandLine();
-    argc = parse_command_line(command_line, argv);
-    return main(argc, argv);
-}
-#endif
diff --git a/samples/example_app/ucn.cpp b/samples/example_app/ucn.cpp
index 8316eb8..9587b4f 100644
--- a/samples/example_app/ucn.cpp
+++ b/samples/example_app/ucn.cpp
@@ -66,6 +66,7 @@ int convert_file(char* in, char* out) {
             "%s Couldn't find output file, resolved name %s.\n",
             boinc_msg_prefix(buf, sizeof(buf)), output_path
         );
+        fclose(infile);
         return -1;
     }
 
diff --git a/samples/gfx_html/webboincpng.cpp b/samples/gfx_html/webboincpng.cpp
index 7af6388..5002199 100644
--- a/samples/gfx_html/webboincpng.cpp
+++ b/samples/gfx_html/webboincpng.cpp
@@ -126,7 +126,7 @@ int handle_static_boinc_png(struct mg_connection *conn) {
     mg_send_data(
         conn,
         image.c_str(),
-        image.size()
+        (int)image.size()
     );
     return MG_TRUE;
 }
diff --git a/samples/multi_thread/multi_thread.cpp b/samples/multi_thread/multi_thread.cpp
index d05982e..68e9c3a 100644
--- a/samples/multi_thread/multi_thread.cpp
+++ b/samples/multi_thread/multi_thread.cpp
@@ -192,15 +192,3 @@ int main(int argc, char** argv) {
     );
     boinc_finish(0);
 }
-
-#ifdef _WIN32
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode) {
-    LPSTR command_line;
-    char* argv[100];
-    int argc;
-
-    command_line = GetCommandLine();
-    argc = parse_command_line( command_line, argv );
-    return main(argc, argv);
-}
-#endif
diff --git a/samples/nvcuda/cuda.cpp b/samples/nvcuda/cuda.cpp
index 2dc740c..b754bd8 100644
--- a/samples/nvcuda/cuda.cpp
+++ b/samples/nvcuda/cuda.cpp
@@ -247,18 +247,6 @@ int main(int argc, char** argv) {
     boinc_finish(0);
 }
 
-#ifdef _WIN32
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode) {
-    LPSTR command_line;
-    char* argv[100];
-    int argc;
-	
-    command_line = GetCommandLine();
-    argc = parse_command_line( command_line, argv );
-    return main(argc, argv);
-}
-#endif
-
 /*** BOINC FUNCTION DEFINITIONS ***/
 
 /* Do a billion floating-point ops */
diff --git a/samples/openclapp/openclapp.cpp b/samples/openclapp/openclapp.cpp
index 6d59590..4632034 100644
--- a/samples/openclapp/openclapp.cpp
+++ b/samples/openclapp/openclapp.cpp
@@ -258,17 +258,6 @@ int main(int argc, char * argv[]) {
     boinc_finish(0);
 }
 
-#ifdef _WIN32
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode) {
-    LPSTR command_line;
-    char* argv[100];
-    int argc;
-
-    command_line = GetCommandLine();
-    argc = parse_command_line( command_line, argv );
-    return main(argc, argv);
-}
-#endif
 
 /*** BOINC FUNCTION DEFINITIONS ***/
 
diff --git a/samples/sleeper/sleeper.cpp b/samples/sleeper/sleeper.cpp
index 2b4a011..377efa9 100644
--- a/samples/sleeper/sleeper.cpp
+++ b/samples/sleeper/sleeper.cpp
@@ -28,16 +28,3 @@ int main(int, char**) {
         boinc_sleep(1);
     }
 }
-
-#ifdef _WIN32
-
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode) {
-    LPSTR command_line;
-    char* argv[100];
-    int argc;
-
-    command_line = GetCommandLine();
-    argc = parse_command_line( command_line, argv );
-    return main(argc, argv);
-}
-#endif
diff --git a/samples/vboxwrapper/floppyio.cpp b/samples/vboxwrapper/floppyio.cpp
index 129222e..f1d13d9 100644
--- a/samples/vboxwrapper/floppyio.cpp
+++ b/samples/vboxwrapper/floppyio.cpp
@@ -197,7 +197,10 @@ int FloppyIO::send(string strData) {
     memset(dataToSend, 0, this->szOutput);
     
     // Check for ready state
-    if (!this->ready()) return this->setError(-4, "Stream is not ready!");
+    if (!this->ready()) {
+        delete[] dataToSend;
+        return this->setError(-4, "Stream is not ready!");
+    }
 
     // Initialize variables
     int szData = (int)strData.length();
@@ -214,14 +217,20 @@ int FloppyIO::send(string strData) {
     }
     
     // Check for stream status
-    if (!this->fIO->good()) return this->setError(-1, "I/O Stream reported no-good state while sending!");
+    if (!this->fIO->good()) {
+        delete[] dataToSend;
+        return this->setError(-1, "I/O Stream reported no-good state while sending!");
+    }
     
     // Write the data to file
     this->fIO->seekp(this->ofsOutput);
     this->fIO->write(dataToSend, this->szOutput);
     
     // Check if something went wrong after writing
-    if (!this->fIO->good()) return this->setError(-1, "I/O Stream reported no-good state while sending!");
+    if (!this->fIO->good()) {
+        delete[] dataToSend;
+        return this->setError(-1, "I/O Stream reported no-good state while sending!");
+    }
     
     // Notify the client that we placed data (Client should clear this on read)
     this->fIO->seekp(this->ofsCtrlByteOut);
@@ -232,9 +241,14 @@ int FloppyIO::send(string strData) {
     if (this->synchronized) {
         // Wait for input control byte to become 1
         int iState = this->waitForSync(this->ofsCtrlByteOut, 0, this->syncTimeout);
-        if (iState<0) return iState;
+        if (iState<0) {
+            delete[] dataToSend;
+            return iState;
+        }
     }
 
+    delete[] dataToSend;
+
     // Return number of bytes sent
     return bytesSent;
     
@@ -261,17 +275,26 @@ int FloppyIO::receive(string * ansBuffer) {
     char * dataToReceive = new char[this->szInput];
 
     // Check for ready state
-    if (!this->ready()) return this->setError(-4, "Stream is not ready!");
+    if (!this->ready()) {
+        delete[] dataToReceive;
+        return this->setError(-4, "Stream is not ready!");
+    }
 
     // If synchronized, wait for input data
     if (this->synchronized) {
         // Wait for input control byte to become 1
         int iState = this->waitForSync(this->ofsCtrlByteIn, 1, this->syncTimeout);
-        if (iState<0) return iState;
+        if (iState<0) {
+            delete[] dataToReceive;
+            return iState;
+        }
     }
     
     // Check for stream status
-    if (!this->fIO->good()) return this->setError(-1, "I/O Stream reported no-good state while receiving!");
+    if (!this->fIO->good()) {
+        delete[] dataToReceive;
+        return this->setError(-1, "I/O Stream reported no-good state while receiving!");
+    }
     
     // Read the input bytes from FD
     this->fIO->seekg(this->ofsInput, ios_base::beg);
@@ -284,6 +307,7 @@ int FloppyIO::receive(string * ansBuffer) {
     
     // Copy input data to string object
     *ansBuffer = dataToReceive;
+    delete[] dataToReceive;
     return (int)ansBuffer->length();
     
 }
diff --git a/samples/vboxwrapper/floppyio.h b/samples/vboxwrapper/floppyio.h
index 4bdc7b3..28308a2 100644
--- a/samples/vboxwrapper/floppyio.h
+++ b/samples/vboxwrapper/floppyio.h
@@ -161,25 +161,35 @@ namespace FloppyIONS {
 
         int         code;
         std::string message;
+        std::string full_message;
 
         // Default constructor/destructor
-        FloppyIOException() { this->code=0; this->message=""; };
+        FloppyIOException() {
+            init(0, "");
+        };
         virtual ~FloppyIOException() throw() { };
 
         // Get description
         virtual const char* what() const throw() {
-            static std::ostringstream oss (std::ostringstream::out);
-            oss << this->message << ". Error code = " << this->code;
-            return oss.str().c_str();
+            return full_message.c_str();
         }
 
         // Change the message and return my instance
         // (Used for singleton format)
         FloppyIOException * set(int _code, std::string _message) {
-            this->code = _code;
-            this->message = _message;
+            init(_code, _message);
             return this;
         }
+
+    private:
+
+        void init(int _code, std::string _message) {
+            code = _code;
+            message = _message;
+            std::stringstream ss;
+            ss << _message << ". Error code = " << _code;
+            full_message = ss.str();
+        }
     
     };
 
diff --git a/samples/vboxwrapper/vbox50.tlb b/samples/vboxwrapper/vbox50.tlb
index 2e8ce57..6a747be 100644
Binary files a/samples/vboxwrapper/vbox50.tlb and b/samples/vboxwrapper/vbox50.tlb differ
diff --git a/samples/vboxwrapper/vbox51.tlb b/samples/vboxwrapper/vbox51.tlb
new file mode 100644
index 0000000..f2a2007
Binary files /dev/null and b/samples/vboxwrapper/vbox51.tlb differ
diff --git a/samples/vboxwrapper/vbox_common.cpp b/samples/vboxwrapper/vbox_common.cpp
index 4cca281..25d3f42 100644
--- a/samples/vboxwrapper/vbox_common.cpp
+++ b/samples/vboxwrapper/vbox_common.cpp
@@ -50,6 +50,8 @@ using std::string;
 #include "parse.h"
 #include "str_util.h"
 #include "str_replace.h"
+#include "base64.h"
+#include "md5_file.h"
 #include "util.h"
 #include "error_numbers.h"
 #include "procinfo.h"
@@ -86,9 +88,11 @@ static bool is_timestamp_newer(VBOX_TIMESTAMP& t1, VBOX_TIMESTAMP& t2) {
 VBOX_BASE::VBOX_BASE() : VBOX_JOB() {
     VBOX_JOB::clear();
     virtualbox_home_directory.clear();
+    virtualbox_scratch_directory.clear();
     virtualbox_install_directory.clear();
     virtualbox_guest_additions.clear();
-    virtualbox_version.clear();
+    virtualbox_version_raw.clear();
+    virtualbox_version_display.clear();
     pFloppy = NULL;
     vm_log.clear();
     vm_log_timestamp.hours = 0;
@@ -228,6 +232,7 @@ void VBOX_BASE::dump_hypervisor_logs(bool include_error_logs) {
     get_vm_exit_code(vm_exit_code);
 
     if (include_error_logs) {
+		dump_screenshot();
         fprintf(
             stderr,
             "\n"
@@ -288,6 +293,8 @@ void VBOX_BASE::dump_vmguestlog_entries() {
                 vm_log_timestamp = current_timestamp;
                 msg = line.substr(line_pos, line.size() - line_pos);
 
+				sanitize_format(msg);
+
                 vboxlog_msg(msg.c_str());
             }
         }
@@ -297,12 +304,70 @@ void VBOX_BASE::dump_vmguestlog_entries() {
     }
 }
 
+int VBOX_BASE::dump_screenshot() {
+    int    retval;
+    char   screenshot_md5[32];
+    double nbytes;
+    char*  buf = NULL;
+    size_t n;
+    FILE*  f = NULL;
+    string screenshot_encoded;
+    string virtual_machine_slot_directory;
+	string screenshot_location;
+
+	get_slot_directory(virtual_machine_slot_directory);
+
+	screenshot_location = virtual_machine_slot_directory;
+	screenshot_location += "/";
+	screenshot_location += SCREENSHOT_FILENAME;
+
+    if (boinc_file_exists(screenshot_location.c_str())) {
+
+        // Compute MD5 hash for raw file
+        retval = md5_file(screenshot_location.c_str(), screenshot_md5, nbytes, false);
+        if (retval) return retval;
+
+        buf = (char*)malloc((size_t)nbytes);
+        if (!buf) {
+            vboxlog_msg("Failed to allocate buffer for screenshot image dump.");
+            return ERR_MALLOC;
+        }
+        f = fopen(screenshot_location.c_str(), "rb");
+        if (!f) {
+            vboxlog_msg("Failed to open screenshot image file. (%s)", screenshot_location.c_str());
+            free(buf);
+            return ERR_FOPEN;
+        }
+
+        n = fread(buf, 1, (size_t)nbytes, f);
+        if (n != nbytes) {
+            vboxlog_msg("Failed to read screenshot image file into buffer.");
+        }
+
+        screenshot_encoded = r_base64_encode(buf, n);
+
+        fclose(f);
+        free(buf);
+
+        fprintf(
+            stderr,
+            "\n"
+            "Screen Shot Information (Base64 Encoded PNG):\n"
+            "MD5 Signature: %s\n"
+            "Data: %s\n"
+            "\n",
+            screenshot_md5,
+            screenshot_encoded.c_str()
+        );
+    }
+
+    return 0;
+}
+
 bool VBOX_BASE::is_vm_machine_configuration_available() {
     string virtual_machine_slot_directory;
     string vm_machine_configuration_file;
-    APP_INIT_DATA aid;
 
-    boinc_get_init_data_p(&aid);
     get_slot_directory(virtual_machine_slot_directory);
 
     vm_machine_configuration_file = virtual_machine_slot_directory + "/" + vm_master_name + "/" + vm_master_name + ".vbox";
@@ -312,6 +377,11 @@ bool VBOX_BASE::is_vm_machine_configuration_available() {
     return false;
 }
 
+
+// Updates for VirtualBox errors dealing with CPU exceleration can be found here:
+// https://www.virtualbox.org/browser/vbox/trunk/src/VBox/VMM/VMMR3/HM.cpp#L599
+//
+
 bool VBOX_BASE::is_logged_failure_vm_extensions_disabled() {
     if (vm_log.find("VERR_VMX_MSR_LOCKED_OR_DISABLED") != string::npos) return true;
     if (vm_log.find("VERR_SVM_DISABLED") != string::npos) return true;
@@ -320,6 +390,11 @@ bool VBOX_BASE::is_logged_failure_vm_extensions_disabled() {
     if (vm_log.find("VERR_VMX_MSR_VMXON_DISABLED") != string::npos) return true;
     if (vm_log.find("VERR_VMX_MSR_SMX_VMXON_DISABLED") != string::npos) return true;
 
+    // VirtualBox 5.x or better
+    if (vm_log.find("VERR_VMX_MSR_VMX_DISABLED") != string::npos) return true;
+    if (vm_log.find("VERR_VMX_MSR_ALL_VMX_DISABLED") != string::npos) return true;
+    if (vm_log.find("VERR_VMX_MSR_LOCKING_FAILED") != string::npos) return true;
+
     return false;
 }
 
@@ -335,6 +410,10 @@ bool VBOX_BASE::is_logged_failure_vm_extensions_not_supported() {
     return false;
 }
 
+//
+//
+//
+
 bool VBOX_BASE::is_logged_failure_vm_powerup() {
     if (vm_log.find("Power up failed (vrc=VINF_SUCCESS, rc=E_FAIL (0X80004005))") != string::npos) return true;
     return false;
@@ -353,7 +432,7 @@ bool VBOX_BASE::is_logged_failure_guest_job_out_of_memory() {
 
 bool VBOX_BASE::is_virtualbox_version_newer(int maj, int min, int rel) {
     int vbox_major = 0, vbox_minor = 0, vbox_release = 0;
-    if (3 == sscanf(virtualbox_version.c_str(), "%d.%d.%d", &vbox_major, &vbox_minor, &vbox_release)) {
+    if (3 == sscanf(virtualbox_version_raw.c_str(), "%d.%d.%d", &vbox_major, &vbox_minor, &vbox_release)) {
         if (maj < vbox_major) return true;
         if (maj > vbox_major) return false;
         if (min < vbox_minor) return true;
@@ -363,6 +442,18 @@ bool VBOX_BASE::is_virtualbox_version_newer(int maj, int min, int rel) {
     return false;
 }
 
+int VBOX_BASE::get_scratch_directory(string& dir) {
+    APP_INIT_DATA aid;
+    boinc_get_init_data_p(&aid);
+
+    dir = aid.project_dir + std::string("/scratch");
+
+    if (!dir.empty()) {
+        return 1;
+    }
+    return 0;
+}
+
 // Returns the current directory in which the executable resides.
 //
 int VBOX_BASE::get_slot_directory(string& dir) {
@@ -378,31 +469,19 @@ int VBOX_BASE::get_slot_directory(string& dir) {
 }
 
 int VBOX_BASE::get_system_log(string& log, bool tail_only, unsigned int buffer_size) {
-    string slot_directory;
-    string virtualbox_system_log_src;
-    string virtualbox_system_log_dst;
+    string virtualbox_system_log;
     string::iterator iter;
     int retval = BOINC_SUCCESS;
 
-    // Where should we copy temp files to?
-    get_slot_directory(slot_directory);
-
     // Locate and read log file
-    virtualbox_system_log_src = virtualbox_home_directory + "/VBoxSVC.log";
-    virtualbox_system_log_dst = slot_directory + "/VBoxSVC.log";
+    virtualbox_system_log = virtualbox_home_directory + "/VBoxSVC.log";
 
-    if (boinc_file_exists(virtualbox_system_log_src.c_str())) {
-        // Skip having to deal with various forms of file locks by just making a temp
-        // copy of the log file.
-        boinc_copy(virtualbox_system_log_src.c_str(), virtualbox_system_log_dst.c_str());
-    }
-
-    if (boinc_file_exists(virtualbox_system_log_dst.c_str())) {
+    if (boinc_file_exists(virtualbox_system_log.c_str())) {
         if (tail_only) {
             // Keep only the last 8k if it is larger than that.
-            read_file_string(virtualbox_system_log_dst.c_str(), log, buffer_size, true);
+            read_file_string(virtualbox_system_log.c_str(), log, buffer_size, true);
         } else {
-            read_file_string(virtualbox_system_log_dst.c_str(), log);
+            read_file_string(virtualbox_system_log.c_str(), log);
         }
 
         sanitize_output(log);
@@ -426,31 +505,19 @@ int VBOX_BASE::get_system_log(string& log, bool tail_only, unsigned int buffer_s
 }
 
 int VBOX_BASE::get_vm_log(string& log, bool tail_only, unsigned int buffer_size) {
-    string slot_directory;
-    string virtualbox_vm_log_src;
-    string virtualbox_vm_log_dst;
+    string virtualbox_vm_log;
     string::iterator iter;
     int retval = BOINC_SUCCESS;
 
-    // Where should we copy temp files to?
-    get_slot_directory(slot_directory);
-
     // Locate and read log file
-    virtualbox_vm_log_src = vm_master_name + "/Logs/VBox.log";
-    virtualbox_vm_log_dst = slot_directory + "/VBox.log";
+    virtualbox_vm_log = vm_master_name + "/Logs/VBox.log";
 
-    if (boinc_file_exists(virtualbox_vm_log_src.c_str())) {
-        // Skip having to deal with various forms of file locks by just making a temp
-        // copy of the log file.
-        boinc_copy(virtualbox_vm_log_src.c_str(), virtualbox_vm_log_dst.c_str());
-    }
-
-    if (boinc_file_exists(virtualbox_vm_log_dst.c_str())) {
+    if (boinc_file_exists(virtualbox_vm_log.c_str())) {
         if (tail_only) {
             // Keep only the last 8k if it is larger than that.
-            read_file_string(virtualbox_vm_log_dst.c_str(), log, buffer_size, true);
+            read_file_string(virtualbox_vm_log.c_str(), log, buffer_size, true);
         } else {
-            read_file_string(virtualbox_vm_log_dst.c_str(), log);
+            read_file_string(virtualbox_vm_log.c_str(), log);
         }
 
         sanitize_output(log);
@@ -475,16 +542,12 @@ int VBOX_BASE::get_vm_log(string& log, bool tail_only, unsigned int buffer_size)
 }
 
 int VBOX_BASE::get_trace_log(string& log, bool tail_only, unsigned int buffer_size) {
-    string slot_directory;
     string vm_trace_log;
     string::iterator iter;
     int retval = BOINC_SUCCESS;
 
-    // Where should we copy temp files to?
-    get_slot_directory(slot_directory);
-
     // Locate and read log file
-    vm_trace_log = slot_directory + "/" + TRACELOG_FILENAME;
+    vm_trace_log = TRACELOG_FILENAME;
 
     if (boinc_file_exists(vm_trace_log.c_str())) {
         if (tail_only) {
@@ -518,31 +581,19 @@ int VBOX_BASE::get_trace_log(string& log, bool tail_only, unsigned int buffer_si
 }
 
 int VBOX_BASE::get_startup_log(string& log, bool tail_only, unsigned int buffer_size) {
-    string slot_directory;
-    string virtualbox_startup_log_src;
-    string virtualbox_startup_log_dst;
+    string virtualbox_startup_log;
     string::iterator iter;
     int retval = BOINC_SUCCESS;
 
-    // Where should we copy temp files to?
-    get_slot_directory(slot_directory);
-
     // Locate and read log file
-    virtualbox_startup_log_src = vm_master_name + "/Logs/VBoxStartup.log";
-    virtualbox_startup_log_dst = slot_directory + "/VBoxStartup.log";
-
-    if (boinc_file_exists(virtualbox_startup_log_src.c_str())) {
-        // Skip having to deal with various forms of file locks by just making a temp
-        // copy of the log file.
-        boinc_copy(virtualbox_startup_log_src.c_str(), virtualbox_startup_log_dst.c_str());
-    }
+    virtualbox_startup_log = vm_master_name + "/Logs/VBoxStartup.log";
 
-    if (boinc_file_exists(virtualbox_startup_log_dst.c_str())) {
+    if (boinc_file_exists(virtualbox_startup_log.c_str())) {
         if (tail_only) {
             // Keep only the last 8k if it is larger than that.
-            read_file_string(virtualbox_startup_log_dst.c_str(), log, buffer_size, true);
+            read_file_string(virtualbox_startup_log.c_str(), log, buffer_size, true);
         } else {
-            read_file_string(virtualbox_startup_log_dst.c_str(), log);
+            read_file_string(virtualbox_startup_log.c_str(), log);
         }
 
         sanitize_output(log);
@@ -582,8 +633,25 @@ int VBOX_BASE::write_floppy(std::string& data) {
     return 1;
 }
 
-void VBOX_BASE::sanitize_output(std::string& output) {
+void VBOX_BASE::sanitize_format(std::string& output) {
+    // Check for special characters used by printf and render them harmless
+    string::iterator iter = output.begin();
+    while (iter != output.end()) {
+        if (*iter == '%') {
+			// If we find '%', insert an additional '%' so that the we end up with
+			// "%%" in its place.  This with cause printf() type functions to print
+			// % within the formatted output.
+			//
+			iter = output.insert(iter+1, '%');
+            ++iter;
+        } else {
+            ++iter;
+        }
+    }
+}
+
 #ifdef _WIN32
+void VBOX_BASE::sanitize_output(std::string& output) {
     // Remove \r from the log spew
     string::iterator iter = output.begin();
     while (iter != output.end()) {
@@ -593,8 +661,10 @@ void VBOX_BASE::sanitize_output(std::string& output) {
             ++iter;
         }
     }
-#endif
 }
+#else
+void VBOX_BASE::sanitize_output(std::string& ) {}
+#endif
 
 // Launch VboxSVC.exe before going any further. if we don't, it'll be launched by
 // svchost.exe with its environment block which will not contain the reference
@@ -679,13 +749,14 @@ int VBOX_BASE::launch_vboxsvc() {
                     vboxlog_msg("Status Report: Launching vboxsvc.exe failed!.");
                     vboxlog_msg("        Error: %s", windows_format_error_string(GetLastError(), buf, sizeof(buf)));
 #ifdef _DEBUG
-                    vboxlog_msg("Vbox Version: '%s'", virtualbox_version.c_str());
+                    vboxlog_msg("Vbox Version: '%s'", virtualbox_version_raw.c_str());
                     vboxlog_msg("Vbox Install Directory: '%s'", virtualbox_install_directory.c_str());
                     vboxlog_msg("Vbox Home Directory: '%s'", virtualbox_home_directory.c_str());
 #endif
                 }
 
-                vbm_trace(command, std::string(""), retval);
+                string s = string("");
+                vbm_trace(command, s, retval);
             }
         }
     }
@@ -696,7 +767,6 @@ int VBOX_BASE::launch_vboxsvc() {
 
 // Launch the VM.
 int VBOX_BASE::launch_vboxvm() {
-    char buf[256];
     char cmdline[1024];
     char* argv[5];
     int argc;
@@ -729,6 +799,7 @@ int VBOX_BASE::launch_vboxvm() {
     }
 
 #ifdef _WIN32
+    char buf[256];
     STARTUPINFO si;
     PROCESS_INFORMATION pi;
     SECURITY_ATTRIBUTES sa;
@@ -977,7 +1048,14 @@ int VBOX_BASE::vbm_popen(string& command, string& output, const char* item, bool
 
 // Execute the vbox manage application and copy the output to the buffer.
 //
-int VBOX_BASE::vbm_popen_raw(string& command, string& output, unsigned int timeout) {
+int VBOX_BASE::vbm_popen_raw(
+    string& command, string& output,
+#ifdef _WIN32
+    unsigned int timeout
+#else
+    unsigned int
+#endif
+) {
     size_t errcode_start;
     size_t errcode_end;
     string errcode;
@@ -1157,7 +1235,6 @@ void VBOX_BASE::vbm_trace(std::string& command, std::string& output, int retval)
     char buf[256];
     int pid;
     struct tm tm;
-    struct tm *tmp = &tm;
 
     vbm_replay(command);
 
diff --git a/samples/vboxwrapper/vbox_common.h b/samples/vboxwrapper/vbox_common.h
index 125517d..6b403e7 100644
--- a/samples/vboxwrapper/vbox_common.h
+++ b/samples/vboxwrapper/vbox_common.h
@@ -18,8 +18,8 @@
 
 // Provide cross-platform interfaces for making changes to VirtualBox
 
-#ifndef _VBOX_COMMON_H_
-#define _VBOX_COMMON_H_
+#ifndef BOINC_VBOX_COMMON_H
+#define BOINC_VBOX_COMMON_H
 
 #include "vboxjob.h"
 
@@ -77,6 +77,7 @@
 
 // Vboxwrapper diagnostics
 //
+#define SCREENSHOT_FILENAME "vbox_screenshot.png"
 #define REPLAYLOG_FILENAME "vbox_replay.txt"
 #define TRACELOG_FILENAME "vbox_trace.txt"
 
@@ -101,9 +102,11 @@ public:
     virtual ~VBOX_BASE();
 
     std::string virtualbox_home_directory;
+    std::string virtualbox_scratch_directory;
     std::string virtualbox_install_directory;
     std::string virtualbox_guest_additions;
-    std::string virtualbox_version;
+    std::string virtualbox_version_raw;
+    std::string virtualbox_version_display;
 
     FloppyIONS::FloppyIO* pFloppy;
 
@@ -176,6 +179,7 @@ public:
     virtual int poweroff() = 0;
     virtual int pause() = 0;
     virtual int resume() = 0;
+	virtual int capture_screenshot() = 0;
     virtual int create_snapshot(double elapsed_time) = 0;
     virtual int cleanup_snapshots(bool delete_active) = 0;
     virtual int restore_snapshot() = 0;
@@ -186,6 +190,7 @@ public:
     virtual void dump_hypervisor_logs(bool include_error_logs);
     virtual void dump_hypervisor_status_reports() = 0;
     virtual void dump_vmguestlog_entries();
+	virtual int dump_screenshot();
 
     virtual int is_registered() = 0;
     virtual bool is_system_ready(std::string& message) = 0;
@@ -201,7 +206,8 @@ public:
     virtual bool is_virtualbox_version_newer(int maj, int min, int rel);
 
     static int get_install_directory(std::string& dir);
-    static int get_version_information(std::string& version);
+    static int get_scratch_directory(std::string& dir);
+    static int get_version_information(std::string& version_raw, std::string& version_display);
     virtual int get_guest_additions(std::string& dir) = 0;
     virtual int get_slot_directory(std::string& dir);
     virtual int get_default_network_interface(std::string& iface) = 0;
@@ -226,6 +232,7 @@ public:
     virtual void lower_vm_process_priority() = 0;
     virtual void reset_vm_process_priority() = 0;
 
+    static void sanitize_format(std::string& output);
     static void sanitize_output(std::string& output);
 
     virtual int launch_vboxsvc();
@@ -242,6 +249,7 @@ public:
 };
 
 class VBOX_VM : public VBOX_BASE {
+public:
     VBOX_VM();
     ~VBOX_VM();
 };
diff --git a/samples/vboxwrapper/vbox_mscom42.cpp b/samples/vboxwrapper/vbox_mscom42.cpp
index d7dcc48..5c473dd 100644
--- a/samples/vboxwrapper/vbox_mscom42.cpp
+++ b/samples/vboxwrapper/vbox_mscom42.cpp
@@ -39,11 +39,6 @@
 #include "vboxwrapper.h"
 #include "vbox_mscom42.h"
 
-
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#define stricmp     _stricmp
-#endif
-
 #import "file:vbox42.tlb" rename_namespace("vbox42"), named_guids, raw_interfaces_only
 
 using std::string;
@@ -64,4 +59,3 @@ namespace vbox42 {
 #include "vbox_mscom_impl.cpp"
 
 }
-
diff --git a/samples/vboxwrapper/vbox_mscom42.h b/samples/vboxwrapper/vbox_mscom42.h
index 985fe08..6f7a775 100644
--- a/samples/vboxwrapper/vbox_mscom42.h
+++ b/samples/vboxwrapper/vbox_mscom42.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _VBOX_MSCOM42_H_
-#define _VBOX_MSCOM42_H_
+#ifndef BOINC_VBOX_MSCOM42_H
+#define BOINC_VBOX_MSCOM42_H
 
 #include "floppyio.h"
 #include "vbox_common.h"
diff --git a/samples/vboxwrapper/vbox_mscom43.cpp b/samples/vboxwrapper/vbox_mscom43.cpp
index 4cc7774..8b302f4 100644
--- a/samples/vboxwrapper/vbox_mscom43.cpp
+++ b/samples/vboxwrapper/vbox_mscom43.cpp
@@ -39,11 +39,6 @@
 #include "vboxwrapper.h"
 #include "vbox_mscom43.h"
 
-
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#define stricmp     _stricmp
-#endif
-
 #import "file:vbox43.tlb" rename_namespace("vbox43"), named_guids, raw_interfaces_only
 
 using std::string;
diff --git a/samples/vboxwrapper/vbox_mscom43.h b/samples/vboxwrapper/vbox_mscom43.h
index 1c55576..5d452f3 100644
--- a/samples/vboxwrapper/vbox_mscom43.h
+++ b/samples/vboxwrapper/vbox_mscom43.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _VBOX_MSCOM43_H_
-#define _VBOX_MSCOM43_H_
+#ifndef BOINC_VBOX_MSCOM43_H
+#define BOINC_VBOX_MSCOM43_H
 
 #include "floppyio.h"
 #include "vbox_common.h"
diff --git a/samples/vboxwrapper/vbox_mscom50.cpp b/samples/vboxwrapper/vbox_mscom50.cpp
index 1795d60..8f1bc5b 100644
--- a/samples/vboxwrapper/vbox_mscom50.cpp
+++ b/samples/vboxwrapper/vbox_mscom50.cpp
@@ -39,11 +39,6 @@
 #include "vboxwrapper.h"
 #include "vbox_mscom50.h"
 
-
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#define stricmp     _stricmp
-#endif
-
 #import "file:vbox50.tlb" rename_namespace("vbox50"), named_guids, raw_interfaces_only
 
 using std::string;
diff --git a/samples/vboxwrapper/vbox_mscom50.h b/samples/vboxwrapper/vbox_mscom50.h
index 1685863..1406f3e 100644
--- a/samples/vboxwrapper/vbox_mscom50.h
+++ b/samples/vboxwrapper/vbox_mscom50.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 
-#ifndef _VBOX_MSCOM50_H_
-#define _VBOX_MSCOM50_H_
+#ifndef BOINC_VBOX_MSCOM50_H
+#define BOINC_VBOX_MSCOM50_H
 
 #include "floppyio.h"
 #include "vbox_common.h"
diff --git a/samples/vboxwrapper/vbox_mscom51.cpp b/samples/vboxwrapper/vbox_mscom51.cpp
new file mode 100644
index 0000000..4cce445
--- /dev/null
+++ b/samples/vboxwrapper/vbox_mscom51.cpp
@@ -0,0 +1,64 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2010-2012 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+#define _VIRTUALBOX51_
+#define _VIRTUALBOX_IMPORT_FUNCTIONS_
+
+#include "boinc_win.h"
+#include "atlcomcli.h"
+#include "atlsafe.h"
+#include "atlcoll.h"
+#include "atlstr.h"
+#include "win_util.h"
+#include "diagnostics.h"
+#include "filesys.h"
+#include "parse.h"
+#include "str_util.h"
+#include "str_replace.h"
+#include "util.h"
+#include "error_numbers.h"
+#include "procinfo.h"
+#include "network.h"
+#include "boinc_api.h"
+#include "floppyio.h"
+#include "vboxlogging.h"
+#include "vboxwrapper.h"
+#include "vbox_mscom51.h"
+
+
+#import "file:vbox51.tlb" rename_namespace("vbox51"), named_guids, raw_interfaces_only
+
+using std::string;
+using namespace vbox51;
+
+namespace vbox51 {
+
+    class VBOX_PRIV {
+    public:
+        VBOX_PRIV() {};
+        ~VBOX_PRIV() {};
+
+        IVirtualBoxPtr m_pVirtualBox;
+        ISessionPtr m_pSession;
+        IMachinePtr m_pMachine;
+    };
+
+#include "vbox_mscom_impl.cpp"
+
+}
+
+
diff --git a/samples/vboxwrapper/vbox_mscom51.h b/samples/vboxwrapper/vbox_mscom51.h
new file mode 100644
index 0000000..2ffab01
--- /dev/null
+++ b/samples/vboxwrapper/vbox_mscom51.h
@@ -0,0 +1,31 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2010-2012 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+
+#ifndef BOINC_VBOX_MSCOM51_H
+#define BOINC_VBOX_MSCOM51_H
+
+#include "floppyio.h"
+#include "vbox_common.h"
+
+namespace vbox51 {
+
+#include "vbox_mscom_impl.h"
+
+}
+
+#endif
diff --git a/samples/vboxwrapper/vbox_mscom_impl.cpp b/samples/vboxwrapper/vbox_mscom_impl.cpp
index 29aa034..b885ad7 100644
--- a/samples/vboxwrapper/vbox_mscom_impl.cpp
+++ b/samples/vboxwrapper/vbox_mscom_impl.cpp
@@ -15,6 +15,10 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+#ifdef _MSC_VER
+#pragma warning(disable: 4706)
+#endif
+
 #ifdef _VIRTUALBOX_IMPORT_FUNCTIONS_
 
 const char *MachineStateToName(MachineState State) 
@@ -205,12 +209,12 @@ int VBOX_VM::initialize() {
     int rc = BOINC_SUCCESS;
     string old_path;
     string new_path;
-    string version;
     APP_INIT_DATA aid;
     bool force_sandbox = false;
 
     boinc_get_init_data_p(&aid);
     get_install_directory(virtualbox_install_directory);
+    get_scratch_directory(virtualbox_scratch_directory);
 
     // Prep the environment so we can execute the vboxmanage application
     //
@@ -272,12 +276,9 @@ int VBOX_VM::initialize() {
         return rc;
     }
 
-    rc = get_version_information(version);
+    rc = get_version_information(virtualbox_version_raw, virtualbox_version_display);
     if (rc) return rc;
 
-    // Fix-up version string
-    virtualbox_version = "VirtualBox COM Interface (Version: " + version + ")";
-
     // Get the guest addition information
     get_guest_additions(virtualbox_guest_additions);
 
@@ -289,7 +290,6 @@ int VBOX_VM::create_vm() {
     HRESULT rc;
     char buf[256];
     APP_INIT_DATA aid;
-    CComBSTR vm_machine_uuid;
     CComPtr<IMachine> pMachineRO;
     CComPtr<IMachine> pMachine;
     CComPtr<ISession> pSession;
@@ -410,10 +410,10 @@ int VBOX_VM::create_vm() {
     // Tweak the VM's Boot Options
     //
     vboxlog_msg("Setting Boot Options for VM.");
-    rc = pMachine->SetBootOrder(1, DeviceType_HardDisk);
+    rc = pMachine->SetBootOrder(boot_iso ? 2 : 1, DeviceType_HardDisk);
     if (CHECK_ERROR(rc)) goto CLEANUP;
     
-    rc = pMachine->SetBootOrder(2, DeviceType_DVD);
+    rc = pMachine->SetBootOrder(boot_iso ? 1 : 2, DeviceType_DVD);
     if (CHECK_ERROR(rc)) goto CLEANUP;
 
     pMachine->SetBootOrder(3, DeviceType_Null);
@@ -822,7 +822,7 @@ int VBOX_VM::create_vm() {
         }
     }
 
-    // Enable the shared folder if a shared folder is specified.
+    // Enable the shared folders if a shared folder is specified.
     //
     if (enable_shared_directory) {
         vboxlog_msg("Enabling shared directory for VM.");
@@ -835,6 +835,20 @@ int VBOX_VM::create_vm() {
         if (CHECK_ERROR(rc)) goto CLEANUP;
     }
 
+    // Enable the scratch folder if a scratch folder is specified.
+    //
+    if (enable_scratch_directory) {
+        vboxlog_msg("Enabling scratch shared directory for VM.");
+        rc = pMachine->CreateSharedFolder(
+            CComBSTR("scratch"),
+            CComBSTR(virtualbox_scratch_directory.c_str()),
+            TRUE,
+            TRUE
+        );
+        if (CHECK_ERROR(rc)) goto CLEANUP;
+    }
+
+
 CLEANUP:
     if (pMachine) {
         pMachine->SaveSettings();
@@ -892,7 +906,6 @@ int VBOX_VM::deregister_vm(bool delete_media) {
     CComPtr<IProgress> pProgress;
     CComPtr<IBandwidthControl> pBandwidthControl;
     CComPtr<ISnapshot> pRootSnapshot;
-    std::vector<CComPtr<IMedium>> clean_mediums;
     std::vector<CComPtr<IMedium>> mediums;
     std::vector<std::string> snapshots;
     DeviceType device_type; 
@@ -929,12 +942,17 @@ int VBOX_VM::deregister_vm(bool delete_media) {
             //
             rc = pMachine->FindSnapshot(CComBSTR(""), &pRootSnapshot);
             if (SUCCEEDED(rc) && pRootSnapshot) {
-                TraverseSnapshots(string(""), snapshots, pRootSnapshot);
+                string s = string("");
+                TraverseSnapshots(s, snapshots, pRootSnapshot);
             }
             if (snapshots.size()) {
                 for (size_t i = 0; i < snapshots.size(); i++) {
                     CComPtr<IProgress> pProgress;
+#if defined(_VIRTUALBOX42_) || defined(_VIRTUALBOX43_)
                     rc = pConsole->DeleteSnapshot(CComBSTR(snapshots[i].c_str()), &pProgress);
+#else
+                    rc = pMachine->DeleteSnapshot(CComBSTR(snapshots[i].c_str()), &pProgress);
+#endif
                     if (SUCCEEDED(rc)) {
                         pProgress->WaitForCompletion(-1);
                     } else {
@@ -1329,9 +1347,7 @@ int VBOX_VM::poll(bool log_state) {
     // Grab a snapshot of the latest log file.  Avoids multiple queries across several
     // functions.
     //
-    if (online) {
-        get_vm_log(vm_log);
-    }
+    get_vm_log(vm_log);
 
     //
     // Dump any new VM Guest Log entries
@@ -1416,12 +1432,14 @@ int VBOX_VM::stop() {
     int retval = ERR_EXEC;
     HRESULT rc;
     double timeout;
-    CComPtr<IConsole> pConsole;
     CComPtr<IProgress> pProgress;
 
 
     vboxlog_msg("Stopping VM.");
     if (online) {
+
+#if defined(_VIRTUALBOX42_) || defined(_VIRTUALBOX43_)
+        CComPtr<IConsole> pConsole;
         // Get console object. 
         rc = m_pPrivate->m_pSession->get_Console(&pConsole);
         if (CHECK_ERROR(rc)) goto CLEANUP;
@@ -1429,11 +1447,16 @@ int VBOX_VM::stop() {
         // Save the state of the machine.
         rc = pConsole->SaveState(&pProgress);
         if (CHECK_ERROR(rc)) goto CLEANUP;
+#else
+        rc = m_pPrivate->m_pMachine->SaveState(&pProgress);
+        if (CHECK_ERROR(rc)) goto CLEANUP;
+#endif
 
         // Wait until VM is powered down.
         rc = pProgress->WaitForCompletion(-1);
         if (CHECK_ERROR(rc)) goto CLEANUP;
 
+
         // Wait for up to 5 minutes for the VM to switch states.  A system
         // under load can take a while.  Since the poll function can wait for up
         // to 45 seconds to execute a command we need to make this time based instead
@@ -1582,6 +1605,83 @@ CLEANUP:
     return retval;
 }
 
+
+int VBOX_VM::capture_screenshot() {
+    if (enable_screenshots_on_error) {
+
+#if defined(_VIRTUALBOX50_) || defined(_VIRTUALBOX51_)
+
+        int retval = ERR_EXEC;
+        ULONG width, height, bpp;
+        LONG xOrigin, yOrigin;
+	    GuestMonitorStatus monitorStatus;
+        string virtual_machine_slot_directory;
+	    string screenshot_location;
+        HRESULT rc;
+	    FILE* f = NULL;
+        SAFEARRAY* pScreenshot = NULL;
+        CComSafeArray<BYTE> aScreenshot;
+        CComPtr<IConsole> pConsole;
+        CComPtr<IDisplay> pDisplay;
+        CComPtr<IKeyboard> pKeyboard;
+
+        get_slot_directory(virtual_machine_slot_directory);
+
+        vboxlog_msg("Capturing screenshot.");
+
+        rc = m_pPrivate->m_pSession->get_Console(&pConsole);
+        if (CHECK_ERROR(rc)) {
+        } else {
+            rc = pConsole->get_Display(&pDisplay);
+            if (CHECK_ERROR(rc)) {
+            } else {
+                // Due to a recently fixed bug in VirtualBox we are going to attempt to prevent receiving garbage
+                // by waking up the console.  We'll attempt to virtually tap the 'spacebar'.
+                rc = pConsole->get_Keyboard(&pKeyboard);
+                if (CHECK_ERROR(rc)) {
+                } else {
+                    pKeyboard->PutScancode(0x39);
+                    boinc_sleep(1);
+                }
+
+			    rc = pDisplay->GetScreenResolution(0, &width, &height, &bpp, &xOrigin, &yOrigin, &monitorStatus);
+			    if (CHECK_ERROR(rc)) {
+			    } else {
+                    vboxlog_msg("Retrieving screenshot from VirtualBox.");
+				    rc = pDisplay->TakeScreenShotToArray(0, width, height, BitmapFormat_PNG, &pScreenshot);
+				    if (SUCCEEDED(rc)) {
+					    aScreenshot.Attach(pScreenshot);
+
+                        vboxlog_msg("Writing screenshot to disk.");
+
+					    screenshot_location = virtual_machine_slot_directory;
+					    screenshot_location += "/";
+					    screenshot_location += SCREENSHOT_FILENAME;
+
+					    f = fopen(screenshot_location.c_str(), "wb");
+					    if (f) {
+						    fwrite(aScreenshot.GetSafeArrayPtr(), sizeof(BYTE), aScreenshot.GetCount(), f);
+						    fclose(f);
+					    } else {
+                            vboxlog_msg("Failed to write screenshot to disk.");
+					    }
+				    } else {
+                        vboxlog_msg("Failed to retrieving screenshot from VirtualBox.");
+                    }
+			    }
+
+		    }
+	    }
+
+        vboxlog_msg("Screenshot completed.");
+
+#endif
+
+    }
+	return 0;
+}
+
+
 int VBOX_VM::create_snapshot(double elapsed_time) {
     int retval = ERR_EXEC;
     char buf[256];
@@ -1598,10 +1698,12 @@ int VBOX_VM::create_snapshot(double elapsed_time) {
     pause();
 
     // Create new snapshot
+    sprintf(buf, "%d", (int)elapsed_time);
+
+#if defined(_VIRTUALBOX42_) || defined(_VIRTUALBOX43_)
     rc = m_pPrivate->m_pSession->get_Console(&pConsole);
     if (CHECK_ERROR(rc)) {
     } else {
-        sprintf(buf, "%d", (int)elapsed_time);
         rc = pConsole->TakeSnapshot(CComBSTR(string(string("boinc_") + buf).c_str()), CComBSTR(""), &pProgress);
         if (CHECK_ERROR(rc)) {
         } else {
@@ -1610,6 +1712,16 @@ int VBOX_VM::create_snapshot(double elapsed_time) {
             }
         }
     }
+#else
+    CComBSTR strUUID;
+    rc = m_pPrivate->m_pMachine->TakeSnapshot(CComBSTR(string(string("boinc_") + buf).c_str()), CComBSTR(""), true, &strUUID, &pProgress);
+    if (CHECK_ERROR(rc)) {
+    } else {
+        rc = pProgress->WaitForCompletion(-1);
+        if (CHECK_ERROR(rc)) {
+        }
+    }
+#endif
 
     // Resume VM
     resume();
@@ -1667,8 +1779,11 @@ int VBOX_VM::cleanup_snapshots(bool delete_active) {
             CComPtr<IProgress> pProgress;
 
             vboxlog_msg("Deleting stale snapshot.");
-
+#if defined(_VIRTUALBOX42_) || defined(_VIRTUALBOX43_)
             rc = pConsole->DeleteSnapshot(CComBSTR(snapshots[i].c_str()), &pProgress);
+#else
+            rc = m_pPrivate->m_pMachine->DeleteSnapshot(CComBSTR(snapshots[i].c_str()), &pProgress);
+#endif
             if (SUCCEEDED(rc)) {
                 pProgress->WaitForCompletion(-1);
             } else {
@@ -1712,7 +1827,11 @@ int VBOX_VM::restore_snapshot() {
         rc = pMachine->get_CurrentSnapshot(&pSnapshot);
         if (SUCCEEDED(rc)) {
             vboxlog_msg("Restore from previously saved snapshot.");
+#if defined(_VIRTUALBOX42_) || defined(_VIRTUALBOX43_)
             rc = pConsole->RestoreSnapshot(pSnapshot, &pProgress);
+#else
+            rc = pMachine->RestoreSnapshot(pSnapshot, &pProgress);
+#endif
             if (CHECK_ERROR(rc)) goto CLEANUP;
 
             rc = pProgress->WaitForCompletion(-1);
@@ -1779,7 +1898,7 @@ int VBOX_VM::is_registered() {
     return retval;
 }
 
-bool VBOX_VM::is_system_ready(std::string& message) {
+bool VBOX_VM::is_system_ready(std::string& ) {
     return true;
 }
 
@@ -1917,25 +2036,26 @@ int VBOX_VM::get_install_directory(string& install_directory ) {
     return BOINC_SUCCESS;
 }
 
-int VBOX_VM::get_version_information(string& version) {
+int VBOX_VM::get_version_information(string& version_raw, string& version_display) {
     LONG    lReturnValue;
     HKEY    hkSetupHive;
-    LPTSTR  lpszRegistryValue = NULL;
+    LPSTR   lpszRegistryValue = NULL;
     DWORD   dwSize = 0;
+    char    buf[256];
 
     // change the current directory to the boinc data directory if it exists
-    lReturnValue = RegOpenKeyEx(
+    lReturnValue = RegOpenKeyExA(
         HKEY_LOCAL_MACHINE, 
-        _T("SOFTWARE\\Oracle\\VirtualBox"),  
+        "SOFTWARE\\Oracle\\VirtualBox",  
         0, 
         KEY_READ,
         &hkSetupHive
     );
     if (lReturnValue == ERROR_SUCCESS) {
         // How large does our buffer need to be?
-        lReturnValue = RegQueryValueEx(
+        lReturnValue = RegQueryValueExA(
             hkSetupHive,
-            _T("VersionExt"),
+            "VersionExt",
             NULL,
             NULL,
             NULL,
@@ -1947,23 +2067,30 @@ int VBOX_VM::get_version_information(string& version) {
             (*lpszRegistryValue) = NULL;
 
             // Now get the data
-            lReturnValue = RegQueryValueEx( 
+            lReturnValue = RegQueryValueExA( 
                 hkSetupHive,
-                _T("VersionExt"),
+                "VersionExt",
                 NULL,
                 NULL,
                 (LPBYTE)lpszRegistryValue,
                 &dwSize
             );
+            version_raw = lpszRegistryValue;
 
-            version = lpszRegistryValue;
+			snprintf(
+                buf, sizeof(buf),
+                "VirtualBox COM Interface (Version: %s)",
+                lpszRegistryValue
+            );
+            version_display = buf;
         }
     }
 
     if (hkSetupHive) RegCloseKey(hkSetupHive);
     if (lpszRegistryValue) free(lpszRegistryValue);
-    if (version.empty()) {
-        return ERR_FREAD;
+    if (version_raw.empty()) {
+		version_raw = "Unknown";
+        version_display = "VirtualBox COM Interface (Version: Unknown)";
     }
     return BOINC_SUCCESS;
 }
diff --git a/samples/vboxwrapper/vbox_mscom_impl.h b/samples/vboxwrapper/vbox_mscom_impl.h
index de2d8e3..2e1113f 100644
--- a/samples/vboxwrapper/vbox_mscom_impl.h
+++ b/samples/vboxwrapper/vbox_mscom_impl.h
@@ -33,6 +33,7 @@ public:
     int poweroff();
     int pause();
     int resume();
+	int capture_screenshot();
     int create_snapshot(double elapsed_time);
     int cleanup_snapshots(bool delete_active);
     int restore_snapshot();
@@ -45,7 +46,7 @@ public:
     bool is_extpack_installed();
 
     static int get_install_directory(std::string& dir);
-    static int get_version_information(std::string& version);
+    static int get_version_information(std::string& version_raw, std::string& version_display);
     int get_guest_additions(std::string& dir);
     int get_default_network_interface(std::string& iface);
     int get_vm_network_bytes_sent(double& sent);
diff --git a/samples/vboxwrapper/vbox_vboxmanage.cpp b/samples/vboxwrapper/vbox_vboxmanage.cpp
index f506cea..fc82166 100644
--- a/samples/vboxwrapper/vbox_vboxmanage.cpp
+++ b/samples/vboxwrapper/vbox_vboxmanage.cpp
@@ -39,12 +39,6 @@
 
 using std::string;
 
-#if defined(_MSC_VER)
-#define getcwd      _getcwd
-#define stricmp     _stricmp
-#define snprintf    _snprintf
-#endif
-
 #include "diagnostics.h"
 #include "filesys.h"
 #include "parse.h"
@@ -82,11 +76,10 @@ int VBOX_VM::initialize() {
 
     boinc_get_init_data_p(&aid);
     get_install_directory(virtualbox_install_directory);
+    get_scratch_directory(virtualbox_scratch_directory);
 
     // Prep the environment so we can execute the vboxmanage application
     //
-    // TODO: Fix for non-Windows environments if we ever find another platform
-    // where vboxmanage is not already in the search path
 #ifdef _WIN32
     if (!virtualbox_install_directory.empty())
     {
@@ -97,6 +90,18 @@ int VBOX_VM::initialize() {
             vboxlog_msg("Failed to modify the search path.");
         }
     }
+#else
+    old_path = getenv("PATH");
+    if(boinc_file_exists("/usr/local/bin/VBoxManage")) {
+        new_path = "/usr/local/bin/:" + old_path;
+    }
+    if(boinc_file_exists("/usr/bin/VBoxManage")) {
+        new_path = "/usr/bin/:" + old_path;
+    }
+    // putenv does not copy its input buffer, so we must use setenv
+    if (setenv("PATH", const_cast<char*>(new_path.c_str()), 1)) {
+        vboxlog_msg("Failed to modify the search path.");
+    }
 #endif
 
     // Determine the VirtualBox home directory.  Overwrite as needed.
@@ -155,7 +160,7 @@ int VBOX_VM::initialize() {
     launch_vboxsvc();
 #endif
 
-    rc = get_version_information(virtualbox_version);
+    rc = get_version_information(virtualbox_version_raw, virtualbox_version_display);
     if (rc) return rc;
 
     get_guest_additions(virtualbox_guest_additions);
@@ -245,8 +250,13 @@ int VBOX_VM::create_vm() {
     //
     vboxlog_msg("Setting Boot Options for VM.");
     command  = "modifyvm \"" + vm_name + "\" ";
-    command += "--boot1 disk ";
-    command += "--boot2 dvd ";
+    if (boot_iso) {
+        command += "--boot1 dvd ";
+        command += "--boot2 disk ";        
+    } else {
+        command += "--boot1 disk ";
+        command += "--boot2 dvd ";
+    } 
     command += "--boot3 none ";
     command += "--boot4 none ";
 
@@ -316,6 +326,7 @@ int VBOX_VM::create_vm() {
 
     vbm_popen(command, output, "modifycom", false, false);
 
+#ifndef __APPLE__
     // Tweak the VM's LPT Port Support
     //
     vboxlog_msg("Disabling LPT Port Support for VM.");
@@ -324,6 +335,7 @@ int VBOX_VM::create_vm() {
     command += "--lpt2 off ";
 
     vbm_popen(command, output, "modifylpt", false, false);
+#endif
 
     // Tweak the VM's Audio Support
     //
@@ -622,6 +634,18 @@ int VBOX_VM::create_vm() {
         if (retval) return retval;
     }
 
+    // Enable the scratch folder if a scratch folder is specified.
+    //
+    if (enable_scratch_directory) {
+        vboxlog_msg("Enabling scratch shared directory for VM.");
+        command  = "sharedfolder add \"" + vm_name + "\" ";
+        command += "--name \"scratch\" ";
+        command += "--hostpath \"" + virtualbox_scratch_directory + "\"";
+
+        retval = vbm_popen(command, output, "enable scratch shared dir");
+        if (retval) return retval;
+    }
+
     return 0;
 }
 
@@ -758,11 +782,7 @@ int VBOX_VM::deregister_stale_vm() {
 
     get_slot_directory(virtual_machine_slot_directory);
 
-    command  = "showhdinfo \"" + virtual_machine_slot_directory + "/" + image_filename + "\" ";
-    retval = vbm_popen(command, output, "get HDD info");
-    if (retval) return retval;
-
-    // Output should look a little like this:
+    // Output from showhdinfo should look a little like this:
     //   UUID:                 c119acaf-636c-41f6-86c9-38e639a31339
     //   Accessible:           yes
     //   Logical size:         10240 MBytes
@@ -773,31 +793,11 @@ int VBOX_VM::deregister_stale_vm() {
     //   In use by VMs:        test2 (UUID: 000ab2be-1254-4c6a-9fdc-1536a478f601)
     //   Location:             C:\Users\romw\VirtualBox VMs\test2\test2.vdi
     //
-    uuid_start = output.find("(UUID: ");
-    if (uuid_start != string::npos) {
-        // We can parse the virtual machine ID from the output
-        uuid_start += 7;
-        uuid_end = output.find(")", uuid_start);
-        vm_name = output.substr(uuid_start, uuid_end - uuid_start);
-
-        // Deregister stale VM by UUID
-        return deregister_vm(false);
-    } else if (enable_isocontextualization && enable_isocontextualization) {
+    if (enable_isocontextualization) {
         command  = "showhdinfo \"" + virtual_machine_slot_directory + "/" + cache_disk_filename + "\" ";
         retval = vbm_popen(command, output, "get HDD info");
         if (retval) return retval;
 
-        // Output should look a little like this:
-        //   UUID:                 c119acaf-636c-41f6-86c9-38e639a31339
-        //   Accessible:           yes
-        //   Logical size:         10240 MBytes
-        //   Current size on disk: 0 MBytes
-        //   Type:                 normal (base)
-        //   Storage format:       VDI
-        //   Format variant:       dynamic default
-        //   In use by VMs:        test2 (UUID: 000ab2be-1254-4c6a-9fdc-1536a478f601)
-        //   Location:             C:\Users\romw\VirtualBox VMs\test2\test2.vdi
-        //
         uuid_start = output.find("(UUID: ");
         if (uuid_start != string::npos) {
             // We can parse the virtual machine ID from the output
@@ -809,20 +809,35 @@ int VBOX_VM::deregister_stale_vm() {
             return deregister_vm(false);
         }
     } else {
-        // Did the user delete the VM in VirtualBox and not the medium?  If so,
-        // just remove the medium.
-        command  = "closemedium disk \"" + virtual_machine_slot_directory + "/" + image_filename + "\" ";
-        vbm_popen(command, output, "remove virtual disk", false, false);
-        if (enable_floppyio) {
-            command  = "closemedium floppy \"" + virtual_machine_slot_directory + "/" + floppy_image_filename + "\" ";
-            vbm_popen(command, output, "remove virtual floppy disk", false, false);
-        }
-        if (enable_isocontextualization) {
-            command  = "closemedium dvd \"" + virtual_machine_slot_directory + "/" + iso_image_filename + "\" ";
-            vbm_popen(command, output, "remove virtual ISO 9660 disk", false);
-            if (enable_cache_disk) {
-                command  = "closemedium disk \"" + virtual_machine_slot_directory + "/" + cache_disk_filename + "\" ";
-                vbm_popen(command, output, "remove virtual cache disk", false);
+        command  = "showhdinfo \"" + virtual_machine_slot_directory + "/" + image_filename + "\" ";
+        retval = vbm_popen(command, output, "get HDD info");
+        if (retval) return retval;
+
+        uuid_start = output.find("(UUID: ");
+        if (uuid_start != string::npos) {
+            // We can parse the virtual machine ID from the output
+            uuid_start += 7;
+            uuid_end = output.find(")", uuid_start);
+            vm_name = output.substr(uuid_start, uuid_end - uuid_start);
+
+            // Deregister stale VM by UUID
+            return deregister_vm(false);
+        } else {
+            // Did the user delete the VM in VirtualBox and not the medium?  If so,
+            // just remove the medium.
+            command  = "closemedium disk \"" + virtual_machine_slot_directory + "/" + image_filename + "\" ";
+            vbm_popen(command, output, "remove virtual disk", false, false);
+            if (enable_floppyio) {
+                command  = "closemedium floppy \"" + virtual_machine_slot_directory + "/" + floppy_image_filename + "\" ";
+                vbm_popen(command, output, "remove virtual floppy disk", false, false);
+            }
+            if (enable_isocontextualization) {
+                command  = "closemedium dvd \"" + virtual_machine_slot_directory + "/" + iso_image_filename + "\" ";
+                vbm_popen(command, output, "remove virtual ISO 9660 disk", false);
+                if (enable_cache_disk) {
+                    command  = "closemedium disk \"" + virtual_machine_slot_directory + "/" + cache_disk_filename + "\" ";
+                    vbm_popen(command, output, "remove virtual cache disk", false);
+                }
             }
         }
     }
@@ -970,9 +985,7 @@ int VBOX_VM::poll(bool log_state) {
     // Grab a snapshot of the latest log file.  Avoids multiple queries across several
     // functions.
     //
-    if (online) {
-        get_vm_log(vm_log);
-    }
+    get_vm_log(vm_log);
 
     //
     // Dump any new VM Guest Log entries
@@ -1147,6 +1160,40 @@ int VBOX_VM::resume() {
     return 0;
 }
 
+int VBOX_VM::capture_screenshot() {
+    if (enable_screenshots_on_error) {
+        if (is_virtualbox_version_newer(5, 0, 0)) {
+
+            string command;
+            string output;
+            string virtual_machine_slot_directory;
+            int retval = BOINC_SUCCESS;
+
+            get_slot_directory(virtual_machine_slot_directory);
+
+            vboxlog_msg("Capturing screenshot.");
+
+            command = "controlvm \"" + vm_name + "\" ";
+            command += "keyboardputscancode 0x39";
+            vbm_popen(command, output, "put scancode", true, true, 0);
+            boinc_sleep(1);
+
+            command = "controlvm \"" + vm_name + "\" ";
+            command += "screenshotpng \"";
+	        command += virtual_machine_slot_directory;
+	        command += "/";
+	        command += SCREENSHOT_FILENAME;
+	        command += "\"";
+            retval = vbm_popen(command, output, "capture screenshot", true, true, 0);
+            if (retval) return retval;
+
+            vboxlog_msg("Screenshot completed.");
+
+        }
+    }
+	return 0;
+}
+
 int VBOX_VM::create_snapshot(double elapsed_time) {
     string command;
     string output;
@@ -1177,8 +1224,7 @@ int VBOX_VM::create_snapshot(double elapsed_time) {
     poll(false);
 
     // Delete stale snapshot(s), if one exists
-    retval = cleanup_snapshots(false);
-    if (retval) return retval;
+    cleanup_snapshots(false);
 
     vboxlog_msg("Checkpoint completed.");
 
@@ -1478,7 +1524,7 @@ int VBOX_VM::get_install_directory(string& install_directory) {
 #endif
 }
 
-int VBOX_VM::get_version_information(string& version) {
+int VBOX_VM::get_version_information(std::string& version_raw, std::string& version_display) {
     string command;
     string output;
     int vbox_major = 0, vbox_minor = 0, vbox_release = 0;
@@ -1501,14 +1547,21 @@ int VBOX_VM::get_version_information(string& version) {
         }
 
         if (3 == sscanf(output.c_str(), "%d.%d.%d", &vbox_major, &vbox_minor, &vbox_release)) {
-            snprintf(
+			snprintf(
+                buf, sizeof(buf),
+                "%d.%d.%d",
+                vbox_major, vbox_minor, vbox_release
+            );
+            version_raw = buf;
+			snprintf(
                 buf, sizeof(buf),
                 "VirtualBox VboxManage Interface (Version: %d.%d.%d)",
                 vbox_major, vbox_minor, vbox_release
             );
-            version = buf;
+            version_display = buf;
         } else {
-            version = "VirtualBox VboxManage Interface (Version: Unknown)";
+			version_raw = "Unknown";
+            version_display = "VirtualBox VboxManage Interface (Version: Unknown)";
         }
     }
 
diff --git a/samples/vboxwrapper/vbox_vboxmanage.h b/samples/vboxwrapper/vbox_vboxmanage.h
index fcd1707..9881d37 100644
--- a/samples/vboxwrapper/vbox_vboxmanage.h
+++ b/samples/vboxwrapper/vbox_vboxmanage.h
@@ -18,8 +18,8 @@
 
 // Provide cross-platform interfaces for making changes to VirtualBox
 
-#ifndef _VBOX_VBOXMANAGE_H_
-#define _VBOX_VBOXMANAGE_H_
+#ifndef BOINC_VBOX_VBOXMANAGE_H
+#define BOINC_VBOX_VBOXMANAGE_H
 
 namespace vboxmanage {
 
@@ -39,6 +39,7 @@ namespace vboxmanage {
         int poweroff();
         int pause();
         int resume();
+	    int capture_screenshot();
         int create_snapshot(double elapsed_time);
         int cleanup_snapshots(bool delete_active);
         int restore_snapshot();
@@ -52,7 +53,7 @@ namespace vboxmanage {
         bool is_virtualbox_installed();
 
         int get_install_directory(std::string& dir);
-        int get_version_information(std::string& version);
+        int get_version_information(std::string& version_raw, std::string& version_display);
         int get_guest_additions(std::string& dir);
         int get_default_network_interface(std::string& iface);
         int get_vm_network_bytes_sent(double& sent);
diff --git a/samples/vboxwrapper/vboxcheckpoint.h b/samples/vboxwrapper/vboxcheckpoint.h
index ed56313..2333453 100644
--- a/samples/vboxwrapper/vboxcheckpoint.h
+++ b/samples/vboxwrapper/vboxcheckpoint.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VBOXCHECKPOINT_H_
-#define _VBOXCHECKPOINT_H_
+#ifndef BOINC_VBOXCHECKPOINT_H
+#define BOINC_VBOXCHECKPOINT_H
 
 
 #define CHECKPOINT_FILENAME "vbox_checkpoint.xml"
diff --git a/samples/vboxwrapper/vboxjob.cpp b/samples/vboxwrapper/vboxjob.cpp
index 156d5a7..73c7e07 100644
--- a/samples/vboxwrapper/vboxjob.cpp
+++ b/samples/vboxwrapper/vboxjob.cpp
@@ -104,11 +104,14 @@ void VBOX_JOB::clear() {
     memory_size_mb = 0.0;
     job_duration = 0.0;
     minimum_checkpoint_interval = 600.0;
+    minimum_heartbeat_interval = 600.0;
     fraction_done_filename.clear();
+    heartbeat_filename.clear();
     completion_trigger_file.clear();
     temporary_exit_trigger_file.clear();
     enable_cern_dataformat = false;
     enable_shared_directory = false;
+    enable_scratch_directory = false;
     enable_floppyio = false;
     enable_cache_disk = false;
     enable_isocontextualization = false;
@@ -116,13 +119,16 @@ void VBOX_JOB::clear() {
     network_bridged_mode = false;
     enable_remotedesktop = false;
     enable_gbac = false;
+    enable_screenshots_on_error = false;
     enable_graphics_support = false;
     enable_vm_savestate_usage = false;
     disable_automatic_checkpoints = false;
+    boot_iso = false;
     pf_guest_port = 0;
     pf_host_port = 0;
     port_forwards.clear();
     intermediate_upload_files.clear();
+    copy_cmdline_to_shared = false;
 
     // Initialize default values
     vm_disk_controller_type = "ide";
@@ -159,37 +165,37 @@ int VBOX_JOB::parse() {
         else if (xp.parse_double("memory_size_mb", memory_size_mb)) continue;
         else if (xp.parse_double("job_duration", job_duration)) continue;
         else if (xp.parse_double("minimum_checkpoint_interval", minimum_checkpoint_interval)) continue;
+        else if (xp.parse_double("minimum_heartbeat_interval", minimum_heartbeat_interval)) continue;
         else if (xp.parse_string("fraction_done_filename", fraction_done_filename)) continue;
+        else if (xp.parse_string("heartbeat_filename", heartbeat_filename)) continue;
+        else if (xp.parse_string("completion_trigger_file", completion_trigger_file)) continue;
+        else if (xp.parse_string("temporary_exit_trigger_file", temporary_exit_trigger_file)) continue;
         else if (xp.parse_bool("enable_cern_dataformat", enable_cern_dataformat)) continue;
         else if (xp.parse_bool("enable_network", enable_network)) continue;
         else if (xp.parse_bool("network_bridged_mode", network_bridged_mode)) continue;
         else if (xp.parse_bool("enable_shared_directory", enable_shared_directory)) continue;
+        else if (xp.parse_bool("enable_scratch_directory", enable_scratch_directory)) continue;
         else if (xp.parse_bool("enable_floppyio", enable_floppyio)) continue;
         else if (xp.parse_bool("enable_cache_disk", enable_cache_disk)) continue;
         else if (xp.parse_bool("enable_isocontextualization", enable_isocontextualization)) continue;
         else if (xp.parse_bool("enable_remotedesktop", enable_remotedesktop)) continue;
         else if (xp.parse_bool("enable_gbac", enable_gbac)) continue;
+        else if (xp.parse_bool("enable_screenshots_on_error", enable_screenshots_on_error)) continue;
         else if (xp.parse_bool("enable_graphics_support", enable_graphics_support)) continue;
         else if (xp.parse_bool("enable_vm_savestate_usage", enable_vm_savestate_usage)) continue;
         else if (xp.parse_bool("disable_automatic_checkpoints", disable_automatic_checkpoints)) continue;
+        else if (xp.parse_bool("boot_iso", boot_iso)) continue;
         else if (xp.parse_int("pf_guest_port", pf_guest_port)) continue;
         else if (xp.parse_int("pf_host_port", pf_host_port)) continue;
         else if (xp.parse_string("copy_to_shared", str)) {
             copy_to_shared.push_back(str);
             continue;
         }
+        else if (xp.parse_bool("copy_cmdline_to_shared", copy_cmdline_to_shared)) continue;
         else if (xp.parse_string("trickle_trigger_file", str)) {
             trickle_trigger_files.push_back(str);
             continue;
         }
-        else if (xp.parse_string("completion_trigger_file", str)) {
-            completion_trigger_file = str;
-            continue;
-        }
-        else if (xp.parse_string("temporary_exit_trigger_file", str)) {
-            temporary_exit_trigger_file = str;
-            continue;
-        }
         else if (xp.parse_string("intermediate_upload_file", str)) {
             VBOX_INTERMEDIATE_UPLOAD iu;
             iu.clear();
diff --git a/samples/vboxwrapper/vboxjob.h b/samples/vboxwrapper/vboxjob.h
index ff9d690..3a4627b 100644
--- a/samples/vboxwrapper/vboxjob.h
+++ b/samples/vboxwrapper/vboxjob.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VBOXJOB_H_
-#define _VBOXJOB_H_
+#ifndef BOINC_VBOXJOB_H
+#define BOINC_VBOXJOB_H
 
 
 #define JOB_FILENAME "vbox_job.xml"
@@ -59,94 +59,113 @@ public:
     void clear();
     int parse();
 
-    // name of the OS the VM runs
     std::string os_name;
+        // name of the OS the VM runs
 
-    // the type of disk controller to emulate
     std::string vm_disk_controller_type;
+        // the type of disk controller to emulate
 
-    // the disk controller model to emulate
     std::string vm_disk_controller_model;
+        // the disk controller model to emulate
 
-    // size of the memory allocation for the VM, in megabytes
     double memory_size_mb;
+        // size of the memory allocation for the VM, in megabytes
 
-    // whether to use CERN specific data structures
     bool enable_cern_dataformat;
+        // whether to use CERN specific data structures
 
-    // whether to use an iso9660 image to implement VM contextualization (e.g. uCernVM)
     bool enable_isocontextualization;
+        // whether to use an iso9660 image to implement VM contextualization (e.g. uCernVM)
 
-    // whether to add an extra cache disk for systems like uCernVM
     bool enable_cache_disk;
+        // whether to add an extra cache disk for systems like uCernVM
+    
+    bool boot_iso; 
+        // whether to put the iso as the first boot device 
 
-    // whether to allow network access
     bool enable_network;
+        // whether to allow network access
 
-    // use bridged mode for network
     bool network_bridged_mode;
+        // use bridged mode for network
 
-    // whether to use shared directory infrastructure
     bool enable_shared_directory;
+        // whether to use shared directory infrastructure
+
+    bool enable_scratch_directory;
+        // whether to use scratch directory infrastructure
 
-    // whether to use floppy io infrastructure
     bool enable_floppyio;
+        // whether to use floppy io infrastructure
 
-    // whether to enable remote desktop functionality
     bool enable_remotedesktop;
+        // whether to enable remote desktop functionality
 
-    // whether to enable GBAC functionality
     bool enable_gbac;
+        // whether to enable GBAC functionality
 
-    // whether to enable graphics support by way of
-    // http://boinc.berkeley.edu/trac/wiki/GraphicsApi#File
     bool enable_graphics_support;
+        // whether to enable graphics support by way of
+        // http://boinc.berkeley.edu/trac/wiki/GraphicsApi#File
+
+    bool enable_screenshots_on_error;
+        // capture screen shots during catastrophic events
 
-    // whether to use savestate instead of poweroff on exit
     bool enable_vm_savestate_usage;
+        // whether to use savestate instead of poweroff on exit
 
-    // whether to disable automatic checkpoint support
     bool disable_automatic_checkpoints;
+        // whether to disable automatic checkpoint support
 
-    // maximum amount of wall-clock time this VM is allowed to run before
-    // considering itself done.
     double job_duration;
+        // maximum amount of wall-clock time this VM is allowed to run before
+        // considering itself done.
 
-    // name of file where app will write its fraction done
     std::string fraction_done_filename;
+        // name of file where app will write its fraction done
+
+    std::string heartbeat_filename;
+        // name of the file to check for a heartbeat
+        // (i.e. check mod time with stat)
+
+    double minimum_heartbeat_interval; 
+        // check heartbeat interval
 
-    // if nonzero, do port forwarding for Web GUI
     int pf_guest_port;      
     int pf_host_port;
+        // if nonzero, do port forwarding for Web GUI
 
     std::vector<VBOX_PORT_FORWARD> port_forwards;
 
-    // minimum time between checkpoints
     double minimum_checkpoint_interval;
+        // minimum time between checkpoints
 
-    // list of files to copy from slot dir to shared/
     std::vector<std::string> copy_to_shared;
+        // list of files to copy from slot dir to shared/
+
+    bool copy_cmdline_to_shared;
+        // copy the cmdline to shared/cmdline
 
-    // if find file of this name in shared/, send trickle-up message
-    // with variety = filename, contents = file contents
     std::vector<std::string> trickle_trigger_files;
+        // if find file of this name in shared/, send trickle-up message
+        // with variety = filename, contents = file contents
 
-    // if find file of this name in shared/, send specified file
     std::vector<VBOX_INTERMEDIATE_UPLOAD> intermediate_upload_files;
+        // if find file of this name in shared/, send specified file
 
-    // if find this file in shared/, task is over.
-    // File can optionally contain exit code (first line)
-    // File can optionally contain is_notice bool (second line)
-    // and stderr text (subsequent lines).
-    // Addresses a problem where VM doesn't shut down properly
     std::string completion_trigger_file;
+        // if find this file in shared/, task is over.
+        // File can optionally contain exit code (first line)
+        // File can optionally contain is_notice bool (second line)
+        // and stderr text (subsequent lines).
+        // Addresses a problem where VM doesn't shut down properly
 
-    // if find this file in shared/, task is restarted at a later date.
-    // File can optionally contain restart delay (first line)
-    // File can optionally contain is_notice bool (second line)
-    // and stderr text (subsequent lines).
-    // Addresses a problem where VM doesn't shut down properly
     std::string temporary_exit_trigger_file;
+        // if find this file in shared/, task is restarted at a later date.
+        // File can optionally contain restart delay (first line)
+        // File can optionally contain is_notice bool (second line)
+        // and stderr text (subsequent lines).
+        // Addresses a problem where VM doesn't shut down properly
 };
 
 #endif
diff --git a/samples/vboxwrapper/vboxlogging.cpp b/samples/vboxwrapper/vboxlogging.cpp
index 35c92fc..06b3593 100644
--- a/samples/vboxwrapper/vboxlogging.cpp
+++ b/samples/vboxwrapper/vboxlogging.cpp
@@ -34,11 +34,9 @@
 
 int vboxlog_msg(const char *fmt, ...) {
     int retval = 0;
-    int n = 0;
     char buf[256];
     int pid;
     struct tm tm;
-    struct tm *tmp = &tm;
     va_list ap;
 
     if (fmt == NULL) return 0;
diff --git a/samples/vboxwrapper/vboxlogging.h b/samples/vboxwrapper/vboxlogging.h
index 489ba75..6108258 100644
--- a/samples/vboxwrapper/vboxlogging.h
+++ b/samples/vboxwrapper/vboxlogging.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VBOXLOG_H_
-#define _VBOXLOG_H_
+#ifndef BOINC_VBOXLOGGING_H
+#define BOINC_VBOXLOGGING_H
 
 extern int vboxlog_msg(const char *fmt, ...);
 
diff --git a/samples/vboxwrapper/vboxwrapper.cpp b/samples/vboxwrapper/vboxwrapper.cpp
index b396949..1e70c70 100644
--- a/samples/vboxwrapper/vboxwrapper.cpp
+++ b/samples/vboxwrapper/vboxwrapper.cpp
@@ -30,6 +30,8 @@
 //                  for the particular host.
 // --register_only  Register the VM but don't run it.
 //                  Useful for debugging; see the wiki page
+// --memory_size_mb How much memory (in MB) to give the VM. Overrides the
+//                  value in vbox_job.xml if its present. 
 //
 // Handles:
 // - suspend/resume/quit/abort
@@ -44,6 +46,7 @@
 // Andrew J. Younge (ajy4490 AT umiacs DOT umd DOT edu)
 // Jie Wu <jiewu AT cern DOT ch>
 // Daniel Lombraña González <teleyinex AT gmail DOT com>
+// Marius Millea <mariusmillea AT gmail DOT com>
 
 #ifdef _WIN32
 #include "boinc_win.h"
@@ -81,6 +84,7 @@
 #include "vbox_mscom42.h"
 #include "vbox_mscom43.h"
 #include "vbox_mscom50.h"
+#include "vbox_mscom51.h"
 #endif
 #include "vbox_vboxmanage.h"
 
@@ -88,15 +92,33 @@
 using std::vector;
 using std::string;
 
+bool shared_file_exists(std::string& filename) {
+    char path[MAXPATHLEN];
+    sprintf(path, "shared/%s", filename.c_str());
+    if (filename.size() && boinc_file_exists(path)) return true;
+    return false;
+}
+
+void shared_delete_file(std::string& filename) {
+    char path[MAXPATHLEN];
+    sprintf(path, "shared/%s", filename.c_str());
+    boinc_delete_file(path);
+}
 
-void read_fraction_done(double& frac_done, VBOX_VM& vm) {
+int shared_stat(std::string& filename, struct stat* stat_file) {
+    char path[MAXPATHLEN];
+    sprintf(path, "shared/%s", filename.c_str());
+    return stat(path, stat_file);
+}
+
+bool read_fraction_done(double& frac_done, VBOX_VM& vm) {
     char path[MAXPATHLEN];
     char buf[256];
     double temp, frac = 0;
 
     sprintf(path, "shared/%s", vm.fraction_done_filename.c_str());
     FILE* f = fopen(path, "r");
-    if (!f) return;
+    if (!f) return false;
 
     // read the last line of the file
     //
@@ -117,13 +139,7 @@ void read_fraction_done(double& frac_done, VBOX_VM& vm) {
     }
 
     frac_done = frac;
-}
-
-bool completion_file_exists(VBOX_VM& vm) {
-    char path[MAXPATHLEN];
-    sprintf(path, "shared/%s", vm.completion_trigger_file.c_str());
-    if (vm.completion_trigger_file.size() && boinc_file_exists(path)) return true;
-    return false;
+	return true;
 }
 
 void read_completion_file_info(unsigned long& exit_code, bool& is_notice, string& message, VBOX_VM& vm) {
@@ -137,7 +153,7 @@ void read_completion_file_info(unsigned long& exit_code, bool& is_notice, string
     FILE* f = fopen(path, "r");
     if (f) {
         if (fgets(buf, 1024, f) != NULL) {
-            exit_code = atoi(buf) != 0;
+            exit_code = atoi(buf);
         }
         if (fgets(buf, 1024, f) != NULL) {
             is_notice = atoi(buf) != 0;
@@ -149,13 +165,6 @@ void read_completion_file_info(unsigned long& exit_code, bool& is_notice, string
     }
 }
 
-bool temporary_exit_file_exists(VBOX_VM& vm) {
-    char path[MAXPATHLEN];
-    sprintf(path, "shared/%s", vm.temporary_exit_trigger_file.c_str());
-    if (vm.temporary_exit_trigger_file.size() && boinc_file_exists(path)) return true;
-    return false;
-}
-
 void read_temporary_exit_file_info(int& temp_delay, bool& is_notice, string& message, VBOX_VM& vm) {
     char path[MAXPATHLEN];
     char buf[1024];
@@ -179,12 +188,6 @@ void read_temporary_exit_file_info(int& temp_delay, bool& is_notice, string& mes
     }
 }
 
-void delete_temporary_exit_trigger_file(VBOX_VM& vm) {
-    char path[MAXPATHLEN];
-    sprintf(path, "shared/%s", vm.temporary_exit_trigger_file.c_str());
-    boinc_delete_file(path);
-}
-
 // set CPU and network throttling if needed
 //
 void set_throttles(APP_INIT_DATA& aid, VBOX_VM& vm) {
@@ -367,8 +370,8 @@ int main(int argc, char** argv) {
     int loop_iteration = 0;
     BOINC_OPTIONS boinc_options;
     APP_INIT_DATA aid;
-    VBOX_VM* pVM = NULL;
     VBOX_CHECKPOINT checkpoint;
+    VBOX_VM* pVM = NULL;
     double desired_checkpoint_interval = 0;
     double random_checkpoint_factor = 0;
     double elapsed_time = 0;
@@ -376,6 +379,7 @@ int main(int argc, char** argv) {
     double trickle_period = 0;
     double current_cpu_time = 0;
     double starting_cpu_time = 0;
+    double last_heartbeat_elapsed_time = 0;
     double last_checkpoint_cpu_time = 0;
     double last_checkpoint_elapsed_time = 0;
     double last_status_report_time = 0;
@@ -389,12 +393,15 @@ int main(int argc, char** argv) {
     double memory_size_mb = 0;
     double timeout = 0.0;
     bool report_net_usage = false;
+    bool initial_heartbeat_check = true;
     double net_usage_timer = 600;
 	int vm_image = 0;
     unsigned long vm_exit_code = 0;
     bool is_notice = false;
     int temp_delay = 86400;
+    time_t last_heartbeat_mod_time = 0;
     string message;
+    string scratch_dir;
     char buf[256];
 
     // Initialize diagnostics system
@@ -441,16 +448,19 @@ int main(int argc, char** argv) {
     //       on the machine because it will attempt to launch the 'vboxsvc' process
     //       without out environment variable changes and muck everything up.
     //
-    string vbox_version;
+    string vbox_version_raw;
+    string vbox_version_display;
     int vbox_major = 0, vbox_minor = 0;
 
-    if (BOINC_SUCCESS != vbox42::VBOX_VM::get_version_information(vbox_version)) {
-        if (BOINC_SUCCESS != vbox43::VBOX_VM::get_version_information(vbox_version)) {
-            vbox50::VBOX_VM::get_version_information(vbox_version);
+    if (BOINC_SUCCESS != vbox42::VBOX_VM::get_version_information(vbox_version_raw, vbox_version_display)) {
+        if (BOINC_SUCCESS != vbox43::VBOX_VM::get_version_information(vbox_version_raw, vbox_version_display)) {
+            if (BOINC_SUCCESS != vbox50::VBOX_VM::get_version_information(vbox_version_raw, vbox_version_display)) {
+				vbox51::VBOX_VM::get_version_information(vbox_version_raw, vbox_version_display);
+			}
         }
     }
-    if (!vbox_version.empty()) {
-        sscanf(vbox_version.c_str(), "%d.%d", &vbox_major, &vbox_minor);
+    if (!vbox_version_raw.empty()) {
+        sscanf(vbox_version_raw.c_str(), "%d.%d", &vbox_major, &vbox_minor);
         if ((4 == vbox_major) && (2 == vbox_minor)) {
             pVM = (VBOX_VM*) new vbox42::VBOX_VM();
         }
@@ -460,13 +470,29 @@ int main(int argc, char** argv) {
         if ((5 == vbox_major) && (0 == vbox_minor)) {
             pVM = (VBOX_VM*) new vbox50::VBOX_VM();
         }
+        if ((5 == vbox_major) && (1 <= vbox_minor)) {
+            pVM = (VBOX_VM*) new vbox51::VBOX_VM();
+        }
+		if (pVM) {
+            retval = pVM->initialize();
+            if (retval) {
+                delete pVM;
+                pVM = NULL;
+            }
+		}
     }
+#endif
+    // Initialize VM Hypervisor
+    //
     if (!pVM) {
         pVM = (VBOX_VM*) new vboxmanage::VBOX_VM();
+        retval = pVM->initialize();
+        if (retval) {
+            vboxlog_msg("Could not detect VM Hypervisor. Rescheduling execution for a later date.");
+            pVM->dump_hypervisor_logs(true);
+            boinc_temporary_exit(86400, "Detection of VM Hypervisor failed.");
+        }
     }
-#else
-    pVM = (VBOX_VM*) new vboxmanage::VBOX_VM();
-#endif
 
     // Parse command line parameters
     //
@@ -474,7 +500,7 @@ int main(int argc, char** argv) {
         if (!strcmp(argv[i], "--trickle")) {
             trickle_period = atof(argv[++i]);
         }
-        if (!strcmp(argv[i], "--ncpus")) {
+        if (!strcmp(argv[i], "--nthreads")) {
             ncpus = atof(argv[++i]);
         }
         if (!strcmp(argv[i], "--memory_size_mb")) {
@@ -488,22 +514,23 @@ int main(int argc, char** argv) {
         }
     }
 
-    // Choose a random interleave value for checkpoint intervals to stagger disk I/O.
+    // Choose a random interleave value for checkpoint intervals
+    // to stagger disk I/O.
     // 
-    struct stat vm_image_stat;
-    if (-1 == stat(IMAGE_FILENAME_COMPLETE, &vm_image_stat)) {
-        srand((int)time(NULL));
-    } else {
-        srand((int)(vm_image_stat.st_mtime * time(NULL)));
-    }
-    random_checkpoint_factor = (double)(((int)(drand() * 100000.0)) % 600);
+    srand((int)getpid());
+    random_checkpoint_factor = drand() * 600;
 
-    vboxlog_msg("Feature: Checkpoint interval offset (%d seconds)", (int)random_checkpoint_factor);
+    vboxlog_msg(
+        "Feature: Checkpoint interval offset (%d seconds)",
+        (int)random_checkpoint_factor
+    );
 
     // Display trickle value if specified
     //
     if (trickle_period > 0.0) {
-        vboxlog_msg("Feature: Enabling trickle-ups (Interval: %f)", trickle_period);
+        vboxlog_msg(
+            "Feature: Enabling trickle-ups (Interval: %f)", trickle_period
+        );
     }
 
     // Check for architecture incompatibilities
@@ -515,18 +542,10 @@ int main(int argc, char** argv) {
     }
 #endif
 
-    // Initialize VM Hypervisor
-    //
-    retval = pVM->initialize();
-    if (retval) {
-        vboxlog_msg("Could not detect VM Hypervisor. Rescheduling execution for a later date.");
-        boinc_temporary_exit(86400, "Detection of VM Hypervisor failed.");
-    }
-
     // Record what version of VirtualBox was used.
     // 
-    if (!pVM->virtualbox_version.empty()) {
-        vboxlog_msg("Detected: %s", pVM->virtualbox_version.c_str());
+    if (!pVM->virtualbox_version_display.empty()) {
+        vboxlog_msg("Detected: %s", pVM->virtualbox_version_display.c_str());
     }
 
     // Record if anonymous platform was used.
@@ -548,11 +567,11 @@ int main(int argc, char** argv) {
         pVM->headless = false;
     }
 
-    // Check for invalid confgiurations.
+    // Check for invalid configurations.
     //
     if (aid.using_sandbox && aid.vbox_window) {
         vboxlog_msg("Invalid configuration detected.");
-        vboxlog_msg("NOTE: BOINC cannot be installed as a service and run VirtualBox in headfull mode at the same time.");
+        vboxlog_msg("NOTE: BOINC cannot be installed as a service and run VirtualBox in headful mode at the same time.");
         boinc_temporary_exit(86400, "Incompatible configuration detected.");
     }
 
@@ -560,9 +579,9 @@ int main(int argc, char** argv) {
     // VirtualBox 4.2.6 crashes during snapshot operations
     // and 4.2.18 fails to restore from snapshots properly.
     //
-    if ((pVM->virtualbox_version.find("4.2.6") != std::string::npos) || 
-        (pVM->virtualbox_version.find("4.2.18") != std::string::npos) || 
-        (pVM->virtualbox_version.find("4.3.0") != std::string::npos) ) {
+    if ((pVM->virtualbox_version_raw.find("4.2.6") != std::string::npos) || 
+        (pVM->virtualbox_version_raw.find("4.2.18") != std::string::npos) || 
+        (pVM->virtualbox_version_raw.find("4.3.0") != std::string::npos) ) {
         vboxlog_msg("Incompatible version of VirtualBox detected. Please upgrade to a later version.");
         boinc_temporary_exit(86400,
             "Incompatible version of VirtualBox detected; please upgrade.",
@@ -570,8 +589,9 @@ int main(int argc, char** argv) {
         );
     }
 
-    // Check to see if the system is in a state in which we expect to be able to run
-    // VirtualBox successfully.  Sometimes the system is in a wierd state after a
+    // Check to see if the system is in a state in which
+    // we expect to be able to run VirtualBox successfully.
+    // Sometimes the system is in a weird state after a
     // reboot and the system needs a little bit of time.
     //
     if (!pVM->is_system_ready(message)) {
@@ -591,9 +611,16 @@ int main(int argc, char** argv) {
     //
     vboxlog_msg("Detected: Minimum checkpoint interval (%f seconds)", pVM->minimum_checkpoint_interval);
 
+    // Record what the minimum heartbeat interval is.
+    //
+    if (pVM->heartbeat_filename.size()) {
+        vboxlog_msg("Detected: Heartbeat check (file: '%s' every %f seconds)", pVM->heartbeat_filename.c_str(), pVM->minimum_heartbeat_interval);
+    }
+
     // Validate whatever configuration options we can
     //
     if (pVM->enable_shared_directory) {
+        pVM->get_scratch_directory(scratch_dir);
         if (boinc_file_exists("shared")) {
             if (!is_dir("shared")) {
                 vboxlog_msg("ERROR: 'shared' exists but is not a directory.");
@@ -601,7 +628,17 @@ int main(int argc, char** argv) {
         } else {
             retval = boinc_mkdir("shared");
             if (retval) {
-                vboxlog_msg("ERROR: couldn't created shared directory: %s.", boincerror(retval));
+                vboxlog_msg("ERROR: couldn't create shared directory: %s.", boincerror(retval));
+            }
+        }
+        if (boinc_file_exists(scratch_dir.c_str())) {
+            if (!is_dir(scratch_dir.c_str())) {
+                vboxlog_msg("ERROR: 'scratch' exists but is not a directory.");
+            }
+        } else {
+            retval = boinc_mkdir(scratch_dir.c_str());
+            if (retval) {
+                vboxlog_msg("ERROR: couldn't create scratch directory: %s.", boincerror(retval));
             }
         }
     }
@@ -622,6 +659,18 @@ int main(int argc, char** argv) {
         }
     }
 
+    if (pVM->copy_cmdline_to_shared) {
+        FILE* f = fopen("shared/cmdline", "wb");
+        if (!f) {
+            vboxlog_msg("Couldn't create shared/cmdline");
+        } else {
+            for (int i=1; i<argc; i++) {
+                fprintf(f, "%s ", argv[i]);
+            }
+            fclose(f);
+        }
+    }
+
     // Configure Instance specific VM Parameters
     //
     pVM->vm_master_name = "boinc_";
@@ -658,7 +707,14 @@ int main(int argc, char** argv) {
     if (pVM->enable_isocontextualization) {
         pVM->iso_image_filename = ISO_IMAGE_FILENAME;
     }
+
+    // cpu count: cmdline arg overrides config file
+    //
     if (aid.ncpus > 1.0 || ncpus > 1.0) {
+		if (ncpus > 32.0) {
+            vboxlog_msg("WARNING: Virtualbox only allows up to 32 processors to be allocated to a VM, resetting to 32.  (%f allocated)", ncpus);
+			ncpus = 32.0;
+		}
         if (ncpus) {
             sprintf(buf, "%d", (int)ceil(ncpus));
         } else {
@@ -668,13 +724,13 @@ int main(int argc, char** argv) {
     } else {
         pVM->vm_cpu_count = "1";
     }
-    if (pVM->memory_size_mb > 1.0 || memory_size_mb > 1.0) {
-        if (memory_size_mb) {
-            sprintf(buf, "%d", (int)ceil(memory_size_mb));
-        } else {
-            sprintf(buf, "%d", (int)ceil(pVM->memory_size_mb));
-        }
+
+    // memory size: cmdline arg overrides config file
+    //
+    if (memory_size_mb) {
+        pVM->memory_size_mb = memory_size_mb;
     }
+
     if (aid.vbox_window && !aid.using_sandbox) {
         pVM->headless = false;
     }
@@ -682,13 +738,14 @@ int main(int argc, char** argv) {
     // Restore from checkpoint
     //
     checkpoint.parse();
-    elapsed_time = checkpoint.elapsed_time;
-    current_cpu_time = checkpoint.cpu_time;
     pVM->pf_host_port = checkpoint.webapi_port;
     pVM->rd_host_port = checkpoint.remote_desktop_port;
+    elapsed_time = checkpoint.elapsed_time;
+    starting_cpu_time = checkpoint.cpu_time;
+    current_cpu_time = starting_cpu_time;
     last_checkpoint_elapsed_time = elapsed_time;
-    starting_cpu_time = current_cpu_time;
-    last_checkpoint_cpu_time = current_cpu_time;
+    last_heartbeat_elapsed_time = elapsed_time;
+    last_checkpoint_cpu_time = starting_cpu_time;
 
     // Should we even try to start things up?
     //
@@ -719,9 +776,13 @@ int main(int argc, char** argv) {
             unrecoverable_error = false;
             temp_reason = "VM environment needed to be cleaned up.";
         } else if (ERR_INVALID_PARAM == retval) {
-            unrecoverable_error = false;
-            temp_reason = "Please upgrade BOINC to the latest version.";
-            temp_delay = 86400;
+            error_reason =
+                "   NOTE: VirtualBox has reported an improperly configured virtual machine. It was configured to require\n"
+                "    hardware acceleration for virtual machines, but your processor does not support the required feature.\n"
+                "    Please report this issue to the project so that it can be addresssed.\n"
+                "    Error Code: ERR_CPU_VM_EXTENSIONS_DISABLED\n";
+            skip_cleanup = true;
+            retval = ERR_EXEC;
         } else if (retval == (int)RPC_S_SERVER_UNAVAILABLE) {
             error_reason =
                 "    VboxSvc crashed while attempting to restore the current snapshot.  This is a critical\n"
@@ -735,40 +796,16 @@ int main(int argc, char** argv) {
                 "    This might be a temporary problem and so this job will be rescheduled for another time.\n";
             unrecoverable_error = false;
             temp_reason = "VM environment needed to be cleaned up.";
-        } else if (pVM->is_logged_failure_vm_extensions_disabled()) {
-            error_reason =
-                "   NOTE: BOINC has detected that your computer's processor supports hardware acceleration for\n"
-                "    virtual machines but the hypervisor failed to successfully launch with this feature enabled.\n"
-                "    This means that the hardware acceleration feature has been disabled in the computer's BIOS.\n"
-                "    Please enable this feature in your computer's BIOS.\n"
-                "    Intel calls it 'VT-x'\n"
-                "    AMD calls it 'AMD-V'\n"
-                "    More information can be found here: http://en.wikipedia.org/wiki/X86_virtualization\n"
-                "    Error Code: ERR_CPU_VM_EXTENSIONS_DISABLED\n";
-            retval = ERR_EXEC;
-        } else if (pVM->is_logged_failure_vm_extensions_not_supported()) {
-            error_reason =
-                "   NOTE: VirtualBox has reported an improperly configured virtual machine. It was configured to require\n"
-                "    hardware acceleration for virtual machines, but your processor does not support the required feature.\n"
-                "    Please report this issue to the project so that it can be addresssed.\n";
-        } else if (pVM->is_logged_failure_vm_extensions_in_use()) {
-            error_reason =
-                "   NOTE: VirtualBox hypervisor reports that another hypervisor has locked the hardware acceleration\n"
-                "    for virtual machines feature in exclusive mode.\n";
-            unrecoverable_error = false;
-            temp_reason = "Forign VM Hypervisor locked hardware acceleration features.";
-            temp_delay = 86400;
-        } else if (pVM->is_logged_failure_host_out_of_memory()) {
-            error_reason =
-                "   NOTE: VirtualBox has failed to allocate enough memory to start the configured virtual machine.\n"
-                "    This might be a temporary problem and so this job will be rescheduled for another time.\n";
-            unrecoverable_error = false;
-            temp_reason = "VM Hypervisor was unable to allocate enough memory to start VM.";
         } else {
             do_dump_hypervisor_logs = true;
         }
 
         if (unrecoverable_error) {
+            // Only attempt to take a screen shot if the VM is online.
+            if (pVM->online) {
+                pVM->capture_screenshot();
+            }
+
             // Attempt to cleanup the VM and exit.
             if (!skip_cleanup) {
                 pVM->cleanup();
@@ -808,6 +845,10 @@ int main(int argc, char** argv) {
                 vboxlog_msg("\n%s", error_reason.c_str());
             }
 
+            if (do_dump_hypervisor_logs) {
+                pVM->dump_hypervisor_logs(true);
+            }
+
             // Exit and let BOINC clean up the rest.
             //
             boinc_temporary_exit(temp_delay, temp_reason);
@@ -846,16 +887,103 @@ int main(int argc, char** argv) {
     // Log our current state 
     pVM->poll(true);
 
-    // Did we timeout?
-    if (!pVM->online && (timeout <= dtime())) {
-        vboxlog_msg("NOTE: VM failed to enter an online state within the timeout period.");
-        vboxlog_msg("  This might be a temporary problem and so this job will be rescheduled for another time.");
-        pVM->reset_vm_process_priority();
-        pVM->poweroff();
-        pVM->dump_hypervisor_logs(true);
-        boinc_temporary_exit(86400,
-            "VM Hypervisor failed to enter an online state in a timely fashion."
-        );
+    // Is the VM still running? If not, why not?
+    //
+    if (!pVM->online) {
+        // All 'failure to start' errors are unrecoverable by default
+        bool   unrecoverable_error = true;
+        bool   skip_cleanup = false;
+        bool   do_dump_hypervisor_logs = false;
+        string error_reason;
+        const char*  temp_reason = "";
+
+        if (pVM->is_logged_failure_vm_extensions_disabled()) {
+            error_reason =
+                "   NOTE: BOINC has detected that your computer's processor supports hardware acceleration for\n"
+                "    virtual machines but the hypervisor failed to successfully launch with this feature enabled.\n"
+                "    This means that the hardware acceleration feature has been disabled in the computer's BIOS.\n"
+                "    Please enable this feature in your computer's BIOS.\n"
+                "    Intel calls it 'VT-x'\n"
+                "    AMD calls it 'AMD-V'\n"
+                "    More information can be found here: https://en.wikipedia.org/wiki/X86_virtualization\n"
+                "    Error Code: ERR_CPU_VM_EXTENSIONS_DISABLED\n";
+            retval = ERR_EXEC;
+        } else if (pVM->is_logged_failure_vm_extensions_not_supported()) {
+            error_reason =
+                "   NOTE: VirtualBox has reported an improperly configured virtual machine. It was configured to require\n"
+                "    hardware acceleration for virtual machines, but your processor does not support the required feature.\n"
+                "    Please report this issue to the project so that it can be addresssed.\n";
+        } else if (pVM->is_logged_failure_vm_extensions_in_use()) {
+            error_reason =
+                "   NOTE: VirtualBox hypervisor reports that another hypervisor has locked the hardware acceleration\n"
+                "    for virtual machines feature in exclusive mode.\n";
+            unrecoverable_error = false;
+            temp_reason = "Forign VM Hypervisor locked hardware acceleration features.";
+            temp_delay = 86400;
+        } else if (pVM->is_logged_failure_host_out_of_memory()) {
+            error_reason =
+                "   NOTE: VirtualBox has failed to allocate enough memory to start the configured virtual machine.\n"
+                "    This might be a temporary problem and so this job will be rescheduled for another time.\n";
+            unrecoverable_error = false;
+            temp_reason = "VM Hypervisor was unable to allocate enough memory to start VM.";
+        } else if (timeout <= dtime()) {
+            error_reason =
+                "   NOTE: VM failed to enter an online state within the timeout period.\n"
+                "    This might be a temporary problem and so this job will be rescheduled for another time.\n";
+            unrecoverable_error = false;
+            do_dump_hypervisor_logs = true;
+            temp_reason = "VM Hypervisor failed to enter an online state in a timely fashion.";
+            temp_delay = 86400;
+        }
+
+        if (unrecoverable_error) {
+            // Attempt to cleanup the VM and exit.
+            if (!skip_cleanup) {
+                pVM->cleanup();
+            }
+
+            checkpoint.update(elapsed_time, current_cpu_time);
+
+            if (error_reason.size()) {
+                vboxlog_msg("\n%s", error_reason.c_str());
+            }
+
+            if (do_dump_hypervisor_logs) {
+                pVM->dump_hypervisor_logs(true);
+            }
+
+            boinc_finish(retval);
+        } else {
+            // if the VM is already running notify BOINC about the process ID so it can
+            // clean up the environment.  We should be safe to run after that.
+            //
+            if (pVM->vm_pid) {
+                retval = boinc_report_app_status_aux(
+                    current_cpu_time,
+                    last_checkpoint_cpu_time,
+                    fraction_done,
+                    pVM->vm_pid,
+                    bytes_sent,
+                    bytes_received
+                );
+            }
+ 
+            // Give the BOINC API time to report the pid to BOINC.
+            //
+            boinc_sleep(5.0);
+
+            if (error_reason.size()) {
+                vboxlog_msg("\n%s", error_reason.c_str());
+            }
+
+            if (do_dump_hypervisor_logs) {
+                pVM->dump_hypervisor_logs(true);
+            }
+
+            // Exit and let BOINC clean up the rest.
+            //
+            boinc_temporary_exit(temp_delay, temp_reason);
+        }
     }
 
     set_floppy_image(aid, *pVM);
@@ -903,11 +1031,56 @@ int main(int argc, char** argv) {
         }
         if (boinc_status.abort_request) {
             pVM->reset_vm_process_priority();
+            pVM->capture_screenshot();
             pVM->cleanup();
             pVM->dump_hypervisor_logs(true);
             boinc_finish(EXIT_ABORTED_BY_CLIENT);
         }
-        if (completion_file_exists(*pVM)) {
+        if (pVM->heartbeat_filename.size()) {
+            if (
+                (initial_heartbeat_check && (elapsed_time >= (last_heartbeat_elapsed_time + 600.0))) ||
+                (!initial_heartbeat_check && (elapsed_time >= (last_heartbeat_elapsed_time + pVM->minimum_heartbeat_interval)))
+            ){
+                bool should_exit = false;
+                struct stat heartbeat_stat;
+
+                if (!shared_file_exists(pVM->heartbeat_filename)) {
+                    vboxlog_msg("VM Heartbeat file specified, but missing.");
+                    should_exit = true;
+                }
+
+                if (shared_stat(pVM->heartbeat_filename, &heartbeat_stat)) {
+                    // Error
+                    vboxlog_msg("VM Heartbeat file specified, but missing file system status. (errno = '%d')", errno);
+                    should_exit = true;
+                }
+
+                if (initial_heartbeat_check) {
+                    // Force the next check to be successful
+                    last_heartbeat_mod_time = heartbeat_stat.st_mtime - 1;
+                }
+
+                if (heartbeat_stat.st_mtime > last_heartbeat_mod_time) {
+                    // Heartbeat successful
+                    last_heartbeat_mod_time = heartbeat_stat.st_mtime;
+                    last_heartbeat_elapsed_time = elapsed_time;
+                } else {
+                    vboxlog_msg("VM Heartbeat file specified, but missing heartbeat.");
+                    should_exit = true;
+                }
+
+                if (should_exit) {
+                    pVM->reset_vm_process_priority();
+                    pVM->capture_screenshot();
+                    pVM->cleanup();
+                    pVM->dump_hypervisor_logs(true);
+                    boinc_finish(EXIT_ABORTED_BY_CLIENT);
+                }
+
+                initial_heartbeat_check = false;
+            }
+        }
+        if (shared_file_exists(pVM->completion_trigger_file)) {
             vboxlog_msg("VM Completion File Detected.");
             read_completion_file_info(vm_exit_code, is_notice, message, *pVM);
             if (message.size()) {
@@ -921,13 +1094,13 @@ int main(int argc, char** argv) {
                 boinc_finish(vm_exit_code);
             }
         }
-        if (temporary_exit_file_exists(*pVM)) {
+        if (shared_file_exists(pVM->temporary_exit_trigger_file)) {
             vboxlog_msg("VM Temporary Exit File Detected.");
             read_temporary_exit_file_info(temp_delay, is_notice, message, *pVM);
             if (message.size()) {
                 vboxlog_msg("VM Temporary Exit Message: %s.", message.c_str());
             }
-            delete_temporary_exit_trigger_file(*pVM);
+            shared_delete_file(pVM->temporary_exit_trigger_file);
             pVM->reset_vm_process_priority();
             retval = pVM->create_snapshot(elapsed_time);
             if (!retval) {
@@ -980,7 +1153,7 @@ int main(int argc, char** argv) {
         if (boinc_status.suspended) {
             if (!pVM->suspended) {
                 retval = pVM->pause();
-                if (retval && (VBOX_E_INVALID_OBJECT_STATE == retval)) {
+                if ((unsigned)retval == VBOX_E_INVALID_OBJECT_STATE) {
                     vboxlog_msg("ERROR: VM task failed to pause, rescheduling task for a later time.");
                     pVM->poweroff();
                     boinc_temporary_exit(86400, "VM job unmanageable, restarting later.");
@@ -989,7 +1162,7 @@ int main(int argc, char** argv) {
         } else {
             if (pVM->suspended) {
                 retval = pVM->resume();
-                if (retval && (VBOX_E_INVALID_OBJECT_STATE == retval)) {
+                if ((unsigned)retval == VBOX_E_INVALID_OBJECT_STATE) {
                     vboxlog_msg("ERROR: VM task failed to resume, rescheduling task for a later time.");
                     pVM->poweroff();
                     boinc_temporary_exit(86400, "VM job unmanageable, restarting later.");
@@ -1007,7 +1180,13 @@ int main(int argc, char** argv) {
             if (pVM->job_duration) {
                 fraction_done = elapsed_time / pVM->job_duration;
             } else if (pVM->fraction_done_filename.size() > 0) {
-                read_fraction_done(fraction_done, *pVM);
+                if (!read_fraction_done(fraction_done, *pVM)) {
+					// Report a non-zero fraction done so that BOINC will not attempt to use CPU Time and
+					// deadline as a means to calculate fraction done when a fraction done file is
+					// specified.
+					//
+					fraction_done = 0.001;
+				}
             }
             if (fraction_done > 1.0) {
                 fraction_done = 1.0;
@@ -1212,17 +1391,3 @@ int main(int argc, char** argv) {
 
     return 0;
 }
-
-#ifdef _WIN32
-
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode) {
-    LPSTR command_line;
-    char* argv[100];
-    int argc;
-
-    command_line = GetCommandLine();
-    argc = parse_command_line(command_line, argv);
-    return main(argc, argv);
-}
-
-#endif
diff --git a/samples/vboxwrapper/vboxwrapper.h b/samples/vboxwrapper/vboxwrapper.h
index 393f121..c0e23f7 100644
--- a/samples/vboxwrapper/vboxwrapper.h
+++ b/samples/vboxwrapper/vboxwrapper.h
@@ -18,8 +18,8 @@
 
 // Provide cross-platform interfaces for making changes to VirtualBox
 
-#ifndef _VBOXWRAPPER_H_
-#define _VBOXWRAPPER_H_
+#ifndef BOINC_VBOXWRAPPER_H
+#define BOINC_VBOXWRAPPER_H
 
 #define IMAGE_FILENAME_COMPLETE "vm_image.vdi"
 #define IMAGE_FILENAME "vm_image"
diff --git a/samples/vm_wrapper/VMwrapper.py b/samples/vm_wrapper/VMwrapper.py
index 8dbba9b..b31d87e 100644
--- a/samples/vm_wrapper/VMwrapper.py
+++ b/samples/vm_wrapper/VMwrapper.py
@@ -12,7 +12,7 @@
 #     * VM: Takes periodic snapshots of the virtual machine
 # - (supposed to also handle trickle messaging in future)
 #
-# See http://boinc.berkeley.edu/trac/wiki/VmApps for details
+# See https://boinc.berkeley.edu/trac/wiki/VmApps for details
 # Contributor: Jarno Rantala (jarno.rantala at gmail.com)
 #
 # The original code was made under the CERN openlab summer student program July-August 2009
diff --git a/samples/worker/worker.cpp b/samples/worker/worker.cpp
index 6e521a8..cea8eae 100644
--- a/samples/worker/worker.cpp
+++ b/samples/worker/worker.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -17,18 +17,19 @@
 
 // worker - application without BOINC runtime system;
 // used for testing wrapper.
-// What this does:
 //
-// copies one line of stdin to stdout
-// copies one line of "in" to "out"
-// uses 10 sec of CPU time
-// (or as specified by a command-line arg)
+// worker [--std_copy] [--file_copy] nsecs
+//
+// --std_copy: copy one line of stdin to stdout
+// --file_copy: copy one line of "in" to "out"
+// nsecs: use this much CPU time (default 10 sec)
 //
 // THIS PROGRAM SHOULDN'T USE ANY BOINC CODE.  That's the whole point.
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
+#include <string.h>
 
 // do a billion floating-point ops
 // (note: I needed to add an arg to this;
@@ -48,32 +49,48 @@ static double do_a_giga_flop(int foo) {
 int main(int argc, char** argv) {
     char buf[256];
     FILE* in, *out;
+    int i, nsec = 10;
+    bool std_copy = false, file_copy = false;
+
+    for (i=1; i<argc; i++) {
+        if (!strcmp(argv[i], "--std_copy")) {
+            std_copy = true;
+        }
+        if (!strcmp(argv[i], "--file_copy")) {
+            file_copy = true;
+        }
+        nsec = atoi(argv[i]);
+    }
 
     fprintf(stderr, "worker starting\n");
-    in = fopen("in", "r");
-    if (!in) {
-        fprintf(stderr, "missing input file\n");
-        exit(1);
-    } 
-    out = fopen("out", "w");
-    if (!out) {
-        fprintf(stderr, "can't open output file\n");
-        exit(1);
-    } 
-    fgets(buf, 256, in);
-    fputs(buf, out);
-
-    fgets(buf, 256, stdin);
-    fputs(buf, stdout);
+
+    if (file_copy) {
+        in = fopen("in", "r");
+        if (!in) {
+            fprintf(stderr, "missing input file\n");
+            exit(1);
+        } 
+        out = fopen("out", "w");
+        if (!out) {
+            fprintf(stderr, "can't open output file\n");
+            exit(1);
+        } 
+        fgets(buf, 256, in);
+        fputs(buf, out);
+    }
+
+    if (std_copy) {
+        fgets(buf, 256, stdin);
+        fputs(buf, stdout);
+    }
 
     int start = (int)time(0);
-    int nsec = 10;
-    if (argc > 1) nsec = atoi(argv[1]);
 
-    int i=0;
+    i=0;
     while (time(0) < start+nsec) {
         do_a_giga_flop(i++);
     }
+
     fputs("done!\n", stdout);
     return 0;
 }
diff --git a/samples/wrapper/wrapper.cpp b/samples/wrapper/wrapper.cpp
index a9e4263..8d22e54 100644
--- a/samples/wrapper/wrapper.cpp
+++ b/samples/wrapper/wrapper.cpp
@@ -16,7 +16,7 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 // BOINC wrapper - lets you use non-BOINC apps with BOINC
-// See http://boinc.berkeley.edu/trac/wiki/WrapperApp
+// See https://boinc.berkeley.edu/trac/wiki/WrapperApp
 //
 // cmdline options:
 // --device N       macro-substitute N for $GPU_DEVICE_NUM
@@ -36,12 +36,19 @@
 //
 // Contributor: Andrew J. Younge (ajy4490 at umiacs.umd.edu)
 
+// comment out the following to disable checking that
+// executables are signed.
+// Doing so introduces a security vulnerability.
+//
+#define CHECK_EXECUTABLES
+
 #ifndef _WIN32
 #include "config.h"
 #endif
 #include <stdio.h>
 #include <vector>
 #include <string>
+#include <algorithm>
 #ifdef _WIN32
 #include "boinc_win.h"
 #include "win_util.h"
@@ -61,7 +68,11 @@
 #endif
 
 #include "version.h"
+#ifndef _WIN32
+#include "svn_version.h"
+#endif
 #include "boinc_api.h"
+#include "app_ipc.h"
 #include "graphics2.h"
 #include "boinc_zip.h"
 #include "diagnostics.h"
@@ -79,13 +90,12 @@
 using std::vector;
 using std::string;
 
-//#define DEBUG
-#if 1
-#define debug_msg(x)
-#else
+#ifdef DEBUG
 inline void debug_msg(const char* x) {
-    fprintf(stderr, "%s\n", x);
+    fprintf(stderr, "[DEBUG] %s\n", x);
 }
+#else
+#define debug_msg(x)
 #endif
 
 #define JOB_FILENAME "job.xml"
@@ -126,6 +136,7 @@ struct TASK {
     bool is_daemon;
     bool append_cmdline_args;
     bool multi_process;
+    bool forward_slashes;
     double time_limit;
     int priority;
 
@@ -150,6 +161,7 @@ struct TASK {
     bool stat_first;
 
     int parse(XML_PARSER&);
+    void substitute_macros();
     bool poll(int& status);
     int run(int argc, char** argv);
     void kill();
@@ -245,25 +257,61 @@ void str_replace_all(char* buf, const char* s1, const char* s2) {
     }
 }
 
+// replace s1 with s2
+// http://stackoverflow.com/questions/2896600/how-to-replace-all-occurrences-of-a-character-in-string
+//
+void str_replace_all(string &str, const string& s1, const string& s2) {
+    size_t start_pos = 0;
+    while((start_pos = str.find(s1, start_pos)) != string::npos) {
+        str.replace(start_pos, s1.length(), s2);
+        start_pos += s2.length(); // Handles case where 's1' is a substring of 's2'
+    }
+}
+
 // macro-substitute strings from job.xml
 // $PROJECT_DIR -> project directory
 // $NTHREADS --> --nthreads arg if present, else 1
 // $GPU_DEVICE_NUM --> gpu_device_num from init_data.xml, or --device arg
+// $PWD --> current directory
 //
-void macro_substitute(char* buf) {
+void macro_substitute(string &str) {
     const char* pd = strlen(aid.project_dir)?aid.project_dir:".";
-    str_replace_all(buf, "$PROJECT_DIR", pd);
+    str_replace_all(str, "$PROJECT_DIR", pd);
+#ifdef DEBUG
+    fprintf(stderr, "[DEBUG] replacing '%s' with '%s'\n", "$PROJECT_DIR", pd);
+#endif
+
     char nt[256];
     sprintf(nt, "%d", nthreads);
-    str_replace_all(buf, "$NTHREADS", nt);
+    str_replace_all(str, "$NTHREADS", nt);
+#ifdef DEBUG
+    fprintf(stderr, "[DEBUG] replacing '%s' with '%s'\n", "$NTHREADS", nt);
+#endif
 
     if (aid.gpu_device_num >= 0) {
         gpu_device_num = aid.gpu_device_num;
     }
     if (gpu_device_num >= 0) {
         sprintf(nt, "%d", gpu_device_num);
-        str_replace_all(buf, "$GPU_DEVICE_NUM", nt);
+        str_replace_all(str, "$GPU_DEVICE_NUM", nt);
+#ifdef DEBUG
+	fprintf(stderr, "[DEBUG] replacing '%s' with '%s'\n", "$GPU_DEVICE_NUM", nt);
+#endif
     }
+
+#ifdef _WIN32
+    GetCurrentDirectory(sizeof(nt),nt);
+    str_replace_all(str, "$PWD", nt);
+#ifdef DEBUG
+    fprintf(stderr, "[DEBUG] replacing '%s' with '%s'\n", "$PWD", nt);
+#endif
+#else
+    char cwd[1024];
+    str_replace_all(str, "$PWD", getcwd(cwd, sizeof(cwd)));
+#ifdef DEBUG
+    fprintf(stderr, "[DEBUG] replacing '%s' with '%s'\n", "$PWD", getcwd(cwd, sizeof(cwd)));
+#endif
+#endif
 }
 
 // make a list of files in the slot directory,
@@ -347,6 +395,7 @@ void get_zip_inputs(ZipFileList &files) {
             }
         }
     }
+    dir_close(d);
 }
 
 // if the zipped output file is not present,
@@ -354,7 +403,9 @@ void get_zip_inputs(ZipFileList &files) {
 //
 void do_zip_outputs() {
     if (zip_filename.empty()) return;
-    if (boinc_file_exists(zip_filename.c_str())) return;
+    string path;
+    boinc_resolve_filename_s(zip_filename.c_str(), path);
+    if (boinc_file_exists(path.c_str())) return;
     ZipFileList infiles;
     get_zip_inputs(infiles);
     int retval = boinc_zip(ZIP_IT, string("temp.zip"), &infiles);
@@ -362,8 +413,6 @@ void do_zip_outputs() {
         fprintf(stderr, "boinc_zip() failed: %d\n", retval);
         exit(1);
     }
-    string path;
-    boinc_resolve_filename_s(zip_filename.c_str(), path);
     retval = boinc_rename("temp.zip", path.c_str());
     if (retval) {
         fprintf(stderr, "failed to rename temp.zip: %d\n", retval);
@@ -382,6 +431,7 @@ int TASK::parse(XML_PARSER& xp) {
     is_daemon = false;
     multi_process = false;
     append_cmdline_args = false;
+    forward_slashes = false;
     time_limit = 0;
     priority = PROCESS_PRIORITY_LOWEST;
 
@@ -397,12 +447,10 @@ int TASK::parse(XML_PARSER& xp) {
         }
         else if (xp.parse_string("application", application)) continue;
         else if (xp.parse_str("exec_dir", buf, sizeof(buf))) {
-            macro_substitute(buf);
             exec_dir = buf;
             continue;  
         }
         else if (xp.parse_str("setenv", buf, sizeof(buf))) {
-            macro_substitute(buf);
             vsetenv.push_back(buf);
             continue;
         }
@@ -410,7 +458,6 @@ int TASK::parse(XML_PARSER& xp) {
         else if (xp.parse_string("stdout_filename", stdout_filename)) continue;
         else if (xp.parse_string("stderr_filename", stderr_filename)) continue;
         else if (xp.parse_str("command_line", buf, sizeof(buf))) {
-            macro_substitute(buf);
             command_line = buf;
             continue;
         }
@@ -418,6 +465,7 @@ int TASK::parse(XML_PARSER& xp) {
         else if (xp.parse_string("fraction_done_filename", fraction_done_filename)) continue;
         else if (xp.parse_double("weight", weight)) continue;
         else if (xp.parse_bool("daemon", is_daemon)) continue;
+        else if (xp.parse_bool("forward_slashes", forward_slashes)) continue;
         else if (xp.parse_bool("multi_process", multi_process)) continue;
         else if (xp.parse_bool("append_cmdline_args", append_cmdline_args)) continue;
         else if (xp.parse_double("time_limit", time_limit)) continue;
@@ -426,6 +474,18 @@ int TASK::parse(XML_PARSER& xp) {
     return ERR_XML_PARSE;
 }
 
+void TASK::substitute_macros() {
+    if (!exec_dir.empty()) {
+        macro_substitute(exec_dir);
+    }
+    for (unsigned int i = 0; i < vsetenv.size(); i++) {
+        macro_substitute(vsetenv[i]);
+    }
+    if (!command_line.empty()) {
+        macro_substitute(command_line);
+    }
+}
+
 int parse_unzip_input(XML_PARSER& xp) {
     char buf2[256];
     string s;
@@ -604,6 +664,14 @@ void slash_to_backslash(char* p) {
     }
 }
 
+void backslash_to_slash(char* p) {
+    while (1) {
+        char* q = strchr(p, '\\');
+        if (!q) break;
+        *q = '/';
+    }
+}
+
 int TASK::run(int argct, char** argvt) {
     string stdout_path, stdin_path, stderr_path;
     char app_path[1024], buf[256];
@@ -636,6 +704,36 @@ int TASK::run(int argct, char** argvt) {
         }
     }
 
+    // resolve "boinc_resolve(...)" phrases in command-line
+    while (1) {
+        char lbuf[16384];
+        char fname[1024];
+        char *from, *to;
+
+        strncpy (lbuf, command_line.c_str(), sizeof(lbuf));
+        lbuf[sizeof(lbuf)-1] = '\0';
+        from = strstr(lbuf, "boinc_resolve(");
+        if (!from) {
+            break;
+        }
+        to = strchr(from, ')');
+        if (!to) {
+            fprintf(stderr, "missing ')' after 'boinc_resolve('\n");
+            exit(1);
+        }
+        *to = 0;
+        boinc_resolve_filename(from + strlen("boinc_resolve("), fname, sizeof(fname));
+#ifdef _WIN32
+        if(forward_slashes) {
+            backslash_to_slash(fname);
+        } else {
+            slash_to_backslash(fname);
+        }
+#endif
+        *from = 0;
+        command_line = string(lbuf) + string(fname) + string(to+1);
+    }
+
     fprintf(stderr, "%s wrapper: running %s (%s)\n",
         boinc_msg_prefix(buf, sizeof(buf)), app_path, command_line.c_str()
     );
@@ -778,11 +876,12 @@ int TASK::run(int argct, char** argvt) {
         setpriority(PRIO_PROCESS, 0, process_priority_value(priority));
         if (!exec_dir.empty()) {
             retval = chdir(exec_dir.c_str());
-            if (!retval) {
+            if (retval) {
                 fprintf(stderr,
-                    "%s chdir() to %s failed\n",
+                    "%s chdir() to %s failed with %d\n",
                     boinc_msg_prefix(buf, sizeof(buf)),
-                    exec_dir.c_str()
+                    exec_dir.c_str(),
+                    retval
                 );
                 exit(1);
             }
@@ -807,7 +906,8 @@ int TASK::run(int argct, char** argvt) {
     return 0;
 }
 
-// return true if task exited
+// return true if task exited; in that case also return its exit status
+// (zero means it completed successfully)
 //
 bool TASK::poll(int& status) {
     char buf[256];
@@ -847,6 +947,10 @@ bool TASK::poll(int& status) {
             boinc_msg_prefix(buf, sizeof(buf)),
             application.c_str(), final_cpu_time
         );
+
+        if (WIFEXITED(status)) {
+            status = WEXITSTATUS(status);
+        }
         if (final_cpu_time < current_cpu_time) {
             final_cpu_time = current_cpu_time;
         }
@@ -992,6 +1096,40 @@ int read_checkpoint(int& ntasks_completed, double& cpu, double& rt) {
     return 0;
 }
 
+// Check whether executable files (tasks and daemons) are code-signed.
+// The client supplies a list of app version files, which are code-signed.
+// For each executable file:
+// - check that it's a soft link
+// - check that it's of the form ../../project_url/x
+// - check that "x" is in the list of app version files
+//
+void check_execs(vector<TASK> &t) {
+    for (unsigned int i=0; i<t.size(); i++) {
+        TASK &task = t[i];
+        string phys_name = resolve_soft_link(
+            aid.project_dir, task.application.c_str()
+        );
+        if (phys_name.empty()) {
+            fprintf(stderr, "task executable %s is not a link\n",
+                phys_name.c_str()
+            );
+            boinc_finish(1);
+        }
+        if (std::find(aid.app_files.begin(), aid.app_files.end(), phys_name) == aid.app_files.end()) {
+            fprintf(stderr, "task executable %s is not in app version\n",
+                task.application.c_str()
+            );
+            boinc_finish(1);
+        }
+    }
+}
+
+void check_executables() {
+    if (aid.app_files.size() == 0) return;
+    check_execs(tasks);
+    check_execs(daemons);
+}
+
 int main(int argc, char** argv) {
     BOINC_OPTIONS options;
     int retval, ntasks_completed;
@@ -1001,6 +1139,13 @@ int main(int argc, char** argv) {
         // total CPU time at last checkpoint
     char buf[256];
 
+    // Log banner
+    //
+    fprintf(stderr, "%s wrapper (%d.%d.%d): starting\n",
+        boinc_msg_prefix(buf, sizeof(buf)),
+        BOINC_MAJOR_VERSION, BOINC_MINOR_VERSION, WRAPPER_RELEASE
+    );
+
 #ifdef _WIN32
     SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
 #endif
@@ -1012,7 +1157,13 @@ int main(int argc, char** argv) {
             gpu_device_num = atoi(argv[++j]);
         } else if (!strcmp(argv[j], "--trickle")) {
             trickle_period = atof(argv[++j]);
+#ifndef _WIN32
+        } else if (!strcmp(argv[j], "--version") || !strcmp(argv[j], "-v")) {
+            fprintf(stderr, "%s\n", SVN_VERSION);
+            boinc_finish(0);
+#endif
         }
+
     }
 
     retval = parse_job_file();
@@ -1055,6 +1206,10 @@ int main(int argc, char** argv) {
 
     boinc_get_init_data(aid);
 
+#ifdef CHECK_EXECUTABLES
+    check_executables();
+#endif
+
     if (ntasks_completed > (int)tasks.size()) {
         fprintf(stderr,
             "%s Checkpoint file: ntasks_completed too large: %d > %d\n",
@@ -1065,6 +1220,8 @@ int main(int argc, char** argv) {
     }
     for (i=0; i<tasks.size(); i++) {
         total_weight += tasks[i].weight;
+        // need to substitute macros after boinc_init_options() and boinc_get_init_data()
+        tasks[i].substitute_macros();
     }
 
     retval = start_daemons(argc, argv);
@@ -1186,16 +1343,3 @@ int main(int argc, char** argv) {
     boinc_finish(0);
 }
 
-#ifdef _WIN32
-
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode) {
-    LPSTR command_line;
-    char* argv[100];
-    int argc;
-
-    command_line = GetCommandLine();
-    argc = parse_command_line(command_line, argv);
-    return main(argc, argv);
-}
-
-#endif
diff --git a/samples/wrappture/license.terms b/samples/wrappture/license.terms
new file mode 100644
index 0000000..20f584c
--- /dev/null
+++ b/samples/wrappture/license.terms
@@ -0,0 +1,35 @@
+Copyright (c) 2004-2012, Purdue Research Foundation
+All rights reserved.
+
+Developed by:  Network for Computational Nanotechnology
+               Purdue University, West Lafayette, Indiana
+               http://rappture.org
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal with the Software without restriction, including without
+limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, subject to the following
+conditions:
+
+    * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimers.
+
+    * Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimers
+        in the documentation and/or other materials provided with the
+        distribution.
+
+    * Neither the names of the Network for Computational Nanotechnology,
+        Purdue University, nor the names of its contributors may be used
+        to endorse or promote products derived from this Software without
+        specific prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.
diff --git a/sched/Makefile.am b/sched/Makefile.am
index babc7b3..ccb66c2 100644
--- a/sched/Makefile.am
+++ b/sched/Makefile.am
@@ -15,7 +15,6 @@ libsched_sources = \
     sched_util_basic.cpp \
     sched_config.cpp \
     sched_limit.cpp \
-    sched_msgs.cpp \
     ../db/boinc_db.cpp \
     ../db/db_base.cpp \
     ../tools/process_result_template.cpp \
@@ -26,7 +25,7 @@ lib_LTLIBRARIES = libsched.la
 libsched_la_SOURCES = $(libsched_sources)
 libsched_la_CFLAGS = $(AM_CPPFLAGS)
 libsched_la_CXXFLAGS = $(AM_CPPFLAGS)
-libsched_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
+libsched_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
 libsched_la_LIBADD= $(SSL_LIBS)
 
 ## install only headers that are meant for exporting the API !!
@@ -35,8 +34,8 @@ pkginclude_HEADERS = \
 	credit.h \
 	sched_config.h \
 	sched_limit.h \
-	sched_msgs.h \
 	sched_util.h \
+	sched_util_basic.h \
 	../tools/backend_lib.h \
 	validate_util.h
 endif
@@ -48,7 +47,7 @@ lib_LTLIBRARIES += libsched_fcgi.la
 libsched_fcgi_la_SOURCES = $(libsched_sources)
 libsched_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
 libsched_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
-libsched_fcgi_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
+libsched_fcgi_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
 libsched_fcgi_la_LIBADD=
 
 endif
@@ -277,7 +276,7 @@ trickle_echo_LDADD = $(SERVERLIBS)
 update_stats_SOURCES = update_stats.cpp
 update_stats_LDADD = $(SERVERLIBS)
 
-file_upload_handler_SOURCES = file_upload_handler.cpp sched_msgs.cpp sched_config.cpp sched_util_basic.cpp sched_limit.cpp
+file_upload_handler_SOURCES = file_upload_handler.cpp sched_config.cpp sched_util_basic.cpp sched_limit.cpp
 file_upload_handler_LDADD = $(FUHLIBS)
 
 make_work_SOURCES = make_work.cpp
@@ -317,8 +316,7 @@ fcgi_LDADD = $(SERVERLIBS_FCGI)
 
 fcgi_file_upload_handler_SOURCES = \
     file_upload_handler.cpp \
-    sched_config.cpp \
-    sched_msgs.cpp 
+    sched_config.cpp
 fcgi_file_upload_handler_CPPFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
 fcgi_file_upload_handler_LDADD = $(SERVERLIBS_FCGI)
 
diff --git a/sched/adjust_user_priority.cpp b/sched/adjust_user_priority.cpp
index 0866a6e..dfa1989 100644
--- a/sched/adjust_user_priority.cpp
+++ b/sched/adjust_user_priority.cpp
@@ -15,11 +15,12 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// adjust_user_priority [--no_update] --user userid --flops flop_count --app app_name
+// adjust_user_priority [--no_update] --user userid --flops N --app app_name
 //
 // adjust user priority (i.e. logical start time)
 // to reflect a certain amount of computing
-// and write the new value to stdout
+// and write the new value to stdout.
+// For use by multi-user projects quotas.
 //
 // --no_update: don't update DB
 
@@ -129,7 +130,7 @@ int main(int argc, char** argv) {
     if (!no_update) {
         char set_clause[256], where_clause[256];
         sprintf(set_clause, "logical_start_time=%f", x);
-        sprintf(where_clause, "user_id=%d", us.user_id);
+        sprintf(where_clause, "user_id=%lu", us.user_id);
         retval = us.update_fields_noid(set_clause, where_clause);
         if (retval) {
             fprintf(stderr, "update_fields_noid() failed: %d\n", retval);
diff --git a/sched/antique_file_deleter.cpp b/sched/antique_file_deleter.cpp
index ce259c3..d73e202 100644
--- a/sched/antique_file_deleter.cpp
+++ b/sched/antique_file_deleter.cpp
@@ -15,7 +15,6 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-
 // antique_file deleter
 // removes files from the upload/download hierarchies that are
 // older than any WU (except "no_delete" WUs)
diff --git a/sched/assimilate_handler.h b/sched/assimilate_handler.h
index ab60236..7286c86 100644
--- a/sched/assimilate_handler.h
+++ b/sched/assimilate_handler.h
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -34,7 +34,5 @@ extern int assimilate_handler(
     RESULT&                 // the canonical instance
 );
 
-extern int g_argc;
-extern char** g_argv;
-extern char* results_prefix;
-extern char* transcripts_prefix;
+extern int assimilate_handler_init(int argc, char** argv);
+extern void assimilate_handler_usage();
diff --git a/sched/assimilator.cpp b/sched/assimilator.cpp
index 26694f2..b4520ba 100644
--- a/sched/assimilator.cpp
+++ b/sched/assimilator.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2014 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -46,16 +46,11 @@ using std::vector;
 #define SLEEP_INTERVAL 10
 
 bool update_db = true;
-bool noinsert = false;
 int wu_id_modulus=0, wu_id_remainder=0;
 int sleep_interval = SLEEP_INTERVAL;
 int one_pass_N_WU=0;
-int g_argc;
-char** g_argv;
-char* results_prefix = NULL;
-char* transcripts_prefix = NULL;
 
-void usage(char** argv) {
+void usage(char* name) {
     fprintf(stderr,
         "This program is an 'assimilator'; it handles completed jobs.\n"
         "Normally it is run as a daemon from config.xml.\n"
@@ -70,13 +65,13 @@ void usage(char** argv) {
         "    [--one_pass]          Do one DB enumeration, then exit\n"
         "    [--one_pass_N_WU N]   Process at most N jobs\n"
         "    [-d | --debug_level N]       Set verbosity level (1 to 4)\n"
-        "    [--dont_update_db]    Don't update DB (for testing)\n"
-        "    [--noinsert]          Don't insert records in app-specific DB\n"
+        "    [--dont_update_db]    Don't update BOINC DB (for testing)\n"
         "    [-h | --help]                 Show this\n"
-        "    [-v | --version]      Show version information\n",
-        argv[0]
+        "    [-v | --version]      Show version information\n"
+        "\n",
+        name
     );
-    exit(0);
+    assimilate_handler_usage();
 }
 
 // assimilate all WUs that need it
@@ -100,7 +95,7 @@ bool do_pass(APP& app) {
     }
 
     sprintf(buf,
-        "where appid=%d and assimilate_state=%d %s limit %d",
+        "where appid=%ld and assimilate_state=%d %s limit %d",
         app.id, ASSIMILATE_READY, mod_clause,
         one_pass_N_WU ? one_pass_N_WU : 1000
     );
@@ -124,10 +119,10 @@ bool do_pass(APP& app) {
         }
 
         log_messages.printf(MSG_DEBUG,
-            "[%s] assimilating WU %d; state=%d\n", wu.name, wu.id, wu.assimilate_state
+            "[%s] assimilating WU %lu; state=%d\n", wu.name, wu.id, wu.assimilate_state
         );
 
-        sprintf(buf, "where workunitid=%d", wu.id);
+        sprintf(buf, "where workunitid=%ld", wu.id);
         canonical_result.clear();
         bool found = false;
         while (1) {
@@ -206,6 +201,13 @@ bool do_pass(APP& app) {
     return did_something;
 }
 
+void missing_argument(char* name, char* arg) {
+    log_messages.printf(MSG_CRITICAL,
+        "%s requires an argument\n\n", arg
+    );
+    usage(name);
+}
+
 int main(int argc, char** argv) {
     int retval;
     bool one_pass = false;
@@ -215,22 +217,38 @@ int main(int argc, char** argv) {
 
     strcpy(app.name, "");
     check_stop_daemons();
-    g_argc = argc;
-    g_argv = argv;
+
+    int j=1;
     for (i=1; i<argc; i++) {
         if (is_arg(argv[i], "one_pass_N_WU")) {
-            one_pass_N_WU = atoi(argv[++i]);
+            if (!argv[++i]) {
+                missing_argument(argv[0], argv[--i]);
+                exit(1);
+            }
+            one_pass_N_WU = atoi(argv[i]);
             one_pass = true;
         } else if (is_arg(argv[i], "sleep_interval")) {
-            sleep_interval = atoi(argv[++i]);
+            if (!argv[++i]) {
+                missing_argument(argv[0], argv[--i]);
+                exit(1);
+            }
+            sleep_interval = atoi(argv[i]);
         } else if (is_arg(argv[i], "one_pass")) {
             one_pass = true;
         } else if (is_arg(argv[i], "d") || is_arg(argv[i], "debug_level")) {
-            int dl = atoi(argv[++i]);
+            if (!argv[++i]) {
+                missing_argument(argv[0], argv[--i]);
+                exit(1);
+            }
+            int dl = atoi(argv[i]);
             log_messages.set_debug_level(dl);
             if (dl ==4) g_print_queries = true;
         } else if (is_arg(argv[i], "app")) {
-            safe_strcpy(app.name, argv[++i]);
+            if (!argv[++i]) {
+                missing_argument(argv[0], argv[--i]);
+                exit(1);
+            }
+            safe_strcpy(app.name, argv[i]);
         } else if (is_arg(argv[i], "dont_update_db")) {
             // This option is for testing your assimilator.  When set,
             // it ensures that the assimilator does not actually modify
@@ -238,31 +256,32 @@ int main(int argc, char** argv) {
             // your assimilator over and over again without affecting
             // your project.
             update_db = false;
-        } else if (is_arg(argv[i], "noinsert")) {
-            // This option is also for testing and is used to
-            // prevent the inserting of results into the *backend*
-            // (as opposed to the boinc) DB.
-            noinsert = true;
         } else if (is_arg(argv[i], "mod")) {
-            wu_id_modulus   = atoi(argv[++i]);
-            wu_id_remainder = atoi(argv[++i]);
+            if (!argv[++i]) {
+                missing_argument(argv[0], argv[--i]);
+                exit(1);
+            }
+            wu_id_modulus   = atoi(argv[i]);
+            if (!argv[++i]) {
+                missing_argument(argv[0], argv[--i]);
+                exit(1);
+            }
+            wu_id_remainder = atoi(argv[i]);
         } else if (is_arg(argv[i], "help") || is_arg(argv[i], "h")) {
-            usage(argv);
+            usage(argv[0]);
+            exit(0);
         } else if (is_arg(argv[i], "v") || is_arg(argv[i], "version")) {
             printf("%s\n", SVN_VERSION);
             exit(0);
-        } else if (is_arg(argv[i], "results_prefix")) {
-            results_prefix=argv[++i];
-        } else if (is_arg(argv[i], "transcripts_prefix")) {
-            transcripts_prefix=argv[++i];
         } else {
-            // project-specific part might parse extra args
-            //log_messages.printf(MSG_CRITICAL, "Unrecognized arg: %s\n", argv[i]);
+            // unknown arg - pass to handler
+            argv[j++] = argv[i];
         }
     }
 
     if (!strlen(app.name)) {
-        usage(argv);
+        usage(argv[0]);
+        exit(1);
     }
 
     if (wu_id_modulus) {
@@ -280,19 +299,24 @@ int main(int argc, char** argv) {
         exit(1);
     }
 
-    log_messages.printf(MSG_NORMAL, "Starting\n");
-
     retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
     if (retval) {
-        log_messages.printf(MSG_CRITICAL, "Can't open DB\n");
+        log_messages.printf(MSG_CRITICAL, "boinc_db.open failed: %s\n", boincerror(retval));
         exit(1);
     }
     sprintf(buf, "where name='%s'", app.name);
     retval = app.lookup(buf);
     if (retval) {
-        log_messages.printf(MSG_CRITICAL, "Can't find app\n");
+        log_messages.printf(MSG_CRITICAL, "Can't find app: %s\n", app.name);
         exit(1);
     }
+
+    argv[j] = 0;
+    retval = assimilate_handler_init(j, argv);
+    if (retval) exit(1);
+
+    log_messages.printf(MSG_NORMAL, "Starting assimilator handler\n");
+
     install_stop_signal_handler();
     // coverity[loop_top] - infinite loop is intended
     do {
diff --git a/sched/census.cpp b/sched/census.cpp
index 028dd25..46ea2ba 100644
--- a/sched/census.cpp
+++ b/sched/census.cpp
@@ -15,7 +15,10 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// Census - scan the DB and create summary file: see usage() below
+// census - see how much RAC each HR class is getting,
+// to adjust the number of job-array slots for each HR class.
+//
+// scan the DB and create summary file: see usage() below
 
 #include <cstdio>
 
diff --git a/sched/credit.cpp b/sched/credit.cpp
index fb905bc..f41b74e 100644
--- a/sched/credit.cpp
+++ b/sched/credit.cpp
@@ -70,7 +70,7 @@ int grant_credit(DB_HOST &host, double start_time, double credit) {
     retval = user.lookup_id(host.userid);
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "lookup of user %d failed: %s\n",
+            "lookup of user %lu failed: %s\n",
             host.userid, boincerror(retval)
         );
         return retval;
@@ -88,7 +88,7 @@ int grant_credit(DB_HOST &host, double start_time, double credit) {
     retval = user.update_field(buf);
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "update of user %d failed: %s\n",
+            "update of user %lu failed: %s\n",
             host.userid, boincerror(retval)
         );
     }
@@ -99,7 +99,7 @@ int grant_credit(DB_HOST &host, double start_time, double credit) {
         retval = team.lookup_id(user.teamid);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "lookup of team %d failed: %s\n",
+                "lookup of team %lu failed: %s\n",
                 user.teamid, boincerror(retval)
             );
             return retval;
@@ -116,7 +116,7 @@ int grant_credit(DB_HOST &host, double start_time, double credit) {
         retval = team.update_field(buf);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "update of team %d failed: %s\n",
+                "update of team %lu failed: %s\n",
                 team.id, boincerror(retval)
             );
         }
@@ -129,7 +129,7 @@ int grant_credit_by_app(RESULT& result, double credit) {
     char clause1[1024], clause2[1024];
     double now = dtime();
 
-    sprintf(clause1, "where userid=%d and appid=%d", result.userid, result.appid);
+    sprintf(clause1, "where userid=%lu and appid=%lu", result.userid, result.appid);
     int retval = cu.lookup(clause1);
     if (retval) {
         cu.clear();
@@ -150,7 +150,7 @@ int grant_credit_by_app(RESULT& result, double credit) {
         credit, cu.expavg, cu.expavg_time
     );
     sprintf(clause2,
-        "userid=%d and appid=%d", result.userid, result.appid
+        "userid=%lu and appid=%lu", result.userid, result.appid
     );
     retval = cu.update_fields_noid(clause1, clause2);
     if (retval) return retval;
@@ -158,7 +158,7 @@ int grant_credit_by_app(RESULT& result, double credit) {
     // team.  keep track of credit for zero (no team) also
     //
     DB_CREDIT_TEAM ct;
-    sprintf(clause1, "where teamid=%d and appid=%d", result.teamid, result.appid);
+    sprintf(clause1, "where teamid=%lu and appid=%lu", result.teamid, result.appid);
     retval = ct.lookup(clause1);
     if (retval) {
         ct.clear();
@@ -179,7 +179,7 @@ int grant_credit_by_app(RESULT& result, double credit) {
         credit, ct.expavg, ct.expavg_time
     );
     sprintf(clause2,
-        "teamid=%d and appid=%d", result.teamid, result.appid
+        "teamid=%lu and appid=%lu", result.teamid, result.appid
     );
     retval = ct.update_fields_noid(clause1, clause2);
     if (retval) return retval;
@@ -261,7 +261,7 @@ int scale_versions(APP &app, double avg, SCHED_SHMEM *ssp) {
         if (config.debug_credit) {
             PLATFORM *p = ssp->lookup_platform_id(av.platformid);
             log_messages.printf(MSG_NORMAL,
-                " updating scale factor for %d (%s %s)\n",
+                " updating scale factor for %lu (%s %s)\n",
                 av.id, p->name, av.plan_class
             );
             log_messages.printf(MSG_NORMAL,
@@ -300,7 +300,7 @@ int update_av_scales(SCHED_SHMEM *ssp) {
     for (i=0; i<ssp->napps; i++) {
         APP &app = ssp->apps[i];
         if (config.debug_credit) {
-            log_messages.printf(MSG_NORMAL, "app %s (%d)\n", app.name, app.id);
+            log_messages.printf(MSG_NORMAL, "app %s (%lu)\n", app.name, app.id);
         }
         RSC_INFO cpu_info, gpu_info;
 
@@ -320,7 +320,7 @@ int update_av_scales(SCHED_SHMEM *ssp) {
             if (plan_class_to_proc_type(av.plan_class) != PROC_TYPE_CPU) {
                 if (config.debug_credit) {
                     log_messages.printf(MSG_NORMAL,
-                        "add to gpu totals: (%d %s) %g %g\n",
+                        "add to gpu totals: (%lu %s) %g %g\n",
                         av.id, av.plan_class, av.pfc.n, av.pfc.get_avg()
                     );
                 }
@@ -328,7 +328,7 @@ int update_av_scales(SCHED_SHMEM *ssp) {
             } else {
                 if (config.debug_credit) {
                     log_messages.printf(MSG_NORMAL,
-                        "add to cpu totals: (%d %s) %g %g\n",
+                        "add to cpu totals: (%lu %s) %g %g\n",
                         av.id, av.plan_class, av.pfc.n, av.pfc.get_avg()
                     );
                 }
@@ -386,10 +386,12 @@ int update_av_scales(SCHED_SHMEM *ssp) {
 //
 // (if anonymous platform, skip the above)
 //
-int hav_lookup(DB_HOST_APP_VERSION &hav, int hostid, int gen_avid) {
+int hav_lookup(
+    DB_HOST_APP_VERSION &hav, DB_ID_TYPE hostid, DB_ID_TYPE gen_avid
+) {
     int retval;
     char buf[256];
-    sprintf(buf, "where host_id=%d and app_version_id=%d", hostid, gen_avid);
+    sprintf(buf, "where host_id=%lu and app_version_id=%ld", hostid, gen_avid);
     retval = hav.lookup(buf);
     if (retval != ERR_DB_NOT_FOUND) return retval;
 
@@ -415,7 +417,7 @@ int hav_lookup(DB_HOST_APP_VERSION &hav, int hostid, int gen_avid) {
     // for this (app/platform/plan class) and appropriate it
     //
     bool found = false;
-    sprintf(buf, "where host_id=%d", hostid);
+    sprintf(buf, "where host_id=%lu", hostid);
     while (1) {
         retval = hav2.enumerate(buf);
         if (retval == ERR_DB_NOT_FOUND) break;
@@ -439,9 +441,9 @@ int hav_lookup(DB_HOST_APP_VERSION &hav, int hostid, int gen_avid) {
     if (found) {
         hav = best_hav;
         char query[256], where_clause[256];
-        sprintf(query, "app_version_id=%d", gen_avid);
+        sprintf(query, "app_version_id=%ld", gen_avid);
         sprintf(where_clause,
-            "host_id=%d and app_version_id=%d",
+            "host_id=%lu and app_version_id=%ld",
             hostid, best_av.id
         );
         retval = hav.update_fields_noid(query, where_clause);
@@ -456,7 +458,9 @@ int hav_lookup(DB_HOST_APP_VERSION &hav, int hostid, int gen_avid) {
     return 0;
 }
 
-DB_APP_VERSION_VAL *av_lookup(int id, vector<DB_APP_VERSION_VAL>& app_versions) {
+DB_APP_VERSION_VAL *av_lookup(
+    DB_ID_TYPE id, vector<DB_APP_VERSION_VAL>& app_versions
+) {
     for (unsigned int i=0; i<app_versions.size(); i++) {
         if (app_versions[i].id == id) {
             return &app_versions[i];
@@ -514,7 +518,7 @@ int get_pfc(
     if (r.runtime_outlier) {
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] runtime outlier, not updating stats\n",
+                "[credit] [RESULT#%lu] runtime outlier, not updating stats\n",
                 r.id
             );
         }
@@ -526,7 +530,7 @@ int get_pfc(
     if (r.app_version_id == 0 || r.app_version_id == 1) {
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] missing app_version_id (%d): returning WU default %.2f\n",
+                "[credit] [RESULT#%lu] missing app_version_id (%ld): returning WU default %.2f\n",
                 r.id, r.app_version_id, wu_estimated_credit(wu, app)
             );
         }
@@ -541,7 +545,7 @@ int get_pfc(
     if (strstr(r.stderr_out, "Device Emulation (CPU)")) {
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u][AV#%d] CUDA app fell back to CPU; returning WU default %.2f\n",
+                "[credit] [RESULT#%lu][AV#%ld] CUDA app fell back to CPU; returning WU default %.2f\n",
                 r.id, r.app_version_id, wu.rsc_fpops_est*COBBLESTONE_SCALE
             );
         }
@@ -550,8 +554,6 @@ int get_pfc(
         return 0;
     }
 
-    //int gavid = generalized_app_version_id(r.app_version_id, r.appid);
-
     // transition case: there's no host_app_version record
     //
     if (!hav.host_id) {
@@ -568,7 +570,7 @@ int get_pfc(
 
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] old client (elapsed time not reported)\n",
+                "[credit] [RESULT#%lu] old client (elapsed time not reported)\n",
                 r.id
             );
         }
@@ -585,7 +587,7 @@ int get_pfc(
         pfc = wu_estimated_pfc(wu, app);
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] old client: raw credit %.2f\n",
+                "[credit] [RESULT#%lu] old client: raw credit %.2f\n",
                 r.id, pfc*COBBLESTONE_SCALE
             );
         }
@@ -594,7 +596,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] old client: no host scaling - zero or too few samples %f\n",
+                    "[credit] [RESULT#%lu] old client: no host scaling - zero or too few samples %f\n",
                     r.id, hav.et.n
                 );
             }
@@ -606,7 +608,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] old client: no host scaling - cons valid %d\n",
+                    "[credit] [RESULT#%lu] old client: no host scaling - cons valid %d\n",
                     r.id, hav.consecutive_valid
                 );
             }
@@ -616,14 +618,14 @@ int get_pfc(
             pfc *= s;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] old client: scaling (based on CPU time) by %g, return %.2f\n",
+                    "[credit] [RESULT#%lu] old client: scaling (based on CPU time) by %g, return %.2f\n",
                     r.id, s, pfc*COBBLESTONE_SCALE
                 );
             }
         }
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] old client: returning PFC %.2f\n",
+                "[credit] [RESULT#%lu] old client: returning PFC %.2f\n",
                 r.id, pfc*COBBLESTONE_SCALE
             );
         }
@@ -641,7 +643,7 @@ int get_pfc(
     double raw_pfc = (r.elapsed_time * r.flops_estimate);
     if (config.debug_credit) {
         log_messages.printf(MSG_NORMAL,
-            "[credit] [RESULT#%u] raw credit: %.2f (%.2f sec, %.2f est GFLOPS)\n",
+            "[credit] [RESULT#%lu] raw credit: %.2f (%.2f sec, %.2f est GFLOPS)\n",
             r.id, raw_pfc*COBBLESTONE_SCALE, r.elapsed_time,
             r.flops_estimate/1e9
         );
@@ -663,7 +665,7 @@ int get_pfc(
         pfc = wu_estimated_pfc(wu, app);
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] WARNING: sanity check failed: %.2f>%.2f, return %.2f\n",
+                "[credit] [RESULT#%lu] WARNING: sanity check failed: %.2f>%.2f, return %.2f\n",
                 r.id, raw_pfc*tmp_scale*COBBLESTONE_SCALE,
                 wu.rsc_fpops_bound*COBBLESTONE_SCALE, pfc*COBBLESTONE_SCALE
             );
@@ -683,7 +685,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] anon platform, not scaling, PFC avg zero or too few samples %.0f\n",
+                    "[credit] [RESULT#%lu] anon platform, not scaling, PFC avg zero or too few samples %.0f\n",
                     r.id, hav.pfc.n
                 );
             }
@@ -695,7 +697,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] anon platform, not scaling, cons valid %d\n",
+                    "[credit] [RESULT#%lu] anon platform, not scaling, cons valid %d\n",
                     r.id, hav.consecutive_valid
                 );
             }
@@ -705,7 +707,7 @@ int get_pfc(
             pfc = raw_pfc * scale;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] anon platform, scaling by %g (%.2f/%.2f)\n",
+                    "[credit] [RESULT#%lu] anon platform, scaling by %g (%.2f/%.2f)\n",
                     r.id, scale, app.min_avg_pfc, hav.pfc.get_avg()
                 );
             }
@@ -713,14 +715,14 @@ int get_pfc(
             pfc = wu_estimated_pfc(wu, app);
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] not scaling, using app avg %.2f\n",
+                    "[credit] [RESULT#%lu] not scaling, using app avg %.2f\n",
                     r.id, pfc*COBBLESTONE_SCALE
                 );
             }
         }
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] anon platform, returning %.2f\n",
+                "[credit] [RESULT#%lu] anon platform, returning %.2f\n",
                 r.id, pfc*COBBLESTONE_SCALE
             );
         }
@@ -728,13 +730,13 @@ int get_pfc(
         avp = av_lookup(r.app_version_id, app_versions);
         if (!avp) {
             log_messages.printf(MSG_CRITICAL,
-                "get_pfc() [RESULT#%u]: No AVP %d!!\n", r.id, r.app_version_id
+                "get_pfc() [RESULT#%lu]: No AVP %ld!!\n", r.id, r.app_version_id
             );
             return ERR_NOT_FOUND;
         }
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] [AV#%d] normal case. %.0f sec, %.1f GFLOPS.  raw credit: %.2f\n",
+                "[credit] [RESULT#%lu] [AV#%lu] normal case. %.0f sec, %.1f GFLOPS.  raw credit: %.2f\n",
                 r.id, avp->id, r.elapsed_time, r.flops_estimate/1e9,
                 raw_pfc*COBBLESTONE_SCALE
             );
@@ -748,7 +750,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] not host scaling - cons valid %d\n",
+                    "[credit] [RESULT#%lu] not host scaling - cons valid %d\n",
                     r.id, hav.consecutive_valid
                 );
             }
@@ -757,7 +759,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] not host scaling - HAV PFC zero or too few samples %.0f\n",
+                    "[credit] [RESULT#%lu] not host scaling - HAV PFC zero or too few samples %.0f\n",
                     r.id, hav.pfc.n
                 );
             }
@@ -766,7 +768,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] not host scaling - app_version PFC too few samples%.0f\n",
+                    "[credit] [RESULT#%lu] not host scaling - app_version PFC too few samples%.0f\n",
                     r.id, avp->pfc.n
                 );
             }
@@ -775,7 +777,7 @@ int get_pfc(
             do_scale = false;
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] not host scaling - HAV PFC is zero\n",
+                    "[credit] [RESULT#%lu] not host scaling - HAV PFC is zero\n",
                     r.id
                 );
             }
@@ -787,7 +789,7 @@ int get_pfc(
             }
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] host scale: %.2f (%f/%f)\n",
+                    "[credit] [RESULT#%lu] host scale: %.2f (%f/%f)\n",
                     r.id, host_scale, avp->pfc.get_avg(), hav.pfc.get_avg()
                 );
             }
@@ -802,7 +804,7 @@ int get_pfc(
             }
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] applying app version scale %.3f\n",
+                    "[credit] [RESULT#%lu] applying app version scale %.3f\n",
                     r.id, avp->pfc_scale
                 );
             }
@@ -812,14 +814,14 @@ int get_pfc(
             }
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] no app version scale\n",
+                    "[credit] [RESULT#%lu] no app version scale\n",
                     r.id
                 );
             }
         }
         if (config.debug_credit) {
             log_messages.printf(MSG_NORMAL,
-                "[credit] [RESULT#%u] [AV#%d] PFC avgs with %g (%g/%g)\n",
+                "[credit] [RESULT#%lu] [AV#%lu] PFC avgs with %g (%g/%g)\n",
                 r.id, avp->id,
                 raw_pfc/wu.rsc_fpops_est,
                 raw_pfc, wu.rsc_fpops_est
@@ -833,7 +835,7 @@ int get_pfc(
 
     if (config.debug_credit) {
         log_messages.printf(MSG_NORMAL,
-            "[credit] [RESULT#%u] updating HAV PFC %.2f et %g turnaround %d\n",
+            "[credit] [RESULT#%lu] updating HAV PFC %.2f et %g turnaround %d\n",
             r.id, raw_pfc / wu.rsc_fpops_est,
             r.elapsed_time / wu.rsc_fpops_est,
             (r.received_time - r.sent_time)
@@ -845,15 +847,15 @@ int get_pfc(
         if (is_pfc_sane(x, wu, app)) {
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] [HOST#%d] before updating HAV PFC pfc.n=%f pfc.avg=%f\n",
-                    r.id,hav.host_id,hav.pfc.n,hav.pfc.avg
+                    "[credit] [RESULT#%lu] [HOST#%lu] before updating HAV PFC pfc.n=%f pfc.avg=%f\n",
+                    r.id, hav.host_id, hav.pfc.n, hav.pfc.avg
                 );
             }
             hav.pfc.update(x, HAV_AVG_THRESH, HAV_AVG_WEIGHT, HAV_AVG_LIMIT);
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] [HOST#%d] after updating HAV PFC pfc.n=%f pfc.avg=%f\n",
-                    r.id,hav.host_id,hav.pfc.n,hav.pfc.avg
+                    "[credit] [RESULT#%lu] [HOST#%lu] after updating HAV PFC pfc.n=%f pfc.avg=%f\n",
+                    r.id, hav.host_id, hav.pfc.n, hav.pfc.avg
                 );
             }
         }
@@ -966,7 +968,7 @@ int assign_credit_set(
         } else {
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] [RESULT#%u] get_pfc() returns credit %g mode %s\n",
+                    "[credit] [RESULT#%lu] get_pfc() returns credit %g mode %s\n",
                     r.id, pfc *COBBLESTONE_SCALE, (mode==PFC_MODE_NORMAL)?"normal":"approx"
                 );
             }
@@ -1029,7 +1031,7 @@ int assign_credit_set(
     x *= COBBLESTONE_SCALE;
     if (config.debug_credit) {
         log_messages.printf(MSG_NORMAL,
-            "[credit] [WU#%u] assign_credit_set: credit %g\n",
+            "[credit] [WU#%lu] assign_credit_set: credit %g\n",
             wu.id, x
         );
     }
@@ -1077,7 +1079,7 @@ int write_modified_app_versions(vector<DB_APP_VERSION_VAL>& app_versions) {
             );
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] updating app version %d:\n", av.id
+                    "[credit] updating app version %lu:\n", av.id
                 );
             }
             if (config.debug_credit) {
diff --git a/sched/credit.h b/sched/credit.h
index e185d5b..c22d144 100644
--- a/sched/credit.h
+++ b/sched/credit.h
@@ -58,7 +58,7 @@ extern int assign_credit_set(
 
 extern void got_error(DB_HOST_APP_VERSION&);
 
-extern int hav_lookup(DB_HOST_APP_VERSION& hav, int hostid, int avid);
+extern int hav_lookup(DB_HOST_APP_VERSION& hav, DB_ID_TYPE hostid, DB_ID_TYPE avid);
 
 extern int write_modified_app_versions(
     std::vector<DB_APP_VERSION_VAL>& app_versions
diff --git a/sched/credit_test.cpp b/sched/credit_test.cpp
index 082a2e7..65acfa7 100644
--- a/sched/credit_test.cpp
+++ b/sched/credit_test.cpp
@@ -1,3 +1,20 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2016 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
 // credit_test
 //
 // Simulate the new credit system for the N most recent jobs
@@ -115,7 +132,7 @@ void print_avs() {
         APP_VERSION& av = app_versions[i];
         if (!av.pfc.n) continue;
         PLATFORM* p = lookup_platform(av.platformid);
-        printf("app %d vers %d (%s %s)\n scale %f ",
+        printf("app %lu vers %lu (%s %s)\n scale %f ",
             av.appid, av.id, p->name, av.plan_class, av.pfc_scale
         );
         print_average(av.pfc);
@@ -185,7 +202,7 @@ void update_av_scales() {
     printf("----- updating scales --------\n");
     for (i=0; i<apps.size(); i++) {
         APP& app = apps[i];
-        printf("app %d\n", app.id);
+        printf("app %lu\n", app.id);
         RSC_INFO cpu_info, gpu_info;
 
         // find the average PFC of CPU and GPU versions
@@ -194,10 +211,10 @@ void update_av_scales() {
             APP_VERSION& av = app_versions[j];
             if (av.appid != app.id) continue;
             if (strstr(av.plan_class, "cuda") || strstr(av.plan_class, "ati")) {
-                printf("gpu update: %d %s %f\n", av.id, av.plan_class, av.pfc.get_avg());
+                printf("gpu update: %lu %s %f\n", av.id, av.plan_class, av.pfc.get_avg());
                 gpu_info.update(av);
             } else {
-                printf("cpu update: %d %s %f\n", av.id, av.plan_class, av.pfc.get_avg());
+                printf("cpu update: %lu %s %f\n", av.id, av.plan_class, av.pfc.get_avg());
                 cpu_info.update(av);
             }
         }
@@ -357,13 +374,13 @@ int main(int argc, char** argv) {
     }
     printf("min credit: %f\n", min_credit);
     while (!feof(in)) {
-        int c = fscanf(in, "%d %d %d %d %lf %d %lf %lf %lf %lf",
+        int c = fscanf(in, "%lu %lu %lu %lu %lf %lu %lf %lf %lf %lf",
             &r.id, &r.workunitid, &r.appid, &r.hostid,
             &r.claimed_credit, &r.app_version_id, &r.elapsed_time,
             &r.flops_estimate, &r.cpu_time, &wu.rsc_fpops_est
         );
         if (c != 10) break;
-        printf("%d) result %d WU %d host %d old credit %f\n",
+        printf("%d) result %lu WU %lu host %lu old credit %f\n",
             n, r.id, r.workunitid, r.hostid, r.claimed_credit
         );
         n++;
@@ -383,7 +400,7 @@ int main(int argc, char** argv) {
                 total_old_credit += r.claimed_credit;
                 total_new_credit += new_claimed_credit;
                 nstats++;
-                fprintf(f, "%d %d %.2f %.2f\n",
+                fprintf(f, "%lu %lu %.2f %.2f\n",
                     r.workunitid, r.id, new_claimed_credit, r.claimed_credit
                 );
             } else {
diff --git a/sched/db_dump.cpp b/sched/db_dump.cpp
index 5e49f0e..3177442 100644
--- a/sched/db_dump.cpp
+++ b/sched/db_dump.cpp
@@ -308,7 +308,7 @@ void write_host(HOST& host, FILE* f, bool detail) {
     xml_escape(host.os_version, os_version, sizeof(os_version));
     fprintf(f,
         "<host>\n"
-        "    <id>%d</id>\n",
+        "    <id>%lu</id>\n",
         host.id
     );
     if (detail) {
@@ -316,13 +316,13 @@ void write_host(HOST& host, FILE* f, bool detail) {
         retval = user.lookup_id(host.userid);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "user lookup of user %d for host %d: %s\n",
+                "user lookup of user %lu for host %lu: %s\n",
                 host.userid, host.id, boincerror(retval)
             );
         } else {
             if (user.show_hosts) {
                 fprintf(f,
-                    "    <userid>%d</userid>\n",
+                    "    <userid>%lu</userid>\n",
                     host.userid
                 );
             }
@@ -427,7 +427,7 @@ void write_user(USER& user, FILE* f, bool /*detail*/) {
 
     fprintf(f,
         "<user>\n"
-        " <id>%d</id>\n"
+        " <id>%lu</id>\n"
         " <name>%s</name>\n"
         " <country>%s</country>\n"
         " <create_time>%d</create_time>\n"
@@ -452,7 +452,7 @@ void write_user(USER& user, FILE* f, bool /*detail*/) {
     }
     if (user.teamid) {
         fprintf(f,
-            " <teamid>%d</teamid>\n",
+            " <teamid>%lu</teamid>\n",
             user.teamid
         );
     }
@@ -492,8 +492,8 @@ void write_badge_user(char* output_dir) {
     while (!bu.enumerate("")) {
         fprintf(zf.f,
             " <badge_user>\n"
-            "    <user_id>%d</user_id>\n"
-            "    <badge_id>%d</badge_id>\n"
+            "    <user_id>%lu</user_id>\n"
+            "    <badge_id>%lu</badge_id>\n"
             "    <create_time>%.0f</create_time>\n"
             " </badge_user>\n",
             bu.user_id,
@@ -513,8 +513,8 @@ void write_badge_team(char* output_dir) {
     while (!bt.enumerate("")) {
         fprintf(zf.f,
             " <badge_team>\n"
-            "    <team_id>%d</team_id>\n"
-            "    <badge_id>%d</badge_id>\n"
+            "    <team_id>%lu</team_id>\n"
+            "    <badge_id>%lu</badge_id>\n"
             "    <create_time>%.0f</create_time>\n"
             " </badge_team>\n",
             bt.team_id,
@@ -537,10 +537,10 @@ void write_team(TEAM& team, FILE* f, bool detail) {
 
     fprintf(f,
         "<team>\n"
-        " <id>%d</id>\n"
+        " <id>%lu</id>\n"
         " <type>%d</type>\n"
         " <name>%s</name>\n"
-        " <userid>%d</userid>\n"
+        " <userid>%lu</userid>\n"
         " <total_credit>%f</total_credit>\n"
         " <expavg_credit>%f</expavg_credit>\n"
         " <expavg_time>%f</expavg_time>\n",
@@ -597,7 +597,7 @@ void write_team(TEAM& team, FILE* f, bool detail) {
         team.country
     );
     if (detail) {
-        sprintf(buf, "where teamid=%d", team.id);
+        sprintf(buf, "where teamid=%lu", team.id);
         while (1) {
             retval = user.enumerate(buf);
             if (retval) break;
@@ -665,7 +665,7 @@ void print_badges(FILE* f) {
         have_badges = true;
         fprintf(f,
             "       <badge>\n"
-            "           <id>%d</id>\n"
+            "           <id>%lu</id>\n"
             "           <name>%s</name>\n"
             "           <title>%s</title>\n"
             "           <image_url>%s</image_url>\n"
diff --git a/sched/db_purge.cpp b/sched/db_purge.cpp
index a85acab..32ea073 100644
--- a/sched/db_purge.cpp
+++ b/sched/db_purge.cpp
@@ -277,7 +277,7 @@ int archive_result(DB_RESULT& result) {
     int n;
     n = fprintf(re_stream,
         "<result_archive>\n"
-        "    <id>%d</id>\n",
+        "    <id>%lu</id>\n",
         result.id
     );
 
@@ -289,12 +289,12 @@ int archive_result(DB_RESULT& result) {
     if (n >= 0) n = fprintf(
         re_stream,
         "  <create_time>%d</create_time>\n"
-        "  <workunitid>%d</workunitid>\n"
+        "  <workunitid>%lu</workunitid>\n"
         "  <server_state>%d</server_state>\n"
         "  <outcome>%d</outcome>\n"
         "  <client_state>%d</client_state>\n"
-        "  <hostid>%d</hostid>\n"
-        "  <userid>%d</userid>\n"
+        "  <hostid>%lu</hostid>\n"
+        "  <userid>%lu</userid>\n"
         "  <report_deadline>%d</report_deadline>\n"
         "  <sent_time>%d</sent_time>\n"
         "  <received_time>%d</received_time>\n"
@@ -311,10 +311,10 @@ int archive_result(DB_RESULT& result) {
         "  <opaque>%f</opaque>\n"
         "  <random>%d</random>\n"
         "  <app_version_num>%d</app_version_num>\n"
-        "  <app_version_id>%d</app_version_id>\n"
-        "  <appid>%d</appid>\n"
+        "  <app_version_id>%ld</app_version_id>\n"
+        "  <appid>%lu</appid>\n"
         "  <exit_status>%d</exit_status>\n"
-        "  <teamid>%d</teamid>\n"
+        "  <teamid>%lu</teamid>\n"
         "  <priority>%d</priority>\n"
         "  <mod_time>%s</mod_time>\n",
         result.create_time,
@@ -354,7 +354,7 @@ int archive_result(DB_RESULT& result) {
 
     if (n >= 0) {
         n = fprintf(re_index_stream,
-            "%d     %d    %s\n",
+            "%lu     %d    %s\n",
             result.id, time_int, result.name
         );
     }
@@ -368,12 +368,12 @@ int archive_wu(DB_WORKUNIT& wu) {
     int n;
     n = fprintf(wu_stream,
         "<workunit_archive>\n"
-        "    <id>%d</id>\n",
+        "    <id>%lu</id>\n",
         wu.id
     );
     if (n >= 0) n = fprintf(wu_stream,
         "  <create_time>%d</create_time>\n"
-        "  <appid>%d</appid>\n"
+        "  <appid>%lu</appid>\n"
         "  <name>%s</name>\n"
         "  <xml_doc>%s</xml_doc>\n"
         "  <batch>%d</batch>\n"
@@ -382,7 +382,7 @@ int archive_wu(DB_WORKUNIT& wu) {
         "  <rsc_memory_bound>%.15e</rsc_memory_bound>\n"
         "  <rsc_disk_bound>%.15e</rsc_disk_bound>\n"
         "  <need_validate>%d</need_validate>\n"
-        "  <canonical_resultid>%u</canonical_resultid>\n"
+        "  <canonical_resultid>%lu</canonical_resultid>\n"
         "  <canonical_credit>%.15e</canonical_credit>\n"
         "  <transition_time>%d</transition_time>\n"
         "  <delay_bound>%d</delay_bound>\n"
@@ -434,7 +434,7 @@ int archive_wu(DB_WORKUNIT& wu) {
 
     if (n >= 0) {
         n = fprintf(wu_index_stream,
-            "%d     %d    %s\n",
+            "%lu     %d    %s\n",
             wu.id, time_int, wu.name
         );
     }
@@ -451,13 +451,13 @@ int purge_and_archive_results(DB_WORKUNIT& wu, int& number_results) {
 
     number_results=0;
 
-    sprintf(buf, "where workunitid=%d", wu.id);
+    sprintf(buf, "where workunitid=%lu", wu.id);
     while (!result.enumerate(buf)) {
         if (!no_archive) {
             retval = archive_result(result);
             if (retval) return retval;
             log_messages.printf(MSG_DEBUG,
-                "Archived result [%d] to a file\n", result.id
+                "Archived result [%lu] to a file\n", result.id
             );
         }
         if (!dont_delete) {
@@ -465,7 +465,7 @@ int purge_and_archive_results(DB_WORKUNIT& wu, int& number_results) {
             if (retval) return retval;
         }
         log_messages.printf(MSG_DEBUG,
-            "Purged result [%d] from database\n", result.id
+            "Purged result [%lu] from database\n", result.id
         );
         number_results++;
     }
@@ -510,7 +510,7 @@ bool do_pass() {
         strcat(buf, buf2);
     }
     if (strlen(app_name)) {
-        sprintf(buf2, " and appid=%d", app.id);
+        sprintf(buf2, " and appid=%lu", app.id);
         strcat(buf, buf2);
     }
     sprintf(buf2, " limit %d", DB_QUERY_LIMIT);
@@ -544,12 +544,12 @@ bool do_pass() {
             retval= archive_wu(wu);
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "Failed to write to XML file workunit:%d\n", wu.id
+                    "Failed to write to XML file workunit:%lu\n", wu.id
                 );
                 exit(5);
             }
             log_messages.printf(MSG_DEBUG,
-                "Archived workunit [%d] to a file\n", wu.id
+                "Archived workunit [%lu] to a file\n", wu.id
             );
         }
 
@@ -559,14 +559,14 @@ bool do_pass() {
             retval= wu.delete_from_db();
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "Can't delete workunit [%d] from database:%d\n",
+                    "Can't delete workunit [%lu] from database:%d\n",
                     wu.id, retval
                 );
                 exit(6);
             }
             if (config.enable_assignment) {
                 DB_ASSIGNMENT asg;
-                sprintf(buf, "where workunitid=%d", wu.id);
+                sprintf(buf, "where workunitid=%lu", wu.id);
                 retval = asg.lookup(buf);
                 if (!retval) {
                     asg.delete_from_db();
@@ -574,12 +574,12 @@ bool do_pass() {
             }
         }
         log_messages.printf(MSG_DEBUG,
-            "Purged workunit [%d] from database\n", wu.id
+            "Purged workunit [%lu] from database\n", wu.id
         );
 
         if (config.enable_assignment) {
             DB_ASSIGNMENT asg;
-            sprintf(buf2, "workunitid=%d", wu.id);
+            sprintf(buf2, "workunitid=%lu", wu.id);
             asg.delete_from_db_multi(buf2);
         }
 
diff --git a/sched/edf_sim.cpp b/sched/edf_sim.cpp
index b182a59..3015570 100644
--- a/sched/edf_sim.cpp
+++ b/sched/edf_sim.cpp
@@ -15,6 +15,13 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// Logic for doing deadline-based simulations of client workloads
+// to decide whether sending new jobs would cause deadline misses.
+// This is enabled by the config.xml <workload_sim> flag.
+//
+// This hasn't been shown to be beneficial.
+// It's turned off by default.
+
 #ifndef _USING_FCGI_
 #include <cstdio>
 #else
diff --git a/sched/edf_sim.h b/sched/edf_sim.h
index ee80b87..58d8142 100644
--- a/sched/edf_sim.h
+++ b/sched/edf_sim.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _EDF_SIM_H
-#define _EDF_SIM_H
+#ifndef BOINC_EDF_SIM_H
+#define BOINC_EDF_SIM_H
 
 #include <cstring>
 #include <vector>
diff --git a/sched/feeder.cpp b/sched/feeder.cpp
index 9cbd06f..09ae0ca 100644
--- a/sched/feeder.cpp
+++ b/sched/feeder.cpp
@@ -246,7 +246,7 @@ static bool get_job_from_db(
     char select_clause[256];
     
     if (all_apps) {
-        sprintf(select_clause, "%s and r1.appid=%d",
+        sprintf(select_clause, "%s and r1.appid=%lu",
             mod_select_clause, ssp->apps[app_index].id
         );
         enum_size = enum_sizes[app_index];
@@ -286,7 +286,7 @@ static bool get_job_from_db(
                 return false;
             }
             log_messages.printf(MSG_NORMAL,
-                "restarted enumeration for appid %d\n",
+                "restarted enumeration for appid %lu\n",
                 ssp->apps[app_index].id
             );
         } else {
@@ -314,7 +314,7 @@ static bool get_job_from_db(
                 );
                 result.update_field(buf);
                 log_messages.printf(MSG_NORMAL,
-                    "[RESULT#%u] WU had error, marking as DIDNT_NEED\n",
+                    "[RESULT#%lu] WU had error, marking as DIDNT_NEED\n",
                     wi.res_id
                 );
                 continue;
@@ -338,7 +338,7 @@ static bool get_job_from_db(
                     ncollisions++;
                     collision = true;
                     log_messages.printf(MSG_DEBUG,
-                        "result [RESULT#%u] already in array\n", wi.res_id
+                        "result [RESULT#%lu] already in array\n", wi.res_id
                     );
                     break;
                 }
@@ -352,7 +352,7 @@ static bool get_job_from_db(
             if (hrt && config.hr_allocate_slots) {
                 if (!hr_info.accept(hrt, wi.wu.hr_class)) {
                     log_messages.printf(MSG_DEBUG,
-                        "rejecting [RESULT#%u] because HR class %d/%d over quota\n",
+                        "rejecting [RESULT#%lu] because HR class %d/%d over quota\n",
                         wi.res_id, hrt, wi.wu.hr_class
                     );
                     continue;
@@ -480,7 +480,7 @@ static bool scan_work_array(vector<DB_WORK_ITEM> &work_items) {
         case WR_STATE_PRESENT:
             if (purge_stale_time && wu_result.time_added_to_shared_memory < (time(0) - purge_stale_time)) {
                 log_messages.printf(MSG_NORMAL,
-                    "remove result [RESULT#%u] from slot %d because it is stale\n",
+                    "remove result [RESULT#%lu] from slot %d because it is stale\n",
                     wu_result.resultid, i
                 );
                 purge_stale(wu_result);
@@ -496,7 +496,7 @@ static bool scan_work_array(vector<DB_WORK_ITEM> &work_items) {
             );
             if (found) {
                 log_messages.printf(MSG_NORMAL,
-                    "adding result [RESULT#%u] in slot %d\n",
+                    "adding result [RESULT#%lu] in slot %d\n",
                     wi.res_id, i
                 );
                 wu_result.resultid = wi.res_id;
diff --git a/sched/file_deleter.cpp b/sched/file_deleter.cpp
index 7af3088..c919c98 100644
--- a/sched/file_deleter.cpp
+++ b/sched/file_deleter.cpp
@@ -40,6 +40,7 @@
 #include <pwd.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/resource.h>
 #if HAVE_STRINGS_H
 #include <strings.h>
 #endif
@@ -64,7 +65,8 @@
 #define DEFAULT_SLEEP_INTERVAL 5
 #define RESULTS_PER_WU 4        // an estimate of redundancy
 
-int id_modulus=0, id_remainder=0, appid=0;
+int id_modulus=0, id_remainder=0;
+DB_ID_TYPE appid=0;
 bool dont_retry_errors = false;
 bool dont_delete_batches = false;
 bool do_input_files = true;
@@ -161,23 +163,23 @@ int wu_delete_files(WORKUNIT& wu) {
                 );
                 if (retval == ERR_OPENDIR) {
                     log_messages.printf(MSG_CRITICAL,
-                        "[WU#%u] missing dir for %s\n",
+                        "[WU#%lu] missing dir for %s\n",
                         wu.id, filename
                     );
                     mthd_retval = ERR_UNLINK;
                 } else if (retval) {
                     log_messages.printf(MSG_CRITICAL,
-                        "[WU#%u] get_file_path: %s: %s\n",
+                        "[WU#%lu] get_file_path: %s: %s\n",
                         wu.id, filename, boincerror(retval)
                     );
                 } else {
                     log_messages.printf(MSG_NORMAL,
-                        "[WU#%u] deleting %s\n", wu.id, filename
+                        "[WU#%lu] deleting %s\n", wu.id, filename
                     );
                     retval = unlink(path);
                     if (retval) {
                         log_messages.printf(MSG_CRITICAL,
-                            "[WU#%u] unlink %s failed: %s\n",
+                            "[WU#%lu] unlink %s failed: %s\n",
                             wu.id, filename, boincerror(retval)
                         );
                         mthd_retval = ERR_UNLINK;
@@ -191,7 +193,7 @@ int wu_delete_files(WORKUNIT& wu) {
                     retval = unlink(path_gz);
                     if (!retval) {
                         log_messages.printf(MSG_NORMAL,
-                            "[WU#%u] deleted %s.gz\n", wu.id, filename
+                            "[WU#%lu] deleted %s.gz\n", wu.id, filename
                         );
                     }
 
@@ -200,12 +202,12 @@ int wu_delete_files(WORKUNIT& wu) {
                     if (config.cache_md5_info) {
                         sprintf(path_md5, "%s.md5", path);
                         log_messages.printf(MSG_NORMAL,
-                            "[WU#%u] deleting %s.md5\n", wu.id, filename
+                            "[WU#%lu] deleting %s.md5\n", wu.id, filename
                         );
                         retval = unlink(path_md5);
                         if (retval) {
                             log_messages.printf(MSG_CRITICAL,
-                                "[WU#%u] unlink %s.md5 failed: %s\n",
+                                "[WU#%lu] unlink %s.md5 failed: %s\n",
                                 wu.id, filename, boincerror(retval)
                             );
                         }
@@ -216,14 +218,14 @@ int wu_delete_files(WORKUNIT& wu) {
         p = strtok(0, "\n");
     }
     log_messages.printf(MSG_DEBUG,
-        "[WU#%u] deleted %d file(s)\n", wu.id, count_deleted
+        "[WU#%lu] deleted %d file(s)\n", wu.id, count_deleted
     );
     return mthd_retval;
 }
 
 int result_delete_files(RESULT& result) {
     char* p;
-    char filename[256], pathname[256], buf[BLOB_SIZE];
+    char filename[MAXPATHLEN], pathname[MAXPATHLEN], buf[BLOB_SIZE];
     bool no_delete=false;
     int count_deleted = 0, retval, mthd_retval = 0;
 
@@ -245,7 +247,7 @@ int result_delete_files(RESULT& result) {
                 if (retval == ERR_OPENDIR) {
                     mthd_retval = ERR_OPENDIR;
                     log_messages.printf(MSG_CRITICAL,
-                        "[RESULT#%u] missing dir for %s\n",
+                        "[RESULT#%lu] missing dir for %s\n",
                         result.id, pathname
                     );
                 } else if (retval) {
@@ -261,7 +263,7 @@ int result_delete_files(RESULT& result) {
                         debug_or_crit=MSG_DEBUG;
                     }
                     log_messages.printf(debug_or_crit,
-                        "[RESULT#%u] outcome=%d client_state=%d No file %s to delete\n",
+                        "[RESULT#%lu] outcome=%d client_state=%d No file %s to delete\n",
                         result.id, result.outcome, result.client_state, filename
                     );
                 } else {
@@ -269,14 +271,14 @@ int result_delete_files(RESULT& result) {
                     if (retval) {
                         mthd_retval = ERR_UNLINK;
                         log_messages.printf(MSG_CRITICAL,
-                            "[RESULT#%u] unlink %s error: %s %s\n",
+                            "[RESULT#%lu] unlink %s error: %s %s\n",
                             result.id, pathname, boincerror(retval),
                             (retval && errno)?strerror(errno):""
                         );
                     } else {
                         count_deleted++;
                         log_messages.printf(MSG_NORMAL,
-                            "[RESULT#%u] unlinked %s\n", result.id, pathname
+                            "[RESULT#%lu] unlinked %s\n", result.id, pathname
                         );
                     }
                 }
@@ -286,7 +288,7 @@ int result_delete_files(RESULT& result) {
     }
 
     log_messages.printf(MSG_DEBUG,
-        "[RESULT#%u] deleted %d file(s)\n", result.id, count_deleted
+        "[RESULT#%lu] deleted %d file(s)\n", result.id, count_deleted
     );
     return mthd_retval;
 }
@@ -316,7 +318,7 @@ bool do_pass(bool retry_error) {
         strcat(clause, " and batch <= 0 ");
     }
     if (appid) {
-        sprintf(buf, " and appid = %d ", appid);
+        sprintf(buf, " and appid = %lu ", appid);
         strcat(clause, buf);
     }
 
@@ -344,7 +346,7 @@ bool do_pass(bool retry_error) {
         if (retval) {
             new_state = FILE_DELETE_ERROR;
             log_messages.printf(MSG_CRITICAL,
-                "[RESULT#%u] file deletion failed: %s\n", result.id, boincerror(retval)
+                "[RESULT#%lu] file deletion failed: %s\n", result.id, boincerror(retval)
             );
         } else {
             new_state = FILE_DELETE_DONE;
@@ -358,11 +360,11 @@ bool do_pass(bool retry_error) {
             }
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[RESULT#%u] update failed: %s\n", result.id, boincerror(retval)
+                    "[RESULT#%lu] update failed: %s\n", result.id, boincerror(retval)
                 );
             } else {
                 log_messages.printf(MSG_DEBUG,
-                    "[RESULT#%u] file_delete_state updated\n", result.id
+                    "[RESULT#%lu] file_delete_state updated\n", result.id
                 );
                 did_something = true;
             }
@@ -398,7 +400,7 @@ bool do_pass(bool retry_error) {
         if (retval) {
             new_state = FILE_DELETE_ERROR;
             log_messages.printf(MSG_CRITICAL,
-                "[WU#%u] file deletion failed: %s\n", wu.id, boincerror(retval)
+                "[WU#%lu] file deletion failed: %s\n", wu.id, boincerror(retval)
             );
         } else {
             new_state = FILE_DELETE_DONE;
@@ -412,11 +414,11 @@ bool do_pass(bool retry_error) {
             }
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[WU#%u] update failed: %s\n", wu.id, boincerror(retval)
+                    "[WU#%lu] update failed: %s\n", wu.id, boincerror(retval)
                 );
             } else {
                 log_messages.printf(MSG_DEBUG,
-                    "[WU#%u] file_delete_state updated\n", wu.id
+                    "[WU#%lu] file_delete_state updated\n", wu.id
                 );
                 did_something = true;
             }
@@ -469,7 +471,7 @@ int main(int argc, char** argv) {
                 usage(argv[0]);
                 exit(1);
             }
-            appid = atoi(argv[i]);
+            appid = atol(argv[i]);
         } else if (is_arg(argv[i], "d") || is_arg(argv[i], "debug_level")) {
             if (!argv[++i]) {
                 log_messages.printf(MSG_CRITICAL, "%s requires an argument\n\n", argv[--i]);
@@ -588,8 +590,8 @@ int main(int argc, char** argv) {
         log_messages.printf(MSG_CRITICAL, "Can't find app\n");
         exit(1);
       }
-      appid=app.id;
-      log_messages.printf(MSG_DEBUG, "Deleting files of appid %d\n",appid);
+      appid = app.id;
+      log_messages.printf(MSG_DEBUG, "Deleting files of appid %lu\n",appid);
     }
 
     install_stop_signal_handler();
diff --git a/sched/file_upload_handler.cpp b/sched/file_upload_handler.cpp
index 8ac725c..a4fd0eb 100644
--- a/sched/file_upload_handler.cpp
+++ b/sched/file_upload_handler.cpp
@@ -110,14 +110,14 @@ int return_success(const char* text) {
 #define BLOCK_SIZE  (256*1024)
 double bytes_left=-1;
 
-int accept_empty_file(char* path) {
+int accept_empty_file(char* name, char* path) {
     int fd = open(path,
         O_WRONLY|O_CREAT,
         S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH
     );
     if (fd<0) {
         return return_error(ERR_TRANSIENT,
-            "can't open file %s: %s\n", path, strerror(errno)
+            "can't open file %s: %s\n", name, strerror(errno)
         );
     }
     close(fd);
@@ -127,7 +127,7 @@ int accept_empty_file(char* path) {
 // read from socket, write to file
 // ALWAYS returns an HTML reply
 //
-int copy_socket_to_file(FILE* in, char* path, double offset, double nbytes) {
+int copy_socket_to_file(FILE* in, char* name, char* path, double offset, double nbytes) {
     unsigned char buf[BLOCK_SIZE];
     struct stat sbuf;
     int pid, fd=0;
@@ -161,7 +161,7 @@ int copy_socket_to_file(FILE* in, char* path, double offset, double nbytes) {
             );
             if (fd<0) {
                 return return_error(ERR_TRANSIENT,
-                    "can't open file %s: %s\n", path, strerror(errno)
+                    "can't open file %s: %s\n", name, strerror(errno)
                 );
             }
 
@@ -175,11 +175,11 @@ int copy_socket_to_file(FILE* in, char* path, double offset, double nbytes) {
                 close(fd);
                 return return_error(ERR_TRANSIENT,
                     "can't lock file %s: %s locked by PID=%d\n",
-                    path, strerror(errno), pid
+                    name, strerror(errno), pid
                 );
             } else if (pid < 0) {
                 close(fd);
-                return return_error(ERR_TRANSIENT, "can't lock file %s\n", path);
+                return return_error(ERR_TRANSIENT, "can't lock file %s\n", name);
             }
 #endif
 
@@ -189,25 +189,26 @@ int copy_socket_to_file(FILE* in, char* path, double offset, double nbytes) {
             if (stat(path, &sbuf)) {
                 close(fd);
                 return return_error(ERR_TRANSIENT,
-                    "can't stat file %s: %s\n", path, strerror(errno)
+                    "can't stat file %s: %s\n", name, strerror(errno)
                 );
             }
             if (sbuf.st_size < offset) {
                 close(fd);
                 return return_error(ERR_TRANSIENT,
                     "length of file %s %d bytes < offset %.0f bytes",
-                    path, (int)sbuf.st_size, offset
+                    name, (int)sbuf.st_size, offset
                 );
             }
             if (offset) {
                 if (-1 == lseek(fd, offset, SEEK_SET)) {
+                    int err = errno; // make a copy to report the lseek() error and not printf() or close() errors.
                     log_messages.printf(MSG_CRITICAL,
                         "lseek(%s, %.0f) failed: %s (%d).\n",
-                        this_filename, offset, strerror(errno), errno
+                        this_filename, offset, strerror(err), err
                     );
                     close(fd);
                     return return_error(ERR_TRANSIENT,
-                        "can't resume partial file %s: %s\n", path, strerror(errno)
+                        "can't resume partial file %s: %s\n", name, strerror(err)
                 );
                 }
             }
@@ -233,7 +234,7 @@ int copy_socket_to_file(FILE* in, char* path, double offset, double nbytes) {
                     errmsg = strerror(errno);
                 }
                 return return_error(ERR_TRANSIENT,
-                    "can't write file %s: %s\n", path, errmsg
+                    "can't write file %s: %s\n", name, errmsg
                 );
             }
             to_write -= ret;
@@ -288,7 +289,7 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
     double max_nbytes=-1;
     char xml_signature[1024];
     int retval;
-    double offset=0, nbytes = -1;
+    double offset=0, nbytes = -1, size;
     bool is_valid, btemp;
 
     strcpy(name, "");
@@ -323,7 +324,7 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
             found_data = true;
             break;
         }
-        log_messages.printf(MSG_CRITICAL, "unrecognized: %s", buf);
+        log_messages.printf(MSG_NORMAL, "unrecognized: %s", buf);
     }
     if (strlen(name) == 0) {
         return return_error(ERR_PERMANENT, "Missing name");
@@ -375,9 +376,9 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
 
     // make sure filename is legit
     //
-    if (strstr(name, "..")) {
+    if (!is_valid_filename(name)) {
         return return_error(ERR_PERMANENT,
-            "file_upload_handler: .. found in filename: %s",
+            "file_upload_handler: invalid filename: %s",
             name
         );
     }
@@ -401,6 +402,17 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
             name, boincerror(retval)
         );
     }
+
+    // if file already exists and is full size, don't upload again.
+    //
+    if (!file_size(path, size) && (size == nbytes)) {
+        log_messages.printf(MSG_NORMAL,
+            "file %s exists and is right size - skipping\n", name
+        );
+        copy_socket_to_null(in);
+        return return_success(0);
+    }
+
     log_messages.printf(MSG_NORMAL,
         "Starting upload of %s from %s [offset=%.0f, nbytes=%.0f]\n",
         name,
@@ -411,7 +423,7 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
     fflush(stderr);
 #endif
     if (nbytes == 0) {
-        retval = accept_empty_file(path);
+        retval = accept_empty_file(name, path);
         log_messages.printf(MSG_NORMAL,
             "accepted empty file %s from %s\n", name, get_remote_addr()
         );
@@ -422,7 +434,7 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
             );
             return return_success(0);
         }
-        retval = copy_socket_to_file(in, path, offset, nbytes);
+        retval = copy_socket_to_file(in, name, path, offset, nbytes);
         log_messages.printf(MSG_NORMAL,
             "Ended upload of %s from %s; retval %d\n",
             name,
@@ -722,6 +734,12 @@ int main(int argc, char *argv[]) {
         }
     }
 
+    if (access(config.upload_dir, W_OK)) {
+        log_messages.printf(MSG_CRITICAL, "can't write to upload_dir\n");
+        return_error(ERR_TRANSIENT, "can't write to upload_dir");
+        exit(1);
+    }
+
 #ifdef _USING_FCGI_
     while(FCGI_Accept() >= 0) {
         counter++;
diff --git a/sched/handle_request.cpp b/sched/handle_request.cpp
index 09c73e6..e1938ee 100644
--- a/sched/handle_request.cpp
+++ b/sched/handle_request.cpp
@@ -64,6 +64,16 @@
 #include "sched_customize.h"
 #include "time_stats_log.h"
 
+// are the 2 hosts obviously different computers?
+//
+static bool obviously_different(HOST& h1, HOST& h2) {
+    if (h1.p_ncpus != h2.p_ncpus) return true;
+    if (strcmp(h1.p_vendor, h2.p_vendor)) return true;
+    if (strcmp(h1.p_model, h2.p_model)) return true;
+    if (strcmp(h1.os_name, h2.os_name)) return true;
+    if (strcmp(h1.os_version, h2.os_version)) return true;
+    return false;
+}
 
 // find the user's most recently-created host with given various characteristics
 //
@@ -93,7 +103,7 @@ static bool find_host_by_other(DB_USER& user, HOST req_host, DB_HOST& host) {
         escape_string(pm, sizeof(pm));
 
         sprintf(buf,
-            "where userid=%d and id>%d and domain_name='%s' and last_ip_addr = '%s' and os_name = '%s' and p_model = '%s'"
+            "where userid=%lu and id>%lu and domain_name='%s' and last_ip_addr = '%s' and os_name = '%s' and p_model = '%s'"
                " and m_nbytes = %lf order by id desc", user.id, req_host.id, dn, ip, os, pm, req_host.m_nbytes
         );
         if (!host.enumerate(buf)) {
@@ -126,7 +136,7 @@ int lock_sched() {
 
     g_reply->lockfile_fd=-1;
 
-    sprintf(filename, "%s/CGI_%07d",
+    sprintf(filename, "%s/CGI_%07lu",
         config.sched_lockfile_dir, g_reply->host.id
     );
 
@@ -163,7 +173,7 @@ void unlock_sched() {
     char filename[256];
 
     if (g_reply->lockfile_fd < 0) return;
-    sprintf(filename, "%s/CGI_%07d", config.sched_lockfile_dir, g_reply->host.id);
+    sprintf(filename, "%s/CGI_%07lu", config.sched_lockfile_dir, g_reply->host.id);
     unlink(filename);
     close(g_reply->lockfile_fd);
 }
@@ -177,7 +187,7 @@ static bool find_host_by_cpid(DB_USER& user, char* host_cpid, DB_HOST& host) {
     md5_block((const unsigned char*)buf, strlen(buf), buf2);
 
     sprintf(buf,
-        "where userid=%d and host_cpid='%s' order by id desc", user.id, buf2
+        "where userid=%lu and host_cpid='%s' order by id desc", user.id, buf2
     );
     if (!host.enumerate(buf)) {
         host.end_enumerate();
@@ -197,7 +207,7 @@ static bool find_host_by_cpid(DB_USER& user, char* host_cpid, DB_HOST& host) {
 static void mark_results_over(DB_HOST& host) {
     char buf[256], buf2[256];
     DB_RESULT result;
-    sprintf(buf, "where hostid=%d and server_state=%d",
+    sprintf(buf, "where hostid=%lu and server_state=%d",
         host.id,
         RESULT_SERVER_STATE_IN_PROGRESS
     );
@@ -218,7 +228,7 @@ static void mark_results_over(DB_HOST& host) {
         wu.update_field(buf2);
 
         log_messages.printf(MSG_CRITICAL,
-            "[HOST#%d] [RESULT#%u] [WU#%u] changed CPID: marking in-progress result %s as client error!\n",
+            "[HOST#%lu] [RESULT#%lu] [WU#%lu] changed CPID: marking in-progress result %s as client error!\n",
             host.id, result.id, result.workunitid, result.name
         );
     }
@@ -255,7 +265,7 @@ int authenticate_user() {
             if (!retval) {
                 g_reply->hostid = host.id;
                 log_messages.printf(MSG_NORMAL,
-                    "[HOST#%d] forwarding to new host ID %d\n",
+                    "[HOST#%lu] forwarding to new host ID %lu\n",
                     g_request->hostid, host.id
                 );
             }
@@ -263,7 +273,7 @@ int authenticate_user() {
         if (retval) {
             g_reply->insert_message("Can't find host record", "low");
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d?] can't find host\n",
+                "[HOST#%lu?] can't find host\n",
                 g_request->hostid
             );
             g_request->hostid = 0;
@@ -276,7 +286,7 @@ int authenticate_user() {
         // and see if the authenticator matches (regular or weak)
         //
         g_request->using_weak_auth = false;
-        sprintf(buf, "where id=%d", host.userid);
+        sprintf(buf, "where id=%lu", host.userid);
         retval = user.lookup(buf);
         if (!retval && !strcmp(user.authenticator, g_request->authenticator)) {
             // req auth matches user auth - go on
@@ -288,7 +298,7 @@ int authenticate_user() {
                 if (!strcmp(buf, g_request->authenticator)) {
                     g_request->using_weak_auth = true;
                     log_messages.printf(MSG_DEBUG,
-                        "[HOST#%d] accepting weak authenticator\n",
+                        "[HOST#%lu] accepting weak authenticator\n",
                         host.id
                     );
                 }
@@ -310,7 +320,7 @@ int authenticate_user() {
                     g_reply->set_delay(DELAY_MISSING_KEY);
                     g_reply->nucleus_only = true;
                     log_messages.printf(MSG_CRITICAL,
-                        "[HOST#%d] [USER#%d] Bad authenticator '%s'\n",
+                        "[HOST#%lu] [USER#%lu] Bad authenticator '%s'\n",
                         host.id, user.id, g_request->authenticator
                     );
                     return ERR_AUTHENTICATOR;
@@ -325,7 +335,7 @@ int authenticate_user() {
             // create a new host record.
             //
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d] [USER#%d] inconsistent host ID; creating new host\n",
+                "[HOST#%lu] [USER#%lu] inconsistent host ID; creating new host\n",
                 host.id, user.id
             );
             goto make_new_host;
@@ -339,7 +349,7 @@ int authenticate_user() {
         if (!batch && g_request->rpc_seqno < g_reply->host.rpc_seqno) {
             g_request->hostid = 0;
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d] [USER#%d] RPC seqno %d less than expected %d; creating new host\n",
+                "[HOST#%lu] [USER#%lu] RPC seqno %d less than expected %d; creating new host\n",
                 g_reply->host.id, user.id, g_request->rpc_seqno, g_reply->host.rpc_seqno
             );
             goto make_new_host;
@@ -394,15 +404,22 @@ lookup_user_and_make_new_host:
         if (strlen(g_request->host.host_cpid)) {
             if (find_host_by_cpid(user, g_request->host.host_cpid, host)) {
                 log_messages.printf(MSG_NORMAL,
-                    "[HOST#%d] [USER#%d] No host ID in request, but host with matching CPID found.\n",
+                    "[HOST#%lu] [USER#%lu] No host ID in request, but host with matching CPID found.\n",
                     host.id, host.userid
                 );
-                if ((g_request->allow_multiple_clients != 1)
-                    && (g_request->other_results.size() == 0)
-                ) {
-                    mark_results_over(host);
+                if (obviously_different(host, g_request->host)) {
+                    log_messages.printf(MSG_NORMAL,
+                        "[HOST#%lu] [USER#%lu] But that host doesn't match request.\n",
+                        host.id, host.userid
+                    );
+                } else {
+                    if ((g_request->allow_multiple_clients != 1)
+                        && (g_request->other_results.size() == 0)
+                    ) {
+                        mark_results_over(host);
+                    }
+                    goto got_host;
                 }
-                goto got_host;
             }
         }
 
@@ -420,10 +437,15 @@ make_new_host:
             && find_host_by_other(user, g_request->host, host)
         ) {
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d] [USER#%d] Found similar existing host for this user - assigned.\n",
+                "[HOST#%lu] [USER#%lu] Found similar existing host for this user - assigned.\n",
                 host.id, host.userid
             );
-            mark_results_over(host);
+            if (g_request->other_results.size() == 0) {
+                // mark host's jobs as abandoned
+                // if client has no jobs in progress
+                //
+                mark_results_over(host);
+            }
             goto got_host;
         }
         // either of the above cases,
@@ -493,6 +515,17 @@ got_host:
     return 0;
 }
 
+inline static const char* get_remote_addr() {
+    // Server is behind a load balancer or proxy
+    const char* p = getenv("HTTP_X_FORWARDED_FOR");
+    if (p) {
+        return p;
+    }
+
+    const char * r = getenv("REMOTE_ADDR");
+    return r ? r : "?.?.?.?";
+}
+
 // modify host struct based on request.
 // Copy all fields that are determined by the client.
 //
@@ -514,7 +547,11 @@ static int modify_host_struct(HOST& host) {
     strlcpy(host.serialnum, buf, sizeof(host.serialnum));
     strlcat(host.serialnum, buf2, sizeof(host.serialnum));
     if (strlen(g_request->host.virtualbox_version)) {
-        sprintf(buf2, "[vbox|%s]", g_request->host.virtualbox_version);
+        sprintf(buf2, "[vbox|%s|%d|%d]",
+            g_request->host.virtualbox_version,
+            (strstr(g_request->host.p_features, "vmx") || strstr(g_request->host.p_features, "svm"))?1:0,
+            g_request->host.p_vm_extensions_disabled?0:1
+        );
         strlcat(host.serialnum, buf2, sizeof(host.serialnum));
     }
     if (strcmp(host.last_ip_addr, g_request->host.last_ip_addr)) {
@@ -580,7 +617,7 @@ static int update_host_record(HOST& initial_host, HOST& xhost, USER& user) {
         md5_block((const unsigned char*)buf, strlen(buf), host.host_cpid);
     }
 
-    char* p = getenv("REMOTE_ADDR");
+    const char* p = get_remote_addr();
     if (p) {
         strlcpy(host.external_ip_addr, p, sizeof(host.external_ip_addr));
     }
@@ -684,7 +721,7 @@ int send_result_abort() {
         if (orp.abort) {
             g_reply->result_aborts.push_back(orp.name);
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d]: Send result_abort for result %s; reason: %s\n",
+                "[HOST#%lu]: Send result_abort for result %s; reason: %s\n",
                 g_reply->host.id, orp.name, reason_str(orp.reason)
             );
             // send user message
@@ -694,7 +731,7 @@ int send_result_abort() {
         } else if (orp.abort_if_not_started) {
             g_reply->result_abort_if_not_starteds.push_back(orp.name);
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d]: Send result_abort_if_unstarted for result %s; reason %d\n",
+                "[HOST#%lu]: Send result_abort_if_unstarted for result %s; reason %d\n",
                 g_reply->host.id, orp.name, orp.reason
             );
         }
@@ -1027,7 +1064,7 @@ bool wrong_core_client_version() {
         return false;
     }
     log_messages.printf(MSG_NORMAL,
-        "[HOST#%d] Wrong client version from user: wanted %d, got %d\n",
+        "[HOST#%lu] Wrong client version from user: wanted %d, got %d\n",
         g_request->hostid,
         config.min_core_client_version, g_request->core_client_minor_version
     );
@@ -1039,11 +1076,6 @@ bool wrong_core_client_version() {
     return true;
 }
 
-inline static const char* get_remote_addr() {
-    const char * r = getenv("REMOTE_ADDR");
-    return r ? r : "?.?.?.?";
-}
-
 void handle_msgs_from_host() {
     unsigned int i;
     DB_MSG_FROM_HOST mfh;
@@ -1065,7 +1097,7 @@ void handle_msgs_from_host() {
         retval = mfh.insert();
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] message insert failed: %s\n",
+                "[HOST#%lu] message insert failed: %s\n",
                 g_reply->host.id, boincerror(retval)
             );
             g_reply->send_msg_ack = false;
@@ -1080,7 +1112,7 @@ void handle_msgs_from_host() {
 void handle_msgs_to_host() {
     DB_MSG_TO_HOST mth;
     char buf[256];
-    sprintf(buf, "where hostid = %d and handled = %d", g_reply->host.id, 0);
+    sprintf(buf, "where hostid = %lu and handled = %d", g_reply->host.id, 0);
     while (!mth.enumerate(buf)) {
         g_reply->msgs_to_host.push_back(mth);
         mth.handled = true;
@@ -1090,7 +1122,7 @@ void handle_msgs_to_host() {
 
 static void log_request() {
     log_messages.printf(MSG_NORMAL,
-        "Request: [USER#%d] [HOST#%d] [IP %s] client %d.%d.%d\n",
+        "Request: [USER#%lu] [HOST#%lu] [IP %s] client %d.%d.%d\n",
         g_reply->user.id, g_reply->host.id, get_remote_addr(),
         g_request->core_client_major_version,
         g_request->core_client_minor_version,
@@ -1254,12 +1286,12 @@ void process_request(char* code_sign_key) {
         int pid_with_lock = lock_sched();
         if (pid_with_lock > 0) {
             log_messages.printf(MSG_CRITICAL,
-                "Another scheduler instance [PID=%d] is running for [HOST#%d]\n",
+                "Another scheduler instance [PID=%d] is running for [HOST#%lu]\n",
                 pid_with_lock, g_reply->host.id
             );
         } else if (pid_with_lock) {
             log_messages.printf(MSG_CRITICAL,
-                "Error acquiring lock for [HOST#%d]\n", g_reply->host.id
+                "Error acquiring lock for [HOST#%lu]\n", g_reply->host.id
             );
         }
         if (pid_with_lock) {
@@ -1317,7 +1349,7 @@ void process_request(char* code_sign_key) {
         );
         g_reply->insert_message(buf, "notice");
         log_messages.printf(MSG_CRITICAL,
-            "[HOST#%d] platform '%s' not found\n",
+            "[HOST#%lu] platform '%s' not found\n",
             g_reply->host.id, g_request->platform.name
         );
         g_reply->set_delay(DELAY_PLATFORM_UNSUPPORTED);
@@ -1413,6 +1445,16 @@ void process_request(char* code_sign_key) {
         handle_msgs_to_host();
     }
 
+    // compute GPU params
+    //
+    g_reply->host.p_ngpus = 0;
+    g_reply->host.p_gpu_fpops = 0;
+    for (int j=1; j<g_request->coprocs.n_rsc; j++) {
+        int n = g_request->coprocs.coprocs[j].count;
+        g_reply->host.p_ngpus += n;
+        g_reply->host.p_gpu_fpops += n*g_request->coprocs.coprocs[j].peak_flops;
+    }
+
     update_host_record(initial_host, g_reply->host, g_reply->user);
     write_host_app_versions();
 
@@ -1444,7 +1486,7 @@ static void log_user_messages() {
     for (unsigned int i=0; i<g_reply->messages.size(); i++) {
         USER_MESSAGE um = g_reply->messages[i];
         log_messages.printf(MSG_NORMAL,
-            "[user_messages] [HOST#%d] MSG(%s) %s\n",
+            "[user_messages] [HOST#%lu] MSG(%s) %s\n",
             g_reply->host.id, um.priority.c_str(), um.message.c_str()
         );
     }
diff --git a/sched/hr.cpp b/sched/hr.cpp
index 910e26c..e93fba6 100644
--- a/sched/hr.cpp
+++ b/sched/hr.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2016 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -15,11 +15,15 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// Logic for assigning hosts to homogeneous redundancy (HR) classes
+
 #include "error_numbers.h"
 #include "str_util.h"
 
 #include "hr.h"
 
+// HR class is encoded as cpu_type + 128*os_type
+
 const int nocpu = 1;
 const int Intel = 2;
 const int AMD = 3;
@@ -41,25 +45,34 @@ const int IntelPentiumM = 18;
 const int AMDAthlonMP = 19;
 const int AMDTurion = 20;
 const int IntelCore2 = 21;
+const int ARM = 22;
 
 const int noos = 128;
 const int Linux = 256;
 const int Windows = 384;
 const int Darwin = 512;
 const int freebsd = 640;
+const int android = 768;
+
+#define MAX_HR_CLASS    (768+128)
 
 inline int os(HOST& host){
     if (strcasestr(host.os_name, "Linux")) return Linux;
     else if (strcasestr(host.os_name, "Windows")) return Windows;
     else if (strcasestr(host.os_name, "Darwin")) return Darwin;
     else if (strcasestr(host.os_name, "FreeBSD")) return freebsd;
+    else if (strcasestr(host.os_name, "Android")) return android;
     else return noos;
 };
 
 inline int cpu_coarse(HOST& host){
     if (strcasestr(host.p_vendor, "Intel")) return Intel;
-    if (strcasestr(host.p_vendor, "AMD")) return AMD;
+    //if (strcasestr(host.p_vendor, "AMD")) return AMD;
+    if (strcasestr(host.p_vendor, "AMD")) return Intel;
     if (strcasestr(host.p_vendor, "Macintosh")) return Macintosh;
+    if (strcasestr(host.p_vendor, "ARM")) return ARM;
+    if (strstr(host.p_model, "ARM")) return ARM;
+        // sometimes p_vendor is blank but p_model contains ARM
     return nocpu;
 }
 
@@ -112,6 +125,7 @@ inline int cpu_fine(HOST& host){
         return AMD;
     }
     if (strcasestr(host.p_vendor, "Macintosh")) return Macintosh;
+    if (strcasestr(host.p_vendor, "ARM")) return ARM;
     return nocpu;
 };
 
@@ -122,13 +136,7 @@ int hr_class(HOST& host, int hr_type) {
     case 1:
         return os(host) + cpu_fine(host);
     case 2:
-        switch (os(host)) {
-        case Windows:
-        case Linux:
-            return os(host);
-        case Darwin:
-            return os(host) + cpu_coarse(host);
-        }
+        return os(host) + cpu_coarse(host);
     }
     return 0;
 }
@@ -158,4 +166,4 @@ bool hr_unknown_class(HOST& host, int hr_type) {
 }
 
 const char* hr_names[HR_NTYPES] = {"", "fine", "coarse"};
-int hr_nclasses[HR_NTYPES] = {0, 768, 768};
+int hr_nclasses[HR_NTYPES] = {0, MAX_HR_CLASS, MAX_HR_CLASS};
diff --git a/sched/hr.h b/sched/hr.h
index 7bea88d..c1dad75 100644
--- a/sched/hr.h
+++ b/sched/hr.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _HR_H_
-#define _HR_H_
+#ifndef BOINC_HR_H
+#define BOINC_HR_H
 
 #include "boinc_db.h"
 
diff --git a/sched/hr_info.cpp b/sched/hr_info.cpp
index d9d43a1..34d5e0b 100644
--- a/sched/hr_info.cpp
+++ b/sched/hr_info.cpp
@@ -15,6 +15,10 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// logic for handling the HR info file (hr_info.txt)
+// which is written by census.cpp
+// and used by the feeder to assign job array slots to HR classes
+
 #include "hr_info.h"
 
 #ifndef _USING_FCGI_
diff --git a/sched/hr_info.h b/sched/hr_info.h
index f8eed32..1d25924 100644
--- a/sched/hr_info.h
+++ b/sched/hr_info.h
@@ -22,8 +22,8 @@
 // The RAC info is obtained by census.php,
 // which writes it to a file read by the feeder.
 
-#ifndef _HR_INFO_
-#define _HR_INFO_
+#ifndef BOINC_HR_INFO_H
+#define BOINC_HR_INFO_H
 
 #include "hr.h"
 
diff --git a/sched/make_work.cpp b/sched/make_work.cpp
index ba98949..358dc9f 100644
--- a/sched/make_work.cpp
+++ b/sched/make_work.cpp
@@ -25,7 +25,6 @@
 // Create WU and result records as needed to maintain a pool of work
 // (for testing purposes).
 // Clones the WU of the given name.
-//
 
 #include "config.h"
 #include <sys/param.h>
@@ -152,15 +151,16 @@ void make_new_wu(DB_WORKUNIT& original_wu, char* starting_xml, int start_time) {
 // This keeps us from getting infinitely far ahead of the transitioner
 // (e.g. if the transitioner isn't running)
 //
-void wait_for_results(int wu_id) {
+void wait_for_results(DB_ID_TYPE wu_id) {
     DB_RESULT result;
-    int count, retval;
+    int retval;
+    long count;
     char buf[256];
 
-    sprintf(buf, "where workunitid=%d", wu_id);
+    sprintf(buf, "where workunitid=%lu", wu_id);
     while (1) {
         retval = result.count(count, buf);
-        log_messages.printf(MSG_DEBUG, "result.count for %d returned %d, error: %s\n",
+        log_messages.printf(MSG_DEBUG, "result.count for %lu returned %ld, error: %s\n",
             wu_id, count, boincerror(retval)
         );
         if (retval) {
@@ -216,7 +216,7 @@ void make_work(vector<string> &wu_names) {
 
     while (1) {
         check_stop_daemons();
-        int unsent_results;
+        long unsent_results;
 
         retval = count_unsent_results(unsent_results, wus[0].appid);
         if (retval) {
@@ -225,7 +225,7 @@ void make_work(vector<string> &wu_names) {
             );
             exit(1);
         }
-        int total_wus=0;
+        long total_wus=0;
         if (max_wus) {
             retval = count_workunits(total_wus, "");
             if (retval) {
@@ -236,7 +236,7 @@ void make_work(vector<string> &wu_names) {
             }
         }
         log_messages.printf(
-            MSG_DEBUG, "unsent: %d cushion: %d\n",
+            MSG_DEBUG, "unsent: %ld cushion: %d\n",
             unsent_results, cushion
         );
         if (unsent_results > cushion) {
@@ -246,7 +246,7 @@ void make_work(vector<string> &wu_names) {
 
         int results_needed = cushion - unsent_results;
 
-        int new_wu_id = 0;
+        DB_ID_TYPE new_wu_id = 0;
         while (1) {
             DB_WORKUNIT& wu = wus[index++];
             if (index == nwu_names) index=0;
diff --git a/sched/makefile_validator_test b/sched/makefile_validator_test
index 796ede1..da88ddf 100644
--- a/sched/makefile_validator_test
+++ b/sched/makefile_validator_test
@@ -5,7 +5,8 @@
 VALIDATOR_SRC = sample_bitwise_validator.cpp
 
 # where libmysqlclient is
-MYSQL_LIB_DIR = /usr/lib64/mysql
+MYSQL_LIB := $(shell mysql_config --libs)
+MYSQL_INC := $(shell mysql_config --include)
 
-validator_test: validator_test.cpp $(VALIDATOR_SRC)
-	g++ -g -I.. -I../lib -I../db -o validator_test validator_test.cpp $(VALIDATOR_SRC) validate_util.o -L . -lsched -L ../lib -lboinc -L $(MYSQL_LIB_DIR) -lmysqlclient
+validator_test: validator_test.cpp $(VALIDATOR_SRC) makefile_validator_test
+	g++ -g -I.. -I../lib -I../db $(MYSQL_INC) -o validator_test validator_test.cpp $(VALIDATOR_SRC) validate_util.o -L . -lsched -L ../lib -lboinc $(MYSQL_LIB)
diff --git a/sched/message_handler.cpp b/sched/message_handler.cpp
index c409648..c863c05 100644
--- a/sched/message_handler.cpp
+++ b/sched/message_handler.cpp
@@ -15,7 +15,6 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-//
 // message_handler - check and validate new messages
 //  [--d debug_level]
 //  [--one_pass]     // make one pass through table, then exit
diff --git a/sched/plan_class_spec.cpp b/sched/plan_class_spec.cpp
index 7eb09ea..53e652e 100644
--- a/sched/plan_class_spec.cpp
+++ b/sched/plan_class_spec.cpp
@@ -18,6 +18,9 @@
 // Support for plan classes defined using an XML file.
 // See https://boinc.berkeley.edu/trac/wiki/AppPlanSpec
 
+// logic for handling an XML specification of plan classes
+// see https://boinc.berkeley.edu/trac/wiki/AppPlanConfig
+
 #include <cmath>
 
 #include "util.h"
@@ -268,7 +271,7 @@ bool PLAN_CLASS_SPEC::check(SCHEDULER_REQUEST& sreq, HOST_USAGE& hu) {
                     sreq.host.os_version
                 );
             }
-            return false;
+            if (min_android_version>0) return false;
         }
         if (min_android_version && (host_android_version < min_android_version)) {
             if (config.debug_version_select) {
@@ -803,9 +806,9 @@ bool PLAN_CLASS_SPEC::check(SCHEDULER_REQUEST& sreq, HOST_USAGE& hu) {
                 );
             }
         }
-    // CPU only
-    //
     } else {
+        // CPU only
+        //
         if (avg_ncpus) {
             hu.avg_ncpus = avg_ncpus;
         } else {
@@ -815,12 +818,49 @@ bool PLAN_CLASS_SPEC::check(SCHEDULER_REQUEST& sreq, HOST_USAGE& hu) {
                 } else {
                     hu.avg_ncpus = max_threads;
                 }
+
+                // if per-CPU mem usage given
+                //
+                if (mem_usage_per_cpu) {
+                    if (!min_ncpus) min_ncpus = 1;
+                    double mem_usage_seq = mem_usage_base + min_ncpus*mem_usage_per_cpu;
+
+                    // see if client has enough memory to run at all
+                    //
+                    if (mem_usage_seq > g_wreq->usable_ram) {
+                        if (config.debug_version_select) {
+                            log_messages.printf(MSG_NORMAL,
+                                "[version] plan_class_spec: insufficient multicore RAM; %f < %f",
+                                g_wreq->usable_ram, mem_usage_seq
+                            );
+                        }
+                        return false;
+                    }
+
+                    // see how many CPUs we could use given memory usage
+                    //
+                    int n = (g_wreq->usable_ram - mem_usage_base)/mem_usage_per_cpu;
+                    // don't use more than this many
+                    //
+                    if (n < hu.avg_ncpus) {
+                        hu.avg_ncpus = n;
+                    }
+
+                    // compute memory usage; overrides wu.rsc_memory_bound
+                    //
+                    hu.mem_usage = mem_usage_base + hu.avg_ncpus*mem_usage_per_cpu;
+                    char buf[256];
+                    sprintf(buf, " --memory_size_mb %.0f", hu.mem_usage/MEGA);
+                    strcat(hu.cmdline, buf);
+                }
             } else {
                 hu.avg_ncpus = 1;
             }
         }
         if (nthreads_cmdline) {
-            sprintf(hu.cmdline, "--nthreads %d", (int)hu.avg_ncpus);
+            char buf[256];
+            sprintf(buf, " --nthreads %d", (int)hu.avg_ncpus);
+            strcat(hu.cmdline, buf);
         }
 
         hu.peak_flops = capped_host_fpops() * hu.avg_ncpus;
@@ -877,6 +917,14 @@ int PLAN_CLASS_SPEC::parse(XML_PARSER& xp) {
         }
         if (xp.parse_double("min_ncpus", min_ncpus)) continue;
         if (xp.parse_int("max_threads", max_threads)) continue;
+        if (xp.parse_double("mem_usage_base_mb", mem_usage_base)) {
+            mem_usage_base *= MEGA;
+            continue;
+        }
+        if (xp.parse_double("mem_usage_per_cpu_mb", mem_usage_per_cpu)) {
+            mem_usage_per_cpu *= MEGA;
+            continue;
+        }
         if (xp.parse_bool("nthreads_cmdline", nthreads_cmdline)) continue;
         if (xp.parse_double("projected_flops_scale", projected_flops_scale)) continue;
         if (xp.parse_str("os_regex", buf, sizeof(buf))) {
@@ -992,6 +1040,8 @@ PLAN_CLASS_SPEC::PLAN_CLASS_SPEC() {
     is64bit = false;
     min_ncpus = 0;
     max_threads = 1;
+    mem_usage_base = 0;
+    mem_usage_per_cpu = 0;
     nthreads_cmdline = false;
     projected_flops_scale = 1;
     have_os_regex = false;
diff --git a/sched/plan_class_spec.h b/sched/plan_class_spec.h
index 3a26ce1..aae097b 100644
--- a/sched/plan_class_spec.h
+++ b/sched/plan_class_spec.h
@@ -36,6 +36,8 @@ struct PLAN_CLASS_SPEC {
     std::vector<std::string> cpu_features;
     double min_ncpus;
     int max_threads;
+    double mem_usage_base;
+    double mem_usage_per_cpu;
     bool nthreads_cmdline;
     double projected_flops_scale;
     bool have_os_regex;
diff --git a/sched/sample_assimilator.cpp b/sched/sample_assimilator.cpp
index 453fe1a..deff69c 100644
--- a/sched/sample_assimilator.cpp
+++ b/sched/sample_assimilator.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -29,14 +29,19 @@
 #include "sched_msgs.h"
 #include "validate_util.h"
 #include "sched_config.h"
+#include "assimilate_handler.h"
 
 using std::vector;
 using std::string;
 
+const char* outdir = "sample_results";
+
 int write_error(char* p) {
     static FILE* f = 0;
     if (!f) {
-        f = fopen(config.project_path("sample_results/errors"), "a");
+        char path[1024];
+        sprintf(path, "%s/errors", outdir);
+        f = fopen(config.project_path(path), "a");
         if (!f) return ERR_FOPEN;
     }
     fprintf(f, "%s", p);
@@ -44,6 +49,25 @@ int write_error(char* p) {
     return 0;
 }
 
+int assimilate_handler_init(int argc, char** argv) {
+    for (int i=1; i<argc; i++) {
+        if (!strcmp(argv[i], "--outdir")) {
+            outdir = argv[++i];
+        } else {
+            fprintf(stderr, "bad arg %s\n", argv[i]);
+        }
+    }
+    return 0;
+}
+
+void assimilate_handler_usage() {
+    // describe the project specific arguments here
+    fprintf(stderr,
+        "    Custom options:\n"
+        "    [--outdir X]  output dir for result files\n"
+    );
+}
+
 int assimilate_handler(
     WORKUNIT& wu, vector<RESULT>& /*results*/, RESULT& canonical_result
 ) {
@@ -51,7 +75,7 @@ int assimilate_handler(
     char buf[1024];
     unsigned int i;
 
-    retval = boinc_mkdir(config.project_path("sample_results"));
+    retval = boinc_mkdir(config.project_path(outdir));
     if (retval) return retval;
 
     if (wu.canonical_resultid) {
@@ -63,19 +87,19 @@ int assimilate_handler(
         for (i=0; i<n; i++) {
             OUTPUT_FILE_INFO& fi = output_files[i];
             if (n==1) {
-                copy_path = config.project_path("sample_results/%s", wu.name);
+                sprintf(buf, "%s/%s", outdir, wu.name);
             } else {
-                copy_path = config.project_path("sample_results/%s_%d", wu.name, i);
+                sprintf(buf, "%s/%s_%d", outdir, wu.name, i);
             }
+            copy_path = config.project_path(buf);
             retval = boinc_copy(fi.path.c_str() , copy_path);
             if (!retval) {
                 file_copied = true;
             }
         }
         if (!file_copied) {
-            copy_path = config.project_path(
-                "sample_results/%s_%s", wu.name, "no_output_files"
-            );
+            sprintf(buf, "%s/%s_no_output_files", outdir, wu.name);
+            copy_path = config.project_path(buf);
             FILE* f = fopen(copy_path, "w");
             if (!f) return ERR_FOPEN;
             fclose(f);
diff --git a/sched/sample_bitwise_validator.cpp b/sched/sample_bitwise_validator.cpp
index bd3891d..9afeaec 100644
--- a/sched/sample_bitwise_validator.cpp
+++ b/sched/sample_bitwise_validator.cpp
@@ -38,7 +38,6 @@
 using std::string;
 using std::vector;
 
-bool first = true;
 bool is_gzip = false;
     // if true, files are gzipped; skip header when comparing
 
@@ -47,6 +46,25 @@ struct FILE_CKSUM_LIST {
     ~FILE_CKSUM_LIST(){}
 };
 
+int validate_handler_init(int argc, char** argv) {
+    // handle project specific arguments here
+    for (int i=1; i<argc; i++) {
+        if (is_arg(argv[i], "is_gzip")) {
+            is_gzip = true;
+        }
+    }
+    return 0;
+}
+
+void validate_handler_usage() {
+    // describe the project specific arguments here
+    fprintf(stderr,
+        "    Custom options:\n"
+        "    [--is_gzip]  files are gzipped; skip header when comparing\n"
+    );
+}
+
+
 bool files_match(FILE_CKSUM_LIST& f1, FILE_CKSUM_LIST& f2) {
     if (f1.files.size() != f2.files.size()) return false;
     for (unsigned int i=0; i<f1.files.size(); i++) {
@@ -55,14 +73,6 @@ bool files_match(FILE_CKSUM_LIST& f1, FILE_CKSUM_LIST& f2) {
     return true;
 }
 
-void parse_cmdline() {
-    for (int i=1; i<g_argc; i++) {
-        if (!strcmp(g_argv[i], "--is_gzip")) {
-            is_gzip = true;
-        }
-    }
-}
-
 int init_result(RESULT& result, void*& data) {
     int retval;
     FILE_CKSUM_LIST* fcl = new FILE_CKSUM_LIST;
@@ -70,15 +80,10 @@ int init_result(RESULT& result, void*& data) {
     char md5_buf[MD5_LEN];
     double nbytes;
 
-    if (first) {
-        parse_cmdline();
-        first = false;
-    }
-
     retval = get_output_file_infos(result, files);
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "[RESULT#%u %s] check_set: can't get output filenames\n",
+            "[RESULT#%lu %s] check_set: can't get output filenames\n",
             result.id, result.name
         );
         delete fcl;
@@ -95,7 +100,7 @@ int init_result(RESULT& result, void*& data) {
                     // indicate file is missing; not the same as md5("")
             } else {
                 log_messages.printf(MSG_CRITICAL,
-                    "[RESULT#%u %s] md5_file() failed for %s: %s\n",
+                    "[RESULT#%lu %s] md5_file() failed for %s: %s\n",
                     result.id, result.name, fi.path.c_str(), boincerror(retval)
                 );
                 return retval;
diff --git a/sched/sample_dummy_assimilator.cpp b/sched/sample_dummy_assimilator.cpp
index 258bd2f..4759b8c 100644
--- a/sched/sample_dummy_assimilator.cpp
+++ b/sched/sample_dummy_assimilator.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -31,6 +31,18 @@
 using std::vector;
 using std::string;
 
+int assimilate_handler_init(int, char**) {
+    return 0;
+}
+
+void assimilate_handler_usage() {
+    // describe the project specific arguments here
+    //fprintf(stderr,
+    //    "    Custom options:\n"
+    //    "    [--project_option X]  a project specific option\n"
+    //);
+}
+
 int assimilate_handler(
     WORKUNIT& wu, vector<RESULT>& /*results*/, RESULT& canonical_result
 ) {
diff --git a/sched/sample_substr_validator.cpp b/sched/sample_substr_validator.cpp
index d7c7387..16b0669 100644
--- a/sched/sample_substr_validator.cpp
+++ b/sched/sample_substr_validator.cpp
@@ -22,43 +22,58 @@
 // --reject_if_present: reject (invalidate) the result if the string is present
 // (default: accept it if the string is present)
 
+#include <vector>
+
 #include "sched_msgs.h"
+#include "sched_util_basic.h"
 #include "validate_util2.h"
 #include "validator.h"
 
-bool first = true;
-char* stderr_string;
+using std::vector;
+
+vector<char*> stderr_strings;
 bool reject_if_present = false;
 
-void parse_cmdline() {
+int validate_handler_init(int argc, char** argv) {
+    // handle project specific arguments here
     bool found = false;
-    for (int i=1; i<g_argc; i++) {
-        if (!strcmp(g_argv[i], "--stderr_string")) {
-            stderr_string = g_argv[++i];
+    for (int i=1; i<argc; i++) {
+        if (is_arg(argv[i], "stderr_string")) {
+            stderr_strings.push_back(argv[++i]);
             found = true;
-        }
-        if (!strcmp(g_argv[i], "--reject_if_present")) {
+        } else if (is_arg(argv[i], "reject_if_present")) {
             reject_if_present = true;
         }
     }
+
     if (!found) {
         log_messages.printf(MSG_CRITICAL,
             "--stderr_string missing from command line\n"
         );
-        exit(1);
+        return 1;
     }
+    return 0;
+}
+
+void validate_handler_usage() {
+    // describe the project specific arguments here
+    fprintf(stderr,
+        "    Custom options:\n"
+        "    --stderr_string X     accept task if X is present in stderr_out\n"
+        "    [--reject_if_present] reject (invalidate) the task if X is present\n"
+    );
 }
 
 int init_result(RESULT& r, void*&) {
-    if (first) {
-        parse_cmdline();
-        first = false;
-    }
-    if (strstr(r.stderr_out, stderr_string)) {
-        return reject_if_present?-1:0;
-    } else {
-        return reject_if_present?0:-1;
+    for(unsigned int i=0; i<stderr_strings.size(); i++) {
+        char* stderr_string = stderr_strings[i];
+        if (strstr(r.stderr_out, stderr_string)) {
+            if (reject_if_present) return -1;
+        } else {
+            if (!reject_if_present) return -1;
+        }
     }
+    return 0;
 }
 
 int compare_results(RESULT&, void*, RESULT const&, void*, bool& match) {
diff --git a/sched/sample_trivial_validator.cpp b/sched/sample_trivial_validator.cpp
index 85913e4..b46dbe0 100644
--- a/sched/sample_trivial_validator.cpp
+++ b/sched/sample_trivial_validator.cpp
@@ -19,6 +19,19 @@
 
 #include "validate_util2.h"
 
+int validate_handler_init(int, char**) {
+    return 0;
+}
+
+void validate_handler_usage() {
+    // describe the project specific arguments here
+    //fprintf(stderr,
+    //    "    Custom options:\n"
+    //    "    [--project_option X]  a project specific option\n"
+    //);
+}
+
+
 int init_result(RESULT&, void*&) {
     return 0;
 }
diff --git a/sched/sample_work_generator.cpp b/sched/sample_work_generator.cpp
index 896d515..03077e9 100644
--- a/sched/sample_work_generator.cpp
+++ b/sched/sample_work_generator.cpp
@@ -126,7 +126,7 @@ void main_loop() {
 
     while (1) {
         check_stop_daemons();
-        int n;
+        long n;
         retval = count_unsent_results(n, app.id);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
diff --git a/sched/sched_array.cpp b/sched/sched_array.cpp
index b0b93a9..661dbf8 100644
--- a/sched/sched_array.cpp
+++ b/sched/sched_array.cpp
@@ -15,9 +15,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// The "old style" scheduler, where we make multiple scans through
-// the job cache.
-// This will soon be deprecated in favor of score-based scheduling.
+// The "old style" scheduler,
+// where we make multiple scans through the job cache.
+// DEPRECATED - replaced by score-based scheduling.
 
 #include <cstdlib>
 #include <string>
@@ -68,7 +68,7 @@ static bool quick_check(
         }
         if (config.debug_send_job) {
             log_messages.printf(MSG_NORMAL,
-                "[send_job] [HOST#%d] beta work found: [RESULT#%u]\n",
+                "[send_job] [HOST#%lu] beta work found: [RESULT#%lu]\n",
                 g_reply->host.id, wu_result.resultid
             );
         }
@@ -168,7 +168,7 @@ static bool quick_check(
             g_wreq->no_allowed_apps_available = true;
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [USER#%d] [WU#%u] user doesn't want work for app %s\n",
+                    "[send_job] [USER#%lu] [WU#%lu] user doesn't want work for app %s\n",
                     g_reply->user.id, wu.id, app->name
                 );
             }
@@ -188,7 +188,7 @@ static bool quick_check(
     if (retval) {
         if (retval != last_retval && config.debug_send_job) {
             log_messages.printf(MSG_NORMAL,
-                "[send_job] [HOST#%d] [WU#%u %s] WU is infeasible: %s\n",
+                "[send_job] [HOST#%lu] [WU#%lu %s] WU is infeasible: %s\n",
                 g_reply->host.id, wu.id, wu.name, infeasible_string(retval)
             );
         }
@@ -259,7 +259,7 @@ recheck:
         app = ssp->lookup_app(wu_result.workunit.appid);
         if (app == NULL) {
             log_messages.printf(MSG_CRITICAL,
-                "[WU#%u] no app\n",
+                "[WU#%lu] no app\n",
                 wu_result.workunit.id
             );
             continue; // this should never happen
@@ -381,7 +381,7 @@ void send_work_old() {
     // (projects should load beta work with care,
     // otherwise your users won't get production work done!
     //
-    if (g_wreq->allow_beta_work) {
+    if (g_wreq->project_prefs.allow_beta_work) {
         g_wreq->beta_only = true;
         if (config.debug_send_scan) {
             log_messages.printf(MSG_NORMAL,
@@ -429,12 +429,12 @@ void send_work_old() {
     // If user has selected apps but will accept any,
     // and we haven't found any jobs for selected apps, try others
     //
-    if (!g_wreq->njobs_sent && g_wreq->allow_non_preferred_apps ) {
+    if (!g_wreq->njobs_sent && g_wreq->project_prefs.allow_non_selected_apps ) {
         g_wreq->user_apps_only = false;
-        preferred_app_message_index = g_wreq->no_work_messages.size();
+        selected_app_message_index = g_wreq->no_work_messages.size();
         if (config.debug_send_scan) {
             log_messages.printf(MSG_NORMAL,
-                "[send_scan] scanning for jobs from non-preferred applications\n"
+                "[send_scan] scanning for jobs from non-selected applications\n"
             );
         }
         if (scan_work_array()) return;
diff --git a/sched/sched_assign.cpp b/sched/sched_assign.cpp
index 8b1865e..7be0700 100644
--- a/sched/sched_assign.cpp
+++ b/sched/sched_assign.cpp
@@ -69,7 +69,7 @@ bool need_targeted_instance(WORKUNIT& wu, int hostid) {
     char buf[256];
     DB_RESULT result;
     int nunsent=0, ninprogress=0, nsuccess=0;
-    sprintf(buf, "where workunitid=%d", wu.id);
+    sprintf(buf, "where workunitid=%lu", wu.id);
     while (!result.enumerate(buf)) {
         // send at most 1 instance to a given host
         //
@@ -124,7 +124,7 @@ static int send_assigned_job(ASSIGNMENT& asg) {
     retval = wu.lookup_id(asg.workunitid);
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "assigned WU %d not found\n", asg.workunitid
+            "assigned WU %lu not found\n", asg.workunitid
         );
         return retval;
     }
@@ -151,18 +151,18 @@ static int send_assigned_job(ASSIGNMENT& asg) {
     );
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "[WU#%u %s] create_result(): %s\n", wu.id, wu.name, boincerror(retval)
+            "[WU#%lu %s] create_result(): %s\n", wu.id, wu.name, boincerror(retval)
         );
         return retval;
     }
-    int result_id = boinc_db.insert_id();
+    DB_ID_TYPE result_id = boinc_db.insert_id();
     SCHED_DB_RESULT result;
     retval = result.lookup_id(result_id);
     add_result_to_reply(result, wu, bavp, false);
 
     if (config.debug_assignment) {
         log_messages.printf(MSG_NORMAL,
-            "[assign] [WU#%u] [RESULT#%u] [HOST#%d] send assignment %d\n",
+            "[assign] [WU#%lu] [RESULT#%lu] [HOST#%lu] send assignment %lu\n",
             wu.id, result_id, g_reply->host.id, asg.id
         );
     }
@@ -191,7 +191,7 @@ bool send_broadcast_jobs() {
         //
         switch (asg.target_type) {
         case ASSIGN_NONE:
-            sprintf(buf, "where hostid=%d and workunitid=%d",
+            sprintf(buf, "where hostid=%lu and workunitid=%lu",
                 g_reply->host.id, asg.workunitid
             );
             retval = result.lookup(buf);
@@ -202,7 +202,7 @@ bool send_broadcast_jobs() {
             break;
         case ASSIGN_USER:
             if (g_reply->user.id != asg.target_id) continue;
-            sprintf(buf, "where workunitid=%d and hostid=%d",
+            sprintf(buf, "where workunitid=%lu and hostid=%lu",
                 asg.workunitid, g_reply->host.id
             );
             retval = result.lookup(buf);
@@ -213,7 +213,9 @@ bool send_broadcast_jobs() {
             break;
         case ASSIGN_TEAM:
             if (g_reply->team.id != asg.target_id) continue;
-            sprintf(buf, "where workunitid=%d and hostid=%d", asg.workunitid, g_reply->host.id);
+            sprintf(buf, "where workunitid=%lu and hostid=%lu",
+                asg.workunitid, g_reply->host.id
+            );
             retval = result.lookup(buf);
             if (retval == ERR_DB_NOT_FOUND) {
                 retval = send_assigned_job(asg);
@@ -239,17 +241,17 @@ bool send_jobs(int assign_type) {
 
     switch (assign_type) {
     case ASSIGN_USER:
-        sprintf(query, "where target_type=%d and target_id=%d and multi=0",
+        sprintf(query, "where target_type=%d and target_id=%lu and multi=0",
             ASSIGN_USER, g_reply->user.id
         );
         break;
     case ASSIGN_HOST:
-        sprintf(query, "where target_type=%d and target_id=%d and multi=0",
+        sprintf(query, "where target_type=%d and target_id=%lu and multi=0",
             ASSIGN_HOST, g_reply->host.id
         );
         break;
     case ASSIGN_TEAM:
-        sprintf(query, "where target_type=%d and target_id=%d and multi=0",
+        sprintf(query, "where target_type=%d and target_id=%lu and multi=0",
             ASSIGN_TEAM, g_reply->team.id
         );
         break;
diff --git a/sched/sched_check.cpp b/sched/sched_check.cpp
index fef19b3..a34a6e3 100644
--- a/sched/sched_check.cpp
+++ b/sched/sched_check.cpp
@@ -50,10 +50,10 @@ const char* infeasible_string(int code) {
 bool app_not_selected(int appid) {
     unsigned int i;
 
-    if (g_wreq->preferred_apps.size() == 0) return false;
-    for (i=0; i<g_wreq->preferred_apps.size(); i++) {
-        if (appid == g_wreq->preferred_apps[i].appid) {
-            g_wreq->preferred_apps[i].work_available = true;
+    if (g_wreq->project_prefs.selected_apps.size() == 0) return false;
+    for (i=0; i<g_wreq->project_prefs.selected_apps.size(); i++) {
+        if (appid == g_wreq->project_prefs.selected_apps[i].appid) {
+            g_wreq->project_prefs.selected_apps[i].work_available = true;
             return false;
         }
     }
@@ -73,7 +73,7 @@ static inline int check_memory(WORKUNIT& wu) {
 
         if (config.debug_send_job) {
             log_messages.printf(MSG_NORMAL,
-                "[send_job] [WU#%u %s] needs %0.2fMB RAM; [HOST#%d] has %0.2fMB, %0.2fMB usable\n",
+                "[send_job] [WU#%lu %s] needs %0.2fMB RAM; [HOST#%lu] has %0.2fMB, %0.2fMB usable\n",
                 wu.id, wu.name, wu.rsc_memory_bound/MEGA,
                 g_reply->host.id, g_wreq->ram/MEGA, g_wreq->usable_ram/MEGA
             );
@@ -210,7 +210,7 @@ static inline int check_deadline(
     if (get_estimated_delay(bav) == 0 && !hard_app(app)) {
         if (config.debug_send_job) {
             log_messages.printf(MSG_NORMAL,
-                "[send_job] [WU#%u] est delay 0, skipping deadline check\n",
+                "[send_job] [WU#%lu] est delay 0, skipping deadline check\n",
                 wu.id
             );
         }
@@ -249,7 +249,7 @@ static inline int check_deadline(
         if (diff > 0) {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [WU#%u] deadline miss %d > %d\n",
+                    "[send_job] [WU#%lu] deadline miss %d > %d\n",
                     wu.id, (int)est_report_delay, wu.delay_bound
                 );
             }
@@ -258,7 +258,7 @@ static inline int check_deadline(
         } else {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [WU#%u] meets deadline: %.2f + %.2f < %d\n",
+                    "[send_job] [WU#%lu] meets deadline: %.2f + %.2f < %d\n",
                     wu.id, get_estimated_delay(bav), ewd, wu.delay_bound
                 );
             }
@@ -305,7 +305,7 @@ int wu_is_infeasible_fast(
         if (hr_unknown_class(g_reply->host, app_hr_type(app))) {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [HOST#%d] [WU#%u %s] host is of unknown class in HR type %d\n",
+                    "[send_job] [HOST#%lu] [WU#%lu %s] host is of unknown class in HR type %d\n",
                     g_reply->host.id, wu.id, wu.name, app_hr_type(app)
                 );
             }
@@ -314,7 +314,7 @@ int wu_is_infeasible_fast(
         if (already_sent_to_different_hr_class(wu, app)) {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [HOST#%d] [WU#%u %s] failed quick HR check: WU is class %d, host is class %d\n",
+                    "[send_job] [HOST#%lu] [WU#%lu %s] failed quick HR check: WU is class %d, host is class %d\n",
                     g_reply->host.id, wu.id, wu.name, wu.hr_class, hr_class(g_request->host, app_hr_type(app))
                 );
             }
@@ -325,11 +325,11 @@ int wu_is_infeasible_fast(
     // homogeneous app version
     //
     if (app.homogeneous_app_version) {
-        int avid = wu.app_version_id;
+        DB_ID_TYPE avid = wu.app_version_id;
         if (avid && bav.avp->id != avid) {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [HOST#%d] [WU#%u %s] failed homogeneous app version check: %d %d\n",
+                    "[send_job] [HOST#%lu] [WU#%lu %s] failed homogeneous app version check: %lu %lu\n",
                     g_reply->host.id, wu.id, wu.name, avid, bav.avp->id
                 );
             }
@@ -385,7 +385,8 @@ int slow_check(
     APP* app,
     BEST_APP_VERSION* bavp      // the app version to be used
 ) {
-    int n, retval;
+    int retval;
+    long n;
     DB_RESULT result;
     char buf[256];
     WORKUNIT& wu = wu_result.workunit;
@@ -394,7 +395,7 @@ int slow_check(
     //
     if (config.one_result_per_user_per_wu) {
         sprintf(buf,
-            "where workunitid=%d and userid=%d", wu.id, g_reply->user.id
+            "where workunitid=%lu and userid=%lu", wu.id, g_reply->user.id
         );
         retval = result.count(n, buf);
         if (retval) {
@@ -406,7 +407,7 @@ int slow_check(
             if (n>0) {
                 if (config.debug_send_job) {
                     log_messages.printf(MSG_NORMAL,
-                        "[send_job] [USER#%d] already has %d result(s) for [WU#%u]\n",
+                        "[send_job] [USER#%lu] already has %ld result(s) for [WU#%lu]\n",
                         g_reply->user.id, n, wu.id
                     );
                 }
@@ -418,7 +419,7 @@ int slow_check(
         // We only have to check this if we don't send one result per user.
         //
         sprintf(buf,
-            "where workunitid=%d and hostid=%d", wu.id, g_reply->host.id
+            "where workunitid=%lu and hostid=%lu", wu.id, g_reply->host.id
         );
         retval = result.count(n, buf);
         if (retval) {
@@ -430,7 +431,7 @@ int slow_check(
             if (n>0) {
                 if (config.debug_send_job) {
                     log_messages.printf(MSG_NORMAL,
-                        "[send_job] [HOST#%d] already has %d result(s) for [WU#%u]\n",
+                        "[send_job] [HOST#%lu] already has %ld result(s) for [WU#%lu]\n",
                         g_reply->host.id, n, wu.id
                     );
                 }
@@ -451,7 +452,7 @@ int slow_check(
         );
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "can't get fields for [WU#%u]: %s\n", db_wu.id, boincerror(retval)
+                "can't get fields for [WU#%lu]: %s\n", db_wu.id, boincerror(retval)
             );
             return 1;
         }
@@ -467,7 +468,7 @@ int slow_check(
             if (already_sent_to_different_hr_class(wu, *app)) {
                 if (config.debug_send_job) {
                     log_messages.printf(MSG_NORMAL,
-                        "[send_job] [HOST#%d] [WU#%u %s] is assigned to different HR class\n",
+                        "[send_job] [HOST#%lu] [WU#%lu %s] is assigned to different HR class\n",
                         g_reply->host.id, wu.id, wu.name
                     );
                 }
@@ -485,7 +486,7 @@ int slow_check(
             if (wu_avid && wu_avid != bavp->avp->id) {
                 if (config.debug_send_job) {
                     log_messages.printf(MSG_NORMAL,
-                        "[send_job] [HOST#%d] [WU#%u %s] is assigned to different app version\n",
+                        "[send_job] [HOST#%lu] [WU#%lu %s] is assigned to different app version\n",
                         g_reply->host.id, wu.id, wu.name
                     );
                 }
@@ -504,21 +505,21 @@ bool result_still_sendable(DB_RESULT& result, WORKUNIT& wu) {
     int retval = result.lookup_id(result.id);
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "[RESULT#%u] result.lookup_id() failed: %s\n",
+            "[RESULT#%lu] result.lookup_id() failed: %s\n",
             result.id, boincerror(retval)
         );
         return false;
     }
     if (result.server_state != RESULT_SERVER_STATE_UNSENT) {
         log_messages.printf(MSG_NORMAL,
-            "[RESULT#%u] expected to be unsent; instead, state is %d\n",
+            "[RESULT#%lu] expected to be unsent; instead, state is %d\n",
             result.id, result.server_state
         );
         return false;
     }
     if (result.workunitid != wu.id) {
         log_messages.printf(MSG_CRITICAL,
-            "[RESULT#%u] wrong WU ID: wanted %d, got %d\n",
+            "[RESULT#%lu] wrong WU ID: wanted %lu, got %lu\n",
             result.id, wu.id, result.workunitid
         );
         return false;
diff --git a/sched/sched_check.h b/sched/sched_check.h
index fb9fefe..59fca0f 100644
--- a/sched/sched_check.h
+++ b/sched/sched_check.h
@@ -16,8 +16,8 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 // values returned by wu_is_infeasible()
 
-#ifndef _SCHED_CHECK_
-#define _SCHED_CHECK_
+#ifndef BOINC_SCHED_CHECK_H
+#define BOINC_SCHED_CHECK_H
 
 #include "sched_shmem.h"
 #include "sched_types.h"
diff --git a/sched/sched_config.cpp b/sched/sched_config.cpp
index ce1091e..6a7bb4f 100644
--- a/sched/sched_config.cpp
+++ b/sched/sched_config.cpp
@@ -15,7 +15,7 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// Parse a server configuration file
+// Parse a project configuration file (config.xml)
 
 #ifdef _USING_FCGI_
 #include "boinc_fcgi.h"
diff --git a/sched/sched_config.h b/sched/sched_config.h
index 04cacb7..49385e6 100644
--- a/sched/sched_config.h
+++ b/sched/sched_config.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SCHED_CONFIG_
-#define _SCHED_CONFIG_
+#ifndef BOINC_SCHED_CONFIG_H
+#define BOINC_SCHED_CONFIG_H
 
 #include <regex.h>
 #include <vector>
diff --git a/sched/sched_customize.cpp b/sched/sched_customize.cpp
index 36487b8..a2a7e68 100644
--- a/sched/sched_customize.cpp
+++ b/sched/sched_customize.cpp
@@ -94,7 +94,11 @@ using std::string;
 
 GPU_REQUIREMENTS gpu_requirements[NPROC_TYPES];
 
-bool wu_is_infeasible_custom(WORKUNIT& wu, APP& app, BEST_APP_VERSION& bav) {
+bool wu_is_infeasible_custom(
+    WORKUNIT& /*wu*/,
+    APP& /*app*/,
+    BEST_APP_VERSION& /*bav*/
+) {
 #if 0
     // example 1: if WU name contains "_v1", don't use GPU apps.
     // Note: this is slightly suboptimal.
@@ -846,8 +850,10 @@ static inline bool app_plan_vbox(
     }
 
     // host must have VM acceleration in order to run hwaccel jobs
+    // NOTE: 64-bit VM's require hard acceleration extensions or they fail
+    // to boot.
     //
-    if (strstr(plan_class, "hwaccel")) {
+    if (strstr(plan_class, "hwaccel") || strstr(plan_class, "64")) {
         if ((!strstr(sreq.host.p_features, "vmx") && !strstr(sreq.host.p_features, "svm"))
             || sreq.host.p_vm_extensions_disabled
         ) {
@@ -887,11 +893,8 @@ static inline bool app_plan_vbox(
         if (can_use_multicore) {
             // Use number of usable CPUs, taking user prefs into account
             double ncpus = g_wreq->effective_ncpus;
-            // CernVM on average uses between 25%-50% of a second core
-            // Total on a dual-core machine is between 65%-75%
-            if (ncpus > 1.5) ncpus = 1.5;
             hu.avg_ncpus = ncpus;
-            hu.max_ncpus = 2.0;
+            hu.max_ncpus = ncpus;
             sprintf(hu.cmdline, "--nthreads %f", ncpus);
         }
         // use the non-mt version rather than the mt version with 1 CPU
@@ -935,7 +938,8 @@ bool app_plan(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu) {
             have_plan_class_spec = false;
         } else if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "Error parsing plan class spec file '%s'\n", buf
+                "Error parsing plan class spec file '%s': %s\n",
+                buf, boincerror(retval)
             );
             bad_plan_class_spec = true;
         } else {
diff --git a/sched/sched_customize.h b/sched/sched_customize.h
index 94ba792..b9ec202 100644
--- a/sched/sched_customize.h
+++ b/sched/sched_customize.h
@@ -14,8 +14,9 @@
 //
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
-#ifndef SCHED_CUSTOMIZE_H
-#define SCHED_CUSTOMIZE_H
+
+#ifndef BOINC_SCHED_CUSTOMIZE_H
+#define BOINC_SCHED_CUSTOMIZE_H
 
 #include "boinc_db.h"
 #include "sched_types.h"
diff --git a/sched/sched_driver.cpp b/sched/sched_driver.cpp
index 89ec8b0..694e0c7 100644
--- a/sched/sched_driver.cpp
+++ b/sched/sched_driver.cpp
@@ -164,6 +164,8 @@ int main(int argc, char** argv) {
                 exit(1);
             }
             nrequests = atoi(argv[i]);
+            if (nrequests < 0) nrequests = 0;
+            if (nrequests > 10000000) nrequests = 10000000;
         }
         else if (!strcmp(argv[i], "--reqs_per_second")) {
             if (!argv[++i]) {
diff --git a/sched/sched_files.cpp b/sched/sched_files.cpp
index 1c85410..649ef29 100644
--- a/sched/sched_files.cpp
+++ b/sched/sched_files.cpp
@@ -15,6 +15,10 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// functions for initiating deletion of sticky files on clients.
+// The project can supply a file "file_delete_regex"
+// which is a list of regular expressions for names of files to be deleted.
+
 #include <regex.h>
 #include <stdio.h>
 #include <vector>
diff --git a/sched/sched_hr.h b/sched/sched_hr.h
index 06bfc47..7cdca34 100644
--- a/sched/sched_hr.h
+++ b/sched/sched_hr.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef __SCHED_HR__
-#define __SCHED_HR__
+#ifndef BOINC_SCHED_HR_H
+#define BOINC_SCHED_HR_H
 
 extern bool already_sent_to_different_hr_class(WORKUNIT& workunit, APP&);
 
diff --git a/sched/sched_limit.cpp b/sched/sched_limit.cpp
index 7bf6b80..9b14c0e 100644
--- a/sched/sched_limit.cpp
+++ b/sched/sched_limit.cpp
@@ -15,6 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// logic for handling limits on numbers of jobs in progress per client.
+// See http://boinc.berkeley.edu/trac/wiki/ProjectOptions#Joblimits
 
 #include "sched_main.h"
 
diff --git a/sched/sched_limit.h b/sched/sched_limit.h
index 77c866e..e954b6c 100644
--- a/sched/sched_limit.h
+++ b/sched/sched_limit.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SCHED_LIMIT_
-#define _SCHED_LIMIT_
+#ifndef BOINC_SCHED_LIMIT_H
+#define BOINC_SCHED_LIMIT_H
 
 #include <vector>
 
@@ -30,6 +30,8 @@
 
 using std::vector;
 
+// represents a limit on # of jobs in progress for a given processor type
+//
 struct RSC_JOB_LIMIT {
     int base_limit;     // 0 means no limit
     int scaled_limit;   // the actual limit
@@ -69,6 +71,8 @@ struct RSC_JOB_LIMIT {
     }
 };
 
+// represents limits for a given app (or overall, if app_name is empty)
+//
 struct JOB_LIMIT {
     char app_name[256];
     RSC_JOB_LIMIT total;
@@ -105,6 +109,8 @@ struct JOB_LIMIT {
     void print_log();
 };
 
+// combined limits, overall and per app
+//
 struct JOB_LIMITS {
     JOB_LIMIT project_limits;      // project-wide limits
     vector<JOB_LIMIT> app_limits;  // per-app limits
diff --git a/sched/sched_locality.cpp b/sched/sched_locality.cpp
index ef74ae6..a98891f 100644
--- a/sched/sched_locality.cpp
+++ b/sched/sched_locality.cpp
@@ -15,7 +15,12 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// Locality scheduling: see doc/sched_locality.php
+// Locality scheduling: assign jobs to clients based on the data files
+// the client already has.
+//
+// Currently this is specific to Einstein at home and is not generally usable.
+// There's a generic but more limited version, "limited locality scheduling":
+// http://boinc.berkeley.edu/trac/wiki/LocalityScheduling
 
 #include "config.h"
 
@@ -82,7 +87,7 @@ int delete_file_from_host() {
         double maxdisk = max_allowable_disk();
 
         log_messages.printf(MSG_CRITICAL,
-            "[HOST#%d]: no disk space but no files we can delete!\n",
+            "[HOST#%lu]: no disk space but no files we can delete!\n",
             g_reply->host.id
         );
 
@@ -125,7 +130,7 @@ int delete_file_from_host() {
     g_reply->file_deletes.push_back(fi);
     if (config.debug_locality) {
         log_messages.printf(MSG_NORMAL,
-            "[locality] [HOST#%d]: delete file %s (make space)\n", g_reply->host.id, fi.name
+            "[locality] [HOST#%lu]: delete file %s (make space)\n", g_reply->host.id, fi.name
         );
     }
 
@@ -160,7 +165,7 @@ bool host_has_file(char *filename, bool skip_last_wu) {
     if (has_file) {
         if (config.debug_locality) {
             log_messages.printf(MSG_NORMAL,
-                "[locality] [HOST#%d] Already has file %s\n", g_reply->host.id, filename
+                "[locality] [HOST#%lu] Already has file %s\n", g_reply->host.id, filename
             );
         }
         return true;
@@ -192,7 +197,7 @@ bool host_has_file(char *filename, bool skip_last_wu) {
     if (has_file) {
         if (config.debug_locality) {
             log_messages.printf(MSG_NORMAL,
-                "[locality] [HOST#%d] file %s already in scheduler reply(%d)\n", g_reply->host.id, filename, i
+                "[locality] [HOST#%lu] file %s already in scheduler reply(%d)\n", g_reply->host.id, filename, i
             );
         }
         return true;
@@ -223,7 +228,7 @@ int decrement_disk_space_locality( WORKUNIT& wu) {
     //
     if (extract_filename(wu.name, filename, sizeof(filename))) {
         log_messages.printf(MSG_CRITICAL,
-            "No filename found in [WU#%u %s]\n", wu.id, wu.name
+            "No filename found in [WU#%lu %s]\n", wu.id, wu.name
         );
         return -1;
     }
@@ -258,7 +263,7 @@ int decrement_disk_space_locality( WORKUNIT& wu) {
         g_wreq->disk_available -= (wu.rsc_disk_bound-filesize);
         if (config.debug_locality) {
             log_messages.printf(MSG_NORMAL,
-                "[locality] [HOST#%d] reducing disk needed for WU by %u bytes (length of %s)\n",
+                "[locality] [HOST#%lu] reducing disk needed for WU by %u bytes (length of %s)\n",
                 g_reply->host.id, filesize, filename
             );
         }
@@ -266,7 +271,7 @@ int decrement_disk_space_locality( WORKUNIT& wu) {
     }
 
     log_messages.printf(MSG_CRITICAL,
-        "File %s size %u bytes > wu.rsc_disk_bound for WU#%u (%s)\n",
+        "File %s size %u bytes > wu.rsc_disk_bound for WU#%lu (%s)\n",
         path, filesize, wu.id, wu.name
     );
     return -1;
@@ -281,7 +286,8 @@ int decrement_disk_space_locality( WORKUNIT& wu) {
 static int possibly_send_result(SCHED_DB_RESULT& result) {
     DB_WORKUNIT wu;
     SCHED_DB_RESULT result2;
-    int retval, count;
+    int retval;
+    long count;
     char buf[256];
     BEST_APP_VERSION* bavp;
 
@@ -290,7 +296,7 @@ static int possibly_send_result(SCHED_DB_RESULT& result) {
     retval = wu.lookup_id(result.workunitid);
     if (retval) return ERR_DB_NOT_FOUND;
 
-    // This doesn't take into account g_wreq->allow_non_preferred_apps,
+    // This doesn't take into account g_wreq->allow_non_selected_apps,
     // however Einstein at Home, which is the only project that currently uses
     // this locality scheduler, doesn't support the respective project-specific
     // preference setting
@@ -319,7 +325,7 @@ static int possibly_send_result(SCHED_DB_RESULT& result) {
     if (retval) return retval;
 
     if (config.one_result_per_user_per_wu) {
-        sprintf(buf, "where userid=%d and workunitid=%d", g_reply->user.id, wu.id);
+        sprintf(buf, "where userid=%lu and workunitid=%lu", g_reply->user.id, wu.id);
         retval = result2.count(count, buf);
         if (retval) return ERR_DB_NOT_FOUND;
         if (count > 0) return ERR_WU_USER_RULE;
@@ -559,7 +565,8 @@ static int send_results_for_file(
 ) {
     SCHED_DB_RESULT result, prev_result;
     char buf[256], query[1024];
-    int i, maxid, retval_max, retval_lookup, sleep_made_no_work=0;
+    int i, retval_max, retval_lookup, sleep_made_no_work=0;
+    DB_ID_TYPE maxid;
 
     nsent = 0;
 
@@ -588,11 +595,11 @@ static int send_results_for_file(
     char pattern[256], escaped_pattern[256];
     sprintf(pattern, "%s__", filename);
     escape_mysql_like_pattern(pattern, escaped_pattern);
-    sprintf(buf, "where userid=%d and name like binary '%s%%'",
+    sprintf(buf, "where userid=%lu and name like binary '%s%%'",
         g_reply->user.id, escaped_pattern
     );
 #else
-    sprintf(buf, "where userid=%d and name>binary '%s__' and name<binary '%s__~'",
+    sprintf(buf, "where userid=%lu and name>binary '%s__' and name<binary '%s__~'",
         g_reply->user.id, filename, filename
     );
 #endif
@@ -611,7 +618,7 @@ static int send_results_for_file(
 
         if (config.debug_locality) {
             log_messages.printf(MSG_NORMAL,
-                "[locality] in_send_results_for_file(%s, %d) prev_result.id=%d\n",
+                "[locality] in_send_results_for_file(%s, %d) prev_result.id=%lu\n",
                 filename, i, prev_result.id
             );
         }
@@ -629,7 +636,7 @@ static int send_results_for_file(
             );
 #else
             sprintf(query,
-                "INNER JOIN (SELECT id FROM result WHERE name>binary '%s__' and name<binary '%s__~' and id>%d and workunitid<>%d and server_state=%d order by id limit 1) AS single USING (id) ",
+                "INNER JOIN (SELECT id FROM result WHERE name>binary '%s__' and name<binary '%s__~' and id>%lu and workunitid<>%lu and server_state=%d order by id limit 1) AS single USING (id) ",
                 filename, filename, prev_result.id, prev_result.workunitid, RESULT_SERVER_STATE_UNSENT
             );
 #endif
@@ -641,7 +648,7 @@ static int send_results_for_file(
             );
 #else
             sprintf(query,
-                "INNER JOIN (SELECT id FROM result WHERE name>binary '%s__' and name<binary '%s__~' and id>%d and server_state=%d order by id limit 1) AS single USING (id) ",
+                "INNER JOIN (SELECT id FROM result WHERE name>binary '%s__' and name<binary '%s__~' and id>%lu and server_state=%d order by id limit 1) AS single USING (id) ",
                 filename, filename, prev_result.id, RESULT_SERVER_STATE_UNSENT
             );
 #endif
@@ -753,7 +760,7 @@ static int send_results_for_file(
                 sleep_made_no_work=0;
             } else if (!config.one_result_per_user_per_wu) {
                 log_messages.printf(MSG_CRITICAL,
-                    "Database inconsistency?  possibly_send_result(%d) failed for [RESULT#%u], returning %d\n",
+                    "Database inconsistency?  possibly_send_result(%d) failed for [RESULT#%lu], returning %d\n",
                     i, result.id, retval_send
                 );
             // If another scheduler instance 'snatched' the result
@@ -763,7 +770,7 @@ static int send_results_for_file(
             } else if (retval_send != ERR_DB_NOT_FOUND) {
                 if (config.debug_locality) {
                     log_messages.printf(MSG_NORMAL,
-                        "[locality] possibly_send_result [RESULT#%u]: %s\n",
+                        "[locality] possibly_send_result [RESULT#%lu]: %s\n",
                         result.id, boincerror(retval_send)
                     );
                 }
@@ -1050,7 +1057,7 @@ static int send_old_work(int t_min, int t_max, bool locality_work_only) {
             double age=(now-result.create_time)/3600.0;
             if (config.debug_locality) {
                 log_messages.printf(MSG_NORMAL,
-                    "[locality] send_old_work(%s) sent result created %.1f hours ago [RESULT#%u]\n",
+                    "[locality] send_old_work(%s) sent result created %.1f hours ago [RESULT#%lu]\n",
                     result.name, age, result.id
                 );
             }
@@ -1161,7 +1168,7 @@ void send_work_locality() {
             g_request->file_delete_candidates.push_back(eah_copy[i]);
             if (config.debug_locality) {
                 log_messages.printf(MSG_NORMAL,
-                    "[locality] [HOST#%d] removing file %s from file_infos list\n",
+                    "[locality] [HOST#%lu] removing file %s from file_infos list\n",
                     g_reply->host.id, fname
                 );
             }
@@ -1171,7 +1178,7 @@ void send_work_locality() {
             g_request->files_not_needed.push_back(eah_copy[i]);
             if (config.debug_locality) {
                 log_messages.printf(MSG_NORMAL,
-                    "[locality] [HOST#%d] adding file %s to files_not_needed list\n",
+                    "[locality] [HOST#%lu] adding file %s to files_not_needed list\n",
                     g_reply->host.id, fname
                 );
             }
@@ -1183,7 +1190,7 @@ void send_work_locality() {
     for (i=0; i<nfiles; i++)
         if (config.debug_locality) {
             log_messages.printf(MSG_NORMAL,
-                "[locality] [HOST#%d] has file %s\n",
+                "[locality] [HOST#%lu] has file %s\n",
                 g_reply->host.id, g_request->file_infos[i].name
             );
         }
@@ -1237,7 +1244,7 @@ void send_work_locality() {
             g_reply->file_deletes.push_back(fi);
             if (config.debug_locality) {
                 log_messages.printf(MSG_NORMAL,
-                    "[locality] [HOST#%d]: delete file %s (not needed)\n",
+                    "[locality] [HOST#%lu]: delete file %s (not needed)\n",
                     g_reply->host.id, fi.name
                 );
             }
@@ -1267,7 +1274,7 @@ void send_work_locality() {
                 g_reply->file_deletes.push_back(fil);
                 if (config.debug_locality) {
                     log_messages.printf(MSG_NORMAL,
-                        "[locality] [HOST#%d]: delete file %s (accompanies %s)\n",
+                        "[locality] [HOST#%lu]: delete file %s (accompanies %s)\n",
                         g_reply->host.id, fil.name, fi.name
                     );
                 }
@@ -1289,7 +1296,7 @@ void send_work_locality() {
                 g_reply->file_deletes.push_back(fih7);
                 if (config.debug_locality) {
                     log_messages.printf(MSG_NORMAL,
-                        "[locality] [HOST#%d]: delete files %s,%s,%s (accompanies %s)\n",
+                        "[locality] [HOST#%lu]: delete files %s,%s,%s (accompanies %s)\n",
                         g_reply->host.id, fil4.name,fil7.name,fih7.name, fi.name
                     );
                 }
@@ -1316,7 +1323,7 @@ void send_file_deletes() {
         g_reply->file_deletes.push_back(fi);
         if (config.debug_locality) {
             log_messages.printf(MSG_NORMAL,
-                "[locality] [HOST#%d]: delete file %s (not needed)\n",
+                "[locality] [HOST#%lu]: delete file %s (not needed)\n",
                 g_reply->host.id, fi.name
             );
         }
diff --git a/sched/sched_main.cpp b/sched/sched_main.cpp
index 4c67ed5..c5584df 100644
--- a/sched/sched_main.cpp
+++ b/sched/sched_main.cpp
@@ -15,8 +15,14 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// The BOINC scheduling server.
-
+// The BOINC scheduler.
+// Normally runs as a CGI or fast CGI program.
+// You can also run it:
+// - manually for debugging, with a single request
+// - for simulation or performance testing, with a stream of requests
+//   (using --batch)
+
+// TODO: what does the following mean?
 // Also, You can call debug_sched() for whatever situation is of
 // interest to you.  It won't do anything unless you create
 // (touch) the file 'debug_sched' in the project root directory.
@@ -109,7 +115,7 @@ void debug_sched(const char *trigger) {
     }
 
     sprintf(tmpfilename,
-        "sched_reply_%06d_%06d", g_request->hostid, g_request->rpc_seqno
+        "sched_reply_%06ld_%06d", g_request->hostid, g_request->rpc_seqno
     );
     // use _XXXXXX if you want random filenames rather than
     // deterministic mkstemp(tmpfilename);
@@ -135,7 +141,7 @@ void debug_sched(const char *trigger) {
     fclose(fp);
 
     sprintf(tmpfilename,
-        "sched_request_%06d_%06d", g_request->hostid, g_request->rpc_seqno
+        "sched_request_%06ld_%06d", g_request->hostid, g_request->rpc_seqno
     );
 #ifndef _USING_FCGI_
     fp=fopen(tmpfilename, "w");
diff --git a/sched/sched_msgs.cpp b/sched/sched_msgs.cpp
deleted file mode 100644
index 00bd1fe..0000000
--- a/sched/sched_msgs.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// This file is part of BOINC.
-// http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
-//
-// BOINC is free software; you can redistribute it and/or modify it
-// under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation,
-// either version 3 of the License, or (at your option) any later version.
-//
-// BOINC is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-// See the GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
-
-#include <string.h>
-#include "config.h"
-#include "sched_msgs.h"
-
-SCHED_MSG_LOG log_messages;
-
-const char* SCHED_MSG_LOG::v_format_kind(int kind) const {
-    switch(kind) {
-    case MSG_CRITICAL: return "[CRITICAL]";
-    case MSG_NORMAL:   return "";
-    case MSG_DEBUG:    return "[debug]";
-    default:       return "*** internal error: invalid MessageKind ***";
-    }
-}
-
-bool SCHED_MSG_LOG::v_message_wanted(int kind) const {
-    return ( kind <= debug_level );
-}
-
-void SCHED_MSG_LOG::set_indent_level(const int new_indent_level) {
-    if (new_indent_level < 0) indent_level = 0;
-    else if (new_indent_level > 39) indent_level = 39;
-    else indent_level = new_indent_level;
-
-    memset(spaces, ' ', sizeof(spaces));
-    spaces[indent_level] = 0;
-}
-
-#ifdef _USING_FCGI_
-
-SCHED_MSG_LOG::~SCHED_MSG_LOG() {
-   close();
-}
-
-void SCHED_MSG_LOG::close() {
-    if (output) {
-        flush();
-        fclose(output);
-        output = NULL;
-    }
-}
-
-#ifndef _USING_FCGI_
-void SCHED_MSG_LOG::redirect(FILE* f) {
-#else
-void SCHED_MSG_LOG::redirect(FCGI_FILE* f) {
-#endif
-    close();
-    output = f;
-}
-
-void SCHED_MSG_LOG::flush() {
-    if (output) {
-        fflush(output->stdio_stream);
-    }
-}
-#endif
-
-const char *BOINC_RCSID_b40ff9bb53 = "$Id$";
diff --git a/sched/sched_msgs.h b/sched/sched_msgs.h
deleted file mode 100644
index 6120112..0000000
--- a/sched/sched_msgs.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// This file is part of BOINC.
-// http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
-//
-// BOINC is free software; you can redistribute it and/or modify it
-// under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation,
-// either version 3 of the License, or (at your option) any later version.
-//
-// BOINC is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-// See the GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef _BOINC_SCHED_MSGS_H_
-#define _BOINC_SCHED_MSGS_H_
-
-#include "msg_log.h"
-
-#ifdef _USING_FCGI_
-#include "boinc_fcgi.h"
-#endif
-
-enum { MSG_CRITICAL=1, MSG_NORMAL, MSG_DEBUG };
-
-class SCHED_MSG_LOG : public MSG_LOG {
-    const char* v_format_kind(int kind) const;
-    bool v_message_wanted(int kind) const;
-public:
-    int debug_level;
-    enum { MSG_CRITICAL=1, MSG_NORMAL, MSG_DEBUG };
-    SCHED_MSG_LOG(): MSG_LOG(stderr) { debug_level = MSG_NORMAL; }
-    void set_debug_level(int new_level) { debug_level = new_level; }
-    void set_indent_level(const int new_indent_level);
-#ifdef _USING_FCGI_
-    ~SCHED_MSG_LOG();
-    void redirect(FCGI_FILE* f);
-    void close();
-    void flush();
-#endif
-};
-
-#define _(x) "_(\"" x "\")"
-
-extern SCHED_MSG_LOG log_messages;
-#endif
diff --git a/sched/sched_nci.cpp b/sched/sched_nci.cpp
index e14d66a..1bfc6ab 100644
--- a/sched/sched_nci.cpp
+++ b/sched/sched_nci.cpp
@@ -36,7 +36,7 @@ static bool can_send_nci(
     if (!bavp) {
         if (config.debug_send_job) {
             log_messages.printf(MSG_NORMAL,
-                "[send_job] [WU#%u] No app version for NCI job; skipping\n",
+                "[send_job] [WU#%lu] No app version for NCI job; skipping\n",
                 wu.id
             );
         }
@@ -51,7 +51,7 @@ static bool can_send_nci(
     if (retval) {
         if (config.debug_send_job) {
             log_messages.printf(MSG_NORMAL,
-                "[send_job] [WU#%u] wu_is_infeasible_fast() failed for NCI job; skipping\n",
+                "[send_job] [WU#%lu] wu_is_infeasible_fast() failed for NCI job; skipping\n",
                 wu.id
             );
         }
@@ -163,14 +163,14 @@ int send_nci() {
             }
             continue;
         }
-        if (app.beta  && !g_wreq->allow_beta_work) {
+        if (app.beta  && !g_wreq->project_prefs.allow_beta_work) {
             if (config.debug_send) {
                 log_messages.printf(MSG_NORMAL, "%s is beta\n", app.name);
             }
             continue;
         }
         if (app_not_selected(app.id)) {
-            if (!g_wreq->allow_non_preferred_apps) {
+            if (!g_wreq->project_prefs.allow_non_selected_apps) {
                 if (config.debug_send) {
                     log_messages.printf(MSG_NORMAL,
                         "%s is not selected\n", app.name
diff --git a/sched/sched_resend.cpp b/sched/sched_resend.cpp
index e676667..e37ad8d 100644
--- a/sched/sched_resend.cpp
+++ b/sched/sched_resend.cpp
@@ -74,7 +74,7 @@ static int possibly_give_result_new_deadline(
     if (estimate_duration(wu, bav) > result_report_deadline-now) {
         if (config.debug_resend) {
             log_messages.printf(MSG_NORMAL,
-                "[resend] [RESULT#%u] [HOST#%d] not resending lost result: can't complete in time\n",
+                "[resend] [RESULT#%lu] [HOST#%lu] not resending lost result: can't complete in time\n",
                 result.id, g_reply->host.id
             );
         }
@@ -85,7 +85,7 @@ static int possibly_give_result_new_deadline(
     //
     if (config.debug_resend) {
         log_messages.printf(MSG_NORMAL,
-            "[resend] [RESULT#%u] [HOST#%d] %s report_deadline (resend lost work)\n",
+            "[resend] [RESULT#%lu] [HOST#%lu] %s report_deadline (resend lost work)\n",
             result.id, g_reply->host.id,
             result_report_deadline==result.report_deadline?"NO update to":"Updated"
         );
@@ -114,7 +114,7 @@ bool resend_lost_work() {
     APP* app = NULL;
     int retval;
 
-    sprintf(buf, " where hostid=%d and server_state=%d ",
+    sprintf(buf, " where hostid=%lu and server_state=%d ",
         g_reply->host.id, RESULT_SERVER_STATE_IN_PROGRESS
     );
     while (!result.enumerate(buf)) {
@@ -136,7 +136,7 @@ bool resend_lost_work() {
         num_eligible_to_resend++;
         if (config.debug_resend) {
             log_messages.printf(MSG_NORMAL,
-                "[resend] [HOST#%d] found lost [RESULT#%u]: %s\n",
+                "[resend] [HOST#%lu] found lost [RESULT#%lu]: %s\n",
                 g_reply->host.id, result.id, result.name
             );
         }
@@ -146,7 +146,7 @@ bool resend_lost_work() {
         retval = wu.lookup_id(result.workunitid);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] can't resend - WU not found for [RESULT#%u]\n",
+                "[HOST#%lu] can't resend - WU not found for [RESULT#%lu]\n",
                 g_reply->host.id, result.id
             );
             can_resend = false;
@@ -155,20 +155,20 @@ bool resend_lost_work() {
             app = ssp->lookup_app(wu.appid);
             if (!app) {
                 log_messages.printf(MSG_CRITICAL,
-                    "can't resend - app not found for [RESULT#%u]\n", result.id
+                    "can't resend - app not found for [RESULT#%lu]\n", result.id
                 );
                 can_resend = false;
             }
         }
         if (can_resend && app->deprecated) {
             log_messages.printf(MSG_NORMAL,
-                "[RESULT#%u] can't resend - app is deprecated \n", result.id
+                "[RESULT#%lu] can't resend - app is deprecated \n", result.id
             );
             can_resend = false;
         }
         if (can_resend && app_not_selected(app->id)) {
             log_messages.printf(MSG_NORMAL,
-                "[RESULT#%u] can't resend - app is not selected\n", result.id
+                "[RESULT#%lu] can't resend - app is not selected\n", result.id
             );
             can_resend = false;
         }
@@ -177,7 +177,7 @@ bool resend_lost_work() {
             if (!bavp) {
                 if (config.debug_resend) {
                     log_messages.printf(MSG_NORMAL,
-                        "[HOST#%d] can't resend [RESULT#%u]: no app version for %s\n",
+                        "[HOST#%lu] can't resend [RESULT#%lu]: no app version for %s\n",
                         g_reply->host.id, result.id, app->name
                     );
                 }
@@ -187,7 +187,7 @@ bool resend_lost_work() {
         if (can_resend && wu.error_mask) {
             if (config.debug_resend) {
                 log_messages.printf(MSG_NORMAL,
-                    "[resend] skipping [RESULT#%u]: WU error mask %d\n",
+                    "[resend] skipping [RESULT#%lu]: WU error mask %d\n",
                     result.id, wu.error_mask
                 );
             }
@@ -196,7 +196,7 @@ bool resend_lost_work() {
         if (can_resend && wu.canonical_resultid) {
             if (config.debug_resend) {
                 log_messages.printf(MSG_NORMAL,
-                    "[resend] skipping [RESULT#%u]: already have canonical result\n",
+                    "[resend] skipping [RESULT#%lu]: already have canonical result\n",
                     result.id
                 );
             }
@@ -208,7 +208,7 @@ bool resend_lost_work() {
         )) {
             if (config.debug_resend) {
                 log_messages.printf(MSG_NORMAL,
-                    "[resend] skipping [RESULT#%u]: feasibility check failed\n",
+                    "[resend] skipping [RESULT#%lu]: feasibility check failed\n",
                     result.id
                 );
             }
@@ -217,7 +217,7 @@ bool resend_lost_work() {
         if (can_resend && possibly_give_result_new_deadline(result, wu, *bavp)) {
             if (config.debug_resend) {
                 log_messages.printf(MSG_NORMAL,
-                    "[resend] skipping [RESULT#%u]: deadline assignment failed\n",
+                    "[resend] skipping [RESULT#%lu]: deadline assignment failed\n",
                     result.id
                 );
             }
@@ -257,7 +257,7 @@ bool resend_lost_work() {
             retval = add_result_to_reply(result, wu, bavp, false);
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[HOST#%d] failed to send [RESULT#%u]\n",
+                    "[HOST#%lu] failed to send [RESULT#%lu]\n",
                     g_reply->host.id, result.id
                 );
                 continue;
@@ -276,7 +276,7 @@ bool resend_lost_work() {
 
     if (num_eligible_to_resend && config.debug_resend) {
         log_messages.printf(MSG_NORMAL,
-            "[resend] [HOST#%d] %d lost results, resent %d\n",
+            "[resend] [HOST#%lu] %d lost results, resent %d\n",
             g_reply->host.id, num_eligible_to_resend, num_resent 
         );
     }
diff --git a/sched/sched_result.cpp b/sched/sched_result.cpp
index 55f5ab9..b866201 100644
--- a/sched/sched_result.cpp
+++ b/sched/sched_result.cpp
@@ -15,6 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// Logic for handling completed jobs being reported in scheduler requests
+
 #include "boinc_db.h"
 #include "str_util.h"
 #include "str_replace.h"
@@ -32,12 +34,12 @@
 // got a SUCCESS result.  Doesn't mean it's valid!
 //
 static inline void got_good_result(SCHED_RESULT_ITEM& sri) {
-    int gavid = generalized_app_version_id(sri.app_version_id, sri.appid);
+    DB_ID_TYPE gavid = generalized_app_version_id(sri.app_version_id, sri.appid);
     DB_HOST_APP_VERSION* havp = gavid_to_havp(gavid);
     if (!havp) {
         if (config.debug_handle_results) {
             log_messages.printf(MSG_NORMAL,
-                "[handle] No app version for %d\n", gavid
+                "[handle] No app version for %ld\n", gavid
             );
         }
         return;
@@ -49,7 +51,7 @@ static inline void got_good_result(SCHED_RESULT_ITEM& sri) {
         }
         if (config.debug_quota) {
             log_messages.printf(MSG_NORMAL,
-                "[quota] increasing max_jobs_per_day for %d: %d->%d\n",
+                "[quota] increasing max_jobs_per_day for %ld: %d->%d\n",
                 gavid, havp->max_jobs_per_day, n
             );
         }
@@ -63,12 +65,12 @@ static inline void got_good_result(SCHED_RESULT_ITEM& sri) {
 // - mechanism that categorizes hosts as "reliable"
 //
 static inline void got_bad_result(SCHED_RESULT_ITEM& sri) {
-    int gavid = generalized_app_version_id(sri.app_version_id, sri.appid);
+    DB_ID_TYPE gavid = generalized_app_version_id(sri.app_version_id, sri.appid);
     DB_HOST_APP_VERSION* havp = gavid_to_havp(gavid);
     if (!havp) {
         if (config.debug_handle_results) {
             log_messages.printf(MSG_NORMAL,
-                "[handle] No app version for %d\n", gavid
+                "[handle] No app version for %ld\n", gavid
             );
         }
         return;
@@ -84,7 +86,7 @@ static inline void got_bad_result(SCHED_RESULT_ITEM& sri) {
     }
     if (config.debug_quota) {
         log_messages.printf(MSG_NORMAL,
-            "[quota] decreasing max_jobs_per_day for %d: %d->%d\n",
+            "[quota] decreasing max_jobs_per_day for %ld: %d->%d\n",
             gavid, havp->max_jobs_per_day, n
         );
     }
@@ -136,7 +138,7 @@ int handle_results() {
     retval = result_handler.enumerate();
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "[HOST#%d] Batch query failed\n",
+            "[HOST#%lu] Batch query failed\n",
             g_reply->host.id
         );
     }
@@ -155,7 +157,7 @@ int handle_results() {
         retval = result_handler.lookup_result(rp->name, &srip);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] [RESULT#? %s] reported result not in DB\n",
+                "[HOST#%lu] [RESULT#? %s] reported result not in DB\n",
                 g_reply->host.id, rp->name
             );
 
@@ -165,7 +167,7 @@ int handle_results() {
 
         if (config.debug_handle_results) {
             log_messages.printf(MSG_NORMAL,
-                "[handle] [HOST#%d] [RESULT#%u] [WU#%u] got result (DB: server_state=%d outcome=%d client_state=%d validate_state=%d delete_state=%d)\n",
+                "[handle] [HOST#%lu] [RESULT#%lu] [WU#%lu] got result (DB: server_state=%d outcome=%d client_state=%d validate_state=%d delete_state=%d)\n",
                 g_reply->host.id, srip->id, srip->workunitid, srip->server_state,
                 srip->outcome, srip->client_state, srip->validate_state,
                 srip->file_delete_state
@@ -227,7 +229,7 @@ int handle_results() {
             if (msg) {
                 if (config.debug_handle_results) {
                     log_messages.printf(MSG_NORMAL,
-                        "[handle][HOST#%d][RESULT#%u][WU#%u] result already over [outcome=%d validate_state=%d]: %s\n",
+                        "[handle][HOST#%lu][RESULT#%lu][WU#%lu] result already over [outcome=%d validate_state=%d]: %s\n",
                         g_reply->host.id, srip->id, srip->workunitid,
                         srip->outcome, srip->validate_state, msg
                     );
@@ -240,7 +242,7 @@ int handle_results() {
 
         if (srip->server_state == RESULT_SERVER_STATE_UNSENT) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] [RESULT#%u] [WU#%u] got unexpected result: server state is %d\n",
+                "[HOST#%lu] [RESULT#%lu] [WU#%lu] got unexpected result: server state is %d\n",
                 g_reply->host.id, srip->id, srip->workunitid, srip->server_state
             );
             srip->id = 0;
@@ -250,7 +252,7 @@ int handle_results() {
 
         if (srip->received_time) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] [RESULT#%u] [WU#%u] already got result, at %s \n",
+                "[HOST#%lu] [RESULT#%lu] [WU#%lu] already got result, at %s \n",
                 g_reply->host.id, srip->id, srip->workunitid,
                 time_to_string(srip->received_time)
             );
@@ -261,7 +263,7 @@ int handle_results() {
 
         if (srip->hostid != g_reply->host.id) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] [RESULT#%u] [WU#%u] got result from wrong host; expected [HOST#%d]\n",
+                "[HOST#%lu] [RESULT#%lu] [WU#%lu] got result from wrong host; expected [HOST#%lu]\n",
                 g_reply->host.id, srip->id, srip->workunitid, srip->hostid
             );
             DB_HOST result_host;
@@ -269,7 +271,7 @@ int handle_results() {
 
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[RESULT#%u] [WU#%u] Can't lookup [HOST#%d]\n",
+                    "[RESULT#%lu] [WU#%lu] Can't lookup [HOST#%lu]\n",
                     srip->id, srip->workunitid, srip->hostid
                 );
                 srip->id = 0;
@@ -277,7 +279,7 @@ int handle_results() {
                 continue;
             } else if (result_host.userid != g_reply->host.userid) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[USER#%d] [HOST#%d] [RESULT#%u] [WU#%u] Not even the same user; expected [USER#%d]\n",
+                    "[USER#%lu] [HOST#%lu] [RESULT#%lu] [WU#%lu] Not even the same user; expected [USER#%lu]\n",
                     g_reply->host.userid, g_reply->host.id, srip->id, srip->workunitid, result_host.userid
                 );
                 srip->id = 0;
@@ -285,7 +287,7 @@ int handle_results() {
                 continue;
             } else {
                 log_messages.printf(MSG_CRITICAL,
-                    "[HOST#%d] [RESULT#%u] [WU#%u] Allowing result because same USER#%d\n",
+                    "[HOST#%lu] [RESULT#%lu] [WU#%lu] Allowing result because same USER#%lu\n",
                     g_reply->host.id, srip->id, srip->workunitid, g_reply->host.userid
                 );
             }
@@ -313,12 +315,12 @@ int handle_results() {
         // if it's a single-thread app, set ET = CPU
         //
         if (srip->elapsed_time < srip->cpu_time) {
-            int avid = srip->app_version_id;
+            DB_ID_TYPE avid = srip->app_version_id;
             if (avid > 0) {
                 APP_VERSION* avp = ssp->lookup_app_version(avid);
                 if (avp && !avp->is_multithread()) {
                     log_messages.printf(MSG_NORMAL,
-                        "[HOST#%d] [RESULT#%u] elapsed time %f < CPU %f for seq app; setting to CPU\n",
+                        "[HOST#%lu] [RESULT#%lu] elapsed time %f < CPU %f for seq app; setting to CPU\n",
                         srip->hostid, srip->id, srip->elapsed_time, srip->cpu_time
                     );
                     srip->elapsed_time = srip->cpu_time;
@@ -330,7 +332,7 @@ int handle_results() {
         //
         if (srip->elapsed_time < 0) {
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d] [RESULT#%u] [WU#%u] negative elapsed time: %f\n",
+                "[HOST#%lu] [RESULT#%lu] [WU#%lu] negative elapsed time: %f\n",
                 srip->hostid, srip->id, srip->workunitid,
                 srip->elapsed_time
             );
@@ -342,7 +344,7 @@ int handle_results() {
         if (srip->elapsed_time == 0 && srip->cpu_time > 0) {
             srip->elapsed_time = srip->cpu_time;
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d] [RESULT#%u] elapsed time is zero; setting to CPU time %f\n",
+                "[HOST#%lu] [RESULT#%lu] elapsed time is zero; setting to CPU time %f\n",
                 srip->hostid, srip->id, srip->cpu_time
             );
         }
@@ -352,13 +354,13 @@ int handle_results() {
         double turnaround_time = srip->received_time - srip->sent_time;
         if (turnaround_time < 0) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] [RESULT#%u] [WU#%u] inconsistent sent/received times\n",
+                "[HOST#%lu] [RESULT#%lu] [WU#%lu] inconsistent sent/received times\n",
                 srip->hostid, srip->id, srip->workunitid
             );
         } else {
             if (srip->elapsed_time > turnaround_time) {
                 log_messages.printf(MSG_NORMAL,
-                    "[HOST#%d] [RESULT#%u] [WU#%u] impossible elapsed time: reported %f > turnaround %f\n",
+                    "[HOST#%lu] [RESULT#%lu] [WU#%lu] impossible elapsed time: reported %f > turnaround %f\n",
                     srip->hostid, srip->id, srip->workunitid,
                     srip->elapsed_time, turnaround_time
                 );
@@ -370,7 +372,7 @@ int handle_results() {
         //
         if (srip->cpu_time > srip->elapsed_time*g_reply->host.p_ncpus) {
             log_messages.printf(MSG_NORMAL,
-                "[HOST#%d] [RESULT#%u] [WU#%u] impossible CPU time: %f > %f * %d\n",
+                "[HOST#%lu] [RESULT#%lu] [WU#%lu] impossible CPU time: %f > %f * %d\n",
                 srip->hostid, srip->id, srip->workunitid,
                 srip->cpu_time, srip->elapsed_time, g_reply->host.p_ncpus
             );
@@ -394,7 +396,7 @@ int handle_results() {
             srip->outcome = RESULT_OUTCOME_SUCCESS;
             if (config.debug_handle_results) {
                 log_messages.printf(MSG_NORMAL,
-                    "[handle] [RESULT#%u] [WU#%u]: setting outcome SUCCESS\n",
+                    "[handle] [RESULT#%lu] [WU#%lu]: setting outcome SUCCESS\n",
                     srip->id, srip->workunitid
                 );
             }
@@ -406,7 +408,7 @@ int handle_results() {
         } else {
             if (config.debug_handle_results) {
                 log_messages.printf(MSG_NORMAL,
-                    "[handle] [RESULT#%u] [WU#%u]: client_state %d exit_status %d; setting outcome ERROR\n",
+                    "[handle] [RESULT#%lu] [WU#%lu]: client_state %d exit_status %d; setting outcome ERROR\n",
                     srip->id, srip->workunitid, srip->client_state, srip->exit_status
                 );
             }
@@ -431,7 +433,7 @@ int handle_results() {
         retval = result_handler.update_result(sri);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "[HOST#%d] [RESULT#%u] [WU#%u] can't update result: %s\n",
+                "[HOST#%lu] [RESULT#%lu] [WU#%lu] can't update result: %s\n",
                 g_reply->host.id, sri.id, sri.workunitid, boinc_db.error_string()
             );
         }
@@ -445,7 +447,7 @@ int handle_results() {
     retval = result_handler.update_workunits();
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "[HOST#%d] can't update WUs: %s\n",
+            "[HOST#%lu] can't update WUs: %s\n",
             g_reply->host.id, boincerror(retval)
         );
     }
diff --git a/sched/sched_score.cpp b/sched/sched_score.cpp
index 09ca239..0c6a968 100644
--- a/sched/sched_score.cpp
+++ b/sched/sched_score.cpp
@@ -64,12 +64,12 @@ bool JOB::get_score(WU_RESULT& wu_result) {
     }
 
     if (app->beta) {
-        if (g_wreq->allow_beta_work) {
+        if (g_wreq->project_prefs.allow_beta_work) {
             score += 1;
         } else {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] can't send job %d for beta app to non-beta user\n",
+                    "[send_job] can't send job %lu for beta app to non-beta user\n",
                     wu_result.workunit.id
                 );
             }
@@ -78,12 +78,12 @@ bool JOB::get_score(WU_RESULT& wu_result) {
     }
 
     if (app_not_selected(app->id)) {
-        if (g_wreq->allow_non_preferred_apps) {
+        if (g_wreq->project_prefs.allow_non_selected_apps) {
             score -= 1;
         } else {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] app not selected for job %d\n",
+                    "[send_job] app not selected for job %lu\n",
                     wu_result.workunit.id
                 );
             }
@@ -127,9 +127,12 @@ bool JOB::get_score(WU_RESULT& wu_result) {
             score -= 1;
         }
     }
+
+    score += wu_result.res_priority;
+
     if (config.debug_send_job) {
         log_messages.printf(MSG_NORMAL,
-            "[send_job]: score %f for result %d\n", score, wu_result.resultid
+            "[send_job]: score %f for result %lu\n", score, wu_result.resultid
         );
     }
 
@@ -193,7 +196,7 @@ void send_work_score_type(int rt) {
         if (job.app->non_cpu_intensive) {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [RESULT#%u] app is non compute intensive\n",
+                    "[send_job] [RESULT#%lu] app is non compute intensive\n",
                     wu_result.resultid
                 );
             }
@@ -203,7 +206,7 @@ void send_work_score_type(int rt) {
         if (!job.bavp) {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [RESULT#%u] no app version available\n",
+                    "[send_job] [RESULT#%lu] no app version available\n",
                     wu_result.resultid
                 );
             }
@@ -215,7 +218,7 @@ void send_work_score_type(int rt) {
         if (!job.get_score(wu_result)) {
             if (config.debug_send_job) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send_job] [RESULT#%u] get_score() returned false\n",
+                    "[send_job] [RESULT#%lu] get_score() returned false\n",
                     wu_result.resultid
                 );
             }
@@ -223,7 +226,7 @@ void send_work_score_type(int rt) {
         }
         if (config.debug_send_job) {
             log_messages.printf(MSG_NORMAL,
-                "[send_job] [RESULT#%u] score: %f\n",
+                "[send_job] [RESULT#%lu] score: %f\n",
                 wu_result.resultid, job.score
             );
         }
diff --git a/sched/sched_score.h b/sched/sched_score.h
index 76c82ee..4a05857 100644
--- a/sched/sched_score.h
+++ b/sched/sched_score.h
@@ -19,7 +19,7 @@
 
 struct JOB {
     int index;          // index into shared-mem job array
-    int result_id;
+    DB_ID_TYPE result_id;
     double score;
     APP* app;
     BEST_APP_VERSION* bavp;
diff --git a/sched/sched_send.cpp b/sched/sched_send.cpp
index 8bc1763..43dc910 100644
--- a/sched/sched_send.cpp
+++ b/sched/sched_send.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2016 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -17,7 +17,7 @@
 
 // scheduler code related to sending jobs.
 // NOTE: there should be nothing here specific to particular
-// scheduling policies (array scan, matchmaking, locality)
+// scheduling policies (array scan, score-based, locality)
 
 #include "config.h"
 #include <vector>
@@ -64,7 +64,7 @@
 //
 const double DEFAULT_RAM_SIZE = 64000000;
 
-int preferred_app_message_index=0;
+int selected_app_message_index=0;
 
 static inline bool file_present_on_host(const char* name) {
     for (unsigned i=0; i<g_request->file_infos.size(); i++) {
@@ -126,12 +126,13 @@ void add_job_files_to_host(WORKUNIT& wu) {
 const double MIN_REQ_SECS = 0;
 const double MAX_REQ_SECS = (28*SECONDS_IN_DAY);
 
+// compute effective_ncpus;
 // get limits on:
 // # jobs per day
 // # jobs per RPC
 // # jobs in progress
 //
-void WORK_REQ_BASE::get_job_limits() {
+void WORK_REQ::get_job_limits() {
     int ninstances[NPROC_TYPES];
     int i;
     
@@ -144,6 +145,11 @@ void WORK_REQ_BASE::get_job_limits() {
     if (n > config.max_ncpus) n = config.max_ncpus;
     if (n < 1) n = 1;
     if (n > MAX_CPUS) n = MAX_CPUS;
+    if (project_prefs.max_cpus) {
+        if (n > project_prefs.max_cpus) {
+            n = project_prefs.max_cpus;
+        }
+    }
     ninstances[PROC_TYPE_CPU] = n;
     effective_ncpus = n;
 
@@ -192,7 +198,7 @@ static void update_quota(DB_HOST_APP_VERSION& hav) {
             hav.max_jobs_per_day = config.daily_result_quota;
             if (config.debug_quota) {
                 log_messages.printf(MSG_NORMAL,
-                    "[quota] [HAV#%d] Initializing max_results_day to %d\n",
+                    "[quota] [HAV#%lu] Initializing max_results_day to %d\n",
                     hav.app_version_id,
                     config.daily_result_quota
                 );
@@ -203,7 +209,7 @@ static void update_quota(DB_HOST_APP_VERSION& hav) {
     if (g_request->last_rpc_dayofyear != g_request->current_rpc_dayofyear) {
         if (config.debug_quota) {
             log_messages.printf(MSG_NORMAL,
-                "[quota] [HOST#%d] [HAV#%d] Resetting n_jobs_today\n",
+                "[quota] [HOST#%lu] [HAV#%lu] Resetting n_jobs_today\n",
                 g_reply->host.id, hav.app_version_id
             );
         }
@@ -240,7 +246,7 @@ void get_reliability_version(HOST_APP_VERSION& hav, double multiplier) {
         if (hav.turnaround.get_avg() > config.reliable_max_avg_turnaround*multiplier) {
             if (config.debug_send) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send] [AV#%d] not reliable; avg turnaround: %.3f > %.3f hrs\n",
+                    "[send] [AV#%lu] not reliable; avg turnaround: %.3f > %.3f hrs\n",
                     hav.app_version_id,
                     hav.turnaround.get_avg()/3600,
                     config.reliable_max_avg_turnaround*multiplier/3600
@@ -253,7 +259,7 @@ void get_reliability_version(HOST_APP_VERSION& hav, double multiplier) {
     if (hav.consecutive_valid < CONS_VALID_RELIABLE) {
         if (config.debug_send) {
             log_messages.printf(MSG_NORMAL,
-                "[send] [AV#%d] not reliable; cons valid %d < %d\n",
+                "[send] [AV#%lu] not reliable; cons valid %d < %d\n",
                 hav.app_version_id,
                 hav.consecutive_valid, CONS_VALID_RELIABLE
             );
@@ -265,7 +271,7 @@ void get_reliability_version(HOST_APP_VERSION& hav, double multiplier) {
         if (hav.max_jobs_per_day < config.daily_result_quota) {
             if (config.debug_send) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send] [AV#%d] not reliable; max_jobs_per_day %d<%d\n",
+                    "[send] [AV#%lu] not reliable; max_jobs_per_day %d<%d\n",
                     hav.app_version_id,
                     hav.max_jobs_per_day,
                     config.daily_result_quota
@@ -278,7 +284,7 @@ void get_reliability_version(HOST_APP_VERSION& hav, double multiplier) {
     hav.reliable = true;
     if (config.debug_send) {
         log_messages.printf(MSG_NORMAL,
-            "[send] [HOST#%d] app version %d is reliable\n",
+            "[send] [HOST#%lu] app version %lu is reliable\n",
             g_reply->host.id, hav.app_version_id
         );
     }
@@ -474,66 +480,13 @@ double estimate_duration(WORKUNIT& wu, BEST_APP_VERSION& bav) {
     double ed = edu/available_frac(bav);
     if (config.debug_send_job) {
         log_messages.printf(MSG_NORMAL,
-            "[send_job] est. duration for WU %d: unscaled %.2f scaled %.2f\n",
+            "[send_job] est. duration for WU %lu: unscaled %.2f scaled %.2f\n",
             wu.id, edu, ed
         );
     }
     return ed;
 }
 
-// Parse user's project prferences.
-// TODO: use XML_PARSER
-//
-static void get_prefs_info() {
-    char buf[8096];
-    std::string str;
-    unsigned int pos = 0;
-    int temp_int=0;
-    bool flag;
-
-    extract_venue(g_reply->user.project_prefs, g_reply->host.venue, buf, sizeof(buf));
-    str = buf;
-
-    // scan user's project prefs for elements of the form <app_id>N</app_id>,
-    // indicating the apps they want to run.
-    //
-    g_wreq->preferred_apps.clear();
-    while (parse_int(str.substr(pos,str.length()-pos).c_str(), "<app_id>", temp_int)) {
-        APP_INFO ai;
-        ai.appid = temp_int;
-        ai.work_available = false;
-        g_wreq->preferred_apps.push_back(ai);
-
-        pos = str.find("<app_id>", pos) + 1;
-    }
-    if (parse_bool(buf,"allow_non_preferred_apps", flag)) {
-        g_wreq->allow_non_preferred_apps = flag;
-    }
-    if (parse_bool(buf,"allow_beta_work", flag)) {
-        g_wreq->allow_beta_work = flag;
-    }
-    if (parse_bool(buf,"no_gpus", flag)) {
-        // deprecated, but need to handle
-        if (flag) {
-            for (int i=1; i<NPROC_TYPES; i++) {
-                g_wreq->dont_use_proc_type[i] = true;
-            }
-        }
-    }
-    if (parse_bool(buf,"no_cpu", flag)) {
-        g_wreq->dont_use_proc_type[PROC_TYPE_CPU] = flag;
-    }
-    if (parse_bool(buf,"no_cuda", flag)) {
-        g_wreq->dont_use_proc_type[PROC_TYPE_NVIDIA_GPU] = flag;
-    }
-    if (parse_bool(buf,"no_ati", flag)) {
-        g_wreq->dont_use_proc_type[PROC_TYPE_AMD_GPU] = flag;
-    }
-    if (parse_bool(buf,"no_intel_gpu", flag)) {
-        g_wreq->dont_use_proc_type[PROC_TYPE_INTEL_GPU] = flag;
-    }
-}
-
 void update_n_jobs_today() {
     for (unsigned int i=0; i<g_wreq->host_app_versions.size(); i++) {
         DB_HOST_APP_VERSION& hav = g_wreq->host_app_versions[i];
@@ -628,7 +581,7 @@ static int add_wu_to_reply(
         g_reply->insert_app_version_unique(*avp2);
         if (config.debug_send) {
             log_messages.printf(MSG_NORMAL,
-                "[send] Sending app_version %s %d %d %s; projected %.2f GFLOPS\n",
+                "[send] Sending app_version %s %lu %d %s; projected %.2f GFLOPS\n",
                 app->name,
                 avp2->platformid, avp2->version_num, avp2->plan_class,
                 bavp->host_usage.projected_flops/1e9
@@ -640,6 +593,12 @@ static int add_wu_to_reply(
     //
     wu2 = wu;       // make copy since we're going to modify its XML field
 
+    // check if plan class specified memory usage
+    //
+    if (bavp->host_usage.mem_usage) {
+        wu2.rsc_memory_bound = bavp->host_usage.mem_usage;
+    }
+
     // adjust FPOPS figures for anonymous platform
     //
     if (bavp->cavp) {
@@ -713,10 +672,10 @@ int update_wu_on_send(WORKUNIT wu, time_t x, APP& app, BEST_APP_VERSION& bav) {
     );
     strcpy(where_clause, "");
     if (app.homogeneous_app_version) {
-        sprintf(buf2, ", app_version_id=%d", bav.avp->id);
+        sprintf(buf2, ", app_version_id=%lu", bav.avp->id);
         strcat(buf, buf2);
         sprintf(where_clause,
-            "(app_version_id=0 or app_version_id=%d)", bav.avp->id
+            "(app_version_id=0 or app_version_id=%lu)", bav.avp->id
         );
     }
     if (app_hr_type(app)) {
@@ -815,7 +774,18 @@ bool work_needed(bool locality_sched) {
 
     for (int i=0; i<NPROC_TYPES; i++) {
         if (!have_apps(i)) continue;
-        if (config.max_jobs_in_progress.exceeded(NULL, i)) {
+
+        // enforce project prefs limit on # of jobs in progress
+        //
+        bool proj_pref_exceeded = false;
+        int mj = g_wreq->project_prefs.max_jobs_in_progress;
+        if (mj) {
+            if (config.max_jobs_in_progress.project_limits.total.njobs >= mj) {
+                proj_pref_exceeded = true;
+            }
+        }
+
+        if (proj_pref_exceeded || config.max_jobs_in_progress.exceeded(NULL, i)) {
             if (config.debug_quota) {
                 log_messages.printf(MSG_NORMAL,
                     "[quota] reached limit on %s jobs in progress\n",
@@ -891,7 +861,7 @@ bool work_needed(bool locality_sched) {
 
 // return the app version ID, or -2/-3/-4 if anonymous platform
 //
-inline static int get_app_version_id(BEST_APP_VERSION* bavp) {
+inline static DB_ID_TYPE get_app_version_id(BEST_APP_VERSION* bavp) {
     if (bavp->avp) {
         return bavp->avp->id;
     } else {
@@ -957,7 +927,7 @@ int add_result_to_reply(
 
         if (config.debug_send) {
             log_messages.printf(MSG_NORMAL,
-                "[send] [RESULT#%u] [HOST#%d] (resend lost work)\n",
+                "[send] [RESULT#%lu] [HOST#%lu] (resend lost work)\n",
                 result.id, g_reply->host.id
             );
         }
@@ -965,7 +935,7 @@ int add_result_to_reply(
     retval = result.mark_as_sent(old_server_state, config.report_grace_period);
     if (retval == ERR_DB_NOT_FOUND) {
         log_messages.printf(MSG_CRITICAL,
-            "[RESULT#%u] [HOST#%d]: CAN'T SEND, already sent to another host\n",
+            "[RESULT#%lu] [HOST#%lu]: CAN'T SEND, already sent to another host\n",
             result.id, g_reply->host.id
         );
     } else if (retval) {
@@ -997,7 +967,7 @@ int add_result_to_reply(
         secs_to_hmsf(est_dur, buf1);
         secs_to_hmsf(max_time, buf2);
         log_messages.printf(MSG_NORMAL,
-            "[send] [HOST#%d] sending [RESULT#%d %s] (est. dur. %.2fs (%s)) (max time %.2fs (%s))\n",
+            "[send] [HOST#%lu] sending [RESULT#%lu %s] (est. dur. %.2fs (%s)) (max time %.2fs (%s))\n",
             g_reply->host.id, result.id, result.name, est_dur, buf1, max_time, buf2
         );
     }
@@ -1076,7 +1046,7 @@ int add_result_to_reply(
         if (bavp->trusted) {
             if (config.debug_send) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send] [WU#%u] using trusted app version, not replicating\n", wu.id
+                    "[send] [WU#%lu] using trusted app version, not replicating\n", wu.id
                 );
             }
         } else {
@@ -1089,7 +1059,7 @@ int add_result_to_reply(
             dbwu.id = wu.id;
             if (config.debug_send) {
                 log_messages.printf(MSG_NORMAL,
-                    "[send] [WU#%u] sending to untrusted host, replicating\n", wu.id
+                    "[send] [WU#%lu] sending to untrusted host, replicating\n", wu.id
                 );
             }
             retval = dbwu.update_field(buf);
@@ -1250,16 +1220,16 @@ static void send_user_messages() {
 
             // Inform the user about applications with no work
             //
-            for (i=0; i<g_wreq->preferred_apps.size(); i++) {
-                if (!g_wreq->preferred_apps[i].work_available) {
-                    APP* app = ssp->lookup_app(g_wreq->preferred_apps[i].appid);
+            for (i=0; i<g_wreq->project_prefs.selected_apps.size(); i++) {
+                if (!g_wreq->project_prefs.selected_apps[i].work_available) {
+                    APP* app = ssp->lookup_app(g_wreq->project_prefs.selected_apps[i].appid);
                     // don't write message if the app is deprecated
                     //
                     if (app) {
                         char explanation[256];
                         sprintf(explanation,
                             "No tasks are available for %s",
-                            find_user_friendly_name(g_wreq->preferred_apps[i].appid)
+                            find_user_friendly_name(g_wreq->project_prefs.selected_apps[i].appid)
                         );
                         g_reply->insert_message( explanation, "low");
                     }
@@ -1268,7 +1238,7 @@ static void send_user_messages() {
 
             // Tell the user about applications they didn't qualify for
             //
-            for (j=0; j<preferred_app_message_index; j++){
+            for (j=0; j<selected_app_message_index; j++){
                 g_reply->insert_message(g_wreq->no_work_messages.at(j));
             }
             g_reply->insert_message(
@@ -1289,14 +1259,14 @@ static void send_user_messages() {
 
         // Tell the user about applications with no work
         //
-        for (i=0; i<g_wreq->preferred_apps.size(); i++) {
-            if (!g_wreq->preferred_apps[i].work_available) {
-                APP* app = ssp->lookup_app(g_wreq->preferred_apps[i].appid);
+        for (i=0; i<g_wreq->project_prefs.selected_apps.size(); i++) {
+            if (!g_wreq->project_prefs.selected_apps[i].work_available) {
+                APP* app = ssp->lookup_app(g_wreq->project_prefs.selected_apps[i].appid);
                 // don't write message if the app is deprecated
                 if (app != NULL) {
                     sprintf(buf, "No tasks are available for %s",
                         find_user_friendly_name(
-                            g_wreq->preferred_apps[i].appid
+                            g_wreq->project_prefs.selected_apps[i].appid
                         )
                     );
                     g_reply->insert_message(buf, "low");
@@ -1351,7 +1321,7 @@ static void send_user_messages() {
             );
         }
         for (i=0; i<NPROC_TYPES; i++) {
-            if (g_wreq->dont_use_proc_type[i] && ssp->have_apps_for_proc_type[i]) {
+            if (g_wreq->project_prefs.dont_use_proc_type[i] && ssp->have_apps_for_proc_type[i]) {
                 sprintf(buf,
                     _("Tasks for %s are available, but your preferences are set to not accept them"),
                     proc_type_name(i)
@@ -1367,7 +1337,7 @@ static void send_user_messages() {
             g_reply->insert_message(buf, "low");
             if (config.debug_quota) {
                 log_messages.printf(MSG_NORMAL,
-                    "[quota] Daily quota %d exceeded for app version %d\n",
+                    "[quota] Daily quota %d exceeded for app version %lu\n",
                     havp->max_jobs_per_day, havp->app_version_id
                 );
             }
@@ -1404,7 +1374,7 @@ void send_work_setup() {
 
     // parse project preferences (e.g. no GPUs)
     //
-    get_prefs_info();
+    g_wreq->project_prefs.parse();
 
     if (g_wreq->anonymous_platform) {
         estimate_flops_anon_platform();
@@ -1599,7 +1569,7 @@ int update_host_app_versions(vector<SCHED_DB_RESULT>& results, int hostid) {
         } else {
             if (config.debug_credit) {
                 log_messages.printf(MSG_NORMAL,
-                    "[credit] created host_app_version record (%d, %d)\n",
+                    "[credit] created host_app_version record (%lu, %lu)\n",
                     hav.host_id, hav.app_version_id
                 );
             }
@@ -1623,7 +1593,7 @@ void send_work() {
         if (send_targeted_jobs()) {
             if (config.debug_assignment) {
                 log_messages.printf(MSG_NORMAL,
-                    "[assign] [HOST#%d] sent assigned jobs\n", g_reply->host.id
+                    "[assign] [HOST#%lu] sent assigned jobs\n", g_reply->host.id
                 );
             }
             goto done;
@@ -1634,7 +1604,7 @@ void send_work() {
         if (send_broadcast_jobs()) {
             if (config.debug_assignment) {
                 log_messages.printf(MSG_NORMAL,
-                    "[assign] [HOST#%d] sent assigned jobs\n", g_reply->host.id
+                    "[assign] [HOST#%lu] sent assigned jobs\n", g_reply->host.id
                 );
             }
             goto done;
diff --git a/sched/sched_send.h b/sched/sched_send.h
index eebeca5..373533f 100644
--- a/sched/sched_send.h
+++ b/sched/sched_send.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SCHED_SEND_
-#define _SCHED_SEND_
+#ifndef BOINC_SCHED_SEND_H
+#define BOINC_SCHED_SEND_H
 
 #include <string.h>
 
@@ -56,7 +56,7 @@ extern const char* find_user_friendly_name(int appid);
 extern bool work_needed(bool);
 extern void send_work_setup();
 extern int effective_ncpus();
-extern int preferred_app_message_index;
+extern int selected_app_message_index;
 extern void update_n_jobs_today();
 extern int nfiles_on_host(WORKUNIT&);
 
diff --git a/sched/sched_shmem.cpp b/sched/sched_shmem.cpp
index 29fa8a6..04f8b31 100644
--- a/sched/sched_shmem.cpp
+++ b/sched/sched_shmem.cpp
@@ -189,7 +189,7 @@ int SCHED_SHMEM::scan_tables() {
             vector<APP_VERSION> avs;
             char query[1024];
             sprintf(query,
-                "where appid=%d and platformid=%d and deprecated=0",
+                "where appid=%lu and platformid=%lu and deprecated=0",
                 sapp.id, splatform.id
             );
             while (!app_version.enumerate(query)) {
@@ -264,14 +264,14 @@ PLATFORM* SCHED_SHMEM::lookup_platform(char* name) {
     return NULL;
 }
 
-PLATFORM* SCHED_SHMEM::lookup_platform_id(int id) {
+PLATFORM* SCHED_SHMEM::lookup_platform_id(DB_ID_TYPE id) {
     for (int i=0; i<nplatforms; i++) {
         if (platforms[i].id == id) return &platforms[i];
     }
     return NULL;
 }
 
-APP* SCHED_SHMEM::lookup_app(int id) {
+APP* SCHED_SHMEM::lookup_app(DB_ID_TYPE id) {
     for (int i=0; i<napps; i++) {
         if (apps[i].id == id) return &apps[i];
     }
@@ -285,7 +285,7 @@ APP* SCHED_SHMEM::lookup_app_name(char* name) {
     return NULL;
 }
 
-APP_VERSION* SCHED_SHMEM::lookup_app_version(int id) {
+APP_VERSION* SCHED_SHMEM::lookup_app_version(DB_ID_TYPE id) {
     APP_VERSION* avp;
     for (int i=0; i<napp_versions; i++) {
         avp = &app_versions[i];
@@ -338,7 +338,7 @@ void SCHED_SHMEM::show(FILE* f) {
     fprintf(f, "apps:\n");
     for (int i=0; i<napps; i++) {
         APP& app = apps[i];
-        fprintf(f, "id: %d name: %s hr: %d weight: %.2f beta: %d hav: %d nci: %d\n",
+        fprintf(f, "id: %lu name: %s hr: %d weight: %.2f beta: %d hav: %d nci: %d\n",
             app.id, app.name, app.homogeneous_redundancy, app.weight,
             app.beta, app.homogeneous_app_version, app.non_cpu_intensive
         );
@@ -346,7 +346,7 @@ void SCHED_SHMEM::show(FILE* f) {
     fprintf(f, "app versions:\n");
     for (int i=0; i<napp_versions; i++) {
         APP_VERSION av = app_versions[i];
-        fprintf(f, "appid: %d platformid: %d version_num: %d plan_class: %s\n",
+        fprintf(f, "appid: %lu platformid: %lu version_num: %d plan_class: %s\n",
             av.appid, av.platformid, av.version_num, av.plan_class
         );
     }
@@ -403,7 +403,7 @@ void SCHED_SHMEM::show(FILE* f) {
             appname = app?app->name:"missing";
             delta_t = dtime() - wu_result.time_added_to_shared_memory;
             fprintf(f,
-                "%4d %12.12s %10d %10d %10d %8d %10d %7ds %9d %12s %9d\n",
+                "%4d %12.12s %10lu %10lu %10d %8d %10d %7ds %9d %12s %9d\n",
                 i,
                 appname,
                 wu_result.workunit.id,
@@ -421,7 +421,7 @@ void SCHED_SHMEM::show(FILE* f) {
             fprintf(f, "%4d: ---\n", i);
             break;
         default:
-            fprintf(f, "%4d: PID %d: result %u\n", i, wu_result.state, wu_result.resultid);
+            fprintf(f, "%4d: PID %d: result %lu\n", i, wu_result.state, wu_result.resultid);
         }
     }
 }
diff --git a/sched/sched_shmem.h b/sched/sched_shmem.h
index 5b21be8..6c8fc32 100644
--- a/sched/sched_shmem.h
+++ b/sched/sched_shmem.h
@@ -21,8 +21,8 @@
 // small static tables like app_version,
 // and a queue of results waiting to be sent.
 
-#ifndef _SCHED_SHMEM_H_
-#define _SCHED_SHMEM_H_
+#ifndef BOINC_SCHED_SHMEM_H
+#define BOINC_SCHED_SHMEM_H
 
 #include "boinc_db.h"
 #include "sched_util.h"
@@ -41,7 +41,7 @@
 #define MAX_APPS            10
 #endif
 #ifndef MAX_APP_VERSIONS
-#define MAX_APP_VERSIONS    50
+#define MAX_APP_VERSIONS    100
 #endif
 #ifndef MAX_ASSIGNMENTS
 #define MAX_ASSIGNMENTS     10
@@ -70,7 +70,7 @@ struct WU_RESULT {
     int infeasible_count;
     bool need_reliable;        // try to send to a reliable host
     WORKUNIT workunit;
-    int resultid;
+    DB_ID_TYPE resultid;
     int time_added_to_shared_memory;
     int res_priority;
     int res_server_state;
@@ -121,9 +121,9 @@ struct SCHED_SHMEM {
     void show(FCGI_FILE*);
 #endif
 
-    APP* lookup_app(int);
+    APP* lookup_app(DB_ID_TYPE);
     APP* lookup_app_name(char*);
-    APP_VERSION* lookup_app_version(int);
+    APP_VERSION* lookup_app_version(DB_ID_TYPE);
     APP_VERSION* lookup_app_version_platform_plan_class(
         int platform, char* plan_class
     );
@@ -134,7 +134,7 @@ struct SCHED_SHMEM {
         }
         return x;
     }
-    PLATFORM* lookup_platform_id(int);
+    PLATFORM* lookup_platform_id(DB_ID_TYPE);
     PLATFORM* lookup_platform(char*);
 };
 
diff --git a/sched/sched_types.cpp b/sched/sched_types.cpp
index a176ffc..6daedaa 100644
--- a/sched/sched_types.cpp
+++ b/sched/sched_types.cpp
@@ -15,6 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// Utility classes for the BOINC scheduler
+
 #include "config.h"
 #include <cstdlib>
 #include <cassert>
@@ -167,6 +169,64 @@ int CLIENT_PLATFORM::parse(XML_PARSER& xp) {
     return ERR_XML_PARSE;
 }
 
+// Parse user's project preferences.
+// TODO: use XML_PARSER
+//
+void PROJECT_PREFS::parse() {
+    char buf[8096];
+    std::string str;
+    unsigned int pos = 0;
+    int temp_int=0;
+    bool flag;
+
+    extract_venue(g_reply->user.project_prefs, g_reply->host.venue, buf, sizeof(buf));
+    str = buf;
+
+    // scan user's project prefs for elements of the form <app_id>N</app_id>,
+    // indicating the apps they want to run.
+    //
+    selected_apps.clear();
+    while (parse_int(str.substr(pos,str.length()-pos).c_str(), "<app_id>", temp_int)) {
+        APP_INFO ai;
+        ai.appid = temp_int;
+        ai.work_available = false;
+        selected_apps.push_back(ai);
+
+        pos = str.find("<app_id>", pos) + 1;
+    }
+    if (parse_bool(buf,"allow_non_selected_apps", flag)) {
+        allow_non_selected_apps = flag;
+    }
+    if (parse_bool(buf,"allow_beta_work", flag)) {
+        allow_beta_work = flag;
+    }
+    if (parse_bool(buf,"no_gpus", flag)) {
+        // deprecated, but need to handle
+        if (flag) {
+            for (int i=1; i<NPROC_TYPES; i++) {
+                dont_use_proc_type[i] = true;
+            }
+        }
+    }
+    if (parse_bool(buf,"no_cpu", flag)) {
+        dont_use_proc_type[PROC_TYPE_CPU] = flag;
+    }
+    if (parse_bool(buf,"no_cuda", flag)) {
+        dont_use_proc_type[PROC_TYPE_NVIDIA_GPU] = flag;
+    }
+    if (parse_bool(buf,"no_ati", flag)) {
+        dont_use_proc_type[PROC_TYPE_AMD_GPU] = flag;
+    }
+    if (parse_bool(buf,"no_intel_gpu", flag)) {
+        dont_use_proc_type[PROC_TYPE_INTEL_GPU] = flag;
+    }
+    if (parse_int(buf, "<max_cpus>", temp_int)) {
+        max_cpus = temp_int;
+    }
+    if (parse_int(buf, "<max_jobs>", temp_int)) {
+        max_jobs_in_progress = temp_int;
+    }
+}
 
 void WORK_REQ::add_no_work_message(const char* message) {
     for (unsigned int i=0; i<no_work_messages.size(); i++) {
@@ -262,7 +322,9 @@ const char* SCHEDULER_REQUEST::parse(XML_PARSER& xp) {
         return "xp.get_tag() failed";
     }
     if (xp.match_tag("?xml")) {
-        xp.get_tag();
+        if (xp.get_tag()) {
+            return "xp.get_tag() failed";
+        }
     }
     if (!xp.match_tag("scheduler_request")) return "no start tag";
     while (!xp.get_tag()) {
@@ -275,7 +337,7 @@ const char* SCHEDULER_REQUEST::parse(XML_PARSER& xp) {
             continue;
         }
         if (xp.parse_str("cross_project_id", cross_project_id, sizeof(cross_project_id))) continue;
-        if (xp.parse_int("hostid", hostid)) continue;
+        if (xp.parse_long("hostid", hostid)) continue;
         if (xp.parse_int("rpc_seqno", rpc_seqno)) continue;
         if (xp.parse_double("uptime", uptime)) continue;
         if (xp.parse_double("previous_uptime", previous_uptime)) continue;
@@ -297,13 +359,17 @@ const char* SCHEDULER_REQUEST::parse(XML_PARSER& xp) {
                     if (retval) {
                         if (!strcmp(platform.name, "anonymous")) {
                             if (retval == ERR_NOT_FOUND) {
-                                g_reply->insert_message(
-                                    _("Unknown app name in app_info.xml"),
-                                    "notice"
+                                char buf[1024];
+                                snprintf(buf, sizeof(buf),
+                                    "Unknown app name %s in app_info.xml",
+                                    cav.app_name
+
                                 );
+                                buf[1023] = 0;
+                                g_reply->insert_message(buf, "notice");
                             } else {
                                 g_reply->insert_message(
-                                    _("Syntax error in app_info.xml"),
+                                    "Syntax error in app_info.xml",
                                     "notice"
                                 );
                             }
@@ -342,7 +408,8 @@ const char* SCHEDULER_REQUEST::parse(XML_PARSER& xp) {
             );
             if (retval) return "error copying global prefs";
             safe_strcat(global_prefs_xml, buf);
-            safe_strcat(global_prefs_xml, "</global_preferences>\n");
+            // xp.element_contents() strips the linebreak from buf so we add it back because it is essential
+            safe_strcat(global_prefs_xml, "\n</global_preferences>\n");
             continue;
         }
         if (xp.match_tag("working_global_preferences")) {
@@ -527,7 +594,7 @@ int SCHEDULER_REQUEST::write(FILE* fout) {
         "  <authenticator>%s</authentiicator>\n"
         "  <platform_name>%s</platform_name>\n"
         "  <cross_project_id>%s</cross_project_id>\n"
-        "  <hostid>%d</hostid>\n"
+        "  <hostid>%lu</hostid>\n"
         "  <core_client_major_version>%d</core_client_major_version>\n"
         "  <core_client_minor_version>%d</core_client_minor_version>\n"
         "  <core_client_release>%d</core_client_release>\n"
@@ -581,7 +648,7 @@ int SCHEDULER_REQUEST::write(FILE* fout) {
   
     fprintf(fout,
         "  <host>\n"
-        "    <id>%d</id>\n"
+        "    <id>%lu</id>\n"
         "    <rpc_time>%d</rpc_time>\n"
         "    <timezone>%d</timezone>\n"
         "    <d_total>%.15f</d_total>\n"
@@ -725,7 +792,7 @@ int SCHEDULER_REPLY::write(FILE* fout, SCHEDULER_REQUEST& sreq) {
         fprintf(fout, "<request_delay>%f</request_delay>\n", request_delay);
     }
     log_messages.printf(MSG_NORMAL,
-        "Sending reply to [HOST#%d]: %d results, delay req %.2f\n",
+        "Sending reply to [HOST#%lu]: %d results, delay req %.2f\n",
         host.id, wreq.njobs_sent, request_delay
     );
 
@@ -807,7 +874,7 @@ int SCHEDULER_REPLY::write(FILE* fout, SCHEDULER_REQUEST& sreq) {
     if (user.id) {
         xml_escape(user.name, buf, sizeof(buf));
         fprintf(fout,
-            "<userid>%d</userid>\n"
+            "<userid>%lu</userid>\n"
             "<user_name>%s</user_name>\n"
             "<user_total_credit>%f</user_total_credit>\n"
             "<user_expavg_credit>%f</user_expavg_credit>\n"
@@ -852,7 +919,7 @@ int SCHEDULER_REPLY::write(FILE* fout, SCHEDULER_REQUEST& sreq) {
     }
     if (hostid) {
         fprintf(fout,
-            "<hostid>%d</hostid>\n",
+            "<hostid>%lu</hostid>\n",
             hostid
         );
     }
@@ -872,7 +939,7 @@ int SCHEDULER_REPLY::write(FILE* fout, SCHEDULER_REQUEST& sreq) {
     if (team.id) {
         xml_escape(team.name, buf, sizeof(buf));
         fprintf(fout,
-            "<teamid>%d</teamid>\n"
+            "<teamid>%lu</teamid>\n"
             "<team_name>%s</team_name>\n",
             team.id,
             buf
@@ -1111,7 +1178,7 @@ int APP_VERSION::write(FILE* fout) {
     safe_strcpy(buf, xml_doc);
     char* p = strstr(buf, "</app_version>");
     if (!p) {
-        fprintf(stderr, "ERROR: app version %d XML has no end tag!\n", id);
+        fprintf(stderr, "ERROR: app version %lu XML has no end tag!\n", id);
         return -1;
     }
     *p = 0;
@@ -1184,7 +1251,7 @@ int SCHED_DB_RESULT::write_to_client(FILE* fout) {
     safe_strcpy(buf, xml_doc_in);
     char* p = strstr(buf, "</result>");
     if (!p) {
-        fprintf(stderr, "ERROR: result %d XML has no end tag!\n", id);
+        fprintf(stderr, "ERROR: result %lu XML has no end tag!\n", id);
         return -1;
     }
     *p = 0;
@@ -1464,10 +1531,10 @@ void GUI_URLS::get_gui_urls(USER& user, HOST& host, TEAM& team, char* buf, int l
     if (!text) return;
     strlcpy(buf, text, len);
 
-    sprintf(userid, "%d", user.id);
-    sprintf(hostid, "%d", host.id);
+    sprintf(userid, "%lu", user.id);
+    sprintf(hostid, "%lu", host.id);
     if (user.teamid) {
-        sprintf(teamid, "%d", team.id);
+        sprintf(teamid, "%lu", team.id);
     } else {
         strcpy(teamid, "0");
         while (remove_element(buf, "<ifteam>", "</ifteam>")) {
@@ -1503,28 +1570,28 @@ void get_weak_auth(USER& user, char* buf) {
     char buf2[1024], out[256];
     sprintf(buf2, "%s%s", user.authenticator, user.passwd_hash);
     md5_block((unsigned char*)buf2, strlen(buf2), out);
-    sprintf(buf, "%d_%s", user.id, out);
+    sprintf(buf, "%lu_%s", user.id, out);
 }
 
 void get_rss_auth(USER& user, char* buf) {
     char buf2[256], out[256];
     sprintf(buf2, "%s%s%s", user.authenticator, user.passwd_hash, "notify_rss");
     md5_block((unsigned char*)buf2, strlen(buf2), out);
-    sprintf(buf, "%d_%s", user.id, out);
+    sprintf(buf, "%lu_%s", user.id, out);
 }
 
 void read_host_app_versions() {
     DB_HOST_APP_VERSION hav;
     char clause[256];
 
-    sprintf(clause, "where host_id=%d", g_reply->host.id);
+    sprintf(clause, "where host_id=%lu", g_reply->host.id);
     while (!hav.enumerate(clause)) {
         g_wreq->host_app_versions.push_back(hav);
     }
     g_wreq->host_app_versions_orig = g_wreq->host_app_versions;
 }
 
-DB_HOST_APP_VERSION* gavid_to_havp(int gavid) {
+DB_HOST_APP_VERSION* gavid_to_havp(DB_ID_TYPE gavid) {
     for (unsigned int i=0; i<g_wreq->host_app_versions.size(); i++) {
         DB_HOST_APP_VERSION& hav = g_wreq->host_app_versions[i];
         if (hav.app_version_id == gavid) return &hav;
diff --git a/sched/sched_types.h b/sched/sched_types.h
index 974cdb0..4d9de4c 100644
--- a/sched/sched_types.h
+++ b/sched/sched_types.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _SCHED_TYPES_
-#define _SCHED_TYPES_
+#ifndef BOINC_SCHED_TYPES_H
+#define BOINC_SCHED_TYPES_H
 
 #include <cstdio>
 #include <vector>
@@ -66,6 +66,9 @@ struct HOST_USAGE {
     double gpu_ram;
     double avg_ncpus;
     double max_ncpus;
+    double mem_usage;
+        // mem usage if specified by the plan class
+        // (overrides wu.rsc_memory_bound)
     double projected_flops;
         // the scheduler's best estimate of wu.rsc_fpops_est/elapsed_time.
         // Taken from host_app_version elapsed time statistics if available,
@@ -74,7 +77,7 @@ struct HOST_USAGE {
         // stored in result.flops_estimate, and used for credit calculations
     char cmdline[256];
     char custom_coproc_type[256];
-        // if we're using a custom GPU type, it's name
+        // if we're using a custom GPU type, its name
         // TODO: get rid of PROC_TYPE_*, and this
 
     HOST_USAGE() {
@@ -83,6 +86,7 @@ struct HOST_USAGE {
         gpu_ram = 0;
         avg_ncpus = 1;
         max_ncpus = 1;
+        mem_usage = 0;
         projected_flops = 0;
         peak_flops = 0;
         strcpy(cmdline, "");
@@ -94,6 +98,7 @@ struct HOST_USAGE {
         gpu_ram = 0;
         avg_ncpus = 1;
         max_ncpus = 1;
+        mem_usage = 0;
         if (flops <= 0) flops = 1e9;
         projected_flops = flops;
         peak_flops = flops;
@@ -158,7 +163,7 @@ struct CLIENT_APP_VERSION {
 // keep track of the best app_version for each app for this host
 //
 struct BEST_APP_VERSION {
-    int appid;
+    DB_ID_TYPE appid;
     bool for_64b_jobs;
         // maintain this separately for jobs that need > 2GB RAM,
         // in which case we can't use 32-bit apps
@@ -269,7 +274,7 @@ struct SCHEDULER_REQUEST {
     std::vector<CLIENT_PLATFORM> alt_platforms;
     PLATFORM_LIST platforms;
     char cross_project_id[256];
-    int hostid;                 // zero if first RPC
+    DB_ID_TYPE hostid;                 // zero if first RPC
     int core_client_major_version;
     int core_client_minor_version;
     int core_client_release;
@@ -357,8 +362,30 @@ struct DISK_LIMITS {
     double min_free;
 };
 
+// parsed version of project prefs that relate to scheduling
+//
+struct PROJECT_PREFS {
+    std::vector<APP_INFO> selected_apps;
+    bool dont_use_proc_type[NPROC_TYPES];
+    bool allow_non_selected_apps;
+    bool allow_beta_work;
+    int max_jobs_in_progress;
+    int max_cpus;
+
+    void parse();
+
+    PROJECT_PREFS() {
+        memset(&dont_use_proc_type, 0, sizeof(dont_use_proc_type));
+        allow_non_selected_apps = false;
+        allow_beta_work = false;
+        max_jobs_in_progress = 0;
+        max_cpus = 0;
+    }
+};
+
 // summary of a client's request for work, and our response to it
-// Note: this is zeroed out in SCHEDULER_REPLY constructor
+// Note: this is zeroed out in SCHEDULER_REPLY constructor,
+// so don't put any vectors here
 //
 struct WORK_REQ_BASE {
     bool anonymous_platform;
@@ -384,12 +411,6 @@ struct WORK_REQ_BASE {
         // by the client.  It may have contained results,
         // so check and resend just in case.
 
-    // user preferences
-    //
-    bool dont_use_proc_type[NPROC_TYPES];
-    bool allow_non_preferred_apps;
-    bool allow_beta_work;
-
     bool has_reliable_version;
         // whether the host has a reliable app version
 
@@ -468,7 +489,6 @@ struct WORK_REQ_BASE {
     bool max_jobs_on_host_proc_type_exceeded[NPROC_TYPES];
     bool no_jobs_available;     // project has no work right now
     int max_jobs_per_rpc;
-    void get_job_limits();
 
     bool max_jobs_exceeded() {
         if (max_jobs_on_host_exceeded) return true;
@@ -484,12 +504,13 @@ struct WORK_REQ_BASE {
 };
 
 struct WORK_REQ : public WORK_REQ_BASE {
-    std::vector<APP_INFO> preferred_apps;
+    PROJECT_PREFS project_prefs;
     std::vector<USER_MESSAGE> no_work_messages;
     std::vector<BEST_APP_VERSION*> best_app_versions;
     std::vector<DB_HOST_APP_VERSION> host_app_versions;
     std::vector<DB_HOST_APP_VERSION> host_app_versions_orig;
 
+    void get_job_limits();
     void add_no_work_message(const char*);
 
     ~WORK_REQ() {}
@@ -503,7 +524,7 @@ struct SCHEDULER_REPLY {
     DISK_LIMITS disk_limits;
     double request_delay;       // don't request again until this time elapses
     std::vector<USER_MESSAGE> messages;
-    int hostid;
+    DB_ID_TYPE hostid;
         // nonzero only if a new host record was created.
         // this tells client to reset rpc_seqno
     int lockfile_fd; // file descriptor of lockfile, or -1 if no lock.
@@ -555,10 +576,10 @@ static inline void add_no_work_message(const char* m) {
 extern void get_weak_auth(USER&, char*);
 extern void get_rss_auth(USER&, char*);
 extern void read_host_app_versions();
-extern DB_HOST_APP_VERSION* get_host_app_version(int gavid);
+extern DB_HOST_APP_VERSION* get_host_app_version(DB_ID_TYPE gavid);
 extern void write_host_app_versions();
 
-extern DB_HOST_APP_VERSION* gavid_to_havp(int gavid);
+extern DB_HOST_APP_VERSION* gavid_to_havp(DB_ID_TYPE gavid);
 extern DB_HOST_APP_VERSION* quota_exceeded_version();
 
 inline bool is_64b_platform(const char* name) {
@@ -566,4 +587,5 @@ inline bool is_64b_platform(const char* name) {
 }
 
 extern double available_frac(BEST_APP_VERSION&);
+
 #endif
diff --git a/sched/sched_util.cpp b/sched/sched_util.cpp
index 2dd0423..b3ad1c9 100644
--- a/sched/sched_util.cpp
+++ b/sched/sched_util.cpp
@@ -15,6 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// utility functions for BOINC server programs
+
 #include "config.h"
 
 #include "boinc_db.h"
@@ -31,7 +33,8 @@ void compute_avg_turnaround(HOST& host, double turnaround) {
 }
 
 int PERF_INFO::get_from_db() {
-    int retval, n;
+    int retval;
+    long n;
     DB_HOST host;
 
     host_fpops_mean = 2.2e9;
@@ -49,21 +52,21 @@ int PERF_INFO::get_from_db() {
     return 0;
 }
 
-int count_results(char* query, int& n) {
+int count_results(char* query, long& n) {
     DB_RESULT result;
     return result.count(n, query);
 }
 
-int count_workunits(int& n, const char* query) {
+int count_workunits(long& n, const char* query) {
     DB_WORKUNIT workunit;
     return workunit.count(n, query);
 }
 
-int count_unsent_results(int& n, int appid, int size_class) {
+int count_unsent_results(long& n, DB_ID_TYPE appid, int size_class) {
     char query[1024], buf[256];
     sprintf(query, "where server_state<=%d", RESULT_SERVER_STATE_UNSENT);
     if (appid) {
-        sprintf(buf, " and appid=%d", appid);
+        sprintf(buf, " and appid=%lu", appid);
         strcat(query, buf);
     }
     if (size_class >= 0) {
@@ -78,7 +81,7 @@ int count_unsent_results(int& n, int appid, int size_class) {
 // This could be used, for example, so that late workunits
 // are sent only to cloud or cluster resources
 //
-static int restrict_wu(WORKUNIT& _wu, int id, int assign_type) {
+static int restrict_wu(WORKUNIT& _wu, DB_ID_TYPE id, int assign_type) {
     DB_RESULT result;
     DB_ASSIGNMENT asg;
     DB_WORKUNIT wu;
@@ -88,7 +91,7 @@ static int restrict_wu(WORKUNIT& _wu, int id, int assign_type) {
 
     // mark unsent results as DIDNT_NEED
     //
-    sprintf(buf, "where workunitid=%d and server_state=%d",
+    sprintf(buf, "where workunitid=%lu and server_state=%d",
         wu.id, RESULT_SERVER_STATE_UNSENT
     );
     while (!result.enumerate(buf)) {
@@ -118,11 +121,11 @@ static int restrict_wu(WORKUNIT& _wu, int id, int assign_type) {
     return retval;
 }
 
-int restrict_wu_to_user(WORKUNIT& wu, int userid) {
+int restrict_wu_to_user(WORKUNIT& wu, DB_ID_TYPE userid) {
     return restrict_wu(wu, userid, ASSIGN_USER);
 }
 
-int restrict_wu_to_host(WORKUNIT& wu, int hostid) {
+int restrict_wu_to_host(WORKUNIT& wu, DB_ID_TYPE hostid) {
     return restrict_wu(wu, hostid, ASSIGN_HOST);
 }
 
diff --git a/sched/sched_util.h b/sched/sched_util.h
index 6c2f6fd..1d8afdb 100644
--- a/sched/sched_util.h
+++ b/sched/sched_util.h
@@ -17,8 +17,8 @@
 
 // server utility functions that refer to the DB
 
-#ifndef SCHED_UTIL_H
-#define SCHED_UTIL_H
+#ifndef BOINC_SCHED_UTIL_H
+#define BOINC_SCHED_UTIL_H
 
 #include "boinc_db_types.h"
 #include "util.h"
@@ -41,17 +41,19 @@ struct PERF_INFO {
 // make a "pseudo ID" that combines the app ID and the resource type
 // else just used the app_version ID
 //
-inline int generalized_app_version_id(int avid, int appid) {
+inline DB_ID_TYPE generalized_app_version_id(
+    DB_ID_TYPE avid, DB_ID_TYPE appid
+) {
     if (avid < 0) {
         return appid*1000000 - avid;
     }
     return avid;
 }
 
-extern int count_workunits(int&, const char* query);
-extern int count_unsent_results(int&, int appid, int size_class=-1);
-extern int restrict_wu_to_user(WORKUNIT& wu, int userid);
-extern int restrict_wu_to_host(WORKUNIT& wu, int hostid);
+extern int count_workunits(long&, const char* query);
+extern int count_unsent_results(long&, DB_ID_TYPE appid, int size_class=-1);
+extern int restrict_wu_to_user(WORKUNIT& wu, DB_ID_TYPE userid);
+extern int restrict_wu_to_host(WORKUNIT& wu, DB_ID_TYPE hostid);
 extern int min_transition_time(double&);
 
 #endif
diff --git a/sched/sched_util_basic.h b/sched/sched_util_basic.h
index ce30eb7..38da19b 100644
--- a/sched/sched_util_basic.h
+++ b/sched/sched_util_basic.h
@@ -18,8 +18,8 @@
 // general back-end utility functions (not scheduler-specific)
 // No database-related stuff here; put that in sched_util.h
 
-#ifndef SCHED_UTIL_BASIC_H
-#define SCHED_UTIL_BASIC_H
+#ifndef BOINC_SCHED_UTIL_BASIC_H
+#define BOINC_SCHED_UTIL_BASIC_H
 
 #include "util.h"
 
diff --git a/sched/sched_version.cpp b/sched/sched_version.cpp
index 68909be..bc9559e 100644
--- a/sched/sched_version.cpp
+++ b/sched/sched_version.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2016 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -15,6 +15,18 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// Logic for deciding what app version to use for jobs.
+//
+// The main interface is get_app_version(),
+// which returns the "best" app version for a given job, i.e. which
+// - passes the plan class test for this host
+// - uses a resource for which work is being requested.
+// - has the highest projected FLOPS
+//
+// Normally we choose among the project's app versions.
+// However, if the client is using anonymous platform,
+// we choose among the client's app versions.
+
 #include "boinc_db.h"
 
 #include "sched_main.h"
@@ -27,13 +39,13 @@
 
 #include "sched_version.h"
 
-inline void dont_need_message(
+static inline void dont_need_message(
     const char* p, APP_VERSION* avp, CLIENT_APP_VERSION* cavp
 ) {
     if (!config.debug_version_select) return;
     if (avp) {
         log_messages.printf(MSG_NORMAL,
-            "[version] [AV#%d] Don't need %s jobs, skipping\n",
+            "[version] [AV#%lu] Don't need %s jobs, skipping\n",
             avp->id, p
         );
     } else if (cavp) {
@@ -44,10 +56,9 @@ inline void dont_need_message(
     }
 }
 
-// for new-style requests, check that the app version uses a
-// resource for which we need work
+// check that the app version uses a resource for which we need work
 //
-bool need_this_resource(
+static bool need_this_resource(
     HOST_USAGE& host_usage, APP_VERSION* avp, CLIENT_APP_VERSION* cavp
 ) {
     if (!g_wreq->rsc_spec_request) {
@@ -61,7 +72,7 @@ bool need_this_resource(
     return true;
 }
 
-static DB_HOST_APP_VERSION* lookup_host_app_version(int gavid) {
+static DB_HOST_APP_VERSION* lookup_host_app_version(DB_ID_TYPE gavid) {
     for (unsigned int i=0; i<g_wreq->host_app_versions.size(); i++) {
         DB_HOST_APP_VERSION& hav = g_wreq->host_app_versions[i];
         if (hav.app_version_id == gavid) return &hav;
@@ -69,19 +80,19 @@ static DB_HOST_APP_VERSION* lookup_host_app_version(int gavid) {
     return NULL;
 }
 
-static inline bool app_version_is_trusted(int gavid) {
+static inline bool app_version_is_trusted(DB_ID_TYPE gavid) {
     DB_HOST_APP_VERSION* havp = lookup_host_app_version(gavid);
     if (!havp) return false;
     return havp->trusted;
 }
 
-static inline bool app_version_is_reliable(int gavid) {
+static inline bool app_version_is_reliable(DB_ID_TYPE gavid) {
     DB_HOST_APP_VERSION* havp = lookup_host_app_version(gavid);
     if (!havp) return false;
     return havp->reliable;
 }
 
-inline int host_usage_to_gavid(HOST_USAGE& hu, APP& app) {
+inline DB_ID_TYPE host_usage_to_gavid(HOST_USAGE& hu, APP& app) {
     return app.id*1000000 - hu.resource_type();
 }
 
@@ -104,7 +115,7 @@ inline int scaled_max_jobs_per_day(DB_HOST_APP_VERSION& hav, HOST_USAGE& hu) {
     }
     if (config.debug_quota) {
         log_messages.printf(MSG_NORMAL,
-            "[quota] [AV#%d] scaled max jobs per day: %d\n",
+            "[quota] [AV#%lu] scaled max jobs per day: %d\n",
             hav.app_version_id,
             n
         );
@@ -112,14 +123,14 @@ inline int scaled_max_jobs_per_day(DB_HOST_APP_VERSION& hav, HOST_USAGE& hu) {
     return n;
 }
 
-inline bool daily_quota_exceeded(int gavid, HOST_USAGE& hu) {
+inline bool daily_quota_exceeded(DB_ID_TYPE gavid, HOST_USAGE& hu) {
     DB_HOST_APP_VERSION* havp = lookup_host_app_version(gavid);
     if (!havp) return false;
     int q = scaled_max_jobs_per_day(*havp, hu);
     if (havp->n_jobs_today >= q) {
         if (config.debug_quota) {
             log_messages.printf(MSG_NORMAL,
-                "[quota] [AV#%d] daily quota exceeded: %d >= %d\n",
+                "[quota] [AV#%lu] daily quota exceeded: %d >= %d\n",
                 gavid, havp->n_jobs_today, q
             );
         }
@@ -361,17 +372,17 @@ void estimate_flops(HOST_USAGE& hu, APP_VERSION& av) {
         if (config.debug_version_select) {
             if (config.estimate_flops_from_hav_pfc) {
                 log_messages.printf(MSG_NORMAL,
-                    "[version] [AV#%d] (%s) setting projected flops based on host_app_version pfc: %.2fG\n",
+                    "[version] [AV#%lu] (%s) setting projected flops based on host_app_version pfc: %.2fG\n",
                     av.id, av.plan_class, hu.projected_flops/1e9
                 );
             } else {
                 log_messages.printf(MSG_NORMAL,
-                    "[version] [AV#%d] (%s) setting projected flops based on host elapsed time avg: %.2fG\n",
+                    "[version] [AV#%lu] (%s) setting projected flops based on host elapsed time avg: %.2fG\n",
                     av.id, av.plan_class, hu.projected_flops/1e9
                 );
             }
             log_messages.printf(MSG_NORMAL,
-                "[version] [AV#%d] (%s) comparison pfc: %.2fG  et: %.2fG\n",
+                "[version] [AV#%lu] (%s) comparison pfc: %.2fG  et: %.2fG\n",
                 av.id, av.plan_class, hu.peak_flops/(havp->pfc.get_avg()+1e-18)/1e+9,
                 1e-9/havp->et.get_avg()
             );
@@ -381,7 +392,7 @@ void estimate_flops(HOST_USAGE& hu, APP_VERSION& av) {
             hu.projected_flops = hu.peak_flops/av.pfc.get_avg();
             if (config.debug_version_select) {
                 log_messages.printf(MSG_NORMAL,
-                    "[version] [AV#%d] (%s) adjusting projected flops based on PFC avg: %.2fG\n",
+                    "[version] [AV#%lu] (%s) adjusting projected flops based on PFC avg: %.2fG\n",
                     av.id, av.plan_class, hu.projected_flops/1e9
                 );
             }
@@ -389,7 +400,7 @@ void estimate_flops(HOST_USAGE& hu, APP_VERSION& av) {
             hu.projected_flops = g_reply->host.p_fpops * (hu.avg_ncpus + GPU_CPU_RATIO*hu.gpu_usage);
             if (config.debug_version_select) {
                 log_messages.printf(MSG_NORMAL,
-                    "[version] [AV#%d] (%s) using conservative projected flops: %.2fG\n",
+                    "[version] [AV#%lu] (%s) using conservative projected flops: %.2fG\n",
                     av.id, av.plan_class, hu.projected_flops/1e9
                 );
             }
@@ -407,7 +418,7 @@ static void app_version_desc(BEST_APP_VERSION& bav, char* buf) {
     if (bav.cavp) {
         sprintf(buf, "anonymous platform (%s)", proc_type_name(bav.host_usage.proc_type));
     } else {
-        sprintf(buf, "[AV#%d]", bav.avp->id);
+        sprintf(buf, "[AV#%lu]", bav.avp->id);
     }
 }
 
@@ -439,7 +450,7 @@ static double max_32b_address_space() {
 // Else return NULL.
 //
 static BEST_APP_VERSION* check_homogeneous_app_version(
-    WORKUNIT& wu, bool /* reliable_only */
+    const WORKUNIT& wu, bool /* reliable_only */
     // TODO: enforce reliable_only
 ) {
     BEST_APP_VERSION bav;
@@ -526,7 +537,7 @@ static BEST_APP_VERSION* check_homogeneous_app_version(
 // that maps app ID to the best app version (or NULL).
 //
 BEST_APP_VERSION* get_app_version(
-    WORKUNIT& wu, bool check_req, bool reliable_only
+    const WORKUNIT& wu, bool check_req, bool reliable_only
 ) {
     unsigned int i;
     int j;
@@ -536,7 +547,7 @@ BEST_APP_VERSION* get_app_version(
 
     if (config.debug_version_select) {
         log_messages.printf(MSG_NORMAL,
-            "[version] get_app_version(): getting app version for WU#%d (%s) appid:%d\n",
+            "[version] get_app_version(): getting app version for WU#%lu (%s) appid:%lu\n",
             wu.id, wu.name, wu.appid
         );
         if (job_needs_64b) {
@@ -550,7 +561,7 @@ BEST_APP_VERSION* get_app_version(
     APP* app = ssp->lookup_app(wu.appid);
     if (!app) {
         log_messages.printf(MSG_CRITICAL,
-            "WU refers to nonexistent app: %d\n", wu.appid
+            "WU refers to nonexistent app: %lu\n", wu.appid
         );
         return NULL;
     }
@@ -688,7 +699,7 @@ BEST_APP_VERSION* get_app_version(
             if (av.appid != wu.appid) continue;
             if (av.platformid != p->id) continue;
             if (av.beta) {
-                if (!g_wreq->allow_beta_work) {
+                if (!g_wreq->project_prefs.allow_beta_work) {
                     continue;
                 }
             }
@@ -697,7 +708,7 @@ BEST_APP_VERSION* get_app_version(
                 if (!app_plan(*g_request, av.plan_class, host_usage)) {
                     if (config.debug_version_select) {
                         log_messages.printf(MSG_NORMAL,
-                            "[version] [AV#%d] app_plan() returned false\n",
+                            "[version] [AV#%lu] app_plan() returned false\n",
                             av.id
                         );
                     }
@@ -707,7 +718,7 @@ BEST_APP_VERSION* get_app_version(
                     if (!host_usage.is_sequential_app()) {
                         if (config.debug_version_select) {
                             log_messages.printf(MSG_NORMAL,
-                                "[version] [AV#%d] client %d lacks plan class capability\n",
+                                "[version] [AV#%lu] client %d lacks plan class capability\n",
                                 av.id, g_request->core_client_version
                             );
                         }
@@ -721,10 +732,10 @@ BEST_APP_VERSION* get_app_version(
             // skip versions that go against resource prefs
             //
             int pt = host_usage.proc_type;
-            if (g_wreq->dont_use_proc_type[pt]) {
+            if (g_wreq->project_prefs.dont_use_proc_type[pt]) {
                 if (config.debug_version_select) {
                     log_messages.printf(MSG_NORMAL,
-                        "[version] [AV#%d] Skipping %s version - user prefs say no %s\n",
+                        "[version] [AV#%lu] Skipping %s version - user prefs say no %s\n",
                         av.id,
                         proc_type_name(pt),
                         proc_type_name(pt)
@@ -736,7 +747,7 @@ BEST_APP_VERSION* get_app_version(
             if (reliable_only && !app_version_is_reliable(av.id)) {
                 if (config.debug_version_select) {
                     log_messages.printf(MSG_NORMAL,
-                        "[version] [AV#%d] not reliable\n", av.id
+                        "[version] [AV#%lu] not reliable\n", av.id
                     );
                 }
                 continue;
@@ -745,7 +756,7 @@ BEST_APP_VERSION* get_app_version(
             if (daily_quota_exceeded(av.id, host_usage)) {
                 if (config.debug_version_select) {
                     log_messages.printf(MSG_NORMAL,
-                        "[version] [AV#%d] daily quota exceeded\n", av.id
+                        "[version] [AV#%lu] daily quota exceeded\n", av.id
                     );
                 }
                 continue;
@@ -756,7 +767,7 @@ BEST_APP_VERSION* get_app_version(
             if (config.max_jobs_in_progress.exceeded(app, host_usage.proc_type)) {
                 if (config.debug_version_select) {
                     log_messages.printf(MSG_NORMAL,
-                        "[version] [AV#%d] jobs in progress limit exceeded\n",
+                        "[version] [AV#%lu] jobs in progress limit exceeded\n",
                         av.id
                     );
                     config.max_jobs_in_progress.print_log();
@@ -775,7 +786,7 @@ BEST_APP_VERSION* get_app_version(
             if (g_request->core_client_version < av.min_core_version) {
                 if (config.debug_version_select) {
                     log_messages.printf(MSG_NORMAL,
-                        "[version] [AV#%d] client version %d < min core version %d\n",
+                        "[version] [AV#%lu] client version %d < min core version %d\n",
                         av.id, g_request->core_client_version, av.min_core_version
                     );
                 }
@@ -787,7 +798,7 @@ BEST_APP_VERSION* get_app_version(
             if (av.max_core_version && g_request->core_client_version > av.max_core_version) {
                 if (config.debug_version_select) {
                     log_messages.printf(MSG_NORMAL,
-                        "[version] [AV#%d] client version %d > max core version %d\n",
+                        "[version] [AV#%lu] client version %d > max core version %d\n",
                         av.id, g_request->core_client_version, av.max_core_version
                     );
                 }
@@ -805,14 +816,15 @@ BEST_APP_VERSION* get_app_version(
             //
             DB_HOST_APP_VERSION* havp = gavid_to_havp(av.id);
             double r = 1;
-            long n=1;
+            long n = 1;
             if (havp) {
                 // slowly move from raw calc to measured performance as number
                 // of results increases
-                n=std::max((long)havp->pfc.n,(long)n);
-                double old_projected_flops=host_usage.projected_flops;
+                //
+                n = std::max((long)havp->pfc.n, (long)n);
+                double old_projected_flops = host_usage.projected_flops;
                 estimate_flops(host_usage, av);
-                host_usage.projected_flops=(host_usage.projected_flops*(n-1)+old_projected_flops)/n;
+                host_usage.projected_flops = (host_usage.projected_flops*(n-1) + old_projected_flops)/n;
 
                 // special case for versions that don't work on a given host.
                 // This is defined as:
@@ -821,13 +833,14 @@ BEST_APP_VERSION* get_app_version(
                 // 3. Consecutive valid is 0.
                 // In that case, heavily penalize this app_version most of the
                 // time.
+                //
                 if ((havp->pfc.n==0) && (havp->max_jobs_per_day==1) && (havp->consecutive_valid==0)) {
-                    if (drand()>0.01) {
-                        host_usage.projected_flops*=0.01;
-                        if (config.debug_version_select  && bavp && bavp->avp) {
+                    if (drand() > 0.01) {
+                        host_usage.projected_flops *= 0.01;
+                        if (config.debug_version_select) {
                             log_messages.printf(MSG_NORMAL,
-                                "[version] App version AV#%d is failing on HOST#%d\n",
-                                havp->app_version_id,havp->host_id
+                                "[version] App version AV#%lu is failing on HOST#%lu\n",
+                                havp->app_version_id, havp->host_id
                             );
                         }
                    }
@@ -835,17 +848,21 @@ BEST_APP_VERSION* get_app_version(
             }
             if (config.version_select_random_factor) {
                 r += config.version_select_random_factor*rand_normal()/n;
+                if (r <= .1) {
+                    r = .1;
+                }
             }
-            if (config.debug_version_select  && bavp && bavp->avp) {
+            if (config.debug_version_select && bavp && bavp->avp) {
                 log_messages.printf(MSG_NORMAL,
-                    "[version] Comparing AV#%d (%.2f GFLOP) against AV#%d (%.2f GFLOP)\n",
-                    av.id,host_usage.projected_flops/1e+9,bavp->avp->id,bavp->host_usage.projected_flops/1e+9
+                    "[version] Comparing AV#%lu (%.2f GFLOP) against AV#%lu (%.2f GFLOP)\n",
+                    av.id, host_usage.projected_flops/1e+9,
+                    bavp->avp->id, bavp->host_usage.projected_flops/1e+9
                 );
             }
             if (r*host_usage.projected_flops > bavp->host_usage.projected_flops) {
                 if (config.debug_version_select && (host_usage.projected_flops <= bavp->host_usage.projected_flops)) {
                       log_messages.printf(MSG_NORMAL,
-                          "[version] [AV#%d] Random factor wins.  r=%f n=%ld\n",
+                          "[version] [AV#%lu] Random factor wins.  r=%f n=%ld\n",
                           av.id, r, n
                     );
                 }
@@ -856,11 +873,18 @@ BEST_APP_VERSION* get_app_version(
                 bavp->trusted = app_version_is_trusted(av.id);
                 if (config.debug_version_select) {
                       log_messages.printf(MSG_NORMAL,
-                          "[version] Best app version is now AV%d (%.2f GFLOP)\n",
+                          "[version] Best app version is now AV%lu (%.2f GFLOP)\n",
                           bavp->avp->id, bavp->host_usage.projected_flops/1e+9
                     );
                 }
-
+            } else {
+                if (config.debug_version_select) {
+                    log_messages.printf(MSG_NORMAL,
+                            "[version] Not selected, AV#%lu r*%.2f GFLOP <= Best AV %.2f GFLOP (r=%f, n=%ld)\n",
+                            av.id, host_usage.projected_flops/1e+9,
+                            bavp->host_usage.projected_flops/1e+9, r, n
+                    );
+                }
             }
         }   // loop over app versions
 
@@ -873,7 +897,7 @@ BEST_APP_VERSION* get_app_version(
         estimate_flops(bavp->host_usage, *bavp->avp);
         if (config.debug_version_select) {
             log_messages.printf(MSG_NORMAL,
-                "[version] Best version of app %s is [AV#%d] (%.2f GFLOPS)\n",
+                "[version] Best version of app %s is [AV#%lu] (%.2f GFLOPS)\n",
                 app->name, bavp->avp->id, bavp->host_usage.projected_flops/1e9
             );
         }
diff --git a/sched/sched_version.h b/sched/sched_version.h
index 9c2c5c8..c8387b1 100644
--- a/sched/sched_version.h
+++ b/sched/sched_version.h
@@ -16,6 +16,6 @@
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
 extern BEST_APP_VERSION* get_app_version(
-    WORKUNIT&, bool check_req, bool reliable_only
+    const WORKUNIT&, bool check_req, bool reliable_only
 );
 extern void estimate_flops_anon_platform();
diff --git a/sched/script_assimilator.cpp b/sched/script_assimilator.cpp
index 035f4dd..f41783f 100644
--- a/sched/script_assimilator.cpp
+++ b/sched/script_assimilator.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2014 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -47,6 +47,7 @@
 #include "boinc_db.h"
 #include "error_numbers.h"
 #include "sched_msgs.h"
+#include "sched_util.h"
 #include "validate_util.h"
 #include "validator.h"
 #include "sched_config.h"
@@ -54,13 +55,13 @@
 using std::vector;
 using std::string;
 
-bool first = true;
 vector<string> script;
 
-void parse_cmdline() {
-    for (int i=1; i<g_argc; i++) {
-        if (!strcmp(g_argv[i], "--script")) {
-            script = split(g_argv[++i], ' ');
+int assimilate_handler_init(int argc, char** argv) {
+    // handle project specific arguments here
+    for (int i=1; i<argc; i++) {
+        if (is_arg(argv[i], "script")) {
+            script = split(argv[++i], ' ');
             if (script.size() == 1) {
                 script.push_back("wu_id");
                 script.push_back("files");
@@ -71,8 +72,18 @@ void parse_cmdline() {
         log_messages.printf(MSG_CRITICAL,
             "script name missing from command line\n"
         );
-        exit(1);
+        return 1;
     }
+    return 0;
+}
+
+void assimilate_handler_usage() {
+    // describe the project specific arguments here
+    fprintf(stderr,
+        "    Custom options:\n"
+        "    --script \"X\"  call script to assimilate job\n"
+        "                    see comment in script_assimilator.cpp for details\n"
+    );
 }
 
 int assimilate_handler(
@@ -82,11 +93,6 @@ int assimilate_handler(
     char cmd[4096], buf[256];
     unsigned int i, j;
 
-    if (first) {
-        parse_cmdline();
-        first = false;
-    }
-
     if (wu.canonical_resultid) {
         sprintf(cmd, "../bin/%s", script[0].c_str());
         vector<string> paths;
@@ -100,7 +106,7 @@ int assimilate_handler(
                     strcat(cmd, paths[j].c_str());
                 }
             } else if (s == "wu_id") {
-                sprintf(buf, " %d", wu.id);
+                sprintf(buf, " %lu", wu.id);
                 strcat(cmd, buf);
             } else if (s == "runtime") {
                 sprintf(buf, " %f", canonical_result.elapsed_time);
@@ -108,7 +114,7 @@ int assimilate_handler(
             }
         }
     } else {
-        sprintf(cmd, "../bin/%s --error %d %d",
+        sprintf(cmd, "../bin/%s --error %d %lu",
             script[0].c_str(), wu.error_mask, wu.id
         );
     }
diff --git a/sched/script_validator.cpp b/sched/script_validator.cpp
index 5ee0c65..ac7b046 100644
--- a/sched/script_validator.cpp
+++ b/sched/script_validator.cpp
@@ -56,42 +56,53 @@
 using std::string;
 using std::vector;
 
-bool first = true;
 vector<string> init_script, compare_script;
     // first element is script path, other elements are args
 
-void parse_cmdline() {
-    for (int i=1; i<g_argc; i++) {
-        if (!strcmp(g_argv[i], "--init_script")) {
-            init_script = split(g_argv[++i], ' ');
+int validate_handler_init(int argc, char** argv) {
+    // handle project specific arguments here
+    for (int i=1; i<argc; i++) {
+        if (is_arg(argv[i], "init_script")) {
+            init_script = split(argv[++i], ' ');
             if (init_script.size() == 1) {
                 init_script.push_back(string("files"));
             }
-        } else if (!strcmp(g_argv[i], "--compare_script")) {
-            compare_script = split(g_argv[++i], ' ');
+        } else if (is_arg(argv[i], "compare_script")) {
+            compare_script = split(argv[++i], ' ');
             if (compare_script.size() == 1) {
                 compare_script.push_back("files");
                 compare_script.push_back("files2");
             }
         }
     }
+
     if (!init_script.size() && !compare_script.size()) {
         log_messages.printf(MSG_CRITICAL,
             "script names missing from command line\n"
         );
-        exit(1);
+        return 1;
     }
+    return 0;
+}
+
+void validate_handler_usage() {
+    // describe the project specific arguments here
+    fprintf(stderr,
+        "  A validator that runs scripts to check and compare results, \n"
+        "  so that you can do your validation in Python, PHP, Perl, bash, etc.\n"
+        "    Custom options:\n"
+        "    --init_script \"scriptname arg1 ... argn\"    checks the validity of a task,\n"
+        "        e.g. that the output files have the proper format. Needs to exit with zero if the files are valid.\n"
+        "    --compare_script \"scriptname arg1 ... argn\" compares two tasks. \n"
+        "        Needs to return zero if the output files are equivalent.\n"
+        "    See script_validator.cpp for more usage information.\n"
+    );
 }
 
 int init_result(RESULT& result, void*&) {
     unsigned int i, j;
     char buf[256];
 
-    if (first) {
-        parse_cmdline();
-        first = false;
-    }
-    if (!init_script.size()) return 0;
     vector<string> paths;
     int retval;
     retval = get_output_file_paths(result, paths);
@@ -112,7 +123,7 @@ int init_result(RESULT& result, void*&) {
             sprintf(buf, " %f", result.elapsed_time);
             strcat(cmd, buf);
         } else if (s == "result_id") {
-            sprintf(buf, " %d", result.id);
+            sprintf(buf, " %lu", result.id);
             strcat(cmd, buf);
         }
     }
@@ -127,14 +138,6 @@ int compare_results(RESULT& r1, void*, RESULT const& r2, void*, bool& match) {
     unsigned int i, j;
     char buf[256];
 
-    if (first) {
-        parse_cmdline();
-        first = false;
-    }
-    if (!compare_script.size()) {
-        match = true;
-        return 0;
-    }
     vector<string> paths1, paths2;
     int retval;
     retval = get_output_file_paths(r1, paths1);
@@ -165,13 +168,13 @@ int compare_results(RESULT& r1, void*, RESULT const& r2, void*, bool& match) {
             sprintf(buf, " %f", r1.elapsed_time);
             strcat(cmd, buf);
         } else if (s == "result_id") {
-            sprintf(buf, " %d", r1.id);
+            sprintf(buf, " %lu", r1.id);
             strcat(cmd, buf);
         } else if (s == "runtime2") {
             sprintf(buf, " %f", r2.elapsed_time);
             strcat(cmd, buf);
         } else if (s == "result_id2") {
-            sprintf(buf, " %d", r2.id);
+            sprintf(buf, " %lu", r2.id);
             strcat(cmd, buf);
         }
     }
diff --git a/sched/single_job_assimilator.cpp b/sched/single_job_assimilator.cpp
index 9ea412f..d59f4cf 100644
--- a/sched/single_job_assimilator.cpp
+++ b/sched/single_job_assimilator.cpp
@@ -1,6 +1,6 @@
 // This file is part of BOINC.
 // http://boinc.berkeley.edu
-// Copyright (C) 2008 University of California
+// Copyright (C) 2015 University of California
 //
 // BOINC is free software; you can redistribute it and/or modify it
 // under the terms of the GNU Lesser General Public License
@@ -25,6 +25,7 @@
 #include <string>
 #include <unistd.h>
 #include <vector>
+#include <sys/resource.h>
 
 #include "boinc_db.h"
 #include "error_numbers.h"
@@ -39,11 +40,23 @@
 using std::vector;
 using std::string;
 
+int assimilate_handler_init(int, char**) {
+    return 0;
+}
+
+void assimilate_handler_usage() {
+    // describe the project specific arguments here
+    //fprintf(stderr,
+    //    "    Custom options:\n"
+    //    "    [--project_option X]  a project specific option\n"
+    //);
+}
+
 int assimilate_handler(
     WORKUNIT& wu, vector<RESULT>& /*results*/, RESULT& canonical_result
 ) {
     int retval;
-    char buf[1024], filename[256], job_dir[256], job_dir_file[256];
+    char buf[1024], filename[MAXPATHLEN], job_dir[MAXPATHLEN], job_dir_file[MAXPATHLEN];
     unsigned int i;
 
     // delete the template files
@@ -53,17 +66,17 @@ int assimilate_handler(
 
     // read and delete the job directory file
     //
-    sprintf(filename, "sj_%d", wu.id);
+    sprintf(filename, "sj_%lu", wu.id);
     dir_hier_path(
         filename, config.upload_dir, config.uldl_dir_fanout, job_dir_file
     );
     FILE* f = fopen(job_dir_file, "r");
     if (!f) {
-        log_messages.printf(MSG_CRITICAL, "Can't open job file %s\n", buf);
+        log_messages.printf(MSG_CRITICAL, "Can't open job file %s\n", job_dir_file);
         return 0;
     }
     if (!fgets(buf, 1024, f)) {
-        log_messages.printf(MSG_CRITICAL, "Can't read job file %s\n", buf);
+        log_messages.printf(MSG_CRITICAL, "Can't read job file %s\n", job_dir_file);
         fclose(f);
         return 0;
     }
@@ -87,7 +100,7 @@ int assimilate_handler(
 
     // Create a job summary file
     //
-    sprintf(filename, "%s/job_summary_%d", job_dir, wu.id);
+    sprintf(filename, "%s/job_summary_%lu", job_dir, wu.id);
     f = fopen(filename, "w");
     if (!f) {
         log_messages.printf(MSG_CRITICAL, "Can't open job summary file %s\n", filename);
@@ -98,7 +111,7 @@ int assimilate_handler(
     //
     if (wu.canonical_resultid) {
         fprintf(f,
-            "Job was completed by host %d.\n"
+            "Job was completed by host %lu.\n"
             "CPU time: %f seconds\n",
             canonical_result.hostid,
             canonical_result.cpu_time
diff --git a/sched/size_regulator.cpp b/sched/size_regulator.cpp
index 5974686..f456789 100644
--- a/sched/size_regulator.cpp
+++ b/sched/size_regulator.cpp
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-// daemon to regulate the transition of jobs from INACTIVE to UNSENT,
-// to maintain a buffer of UNSENT jobs of each size class.
+// daemon to regulate the transition of results from INACTIVE to UNSENT,
+// to maintain a buffer of UNSENT results of each size class.
 
 #include <stdio.h>
 
@@ -43,7 +43,7 @@ void usage(){
 int do_pass(bool& action) {
     DB_RESULT result;
     int unsent[100];
-    int retval = result.get_unsent_counts(app, unsent);
+    int retval = result.get_unsent_counts(app, unsent, hi);
     if (retval) return retval;
     action = false;
     for (int i=0; i<app.n_size_classes; i++) {
diff --git a/sched/start b/sched/start
index 23d9300..4326496 100755
--- a/sched/start
+++ b/sched/start
@@ -284,7 +284,7 @@ def double_fork():
 
     # Decouple from parent environment.
     os.chdir("/")
-    os.umask(0)
+    os.umask(02)
     os.setsid()
 
     # Do second fork.
@@ -312,6 +312,7 @@ def is_pid_running(pid):
 locks = []
 def lock_file(filename):
     global locks
+    os.umask(02)
     file = open(filename,'w')
     locks.append(file)
     try:
@@ -328,7 +329,7 @@ def is_lock_file_locked(filename):
 # if a command contains a pipe or a redirection, exec won't work
 # this detects those cases and a shell encapsulation can be used
 def contains_shell_characters(command):
-    for item in shlex.split(command):
+    for item in shlex.split(command.encode('ascii')):
         if item == "|":
             return True
         if item == ">" or item == ">>" or item == "<":
@@ -346,7 +347,7 @@ def strip_leading_escapes(string):
     return string
 
 def command_string_to_list(command):
-    l = shlex.split(command)
+    l = shlex.split(command.encode('ascii'))
     return map(strip_leading_escapes, l)
 
 def exec_command_string(command, use_shell):
@@ -726,7 +727,7 @@ for opt,v in opts:
         command = command_enable_start
     elif opt == '-c' or opt == '--cron':
         command = command_cron_start
-    elif opt == '--cron-task':
+    elif opt == '--cron-tasks':
         command = command_tasks_start
     elif opt == '-d' or opt == '--disable' or opt == '--stop' or opt == '-k' or opt == '--kill':
         command = command_disable_stop
diff --git a/sched/time_stats_log.cpp b/sched/time_stats_log.cpp
index a8ec2ca..4996ca2 100644
--- a/sched/time_stats_log.cpp
+++ b/sched/time_stats_log.cpp
@@ -15,6 +15,10 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// code related to "time stats logs".
+// These are summaries of client availability send in scheduler requests.
+// The scheduler writes them to a directory hierarchy for later analysis.
+
 #include <sys/types.h>
 #include <sys/stat.h>
 
diff --git a/sched/transitioner.cpp b/sched/transitioner.cpp
index 14ee3cc..6a0f98e 100644
--- a/sched/transitioner.cpp
+++ b/sched/transitioner.cpp
@@ -88,7 +88,7 @@ static int result_timed_out(
     DB_HOST_APP_VERSION hav;
     char query[512], clause[512];
 
-    int gavid = generalized_app_version_id(
+    DB_ID_TYPE gavid = generalized_app_version_id(
         res_item.res_app_version_id, wu_item.appid
     );
     int retval = hav_lookup(hav, res_item.res_hostid, gavid);
@@ -115,7 +115,7 @@ static int result_timed_out(
     }
     if (config.debug_quota) {
         log_messages.printf(MSG_NORMAL,
-            "[quota] max_jobs_per_day for %d; %d->%d\n",
+            "[quota] max_jobs_per_day for %ld; %d->%d\n",
             gavid, hav.max_jobs_per_day, n
         );
     }
@@ -133,7 +133,7 @@ static int result_timed_out(
         hav.consecutive_valid
     );
     sprintf(clause,
-        "host_id=%d and app_version_id=%d",
+        "host_id=%lu and app_version_id=%lu",
         hav.host_id, hav.app_version_id
     );
     retval = hav.update_fields_noid(query, clause);
@@ -192,7 +192,7 @@ int handle_wu(
 
     if (wu_item.canonical_resultid && (canonical_result_index == -1)) {
         log_messages.printf(MSG_CRITICAL,
-            "[WU#%u %s] can't find canonical result\n",
+            "[WU#%lu %s] can't find canonical result\n",
             wu_item.id, wu_item.name
         );
     }
@@ -231,7 +231,7 @@ int handle_wu(
         case RESULT_SERVER_STATE_IN_PROGRESS:
             if (res_item.res_report_deadline < now) {
                 log_messages.printf(MSG_NORMAL,
-                    "[WU#%u %s] [RESULT#%u %s] result timed out (%d < %d) server_state:IN_PROGRESS=>OVER; outcome:NO_REPLY\n",
+                    "[WU#%lu %s] [RESULT#%lu %s] result timed out (%d < %d) server_state:IN_PROGRESS=>OVER; outcome:NO_REPLY\n",
                     wu_item.id, wu_item.name, res_item.res_id,
                     res_item.res_name,
                     res_item.res_report_deadline, (int)now
@@ -241,7 +241,7 @@ int handle_wu(
                 retval = transitioner.update_result(res_item);
                 if (retval) {
                     log_messages.printf(MSG_CRITICAL,
-                        "[WU#%u %s] [RESULT#%u %s] update_result(): %s\n",
+                        "[WU#%lu %s] [RESULT#%lu %s] update_result(): %s\n",
                         wu_item.id, wu_item.name, res_item.res_id,
                         res_item.res_name, boincerror(retval)
                     );
@@ -264,7 +264,7 @@ int handle_wu(
             switch (res_item.res_outcome) {
             case RESULT_OUTCOME_COULDNT_SEND:
                 log_messages.printf(MSG_NORMAL,
-                    "[WU#%u %s] [RESULT#%u %s] result couldn't be sent\n",
+                    "[WU#%lu %s] [RESULT#%lu %s] result couldn't be sent\n",
                     wu_item.id, wu_item.name, res_item.res_id, res_item.res_name
                 );
                 ncouldnt_send++;
@@ -276,13 +276,13 @@ int handle_wu(
                         retval = transitioner.update_result(res_item);
                         if (retval) {
                             log_messages.printf(MSG_CRITICAL,
-                                "[WU#%u %s] [RESULT#%u %s] update_result(): %s\n",
+                                "[WU#%lu %s] [RESULT#%lu %s] update_result(): %s\n",
                                 wu_item.id, wu_item.name, res_item.res_id,
                                 res_item.res_name, boincerror(retval)
                             );
                         } else {
                             log_messages.printf(MSG_NORMAL,
-                                "[WU#%u %s] [RESULT#%u %s] validate_state:INIT=>TOO_LATE\n",
+                                "[WU#%lu %s] [RESULT#%lu %s] validate_state:INIT=>TOO_LATE\n",
                                 wu_item.id, wu_item.name, res_item.res_id,
                                 res_item.res_name
                             );
@@ -322,7 +322,7 @@ int handle_wu(
     }
 
     log_messages.printf(MSG_DEBUG,
-        "[WU#%u %s] %d results: unsent %d, in_progress %d, over %d (success %d, error %d, couldnt_send %d, no_reply %d, didnt_need %d)\n",
+        "[WU#%lu %s] %d results: unsent %d, in_progress %d, over %d (success %d, error %d, couldnt_send %d, no_reply %d, didnt_need %d)\n",
         wu_item.id, wu_item.name, ntotal, nunsent, ninprogress, nover,
         nsuccess, nerrors, ncouldnt_send, nno_reply, ndidnt_need
     );
@@ -332,7 +332,7 @@ int handle_wu(
     if (have_new_result_to_validate && (nsuccess >= wu_item.min_quorum)) {
         wu_item.need_validate = true;
         log_messages.printf(MSG_NORMAL,
-            "[WU#%u %s] need_validate:=>true\n", wu_item.id, wu_item.name
+            "[WU#%lu %s] need_validate:=>true\n", wu_item.id, wu_item.name
         );
     }
 
@@ -359,7 +359,7 @@ int handle_wu(
 
     if (nerrors > wu_item.max_error_results) {
         log_messages.printf(MSG_NORMAL,
-            "[WU#%u %s] WU has too many errors (%d errors for %d results)\n",
+            "[WU#%lu %s] WU has too many errors (%d errors for %d results)\n",
             wu_item.id, wu_item.name, nerrors, ntotal
         );
         wu_item.error_mask |= WU_ERROR_TOO_MANY_ERROR_RESULTS;
@@ -387,7 +387,7 @@ int handle_wu(
     }
     if (too_many) {
         log_messages.printf(MSG_NORMAL,
-            "[WU#%u %s] WU has too many total results (%d)\n",
+            "[WU#%lu %s] WU has too many total results (%d)\n",
             wu_item.id, wu_item.name, ntotal
         );
         wu_item.error_mask |= WU_ERROR_TOO_MANY_TOTAL_RESULTS;
@@ -405,7 +405,7 @@ int handle_wu(
             case RESULT_SERVER_STATE_INACTIVE:
             case RESULT_SERVER_STATE_UNSENT:
                 log_messages.printf(MSG_NORMAL,
-                    "[WU#%u %s] [RESULT#%u %s] server_state:UNSENT=>OVER; outcome:=>DIDNT_NEED\n",
+                    "[WU#%lu %s] [RESULT#%lu %s] server_state:UNSENT=>OVER; outcome:=>DIDNT_NEED\n",
                     wu_item.id, wu_item.name, res_item.res_id, res_item.res_name
                 );
                 res_item.res_server_state = RESULT_SERVER_STATE_OVER;
@@ -428,7 +428,7 @@ int handle_wu(
                 retval = transitioner.update_result(res_item);
                 if (retval) {
                     log_messages.printf(MSG_CRITICAL,
-                        "[WU#%u %s] [RESULT#%u %s] result.update(): %s\n",
+                        "[WU#%lu %s] [RESULT#%lu %s] result.update(): %s\n",
                         wu_item.id, wu_item.name, res_item.res_id,
                         res_item.res_name, boincerror(retval)
                     );
@@ -438,7 +438,7 @@ int handle_wu(
         if (wu_item.assimilate_state == ASSIMILATE_INIT) {
             wu_item.assimilate_state = ASSIMILATE_READY;
             log_messages.printf(MSG_NORMAL,
-                "[WU#%u %s] error_mask:%d assimilate_state:INIT=>READY\n",
+                "[WU#%lu %s] error_mask:%d assimilate_state:INIT=>READY\n",
                 wu_item.id, wu_item.name, wu_item.error_mask
             );
         }
@@ -453,7 +453,7 @@ int handle_wu(
         ) {
             log_messages.printf(
                 MSG_NORMAL,
-                "[WU#%u %s] Generating %d more results (%d target - %d unsent - %d in progress - %d success)\n",
+                "[WU#%lu %s] Generating %d more results (%d target - %d unsent - %d in progress - %d success)\n",
                 wu_item.id, wu_item.name, n_new_results_needed,
                 wu_item.target_nresults, nunsent, ninprogress, nsuccess
             );
@@ -471,7 +471,7 @@ int handle_wu(
                 );
                 if (retval) {
                     log_messages.printf(MSG_CRITICAL,
-                        "[WU#%u %s] create_result_ti(): %s\n",
+                        "[WU#%lu %s] create_result_ti(): %s\n",
                         wu_item.id, wu_item.name, boincerror(retval)
                     );
                     return retval;
@@ -487,7 +487,7 @@ int handle_wu(
             retval = r.insert_batch(values);
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[WU#%u %s] insert_batch(): %s\n",
+                    "[WU#%lu %s] insert_batch(): %s\n",
                     wu_item.id, wu_item.name, boincerror(retval)
                 );
                 return retval;
@@ -536,7 +536,7 @@ int handle_wu(
     ) {
         wu_item.assimilate_state = ASSIMILATE_READY;
         log_messages.printf(MSG_NORMAL,
-            "[WU#%u %s] Deferred assimilation now set to ASSIMILATE_STATE_READY\n",
+            "[WU#%lu %s] Deferred assimilation now set to ASSIMILATE_STATE_READY\n",
             wu_item.id, wu_item.name
         );
     }
@@ -551,7 +551,7 @@ int handle_wu(
             if (all_over_and_validated && wu_item.file_delete_state == FILE_DELETE_INIT) {
                 wu_item.file_delete_state = FILE_DELETE_READY;
                 log_messages.printf(MSG_DEBUG,
-                    "[WU#%u %s] ASSIMILATE_DONE: file_delete_state:=>READY\n",
+                    "[WU#%lu %s] ASSIMILATE_DONE: file_delete_state:=>READY\n",
                     wu_item.id, wu_item.name
                 );
             }
@@ -581,7 +581,7 @@ int handle_wu(
                 }
                 if (do_delete && res_item.res_file_delete_state == FILE_DELETE_INIT) {
                     log_messages.printf(MSG_NORMAL,
-                        "[WU#%u %s] [RESULT#%u %s] file_delete_state:=>READY\n",
+                        "[WU#%lu %s] [RESULT#%lu %s] file_delete_state:=>READY\n",
                         wu_item.id, wu_item.name, res_item.res_id, res_item.res_name
                     );
                     res_item.res_file_delete_state = FILE_DELETE_READY;
@@ -589,7 +589,7 @@ int handle_wu(
                     retval = transitioner.update_result(res_item);
                     if (retval) {
                         log_messages.printf(MSG_CRITICAL,
-                            "[WU#%u %s] [RESULT#%u %s] result.update(): %s\n",
+                            "[WU#%lu %s] [RESULT#%lu %s] result.update(): %s\n",
                             wu_item.id, wu_item.name, res_item.res_id,
                             res_item.res_name, boincerror(retval)
                         );
@@ -599,7 +599,7 @@ int handle_wu(
         } else {
             deferred_file_delete_time = most_recently_returned + config.delete_delay;
             log_messages.printf(MSG_DEBUG,
-                "[WU#%u %s] deferring file deletion for %.0f seconds\n",
+                "[WU#%lu %s] deferring file deletion for %.0f seconds\n",
                 wu_item.id,
                 wu_item.name,
                 deferred_file_delete_time - now
@@ -661,21 +661,21 @@ int handle_wu(
         if (extra_delay < 60) extra_delay = 60;
         if (extra_delay > 86400) extra_delay = 86400;
         log_messages.printf(MSG_DEBUG,
-            "[WU#%u %s] transition time in past: adding extra delay %d sec\n",
+            "[WU#%lu %s] transition time in past: adding extra delay %d sec\n",
             wu_item.id, wu_item.name, extra_delay
         );
         wu_item.transition_time = now + extra_delay;
     }
 
     log_messages.printf(MSG_DEBUG,
-        "[WU#%u %s] setting transition_time to %d\n",
+        "[WU#%lu %s] setting transition_time to %d\n",
         wu_item.id, wu_item.name, wu_item.transition_time
     );
 
     retval = transitioner.update_workunit(wu_item, wu_item_original);
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "[WU#%u %s] workunit.update(): %s\n",
+            "[WU#%lu %s] workunit.update(): %s\n",
             wu_item.id, wu_item.name, boincerror(retval)
         );
         return retval;
@@ -716,7 +716,7 @@ bool do_pass() {
         retval = handle_wu(transitioner, items);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "[WU#%u %s] handle_wu: %s; quitting\n",
+                "[WU#%lu %s] handle_wu: %s; quitting\n",
                 wu_item.id, wu_item.name, boincerror(retval)
             );
             exit(1);
diff --git a/sched/transitioner_catchup.php b/sched/transitioner_catchup.php
index be47094..ee0f6c4 100755
--- a/sched/transitioner_catchup.php
+++ b/sched/transitioner_catchup.php
@@ -18,7 +18,9 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-require_once("html/inc/boinc_db.inc");
+chdir("html/ops");
+require_once("../inc/boinc_db.inc");
+chdir("../..");
 
 // script to let transitioners catch up, then run start
 
@@ -28,7 +30,9 @@ function catchup() {
         $wus = BoincWorkunit::enum("transition_time<$now limit 1");
         if (count($wus) == 0) break;
         echo "Some WUs need transition - running transitioner.\n";
-        system("bin/transitioner --one_pass");
+        $ret = system("bin/transitioner --one_pass");
+        echo "ret: $ret\n";
+        sleep(1);
     }
     echo "Transitioner is caught up.\n";
 }
diff --git a/sched/trickle_credit.cpp b/sched/trickle_credit.cpp
index a98324a..851608a 100644
--- a/sched/trickle_credit.cpp
+++ b/sched/trickle_credit.cpp
@@ -129,7 +129,7 @@ int handle_trickle(MSG_FROM_HOST& msg) {
     double credit = cpu_time_to_credit(runtime, flops_sec);
     grant_credit(host, dtime()-86400, credit);
     log_messages.printf(MSG_DEBUG,
-        "granting %f credit to host %d\n", credit, host.id
+        "granting %f credit to host %lu\n", credit, host.id
     );
 
     // update the host's credit fields
diff --git a/sched/trickle_deadline.cpp b/sched/trickle_deadline.cpp
index c86937b..7a624cb 100644
--- a/sched/trickle_deadline.cpp
+++ b/sched/trickle_deadline.cpp
@@ -85,24 +85,24 @@ int handle_trickle(MSG_FROM_HOST& mfh) {
         if (xp.parse_int("cpu_time", cpu_time)) break;
         if (xp.parse_str("result_name", task_name, 256)) break;
         log_messages.printf(MSG_NORMAL,
-            "[HOST#%u] unexpected tag: %s\n",
+            "[HOST#%lu] unexpected tag: %s\n",
             mfh.hostid, xp.parsed_tag
         );
     }
     if (strlen(task_name) == 0) {
         log_messages.printf(MSG_NORMAL,
-            "[HOST#%u] unexpected empty result_name attribute\n",
+            "[HOST#%lu] unexpected empty result_name attribute\n",
             mfh.hostid
         );
         return ERR_XML_PARSE;
     }
 
     DB_RESULT task;
-    sprintf(buf, " where name='%s' and hostid=%u", task_name, mfh.hostid);
+    sprintf(buf, " where name='%s' and hostid=%lu", task_name, mfh.hostid);
     int retval = task.lookup(buf);
     if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "[HOST#%u] error while looking for result_name: %s\n",
+            "[HOST#%lu] error while looking for result_name: %s\n",
             mfh.hostid, task_name
         );
         return retval;
@@ -112,7 +112,7 @@ int handle_trickle(MSG_FROM_HOST& mfh) {
     //
     if (task.report_deadline < dtime()) {
         log_messages.printf(MSG_NORMAL,
-            "[RESULT#%u][HOST#%u] report deadline is in the past\n",
+            "[RESULT#%lu][HOST#%lu] report deadline is in the past\n",
             task.id, mfh.hostid
         );
         // don't do anything for now (could reactivate the result here)
@@ -120,7 +120,7 @@ int handle_trickle(MSG_FROM_HOST& mfh) {
     }
     if ((task.report_deadline - extension_timeframe) > dtime()) {
         log_messages.printf(MSG_DEBUG,
-            "[RESULT#%u][HOST#%u] report deadline is too far in the future\n",
+            "[RESULT#%lu][HOST#%lu] report deadline is too far in the future\n",
             task.id, mfh.hostid
         );
         // don't do anything
@@ -132,7 +132,7 @@ int handle_trickle(MSG_FROM_HOST& mfh) {
     retval = task.update();
     if (retval) return retval;
     log_messages.printf(MSG_DEBUG,
-        "[RESULT#%u][HOST#%u] report deadline extended to %d\n",
+        "[RESULT#%lu][HOST#%lu] report deadline extended to %d\n",
         task.id, mfh.hostid, task.report_deadline
     );
     return 0;
diff --git a/sched/update_stats.cpp b/sched/update_stats.cpp
index 04bc714..703e472 100644
--- a/sched/update_stats.cpp
+++ b/sched/update_stats.cpp
@@ -79,7 +79,7 @@ int update_users() {
         );
         retval = user.update_field(buf);
         if (retval) {
-            log_messages.printf(MSG_CRITICAL, "Can't update user %d\n", user.id);
+            log_messages.printf(MSG_CRITICAL, "Can't update user %lu\n", user.id);
             return retval;
         }
     }
@@ -112,7 +112,7 @@ int update_hosts() {
         );
         retval = host.update_field(buf);
         if (retval) {
-            log_messages.printf(MSG_CRITICAL, "Can't update host %d\n", host.id);
+            log_messages.printf(MSG_CRITICAL, "Can't update host %lu\n", host.id);
             return retval;
         }
     }
@@ -121,20 +121,20 @@ int update_hosts() {
 }
 
 int get_team_totals(TEAM& team) {
-    int nusers;
+    long nusers;
     int retval;
     DB_USER user;
     char buf[256];
 
     // count the number of users on the team
     //
-    sprintf(buf, "where teamid=%d", team.id);
+    sprintf(buf, "where teamid=%lu", team.id);
     retval = user.count(nusers, buf);
     if (retval) return retval;
 
     if (team.nusers != nusers) {
         log_messages.printf(MSG_CRITICAL,
-            "updating member count for [TEAM#%d]: database has %d users, count shows %d\n",
+            "updating member count for [TEAM#%lu]: database has %d users, count shows %ld\n",
             team.id, team.nusers, nusers
         );
     }
@@ -166,7 +166,7 @@ int update_teams() {
         retval = get_team_totals(team);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "update_teams: get_team_credit([TEAM#%d]) failed: %d\n",
+                "update_teams: get_team_credit([TEAM#%lu]) failed: %d\n",
                 team.id,
                 retval
             );
@@ -184,7 +184,7 @@ int update_teams() {
         );
         retval = team.update_field(buf);
         if (retval) {
-            log_messages.printf(MSG_CRITICAL, "Can't update team %d\n", team.id);
+            log_messages.printf(MSG_CRITICAL, "Can't update team %lu\n", team.id);
             return retval;
         }
     }
diff --git a/sched/validate_util.cpp b/sched/validate_util.cpp
index 3ff52cc..e9225d4 100644
--- a/sched/validate_util.cpp
+++ b/sched/validate_util.cpp
@@ -29,6 +29,7 @@
 #include "str_replace.h"
 #include "util.h"
 
+#include "str_util.h"
 #include "sched_util.h"
 #include "sched_config.h"
 #include "sched_msgs.h"
@@ -74,6 +75,9 @@ int get_output_file_info(RESULT const& result, OUTPUT_FILE_INFO& fi) {
             if (retval) return retval;
             if (standalone) {
                 safe_strcpy(path, fi.name.c_str());
+                if (!path_to_filename(fi.name, name)) {
+                    fi.name = name;
+                }
             } else {
                 dir_hier_path(
                     fi.name.c_str(), config.upload_dir,
@@ -89,8 +93,8 @@ int get_output_file_info(RESULT const& result, OUTPUT_FILE_INFO& fi) {
 
 int get_output_file_infos(RESULT const& result, vector<OUTPUT_FILE_INFO>& fis) {
     char path[MAXPATHLEN];
-    MIOFILE mf;
     string name;
+    MIOFILE mf;
     mf.init_buf_read(result.xml_doc_in);
     XML_PARSER xp(&mf);
     fis.clear();
@@ -102,13 +106,16 @@ int get_output_file_infos(RESULT const& result, vector<OUTPUT_FILE_INFO>& fis) {
             if (retval) return retval;
             if (standalone) {
                 safe_strcpy(path, fi.name.c_str());
+                if (!path_to_filename(fi.name, name)) {
+                    fi.name = name;
+                }
             } else {
                 dir_hier_path(
                     fi.name.c_str(), config.upload_dir,
                     config.uldl_dir_fanout, path
                 );
             }
-            fi.path = path;
+			fi.path = path;
             fis.push_back(fi);
         }
     }
@@ -134,6 +141,25 @@ int get_output_file_paths(RESULT const& result, vector<string>& paths) {
     return 0;
 }
 
+// remove the random part of an output filename:
+// given a name of the form "xxx_resultnum_r123123_filenum",
+// return "xxx_resultnum_filenum"
+//
+void remove_random_from_filename(const char* in, char* out) {
+    strcpy(out, in);
+    const char* p_in = strrchr(in, 'r');
+    if (!p_in) return;
+    if (p_in == in) return;
+    if (*(--p_in) != '_') return;
+    char* p_out = out + (p_in - in);
+    const char *q = strchr(p_in+1, '_');
+    if (q) {
+        strcpy(p_out, q);
+    } else {
+        strcpy(p_out, "");
+    }
+}
+
 struct FILE_REF {
     char file_name[256];
     char open_name[256];
@@ -189,7 +215,7 @@ int get_credit_from_wu(WORKUNIT& wu, vector<RESULT>&, double& credit) {
     double x;
     int retval;
     DB_WORKUNIT dbwu;
-    
+
     dbwu.id = wu.id;
     retval = dbwu.get_field_str("xml_doc", dbwu.xml_doc, sizeof(dbwu.xml_doc));
     if (!retval) {
diff --git a/sched/validate_util.h b/sched/validate_util.h
index 157ad06..221c2d6 100644
--- a/sched/validate_util.h
+++ b/sched/validate_util.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef H_VALIDATE_UTIL
-#define H_VALIDATE_UTIL
+#ifndef BOINC_VALIDATE_UTIL_H
+#define BOINC_VALIDATE_UTIL_H
 
 #include <vector>
 #include <string>
@@ -38,9 +38,13 @@ struct OUTPUT_FILE_INFO {
 };
 
 extern int get_output_file_info(RESULT const& result, OUTPUT_FILE_INFO&);
-extern int get_output_file_infos(RESULT const& result, std::vector<OUTPUT_FILE_INFO>&);
+extern int get_output_file_infos(
+    RESULT const& result, std::vector<OUTPUT_FILE_INFO>&
+);
 extern int get_output_file_path(RESULT const& result, std::string&);
-extern int get_output_file_paths(RESULT const& result, std::vector<std::string>&);
+extern int get_output_file_paths(
+    RESULT const& result, std::vector<std::string>&
+);
 extern int get_logical_name(
     RESULT& result, std::string& path, std::string& name
 );
@@ -51,4 +55,9 @@ extern bool standalone;
     // if set, look for output files in the current directory,
     // not the upload hierarchy.
     // used by validator_test.
+extern void remove_random_from_filename(const char* in, char* out);
+
+extern int validate_handler_init(int argc, char** argv);
+extern void validate_handler_usage();
+
 #endif
diff --git a/sched/validate_util2.cpp b/sched/validate_util2.cpp
index 90326fb..5e1ab83 100644
--- a/sched/validate_util2.cpp
+++ b/sched/validate_util2.cpp
@@ -61,7 +61,7 @@ using std::vector;
 //
 int check_set(
     vector<RESULT>& results, WORKUNIT& wu,
-    int& canonicalid, double&, bool& retry
+    DB_ID_TYPE& canonicalid, double&, bool& retry
 ) {
     vector<void*> data;
     vector<bool> had_error;
@@ -80,18 +80,25 @@ int check_set(
         had_error[i] = false;
     }
     int good_results = 0;
+    int suspicious_results = 0;
     for (i=0; i<n; i++) {
         retval = init_result(results[i], data[i]);
         if (retval == ERR_OPENDIR) {
             log_messages.printf(MSG_CRITICAL,
-                "check_set: init_result([RESULT#%u %s]) transient failure\n",
+                "check_set: init_result([RESULT#%lu %s]) transient failure\n",
                 results[i].id, results[i].name
             );
             retry = true;
             had_error[i] = true;
+        } else if (retval == VAL_RESULT_SUSPICIOUS) {
+            log_messages.printf(MSG_NORMAL,
+                "[RESULT#%lu %s] considered to be suspicious\n",
+                results[i].id, results[i].name
+            );
+            suspicious_results++;
         } else if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "check_set: init_result([RESULT#%u %s]) failed: %s\n",
+                "check_set: init_result([RESULT#%lu %s]) failed: %s\n",
                 results[i].id, results[i].name, boincerror(retval)
             );
             results[i].outcome = RESULT_OUTCOME_VALIDATE_ERROR;
@@ -101,6 +108,14 @@ int check_set(
             good_results++;
         }
     }
+
+    // don't count a single "suspicious" result as "good",
+    // but do if there are more results to compare it with
+    //
+    if (suspicious_results > 1 || good_results > 0) {
+        good_results += suspicious_results;
+    }
+
     if (good_results < wu.min_quorum) goto cleanup;
 
     // Compare results
@@ -118,7 +133,7 @@ int check_set(
                 matches[j] = true;
             } else if (compare_results(results[i], data[i], results[j], data[j], match)) {
                 log_messages.printf(MSG_CRITICAL,
-                    "generic_check_set: check_pair_with_data([RESULT#%u %s], [RESULT#%u %s]) failed\n",
+                    "generic_check_set: check_pair_with_data([RESULT#%lu %s], [RESULT#%lu %s]) failed\n",
                     results[i].id, results[i].name, results[j].id, results[j].name
                 );
             } else if (match) {
@@ -159,14 +174,14 @@ void check_pair(RESULT& r1, RESULT& r2, bool& retry) {
     retval = init_result(r1, data1);
     if (retval == ERR_OPENDIR) {
         log_messages.printf(MSG_CRITICAL,
-            "check_pair: init_result([RESULT#%u %s]) transient failure 1\n",
+            "check_pair: init_result([RESULT#%lu %s]) transient failure 1\n",
             r1.id, r1.name
         );
         retry = true;
         return;
     } else if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "check_pair: init_result([RESULT#%u %s]) perm failure 1\n",
+            "check_pair: init_result([RESULT#%lu %s]) perm failure 1\n",
             r1.id, r1.name
         );
         r1.outcome = RESULT_OUTCOME_VALIDATE_ERROR;
@@ -177,7 +192,7 @@ void check_pair(RESULT& r1, RESULT& r2, bool& retry) {
     retval = init_result(r2, data2);
     if (retval == ERR_OPENDIR) {
         log_messages.printf(MSG_CRITICAL,
-            "check_pair: init_result([RESULT#%u %s]) transient failure 2\n",
+            "check_pair: init_result([RESULT#%lu %s]) transient failure 2\n",
             r2.id, r2.name
         );
         cleanup_result(r1, data1);
@@ -185,7 +200,7 @@ void check_pair(RESULT& r1, RESULT& r2, bool& retry) {
         return;
     } else if (retval) {
         log_messages.printf(MSG_CRITICAL,
-            "check_pair: init_result([RESULT#%u %s]) perm failure2\n",
+            "check_pair: init_result([RESULT#%lu %s]) perm failure2\n",
             r2.id, r2.name
         );
         cleanup_result(r1, data1);
diff --git a/sched/validate_util2.h b/sched/validate_util2.h
index f53c6b8..a89f124 100644
--- a/sched/validate_util2.h
+++ b/sched/validate_util2.h
@@ -15,8 +15,13 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _VALIDATE_UTIL2_
-#define _VALIDATE_UTIL2_
+#ifndef BOINC_VALIDATE_UTIL2_H
+#define BOINC_VALIDATE_UTIL2_H
+
+// return value of init_result if an "adaptive replication"
+// result looks suspicious
+//
+#define VAL_RESULT_SUSPICIOUS 1
 
 #include <vector>
 
@@ -28,7 +33,8 @@ extern int cleanup_result(RESULT const&, void*);
 extern double compute_granted_credit(WORKUNIT&, std::vector<RESULT>& results);
 extern int check_set(
     std::vector<RESULT>& results, WORKUNIT& wu,
-    int& canonicalid, double& credit_deprecated, bool& retry
+    DB_ID_TYPE& canonicalid, double& credit_deprecated, bool& retry
 );
 extern void check_pair(RESULT& r1, RESULT& r2, bool& retry);
+
 #endif
diff --git a/sched/validator.cpp b/sched/validator.cpp
index 01fd351..169041c 100644
--- a/sched/validator.cpp
+++ b/sched/validator.cpp
@@ -141,7 +141,7 @@ int is_valid(
     if (!is_unreplicated(wu)) {
         hav.consecutive_valid++;
         log_messages.printf(MSG_DEBUG,
-            "[HAV#%d] consecutive valid now %d\n",
+            "[HAV#%lu] consecutive valid now %d\n",
             hav.app_version_id, hav.consecutive_valid
         );
     }
@@ -155,12 +155,12 @@ int is_valid(
             retval = credited_job.insert();
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[RESULT#%u] Warning: credited_job insert failed (userid: %d workunit: %f err: %s)\n",
+                    "[RESULT#%lu] Warning: credited_job insert failed (userid: %lu workunit: %f err: %s)\n",
                     result.id, host.userid, wu.opaque, boincerror(retval)
                 );
             } else {
                 log_messages.printf(MSG_DEBUG,
-                    "[RESULT#%u %s] added credited_job record [WU#%u OPAQUE#%f USER#%d]\n",
+                    "[RESULT#%lu %s] added credited_job record [WU#%lu OPAQUE#%f USER#%lu]\n",
                     result.id, result.name, wu.id, wu.opaque, host.userid
                 );
             }
@@ -185,7 +185,8 @@ int handle_wu(
     int canonical_result_index = -1;
     bool update_result, retry;
     TRANSITION_TIME transition_time = NO_CHANGE;
-    int retval = 0, canonicalid = 0, x;
+    int retval = 0, x;
+    DB_ID_TYPE canonicalid = 0;
     double credit = 0;
     unsigned int i;
 
@@ -194,7 +195,7 @@ int handle_wu(
 
     if (wu.canonical_resultid) {
         log_messages.printf(MSG_NORMAL,
-            "[WU#%u %s] Already has canonical result %d\n",
+            "[WU#%lu %s] Already has canonical result %lu\n",
             wu.id, wu.name, wu.canonical_resultid
         );
         ++log_messages;
@@ -211,7 +212,7 @@ int handle_wu(
         }
         if (canonical_result_index == -1) {
             log_messages.printf(MSG_CRITICAL,
-                "[WU#%u %s] Can't find canonical result %d\n",
+                "[WU#%lu %s] Can't find canonical result %lu\n",
                 wu.id, wu.name, wu.canonical_resultid
             );
             return 0;
@@ -234,7 +235,7 @@ int handle_wu(
                 continue;
             }
             log_messages.printf(MSG_NORMAL,
-                 "[WU#%u] handle_wu(): testing result %d\n",
+                 "[WU#%lu] handle_wu(): testing result %lu\n",
                  wu.id, result.id
              );
 
@@ -261,7 +262,7 @@ int handle_wu(
             retval = host.lookup_id(result.hostid);
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[RESULT#%u] lookup of host %d failed: %s\n",
+                    "[RESULT#%lu] lookup of host %lu failed: %s\n",
                     result.id, result.hostid, boincerror(retval)
                 );
                 continue;
@@ -275,7 +276,7 @@ int handle_wu(
             );
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[RESULT#%u %s] hav_lookup returned %d\n",
+                    "[RESULT#%lu %s] hav_lookup returned %d\n",
                     result.id, result.name, retval
                 );
                 hav.host_id = 0;
@@ -290,13 +291,13 @@ int handle_wu(
                 update_result = true;
                 update_hav = true;
                 log_messages.printf(MSG_NORMAL,
-                    "[RESULT#%u %s] pair_check() matched: setting result to valid\n",
+                    "[RESULT#%lu %s] pair_check() matched: setting result to valid\n",
                     result.id, result.name
                 );
                 retval = is_valid(host, result, wu, havv[0]);
                 if (retval) {
                     log_messages.printf(MSG_NORMAL,
-                        "[RESULT#%u %s] is_valid() error: %s\n",
+                        "[RESULT#%lu %s] is_valid() error: %s\n",
                         result.id, result.name, boincerror(retval)
                     );
                 }
@@ -319,7 +320,7 @@ int handle_wu(
                 update_result = true;
                 update_hav = true;
                 log_messages.printf(MSG_NORMAL,
-                    "[RESULT#%u %s] pair_check() didn't match: setting result to invalid\n",
+                    "[RESULT#%lu %s] pair_check() didn't match: setting result to invalid\n",
                     result.id, result.name
                 );
                 is_invalid(havv[0]);
@@ -329,14 +330,14 @@ int handle_wu(
                     log_messages.printf(MSG_NORMAL, "DB not updated (dry run)\n");
                 } else {
                     log_messages.printf(MSG_NORMAL,
-                        "[HOST#%d AV#%d] [outlier=%d] Updating HAV in DB.  pfc.n=%f->%f\n",
+                        "[HOST#%lu AV#%lu] [outlier=%d] Updating HAV in DB.  pfc.n=%f->%f\n",
                         havv[0].host_id, havv[0].app_version_id,
                         result.runtime_outlier, hav_orig.pfc.n, havv[0].pfc.n
                     );
                     retval=havv[0].update_validator(hav_orig);
                     if (retval) {
                         log_messages.printf(MSG_CRITICAL,
-                            "[HOST#%d AV%d] hav.update_validator() failed: %s\n",
+                            "[HOST#%lu AV%lu] hav.update_validator() failed: %s\n",
                             hav.host_id, hav.app_version_id, boincerror(retval)
                         );
                     }
@@ -345,7 +346,7 @@ int handle_wu(
             host.update_diff_validator(host_initial);
             if (update_result) {
                 log_messages.printf(MSG_NORMAL,
-                    "[RESULT#%u %s] granted_credit %f\n",
+                    "[RESULT#%lu %s] granted_credit %f\n",
                     result.id, result.name, result.granted_credit
                 );
                 if (dry_run) {
@@ -354,7 +355,7 @@ int handle_wu(
                     retval = validator.update_result(result);
                     if (retval) {
                         log_messages.printf(MSG_CRITICAL,
-                            "[RESULT#%u %s] Can't update result: %s\n",
+                            "[RESULT#%lu %s] Can't update result: %s\n",
                             result.id, result.name, boincerror(retval)
                         );
                     }
@@ -369,7 +370,7 @@ int handle_wu(
         vector<DB_HOST_APP_VERSION> host_app_versions, host_app_versions_orig;
 
         log_messages.printf(MSG_NORMAL,
-            "[WU#%u %s] handle_wu(): No canonical result yet\n",
+            "[WU#%lu %s] handle_wu(): No canonical result yet\n",
             wu.id, wu.name
         );
         ++log_messages;
@@ -397,12 +398,12 @@ int handle_wu(
         }
 
         log_messages.printf(MSG_DEBUG,
-            "[WU#%u %s] Found %d viable results\n",
+            "[WU#%lu %s] Found %d viable results\n",
             wu.id, wu.name, (int)viable_results.size()
         );
         if (viable_results.size() >= (unsigned int)wu.min_quorum) {
             log_messages.printf(MSG_DEBUG,
-                "[WU#%u %s] Enough for quorum, checking set.\n",
+                "[WU#%lu %s] Enough for quorum, checking set.\n",
                 wu.id, wu.name
             );
 
@@ -410,7 +411,7 @@ int handle_wu(
             retval = check_set(viable_results, wu, canonicalid, dummy, retry);
             if (retval) {
                 log_messages.printf(MSG_CRITICAL,
-                    "[WU#%u %s] check_set() error: %s\n",
+                    "[WU#%lu %s] check_set() error: %s\n",
                     wu.id, wu.name, boincerror(retval)
                 );
                 return retval;
@@ -429,7 +430,7 @@ int handle_wu(
                 );
                 if (retval) {
                     log_messages.printf(MSG_CRITICAL,
-                        "[WU#%u %s] assign_credit_set(): %s\n",
+                        "[WU#%lu %s] assign_credit_set(): %s\n",
                         wu.id, wu.name, boincerror(retval)
                     );
                     transition_time = DELAYED;
@@ -440,7 +441,7 @@ int handle_wu(
                     retval = get_credit_from_wu(wu, viable_results, credit);
                     if (retval) {
                         log_messages.printf(MSG_CRITICAL,
-                            "[WU#%u %s] get_credit_from_wu(): credit not specified in WU\n",
+                            "[WU#%lu %s] get_credit_from_wu(): credit not specified in WU\n",
                             wu.id, wu.name
                         );
                         credit = 0;
@@ -454,7 +455,7 @@ int handle_wu(
                             retval = host.lookup_id(result.hostid);
                             if (retval) {
                                 log_messages.printf(MSG_CRITICAL,
-                                    "[WU#%u %s] host %d lookup failed\n",
+                                    "[WU#%lu %s] host %lu lookup failed\n",
                                     wu.id, wu.name, result.hostid
                                 );
                                 break;
@@ -465,7 +466,7 @@ int handle_wu(
                             }
                             credit = result.flops_estimate * runtime * COBBLESTONE_SCALE;
                             log_messages.printf(MSG_NORMAL,
-                                "[WU#%u][RESULT#%u] credit_from_runtime %.2f = %.0fs * %.2fGFLOPS\n",
+                                "[WU#%lu][RESULT#%lu] credit_from_runtime %.2f = %.0fs * %.2fGFLOPS\n",
                                 wu.id, result.id,
                                 credit, runtime, result.flops_estimate/1e9
                             );
@@ -512,7 +513,7 @@ int handle_wu(
                     retval = host.lookup_id(result.hostid);
                     if (retval) {
                         log_messages.printf(MSG_CRITICAL,
-                            "[RESULT#%u] lookup of host %d: %s\n",
+                            "[RESULT#%lu] lookup of host %lu: %s\n",
                             result.id, result.hostid, boincerror(retval)
                         );
                         continue;
@@ -527,7 +528,7 @@ int handle_wu(
                     retval = is_valid(host, result, wu, host_app_versions[i]);
                     if (retval) {
                         log_messages.printf(MSG_DEBUG,
-                            "[RESULT#%u %s] is_valid() failed: %s\n",
+                            "[RESULT#%lu %s] is_valid() failed: %s\n",
                             result.id, result.name, boincerror(retval)
                         );
                     }
@@ -535,7 +536,7 @@ int handle_wu(
                         result.granted_credit = credit;
                         grant_credit(host, result.sent_time, credit);
                         log_messages.printf(MSG_NORMAL,
-                            "[RESULT#%u %s] Valid; granted %f credit [HOST#%d]\n",
+                            "[RESULT#%lu %s] Valid; granted %f credit [HOST#%lu]\n",
                             result.id, result.name, result.granted_credit,
                             result.hostid
                         );
@@ -548,14 +549,14 @@ int handle_wu(
                     update_result = true;
                     update_host = true;
                     log_messages.printf(MSG_NORMAL,
-                        "[RESULT#%u %s] Invalid [HOST#%d]\n",
+                        "[RESULT#%lu %s] Invalid [HOST#%lu]\n",
                         result.id, result.name, result.hostid
                     );
                     is_invalid(host_app_versions[i]);
                     break;
                 case VALIDATE_STATE_INIT:
                     log_messages.printf(MSG_NORMAL,
-                        "[RESULT#%u %s] Inconclusive [HOST#%d]\n",
+                        "[RESULT#%lu %s] Inconclusive [HOST#%lu]\n",
                         result.id, result.name, result.hostid
                     );
                     result.validate_state = VALIDATE_STATE_INCONCLUSIVE;
@@ -568,14 +569,14 @@ int handle_wu(
                 } else {
                     if (hav.host_id) {
                         log_messages.printf(MSG_NORMAL,
-                            "[HOST#%d AV#%d] [outlier=%d] Updating HAV in DB.  pfc.n=%f->%f\n",
+                            "[HOST#%lu AV#%lu] [outlier=%d] Updating HAV in DB.  pfc.n=%f->%f\n",
                             hav.host_id, hav.app_version_id,
                             result.runtime_outlier, hav_orig.pfc.n, hav.pfc.n
                         );
                         retval = hav.update_validator(hav_orig);
                         if (retval) {
                             log_messages.printf(MSG_CRITICAL,
-                                "[HOST#%d AV%d] hav.update_validator() failed: %s\n",
+                                "[HOST#%lu AV%lu] hav.update_validator() failed: %s\n",
                                 hav.host_id, hav.app_version_id, boincerror(retval)
                             );
                         }
@@ -593,7 +594,7 @@ int handle_wu(
                         retval = validator.update_result(result);
                         if (retval) {
                             log_messages.printf(MSG_CRITICAL,
-                                "[RESULT#%u %s] result.update() failed: %s\n",
+                                "[RESULT#%lu %s] result.update() failed: %s\n",
                                 result.id, result.name, boincerror(retval)
                             );
                         }
@@ -608,7 +609,7 @@ int handle_wu(
                 //
                 transition_time = NEVER;
                 log_messages.printf(MSG_DEBUG,
-                    "[WU#%u %s] Found a canonical result: id=%d\n",
+                    "[WU#%lu %s] Found a canonical result: id=%lu\n",
                     wu.id, wu.name, canonicalid
                 );
                 wu.canonical_resultid = canonicalid;
@@ -632,7 +633,7 @@ int handle_wu(
                         retval = validator.update_result(result);
                         if (retval) {
                             log_messages.printf(MSG_CRITICAL,
-                                "[RESULT#%u %s] result.update() failed: %s\n",
+                                "[RESULT#%lu %s] result.update() failed: %s\n",
                                 result.id, result.name, boincerror(retval)
                             );
                         }
@@ -687,7 +688,7 @@ leave:
         retval = validator.update_workunit(wu);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "[WU#%u %s] update_workunit() failed: %s\n",
+                "[WU#%lu %s] update_workunit() failed: %s\n",
                 wu.id, wu.name, boincerror(retval)
             );
             return retval;
@@ -771,6 +772,39 @@ int main_loop() {
     return 0;
 }
 
+void usage(char* name) {
+    fprintf(stderr,
+        "This program is a 'validator'; it handles completed tasks.\n"
+        "Normally it is run as a daemon from config.xml.\n"
+        "See: https://boinc.berkeley.edu/trac/wiki/BackendPrograms\n\n"
+    );
+
+    fprintf(stderr, "usage: %s [options]\n"
+        "    Options:\n"
+        "    --app name                 Process tasks for the given application\n"
+        "    [--one_pass_N_WU N]        Validate at most N WUs, then exit\n"
+        "    [--one_pass]               Make one pass through WU table, then exit\n"
+        "    [--dry_run]                Don't update db, just write logs (for debugging)\n"
+        "    [--mod n i]                Process only WUs with (id mod n) == i\n"
+        "    [--max_wu_id n]            Process only WUs with id <= n\n"
+        "    [--min_wu_id n]            Process only WUs with id >= n\n"
+        "    [--max_granted_credit X]   Grant no more than this amount of credit to a result\n"
+        "    [--update_credited_job]    Add record to credited_job table after granting credit\n"
+        "    [--credit_from_wu]         Credit is specified in WU XML\n"
+        "    [--credit_from_runtime X]  Grant credit based on runtime (max X seconds)and estimated FLOPS\n"
+        "    [--no_credit]              Don't grant credit\n"
+        "    [--sleep_interval n]       Set sleep-interval to n\n"
+        "    [--wu_id n]                Process WU with given ID\n"
+        "    [-d level|--debug_level n] Set log verbosity level\n"
+        "    [-h|--help]                Print this usage information and exit\n"
+        "    [-v|--version]             Print version information and exit\n"
+        "\n",
+        name
+    );
+    validate_handler_usage();
+
+}
+
 // For use by project-supplied routines check_set() and check_pair()
 //
 int debug_level=0;
@@ -778,30 +812,9 @@ int debug_level=0;
 int main(int argc, char** argv) {
     int i, retval;
 
-    const char *usage = 
-      "\nUsage: %s --app <app-name> [OPTIONS]\n"
-      "Start validator for application <app-name>\n\n"
-      "Optional arguments:\n"
-      "  --one_pass_N_WU N       Validate at most N WUs, then exit\n"
-      "  --one_pass              Make one pass through WU table, then exit\n"
-      "  --dry_run               Don't update db, just write logs (for debugging)\n"
-      "  --mod n i               Process only WUs with (id mod n) == i\n"
-      "  --max_wu_id n           Process only WUs with id <= n\n"
-      "  --min_wu_id n           Process only WUs with id >= n\n"
-      "  --max_granted_credit X  Grant no more than this amount of credit to a result\n"
-      "  --update_credited_job   Add record to credited_job table after granting credit\n"
-      "  --credit_from_wu        Credit is specified in WU XML\n"
-      "  --credit_from_runtime X  Grant credit based on runtime (max X seconds)and estimated FLOPS\n"
-      "  --no_credit             Don't grant credit\n"
-      "  --sleep_interval n      Set sleep-interval to n\n"
-      "  --wu_id n               Process WU with given ID\n"
-      "  -d n, --debug_level n   Set log verbosity level, 1-4\n"
-      "  -h | --help             Show this\n"
-      "  -v | --version          Show version information\n";
-
     if (argc > 1) {
       if (is_arg(argv[1], "h") || is_arg(argv[1], "help")) {
-        printf (usage, argv[0] );
+        usage(argv[0]);
         exit(0);
       } else if (is_arg(argv[1], "v") || is_arg(argv[1], "version")) {
         printf("%s\n", SVN_VERSION);
@@ -811,6 +824,7 @@ int main(int argc, char** argv) {
 
     check_stop_daemons();
 
+    int j=1;
     for (i=1; i<argc; i++) {
         if (is_arg(argv[i], "one_pass_N_WU")) {
             one_pass_N_WU = atoi(argv[++i]);
@@ -849,17 +863,16 @@ int main(int argc, char** argv) {
             wu_id = atoi(argv[++i]);
             one_pass = true;
         } else {
-            //log_messages.printf(MSG_CRITICAL, "unrecognized arg: %s\n", argv[i]);
+            // unknown arg - pass to handler
+            argv[j++] = argv[i];
         }
     }
-    g_argc = argc;
-    g_argv = argv;
 
     if (app_name[0] == 0) {
         log_messages.printf(MSG_CRITICAL,
             "must use '--app' to specify an application\n"
         );
-        printf (usage, argv[0] );
+        usage(argv[0]);
         exit(1);      
     }
 
@@ -881,10 +894,6 @@ int main(int argc, char** argv) {
         exit(1);
     }
 
-    log_messages.printf(MSG_NORMAL,
-        "Starting validator, debug level %d\n", log_messages.debug_level
-    );
-
     if (credit_from_runtime) {
         log_messages.printf(MSG_NORMAL,
             "using credit from runtime, max runtime: %f\n", max_runtime
@@ -907,6 +916,14 @@ int main(int argc, char** argv) {
         );
     }
 
+    argv[j] = 0;
+    retval = validate_handler_init(j, argv);
+    if (retval) exit(1);
+
+    log_messages.printf(MSG_NORMAL,
+        "Starting validator, debug level %d\n", log_messages.debug_level
+    );
+
     install_stop_signal_handler();
 
     main_loop();
diff --git a/sched/validator.h b/sched/validator.h
index 1c4fa9e..ab03556 100644
--- a/sched/validator.h
+++ b/sched/validator.h
@@ -24,6 +24,3 @@ extern WORKUNIT* g_wup;
     // A pointer to the WU currently being processed;
     // you can access this in your init_result() etc. functions
     // (which are passed RESULT but not WORKUNIT)
-
-extern int g_argc;
-extern char** g_argv;
diff --git a/sched/validator_test.cpp b/sched/validator_test.cpp
index 497682a..d2e150b 100644
--- a/sched/validator_test.cpp
+++ b/sched/validator_test.cpp
@@ -28,17 +28,25 @@
 
 #include <stdio.h>
 
+#include "svn_version.h"
+#include "sched_util_basic.h"
 #include "validate_util.h"
 #include "validate_util2.h"
 
-int g_argc;
-char **g_argv;
-
 void usage(char* prog) {
     fprintf(stderr,
-        "usage: %s file1 file2\n", prog
+        "This program is a test validator; \n"
+        "You can test your custom handler with this\n"
     );
-    exit(1);
+    fprintf(stderr, "usage: %s [options] file1 file2\n"
+        "    Options:\n"
+        "    [-h|--help]     Print this usage information and exit\n"
+        "    [-v|--version]  Print version information and exit\n"
+        "    file1           Path to file to be compared (must be second to last)\n"
+        "    file2           Path to file to be compared (must be last)\n"
+        "\n",
+        prog);
+    validate_handler_usage();
 }
 
 int get_output_file_info(RESULT r, OUTPUT_FILE_INFO& fi) {
@@ -47,18 +55,34 @@ int get_output_file_info(RESULT r, OUTPUT_FILE_INFO& fi) {
 }
 
 int main(int argc, char** argv) {
-    if (argc != 3) {
+    int retval;
+
+    if (argc > 1) {
+      if (is_arg(argv[1], "h") || is_arg(argv[1], "help")) {
+        usage(argv[0]);
+        exit(0);
+      } else if (is_arg(argv[1], "v") || is_arg(argv[1], "version")) {
+        printf("%s\n", SVN_VERSION);
+        exit(0);
+      }
+    }
+    if (argc < 3) {
         usage(argv[0]);
+        exit(0);
     }
+
+    retval = validate_handler_init(argc, argv);
+    if (retval) exit(1);
+
     void* data1, *data2;
     RESULT r1, r2;
     bool match;
 
     standalone = true;
 
-    sprintf(r1.xml_doc_in, "<file_ref><file_name>%s</file_name></file_ref>", argv[1]);
-    sprintf(r2.xml_doc_in, "<file_ref><file_name>%s</file_name></file_ref>", argv[2]);
-    int retval;
+    sprintf(r1.xml_doc_in, "<file_ref><file_name>%s</file_name></file_ref>", argv[argc-2]);
+    sprintf(r2.xml_doc_in, "<file_ref><file_name>%s</file_name></file_ref>", argv[argc-1]);
+
     retval = init_result(r1, data1);
     if (retval) {
         fprintf(stderr, "init_result(r1) returned %d\n", retval);
diff --git a/sched/wu_check.cpp b/sched/wu_check.cpp
index 07a32d9..d8461a7 100644
--- a/sched/wu_check.cpp
+++ b/sched/wu_check.cpp
@@ -66,7 +66,7 @@ int handle_result(DB_RESULT& result) {
     retval = wu.lookup_id(result.workunitid);
     if (retval) {
         printf(
-            "ERROR: can't find WU %d for result %d\n",
+            "ERROR: can't find WU %lu for result %lu\n",
             result.workunitid, result.id
         );
         return 1;
@@ -76,7 +76,7 @@ int handle_result(DB_RESULT& result) {
     if (f) {
         fclose(f);
     } else {
-        printf("no file %s for result %d\n",
+        printf("no file %s for result %lu\n",
             path, result.id
         );
         if (repair) {
@@ -90,7 +90,7 @@ int handle_result(DB_RESULT& result) {
                 retval = result.update_field(buf);
                 if (retval) {
                     printf(
-                        "ERROR: can't update result %d\n",
+                        "ERROR: can't update result %lu\n",
                         result.id
                     );
                     return 1;
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 1b9817a..165885d 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -58,7 +58,7 @@ dir_hier_move_SOURCES = dir_hier_move.cpp
 dir_hier_move_LDADD = $(SERVERLIBS)
 
 sign_executable_SOURCES = sign_executable.cpp
-sign_executable_LDADD = $(SERVERLIBS)
+sign_executable_LDADD = $(SERVERLIBS_MIN)
 
 remote_submit_test_SOURCES = remote_submit_test.cpp ../lib/remote_submit.cpp
 remote_submit_test_LDADD = $(SERVERLIBS) -lcurl
diff --git a/tools/backend_lib.cpp b/tools/backend_lib.cpp
index 94fa4ca..9ee132e 100644
--- a/tools/backend_lib.cpp
+++ b/tools/backend_lib.cpp
@@ -51,6 +51,8 @@
 
 using std::string;
 
+// the random part of output filenames needs to be hard to guess
+//
 static struct random_init {
     random_init() {
         srand48(getpid() + time(0));
@@ -153,14 +155,16 @@ int create_result(
     int priority_increase
 ) {
     DB_RESULT result;
-    char base_outfile_name[256];
+    char base_outfile_name[MAXPATHLEN];
     char result_template[BLOB_SIZE];
     int retval;
 
     initialize_result(result, wu);
+    result.random = lrand48();
+
     result.priority += priority_increase;
     sprintf(result.name, "%s_%s", wu.name, result_name_suffix);
-    sprintf(base_outfile_name, "%s_", result.name);
+    sprintf(base_outfile_name, "%s_r%ld_", result.name, lrand48());
     retval = read_filename(
         result_template_filename, result_template, sizeof(result_template)
     );
@@ -189,8 +193,6 @@ int create_result(
     }
     strlcpy(result.xml_doc_in, result_template, sizeof(result.xml_doc_in));
 
-    result.random = lrand48();
-
     if (query_string) {
         result.db_print_values(query_string);
     } else {
@@ -222,6 +224,9 @@ int check_files(char** infiles, int ninfiles, SCHED_CONFIG& config_loc) {
     return 0;
 }
 
+// variant where input files are described by a list of names,
+// for use by work generators
+//
 int create_work(
     DB_WORKUNIT& wu,
     const char* _wu_template,
@@ -252,6 +257,13 @@ int create_work(
     );
 }
 
+// variant where input files are described by INFILE_DESCS,
+// so you can have remote files etc.
+//
+// If query_string is present, don't actually create the job;
+// instead, append to the query string.
+// The caller is responsible for doing the query.
+//
 int create_work2(
     DB_WORKUNIT& wu,
     const char* _wu_template,
@@ -592,7 +604,7 @@ int cancel_job(DB_WORKUNIT& wu) {
     sprintf(set_clause, "server_state=%d, outcome=%d",
         RESULT_SERVER_STATE_OVER, RESULT_OUTCOME_DIDNT_NEED
     );
-    sprintf(where_clause, "server_state<=%d and workunitid=%d",
+    sprintf(where_clause, "server_state<=%d and workunitid=%lu",
         RESULT_SERVER_STATE_UNSENT, wu.id
     );
     retval = result.update_fields_noid(set_clause, where_clause);
diff --git a/tools/backend_lib.h b/tools/backend_lib.h
index f57d6b9..3b8b848 100644
--- a/tools/backend_lib.h
+++ b/tools/backend_lib.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef H_BACKEND_LIB
-#define H_BACKEND_LIB
+#ifndef BOINC_BACKEND_LIB_H
+#define BOINC_BACKEND_LIB_H
 
 #include <limits.h>
 
@@ -24,7 +24,9 @@
 #include "sched_config.h"
 #include "boinc_db.h"
 
-// describes an input file, possibly remote
+// describes an input file;
+// either an argument to create_work(),
+// or a <file_info> in input template
 //
 struct INFILE_DESC {
     bool is_remote;
@@ -157,4 +159,5 @@ extern int cancel_job(DB_WORKUNIT&);
 extern int get_total_quota(double&);
 extern int get_project_flops(double&);
 extern double user_priority_delta(DB_USER_SUBMIT&, double, double, double);
+
 #endif
diff --git a/tools/check_project b/tools/check_project
new file mode 100755
index 0000000..b0d2af3
--- /dev/null
+++ b/tools/check_project
@@ -0,0 +1,203 @@
+#!/usr/bin/env python
+
+# $Id$
+'''
+Checks project permissions and php modules.
+
+This script is designed to run AFTER make_project is executed.
+'''
+
+import functools, argparse
+import grp, pwd
+import os, socket, sys
+import subprocess
+import shlex
+
+#-----------------------------------------------------------
+# Functions
+def gethostname():
+   try:
+      return socket.getfqdn().split('.')[0]
+   except:
+      return 'localhost'
+#gethostname
+
+def check_user(user):
+   try:
+      mypwdb = pwd.getpwnam(user)
+   except KeyError as e:
+      print "ERROR: ", e
+      print "ERROR: Specified apache user (%s) not found, Aborting"%(user)
+      sys.exit(1)
+   #try
+# check_user
+
+def check_dir(dir):
+   if not os.path.isdir(dir):
+      print "ERROR: project directory %s does not exist, Aborting"%(dir)
+      sys.exit(1)
+   #try
+   return dir
+#check_dir
+
+def determineapacheuser(user):
+
+   '''Attempts to determine the apache Web server user from the password
+   database. Checks a few possibilities that are linux defaults. If
+   one user matches, it is returned, otherwise an error created.
+
+   Known Issue: if the system has multiple users defined from the list below,
+   the script will abort.
+
+   '''
+   possibleapacheusers = [ 'apache',
+                           'apache2',
+                           'http',
+                           'httpd',
+                           'web-data',
+                           'www-data']
+
+   if user=="FINDOUT":
+      allusernames = [x.pw_name for x in pwd.getpwall()]
+      out1 = set(allusernames).intersection(possibleapacheusers)
+
+      if len(out1)==1:
+         return out1.pop()
+
+      print "WARNING: Script could not determine which user runs apache Web server. Aborting"
+      print "         You should specify the apache user with the -a/--apache_user flag"
+      print "         Try running the following command with apache Web server running:"
+      print "           ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root"
+      sys.exit(1)
+   else:
+      check_user(user)
+      return user
+   #endif
+#determineapacheuser
+
+def check_permissions(user, fpath):
+
+   mypwdb = pwd.getpwnam(user)
+
+   try:
+      mystat = os.stat(fpath)
+   except OSError as e:
+      print "ERROR: ", e
+      return 1
+   #try
+
+   owner_permissions = oct(mystat.st_mode)[4:5]
+   group_permissions = oct(mystat.st_mode)[5:6]
+
+   file_owner = pwd.getpwuid(mystat.st_uid).pw_name
+   group_members = grp.getgrgid(mystat.st_gid).gr_mem
+
+   '''Three checks:
+   1) if file owner is the user and owner's permissions allow for writing
+   2) if user is in group_members and group's permissions allow for writing
+   3) if user's gid is the same as the file's gid, and group's permissions allow for writing
+      The last condition is required because group_members (from gr_mem) does not
+      contain the primary user of the group.
+   '''
+
+   if (file_owner == user and owner_permissions >=5) or (user in group_members and group_permissions >=5) or (mypwdb.pw_gid==mystat.st_gid and group_permissions >=5) :
+      print "Info:  User %s can write to file/dir %s"%(user, fpath)
+      return 0
+   #end if
+
+   print "WARNING: User %s can NOT write to %s"%(user, fpath)
+   return 2
+#check_permissions
+
+
+def check_php_modules(modulestocheck):
+   '''Uses php -m and checks to see if certain php modules are installed.
+   '''
+
+   phpcmd = ['php','-m']
+   try:
+      phpout = subprocess.check_output(phpcmd)
+   except Exception as e:
+      print "ERROR: ",e
+      print "ERROR: Can't execute %s"%(" ".join(phpcmd))
+   #try
+   phpmodules = phpout.split("\n")
+
+   modulesnotfound = set(modulestocheck).difference(phpmodules)
+
+   if len(modulesnotfound)>0:
+      print "WARNING: The following php modules were not found on your system: %s"%(" ".join(modulesnotfound))
+      return 1
+
+   print "Info:  All required/recommended php modules found."
+   return 0
+
+#check_php_modules
+
+
+# Checks the given command if it is executable
+# can also check output (not implemented yet)
+def check_tool(command):
+
+    # make sure command is a valid list to pass to subprocess.call()
+    if not isinstance(command, list):
+        command = shlex.split(command.encode('ascii'))
+
+    try:
+        cmdout = subprocess.check_output(command,stderr=subprocess.STDOUT)
+    except OSError as e:
+        print "WARNING: The following tool was not found on your system: %s"%(command[0])
+        if e.errno != os.errno.ENOENT:
+            print "ERROR: ",e
+            print "ERROR: Can't execute %s"%(" ".join(command))
+        return 1
+    except subprocess.CalledProcessError as cpe:
+        print "WARNING: The following tool reported a non-zero returncode: %s"%(" ".join(command))
+        return 2
+
+    return 0
+#check_tool
+
+#-----------------------------------------------------------
+# Main program
+
+parser = argparse.ArgumentParser(description="Checks BOINC project directory permissions and php modules.")
+parser.add_argument("-p","--project_dir", action="store", dest="project_dir", required=True, help="Full path to the project root directory.")
+parser.add_argument("-a","--apache_user", action="store", dest="apache_user", default="FINDOUT", help="User which apache runs. Typically www-data (Debian based), httpd (Redhat based), or apache. If not specified, the script will automatically try to determine.")
+
+try:
+   args = parser.parse_args()
+except Exception as e:
+   print "ERROR: command-line parser error", e
+   sys.exit(1)
+#try
+
+# Define global variables
+S_HOSTNAME  = gethostname()
+APACHE_USER = determineapacheuser(args.apache_user)
+PROJECT_DIR = check_dir(args.project_dir)
+PATHS = ['log_'+S_HOSTNAME,
+         'html',
+         'html/cache',
+         'html/inc',
+         'html/languages',
+         'html/languages/compiled',
+         'upload',]
+MODULES = ["curl","gd","mysqli","xml"]
+TOOLS = ['curl --version']
+
+# Run the check_permissions function on all directories
+rcperm = map(functools.partial(check_permissions, APACHE_USER), [os.path.join(PROJECT_DIR,p) for p in PATHS])
+
+# Check for php modules
+rcphp = check_php_modules(MODULES)
+
+# Check for tools
+rctools = map(check_tool,TOOLS)
+
+if sum(rcperm)+rcphp+sum(rctools) == 0:
+   print "---All permissions checks passed, necessary php modules and tools installed. Your BOINC project should be ready to start.---"
+else:
+   print "WARNING: Some problems were found with your BOINC installation, please check the messages above for details."
+
+sys.exit(0)
diff --git a/tools/create_work.cpp b/tools/create_work.cpp
index da83cd9..028e13b 100644
--- a/tools/create_work.cpp
+++ b/tools/create_work.cpp
@@ -25,6 +25,7 @@
 #include <cstring>
 #include <ctime>
 #include <string>
+#include <map>
 #include <sys/param.h>
 #include <unistd.h>
 
@@ -40,6 +41,7 @@
 #include "backend_lib.h"
 
 using std::string;
+using std::map;
 
 bool verbose = false;
 bool continue_on_error = false;
@@ -80,6 +82,7 @@ void usage() {
         "   [ --wu_id ID ]   ID of existing workunit record (used by boinc_submit)\n"
         "   [ --wu_name name ]              default: generate a name based on app name\n"
         "   [ --wu_template filename ]      default: appname_in\n"
+        "\nSee http://boinc.berkeley.edu/trac/wiki/JobSubmission\n"
     );
     exit(1);
 }
@@ -102,10 +105,16 @@ void check_assign_id(int x) {
     }
 }
 
+// describes a job.
+// Also used to store batch-level info such as template names
+// and assignment info
+//
 struct JOB_DESC {
     DB_WORKUNIT wu;
     char wu_template[BLOB_SIZE];
-    char result_template_file[256], result_template_path[MAXPATHLEN];
+    char wu_template_file[256];
+    char result_template_file[256];
+    char result_template_path[MAXPATHLEN];
     vector <INFILE_DESC> infiles;
     char* command_line;
     char additional_xml[256];
@@ -119,6 +128,7 @@ struct JOB_DESC {
         command_line = NULL;
         assign_flag = false;
         assign_multi = false;
+        strcpy(wu_template_file, "");
         strcpy(result_template_file, "");
         strcpy(additional_xml, "");
         assign_id = 0;
@@ -152,6 +162,10 @@ void JOB_DESC::parse_cmdline(int argc, char** argv) {
             command_line = argv[++i];
         } else if (arg(argv, i, (char*)"wu_name")) {
             safe_strcpy(wu.name, argv[++i]);
+        } else if (arg(argv, i, (char*)"wu_template")) {
+            safe_strcpy(wu_template_file, argv[++i]);
+        } else if (arg(argv, i, (char*)"result_template")) {
+            safe_strcpy(result_template_file, argv[++i]);
         } else if (arg(argv, i, (char*)"remote_file")) {
             INFILE_DESC id;
             id.is_remote = true;
@@ -182,10 +196,34 @@ void JOB_DESC::parse_cmdline(int argc, char** argv) {
     }
 }
 
+// See if WU template was given for job.
+// Many jobs may have the same ones.
+// To avoid rereading files, cache them in a map.
+// Get from cache if there, else read the file and add to cache
+//
+void get_wu_template(JOB_DESC& jd2) {
+    // the jobs may specify WU templates.
+    //
+    static map<string, char*> wu_templates;
+
+    string s = string(jd2.wu_template_file);
+    if (wu_templates.count(s) == 0) {
+        char* p;
+        int retval = read_file_malloc(jd2.wu_template_file, p, 0, false);
+        if (retval) {
+            fprintf(
+                stderr, "Can't read WU template %s\n", jd2.wu_template_file
+            );
+            exit(1);
+        }
+        wu_templates[s] = p;
+    }
+    strcpy(jd2.wu_template, wu_templates[s]);
+}
+
 int main(int argc, char** argv) {
     DB_APP app;
     int retval;
-    char wu_template_file[256];
     int i;
     char download_dir[256], db_name[256], db_passwd[256];
     char db_user[256],db_host[256];
@@ -194,7 +232,6 @@ int main(int argc, char** argv) {
     bool show_wu_name = true;
     bool use_stdin = false;
 
-    strcpy(wu_template_file, "");
     strcpy(app.name, "");
     strcpy(db_passwd, "");
     const char* config_dir = 0;
@@ -211,7 +248,7 @@ int main(int argc, char** argv) {
             show_wu_name = false;
             safe_strcpy(jd.wu.name, argv[++i]);
         } else if (arg(argv, i, "wu_template")) {
-            safe_strcpy(wu_template_file, argv[++i]);
+            safe_strcpy(jd.wu_template_file, argv[++i]);
         } else if (arg(argv, i, "result_template")) {
             safe_strcpy(jd.result_template_file, argv[++i]);
         } else if (arg(argv, i, "config_dir")) {
@@ -318,8 +355,8 @@ int main(int argc, char** argv) {
     if (!strlen(jd.wu.name)) {
         sprintf(jd.wu.name, "%s_%d_%f", app.name, getpid(), dtime());
     }
-    if (!strlen(wu_template_file)) {
-        sprintf(wu_template_file, "templates/%s_in", app.name);
+    if (!strlen(jd.wu_template_file)) {
+        sprintf(jd.wu_template_file, "templates/%s_in", app.name);
     }
     if (!strlen(jd.result_template_file)) {
         sprintf(jd.result_template_file, "templates/%s_out", app.name);
@@ -352,21 +389,32 @@ int main(int argc, char** argv) {
         exit(1);
     }
 
-    retval = read_filename(
-        wu_template_file, jd.wu_template, sizeof(jd.wu_template)
-    );
-    if (retval) {
-        fprintf(stderr,
-            "create_work: can't open input template %s\n", wu_template_file
+    // read the WU template file.
+    // this won't get used if we're creating a batch
+    // with job-level WU templates
+    //
+    if (boinc_file_exists(jd.wu_template_file)) {
+        retval = read_filename(
+            jd.wu_template_file, jd.wu_template, sizeof(jd.wu_template)
         );
-        exit(1);
+        if (retval) {
+            fprintf(stderr,
+                "create_work: can't open input template %s\n", jd.wu_template_file
+            );
+            exit(1);
+        }
     }
 
     jd.wu.appid = app.id;
 
     strcpy(jd.result_template_path, "./");
     strcat(jd.result_template_path, jd.result_template_file);
+
     if (use_stdin) {
+        // clear the WU template name so we'll recognize a job-level one
+        //
+        strcpy(jd.wu_template_file, "");
+
         if (jd.assign_flag) {
             // if we're doing assignment we can't use the bulk-query method;
             // create the jobs one at a time.
@@ -383,6 +431,13 @@ int main(int argc, char** argv) {
                 if (!strlen(jd2.wu.name)) {
                     sprintf(jd2.wu.name, "%s_%d", jd.wu.name, j);
                 }
+                if (strlen(jd2.wu_template_file)) {
+                    get_wu_template(jd2);
+                }
+                if (!strlen(jd2.wu_template)) {
+                    fprintf(stderr, "job is missing input template\n");
+                    exit(1);
+                }
                 jd2.create();
             }
         } else {
@@ -410,6 +465,13 @@ int main(int argc, char** argv) {
                 // otherwise accumulate a SQL query so that we can
                 // create jobs en masse
                 //
+                if (strlen(jd2.wu_template_file)) {
+                    get_wu_template(jd2);
+                }
+                if (!strlen(jd2.wu_template)) {
+                    fprintf(stderr, "job is missing input template\n");
+                    exit(1);
+                }
                 retval = create_work2(
                     jd2.wu,
                     jd2.wu_template,
@@ -494,7 +556,7 @@ void JOB_DESC::create() {
         exit(1);
     }
     if (verbose) {
-        fprintf(stderr, "created workunit; name %s, ID %u\n", wu.name, wu.id);
+        fprintf(stderr, "created workunit; name %s, ID %lu\n", wu.name, wu.id);
     }
     if (assign_flag) {
         DB_ASSIGNMENT assignment;
diff --git a/tools/make_project b/tools/make_project
index 6958e55..6562296 100755
--- a/tools/make_project
+++ b/tools/make_project
@@ -5,7 +5,7 @@
 
 import boinc_path_config
 from Boinc.setup_project import *
-from Boinc import database, db_mid, configxml, tools
+from Boinc import database, db_mid, configxml, tools, projectxml
 import sys, os, getopt, re, socket
 
 def getfqdn():
@@ -35,12 +35,14 @@ Misc options:
    --drop_db_first      drop database first (from prev installation)
    --test_app           install example application
    --web_only           install web files, no executables (for Bossa, Bolt)
+   --no_db              don't create the database
    --srcdir             where to find the source files (default: current directory)
 
 Dir-options:
    --project_root       default: HOME/projects/PROJECT
    --key_dir            default: PROJECT_ROOT/keys
-   --url_base           default: http://$NODENAME/ (http://%(NODENAME)s/)
+   --project_host       default: $HOSTNAME (%(NODENAME)s)
+   --url_base           default: http://PROJECT_HOST/
 
    --html_user_url      default: URL_BASE/PROJECT/
    --html_ops_url       default: URL_BASE/PROJECT_ops/
@@ -71,25 +73,27 @@ def usage():
 try:
     opts, args = getopt.getopt(sys.argv[1:],
         'hv', [
-            'help',
-            'verbose=',
-            'no_query',
-            'test_app',
-            'web_only',
-            'srcdir=',
-            'user_name=',
-            'drop_db_first',
-            'delete_prev_inst',
             'base=',
+            'db_host=',
+            'db_name=',
+            'db_passwd=',
+            'db_user=',
+            'delete_prev_inst',
+            'drop_db_first',
+            'help',
+            'html_ops_url=',
+            'html_user_url=',
             'key_dir=',
+            'no_db',
+            'no_query',
+            'project_host=',
             'project_root=',
+            'srcdir=',
+            'test_app',
             'url_base=',
-            'html_user_url=',
-            'html_ops_url=',
-            'db_name=',
-            'db_user=',
-            'db_passwd=',
-            'db_host=',
+            'user_name=',
+            'verbose=',
+            'web_only',
             ]
         )
 except getopt.GetoptError, e:
@@ -99,29 +103,32 @@ options.url_base = None
 options.no_query = False
 options.test_app = False
 options.web_only = False
+options.no_db = False
 options.delete_prev_inst = False
 options.srcdir = None
 
 for o,a in opts:
     if o == '-h' or o == '--help':        usage()
-    elif o == '-v':              options.echo_verbose   = 2
-    elif o == '--verbose':       options.echo_verbose   = int(a)
-    elif o == '--no_query':      options.no_query       = True
-    elif o == '--test_app':      options.test_app       = True
-    elif o == '--web_only':      options.web_only       = True
-    elif o == '--srcdir':        options.srcdir         = a
-    elif o == '--user_name':     options.user_name      = a
-    elif o == '--drop_db_first': options.drop_db_first  = True
+    elif o == '--db_host':       options.db_host        = a
+    elif o == '--db_name':       options.db_name        = a
+    elif o == '--db_passwd':     options.db_passwd      = a
+    elif o == '--db_user':       options.db_user        = a
     elif o == '--delete_prev_inst': options.delete_prev_inst  = True
+    elif o == '--drop_db_first': options.drop_db_first  = True
+    elif o == '--html_ops_url':  options.html_ops_url   = a
+    elif o == '--html_user_url': options.html_user_url  = a
     elif o == '--key_dir':       options.key_dir        = a
+    elif o == '--no_db':         options.no_db          = True
+    elif o == '--no_query':      options.no_query       = True
+    elif o == '--project_host':  options.project_host   = a
     elif o == '--project_root':  options.project_root   = a
+    elif o == '--srcdir':        options.srcdir         = a
+    elif o == '--test_app':      options.test_app       = True
     elif o == '--url_base':      options.url_base       = a
-    elif o == '--html_user_url': options.html_user_url  = a
-    elif o == '--html_ops_url':  options.html_ops_url   = a
-    elif o == '--db_name':       options.db_name        = a
-    elif o == '--db_user':       options.db_user        = a
-    elif o == '--db_passwd':     options.db_passwd      = a
-    elif o == '--db_host':       options.db_host        = a
+    elif o == '--user_name':     options.user_name      = a
+    elif o == '--verbose':       options.echo_verbose   = int(a)
+    elif o == '--web_only':      options.web_only       = True
+    elif o == '-v':              options.echo_verbose   = 2
     else:
         raise SystemExit('internal error o=%s'%o)
 
@@ -157,7 +164,10 @@ def replopt(str):
 def defopt(name, v, isdir=True):
     options.__dict__[name] = opt_repls[name.upper()] = add_slash(replopt(options.__dict__.get(name) or v), isdir)
 
-defopt('url_base'      , 'http://%s/'%NODENAME)
+defopt('project_host'  , NODENAME, isdir=False)
+defopt('url_base'      , 'http://%s/'%options.project_host)
+# strip project_host to get short hostname
+options.project_host=options.project_host.split('.')[0]
 
 if not isurl(options.url_base):
     syntax_error('url_base needs to be an URL')
@@ -177,6 +187,7 @@ defopt('db_host'       , '', isdir=False)
 print "Creating project '%s' (short name '%s'):" %(project_longname, project_shortname)
 for k in [
     'project_root',
+    'project_host',
     'url_base',
     'html_user_url',
     'html_ops_url',
@@ -214,7 +225,9 @@ project = Project(
     master_url = options.html_user_url,
     key_dir = options.key_dir,
     db_name = options.db_name,
+    host = options.project_host,
     web_only = options.web_only,
+    no_db = options.no_db,
     production = True
     )
 
@@ -242,7 +255,7 @@ t = project.config.tasks.make_node_and_append("task")
 t.period = '24 hours'
 t.output = 'db_dump.out'
 t.cmd = 'db_dump -d 2 --dump_spec ../db_dump_spec.xml'
-t.disabled = 0
+t.disabled = 1
 
 t = project.config.tasks.make_node_and_append("task")
 t.period = '1 days'
@@ -288,10 +301,11 @@ t.disabled = 0
 
 project.config.write()
 
-try:
-    os.system('cd '+proot+'/html/ops; ./db_schemaversion.php > '+proot+'/db_revision')
-except:
-    print '''Couldn't set db schema version number'''
+if not options.no_db:
+    try:
+        os.system('cd '+proot+'/html/ops; ./db_schemaversion.php > '+proot+'/db_revision')
+    except:
+        print '''Couldn't set db schema version number'''
 
 try:
     os.system('cd '+proot+'/html/ops; ./update_translations.php -d 1')
@@ -309,6 +323,14 @@ if options.test_app:
     shutil.copy('example_app_out', proot+'/templates/')
     shutil.copy('../tools/create_work_example', proot+'/bin/')
 
+    #add app to project.xml
+    pf = projectxml.ProjectFile(os.path.join(proot,'project.xml')).read()
+    a = pf.elements.make_node_and_append('app')
+    a.name = 'example_app'
+    a.user_friendly_name = 'Example Application'
+    pf.write()
+
+
 httpd_conf_template_filename = os.path.join(
     options.project_root,
     project_shortname+'.httpd.conf'
@@ -318,29 +340,63 @@ print >>open(httpd_conf_template_filename,'w'), '''
 
     ## Settings for BOINC project %(project_longname)s
 
+    Alias /%(project_shortname)s/download %(proot)s/download
+    Alias /%(project_shortname)s/stats %(proot)s/html/stats
+    Alias /%(project_shortname)s/user_profile %(proot)s/html/user_profile
     Alias /%(project_shortname)s %(proot)s/html/user
+
     Alias /%(project_shortname)s_ops %(proot)s/html/ops
     ScriptAlias /%(project_shortname)s_cgi %(proot)s/cgi-bin
 
-    # Note: projects/*/keys/ should NOT be readable!
-
     # in the following, the "Order" and "Allow" lines are for Apache 2.2;
     # for Apache 2.4, replace them with the single line
-    * Require all granted
+    # Require all granted
+    #        or
+    # Require all denied
+
+    # NOTE: Turn off access to certain default directories
+    <Directory "%(proot)s/keys">
+        Order deny,allow
+        Deny from all
+    </Directory>
+    <Directory "%(proot)s/upload">
+        Order deny,allow
+        Deny from all
+    </Directory>
 
+    # NOTE: Allow access but disable PHP script execution
+    <Directory "%(proot)s/download">
+        RemoveType .php .phtml
+        Order allow,deny
+        Allow from all
+    </Directory>
+    <Directory "%(proot)s/html/stats">
+        RemoveType .php .phtml
+        Order allow,deny
+        Allow from all
+    </Directory>
+    <Directory "%(proot)s/html/user_profile">
+        RemoveType .php .phtml
+        Order allow,deny
+        Allow from all
+    </Directory>
+
+    # NOTE: Allow access and allow PHP script execution
     <Directory "%(proot)s/html">
-        Options Indexes FollowSymlinks MultiViews
+        Options Indexes MultiViews
         AllowOverride AuthConfig
         Order allow,deny
         Allow from all
     </Directory>
 
+    # NOTE: Allow access and allow CGI execution
     <Directory "%(proot)s/cgi-bin">
         Options ExecCGI
         AllowOverride AuthConfig
         Order allow,deny
         Allow from all
     </Directory>
+
 ''' %locals()
 
 htaccess_filename = options.project_root+'/html/ops/.htaccess'
@@ -400,9 +456,13 @@ print >>open(readme_filename,'w'), '''Steps to complete installation:
 
 -  Change Apache configuration (as root):
 
+   If you are using Apache 2.4, edit the %(httpd_conf_template_filename)s
+   (see file for specific instructions).
+
    cat %(httpd_conf_template_filename)s >> /etc/apache/httpd.conf
 
    (path to httpd.conf varies; try /etc/httpd/ or /etc/apache2)
+
    Then restart the web server:
 
    /usr/sbin/apache2ctl restart
@@ -422,6 +482,11 @@ print >>open(readme_filename,'w'), '''Steps to complete installation:
 
     htpasswd -c .htpasswd username
 
+-  Add the project name and copyright holder for the boinc Web site:
+
+    edit html/project/project.inc
+
+    change PROJECT and COPYRIGHT_HOLDER
 ----------------------------
 
 To start, show status, and stop the project, run:
diff --git a/tools/makefile_sign_executable b/tools/makefile_sign_executable
new file mode 100644
index 0000000..2c7969b
--- /dev/null
+++ b/tools/makefile_sign_executable
@@ -0,0 +1,9 @@
+# make sign_executable with minimal dependencies, e.g. no MySQL
+#
+all: sign_executable crypt_prog
+
+sign_executable:
+	g++ -o sign_executable -I.. -I../lib ../lib/crypt.cpp ../lib/md5.cpp ../lib/md5_file.cpp ../lib/filesys.cpp ../lib/util.cpp ../lib/str_util.cpp -lssl -lcrypto sign_executable.cpp
+
+crypt_prog:
+	g++ -o crypt_prog -I.. -I../lib ../lib/crypt.cpp ../lib/md5.cpp ../lib/md5_file.cpp ../lib/filesys.cpp ../lib/util.cpp ../lib/str_util.cpp -lssl -lcrypto ../lib/crypt_prog.cpp
diff --git a/tools/manage_privileges b/tools/manage_privileges
index 55f95b6..132ffb1 100755
--- a/tools/manage_privileges
+++ b/tools/manage_privileges
@@ -28,7 +28,8 @@
 // manage_privileges revoke userid {appname|all}
 // manage_privileges list
 //
-// grant/revoke the "manage" privileges for the given app (or all apps).
+// grant/revoke the "manage" privileges for the given app (or all apps),
+// or list all privileges
 
 error_reporting(E_ALL);
 ini_set('display_errors', true);
diff --git a/tools/process_input_template.cpp b/tools/process_input_template.cpp
index 260993b..2150b6b 100644
--- a/tools/process_input_template.cpp
+++ b/tools/process_input_template.cpp
@@ -15,6 +15,11 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
+// process_input_template():
+// fill in the workunit's XML document (wu.xml_doc)
+// by scanning the input template, macro-substituting the input files,
+// and putting in the command line element and additional XML
+
 #include <stdio.h>
 #include <string>
 #include <sys/types.h>
@@ -35,7 +40,9 @@ using std::vector;
 
 // look for file named FILENAME.md5 containing md5sum and length.
 // If found, and newer mod time than file,
-// read md5 sum and file length from it.
+// read md5 sum and file length from it, and return true.
+// Else return false
+//
 // See checkin notes Dec 30 2004
 //
 static bool got_md5_info(
@@ -138,40 +145,55 @@ static void write_md5_info(
     return;
 }
 
-static bool input_file_found[1024];
-
 // generate a <file_info> element for workunit XML doc,
-// based on the input template and list of files
+// based on the input template and list of variable files
 //
 // Inputs:
 // xp: parser for input template
-// ninfiles, infiles: list of physical filenames
+// var_infiles: list of files descs passed to create_work (i.e. var files)
+//
+// Outputs:
+// infiles: vector (appended to) of all input files
+// out:
+//
+// Actions:
+//   as an input file for create_work.
+// out: append the <file_info> element for the WU XML doc
+// If not a constant file:
+// increment nfiles_parsed
 //
-// Output:
-// out: the <file_info> element for the WU XML doc
-
 static int process_file_info(
-    XML_PARSER& xp, string& out, vector<INFILE_DESC> infiles,
-    SCHED_CONFIG& config_loc
+    XML_PARSER& xp, SCHED_CONFIG& config_loc,
+    vector<INFILE_DESC> &var_infiles,
+    string& out,
+    vector<INFILE_DESC> &infiles,
+    int& n_var_infiles
 ) {
     vector<string> urls;
     bool gzip = false;
-    int retval, file_number = -1;
+    int retval, itemp;
     double nbytes, nbytesdef = -1, gzipped_nbytes;
     string md5str, urlstr, tmpstr;
+    char physical_name[256];
     char buf[BLOB_SIZE], path[MAXPATHLEN], top_download_path[MAXPATHLEN];
     char gzip_path[MAXPATHLEN];
     char md5[33], url[256], gzipped_url[256], buf2[256];
+    INFILE_DESC var_infile, infile;
+
+    strcpy(physical_name, "");
 
     out += "<file_info>\n";
     while (!xp.get_tag()) {
-        if (xp.parse_int("number", file_number)) {
+        if (xp.parse_bool("gzip", gzip)) {
             continue;
-        } else if (xp.parse_bool("gzip", gzip)) {
+        } else if (xp.parse_str("physical_name", physical_name, sizeof(physical_name))) {
             continue;
         } else if (xp.parse_string("url", urlstr)) {
             urls.push_back(urlstr);
             continue;
+        } else if (xp.parse_int("number", itemp)) {
+            // ignore
+            continue;
         } else if (xp.parse_string("md5_cksum", md5str)) {
             continue;
         } else if (xp.parse_double("nbytes", nbytesdef)) {
@@ -179,47 +201,76 @@ static int process_file_info(
         } else if (xp.parse_double("gzipped_nbytes", gzipped_nbytes)) {
             continue;
         } else if (xp.match_tag("/file_info")) {
-            if (nbytesdef != -1 || md5str != "" || urlstr != "") {
-                if (nbytesdef == -1 || md5str == "" || urlstr == "") {
-                    fprintf(stderr, "All file properties must be defined "
-                        "if at least one is defined (url, md5_cksum, nbytes)!\n"
+            // there are four cases:
+            // - normal file
+            // - constant file
+            //   <physical_name> is given
+            // - remote file, specified as create_work() arg
+            //   URL, size etc. are given in INFILE_DESC
+            // - remote file, specified in template
+            //   URL, size etc. are given in template
+            //
+            if (!strlen(physical_name)) {
+                if (n_var_infiles >= (int)var_infiles.size()) {
+                    fprintf(stderr,
+                        "Too few var input files given; need at least %d\n",
+                        n_var_infiles+1
                     );
                     return ERR_XML_PARSE;
                 }
-                if (gzip && !gzipped_nbytes) {
-                    fprintf(stderr, "Must specify gzipped_nbytes\n");
-                    return ERR_XML_PARSE;
-                }
-            }
-            if (file_number < 0) {
-                fprintf(stderr, "No file number found\n");
-                return ERR_XML_PARSE;
+                var_infile = var_infiles[n_var_infiles];
             }
-            if (file_number >= (int)infiles.size()) {
-                fprintf(stderr,
-                    "Too few input files given; need at least %d\n",
-                    file_number+1
+
+            if (strlen(physical_name)) {
+                // constant file case
+                //
+                dir_hier_path(
+                    physical_name, config_loc.download_dir,
+                    config_loc.uldl_dir_fanout, path, true
                 );
-                return ERR_XML_PARSE;
-            }
-            if (input_file_found[file_number]) {
-                fprintf(stderr,
-                    "Input file %d listed twice\n", file_number
+                if (!got_md5_info(path, md5, &nbytes)) {
+                    fprintf(stderr, "missing MD5 info file for %s\n",
+                        physical_name
+                    );
+                    return ERR_FILE_MISSING;
+                }
+
+                dir_hier_url(
+                    physical_name, config_loc.download_url,
+                    config_loc.uldl_dir_fanout, url
                 );
-                return ERR_XML_PARSE;
-            }
-            input_file_found[file_number] = true;
-            INFILE_DESC& infile = infiles[file_number];
 
-            if (nbytesdef > 0) {
-                // here if the file was specified in the input template;
-                // i.e it's already staged, possibly remotely
+                sprintf(buf,
+                    "    <name>%s</name>\n"
+                    "    <url>%s</url>\n"
+                    "    <md5_cksum>%s</md5_cksum>\n"
+                    "    <nbytes>%.0f</nbytes>\n",
+                    physical_name,
+                    url,
+                    md5,
+                    nbytes
+                );
+                strcpy(infile.name, physical_name);
+                strcpy(infile.md5, md5);
+                infile.nbytes = nbytes;
+            } else if (nbytesdef > 0) {
+                // remote file specified in template
                 //
+                if (md5str == "" || urlstr == "") {
+                    fprintf(stderr, "All file properties must be defined "
+                        "if at least one is defined (url, md5_cksum, nbytes)\n"
+                    );
+                    return ERR_XML_PARSE;
+                }
+                if (gzip && !gzipped_nbytes) {
+                    fprintf(stderr, "Must specify gzipped_nbytes\n");
+                    return ERR_XML_PARSE;
+                }
                 urlstr = "";
                 for (unsigned int i=0; i<urls.size(); i++) {
-                    urlstr += "    <url>" + urls.at(i) + string(infile.name) + "</url>\n";
+                    urlstr += "    <url>" + urls.at(i) + string(var_infile.name) + "</url>\n";
                     if (gzip) {
-                        urlstr += "    <gzipped_url>" + urls.at(i) + string(infile.name) + ".gz</gzipped_url>\n";
+                        urlstr += "    <gzipped_url>" + urls.at(i) + string(var_infile.name) + ".gz</gzipped_url>\n";
                     }
                 }
                 sprintf(buf,
@@ -227,7 +278,7 @@ static int process_file_info(
                     "%s"
                     "    <md5_cksum>%s</md5_cksum>\n"
                     "    <nbytes>%.0f</nbytes>\n",
-                    infile.name,
+                    var_infile.name,
                     urlstr.c_str(),
                     md5str.c_str(),
                     nbytesdef
@@ -238,25 +289,32 @@ static int process_file_info(
                     );
                     strcat(buf, buf2);
                 }
-                strcat(buf, "</file_info>\n");
-            } else if (infile.is_remote) {
+                strcpy(infile.name, var_infile.name);
+                strcpy(infile.md5, md5str.c_str());
+                infile.nbytes = nbytesdef;
+            } else if (var_infile.is_remote) {
+                // remote file specified in create_work() arg
+                //
+                sprintf(buf2, "jf_%s", var_infile.md5);
                 sprintf(buf,
-                    "    <name>jf_%s</name>\n"
+                    "    <name>%s</name>\n"
                     "    <url>%s</url>\n"
                     "    <md5_cksum>%s</md5_cksum>\n"
-                    "    <nbytes>%.0f</nbytes>\n"
-                    "</file_info>\n",
-                    infile.md5,
-                    infile.url,
-                    infile.md5,
-                    infile.nbytes
+                    "    <nbytes>%.0f</nbytes>\n",
+                    buf2,
+                    var_infile.url,
+                    var_infile.md5,
+                    var_infile.nbytes
                 );
+                strcpy(infile.name, buf2);
+                strcpy(infile.md5, var_infile.md5);
+                infile.nbytes = var_infile.nbytes;
             } else {
-                // here if file is local; we need to find its size and MD5;
+                // normal case. we need to find file size and MD5;
                 // stage the file if needed
                 //
                 dir_hier_path(
-                    infile.name, config_loc.download_dir,
+                    var_infile.name, config_loc.download_dir,
                     config_loc.uldl_dir_fanout, path, true
                 );
 
@@ -265,9 +323,10 @@ static int process_file_info(
                 //
                 if (!boinc_file_exists(path)) {
                     sprintf(top_download_path,
-                        "%s/%s",config_loc.download_dir, infile.name
+                        "%s/%s",config_loc.download_dir, var_infile.name
                     );
                     boinc_copy(top_download_path, path);
+                    printf("copy %s to %s\n", top_download_path, path);
                 }
 
                 if (!config_loc.cache_md5_info || !got_md5_info(path, md5, &nbytes)) {
@@ -284,7 +343,7 @@ static int process_file_info(
                 }
 
                 dir_hier_url(
-                    infile.name, config_loc.download_url,
+                    var_infile.name, config_loc.download_url,
                     config_loc.uldl_dir_fanout, url
                 );
 
@@ -312,16 +371,23 @@ static int process_file_info(
                     "    <url>%s</url>\n"
                     "%s"
                     "    <md5_cksum>%s</md5_cksum>\n"
-                    "    <nbytes>%.0f</nbytes>\n"
-                    "</file_info>\n",
-                    infile.name,
+                    "    <nbytes>%.0f</nbytes>\n",
+                    var_infile.name,
                     url,
                     gzipped_url,
                     md5,
                     nbytes
                 );
+                strcpy(infile.name, var_infile.name);
+                strcpy(infile.md5, md5);
+                infile.nbytes = nbytes;
+            }
+            infiles.push_back(infile);
+            if (!strlen(physical_name)) {
+                n_var_infiles++;
             }
             out += buf;
+            out += "</file_info>\n";
             break;
         } else {
             // copy any other elements from input template to XML doc
@@ -335,6 +401,8 @@ static int process_file_info(
     return 0;
 }
 
+// parse the <workunit> elements, which includes file refs and job params
+//
 static int process_workunit(
     XML_PARSER& xp, WORKUNIT& wu, string& out,
     vector<INFILE_DESC> &infiles,
@@ -342,9 +410,8 @@ static int process_workunit(
     const char* additional_xml
 ) {
     char buf[256], open_name[256];
-    int file_number;
     string tmpstr, cmdline;
-    int retval;
+    int retval, n_file_refs=0, itemp;
 
     out += "<workunit>\n";
     if (command_line) {
@@ -363,35 +430,33 @@ static int process_workunit(
             break;
         } else if (xp.match_tag("file_ref")) {
             out += "<file_ref>\n";
-            bool found_file_number = false, found_open_name = false;
+            bool found_open_name = false, found_copy_file = false;
+            if (n_file_refs >= (int)infiles.size()) {
+                fprintf(stderr, "too many <file_ref>s\n");
+                return ERR_XML_PARSE;
+            }
+            INFILE_DESC& id = infiles[n_file_refs];
+            sprintf(buf, "    <file_name>%s</file_name>\n", id.name);
+            out += buf;
+
             while (!xp.get_tag()) {
-                if (xp.parse_int("file_number", file_number)) {
-                    INFILE_DESC& id = infiles[file_number];
-                    if (id.is_remote) {
-                        sprintf(buf, "    <file_name>jf_%s</file_name>\n",
-                            infiles[file_number].md5
-                        );
-                    } else {
-                        sprintf(buf, "    <file_name>%s</file_name>\n",
-                            infiles[file_number].name
-                        );
-                    }
-                    out += buf;
-                    found_file_number = true;
-                    continue;
-                } else if (xp.parse_str("open_name", open_name, sizeof(open_name))) {
+                if (xp.parse_str("open_name", open_name, sizeof(open_name))) {
                     sprintf(buf, "    <open_name>%s</open_name>\n", open_name);
                     out += buf;
                     found_open_name = true;
                     continue;
+                } else if (xp.parse_int("file_number", itemp)) {
+                } else if (xp.match_tag("copy_file/")) {
+                    out += "    <copy_file/>\n";
+                    found_copy_file = true;
+                    continue;
                 } else if (xp.match_tag("/file_ref")) {
-                    if (!found_file_number) {
-                        fprintf(stderr, "No file number found\n");
-                        return ERR_XML_PARSE;
-                    }
-                    if (!found_open_name) {
-                        fprintf(stderr, "No open name found\n");
+                    if (!found_open_name && !found_copy_file) {
+                        fprintf(stderr, "No open name found and copy_file not specified\n");
                         return ERR_XML_PARSE;
+                    } else if (!found_open_name && found_copy_file) {
+                        sprintf(buf, "    <open_name>%s</open_name>\n", id.name);
+                        out += buf;
                     }
                     out += "</file_ref>\n";
                     break;
@@ -405,6 +470,7 @@ static int process_workunit(
                     out += "\n";
                 }
             }
+            n_file_refs++;
         } else if (xp.parse_string("command_line", cmdline)) {
             if (command_line) {
                 fprintf(stderr, "Can't specify command line twice\n");
@@ -446,6 +512,10 @@ static int process_workunit(
             out += "\n";
         }
     }
+    if (n_file_refs != (int)infiles.size()) {
+        fprintf(stderr, "#file refs != #file infos\n");
+        return ERR_XML_PARSE;
+    }
     return 0;
 }
 
@@ -456,7 +526,8 @@ static int process_workunit(
 int process_input_template(
     WORKUNIT& wu,
     char* tmplate,
-    vector<INFILE_DESC> &infiles,
+    vector<INFILE_DESC> &var_infiles,
+        // files passed as args to create_work
     SCHED_CONFIG& config_loc,
     const char* command_line,
     const char* additional_xml
@@ -464,12 +535,14 @@ int process_input_template(
     string out;
     int retval;
     bool found_workunit=false;
-    int nfiles_parsed = 0;
-
-    for (int i=0; i<1024; i++) {
-        input_file_found[i] = false;
-    }
-
+    vector<INFILE_DESC> infiles;
+        // this gets filled in as we scan <file_info>s
+    int n_var_infiles=0;
+        // number of non-constant infiles scanned
+        // this is an index into var_infiles
+        
+    // "out" is the XML we're creating
+    //
     out = "";
     MIOFILE mf;
     XML_PARSER xp(&mf);
@@ -479,9 +552,11 @@ int process_input_template(
         if (xp.match_tag("input_template")) continue;
         if (xp.match_tag("/input_template")) continue;
         if (xp.match_tag("file_info")) {
-            retval = process_file_info(xp, out, infiles, config_loc);
+            retval = process_file_info(
+                xp, config_loc, var_infiles,
+                out, infiles, n_var_infiles
+            );
             if (retval) return retval;
-            nfiles_parsed++;
         } else if (xp.match_tag("workunit")) {
             found_workunit = true;
             retval = process_workunit(
@@ -494,10 +569,10 @@ int process_input_template(
         fprintf(stderr, "process_input_template: bad WU template - no <workunit>\n");
         return ERR_XML_PARSE;
     }
-    if (nfiles_parsed != (int)infiles.size()) {
+    if (n_var_infiles != (int)var_infiles.size()) {
         fprintf(stderr,
-            "process_input_template: %d input files listed, but template has %d\n",
-            (int)infiles.size(), nfiles_parsed
+            "process_input_template: %d input files given, but template has %d\n",
+            (int)var_infiles.size(), n_var_infiles
         );
         return ERR_XML_PARSE;
     }
@@ -512,3 +587,47 @@ int process_input_template(
     safe_strcpy(wu.xml_doc, out.c_str());
     return 0;
 }
+
+#ifdef TEST
+SCHED_CONFIG config_loc;
+
+int main(int, char**) {
+    WORKUNIT wu;
+    vector<INFILE_DESC> var_infiles;
+    char* tmplate;
+    const char* command_line = "sample command line";
+    const char* additional_xml;
+
+    config_loc.parse_file("");
+
+    read_file_malloc("template_in", tmplate);
+    INFILE_DESC id;
+#if 1
+    strcpy(id.name, "input");
+    var_infiles.push_back(id);
+#endif
+
+#if 0
+    strcpy(id.name, "input");
+    id.is_remote = true;
+    strcpy(id.url, "http://blah.foo");
+    strcpy(id.md5, "sfslkjsdlfkj");
+    id.nbytes = 234;
+    var_infiles.push_back(id);
+#endif
+
+    int retval = process_input_template(
+        wu,
+        tmplate,
+        var_infiles,
+        config_loc,
+        command_line,
+        additional_xml
+    );
+    if (retval) {
+        printf("process_input_template returned %d\n", retval);
+    } else {
+        printf("xml_doc:\n%s\n", wu.xml_doc);
+    }
+}
+#endif
diff --git a/tools/process_input_template.h b/tools/process_input_template.h
index a9bb377..0a7c0d3 100644
--- a/tools/process_input_template.h
+++ b/tools/process_input_template.h
@@ -15,8 +15,8 @@
 // You should have received a copy of the GNU Lesser General Public License
 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-#ifndef _PROCESS_INPUT_TEMPLATE_
-#define _PROCESS_INPUT_TEMPLATE_
+#ifndef BOINC_PROCESS_INPUT_TEMPLATE_H
+#define BOINC_PROCESS_INPUT_TEMPLATE_H
 
 #include <vector>
 
diff --git a/tools/project.xml b/tools/project.xml
index 5cd874b..21964e3 100644
--- a/tools/project.xml
+++ b/tools/project.xml
@@ -51,8 +51,4 @@
         <name>anonymous</name>
         <user_friendly_name>anonymous</user_friendly_name>
     </platform>
-    <app>
-        <name>example_app</name>
-        <user_friendly_name>Example Application</user_friendly_name>
-    </app>
 </boinc>
diff --git a/tools/remote_submit_test.cpp b/tools/remote_submit_test.cpp
index 9bf213b..4651bb1 100644
--- a/tools/remote_submit_test.cpp
+++ b/tools/remote_submit_test.cpp
@@ -19,8 +19,11 @@
 
 #include "remote_submit.h"
 
+using std::vector;
+using std::string;
+
 const char* project_url = "http://isaac.ssl.berkeley.edu/test/";
-const char* authenticator = "157f96a018b0b2f2b466e2ce3c7f54db";
+char authenticator[256];
 
 void test_query_batches() {
     string error_msg;
@@ -56,7 +59,15 @@ void test_query_batch() {
     }
 }
 
+void get_auth() {
+    FILE* f = fopen("test_auth", "r");
+    fread((void*)authenticator, 1, 256, f);
+    strip_whitespace(authenticator);
+    fclose(f);
+}
+
 int main(int, char**) {
+    get_auth();
     //test_query_batches();
     test_query_batch();
 }
diff --git a/tools/sign_executable.cpp b/tools/sign_executable.cpp
index 3c10c2d..695984f 100644
--- a/tools/sign_executable.cpp
+++ b/tools/sign_executable.cpp
@@ -17,14 +17,10 @@
 
 // syntax: sign_executable data_file private_key_file
 
-#include <cstdlib>
-#include <string>
-#include <cstring>
+#include <stdio.h>
 
 #include "config.h"
 #include "crypt.h"
-#include "backend_lib.h"
-#include <cstdlib>
 
 int sign_executable(char* path, char* code_sign_keyfile, char* signature_text) {
     DATA_BLOCK signature;
diff --git a/tools/stage_file b/tools/stage_file
index 7701e52..58f1eef 100755
--- a/tools/stage_file
+++ b/tools/stage_file
@@ -24,12 +24,15 @@
 //
 // Usage (from project dir):
 //
-// bin/stage_file [--gzip] [--copy] path
+// bin/stage_file [options] path
 //
+// options:
 // --gzip       Make a gzipped version of the file.
 //              Use this if you specify <gzip> in the <file_info>
 // --copy       Copy the file (default is to move it)
 //
+// -- verbose
+//
 // path         The file to be staged.
 //              If it's a directory, stage all the files in that dir
 
@@ -69,35 +72,15 @@ function stage_file($path) {
         echo "staging $file to $dl_path\n";
     }
 
-    // compute the file's MD5
-    //
-    $md5 = md5_file($path);
-    $file_size = filesize($path);
-
-    // if file is already in download dir, make sure it's the same file
-    //
-    if (file_exists($dl_path)) {
-        if (file_exists($dl_md5_path)) {
-            $x = file_get_contents($dl_md5_path);
-            $x = explode(" ", $x);
-            $dl_md5 = $x[0];
-        } else {
-            $dl_md5 = md5_file($dl_path);
-        }
-        if ($md5 != $dl_md5) {
-            error_exit("
-There is already a file in your project's download directory with that name,
-but with different contents.
-This is not allowed by BOINC, which requires that files be immutable.
-Please use a different file name.
-");
-        }
+    switch (check_download_file($path, $dl_path)) {
+    case 0:
+        // file is already there; no need to copy
         if ($verbose) {
             echo "    file already exists as $dl_path\n";
         }
-    } else {
-        // move or copy the file
-        //
+        break;
+    case 1:
+        // need to copy or move
         if ($copy) {
             $ret = copy($path, $dl_path);
             if (!$ret) error_exit("    copy failed\n");
@@ -107,16 +90,16 @@ Please use a different file name.
             if (!$ret) error_exit("    copy failed\n");
             if ($verbose) echo "    moved file\n";
         }
-        @unlink($dl_md5_path);
-    }
-
-    // make MD5 file if needed
-    //
-    if (!file_exists($dl_md5_path)) {
-        $x = $md5." ".$file_size."\n";
-        $ret = file_put_contents($dl_md5_path, $x);
-        if (!$ret) error_exit("failed to create MD5 file $dl_md5_path\n");
-        if ($verbose) echo "    created MD5 file $dl_md5_path\n";
+        touch("$path.md5");
+        break;
+    case -1:
+        error_exit("
+There is already a file in your project's download directory with that name,
+but with different contents.
+This is not allowed by BOINC, which requires that files be immutable.
+Please use a different file name.
+");
+        break;
     }
 
     // make gzipped version if needed
diff --git a/tools/submit_api_test.py b/tools/submit_api_test.py
new file mode 100644
index 0000000..fd097d5
--- /dev/null
+++ b/tools/submit_api_test.py
@@ -0,0 +1,195 @@
+# This file is part of BOINC.
+# http://boinc.berkeley.edu
+# Copyright (C) 2016 University of California
+#
+# BOINC is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation,
+# either version 3 of the License, or (at your option) any later version.
+#
+# BOINC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+# test functions for submit_api.py
+
+# YOU MUST CREATE A FILE "test_auth' CONTAINING
+#
+# project URL
+# authenticator of your account
+
+from submit_api import *
+
+# read URL and auth from a file so we don't have to include it here
+#
+def get_auth():
+    with open("test_auth", "r") as f:
+        url = (f.readline()).strip()
+        auth = (f.readline()).strip()
+    return [url, auth]
+
+# make a batch description, to be passed to estimate_batch() or submit_batch()
+#
+def make_batch_desc(batch_name):
+    file = FILE_DESC()
+    file.mode = 'local_staged'
+    file.source = 'input'
+
+    job = JOB_DESC()
+    job.files = [file]
+
+    batch = BATCH_DESC()
+    [batch.project, batch.authenticator] = get_auth()
+    batch.app_name = "uppercase"
+    batch.batch_name = batch_name
+    batch.jobs = []
+
+    for i in range(2):
+        job.command_line = '-i %s' %(i)
+        if True:
+            job.wu_template = """
+<input_template>
+    <file_info>
+    </file_info>
+    <workunit>
+        <file_ref>
+            <open_name>in</open_name>
+        </file_ref>
+        <target_nresults>1</target_nresults>
+        <min_quorum>1</min_quorum>
+        <credit>%d</credit>
+        <rsc_fpops_est>   60e9  </rsc_fpops_est>
+    </workunit>
+</input_template>
+""" % (i+1)
+        if True:
+            job.result_template = """
+<output_template>
+    <file_info>
+        <name><OUTFILE_0/></name>
+        <generated_locally/>
+        <upload_when_present/>
+        <max_nbytes>4000000</max_nbytes>
+        <url><UPLOAD_URL/></url>
+    </file_info>
+    <result>
+        <file_ref>
+            <file_name><OUTFILE_0/></file_name>
+            <open_name>out</open_name>
+        </file_ref>
+    </result>
+</output_template>
+"""
+        job.rsc_fpops_est = (i+1)*1e9
+        batch.jobs.append(copy.copy(job))
+
+    return batch
+
+def test_estimate_batch():
+    batch = make_batch_desc()
+    #print batch.to_xml("submit")
+    r = estimate_batch(batch)
+    if check_error(r):
+        return
+    print 'estimated time: ', r[0].text, ' seconds'
+
+def test_submit_batch(batch_name):
+    batch = make_batch_desc(batch_name)
+    r = submit_batch(batch)
+    if check_error(r):
+        return
+    print 'batch ID: ', r[0].text
+
+def test_query_batches():
+    req = REQUEST()
+    [req.project, req.authenticator] = get_auth()
+    req.get_cpu_time = True
+    r = query_batches(req)
+    if check_error(r):
+        return
+    print ET.tostring(r)
+
+def test_query_batch(id):
+    req = REQUEST()
+    [req.project, req.authenticator] = get_auth()
+    req.batch_id = id
+    req.get_cpu_time = True
+    req.get_job_details = True
+    r = query_batch(req)
+    if check_error(r):
+        return
+    print ET.tostring(r)
+    print 'njobs: ', r.find('njobs').text
+    print 'fraction done: ', r.find('fraction_done').text
+    print 'total CPU time: ', r.find('total_cpu_time').text
+    # ... various other fields
+    print 'jobs:'
+    for job in r.findall('job'):
+        print '   id: ', job.find('id').text
+        # ... various other fields
+
+def test_create_batch(name):
+    req = CREATE_BATCH_REQ()
+    [req.project, req.authenticator] = get_auth()
+    req.app_name = 'uppercase'
+    req.batch_name = name
+    req.expire_time = 0
+    r = create_batch(req)
+    if check_error(r):
+        return
+    print 'batch ID: ', r[0].text
+
+def test_abort_batch():
+    req = REQUEST()
+    [req.project, req.authenticator] = get_auth()
+    req.batch_id = 271
+    r = abort_batch(req)
+    if check_error(r):
+        return
+    print 'success'
+
+def test_upload_files():
+    req = UPLOAD_FILES_REQ()
+    [req.project, req.authenticator] = get_auth()
+    req.batch_id = 283
+    req.local_names = ('updater.cpp', 'kill_wu.cpp')
+    req.boinc_names = ('dxxxb_updater.cpp', 'dxxxb_kill_wu.cpp')
+    r = upload_files(req)
+    if check_error(r):
+        return
+    print 'upload_files: success'
+
+def test_query_files():
+    req = QUERY_FILES_REQ()
+    [req.project, req.authenticator] = get_auth()
+    req.batch_id = 271
+    req.boinc_names = ('dxxx_updater.cpp', 'dxxx_kill_wu.cpp')
+    r = query_files(req)
+    if check_error(r):
+        return
+    print 'absent files:'
+    for f in r[0]:
+        print f.text
+
+def test_get_output_file():
+    req = REQUEST()
+    [req.project, req.authenticator] = get_auth()
+    req.instance_name = 'uppercase_32275_1484961754.784017_0_0'
+    req.file_num = 1
+    r = get_output_file(req)
+    print(r)
+
+def test_get_output_files():
+    req = REQUEST()
+    [req.project, req.authenticator] = get_auth()
+    req.batch_id = 271
+    r = get_output_files(req)
+    print(r)
+
+#test_query_batch(328)
+#test_submit_batch('batch_32')
+test_create_batch('batch_33')
diff --git a/tools/update_versions b/tools/update_versions
index dc181c3..29014a2 100755
--- a/tools/update_versions
+++ b/tools/update_versions
@@ -372,7 +372,7 @@ function confirm($fds, $v) {
 function get_bool($xml_element, $name) {
     foreach($xml_element->xpath($name) as $x) {
         $s = trim((string) $x);
-        if ($s == "" || int($s)>0) return true;
+        if ($s == "" || (int)$s>0) return true;
     }
     return false;
 }
diff --git a/tools/xadd b/tools/xadd
index 5a6d3c2..c787d34 100755
--- a/tools/xadd
+++ b/tools/xadd
@@ -1,27 +1,65 @@
-#!/usr/bin/env python
+#!/usr/bin/env php
+<?php
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2015 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
 
-# $Id$
+// parse project.xml; add apps and platforms to the DB
 
-'''
-Add platform and application records to the BOINC database.
-Reads info from "project.xml", e.g.:
+chdir("html/inc");
+require_once("boinc_db.inc");
+chdir("../..");
 
-<boinc>
-    <platform>
-        <name>i686-pc-linux-gnu</name>
-        <user_friendly_name>Linux/x86</user_friendly_name>
-    </platform>
-    <app>
-        <name>astropulse</name>
-        <user_friendly_name>AstroPulse</user_friendly_name>
-    </app>
-</boinc>
+$x = simplexml_load_file("project.xml");
 
-See http://boinc.berkeley.edu/tool_xadd.php
-'''
+foreach ($x->platform as $platform) {
+    $n = (string)$platform->name;
+    $ufn = (string)$platform->user_friendly_name;
+    $p = BoincPlatform::lookup("name='$n'");
+    if ($p) {
+        if ($p->user_friendly_name != $ufn) {
+            $p->update("user_friendly_name='$ufn'");
+            echo "updated user friendly name of platform $n\n";
+        } else {
+            echo "platform $n already in DB\n";
+        }
+    } else {
+        $now = time();
+        $q = "(create_time, name, user_friendly_name) values ($now, '$n', '$ufn')";
+        BoincPlatform::insert($q);
+        echo "added platform: $q\n";
+    }
+}
 
-import boinc_path_config
-from Boinc import database, db_mid, projectxml
-
-database.connect()
-projectxml.default_project().commit_all()
+foreach ($x->app as $app) {
+    $n = (string)$app->name;
+    $ufn = (string)$app->user_friendly_name;
+    $a = BoincApp::lookup("name='$n'");
+    if ($a) {
+        if ($a->user_friendly_name != $ufn) {
+            $a->update("user_friendly_name='$ufn'");
+            echo "updated user friendly name of app $n\n";
+        } else {
+            echo "app $n already in DB\n";
+        }
+    } else {
+        $now = time();
+        $q = "(create_time, name, user_friendly_name) values ($now, '$n', '$ufn')";
+        BoincApp::insert($q);
+        echo "added app: $q\n";
+    }
+}
+?>
diff --git a/vda/sched_vda.cpp b/vda/sched_vda.cpp
index 388d202..e63b504 100644
--- a/vda/sched_vda.cpp
+++ b/vda/sched_vda.cpp
@@ -28,6 +28,7 @@
 #include <string>
 #include <unistd.h>
 #include <sys/wait.h>
+#include <sys/resource.h>
 
 #include "filesys.h"
 
@@ -134,8 +135,8 @@ static int get_chunk_md5(char* chunk_dir, char* md5_buf) {
 //      delete from upload dir
 //
 static int process_completed_upload(char* phys_filename, CHUNK_LIST& chunks) {
-    char path[1024], buf[256];
-    char chunk_name[1024], file_name[1024];
+    char path[MAXPATHLEN], buf[256];
+    char chunk_name[1024], file_name[MAXPATHLEN];
     int retval, hostid;
 
     retval = parse_physical_filename(
@@ -219,7 +220,7 @@ static int process_completed_upload(char* phys_filename, CHUNK_LIST& chunks) {
             retval = vf.update_field("need_update=1");
         }
     }
-    sprintf(buf, "host_id=%d and physical_file_name='%s'",
+    sprintf(buf, "host_id=%lu and physical_file_name='%s'",
         ch.host_id,
         ch.physical_file_name
     );
@@ -310,7 +311,7 @@ static void process_chunk_present_on_client(FILE_INFO& fi, CHUNK_LIST& chunks) {
             chp->transfer_wait = false;
             chp->present_on_host = true;
             sprintf(buf,
-                "host_id=%d and physical_file_name='%s'",
+                "host_id=%lu and physical_file_name='%s'",
                 chp->host_id, chp->physical_file_name
             );
             chp->update_fields_noid(
@@ -338,7 +339,7 @@ static int process_chunks_missing_on_client(CHUNK_LIST& chunks) {
             }
             char buf[256];
             sprintf(buf,
-                "host_id=%d and vda_file_id=%d and physical_file_name='%s'",
+                "host_id=%lu and vda_file_id=%lu and physical_file_name='%s'",
                 ch.host_id, ch.vda_file_id, ch.physical_file_name
             );
             int retval = ch.delete_from_db_multi(buf);
@@ -526,7 +527,7 @@ void handle_vda() {
     //
     DB_VDA_CHUNK_HOST ch;
     char buf[256];
-    sprintf(buf, "where host_id=%d", g_reply->host.id);
+    sprintf(buf, "where host_id=%lu", g_reply->host.id);
     while (1) {
         retval = ch.enumerate(buf);
         if (retval == ERR_DB_NOT_FOUND) break;
@@ -541,7 +542,7 @@ void handle_vda() {
         }
         if (config.debug_vda) {
             log_messages.printf(MSG_NORMAL,
-                "[vda] DB: has chunk %s, file %d\n",
+                "[vda] DB: has chunk %s, file %lu\n",
                 ch.physical_file_name, ch.vda_file_id
             );
         }
diff --git a/vda/vda.cpp b/vda/vda.cpp
index ec944bb..bfeb1b7 100644
--- a/vda/vda.cpp
+++ b/vda/vda.cpp
@@ -23,6 +23,7 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <set>
+#include <sys/resource.h>
 
 #include "boinc_db.h"
 #include "filesys.h"
@@ -78,7 +79,7 @@ void CHUNK::print_status(int level) {
 }
 
 void VDA_CHUNK_HOST::print_status(int level) {
-    printf("%shost %d\n", indent(level), host_id);
+    printf("%shost %lu\n", indent(level), host_id);
     level++;
     printf("%spresent on host: %s\n",
         indent(level), present_on_host?"yes":"no"
@@ -149,7 +150,7 @@ int handle_add(const char* path) {
 
 int handle_remove(const char* name) {
     DB_VDA_FILE vf;
-    char buf[1024];
+    char buf[MAXPATHLEN];
     snprintf(buf, sizeof(buf), "where file_name='%s'", name);
     int retval = vf.lookup(buf);
     if (retval) return retval;
@@ -157,7 +158,7 @@ int handle_remove(const char* name) {
     // delete DB records
     //
     DB_VDA_CHUNK_HOST ch;
-    sprintf(buf, "vda_file_id=%d", vf.id);
+    sprintf(buf, "vda_file_id=%lu", vf.id);
     ch.delete_from_db_multi(buf);
     vf.delete_from_db();
 
diff --git a/vda/vda_lib2.cpp b/vda/vda_lib2.cpp
index fc4bee4..46209da 100644
--- a/vda/vda_lib2.cpp
+++ b/vda/vda_lib2.cpp
@@ -22,6 +22,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/resource.h>
 #include <vector>
 #include <unistd.h>
 
@@ -416,7 +417,7 @@ int CHUNK::start_upload_from_host(VDA_CHUNK_HOST& ch) {
     char set_clause[256], where_clause[256];
 
     log_messages.printf(MSG_NORMAL,
-        "   requesting upload of %s from host %d\n", name, ch.host_id
+        "   requesting upload of %s from host %lu\n", name, ch.host_id
     );
 
     sprintf(set_clause,
@@ -424,7 +425,7 @@ int CHUNK::start_upload_from_host(VDA_CHUNK_HOST& ch) {
         dtime()
     );
     sprintf(where_clause,
-        "vda_file_id=%d and host_id=%d and physical_file_name='%s'",
+        "vda_file_id=%lu and host_id=%lu and physical_file_name='%s'",
         ch.vda_file_id,
         ch.host_id,
         ch.physical_file_name
@@ -474,7 +475,7 @@ int CHUNK::upload_all() {
 // leaving only the bottom-level chunks
 //
 int VDA_FILE_AUX::init() {
-    char buf[1024], buf2[1024];
+    char buf[MAXPATHLEN], buf2[MAXPATHLEN];
     sprintf(buf, "%s/%s", dir, DATA_FILENAME);
     sprintf(buf2, "%s/%s", dir, file_name);
     int retval = symlink(buf2, buf);
@@ -531,7 +532,7 @@ int VDA_FILE_AUX::get_state() {
     // enumerate the VDA_CHUNK_HOST records from DB and store in memory
     //
     DB_VDA_CHUNK_HOST vch;
-    sprintf(buf, "where vda_file_id=%d", id);
+    sprintf(buf, "where vda_file_id=%lu", id);
     while (1) {
         retval = vch.enumerate(buf);
         if (retval == ERR_DB_NOT_FOUND) break;
@@ -652,8 +653,8 @@ int VDA_FILE_AUX::choose_host() {
         // see whether it satisfies max_chunks
         //
         DB_VDA_CHUNK_HOST ch;
-        int count;
-        sprintf(buf, "where vda_file_id=%d and host_id=%d", id, enum_host.id);
+        long count;
+        sprintf(buf, "where vda_file_id=%lu and host_id=%lu", id, enum_host.id);
         retval = ch.count(count, buf);
         if (retval) {
             log_messages.printf(MSG_CRITICAL, "ch.count failed\n");
diff --git a/vda/vdad.cpp b/vda/vdad.cpp
index 9a0fda5..8982a59 100644
--- a/vda/vdad.cpp
+++ b/vda/vdad.cpp
@@ -195,28 +195,28 @@ int handle_dead_host(DB_HOST& h) {
     char buf[256];
     int retval;
 
-    log_messages.printf(MSG_NORMAL, "processing dead host %d\n", h.id);
+    log_messages.printf(MSG_NORMAL, "processing dead host %lu\n", h.id);
 
-    sprintf(buf, "where host_id=%d", h.id);
+    sprintf(buf, "where host_id=%lu", h.id);
     while (1) {
         retval = ch.enumerate(buf);
         if (retval == ERR_DB_NOT_FOUND) break;
         if (retval) return retval;
         log_messages.printf(MSG_NORMAL,
-            "   updating file %d\n", ch.vda_file_id
+            "   updating file %lu\n", ch.vda_file_id
         );
         DB_VDA_FILE vf;
         retval = vf.lookup_id(ch.vda_file_id);
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "   file lookup failed%d\n", ch.vda_file_id
+                "   file lookup failed %lu\n", ch.vda_file_id
             );
             return retval;
         }
         retval = vf.update_field("need_update=1");
         if (retval) {
             log_messages.printf(MSG_CRITICAL,
-                "   file update failed%d\n", ch.vda_file_id
+                "   file update failed %lu\n", ch.vda_file_id
             );
             return retval;
         }
diff --git a/version.log b/version.log
index 7e977a8..09a6d30 100644
--- a/version.log
+++ b/version.log
@@ -1 +1 @@
-7.6.33
+7.8.0
diff --git a/zip/Makefile.am b/zip/Makefile.am
index 0054b43..569f84c 100644
--- a/zip/Makefile.am
+++ b/zip/Makefile.am
@@ -61,7 +61,7 @@ endif
 
 lib_LTLIBRARIES = libboinc_zip.la
 libboinc_zip_la_SOURCES = $(libboinc_zip_sources)
-libboinc_zip_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
+libboinc_zip_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
 libboinc_zip_la_LIBADD =
 
 # Some OSs may not prefix libraries with lib.
diff --git a/zip/test.cpp b/zip/test.cpp
index 46ceb55..f4e2c3e 100644
--- a/zip/test.cpp
+++ b/zip/test.cpp
@@ -20,12 +20,8 @@ int main() {
     // replace with the path/file wildcard of your choice
     string home = string("C:/Documents and Settings/All Users/Documents");
     string result_dir = home + string("/testresult");
-    CreateDirectoryA(result_dir.c_str(), NULL);
-    string zipfile = result_dir + string("/test.zip");
-    string source_dir = home + string("/Testfiles");
-    if (boinc_filelist(source_dir.c_str(), ".txt", &zf) && zf.size()) {
-        retval = boinc_zip(ZIP_IT, zipfile, &zf);
-        retval = boinc_zip(UNZIP_IT, zipfile, result_dir.c_str());
+    if (!CreateDirectoryA(result_dir.c_str(), NULL)) {
+        perror("CreateDirectory");
     }
 #else
     string home = string(getenv("HOME"));
@@ -33,13 +29,14 @@ int main() {
     if (mkdir(result_dir.c_str(), 0777) < 0) {
         perror("mkdir");
     }
+#endif
+   
     string zipfile = result_dir + string("/test.zip");
     string source_dir = home + string("/Testfiles");
     if (boinc_filelist(source_dir, string(".txt"), &zf) && zf.size()) {
         retval = boinc_zip(ZIP_IT, zipfile, &zf);
         retval = boinc_zip(UNZIP_IT, zipfile, result_dir.c_str());
     }
-#endif
 
-   return retval;
+    return retval;
 }
diff --git a/zip/zip/__p___mb_cur_max.c b/zip/zip/__p___mb_cur_max.c
new file mode 100644
index 0000000..53176f1
--- /dev/null
+++ b/zip/zip/__p___mb_cur_max.c
@@ -0,0 +1,6 @@
+#ifdef __cplusplus
+extern "C" int __p___mb_cur_max(void);
+#else
+extern int __p___mb_cur_max(void);
+#endif
+int __p___mb_cur_max(void) { return 2; }
diff --git a/zip/zip/util.c b/zip/zip/util.c
index 73317da..88a202a 100644
--- a/zip/zip/util.c
+++ b/zip/zip/util.c
@@ -802,7 +802,7 @@ unsigned char *zmbsrchr(str, c)
  |     to make the action of the code less obscure.
  ****************************************************************/
 
-void envargs(Pargc, Pargv, envstr, envstr2)
+int envargs(Pargc, Pargv, envstr, envstr2)
     int *Pargc;
     char ***Pargv;
     char *envstr;
@@ -825,7 +825,7 @@ void envargs(Pargc, Pargv, envstr, envstr2)
             while (isspace((uch)*envptr))
                 envptr++;
     if (envptr == NULL || *envptr == '\0')
-        return;
+        return 0;
 
     /* count the args so we can allocate room for them */
     argc = count_args(envptr);
@@ -902,6 +902,7 @@ void envargs(Pargc, Pargv, envstr, envstr2)
     /* save the values and return */
     *Pargv = argvect;
     *Pargc = argc;
+    return 0;
 }
 
 local int count_args(s)
diff --git a/zip/zip/zip.h b/zip/zip/zip.h
index ba03160..d953893 100644
--- a/zip/zip/zip.h
+++ b/zip/zip/zip.h
@@ -811,7 +811,7 @@ int  namecmp       OF((ZCONST char *string1, ZCONST char *string2));
 
 zvoid far **search OF((ZCONST zvoid *, ZCONST zvoid far **, extent,
                        int (*)(ZCONST zvoid *, ZCONST zvoid far *)));
-void envargs       OF((int *, char ***, char *, char *));
+int envargs       OF((int *, char ***, char *, char *));
 void expand_args   OF((int *, char ***));
 
 int  is_text_buf   OF((ZCONST char *buf_ptr, unsigned buf_size));

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-boinc/boinc.git



More information about the pkg-boinc-commits mailing list